1.61803398874989484820458683436563811772030917980576286213544862270526046281890244970720720418939113748475408807538689175212663386222353693179318006076672635443338908659593958290563832266131992829026788067520876689250171169620703222104321626954862629631361443814975870122034080588795445474924618569536486444924104432077134494704956584678850987433944221254487706647809158846074998871240076521705751797883416625624940758906970400028121042762177111777805315317141011704666599146697987317613560067087480710131795236894275219484353056783002287856997829778347845878228911097625003026961561700250464338243776486102838312683303724292675263116533924731671112115881863851331620384005222165791286675294654906811317159934323597349498509040947621322298101726107059611645629909816290555208524790352406020172799747175342777592778625619432082750513121815628551222480939471234145170223735805772786160086883829523045926478780178899219902707769038953219681986151437803149974110692608867429622675756052317277752035361393621076738937645560606059216589466759551900400555908950229530942312482355212212415444006470340565734797663972394949946584578873039623090375033993856210242369025138680414577995698122445747178034173126453220416397232134044449487302315417676893752103068737880344170093954409627955898678723209512426893557309704509595684401755519881921802064052905518934947592600734852282101088194644544222318891319294689622002301443770269923007803085261180754519288770502109684249362713592518760777884665836150238913493333122310533923213624319263728910670503399282265263556209029798642472759772565508615487543574826471814145127000602389016207773224499435308899909501680328112194320481964387675863314798571911397815397807476150772211750826945863932045652098969855567814106968372884058746103378105444390943683583581381131168993855576975484149144534150912954070050194775486163075422641729394680367319805861833918328599130396072014455950449779212076124785645916160837059498786006970189409886400764436170933417270919143365013715766011480381430626238051432117348151005590134561011800790506381421527093085880928757034505078081454588199063361298279814117453392731208092897279222132980642946878242748740174505540677875708323731097591511776297844328474790817651809778726841611763250386121129143683437670235037111633072586988325871033632223810980901211019899176841491751233134015273384383723450093478604979294599158220125810459823092552872124137043614910205471855496118087642657651106054588147560443178479858453973128630162544876114852021706440411166076695059775783257039511087823082710647893902111569103927683845386333321565829659773103436032322545743637204124406408882673758433953679593123221343732099574988946995656473600729599983912881031974263125179714143201231127955189477817269141589117799195648125580018455065632952859859100090862180297756378925999164994642819302229355234667475932695165421402109136301819472270789012208728736170734864999815625547281137347987165695274890081443840532748378137824669174442296349147081570073525457070897726754693438226195468615331209533579238014609273510210119190218360675097308957528957746814229543394385493155339630380729169175846101460995055064803679304147236572039860073550760902317312501613204843583648177048481810991602442523271672190189334596378608787528701739359303013359011237102391712659047026349402830766876743638651327106280323174069317334482343564531850581353108549733350759966778712449058363675413289086240632456395357212524261170278028656043234942837301725574405837278267996031739364013287627701243679831144643694767053127249241047167001382478312865650649343418039004101780533950587724586655755229391582397084177298337282311525692609299594224000056062667867435792397245408481765197343626526894488855272027477874733598353672776140759171205132693448375299164998093602461784426757277679001919190703805220461232482391326104327191684512306023627893545432461769975753689041763650254785138246314658336383376023577899267298863216185839590363998183845827644912459809370430555596137973432613483049494968681089535696348281781288625364608420339465381944194571426668237183949183237090857485026656803989744066210536030640026081711266599541993687316094572288810920778822772036366844815325617284117690979266665522384688311371852991921631905201568631222820715599876468423552059285371757807656050367731309751912239738872246825805715974457404842987807352215984266766257807706201943040054255015831250301753409411719101929890384472503329880245014367968441694795954530459103138116218704567997866366174605957000344597011352518134600656553520347888117414994127482641521355677639403907103870881823380680335003804680017480822059109684420264464021877053401003180288166441530913939481564031928227854824145105031888251899700748622879421558957428202166570621880905780880503246769912972872103870736974064356674589202586565739785608595665341070359978320446336346485489497663885351045527298242290699848853696828046459745762651434359050938321243743333870516657149005907105670248879858043718151261004403814880407252440616429022478227152724112085065788838712493635106806365166743222327767755797399270376231914704732395512060705503992088442603708790843334261838413597078164829553714321961189503797714630007555975379570355227144931913217255644012830918050450089921870512118606933573153895935079030073672702331416532042340155374144268715405511647961143323024854404094069114561398730260395182816803448252543267385759005604320245372719291248645813334416985299391357478698957986439498023047116967157362283912018127312916589952759919220318372356827279385637331265479985912463275030060592567454979435088119295056854932593553187291418011364121874707526281068698301357605247194455932195535961045283031488391176930119658583431442489489856558425083410942950277197583352244291257364938075417113739243760143506829878493271299751228688196049835775158771780410697131966753477194792263651901633977128473907933611119140899830560336106098717178305543540356089529290818464143713929437813560482038947912574507707557510300242072662900180904229342494259060666141332287226980690145994511995478016399151412612525728280664331261657469388195106442167387180001100421848302580916543383749236411838885646851431500637319042951481469424314608952547072037405566913069220990804819452975110650464281054177552590951871318883591476599604131796020941530858553323877253802327276329773721431279682167162344211832018028814127474431688472184593927814354740999990722332030592629766112383279833169882539312620065037028844782866694044730794710476125586583752986236250999823233597155072338383324408152577819336426263043302658958170800451278873115935587747217256494700051636672577153920984095032745112153687300912199629522765913163709396860727134269262315475330437993316581107369643142171979434056391551210810813626268885697480680601169189417502722987415869917914534994624441940121978586013736608286907223651477139126874209665137875620591854328888341742920901563133283193575622089713765630978501563154982456445865424792935722828750608481453351352181729587932991171003247622205219464510536245051298843087134443950724426735146286179918323364598369637632722575691597239543830520866474742381511079273494836952396479268993698324917999502789500060459661313463363024949951480805329017902975182515875049007435187983511836032722772601717404535571658855578297291061958193517105548257930709100576358699019297217995168731175563144485648100220014254540554292734588371160209947945720823780436871894480563689182580244499631878342027491015335791072733625328906933474123802222011626277119308544850295419132004009998655666517756640953656197897818380451030356510131589458902871861086905893947136801484570018366495647203294334374298946427412551435905843484091954870152361403173913903616440198455051049121169792001201999605069949664030350863692903941007019450532016234872763232732449439630480890554251379723314751852070910250636859816795304818100739424531700238804759834323450414258431406361272109602282423378228090279765960777108493915174887316877713522390091171173509186006546200990249758527792542781659703834950580106261553336910937846597710529750223173074121778344189411845965861029801877874274456386696612772450384586052641510304089825777754474115332076407588167751497553804711629667771005876646159549677692705496239398570925507027406997814084312496536307186653371806058742242598165307052573834541577054292162998114917508611311765773172095615656478695474489271320608063545779462414531066983742113798168963823533304477883169339728728918103664083269856988254438516675862289930696434684897514840879039647604203610206021717394470263487633654393195229077383616738981178124248365578105034169451563626043003665743108476654877780128577923645418522447236171374229255841593135612866371670328072171553392646325730673063910854108868085742838588280602303341408550390973538726134511962926415995212789311354431460152730902553827104325966226743903745563612286139078319433570590038148700898661315398195857442330441970856696722293142730741384882788975588860799738704470203166834856941990965480298249319817657926829855629723010682777235162740783807431877827318211919695280051608791572128826337968231272562870001500182929757729993579094919640763442861575713544427898383040454702710194580042582021202344580630345033658147218549203679989972935353919681213319516537974539911149424445183033858841290401817818821376006659284941367754317451605409387110368715211640405821934471204482775960541694864539878326269548013915019038995931306703186616706637196402569286713887146631189192685682691995276457997718278759460961617218868109454651578869122410609814197268619255478789926315359472922825080542516906814010781796021885330762305563816316401922454503257656739259976517530801427160714308718862859836037465057134204670083432754230277047793311183666903232885306873879907135900740304907459889513647687608678443238248218930617570319563803230819719363567274196438726258706154330729637038127515170406005057594882723856345156390526577104264594760405569509598408889037620799566388017861855915944111725092313279771138032943765475090165169496509916073833937715833230245701948347400070437618671998483401631826008462619656284649118225688857521346375490254180833821383522245258726789379505375915603579454698509102256225455003017571049469833483545323835260787092219304581782306012370753280678368541306584636788866433486249368010198782799630670259543265137806007386392908564830874157618741897345848450141889765293411013722158643559915527113623322003526677859159890231446163321026519665907632061524383747619049531582968836265042094840105654589130629827717249809641959472340465110419821347689354018038256954956286039244264159867485982280060353862839166201252826607493306196584965199979419393226017235710733642537083033011433624985753635970424446475998999950855041354977558585934576590926533307252775416758431466936767806170350120038448748838233760344077515947781221883070900087386627362091660799050226989270321899760379509890591085910392967345614610700304581921273892599269610621167643642438350141020408632149917815297968152237983224273753657008553469979655413859050326836160222788475547062698439108852103020768604706804556846560491686498860616222952323907098092629302337956482179981632645827888877674520846371971063478923106675469355047615197781699025881840407927510901824482787052505976983753514306224450902202382439823125505841623207188319300693606464682096595006549290109716186526367216107417136183776673327975626854801245657682790317603946555394523143387567730349791578588591011663748455675847952713918608782540104233329857442747118969610485126401975043599092076621558998660736837623188358845081292950114665354828171448464056865246540907815471619625784469575262569455165601519164029217988548909373280314651922247590030965715490505361043776868772619159528449204647868973473708598413845131621192972012634240773694545981865029659233534512568454974541129819735876670728601616056204230636066130281496773445797737750557564665475256322648177116997857087122831543104569123262503497681152452174497396136748822046480519688754341969511933120450216051429384844754523821270143830957855813619678302310685080845876952059053294683384904712099162556365034003439670828933698367423001575117385151269123066172276414421607512917341874714315093241924914160969998672815823859257359823894849274919646152272273338746312138436262116379467062032630225055489580573083750461299231136299173069489407342588319483999274163950984439634057635284717562762192786522539608720131080486406534396168875452534263098969517619019770963192258709342165955974471750157538376741522280570650280683143356524917199733358403064153550759115974264366482846628136802174505909705894602744292632222215459450758046571206068639904308236939693208237490767561190171561305424813311715242568478463363770015204417916501168232575236160495749706390822443444510351219048819830276001766809850965245439007199098034993026860675523879685292194732393352370086650221407464554037222343481675749373144640928379006539196774010355861936181566836616864892395554961452826472894994160615803045867891461971728155451100056660542499691974102798740593276434953714525167694620698597880946950174730228414275718871940921209137994059430370504364838600434645227993302923901865922689874992113256560557840142335426058951056203690720289393159204404768359276364799600596404860761989159298194950878786027663459905404263770045900803279434720629825445256356479542992488198646136171314485773469953475577155491384239289401754034139973846169481293479242234609743019627523013828607224496380953838401526567819764507588547855155492345234781646033062938842009950803260140918302574385770671025227243666905988908545015570754230316665924723528924702588624794887546252765727285151112878270673454310244515233456542284311039679528296250193698939983473961763988095735415260145372964681473821843600521099472119416591494716705203792255209633645848468041447780302164728623999264048363508773747824501638200895240322534379925790129265640155537754091751704419627285039126695956664877242967660367303453668734049079141886945214715827908157233969124039985869390855173079801955546128513408912061084012213617070570430060569246855916468834773320856891412679428448041384682813256929148160109786272696866867373917118931462269134894580427789899608144709524762905019260311649206867743318661546966896601822663578788750608856243562678932797354633904182108774638039216244772025672699596391824687788455497179038515839204748319903127622437066235092518775434140107112335865907748122063763459019884225472727655290504399502524440391136582670813300580588209460310208261341369127572936992893029961730892843670315238589753987388936807441526373794240506448764171768613552343269865728970463069180174277972173889859443284852057257588337563820150546720651674252681894851673328046307647813293132602893229366045210213189812987661526244487486693890406178469916665417485084597970146178215845014919572109825089234517474512254327386819725864944588083771398685065984085457731654169174067052111949166286337732263753475666370022120327524389997736006074042702972203634778048298834855189525079474605519940340110771169725644261005092059843362535847069597185762616776630211747878341975644501838041029203240408826617344339090263522350506828582854432839618480925376130820115626869907999117084755586982150310073563240421988569584200682439926953784403202222374628147659230605547476936830576549677690471159625502474507809624837449908025613750915622359081010534493941774294277091445166668700415228544638076615351141556487854936011387473103828773313388391709646174829063156788065182761765798535021665998607464012674884121130098549938337106031962506702797524310119377335548537011694674858888363080333287739571656275340367272180705622562326374148833499289970258977299224036941750743427314194157432466794578586039894075097356363688815672159676354380665593938934382075984061216064317664421902677773799145579945031468708716266226524133590569928494006372744908821635242948022566330458553636337251762049074624062938962390622030424872688432377631733574205753997574373508409657792180880089420590662572782307692788656445563758012667280952527379828030076636976928164844651277473822397061738567507146692748220374881122563994075227626464994658463674019559973702838393119884822335539964978333165008467491254522956512409390963784095416901234675375280139080830863022653352387069273071984654649454979101134287154636695543437462154391886526085366974366530588562164411648068912837357794341530609478457270987037976921346205969538843826760827659181773627669918727803754219954172428335791064520613736884708545165822193158645377018313401818827251099922917614711860529176551422881123566217241692680620648845317615164272953585798375412375876100415475805595730122459276711895277333823356043374201321392804317053379463646428351993014576706491847707768959885421647973371769625943938648074893633201098893643528324494132569317438323509258286421276209473432879984387198291625035886368857440896091619767553023636147840186271827708891360398933077293060296717760258418030133475474406093218222662077059842476082637941388598601935208959821941885723823714271930349354518240112671046073097412681279072726438685681544729144826761389945092064098792647692574698812334642995267308237405720406143748700867048612599590178424976845844736824827947824753176338174814799571031203396345226743415123722322454626546328353564246627786460839872179127843089641636422237152822199860850600158245169478318926060165827491142774933502865503727691068107557826463340399219222602208590967841860013859653877265826244657597694069240541804444738471607901449743018055889337623761296918229234768453759556468421122698731637506249971182291485689604472527760093934343558339195165132985623645893149101860849683480338090932736261062054795970421298669883573560404347128399801249802209466851093490407878450102117684276345079137687609746900665759683043519266676563960922648845670212850744821184836102907689196493402300641753173483914758916672023069245347107627719792524997328576890388680141780313799483651089527220946591304506656658258539174690486872649902546765966599164547365134259755577397348506528439977384490513905829430130008366961455669748537793407881277215791487210719258869089277878732982982214574233273265987982756950898845306240223036486347722967056524127035887830281940074980575439016285786745531327197652607107643153112391526077219362144346096089758726934223674331613718574577608117751518069662104795585140130069701845007026290479492570837120175279378554957627391245587148332010170361840521636818017341425089806160634676330850504184585816629334093479199103685913053789482158651701181210113330006695775232786685518078256752836149494920745837336845813691407977595925267273966423478746614399819648081036705066005238269165055144634711116867428177319502560642951637959659475644987891461446925936629309364804816174059808214254340525211371332408113913579971622858101419103410460569290782498956214560041045692221416830893236662517618696271719453854998551484275173369241202680159928083201458300754484742331264387808478085056104304909999364345905195187494843696772757473359670883349609157447435750398602016397666114276536952670441155200193914842934601015129531174458876483070371677396154265591399083037577663021309908712719887069032930470124105861506399852998141757804303480803588203202011047607004755710169423412034108915643947825303164593730437558194686752534953230130276782353560116641311177996099793662043449569683547930754311327558643189731515171064432189249793277801264964764475467078165807406131259375271847408816115479818307816751047809291413954564631160581269051753953556915775580410671981231638405277556052272223764711883233223099585068971018717504781906533494858423259762256575841898529144717833517322602985786292943465056366932162627673816245957417932698892327220666636081992490988831468529940991386734446049670842442978243630232938910355965601739942201988690257245471401633009612146187208365108688185334060622017099515827070442337042180176696349133695996064322005328873494893135966030424380804565944743335678316727037296363675942169993795216709569239605768464124347542886216245149157793040476753348053033153307521541526385710525422090937728732169921993755078088729411025976039372079494630773816321627677758231545511712133606496443134498613014698318686111929868996577503784519451854724162206976130886307000710449638898858341033555502859580220113658542705557765562668931284762149536288307592916507067735066925352644695336056301100688585609305533142306464911577431203418266408784648989833436453569414451359565299946353194873235833654149912091860340699657865139372140627836385084775887199350057479097575575821175405351435523866639331618523705204967991251182676180080717649555661886440043165185901961567355270606851436442192137316100204985388311981864969315190493719216273102798831337759268776002675993022444055363142019164277411901370175415170402452994379515292362166695619231382936999237019398531726989373859914221290389848610849267471382592106802650550676862778123345733959989844690818355080097898838050307572662908675028309257586145638783656294981053573592917496461623137707802996548502550264310977934737337524379483252699651218500997055530858400309861246730432929767608197353492136895008495286646640838728286016708683549765123021169308056436872386411643645448955160189710984522491878379890966570195078344359051912278712755757733414151965739899834250985394949988141243867834464873827376170542306270476547318264631092291393359618691179772831791867789266428054498091940593562998414835665844886741681797338164265740108940859491300072021588718078252254566398621813980490305216416264740583335375040007401944822542799937106484915540517805980677612154774199779863715955202827504416259521370231996415590408422945370845053182339069574228180267420934592943172176664705528067554152692935177725126373997210446455205841575750464849453827350764901238368245042240627692293459944117496893475532632823427014968216980654553172552398001772054307127018595684369569896821609274381477524861268071826303308720453858655587689811222175453630040489748768999958305726483427590138858476503981930580029789904414320737977684158031959270878986203686850567428253092616139905181459089956386311375579715072615294130317445492402147964746006967031278643019018820326716298212114252367320903055760369513934774922721962527524190979265435827058619143826236169596554570620436214536914822593105671368762112020418219967004586305486471435319876530196330777690285679543242031748695423978897102466863258735101760481858925973866441814562327799457300954367413841317476805534437990136455326858247674930722202900176242045728990633288539907851099363098353777693682699124705280123778232411442696591393016391555798526705894127926299499436463694470124952235021746832175888475755348746313185164231799127100671136990144220424064070263374666063079096224489100129522953604036686289554466354237554841828524675610324706812483024928725253862445798579719593410540608705628706044299291933374984302929767568868612774974045445966764907689233866190175323317470499841583977555955451466511472508792000876600354880200354341610020305183536055028738150423024888224201947289340717085805566897943195571575730871119751374639571086211214874072275776032636482665098692074832278093537135164020890698676221406470136823982545108075317711863228682727633783528212174155204433402435700820641554371716349645643195200892645976028414305198296988235695119621048155662297295589421312543515213365886532922224290456208850741610776952764618857286629967391241027920346745904411550242722281550897848925808723123074856341281625659723015778555980028113681066356892739709682211691075159919634387328632629201508717133440668793907974147464307979333080873035698719317899381257885830615761983975641743625647621763309874170588059999652801469172287371518094117880206138274965442896592604996471821958296214671212080939644348004070447124162488767823158200105878565032378099290417553718057489140300242884391770346048989829471082770577892817470121245176253190918409307162964622812236802973323666124435869331175169666347680294629208522034563496792889670439307806791537848750850066089974053287840422088610933543981332125812323083611244408211512816512732499175306407958978872018917220734679395032969131268824194215802460569242870178218489689038094097461603250984979561010673833099080031030610623273280719103933857898803653226331288587588493359764699655904785345917976519080139726545812480950502874279621264289206096715928928596662751911845516371261980516927830644753500367390898138711962711507442635682622434301099632308185211282094860540532706943313655028782325012426696091909913326994373707341321077502051446264702381406223012585495214299304768475022588429094465242471206017272772932505883443651104529738473935942072626852387931086829030809655595590134562395542392852379311884025935005253481534222953347803554559778610086985318133062573910363923537390428356586131351283884522733674984196822550243685114937855272452177655956877624099053026256134408103683695435680852395523052628815095052507171773415550313877639119316720661902999244435131761416014843172628442837738319446899863061749834282402161930271425770576768541237158716334527693451990427356693545040375254639050787477825025408285191161819606119006659792959080766107210732529588732418057039430458592909920364514194752283577743102434837076492814142717099190128094188185144575359600878748052621212289966216277729848620201718774883691046302905667411677038849683178663211535119560453439860540202932233471619702890985446017052830982478177434296395989471138710305617435238267320650123792262353793696725252438626128226858048556769046513841492021753359156153240673679682599281376318084871440477118608697819703027671908010427058033918425787150417682388147490773175287953555058238774984179040090396562488354393310516827264160271674603139440215805186047972510074232810448465132126640074148806984200355166266846933269740692202640373506831721298994362375926499655227680229389812003725734159634256354158741219975987773579751423646751659964273643626108410171855266867978017425340041413187665416284844621550331942326302128117480852834127160417563426297896186359214732873873672694203634052596734138811832703362713913014107777287016256407669394276622830711711846242982728723021470267633538891167017193105043928258310537830524953904031758742939935394060558147511014286932645500797977023089784096414561911257188068645805256159634380324878116399174282037733688479355234881707888370098132337842673385415646164450171390384335952382039527899069566158301776853193821776129633949579923032979482333075571171457733545429404818067652516223171252457438333367744887838869525767143577591055712194136166155408115021128930500154964397564959583716953040005798235925948481313394223107417643490492590439641988997339959250424052794418453135072420266145400256336790234518361886727697290529885440012309435209845278594333382772208025665227845382614199424900507497393470549069398624053307361720832480251672370005674945925863234852428631673708949656027554570443573407126287237246101565716669486628658233896757493447439056857711282562329844093126286339122564725522333620075830814575611475823947498904444603437982518749703249992081428801157378733772198329275743967801910329116475707903909190179844972963905018286179464372109227030337865606750951106786967420881963441994477648892305324369902046628754616797189374920853292157425000612844800774281587438224317401256447668064171875578517823939138551137344891967236829604273661848321020560659365531063540786458106098743397747314075207840656074324904192163038905312801677704588892990100305442484436567019705245264494523894846061602983157114716045079637049737235748838903287650997996653079191515260766101054634682095026518084184832296266527566193128529460498572374403753167457479414212458293039825006443051575772694917463184109010110962502699903664495440542542142938680559710636467586597514545149935085838170298550606565446562801932139705607568436638967812376807725917423191981470059170449292503170689359987610414971973366352728956501902486157955877439693068990642135651712352823034393312962930161809449424946446233634380764077610280247359325555626601150583490532390819457101781766030810321811084123280098016925436129123628568957535372708515049092313886050683485068187358324479470998838807898590224860402145961136838870016113879350377902827296030054648848968218816327779571067879941099752187115374835211690427013397473702935492108934272861609111274876564778631805825694593498506846804861892691431054019085740014621362634150765122632827059656235013343217457295763251029599466058738619139364920829082521338319912630744635281639360107412906940282230041456107706969125262522452367118800665454226798725068780012622076276164680448052578166659658281787946299088442478823249893385489827514294910419807127863660338552431521603503343280724688204216987891259949287235557145251913128912791488337376465833611234704691419472266538783225937801735894318812009320716444160966358764419135650391210031949190047303195954997009584549393427933945472129273040919897442592158932547139439405295041503895371690130699203969186419522146031577542587690433389856191841420400909836237674679435519286180057627929713441938887903287428188691702246112912096332097497844927767959792704367247345324941138632648231213795395510725925266335319311225031798504735643123236320981602844284985810268768588725781436344140821764710208660069720624136259192674078302148890659103690163364388337285619905484223708596439346341462078222737288453241827483311859770008935494572941950257539156303030028696344894170412527024696127881501205781079718807182758357425794659574284324219790366939726434624042436536310729307714880389288034900303968358879602079891169858149535750079336470125533784262795624716453188038049282759266531180520722668865165588300942936672088325514751047647968479508577883323259681466046399702436699361100613130372497968310621980172277534267485537501140974263922020611802237883594776239188331516109960685515626250611706307922135017901278948349061096832015064692015979205858544340710577726839217845466619801058661646388594466066010764068276437055508206680876329704235849419982144493427454351579420323047670055154794306655993846075177548371277261263525013526247936756745214256645715613073641178194923159923439317388913320647445830149666834224735570506646644303656829076940602600980731503149510619229408674290686255310965727134097568786381333909635949541068903216344621529530400333220491469555961386240368505710908567419591401103664442306531473714057834553739945114867429015804932561301781807974334992811476831893198719549461034105963839610590279089070176242868766784840192269051267101607132870548559355260824521582896921886239985724317241470684480555586554087550113511264600148337069031253281262782854556298781956836384649569365784926399799357951602119435681186450907182504837804921127685751737260383991985187499661987389617246650068471969158883496399488776091656579823201353284993378766190452167766815657421570491775771087861458712080174545650491865100128202643872090015892438188447028140383940206437604450294408420374703108656622696626225539817801824554258186980391397312291173730380444881810364655536871367469097571803137889443280415757167110920467710626431568108399368876966637168009583921696865086973625722852980039565450822764832970381652851098568973976092719100844826713892754235524698742520417075622136751488305153495432164191810248230421938562037006064266984131204995677156433875274315552349364656155903287434976705523947041792961486984692325225711225766397017648662037828260863649917460300179837100454169980511457151376235960239789180907045151135973637650058946986170621152886390290358544208334672178465345352125819989962646744789035794528810579298385673391577266233824937633701990541303637614902688375797233832665213568264484725173110897226617534812008937174010904323064619498661152000335852953264242272212556145543648403899575270456109347342395333284286853933563144676244340656679429983698649711556925280395696757385406288269050581187788585034004537435848006794583908053356265417048502153432986985676834320577489603367137700317737076416019099567915397351663563644314866397901677715953717137699610608457523281237229752928863616532479872590250875158826042510398222252473630015503172974755629131502027578916939223701302499900684123489130293422838284520880638258302570993296142257714690583138179889582652860632352163484076305505843814265954861350982431057373669854000423931062316436742194941691614153265513366042949681928957483325878286630090847642404611487341191544291528775182711970250721769651552726799671666201910109126290476869540096230031405243679322073773821693491315671740797971673810326678869521552590609756378588225156863137116616771095165137325986628075919164590863022524487853881691455772837493407733998332370626698022069400952958611694325174161870610170771915127938031138248720625369017303121324557205065788942661043037752903124818561226901668632437558274897419586865208082394387966881747010831834948853751141792119059218986604945494551683728746750702786785852527334919711299718819308976870836294562412797694892556445784044459237809666563218062766468460212092243096178908163522262130175652095896204932600825473314440746089182103644044859323897240345256964094037683325518778965861024212825138640045018837189108711263540582161807695907829843194165998789707719807731025125024720524764755437880423172056979449817642897280109584960489695517650388029094798249408906199363509093687002477652275738684926502545879949807069508410018931336069491214081956091852396282152536922363336740747470509093665815859201338104121972848609181543115646490998044950795802696404815870919621337351728543419464745333588615288649309067279219429243747392619652834957455991121605023828401240208039989008958218170985076691349132772464741737455580393098691944813127133165142369260089219637587207491461233479513452954327056624164749914333383830716381991325338835188598381348123815310147025626607034269112670574399411057212403736296135701696592299969344569882509688943338678898310910298721753358070915655662953964347403734070871523221578475113178877733397100066561506252647745933136136404608723326298028805443184691324448800777515756256421330973570355830617113976107855074982560675782292146134712503690051521412099467028539444567098593466259506770393912742360382753414880141371910933800001994789406893174247900465740860007483623379105616188482931266222856540297966587648043206200507462841806041638339612637386952136205886976583883993845276947394954200303848968626987018120723592296245816501503714951544369794102437270332756733967105494991111670926786387044532976891261430008782102222165130346640617667820814935234173033505638249928578849223862197708095731168340127166622676294983622799854679994122519585289891834565568999083686692898903953575955931683738650384447666338096609558073702302879548223358626445124857002222198307859722009039136790832201130572531097459937812330650230739198677560540579574945504521176355621872940957048461262734344519248986182545908965139047387787586348450227742284036469619159161953944619720661882981215670502337803726168552584073710543905818996284066689549493362216580473071682773848496256692190105776270831686338301781819142469561842951983248991478897129605148467180929825585216703079555698902614336997406953974255281459507117959340037752354428642942429045487498121883221753423215794327147128648857349591891960709866672619731082824490322683003962622171447010710375347196903133874064876906668406418526929440539470715303267867504460104875902385004773652100350451391994246232998166231781509121101522452464436376794668535192319654182336068931156362457968314874087131778308402948058752467775324795093600413075739261285694181241478829683233569621417998764582671036131228658578615465385482971852864777607136916846190911552606026597855064813896626205197005631051042885521797544795505320148203814303804547529245934671501906821021724904456987016210209980706405622955297001899392886204710789439425469146352468998922990143098360734414432397334828446781546509755531397110067715238096184865130588015958658212957908577485452364993795616923273112090640024130684569170894882950807927493497027995479017670780600601740515558729791262775471568346731305829047228105567275135847834742736139096014498404517512432016643389818328017257561626571932639700788393999676060990609803267526928803220482775084280390791450386951321857461171061677954409071031858935851765861632009325050449815236051663587192359115917528622839139326741244468955900585792285396851127360476248656509819568543553722258336595764030082587676080327691087674812495312784981148755547078046590247610173078522416891717432338033857665552604951046648667974251843986571356514757368844974489198937241159033188370119958551236942389068129198884215037034833951696570167417270942820166998163884390955230276003568201695908776398830427560132353769559200657813954672617319003033215053340684672575416932319121430795421740797048756678884876591195321078312665330817459704546371803386131660689140511227147092123045043967011768793066841193006682970785300001805276517658874678275846984114631016639559964946965821085460499844687510145859578132649723537666991712324429016148657819799352719964674168875842490259539674131139209688215967932967432852826656471791065739966855771711789901186883329517562022835732249426803657581706241225748956424421318666103846265421820025662228985907860372190570323215018899286459672123041586536481071535539000184645608406493724141538945431986305765687643374391218490903553662105863514761975056203816881435224481990124829205994973426032758380390912540399159930947430603486664048528017634801313917668548100694297763534606980869131972157910878703411044367821419523217098751306085546437485024113400992987197857899862416024209288086133411632455004459619696052373090316460013039800940467427605908339070863602331394899334966708568980546857717372445995406902450694832448864481086123781500485239336436644723635377633067983753762187906914968513379403372876842464420090857355027311367080320459544764620966648798588088569909263239068212111652699697283725847815064879823984396569075193011433972230811530469277567070102210167971339935194645657118930874203854356237828052215594963996640314523227580578188566019450020024022883575823698143584629290025253079151549578335611969279387985272545260782148988358730067200834516077811002701989857940532122600909131312325925247336660395108922399836508309484004563892539961790613018061272962518723984178327204050158803234886935878163614859555216415835548685132917227236051063148770879701410194096811051365011691095868372083468082022531881964370624077758547899756463929222302388743240028828127383577619344235178889042034385113709971389335112177381670303168651330470906164183316989820031853057271850105090600296142729408545823281973764245505035274677327406888374108312676849346413923165994210569619485010006629529696272525161445552348350493893381774317553312461939982820869523261480333875328140526423164269924161411408016206283240128846284935534262357630666762972048658761825646222389613558539496082914389177182808443248725230130236668965343878018600360150171649546616087980508155520705129615146270706160124129368417109806278413706772301987968049306800222895907339225526481666399635937641136101551826295817064587277380053822895046407615006334957933550403718553044621161959436128107263461473510839767493348292385068599807037838025308001242086681750199900579562360880008475837829225903510942600593462002825134181524391556805343177145972883250925747615178329297793410342627550328268266513044740176754430872348722865767748980695061159746749879585575818838755558433316821039560065702352035190963002663764779517773071120627195166684631875791300039184796104376414994599597212660860012818584760278706112995199618926904506781219283677274360602249713514199521465737589561703501552822099687754921097942957860951165885859146130994277294392886118714170063093918550921620669063816363371226584819297066129101912009117963828443577937663231695823540864261006812590709702328668499363607754431461433645146639200100449398720913805292282981480243291527099485349936799844687369525832594596061999897846215370058097868444181482571733187303892518281285088829947100699277580733502300150322434942691935892241680486090430784448182794421062603898061054807344139852587410061019043731899400576904324297210493591407877071935212749446577744901052633819042748440971733116341726625524931517108619481864764131542733382230021050412134614828898421403936951155383046343591635832079497360324671531871790188361183474513740450164064203039608908460740099434431307697110650146420024010063431245404207888790391693017340002966710403608907472402538418115072994314958320223564909364084473328356635122335508268301235778780059149101095164014383162168890140763961781667614392295545794687203573968969683961310268724756295175874698266078652415044873043039961616463718029408708255486445499483405649632209103170916008947511188553063235477719719358846498855442696062893505246880013178626279995053377788311304322183943819703616929462346597465222479073401587272547712889255810748299426788706934257404778586574951722474369177797620894291725243683044676600542992454995510524864590955073270242813098889173862442301358041714571168681020693008432137864120882165250856384468202835426079622378104879306160962120900546139277662841273477623132835482172184141905744845181939751054487868198984407496548919098559471969601851758222968887541633347522408378789735773047908577447455612832821602155405827403413161537703062586834998055239041053409033738811097892658493252502816403962513760725633770146069167066532792804227640407793063244111032775696374294484490686818127257488752515929507723255805228951744072483441250997124044245002972241560389945556322416985246776479354588171146372494569645044664389731609845920532205528035042708713870365854532839860009701966815075588650203010222535040361547144307212036939817837395932005593384478099755206914052673265945310464643034539117170528062001382347585137236739411351633235133639414731121721897017894355903863378245820238085197854093837413899482506971560070581869717180488877187305565082199032657991670991375994715548887249049710488091233361596815086654533040897420918972630387979224917195931114681723497697060923389909780265009991656396813591561241167631050181066706074330026215993795136138087227630190138008467497974045326808087116989449828401641550417943378806215167122246384418339274360101226239888614315631640448778569771022755813543242162896665610766537527581122529967858804837843022491722938307559320162340428965920902597501754992326005980149983319280347655975453018792298336082007716307282505275653545578764793060152715159714058331188087203708668056251292305821109172362558488623845891426568076301434954074171517094515892875501695499111840858178229638258010945989540593570094411084063836105458984480043361447062204121053667779781031871209955187841489773469030701494082781643386447987813541928619686560273783351063011495218872477399881442580697720115350360670454497087331991751276747862257512673009834212856975144464400164670719735957723782880028443376649462827806920205928717790754417643349585668123022523683523956609982420767496043227874931810868704880862669249208573923338637614572568695058385974238082935007777350196507173178624443083034379426695131525299861771230396635786393540471239548256712106064485043450762554932488938909032885723540491416759238405957726792202222426334233767555789836316498369396754336479164137489982528729586195359402289266842574275563299728756389707218806777718559959407109028331597378952008787804003656090889867357802861255136036093310424595504144713773464998868544306774262547413990576404184256730735302705795280749855601356089667937425593827736770170883572239008649973041789662616357832225210578257649273739013985013061468168849339312697514100690262033749817867146058598177547428269968309142403958731250168331862961789723822019555503669132671576404928132510283142659583884581706466370843833790284331977185716531490046056470772764986588556555768286522900629386233120247044829976595281900134103219830584999889551861024304761859828979714523322140424299670549403824315205662779874087644156378985822912837278089808934231141976491894603256710914810802226120475657834278037000873143141963486671452722527039769205262274203426581043884495414501633916045920828107512246773473421931989638336413373390377527314999479702122485635854958920294034194178363986068599912714827099719060614751206329526056584307987519858607260899868297608738956007721938884007057775201407943395440100133039027602706916018240425534743865422358849355391881492792266635344554037388205070311199820212782896950964324617745039301384679582379166776660002711876725811989610297886973857047422968098645009043506835883520129038241548742806327037195310231316951437031830207973653212270132062296130332956164946204275360086143034956743430054922822565268407326636888702703347777179944033328576254784971778353979267371144998163339726174014723178325100889932000687150760857757536565656128387642016524913435354028192802514127693003374858178765937801609843662827855002935170401596040567581050304583919773611513930972873970201276524751450151031955317409444619072692633261636665074996040178375438691524973147576183626839083375051101503462344828068198390277441389160304480458017821183778939320922603271351908911928244613374097862142853211600055588341975888889031248819067909709332809915398960728115270295753536259810005325591276382805573065543467446566683564774719472283162317906672736183993223102076533774187715372647019857607705441299419039385427683134132487996815367048275318696287614595842245620435892702812540713583365530859397102704022861473805875320990701516754860372502822702968379548430315028970414603559348258128594050568208301392974321607488467515686008955385940196659205202785744872729589795752587093055935983160549712194166692915660109132226146288364438402453900603780255477798729048162275643016797846870340152676347525045453896570285849270190881702901893916918832796284651896494340641585628156686823359810520385209558615670636005331842256151863798153037563625580288816364427072412695348740831618443504444250888533018092564461609996091113951814430268489089658914088427569555776759816195630973346237300751045582007443281546875858870437836934166677713692663386518957094773112709376713868218124905496375117200881720669675800849753912517665840355747559801401012653081148724607157141352062126076477816230578665967909287973118375383715649233723133615052298569028873611609148291151522304121784160751009496769133398827034261917204042708155506550100511225476199195096393685765737449817253079495698233212936538833653750453306974244999985170886819018304141272644431961860521180580279926409223459508278000136248486483282881941280042156180099757955986853814446976661965062418190589851559890819113416035526750059080140649344466287104441781515942651749186224267662913856810773485680098316368933939766355535250662723749465580314337860980812473002848635642443438612054958308630757080060282543470593538670758352068905994691489504819309729067469040123607128190121721051192425925544251343664294738635977194265029127141898465187233841219398146213085426459916583414896849560360577604472346382310937149931022118475673470244252570669757559134447073008116804928888601345715559344236402544409797674634907611684061106523523332884863643970474132384886541581501970041871391570664678356994681385349172568485894123403079964696165066987819013495010675208425844180548428926368191477823781796776522759175276962455107630104675748554250510193865389994838498242114038312047798115302134713883725786107601427676170007053985046108369740617376663142531058246435525514989280531554273450180064131775570192010541025584709600586040176119502925374307956442661585116506973088914465734425092531287865181095928932703650890649123740617561910400585897524123408697796787262678600440129802190450476624903648952218512743907475705815258309709586983482152728804271677313878158052414139396229624609652281297956518906209844755171733141207710433202360167289075766824337190815842761424833492014409594893413743200400231527146841580713806377736489658756750912983540399956575429683697991345055670901687999952097007530439202253353189258925868878723559869921971701559998677907817273833318769527310721368361037755208841671401782405411825710921378214385014594371719517515485777022717149326225482884645167355015511647148485473029387913480434783909116400398354404904113220686054210671825339866059493855805681997498861581866845444468056131382113021837894169797390075107568749639863882565265007361695012028365859479365258533915606665496587653081949071384420399355868688726891761213619761092093909950365416115225387608416632445477323329453836240037176556443431390021550323742928975979022949741020082910816867856694472128966460572684988767532264651043157035667274282928045787045725205724826617491422460619712514495376294638630924136387795778977213538690053343126475150874186383784282514790729001760646468401147553307645423623467751285448938833353252366455233081775395891021373998608329345810685915202744575522489497359935804919088319926196767741044650823958191495023951917170035664107948818331008762080908566865737950737991174345728323049211096328045739104936032271499507858066128902787111497755375002110385907632250126322956826500148300699364782232756935523363736525868043425602510942239662738207710951863840152261368539721459844239472699351048636518315679159640004767962899840602797803769646565195510632912824846138558541449491700878176674336889221448315853713538117202429630115827478541657887193321382665098982595182876431915561147338895672101403721158211091324804682702387566873433389007826029931680536105659738675603271512754244511630993418852795035036922023696705725893974080648317593535786038332210840201489546644203962291143282590723291993563785329279115440043613420160574142101033824257773560259937083754560113644132438503757775538986755712985293795171358913086016355811609372610924981178517152756131516075986104279968089033995171224203675938612486202300954113346563608193864309737169111369794969439633455972627600543738535562868657173584596351237742461705156535661821886222476503413307182593833480738498518394267243073760944213139476618147339272738069693561428042269937357486099748029882203108760942408901254158047191697990832625336672814006564513795351714919381633561545539078456477032780762450371391335153144154691878224386226021240341610199270766675660831602793913268052539773176806855190162259065531147959507700775601447838277993348291531281141238864255941900982747025058163313332221093689861934977058765715766209264629906738603085557496927223774399842636740457811140641656359381549733355572519858820478811545346370177139011586184071406988743779251501250233568694682065791610895841221901858549525775996990843547565937106654101755787705410076908612171723734437290918917153599160318175938307243908676629866199320432906570127621662462126732384431735155926515250737551297391480840066953247787265825882824483421010122920133853256017878709043278161042188652676197581686286748989696414590607673237568379519437686334619884928423487663783167415673482016486829803423752869310851768962105433223334068749617492604871361302452754703713186344093155220070827390570174768434919190329561481951882795727849225579467420765079108968733369178275046129613285908372709076886322038310783647523324096488338201358370839677770440782949776685554973460822010073112577261682254649355818096203615943701433824183231493238994871593874050712053438407569087608774022578947819566100127690511574424854074623587342483153009703247130930868764779990444043898372249300546673784304063746385348020820301992929205968091793489381912808012512099351276584409455215475405458495795497807405583425162709886752146143778695908451044203937728408359232623473156902834945938220709174547653797529562453012572700422940637704499129888770627786039970984196039143679957460667468922595271867088924973836102810788187754406710059394072469411009917208882698823106326871634596228670560927693613659758771131188581805455584440826882061000978703057439863265357703808781845523419665859799587980032582210763716000432419848091401121343696590277503925882141517374803192838744902155518224947674703369745380001270682402405094347644072797974625036303036812718646556270182936492751146579239957523515939548813450345536007948755959706445713545358650180060434259327869792091572377212034946272749442485328826798107108318996999642094436660030758480481789976708767217811518396290413908394918322333978491879050238300793109634403238134811382999989313693846631153114068606348614394961466524723747162491786728292864742027391106041457060372125846074800789241343133605952266481447135885241970344742052788948946966635113237959785045032384045119402249481509115233933562744795236199209499807647709921082408987752897942950253573451115967129034372161742960116560581173959914518413646655463251032008034829440495626251381465205776439403866273269673894040982196502899480021251373929777265566052982011506402100337496413209332413080399373745446500343836112444749276746862184328285011502047667664006067618727576122619959760318115243462377309908140314842867441307212790729215164740088805763575716712667153744902782452469996477534203128851726514772140655494961404925753687945578594728519609352796176450652244309614690524298802869473571568958411582881656323764511241807798224326311287155807279562044990210409810577485544822475714315868965303765328873277970946969864642683662706655403778291118016360635907510511071070434779778264677257290985079556873149787126805531171661624728040253556598020170866307368918280946004272322268185050724980599660068296853665442794964069659519828763665153080916887165967689481260126771985461187392697493752415106759828490660879878560331312652980260518636912839525151658265212112575407093733996649135415487709716305209234366752412663920977089409685350974074777198499335840528689682752177695102760474700133917543300919945979296426839756484211521232203841272493513858668331527071966345340085153962281654230515984694022038771768751355115934243795126468979877090646956686676025390539075913978536019605809233782477852966332358548303788676374283972479518886325540424855526773290611781759502067109027317639841424288358389326510228371517054205813106140744078162117567207466944902940507460189646238304133309932430813504007604261449575207167527687302208667125634062486670617059004915368318891561632694176158761657227245026909560442210292932647054154079809853872962161781554638498508865625017144982755163221363323300501068084569819400400829688065515818158917750594463526959851791114508432716471319073581837850233003171807795607298589273852089958875077512092747366317868670618951781971236729490958658926547144454328561945852190989882496170960934634003612063597327334251097836759161735349558414482557084854633024804863436468499069398363367645681579317455625739022804809158022726056137262983168352716164789555730700138023737794749143705315711081437617785519631294059170594375337632939234671857145458543794605431394259567523881713566577838453006901070945397208022582009491017573591457541707666280780997337394594179231030077246934753493586065055033033165025717793256415450350242608247060572130998162604981238139455670526161754565317333124857607916324518761152772728887520801839647636113298845493268450708636866919195890185623691060989202425379065122940667355947613696709595135289676748082697610050486293895658233069336379286990112227041100353171109239867537494332145864797320399100634825699956450591799055647328373181342971355048829321799488309872039291105085565592259275434622073383756094587399432670848609884627315051295565419933445765520886027058673236218402847885887292945444782837972110367535636166777242114761886817721910744743911081354545951648958021680012643051456542607854043182586064965638323201467501690978300794946731879745790037944291977794523089833174308980411817750205424034826821035257991655313291719054409105295839375680268838717558672494189760366383581605680293647150231027494419435960115790150199652550449376500138403805574673083641745004969827051484693465241250881273963680132712415829396453428817758179830093450622479243477012867358557295870779095073729181548504617224538983413111821980590135995281486496527171388718449369397555614197090585041646713823903394179805586952919160486564301864877335641673502301206443917165461431962987037368324283046023402477935465626133731260391737730491333262136044808765381233712207322721585128884619956316148572292063117427633580154707248706891344131343316761896992549481950651979828706780200128933432675727957680439357712236082567498217752541695586781074024681623648401433203648351726690213609067805673848486605181563430019174608068153040950096641610517309113926002264539019322642785294602938048624308077226442146174682311854094245374845763563019896567668912965715276169522057572803422952679499742512298233895480339239041622224152879541420842703800538050582065722600311104532700685038664666474116224029261813617764912992018722248294005425777239652336023558209135668062111659406301154136584597880293127216442738580592525456851341067433998881449585830852179430926762754982485424491914926315834125165210386870501634153057437682668002005126580387411832343778307586114068782854251170024751225556534872317464989687404364456810010961539352783782988714987540815387409804243282852200054944279938252102952454864568725120720011614997344101350675547693006382341077529197903466356136617729801034932955958941105740621882401400220325616219774447675703996484778054069633333161116122626262506652429129865626901585177212900063202105524146281341038618864482581265582952781926067357200795729637939872046810287966992617121768775390180548613724081614155801935461326640658277115240997563224437744197491359690573855278021575056620909709818957363364087477717039394808630937849566435017790518545129432334017693173542898385798685400982274318889105524506866751730524485671973798761293256296606280131937237243107076833495589501671578574810839989244961373761536570558359305414638638474126933158746599290697290983311013094817428097675672207881386956450859790443105466474758796257222091279531922043981769819058446150633077747423038328919675016538741487046912601724778042380732839793349808361477938914773959371758803882399651469667966540964342433047959674600458818762864070413218791897092084209485321707724654389878081126633402888672255078157617440093554313821775131090219310445989473656390073085136721567698089118427253118091012203069653433102986505484275445302562220408564173578003309811270636792349580947915656288209821943011824384578694580141843411005201274140078454959540319197150396136541726872302528265468298258262407273630791104602569897286446088724050055026544479330408144478777828453806084843902101417203546085658948930059063754633582927311034259115155091095039782905309481818518621958421894704522068440401246024641350579486249151811443206030071188343947580472966031236608476049819108890796800445622837883789904970340626435937062605182399345527500580107800265500405679247712608990217450341128375304876040449014888799948546989666014639764301657412700225265596148009417830118672159452119562402749472904895999841521087262062180746090345240041108397596043180972387471991375396467514843864400793503132921275839155316898564567867782637235186519120261776051608894803615055794895534932637920561068146596204870513930960761214661650642601280949583051590377341638491080629385361882524986310445627805897749465213013860907030554166359704306845867561417540080879373878206253956030731785404831127997430989649783817668136903669906687282990946701554907086890469785074863433767524208000431363280750500936453985731860258635504009085115842252041308503125606110312631154007571214004043252043132233146285310939468904186423514275401053539339120077790771873692811767031957610482306007748167552907634979317415614166248629188302048662487102750090958614368323149679415141297051889630350718710816076193532705313186752786852882509154207100234568293216211775499936108449075677336027400229792626027360893561199562210780318875496569488097160232183237236656166680058018529818777002383577891405612401221401278819351492442345514542868807264154093692569719789344010108564160004166109397781957914073331376555973050155195628758448917923639374224849511176268451166676272680628811420529719885441717040014668258141315504872303570260445681058393254557548328608654720539504699290667081759506951987707727287011177702896683280158925963237146210799501544711507729926986903146374469093107203590563684736024320634437404923322123068573582369688732365443574458750749213579588932917912174666531863004879153201956135020425645721348442583873537412918991275154243153044427435592615792445782901355772298697228841985546968011854048148416844290838572758341838834786548625551345848465247071496243003086913315457160801858166873133837172730883919847779187048053010834819734270122426199482465884648585125656114932468267127119115299967559475699605095135170499727410687588569477978507779699106520753511476369443340600751240471352338469205090080056742049363786850137131431664300383372803473609355104798771831239221180697764424601519768702894239518783284753970381769540284370443502644344761276169233392347243464623079311286845208976449349369701343509681585695662691864948194433404936406733567678823459898115082080374132161971489742436323091870105601535833617506192480718423475983006759547321767254943934265741669302481394112213984272250286044409957774597752978654286594555411537213336134271247315501821581974543195278055489839548478196199858887992895888716979002923932019292381390041006190793788959026821353634352475108232253703022690482431330668190933973852472772690181219115636309347659962857137441824982811357855301491875360931171385589981310886945368288102318721302062305690730881143916718141775024795481983309536785070602252219485888321425520815169404437023104026812731039731685683214907319829164815620441046412839998898639352429974789280822988326386942547436566054045707661449543779571830254147426670433229843137622229359440510772520039400353220508948265454320980845791387473584639254172774314490517135475091108199697751686629079744729601367355596631921121713986888881630689407615964307586673008280554090450373536985546439545585454574000701135195874682904294190869349494750568307911725968898049308250880616515887092654359128101600032352832948336748061793695525892760883346883416197423760213752362207189601660899841990076272879968971403948650785597226190240638626841951321718972300032038433862363474852671096208082731695622909632018542223857875867917390313794322394429751155638273856128594849111369895692577976645940286677515877002167973307690697487907096304756933695684633436011228218870200774504974933739598929882526266471412252416970007399061061626321267232636064957365257606960612497151811189730954803688070817622004499986297518971301545981076030343431127846100451977530288840247666862889202517669576930624236131917892146347616467626220733268665838873084108641680258038413768130288195971450897608370334611559405527274930958065522330141991221014376431070514464380182007699406827459643950720589906474169299328195902216019170646590148942271648474038129733502747520872158791476564915728942011283058681443582366648322539858277091897817911400181660381713337112482489123746649375889213404329158848587294710225449780945032935537425321114798469440642064369408075806192563193818408791203651942516638238498473773037352218062927286088982804407698621835831833480841215690453186647899637516256052665333209787885091104538903979825119446151788919875443068525111118967992154800667271239245578733454610683545868344945222586465887998810180990769408706990921498312166039302097632697239663555507315910868669042684799278863264388377064066609249367469595502926350057154277638407262564299800066170471435588997793216090998125461043933958763747488285514947342296142105848021957205087724440087448290058779756648202702206029236544081568589116131448371706409845947189303079258747102741916768877450899534035173851124547627411626471297891929532837959165124178260057048022156659825752206827824959204153722464564951996111581104513417480367594438421427960549194504632873824808330581317431553936657814555798536043872379512254853654017099930813527374537336285333449235099064190737978382021694409832582196655698540543247314943699974939605984765366057485585013133501247882675130679068114419758770486576237072643267415808557570258877975957206762626084758322033296455805903742567391176794360458701038072171273628831110552571916446055940583299688818969080613187938647074461215600594475717580453887737489943604586544573321390329032083239754250287817515431515985518120579204900578841627335051614515147283951641032368640412160571690568282608498910635821913991259992719074778622139544968246362708797968377167735426791770393762250233616943433836250593098597197219749257507895143890159289483867021306637634838927219261220558525447872978228023180356103044350062101837973225030138017268865178893129860559624538183482457859576002662560538122794671836466847559083621594765446101526333952875984387346152245071660289855284595363046655671858326399423784465874980284842167935581120111186651461476492320622737386813957260008517404330277740944112203996501634001495354199543323069838119983220496889277311436785279046134523302518416684936801411154798369850681923689845570339313362284507298565387467797155177798778970772274760574814197824919034506858983415654027563559140191580026161857965064624957880035456439733186601713602222590136687941971468496018601347875997356698034731102982318137117650534396555387171837883981690715513399679872472559259968154918218218812507455665933384968705182017210662227015730976024979811541413478320832480222196710219374638830566864882862728697199619742037385944024293730253117417669740167464664648216130235083176864263346928429882444805263831232631725239524189139614258016916401997688627196445848929043946117466322097361095008480920995767912152579563913955161318605577726399171238920446393691390886860966362004369868612323029700530965348830952162421803687061890903975281540867017523906835218200963104370744614554846913758509555624915715022185580783252092734894429530605925434305309099393416631739854104795015740731778462689699526808796937301737322172169350802437594458388061018724233204023006278837432623591874302068773932418524373177039811540612750465498965069360669275814555879243212666098592112215748923858248705588341043048065998934976245780221509704703423408244516873521317338963627226386225998010698122101910438816968747583747542070966866782502686039041208242579162054624296909213984377787940716894630658187860244245688876091464783001215654387838828630819089534214300397033698374275037987935286565647941405791773769882602319445397491414591312651918282363167034529160224175930604002203141163400941533380596431988393795767723181153846998024671983981148487158964744755422376988247869316885504034763981159291953655949940510659033317825415273395608375020308907322163384185719927155616222880553388673935891260915564559950206936421741801177560791536115836685274819079141390450851900609186738463280924690647654716403403378722424965669666817952051543240252546594804505767351812911881227273214086917604041531988029797851332803472234916661032017418452175753240168972111245693951375917426605798684363115254603756631148342047788271110199766275055504611835929266965058593675306998844584555897804654408122191941562420159051126267046810564227247054917324236154192017612613386733896218608839713764543265902381129782117776684444525419179093944514829008065590562031970497583379881900464450975224181383111455315336135004375160141850716279391744396292127915973456573213453004369569785397639392788833121440676473365746922420254858553679616720783247154899582369012652302493100577798740388746504553915942672482987891279946501265516299749921602633154855400253932668932317373931832634471167550439936823665094863928174650202211467406802858148491955864324419201796061251318053080916271549060824291655191127949578183210280263443120571753753474466383718845081465475095772436373363044863448698029228197131358624866869844590922032113438367046567473041736287695387241853208639256130578151518568882122333039581577265887049205450616682756350026741069224557721044445304786654226085191944854530678372358478212353855524074205731479004117817370253195821082586963889788187222448586049432273328237889411348449290870346561059078257289403627562598395585741545610149171887532813581182730748506562329228218594528422961324674165810064739228263737375749609434423787886608594352310408476003661615715922422396120647069243739603390894147889288696054983278690139807782649336224952515705689865151688725830070658713378975228573013917691305790010948432584060944241211928290159219424786946097075131342022738191327685042962240772392388532456048895939825224124372106048053723844779768284768245747877983406461835223713655585227049285444032439476364049739709466164688732838763981838780922631603973542063319891286286051865644910080404832726234294289406012280064110496969115988716075552253948615737441758005967774915817745579475971422126126440122281910054549906948969998525744180669353867417022821064192878495986023466869341427739499801857766613207618582894172587551940999450773375349949928973961060314324409941013011756632990691708726629988511616962434016700636575370956838066503726691744922857282538891593943077285391519519569519905905335240340059776288935928942602654046041226266123741961377142952650455438304330282369918191183160715016250568464776205587071371578732595223888286472532681072268797233623632272050086677777302658384351211552906548170265568857100813255043716236398255971066326139875511941384321903910317917814241346628017217703678356148196848086635058403250049868107784122309730295242799967172073502036877344028293866301156957318278473535301363507032230758259631708183554338410837804714334936971471372298982463749150643532659364499557209342874097865731236182470094548340783679621264213044558731740469100369642326038937596349154177933784989158317234124108092134033550045198406275502824500959555491799978546499461306266064922272877057058150275534730457919840120714449008591337786974658894633311514972313214380801192290765796079877141227973192959599046912477782371492031645870142688881119702900972671171568712873862336423719894199073659606602285576626894388368474833176403394607523749429888581264718921737626680039896079719985312253329432937372420241100893794731051761186032814781889769959161172489203018586610180390784315928590557651490860960160200153257846111866716922516894212071042008499764451999549486534771335860907497883649925591561333302759143153011162751112550808128510502722668623651305973281585413730218199596977755984339302422336588055350130414449664157874841404935883390541040608111132638855650957583743324086251173330402467199947355922933209058646349357587285492070529204692338103008280544367177919348513423194184006679759150370179057484140477927090578982575332540098135042197286727846164758439192085327115245573936626331406594003182305742823727185724113619543425622693462867600702546997806963856236845524791993234424796696411475889488887113689295789461271589880659097688936980738960557098145370677134048547260892455330716553027450905392550493476324940779168669233261528989651750554394355703555701197709623953223465951504724417618537011085335998030384526201967447406351079899064230203547791094378721618943685045176101755199620393415525639610547989211707197863765236856785623928845954086222258887676040123548657318060051858463911611883254015100225360203713263927853577694566418051066210368740632590727828693247577238340432386109204183827783314020078708552011492536338960699341409448644319997557619214414368945083815983038504621811538667152778449904622248634173552253972733497673043886261149563181534677683018726937294546752917443920060724501505830775268970082317117853124750318619575561552918225116809103744884242928895106967473262125066309801360429409852298264340262879267815204355981690825690582365841702833966870402898010384389504599475960629110973988362365695568960696737644117647854332722504966428675407900594218626499893513520604846844410469141891975310016469211517969733773019475776966417316239886554898529614366186386325449348383007203467717684981293650669957002349751351721889636774126643209248891713000240924276283103859157726521710705704046233994536947006237215575387015288947466427587878729619355939645533026864465795163275366993968508220252047983222076690802274830724892600423843803007531147112515797890887422985650549699845685792870534207405348213600758635094680445536563746006018279684671615890141098380832282423203913723901309018715389978340145585501323103939120237869286565513935427549769289296029582997695157445565154292242134664620904502829024810201660444697977492560798518029473829171106664003841069019139268886273494388555556285233685892715634433679695635939322949025764715409005254112196521250856783249610278096828389950079629342654451829259387026651484635526434276110520672594023821467146626968513789721088199049137182917082124617988429524953549235834164655244741090140476742176474285738470325147474743527262230585961591466959675552938693990863688588231071836272270853450967457895625528911353113803723743375369561404822470673938799209574548575005818594309985442265998226419666268835509952914529072522940014142388894611522236768944380055077933771377141252503746583522603079466755553763512225241839702874405432235656714607854244232418370431356633978048651569431492594895030104792451782274299628681386296464805895436070244199465372426880065272667503713802087893018896342440844958170419400068562626301412418605133160156369808880194275385389236420704998571843845220711356339344411703338114423350760442265284985123426887240656943831785087444892190303654771655309008006905616173397664868753953114886480844931057757850921916723261951444986933256251932929306066814838023269234233788332306405883997952747633736485305756404153550440546869546770701313986361613017197755049242043732888027539774077486011830410084108193869990266623157918536823196572867227541906912837155532442879858016592036510948218852974394681191966634584609628958594466363797056278660139069670832373161987566502045108237671321208731827547277760788544187854599785309979312374822005972952793309848458216986957965724903967177873942379918763028707556625197099702659636184788488933979081434969370781125981510919783170703591874077524896763069754774957434405376695833147006638975549359961246437116233216867580734805426542033096403922700641267154452880288158358604497137709441874227429832528945417643885032642322622398614798293008875783904192750128909952441587871326950375500622522584173903196545488026600512841193205652217814518761051100017899432643719449862110816594857146681502168794120476230892340354871218351551004375696227812881952682973786363537921919396285487985418306724026889152846203500476955751375200976962349303223735692736085217348800193411507824541997926208673052836047372739045014667031175405533614021062632592468322105491871568605652239066812139152449362681627908344878379317039968065170813884742268653167900264209665897829117268255434264575819265602301757011698420201462835754404087884954920484806199427793167256149877162981448111578974586002071181548225289646362033227690701211780893526046852848605601374639754889401717969061416645228686740486380978673443270877725271249283358142956663702327890464959968724509021148456961980052307289023444580465679160966703861288014124379377019428663689004364264520248573069750005464345310702305480210495451517670674108795397144120464014510220655142471219985740598979740802785064565998145674505799647429448429776669903220986945952158612486234692709549706343060290420344147603150978174931356174879268341504818357553859326811577492482219996765373849607976649510695274425527361356108552956073632717280772501342797844139225630778306008464549805445487418650240267323624401748996367357619109939048667492621189477722612184612994528160895657229691151264391330151267526767986694135411098554346019516406587741691196672742716061474517474965839764717869294409308995717020433926247705695638876153292240301389305902702232382903948249439405854462823671039920231103448689746861538227247669072755907341975615566324305713914792023608820568050055240177366018747234451653596706831881031822736891027528834934866237870154360033258045885843216156954377630019918491864631260738875544015835352251019770224097403439880771202965428502242152263986856913342928389610975050239592222207471141732327655430702598056079428138494966358259739537714545153941033139729159453210357108923710121775400815155840983905416223035641724025046927134461801357654065835276707307581564382641090501952420805064980732939319142686144934124024462488956465433262709316596820449216169083511044737494431519755058335367679817868855731400876424779331715514385745254158694027373506296414617295672704826774059002045896123333948085723688806704535201080338409986248316757628332877555950458567484638487938568628740866932996100063286889870021175199921980149205066315365262143029008729901253723870863583783020438989227798184563811722013288413825616664386723023456304611574327656228828993017597252345575697317637442122991859356586543286672382294412219859115882110983271824976697377221786794996196823288704137007624981020869273691883366495688795503287159741031121184087352766462347296337407521088215685891355155294533729142885447804012614840927844476681715343870591618382518213111423603303297291122059315325709376029161315897296151710005085235256800368548085888099841076756537903182702376834531404525554933372690610571794111534641339170977289501690914064727232382924979459532753780093874478504822206252279778320936234384399980998320796038772704924802943999801289426668873311853453859137217938479652963433366483794995128659286795991513287641839475705490678451094266234682696180737516475784613600605524756004096068510009092359786625847888233257833227837758476196156738397896950258740369326655352884709844166340301813411168132859386356351922611449375916537559629163840488408589389924735181192105272290122540243987945511900123515897513290937577216070390867368483383952498814094919046988346457435068272519243551406232133543724286749942953129979830093015447265568882222137007186622055795820929276053864128235245777292404611186956686761945161514826522419331755694319305235240540843901483583828557595771348233397969458420350783176599608375388787089566009445593807076368002810048982854252716306212693639704693868150332389437917816838193174109759583862681654966236003801974824932016038744399795307688618491517161259414379870105430715609688014947503117430883679522406488274364486885092697568892686939763645157955577568705051677214787009009429941757321395198620103213575995557319143470831071717244656572310867631136105648564428913703653270596871854361208013302891635540650593201299191664713310256590489823822851811502195859893678172950901315072822566693005678524589741856589422449173879902812407953804255648412547272107217627660696475015926839434752260758221905077714063578366992429073024906070807832917795450249732522433696447451445351076620045402142969745324263328281934794988318817477101494270806520036192865848189916637754643801279030883264762000884104724861689602707035238823289606917024900835315442947529250643570348578416748863252011655213079942982280649666975166641364046385205305193861063946334857291432987012685722231875999634995555481774218606300250936185108907724773913771726088796856782821410551160334381283475087365320922683645362168693801489350542487340880025421063350856490810537293765220540671337175293444575300712001932113809265420895122532507643524204990900872268844573097560837744330000844664561486902256973360668304110249912279407030843496917876454112583357800274206917666457110021156144712651647084466206045757536554878630873418274244186464842867636490858984894374661827806575120706695202524332752842798436017945805154594115386845784580616994947834295402325618536678202380131212109128686370739957785627209646524449137303427737825442700755395151488519444078651800423184936937060490158991481083180457365702246728431376694711731427943423786285120142064858268410268816189753678046441487956234252778698814650221365474239031723635611146590373718068809821780646873877057146447157925156651320625080404444061416541812561724475995694584570522925308493400122941727387483189201258445476026437707722181360179401684078524125964106913541469957411343475306335513281393211065268184713871380203835482157302559249487234211277065227405693689824295781056597281618498189222271405659209702667686732825875867533939373864701717053322172992630631490185958703938114475163654049953432405536071474696028186718763380580572270553805073560185070690147443919472116333012865695110557884915818917674729962722415172097703699529923957256481083784227535385104518721602418538295065352937878496594567970876219111013099582099192992769389761153376984273448971548672706069744810599038454299016654887128633956759180543694081830124187975316898601414612052673150200987956177155833411508267555713660763728064452242752727887268919930770776163706581398897596081354927921082178311368566971429809214432400947079544796568700694499727647913265934499434239667320339400462054894836372964413363771579251594811539594846177981146028316552939530821654665088292128525476561877999048211407927791460438245865209681723686387250632980259674070335469035040794672460597550407394270382627489724131554663644109945070193647882010052259103528894086049803040759980404145278975793799771984055738135291767813705879525724598117163099875768942595259092224367663352459513837127692921703174066256268885399181286534988923149383366728198176678458087028366784514370954027040038292868009052527485451986851362130232043522751683867321585399688378657942048665205471461796333091758021349983988910819106943121512461503338278499677888491441691686098393517082322666841546781317303726168754112928608783773099982968032226759377958869211817678602182379668107337190732851766494848631638286310082392018990627818042227357578739478523297517697491344099714945119079592839706837961085296420561473376060088143157773948022658458953278110036533795298072386394945866169826603142941800525340484463162915327082422919528342282920400953175984980688177693195354525015814750629976482822734433084819392827119826426695052006528108717295770485746467029224246295378631041394738936994550296480209091842867663594185099239580253531333448449028152901855644964319683847758723370792690166871811284663795302649555724368509091089198297154363827471480455661207846670283944983185117196807937988321269735901220299621644076708321675893118963009970415233408511980641166485153321239722696858168052590564984714478315711444843094912877067464731856568506415094123599609365752875607370332702965125344372375513813375631609053611447995815228319584961267788439203740038525077597240525662694515353116170485274139159201397764677274152940594379410891659282275906945512033792658452536462076799180696863593024902354963137463571917900809491241595510200308261348623577981394335313779316055700401641485477951762771768276686984780970808415011132727802235412101429924494380005991358201712237240117910487835019749196733097946717405680121490433093929301490172895386028135118040884927496203176265806555331412952915763168874244523950191830048718600840102415757719645882347662891291448647126962630126157047606866019055411123152554770180212219451978441518278108068282135389547576971940232966175038018638033976582607014203918058916340172599069578781023475338291004957342076218271704072235942106966571923844364068832102945212972886154618690308579793997162957134843106457217096149294828138808631153868125643664808495600317719343966624660594134510510977273904466997838679299986596463953524889392668505781648477685338224172114267428791738533343424280385609879867082885351106641828119730001250946587071380414527050690910940996914924984831626095943189802095441676516430769863332690914378256317675854858005808548536537635627798261136891929343341807671822797247272084379086866660781733249058692693370553818093942168437160930236014606880140594481530805250894292616594395821725545072953664908655162535599381631854259068268949106280285650557334360352290279017540927746913585811718717684627674711470659209880110329052059819412411509810580010879657453867998746619737908461643562617640845736516546261391531732682381034273781107624360087617031651985124850611952577098592739592136478313734361033430788910809393590638052146871713935180329755667070041649309785956621151857977731101993980093562015861643641173016765655140265844938555057311654381354489737236954122817404249688661161543285895518204612708992830509101271244063268869585029313368839518779069933937637323800196174593726630890675642656388958928126475003614831756385218563758927338966051127094205266261789491767287566343237567766859412017778117412753822092198550821826479663252882263072123433943772469769318464180620812535371088879817009043269628395737146543775462710164463868024200152784129956162333402567123102720883767392497071008883406173883917888553304866391546887381366546097531719046464298423742415456445432771748959016888793872041182185825316594366539812515036838735858175205986348800163734371306549357084660841427308388053143564592983709737199196100429606094157545553407360900256595299484533138130908061774807456358447374720903585344486025460413924379673379670325871171697887629540183691233864171204536124072633784073675113799170904656721060100299673507777207848586243682213151300327983784523642277159481761752275193225254699623837456633042228647342842753911534193598476802357764179598228681329951837166521165738707498551008402271835245844359098251791233393988563817715650822651531686558624747159258394882933216959466800972497313207690313723190080331562006949412856902142920846254847015831902729854083318369478169401110922709014200160357371123692224987953093832063432589747543521427524531774105968621174231921097633203068278832533423681553360627252052170556032451825842738775920411935561656629941436572999059414000003429940741895260924241767713711512395542347939430256330901854765209414355155150950385776262546689277137547021043388211968824229787671748417534864771409210681500044404053517414676680838786468844757388352316080428794197426723703673958846723654420915412143966187837737106051412208151736388271056851517124741994585432580500294128194063130939399756359090117810525524436016766338581856931619444891939614875047495056609195407570922495384452712794986666473393762561817302566901180934398337536695616428584979707598000789451075394753744713953396295547331655975254557312174523458949582665250494698242609516043697178420258762126319675469443226822963218148080192885562873677124943486531923152292669955630820043710041492310894116126795396523009353840006209597666383946982075929026765013225113016088032348447568401250885238186064230590943491430688695702583240435795326226317261447703193574102869114835481891060893218294692842298482528345165181055393322639677086615570784052839622330998621011790021538433614118506084000694382353532917389549747155359818711339329601695893082161763616760096189320375777383451363749079450691488063906764561439408274563853762046094048311961930248582624900461838122130149249831874543016748817837503759803233792782190293772892278687084721806803175744914826071537157113132123367106083081534247621678535043045462447197148070518313756063157093481122021125070945570963498207812615299311291304377142497233018769259872012479004745644684445164485077159237508418007181024963645953466496089869507768391055087733471964571665904944634618391357563629215147317697154787137901502697555538264953041472822190798578759012672867973140236432827009088707076301194065934428122092489260869151695360322342966417811234155018086551677641305121814999958946938352644230966850030056546431062447518315234113467977155369958484059818478533901083084474091177192530443960771573883606159970216743511723314905289264799424247155243915188477356726754883283943043750474874163805896883673177018949293444574656216839149352408315601274037993140794919648712368773519170173659658107829306916460040652191139445866849075915230991793265848268542898740052693636605132471891260411505520104503725253287671776934551996944231386506548187591138778872201512266324392832094973979511704042906355024009877663769525395164838115268394507198400989309676185000936064785074766905261295688146796073863656790704900911710191070069781499856234929036986637335134035160596010533086452078720394070017547232312683159080892930190717699029837552205830275869229185395407722773657966579337287774825570069725565813384734478651728946962395766656827382248212483949632354529326929495275889222057004445587678882587617693078079478259047622776241587476140905766140221214971301123143442657442464064042835257172384869097586627684089346508917265210121381041588501264276098328555693680812521025838579018075104677917516956328823998104093776067306056794532226757881199584526147423441214190041623465975372112769043497752815802008252210461448716877757965104919449373749873899481045570871865983956312128181960455518757650212021741895379928950957221102791740764280747030723332794590455591302705187330221430810967410794219471864924910185837074373168680284947272967245693764252932994561847223171809800638407884233202696545893184719733363565397707957098446982763772200700571545715599794675933306155702436417395397999719955183770577329807124087439676017708447873564200487250312947254070123989278631294884934082717346501981216020480989203531691348865185615789249308745352323114554868455803263518406735905415436232119399180520752702449585314976408489792233109718429230411984962317003680212283961827874340192803379150521629366579147090533449480387524273480411886442567171018163583122899366687471182535479374403013786513301407109991726768568321267702338120812110462686186085099426960363736116119558025750246641261990778169751685160674552581670798020552459795005447491153171525113025542633453483355911706532637240623391369127085497589998089813078818975219408474294657176714558966945782540115834520298542304218495597368614401191919296844905173500965585500070583787926655708636087324846225137183630277831855075886201911743516891715573698223137831401179237280407289628759935924482383549666690607516755320966258313979092996231427622002637349646929128659706186346241828753098743854234080930204025287479907684406643666628839221033532135455564990397451452818879219230716093530744028917097121665233478442086785471619977232994564863858373041142299113108274279877254973180638544800171054449712797479313135039578797389782276098114810119062954781760784241322787677843266306697703946077618827269694886666239882224308701467949516934220896143652359475485150503593265732719846376427245095576208886266555594864240835939856988215676522668380827718360258528274597368733267029398184853494329147383441123650980499622998859092816524497613701359307174464814897922585822129110208730846324671854643886441346615102927840564608681514523981941338082125903906497138787108987135336806480382382274289883235592937105319158524950725147903168191327525024235030561814391608460403673643015480512138095744779159165442950027049344701990982841629802388424879646173519532926265513881594946672316132761649554116839808583214506438745363235819911876334346565520475594392866255240100535321819177357420742963369842373691644617421214809691932463303725356709663243555061308361818796146737828885186803954892582305172131758043229887845900684443405074056010019430873566844314643645738793070178000190609931588282886269811009740766006098922299305196727693244028957500452462093395683134101909467035513370885749375161379950918174887414150256523357765962858923910109070641558478153610898379723496547244318124914111960332830648329312201389105933163903599256943315144267939692273012832139859043924359123396787484182223945762915214329457336110815208776888961267557024538650530938280700728543228979827342178662137304140589872209325019530401607682829020075974387509507226437291456344474909937190366283646424357121824745823666478562199186383741120510568876056652192476583014813597230198368349555537011668703825265173947063178538709344076212317756957036576064701771526564820031071888457303568105726982987946475830300114411669572454042981580892727723223671759717327676297345727238258923251832851903377266644527335938904480184442855691000012063747764027730875442411056282734228297839690360953819359465442015668667059586810167018923089350698693501187057252313364036471170032541998147164321795422572525619258030840111058791391446209189138339272434586903682177885393684852482096270844530953855792663200951565189713789109463312984717601717955971341074054261722678172384412164075148163725811996722419347195034056691928088526815502940008988065134925854101331033017391708050757560827006750429410747373527644642962312408986218182253726431160266881257577714007207089923798348677259434748056875528788559203145410510908677954517251377466675280797537791887684350811299916853254450560326918599518013802939577440669807748039727045737536805625150214214773103679897075082441897589346489218216225691023949684254243874843841502974039820703014058344995816904161420347702630675800932105726805322698064564166601514243740842137194588209713753739163572284814563265373991255180433219906843099780615756801463635311817853726950831377638493996921133310610829970688222509429442626140365953426843274966568953281059213454497640028087104756840800551380165558185399964782393012152232181573439471175318504548164999086277309453238414965780912671439613765779486188309736810706276661702520425996039534671472208609284512879184960912427023486333336035855709887508177522844684403220135309407698755649885027083165503653185413834633371187862042687756915457988122349524820201801712203812524479978394564012867038651026916828347681799688894111321488293264162940430867033682881292299469130104927894396962962576841201829106537768690662155155359507169816270099221589458373917115543939263835668644263090649544647692598271821156907132015927778228593138310195334671586780397828225894789687979475274098559726390673260754394534051836452036962139260600186842971602885203652759024568464971355406215992547312505842704734094145552615215245582429160240196009266272505510681227164278671965151801467586040495238090443255587863831892217379344506990106840622332831259930959066945382786251210609732308464830845098287824493674926391920941506698372362943406588530439634626028749846026312493579916406699898815023058432169495158848222425526512710093945056887988310393236589742575633566101038999527385037329619668129209694396173713491736354335023660979886223373011716940403048534037961021865684394637550018394603898287501799114581795118937940336597902271973922446583001390704159834729180831998732424358174124337668007446921599939791716029286500445661973911971057487576206332151912981618044368393060219100670301065834736075124204093663450088054455606842464428035116812796699375183416224854101828648465912330743972228225401249079641754107215563661113753263520887689577560953452054669385352792238162476585668187567163836797658688897760416735959509003023732306158564765661303473107399195769183057636247831519145332003253405162473185525244274045921660678058551219071867744562968490074694634005760802297684142635546004220202289793585613911821005404523512637701583482951343560085903104051713399275091220122199535977601541872524888329790264050871992540940008821134828507639446529254037065670332640347165451613024043376876408251742494807766547129913805685913326098672071558797457464713462340326074001632469979139989442822126107389667956669974855159660211779386475232764053665169641689189227117372005140473324583436437521683502019244328625484527137695658905330039887978039395261449908515084666412372485388442916280363945362222000934081615250515460375104374797177365679172591472509541255791906899370065605534220370082367375720216746822915021793130297017498021535671394395774515379731384331273299756285634329466163479280286497883409939838755613724875180789654060186670936436324213923195599826225970681230820308422137003574483002409094347338448678647441906555133634214267302150124874717058160447933839196278746276997493835431585481343298454347062445774476710116982503770602355036076552729316861244145268534549737418556490564939303792824644554262633559587921491778494139238174066811387422646551254656853267513961179756940093596060556671800809993525647824575812684322488832974174106652827057050959409444447970907666795804211616104777482219110828072571831960199970444525421907812070259985062228823581933557703879852696974964267958930477509089971519047210453235357839651806521892470176840874587735385946149141334516292233407030642167031350761900675607008278140331745361279956804585487878090524271554296811801232595943094828584251261200288416059219078139956966411809210868564812932120622679136189084499868273456481773063917334267150033569097339695075041024612381682946634273380724219780379934480537436697872759755052542918258045974311618453517454681785411117031478728447401359474058834682397542224495861103720070804074661834715653284349797040269544986596623124788995453321502206898835877575870704449406740996900556598060946542889985890657262323302836875242595446307040354678797836450370345398548824312501135431639047319109145524158930479975570037777003313772883579320399693453837847789645485613029940779951317893523547578399932396180123685230400399875653155471639590156117936428616587188808883786210793611386613104905932346578511574179517586269403039249185910023433400293354309441315094371823002128804850498417803506071048040473446619185919198765671502056912398838787440505747514788662234713335484941817877718000446662194264065213927552538405914453194261793241515064615501352910256905527437118581811327187111254745992187426961580508303755567616159610162543331687785733915117166199646562422724690342114375306911518765178936633307085404604605567479875171661733128713225727221434713648216517401136937915025852869500055049260479870059759458735238141038195422754361365898094726615263957670592664555079102384579007648765546909553745333472976609105405047008073812837688530322978632563227087576884802605157045452091905702496488674064071903246634483622169137277264378441003355680362893947112737593513091434200784306898789565620129795974242247053292583518441067074012605013206821057654271086513657390365632517471833937913679017785782463798986115603227207214412329832434580135725336450816126168367361537783413266018263846555591832542084934113256445969013223041233260314654840150061200954243320095028381443331126955597030254657926159231448974180149601992425146284411117404658342590554670608581411157765866289293973141424431080266142362120039792707061220283387887703056661124382643403472626584561149432042613871737959882840145372284102219442735492297345593786012835809374407366812989403743131908248893450135767588738617694468767776128431529210676784202559247186668845534547330006295867343266474830653507858938428764899662568965625396994525320554474550979581989233733329618175255932380245276484650058270591972523492355728915120864888843383099846782618302381885706874464553679181043126745400091225172147277014112442209366036884177272097305283587403358963743550344592434130520950926159550755352827989924184121426765182158295269620695332065580513179066878364330491448533893871351703553026045715023348201566156215047673697142333809737785730250099028959351223766176961790347332376050459447919424931606350238975393727061825882549351644999465022716836659436949511797934583998317149939045428928904284202242997700253550303887273127797802777307699777198165823864375612241095693112327150432452197275928305007033173520434818822556749103642922822876207262629844507162554234215242375897395172544954880081687376898983482411712762157108980123248244152302125405698306372493300914764284057103455185544925622793065999443947666928667484478342101903837034461397124727272480134269155016571131737265708147521322293863967801708763066700949799795593735620568313503276418470116414103580243648120798007866049240112582128366557174533030500435902575953412146488539786835382326411963500296723843234207764304965555550495695627076341116372838661581231036135056424692690875007189144186658766733081622937022958288088080611680591842357002167216591139772041240010965116762463470273449178467726694091708248769788367397495593261067633518140025472120260690459326133712378546315101224886023638946529007820068282000683415145446824602551040109218242599468579620154980762560346148303585588120064363795275896687310426067557054483281610344725097755968761114042451523015527509718589557761989955725092877284202954540398584749830016241663758900170606732587637862399048821336218102919371420012828353838272422261657273373108029541003244088932699607969779263347221072227120649226106457703310773646122087767601149150685031465166854816843809844974168184427473113124014526730157508654232368728894324674003610014775995581484828983223787521753936845051444090345765966812649770870873791470230434030609685238914805796709378002800237336295525260231848778875831295574536401961390165699482235043451398540284248781584349200433008197278650205510368031069578842214336163634442729308304170754930273725855897616833589877116943698615298636685709570080164689153765584383082804136254194804240384570475552884990270384605103403348640630636400189993264374793616857008349025271807573347640419114223154140346804274322160892019161551897479221253712586604366102744674610289972987796703693648767005457025982146733689183779448023373167812234965613881625852935668165090882168828744912375813115954749194334956634506611625724503227791515648846898073757120693541080969668128879143297541409186730458952159460239489529598022228792401505188345795597112443742447598697646138326064433170501519716230170895474222327615685530518987863327864055838058245599936440967888525942834625117992659038339390419458501601046440249597968961606166135307678891643697779926820151489096567014904426573590633298184512693535253408947605390558690122720048272252825623070363322853158798291074834190374898636190517162260987511759618145393818762968016244998195797838818955254745063724880480372027153807488058305911719855823034341177061932182324745747153121648904165111330266036285491345671731156122725023442177280909743622342407277653091936393153341421476341652197566233802596799587691010135622049099513521215750486692295123509489647797073954769351913862984953655746909920352860608962531920186329547950686334407587690964006977593813136950925593710832988913250704161798568176021503704501465236114831646402527557106325604188251140108170944439016566745038282534807821618531440812947774618275927832104600346027175427798275506851696619776930096496651851746874233277381726787114976155680683304489868615730523750262250923421789207226513558458454024475098034277133479156652577310842302077832940739818190764916749988681013776736965775725082016977211736239055268979707557982825237236211637348477326729175859672645029373212135923382195676100390560775651466067723228016975229315805050564229239754124780724902790796785078135327424962023345558668111396005926729346992388397718740368405906875071595882898851605672055390803057022010766740228000030376083305152146114511046528098133177280311096518955652330404681444153456835685867706526960074195677357997329087686347160918985794199904922970647905665898414441632258612482607063073088130150181554338848817265947085976666507062569113992066395590793895879829094765202161918277956907545740198577177370354496434651772353451178414451736978090322034621654274923684239513634245294886010124036845915649592642593321053150367616701555623617709063777347773008153723001436133731483199212279919485272633894629272030674004609673739911869342983998675405276831300477923221130113978286274560594503366258680399679729572132949588958504155989489786290309450262499517100649824619906039661789426147385574687460418599983007158566487156221883108817653450885163037383162656562600791264514779024376154129583270435175782603795852414571488392505592326582311865550407831188203052464502097303815672242017663089012340111859605397982655993909942019877142265678298378924256481729297351785825254889124003059990018372395355072094534512796140643193174692320743216721509936643054333675395005717830477581510260108189131150125801989722074739513880342012925983306059133298887498709629982768051107931123509864769499645274880621632769501405269362282279244423643773840592810260597028698333797028729345233262869974907590118938525782505111061268262516599959650224707676145670321343054400054262548015289544949546002158905492033424466335931267566157901484432591022023186812874734448838307741759708226048652021582285181261770301947026416471925973591295678675448145272363095044735345169885249397713461463159992383999538872933909125495761591193898979665381789337890095537799176690310493879785679066936910068248742966182359572527481573956573790600286858901055158261659883465544611568192515272320516011683500583803779830632701583383016326412213716366420785452157666480845936670920745802793447076167634614663779520372197920515539602326458161506106645734270847318512844572258197972131465021524198510359722629089478961108147547445335954006591886854070846373380598906490128540370033678171244784061626011799805624761529952867806979631431886843470811688646823173649289020211037064119774999602366635544367945193822869801738345663408064171537695821157332322706880472150631502247539456008818741913129054495293717843267108553368566156110998779644914224155373671457344878218305226800481333687328740034692710848545762791128023173565998111289406691658508803735475211417973141249736437632892026522680299075883546618832950076442572842672005569246491283347784996278782191605785082905420061928114715925029625800320356006768419035899458560106243541838828196243213825760528703730271260537497856430125774364751553315668724175568284090030251135143599269927391093989811876869004560773124585554778264721282993636134148362128020706252841283640315311887215849173405469157581033095960894912251422538041943621621842469238074364401675089990473902992383737034634837953630661551787872078441391549833583806368984660732114484257440676015182947694382433622923156139559697823128544137523801796791828156524662134899339746008513064118087198147605501041130664502895373567228251626707714584344353909437405007305333766326907053545215965682688031549072846213011223752114476231710866053930922525344026020917600816446385301729731841935928004126506610976835777636081184200097416329645387240281894636356593287708100067781305209492558423947429356017756971593915880417057594374898278276022625362094409439101802811935433429203517278117062946545800138547445721566617202893313301909407132603199695653681167623886927482721623238023125147177260973660452942416484979456564202494886225076443265856073131051709045672913572642777477360473372956453866784800224787493653583929435086707258803679075671174361217929961967220320887495289249920018056865884414387299612500978576375369064337059414357776080499755596093370414268008642834690897833203249047302557227081802673138759469402512762775436216156704723648881615479452191766465091690518237342810731488601810712361919472860005842369891731807041828921548638196278824584181243678553232021096689253590405793916195034138166758270437387363842008871644020940744600670050458763333971232809282967650852255503959992998380552110178768544059615149320006382244234413662990345210492837021428870004318454934038677695235537267085894993764363773201644052251529418542404726131819778414554724374000267557587664591805613901787250737429439383077877760108479603671020182968545262546500553195903332168107793667042395564654246679437499973444840831079080731648180594004856566303042244710677292848534776805564545887691147048605520969304850993586883424663522437025552154143997747659166097630045340929419096549096867906181146088547240700277788667506430250445129144008830245324033502046935964027712519951599337373804280115352954742393956093441034737919029613709858888440470718403751312628597772211824477193085115840163125174454956113817277363679807901885809936148667852084653828011453805442043239010102530131378401766408099073021313491710310243640515631840769362915979294240541897099856484148928978721022040092706059021656790423767098366954453560054615157375251277281156586227643253045194677260929828540453187448763318796820742751819955275458192505708397676526272110556012120151507550037465350131335065979549114208589836314266553574904446348091344428164361998425159944266877560425516411592275651553281850470734051472091559830817619724147072617360143192073616306984336756703700188859590617527147738629932611509483735486610806131805378475665777386094847283464748096101137446059222177542911237846397665273492768109471667934947008399090609826588928703229527776603381903167636674040899649366599421629235708168908206425206681313717733022113944949392583836813534933814266215491780231824089367288259251983138048700341524388657182346736115561046563733567119439193567521424050212296044508201198575047025692389140852068078680857381397872509531405525121810402753779197265308940242924066933465855004097430913357058242830994110873318876161946172356679545579649663931821457623831115144362825263370796522820663457655204328194144677501444854375059810799340647272319956693099307158080568410349607945862993207094171230920062996708792743616090072847167766799506554371335234369459932809559046398141684855687532190717853415905385691513711057336942473366979350208427137343997775002626467934986481459113309167686251618488143559116249941679430782823795114147129491468159188086239546070583743279401412549544646413762755111033308936684603607763987379713195996422751841383369265621147620911882862108880755042154651323384664246312231688936347756864889002629482571589079238556823335648432142006288614831665997178159045896186069070072670931824049649085714578623233031515747615961366979422510481246542999458255146800853435095402326342084716063265549230461424774912633316666318772273137305503054063591946188441673709796454427487825070170393005670472911432350805951194001467559012642549479313781202696865237812349894431657343522551693884797323534251506645053879140131077871530400848088175047810236879633091915353746741688396877998704801514535532305844217528402515636206577918582317461820765606359199164054352471752904419495092087504665195489788864329740098036357269300560753796786967316892826473189802376052444417353471661432726621638257399769847419116180259926727372989022419355375870409015144203928500728188962547150442050055270117401116027722801182470719200279978826246247831754377769541529894616906374124635322338250336841150259589151696616888403724889302080596540107364293513046463290092560536289862482840080305487496795222251974918372784980164780839312759558646822016706962551190976386129038582343691367257258356304599111467772600901267461433544540445299358174549809399621930232985084892116794136836350244327993401407178932828311542244817728042145810797095302875652581608923604420557873481121053453210281788936356632159536298450164820980138998598482323367454651693638576369156186592340036246996501049183467487765431965520574392077655331310585584262837312701697628458753986416956095239527566603601076159869648764672709880999338314632687195317894408649319960481446433687958938562217225632692706963740482615169709581479857701381679332154863234677711152234902854198176001423459058906159316679811882453156476334501922014697512796824484537447501460927765996423598058619996650245347285739143078255796549273068705192473356367279973030704491205442731781145802442574717352704202833855427979265836799180696386404027758080275245192514905112571216307291544542437500137604465814886031549629765947028018631869171559760848888896245810651911979038728898803036388343171423007459191702939356347774494726812804308733686331908702005222891558731805488116229773386959431584712128412931565560107915891159049651522969957774586498808429621444572677268580910299429837274793672651521289349195583732128275282732324306515026301348222659573908226605100455359770185969379644401268230207955749702339966191353297833467435216718207306150536221876272342520544177174361781317102386407801326863552037098119167702903150638924024834591696169477336508316049457997116277024488085115346848499192288975587411356881012484640366226295382321442972159333621615669263480951096967389461808785963652322054940751966698042808993067374314629758381187063291804254813543604572920708916392996701156622885046014117779952886226843082090738470783811259543179265267922452659645336142624058487502882083011412516059759465251586928505050966824656524232370975838731296501601216880273437820200506302720628993551241565208414027951937292903910956761265593187826861909641650752849665125987200421801439516946662046504259805515162621408727539485047657343350302685135925442901630640277983977175424090776855940196529709700067377695805781940433437150791490923831882230364070914621206945171240833333424132040516198815868471631307609837311651525187781190958237175364721431314324015519765843698245236357417172815680608706967076410175638406635700649017364388198120359514622375492252442422281437106427291612227233628558647130976359011860378635346838937600878123353171648427146364070550979066804527937736404047874572205373498405428405491065257968250310766056283671685650409107209809497471558327504875863445301136344167599087350928816269895267768383924616327940281606275846384401444916960899256345720308504811901239338964794533095991620957609267747638364265227307245930158257210344571504432307976508775169651301989972848365635615132126106019017304082961370890533481055753199226179134561397437229210124244321134368790172704417711019774147690010865044719443903135226434178387702601907881428177784621672304093023239217768898161302357696141738713228230091561318289008136747636297180000628302042301044999109870961149060208865540421002691303960444145746767581122306143758056350322412077490169026102639157952385288089771028161829838345289304120636740661254341533576404471277192296373572458803863614904768159181264759176919906406182802991170872788437703997880562056135976745420713713349674998831832880247327993697438987503385437912935717187378359811453243278549402573363819183877534485260315351172273754398594234780009247943841630691793679180257083130867928868361560080502917639554589978402052794822799862543225399133540124813034541275757115638624411682719563140867288597707115401863693098140387989040197821457881777471506835950995509994825349566578755051837774620330263216186760522634938085651982764871723784591670751880450893645317645959278808393101568999148126897789201423167247887340628174950573716247378069152443854568325485926841553899203165091893978071345716205598747413530222815858374583691814268427812950772373233537784264219016593475779005061536618914614980475884392464029934750784756912405775877660897997318791608880598550001024212856448776850951855395324837342962615266590134910395010159234032641388390647847464011948535054061013691006018452160522777639757789239159352418646837987819037744387319920992501198606189622325634389094345080765964827917049200284222854710164783842109669531193389837122655802540661906443673803765745183946818820050427402284922522044255079512978548619922505717622501095832486785627491180053023399405206439018558270217807501023673476509606421914136890269041369790618810603354472413993100475464031654367414121947845792936985106906838720902520526847557581519915428167083855430286026397695044547186782427138835153214085104726733347146754848431331781525392710804181228591828621382096545757447560944194249448306707696741519007618862534058287617676744025951481863697289814425103842669731484423134250899804448056728476007294784447462580812457004285392210333607659885770599279266790132050319372474801610088611054687273110000638783847062629905901935602099255070416224133656225211785109924429823061113083596417288617065760322591834045767723016679156869772038958481019611579599280612722363999720452374641210294121384363973514090417998547032844698712866707820766895573798329045414819023370835902036191225773464331410338884538982079203780786436454889217532731251586984327834916141665906834855751005468573882604511338854412084980841791468912515324230774588938985669086772446348881111731885743298034850579527387063866202007510996242086589330312627586709828630289570164661808155339715890352218655889685458129385043845086147420646797077293836898571725204908859267317485179601556488587029758136413579458742312949692873842438382241754240560128032580924060857297715490562797558650004658197136500404716665736223472388517038672314638800207721758056106641664958092316633681071737451933700353559037590244516456750325631014582474534359366501077919408899273314438351202314825637129380039524193012382758282779689632381555242395573453255984082565466693181716916896420415780543115892308704289280112462510544073134977679057787794765147781617801490122226947943470799203533778101341770927740093782648543706270072601454856114813889856078421736882647066315557477537147589931870030705328838249831279787242034189494150984099053409837996383174284314799735549310407507215494460086761547271095030481865058576491382459898215695165537697987225271239574281714218488027144288806884723856696942098584964335825646801030010209197321186085849489480849068579969641629018866435287465244830672228835142313779323413120218939726974166412887382087102813312531410874609620071945386212956794650618444507158161752229007602617553266325227204506337930819742553257114327079330038834149798640455010957792024810722546210400246992581948333318188337473512930962764337645119549401486454854225713689087161524309303819365795148197976399177337383614838592432244068346066740693353646656054022247931347520966548491006011001029827498986384540036631368623833064194782063440396847236752468468822682875208061196912547519755423797470423725852729874632263446182911156605526780718104313647122585928856145982165341321392027038589016812477410036793914089151184199511129340741713153877300414520064358164519563161088555939991764802993661366398175305549150847871647227281048367702770436630752737739892514141664623701034632003666512889374101183223120765551902831213862361322180615017916251257964421515975106356525050233845099245123629308341414530871906109387723033147368212146403133098790584984248235652564445425792720058338819003721170588619758593967736230672377126358712799796208259476988947981073393387043478541060231205572759270385253881027693998249523599578752671302386300758561274179309506579520703519504353124555648155772421638745878294234891899979933518742475752971446915184604095631983599689204225576017168317578218579113150586207788383494790652695795282745724130280745047454965544140557900850555831425327068457057822478074505858214193644960939040884319455584248818283431686561709044591612827700498124080034313847247868235393372253480651872335277631841922968721224240862036852984970282504703269813626091209739117693528962089122852511673202391121025234631253190275107473588105443621833031556688637661257832769845203959660978912835066119900931398489677570328237105638251540601397051497567328886388518539445699023343185308680550825047283116216902824201221114875900845240646260473821421834870263434567771941758681112425634629146878891992860391975243000260868103361501443653748571085390027638044285639410475844767546016842967104523839195118326866942265036135070724340461447984599488277584679818619813900543770453043861068543555666833814290547493184179911934660625066837174188601990658287789216012676802631397654906924296815579983053227562061021984493899626706743669835163782843726496716418079114628725029778855464201357940845433384632828359403822272550321000924811136308546345991981817645946021346799736445115741617721615984235119557944759950793605634610354069827820755821370660700409910309451959890094126414936471608202758281476568353455186085762440348253699067702530445830845427107281622423493622271923621216627221232853359448197418793785292274990779516451339668650234524683798426351265309290576649813453466218822769490813538755892699576226078776856167823192200815734308493039540183574871189723575438453832202421288070400870332959160702486598511668501942649368132221505718973684881121724479325589160539204452143700572566663984306588454679930044699273181956985123331528259442220429629585547644615173967962737181302961739217956452839673860234604952250758089585660831588548946953970075327300924475900454072202847416290878479761923168920215241108986644947274414061374435514228281622713997941231558707181859069760742978426693348300115313847255958324031051175655947039884443214093091598011176390960071662111534158798554823090090431708334699632033105652685151400110024868999508530262451090371593881008035112784083860448065552836961425861460639503887697161835348042098568211367243336999224538123802112744042470489706072186058091819913298848737397738512313985536163976549010397399013175016283304173120976006854254869491616012662291399454547696558237554967969052202906086944432980528520318232408839035423690858497307894634406218072626247918115257774456217163008862916454127279800577367990079397205223063720693834446050849362184266719917484588635613941666456078575703765828105897064704065788282270580054166927785035423510225681580319031940863430807827917972774518274074163564121732652773599852713729038726129206705929943809474546103542930593985851723357490651518589229764510824811334458060350701648596178697073513890897092286240306218982032390154821644289316081610977453009791189312725326111161209337114954078565758005309402651552845047194858391886497137750147661679973450577574429938827657959625520302342594471783435317945615492829431617193844697130029922251597093491831746156675816923717475065459145100725548948111114470990656923635435188489820336143477145874422341270871486816664725024725733062138417443666066932987381757942111445642024021601858579294579004756925680749968887129244331434221773968142121722809889942337121760790026974757482463521504976008970040376208646927894693695885165393392136120015568270110996389427679816057438049702395360978858942246697923469356108841593319689532915275379005332906658009625707196940858953323622518818831409878152592645363147482087240451278764495455574355217968217126231685273135658644322896465240978672663193298110957332293439316773894624620659540953112237266947716854414688468090288424771309258864905969163308217198403485716537383901171714297421092635751846682302364467217262996119937146486485727418453766128531406425780943433836434692361041887604675596347630355038028853941198891256775557689901089941620580341296971502756483689921316267637347180771132639809777004934467507493799396675678096086592082894736163710355634184202781868998829228006010662386422961986318271123695004174824647397287261009764312023694094962449206998553787088191132536879194205113204918802480931481090654663982341161102213419764473088896419754929159564016830932715123476145955695380460220090382950503416331916000620749062701235776114595545677241013337425717921787208534746970589533570730684669228467558635103616946315853391260441685218612491807602095640612627490357714677135158282708524584090038110523931470594497237949097098440234525782408254600470786108407817610146988354221570913862642830917346998773703059630684499177536089293907534853224709369284788856505857133542628270544589680906558937934531935931896696903238488876810168113510439433522778399257279218651203466868326216975818841468186678817221651435590982382582658206570137202789282444217513734075146901789507141498297650245385604026588237989139987687097131774017462261663997163755038863222553608252842624201149665127385431056297917845331997798082064429957914228139217268932202806920297604900792060320393303593747911070598588202853087953957493331737126197756703699577031799363253939730638230312460712588819989361866598269858280349998967990902964336262605857949934243602038846359569362228410779426906403741055728113566036880678612627825675396546912785970605491595258794701711676114939481785716113743091894182397327511649843762088986252025649421283482467523587244195765500810016239497511435801544484017980159956650000466636000818807631599182274920406003276826525399336572317671477725055527655712993976248572612341895029023825345939669798788370079504252761191405766521962757928881865345233854962662371724054886944236882993022101574364049773568911798225298778463126379632760909578730819128862793554216755152458762727270451236571790950898622215017168658623328140516342516360383090385154438856487896819863769591123656377143632211438221860782096597147959776737944974024985463079751175181933328435457041867280814688105703306926642748841485106728538355701381935463804095446604507243062354857815297196042376387636153930047770629017694617670534957755529039198997296629009552969711165553518587124897328928291279676460255608283778933726608619728010297690728981935899744605199668026031410794119262937650291828317673827607549432136517355404173618222060314748927809161769852785961212670142114484858568698614807927386355469680904637788410894966260626355649749134413688686367285451054762722445263486382725663160232844637732671125748833804968425546962563449466377016091828214247286042943859003294610490820182541771103131745714653877293406349777058952789744655466982812360295711051174469425310033761267292119778925057625867591253289233286478745966600270429206954978180738642569750753801941085485121539030263115075935295344553330736080808412363034701312568330619241557661829863376883590141725530540224752479432280375773191901955198650630924787131959172580217869668624642287824113636614399069843947709043357198542260567971172439490674626568744105346788778295681578997385408399947233823633927073961159530725928459918738600535161137004069414487531318422663526076044526575011834257196454647421806950005447970743819559209795499046669516222448804216973719804096253470679390893145804735574848314137698259704471192431104864963536261868821402569559837059324597883398802155364656813305873352619290194420417843692652102742293589874277101823512008507639666960990393309875492971899037732039059022856189815946823500475411892818589427708885549116812539910559395683339071198135820515816835732824830964842814859719488354710594940762609513022979275136098055942359533470179383822473417973668812378057645062876352486937318300553027398076946469882562260910615628850275660289953467833706241580852013505176743526677519437852259879432471110761031011955865835068827391757963010283214559613704477603909569085718476184007062760596879278910816675263688367520975799368368114365946878770781041631193012780982930353939427717634450249049419894558019214632993949161932958504399348611475980591010359631480313931673063635146991930828184255102362100850305509095920964138353452004312321751008009127827339758721503708773735107858959518064616979527985707542395752992949876846839950056834105525230453885203319178671592737109227317431513211918737245788942005308055114293431406047220280458101334335686248894112839258736058101662324208936194853361334502898057686443688368573570485387610903401642990680896855254508510323636583750240510278931508822010905975255506746910838554547869019390475978063839681469130023104124618463755202512868375417373462951870898113326542964680687241686499357476059994009090091541031905819803211339168771951318536790294709060839545506922591638136891060308865456645066275928331007468448051274533603480647421542776033192143860210829401434999726320397735654698800860554727370174818398871290730273220104135051630777813456731700557211333850511938422157714303335084739632021198579404000095930478389694480634209684080226671459753068012791085295110240165705963836383544720560519243077938877521627476739118445575574104040095714470432047375854568499845776068301514708771067545106341687251426286520105641056454807367065945678247702883268183334692223652228189512773300341238492574306308495140122487970537147206161999825604136381967568073801661378733404792932926441516241800513268450138403843125824606218644127076832587613718007629967082753009466565317428902175530723154752573311070627796991214784221135737135250880199592374056034093880381028522093033038406870308244059301224821984260168180046383228920134319033960868877955358892065953326174528341914880840426143733947232262764766693379329801486191982411457143718578434204299005512274686006419405862262786214325838882735942803113879695872474466135788269491560021822589944734987644368800439205978995999043010737176472041051853187775344126681264975440920615137816317312380021520841046307573170897556607813858985627455279681646674356293616546391063752075172112278588510852014544293358774778681426341389331031857886951092886603661163052535676902617654990691973298076080340501432583481068884640469002013111790739096966690255336526380584428934361718684669166430482921182277415601458069502053752123961076938394623967860400698863366601088144795743146891473908172740593459931171009606269300375819746803325100506826359248459006373106062782269464416921773728919999006999688725381552504249684665423132360598669985680529208509996004985975489964221012746078805172060348916478193982547256741297697772252450983369339109830594852190151027325814911777567460961179967694679271509634076032684421686214838492214852842708462629122889631368165980279646589852435450493662892350890402481349929037910937816926652206975347565949321093117883110583583672146371393270164983878609112183329042569635305791875556377053019807159085945744696993896291749769123962618390697309463121852016208525910787931062427549931672435977750171909553677829382206717460583549430407096084834851770833282465275405321455572180218315473881733725625579216639428415789286358167144475355177504448222260168559446908392073107223518703781916671844295117275628943173584509065272597891683560478657674497146844045428383934496222402029452145132555902514012253078495097144211711296001502862173649476229562610015045269758470376568620534586541357853650262918384194240059929942653701326212221724563631785112190286975612568650386268697462067182065944257153564816354004423616241364011221101712785265409820799498978249007237065110058891649053541078978457452232576738683531110117770660251423600048744981075383104714863450986741265322224241473206887140748318408572068875745047480491797531834406860959784774220897660274732016568436531483653760478271198348913854131056385116610923736745061635600740277972455142959961972823364295985468119604407530811526575220758727823463927205670022442990075110870101629971898214596091996348766739671937697648855067841775572463218071300981495796365943364638123246252771607127884109853956040994705590925436829475822289334113778418809880461549350847066853929024352381483071542899688534177341861460100802160354850934522802484646429089744475441643028077650815054017765440737945364804882666638227469509743576622909358410688243092255675153684470906304389123973157252870427737149152453184702094154172554810926005491057255740062165453448094243497638309927263555169039891506585763864833230146277033942255799832462151246458662984207161464156778258807200319967115240873821809421806786477734671051568867500561606588534252379031652714240013742996406493067755386925092039626032643075908584631873948553215516097181727779087124664256910092870532153965519579467177199761352496926809643656850689320780003185775796493552250542256366348905322230663584852021857651252830198475057121141423480959829530055050841966626303132941302561565070393758479063081616734278289106834633552400607228557106969525453589812162195458605052137625806010003297104419918709028781145573864892571071504155022644730315749711761518335502166003930738494406209692513721031349423021048964968956446720936937825093316433553798408035942483728698483943741477395252051868315139581727327376133202168638711488142017528968280848378769385379254666975100361386900206111575867388667457677893655465778403144634450446810570452335336891385655453332701693637861004732077288774688172776188755694959062935811102471865927174537579372919027039577040430516060661220365972547795797891729778721295255671422773122339673426614683791447980957870220690744393326589969889761171075952381767291314926426027397271069834498496313988784821822458144636863740934537851123416751529341384565216328611425887861980926469767657228436256906563456789269091542357977444685401992713203399786599481153810060314333442748466454142718586166476223478282955034482110900754133680372530188156329834431712765355455472015058854739057769856184533567742033545530977758285523536061053943233883856781396707146433473323098349067221801576209206146327339477197398723329256677795188376256261995626085001516787847004568241470704828783026544273565292611937878027569573955747039835914959064136586385207638535783848908788943239031718334823232695813831271770284201103454475114283235414375719096745986190423816764328697846870021576981780933682606872806204858317059947623884083681724767291568940300706115163962752123131808953323168996536907611409832545122744407841071348552163464860023618007403016361150532059727629192044756460542713377079788663279414200448159964850825529424028621362511731454062712488943849661021474544398186626173142809055282520905164083073115871770105888230194627474406636671449651111425706085996628487403071874261229639658352627942049949336359265540166137234920152113953199866584489672604972807212746530192460025460943814863538571563352158729438820662761235344048584804468339311727629873566585670644878455745642033699851549062314640669295585528421346162611232611987903325264422298407667058082359213296043040725930867782821389749658164479695802232997469797054147914830402543236451047806120766949895375774340587883621128188992754285416620583150267897047683388722030878831898274249458373392849723429245051535594656209685696754556781202817907564351093925388036027600502849299116208037312512342530527580732159676524163607617245973227434412370517772293508329832375429363105230544085434925422044271877227239172459594498532465357011680754701440541244436090480199599833474921324494407419599464576614248556484190445587116625125523946676260076279019781721704562159415681378380095288674337679036313618171002039809414669867584168027502296785472516026676852976159026877382359417244196362628315046139269877462358537417381376853211569638549313260880443578597609795248758890006093668864166596884515712558855098382519598877369219818194011074568253827439442269436721926589457657619263309326793783047712189988968551732075982294441468511986553132118310786422151154718305585146403946432899973667459241701336530500894906290363233628117850079160488009096059692209064258220592578424801662563352367200544899656295010718690150922436830512424715869897553517103238746226832570619916958584571257697478580736327000378072075990616415110600587981372453607777367039458914957865845116242151392122437075705094953825174236353439493984560273178740913867429795985983059610834993414214214530973665723948947922402192359219209903781862322033592632977008791490906758527466939735080092415024890123581054534366453963723030289261302571191295266770065791766676944482133318074905251431497032114614105367561007370731053012695233506952668737206238646049230399698785035216956200668018256816085089126292328090494110760595488118449255013990886644484675929843556581051088905489517574191032224189658435934438821804677281801554251499316817419711544813666904631292699993252853929282139984241731866422919826525472446699231681239603413639992696417937974747779710548723521050589316169277051109690323472774952373450200961130205697855268444829177091163589420570494387710244042911249405837513322024997654229283592221715141906655604692032184217843586954029989731163561984937891057270397109404208706638809866541020340630637787442313650724694193041611795322184618691554286718026142337968404463011346472622993312269413894222185722704648774805722562301396566188624295442418770241721249313146295065476053913139286712193870090637197153899253639179287902297361187379014480691335005853300803026190375663155151603915855245112534977941513361263081885940817885506473634282481915522800338562005193715010034263242147237321866182154745593047597350316464140357860275563686015729383050683180719616607823810342941800651691964518485626767637218268465368610251477457739359490886872375870771564659558453147952131880008296809289584520011916528027807181595057805453632827306461469923615219981430603138135739506025551683954766803224800965843344785235766400543556508610736427245571658396769875427879700296855548861841426449066518035800462399953574531555507566517212885847345205233753839229936924065301478191906091885534771626285119290037507524345025013176004673827457006425685349198413340058284271627153254195804713195416548194123120105288837844975607687888521863610236682789355416335318429917122259947314480523772064326983532099441440535817015088529592364736929439760570954313125177816252205872176451153762005195266930740585694724185139624846550908003400970134942929639155706571392674712403150778175429281881197226127838667942417258561495991844789283666950349575720384853116256185450329010638142620421242378905220559411834180105135595987101925061737285647832290655156986442789828236270125501481222506599793332339820182395881557243447411558853052471561703551062765122958088459858105379173642515204937054263627483838772141384989387308657327344355050995104511987988371932632625595359534519037253001743409221514424699459551045003591550148489882261223187007671683092695582204053858988154647726788026075643428563081228523359278213739899237115483308197224640496212927819182674707150396837944801805426271081717272277726290178583007905427716368413883748468135472313859157151103298494122543794291103283902893445784474632400830926003164588724532512003153319834330796178850102592732070115857908880475665779707379955969036295519307498748445766455718680651864096940268166804659049033104973867327288453178829682016229722565719267887900570278335521323971037865635872748988456410613219910017432158555242529698876015882327046281304517942084230284542017979706818218514418856635503867376312839898506120505877235272311881416953934465961177498950183784771835472904164416627762431217368452890165131507023291689572361031822308352208390360643087256108621218508633246484284639894653771274071322154493473030122416236957280508813908374373772741582424638577861245428214780784174620938686648945269779728065692733338130647635096576851526886800530630186266060510935712639396526368152867096421964694384595282556614088094530416642755138615183391882853453382050018759454254912283762138817234382076400083701131293676192064983051037425697155879175837440126945498307930981423573167927870837213694231346807609346137136109395482877640995710906505052890929908149246687528857839315318197835802201742624045954642246743447494050233764104582304376852703827792854164192687800174699017787815842929875828817600450492156559295389291312194598200960830718088824919651141781465589351990416167752212219917824592321049672754819203964052969115386711745071458692483640191680573670659855850104628471590224825250322096131346958445205742974328046070323907808674265434499870911853780240710660476073345169448586292663420568378065379212447396273381580152639706419922321536690809702216724827222252512811940440054898076487197781738400796969065569372417898094012452439777666621937500438738930134100026518023007867529979002594114951777476196346886526663938746322650007252717115510297965214406009438674655122775506896057226675950825530843968011931781092238086469851896843586615641473864960077681610187141212962437752504848288741738739638929753504799587369856472311345619746082669269610478575917632759643160062383218391651127842143198689143323472508888779346768007492401315476085077052925669386954974438459946874925934128706356246634498668789039126150866324574203372816350745026379836596830519520212630414516234449218473211503961463022332522330845436762285639036092190189803862808284681685996613189120054421941477782047505879589524108458735485214470135693725750779031668535971866432697592977501875775785352462540309023562239552856544094115381507736919372536610743306411347832837752778779722177847285178376556312340929468357802670010254842471427280846501988847775952615143372445518804834396714392381176843516126664299956438988107963077246425994289101779609808232168610324998317472310724106819648940898849388091488030682685352842186131365488958339073489148236244967629085961233388942051486504104933431620996945353028441328238657186825092862708123499860714771640697305655290596457464659962509665701774994921939881314351512129643780882699414043599891829037231614597691212388646978586318642668677361482093937881618751239483598913520293933918266544623925080455663404757975466215517867010407723514796513120153096537533938934228549347530862999262368985300908614632822089287393466019002789952198626705544808833787052239731701380746424972637317877781573202673963656029397911616876386160152949444983152028797172738633510122088298167979214648431112505749436264524624655400869479446337855493539901186470326945829939197689182157069115698803147177053449145074830192390885647239664363628164395643870737686381779326853571719076578033292047611532664690831844683309488542601710838594838336943075052608825014005953562194858693727080906775517864035752767534055970794826375104753932051203795553123087157521300856068283581940288882054770256182988526005230662506047388240315889321173962089919404548605858538172742892188706863799792690603315879662527197740838479236517096953211836531944052867040103073535351981133942438373328237659192871796437265612710156057849648349133535978836226013618007947183747825145519178665438688569855946792383179720999531453141124763759535296262426140627806435113185047944973504996722954505711475221855965009637238234422347292989899165085970019498449705245351091152923007799363749310013119417990203704506183455569230398133066000424113534773027138433119521220994618062636827647739820289321629181239558564775107753070960974761792498326471279321205278853804931085936953007366422910860376339515911211843174715735916420917608869175068324341017490026980024996771583540246511398647293601563277484926321649924396807836547851083489877671656180660878233004835858895499709080534043545322181574118140172353087061165380817221320042424924742320268652783130707825965371561129129748110977354862523927699274801817797536821670879875925158171977963519424620627929283414910061720820223340652976829838923028598528292798267882620993317089299284850055855790895001185613722716293711442651974397799571263074582080837574168368721352198249011247309851332292300121587279049138573375582284722290660266107906988607835494781057578073171069517023567165486490134727486295893364145466568034390004689490641005899837832805812137564624965325432408265674895147008125777797264148023955214428005206212306052027149816052494232521971638382215619331055753255218952118978129318538480411833262022521099619061544452268116908155929599744767095626987341779514873856423206581326727216317475156109874219027253420693641603634778095119722153453892570216170929100817654619799841403637150466138349879118920837615957139155390596857339250260609774289046703224760638277053210923954755871599865996947499519112803879743796288384269372429559499027702638253739987308023373224604998029557209431879161933626366065236215478435592775847951178039307170422538403436171035080450402008890342990699943822995293303160925029263540903568445684893390810046515574341086660835234300524150722283833502804951464678841086103550604498574468678085523865905880163875378332736715309570372080364630957676271117440016361591048770183333149231596362063862479401207826369179855324256013300898367608816826461569028970466844606542718185571140180473249810606780853199398273217971327688714409999218666893433475388557911359929817243006817984197996098690807780925808106851886130126103737051928875028490992165920320321255579954240144159756661571578717833801511462052072025017463163826283936730279025305457973097890686684678512415575368751978801112890689048709610320404060979038909383642690201833199295688924845523536413994470974682924658627551558455438282204205778134248991740953874529716616246390385206227498222531094864566775611192878858557397790830508132828951878622597184446193887929125126801330939087392822578227127355251956305353756823444375149204462092695448679951864349845711596808111409145728787691386398844878854785937643079684010040023359637049026213146605943838026864206965378952597913195696678494949770475973821798493820214717070952959174103028352215666269290989421621856048143398740924475066588439315164091525346384320803702177876748311961072359779131892498566712959502953266934799487925365956718911620120739213808076132387048697171192986756234961164582486041399579298750469451344347723644042793145067292638591764948594508141065747098813560570222638384202296201556535158813567471512958797670478297843397207884533544005685204501338730405998459784788693321459007404327808013544515940668390812282379468491052922466402515642386346909950997151134501928412375858624014831688449577031767163083926898098883717018028763704143250788757487618858201679677880252053856219933417918997872130066372028208279168756965176225023939161643400347409088287410978538372637987684755610069942483648257317548235534964663694395323013404151248921600064128986273520000408671354369112166378000343845654819022994420102457732095402227508387368639201121887310657995381822178944667623049821131364944972063416092416076981162506049016886359147793415175963949799339863030541809696073653167665929212747723982490578926964315235715642514921866551968283081229488436345359538777781791033507208516343785522552273984143719604825905342310186979570301781761725841824160763917776916883697469072018826574981472734566103275897385864498912865113784809055194554301254931756864123518895741228110981013938732273196873189440468389561908467659180472172289049553017942713233648504653190311787399746925462708671836715708812442392399133239565445673862260270747848112491230270679853432157787618226169179465278762848389292836710268005661671148922092745455042098800450190225642378485953005783914637630899258559780108651781722396819371090735035642119427367986695298052868281248264968189886388872471478632121290143846947083410080818535655335400596559975468098674211400114075588460569081934166777960808444236784948060526223078323727573973850167499388475868145741255318266795282562586802471793459038600326813699254925422770283646064470436205227427730113197333541394062785565349444196380721901311859597731269374867491181385919462923962219151158194997593425808414743768078301586893037314677168561009716197164828098095398150448362728734708908641870940391051164118225815088187188616170442880513744658319264538220672451350690008811937770355653504805033298169986530199698681433632617810394995394857844999683611664819359200769890143305870387709685386370283478486627906121445511171690821566160069036592245590916956011981005397808491460553797157667904229203963578193470160890707168379512469318505883034561755367291710601028205845173847609939136279706994996848057751291918520302611179170526955282055330403175967730026149919108882880193750858865688991171796858226872745951748657699148680386121773519065986074077517452993022658298409443421349357505354738061645716984584238299156667634332133394093824102368790481509324081431145149413935042921347719921905607479045607648336629045141656260905569321089635842436177946693245728207979724795108980378204914031366142644716676010352174854371834181722150080709086229319862977999388723401241557315360308132500938869577233326927007913137609210859186488759640958137283774196483683701956283206771817105013331821404081061166465752349288134838002420185518201274884674109384609076413902446644924578564857044992423011525136527007529140063655062674301340379427728211016008199944324007352450155962161683064820800903310072830100409635134902674800673536648850100703848301406708234949998656509088767226211872656035222752740426298335937432327881894586461422629183763163297877963663141666375919853038864131123080308326133115578937570595073581143225593517996059187235595590017749378807694478109570067553073719551672707528414432128148908884644490434549827867218244082984604392464707724884035444839200813228003223562094805536753103978540273533462438032118774242648793343319797051315685577848708768609332109155389906825346658177768217079912002550664938547873396670664851867735900155096118493360282320932217438805225761449114164460511405540388797422189198181823114436316982358952733956313059944343696702362566130261616779760975549603556273759688604886871612869027882837148877954735821863732216834225452122750156397184535354710553552294688465372484468755392472225638763211797249059985257161454817370307287368687321224583934881588249867175816758637942318817264685140856821236596384470128061989508765228564040847533363478497280726230421920146014425403924752728880074225185205962551960789888918996585971180417986614157244576198257490358638100673493685866663012107124841301934680186895984796100707376041332572475486614585781689317199355925891629074004689681727868573470888511529270028709912682425349290402561071028254986930735990165059286290795114704155612501097467273965373141255373837218495079590124375922452393851404875102310422409029901372816699238952033111070607594382260496249167027777256195843342423899530494506804304274163133887115486196014689501089269325534744626796457372752822826416307840413297917956650116073215513458113267467712824978656320277125468243933863491160228613305417421384144506089154016579940157058223116410443009856413204051162084613969034101946598308669788223044069744176484124456995592621135867655618487732043717831918357763392720795464570624317231110054356957948768156658482034919507966159463245635937295031581518025387005679822565834465255396657485456643370091670450411394713751485425101452986882166019530094199831270458661471542831512284929941254034388762507644213433078593853902643146453538807330310307725911477147448257435922035064284859065336188941844885474064053704114597599858123240681595740448862115647246447648567547490048141418394766178214908935117533113795904782076696222857699667075036680535741377867072705636084055064188038508922780637811078118204612901908723837487796351969332597331432254561206664805933439634833284730456613983305897394606797657723844774910292736949427359001704209675584031757370465394132587375120833041421703286831444968099779324022604600907611014481326748003351715541070957832836696424758687006018165151536178941161173758125194266841696476006654934182330685187236770335775300323492241777628313151106080677342994768809744898637053361657246465628988401104198917304929615243666618245019812532086350699265146306543179351638616147662349342062947706306537391287368636481341248384041531234321067738450269552368756743639785219341169980221315949410511680017785474097102089232298030349261348247674482973793584253601644129971791147539987349413247780930137634898542244647455908830660032307971123346365997159955058510357183398940007140830024887449869442833112212261113498756757572939520282985834087136912480904999929837264245082055773350454612826881311434492432798850318007906496048789892874841339720023555929459553461494407497852077237278821553198213607427264840024687858109047704748930258082616218594076823119635118419268343591361819326018863659890310018830355066555377350030709492858910823670868941616195091594734797130233647883938955478470743830625627142934093561577437268703337147836221433804554280214564218880418538546483320017292007684234803586711500361317084003035656686316946885689206123999457497489791113681033156086225978510964050751912797256890977229998490484842467849801557414155435897595164366304726829018041822297272956179713078049476950364187397586166531360846690425357846458507995653730132970150278361444657990838180732589604812832476339882990286363159184247360363407733414241720852000137182255196473840360441849485576206755090847184045016614078123108986292205140799839263081726893193375276087555153734658093247939082073263793611047986984870575651149151599382322903944555130619779883543096080842784365850818221642945557197111757007445332426346147033137444609112701906882203312240906345668633576616807160248365533692264667861249201920367717272860347535974932616985669340928086026889689425730023881803483032225687790357092980649155818483419073104035938399901094373984257514502432442817900296071049281437021041512245345046018899578968476442491473493145410395614585692577120899059884939588718349561159764167688994787860890104834580134381528522515057034122084250580190076756878996741756863706751069796105276186698996239008196164817384724360653912781106822126095633937759179489359675507715468876350004618708779201367735922808187773736677143033801189492433385556127417445620059440574423672345074920727760801905932296588037455427545369564960197896113633385337188689185446420699236716942803413150667375491561322762664740878479146308425329349909907972239370942398509856900867651973920717978941789897522811045489694944548814240994339207095163058241031090137284110236207999929649180715640846323878464010355165662064843809685786278772204512345975473333902020502569806023724553490672964236255380655072168354939658247994913367455993005718670184000778505304986059237784623616648941318690734591502525313766679996820782361343633984309514067530381392006012182161936515493606906615903030057225563099657218600929721558301607721033998422023399950282862428942270475238505596747806786932975618422844946477440092280234463899112448877050524303588916692093636286051337112442490263757814921731132703519246087973012155056040288110530087270133673063410491267431077149182143966076845250584037392655356684334537144876037706920859984017486831230084894879587664064230300445812626157901886502579063715832124586716692544951909241598085668457597398159243176336731455816743300218871885746264204022083682965131725218932293045083369347875460663657175573491681680783624193373586406071607432228824516181665450956383487275099492759656420140483338758645526350864707227315457649028580037336347552840507376639303390570302607029513558905994765397524746606323890531757357823385230543570838544670129602010553082914452993545724466988844811691019501580745903624488177685299695738219691952210244956417157132580411182008251862138328785616416608475041657595163401366765669195291457306790167513059351428357091520338776004872136625386135853139384208129741854830496674555921973335088125308870240689756994105721422785755957496109755025862535005405412256312755579519217162841073204453179733390492577355625503537072015094610649254974181293137437891949531804216131580995874541797822973041517500260708755059646193274165362273451756641220684147347384765999007900070811077462013369314096444015810442435080998717529747471158913050061428199687195866612259796396815705889599178084676419025450615733526249885975004437249884437368052551005525075707233681699702055991810335068899009876868784300827350885243525515095142350989291036739874017196044723248536619464897315420275147198562649327638311546835916948912319722671348322192563139764077790733137721439542849316426555887805491551388462989922744974091424627496788642720318398938013982801707239993601940495993384217227146434321967490086411581598331626894334661903033693483893846194807552692349605476205691311667531937315609229143760562760312212128194443463335319315407321433060712124408247582128697390065436917231542016699985675192606038121740911437040685827545093824199002575112067122087626442188684214131747700982089081743659251771195586576329359439661956993349742294900918046798664874725522089742035170796970119220142441328189634787261486813074465919770641608520549397750132929482865716878237693038813188319909446887406595823667139057927267640475980501097882683166064327430118406897619053854369709735164949114756071182416445463424400850022377118065236920781306795798428359890264455149194528009176610887858206907207352061397625827943974245701809456289695364623611551398914318559211972815271199364007416417895639731789846150304921811394257853469608789765260415646773916482599656321071797523537133040567118593036602896187924381593021957711368564084149027592797613858718449726604509984479995316042845629610615298101717724725106586162811415620564511209281201097598743251172198507850217067426597658737198042489633371172458147769867841164289345621078269845306181015816789700617103466046125342795048200360948604686162537067742945173178934246270667748588265181622421831815120641346117071881313984670023159811618370356650242536841170916827625084820560508824498781962897752497789887583527970739608463757824345572134373889564976449747449652784909839787527287345962007685114929898742240148762116576109787985947605645179393219340079427414946956229184633270728713308268265754740990840093940749031684612263165039839013760686958021705076845750769300309744451131872110125238738527477508178097399680164919500374197502009999352129084318596300752431555974302512833991469868773012469528630196689959519114516563212296849848828851689606403405125220560848253504541560386837749350254383185699136135573233319612254137710093988215940670734324511654211772587471196974619152181172253314648567284999616164956362947487746748412108734945449701384337218214749556034956767548819666931234204775376699435683669019527343818224037418015658296440396712029470827266308395014438500502786842279797418705508802556053553062650980973221762545530472496173417948715412671768431028526527378128108399425144320810850812672640409441475890607197100049426836046307902243282973908653727949959119756747088790855046989347908311178180109965998216781988124533349723873216975949424591591076520959390148223349523565714699772441597278410597071763982351682778558627338487692035098031947223334158422750063713575659659947019726552230666173428670994292621405866383083339442525225326849131534165950425460157418585535097864268240023368512828777423490872196762370972283845810181582237144709398235783867235583944334450130116329684912995924275457398828148013744214412573365467239870202078168067938073506482685937954022587649418958633842284495308006408646550440438657283556599811756680752169796658065440885500795362100753305419164747766985803334439696473136570774942391081928913386328453714503199466532219971880854313933685318790184612281843448749482987735498481680689444404837534420642362262200233059156214063302664072149492160668962533453456118975230220696520199983703629153370271893479234082887152940470911179425919000325747758403972178819292376834432864332804292933072291899970793994998624912469538006597034780879394379942742052720954516515991102959440714073478387085193607000364870656621239193827250950922824955314856501716056045256791862314523027017222226225500852100976646180226588765694338264372225788872246324329755979306329824458451960346395504323523083684316730797618807220204270782896573734047015862983769087813224807335608958979795156414674118839018993131483337475475620905090537978370631103657016011537810069632002143729554777057041788230819849170029166631423047543922847968991854966477310941031634618262710712090270400248850021053119139867700345425834722992429202855496462363350138344252370510183083629295728280937100515151349334828101124267222093361475641869416463965671030449517301426516970695533511846899782094927239973275283973385454509232051220712163956129885395143753071081292654777872530544824590837490728442100361862765569588536232848405943336165994242057451958311147486644238143665640181226703944279942522452813314482320730340150018414547223985378687009666674254368108312947030725166048470096978962963909294652989336570570829611692635649032538615796874801392367187175162548096386129208359072697836061735301956803439559915968768872933899222910816173059925151253833587807280508251675215609441796541705052271080615507571723683251192064924411066748061055346719549414959948396965626188909582481688485548395508281094524853679392187158783408693877862672304944002246472528997919227059076455664481508919034077581291164140233758717473906668034966408977015471673590294260914582428106181159162587038781933969494832300376753463168824207018852784896080136617599508041918691217996261782478525696287719986581524303483267583567926177680486671151761383648217352090324682903346165270099177369825491975398527508595478832758718123684016087039210837330117445088732988738068611736157693080205922298636865553457604158941688405326032008982136034989457812270139258841098808655906253687932440359524025342836995717478284462125093148891249375007660483608554466794184023007204588116492018444718843287687525543611745303818483672333586719498690476675839776080187593842436552830376660985879328455685523430097426475980240426627009430308867941289525880605994001623351107767036699921569006351798268959679184815876868323005882783342742125094967928842107394760852044113490862346609734710330116735691752395439527736618554905149955291634592356196921180295626249647691495550607427935265377326378219952338186176969267878671013809663401198776010590225055842739260258915009420203555029399829432659490989568885408599863459155910973374097515478960455820389238590481742636709945587270537110691151938633189322316853135061671502737535200370960196250853271189578374818193936010327687259507156595910044317625103632544882789618165226975496572125450121214080234777051482388206642231048276058597536284538748433281754640053823590398141865995526337920405021580588966387473935787271927917427648680135540403293683281656611646918434071618111387537649244065987024111656792216777322244171987890037609790266003350043325869763460854331903559148456782673986767718358354109104993792622894146478833000641851643442160718793932806312356759838688622800878124135732198615915166799223444078005924533883579440850896540727586341313440234698360406335682238593287832166289745637277964276883870808512130341676962878959375525868435281911198190432928414827170905374928429478508535403745616703885838968703319924832957229252626839991091326886348470276917970697239125770202832858215696458960268235509620959390040924846002448529959436536857654040204690300783661119551520927052221594266492116234390376704947594436565909857202549371476605450198364301474735137073144338139258730461362695122848452085741819041767125352701567179768670989023909608079268220379361338300744949767059750119684213088488341175631006157610642110483475537105988691746660498265340527501521913998967465926475711478701781879871392415341365075478463255345428476107426500095743215846012387788065193217818494644930904374826299356760615402023607019741205560222078504570463699811673331458827622050584005380710210095938532552884538258274860317564688260126422977642451879772703326746635464371506049637012707198353505867601395366030508257847929931584581496786079184374350340257401203465116076908778783056833443776749917636169524221520349556077616523936395608440921364232793183841519687283382080024895404156649691817394218273302799507161469237666662830986520622124799684881299182708335832599826241969153657596426830721443459886600227756732122510413657161369907338394629543663596268063425516868998057215688791644757820358307852771385095759443394569903557415132622763208280285189468503618696774737971399485247080587891917789493039066729030854481625499205202374292942225988142687418338542903741317406980108462888032847960340102652496155564855271482607623606254516557419873651411052601084983124134047456255964731822384642837150034280545450554450130874499635092428717192080503925159787473984571145164656314211142027847890197761609553071065860554632669218835681007594936508263956916949382314795597833819771139858940693647980882782526105344871867238457630896567496828372550642211437665226789047913655634833530702173551035020145866876537230936019605178485598914058836563525568328253407904905706964859861410126650169405211986527632387775108135944724415771655751786911634785703555511318591355491164208901334955044181719302734914082574636509235555474402801177567615153330831930980770787370305219289163337732053752572389678154282464482411917550272410957458339825147073869380466617459492558434522636732848856382963627603447361429195523321851340312422801680063971327668557960797912206787791086765484980478287551471394516113741219294323396916183855854249023808909862913414940973156241473134162220139924960137602846883168035726168697756566567085571903981577472374717403217709603622512406568780750555810804529233490713202278060256301593187390902832841957086253879987278746838688103124031033447467665115613087539368666485936392135556410313574806077257405963065813911472565242379455276884526426107007536070508158681067083390045009199796072877817244734467205971087359968277696570499721182608134478889910465130470285613340360684447914287453243603094178069269249098865615917253893414461109270746896927521019598528803224922196266036359385369368251316168727416662741100579118018734287193476279009473016140751541277454048979877790360337889072769248737868521852551971187247392206657775354858345519272455900840722044961897332140849664745753193786262046384357631303798539389203134270287274072501658574043525718996716174598123210304363645837878178157374469576153924748244363229937620389801578708715064847824630358482101654096165533601044614240946952281265139137692166199813966212184445508283105531603371345267408490777003043168271427948650847434311208114321151197098626565431054836291318977692963704419807774918133876738950552905482761805772154192136347648364010412867454528768702352638828868625629350671467590696211491923063281086288388850496592633919178544577519692687002018859177351249486603751541446652391158732531609738602389022148508187561965111671839449084216825485723123620902128327150101004928176105521465602676042039065570708291432073686606882051029268206563168288163559403736638767924081698232591771802106432154698290209397435734888609616523823691975010030887836446697760451426602105417780371350113659413651958540454997613118237140506528028883178940371820425818490141237017299647439332781551951651254851085212674462338298515844003648093315113710691850834468807884865286227045862589384238079839055406347498171381558322655189656208975807575041323346540968617929299112909877991131857161258232035954697986503208177403161507797316396330624631073737644371996728929798057828598302052280812477271654892223899941134207609311789331731465023034387072648431931357561299576561608084515956346044076840388255536577284077744843595732402146500736064171614419212945238903407797861911181589737069355451690838184998435897076567371396704223383507508900951266632155236418093591953910221343512122981335131079916259080680840512859366762703385598671306827614979561549064863308186457299879694957672195552015938933204687577014739147487787694394390396252162355572034264239038798530196441942409880872241103620543651162550839770376465007993311256203985717999594968465069541685988071748072754518664956394099263662463542041309871802923395991787472776808360989975272437834208449864970132762414299779879508501467182839343873168166414399111349949340004554349014868496468269270819538192609976851186063253999677697257203221307433722284082318233411913288037252121674122037301147401002577432158759136494205768168939610544451607528726895297904731647695717693900910956221763287146495569779989911446405709571040167843918919292052607019251560168754848254089591706963383154869546975178646571862980464042077120932136752718492621966540858356590991032163648306366459491630498186838884641450830970165203895624291828605671321236971547649362020198816524297556114366778065307568941203356050296013427634248489499838994189320378363044938019223198983354630262404600477859650042400326223055373160565405476535858236803555787915225786348150494161426890899013650416199891110868424502983327383693953706927357779279217532431062864360707428472102805167732168569237630169437388752135044653274058006947111889634738679414958750457291126025486463225976084740658283122909864452714048021036213375437959386307065848983126456905812430448463426737115545424515981032322017850200966130046223177711936738318443301045463711861068840245108208739636818009266748779113063316245102096680682428609169710073982804623991296348577159482877162027346956190920323558338587857826381104835240060698254043871842197009969893252561609491605046379409496106677839065805481089180325872057339237517390628132067077425996605926570492561974591191827782645503464838086006133341331786545396576986325489540882589502621928543091857799436423752433831703258960115456183600015273661729020389799849586515211569674663130604773949171604080419783663706713953544528517276369366718458338747264727733470303847602078203713237461330203243047183099483591830700915702940078720022852376463518449775892803631060367018506366306985554204373548822248526351627550482829647327140679958964149735243818053837531911198236265056765783560312323794610656238616407963286968333160952547310821359243296681663284222596824738581826739541354266858229492267153602206534604411890540164337107186697720412330774815854183138046358047467703323753326072358144744860087936129265057508796783777952431761106986266148008951321217476318909586273654051891279856306184744169508891093563978569426812904908846773930027095944442616685053001256282784415578411345776047173631988294737945510684742721007729426282108899191578185415076834619111568300821509976844235267580068653515404476372730875082350417879808238687022885837603754202584936631523569546374659563292410639527426170496807076851493234666595723002752459645013599729392515347892591959648892909853107863455494904429416340060027416751226258583782865779637144260879950808964017453842331476090603708827238462897860820319225505172304380374945024993884219447695782650131963069327039812715433093773166937777455263915630894674808613520119250507065737130238244480028208129420276046179702698865924968799856962504589015910108745332776417583104042063911581271383589202208319826135126138842448343355050756857348342301020672437280384814098868496203236705439392207951511172420759473305115492280721271541564420250421096204792594740048419625838446842081003714672781394263771188383489628013826550691696185265478002170505461846005450175945029640960456307966642307677124654479785383182428294782958048848940362576792356129011496169606941642499675679585340003707636481466600636337797149140285618758814245297071855342240559961368306123555202639992507520119123673323376072556882511526002145623275142069481745765052040303988418308086838668133331335903525193866498425188126488569994338095465892558821286600811608887047174370278976122255612542926228062989169801406528491309186803762213319998070778777917505687057571548292382703271976942304466149622116554067541225934068214188564730844225857770430687091452806641254884976303722991849903038208524288299650449707312213209632652820912909643848182412951874488030314004455868525970558711257905983504042866598434883376506283536776932931933507514440547758797056167389073554815118607788390464794621875037916556201693382903955731964680651311514470842521128757388329478575321387434136648762572674768537875361376020935316650431966516595738851782053970776674987478417381106947903789461085301277249837854011227656737140917195879308846016387958164037409405813276834919143789656329997895165015713447171322268021263815333280160331688161042088781273386521862753461190019092195867511912845692785127005306943359904697139806596279574671978204943019999921354285567212631359380478479895805573323563010226924977437095333463396548835518001565429883155256272325597506829624841143121944786528152345012692445790244243923020238410501938937219172997224052752756713058262168932452178038264499493028941403765128231508483568539334923137042077365210171321119801575539382945104166521341304314017782116523280307258559986292242681325946755913689045148490812653889977731405172849065212990818968221856028675200708994196815587326792866509937144989513309980124549669119595867481106279553079657367128657409563952269338875219844668278095560310541549549552083155613262539438189238096252635865898950217234566879518985350109527106256221479968319780379103029989852683149909039747592971272404949240194017486644965523528722740999562714107967392760532311629267578577680783667729317754975948032867572376778242626636770576109132912458045434848211920892141143176406104470105651767628712970786131064328417066520605987314726680901091187683688380882584096793988521147948463733600047403867327919262186653621563182636333768914837588770025262443486283547797820145128808013488189700070600651478391626564775803632376962660585431495301251228038227134904776706442726423202165542776126985554682387873468876746967626471884542513241627441278625319721189881009563150627251479525440433208183947920037391016193367349079844558894767536622333990377212714134159539410614366530568627564325628789516149543879716325403384420135432498896315545541166448238257881872270595446216409744861218264974183823360688555070592069282594187145025472717075102032070425191626947339919408190990336834068933450857638784846058779541027457612751438775456389390074353996719198494620422968264641289531321850045173704669439310718832934504901559232863791860851006533561675636586893783402033573142605189658196144639340228844040591208153146092935790220833913097540147035165823998511459079952527818950584655330125674449046603796078020149085368597694626629231877084223097777641212260352774135752491891256253873038514599528703347935307003165877341338222382229283620278245353144602651846734255606176900745132868672552438716916591653663602126085874176514058525083059315725050417000280356902728746642742788707816249250869380844579621924841443991230058474353281511537057845133320016809256459869452396092561461930146698260139080326283666568686248643861843557019578422845009286521595701923468960716789338861837060131873625158531082204845623120497064383380519700749524588196759555037956995157850251627586658983678253384969699084656268190966839576447418941201032638961282918821596589562327983535883663045361799751080942080928479684965548266110628855988535967224316675724908484150624771317882338594321654338600260376593752857432876050235534166529236422357639920777845174071168059485459518105469887874755139160408236783503996698667571142141059694567312425174572202665582905306159347380983670025926793042148759636008757438050608590242749642581941743037292643952259895854643525781633970105075152161922453996278521792091840341838751954776267817529086885933826769039933295512891996439398552781048899700458503963264611899315022713214281795698675220940597346271062775445394543428796488395327120287769965027316128502144219207946274259327808579010879441603027364070646113607913926608881618700966868331174817659197591679920045020900139767097052678211401053783356401774229809835084472955415880851913055550563081393217351104032457800772911221834946492959676726973628168713764536846707927022475379540339259268757863387426946434099316446465556228525231803545886137657040678400690119963307611295511060591504745966074551578400418588193129491425785419333329657988835296346583705474895097258272019719832831427234380208428106975613155237820666556437150068562994121209270939651074577907225569933418974806016686155818548038574451472557876906540726284336944315934876514792257697841559281882447260483483257518919544030764150973393249358116295278337009791163933743922460635344261412184312498901014627485615358061915971893783673106984049939748142351127552014693802989185313848538011440904786410142523499707678370095465826750353671260186070644716001330961359190964333952372885286670975047893249471253201610889018673681221243832186997250896077843463422696458117167633800318860024520020642439752099361591016989592749250545547865487099357090398025897772054989119521173010086381121455120025578361643224972631460449910085631510838778622911962672428159971676076249454645961104399583560945995180039788493386187836365795828821572185225754220770450257429570786691179306789624819272126785087238121893841354969695664927136883558038239557709188216055975840585312361895235032192960024923338917651939792112201588230516633926684286345264317712155076615510175852814188949318448220128068419995773460906709523048585430447082821131755859216480499075611978541673113914944854089027521933471322857894940525424247397938535878258145232592862983820937789030748406855621128285012550154035046987337240765796597599592658091417640437112339026239205174311427689196362551854505236908412007887969103322808894462111939530564608261379730993535927528478448222661291373181948601202765654890702702586422288930858098791219212334851828203233362495398865500847103349961394760933215694314293398855436633686992868109848827202329684504071857511440800637754711312560627633648073191029557541390612958002137173764163539148816927736295449245769837827517878392678865600567202603845442217254621639086249584133788504377878246974514490329374297827608036787363565049728313900907906349790438871922254785895057750820026594248371682688917880616282019226962700164876216608919873803515342832844217098876029730176899339748993585002035555329346064643866930355077621968516039096405024098251146711109384063460071620494212726230387091657753957161672040271673848854163532364238962039966922925752588464083695892255923067821597681723888640401473252033068728660826220623204760591363975713062698681014292068782414315594596859507887265241890093804069512330290767848527158169742865230598125932065803045319158636416079858913198554587258195677301288668189044697612603986753053391950094070017186343543488986755158207480558063344691729233725082821969441655442431764766117998054213742960083755241701030060802179907676015580678653870178026111854476802544808201617176697638109104943563426086799017778365855441059815690183362834952334697883823831841603763968547846397579985676303226319202578098392297516628922850723307536450482656753510461784859276362383956856099873405084238606690280793485821840426136404538126486386413440590042575161402701463380645813201122243406268215963951131137503764805173669651237306998107893569872460324962922592242399652201548418999300145806328715237594715713436818378913874398240198176332169395518073771864675373020813504476986150180673802780637860985463982879473951843106023518948655607162498002578917683768432150736762773800814819721390551717754054586074920561449248892336790153178475854547719595105008328728156562648138079665503964941966097996967689061146635248065022976206427589887503456457241417014336657631208122596835646307320524290773802543237364016447005304035070384979478303507962652532668325651581176629586931558367825441172251054391823771609491867255543625942328683651432662604066874924975337121300740306733464546293115024616482973946791200494310213458937242313444863386824572334661095075710605053820191810254322343423988399422101247877793009573377032406299499578467947629576718748225045294564631177556228189632143210838510113554124031009339306481077682111360566081372411443031932334579620612598048205132737728678282977317094621418639234168481798326645566663114984698730137168792188400863827647027761779918734240566913305535095488138995165367905504078148042038277359653877174074099858349007530823794906034559032565012935610142451094855242148033141511202112245799125947627900043351351893717926466324526815489636062215159374932514410026824454722196749918309068448291185680897036183283251459648427133631604670941732977056955336193266553328379437369630847798474595320161244913349149657974080034478328940873062078895916419675393396317787418732426671669015114807338914263920115687667535678673192340863807919678352664596946114205665429552071737161037815429206274391833279280759343840165272163180008096492535065889387438625882260138085803355658521562248303859889177344472579725929064713209305943572164228891807326363091877447327739300034352669782617689385652954872007576141971601825288388541337573506221920747044514771890633107530270499717279394683427696713108433128023811011064663787308929470834441675051857295122836338250658906527986544562643822942267085497048818531601602897234767146751521342514100280376566350399017707508958725332616575851756638661371922043856755044048090903399527169418189074125801308905400660944351450170716974674979693832166251646030070337559152066235613338056555614981621743513042690684377295433248969358570861525132757976677713841330902197940614842459081345694030820591530785031106994811742249305300877676845199234663622193970043997747729677897551345365338347626967127227355969874070753301446562624715724378284664173552595746327235154092645939308735481965812651630960786309544985345932254352897822832951072859414541890666708671900868825420981265018033256147084047677560397691414580363710783889456433435998940559166922237623586698927880961127223106861156979844373174943377512335463327615624075558861846720305337047845729053691306673440199658083155033535511053740653573410680824034279474899020046580146047102034930588249166595681454706723167225115724595303364244484370583671700851110839725088209806684923054509755356185059682759767914684062377444745958718909554423960686795153046400069774364529339440070917144803536643450127765695073543269142033814348596253626417305788313189370534424898356660640053230243185678980171796851682137392352088124192016723340545760956209506603363656352110552807401711701247836657509180352254437498943432972219835089378228137647534174801356340820018949611341629891203457879213478344526186571997491434387451629733081217844911092513827201232488577889018220890832036843688068609810307111768691437223401914444132219695767231911992733419319116855983159617940913568115147550110640200007286586720384721435624775746803086314195514196677633246330563250015050641184917396301729755633300818726749403515068606368785313642182596225001509046398817352105782544673493046451296124956608683363401299009604529741911583124062545972084574315332192565327251519337249239410835451759071541462323143532570905036493295841785291742906381825287925586896370948310368473817109215824623321872616714610777457034205615589251942133195091381764703676460735157903571720814599509673833476495554516059375485764722752911583128905749371575401022592792292561862324941875842673341717334448759688297270775347121112804547907672955795519287379464776381861680136869905327927095098168689609552020468766017628315062672095316878089443912829967146022720337605075618144365927261651454502799419647959019718353915934593313363272658337282495170944370204292289169589144632830458440600729291775377879792478405570050580211402014362949877785970412043117950159611011219388731523719632287601736374432666100228881469119618745925752079126343293021513222688403809118857946554757272128100620545266388978832003578596384349409170868497960221165592482573466057520119690896279905173025003755958658093649562084612990450320550163516607719022777470588424070563248601025757914726359049032379192361389471425249882898975608127109660351629638978717711649837967230781745963337355714360855639593449484798278812399912689489662153169776543258286639545808333260445844385123644952743468964920953583970784007588189953703061173663579043383372937035910993061399995465516111949152291586098174300367778750295595792095296124499297240501057815550514355321191233801674176790823499139916750868411807751032526976547283560774974987225304268787523224422448934420133312176871737481038040103086251359905774954318371419179249538885554909949879540572703077668733385763130458536799619272486174169163612021267049496794517102648572355606146022485423695053229411163471266062781125527125782509448595665829112341854569927219342086039666892432089245122401069724159020922800505924883472462986551624538785221710478823082663268731799832845407051116550681881879730684904743634224950509777467021319019329358277096173690471556210095112210781560787674463457161980040897996764550483704229196766660050713923073615065922895787589071946901445892559418451407530947032497346868912446719075267675142394668033030666593368217159674425193110586662031092980587568831799755012912409484246378064519381137999133397298269546554040166465919919039951043221151467338454940630746229949828980962877433612763262395192356065549173452749080437035775663461827386955118214834996009295928067344390614529591271434451385733845203990429615840657176840156122237061055526207418104222660879240828010708985137667773331443456316902297074541684218376908816724418290202327415006200613244608939917074543032682971331571394350864992868153368428422193712428082410766192164740409498401703791927108892037746941263002627797266037971476295261704391212371672994813865217139535950842239936797620402561660529462619740308550475948099243424859445180293080655004338414493616453761865520781741173226486383201800473892891692552177549712158039074760872527806071899020674145286385800409558699586015736247673895088746719168498914766514332388988946245818455024423117930790007843343311171543729634070343924387693561707090068644667077895499319994959795795896976221189434853984991712457401765248855157751632739759854441144091059196062582822457535682865022901209781761658249390127307183684506638233256212113959186845087188698043588509772200672493969068557650683973485468453845348408078796444893006973001939643454121449079905309696973461583626872338814930951746192528540517967513618827426438868815939987941388164076292183764317390259212210327353708446216881543158484098153222682207419267550071646911136434884347551603205742301367168625619740513405037828043781163549185521067228841816163103771913461151455719481984530288104312240312413038678596590287348058691448444350996855586509022689950026087030903948152126080469922606151506795827370033177327167616053859464397028146288999966977238631607375215926190980647520491560410667536622534744611968350784455322432906370961970885432200895960560452739654448975489878135190968030851270382810872298285139431778927509515997056855406833929632852121805525615492209826083950314311527399268207749187106421803504345537955082443882143978847982133536702344153479480441558076912122641348283570680705645754125322186159041049452471274721535402796026110362184424458894022948138347766454871464068914035038840800023526663553487805885330682506539772001753668095885646791031555360717785188404888642004108455970917451829130264675486585013717962258306975716004350867902350589997526099239819407484413171313382120012686645164106967449968761823837157965118767111440116606420565251191243920219497297490698719362064533711611384031065775492061503985015191590320766381618808860849196635471638679556042210048373916044999888192424357466209925474065110252948717883462227089202481100701519386188020420397359321816190575609081325530639617189092565086701052824891480426057283375974874159249734215804431617781665494284572165274870796957618359672729039512915239282175841521103128091963625271300684120542967090738429279934768089263105393419422645954030101183802507934750149396279718300022651903428388235845042522350604011795641359891802314421438850381172511752782092967943709308684124419307179682923202868786300343104061551864810364530164569253543487354284833603346222218038935825162544240005984258846606371509614713824401046620193699390355458200737197267655504898564553697944480739384387036356996862146638935882590383241259082194423974014384758542039330204481022805972621059536804748145436969095607426038530207881068838196930083411518166014887181471767838294104399072780912155950967477406654559296559150700135448858717215518891798143528657286755002920099187039154206186601138463766785947169658750824187563434032411153259883725073868928642982583504669169663597328077384234619204077417825098632497933516439120913143049832241302027465064623037580816717794180617270337693172847618323008322501448527274439898325062626735977000362229093113914318421357879402623385311597765402362964886847808116283458210349080084490240041281329937243055873358484270363917505612375462010408450766306866482937753348102876808543070498055360184991207269997653554573668943946576786157890892076038536347862885427376445770059906442926942106720245602331785601088272245440258818597436439873848400393966472617321610818764294197927191646186957789689096559373053891536560211699546484005303548111038528406636570312538440370047998106969676084044612418079083921453109362777468693858768958805363937738244791527014664640226046207878808172101422219868419810419144233696495547651698404130806118225591937385379514982259742371155154857045839837796955174715746771686732917240938523672882079480252809230680700373547907490043259335292907250221308636061775830592424854675591853806483124762249570465652766669170620737236694338670387319330276505052160926400187109784359479174966744083996720389650237155844196028508692239913285648575863226843196304077364392509379386547075190987106561448334898419955112496682327380205307029692358481288887464696878129403027885101517337792333006463618603261553251036477170736896919331570678847986733996445020905572653320957242113532152236296905621909169974116515813034692572894629612127868295582633622141417315867174152997899038424479401432386805532520304317076908010776136570574725495827391071360136320416175718291029011284816084513800529991817252202815010468121126874059423513632607754599071066718576561878578467276546280076478956068264730859611438662627633986026895230581514877445317728630092212056444784944829733977544039045285609104610501582052885897166445290545229817911127978031199767973743988558024325326158363661564173195263646503063159583230524701439800713821712817199355813056995521176594928904765680160199096341495217033154962744532653107685073455597722712140625131317037747122146721984070283230640818893511548100912636731188679980869721513307780417313484704413016757976069203605397312563473460071558088010285405473218314798583578692125755563231713674921634684492493919144611580629238490415948362570986064784221281995060550916149936901664676952098487074431328740696458266461924848678264392786715413955948288554970307780852096653673904334960676310106008487736080022706848885620247147392084661920637078227841936017033863439349478566227155486551444196872907439192309632568771069133679851909481135463684686070798198623790108747967795619298274743541116782902525922367687797884062176922374416557507013077000520567908265827200996549849677368538698299636925395179253124580355094607584926009375867210491797174171610749376109294365993747273617820317143783011866931710443597829811078926724359421838063293213320088477915807736353498457490047046497147442840221966802212356427731685841117445879154695128090700034909819283282847619003358567842942870149828933004723298067861768717381566720877104250017018039377762048269612105024920760807455542022881947285021604243125569151781660034630187297273783772386992295081249169112555750423993144950568547751758242071092083378795659679170577820450478334782934333816258500065045380454130296935885155214742681200121037127283100339718984900835198248051769326986401050363520913016911962173423446814638555764811870020695890103099939266443867149789717770037246906780191710146019300518815376002583927067197952633745779987462707923690840238921785169762487648575355894729275569643944930970413462567941101742129180129016798900295621504350611287398844102452436539188839254827074564319109793667572242837544851912806375954686296488902141483558828701654159104474760697237254925655182344589333207027623509802130142902739557249312190152729365273973898468929005193377757570042864767898771771677225572105869078368422376195453769921151444137982779542017476693425006856807233266178232587317572933235254030458190600590402571169703238072144898915295983687529917687837451585115467672970853756940498897064749774654748661403928790743548012564255144782790860648369275370950078039912730258580858058148511318776679027414693942092459192628474657371892189555052757118944339745303898610916926828624822432572484535615036792963966038524644497870614450674441508119021587237852801067467193829849432887754374933805368472971053133135248158164597186971666158965627401694225375010253286860338699302235720329128874587145567811267510741418070346197018113607615664332240631885038724343069747343183416261725397200118299558292430407561199186817685048120538715128650827877892808533555606782490628346427414190501515507766483128809849804989240390852763496316765608625243499538999594436906706252714268460342342353540756131392332869055736726431723531152675420576811868413997785072113978355403794141960508374558419799273691183913029605328551356715726040759197513414911900759080354451326635229986143883578223736316231166063883782048848153725247135404249729000293941023872460083597637837560259951658847651037788327780147066714541687392926736429417229553714626699221105989158789713743885116221975091414351601172900202210777244501305012230143794509964041839868051827117758974378944540445064260478121731261097310721670014747704746863604219154143031237057281041188720924607854002960916995413122565999325505632860921625637336448778003894351775244945961983658032383610677375294797321797793406816110249401868325285507121429975127912360921140730184605226465346208278399681926703972852779132460739455768240701923179004011105846028744348107207648843360375140556537876680740087983756988641086325052199388400504967919019611243571735338831242961550142791941648764015805127718136699690760997857873485672705103962981603721427132957287956280912664639210481384055614758611419259852419741252359849056447901880578415560337969420741424880401093953879065957577526107778907502385098736002275381410053197694781374944651702399982012322527200550034093165566474514969475903556484877706438115023847834971858370763681038987544723313777587174244360894183140238954526359601892077434676587650526169741649529561369124811932809852615468867918151756359738874279824414302554260434172802882867201369810066459613461293142961535941025550799722042974714064428370100264839757468680509115007215719579320857297347666328375108949794461815536088277472197508824634014524574448251462069687168753224625295212764256988559213231387659664338097859667777434719894234224856959120774360331539107364439654085159371345934955645800309582729848242612498004795657404752167285237735780948189835510441460167247536086098369628969462196894349965278118115426662712279616719619192638192073785632882949304460480884144058195814551292589175888555459074515785046658803182444892542744844439581444021192297240830077754110033722686552835546967822155719841045194447977076485698709980447818632043959700845558507199614302164203657141336387835306437616283272753782284690063581545192872254364262785838829424166027241561388640632455873963218844326799962267628409422436726637927311126937034131636922136503895563606959915070906689636428031139496533944661464313718097803040543261838428837153443689940508623232648516396855825845394424619353411532146018286969248260843412689565726615215974822754307294427727542518644437979257014150144883003668214848608253401363254364994021969795650505540202318031748607166352394843804993187330986896129099129854343928281984331480629373982076799038754387259331196049813677624477705166730387523898267050240157913514237965182408868513368878852711471109417145348056508399003335340888086289559218304389406389865255516023534016077931140434120829750723888756308402815282762243404714881522432156125964467052902407392041451077051477193756376179769038925709525552718915753185947308184525144248734277340653002700923480831223887490571359134470406794955676817989057281485880898248848954108132983530755539293701548215814742280508421469073181411948668620064020521394912498479363567265149787383249204662310680011239290571810837852462166178516664304225330282253005456378644856677595427979300272929495875816057597993699337354501881950076612759924101420033039998794680913505290608689645052042250922368704032972324559676811073583412958668063008807442685291151923418978969658475880328891319928443093479822175918778435732031363700250947048320152069184908443070092030824835310800220627825058988478576014725817737619174393859761421087279553207690786243284999799602905064774832273549283980386870018253489780387144122874947566041969968643329046482562852826239103139218293825125475018169147951254721470416801600695537714680213372156404392386040117824884232104998965505167115080265309280765156437611461901995949097878449406223819888272320740385410739722558124912329787365405198124568369028810387861561530304320513515356978776545989434358134216501224507158159275800621951607484626021923037852159971345551201740426045781555807589894170194616245313893758276620842176189266962849999103973829359867284464204167178353915636956076639263280206375912817083673958542729806535717519111754890839396845547974504377311814596104532766165799519505456560539435866621418140088850810345940378232553222593988934195871788170930996002770926683821075672616184013028132443533179844206411819678993737070851197886748683269330133587643506257086695480472105534602442117538606805081803932554346961027572412642872744989372598868253051246580750783297102550747698758870677037628616342078031114438298416110391730783473383982915107128054777351918398261184118619877482927395918693974786062730135502401339677136321874529659870649422850829919127335038272026717770042296199156503339777278566379896530043476573194552213017763835968200911776569655738257360152571245374498305768800783160370618057520614364775609681733080657544799974565991253301615085931012517985760106683018570419140842996110847260434950518387542225645128721876802662897918188354130045136098842496435128262702092567132807201025527137514673401757256596889196387349392609966009988073512976739898113875246356152023030067168865457809774685168659613070965264708627907245339464788645541120709101828315725140457692984895355255454442396489854330704200738258521947184834468031508504131099729298273933501836575988383345012583625824765826376749117940087417780869644622062667458339735112412212847999305394500494477885035700945129913194949204776831981008289592679525542113310994820057514062376946493582852638414414296142851084757254627752285247929714230735326362673620254457327563770132219288784264092555298112238762764748516549930816266033157369276594508425426495707380034691799887782732949269492421163209828917781423616676770471901675169682126223293074040783656873504092493481835939454572733261353410299967649672618144093524376102471793058164313207093402276373959943075332549032223911654580314649649526085304418694264847815679757066282041548454731090024600521954802562665141002013638183892311258509890174493577436565238698572041138349061994256128463092557938178608993150853965314053144188606605735159952509803003028223635051683026486777505544952057792584288429771111708772656075814198537719324177393185902585029305337361312850586571931948206269288258562617787715762898117373377523712290646495607429178134295308320356762338831331104932609322521735489971484761245702562243818704618248329729832267435198058063755875578692017478688324934064988852650917710954783381516007860810855109049994695121903221264697050318928435365243252321943819899899897223672203895991038254124330228120760155277278125509493911718641661298393097558420917819301258736774238859291273396471689000306933755600567214872036272100104660801243517628109586890547961887223643851032351794214653750340267024405254750947033854442074689720172245862834646573872819385434234356357923623944197375309881880818597139666303609463466690640324093613429485359216786233570200048156977295882729602722456723825616588376910607245262826635282952382895180672629547966334293790419956392724006712959080907458836871547675298470837712847767910950599140451299054351266943118203818448222711640787567056827689649662378610099124050840896034242637587532680774740936468440638365149378968899215259452615595795317522292800044979361507346249954241152824419934160211588991551678048555183458601707580793984363681696088659796668708476460074362478666693962986133111988682122991408939316689849173567803946225446353888313796648915698740448674070661409545823877081019463865581985210366986066074187338063220868414495555642922183891703379505196187835279141513107458478935613517181659091271188956368751266917234638566163373919912482994680464891691603770809026761960780796915438264331806626641166887017889429483232709849100317831474282420173308971798933870229217493968615086949581807417714731716016505986408857537166767439303069742869670578593639501736873233532166557244021579039385114430504700028655469313298739519643930803409631359073878446659221697810393185954326353239154918280072098322855917741449182267910392691043332840034102280485948348449962321217054323141810465788339619524507726258355594832262035382558708450816558003880840048859677261201568831033912274861426070419791151478544589828101494778317329182131040929911679946028450609217206651066608222308083979187108219128818636125675156604735019075200478905878914327512778265957863618628770142488864642579794863626113066022160199597927435561887975809830769829814711319338723366176797548248099213463533683026166122979177622506500116023389984969769104237149964450431860500859235437730337542357782594746896048263914236683669155503431670783388010896741726597336605850688179240558210699174112356065183470903261809921574092410933287546828785603603057980721976057310274387157159727460948271864176957370428586998294145216395029294200468657974982097993174222286029354446862232577510292916925379853626950304297342886440928683031710415820038643028622791502853436138093018469394855411336956710311182899175550143454528150086970071339209103073821977141894309444430298732864618556160228342201598462353310349386695456726442836999586670549592490448812083870414490857873792522787367555260973580299396946180084908711374313420684930972936599404686283726334997622944102780423371450583302158803205476491331368796451236602066066478759449598746618327906080409570591950993176438991362184110858474088140562324503575288410354922282104750477171564025831180876707974584708489937865751461631923692292532424820822898142379459648652546391469723447586825162034776961521095059628930121458368890522418241695351827996597984928786640517512935467497648781203974357954457473058603960762065474686065087302322604326672345528232905446667566904354761934083474973768566787922356425255780808747265823459019340324505929511504839995587265972316724783381558423710255571386746677785209966691554270856292507445787825134581859726227887865330671740955274072827950674161597819163994488183093333690180818990901834373401199326644357719513200595527998705003759852098707327670092095663295821937706041170638832746963794852190781607337825215306975651561417158672117588942702352968023294683309724450419600061407844410033984391284524344014392207596394436937080475697686474583357034524625340000258446550329372999648337347192338770254320493539558345777932876778753363038100638663878074438010858538288499717944760212938781201197467693948610892227742319943883818761783333986747072368199026381739765241493629837957963737650462312230406957200068811220640763309805283958248411865252116494988435528800655001199876510167302915669966763651877175852012450619803223536106656243471432357352022217216586225560380218278683081190796650827635789772619131087822174845962114318056900466764344174811830623357999682622127213128963223355547337644842875835371906135791162154320042467454019577270472230489251535510195535294598079476740687608481058783771716830208818102042863647128753290795948106903613846277155576302660341867759239765457324454374378959180223064001532933282642342865296587338003940986051917075596247184270670889381906356848623042292915391161163341973217244196473479432920089046689980048200965920564543602507022942640345876661287636047816737330601579371818037239152161046061129919287676323189221862380814060965486326305676948180319296218495809830108895364499790152091924235576280808177890321376692321051080461910173715398040335033983428972717970279703254883359793316188348669688055101382818747679944865199545576716747208154151373898248123675793175821635052245625315708798837096544112025573325228128710965361697841420516539124642792668746972158674156077065405444924709460547048832886741513400738309463382660179656209904286121772137884735545039768200787523527133518362398067930288975287763172904491218122860118703045195714511101713426454770783816040451990309260553800916130660894095559534746083400773833758260695095584944505243382561261319542865694006419149090940066800006010682072872171285542826264040755151187100949879050412274547893577977450209035723480933788027655835746881610950825820229485801779752859569544475539121647765956427571337412373047462019575447572197257590316524105271171908766951476818768079114817170265188881729416878768878277602185487631670006270055163820573615675388226492376442345143415373220851613031179855891003912059223574845034825799632731067264793232324472137490822517060923021778062151391699245843081020359603185965359072443014828366835251430113206946211795014486100178194623026849876077262839311504205748219912230326565614481015137386482014265296862888456512562147458097166474219974146351160944099537813484515455997561571884264179387827582441168763882896115363319509841964511219093345310015461777303331060681053032429440704642012659295812411458941489152987131883529456680500069437692336175489830753480342489247159222109070072874709572699147808744240054478595067266274249575821666835206812549419647196882821168662779782408817406428129606836309696094788872667204471420828606558642279196187068350819433628832180590139729722003013069190683417207677227659038858659165022026808865685118218515601390353818885081575880503608275139942119101791063621933655469904500636638628041703399870608494531353308239922905936994726565859174920225386489389306174615058401063291703076817933816386102051692015674157933982471109991029590686651968604848664363451686160968116869600455515717260705903838566861544739340283788248381827539252754758997751098980854143195387260631996817517945430491948848366339251581780451577646082356074593185586449661239821371149256514079719053134706848901457644723087748495938791430258250526997317338548816453764943170859189157941639827822114213424550617880872016052183227449194949244727456367043465497762397084141455285707633653922744723681937790785725876845055844248877652269869585641175225242634858140349465957010569802759696663322688799708024930599196402704953039764672599254463091427912467364857697714687932693656290704809239655433775850266122185941640705601144273614161684170136886907431190931394987025596815754830973349754230948728300707666182645330363963746027888952008159744935355315759241777632339026724730232424423934413235733574017694447992309691188173435481752688999627362885183455472525921787593927556399034774311875462191014692146031367326617753306344812821830169836236419526277229356682472299371216983492476163668469198919265477136756993893203830248187404510571596365141995258958006684556248378953587657804233399920125305119921576821536024923337991490709975921801990075332053492029940821815918189465681903414176270736769833466766365632005346423065648527960577765512735823934766602120083030441961699558114232890656054214379248016235218403858570469111265958275126875213032057014912066278936090853437442574935343976230731094337472607972082830689030637806194052163681741803920184411971793064212763450721541467702914480178475449733324624197877097118475049397214181516978253279793567706465444973987301543226173012698709311307702210981096398972734095356539422037263792193865877842986399165256221859008706992194146722394894628789070476883494205534243827619329602751848341837272036269729933857785678633443693869135929112487549643731215465313798349971627530626375585592605595801652857415793754645628676870024773752746825570168046198713663786020214540204770014416585407954836441757696363607063504852539631158647198336976130355341825826289226988326268751594554942608424874167987615274424377099755660880826354761188921206912243485987236047887823475271480965628998369416287091194571556878417306634888093755001642138815631509479169509291520221784605639434037761765935258157096112466543552881316078572125172263939746108563956153251220153208758536971746911598015350928343221418439138679408812247315524228174165713701061346495761176682158946658884734584818845008433055188111660623704290332017787332245752684034581013209420349584210142712898998545049019452069285483365801244904211956625426261493782101357585191064678246619168874976380627144105412802523470490235846988998213509258736873081933240629369492729998038961002293175011113515705033887853898904960004403706508200911600073429575350215432172057984422857649560741432406687782389319071157454205769879491208294129497327070930228951702370019699823033971366900809222907650228133944055242392208595268388634864531338891599047962361875224532696790093911022565580106384587835400602467032568812024407016663431133619003446447213236978743879397492757568589712689352927220981441468693469739361714656011307788679947245793441792003939664715082121556210895008141605851299430311578190457244379938226604965519276158980974406081204537994392556301645731491939814919224539628562765907798789366893705461703374975944190634340054518710664246675136971156712144540333777673671976732080820196672365436769896381314444729572117948365753815443407221403207945022069653908578805544364120734334543579582065741018679415718533457814630759206781175635709101126538647306742995814183220908902587220811295526692449065317284540371265975583389774574499367343337294850888900095162074987501095875368430425827651964398218765142477211332796173637599330962954142922257294047649734592436516579792363253006808558376485606790618758330882293775658492004361470656772186571263989963846566698097035047011404508968129384643139197452465075214581086765676279150591197377628176857215195961057224284215326960533631022509860646913169003348830970131893257857868087354336210518707604911359167921856482454791721951124171494314266180264618272083692308368514576414980056528862153184925339394666742304770972124890631840436045406257408206170249690582758609630713149254524558695443290078907637532989612315949327314837879304458097293947977063239870149656369424685232962927729099248728189124118065882264805252812445016933548897064718513825759915383740100229264141227206356003633534560359824125772998524345959553838717165064684996334867232905445919881378638362467101424536360262703023243256172554805387835283577346939982658981794649317112636600801143968514946782801115518889689166322454371537787259341440304445540755739620565880841795899607875506806505124915081421688783204206301870420276852713699842365739779705264747182559457871966754440856281205306693773454330648819711528303106000577615669479056782325871887184108567205553524573454045636873959368626488897815538206567720689896317699809145597995726131603602666480001031455891439068853058483651581392084495713097389371158395278078386373674385794604922704848524337669475851183188646754937370017658133127462085976137096906886111281373916199972552770174847306753410128572418559828995517160965102640723724717577443032313550572695377069849073612059174287570021325363668405714662259872829057186723139167656152348269567641085046277901651362222909569082235724822772330156478340893142906751536673632352485064339143630846027563120634452506818755225932283393624160672856641284862505315353179153111827364649771608971167248739752877261025732879326125230362077174596392432949045551659502037520804472183068686287522416491334471022477186197087089764480333415779025523969896478794137159855923931073776257035905024872574778406703319239545799488814127730346597976616841088550448631286860117760122485674133055714379020704182119320165613020007758110246675923147611058142764710799435111290407907126927436104487141806243271283764456943241654608657722681170660370133274913224073104122144117874054630647812271834208831786453268776690097917215680977474994382788724042864063523371197751814065138047083629920185113914695771874587354331253045724726041247310432630251889047232661844845508924957848425985233787238635925426532883654802349198969695250307053888562361238877127090613718903863248291687598567774668730625401737455261544968661979736246716277734821990505370887822792248784368515652808732212488916859533890325697395919568697982507223642387594326384351539844059056173681003908766017201552532947145054808677485345545568696884305016729225212857875438216273756406012830922403738106168628756978866177797079772020512184318653427288752455968532329875853439932700207981354076746384612892258844659124488614580457713396154709312671230500398481552065596981337129134662132921242689852623403660970802440976186074851611726396628506033467743876506392863159144849721905874660573661497177652200205470798166047541917320917472609625870374785358321474439040830077589071244693144675113615328495252232409178125454004762588244365169600194802151783905007643424519072714243020572023333417381834603576142780284394058329683588421646371461046140766545560881696443577046212973497264359466108913448654922000326648523768988402231837171938616996317447437778903090010627651710139441376640801402217694389181616095843727101411422289429413146174363962205799693384069759913522533521934478898321685421692769934883033961128200454216527531645862824738933409604540561050777027277197644646393076592569022664018050535119954248200828789929172471895926348035800929425492967665092544409930170185309460381175738704315885787212205225752979226597055882401870424726874121460580290347299111557343041629520155403789822285156630890377292113616812283544833800386513689343944094427370526737612910979279097634320274505109200536352297422428363611695580830326785259564865650606620819955072158968939746722973732043434757650190227351727653779484243126596070503849842413737532039042902149756061937534370035340520542277691525334762099246992247631786521043620622702573866879986452427888537448016475362265049630139408061068495305694882328104555913344601615718693409785256975723847843990555214471261761521153770400979623741648607824296826236609084207824663012646061001752349912626534926428499831864243596211793329567223665754839255498850301656682407180839873169591677378570870238314605215015835823963589578262268409750536909247676160261685965085071013049797406340704564926354104193005919599013371447072758623680995344291927267865434300121485759402526203108876495842020191713691897495946124492956336746650491536917953710940046502390295111836524402014658150157419860076193195555736455870533551457058330877314549391633122533576110071641858108745485091629977203645124732833563089656382041745888881759577507754310560977160450381006189367961016216276927698794277609729522846200187539621942613910883237575433151112662776810580186384509665592218618595922022516812370628213754904785466449505359586221712764780310354544027775539007306395964866806742608822500288542752590410580804579632823137012951832008404350263373403811310842381452066838016995619377870604245631441914586928757017322053853539930251370688413838193416401431374589910556612033083994261285008475155701617870680834100094682260729601796667323748847144258061309428698720229877743593137533201863354778741061714299247763781541696255760568629977664415491599296713873390794268290828800318249060400448735182560034666302151790284773019158302612131756229668243648216948636966613306752958488326015752232280511778978448503732177680225487356964439191596009247966442268891442404514436520141354615711408014192478874264314642304678534744309988533679429323330859604945963209753623974330021576168369790679798673328091938673082891337629759527045300556660125910054615387588287464962512675777529274729403045329328358964026754735415344522917691678817517939837350043436982110133666789767103919618229844542058393983334149846868193185118075822984652435089330029795285743042748628787805330221677615879160371798044886782264632575254441183992065970702961935115879150965328393185397537134742862823315269853090905955897581460198094095894611492666293611580911955704161008751112717001293598571151876452965954193461706084611626049300233591400790002312338555493089409914345302633404583632185136096074690727299954803039155759551794114698675600058659059038431130051204742368481976443944461897895494706938424003308535291142508280800878620650576328400647382992804306974034831858376679197439870203432404519755318158601490641722961477410395153856061602944844347142044423052359175305359837620176901011069082983380306942914934945244628796682174846502988737961944065863954590226377440758246961378495568033379363263632142061808918785224905027114997412049579412087342944450517220579538305345541452299666858387483772069707047729101530734426053562450659761576921515149377620342957024249061493079528187192572320717812884246362588174509999567166875145162900011719946110318102752727735302308245445177386824561770285295067354497551716034512296635456174668170199495993372786555720912363660182219905132259780324446821234815036486406225516212473979687477326592446949872182608669271691476165696360757239414155931132367698207539313330919256330089695136589078815658999134373819723548101441675187241177224711933680201248693500442621652488014388111077102645040455774465207544121903466729702575172804610495125431784482907229006286943182084814032284273113039208931821161251783264321243875276231326900448882124375191926703029695622837917848726528346247617614445519415589867418498938017334888857235639164670287016334581146806609255104442727984295540507036567842058755279214812328213046393672678203302081685209455388342532558182663936752348645598131745856635008294935418428536034498210360854621212055435638126596381229563154693593280318163365244867873438471054239486756824843539837080504327251886791657079914503543021629356934253015329178697725349843246211783550186472367637834349945413446898259062656912575014547420286424465085298106328159365943066502337057953155188229701101219625089111935346389796469223360158819112878587095188961619381165772670499743450658070013575010160487212886281766153605969334404994283240450696698402697944215361450394929652407095584477080258227074901983673848309933135848721694530936567857076545385270069817731364309728000444437022352758050351467454503073554823735372258867889247397968285609140715460478958709859794371677036436663801387940305363728131502879177881855168291838678744265669090836995132453220092370900154266839283473386331977462689836463635670942944821372701114123021088491206159157875287299928497766885220941230238204763856931764342170976580137798948206983271413469245876058981706101498667080355303998101754229061789924716329897793875215936134222579643543890809716953567680004194468349019219967288947835689546135473302884846207724217039036237279499713508149030589241906896045060113588278373730233286582898356146941298521467604751757949602654218678248325122745961191459275735799298242157899390123327267624424398463588728118701373483505372721509112505406544028193694889278532004574743014795385265344340186640516424219269352145164433979096742242545024214307652037978206241869919564045853093074712198283962235048885069168685775008364154477060274020101459942149548914789101430267916466405443007261188667579998737862885710891555714326816301054806607050128160572803288709845459555563179870304190459799600979933830349567315855447036285022902428968038829150089304008075898355727682709559013227624999785791996012907676822850746777009440582065710423703667756895820130991639001115970046573554808485297381568006360756353049100340773810142304033450726285498690907231813275969009378553825825448483311921790171413791631810882812735293484871211346318001061444772696754024643592693772126759635774064685246852157332788310355458084745734296702201258360172750980209100929837364497129871637695004548641872682016317483070371193035193469514796486180381419209580973833319242785007277855861819661505084733622840488885593246989060710427719043638652680294759673673772008853000794773140864703835852966914768104479942934858532640101995012776100718280984616194786504404373969677921960643028283547421436493337417971553492597152757421191281681861280413293025132885580928181176380558632325607775671822661626325032146953332411905444507473109716800924066212621658587088573475110617666017624358039858624144872952910366238725232131291390761861324879375678476272520185961851913259615213801781735290072735864601027854649378382606861542895566897720841817751973065994961505972335638976649453549627692758470643683972017002852876579805244165962850518482108164602955581244981871760333403880602110864978986328954125591056787089735734544628733963585410657781443704311965718565148073828956958863396820505653245992786463136067501939818401855283559325979418829618945071770968014916329422577843357919294210018634156651831951995839816028080216113624921359224269119229858549279787323156361025284376470195596929478487053664760255397103013623877792234101506612836774818155984300665689345034372208558561073077216592195307840114636704040164314124864179783716494797779043291919506779506075851917298260638721736807032435965117120655072093662034242153703265522112577834829066648915783064367324584149968629048792564306355350872974269297022247448558004420462159171228496355355620965770859880859245135666608096977775530961914879783276938388622798735725735902697614187835908121334377834102031539099624125746375261112125011989796140812947318963436776989885101023166520612308030581769168627660568762313437447151468241283370495873481150337776882816069722618554349585733255045417443542393573547998582614860344332811931939763238071826553706209455058403270299560418615138178208248968661605720078071431857326099850658239183584027129596085395521499263007237226869660530826668954880626394947313578740700421091990143178878876527819384639381566977225765509359242032225209365471453216537344903449440646645230107455132820598737589053933962154875112984305069240695056664742726382249112997076561607509773226015792328347676403576350902001591738425362439315291499943636626325540348249616204912495499630405927451327191301915087684220677473011015049605522127311585669826012596127420605511304704975937649075195606779457580281588869200781435466595922068035310470210632397959166832094793159017997028879278060595718624987940938707970087007647446235221788314344118647900450112518999737300629723299553283988892770949594371265988021341763035249143780317923682443059187247527774934755661417276998312939815448065623782582302364066174594215821371061398806700855588005506026409167242353023523831513539632587185655986700272597050559974458629501460583303467623929346655311524978618615584129868140679420928085264815721556242878875630935029979568614378614307543489488926634762637200099674008521307091272412114807620504988742900377316731723517533618229921005304758949331321577981815034093512040445481298806727649001541405462098263100090996290126974518889214536192825534237748668307566429100204220817802230450784022544483831063611562186577587088208012888666577684479365949160195775348411430982248281585978618392749489845172008810899113001771789284411907674667014316062979765070116530838981823689958431492884536866730602103717153735478983074455486009604414409316192688697485557343653675962706394832294792924505375912263505697098909637684605342026296282307886240460264953223416732252095700000722943896425677225065840377681470447615690718667569670786218442488644384724165792711580392688857497048056666286207143788390640800296522674614523514675544796707017665889066497117920616664706047149408824693719777561849444720758068180831903368296081731704793177826410348837043565625678831505336694236319542049284216871568909124068567103005272224213240058498129046962250451054235824799193410511161708658509691575908006748709101250052710829401869289386483487958999953815634984894922135720524806323002638385360080363725873468918589585130836141109914789527866017007761618051922767734465532864611702294123739306604144223057494111958958562589305035167169198108693078568672359065929029797268512053174084191364185897722789273612326636079093762167293583637477242771795151311450310526082159425864858705069722280669514690063384254691022107679623725368816248606100268707157379414023520885033333001526137246933281826960226946411862652045055031616868675055982333524111376853184336276830698707859038951037641104361521527162738257210045002098676887412559011694677503406968733252339871667323957996765690041190686081053036128036489540151179312265537004091545809368271811758662132843120191901883077158656415189240673857291773243839335809396091978590173621801203791651384753101652782451644333197775437768293595221055206678347627143059811511243177962587857973244810904672474553169290229492609440142485657595325535528659471156140399470312526778964196611538994774300562810299769276813199703715741285455412857282349265226563335019218692341293109414102561575647518198840154745131954616929185736981703135027797813811122750441519861626200871656039373804052158103650397140046510352540594404843150090500607002860615101560616869867131467298292898907294516195221380504579138473971642152597207402693829822627078433267421694102336675882769009850150130665178231337079451815313949331613353517789022383121544026765304428588421377369216497467603252679768866633925195534408576671459803528984338189847160990301566917456189524187783315229110092324502302395729503710694932491130369264355210147182309105411240346573123796043289352128546769090398128806315706708910226468369632856398770594828411740995237847523666265349381037794313120059784054234986400903526431544696983555952277017160607345370416992154061773157872469964639883236767481040309242272098529211607293258051476504273729048349105850790353901408509985521745141279317674401780594769192013357879368064420712871550074501356751285737763910490741486132129181161558456567157961435307001560409627949568594399272817258492140148227085349073460145435091087795274952356987059731502389528579546746096645326659025216772143262487879585006798327050452313211354975118549411863157174643731451862712276921050309163064063235896287298791886913342083294687817694336939396167379522375239039289172461655157942328965768289711334220537427030068081492058057487461926110598827509133394374696136541626542696432159517304791002363780834388076347619169296156203538506961823174985190379566556267159454065744432482282227933844786344812292856164832649884005489415885616646917601673105463182133567749125993545122139494773286458042933495289720280048310227012513169576850496461114225060858067691509312988175360625646125068523764071992571665549733368014843098377799363876256299861534016304616351489330128171094539079326581250055467207888032752708478730630311290070187385670650116546319209723731193259835429984795525708102686961161407147770231876760603922895340701407472398969071774086670274668800003485020075100101567515908370871172989773441944110739675288798467868480333698454336457714809507685895837324796326464632159388687976802630929235544558853091954253651785169309071672137345023320093730515694945861650115004049411540672981022818072802512080585314712345893850395941543754335714834865202857666550789208411332650598062072568093222827649623525619129795838034187726032755460137184242230787688217733827448185234223196211181168444035992761131206359478857100996597431579031847130671327435372477171906205101312842142692232578490654061416402151518245755849353998242376418109448522155749253615873583185610916894001238777838137997130920801941911251508204187309038263571494544265632247875716295232630684326344531430817665368867650768029985391480065813476250270358386944530352287769638144557207684276916363288824476361933856847861665717561000136196870730595300227971740094398990728172102320575788391124459009635731182890060867429288171397988098333387296893877907124814125301528651482348346584609298960481076655498212696698127840666464737694661888160562259483091976548024097172013587549556913190038993505762153327657986371221772818290445538812808685343771039236497932020503967693609993658389130060357922506583217438404285548878782421168405754184316992258003595677197902833067401228127239081566273457768692593083892402416727193528957377199220603278889974514840580185651477674521724055714961537246687947109003717431033008736391502235856973545540904489675314409954877680518527173608894004279715997877570522838355305681304877945355657226987699529447384182675556507320705510202734983133997265191674293085297984369557090319967881232553146862098339297716997789057408239770982704000358197938165231016068484677411037039487922718601570137944358410457295677497859607283076864919775321877588951884347605137644386871644239459864418928015494905959122477505613048928897130626183394415165957722730959535176499901768463521718234132398895551938913509996695869755561401967020883010625743282546150110292801035064151075153332172044594736477986869768109273994367192244516777971185951157628030255717476081711450891193872734734361622055991223058539192936511013429166611592729647246470029101750890831584558979736096195999140418491902319851249596731414534543850125595560125895294966724274148494933123817941701617978551783534216791755546339514957423330119788134359742190657488113690337939363830451062967841595228118439213347484048970773742439173391394996760174757830920565885014745927693605733341169290831648867873927739137794661822335361858262825793631975454635497580383749578835519983710255024784751285454510459661570135080873634761884303233474606414417836256109686674455104175605278222276969147306566129560227447277038400323284305412645799480753106210676335047139062439169873487460304884094736739165210063317579001501317138002987955126419764029196076469258494513767048690744189494834898958683724830982673465464759533157566285874218315850911062790343031626387952297017867938542614172157209972368447409238138307404241443931721168620553041743312465080225021817990167904326658950310951196640691294870916069568239041560865334897388131788912070916121530520798357535537885272854919536814761350313913776218600416727343397388299167040273334091211981207884388554307794420768217509687108598644337610682397811628611302033084394273187107968543980209326940687238219728327573933460766580582207519770677761960197935117626633841130858044976499410788375637035266295695654078129126093027000999135493989359695895835664058858255208469341307844113534872598331258150453026720023761472178049278544565815570220067630279071119326538743879532492476182644861715456917944171176184871585549569587930779479926968535761914869273106022484778550481687628518456562170596458909486910842513486210752422163050705516444620333021714060549175672511656726256941976351747351225042933338525229700482319591842029861959377528355516870613875978591526250738802665473897075560941578446719970364940537218492110976351190486596759060873517882765574312837771753446336022118501936921412600355641857748429102016889681565154335474635236815315436560265483806705835855825308716294274765881801083294213663668526406056265858424206408938719762730818072266843067816860604254850066078744494110572434705553854093603138951635875104724535149952423698746245590508936857103992123196454368805499973898040605476104606727709853689606702813800890884133186314290420139297466854166283696560177025152960006972261875670551722993844315282824360983139534925301971048725828586885683794748722068447375159208479667475451124685875837995948520071582326532722137275206010785075251870620418918758609309220506767831748150449886912827778990751195055923465867399024401235245767711887728349228848050781074703619732883894179547729465171841144599279468080258039550272389168725453804064017576712603174728751255818603005268690994182589585417654696945792271777446491860699186613457106816290324399237135416067947506080430775951257964407496161371006807236385125842580328651188969040956767890849864416802876412831987688297258095243636534482190609954467573909284752665583306930720662235844489792149755196366557328967945799769457820540103785296430902501824438650221975817584154665039691163143345672827956114654733937472782930849157587746965059704472306274498132022420552810915358599519028385293898525130524702478270150961641366618346167064476086532088868821084407848376746814246800597566526758403427768640070561881482357895616764366890910073200978540397682656016620390489523824215310672322735375797742504483932830237565029732268337497136514696487623040940253528770389124414408905872027099836120743744199751942282610560831492228501749951423772509373435315557103054979430886949423894415418650859264384722870205573882323710056426567698333686823168060642970385375601145185926613512509445780911434644900651111064047128270509400463077503231148056598732643700926219948033402320485421478546419501010848057704855006805256735670344932108694403266837656897186556238799232663012055392049751267747282907122653857276911187424213986763170058757079237275947732279008919964865317071606301975301165305548018604998391028980836863916612540394201173700022656428601086639330014116507176294193458562962844798880157869606982921333826585930336979675298552130484828496408231715758021781162267817482963023443298948779800796337651418041804103594165742616391749734228068510954556203883133030611005369792103533030286021495448919546103277733610369428240267500510504500686262605597630931043475376704692842743329346890472344619924696711820567495888005596066827630878260107359323816324019012729028065591651084180748123161996347632743348735618332561233255144298117048401858378499059791755561105162961988174252696818027093006724185579498011799730694852675882621443515988736280482411401081244648507059281152570007722781951321491061070699728316304750420708136518837602635330518850260253476792724264742710402510134467101699215422777085840546088350774263442661084058611637532231311522990724247879284730978922519851028949341855024977950751708999961813558487353957999179909422500420439304787419980560256384994735175342866346116994251933337276028547628292771214515771595076210398891134202019242432976581352488722545369681004416524800702811025124016707005658073932717552705180562494191526118851071589257715928173089071744801255559594027433865998019182370934595276007067180356722028384586695565428710797061603975098208437855102318730425717317544753857337509376899880544127175480979580588439476013684301716065982848311491855997570113609662490544886598261409280836321080613609706606441417734966075511486636744217168738613116178404191600407613380777926360340388813338871265625297274388092583422554899658062365902290694821175662143854275060449582453264867800046102758380462496232544925571972140481034135353085678854002410046880255781278874885113695340549902205829823312381058728384146096681928936883218959625853621792853162620259543310825428642560747670347634334448478071883039431928559599647094394395756900766392184729213251037441570118719973461757377804706894848950842752575794821778928460643318737602681818181868541532532969665659318226778756555516145086617429857126311726904730867606456561168054777336782377288540817451840286113614630691493699908623210423627866585310798045544189432627083944547507516864240785946013107352104048659479916248806669880907718649712853002741361417018383443479976384683153802535537105686532187796244319493742119335579610211162393537644722671080817022997055004893297698458277623946727364557609072358116576679803538867894900452675479464538895382017002592851268954967098614836270909591237596015612908038858685360945720873766941111735735691471997163737593161079185421821785174837678576772933058932561584699013109687664517058799243412363205801576741787846370066755172552529359960740613720764662475791513323621438485407684941951086489307244153675512399114037037291021702943296700804347958561862281512939316725756937201888890183359210252264688473255077957227759268878784136799404556887155495653467529793332298088248409652101755946416496626248120080457524825944909224290960708606400348439353590486125979113679912777185406448878381884160524128209678091226252361528198015033581093284355008181858991370007063912107234525407728979805900017910266605837479220147414764194291308767254398028361263517269074018693474410827601801381287450657009010215085293996685549449541574692706719504076167879342632981087528266991948499268630211054935755582034895141366773781827638585975555446817044858676187312923542652239346822042026522624518360558335698247459982002612311051433884490268700992204479658494177953928276061504160323367956073214183295098529047174567930366531282597332974734924738510056609264505026139417508485666849385455643107506798823027056333886113884577740988608741550658965904134881597732240392833020704023785429115942654568667620291111999908361011252399324632426626015122393102868388152725218962023371416511779946158895389913930460565698342722070247138296583997742766506584956937022951525529108427720221854746384610054260980006782098211998937789080131089400824333310681138150212732127657785925858701942792490582925499052322018375445264513324411585765683811543545157109757841269825274695477744653136236908453736610177850639317392739780708673636084662198196194043649756814303143286768124836176024057315463361707101666752195368703970781744340099321258884984553161583905763016168580729603348265923234663817944584645066017530321790347516375622532517123616248016788951604974048665946031145306276175080256004206873443932732960373217553411169977020673722945390130652357695280227795753906452084910195416072287070294473022058120514650836196183751911240779514758180310161780552289682153505825477351234336041376289730779331487452311375736021192933656783479603187883678425236118205097436370277796717341028836242791180451745991717434069825778022313268748809257804019870257618898527747927384352412407673464783477379933019645356222498235122775362760766437431950382165781609952784272037188518703413400526600749733946918044504630888657031391211822100616747753164621551843114341903355963776414703471236205390222498591845875066517024036123151577058842118716531077601664865633584520862194079155174795793492646521143910617072081652912331363626499327360699398591124092919057733866676001708090423466902428701765769777774633927012163828278965040410143033100269194674548517008596465629600090306248669887472081032131066047898784996194853539552998560538859903235426069860686482952802690858899754635502556022602921631915947191174960564939728666710930987289260323018140780605034349925279700858938515399727227412492938141493116395429354085530294233837365640073379735007923257063992170785866868631818055931351302133753108082989388656875753296268676528183484845323155004719994292829474401874806499156819822246690165706308557318649794635465413450387201123182153755442554228820615552754047180326193775630582338046960400122673052421237075189228006431056472876773965657267658154782616674282906234698085598549086470089456659016909240983577109371015273447286483023766046989302082358796505637480589615252688968872882944917100307520888175127671306401044834510616361041662041196483803536582843985966617244367091065901766854748895768418716275248516634680012928811197458371718706460377727238371151260268353505985504494773342626478632201120809282800836079567226331951987990811518506980884638377355779549407668931237445653872307085588299705232220838221018483675387425463043198224058352343167848109477356832121770759833692298908888815712197233068992615397241295525352071948294605867039942595270770740524558066010237532696065540454862987231974108348326165319356585119070606925533881127427463420926416363457183330752283748017229267952197557635526065890372036948985330123362279039948920567271942734099696621792753327956015335107491795962465152879972977489539427543389457280403583344939792324087089334394951660107890485148866881431441603890723139043933359307747977210332364402442412805885825099893012729912600412398740157574073387668364319106243459588059339315259032950579310563845765301443114373633765565190159783196610611945831226209999272334642699578707337317571484466888869695626491133509369128474024320269257102058975696543047740959941830602051475019072242916060287093495131314170448201506779109199420711578848403719514319252258553742320237446907294390552061134049379775236868660620744119745990185853220899717106149324218526696445545824416752089947662967894377796439706870500003880142568900224287541511497472668335307961261804099829215505027529677664744152429326537864209021726691556956285946590594402736543050209634875661414378878360004743347486033575891327135115679244808302768637540890319732970338085048072918078533537283461039414081538748795641006666167403038672336546085669513318012379309809159962698601208361618617061465430399220497232451840425185748234468281611179272109417077798882530097633641404738814562321848575819389677564421486785328436658823410251982338631144854197644680180025126772542973795215049440972162207888612649592547192839745111209483711994941743052829561743902019619498187021947540016881915733041250573942263956516935075665413770673901698558169088012000676514697015364130435940972948787235831476636140379104546530637051273317684942541261670743454713206724103332872406913163156447387623596578119342682709395565421503368878770813131065164292173399746250389027241629607753232771588976884540068878318691900683202155833386306689067420832377310262812216697486395518621095626955482526629954264553684205431648277614353810080865394019958337405481643080535037689466784808580685237231121368021426041236020642582806965861114315194664875492391015513697463506560237965580192858042803080189273663444710174008252688901699323467471164993181171416387730245953240773433176400869444248478844520243503658770307723773717531926738248351923939242523131724654052663828390899219225481053002136142159902552109287085686589459275978943738301867067956885158456806547174356130970700800350147622509952445162666144414749551960307835684416872185703950498582232852948373627215038750067410670073258418574428132180227614801149909638816211795933850027154230893127199651134116662446919895921892634979565177587461223573351839460278439801365668453993697261318500815353587420636891414139561106850266631126733334375232035121337765099268198405055246336075182770118613435967934234359347250162004014268056713753090320107746504379127542892664993402177939161982095293416580918204288643172957435225215992689532693689978335065884893673301162838457367033786841325969524088104120991584556650443421658831957176002023911744647463426565089984616089005603120612909448668177025017517330175041425393454025787324796251682012741410870175274259708624511686584200747150142473250525097707579878491895868699046766428533106095828759811400776950343947799449110202299698196262245492368306069707924353616080714961669521608307026682192214732667969453951435794105973437684092915473349291444819311126720404170501947353510272990169669223288437263537266245431085784576311711249538852630042579756720929004324784437565455692775714397998425978873433807592500456162848733964109149438668038727899441248790258781414615726881439661331267461793014959720912644624628525670586552985912341586995730123349829908362351801316775695397979796111433274648766798773199477543230726409435040748770271803090526612207876061391450371672311411761115322577890043996132299660432421020784145591119596649165038282329544731418838906500011151103974352851222469039939469331488123750259825350673891775599058085377364009153493616828023035756705286789561627287032997033151029975100862209401290255964277669109299089885307134293703349688152542827529684867716972674779756459542710389600807285270535780377662105866708932133122316580847092845724581673228397435519696144019663301361969856041691914178742183509862765497742125085783699069966297100941945969409087777167754402834639911348149226142091037139654270264843875207851870270845915494306861191555450418262528782919280701178821359800981835887486818450207541579786164898501754232433012888857873131685653959820935287775224941504775507594345413091094570957622239438057300497923771580428143969726399280479777295008404965418216470035213648948650772413961794828099542653762317230666839867510107774132739846631514252862101146626494551159718383251619283808198577719802916048723480316933274291370002046898409551092068873181193269798976540225913940850973112322968637128078730222678787133267723316742321087439655705534466107731994692981519284866836436077655558185056877272267853428905553137545041083897144641698878119567963270109532884211640469439332895329818716613084666817693277981976687532148185902326478033161812068579007688870588835715167772535723791329601637184159565840838338483950808340701041515917971281634746211950335882178857809712305557588043477009315540274768300690458552006644523276253027432055797961331835553357758383443471989573273693510585609544093547010693013153144058041801263279177478515673950560769309503767649801891933905259965963666108885673738053890535542172606283478997819141232457565433374908647039125065242986543339429566836278547064619317669827584202527737001584834940786652216428346660438053334032641440434359852667015657590943732195972647180472366854766404029125605720603354132606942468873241276396296595475828088317175135969799107352780917130050065272797493186786258862329447262763344566255892133151420114709766805948060501871128397316137313636756733482413285683441418974083159097322715922162041969150057156618217996119412616204629489862392923433398319534462766579553130289309670601599726998146299569191930210560134297948136757694657148991031018868233501919785287888104837498216840769705172542355774310498184883283896314809193977137808596723536149237416446117763695317005179731569951854751960408570960580238353721031797451549172694902158629743313839439909210620473160138487246057472982658228238628363498894668192022417848811954209913846415084999834215608685713495750761270780149786740412769809390601052338511762690992438547517346718545409233307743735885031708761871621472812392056793682355946905096170594799620301673129078210199869545625810249339578876361666990295998755437955721654640347040146972093352992534955898839228338788484269075369974019069689034418137657955080892215566642792553956996063022426883745337269684135740789915855076465795344620862113320967353544627112214705176863920248216989517122020562575627589512199759461760951890001781853656444589251974149939825198421611144705841154329722381509990460010166306267159455365579714209949194377692400093744303260495122001449231338782758628329605044717975876476805079947394838735469217140584719836978640132049042913419758834122603590861681973631282296475599124450467235629830554911301954354497315711069685208321645937368150780079813108240295837203395667678881429125643666904858735391876900044818197055759929064079898329321361374941514974859651957029672079772954925787905838335429693394115577032665901935397307915775416719871323023458149187019974988287888974594507900038669687064506888523254255916216381249185045346609757597617574954867415784545420290328102541521084289241301900962671866148708622801163789614928718030741003885338236582088629646830202922859298668910423794310783044301055981923075090296390438440080619955431191789194936235876666489220729116117388140656571346083077274142547271914843401164055463617464780324447819581953400611078369602093157613250964072450782121283592165307882319241999427973271931558994305403794695153413802084318819217443750715795208682647608201430789055816691522460482444212162947644435178407282233102036463952871677721018876571672204711864968662596723377859369794338740715187561571649978191895071596166798527509017063483131852896997842624583316010514206218262633458091482928922766402585873552760803894124018633353838050404798773366189835939069114466606839279358883042636906921544838895748459724911549895020126522758046820650064572325777922536692873787381560943919082024720183574787186093726834818073981407657782553265439641526263350054756736820512491323336852861849732621754564674277684578966361332600385433559482801766369024296303630479776666783862983655835499016372084437384998593272460548845161878174729465458983208454293258360688153871963739148072823052822121524369212798586206280496859717429433350336644821630256396491172126695578694099845295956136478020907043129601208658201029266953966850798569085026191862536494831967149031809480535765295884149216937728874331875857326637676130407071958896782327099660787847242069279969217178687840393557794162648679498998505931424239520234340679952966075652243869824802906745283414152127064255357700473827574408696478046425515459814782418371837856360372651023496470450845201966497619043925059393641050743382264519223493319491353540348261940974561505566042652161332721775754166817121920408857455080178722215090205427518351639126023500496126480203592519651109485293960490300146089511968332277895733277713877669069578274057898454562886579476225751280735530794209545900437530269515034143569292611289093315113073568400539050505831418872336782460233330561257435507571831795615863463315864375612501648734607816837095360572961951387906592575779347535830929170888812406408886898553824407484908291483391083487910194236305199505791144563580640641014194338253457403809606774946922874021138918348899162121414852020672002320920917149079848996303164845762138984907256994580272553226235491346687694598361142777486221766603960365984126105210326076517986982173332918640068060411224552709177668925848202674335251464179979176310169335665526322619868294172937363651419561069996162160070021521619759181435337552852892251649503317519683391957340881366121533876587675478068883188388702768842126644778894896626871119676269667852252277214734314775915563421323958938309093785115438107168452318486935921216711382150577038822294238357790986537431791556121508324082286070190044544127546274894653900868936911671540587982004114329628194969767321098427995331556749513021595417997219886579068705373989568404492354517072329088884080312672526638275003648284105367870012252210766587149663226866947569715035142492408940484066731661395435151618600261442353108972721457157757878798204874722287964788482831946963432744444839872260526967695476090584391285593983854956059317560477903812120635860625766328264684094867963917187232977425127141379343438125136617777244687317441979096426469706837358838652704854458185691821100181230574817504561213723352541203143888758609239818546911294087168970313512525434741219825211386195072046772546739151410087640632927094794674783516101815421787238658465843038879709112307399088192430139777973540526035477645144492219087736171655652487333621846264158089990151452983643534415066772228770964253185491378389055689857997300854445332762358025407471617540773741656840954745849447637182614197210268189794916827838914635028842600472678814183283352264593063356092727691264152739000595719042853029595321082919638260616581873972672121631965092681026509655232853686117227197229692258400830300143935306399996926460399166850117100314201699560774598054066606988764785848890436423056595895600914831505709866297117589582904500920701182475738113067300799275718894396922677105194344921580974290370980766807665930179300794040212980790897146488415644744489547368380628393851696320440393734280662761240472779432724028903412754769276303748948978194999635884615481692239444749289029920451520730365470489739573991591030462344859285498310373542787822040120468712218663778604074840369441267910638036896966345458486784029170472321383774625416325039590790661154758722748675123171292155713845901017233196112115910259751001459297304856541344385334029744063217188742851234636543314431303556170999569034291557971784951799432003635845509268686954668090888667829874658657665637999963226258569122928567582987015628233964649051399651986585853828369824342293333947560920010711155522008335770299806922308153402011254257281908588281684457336829430555045707696512026952031715353872618884594876818321855013409293998898789468414945595167153880321192388435355602831802206140527623177129849950865711739748561946117814111238784912030715367641422999612001170066633357911471974353185535594588104569049020813339220734923479582132711748356095877278394709818664423356078726621291246910038707601581524727005737103514971209120198853761669618219787367801425970633227075853263087358049049299358112356941701626652328147042223475524888637334668975380275874817538380365252227260599350731973825756403235591300192795264024394143327594094025782854841226718936980407077440252109680234835866718014396203649944105845453010011538785464581499138193881874625085926373651115285964783729166336300747029080725115231208651873213024306743453283891599502033263060242407114209513758092988121189857651238067854570717548304469700951740979872277062470910552782441352006262784780261277843252353455824174636239212741461240877481895447891276458176583501681729611642083910067460362988528176125700707535779979804967756210822878965211951443821445032661822834756699531156405226448717770459850640218890544131926187747790294754642758498571247650243622779906978257015952719869966525130223869442413414986519743987735330673049388875575208470410209145090583798076454770063072722809440441294042680099198334397419096744867516839627894554714244796189594911336111847827886234509396484606114825477105765741030565449691535559727814861860286336057809081027334351702659673603981955201980822523935527313489643305174494753347661574126630706657543854879007379952856830514477848228933246633809611423006743597010792653857027738716076829450596168099525697852835972036176202194264694590993349719350862287072973122898147828694066076859879977854911298686887813337152091500332442055455333046659553141889505667820715412040456199462072865838223144927690195423482842630894630159859220150897237315073535297772696301065498333882513772683173811638916419460160245054502854768706697980929052853430451877396810592670680799568384690906714490077037281607471208298115134970973482289085323464845793150499148775500575866890148987632523967251803140263645942550562329338821456337994633117810507032813504450796454252675339454635734298314099524261878012984230296374059161150646284719411634803257658843191564374838321201761498922969670432024793995339329337803576791150577299528985892891670748051310381008446650118671956495135037282657715373223558091879939068916182609158477394998828350979965651018657180667662164582681150305563879120342829009659983528021319280604503201449585582945864851220907399129432230594942618575899962992283902497087572243495354437740443139050199767517269932685939969527809491223240024526056083820357253870069179003222504546602130303624849024778547453088607072542528360912326445790657565861803963311690335765145887513476747199523559527302863183183003469340119880230542625843414359632471423894712964644786514899358412534403276390491485967127592585052971342463040769915747573673007410331481937589924199040915361738905923643566238720415116652064748523017905564755614699789470433272576585287291753521565085965607804756353523943895920305643663276470518048856494048644346150970641774809807010978744314609781439635438868481646694308167436319995852325166274172855725262791676886664958473822514307178778328636322337125217227924833909019658191792744062164966853514183098745631482316539378791553328955303693528820183679787815737641933190159927578923158124484419049678920772994940265025628177603123394090210799476304745593572468938983898716698174265174981301517920753391660434869417725195376676811354068421804194489806876315093037536566298826305158960486810807460071664444842553132871592525014360039205688223513729286908796870635974205837155161663483646539943745178241832934977771853098598786019035433058958608721448171592843882590274580105069524068364131243923571262399561732760157504557511715796462870547489162843946940246629060513723231614319700631872157035781172158316414027480898922997259900257611077338853865942278100358988043227913257399325817915242415883723934734478470599413439768131658893617992251161416151062649118414672557811951290030240091020042359483870835758082385960018137091821740178472976399542218712301721289028624854876347219027947947955097357782746556280982451615433424034076651064873467749689786679100232501852255327698669833876347891425274157745143197466834376921377005497848939706534371881269343198401795127790106547870300211381910102736556509323592432818201089171564877466742458023134464005711404525151955877451550997990500741670243715091727252481489934531206285850969422791981929419913421629616612433744305830392699292492997555167540394730616005988370711753531888282629390569594353400536273338031856185131449805489256310512559762270979051033887950610902939249650459734823037140718563445040034078391856530400435852890602111548411974463858997425789182018509755107356724172529605438550282233395032125130683590090063332758670289996467779945063472829581398157571238572468419022592152998676822806361715084125807201816338831522142427464500855231327432875959819277475702763257957486469862011092028242287530346447046782581532757489173102309826689717147801939098273500978662176119144286270482369616290912108839631585133161358154136197804255577947435557091212728753961331567815813504135232139767150279093198974657533167984883661967555545515874335221748617733906419066696230064124254713156955005491025734506291910341935266436380034695830430597461697216791546522308569842023612348547777344861086685998474541678807423257262421473946174523037491727282522295765357634070620609283444600098227565642145258917088155076926498060155605350419878291727496201103535693464925238181718296810028805848261431072096265024858096560772580763230965850264795132318469961278694866288686947481499485561996420188713248183536769302900067722601207093367404028608959825885697866163230794473277919553182734924369801456508077267033453201596256001561394507017123765953773076710294206824231663223213385118471025182175352152941581681421051101997418558176857516285199966840232853997560678604227150435807787744881323066381885934521898492531570404664694569631740557274280198441121767676365124542758660378257031036989661777548348762546740014162743284581099718019844598981792262557060766886253523486240627554530368378697071227158091648765089687324640608192884274800746556187185985811856655557369029806292062677413753406122299448852617293744881307372302049764186710787095411414112215146828502849884923102805107235512597836466557176519140782912941940549849572319653395339269601023981126924830771504038136555936473546348878276979834975857149065329634164729364278055287980832845908430205016973243184884467332637979530288763229652419904087237288799495470216280289735868239461206202682670982148941007639790466082299498325580616054640254903308449859215757414948049991000949619127707694270099869166134466415324100261413727339777011990610525511778795675111118171276443169226605278891733327733340366970684846800741747522478925329851527227256424299395389708703555887127427534352371545942741543771540313820941534838923349675997797514633501084281593656527894509767046436423971123464972888493165854566673276574753553636172847421244356743011393039036248769987599924743129794605875663671652993073897783211994282366010139049798196173125685746185103564091063076649837367899063124291207053947350959533365279397034563661189783157077996313392127390704645351795266047044761158708043931038376857979735477049060353724184522010653378658324395477358879487682261634835417928933040504087906483633303851974153701476545335968115103513649945555975721783062331235840685311003510859723250523284242664152764240271172525831555793843920367622838092709627639838604189602698986528241215149950016795529166624290748794789735756004547101864265822895186349649100109119677727056497939948202801210540002578749964329211055361988104272290429385561181192182495990703242315065741654354806112705045050375726978003287768990069073483645258911319550341884999725949386707368119658561273521227696194060314756840475056212541835710129063768831668222855727857888973031585508476497680318550074261784029713135405760120225868568327296072718067700378752892858155124358081116278583791136617316626427341802890565195289907796085652757865998404471240161963073320575871952477798883843704843079328155991747587657435826024871188313634170244001238850674614016621139834882032124051532491836239015014469390636749793238383341924290691096001622175323766690239108315667251297670480019503042211423802693558312595339956877607983924708531060219776903126287397226001999763189539914800382220190875195451739137289034068157800885673490598637523047576231892140598539048515693136747340167926830048368024090734923499175005727359514127333206452257216595743014491502750833721903300032771013694504146553249200608927097525820446470812284244276505787471424015515098043179019422536379005400670976538731114446424828651614659709083460169575192807427525219466061703803031187879183676867276622806460196613958495991913435989785306611158820170391473577711614596725750732748504668934584041918258213160364413491090758780598969680844892771619970823338376127291876006871500208387659238321912426875456561710680374095834243196271291662040198053010001558673537703741716233351725788776030630665590735386248276159977616379738785463505172539791837531120970559453811629657063920937743071508025891479303875499057987779734348084615956045962806451440797293042211280556226169613702034152495250334123834284459899381002630695719257823095921856654812454863779590501484878484675614671929361662216151746123817170510676415043515864708722643080078371473473105834063122599112434127797297593870939289039615934049486809167503515088410005284595162222457499777856794032309949564502167284362452179856965712222859159068368385651500800291860888589186977988600823842699322158782976996599178119928147541734626128448131696443492987478311016877838142722032511986408657377978571607582289603456532523948188472829881375832536605745550686427884504639138150639582813839176497998304486413742549226407450586753869239549233887308839653268174137069316239420137972615562935799316700178692196482292747210583887595945332174469974900615938907884343355830426821485065217438806449756262611964862847504621910168711258374001796910397824825983339511820929448264008175954473150043405060984176753072314692021637960614165440031493145244861084256237338627084573220512910758745974610895879474062575623786639949894793423596616235075036589911746326970148303952182499726158507709562557286975688102584069048647904164779012089115665117439479070677458763236816353433199420175431858222698779050713689154444298984782203440652379167940473790715642958454370912168408624632074216398204326969460653265685767350598379634529503904878771227619086432518191493919621259659389222508904361283984291397032957594521854635315336765391971683199304856587803167252445305132298823290272336699083747669819927673642891471359898266081532746551866126823700904009014839248949668388559370059560123850517719219800000568703816030419174412168408014086380029220894137946736022927516678498483653612188761273128219681362602999038868725096535406972969614365057614845783499119919122552174493689575363837537155153123449108854116218549705248995355654888149540987126525810688817669175423064435629190834511524303486472550378022226373300977340782491843825855804282108917288117600859085533822706410045040359389774026136608392162539569445937220121814530671286053928049555025515068461304087781762027643806385854478778045044123486754750581019760644992721962823085267868449114090939202204496600403754601840799544490461977013878938218701169872565339065778979517433264033971131116435656456166766216481677986721854699863770898710570496636281521609667550038493120124464316336944743235833775517216749862105698811037001073081032333664416800216414046012470466900414030093305932412104596093774721285698007513974172694390848071097745026976114094711260638379951268726165347182057335066026649117203730061704245917065160278167385301844553979029345855101714042635018533141217767225437834054903161367200683349303261681707854294622340775013394723021828242122636313861827973601666510383866527465504001776701143762648714120695852139926390770751882277398269421321708150512593592702864470149900372666379769812055085889110101535581850954701957328192234831392007851147116450913589516467708048056575232880150896355731421267171011344173128540260480320131011852665252151460346210152013225073056080807468725459991104757552936128080718318056716201151417383795630024553352778939804553456214673999498623582329642509394798057888049744439370201660937233329599510308241942104278902893661994084354115869151811469899676525527371309097841733637888256942998881608585761295230046962219522663543837367031563474223016654596274350857514521467970207428070179242249629503388059375623979741727953389139822674984276127053141090721262749015038113676123548001561492252309041741265047741912456452821615801270781993804086620238575856312807776767214879535052251953592229193801298750256425689842602584141355707706962916586271436644897990853863249347365978813765877862998151366359127746185241204247627651597233925849854171391388573470644771137758895822189618365200767619750884484061435012837980473221568920611623765143071354223870496004699526661939466651720126417470792067860440825662974824171231240885630967997170047713666474077945612950574029333184353932332399278332168826945216732046062414182890923310888755387921826955152418387273001565484245138009897292177223514441634883285048727195829132214454376724241923227214079535540260705681704300914045873160684411905487722271505719114395520776971254732618177446765797932427343225492273927722070487460486540480773908495521252623154861116286423345293037036477181162554426013202522910708837572867255802741145133970170522791605623997748738797856432212235411445963504502036013080852824131660715616122410909651947166287919251479221123773367548852139403156476256675394820073838308065309583439317853610244583557574356913966422798580578599150423010287984771258178275726483706354377895467877690360709623365310142807376156386062463076302636860614246023477748625130914233483756362076924635329556601690509505435518221651754944564292654190359132208808973880435460754333510667898977982067327775183910447869731803081662205071115516848016857064185102390694306919847827462746445942715873698194619637275038177320531839506166398225505528557398095638305024295539829309530065964888769156119989798435479435309486148186106307572939084055438870181274579951013167347893353184911624958415469569576232649840122356746914579964458547696294993282081468865171461927191761194348156367159747271001378397330530107812779423799917422344631847306770639923070331186194566708695971701147979207315949748452567916086433802410878654689382859611212029650710099009298872564384240038993619556220256882291591805224132275037727873712303117316322202778994433914477377732351492203705590418740788754880068382903443857209229767853928497800855234211804111273769919452637885438323397050310711846183040904294818619619872591295339974189383148302748612328841030683005776234072500066637201026589123189857171607602131957440629295064415732735882159273766602523467585403186299911251726515472909198256642460414720871313076057468697574563440582591582740484409436270438239378665311246765275505854136098363547926287605003170573334599085925623474092290074919347399651232598143423092279394878498200023173116379312919594923432036455205900936022538301212884359555363174942914036096445795295417565696967371687209977420193180728903366233165934653661319949003285824441279834657501652614550694573662582295769907100355043065774512128283851481145038225103017614846116165487979465624166379713905166484031823636340947818507840709079553006056280226720272333164416128644057645900417126129200997240033085232323889394803345140016416378177592821489373871681247623477270870722559456594279613721427137943343215251302239580075494453541364564697682492402983665386314019705543353458284191050029961861363304784372820402955975260432341160085052717033435946590935744794575762486664435682035723871587781863538765492171806992542631177956932371067706430932658371889293465583450947317638465198666616575592698183413569643493216233271653717476055155957427006000592562826165775654828893156646081872215932767206437622305165617603035653102424429460816251758640674233923347665839303432565205989018892177091357576787355156018301273230753405366057661907176854614021573756573498206724717130341838871197771986343555234437530456506567203005317268763615816811358093133188949653997849313763815136247577192452935569364006191622694518871875383101186000037943066303489813132401253283120746785631408696452004131759726675743140185136157542096117781488567234340305012766930900965509558239285359312873438378169250701572649651364524706606972829539319637867880517170295336385246084614828492302596568654831575564748401918779288747776154970208360046680116302730266811981899785346489743126209254495272632559594050416194156671319168156981830263237454037183706624985923798012082798410643927617673178290705058033362893449860355580707578203478208102611495876905515205123751112850864980729914930093816685812083073852865381766140209751618793605699015661153398741972993506936396921983489202742723734399017153387088262518428290211871265358614162589558661794953068617281698199146726165606516126393892381742586166521447367932731951853018197848405747305545469339998259517569999941241382730982188685984851459626074018168905186167523266172523401016414631651955489093022230689004775386725610202103387645366160403625952996057166101320677169632998574434832913472665727649423687497239087097411142010752858328188875564405803645961911522777029450968792779894923623091322384001779499524049140989856322242315699233705902081886675324293651200600757649021529841166591210105988987962089547708283322902421591839787374522475590565641894755949386756159129944426206579762184904993306195846344618142494703983830012835852016524299675272386948859831117051297670549162181904832354985650015522309884645058260575843142786191907566827105460606023927210338456662650202386483486305680207350699379034128441933820311947293246381787735604951477897024410549275636952332585839498453320629032872887067788385547187592463043891440222920846238469610343390900732590151165232619892613443145341519323668033827015986181119965422474984964095270138705164045692794282093169372003884406402801964030997227837570753817418624125916916134716680853620588248933476378894443989748606707963432178534738685158457161143687257275008676211900989079659190706924620967978050429198181841230279207500402696767502117440124398264847181328455531182991301949794931891213124639298985718814314741588787339189064942473705623671673258290951814699769409791247536102232505870029754287759418648259980135381388629931605152324480932913338159044690736726366844076541118599371953260076011540671958721014650246525362280882019431134914852424743433222588756650009046494787840768303260024737520908636743165126524208999301825771287301350725650314773934619986638976133664659012658305359381765095739048695449295392076932332492609676151488889085376688595922920220352401559695757760378113585970292858510841367045756353474202859605231005993342638455066682364802317646676140972898237048983569277026827867595178481210499405554057753700732355608510229218039062847028504590388671277677295903119918451528593427196450688192734532533258862270050359826244561207772522252014716502508649470072718073094299721845320814702029048587421229193967627334979119149217353057355672893102527144869178933715336351074465361505844589342664404055842632827663966384189157633855398905338271228789472777865486737033046337584736549759969398536688304357352600092664996778697343122888847379399591101347628987095606848499368151103190890788520766583350963516175500135423512565676109433414440184856917678701565865939451348866497115752681032296914317764587130403092585157909575772695063054827183535123838079275244301293546324610971262031595887296057968186170058489853649430997773266262662695281769453026565585640498784360002447631382837603954267973962356374403639864865022885492476990476772412821935511326602233189057056488197278141682646781359155584651516190292615966062158784312458124455893381158498983988571758558482003569171600735182937032974043360339444626962156358953376350177405326049955755326478918171909494257221930269507896548791633204182146204492338128828756853846712016770955714919529833938548997713343428404668912585656643424004487770503227638940410331186821555883352189092758476561384795636249552637023684827223529132272989464271506506193159805591158573148834851302611805997245988005667054570126616830607682227596010047068287344068272740218490467737360655351432324873976410414267260941820733013375471520664115830690127012617690552874024049415991541017305977826524738542807080859272780672780795539863778417339987444213331311396749072316633082399615554957559176180137492980134377801868691286955289593018096634794302673147508223576103467775271375640620649117536898676242736671139824248871862090851442637159710236147905111125023926280509251834897558821971030215369478711066490687540103194200672372126862294258191835908199591214081122536140969505445169285678964086402014544978764844738533651178231272589874350814935175945773730226552195191834393750441523098248302911587479090307042894576159875318581602840048950225294943910215123370631319661585928733601633092518193740699545180667947951574888243197006308346383945083676236465014283209309124171383547583569148826468445415907088882800967239005845020288186308996470630337634627231982765261739375646739731737584727868658762557368826027108660647733156981540011641065804337107207561967725309794525423875970966779049616435961163564475539017078069695939731661583979587128695533924976065494708352067255863422732731262447977547686478806659525398754435534759065353350609173934276133307807799644122573281029684580433233175902605496811505383213782033946394153609374133321002781046015312283467063506903197662178465148964748168515338016701375004418364545566351368434719229190400663714533262752508827165544073550065442902913197626770256510845911634021046295253661625248756282923281926610695450496930724339415394347708965550574333059323566738477002097922983525255835947100236483273712628983516721630360083479699271843253787178257904373566849294851866767037215655945299583668176941695096319751091068679653093277180338906978041289388277864705506585150252721985877952134793093978557912560783921224489698146572301826387328618744202019163249065453587844570831100681321967746045857343950698313793637459810367596861440403223621198921423908200532137051787241861704486904781168541047769090344981548113825915874609476625571251346402108616855675621755987461094990691014358066046877225477124841917259980485622505300636368688532314019217642779489329552639242106892379504675809875846606658631436971956941399546682843279213501760803193228485960065813599464190579545156137705631714861277096122741005045463041166614401354118794581115759378289502422404085629344443440052194956925192283170036621225310596690210191754285674465971968424284688222100258710180576103895920792076273169272041226518110466702398300351429695031855213949270270392591627288922633224263820725296814071413405518152921409330938491143982228009672125843018472493271141690478045786175796259790967127453296952363692153189953253775910534077137342301697042691332214663116567965351587735089169596983391578825247785263086745020424743505391361665666716492937475327879472913848793171083381096447638207477781040955577971674601146108435896650062147637685473575579537844201081699112159848406164409527162889623253536539131988581992300913018336077659227218906019876729551902089692208273829818131313526144731670818335518208400022248798354880958757544536538115175579412070819857389643552378781207334789588338086516787915200111476717645904858963443418053573685495349300289235837708661283637891850331787428060475749005469902216739331572379045657120762293606600119843839082574443795128278642582006037857444884822077382312409825600754181765461411826048920150921340769108907334254683336935524599350577814522318695960956551281886127995012689651447789733406444464044522510579722133162226322074245341357278910276143176215027091478988116929658763439490071366214190540290042375383696426021917295937236274942333656555289166802681546976533822977102259429871477685240900586424205835152054592115011314286226818770741484456648300989725948057883990900231539040178772995163849655394884786557728762315026639952119145177814387296490003720421106585663349494189764759682944406499281770561278927007603251437291326831944958962889579570672107426825446592019938236191857329970062096681964530758576584497166893455203347729684468649594239701914456059130718461720668727053051215555351469452040238594821622801539462004528165881474617882748727058767330909270666798926368024956274343753048062063659315272139847164243314789343824725017959014258396377238936989957404393408891419872875859765353487227790272591521397854573719094268741146840712411756634614068076159410577274991358502802920453025055448852673676678536198021761095420857300275243480205795440964835918176124457301828345884385740304018297713785590070182099416986244261368439039587088749829100480307000482288466514645536212835608332351135444710686330538929035794173408678742668328787096601853701326322986783138989783819697337047818770134871385985922883668652532888717067489993867059936961663659754567616929577892292695800825547570557892752227959934059369048682933116769566134283811510698185186355207223413874071983855808520855488418435281896395894847505763620434592584006721351504463405756036610948335339025394025424681000745962802812906736961037143841216551512196757241260366674504900128828171278918476514653667236838987311733020014684957790359448529247320638825713580479776408389764931703245650065167402620267336186852797016064149015864032040048224865300672020792563053367854275584585054372506891683424822118811576775909531818520173341353388523321376068671868649700380322036976967807321385254099596670443902459693924918173989229694297052522861765049510206913227113241642972791426577552400785624767575511984162589908966258128913179658249519308023749111436999706377520170207628434486769407323462456365268310408857100910332961518771233498058808680829631359110918618040333588583042633442122127586312794703043049962300261244016608977408692138559132420672366270092949544571369456299360830754124451726996104044172451122906317625627099835571473936742729756788431704555570019931066070730440342945330886812246965969457730281285104518315315454752973643797788886244177029798240543029449349908275421603179431589926997319877597857338063907454914480021430803980924078187859041558036261172902082336655835516884638824436927627670167828951388187952426799204514138008570919416984339133797345973553027262796449566155606510880568906067698790002321280589252102673236171882040889061800492012421578744174148660305237058350185759571218723319889838531488369547573721228303947643831015469560113009397700041195833210682915755277138908087371710670896070827173678013453652055232398375787543450911187899269975748497529488959031588722323144720824388654353179299182688457682354269126897818063981206882595356339917997638808965426282704426191592178628592016113395863914020355574370827361702414950222844650630864966044284298040463068851871117525503198515105061594901104105915560817576874698963362715423789384681740448691613593098183531170484758692125051759289674838090091751905604109642179496821327790215831701613284950147440412507201689436790812406406731184873610764285793994630947996775844364015109056666300770038860384531559158384537168416558129935193203215286588485637608926252497349762515472088020647772370921356747135062097646487704756877255015649770816477285562566300202710645841781365314559028046146797686371162328647466227796967199223969976736462580849569256229444712289165460014333401861498150900727361457280548311673184513651894585973827257738252580311243794586665663846298739699089374835495752248021314747255823266569947120910291887718363884486564456058894864597406843786601880082415630831397409510060340703411030306474384073431199379592642961769466314668770703886441447376102459796223991656616436731104905455382760452349067573559621897733397968303340021557416491904051812922379226794622403783770683790170562368849216964329079218708320898989568857189844018906391612156129101056642125688728296267426035529378284667622986974798155193069329324965527757152149342524936234360836192092183336224460501367342636790608306533337060937860253501326279819827193429778126799483830460011545968156115114495311537602738389753270042939814369718830876744914799422741805935475739845927296778075164204870154590264555667751147923671689910928157999568849900235394372260956832594321867537976416044512642366456864742465563675285686755733148254458518356804887478105214348946919774316127529411578251207175178199789371770033040639472977592040350974055316351242444089778650021271379062108045561660072617160769904216920490813746005769141506112135110006625161176550222814850772592706205338597667129703382305062468792412218114017480965324208752935147265575641186620079731449394739500484401099911545475480573775359519484986625890713989833981992387597882881637387331897990836014465134416766553625197297221444916582912578677060512428036711901795958911159259484944057345330433729019728492797447180410671052215795076735630076687342958177907590354458233757612639048513137558903306619484322552029731419885205344884096996837811391784186880950206807294748608068474320761249267210828554568733776844360043229587663982930198169804005981911356321802373710952881144075046098102493617616847154831733308562792477110214901843790649268347683534756479314702831354096728065973258257258049441131220001439421816147260144321444202644986089179814229015613325391045182939329414405808743496220673796682280967878573195451923688297227962390325021254308565630346557586246719403398785096029338842384716024214122027168571387009087885450092681478766126816011692941910185829977762189376879326505292322800640616150794045832608825994764688850143583289316647720416054214625450614716322577215553453413952938220127943770255918011844056491804976555926544431572351197895753227500181514049058981006423330615463043473080038411476907409629054111539812490140816629161162591006588470998472712678061330330730128673548287635354180842333351135160617698972443949386865163871842188489784410061205602934947053984312200912198385327931889313039702784424839770566825992260005862070213608988217023626962079445872375995519218744725624174640280238301970298272182118295801865582353258649031166352433680054817019553086229787065405593534836205606839064544966691547051610947464123237957808319065288883329179419873755392511924596967914182043463042564941479931777908334415185285286787101210692249870773393181904816213051145498563633694539361427952614700752361497248444288195401423994738493120586596424242061293279156730038775372598486499351855109860082664405397284655822602167873137790976499072092256521254151788411882644015649524073913356491409305017658646868290758331192699854744341693904738602411613153055373762542697576956702124873857724738201230391031404646850643904940005914106283610514935395213441065592103169935747591345491251752324981301045048905554149700990047436607891068179173360936273533238777010566699446637061348949941418081285153925357714544061497509626480431643873850640851102013109895459173166841188770189466084613431829643818919074409297697348462224762741411650052950243600104578359714008769417391040176603290185843964293934671304570407719593552937498184097658134040208280549189780775362735536224910433783459405053520686032113154739992331042402485532727469843655889847535896489550460824019205814829047729448408323194469006706879425655795043614682853342367695007238621459908370071628345265488448357127295783089818047008496962546950806521852556170400677035040261163559582948420891545417168792283796700955434234056056906004563483020426967206663206980470588929713561508002015299533783014618118093272608534260670478212724611390138720730758078420948064137052562047428218579982690196452394057821677626462974958844821268370050061995894338092121542799534488753803175542830367076533651397937418487956336121763092354158220127764686008781285141328854287415870159476564135539907029830739660949892495000390149911547066788819365021762242713405876941604553518472923718922336485288025192514960476727741660413948344840868778429489046250734735332247277709247340367024826143299999617625254701769085003955876324398652528014048984792435791184434734409641138211103456031770437536588447275748971828761477435160031040095637385913428509028189355989016422674004710503149784863714730882209689091585693053534639727944719860935907956233739320841138839720143298546900408653759863164352505327182646445035456667723087799249371575059221772736939693993989959235851481718134374986983772308956118487552814299868210658473151474140812611536819148218597424971579981518553218068224887598488055896430275398438664071535591806865377405042137820985972730446565736884370421410402733512103778876979637395142070125391627391345254241003026837589672996431830257521381555648732764489488167028727093786766128365839503557555687785028649343689631893104705639768143200571434087396542211082280044077962841831451048651392266418758912041296249073043249071406386501246172504358466803573278110526273380420037416276828874029766061169109444596142241275946606507839028542460430490873329157183321436384203177045343710548913871980019803724334831558157104635196565937961071749447762001672094711903718078164133331851823053561136151664220941978925641845757399813630763102738788071337047742311906932254345888127395860038594037831718816048096547867565101864547923709147275031024728229634368807302849008243296014063512821407701020955695743567779069471206573546694313331310973560294597475002735064810617432917528241077963461072913571145124791149268296450640665346158871883399861151926020869062116088826673893269428425311395307730478684633467881471564983832718549636554956705725363454999852653043707346627315122648208872730055455077608116443766140852182460007323375145658714525786925078036699266383143823585289509392795571123977738013407923281825043896633558056661263535481902544485140664681441722148241148088479337465046513153015726650626661091002508927741558780845551390034278348951534788282313198325171488635436285447662768008464062698200649642824042364843080831443574000069618639002574946442449160823360619615841727796151148992616305223711050134196494820793053494547901948311403954765092676832496261293209688597124766797498175364999793969222167547711402619092641401764035107469308440980659582087490010582058222989386755465012509731177978505013526273712068668772610512277258132979650415707564090546048611511354850073164751608656905661617994458192199432478828152273584092994224147614537852434208607936388533716426763324824289380560543850318810144547157759717731940836931486416976676039383038144038945147730826159475507009248731790788377477504050552378152536636857543238019300001764067255964538743020944821020442528249938781200792910761138957853965090181924278813385340530717116469257250901714739019860306609516726430865094742845539564630346104582433746508667503101437496899842198735672375399074791305202823077002723968141514296851861680278710220184026947585867202927543163150927023970854816571040758730823498185142891972810580693348122272723189398786951993962482358303205374802593929116036724182133825848334316672551540306362386135166168645185557742063309081464750865673308419590650145624636522877430871046539407992492488092760138192415965916895700810534590856710438193141279106098176291751994282250153919521359173944997959047609072889256524837171592200831909594519970980239257889333814185297311883743452164369430257907294085946497449146587805828072668525734634549802330608341496679581274859650940152847377228936027291153380787550716536597733144599360447755012187997438878850971998386442316033641329614934290744799007192551110422605240707511763450365826613022845815506136165416824915981888954491549539934468234283324887606810698650472540037707050109889379767766878992928086098928423489789128635039788327510697809179650966441583697718149626836882717204310447483374935725707088878687111303003630410861435135948293153095152947326480625943215908825797127166094831938930243395868954875831762394703343963913998287015824908633686960084742530668520397732325471991467389099334821593098038666451785686056629997664904003855932287300428965787976104795705681752254073522480039738524450031028328223247036656122224491439702423890328689246482183593513805390851013919623164553355624973236168355796491997913589170447452299875827250618395584936350325659290100933680721555481446255131473702965173995227675870856471812700261744072221881826985561130960148163286813471667822638823397449092497444155020563064378832344594007366558892431513476822047092244142491644459139816852671941082431058459001493883882091076266158921147550947026802678472046581753951010440061434360130437854637027994740909637301588174697334979024519675528774039009628281178368060643416298783056558342888088884381978839260639565147026475170269311225176515081486599664311597579467155901568237536119684698132389107267517842338315611437245780145291184207120116740219535156004334039308619316161915548315276926468810635889830354759628361114540451968771638315643977411367051435813179787049338317320885202024599287714561993433875956486152104247500348349541860207086330955806668557114247587965704335124002776115398563660375972696801809487937767227969248310268555031531538171219232971353158117693261583346696146441110593689909739065764384161119164618213351760684874294134828777284296295346902831600973003110206357614907486169589489607396898723578183486621614545533597293564697326173319909379600647907553689054006295652449234185517331900827715692484749155448796634991888726789034984498041694722988066872746237347724073921909341897129524943789798950911041113396811929340759743853964413471579323391999256709999139683634071462617860920674844327587797718385640293862687442844597098697487383365485075360927486261468021647239971365969667719213918350767531909231460505423476386939537573112367947733137710774190559850198958729512870249826893690321109417500020898001833744271612280947406490669444625630636806476028162543372235190625089556584556759586456003618165445313817600177357704560437255130396489301014323765194623769519297213461404686598189507564702549204753958102317926070011206833520852214906294333648655760927834948727590139298062994322928093316030847823014625493952510504782043419509340552957927374872257936975397160625918334299004488197772747015141880492833334246019385361841484886365271403804020001915057603224266862186008638984621831623964483254617552300310912768065817117752711870211469281565227800257545080322649062507486624046444400937297437358288575000584627038009135633397183251590372989660087552591414615377498798163803894818984247611951470480785511160277697462643762513715599076974585645342085421997440694113556964512066630002835318760657254304071263670965118142168860013013800724407099598639384838281400861286464166679112810784125767535054214178787833623711037279501943776564590045371453749822155436030791237931340986905730889855926825951465250833517984979512378757793070015510029712619930518822456595098320186231541529834466206067306908441224245731371565426178405445840074662229480881998151319994390784385263242829531780671487793982645296190554929841105797981774081491499453848922133856364060604648012785449215763378646243298990639368984475586001295472477143356203910312366908006713474874596592082123002740063697199177158147846585633259149419599992618756316960162599253956920025253777257306017495531531199440728344216862797767425139789415070084967258809998233822067721375914293578787248287563370693185958640513368696126367919891873264579787837988906126382870936636343616612406734682261310340119217456432069191570780891577875076130051037812217078608929542392892930435565001910080225754272229913125257063418351548371445389608517078293423263497811324195758682968211874506171811142961421317196596738554311553192084250110511194046953890210707673996892284866133896541834300616639185674205040106773801852482497498587078736117235123931093152904793379260952945554504106224780186193666111897430712147021854308824909982271103697267813435017151974093826573227008484295278579039747157313515173270023350376120366449189096739568561893542391026280526454142355940835084763220955256713166344627860616545939703676057557252132043425827782664572617835026574047093795154429993689777544419370278284233819194970251316854141964606333812422552778784987437817171537478692277965646867206157809866973285048843262069247558301395311198766578226382261856890775042589352366929224008647899413170277849707117705174552041849800075492303795683946334925384532580205729092109311789931941936569129842427707461479850205827495000432128552013210714795375406523051074590020651021478263309743037002505117293881898420678506552358860551483080151759386837724916080289422557313435431911498478988426468154950890543090740128877758971838831669636573838649767761104895268113122691921672201661638309132202700207294828819230746048130001047797992058691010178536089970178775795008291615956221533753334999705516651073210153448426034077309510475561834397709523837708467008560633715488454591743337412948111474841762637399415530674150919570380201292478455846773872765193720886023267608482387733688552920408074223837498494431938561062559990570308466004559904117423845122263118896325154093023918041685169415364525856750052215393693576876904280969431698960780291699298644034631842686187709367671176205122238632399022589652662818063750017308357273271991779319988238601455023073919632986975510950527786287173307175186708167832440435766788973793617366533343931133175418558546115300615444448135371977279260950362222201344836575368028541695481946603111719845421585918294290870119768260545859365600252237158387828033274580039951037704259721371819658902518450512270167546913515862121836677866345548570241777633385503783700239047623784386498627254557611470039075463991559056890381342892334339290667579342463635612851379026717155542968015639603423666158393695879467883819339761095711201854231225166851121532845545011828830170487719489688218718677025885836949322214669723734970157407583536244326854820884113023174705042287000120485391492617022060116953703650279152913245688362568207323024582809592134006162960519531992208788028416432395319715723011119247677449403311332311017150020401192613367197550156075791313104209159343281533976709206511927138160093728145431750747811732548982209844424299536052888459155459236444161363600243554409616240820168129460062244221789496119654428056184346734868106967640616319834303998277061010270655232215427311158510871098697777657282909669013996086641627811050964856154031010543900207017913679502533089801604687284025490270038085073027299322732554005139772832598668572773021103789640012811414102769481837117854956252023849367234239818918276493950181447956349540131984099838848687918083700787631945493440416277200616427975584268887633047389518819057572189642940804306876362801982048613314063064922055808509606038675385418219686068486835286154558737613011549512913091835755474931201867900225639453248823543995954716654224846136388668133188127690946385365894731862151981766929056193701820831364444890988461334742506572342913302240083944538075209814304768491564454511958856958558026940662943461003589508227568913205818126188711254216589941399475941556423067178711387279626438016982313149259563429760778101352830689907390723321741445628861369743853640080407305610252042218227214472058485562177993908009724158600758253056147044860570294534621080618633366835252081451620338904671933949755181593584667120743389809015735716914046374895968645904163582072779057260102130737426280680695623210573384304712121560467542240324210804519795193014991138111484723329694578841024889501769247561872819429418891704988474246051726884091562348360976068649258784287132643188819675011587738189120806564353141122445362989831615056657027426172539211292241109532591252649053164313880592260333991817124439021357915925861359765231539699020718424859165573445025807049629783132763434416859407491419872988071448694649483564503580614723687743936647141803360147597247667413944790758302875762355777982749691670950631087286349403108711181186083530321920425846579659300859804536845546243057863420725600702953064239402153956092819982950431866558110956951209516031136728029604046408345915873903396784966589459954520375299740631810147877449914587818944224793945888682674773642834077588185931704449560262191441896754880916052652720182220343209408793745115914313148414731513001496210223810171944595232903591184819094925217529262515534643592963462183451616761334552367453678241950772265033885354888993009228160181868244406359024688243228783515362280794303564799223230020480992633812898042133783834477971390888541153766690892729316763810288386226554084703636355191112876151331336992509873121135565341260256453592567565076611201800620719323040186580476166298694503243994495105752541796002798213183266927771025204222413232947226115997537648833414979025516223204869849828762221055279811419575814063858772893853463069849635753506626711839492998136704364243823061594017070707491294574498279906586879853408960413166434323980533285943583538161532831950002419425027194856631875515119433082632756830849004179108802786258821848401388756387744348735067920020875016413959719101209377142050627388639419722884095658324717437060042609627276476441664694161723282527735745420415937882031960770058011994995046335034286321160207718790008234612515651198897445874466098477921950524281805119771579632813050794638819949308714525863515625786487459535541956910809154661147975717959275808935442220671882990484023871388295424137719203044251417683258590379146504422641310669907815075307479851244826810829821570715255934771019142396518517981695469019710590937583852572627177090696589701796563336147173007101631317022586717646459367713581644999075647951791537366695580585790119845560367355710087314748547340597819145403620181737729854274335422219688895306047902448833426335994001870932409416048711244561587758799325616182959770894169862197869290753604668134200705572677135146741118806265089304982063554570021708988102950236777294985430928405199221512535505696107988021849943243240573205481217965507017163959119428614545871639868351757536142680008281259357416782813432131469184857783170248328321845046836965097353319840907677485737301383637536349437510037337857911283606339067120717551103928580529881318514440092943205282527353355650741853398828047138201217111928770825981622433541452765075589791612630472489050291946449096087951997149428083169561027323731054315298046646878297803670432589375353255538192247089411852699471744703301199591052112902995449997343682205829678046698215688156936935011924003993042233150989806893670091587718821573538557992386873479150725885819508527342645271970347972223111922441331780606677107447122821230870946463288456280067334518746190662834801408880009013311384969087418682286998033005608775796345772764530902132138338516254334859149294313034524744391226878445417634680626406396810356019293033566137880911905574877037221358840316594054426030272847841046635185417039544270101792643322281780691326638650083583190500762796046506136900371968452298901926099170069283069992510401266494264086601123605114038550679154753941000114754597864760256764930817050215077711837297257577622793569293720175482703739225443612316575861107685017652674956372282464018554597030841266963827331535228070844618640494657209060886232512717016753749029835000618013941391539215545187894699979014400467229460191593952681120037950811182002109820935305699406127280872753096928687680893368669343899158254799716471880404492039436189066582671875034531951154426217861689309009102584414137274366250941983602755995596605209096278451077651464808232118451907367554738877210891422437595949899274029086623461769308398597560642475079704736201871621032426724587462874631045768094280622328190473766719769697015694396972383800054079467899585569447434947266948068554075188935862930317205429189062024980926736522868294577014888896683286474963607734145954968562951790262760440818564592772500386508429024920970355300283428069417848995706013999802760094430159983532531012146997603865627900026272522937691119533104927459665940906020514228710622659393627432693485071787868897133992801967411695798177946763788936603077692184278556754498344814315383016305866694787184334612096035640904840919121954384778830373684142474219516724479845132677211424237811434563065698948594414597873704021990031399309762981473898214376094743639143140985498857900946843879556400556708311468392574184958085007729705602856395285178901720964343220526930508268605878453116239555312468541070872641784807372836314019523622497398758080941620011972840523963363216303367437051089260727456120341704440622484566640360709059349862430007816775827571413795973460860579331270378382819300449288041801024962950609787347798550496217940969799663009082054454289689859691657954108889273465745754870687609445834413423165961685862856690422338783931387537736010497955037788622669760434642828274963347250626622124154972929694773774758404543505161436731495601873084766112144495363444347386608392892156004455183343545274193132049490067659181158232201500281700343809649743707034301641985828803450997318504405870528306954034390956218824781246582231415478072762561761363123974251891972334485694353573305425782741656080804587364375041510154003506442155298654483489525944978026231196204332873849549835981590626691611978742178482641361099799611304370044581415070338932695174078051714379302455368699257076598463258777203412798353753944061057719423197397635554110383099940778972434928747464250458963832820067950704370970476616639627411888773974921126018080319444546986469015958919193964935865023261351644342233539220513182309893840071563803620368904582335860858896915133760313610661206014597224735199459760270275893352079413904933065657638061128796668406694876114006564956430980927733081355872273826162670348337369184784776358546083403117263627477191239076939206461904667482070873716057127721211245692352128702919050229925016610912548701360777519478268796014920565474245379928590508980562591577202545004630825801351656922433018920871510106597997188204935795721873462830972430113707752107847343024617829892815370760270902842692100462212423723373793078436293852759760404682793387387835211963602041089624991137902225277288112897663347789622091836051908491276365202431845469525389503474902270743942005620469779364747511735091949455126571264441201399165011765870868430547395131921058745419180304623250616649016920676859310951130091472030564140163230346614833198026573932415896101376365171676040203015891511682277635557464173900994992679509158120838957084820030399318118317195941963352412323635493688187089986287943775587246882133373541607976144203620008616692710135900249269015223991721738256718812443919261589406649268074320756501615373536189470290940427362788192677093389709370115182452970815166897574682045914572536076665341184667173189086413245698554925628361709841282614485265826664839331280531528431053948256803783842991368972003981260043386316929384920767308708772985635301130582255235582822819502855798091281827367351705334104816788562311078840369825276520336624306047498419569454298854027548667634855640460968981044470008165261516820457791952408006635029213804738094042687779850014233814268768581520402877950847544006262007153384447925121844515714386944087211963905165523110450536444927243892968094137586519308835509675450101527165690017763375642773191389779425612917274008157488986265208557121831880315858214732464968020750410707419154755418862656101322020758670623727826814102890603862005852090417618367397203119809059553328070033407377960179364940548660629154371934382826022765519343719446509439254001299804833171272270456791833145278151349268984987337833742722237387524856642186992671153120281649757635025935728459174907060830782833456522418729748778437460853294169421211387284099014897744253319143170386671895350868012520370307676210372166151555846232763491156598927594819025342046690884440516128185103171236388811889146115741879997610931370343044822194661066623727353225922119504653797359956827276060633716961001814569209978397570912666237535656202528025051863722117779046548778354412913004159339822667233206211092141216843971831875343703972927987444648834035785462678779616303738194674583265192167281100522539308408838787458404530014700717029734425620316978200838266321452694042084758053793213092264099252627320599558006295085133287778435898454606221987792573412630582799385210681219140224474025327093949140974121349193875829358096642486112040709184894038619805973536341938468528638178598595693261642167671080821677314833956210576551085616728878495082685056405142340830621153852907093649805676883869398171084280778593876802143579697231390223237929755191011863228973225890614276874469947406081842516745392097054756707827613464547783349709973470009799404403824997091066208623747868052524476177057329139708651800018065486894337131934084548750560937435070396497288064731538987029775724941989498222571870270060172105598829781152060000355484987644225703973605815057574616596004242434645815632668858188865207298259014578471666196005614404568574841757029756738022731224112112229948290210546543520645384343440545574654317215432102228467600318323973121878920141881674857087118345370260278292484586348437966468421369664864582576211907125753593582697437525229532803117482207580368951114158352661393351629324477009059951761937402201359050836706325885321673576320482792089409222748855783932001808616078069722601580488459620115779066349425920361267970812841727831965354853291005700411304497558592298242633699643720031684476655011471812944183995825676173954132078473436434144996299321968604329718261617139663311002056680498764273849385549185001833351420937000118510308579885255575738906714316492244889503457593858534930807641603695037409009810540552599034576647722773344516790647179882446313738244489934138217313338398287139999193924868247916719443093604765795647731733566794875357215326404960114691751497036343532658524758315130485705341293589201651542269382244062834518306559222225603797778779127777693032815914396416791375140210848190712078559823175370851984766173932092196620115012708522733551149778903044062492331818591389255144970118039760306451324806144317638145746824355456791334057034697488654078315886853337704028258675039463247956822844785862357068257047383633744632699194702139922327829643724759019085473876027801131967555717061218656131049785658576967324395463442022391003737675275140576680067834508908346979314466834007828612959027177628665286628344391465410397622138898402368985381800227268972258750172881379286624199286955220020647713680765590431487888531337197370734903675770882795002769770769209840637069849656736725319803245194988409520427698510697576793364535749051554557218295940200308085516549905424253792425153557612244910676589362101854612914846665192106472898393867323249769516930159503016958708224349368238662861783264020752817220052164790675399802546545957365659555204780523507256350671224911660811720347424249306822892515027205504007685228931707257319119007589664646591651194170088978606571409154213120901489341648477704808754250613608835746950196447409351151344846173913578634053244843085914123978939630949089081904126429610025392767016271242978963192990915014533779746848228179769047448998454439945949527356369269458657793964817384852646693542716405294295516528840682921766513923560044802802889986854077278193256331825168210199690602890171598168912966605504874214496524987890365347932107838388254587351082460599112520149581557286354040712877329589559044687348741275480931718586629252255868171401953096011948393505426849179362324685839566288458779833308927478253900774547063094008720771227883486487069806242243363882342196786602434647725233981834430417711811057830008600504375379732963493102342143834836314605984830258673317950040289559571814921443694571109971197483214849002585917647202201132511447718226025464017441550379721383245601888454321716371918997282829215138067603427815322896896553155088161445666842808491942203789955218400587015056618595057011664962687795431589798948294411414185241918185416721884687590487914389824308870511790409069902226213351049057645228944883863918616889453534065761017410988505923839627794040986400107672417476509061184237777845153426142809895298998417868864400417550798036740338861071759602185438870609152310216526477058573472533263886621029427947862983087625553208307525957405782353110462175627204722884312406095392503306776804622195982627912679359093000879332999511856027041202855763442886667829539173005600825267607091888043033998804756225181590427408190058241433113179373179692698460786530115748179250564798367547621564984646035217519797602509012402811092445930026448352947587295336841853039721750806974497866422738113760610903685668236698364904835128723625866357230810356752109716464939379545117796244642790633923572784859120578797844587468914433992612542305265343703525295298086646561421875572421074236607055206804339214820565396793842185013267562495850969004688755874715324950241465677606726844909283713619325982735376648452708276433141637566952239069213273442083437827149717911715309992836654655557093767183150843787344316116966619543689442993305410104009049875765280723317894007079427315662952538828468848073441161991878901782850267571007105549599801519142776522456983942653744008956326723057090530626883112384111048187872115741356224336216114667509986635593335378112070871902184231416891956361978617287822664916218978032087504863388591756957277541033871917690673013376652262925317214860852224709194709143122837816021719193616538150797850478689879406069087571507555528591654815782893132901617953638509830646155559753742805628280781316105327375946037682084996543465814726988163890031313230034523444424679358501926124518893507818090333097379498613170196331671950440250698469098368570720253257095218777730258484125268337361509148028795150267701132832031687114176418875194564258258941791647372878117230375813960937747271253009410909654379484449073565548009479420705304098678101145002101524428174546335139582385868391436109684643515586863472567409212546652973691912541505369212842040464539398192363645450588811120328535578523753049914137553247384349618277976287816891775729879287145088338890908935004219815263852657300741673157830796798639228401117431924105816455994708582486229965612196571164705363348471530638757748922509698058605090690776641475396430424333020973984341624083956220873859970729261038186540899065402517347421159631479958806149669738596712483087163177110864689124123716316552702162579226305666192279226655753186355736269410555670817174103088114076581840005396269124872213392921528198491226227315329162182684261903476317514445382297894905975396386995149179922959510044045123980204515718746018820902934357527448072977246931336349951408815194577065928809097837902654903930957535593012027307101540371485585838238433328548051946808904976978450254387335550781825779019513066962277940183077473484100227015220956842522348824338323677880533271647460187064489232892827193104491789338853911653083255971590798663399194298105903294823775893376368460656385120801982584620959675577101998459619748718090712934985452048058479572413357605079960436598405025133743293379390878712242993741065975451581113015661662066124690473279608404151931182514261837225745542840911080789575475195781470191747025690621275914522013882152570678038079110918789302278828884416727182167560768542431210126526062176817480982925947009363266102020013393230986658196637567333722980570101689433006437680323132097279655942377207246094727055307068525381921911938191843411185435993088333060825656292768371379679969341210308302357833715002856353198402908931578708570479033549955708188409701999197157493948212740883518724290350585780004019738861556906510451489557304867675797937720434604563022579411666959696044280835430325829177596351771047265128898633745881619562380433698609982362326565226262076187959647692884832032997766282370768392856279220383965790629189056632116606090792426244324386713291980303665855019949977336956331955943333568987825316868420197720132331978168784456181839888792613153073601051315087964815427036837898177326913952350198820940233834730275415409944130579029299310959033405105442025428140688949485762433377171616972677944106773235614477327333005138787566247948114157744235344735271227902359199256806594788046477113429162036431472337278055448491666527496891819786520839498578231701244313885320866632317827658629847630410989045058123108051876943416464492866413941893089778729479768458160180461008646496509730275557045648049342630182586889467301746061699824309976594126839993830003254879446526529504225624686385400136568138598895587682831688238248644759602507863445220036289769322777879267934741644172914640232840541520107850642103354978207432689582678800768360095943342212793360929059641650438632666909460815011812150442673352606184581593625870621610274632223748429002962249961260077389244586069831013805875884912010447942836966909466880729461251882388955490181742146235587677559641496908920224146829339722870227650890828588060458309947216424938755480725629360718526422493861100508274529158312244450010112902171021489096697060891385729950078873802594549683463819633563359199319068426682727272882385425953387474571623742811909291164598910971369343056201057778796307908736011989856611766305286514668862829632212457783981141768168570799649368062975551544142979352982922681862895497594235200799129660050294654999070416606720749492459677807675729002266477180343841561653045174616618082895300819298262341553125478055876239960957620842983072349931168249944458906637401133119930882771112344188373899265278603328041339978516848943568670364148031008236539965374046981456425675815066095947632512899160699589364381403058971142080092347268736864345409736539026589892273788547406230485835945849010878158055283749394970793653203908002978582437505209171781457553960220112284121658413308395183506634031828117127221518521268003327962351947192489362960793125126510086261612652682006599092743716600093820847985650468258764288386241699194370837369706689761328467021899801467440720579069340411803589955955386458287139374352649343108362861984737370589580884905514541437623675029223724304047500205740391404904650541502476693440094109170132914598264415644884132373816016233942796003549580072883441761489788427346516149665240929144306790469944946536772891385037028651224388197341457850180271736591040954441892708564351866106218841845938404075365627216300213163532917214447560473545495493129806470739141410939633771467331000012457566148054115852464478935628464443929001097817248545937986042528976063854242896295269035609537103864400452978379980462261367261109187010860131555246373222702502131727406088908501788045856981291209753120319249138395176308749450113910229785591368094123928740131112492053485212592818353233960983475090632959820463486535073821303256487443320171097290262742213264518712545533932664774426699008319455656782164614146251677148744669083164037156474646419723719079377409177717531025087408526734755237602137291398094071885424065810721218980414634395073417596094302313089170791717388421529827524561084982478447940897073728968520340246592834643435784273061939426120806349519169763360096353601222145428921692726876068035159423131912955915998814733964018525565484167416827131817422562281477971836463620759093916073249151996740010475209398740827796399476015814253019974510572826185413711439883476991730116482830963404195958019745105547333581891088722102014577947259474534240648201889741005845104427384988842428434107620258960723905679565677742468646522778157175255883241007322864419364259531336986617067602200599007566020253362093673086688430724171002496466403447783012615628176293456119936902966622238721725562355177550741122803750291215497721454351725633426357860021535871731454498575454777435182292639687585480880194626696269181537546027947363928685110441112588467827240948849324251202168005783346007913711554226658960026646579722769025387172436531232933829682622558239811147596399161060411416063464987252826184327923685023843600162229443560327223217905191779335306583578150796061125445897330168557741414295323421837307970738752670855606095232581880046917405579620723613904794376938030026197191340035570757619571580540150750623580567463319304521726115192887239412964549482000741583980498798929086124205223813856169600837001179300382952490290368069806522306770191870613255165624172041894185784450986717692902351656711773186365263244349758277331494524800173810973794887055692625279883242826200085181571598971373187012683836137175518044935059500126867374935784297087132194154070691693614365418746584804731182347081404192844277854878062485617180605139879971162044116142583757962597199795048504394085123692428631907639129531684335547288546868227124393107265795540798487216723294900473607590816032625245120023135302603718466034799024278187257370877278646489440538907862884338465283457964329908716683513662008690945327362018716020859277006705353496279290748028108970190740770409269813428650799015623738431373822421085609608564633793646665238030347190956695456149873113406188190417105064249383141009352931335996888166251009982893501003954176691126984027276662256902115148757441645137554320940561356308266551478238108496284296093597356707619765018980080790255332299625867970303218034403202677938774965933740460292772430941425299089607913482520377510740576573001721405897146636836899419531815209127661972922788454511068334764015917013564174686218990625256368398525260531662481041698815417305845483648016570365810877989285885264500452161282616294248951317220416610249472355918848916240552131154507528931135147797706355669980733799596780083927742433604210076001839177451776176862591983214492827119212123032285730189673535492189537007608370088420635876591144868428748949495171191885051624226291802174451578072523414469116330330795801428065515184955320454859383763418954170059605835820965291401031366614708391747611755671362669643376802722485489082030241133088432772128371301016209008677982390566175138531973151986585691562732182278298966212428922067515012927148155778777178107621493947821871034892757243169093218197492939194147883210091389806831374607814535304797066502744507843062141898291901172649993996006136784393297423667231002929362736741318912458262171542839106512160590070740156103878859620045144438540199712777965333725923000602797434807800364465395422836231466974419998770071746552884341337566235348350729464547345921823640764314187282497384749728453752673092138960112003226904891772648336162513424929548085125323302335537443259968557352508089536010199850378227117105846354058376769489316170531120699133767755290142522583135796763800179501829939320946868775756627562221657294686434284651684618617096795201883001137624881922423130008444445970464256399971725652833590137413849946967933747307113941096562844999194447018262809625078999633867331538117902946478327383255553034187156856972489106645404855485492296843422801033097504278863283019597915619540880596148764595959215026562149139962473142152502177359348454681929522533347228427317664800038030682848228934157319328122010046077306382084320952273442466691218223427573818282208552825265862829525597948107731388311416251939632136778673791687821109545779102466066200774655553029351679334516975184783962212400101947404539575537241981408583947752750686026561772217259752352021585513843593282446984046677870919419920548730010484911904910476662876247251653188634132817038771365509420034088754110712230100345536423119140348907952996710060260812365671942413972329483025229891364083964938146608647596279690308506775950427902086276514242162874932834317354930364378738320562388952375012123139911397383699504614297112921130334702464412019917601251880802079984099376834741676398121743167801928275505952904570839484615443743862891849328383291652923920739586791096089430788157303414105043772787665400397844270645023323039654350193988953598568302647994898087167005271299619150861107809949741176953966286737478918256910098273424134723559099534423447463399657831066060323755846733548616803111412308776687410419951714198315561831932401157620029216534543762028002221109698534489395515177328916807480693645363150601426609209858745670427110321988790780872435093434967325704811156839750097855736197112910609186854105839081658707506067547779763689925989260435914918258994958242552964812373428786925213174710644254513433665720726419385063995291142396277534941085493911921685693796141601378314955352934159558466651128158410163608674763754145368582910399855249052654955342104543621740345528724055393135723046496433654765929719296337567016964586219644385676769990068306223890183703673668611509383646084192987972319798620099793033471807786377145197500290738775401951225403028235269937757564583313348161203347370176280196521419749584447004426118673642709646868682912820848470271519284228534082154700679559873705633584308914673873328297667594483935343139229710901960102304715318561379986232666440474211772062848406878781818145487237035587088412416959234809283632806852685671371185150008967992903157919436054009390246999473320552804124727732589717079544466838458230001616800371914832731858884168595049537302286863509842718935677882918055951645545473926891211607201220545007098242869851913365799338677228841261657690507596848384602935564743585199866960323507744313001998438337307593883519496958871974549304928280651855044345216411237524735846996069829310855414136120283798212012515947637011847490727755193138519420216742556048147459767254916687409119527365925478247311596532777474485567806128466773521867854800378616457440025116606841720949944744033247141021549794926496449925346599546166979104742033654787438931574744423987282739141434052269102226814324158999490807778723836898143128139404879255603308540289299070501143772930163220700186312593136979766691975371479072817503880123951515044997690344416614133986807293100544661332661000139587203355875630788138766405954317691984798601200535708644645462035517943963051307490203674824228391972078386398999790069014507139987171000954461829481072692181553992884976742598967388811452724006260542969193019624833473145951564933970615197346229705447779108643863248376675792401835650354684316874811656455946014400810730703690718508002479925610742273099213710589008845442467059680917930128807933899992091951096805570148244250125997360147894282829733792584689983497861629702417830988918395420201273353048536977703760715457663463353291932315982656574430543883495067191753730448527617817660258000927838489565162518001121941344021346935538558274625121915180888385169463285877772122447572318178243444522830124066215343516117115212613591316209156264644090199189089187339840769815432000803079178062568694018923555235606340238847245489769799796661253164920708635258390890898525815377534602015574748811456498674142036235891829319197525323845981251974799542791217038123101241883586819831622031407675468648891718135537422112339287337942380330237346953219540223503777024796382380629339650175946677416503767264137220621738345084288071060676851784402754476876413406498364818074498530574823863705288534666576957103345419159692289112622222015799244874425710854522603145550488763577909224691552308795483072535191598596080370972378973051245562234026053038785801770731506033746700519291334904729151368300968875432034268114413642500786713530946382135517704601190453772546778094569209421210865507620652724255367527174820624540041471011239918276814015192684604441417301036482713453583007645525944700146041383394771637976419037404913768676996289700932495651878956747798963655422274118591711147349074701446047656190542363903159866899490975800975608524346362504144471620920141867006895081296871598347911088900684796922484267929827250452938263354769802015312084879459364471295772326638633527388708977602268515393408414621451129268929872722983031089272952474367809860733296648627117665794460377981247975515179393307761917081587753209567416449509402538094403967927625404974325041833692770375343756951980451592823220176486919224152887566842587978770706162623080243794836041501133683664927139862854900687930599952471959691183541388528142018421582012275234394398934195021912681185678679160586209503004014244188474326018064450577395942045083100491869736419096611139229236200032121800331227777449176496954197434458429534356089628563224476637338237708863130106282255773964558423559312392698769193087078001990240153404005985335329216244314457614167953542497176900663478461588918191302662907375800459081339079098103139697885589860630317592489709808703834191060986051170169496640018699817338418473953626249920465619832705640394104224416717594842469199078516695072426683081849502227582134631369919791091888766689321311238292569443998377822559771689564143290876952958443189565711757194037504601259353658174161012783098331450713018593440990191584412486363830200395100262658773339780934816447899640710190123556316465161813861381119155995211973931247025498501654314855894090086848228759581091226801184118914300820330686117797233335508564138499421043172143674417332981262947301132363427125613428569255275894771048142552569121748784660088588597539141037222765181155733541649309451834655354463192956314745173867039635945635146949482030589268580776296584650589871609987651290291379992760119762332478789781296952494908095790310653520080840712055673124966183240018248732495387774866857970608675722211023802639834369966383867361171285446538637152662480385516792727126350966823025011726870645436498962473902130197340988543200220551448754533745184553262075620179638305825295023736902287163931093258296808577906459490522471961032381195694061295061283335114235860738346120646619548210371812378272478594775810398839436728553054503963999764966770653415128803045593457752158494483731867099455086551843714987536680556292505017420520741350295537932371467565325151328316149879996274189791727675518015969196016156937037291980302622344757272876368752580837904341533553862125762214409557586344411277313998556218787935177890439389923235422117408123305054382783650650200995487852980896487881463826897604259015799264248003106893393930915962298446989465417823965369548045125257660897514739152737670056656084556633407378702391115907553865328746437180445920991146081509075162829632787370343791207369412375150753556335112322707275947395428749521177473200408341423480138476844637004137339420191156408138487590599016565983928540149363365190172121961274991628607054911558917419892697245933265118040067313580605831357833634168261456941883031534605809640976493482560363368355959429564225235464991929432856910483941222249583452282002995633364686442122676388178905345137306690289450332779194704461139515705613975383207780880150447393670764824431020264765298029351336471528221076303339928554226064583530770677278570014910613889583594423822433229931392622904699388143763025142138067265232248379853249930417639140614997734641705838384331078051085657131623385709946473692827655605571006483054930350376320478290864050719253392201398831463804565931819865648942508444866916118350787310992417280992303014049827837831842184615705613446572570733482508304005508794944838482162534322233950662888377268124114997745898072624560388714330972350168954287089780847532752558543740293801484981386386581169766351057809441026760502272445157904651817495519674727413548420666102320445671515777870542213278590697553128404430283979973723359347684753452381897020028718825561856906681747979351278683935682875303003983536025539565537547523139431792071779810429972622798013244494364773307214154808342817148590715864081773317119660019430485245636465140563510187399497627324988341032814207644132934176775393961709330962079435905951185226223208739996974756246151663937378422996145406003796849244237847189629400006315718385283884383011721422879673149566923701051574998374644914821170090945449297430852485164996022247303552456261743594645983744600068265656230369116828855247151292684052840955203776340294942913069614906292605701062946016510466792997339909654633426639949616257961565217112946832643910566515156715524388513953392614232401960634636986766483020453292575335189584244524096021661465688634918682857607301946008519629264832770540558110768613721586900915993054730573912822111251366638642613132781099551369201209682909438185862969144034903332346597527895806580576087648129418030417080326856507322562912389634204281641399609483406408373769544080112438176264945581288077409481404426717712625345137330537505021217104199924465527246584487220406249376719840200415133294540213944170659387179768285310862599456879825237382252822440073665324021891471252796394167277163515958800870876020179185037766146298706585094996753614303305400003214768383943500443595088687131455182640986276446126075511806814763902599876055192705230970572000729961512303376617104699500838040105075703496269246291600563103859788380464392515495067153905494092878956458326883078952232266003529999853133405918910130247095737618702077909616671336054855067106406126608896445216009575727585308517620764358106950037933585429938050196782893534475616126045524514843800894172364092979980948565474693565911467578330229708306929206909268369900292798240248443072773046066368658059486771335826253387345217071744881925621186558845548555595520191398491025114922406006711309954036699207781346277733201004957118442508724325191523258405066922386734486056498323184349709652876029283530024593056071082507096068827553105404193028877714782399026127745812839278982013127769873328210076070326485309934528220794609597151832696618001477269715589013308890016075061667075053492039725075824830892624461825379205204725105347261764406071350164036877494465199877331077860325761377391527847879697786921161771616926099398646995645392794321884164954984604299346259557796708071716903922445763296412146161542095753212558854433880568833288688083502953799090583063160545693536561887537742614995572158353612241009046517320153400226377035964817079161466439341603206337449773183451286977707941708447427248409410967496381783148748030230167927028273602625463813038016928525290361168356799348483515656953524120963672858306453860344500554669662714887447879082147577345478705889894381855785379818919557346932044116413104612842956345687493833801816301196442665937178700310663678087182885325316230744609127052351843774312512532193885112419364739985957405819448325450373856774618886516206557476546220401695483669820637832597972903231444321908479438637776431044599617287233118617391552662450155102253673919149469682186683754449437127105916360659191643600163631830388180744066167633740789251410584001659215444213331697706737056143586210289641976317216556395947454540640523331373374551240048695998806671782917135903251023009486453108289196614253141939644674109948579781877648794857408185341357694862148447552981926314967510297913809491432419630230390691437640366834729676762510878536663603422354106290769921702185872745568034241626124811888635428816362794164147976916407845271082548351335355234644542552437471269045331414756037458621234870114560629761728943791619520950182195508685979767814896130509603534886173520857471688684907562296351398390244353440929159037282259070363080921488751621798306718861379937008262372972861370088290826571535062474814275163636704406428924801188973150227764732431206197523208472365941845232689364253544360887799761741758686607264279654261858024133112395462383316541189798462585238426190840847749204606860624780065176031013950527701490244948609328983661101949442603720321622902167156605558738848496080295218821944211686380403771731416050773818333870246711915209421693491832639467611292516296118883685301201014843287395386966064362351602579144568618316406833904697671500676068585162235956215287101073922225593071139573620331532040176976718743234352153943378055059307955955645687310355053670771436020642865109291456054435297471771521656145889229189497949004186496243049921781408171387671212437489160929459344415085489993974293856709695049638102232373117361567275029418041061432271825447035854650611767880399803136547388519406803601512324024796388742535938095800224497731490079521344139892283832705182079976894039953372004523815558208421850657779492438537590884927833584464826827790025633027499685199012615327494845324047563155937793675296402319783335538538508448235928265741408408857029314961509559998254482262459229565473340242610319099791452978134893565062785275603753335291938157078187199449059876885603175010777888059117450031977243228020416069879902695753242943211371530779188776268838780100031531495304026861699153045415298975756596268690564557426653258066334250669129482914530196074640090144342746115111022983697505191745084202766596331475009270335849034009168373663720998277691612309717605924987171688316432155150001658373100211001931630358936308875802891640075774920825435704967389757130929492344023961557014626850306502536090930424895350323817596087808773868936102310549574423411835810251221788799864276192014805917640477572651761954642335589009961469475710498791109583716110793086785016133811751930235500949896853129150299176157207374319001794633124104561393645204143375102054044376803073985534334521621504697076809347264813426208352908463972085320666186443133113632234116481286596051145866676927744879952406740014863225823987498518358914482468971464331596450057504696828872629341689477880451201540849319276180046841804297394774202891487874628870248955020819782364409276580308765488552057440055744674109638499875808563405000615021873865486689588873099536593820445638185268492567616627725225967379124969121659259955242238409145666419011384522489476850753776359000767984680319435005050279888126709967544942303809698528892720983106353845819271956761273511766134362056827139934768495449040659499961666526676401292110271266431077620526773821410510835768708402591846725632971342587891880108703072549089405636675222670021054025183690410688470772259755969593358066137279365573288613462042043224520795868553104341287065078174070331756588188555474938473625259516282488448387206948071898632908402767563308530947585352701870822469953702540716951211556052989699650019441272514897523833046472267281685064116163259585641051538170929149282238667542497574883500718631843092744376928209356320916133204950597310940049094074871087156994621506708199981685187006975474753365571620333362467321221608462385154509944576166249800581239093712747985579449370598159555369375049672873735142372295881137594274522910503430485832003983533787312113377414046846996531579045306869469201873380114869855630226293487036934508633614963554044984589813597118059744116694580263713660013989286484966045017391419424789658176032684147683185237757042469285714562132045474091697584367018013405363424310870936647047072058702419618007615081064122122315591916317526793964477488603872464887723032656363879896982295783389691284534444820384031581588843817960228931382661685420670842085323955687648106937040824449703529841346483719181177125795531866318820879207034831097276471358435739225166373626260462550904980971785038621431867228001165954474200907647291563816420590193663505346433263324480608536224646807256940473941702777354791773688511109029957125189296074517183538783356440723196281218952938366710500622470638804287935040291504947160357297637178749745210841837681652870788073197961880480630416031535170231609851781146712431347084303456816206301258583357697544533200789911986574593005158408761096211749433547928014837888070272225619741555491773842571674768974923232822718685166040370072819625553207839329796159850262952297561942172697007991662584703009667652812805858707200763137063073730480778931565625703030550486756988382453959299737937090860082782840919943916777483676356506520214559011354275109309679527793073767384193783315772845990906690060070312413775819117051879469055057511161093094156023013219820685905886528027756159948163419117314696199727561920555072462336932620698684102976358644293911030879996966816504534523484065503970937651817059923218426930781443028415637408316335569158210895304230808688094038346526238117412979314729841296855126979773507323865048733098353880690489906558267025925760801557683234771577164339156627414656691017591469039902753811756664104254626667447696230953420148624542161780569990672681156780221583681241126299282278205623133586234636034829973116322884258729010848977224487791888969326906281797348823816020857714149367535855337403418717047810166680095762488032635094525943097917836862902436574709677821402968097478328945683890666166119005937026000926798517425142885386311904673804672236704620318014427584095283282326057193158965709595253763566038229138328660327044771797215794966048923252297901305976023032101001496764609765116739644433061010200407124958350045153644768053917856051237663587341343307699620126603962380428724687357977340768767748234790893223716260354228347544843922602076013194812622878195576675349972567768798459692666133337108133083363746749029400116852771679182865220407947427748681609646950645886517715686927106780693277786773751076761982169699301754842234122271789115731575936120583842482904660015164172804630189856355663408019790611178594629395919517640274565894936523423927114148171221685420430709087012572802449823978305938935621900786566506565248494168968629944151182248587042377531997299812088334217059472408672193356842573524420241895039891196724105400127253773307055422392242939771239646659461295705318691463343001546359579420202473395593261248783293737292595357646853152377892728467562968441776188722839165735372026828547930053167841360576523729021484790241109095765805783062939464558334331490207832794763074806562582615586187995056381857896340804201934113485609311875351977982372358425553247519799654744068880745123519442671324678172588038864338761204129170020311629550948578941300818380060085869165184160066286750230597320162585518866910838089185912238018660435561580791247286201916740343342889014010293941110903650039612847523486053337641955640270618740707802718972609176675494823572039627494880278842788262240849911200708170971707378103579635202858073454988688529297435247747682730424506752561038462870155550386380162982118894225614610726974523210231607163837138347657069545303306604707259560189314368958486364594656381119179683994282796505943999340589553640977257042533089652308088513156953081355077291801914596753141313682085628957469226262394365052001794499147588408472610989346392353005589498435845614109947409965317777706173178930931701248035429051342849015577097087856946382375494499700885391425681554455961115223402903401393182291451757279615411928291227167926542440753639724502230741677353773628626381964947270683823496376113928152264587320134971866734546569015167729556302650391290687687564777316309313228656103397680998875371450924577859240312843906442615760916829977536076525684571870646674095043918502097751354522316313973920823061876863271119957104386432021015000044443076109186455728316916957919409161595813317205423814616743211219328257036539625399386969292607641167199900135691739401827206890895584809502468915718355630179818314282044391514406381950254147377686955119298013789462009036040461436522209284502861139223981753167143477873077231076799717068965104689496607038470314672116753746227072391274596882479858330714837856418874351371985788355940818248858885980454256957111717596582075030915165637011894781030444474883641773852283982064639804643773494930179419904921450419519400352227258825794761448671917203330384284679107172644653706434685372330383768485334071353266450604416268546461838944794230073998041467746510180507449652710913726951146252980942912009484945647394562645629889664907943683317444938175920124329277430585108314600828576332600149564444503411669991258670988173755596455776591511093727794532371902828313465253821098227059711650500953773667085090830632698046044661584967356286300881552874093274261588789211775239158395648507934291694070704121555249422446504560151111835822811147292143173840610396782884727081647831176539919284314070218718632061513256074770267567006592280658262330914154927177928572841291473760633075888016737882130022372432412845950648670836802315138354614741177532857175843172381136320316646898153995028077826646718141286567620634211936651506184968560299551050663032158770199672655184506455541987284028572615881056737105495580179930964391867769969014330981153681993800064450946551156543937787357326725456885409954199168752105085462279350382526957629617816343063628533858443266197997811523224758022938813319764412198698229810934690841791437119813499502491721778120113623683869746564484640102842748442987634880716600200817063960212882697099376685239936123797205000709843165130154290180700828484164574582079253137343841119111473196535222675906505245992637345058770914781605633172515447361418312611431513813556680228081788149237523576244057316680467681216167503280728827977506225622845816253201099766212731776476706754967054913884480934843872836968837051992443992863191394667643943463786922956096717843866423515227329829278956341923472114272018692595787028074086323907770681880679582480908134739520205405758452175400364032245747639768611239668301745364870662071531972783634405656311134855738268741238911217043784709565052435458773871344441092962412089266988297508965428991858048555685492400289399075107623035915622805985679514224129229055033008968412975896313047497491026339682700875908447114257717237293663787020773763082737227725344283652259804270057731899350803252089054514144761013843089112093118776877880811785819561427380715020417725756537264043054423634506175235892998821413912885884028703067540078004009467057127370864021512023634315290029114954577750215206603228925944005729124948002148862774879208212543597886582789237156264105147233015025377428180634441248790408773733878905297207740141653224102941480211412100959908593782422700411881467010569400666440348621098950016929676224305208959769953302971928867264547515251739420670087780280797798266003970968168693646208177054162137803433443858331513337079974152999569269154450983157862914601202427136944218985420665819886083968818431664624865551129404716129936757296158284018022258392223252746313184100092284616061533934663898508485352268897715520855160822808814618131908242375778158837832698194008834141053969562868822660828961439856533479918156426719516701746967953039070848986311977597203194910457154645150223727056603784212756241584048123222486479832872316653664423191894538586956024450600806241798276948958692689469513238881787146747900718754962607061537721907311982075993529355817327791802150084476567237642295905516402492794458462507670153674028941546026829413520439187936598181817000532197023129265028791548912339419165499566153536146225139949927471586902987746575112419982501006876364614443426740231708135998943591095259109172854929861238289329181884562932486205364357513096662092839439040123334761310359343030040036313666677856689641839083350337993931201202072318075968810724648575604188980823986793928949756988853794191779460070047721518195399355016034460794152826369260574332695825262242823420423023965624979931792285903426791968847318252160673112551926466485782411169538046523064095392664612944207332944187953613096827748149849112948257332553701553814434974716714669535483042642235979462497917232630999128465551908451174939388024579306999272527328293796222851746514899580963869787538771102836959025210222773185064909463536509010486256175105758775419149637679613445557559274761266113336835673367642149037326579482782944944831476869126821281602076958363909525641342061724743833995917523560628531097292053397835351310974160305539219993914923857904207196970591609994153843099009826821138031426725153962308582173592245622956395963276793135992727758031937343169281317679151458973866361016573010360374097548903729123453936149593772978002602349229215908027678178616433642503703534725239817279914236670855316040404921431876643394986434253952560642692599670751429999891996774535914908640245124730238202888390315203538331348604166081914064720391036076811100335349883107173037461215539978162722111651434261736416477385537553493301200065031361501287742472535073003606296828650895870091950337118261748907976703880124392003976585211283169702757792065399230593058123719963030877082792243762530105487094935094520193380937947169009689685705003251745767024819748016338722667665147072628627105410659688808308674114968905918517934387721542082457082300891811589006015513862077717902301164607651819292674722408311056277749960280648023143368428868562811327589046252667410774758863112603396949152047492660783949881076911316614373938858787544765323071951885130550355293971609347181113829219996678394117622602357718476289544862465217415815157855847790894104280775715371398621755273921090832309671163952308083396773299383037436909465242802823225443165700785065907229385685628970429897748464271557545333740075609894018383022090662820945929278620255462140681906169045484126492183763449865997491576394731219126496752678822274230355497996564824430589140644013064465550306900084007226953404182540966862432731077239231525742367949544127996805616951035641362353816052909476892206705173544402869892394571537187544541606451966558809674799669724230929418718721529308950625476623592947411155172254659044803656412044765344666235370313514271415979728187189361294323076129074364624394056854701123464060904727339213966650373696245132116668239969845285148726645480860993457732848971450624787874329362093053964979162357877109897726326815674448985037062456586336690071476678540932355104730054214992555595686447123452392927218814787522127660522314757653946168211301482926548691237123579050029857977987858066082432756658025610253746488383031572459536228427813045039549758370278668042703543040143290485569378701520237297087912442191111095226945240685484800816899981122744313100132680334277929018067757844257235414711527195910989994023131431615748769328464773230497214521876048885711619410041271438372772084840614546582154263644645863459111134620937678264680877990310994983053180565356244905066230114446176530053925860222452864390285635071242006734615904631744498754638450625360060053998945538004204963312376661224051224398521143408350701629626797061682374003181376923924143403759272032693059569391697340118585034029703895477193087947066008029258196152783950612310954411387761428952105075265163571168982429095138983787983596558194887654695062151654348226738475778699548946295776175972620276396253366543695516966717939403922859311279609302699503546443924637969184460098936624323824670025863426386936531911785168591494164410164601369940557502206094891051111781753129433505960188353165203695682215591773188284752035147843247665902059851753838855298559578617468050302298291028097687027448992014196936060629104094258843158935140155013848304679949819719924346191163897846473517439363353576000608913322580734050856488075058894139587502834539473804652248296628171083630082469468844455515607075968374730063836305238979110017244472241332166380016338588780077015333711586459812372893335975650424010872962891881864757075956718553454222628688919134163692021382168315393148788732255308171876337868166761525760827037984865632548467045412213867757015287688856900480702997043267461620571734422382721291118508071354181457752531888877551337755781846449387433283385501716757144058663369520307323060929469391217797132266430824360692693498864848239365804716996049343792841034659175199401365971488071245003079606912514825211473467008751547178688722318161197879259654386309629549047893697961064177876543702867543600639775333967309732312080915674787815480375020982359016773827861399861660828324308087838239712462525531699898906587875035645533773446644500207207572411035026878038312652370674030408345097997448898027027098703187535145178989143407338776817086034394611965564284283875572287151852368449265381169688627580955493556511769144441139252254874328574734368291092805807880197922146738202823733133740968638177200934351822466231050276935078024010869978972529978812567662474693891047304235839763058907942933760211776904811902819110916509138314571098240695554842495903059588520297774981732867836024389406863357862181669594592626252947066644300454635013536275629557487359687785471228199630061492180404539917490862170918247233119786582943754449948621866133755057977137950973137093685571104027308428234459821207700074401760049207534170166780012275284901958736226101622849120444702321030340568275950003274851433693566214045148125563582067733427525208599779362653351359305878918418920190105312607333802601182826944696344071851048022253280929657006758936870284155688031946001776715715506386175914182684403556099995361514970035099060146393938382625767138949173852364218245076125394541996447068676168307707636602524535041954229281466967787146152065242016085676794773916263203335311318661076200051744470986721248476305837176875523026162995736140631227391204099635423595336788520739740224559443570425901537949639028108254202635420276004057501357805578090359032179984108319408834091321790044893812258094746289342024715464712916702342336127186782201832758985509581955487833467522246287175316617458907848066151051803903432742465938272050230313186046671938405025523714606214117236298038200515589671207031695142364358471786332959452718134190857049434056363894446174525564577579378751130114588740805077978772105851336210468335976791756830777868332000954748957663703498561358839693470319686079572690375689454277349490759195082470814183149452200809573860261168105779127944892039790410826027291842160985746280640872242499834656691379335059845423159408801418952424020991527856672254165509738635538367611400914859033866022228996767562493417854972233379465280949850254709902600209171402856397358717303753140257005699826201315547387427451641444089183890864445230660796949244306242506139529174105868415694552375470174322577698359379002697420722552344380456383786375800921168456099982762310744930226670515594265318623231953649154858706657327949269373571536087648320424514618196569640887197049445361363829820611209898729862158849968666322137401105946083645984183321670716078480263971782437510396218242341732748181286661763964214661050512711908487335899888315494400603812596301600862092843781758894779510566431199292004557256177523328328522525541487572065301978992144934945694463152352638783368054076554488861228563834821123487624339653582561737627028599546372224472820872824243682417025304562164000571761222726744870374282016792028128931417069535652686899122023969885211803606052807056585894804083369513646122005040860175102342920620115696046742626597167683823677708001168812708379954070016782610924016999994955000848010289721267734458597693724443770111426809607052489927754568305714970697403931569132064811096570593435485428835116386828701297179303854875024679702592436841170901975584045085596961970677408783960482518414170873547771799450259753234789734486858380800283869726883630989400681421103812419869230471746670405989698090348099785699852702761864956704689352818033556833976489884380499106292450560985395013167733990773681932441514977934823655478281656344663711636943725081872309997272784954683583388150046131420623484675969717581810674910680703474089714161308674862162296582799346448157920930684457164915137278494137506270730096681069742187019603049805416924728917452980253267311326597759719707064938164191939462036947841290553007880416503808769671041405907394181593363925098350477467824809066145966818371076494223560169028603237991563592152342736902370589693959915904011226141655867141961814993680219131747546984695937922756997520327583259243899951340819221036339904546900332203454863729408666220108733363631777945596482189167487043084109633242713143190464190384232005335997827920219311594408423948827251762238315140559512362314959543629536872550430175806833593026661389230801238710897908126661125973716363177205165910807527538178370329667486596476247897060376508563206023278061705771598365826714111015297078870649189664529572012914072077387215317221452411329883374250076727766153995115824011227149270756744515637344103837998091672014070953768063722191864699148453666415457789801579423683060282099964163962647197368843266921047289744359561685218688908617634946150432437577275788925815442710937485946732430563802169279430091159710705448925830348955443909799509906459848642820797349345052924831786447388006419650833203795762975842699098098158696047954696779007397939805746615970104736944420881262521148304061212438909734706831216924898106954819788765670013190770578327628937293033546038490915929104451596695409646140667307732364261928586141664421944268193458250575528575143798259949072774117748630414198156432528986279793064222909446145982146638299865944706217723108593400776323680164573592545210910935683662084074370250003786160525492131782413536138668372651654388745864619668360843884331231288816635736575766329301634022143792552302380194432672060915710866254482270755568284773113037463694792900894222332760722737319592964021773974985533613113982876280329759885726724107628207361232132980640450448641311019173343016700080252265426520633557941514356298496323254862688045673717373950530391611834315297640030294939854584477985241653339116484105774007020816392463693609485130116551403077648515028024009456065350669391922861325464646883410009771165015883255164596109493457383848705289126806868816730094603138898919158458002206735250850475142208785373113021242303355356933671491935071892421563540011562244526589660136225822271003811941330488848936190642648878556140599112620061018860136182431414367601929684859883350099009285980146054511791416495192970416606944276637027259591917048146571980556574129129593142219061016437764135211816451916258274696286773684155195412586671901643753652145571769182476102155929056714824805702638652991347273048223937706738854989620931522946161571028458450240142828501749552183005410137585053405793105159458427456979611277157060767207951762609556787840972144614820508930924687466518395416159762644437516077960117035090810435919649915592221558200024579155131602805187472332308913709937056409546786553157526821322645604847430748204051926604421879305520875699837258792513867027209406099772719062286110662763352474395521121034424481204959064877669968121240811552595001417600453924337313125252322310997608524670320299899960670376711228448730417857189148528101786903187349893682028657367373388853702401859084385365300498644635255316850299884448920435087356368536714586701936868842738592387477688228612808664516358895726464269105441569079016298578700754837192257338770771930429904885196857049078392610969125194748135346139556404453773089993870157346536349816288756049108695347725468764005527346027883397308926723892373470148183157487517593360723204756696954833508482246613183660002945957725143159676499006118919167012896701681855497799801883333412385194516576813198843101945708246840171747715308405830384169292157428250666706611115679036430802035806659316223073321998600326180800569865822185517997012122429622792796316139467198093495679238075711202793159588061989924774844463199706441694307399049826401792555907741041143306560036483472354751002189132588702297641386184386307239211330042727343523995929720346413136822979323179982600236583461824216137250484057442091495000897703167911188082811719831025411528757222135438695217457839340946013658635934097007970511937069076756126660673522659507103974989542620328670788893171854253704787731767074528436494721993596073470478050379762523026867293720536207659094245884325682105932168726581994306660982602243183253479150741118099601753412042154500153508776764579246903182351089432844584345931373179468233226034938604027190519378565864857569643302533053035031161686094020057125863042325383970521676090558022729580836351116360095011600737256816911618626946258632201679114401235298746947790128488484891099602130988325778989693689459805857380691833449403265370684961265705050827805426676582473876631182938388640283161701348007320823066688530664757404963881105710363257922194598172726782610634467441905095504681437446700455830707754325196284512840625254880145727328655059080942279324462763462147536912408052476547803572808158386485198644898786456885320486699080969098697411482947603605204879964035578558475064226675790468048601972821908236894693560315522333045386725711265805969106973712952572031740166406042418310803251267574954992269204712602774353011348678325624289298812063953175154711708129201342265097071289425647371569448732358931564832491000690394575098782291766144711491276131049246147232873323977418701324662685448248343165595343076365387804226277986526995503007572774466543987688284655849036597800923502513347631636561035101338046583626749468492261050242468123673958106866538718740652278883241906545113151713691162743878391330453384992386674734155111979755939350309013846342229218737289365992194103238644062037760838397470858755916141225314717419820637998492457612697293121132073597765289247092125283418474585100520542041149238648273989476878286317697636909273729797469642273463940618720622237355366527243293846184346032815281358379445808620406962635045413984932004845772551478317482106036418256113939235351487187414143868830713140256426739676272990064491279519497026379192133171699922748900376095055204677855033459612126549699794878270178798464274782254749363959962961439159643765987571157531371514031113713809030558460768403815855397952720671933710193202824615577920188334412115812439370696923655362166816715309006571337933499671423754270175014197206133956355723322085729807186086314116663800693516581373146298196861168474475007775957698829708103069288785514452336982465634832257445604190044318661732258332927399576444033511367757194399163576102765693311274145061680042215605723290632886239073476678794956770887305693116109028033717788009892134315259194704341688139951372746512760843269343139274661711020352281386428840849540397918234064038604376856726292820901515320961834492770194702504098640996748092814292963446082971812000125821850679721991862431243270978852909615030484396213838937204435578649772524912375680102663581391645731927457056931806110334498132054274961601455198679893691420111737277578701764675462207391530344489239682187054497898411284283274745149262045960107490359641302326205268654524015056476399470180110531946203895325158859956161093723469496418214517793931299178142665305696792607061577712599842137648401451860822692334235363309416519424016983438167664077183098118469673184763070762757117755730599246956600570858450479911934968321638365945514884477829927064306898160132900455823467514376010019028151489505376551716797978809572090403154642702577399879433583910355968079940739077308699545343643936257582992191731090589638461837192153023280235375315563284939147926946815951049067667586565470306702025797877752185952786576586443473315903313022720352341916079255629793418488960454231904088277807066428122334495798832121499697894928068179891974078133160828677559433009420824741548352232601858834034982048649749370661930868663508159934887012812871560750631545465035965502604390818206175496202673589366474391535691407844257619991275115744185137016652914512971092023537223510512265914486287236928229924560231006328922795802641695244022744463796328184240881819385257226678176330775510455182920393915014880849332688422434741713275905971694517463596452351555866917030979890290480102691291647454105128208443316968447585234201379975867866394413530561053756196754327950087586855695299362001676341576772908860418387532995188681919295856775615103529886248113814959709556064045690128391318542118394205644667851816536878111812997686757467682406578006464182350030175836287898024112517610244883980868414194443161957496715000198756230947975748226477839718022285299711102951572021844553186941692936227598338122372144737910157035070195021796179687124253056683886869223762409483192962142033337644788161064670036146907969123899101668477667741677418162965364879656152800450297941389460739416210862311212448518793458406963000134322838088806620439562304298253902387793786687066181191088888863440276009755508276487667222067009357073286030903355418537838146314754987159189662118054765798949761636387574261357821369867983935580564661888786133515908614177927365198785447324065210143666767581626190543346470934660926899333297722797502923233160265427788683135394803955374346313805179509399525425738969746355172276212274379030298323634490750970463984861671741797945947524467686702880784907428146391719039640599119920989527703738928764999480266544303641086216145561653538748570332620379351543824208582772921806706319525287852835687754915326765956894310331431137417970456775190370159867634743796599077301968827329315381856199921518372143825229720863316895590381228481069008838771169487799307038712810329609456030219369227953755420180452904083760025284023561810308647386578537879404034110356564224522768002900820431293727491956265853539406052162887834433347263817023029369055152854164761307292511744672240844760598720818746081906307951845749733837310427932446798602002012600139864629195672456392605219831669376898362002125047124569516871092905458367009437009786151922142494308946632896718440174588684212400282924767616794060385761270409755401225280932453327271629107751991168367636011924119059514480044702308342873640451305511968032644682762787328927481740378984454221682433316481934067626915623360629186740341519229551135150653625622996398550458378193146444704186450803651692863931917910012314079494307858500164984299737713186443974413135890810309928602747947388116343008185598615021545381861841284245225450793139000648893848468261179410187464274139465361713177789999903755363973035743053332477545453891083179390431977102237673510303174481455327414370209997770321490246241740291812279103690725315753821953518742755038094017647628743161638592302526149214610581066292267075290752756036531071522187683738013891351704626607481857185614479123645341569346470097385326443565336410027945939860238369968142989078617528322982537818183490081714060301515086357371389442320401040337956709706001312955968041638587615801708273975808472036253879102498118822994385417433185840227050108042541876465181907328961513015941643471355370031479459520206598433039120606985610362291600455346890991454123453003422598584005575400445767607584241704914797251294963990323045598993633491442895364159104073162651993263554996973259434955149536877351147406120425933313751691108947615811396393156011737508508856166103585459612967673789690114444400877010829138762510305220350314142110208828285055027137118668173528591959894705861516549030617233497143252110971079338826693623175104211008997587834195146925485017032725956980289534610010555267131979731156261269095533882840431099498229286655488364110234467501099693594201194369515226525201146209710581176082685512134257566330788204255704761549277060670918460402887261514033546620208795573626706170176186189912928553043967786454257680180015843618953738554203335460802752983648892547131709977066659586191358226148914078097565943096121154648092702100502481520055799202431839668357693601409686212391359047475280224166756893387354235213434186071215059609833649448699649169465948530105841743872857768068141768851986244561695639184379172280475021721678477951774456961922518991331898793911259296131822989205811418487297582116013432461854438417438986580380069357019039755384511457321979981894961645597176004201847900474009353733995063915722347239713174928854597751881064396738012182726867590096568029450230980460798919084359862245026912530081644360966192973273594614332383697756905608658681144398542618060336921583342352097114114712201451140603830900170016756416824833319467028259260257833145841417024243545118748481088133349196371725310691858941760845356668125063902727034275207089412595298844074987474772988697614517673543679401056983614130157480380916453552925635808716649413263901276262141399128960360939581164426218424018297081882082473377758743731921538775496882873834666252169128921207569910694096925517953781743237079986763320099740843609589230190974488302618803491133543763015723480864257192923835555214669562915937470930498377419556933000977419128518230428652333748350565337796239302466907020541787128579138341525678378280954439885066065151755648325164579500042436076794773303417905840850264086290384782671677915977910005283931955212190030600447133461411274891533142220393064975810431150595137085213459013989229532579470851276733015156691085604724137582885490391651960206633417156986551647142389566900070982792479959386926398469854004173825880084987289729380237453773652330471993435939892421876753859536472934998587585187356719398767397854656674134457020252445195400899800266589649706722727700940978756252718032540559616642325957747187149770421670347691310426209686304429900824572796086130281694087770791915735150040694836213342914366841950061920046411845259976011331180893889112302497914726352092618873298171271950950799912284341005455741599824086847413232685040764568459717868991387298527785266011504661498283085256350446381964160718522977618269074957735056105882756454878728541063473501829008363580548829239495748008335216491806791005857470038519997816319717714313813444208970803565915804006679062720707632579620412556338161455967095617210645638889986986011204873995469310997373982146286927356449572644590771710300068804377286896154772108158233059148215282747735629986703929242801179484191720644963479196760569358037722735853790927227494543776723450380945001540852901166953436118744601437548492298937391453781635792775686441417090718192118312574059874637749823577170739975584930780499043686950548968082951268167969092073711751607060838891251816522258700384289569703063737356502228528892907306023882926569377012717566969079518122092327746005050257917199129391968575818040888207733884106890343914127308610516266278242408381687754533163940611413728382773633061452455121474388877634435689175976269027790776088323977630494146018643727556658796745336981846907615540414021927707210433482719047567562536160784996582499512901835244152864979550858092963862831201602870319899924265267895360422315121226012181159445426412219549798382370341357298566106645174791918405036888811779701919832641653652525590394876711598097091898899026146706121118474144383250218901770052250430850283794728267023228862089310052125884335038046411884170160906938324023105098346948860097074823156936389334554493189447946463465361018046320824782284379013587567175135347255797821903635245993705552170434135071579808578324796329939120298846448953703676445160794687502403909560985921796015731060574233568591045384147972853730885120990088137658235322215490967616565106493820941327417428921561297871566012501643671675718490983657764353159702399217404469473829139862988358263761698656215192551852278736360641241502790860344817599315095006237778084376155749086222222532785172806360998362618274032287550769090226557197581529013842363710713024357891986191628322483351668164714406508157308365793583207426655777585645322879581622642480437784656851160481257962167396295316966626006791642788245116455199236582263508375808888507059698626762282088164202604481168511271392329494799923891461014440229881579527658463213452429696692517771530917404734460332105699561282443836390186000333039312595719910405737041310156128262490590496655313614774575649053726007297883314395004452468112834176105005093865491105476730316556886014906812944705096378391952932720507467037852307466593895812606528438955467464299964157116285795458304361028163906305465785581613912643682687228783486276937993037987555096562484538213272956637645313378651620918221029941141434702321068414918642466329804495492909322224381492049651500991581904954803022571324819936192565971106603584925080360637946551143954357915115161487904861219966262365176870190413384657012869736626530719353498707261166627596388889416797323277789845366588068684590289175642516661489671019600490126742949481182575135005919669823486550301359128666933059119300406562606567844461714567131718704958068061535327752339502628420122258866036409260650733719770240566740868739576278772828555276884799225402390784131527636468728180586566430883387326644686265729714686858112793661737951455751622409405837379331056129713227953404328702674994074371981464683581105382291629451975880258290701188383905664870378896085591363660319996632901633609370613639013225939036895157319615559231073941345208081050506400734925035573696769268704426320609487092229447030104002590150630688302938125417917277710331788410676541160527253512021109469645822584490754862838668090054406492537142846258059678648675067394751334520751681694410021917999832619430033928222059728321646626860861330712250356606157364028707832338772208989134648796870123879914457142993647940600649377740350007335083101078556654674248329220866455176980665855066668009461266462092858184024153278734017529174978402445620418755916261539971680838049828666066266935754261692970412240286982625740996538949612693079773951011792583115377232604509155591439688911514434540085919596862858828137019702597216600016479807343523966445576797655901193300809213955525136584895832731818102066146773740847894959209676928103091727413574297617093986560827985251451750517000330304828444125476580636969496878886777078610323993914290660464304022528043715489321051202189798399551285697974920362757125079148250136881672908722139180052238053214183919729404179527061829054799162011265105376937659778142372341873463903126137432196132030592574104591496323735879246776559078202186466297961423281206064050673622120172701075486563245264473739658898697218638335229121109423061170092811109791341501530659337728441945703431250711145610853512453806754488943716190975566983829695241089168839984652747785402765245177423175502354137193758422623928785439224651272783112554182125626263084043365369107876133705706031670439524390698422736172419600568827027199218425725018510089394029651788306322918054618632970597313532881980992684032243612576721705315579119723133728412268530012485277455853835842888543933893499279071711046413174485561937426164551485478185471439216240986097072755643172073282195915865035152025774992483042905040092334996874319782380512851440914446508956568470780751943236461547218582127767483555025727016271130839486560017017397682682460282878859259599690339947344598362720894158221474853473574305335402771566693495030260225355510292671247929031278858447478525225232156226950562796388170338713381737949631288306801847154017920206900452565724565429395269847915641302164694704846736725287676974218269721482064951723223995941186961671369923498254818955789969461700035466006194221098989493740118438793546225944905001955618714039051534420620483715446562653700793027905359489738305755589136007559665490935098154491913738755308635763993575803057376472371597166134397953223888728633189490432431348670682284101680533592199085713167898486654833817027066475609884634652377392686685137092258063508714333879615855179110339932981660263890200496833063568612811103461304658833430414597897002316504147038257091459306640806024256119360228374839303936524778006392621312046284352337179641664171955594061174346282949533876701410746487026111061413058808116698876106178378747542223415624167372975249804153366606865571537117441395344036627232659702206044972536626101722200230862338705436046300673392221721834729050288897596903899768299447652520833101692583540995199345833721919662442785126198115821817330188440881626284294612027887470707394821258189864136028344193840427399013334001359527650268759827308913628889682341475309766550846226207218280595947036131335123798932981157849860637665917807182591056147817211004025595160253501209797508550369296382799429413386001191391394581512644062575866682284867914214696864730153623133793360121936020254463804938070543471598375565561060207750259812959351882819758428158214190005061635356372214034425304685818907871032634426925519401824025366439514350718979350171655422661538716315901845038576637085378825154979854953389910877319145636014978778241846712014591139259171891071219008387551961842733809524378902231335899935179780537139431682187179792854895462814763440270367572502006234643066478966109362782682330738861361308444786127518454280394959056516486344287572038631807067922525926468744829807239455220528189446458990217003662985269244701767815929313276061436911843168865258805747422618149518548439016222148419151625663980439554012653708140468113059220482717954508895089495524942309622220717800792600654468506996785696788818731437379158878927546808730424656366308911180602912226201819034299348995552142301748955940725350970689131902453822808408920224066138881116250715606281978281684412981356624306046729611571417899245763805288470760647845035323890319015591326946643403932300162231613423260012775819552293960798331973257956204981990881137636695338450969013293158987805294464600430045431612954255170595424746752516055773202590536077851821539089417229236683281994954085649051511573884303564147623129269768146259095343247457260195112647265032869548050557328549193237665402278253785017764602744433430502946456757778755070148229613595782669886124545541321443735883351542488625150247200046673091939421547768773491375732909953468667684691041090442442019403881396447522464120383718470812522093320060858094598853386611097606288010141087434875201294480880104556447778829323255631265634781304749568769382367652519361790570903950650790854958586485444994759369669720336498766732529817882970097241795852204092549835895411799417369793880344581208652372538103884784656308859121432329937617283916480623809598474805342185694194283884535211970316647591333983716538734051604366951648015573561192372268361233768402861179874594806641440441604892491229899713432160296603293724970330067783080594911161218461463325385872879589455799630931708446579319471321864324869184648155730375930624627976011795477600367239663216657137575425801982442739808905311768167199363803614834044172289892773800485283215929792840441079552805698274713270727231538591876797067242124354377459352950103449036682864895488825976574349588540780588161173242957068592349392754392916832329213078944041418687700995359592708191745634952452830265995679672866964780734654797235688739061357130351606932531496956524815716493042274287656911202787705280975935475984515991999643769800082989232722129962231019468605117177208324157283413550946446542270021080091519999922355006484107891455998166949942588796430496840650431273972103573501434599933067106690078757544477757620242499153680279582755557328091164641062281972762539928357826891724626843095665327941925509026302461926153361391049917130400789218885043250205921847685890457370574321849587118111788164056914729420605218670752483464424167705371107625960599027209762169365924678002244864714676054888230690380547790896611693190892322393408572505646141138771974395575751835425445025989768143103705788304853392667808937352183489351160800250348195377564364636270174007193059212941583658539668630758295134713311972257492986574041074564905989597060726271738352749713709651127620426460957390594786311885015291122079055101513381203468803186538346142853073345547305393303330777336223962451031516171496859840884432577988435267692931302279607253081083984703764355932021505666647330431594792938458145325647851833203944667270092485041208447853400742636143170987558116210955235432970062608621195387097573711029009794306324514482470864016275762670818179159585604628027892587151018697944705885523176424599904568292528180290294726979473679803501746562625935853008496014721610933721446520865836302811011875485325816637867211525134414276779051268452637622275620339420107788191243799435631772797546790199399001397588342392260555711888096173633314240678084243304546315775519222488595052449318847575843758718827020990256497495729181724138839704806998135328770648730010659743611779427620272682487418289043276869731407021543267886204205732409000106110016947160362731141219285510977145953525099492391040887169998916427827953110197196383897787538435932328600546663474387365490119228899660978849476153412022216986134669903050800329316466791166479752437633700644495207331078192841605655882152458133640681667240181957428666159900033151307170660880624757744922549200499095499226189337860953078186041835791359674184739232385902908029237373951241549880934704545774723779160062854544770871466032055726433261352617461632413677543780157726735327191541206480364777514288866281778877129546349240126063069128056089875384425149391695124140194965663109436265068255317584723984906379554684200245718085513908452971471460374387361292881844532099893927276009611720995132772452417643987432965572539545506627892169917567328290325424878016393848099315251942098926839823807659940364505384769141045477823418315375858131337723364964993130495013020238799146145318605538134046678993357834103759811513617597896196870122113644722870120620586046679387875156966049944675100627246801920999952405204616216576198747835583821682130588168878922574395665819637637683060830894555626657420452443670089040310921624113430177699657434379672067090013041544522319147316422488331061539820611223376621901218121973673789493454698355537455935078344841939879907529102290792227287604117870998133752917820391390066106004032763799962247455440159930258902080301242528776899397258100916467408407190431087947650429485481312328671029532657647730643596180568324942375249099413191145295679692271485500940599444539472201669310203228564406917368671322154125083546353174871934285203298304804433567740406481232976638325705813057603213346150457678748003178027369586419035910508873404552316173313034405735694182993082244235667171293650630472289017957967729996205082719011200462668593710990986244832222400306680928599263103694482598963869993816245279661885642922201612255586310673993489596758734705555224489075485573127726078911598115071909736084302113093769883521491809918599230432435126458709784202541940921744456757060362425205982605828962724275523217763687893805493032748726235981457960732264904398764167843661844747778755737955581719604780906100337488568476859257208940471864315879749023436481268890558720835299967518685206181180553404315235554021173978518807848653092474247816340921769104485574941126838262168593469290007248905263181810875073047417829218226016072969457982752013257377883460515875180425235441699498028866787606970238921058393601019725256890482374090252341509507679478262778339695355093855195552558809793851917723096321001440232696838459594266033488741612931130661734112721680259114915907060198385473754656749393125722474176413467924775900646270888789030347488555641995812205470510615851643266595559150795473276400444976460239272336781014304659618590548137867849675440192190918739396435830079411157626330369628574716553346028025426105388597682267914567369620485760984475835605678270170141416143205649480390380047172607224813925158406125647386910440375788285536763202754029496088000809108852513224180222359936049054512324402861926691836242203714339019484040730071177236902359324034620069485555462496472978103560550188615775296992231798591966510321185497656748110177639035326748192552442633211223064240285560320487032657717354391378613135958024106858166116693428093742459008040650290748642081701093424144336607844862814289574352444791280814049358598861965394244199678776999150576694327064031912574718480708107440817411631198105072489487825936226768490004566577186860690987372168214616873852007798906552321943635919206869503786701003940753560163311828359834743308913957018823066359206218593243034760428952174798477285790418612792978393734073405939776305073820203346819781675514474077954446687122290880744080003636976330142015688172627449594188399812646564152600473627156903840770258603867493537845802584680790220695537472532279172129275487127022326161073235708779084311035481287857816569541295937526875024586787855409266757074608023745280616429314730007907151608133894718237568099962644424882995642511503196250375095159824064551165048063024232344200411892225753035007664825579844249468884707529489190937981744363557394496866411802829064356220689303744498935813766270961631565615951465484525811805279888379802035101279784991803102543613316424406339221368377988223872237562194688900776305451826649307349459344161966449591274041190228067709457510689179418294867137053742387434739700501756939539554030537587063680034697031770274352070177292251018595047156818767526932776218966955764883362881865856942314190506828669402366669781043449051366323892289764841256320793443426560763626330977030559762363632792226654973896894260016248405718506174289027330073509225876236424227457088619886296285007780579787186495333588078136526585219333804509884829780932404557467813625535908860599456279356690814583642280295044846379328380501630202897376520135026242975624468472940857986699926847323750725155080428001935682628146858183469939188898385869243317305092871675916843980458030129660348949907218475549564236968053672570587370483328552553916408341110266507889855437462037139459543599564856897530935251851072084183823099918391845051605499998320638530074276184824160064340229102136767480328549784651568263005957349656889188264188415431447011625397845172829713304003797164084710827557357317577419580082698403754616941579538330645842685660774613280642746765277576264952384143592970123236362887267975897744756915440535185036667854286470830439500001405620251662109875697200129219218300266719317373044747991030992292102629036910539208946348032596626074186045945179034117577758853817453630308303961457906263172739306033008265360957084286688059889151979242061306723770468620831126354109792646630295071574592629180983855121306782441341031356869426753911273562927252493139779493330699925126535419281644981860513328847862414059819647994559146932978631853640644951242847557165239708042866191125005144859553725405831012971095531361472017187187925084956854171918855792163982157344394170596533711147558184594176266985859627784505512709190465565853874523670603657641004335326601539910497263450176036909470815704815834128317222195192486066103361752856524655572576431231448061868786577768626330539929422257396059581002777286916285856166288147612349598294646950395802970936286993384869027359345905496486477859136164738556397829329851474271286001782462096256965670900465186761075729823486117135901200536226292923802069177336856018322542533225207172470358496505532479629342340996375906345499935224098704124571943508063691570528841752120101816620479555507796605281485122747317827499526292144229225480462842734883423217018077529484889303433327296884688448003014687969381961807383677876172083426193054694826427628149038969683523901618395450636540928770283962275832976356615736245534442440926575056979225568644088641924512830034408692278436773400333920439538873255604796265417686129881318338477844620575205167663071014810057546756052808837976277809329459504842526841592291729723196667421189087378588847975196531777169669740704824937057607700971674591290596824086530640061726074703133069793244311627949609624326660626883966267868034865005804007637689003036230689245445743752436685279635905765842273539593023518724981583823309058879918303307333418714196114017036339523949355737788305368537625705792245381124852358696152483292182864630633136102982422692442093617031322269484896237847018638509110594042466040249844654014623609624256844656739402234850424271903499185016593661885106155941641567302756987155384034611040417303614292378468003994062439121687429408619320189789497546392470248887855167086045853813453938418337206882615106671096365106340718771006964239769831658448736493464421314169418210603138661430607613983455634072015888714421402691866127622432391096687010702745870143756375068568022971058211043837674736660334646800765327709873987018257117555232231957885135043158608324649850658885139755262141371975674805817958844924209392500512962589130622549124406522339984036580004323007983508848909806592390046686394426404958795352404607701271517052704726386429899109181426649953857545916619101034149972882310666716586496396034054312831812334902888679713385742199450740654589264200414043432141976988337162827017585554213463977550871694940172072812730861309503914993320047873619268930381267166780748389918227442072480318793914585791320520439474802287910316401288545185700916593656241999959019697796437308099500242749162868193374470427541885315350006016453379927838158415032576812123184007307341814860149746826852776700158874438523740146878625356718963444017177128118899179496372911009429284653297437514269957128297021279216127068977326566233709625832356726838643928741455942806250613103403593775731779331898352917598076384600331304576833344309532220013047014398943459330125727375278423829939766303539769548776366092520674547605279171840961657881751297896417085531441176280889375746971162290613232513492250861045910676694095562011674650432392409155860291390446825862937393341893525487382564358997892868835756714266513593080169495370268663816489148483582546394884379044103365047970429572402304344932066827800108864776445619437298738253918698388708637395605051827351962968040611441597745572305357839676519169329374380721008566973463189384280215053047182676647238256905674756929677727409658660247985714005096795167811096871161604975731613414975900912757388792564149409917986197468094654001221683351130079441985334562919340864465867727116206491791000787833040626078725987882905899469307524665469414574408420964912442345458477418841906653289632134390576163748719721886897358937349327128438961823181061379027945470796689241738921207865695384537915608340177893315540360822883155299975623409535971522443690709786696392878981742279935287793538603186595027024979342208271829941470364618328969818705694128417052055188005540783203033798816242288892425826918216975838194177178953514169671421474848011289059713732535869228995737604190881876358428018289483307083651725582414495467425451799073752331002414116974015947272366688179793129283594774467128754746843934438474436082775883754867492130407221053647702768399647205793103674252876090434707724303402407878577939761082796300447312339980618280596103043615886246092158771153439365960481512403305594785442410844321094135208416993214906460660269964799930692980969943780146527719536976754636206240877354293202169835711489445370398054617291029819410011123371791862276921263544796909290247792078014269468402638315929017558797974882849965872207693842674983526282446911250211081067246726528617117357106165542134937892661961608351071297801734297246404473096566733662256956147880511126847821863469086813046334924639090012346085552593875935814662556236707586867434451948495730938246981579772068730881704077162508185105980731189961597343395784971594079753301674115458540932257478634738344090974572715052078903015309734594443104484374239619999100422370353970170403914624198850992484032485431454541065238913471646205107953074054343692022492109289662151819914896169350144986924219811838693325867636241967281568036023429263371111472527203555720193328159327329337850405879120469690774544524538212355138435895352645746643022432731484892771251278897986925463261755159481533971313936534576271337990330809956043114307756425058730295999359515597896198437981987020149437389366191637818984470937197162006837311832213682885112135572397847968553025479509531526832487329056401771739347418912725949605384523076456117188425827466167371389115852550132677956283770091680570631498988721415617909374906520945870183007149319509160798270156851597250924116836645617845436932478973598430529731058962352890772230108325522699543079087293629867502855112257896865955059512180065585800018161110759031934677553639213092139149213791208723995028283213717247777234062772220953214880223948537143899943686730037951706087813043922358447110755449069916507414232572974656453737190120517539526366345500215762065505757761533900286524379320183169229961333145563532971464007205504430483862215652350588592224372163000027936337148810982250774411957356705068207559284681363814187273389134775930211568951208553285240312807774212955954694408614587506009713250228283017676214682252205130562040973597797335762779885917460917068532702918207035063480998359328826712133408989897018896395242121548158587820777495590748803679959983983103664546825375984995756532890871634875479693157260456289405172124794430401630085498184773535610973499310189743996671940103249330756847259578281702124502010134764649919548128868929506054737818702766785239350950179930503344606762910916027554497102711499976978784539539636803016450813820767517619240554399498473912480313466556981819172500750870857938109339052203350465732871248373917818536872438670215556595594909481074710233429809399503769243420518801781840526101625986321521919985454318200905957932370546013839104415976480912011236400433020596640370292660837375896581326013799743685661515665689509620677425240361655827606063060687879755754961151003323089348026007915950132853757869968157806615371543957931690342997145908986894597685648271454384144124835860203712635050812334959879873872648110581052526366987471716543991302406307032619987494782061834036165934087444841610353517950806668450377887671915483289375422800333115263886174538110573152325546256736393845136854160910119200119302826323459436352200951054275904835597997580795548399610749757258971314245202818429803729001968945892880241475813640327273581011065046209743544562645778392763756779562060532568590316967295584816877254032195446373451450956621751816602873027615363006090419098782952140845831082078368768543306288023423445842022848210259691745684260908479233544387640699029778107110306962510299164298500753133883850415917699048597716721524292632321651173384220292748402266265271703745002100891774670599123693060085913604280052182106582202766232560023113309239725889072532905022863153589157356903462716970470662565274701601180672219499626626158155760481473045765109421305144394860158945672177244921287787385319632347366008361200928217894274202299798091206139058227884936977385127408576327070117814555120091446280386389250909804818892291394991166720715417796885393248587295120029041773209685461516849933503751394337974980128067417517184802990373501307424274861817239326125573034159817576058575724659592998166437117614384930637097730447276666844406561417687863001523252732160670598043087105539975682252338312218115308609151599604993448844853614902499354468309414092957191691320429733953945047332425244274870122418101853959291282692893776645045890251566846937891815301106301475766594204775378122068740057755375649439473591605655639457669220544520891049215907214800099738211547403544441110750132042670787424947141574402029980828276268634889803255987843058873113442808089099211256671831457981203645283218877412743483564399921116486948705063500232192370580258728383483379989744874452530125445881737385810400958511946753003726476420260673084901156739934250975291684177603732641203018068694283461297865138691074458400796621079672994641211500636862415414625851864699564297661454041461914186363037128029968383414482098228142549340394185295104170431321299480293917003449380071814493919914758595310342038547561117911586336833410204251741502423368205526270522618324619144410757470048256624036333314346966509166025687153016722156294859371615464905090954604425011417039841701195995346034032896188024269288458587144410838027825089205643084504927466453931346196278307475518750576031806089442205130664821865881813177640667708491770277629712938569755039407128560826142288497562780966880394547307928173409721764667025546798047354253301878936682600975163724625695404404175566331182127106770480389285684736661823721434902633385891356246588098215453064368339447006609527676876292941228421884803072068670111841724560606518581601329801036075657967687875039015667267871673824776858883701680940682250989449971804130778538057957940278011255197697737790944481112373725973746826504657581180334298427421876918838777252977325757868351122380397671113454464680065631794737622256560589973763160795241944677327539532758791895769924069928893706433241831708914308925211518587416465946432888473645597411036127625516551838964548768676324519633335138900618318613954653466795163568577430723859027713657018515533919374089340327220293646467212305716800702073494075541841830775306351902214419384121125810674219010708192998533200276286300063575233162677606112927815372274032598030388711389716532321554103778318475162375908268704404423506578076116683084597499038589812466450132855738862001271489255396515009107528998815797040637730078086662822662620474569081183793732291500415397198244819735482919957993296675099463951714543667448522820100123134107133733975152256008010602510544429442170040557626288993189838343554001613732991418113143861785951994869574440114555661230820910592113005971869384928408701651403976488054920465611634201882837146663619935492684625708330143549377060206835940849338894478829253563153377985604182386163975084867046161297657057930500576321540222797792401915868025706535162421867756317442145541517456843325720935242479710641577320696729609894153867274395615932383691585586416229287269697197523457347181590999125852958006813685557495496168632046774370590642801796395301604283381186074826001320260117691738115426224975347850905588756872984428454174294306661363603450171805078853829336086032781258240009148488407673337083801845635800079469109621423738037887390947954610922196503550839215861120501069435536767315056007106399463845611843175266383303936645801294162847719018447711674773229584756608538951312785089874679494969622987847950703474233110056933573345480363196812699892703621620965718375196035540510629462140599021270838839270933120865059103933109357817849060004632139489369047113805875983664752797444200620965208060469748341676643785854741510888703815700116571934806165691529583667210609723081742052562884183797790180720337571554717833955177805197291507970700695729752102102145204832130890877093544268034674520384541430126506431558731690931615600565139573209468625591638951871241931529007656217278324667245229722473072841490560233408163445147371463253296271502681289615896896762774665469315444677218510151714146780218439114823450463950702238530213328843903297597008216312923700933561641041069062629788643782470556737659109366131325414538028718719967836445083174706992647709232012960824528175178805032789827522570489037231355338127677479205310146972879244458232443755574991620401211638612825376471455231614517639267465918343896905063498387407650265370063614032236326515211715340414535867661144300359116503652739071440481425515288745881598768232801079426060506243078667273601210854391100332547583302256132403336686205812788844108888486283973854569995227101037316090844493227080224912466753664940618794336013467478327365973781078807337055830066528491970597148243972106426978549173939899377220341293381135547428683074853844777165143161605351672561009148529651152375626403168060680739849999392538540996876335763247721919725097535334512680681887594865475826644800338688894765837823019885508028874213882884501323644197385928862672598533268380096235148049179743188908287593131599620295346966631693341284470944726692037912529114788468720254898856033728994335998877953362280266479138077344610231113458362254094092706542638180982824573491953385984025743925166651736403045150091796444509333476155844111996637636916274992088695605430603974914268364010161656427996768027422613094083765934990897714001330430381604266636939975972637769209519659959823824969235284755912642273324904634841056185150676352386833534447536387015718593171388958564112694552730578458911622568465457289923511612491898140741256621893741794609374972406239062350394426868030041762320259126410627311369783118775167956233531305865974135710339890030714113788323749226040886234497589565004596407878084117671372937322365340239228376697817738246800926780699049449450032002104839239904260703838334412368093933620664148862732811243932697781116536904058748456433766771614541778708190192617645244269060723796432036326406096143557150182634288876162238331797223176283981345389621795008847397319660802998916135140837902574934996696095535187701740851077240580683796768740023980731132560426711114869717769409721417469778398788980535175551703166728807027759922686879742283405717910283582411400055148315590745695227211690492034485530762531406706533781339714950986523932122234048372422170615562912408053399555397164353370402113480425287879132394220309120541800479832602537413129012009772242181480134898000096176976810812165816680240683886767210530387543859228588258754618799653897751759881756232703073840195793661928798659739540833617905728390769255573396950926983406294095326906011965237968018097945083918651397858601794323354788427183019968655586564415000359697495886938754111950353831057517162361174989065979609568534084905547724307946320341778149262490619699826059083439410906228226971879915778756836177565773678590505406284923601747846297184633030197636089155788364126579666075589257762889443521583499930667463294758030865533299936357028241842697526772970834877089691870047233701023498476032378140631929169175625451780416705753381520071399780762642626916746681657732210091014433494118274989436313849467741959065420971289741653502990176433794814201099113259266897966997530444092328980821098995981177051900328625457718032610536043301875682585724295217907238106441523244458534229088915185706247168457804645587711043425449775893175925675224790282455622750681756179762047147927119851320422235821241539973574740745109896392057764897709381132191430081671848838206817796593106402437936403630412576368338343037167671563767003763514053119895142889440357294854800120893878669717147585562327406729962857939620335497658382041596290269863599779123300265743584954728925949290124924884871190480057544899366013620570758873363605100508029763234832966287015333800709417941863323453974780557045175364728648425593715450194618128992397534006812156700797309996742378086867203949848836732306034598199289049997762784199971890938228090168832031265102307962196380206694874337419259485473347325912253798184983594795474532704328677106760205112326362648976282760818573317368409525352455213536609244908808440134766734696332730490611812971377920689321769567225853709887441532455535995373627280623184052400557489737791698516096298416383381862742065915406493139936141805232218532281471353888596385411040892097329490803621928610563814268562504961938737201071339461247156421193554937948558151914949371701551295779673644777471297971074017940480141630242836300148941176504206828859170260554677139349733568611242020025881679610115825877861907134369732108485766874454446838975318354519254282729445592423770362391490316551458350417808799949010844148799760885713731308048600300836703459810991038964191645632914520098847858575266329043319646476774459296414242280704957247802014814169787869085286098647859145356273304499990262642661854996939822187948322026431728874294538346860609744759901302149985602784327161196622928241478606162240313199175777113089576404485805975632452946225302179406118524050185589917449811645789537213811290696121666101823087583674571941038094334789448938130777178269873186473073374187896281402097165875671504193710052679598323267988740263608455367969899881248478714734648081585015621399930649310658745610364347363247254429670019611808511086114739546503316613864358872516059484478462254671855226553834108360347067819272627969483113656822603135339016276356880267231456870214724056869309630896306891829447753073073400094162056457458909550482744768380365229531241540787277422868171138413268702144441679977353938125178992808620145342664239455910790012918880798183589460974138877054096547321396617823864045958791587468366169967016299219794767888577783088531530963378652844373841123051790348957437860720792075588359483282182395261250182045361466429979433499102878390591221747226193050689833361792423024830458890985744374046052963728031298171023456859320937253064438675486867076898334066340679910063032828678720734027745605585708113368089897726687866116520080655604678006585240572112370806721107289037543818943331313375383150711323708921166784796828183584008274580618527883345612764402281025390584543113913249658173678709164540862767317324421852967398434432805278926216581227322242061871013958424060506156755585447537501467520007676604458498404993473408906299069682698520211990175075135641952848705856355507846070360287491433475199014819256348827724647875949821533998778273019801896190246537129640414924266709554035821691317221720095610806388018081741590068342132944325822199516913441412715304187953305333856185535851022654279646760112663834712511661959276380775615725652867173775067670825606857950806033487808891986492861991991135514208899243959680653833168664477749961857927328815926865497537216309237461588682633619201305657766982698590867496525368563281286307087038008543781399156378650806661992473101074589834041804483674622134891080188574111137646247186789873470958480442690333877894984792126534029336018357219702280771392821919262127792948053800662061190186322680843234090296394806169276237030573159997468485099263518068348988150495790748596852550280739026745822343000005686014493424552711053401331391347671723755395164932864430188575741095183365530695752426228296057801871989996670884048796213956840215839682884183811452171375063686305864525685597085192203167741966165257106835552089447899204129670236873974724500491582453867637894073964697887348401878003606515366297288669746221608055990779578593033632655260822280553348347931037325617521875183740983463595202698851775114744343501096553934869426349232077176505090929224166119176932678284760631901138296223619860314585628079494630740775573310531373585168175732035453648826854938440997625395989528980644432938418241175343810452251609768808082666873101150527913104668810182708110751413300194323547145757439592412095846827771791551587098739096520037917797901112815603843384227906904899648049136829289326992743894376586804781882235972275635326580789903359294803390540544146508955277342418522970015303670836349584648717022021982820779092381686088244277876536005615824655291321106263600967866548780676824843473325341352507047729380994785871560563089334347912840309285958188650492284936002476552196991635773979631507287822228817208687946370970684253673753597386074884968722085574966040152813769488885543589914505735003593552090699302530361966461231784829133637494643417091017508007514704070797797846949575292915454407380258730258837344329371986267731665843945635483658914655793037727779095438969997789717362072530208707541323923616656496087916995735116031010355960684318196951591811266695695175555610346646454360086447247708370557037522596089523645272597150687127440627661766487285111214833056598466146725022620226021932601889028492819209964356466175698219904546089839070550920795674652472731215777264073224908578676251246803278726585995114971727548616631741221351273894179626126421569883605596468073990085314881245198514277227931543202722236925842268377500477459237947629064090489518833410012716726616659734952263394170009631420025746357919382225286288580817927101740334705556720424473211125705730339284780904122915592469321407037043245140984949338972837114949210486532263392251772624019178520864315167567640286258303519951366318700381140573059709548318194650524658568268810562113223785723797590096250523420774333942790726348488766226041804770768192697988946640322610933652149889970260601902372543065797349011678425818827807909232999608195630285704947937013091236697910261838818871396756017221732835182622675117405395780807541117966604658001352345955839090607606964456819197417173116967784747280425407128135580165326943147363342381185494818419832300389284019283030365273229601152389626516593610581237893878240257714640376334002546728187534727637345312562704287107749125764420807994395457703104406313585339780972428563423866737160126241886892618246066248128820654277711108066991630133519550147359104709908364187868467108185884082499676127448674137697390391943939559026322045213021400894671187802813377070490753550509888810887427056015591961607081648223717255276244783470282367040699112431911595953337410481394953598093072637696976051131507873702105915240984644229359804844496411052027247951829965360367000856784840267529091489410157066989466205679840740538384603152312897221577058025787639795871873636403426176116443652503872654784265404875448675884811570303426622297700487678259743294445294250294192117245035826784215233501476490970815549698938225483346121098776776467749704107665677387511778607406907915215939306052063488543456096798513868773387645638735337879854689996292817332602890076944744473590069544903367599769778279550857226496739693980930409071106427247996657829524575664257123849168769851997264641828324847926979865470617766633091985447378381154979888606281497451286610675684991992008488618735563843114348135788543779161896574408165712372220561823746354383008882247673138543948834736234186927381198496077215542408846196961596749878825329334197847557382446840080887204852688043885727581529365310414427283391160624731991249784179266404957942736650035475730977856324402537258354899822981129165567750930741426564627169174521065667390344352595608761987264433458039559629784807664787823455434637554766484738009033828576586207325056684843271245311792797761323643195418747399360642090337125983290197512853120359292518108583071906145280745770206106292544545328809165468534074382236578507233048809382000437389507335364640136294448629596979551166009749767751007491256601166977435836265533819791311272257021076856136514206260951192330476161966287623946882906252963180684095984767897455747133585087517073329971311996982699504881785104859302745638051070155356031865446614011779766398507559608482845669607461142456169912145368298310188463675764500722013089568167373116626795549898702129190265554763810659441687886163784281995557010447291365900067493353213187514032676641992197281236392051239622683829075383159345998171455438914184309774548124558564259118425604951416946273164006121391303647608047608196971556054173374548530803105293275501409954327133592114287037044324731398056041389424661989982739844851734846056704488186670357807343710948623025185822472688635051066669381543971649791825858200787827380346779783574836066104722544489074610632173250691170102681023032440582438558279146825982788518257054291080595012810863164966108634935054697561104057153904894054967985282103422363611731632326285396127674356742006027262152740915164944937124208907466497837932193370950313595908504267947189529189276574168833059761242786410575007575172757539179871799875199890387668136326992741930069449298565749369301846658177390770159946160749457329781933832474979352810241553708052773611415979667807546734589544412124958939679085276978387255957086341374338259979958988494725641907071677056025544102011431728524260526131763554157286107544654209816784084554417495591973897850572386679054460846148108404155434949082203371886608306918765513731610406665664719153947907659841392475620063716121082157805255281638830185631910198716919720187819639163354075417708514177647945720839917208862324795645722234982693327925616445133761652917189319394433186641699686448436504901488874209579729723345256936989179754899442790985245741064135132100743017107444075717268984456175754233090688416707609040742894300248738070159453975047798881304519930340747110702397289949573495240931272891259595147019303405430348126434183344662874073557402636852709050487631455826299292889992636429958766062624313635831894998954859314583343939644153147239323441049719558136692915055520953160341199363755208021411281515636195035740401678065140897181402179693397053772492078819574793376418773133910293805285806896782707538280170235662238698726029259215321710125876752024469837951291187660775743485652053458645657957761998503575184695436900980285752219416254730496285916830850783755166302799259487956002651884577578278445259382747264782810881392074882330029390782786134542721605614878870628110886557511036436355986440206156086109425568438398473362926844347060187347473821521312951388048069157924188536263948826292451686587345697207724535655602958509297989747499590635759282328985906671581943108738304647090159700502871682043284832967593576255891931392801408851400364316477193610036173237059285329044190782616086226459780175088577469578699353014580487375472188170304810953338952595708779978219383652871316347160269731445369409172361707163261682868661952723711785411318063705521859399865620802990713929550609847538982191923715094219816728971592141419870848163776620873270853930768373554409553505506582554452949618780800664471562479657859072291493793636013348883049995133970778918315067702718817209490470823506443651793399997536018111997738246611610837654734159073151244929850505732448167513361644610161761439165467772051285490284131451112916616763504851389999791138494930794873589826687880026629859263502127209336374148927963535853332423959522016492448288838280117749335331114062549814178596156132251665878397637377312786131721951839224353536236508242389205062209735978434686775050110634062919928880817260083355160817325936591782258661200102126611335156730729873296636091227637628398314279324364026283055834455371719099345839678821647206387000578394980159227768849575671915159630531018243207106797051616176175061429656002756855081751486169667485410153655624201982165183261121352444889681953896023476188535729053119112682045954661218302701969195745517703498850142381369390682171587611239673724714225581287166698878521542923041085135033423773436645694158049513586831783582072584523406865522602162422885096531261796259371318364282403325734119959033893447934449827060772826108200299442990819438142644190750077593148027718246690377050545740907832486287703444938785363070666227319279750359393815931493001645416638672597717379125023093546023579102460784193931207554501783932197183350970141916781652855373675519047300940343919252133362604414404731681243064162960806487875142506709332311611099460118216936885958409464470464100826493844017185084660843836007175113934939195198436970824345787434239475849367450597532227544123364157552107782227615913961041962746402146960073792247239503005386367321692783915870766211261135980559477894915082565187322639744116262576828007870256965418083782472256840217489521758399834554428573167492297084938244213514930047095813094433264681278796589492119271456628333366382739129096805600332601741780442065742135729300111433474421451525220496298500486799145472494328966655726167059907918268848553822944864617235196134720108632446208243979620666547082653465347458776178589291363828717436052941581885689897433540736051569838686866824434168779634956877312464117725564449805937723825505718631901135917049297555216829039642985840266695770881972518434911122014340228641668627167432748629918905084193201051976296953561773369758533102047747032457069344481173797848381761788809768257262306399324713907386391738334454415148141714433178379582868806983739985359740811205694600818675387197845997539445087290664924772198942139504500251160812796564964699784698461160342654329106343871314269275956141894587935349439765206092790395915655273940451088862556254277673227765347800574908492550748289016795494688515064798593310042659057900140416625029835620939931371067062867905984072008657906155224998876252433799261994108358272052497199237023555309481630904539385781210929732882899362987062020119307128912324543678329417113238001573749797979190234690390918193479024006805520440180694691063956760566730038038896482854824229611042084003824484081458808742291461328257899744038543996230929863041479676277550575692869344389806866881585666747755123249586406961855697541157780385984077756098956510001536486186559620036312685008835282913856181181038803760347897159482284137561269682890020704154084537679343902235216187431619509808799257262534205475330992142102027185145830391159448489876504604470213414774263824337146067780757632775173069412682907885267988838352330527262568159555876062257247098804903662416816950474307677872950776509629181324064119977005532532694405231262840772446527219677731166054178356934287691863880833421155753263035820816175856621277446340770327389538121126239170475756326587831415636788375593934502152931064505857586621081233083624728789682411822296875556366073612391606793049815433340630779496086295373124052327671642036887287776541568133152965652404581676811966076480017838144616870231340872806872092430472059413415724736721288814550693536087888959949130407275904829342291268093950879769870447193806389031411192751688451904287937263427611833725429926533946964031214838948368457851940603367318975150421806160052595892059111950487431266433444651493441032025217450387917068754879633272015827542038322192361661030923783726223769935605806301866001270973890120289488605752563013328164980414279842706186210505869877541762487095932232730054314057678373391570745551276683993508158521224664944384612204284655585182443150799861141826624269576244690807579725864005428642601739348896660083332131704991956378072032612659018605592966954139777541268326748856375717531912778924966986597895980816005786464263121697185880421769802614123398041723952678533611989025023392722859902694053966598663694468053132051504405275131011256179720235058634736632052092491796659896133340290549413635095884659906941654830278167574764550149681952728054690403291319712630288074324539387110701715614625831029172541766644804693753156051425015563484095795469199063820633693922821679994709214616979531004394723884782130959114971495664998774452102399710163372516511535408603897693525309815490436099229421230454168895521690893746731841168082735978696525446629185211765221416532062420983230145437383887966885157043845210746226754805934377316403385301512924059232999966614866604959443385654333379093821524907975544525530545483856683784740152852493308693004872412714976621625387320066066981877504645640541990465801268724657396743588046278957300833186021181626899567256930879272541029031968906050744412250797233722044174336940725824872001229537550885003955677627541190502924809604813327495857584289974712915160533797770828049813212521370192082756184934689690882291811259492026483830262355281446807601743701637276049447672384236258309104468452576955589929353400980127993116056476684891734195428027018910059078945599766127568893588195573062971616891335550572341429184026535426070419165213307351883539202622636153968793803393456378537523233773883628030745710940480898526057987054664153146323430033487307168195524450612444107842988981000735988857781439645180639164979217403483868166634099466653190162508448074834474412678340562859575697823041885816170135481138711381644177491943426142527202443241591518705864607835037268500147272012204368857113772137175487667734449508811086094740128777591533658318762534621318665307771154467323040320702128017935652717677849512265097401690408252801913974877381288385540544879883103071998960838460327003087451496111397159235656840750969268766001117268092888222233084802372715113282389567454928813663223831791522944929507922141601836785251181874011451504450634098508424679226527100511592480334896485530906027126759336044475415962675752882884563805652621990820391959904899964725019198574155312057010729322925437117768186212179601619693591030538973935106275606729639832818097225398420919798304545198454234714337653624374969989954075843184690186465358984972309181207388564889237713133983969317325013396491852401046406516007788803576849496540905634193628222692134566785642486784869859191950564003162707913244577343266906956858532395476576477654107062773549430825908279268168256377521031220737925185412627628623441719313818475810985892944319467830679423943990572418702520906871777138527679700448181458467018825989697037736481702017378538568460980756770508983006484500510843937038888994799016715681726386432619715953117751463862319282941380058585184838470470830773106999203879218290293483325818539879870183541055203181588608318694573586821407783740432147515127091364067067021523433287068348142013960235817228410522671924014570885174505739585321092318214930510977464970855621337125598411107941865277147635868523811528588677293757434396732204446964739892302277009958582884369117186946963646194533556754706366907138846250165409749110708480940148388293739036718458893201588312655206865671706864905501224938359679438003347313658391820620474579736268167758605450450264615909651045490040482798538443593199719340703249274507365473984991982529470221777941131009317115284392889114349046339420994497964245249739533344991020217784662526245354607867077641104763329628385939500180398756428810205776339965342853605706238819919140171447123098796765098599464257042925951443702862452968193981235616607901164714319658564377505265131145359126928110511216220480303573834894814495878770141321630778444906636561410843482494900190990407596690904600529649075501195543408410437899516106231754030742447304813300124108110501027926335090543053226622495180970192539382370166275668607886063022357939314057533584275478043282242142315725276437047809633951073240279803888740860977562164490698072889551087379854908850085106578420681590266798501018374918134256839806568947885065343620773613403235352991685466924484097730115634475903319154779380850551088261157008745132098570319138123073599306030279570367810517262471078251299685660743589374783961290844956100019862524764970900343391680601621969187491486283149296906401043925669105095164367659565833448169008219629128444101580444999173598770933340275268088661681635956803365952692466302578810516328828925779989766353443535546454966031296111451440222470911334199844933923833675595155637943596974781234464035110565664709085538750771039416382534856784117641598124013237378786095358439970228541225992493182125525855178273972298941156742340917932612948806315773013006865711543428260193861825717034394211052079037149334189474932791721785909844075666795653432541973202995081445534572587612565991254121169288125769039460917698301779692563985463824485432201543440759290392628813671206843704523822674109796400643554237112688053507976475810982311762773277840331709990048904301998362287500954078959435868672445661414162102246578651465821854718297902617876963234317580535507105053696597628458188446008005937873675941969203634688414035759450097806298787076028289265998346514890891279023250553284345898777557880588504930508591891178354177139109892592759266863600563458222640440060780635726629969049114574382454392165012585276240188050755126944222615279373358233125945828542198000813366908537732193516050999164694122317812312624643607473911038538422135589253472921457810258658261565430624356211618205640713831768798920205428356626130471556754285099478698078401267251938494674957736142794667646738216264207650458945704293823647136641421554641177163784814534488618972192478860601808144017438212192296140660373805300005370627652714219815891773808984749291323440185281850368898317700313450765248934700887305283503962192657207854128601732964293866472168993222169885425641209619040978198800294560977558568242342638587765392318741526828459083324347899843512609965764073942864355801320605578876851241786287529140661544327579916123265796114962546544658359880885234607866235553579232214015332168469952813201589700862042295259803438895817840699145583741474220932851875448438033558953873755976925177758361987018393567010567791729979789138277179860246187334783891186079060694065794025025340540396834438918998563444687306139230772941213974874495294831467113194385595048800385100157378864183418774191445348530830116583151311186614875922558386072579518766139227339617022807709739833642220244114321739205105201686123433847005675930184674937051737327929081529892901709545804137628391320570713329407394483933478953114735018174484882814886119903424837657901112227305052360044653491980241192064370433272215830130769623563957071177279007873706355730444870600697585443544960794442810866377394335184458442511544785427515789457930072405058374901310103247520940979566667263823236779201003487033820515525642270501763595382063942459286922100395064766323875792514237341442187852746715711439955883861794438419697347115816257758157526570548709247055270514268719771963950052334809771718252840165793051542886545571938473032482403985738928673346208864252757297443967006726607908436644941630191649532227656794880555584928180625790566132420668467375565829190564705155483220812830009170653106952717685741459592839959927782414308712363004422272047847499374412236431243947943061382191446675763165250050499194925270157773343460257214929518774242494015631383940365383080406764681226738085204647823222244054123920865133407744517503028934258198157394028261312389404415368910816914750932816073691246996193521580632536875560021096525971896731619028977843390991998723683758371499077052901801775398624993861741708721418813330332038712903061564180931152966336959222672167498895508429962309048496035345507452758453842723351399628688384784867356314540270773139290011907605417537132208052737765356651471647154564517706564758966497449763121590692534481063583391682218676743512256510477889545860175154141945102763691668112318098938094828949347652904556450661795331241619712864966197114390569090367566391567280880721811587872550209162071756662224029820497483734522045144027331922861735964695752242240783947387261362160752321074099401766057129464597694458441514871492797234376977983178165434802870732590667186431610265276280561673565964983871506857023153597946650083861304238564876572515536465001533484059920009813361335161958945455889359511117080701965075167311403597923229505769225955231296590412327011667589564492748845113500402671597145134767332528241793317193460471027273432004962970553412652092064424298136947901853379859831776577712598061336649977939107925499754769852591284935985000092873547304878054616988923287586301713196895833035490024670119683636202873754544535031235139260349973532722033804764026771702808957435846712609275095535400062013776657716957773279502123846253198409882147625542783309287554294071768041201425390346994977642746939958525822140531299728504929864501589090555590051067402282033810391572694614137744710671230848343816156727687610155261509125915610510529790147957768725484788152280424422385148355332237756987851370558722923885729093792839342994166461443833969552786183850281567281098564312473381344374510897298111270669581203954847523846092079774203831763031849643048183466064976879016316563378050841493132815235984087712931491722360619109861995290433991028264200363348002067360772178292784811597490795606313241123250352159945829927124403901022572930190410694027361489966273485573896425675938247171870559834679596168126088805180876520346942987011559149084268023788453889508673965239943988961789268789267109679684838799843324236026168685480562627066987151056788437683043147578394438229731645257062998173010763823834647938185149322763416993225551654513879320766025726576234829095534407449242910286949255020670212576897722832296234035687767542376414569291588824324710002235715640445048336193639432085092428346402467713541148708491186926385464977758827746641752938912373995939559317035681341603428396350315456567961099157231657024450615276914941290712618338094498278550744720366479229433860927118683938754602588600133824792769821386191565862645842563952159988200936917647800353963609324288712949172404334311863953717999290374310657048786435032938381902052232192106185680651320705669696262209621068585199093863371819183115224910693681315252944414258998999287119952600900317950693899403831423988223032345798806993051895752472800617914305770516612966570061025497828990668659524833190934812340027097163131657626674748120261545838543987612903897314825047681524880125570192241857319894798800748302328306104889160584211813740951012262498872523102332903415759336814854006435122741380326813947537200609498843969593670787565289774103130660700710901875151144134383696272958622147902948655254364302473958929252948588726537959401713308217020826745669942230293419193811715350869410295739206268655935923613175422127347523632468609465212548034063470267391401428154257426356609491136993659402208153146795961502112793043676032425164670805501267454679866212011224975753354214395665862747453197809611069390401838230562373152029647930016054662343085774256240728368572338425991977947045910575155726825231826620292779363654139230036503648269962504666602347593230086386986882220513332784735963913925481786424159009742067410254797831641202570230246413325595670366714013002324481034311313886707181014149004646065606721559693031999655743822715138659103645139288294883877837700559895294412444548633836162204209747780117447858456799015598112158728262414951622286803979097669741891999674111600399283823340663249823883810277978794225213534205710633866555568849120408965503217374311801192679235590173691238777566928701544511662066023730678386497145392111149368611707240385032746570752240831560514672381174704134277782080084528534934526429992501489806038108047059556664614412212112020326010050655331566369563718598309098202300062732980734111844079980436095096902047880681211115864973746543445106489763910074490612403976277507982967321193823782043077994057864002904639877244537551855228515569319577476843105386450178383148445873520710679445167435412284033512905131749222671621624942106156768570470587154860743613632294851197571237663463730185222583765463824272612162427883986023134121951487117970711273950077933055937250263212994843242695302911265762702451518176376842077477857751511107330225860192473175816352052172573037063926047697494771894472828158033403474352236529730290581122898706470968690861322527874590335796929752231072096383528384270843423837643981737562185574204718178918475631324916985340813083025548801650714371014269485872816845345390921783200399572646605552239566324796484850888273063431267765065799939483114180345470311832664083554263106985049270251410218325157741392237882693896421283329074513858922634120959633805210752030074787924851191775563231885370125129553691281896336050560808958162721797763311011969213267382074193923957991759886146260969645917425672396999694896785009919856204675522421704305645290098994679277548533501653529388248190221140982702295163247726680638685738300530688213511435923167534153567466999020795488076603791117647782273474562217403578739826740293481811449212319713153501603854246024931964525531404494424173971624390945544725438771032850905736478417751252697090268588670181187495757558987956266535020514439648661698209599351740539363588203934141383686675069848060056305010831498434613467803944850401860131207820803268969348551667658488473192792824894005975707945095239423830008117910569726104311707237990999174856101031389653754328936965097038690896961571021049864492509902722097975918468411374199855320076433457840232052883366094980772078429457790148939898326145696784218445236374510924694696916991378868698095175776070794207802144110707364945996909190632219782753307614649951683951404779268987109067122665321527557530237086168241953018856569988807625011765993256833654216742125956378148424095415386159114431631308148239072335261957579354750239250144866560978318056829649799612677239464396906695143907224352803676867272770297944236951897238910753750649112670486655185599762494807925453895454407244646460017269327193437607514376619959273688978473072336925416785915417575074330828305086938677731547439829844906602041993340621269524667306387379190887332851969421706530465905346895798642581687156513258765772508427192805637573170793127505317887967499605569576360334930623519442695683788574257939649557878457648299788002219780052315605207532013996879406221195166854490246111516502798429040291937459215582999076297842964086600156106689355064462223893830472385775760145984189946417070666777912246209704129520675974051915118162651131883201294843192651792988544603404422304208105675594011526377505686760830712017204370576417358951053837776384523868324801948582677598543818361484273515601547460295732459343410122951862720635706717989071758185710146860834283672940834132584500139834649329910330121330567080889937087119095546727018389487139040636430857895464136333059898510004694232989174327100573557363636062723884162636188598188883607434057391629689217523927248638858507435668812427272198496782310298520644613815153522116196874022785942658601760119284434914654132892129342137319602785627061849304451334118205778273051661696297807384976523493588955474178469754976521392165845364663504415369452334965607585335822494943982006770250923735110570139357383155650468789161215876577213591907628365626623630256693240129315207672210051238478425032797846365035670041053257988872280986015386724426296678591917466781179459326290558835102784976612853909432022840472013755414345115746476803966792232589309204408997694914689717835927261438212393885098349033398973612439514846295396654435579284943786530246934270112189667803833612601339543348017457800642579614907404737218042933994841000761306115052727727626007704267102499430157300184608940184957171513269323326746523878779873760362932936497043128763765127156036241482200542544277698936162918810563260908190387962973553782876217171602607506356488630840652505130112964634614153211728928385821672422033814074549446016663358020945099566377626325420597780646565071956677660491742411028351213599305010433271648575995537215000304009178642899124010166754950897232211611412241293701946179481895832200042532089780335451482776238560885367131202491259654160766819238524485535156693842226334601064783877979242877081833441963122676646457144805180868957622287178676867528999926849106189345305291452443430460008777211888962794969124350608338150495466196677452157648416625749488171250440310152450985326465230350020375631601291065956830649912440306022169823179251151412827648758257703689561033430605026158867676359626749031046363640009930576772460887046902203422542933455184337835864912073231529683186124726787569984119082010290719225454732527683992763101185913786558272887530929824540464357379682465760736166007275106067836196875880303821291906818241538303873749984047203739023292641437402367315294954318402779683555864300568046478977446299622986994136404672194516191158785557138958314409306012316172502399139579362513922144012702924289922711452615659002302121356439379315301744022456577863427264799030804423408224614064485380440486025918896230870824164484408579903264019486888252980259777514195047051077630767491997099494407619507205022516780927177180627336172967212176549581804346100224227209128196500374983988168352258612521549446887354702942289146799800484120245637878821509316373443654776801753864795865599918313707929754635192925033735033833329011279853000450190430799682700884619035076053063680221076875770382226682262676173475129083612501270222896660826090215625550794679985615888869595674252677772584327589103380890057630991716609657814430113861417388525132061521945289293869234622934842819060178172086630461611808589834331899309361085532849894359870743941057610846895941231598332623949528063587814979799629970010812688754852302391940225545462445161959761466411820181350111478565103788209819114102382709849634520581385254867909648132145801945059694778733308889616061537523475229561874819857232723229840934973556392040516706984508614421522550093117589050137112647197690256369332259235712938425925869786003560711266598384170612808454323286330996763318383641175429403699740413207623091886849916551126717681340917527645742465038356239497220189224796199256573572361443561873927514701596581461724612421772634111157873474903576700168934376247336574747247550576563220877406417533949323566874016744198649649041957804044695038373619705357842258146383815430376050366716618942653925835983366296734056007250514356864544739056189268457645245574206345945369133867110027354808230862881634434668128116617175929367778210639350019672194928789920556550991263179241418236729796797176782910537737244261359041008627830128697286881698603552051561398202695929871225004305345226594106276804669778360349575912285861715693629995946269140056286504931411113190987261769833109491888339741520226627527484545487476771305104174283325343649254800471223150898933034144953782455169505214029544533877141080927626513190636696633696010417988091933619770061907159148792262836877953113311699688827310339054951258792917958383463365521817336219639695614754597487872203290830169462098821506180127296060835412069287143729862792819380934139803364782907892335737495514804680681300555949726285546936629457814047169735105082931462680255297630681158061511236326484324337061002468914479120177736965532090138453436506569120273744733675880543812025361710288319767565139845144173074884876586058970945470933922421947285503439273441436755304073226427561581002483381726570238896487782056295417798437940263401609438152528170359492053394192944786167017973524553407175599722981120578736312707319863140189353849054473547941582570652380033280277380359881985189032396384604575162686384050529740340843025581959930623560032268198080565443205493735866471361209987209614783416439772007623525165435496711526873887293904072037581298476820622062270403820121130031628237004959955807155229519413924992314536528498180888027860083061834252733023219079679272827398670131420977179342711997753272422709292384905991727567604708669875794004454521129957006726586781066986423234041868998463300852005277568645864453004292230691082255764354266880134655339005280255255034666740950052968302259047338888438851946065116968449145277386696056000264047550547598219891717074241357877974356747782397926170951775223523878549404241981321577321885809490981739510408633571017460933397399482341490557136805653922440545236898174258591101625813683203854357629485893175507169339684594585246521548181268294580554347120451675782292165655765323755269979491907790290721470028945910906810168547196009896631552040764770498663011626777043697576209387962244149555647081533675465171124525494988448385400372995438064710806665801009423348619287162930431656995466046417008568005039796105165429178734958558588180100165768519227806762555798947334820995682200985243031227350395710466557840236578258247950960305896426670517862946039737782219087772850409128779516423149224122765967215463169374421902685083707923175763813667543568478905855092625087953948288887391460396564827156260615120481975442813478909694577057740853078759173978907039057053839987333681580039328169198023591073982693187057179974660632782058576913020768710175899485644217763147436650422599326198878686457516215193023912546227154248929699151705433554294914156452671016737522051274411770031093504710379313916560998319852066708596947123761599780972443410475283555559106086053578620243535439119805352324623001328120051279990022512338672726675167187182943417110817204186923827874593825612182587761590148167549061036124066447016385937668947284736889253509847115997647196102157216445445734226196433958807677226603868234424328201185610510768033400138490040532609412741929203330373631939193940830400365681946567860063366325267796772274006410120373885250462179940823896375942979248400340660099179074198383409263552639198328606942717684890896115747068896102981817638211554966822238786527183592855307521374010080859029245912696076775063907125551149397955215182604701821693399551582962811428463748590043317859709281742243338050016720296355407399523775914068564412864769383082126394615392388613489409679897402634838958947858990496324243313237924745260463500886385596307648523733403886686691671176208347929808628158351423059003139629253413839579668430650079670560148442358808353256001147721381836935906374626074064222887599529394791539572284979814003842690545606986553796880045262598018410587831715751876359456881879851635856820249722491882064130557916609408018230652700030569937584234851808096793512587292652446622028434151576308245366400575983983359022806103571728929471037241128133230324134041721413645231389065071596368085886421170628880360388281839770736039885222605389295450162427632713082101739831044854388795949595789791144066701115349221368877243525603740174711233856571472716974640869529507832821914573890950760385879831714617498953147148132958875544916403881642056047481590725876741532471369099558903187802766649419412558224528361885024562097377963382735944935034606517012313660740021915178042575878845887029371478464495264332621192709609752087883172705743055656069568010583838612822887039163172442366141618783301135814389419361941957145931187323281979730264687121212303293559615092875124613565440677621120955858728400720431768209433401612114420109146812037822703142360090996403780978655611628333707249937785328583291159944239190345080740002069568531940313412637770942059275297030775010030416821275390244579151927522226074079162857595226243562630118501058551245006458317592469112245197616521045676625453178131768299779127821512743943144431883431948558702172128021881386131950455115371350708759618525261855078830629389077347501759080694514738661185199128488097872371106798719654689661742659485053784767099269602583632546069612611599867363456856434982004199496528368573639379515397801021126889307399273355280709533904194966152056901888528126932657101346360501298086359459553813739174804710369147511350113100342671173649833460924320979011367206017651212179160186640892588655095457359712355774308572048893372143544765618103519649425279527641871738136221125954230127709181658980510796714370049318689091954091354129263707306782821223952512084970321281948967786750610631691683328060268480663141251237728263699057997224019667217468455264785273052498568420378838621464637238985060921726780530316325655283998350475932972649378040667851366141344623824792931269244959140705664003948545328649370215833249255007087880249927819326904045000128768331743054325556999624777408576921810306311158938010683495286341106576601994438977064599529265364479274397311621118970667524015383505701806315385199676545267715455636107279367631537591934504583473024743066884559431436727397663085501081523406011762776557076485621880541966568501307372991231616882292568364590767521177044072521186108107437609155450453863810731880874454333843889164041047553257394936899095508873990536381757013819878346222993692167710074271574801450115974438148356253739238073310445271174209712029684304773602416484495603471249558311766994433866621951198671674971907729161510209088287938118788666825001798806194316766744089573966556055883402827450785823174622289299447254726936042438500346314195068071093573307245507929112685924277349845918430508216125457900803566660359494447045215059085982898823271140694831015290978419901047780240663733889246392696304211202528387109477682449472336972802353234229034926145017443401489593223646647487900057172870285542888434618983421362761727303835826107308305396067706678805543943261870300027306156977399896695731409600768127782672239938255575137500504051918186129340260985043205113977422854305276680471135317459587438225800269675587368652552508755706740225846343347643414589916113357847654221490272852038536704036982123896992401722872219757765084248042841005150820970129672304674455867062352408702840717129277666951976138428280063858469754612397791596252401046797327462367406850804330746489479877923398796935120061284320137290708416781208553559310499112617422886036942170690778250841962974961066867832641878985807843892374517397026959255366643017316086084791817723383850420092572477092299562855877125271294027345986842866231939629114234367577740193429675837002738709797111215890775347396577461037797649164370697489008628955707220537100022962686629977701491653291954198193737399855630145900684836566136367288783997134698562164715343077832265123919351733326629169224629774237416545350067964600248069849814710974694768343125416780157347683641178717918505076294925372866835032859919062681981600313342303003955051221021425670699111214939896305082786071562780050209928522962054958340222733535857109638695842674958822131709836394659456738462031887859786137897169746894946102123876846911602277214760664504342004569008457369382702818881992499153256674986863549656093978585499907025442922961777625740977949953863150898311614908649839033901986909947984211718661028377570631097662770002953773028044035587366012346541104068360920951617574826318582188111058345550761284538171845618514212909548468913773548462429659224838450930692743351074593363690565121204338760071170154141326101481012796248002546441273180705560516265145275187771718319173786042749485908014177104361663839607950665895920240197831360675863997803737632594608651248935092888712535990401359329083183472908013345377371845613939550227154434568067867784062364089374703056022144091069929045942470194207760476502106483772340019561049849122697203370453513424660904316998366842961526646341339189092174735111452357634105441360074514243729382084360696001964397655056018524997002594150199327006784737144383644593922052320387751667029864051903820170196388993993886984465622219562460323464549027280510088251274918627965577223388910218336034283547315653848038853014832430080678019414096494402045465696517345803017870991074416719910411033051422110798016528995661557499140204010267260482205186778511021969724170978728029281554505813001381528598958207550306290149911399305343114672309435529155904017353777046862649704891887448078276710369638527961890616361027546798854618357046125401120262166261826447581005216331863574429442530220248513339417056948838885357282932275070612016511197891599805904596802185517200515086019027909455268544582053650145703323444347389244777894486569551663151616543581309634360910492035616244888291177820255581458589777830471558483774659000760395380516807876086351980052169613512755268831437404898288498525747999781223864963091625318877607917623973536312803652374086958464292516537137609435183878861494361228371721697166078347951586690608223651276108508380296925894926883544783997491635335786679490961925983911547269611249279489740096339349700297638510220255251800836023404026125200779836542514377145827678233187453726063775569297000693552793104502370127185887909271321968861367763564482799254008119988915544867300387555171098130934515070386329859552823665476111405320539695947485483078986196806295319041628421597462789700542976388663306714110330230908496043203904472009087677631558392493869049473018154327988273195671336544690869447140280447048283763740603752113989487253547982891098898448377573133153166901805805544416858699648065556133371030251255564064074341325595214380210505709631539320564246695669459801225299456365778849277106044540465500251064459910647462110101300093258033070072094651559305100292006982168602835414701499428333418071641346014961266272039407362574578843761144599068694725779537800674938286991353603917658622350315821129613200670987477519219752197479139214805513948411244195365114001447240509551946740686259000368640836949895719569656193794322415557368774724655394102976651553852837450334827661757777895622834032888212529756853415798475802034049335748207594019636101876700253996875208956951833716280021307479089663040587305353132365305796853126896671509901321621766277960740067618246349601736528643065004140701322867076627968331832059990397920088894872716204729605117067742693891235141021260557560402516240088717809585188260212038645600024462345354404195164719428796775535653362871441105815784350508662172288690154853003358359542213467226729000642390330414365431824710693786888982294710311813344822956269820346622483196523106593984154156699637098480732924523064922859041591956924864832497477837226636754166034623003786376962082446133218245658636878410759605542643344457045990761953263497242113265197474948830834036003892550368160286054797187920232964728491563683766044654758803156845156213361591271986228893671976179762910824707939704620177725173817015871452126140900293149302511268660321943298686794299356672838421729639211803972802776162963796882607757514650641345198773310343344233612356134552251570372564514956079149575971992744461816369379666342330268922659907307982955940518567961975151194832615596477710393009750660309094968811739105510048112405692158429181929899932565884999342854962049074235090953263887491267993307978542762358486682329692732168700154718019952730985073293929364965731443413463987256570732853282865713485475728660980162999735628448433424525666189776333055047202931815625517919363753349242676488081400409966547623893986404653512136906106308137119664247731248081855123284268345843008117204598556524836600822788876883024354430389175482258644030955539284527803616161658976481651335358932505757014595956455711267257295731209908002165256004174372403985633432133171297394714970216005081005718544571730509421482462341930944492490917636156214233962918914558723960544702611919164494464740214402361813307388708477570972077693057476135503642558307139281316649145467849752324989946381002587211418416403638946215266453433610666198865434758175363238097071475409554906950620006497729876338252308431129265815105860793806383966488333429083503398034576813554569243054744802582258593578468058137830245571927907618529542499377266141956367125822323707831570216465534291981215222558405487277180294151722703175623497358379394338669739913191979576645919066474277388938085363832548748674878163677778133350465862002293616316271940103031264567587506167785302895650711310493800475059038614732363536972817278836537908729679195496379666387041350099670173827563888375257242333114383632923885829793773996754942296314484682707941439807890284133634824977105401512160964797793718908168412320862455419562406352962264752885649341892596344853453456948603250937977929654347568962592797357145974790304179903002117897526652173446707367613380764150014493693250296741866136607669750762560125200746437666630525250008311753481780375513367977222640618028378449843457018456160395088817039876587008150422324118997767616509170700256664734296832923530071985523259736059045824857658735509802956773630632559765127180397308935469862536548985679734796636416692204760610373925924843427192804435249388978676967562869970355306368760297121766503534982957806628011536217394896366610496416361341576349108209522020961562742902055915834786625463215837834394556884694272929584003629188615035679191216165815173201907199843461424089778148933020940862183538025385645308278550356206372120514365837873580202769331918184995484294876908039093123774359158894801422446458062978335339364216384405206691126645061598714129815883640200215245849490074124587411138982049632473067644804579006645937221933590974597021434286230718391219474940299226575305860387961884785889867404537360485255750681132493312284854864073613986322767110198621722150919694804402442185626436763866383561006896159647420619605370900578560211535048156216522511925727048171551371115851868008481908513965635069875261125870094082339832541411850007348165815974884994451425484722142597849012087432425676717221025790122596787934957264781555700642374527315868247615025345075951235334403485262736144938953440122230465860621497829305389715764748952105578232127893670752881816826699142278447303003702855969429247465012814439338005341194366060948330570601338417184260231988095873721002144720629926279275433367361570052925265746312502700870036897984835884953852107176051144205390148689919770715766779246058667811792981593734903134331649078163200526982354704693325986603711356287371234443870951236479940659427085674882503341411857029639770215084925576412108050026499424957812482127114226867110388336740382085451805875147997334178643458646538510832809077963297257396277051611432132972773774157302313429978082173351009280596676360309111079708653607436002733286980179250110676286464462000460283884944730435634715850550875998881415054849866284850924475710607839976058632045655173402859439987874577083280526264593781585288618904334523519695838682078013042383606174331683151416985235899750903913392249204383031186354758763780171537542377281464104631147104905281650471369677561380554253557063882272823091760155233541837363101833800830498501917796167434794898255091833011449426445175549683416641982259750190605167826794573434851207181783785246584436565740786770453100368746464858935001165338781103883419572778527397450840373440335090353313868557725421936836548873075063553039440229118597473490413512118560830982579028706324589271162008842789029745982629252068078679107900195055975956819062372840782559836768834544238011604901366902447357530839097237617260859327795228750324637059782095655548011629612484738001803000201110542096021395852445799060554974168632529566114205804868961220107644681995431745270548445513878111525032435072566042166338045456762578976969663991048364544239149657253236191514113061035848705776992215664363194942640073861791592755129259565917350270349468247220267418386551403574505418927296428417684239256793436180067951997654986725496193643631608175187468840616476877540160384986837335490732202277570677421919714208679740057033681864565965885904415709401452659431757224898710092268267207842086823282431089070568722471200849465941313821211444728690222205212930480929651090749590588971278944619577499901159653247043221118896164607979866074658349667730926768719205805188158337615388773012629597674284502883945673437000362750315784280934692141534492082334603014126358886906514516233975577516248253059227393098298719504972273921278776795806898686134583493800426050413185677656344012367432310983155111910121865427444571526972235630054900818908949767343368527272567790868861820056063140935390579410238362429805769731633859601344649222272781985623585000286612688389912114806307176350612919491725213507621702617358919052142337467304278169604520244059417195350541208600680567196894690239073166302794339119985213371200670141574757662141657706515842616484558738806425445217834152562599087551701845097446378466910097825847592581513399451340208941638464297003576623607488605556522087164167030449482399695212770328666890771474326885066747064613224107789175136493538907517822620798991183212913967015967836643289534545247093082304912985530070463494133634117234449742794717898013079650837210618698892399619591294434014451073158252582720736242346065918264904314790996573294436003940636540423581139453902989939722698797991409398921313426898591161957050936793583800026738910460248553226330597366921001394395625981948711759933495604570173063817194845292667441708667634073334051931986828866037489891371737139024426415482592372483791599880165843080166465071044957083331382413320660992321923177915491912791096909052690009513170658589610053112256832443053458724347040799574438935654907443025630382576964103865487762132585410726160096174047843440084932386151591137331307278609743344446750316194222431554876829984997948956976410059833266228133906002915565200311687172073855699463083215962986710174866708545780202599275297641824559946302623984705900674330186839486766342836785504281607851313499249664621273118733331929260757347757008653642212892085436204907474768080875094524744348438322922173710280116521176677121653255645307800870570882792201832876697011750397490401381536798277519226474120725476569289247437273538479213485587738765204430873531256424714556266813949190782554047683295643692676649875085369176326120721086397614497049714125290315521491855004199615764988234896241693923253389850119307841219141145475806859875163962510876253998357310534171752279243032863081726781395426517962643969890621410278817097419691384928277810522041514615742894413869695386720871536369899424558795255665560886386141932611224598834498874071845832475472480325475765461476805670564673150328013057362376121029281349111757695843785212486322920371436457064842120099885526722357268300936914515930410701163906544328401245020221824557617690009308823214286866254782944187724330661668278796077229503014449731461769310648802290074017067387062299256651346816087629135577841815942520892392091347869854065451732643769589606458121789778140783399349646310860652634158393607214717786995360124652310919296076177327728973381932209630417238944987846462842167268464933419114556154243751841397365698229824198535263723339644939286947247229393618498276591841855479431963119299817282226471424358529165938357533360313257467387280119528504644880413525904384000980500558113053752898062512712872851816669341801537590632538670742740743613436459400108468110729944232635334260689836625378400122524015382549708094543247277296732878088573844414697836118427514464411086509426170919894856582539040369811851698471643219456831211648691033600815729849998273075019382401257697370150132673798362380664574479211848843142353436760648463285536739748971781741213659583326919849439895725104637838519178618293651998891618551825484544764022579721976047687906502740514788423982659482940562495805472300950158897600816509389931715323960031029778921009899545802764056052838433117122352237913633572271718489164737221425315064611175499608337497160882117536660837321458464035862887035843133146331903126034786367146873350857289641307067071283401991752030888075625851854112464930511020778776346645414140132272836960714138167495059986618965608692453372481821599917790053652181182825050413208937494189466588592474053252201539992712232402109483523781816175000988620654297417030299595139515906850625576662868598100421278361725395926804072719417683879380475420234335685078641237041553186632832060566576294264712845494030343514521635957581774696851154318239379427227423364636152191121733786732601434120419678214178371669122155665030471247955885466868996633585185378186458932063421591244526853623747476621914456172458097617266121007093274500132813593676900220833262035201994777618944624999744188115485779433764238985425544241359280752948819344806062440809528027505166150029590243035749255031912156575073620595464097074500245347041465239162741701566849728214322431960481493432321906633514738515816980099783404087684112197368049388356572714758014685948599784324352306513557231225907813089367876096848623952397022112567889341893107184832347721113716425582802315429225620302913525974324044215222517768458461009251201148807465933339457525460275789605888735739272955787827501540584467315044269741869536471120215361820144816965408403482880581749541002240352933057482448804727739421730328533743500126512269845140581642202668752458497519749587698484040913067773808612565578151543406809842267088830172520563951626249405982627170077080388311226339722310365433853780113107585820873964389949181638008298130944247663458985633620088547121591176643955754876172892171872733161742258635265620531595266254659987711857990493914240920138872665517403510452881247133235707565313658268239710554824320017195864003034363941747779967246280078334851115573027879170711819043352139736607045043803549819072166649600909624699066705085540799375174055515724129838585282032688098096846718983101397671242555368901661254579771552936444693785349126131649229523017766965800445702160929237442129536142594005926553749544067701254419534140721988723351184417654378770705170636152068145702316414270066036238015029554121653191054895082183261995020540170488455803992699488545592948509575907540751571392458256583063847262016238260737130339676832463197073892401913666556793048342798810486073472181869081364887939773436164725498315471530902299159974557282822939915892496516470339779194084951453452225291917655130543079921728261673664662429570715451728887114189814054958399052884537403981490006116515812076506330611845963194101946377876584006166708469711391528698887806992481802951973108747022163660391861127488488675524391582713011090501403651938835466217278540546624563125470057538913014525642320160737828676819458783853140131685064809665284210642239285452774556048715923300559284918264681775263036731904817071949062828843086945426589936199849191647490547119836140794881173415765514809715330120090218040803363599101948505150276408286480945791704135112690838713563151986945554194623535284721972915330685487986774223330815196137068904418396742606784362108872224062082494980393845931445842597156661474512466890319908611825032045132309481564851582972504212079776944620231415345382592136224811350687045803663376937431022399841655496561698790476375219234055350905061893483430783671657587603243509775246788427994697206652055968627304622275602543093470366159870301113336056016363503025286660462623797887249329887485297617727709408847896812545525591982970126476641726323440452896674647179803502726933941340710044387066998617745942300461726867830643220566109820409411776726335937472749584943205908804904106550905686123400536897753056700058122415230934708184771283548995752724970996838009130508286630921459339294516104701864265740438826482456831037634820010395137879763589536695712005105088250608108838624530200870756934438385404336267357126906431593575863764775590137192918634093659587572897337536674355433816940481058963450587542336855138342574120881531263405496256132762870945485228844149341717341455492295464902892979008637750802175448329877299129447919648611512910563259128503323525592836976801451925125613209956836971329930585306342866339035143958988500078778138288210408975570179283291407681868879075094924186331374806262377150829119692377905354476766584711603587502863329737422668693857678508973781193925497714609039154421820221362469485936774147396670591221178865305535043442510429943186390155353610407894348742708542106890450279950652906169792089075402022126047071386155326372140836672460668502470501054690989033291102461719601644419621343631678329713670222925053108425902660205409351936418138142134090981493298986932109834165181829544391990797857919560831255390876420881385744705864364314527978248176607437668946712682556696646212716538241420423668066237565687012303589840497463526873443165834748234580151639472903626569860478202859597721205983365639801099039465929091347882137387061373244209341586246682527826562180922377143593299846859360709582818669817628664096253073103901729795650808374612853347127912856864312195553693799928712804748638414558960742765051730109149177204882309759776716909909379107543907258415563229686955999364539321007244771023980376907470292667504863507424968547751173803898000548179336232114161396412284780762056879867003891069678620098622657084945707392353087657421916986433202191450999909649549722092740799427144608677978356759331079329115163299444402168470923594907706556521864622837973806061102787150627386041993924281877020852297063699411601746834862010247561551433110629196054943381022156072361029226798983070174811498471749040487754396772248853454634510472164409874932165850214020855667376398251136148122026645922189292943463676325814490015951882549794174331456110115827119760056989315901445457509326495209914457347831167352194122772199298898140817745738632043757494938494511770234982739464291028040313811288390442196947884141577684663086602812856264986130825362062464357000618326996456793757078808334208477109683495071132666372740068206411559789818328537699089985398975486576408697934830204699919401893705128418498071946223860688512838969975201945580813402228552115720669692503948379520394895990436666243080548779827061245622221626027071102249873543774962974589312295633259324089776116082947305653467016655961910865336813309137464663909845445301572690395660159472219805922360413906267181118944866071498109156213155715967649443046784393844381151737427481024571949517674064105756352923635818080569981950909873128882913974598672639422465652253991432360908875712116061128920546843426195087204897831473928387524922969047498749420997853504057446418325292511050814714531266638488486527787611095425989471533658070328587345048611967375395344648219701916451595699851224803753308807211041984262237985778391805762041500625605905914328449090541786624218348624448071178814045658428440082528511938739416343455878592278646386423913031035607581183660129585872538936221701335478671723666306570183270199192521781542732603590765288754901862611063066546934753210277148154624148335269309865106221991159822038814825652159221096345176637901340164955082925067874063217418612385475636594620224696796755096888667357597544949073384798328630861809903939490813841775816110582011060487630566952092214076816811502642165525776695286034042302585810340329297975032201989203664012840877220649571312859307458714366422390511564032696797267421270360569906662186466506441986249877207802736210498712778836408887297365720583055673458675671634231918817445886651554380638921448290000081485784077741919260901759655305952854921022798088399924362284687314776290678603694692208475990410118712101476591206991054627793509668713696203838457470863033336350222340130792644457451124924925019638441738705438399077223473209750302319076209099393360438792383691838821407109439259501837318035028404690758678230415007509336288217399324400160662957466264731518302519998706064763717789841220356072618838403454044557370146475203975256001054609719445702393423813823374408895459338835119648385792413711069555624776874914562729022988592487970559635728729959782160536364033647584837796469092724699947341311095538982847792415091572755576531847834197684103855514266711842627320035293669005353077797249101416590713821561960225141292155352976915017116663388877642237586913593919807393063977366386233943819957633123155320918324386404077662447229700399559783062085235722276184566320843187494236693205041065612748836102042732492682263729366640522106464965919489391445049724788284237652972310782572785405058038078520514627826043594372078873397098684100620106592328266777895612705534381724247412532701299361035589602358365520459845284359921075823063308737758703821708273570790406913680657865891517883231353107844587035641577513487320966414235257678407373599294299639377503273972350519818674644786985176843205019529743127877087606219816779430482071218363506403088574563974133765179712938642519204891309007279158581664479836109079980303420183321900770202316589122587900303877922635259681341553860018422353916432935345444643739662058550597449055584646143717229206997963907166095585577798632554545789308462269322821441877129980602311179867088456666519720149749078716889257653468149703550098098155136773973039113806110082283964488918165291292045643389439894640894927889063822075979672615754177853711565169884292109181995430985475039562087909222834601548764377197766864338194410005595312485955539557119909855985530002512413787633584383253326937595844952637861124175259001452169709516878001352236285227719142806341545868106783457619460201307050122622801500692266161360184638830721393595057596873151582609100990135292292377527638700620133882651135453390529596785914193102317805701120517929790297491829003998405159825851789861734745870745620459702986720616771599732136639680926962296777156332795248918885198792004488660468622726466654896147644435279703603924559178393317183927928326342475597392518002478171144466763972696313831695232488542560286018360579126510165654431467028831643442150411691905309420681478227623901705115231978711979169206514825026198161267289072033024178508146020729447819681682876255915022318297020225811985956408659646403151509479454109876671783979827446670790256426967305239003982390619518675830569427521745560716385959911601352109261029839476646660568576022038026329312526745709729172815021170881521727501172971476561504432840105693607548546210427190193990583876611859407470612449425305402589211078563540520133217628889197709216725578968528914392069983421982770281457893339443256931456517168910203358133358741232645460012745430676600679195732759289393604041783280426830425081993188753177433455528423630271520844286520711718870355152460361300095825908357447343434707693529057665798780013728380987480911089055236449097221390122879103174959342946496638425321878938194913504583756514894328124750072909268119946703925531089492029263711241346570645704052277022085224401236418701398895718658251958513720696475373298187269097596268917490155072865168773596850425091612968660398035924768003458620076587093643906577406409592067750218746879634520351370290853138199496415090491781540712043080346835486193424274650326958964050851247259584050352726084725040891533915539743973427868586769102147836759497246761324794320890536022385418607277664503362058816440664166756065956812872353772434423790982704910151590958195697101345910139282810525026115665961554899736079198932578724988767703789807354347738796534520402014690560293640324280989956900622514592190705949091636563975007038075621549429438586515207946979735275603744371154907168938838287062487006396041686554311084306475852488902435314913529566716127083090302310516390987040310914614571317814739257725808538077768416584614381102388604645833739896495617421811448239392154837000445440805508608697917585690894121451875441569672428338647890367749629348503428579952560099172203788440519836795534523451717280594471735804532824035500645817756241344108330357366874605550390306520057521844618419523621938102619285240259644673650945887714745041960057980757566262368104546683675349772172429020810584173506934407470718453718324045388859588514005470637925527617604023797675498619600973387352693681175885403739810916563621035609798821561747729062320664721632543455473299015826080501325176413241703788233869403961545625401696378812016678780966582994832394966584816117478921450591923518045058049364479437753115801836108314348651930721533426911366288393183181522015607675763309308024228533447632667902720857095835962226796705355705552543854340378148748179618326980973572209936940398242119584549275364262145171688213163791306431191026442263552170607883637195499613950983715134784022865574541249639965119529477106256572780268841758444074615644648482230575189771363635043424724677020246226329774562233517584684936133772532980323061685894472998669401613985092337792193701268412760804773922792409432895613926284658928374464055517852945410193914799311477877400295151372470149105148272222556040920610826757114408709535595821327048384126607422808146478946347612186989261234550613717907293193731057911536282063201726116958003345063045418514254955536658375799468946291460598466368726572144844336229902854564788700525222573355990554072653629028177517647999277294432485062333184998969748056477864950119294221247574619179412550932016932770779584884629697125670428579416550288829170858248372966224661449596893563525459860514974935038150254430551654630322768815287685238435702638743290249908685744744892585476829626965369773218726689006698500790352004039645226067606059856570379217719880291050536649231467948714379604361892652025560353845996052867753926925991481139395313266535258483897842891368624905119117499192507220624387208661519239298579246045332102912467705306232889812450042648979418712038248552778801700170634600351413467165712393348180809934475155040749023486833248051225646870878898403110997229015778891241987663858983216831849537757047186317032530531446222087489050100954696471056894265429058591049680625003862201676672726653743999560103936681569203794514363467012151779483063420627821632609534511259451913844132655518773193975506220824432487944149530508215213808128045349850355400584014397416950721197366158812399810155443038598281233036793787711505742620861441744664484529805665601011700649538436545109964278614078840129964152796836702694568955176331137283887798799933559765863460870467134927836660251182831432349925487656874099652988648219845371533390138129801949934055625224270964258026954695933058176642201405394724675699156010132026406032157355974704722374600724573895410725380297639585193750391758575636766102283528363582650952646014311146422311752809748966690586693189110774983575551397762465748907297084540853792940020886052304824862680711996447584081581348653579932234846804381789461994344191171682453186848207632310223324485573016652838319270492523248369169742190678841612304260229455180804350024120684957467661789972811825465266713400621962336564240199965766150229330011592904546476632710598722760056798838846049268637721036356351163009624305765436630107049594492170411587255292338026690885767617965027301807720041035512696427670224346224395320080772647005145486563363167453179939198322896194537656290014386397776203900611135410114423348449867437876532451235669570674323001749366668349451350561375760150596460993281156733740069054335555132499901050945085818088795054240140262656138653511022037424321787690526554235094728608771295263990764870096191146904420669356262457179364752218678344712214129794269541808327547794076189973291074124560127071167349244178269655835546523945094319433208193593705786029702046058854501823495855750038942368295518508069839284941776975677000767811343202823019705883993442289193888984614523159550830587864017270378713700566856009950594029820162110652913921427450096818748166382784268286828734920456366757350452890742568156726203938682391746126332822855604289076373334329612437371883850591928971082153393718453276691551029215465929419377179077372928434501356314626672654197169408210213160722701236323195256969066621890205210715540717905199480638623561696976927957779412927368204573327660629444128189640994608382061984659965348181710132777682127877662741866977472476076928160375603052789738791612116928188123809549354555494556606523982362633007166492609465147172642354202096061510234158623983714265162998661543433086511027864712007913758185343861454404466171830161505135081602974338829882561975799788023171992665675138574414674936425117668424790278974053831770720927593163168941935849313400365617416516576731440434689021250909353582934226408639652143614936176744648941460536519283019839103604191687587681877847583109868027600984361780937130099388421717994234274649930067019370175967528100195582478712817738476195373328353513068525928715272937879293285006512655815782805038288798131089237722935887322649341739166198462169043684377174228460267138529271475081879385624209614939309232341339499291748810612173613168907650621933850944374358229498248327818962804959020974481800467451332868126904735156051476662971777733289690325952325883084453271430767683398641282657680858359758484634667426477638190185436727186983990779074139954915789458775277767341720704468283951555539606029698953752250109110035423213816919519309984477496147086164876753052536355335942038759173445735624978011941878424782260392246796430480877261791261014883919464815048227234590992074114400805596436063759088860014903347945201000343240571260536710255043274026392628807422807489583499342822602111181700572801896197379394106993670191088772225152334263983785840279995099718755666350576382295188860747114616367510437109345039994810670440880601325516318638011834934029675251904462834941855137440196476106460194462344244340319948558522036206650025125931197476633809986715079911378182774135412812437687818658005361952079910390849109286172320457864210263357092446750390454404784549520890007634227475155717203361496027354184479620106463911674830466340600712617563912094501252233024245371128574695261453503734364287198565188106948546220448621830841384061367429979067373514968540195813979111854999962649866282284794074337825872252689293405106092267536142113033987845000984536334691924103831914507473493293820582988889034754707606754931662972878062265086707038113875792899285269431332213400311783246791258333867877036976003100971101989536024051187640554060708110712680164178521014547336947548526225680017693066322445708485915767270333723416401617955683675921599192098838384081523204470749818410331649088339692047354163445794941033422678233513618295824893279318409350750654969107918301321634710667083090488992748346395247615853222374940400386762034935347018318066453603726442697690609507767879544240841258582186866626726396756113600495035889348678211874077691081793827081552115016961763032114335876144902332105712451602559820848612159327612840839911800450152819809799459013160307428558109501855895009515859250890901442389550505574929964907679257987502359200760640884595610017002885798508717275098197668151659712464983244736873226466563306737239074278125641033879853169116975800656305019348496617943391330989638740732976023858120978174036318638549044907527234622698777831077226055903958991137076766486110640655173264015400102610734487747083191523244717500644497786890798028080946783932195633738690869922912339294639164343355158789415044401823937551709031301222749877506951352286899261496113909605656736995591682179892413959944189962862091350724090779352106982365050789656894768450810906682902161254141390816878082837176386335869895858972670784498705531180235978159749323831849398203069651467250470638535567227314171787061988836998217122060681510893329159716122227695475593163418713502594810584425828676218408796443061422095379726692023710923999839226729490013077382498425098475934185550939047754915916588554261957535452035151920341913239312291098310498270509822329632621138910363768679775742815781953601306599754819212507126844052643197593756823521171427974072726679012586909312817100575821892632613940796028280055356307838846179263266186439157474622668502090839876465851576842111952968450338908766182320376028728053574775770343840724248036402288546085203793097548439893860710016268212025581337607859206386167160532906570215700908272833844982630710502585839068616200349516443235093388242848526336669119610874284626130578173571031643791090298024716168764788215067849061626350192259490480398604596352552958055826834603662719132036793426675665008438762142306994450374033182329210933289239737224196911943543282567219285600545420479460810964297803192471131349802811618353292576759630689717450705895352685554142677745482274065542059404842379032748258237121958813804521314328745323231336725709408560926735377031453584609323549345174611945920741781107703917663556689328610424701738767422199519585600631163951848111793449009718501243086705481957357347196233924641068634590088450843175174087313464025782499801671889381548348016960954280039192105758257551194892973409621352536652139558170471123301479584149719211712213298047055012954334917871335262110384821056026068385806732322846285295480452021194745688122387162695628213205531645213893459905017723108349523082975068478051374447019830795079216224397753718965369453696015907889945479215890830237750720696720500440693808404158710133555339267196539247046700851628630632871842461865273566401590317044332736794643072728463396526629738649968043955160288062628369874090242459101396609966828693976192707009719419319675230015737488619383656796658387882677653112954268314328328270501528634375791471334067103329495645198208175642587204098252303824121328415492041200598425588168252448831212030864607591679785745072608943127741670950961171304907015165555103624818334372270086382474897281691046266297017114672658502592553921061366319352989112447972089288444198069331489331746920939530067215019110551393831089943144436736273901744662581809950852269336009433169305552014919302367227367335689078854521509204620804169151821643915924144604656368769200399821861001396529134165218256696522717987230712502901877080011685728943292891766435965110451745773089354530027560378753989277995712596468224044851165914162534149548071673740175408795307134183763129994284380199728871281260682279775462173607918423287308451647247626527057196490501629496200018178914193665068209636133102835698537463191136341228549978013263271801374437573920614033668273607147618606428994279734251683026229825694086321899531611972778703983499432737847459881811229417657469093318725677866293481323453666924754832551132182829189450656730443339319905378530260807863378533714416214626745764813471159924615543654169810807748320223798213418604222152971842005189562171103780057083870636188134638108013318478936435270505910740461952209032990564283220305703613620370853151700066690044292869216912104227559221407932974746007325633501743500241757794885914990289948600106114192028577123721402671004999506875156980172919733697981180419239848872950478495965821614812671577903144406319016764960565819626764092918954232173376488275651281348018866313973334053968579193946079114679425343866806923489048599055354082639809195253218725570789033301763148412431470049941257284877892946286442456166455284888613062686867718683392832232208987230642814047660692651404973049028437027558438412793442813096803025593307080179429197262874659481892338660743673273296981159468364076925622405970876885564288447944721296398032389553196184395433162898580749913798903968855513989174416251923082656167920281810898260895968337873875997581960902280786279041435178715997378848535838859941629721610091961783913979567922085352645203137501789721900690304661918517650173731580690480550685299455956702736422311131462065402169247419185185101489470897570001462988401598546520829533715118196399658819938317224452082030718008859514167543844124477485800944806325516527655430681401701652240984374809298610227739441613571541782147014687832970692126648327037988657196688697759429449722295534780808080214236658340017607211322325112315002801544732448139954864926748783781318121854042430558513060947297743161787364139515465251871367231767316201547973410425658528321585082649862642309359735788161817290705021383028835759995592447031207050085596966469258396112764446884163134461521513550679808577819528613422711024513834697717430026220118162853695068412701639946361875159021655892953363464240964360040773150257925771127587490725742626268386584081044971365617127636093725353462046208001994205204181611261526141085743675294926423282545579773217967687291669975247700479133315677118038820737297328395530785255940622872915687773315590203513845944120637812081705407252467916568000153402171632261241171063133788689004311680210681808994501474203711814415399493727931571411190711609403798382945326823974232613869386554091283884272210156404015213820900802679017261341266327213979046791894083779867678049938732470247306875034151943075988861444741977731301149391708315133872349429950123929139909426392030014579119899028379584519894511644971338097986052275334607233701477498239103842574269980085742801946856401187008273991892068214201050012115967228527273586570132233533028552430298076728091553855478679097144337141484771528055571243107068399393209358533172773791167850342711609788293748746976446223012413885526296613356692661267547780642747051186236800884699820967084317548369812306113327334766952879402001276296049679143498614402184707401187095955058571705207118455822029537062113985952706356954896981635652016288757271399812536631937633897982065837313722335014902996858215930217112030188138904585892322136678640901469633663108556038659915073065600576526258258557886740096220088043717649597657686647224749371583270452744380415532720191283375046870548798333809795434767757480701101808593781337907275062785990827934357516117584397964118866608203139105471007320741682297985058484583471502566128794749600483470801872673506277908351252332956449648134753236636968194744152268869682406518697238096827363890561807793017254783215805392320206829389192128052915864930115936402184059115961001338472457648865565731722747424968726376310009260951883072212277053849968298476213791230756547291148178265528662859183663551907804571159582560641147059625095011884338584085992799336489632600645480302537455512740693591737993558237718302888221166126761578767235430321107459071213391579337796681488958705981709803854181173628730602385453585061781141813268035204848701017480145169877144410828027502691314851410667454960227306231272572005976021780483254676917467744989684528322182054921838357270482583455687841661908153470113554748088347055182241008375030168079194424052897350740019440631136444979439742454161205810915234125309311991573645162280681329342843505244084617700350657042654026320972304450734017620295058036337936803940642771901790550623803566638645570723493291445186121239312558354374627328295505268333945737376961944454706936915951877674834176563408426050381067560269599654948618603319447467826820623058593859974849672055594555886499133357299209660041807354401355983596291728311696768252565317778385590782303466028714483973963799215748151935419490342664630652001873667391436413566664333364614823742007720694395352101455316451905864397660014555422926694545318157416566581149556461930399858260976695381481114256556828338519151953478949721170802455761029776382502611375278571344385038841874101731723379087828034910053308866419754583867859287926758823687693384434414156752922751388069320480722499979286300262782056914088902529490904296790172745837671928216305466464333239103642743554079465286299548980849911620981804306142728777432270760404716818936004468380126505570775496481280518217600470086697494913178425589939905453194500705628215220371519254569396907346759778513247048424481927056914136660182541800754175084374679354655008771805404488312880893542691466699141238143876004063048854882765278988671373786383817473031651450648437402986976212267932901398376696737929715222135307269772216922974660156183037294162150663106752770707147878255564329444925376413432538263612076597832193947298092343019170598798211068137154651212631315885870974877453653812939203338265766452966410290573478238345393066915936385105704838981497503683064088876146486639983824238330619409352074996183764376290573047088160867684970126300665609360855949327497888069574921517084054783826660342518279671751832873654368616753020160381688760586596106134963317575914982555622495702192840229809453716532394086639761532314870831190270884096023497660046239636440245347891613438156160159560866004092000847718993456611612713177575932620614603774362272413782394537318219442209492289307909159022915539063912287697584845840589517067689969407315450349337350498689308048576740167724600981370886142394880550009145382357338784968162095048981337960905360691574064685959129779702953492215262583380017510798324159807810765722428086773687578161146591174053966425136988031306699649790792169006761823735838257783085650725630137651715715091532477584754782182248634306840864765820360144834084294941269680691084358159819062964858301985254384916270458708898435586064633058064591417700430890353028358853416008794566368610493070063539263656696125502888304077046610118281954667897957454886031095532956673614681923602369289546955902348847873392330204070999465741412086891764682318890588068455920239671831399835336517658833725067065849075361343457150961173225912187687034546150772537712359688128705453274267801242491163859976073667619286852514098945557824424052311005385650791445697158681875710554068770699280886784763681617580998745488422995161319943195237565095560246255485621813011585009910884241929458817157816431051712280443525447137634128266780649054829241565499767682185036966642462691166417799502927578124224762180291828343508028279264118532670138591134006272381239581733142703205519451754095974795689397038608323035280331851037106271266400078510626848106530478699687141136078392191827897702686195169071031832799667168629657237938082714331971430178567046513759977121986773519679277360037982265922251066912003840362190180514425288553559859298130259187392645893965237666907065137153240676486988910542682671430022818382823858559041656080872355682488681345671416617354949325109322766955401043302428640189386298596751784598383574457165655390746745398028231255254617718892611477553728145633794298575251990503244740035436337200780503841991522921122255746166507397448451369404474227114136423389299320103179950237174387806836149139293335673277605436338769466450934589321470757826851054593196407290714299212331581489611992116069665455689765153135573640573253741106952350221412159074589518182017710809121122078315786213693642464980714900796222034870128203052532884590996494278732269439910751936171314172754826335578595621052161397747319576737012620696224792107087331364154190526285687130025593252584262961681901301743726856475332065763253266159357889251018752508526150922886453472758443164125849766234660370156034206697788676807068988324918262405514532525001811978329712655981206406861962767222591207922316365301289285473612597207320760065839429546292951727812020693180309347940032371226323939749173195799408349209218178661573774834605710000306921584066183909687229168671514145578806417366762881662833505075320929424538230891967490520992674288234950346907145740329475118221858368677466738417619691848425504030464056654866622231169313439880699313405997751347390049672938280846911240973582303401274562030540197347193688068217066294285250133858423206038970868057793675326014856748092604191837236244334482031357296075622280831571058601128529203994585464164798402607626595566255686785230806876932559865362050293480565687631774835798894770584562933207912441596005420817518593966294081862374655322614738435164785453968537090180762511578410160818692381185853314735394220918803732514292816230577791337824804247065240299736677421860663755513334151136999105501812791368693426009202875984182141299127949611208021761704024439633795064354579396973131269834257824649563108252434091065118848059615740261485378833158537809635996441480103272516902269759432659120044005138488915843399764454942499401025795727522354152281030720624407026867382072007679894986183470602580576197649623228297053969827126626496818142469027674882454755098411607448765699269009603032627241626551166030451158338898392536087369798239463399372301190770326678046719115487353144083731780151243874209464056128726991992621719595410286397760375804313504622254964552648415747708520243056008050649812742066905647775554765029516604435748924108779105307176765335376041498237063773068104872914896281671934881633252808627857014355815775204915009112623866672722354570654456544084871648020150271168848371069933226502196311542385913273189489163797441004214708874573192887173732035019996323503769734338173883458568734253108690399213824402352928174015813984651317637977199505976297445027921722208171842886084002229109585927026289991787639456322307118364807150274174822424175398084261474189326928960494639380287856934070472138178613347514463049274850169126324838467051212374205311350109184151964667036328864470115641547359765250010257101413433178019042363512116665241225172294858924117398757247046575086191087860491504372569797324957195885355162848785373137480227119947513828191905886158354555726157201956467524251828485621992649422877632596493001616963211664511853897771569375209455618650062591596994118645494968349555439392128641567774998929036692170390220514049418232218102814313767183606393287576671463918548466638628682828293524319703447449973370297649658043330310912026447989742508496423760746373272807391936808657390979100670745747153616498055456871460196594814882471264901468094398465447639241478317700858969594598345667490367456554596118800216645896359819222444671291760208974245279219187125128865584579016843252451530850968825063333523765041036047065919850120139360725672925575071377756884036477183308202083783342955650325897108259461538103843642985056760996353321773888078374717004194220629398331114918578524402870758312363213546476869678534409151573812391646075210027819423884091058183051802564476440369455889937395646880485487856306531005618471599106648801502483460558815079543648715282310785854774431583067818247140155587308304269540039598558342784994728693064778609848562381848976642928069281295148967892131946406203756766468322138858356623320463145775657032230789746439769334885636835852260349312679273475932917794032379509400881158160364720625160558690071249744927073833762452338842976957954612574422262155422503014524436265646246876854931956238705392669543073360831534573122284289080846262304192171903897450426764644834467249798313259962520614475801521030718738584015699256716062051692826203134197695130320673858723680056999989120335818707493473438532700006558545030716167721106647310541321413400887712212759839069904858455045619358860288243025552494992258021846440657767058441325857650889702277738304799022659840000402276539700947928041145834826241449358531403276984672427130120786567050660340401918829404947570194278299298648132976611357094943586832350908905268926028692501706968953340334983191000873007033538328913125276218211460955314875437052120457118227059755048534930838543562515077802668710840437417616626017984845264720255502669566468078600794112692220912892700739158573311071427489338096366554485103093537610508374199698082742947163471891234725430172357528407342143153952657267868801126384805830811438212895479820805500343106393958489189614340138157474662292176969759355089690599580673556321410703925352914454483178717957528591518033130350506153932237718901831212328432165072542185121245988740631213139998853438169105936925305212151645805885139893868607342081222642576956864024754541328690994061230298676567631505935616948333636272851645248495766271611267242168441205148031328369697005784104731598981150218714069645809747167354789314386312256107250444327812700924191667052854326300764968724832839807945142624296120878733174925235486687178239673057472221084453861037780412087986869560200502962100105142581009494009466252901717319312317253244075253161291984715553183312552656702002760229868964271948940672040661279985809376690130455733568587286235138666877752210110879725326099444004900570933893910105533178773989842562283348031369165302913563760454757781558094437836018851101835439447363159358787478648901800839390057690865620110233824722095280259902537362107390280980040452258109282267513994185049920613473775455158494436542892489162647920752330609471706177247422363694454836185382081157307519200126216834137439554927822279960173294970012082550339597756738759089838478415789515302538024261455472532362718335898087586913708462058619714333236718176869634394083731725301907670935944206944861309948727733084360513237524231713577667136258247679510196076480846960413715985395657202690104756724688822394603235588159911825585085629980407970849843288169311895693979073692649623121124883515115261070969906073590608276267577513385691179294270011523656913236474482748211624988144516134257505900909445587565895773664208667697614668739987304788167871485552806790346836015220671537630304007624490513019126238430857669429101466254943174270864971631008486387388412425984410921067912964386400475200563258566723099951042970610511459228451042207346570106408437576186745883728147051526608679356655491100662898471000187798671985110096227358208990044183120358980108470280756416401711463534608867367589413283539710596217231793215534712748870306348266115227349206803068081147730115420339688363161869168714054431710057338188856377481830487127297286978935784888717714765661769010930548778054922962958416574399986604330670158835976820992914856782838842247754648652770025449279760054534810038231030750905826585545265288624240179538914154399076285204274036942553335538486041756610784241306712370037167946805827932452236360281512674289991272630042645577797002738404230375258968683743779848304693106550594514460522931266242347087897730868937334509960415292436003934708334813789064968846780621011311065574277579688033717847808688591155024174570517285833652054041888993523703970791958354146176400643291092674317313513410765922469273371663243049466316126653869791462397467532076108677851470730411337822557369800442919156619236649385883027323620124305644351365875950304690832649568953262570360039897487393008754069013664819798532941793978540017107372941066296244177589084063315452990138160599775111745350941823277133398796145588091407087363596592226396793581976564146097350531666944229484130736157305493724310138086029970741453970442585959949692116226785659433791853383135367738088325078026518592475958198703667179996847748159884081656836386027533123938540140772973085681514119174916313871250016042687733648998543350513919170216764978369960959161084463530255553812041800538131216868294102542216991448658886542560228038230576086287046082053084563937916404240457561155288257124414355773504262960758771539179027481774369845633529099002318602900935475684117417154786730108453504482457812586521768660669047268602883407661467131353818794276915709957605036736806246607701171569983419520003410519739691173972520238049169487745902080226803604717296369515336284443779800346549251523065416296755416080668072052334512496579742497025621575998190375284418402851719322142953253344281774180167556470539279598893227972400271104956141095955187162275980310777858354569387347507747904042339118806102440275948188691833921008868269021810013000958494233477702821816512669948638460162470051663772383362226887042818508743230831601982041441808545838516187586696783148840959761906801436509559670638930081662309254178965923562856751171547515905000808724731186278520556155585940407259915063311899833379980268916815402509877789291974170661705330803937635283263345845119142682611924736363853990701176499499642811581420568333818397324525702421317209728161192283129481485721357238075972100540955904808457006548376023070402201954168859245891305945028469416437483262919064708330448849357975577992444916898638968417995631835984274058605662402116606251133486632902953802067405047791586337790504366352027542473403464485760209338089119855586417632729262213561307930591058076899809918231645575553987357613017423637155159975671662101136162926221118553316999791844168850053662809008227936208697815529327937628796989491019102979641517290818355926358351343014267464187840153874227551104697486279057502484989201450720424169160679970242076535986064960328172128592542402929282950291592194733972192108348810960756793397748025962874829334765531467553019121608975845472446198567114914812307444623070722068340932232062595398553551967481550735710102336720354413383417307647387233117151376187083865273530749150948300237030554680308371960368802775515873978745364265620977179028239917083466430258273672389583607846810890326707518884097727634101689435558379204498656260536649977920176718493530668653725510608289463450592650350482085993039547311515822814221643319576211543236931997781132649293539568499423577035816933536566989041579137023232882510348564597311841070388976114714485334278004962661462774231751135573222782689273419826559214129380152035976749341567595928689757926091364025126072689869315241791018085316295825082167802679366208782895495574797853601480560114551451637881304654179244827201175285439319034041829134384277122496192216488548424672213706120403587247755946136472155952446808321346610637914533033671535731510804128145511257987784216405494466023031261850768538584764213347479778690180060280197332818814395479095814667019001389212983096256122817521939540566803781529981323002879545158131750283141796491338147774243547304994039659934339390238272053450587278878043836676822888793833578553453986297545502399849679159453760526229517866722278851003098171170977503186273406700926732380185812173411821513308052082658463584937050240103927215538977248229685030895100175029407699202637888124377345375020093297817932328050547088362629300377634806577081424071755888211129117054140101090957038200149949563772374533002812050519958860219817372942055424402872490505586743383487834835470528631573026018277301518320563260148691072777961900429315913252037319300554974035046382966246061171315373895338375012632578041441568792848960259718972578728118689175386897522166341305459753624146497069891267646386508222896351634941252099053522892688967930046014901367158446967454053475512853817535318497407175621248511633117806513821312101811947313097509590256255134507961070922296455785522107601425489250193088583207553308140687895814948600228445909477199925958331027350705533572791869281684137937258701031496689060810591089878108248882785386322331430186808634899851834651498670705536906958035854177123210579525395740669815629402997727676153936907454212020207841843549462086420446889377345795820199078399493534964924475353002814140872030006075035195617537802447141943913942982307686007434655830181271318676011236603943616850684684133191949341356557605945523012284024653283235624371221584293820218549420033496768275551277262844066108002001173271681296797048648333457943025831564148005145657569295022363739693582838965196143646226799246673441425659876009781888448109995524054968531353006705271723821283792616534177791713640892886491436517465386969151785253310463569831002816631056610087963009159498489528170927690711151735535268078649981955961900559394309562395288724744841455239403069459715982780357477290584599393783025955798788157092148479218946924043135894183953249254105218599809310804981567773683423161888777057660273371924887703737889213155120848648813454453364008838773689912049085496962095443448738040798503934588972517850300432545076298451806079060848684475113491600286064123833908954863602520323855689936096544772444053043372897813793490359198659305089164913400848646932027869899248384581585325243050054205014561860690483739443620657511151426753434084026639237588161555142811483795717980408779165591957838074747480917300623721379636032164662540567843116731789622750861506703878619308968327334177943151266665277192910624689997170948514433407830004056691775470190668587967663208889414492967070166452744929766065706098030300829851835554217013603933742642092675910208287599366950481288216189712593883979778252980984251812126347693269442185791293555347443567466504273295446899115869905397716645537269583447634249489356963785485195226138129049040400239582183595695318712336652910063589288642147100254736732122336964215739660052598347957615513260122614765389086407732543764862160210694900839756864770394645340487305661891111787209155604599909336690173214351211734224318217194741206783710518154950742085671401630315698089781021470959086744562038375058842418145279546075379390211439788140074668928519630597667615555810665803004188301554384473327744664465951777506777739737618142344215119665806199544832728386677645815449216267719723883009906892116241448426904184838645208421283660020995693261640050402614775437820129466016731167208474121379108085577574929914353928385887204100898993080248679872608262500893765876046954854678470555927756503964422903214401484251306916754985824180747649354013823293456578856112830694937945094235302461918716715274182549226702236323248968324788886552449490518470200291064684331169679912039917338481865699963440061521554573070602069621877820164716892327440171127723623118106594081042683656045503945050284276591076426881268856030003011908430160082029611759389056245489633457580066409038137646081976329430088609716576156440128017659553502043522923551980933873458291453053394464959307805966941933629653294249766337198387692755390545318290521783129992970731979900869318520017064360903434089960435121534152986754461126994191716395953341157180807418914971366374494550434623029152091635703694588847549454084707368410278961017365767392857572587626416367715625643003951070512731812140231380911955192743489353564990156956104237578323801452470872067038324447622527574456278813762627848258826219025538255596255146892433337448733643258030282801642614808471449192274405448165502618556370749081490750300425144237114295900131750425154852481325612726941390262124585692826331723375309644497108222044110350029046228242721665616726074784641397607881903382756858764220666887870698255782696045863279659580935646342461271912709801357332054629230343845201265952510599280540890467016432927049161400053138408658602984443733350043177474673127181774873911832970423261195969969667169399268154037957047684560205519450973799368434283270541115399512367897240979392471480729755616468819461652646101361734278739226451739399276423630361690839283291010923296993644373365778570051439554743073110976733584969162010261776346524603311800744657069019260819194853787986282249757668030075178344191623119532504488737048046951392744529222975528101081831806421621218662492333646937401772113453705065723853749728158294519788839070172456502552534018503708802260322787110613971165231682676641154975186820936018128469688610626808991914595256386017829378988341826902797939842261645496832467043482913436546343143696064515235095405256616022053722024328797946880398633770111515499046309576083889586281791232930242706099854102441032008695267479684020434515409227470601517116269630803754259197451213247462901688721893646524546185183168764223963801239667062571007933481230819813638911562646205818213465970388601321239678971728018757014891380059384584478037360184838175349382220679010299611535210641166428248068601721011808301907167669549260434219437861478052875312329941765050484803725664995011736710947851936927360384755356322189033590076089460893453609507351801219583033026375742654285073248564251605413581095649245063263828527591355263075038127949800349454101296551506304178230105013083129162979608516031597006724478298412257599714886798423765411557997273051768418199290939350041932746871366738349296746072757357062085257756902214218368329921908418880263223423785879055853029965460237278724007311189670511335116095577584413952855048809838373376803705708750347335020171033829861333828410948302316209723337298321985621723127256450970719610659834357008392585244301516942506650547951316346648359041521611840965544272171337935602420054788688346995713970257394856123132238763958925928603695186087866456017420043833571697388178843482951263369623994922833805835927929906400920389050883179856265486208248784394229180234100892424315111547311962378040046427326478084557861437936924091917059346475456696203548645047596567015105948877281499090923367416442642617829524581267760410002326993787614268028212500203868094753528193127775498724788171306934201496674832235959177680675907895603620359739647459935833962340081149035685533830510034128635366290487556741591041102968310354699460504041819690314711051738812927171510963202257738392133158660352670975641230650492859838632282679567338620108159113474972941937837230059303249786917602813253109445499580339659284022893950752771818862293509152616887434748771288864612980131457418143290064001208961332702059493212069037653998017132850583834180176759505890503640580568247021469104502367238440020363515596085139646566018458855440749704788506884741791912959740217397170039137058655549526890472651556180526559082980462672847854852550081694960419757180339239700120670637455038100199466001761568070065999551262618943257286180454865924415709142174131056848310302616402092173956090240127257353172697736993758425430913112353716917112042030609661064772940311837147570592831944560673254723615897375221782079900326280289187517258650216324459518456442759576044973238446507539293209268092702770703609436652826644131334369438086402506815266062110412988304805823427296829883227650840324231341484845664383199930632087820426525532492337848111495914177995294467505736905607399938402119042257742637052168899520135721738527522157057703250598948040076544608126197782222186226781354865432883117372911636004438903484170961722859838119519881542274127783719236800941758099847913876665788000214671262699463712645715199990532266877739174074664870971378586526562477566433226029903319479335153495370988989464322174782925944841144818421694410550048057495819724430908080050576268834351560411945344942382081690032298529353073253838391874885396628762118699719615972378500296151733269372012104350816905344672852269969983810722463419472914621710927240385254971110367573196611619006585881540604528618822517338850874122097174464290496323132421308401021037898731059370425672092124294036905152272913590649242284812045849787221772974872755108833422817910577296597074132104889404344029918178210735515288276065659663283907080764180081432220460396961913783207744406416713536145336577947856712970856543333644379652953344375071540482694669835991694794588849250432114111502708571179688501189238563730345808107532700270704506874669749509685945720534972738790153245022403768733103484354136892910493994712875378964463388558084421838347700454108160584421845900988231256998302234944048305723297487508569832125960779532566457370620494855056450863207914486294642447967672977721601219928251701627727819566581816051680634532126290926319308880939526215758421416382771040002674480290319023581486308385647340006648435401822386415332538050838920041541207209799467702279742762153878609984217515325198860097655008840977088405275861704440563566637236274006270626111783141819752416155274156142549640782238264053272755955950060361290117529776447810298221288581995995491383402982967862522639598158020851098261244775298645784811003572903299231077669847345051857232797364472211212548725461309974260848921952835789294386427329553342320966549421678386842809069215243782071847461055371426544630052059405146107965009321378969147452502209955065975627359134131658129592890743541089091965974166664978217944319682494430754939532773102723100797398137222076258633760304335954191638811716771396263525150805801323735752271834249983730753883411947863957477517049380512998493028324523672407844214599950307881624177858687395406372619133864656832669478855898072792903673277813932017058415160364805012356022742924951639156730952599745549615460949088938581656167675815113751835082031101175975818465524435669934036371281560033549836834298150911014442796023130299408805057249364874831698886317094280792427669153610002789566734767434841692665607962371086086300940261910670822461705333738665823602358468296838477246920676655177689655586313554779973884253878259600343545514520063792183931160202823231086657832401844932158283056985935446243046751484252551110810905975189865438158595388028742995523857464921797109749915940937671100060283203817137898496413032448406577841522927932771274315358144526892679127730393478093931959635782887345218569219650981158562895717134508321059877085926520863597687075143645579485795401619414802847464416762280253101154879091800190566692458560382848175165551658965078497012258834382390255311726200113915769617049574836699136837062067282736591804304961481550690146519651023580428876067288485781295231183444136304999183819443909173287990306835299926582669309198470199610253352833494139087990228177361265633189936791755041448962373897193624024048767415740005231101485835680455231099828796274877747049229464547310512857908313390487349678280031170035633135627238292297669757928412674241264492840869387729498929101514890910713537972747149899803192807416620007259098902223425949336750644669476164480693835529762862282634748614085233054129083354572589659324382022308029111617361365993808626444289163443860138248340419179482477064045845094898057265690667085629952103140798192206067823555915066390506246452512241688989808595792899127337101833629085312089833857112329121579604486497708489162951973621384813945994588313450470744777455116033684806025342620696288496119889290267410853492413057481695683595177103217137276914486810482244651451932842010803402076490387537491639234686538337119265231515235615591206922328494635091149159175903395431601522873645424531898474014841810934822381501910122604412892580090662730711818567475287059321856028139224594451592345466212703856584563483129619012377171942695788744845116649274089733263792205385138746707799913724757577095225595917242246882885562777069711920471349821461863617507712778502816257392712723248408024567474710951105470857894694145796772349641415456417779778280642843758311757313322360070783707050653316138400339124869198146647145177961874391937974619878553256268638895971984159660958374098284336004442101405183566871107056316667917657266479850507509375327458906746827730701549662641537474809996478104746363693807136262520077155257898338318633028731401687581237931798372928979214309154226043209648641234194608850073001541294508802133764784112304441136781727754969874817444470450921157259642624055026906141353350004032573100128257209385624263506064964002983839776380042412387785340688705923690312948639789847024639627987307133957278900883910887416120556712272108808337355041947945901461000423185587670727377001091779675548408152215087854066423733968478667035457171986209535596652953139352686915666945239898907344984405373586984956606831781756393608656008783758664286887440255246824353093361716939557692148302767065063045392378043398546646188059642120343218946464928421868318598305205190229358201022929256377554822620627767901160968895741533051032782987307068079221503799471709049156431079143282605982583381153311392976825462003174593782871979883061622696395652278622797251082248418476149320157797815253001284303491118083955368616699350086147571566582315052721750899047984624010134034639003261494524067109041465171121253945907101306170147008432770588896724694065430187609151323981216241548868813807018929813565653495950589507044100306831868175383532254760451928252658966178213653253270686658728933011373605052009855022888816292217675147201334880383570474915609565558486424784626651014790378243570368183387774469840639579485862142810292551563390471025967345228058152164081851031812668864541695223325695581035322479762689103735524678661051528540111055504782976620322706709292344898919514916014941452278248998891619847830489547388438436657545776065302603147988490409639884368761066335060930434874234613278685428935034726425465474720994225858404618993917937912836076504665711437480621394540825281735333294882388613884774756133740145686855447582734874019602870587365764936465035684637795446793966335034422585272681151513548507564741047379738119002586992354080152813711644247349256418239699319448733418710534711669251179188938029294368216345717650842674797624368589176619376402331590418310773300836240890936362150773721131019942858904878711385619449791522240037958233628289729547728960079064925597462563722547869216336249247604214102389103174679249148853040594544076355615673105771590240447737556908782376029983606961676191785394717359880368118449528090612371554406637597929902571367077406277265183067269428042744230744992364777092557875623128799519655842206816538140902458025448815328558753146205177240219647364058939095022993598421797624435351417264997394502793597756973403263061223857434892934600153523821494990197813132639413919943518670734099072055432917526031459343161326891480956554838097469765406322938274146680808064106259421581173589019360201843254722001778521895434526704080640970701247936031163929906512842753211396378312788958284067044901842151239416509590159056521885751746742243086201471321175271318994399845677103756627821494644825114136672281668483802597679002805984119091026055849928384777499740588699684694252981213732192703445289371586697379042519991659609583707999119573474034478847709394141730779298515282057153044715486490626571469363358223329008867110676365992970842033427070859869578411315004280153188537489076195655916699362392296487644618745639389162199932416052385779786824183701032222831263712560692849760366855215065460710331662096344689931249649828136545205923261846219086185875414796311867971530959777684133629499752564462716309810522474220141118815110897732057826099106793879762867716550306430039278719664468526185193439772323601310480355752843182582469310437602879083499158388338861952633710445413692866434335512733752139776663313428918175809865466130837149648466307235426039890784584540484447159590319730252680836681064614076976900314697696045747705264151699969185257815419114200173360807061139155384392092672411469263356033802251036460747827749620911495233496617165186671159957072743822643613865533702592463556253625800905631124494015646145720532195501317730554134560631068416864150430099722880446178476533363683297889308082236914296263673136037336006931175052512172246283503500831542847199388201374102598887792262843649385807205924846459553669235662244979440460668396079786881799774718845379055338950304827814397421563639091210964084233520664514776584351460276538169926203675280846462312251694059511331506172133409364282044823003665451958310469758339693052335596105650777481858773447937220865105011306471422979308108472542319342799746990681976366392521201601047684877035062314145507956363953093869994327659201407104156852719933575842390793031764627414922870477056258992736662852477458178515533916623052549037373498878345551132110079856028105163258986266726827045679136974650061548363303976178351586632975755575617847401597463489974706684416410230758310313152560723506866398471764274888973660702373024859155746274428882599728169769911997454616775377679797322857335704244236186650949294523284085415869009255220146879087728487301200727652160515604746133885649036050065676362552122233482773058468808049944838118584398379057850319077735552013286235995807542085417799659000327877088299881187090639848680922701763898458034238708309339480712963026530593206646575197241045831702926783162513938337773014731266362012506086608694399735712418024756599408939744196660392996396602188452935588034008077498031703409365755659112943037279906698718488157541137380319176229421251985080939297054727951783173946385453745232630214461199538007774598305401547674188267083270890062521445789308264418516477699325275885991168195002292931385939927549285928500194671613955969487078661308727599874762367257111840818087794378806940415097269749622362916668530931193473941557456153189060197184471184534153479541323083177167955850005873650700376380538073292306868581075472947999712806540637446404976748792092796230314413844040446361076957928698822015644487206120681539065994677597184360756149957334338657599943923405098208068263164809844065160896750662390338051604772278556363332544703951036958299921858820963242175575079754573252719291429559303557137127222344119987021500176569211460828971649142167292385645737014957060537174902661712416365245975207384065771366954492020377201081207759040445260882419996140742187866681011962329312814533663075348611529893327487394895373565690611025481342158589051723107272597541932065565085171936732356059754096507383234889526012050432370032562220028021350879420223161760019756595640954021251480932234824305029354138147670696217021897483818338389997728385886061230429902082913312273787983207150813522077353979100089600552694747041372493535773094084774308437658955632178151750842798321040431017448078026952188287726265350595410628545392826433863909328321566230031205952023896907532382252946536973590182841789289461880425988088524826318252617913314374912034555468993201887705609392126087477065277529330988174694215602036946758075245120752574465438303344886264827475049850917384062319395101960686406346602472491884070272983093305353777602385089598889991034115100826813506677314996902413955174471581839831013616901334476191656788548317693358814005975164854136888251443026844781014511828986949250545330738100681906595905031017015912183530650980164048424854839813794083570553454543363638203973356057295451640053935854371681532859944621028362998261991857432354046921332327764580943492322902277665829250406510777632618707941076385841619947691563661522272780644196347439508571487362203788716926317228680463826083243339344824099127326055560891429986623254563904458230883765735749719228381707656219235604205483787241135786422825394928957574553022889785657807624207651921733673656320586767051489580497197759933303452876367220743243490687727178078519014331235377627961451418219493411431993495125613844926950585938503745245309159895654074553839052445110629000412740091584912987357991710230486909167761093204020791436393999262888316340703141639808425725695091677195174899129034525407636964052285793593703191970453060831490673240855809963063944716905162373508731713084933333710652801333056431375353309567482533529919326160858584894614655027636299294947613673905968365562543744718682222999046214094208255733096175977368860235242615842256487967899966060282816713886912948959198115468164771518306419107579563974476676631291609395362300128255847856916263353206502685820888330827031198141108020462609860963052335978353791559826474512611119688432550651675346176977627662192625372713861293112887316219712796675232355388061856525554037190961128904802440332657712659038571396617600964141243105592089249298259475773904795493964410489523485534604774625451393910164861263200244771259921736528186549039869719963704437755080507228776172129736318073433921581048054059765403170003417285798770565681848991253199726459461513306356162552603734293754187493543218761466877709781867550492482284093238688228511498931329544404229847034899403761657282123175853926265806638301276046593045963540641595757240821206666970734859028861862212155902426816514354251848499464365526328462881290063374683352450689272553977712114973850808073342480676342360710611026453781768541684371927445579824075996382706483709840854471060135571378734013391020143029533182320185580870118415493232677056796414891265322071672758606506906540777221553881712828542941178031495211520484683234848108070043912822379628423904185370634092872420698746969939232407976709575443698149740427073260501855777428495075965165848509296390332632787416776816470981576842737445457304126523070591019192034620542837260960505414381292738538293111775214225333301657197061925709407380947523874681668718714282109380163109121177206380011721934589358177369105778508267870147944958577068964772844518684106955506098869883630585730050513315390809991550984370145964625823457083868331731800800851303767755771247733971551459941522505577338236974278441597005528674606309987869117953509578577011400625028559526735152531536381476708687546904911862813725082180231812159769483499333236886579648989428771213947149095309457610835304155416220772471100254855168689827047006762589715050593582437061971288143359523793636215090339392452939191514011634060413256892033296966236499339726192526704706940041639057788639319219656690224451473975351709878727809344307241556671888801768101113415667923912040109394155842464292487490968714944076049089431866938655576794849460404457050794308089850474210603575470185352465412649910499437148587739483491146585705304181669582615857391653673970792530634714103512596826555760311649442184016004069261278347080158927734677785976809712726969716966958683618851863649631612168828899619362677469205063581302574863743429364197466703051368396355321368614746996563540313609555746665876624906689623754041399859615395270172027053622193667607872784545294816494805205379647444388489023997170374480170888369072488126073005196783929551115713577215138726845886276170647224224419516900990342958243385538093017347424294901245042805604123460626965931137352745620713015391414896650133951518614474270777206783806525575566563878781110583613890231522840155917484100002996972821341170558728236669236625397151004746629069743471490743723101494553645406937975604682244101591954451896991184484562648502488735026997390764468052182966353204674563933223606691967633889328562895636069097145346500911478155664540393757463122608620446773137625617239688163084651619514670483618594939063257189554634493440502064717996857161323875458368002920805361307112793433147816960547885324764831581967261086440778580770710631155865221824051621421569975027066914193595346378190776402819128977638998739493501746290576318078208222444585388235508881584175642345979617269183444741302774360128001484000300530234659754054207139113935471551371196209452274611398504935419781744230255146566942381074967030621142132699129000694665932019822059128847166663685813372684755999206626639863583807953916120940474678970925959828554371170109174687789419363319377917257022393361777846556817280142360825734000352824381477059449509604418776483712366248838490117917557768714671998711610048441928462676098871073846213837040448851475017483692714606606578330093464823996518217747456903471355090927550743482775479869069393354712885578862682526843770977033667567455168148705972558014420916982610068241565456417472025482188036663870176926199395991056022860779511424473497696685951394988276415418149376874213107650136697577329436734752382463644682955894510259287741504576126533763132810466373137893381344378691878748296062981640195489395040882188120183733981150454544110401247856545144006498160648105717444961582502158214910333593874686771419920415066767360507919524411875379395415864174244378193708429971988569984280174174379144563413521839941475601299747208078568135076818112994893778092226784375998630161120563149720426834885528697329866303101275545487988345125491886489050676140481156701790484505153085491092121299710805263419105135939247644869858495581116412718697681993583268455213901906684186715487063199553117192340883742638781325842447642446818013754200623255844932397812014569730296179157767821237604897847510723764666681515356625600045793423139103848690490722319298553382867255145873308128045447625713217742880535937841993900301178504118586384513256156470344727666278090378308269435794364204354317928557707492237478944764777015250103426584363508328091166409264980875011824686503855517149210829960710782194061432968210973766780468873568628840483539273344512392861725151727645411086288717274892643393981640184503103056339573464762014381539096983337261912487839444073301843429121349462822204650060151639721752530277687449510031074331001650956108592135479918627277867543692060777247801334677092451151231406345998834598434234834760136757488722121702504746506446838005942255355359223250668755162991312640154052165564424511251328916950589197996658704443655672803379263786724892735746957332314407843604049601151881694963002449176466000678059162259997930467199837930148581135537090334687053866739839279975765189513295363160901768590451209815103634879988438947644872003976182646181777010481388625673424349751253316703941078450852123761255691756039162302519210307330820055455475706624738135285575584671564154040070825993817263263351819911123944070957308223823658414360194950124943444659014675066567201168025172657050431058591156709630844669145595554396219178095054540754335849693150697139737360679231729372366442670150576260031552816153284281752791727043091276435874983044359925645012054803062363520546719032892385738799913054675834389862277881440909760181462003156274277696441265754040396155289719308549516062157090344876590355938668248194587230247584741914643069787339396044997342652030022626130108778490280348669743139298816120175336756379307755383072381816013989234561915751369549266702430710978650307599388902086875873900369896858034637835193391926770627458718085398443391816158857599002418557122119560280266731024474293928185078143484849638931202294135001711079906252645877297064287392447283407789073758462102172098328230771911532170974015560739387453572860076662866396466725377319541750435195461538845070317576384722960553142415540526426546465442657456328863153926502409224886309300340821434707564970409224156168752714075390244674016382449895490767488794061915772584565044856286264591979009760042758859108766776911722950318970068760232981042718911387513776626528384335079454302428912774458981725692443534891511330709958456755306343931754706656334172030112149312143791780512456701087756856614846806514956556303459318941700511153621517826945481537905054249755981319185411336185085482831822688403828168578742191061629779476922881990582758303286247414387960052761893465553536004932842940524786330487938943020999180518232740258349153889807917931837687625561956584607272233572798878845706260729736251274544996459295408778122884013822496379680766337896104300343076884293611088934208032345543941260976116279847509362901388592585402120287603206633529150704978575425577592444784686933746733848696251620755822022822112929982828141418804691909763009650495952977625471220463770063282251857806770404361767174516112364518426998560247798573088519234689982682564368088053546163192438283695757094531843327485810113173461967069445656921339643061004034585759834557478305082558544901230358480773816736377985008513615787923296980919833903023007900686188921432610543270258945584070239758520506540906710895965051034763353682582786475650656577435060985573855371495102299525257667591232877256462252672326066203674100754849080744501443904734579041059202329619629440396704029938076833279610845183767327571134801211609234876072845090321138231752560781840389186303471030520876437714453871321450789767122741773570662253287462447941004156036583970534378875181584696908267838731080103753581104608037002345895309334981854706911102614212641057723504296529801376817527313133907801961490341969444941894191553612991058575692642102108253245315619878509200401114258305546971392802031088693622284627862539151110199703638429685066001132255209360522910766313791685307782095952306777768561082601504164246742953317449166641187271338164790952389535519789108019158567561563045117807198961184266458834275793571302524351953493573565869252425098769452537458735525825579166600303320459776377116455760663218286036026060993266231223282014405212250580629707140459864999172154971488971189896860533947024576695385436332163981409077986168488172771880437310951037487788590294967871832512174675610319120349798406839990339997479609827932439680533331008743350423964167821099340978967621167369787083681015133216173109242861611954366169041330300319862216711704815047054323637531343719842591442939491467319108267881428951620090772178927344052727934081299271542640152005746507321286523208255760666749111010878256026954955451954311862609894630523593678650233718472177273494038981235081021670236331378851054190274551356799771992227948937922380154870408505805978814377862981947624388234062101666978240756600866882676923124718986746528611332144032762944171657339189926717126029266741922940351805694530031145910761664335141662466882020239980159018442209908999776397868591893921833827973354395100836861763077459884956569228612920357501057202037645665263074041529764921712691001464486743871724199318937679162442192570270102618485031244230027458745326082157105191695352489753626446851519202832016999817871222983055676469279341102643505662104974606536044983411454801948482349445312165650568435705728554535351701387482432859096858674064356130944002906211626164533494126375770073966149630117404197391768537846533998448144155181776880955829424255569015774690318034155030342388354981885972081725476219760067884465902856439960046584433055926922944899294167689496927844575919559035852831632162946160530955147887590132564917494158053431865788656274528719810797306646941110006091237735335700101185760077284619653680676855774142142700919263606404527146639482148925891005273516862561587337813134298335948899095562609184810893692645705659750894163455739536156986432958633336185957154553425929794994840214100986291247119421677388308093636063324641088616362239273841777404457238052141594214319337098098344305729928113476754359014106789842439724032989122107545603453328371221569410017274660397419092111825710268846013017345872184054469293259496366050303522760916040356540173772009799068222201537612309288672701806004790777519579554937685425918977451149770648497664326350826252673575121230429101567411099178026620078790031218230333215941946492476518135029602352202815243435852738363309956940096185047583731505441697159328352383500632738421903089727291501435341932922946804376231263039783708672614549357918714183148362062064092289497939336064950845153464953700113082097879396705304839672939746425260492116337177724852233218621948734722928555570366014754400308800550668438045574571486083410234766364028291825019425252737212420937497952107809750947522460740479487614801444652575190586931879344761181297408537529629993448517085034364475698916066267695419918420843886478436322907310994408653794495747860887143497665075218685743112373749032448467901457555241228952204163242208669683436460979347678374860547656919689499569424768487962325540414811499937016617475358358594895734631787537090869888928076169647972314010106817538643860590119895705335348349203604738990217442917464324980084638370000968291482724815259068877200866392009316146137907833499894820333402412684385666874347758229250094394519420254920741998548267202841806536518811869277081397771479430106533046014816250282303079164684647625775482245518544760316470638771670312787013409523749413343404090001974658799180030512153251389597936156790867279044395739545045873357732665354502192665568407712977542382792999126869501385454559920265782132581919686957767823406525203008380704755708049031970601060590424942198219170956300798653715143448181249017360322771929287482980546761546370942198793188335486624004925297492767829224646861477141510977158378026441661294054593594690293084579765299841887641134311140960871064465801194252600105517168879720873934147987325883076770763220599269810220649027305186830724185110555921338506370765410640799292038392083716456621113752502556016541266122752748722600081052683840105947640056658618994027252521647163927206026577639067782912554030077005393597923524442844918590725600741517003950079228266935433830591649662501246474866951244190343891246253219423308705544579590875634811610244762252131476553117340463195106758870679022678646173231751261598300347708488365314791035754449827723910027404997237068327352152334150200190454014735095907171440227064873103750580278535192959185384676551097950167269714547693988492490323785657121305382465183008996499108203574230616028976959566657413401574519280336669837327204858968373072647721123042529713957315376797617422855626011976663016222433873225640057686219110613742157230550614917839390432762677492459607217586934518816228353116439416306182573456551801960105476275349545648390586839438685520033439665071740542304540120083820915050461373616326968689176535450878492840809730477209015409581296860792549223019155069060192833811036915931663722984011412483819998559295623894641598949375872594000982115372977797647836334672281109221860105282214791322848801117170149316724334258409711174120803187156364803091199466113588456843248306550544310703823535999308393534432928557563601877797028041036237974920670572449039727125565273931816306346251811546380575215785794349854753096502495934334248822893370254233706404772871956332662050210824657770622297049328100798877761688635908544299829330374583113999264641146222055324781390971410295431541547060685783780167840654294425809443595306623127776765854694628901872569690084805955379774718577675467136941830937118323912512556140552510013658594398492291626715282926341318776704750496813014851912456515077395668430043767945289138794150982409931552137446957423035269649617815530774486635045854513065369137902154465630460126179184140917788445699315306655972999846836868332374253116324830970931094777274262101343087090636088967099175051406769469522448661892846172270389999207967553303507841343280000447244317580452124058868249661573598208561908049049745692252186625936003960993249598966051612485319906710320627372271076472251714123161471494556245276027029948813972550232460516130124142063776233015103027260712940267733370335513334743605539282941546489366654122323918375540716716531548913539583837098910693999122853992732749102076112967995987611468115214005274498494535959603885665329584009856785214773348598319121137546041596083362747793139067932790504086329646489427085459791478488019604705080414882755238664344809580267493934069989539289701985886234722635969684590627139861241013279452933170712485398684380688491040233477444403460943003753852743050509695229877240479445381512299196176774899561941305653439036644229310468497850082424292937249502420817831770024206556214528705267047738115168081704522760337262792615943553431664623240444772447397792737359875419246995226110391759009566857196936236943621462906913665817224616303681328502922219032926651704414298377427206949642480294889088528112239112658451427893988682720682128251025556114312312241008075622038765524295570812330158042516358087153385058698960496820634641465089057598350944161621535738948062585904336096821394309637876311017866461902322516590236355862188042748263017332587649246991446404182864447854083557444335154117425162204853191039046780173782210057929438035363931005161291548097262671930773688496449565081915911194562163089145424093680164408066761437465741737545805385905093025499634205405748599644777012505985830872067686229344979327075471640439692246121211208058012604353528228096376081336126177473983086739822145785584679795396882046877306048478507082800637482282156457130373484427492770903846810217252153154869176677039272484459820170202372096825282343456283600679762563715147095821889800486936087998625018769980848087710603993986359845329981902920589880241542298727035628850651561589004970013068067371120056273603682334726012006513738460614403570312219024403127028808693857493099110979327722725596786141372760968609470746514617598994413440756863134408382640299769678941340973946258101228393973512289522003764701529703093977205645469672793594401248268805551061403441713532401695169191965441904082725972769453197062174163022161582879278438754240393509413109520045226700182976207033653626147074752720176576232777206882648680079301426769666023692878093539974851225917729095979418290236540244795612455282588107981155537237696195458421792868259054831233380026046776462142549813219410535187395676299339732125168789384120934195361237069747394885381073103813399302290408523922062000819754433469331233525775030612311043598146083197836902453803783182475441832922603737238080649949381205554533671103403423371111020254450934201579104659592786268507124675910055578568268054472534615606511604580572690042782408487808858775767083209855218873768290412457316650730476268361225628962244884607341259719986652998191074360088723007865089378414967234659780711286081952136319921737239533115310575583220435263412470379210384213747270073242531864802054970362833241123229777022133050810901931441866714076890406988597111223057734782246729833023161224420110812971431225563319115858018510647565823492638552670157089356063092820502594812541437908804308365843677900864184962218887621909948045132058098944715138495604936594724530062243384124225493417991069592308956626081530394941507624486850528349617756180260382144014456755023574008420854120636499866899968676783400122487956462689259291400468889764816603534862576024931752754930263446929378645259761991183567375131970610899751013984201888097810166349182703681892948980085695636064460420951851437069386785759323817521511028572186814055411755817802424300228149823616441159682636950734609098391383068433700129420941628818211760058095020073805240568277714841761788851299297128744268294994169836078481271945745291324018430129582714008110079208242652038428936074064946420281498929465245377425037250781993851967571096653043187017810416657567027352282676937426990698027121449157102245237421084790141135661512453342031979639201529357374725689959488999724986239936942128141535960313480635184395337249725542816308232052667842691158696341558845050490802977475072126920526577303881206791415520905229773296592304109164212941292313088213468894337059156541138063788811482941162829354208986583542648645239526478732757657438457933263242684176422601416076781933680662289522308264939918253442386744744604950067216404716497997523132882013886454835790030454503198132283169660642943438211160763074687226262142481340847629866543873989041940684538676874846123774612243897883596154271351668161789605128669087681161831424240444090173624004399376831676781576720263672605740913920563256980809871155166138610138286165551278528560326550514103460229633291536702308185014351539157726356338060065485460492555274665190863954141971381068209351843167419820613529243258962463071150148453583196237037908764549283595017502139199403543828414923381222639743771259831642897627215188450621171837128610929849343378189268855039970406437265338544539576685273695267642093594742209142305931822451381196915203743203071062778158628545753083706581093862687131924566386318243631715441000616777239909924684155746312044421881709169763494086935777450144999623920186231729880576799340449319156484173350546603690909004811344925910421191611141110992672267792892956250080379641243298212243922173480189935949762917663943825780396394303374611748097724049782059859661705516648253107484009372028590311180353469580199756081026532621182010687192458006290725777384610109707180251014216988797015498045215667284943203302551665089935864511048570532281632620607290354064349916460256118739261638446509257370719117527821771852710312564655733500159843674091512042503913847638853293169212050823042937317372729868277899324096304252926389715868182230274615476024052362003333408484710662829095344436919837367116768505421031461449761287213642973264428932665705264059893937943092408515236279113378047546609045932435863099955662494939212329562904745394056134973632990570688008326909052891799270974591466572563624908943187264252706797016600511438761585762653533315501163581670358987982327649311582423012465701076593414687053860193374534351099391127140673839806358168721000464108243917694857283296302422781902094903495752826230013560151475470377226029397635899168494681271306157775804093040216073871461889743946645325231379298231849428699157280317012133218473573807174452165450247495595478891265154314937410268373902579189108441844895971144806813580410991964595490483064877626632199038723595439212453667870209513848828049558312615224013214524065096509912207287644171479259633576766477232459311419140204884077797258086926774281893946865835832535260548135436954554989331703393186978539602199183801338308860761700011671872986110635264022103234470462211108907072206868475795314196715981483449492594101130562320132379867014144148347867895192680744083950090514360604710814946396905005705370639470067953624899172702170295949527032831088274704085763599179393164507477028069056846318074225412478035571164003383369197034676887526680918019486676090228270732642523480004847344560188916707562199002831855742596642155305208827033746185872644784249868808713154871125046527509562688099887443561988983668121466683979357870424625034900375277410082528315428605475969959978832531520790420987033381683784030325846923713863802266549915974998080229295856164966003635738225537387765080432472555890591028192683889411589267646010538973433259957067722399141215304439855489889294825530822459411286830167062108811834288899030833384765500793923524355573875982399329801676665033568518275553348356086572472148575727967716385396285040333741224696206744281133146521770242197977238795320553919607688941684653153708469301260249528003056031552903749919421665028479486403380666621406002627788307028768208424575570160736641323708248500197523169738411838054293892017198974831941084692032630542351408492945141365047709305873418343330024852800519209705303209176410062913591122088790285993294314682493178428055894755091201164867283675207502046658386890365934981693694455586273999348024900818138763355681116781008137964523968269941136566562597461923374020882874386815322732715559509926311692765953498531968511899325642727062997058899233535184619964306508271718564480647830831135594535146766459212659405546233764318211978537952480926702226369684396276991084691105190964315371301500772072784390786951355957101198161386453381887758720244236700384212693713415233514620156650906804243751955880942930554652409015257715118054970542515140797425428909632098102993524186327402804530568868924558286820375883318684401711194466575595671705894899929299422997346947946395845638946746420846488044647619584513118197118098058306600253672856865899491466194472168126060359364585947157095214707705540688295808750002788293057857534619111068127838387792847239561309168156216389528095115398698356160317669718034062139045960973507363491156842972547698296107567157415370480409225144552325368088692393355493661149373554359284039323590965542753130883257630883335243369164809580820704056654284074369824615105265109392560191931739541026401775416862782952074623771419117970874477369687045036439981848145563758774528028864287428166423602805726755570761368580207165079644139109372378188483589108964552757626815456351917713240910830518932272561210867902234847538247754825868249186736947410287103607849193204019512504783828809676878420765882397169648598711227754730529375769930843379766674188935982072688468705320131542747284091280710293695682332907869918632025987978788491115332456319688525693695568423678231614841165224158679106768466074144479932889225974719645314064265613959954286941870614370761486831186648145090499859284552439843480101838244674069365097746138289746965771720808823959104217667457448947768316285412945579180826458878837798279037222665177313576047354622805047162407986045089576275428563056434286763943191303934860131035792329045244114856406444245584269461693913295084501459600422941252579803097826422771751039726514425840821762269443750558578301461221473017138578630829899005038471922608580292238205712710009823319762985571529790620351194928100869849480441098461819420347301596964157302429352893697147300654991107467957500466478001328492098631547059464928609069982496580044737807806728996400382348115609810291635746603688998553549796986235983693086294943114056014699868341564645011344816254042556113874266195829884892779723127638380564993539242685282269611222275678213557199601690412023074222430360106088997370630779436247505048719062129023608603368211682570823257196145243988647761621389879227177449723030064265708315786959212228074934589011676998708261379191335399456543716544123420370342335554335260454597112432925710845420725236154849435425665298432945356257738006639566759336272816884072162782771225082473350542780169229319806393912361109138228041356207203814953448913925604786561067660221725956260044687387249884605111233538010008733028892963840635297442106502824006217393980962001258267603093708142275697959013948963603441198399982774870692684175818855271874819662757387630635224291945432157563791524165911509000981611080660538537995330483293351010510530244685168026178512387234541347707131776984589363425618921331630765431169748526943328688674625284374880022261560690341570969704128835837787535079560557126442497722357374667751637746718734227058948512467481386841339785889473159955066465861523341168648580329102224523969684784985987312022386482615685978476228090797715216933083035528598359873805976947835367746189702934722872468625683576269163695758456981193462894696354285746911297956172272383282890849304579940952005514180575964116981613998062449101274770473018042679786917664082963130009033805305670219914489232930357150222069081614796076520204654161120076323913196920584034047976907381408147156539768830863310946140276168706013560993461399991456042284201049969104978319736696667363950251259572621758379453624932323441578397884157086581443069176125527567361334671239213297796356044615277982640117087688796770646855158333325318598577551806955489242187974378004163426186405042149529975362299213151216139356845088936064836522985131464514937291112565311987470651491859349073814744889742692379150339468746338620059251276896989844312671371964465772150191078582944649927113469294248702938616828017370843255005165382466272002357582609853202405281196291976982034493265263364004329830172337196455596271688327840539100622680640648352524248002188458634861275839828846365365292918406494285559549887704057902663834208049537364272470242024854061572539818050843899247544580545832118076158138935477358262194697268820154022187266111756759681026173799883676517533348986774420012070636232228613823413839715956277045045329173781011306888707686466842313795636325427615258769710026635755994764288785761636465294596370675897548005027246928572128674263759071933281610459732207001417047541963904417037979812021650889135907521641990848422610399427328976043719180500974211370957624136395910912961322831844870437281537772248619375575432987019645334021923410177148996222397698880428975781157426613301858506478888849135285985013645097767532126541671254151496922760921983712115824376837157633913787651624335514175880829735754290471395442391301488757714733563852167515533136109591560229043514552008175979988883842953761274783311017746044001616515454015209008073215862416125431369483518606932985739515411621888844524625381694087395747497367702835501454687159860806539595942280968824884741345043020695894123756093176728202343709849374573205975676702271123263584773114231661542173048094370006088768893636002723310418471999537694722789796525164970287492473510088224996660250992152255337000191295186501366975580808184740398157203387914302125139258357691218751241547133369833244504825607834296273257558181711302869152053887770120009758852253626578820077388693253164037119867909402915184509964477873736391862833826235045498168936694217477540668967624925798210938101272382477471596212571751423146964573429104043869495326961607567278645860278288675432279196935736541301612552641307343758700537676623104199072617187254951945566837359163158094823244646129066511070930445010197701283557249979296121871823748516864483460328398264672173082260131787467662161272352788244302022921077572821253634763850284794839642260676389620445698854744467196903318946838737655801278995187343030583585022264482369999219396527698562689953258861685610214193847683283457494933133274735961560702026217336329065364708984757349590446728132378951488055665960565314719651732934183185157536489523000185831796154947632222251934247411500157972586546660603198298433911673206467774118725529225574414773522219081538255711795512218590283119871987388391952176473570448617071448735683919149667076840799367423296224389252922906996733227731060879712835567247907259309958115546025824600499792663095597937783976201212687737793910802722566495177225578060979423584533996991962925366859368049145636030455289425400302236049001481776778682101398771776678563067726112552205307750687394241351406799982075766337413524769285864634572490692611735576714054040113254405881785105970804264249086311248639259886253807203019315381950643926536927188348337653713920626306240577080923047275369705984504918266603574405523568831777868704618304138543080879889403365728304245137639526425827008915569003997456765431398840001638539992108624655755671960290089098342299683181509710185431090682516450786121131014227115211327955744437914271066812116786553284433234613479488202800206770053802730949297298649676614305521904534487599314536464083318508252622757852660052822170779946249207913830741561336735152609870575501501115930749183113061593963418854495170429974480168729526684037985749804045534190130395467212599450712715270931919006090181616708029956689350433345359336325879246139105727483900879355229879655877937324299098726182170317356377630920249501475985097617366521381509355812366212107510216144835566273980460698462261813661720810802161196395817967643914598923809202568842834851266126751054037972776324687543501806455016823829831276804558515977835402952326702250155363287196112623480533202635436659640869364669376060321946930244970687744251583389509329349922926066404110686402727050697321539555901796619859006454133255032315149393319115804446355791364607177433699854642061552632161061311444178170694747574433626280699739270687159601331342101005232145408653565600562538400777419150405659637094140989585609078955464083737372379353191643939771503428264217485874563653029771928060109152427033466769466057288648654369627248702431169842214968454362791638265522786042929271550384848267361597082858839518489816324920634226761941848374472726631073949500184682025477198872742480842530839152278463045686636525382373772071652803322604695060702145765423170876442286291618212010260829584251504263983713562365776627404139246557365102400008546532640834544273722888873191991238056712121787406038409572985498461473895320112336851815245242416389991974308650656363766746540462028305227077342309956334219653108327766288256419542628459706924925732419562628748862601131731527891812593126567377567216392199233183881392628799772533593622113918013948924921357550776550317712825983705309170625651111544317643585898698007954737581483679821688681087489207569024488769772306840049161777763618569308774586268780617382151927197909558245432633329534712839795602597025290885577548817661336537662060467773921795333476294544331340033241052664373865362202796172264203966324253499032498818327754840600409518712120171923789986746554201810806757731205945948026802013548890992253599806522170385211066248714388809949781144792649030435017808247502533677689093991851282149061378595708805695084724846589802090832446758544861114767325227634691996563955120028545187435227863039882139880065872662544717281139160309011111832627416027776407359628054948015056768198448573512976580554182867852275526412461405275729673267537878305084644467865649861469719853453136107485802806869359922791751999178862366559134986270981252869602758415724236406195590943443098571208594975529003202821577370938546205581837430608090940172792268180845853590247719456091997679115655201891849846668232678806130658085233384073875270088663258571304698198352531857285853451518463809843822452050152570140269529979635514978730663481493688994715161315264163209168057450004312612083999673721790666577184022015805875411637772721745116145028656512670541998091735919359970836909581758166688034181019642732375096728722412750279479369891727044975700339606755550362697673167229326751636020495126149783505733839111146482789342190792108367396250063708000703299505069143784708117744668265946184037807550647796927467778063724627848368826999415505396048312666073366241950543827286993394962621704028358794383145798348882839638180482551611019027447965210081425120517845841761665801296837960972736261759811265994688375100130842619630300418393617104798362943998003299091331306800116713172683143304886322079522275773980887175931130980372004170597465192576881171331778811338903409933544961062865713479692500885159797662020193986558696751361140272086542147995818588236533465138416779417577716078980231056370184196851586546468576991405934089884690789073666961977840729689111054568649236963119754297731865826183443402687022430884983615717119245498735041440680497561955131616848726269469008996300434720797192531571063698494908380632728712645904796964755215311835945900317620426376237085930093553076468699024393997189469674758459784595046445628834471204395762723593213172309530180661094184945888180744394742495164344226872267532531416563566408223204818706453409661358840726529301528688373180272502679155473653473219810687368237344087628710536180085085352655594112038346350743183335016428386247364978332142448639802326497414386958628556146623525687234903097277188365238394156689192355798342984885930481563873256567443162222196519718133835639842814549663726629722866184979241949871683794749873837064700728030308163908083370087173543801646853395942937162452008925766100802923860763747410778616925704100792042046104272104710105536162523286985651720429360429604695346938349769300563473348565173527010062842553665181729242550236637624741697244358716826204788501886547188350443440459563890407620444813429512498286181322384077296411356984584939597850998833766646476873564121036811593881486883895886983602526039335120841805671223483366960713403872564775873531840919386424253887632460278075372994466992271528983435553841202827654379855696950242132726199381911238987187161898167651402368282165824830111063399349785929385696699631849709515889203797473460401742615517271335368052524822061630397076616535441741247481446949791151638584446782971250147818538464554425797158482028638457795160660990628107824462291866255718762160971673299595183961532557293450427452731702953713833970208439732457409248711966635090262314326592370299987029961636148647445774677555702333550889975910870288989226600103242140650887852091195236726128737432059990367506382041261095880903164988506236008314099538545358403086806856454416812137213022035472551844165021029630649735005059555526538526801414459077005844051869744896467872301378338364223937385357508918951463419690770943325446407352388684442628775706570057522181021915386251167018640276334171210440465184703128169515679919599457153590596240688701911887837036459818465973615605557433781950672247974862358141520629000258925290299417238259045142431945660203097977095412345817367973191514661441212063661189807079180067355255611363987612293050821678769351150512930234687818069926565780338450854122773695902701986722256684506531475512976566201077472540472894165607321322810099792664001255996085409858968583970913177801786095762338090414207537074453759205265117855342094540533183095548159188359203564591258292036338509891694084017904142372233780690859202360811491129023128659257077392348062588331353773941944844865072615156758844758640461943243224056384872071815471549216401678994290181031098043284236066800914005413376549797540123055325962297842392986114618412526731507510499259335137140634177178381362429441406303722533413421198693932270866187624396953512165100187137957468567065293510634600468141746530331542362902639914471332503799940803625369227354979686747362816654390744442985105676744338267322383316279372601449955141885842964279882347158322349089544356830633782876046052675607181303689919507269786152334694290222716811047471391327614330028172923729041498925234663666381126258518583621282641959854107270241840305443958233511379112795342201924886891948294325924852862354490535473202264380709436686494398312415302299621855499026287941275803850238011080341541969695721890877200405379334018809850831384547699559929859967132859014790649649102547806788086444921468944767468965739414619221188484432530779121843212933715370389731257598704147230020493221194118215975726552208901541534966765837140208358519199830906478346560138005897201623314007121868226631390550088996566858169542849721499831261696262677179553843614522596741573025894305073781811754693765976904971795225704715529819831666230671175848150507475316178672145488638686146194233236197272142514694265143733918998039038974599722162693474455621934819068299454276108948845412821092513000663278238750281283652568517269481980661666462911054938306590567468697333204701217869209867301993077823358987691795094745622486506890299874790316828743548373101877652370285779396498795344208170699608008651360503325732234037580163451921942359810930670482669842075792501684871317880300510674216358198742915717298283295274925226406375684986411922747809607122078380839544850024487115759865195569403100938734907745586183699674620274798739364514235628459638207453256344766397077581900639291581129836345869761039775701153812443695697070250844747595176473845814156294673543922382933014828728126594069879997369745225034747740197170048162398647877689345477782046018836087781953587100093566218892752706490078571935285502702350221374751353024571793973262306194390339090134664198692352305002704115893440194713627965975618973489516872584695727180089712745666635371672362684442401439209136858334392848044930194974168857086244999281339148311946491855960469735507731735097888128729906646133847468641812976873335051059582558339365853056246097836694572921891307566435232807385688525644109583890045673987626857842222699947660656128963625982651519666479147123947080611659665225570511634226281663273295024764156901052271294684591557661751492657741121474041874477914587811348152946129449826608956898334251955760122250078263217118227868747392493302716100620724405324716304516747863189962514128291216146011719349014367939754189720458971855853585921700932068930930847423351589637279929293880379147572962516519290616298408608708894399970039467031425301845332015972105388640459648133064280754807526245104343120559536644910311852543071741992581794556356608183552640856237806764741599698263858781299742684004999325872274420108044214701598203281966250940891207532229123268082444252702377548031902969412069192382552908926053280122765742421659613311510067876492138701996155737097872051251873420751936597324089980808867357340900535645591378442635338553469341599085412137410499745132883270624816758335720020724673726723230853052497785033797053816888617155466542686559592028456276181119912588327038836862935239704434033249963549393007564504639801775601954799361145109439101420464901365441107012156066752153646107400904173888658519820780408285458414988534438909792712180540331074581374002111888348440138861046295623300213816005345977727593510616272011399846681924348527043708922498712342278476411222321940278112123611804466782210910375992481455997830795687454033311820933119538197013455966299393977756987261280241370950747135153033966303372870079273211918331805222509952863028016212478193998605770675365169274522138649204120442038753819636286763083966939404971171794997648566035780910517251007927972083724000264125321983295981907410137193507657072830974387829116073377955623272392954052229670409824303567538469418005116736452897432236284767204704901408427772906227484330872161703982570092097920909558035629941725721636391815112466811085171128969496152161117231093566432092590786684687490242750360060929020598264577123223683031867769461338419603515060477280645397118991192541059265450856077950828615663716096126279825087514970340994962598724896956642395370152169732485260356974301415480497827696923712270267560437621785655887587283278541097428164566606396184382949581269550010594795179126541113268051659029167276666251206802564527222365298760243753111657068872466669140795692662797846756705385972501043317812365611997695602859351311765701212950072593592015453956884994729198309670226079932328556439891421450471503336618225577393762492612483425897218937890874821034975409730740063193962950024912974897553920134900686540192807614133428218215428560089065712943378204285020499129080398980155172901433513610000034649701962048845670576910527652016717856573556670243728651294348166158978329478421925804595003601660105187412978748088935923764375098046388307528229674105715778070790632961177933814111845438352469705378097084369578826333790896115898900092191505770140750109840783677944500412502062949746134808401943424232086001460005611936483144765727928373180213283593197205992565534209815033713017603899048319890558445562334430318225991967035572771325308013613314470545648092195287369902121671059048673015802563707640488114322713661896363451010640333252864678899495436776087548607538308034519235283423343112756851131073885585307946865250925151039893446445585563640841158700887172341911043521550556511732111672264117950931637538400891035588590835188548613801004036268916071386284694744690692002183166257250619790182391304036871878894593138049482637457551387859477103049543425959603774093368642856665347753173793290864412676957418988196701199185796725564712176209358279273989336067530973342068170941155057639150093983619204257341435754301477054383408988881896330946133641961331102622093500687390928707431719873274784030293377081357946804726553260485240719454857206267787356343819507604671299947760862760527973776095597099646663058455779062841573548063379431429967280121833978661393663184927052203043637039903491872107041974443324686337092401261411275614304241507960320199351674724741687821423355459920427439055272827981166759647863432596702330471088843709734765726137338687324037162642079908361443303641097670942286045119231703662671335786003861259767342146414826984517410771128611300356483586060593931576910585773127271788484052944173828843103948035311718571018816812760770783690020081474462439715037556378059906943746395116728856758143451965670558268544937875275621159878939041146547389515828519090261945454090036720604683299576326741024425294050636791379200544483041475026427293460356339904705018954784347766401235258922559409848985215615578657078338030818903040018638039876737232296949311567317861331210978950603558429778193454279298226636783751768524659225503017942594842060284977213250331247195624530021956462351595294422161377513855160655737293649056088115770914097888271678965220476438860098503172228213012647605743689235062392608723571487529201721818094773662339130543277269039797739209287764221519070673352815871063031869694704295283473360465310492088021015744529176244228649860897646884474289936144196434160888069008822833265701838458278144543103161107974591989490473828951730848306561336639449103030997792239172169659943948959445725161620017102049716858962893671939569750722217162301187854758618575043920969603982719004766937027615310344002488532986702769635471186642781560858464566614199808080711963001540734945097418343620188575497984106976287139002662036315342840950860618946374421188760037728684354879353490651895782417743156582932600198463913444752953689441466915761775458770421006533111267260057743930722628305705569971181971481592882973007863789837566342679764319035348765621536610693181495622821434426609743117715956696689696364159201257275563958330712231700940660572118008605303824337503548839934381369712931585345107108813382568212957265776113997865584647897035580348057709067550611556517318407730837110979778945717978192697592294154398095891902181349678646793690431019677062288529493111162262115568321178581725683999775410021491309072745252855219186210423038854452985392379633354508581315717757747399705332422766212985530589594760148527732301615546364457223340386893084944562613257285933620502789066878210227984956331727064714677516597991756760876951415469350608314917451640608005005406381508486190547734454901843035630091330431041925540113826180024854396709389163762919455948590850550663665366257259567250206595862656980261868121546741459722519874691630641751826718146785506003975344634613868833095038657206882577240935032298558648316969541236151558929190158032735763528150917978968845407358684752795213460070112347525680854525488949083256877944491060153671597353582472378137602030295225632288746627470848297186902562510356232034555191227589062374813296594378030459866336701671047484404526042695510811106654254132022437637408100236762632756338348000111109597032726238759562924546998368820465806004154686213546590211100021162036947356495263685598776535866331440297116869673018593952684942652460904487985097512672204816374923558496177969010886069870925998851210524992247637311623816039311826031523630506533419229604395407498204535178967274127144253709092828785078215303513528411135395834154213874986574875449335204607908591059980068305678936128967031383797854761746065930975552960734579949780600088727251888584618786620741668431332346617262141043784553020363663842572900332776253508424947752470331101789936167117698212928611917686414761583437976666065420265012984423942687080082285761772490075491960560997513398196811182624449065682225442340604596859576885721354557114351521311352515683861323550772270084106791940846189216375450304008709892572155650449133912499410941695023925994039770803557045697762666070310533013653745417693836878077896918275908543546799390081558591208929889331565001290244242776795984232530186761916761218710280420408858889261952785259039235177156558521244221658309494399928200926596833067210414252049585259029444303907604476964597050800660006837569631708130078922155430432996346349823868880176946687140221796247007186906975790252616557553279383452244258191749108911239197558264958860488567529457458601450960813871482101140062672869442371339610499808571842516458128983341022135408618306499246738664666255651755531728884866729720260634158712680723020447689710668826657994347470402235259062080138578776552008687127496383546536979177212408903624726984014408693781369624625685099066204987633976400256618487899305835607351449733897716491326454953027188822179975452237393006389774785351454792043790174252659356097508417527051518708882994802276550183713560305607858640822233591702073580798537704913923142296028805912098565544923694659447252875133663797035877259443878099315742956842065369447948599407160434514137091048565018097572587847029521544062361639188886917312102291716187696326049831122035168663806851657267743315286098247723096835172559262086795916011666823165544205776282538489823936186034119255248182949014974291843824089725558358517124637437334664699576591948176602865341210858710442463246128346722181712421108572191989256401557970340277913830134210485690979710042222797038295831580196150331495574339968599241716171546737790325487306835564986788323513343876298578257463871577305070876712922189330700407392676318324354428256908298907319142102587517506845440351781720649086996577198185165278903727399960466988171561150743001165109204781287079886406999744876131470018282960858658252478440317028899865710442912563090182792364383798433898146825962668751392951655558357720821691269953085052549762269782891025739638796903673161179782528635886086064343509913577615987083787276568020570938364013046755814697959168483897366250184664709740823210490432563682306162525949730531400928477492935060742052093377704901331182270954259940927357118353732674580250152127044892972624905304394638232274069921155188449718229423153302302172845479545388738561841251885742561496996182927877688130985458457837598105525373208403496464346728929699699337989972025195807840134837084025799453011167733455301752881055824929293621686140654897107187844933952033542053081188628071236597141482516657060109862156423793254067854843697194537351338005563755839106918532219090107691141364370245386659970833613344214369003264933681794416423474815785355353499284092107725670939505491678771651464556491098663082064735964497032563557651422186279834853225645639327788533193349615597535343511498857033050297125541540311262659653264660715649555762727059322646049972648778868777858013389336275552331435039424684662411350876622664346984960048101855280100043808678673184383785173443360351897943952874749701813967254683456993074578287556785594886087969153262786301814663409822574129934432812370234725628706244839646466903800510841192724573583609399294548791612934217569772550583972564207799530967829668808981882415579748722168190001349093719444958824565116282390130864830695208179886820369378779985953086173894478775465958351270902772141660124239850749677821159626177253972059841275807269061080525385137795831935299076741179010964638347987286956836487783371878464383631597968103282993615661630742107580070954605837479103451496556476607513170356388920546970387019914525377919643366987916220603739910322723004652053127463425652911373602150267423479233901799278064152818632760581335110452473355863065465477994838781532757900961710378923057361409552212087537610604295886645180617618276359731657398309842929249575568300941209609348221222298059621981698375805586300879455906201119840554853351454900995638487442001355539105266688288440196785660720933231327957468766926926430019679960288512593410081568863859251488195999433891783434949692317862792164738770423094044839159203396964861156622493257393293557084483610270504376466724140771241548423802956909117376770308317751592050898520138877722852308309250205797608828288289741816356634580527087912611571487765506695533766256244485503843334451564735256994398313953516865104529232217249607856149008533331592839484666233441824173541967547305362355390990851550938297717133282966766026040128914363852992930543778107534599907900838865759177560304735716256438947407301694240192972982006960934770417168972911413346360249587700034111178969846278770701704482978578814084884986571549301280657379944301901094503451173781101763853791100467243753198730629858561879326670304929736470634623964858111142586296910678845765511178138530936019360602644805761469518481421078585808834020541478583529580366154569619161900364909631289612770693583720522256725567902090498566882256752187869221503051238567145200980144395710725951262672478523120772117242169917042982419826827394984664696314079197740668070735961175415176690195632508588166246744209508672678932598463150050556172054677372015876268152109853488757419043349622400737283320554759735020695723459581924886018880817358113011449166193518594920618227971499994246499654900628288473985165522545278849171512451157730248261954119654241998110794794062838830409913385568528155040289693876504512102315968510590043515038391089270798677975109157800822332150025082245977535411397050801181230728769463823956306159695922259718738730982350710665807327811913113938845635958545388659432386941286470017636442499166406551123278980404874945580176499440738435882395685506867282535508540689055789412121707218550388587245961391954308540299647624338398889444160867395415518281298996069527876883861474192215038188928437691138894881260524658804281031815943868266831570007307621924848416715630618892980307759024636596952749726661714853362936695379040569328023512122794080272745451007352948293550231935469662879791206150979044137168883030085805665951582592504264252750327772162553418239640794886116213231194794916450641373574905029944503817914889210672522782345667426125144451454157448622008881403349779362847934380728525349079670085829886369354039737081917052832399919386787061943029753879871333689697525447661512328687565407788951765310618243847470964500914223659518808186499991936639762565832969411295132678221318070987332870867157072163903592820561959214311659000813100434439599920354212177767205348156645987418617616052746753432614980434176772206300571721383208912066421583070174946866681519411153232622301430172151266627287287645622960106424533234965579660142793294664654644324392535630332130487791285812692881485125275587694843858312147535365630111467827403286491586476371175431586138038834129911290238968401694107850460976878435256128560350113003584239734638609421893881606801643737815258681056072222473292581687041609958993837952215837179847655156976529873912619581658883095694183165692536559574576772402504963584962230340225010445404331258667497825861400129135168249637666036027014310304190034126761700312061894450746327208535493668979089032283191549193616905753748669101842253191878623228266262529991747816513422480966234203803150204883030174172813229292945975416349421529185866926802916554865491551617260089419768145387540790862493091068964373414796151267650579421647337255841196622880391913186605931377261240468451803358563147302007142219630039486186490074305391881539280696645362912266506638133548811112459170081870171105895135345690522068459133070222516622124465522751649412688643613625879209020616637815752957936253097602162297211582019424960062651691271684776231612359794655818175241398643517174160283361092929175891493993642537148347363021985049714606116175339877048031972355499131120508185606163670513036465837487031212125345307900125916758179728231228646650933996243202879939503759771434335576893984059423110185817941401289574153043383715191017902512889474295378801040441953682772721787191507544468320012983736300311056448488337459232468665667741218640705777477676474687509348235555435105395882768236193156295243760708751061452417559049838231654077013885574596032866484584118014359403651292239618544909700676555880504935652742935034420543089682895176620340281461675551238707277281394292056775993222533595487053467286952260784460775356946430811443994282621066179024867582089305049611675947138344331721284543488082544997843771283911741268054118273285095090127756122501659721505405648830907878549037170560756673396807678350465866911536145978273634248292493313742019083839680341676041989495271423381865376019035556074396584470256034841606010212055103666925588904966096984229994024900718134498833459136218615327893195887860565284129120440726842927053926491752788129967203845722904411965112003182100418297491416617869440186467049411696063782237253497690527698701477730074225503789321665897690596116879036028332694089513703751484595046136468043171493732312806077119290949012018895413630350800104510040911408940810527916065606482636708213298357566696131129460651245304562987619498778471513858995315546275989270965355045407451670440789131052392691567848452548816185320251854140351653805214333344217159968502144310984041130223479147023509399689611706859116069486827686430216954373018886875894509272049212469841199605737489420173202264292902267461065219908119555023868116728954555389974807354061014735424952944321232147587997249673514573428634584962808872019257660525353850344994873155239864354605973811589773542454103352646847170722610572885968039884705894925818584581913127606572313943580577538903527300973960413615983999512706533111679381770001653885468940373340133658373743367345753562586056368735955743068180856781452290127924009540663864492410699102588724381791105642690957695821962038252554423369066130281923643575268845001428610853121547050018499722321308518126938788329673145080774166839720079188049489129984585283878093874446033603379299073556449303877040439514186314597292357809431025657530687912002227125420017302823260988366351879493045840099959539422533723061654202606914068712185864984051248160695085760237865825544745271531273246514332703507677338041953510507263556298188959986963878236313454512525060066817668564255885263727940047913643526606841517570255288099401786096341017362824157112308935491494414249784988011148057571302899506763530115522499868679368685048243643730863017466678262202458926791611671591572634951336497271366162346202624022390082832058508514032463904250754656696343315606885035840692393869488418510506866973567161312073082194955371155818248633855636872947640570309967215928674067692379260534236322543845839799794716112634814319534124089616647571808992628030286420536469647438479765659618426414250793156330588218666578064054053535700967361026404696371348676536391929502811168502651984768818463506830374103418735885171160540411493880576175309532735048336836617995102801712606476545044104245494501192070907276668024538004632001200229167327143881809079343378401970630612668979597021907731542332029246083452384014832169566521163891831521009488649447133616627954912180867391234514065130695332264420267264923492519156434761906689101336849000925418415942065431837441702199376243912313534918687073047840056999948020433919466784621456093183747094718226685060313904013428660094491708686456274668163661761288818689267761466910253712833917044750759100958134492297458420370877643518787835224422485970367454432622543824893870562867875487461472625575360054774802680949061216277806516518535428806223359377297851866694070129909799414302652284448997549028012619705682317036791258493332967832433329400641712433013339318209456052852254449078702514056432368695563992387250290165913579747119277493198738512888463890151235648615842886161588124630427933414866789722201076126937773548201813561452990208918793673873501069568748462936905881457045875297314768892519505269567455791584757353836273279958444499828858452531098786489886775718951285662115591953003792150567767734837528760800719613096872655812011745966394737781875811271192354667833269311337508286743648908699394078511766910825832278199623691626800724643743415792136217973217043934066921325464593538072709085084720679825656102898680238401688801670595074304297991256926363984599483781794838986389283492772092414246593788019591094702869011743220864339779914909874469731508943628065273277350744453241576464933356182891698275751086398441253714335890585120278398838070395263235726189767802392346647257004377241829688279362216458330132146634147314767480611749321534627216916642011825099346496778873906407391356642834738436121289634554217467798940200971513382230325132049049467336096333626811828194197642097486038047338435996812683076690701527401258918143064939919789715806619456340811706763667772825452174627090919996002827400019428497594336217543108288015794941772758482426234800206227174173317082114324059316466908610994293421837317432596000382803628938685901134307801984764115547030511623793886558128252446245990665251639665965513911579747669512803524995672929519455398028561832232468807238793103143279845297804446272566915952230526097902563121040247246891232484607972541919927901248719789522151253387248947179659066716497016316870370567877291546771472676495177575845557806664370586284792049683333986583758312523979223256337509218877675982321985453559785403243742575108620566286922459950542715383183567532890954387674816397626249493886348954115859446401107745194784888766460275147403620720269819754089135781132279951057576623916703669873933103360975432551345137581062673062619427610513693601842520002153187480785297986177507761830754629564824590479535484031683414230045635976129096732070727184813188807972366124643847950969122016130069027446693586833861634776544722222998230791965931140566405540339592583214604989693716180938211820684824838016319496293421297047405953194483800804383864462863611435907686931427303079152177663572114540992573155529348091589549199221408661696633193296443479456059097801178228927510588953414876381344077559255491744575874426147669070459707815090392672062018630638816740748322924365427512030417144315330815380336766121348483733709936754425439687611067291778947553295769227365918001333766212291465124766585708830629106592022807222291827573214069253484121284860113017882154196032241324140665800118969790468390590425594146697623031971611290237955841217241190742004481596963228706061657660566914840563308082774247622681712140508019378576896800374657401163743625449820541520825480473729071344129587529508775320220452133264832797717346569045975300030872106899510459035235827475805867423988419063706352665771434624797908835986411500199228893792692929163427418801941709423978567651908335481784851025208051142368716375331795991352107921101044799803154741572003708062825998326874971567825857810127501041480529770672831856145338959216317790546448955248401146179093145474116446755147896065391572446560317698441608432347156119182092944403735330763915580520819694486696096127372111694570706133725306392686257910588912003417064330365344095738761872626335142037689356109641432721900561103737895065957609168564518445171286143645620136967217452257797332154365346744606270028208080335879168866340514916905201692556898077352451243944917138677977342540039764438888737810006704705380148451727695439612700722675179346033469815854871851197671443753978255408744181404705674643562226913164236095569348223708486145114774998028368754206937053444492682928967915659258200932952525110321765883135071742519547023074026448190222162392220073843833548897647548154087458837952513522606511727013675174337619287248013742605784696178807054984930599589508004458223724439880617809993570492009833933197011219227007511210968169554181302470921040323356409639046664878128931154925416732012442639758621152872190538824495868864264224146855497059084548839997458475847858351077026803447536273337632201901563811424045887421490583163075934121759949938568430384406604064875682296114297691000143525016825379982895883842976121167274034721907263279209608014574509702342817596365259851994704362731339842046994336078054571428185854483151214097321256513428780092992504465950690036983459561055611381422383442492598598997329467805801036049468577612187442834965842928023200526234335439502015911590252594920732473547927752100543913226978629514692660075520280351631439487472609737497314263249522382890058518917875479461420114388419232798448610298962159664019262777314214679466938420184013140839949438584225285937137840085483148464163628312081497554645403495065666687332163315971550002305017569005696631374811377706873916978217550002428809941719391398571392583541428688680127792510164678096220750004914785539305720709478564443790254582353955920222019727293747134825460528422604766001762896693581300144078453376866002857929893500019642828086184080006210462811466551513333886886634599613352786326934123776791415278289560948243841592769238733861924026176082575609667808030555483739392739901300578177369481233325180536814025581306179289768617602420404679035968577604370260719627050714866846480047934489737860400900504421082913219448814685039647740904793755071359112792529968090123428044339759756640439781982070703061971008838429893454531774600235658768314099178513684567693643177665548382732981490282181299224522547022802053946648148651003804987522724767656337614593679124160980418950178798431890555575205664568976354373669406085568162339926226859060024214684751520130143651446855073833690587316646725373909035200406171308162588847399550326915096065417697824830319070286642945376990671644495036909770684428353631175236900771727734545042440940645061604231043966320903939760302459782039453608560784068080371105455489259814364562276611017088309858924520678873224326060354727860908917193384889265542158529706038832993882639399649816908013676223979885502398499406033118523722975456860217762017832439246024410727363555538295530464396316893444260388641007429734719768250354990230252899433786666324101754556789703133584106400361346376706379864639034402776631595053183886043775554848041580175275531310609357289563204514921040640657980493372476941685718730591228996924224431691192508748383531071501659417320584187933004825465093230864168977718202581837939876877344823224673092305623687959257584078884042392517404425427852793326747776118199021875441017747657310349741812490083616337797598917614313437577249790383059981517368209395097199478170080965426201349281539307999729758395883703742197776619877480807851010669397445589026919906136246242598626619984000698219282445735448430727263929293381020203097251203410941342072032666142294751075893857040220517573509415557648757532892177000617731315561182316257981205581140710953677657886083604195632337272858881512720984139347583914651089988627349929774316463750901865630465256213864680418924446724023179214257180108225637954353795247655146093443857075977652229037463286526303554973848970453675175020581973701832195792417500074699843800971961582686789027347532310864903984228217734948358704911194590851485584325514829890674651913135885473324027370392779563790193563031568334570635021820825099284308928537592503272416104973568409747516030965850996790686520895695476075815449790237808093589288529087207415363844159417293847417931832964414253572024762883709252463524489376026489677276055368262232248446526783899429902392404490397352358972159342972897166599597162178204432610908590433132128206231852385101028950281967869339090291568611709367212905967611739388207186793653697803651441236186215653432422373423165988068875310836422846681127344703369738640369997222974488326069149339878940222400003614504874801937752586169308391564779767524421194949590440442041146171949298744560466615775872901995957571621042144634935170774367758468819504473175319543281467036814684708951787290818713407282963862914726098583821716615426485905524829100749742128060194757223954844509354855656646204373756408441860877055117406497560527618729864191721032909847113600025139104460725860030313371146332578992016542159035431788258001495125809749736577325051850111746866057893904843039636819172480325586808250087907374173750722291302589998276673723721792395681654958625226559516541959656812266722444182933231917071434313581652658751349425863074130737672113384016929691580820860818578842588242588883080381875469477246313221019121827935603858576383703858353607316175711120410027879178771742640415652976347114495881615606955123580406432320228515672366961763841564153681484709267630334527811961589090135605127995506044276770539965858107945241657630360033600147398019412805121025305678734205400280359169252322325750493214941563191884105436371535259616229982554526530934691864954830931728737857118684581116102408901677182319296223978774639871085398243267141897085823599636714081325835904034593442818955886162712849813248334964526697125167370280247041743891119313101593655840265218719063972272041288804935965772393745268817831922631541631301594847551288376625613602078440353790470537922123975407644025850666175732629584921268205494116589648172193526452641257856996426647300905349541660103451068012459030787111920892321470388904685745052705519050985631323173345429717675615237091288040010034474591172493577779525906854537638867648912001564392170119645811080443144436187453772005737526624718768905517962569085109710551724985863375581573335206484029105577271647173367849186382385136670284099164890746469234263377197493803926166156315848360428668247898342211616303122622055247675079502233884083682143572315066864405553255636480587926725096454277154703013722568509454877754203478240331429468786897064174712418378820105095274229188353272521563379100696170929292895398102955089076973226192129303887417465731656888141335425176723145623802219742086373738795065059560141757670523640272731583887537379982089123660312735372646897376479942242189645964529077725721089568128122976901254524391331412099960052635159833377354949309583846722078843112988217210984985786162700881960932319806358454926854777240559338572948651408374585985567346945328231010493033602369658665262785137976949984656255223364165736494171279762892587209119420893850479260393868069667540412952352841940065643361676221462633074674794256840446415973659547477917467895035905424886914533390065251839668640071755685369290069608504733603828150359337794914413653468071249878618757224995047862949560317069930514816591587941261016175393507653613771017712457085614573410828752996092878001407121770423815494093882211818354971530998308143462590171404774951504732814679751213240469628747620799879862813528688394769004014238729081655476915101403250013126306834035387367438876817546310047757283612490872829333199131042913309180612321054969707143343985947306629919004091917072963163909755510175476431252252099451798381145095892212695426581061158611253046553114020369372643990015594452031192046861563296498624199983317949029181997899248590739676426272369698389100545502335134373668670144889766837872957026122531651818469515908798146025716844127277228469072610271046645815402680963165966029261487597677281110754819091111771691944207059117107214900235310955999638390399424877057380559678968626861914978781257690301721932992833049268317600007956917313891494767294002477875637982547108055324975930403990119004656828167723106286789455815143483197126640479529530452280852493194614681485959737509530278335147522509201025081838584128049804927271530379668148511129187062258915445935518727623550451064717652982511668536772924939566623693003007371604322525102335074054214089343757427130420747467605453995791061917019057831257689305536091991917311877911108563436227962900889608352880479967613469983094981411376679613177792408557977805134572741659801009485531947745032448342323348604300582638217607531733568605959422974265354840982277947937927648881029735091954568474739384421636839935083534801172778727813039833018664917909460736541322969259000603604423055454493670535580125307641465623498629535824424188383623055712499780291079958767194650758491889755907291324037957447990979136955286737674045765876367970122851193113315834346211238609348472493822527517438153053428100707956739761911289447979576139017904655708535624258064782393793801690584480288011987846422123613509115433709223574938987811106561745055122600701074788193716630182942970890620427119618623466268715499654720497257285148633677983403136059907927949963663667911643725952553988531627233984098467895385382115246608840720425748348213196384719158349225780963091062257587544860337241151192697036064693026944487970808479435410896939431933648363242844083288275650595411862551084562445704404720815005362926077109536579654164948884159425738191402669035004793400849721048924707396085636698022039944354158459050290396971573523444321454094296023531104464607470119309564402783306618055239971141993683369636072260769263319914468385831324075154581682077878604177029281572012222644834958499559194673131327639765089233422229646208077891931913835836038333682048627074325327770413304064215194020959273561308782092543569001482778795260425633463948327660053010886064032597782649807524182266154700585963001149921550085056385834378348199471614030183373107136067509660261344310173718238647875604811263797765182126932681786033108718880864289556515008589919301721016492238961924318708448508108206844650296151576771566926530055126209026338510758484172837660161451043118583040623333429621524503953213638712372652019868311632720022802405775900663724677087941657067152169503486260944370760228444447325793364251997493055928601717126396305762647582194514204502626419934547618683755484571232162375097249278707381196023097111193122586286290222463933537354317928108349651467211244755677754518027117678309663707235504188400121305301389986079708372086371338034875604106196332623875811478105979792812315800095591464464421672800725949448598119156707507767836561617257580736044928951605774549143790576326393883386766918760095866840874759038005342325105474286869259073297008522120143531471225771995379886447439028105592463873691288137709336668393848413034742084437958395984847473444566510134394857755651954981401585612449500170190647669138352706163498023240472972128489052966807527249028241364597069855349977163622407161325745032503955163362362630178793858088270439652784017208218466257540624294605240496839231211536784064639433565270149696500214841842552226175259056830203082797562442321884867212936451740977565577012036841658873675491265727444551469614965747169307648457606321257702606076621335274788362294358234872438436667063698611122859267606565516994612255056465389530814615899790562244879000471155369522424439978810379791978879043565302767961315746742390468194422747106784861072352490886871832756247246192516688250925060462360576228090171401383262904124264204079832838161075523677298741259048758704391324565063941487241511400040121299481180940625350839499658422025568387085774270735837828553738702780822125522408834902919265879617266943091509354072668915934649985741504189352597484161065653284802854256118687851074856705058648444527848020335731005860381967317745999940504418287480035844996890952791957449900668186189828899384793442534761510473072003065332407913259748687634491062484789540940541580164033873433038239842015501562492837576219941619447916516987804984089182146019469823917904738899238973060552948888371186553839307695389378910177328311432475120692364551056184690926150581706784968185226388312668430853267783098447583929377181728893595145387012631638562673916605506657330907855367744143547143840930664911831773830241230637050151745874292069697850124153046602948581351388615412819102719779981776244432793084228088768108256641797118120988216386041646878423380021393637050581660700669808449604740884770018566833948932458676264731455873484972454026451318201073571781894047330297045080138411970136377617406907320289006537306310556156045178478068071717781826908908456771299209256136460883095648290321820580048800826987041105499553007669676911224091875673791298212700724737640584381351104471465979039635945076915475270969532896079901711129375714448230160946707308440210761203361469858803600327410760452636297174432958378049391582532949095728703471850075805353446590128308341599637605785274332244429794400531042209584318354898559548705224941666871405742343280058009738441324779978785975556829245761247355826056869272392387521953339247692164707211741395801426670702715046925664421119104329550730342029835343344876977943445171777862268117267884956498898528153601326767260203612826831904061276955294279879965417464880318045191264950024256961056682373599053653182219720923048656308437744144893230765622280927408116131365626468317060441665566511230141212538198868467885215981245079506900658972281289996350700031431105224984615370449807347538089054294631918535770681413097163784781954139792623559419014434459200277954045422977789204669841819873966275708557164767871735026403655011906388710243537929489330872104493782126134865200858765328274216260139178306346483595135838947206902833327299272747631529200442343731491208865910659463815307040860037172182861313418359695553992242251481649116201677718046218282273831394307245568702653412617228941109214428105581755878186921969652518301133531627870704583317523455184908312422041640115159463869075621427637152772702900143316246909751150028553258619384893329321370818048333428153445797595070286764412514292007175093417006011295964420181684449978751056784624525824839753033519011226458022067822940860192987931219053406192513703807476662439645762134260791177648857125831115346465107466032213958871860993608941277609000095565614070287930959814746056215986635008937356280867207868520659466588837747094904178674229904261417867702958276402602319733275823172931894754107249138477936315907884114385819761098647081040728401200832660065300681911722530114699820517638042583213026632696545891358170893339318077254930568053261351317138141965609218039967657768518316854506814521270711455640119183434796497765748329687252854897665205742929531888713375627340763543513433374606148950812672582745011689288040953047249249692020361011238932360971237298181720911375437162519064354674278801620683484890018300844853549807534277990599477235079811511954771082063259582832437285870862393158985989405855679990097091025160643585636095459412673582059541299447054474031605212120676327046985148607080768126812161650097511776630203473130624848158554392384499982190663614963464953917800916951348225920951972930840845348999823979751780314858878149146708117563579479012077082397600906273555381139469574028455927180292878787529181557165762998714384742775319029653014975788909792185082667991507656799555720760316425024022998045418638798568706222815786733730818206738319987602556391963511192458497348253103729496534362091718792909342539847314861216394254140622266187479270343149971568294756652675748919008527336239202294187112950018171536632215063985150492756304867550589649046242738526898233527943511388750131289621951404867458556911744731767803797803195072219366133646206482372514576495987006038195409739243068068312737995039260273365050830317670364590495197437483801125883302831316459750434219831380869134617976507753417375938298966154666061981043901488463271704250679101963629592129656968731726374737445410079942283159897599509454250344083685533222111520549021238773133689557889419590101554723862472302663867459614688654223806992218593744768434915565963142903402022371255152911390209268188927537235783337791498258500090085401920247201157136917979885779074681844443519626346458935842528162697633452146840638898243859730563712618654296511933986263425652855688878097204003561559055342208421333473799235983000093769622837707744138864102333770316327877694123848285099498859818490394977688188098006671266672823539431704983008880232623806995828586872080065937387890220521042354330453059650170032581574814736204133387849859402130232146243817639486100770051084511611398693455295839320998297044734902320947893406562362775482054381110398810583137582992181754837307937454877209140612397787137969768199653828984074216270645185950721221554725962214444324686713014933449298059409111897086376825753844449226965788195127178668258570380683261226443808906272330437931314357326458861882679455314519841221476318288492140903257000422715595106203343289704417569569414776223983687264962656142260594130062210687848181435739932421155111393490595827121318079502437540469608902757462206796367252407916298987039172413738485922313804182484020506146738546607001817476378361648444474076383161703149756645074807511552028878573607926048219848453517789297670880451801425368666545875493765554484571527603471456674668476327118689431936452819260945565966490727286844606549995293422797343336407962935879200124845849493340715108468878160448083526285218996681068865224389169035322871078772997926035079484027404734909689431742351677532949676468140304292322617900840060645478042043141579449369018346905249568849995715071826107439398857390769772074339399683175146103208950465506491557330761605027150038929096170630752341357982626820166196049650082954121334230949669242085572994400893732246821825321066565803191167290764662287592230514197643854730474552505634267986022170106377388059680006249749881542913580360565303533872851667126087033578274589769869063731741186379057366621114413900672133776213562394379495247270096527666972822502564686908752905582817259656365924399848027495834575441859058171929670502421365847307429424173917328381890712727034713564701535959233262859100265284891997556157842578707897747317688298170232842661676851672066079516121429283491934936802351940462966938770384996744869508516149981401571522536117918499741423300916002433027314027173339111577365956146244832868692667950184294441640054755368264668994243215568090160273750761582020453824608300932632347118588554741094874412444154004215083680720012240619402350220619243948322287357634085095417728187797361848538712205372079188404039093214911812535216219175262869772768486886073555714356858483830155398069891486923138249155381009774689715068577134590377760960040793756870026552214249371898787137483817153320637061006844398937366736805960463148445214308135044188130459148448129595414115324112172247169310469149360488840369635079344973155485659676699199377484536189859455200925666895450266734567032691146546541539706486579465966551887764968397682519814163865960462882581975543823268694738745779968323507762687677498590019099351929445416085829666379462741985647480671581391697096518918365407270063445422048028978402195634247860156324111834101828364837872317935411061234725507041563259494058340446214074443311134681964554335593821995000338159263362213059418175428798499071874520841529949691384937809129500582641482762120646185145681090957403085018496445716418658415465850875052687145576858872445552116703152753177763356385634312023027077109103054424529630204153559020917531698389796851931405654407041509792974020034738640384808829212050207317972876893594971247127305607199951345240770519819864999381030661537835870608670458894672624367542896918408635374087727730597843388735115709954535362818126660858827079059156172108513747461319495470768948775386871579712839706485122225108190224837091324695703259635862872070134087636593851354860386852234047650184207664815291657857200511987204103990026509137579347686449429471463760457081949554065624136993737991962221904967408889917055559387846587100529983426132301840193309286409818460857386726722696121459188368571836408161100888532577469537222717236549175778379202083057644994815572267559849166625481389013923876162141588874856902516896808619395444086522012220500816349969370023389773313022562684766470015461657608267206688740356919974753821256565531902005580055480459103234951632166132302726198051129169970239334986688584126618106411707772989857562390520129649197311819980715703168027648983539349759420111840567532658084044150688895172914861192167675283985905449782784651617939337193883974019006124340279789020753411177426770508214306204834934679968248851787033056841035249981719124742116802073122861983492995648985927835815558899752997732659661786001222234536323459541468022876344331579562297201987658190559385188534326829179239631471925710073153598618991134914719526714869482496363750327511700517020670224173215153860366572954391632798604521034312942942457805204794664952288325126001860089584589709954449515042357092690307700261080893607170187902266903792353595318569520257154513320992988109195502681427377727356183358541816754250272488399919817627730172900119164447588026119516776507003532358511194889461681877549702528262402962064584903696685870893165478572420526904322879910354822559721192774115871510347306508763425362069509415276427797013359529275545365394472496097977421729843386564639951021913897992470656879353842646273159891068075179051113150085230398930212214372172917903974285574714622196867832295189029364204461412921854068621726829659845470621732904618037795725458289882099686751093418627475931606466855810334828898711430927643742473493493214039869387553483624717993321039969033381630023272614476098725042843394902291866975993268868462808167017841883655649518710218143620472259447475150252871053308253820720070536183232713131096379490800083960565235926745760483589050966865441162952171988723356465258683269310137701297910112624729245231975708765472005723778392362735763636978495739407935517259917590357775599027680148870940586430866384327164341123158169212380402257680398684104744854785272410734412245161381766042339570144053074234542094928729926015378174681638378026516464545781696558559832202070936204205684666875460396407678595510095465701078281172166128363607643841262840548690428693927140057646876821884804445263083008674467604244015150158000935608895309800149002838646529095427515609735160897388935457178678109284978642472351213428187852767775987983963901501996242671089036986196359638636566328030823649903740106122482252995451119682674928760385227501197155221766495886471688220102549125629163443017166690916720170840008061364226848625671809202962990377307757686712455615376992658146999861642669019999733263073438702562763951989704355154690391416369545366256726166842533560363449312193965622122315613268023760140924319178697167093314801837695649301348051252744441193895869300941839370863370811954370151186105537416200480968720467063859359735305575177272359176049191523777814835196783115626336845508621666054481985491541113945614852310654592233276501133945240112934128768449383504054672011946069239104868379706249487452320951816567346280506148860931586910992316334362583171966089775641280930225428771600803863525214759296477442766731570914961159204663786926419385869437963841269930325142290478141168714481099968004664565062012799395490141372835113219061945307150541154562113889480981537909635944065095639647183971825510088832549546261461235105207048409990813771819899489572566835993014521679937504616671572037236020811416487194304819105654865973532146486449968579157751092551391414091074101074904002210685128684172981335547960447912235891430466701262628670290823579533453032451782561348632750995044526972056518030391749342649314141012399662387464486366813972839593798817698907745561683235129785411643890929311948418946424828409184961992467932438318774733243843687942625970582429526485603313467415030266726998677415349904415854387815834560836167475249120557942639557149579599462427889531395015594474556153843073331996062689542470225241275906349039026795072742128604301165893537253667392717549393491310448685854318091317231176634969688292222400846639591427949023670601099805048612549116248588164580971750269886047846542391192025625660629346039056489960891039436361094934476086615351581519213045023651921831001994814794582875731311802581334006825474476947757337165183744386034968682513027128486666527341083836652252694649070465053622220579745017732356057859401741658575462377493559620306260835039281118798515306924320399545869200776182158530484261268990821715913249377064144376542021184673854182265351953663902329328928059608632648872150692715063217442776387860861618170215562878960247152912032452086886332530742137661773540172263879481138056178227091431640232371541611458111302315405674300832918255977224251507979169295413125208022422245928648000652344172131615484510537069403441105517745110627048975609632288690692848357215184992087345260772951306105213517635210441226918111690882731440780830314923128477252012836752790024549021363352104094870982020557407635257204997839970086065143324589654835378153140615293260845130306160394936678580843259316992895595985746513941609443033160247771189269444569515875177251384871292358416643331063638479573091358743708988125874233791509935511797849847045142077972195821981468839472101782722229766800889470743702255394174784205555777354552297601875280546287570517475620622069278132590565160345579491941023482384240775728679170760998412030015215790493429451977312324771397908884074422100083289037690715561874301530674516993005231856097986670980552001849747048024459304860278333370737919817143999954049416800546331825978899215895713327219569249234944393511872317694050698726631183476849858202521072946489985601059182508367840802018226871242660248637336489915806619279263116137575907394651911671905445635650418554654728899119991378033555272569149500727910143282037837073274116062780299971873963951523528484991746017590935433792009496553273852504750301261771095289426515378487930665851812765852945863105890710524757332324093292009246790895015960078590001871477379519752759744348539704489799809561345370826881403443797675463244142337217578479459317794310205228181213107443486046333768456007507610973908524841811179947909197194938772094139617016607458124399293183664784111545136950594428570765389009419701452711456049547695427170641103301614821774995284230355940574927742291972171778291227481558269160049078582346677143730536442782203984055666582446067007480711437393624383766013946822466607195957737287032879879102755704299234101539662842389327331962211183619662057445694812934612487615839648337269996399781629489749789524257948697055839824761649118177853099061389146618148453282453586166862936095116489242401425961225277808804121009970544080568916864225716472256930646196323210625339758842590602107012919076856948177713667963428848528461201704364859739783059253607787491161205485317746404586371043685975349292387288074103782625808089340649327351280499348999925730662061422139549296286323342725984485865835073733383746722270724392109957141681624387706079096453107473866830148029477830659146130367489209145058283788812127908895424569449027930065321632909572576573901738512632567655224316623400431716443523560377097825335385475688394137122528082508857915795519188195949183112652769080886745231791289479504560635590615370336415546788756404149667585962185124408160146988721846031101568353172870362249601157336675929876958307963602132378085888746448801305545843804344839059219490531074470830496681006183089826067632864415498277738757384687189347390529223354261249798055956545312439050476297891774760038131348212072514187727337425325950563555672615476321429800377985546627305239044569016293012607042638503017295921440427747665047611557494436793754898284818697495758962578375029901970394960642464668217371809454224162983133560414791551656560217716686157709485654442089649379476731501128981881115939488953332525876247207807742696389141146703389397703590503817936556053972883200529894933288935293392300176577050320427236899719154999783290598466260512605303191729800801137494456135812308445454989332067286246202078832678205956790272940982265315783882607216567534463718018460557629103053555794883905599654618928060281288598894358378448057285238685335597367055724802013649990542908069162744439266204169865477291430156453916734557908507968951593642166306809128961486374931204130032200396634794748821504097730126181574270996243084407707576930341180902332407761445072189230056959206257986664252839786274291920020534340725015750791483742949001502041352276325454382251411062945275426288474933891886493408232588856662029220947621321974234854125478104650601383945549736723781493210885000499391008928452289762383330112069327118637452346953180733982749547904814606602798400060054847777567740893742002788368256451895815325314466345916882375489295000252084975786267823197156064958036490911140843981982147602846437055316781877592749398902014722370934405558322782323009143730755127182466661800638118683141042546801367330893978179561504405622796054568863056253951672665419483446675513021021677908959366544152967868809496418878324479142001566655815938083720998693638839424976946278523527899928140590415511799005371079429873596453884667702916640585995397872263292971391651179051178907145689918226242089888104487782365183503012170405305610803621808385808293727707786063341840935441881241491443415189605502862017520767835465067147397080201858103214044521909770702975531871547877119115145616700100783670406524291746103118612846202489301596118379708050991865422443790594595046824719784171574223084421142049503663588396600119471138829498078906224332525081982797515075055739469276028749591742045154018658826339583148056315878171031622201351194725067361673996715283220909325063482027706821087903837845424954138043221868506339136768293144743792255600985258145726036235772296172548548739619957364723797347119744635021456713839127352570601354958737764820051084830251272780484303369742214681196596518206075182916613830816367988767606900215119682779610359422191453126850242095871127040560062898699816233940754741265730325422530453883407731752227798515715374300587938514529582007652823154738924909419562083806630791731708408879908235219322156839049945006090703568946638244843300431419024658940045196342724024425237508662868368285446267637970315535555912207382558288096067694049076840450108469980168382497762867256355024699544373777032386585771436780423075645973210689423987570720452452205600543130339871399222980882570015512292333090896827138569068449607969491498619888862668370587517623979137524512091181159394618538820979674409940177916230861107804242629379082454599822740583059414582263323525142467522256696056762778915113806480719917604477795075205554654400195939626498233660567734509790121483930737487854435866649759289685104113669709144085167481648517352597455594673952655118575546355838879658469466386283551191117513072679875134428105028022119358590992725553714200114949197987708004256165501664077461015015063723744690653482130195281440779368038091946921206801731673890044988985336165120025070612589195737199119079911981228068246268826606492275179433762453153307224301600935175740493412023171439971438370263217805209232684465201975079917240334813522091703909976972179706056303271724253220192853498838118425222992470622045421087647253394601392194754825698393650922358800918160607334703755550560595965357877931029352238178809858321615324395041400955047412426215509330758034640070984837369156316924810737849440573937805573340524857687135958351289469774253579464902559292464601736939629028132520104523463335531230327778282354047410470149969656617207883464511457920041999834319956914814937614692297579149205315105271786194529714989242203442328995642514869714858731277079311318021753063872706017215671399935460550103064617462759053061560942691316401721630464461775592903759284073682840421587754301822553493051529892472583284450221603819912473831391162508015062982056646675372194495328697390468033269797338020673939892349642686092019636571149841889242725332398223212017376643377656761931223813767525855573464329454901443995598221693767659966684895534471174229297480526554323537507359646419693307971359036798027697418333124294505733351923750158450682524410363331066507542177886600922900158424499137328816139784979835163074773803372332622025388007498164626100662948456439861604963458366899331117832527066486809222315741343784972219944928653588060265730874568116735719705314822853186763644595766166912659656232775636676487048531718013428676209577308877343697694573756678369277441709067027809649999456932331956596240420001831294131579489350007084440047456523434684225032798069989905965778206062960879672023965593394503843697095857749292747671844459426583503225586700051404536441994591298433506190900993570504024661836376249034435255082768119226796844045816065722055616250902319580252605073322103565632919187218689708893230791484571190039465125087809467910355183208393078023437346327363605445573627472678074758720911180656558525925234873714626368125191587716890943164491775454467585081495570568042274825443745330192989867734531393836152111641686938781187610436479080611390841266424368001778769619888131415906160762757731498533065947555579036477505929299744223574631449569416864459327650864996209766539901060285806982844771324915332072933631623454472627284011829935566004964388704258712364869010488744308511250499273023334354535809179486482772782223358128686860065715491737018278467154344301727602864341953649763443175409309765751058269093497422891379808917860363942815607662021629476850022817409773716802678999516193263365841257894032996049874818332077045773191986874371369564595344705296939602922052027880067417310428667849578526519237583244917821965596709278811300904694407560756066138417197042203883477461887478789759133879238567551833628589870877733209377621038687042141282173008438560115609439690200393085404706239979704649092949070932311348859544976272918214908396071904736530781088060051585206557353591443788638845351381061424305078834682521706686835159013099444490108232246361122621308557422438257546558080553218958744881017929930863790859765718722838166398228840692622372801644415022219420358173253922262945060866616953447386570530065562142715514683574277339982286729717612833237139921436026215776497999361332943739427139065295257469004584112318266397563744656512725164584789759950125046339216933284714616203004894635263048705492207015257017485175510024094092413794832377726682948565550479616905272074381714049286342635907463330382927617271113072242153035452319880551940357818105896546217608938245675460619022250632308506626235551427543993686067076446209485608830310254072321699326061395126825386100591737258212661304456586158008492127026738907882793830544426707696920930745518896450902538989506953772290094301129552938194333493609984926245403326888635614162837708252265319582547538702811858857883004435261452440013584233650910920185867574535038117553682312406095594817905512506397148728040760572235395356482729777781640645245324137985955777341751615166786673073977900982569184662566476175491162164318135236692382993374609777215987014359871522073685040738848553002542719280944777259782452791972045000786105315870185667743969351866846540620502879557553745952637082688440241773630371315823023565440516031442495143305776465012623558990841847213912529388608561177777134907798365618950949724440647195798917749539956023775153943080486090144876158811603630521117542009498006750752323053672925919005749178972549098247911723366291115964147405520992073981320604662699379535393102050888897903411685597410071052834056120845370730030025921480076674524159725253063719696507778813174508547984447764689650025284208624511011899548500881003023483294333767175466042847134920763984960423497993822501078209646136782520163476656251356148832496786167463242020898773137902489533366423846245052834400698773211432590064387124863577856243886654767128788975699277194074398237755214909285377728141492524975582781381221540706362613492788014616648795774257154720795375800522350254532528216060785080314972742546335284140112608791998410810428692888183711332101157019077608687041379846600751910686415310256081052667145601308177328501491499360635402347879526083149258554637861496648711800334490027070940291806245764686885018185188893547213128245311181491693088196527267168998565703599524617457040002740924549851582524352610473064557607523917926822890540237023701572429275658479269322842496851238103287494866658197718347212391369624305222059516607479669676498110264021083878152137505108107472424615851706601042360055577155898281189047773573744145847256591337376578704656530677452028028730759701494578886896624329701960071235974551950142826996007079192591222258788249200670266279574760607481787749528758101181784194619344752222329392020768644996053836108153855712916877698884283854620162195855643691646192431460591613821296091183534217569614990208132853458371198873201801365103212144604102031503405183982559330952452926341856343280312837082470166766768728966344207938370427970508031962147826471280764326385780259829039234482672199293358318261877785253318546049270578186442718495538565663264533383023108080105103272443878199305605424112776821369622676094375855052824921752295490203579347374753918686622707716470321129167004861035589975088649915058596714269084421136028162710947019387775728963429434741432690625337295417107448292937245467208704851257921813509526840041331841818400766429919485978411113327821145688607749207380908941939827022970045477086198177188243444758007368165055264246886379875455922906204925698521652417793089709028834426592449521545640452140146446998211315177713463394970850158225243280818742875505141447710612993105505056118020454349225678466594599793305173435931639032615009413683408432701457171399935195413675797786603638827911550454794815874517554631447809187537389104263763128976559895673318048529625813249370182774555474673992225858035152958579247905980390744644993589764467195294790166815971976146522393666519242860460699630307810176947317596842771509985747176390521874271009788165556251583371020141158736248211839940855745717400411826956516803639849084301345402169181278264609094416857692429579745124641314107928109650121024247147650835278569716896986543273636592047921602206694609496448671708213403817638418282165937050546807229961782506047868329468961716927669433956700841336259572860354913978793500815061655767557556847247888305318276169842815177689928680945253668377765128991633560831857925880166386966528857897274419982008388802695932991300437949620799877774911586230933067897697903517601907987152450388594081483183361610572944280915042284166577817824880201849280156797703723256483756571110435831913619596811274500861048153413863276106835725241543491928377295212464931988970814365554098015137746245045816888694825261359062470173356381776366913413418653688629018850239935550328992554867965715414668152620409116298595831741867581054948170921396072455779766695839173138077744380045110871602332483079530807559181674004722348847256341538275039982651045925205450658285625740790576327963148876963103607287446994271308871202150649386799615258437152058852059118105886712735947955772563120431278856718249904898898047823530475805047982677735581320830055681106629033611957103547752872720449554830112295790474880905594869057240283080903961066742601296023141719966381224497617833114076497454962202880352746482470486361318097306986588782387238329240799556037527343884085324525285127886887244770863031976471585766174685956646865396308338392062252827815563624348930864460336305673867418364515762979590972682454571860141357218163633952266457110216928841901517907539943235088218783322486457504223758177864784908344909077636925252786842338810967982988250671775168793470639996845021626683573431174600933104020342288901356124734949818405050250612857922388931986921802385444795649003154208438937488929333874264505809819353081846626402765621336322844395372939705847485169508758309366044350573958888068170921615628259121366460662001289546016403902428172466067006470751901171025737087960056689722454702205294517305747644254430489645156886628315663836746981374394020927800395650923628303582469291416275990675532756021088768735457450120934504347245827764589349390727240076169158778803535992482611194377637690682084121929552958598047535161197952794713979545044232497388176585523706582803324904381048146524618604858030652645796461432174490709196962026230392060292425823098119093659596839982805136171691223599741646181574515400143659889600517949670565182543365749835765743141376502336602203357063282091409938284480151285310698963092974393724318409504213321519198218222601417354388364330272775452037104986609079265148686829786528950532534585961745998280390918403397831649332349248445842274094227645122135344856171287724747585854650076963821122701966772302638206138682782575146076153772585186379333967109363461247042504778481902671179437019465359292368541134220188165459217524365149551854897843991208388126546559035988674441969093848010956300251463673905712090944046744332489654974739729076685281637717172631213839535404143622300837089720590179299302606734082658388573758137102665966342210699997824369945047804228300659390512645792341714138997631145057389486932371432862959020382290556724291650151565578741141423347303999624417582187063901591833481781359421174171282788506684994366070577453021096407564041678107750618504288596946444198730182288007268384169619170052426367256598527116219282556808664328485793065996499897388690688490866969611878884296295562174851764287534929347495124594756118261477641010429415954159061142989406781143396501373134052493040809425870204714134281971257256841622562572874468692434533304256987475178468515690887134403787686354004723691392818293936127154294080358679402833039614437686759674707391203696847239567958055552087832744719487162077973138138806535056977339958899326976679891560800616673384294022543445567357677624964674374746202207300331973021739022853827163299402236704894622483252228285960208155946688311482018429637754985544309605038648084095138612411039117252721706447925947187882660782080488405303634318639370195350323652003494485654916576372234260611456806139286337024702930461795291515967693109500524040119812232393160503741857687481679040161756545558711045160750798833221026959227753535809742131589537396197117829144848026181475627541206705469717196758100809779491763918233631736563990892740541917232282212626888563625801474302661436389455585755466154737860421155403647906873096797251670797828269117919731532768059193735228992771727594773075365070435625053505251938184515564900845271086993741042454558535956992513158029838401470129034421434588451063197832481270453939316547334364537840116331672346099871381042136826196428115360217505112755937918565699935304784749709818883908102543492245549894159493003476426443777271818943837540173838900361010889918155831042609840090520361190130922547229783988020326901299618393831414539155204358049717338653512729822225248412180259023347988564496974351132656319274573157687593452156638107002891366059903258619697929628232939827623105415124730808998352231618062117448711912230062569953805429369670024223512168437922974406952383231835492208341264530391555954933993294307340832890774451212033145451345715695361462328018012369300076845191598319039410917947766260588805526252159912665642960606866272399513259095023152565343830542532125695541139659325602750981666720544445345056782901151737223153127056682845347303364410229809926542936078352999142906788854586844383527035479944009410592158773892588529964307886846727753380470153914689065417043820733921410437594726340574600161348043880480260771809288819158346942725513265147027312326836512846865709236490414811524390929419701047069874272898186383816381551027671554473594286396989467547298976981566489300407893248024645956564597553120007608569236217638197265583164040437800266174379307680431027340486577440332662226263675140048088503401138984322902451801376636853670658783342812346660500777174844381120048186132577870857042950856182477477932202789267133521145842297512556095562861599138438829649247746285604882274862616949483467269615357775067426026274505216845011260617603727187084330344814185814676028080115430775809715380275239870230158241813009850026198337989935012411842688595223653141150944115917785589595303792099526127480035241371732376976540882316058892471382594640409695795229409443246984348334444542692021299412265284931363136705199042232182099062585478615910627650514290430051160548698133955253468288058912339732796035006543733010646241225725389021913077341724459148315786007403220577169481230670274625044333723964263944439635318692882861540893679711769901830652741565563290587938775140761606166286581927953388305104520760994248087079192257269704210407359531083668044479785872143451066711324027144092262470020220914185821271476174882781781290835622845589178332590020666539321724398010589950815158253887681229000030873680438938759941669525439152194804486752693942397759552152322660952135759515426744158096431369621821687205148377093725315440106225692274716913536660899845771062337273614236121088319986265136275112482157731135719166720741411209046110455414728384774645618531537954524160459063060008195341632594709984475247865922545541541920129952587470977152117492474921077022726127018458172463321124388785531809813405226679966998541909649863531223960486739720147266587495025244921077166926682988576490098282754987315186755167457303324249580787111633939427096724136642564558229625023900324223254859856111006998414904880926343513360231941280149042016373005103596826775426080428766962648686682362325001108481854540679914729334925409102371571616328631787409583643108084549891738916792257738865668871152410686704948584775099819388963216131545286377048937901404704910379182919925149276762075630899739924850775095155764522489133202110698196360644378086070571313912260475337740822375049696173577607558040171092837925232823799797335166700795261920674603128039680614581678779363105791006414155725884642857389310523229948672611407261694852487044567756753678905294095318827327829587346133038377482406259499903394298392035525439319689534110444252876569410847639326808178348241909594719420549457133997790278471791884118745618337234037167518931559179199478933921467130978723386133612295374382662150014151263692016363307322635641912237074256106242034457072753563604458954265955781639081227705341626414368256435961622314718205501926735223244031813504368509247168430563471634371415966888834075595747840351999434760942136652741164600551464723988466866686017034472736234136301421987758173985764354410644967544298367320721858040348813384478698443590975171980204108860153104649424633988499738791092002771159592967029789982761122183334668078731020571008986781217417468147721682305892182606918479052727661808479147212415149414408046193518196042947822663945092050495216107523492186360152052607123552015514325404147487039446332281729691313983491382006845855568522486127570025876688902581879052557211460787567256731060831096640027046266129112711429025711331327840414816377737695251646673973666886330829085054163213136135694811953311658129271049419805830666027292609239091572306989414389952142904414136188567725455830548008861450345154175304582304328954541791808174081543049049750966555106698390768653307199017482299201247698439237436254796709642194093820262922616942630929262093755229625778987907779173837315025098204887093607937795798696253679920126673267837267375213331352942881649708131944959953811400327978156326117413594227602858641058790760577664223793488015318521170173902715675436016967682750049529697892917541759383075600308358707318607783491766683369854169256621986218536020290387554696238581610369048721941756544799088615690857599104481637281531054466317116921367935188378556577699612744363394654593195592131167503262129423184411035946297575543124156648521741855341220010285492779281844791707625340722654780103269963798376004187760696938277035790302867532424558626818734072118398769994761007094911479690362610372621678162520077527090006223859978608231354921139717348345928379260377423446079096890435316230574306831699192863417215554025217939372384699552273696050523236480141535355483070556130854994642945632460995848787030017703765890372347147617005016450743206385326747903410262902055907740076864664002528757380971301466605170488400057562555473508731835562075629656489904999546034235825583220930234881364298925067614831685891908584249424907657417558933324638800332981601782089061555390866658143057389210585369587969434572612522424300863280161939014907226791415193810727071716774167852648860752505922063612657904339359035910854133977116689646781792886879024144624441974024371159094736454163418931481687293808713058609767595107083689892203114646700878798601839471368317833265524848230722089170147269100100228682098275814468848040907296474976159869243994794026042000359707347576070884668432320139293348642570463192869206131641614371035846143835649611914873257413587114806439504130162453773842170712707955796418980959686661954337030033305917104585888100586567472192815795719581962002085938882060367504035036181580721340298658407445815790079510083132274563810646478560962093581773789644542018576134313322314436157716115509039362136112670460852449209953662546425682309513989094947781481007064154022893849451328158756360141972597350737450300724893710095414639708528549913661074371105994295506275185291719190261793206447125958605213950867106184145836838686193574660992674177262450618004614621583296058181366459552272758551715003147025893401346031192983365832405177167835068788103017707654604239827895782035793317164451053808719902787625229328397061518235805060729981122863665988891302450092537649564962943311793633297581890955943760459150782618262127434561640296917840731149834347224995530887930886262118305280091637135906403045714598944580791179123169528828575621311390292048634897763631577346217329821486266468139872188276775677333824856396413368869124719895882847640602104756223487867019842981467767821062433452643016561969978199627534690736729505782902459081508262459117281280833728748675050733192774642647421942811982130737109336304557978461496490271038897227618701123192660393919984881873914113663995545636912949595244872419124059571252895483426771046035336597713456242879688810667580194868300397388857652613162173879683019975907716558314796645978782057321816380759207327507564807724150906833140449702576319333415559199014563429771343977440148624467876346014944117478869510144690855795391514475689849592639283441651312516112598209511387759998255103040072308761874657005537319478344097007580981786660066413447429501878602068254180683789956437104201667111254921076033166614300451835161795992121510070846971807136475068334653582373727612206632568653646630812608423223307175212078845283986595728068212669804154697942668254474923214146240676897678072053209420838402255967611577875085176966292729841459455311591384848457023702157464395379487201600825620040445233109568605346778541220783729641522678851097238554433141482974614976190502306870919692018530175367858916498848164802650491659211819023991561174109599258474724488489200212540424595239545401645460142281456223926810900827328128829039831562897282307852667126736893597701340230645069803697768644487754934456120508941061302002826655151267803398504208357029494807649754686226851005645163578343820384032339453483269970732527105806141903306162104955001602398555159970626262943708058836061333714147209137014985357030477082799926686890600359577116225822199596465173942769416557807841869030014849169662345346819090014510502280022498630739149952529052115770669767698492910058535168631077063857923947970251541104379078164887022669091131613814203520194601058796449439957084895610989806059688730171617272409316472517814567712960272957168829590638654699337242238368386839699711852298179424950892682890070978183753458351159423975362459315618434993902850634808057972962758009167796835476322505648324942776313805169816788885899661062876825917496217400365685998013849086257700199905248755074556876041269454378479633750755320394057711661490647987634190324931746797706031453352426086690641973557120339354566068601327921572459682964435077223899909027505578778346803196298769440440732104873494712067258140725819060793282255043925423770500755130138753213889007264684207715221019862044164463580657431994856120946441864725518266392451842982429946881640865157230431520032857959597741200201448336052584275829111206692064274617884230358394681790992356863143050599010514981537394355650545561047603218579802984386281058549824006793476797319902058513338671839511917608553826901038340374869804169919091886800881485882175741597665585281919844445923704215137656814702048943390440294065720592334579656006777309453390033151017262007561270462074238964114899226349633104409592219502994455083596187534461411376393870276933138261589169268763503385301530625190902108571335396669429063502707155384798302403828905009721573532547412212077063897041528699542585456759915232058495916608172881546890101744807524527527613190377581582979119796558888531811359437235132367579668743074213131894197282478581611354094750845527606282281724010372189805450254631203084612955816680348683218108648544798734094402231556103212437579113244347748866083066623837016574755232951948544327543517872255234305328468498828829503991623384092182246567419141627011643661029670659990533392488997652089701876907783854923081070928268416366895834602203897128620575892486846096544270968504691146378375278837887472735266277968007280423371096583828269117627260755768582700845138175397171414324212582928958328528395513450612686642841375380958430056682005064670854413342221713070616486536815849326820139924278365363664994890013045859441238348038156675524615075055093669506917428047278198099848040179602974678596977025607213614255471229195500269969467453089915813256228800758874390197820825166708777137549702038166727319376571465062746364977791718148103001122295849093279069380616392970191972572156226025078768279012090045326562490202460198298502417040503698736273300693901066659155353555901273201170454187339088915813812665352623429064242285625577355733823958440418743904490093241156056238919976714543888235467586393035224744124130047682974320107023354264281501717051069881113906704743632212276867378153090706740060028195140420703745209605903269380179598582370810929785419702881655989204929256483375679724254990056682543906687289408130948104685182912385287287345894393704914558226086124017460045077954812689299189678885150469459335427313172950093342612972808984421562975596858981197580421538531182475287701556070631838504606729734525620363820333947254326735581278854394922075092322148973014892227520067779874729178412329158544120482081857570195100523021460062009989743441591599774028009944491323384653332283509706319841131684135708943738873676694676548546160685648637730443044436734508226131146720110127754927040275462104576817835410491040315797242025671577933919450350982026956385600366217222772785803789032816235020615260722114663555300918746438693575250328683804117460254417397073325598507741408680014222327945515728792937734474368848267540665717641916552511397991049074228230309264478379285189490932325908635706727882541127908850515480525202745948787917827199644287259090908846640552473546023502436658817071793431691368086781999330067288113438235847594067481386454013687434412787018125320974416377424289669250294868583917244522636865065277931038261345605252081097952923741644763949655774807145131658382995591419385082188263968350443243298994933283162875342052541349348021129236006868313212456614449867261712997420036226152605545899901098644269999014410293065981216086698907233257834447729220554828471344296755114463449135836502755113046741383023710047300819969882305996468046175965640915370691848563333905200709612292561971084430011185822938914817381011500474150014757071892266953111449018266219185671583513272402567581065386906018272021289224647633784253942763001706286044579067320935956543086335146441599261519193548935989523108705405984145306776232741549027064020492440887926758298102294134552873831254693939789163757964599945417211652550922856111229700573818121721909475167448783598051895062059219774819143721997318043275167811329814570375863599464615779275203568113155575697577990452562993183261766644812389181361429514977649645247502006475251602447529971102008094819579198926953012737322261028862390163352987569282081720772100301097822945472165015953408255570298719450624148834893021250060888631405179082028334224968801151579103338077251419310005463567456435064589473230379749167872149333085389441510075790726781947561180324756028809218922053319387951239866795528275434451036657507500446456103497000351328501487791762769348626321115610848596302928860741974984780823957073555602423002243474560612167859892374523853155847616932248752005731343227048240726844401918630402133357964135015986491836728922579508192866451382241057019089874319442266884788514894474345928965397301171777729819030492849459435138226215297930287761855947554575269931948279605702691029197383470598500570748024722551226396625209836495287954963406822884154629141528336423242619582240908981487731633332946730096873584310637137396199653159463096930757772704227991733253371886200420077793657272189814054957350614606090049947090655173531911635598072172264021373641074480503010062968388785490108731633169522031592153851610683654684868412319586327658259577099637409144904800950636430832842140191572924906616716831408034577449487154815363738911662182594095046495124133268093377943547095117413757620331434983822873293922913365563828671815190992038991786329091766974794560637930288337151269776109307239465059972035788566948560487290934903591086205253798339633405271057724545269856699456436609823836355399542627044522718439375114244314431918717745101658788550677142785829776131304467343566009265064196637298061739074271538078443766943877777032123161104723299201448919165566025218233715442310394196654888730623036796908119142060863929422683053286724760241619254849251835521617768348879123149791540534616152405296176027551884243095323363107071688232707950486863237133988652350112765528344442104310184720853250758653284683477707740387954977827477245689280725949047113181978502333546405230528525682520743558644773681045521516287342360419317192662557196965069555636658503164871674771870591798369051394847468310322237395989084139338672140405321228808342452796412274486956481618869388818314644551596305444596274512932091213113133014061361411199311284930864344850084303103452259814467229623607488987940130175173897033104308183149488251580283973123996886664296442298479250484804724509199225664878302127539238032323707439823980540474666573919966210939585301714784948646774599588849559889539404308508313956051039694756137892457213704670342451970090028383464120006681812375573214237812741526277118266187395565137743383005800009338799184100182084572014160319797883019403955107904075666404569027709235094011227522874667441292468528955964563406919213726463306769445466820195361517630366387434657342757496843275900598003815277401396697271953392644157651379687371694771990798550602274892240172035632047163003085966230776844963382247898832982567441449051893118763763807911147586313135184671078723214069882408227910472993292444103748966896680672910701027885008815177695641378697597606816634193373369663178597177659499872658089455490631655249880525926219523662584727217689858027682559799527067102887351907209619825595074217516465296016855735032610153390362397753705138521539240258261254315403742185087649129570397083469053043692606973419672266307068932484911740474313843923420121734189389980608304430571660224269514479529071479734060983370777095194360210855217131036152233992253328380422147985607323160276557855231821958841852166032103583860739834208693193150792737937736265116884650682701679729933445283365704230401966587830674429339899204965050303785082717600233962571647463537193126499902898289656988764644225989874704160720149800820329214831701747217906505770667599732067594386807807573945606896208275759933578420129714844973729739655891888876745750074224181975839447926689440168288527776362284559116801670279059912288046371109680839086110146099475475817730447377262584451660027421323869337495703421969417813999158270397910786658949997215637501099658439768147217291826124940899273560674769742148894338862454424003901030577878852862346776300791942672934463710244889813853873997473937046398141796886875866512744185051874975883833678191175991045835763745277728221576117830048074724822653121756600187527131346230022353229762328553112606232737393223147849017182048963696912236515020659501565691359716997382566796574398510069772399315233443247165511637024074032091129152644291407235329378173276943865320824750725157761297750427145749888106670129663895982705267323866725493982395616142286350008961373158832764604487402536224335488711562529022364016619069705826273243778987219228207680870287125483855029752161660550107511461249294343971696950713522774699235307667037608242790416632984573526440178065713118051672288848783015070712960307874262489613293777513694699071789266163654323794724169534017195137811949904537729649260465704753444700782211758128736201894116053013794553662081182938922126968021966887354914537602856963251955356564817250097627285920855547743205036851529563100938618205363485495747630389914889383559708831983181053162199798370040467153715954752658781149488254306672283622062039366002098227366552319402742294077454008024742470820773389194101228359821252358851556669844981294341255924012376623710004550848728433621550030485718443981504113444804291943466488564274877190592539310452000295110656974580963882574604647256638101018423003196734153800908937555293566929656961862086002022744353664957889969983545027093728206400287790904747840911519596532292333806060356314299798256295980318044809105423313336228322182539567473003788878003840340617526428605552133288744202900173649021621454999198171597914104327089806596674361710845306383026014871873215139095087556041761805348005939698141586500859662708552181975885774556655647324931250533613688446851392128224176640048424233696654230296793260797807333772838577830618177895477030435860077617049575578531758626444718527440022117035877543025344898497657785755678358002124493643922187912005722993046150331441394035583227110362447755810829742478940865187187026458642251483794901441092584005413672347298951900452866984978035455611234707812519939827726546988446002629868045902349012328286604055352203295744340498815194840396332243056273617986525109736093054274049991153953165672188612303546925199579504627892478436535046105067366486850751433722201707722186212170726538068201052980355917497257114574844697646795766765020429549896773009575064263210386104788336879334761125648577021537066661780233025012142158384520579822186986739551238268410297633307733682085111637595245078790324336199067911813832487025022400618829270734326963534951235262435125235849055426881565422484358185170277772785783988379292812272147694532425619034098447419297555642884041148935026149442392610725255693521308115145559482694074025346463386960534087371188526946311142332214399260696742532506771868867324628786144828415959021001297348063589601132567783243172455048973805519662191077111416424117252340874010491236078393055644077915405437581303501669403854547127175637687574971480003250358425340825639927457324202164701444170009957373902624924963740616666812440133030557470142958603596676665040105817834245094985187603164448376249078518717501362022097531157972574783218246319071244493145854342695661112083850958972237775700388596741456504565772028775869686856048290894814162288907566548737265352872464837194292966796382540960816454021439823171179067931828150971714577937621570251740843202117233656584273222093563211000527009961657000218796586146510486347793480442303241440039718919845164839585115791622499452870800841045926539630272537937365908391516926173675414899075133460327185676760212308876062969250826585522502048338120960283098584940521566682016646669093966577522721896199245881440478082196244491696409724774421665443964032069986421319210117556315949516577231235305151242291289195482523016283559712002501534087972050228921421320101181957505130588607195520472951144454252552773745132800213094260582799662056893636885042478645365259513472978760139612066354814407384999426081863308739987069885268671545385579688013483055934292576143885248873998023786697654837450150904984806040449667021221023159119390258366317849419704167883773262972313021645455399208720336683800339341894105259745412292152961567551991465004088633163167404314353920679813220584331636280480937370219170426159014611739414083790175815697393554310350974552173183072889545063688406430167652416693118844662454787390601314821705719410015825968310243630922341817082670452768157568779048846399314390231793108413380197161458406802855394851373326432312123774591324176217635910546962250546150885615892861470602552514274466977418902471005695751683427924055381476151931687178560081563443860795621634252100258384921160691045065368568057833153209047491918131360443420226874454403384219816533139999691817788898347206573005375781237283444704535889964138068089689449349829012885769524532704942911848530034114111095354482108565353269616966748177375042487713775122689126292750297045575089352549666308417140347725610139719650710604285597590138016794482276297455047837451045827972675715025486005509690742944036221071755777287595367929270853212763074575798086326126451184022078611386878868952710871124735145709373665079454889483386675225230515193305584218040185979660836970938176243569467292885815672706918276971017289445136041413427356525819177826173700311799090553432795137131978901366044236815505320168745679881954856883673359771194157841565148252320276742345825547515268231761672937423486394437764512780048567904907044578600255671024140556983225603724087673065397638689608618080431410460784413738627123415442911633662800962202270245205599012961900060766461521260230708927249106858585700599975492958761594170467650655335570393614385763866255037146449781858333597097041936953987532643160109154540433023782545877722971101895314201118686043028055077890522076851752969589946510180457536073103235301284350825731050074812454284186925308545674099943358238240866972492219525296692207009527517345131063251197700748827088186313673304561015967519314046192944506006079886189017765796976909783555709635966805401735920341255634112835717699992879367984735156399326427732378803806792003360873016967614465009945919803844539416006452696621216521814163414570566588150926183841301835341342192449427463218629392431869728316170480985127036884784231177405583936919973081689793318656750379633378954413822283315809393212842519221948120663258411496863696676597528824038469236676811337616648461572117258870794979669904802201170756842796713149441341436240308752838054895505777733671551088477681059239515245099729191575448245471601957566126988121845441425508891544306347557711283754034120372357294168078979787533064868645515414287813394528271758956045757892807071514379816677308862626817921304866190242309623577730368348585299647956430269498917428990095298795439801501997462533825538538059157078360153334348499515958117520113584015627371700045601774037231679315000507453589628427116879320438902016546115760462480900865572783741466642259565708554140653200133091658274241737941710154531803947565365365302077539739001216766144134375265546202601352404860503618672913039951468898629752287132326628721092756683433121264108035274041922774083961053823483241499354745316782230824676454190300799968703701091556973240009361935435146816203456386221473446426240352946134951537571398734646911527886977255397649748806775335692831235229354054116471820158682366541191254283756842509704986354605336047246957051431690453667540229300305731476856634704535307997234843031547448462438208594363116633173238952632236860633442183209332105445786073810224297587281858067982715711918772066296481171756477280097624846013841618247919194306916508061501111940079528052275769186564563484380993565376333660457001717804899584531190750435234420065839091469901625909235276430806900151848954813074759302452034099194821176550005606345503802397968510100302524525242127893561653074041827531778729660141718787798538867943611782135114919540355124557549926867335704312408917706734270443799223778994916319931368966151786607554389243705557844426357084187013187316955963359198116191471229765990893996140694463629968810878323641654844513300566076039133834719524025987698089628597677598768973069077184310796573032574706796128425168605994380414034209150904748634404181065025376821661006530624544457369228745381152365151874188017301018321354862978727486349916240501064645720553440140794224909038996979644430258753675071863499384258950461890452267257467707641374258021598261184747966506987449597272288948915627567552796573146064835934292584825245083865302276396698788377147077001275669234464156503102793784167702666566596137992749680563025679263237520723321283694793548729175699347720255545157188147435406940751259170844249653195475609217575048412421031905242665845033079311203360564565325335964698099259966095118159114789766331008062848978487049427965941941373086587854679024694746830364987351821508818199295551303066483024946325813435737644770598101478799718081566589805278438655481146313951360997614578765558374962093246969848066472132777551744900919765803475341873899777898951939522429824425161651455325535158789643858046868464132731935874254208800721403555898559140884393664928878594244598363841852854305458895369929390474065200070449405075854523053564308224119026690201967076376590802468801204570504336400620985404973459694061317506966368830490794939653575153018262543218783912532505006533594017650868831723161372697251434420329701528097184680016710154460164085173122269320828482384215833767955636938101495062301727674677205866572571786613954573545347763467718941897676832754619742567659615901945267038614669592958195916221697169036222391710995624969916935030989027708277047524634204351566986874713771417898316513661220357968833122856147646300184447552211951781157482637249961719850611663991518687362946348618496026592807987010537657738414949169244334133714118936987446739728339894176021255454802502621365737233037665520211664877053077323140439796988916970806481602889969777384310932136088095626713729905270887778766416821193890358705377010029311274004873670784316295907537806725788037709905684846699803765391742327894145794457129599230444301356410996401863717925221718678642391843373139022744169295697660395066980537411241976716925104176573095924177135966970057227431407814825393319645279786865912797910417268816883001075888935669220478087729015582901719360843951751404740707664875098741062491901617017673076372613101560538329450350383607212569962451349483806786650211295614410632376130743873535563689346638760619662981558860672797174570332925618913594787703381181349061263538615652435830724953639911701498185249874895721325336939034768726259658030208279461143179847012725852366440984900640364388099253942237982485942336789434070016409502767396957707145212682437996151311239239714709779952029742529335418441373621034008808204688773678066908866204253608282782671900490441084959332069240623673065944392273990481531296671312133451729063289788721713306998516920815368353082022782270172631320571246829912892885263806996889427437481274094934717448464053078713611552767751399256958369971007233959339051065140969986583208198969576931270304169876513762939101435586686820877464002781731075295843307965371154148308749520067500947386934726959827415528304517327489366832422548820915797646297175661451176680870886711900412207371925896560426223430126216280617591313155264102486435382912362111404645832048935421165053535568528957296775135728597892757869708436570910871877894363561887313969278900626508162284754421187977416108424446219492286679388414218765695080176529290656543955131266715668973777309561293998878599343062013134425011850469920108361502358621299441241809156429379002707507937022503140445119854802511465556623998108205171437439665504748672863259614138984252336765342577337872946772492533559249742555660835257171768904257924209362366103747407443878435822386822630288134930316854880508909862277943211261220092539715760660848203865448836334351244163111025897101153388033493666228534842549181011356254288936876785641611743863004005294887008245556802039874630572956028130232482892310971920095733835795674579156918084518705628563589113947007660870974597493251226722667734691391278840790445952489944271935008110974713586163060137679896132918029757691959244993420551037176739944999915905159558033227392228848878205992382190816117594655222040617439844732972972932146656955703833401019385940260730958868196697844498328688356996631369560132822875581165383795705398817291209661166357566421739695219492490114916930114275532269793903336519868105285953177839961903542358418995124863030876850332911614534562735218746564977303402896920528638070252327701980362827020088471958045991475258096029088857491110942558917302302563386183374666861762504229756169135484025272847791028018246004184470248751669448936009680249311061222782900975539725428394520942555862853947900717503161519912841778464204223827918002914481947211679305173230456892250269659438795678893101543796231007309527718057843069031551491698372089565421030024996867183807336168803855512006859557760191707030211931244262318399000698177055509677674994018739111041043214258470892011775752211021889093378402688530663881592884568037722899479309818325286958614097428025163720013890706403020386626468241258633422499264157691658286415597616388183635446094828374119044287413028708042217355069313841551905939530304560433461745702832999328345729618476169374230831189616455068448708234327620079830019730324227236263531198895434774689210048588241922443660327347473151743653318350527712526808045985499094961574911857235071404297619544756973088585091636494586954735982996879611644909481531596038607165227370075592740265232917191029859157224861699591674408262019650032494588333694054785033810854389574702308589254690472743240454687181111095755606786202157475706950383996825894234231020672248432979830781485671583400198556013155255745403913796000280165075147889277839963643419641195743818807101271606653486741869154984545950871769481524164678322402732183962189810070606768649145772722682876875898159562850873849430247687187230862741074014473780522670920044379336302215848957670181883656742720233296887402118867338948962788587293405370432708774550044468979896186515703189995937775544522174685501317067246924172815125352777516298376628335846973129592277873129448974447050843169586933776644678236593968130686950182743566595625884317116143595941740736796556867649513846586339759907848737958845937284145311287687099091836595342447274335541066540075568234556027872318982292799643658379374561639992788253336460942743500304927594574637142757904506324648570760910693650379791377550172328005357599369520781084071843770282501032919489068085472348514270838253511107055791595224466231877413103623975889496689167830378260799680405010155653935046646553601851492931105055326918561291297615568879734601763677907330274935339742303533517278680985182113834622245570114575172379313498654760307662150724905124575993661228822613075271524980354239014553765359054830619573357438460196858765077432476277610667272417527041005786940806469992530051840104180232460291674212337632187568484127753603749301998201728068328662398638657931779919634046954440835912757728757245388817996931730254037670220378892484076720335475493998189038057469777508340537878406181568757301274125901212645254129077494729347449266703455937615994832404999540647472642814128715190299307881766656765104331664313622321687014197577074149056190790386955660241382925773723945393217159236769531056109327331139180805625385634698153781268312900162999110200966931310098023796743331549548728424189715999985031909044001760745558401450055750369261689507368891480671814836192202978359177190744394556019519146005829002355443074647559598400853056162254140713612367796534590932201487414602763569901795021761191252548378285229522920189619745185249238068289513465067748810482529179310963599794472645756304967403028000807270896900593867245646392141958394974500104132043437129438843071905195547745478468443099504170795798319622127150042677873176973553089276932075235233258240119608580670054809110055982219202898809973184609745419657244999167359727041204703788784354232342736080327307677636473116670533571840479714607933533882586284707466927227015254858720439209070787839812680441147481635111121434973389252428078488628102869465875448954015646549806764528140999889543024344672962809373347544677114074763429601027466637740379819983404690636740644845500820565307842772192272093604080503632565160966822279720348326845888290913441581249852379463543356028639321792623640651943751381957407538061027954373653923308831028383041530229952830866886185939218620678027706568935024310911715490840783079963196291812261588649189102144424242382677970363178856763846139575598579449733456640928840121060484160970602412675320788964039413540509372061261071698822053636711590353495296271180587420698341220625441214920672078796388175934188002655174563758342334388796470515128408090102159348109029914427008400797373349946466658379561476841236949750066843654206175830665214852264169030142276273348798827658312598189416393473653538191613961664338506721006364538658162485302518548565002334192808713067818223127937553359338328035663099891142575604102960056015669264683847274034870390206497332336740588011007474932521915958191501314495959620348094218282178250170224922267186277365443173100123870583584085163473783802125111759012098116551613911034190448292230454873036998456198727580439415887473290178048400016420358853517332424430858909897629015393722195656891164671800356528182009734391662632364845064366027853724692202141995977288461507707947535000289571962436053290851074749655912326526197786293784817620907447783299408668040230997643564495632495816204263230486809083608234197923415156601227408820791053600722398744801306819334152721431981255684503261244350727919353746445161824712414948661860422097255328202742085410980885512095916897968155420076688028237291028630297919226911722330498211154687060688349551654487765296867116368976935291272465428305730512358071486175824034628398364762129654749055623350234783199560899194377621670973094018299819858998060398337604525213796822162041577805279995906448255594299075830359711660650483340040961602263200596500528144486650012776751265262026079781723541951393652202033655321996477479748950486212255438681655786490239448693112139436469913572616613468374871397603473147638093468324944811632925427610436583694569852682714165816968124761155773158171577314125660814232444401299297356008224610882809014425621576730685378348582152464343590166959727920721075600692458077148955891600543500772509899943217294896206085805751700230489527904270908439203249073163257996849353315174678938449711380263448355729138780624703592839983837462236879252260328911063497469984477152757031521806726203559632628421686407256469365063262180794572937809357278277207441347770392239335096032426321629683201649399814850498210976538373480923485189133135340577791196220885905536783988187062370542320472377496468255851090762594088535007697273235506830743641665648930438388793207769473784869077389647075950716428558151471140282004084540823789554194926892215419607418760613130209527424408803035944721203830549544652188913582565837941738577722229512462608092095587423147288804947405415745036350039903306523292786737573243182538586304000209165026049716855338272129829768895659609220325381732262679220645415045259820912103971114689403626508742922654703964358377102062592487151558187504787873190512749288553502272611757291160478508282255691847010108890504880860326439746567721440539686405281753511032963339311415562822447765897983852500320295159176241876555676935451128840726265707037633780327930269215942880072053499395797904131423181097430353526443324710445076543490753841922092116396597681919540237509163667195568726021644301824978939618153377289737719458226445489128802716228711369776372814112953184377862111605373558929175495763563442924568774160340499891891078162589228320980343329264101396530744205218450162591253867685771159399961752912620062923889048982427346217267767391361809416518071172469078936540129352897972712583669778258357473273739187448876803204093250974772597690723129751114777169430337429152673729954336769819950874634043265826607085976506013582055284473909204982061857732857106775026777580266477096256632980098790174951631243989284855952473524781228643650412385210563688028218580274391759933590910654570968561052098513071498624970502949119792346791431963923765921555143396024182556784405034691926186320748540629949144778164157474457941537864947325252312668361998927738228931434294895221734017817222664280743523776332999697734980714801677262751600321320733558394625325138662532978858759447184553618900628880335084874745806258844915444640403129621790423415073453869967892991041212547603628398993029869843731335940348836661116558949736973673903828730059022546598524243878169522709070826564397906765873760023287698249458386374446668413922189935511544866104381374262810100905451731382849830983893707233584023163161040313043719929821440214806356620264476869578648630322925527352607712976222025253958480457867595044519963166317171634397080314983979233514413988736135586833762755454241738503686873717677370977937789899372153772004954456194500185363100367287656475685414637170256992131782328715634512183835857922817810076687005208501615248915644798540021402723060035369133608054119239620151846498856090427172635054468623036316023417971917271730185922364042061645400147817937483325901164178512780810732175168441137681758261451123152175360243062541894761530987103233144545500219189649932307455401697873404708640022074938258764922896096525061908665674886899973686547268411687768759128262715973694897658978718064923007288845629482663408147923742196034666790173378647703663537224798682901772147486177986768391806601199218854801086330585032772194397152258349153508538320479620434452057182370309029971287723416113459973797324737938488416839700489119536703284550632659096006824758060686333171644505208512734373086734203855029705266939434430922165411148612575869551627666206009188617357738439067099483750679435305528842964395822724028951762770208886429761652072084087010311706191427330034883616231164230285199723099304928161450606300154150649030234484908331172736011720470125959750205653490626889494427633902385766325682810582384322631535846315030860759951078924422115155498122421852684595013252325137295538216781682738939667829497905900948454484059612107405665552980428474688659007248964641152440922227120552181064958987325124017189037665072534843723704088526345818421883068572760144547167130800735510531307611491240529617703540591626538690564582225929613085639570675404657948937533707612445728997122913454549228394488282712629816299999149344801865998072038398974042917246902978061772166075476222674029554581206211352794189865450425598669706955774340175567343332539486626135959285836231695586340599107352199639251806785487283530550146199422854465787966142150654766930941630470377981400455306576360207931163944329249262852284209478696018369009656090940973770070676954985363144250966559205521290600800686068280371535120264201703165680842220408664254228027833181868487176421475628567777329828413785809371858416884519047668973865539483274908870919222610379523665617660959177424228443154570792860094641285549030347022216306672155784098854886005694722472068310129178645710720359756725850111089400772345836818435487078355154294404575582554224623255817855489270332339831258028779892854396897762714568170515809061673473496427358223732570385371772087328495385299713990795266125215339830122414563640507619711476146371389203549258056245594855283202418216988004420575319113019923581831348894708844195547660438192869291670940089775152597532839761750913652191282086932077690411611609399487680125770946619130989936512270891724954662047263296234961260582326012026067901796854677706381068218981992312963845894077973764907269577436954618642484387886681777055976356550705853721784445106332077666373270299527696310600524373858581117692725505944989961804029771948937287606353839952121870087452124686292109988579485935152764024632765848474131823048100935216326947738705725440475437406883637925408596943930636273174017301360289022305133313761579926292917073850989090375622630202433599163313370319822888681426374004163257973536147243213052072292205188172045526397470795091284753753606630256602637880634813184314481627644248308679780879531242050188459780788015225549527392402460813005444326800424285319026082971601722276400666018099090023485997659135859985450373322608525489793886052881778274196979580527317138579652390106338731894919638531272915306583635137417647776306183930873599984871391192487188083122774476792856385679787911758904707964862027408832669179628207536077939993244055879760563749213828459690034216037032765658093123511178036970872440391346230813571336144831979956648784847403731129244642383357145459234214966360022794255011185691167532165374344953582166438574173185803478898349185012530718159413375428615270105247911228673672396090515438710275919985315020102187112231621810316584043727688973145502142245906057146797334479265439118025293783702465185072942913121365100024104657348174038454169723503646801918115313963818146278414684835163840691972226524631244153185352652065830545141934563232056458871253108008030933416887342628376079185193855209397243911250044612880022585272781173425815787195701321461495827026168492982803097661691731075640913481643444340975344404730122697567727703259899813376655621994692918259969747745317962260603802574372897113546111767168349917595506611619000309211040200864186484144841418192750632394424373146616131972873051114266658729738338378713116913165707700743421133659633584898121603402914957174341291561607930759550864171479085525257207626173909184153460414378971770135548056612535197135480415008556950850279545458054769792089998298828827774065372723834725097015256425179404155724629941031046521112377543239797097796193904544567518744498758228904700328597379340838466998768749590795634052646875122349346097623661612215680740867678795959027160165527797882259774973522762497927814995740144755196290945131717675752220616218332204181248807926440761897748789932847814446638925656416132910272651611850687376541757397239981774147286611811294608291106012340244010459745931176873569554527465150321651703569682012409715614779613754916506094184547965835878951406584766051279525621112207737610901029632276463884949437262789628243850153400712096826808888044888740250310393854107450369267805069643839810993296337308793878621895535116467115565056036503951575274644596448012798020528998752568578133474604858332498049122838513820974386364585137783682691921922183506626321547473564988791461775386781106080686165265131087950559682786663144494781497402435149791969909098916095467989094768194280132400277655712357671815976903810285687308175186275786715977248451382410391538914844993795350918617392443913003833861902552128493366703390937069062103865292524054718198285931620936857959234330950120475480424515459956724279815930686062180616429029279217234354046493332423773256987594951788939671163008749864943827904066968095234785309416416512703171182881058682813039197737206424900808379099765472320489920104790992696646482840419222764886389842982160737447851782150869994127189550457687137985457097435111121622905050558224460189293398346103887733537427912259777035289203767066493734823950244174880946434455232035933177295655139603309155232016413632722777567649055383125217343534317735238189680721045349828742890228710644830999411940798702839297498448785020436608776290017020120911542876756054804175736178922840051327525535318689742876717726519702765002808310595923571504232886823626747664739121785608260244566956302496789267221054549325420302669813545460485892197567078166315210588082164538103369471378961039764678209386379472439110929935823828646579760426957159937323736217623784201134658910957798447386943526434119264897016748463726480006929528496433007349989889549641526110158161057517861564231268309455525936071792015247482026969586369794075944174118506555263704453238941547027943979293338012688459661808625445822113177801439431236801290315230536118516905773785804699334235207547139777961449839537024128715511380665354774087240323209684993828637076960447862930569348102097035547171222840760265953798720404582383750581886540839656607386052927119621336426575539074240359128371459986883141018071449678631271239958496174050753163658629067104089605194753116792786112448990763992519366888256095999988406319185465460817870684924887629074503416674090422668706562949845126267529254804451925058430930328869806237093323051385910258558470040348712887325195445691237349683865440516591921189609050231511676560833240744072771961781377948763117209329129656543202173726041138589302372676481806760376267540205820658260292585787876282004964801630298273546643369930258748356568353144458900698803904251551728349234323018640102761289670379468433475746026912334579756405498525206067763522962880267158843784060420059370581510445675802590211610443880881544587757767902620433514521947066024571091218571167217435089305474604738365776696295695253565164824135376330879773361970692833120901707201718340238945981223338649254322098273234192195926548937219812461378576020473816725003080912718497114432165679571038160644201832568037045916008802511181675669824370066808242445784290547479122064270312335952694894050237820711126180862517274236651631696762577362565620999683166611299736407972772677323457256011362471757943212496340239938203702396262576506357386924889651612057089285854176919369866414442462134855215605301888182304153963967450234638792688748054569371487334503274660151640403337811744081886262022072330911882594437668749706692466690512680047360742216072978912838839493002747567536025084739114294601627153293956654850728530910635118384722821617152234038802235046476412315368869253271558804465432886228959055546492955052434095180777534964768773747364400998107592188832610822255635797376587853738498561259992354840208243821670600764584871509924974387817359616117138108733054353604595463098918306798457546329783863884442769917082719002068460144254653596045238163166973829983883812779553951880111605008540261204788418611373746525771627791952594777022869608008356941576030313280161941892447627535681245416499829856857663225296691920307373542467639186271683246101364251150414944351028769797274052687701895565786607033150584211666720523383506422685068348130727236391074467037310701707060675856057011458809608090684016775461872985062909281073261778829908735934872869779835315971677287563668131305829306952412322443404320099040537535760231707408341630940542171354402224563111481586308310861375700352448152073151078789440153466045882264664583936730271649969710464227989528985665194748689722297303523321614956003682184080609107514964245958448322614842390324685774847201991413512629376617620099796084254323975554031930620660196316223027719530655748403215032446895762735910763766479259483898059743845299457615625613730588884955033944559274260262053511597522687838490535719117225559022745725907529906866996681773434071102649278344223177099828562765726608764396729233681057215782549330527315517966273888530317425280236797607540665386788001453675471284281982681951606417066058251303998488719556202691451348227443271768254573164238003547382159883282131643350770951687922173605237712978385763488574315193084461307089628190681584900685141844093940699630469693300487282093902125856466651488161336103585405895894557526594725194116454228388480042161730062081755075128013166925074086446362788503200248664066089458696977380656987905698410221139570425202716149899593261313284453147614373463824591678184407334324865948224377047447062760992506355311298314905181288679294726235404376934805427719780105157047456098493324225406225624490695936220073848937524716182101545695448536396167967330915133492409316460683607753806520304581526281802143406997730547665264735127945025816557967325999777201296377020746921167310868609508193606238467306304708790533514142091637208033920564530802142097306968398343166078560077974746365031960588969484166816212700988649147012877864880258090993949381250878565738275527442887946647715142543400811503435268995057942388097280498252513042243974913672044034453104977023287751902804176997329479758400473569941401889234875832967742452773352889922362058327924976517862016238619319029405716175027639836712275875335661811118775243970309181643230987989650231902761503252115121554449307108073339201337645962513795643862262794358801694038434580141138972044161888228948526286398850535859548116795303643005255152093883837981293883956038703754011416176034356832833349649569891038786240508359487750591643025920268885631344552086149874142296221039041561045734431038267821022563565879007352516106966571383800286953369987077008084001780792991192654221813235306061323091191555638990956774598620672535670781089221792620608285886373446048722525059589190783684025985255453507640383165755560258686033149559302107240882350816388784079967776489889106594009232418806357172375076824619524123863883602750747029512027807152765764663287612032922086739207272630999163474235819106777731106500865054691886946714980377032262632958780289708123584290293350361961415787007157172151268951733859310146310000078618638184648106567058490168480197550354550334024104057754324478392215054937447441157044078258508421491839270693440482794481753704627818360094589248030088219756591944234131151474962597818353577831123463545610934478566773730709250116114892158610076101769203926281481664472025842219885348080728715969988200907692379399718729086651253186093658905690329979114526908371528269766126405848863912593933368276613278195859390760862564633319355880743569099535800445152624084457543130373610508398589320327423370961015669201369402445376084036222111941706530195083035309994698240620267827744906725500340181661989693394065399885242415784939352568550506589149981738002354366182593037468038507105038472470933894774821116745529900873053406046128070283644996597511052447877481604646175818245176775117057292691703941104320167201754211526334965445394396598710397661988128994270503650280866031908114380545794165398322235114870358667543288000974518965834041311645407182945110718359159089847547568071625742715256122442540922013239250657580506658931449796128236644942437845179617352710346215625498610284462684900615998995223531411944776785696329337001169888907214886714997959822554508908651013564864755446883467459266368649756504132790374313233586102768499594565789402537046551851503625162559983792668175093319021198995824139984036527024130456005609172474764589425723073396987104264914683962426467005849143241570022698150565852570292730956043237113621051190104222507432970586316128831049362838020940760270536170897103253421639830802285346616823217362648007084478786557531170856948686219122300977738167446020751887278823964720695433045216910776227177942636981508853735389208050872341546853641564367165452101940217420599722146359097337631404940262962159632032825864856075553416845989509645524563083327603815079606306750673775655807453274464005835091365126297231371548678040283227749804168912283801270984413402175341370021821672651014241011482509881747091665707865259517178405808177482205654552575571815133033175690406530288313643324679620708115483602609475978276560588452473730006534474744098770909820780666463341200673870168427957217876421648840633904605222751181909469974092176829025406046881302783190586781601811389630318911862224335086933947475898984224816785402294199769382647435140593855615990899909673462166688613999060749160048145487257217732023232646903605943062883154206585794040096254168227690956704421190943236077441430181756422666255363268756331252768948641561468123632377226301669414015052034652822147924335553986333238341496175862527813169309831930479942224211371515863662995379022053237313111030111667949483702371787469211008477027445677385420151817413837277997441695199187868354565874198121153960616107069336448491505364431966358184194920107236571812425697018369921613097203461255721899382069460276812716829403755818701278812441615972158517541765731342591996983874372904884996746827772266603192762170118217779668122064798955139302354479685932885804578169000931528878400521250678818521649218470075687692818483633469257387401633937592199849465563732379381633965794018232211698367712526707844098622459198905821192921627930864605527987542713471913108464085637268153252434611561777687469429891449609386996003206846240196367286909923726826934531721268842225841457624264657377134559910469118981185268834652662405313106977921472828585528244218478954629709644399215267517099765466359843787318041675966582393839904590579748558733691048730705170382429271198632268387336549870362655202773251072947489090827858061119813554736833877985667992673602660249840444182620323258531716968428005623118270696987672671033376211830077867412071638504928717333116308694603751292119349437209240764686661784760863843688086165525325714380234770745478848340942517110116162767923217925041416289954540129058896323023711247478432069608679655085004398916088485540700472546528028844095484610336779593132038094882473217894039905792653806543711017931713627140243272319254738045797267871339697475495486242767744800804096873032640159758302978654163947785388795887856141054713616352095734837556845941452115983851454034103562465964274349673916946786205861187778283902380875504134077029841744352230032954759297928093873884067428280528374874445772007977341633679012142416567748593446714093381523959682913544634394030053149010776952737901158019597662430644981002017737691703479028869297777443751071791491096903323948938198459096568978076808468379614775924283697558955135113833593587068869539996610124461814672866461713730963577561596286215155197349594376387335404320107443264445784810616396338849396761763213089352840525658203430441014510990272880581157917619965703546659255310766585839819132743596727702503035362887408736777848563377060922388485319471656257232366594819802924827083994630133166170031360186525733539327256738016331735170000520121389097050784163746697880412666021602491474316642546576412340430312814305748870419293875717977041014894979456442206485948957998068332434544854420884355710908303309826939724236907277685707266304102781779518697972423351036948236971486283612927658801678644909672903285961621006505048894849252686138300791403138468538490422427147375437090014926596415568839442467033710753549461706472628099303696301226492574735317536550635310603952046493274809359060786980387694666272441325283209759784537564051697940952652346511432771633916913990192470431971443075447307982449136304089286477360025894761502378869259299076821992724044607600412560832301727804207184519537735723899740673984321090253334653283383420413180226035868925603546653682248362709961868753921899555552880961432565935619880484249288073656348431501937573919168954951125621567140894371723098671750836797167274884042751952325277076794039497179263274440962770944771287108294950765370420778609768585774978210080207781013255370965274718597758397564426825344738781490935824094170451000212707571683189099053172652401728378059092394725736510793374692373337766333982899443554957663177915794611109945604726291465007885742784814494401165540916379535342023996580732340034161311001985273238339821450161581474706479439259341389620100181098238729359525919570159352675620601560339396278337762192606591710110231602644070993908169534706768447787174232091953262430770923722985952480046169221001589530941276935246041367446141134296914274157102883323733233880865498246108106326776752798350724325058656612595492451949697949087925132548521168179420051002159187413219218146289236572997435511943243324146459193792891378462955964189395318236437977179021112301164593899014188323471249232844523435970901194758506550424083370167346091669765775622682366054051239192182956003747158659202468087911854384496165773402910333868425763121535970531095803850321011297576680905899157145077567024535273741623896669748182713000475605059141158334991587315269087801218868876823502358481250269483723457668821726922319928203565033340681788705022833611973596618271629265883185931332111227056533345184336216830760567624711586299048397994098466781127996867977788035772096490665417871780115100334363535000364737784680480972269190847024906465668424852736273808689554512079839943800487058421691476809154558866451306635219952504481001592590967596569373235866108371248003788182585108696811729493847239887569432417464204786852201126494928008654719792246017639941998014570630284489642741305364397142024283613306384758001515784069476252488417771530067422722197921090962136399327811515297213566160318658163742683115270306793212860343239539548260423792230801689086803509734533403048949141740802640748244292577168134852796792596087880976147171595490417780336582334123711270190595667935800308449515761117931565963919890730123657519773761785409923312376703928302411180867215846193334216820294961580307668081861751523371957600628009293724602590801569479292682280317599711767641644680604208969274371216473705962081646058011146429097425902869164501724133560329289422471365836316665787587741781114566469866662381092930327717078779506597271887381815987447379016948863565742773118985566713151639637668007567333219116292912704294666835977009878313330273123869393819511481364395589711826682922083345320276543075387258770110501295391142154474163125799492574787301639403984147305624897118996115917524162313466160182737090325410997586069609710511405306517111158210127665722994071570622235987950553184089659279970498214877279927952459260652981030005579029789281672955388587315253564232407947136843707351262658116938801359557628664521998140667562682345457982972679127178059050525043549795117103765672899099457305525170057474243371093590000987313743546128418324218897090720509563161650428770916679713391946381123335615408052453065638675358300100098638565695446687883197240713511841293925293164504661561434453225876934674375450702570559036955660688708715313553862653448482529051642398727672422202643915820243145692755679189032863285642823652703305435673539927095820043476124809124909387093770962654596660204276904930574943030882189693824497020904048903262086314276793678079789862715246057422640210404557193420430989167950653427035752298611901487340708268587307817107974878369423515304121703470578295551903412911433926474583665417010639336995368922191784505210858287226499066995755692135517408332643294826254439453024545794635036249358110318152781410770525414935624352633257730140885958324298102601745846023278364670605675977392004798128773695399657935725601077686121544799805927627237943755846541906458593473505462123977280067272071810386265654739120234081989712310745436275402837182304529162367471726263855042974108943933780996687473446567772658527252393394588698118085917853874992319803476823044337458612321063650310058636518855436162752048163467436080499619972881429557258682718651907762153086288289232364903678196409470682304681574608419219129397899652128621797493245891959009144185980607555072117138874953747107899523369652161032212600568410892707279500401188713695236888947386729031000554642393762704464103132834458729319512748741467329406486991473901495665601420209599695279853616797347003114073341801605412124485531860032494800844004793662752429137523538145454100417120278690815491782402769356855688736415046289783702879125174578566056107119929180436009751162533480070679309952808944374218913071894478364826262554082280401210402367828757171803821123591113848240507089031166332683493906534678771171243039423281213916375701628963568964905741502560943906446002634246796125773011474898640709191674303570142912719475723181138631841550033582706746938269998642985784241257990347625917821030851878338370314757946081252464422780576620206786688485834079278313613834574409545976353732432426786866667377580744071507369104832629268453569085234727489582356435285824285820581819906551469029252890269890581535698257775853337196591449983876475201891305352455108822756624062053564227225249393127994909889269295898167487534608266547585713496217826994355565448842396235794582688679641393314448718507732066707101500200010152087946288274567735770553085737602477921233218391428064244467017787121615733363944867972475733776519629191102983331184132024490972337213313525708819359458853742139940119694020999742115846176135619337502609084607147285343808458352306058508264971519060159986599702414332661107251312520118868824064511875341864998395292407254080317292199760926548168994198228121402160433095799045143955530122004743615785612002257405724654830131472740080013344628168489858461378726441747699866266799071604256093803502576535307595252300523342344662809391642787616221753169681077181509096713355021813550177828594805768436274355672001686247604137400614058994048414435348224808315073809204980303813946442264171857126042193558392334368733148124123373074833265412788736956742819563030243377677217671536361099126188548050503171034427239044750493442631428881262020575778260396952438849013198549234250711798042939362047929882043675429302140585314312821970197036647703955062111730022441756503053615367741671435439353603176283317890647045281797397538797745887263351027178011863767858223027532098028381297689303295636710591259875308084464059762823539408723065161374090659195932717435591145831871876839812692087216299707346146506923649651045534745821023052832942982648455644782438291932596938286314138334015271404110355109922274285795252841203501716352677819863971311085255516260137901322898634887616187871473958407727952772689515047069164886226051487110110086336485824472480939376656962804912588771616406428883464956681930623561802703468909697127575908036299203375848833411488529613675213325415303293061947369329462958738961452153957085397736570121988845102511738004818244397163471845875902824381698771099746123972079484075168058646323312255806476265813976981026551771502664839240535028808426543991470767249637377276876568080638760800236117412199541009757066904569497446284688110712115550086911783905041838287125656217480414943235591194778893976655764513816648088155792323235458385578442506076280022433583794299567959848944719775058303465667328785424992700908452152890063252593555660515321378730384147489358890514315415525316173530309514872946201430095413344988388222142906211586365701920165447960492595750109354399621039590104591454497456933892002380455898465521614781257683301865460457964703553581560510056449174374428031363286934012634594035478962725678899837931324452121855544223433622816480320102684435012918297969127265697707782486843275610593290694153841746332830202280191901106847989796917357895852327972503698018359588997027591115976840558218964907851535433891117874178393227457790026116084108450884094893427748474637465178178515259834302882472643556008466106797656864033366577688543708034959773678814300172414879888915956649466802400578575810275490786317044253079552111611662667665633514546381596017538759628041590302549838028250112759625730720709316586905892895038284395490996488363733453114840856434459045410422487274903341026434281136117486312891986888771524543449635181291935679027654558806289550595228111350808366961882946530841246518606808152786400451679986124504254890888243165174495799577214229875109916216685042064227398686337591639326037625046191884081784196209237682658644719181657513502617540040489892883915246868662584297715160319841634297264847339142039729203123296261523555540031886866624352662278260367811941288124783169434304424939531550076096744230948686210613431348343019365674754096945369139526984987299552215700717089141565517478744666658333508422158433996585496073381949814529326200794952436837919975116474258555379800512266991794130901551093352747529905069741564176437436848443089058620500638179749731234131016838694993147296199921923944980679464211191342221046373241573910292534152659166177690299937834771654513805071389006867681423225291895293545651387581664671011150766854708222377016307663052902564191533739123823330280068057230983941199869101670170735448081809296506778390748483065499416658278516782248888023839264693097973140584127959219282322746396640494692435493975594691603842945199079286476644244144988388415344468797661142007497115214679528779176490942230962972026949754388669935087310803633604127605146236177402177488546353246783493467467875633532397705666243962163812737294349800985298433886086244304003215450145198379661330318437879744255826986485215885057835798134058916937506922016069848682884585923796128858571150534472039610954157000187529003074893102212883639595656133095220170733075429772943067680982559569003205660912795780604200875729565950944264006748321475042382721593966037261522059437182655331205804753550105717875622024480829623991210898730784795901586146989649813933161008457313196685571637479666553543172532052790024950167878330341055397702290188339882541431249484451966696607038280141062064197480655809444753795619719687895436608738485703830771169874005584852886623729187305567671588485256011388070139579985298476733929895133851499933934001403879737989266963473633730912791320241251556669608361514173318562524683685724622843142065175062566309661197375372816905610045957077685069503944298119323573447859114224356706103728956208651800232896881991188748127900664573251991311300855944771062676869519190095771691040433422172566137517916685686898075334986216779339988433214558536223596003539785203362263578682056461827050310702633952596665275884649221006141117648572211942377572383183614423250820720745067071173676289449132799787955993457241164051379187686699358221480361010270146825160216523903103046134209257425974512679430746337688373975797200240371043519157594559707499244135694943044718048438679091596529858861601553070777861175639496809414248753137632407738247785770345063015004151025040867365000014655861445951789281793820869742909567115323700937531541530250477660053711711515250111610020286948343538641998345276109736263734562370012682948248976469169659419609723169822427118465899458616138645958530189979547236480814508356492781806319728936535437175722159851469818515565115069272816907996533185982274974760479515971461679270750656426002742175807856088766664577588780252776293997557562100692557816863574852266842217698248697084653170975519868990480276647006278578444211108028766500848727624533173806876135986471751422407563747793894996811210760658374831415157336932215616079615474166890057390396242200404807281910894433392821152687055540204675476399958884684238947084462143222864492844622723166133013986509946916991802678604698004981863730408965033223891211175014772441863125995742066212399857766148290017346752129000781243144721698014931557050068862086576598016600292096955247663186792805604037279718078064157755542263355507650976844678616254118705982029543249312057141603454486100678803930985482169569317317191167186026055908334401008149717605829819082575138787226911489001983046302943090972757005650125816393531763516352399348657461860300156984534877935941234884632617063443203102596829294048083585830113066950575623742105431203328856200652848576326439372737086633167173731022647558408363310136452669266488412353417286156669191290337031960038409141980181038942181720449237687755393556148211923007347950449951324295779238827866197987840234841888611278356203690322918985771774789335171548285345344490629291147284246786352137603158007106116966351234695194409420317436981565956779304564569206863940092387083094355007582499535601459309717188704489387667808166697517567986686601807636097360517673122521226126767780698229119884378675689378817803734703291421915742637731597798364321895164736364923339755465376103257657434024734369449321929579749307674170716870415394135913028486044759371300227297732724972432001180530477305273271054519398849474102929134385615016641143504596400499367026241524002728858449365761352241179011996553923188107271917731876893161787993147128147103679344051396370563035588854540582356746374174817504177180632115250352289116131209525792507217829486560358389077110658696688678860733220273912848310453789268031716948481624194607953807679841649639103576920048908396052161564004838593919281928750929258055498258757866256794069039449389790965910450097213068850710080220757351930541972270346360879509733335200009767274682047620462962393704309905505628293470629740553170006748597135210290495178013164759345746818044686405079513422796823214885501903705675058262025412047726417167609079059956951270215207917907089340980461512303016773349200198739961581120179308355645572138400425899591976727733980953865909779920963158298831847601704224250774113314740636938602606907142047644501923317773656416131277105491803708678491885213724586944819238855117620298273159711579587784854115114608676186943586380742641485982382245250606764645707964673259426240739076678196818207075334512269607357223535983073273906531506506664962604858810470014674165727289808151996124794415444357422764091064758158453626895724602626048229180061338453580138525820199795864055108183091319275758358735108295106119959909897375228990300029097446683039051670846851563756141300733371366125869249054634301099194710182317334374380605309467671372278725079935333281561568368667689860517235153960043845919145894965922178484236144737407053771684044883423900421701605597175174733011941597182287204164129924405111481709969133343609485874362351281232928397542329733520082295762380427115350819663579411748340844649078586081728379157664916529829952723709985386495194469586230259664341894743428540766956739104976165696561262755553546021209952557391907146664259440041807289611110391525337381837947039628572182110848255229196141119725971396790409133596655609608900528405996417177957066172026186669531176928100958130703810501250009015445242790457223300513388363864161991286584473144524799870215556821068811013670777674079093853844388484675272027536444063132931279990108775709037368222605811799338880540047484969880765288333955809390928197659743518220309212861656054238744825690032034525920974893857399945481024107455670700011659596820642854564288817288184044824028377118208257240384624144638230846183354092359967808007689471583257568728677749977365916780837508945799833492760503554831743344199497972260587213802728893045660613479949811835064442087144235554670803742750403632287692805627435055074171027028317538967571580403575710906460017638851806391533752729447321120517284619453261862862156837064856134861071882672739870845183674436722336898605732102542699176195940066148250745432379595099106376001471299399742303441403175711122594328368437561389211694855207811591427458721311067826927496825511861184809853969512492481585919192583516421121516827037404302377041582775392295205467265026399836247550237742946832076419746735740570353423765408603926404659834215104282491151207502261453654842778077630351049071471712859449437023643186349928666751959282006311495006053571483968309972902299690409076674070295944776695163442910649130754144177310035038926741538930003018543207174452967601165704238938898083300118965576262830153822581185975617024335230546604720892888467602665592623842162052953183153811444509389811653692797892486127800653970737490221013381902460412894188351202038540129785559871188111556222486091524055005769095141502079066657574492383784721617709574388202892718501009995232494135431375965672900742891973753369613427251896943487780682760529173005898579339437007239960530961413088090373702798373961249923968945789560424899292710933051401249032436693386709649392680732460538649524222246550673334043430101438142642812074687769785209679185096698121882654605131924376820979306197943056129780219069175701802567244556692274951249073219835004252153938632810526093677337244095231627897248635518905837841340186924198507973322340036932725743901082398175737421100294745964138510467512250763669307551451316664043024134410581222885630112113152186384350488999567367968056081614007855547174239501539815101311796735316707024087781476753253262055061599948937943687295707752504454794860548388625200456455285027349448746937680913738063131901485901898815072150351527737758393960399201747363018688139202512490463971027266405861529209775392988006709514169214205202950394735501228847810420928041574214088268843810855445669396883935444469572866423773193590602375936210083162738960581194903733050267539320657399152785909178058747645176628013933138596087092563694597436307187238514943323171139692969379542408108090784712832203643699357998993466927864085923876048299797526411507148575027522456045112051058684753046771233841544389879545278393807932413982413474998128633220345992033039542100556074190511827884629376799887949872876017375535725784438390544458117403718702289921868107141039998501753440547977894979599448744250501888213228801747293004094304865245371218190625517624308088156389496664397834178183105314232308649710671909328790684301821764546549991590366498800704824557836202223572774744155189561927217621595950941827106855978306399531712852948204434288361851973170502785271484308543207711136194155692369846723139652001736843316292845045065187283713695813178024647634483001428614621664153878951246284664063732092684074531791876501996080632727709272816142793014151474674314480386856223498429100656327067344794746115038406665256211592081055297109140125563768301135012771213402423397075532912386186811123043365321893478189016973212855337255309921140359886962719683975056836969404209103340365164644624312753331088005786359885010830199353465716907963136221127236410108518490404179319192122949824701190170483138921453097404849921264747931861045464116565506934880798138323254498153855197653736460910251121615621224833901193676744799279301346219355631863618709933805669855623219289147492049050076654094706341271268328743301684829489217862721103800061558268490122254449700144636110379275374198215508842167040042123456207229975342781495667583406240197295732538246846494312774224308392770183930784154842671587846370599353707117431407912445847638792888550034467096753893916161359257287702187154406684305657746491943499632091039203563343241153243601444634785112815289648683142692655142294973091287119638092665784096220093585739658254394661962423009517294899529315655900614748259117727257773529658880531623334200478352134158098366020075202300995797107428890209482660763802151210019986173883944581208511039410476082743943853524753590754105381798360706714714023373074498848606417831600170985778859339083253468840118367263155025935000542031098564788144919595235258896208128104553176492473994597636189134929200350389459602163534472631642729405959208669485642990620437141322833856807109571640255920265827526610226305995678814214997890408071555293341756181285086045204790921859362262717622929080382511752792785935446269200789594879899076411718355849583976806247555381184822361564822222136152482869870444761673913271253209711955819165551482082756129301656716594971852068164979943765782482756032048301473709576878986051346288193003924829236149705564841316053412202763573044483173641778292749851113567817660807264344337381989149839577074880562116499971282372163715559448500911131284281201659685047778346244353722747877476367012060788905451756062664600211874602249348257380689522855855783632050425911496677138612995103571024406138511013429938950953107329490557401779559980994393378726336277405862447339708856037760514557046271011865565307859011872440733281719354989760040532415182139019422980338997749886110557964060042887186271490163509425322041035851308531365430957742386974607158452255051718791263478968226670930647666177449179886422466468699722507433422435271089640302214593593278424675174388861977503402245084429688560655759509543294292729713657810880360964382101544757316463170275628193449045539190019214950949288513375427678368714167113607120341079119649941435613790487363179053802656733675288803160896208109805088031653840052348608465805713037670976124986644163924843288791190625852491498196138686928702944726570044219090079200348013882654513775092777879601713943714053097219301352736332457659477444195479690299907371727228250509399713174347209222317276588709365779000912895992166580537493853688550366246003849969116780447083387720570424844241158965489932526033718773033345049520989687415817973057063474279231325809016087396507944915859033197466610090949414587469294481059098453287070867863018001328900517103128915913911319842188030132625550121110433568628324791656411070363045923723805830287602270942793772430210543210564937006107060485927860846767216215358925140982151439210264017561633671708538661493143701397297303969556263123329578915652605649948465277145903384844980326289165538339173145494561859896864010679981994851793973975618814544446620298460812070747102161448572696385394163807252768264211906635405972947285933730936809519681274733309812111767988604853936327204751427868339083268505510907666516731023388128017515157601600360456576472692353353175111034559538788857429421994469329657760429133281038260720036482182979308325448241042975197596573745150250894478009385974240953666726661605778789552283727305730729322214966004896112273805750256135688488943298815548438835569457725148534240340796253106729020768119013829092639381863912345333311764986942987697598764981374532492431107664924506560445208548767439095004928794391805881857066094894041593922069313170663208955899051531333201449644155347827651304869295828566277905770533792252892876559510648639874479816042662680693316093691815849733730256373749102317312464054838048983894792671767343828690027990252649710895391905955034638944460132658254748001059119244225755956592942028871196437692753115539944499525822102726536182196012114403283633013323333300737500285642965934334608069740805586994692295871251005636864067872296983049133307434786972430420193939837136201015978556940905075236209081569501262043710482949086655881516842200104352160864219849537799079271378143843646329059618077172066987448973304160634622705139365460744294967161187270388811739447321972629219520388676518264005941260862603261468342726563926459280216590546090370013163555242944716301393765738467302217766096431910585347493134736922494605449447265335732960864707906590108592544230998678171931906051812867887184166366028601415211648043237088375525923351827012748274434837396796475504508115969335846282292776531261329958672682082112277562461423255069194303952066453452875348204506401853842523095596634860570795041845420004544382179853096308633944641461066673438004807525446027693187499279786855179574898790177093047614349629735849326231876552272883885998113314494253103171669138390608781093610391276571251676622363497368694133155372672792423173490674804609113905309140301491864513641871996788977596769646142434304568956766590885124347016725184381803914302674813562256860780970114676502323540593145884241173725062053831367234559643981169465322898019964291937454801338025213088053666782394743639917250538570193988319445909943571147321213019194181296512559527085947119813169329827097604591907375933218028879701548462635380796850814797001094085204564934435065111525140910270120943337755515467215366786416287033095861000532371822310754605910595270343618213675359805407721879307744922521625554452783207542107568077454619148899421383989644138831034465995028064542343900760637081342830550933025830897583859292437178580230025725151929745150668632470618553885454392566815174214214177231495532362712021179315230021653995593854107735413524102861502532653585192118158410913882060858876673574193683617600661673927184733314886047176451523590705808944886666877487329891643486708054523494187820054702504784239532822169531516621526111639175546265716124900581771776579787342396264624103017937096173842875262955451279314718414819191422875515784126330261366081997986738186398341381024521852807453448539175348924610001670466346132184081657185609201141069460471904827165474295559897938969760160438304307008905684483010553760791272173626412672499896574624360408170431191296982506164869236977390683131763948181360028789707491816736947264021053463714005406693795810620472783387326465065317042830514786582937012380621793943384660574128525937622051258929175401040881397612081396111993661887732989578929700937471839578119317128668636113594914149133829347677829280420344206307529109012585436741416640629657518546881658005273992587917642429186563689224528308170397339491344689358026706898069243804442827656021211600157412779079023498030104955678290909706540581179699317421152867663777129560191068942970110543116911607708753830045065950343044020655626207495165608851161729381733518822350134907763375081494034079248162692809271286923541285878213389099912376506017626756377828130856118805688091027506603263428569944912232607008268861187715163301906508303791204418135454017622837544197046302460547020056853033905139797122883856469709729685976648963932572916542814691339800410757608811023342642203140680189357650517141797257103495249333099333350183751260735118605277672879954706333586681416939942755831590887537839666288738478156805106990777707572979160517286135365394974215823124121858456661599759027999257935572025056355622677352284708158021519929124149231406584438486524188536423241824803848129351792823251895352625608212847821952182377140854824095201540940706589277562480988484722171897509343220332352929425740968838148011064140202556450393365761614224087780244302533514233343163171467697407263272198818709721262457631304092145115812892959590287956143271476858210334721331242659720520509927789278338963956138252085608591292587831598188296183182490710055090186588716419625922578306884090450332695314928439107444152364767654234319286138232603653672038272512962106969443061360040514482637827555944063349166614082971122666474003678215326804305551247728806870573482474908144855464359391126240934948498922207795081379033700331686429880275718654597386456468427998826495803632269914238752837527458260619777849589124750786579630703737637467117630011471674569362636072524292468691340320741724748738293743261418313332009278754689377420193056095288514130193034463117049765500155878198918380860868672793840560743692012227521373698299349481753475110574887678683705958176156839281826937691274018391852365428914010328713192236463408256383123966257029430630283522604906008570099294627747353025608306443345829949939518428783742659674192563540958778147849496118121773641877139076705563126968519258260573759016768779933141374049833255573351965277957193064173876798431392413227333035165065487407161293964646009645311506461632962819404244627866459058272879121401310429210971124260416589642581573000879263816751039033382866823393660560343087823772453553034837087967494741754317634177417300630050461987616580165222351932061493315567969249201710437022714199693431140957400744827271341380653371523714941268557027338863499478340423391624550509297713707718690328305362545948675699693899989250275401933098051408413175671031939860224089110833969583420691638975208134711270670951402471180421611171544707932080082635525156858276730315200929077801653402509290367782347769779026682185679942403467182174137277874237758554672529899841985840674615331257792128630889211267912471008213977081263571575813483037679251848344520986167598008262722689993689632867517720500222584647016310020505753921312858543691292009632455480383951030750307469900063967822469300922275785429674770919104813242726642309006012213559661514510368472981878843820037898182592997540429270644997679496044218076789903224558490190561763339593535067744677347223709498454184068160602120084023363501461216445433061832642984464751201025408161083791050133667759678772838080278661368106500774648128160087675558810569996268207930755516996359553181605920782696273579964759775717177019490478434779219165264709848767993911921087430104630576057365235354750095673751209981103024573667599982485101107998401790320028236318585220791750184374662368175017182724321658784972150122296745641378583961234773333777932239354525984443309530870673047210850737360211749230559474468878103607250668454039457222000633428615538900297200728420552435101663204999673125998298263330520533481977413586304749907070847899245470515252672771699653022107798032927915120646840702148143834960099901848286709576330485282231831520749065719551052085331480319433386223871675014396166098043934341474865464630166916779408611364439530242416502844730928425915691173193356395287648482565299113045281540523346599337297414407452022805461257784587310317910413326949648522731708098440642591692403081822406455947944838013548256163793224683873151718226096612729391638333402535148784078769217003128044885286768986161649867586414842692777058318592344120402995076412627529856955367988727127920182417472457993414327216422339838453531397473823881166465141004552358353548150485394022395057754010136011120077061103458813585949453883880107960393759288889746032004197886433593139999433938181879356458825328122212011332340371708555215866333848722925382798052382997813919162300912958615691465669304848106163434387954019820913512201671539863375731791088763856065295629665466355288584892242697363578227073170621165641160905862773623642461016984588996001984111173705668830642230186274806606570810489633903844821307312638865312822881405244292191966504929576252559981272141431733087493237792338123151598231732775460598776098503423740239933681506215864475846919598102964866352396808243210878416959862341107049569925083400049501865231019970760946433262949152224445758593255475777874563424244257416227291952512558032460289889525073949424491295160670773110585611282812264644358296954973903488818359609229062044798151330192270236621563832765454439538019441110128324377122398308680774190070153463367241679190059114115870457967323605290915300253465649548449552055692570658905250355133503185926595520703170615326925307266907918977486459697566836513180190164964368444002126472423302590709083577059909730043138262550565152518799232084412914797563576132921013726174964018306798626422838634867759842552990683070293332487868751497582487390967189251404632292449345581048444549854762550803882272468417794798688559745456138260428764283872671725475790775991658934697662827558480655628498288702857710913483488823911069778500316756222768973072954720868724493410271666542500438313257959182758565368963693437519920804995312697336581116387548341484207336100777755565285705738997695326200333256485305033658015302390771331245954244043090059013682734333281128278416629040761968077796977516443893023838351653587930484762374264549582037778346242776545405101564281780008024693364655624815992022440540173818561899068711012249385520689131110118234824314310995988609437308174991983686917665208339820860551699881498366072138893606606409597489350670199480125938995762212907957218144823333979948287524737761287412656836885260038762343160705728201033858061767468732331448757014179283402270835626414525215793447902536517866958478007944068263097622593463531200776274368842130874693817137759882025608740746649611071472544891021078499136344537371843816439743516922240202255994801363825690092153950004944458664198987564781922780836615649826240330368864455125875603692305619947588257495870632072425323475872539483474206665127501079436066551685911011578238095392854984247734848668506096923874258795672162821464771818746093937792083923414095779285181988779694442817747973692534471335870368271902259865982535407918342322312862383743714250165477225366655354279682116794729169587490171213258462519477469484318862905734586657633131502332909778161534895324011542092447153836141459536926685135378617798820093052850380159075046339750675988602048728710615730246381163074654407536929234522422859320859906214540955023037454057222825339580277677922422653261575240462040626516631363024228419901229574666750197735599695327944004516148128573307536649223163413159868494561778405911512784336593539292470127108927304749568499283800647298879493987526226929028365266582061678331943747563813880209279582315784480274547990948661970850697044378058728139411505844899225748743808387532868971315797116688846509940723792472747389824558346577638109719991273999165986485488604000357608280322060693757172706612775406191249025010763542691833637721617094571213364753293991478314055827711079802500142230676113315609154488450878546192944063587961373453159214557725248451537488994538634297225536523543890649077009302322152890145086986092856838172868460834246110184462809764930654081808382804547645912879976329305440964901296207178056556670257577619864309238359387421377964772411267098201256812802290663852047916830268771712991314024924281474126703649565726909327390228859264481250813576887924851742103040401179261133734616825080424478280458091117923640964178401742367467392582607395930891534120460027364503987122265789174216345727350245867959672857636948964588203701982878596084806106926890289787895500958025161362855181724058218747644249401673958246623653678975029771754293766817574002832633226715969887691123769376874185695015673197214114280466847550376969364838202580424685633447803974004395223981632159376290473599319927772805062932754672935280844218800253600247805273667167511527508738415644026400223889888975071529076784976913342296986930964694698432236122442252378810826055831191579593082538813454982081107953343172596108227727100990654777230293831493372823462338866846698931061053012438077086461843478614020267591199650151445698405733843833777004714363692089210297935738723740326714144293077467114441237830970025156258737050561987954984783943168940269734713288286589563888398293107950071850010070558667363665949207670807299695257913720645109883773836735853665195677848177151803624672559621140557289636551863956828762903494915395162486004678224747773157836804200103744531866034904591105014148232222015728146370533623287221980007524077286402579876908923154634253339754957239306384158282218633200419634102325079272218856047065909245941316607543767024222898411559917919069905894929036643355384769284687056493234438377107663386625428504671637837308852388006889930123402466779703231580939548998617588482045884059342897950933373889371115634033165641096701454466951595000225197942029129959749018852941833339471394526637894091489584727044507174084657403954782134773120665124269044866130229327834923089944402207098795845391052621144587257264395198214799657377738357295241493647599871271347507851366036377724204888164931171463105159729059167594514445973727182800438565687466793928405560697168264464598643366543187530835928539063845666625904937491221303706242884134501439974331233970334004988798240794014095370059948405268306399075034581633250143783810770112170295551850802075362319069598480205565790204083524131070883730913136220714979171891423044930746080994159951536251369953435110524932108121182386589922403009419166067795331124446742216333313421508039603360231816646797691253141671952694384276031409023857136594739505895355470331343376195681202888163002795903635071509475939570322928256013481217820419538378088687960284858177822389498940451612990710370580921243982249527591151631739469757546099115743193015803833304878747565980952916482079953828067196466644008801735872970656011919179946184240341866681025003839793258796873398074669573545306068538710307650891169468966318734098326721689397288607272983397632651826025029058585102103958402672455548057865912166700250452431920507370260023219817223428074836593932891986817128619896316206965431328875448220302590514986313777552636849990100921380537741996846170970194318649012994531558855814576647547380618685070162643468983307786600652892640456781370815872832968966501763364954514475930736278827118270253296030568887739271936162860498049240260482663722286313381312473832407765890648205889156363673071130161620530252285734306403688229656454574577847603385739566659693824083943786725333093352498342413208021267864062424575733100787140997052863312066957426442141768659674086782436855315892784580491173654109443457886702732812388171240244295596296957951259974219321105211977934908321148557943604862582468861169748377615508276980259312646785723200764304952936500052681694249907891809623351971346740464546152340329838000018287659599119287633414946494117805710774070496137554811094316665779104651598020516159839284535083324690772890167240991082952428464330724203206842469847780200970731043788341800053895140067579361044879950796731658945449098431415771382853272872837570661724564020196281859082215698334812494577451385554092258155002725224393955094751392041172874230723713139352616072230735037041790427674159444814663913062929815294412560103547182978505987265008315975870990442958113105845787235633083488628356408092196043840555353549987819251671386855483923695362424374000127391412505021281745203147696718119142472916436862053181119520129022867481756025766716981514090941804878676322242310945691262630014757869207454619711019941209507966582364731863941461316212466777496314457581161367883473433777247668999978090178769271530925901663703648668423406440675647299966159402215047837063638084839843265194219656000137787185500784195604196082388618121146738224343174930532093550262195840107690656062873365020776124372729103451298029163337729037291168634550238155470342916441484195648528626805383151947164370020427049152281710724172329787200980021384316034451146968270860987303967765421107385496978295133345419027091103352026619200768714214687895073178595918021766843381607162831460102260936148489193344187771265863058053065857762787636413549575084595247796052792650036947830976349871557836434854019195745194494786337619343120857903226899844215381646729932119087665064938479825515869367607048182097462285443254904613208062750862963194877795856431519740981704204494176297377253358910245115799149213522314312345860461980009869714868622115172048800907370745924472969070517697657752603434943211577586108942008490294886294068352170613180603084805104114993325612599379060823353989866506211927908784050637372474903972165200601134824665150797333831304897259148401039808281445561593534887291057964676826288269051599955765941326559067542778696124649137177374825697155159606587721675296320012029172284072234615988116431824204295684374769039054681380234031869514627124272531141886900650696039166019639429201678419517240944259579757162836403634543047823725436167477887471834494440554870466855871181978551005003734230671212259981260866824036443178602705357338429863981163545050915516745927473030082419375406798901284993646278140251303864146778238242591861631772923596269834284890717330856299428106841018074040291424077177491716016702144456789537310836132791056776983687988961265912627581679513949547672908171377630145128863143445126766225613941233804054514919508476775645047008561253370580055369181153483024765432209012977641396743331418272771047270809255489677258799123151062174539674382290858568548000914373741218049816623449515486379387029309653932428991794526590250351653777642733741228556138162892043114614858120972494526158118565752685487773964962530036799570843428864467112966823774884001383804689831738669084241688048691565580641113382766739199838854815862379409765698655969431620729840861338850830251185956173562345407092587262197971206558064029514007669654902217392654063373197729939166641339561288533029048938818293583271506665553725080053648222239813434758402913166037180921152556133992910148298750626616312310122125079082553089238370101825903147682602742639615675983632167644762048728687389075301519887080988566097720320155461270757921159689241884081941571875270632563348652009095013087840714906226537906650568177522156850860568224398660090748409007109224635852000364316778494241621082083477579669564286290989932394057070983028429285413366673346636788821602878420056430358942273918484017944856624974229447514865954888717604833568124972206219411342521389614382374973635571165660966899996298879070859866941898579649220772168785838674952880715937936369810006780392706638125665019567499050678967724333258050826020720076643403466523891631551300923488052724136890005163593370072159840328077984144621801971560145510174384667352683238108023937931260883804052162311059078286701532390140996713983163870253050989027390756440109171771340215022194217010421694194585919351504478947502548506739516650369029106081901184079067213009124146161676076185382941280623332825899329780436782292647565695606906577713609500529634790792419735222833282542058508692869080704380384811158523825471577738274834873080961640079181392331942930341725107764290335855132044858487278408061304419984579039159520091177029290126712036072482059540971278947599828082785489230604624720725667600572292898255837781046929470165638031797821472808313762296727278137298095970910198890767619807863545159306062178739130710113501815902417461915555563474574816658333596486685256258530732205490366238124257006437073988417610475631234587677695300315222777329232021147533449832738155390915621447659451186778868252164505602424654994592862499575390434617593332024312796598412135006402690726769425234092055714780046322287083118114360035417676568642973611540305966491219824613871795173684639919305761113346506353574153154285664858506387397206655617481004806157278568019213880207490993260782807413340374547669285431718159245119409001911520561863895910765409414143547820898165731393976019013921381073721847627228890110136453773779281492888973637381444628252092627236090222690932247527485597461742818691496192932017926196947398625576232302738370866285755097253868155438913591406622395443488029024094293785331235866261682009733400704564766997291930161070672210242175503424920296380895179769696290500560896072651377949169165850361832228772379437561222105297572875153866401652586422106273198240153923210803636383436529440679372684728140946511203209493549757404548331871469228481266767783907116818341584506365881483253342009215824476622639647704796863663866499535155481794273068515961623309677746371549626799807102870054766921770730427895796771720528376132821502983541879397824102284210107412698590223116807447126839032775907406383083130920212309285066521783758294630341327140600143071299394336241612025344604863762486054774941450756659223899059119336632192651179820874433937163542810985652040470120462749199008437917541723548283256145177588316518181307215273368589943751596879009636147720117569851505711995579890756084736302435087929180210727652379182477667310857010304142024611314156191557519105278544999597029674780088871150699424782319497209326033878146152175122622535466579438027782909429645028819699614213740096401917488549842626197249849372388208670414062077525831561119813755659530543717971154578149782575309899666241622443919983286313528291848056135232340391918560614021219150687051994104448299686780182220840892364596423713587118376371263359155543960128671900983183687358133756931968358378136934634573819036670072937758109321447330740171156009527145915243002541160005276095323547627912331481970891296393419893551093933719477638868853296974897023112624399142305974887432012696486619065845420504605994723400657341916667504138507874968380245162284119377133735485406706575094825927980033257169067878654331755982181477032618994334752619168727923652103250847995353432573653062204013285146671333759958025668486317649109379191744592117937507824198856583771221701705556708944094886132748254141987931299968620172181444552739214883139492007488085132900502498592318612206592501423349328028539988329714358459868535125376703643334964819698194838918828603746364711553254624442212490659765022720689279070771016490648378763874631467324858493866705851832810655134518117027298583655217548874152038015915573964193723737378645643110771899660889657110396756831712514680120018331261927648163511898850036429587984226098413763587953126325153643473067420543432909594189776946162551066326500246658962883426103737091458617654044281742190233721034576097397782148942798998859299010297848118013970831480482875695364460249853467755663298718494974591287487855791743238511813877759195388030382139056190324942025022455282752599566245255437421208651822740709007967919373067790543583323625846959148937227404824142129374279683853657880135498957204433756045122883106260399140630507233556429980167386406500141860983100523320597088448573999120043346390436518420602772565114221064366966498884321953444500762905542431858065148604682595011340027506114384197925357378910545456520154678648431411290926996249627888051516487289751843919907031168412048590587492496390330982544767359740761048056127230103501787950291226347611962257142192312220039848935186293946935785851561233505900369827077641250782271937151677859566431989998841595880783851713909449338279936669942651998510705450985468883928163660583542971818066895770394940904444800301704118723488648539807737130081519905789304528670229714390360308911925327759068012915639984617973531900546818601061966678379601856409341569343405696679410300853310192468249997765655044843564909116876267599943227990833033883375322687911368052710582271894053211154317622313934175448456666940968656431180605844571415049056277688608810498844705634091252210392860670322264047844427142878436378180534424656658727106314414657768338054107178956876405745937805452101137937146828357516455888360484464867910708239266497679079541590374948892410192561959543342408838912575789911791091180841341932952674324360735139409885782969009198522460382762432194368134193865892769027655445301641467184206805475258637788415260930791333655173230219950662803842495674174252004531646972033997422191353162360961162602291371660861603944508195887824150367986235108624596703371329174735108966538553645361987746973096400311167020660842851902576697081580904466371734892887864210999612340841169143198595525217709396483674794620156345385012061956238329403696271801790433881878311101864119666187481293754213432684472249379954120303200119170639823264202477533436678743115648168729115421868901007587416766259477063622579482894744258198147981370475651832805573582195830753229195827616705746080913711130483272405470672716310492882483795149515213867046682450825793091711041799944173289902435711360750802511421260820744297871038786193284719997051664059897514552574601005257553030687900695346764036098158778172099855584357561574331815203437051148522251221054502263882819039709451656420473189049711872045812428660813984450428578407726538922851150776055698269912215107395292491095322687169354244863505529195745857306003911523303488545623789945848041520119886906554273159879641948684872460713684146193545314225777480794674314146529170292042654874497922704592212829496275272639707016957242872603197561559088947884782335797856171886829069335891453041172875526313603164496495738954298087904158489668278731543019180913523916083795044878236138683734242456946277304065594050913635076892496164407931700284812607465033449403435531391840126862343307140936773672630538410076889965809527064930616223610671232607281241289130170122772562730996432439010681893123394249224169227705009666044168034766760519941830801442143189202958318036948274810847702841598568303090555485871435922397139176279129637306296920192973173105979198478650159786599279178861263993605961495168770275089608155380739836122105191693939958044634976681571234508118114612646928190896213021342461179652205763038340909565449272292087798748474661734550102825036591385502733103785575967628648745011014545974076064857100249347491067705813921732215234803483381601418257366769097302891336876838964924512717266284645737213118006251816920633201293814122295399545075286169269168671068703948941256938935003900458519464551897184528047291800688316516486510906467630831744241184298872480254508111946560747654952323955711884571240557782209445560580729715673406998303457988924301428558981745330686228193702046391420860419809816719273933724687032103951906205523159186111604970071104482550977916951666285045508954161790906780023117437768579080776840817380753392938600141692073626145022094857083711225187922217045938597291709488779565900155842424586323712509585343406755570959688804273500921097279888752501756303737939816457929387788124728977425501479054589116007402245722021439616771646845492858593124957887052840586847802707089449997686437598314090586653719932863636299183327868508516766391715921153685863825912848828539590124646724730268352199087338076255303903521502908999118605652061909562847564026570743191423710676662159902476788133459745926548726440178594956833128170984999911117010536161812418578328641087492941576940040815335309810485677162945649822498117287171233408703977204511568459932333653821177178874195276066132967021228911619120160439325694597021478353617009016018205596848122278634901945455010671906872877402007193866433291497906992062503515405882871720947394508155987680109079280986197280653573533045091400431375035681809841660672169756691795820820119943732185599959512882081538390433201869541401985008860728512289583253408532459642306427087336856358433016216622577314220387537402332742796303763424956497672760946382213916521576822790365715515235071781478833185824356848367683545196285687933265577103537374471598869104292727538051405555248945060806255803789463206893386063569075071875508469658667683268006857396893778568349739999333501363663724139474888809511064085233774774815721977645025357907728652998399073494754176914775726564162116237736161375096293760042321851144488194777532920591935006391716833090475432249899579826836585143214190466106511807346413796272923193084929850211618496035284816190020811457713228643850645278243408793300387499839136353908839509382748440103671371951808223090946854243313167593476198581834040979272406346124097999655391862702763186005942415755543705771340808598765491455461323033553775251938167577914878425251493411326154241594154432318881895923404572521285187480661155740739196391034240285220041096874150714369999246731742047057763483655224526265525530670830232397588128682788834056506831261832250878694261153213457578477881576584374021879418367384301098495604729928944266680448445551288116592670045878910413240114983934229694011437522979692312810970948510428543701993440021010869892791592896270425288018380400321902605813195199292338035605567500233675000086723822412695893607679097090321847634426033215316389331377925713480727216559546026814863160364844089519604881126393466692852349548479853005414855396254409004766302600433322000490225119180788030150339914951908513967347890428778119954785840068384733971069426697398005656307337831925891333585047998374408337068772591090010860536660884654023095458421790982778271215766374013891773210875355812854136612524789922203145340125433656840942037235918313253018887856387830294579050785266094463911157404134930677371911579878784571529510565870082579758698007346852639240711333177829692500152818807953450769720278000376414532385039140073597380335037131841165730685958696459315045910284336878921909514165525549984525768454700108667542076355406159767157146298209788570769272245231532109939314321932148540279361820030390668620596947147874144072196049477965275707888614099083832735480507536889951910902535871583792498977411373474504368894782360454899450857941790173562466252363734709032290595818453129499460352434023332197002924834741819415709680426725646135430740038362294660386274492573925604009183954563614223133824505814748461105303143028106258946019643146668187003380318894770491484560964438611411344591719450098186929320754599516880775895014226776984242459829145561506012201776468270027594325924827061292354893262318022527240887572520528412563304474378545457870622040647519788011836304051801624820505792264325056440818934136599458106015943912619749631384059423286541814373931348163019410583976381441405185608045616033188779656713086053357581094694356728650672864366247361158343520742172404532546451199839110104586471394700449196076036542989986302821183312066367857287158987196749808886074854772282577110876146685973003374993113405469999784435184607410060603454288114696560748661708873489160879377474921874107268359228937303587567363469223798064777795726493523104415622570714931350751453157273438359155939341753223774370803206506623641613292499687747060680781580225123255193207454554265327333880168261595194402575300618534460597802764770633327352312106405388556751795886329626330513316608107777015502266244458145682531728377375683910409684357503278845299137221222316385401386445176688623871251912199782424335263014901185045239761914081549406406650737068983303287812827324061163681183247515803881283356139584267118954558937472123347347124159914574916116723938472587859928060325832470268576794679610085288341750264262637166156427467568240159485538568772430409260058686836675575022801840169619958901039561137040258344599199134108565914553855739910717445406420915900570119000702315209091017274801526995596411952952985409032211266802458139282445446269995055499396140094248320862517105847148713998256055511564088125582617560652149469071708983141008824800742526062737383606406312308283227298192826844459375156498799736746033444507280337289077950623360139831617703988370200241155800801658136425880716500880987107781162994579019568812504252124058233706971154168856107438959483891474919711707767953921340748653470812533626734123893320103912372364592728568763590702763488046071652011439201863484849353776967544514222794306112539364737838658161097330707376423291724133396547085821470197323375709310937593590321501616615199104342356674388022786443646784766490320390810522994104197793019176964982355386456146026523441521010871714922111140189457639000746006838737380062518016037263129457178821769753311020071721795721171363045298869450933298064210663936286826599985445841409022344499223396588707040197350846561650412207129664107449761781950366105073542233027062567333894130158601753485576936542581223935027688003228805649715719314612069882416343645647508665973346706585694246154892267111544614626876347343207011250863427735204884094616307250075034517017755374383348247655192344588578923442580060295635677196205674177969939183145260328918419724428500007530634407430858947408934394237807629533198164804161800812316212148927274785622289434103693532080876530600357954730911900478694874972724343971244822663724101425177775095966168399936950023093620649507957030908766729843947595411632753772403710861295055915987110818217540904110465721936690325229435318379416469306456056015747515850430550598281675866805201816335744234843428956969406507821419645725765117612283181490307517482422617131870308574103110321238555661032660064944181980264086934108189339628187247624921587053122548674854300858275956358565315842949300257294809015885596167138403717728867017954758758592406411150396556110552891545296674160668310197266235076116802381053102152729426474929648054849948817461707417379787962970115290181319687373542397323998106413557241935795012757141121581279229308189346852393592261933898970094813990371672960462126558409712196840854597842424405563608973332220992043454799762348454111196099924279357727639789901115605549527186371942006896701737621513097235944348286940898294107651620916250067108560409316784457173282723988888519435639164443264322735728431359107521557487012637178862884754542351484834925127034246284646984887085168229540446342167706240676012358181008962322170425078154724021510654669197636907521445510805586496229715876911430077892071750878661153761918625170431154713041551854002895036349563876209806841836718319513059983388256725252690098830289089249080348793084599814000247896269666035940359769108234626068532111671217821876098653404209841881643619843513286413675240750761178482497082822571898258578125208346710566418086464128905140174133697170312925800576727537153733768038938072649599819812892314541109873717020735459019849985202745352037905150759174324149691218890563410680644731681275451000835580458073013538910862839261840802584611672104859990384799249595509125954513776798887300022230794084662110688222451054431954714346653818860055554616174041091699703849125325150096994185967282852546838461313792378558572095236817678654922736200847371832257896470810749116186926068106279161425121337335354231522506151978152315244558332972762936004035248463868178136222858624868257907605425174824607103529236955259291375774983713837753193518864223782399132679370906891280557829044367190676482794769653152718244355752275615051672518054862541764689660597560340946238487773580602842940560869403683541131403844424661644732619496048440481456389564019879882426686181391146108501731513358983812836676875231149863105333902299922066695457233717782113328937203581422723363772382230686033127473259989008941685922361002956085042029097034101014677387036458777769973571509134206358117288814879197562172431979522136288800684870425182340294943183360172816847655436206142500464329752658706684215565703711427284385122470651399496025130448320111287934637203788802860976422042008393989399458756847175983713860714251387101391560898596531463131796595727474310277580865779203412933527868586435248591212468207532042414736464472721426374279715206595228607080876159071438602257234548179110964247786477423688161725963479485731219110327307500290216824645025687911163159915268389532508475589721586644177783150688121244301203522031057192071804043489711566065250314609798316856951245044632879885933039070843037440185777994039846824035297909943499895855041019845571390079688642244280150592084427014321061323429292113213815564206357129580839386805941565359042141814247834081303941771237386364880171428463752743793738517586911576012622179230517316782188149963618819068443443443844876287000863768419049668636896197448126935740018859707957146821226179722641763430423857850058669175261478902335268639496983094217889958115214627529341281264642308211065901882114027527314590248513062130245347639220468388239918102476743608804089735613214472239155660191801410752419977102331549136903441431416924754911248019396390166485237941034751508325199980393553556943459021944605168795631233096236193292412081669441112840601261840158002609352756321738584331452455469010478853827144702461916970057254959065095513366776295446610352952073987188313141064620023763746804190908052897018866840790923573897897106754004476458171040216151916029099734114993351890533983951435772441668693588153000572094709556775203678562952443636601158939635242869336486494182071715750972582462938518350092594918120180241115378606615005560935285529639593697142639787680143782515384621607556811657157955764812879525875357053190705887158860650265022543620714544009474932780977742511172254464954786042905266679612523625435305102865988052217510025540287297320104585993602728284099714887845415379534163312280584008454828602899532799973904021267437038238125374592246524862059028675186570303458575303644448262382176913837943231398235553965756636812678362667850213734595978702295217738265615939561897049279149830237752574228676182158986268913054812132510488490624144216225491982362594112110420260626009256412243622662652460298955604602235352272588555293996705046090014066523078113675142843713263532429808051003161957883076897513887301385377347771239612296790680575470491695583317427533448420927481086472984685104593487193811561661094172844600661231596913963027335820856793372440157407839548980420359387235933434863439702186117395125935134083494706253569795032841851725497458048950783698890301581434124378961616145199754858162491735359131374030997140768172804361665821916422896510228963379390609902807211377549676187222086908703957872345899268655613285712302859875403247464408812678930463795000956281317770067942035426651996512786284443891835045204290299723477421211011083941593015475774329738044577498389902875717740059792940857714001867531669208192457903552748199732562816843026394425004472649056533449004763533545444020910240455085249960680008588516171143040446966321325959927344491431756390619145602083928673872608242800966627180460217532665828529147559030849824597394056060151786663948033337010581858383151896675245334467430897480768027104051361739307408380428782830545023824431335626482090031874661791755590251300317583458506472496147368002054406033325070686108014047737144507944352699867020387152913825466598201995613316723450382138860452961821049775745614833467598949526548895708640510020752769304802473532671863871901111601669796318417542837449651826818716506606768869463620929112462238912360350788384062560586503517690137730101439191295320542103275696406727660833257357263807213485614613644870201966965874846903450607975374764507348631285159204136501170967958908089789876057290624928953810168321148773387241880350510607220879538759140761059523958094661972763110616329018539053023628552456485066637378016880876261177568903303306064482242248364663760235547433293507393578935707897533859635470333428775566624877350145461495098554935365186090268820153945058825559738677918725165083643757905965348928418344829083082113683611737498169242204335678967216154078413567063226315109765356774628235911343249864246742810694202481252598353990051507180688994956858901823881604850581771479264773124686722107205259583537272422922482513305833070997397626620069386776958833140455202112315820562729075012208126321078035923760075238150630321418673861251765838967629566160988726357108380105870165388240592850777845031398820363565511957810048035881738521156823822759460199818045570782359558612444935812369552523432997115480080944055391065962933646700884326448472275701120034075005076569449528270718523476231229817111007743410316089325312629706163578041888155873864471967445957376838776435898018862661064040227832921828998008518475253935419021278219079604392391527050065442386510535900727699680938594320661849822588315665302393798749656955381590650559821834460139217434500362601599570449521706294818382016175976969963968631575188465712567639345446598843925469853766510112242336611280697563691850889894008749274741687078071036251206451414998231764766550844018705449787826422458201159283051750035677305148810413848884598095706222839765755928141921058218074965753204078858614052060001302764910870591414370243424139507682928486317429833629815807509084349346450264005987237671783076146478969376510027596011692296113628089378009965515455199357625968993975001227044564698477406912558875409121166722020116170087838389621006871910884812344724241955110266194668678473643229843909377512939698167744060714356099606644378274341923942305317079109752748595350452141257576218287615493187488458061434416003315259862912593948838062763802114396224233560111779280303568914450972399496150581153391928275230148607251562960265385475335661304970602396148196913463531802731728048501248460736488567468187973032543530403111057289897951637223327316245834626635829108985650261478929153250116711307012564055758802165800815083311974731056640825902182983319926221379502379701455278679641167988089715452073749388746648842774765554889302976135775072084167043570605169989654949456976795151119479964474560155069154151928442018817526193620600327992522428971386283003790692189769926896860812409810005748339441402323958779698724641012980499369442579736085883893521935250546234457141517993629323737898704537668351005631675347456459358729255868134217110490323184457214789377024813807989968105677037089369591431997606156158192034306968284071732075572550052419930664032951867292141085787318044648673645744792884420622979414230567851088077518576662697947694223947291875635853314780162789284754146733069694231298622693787549102083782607745273845771726128034979630698640619591337889695479238475956712293457504605647174963069954282689257144462131412018244059559294062339070731251067641945448687601851062425696060234738788383283431037627879845810960520809785478787263897349025711734247422322572558677131577864259136216042386624241383672199780002607108199853450820721266748104318624729338489673761787849837571054810423679514839791549155329692142319986355272374632002098312393533918537512831032065050825705652029285722524895685891036312820382066469938603636746151587029199791263295039385594805452447836417192922256973809996140372314408203835052578623327905781728610668561030842934734791599655678590486042558233564174572252851920786285443305672162334344491715007819798965165594642334355900063936416952509643486637336559336579952329801052480346959939944781486780485961403134807703012848844758688126790946913981078757524821943539370931633500840395598455790436081286365730812194827849372514190250947114831045223425518807225243638299724590880559809139250779633948500990088957314046187857261083369298160622593773048984440875595628381304535595782637542693228929774482676444943480211767902775077379604082363935123636378792053074058177250474585115269894759233807912315657894012191153138299038856101472049495039986221276674720613205354181747821355505496893429003165655300023235323499862112060058667775808421706851311617228609787302709665580996160646507296783535918397059576529048063634462545219229900284057935107922799008340077159251917747090401490620762440262309402928813437835493188608865200462551671747920380091248283756316040337706954753077273563603830358824098513068813156098094098140151220966143629684023923047695872931776609207064817696570933120641397294546800124014177878587011354654478095193955153836110512248303184537488803938278893717248167964316379110001438429636744389706527401949342796434084135867567941875713128679307087309732543563460024114483392092969191591743274423696619894320744342142317199525217258797262156283850370385822339353694988716069027512827100386585573516116517112919877143145895038847920790273920325403756162748436417342265413431920048366036776292255819414523371996365884437367045885510902599545920428587681304382793548513750279803810663327819673732805925188427574763936259466506662163012615831792373563232656845899342576999002712505603339386968217377726289692256601885783108764646258591827477648416475080545070498419139597544554203844805669049135869708389154731877079755337879321678669662117652545584517287565121087185306565386596761112706739745765351139416201820392304217163773789933076516592751332372200681855916126092829302404566771080817855504750446527169481345333549967111912129170353808210939583350085007283221182625789936132965402764766887299687050510286140186645338080904414371094822386816120962867135790741058557569304442579032614200077043605927146309329784069115453694573840528080496923347493626434898166018059418562929529648640545070194248358146517786210299061544805075343786929909461183142951347178203750119988275941365230893289247078872126637453847063460920191304806315375516696701797385082659205801911865314306211268648240609339057881637165913715276380698107949278837849454052569754873360228284586216034366893552652058401126612160760891332811605883970490109228365506995792122733154898349796232053334147248835456097017256377466371150825160587618876548388391703625931547182923230302175143492960404891469966209882743859422809329006948814446830576732430259236969626435496082304849840854663139930211073300727189487634758369243136432647690255456384108344344872341350012389807064995965169128742942553602506977212239330904393543861726561603436230736825758799715934081732096874725710518421428070581115364316432858211553975816610146060510906279757664123915757931492589293633509023013731599536992516003737832288852092183738834434502295011881190726096768729786033162594131870765203501713731427836268336097646014617489333540738133698627041702464228458795305260622037670369054163477462602236654509631287671406572675865338814609134940075190501262915563702948499825750979602921793286596000851376695736207719101935903422342572230650504112913473783689303270773003279369065209856933500864757416599955398032739256841264853528603648716849027414625526499862263032741878383702330935610880671458293445120417773057680546678194428651935129160260671837063409106774114566234548262238980453074702944013813234884587544722311725268134362714718994741264813349540360182077365021524179739245227050061447020946001051277963348415181415344865120198913456966731930564716418617494790753222927126256803429497406914804607772878892770138834011832309614550870185992557044500564684825995313790673268474103625715147904580368391154011585480007184815577211876853079963364579943820578085183918625124372451620085541924646372335856754315164876066439700514670457118714143833560644009537475755654558293753298101765753550006430636198591191140691782550995911273538251043240764985071644281797019497642766198229074196613535733373530226775126003440083964837439339923154463132173833286353317029805906584105790981665655848525988051819083964517881438008191367289222571729655968501468817379488727870900818898493563389256944234364621125950178351687490468138437874819024796178225887563552567587185090437099903574297752184533069317596839522779428382452500797944988641168072296962120081422224895520383468316507363146933444340379123742930154448140805633175409715048535516028943771349168072951539656767820169615402708999861516778386758193770289350461380810707458691601808654703983407059457912594067892615525061210176321351960179084143981763078514011706519243969390671025835896606741862006280014510934215916345898727336587561213946908963435219172855572257368348062951916788375921193173412366773188530552051981158254754354396241017475424296348226111027482420342139462993524521495887288080405012235167131636694553667391702948546974899742547461582747897408960742167672067332809823338728870463466733226448464338263050107812093699137275863779505087130740444166752384803813323056910248297819943812606371462882199727208550460427505623014828390589487376792904464331357935700782249592118799832759160430807016307177406041396047840323824277066643088141753432843479714436060185911950909762716512634060758637633941926864276504008925806134382083372673448066996810944454286064811408282917946380317016074246271201076817982974386851168113181643939544292138829785026827843907568223716145909599857689741180664294707376164704579801620086339093369629792788665707262705336658370695090495553035561147412871152057708678827276897435549442348014138487622318086139897649143125017089453081677980723537153848376407713363849097335995915366533991833241680915582282106471006151189422808825522263948020187411773194107306640723891521136497877404119110969835573028504803447920857885725545888695369781297682272140362816258928665803235423273111444939518408074182138853576117693500131275583637528757785094384761375743961088699376279506508678400622831418861986975265552298305228435764456652614875537376733074515437440990606515538793610238700157839899236159329902062745199446424929211021381562291843362932455360227896594802943198090873001921434081931930709382928504812545686364974350339766984382559286854374378993280476559340795951417554599674377099927541944561998696796817605666703787477682170734885932213199464729068466807332592607284794654132938792708815817427737553834759749420843864556621098414676406650414418502373995396454940822093468678294215890224539854538905344680241666414404656820480728849122247394564598806918388575636903578721863872117452868162190963325500219034753800499597000205664086194915799879906686931983703480596275958918672894625399678885569228145462059849314276442375171084239530717912809673278404694528514870116438134391625972316318901212027212289601314513320118420401878121530176944743710605549764673277302219090302040057734354616614024177710271495249400770116703982761474097524079513342209756857409387007616807749670213037803415495775848404664456711664238696757875341532491234488460612169919850397202069366174750085059246884562834026924242690400072786817561102122981464262019798343740334231874169075681326268430666547333020146259881256832041676352116274355205697960163423792354203562068627319065053592817574931073199622070698109637649948962808123850707336639279886026201693361246075520512429878644763414379221846865956197002693314117607437160555205975907446611803222952402262081410675752055940361741462349359933306407870870903911762067133838408901572885299507936571155724437847145421259368144250777458318635374085444873568520065231344779442187839542013523727960572216070959029533894313591242617982527185818704051784658736622289043588215469463481385694758636594424808005057203802119196975633959960127177465482955358066579840013697225759893995339861707852701046501676136402924891951031314010405881765185827845998428578235888929754454674709572898891746987919508364203541612498102116985998467622263843776486985766888906232714483676899532533500543702912596104291601545363821476618886278357097734768918761937440195820794531647189388846428313617394355627425247895462866887810906570426411330635051947608008674642792646374700481942117587066452095398996632744497569681001741909589092616867485213286186000732439746358465346454775664541495283924751996356845358728166824471792134455876320473414852778219773359890520335635897221993980435892222411218765938240355041082893215273864833278779781584751808478911037503914063531572888181615190855053751945105099056279908546415185084249031931461429572930254945654049559174067477934510299725598841552851184988505021387258969147302998231032015904779241255510726162583683925595833320300380126768072221792290899436018273636511432935911336100595601205449651513710606036643233963237360365889915503918721455354518224690155081943411791620016826291990790377169545369666962783200335193680509570349983551391927735621926739887311010334538350445300425330718639245865738187495875314835201164906047564543572569264928206550906574085295930962269105484768982554336067657055615987595860050152047321363691509488489493799211842980092127038404405365918764040344579703889661120462568437725593202737639784304452319675391907781283582490323192412605065638001499410299221692712358543828084350376265450783200142866121875873585405892629476539144382541756683371502466444853540020917650253868938304899400227192275940524150776436929056054035899821466903234352078090899593514755972069356083779625723543147663467866161234726151778571315696090495306062282093392416912827130186758965343304219547709321274536907583463057231734292993764252633129261825668626390294024618124157891220442022963915376320177356207182713201286891944622888032832147065276540158563449784893694598526281396742835483467057989726862451984002092923583319403703728392143069725648800546336030032100405298472376523363803653521527617405042059998575198398110022208870466036994745231303572175044025029316509607309929245410194596612431282390251976301427182547985655262353595804057789976493523881080618307483792692072328074718160237484869267940845334380919506415545878116927029485327643192381818303946368549221513790628962307417312277660173033539276092929747111921795003122205034398725929347144277194636706790994430391048406234834214030977895570565422617781708021920344698973487937727929416087011192729612192911239316363332009254175303566937601546250977688782108954518914416957913625117307494242106233684414945033789908636878920197854211907115079372579890403234588226002254286022909244882724896908843496343251208564814942186440216816284240360096700510951476833913331974939005421909754309212436166337785059352757298720993387024982341568445287398090719723505284283588859458824007460604420261104081363696882826457259584999188755511082869319220760092450593407083865134890205938352217624369820357983971942641931617977972397176396894822471744587364325878914108451979759432713658071180886543572375012254748174203352251770330194099876375004618391340965271853689489440234030028427505888987635359418475736012803492497127413621125366804843925280948742884912702774121792939961348921022396235296089166775186596138785443829032388955296298182308502429475916002907068915393926988717231575643236812862682229819474368140957511649490655540846764999814743481431806736144336824014959087960277609519036455315326462750660869693361711411782266196672053139254229509263965027018088732847632991404920649844205182999489588309846840431385785158684573845297211781939091247466079061445416648367449510325962627474375647078982085134186264948369590535082329063331233616264352823228658994899814765928468761061819060031668319766216767814638587867181584987542097821023010876200989139995613954508948056578169082573487200143266000222079865925010624622469142912456337887284536605045195476269729058497700689942822610457423352005340245586376429117767940494903924217092863627044981158892240134511190922597023812495550072404760450509876098140683785306270733265900040460181202535124144308226297663260195847458736127958309368801944151357084243721228736744077447074469597837650283442054063352904898642469518728790519776398055923369646014936953030381783684447784632091694306519274558358645276241023457453329596941419275229471594269324391049838931137058839879026567247206775106593746308035106009126695034723186904330262438864642541893283246544858432569932171736037508217823221710765559558639131505288225784847806730873051267321434316313780683606626681788601371918626528128513176727015006381394123248034577969022448749832811913610440030787044790143648271170466450946225143876907389367299370937077209626427164518798637983995644577328471351724543556356594227228455858150780852316786087742966475709659375824518033580216491345089817800296913384650851848764778804021206780041139823367387778452306658328467635498138009804111403382976629477952138265132962128719000220036427275603480616031346064795765578645283460920774303281348430047584589348465608269731357898802842145035503944683965828772400839562744213367459331400181671137729582548575741230005010676130550481511850123298400905498340990060438005971243704332908130624827201728622096068106544767668083426861260439748604537275756941112462931746714203350803042305369771636218902258816946056552039382908058356253901647913174244538959738963734320870708936794010679214232987621514425799065335594371050464351166539410114916645459958914237306521207399961344904797259560692764711055941006085460444618030106253317012080381631403034734005984940002356890447352147549141004992395335998985097976749965477023457830791749266318402709694479761836914283065553653286218066267615959369194070004672713239531611483184031552252656954530677670106156072791043646117200315990934491112378060252020421082600555954863916255652158865491530495095758653903772476382438753876966272555600976620565041881775911308142574972756817383910907401607613717124066554777513895135311328583255575568900387682201416172964589759760465813047413370469816382650645724806036301751398972997770312967204259780153163393126471763432942681177411327516172050419075473129285570497290295529640908036443572630914640901419344763381936502628468910879287739258732667394817799237822619906922586965187277444907558429907264216793981856727912328899837599246191276505781136583579516266210663818959030102910205926255183359753908236931563753359369316120808590604236775313711391518897604035560045065374348116779233233502171032561557610451323923190955891702075835798002403278966704594785261750592166181646215702386322201065012045692482664254337553585854314267218214178874485316128055624193445914484785950447314826669183643334984067578409891484663526840731203341991170708284777119213375630130334454252883497055556400946901011938150197569438184525533821630964755238796077955210668017282379448159585411464568510162842838185506615864059057236763773652565047915552342142322906635700470111550041098949170195919379818574581051232638442284138593989672270635617466243701010156653886235876889908316104874900392467719896813814522734007824496762590678367985991727210736152572030235895420131093150972889181467093542575971063043564388236746366301799300768455292908108831734247268864370320212032268404451565570944289412105273777638085464108708854952447034537305988057805093222672394771704262287815294037917671793937486686166463769567727513361342107872336496566875250116374225474643399171671732349639342472765629524726826420565351455348817119693711082575884413378958666621010163795884074267246699789293007604065268727605313910868591948375697235907966340468494453992858821931212972462038268370718431795386624738065687785126068528793786497535110874802275875184160674464245569946319387545219162641392431956522874050121678152785007744326562250145513827847818547210594221917060315635298543531783096759714530680979754159893531758966388633215386839336124126712578581112340270506647544299589428506588385481608721797646470827905189138453256618781696861777897650136117531592565302067230478708584039302599842914310837218832074916894034291042912520974957196548281060481531115155447806310113209539785005219292828200777540301974776326682953264871028964775591451281159523225586579925930936444787409461316048383176712822766634142552288600745238295778384644795667728992856139425413417572801228044561037864247696872309140536316964893361213215079518757485436907473781050424119961290975030960742303865087304929831663517479868038382473728303685970706748337610326546431098699558684993196886947290130037407337945322061830190539324349802354971347154441740379450543083111788276384256662897851315539261254965849501689367797656356127531513488626348745440871315335313450775662837188582306020215202688573184724483007526444436236591014167879611722566147484767661992742750433257595395349744938430082173754352609496019102099726777389211091547980800299529290195289520735254952453107005078393613777273968906115494346420603342078779107429985782595137953223337761672089134963035235885478889510909108440283321349565785841697236810688865939605534008493555681852053456309559337022666681243422670083255034512417549705140616274647418303212317938854237606507755223162136881971885135185303079734093702675199445990294774822553013221799523261299670201002293390357755674892001325336988657460878929155970112963454641886624509240533479081708209890204096246297014171721953755937531134886295188948207471366386340617081726339094418342492022139169162126453463883490219285003129965733640952018717957907082334743345054024830690523014017342042866454000666206819337441160736705008871902567094272761668785308306334881560272493613523924723181441072077505902092456944581884118646355809772291421007067433146385265098468872271634831797886735346384489573824384027082151046539154644446055377914953816394380961556633771154480002338770151846206036917592630103278550828129581460132439378490049454484740609165581157834132252114461569655221809239938888944080003763691294868285820576920751836388636750010789303578845391872054925002455447562556972127007689057888817199284288450733410120815351090184671448057267561191801311504695362161321512635188285056274200756038436417824246801634039359376312544974134948990179873909762982487041859022004342217440777776971268371202301205513794431996753431092095470312821348966873446166018056292322548720011713678084832564216105179538718539231814304143334126563416905473975590079127802605593104557370598678633658024373936014001814369564755707164345662402160319143445460814920978867261663566282099829678462416394236446632424190075104784868384606308020553963860869313898083751661574915007258616341039158526478669840105978167444438546807461690981996018920862520624580299730011439846287447216457319471609519926076739890006765116496833805667247056259405450147098681549409509371370186598346612557849860318840151493680745828221559196425737382914732769001797423253090597973153605315128968031951964708861415984408625486006581629837211478115580764387805973622827913765838602408788908875745187414771313182846564622862515798385866157158014871323305695943966849102204606553061573086012272506687844265523832665333257558326036607620187537791389018249599402588572796206627480414564464825784156727422334555901986531295835014313897535863945655984612292606509898113448882552628622243539345564676986780443972942374281437268877487439733161465858585882481633292079519582916238927673722452609542501214170950324688127972153390971106928439486185991708350761898168645098870017372417546996066082266493401278880103045653472984300080108192381346195414598927171657383790554509269490396323684404054217753387511187215013316808620049866336645641875108581465118510765504406385656558822423382260678576358474416580276277363076564214820611048980732940120627451920081215393275288886945095030470870188478443690191617017615697133759868801325920395397881199963126141166614093171177458195420828615575206605478402638754163681698042266610956324308824919201808895273235414798482992611108112747784185036959514909227177555551986807526100332986812768184931797963339614018933221310079351216120196831092821663015910669846235031636791274733690277609883325031642426158358399115010018060366751099647211087243066220160596413335145589310565255557325502874312719376713705750702256523151396277314153308103375453276215333415144577174796791923487161719079634454167116616576396631162111961040704117143228893573788453042972765838153142302920851509122492640981221187717269591769121193427824897350953112465737850787316398007313563479711112523408651066520286661259706666555968314301961432745377291894995963857105133066175709573856825337881101175820101555257025619232063124880493201684644636519647582747270478178970973305307387447015054900879862864476581666551104770516434667476987025275356624160719017658138461701942957203736653997256252408821350249714415089739753718047324827607315776603591509867247063635252108328961387448412517989177915778610886735592605477664935749157103947897856791195088086636972436957613037128213827900357212229613377292712002015995822149908829159764060289541694587204029981866353626284265309909744223030620887426762703179648018344914661994185387991674214536821681389365730901418557016206176998132532319039825299078068093432810024909360486832300262506782402321184640004817556596219859971001507485847721880532532696377064334096715184511523551142622545739584267461291398993821685507389883564900772948872194883526421481996185962506241522172976121258972360827710527472603764515774378924456959956735939339710095446821030038776277684958377736178771133223697835463821388858445579004023576377602371375798952462505762574400715833468734802459665104964484957445885800482773308397511578857399349680069263189844760633058511907716803364309276803016834007525357796856968565780776427354661456023624750578822696267819897229104454840204173032620725290864907327699674094615211511151542369355814840082807038569360557211750202981440435379128267510944904901113915684918686571432513671425267593727922633537331443646066115108139441369481939853229908934585270442315288233779830918797646901149301231004671880485257414641479747775414266857720950336924152160119719622811286774270636369923934081283438932922531723004687927645994505506786207151080486384406838396351564910504116616522432245876529376213380152001112384604846140427958628897398891242806617006118361080274663554397381363710978370324120558604326463273936464090740985813531727413397470343864582723255291010239138652416794815803122583151993093304728050821815216454849847423626096264389682637453076934920547191082392030756508442306725230893725859272342021117154753536940108684261032655418842289273403152942272525378921531941173871163382184630559777484385154699436369186464176575042466913440862725383389375577344071735765179907333657388247815218197821001612599660449047749571537189064186564983312232740950426021007218010434835478956212708652582144903040994837383162871560401754604869697131869044066300088644684899004716056982013868401368123933450275207271605824388179015532284166233789184793376161152838479080536832731448688751942442532149264763379544338908645052946436979365627662560846702990681223910748489101288150747474488108721450337159888883014588533384584990794006183540139154072614134779319128144272038757823771311253807352842281908138973349259807918029933749760317167413419354732850658828635765155511096630365517185401375559535938484569658760038036453659664819797325103537434843185773268697804283102104629434703366374495387668545870569832273618570791991265445544928444391643810287835073407277298847475833178826110277682541731767136859288657739698892756059990929488865021850184026387726964571683656450927065605638909710059291249244260781153653937616311153099402668474881509188301533625951506417695558540741924231074286322919941122338380606492856057547673301763069481733390480916293174753764855299777100996879488130960859954875129123852980016926854596335063922070368755255174085301838358246203821702067375849221271103125783904741697468813859268883291342352126064866704926109125130591382979251523240900687571223288894019573860922381142026866564547724058628760984732326547407062507957845955411803682826778231238154987493115437428073033527635707186629105667317844790765810385928883318022853023609199067106453660623800083880075301498498926217173872791444059761380580307378111641875908241792110184736581686830781167128025006771654786374540673864130061554589390177079055916064092741455161425888817560280534214025335880076864127892093038257403402127916975925627202098110765648108314033944961133032415850610613494690246902700606135465947524513695565692382484082383164861944247548558759621658100009758209750084664878419159073287716768169104672051442800874374072070823675049226468283232675048659466431192127901518317924128230171261113360720513029663057752500239368372407289208218987145650753428627823010435236766172276615187148923724165734045056483987503990345846684642317587960588428453541772916565433715642073955514691917281452281711678481818977428455991117204629706460229925632308322116571331142703190944973785689856703912935222884725168151455814385244584961078767202293086905739058698744934094222707416110743893429672253413035597656149166705320582977262599585595723872801986871550655446010456545304915866785508352514364988654920195824857018753420002313013222057037642566242498523100847963449832827474453808318001073032656957417805565897374362614415214301066845406884882399056048363916140928505223070904619981243339681417090064859280538653003022902876499565425220817406949384523041294561513256256251994062885834302322384318258291265021489060257060291636873372481927454415550241736721656782050201877686548611317778446526483662764366649011803044199191360732149967301117386230212979898032711592326398284611912654406161663909243551540118358426719985143385447367405127302004035638244495280998879313353128769099386851220658493333014831120735185115591357504483952365110824748782031806160887749834066740203375594878662235515871078247103906326259617135546998270770145316928197942267024227268726517471171068409829307541997476689061706157033979036170383223356116061663520861265839777117433387016429616974261769314142398268136990629755641796615032631972340593564849713627959437056030185012245563176002144005185129142985662234790990092869893745620342053229627416856800335231998786858824739655507695290017339452104500595115978855918279108690026492221222409013283340903832985828810701301017986211654182767792664753628445996123478536868018808106538683170534377541303480267641160820647171776848409531535777379754350211770283299718542337794085692562673819298485587421461621439613279425835839379714264990585460104857698731064390253021322429244624541466827587780816341012752613537780636680681529172140303313030999193186253378547069881873094266561689856367455099501322569825389548132966409015941050964370166649211052502877988143898219660036155638952476231833370289869896757895751129320393618769171829601044082189768158828875386884153419989207661666891520621229438975195037000739615191127331094390691247276124523357857108178936475348319924328274859292464406353920798634019501669432652125453370192509892128010594572893118999448383336191054842225082527486421283432206104031669534045500604318766009706371469989804181194427887890171587389088959591864482994384461730679718832539012186839778423148531387340429189724067027011282092100229705191439825563398609956883638545947126494370764659487531908319245593154852543907822489585933754411927198017830285752262933669967230788532167463274535827962874811589385870191459904416153045371017757392362371160603701282949326972825994216321006454238927890143077850391314993386789305901958669502878718873666667630677711893968233609668904268682089442531232856061598801590565510304433765769179954456240497371071966551401729253143579233453988671540404065129772938954684666108240842530176931705047565463140827905881828061062141192507292730267686662701025309972667811852345130325609081677660136869315555605614586154116679354794689486991062963403824589797703113694941738783578419254325595754381178947149377601574261088785195359945152379435544328026449137764953138337053271111995775026648485898523985938445123892820768564373198923342728904063497769800524653931130822668037338685030711753335270774720902641197642533184730268783032866881708043997453919347114341032743561271000224242272318627936386678305814665777884934840884940283231587424343718123463322871536145158017899339586815204706231070166710269480156262710169377898894667398960468843701976763010345716833795702068505766250688133936286645407602636011681238934829086411748848940926074712667796238193982503105373287408079439761075087933320354826825524612674434165038282543082500265555670837861973266059700585292218365903454810195469703557568577535257178895029507874576379583287817787087278136098561590829983786278855827213934511007659141524964593382726339307860784057298744410303526778286882244864484239523255698000942932591043905059700431581163793935533150366060015544116131257351479889557624159675204931237412871968992619616402922774101243022879206821174932612974822750736313297247936787982414958986374612708910639393688192162611863076436089748672377745492948963802868814304366500201716903694994631777969395768706505772336223955425798185609455205474937250258521750173730348523610973621684700909221498750734585644350130628177757314306875602498911749482676599333865581078170491818575646764210295149015489812818906765045371559364254240679225058810506391451699880616846174573056435840488263575429708795530084801983977686644635129819471934321222146427639422557953288549779810660392901723865373555085244053454376766801790315367336196724967806361500301577025051513858479616695415007195151487305333619626570196304973550532419132203446621821157295810881156080456190293150737348992518824311116286178888981626988139577518075545685126850210401865424653712583425041884556468973376696166494406920376961493004620699190225110470788876321935588624145139379577161596740480334390421558178683240446606224470405498238333981210109055018500052518533167517505891151683525992960505850934594321005783724446808250260597403967520539144497172402297523589621696409248235538780676814268884616260246303139870416079492858394931126229695801326905542855859078882765785945416746566322128254067660561320826982070779490024428320520870631489021111219081642942964637936563226552240806135408498853915325545702248895578330710732226046994102862418792354610649716204488058346281988693744687804073498811139511973610847231253223095274634951219876938330094961701023460724128278808254231381497731817036555400603477667528258815375330910972548290346319401570547492574566862853939503370992352862090743298068909583006304208531315732682773108582926313267812303427734075118494764184281878811800368723147147078979425061479567789268061609329543321883684430723206636169530498727580540057517440045616977531081537885823642865962281203226061024835587409315176220338427142823519689594231069151325092818425990634159749074728744676075130719920712460576650884907520378090324270733835963310995534974149277417109751755197166384383128640163236111167649035360324342667731639109152767663855546587217871940666913321674133091930848229622623222279851522148116180759888067071433649074964395097721949927801682818018176299507080790664983121694454579920983261028591441422215559507088942981333519274653034733576671052707320565143112108148919768203256995497801611018707892238519707869102688796329033879446599413373263992214583454273591910610639254069256760148164928657223134660611529675629268063837271822472380367661583231193434318154411428223035480472199813745055557302213600664759592420381889710778117524869449993922495673157714603042473484416340439484656769607880116454253722035653033766493802163622505502409051406336178698588501788638693546283065009088995672948905987722750764287595673264802906652702452471886755198402216636668133063464675389134755284060785953543575803404010441025433882029693433473007876279367102132828956691465948519932143782916983022413069148125399534068024006396820451380955248811764865069678449907956082993972577548734923354252229960960685682431594998945032873554343938563746768134594280574775615664867005083490405571127674787036184520161625390904693462780689505360349385923063039673394090426497391071697981613571806947694681603998734485851530446799262216980239712066570408850613803057076726630433847698991996614899095719633751470810725582545122694303446319176674438708243608388250180662270092724680860562399221874481359945223849591212756501247323255901787523321815127498933464913305290856118427052625504987102821726532057977606016105299435344205692061325395789700669965337639935223711372022070854406558681940148476556999795455988483909445674319785181614344916018068365668189315538139893005309469122953555650465271957426010232411785277549335491318621615951989105231202864580357223643838557866831412452274750626459748790316856895135735716956646942888370373310046415279589866732315943257250718794989345472468505166518816659014694453988710738729570599899274101741539183826430058636347127027545878953585881431719212212631796623635118321598293595514477816550138602714211812782248694335814584132667890942269774077069987767349104868360779760571314073456156174745945807831614142127260927603583578490083098130254409048392103671359083203221757665630152168108564323358452528737573015666130577895629137766517868245769024965549637871538649951624015795073926002564769499425445426856518678587040244387338966161402988779951256192682754462521948023840386239454492463861503687341306496718307524626390239230651930976423026434087552645609228294751484152889812133621730988979658783257241895148061581065105263726031378618099610145775701694991844833912891055268614494137322639433129703335738827081434682717142623985503625363078757518826346665692859776630465223634388029458063756094696613209097161135206112506266947920040181249865893708610543369632730361864175827021296660463606325614828387419988252134447994529875117069143620250352809594244018590532916524416121623269725054947539444154944198795066022101335555555561694891274553869020557658476855151371712673106404303844348616112618134328265854602066379567256528301998605926124342277146745513674018273524569661751503636409329145127732361242210622288396740413006188210871989968288495657277483474604667826181465080538638895964737879911955265907611759895803089523171854022092003902906763835622084402745736300088279178040381951324051860463168738286540027695866820953393928085476169460305530714339872928953387576389513468885183919311285705871089236911115520841602083392181570907801703945749006634951086093289974340069377039249065829747959274234825729588525225866013608038804421004489737675378865663221601205869237915627620931418690812631816410114821810303231410249715933320385894612926620601938990613119809616294832007950649578237058427315217017268812913691647509076531684631249349614857074990118152849012377456004847826333463534666304908175123477515684817796011244716890910638649277784497120044317068047589564043711509761929811574082018147928242601829335322164034816258714617559112800073605070079288690011045546766546118782391583163421317080055838560983076151049653257416182685438364630967072514662516614314059217268641914917793153066154184663012000062166383991994516031442749580244412897713924920757322060246109601344388128850419770958906283156447520050921243806748901944766413502417877915313126860767960241104349440087045876084515362613054145483349865118666951998626104558275953775389224086148783601083716465373757393054908415813103725042086054238533024908504230904106415963907857306482304805210905453721313906236291199497380952481491456133262462491345620955390817923765714224269097500848703362886337670617726152516136645516588218623097864177538241461347597109686808870433570394679559103712179716392214299514397624977458492852749769287686351171655502345831711375540682837672407349874941356125345290531454337337283573166243103738220592697078002168708378590625937473791831063602645140520960445371537304237647432514212042334644202362564255070743174970565359958159683283063976987312999549915533463540461640965431004670567558134253360513203316750935921095729291049897442585830276700087127850658079608834868170617435185122030981629342572345041653413391892811792136580673992201442597208982023490141531455657999635788453581519925771110208129443373226478241656731863656281469143099831558957575164508548445089118797380667940139582545165668455081094485405743727428017948587313837568429752979745541182766149178283992312399721364039355075084390163602534672783326103167072240113546397021850057515491612363299901183376125314827686962504982862899903378116855594728147962767200098954707415682336601617312467826213251556119639141792584683459515499768086667385346672153595246920514058565979760180728032110050183608051468259352300872060052718386828036029629413878410523146613552535939486357686912033654026452014086493832611241319202079149918960897261823419660240099735499990833257001357149002297809725145301504621036277666429194159837459547855459987010283293849081502410416770704740744557571260906144770282088003048680267179766714547790442406661961380624533423088423923186219620400192974987011741101360438307495611068078645521826966279876439081985210385828135789947163253554345554604456216265003835627201685810478216415975419250609430977967982993552313517094822215567074319212461061499635188578205056617090437388174210808730748249400563247971499768956825825103857286090795376246148657503158720792402143353650269810319429974099421551165430850364814828918236080109378667608599549332834540461704751076057877438425169491332981902856573860468414386408415744033099174502326490992035455574161330022148674377361252089854669294668357956332041926321704154282489787189723604431134024831325299299587171875122571733399461548351604016393267182187443502059591190746382376258070998643179183962568522403810264594279939966001869692896518013729523055875129083689685763279670315142859900379908053517644208960822588577811167340066211097721270273673060231717634061244845566423440223505337044189680085929734529324310717674083996885178571271865526392243310477857045273587699619743232737811245229750451392613131494740885046849741222124842765946376638416429658839377538884989805945338532032300131913243557482249193033339010517042221467314591301004519962534536234129790208731803047711875701893856784333660849676902760146305945103813096295173288589959363532964795089412900546708155577617724612951600937900125556779040363142493610963548994573101043150991049709566547604102539260498924963348310109970900728622316596765427258576637498863969119701583571845367343820354113875128850337124905621099083793191425319890976982646907019985690867016483348784113329261133294235246569667424536342185978552843046838372500610055662412664827421987203909914625199224743722604503743450488901414628028477972896705770900532642793165578025356698672711642349368186025102055374431467818156468503403799111279871790294849088026203558699374046641780418820399669189411056016145112419196614198608087894023655140553544939179558806570526625878524730521427082380342940591306735338582007145200199251318406165921472639997679621579235903392863096067696164821159395746715465176768135250820259280572918888908205936861506983181216749262055043431560872025446308373267008995609884414383904665455866119514575336435453406606802521695239923386175665646403274679084071434585450605156535600876806539734200711817031464598062295870202459920649357460974590872924870956791258439440628147363154642786930372491699702592791787878989600564866977681380276582012586882549843482382712214740148389676888826828003389864699717506224388827658232386402836161291889856057802998428303408481301885221167940271058664354594041670468678840999020596587560245286106071331838904164082207400514104041022807350463081970966470100292290325122222698256619832275845236121441075641342452743750707687498336501698585315279534760810127688058934803961141459201103311259035273721605739353420151796017766642646835749344617379521160520663309639709747547944403464237471649479672687983877775834495734488215469166500863596912720682768520427052461747796511033598171266379524647045139692436418946588455591881026642422775238387385356852617052547071539593745426142549914170824353844769462030924937414683352142634765633025797345687423148240843217785526346406527128553749582568156300511229139854339272428715531873022393233463848529248367727748428393030857676021774163000769494575946077114705391610233892264490676011779973611084078681910704486587613976198328786470681573371904439434048720022857938924149515609381013466402818408225523686861038029231222835358483726012653026771753079870177846397939938387161954387655352356347360314714182666107919618037105671643882190976218623240631034606954190347652961608721698919880841432987343644706483262984554565542598132110891380703767180918162085726671929979276354915464274330327784858505473508315630868415100376040222564510768343817704402896507745614190484532082898259526698786329392507866610600073652053195634765884555438677018513991512831893057520854930342249548053694938568232969594181283380892850751724177249526932423793543969045767307409913546163726916090618047235879703862468039501984298124080399931370897825474197577763407696813329599355243031776205592039549506744857905362854358778324445176031945905895833192804872292620984526580142853067259700703691035721807438742786187514952844658430992937398986743046750350060277763110385907881022269717584687500343606859180583259359532464251147658675968589697525951575629406280169199484433522405429696174579549632454760125361267314286156197873136154972187609189713949470382234072794867391004696158576931623557508537432722955936330915277640788611465820884794361606896187527494529734976671042091370320313782023558783031980974808648229737658704058252300498411787432266271273409661304816715015890301474598798173662605543257078587490727440195792061921420670739326128530121601850700746534042555867383931885445491663053800638376621299459735443334052896812175676515747921541450164310729963290634757098409489315719538652322454496465609825932544558132923466227954808294288415715358665087829618382869748253172791966348656917981396999698018577303978961669248509820293926523004238559897454928202025407667767639139635198370666138647790888897232757522649498962749611084427446995148829752027412670422316817228783685281537691134988293618051497877593311512590163699773608261741764723795297782036789285560209610364462402550423401771878085750569686576427527696793085537063608142381796622130809940116874830108646300079061120184160979500936692999147661737218660091974351507903690470924166625207820374269297632016827669110786582872031446958232774770862903628059984111138594444280821777203099001925711186356322757389101323884084454396648773475292983382809299874660399475868310577743429537482789186030538569208974698158495626511288939395447968997206891091486767032657150336107907126854504922677823387745924174394363110845202072527104143928558219545021576364999403395963483089004626444174417832550522004743628841800897527661311441944784303831431677842410212785179171320457144178181953700139078575672003316488973849618544994250479463557875388099508267030872151292513358299243002311617839914293412298831547613852548502972048407881786550757423489539350728842965096786809803133479114533145452226183418628132339182649830121176586398356936152143256047876990744152792641689352657628517512343921688237646123491990843758708456724072951232675433307922509949316577566853768027708955142295057512415583411202686762830825443378716640905796539684929331614952520124482322722604278010521253770490343604288078707682950550929155644777498993468172864511886691333816073401060871187842304067917838117401050025752300708246743668212822714720475194983799756131247904974638291609797152588843414334610493926697988118420897602055110407720404041554055910435966089848225402927275486721253506382119888273593762204635268595822662471357015551263356808241431232915367886566306845682007650275052671643405976221929267139419156990692381117033267570867802143613692193266745550038702535412138305261023516716872067425965228859037758088218103749567602994331936037800000555280979711145799000922613573103546742941287555278951420699996299798054543714313374507207584462436243096984891753479684927900061025112125625158904327795195672159127330316089736660214562922679884069957074535507982989602745795033115788439633354555186519788886817368973982140158416751949700722877679907945091580003303305462848428385698087056031871255968320957212792943361823560187526940386015725144323995701508895248750836020133160288280963584307943120507728729856199930825097131536424102294600416926123154253791045232010894301619843079314574565088400787855337553603209311657162101854107485267185655985708503375597886028623908805839123281887079261493954460918887003595008529387934946934017772851462921122652215810619817189015113575429541345264103992675339757394374597840841646226476542373325219407110197785656813407027940437525773545393195623719155790849707210067281848704655549884349753429948180264795303781585933806954572151988686380786413690699783909353798110154321882717963125597940375840594216545798454852648869655279629041490334442901379667909256409383564264729242975249434806134352292142480649948459657850459840237440636173324250518944642102584465010303047865855503449663944911518764528179721170316687005160206269855687270611373560098064912023642595021322703851974918130768877981735010628910187189260610391087483387772711111495082015925968981016643883199361711565209896476047726222329914785506780927968629492243600529340697862213134993735162692624845840752318421119564343107186321149743777531777278801436458032061170331001727207673309122355466193147044339167333935335889684515013746566664229816169686838481745793747104446931858042547559814586709699968415098123586847703993219026300574520247352093723264142057445185591825644115988947675558155020404637744515390264663395844999128990408923184399179317896943450426482383764892697662320350785013450632440791903479415932016765805692915100736383386291053142052544964960569930935888263909692006759632759256351066352292171717400517064131355710764582764477377300206705276076559510744649821286018827582873586856306688944405418472219017213507576264105930569115587571180609151770495861568594554025470607191564316479094089085668300641704381249044489275701692452286695910421580191249801356565024692312231270964648458135283766565891628315395280886024855975099015463305705835690424541831269511506125725577460896607969603033104102774783170700394583868994393158889923324153132427977338192390029859118389435528254755839497151314767681897804260652028012610585639544155507269510040873695269239453380944340145431031747391605052493441953412249595567497123357096977851341209354130127361035870303246119109387507754248633556856535560272882966209837353268159692337328805354055747996141451698977649533675947139513609896929782718933372851330659562532614766321990416698858721649696652432401451443731605508256344121931077168326455171669445027115631549493607359573367412571201321259082571977931050370914393089016867301524150062197485215785491737446683345064663419315962117608164171776036652104360962288277786555013611401987070002398606367386352094194810291384402117527437165341818337996294414954698534938336617410625504543338404846703181668095620451885166596596448687041326996005445175991311287125310185548355329254742978372878307387347410858969200153741953030903858393341393190172060728032581768149636580065840060700674774525797085487728858839168075807311110210517472684193814563163381031949992269582972476920579747472460906374432806368401409356085416608155895184481273659513902027967468710470429495496709856280668454656060974757131579324009715572458897808890011921454597103203839610755784497328913727360604286982032516030224514267898751132366776520009195463028054305706458214934338301529508241538726985464157967821521652585611187810219861026753958647589548440210220762960016434337355705749669481666932733057812229666721257820694960068842956555711362532486851864783986531175150191249099326110129346263439707071450885760859253492816330793244964000789367390654881734469557874546812229622223761397701550426484735393430971496412798838708772246836703206563856397554940796897462236574109143694567093205784800395431465666748765431871424066771112820381465749454776398682283067981120692888193668675494334587315905329044874524065741871551757591699337874165062691784910392477187081204748436509583432381311581039035701020221322230069740046118844355093267362351695878098768437399601158345947093775347593245963685049093741971701344776361648211048208543573584233122347971666393091444818150529208859185788435609570249626961578861440256371118934962508307007602610762879562443529965967879840352414492586650574670868733457819526878220194697067398356717634654395028709602663163204908874045342750549597761076041201927911628385734351984245782117321770302524113266224150845160909602307446153170993619754240976840316822942340043863089752332633095195926244439525486378973503166191203081431291917322032222749149115584521236608806138412004502011193995209771423143237956924016156117364615822800288886629101570454051673565878723548450036439617632186758812719768336292334468805127724723587853139651847532786527325898170597843902225878259475439467085506438015676758216074413527280887009658182717107910092035132311216267304459096982474338938002339292614090588279877038966645154796960125318572323630239499418235080113050640521993698943626781720776426674524489982753131489842502704355332944914344157988482792940202257878081315369284087317286562358428291907144032709356003505765353030868663474168994675644298139660483149662937757177198288359304037321021404059115884297277927312843565352379067917651197045067719813202637362220104217670585424239093536920769451842811724780595301925867753136807563379083201450590951298190503933376277318209675444982233022386876044702730619148301890421085834995348234501845080626608426590810024681671216145547992919337435393335451052535862451914784857130968777442392223715049435095317696466162899813049020170083809046975805645431130579277891974953800797531884372926979435036922367381849808514288733187494920117421094639462435491560268561816287618687404063278967215329225351590212775669328400641506619402728899899148459404606336704317203618885791745515277293049880450216977298676571775710206990460946800189560529150790302257760971060854405735255465961216348926156816721746959687917574692274182263046418544152376654595547198121244972739684128766568626694240194322691299498186286470292409834197545771883952626206596167550862538916079761413633766827682888923278047704617951789910005387738101951766473089356853788964337200559682521674412419803555714662122097800839086842179762285661762238508529552351794751871322669198373688439821156374063511856971913595870998889303417909104599938459521963053360895019578725372188753798252078835994280935414518414817312033834584687355022181749887525353097555144088303526975505314361533445371316911441747132569921217056268285620933265938836822911668497557417698001187064870863837507733017540684686351984057050227441843150714100510066812900229510398564064075409310499552055683435467524926968205849842528154833199385709777467429373335246363121321056965262878750294288842679142296950199608711102405228197000757305718934067545574021875140868788352247396485568482675582681349667062132697623768642956553134280401937565834689177559873986852343912088075139340092186343382503254268662060163208948158336288341912439080851371465773736104960965474740290947901162714779354750828299729074771950783198445709790904356232869616537124416090305865716096127469657268171557911262115513164412395618349018344934217750116764442070610228334673224582893099943224405313484153527057052428241680661159512469841108252655330092098615361723741369462913344244923888057789990453409426870426147827597552758776114755164188637260531176490693907381788571846162600943214181979681761213090235603485164821862298875795533616606696130244893848416471457570823702583971204263138874479203692928910502903956613118375609887430086886734348224329666527818716709914246741937872150475282045472300798275693907657944633759587812189420346594906560973684400065040405090284912246023826808624868218917137883316781627892251938583682698827636087479024800815632130734321273278192967545375612029625587733034235468640693501341634272157122906713983621157900526496506718819310070131564247375293149715481688543185706499801805916148054143479529160951471676651704523653817802784754444226483398450944177703252972831540586747032673865361468851715568387944748269923811585947285934996558137552285963689759000576053438983274371578311741525208562117315366987827979418960237893750518606124755904711571715486590774925209689248955828548336065820065514288069510290354879427973077332484381256586915111028836287120488743395190156062801029230926136670706954565331124000682866864890025630978280588544563638334914389235539553376870677271520907686099499185375862731199452320466977277292257839301175769312199178866454332747410106494881036925823133325255855572121682384989897117426932952158789607798939543721147441519086443222411661309740112001547752006622204521117405236178765348438586503952678496009598282561507318438366325578869100161087733936174920218061050669732004376911917278872306987912610207215210718654366417122653721397158971637043806026472311286867114240290102790316804729579523258069020344560367130942752768205815493287814859443283693725239393669244563838458604403524375246576632346927745193023513793635632778313395541844389788686146057215551780970677468223557996591596216928678833930297426346537475071154407529735821118696333918812846778618791907582947486361250866552593381915352640537389780707656103999024424608230362365776415765292264911365520908031367691138898611451375329897481469669106173958620609324606361909764823637195681506904541883370340380835417329478676687712204382706243863487371615175247260108438165161825042428999811400853741688365614254107592865427780576152156597421822562501741550915303751726600336606658497597327182061516485729949290797424654988903963748426139950426039019344278258000448633488367177639561070946468649571739669372183980373852614994291644169178532318046262409101360444836862306837864882827108073616768801667715213046235218719705911825135230860662062941575045186040859133643061727738408900705599178807035418144197292636686819222229883819110390392529752633851565600391573971636562383364185430678745404240353978710958434081738183152878911608790158582533323296442434542719685917617699795660775705550030300802613758059471045450719559464401030899766110144364503763531063825558478577224103298351938942119972251640499415601865068000129844112584927724132198643322067110258308654218189383477151683250874996885289738888366476279706575721709558443593090894864973110296700316297268450193540632504128090874628697228464541539072348263596525874283453963093908273848644563161025522156890775252829839304423959845812411658883086426601380119804985047861907253448747203077561460464405180253822185726861968803036388795768370858061929617825677108248174111476134461826412037406826780690517410775709052552947735750899994786656279911293799446198184213710057300421480918385424316421648216622498953591882930746858671824714621784407577387932654153924261304443479233890811696481300356719023618025657037551631426630600677956154757102783184303353805638533791864395231277773690448832511423554772338086934651628983803599038334635865965190038888783714615316968105008438592580762673301097520448347218507622692010874292438923223615049001401944985954014809535710902419164013198445899719114025432630673459863831850226928643104674689862591377515695978056985656295458175358188418761501702677790328354223253088383826487726181757732536616463405662103571065050385570679434379075877438825486578799065587925496695101169105202674232338621427145371180463919302985552220566727586379882494395784431628268257368330443894271558906990110823511759705737932879892026539211508771826593954382508896525788233381699004910855478334348420726052477673013047778945280193691088346587615362796943331582159920045101672517813229448612443663187932976984951868581175871225383126502506300341758124801215877056477742302302044814375514611705588803452832899942812875698237554637038076867909655736620583606557525807402749545132745999151985683429596580467621027660950376109108429021819327021746426653147768182317452221042595587681070347357858364238572561213541146965693837273200411938086145890425419159697903388440036567499962239779908978385199010335136516361905251916520631079855274684630387178631189273712996662945186185645207563149075742821605708438013181560727150433270414850344638455770596616185146006696117227960135242150265090458838743805710453573095875552284656681855808636840197415385107534211971268502865001180752158400946699934280984640169525694775845886019638351164192094006039831405759435218799975523731546265406217777036018877834068801514459509179396788351516966894644112492577219282478252404591732323547341438113959292399976790672653025526418988193813232907068172787653847621367886858545422804936237139535212344357783939410710218684122477342526064338648488712461303429898323387695545178024394907625192678777443754619889569968216764206511624710047042502309184040752812642689204641119506672163265612797375245107167953453215403554799089262367954385981604130930386963202209046968219952882792192459777563962097262174163245079911500340163937847879363128320674290191060751206786915985804918826675556912508666439782074770055720566935395695395950443200644404213488583606312797344089877875027355611140652938568393115685976546687860544697201774218677113229888875945898592189051570596878544416002867164756626377634998161776561890168052092386250625246705696567255085124165667204452601290593076615492904785488318284515116199454156956919848511711245001318537857237284918642401830302531996193872325452762347361012630343294909014763009813656315519686412244704487615070022602736757403269061385136516688071532048535258682246256929910299127595445329263669885261714596685175356055886951849647230279150673379077522435219468086145979801843959090478210078594105070809431884183963323730534266936645992156960242987756786474738633692135694642586835772527653763592300445267528001030741347005824295362661593371493026919590548945597970401487102092561822455186580044912316615496400529111417852381883284510354926264841040201727180595583072438546891579511303190360169615765492568609315316457927973467053206355889884702527586556525223880714326021496188908011129401605605405281360567142396525951906270157304046562917859700725983257136461165356859683760011966298975675489021866172959554590959112348212132735307555466777548267082941497982862828172937784874466643443571699325334719659905822138387519047198466010718413735757963147316667536301635879611511337039464112353372825196457971478162042572703931152672189080195993115670146172402255959169334380963058325746308895971535630440594579167201097612849372980238616332682240264009572678439299138606323122090450370735678341329198351879964803916076018038950431963677178868294925125742211259937267688989400251859088148241589623608035967920178083934049918847733360474987958467402330394506313376126600847799503487782105259444774463819855043695074083803000268123696251561773009836578327081524929608485934560765020670117302247145671746386323145792504025638560419002864229962963880876290869313783969300988908317412998852840060188497307404898619625967773538560389151412407918438995778705701003166538559148072691545055064947908439660644086160893852033416614878316923196447749001471711106192163603406859134209501196254908320658316655120777709969763675601510550615686528110006209537632976593898744742642294171322528713484355125195063054263122954425383774497235897739086465473532906342373042689939718941694381165751961577926557641005677332246768149671819120554342634207584928806334640123478819463970042140565224316111572860902182271645695577946905444087994823812581738976277894749619637705269600263390599838889923090182804211128449521992890281235616745004123484876501446710255586221261369531990390302071210829501734743183230334339207798876715202013817208128342737183211574127465108496276114873844448662777205270445256970505046254249191409529320765194349546419870680140981636819391419158006841307374330867381359389141126428546640264902547443845950842604274996633167672401979501395994643601831178756968433543395996814335867093741126009822734399841948214962535157307750219166700937037420043598490208511455071680166063860253990866357908537637247716410027824130379141300638357824714613184339736398864371731809134186669467181636306540039078359631906057411917735518505586526974770623419326071901663763154024276661925340028815583971798436038659228180739496524413258059878071678249533376486097379225136166502246150741865713970652760528310642720453353811651585348183120663378458284196240015192330298105246418566553165465548659983390630780120044448729062472979360071763461160626665867031132372617652561817937068537663611265185844815222704826211259621966855611639044718509292866263051924112181742073217239199546387578339425312804623416947633845130188205369814579834890504800976166105940117253607721190120414620586393575081145663950337178601736780316018819075428255652949485632169492454941632790427114292819777879648286468385040711459382867311806896233160350897638210402664134182120769478265921575612608661374290374130694203532770346163278686079104808771104617077351667579950250401377152282672626077356763339643887159225191566752641720801450660814607366100276611044529684696068652987018473058837378062446710995300516025673573114351924128513083765749980568395871092782557648170531746848075626081965329181555255416815040771158165937474242871997526286336606816339071852387310692326142682812392742515825493538661655464389593350935031329460185179324154942907388800235405561923864243015015588652451099208766874374474418082678949959959147155933337525443133158481562662840680933921223363003509509346658253047707497944030430482035219364356339235555658303108980902902354855698958496475693789564334578567688278981213528103331970559069809418608719308106391550588957081344885842337357850061203116216799717947850255418486992655198951412402349447985148855743225828849832973636516011989013301992918151560294312772806361252228087860512454553372995036984054138044080910759607947851971380786310550675435219847837958116854046938586743811752151106475965607416959814223146324421372109060237149382447696121327454546050168246916370729795250418152363592329655941503440896709351925224403481717878919611729992110512695092390567004981758115951789858723749247080335788697941068709535831827702271490775694560295139781406353022522984566575021295740256239536070919466090056185928060930646780380767451903500768087289785582644354289656634030573762363081712623199674515372650864703137991614318816804948999661079774289286149174368259964016781224899016311364439962954619915553001675689764422836402645861608463981859450533339126938328175454543523701528584891544633332710770178084013914148687258267185549329522710395504546006557675467038633218878292425041909270657402911855282778857885498549594219917079186527838938481500301553426298733771873468002133770838218624796037631495392555250996768104719040137863887709798636263630141941697455500606482937453722149033588784173486399654731712920610964793469214167917529997710825959921966430821207452196771271720278202958186985139653355972915531336704788517876558602814583532567713996161972868083833212434607496453608984878526724404817707673593400062247511082361290767341602599899413322485362375733066706196434721059845171296741575769046723522460855861404366321195259410263245852080811677649671514883504472736796716465039358883220382600566496200988916186068383247379366358069524229075659965396663349882021888293052480495438351288334623207779245278387686625354052359537418724046295313444034672369890429890219433356384511249278344097185191732133380817426606511860821252167430062109777634121786660094864200147100159613279764125309585037750840076057374086089792314942380271688336390822658431933273949943222015823092038386457110546160947037432189641457196773652307086093069291011460835905863972242594490753559183210752880263040978704080665859039942868906744796728650053380010466092940216292151129462720471812806853910763827655575996549628103530293252701791262352905670223151750935133247072148067243431597756532321503094407564952881718044357075006317307196421918286428923883182691078759780469161538501875195546821188680284698526287455891422051315174215115263056311648141429729250136708153105870809924261689766401834635024571179836133797177526558643572520142301597226400494903798890386668118603951292875358373113449136981061725942248393510920209188132159636030587051381364021687393441281451372983515320671721038960210438523482992124451348872094379623440825224982405153079899117653664767955043340366903307472154332953056264781195388496900214603015842826079231300004584600604394847077414592556633529594999285158248070498673673716352612167167936903296379387959098956063170850698948874975625219010483050640224302794733988730058914680522125878852050728788954706752620529364202012591621047105176495649473752191302914948809130608224901389949052385303991024068608207369314160057943440372034225731502846426727289206585958005552682707276992104737116032003770309044419456553845238177415212139387292043769656547380226483537987419775068015470814277250236340736468835297943433838770654478230591400353505083145606655451794461179971050466031284135701923496663274163068511984986843388859092119963780423117967007297768915054696963086787898272148778981302632009226856355421875989709748588832470634944047881684284303164216865501266964961171272347301072621846932478313606536025474688627778829666680058658239197392146198680534631367144777484840973039121267434540671124087364649987806665630258609855435341458711397123434129451720213772514186015849720012467960590622903397298213857295936202533036392641404755673283130698498554207223959106546153970409737111263849290922026741131114248118915494889179251962726309973728667023677161926660299360822535341883068947241414111067228386885795622283082138872360585626159550034502333201804890538625231409192751041251661144034181528095618633401137825368429412992556145161423669158051493184279224999160867795208464048275445425918658547956038384478042103957381350409652115998231277947952718176892494428673123766102716446698888823994558729047333323848357240720756318183990413303683885494011917265870578395454975425713351833075384459279256260871700318636307940491170248192113912136957383655417245973343782533912969409752148522734004977044478956236545982589416027083818454457171220529323521894567878401436283617931621245253172814508051090531163435110684449917797922541423628749923366008645368497761008110997256540898021750728449145053198134327117373235668160898258141283435215598288305069678241788714364989519631761543810033937207547871543104252086738487440749181661082746233004962816719668303382746305760914832094708324618939098017206359217999595379017235689792067638638436781142454828992682127961515824793288142508081940686982462523638738685038668120984720998727819971879208795872840889304858877252661838162079204891044367447625825340535183128326768400620210121250772967142397298025960402537847651015174932087064775418863862938917141933677791674167040821715626307502083745614278887167968662283865089735597411788582868972058141923827767427385933065716363161519329415405677085331519814439413444793110141866967013614595892143147190429770304034747779518217877978049649681991431814273528629680514194284367971094588628352210357789891554269114413453411557145756099097665152702392516581046859732711597856027519495644962336629791826056562063103350279043714664976551649432746068683797670169293202100312556882353389813271884594445886460982030198713881370171205977017494899038923757569326781694594680813040143033638732746132378085186355013460374174250670742936781008609642519641912474470796596912726735181960458161507472105276693401143619324376644181067809735675671979201176401593919712313790332911434090558338054402501711993832736458727630668748983259916686994960248870751424262515312332671157066698507813205034215005659024355501701670291105573917994489942127631712332505401710780012520383090507503011573608403323184769358587823384019744836546461040041898197762186362061789529106122024930692621247742009728719065809215390862350811229613601773986558010896659471509246453926598316270885408316628436671787078038178589256596599640339914247415649824889465318345550828235657457344473581354707064820211226030757927302862222425346729427423736369754042997338149366317180257956313332535037445099582412468873137689568998511260833410653407593038824635333771775338261831910961449696520100817525720830468837518531011321077398218961859918049207549356133709693698500301648568122382376067539241768405112378521916812591518424999517615060147685655475182649231973312397893246570991508760899284722243706347714185065553830137008296682163226173865590341551219409157127391331408280921522951971100268152589997025604979397996596916780783579227574591662472126372674994943942044415550522106407567612244454333316052959446010300289513039004091920890535782988101179651488157716137452198868331587893113074603393165719123242333350584313863715736516434645172591746604446187977056795918753509975729817780129725632359307055789728611193255140616404863569789858212370553262004052402827479933054741694260556675995153929200180840322570992221527675531608290223573034538182536225520763286829621779699158606725540688018249885549848768087932852377119198052586086104502750648051887911035566374545790894058808811071936542789735972281386520683086847079548224620975774255653962094347548019400773209806602959761263957317222037134330569329339597432777018094965974535891496830939777303863399313798781135287358644585234736402723948226559479495451263808536944138861434621279495228236207989573941514128910688785043389362272044488832093641084967322173951445543644384435873733696863401529936761439093928073818622049779944915269974197877681855970385060632063210574572910296730116612083477820927155543521973614103944518044091895169105217654837490796474470934571210735739842374719846971324810611511789279239527422051837918181894436937407478350878954722514259596590531641387323573018177419527386502458920709989614199271602539997309207192299306368954208539138713426530257968092417979831685237734391852120461249931783631618135560473548882425644276419007238816246033091298773372559097627086320126000419769099898408416243718987255640229093366356831452265143678302172800960354531766596044365231800603694742734176818022590141212893827903797987626166508605160231540722832356686526592633248240796210288451859317013224046323488944227214647423246747520601918146069856422687489492975862566700129042675989445729307670096376220857044318898025082378390258529116874632296545262827182163335666703590325754879805257547349625137836422935476049092526259595790884220905100571770774892190263098666019582835464833741151512730718239133451161458053474357822020730091606968345056146845862967765539504386025698766577144859918805656059179617052388330065009728281381073968743270227778912411391362880822324283307981749263253930003852975281830471170124285997535904174454515911829161236103385955936506915010709550676038699516696438513179751596405542055741648157326775996036817648158051232811849303727111027389362344553429913281393580793867667097271372566860119353560942505485783536607434823067016587414210995420990518067117938575902521239784985292721671039168904045563656683694390720341043447617084412492274731085920206438865910764706284769151018920905344859331452200091897978260439632443561098960244578477538058745713715031636843418117254782701609163996915963039562106140553510923297026743506108556014198299133245051267992793988617559440881777737123624948152872589037759890350627784531353383836889134156930138923209694665648534495735065388729831829324923870474080305517787180635707817268364185877914366424349938501786608390141307630170831760698268928688010707590731908236472141161956056224756086414895813571726195761323463878767691813511193594132445484503495480493239959787380554368973135347858764977347488319532616688758054506413383327956975398893529013950983395470902592338804254249899663874138777221573741323540858421979562472961684856831028441292798545713076641087939537104567858172464247708953965340933446460468416602042180234520771382553164015266572875848624392806141245333129085323028465632018989194507522478181309817853268232534991330072674922600232993851908311727919437795165726166590189586112058642926950886756595246795357777460977542099560919305991020355781900637483166534831793297318211812822332820949234401861911296310417967107915288402778273939217124612495883194439403865484074443749732927469198571460947845986145596308431596584263168940894764331427297129585222284689254727585716330107866712922839822685182860270512115305910684667301511310180357417660163757811695178317778192976143542783509436662196433713312767395964556955481734806098261758864409741267580330677595277291368570199088197519850849759566531963898577634150911092714588238018349218677955333746974671923477125629171476100646019056543941462680990774790268396648774564045513907254867596915054713802671318449385397147526059321817322648379981052302527805477279037939755379124857563385074531241812121514206786586992023573749845823701804866204349129314937386802282810798922822225028576265018922883368538638532611403359319552889908257675221100577366635150689251629720478393937744259957344309371121554090242148993571597243503714167410150087957849704782316607546826137676671449728449509097533536150344032381964688191486580286398873816463458898553710867835113939329587939260885025175810272101211319936216378550907039052932333589370670439952181955341992046958531226720337954497616019995373803161326685866114250484044216398015890576667925285710009095028986452818702852506817366793182187810976331118290332159240752333664178575019531023790987112044937337830708766179393429520789330115063705400954389504506496378951644376021698422097545170213556820127304317771760378393893318132345854720792635319278253496379096308210088705382160557534927856190618891663020645762298877612219791137468780532868955489020355821449791588901343994296274111327883618874169177758755838111577501777847964913723173184932376888210150839083040904565514206327566924650301180559201563153576781021372646394348413157497985698570947645423596238790987947177573233566246452135236878088047704191321102857844974318946538368852945175663692928200699792315681065756292932508762156648889561951741400977298150484553812931450923451951860960516543348892603539350825557450251837277145929830186403670901510780360695425207331007189411385053019573912039758017865962008505386773029346594930590204690173925724345258493681357869361778636329392747089615560499200138765836733288303536090897613857768917738688512333314240525004726772043387503229545774844442603317658108258077650726594976493490480112272130353448188624967129136724958838447663807433852927884188114818355613245862205198821992013202108909038803591764611228511792311300209245561459646577512303716921469174873325710291081291756354206787881657938992630800727398869543524473907954761411621969929853047544179196640799085527732944941450778567216511787593198918002692999508241363322544087011487099263212211869228951700137965202513099876213152323305962519098394683497025583122870240947823790278448149426400821618809876216279164518350488707018124033963778376320303616036022475860178407849497192505369180389660755375275890370122668404262709023002006710449872973423228608448920560216546838635347826729313578228767588168811248754301697466724132495160253808544572274469852317718103012671671866927644649483036776193300938848104277384948400139573974286889205340987283314360881561298987104775996913241070434958147377847409107053540716093339277979121753497946846420869696082003972322980345244112846014251206073703908368555286539441500789263026856592438995064989781824974938414873214190798943375330064473878661199260575888083421124093397608727032827002591933218566254551961471748407837801128934803529129879657826733985643647294953909051630450786876642000165831676627217730258841749279914530380959661972552802707673854039668504912041911529261080537650271775162638829587338248844372349108192551532922028981346981862790358380235820681932169551369884888649837274865881228569625277049867029351679905124101771813841137136243035224438067861303258220742677401048543393961537447701620957976855489721434729014735307762433179347503502201752355749690300625703464592982703555379742356362367356051506227105663189629431857040092117735690598595401958559857079234070808149690688132121132381764828361109761460663738264041407256797982469537753086617746043813303188196922823084697192949370088338771996702296673699602522949742536649907457132282177258401256754590417704590788274393397176849476838826273602629014444463952351130066531424701956366307050184847859712858420435330293086605188023183603940306102270329421267188287554558474909661648578593995028680246832667969508384389780888524288996788281025012123225006574431367793234871235564012474495730681640629799898252312556680022700734606859827681916517624518972931563967236775117609650159726162695675089778926283147291374213975938248362879580089353265852415674124933666383727476167655537644580955590827888468799716471185744230452057436526070009752223169815496317115742741420193495977026439624572387271909318669697969872655809233490311867436367845072093880188683625945457639950757522129775111133926462698064911074871581296029603114290603240538787747436011308358899284551116990765198325842339564739493961957003154913685387251496376685470692385691625215737085102019306408178353683331462038939012723810708694491560327814554481604813641246927633168547858986193297748672501293203591705883064093114876862645690107455424433663730583873277202714415317365062306305152214142559661437185824974286487056122359298621665915899553816625756961714876399447495464694618254655374161898811443365077848076845701894781149941588120156837120624289656397628128911855759283548480199398108988936810702925209100630950828264303147967365544877495599540820799043801469000203297259317016802069042160463150266915609834523251939627971211996381080698633155481550875493163172054709192894736348568086145471442537141029746183689020468139696604906159136858703867298454372867109170163650893578212916820884925339793737607378856034140527167729645384888171037173941407970558361636772320146788438772356386372046660930230653228215893378107985545166268575119424776085376378413751171710250691366537944064567991971585168861817740039815558753728968624618252603950677347033381004061845823731210676981359730411463918385770676794912155816216285270494760813856199053889191657616616708693457432143773627816902688558737970267910977793818728339503834366474612564068008605968254361410230980583147047447343905249905863521961333138767648852366814508238229830018627098268946972436423327042918333322405182648598601992048032806416178228636090347500709899245553403954513240155179311713548257475477623893296505249800900755652219219165067969291567586250499817003018337575760033842121427986931932025472215791422758879910730647676728096729664706547880948367596304969293678122969891793122096141912714848219934904887230299385754501402943284766280928661373238955555818309289412131579523629943369933806742102910796287921971233819642145052072230252997076805561796769586389326698358429429791573934732446687230447282969762895344732498835647335152736757301108580666498503203606547741269992622351134558574793547657138007725617569849115372000157467936300356085801909535306639869907194501696608513558237246337340067068113146485764996890929573638342542992921644482207219664455387009575081878582507773083103646874157385499147458262662523562154075540634590380832019326841526586895062581456824581764491029220960244820340733971555160210325078109379252661348403306107324615584289469019075097152752461447013756614182940021022449828095403645343431974329975522252983843958885428764993302792701105042142427722977497102217687328354274823646609463342877866929736481701770445893250209264761687134234271483620974685774503513634506015452928154587337043982142229096796026604226422458912080445386870915955726854063894078669400960758912778312368444754208277485920676874131635431835857549487005676653380493126799527580175801775458236969253954545113681809457297203080721166859542385658882885149959058471305939990125249831155459517680253956190652346537909858499366447954237575927323065358781696743681708529047638752281797971481310601874542986250297917756787721652014131895117551612903350553358493454232542254370003538422037878730809363013199488066962498099852343412518222930993520434377924251621094794313849880701610951481563043465349554050355034437504095215176259879376351526157108879661887369893813805451554436219617230541137423181605856329454343434612693344468846073860013219916182064169213865968098263051380884547706830383049279872763392306546955884141732250562190317137336914574534201818031028275550121220675420090313398319090798714354096187118337202522764201700502827383938083599299481688488401509471509308530269016630641009545151799794077738969320538855784990636157420854909462968944986068515464786241552728308450390156078558679638677035749541991171618861502153615210964102735936054270778919542522453054435339291592143262671007335346271460268447051027185560020137551733292167085780238848605368612496696922595203259732933471735929196140027681217949965656487079420444301939737904426666877257206289873484392235142284623351336442437294870534632043343111116353518432218404680435746049220984059008231657129088335701169599544532047081355004162053642330671514120156392693064145282514290565462312076733595782159378728823257868694743549692010363462271910606756857927852699137307447834551141899786330699443077281051107594223641781399060938131356145530470404569821308323416730299828085765839312166793221737180219438420517701063450297118448663241713699216616838367739970311464678375765944375867506968245221803755940527651646229721590192043822187629776525760260954511128669316676963010148221973329294045880555773070468499915245035200962405415265737084490890645617504778978350946691995847079476974657836125071784247100479389881188146231917026973371014725034810417489372937532696360852251299461129384499531348881600258043383298406951651064282166904942718726115298098125568403922380610311621572957754399299832675966291986717962342803038405654293206920433310957742791999866239432517834861412845663617172702638052224611070784106668172141690288499274530194779316016090061727051522094410680378291857404483631960641249394128526425410370694573992300417015760141597443649495412292865462938009838640486127065114020356078774224658728872540289695494462541506356720011671979395660906840035381719481207132080987987533371139532912470527268032874720553951224671212726937096065987135299362441222564746200280671837025523344143852607000682594924189866504075436973401733068965803263669238679646122313052043326951417518439361193684904283888590474316916632837857886120497111616727413784222265924036112510402905048953437055860687650518750814584214438117784372255271781234702582314515860349704833001707416710227973800733047032510855437260104506378457633078270089611965224308327854707593106175601262025154717312776970911661957570057243401992470024709842477263664980792961393372820251803215458744875899633340249030680160347989552964536932753529865686168389788190368680499425550834307968964016592561982574803102316692003617368994672512740204301363844510874333818184219235109169041096639589407469408100403814967656029657950638038630838537175721115101668803740136345781861171351203188572815828496658812055704553839401860892510243945245270366232742213643116126043692672339806977471615758513247429025821338290492057143695061439027226417292457345087804534902892463428641478829477159200415242123627615283549941002457970525836504602098826632158728434043771037020899979765222668803801470274165477143518596138610365387606568505721686415256299830104519300702943895580666102297191401798874681676757639758893550191680364731934539321714021634781026648590737170952593708240879925815064596653982700205992793432547392744499982193720963143993625253842998082179864352153804307591611049500861142825596259698037722626817106737247785448505418230083712374721582579095247593370358977331721720729432126885587027880796360257293956144596389807403957859559391505742634595769473323390720842576168240904492783237912769791322058934414722051389447361952935667076589550666172737960557077737347581406691950504679620145296069666412874656756913719095556320164027673955467490007536976660841660218979916601656836505459714759632509546129212788332782466129359423603798294140843938771491557321577891002867175861320047583581990815912929793498989310313430009689097282937948350946977789706647771797297634491310895717671966664219891756411477582316161672878475810535930635918707842227733042255962664171118999730190777505283851037558831541382996677127733375286832178644580869009934093329460124384993288758234071847854921305688866569500074499807296039650323198711252791596330926444404738522711739792584603570099258028005786020222344639030134494716556025651527789501390321974420671569353017254377994932715608019546357239707804836649122326818640522970402249796924929704160786317200016844955089837723049877946955677798297875319810448053899196804345327999296326301865959070439591738452541634832575599663194171905864235799736315141368329593506826584290544105465150141218398776171363939881324959390077214971287928555044412822183255592171411283881020640632918855805886679616474889203791307027060457458293935168603824933918009598035875440306261213750351864923729299967292393456359493911160023134881062655381821916230862982924041526853400079028597090593600399620576377322339390660340686810221945009139955515672946590746725088608000914684297619096677810875524759436536279366827809247639535168957392021821565211380923569187121326718896026411184398931455783294896696120016959885543225080892524735510172989521003946960993756018006378307710757591399804899795633452903707670019742633141802960131549309584613288054275977146338371696251094174424326607180672520100883969516536917371560703021841434876543795305654303286167018570572593207617586332150858765939789935625212935498677327919928711871239962730686573048674609129173903005453704532117393915361661017329539682941789775278888717326298674519581626995622012515788064350247192877965265910350479737408234492849242149869481525017767920824054448644790002986292222619066454502435973590775151405457186050022375328109078376959127566415873149655571362731452751449245994318259876295476350134452519991455243694959588087032670767031837775017454326400817164900679164967447992097032128297202502259193577194233583088737635916350123468196575009331031159732454096885820613904873262871095985906609571760225914933140732077345319487380048682222759757665247285543650426805992267492589804296084419762096855411729938809347592818098464311688523608513487165657845269450576161955777399774677760646325126534295210851391658340800754477337781481124116400109257377063834549244972961670585141855591903669483287576932811064771859063626197180141330119793218331682554682773627566340910210968426257289915843845554670498942367729922492949256112450763700106671935442949245129386981742673316662193729850860795567936391505731043782522431406556139098253439075561818418933455015825983553485780139759118713408811783748298577170681071693115215111834377505821200741847178323316494497045276089922143446844033302920907776175250708276311434077033638628334962761519039284875513543721011953508812873832713994624869353076211674105121675488565885486914124284299987714936693940717961582715813713438651346117557715539262702609298667323044427086627550687552988545106000038127650391076455040283212335436570575100625441350071672574949356033494689685246731404608426796714029108095821846869621142906489189361429880298012297609680531869682590562644231350383083879204359579793379358044079917020628431857548057464120849221152220820696790742123636546606817547113809155414066456535582058164827589415716982575399329465399734971779033803857671420495159607739863653484461436594779159011223415403855462628318497860952731547422227930111140619215283750750402897296957554810592960631358083224211513058028994089578384058323234738965251124991112369686924746106923612163763686007074716277091504745791831730235475814318523728576790919276631042167898596360676353883061708638056935864594114095176122321919217963614048022536850430382253807086091831179730484023001438031103999669253502954635760744100681637908823764661498351556738774050627504140296552880891449891775973273684758370926103939054157924123836406437833518448960717703476309234200448356090042107517975352018738443700667431593389492425873724959589774064380759503705818878699380647676150471167178537036723673471622785751879415662430765654438332573254647797681983065527493278023019060783359347112673363946249414448240058305374714987692478058576482293063060977277290653999199916657035819436145557061415045096522805614465184961846356254844927385043361203017373627170934123998227523520874898854917511292942501384619611615280307395439391369458749696322320043432412014379456187155000005301049421797095906239145813288378545523129028583179020401281109713250950325526238515402210287535840719436743436679504270363916220348617825347913057809787809063713842350364729505850726336106798148752005738566451010035272636632967876853645520386458540798654354432443070672096931223106705791198859029253746011832727191434657825262967579280155393532191480168294754350381606777540953300190178323451442028082555577497428512432089923794146238729738766208618061613113310269394509629316692855235878252632758290412889789948476527230794595393353666173971683193629951000364296319993267566884773281934657362963355643407963446382235522092124850609221282800840182890474057094287433024782843271316507176018033606130074078870980933223564142140431182449998317745629802563636586457126433024177597347468847051167417077699892358039464785715733801979202643633384772529822274951643828653572927227895226061796153211809357270232584794501354905986751613689284645187975530236552359394268778462030644927851556603143173798079188593771608855063514716903146331478834767306874606787775854695445038028283483861973480033554878483430253708807424336649745651916794405034264755154642762303184931155844953888690428196712960190181162082826565995283056962112389657258134496662299024696934871627901507089470230374374811918263665629463349599963797549632575188897547647223966723200882681294501663976862938414124792037554480117032966228232297985030950023122425715941977676430727811745290136901291003618749059958795437727130238047798040600457965604793940833794445490861143453270811757724220084200439881731412621181215937872068086101528399344600540937317431575450625998843525201815573754054915382565235075281369534042393604778012324344509071045974755928510878275204336851217649250198484453270438172252863220739298538901483184204122478322321756793951038635781622498575182614783681431078466273792319409680539884472773301819514811256914022476493709111947958856045721095859880149257073099631414516521272538861163357783528679589873332177255625286182792224012216686577063163016671224856305561621268254575276372642554586573736374299335801195524180733254775123995790043919856419993081879187815891472563236477578763381722532120341856385033461907808551119308856427871880117513318544715111085575552475346752931453785150776618950251017202608943845246874276572346773294993353316414064029794043512794971413679634520798758444886510399003209382682301177678015361013294599063871552768741820745351272957613686719536152605862218454591379610671594873040739818470562761034461255410718955015861710979214544825282671692244105378145287667605910869577481262291154465936767390185621661538153434816494598935015812389697006166998098463120974761292675232559480063884129991988739851134433578513142631450989458989186979249977241217557236288845140190077154856017642057595171086621213831096332240071335083534464414125602771337800514307229019291005025980509823315667023013102046706595169005083849124803774025501657868223662755722201781751801321631203987161602173211402840803771319854655321987052958265543605358870195529321097816804982523028963312957755584691242491382324238220418560566360038238509310276763393697073548936429049752438343596012876912119305446448109236930418471689964365129387652478144477846786307291558075499259860859978455901460685891028777484313146697536562690159285423807327965822469234102665507385592951289613739114773839602679337815057046077645236855657316563416819300078406855352821573045148680974215285138633667810871845731347574781775534696589274608873997877284263453460950139492602704524875374156640433592092472043270139238411598930563719694084751347964740618735142849265673713298592899551254887698812263521737295574310798649822714382048387096032098247681836721819936873519940461185079856396150516743871738728623406919575969508763525704694431182347491991262851250561590203391467824437350006455634417747920036798900894939393704018235743098145065886716896832587618337639466865703708457516487856738808992797981895446782545244877818715482199431433667626687670107345919549552548911836815269121255238754740293054443614898658070378621685312362174107256353730238441446514419567694900922785260380469656093029263455418769729104472952884370858967693815820934057377913163065262340739496702156092402739969998267456813239604816459661267236448771190133500335531478406779186553964069925662770741257491428427519271850330515858751502475808862901815934204175961990596085832121522752919202086800940811229840272783623887012866566508127246681403829114993115307091757534458138007340009713513907838551671726951833748013322181871668562718694230911904953240874990980243159376031263335404175257970895716078750932793513740076852759932194842156042717947644495254176137646517061034937608837528446265324702744843529836691638603967229247247640554235378988451186972159215151632155697982169930495556888882160597537633370736725425287095354581899435772931801040256438875128237932700362237076684466083286465775885023908584708213414210091264047671598448151781864808657751098386880794677658228088074727616313074392141591155977478773328736384840408688361268522130041860795653847385252305806287950910610991894746889502498760959329798188005394889930461150099993327073207249944858114305784834341437030118371914784833949067980978328734611582483632165832772742387202883043232454583087147860704382190024985030385978428415768856770993055133224100204181608772249966622081553672365075119610466984399199404941601578444087191877383695402334035943534227872598510535648133474312303861463324643809526708522469269045816769175695444655563499564957279906855138429830942888679166269485477852416977483215563637312042123530348499894265479641232870191338349875124942700127372771656205656222596189768410193893723029599604806528683419907477278015038105041187199465589600467841849384424227331474964278879023052886807499126592565392882717439895898332307326875374913607017237927491036300574491022622902612339263217704493268150867724049909658409700839594847029368725123822023758904009731562555944280420472957942630228281410740844257810496073262073678387271310579236273017711076450410145628730886824474325227146192575319322040107245330964497864378871451477491243056906518581731520592972715153485084509632279430271607573737057847815806200853259403867772426971868100172844774322141464043970764423743370505551161080851113754566438112535360676980874156747829067775407707979243169776104388830537023968188918393210752290331356992348799500429596774795046614286746251104183544548624628914424185277442963273977990475597223945562275489859555265590109862124069479429703823964652295457754498272885284995182093292854848341013736469791726016571040224673433443739551108318630351439236880547424105647970787111086234960842073641994677912250863464671937812734937895802619044918565874180916480448594566270943095797465141153859456255546493168947250318422209223798745529413113777800321958793201311177173404313086733696128124011117614840296489077378856504497376451231414062338356977506705418552431295953229006505892433209999416084638919321782851492799492280347284770971811389107394952725588591005650310602393519267843619958142882365064649521003849952158709075681199196730489274796533809029354993053941053623318441567894583027879310960560528942707045525538843287116768427019406290277344199382851262857223324355083962801204343525255122177179876636169899966057407467157133609015680528845984309911054353590149408478074391443274669264159033279855236020997488377744499934950408352388393406735581336960825504337726367664045713007779009391918851967822402172045262152998143293895036577731747455485832759529228968169183963376971354286868558897036123399045331097705641531722648559147792560571098961258060459100126462100731219510182738427222252172512995600320230961581665098978690766592087181491595732399243183548747078963332225592599872680795343627089829796026650948204050834791590214849117127999525164252686284439405859409812422556981148713353221028719580540159939442574925338583340930697221881756903387585332761885613154376791271930278668130690608465346613083118876819172412245176232300762642852229769488547485288811725108949922600754610824995443425030434214568368282177576627250315320960223741309294859417816293944569429931281976106123128656689235319421144626377585229230660658180202521685527462708110885836912274572696302305218651837974161401966274064216483181621825735244307903332207581393922980994509555149333369059817928031964864207613833554654840819845467207070854434308874488479697695013236992859645411809167073848203143458692468995246371597080753144138415771651288294119489145822702283559148384107915582934337315196192718354313447516605063555418155797585082304895086548120776827749459163134433798026991328847074603215842677419362084527836605812428624396417815836699773095717875946802935011712156509722046551245460966640483817338116119102696818360876457744418066642622387494293499099941525519461837254373435597199287229333328477232187633423664843867197697198228824508388279304876194576429861621943994091152531675533925961123326631272099419935233810778116925761451576001618168706065738634507094217782438747520806869825029667091975304288829199251475168662782880000662858019852048611418458000399167226018873407336041623999467765601869480527851015513023959614642124252191532010222068253231419989867977732492271123197981474788549530925315270982378768055174349529454108188729265589278101164693437294179802476933272097129540119113325619777196645153124492719435617532099841268037171152443185124610240012845693680018497218633458761625199139903244466869557977730852990496053245089043982111766778069679425555430927246870494037867698338433700617611731467868164446743089924548123148706164536458434639784600378990476169746084146016931296117204078516164672084729323372661639755557428856670822978460563559984076957055541333251061984729519993961031529845895927208221896486153620777129520655125326590683128014815621007685697829056812354794138268509927163601814657485565332616665922678161816416016328520913583057822973123777429796139774230593934300616125455144027104144860421714106015998059805157412379986511238677623194998285906332580543482001162654573751140142968188602226790568377908546276577488872953294047822885524879665525000609811769132331546878634783704830022856996429709158769176013126560828753909668079931047595784164032354945509361287429196826960402356050124405201568205873893420099736647941133568097923780707567666146603760002971173516480457173469294139303745248607525858641513794328164368090793230665692590906430510629199088062818419078417253579723680051497988563865612347967732895137843454201696608808925438969358057955441208197583869269686029086570223198035306444893012119664843904256602155039448985712934424438290768383724852257726830717116359156003005144520822857178535225978261746663546928802277584605142592618492921962051462328030694352725851989333254086628865105039594535476474267571929902915821392898759461667513570370101647880359437913523294663520260031551362661822952823328404086903555316537512793755267676459468024761285299734356716890690443493498397704764124097905376225022195275022497672542581911115884604415436844690899851425617799591341724923807057533849587330641727706638230615944115104549133666884417219450136610633011424238505790319506125647767874130877266119834648131833176346038013037469315119262892265243824805230161478797525660294114345535077678376929762409421320255542359226355625422691045709866149721593036285598260814247667654513854312201853478323185752151881193439471883292748301965586556913492223769860639690879765106454518232397101100794089310584388078678739096621160748777632000317458943924379786363672250846479952460401205646047492896103679607062082395775856125302306998276447820183704212750301067868882016665812159854191622653293670122274577273734650914478537157737769963877597290693553259420654516443297415515233052591344743819002937418702759307957282339785105801547242845681645480567095948297469248028782296935328955531489011786652342961277268088056386053891489381768206609685839500839806948400174949096612727838887350801267109509425534180218964374017793773204464305007933760109118696509354142054779036739549759230239557333711659954067169997670161019688676376200816715246789589443596782503682636379106210274857661106156605666446152055010252596867696883459416583283004334051697052350060497399095160663694162861491122749366461784948966676025049746618670812747541710640561692235214095565246519588567619579238577858638435333167097477045748950853096747563864002188822284352675072670347576811065004117276476476574920946077568938509640268195227798389605246936826934480442603596490949278104821681858196074875086938777440641543360613024047638608837526318063303150197692907411126927589320011167022122888869312816104260763090924310557823040292704949218681980730730547080975502831194712283880171432642037390219950913331676642877514221781411032127331604074059471913285345237513646174327349951956985675906324772600399672772435964461840296050902943731696546588176351351902655745599030529836961351860504164753978014149464160077949145641094245957222595723769201544603000455071314364722298645235789961181611244073968709713993320151072143580366034997754468919556665146719785968752795622969881567898972266995251064167204357967662518055943740877773593138621156312244717556754479903152415631159869464550912252183253352768413090756723889358588813685256388222298296129851944408460300099336039065123699608314823354201699317526720927606190025996312988668323753042978420923368873000622823382937420217884562626280264694432693573605637978466501083792730200110552592201492754650353303199426249441278212031449430584918924445924016630044139280884802975111619627080556973965227776908597820949286631313146030330008291485148684430541319950758960621627384234838669196928212706828501334670368442468721991238518426575249440025695080687088580771649122852725745110399401716228913464655417838849523064713433259101699887303984760041882123671382559670264096326677346814108381714473607510806528308838593189681166396833101910010961880166628390585433729006565190274370039400456952973337670219931480727035152838711903546291659965783847411876849953309296378826792012714025325917909802303160512371002345066698366074428872837335527373340792131654610104221783091559047739073035311296521259524601004877448257080357587625222777189324157780120191785406283230484241950365688281471625201536712922827769301580565575006267776923408168686257158948247014436655122032114860722345398100262444793206653252414847067372066877582008362045162794350331463554566634752410178691407231240085018882874515680097137599730990381007059153913698395788179818305751941448899494508088580798157470955225805125585486085866166306543458444606153923853862807373263640826643625995371404807402121042791665389862755301363983887170293914630318457544548197461281471437564767921737180840401001800318562243191683945225931130056546134968307882557536589881202921957509074869197857665599419249537268193254234387670809376364585985155683200358395132451780262819042691068234979322639324013618546697868861598568146185574781862355173012490384583007733078562702655801363514071401960970260374360059478623742994067450566680332273267899493034278692822830054415707321807439477799888727343259956496373672901767355250141111863306412949304610580699775422462191587703483735782985397989050603425993223905974125280444996530599410731220972712783363708160267241629320923824276208229350169019949788295992488569916496585700587460455024438301417355777820192461639584503821421995836116276719878460131048976017468374416173576477716707676901532522972823244144670241618648093259921850646726569707783428083187364249529038697407855544441302643584920536982578824249785762843172606734178113992692263250985382728227924333076332297465134432255536897828561853660583490830098575509506343820703545793834010877970350232418752845994237159364135193370127423117660667221798788306509215244589640920791971112305388544789592231409181157369785696149167401453591288727082021294737246043322074235771632767171896589908163642244130660289306222177265487229998283533203862506054646942819599603989752952413270798212539332681223072688895786555383129394123427438956185057187084876564398482796823392113034543524828799833068936982214206491405194183805099964712738599901889198287397234672420728575704419785799045821342955034285589303436100802282318737872298290611402383140961881400431169779705770868345320579108487045374703140995810214546342111607235043325392471491784192018247500729935296322873374825659182343860639975884239391618923886669994072983828221695324365276806926294053623491208394914405226112204824619430056353173897684912029402577738859477366185913283837599602067096196230618519686976885498234350777305934465709144148065038654565449351990330710072239773375990526873339071578175291003108625313252729458370910446135440008640555204292957342851760907768210727576351052472487118020041151322999848159953763553390688131991599809547825889384267096732993678162649704697133040143638810711560457838642775099743787475273251033909396741396477655747260157653070032697607402292707761219858135379722547656071852552191814065223925229122314308271581179521137736153822040992290354019811946601376883564341109982539118434596476594481776260605999904762635733706997411345136274684571477678582915736327940887031665690036318172241510404013802329862382803594645090825314989632807174246568616917261526357268535331183483701008255097845308467158083663703127557758644252542114626682978677015783848666234972280337921390348513278430469877543058332233535047947483867318747932124099509130874640421505358931302330313626659138114887284884022696773692807897172238881820030734706131132429433640951480793212152947074233917355146471775702374602324170048883291630616642539758475597667564513017236439561539765287224991257132869876598703080374728197056977331578885172287104656711261695797637799398624791546633424996530858664180153264842293060936175412043871565186098832509678310297861956270795465318096690197363524683670730243112051926529688308631881439201503970975398671319921304062727212648228073580981474946099687577323337485253914992192822319931502287073173301596978746478760718918994549591809162202327049461977087680100267384358506642107822658101806366384855997731567492812956356100019387041717348358870061602932862983373623858484842880705800361301652555816648702932066282904067805598169525770346289177625730376578811022213354207983480453267751003837931709163690975694141729539575859349710075349928374156690859817144850675181564797065722778892583679527435809239732627812207098660641316277810556883317460930327846782147803554936010612747265625077822968847686430617197348043015569781012965514340429422678058438675462967440544519706063631165480026250365440046221108231116354238650963938909558020078271820298822310069286958843709863544240122164446292294832536202909601835749936765926703217681528393195406697992556407016427203086855758903398336793718713488939948766872516172960412198789324203930401445062763034184602697597574406840554008656526169518697734389769839093786802747919102999529432251636910594028234006902638475105605301252071363077848833918927760530724546348814537792960389886429436091236368838869593712885121630327715284467615647883529679019505473272678143973023960779407600851780095902230804758550667381899348183599308224098321040537677858405961579676700279047049917510268303079818157744718745092311522126774074521067608068304692171732009365640739194645418619886903936126135385473490576858722089379962679077393492958594865484535393603526371475069999840690648751699771918029830908767068208451928716940062663050474914409361249860767953333308465730378255972502094079627796183765347727064292653146284156385942390183844966703117847642714600650984240526819670204682961632626921591360956894356738799936035252555365746807247679199358918341492233976452558534553341359200017438178022136587905058730535282675444483233638206823314169583209781452823039866771918519232940000097642536203361386154225154358734212232779767766380943027899507868540823287348425042889388279270930067372276540283099716801858127265500920245444868473747604299456921037232316492421939438305425115804858268805287701960744095968325570003521259082950249100441884139594308923810897906345039926524291886543724853175169700692668413187980985937216716578413271733396408381188235369781676442554869564375185977391715792970140486774496623128579254794336918369414478127331192648171729817457086903551079095918922131079296649630471550604695528853386710962710539544534438085095558505970570044321122921254757258029228681660729511750384729347059407367604521558978553810732982357678015517485567534443331806014909022599829788922603589211476797248209629398264792852554102470551170004459575521082063735947393351002813876578316181039160888398089878688224064783213310956773760273750111101739498430519210372703990488106867550566019531688895968202684307593225656985024804050956977900513061214774039617962738731520016970084073406126425377661106617425975909117407193381040755877486228298674106125586823852252713698484621314599962755212792314031019953189925913442841939754744262699135455386338913273200569680614438685472158226738617538987586121839158145163243515667626582121217586165726786852203713542347670965216129181262220635306175611732154005266124744429873798501070936462317605652662568371989039868922960612556561698652922734077802720872057132933444150041642601733713417740160483280776378591373613456458616587653149603595712690508148007064889368535235788927345541944367657686632370668405931550931723273889126462312911481319524597053628450631230683741425458173818011587586595387306747954451566708638501727936746392478155735858781652576738518216877858721111815253581255615086479425579270647030160035989156358999378105674263591170747424758734577432560654087647541769272764493508927005796669742447002154070561366846965054637558585199707809569866083197169270183490413901698674639001102984127366544630659231571979324029410392848716838613172001086173186756870261988472367773106264879732863840273497268356088658036285575431301363792244907856500434679417609130610898041720225702605128104588703702421541808388752300066766575992391359467020090187276910661786909065089451086961123983635838294733271219421877048608549183928601013697413666615942007759156065859285998033985140207032643862279405736501216067853754523366400317458536527471627231352359017171220936894524082692869836794030983934915432999787068420469388074542746302363173918385488627779989968852967248345124053928929285208194368467506148783874324470927147465138779560899997473980472844297554698000062131997313946884676952125309745847734564312207671085749893308124423237433604980255419263928166215855284834285470707735707027249930035850511881652127904708501988898369676171681124195169999207518526059853302941951902030906745855889345858518832960894353489574641063221608112795791141331080023176842374351444971957044433041299905101528107885048925993607043321698550792715087863414265745619330243031354836306060453725896457523404743091462041662202846567604374577543442721866862316731951003082076476323994780319277947595938236244984474942724411350416994455317633999075068600524704457349522590668050077021782137679412219600904310010760749837121066648722165318051639405960998139711865288420730622218446631476323012963550266413593616968392474077528252119600839543918050240661421308453840700470211393768153486126209481619347897333851298834084075424132352640379539705827063367814845548294194263631147912914346039332067638544068926831658818153427871306748617538129338242941293945802528624771439111174531783011143418518230883822802476986146791888350849304438644712821471852351366032009446490375133227133785676519004484781226652910790342188908388454632565507126974274189136565587505704565936024895793519441274451090029241942635495834403343482786512195963008364839381615434535078494837736701420458390876806487721481230057482084342187823687436230733948240347344429158374503841316381457297923986505054933021138173231327326257976719810767388802738921920483020370486957725702457270977935261563297047874276186757569262706756510345524247200958315447439952135161344842437613181861392683757540296328249248530836783778323709550532997168909377210715382494233327235735958883698598475894387840649275494641140115828398949265850365844995261751329905660506098780900474078252899754956331113916518750359916824163387505117933550240748908776191913984693060904332159138873270527902461409118148100132261449983843453896222232243428871250574828222370859704438366071207239309911167906583510008534561328129841108237249098487677561556166324089875014622635555161356336151277868929971214535802954523581465473844650964398559057464015186781894284949891589924680086734783680866276626458129613738428998505251074123459362999859091481766256518088743331366994045722663791958681623958236517049915541644765858565434053271915244668539437447236536862011420753877656558359510986302150410701850818874071860833222242379994997197633992728946997451396732715689409814447956851359045518418817233316909770348368364280380326189772648188088349338990748522157302125574111407266684510073438694296678985012412252419368319439942452869530863366585496040267237795639732697671216586738878256937717623411953801793254920319704363095008102161315895967972883699340887353153497218261018224856146018644415779408882527941694721471369909057313342012709121687748590854587888698981705956963112194171506354791878358236575993523074253072116231627257760487260837234044210338251851987898827727865647373287053586478491613625347476889951351324783791045421963533963625465813072850272093417859145344456960775196104644690365676947813042484720580307232387741590872253681225711163922716287572839252670518698522442417681081324866616144371424653295198727758980589801595494476295423011356896836260071550283767951130338916473764847556359061369894620094765289445230833743772075198490028479776718723199756612796578698371937585081143734870382111023090058576072217369654411655675931517090097575700275891805363818571922401140537300960676843641085317087689637018752116594263328752553457299888090867739152678297445704572224459429238217225263128807351778220547861004224498938228613459803970725856399063386171062973102421505117672303933727163315177167426589245376302786341205552719746495862586024440937304029319658436397819336505140079323766661609273648604960504169658017018075740884333755259286035236068837775212326253620519760084408803323506216422365550871467015638012214783165469620754916475893456492809495440941445189488266182975793085444921044828231755045822112757731484597678183794098195807019643173667531210152863804242703616481446910771558236350680114871754339282586105914825509481793835477293485178292606128771105338487653823390675718552729451264770087401411323155153818001062114042830260316674412444243269663639462046387285955757922465759102149728764825415695406601192641628553213339268315878679763893050165628653106187591326929765872094675016730304765814404542176450080749829748589148990091036059419089963013611672616976967389941055241648245952069000618982429954171045159257365315666096775988906354711112339370754925920876395323040031491260738669194515693129316257468085965963468467026263911659503453155896626189032399214168128452373645208098905632003944833989667370871195615569091556732955801766526547987349718293129747274486968898382034479891049030036577228019090677654888158519986677859090099197588140142438926834945553051850965914933540813865275652239843762250607786510264600199153285114629102228901337174411610285111600468698240331451636848337620655881663264176653331289290892303537791912133151877119393103843093513069490692681223976652616094651754357908738983218358023590813019479097759670374705579457076655971630961091363222325500170465814348416595994975872915835320068932552257849231240419822495566505950245461137600264118831576948853711660737521521830294400463578585006021239178884188392608751409888600623481633822646488401232005658391871073555201393408236735620784806681980141378736232662615578832747477941263475076676883694461679772776399821365652834649128248567905792525035642910020293736019010907769197975940894527381964334536284105104070680068890042334399723741900058801469436072911987976282920241834342765505250634591978555679319932729802055125715177033921035464963915929923837011581852736676503646022572102114252970623916695551924784816720315912627341536988607930735734355680684989702119266357848797962488306501209670598336852958387493962686751545225375760062940407852353244059751777548493037443082003468293753093482184725739588592893511369517566048391684122495665020939414650553919699871191297813431762224868893894166460623111715331510101675259539599761261579719786792581767665785835849371916932376099613791565566502332108418199484715741942535029984958681377266090674922693887287382545961710111044503255828080596139981355290921581461404689427708603825382149358701630323432949660556418111831682530091354025719977100219784251797809384261985653959783646156126592541138101084133179154032790006370903142775754333595821822335801025766950149655556347232700099203032836213956889279365214017051551402953889184186485966180763938979615113563857838289121185340402283161829780626242487568375101137166039461656049595499042679945563848233077007703508240848484177091416038266422545305355001122485515898370216068872635012998455208172478013888540214905566037761523242237583856302122253367173198789653036383751076910791437125363804503924822805640917244998816457472811939405820137451024021121636994664128473848122893651712691857003657036749725694835711743990323938589826945203330743067640367903488773928736090632417444748983228054658148857478234313713308183034570575378904064737366773626831679247247631997410357030592415393927700924273196726606427788011218706495366527591616245722384545171983318869947684565044765623370699426145011546556342869215180826780391359645571676615478131983699085612439062148357098976415853647702122787741286191101988839803793873253739386551804612203160604513069129890322243808826372400289398634956340402781656694483764824244174653827389806012898096678173445084668229928061989909222711772263003852590352763130775732472164029450705636271587034189829168535323587138293784000547046148302133398844741954095967614178662844031025686237387444768483641745050336286087570791991793654231046578335734951408625148438769421125689737472833220785993664663677045493886589696015983866947310856870968687461082180031986564599830486224561081660064756160971250337519268333622480652058220101258471027203383038864176945829697535221783579739174313214271783747869151285180125289826036087516527091769451683773478132314875152928953064658731010703779813715867426296112982256995465664241831873965266291946610126592835874280521601759052580671557102025394642505836604623076067854306476443034501451192382547013599182439514201215495113375261101945221510392152370974782912245660482996931619123474962421387118379880216125960020055781428405319536687643659967965693825696341710822448533457330017949247199644907341689716265797025510135160985070556732086452621661030180113359182460087963377219277996889271357266988945164093758634676943474468348075748646154259873699862382300108107614421494300781728112797944481452681475265220478450689616865794663955959236762955201594457463687392815327264630710843549979071379666609615108999076175237791211948875877060686191414323351117529509906058433766146342309704140521478206024736349625496534450811303528776893929494344325884453633437962971707801124064104712664671646242782396410455101743288696589100104348709019176404555650233271997696053667324248953569384099096923945867671579601448061001306758006577772057923502315944230114458968111334671958073315808651555825437580687762460850722649708945471948275613202299118889808717722494730763596067573696350661044790803388884965598280113141946440261206894943259592376629037368685971105958164333286677149015655204993427502632542744954907839925898864537051204268879414109022403605035823464791982670502776087067727340322474110198553980674133841154119177963904585933169826073427057773411497603745882465297262829701391598111267489521444738127148667726851199803142495371114640408863073122740424608444538738252363939097783852709733095750121005077604277430424413949012846957426753503893958541118891880852901603335286770313192058679046559608352551207678290209722259076756283753221205885585081756017408984556055896117439073881316802292318284809198110080540194712192209263059931349566494553148684078583211628664051549839492426583414630147476288348600135011726902163160816455526474920791529524362920058051382663848257324258122524473065082401550454297856437122126621914317522576432396392157836028195133588171475217349647956073442454189462559780359226248673458665175605028492783451227052470587606652904220546438057578854512037315834673749954590189058803519626790184670745169330448770595857144256444644149261221842138788346032965483052937932217364771043161337138631819781223361734851176889693822563741036327564681394578121360052479275660766306111187145717923750493926107427060676382373129359994215890692913680528417398151333942609289293082857145859355810544609995266295301006686285638891554697232726931511229329132277093550668934281869220679678355744853694271164814140004449422746996906243007096950616662737272476863957718560942836616880828701568004680568662469797831242192978005886467010201552015954853771927978846064245608124887508467609662716788625465176320168761134501141727575008362796802034923851494881466827697701007590299401957093282108473966034501740838073166842836362908150836709902926266724166235668137315920726642835885073295044162119336459129182135868470010257435312183819631753698619896883367810203190561574527266097893574676725202401039157982487424400431223793346171161250304023543413978052531210256553564783249935061899649872876035984188300941089032074946211673465750798576204927820891467597799631998372812573972531816718607501098910006888011284055626230519461655211162078035507810560972713718638246337798695463929990097006817150296890262937522842893655201198824245497635144997437657859560787287294508135951535242346135544004551747369945196429069527422013709438429411464750682349872111995586332450543377042612348199751995156691242990686036875287274863004215160922498906205042868702683500689709905844629094931027691840077564940135802377685706828559156232255441872047043141794272413105056363922502671928702152902127957401443048914132913037636923495734755268464583307961208368591684836037952393564574649176654987256495937028975741088692053183120417457834835815327152362794358115539976894113162777936350104911738555642243335357964689244111130545434129925124866655972739119204187110608314242174410557858748547705938207608961633517541812948614311213066022825162547343563853282532512399531186746016802850564951303803982226013118715974752319526262728080040744704381950594960110284664175329602998810324989501646344045932721446723243624036788501891797376547443348119997237078603247510836846418729594357703526363805968817557019316799107818267006011008215769559665268097517855642317107248965497575456181298187133073062173055739855871512921794193202171527256955046192018408372057291294965953283376688166581355346207384116878530409597336876658049351166552060985403070565593843892968039738838972262088001275797622035767257485738873848341002107806954689625068627669698675048738590495164295026984568960515816700514247349304898395221643951199655190713275758984812417179559316389587090524260700862407275583338307349545670887826496367980395913434861071426351629099966598012682068864600495536473696196421474105547042101996223140640773679085123849642536634834043619694473599371343358399989338970596005331506452250350154260148627948101399128658739800260702189912357892349375265085730200953060016966555205570449468754071872069364845935844350758011531357983929618153379100440774207759719118800605955730815586134382305520535703749603383655750400121998122922893359680809831398264804768946313231283769754964079536813712544590703793832232365525873148426932607574798464276026557503120970493668310264239799621348001117637417125844317200055989689148156984475143252599059237682113895862876018209299818260240830503604326425549445354661316982867654041272221517234205532729656757690586325862001297746788672778590066708074507795466700470717771324399804073407773068105075563701869686795722310644114587388236871827742302217059909753542688667870446366561417453676777835266573618249546135656981452637415520694297083951056613358469511042661957543844260872049248235507127752386590965494439557014127296740028831995805627699724103032447526705334688012017566319407644174122595118895390418602878442784332497142317223541648069413237645343495738004084249598350228753776521079195088124631110491482908211558951897025196602757783958616089472685083861496858416748643098048615137903065843801897669395441314333063282607539131631633491015895292151288024293527470489533731490857567169801799339355720480566263946816406919113928792839950144062586539729866032046293343208367393664059599538733560158369960051732150068845433418680997979718223072129905967400162198125893070766137055311920303626961389251767676873943049277750821380479591958710517708972904826212750809088424179876898468516230801992852464420514446605328751372597457816778552328278041480278902780628524828135909586292323344392549825776695206444460858859584017989857369546462557964317036530475595650779350248726128022882288318362111547912750194667261569996784122685049596765000470229319606206676640824455755030434885532020195415899450084989119547195777172027648103634748773878669502990241458266431444021495590283672540409498717590160916969844296468429771082999943884692118255558802128990513908550707350311098822693130342451503919996700297292477379903137321453029995339267627520871437612571191412265953455431221660571914730254364733409097291866751546730497713404580847440682526370244231621293089906492175825625034739681354463141628266088530042194876210914540761615756543322200732320886982772462474633475384836741022274278389886250555855173492671968315202434271159627041688450015657456421349412755089629319534002144736702198599383355036097194393728464437560150161351033474671628228555141059836835541146432962531350418203013950337680269228793933479031753918908256332256171885581335279236081819571858168249976893658092911257620390330320503165665540040249541488808969587037709937466864427054140275428832523651923184590535327916838156002799489067213201071145289838029652397996727400720247451942456347411840479033408191100955007941974181456687893727314941486601251777173965641420693164822071612850841402886401507807642599885548431599934006794208824843897552513586437523238295935268287859914055584365298112440101926635022497516385507140453920614250638717245135570514536803065868204337411955377822892316888403496011823677228147488704884710955660175364781711695867584799189708582279770208254460330930940181886793381997997612572929175649634476097954552629031929191015515981944452506194796182998764814053154713434612905225656958624222664695775002398890044289253277599703922712987857553487228038999602745632512657457278323193374706019047886063354209555157304063253604912391799983819797855830029371401301591813186101527862186361404308267523986968254704692851466073713815495609283751025728328608107830558619918105308520426900438865114485213943197383491699205238416934439267525601162265050210756025557772006896970740600048826405127867679429472030461014447294951235612192375037192425068919776068508312950138873946497403503985720114906908591818886708530110721527376396719482017841997760500729777231123720276007982473070168729329407675150723779748224742505725648982242820022570668692559045227516067518769380444776014917945007875805688330846009189137229271291426818666721068392436715786144237069057701454145688554044838682797730440799927647792877679681240799136683826359842670224663695738120318793009846112157404474501885483666961563018982431271162725721379170514946568135572068860504971543104404002975582011429207435471499417989554225706821133772974757298091460147184853252656238316571490339253749530551930332625327280852412885861213123876836467351159075236669735275416078437641413389114853640383292472808077750227805177237085006582277200157997142140687115648868493344156380843426779688646239853712047939289986969782070610017055510053114437159303650900434420771748232620669126325365228473105648813087917278094392926454613269093968911072239985311484167443729427160365032948256594228505460357371018189666220727401754975518510498999215632486933351257021414785267054527263141843081852928271445068163093089768073162317215366666769741830128642603336497757089508603170728746756168150697025648697477093082586834717793628201007076948852197940686266505337718864727152474120821095761317338238439700968263673705321905125976871364603398745934118476236178218576509271216938880006754858034362504006905188337319732435864615041235792152101526038330477460006161559353836508780902043484806486770538334774236605264710875182392052066173051456344143484859663620542749117354684786287731502886041258680728888023906756419631784205864520583201130243249825045337908285356066502684896025404457476051587887206018365725566145197667912487628811369954399813683670668190731655072361660485977949601103694562614129848397390432997518304678637121722895459270449079628100324371945942098481396766644595166968078212040528101871404393754484529139760512344723288848799822921831216782044006974097957632499281259610046319882580538219977877778953333684215599179046121617662496492553977361045979965084883776484022041639427267319406124872497004218661910691938156708850087361700176345205832055221347522644017444785634952529735800676606868547823542649664036013004782848790355943466631380619988512328472015619746107665604637343498535059589394670635758869800660624000897651153627300300357503290779864498516965239036772360704973286271074822226300686522543740025138971284811297526913400198626768487594768264983231270591229633397670465339368973102455055618244077554301016414280753021208563851836221710363833416359162516902191736067964707591857351438909114013615156657733780741073567487285521992653822345115682942397904108324905002369809594171213443273621414132843858516223464123942645392510723691153635751178753929234012061124354432514935448874343070627715672837351756492352522095663722733607190978073699644050540847311225716485853503186071117923802865493400455040259714710493831284954789103400528182143786892156028133837227998107813388704792850798867700974571051883655946076175084237220664996628114314918416152022612436613982470345028534594253691666669994469532024970323392926570859444127959832426150626534278909254292936205343415401441034696937606064020738106635864694345731882958642270906090179917246185326268225502886196501595857808514257607363119857107157722628367935887971769494852986470654372677726813641516795999110739750201162106223884461782600999623416281551947322089705704591547090388423557094539073198112883743494320255139791988010066901169786056813473672030762338684146605764278992585302950083931778230663743557388499638378772206557711432542663704314138404589828337624140560831508129072339066126629319227185941846622771691074245154991107918157583422249601347183662478434868383326012359240525111050811559051995065288919212725897172552724896539096132347013501727212311385177545679373911892910847868741965269711260903345443037299175795741109619618500018763084772141956798407662972387315580384636874381763930581302669464222719733057173887692958330809897350037490721714174545179619077758996522494043398764725892481977238348824134636670904131960469514409306299700364436172545397857875188096898166199832000786369547467110121460973621831426230611310414785437860002899910332779419737747124906772523702472366444393980646209451796185645914687079025780211235431617409582329645283977259767932898912599596656662395195844195809557932102335136216695114606039615818616900716973668311281260075578890013868050471355356851676082065434873152732389174417675896263601589046852419209310451017639993518327877424843120708919957673506243388572117154729271235463271202327061335779118048311479489204977659172657242966048829908278281969849528454137319297437344033940285975365908178176563186205512419998253792177742508837504459868631457471808274496855312400176554659861010598926044491261424247815290797817017792191756692310288330106810660350632755634209326394814083970243743004652527420684381578526192900492508223836100229107832105285701662304191680408780493699623548346081389797778433604682961629901376036650204593296801464444958716361262997002420673740923934731968887638197563945441242754573091883984867211351164073115354841230220530991280639426438164688310005450275144943255077746129790695660102604544477258687858399595768712579808772756352840200377061448061739060827858388700940834654033384769317559896819002458581726356988237597160013007022669848993932977334970457913338263823240303327529201225249382653888719281370505987640476555917928225562693014384608986092548453852549307191528466136387930347734189636507226192624295081725134973764615067055074050874712226301994634452092056596132531273544699257324137293436986632296443335142054462315319972928477889839880354401535646066276250417120616798755710790949099667966607891588803445936476174916203585550225157602841732035503014638758224946675326124073664949132912322724428330229267129579964645113954195952205266245744168833703613843570050715468219783557528143129717284610390397331213550607346436621201286584279669786302158974164629252397228364506713513065316970924203881962253715844345041193650369812304649904484737742006981572427562026352070220588622434990090275503514318327568730553248682700364253253464349823227440509201246847953354734236061797216857767278463322681208766600037675819606072639079780431781858340594728885843299472168980064052337674465485008311606127659310167011703984353535247015052698805990374455781643816357680474845363672432606641766455526163796775080751950435003864066225745219056787899784888291901614207589987463882832996641898684997956488550791734116293213291641349905718292119462868528097942913504062119342263411605368592420632905292016861663828739278650319750438849549740200894041518836865527580767902687543856062590401277092321741856724939804086936425703152479432607743117648514393348477862268800934962400507796818879780331257300585874984761692544417202434207614343539108923017101577366671637114357115057822811254368488958320536691082689173332883427835436398321069101682210751057506637368557604365787100286686886827147026021864048739841510871651766764983049891678032258428019384657238371763674823510614155628922835247119076876302935746036755428199960480023616184522574286599806221734291783147154349837351638205540841930092821813786334559869242405828703135710144578672831080923087931570358889332139698630951723898069622863111369728580974236483471109289173309236246346141533415375174777844509831504067072369010042831941049773115601168017322379009096224086789927230567333144945213699507356252306644406965124314163703947019816693199284260984176865247965584073427253342884341585764405631740817512328578759306660506414599926689814785388051735071802944802958507820392450795500604015383037629930761929775918452860712093807435845598933915683587309340827452559922616297481589550180581298578161304825239721873967795489071518123198057650268725597499674216163000444700644014312551208298158858369606536414989217884669952267751866053415661289915179592472619539619787599296184876099681605708242296061115218895264015370459862392120911229937307437780734603362524611243501966765303499679618263644255562235446962619942892432987195631666959181798702697863929114927273472593261331440717100614971078092569580805207430433626225402210647540334000213826237308716258153183411219553862732235552002721145225698073891874128640417498760936486341134194586954918135199307281575091469585339012848522296261413893826145368532663408002267591684657302978299313296940226871892378091159592352843299589859864514137981176231991813973705769560528104866340609933364507004321223256916418465073517409263446043895492286277293983384425849328766221932829076657081480271571946182205296387369619331982300081836341513168215368925650091465262414652966142083542596705923712453774803613497960463064214647285817150345087554406343866496699502224051851579690725954691668242192770353450341559624545170047407842689588667671118478198093321253588347877757194804167098484803421602984572893875598961881936439905206858047034269252935693295712914433513475949366040357179463323613586892865896749289631857618095355312022119324293060727325850073323173623469594720668777043173977880194233143681419459869747740090318228807237870676370775571623989773798115004714574926787037056971663115017531841697300690396846560594568024783472626677800634314305364738138770509370704602471843987069100126501380075035626341310170253517653969529918131588627522868364871610744188073120978105790431250641650768817735286664184458934390904459683848106533453988316817564619547366335460414690865585220194400752937628856805281903957644712132209779639169186444846555885014876309179885912099809482936390312098929880183700945927760962695426574382699736858412309753098933315184339456994750740184881670198535438652109713572050211222656971134364329666467821933157454177217193928501660837861108524965577310934574069025626780961183515685742498181744120253250788748281467323829824448407452549042165656286582952565350330161890674785234829443751104268413962424206973590920775391554772897946354037796288511659485824200750299736820025182732479575213148756804906095061644878943257855584817028690443684404252061836216069350101227390688057046516157051750049010696313434319332405203360543049844459965458512695988980480025892219797251920115720388340298114446554261545457096534689976373523504990767156478347372156914133521011570478093701380929997973880079648631216275531486612728398555660403334959835501672530329048414113542402242624379367384801776843046980251024226455700353287283619754704971182316276894784797532069953996504686989604966577722036540158668852259350160506589125603734558888255519954891177056947349018247588680011763488750528565688774499302339528848029223212072476459130949720129627532171140981175187937553836039112292944618470256341368625184765922124748005372090297751744759744382639637713561749562741655756316722184470117594325951164973472611369381890616835391808769100036588531423346627987926699456126750611718982011940568966759425177809506504951796170194096807474681494435104272474294143714346377445882354935305874982470596319484318372830618240714011338626191722494432976132769518027874526097374640377857092726982730432248181480987350895508439540181397013464115379693666247619671911400962988951764164326327255726322009904365381321595573309654282104960709561330151413971237761778233471081425185242407988732511281428061024033012358426131441826083512464447728457668897021395201111041088501813733388946041881276618346427807488572072263903734478078850239365199366528830554678615859630191649138076359956149755475506628794234918532506459985874227575084139918807798245852507834334160455307610739580492504148319507792311436129436660635854924753979219662199152707154636259411285315507691843716966543733565925473914532063958755199145489269705855396274613214299219944993617295321634369208599854382435023720139474303958195776687495540341352847880159478198293115656372010976252581298192944697794647575017185449121864833562664312477385000477077874145389038969787426694951607667819848168521557088034260888226044689316751325057372328521684594501928964098781089390846028362503699333182401944702066575863139068827008457421950611582295435792487283342139111644721844371599732598020176531240562314770780215250413413723284205427078847388728031621935136543653260110818709865955467225180830352612723999080263329110717167581451307561502932780443546496315410395591396521195941069414183878342372636647176820391803024646381142992566834324410652917418999025426987686291418114006644550292355305260873141473959079355812895758289353908349989265985218251562645137569079668859070121604348877483396388052006301264462840920867705598317128906007988730264681446594701810575872829814786486940733205083055054396315404485308680542262644551192759394055898363400620780031483067159739440328278785513929755794743242653907126885992122116089476117678192637134920373521764747905003099762815083858439849910968143003649557189108645096889019387633099095562073355157413016913175030821890960536618154739003459250644897046683897496581675281654028477354065284792175452179012082331196602772197373898861213123973670609834599828135703209719076652881688076881545867003012838571605092263344927132233223058115989983158871762668279207578554565701392763953630076427501516878606921165239889624374336241932557544944942394789459722075644606869311235767045204285845840910077759577279567837277591656561667975091556573373900067007401040722966826860315383832488708990511547082759587908180637112762825712286034308992279402515819935770895785530652906420256032941587105216601893783172966846756104172264805412675648885274534399738506152744655386602143012735464143758082992206578524592083673674962113346507780709936933559213044588643318933206735927024066389065096866993526994253121411655235958670636504892678398705160631957891417250879794010638335485465219687662406658415135158996704560142574876460980787219155891511967491132029620025178026834698408384448290232082702039141603847732340717001349084017638800551478717349474292254800281526626878640501631006125740105910888075364544834518301332203174834097000897800651573393098416700476374863487978216574537536308623664536802951684920097441755417516443728123623886206725323593598970654577738920015398904739012121215304707223959410812251866481631698013588984007454717335506622750181854765042857447060582404883064785408013603881490947195855513421298610901739284349838947833612922978635071103280403552144186198080919738399877094204369125631159809630142629510142071599498000641058243623354386498080487390309295498710007131260687710159710712771113707118783852107180781296475548494361143346339082714142104801166403856411625873242921046852118300094692296659763121954203639712408628163646291155206694012852525608651624292662983421626578192357421864300839442557416249697034404605181282385085367738405812733855441715945586924733465839973708007699174076891997730445665187872605570242690104060353163070474881461570866584222421211774517656172835616582675062129481754494768843525209191666978632319924130478044841304862473282362967852875518528497195357349392963977803292792914118836564254750187000444004318479373863213415107504995164289595842513852048898089920730306862171862255957160139791976146261568574296514344742904567161813452140344649488631277361710136744114328154345516771558919944235200323108181802580642339375943215802973991908381844444705303280885492722650993658135066516402676682156033245696706977525629628393748995029112637399896672471961984590793271015742498850676786296835414181925839140554683147919673631609538187358698110450386875455972100729717257670202614685366949139526658886354450920416578903196580139300454461410903963350559696747408283196091099390018614432558542572148520922300480323899894819286076475274553194374914607262299237829372235476516301156991189263818173570322885559317447785803544938802955971987514413423533204014138815127485537592343702406468687027064842190057789797828747087018294632876661040702988911224626680115734038680653303648549108059586716582998416710889160256589491832045825003267555785586106322802754833226803187315001750853946274199074097759668938274248024088805613941746451066666030727287253113401439171551834551251477890876015254115731124441781928940198934493181507988551851598105428946958384779190414789836309412419160797729898923102669623871848642820009757058359356665744227679199284714291062421137899052511003140190447285360136274176993228937112482070244627569826483271736011176058655655133881074137127445170266371860305240521768106396991324375186371268877247072438970843652376928216588286993510857871102507654485562403684171701958351724135129038545545972313461411085241847647759267713123854028829160633638425270343665171892280067644041298071251369574224188637532152300314653583475924267212880686365350746031300704659695141398609255914220129777172742653649656530194191115116793985228406479137923092535377395534066164332696641002514785958282341394127227547664858682804825578876201825066521393876812691194669612481041754917153175548448947624682944081266537608091207613587191513325221636463359164074624748946997184722000102313454320631741271939060609341305637548797629022431938168203628635805657980553710174191881975097268900106347666538202730973336879311345590639136699547034786473571101578342413630702693184982702189098824948821704504839041753948809883954679432524025710468292705785554533103140619161232727677558599693138606115315213145861381394551853777920749323960501286650966345490573266356480535993278505265884237731413430064157079285097608428840540401008343049383243746353175084645796028095649039145600152387700226711326830859319437271337392030793131866733107968064513508256423579290487748563766314675986099865472910568664338114916027306136211195357143544710942379582753873760006119932689470597392755052136339925064054744227682219610674895391881769202270116454375619067453081622509137846407538162571819545522706230607185408338328268043808135457494491943679866510629768852316135080457271271244413719823578766648036069578187548558995454285500449545189870387688265135050496330264951755059187926728071794120697843324994444992021332380765663955960267712771706921189132675321743742876766131104704700559675456249639939187554134823579492400626680720412909612647682940221987663720339559961168124242372925798699743762327674507398199771177860410377298383237843191647373620513497356744456773038143955347003824247658029378401701709882445119481156446323282237363755847646077610868838246447648961633192093053177966171991423565337864892920171083065479547982425645140644787460457328178611193777049412588369783997789741013948252067658866359975002397090596688839135527635461241234811362167936545462057128696958203640978352683717970552609129167867820904891392913196005045846358491984791587756614645247968892469082868317023579735956294820842535620461926564560474059884737896287893533551042935522197590536261683902246738068944412381669516649927466788335969360685932468461312873042055698991537296893956502757789457369136940794267138815400419504039413498413407562999305601563311972344536302631475822430529667048507429316325616994722087820854622205119826997937330562146568694595839592845906866646409056496813835640434632511558660807865665542849311763582583639524932824660764068276088379524624105545932187365731899697628231721454750418229195433710389615776907381763432389792984597282754874034820757104303309166842944626344775292043246564250298014578835511605993762677309020022472309588484239058333733379056886920378535819869401992364958708029782040502890113813746430447600376522284282884696319294855275179489658438173285433992753573832185230377555691347873138193981570289139410651149307112024231006919240813814413603651823061913635928256890994680720764738120318670322494045577821289187704133052290671255655741832070615714304089730337709790359378575770000452808859815659501502752941037293713624470271164324846266594176553993054097717281597511661133608666297742146557727843272871368654208510456309740544689919260850427054567293431105152550547988942761970958978478809498060749230170255222208031001853140907646771112849582911085501849952577010307250908396084992889767446986635885615419004799032902964779094396135372373669579297474271552700370727372159541032426343309821409763131169390009589557513836650156408277424511577090161024389240104652421310218624621645489368121730577077947503385160786989560033377358279869614363215852981109256028266971330254196819556089323314354416973399307387559940528259559689699927465982778063834960684486079966023983682601518710878780963931015760666563887685882951595141850561720278457522563815569798025975112357018146160985088196079962482634301124511065081437422142156292126449244818266224225654741255527621818800474790131192388204718646257166268598533802096079560312939339266807700742659903746059812037350164873359431555968853873284105201304179403228170668968014453214774713510835326581440495283689373863876543698019315759301910396817496123768800323951967652118896490736282693342036652125259230095028508435694451323793591071704423770181215883228894846270992649897528662086442107869507426399473075512877740546832030674409717445936567191210701104747499601312746335160974301827352206231616581227216698888146942625595239207606028420828387075506716436287671998974926210901321127647611634775047596346637743435226288187662690619407139707619938503121424651804530179838806399243314402634925055044678086992092017749346976249270511593546573623175769492835792872294894972861471856034974747599767975048395445610685180168268977043031526707260199020031484278960400805830285092532586107842627884905379486578642245194429033499520590477414994928729467598769506507963254400159083532037260739106518260111038061267162936925816681845680092715624796466932811027493846944487530235248076674812074164834545951710755484965132245205065438036108600175103061373052016261377321762738226019580623181947595577730309477146901518488276401577447366530591299479559921515133197048288546263763901580941167321498095420285807579468557020189950509247927476731546922283422618338804522115692034889570442894489767317481192972169688344219357941838872703752919298522252182625820917056171698269932587221192479287985606568091408040365336163445593572613128910096554190257762744121931177732181458730918152654969063895142652098137091484676897108268220622165129855729707667087597991686342720665050408380954431367211661387517150178336683014065057575549025602812608647192397928419338915308870190747319753460029288423643264895955838228525678680977114923719682003342018927879030098994407071292207266221746377902677298893178869459677042166089126101910935386258446455404865981199285290712943010795091332319770047251289395163644435272975408446819885283638617157607987896627045366921427796458907872063396140584223243574662385217594735712554107822491120618000511151037069212686995063605759760163044417862611003309736012279792702016100635599168115466302610605093913406021514149124268461753680015426701878159577348712569680959990329176761022745127400399397342639713073556771536190520595454859100134677409824165874114173660857135076140862056827204553784688481088033359665417139915465343532808318980765729264515338251908152274981626231747698055847238200352556541088221549707407193410942342429114899558178281977117646692656717502063361028291959224829337996581664961622447156565516698791032878267077344580653320777582584336455390211570508150624975105291591104168677578613534363546358083342640890982647444927315184267303841609438013614995339547678580597095170067230502757568585467572485588990778995820091883397472751680323255985932152168944092357788445815497547012367345694903278920637836656110670079874663632521980795489279398036475601670644318637608864498827381502163160577007361253603159439471755348526915057847299180044368723707152565279719452614935865292906886341592435474882435149638266785064251938116036029196439200152663491558069910758622371425175792327440262430243290643094598031608758873023362839962458845914344386489486537904393873467081548869921734450560712603600582802095117274507150047457346385589062805873068450543772967243161549510208729353946251533077650143062350450968998313981210997748772038394666354764417608100768697940557983019590922908743846394608698118442638586423288897488643795480035599900139799968830986664852137339580455848765897983164511305654717184138850366297697339983673011578603436908654443661859182249720019492964858803531417183776947334197603787769051444259687894695658966398045421945158018771070270403837330900828762702707587499859517840402019509272016432190167438765876763918560220029155370961155896704966124667679799847910754534633097939362572772200737028836846521242992485440183663157501849364186407337815701649985118132045446772733368667071813312927268841366305125613295114251829986977757514112274567757282910191337493774335622526550030499975377259664433557010775548075980272400270380983331398107893185806362382055247353160297004953546095261572689264197303162301494209934323426499586039695616540870800700068815639058221836726980431496027599157466804765003705338722816184442855987341995579139444481018364376114037727625379949658947044946739253537593580387992864541086116291674515953440028902775791842387094656101140435072296904052618354955072787513940965596466619123226782228345409019508529977088201198058260851680784499817594935133011789948351579288223143607510161978482456677750154408416068258976214590765189178514859314349608042670113742052283102484412592271503513096824060719210435461441335206568503965360606426237439593325564509237539373414554803913032236576450641428308153993924030985830674159244950637215295109678820530081801137554211866596415967745463253223671239380704247452178819525320853362559928820461566300361715290080163310596502585116677053422872420569088228353265229194815950275660292940225986534437856179704410265488650417329529192252241696168018972750490202200025293630741975844147845980147029419541366787734125332230981208588757343690576201081869293295988149293290200105027500070276459633772454495808321674142789110234299274072781038038491803839822616754007048187449258517015645717665931316515262040914259805778344841894368164733620666034338487301869666912566116759794349652796038754483739682502011978374383654513036692996634973553236674595078588447456802598221627625239898979951509793713504699306603827804379084302277168458323403915169180643776740335706870783059023480930440567780443039903396337180439454501594276266873015823350209828418059415741226432974413005956588387862236183792254729876487853492628773936944265886379532088416062508098299549623553252342929526725325272466429198940591569702202642329599453407445806574803568490118296808839578369809629104048152190271175688055131435961425660399612630122317441478440524359995115878486256822164932785684288197713857646682830616821327684248503049473152596140098162626855345694714419489038264528821152337136593659613275233410747302767187156903408022497602563423359782022352208429684844485705050089453584077998559073610901398941132780708750085143302274108633167967378162949953929428268332821695406316268520425965201686337589951225179260059543760034025909294702738903720443355982653932279332532151903751931192508838859540187019585092923262932701161969723790040410828623288031466099215375266461298446058984485605173634431870149999024084874577390257429014740626847456377350162327217317049188354506884867694391421751825435165747728188516139512989662766771087347569567946896479986718893391392209354739616383555002971176731738390509488535965169153047097044524814288470731563657425330654559004575850789686391497822846850524163420282962985231929969635187878368351365127725889242600294995227397327896704652382931251252062393393724400523228271043527627592465619156403416460218700368430717875710426035021566737686111955619971246897131871363305262379558728401370298797784277815050982359415505881929637482148118126594585043086495099324334565279319831024850943439677891472832208849772330808562139552792291796560607956067841578778739736700458412411175252241550674058471160710443915790853150712842559565404424949040614813608750909346991745834454048409052851175793008231815466926608321821234176892863280820848271847551449454021212164274966717280701900600404022457399027337853741233053656340695699303350027636901608930333077979769260983813849079908972963225630793477541919978278402373161012913958498009430241312634721266800702910904291701404893633294947095367838241036925967349603902106591202742578085720831104235030698277691612745057276144662942446366185165974017504633674582404594801918334617398368565571498078655170250705518430324747446674805494454409109947461921268503677430146455099433818112062417647455751583995509836492540494378388400493426523172472633809241223223839564831377225034498399931266178919445758183205949514215648208647596746695065557486982160446914275715455303314097382146552828071095593174808715608433919685162187718396607875487278987406389280425659135137144173836642284722627161567545247548898392265605814986788925152115650715933646888373837175200593814284468830421637727116495920651425507961014651486559769193796230263951325983576954018082163133434657151235257632009196385377507109659909605627878218333166277151778309035503475465534477974671491809901232180963905084741655942420284214677028495862087186180409507943182957967009960039631647715055119002878768311350812364548039337637577216877277289787742865580133612408894733124096368339054734788352449126560453814857890596742934090192750949834557799078462956807916110081603828929979616297389902291000313900060470829173322734743077549878437730983816880752233814872204041923577278408893660814736564517256645093789445630307258626882189221026771951832105723899971608869611571857619661368672665946176087944457846024394459751967120791155573808525474502072350555742067563119265511018496424277766548490455923234603548355557234064521007419259671098772262366357289794696044529194440507314952588031563650755702042592206164696756290411447766979919620030012871751965496182548914775189238395204118007634176693335101476604016702408322270519496477225635451529072102344326994497790435866933303675546917875941794708062052491426228882412738626872721406091752181029694566859868312174933037507370314218598221042978726199930389595039367378660264216154121427770094360534261733575025865712229141975442528769208740806794901087499762585373006020599563693866373757469422348461427740884274979985415020386606826095223849955423120676846100751839549294703265446601483246645158890198772494694303285281051617883128609500834343543919439930716550050988104397352408808427246900677891106395258130640327437315427854241312670314410680246044554395185397114430995476126766824382362367763063881273818518601088845279841888715119480667300504688439746227265713622546015778243983056826105757447449153151438891296077736863018400324394763030665490955462156066661606398719717202495528743493413028272471531142630218478787825653292056021006591822453865624353529845677684004542002928384101791489840532747577725586291140051827165269656716195719532401174836557679547040561702966487771511252835903265948885952624155805522897729836756031804561762599086780670435784723423271082344510146114826110578773263583575796153009228407987159266080163117330820255635756363647588565894376578747338725277158643025846560322997582998313405025775007346065497747645086713776853930662101578407019475148126971817331240068496750345298351867707128463310624956280813120170800519821097555115122446826200015993081384045776928488195263339380844095480913059349350542627805263988155211307847345693275968361879018130374492520893213935284237759593333857164827851099033464958021704574554442033678437495940873175937103543835636201453676433369616265065717232027778304224314665560931596365701448648584926471160059050607507914409027285376702468376670714699387430534510510485137535131730230579003371101640977806663026577315673574321170187058854105979156891949006203388096750621840109554681769257694080167175770221886407495838437331806549822589446943074510783607654830235358463005304185169789620470279108441770988071927542809021807009119851470160968064048309033419203088892432459045614703698769801294180296239195431208798613438446691450094284010759027685860225175246712908274773572148314408754267949014523202287845153993368903333349827707803117241777164134989100315808322785859117750868581021405493974607325040131743562707379274445262840557554739476497286143853267890386826578291931815765402923744517232737028127563396772247626846783064555171391247297552296960100095859000822104166625551149942790616240964139376437552008016187539304894689345786388045787433822200681621219263964589879175300012406134834718003839967419157811188786183102078259893032937839606401547973988689568301212741403351939284037438548572439860726451804256843573527923388459398297178013230532241835073624191605384222032257067192920403225891641471976531836815538189829589114403677221462504861988593106971940069563917377928619427620089316712438096947501666932062509836349650439974155962608608437456072566115249650349716132685213825139725225618659052009432969950159401148402968295874683898561315522858622797748722930707776319925435517160782683849110954524147847265476855835421133654937850641547669581726191991753084180371115817334780849154193505502001572379802906233069365661798128403282615667355830923787235652990911900547863852433062919535969398116771405573877693424345702200809326465109641913524388313749650026107952882422661521578497776101686674295636402092768780734100749154526546933049209715792308330268469160822699138230880474598907310689792817902576291919320721737088206974017375638618255469032878795459688077319764384337309796166935843822379422892378398052821525124954947607162686039155140741182155764056600475634889351010019069950695263737115173244170867777600874658957152184771286010006154075170337985157868986505744938277910910332026499704436921133437604924351632384505759048368611608205238557942835965298368478142936399566264416212894922373469951757460434883282873036951266493112863513028527462560772641124272904286711462517686790090762794078836641023363882681478383771232896310913025700901542687997263316819353878094557341949197253719329493183497925209712377134674675808133019451036614336544323552496592208525560528794909673946903159300496720981516860941578924112631394516485633504772422648685291344062949354525392949696021731549662595862811650261047026733017832453416907298062016073926773860064001479582565284418008593654249001023777599987482856558833419323773701088300014421212947411435932874778612262367272267332457181226587380522495675036925215952737324952963749002162219479226402366495085547972971252008834142291199769702405291796486571332789186749643106157240418478683376466870149955100108262791779948521967919145244960370579655494188018813455332069343295225487795302101536177149848891035857349846703508450875799803262651563277139742945811101189538644396916529545461226449031189221159956735233587698865684487374494646812452558501118260217141828902560025627826397671833601817158782697880210887514888235173395923708743650736942466668755611309728345820142681760549640976953487334409195767542320100321513991293232697243585953409661059686724099064703060643645918354877119575739972947078650315847372773060891850661237120363461880090781662545299585112736177866466833888189361357891308878439891649968394727974671913743768940311316102813177905832333878748873780137934270442821021800648083898286919284317156441154749577358573129729040469056323688020591562866683500136063817746076453739086215031490349848416742505123174995677397883170594326379946754271896799659349171230992360412559461347546783353691606914075066430258638243265552572469832323099441830638170753312604946311708009637945674914821449231440753355678023073766292899784999351820583513792442256083920720498457567758035830269502702676567221256540322853544118489590906366278089691214940570022386572251881028816541102282379302246476788661372870767893169167684423366398683724521640545515536270416085499264232649343934470351997284703545910496238948306771520431710991244908670365723862864244106014922208929596382905863847376041097821462076829980362275455981667283725431801669716482354772837904690181949276713925963665001470115509826081376887038308526730413559487077670877939131109070036243765753463783860275212438789399196813653108400172228524546806001554573004423581422743546195462582605360327520419551850150407138948472313661382896380142818747716246117300528870244552199809627861857769847408578962989245576793280789540447890565403146022235938361054998345479183612049224316658687664052490606715655136799241217263838508950538646263715707969379198172757167812452148175345114732214541079586717326806647044240037589413179741366178941975924177219933228239191686813497693367106997689213224213293503346989543392468131717094487013048721794446438040096349242938647606219535315764812546985345274393839855599520838178858374983801494925176147486560102077352835491717098749787766459619159409995025634892197851801425746000829549661273261891433755034191477363283126405008003538059152913373445397255517332151449140160866144930640616682976503453007280288931693713850960513313806280640139489712482771369276242574509248024872494370535738134205890766982362852547324600536675699252760237555829772001951784167331098553884585136011140757617716785317543969750749664454852148423623882525828056313879556822773131340426660728182975437916482929281051586587380188836809804145122866437174807740459994544951860224975913095073602027409782488985815579221647995326079826536324410254032654250509821385553526056396990539127521892413350924551732890196701165808817230898264640615234495893838317887308548939443697849086924760580050450670499840989772856779594591003379002700869027385179655675534180514740104203639748694127624209393102143565849105298307522620446582399393806514639202154105691911909655538697966023762567431229398117312388643991921235670391041841567999001231725599621828118510000113104608953499911454279842756077384026895960813206525094159486145740914404675969257486837924793632239860780874342071946384902475806067333929135897651525802200083991552512628930146248859757493879582250909943726820504199367556123147982060086307335647666066580695861651316743429510619651197434805348829256231033467842456260734384948738529365329769317778835114538553029928631327762708447901746934169310976841069575163789829130423297269108736560128930862448957487850691969691473653681465946750138457507357062201216544597539746102489472591633174649201637839478071886939673286686721451914229874431872558259917298081529823462159241195174205081252639184394046500573362933049751101030629693950831811590388446488376665290374757670302421188812683915260193718284718283465606859308422110682316780413259855808252833193776358730471988754551815471194892166399462786716203737806329672669829837970580965364895247599103144289882087176197433132222526360862702108916978619958356076796695742416869283311388891150795818335181814064083990514766640485300299612783257670058822454367828720788888535308328112626295082328153157841079641071704176021890588014737731102225664735036286067455590337755425103318276870800694087292812978542546871477552181705066163392445560105843360854560053369413300918906324724194012625682317510293432010156302026390580128259440188143052415087479589060532781574955187965936045448005652329112699384088104524114385702393658291812054757763632632930736617157656419134729746511102774376293396061914181065215452947897682767229357760873834117242106251368194346262058389647282246313240525411170788638263493079145900282998316881908531730332687957560872827844361784484181870690159359887318212993876203215712690795673960044495672498880383189823127994015912280750649126921344823723734611170680513722148789889252185547476868186322200787746063379954996241498592707610093006255817198651479749749622569080812296984908029234883120598666223877777782229377188388740181173117119224790847022555888778801938807763584179079503308243235951887718764961141223786227675660735747385414450451786694932943798254374075693017749825249904974512796393404536418533289374444815288413106599780619625744528992351631136663870812717287373635765612313500160646255516473554230877459472028475537356438211069431243917706276356904253670634282276252708323280530354613006209634060408808120513641504622431805156397884504814148438408495997516501363118812101763938680505846527871391094734582193358353276832027911976900494593238584789713057926264218634188567847150774030760990955755754905208277045212416614878451115168607064721498685446563854021039909879525644342057783593305809338185505707768225493357777151921690981515362780743634719308070983497527363793727383198297559122956623080248734605478767215159822429435070357201122402930848825809971255953528165271508086455095647364663347336295540397883592515375130468922652744129578153866303521477641726747715429522301367970393681852838566325414793379387942617538913043227456275289404779127486399743450002322406916209487111027014402935278989505013276302588885432254614418195629906506222198644783854874825696427271950756378477083893635071410297010955624363237450432231421193543376635822994088750281487086895097928330698242951829140274070150393628263688524038039082885570373486740550782719001058687504996609257084172623012878969440348246982386397383892407327484275597752278692056616424062725381594671042750693138294058180953340179043402897625024127428246639859653811684770220130738390662612102674264027826104199076870383083110363201543874019938394869328827815401477479117832829645464899939018220505740959017935408728653419116820676075903818753562684305842148887235912837950461430653130236306177257506735906256446539577885809492011837214336698105993518077897127477297442887105689098426109177348701731261564891655479349180273387884283358590133173484655133695180315358700988682429905930260469435529302430517365288063356819119078622008229833766587774504934678452570233236520381053078171818361311215678730120519700275097325175647711800461905724073365630811398786049999569275727125234395969763345004796202592997993519804808065060430728428124377019268749119348593274571751426278497054956159156014766481437020155641055790979977949706073714262971872607195604596669648222223531157007240034478936130731662825374981758136759183571798152951059208354347031134218789588241269107203580586062002738185497979130897552480606589968184902284784927228768124252884830860707629588150033430686536307593763503685493240768099786533889774468722185759934862897280078651080980641795481506422934528318477608670705704359331348326092618953053308267558008853254964023201978261822154909575608339659278949550855636996408703372338872598379041956337835208634468758559203592025719545445376865487259918276281969318925397813184092423163990321515046565631139403066308518754581062599196199918764206090839132651332116083929543959039057366293238239885473040886526598154773421781903938349280978220858334738499013383338909296982136590556238194105074453238330769311841495414033131256665369096856544858095213851566001535000835896064262932829324070287998808273596093772378917948300508551309024953935496461138355154192272813186985578401352672254645553988167765810144080260283257684832236628539766233883062567456529039471723697310827766309767651286003040770847396382510213442351570509136764208093691168565153881301090220221314045173783490429902895932828233117474429386836714389380391143317706111406440750450298684425719198231525106690132905960091899161597935165762407509663722256812431566095454776791911554447156691023744369180877740103590054349274308576496585480552518497761083850523668245764396286585305384096733903730599935119168271421716243759168209228114397886067020580282598243083473351147216721393605254039404760932804436344546649067254846199016789904981398819300521093767900186794841207554984506683906789178968044702866838590446109060637081110261578183248890675417953214485284525725437815677856472450404929732284865768823598396458050188878835283218019051313335498200719032751151529723379641786954265900834233531943364487814203874446116672190439102651465648206260090513846658635132949742560879344609100859542209130419150531624296208299006829815511350178115022867358452108498437660928344910103120946663163578842386200946296017430301676790273024785601435527188140664444747028180395039181521082353386998867039138475365912999155029216595868551963596145383943798922332828323021213875800571583122745869051976735328375538605021214847732564727505792708589892533509134982862704237203144670790821144962464160589657453780479911499544103120751573502533194965345113097866816742925217340381557851884339225818279948434052931949483267604375910504613576642926387710178832448093240000741111627226187323550737152656125638860180030071588174519468113887017864230190129278358345339742875990741526484646138067184213025845018441102184589097419198560777408428622645077601549290932402666309329977318213657064552350455353631057301689253658105796318397082270087735369619559379019280313317514303612304462339032490272771280130700533558800974479733967392081662894970367071988894060302593887854400024869800624951911744086915108734207816075710378142619281616228833535123096847692200710482324644214560148203350600290371061570245957602017817876636503699456964217708105430339199962138523903911896592482784924143597263506905114241643858151258911927905751437546916426746317315648202424779501688623616810338906253149457487041038381851719934577555836452551280328671301727135696826662142637414925853500521257279182684623435465856241945748431121657544038177297158331693755178214032015012187208046538253589977032742065765818893535527087715629511202512004678994930715439160379859188675553986179626983705892770473728558888550542690318559408554248408937389763868515016362205862687697165632729586145909533800075418419845103041659940378289291081347490808407026901243806805027208864210891235770043633494579214043112566576240307732536973547877323681559598403495565087719872118102145653633426423394587923211144630337047398678162538601778326940757473212253744030925327788155766840555731036577051767102226605705998936970878965961198514822646145293737782391275836853417131412653490917033381129760784892488449240028352990170059351903427364714061913202466632552997949035546514378639636000137781766430461795879499627652136718551071808185442297382478938478338076601797579730440086242114151668299411203883425642786186412827381132211731611861670586854498718889853355975642143416995106248749404159777487627729390309712887050094332719795135484850324022582552845588959839926523713640925822129343482198490347726160638146750861551429799139737155334138149141346434048259847082919054396594919764158188829862634157852091900947044237731876238049535745740518909505731655899310769698632483987597047897182618828267444223245805145884998942903414309057135136437435081486682426019395743016337793211736275802769386451565183146931282357291888808001904109570175343604488217837484146330063743842272983228745719548986681153924073582780072317339978901796701089770515278261743936547825847860845666718019431241804320962592450048343316557416756738515492632017046807450697371033161683551813384558660090279718556429571498831523107341598848859985913673764878517838728900694700126844599990856811922761334236907613089729509931493275431314999863741446829922402655413729635858076540818999900113879310503913389972344852085524914640872308439004263781495690560759042179571637461311361155655555068139601104591111237010588931261664513504036465874120154399670503586479595860473172146323541837134818308724483417315175277032173082929085622877451986979584861824469192134067242569199205589435725841719232900070840365008394943585760241839441706191266440863153242625094167162147778739111374965051326577665652374030669121817954188812798530372496334606134738087582586258636111926973870791838672645749738486159154770141807571221700881165496199819213336914501410312997244474410327156431097253919938403509250207653361391309001040242316915502635160072974502974601302500120052433112145055974163195144680724811265241280711205490722810877322440923704431253572267615110984723948425488914250848715960406020618215982448097239252256707952076801234447109543134583565583226231109173890006316705468513019203249606700386424076967816123182048327109190554840927552929272985304261825409363286705822988253222596575335293841181090620679192810133181212822311072721559319064189487259410200701126351743820798923446402652984798249438500615161545389887934730083709690425789342021245992401455602897945437524808674554970415894949540598068364036547730696511572968897689703975751808821221027022769089119191711783310490551646550726431379427934164135789031307826624823696002717646561102535796006717135267035626231299285832936990119050859012132895936674203117312904473372688331488620523587059494474943058206451454969419046887036964359938869303470828170297448643661072499154563606423831051876187729855594182179859949863851587612722720163402279721040268269316459007916861722844585070727681309150354967417040871123650232474834825305063894065683684342564696635155883253235371964032942488827747681236228207702713735145802354629376796454241837761061986137498504794994457371397519097772210970808801521567080941603874975377283688362272563022614060973827060003054896500063834024469359514910456929190023207921063532784127353433973542088723960577100910646773266292475235403467477662695348972094849841244617394808541649824636693069675524361901861550965876439082527107994642451972778544699259413695874772410017861926282289166300671316736978336449313079475504151604281962231199601398139706810765686357673432452344181070294815166403543797170863228402833567146159226700177712224662057400123060846020613200855755473266058483556985509484429628685478859542908205209479007411718172010027143790521381580596332522541451231807032994322092854731218096391061544175018403925933106503425558654718752404786835800459305663542247231415964742783419678680084429190842413677080569919765686710999653557700238050734685115830942827854445063396724409592510614349292062894006031684288884172404965605660988193583788529829095803183390099069075360760521673091976363797153729284134320230560641724097419419433259174730764569992416993371835968564070525298888832967492253520634085876393202525338611689418902255460781544104808399354035224271020843828493647221643044050384463760100525724275660864649487451061662458302070216128805088570531996188712359569518224174487151262318863371168750591270861355424369852911416967348091507806849013951179336714747922849763090527999127141537215673342964832021816427871187334097660105440604030492379696197031174320157884282285451261863266830510783166235363716339587997485573169235092566208674942195734328575759633991481641116744377464263937664105667027394491080051926430446470223422420865227844295872904988789343040426073118588335460350209712100890560626329510708584949209358358595617996504596268353250732194835228053316048022087219444715190102088506932077458790634886387525197273184828580453053909938939730893033586780744965285864153110561951369582521027051048603745647321234928706359507709830053766668218315944787227016025555668840104634302701506415294343830825264260617471764122416751287269015560840111907538640390536088871626682092231135397472890685375137712569971074172255866911716370975996296251614770625396651560484596929991829363449164503514132300433769973261273436289990957490031608389342813604670127490916753299534312187052077299742007107974447031524708573983058450791226051814156903571808667020091185306840281720799097392161008693229148502110831086776514840598684865306132785600602341953148437556153178885825007498933643691898137911649490488608270779331104340912220412818969987273649602085725228552548413065073560183618191222703756385346911930703920151836434534782334274775692975649990477747377148184999536942423414237951235465551890908886480411042322688588394865353539030739582295453256778367586211311305438228653952574408864820341032884587587083409612370173013156099367119378017915416312163005360636623929476414147527430830797713689910083466501165423772305254540136728321891126185071280514660295173799012818183994418856684529391090332488490466458693935547790845141210854842600367017060876665054661924291446742916822415923827452706208644086337857327276785222759771647660571113703622155980485402478339206156625637077166031547265059143242308283729798885874135086966148696433715253674130462699991600592674325041951148136393494489258267530332585390847977640056495026055425105498747016891166193523635051194734923800363679935016752829040433215578107492252356463384219496332674397171488778814597215109624445043855099955273281527154235844857610636275407442557498892139274255685503517004455159297935682798361852898882313046375258331626475593493148563823369892960021276829964688525502674887628001599426165642299246026251260201336123162335114546976028940357686973609337213313300049084441449623444175545940885965784851582743326559065342008908929532454050242564023600184649401957942699106379717229068386356919506606372470967598880187531589752017469961498623887059967114040133442866192249807770192077770679984619217279628281441689036527480619009387546506229173169977711382957430989330639713285075958078841038552007451008711591862821397585226457441905149131137224880819118746775139726456468138541226162929040894273257792842604230824566835784080818055042198844609378083891987635923706342878680275282388243097612346303111967832408956583529149797100886071120505074088792216799981368748482561073943416937021179152633138878292644380217479282866240004056282295956923475825574580651866660942874915633254812914605009999564390839468335725855980175361041718426236599777692394790578966098207539702511859660677711387075046442904060225580767562827076708677333025507224899562483861586682692834054584070621146507924617276176738865551691669738292220759208781666700896574156888120739754444486274345176111363975534490334006495481933002278027284345997286944977547214203473945235187868380439876672634164526637028869817855023595118314016017731599581921600196314724164060326245214389713589809820218031340316172763499603004326083796048666958848370579411392473585383346631504849786713039687156776170723118070477054404942306714378273792887512671812401052409481166474487401003002625342305865327227962605627934821071218973794198958598506546587979651639930184278849347985449009871148869640112036985827880074801348610356619224424522218818175661217252451270917337107319456623793833976671502960282771354412429845858279853547094890900615605336786202000325385326114527548894035177526485470894327799588709197356896704310485578915630956668925716107624368648981839480767410176501626231220000164377010898806626208236130912146519203907321693595282251797168009235979609904284516158788068109059548152862357043693414476624220278034242722502578870826762375326412854010014001734644427883139581952142403332136164481209602343995293854639202132875386807538979951359796018958490064893414853130710476374023607907211831563103080831156610446237378717451564646208498345919754973479773214460023307061329726420121913133205491358578688423492435826040633193311143099549272434144062795761735587666739293822901160462323754463839178558422277335076687375589957076760014190803451286973186698903089194354482968809550599309314914278332032960949306917579179969886724133930536521394683127535630187901889577080562994325841240735863106758783920791825777674073280080103776602544328778740845640379150246132590341053873284395554716476160269186698565680217886741338167097460413615797727936485926238192447981241233376448983067465523156346306758598309651055719679277649734109208967975003011995155745984629809966155350888898352940127222864647361633834022085988635134240738328632216777445382708513975336308293716561353075215920414897450981429990486660058050908800189341438826601803989098830171287479166767772146270389450968283149584032866081341646651771132021690484630729653770061575208022672975387894260280657682763029514210229700715104919772398816950270477763344154234318313801820321522763131262378774501901939285981023869605932398280244070006422749458127912634282748421642318574300821421433147361450528469400926100616348066323867250302175215973834324494817047539277315437867250507265269772617002048996785328383951443126607545842394781526641327729399765393397087746513646448833914384377028413919329236213161723591679859790165001774737113485721487578635314165433029174492229291371443003820105618051881894235552166769910747194929850095333149892721950397694016927194663723849177352749841344785958117363793319477336528771508850118370390830302636310631914637408395485954175154101055488552866332862301743200513266809125440730656125860821813283001570488596530323935044452620044745906806978636848185239896042926959669103125813660052355980537695009355706043423506164627728427196187869632698220969870430817789709434698655061571712189991666130588831693424540436302986655836074476111329738273768412930474121009761854756341072944404010728661807928202242521052809407932937632108739915002337925302745162971450669533013876813115532754531387367983565475736990513199242108938265389318525656717495313829509502190728977333413755356837697909978163133277535687885604606071183394426355075767035068426580049257668207687277569201671777150820947962959906159725443693257731213079690921101789774743125175656341557804735377365581100651690925184892447996413731214998473300116476741915363128260444331846507317849391540417946712674519888383011541046361359473837450528099547908549980437823699953251045817771051279432058731199582231163244024781793102620637330503159623386876363697797621682230159316267546691659237783080218383968834912670128825352571575476321029908334048060329219986671503753153049810255818252625810617922160363196757884415208376916466117452264329225143046869863466730822228045681029992524489813968272543137193432877600868381483308026008954419994701258695732633908153517366979504372385504592244992153729413533987271008327493688548276674295250100682481744980784206611259376510138003617756411643774467304906445428906011828265849854010199323732271752786237860569329352928633283617663973358485300860895809161798459510417739103025529838635902597768397806391803849151633251233979151035874250141257421478012007592329879276093418544786431720638304724414858272130804636375243642533276642326356384633670900882728065454956797771679475588747734644264046184189642550261745002186176564702712556301395054453872102507452953405474571845479983147466029143921266678659034576103335694800521573310840112332365638856034038106038802543471299452255169249900047230576296744917830801855337472294679087826132617809082017817986578551753022160693770913004298004691767339435646397554656124915895410505962341246320735388837441379993363810625053594427523782896831592884421722323520387378454073857258858813729578053204156992292170309597556699448411953189604701854032112858470038542980031584440150354639236867875928954924435715994887472364302756940123596973326031670031917729849530381823146285141654259178647257933433058809405055876564107430256183354393811284658394380826809539636604081905400154023385383343831634452625758187677701360266714160473592076239906286347036309302235270880069978726526228862784782631962978820169823486281531650222569467226124807170908647037683084977933685636683493707297641350036173821769420824124774713225095488194275376348146359791869160431912674827944422186336059301665807977749478876263089216444862710627249986538524860281057733681871748723837865470745220716452185035234109883431179762899474244913232567343138041255076708651330597773580796041062241489575413930052900530874320505412299806811789368686585270535065942372218488085097106245801417659741542620095581129511041489965031373169596635152161180592637289390976594632922201945112871082805129479879108819093546159734391884066041510959013333572136226954369186674760155586122051812176915715127943344036939898850842036739058776986558005068027512009710055835033843365937854625285104172817425096819128656816892738091236369754450697958698055791137928057103450651915640477368715355612772888066026206309719231509651927429703173051976049006256609171043596514764116380818918702383291152321450285342301825153676037094938415875729165410308412832304747134398706466369107322503038321037114047124224907406217672890952966792669692208280614373268935365047203835167351604447599035748789333743097627904255164111933978351192961745054975964498648782705998325217173558026782109736948336327212985469558680464257404259412645951352850293914250771049996108503321223391325077324418120633784097223971330538251148351239987450070113113027386382396535534497488078124459126283194673981394226066865656404824416361622163979920451125146180172096361095486595694880019464161344415930735144022302907546770184879546873647644304205187021163131035881126890047806330948351410699124917678667317486323842965755433555327786697831346694512632048923061994987168958038202209031931363301610186268749589847351056410510049956660366195402770262061630790181142670430891090117264799541292698553125852111882622994502637695435955610851453991340861810825622712409469488314868560686074686140404054176426214977295910100076963569615009435544059064745306906643551813713743638983477328231254884045547594498812699751899151505251542355672969651482761318151882834345262333313165409937809665139798032081994366889627532813046568660994285357634433591753691862986523030077673801589823328998338806465630017380162414078214622739384242057719430363940773762813435451325565839130551431377805253867976986547896332605830986204943420717972620609053242599642215950942469117861069807975331108592630267105117386062602056368021070477752011922373536838175807280892295871322516379793951194859348727383335296912820536277078528267879902993144433755240468387873283394014915257173763081751601358978632534572529492197404894903056973699562313201214464340266204392519381538098897514321657819366202248702281259147162918560345975167698929270382201075290472151811633794360573320204423103009676561266677523586763352814281056987279757737863217407275894722088233991473982155537061726505395420054206546618084751618202451003293584886344014514667787880215585652606209062298873282282305482299890406220550468665802826824360767880604997944711408457364202841526509015682148569642335292662863163712010409061222197766531338113408220929392451180353959502245550346103479496943173458406687097789985781492404302902169972388671877096823741981251511783040044777692297790808270742190319329460704036717522343154355663608467720617969722693034158210881152083192849434091929144487187847212727089364930497062772041180559943919717773293925753399140787377154353530932819156337092071637082347137782391824572890851055344564499204830449092216501758240877468715959973961342012934652623093180422631933743981541166847153986930221558073354706357501340518178824082793141775396141548791550053341470926466851640878286093901978246760281850764691789939652879306533139699675659431280507684507773908362690144479047282948973439455867398002580118878136289137099567254439863774288668655011001748469405530263989961435899192764050890378831239086448694923962683889880596722857824123351714223767999287973581847056763055156927421537262642615508327816703406025315539204603026523634154901190432859136472493133665677010147348838796055819564625667031599494172518162707338858477650226095728750447136162419737960298019763283068666417637117947442719163823327722461738351727315983165083586500510485388543225445807121412769068240248498609017985192068943528723920491766822258688707490746526279539099884303145456709199120400100001574848928520599081842277858649668541482835767827105262643579710006938889519982833486143587573445559750920770041945883952361644927927602756088262772917971383856461236296623123320209548797912861679441111680519182357508024107031051038611696518290892867373946702433854824459361929850112939183422164391739393884010475692337938213794994439405664043629976933685858503523940672807201812402776342876766543591276773768984201776894915356588782201707390614641431787278409977934043409377435903067600111466412860807113490130826148618038272017173584850773656626631261350337831982891252505030664003138912561760064294861021397483037657102164054993396974871788824216831370156104326317878384324249351718895753185908512807530140141230882699968725757317527458931985102226585008263609018243201730233748465020352583267913010015399493956258716793886803254956473222222042895247052565922517753122070233529692005789943504793202750640630296605046163453562693573075170033518453750451777941818211097437347245682740129901849749048385956558646575118956865501046396493663221116765717371400502995598094267645164841959882982216070015816825113070254824757901866699110221118538907487774735900738727521246971597218059835138468417605217611522238614297934622228923847247647326576523335416504682237253510506680197515640724585810358657815142018589201862047491159203553386723648979985550149713585299149766235047744481962069963486055013885205921537838135362682354054593264624684354349241571443251199204127449888364975248951432562712483301640985709815241603505523368986616928598001166788358837366666568734348350768197648729469391949891309790610581584657053465084066738225711748632537317174779735634862951143824981726351091561136921365118729755944254047765765676933191537517589031929692948418931009910437802934901542627384746433612288662456051263343179504024140446596899876082314983783026186744297177080754303394904032330438195000238940403371499456513331544534905242550589907404919101107251961311105642773004833336442984281592846184754004459772116060891128333000493022935345630656942558839312862887747527945317601232472050061217532605499178454162337727716571632895756484476738982868887322657607022609333508458066610154172078047769906095627674188997845543391714485172532604601824546647347041953814500768103665105440752064517900733094078886920951893726978444293159731929431885556605522253061277486704171709706353531041624284439541637098839370115283726324453930236588292452177711701480667463419451939188438461246159544224161841871528807237800692621307842784300070401186823433930567734785022285057593915133216165144530806960138879456081743067813551455179421526028487431222963481837257097473963690463797200810670594952599061417335130897793448310672336220395188174761203982021033709978175384335289676853775585769945596124553473308844039842630739060670007720546151241000636940406990760762376185632676368665547471244872223177181429715996517518089456421608222831191997477276586618544882521976283532210035139385870327688430215350853013580112890732589504734211449962202329584724981410667400973091166284301283142733262883718407807430494457714422233503508227554747310814151806867641241671684756279243211748362621564992690535299867968269604303408155537739208430368228543152686454313717230510885003073042574940235846362925423880641680521034677129245698145160981146480606675400996824840474333722754112236804317044853232634000049486554591836668234100431042990678065746672878932820847134235624050054494161771564131985083814090946447779436524720844192672457383261677762819727415653050553136731972498391668610719912628525655028468105806320705125440890459732019034519005560850785037266407295163793929904591179975415484629993032637101591087674990776856575007488314662150942910688735234082031884801928362927073917399354197633160631994655707314224258083825969725727228936136304269031557247898355742473779640702818246666638048741579846737932464725910296743691920404446708144432364163216934788615485086706887328853350993157539332272532866918255636213000426212770913518578331871627647389513513185626901310052587613847064211792127994496335789142063986300068464656154038737822570550703885716705161196024123667124278619714705824654979712126781468504300653615949454978360918589492902220646956610314007863242521506461742938368443302835720290686422679495302692822243639639995393973873332725345034441229953226837200599040190142065401251815038489455779434563776851267273498211883259130896858448999380389134610594834873725088503983167009369588049379583685184297016923161361408757807244380388285779803577096227417147240369825792676824362178764737828549811117906573124462594383045089655983398938333708119285724696430850593088779677389277143416798051311524942941561266241150096388691830580606288790147642956130124681710190041525352558669632638665848755796546970274978568302611040749308547956997630992816818991563771678482710168248564676223094646742591901721439854428159352614472164603334959631853548009614351872915997683708499957228599181112676549178607250432914376382976701302207480317467201955681688560964558682504237127931457057740102357485606284709469206563131690080619857986739736710854444879082402012195758649624529438197334214365527343464595578729483570035334303381535501152304550481048053361779454427592021677346501005984713122443546181157173158683944856135227067864311640562066963458664743210038148625533110814374701389518891127115253808361720160792018363688181035667260460438043500123165476067066259701904335277235223862448967928704461666268957574814637597913584258485048980968543508622972773319367442680860052589309174917279239937518969229040252420579706762787620222255065237503876859919546918759338285268425374419606203014366903061534482053015795498053282829348860911299498012153657080450892321622838139182354468168236952100557272139048231902738345643851976613314423688867203517317364410972624480731597418807972305397429498868592929990297661363800135970622041266711697228370145794610433856177823507488414552600613548331635360108949442581041606538109606477621401234245551665292842069725630459013779087845837424560884724392661951353803470584717716466975679497191126143088902443314251812241552853719715662298522980730246043588671829756241802899913083840831859189144183687012309509863588536587202566830791573176018924760963564256792928977542053303135780130964164388754344402484001266110064463574216019098847461062261485405981628843064056006720066948836710560140164759142847807360178889234510347183088083356749597300498199423222177663045093763251502667561541528601177677013380994761606485388111294589674987786242958354414058405612853123114869376999871430704624840907623603954628793145542029761553597415263818808280272579238824476521630591438805850737947162089341672879166946817003453396258203804470258064832151469148494519063967227533674599279762135580048337086054224108206742963570701356146263516979918158003429098471304128824968078300104418580415624521505578460534852278813714626862226733632865873269911714919696858074819947291856130777138356499025258329302748648408622271683535994755102111860299048796069978989961515651603286421165894379562554409208226483940820747891908869619911153938215300733633938882850319164967680877841497037603020918214290063988610639310385074571265601281512095376318238942143314156625537921252547217615442738217111749612034404776156374880048203614086243924981585890187818144427684571449885523106624200906158924809154259434206956704926038587755693382846219485871825769780882643168127025364231252608253435790076310319770593434165228716309704578182292001446522293691593844339106192190859537203007914960105531080054940334903605671795778240745935152317042872311714224251558047491676137116578258323338661289281162339987444968324901720589688623079664560518411719897092776455285102594982086278526687133942561648187109128005462910636136662679587689425025358328992932659188269160117211687523023788866497795576784335496551313562319636376739000428529825295686794650391661391111671955588783542482935375497413372305248811271361458999359642942635647766418589764089489590761985547764414456001622484433684722757004254510406065900682461948672890837103837273262482568203328107389051781750096715233711063679255190393270752011976096836226387543004755652556435526720605019046280665923869201454027908058730112567090403445709687093320146532334349665063283107605886579758761007066884841871593225700861241005326064684410891694852054621476776402179610430342817972175935920373578779848996441169091499227741004310296194310475728889250300405308014778545644102034455849110236607480912106303581927714381965457845653950141331428069687649538122453918976405883414514676710207399645075567139470064724627839957840096210600841036618799111820977796633156106827317962038032513635135080448536598070031039810817347634505072170156146000933435574982133399730162458639764687610729401722687310761177264224710824726509075160876962228534370732831695533177755654525071920512121779741774649174396623873548147172852902417074497577830349297134373312753993084550851026967860785184856884332978814723258408989091178437208952092282550039365476478153470834641267798996340124852206108695575280534368160733984633805844730306701912695791881469234927577719080005772984496205169673210200895003162777514122599847486255205579130013353730579419430775129318457506279333907445147544894495441698984362438964190385153253688268185799271765533885166054006184834091428225569209928518256211020387166426119023511214893320386091216892670748085012734224878713002779476030194275630859195355338234366347194076268090282879032840224784528469157527346005177441715022277121777739719556095790438172441412781962224511766209693953443798624900941086024992761727770815267242372147754150135395600319643689820880284414676699866208221090431432820596327557912820690204191482470329625900922174118699118648072203229246218604633914880272124475492917714573224890275581539154512835378811765214313444286207805612660837889894245683177761345665787482466704919316883866528546962707684672858864628456938375415770783146402153836070729383796788567920169056216097202332147882740047691694983679760013600684663916284242660250753091924738124023442910768009520126601888124998549699007726856652078797372626852858831301193420029078050811220337206720839797809126903664973969462817632170278874845107530125671804822797845218035721165496144494212405472601742741509439355663396660099643853598087188087752998030446900116236741700045970024564487156762353836765666056270791119141521087153832016920299381879655823373347976472185371680368481769545854239426036191785921883771691962191683460323015706600155342777510155618435226582321948803546085278241933052696993019420674549756794490060266523723075249980972396296714733337483254931744661674026558409628753482827586850530062696620991496599382770211396308893986271731654918464678573017522237366866705966931794346763913042416128385247638018369667412959895727139319409565852808704829815238881298748243459035169900439069777756484727528052212151824121006256017247551509272959665954473039809636130530127172316367383874978043512148350291076206240292572570045287942215717219120306002347923821537658567679643573403568130247402035072997243887021349562078689280287484954750656017619158555000932850333521248335203391626482367596969518096623524370623493686710948764671698297314527466476333983830564740223341736169587163134146284960673963435658316421958970021369278131573451370265056480877413710821547856124186216719538338902998645131300183288563663094608612122795264865504511248174370334152812561417723558998403990333287778871893591445301189917891549919030625211316872372728030156253568520868057809208299233482101625973445214371558864177168571478140160380009449588256553062910117915825626832326452558159353425133753835233004701238154626906223918380142580715285977869972285193539471187140270502526945803348921374806770996297616117530014905166867953207112286914104989012489448331987718032516664159566454968093578784990563361972114929349555017363928079242732360570061319865366820014426954691292166267684385276408858175864801811099892073653511332388442837075117737226681826439555219775602029116279220658214636010073487908432459568889334794001652682909715082660273622441287411297240864824757559402572339148019854945081403307879491344250985038747974666555083297543564721803575407922858278308118802600514082767246258297021009062934957762634411126427045421181450492518452612533684814759458340565870566145639685908443017131288308871299219557009800187649253842472749670507235333087639206727182758889145413504842987605816739654850420580630454627219384530243397019858122359889256213744880934716937981873694745121439998285796821333523098271009767442058149885500945202865999685737415935817870142612922732778685448134567508182334942670914018279999188092846070145978010904975990658081465938866642722457220214355464383570979796447443959900734071232184720558677227592549099108580220666095459860313436919286134991516164328231458428481868197743962934561813647220230012835734965181139743021589491781641967170232176465610108102994796009202405244923012384882215945712853965091642456234139296214720444731442189712078863155141994754914422648305084431582305500554395338408014875286116834936150955928798819459835242035633048405081302652607695924024450303119226523485195210305786023247146884730160952412818961833553471202281391851947016789321343255015527018913841820999694314183415596219534873350923884939861203567445367189268072345910631775684772768417132838689009538787392394634677206702554499949788972806811085260585385941062261772747348506472131336508206216779844247337582700776555674783437186153494337876319343493509127919064517647428663616368195785153770382390368744680358644913237283383959846714432971059683930055650796593392364195625319875551635730354471957769890956628062095364059170200814544239141663299813739138474394731708111313331140978568939652295685856084046285428128729288351841058678063461492636578787575877415015734097492732914487058468131783354504907039483953694891245433109466814378385893283970145365595933436495201839357726797914995866245734745166237737806943051145451273593219930880439658940103478955355434640822803145708076089322228161581059288553007537989189672348252400504316034673779815434667536027502661470615693031120426980912734491170222100551137918487057144808060644210352185171614594990259018685988885764636586773575002171563254439618114012915355544294256493029309851461583453775428156776445446046615536162426710416206669593081169631667287353125971244535233031896674932238933250745605971894510158596704472147398434155124551938221467889674750987905095077847045506216857338064799684814015688952612914972219115519989463854312837637623189978592265548468961370709339457993518921979869783546172066591917141266502129868913991268336529821397793912773836593190196334605418036915249989342630087104754854489753176056056761418582939175465350868425407385529920605133015785379073885739971226048310016413295967741184410297621558720822887814992212028953172105169591791546568321567793434397227488242138449554257825489531912516551341277636244438543661712721467381329219017335021348617579159979716774766609267680287659615185084179119177733466484956946930176559711111737542000244824312187349246511674830447671766356436023191999769641563168489442845398144369982411490688103746003292127189612571097038676173723250066308682116595302451225626690725628772146498812033503498081937701481523352773007962489333168424988748021977199511055310312667901483749191942583622092359673308952910530121794324101142566709645946388509812623036788371133266588252825845465082255211403417642860714122783204488110965273029345877919585517568498862138065522412213404548390736190062459976766947330405956593573792218205575490319424489227243236038172168471966811613890597756966488120753731166042118739754535811789268187273653579582152072171911796139987254235001332116990969054961762185521200942044383867897069172715528000753316134963176132790735912221665380247788756679871484926451542162684046739833337592122887394228078936147535463009696310536401140689750971412061553941682338412583735034935092542490876072928307762016161167569284082900085612663543930190452126540543788737754515383335379906423311215092420546284703662076708216979893685600658028103300151900235704857524795507076720129799948229459664316192900762045508090384552032627874757669686765948778316564871553128631591278990421218124677173948357084983138901115420007890378400547225708571776675027299588705216527739127909458188626805209303217040275431548764340467410597351125818119759740218873120195373898002571709783183365130650661188819897450756931855543159557833387207741149398105534726909408951538983586880166838063751097058219888486018934356925398410608642474869312538225830325572191606398737329845429143890286673260750460170481301237986147691203389099187240819230789905114636972200546868309155758037149964050696404647328541968824406725078850134727886571101110564385890514642776069096997532109255460984505737163844467484289192075592896470657780585594553997530469641362237501411171981413345429098591604931307576071009070137871556256821476357163513942852027637844469716766905965906062825174747970230295886852676656893975300273982557953635199302697881787532151042214375388865393544248861592746935836595274088069796424727125989131416595628242281772546225891835806049807360468079230705840977995798944780046099731722885884066016243173833351857558517090926012654618914327503494501745347298048150923832026808415066813325789299302978122050506582417905774141765939006317649042025642634292284267662617351371263182091001019107203158551819116613034786886259246342080690766042221465437671553394237758735923623361301638271384162639240142976627462947766250298180096629188602353619151397003212272645290365930102745555511461541363428948878262909580036396098321304866080145554906261308107723526567552790201429272132429834218193767691544739906084429312090326493124781274816760345216444868271431665142900610081861115163973095523932168974280028608452198925808505694410199426606260941135771955114793774316660963374061459326504314151248418677091549558167964939399298161418968809157125056627268949309611642114071256311925439957003677743088840147138438293873022816429173730639033395481364574801744088042537853910628393633251891515842384365508239288277310677602190774632077234662890369351510460488239377409823434130872199728828375260409084815510548768671856285840556420321333743053946515160033884184085710811417135687339359037112570832182215891027438169307419787119458089524488211060923110605444807921509063361028412608730154008558094955914939602125259299168323163241902445373837291966414030345983288649203931089788966642720302650135445446317569389982593452471785739431604619820500931760909873774184060494141522861846506625316286994921408271740594218273892753077681879888131209640789845885164371105169242766743997534678153688250800332511983784894935099505147252684065380195482909071656448224817524418906553742373579662860068555275216632789843094282680435960724914644280980694160293847531844450938622079250070397804565629797870233280350969013171631658077209081297303068108945837729340162816362442538668426634553765396786763705701539624767967324064141104265758205993082689201081161852364254161157867820957832783936468018539603063013559274430592984036449280500159018690280767616456549090625641591128982710827155902503428874349581569966967033875130005292698882701295173050110265246407992669256655200119546219185613999492000643238190259829202004385921063393003693604192263190779896412613876950353835196287066627328247292526998394180925705911234934156439404423030816070912325130195463610903991475586158657584191752848616615075700460358410899813309733116303782493671670167792528610462837626992250938485372526516233837216681521797476648189410284739184057311779087453902378020324013692312193120213635058941096051026848867685448856264190360984424533771527599423961159620811895886365972321138559909481704635150216772515713163492844498150869580610228684569613487838297933344905551638534824480324257013437814904151977289822969051610246900102364024445138434773839438964028450092657141435347404768983609889902261964655972887631828853833860009038078639737023170153789639538352044839970431384055449019145061253410591492119410089671137957748090785210010474774342727463682734090030323491998856187982361114784351562427601180824236250531165020414041270208806550288990810149401972968683581400920298439764817110383669503437305004273749053713678812043619750737777783899971851749440640987877004836816956952400078309516840513525614408963719588907325283037307572086959360094476543388996314019502740337394496834164649704941950406731983367141006960643629124136246721471048706162388165919484762941754615319280343776594645293692016109322060769453130641203308782324480332589900661060264278831332195970942972024952287207898517082800736243010800672602451478789301338819609741183913359302341496805903832907053479312029156545127809165240141403715421850331137633617854530449645490189143560501079745760345560019565754612338559227424813833336090010343864347003034508774446848026308342055179853846373583478808130165216343601618495676175640594701635157954246532150248816876452405127142486502270875734106704884930068955226422304036023324133008936226418777487644997176229683877138746881287927359648058006092829332620938206777609659829288709501326350883712694563487590924946442911551283951281900234936178675514633232992562915822001013052481255141474983194419098172965851230006796342398733022220929920456381950717646779440560132211826486113661378096547644206065798813354202608237204488882907229594186515444418742858886683434178423658451140517935947536796914739435699947405386989170182585349791904591879061946565518723734825682187814698737346108068535245898549543549319725907886773153250039297001440904796922742674281266644252235970961864576439458119313340558120170363922084783727218140726697690926593121590891896025930355913338477415641239744691922401038301043906974540517584777566949801358835764325035827584287035979574226078310846203489214462246148524445577142010041178516951903814661406734672140994323508770468358276703449711455246176853225337996511989477147047481817313282242551763131655074890019976958636600860860287550226582440477416848529751452284677640641139391660640381133517779481563870170639964530475418822101066305812075221454949749999799957221091126779639877402609361137041064727896182730134190623933108702529051693025695367258342032245629479903257583144270528409336856648485794662916608588527196184497593877300986289532168371761436983650996348864573262620016099607596740298388909606115315336490549807867786087820820456395223793585875313965550099718187117121387490727016120701804063504927614969296730133584047756288449340046387635446585082177014149480021467520008449044408788342342245795312128928907511379534054187825341589604540956439605014058796199104472006767635439302198445458608339419039187988993407950413783765422147730079413994822515622493779532215080656950418165333542746166722765852319639147958973875174470006403818081348661121958015546913359489886687972775103712803680900062043341255139841595892218662162462314097585069399451171719048088917300026270248281901402605535753516710261119445780918686744735809308882028475789313702529433537972181044931134263074132500211892575493975932434773317430452250004029955428114233591645866824426309560075318123323866916446642331103129775704456242611688642452386339222140391507985720172481771613376136960609084529189982001079166626971122141304552314876515534780726069908587734835330021869425290099389182204888358201629366579668889869358779010653462976732316707017470586439847135312256947245586835905001509421567580540078939401368769778822327257914410749371637866160160578488107255107124816053136067624922514135077716167903590440141914296343083129221548494517091420065654507677502856954637603035479396893370734615768900409497163064903283356950899225129138528547938931649439198940768115891888551631746431719380272517936474576556767374475862302748564604638541554931636524412003639682234350165831706731147677241455693624686210458492375952265789726985267420255559510981438979634665890108028943038926838224625554266067798232382490591758081747541013979449899632620231675945410566769218737932354630970612438091436196020695034382675325651297236718384851868979510583557829541178524967403548273450737916254715332301250412426351192978598515184078804827555036042562551508807533819216330838721412847127495074192160302966688257438096840472576424120843977440835324962710906107560029462416492984095846544212032118562967672820449604472007206140511761980380452061315913236299179947088780915531422282575500477867557689871253408380888858539727589381759500208132584969630975455106560070356111858842981685227439954976564696898794361107995173149843968552298120480966385574795133711643775623398206273717588754344275293112965440198125676883280610640698552519473465996382021293479074329766927273054294391779181364064382752513669110050055411944562167942053757619120467412954961102404379841055579662907972350839458613497501972149086868058856871684088945841217582820664617809521385872866874776689579217962584160639152952339854870436948295490925244332180212776114875742893077304739920585730232978476847832557591436295687686632422104649287496003645464112455490598531830302940242356303709650774695620789208137423357822885833448386060069265401249127153767862209804859937432964458776900360425331166483566484179969304349316311864778936403926028299295346593271660286519639209524024954026768571294688355728447343296144284072143529944466357684252649581742687256393836516474799511795588718420742725332703087610917270752735721456346947899806901065292031747033982984872202870125530138498702225034519840760243503888761265636795707045737281980440125678868619092755027297949769593841334856181877054660308140458947139038150979454336789095579036323414162550366354146370544186572630871294742400779763703922778222282216768619600382848334126067905719911479817485431592605976891839527597796951474439180173542082046031111862349309245754275459591859857933755395840420532956750293064585719807462033939315566944675455474706289791120158934027580234577444258141672175342408178501957728900677568119260066000864668974754978213766071979710289299735736574159298266810555178890659969329149745107009167480328994710293733792622237530670872578614442172551002128583816949919475158466262724949782918005868428617788312531518151088944956599657641228804441832777932982486996599744289993249724121413902324360863886846374144878227288646054434634525079495718224798384554677539973177640264318318145070731585797798660184788026932354209159262159545753765748047832127849974812156460656469185702254852144429107485935593114444374979422927226297004753442723774904734983322322288797141697774904900802326248050871598197646265012534806530685737245370139055239289673853428358279885929076921412009211290160032640840023321942788135955653244467101753573602839647046299887196173262738824991306714844514352983738651966267740680043559749593198087613298880110954594001727948980998981446614874830577523651171374609089366985704737015693245227411421540377648936789493089318539531434753611915490818080670857934194103885595353161892655168388596745353272610874619906198106614815743589490651289836564469784320785909605166912479407593904710441245306252036847501375389888133464418024044855667009677939100016382587593743721573632528302863859488380298303862112700857109974508458538762182132425748846267721049964289649524679263282188905066456866278982764563733915701468173718610896918172150317119038014525350726889680735156320743371969606407072313948570616094078111948225946439204429022829408186884752358720841350496372134371886333911440506127596666443063652713111906563867611484218602141853244067829982877441848001254194028728341110943398101852900807375416842523299775332368400660467289375787926491361838811423961590940792718265387320381663556464494252846457882440521038927708252836313025857574223678551526168764503489749505038896266111452879648405399013450542065426898824274182198630286586563335664955873295396141474936505437011454916264905128260013627192674687664084142500663639616584809116767530595840148241896900070565952720619221197030243230328908984948682896246951629927875695368755948399198203598336746344663027829126607152010499489234683066805138317016516554273541639149336423579839251199250471696823551422220231401696444759154942815431185583984018530317330507496332604422603124756982286023287287680634480672160143157801321906745858605234088610948393481835101764138815377894359131374877641017437469403064160035642369352119707104524913874715687678818753741574393162549905117685575156987347043681978413394163506110798430685584304484507326004399566869329081838643628017466846827208064432045522675180841368972380750932476882822905306552928400271271668913179212207426830984116280590417585938866711442986799316877747138733671708130381514504858100649060352369343876342169176564289173603370274095092751373309508332772577637444132146554572468797964488466161736283239101267720855423518492534261824539906715689367545339472819176729293506551441060595673214839416081427514319123920471055259546495257962463072419133562714334664878813055852431320796244018767066472554894523309358140654937618057420974365104737680395798676473881395545076432704988533226857234892313585236318863084321539351114762915359985999156554461777518241242814917851889672373508946732280343307396693486289311441146798005565990113475489967888304283209991356099794868554525698526353633278552042414858958488081370223429223148275602055118712822956063602743741697172511030008809113856629471762036299135026136421167717103843071393433277091115450560714237440707919618111668161562119385460177577688113146584978604584842119651500532844808443676891360847398138077100736938038557561096208659218475595203416405628198390047026701704864830490476856695055701027197781637036729409297294372317554042168926723593444035407750276775994254594638478970405103360636431165690363304921771673968477712257959788909775796629461080990512584080499958400597335966793129922395569653829457154054099111370139747187962594362436681764177056302349063212583865917777457700294540209164752581568626180460023124751698487915445532957529849003129079384377457188605410558086801185284626751865656693075068387134812820176592624450804976529611139528994675752436137686053145082203266843433880096915587567239177125200511102111375703255874276564494335834745396461856284403358789307349399220557981420070941381156645749213067993299322625733944234538635102095792514863020285606364859319450291763316332506159514072710394823257229388062961108585061055396258780391132497378324563409943631086965850777265617625344615229626815099217192755886738227058179635974501576910014272886732190602443836006547663282252028997490133585635612972604869511517476601735704455707132547578232340510641083348030987036739315008701757347915284264424491854480479747547378569827634794195294103898949792506350437965843652184563405735316112304891698795869872843367860081688345689926919707496387939288755986944066869607947384643288734254955898156461013188421544666669824669446392794874718365101637226763969129393311966487969922163297240449335263562831378261040126781885567174347873057204895539050089867199125240379341671824354235363003164093246332352947344550595282574554647502415185866658754827342269598437811943730993321959642599206634611294139335432971064426762147230934951391228198469286571562594221326986639686885954454724864082338495778696643022977826452182471684230944474586008242860492691415888415810907615407755908196772123569344908712577737115309152805146060586841427480723904649925623178968698859322613199893102188976350858851422611514969717622920600994345778101917647826237523894329234109411101900027644826877688917383442074225546279954327875892090014603451288178350973064952679276642394476137056011750191824057879864740042631543197321378740578585932422277212612507307205192874056325975938476959235121049004887781300258761047373061568248982460306364461765356351966035872456011355376677633633439502522477750251520736640935449671375413414061211582609270291837987706263295720549431261251177746513779826580122909541274660877799026263237639684063234950452197614831213698915110126690176167671134395060573181760370209882794788348874666916290222331865272745037577851960463723539468438208364306205812251016106034319340150105134121083661274426159263608961754357209684051220746838546169636960238427218302915128629576459311121910548220608595646410216287346163116917349862832039484298087564884555516176370046295287402117284627952002264445064041483756687011242539332868998629637604260116708731761187407613244330704327857321600683571048707711907294851207811501719479112527226912921969145110741947210448186574487409912859388878961646108833659395591969584685320513074578106690254912030842797494770585202575544921015377725933487665315415584688631437224281759476841264958675382429774931025349082096520101721639997548754429995889944012198028018694508991471884790749347556083195580273454531355880044107197874560694959299025279128068025960624690772193531798660747374836614259235404507343858029250392714289549789026701720902190565346770536041328931745471764164007704142477330687613692404059087104167864959905206954374355878127177191182927236460036736576204782845861603172211249141814896715801722275531739282605563321946821992824104387945843138424485911194612817174426676056006517452606901433860147977760087627088840916044037227281856122295096477674031127262868660110368224498850534833943227203446565444415807631450947486126907982891880080410434512057484904367126176274018341566829327286053082165775191993030051262335928035098594787792709222957447316483388800578158361982736677261786516964544143320868583412783076362980000426187725786248536702220323013846142488320540978237332938970031613214434350044063117112364358491596953979093431797018078420746059100613896566205547130851871911934432727835840131391185319462966414640572980664791790605502260244421566246325210350793391072689235088628772453128827488508026507949038853217946640033869292028072357152936166141156632771787147073890687096928792936458530609860722560289040138916016510330245279598977690776595354672520704878044909788852762947563672959994856918828499284172277156961671607236814075889918075891553962083120954245997395074859445757706222588384828206367299321579991282421224716781842549216783594157664042108609935972787037864499944334965388483389370912273790527546425856819061916971260228806182805315254878588838578994628640889752049246668508585979870858614421969816953700978011177365821400043777950505539403151402828500752431593220425807340521444605969357399920658489802860984126789716893376571587253066602917116553571064177994053062226620007101090358719371158603966623507652653442660608282968611177863323387523130947784496932898986553993989949259677323573533847163958813030746164970646883567388843209832831764134504740428154302834707761247683329830171840012169611680738006646853778827071973507304729932789190183346497466115315475676267864987738717538299386559917942805193073484086871351395234166699275573027550580439631160660434306473516957068114188847300136521688180507627793766128390917916987738638416559890469387912020869748195532550750542166299519905710157521053315899248945745533681989677889354629643858223384246912115393719448098487465310906115196928217857829902479854872168340664465961994494119512675794455487754480205638204592465645429727268136891729944141110123725991325430447733602377619862175146211671339920835106828879770485781053930363793690349420589355697977122092408018090468735497019407374926281704689218177609632004779774809331301563659538490836681476131796295346617233577036317352968673748530672338205883722844604064140405878204085033043791248199328171725427740901722594458415531922500422557544775115861489538088918571260590217126329001213201264714759112388644798958220936295424724308189325902470229794888075066953337433702755853972820299253620251221508704741050175832586057239662793134670044024125387006781871467018692031120176084980285886965829924987478613508920148707727812330309330807792580520333518743350703811042184042944617591051794177242736184070570781415954357045724825994732443671494106915860945668592464052720530919658580326745670071040062414985355177852285606993718091086535366586852603259187262343425226534994932786991434849732091584334988983683064258547896975244028755774701514384490414119017615895265081843647087812423794797669804100367267630903845622168051367763294581795052478616533432097112286383450413892304262589463682686320469236082232013332318161036686396505403087949590658864240215026834552183937368504673371753846915499412261952366218518368380129123351218683303433123976067576098021222507962104257956689583440916104814928543062983723465409361537330270016744164957727754928398348120437295261644783921674004252319389735706396827425026987695339123867015086397503202130823864957684185986972027235989386043417621047654449908411108374694346368446549984200090499776621542117017044360808685784174378685675183067059100244577240008215075179050415425577731080055487312338474362609922069974654165803465614255340428446613546940657505484002494547993528195765504947501600811065878714958407476679479813309961578751587530772454153854227184973335855733292699106099217689734007835493041411242666719667845464687387499131243149116641332257125625850768931997607544702838138719576788720466430678286957857659776085064127549917716681926707725122665686838221194797580048269221866582098277155357028040392938476378000717388818912277269654985811178820866057541793312889093737996850274507087437643043943072825909376596366809405455788422563541743026693210129506603784272179603055772972336156013988528024578721337605034700081578403886117642075524170440225375664066689844604777090034245747584292377261765713670471729857889203775736220177675667929346254668004687378374221860644012833032421038624845317302001807777329115651309561544651748058862546559166940235787778896816849313596963330898591472013626618911303445742623440090199368992234911903164323831004315451500088648719564605419530899281876374162279514881994209892698939774234633553438159865084783907949463250207661785569781329376663074102648919846869460922162924651072760509657497781362560950301150797240190540891180721294193100596562508780687399751792870100908366135883354054310366734072986104295310517563004339494322499581274154370418351033890026830433452931466726281532945173077778732976120891825151192716773056497034646463531723220504737835281723456324613381498512008315510927254069870566240182150480931703789315180249512127630595910920182318313479067486605279081596218806894018544267295390620408347272454354899941600888337891796715126806266996229116249495240328360266327276983813788501578009378032568855369154321773447794261867559309738121629133383551580043329677367756023090843708389897934389202689200493517063837798911676199089318658805012864715083295886184434736433818738856379706567388090063806721765340346388395436236892731944297450477379115841392195365801346365727177590114975609044350324635698319725119597796857461709088553757629219652964290403655040569738274289876428988199062764050249424659273861956645986861982708287815354048452975200672904363961467904372451022725366362617611594050356030267812079965708288015088557562915454988571790123386189712520031431528234476624671095270898135240275777553389239451575715328776366190871544754895580376244473167553244930969870540345143396409382283447753830273699123114001222077485123446616198699363000076982544668891782897575077531537944318204996070452992564395731873653337127892954976133406690494882967146159615245903062174088187012652292542535031244209327620221931916294558063414048881320547143746427950344730520900140311050373770701711956575651674354984693358060694242150837391170271129576158781188983405340976919682940098701857200458193521144430509651289840161192528841704118701774372649861211556966380544704090398072204613695675037379124658482808553433400387639579907134273061820900504965669208273006974012436521573607820550910292105005750164401895627130398395514950771085871057007296997386736525791570910390622275025791384730398752989506203273649151181222367662629865168002362993207409092578726587772712245096842479505495944077086809659959424275446541462317716421917730058673851900232351806589449134866931297523987417867724296373005995924722912402574160281119928947991875577407521065829424564790974807075897233591328216853865338445659540178511668868487418215642639378481069631680040450674591256771867948434905082247692393807440325717250151764535003769844043328832925520677342716244776731517107964255588721096875706315848459937346848134400033960855818677284709503122724048869491289426682326289444154258009631039571346522128027237867879940029373549675452371320712237356018838269134316412097908747362362402463635291993775035005826954985671712458653923923651528035024622649603913151750502410017339930903697978308269746396779787869338583046613506504473383604257835890626817213137086835412371548617750564364194064491276176562276081787399491149364162386123834089802574466851484969481088690432913444589728691885015989404918387552900333219184122117889892642977853320855420385268883903955725966146650829106431706464158910048359073790838386195091048117394676480670388623783478457713362316924837606969846245342935710962829568501088095142352747002480775379194925431140250890117800287517810621629372861273875658240621930364258492574783769905578702314227074115792689285183112135752893547568766553259905452088829233149616445446682810094410909396230620831717103691264207912920061036134381778055264854678255701924208908307133393955797219475396326572518197036134110293315749776264615251550816958958919313346698614956795461586199391707522087082416182820551653624998382911437885542208933357314263431942577311630934823631999975126144957958296128340334109725656886105182636866724352376394554605033050016309486393254572056155248923590220221829328590567763680355882918022377140516985089092405656681394762142430119152638582272136614378323550450445433487446889854930696953345878549460872079923974131217675836345176228992633127253738560285599044001611385103695323856175546051690766143215499467731575996881671188930882596609903023730104283071220842690940963219848053876644876812552830069639963014927154932706185097329445688016398208080851109292156334744552378413102493882926869282286587192153508376396354247148997131927357811852511492411066734440427327068399778587841165579300994113795227261035792419055597138906655836071355253637020978849507159231556668183613711607448727360392440309375939305412325838354150659413263572070654757021152272665872228988779106454351218393425889188495713989512549181453472231960661688197327443412589788404396917457754093443548633069562023315848738517677351318155197114994910887210764813761903732630723502923399928779596794394037171833999192363129126295963696789396893245338741217167581989747399809251886324906801081836221560873815608439521919683339839270092589162291730697015600200881606626481759690732635542112952554202798745501374857555278158812407937811512786637369660496237677798150022165454166974115201850936966753713755685224796989754339601638979117883073237189217921334738111143316549616702710101917992305923506776305432004595546013291938720149177828989689788221987926551058678822473905374120006009722909274542115806846600949132979014795494051340899342130461042680524393772180134656323442695122850207708494772994455704575286810454041573675153134030421187971349007057431258774676560741154696973558970463270891788465946522934918080629062666723839148082646702196824311284353355475874815940746293246318249372007448964858211223193222103662179228283303009629718831256718885240062231643908652917992705569670808051604850509623949603596364394089509692340977174410087253808155305344857996622095811284560131840612934968043965840919739654262627108796395217056230624602657812515680844061178507193689789788966773256219128976593826803395613543225791710882763182749561047364716808053228435740533058123803932521347728576245055840380633874461205110210203621653836454287542110280274863398338358160749785691889801113367719850616634413506420893476022580504371531560312131284657774511818312681030833267413266552090163303561554597959431773523617157681587506969613935237066184308724133048316119846102320555049412711044659909385511857074212747022007742404481688868310555811561548169585038496261544229331512217097748053675460420040816188020495076320941566569082599092726719354717123604027403649978619545965218932972527458387587216912992351478204631537197492849673312244647565687055605593022288977908676022628629825918788235531259015142676457701238428255921824067880399816539873087133483587325658385049554714335099970316649693672627018742396077041132201234481771254905629935615279224449502233114716735666059298590179800720274581507533799864585772683457140233198286525642416817213265968597445859167773620957777063477301413218617793343268016137520551232871829369698002715450922527133743592981449288824526983441208625485398618104962318855581475193078232000175749859250925602763297853661341299943304852355565326547162261006903503031103826156835014757756554797319077679022153441119721744991046795271316979163684486906801943336420774817023326637709324857000554443996953372817441025065635052134780960079967103584376960515377450431829921591670174523546624622840608260711085990771772040620728727801341775165575988146157184223732465886340932488659792231683732128994946989197074201887574462399169488349545899812056444481207544639312063846779786519303839267088339631833533060079456086802036878226496388339817575736359182654078044126176823658758313582509810196983341839102597409181027230672592800421475772505513772336621395739310663225247313508226279169835767644643022082452980278993853566924342591408994131361848670676779632563426172027805952896300168523831699525279388496024016073625560566184186773051296648796111239168773226394914128151165121144705567747167943798079484598694131370726013770914552101238713711942830182898088562063187375963770972476852361406199724261416472239614099562423268834963913545196692541667029411544749028636080870627449501392146206799850406043515091214550230805949976060382535583802145552836277552382718339655400642742475688962323674677612712450344030193017401842123996690209757543378452470273308245023693944993929195377409580094535831272862531272563666569638289624657996046623838811559807079668409600843338199096459542137229865215566596173555285795444037681525584470893906950113845112511991456179272888793084639257606266357739437456490695884929635790118717772725547720162702989868714711806366364056156066725281023817673052448370212958715266377430988375061753129597992441736913259230068831613025717958904735021481387742873635152329238249530018677341444524181144694128132232061062305991021382100150331312350982535727541157534568076786750816749751957510605631080386044384053462776816212802890710585463451574942106876419539457794832255252231531365834453611515080287895715202227045280721628564243104987151505586721124860891138807293198879977862877450291591245913369480263440793310869544054686033339303261600167658912543457792522153787022016739178390518835969291589783270843386217033491243734390749782435141325464601662985062388627326345172133630287832545877004010165182278505459560340400267556374654390868621990230663631093678287867428071583168789659147200088824872028842814907968358748899664277912180509464352889370456798919305526229104497149711870783114014776028609467450896098808685740964433974728364816893044471640479885326609641192989146996181041991988362249865140102329150310948432910598882431746919567064025595152378272242214259461507741930453089030628347252925576133895598579585868405431726762115552803970077370858863086453056764887378720970153951904614802411196219126803363844385925958054562350916290008803778007891025808862822093051959861093068263855230393065960800974931524983164360094462406126827686798961314031962027486176820079503521402644884432988402557014124614970939410745825617032354148531666299392211514949676081784740197485134024911215304397506232258194924359057209467227164572474827050150138994707717164080710112022259892093109001334886270763506972382285540640687633243763963102300981458688564624600162917248983496220507331880206095603982705875897959792222423865882428224347006123525748024960679563705977673394938720056932317574802935311310865042128408893564962335874729876428596509100644977011753839526930649602809414682789508430534995226461929465396001007097106233635338432263333003393328317966073243050381420245490496267901480475144939201067230587341560063042103761337431524463715024424429692010256134492145570776280838672779540889651116300918790993357232627491938803385680549270790726744948829760927323486260166516214521778924617603355578790995569082618799714435941087085979898961944816755499264589978183933936808204944188962922242839699846868917000988398932729154815109290798838593254640264113611014335606967941795985561180268701089479839346075144069834895640126417752217008650398490644279036831564025220928357361234476243467838250578699816442076014998792816053482198371857980102061522517148194646296032026495616671050555208907435948396860893739184812266697012620943747771729160750756345692140900314227376919775271394954770681545205143005340890895489958055370327247338181667455262933033088664013004997269573284288381669106474528607692971031502137315941048141745558750247766817014916676543247978250322867770057279679001022476103595438411848181942317071602300839813584224265538366153645585665805821770059036687496156092976288229761108461940552652706595694758098791242127033152574529647333538239322943539335613056717025975732204843423489851396609372522408520752518384600987017235908725968797799352067365650526932570124288122493242406179403650522077555487797216452126199054474287720177866002610855306035479835833469294523809722815368985623561487540962281408976051100534710089225475321488915208474006505583870108035049510955190718938953308204639863224447625162638175307445986501173117045767729117886739521105784017808376729603779171514371958115862196033274796403575099456670751699152720227848232102598200263236580696845112085241569498625459357095647233236849299742988810545621069986978762919266982543673010472307170014054381691245543697665239039747530129074738939567839159187533701622314927629787804980510401183135486651790270853349419010427009568596637267230610639389273040769171320059642753555682547073646866064007179387347333807037632971661161150690141605787682849196428699062919590670745484548906845499173353552496652008925222561171341926375166615049738000115307848326881167968104667703324526280218133449473401024652736703333764007126530453013081937158352686274003888343898678892142003774587219928130090461553371551260677887230014309184434407468111114346261971643452164711056709039092589625593420278999937509622311086265611236798084578054767323298071376763279140405030579415647032598716831920111656992522083468094300282443143665802159449400282831284038661490421353559827007993751631954530587478169702591954700448111792732894429270734387793027775690823952664651238177416273804956741483495056191702029848877370347251141497345224117461692719196395965970621713324480586226172295145826148743412597022175952499724468516657407236110143295643764506470631732348153182940801219248240352124231044828535692348904786103329772354535460248609144767448798437654728596707002988565257482512491930850916833451270204986565384600596179188214391735856741887790326656614691115532621848625912465343719750617917955962035397945965854648454172150930904316111750736811857516059974735828403076060335231387707416176506350635017976538439393517130573926250644727082519137967475348194923636071565492370081818159600611511507447035346649228435372964517304293984564732867140108356592245520256891023477660507299137736333334699185273675103573508164859496828895279927722908648137849006956313275879632460484658258217814717729282731201396851243805256810136488460039081462052254582279796886812497097478121515458862515211367094270913803373796482550675510570583850324423590953380554152531903268569282610285076326338587231896538909734820417697088608891468618155556716628867383073515303944871651145899353722435577020965471599913853359718253309981673584531266815162046088048851018133421716802768791149017360409850675540762561478178252872401655412603345167325816901362579620839884835135621451785900121633795252639583475318872348658630162977239556683354003847937134592830626452094006444651955666161444622294483137413847416705736344199107639043737448640402192618477296084179185658253269861241306280185426519183094915348652547100636515602786606762757633914144098826976375543483038968848042868096067158874867005130414734769689448276813576455009715089741884807300677660400935118452664556169947578527577698218280787580061126264430220221168934952050155973776356607934570684777802144577730573030313281263696437833495836477055153213920401529900412077378225589679166004221986181201634786910077400500584912031859944156626874861744233213556577821284908799837975960344090747640459355744943404810357386160517523914338014345192146749577007051677910685561284827013744778248495463897563128581928534179977865199544941476333144824978158684918740985000102330475278562295992649492609716348557432641066736482750532126715242261292561050532667505228945706745786152025716614354078001769617017795840614184629253626520444021514653253842663141635209580384132563740037256761035898457976885303960761252930294809239141936534058330171220276582153303958386444098112092794566195053780154189275611356491990117709066788167457682829451787330475509076928082016967588730074475325638214361987772994041910377318688425099329212318462218753440573156370141941873119525464451245426930449290033954656118192102477576149243322582799948665386980535453259183942025697824276279063685246867839575778871585182058042333359426956395085149622080055598837288739678091904149110580275276837092564048604076128966591577651295859473143529978725873153746849082435927700323269788587590230857767533172742587277998303613270935430618470213204632942351482832188295220010538222375083176273174655227592484916513670592865035250157542399192964747270611505059665877944200925535308181192771960608755196220130439997567790657266618867379944145864918988748932043254326248260603009001976618832444789997259564446525058040812850215032565159823907639726410788042279378821809029170678354312640786280916593028738551357090664208991357811542480896947497302690458952814611402382282832906896184763757219502792142505255433432839794211274261919205827021881548148766872253835693110176467312378382533434231965851698156795613843903964578725205819207778585192560572307170008440945530196178079897558896163350068785200079585005930193284111469267082906026139700955481823898294452976166091612613346716320165139580967066048016599958790325802390562665630003843312848654835787865130895296785042116707096776500509313199433696826193532386831806886752234061803067157335272510733419684837209393695291678425928142845317609515943181636160859671043052724298443138865262892971601286840920030316335378833733586329500828532921161873670314331498093924169995043868727112104605617729169811256820538716303073137506754189212390073493508654584394163934100569763813328526335080913450535083994726913880168273384276109863707737440235495667010931066128067822796886220995161735384807574255207280990814158627704906797383456698792254384416215483233380838307294499328930994869035270108838699748390231495464104160954186300862697436891012481279456234765479438769378004617343153407312425739448584111116245369145958139938335572275648881951050258187404958088260221488413456594656892492540250033596291103072938722601761646211525872544477532427569612451091202052388826143009477835386666011346591697368989196158533096010121311892364945544619204079695015757131491176078945121551941247544722996383709326480606164925310958817980477806893412196274296831406687839153609261698172971729695870736273243931027394677391804256142641306362544743337995510420028961665073060724607002385861053561109845843281168140247639183524246291720741866591736655694406180086455065181122254282702298237055722088831624892244555942106116753421181824648328259747570405009401199669671155398909199237538903803849795999007097174642733387861367431209824271635334409587062610999784341680859170241012403922116760529845384800614224798960304927668035129456392428312082910091813786265386119262762378031260802943475586736441923929249466986404382456368606762331756721542433383201044763018932819655127076939391371714996028764130354012633423644600851141147880873417642276804734002229883497822073265941829419286894776706077036955567222356586367001763617566363204805324969409717800599106228784552857225578224047065590238302714172829093964456579161930964271986624386471875270149294390623432347811062818483303248488675560207543472662031998789725400170686350591551057103595660116209948603272440456963081057329074234198114269173733081100553106992505647260051091934326176673274462902794903505538892055969655194705410132125457268379662509603085705518131270553383042734492750057689425756486250822325548679353636716146715134306937922234867157302915334341647819556506421692547372815668036322152437637053782465565644647051794431105252355415154843223686403598348483044074369651515103723777006446302868864495195316157715793763624232261506321993906741635079903244265447678253346342148100607518596326890125865106038310148292659362595884407988918388518478865151438880541428133843074175840473245779755307758960981499931230190652158471179587548530661792410321161670571847272581207776294762853279011912577064150041615864531741030661313697755164540464627521246256758952314108676626050585269658383493456588889380459801102490158609295217286543134652378996725170155130940375431923347985398975253421578248463449082190742602848320381856469125385858375083380922234627656134888888565361281473911720153139663258339781930444322224970614422069782286034356924648452581700580336108143150586116760861956396112391858428054572191031108170704440082874570245684017630255502977610595296045215958769909055766496792485829708456386707011071623023306300247034314617927372727813708111463364772906400988096878095806375954416463790646312677073747257309776173616865127076004411662989148233990710398641937169015861058883193081419020224257526494643066909002450720442796085456629821584557760045630761051903267384740900069441821702505117842275171360980028389611387038450375621387615947411575025309028421965689498928241744796274963672850188496476312028784078779466209487140282445511473089314563694235031690393169161250106141837468114263133734775344481319331357079905100795432703934783667294316439633264646526142395094025452768262866300789260291818089342533794260758094850300736579727387167905065901731952040495895826646428956103738786087998084125917699446863818579078530528329662736867140196463855889416232885494766775959676578669772239248505503864317743195793002410010041372114705377791467305581913216140030539909593444569146698653480703736211190459227639809857921039647748052635576022588126485906251197731323479157025578475362823170137939083819376946736657283978311986383028330729391391290474950694797653106512601071450595105612298380302646425040079220003474047003504634396915795962656211733048921041136397567345572100689084532281886360834176520397357042825868149900338542034351416254750087763372262744646230468041122756074148528353973515810838134964067076019374799276922210711953168866956342748419949053571267960840936456504385484488118515463572075543395697461535318698902049138313991759029827500076537389052697851217732995709187595845391213706034767276062773894086403524020881555064616259098876765209994410449930000606379668314351264510075248188738367365558767014728609439711079966200494497778538849587629478586075616888878943785155569595056109865005324481728622309692507861137197649279367575789233063930384493050484749528433330774045876889293450182248781700419985495094652851673952133654832994191866655520927996152943193698688870809248127618412589284507126268590600863351803110051629019638731346341405458675888676379861177975569299803888540834606964483661667983564749958788682108283316308101881322900485997983694503656512012018492451301875007328214679756436133463237615951308981895968808866448572578364092648652593963128160949498036469400260306691089836048644424425226699669837039154120928421027962296893418098111977190673238203450794612973595906995092561154841239905350982491439155287566548026357753594965506109580304754082715214779085635576009659742624831087409866234747526349574057131098692670005505813612421684640577004117697446725427721955307772433600360432810316625136810034794891275313431175694436537254411723505648581763678036486566741650671993754081984956217867474981381766389456386400934982439942033999152399019895606642725556659343913011682713457445349022642475902391358105494141135821386078605898542624110737223249028398536750351630922333767461988950988675123732247163047261906594473676581858406173132729758347618129300263416947608910769910328036632458674401674116360558167879836924549547758193279270024794396210783890095570085860236836511376494026005804188614938117836375464243051082216792844411311794648506913209073517558855384451507533341372471266697185449946183314950298688145098610414270739802908324693183608210659243404931549493386386164022756103313015215952886868797018712505323680502668544749325104662930033449902616741783053988825472311144122732391996418435497353278124179508790170673957492804686340344953388658436906175817006009529394239069936253626409050338646811192353121248797397469494358688910145850169797848485321934784057622552616623083395032829593189244456120558610330233231933511613671716844088959228700078529001494550673215670365818795059132235612032697649744086841289406946835876209751203656451509016586063852165734067631010884800355832487855679735112814669065005460689357393190520597589613733104246279488347393130079817842530543416056316548013308366072159881343977277603922981020075392936998308747694290031570161384908594550309690988410529263330480724800914697962381783926022748982842856823279953793283232940918971515122819504080593948106111533677397747188125683748133225726976791044533603869939020931683612413763417110434177948340719423155300773083963339740993655970218013780689734489292476039638314678893268625642254801166150524452501988499363002379552236402632306445755991070273614396689766761800189532271917748030763447182801828745884932569164985002808181153701811702471839374454440775603290070971862105552048054574656630990137691951128685999475446757136534972840394201214576146184681195769345075622327510555966900050503520179794559064161134747965149834892051232861880911122046790636115952001353321345846568500900290675812277385292095270888390975226937139869742487602214097980708320851799594074840979359325525654987878866504754140267708892262397552560652750782551368059881363401636907650586743764156797697281683915162776702670875915101549366767479703320412764498399468886184885129111387275252382807927871158921185748087441346492045656580649391284923483902625704811713287962834100288033358400819562984603811532346066890624932538265041824014521257696371966062419030418656138939038669356222541063489460141153025397692216390868165798125225511495858862168348629149506592954548528232512166926840564174855048907862140362106453969488520278605760185180358996610216900328559824783702796840879901066914145366813327395683357512006313250092833976670212272499295154994300583277724858342518845817475040748915659625457566688214550699883274225551385985678719521998724189072922194677597930821828160828009252771531357814435769863660119196796489806718655071265293537367366433374775010197167972704609215965705041465646271483014468257288485489480798603106652528990104577235444075546378220885246257103140546285594613930751297018660206999477494634383944868577671953718590227178379867990817784348606867741617787521826958159825900976650210056631256723808265667200345475783251126564817310034445368411642874260158451114538871179664245734401656030467520218410539433408467795882262552620062600944205596637077137303794222723319833272046299733273531708334230466515628836313077486408517967415669467437122774698879056784644913099171381595126175661182844170823570234110020649670660386794890957039640559985809562008708653086882732871974400270128411240086788588488758078459294358614620079368368605522809628198211085867231881071735297324954715611908929617429593272475661687193533307556952750840470840098777054018902902411448132590631413934600914856177604418710306171679095516978178849800095591915265426726409284035944934834688031306172899205463722136085479201896166948398279181477935169790084029744464288160311957507306095627827893921714787479481338694523704411802505350232788758910560560533367062061171746276127582257382173280789375662616793729041898634039579398434603519929909462105367347390675568420934351786411101083867640496878256335544482612440088144074617875489593172971181895279562817296767691458198711556504386425627489276999371189162347887414787525138300134453229703004474329233031798451754628759121610603022817694684125208104520956008455254258909464197544037602699577724078092567461888061250584538082776704395351575397190522011814668195926194833984779777474434312405661725422785236022739638451236212937336246323321512543368572029168328089026454201619725474450669553392919078485263514755927630294863787502925832735634940719477282616736610548321642368280606861116582293758925751513832860596445747106256649287603101965744516841013480900194534318367112963999952482203214626958350442302434732880105192478158791794079116023508739353779903166844949212336924496275931127067723270747903874653443383494555297496083160216441192449977761552555721714522490528444052138488184548720093813501256141679906336808363085576758137013373559119220901185264877080906717555613735815385657865324912468465350841130995794747673486916266853041342706148806035818632070853214576425765943002644613472998915571582508847826621586684334539751798247999566670867257595561258114930576568713019963882800805025082146131121604095897112456452438476667948127365120230934246339067113565153807073800833346215569936159044268010711947305878844704165833238084504483055991476043722151298190162782163112336971098875376523470777041603408090807998285795319675189041301995918405753322503427219844896617159723541481400163145401388372768413403618779768780569740541827089240097150183607622631841390158388757514327244912101105872379395316739445543144623427502363784922889693305902158115935404748275785525484439582811680734426622587327682546418356124529307971468122117626792892362430731714743003272990511993105528346014526171218346367957448550225486014605489004402899716630281133578311706199002303641419915889393454540337505941004987636832218810786162311820385068179738583994211081743280347725678457243716207274567442637770710463124852970908870284917528723532118438743665161393957482981398318481041108029405329508087676145047952277906860150710365291101646221101842610740858933713650241834600586499866251486036732822036836527130607598215195902834638513172166391921407605035898530758426677637489652399182043160268138829091633297385352117103714037519396532404741437286050530386136332646960602612455238748572799521805602879607732817641029491537875663795434846775042896059003830286361936972989612779816296736805440391702681961702483823692600064276225249384091526481155636476486775970194565519240628158814516374887743684536126805417798766751959364961187129022722559648986286196013015196371058857155479856766710569513859406233591996616375198134886519159994007136422209291012269717412760695344902758681561085390696377343658114680625284672813876066200837637266628423503881315819201795083076602860199384454958304628308531647845874131426624155581330745808375913208905726649391519791236378692070095784962552126449378834679356106558055226933845440983395407547092648195381965618352686769342477205066613540934102606759263745105371873325962756986863372342157141191748317844646831531034655773027211889281783385847622237397938238759521283137966563400883542109604838235778576225051830223284440041521857245292842000377908987223533664888616796169196177113747144976849302510835420682101015961982638385820054585384631321212408206813991394013867651585199621899502467693762150378451190779975418513162242940535397101728761998301435941287077521034978572149267021223532216048327358623816270149111095669076159522491942939581659486463590746142667252960888566879158011297794528146468413134249825693810361143664182169660694762309691043542441317483293861984812204266919465596823347383777741944030021512505621610032038357789438006719585239526036835760433300111599422330459309926515483888580119045151762126037768044306746538647568926193690971212559223716069346233256006801005240889221982359971342429045046622012964901160165165742415051509296540885671311970725448553525269034453289375080644192908510725243842501084237101012385587788050690286924972105789320682408146764204813156275925714319234400308664238314758392015907619042553219473434644452911850599890847689846234644345037568913713746614658194446408572135411880421217431050561559711079874439338246027973257964741943528312529597650737176012821054369665124548831649314091694547894894812312903654768352950608846066123097844229518799672940618911706526648967235510119161778299482572780806537988471639083224603418870005684272878574120345844829877647999338193958402720393053769309198088887731937846481581383477866976309409116715601561946192351324619481514756926378256491391008934488269729626293655216180517635021538174612715412693560009446769762931211846708276598276751560557787616992841774510512054988054795149672891543029967691219881022631946598063804661079093135285795767486237156419128940209262506392028454876563167022235446762108166903411674733689654891698040997088225756846422806485457083181548172502737922696736727849127155658636402248405460631688079398064191001129298977864263472293347975150099195199175667270239980237795011874531421414112149235697793062845603141116573053057593276429408709647927149739727131698197300501906408777602019323335014042220648552492403696350209109989525877489328926289313606907164167236345365930094041152727279580441683058589433882835637617510166237834248102913501606884978280735664759420218297377435125197077601338722878741532263445891324021226977503208135025023910958036664304411638164251157095605989588657825285374597914028815318278588455346815499853501072401322668824052164420668934117885824942189173765494508498383198592370504479996223645976337831028766581610061991340970487370019760302755470567820462610321573768105263756159665708713295181565715269055175246627738434448364889973716091538476084034236221540877233810583691220188270694003544551069584190569263240336463324793523894203350229408886541911797767854748393919325320237543863091086571440607636300708235230386875583156482313654051221041526792121912064047926576447421059720078853837898695907871362583592525594375333492666479198845224376183517415206234613011302836513362392704319849181700264402079445548108262182705968083914570807198787283992476165610723119959829395653670898924244301476956550541132942725987923708238365721208189438369509483730461190859469982494600072407993169134466926287949123767996541868620254570052012507091824215422747367101379311613144176348460482883450990211900425869646746573395547162920620781389850730192609371233888294182462898822559688125787756547792338106650967890391363579560433424280470271544008188278635910716075384424022758756717086505094250772109139795919561649515814749015376874067711649317699674596166541351269965911503618429919639984946927905412721963898300235114262939942312115263962358016818654510595287630093694599713780419048528165992950292329653979332345602937769368518478123441410625828834915327131874068946869409226507085692535461338788061673726713871043599463800065480038024621811560161981750068610892321068796015340046172348608154714340977202792807911314258404026248181414576775953150168883856116458435891640079681619108308726526917071208501361906372000062025433245687774668631247847041370110320257283273221609788793028336898586197802202712014212052127850696596179226414734325803199175262009656404756000035417709026294268022448903727381268012988535390215014395324714021036056757670715749204975413457723365344490449974789732947403840717433375917098780787219963506012731025019829177721801623542526902121917261932921198089255370773812833168118367483535126160929392206563479698529453639354723599253827027944414873504129050030874867368974440343331825561643332838275293421288632331673773385398926619725925632918302848254958253607580075008297430922144905062281405400723807334134397976663324101695375083618692264374755283575850113160494146682062339090727796114560758971434379967388781094349632075827880803363414805332500373065258752884913034651169458037311334222042686844940186788882178633236324936629055170813107199432372711151626829799226057005576522968920196041985991294810211992619604934140858583053764840824843961212042785975538276031607333449901969799626927427739621758651468171191042492328456191684408713175858862965578048363168467861023648202739490697145400138295245566883285280529533474321201073104325042651822059833413690614598360809718647238189337718333353348422036060721451408485248548836282896137661344813803438509703115017130857126891986963129848512181452510740166264779795534340197252784065660419391643206890209221220756589422210807693046329696832625240402297994775633732290357028934793687449825441179921608397939637980558740451915960776590959204868356897727027152044947253091426450458792270720603483575264767256140205321350639628849102377866349914492001081412709053816498142685434788397832489503542730008351246255306906632404975240955376030943296028844637922299183796271487907937373880629373264978659614299227982912796160252886057091409616544934322585469396378352745318131650316136951779413373674944538962773056613122330430188021951949671813126557767404764206794888368279587937113904125541491457779229489500453831002886507018132170888736443349280072422620837281957150059569196599015195389868350040647017552902564966970582301983458230144984877175517622307708785046570606835667169198101233103876683099086667706846888303198516386664177941461152982707034534764121005795656228581679134754344777234494695020199505158028719366141959361876205733944686060050791674836344044370663767529917821449022699047880263883372273558427211799666681755571222342070487910171383823496935402468044880160051931444683717538841354478787201228262889939978699773330750324324249855017621482245589180829494905389125559792983746596667914963796258769674529750366866223365562961680096496580795130751970361806526714395229595969358378872516993429781436906954235347901846958251961956691550501703991427855669240026763224561930989586281070960081677749530649971095275419858941146913906503041966064280986410144932061120345655466635538340575950988001304805188666814476707941683766655605271731857315325873129559326016253963629920939734081099552938763290078398033831525560881228975776494317493279519697855615176814425302070188938155635839333849586107460747901337176381025229038076603879441380796499251049711233211976663629279009644911400767221809427606826490910276808782702519674479124103111964409446853096761791570723257360172657050517141334333880429915053364801686088896540954098014887363729142813202545917969925253836774409839464387226079481378488832140938624460452228485354430106068885579765727596480534144658335426760562694600989543504302583281501645603682585865812052950438429227571447498542122154166226770495756761547175802256949255735318220327670703647628029144650422501208887492957056261713226170870467696417137865147028971794205319798983328152708608552162044178203314504631068982137758456888639685564049157691248800702443517446216230262045881344683998914675846580661759003109250605275777696049514245019311054838212757812025422783236961516089085981382764508298021772720842750817134857029618633826525234372593300585830518540378526560631218997972038002106076999119841574169654487304028721062483111893138831629156957755431621553589633644943389625758371231520446702572115041810033864503547278105783626718000532161601557092805573250634725290599600727862704919270626079978363201061788710926590613464856563911605156422134577269569847448842057055209552620569674440687344800760862779241433318152754922521275470197527138676080899186642767822890206963745733433123977879989210522061685722620147290544326174920994400351104007352268446885169987429433395026412147268704519851779559875071480690520267042075736251914083491891583858770968193962685828391425157525684634037946495635745214600345373923197156688098868217643909809148534147033915181842079698530015409262377798242572881161380896315660524757874386820143077694080259523427596127333210827075292452692536634986574118372834704356146317967710568334631149298821580317292233800258773249358563609040201486707514934405885430773623052132549250590910669612194146038424010703855765839963853674442957739203283266035791706461171587109227006346967052207159636266928864460611446071879483730730092281940447545548294868806289753889475928122881235981775750278950170077737887344974196905508417528372455559029786520589640595434406853865034786992757582088838862361499530430216955381128862734374962645579689320811575711708732828278534478054901718116124670994505473434174652250083220053221100023380436039411076020526240165323585639816114529974288349742721369906233975998198919273098430423038633458637603395222849817364922603337373092184491709036810337375822993600737609020176891615890557132804167979497257025744250850041428941266343739953368373502891981445552436593624914412384021775374895421735886540316414494391276343208007201580381738526071413142190811572761606979482853963285927661565084006599225959682030829652322070932893308141262315952266574803425570534516514010684550644800002573909465862628418001928230098123504556526671798314585902513861183056384044820802098462767892131253875003585274031105499344463081638687485217493438841047686461584900632586316984065353990805784540582604265783489646755464277065662171830520641694632175495649751158012987617055035508050220428158588933866251767501146840365453095912894502122898101747330381188141830784632914151991721233496452945860721837837353508481217588069750895106376699194980222457893990304681515826984074076310613217713148736864788058498186942531714678640053435912867190071781613007633294649702676006862096153950152212326435310589889321268671333357864411963168865745011852214399403968764994923399826621672420460684567118676324384068000056935119110836519708354698351062814658145656266826876835702488569454444242021662744819257281276894252969172094743428991325260037928492537439056815615118937025525650547852746005583872123105412848425706175915508283202010082043345054851609949196381202219817773111934029791914003671100990885874817647227102752667631983499156066425952313359063402030807595845360087689189461427825684281606618564189972295359141601280405786667603271046334363049207211382266718120846423634102029805694088871874118202665283893785109466714483012069122126744103525257850358322480672105254071539555077275016733041545956628650600263680575536024202737819789901036663686426634559849075239857787539307459726705613579803861281150671116515545068143612894727580146174591396341990192579801619432273915126414313533008849637359767325544335545306386483139887147223764682032220650611531832067201602678519116841594548056108240088290147446483102676200864326204436411396659676882193736762177788374940278763873922503381535347615732642844184158341446316454923619925153730805789305079947369854459530827979276469067147247948672932000143036005364140043963719109978997590070502500919488321482916639889159139756107278819982004042839774450091529936582170412210526467735064647158672874075872659224368158845698485778552046783285075413079613952007253130800990339627322269372419609127576631801698124911483770656553461445151958229621502480057699236636153999952399744293176359625254258557501495095614260561649609668205175024259064909292245437532111699458002407941251384434336970835706970939069257464709655790296828928546827138762934505235592743012658855395605690454037648244161378251085002272639189826580085124376880817315242218669556643151935474908464292905638461424419891254903295557310516105804311535829092439309599583332007080400103787086811664066495867298901163063407652934620866492540549922486521231352634525124104493517686147034627473915691170926389128644892314071485172643403466837206195288224366284445845772081341889265540502225714739464164386291777006578054484741618429808136299943225259180065021983716603184350416682024829218290709962936762013595067030834007735688682948431127565547745945810247911494519677628900500445264096366039864038490053196183650241784308679824500618521075166397285610054394842204559089490576870001276197121143691330405301946030958447645493455931088600037554153942284032216457080457841453959397457139087425357855945739177210225279806895220220430052279656699181449936045578907122170379902069113631813371397056185510073809090670396067920901981066643123066129693597227067553620919414450903891374823999155736776349463396186132519725249718841591907605880436829048337525734110110944212990610797208770763399196595191827575370987914141801340618257772197134677927436346326176579956304886061884435204175268625073252293996091779650015479673370414902985400908129371833048774713411439038541112585680512005253054787210830581705089518755163079411660196462278314508424439289327351157363101194694662097489328170698929444353556483247464465548397223280248889207370329342275951178736299490045817701777118361927086357501381293241664279595438648164379261330414816069272668589898887716442103066506222052664606708972579343680685332025194756404221292573266389765272730975016487783254702962072162615579784129746700554290961163960204364654268974648568263745276784766128490380512840018375739895249677633091548856374705909243068531771285868432354009915890848185836300543838143970844289211855380356189126861191721695787553842868627327065641134617936572059359718277037216694333578866565997568897286793208147537883176785384316259398019490247204154804648183079173032427988428326040872208750000649440862636449687575346453589197632322132171593852883403649318407232755678419613821843799866542613990858128912845541102775593782061971873589960384808255655602313025360368265695635015111249135873951897272915708888961215776057608081576202261041210260923777618139413469856579383387107557711399476021816504422767062652843234063372851971604907482071779612961207512017385844094617505736252627599719281151971337325536331214401193911143352477786891619073511229532423829445233025970142167535812383378014261934637151654345116918504176612947658173989255415452112011073172749826425455988577308755700960635739037177027175238517335429386641502166224831411969934737505293731014720222656244064955488201327976193223095348951132564253877514058403910623092214205231072077795279342265960253323622544075665487599038413412826670514560838907062087449145869424953413593004332373187489062272219066981702622490935650429663915781125775582167604765286803109106568018686835272587593691382467565235863534975223550424389313196147321610225433686701675273310166864268961825820899723014980931591046419863727064556664170308834343242311740382919220713500638335957371811023583218553027032402512206591350262457242713525763674991773646554551442522792834836411850802308090734571401021739808578537369480797907609598036783085571245078430248440731354905099106160731209886227233175211319042936730441728935049281320992487138924624876478230042635294934138400105172862142061275212773798633240574202730626889729231172165568153628642405032548755737987133393739841474780520987181201561732848937611962837039156560280771001955217105772147623454194029354970763203860796841666108538822733515213442074893611637939096757994867460644864415595313569401588132445683346979591221218175702889606111298743726306029998652341340116456065704408598083368273344929738481272728805131474405474754649301615453197955485275766604805980644240219849126810177656496331209956163990719326397114391697348042548529806088090926194951277823140410835731598721863958548402651025420266442016731705346226462888095028941286571991061771024486286838494502389119405648509033594369730812074103991176616602721348836330680691763062446490597145312620396984206489260369347486316801927299323183342612006128753513855784975031081486767019373592801913703209862100521585680514530368954740242383873721873953457883911895511714793472519815415812837064659939978771709171927617566986521923786468773131224541897023779137361391593195734767402264042680193599523015290361711111108871676831307031668066487711754389410822096890171871316305126327436212430126152376688058218036805533217310843386406900313623143878861699792157648668857668666903866505206883215188095492110630054924808558087569650628346142446023955895837610613854818592605410617280159565964215674834100885275510360348925806924177556311828749224911129012580810590689196057920099613987559137316439994367626879125440643029167174072427730410396579283796794151563817252999555858065094089370506585758794280055080516289965657105547539167358438716556314234953594147067192125753381038732385322772779917109692397686961752345434743039675496196106407296760163817897725568932793548298003870851814756078876350437868050189831474349285659495072947722747734592869062228916613665557466437105160148537049210518692037007045529643121799344815211972920268270891873513354022491387838126541813728241487637929207831683340985551674835184427821296254058680594702080112826332571951681135129910932828809453228522503011121821482249612433442779135632498046483033697336164344871166463471070330399791644700156606960563227084764216507856401526944428793110990736896236302238994011592827806304416154957589491315430836962012835974787643308726175603718492877683474972388474560438433272040505330863794335045775789548355492732682090625745818709613425130086898840600057327560717187149817901487169645647286974429338734813113791197464831541747115474479090044752281528147623419036315489626801897953612992737259802341660353979798293085667266433983542429827811772919287448142223344116791565337274774739681186957834945422599759043475522665811353274094445911930237634611260111744470663464002457374814899611590390741840128543875565407400740366539934410170306557778055861947668026604456961059381683842016256553628018428914799768995734365744944639887665474784178170363646360599755962001235433285951548849404699794467407454489395902615348018405415478115836579837880675149287323894001601873611922309101226049959613244559506176758439654783672505926323104338899219339966761471111296933895684359485231623854982135589686942173082467201734187895514483316051341649404571314057720762826646777791238410375802153194813039142882393061856989975111810726720736906264594408195758395092761508795193372080433110623885719811527530742671604425837828576687761682290794184173008168664158837493732833719178267061608759759526451000784174115509070597112821477029394646471395188482018143387878445930348284906793792077901134332006594598762668706948022995115187098670598789163219013245705896219061765873579371319197388527034112077274662069552908337586020535357653908344863521725065708630377801325284487496891657115859033369281915806879268574018536144260245215766759040889466273939631683856721579733641556953627431004659096832319399465067864447566881425889537032479032211426261807341449517821494654923639836469595612362844825657965111328342155451181288238570235580629036272420534324171895605291456452900647836905780385875972040848693115175910699812652770501698614008810202405005222872877453793807207170162796679992074907824883056436622232350683714506639708042772641736471311919491174773882741704747801530819246566254083669853898464993430169225481083046553518520459126446756795081965728484170788361357008732735589807846242716962936712925304487580075407849617858387402647471389384164429813612921616527865279286597316991494155581662172335913261972659913365326202653459014360712815930075000331555025337643662768961438043447166736026070881622718278302029937799478857042793126629735554247810695737347109055247128625874689530604087241803233625664943113634197494580060901519666915211116953652010993183662132663260676180464371368951858474179753171853780674347341738922850753919562955629618839374355308424539148871315494162999904013933336428871482345499179891526841142149866973675748927684206118154985961750682216206385616594044185476382553232150857163209792329545622223119557139472871439003216768396377726215994463003603014358766037646067111029995458254913329696168580171755940244224999833562205449797527462112428257337682627230302188594763741701139640565147148180645027102530647054503273596778727031915492784355551215199189313371049005706733343735043937794904904267369392112190678315738913463096188765973604598010320843930834131918006062475349253142719469610421889224827429785577297434011108701306950907729866711812132130401192583711822530588196127323669851601704981251735329674735270335059221769831229505994367438886364372647691169281560297568261112357167089964898256116471574945621868506749745300926497363154240595058737847446156061609538541690005084490151192442034588239842091825250842486938896204741380988778699715432503929093640960006111225565386414431975726261427388374234400132456209068739149339732604531700943429274310163581870252989033053667513829091340689366770366916756033130212720113242310661872841254551462115802234453978943441265802325142069728164540851352269208902084729734694664128303734392195128189987956161084076833781845919082219078857973348739434410000506621309049759052160325329605925890952109308458124845020925940529404892719647342069372306541707793295744932612986683424053301931876909881597376201448629160770953439166192843377564168517302307374937552856516322752442351721482040887632837535669179709388802182918540011176710620414498113175506439865584607506578123631220767714749395659477209243701114362997814371021780617389941199466169125664734490859245610746742999981293471424815294012902028787964457391908413819450842037331498740973176860287196073149845551510647960728618320605366786667468415938072637863120132328380545491116767789125363064452958576074016707873312913696798906552477583860169949447276680747133507982838750536027208509612738839837110972022311275204001089941525758091299312417858972636896610892509943677988948820650146299372904167457483315228783550320151169541931052890358435191842845348764780335498281229173867595837112474633442679260702905082843640122480671736313522243284596469947501879588736027099313657286810107291686265439953461934945643319272718546904704524502767311725618258959472807633805287876039020452064380058854432908239034114368579684943134864752145646708284860090686446334832920446940770632756386620179387855694046530377289215889496462111763593874143143377899051371544923918254212472473326982788785733614616981938760118694760454457098107280139314814935630015657959307622435171129001898952701601427595761284358236149619384766914228383301128335015842722541878854559246714926407731905557730661000952106755453774588927487032807535104533574457514133580973900975832807326576147413477825314964510398651091209886068281006738156788050848882358799181173510129046687738989386771874955637569431349209644387020190989252345543420538565315315472061173212585387575586978034857361331221914541928194020243484680201217420496535403697604637475736719519913781674161986724823276679618254415854578295156256280741182537532153759969637673529000269021610140094382092783247061204096366141874190133252888178613711525811983037117680700058239829003688699058907996374149107853318395650316136588885503457636834967803922192687846410132435629990023965012092134715984238347050699328611253541214556796702453840296539007386256993460512867948189931330944123986021546728648139372952871639712436792866354955197747219601342061472256995982405662456343366385705420440272825966602490151246703401009988687409731288153386525403788861372656966426362627005749346286940209472120160679328550422297893077046512797017041436040687598104453516203783978610563812941581412210748579861854778614003848571816791509961791188665802901023294803098122213542978267281144546320070650225515652938054394835759633233383416748446667820399245231569043120876013758406014036473102305547317793161163166380191823016192063207467378530947814947676682377365531714857931217028925321231107958671674077128362348279380217969871479926471014325765652766519576511920031325690434321543909563925053718883430449884333265773045957895329908379794880209218994949982096641609303124409570361765155983983941084814220557295504897513521415006997305458017558953021278878768425519419349644200661349138700468054131310983163947227262119434900824502234454613348598697404550529759316607806858881558370185630794713341049666866326437711387951273360924881371282778129296874064605836259805164260604059306205412136751013076913294768298578767531607379088133258946584962631189592553298882718829645197773069181781615922217156832140403715418706259070798948845893183271578665251707445325355020317039334690313397287114211715601410593554748783452741224908987277620182217406622195912103182412352161127243072093420862991224177389456956327284587524735055297825547585955285306037726395023736743639309385133618925496114829790867602786171582585036583717719015141023316342681941020127188184771472497059789106933613626836291232501131666939285772879774964337503358517448083302074572684886417333950478375116962230959320566155990354462277690108883380565862375288851314136132686910635833930956564710535926037526006199439457124119792003793425537755638424382458136860116945083831459310422747254735490018897407448248971621533075274999145591842454003539084722005671306525361026276156569042105556112797274389256935515452940173940475800258392845349884286065155129820127081325868663384505097501882482640955853381349869646052017046388797459881022527768587587416519094502077762136304635429060545398389411404216124648708700851623177052098018718972191866736822329354026561299828243822399223455691201605180484354791179311392686351931512606003629132145140228478853748608435699508111342514419984715833856639509788764076261802440855435669407222722628318958800804005395892716370355604977519670544417045798819885848693728008739218113057105473714319071200773901471490131799908140746004622170979745592898216267753591931772718052582437969082814802822602111424681612973959358290204311879615987098218192866166517754973757621835770608536374950299721494932588258771656909613084066943523252476023736432615167198443057228673782431991504560298614122971403378175848520813662805125993188735683568141091382584071723243512389267903996911464523643124030533162046584260499753688029523796249937181220393281363727523334477588372405266851701764980682943181297321477555375534376954249860548174249060719143352533672654906996831938962494873228335905152604576723885196229013486515459514345442137222411032026089255063446902047113768699018243508689634802498548366057742988005213398751462319524019161953613497860724258219671624698340060116882035940614967787270609616303975059938289318629537652827803125658754317911757560358675695326116773038057917612597882231599988787886727014481007779628229034824345028766263788001879125669489272523916849542120405525526327754497001343712276438308958324729840009238967934931889190540608562438529713417507586718279315592080805453791480312509806827901012056689746021925107158162377372874145893826017932426877903445965030969089732465791185871113225891549033119859240442133912549818239789663347600971172372975929535945253541300113618695361871974224387768840625829118810982863949272813050786171121081584782235677253958040849939116305525607170161603424334331943148819385290011846587493924647880398580612320994685848446312596080860069490413240980202911942475239908664780709332553428456789338130330417350439216805788596325804821973170689256388232267570339486044523813379950181564560029163462075668972517662103643285586579974085229723370402761836362682471496926175926795548744130067613555758917497163676695327605267636258901079117343935948975146100452934348249593822184851884035213370344401110629619171007058519494360194640180653163226718597930181669464588090106053307861576445541685794927289227506965309035604891631449628891238582985306220195348413092025115176026612989074599477701873469580584098690783172477660180763634734814647719157380503745740862509263020981544085442590919888032321715905118701850116984290717487107459986828965354104265978788184779142834131974238878152067328620386132907853049573285558347274383149645477388435061417719469133709692495288476672466615314622909104852065898636943831040891552791718816926643740204213385738903566824476421431823357406553446898883667014003098285795857239391199222085194193522029030822667033862496465172847320899335823046078850959557140928723829549819825572346161334745202526486760608795618352270578274106650789694316169372882743496233472680107609775671082334532722145584559332851951371084705555947830027681787627864126661283442297209570500567129008537379387253780929763367255164553697581928349123215464993586244043694104164197670723547017293766733962209743005407251660189995169147162618195007521252406206209792262860204199404482710694185130219706899323276303051935164500727517559645939439557373736924095963687130320755715164998709885484120104260752420937138662317761224093221029277302316996153925581259042448546201221588593626395799048728302036532261075598390942775863237877761055352822094416931350144523298031337687714612689850355557099901475671544349725496929989771380463363033940507387902020566044845443161621429100724612206103207008573827646396049524836211830569769411817880177163081751302637099813646424317512217129433681532830101032537331965165144851254128566531880034225029156599659776751855191522443685315468718659193242352954262498339829252478850780910291258317077469980937861071206037833975833123935144392538422180386360832759085262353627750430237669464408184415440712274435438522464963740848628865461818286792288767526772333774598028148106907252659883817609958914309085044897053606600008039083573819264749415483652350453319265688220128667140719223631895519675353029369375750355276907170357184132394907172670113089423095777513583160960805259312893221029874577046290740517229017812901067407882972694031195645471625232192177363247588143297947372284330254657457250915588527094890949881028423502912439456771880705325522369598669552604697495122964929492931251940456656519093034976710907238697909645534443673426176188973617175668266651185801744917080934934602692299725420633439494624023062977323773635068653309433532268401273976952107628026072823330617660510378671015915884771042220459318810943649301117744974889681800319332316789567797850494113481208382335445420236375590237968979066811124193609273526874665764036887921234875113163075611702072411116003316185639945383164601098425206364148800935363085009609825722762592091855714574504136507818677634863042762047843840535392924868289968313731456184692962138138674263331647666891850357365054362719515079362036596372472541164705277694597905684371049884347899175363868528043304030380091893452868338400863669453809784297405347189475258943683414929176417282297384213208312238334656408684419422960044932698273202444078463341199784543855761836765236346330334583276600749874320300327069465934941200026292073079682350492491136048915327753208807091689613781313304004645098932551870989184492772485491918739481018186916509259233861492391372400623429026647716854383923681624448927421976815694049685981261629355224292638808563560265771330780623004713438639244269157874141879690380695117949863203088887007208518000286068757298687121991841856966670528499777708647352435304013106195034578235727136844194036769197759564680137754446796495867920403846531598188791165543223420841365912272122049629049070372625458776065779802408543301085427174857898774275023627099371486552178094707452893559544127219915694255185733615998708968432040757390340705004353577482512525718705901806849497313966167590703224983408451365429120154927170462982593963568654209462351318998799966562204154803175481942837563583795458527581272862297029111888952656315575930763678566810809694510178871761704159172042605315035402213038957188918195958614841308506029411030593228185283498933461771475738048283576374802037358260119568075669041880005581644113485168432266057258587017855215168773234758823554289164932472837585527133605345148914403277811031561568165675308929993144424537341404423188994974248401852913677680699032621676290379425945492755683909633653416606028520519316938598988808253190128823491658255623306593446980893047576216314684638596588410826498788513130247915393870458137851822562845828400129449918337953643252610777884671822840227562694046729446302276804897441670566394626249192583019032505214342294592646642978436266297476608358307273771344560175875769121475975844684927039346571658784363237329671324901408040538701241907268212377564301979689587277052557418011536322421925084662844054218622461699875762438499038053626459673244126769634831765827749648605171259425282380088376350119637943637752417733398747820862152193323610723667713358525886814209140118861999866754915326260262622412160803714321776650912671817315777481715819733130320744504881046446662820532564554775589498628505867783129707063726133632975677363106509291080107999277008172139201386951944555974855759474760515075920077028654052251424591900136296650155489674855300484127300806555175549897682630793311757868482887140070099209432612114522760209734014725155740788757295406333758932629872803025191535467998517206340437511062596589364928490657487311604641184883400931243328632265048721051289187814128639646798329290692723702950538268700696149304437357288022409469699950562248656059412263030583468543048400868993353015603988871884926768729632669686402987603944205685344681677811378819339573004991078096569167657065962244699717680326813205705646675897443025041682863060119207151309866265565803510770599056569269719960153091080980529602919421691650510885560791983997340858602146555501681826046679503609991645453874124514774445611588584083967418666100772567588091320864777797360559391020706267251265767639690455550009598414075339833897879552469921762683805504676038934602760594528034953946300005460373656375388390730199576638526823530609412885558586385326061698440290639156444566073578568417133179332361127269092740454833285776159909562107849441329511659876575412062906305328184818469920412552839091059065270464725625826692693361199818434311850713221348697101508598781402198128702407336798480116395154168261224631923811387640408953545665794714927364192888676174973078231219439848298396931192324950124043980728546330410282902107804594149051123586257319222013807823849193052048397109532719636504295815890206726284585349969268546650338895206949370295436734170872625649841492298517338202478085881732487867454760529185686851423973828274236326145739311792700325798747216025193922320992197797810417817753172449464734233221313711833484917547701673876499995667480415036165488182853631289551112794017843647143431274292336832883934442650606338994191818943337011523026090478788638487428782559909225360491537570590715051265319129124050885155531648923490852325272010054347404031380725681095372765195941800119916712822497801172767167103926831213368193887957872974369032659935782232512606758051848708350111207343748403765940531446054200233848175645472673833776778526745000309353492956912439058027079680935028566876201244161043439189340237057534375291970476818681658361827554122589391754351837143442705339380946006744878401990673501617677627106893724828280113131230554543045799040558312721681187594628301805726708903118679078881648668662012469354310600600011803507639541614090250335217804585132592738274939797826569916351574605489473922009884714316404455254497184727565703510286425559197836250155868391208165703854296504270727721916350539523294760473500022353376371954433404328471097685518353742732973522295657568774782683321687970972716519614488735356829268069704714514257945738285906895035226656264214411027693276712439263676969616319234915649268088805584086930649385387986973505743932250261524206026680397904019542270897243860715006812354346079804805747718741152901404411328519145735568600825633507560942693361505499572050937182211323488670654030039353132351732083384222871873067466696460243936764302752768688434794064976879269398978118757230717067671504594301847601777591304627720689915930676271169004168053461869379395832325713142904316946085431345931067057462308513729509853993015252215495839292985000750162191729555851164545638640139496615886994533157775801686878885894522213773534880540373665238901311413604485975293741083035958495399082080205129689326957409254914708230915744441556452042096528479128373818278075673709673490320322455332103686202695905966762898279052943639593347703594895855290003158243263516198282295398643435395584434428227212217186507611633291800825543486602272961477784140472273344585895650967398250732487495615137521473310921803289167014260092486132855277921040774420622020061239750358177009289247171286031650710959391752151168145188118175637523836244026367909392449954352386151548846823630705040219651472863301251064334850986868500783962607664774141597828401162467694927849447400659688761944680309432625267900539101206556915086835383355595263785915996284224446634266503167912316745227940170941945671218408717551872705594501507928945799048637554874571506018173532788252288498677903537504972057382429198391391584746801724902700722001172009817100979379090353817676950125435411751244816623291802788616838323780696351428209146723410683131527071575294105252713300785139569077445117467554907632445496689122407867745287468914467862926308539757486232233815240273434595745105023280257504893939832339244897569238029472427209348093097666221932144690825385470575587060123218636276335955006161825457811242384691828343097965218092055207050783438261417602500534475167665388753007684197395187236179128160604238063805419216138559060470258603134000059528273500872186978896215925094776791524117511035540163912592975682593641019749749492691830570205181817115847276227976699895261300203313420251921407238769346988111366941883890171720302059548112412017162347924847276726696036609513487093629094292854590636825059762559494897501641284845165397002596881749977097546295579722940928178101452004195114004505947139940740504054858831787415520714829882950059607899156523777860122885722749051975160891310500648059063354831783035319478393843267927376626149797717524605195777015303042512993431502585613956880425222002772645132085709135139359789291322944859917629284247095503272485588948479772412712457985960803494760648136669344551129594371369719130369001990984032851255317863103003370656825380616654231665562415695519964737682512595384826532314393039119149406555525282847781841289212121158517391119719877379606419840389817540377920743340124880008828488331543380811879768243959464922519928447851649282523275475545729749827488841164948763560664235420134107659629395656855338776938380422724404013587066884932509564278995762967004379745105391057154109814848761356125968732956595518242214770548486135604354609484828567724411530618304915982134068738324755801162578197939333826821012768131880893008842568034382218241553766747378858912125701671627515539193246995376040159578644568206111717774068008934353210416758144928007951202554307619725362966911881621373770058021659857316497387073406026476434091553608748738652669254544729047051007593143127617271655544702979461010085353471429650405190829232645475414821926333005167791981640167816222709616614851182414402747901914145829918447067776439311777786266016826075517063072629811506160108589244762216101985310513966070252359093742576764584925191396807604805366849090920842897843475793243580435767876432929628231336485727755738803845067429952620326997317672175755305520115230327895269861892195029777422422293468404565902135851184225449549513394826076120081342383036831248843335028570708786077395964362794510797938856433061599756291614483814566454851749127092461332510350197847880728513069576727998434968265872515544814830753699183371924358706075262163082324565176295207453241702238867404332575788728244480455483277251321587417135271249876971945236440890310523773821862326771543152822965329288325855474071916165298979681475834229346514601320699832583230281845479079202859376080204984456009833254964769265683278815564454280685062055337089427358037650464080693789315056150931068857842152589549997942143355218325029697079123463348210797820712964403288720760910435810877696899781829881719006998672482765263183362693738743569735071898224476643093829905266610370012758968821199028942053151086779169215234093277876622795911911115476948986756861464877457333176405931992891871567470154097808810211568310205829780105732727430992548048578461854634726702612833357108041767181292210114487925251179422877945174578090272466999811357997476942152022283524126435497566917469509105329073446386489597163686687578336107312285470806207961295233794781503309255911277625666102426144735895388783313669049994424937380904018723122642671137521319441094866405510621436231659016691877440668830372277119004244265562602219131591987404368087332077910679389030848607077149790020912855720374206731265591531727655333784150060150885420450770807567319300057312466075907046569948846034065020600663155466583971035080763297747914199413893995300666165253255123050303861816722519499059197812831246726247588938264388648731244566140724174878971981451545359332373637900474834055768594933374256991653704603768086778182454522280356711877985649440714909809179568205329128491262772924437080436277491149656054951480043584190420915866342661278833631908326737710247518597581034343688677908844750919103256195293771200594286052471203224963823978255476108068615797629119699037168996868463293132733554925937857213975210408702675468796499195258661470099453858652197869365680811614205528607065065655431151103425047281049319591418987717712557607386311441687763045932697745583843962876174911241590901883481921903060738854532580696805414011603683603398314087697145262863777447317011738168179127159901393026468549501737558617583187187011599543265198102474556638728437910480389413353422151911701296539799664692342784001811739335474636249072659104427810665724094735796992729159921198476047600618607583777818811093108069698257371299498001657213069183329862424992710355742083645867035008115134220912623279310847583909777482695561547453556461748712693223903665990238078558741147736904619464980463205386123930132768634180526656082663335867533029877344557427647178105248111590475522555376817396947442228721429337960616234798764404644404026655907075665477972082928071007678978309835593446962987807178602393025574405844569583980489325751273011747294066417402255586804625072681896326148084320077912558379824804132349342537787718828873104840321342481600890363580044908928306926204259923762149740607064855267394756465877067485086541015056481338259080749605210023488413750217836012452027543634337784065953267516163693722690162239382798215885967897728528075456700021666891818715684696261780010296973054710878523405767506636318828575871680404444133256374219021418399348317908969984634565193676484038809654079155321768834427623058475527500039935010906334529936785313810263787062434652332381125585354217277799188190927192772559974272421260632945070472738154638688903725666040771875516932226714300124619718889628746820479973652896387958450398570476666068915050813223167608405371604097192484703772423003440837034494463509554970908445411877618241894306090836106722457869521874680250905263795404886752656501013461250939285160413659934410231746337939215038962563509385775713906174412373693985422531853228314075296743892952620493532256144349490403044078124246157730553994867011669358715997980599846923103953658499639773998306057959773419352477717160601362143682399225396235959813374109834192190335934796823075675406791692423267146022215465299586027205435380695454274582988639283112093566380955352850512556478484020756085908848465628825280756215512173353053877937210917661207642062934985554129199331241233347000785867882969290014984978889369854484659287694917374879796998659841014592364116740245569422177243065343171186642988239875414754801304176056334198145143896117386778507065578869536875263183550478967048165559318133751195023674101741083831298362802596731285543061893041869280968781619799037393411869637263937065418167168714329057571695847572539579539497857983161350041522054036737276993725966979585449735839712701020335731766645414727757348175302896936952977525859121626212320026794997027540653226797160559464313267595294594473201453190095967665401243061928073502480241355291741880554106351536491856386510570449230965490609668831922975874806067887522365793040148808086094908102228026703489004503260459827851842653169393348885372500659037635361159793257600792497973811980354620608522066098578326230182156388880111932318984861137886967818185572022548540020189000508589288768377060968304002472422700123140780638707812328077132775777721584382143796401235140861391626847534012901223990736809328779220622715796350001519454758031031130587129832296762265546741317454444723506248561001135846355263576917088530324926177460441836303077636792480594227881754166988027470057938118742411550182257165388913270751226873170482164221033927325523923718399707272591374298020103473496198134851221110427274488705138872161557211690757967385936653159793548350918980483905643217136845645556854417959022820751621969310630911446123270139127606315172371585861330030358139828724463901147928135144226323155977013005059122750509392201154095205269263509660495238214820250807579884543741257273034820040626183961433312647531466764995010948061657717289436355452456998008112334721896910280516843213816904791896190473641486174181331077668849742120583013826245870067155063498778256624139812122832561356443110208947390838062278831929954230820529034379766655358922200152522665473525087071669137507849268786500133898887490161512280160848481006819777868477840679763668929812464163586807657614520562103258899998706488546392607810942086736468438987624172835890342606083346506788809110476095599307236571404075265082902030772344726979021081753946593200454495568858879183626584467225776133627549435044159621217171730095418015899556849604060143660425741997649197564646960886758833317880700615692127788681776759306075857390572926439913704601468475231334702253583083466156921857981277777420262564393989226882430645968512183128327459903674938022642169593118235345814898694535576214594790696983114698133759036466317776313610091813161357834695085542036971530682948262254036399727254324522850194067127621597879246621137428881270515685670551906612976788567578724857366981337443602387204148638518960292013164276742172781629000420601507973933952438285046881478100233044495150909469514774145061768779686306325761868710898938102421205793006958167245444994170244928379771503843049295430166755019271540738873815158005440651196901026932752484543647898530787963148325661198033792426492613628204133896104563920995992240998398375584237939238267841007738480871932252547459425587839139804763564898746099694962682896485332834328415500042461744936635718518702539365781007489863548977680386264771011292995791312659353678030938105933967189533183872195647400666371994783005148610408727645060157786743941516677539020757939558008954105940094026074010841663006235891157372911391197534745759373240942666254980617592330060855560922677472261084641922403264092125579233149271978414666453909512942605557238215404682633609139847963175611796784719087262555844498588392886077617329247797084123540167670059768676711470927862939512675050225364086011161937983912741653092922976065146852195328453267792664998780058489204104607891328471495828119069330720301033843902309503378473106578744054042672716713543743434092914576657940569412302374536711086004287767118625491487998415590136141718058750036258863402372060868665905739102775278127734363702562677281767554563282944854708347876213543938490271039757540160526295870208598282659395572472973927817033055487568769225703714525453856886030653046450212601201684826902326756275126712625609072518375507838872496359293158715670143637331438403700585378250225499761701189195522586592396448954553624027739650264277380602447029240028462654066134341761224794908711334074196966717762325259629646332255349708709007729112941908592801799774650120901561343813652173666616900671603185188500605549782556493436605148663166199330559959990373038677699264272757038797151747039442053741182181497052859904192329118372275617736869018009906250834997041141853815970527465060834197070378592483856794699293599434990238217883067282752229623320158540829976192843734518086701405125687316525455816706457189690803621227020955354630102146494283769236114437754403111087043416582074955857975306660808936765374552352945082865790324881152081089487355806988703496907002765130039587449398374551624253514830595812158499248148550188795795323545201594545045157301280193595150315637992466076018963426516258368334426930024359591196074230300660517732835520991439070941461664387390619297382920641724271696307334682804139462970972829486803121542818884195559107095770311135024820856742346282482962427866104456212254429459897280964426584379667764836864439154390288418536468935335180590044161878538922881084125515778802261699099411747595971550701861261905116258931920580782668044661357346901729421215110807167673425850332340258246280611918474555956975199865307604314279772958770466921427131466093510714660887737082046224660023177449621891635558077454121565517114617878164544458973638560141572718829484696475292005855285947879847773771593357578923370660238385552370346848909365274978300072614650732540404546615166169964335688206915577603770723693335148486443473989135219675006694782922590291299159438604547396657590139016463689038220853048543022289950797385817797981417830606851932831317120888544616693160814181389384568318939168050047886752890902100994777729073636832149701846869668120763275810959980715728178502173487571253507715923248020886755791272323649968325571073820457886703730377341424330401147443248760372235074000449011191370144688491551188903075636950693549576928699626362428456062404437572355237530442898848609908489790191328644680118420997579182909363046620514599221106131236603739476339553831964410183641336890692723457160708263540244990787247875656525210443868934550841143495839601555708008503482891536128207123885280336078406472372781723031658313080024178713895614498804236478532464329915469483728047244618181766619811746003628349219188977810704523831976055663634786098263035520331852097303076968343718585245254955449120848742216437247081888865370570701588082301238665175826301254638405171847244577874985806600696899975267193438054051783592233735173300363091372437734701633543710528259408476454233559561451181556233643908145309570470293769476423988255174147977669781067718027421809896689907613002311055579061419295843077175667485078230452257066349297949522303330907578831175533035475172603135653010781286747280775817966526406964580577369312479973934578779274948162345970557816805625811496861226939533678532959443564549264437190087591334048042499864279000445620050297861115379096289336233314162155349159945909207912982392076588224663732623374716375470512529279127393982497873847337118213785998213909008706820277919130323745347272724927183208133154519084618684846994872302927296086708743996497531255828857767927928591021190827897122391009579966055684366133367116999091715828308988851725038957579774868775394687253220592805862865893003644230129733569318096180511260090045313665631855109563236884417883671161020167050637716174408836431231152183273092870368882305207880729641487743097612278447183261805611348040911959399380426841607286214845904868270718316342590282464961958027440529707294231183634360071447198797487713292279554689201152074584291855159025384418187810415615570749141482354128727308302124405657287676433571611932044471319107110562817978244166724655584031224335903078234143752216677246317386689642117032321181070119865775933738570882092447980862868618416595891914019378595309668994734465432558616960004363995990161977654975400914107426552065927213850195586733975421245666076299555304762945897115916201843273348794591028929617372999345802312585581329672249212960551083046654703339014890161244714091958506251911006217906435912321303367356260496384802125772711655410831067523068044054161121158377432165579571642138435055971025354262272984694795174836677207702021864510918417812109482314070826500762592015000956873435024967965251085785945642855020309590845018292301794748985816941362113106868682133325393447016651698538775608806978289370687444723369912903471972078912947774714476471462909977951414693838379165391161636151564050708291651156609680207518951609916416215851563868424399497806979242792313614820791185908079519371795072272300771483374459351793388411112836908749694700470666132519024795475548517039148124733438723139018924138109189968781704193964666079396236397297927705275726562063258530554287693270817354686412560911555333038251404149363244095081256962334102259531302612024369436328846568417171232653985334794012464181351112206550078640885944847695456270800103865161774269394998213710734542165651590388922987748359194964332600139305425641194836870070330489096578116663174419824059027449356622213742852085138534642089441688589988992280691278023392388641140536952576591274513445861472354976070794668188560852958542918000528307305305693664488288812972979977981414914081486679178685106707246079331254078389395923215112060049027471729378464321949081809417351656832941272580773247210127734304397009559288875987166619874232690876101668380324477360120460772505191943094513014984922839407719595270536193034968033724276593519096870801671548500904449926663376772927441139182968656463142737432068264201572115093913176407897502034374533687070015182552045637804456045578973985151278280220854217339975413822797394765603784586856582874760675270118910219711028432797272917998491142128848754096496327717239689656643013963303712818883064872627384164973648519788309411619060103029823812603538418749322320636159178787182820496729379101336199701745922446900803148200961985814336377126400958309640621205919264684896003385148820166690625789653859712511394996776769885971364224178296819587292281754399559361725144509788953842630877379884543714627072199997791050356880493450445797495302752228254266145574280920377788512436698252950079199698087617709050966989305431371793078666159418486091250260173075379057507117580419453109980423990579580167169026888972373657871716594345930727016608168770170807729819213151588086703745907726467437596207119621759331796788295899809285128854242069649450372070806621761166254127993010135194215980049906729641463982273110686098617211760347880335796885639502993301569008678598866618418829742870666520225133144627354207718080290262899274806963927103847360478191231853023501202962349395874568378700445621030938295926124610178144525264883573383307874361293899397579689878456495154108078312486849507000218148492775634573696569041246888888344493624499615017319928851894403214638461878266585154321203491208569465195479545857445067392784016198449758994372692112851816504936173020570554822274301160200982371470615683915991227457802853006157625833080810611895137556568776262969176736136289414584905411185641463435146447866896643705237514559135998779670547313499732260269660128094797533818605150096444237880128238332409104917750114691021711703748785904360361292742048996442145242066971620500697933224292423323358945916995778874661925522553353940405065956374187568782733037624008426374739586110615825779226605986895783434429970204548058976148619607096652017756594422486067401088015882041036291280046422787653906417232927520588086432783218250673229542738255647090092089428807011586395795500826066821581639176695064285251243975269368751559839951049105014472996099331536877150763481315867204966798978682939302234567353738112399331399262961053176841387300890918664525553863371968945420210920213596692880222056568033613903901283524584253416246072351516359686634606824089580712245451063997800470426965344514576692252105012778048043565186073032940577924766079425080017625415900514393291294650213260160637338590466293432744849271945258011729826885120756552040591844890445867553196929275973175512376145883559358179015726302935948883511706299741643981148684177974987883838796054375919631127343582247162859043389675905150492261546835998944121468062936912930357026713124377688478201618685578254857688931686828751978067783361492876837983362332665583328879592884870608958470076803331978898250105265896877159520110344856984103424421416514924751217118355888172993458979127821998184997395771336702266803783646160123091234899925027012550500056444079709562477156987098471369925782648285390561790331241536964603115289668749187963689557076066281617029902252396759548228146946182645806958758212488943383080691383421272715978838410687239986509428687133786057301110050180559688767407187803711077372550770923927734814808661559102864930270012754071768142943616697878368495839297974764220487033180012213638297455095941990724071853447630493760693860332570703915297864266416192575615453260296995849525076964905010034378324442920672047841705742651623063637687093602222104546918276088570389405824012682916093894315493671260015543429809644578116241705838242876124057694256106151732333278886226187380205981771457995647518942783936381610913916046139314036105350927863147753799712439964583702470121927243745268386505568995183051069925666825194443268654428031789342188295079272540885856182440052549597870634480335650176469719887797303365252116099935298300457294125374417959412565555201174491165917143538219752373299159149005882156991498652790279759306159989197509415196935336566925463989809385050948387323055652142901639014430474669386469381250743235990400809034565163621613992350697171691116365536942526197472408201380862611516545156492598810187510511009028796487406982236670585831104650416424941130817036323155471532511504991361503980399289596704923156656094009117109550266812810707300034125795618339775618394991047721912722037751399156623415803214309907813158310628554289628024163437193415467190023202832442302242291892297986245602203470381304836236786643427272442403475483368880400384336752492603093310533413641310176345126935830027574616964489487307116299958060839211081584010099924263155423973265600249117388747123083751404591754005541344047089460336186396122674790317452641413119943241443571012130362562771111852528797563542824137369965436163749042825206826942148545983228293969489964493179273805841896411749376237992949908216534469249164232647280525100086326301621777986887799528019537144017183169978456023072611061997980358466089192731010206241443055522294765940941858478034211658730043403710529474246211899266530230437442375476090938498892578917295806910188770617815402296330753860349539255978497495606499310696512234348841892408561264263922412967718591338501706744851669809583257957563715676948699570300576837084630071490673748537365901156055196742856815122046948934459673125191995755711101455347345351454707645544063913237716877258588518922086879575399476056894906310291749359208138233425343762076230149634602137184674574808754709922667555980111562557548484234455524406327114701056891898187700723275230687230151936957513172151737901143318759401131923559069768793650144520720023794119168871065298995882974275279601926947653506225342827219931434687297818099202490017718175078747144866125043564522822021519459547779662314695832787724451307249311646677194472495920140042613005766989940168384252884633538294590804584777709594295893562222242554627871851947694791228804421340777682372230585996740444658938882589583039034909300973955316606170440003114176316178156891310179536352186794677757704823981938586754339197635649932806637065130757989577112898203286776310522209744056011867490341363065462707228056627323655420667806322799981537627045346577045529959020558780279082560301669779649138333086410078627792981408680757367860438093682910797218257544181689385193303095537403430662727225900679735557118382917240373861783579779965986731945908638308834238954144126688413192774495120516110061878000134699490554636286905689478031461056793275149977539942882132171815417759330842042889834516946215876874578667154981422992654292580194858078518896461592910731946478446933748387793087854728285994459996655822792243046498668124268711826308238544161426083637402398933096813500472753505303498187447991817824954580745534824338358869399496246055187570681154968311157816143023655570749569513671912406727576644486649937487311160320110853661493374499743949093240043278259905624200633006322125839349573235645437084406097986424831606579280303691577672760627556928099848804753163109415151050137146496024725244056300234487865567377784909739306897964739126175764453946568641649140013838900194210793044469972720547127756289165481259897187897695376186804215373384880307750165763832019097026052135122399184498245755470570519013366089485015987534921154676375937561979685278946104062607908571393842406228842653596394439377081901093580565762208819047942847783274109082278883930688355594087774790019988739096323568407920650502742382437423862438887207585113707516333352699777817125220779543938757849286902382257078809083785552969176919669412760465922076671591420962753013710210044769117890934585390130416928696475142481490089780234551184529342336716058568906924833222576455973728860179903989250411785969147229238456537731444323161109843525665969161241001452427600915779012660042988868384053018949591453979882880360614578611294015682405822121676429740870717398394671944925582176813784768797185522808730514631863810669890717040495273916626762279193063622302772450248230314420140932587249599415640211901808648920259133382392038690089053995472560738392637588637894370689600027493240524984976231342474470437964771411090468387399097463630888084257516983721499728016734596024663466765089922664397442984784865501573343465239577090691418019466285555044744863897242287508830944857200120330095775379486585992185185108920770440805662552440934046362833382984250353275689971957770968091306728419404979564231709193014167754144863726567025506230904187624642123079591827274416217476589307387586821169705986807468984989698627532197612305682029448652161564949881268327805294118222161875640199055273548681892820707838867512416396534447074440680996522744575052466251658286008089548992941279867171176892774754784383002410791118913232317904509866301363749900067729040984836384971072527424140186147537799105071629663573482593956791629084082829120712245993305125670431940575173596426654961393605137219929590766041604293052489486822444536567480417521851546685173329118811889952726479433158325635580254784735496126209255659447233416319487587001304324036660307873100742006437103346754875904483129003821962180533587480149113639060841391168542103246442665087271597509776324717166976317253472679358513058471114916749948876378361318830758113046664134005984666402384865962802296873809835122956955110246889175808634961748096529736934539600537485771499439834126715209436482074549901207570531763253545091550084444444544653052003166843822232587094630890587897428374374016292922925157495774996911508635715427079434666037862368893757718542754585705014649300664456029467742701281491187174804446321255555214069940193627258438538243318039144421561682985545286605098575913914405804275213599451683000635295537958956690688201318166735161533814888867835899927665339626065343822604211556366735496428959407302715190022916417719272224983446449032915688469795414423617802197090442949898773119244729459115093269298700940042419695309297839110537316317324953109125893036228022366625912476827343791170979371070972280153920050931519062495087700717182357065673933385744732017616443721172263699212707946584038134405418849953982892937823124393793030146564241595819895779551292760178287636273842115989748314659951666045174516803319752390495981852408250975638941922964087837023388332068430932469921171036223959722478259189027388262460186813077173153447294788276223155699775473170752075297677955546117915578680559894921839374719282763667188022925442489988311373591572490053827527635442412153226700336092798072825840248638899820267080677761802315670529356868191945527738124208967091827579579484982277156050820294910933161586789198280023820534271108336336502501115588248216301988066834817655918826623264713479016190502417129805615935066969264306921358261818433680373445900784342899816814950371299378552425094605348183702291417230604009653720125182153222924653728884128009619392563523027144796198456510227398710654583353990359133472236242590211937121676371740605208484916365001971642570254478485294100043569976479237461935442683866433572818976099421296915259774996611566816868858847384527367132094230987637301943966689630469637605420418492473003838035218377901798442496171065081364187033109850823589703496261856293453449041109999056713025597222285918186138415250782084573397195205002236898110957360547666121103357801033446244300644500637486149807265926183014463168977871594773704121102472158741746046031076073508906635828612409996834532690709760873860299100653437809355854901092035864865339776934795509037615804919971357419516433002988313325343581809777374317790316383186975372818784701845374133301965223257967589411750730936000279821431092917727584604001020687722491225585011132157320665892487040374346705891586623617763369278252035963273925919458619394873794612637584271700192178210077725634151654195163837838712836299482101339441512513120474625181525279586078421139973107255987303869195646693590762210400128170830005436112264965749467152791613512436712259927956986051358279388878914749835351766161150935257803527378362721005010419627709230551612295567919427164113196988869743110463021096024479881017702180991013410416847770169416942048737113557469883099836802147035315626247732179086720225684374269912897795234959141678930457433348707954096806946820364993922418267722541738266053317833618334612835996632641553184404489896480028680500474376999718985255856610028679161075270404783860895978972148869025642942141888930589992698666167556848720484903201323999123248542635563872062200995557501983909742412099186599183119008314151832880844358845497461698167426304939985567648064894741428608739674554842479742398775172024006820544805572804514499732711238101261741535165993671568850347772801497285053136660132220130749761605134444348313400333124613815847725201178229050917852223030876430531008538162900363925067435094404965329719986362243967359123621152245396590993258534382537056843252867600256770917800769213817739399034115278410257089162927809588564787416145596562667618274647138517383550438708342756958722244929765958443721777086712003664168472621254023836385185292221366564950155010899814343235573376761642275308739120095434092954060769530030674590916873003858397149513348054616800962574279242823527606570313982173954385181237485255721843187730164968592335655220457024751730431035443229508322339860429058090433951976577024635833652601019198614412020718402871731456323320567511117902803623546064249888529943581273520246028180688695511842437235452564495931092806671105410826292285865320760501232873558663193996821768312306781148694534883193432294236768381514716913575583618897934171984973997571665789751371749271202943862254515681401481808328015370146421767263912287092522429867994288561043653331775263650881939074635095970008179722585375334448644968433210563092203400578856535552568119318394128036488146316949612750061070515448605671459275123530930373929195132015994422309502877315686771387643892751524542248333860103170607872891468277808271530430379198047129698530752096631084106250163536159031470809839312781335298368286687791542140415490074876285558937554459805387012943964825057230496357648831953994459265825937005706632343365202157073955693757856311867965375506758128599828898084875887980001258573215734710427375983132405338243636193199459204696894030701773839190907996628145697647071554490882750660262410034582985172359397040720895862910972265222698041530760874680850930031988323735461093708966696881564943695104348379163395762820037922242647615346633869788307191220684216508495813631065461081767625437480817763065362703586946097968939609020237674329141032772074714068423847103619171017611555927555363991647173943690982947121132816247789209607617921578999464197684163866086372388127300556255982423950854445195711482788606546286995513143862330147960069720451342361786208726466761483661348581348312636704497697529853820398651312330991468595388228632235194011043805673541376570925732024737486689349054504577463459036932767707834866931779964378598248684669150739328488362713736890696068964449545706359219182718158368789610008151469949260492085786760547141736880812941799129296258691715015983542371858798049390640561178343784651803118214205935353299221759897381027053587620479372535728514175539360986345312741489676196961992955361997293450052349586988190009999068337024852969003942587851465572132125125563100303776481911040159978311578905743917839487300169343247767198972841235479676830254991944696274701688714983628730339531461276168962938583567149209521760744090805432188945157305224169975131226391140114864980196601225506148339530722881607509835893724611320469899389733258021131876782863770438791306121959852801761514763051768282975175030762153143580561674377649590503013067646594485728280645776264948519307986132075493773861855874771154503488934316402800894330554583312427233956913591621255713004839084910441452613218359021975781091240257279922637680907621272145141505148943966109243050446661072581482007032115713879499022862521958139863357614906406437122070390622760437938405775236430544718329304501514459179649957392674826114062752717704487235727282101219008446863082460934540839169082325359774683042872675977373142976061387303068504668067317253749338035918752901107083673425437761555346289637894868277917460623724170811281531418972806130481022002905965417107649805344459765049844282769396016218943790466278105568036516172369819594151325511543478398588142109217566604441983554118906746498087913984813908109049423206978441398895681936523631185090105431023939830689976784926303040645264189863749944074996388456589234432198692850539725012439659831691401166264176802503420408799892461346203166750150609386271341902684413406984745620563128349893967499326521707201625630539546516705910675398342367500280005658896980017147566456798741226689009467602361800222677358892279721489933973525670493047472981497554856410728474839922134572021650952374406931648080524374545633764327655232318661024701433979869955179637298997723939092221108763671473993952370718822021007357028363215005479167918903423953096752600909852745905132116311033800942336856290063641630267925406121914223579117757184260603931819365207369182288992649725469478901641981752534370141367385371519123642649751944275847472848072751891069761637729155954112497973832982727820565453556680113586773075806224810839670640459099520974751978885649458306137451740667202245554004405172778404685306363115946082850067978559041772548628679219982159536872391057101426445835095114068600227634272436860141085504680159347742899474546581505702771472303453304001938869659868238078682913919464113344251157700902253452602518272265027255041565052966060809184072959527729591954003723604008170752336161845980796066590684363370127447344845773294090134517651929454646804362561120001226106930330356247239092959232862802868375852020955320963696824809600449878302837965279828856788946958071143569384493590625808267636875621355180595012241390229778899248628569922923319413286698880247918516265615990111218392137097985706071424933262606989180430912417053646440800589043944848455149942462569229199262024053473647212375075297252834675043901151249949646147561571028434739827373745679150663385477739970540579875870813069133612377663947595993790924076596769448323298632420375189013870992502233256550859993800954833738997322734423260921413732312520438876316536158884570753923535747353293625937912059821961808097900293929797225984416784265299855006333604983645549316757587023047287894213526252035306146302708038596753222841510147866099654204965384794938610053204720585562267749173751907142984705561154801464476893314447104468314995221473947156870671422677911017174973907915105360638077062315324040706426818775392600089271006948281649989668331002443955734163973579027340337014993112024800357236181374715149293647316960992641476071061496502095510201075499319343716902800410033148330622721613598713399771229613769480850685500166636868253758915825742709600764626017256082802886321555695885547708232095192801246097856178996387565630464279163432820005876329195412479098327525333313441953157184060896429925736145498694248889846593493146067160616242068562991909794998543557502650445485529807892081842892375550073186403916846668994053378759228121048141980590504673864292350081671580068325042992555546078502012517740705440881022304340995891140127104431138340541936514249256673513677521031996867994122142839957747255419099844244508052079951779157033384315704333393717223859799599764643691144319877029410716296622517672072122384843187063949821373406628470517600599565920281097962049946270353690605711973610825843823115675810736094793840868014328591694078143733048531670726036223503691690838890444974876930620942892927386980030059370052967233639147971891271079634534570912427050709664709160505556088969458326096377418402383573755309485308515970343659829885293622484274641108136703988090215178922861616678034144484533676206055759439033611317196519341361383610469958153060378903971663341290602546707431650599523489720305161764852012166675856837607195221420383269077524574159273361135993105281983951302970856990706127283061958538230537643959517264174905674574994749945887197710273811687848469948382962023716076838618124029415366455275235242345234093014557535042420970738585669228721959092743333181304117634191585339416010338829925263564105515280706812221801063995832554779268087514153896988891361020450639996209456046080556393871992111764817846236619106352546454694956249149506020485121148455494595106601605399758540689659741651123427569935207767502093539012155980574311762244643569118908383996927947834047380503851632895885640173847544230011155041600465199056901998596532825531566263927456599451543300203582894603217733612582951218383154198380920931432974923669878527882961403084615097988640881458998513098460123476662300286555828384875868875873512437303005695830124469030332071054055033925879316582106624898481910707928970165170936400008035515410729449602934638775309819885927857742232911951894677960776546652743461233390735118895317603642491227775883297612370643160525323811287827324425138048718769934580530827688506178993189128123348011693169850425907927487463349009998108854266219415260781505024216981381651551544856721601011083941244356059450307536766481031151997998493860451149550950908022224720338875799956620854110799853314236073730943511079931493565891494012585458284594445895142402264371215423046771510327737168706407852289336946606290552139187988623740729724714770107062106688651969860961878445900265104169893526893894050671766145668090797449878891845183850184594021189685713760059575636752947069219869614620852655188120127165506892395377465478266317674647426462358684412193402619947504575032691022160477571449026161456942357793720034878806634570149030860186595110170902695059104488152574304515757151150505113950887389993859898050948840672602803372849759962388970352351493616678101502373548368826927601821757959612566252205609479028069491949967459997548419142251745207776989314921787289780903920141646207263345367297176423586773809451984374126463944950193588849357452268385431528133260749724337688899264868847431230604278072089739479494950409422458384477417724963470049966148482599861667059019374273007955587651186897520800508658477405732254029321447334018208970604122971601470842781424852115082030866632513618905502911925582810947588025555936805716425539353663389621944056653340977893065302637592535117415789195348704438496660160201297695737335131704533452850059999456002168273918868246377377456639276648221449840128068775107552646050596583931122051551312355740112187543601171850928508159632575118696271730042672605511595819405833224934043701412268681803715811095853507501973254161162477273819975950370640202710174351847918428134669870632881031470248724553989841096034733936414965851603330005247882903535980433976012796933173130604991964824543983948742171413248243256107089848518961740178203304451804098795483717744171661031521372530319179387545811235292040531603111026923304324285824305164995199323739181970297563597379162480695662138085226867890717599101981491679160151443360658607690231451429062976130667567281840551355596786563611085583698956808190724939903907953932382054680338312695809884255074039325755294651727814560616965993358875000271603491447935529944889702570914862969350105739685281222385605245606314771111728961201018861195319770768468485205773375831046637727783971701072172306803912009716915395237763383371903102103960246217061688275268426305251789173757634584975129719717087595541467489318666981968431766053503410616954677722777093658102453002061466720479455484602700683819287549595425622717905569012288151519516569430829646582064362313834847114530167743128687283880938633074381046729712756304698129151195242740459099767395588773345433219637873998164292482488528493198400580766210090268359501807418538235419840425508074215965278222497546398788622486031088965775765294797436474538656539939614855658013141115000636207297057155109665910303039270145460991456823493181257627588451179648875116649414228441645426419061808137114186721494836269906750141350854644504344131363475621511687531514204835433226427172007571214601342561803137041208981010050442153513766258650579806970428942890445768469838672397595015646275700837660944910042232804925812343492091995503381315399276523872915425890950747898867019190754186048328735571357365883010479894693907337221473997537993205902110076561439408710700674536322289210792647656338093809026728961919711019626429834754639874660159547261005466370274581191998847894336137431311425843529223514031932755189300569897476670698946393899227394330359611331341477375041914161625507584124442260061236865671697880307911678806491996164378889924099595196661019633279711416457369735512726551681627111820365171984027647685331743419279749822669098053285954731234137817827357075989294069884093817551516767204863906517053788661054526078318452117586313866153506594895185833015224544644462339071434112796341994147325455298475494411731727724904284761316982576835681425950203218743413986380086632133055453442981595620607314603625807400504785483213806938520138366961180836280843877534061605523274841061366142133976462772847279510625569847546071929928132580542699705532724989810836512641058528289096903258979474891953738465648934408548001315983283591698079615922611039568253752061742272218531247834111605572167453139965472711011406001438287262238146556895861039635041212523505635912495437247216284517854318859495472730536923731241493559817850465765706905802138500215276678889756285943811487523718192583522348550320077417541175040288724000443502958009731649612447499259637959446407545115030797552643937919628669560992085231457505382488993390380728244257883061919307396096683709018276524922620040657348600830023825512306094245354364191156436925484292888635711799370521900206445746630292845448614719323198261839925292859136455387209667254231854929353849046327470659954851997593454282789456107608621147555593524402878498218171164524090440772301063376796720706523660497780465119480469373378139701626841318204278103474069311758344449638668224557898947017423303519474788117272206881183847115737919338341881040142240657038749745377622779308812878878417615717176543034478217110092752480368273881308433293135612831175515285208359469551663862943884114134371418762424809765552352823992718143288054924343805731211147564727296468631720931284135287328479600324271149819346444803474079309623650036603823080506764297395658710028338511858345562195250586155446533026193748853407105925744275582780018201022949752236417538462309293798263957897031579103392093294097105903600065965419058358425088807539888332590060403055670758767744503021514829747764327952757707687807211141863591817739277790714637620810433220130176161907764049691654991038111099567670034941128021388689217055257018764677924228989726854963023404482279869017897323342183759868134567901494969960412794266942128278898570949687410333356904196101635031851565804390638449613729923892040419401780310837483026959996933677620532506793579742662065088136685668710040496335448145922558324224124034187744762064219610039204881635703175311291881349595898748610875254942187823888700211190184789790833009511798590977695784262084220041469601059501440346373333543867696888695789557825682895737600283891265982749455107529934484686699704314029127311654706886178183793236321578742503939679411108521025414559353508777283344852319586454192071806686824519058407997608065077995208319837511436658896439757604846560032468785407370417201155908676846896904787783025902906630615208646218582713623880616844849914696584791289068371047426773295803134443220892333473003883913464813063576423679074491538785427137025027655455244468033016778023922815416198097053232785824399248675271837713984157610183731430705282505664842926910823067634471959223969230830827294160735652762837726214474102478031124551540928732557589128750015969398329462470713957876805057867801163052302219506594736576869583355832272081028321358030612258194939096523651439420115938872986831994702886530311746208368861132608128443612877289361215234412838082328238214584680326877617893839974511672801786662658753843542023384587493759237250913069513543235702203416179604500960108310734742964270534997455382492808204787721262112760056013220256522258717131643383157599655777364406962874227007112850585891786322324562961237789514905846526653525038537066317751940096877671793234082231793331245518935982217063608075622249381675759310082126767756225399345877016518541888326846495654045557261661264780503741492409805517952684762703543749698305666873986466813104524624404583012018501597081954732317895935302753238478049279544507335797347970184730985666068735883651278040656649703340270123243983720344252801281611915377159198676270325274254757559250168072017877353192561345177942658612219838922906195525152129696341099856122325415354346479154110648398188606289613821218038179938645181238355237486061487267701723647169362471635640992913177579462536822683235943960219767890860207873936739353497806756649187677051861670949745634018797048868214270107629524714451012088934449670584435467454422416770471547853822932757292580360516227603245679342272854596462951717870498731650504145675920354557707573173329132190615449159914684813112146746528180059196014361007787591741846879829659720037608309322843606932208112108984227419355043219586591512740716486491403463670490658651276023009656802840103002541476725602537099514772205713223324940873779102580088743295623792460788787806935002430995434256515748565508171669740644708636327387220775028443449196036196700292619712039084990747737660643006896510690352024345500128132983271072789502388761597679012997666049090732402442286278328358617020495928453056888999375649219596345244591109542557822559770459546493634305403968131145982435524622262102999268955646994913696096615019522139541227349672960588367258162988816179734734170804063614435463505310220536154307179015735636793047376372516306117127551670122850541552005491512056896601677329654285674503084438805591235243192461696487955700748081659997221945013080644382917019694002235144162117916508857825661154759832522512150645023034953078804618923039071140604390290172811607091352566130102562382823214238397941769220979080105817964051573408124631751813443262250297129785269836683007799936214946970622685371772933628720039289963570155147187196436439274362188018612964590956329092935717886470373862609980045945534226327330928117405750417569182212354663875014234258062467831612473442322385298628821621565632626983377126896410688133258505151049215836731423238646911119370015592203127218118228411021983524461212637810313049476365728478680353680744097447098234098813473936193160605088549457497801406543020028182342669336681719190974916386366891858450977637420067414998586189017788765106838357851215344812610056166540388282079612511791393267526348814376126610608304911366483586491117449609699445738341488683827033129056323791721574226727997749996297796855320957869616418647696771388613129720231851725043178011273320310131619886717735675226001758510220423179501734720401399603900644806254946743791485299235297712165058861181953755370144005396682290460583915114945841337970300869590589107384082580327631998432087142332966562674828593747181319946283948061658928833752135462082001334396092571512869388656051069429912800518734293169310222436023944759672328665205643876682195892045459698220459779262370571302039191494713402873399649695157244272548026857999267496170030281940164254632667271128796864657243180914727285156717294748010975782273734738205016704185680315343414324130131429001036443186892329361357530414336707089191613725947889155642429604429537410049671857828011544877600653205156058948384357407667131234221431791113095494697339400480405624726837863497563433326553842537196461970254865928693589969569922030063007847996996998293590377175809109405234661385589988811262712646904911691953824308206177410093759842672662747268378196505106574557313475635625260894928703737893807884346492484918048516855573423541875607712475419349100004050185023690865067518544504398172417499949353302925144370629619586562143201884314584782418226284201955720209409432982443641600731521533716000471171586827589542928118592146405234548542970476813795945484373411147944051620653444955649081300218582558742123489681592009383052179838283908784963088868751396513362511111729326742658907600375950248667633928787887974223397236330289188726625841544747900109642459404354783896953163203778137149216861889785987519926865547264963338715033259074070099529813536656014252349302267263356279893180310198000826872537337686145389410927070380361201758156180968882682987064800576969193155710501097860420464579241389630973841865296018932899952641286117237481185170362814133688288088394204766151188072337324924246646569115258701752573115227404430382077380209381575969222504957549444172231183424615047306532376455613278509401613330575511210018789756757016529258560382743091409619409702273415938497087987082704050677101129248112407157900810033903828357710096884866530334489784661359812489567264591608601194308509927911837835951477589802860690627138164319812071710408678664413088784045263914594382274675248473046736315555926473986852535204548613181916266655599825371674064228228391597843480294946490054681220897407666592974441951432307679927013882074119101410597379780045667258628260909653092740911395533042695894598562616557213308583058012562689876803035275626996146934496792254812890909136639711117947424914796886267556975616439712652745359756922342461968073822802119807080755259376984354565512600889222845711291858155781026011831942777041770903376916816319980281753412454388972211051794636314263778811467716911355618306849911966355633647765024682640659712186286973254600381427924041274720516832622798818722702598655210661901618202499926706203932007804831670723005284869615467152149395773944928684713429305847123862564671801412130767077097371617348093017361973931035493419873716715044646625133982369522702694138593648683095519192120543005510462160895186942777126058056703267582669558006790011951529880460613528735990281754996371380512703444219336337971567258758295337367129324647379740025910787481488884404888864699334752880828493129839826473754446192778387321359074767038747225360164520388261714981064709537356564062700751074985140994176571819538956861681940939832962650443419872045003955300172492719704076980927642838295884891594099687336750886228968132428288767834903096797684855829937914353911325299196424173600249045036720171897830439512406408826043454584470840458759851321502884993600631782914257514339765805157151736161708577878948551107658416820425696631486379721717485967443354746714527442152548090842530105340746171649856413063197070967655174037811872887883907664906166906594283916678013116198077881715934080961293312907577766530185269251135472635089049928373818826575171320955255846043661771085784640079583402004869293510303516937340176590751088241145138740484446909896313309317797992489725652870309710090207434358123269778079512670813305097409969328479779834651035248511395987712351594467701088896629549863101368190807156683131036096840259476452587954924755968167228387199378252595861409859352991683019129655918859668218112107322797790328743508288702356465320841892932302745044095146892368095871734400394779613918183493658301708878647806764816001501132537606602274701310620681779710742238761096633417957314779436477812291734988444492591114034800463884189345276049764569916488811002422006665300097971355111397766117085224215316631569847020118372809090005348740718763624620569656721396036263332497842020395284099999532311888231865943152213728280595177957833814420228788206234586905721795849176121444163910142839488884855200823190835241226426155596225532805949905098030522301914844423246572912344495810974669734528299930420196497288848856542614863599089262153565367214692832286247437814564843509256390558299851923187315339593639810076565638309234015344801888674685075509437826992966764764827374616431867392316700901090334996549492443359628752766007800937064975649533161620182881566532408664363171438714574314016798677622472255667012273438118816297691250440562948494055681228597683926138130972446845796843282385890583636434423317192284201416892977567189935951165161564785918989860086408106589232066834642925647072319490259396332083048178152740799039702891475889766729053304293198432125846874986119721802752733753608256680706548662610717996682657416460737197080650732928134027015825627847868804266998689106732806654960346848174161005710981006275087183759077078503341687163208763575892723577503945038555280934975228030986957559043957877974667608872260702384608278079915733021716502655206869242003747491500100174918793190386625145842436542340041760339795645180090743001237884135916758020521685447132199222433106871112933950401781746728219346130199113061730057103888670229466375334214337796132069449576340798587500522810586585601429748449004225248361998158178856680849432945715878492257877934286345881450520308409330660963482558395733354641452502300257987854454154683439220457496566257028576862540661908247138201393240636186530458189559615821699336410358774706300201153233448412597606472988462625667140742333231155018363945093122356649172326233562045881388430591726466161896151486030835569328951173669501964571342763269536911229140606316182012301993452237383119103592736874820214908569351887934501171426605882899780347417053480402437079169871185979163039577599876968701577759051049114662536376681855314097643452292194419304633104520558547095003788926322930637492161901856831107855617367906160834600153081180407393979879196254674362779185241069631348289248201961461952089661108435585482433314412851604872759295029704675033979073781454492249957143991899552868102496562261753300656816407801800764695865559094319543504712656431414877688082006884476204760976408695573414976875342855402773184962816395143461456133886669133614939742207369819543846711270660314714725424266457980043193616846452474265816484946722189047392264717483289386339833076028637145095890811083766104846879864583808404498163638693232626341921940036326112834013951779391586621560268042354297157262141556323152619561561891586271164287686441917358828130330120128950261374477388682329844803083923917057977578065896781849544949430183293300896938981188988635781261007530234946146669348376058461532104172688175501123061849498428652774328549908554454042877846061977176975578348023782517319975198165133245540969430754780113800970749261015533050115589510963995971707988424618664674910573436447118464274801995851554377640095814156928666038420127276927940134888012220166511540956302073339113299945765804882132751494394130627872648838059817946041795576185206884958611017861040464433648259068253575138182221240045864591775050113648523833808889942044885633973550784328374586650885429407964000145841086528826504047394664621691465856756685937961265737561485724136054431150870411596950031028206004603193470188047947277294380732073994439990886214438631524783929356353678525874432958317905315333730172555368489084341432294966609595299139006025175164072940601709705016070062776148862326291743333384919922391929002916489419974543217765126240693202093695773376519953588530516213147138059926800205549861679899085979424804747812853621633820408146145097144498985347380158009877126727665675757904474489226162030096657447009485652052250913048142843028226066423557557224193897590718705581139408517302574993912109963296643271323588346943445825475065967561768468322360983834310903382992821954249780625733400507102344962578012007700423394356546877105338946475045986195516508322545428382953204982763293863657743036997131477048283248641074493700862069576959623696212049123650950128641931712655372356537421019985201565571918023486307723295819528845216667698738835991819735183826794667891462329699903893103911317247325513175901742789441676331349824649362116726008702924505083276455166303050598053885828016473323630760319245122825433912518813490747476434677800365360944573738609299290456085087391930089402604232328029935189721379692710195758382350067354747260808556192295134269375670953177261818214359571876579701902038939407098147381092801607743281196018911623282699055966868988276863302455535313743442192421018870608508317332734353038643219917891357234949389608810010933803640285562720575842755308331732056651711359626891935049568914517924075988066128430937590234212616061893720530151122474713444506798397385968887541304463129019731457212864868317468100030228709783795627665517255714110363024550939386733789206705188724403779775854563261991626564841497298386749497457546761130352152637395272642216843970629541548710525491657834661139606315996327480111433177296249899593314198298080046795218484081987634936132895751103204355606213081341614616541193678218423264221360208027965431795624026529487795791017255610717366715431379759724511029688911401314497933870043380690109491988804902453786573599775156253804902187679574458848768960308142870915284936352964451973561039266848525424270649654113770454488822887289910857213315521164236765089414026929731506962298071115120299600114489911201487139627614735524716149778336782693760988044425172382550729626894675214496785461461477714206399397700100964067661426096332568635514610820734962885410541167939052230538454341494990591776224066969007386062399251967304782828867394792906565720881299889287151642610027719535310310237223432796290327440451348336248882582240856908062559582339506743857484344961096187056767897368570092443694234659281923906439016599625942941272234747396268867493130757836005674623910924851870906019257012216123333746318721523931750244947330763738140604417616065192953898887012388944431211463382499615992578843703435329978809388641694143211336204760069643251372438808497295175958504775501688872993275676095283558457234758229502995968500799060119441740816487405639485899791651918003194801183528460296574477725218699244692149990657246764943925127220198854552975480308503572699764873635668337233419104292069795309288401091952142756515341663376682831588221066396897815812715114346982644160647302055980684199863584766890363519533669375740295215928328499753201137430330678891668155433815388059192363973681711444225753908764283128866765449180863328218415842444299132392592828759940792186721633456781824942116025097699475273593440498497935500006068808727881192707089136925173569338268993673776373854256513354100149176264612066633644120751195368868300924261028943656821231719219896396781676356253953353732027364776201980387833796411896957541789356408112865204631943629819449165109161190479573132496604230317085584664632193197285396456192225689335911856932681963335147651945959233462888412198971458469606858144264927501858789796035254483068135639309634149073024925496996338345403191554706706110934349628287198846335104809348844091427250813460973199347327654110776550938098594946509757597087706173298054865699628829167544680883193151682220113448631709628463648254280710202429831737586736633981684113666774703784349537189765705885538382576112442350575914182368888256029653832227471693490021733737621950591860056578385888389353390648080980064608688805223702782308180105455211183863793927522186214211711061799728807857810673215521326205638686917199557079605768548073971309633201420920545632097433561397892915509141575624625186526734069162827297776453928411380174164162935853919356528673287959097251179556508860153716517522235257340607227001632703266767161254121190752309981998724133467494280024640872562809857445427998714021008500546489136875070787459036931434417352237142553784022505526012403382625449576427014546272210699131984029264330347835060620119840198314423656238099188928181076962827896867254366382748301086357460471410727808785170274578504715015463728998316895078703677245233485783376862239556097533374646226920567108183254640470923292351637363471609524221745310996699930098372549201352001175954875795803729375658995891854230728150379415939400300723965979906779166848252324196152700766096574854737216089147738906873867261328164710637143859163425100907018404962160400475926495897954802301536005851238101246894242307144357743871139864867005622832179388198534646231523471697331027882929801162097634935520669746493020977330576390640288699232784007433893866037081196285395678065650588500094098812860547915467431004456597231673202112123917259880421451800327933524315372639121912547167446727873919230850906365805251619547582102855508545523746693299539703925629214071267978840288049518534675419790250973292673201037685861562815362722334994476378369312209328687267041559284489538597175531834523582503200317404981803607647768943538217580810740849822640335522011302121342870489053492665223555294566898103492356556656495586990835350949560007536740740028984225814940361041043171252146173970344184724391413150214222707428075514623176888024091344296787177865013074288427919647185630866465481305426602021673337369228971834492752543526356473258267849470842877758382572111409390481894667533568528020980447185672805415025464243861396180260141413469053304819145944014383581502130954934125165195363366563859135831346903611391619544151893576860984792068222316223381786785362739281687330662970900941290977523631801595567979881891578048586886121711656534968906939489271570761366943722217406634643654805699548061328503075532066263111833781172043079620829270292346382251853407241788305547545137504226130464752950678742586293049548334319267698465576112646574970250600651873163605195945532083938198009998733429348029792686236993879380544804262364113647335646021002196714017843068498050949610273343390838230244701231275322186066912611649412559408392973853530944067196423441018839650947400104014341993002907771479370113934374225743643183314060862500722225642973970426132417874360730105696874953686659669291563410436879843084788210736603631356907665067708676510529807403833585999539317783877822421752026379355730160493157757841128724712604065917796486401192258810317104501887793717516603564470153474337071978446491068762348248676532867270512032913991971024366565442208577162516845694382835924909252295924196784670014601500261156493128267441699484658342915207940604072766510058597741204904483395991910298262457219653384954731434266448140260858652242562689899430339124708763530757556864043794691827201818891929315124863932356816085771718439556606660365864831651842695666664324817308793240028749904841372699792416229238125043738754749414043032759972580749530969785005528639741235371123512970360936276134955585861922228098339511052409731207490577824079550742073815419091254895391072745308320129433698743970249533847614065796617587284266538001296551937228948264797779080859996669929423342753144165268483974405213507778698503471431542924599673566675481528986886164658052769523253541671753870758376833109389237931342225288103563618979720654999530635018826754195134481959927378992021164504871750788495758905043486020709120484828825186521876785119944327471976332344040863160727166639621769137324255706843579296286186090207891334579252540761587140757312869696783618088272989488723452671628007438954693251410004942038843144216843260122644512924617412282957571332550296473420925864287964205282852851869433297754889989732953482286910214800795643182873273096315931546333133556863428422669171533613548428010707584859711043016473687349101135125552340872227148375195286342160600089535454646305308181640938802423023923085781322086930382036872595243031449083824937181098321884877385181298024049611879041722885126955718879765100291223498488090220522398071977691511491407175950889073582156012289536971533526680083753209447927257018734085110524466779438085694824876042580001220155543963463850312300118056334904751594972721334243798405148001497105087349788810685166835107798772439094925354741127184298147683647628785862307139295875327465845146404862687544408827994887152602779187166066963306237524668421036458400129169485128036659248720356333037671112097868161644216815466200668761469863478825828782207565675721998388201918412338465147593109377604317199675577089974112769204631358076613279353294377239736045592340693070456803356059058666465445070871967382901539417380942233235361196038849389164162638959670420359541292977712347660632626867600497883208135974367635178327546055612566461089796616596562424731991164741519524179309479240762088741196464158468426910148069888294497973023609470741107694566694294672924831000399029616669688485007682903995794233576045096960689739365990955751994387491975582577583846911002126004369370772637742929836776897807177883433116634123669587322093780951566303044455647151733483370821362050119691481501720726154344549310697305134817052333512044836800769719451131302048179086379124137501086402587923564862292013649051306135399494577154433803415713332251240714243150104722134320770446025653444930221165061256061614404026451748911279392383622761907502997962393394151594451692846406373681742321709060302490545147147875858893409458958072830951836299720374800645813532303969331793174072228571097639962242215344910813564576370637390311618128460687859725834056128133631955726078506471058512736783110559314257910255141035729300954320840336223072373972663314013289260973603603415844963116197129893378770215217682755731038071309138678503044039066459362265582925661199615110715607159980709152593944569352571610250256206897578905523867306996427787249589399074609392025875321889315651997660771561499879619363133224561605529494874987208069385849151762275963815839911379502325144984930275647475950833307006373020851386458067075958973986736844263410168523298903728526043692224886333185150886745634964856024608072834544017300323123855534613590212118662850218748874501370436180201690470288471382651219422512670174322855574987124025676389257537051007276744251997770230143346898178846227073623737664338889557656576885537606937757544506075020777011537358024480957418066979992217114345908597764536762876738776642851248299557717954994111961709721568513615774600636967578947544441252739297987508630401661784615160445936133234521891578079568023252753057760763061114045614103233921761491147557715192091695218877042908720121942658061103336895590592974099209339721780633596616778664617388282989146120147577750352049146307983706598771526488038478806298115805225845844138961019439799092197906137509140933460823221190470553438114892241889192731866877534405945964799820691867105580778440648750988658510970566876682884035668927371706131407468622667222057914321881522243936125375581793613741054232933795105052648154956313698904737577319237540618951642301406761267856670833147146825330541338493221852913684029223515433754276865746478501060675426453148791231062518671726189520781802560227714192345628610406766137519772849136799073657596593476801228039512826210873481705521553629112503382870906213412564344833657513766845978522392056466761926885048519096390018880090189737807183400811481661025089646064062714427643899774690944175825395700873542548487146518003955272586937218359161321664172147196520181642361406226095655780642703851593166237913519180627146206004357051401681200930553600549587204191754339130647608573602936967113215261596120553780873056448495408229718326605528257065645363880561676698070000224284524107653507002377423476731379226241301439737523662662472268557962801213311857071641371032522456716322984254103033593235002098211779607159949602347027960428069514556306500080798385400614559260426009202453653067604591155392801611041601181772766129693720063865441801165895135914205293072785184669255642940267957986776604336638559954685681736577570983228115407666509610429309015080870623575712970791420704784292090629366239004727757024520356122365577887773788240139448739566129637850303143608299779403105226158218777815476592731428791268387573662488586446588111453514917688797383756304034945271606381161268564527603517418295221699248271682913909126961486229743091796978882242360210200119717252630175973871168377279031578386098908923016149947063993043861162717569043354164771997608932386964249025486895739642728086268382566734709803218140218002380123145241018192395284191220044312822523026853134805366451460583051548960523063468471582409351971578581411145342414435888031939397107317277496747588302842487926856601478731646953424463582922241468464950444258460521123843696039404162920172721954838832248062128727894374370098960151084386525636517941089282588263364135764132466931592127038888240019395475285630334888928021300018981954864071272642502217717131769359458497985058762697312880810871415510192716768656848829519574948892174436518175132803819673087160894962442982815413007958349846558081972361819552434158661071846209384028679693121980680397631513325586595779694695483942703314397569315466120744788374473849137454747327055756562261603498870278356787291434709145916854136363102395426961746941349199136969902909564845566969046924658765617575081273949041235504149257332450937955660127838155487921971518064740168611831176016624166089025661355432151324451562912401188914846191656037525511286856550185968850788994524699216010691271622244754906253801516894984519572347257807497454422051010695881761761979695030658906549792093133923190471201020410334923776117423602533163268633942760103157428362272997592662729579979040196601419120439466545798049404878136592381686473268470868745914718001496085678557480815936127718707551961886670948347447802684598009613332923225665166067118615643085755321427173377843409753239312790193704630459364810517397129565490940225006251934185321669201966610101958427380985231461866670050595233487679986630287221210942032435046499791831805286671332916581058591417556272618586093171354749581393912824187682898538067935420658990584648611862823656386346882496307658689616220033753639135994579985308282143540610117328480011175302508119874444540332473151606573386618150541231177596894811386749896395576897848488242012598731716874147747315308123268111104563596632641102937765990243926706140322821735138595365709496114373881613142424660337130459929563932321135055950939350099551371871318146560174931610744352314637753087326764136841786702235446403747392092235804915995917849332103587921564018110939560536227034110922264875868757029136937838734012322532617395215431565130177344131878776754593051696003330892748593335538669002027126291257589205857813981047143282072464526925728218055285974597208416336334701088128295764817789179913772140198818191082909064173058624400018648231235402322682917082992148462949122224880358694493269392295797701404198668134013596107283725940018388049765796134676218209672151283358652094193274402694110357281168919547410562344364949727869112185743946868771327332337775453853234027525273840606392325181882989040582532410845075718694173410775101658733958892234460680067037140740352363883240600953539149664857297887291724728417185123239096366960010357174570123645217999092273181181378361881187069667463734792847945746227766892289604575550693704432540050954636955408371349654165833323977736541828305695561137181463338891921812586171425296704528651512231912580593494120906341253309735729683069182254079290247664557503081804149758035970078169623342963547457600162546718116745341666199712958348081753752809346531398684687019483845873816542283045272298850480187306496877446394233845969403149461394231506240967941423506480112647729275546804447492827764485630152380049834241307797999838499613108666360515371374680669615782869181891500381094509937335689288911909177889593113386034668260148337232242449667269381716019662483765797531738461891460114839401851759202193036167596330106337936138108151921096793930184605970405057795433736053632147875195217378809259371679163343438841189641732694969087496362124721591878200083545264161544790352607662910834127461897808737749778165005319584752463412741335709129460037199203717858727455481208084297325207766112459761926816011956645000333064994415362586732148793919134356036019581604587987324410992331492858010298728084924296704905224065612317727045331374999400762697834337743357888622023144569910084184082989890686806072852750468328385747999890544940070992399725741789227886314062330687418397859453351684017302459912586492120385959417890911847453237774023053515487322426296058016290666863559420415598007579743031068415740073697964815539661001656923758116637385012057279533379289736556822379585406743307746739068077582765874714818118656509196948247444714427825928073795506739158633834546043427593633224782400494787900962836005940121276200211962998937311646782546440175478057571285008558577761792623862024307363131643644251969444576208863839503171219158133852740324093852496009871069505142706530194416987435140276807004879743037179759057006754039251229455003919619194054803587871175962885838632269370431085574051697208405901158918144749705711740089427017394416809473667852057309463274057881040829735394182644015792488880670373259244153506579950076928791107766235367514484250593185479318654544905394683561221281262304152588933424520903815895638389551829914567268780171317538630948610806591160702073197264864068773568558195261932413690417988039398120618870539302911524563786114923162873688808602597749044713431698025735965245743242950409503982125635516458599503856365326468280535284701076383290689269487131628206652186312674269275877583616812045664572229621371826801126902199550859927703179149414099288398751660307477131428179055034405008368708591464288352235303877247758037457060993790618474340860602039041307014117745208506124274070054523558839002917312483962435869097214096584859995397308697013208947341214781134821215794708650875968693784175112068308606820360550729293902370821810292144011606333147299323257609230844489925583312286316941864130977353752439732340736455706110859002419285011520928306499158050758939643174924607314295228273487789439619585226389334196927480918978427790101326166765771722385651913948454515201939054907859038799819080274986844042051923385418612452303065434732125629893952462378470396098357151167610100523824228486103396560394444466858590974095074180618781065361088246249075850829367365850535979424829630426448394336548806739145602274426685563520920121803542183484391559890988438076866653558997884508472095673425158740668391755516039336544003628035656659508303955410154893490566131488448946367157093191720936177398191401555620834811420852010743825066327595460989248766009033917501462083763965161721506667244189893400016443341529194799162010423861522412606541743735603250491271177313865176593049693961557351597403099237820889546467430493470461667818804313025782553747351782112691665787993475790194047950785874560680392131352720412099188119167579471048198435526955417421247313757469327237146014835811479619759745390802579161566451544412500623924760159902199986227242669129779389840880580836873530286831979814069584512659258889450488254936271118821044924553258111369971134151633692488897533903845832357308718137856933118681547609990087330237777371150249775700826931707291569931008939307063453537022499624004789896370842718754106776515199746490393617320342314503895271786302774161662999758112106344117633039760379901283422832135554291279260188206808250456424077641232291357164810274606291530983584296885428480105528597374773914157452123587242793629502707959700615924874217773179935819975291623632615581422687011346225300096627852067899624904684639380042520342877058588736967030510783458836365711883509385298270595908708774000308801640019526243870099264781949398109765626886570140628578455730338608068597701483085232055180423253827669105549403814831032712552339156564407073559328531075278692982133255032769639033211204412963019562134348352204904693739979378485795973437920331473689657514822680004422135385775546432220769926336073354986519464817649982099422960047161058547028752398599594557218705322950881967329638738525293460949689786356387812559954133113165597269063510734451634096342454498722822223203679160170967995333714047682892451369708556608080498983614011221564524538874376337005460651769001876619781133209347066670804812866414198770591919582096921524065885336808420297409011553173520080439285591158447162041870738581670625143095610745131330279742341905755137258818834192013059958522335491403178088037921723442517967644305303801701736886146002585573166791252126086355504894551124609277073833311088285338281952451139021727682121392727356182808486773671051019155757987570553557995559351155392495951530920042948158501956809997038224960727900585955143474013918727368966773214134219102312622995658241687447385284594612301215071441721028504670833748379756240801761194983013367857448409827170390524722606481146224896916878628081011748588436012769535480742021211415964716436725986457428454239131641734418908215284901734447258001626541697129648409451651116143946185547391685691515616462732983593348123610458868681494364170994340486264634566835753173890042106430345751334176818439651101427130955081623784737557065564847071206437226615203402164550286279565610805989651463292418045288930846622545919839780764034946326506377894993886939634053188899641342751923838186748278389126931066043858213853604780500303194409325872033212241908735130242037011285841021894075673427752528405875868127118788156549956251910471470296874893502980186894124057703422463324304756703425442054505713938454033578075429429884929602452592372561497640414958090399300762491162700872696687840655659434962919586060046170128377377353900803890585269403239090816214566642670485809993545323062391659321989626159242723187002714994417506581073690327063208238792969594520169269567359841017543244309263483098688139750632259574207740806812798242574710774892619081279959015262120351490229244467602083819881073998738946792159781909298007509838283876310628962281564759912473412464141045349631159998302182790731015818136229071502661011868978546384766234441504783010788106629695152862411302427046129413361525779787873272011933899279746120768015128375012725155446833889924755156149991159569235578130183526294452923982674090484020524797145815596608611622746947923039727373933121658112792063810111540865711835267931477869032920165985201702266437756038808289151843669777915972619401878846250276745338449951062382470051483956321004791535147963636455149781269394307720044302447350586152369929985192211541816908373815248758516191500566260324246775398822625668746148328568078139637259327215211377046829392933513735960744049997091249737099964469629687664889676066349123584935674914546531055031047386672213451100357789190953238653308854891051475679919418126815149843447978376243134800331560421674528757016334977660924342732123701494312919522296816491796031588145592832317356994390908265253337517968000080165527785327861681433576679549852686032330345177927294697379312988360107016927039267518975968066509564797540272286124119265950496903216089780288241755256457300262270374247637508973846328785859482175951186831217973533833192889506854870634919455010404000585212203191216930275920072039052120526938764783706095335500812125497062822617177798348735853055374449330942577569103962669069623128508748154768857550957956744107902227359928343336183538184368727104118851884826726240540177314997159191884686572012429291644982705066705729128038074809300241691102641888078361172539689996206612372714886903938270012280677239279458228265360397116445952918730040158526642233382491212345576028254700550261607186461522669456735029507864031902827997558342864716710342072966536893192915704436621762842231681207918516967823817371804367522982704235786191810341405134449727611108059368409047915755103468341438961286893694456689284016020536109458408959668734756620067282922406059857626033810555080114380707526593680358253464175587450358893026917272889645156616966470833202120749119818251786359209452591474890528141245834042090647253506285937844365683513208201434724379341391836680510110235878030831649280289773417949525628098335584861250385867842364575241614869190981566836190705118310430959311811587771858206092265711041810551505210392042950390030218553437993268518119018436463596510614102180178794063872207618187950001426383226634976975649259330216857051537762047817568835785035581696576495135015330384843491039290305095051657588140682152090302231731477311003213831863877625958746551003915979179539295750687702747626069058925284900075447887449015819891294596189680766481547284600153993555617696386907883449683921305023074474927604200616686697954290175320634899462496300030758547385238965322275933177581314873021508679398541602451804267202031362162379152876225398969531742264500545489807468867555039925559162669008799650314315442843861925602998547169025321174264159428445377570193301020119886689737858582835725343281691873506847236316491221873781094561745423240531671580088373955549324096085862628063650922112286014114098834758541557646671404573896180713441469191866325601332229279085065779944797114321954706009936895076422473656639488679431963747681326571044937532192795610085562268908405704135911539066141684879619121351379508704260782514680028210839076338748010461967905257501806248908614883732760166031883166585561867752615373409204478280143208368583803464214992543323136621716107912911735507703017484031729251576714589476494080313450757476739326943796910681394509439923553305378959590331808466650742026043692465323731440991315907856355729375848492648011478966066702582823167144903556701920408997328575107158155081136610275078489437949134834795713479158864814035415263111954815873218964606423951463707159263588674340685680299213505638986096471512303525878864342671012870079537242524824984099063907052037987217286683561036402581804998437610964694941436168796517713541934276718259233605358396677807150949592388616369656684592008253824116203431666805456228284403938429934452206025886324232850176532356099848129857747567537158958714559499526790460972928252151257839703385057391319980076059495202478725560050564834001352511678967337572176886543678564909107656581640845530899993775922149763057414578327318666916178049109692622944534613637986557120009173176070631144407498481209123993069994082729132023284619925932658065603118600797482269902425747560842075137910525179481533368059163068741425106631222640036708152814622196444086433494204996540563670807220274017279726101759456658677290810322259275036323359251001847605543211064951131725063435325816694262991227338706098483566548378623995482378526996470593936257027745448040709562098511089114365045132187815152049695755858757036297611741474265839434023619878618301955950999910705011569186977933627628125561709919998002288282131605692658669374652620699158479948286306463566538974303637682924681165708953656737032540126141716156858052977895559936518676804889630317332388000952463144352233104977901057318088099248650762732516334880536918925921606356721291372755884371424247616127471465962566682064020745561695431254390928304429774337050329485050397418837346840397837643680396800508613216313004073218048749042080091723006888559032967492072987298988000366490184180187383704740209271364252618287783092139022890614330729964223598708031787818930235294082193286222161818859422138112756705725444105177332821931361807375581265744796043014937586037704453596985265038772889399670093522954302052295947620502375247164345789462793459955312850957512142145220346000539131238097658064543830241413857582763318768355934231917598631472499044666501678893599926623066266093145244813353968846709003185992574128302594135036785995818154251663270400415920737612027137512304487243303814971479164334016876631377688865422326832069130434021840198327285836553921671703957540298891990464998217179117498552278760013427320563059495942768033408775815131501179077766301932146019392031525833701385350088724242604994891233845700631385552625714683659824400154442062883244412071586383773603471152271933578281628966659852088768258975544199377704869582491019837003083586556046618147541554988176944725933507285559067856946278420674044225541548217869311669183836107712254324811429793847063870355953056455894411101008482342125737449514054973346722757874621621033664959887107984334675738663372365423619001159160495372409071890427402472867745203560749418418409859924883287897481573504409752198868243628350585115925827579140476570504786823735595823833276032335912501986488282548787626566664323099992772746367044299931024880481287083292482147683482921808847692733215989160994933873780322314081638293754469153243975473596458828895660769788510581145571762667956432454763418044769117387345259109800711924183097609810940193092287679547685031521896828996162089475412158527678029603873112733286878507726911620148843769851333983587736535684705042939015241347054849810586295833591833217807029990166350849246483780844244308681952222119224617442475462537997347904331556206121715090720487506645763678449066334199952755661747427965960041732273882769380425718955893212490966445513921662883936901960894005337203597152365225376025717415256737250421627151453185742884325784893739516098089478925462728786752866362105072291906497548550978343545015779938273564863862082001208302105539072549741472690064441688394804482629326555709572399355816829423043894823003517498282468317635975266721234876735142231463217345332499154733324641368906690352048379296562157776030732081146572237554269923973784065360595575375260477616620165349615644047676176869056907611750623444589989085489782221052176659653775986680832125650108466757770391687213723168641714604297677969622533466815904635812027058143954992777740322298997665031063269198726420269675890800333077518833498323394084906036712830120120359090937232804943624324977886867058580499660217425591008184704424773764467304630684231508663730796830066805530582732073631467788690469151262385553932861941373583141931538856385100933599083890093102746084067191270943978375809999240723766423977124373090426304873790837339351346698871476167311794933985231237856944912404023797376034469687369193879114702606676511078692022450023018438384606606717343583843295908720721481580275580038080107730233976156396929823048482357177071198703193708066124208004393976335003401298632346971843976352541680037366763844518957787115685030478554746738446997609756290649353793738676104562655592412689789880298647539621389958803182338999559132890604647015554247154861334923493942200627558033490728475160518779047124367850759126173393650329591305599941772543208195662118380549055122877398002020144496073235887997006102039063045551674918908252193030372595716746464439815482382998034182622884145328531833760422922580672032859292502893847083867537563857816023752117749600911860069079643720962125118155866352401250653137248405867437836850104113474682084050059827487445390937450611922876234155577438639415184314299033006860935498318727898823366067499348487240232204060869101892003869568925826073263644568875302958849243835545690335712028076976964332145878647536249671488577845541863243731843045182319798497313898719340512639739725660759995585674280961148431084345856558954267820377436512434532408429476519624133081793555369129112627334152461565550985011829521735777863973280636117771666760177942708406119975725204127175209956921547736303499787565023533335707789129419644174826571987433224510634454634031475139663820698689735030648597421977816883653618207698370483962137587955434119157372708240093863227692153490236380166194965027581405530229756632557010912291653641055347853567900711881251682783362154003389148883901271607736026393593007104067672559632250820321154956071849004827904755129199956292624728058381103222848724807480864537983326043770448681882345332721922553104253298095198538364918266907447372298162604967127302669531077556553237995558523988592198057845663149415062515074674206837208532886757173743937771452170876664822903130348185291985615369942404281408620982316764077574264341363714767172737195125380029763403838464287128902160941701423472705149340755959010053079636140514621408052121357616355878748086581204900446380508763777955337573286503998859856024543010616048841943804990984230782445561376515100094713017433756166094491818375806965376147945525238486703482910492745593612701813594387215105919100867991332267710908995522950730861504180836818032077894046949212753884875604787959083397551288992896363694643814426004484191694129154164513271215634189199638389527025343613791073660720458355213272555279234579545559134272914790359603027848152290966280346719934532307361545334772821302849162004371886638582812941986457755912247103710801506352849482246203464456312940683669120106687085727738287058022086031420611969931106145069093458193062664529610160919077864085279473560815344414101747371501195835924118771478767196319895550715331384590571253811626477522137382080653158500859853497780590889157138216747182700924443657917411514746621141032334914910396475023081337026900848280860343035823429656737034227560055220438933304685500080121965702665385306474731158788312162084296424793846797302501644220158034646564880416552186678654110021996673902446720861258168763631775754796725087034204035317356787476567770152059599377245872693104536085975103690418839111949619466230923231541762292248128920721354086492185570586381379137464291085245733817808039217864098572549887480563814755097819461824086745683439867458176978764550833625320820284527579193858543074400212168682485772179490901651126582573940703994147378751846725255810500954333514045336810858485032064098474066446104898568256146714012787284335762725328779276613302034953702952971910315569114836548801943685822694962667236496583179806274537587901053863535925583193953401342848576232815419991640682720837488606520918541723947537843168634044197819602486941352796567170732658163514475944033167590208044599404068021700276742336385355011962878222090147023472987647514472391449229838676768640350141652722506258818400863376409273501874193877146576745849716145019308417595837278622067550798978939793329093469858941396255480547274382930369274834438374754734626070951041780489109846966438041062169418161355786587823836583544498055749077133058805846265896588803643256946326212676145147399154994912299965328713967044358840813282983875875081970485036556442312404268095760366670967700767941652211141617445010969572657716855338678312748261815424424896317570981846122024887694378818893168785557174854395195547616860889404967300851003273663884688759952058029095350019705928735785161169076526548296112706669491006488950911528230760077084440502088600815185312837326034698866095959493135267194524739727565646291012863102198618021014609279858571781568438032855411535230285075226238183043431163773738643227022926602764450720406908970587972072943809437271261743932814305751937727501846135603782061823357727559884117503146716895176359450587635595250145127153215294582001330013161579471966067931330150442421317029804413744192412410662605840376906845285506182934582084100554793230194165023848388051260360328537950046703687398237705318550505848610922174820182137351552412298405626693457610750548323787501617116328679790134670508079086020753499571944194794841857093033385202444693204171345495346336397705389951201422583766738840248501472075947975793407570656323447184819308663511565087625175004279545611082439494346203833653046495960240333733367942074204849393495866005787787353527027792512633204345603571496642714582610377039688451427677882869202957677258521585005032633542123097941658658536243415523267808589273706658562909744744416440238480739477857980921123139345040818208421508184379776135701975888936538425800650247240970088190239863994714075454929339404782726483578774936190098280455962450806532168882352931465608220341269503145184148200807883185630212307837096740952821725522466318405398129053607563155989256316259104507327140368265940999909113736725152596480539459548623200576961582460118084751165305863706513261041641944369213178108321478484624754592512499082821456290089937453061410408191283009484390681122070927125551035085562341581101317252286508110457174978701113307224237287676701584751561644582826323694616307852200315965579830978601285518887509293406038392697216533037596312597603265933397227125883557323633047965639319559662601080211602408841028905252084541330800737738929721002309144855483905538887497132501557655054778647750879472321317637057103985457638978176003483881690017925166143078855988147935611726923990494254295527375439136241615031834219386895663344086507371600798062709470342610206200336643109028020151000489553641526768095055080927389412490299982174906333205467407607042337462542655472188757155228318895621517396811034701946372348171320012398336425757886125022287788348022286121855619143953418337554182228149399161181284436768448241709878239224916261077074080380129009070974274446541549132927384932575341110489312948920019543044009698592793560143434020542705470614317672624539865974166297271523682714678093997213031433900973050009168807428788871683734558242396517273556529763195393230109463400325585419972814645116854295066120667304427564361388293778843705710360429078436068733504794834010317560780151828305116528266716600778842053835739694555180810837349745434824078745542672493205944137187687129926413783520620339222708391286344735738571470538090594085118913623966558016327808125282064769997995588796959662897327182454209113624292135622843855754273285305388443594747850020598106529206209902530575447274975544414512487286449957325642036311477201629631804057528365132912690714088800154793425275471063766454973370246777358869529768534391738039582464975372554715367978347752742331512216420436412077771248149534680548378502962131297614991592608373487313581493087509129891787478725848613156626328884468857885319624476907243940638384389366326487509557012002991600381160885613672860220729849020736176691437681150071618170368078274238851186241403169193844904836048420232474646711654746446320785408465105562019739164052775303167361762585468379825486895838639938873741502438461383700801576300695240693022607795071440914582641808876389406963355112538093307139472980660498764297304781965365671487822349730058313947189168879119548034134865800581754735067164351005540487675309442126565773725611199409344329778196755312769826047157670301994930743958531691406912454815701411241882984424706675198301377058891168808470646878112413374768278100012732734574475002482560851513416023174872088283518638361821288983980582847134493313364613517968338437860763837702501244439250548892666915597962966852279690780902521180463307771272696068449259642964387882783249858595820006465297653195290948493774255156343478223299396426603098231909411240384111704877426504430696468783581657649056809875165634986299467146922873081825640727546992433522978274761267629875351591759629864707073361915633342254164599860687189989283599137180906779559914700093403925104373660314420382712991255193139405005656313086480153651716466147571310188917998683140404357813359204179262631116687846288680958200036348172734508578239236025791812318577771444034704961487589875819383420509803746002595363110996191673577948603343998218380251031221610074349731898712875213043476065254610011336437332317287112110288110518957929569468471597446408514235850460554190651784410272704758295414575603223141307854738250223231474857336421608694812745799929428401511644607750159809427942587023988146294422364412442176089411360952048339272409074679705185715345728526817612967959315009408336088003603295794759870727390344057478172428471859047988037281688262177262589190706113272814984598310567689827434047646946800499185199364890102641730420662153125322456689888873244116267811269599822442896550039146801521663308243377652516629979891855118689608572113707142555402377164934448566209863877095837887555949959561545084709380174053004185652892931515254654579159080363564079218003496112052926669357651673427354961821218788483368749822974965216790312021267831383842208197004122699606890655652310662400192377882193092545978314307607026635255142635114787567845445697997937197417920231383440950160963870034016996573216006010492137683794396316014275110579744076519955052992046779591622939545950679780449745388712846683316335837708592435785106705245750251538800534668634852961292424921874799125403362917267381664088316864703733875413615221644400093066018807585861514329051928320457832305073641714811883963349468907489005365469094700631583992964943529760529024511629000350209052284077761495031815195060628105806493739739837738055800112414659254773337635426544493427830218742061589663258067022234249992692529441222940819234162895143667810538645265492907709763901297816934570683194692350459216795952509640674318611719509879826710678850935878078367894441246107365601007011817132678476696976320870168352109673496387372140466756483749073712098909866147944261549610791168975352188609669951566997907025740492448111167080421216181281244851063199684465511367679267123743681194621639149994099590984175396480027974072944499534282219464798482168250819461308172531087374925957554858799734488843706938061977982421003898180532743198066343998118345471106321341358923194840907952716701480543855134919637295757231001896878589060136676751195269895578539723398300387028407374785505943764578189604747899300310586766511749639430438745481415395306975113900272199452042991889611767928183957229378228064455635906491670938344082435312973820326743500833113924469332085901148951088879859411913809262113833868597098642884316033996534603272519066492893543975163930380531950468738153134730782525951786610293337264322408947721511533143821882096853422125526642682295610855546817198425731981944944451432867094122253659586606260667627581520339237580375837039882588884935862586397288264056674101305587846671123390198168014481738263042675853645171293256253464044836180036414600275093192026683041425481681945632364753645857306504239395237980228620713349399748179109161111552503888224689984852837429329306502921178597043957754745168822249366794019289895155252081455140637709028885631205369653333478802872380221111832326630305710253433707064216715154317127043312495480505560568358038744539872987354398490889529298160438007298458727813861781577367148854229003015640653550403039413058558587455940384532985044450975291584193944777615970328133665251492889469221692324807298250335718419637696910717006936042575896441712328151483918835713698331127925216025134943829726452273591548646540403234980183558101385615592108316108472107767876225979520972087879249537050390938369628603134004359087903111088425265217237877257600149127286204101007292116564883955709829479905384347524110462582122738775897630321050790256543596150088446080598637046460944643514227325805890835365625303884504601193657818934405973731099792922185483908176713209544658457396545717636109694950314984232740179944372572906883671138783806439433186727705853340773791080452886275626192331980155400772577371815359681962210345256542757148395035078806044045852993869853664250020356399060669660905438558484401952719202128951034745679989576396606804704731417711695563675934960742091573039915803007508116647102653027605544321917950485302392214054448253418769858953165696980782351069257841137943043772094029968471634441136972429475178098731663414711476890138543656564279252675444530057433746404514659764115726850824053770294171562931253707142574818877270377202756500003958255212300702588510551614401027992891429282984167805366229027479978645473192089501435745426492842180552390861869026171025734950331640131078194273866821247041998815523013941159082022677716535297175100454638993730073928666465586379533391878681043739211155262607881046450490278781489483173374324916352723672847706010113932787524565546481055746838759137574752746860535561059924491672040372695231976422149689565973172765425572746179981821098549459265481931168298698384205386733446289182374936528097266109998675269952577239898675259573062258908045650531657629276635443496462160655273648737230560478384436567238225131348107217002602094808600283077650225530541895670285330130043371078647773718790395711576907344681601833167882069405752262558696282956843215495899934207943967637601737862599961941842988054319124444295296770039509748488124097099205165930355373105698180708734590433310719195960670717540926836595261423901802820966006668782026470152299910436100685376540173991432109750761106531097333392912560297746467588216484842148264487926154863625464726784464579258365305951911476651487604978160408236414046118189459128702764895301081524256973776800355216872994386346939904464929854842180057301092830509987514051728485891073037417387063813320606182322509645159280134510438936142003749794461659340493796950482657211004594976094696863819975129659692529013437818180466454161492956278701049809568561787953310369185678846196103817905718102729375205948143711215646418652149323613292295846227467267283285064063180036094109971492269123659654968950511407792992508398522697112700509935215878076732544962284336503634532179884369185137625293771675029162030714817546215276606936960784592209134384155303345506217219140855642235518862508156284404056837370076110377926250073388715218647271367148285209824599208421346993557312832419462004967692897536116315036736010012706013998440138372970629917161889678144873208428442891673988304180808502167283037655921976363709173710079123632432948655651278814655746216149967997723060435365030665127336520403175832117858953309023242956225981295935006321466663344261297008737411029265303569995391207725483546647859768688059549103266242383945743337388011963392409213284054129860517221179097652630560942067057248733579620272429693365680317374168077116580153185080881604783239624304390839484184319103080417713884614133811778788959273175955973243659031082503513824406265073517149405912472785666782330578566703565940769620544865283888782102837273642072938136863120451269334532799306277458836687262309666346223959608773262716275479281306658758690818113490269303026316333259953201627449891586854477102102118934104507954311057867712203897486800359873624051307978159703824647492320955462841587808083378522333301669626894449306101426799384639037568735274467425921359404763472951765299109130529136952187556881933211120384981318988424686478715585032601065210493498942739459647088172829515876345757154507959947999041763170529675897233044650113240225574419922832485748410496128804515252754303882436641144010295322853286871606771596306592436654807870991601773605081432236825303529055434663678716934807566944866942202557408130885866828024602861157061490812694555449524007640224765106383046743193847784445894805192739195775015379952935032696349635631110956369381334708244222149203290703106579572214879661838891146663597599840386251590169797343341002944273399652782513331249802321779539390829112069510090194708188727224967624900563461393072872963806347814078256210371107560582093223295126954465967982551141678983233236458243211606727219588222076934007295034212067055265763861403390662678088386994115231077028208632573054414472989691497724895988570494794096094371224738491672442126817413949413958130415775745049374764526695069703267749064646382046571490421799819159722109317046605152360967418224788645633804506947738018483722716474519872505677974003552227521813526525270241830022746677522541116515250686085247639069774743950742559870543120427797242942400400511949202235366517645346164426281840908436675409047592712316501203968858401716843232576014249751760542208474165876013171381186208839337405266301614545010049687063217036742721914442693954048881224589595249531888658935506944433342803706915572329825704904388142551148021101871388091033892837941254211840940637707224291897725573706494124653325526322209756614990596089070789623467111404193019334650258171916220978185235272937550343273584679750095354862876096719472840945484134552912424223858765696937348279373353731678460472563545987737862598457667579632868136350213727845655712803565599912218572041280402592363697516528074602190591352924244692117416950696425469401570173236110488739649951894341503639059857544458059194247638052562733872398096212824081607639218554553230797244865292244750224244561694790480632436742638768420726143183787061189611043077347961197167775626340201544837912143747831808798870221161474259719675078913454376141052446563700840793162556696751911765159873386216862471224734969324087674267883987204121683417705892619959567990633446054375055507022115448462461300632351061634086461693171453605707184477620117889650956181564621038945181846852280009446752722065449357297465810079777312316500583860682426247883273968768378069374142399381102235826169091511036525910635582759832620492531265599621824900137824914347131564618256536110700616504592255687053208727411390611614640821630397457576276980852772938964983258041683290767231472489730073256912839814685731967540441135213555082498086284051998224763506285772498567242283029353465176931319822058342319897368286410924071953272796786934192535721140166147664859466247382079852104596499635148458961927660167038849445557120963251280541573316642340819238640925919400703171496935513666256787107987162266820567991881897916795807672255079823853065810828694324938822553743929056091945329804453220885029377351414661913113662234476480657200592405589355612748402927060622304261239608272309989747824081551239469144219164185161832109515129388536769591895155047419924648282695602601646589196670869097952361085177221844506264846222172792793838250719966517111015817169497105370535823696781056527132671879338908250963784341528347732648757562418447176921543557714433211009303287781494836965960465442185745672355340529869167246908184891991611623806179472579393024687475773838801155888514062258567186205983187412431145883558292588182414555189918977605271000209651192067796110061923361103950861326279907943091857875430246412976708281086074254145866640485581576493337052752255751307596267301910734669821815223986221082995045856815726728358588774049196768762361403679722760533849787581400482704542414793318421142792666003391102171441529284005094878501063730626303649816301489721908104689663446055669134801817533634951147229417703448444350337694322974638733061220379132304441540737073682910512115588660323021213771044805974091946404348804377077890360559524702455759028242086383089580017566572885603021246272661097434253704816146896938974641195284269961220251062610465058965668237213809797337103516064463052286570735974045694859152369716762219374508597240999313591863359046121807947309790660971403451454764907711691187305071492453481428070558524063009836482952938398465037195504364380382530354128252703988978465122394776792536067130486134568672918519894985653494794465578827758405145640173021480281031112337571854030697603840215378491621392796782066688713874792164365939183396654534805553608788575122684802200555693773005241904808878989228651098281722812839884308926608455060752377574159430648555552883237895694310630492282224087497506437728035333926324505538816833410234639955488311381071019638087136473818750809330859994368445360272720044809625420626005205145717552482104781438000126126973086244445772230891542441662311272798519713228326747795830241840307582879499028055074157564669150156999210949143372615082858403910636604607748158616052861160420334049092701094498539896973181345467021987833097068455872801835051354823585149586727292289857372396174680801836017992807903812641976351424419202712293619854945045361869087795471496250058587546376024056385965890438772065152657521231287155388854113287254733863760173090149728249937932323214418537778171658921895722403377778691303052477921128134121831270946406802825066723694762470237743262622454497797084640969610828103614756521098464018921437975995257916482378100918149105695940495351446732874597421505431000707988881052259365882288355804949320113293953889944104038903163473582148098566196686108669637231640953538469397870632752803244874282413103945357956289990921254209026525239951408909157576661296751941603858192525590573098094915092779122991161187309400397034181102787785695455809730795939006071485979778468597810130670298081864909185460857210368781990352419835494283131206504626653064505987123678995934390718983842809888910783556035292782337023343928745196899550794865580490646732220539113941450864328950623001294696086038391881726814532924069211163122863929631309631744139138794408435621074731730176623735434501901950350736683223429096068210401303387397899737449790379045451783733106855716857377562024669858177835268632711187191747178763518956526033201134662875998452911491813492391580091846671575411918720772745851054567870044527351975585515261090593712933233126724569744121390363055640143568915829028437181655690112127114520885915923118953801428488328748795529074047863391572960949722313399336512029942622824020980941527781650525951870490245233726651081091843419869509058507785920693175113040475016626538838021046291060874998651707723439082120219017426018729349397314563273560796771869390895291883576779504273380075786847565811131972247719783191124407226437480788213637641241392488608354051489176414243564209056312724756282552052499785102030976416852361192995560477204706278745215983847037340473546943765442997852001635339505063271849990308046420919650798219163437647905199341605069407816250569167779679353386339829737987721353673368776729011949782405888061803733890434027026593263677365156798172485008412851171477467371946302395783371562800250902300621265957093608265264574750785120193806129100035859981029210883665741614409201199664003843629068306262377870483255628043756303061460878290442195954282169936059335390556818512451731019428452953518771425854914459511645478927952807879497018085135294751627383816857861054482471019179864834881104122975464099582201583939735724528109558508597648532314794816458655503506154243650395908077579286237685794248897035422132611034477884607588113351536903743214271238001215294596887204953197649763179673253189061673734517435005722319341674093802432189415044524640671142865073031780599774412516374218320391799457873422712994818481296213884968800741969352991719437360865390677293370015729082022480489740903963563884657499828561971016917443758444276434970723506041744076522563659376387014258291803760222681188222892593796682112624521965668018531063410095753197265776343101417858339425392258902505950955800839812660873907460222177997002415982267979530750061981113684566104386845744717204489026798056258062879534350504987085367370358714070053817324793834864234697285822813106589880828747216424794665222449117111473302951837594943659081223554686204557531238677382315305725945729377574562084642108931895530466002372282464451215785481578829418473078442542751133610815966791687434315378720498695680463320930914879949141079202185418180135793695285149991102298443162004652679551159145467605548305163238648994481546739058063791779810424799735170039239358039798136747014131277758289683145665145483523362775524760105208763825084340044588766335709245197331165938402844803551428200791090132493077161483578444866017605749824609284177981781282535326815345306643872220045021165982757307979751365878430504280952584073643734790718467164957466355381203183344361872499917135475810337614281193534182714503855838504649970853847841807138164647550629630777644637247254218452006297517034251314421919086409855712437997988037459654016939739612919203060505955188528269743395662804005429354546416324865962369027013220234921294485045114160102417559103283753306669285117892991532244120749306000646537943892410741481345655525811288703630586263020519150795869153335584019507493376792357296654130803137442266730333336589297116280324621548263465250392873038128093233679208419790875681566739793530193525380165873935013330267295198225581653976944633594484266831991562561061862611179801603163829597210508044841481081847350032492064056409457461462056115885430380678096983455589590737378214506515696292325890057543813042177305993908890887798265417623519151399759324019633310860026177512620269682162008502837807481813231724348270520627974023360654973247145567643654272819173569630145596305990135407698089541366812307341231278227709285579783172177123369001480953864253413317881809150927118647706579728253868222549266559516592115865060329291094607758329730382486983254508839620483749920453663316465669316204177683458244109427587620883272817336725779890518621518659722823837846879377926326871916214012278220350076211843067818430440977846504502220827813140055334623027921735800999299385402217375113505936917811643895312568246195972426472581457502105222288986304666582344373746639137710610813232325714912498301614845228694012402085219699122961651597070321906560414119996167636870627002826475787737077397578926738092297517135762100379941420827782639785049870157013615391934983981559229686150599502738405960112546359766589646206340632789987713654170483488565336643819917581978318371478661985182485346701616501977644810068474908805915939927905443093968838538677133127693164220709299488875222691306736416717430222299621154857554768921220289214216015143526869468748664821072089249705650554586165482483947303300605038146825262073471884802538023096458252035856319595490261942147085437814650001794636821925108800539411445509542827746876949998553121938925213310193552417434322227752838225404085220320558525463988331241284597684552433744028898833939577979990756816115840371869550175365418185386115554258995652608313243495609519099999454371039612978932014543635809135166490835154079083493545222395941178630459602778272633240618670611129305930104251234910658923473498266897919493477602127949088615824447480414646575754786899237000937979483644331017779592564085401081604485002954681746016194976826218631014159952392873757132296435601650805591708675783018747394749433755203433483195580778938765849850885413693917765244865754907981360482495292376079005815453106315546229218215281170608254408283421993711176562258142428808954202134110133776698047042440315270505337985184292026407253162530238874067920315949457457075386646201748433031220822143220741057363768836534608849408381390161785866136901493316773285067621240409175957531928965487246746262508479910472964018257627899100276859033637842621494666121720657914520618124639117772762359226088093067413485177516738759049713629413394813129381778155899712771831069342858146859338629202889333319324217984304461984164840044253666978669672372701080876073700150391067301179335974851966757982018389986692097005913980947510518988702099601886923164980027230998168114202581645535227332722516341573384818642466067846794418598262885050692717962708175834312705890111986329000879283581904927249908918038213932791024048606996110249892582070264217884491247074819174371046107951738799100944452597845893054706498423736345641664576397871995600637668410409801590141326393771813881005456556372559638974041146573913090196444971608140069489400589701505783815722952639932053519064133975463970698195013152238750770337398575526943847732953907916911519865492056116358302041725418581245523718105315729394201313299879530886351696821357886350682891794996545866106738456283853980945799792684889685319483179152436733989422338211167121368236375681671818541246938231469639171636644525542015943788254965571078656227577260638186921458063791727552709723132734404006629728894590977752732998841884366984280796958619880742492567474533685239659179345809678497225961143451267519164653062273944087813615839757600260165011403712312254104110448164147648301196308272681311069591580916335768427081651796864586738468237794686032621124212793276310677376566652317407618490467147261589231579159896280427038116973002646748411197882900336281502020344437084382275088580510973912102571104473681802538797861805111514211156757098041353293248287551058651695155848834071129233178729968228857177900787973981468195505941239886832627604906962965270972090342190554043277138641963526843948794180075666533798604250287635545353544749011053059340133196313361955000600267231959974106466369125018845107934376598436494522656586703038409688807013275484208896674941688399311774934105089251381234448949939408921196527705250196370638360165409536943857441918611496026481700738689055425537748107439450415877321050591651672104773124809909260683238421921314235073694046886082436343924013834226698558760421264693869989387507599844641955228011343798386758172906223605360003561682978545026909928675615409385790926084450989978529107398652770347708977771472649676771618955672419498943481086658956051015111720071261931850261753074698073657407239014577335842747195508882700848370133717548107110130575975507759632064362482449950410015752498684988517652153769212609426496671266218117723774474714467073053247192886211785572616206310693738151095808682733140694565247037411184496982105319781671130523015796506826937943848841703444852739070725133991686331758484174617260050368915321615435811423601132239292088654765071103904580190268462924505528144862050193867400478647158124247767483815148751757415946242881159433611588149116866590898693379798351904992005368758348700375018565986814419274989108905384205447601848161696173909788086158114584944005655832992399601455891910452263277296880731143768015198136230038117695206396320786864735036871146156528312990176233011645510299122030543707109819582443171549736617112056497199478976424048887397552754264724316516486756842708128354054300995561156905795436278851059516616671685174828096140585170988143153342567234901045684233013193551755017702823873038928317898393082222527660924975325846838485130132496277257540232216529047965539896935357839251860799886543367591188139276486878134043004394937119555213055520679500224260397204156119775117280934198391503305118286272643049533063561322473596052932202457898905764714128753982126779826889744684756332684822949144757133704193197996161995014464583617956316337185084042638219903641162758083461751623674647910821672405973681289796921656176417192545865388617237077651192722954228754801815475529441280900934382585247870018382236418210170656505514186972028714158036628338769684407916790097772303527337112184260401446391332214039787588216717082512262139867836645374928127123988114101125812284802056062587268412403039494985667320824561838978026907500379378695412929552203226854820283710644537201858192509662265077981838123081499508339317079446718837488434864853330526009951573303459739074690534735329047650745178367928806560436946286192334553837307499885787883116078813567644515098371160827886624684407334765624335711734191393317318181823826675526270521162524404314830742500815556805513150511843511996999471569370941464295943091320885214884009329072301133745964148004800006792340799008036618263683288201149938705778018135848387746217791497618292721724170200743401565196920283573074969638822509513493361949905400537960772583685847875962417551022800880514574053959240964601549885090142678010344347532625847696136265957936109416726129178179632332077373678813078255574952914235139751310370885632449493679553653688472227724516003031303455413036527759852971196610571663324329495724769763209448072700500073798673946426976802962487314025597995305336926474960747545983094914901095970130829031921559998026385025101372485400249913857381030455800716195447628041544781201047348682537910165028151524280569385689999169743473391507334762787957797198598270888080014120174815404341679867102487821193698850112556828335007850648580976092217714920804538365644303574454742101168375559887489634928799639366905189064964440459340402948560509521541835060627866533349120296337807413955498684782121766337324907164324107510185021203729767280941266299353462743659405569996603842499101893706913979210703782721481386933282527672463086821378675425295732936940717894566762027842282475335479104504216409261249772606776389164661301651732960065030992178072666659124510455834365458895765371083345270589154755483979047865285637664277839852857924902836738369025159777185027130028918693383335132254411571492200755923331371683476255777342562424305188162514035368226577988294535302942697987112236123214034637344966951417634585012949644910142199126064031693804744734481805370184306209719891992855557549340731248999636074558982622353592864498250549256149157977434496267799923616916325715084207175827290871649468941562029136664613593573297362760376040855481500739391069194431791946310652307514246049324592835540597768967540252174864188567861491463295747781894348047537148746218064070344448611595614258244028791505735683468607947483938127624610249567056345124910135753259543595037680228594562750214862730175457686627506793616633210908538746606608229108135927254889336146091572522544155761038993865624665141711660819876556572950539653700728788338006108941049499883650288207346846839063378557229933935648947459835122425090585351737223459039514929598493831559200915568093434529125652432036034562522643067213473283602869156908925914676070290652757845610420707178812549250034992137323347553230326468126705341345962839554238194272590055014564215690161819806134730644410750449780200984491778914624199970671557000460713913199609876742505386542370025650300858575628889648020462288131668501789781481613443992649991843439928757586737931995928455797632837530241608678952165263144977460350774737251840183053437964242528495334355306523176964040424323936573885893204447370774922671615127734389433353183511604806801598890319639778679389746475514616813158655046932941068790452881644530234337578935735448715598916205590712569805434681561980268991348499408592044703196979190529729566844438616280236792523187370228718708258065509690923301519905776189156928550008471519777990715168700179970408977202001998297747300902731757178062720386097603382117739793780605987849472202681614521673594457014666764791644406667863120145577607024144394984907343791897176496053755485825497427158783175821813178342316839812760996651846211460345569078127481705387369580412441738985777580034162714027155961531092514828163081822257795329891148035348703238727909500400100176140353505377166754413607648193960286874825913212187602128926199762729667289869310585023517264252122885972230480448478913028297488099173697994314835578182945891590988461776551465201223084382900455317392586085563619568334969643162758211865623009490225617366981167426983906979307652157185173936207528052162669755034133652777573815345854731262393043527234239626939946084218670974967503847925910279513817883668546511519568498709843221758734455389720768914465059793528787154365012686311135369661874166648076791746317182259433328775125680828472490261888322046892306890619856413156029193612787867053048051207040252882673677041043987901064596902860179400794229444514428864305139396273270366621211711298239550425996165978642131051796754215668348559560723430017758785518890910244744041674758226872738185591383255419604783115160014506144975956574283224107424429505979732989637526002950682158701152194124006899389958880546003197935580777604427923508127713215533524914879446214103995799379491028008729114868308463315371259362803511929189664464499005101164836979319358507765110317035163040271064939194658525161732637248138108654935650648637192267650716586309783358290597175003289931550999251333909130075183236417577621959955027723763480202960815338444222348626204955780531013377919025975092558654510836563682677330043017831480510056603688968055420303693285728665331910354021615160992778890252123939938984335170417333440522240560938334907494018547770672368056474350042425334534774955682674515955376481337236958037758246394209564749880392185629805870621745757724753771151896689974716985567800950539041610062607405609988937499750571577446916949967593428849966553700510169162854735969123367735908497715783808044080284506384318897523216168329736850318902622659766348719925633736101405265008189949106542671786473546035840482823682398758944801812950140632215970828913040385416822169295560800393387168524194990958472718776937208388975963954667326091441351524070031219370245739696233258286797138003060725384593911140241198303693037583578067361828189307004676693648945940376452156793177052687486615073237547087510648022112732355792970241908076600052864170518992099940749442986318782565397040488140053472693130328351833812461250136505816603150476623708208289607429603033908797260738322697337133517755062329456810428622908962538069897982449202053946268838737723303497305519695978577936866908043022937352551625499099026837046694459120868415956385597110391450869932784600466011400759702093495799253891713613806550849058495188780857321175534959459888808341580378327217815841070117111718096875722071631030776253609576374003296212793895265215747802748437067467550083345184880768053230563256629243708565753489363274395814984383486989023526324151246638374420149461230577456749155930773331497244432378539322832079163075937636316978995069888282806660505844045572670380471644076182294072008065048525621293316793203956181464538332810072953568843559994876029620725090701140830386728273043556703805921572850471523137314619616605282976786441655682759857430008986950217541100535016231224757373876994279086529048483237484472781784231197295486647740984545325680737990626544312368490500995962917520307755910252863090127769225683672838435328735584891348355133917610602100567677368403146602750278245155794305127612226786033767482655417520874932250440690376701184177510931118418213542914593189703276771271684277170724791309621864033954484222440869744378203569334036911911574738536194583919644817739923750119669412729859096692974019606949374976637193539001165191324497237158999027383366344506366821664650205490060041427425327494937991034800925700391552202214631396173267001344723892865167180317899016047991169577412711117243429143022079881455466513558834172043135686445511283710116596844786325443888502331057722655079025317662045899408910735758462907477943310191830340856040824406767692815695930406360253556658617485247809654775058562947857681871055721163587419466380227206848766023691326509173010779274734515989601399242678420437395468029084537870475961447785054716991909447064843855617103014910239764648593206369852816008403379432364822373253192383462333173120349811070077342612608897813686337064922883448973391611989615301018292240618393045860469450096702660319998444574980851828873597026728846588612348394326271110364583419261540678363427147903368430509973152714552078943801918147065678232448125710284813620111650149949817459782465148496541057909095599231116583078923406490718964680849922195376483556136110103078997105426079684813121833361741199981268054056251766343593322058671715417331414501234317256192697011481175217591648013749588343795489754424627328794509037313872588816898058654369401831622603877563484765088042545733854040954093548652820723096095973391751947309310121550824985823612209424428675786629964067185708754208039418639112391899283739999910389126276161309158018908713794629038782437772838364858989219771185752025629417862508178411831268753773950941175207118167848560178883588263932314382890090071452196613108593403670805099611380616565597855955496089883555176408212436923551783074242559426468719546508529779606488616157742797920372833844673674411326675929969683259702386776141229802936629120933088633879968256266271009582132421333257383875493342180092324879168161356525427075870663742098844331095923812547777326563710684155162293055457932065367802832920070410916964280702855089247579289844043467860335339694847093288844400088182921162863207673233428972033612927079117032587492542461633981215742425061804096603635200526067951620270384469869553703075138628738347555902970159438617809341276664403332129713626676535039312040384352825403994487334148258485095708704955172630907974116077958946472121983654452125977536673067854855539367958235625114907949262111099275624324398697459056951220323431724172697090564501158824850925684038820488290862470207979120355558114669407304998825064710421109931734329551249583382701262136697629961468261688588470378851556045781054236717713380324840826461594245946308911181665288140466083953203639739336771501872290213680024718056078630389881728175548462108559819735669361744287449951611778806718832513830705746296496324018095252192140603282517911251542872508480169310014107112759948193390841416131718380245550184517308966311772410501980744027246999266761776547720992500075531873967210586094347333010301725417984844673450730809733564539046934743210681769283398148538560609480771468136415398334052011625198169840785866364440001773949939916152995727484442543402074514825739643427269573098430262697404791846609916367236646799003439613777918650162395362805348529723065170472018854782594193858326367920971284084170041966889429547348334982598152817724618524013339890764170839113849001897705538318151195972667012176366146409314413190910211234386885681405866097437126790254698777910186418899027551804925012506021777295896357539082878457557632762126825847125141734150530588579392835580555128470130249942891633207952670190866499498045476433708401868115521451074252218859059019893657912107091042251803477901947155382242176974475877979711042326472762975037150396716131306527114221578495486670704048506774143579462466545441922803890001154836517341984461488806260956902962065438394314393047601113488209257903760391210812182455229856285102482877764946541643045544553509208406622269258152463501939915961284138388777272370723199204193468705588651631327400178579793475113895095492464259914526533292028484708732075733488072031865116379165560502001247003215515694247870217284835448080424780859804702945810402689395526041890963298071558988389894792138001208508777630679348393019627886711653681118328373339837157358596430628607977050654993790823043259016250362930297186000165756541645368205024176717699986708298238327689124100042778818941543623069294947121682254494246198759707530584455469311732058008383204274071754373552422209728442717208176299167379126653018113109506065555923360129779285999154007602565649903536345754463033071820588015494805883060560188972851175680858017905074927091812984262290841083942437270736476535754919413091264609898930365172557130370148973152287170121693590005059022568188995801453060666303474003627001925374257583288095175054440516920319777635335699950642407058253606969818149444730900253984556287291558636330408117462690941302208772951713168378955481467574236578204587709109257670596751501505494685348876682504880437632847055128409847044899095253731519232386167490153116744926781259178421186316531794513004693254843924268012062074446416770329000557204229388842075931606352262343066499180669405545827824431451332788687467247589601109512667165835199636885656973910762020903744227823469049742314189072425585334745213324028444894867258052051398355417298037511382660642098852471474405064654512942440546427273608455866213668573008113793782148564201399647025566117769314251521449432239360527796976050859824071813977592407002961058713585595429193700355514368510972814546204349034074617190635489670341466602175164562449547074925337413511024995544700417240329340603746549269680435410424781655566847732707603736968005098456612820933451241813833736682641336149193217912901426333722926341533716696115874174215981461612305789052221214550623717673007166468812189671915375936258009411288450779627813257718453260707090041487236361579132679900550026580885585353555411410231298232642332465055504192477569000872644453516554946948000676374227139357550029858060708952834118807298880829511760041378451849124836536648325408475237802654525762287290688046045095316256911349128208319099377986475776884513813233045817238750969905914632798719100213202070298728876296003637166638991120631290135680569073865412138311412989085489635284452329004496954364681360062568966315387767846589374792694699061201881797082022837207839271083729629164796718485055210604555389589832092755070185162207182047959704291492894449499774186687383821304458915780896508137490422673609378796372650376078322195907196281369714018121097241990335019182625240343471658060461898265096189190695439095787895476745127605547145538339005920581003318050310359637108695650206413706697942157110333355963940625142582577848750101310128250131180126773441677748521508576100132973123006214835882637836769563293852252495369900032296641983404690008850655057544534836279999665168286591948597109819862297506196711537487989256539880508058820943609383079330638914777017893768069812557631298576230563202123080966953816536124806255647311290316904642818573577830500644015928632400709489261634789046745454625383858283138297265745484588905999002508256609327464444179200468830171445753429765410727355415637498133726846062301221088549214282745326076393341668582362599099396030586700233885994727713030572959799850872227681252593653255758571970925145535172291586640277205956018811801126633064907054614597835834494820193583182249459254547023782163092365666530806695950850790182366157751263946853462626386342833004142177405390026593990862047593666919534719480622775978450289712769511795983497925279838005494097080300659506360348560031447857258470502542675927332023154542335402776867194245271273760399432928915147491651984027564658379233417333426378385917151277566080535851549567941787559385115886325455266446690452906489773796065563686720689978190024291289248852508381265787760649498910742974383443238841534157907602401197128563541732629681445314131675730137517467409944015490823357342340800190624980990964642582805774104038500548555846854810967658401232083234190167673004386291946905498659750824125515001395145276355561930589278616952402788940248873971338518507935990945587734150106027607063983686816302726568134895769410255223060529818489162842691681808160659625095177780475743127386222446592026159340756650796505615792294701698667463294968515532183330564953211503203227494071459247486459317826690992974420342480177122527793922713413473997305152321290225636217198035805516372906298096995195522168964465268151534012084665653218074856405034349552654253904188453006071417841427584699793728372889490928132027150265708987872952558471512809343100252279000688539686502815950686923915452307708565497207951935524755346902023105355870007656980609182799831397801933755046650822863806581881435562010142134451269784903739220837922796541994755736064614062306486876174120587782785225230338330566558968898289052085402275985408686405187241149597723549222025191267580310557343133385047009636016111727616995168984071336236101080209841436554716024745593291847320137992308172743988407547255649092561240634205659438729422906379259761780930066873880954480207182918937713992433470523491926809832081367315224037785213240384494449580622478881249908309853252600659697785211366313974633829085906208301901003602799564262035119208480055599036929542336324636320982460336175305734920642539083057034877886186791100770113808403304488775422760178161608995050403090641894677311373858542641023086566220671477330443793067236126837869463633935729753006116223507053771434517055141895201774187809675019340007310675766372871238647516867005010872811614306780538856875863839023741606118796689245988381709898856623430798061097521300170669849059156795659514933185093920211758732086243823085484045293865620303050039753985981310429266268337839916692819761258176409624516296383028041059610457338650225251163526002256016277318498288074950027886646851212733294473347144692672850748924002563246915294589997738192812387971498086901984574163862943881696700343006389260354943938596189725002064189517366998671923166928597399822967733414841087797749053728491727419772926787307597538392525802527514210263017048652015020060998621595644529348078946219383581348834632408470919225494732081981365815201900010184170636074789262035062055100044686850319300565815404583766118138096547905585574563565523721271113401064388254220629061086790023163066326973242386917513209575313427544064045871942570247932428609023080773372811476689311312967459722933843882486395826333010167059170728124204807836237661379087234805179940232285664646026387683754117396776748265669352523989625918229750728922048772061426568055840200794626446499544884151661304237219077526224459506142301797359117188880758263924730816180163579094137985712777820263644576263204733108133102647376333416670445240993397096499494261790652160429066532608300756108059662848685752153844178428209841351329038916100924638727569578190414718519550741526087286940254354337955311210798772929784286345832200836681818461917727131058640925787067141374467624798281537097638214373295557361641627722947083270907072507193924547926436704682166393915164150019931857536994743890339185932478032538943175545506724663842625861890053794565144337280641317502486377105064802815566784109030631819480665782595212454499733936268878249337874918105791822404479901865690099545964927637696088416814990164376461253431774837587467290687883104827505813715520413907511509009111379013262368252641920307494040390643620257058790667794054515942708067324770006502421805553863859743346519225493236241743149375246236294636912935071134489319070524940225847599128186895530687397849816069192679398312120194713657344033619553856731358588095042082586105615622576415437261684486480535462288170636839751511476568178568014073636962429421575676139693843819513043206252966815428444243986387110921533603019189101816038302626166630923674042472216943195630526642119041499664905607690000360266188006555717458523567788893461145449297160017915000592704051784558544046344454463848342842389528329495847126894594872781792903564090398259991068194467958003461699792664016035901255952369494886943507855247207097236393014502767793618051367831910999899997985992970886920719207353699837419933374303601355450238448136244021532866213591723376131614098057387316753126872560958372658204608047129072639802305147878876740534329285800218354541193802309767654184849118036616898350436711168154154986592748431870265101413736360904690797933348407146381406553344288881070876771651342928403218448500780545283807640084463897976049569724090193832602498830076744739956214107179571709493286064553522836115912215434251728186178368370758787300645037200121920494123868936501559904108210584843890269275589386695925184082232312946974845872080639178401243596457427073305899123982740659394531272840303522782634458393865928335159231020720053413041104105057918677229571458531065418652152143500233391056065297690949721249268581176885112679243035231631202287172274731036473302140466436959625128505229356495595322344604657283706338379585504145322554532929472310243476756177994775462627237568449726989496388680480464977223108687811050818485906992041400179722512130528740290426984062269311266168077313275138874972103625090750254799730007138680431277106035031834740262128479794228089623465884253924749901670190495362962142473214854043123012389105962083750458078028733308255902463027488316916758185703740028982505594861934973182822431292829277389517154269434839202879566789636068642759056614918294657801645987006052771174954622702548192023393047586470511853893424887496047079273482136976543018234128481921868254489163072241002549594724434071798689813313595501244601806500403036588185218967713173599939691392039742913189998472298827802616772464490053756870373076172053790991453674458498651762784180634973646576084160023884287737711815651842182900737431165904514703390118784123380693784125832068960833939181530519711765549140562825969409429330392503775871675855762794395001272462671972904201249232566317828331027761846903604078299918054858332256289912194882167446883065312978702410658243481197452435423470001602391368348620636304128918321010537215563310661774714267110546813201280537277368404820533576006350063396353095503595160224356033390398289225604545723091818696926475118928520874685637647080077273546522424601999814594417284868376027208038533808247040419581471547227848061924764654880085326272352702109550136235197377774273748774749298096564232284538529159011406663417469689931462145375416391773312429413383481412367851713093838451006534218214636426124145506517154564219451666191880644679752171215207992202948803844206441397335391142639683130106169820422737185913822723475806267498884802078422836287981775747082265662485905715978324560798988626351810668211209745084085633491423567712197296717152747552718260834459691585159976206728706641290370477784929907753546091235410408519770045383538844072043577195279212762918064319405149100983448094989678077488998991337058280852277730891382160751369290651830621553339085208945905980932458456175747555383303966274582256759752832804146610466628516973729565544659141328122190117466600427603138763470719643525125581357530596715683756217329849435368816210890975757593009352082331917038412732542534450671252823906436855822725135289153128315967628764967078548812024183870541439952973013856655102687016930622039927524849123621497369673031052233942301838090519805749741866528392239001650227333782717260486801867113831490238857946993223690246269740548929697333181854622265697093842203443502423282724018056427291711791889927269884621086092953390968199534185271939651948910654047285565987007698456193742740025747231822860015939409700223538410678205997312746318833008987145545165920022769707530764942954665553445758639777407857071190143091510857249844261816366681105283830088330382848255805799151883062264971950309023686463381462359506979440592009518080821976800755014086796446458173250400276672817878337961997895036949591555689095930612231529279415051736795620070579259924167116575215267034885223823041619919818867331355047385556927159347610792797113419993513809457677153782678498213128839693884643610028978850231997573087737357238869068036601884229854239259613125467495101679264391664110702489291480454835815531606722694195643556617891487868750630122379556311176021099793710109757039501042735837536445892457173894677706991676164930617789656626522507737375113838034833188968065722504868189163806414368313208496955409970706216540242502525322370327558321909409336722582474354637163534651146350372652043127994663176991984192121806259549453579126550526335756814649360805672036701965185543058188410951646519661935911087851617765223414143611058018380657141216329656533522462708047905264644583020884143582697820175008487610259716653985451500264327873637212122032745260546408166983981716112612189251896844835016912991377825374222998250909585076479203038504542737002956726813441387987154554467241205511538217393987648028495844170248518394159186983176768604609329907622210249842915273324695974433691068864337882621405524629182499745638764942933908942521460947669133303815938034566181811158881805050158788281105256891896903250437282551604688006581480988461173310658879909858721051611038772523282219056167332773628934378210441839684322451299097465929385717713250033871475430117661435549074960083632251283657251292361586798873624745347518401957475580881439663410607878001959732248492250162899787603077350506866214454679420215706292979802183492209594978465614451104625482458377352736186452020056454011947923364811952548489244318006883742307211007824090869896181549517146837349941918656171989833868477718155563797907506006592772572489232603611182467456179880131536059898618880403221840390499820307641590208384581153812735189634903529032112451083338854813032910293423033662882177483043947068540047930470595323273326530325401026321353457533402980447442906072071187824874365657805408054104591532216114911177315712964944123271234685907484661641700530265128225763151074636428853167645495384402716798702927346244520027045522098752898429958476446139329755673013535367111945605530527038637313478405540686262930384604942698193824453744088044880204719125252255164404669455524541202571344650861256156330293469288767828090599640848759638882852977121383759291771326057867064005377953621800814363728469023648440433648234059096856449593954779648369109047892072225864323674533120921463211226076330592138130724946161369877532558878153566437544213685119543930151477955775014567692130402319023770757420725517257652683662514735171239909834543476674553925808626316838033105384090223309195430722827822412618881771332086387902027192928169402449039058564586315654473385414401074936489385609823274001638031328652740537242570340925065614760957566508456818010789893965714365727482644974318763293210510167083862897737100296363081666294358880636324268850800150040818408207033212955149379095032922489501724988894240187331074300341764195040198684686169892836202941125509039161987793334779269335036719883374005123185558914551759224575640636971873035962609025849293795621482924363254958424016474225608870117151643112063026037614210757191640910629210945900573295534265847831426039786090216528509232963710106782647888901702246468033255892462285270983471256606248217757347298133696075069810469379040342387188813108253329694475211475880978498715862176405770664544383825530879412645208070764936222863151700795025016613778479010583364775488767826986333959167721065577990663298431558758421811574150673445282461711624179484900083644502005917395926242951807144094304773732405951623902452068513069851494106554036964154350585877063948465247200385376819932601397013726726869730001557119553750795955280564433858688153714757786976813291634160978677706053406200511020699769422103635054512818797185819578215141173917832173421024169917064497685758171408617193009028508250167197865582141498544501160059254674068098765195023102206299680387772498824588943675952818231875043870319386007986108166873003389414353224269164986156569504974548900282887308163372118817426561414431007984797177909981040113410808377001943559611851221429146192638222171901339738969422315839687986313143871298101202546674314658872985390402647880601059314789903907179289976974572898329426652486752647292619828436672802380127569822024363167236468267638933881646929871112595442599818703061967221682098499850664585249417125614622955896055426152959282568104135839766840233624169919724832844184186431822742647710780229175566327601108497365429991767822461455858098212628540174753497532656287678559102694935480652537865350025316201628979778059460632019250872710269409871238877561938228083561220569787329368014771811109383717764902239891821060795881624161507629320028447783573076849582731256001690571146604013905931502286709424896671649172985416312826101620704846534289314970417518619772879878049797734905198242163989955760554824162635247041184101616124704688612248968518098650632984710633447959035985558384943419930608923005678211696476048910540344562267960654963928979688776000070099849615338942656712849371837895059175609130216875194949251623837051921877868080397978831144781267279145431998260734167439869283767921420445816378237735386946167645812728899459770108745767707178117118644863467690948191537617984465923045241146057742000625373226908791538531882713192750314294096736921422415191097007539087910558426875410431516213397127946715727743447272958788639795192821636111775451611625935328536282478076718670453729759622628937239371904346709302403563613688006182668761132700067015813003055149216583101602947781485329003482111353665163106632525155827702667856932718065875392970553397246138137072516699038502345030019616638627215134097198145191319416455016467762224216334886793625066663413739336779417403243958796255049022249943716979182881299054339312280085580681874307752678773236073325874079133088439527889830443784896067709086640015439979322370288123339258922630982727499163822521824394468623458419741178322497760962487681020523533855749821200850184497157113162767309816333788863866150328891986026085664732424209412556970337476788223603810447595723643161438950506361889451266162146583850847772394347534754184017651742836206185025699522729207351676555184322201994416170098283583259829264153412473020695586569238109652318139120929867762739513519075726865656516412518912264630116695079660408014645239974904007224614730460035352265391508807446785300399328006526814326896774566739848867893312174179448512236409587384479009519074029550840027349491711373771772757521691201117605652548840884751799292233681359362231551120894566498754476236857195179790321901080592277347191555271852992508249440167236266034852435883770391955489466883392791977267440220782959255483309980934685553070999122742333141362271255788154873711955084968895027301384068686155289686938821264669414782509203289039336642021293414606052507860504833622464363713539051510206104147126249574144289769884340665823306695034733615751892268249848993425403806172553082525952199943859760578214621415880530285839135344827918515079294881363861204925856938555661593642823785771089553549623063910679552984976974015146766819002735315112265975134444052902731296585546897423058293502603515603624217361082798883908275218503130917406926084582402287012309444428782063468846937276185410639998297123320310699261748818004119993267153124943885107321063944832950719784301639235244302525704925154725708125333181684680177483875378305862383303891849415484222504668675602305973924381840063679980699929873956238527288607777220890803793233430646553101692887103001509814847622282154146760310200335849875963531177224960003509699894370537089335462517263527629003808723491462416768259649254627284145258485342655040402872638450208054697625009064232009155803093659049025093295797135009137138604560281561223089765271074112032519441365838950723263684522597153824111152111604680477427549809861705630799146896935639119867965623500379439888763184455102068481721545234167618276073935744496507725120768145508425846848460102748126667345037998239381370833733449158853721921461953098867584081987010950256588428275664999684532878547069372273228173414717440620719027226214949250343328860739591960384146616822830961490500872055078204263792703560410760349250659281161952210136085455151338820183617904172408123588645494259303754312307206705984775198420929092723952770508803312621530316473320838602528327906003962357852814690100478566011564432091439484980249611752294223409521479721699237720152964274607302124905970958009349695844471079128355592034972498227744273843947513520157624940461294288947280418379979167387816493886700832504006698184721613168787428605623727386384914611820865454202083115642724914367195659449029270102193533108829723614766929313208755487917580818439360881410098952431474234925076878747683583116830289370667087709250364356185550303055294609079980945182430665935061208096912970506030257571260208228977135702489966686300475731062918686668854768658663655663425719675563175630080820356893545826180418228334114542547692592766968433213958755119983056346346337252380566252177620490518437070352466955479516865238856444465585969821803366234696737117651976620823385817823150255813236477275687069751186998726642369446026345132777962756064984412279432334249789533380445325410600009770258491713001278721862372652535117297361732317720902275230355886414272651344624386738812970708525767825983640583432437458071873165072388521377994105078668173041218844679346946040603974707630856512515255335460078708769672443659299365196863409867737540214590462116905953765822868901986379596467732749567991143940809624565372929918154388949671643491782268137546597070113167214798773915191397511208068048316947196557093586668409602775329348627788077496674879541298467582597557474347282422727822102177770149705679467738370928269992499883441456329795586415101314438429275167829541387604315128887491759353313384452610474600443873305132503518834516929513348410103955047517797102785179221422118883251120595491506436259697115760369263845531842521696690933741589264259792495981724120048464370513241694945669850075845187604061583171679820490999603715363937733297808150846025762356069889706641677386261465266945008331952382946270631491281678549973041355973456861810521571117418581603928642760540106122726834086632437955999601069230465548778227318358218396055762830535988429754022453549220961232982788988509835913357260720567624241115202481159668127554099249031498994362953763288785383287592093586417419310288997078976715107448736044993678470206154049448730258941754082856041326659322868825382776833375321159943183605039867745720939768083529862597213689709324926591136917639706791303089576925721375647635322372024103104666085587853249099043783155285138134168556316296210328428628133075693194299009220762663331945594771581337927580936776923886260591982648095583203920490463360597272033186075332000933878346624246084419875206497721333769206889179240815970612203854149743759530793659277758907877869574474982192132327075167882700118930225175359966915074474402894610751509327589189213570203627723965687952505449279753149868345770981866813097530410844404572642153104439018797395837864509114992967028267934761615971015111335657606762603867056592018917385287799683551752496026754149078029872052476838779698091421578075124263442690002761692967054034685571856844325135969490461486498634472439818450616618165502905993433547407154185125834873947516565706543667617467928948473062928979691930278292416370506561455424683027245669828294520498279109833951115832663889724259618195204332554390514862182960334892248595064732483148609252019297881158504450735198005767892152679155938836453184574989929341511323004339687430789658486059159020174268581549245595455033928836857962544477042068427370595995390222043073056486136994658590741806036234225269818859486493839819052594864485088760936238666858558591764139290622295023043515394854792531969950644815382254012297387081302402383640970352275501887560425804042777090979311163556007297232108952214270985903716928169642987032293321081075629952945764843825820184420305996696442801354056410430488621034448730289887505038191556432074386160126705787020012793144370563726721989936161253905673276954334149122895022169774648447036361638652490094537818707772239965220971849892243007964216716581360888192030761166285053330766477217277719431697104859647131569889184837437558990358789648670573052896626442229588766216460904413064413642996505031299286600577086373207073647957910329421309284163473593425363700093352243405382910658164996651139275856266692811429894933757148591283566191187534627428821317522482939157223965796526243939128291902862414048931939715675641304549533071805903358494583656316956448504605014815132660754301802044849340628260576151792347640329611302975165719920842693420119963075075058782600298210446737201944076597637290475903124851542057688644616748897730840330389445164977309561298835737918176220343208203524922665929104442929926257309030131459680086848592537136363090705877252585851738670065837037870339490227987274938310573689975833084394946729829117211427499796122859676735201670814911736601321004780362301699275125283851834518370901365282066175900320676162823468910508542823623075965672831539370346055313389827676682087484973457616577763908074232003137741523087715427155138587557231742585028304618501532068885225621243729125253425909349201994833401390290246213102547725365277115406190854951309692402624555025158622100897969288145532039247656162974960811081507852062062368645193236159215054446468945879277713092694381330942429728360164949122486938577176665108232797270038533622000360649562728749558353226474301715175943807128022164729402731299058274339531381875381754984061947162715830199269813329330610525534636319630735480222502334206698682971598274399517010880136834165703803515492817503319368880159598220671032383120088842963724806841981939210735451916587463919299124603485863164007361833442990468710009175379499279166292995375534155982825214615239846328325331944302360475807723780335964337983349906643110101972559310140675629864430194882886591282091996203102630201867525241670898167033000362837700386210638487361632443123540668004926974610787257785383773775022172917489321692257902492201383974650956340871734896506071501309450144259718985599387646322220198709024202959934066104323289924771538641166106162430060874097847442434344618119044208299172923870071102827633359790602618044280068590465839275710267069273215479500473617859109583143796702618448704194384640281634324924972864175680579101833406465289317864333366270120213911826615018081363363285922477988991378599732258449562839537716285320888712107961331779164979039397085409419725869360095856819046344966692851479920898230390054854769414740364051903778383583341044216697918931132927641785054182030465488645847268627949405473571531051953268979343857315515405052454821335914862606984387393434332435407883172080766473814151451965206402682428845987769258510334896014978628900328895492365401466043137178004249472603082429647069912853756141169105451896695004038532179103557383097232962090093989343685184008637414912383811225709779782922370241131247240629234399421458048409730769673359206623438908675120193200881559089649391892705336382507902449833443123792851566173612823983133501632119990609116567575248744068495521371935689906265898804442637799833671640323283161605822349701007626135174556409505282860111894862029969837145814882032638159482030333631350966112977076976155351441803539967164479316304476544961979716968249719629040170231801445595679507988366882228405665504405176687117406519908735636873882725941664482114578935894848127311135937383065884743905741985941436191050106458957172777456729584623153029136207833605240960628723070462009749002253426740010093715430945279881354893379151120657230341495248369385587889257807273363295997639447615429818051544142626328731548833570402348526169918550167055815162721882691920884112261544070319954201078206898747537827928813580166655066310742432246011457999346688103671443600110725500775090248447423045430550388547546921816230503829245406653660949876525570496914529374965812482258003213046980344637435344261934099698111528216257578640207302075628446190828637658288641662801961089432617723340889695554118295341745640690740407040354226445967648566950189779549555456864317925166352811049047360095062833632203447706005861505945980535275434605532823298060178964458220959913167830564826394676546873766298838172500972709507892898142316079891584585328637406346751437287656655142375392693092061912924640559215184043148685629161766520510365401447162202201748845783233566063212045133807898075834043466949324858968156977521351379623295066987024708101475129671522064923577716937040665724302333667236378928792105078617860915620981600536613311751502873986783359296158206511535255516902590943498972968523359123396659247708774622445039077258103930603907565425874758620877085619968478245688534466985500822478209405318999311679442247733345232112716376273880061094203373853765868016540063895880391265570126821300051020506563850876578536493320323851636450282755840161553266752834578239321705124694126675944653458935808086711988450396039134705096650833204591403092332758464408460396903348798310760306980060785249026433286601853656162606782583662204665870691999781773228346882334684974760482727105545703150562169261008625430982360393735361183772056491746713584514814418647630017670449238383511461313650551369899964318042262756770000595747250903623029464654541182382192727234702208345960980053822997812393365892091131666083586185129853514588550584584475231896638424842744038921789909093317135543234388463907545127563820176753424778179316373454128653329312356005206527477966668124464076637184578276137866484522821860265423058288760677620212158618563685176734797471206705970607048640641172190415469783846508530322825833684142082140222532789601898040033047836829925428908309459297327255054205241001936990457520178780296087773040717926897730308981550831273982524042393623067392471279295912169839605156914165542613942919326214005160117617798404788377011223790614975064346313872700596239586897696378475319301143756818755271967272267632715614811533846294379924344641109039807791770662624479346200926962078525988956743618730012814931211148086146375240920463330713953577736180204594384016976540424820314484429308942510951361756408807709909940837932415755360989412317121101268900355543918437957892516977057517674708464941157270195906143710756305107513115922183718828721385140282939025344963052472867960346487649057580931413272945309320685692450502998515422375414816573815483014380745899799008201415380321839380816112135262522802202356990643028679920462161203569161654546455372235592995588288190140378193528780349596924004436020225171644437638345336520462224620280598358956351102811081870531485881222216515176467052595002646097011650545288729956674749931630568834349620730974688331552244595057590056380511446586865072447138162065056029747966925380857179536193701151132329329023879178307058306212769709177360055251711273595834613956896263244707584051849077357015831203207625139953958478580725915291231331228611227666642389844103151578096069670209907711530532977959310514565186615641203263532819763435721969057166511679209325602983493325590355151148691951259101542816391548909688291673248993648327097685797813952142285834756035834294978749906582547107161599914667482054809912221966466900629282342127360418612383271632569359184652818914451747687213100543852336354926319746296710929629483559859444337401628615570039197052333618056603858041831129958461983193994637282341242526717070007718070155652927962308973809919921485176265076580033510652579641654074348911631243187826395461477165045414190421376264009823619894596783803065358858621639351884202112442245796514479922976543408980802750043702926008873719783360412149885907801831010782697874190885614186429804469312948076238637989638699292495799524109824276891026578034913862745983718284115773374462219452877449078417998621173772350293928793913182142800459005198468630907230508454685908659064132406669900721032737861840600166188364398135571578804477548244763343061646996074334026791421827350830934998266258890516592725767319775087235963131902060543910291525118549109420068430209231716300557477972322589785455351846683462826082676206880466136172170457227445057590171566039600903435620964986688754565365734351075855327502527384330103104589704038523712288114013119313065212132565621311092678898033726101305913566657621404630321859876125302210756291933110378381328281674699784121663781836433267762296139450271021230795672941320519254247536591638835044233870726415835461186202956052370980269511254600989444203387835696883373352215017984795462207864639435339407273272485235258111776801875788079290336944737859181269845960418950499247439754812367362734930476547601229030994981764724366133051272306619255641542383694949524443011357790052762148105212625603649895177338191353346404418396417464606699430119967899245931114454687156893105236635309736484806149951414586846058585143264878889321388902515801822777840791508686194827308123009462292426551371015461842838153312920044409980468537575284686282324841653360591668074686587899325387516100161872826739068628709486294597778898627822306364883669493825185599760912555052833988823165949586832366823169242322064302076628107622513806636096547118007743072368236670794704147628767006342258994408656273256406909899331272370013406650695382663238002553895026414681875750103687517402946972434497979635593605586820172995038194903161116116351556603019148368816062972174003292492833321534865777366057715149226228110402956136103654814843656502603890911588060898281943891717004544614583540512113288939178371242762734411308250438536930821587132174182323281274296283663304038984389063913574946734140000639048375149617473565472206625649418349402251584000474969098715776734856666748875921804325188793522453335307453728012829600284415317647446841005709707213013459958310254641746466878586232748960281717157562684016757755879976550913271402421360313680659138362311742093710005996701763567282612406921194320290071484545358272344064909990076360370814488471160135183362085723053905191575701557043909507305150444215643020257808464430205155477701120943814119342182407445157117003522588209669440059121733226110069592013442203689505396449257654712850294918683305052934795036567591246291138675040574543626391553399814400141942986702105479649364489298322101641803686651112267287440287204359437100929443805793707380522815860719845178197046733950950421957897944073686756309262207829457309500297913991200519118870824952044990901154343760573724633957545128529766896159281743905562420799450392248636537917342734300928048928975991946476769185122286886436265450033558977150979760289204709447823712345321847794317753010105364365233910422551576154731166644528995787665764156882426940015731865361013588560566164151156239468616241003751972806555682372907615057289627630466832707763644932901562867155393110956087001043282346117791312698951407425821825646115968058309346728134257043644621525922653950853802746294710585667386848533603520436550279944014650127178459221864435944197132201965055010153022867049877042230608576863602175026986275466063097649201876103067957881685980555786872991758662239056359803082867356325150397931802848123350616566430382249616071464260447939997215611835757964554402279653582208990517323699507162134890263032031813161168940411861722970248135571965747262933603296293920152636458987823811126691834300574317819474719072342665850533945369837675832809645445476126235684964035470768871452153833819037538977442042881786607265584296823384130038454647958464005670620378250407810966840519518764008807454845309591724869446530085590811951246304553042946375066190833388478095006047807814712754195067289447054356116293213745916477906031028271617039993655395122877104569138129304160988001231362538524950578317053855410197027972573169713767842226180347803746140515832998884023513426257971885626195176088082372778342600341400787696313845110942711181921698121668848553055634700489617614381737213818213331290443505915693580193023233206811903455968836715742396648715687292249572347575400582860981236967475776330144549597147680877622337660299870113060993816610841438997716692390809114162091199816360522174437552277625839393720294952614161336873642207534764782120616827752497997162717584328313606100110156386035476161173285445155194538966624384432970912518268381441970435148422357828941634295916325739219250889879618412742508670101330338221318018609271433699436984068356465273458814545259898456805329140004424159648738384191279833261455396605856784172143446543266529423528493025954152428159649656061524320436413758460167865084794844489598477482656545318399702171609374039984646636841863712837639519341182262065209370367525648284388056433028318649185911956777204577100392407044861460453034651555476424850953078800087075153011015648620898804716588411631372170124065732007644994643840215489066726833467387885867156827867107722093712414386342588834765802663513579496159188906131734750749218131566978612107841773070760630856861581858712074188236616904678741923923266107121790394207042981858542473480205070905197510729199077292019368821057241309702459973722485768766481084479893912323123299873726619640565221182274019523617642114345986740542546007859610105173219008829504132357864235605924167953662817305069687592856694096546765079831642220545970325389228896286268027932246643523739858787539686208918936153964549989461777511740078066645616629865476807962596581067796046412601497718528664680278177287334429984950286035809034708111030860934718631178509011286529970937489035499366109013821745815674673707935181870691006033076380184187869167350738564499623127357399346152065905481282647581875524121837910385517139571853773365193936813614498869778047327680914723441717219352831207025840908861595730920368839139416841427000807847417273325788733812106892811152585228449975974858430920736501451861461966634772612069412115037079062961610380151640875400930982405552690958369184858039975731126665477487816492768455496232530459601078913185168674815595784100813483645367683943533319558291794169042552691205654692261134324742163499757317841734044727698914290241091787009819594210081415988793093424910676776797502971733279766630547233434644805297341899335959565530413703002440686065368407264627608827185782977843257134540293107221160239972434195861632120256142271994183018521563728564628872893439975236187153415862503415826070110008656502149649133834615606810130582250333847775124987286707494445283773715974996501440434191213617425416330204708371659940635699991658904977757471878079929252317348891747514154407195800048399649559305187205862178095550005966416919464939718665250319595082692916082930327004707314546598763086647236615097229995774625772003513109616080896852224269005426948787789535007376779993095031761915183757706168257942911390000620025526882292766267933467257806292908226025320076611875115297653006901358776749185370131331320675410499516036900043764866245321056887542960151064432499714242315793467640012788244946058634867375443200077454337196743071783169727972735049626029332507355592959538324034963932991204616755873300022532809688252189566168362750043073780567706971605578616066478905336352934171728784625030137077875651105096410815612610545190754622784264631997055572961058283551952487273128799302164362507537070565284139674024737410823637821142295076354143675578284616623621652117335989607274782886343540797325873477530302103585229054271862499709769834193730621714265114843057027511850932221919478849257255077708148376976830568074725967021859359259670598464508491774839252473535407240316443947277731814335236754512173806697641058009387179237737847421168559422503755105634527261417271431683691260563851324942655212008096137861417841149696129781031163804584604698429854004647025694583771757174013805315169287998667410728479770148499857493759458270075867210688524303809175221431389744900337162885667201263456491337451273092697510731938269308225218573088438577427500329925144858421172596150252524625113371939969162247368708288851981096525792375505855154898596408885789271759220578194679163371672124590296153003058077530942857372957324818311566709302631856078790297936223294162203656182962111115585781399187314493045912308591295571901598947422909078960045912787848166746365337419598363971927106338509882244898248466171408149075594547261330552583155548096178697061774907644976131338398470259879153738750275604604464990739512078257431420180257842635681632652547405567228329549304957024241529735997965042095401304861328435200205681234520501394087235410411930096788658683865880861721638668960497607323334555482595442065990961187735697965053574738069899741088649114830549793963287148296823244136543371303212958527309336822614327725305017455934880562148389017412628187852906686605382173674774064082136263434597938725191143352900345255872476990265726757646855097611114104538818071794911743863633292432642104052393117992088303860428628823827827229226926072691277221388668491709960384691937896364531966570649898649536439489541384598185727901403280515007753733163983983161410233569299769614287500906083077357999777888325330431081004945350186137993731076769717620391694881099092526519112780627276511910133976606296791659055647511667963674025100680810514976384966941860008606601279469577714726456070416319481913008327271276115750280747594277030369204882177565254765563954720330603774333192943751310241589485091941787339046642468663378357656482125095606036249367211770657311192718391973027608259073534463615284562892499770806414775044897111629924142940329579396193599675243332684075341140303345229828098690415277317460545323199780079877414924680062052914935328879559234645644235979389779721875658785680064322200879797446225281423711185649792200904741356168807639867050398650414842595352279220537597344961760760521107123321449686980780235942990979307732716247775920559619491472863848635036462830270751078067763563464926423912912091434219268302956015081788494462982360931255532660127533148362499936989074201105042371404038473190599586956049209375080845399135934392809156702645847199165708515175724997708556934169995052112019440331608689518811402048268317533709487470232445931344995383381039109758267524893598666145811186684178930723544425906532273395823089073316478646358011683032421986734123286286974854463078910468669315580628057265999440987789846955583839317428653295648941751334216822778384230053105425228669714262230137532177642411253005867125644335926808931412232277968066639411290356792355192269155250644185183841510005926568610250126552512174695710445279020402760112320728454243341995739627289744752169676904259449814674345152878011560318163849929362928830396412107637641575080327613373766025687114967930199921537703829839686948833452457202166453808655690344339813741112911329178040873725117685554497571077790173928900209877797969818796500500507700789452120845666227607104064153058717145320795828321619765292422650339469545112170119184155971677845866475739484644642415068670951020060580775516432751240696770770050935372936397786008859757612337727009161343359233912292453470487275178777637230397716193117611880355481807069816117415292274220261791301955173390699633722538852172654309180717812831389781137629327609030495153247718830247247097875053544979307029269236379115447067871269340163191972950543538025096417276223980553380256337213388735470706220921671297733851746185705527090532503895255436409864961637868604375175179980674944318570026596263176025938999496872502497592326366256788570643952554041571218059110288580806942938024654402833426102784687393080356209439074314660816648243428408445447052236748809640518045771679725649679286062057129778200824373368275579500177247027202048641816525439729276953680047261290471715702386308391172787775796192260699322768789270343351572365049724884481020304590420840585106536169691438229483669357029951036588783903731710887772645211449711937585219441507676144278780355680847497339997627157663985868085703438736900614705659545527610148615126270120406433233628851600428435943083475591182357879268656515582140605915395444199553176954733073567093066816319809617860770723824811466110030983185588243334035310489900549319510441619851607694362912268883931718459991795696534901778794596272020099615372113675491714306660177606223539955038358864213292907135530613282635864198088345658670713736890167738698693127318813505548874135105142048079019732151803394268405417418355100194245449180250261790577874538669229219823169706712078934377385990169519445962473215673312512848513213209616672138714123659964517720972838085981329531793678374643852749011371383569298817995270815690402074354250073354014313826838141230991548271407203168310167897778775561464087482751080153674413977253228015862501814248051912273652792074887647241200649960840198570688464857227457305051296039156283598280606427881969016186727063685627707812062276018338867600521050611030370274050441812554999633215300618907920847210847163009768113865358324852028797091305655622702911321901851262003275550095901741331568005246983043902204622673707260873748116635220244851662300817065274631355561140590110828192155112994940467179656854257303429507624726529750725285589823430893338765743374438736413624314429564922762565471414735999944045881816695396854671244549270310276586719400843407958090131212497277662993184616247807224401817849521278188649572582511076497394286147055840679773841312418702602939813175997682203199500246457383489610235934630217422064391066192673358754131175238711915918425473145936402404242318960027289628151977166449859720946717053787386496232498938155724515424911488650826454008425385605372286517812977701146768377499969960369266883860003623004819276894684006738995743215053553124016270965871087781291677281257278859912408946388895143594775453311322411377700313608600022478440537379607754353008309762793893149832404419649099566745873339082341465391358163990140359486710665114747519101467286328809060328067937030039034852265806836556908187848956127596272472379568066571567186437486987129171648850975000142364511075126506202692537257859124313215820065687611009166667885377188370704171395965125615757045583472565891652836466362261876912384609811662895717876612503409166239015627592389844888891208339642614003573230886493007590195186619050432334595797916116213927948890846248641163432100152273327763307245868998449103698966231695844548693368456178647682618298655449537315539839134189827254438907073288491587303857584230396646419237744700897421993864375302925359814869743101757441126727898120306962812333021422799194967613575772865354702148329758613010232018002898818329442487401345212129418124567634514763940234485010410123725720816428828235730922207070706038445559516681690751739387773974568318405079949404043736321993094972418915188692020011916397163220862901480023080683039295944010798043065109387606473765747077811282289786509535933222324455961988437499433485484042880230687416251708597065748662942605693525625579759833270663224119302953637478459487912087441203293217434491273707219538485655752011476344554416654082849699550086780171784583811355654317459408041793261794399820313250858592672936327044867395883055854829026265354766810984518564712182509557054090641933728601047390432138520268774876843565721953532549139726125720792205526969561568190180853882011175479349103216805848803975168375872545442724613953974051632193100107564412726123584095585340007719044485008106024476231065293538607639409818504650075340085026112263731382456694909357684633271436836531104335166333941583646517624216767400326845661304932471944977405427724413878300970543132179376925782036141204924434307292413015826769154645104178587739941561193073338598574735402079714937905615164301652032503446453852373739259871455419125272915228927262078008405176207664785197498903592880228468728042194711712077444706943487697376224763171714365571470928481230166245494520186180279884951887648852967715088203837124353230108087511909304613572750477259302399506498546813592113251175108820472916982360240710411003080834078686161584709592846303155282015830860059131678092453572277311935498598187319704605392640844318022462133796377752163849767357504408938929707591100431349883673691371984042568554374957847155774521007424306406187114437097156134684438120561256385400480168808890252070257378555611439687033079295249965724928761225798495680467871945185991648680691305238128501560003930564665570720308211291177470426728094213296101878232398968968248520291172705811871535689047366281855752677571071111525488328612959592837502676871547096605889002508605348591868560030337151852080137222886672294923143702182090000045156101371550694929047097035472520174490602014028646122295418822301077966272966375111080121021660470947146006750046742318186875705840701938280448264249322088262530335439140830500536042775107396386758560068773174328682740543674967482034549371347017903208820575884268408107337526450647480733530895268552833677741979658227250095551814472686230053612395599578333257732990543843133268179806665502377762150649003802466976401959946733457944142838953177726530939519934104082874523270742893879867132490305466725202807763974420878110251163701669506418938703223071788402340845985590177498325604388704675909009528847458075784188192699491381194208827305118032149027162243127411949544324202844334914408744563626612064800429659472746348885235753919159891582647110358766680195966615053392459670511391938760952033915977699616371285780445679576729320212004785274141549050539967023601126450468155103593080372486501529706258378497818415999455460064592783991584883267171963409071078778666934776713397183170015443734110780725677604900230498640183238491565088346892194989910034828698502374116568905653345154394656297205204481602961248111799892922179295531860886036375461305483801049075571143532197647460812474339220268277627482657458184827836928656034273280235102479589576064939670803233941239885294725087100047334016708694414415722696123628093529086194106769805406382561902724024119523164249400536285984148810896831267096347393284314645280629734425023867522044074859325201584594110813897742963910973364168899151232470022448669629563386625842606948342838073193401708265403951799363675242303787049917506610356790741883845084301382877384044832781781769844725989651844584529615043226194053828574519013444556079491452915362366634504072722948003962517706431806607269724284163768519770107967925052121871170430791937702926291797699850119397203887000750078213925717880739998976370099158846041418222845904808810356779744203783047633969526459982196130860428172527139572389406671405951859392481787341544755141523406820136932058966948703779948518835665165569597038664293088035792043788843626472079500377834556312434336534345679304094891720608955688646071369179558820912246804865601555841736120154706561496003580641989940639195035780583921683803124261942014567441450060646932482436321680507566034969420088678692379613419874038557813454456601465011071103528813453523984156090071014491491195624495168941974303493470789744947637891136970516905954771717913055223232903818893869892496478249634331530202580508846463730682138635091243438613089216950723040711444537224539555315348303028625594061911213481292902350930525936494276742048066317152326991022480850500625492723792047378818419569487353153418737270829340437046635551316556886236052539293787201063941039230944770998764038953795894270251472127918433359020445929318032935695200382320598972717262318359482823445645309250421491751893822081442510906598836903277606796593161958782981748579502280520494544139384894619967629654554762256270526789954668676643614338110972618408941670030464605706936262817538631017168928407608596607296724262670957039848425967211864906464170849453017000367868253869278273529594795554038829247011268263401157302687730959226839261123672666512553198910428692031713534782654394482279694007421277523557370135270576914092527391984821096218571269442605641476042443666736055231621095321124997941657997785355402097282855722833851343128179271728376344849973596895950353966942252416042583108963761198927348002462956833025539981930981302353737998640584511554455563663442392540470310484018923664252280696470374800596920258095742581128463789535053579467244751965340389564872932266426865812080242861509473453045192007424185002260454810683264497935801211102331636386540576529831716033589015090897772698827680659408741676363686069979394994133900545026507254408064063543094383630889563367049558418606213972701219564587850618066078042543865907504813205165405300195445807224889684007844979470982463617820798147786558149174705782792104296067491548874105214137978026162767290710492068818628281336610456425117947619520351621661235670083086410003046025681986156015493531550540756752146499479153332175900546299637294653120329066469883702077607448346786891621041898254316564734425311228089993700492171832734941772442243434955429611173182846069863402628911339134509956864276358534057062076020692485099938628254486452927714335071327477369302652132883141395242353568215359929427365770166831895502834355956205780929729250239321883141752488593616903380602796046199263867563459198332940929502084365256522602797223149817507361476629837413647041995068934844948189326199591071710799209923555914690849874918921086475624117723641473769159226898500495307227381867076796922495307220387518278199247508672794816844583617253932375479882981250892679899264574783517102235524715080064274875969848564650904669253260737157062385444382041584729778693729957803569395741039565622950135795260404972426930349981756929322852539644615063217794691790593040382393819762878529547408752967854211286789929574053118446133649296606328077026395893353405223182680658849815181654858502523369228897831720159878118692529132400465124500466538104373344769082092336719350242993935684997548121600301429846570678028123516766686094155295859134149823581270738170928771782772640554920801365627262734942075228916931687113618334609752772295768272472879445735300491154061241786422126361827684807039429729046795210235920586898089965455511043681646529676258866567761672505017940120439631369032271764536870982241967192739776565801540974464431089779814261776252351551988860683305320732116319338806668243131528548943604725087687347070574352990914170938395597397831858086797855754137702272560819104825980090603835515344021488703004522406498564591328781727520101341727755101095980863255485369085749058093708083900777864307488797102367440361760316679794320602475779514553356914570531900488867377372133193832341597894258982959939140016186821923525187389842701219345995799853039280838066931260023537947459975923842764195230650379964469563490883819675491478990410966168792116838331940084261368930459933612258552780966540919789724979978067867268799886803598662291156699850254926162462377150527551834666064890874951112070090339536104379248512942829268252241133382404107877231982299741757448625455536302100134920680422673223732001569209324642074401032335635838978260148178651150563964819432313459284850517399890699777852666368420520843418732383193557884045770028225565690052951503017582090587862022071320451989962956869147714410856102609611216141046565775396834534548782566339350989718534263358478427784292553938342293274320705834978555392124946594658714534737856728414623673899609070431789441977953319887798095043661645935501038800532137187615031175542692093143752451203929215915035416174403980271496914121621379413694814347373205597548104059428858063604039281660705280425075418338306739807264322216719832306674600541214343125551655797580431034467026600953150659631366391478726694602825843341434344588579822663179869864318797965369963140482434468658522633392890210568342242176168094095058039008612926425253076947540612394048916394627030665182424020287801772345388284912719925692024520492439901325467476572235296906786150140387035051354213239583546770981713067862550721430512817376810146711296694508196837056458836870339274853398363845941778616350553424077049520395136641900755926576511396077258222524792906879916470474369764297419060615837012224779555535317423420396124657999562829996349788686449430956121023976192066795256309989501750340830643448260998365903470965893831063254407757077329356621053750890433380495204087853607223376809314007536058399721994147208443831342161262430802915102324504077304601286813967481849042694587193611280203216858527283175125896101313671671654780158251377173473687994940679292446304508445268845509002519251792894237903432027257396931723281729828761128433746192407082286587677708341072537517851849076145922616226550076020308915388797809328675321244617881334717679951604946694587891273801794726784952661930570062239773669468561760185833118081749440792793994914451761490441456230517595825082719739360822841793691811910803001196127043519496879694635210024478515704243246501570465251550163924912129875958836142375966668923214886901731495131874494822120594168765272409705070006618491843381636896547785550262672989101393135726092223088999728569760710588093247249566807243235008749472542494077893324089187243227397954534771685304690695238061929161359456071450701453075246881182562786140623930744213118322150833287132798449647445963227753157561309366673326472463260569327458907969138400466571676859593622221526629327943725422117933986935685860669108476953672858063239062330516368123744091847949230372765590203111587036386756787503708975496883697816519206407677724794422344156042748156990980700931001851356037442319193690164489049760902156380506675770613554996074894076139589639683944166361659997860354460531861204949840191494642779007116543296699476017606572527734151821550074010423715547566340859990160456772498424165117726022133160952969565249077692823236829550833373496456550231986256443736611830993886362510794228502937998449450738949121170691198113593699629553419253431952585814434266565764088614232436300806600929424155475438019931963369702661798351817479027027667097707708519170725369742355570958367762036254157990723307624930626530366525381651030602893117852795046529003852621629262664483546923121525156802882563691862717417791707509487052040902923413350916293104163889812130248577971730438198073604443702689887683294560219168828625785188037361980858528818071673791048398802599778460872783062650156167805663690701549507411243323018388233434825735937270993611999905003707375260441544000817093952408557237433022532392940885418447883252073072639788796826652338286011046115824702293247294679747829449506327824904829009537032173370172758370818797278875397071822487939237874941785681728945969251845783575256141521124754340913916607217252084926420145972161440724224832790689761991335948118470061543616518554544055810011049216646072367415221491078991262062260587253544757208605211318650760356907244274033113277922753103618151291666695644058800884362951781536293315630929524369791633866197370177090675349499323104604054849704594330649027883668248806923268766900017706432958250289491593113052593624152940922521123171507881208136934413801059599647617124975622759685385408664794856426525735933099525779368916773178829033078737332521322550311945302297176028750726418192848712759145239990931768001824748037690527119079448187671994883002199162883926610808175775687238271396072562353049035225928906932374835978411856286465276823140097993472852793310969519463924518270487648038390034138407187989486561499224674993718692137288269019864418171953506599316475960833223491827905714253705633796877468555653866553861298484922421984585370682902633323861750567392427129899690524436222707779384607075559003417998696274232603535735357146479551349045984658591851887319694162210800778026385303253610511242327963306823230375302377404460302374025483604179902171617817194147383160985612548712456176808867990839396881730340974985755294936167623185459677296221887601637784829818071953868745732111302966514108390194666733440389514553814749465076921185094079415340675488639830509467455654261317864622284948507716041060557148553113824662005725077116732413393229466995089719313218416503481934441297684945730610643294739325579203715404983201702189803333864500176060004467207711517345594410971950601887936957655052737795618788160672229618977549877275329937224053815649976895964924858242411923459337103979857353191528107419044861178189731165946109054403434083151683964365160527751534652420409531768682703836066021802074599124059154218595774801023740652664359543206385823004558835517041394216289331041819465828696625314295049025139038345888803292480322109275912244569404769291331237541149456924728934831908200511966954486580519443836254785157472077810665502915269233597072497607795490161385259972491517791063686403034354465287683155926183777293384817023487058990242773614950723424911545495722865098477898146575825831631355155457967838308516288088888535012064458519594654571120439502498483292208754585556678462846050362966014537919221151512276207476320617822867582455453930210736613909701628632451706727352683265139702042198074636220649853013947557538660610177410901323627729389557349396209778737201463361164752003588525830124676286383061293324438434986324798484137171174800728313585831536876623724461222804063762189552531261504346037752263354113311676666155420796233158337911373166420356185942449015802119210915160544003795680598264287029780259244625259573261639340302729495163580962753897347287158892629005481532617776075830809030253147409076775183946802330718950258470398932699337712043316005816549530782197859430553868189968113845048127394588559522896081741321548676346930944602575497674932648450513364336846037053746859976319068371690911291345381484152786591329972084399681269685012119059420831394076354348437232166564693870128532321105322911158223747333480070120362546830527039116336130450685327691107672090019964992271786154596576171802973799228705849840233769867494122661058283974777170989249558618864387095715587468992873072581605300576718011738853556176268910180133879537160868584490768622075664048027269164315921536409846259158358839910863161997978677294403480361984277590208353999503733567902575654670399812929637734965381658148123311084042401011874933633102705251212815099730934961736209892436448956419164233416477069387151017764647182695089828850855525757886618217033303964946112945314596021103699443505188479346714758063580325408624786109023324065465582116146486792911669770640398539059370967433242779258070447990990946774029527773784847910684576532786620167110292342742924688926935810532180401540542756392789129565219494485291056838034925698580420211919583815132561274991680704311927989837196877280800765196477780495618907081831480348609825886493178600577228296435376479035079703409001652083344115996954702720151765292833749933277342227435133682024945629836690547239004487532687813323403914267224884427341912857239499912933975011697329508862939319676638780995485182512827568241392683901872353195298810630107199591335068526933093116344327243315351312036792848127226324186945938871438696476997119762874176026336299751249621259283425094458028156680669194145966687295035768423245617035308407616960399542683572454927117877693164041249233515926802564539445214406165064345128878830833292242386912988193002075183750131397271825511090357252593716974658347298278510136877412129116928188448903683440934830892560037858081686455102832963624718393248783330577812065098584798678541064442281479542178897538486189894902557589495856890065445384812273977777158914025770226420879012292294560875409858739849562736879385273907700343000073545487332881992751569508667004133786236896668794457696168786827739425496597888536662475821836077380879327551333970939027152270026662169805004610447484789416139036626089101834536119408445570064120717014419861088344530340579031235646022492773925851056502131191913958976189240932814932142435280125293673564950170378117652334437212198211342031756144545521928896009686606891382279372433326897882701830683859982088208546006825470664629892998763539595853565156013038947771342850833737274106265625065710088384863157848357901727270140014974978320285358630406363281445491564761223205723488933729835813311740318397023686930860524977972742377796828307136699128178337639285091490840487500907972209051481536491537699063177217328536230550648449175441886456272323456382839398000234525110002788257845450745828108589838072176131783175977512297553203880912485773129481352000743367184447337320205400092475527077252560321889996312131870409676261184373489913240299039843441668722143509991237938702044295728359060976109937107583839825007962521935567792672976866963791074172563921894734228115497430362649407920110549176421060181672008880787374378918058072723639001906701218272191909919531527487451789499576377565656306146479432057687038773948016736702762990343193666417729885080464138649731113864608068725091997783429802752488487343404462937260124901043189186876688907857044767229800580061448189119813360236854125377854711840058337143831540085865322852886625220475909954725240859129244169700277035692928674078632325769835993626159721829360923559459289831501041080209825845268837041461986840755025974010627002456249910885772351726280570528913247259876363283201132616501658179084597462258465054318930758584588134411753485074222112109487620207149915271692182544012692721639119688181090042487886473784193433109343114384762021774322186892012200452164193433817572066693122904882768551311058544898516585609734657685998291604162718419125128688730145907395810574818723878662235236892514934211370859762429219702128923920254681135988458188786479967275050285802159066038097165469096318257574603618016947853110881283703424572979512347175765150738846296278922040101443014645904538531467926456993791380483974999034772548916594045317400976450886366264897053195556916537703778112785472704378091073215546577432801937689736308196863914446185843210947795347790680373236940060603886114994637942636233375767709733174149507531473890754653908686113608165909663692119848047629130229245487482205223171562054079064214197028117237998047041243961077930973930875473691758214409544141437709684910596319008420178050130582748329253898541819558708165136809283535392547671090890557133157564414905776593814430847527119224309286361707141753909715832157587039733435155314334595538390262835693393944361421600873601111148265924410778514493711644821764407785899742638015159814346888904211030250496324459517558777595041789608063626651864900577167193699039223527132390716274871015697598403097639657960927578111128040294399260834577282988633830171197181285468544302030026183319004919361463180708639094010427979935344599497774364571111209576146462052915840090391768570658957511270423599604258813600006399230349165527304444842013087003521243599836928558853589625595760435262878516643625240942110504078865452914383065447836416491132176707415690043169958536311970805025147315806741304653788700822267277231601662193618969993280585194413552432705745361695438712161444208426520072982651905445339549320380028935034868659202789994908595999080072968667891326625871760083099873978668805401093872226230000452227574663474222285198119787454877968826721370317697626376305229775017293167442492363679260437811310635820401253510851012996883297169872075542336607087170393925221029681347322993641597774226111858617207270279681311557775720122853104477245807893665614909060259561019974856818324604107729671549053151986532612195059533767583701578880169798062323955145143872788312627270131392058185094908647990535943716088116904278497104098102551267696247477339730463442291644464252970773508507561543432196707848435458302424502131531759363162908402031813141722155089715510443454474500810108884370098971946130629211803941832988055609177730377499051038600084274121656215362324501476010811049253751319768447619781575089240530117038692833281042254981803327965032618412527651493519151078459020601269884167016343064731361909413575984143301225575343804081795369307094382383978714016724542136929470512845886766626340058179194554811548955361878746241945887555889455227076148513874770038376574567999776531455418174269499524833019948171162278121005919543853854784901963225545450548614244029148865265078779186928002714846475721583173813740811773749252010725625153590138513546888697891189863604418740282096356782484635057228073449416489416340790974701685503445683530198804894359145284881463348319957785721732502106302058571278776132791901681371174398567754513213577359021099907057953072159602683370368616703868445644148374725238201180292796124110914153379982211966268373218458074893557391421694675995215684245732734362514039639183554159004892812219914820589867760055783423415244028913746628194674008412651154670940918375914816009937236421685573905876956278298753488165139181764957817977301452083338790697806916242832299955924153772202732053313061718398033265236970286003328261760934718203525563882320249545298091008010459325211500298317858013471313267124883088612760708900407178169476496566831849729996179381128131871917864736624716494996452658275907945931591869448844194590030234757316884064518381742770693257458803701300666397711805013313297690871967272181866550079761153751275324293016906131487696532179607551028006097297030124430201533890967817563849029407369323890925796760153831863921572320086512416210852842375900687431612091957288248174341343721688344626778664917245957847004957107624878708954190448208995872017390889149937886105402190251908067809278768344688447430426561427910452091411364423673443770273585288104310576838560643355396544320741451573686434305156293538248107132654005553747350170357811295567940041542688299084798006377612750054892292095240904655697602108159725494799311121973992088588496877634640627250718382736598705217445226517296163227813567422095494790895594839249340581829808364392393531720311163617223095008840881787585810504630587904983780933998193033836487722463086126637131486466231330214869008730371129703731791134019596777996888304492476588146683288811400485338222900719088307719061170561138559418269043981179668230088395134148336928948932389040052234557133426502251740822934844647883424049673664993729037237194513341512578367432972079459438468610806941629744022946539587396322881407407258824029363818480264704149423206271088680969150508227653560789603293147727780822514672454521306930783558938741495511782066754797264150687690501294948601808103920733996601430963918589142841794168371113526329769116590740930776859681800623537133825024011984730049338913398417794275880162726443539392727300416437344195051600031011342949468242737174112866821092265684438351648307015835930971327462962427474448962754619929191396652015883239420031599587142976641437628892901864142266944201414457144312292174608009064190907436375347539682993560919062753374280173221978883657387875085067253781677732822800837670786352662975441994416426561815356717123550756065678647788133905319199042273257834075367182680466523115493995568388379765461778926714490532709383604819435748369600226843080033758142848532097972435566273404728030346231547101565268288543736595086679843432826575040988718912037372853855227780654348283643654245258336271518174017442961575707480826217850413985786412872065099652005764843812932695820704545347580181414416558575376708593479624818287342735652751165608045467098225080712669283610140655550769861397347836827794420394528646403003415700816258603678894656143439505139487874176798398971934570068073377099832442504469266407032277959684031600726992584998421537471255324739632420442373087325947407109517883633795885518112402238132602372440061172740036983807716656322570545778683626600484361135453566903583055689073892715234262608629447836478131916923102726157132190205491322540986257314511742749725759024832129201552460389651463800870973531271258714029549589047613346199278248371866734750449970977091732676301934287858842515328773401984458485448651088455715878708146668630715420480229907957069972395039195138694169605644416654476685066890548567362973317561820391426628424268302819835250382069455721057744218434306173032766546416167096965927673525870734600880503950162831340688682236069631702396222128164702991065135992745589030277481134697402055989843087352121854615071079264944228678346117579103791885658548807014012349031253300779337448706825318395114939556844162484101516153414502507096746122526519519876078563403097553612610178165138187624815430643593468222202407061806832460925375100236018608287978468887475652728187819459633843368566361765076875479865890824850578768417865244475086615406369110015580129353625124312516222702359427814078081454735856131146254353748043267854846663798251310921919612156753757265853471148800853495587764700231271572406936838407287372904006310324115422901162261518595983840540451191076104654150359754487732713733280722644230164564177876892000150451557851185882868503639076471623494190977851317863597884877032429439188131236385396333960932624351932622372239640531511029916800011075017198291162178849852032897375032779473867403021543435416579710789365774744592369116286715136763945553861060098098815652105850518714611649062262655911226069103767506168225649552346934054397846147757217454678496654344536549916479093283347830141757248656365007987748748597563106717120483072808734251281436373879636947711525226910773054979038096744334072614330307155123187736791768195455768014074195033094363099243498928544283245352090485822732358202268076009189736936906136110612947323250443150455661807215859641751820007782054390721428189760455106651548929784135742894000269321352954274538255301042936785710431338619901219109989888505339519777755380058973613840658741917685204637955809165508967728153447866951388286123058295396024953867285671672803165817301494104099016750906154118711762416871383093985858785894499435133645135503677236192112878132129272706993503450581598961513447570346207478905072064721070694350759302558675545966952667203634933632582527671042089135698552034177703013415561693908020578831998725164390135669021950044981271562164256434366602657425395441096842468259701251048253058722703275876546432789508440904019490239606407612504484593946144832544064703423391681733578926074493339578277017140991345316079119944241393705174520544241036319559165556972249521558757205622226420631674087511254452016323582260492046087950643708389149121709288154601101282651261731306405860487672870021293268318740790850925506799806117991211599497129004683636143525868645392846014322898208259298824864612025351527705085911415130403306105630068189170094705415411343663709179559847926504471862536165469965766721604509816437213727821247742639502256512002547303832288687319282588717418460338958555134031692848993144456721980664357475799547262366030426465834299041909256891145835675245005898872727155160511044903642413459954965408076625081429687049969248601097519969056959431499760155985594540343792515078761051690159829593989406593382359099353311675237269622150407349265092359815373585114949785611053690021318258807790184323585645944476466657054491453307294908139189998482376357825193181983014423475326461999889269845479715383714650852941882934102956076771961798840532141233815724538325803386621998844342232174743478028218324225121071018772308154699213962651740651521084230966664845883318543153367576177271220694033530434861788925468582456220126902447779918014743877671504783910625456957855367830043300206099961443767224440869483399931319509918921797875497399688501134573131049930304057222970306366501087239753631005591731326790487496555787854545529838440960225479355833625185583679283085994101816332682708029753220742996206023785179448032162499723791438365663889661101592824692587530875907796662336312523022134934731929932868325621090836164659334570077264815461496832443810099005712583328479313468530921114432411588598035850788123980689198736084609550290788520330552105835962629808188407641473814139448798871497985092335757511388041950414597958274296135066066102793941707206783695951162321361692398822696051154477982591420314072895872115792290900552576640223615104155133818286865323592091839904067963347481105922317539574604286628824432962326472883607927227342108534214897509931603257828180504976906533127485097072234348803543030316105293571193964425003744098996228603755736620971706200271111726326054661778857006241168727180302288546434385410874057131761099299401734911018294129758690378584438718201130796054965484617778252125480987301212077513322012838697305815182619857507407274699930598408540847366633076007632190607974625716873422188527492226438836617377063899861303997512123070784425380641364918356407122646885080418073332852266453799439596233347231029400603970227987623675799325474050380268487896788416295170025338479612160087091897229949382658096745887224673020450122784950739087252843192764676179946070991122536904109572440839237604585861951314421563980756576457149386141427345890912238048183116609438222682498407320366705795465795809888374556488330642020382405720448294025931202535162206798754659376750399091256322194136466172280830508971619383923728160513153234985889777277165827395725113830447017145768728212858150227045249980171565996199345139147059764825880854377378971086560165132499657243442904567616049313049158053842029792835484642177981260724677638208357218684933168658089410612792701017812608396002562296776954299630068594695408406247562170970585863373712474586465399815926867941027825810246209182704248848687299515268038177078427080769723949213438294259236754808255111081920933280173420032666133394243465810381247275407800350549731510642799731458653234571843685582660923754853476672304898584579334928006082420636445215125891777435930059167021390742541865540661761582695373371260048656260782944298639965428526594557996802358461833590921234260808631528889142668343834448203943897520541422321703762734154952144655018720265529783062674277742196653961660228993403507264127814709972194807804040045379936975025076092397373835199171914789340689642008831465633375278453221356746508005933357431744856138865324012519773143813905478550463649166496541576811236807235853863248559309470354135575809724872996050625585408237194306608166792184245991133610222540127028244766917225582481434137462186037535737978698021520189812576624665218839020999046700458136631288802176277580000111356586858704778602705508194668857925058765363270415724589936391507223431097963147628441602747441888138017104072618970716289654707167418647859708711462912710190705637343085227514372329038711340809237467550482948647727815308961503814165206671414496550925305374172563768912682456385749003993278632879229178626276265017886836058486804138029025887637835960373783282979520043996241100534497119192111327471121945971983522574644995507499018818797308509103697192839266128300238687515509445785688065071597150643267781446802005613956836076067648795140260053123682887466942332975374003962769295557628692457624445882098786115833421795593018203341368135055156992468463906338013175267893381426450941780486125973892140633557301153510191686862308662445421020982682881255357697721286417601412236520248931337189794387637840153335144450390398573585456182940099624880064604777028464788982030074608054055680834576923943738938353247817557581524410036921568288471523061730157364856863773061484139571730592355762431392376207976483033300459369984884216115040001847404192370157979935745984264989445106024506369175984544817537731171164594103881473649877436859426132452349114933652737350529741180820025352489339149702151130978250463774356117560209635754759626943731148482173321005704142746845707920965738339778311753770505733010308527637925772975794446805875692171688130214615723763076877561659513608344821507073451704697471276327135475666669408196123140804171548233912622273122037719358232113587235210505835792345733256072107846803252081750481017573420538529832969435528617119729799598744760506348226785076621873310505250135988642977436840337741394374040337086020859865156040317724617993508244761570016738957408242947740915617336298655565499129006045622513425899217142689202746624073356364903933178260270469656549921840174635712373995933786940037934537234784138360650779439613641645608390193639533181848763552561086779380961886627155298358766943793472826327567963086595664900464701220720052268865058828750326415436384327334722648084622572923434047853899857673027910693018010541595593414399227471334425668435954041195579142499860394396525271199409085891652847534872985297803714309849034049948854562575439189802475198327424150111638529787379574857600559171980528833381225644376204756341039245322826590546680368586089667102845499875093467588611381907652119132841205659982501722018826153758746569613265804650785528842598694708416806343065575884130331974057368852009978875834890148928405337442415115274955313872020026573022106280312995041232945513682291529671423405133988992448846753098202203140025471875900115534950973133389542801545536001208558234556721285590930555477861366040560782604652286554955474417249697651446067149300422711260918862118663374870859421999789032139071987414924164027221817674742156383162927533134738220391084523084303916785844410401326456096232434438681994667676169687856066116753432394241025754399978046839505755367352000443167261596695050353112353890621065615084457676170231610750900823295898948164447660641620764182793589005802503949662024388246934498109995435299355521693239308959566009087688526615790944572601934373988344317258957414140259167922029287451124703907141259939988334163453185916177047530148325818460882196429203811692101452150304251350885116951285607177129317766658914479568872394052889569580368939009161844547353112481200179234749626969949358700501024734653021874844541356785881029018468738241055352298166889709294473687528326112402837439048406385312310175484235902767723180452100229546109711127132692532741948059443624677187659565151121494029004417118310592070619520324719345468523973427134029725621890425900454750615224548333479120650203540623204005127402830947398770902746507806480520975379671009783347293943718127130223336842460582849746974027953264630947081841967745554044109384053278329035864491596261432985982652170209003139642437164841041960713516131602066129388744294590703904233714240942943041241109958116311655828079491500185895795931112668883813540149092480298013335720224559002043902768242813935843517017369654511277175930027343112784808436766915911747148282098481866326526357851439034224676020091187591867104230921509361806263934434688239704951025733485889993810354111459239830299704239370381053570110970550567305911554264600299527742460251385512432518540300643623394094782500017553784668105817778765850915089635594988933702379533380045999791604614518658042707807211305091639298906572969839846410753015395104965654330640012330063869263680633750652742833870428828401810800773169817926464589759264436102880085918892709377903862030281555195287221859102655934539884621329464420648001793135638466353777168195064452971328745446432710538879329965036305469989194448084397006112301130407254282371129849281432301968198445794688649187199031719134072040390534937384337419376376373402640381397746865774161577598191995239409479689482011209861500373449308571872217533275470447686739047307961727518793749465587807459927361560773425911937538329047534641282883917294697075754743191598663078798980444849907754478439510567567494692298186964513338522693716308106024214488875701419148472318624060889673957403162284949102372480259524143149009342414552123835021008782124291416439817938492099806124250878665751377434736632525439477973048624949559048974116295064679859266711157715670392944586192461858420171671455810658424536372561052567596732073635613141469430268630437949243376619965858410428911708032413054970186897523164027710059679352222240185893266673580432474246161264560272481128936484444783938734372388719413928034546611774250260894076306086453064901004075784725713251270496369228752212553908960596473545104395907031213520774504367429348363841326926389813154588838086964195310112288853385335609733180885366628480588902865940674658348062900073783510440008207228747735492512765998052546271701792468108477191105189561704382471165905672480386039199423983222005246113037743290196320835240057472811052995179855171280707299631263934843147808310236754849424862728536165535581590623716782890714301682525509711816200637284603962253330098563532900912540475872344017697632031206572315866108505615666603774205314453760668113924908510976617424284930647781748572061519346611165047858768979378576924073237968428205503686300579781812368271425360714124250350061808885788418334575068800433943981664546530666014313064439373787815589314772452996588361221453636744906190706019845719666842809137718327196659143866109284853987634792748216558133417176069205206130758919688413842380942437715034508758740089947522056854902743658052042039673414479053416916185533194840622338976796187500333356003449781059613345235840189421701203910902113031029905288996493933080976617764777274880728399008154383512448558229427380994835666290358721074480415625112371268727224363244403608964617553302635120374708038051958543975419777838608963854498866842360846395565379018987547474778225285205236389296488394506816486060391343507739762756926066314341842660717876580916876681022611203145975721573498418399984624525010819015502168488998597727555873983508332014810329131027882156142908396705099528978063018124076285599730163405989222578176386262858058028682273158117381913850462384620765262824107277142555748972165576858818765314438152947398570581841337143258554274394092890852967734227263730689313306259022245918190233901425415931876838838171046812118612497241572071587401416375338859649386462124716782092017790076869297047910463145180794513400478754195414936980920781356684079003950275146196262682321768013452706594349524958227222836445225192363316919254338509507388656724007484130531972933075878642777942405941208843122546687895396677532425528136465302427249760628502603524674850933852722825374862752836447925830735620140439295864500975838636488097276128632298555054739729255609786491715291145163913526527861900937640307486829519859829610582784949903867476563002449551354138013140930835919543610238025791843542789884516839341248811238043692721561033370781656083062769297633141061722061476383459637209686642622419678605982089751479350593202371213678003683182262389581455995795138835061938255278936442642856226341767185301558031074858504443473074414096812360454511303429190578880084662156167189974082686883699821678334218283081168132861601956379923431857425544847457518430902354888477368055537011394006404701398410238036820836598137578853539635076609961145069923392243961313018810212396323441118523269914461540931698776217623632215586884961567773872964722919553755132485380039637601460045330454136033066758985167063699488041271169180850456966519662102261072078185734924859621579060109151325862777739662692772491100885791547580352769364714225012350483340988227146353934102703958459236321649868840271368092650753581673177937000481830492687526846191650482345684787272867939204888612458345178704167995413740576713595385463319606326270623641479385097828742986914096461777316791134414843107541572740700497670484426651828361026995992114221298176979816788504521827515549047802157651955078543355596038325849605556209114128853641397167909915676030695824672381708235546777399884493084173567041245374014763598700109316214087807220161202735372416809499500037629958467524531603974647921645904547250941181395061292482706172633606734630252911250947949504647029951050463716424657953556206964619952329703864024504978928749226301222925354492621035652080706714586360311288923286069574920747426110181729329869870082704956252182617213732547782259548953239457099412354019138527467745755630689577895507260752170601424103851855902898863262602720559030750524725785379630794347379251666741284004567142492686712199643247125093551270262715745215627313185996043036972792539081585224334356304232733253561535692187453082271714994103680918546807171774213382449678780240165778013034750579083598521090319634362103072378347419389226499594294641259835229910372672762277115503384877120770787052545588421966874814695904157647764816379268842434468156377990904089814897179604154360665616668832649702712780583742290345194516075997159638917182036659937377823795886256777914953594944088787253113213666475586834756815682897220951034116206066393401109558480408648222785202542106738025342825923917745256229677556883344087882999829752588280828391970683933697474858445905819483263188259374480003565679252866845994307321410032210581330237976325856417267268341929025543564485713446801456044191830369788372930388993633050582528821298893656547411179124817333223713730883805561251313633369476308168015307438415946730161476010617047407009941606209113173829746972599822135059838486563892552546218903895471104132859310503837491578461155802657420761779013986875303810735747829732363381589925979229359575805112611368645741903928775707458110962914533473780960039161267857009358526841550719445640787382791604102870319566469964860336238040182479899548153685094286459123960030769617995374708322005209184691012964429823503552714398258400434469674706800169872100075108928794542799887715472283299830965682032563294445786356314014660800969036676439425844616177751516327560684193012607223378609905946323202175098951801862306286299982738399518399554115546316601575447209076344412327529030864976282134593194149755854230862835031904240852119421971493628968567870015169019967142200124439334371538091701868008038954938577986771008650552233146419001425092662391475384868321818443743282767064135860780095987114872843924864810392117259010800922535313785390880481970135610558718552798865779061083311332014280226371057748112026396631756297699251000045176475783482610513297987745417118587748023037707628549294038719449663088797981114522712450139028725654689520583941030125630831778929748794444045871195402048710126964883948900181856976945865821202291837590938144453364761855853297981238671797199784055077204712256075035703190463514806491882741129715121885360137787922522912406428640942856311261045382847548407183105264922835880507910930858236682822876118468581647967556768108700699631978787112245292320239039496281361198670701055690925107493650749319447766599784675646053034962450822157709048526380245548123020632589517240372822487359373400168538183244228706364539528441885489855660713238773667882431125218798439348440815689037832311652852909461177458909688010212640943863700193699795553414623110499452893225999042109774342671515422145056256050408773763704773194028913967756082284060892583597040456062684865242405655855546317331199994466331765978753660492454810354895334175203104760468389935017394836013230564483056199812940246668825604227700547816847609980505805704928254727119486405082701374277293466972515973225432481135047510387492335619625170576554046487360171974445588389744877546327909999175351807888569710015803381904517796062187334797558094577716934639133119652375141390601926012956264032063948630576454449388585428310473203232308626360618445538374169139003226160829169043549559675342639243816094976047995994103275790267610379566768032574235772981150196715898545713115355544686587146751419274533772725789917970655630779953626065365342185609839004189624671699002420752726044783698329670932127741170663202357325096047685409387768671236982080333988713860491958464684546937404056422609597058394109014396073981573851507228661484883950893828223855986709761476816485275209683507319503388420029212751067783002964129033709877082497046293006821118744255493366625007610456149184322918486693584913952157782813596997462495670665915190529806523034368053147517742195845386936125148393613929819221950456981073020325592003277569706347799237516141311430514573460888763731736669337362807527919908425830061451590428448195617516899959470093272250503203261372863075402234428368506923690441507344729012416720265768462248261627030858216104183360145123692212251648878462363764229758898042244862435952669016224988740452656546792792092633609038817068401168909320852248825210556309000303798105749936277363226187874266956987023542343265208278547334587895299957895228976404177937991571241515957069213439001115484038568207133891730740879806188164640357292264235219563578883709833183346497621894512387531304891107247613384535410403564348155937063113606117196442114347838137688774703674261092888572823686662292264660229940666972653395853002293630049426727901343876653039776457352634428484719749902113917752272645156824476813203047899022418648577056028038524356472623980875427263272928668008682381292019743408761105723185979354711427785989013040659450990029956708034445244073522191327153053507057662957146194835207608808651908334260802640532482007910919926393043947885729410931534559846705702905793240408594690567927708593527121776409049789485435676059001772415676534429222501856151350679901116312545423361412733803410004683539405654286045276104059850810452024565779507730500462281221522389325614936320980051909065228313357829475421295924701709025045482455227741438499433368171837343737165275109997356249625821495836435644902278747338965371346294694124881524876661197492486346678406464086722310094052546227401510076255653968384794119541129442395789401702329481980715757788049701087937402943603903326221126639782229987542540934067915206892791302315646033896252395483493430761545834109120359427993366024171399842451722087174349904981218663880457156606760774726624314286544589418013222852287995622304535467779819025082559882201354413176905335541961179848204025374918450783024905499871445379123988623504825870114091031325874977994508377225347929413362200040946924014264665665389521523444574402023463621501792826955049474944691077751654964524186879827536679139836869324549875996404088315449776093271090549707009924384989380304294510789208021149585750736971046075782254342738252336216688857920270869285829733595873098127154212904558236513114425547837259926610595328535733626762533369928724890208604268785693828583361839528765786407057973715880824034938227224397060027433789837942135161466697778399850323910725429046074719480576756993634513733367839299402801004720576184860425525889169528555499851785033662846437253336416524516973995888727340359784009439157462766919378805901936129342704671399343180109586524083806987973359371137696423022580459109143390463495750234860447331213392736577227754907857127377310471876911286525611520652724122055298434276048679965516288323281797041626186279446772310841120218520338722513692477233777776711964362217730443816874322833497883700564901137591406354963165167121283883133259212400589327521821782549446338027195173048980572076286656498574215432606199545306578391543956422740391416640935317820223229754911122478399947070793634594621177196712916516842508616921728575805524385130836415161639694407849029343635898132844141891010249081510169876366921767579248764644378175938680745445883837904468340171357754055387983716024861836191764638352539316955901883138873443337449005673111753854593083739401061475132290363992437786369168786070075306002547354057173634897876397915322823562767320387883965997359469436372048802262837488627518780991584980301047307124435695102740156551073329219686936448150485105706784233731829452283551538708558195318814470922117438681875821986427571587931286410748901094965180337452932761565911569633513894086440808562003784722423044955717934592831299365324844496342812454276402189171203843790549732727334792382147761159689203121768366831852057783397773628520678692832655719716918292319183072258518723725118109355680178592883865883206110759838063377920578035252238075260437491613239284420502485591605171107569609325853688750210582840923391082103954708798931732897034675950530155022151488733418926463938157038152908705726270827492385129451407653913701462602916686262765057679133538916011110190076125539295924901944808468585859928358552697273483165072597736300608954450704761856995647079236537591386251386753213744848835975095729566941445841993719221976815537830425901959567279613611349183321962268281069153733438636761347165856046540428519464971400639490894468610244640466768863694561535452720722224269409736384034045257147690623974355747931073365308069108534284624552998912484481139393578504148182362400569726163380420397997066145186206176828508692244642949799072629170178600106623414499874961365564853133986652853019782140938941150735788864515190284648060058281455672443178332099543040901209130817297579847246414176670869403448090289866145698794700032894035743614573174058149285829267883553272767275952551764912407899861402585371277724110603130249554260456783408940198342798605637470175279177202654651163902569209142853880900774316191548136232555135520359242799781638564263928836941444336426431070671743558877537942014432396994404860284488571217525362750040776453905589499276004998575344890326460018840979288817619546215837290324972388604110820807760958416921928845256221252244589828994470369863571616531263806587546836338147669133573165133767336031710752877100351023459701406766957086819270015575738685278090307063704380778928550779681466074143441131495966123292636984128532913976485337656919114550969487903727897015979373939880281850721011913626205454471557035445299857846406411449817816741970745587606803262851276413896657371120764450361288737617634688173171227790595245948902387250772413284481855732974250221588030596429038445124884815257112585906143060971235607197076307960271121493277985501305176409555169930075181997557709464118500166187880796174731797169346955591621080121350077088982497167371439284851708201761127305700895702040411369944221631228172490345141375719894721302602783602460076636938754007229136272200071619346421868827089046859437554122926738747491887969112096006482264749016184948941454284608571812075123252674424935063131158765933023406171846975221017416403812057396350375328126893302691080402336993522773849086564040785798175832000372323229935035553654306932789047227714272881067483969982346723628234176545910763189261034674363747996906286294997280237521544238680003803646722883149149214128966583432288417560934077645906299297664775951552776605458429767887838078728035932535851989691601307939872247876874078715104067164960338405216576254665424498439093201931459140351128024243935114808361972778414426040544036838596703521344644216357025916687589787467165884607828765057792491135969602797488766475616156218952893380839767777521583020865810225490589377541276464601442597605748843997698508252508536910829404105888865307539688808726603050399333370370807298099768832955525521900072531125871648194553287979650438791653053526426555645404722820855303087951539806125197731066351971326641993767269972508786983911473598553695399071081443524769117402140865474935397429468659461052046945341165323436170714182875834625413137726896933015602974623679131084687921243597433919320463829576458895045480201604328180222924028549195160440985659325769882103959299257385896575553772128678678785059305143099571415834954262092408089995528603913618996079420927602745224393382077818748732802635505381198800631492654675358054351730020323541785211968825862113497883584326646703781256993778912926972656454742776116063123267714833753176915268793754875409620925925050618272059846948401364936785402370451474545595212396944615092919561245048377430339319047925669932317503471131941287025924532772526273792563829887822185491574772543018047685073411772397192830346161797726977868580744725556406480409230341973455578005509685179214411687588256194612337164491315601557423790530211309410679714703030757475414358934299281790668895384567839993383293372949609880260731697060589833198703087933665548568330161435340946279715863549542021729632671096228508215120581616247076287661756687965200055105892390669749651030323582146605385759866743393651615935477320192472967887418072780103184696821768507333042050027094650780332515747253728950131453507288039024524837572368526092748512966879541665716343274794154360797725146848828176750326234799510239278827106066582770470280352600883910714829324531881067205346719912031802045295515476815066518886774111722852376244353560995733464353145636701753948534466861244686313467441062143637656341490042665956730966608269027181850324550586264535484029459898395808978716661004878472490925375212568161669793777297761036760677482551314655425116217358201051349317163409929954178687730803081679260614425134209999767472688517630494348572495658463669125508566137580639072130603779295661277091450188795778523572101332505983804718283470668147064663114541781914437763683942664825849205931471220190329250879230093428456918028004913638128539861392129263490875710908025053606600376618647284956598820844975029074597755568460548118301040194144142036345622820510626213251123865769303835538031207817493762055031728050123961569305263641224034440846785439269711352205722973605682205597980113105026194842341282592396061630088238026310028148750984136847220659164135766043681705955456027636637217216690857906963527003708952371647903876076318373177871872711332963049219570394311931910359236686251543970650066193000542009654996557109335486062123656697998523560704829618923769837368524487608188261992629792722243917440643042046156242537835834932712519689561894336811892258049926660621394823817827175609394396755230745069121351654704028520401021616398234433888385651928965634294944270378874108796054876419226037451385185495352509802100019341122154937361392356103180017316604152826873832325131388623263199336827676027353108689564251081285355429176848391260510268889402071227640066311218052757501028181018866852755320370555200997865971533522883972935862597210887134269637398661847153674940775475038943589806146090596746703110909552024172780190698331993884769559826693996516032173471204270769644996375672737539206176502490372648900367814799614032768465158269391859517622046018836534856048721296065486160990096653696045448314193228753447275475977156751287242400681817274018821164086755825515387184023277364096902912781197576489841899208182546982861561550928060231559974701839383584796127308874673005584110453071727284268364330491360795147655981607475056800976376753207527411411496993007631506296701065889595063453479267110088262508649066779891929363447565357066287865238362418257919602214738042440524885066562321881095280672557324867101059124852780428557165961858427260786117374043309217918057708631421366610642089859137797882965981270047420657315399388068077155761542795825424702517618799119096244353257017018767390455021823291406119409445387121277321329473746908352434874005784488552718935719541946444472910891128368854530530496156783372284648218446875887533715484169333561250229830688866291050843270990511202979490901192643608630350978905976239717741712050244786747837303418912558808500097936004106965305374876299803604935858090014140275195485752342727834152204283649891118436599780639988516235760575864607444610404904650090890173943352956572732823394289388567642064207735084959862467277340161218942980750655533933534559079912850232710857378705832873812809949249272312984729699685701168180959040422310430242720741873344540281081584327946628956259743389216757940610957417268234144617040934556077759352176509065054742962997684295427245722769410977510553512647991570269709712486504301752652335147253240234273025489071408989509985860777086993615323358554721937166897213122069538985787685552622208078429811591966626800252366139797892431383693461472900172451447747211621417202000585603278273073208699560650400234938630734983011713520173886513737506479799293995387444886253348592955612214203277519952349023827514628521612211615970252703484147361099936536124437922671961252420327146463243074998838402147676408862641935423093257872827495321327450064586025619904730304374410653556207749586364492922913979351901983460439111293024775640654913768310037399243024051961455239006771101048278341708115854842218820419100386377554223273820550371982053078904002391376614576690037410437774032779201292409724688519338952775697542607263426647148812222491714580029806033609687330434940828818990121427156210033379462782573454332778186925337853858771953887551676250335658180138682649574607572190321302462070573355350445126678898553420814154287673456939218209389644106345647088861282248543608276862747251184191298801604357973855635783485404920293876608171350651038262940001719370546474036229840067019242613860721017264761448998505554772963802706646638962279092787734033594485394289797152194777103644622408090142346063773121499987011524406807259378096650607089107977154716989942761894333386971400068127721642465079761983034293271916108169406088643385680127433438829430969415846244234158945164006482339402021548426419693505812781560739081939242926329521880872773441447554377017047682057140541476516112749610711840383594898743929820397873561808346915445865372721732387657163871827016753091403769230562111689009196469488805967561283369808907651713803018516778754729604020585692874340505712396733265151776306454989785555449586589357956733387552259318774566404203110730280444568052551476580672771411483425787490633086037878706553087116037744654633147018949561706950524632227310863492966173330961781762568350553063131854186487169946886118215120175031412270828255604866396644321896814613610257126682605190361253904719909218192013045943847089410554086260420431594692145811007727908904152058081489320098847886673627470705649020497893022278507722698275359966285943190973307998294871190699617624094968014801876625460753397946187464993889820956920541922509931806766598061997404343292945254402601230024797176416976013675006921153602480984442547522920405985912952879524213958898639557353694052191439469045343520441856866350663065542686698661687213743429663506297524530592721039340433419760043733371099862199269044202508867590352622047684220513493100139757583059402436388355048266070693230467536823333268077954709468765127472714337068304280621769482901529799821218609324810364784922617515827119760112054303923558586416580439992330543575905123749186079696079395088951548730884547670164483841547008775412191345696765841407290714499608595947248285887170130280449521453024613613628773641245081670216980356648661613112678219978013473027055217270319502452981929668460088684959694035624569774577920422174785295696786674687818646777629876470765467944285435152681416942865402685292988155426032388388021394911889338482781017681720036631673163923480919073324108141068669654840659751675865991272137099661722585367505913947108952697635710785080614274025599303476862532567718762609497863986025361646162019345742110906821272123031100516318972781970197767055509001268159706767467118806559230493628885835881673537021384476278103685918456998011661878492977257321718430010045865642047137984405388257223542552132692416081227514510694246177178189488622916414259010374058702420459878274139958888316298637620349186895493156985289485885029487076832212101692139809276887174273861288348578804294278312052827950271778966543538898500273149016141150747239314546986087691035399467942981841442013093724667934689892629684343618348772514262042172157051911732645190332716942133619062351466622438142090061318952869557561070164519656422122322457601874791592097545080576939460874096331143442223519557398678091123744871639024658052068241260902993021066470232245488960694600281783364535114094695730487875872516125650968976086620176856359719283065768274256889681731352798494311969771249736308625968824622412901667831010851533096002370938795077774439356572046336123698914915856440261823847064600721670110394828628770322913611354962163785452650688392826668700837567383478730028442053811798389090137932320372632167267062285895287457123945875533103846628585239491175289986507011914512110872322412680136999779590647801126487920912387675033997821078890472733700687923533688017985308949683879728561699125157513035766419177328408488845790334981235410473459576217801033410133835105601232646298795437117063235569902148450351492526850379652176006485866911274314357186808011280048706821524007155948445694707289704109246231925253998014029877848241899107047817370341737733204971073527869033020531316217955845745979464151852117909186620576337632482732701172841133301959151570192629378286781129568807445882942186042057387212584267126552438079491892129846249576864133468211993827590913034700508576080753578001905993765224755218502398031945451566124848938383105129216015436056772255771316900603883977669735955060746066295857119489562692169938173089828370381515326096142739754526112711435914769573849572783476005848352629669600502773141774673141352099573359287943074453001922304573413974357161243094437266639369958878558087850566836959067459944375958397625032563754748735166937275393067083865032271653481678991488090267925022239539487138490951181437646001560761064483800932837195103509978948500011471588512670524079052069773956842805605236779944593312404632358521560947248318662715958199274616100967495021872990588499167646672322401138180706289369629417614730657994449251662880521218612661935107362556044634959094706805382959231595744377355015747300087265075600951954806139736205517568454703700023961795000307885479632346459544428310356027535948209282012801990052520797367908351044460684365091058689325389315883306997421667193764022162598541704163688497243813317706087897191843691848294766498732729842292628760689415676376813249302195781791881542679620592642427131535170592099435131271426164748532791876796479407111788846546382969573110090111930011836738954216120339695133820873317375491770504473490918725716052447904009846000556517571268053925749646689004575650993719364487714299546434758101104545297891593500306853282583434416226226313174950448331339279599409527287062213926021552371000637153290245677191958049299058036611359816027773555548092887825331052969879677190127975687339204065320110067542696789135090693298625569182515717354556838890452214786590693615775180162704951648368246692533617596317362706016987973798597637682945154195590049112944709097337565929664948231910088105798526690359857986509565614099242206609252700716695424774118488942530655032545261252737403405328582860325784951317638074604812198878514176282287841247892152507822177098862880037663460149483294423012639596119523266349721861574214209220277992453526831981233245575489970553028947414635449624890703000601404398217230864630392029066276517691831110060619503769349890713549808432742592386689892126193619658638897104611440669719640750708552161898668452534397509718772558376902725409782116690356945035645422791448787021446119036359138724927240429297495415003362343066671767628205041635395894905174013042581937006930765556431955154828543452072350783068895483399613478427290645590373326254997900465869027167502862047191767230517736400668348758972178757701837819703276034026321081922627900231396991075828864346431427365640560801813466689010507872620057471684580211159721783824744916471036102366605039991178356597329095261666211732991774276269732825798705932391086226204316374368670534974053883519161615297938032917087568608531354357577926817162655552145696200327805037760995257540824738112067217761452876692152451650159229182420056238197743857438262451275400610009633911172851964395857148159691467263164309794635350803127850805752733898320100732901690565779741945581896885523807658816317895711754174290238668326657607935259149805032631671327705325844651769327062994801589776767412178735219511575879445168711248719429811492717367102573769207294519769939767294656260432583127026304272925301632473803282097083408427561471589472049677389202575491158060222222547176007105115534990300163255824796117754823282098931634902763075935138903006403004061497172999465764061454442708798631053816238580382160484997126943299655397207481940950893924984269225405758540323064774118884036723789307643589992670450186618889477019268861959087668083948694624297746551736287580258934505467556659718426933555798479747695864211618018425880023684788250523835925488989269945654980268669844326494029420572980945073459381054245567966471637253496900229655742950743144310433221743106857967483215275077094944813639501418299209720573921255111032464734258389598361796525275363733853839278844478267253561750784335066634379137756926618446356700138828632227129028639437238216727713428042388576153275769664832022077143798879007276049976895514125511121292993624081829309952354948062307591720122879234351358904188132218378123304743162142971467230038939675520343215677018779712459065451913258507528382877088120255336123903470748436087641287850284091600485641173305972048910392825149316497100355663172036944346578626947682867890390309129785821630337886284589074404947747640964558024214081550551478330897323277974333221995078349928209738820114951602337102714321126483907893430340781636232752545337827964524833877977962327044231199327398670012688748698317171689300597520451178819128275284195943759221353800016553071086358339549391093387912392710335961267348739653631196816679969207977265875361602112710580862060874383157065673787415005793602902032663543283598397211213464244396279850983298521150139172829624480274894912010644819188055393601150109920630623026355178594138887109633921403530219495137922115209792886589137986281379050385036498056929422543173656583427103584644730684772212890102470582244670620231420675592380282337289850569404430263359520288209452370795223045093799657545851996127794399513329768365441966792208315377151626809142365785657993535305212668972806594999324392958653567095384744333537763915165449510837384425247836523151534232462391373431702307631633522974445676637514728005679607432581002216866830246626873903423641849885587211477596538055665662010361216781749009520569769185104443508272918185220863722657320591710725107249352504390189310057791831285526714055012166718854781754676253906389381856532371133484408669171346309243445938133134852652990558910925798481364975400259756633704362935026302507958884015643300181344294925641836869761322222841901071779401462186281983693649112731007854791290350530300642507262622901871987918209964141581305636509448372240579272016010892853084038538753460158058205229593266633592788746543121174681996119551791494948438284322978406037866257577975529048713471763620321500305963349692712841253746356136112230747039983862248739286628874580354117770117739365575943381830488000804827671876110133757078168072908341273229831058045678483219110928739510444510779630705888675255909195052104089373323323734076989717058794625839680855126503772895168511484438313698662812628734677780089755115228102776893245918744797728366524394619206490430093507888433052208593262706424725469444919199088104007761655537022709054090222260966242192659150106421471355031572154307764253577937013755494465916342400765886531365889084050791499120988479625750114009126066123096990367521434081349768624556959978216143427670175792710052422616127770449162577044096235838495562988613639839448525036537367011511892096322310881422275502652811874458607687867025295697999760378087125413023909228948261420131225962304006369906620489743566880992875290461440932259618590460191358769470273934446598349456381795274218249013117593962577284320037992112566803022326699388346258448146616265918253824609314811231632913469260149584831427747011215244483254730920482115744911792341944576904730266757437279720671998758363967171952443992631227276812574266472687400546652614336350489011760436393444236173204565249109874228677172062540934707527245935810243158750912151940908660376239437849738234148890079397649720322188320673798065586065861826527746774005306890620390453084424324047451035141895325866071570072609942245896244673984153697989108673690438432921478285999966830516221341534935241050850046498753067074284924802402342637749925586072207251579620533151371828589066957406940473269009171434393420847977565125089859918508069680228248281755163255254928593693224683604853858181979721514643546188713516285560617357329574907780584218357733218125190556562860862088879173495186637969869549994502599224741500479322369259654121330210543463618628522335023626674401866494316527776271154200441436643757842075508474712529619413343247960928481081796500735880369078241077224063046943197900694561511897123002083636520302971133364306985189282577245895645640681158141592270548225836484255031349631290261333921047266648785823845213077004260684788243002163282533608203677867072358785336467332563785660467172675330755677175005951722157808262452467058297121415627165350760998521918210267717574975298807058006548854774147401064338152214539377959507388198367525898034235813654064870187181171791283803405991841178219271530020231484318031083933830995546988068572890724871385216485213034986103318301866285802625145347592138872274348544968472111312143909619835164184145642666465668373966562044979569835814701215267117636393053958071128361313637841225194575579767628650635633445129040279061494180772318612308017871036157044159776706164958502174254401171056236664305080474629540779025125123546950262932885628660107321674955776005891948063274105093012442729637022122942746903084617521772561419673214838949320475309536793940958757865799360039084912717610890879603557535256709066327334296190663964659273405936348926101535804757365269909773690548230426057200319272565703950869524983555629343281011953516683329828195441211576943687644444148292473744439026022990004989983888958317603300204972667498371264428848902125997714994190477752878139297188158526335591515832226381872182286891609661417419786131938525929226404723829618961229178659776947828738673221437411994047210663493796755641998453462229766604662758588855525509637743225376693863107991706263348870640560627660546440091343559889656995409661242789987923722814281748113896907571739718379556064192771225361161641814922640994064918966948965857315788483660848404389556492806855424205260983433522860229995093177676423105185953114094858355845099953766917760580323301835681217725052911746984597990453191539474103238361670321558412098965911758650613361543150219827784512950707523323360824722314207908195581980937982982950446434955781865045189527488314949513058151444831377841042928356745082215080176921446128889302013967287395808288803966321109755622541915760685626631866758206691204929136619104394939511858453542773449864191197619853310233659044175982342229529378727809222752392675189340480873154242970738995493835819363609662534461489438303207062979134823168894807513727992987575956791870590856519177173073665055267585443923543995633479630733723366047288486583031834755281338368190753568391406454598744116210765680149566799087214862006274507973123276334457042348799846848053426081380670624294454188428742751277209157075131407531602463059793481823440922575336851530259948449005817334898406128722707990469952512859691414415092065836592237596444893146082537412495237036133345756284457686971665379666994555896993193003035963087929826713732482429598049445511985237855202800134055462211163969616427753307961415584116960630310123227074970915430340443762005196948148266717026240512839184520197419216531286932915660479107920426330759811936797199879919072484764286790101221210268146445167844645341008900775620313304586642246245520665087587931365601526581659396525827484831822071645701238306774691110603803513407980201345758629728018041528884049848073375864206195810376695216022063115343865631459978291012862539286740757881385293408531189048549123940669441756614425495808024312711550067170752685100743683419685082806101678982513550899903991874835443772984791818725870422696550410725472531807781713934225027947329411532766752830633141983631515589120569557610453788233185839145209438467319184744858005439758222720877875867736976465114433710831640916533649394251847190945329143160444372890796169523744117999132393646259985090949411973221263904435586547268677438063760019544650435864007502690552362405617686078225129165689065825173594125997113026098815552625964142746923902243559746855613662275072576707979707723190987830839208723139409706850815985173711846333524221097270978482787051640740504487100605048534588863368478467273813121185928989897667859538905180119236164405514792884890541757387017587781440606400123739082399799165024758618801756172219584110319705427889192457657719353934399590057902998939486416848736222059363929248792427264033502203056969290793633016842354561794459510145684050449222943017490716440791005655440093379794619417608915455166790183208910044496214542638745356008663238703931096633293808564870171198873711549177181867401373072589879310834478385646517206762540553694049450024893523537605671550057498815359529652782429325006696774026918805111446774606989054961702379853624767491807272707849385292688626532613111800296492531684754987246149565232891050301896421389792972780563556398514674458800515537613151884506599942865479050540373306864600088077581693592589631077276465594212554086948891210249536698068327355062217247236220948944579124542011470744901627347647365593114646439863436506058803825962094402954397782290465131606199008065980729252138072248473030091248892291818422111368880914810667128491632385551225193748970011916200318805493467044292043319441578510203794428403778332361971018728887506421859938273995891967680502929853612983088260243552108502931835966506849624172284362753165371899786894331715301680526062320260790762918035628352116031317515906822355198500329443362034623362879218044713527351678907098602828364629854645588158640976463381423172032707351439176918085477914304848744643561381157015931627933898142647576012652885665736314434683809703586063559201585144767622920031820734493224680331863337097690940068021578019381539636830841550366495450264078985137476154758545649427836364063286622515192132759921182593733189198463203367902880073589540659895026788897895877071138241540976661482232789708254184327467219406633150235555639066059549117558316629839152222759470904112765797347877251746588160315198353490866345703428489009934579295162474623141370099773924046125469773320501855178942058783458445775671009125449495708478571294887126079155806274555961855605106096235335742799852925105461927981044611782668135470553329107795189780672994348758255630152010578604221001397228728531284444354378110456952580861477965369115372679183967743612117172694126676293645392994415535008128672043154558890578942119170785704292647624171996936984005990834956533679106689668046904672369460161787620502993182602128853724089621031402310580524123516900325782135849093288102464181043421923086144884165871488857788278544573921122589002357691519281849635733648680396137709476028855303503312568251514130534077085935300584039527874814505609409738155099350649256314441205557995131702821032880898293504644943161872947257799419329227923022361487670898609970270854985427502821351878956430952834811837679793576712951835874145589345502002962979446755004790547177007307520336235165253001421724501055121810424813806202616322649915849027039314821828942210814119166831955974651475798995266733985801846587968279601917409490205481610701462814250689334077661250761370676036456889039003182767547042802102166065196752173816167441574538855300135357933892116356940811775332268249049650422695792563283061563201280843514523587644802880616049529591174515175181616044655140858230458884083506090990329429798794837549097858576425830878022003800992423923744103805656082910484020836411311952858462085960836944461462428587755582008306157730852782444655062389293296990561547558269085781296680519573253574746923610687457734877036028619151017568105079491405242952463342469924320408123098307535110613559956549717305156746233726465803915533962566272669552678487938333870147594229051726641363477871405591798435916299625429875460498373062079523259835529331080269353865046618410074772330039655905096113524391044522636880456287110055817901428473630685777927190769163077566153007202781872509939186634572666175676351582102838036832097237332352048091899791125585962687526620874108109347884751945087710511392139936655959619532966603860712884173227982885791735999787364706966625977503152788710787365806773351028714456899749422618651021125943345428596630975712574058832225288041555812787771339326140639845485356669543650395789557625015183328889620435321724430624221594154516951031398147656787388100442817683064249046483893217076740924238164620353673602635476045910457920326654416067961123655278165792279424004495534964850806477502079321786071769083524760127732287141014909069231579450074285769634934054847498514675182482380701539939539006476438149322138232036764058660856734496716513041408637687325534012370272800212464393548992913315807850986865629938932505573283388216110101982967179496419875003400522575163977260595091335937731256607150153611627268145027047880625638291630766182749137094862941831156097020304871058629475325221695016552703260783721831127783628501275596203320464026734505348731846411264090389797597298179453121802967999451027068324233855645041602430035386780022768011427375402546886497114326194242807694077553197303406359812797721744794550769627452868527389081046237412737493557231991564789300309546873296957546181769071292339856147903783565883067740604511558940123664703481378300614904575359069193051197135695774915592536842833988683125978027700768456937607485672531938552490907573398086130478383474072316650779651078533061795842830702170316694676631592671854630102328354041785034324993828557673658396477424812418334506188424704340788885672065952385071714128086642416013114593903340350062541351394528504261878138491215403262119972371390537052178162400903868056957135689325445291648141500903415141621684808207717639135258131656924427187594160505177174780562532454067526416991326664356606358190661824190218004732295422146414129953812876843497096463444766737610805422235552079483427120697325748201195142592097474259493267806474346858454515078783549963405840961191376488632657451112848793566605724468002778462662798017713287075849277616782375874798272631667684073319728467456135817565267036831159976647113987045616027970457251792390285678226093278239963741163016609473319472217022374567895860223052352549319556751068338801617943734277485313358739356715142859883401341198065605816687867571517709270961909076396524995166932672382378056143366307460689084149860906563497534546188736905449849850396540154419036596950845175837494791753493604246032965474461280599144510471532955136875241945263201233481374938583561783941337389111498122108748903887094759536043293979856261844684293613897953651125033968682623862712109373522026209296118156318343683928938666795397041687839920884380608313661391994430367175110091639960548460447762010727837785946620855419866012947757585039301173181963598746977524129498186218876670625170056099781215984168039514724201517747852470307965285212172745283425780953772161855089402659022242232062204312640671094385442744915541908264457113147353318723902264863148855292772962438046226655246286651247579085810432033600594970695167270392144385492080343975184318682452995843586491169599030751775385286722930764090730074108506245533277500866255017187955550495278574935034226488962974742975804565814664361640645923594135933092296488571620001853051932427647805761593878723219663679722406819373755633613481528205259439218339873462587697925158129183293116822061650349119122319028254369674548003725557157936587514946969412142975902230153041370926090695884065104259887846630694113640901280182316150662324122968918854368874225215718195802684406890846612529031218375199446768560604123474733126863678188879055325120502426667664263094113329044269441073599689304241991390411960151912883927855804253565719903347232226802169389882255380222304306711366746367538420851421055888211984573437904252802479004878090669133929769235776726152966412058886559682280700428094786320220055703172863441300333341505583191213590302620437740094335062221226000401035562787906064982184170439878019192532762511713327597955948704094677524112458335197047520673078519680150356136171120864836225523767890903772996156385769523946600886537323608339849395557459109734843900902774401575035479672230258581968797955033638730629928632960814583424644392888921443423166202582062845486567434743358820873871244927265383586330054794030782396865934122164139805554125576067784737603132204419609763302576252731114245826348502833873027269079077293046263802274015848773630812694611219693958179469378131848373044472360190977153876300291586739917811628470854953150192314126442166567978258756968217432402836274724761525321178007815309932372250662235820525259579285102426175924835068916769452279389493569607604401706447256506380098820216906358998485328644485947792222306577184011143990781154326459840809386541627996524076471055696985530446555261766490806399622937990788033873465866105540452509784365976241571367010040568531259482711422528118204877825877248340643444691792714472751409100859802950617620222719462979346529652677957129697288910850260260934204574332967433783244070187634371831979235127691630957860919388223712386451176574359257666302828302576733579415017008404481686985297411372488645401110985529269793294082758582807216451395262061823198498254278440139038626199324603434578665221318604590884422462998966213184039963058493304410687228335176010013617459489994743662807147115258205286005928136012087816093970900795951562037498050185683043626772557633922986116405714047917279321992570500847459870070277077227696449968747741343244260877858143659994084208328475516220383866617623289603195269378344056053408126508309718148153444575525836960730017981483424918067002442946474999792065640738786325051371833498374327373580423798128797142206442342071202873077796584794449022420645466278125220077277710583152058978755277751551336459325144673205733990821498706667445648585143943437958235450106368589022050168419396859613684793444778943128187409865043251162940146627837472108542043027125314543637256607180242749134447200691331467239423706158466009688851002407765600077263719642429838589895773734394838093269568190153014664395583535104733117078429075596260117100076038619849419727327553070939836734956685134366421976956610422389876151354605799941204430302448166709432031852804507792686110371549593231826269094386182310516415208752386395762103695293122840335281207783816218250624465323851128630843025862881109071115294530655782169923608958778309443919114849108778487171992534744993099304805316882924667314416242181713621775109206855801899619382117257630871196908672098006720292042179320547221565078415139516565711515704519939852995923777419925761451225278906397782836810876463718287271634119435059556530275537501679913772832020917204057522905131475588265714079455952151605389751434832955222728515722426360842903717838979545017067564212088133916779461329450810245740766282610024370146716424084065735475761776138480307646113243579410091468299028462840258459172888208752875841739841909208796838375031483708767232028988313847415152161995444848004925210755114565552805771094456957484167261541883858363958277389205850867678961718847639798165098869803439343827468132726980087481345117481044788882512583002509080940026065435419496947042768953316685794232869963770471653195057950321497387712341991901525689472062212936151532996711527131302737800355691057785969179787499298085092697910678455980386125958063453943584613803548488609742024179162515375978042006900086996550702976076827143937408513091167776345124097113600707886821211489310046835386732092178338268324760718572312143396495511540085399259560171264278643718789881239036543428348993495748361608108908236314170017731480152009623133275125864103287773095585549059681841856841270387753654465102263049248481735167289661903798211534586305905928826818694151360143898755771297717946295608325455398388133637981371286623035785460302965565977766072968653183290310584357910746689222364551107403878575126943140418707460152297689622870846819743342290977580257160153809247679538272267088286484267450532081359226870411081844877098130523930235398398325188902636920132900419688217410365602782285459852967130100767227594424968342853377057948214314844510870488208461362348276891924025850446258271322441057091522047736286600689151341344261224973481196763386065289580183523316718521207109994725196928663877983080869641766517360967863324446455742576264704072265837434263107445980880712631166870044501727989266686020412163624781303724240296583517653108775243105908158792824574165538553333072916923271980931539364884029542029852436725736985996255344302852224354519969463080535462180603377364592757280902365123319085411694185390389160525807562001755607535712612351434608622713565899075998905707237228803879373254567189725433554816130871208778340984815281868500378865652096354146077265462120164963034094642835216589026476198167790984291012274908448979968555694412827034391769324139166083080500307562079809915788155358813270618773087782787013158320488236228815454193786490812281509765513117998429938595917550876619793756874211293353249299521646438968288147256063612953900631101315593351515086397698762241534091288565427280153137806318741127339601222221673990078222203924147938888964810097538997582629900552335952029181663367283116036724105776580383192245314686263701631668858370833205218292477755021104450518955688960256920320099450924387498321422757763255105457483619118237682786786146347206219484253498465812010045479681596597985152271929754324879219907454956244409039968672100667288395722997030903900265562804253579816498781694294125553732897184768921651484860799770838621352658861149183380239636969028500506207435694100200325777277081355026388616446804723641100941005850597543865965854950387864117976192277272927186122450339528695510381074693168652129410456149181501971668714866843136081015187311665569770038639687571240907482299838791224137852459878406064777131392421847454069428412537581880190811019499968374027018591305230524362448350821958567161595937565647087967524590267316882748487712090431145381349997579872438094386275848882913227778091174004318333905593625048432038814040121231985862382857245803739632292450926595256322106932021787013980039083231653109923967394750128166224878277825894202605811942115645273918018975367150526393963154953204944409098652191822619880706649466484394554631144331556079450195400020710720618875688491742186604465439520496854526885549888152192245848768871110138495116871153280437286496479211755918839666954913907478806703307465684294339390360184699911083870483773933653733084437637179457928838672289101437289558964728405033876037848044436012062818519188799498899150628725261254620695623292325572085077365827905175853429756309826641549556931626736354185873149542483380540716256420314761332259317455086035245053452195012752456861714627893098936643478765038344846708310113574150433330163279822904585672673287406823662613931761824544397572506846424463586762519307517742392788475846436108941930262295416278140374992363032017737713364500774153560408293477810351432229247568374046822598381842324561770762326837241539906611575360211990084272573247884584606947890052850776407165634653325004724488673715429863467405338664625587408734952332814537812288769474632715727730963991276334284046493196022790648071712972702943647413506235995016950360184182757722504735047872268506504070632712415958416300103427483766915534312938138289635922704165568867302845193233151059042397582247221126116850197383887531425035953220241903011330607230105365142256529558955867628253202115499803077268500868518377383318650849348986586490660531529408241935445745258951637427384698045040545856439289543286696394013860430842584908238233080356204411839966041319280190720750939209611056514387658411908153253660575262255126013329376800471746019140323697713197476144442596813089281144580915439183472405660435106478411597197344977810586652088710781364768091378018090350485046507388835011481281522336342593470535444801676402274188597232358282392268129325807520577021534662233748947493656563156131966256450102770297736891927470383033558317198025432120343653762710657447708350018144224332025755493503916686301269855131284989591187356679634426325028028662760439689270416811559504709859072519318211829509986768371859761356531005650306890304247337097455729974916290747464798468269631464972907025730260489023500894105305748284208689674903681649241639303725267891221545886470974659801732411228091052592352412952274365286832969613436028882717105131979014296051581345850506466590326685773892454897459040522645824858012674036996746687171151928116128582345977698174289487403739023869063571730071130636479229927150811345784911235932201724326252825489683511328485591841105389348788041659733015142529670280786616182775624623465536406950124977714635145320255086841869583408788481758523820406843956321164832031683988058950714747100489535735492321488626148605655332692384612923784831791867282301177993292282277594801220985623031670581693296617918148790118504164200470624494195750274627806535845719468236524501320433564411980394088216951069611240103556611661024160114014328221189010150546073656043487735573688443702569464927526649236073876261362948578035052515955677536563511060179659668413911300834924825017056076822007813254457125941053697532847783100239256129273441513709079254942418076635656969777271834773057280646757249275167907281755827165597317683041562291522967126570945227352616396003383051042472965260790528688302509834369690536244255142079488177326256254618041667818614716179547370333186342326190883521146589285267375786232590691395577550075015410909367971464556570117089712050536850738340849421895857336686426836706149571636745071933744996652539034058978960172873724254983880176655424812424747694063614985097124122290734356983992105684379738735876343258091089593833834357681437703531285494612422028006670088486603523665342869295052904792196505491033638164607232362823087954408524852898244435151107557474977258296739620159124403234475827388991114664588682649363905663190213328869529513449722326025408572421437704684471472027598342990418406644360934156734822892807688685943156793679785394525610256170528393101778357389349075642773231164808235097106832009865479604921437632280257217821602764377940668332012108009013905624497669533759299713477406902500414443897231985126078130076746877041173043548237045426358398148347484925290589046267944797946454054450603425026477996404509458391058758636741516669651741814887662198875000667229603233791621943407724206929930483170293306407024498732558453253791039690562485129777230237621361614496178708615470519214842276779620897299143742388364837161686300271384525325198551321727343000420194383121908510734811492992273182416802898253641806248660396229863426297102392227325205778389611218725589098800592280722099457229312360825465163658904051300401941803669172827787792981820530973806968313360965502253202488532109258718018399045497515862745421431261462353322389368903194303926401522722833992697599672258613697881626645720298549913446281162776122857111321906256019984911031064182753408636334999954900507681350285918235072115737448779894649145959595426648437236984902916675284652434710643482915781314584332009373164259466569027373729703133043556852216701192442432672217956866117537799270390062471044407746664822323222889319410295883564295872275884330786761360987730170960913017205523426547118311215978232623243918052828854562506068794378100349236843467495366001338359576951349179549055820266288369026418968156629940088734433420128829456819791004739825949328305380587040730564547750491263998408544699365662172486509538020283738900571343994270188265072583157304302366320742564517249177907980462796288891050576098794276364785169867020665080089231399918355313079018570880876364224520133894325917971764992676985823064613176159260554771339853849846049681937645120244112548146238293535463245782621131679846346051446081337991607822477265775764632221306388799438359119520086761948588066978634939201758962081430467383753868156522838793776127532878135432638677293129126713088153878854338051485667934396907796960341430294604091855102559145975056794524733581117408237846873684595881055336514037282693477345181569907327244925047711784030058439917874802122548846935319292326207161551189579001536749800906568213314497180039780313086411044918853880492632156903571632864447746277430447675419577701321879195678867454346291316441640528225566022049205791671166894714045951980094888072575190781429144895179227640012831015599329347316445843479272121742265240570332241073604698868708852058804959442483608382995967882567454413579733523795268514565314668974027168382995827606683532006684271371192662197520176797574109857579648080355377818397749793229648722928517997128010334011452457995123521080022239612614504722766473793969668934853592739865529763199115783842938524650898589507609970776486102114143944294861483136101863236542473839890289278949143271153831560935150826721017646392214704945133405351399964482469634063744193446162898860665283955906369933029492801992682252655346318262161976307938046271823294941366168943320743721302449992707362626093043594313279087408569482946578060437543798221294938762169494129066396193670880095134056615039012037150996900290186394215619859005249676120889287512940845827645711826836269326724012924573387523753583237807113311052974921883425137895303603468117604664872633316988295011838423835880426073821560302772056730968552235756641674286839022589106579416047459822356539731802420835034551320696071859004206790368921237474301498597796427302682440377262700448387533430782528077479111442358866274671651587297029752217304856802957081616329755230546001402423825767052943116753962418625749079430072632481171965465641949692496415613974341573203487592341753386831305191779466218322914757241524575940939872434609713338230177059623527241066320672077376833348206640866977675058591942186003484724800146620192055747701678418819775121733808680278140529100620118374535682968244481639212952643304678284505105311233221032812054269631893837841385289426626764161179520737094083545318834183152338432790787099927686137740113562430102870268229572850970854149641180264474844654978149396039229812196859550789601709829064959315643067887701223964158772317130390921488413577981193799631128302939223693878741324000383147400387193398560428773626209631330009961700140799188717937347582620359075577766638576288644839236027519973861990324804332582270646403263625865714900947026196232229404704237472144718901725401989773586969795032155034222375071954486393882182806345955222246297410469681445598184808452106470112727825078900592844901561528957830366119994626640379231168600462735124239425742066266382589727207670136667999257142974850067807862655789076685133603741889674061116389988062629041471144440652707805094194229413533156685306929285469887256942374351917045562728391521419954529607412608877917110066332405140224676435422210764291674217430856663774119962788384978064245070916940751601796432839358561988012251836825303519853231758101218229899803893804020256515687300901217525073162302550690732340657180772877679164814203596614032009577058244234220687863606329963287664929148842763719926710931356942222490184949454343511639264589940417083166411382080586974096138309803096303017419232362233451181139773252064135136479038336622424836901794968411429977080011069319596793588221800007905643739916868121154015021187149213928063965883583085626155473139027718693380153884575819117541921536486072354539114375650045135669365092581382584344117146080848828632668130872362469855040498453674827144819109113097750062924494340179024025274589921799681471473867416027965116503105374042905615812369901646448420091675223638408527374154416020229267526061104813559292051093412397299283529801584857398369121356589615844261113787353800391011736271050165884643907858143045194994546505245882732456153583047944231376542098535407567295760268456558824382034294587653860883887001080475146451472820367755539334360532289692174609276668402235153005665863073163967769681716124642372725878345461554774466961066155862454520683333199518925424819562715432918541172970941764781348564352893756026093372811250006025639675953089385066824916402085931377411371124341692761764599796434948812981646057548601439238431716473703488332891853800190269224535142292128161464786283178613141717111075737938310246155632416467352432801295258249551447180052650785108057847541941620135921686838720267678091810021010624108107931231107236480268785516483981343015371208054717239279661128962510363064297981299594372334284364280253605793045094039647188377457554538863349046547800077104545439864648929843272795680588687425312425062158740318773277589817344728107727885723162811098819857720733246029170550072928001555509542402991763008211549277726858559059454829669014852160355478944790726698661046337956654883578291548762941496398811556210241489525050568589127513487858479093278032390543998935222640482389567960119000413699520598279174963190484051856019733680549895916682280974343781992291598612756949615729228100858973384675305137043326395048569026946065517161846634619020954423705261874771825254181040312023861356569530257811151342420467753045475213909494861247060807450800240604843028681520516139214903914079221436416059273620983443997156134526231548801228873064655088851728222291229926171169582782106673363829738084424607986904493379553617450834178644465332386423623492935944586624888947737232346039921858514922172655839249619680816135667746082282309282877879059633719060978547842348754630996779741888452275856614808447535225227811092377386214495828806045708683097717228461271872603455899474188196366648884502050319188333938418214911935447038678391729685134912182554765423609120361906897326998301908033056094759314335479742619871014925852447669246171721575932989215107095205692738665856657028939941681199344474704025024542408175293957017896348762701277246688583151904298121550916104600678996902586023488306514475812410368075820846881319977835437705394942872181112760494764181468212744519827086580700611488032071186149278156362747970294301353488391997865799184176589923425718893413702201632559658295188764752483513564592300722330280923814114662747647775272210248424251263988085997351697096836519622609267384670122015535760338120094302784523289193801341728517262231247026997584538161239403352213405387684219577113034459052525628074688508001693715180590794309154774837366564591488479705545369721713658098462382450820032602422481846038118850537313722209797544949407931376369366672417767820309760560199210842282791378399678358551913418540870538784380751977387022886152502946142363567037767093020582196737073001547694209614391350706275654488451811559658073259229158573489135877892143632448927422406598204621062865513561953537490385303631730935316994249623209781576199521523779966721226259401213259796636569819448942492418489505665534926684097078781381384509164159645196459535103044060814059395923403726596829846349331604356752600852396798865548672105393066147935514549780047478698365517795701795447719733570292567254776693466024446407981270775730699760461670127589257422455886351235666183537219611889857719396157656898940433527443091153768069289130308847559863164915606033455300752730660857294043097634488572031983940416531537260453120028484538361308071857213505590464076458714987613298905994744558815444662858705055701587693870870245004981614969917034332041801405475810558107250466870315157866378256134821877585228082546169736431188762453258735827321044874414232717274743230911534989046938742672293579649142619584262303734850074957205978592685404060816829140129352568871224676615142559354459528709165092261248288870107377741136808355468651378672448971833829489805258566390232139467477403805525657014481468919270730667335715069474862616419216617282806121840646201060610185162900805777966489586649494955886879445188144381169500258870406457029156314790706672940731571558116174605132365964549659538147328383494932387286922265162296543176540695889481955735462096719056146469735611498862435492604148504892552446497896359114659582967330269287777097413603652493972716718345862121232424547665924936217151855695072972285372623086017529831741281697952872404572756973679348107906992629254462402513818512567635299402692497253205127982117211769637903650686667551316363797151053420054585289753371406443098351612177586268693442084220724844424970892074756024676287321635444191958971910958600813250526404109237431780321242740972403435683538564701750761998620675725470086379417323931972971861929830024284792139516174149365774918355032758795704186388306307278143343677913615789537587888569245453885209532356861134623897454658167649985822932003364112586961129016696077985532302012489849825335732544857168993407410737948203577776981657002813042003018803204344379803516454499821630371841969998133181386377615130744632043398345488053819035477718287075706463093597580228500782653262060186010999578897724372697675603726397366322108686893925238728380155570416264047173225054878345331757770632968795337217570090620497342634690702007926582810699395275360198840455827010525119694266833116645320510307547380672454707273581942740573178145195681795362952566555507367378411966757009085000831519415784874682128121987621880728204153840566312590153102865556101781465462532639174008652663714418139227695244022715830858871087928822566232400559919856399361233990710175052616341361010411164455517732357529604281986708979117600708951458718313228429355263274943241216966034102410068868452935352201037535329902556512393711015094111059581335663276141751037935901805114130816248244470359081095287229686011086188508158791335900295445572754355210939761419004683475014713833251706687737000266709588771796502928824484301055938871766371193308257928615032514834457891325834728171622228560897885170838786595196181503473004369336504667433561222331412520943839360674151890958746441811405509811674654977302111477718983972512956191018482248836375291517113322370828626167511888955987355662074075659410150052886231753217403587876903786040740555785332385917146559663219364022022200940974543184315336784671220848278238931279217842358387428467756665274597201631130466072830293951417840293401987404515936595418150003609346754920025444153484394884508613603506245432393158966931313764079701672624212609114178425299680423061993250472313375325296888554994306527085903352088273693013803359177271907478576765451697542856064197957441678278966063555611057209056536426061560021524234100235892114722173682025806762848604526049114469620696607702080230013996350954636009510115373189943688063849444505976401651271739236423608841385420358586906956693932218637812740806991991367751679789428251945340291793843770176515839143998855355184027916517067292087240904373097916960799993634561947094523417484976787473477729451417478143599564773709622846187302268448938685573148871541011883790471796524552592464324225785791669547263384849554033611643344301480346432154337622220188731430209892257235463716755569776893717483724686445945086204927770019606036984606464369903976043395066724087456563923190427636926468428414589345703827612704702237197872006947552057866051830959512496511601791045627938424104817429886110397393952203428745326375046001349406099805548706332777530828507875882198619252809453872214398183908088519894459149661049185792087329562053306293462101095671747563532608136006589189435648732485415629592021489038313395789862419658537834661286820538337253688346308604418050719581761178011308213000344087992522186885850236107981103589869049649093946245932435969211985810308519961296936417667062556108829164532683948680577880793862683066481117651351485400332616519612108668049602680117373141130313437392919954536898531845054314371034619574891912214248863234503791049529481320317713293085009462032148989082262191484148283317880860210085448409287949489480023757164738744095291540910126132795567541488104555159688694061033056014931456624288754564904267140216249459973113706502679388527663728850397623456427865559027449387847694270219788827264291205094514631962800734579432745975793299177863146796056104722612156738658955826149148319681123797309503936928686434232986780939407335681741922478298627231776738038200168021851573047013998105700716745395678620201452497719162651458064809555189917511036407881047918988400214778419786384097879140265408600134805883748356342409862539392934484333565557638750224459906331029364335676987340489518308547503811036933781039532539597131269019685017580413835067215825263974922346919284868003602379365507802189935723753170095443867720840753507577135729805714472474545908403398430560386159058534906296494014698291284168719678888349163435606059431104157864228751340735767460733901892248769098833412930429801387967882228709650591808655153071552094735306168238001300163309083412216385771496434595704830333075599263066423656601510295202383530115743913627229648061931462208079829377353827221931321001366384436030213901287237301736489238098572605415529190136675140118165624198983677111717741452773580272001853824733990778285006588404035556378406134246800261410706851464989921087204247343224994535541673069308033007487778439221459068117728265058014610675660758775574440484590832359879154222729937088781710029170523398567444392213475295677183557287851877953892913742007235799051450523795880535565092414932814463279404057248737666853412183210636309865942201924183495586165365590742536131297537491686000027838877685901020573949483327963544983650682537644530012215643795623554107747290938270027033774637304229430484705545794560998057939110903642381260726946907430361347487353410321755798861765958894069108977316215954049944641379530070380832549416101264119144411371859931491363780013710720305517625937677790371524147680014977718623233322938915013113651752306447587489601727785111193300150710038458465401291871514116918233384338526530929588012023607853931394391662944685276716950426265833303788559252483991147106697777828511985061462966252747856739547966292587959109680786989435645804323841462606361386539417497625206889471603963686192685531612817168836141227300010868591943471835433891977586959986032788132067983920542215144468738102843532698171241918692123483332331724132889873650091098884470456284881357418793612614609174816918541525024440501126982091296269154472582633803312445653442766422894077259041641503204149494034343377665902944423707750637855716036967581367629297609687595994696601430644053169067369679092263413038105528922167370898728814179831848177742714543089127657705806703572712263878032134234526401317769266126279531850261941414932207540290104823494555863010256787641652069136559805605391948224946624554194666224135774233587408581224961245449594952813790919660573658222907463659874080561224048977463815900233497046275808520539155755739617260349205212025948265861864324741629948537693791514835488466527458083644833149516145260381273880329921963744787758046539217079181054051290056635695174329569247603685699615032610972976608871334876519724691225949127014212263876866992580227499310417845663667735268771634846356039984522309381271108472779213099593582783088292886060369328810859177716077879013441823875596866952061841489119694590446571557708216840317067496800472160162481615631121966243572356502927293187193424066621244891139499385056355840014133605625626605594546806022234647474981365241849165778631308750227809964720021120982141140052341592821336066180659968931802714276561477806311714783083441408172685005498761171466871074266022694799931655579571121307716055242517788650404543776161041200236500267467332382723880813435213515586955955110251043177662133812775253818345583708414274521287258236173130710705255874356859610110021177673919373498069469762547660239913100079990995708257087679977528976921474323653371383658339805715501929757942738603306314690637494459456477174068211885793976092018247209608514219349074274958114652237471534254825007621084531866797946226838579972716767247638625214153936131077838432570796299436050766839273373875906494370086059247676601299811978155852085760506455448242927759785025946716043353123873402704426001359047616443396975991542194995932340015133416638470612481549200138822943977906558409501379704328125425966674661454056641037363764950855704948899740137883218681381077120128368704730002594432986059955291107517129372147706618225040742973464109291088355462286679735078438111282560443416787202759977280610210259792716158686972536458678160514817609748540763147665225567545147382009268395470085106698752519584687867761459528986777114247716670251855386853652132491547293777458413807919093712066375941095288627664143401245970225607851380261195904463884703628114685543096093307301730682072061284664263309903543574458601167164072034832668781674223710918668188103474096515559130901716021198311700622263642055035136839961282228589800001631747751940036163468632088381519060325071001314669893352797425851385791115952551102629215794840651510856937855309145320631833995863549692469817337203235907920941643995148687990906917842916311594013654483188455558593074007533642307951519884181648899175911731608489095699807183111029558020377267835730165095984781770751252756441470712931626773800095485230742706702971316327637439302650028754675065757028335167731937335098258220587850052117390862901825939375017949021345103626816806581731844276568371642350178324893147687630383041060296098016937675694386349294141187558078363318148917271420591038627831211684993286516242986880177055870415616847821339693209919393150741793538150645585768702396098869198084212509149903590748485776020341814639830026668752733994087628877975691398569267458918007526192089292189990073948374829949291532755584313465887317212588820049546148360320416170853695827212776551937829919684597943035718249974326400408452317392964737553606959843749555927971301663088932133210057622139157988582152376209335526029021659502886986206198767624367478155610458054172011368473874536679706370999970772088189335236946782949800149298721655441403744720266276886586307004734778921255648126493659275220266109093513744115841314644359509537648027764823046799021927104582010043829983773239441545245346535667819966876933139082115631191532474830563139704545201300446959198472019818900248319313453181492006235886960594650168816403604981822265915278129655742650481951461625229874169470456086727694658870410480849248829834493829162302872839892619632514438837880317345595674644940057010515950425819741634802550621441475130426765401605111231117392102249317268675346698973435511960312581203507944704379940953662063656613982276950507141114255889329263128256432941863917959139511656899765159048371271296379927278140712564632954234939991839825826746381478389939853967761926428858825440470724215521690748647947457541501390870934956838448488212910113024259557652681621385131490876525168808553517227198550726661248260294011272185481216377932949887677067790324260819998673851748597319466939887329617297349649568662043961252923060398756887947514962066855179347743049951451085802456994090703476128532449557883763968557084038371663952370412578855849487760049760167020860213242822900061655870463839217852736557715935917831860482233587110884676193901213747367512464433290634643405550008701402971977229686113073800164492639505740482665304162055263126752520126776539989311481014568016834621981951357093779979844102766869094425783777065512774621156808478705091456557467021822726566861952641876414701255887522935162763235750834651224266250105969319299890943364867201921231682514210559876286029529576067515843525725831377313444401457450234569481846398103395032683652188570126481533016288903720477907082895674017830254694550887726263061350093845266235918832446045379101643004653943252863935687774192984966279819937390554692152936353532913835874738552515630337057440792499467321317179296160263536668715909904572657145137828807656243589274237846281951317224522319653642228709984221379315895752060831766463916789710682418249394349936826424835499347268380730763034934082976823962602449326693721288530148313806373398900402126952436259553408309689770711805391242691393010768582261820064150219139012244989571123639159073739166170333788796270583502331036686757680416108890614730234361039947623368023664906972474066623873832318445468460670897957027652890340648017370157073096732182864485799175597191539054653146761994378999743003698671605807374436471869700977139853472547189583844152112055910358926288092391033672341815123227961731424275550416483507269806148483049719096157598931488533023757800831406507011394247976062662906317826311494976509786310306113412646083786082308016242842673473892562550999980019518823097154378072999657524666850514871606862077204071443998467116516483627885200950615242146589868607143453419898318860998117557927627280427196103017097225269152938490864378283421366397267932028064794100383396819932030441547600712462625996048065175946167512588772364198596716519431042064978207749092088737024537845446977926383970374366814451176369103303856048646464899153201146467783520313913475555017277028962324877349901745479204743121944317302659963194282147134911053157206303538105769046821820459223188783327836262764002922248053052228318849743648239802081130829857358591661071596798547263669197558305714611108660382719753391835917424459117441977537566451618277009794738710460044383852030199504564719595737715467457110381956235931756732618508486812345106605612711932997989273511911695710006624328155383120934320692167060699531358956807517630378060400649185029537359575633436565282068205216708021281478987552613730861979913197689857211667217866470310712751391113696695892688915812395409281611318186237598530926942506201814176141254342003870747319977685755340428767651045278901803034712018054594157701015992327291452621420829024711730230551386303013254251775615497682122396354784539247851731254269535837446898158412176363606822419734210764514358200249952880443935254328765896217600432208543100403136649338581792966482798872435717735617380188416343266653270828493520349119386446576388364555337566069737673319763821977409912478008441628054099957264570778660366794803588725674402571371057408547920073091709248653843180040274441217197596942707341535589837012322878966090979448421540303724447053939750882058236394766615113194936326868711076131605152049034977462150992905930395287802448454279643671998560137351250960829766305820651160000081768060451876404623791006023623943517360203799377838346139836523998244441617578295188932506526096424651847643458290228959379780145143996809518636597552062998938061341652457435432090470762150931697535139635638653602140336435733899474111117904302237029935517298183767797820619700788455760035985259695171202328325278553637095253767650648616964625602533956283341339964041500233452116948160540612360989907226835680407573719913469297356573208182841949502277879351380427450598857750024867289238397979256289735440189853352806719600247217063236529997463457936053073950175094467654156766352701539473771896506722077274323033310995627249703163439167980457745307977801634504839690939817010237672361668398572179824804453037026258706207379329499453771743765931249082586202709921385440391036537639839750046285115682446686235681006888995865958542760537707516327458978186337579119123314278925441626771209760841006040461042986183192346950729515608431673185478187951692814231595643097353120270601271092657905290302472535756394154083468105369475526127761411835893710129334352607582500212812340925933995860618042434334347324662487961465008494549524138722429391366671250325950024945326149946445177072968776480006962476081177369342111895961181777293749712888002449938386267293664719162030326994942282124958565671876263941185414268027338711503788184212751219955427009728965742675993255634417292036281453772617511723242591854063460624444573671418869750833049923240740556642280096699165044020879103310831716496692008468780083500885497314227363786820341270868380589248071896143426984898556434104525992987286161023145318804238871036907497429345677608477346372223926450553675647596868279061020114961324852385214592266390695804148368388348309603879686263249825215541695096275470550513284675076975567380440684632122150693296822857810748484257435604944198298441340218189858968589589842522639018040470735751333747129820465438420770822665190741279177159580513894126532227047516571796954533657436624277798724699281963490708365357322555688953398052586542078341976547782085166560745833515714996119261063346862497241937215451155157337611957839257343276344556851486919585020334039853870574683984891195698914138921972025684322873498769840934806930076276780075928869712036448836426063334202651315468014599305825927863926967964622270228396503620213210467976781624788171067038374346703380790742988921988850606964312430002423597562468472886823558186907874746464323842195897013661398734305777631417021946809858349544485424399703437059447147129026459819626086437545092775017523612333128604500444746011951680253676066426942492012098537827889146470743045616161985035317360206442048331896261648598973045215578970434449700501239066822618377191109894452589721291728607978072818328379295987901969681583111522975379209318749734578644858700335393353582435270712543894151827811441104584461803036319670758375063297726152994307196232068996123270253641620356250176904983943683875283428038692810116016490366426737976685135035307626581868367652114337044598340989826470527956297739902357266934137391540199237770907660621359072839504731423888595796614505517047452983712940150493079835819703050079872367130154414138918726434231161127312554396496974312605680198057676087060773428096981036379623255924227041990201777834317372072433465983477756980324775244545280258526516413577000608243630416393270367081859331966006363688319688467260239995574021322100409375620460171894750258366616563580512472152183516409220009188378682950915210704479727671113779301278496996646727517937064534431356256184395517502930684252507891593925572366356158142926493777849893072468305753672513203160445059095720834259354305313791652927970221279165465795591683403178485597396764772926825438815328303777851781798142481464788931162895982338450129245008646597078974237767121936093295408560366859203904415988027068717608905057317151516943438239925380816328753927118362727290097902848146580105454598155871425485498659009904425389520443318620611244771702891580076365512480424043035951887400128753484708702180683143009247793627184522087871162696147059048507539100230207329609854728832880738257772156096934132816762777947219665879334407352104569847737148711490231187694199544230724763063653064644274368997650980770577375739696139257418947979354444014376788827922330458569235188982419228699368326292705461076779306134637208931570292844899009285852039826362100931410295574678796202670855179316147555444474395260422688245224047959180360401765055850076893906111947045093024457017036903978612075134337571208829974949752187327289733108225399826965000807229360380628397665603625810371604802619063061872995315966103916294822895044862354880015761696702461028116870479742001452455966594613248017132325237036087410247244076801440020126168255382305950900083101427459966621181670392640058789152842178456601489802161245415048561085103599713959138803874965099311064560322684074852290590933040459766362896868875455410866649529651436370845864004595727078369530914098934706582993996721050601096517902335717907383860099536228718301749876327594359478741240493405322593094491004555633024778253396840781619113983982943932244492469658609367916761105075304159513169735873072368997810495495253847235454278015847836199209794494059658901578213051078372248777449140668766254855550930161969193324374097119851980450753952814481839175872084261240152038131219467817170127230364718044322137964337000931864438794339747622818364133349127114907818749050765984404625943240318210377303963728029354256654631632486803065651906690878206934264469166922324674389152719842399306479624258782633326318613703929032722901270110694151792348136104450906405004072979423976488331896674831307411326530519322982684546979179823338635183873115638577388344022404235731723881043460722646943271474965710987366566167757044741134951592057696172183395128881578015774642254236767206583204365625204916696523149990483924959905075179475155766176993829085336932119899009516687237159105245957377627251178664483937525692455038102742063255519017726881667592972586684781041857545461394061326259120784914337693522319410784657800678627087723058724550467736322710146054810800872706972317280320557816698598647348582138312898686733674820746300825897584595592123319256986728179078267811314446491895264396911165304958599520550346256007275956410093148272595734069608023248661130519489341292068575632127964051660806574573738179758032732960047114657388186622825734363483645307826511089236284121542589498973635241625735368431639889669057866197939868186293898181092946467717843142150984137632177231978754506100758685583540721823373641186654016635930788264621935740490304366150908430614645760855084006331824675428679024536616819061587393084555573730820922003093818042177395033256173911880113649565902322450696695464547550285661072599170018179052413901182513784085862414487426689086714208448043886686958387734342506486280839463974967865598971480622034855669643769231525001339849352099261054895671912332556695201442552673435988814218481294141478052994906136952312860368566135910664376965836563731750517200772168527578106215924676959489968635834797731491404238880499188225642721959981327985536670670548843561146343024832731352008544187189796668857218119470373598940101903414916638316747253805558288231069194246201611338593338863307420394485179836820985365951571388360070409485421926569447389064857321544375761965973221083641710636643383840778946099510162677656136576325109691998539521732029780595339510868559883081045128079258040955951294004520179897934250625940798537301052932113009046841002397546759480599456556975904411796620542964223423450742104757731875068518094818946458499629596693322135050967252737753154723322845951061803457240139521538848711586875574035497711898182448102142998249177978054591438155150886344913580569570881324011813725148110412318891364459035729992326997119185098131531791522437552515656178781882845100853695983161405225110642911363671512377272003502951935931513907739530974272575040812160191798292436005650000150746545130566357440165104833528799500876442522579641288696687422290629783970459704734411479997674713486342187837990361631076017976866789328532779836484817474644355820801562017946188966292366527542519680237308852743263052857884648568523701932770518497913280220852511754252280261983760898361775913984331786628906277790912361931935718575111546457656509002006482557102202600152779758352131532566331639725196677139815450599838475436602230943224954347550381902959633379989582716923491341662973158177333547364447589229485147990327194956245397776762518235563266384671984797020576194731735748985032305269441358672244176795187723697294124073870291779393105880852748541156891747737170394436737206161731651279046575642287869420256650193823626999929705094686739781872060686646303271434380744325682509411682155881723631961619252362044770281955941188504222179758041430021784201585111687429891438436343719390533787353049793333751070939558426128623174198830010555493171056589185645189308999169874997835786587482389719595644454076458512812932294136416815591902852342681446222690799622087667598818536792078292073733706938749454289103387915110998963286140120455011352159338303339997548796693047944623318295578441302291863901155218953246274060890696552248205802411061540771046015919597334265058096083431125075355975211044043590036624979502426373587568582263028414216733584296318293986778468524973179401883907451215799628698727497147092020348635391023362441243293866130205009132999910522399379927109585750879004102918480308742881843187639403495093585541118984492399935863766701534725054280401427200219260336126823546178053301087404454681038866215268447254584814884285177906159989916658172511536563920019355939670719151759950714968592252694309274837436019518829173824519330727841787490388212544061842059856884424304610620219647200959878057261791300216533931138440190487558761215106637578527161028023378300535912169063039209107428985812372852454763877864307558819198503119702878208252428896606810819850149185298057175842747133673230099603082557958668385821680638564717091430538864669661656205936419775292011001576929091072488212614160664393209428681496817787721354328284503763877812321709299527488474305230412538367826431815229309158279713327168004982362463174056084956110290401935670232329859332545364565905280248453304638865748062030838379076044012213760724957632834181048470334901003663703160501951779895315957955081536666405836322774933661798603645017243215819553753193659178874860187396521424653664924547755637960712612688006680144669046805733568513872423367278653755631908502932351852735305017295435299202706650431988856768330082435713860231889935954129616173874124848489011014257444873209636347973009702626152027046779552198760855504913244251065394777393174020512698619720749758378251523960776447368529260978166498627845532881507820925599996358932306790239567224212442954339413380723626704253007070452822842640035633633170653158798979064727753172085512574561433218367342642885666046273839706598463401544182808719522646423166360105286964305804571308534773658435942201369682633103259980259182678454864238984082650632883128208737651991307519601123952627118562209886362602240666395976510340906756947710473369587569846556702839176076388803624946763401930317029234478776567884717980636831083973707417003504111261566121921253351597399666566284513931234043042847037059026002012304482554422639627703510944232503715699042744886988538680015830785006383821032290866133924096246857741735494213550868525635013832886854712200020459732970115975435581161823429737617122179984354155767784846849415246531865781751045486593176647585021714343072740703445099360989440605414012719193813285014559301130852456928429231259222593128951420430055276726054334829280774203718540571056108388737947898481726371350012366054726514102769107738418750651500176382655317430428396666150869399499789314530569778251875566129982957181156609634838125236344042192216382245917315178350014017835310358578216486162800853335594774645502779740133713709025656832433413916255302650773974233822574321656809066484589162459015110248040809758640131568050781197512973416633371959094674996268957376692996067893272104031664576805222775367091035775804120798043858995007860938811369591698000081715923941546694130730626668886578743248884570312899052321479978597683101776116905392459485268981319733744042272933034491689953544262090663590420601345380566639811785507473664480173733120628642629206948295124990006795553315947055147767710303121142513713710308517748388389665280379298507160676970123704840086954822278510628808092042067950906184593404841954149608183124231337766119719525958773546133574248616643937268360455447251547887488843126255711382203461664622369788594314153966343638458709790085910216809247077280136146028012768664840484645309883829710454125751209551858465947685195402553327303047256313982112356954682286567872547892780991135741395574280154934443070291028800330888106949663486325940437559467846110744146424676493448719446028218143108582587118044261681141195759872565753170166233563996133968643233901289546917089181540034229334396594651478547809888633181947377196534339614523191700474808140086554785016144936601439551480250430663321841421535634403203819851766137001405878728535954282401257625151469673603688860529809277516506946466482322120862001780885571070591282433280878100184595972689780052795400765984749504775866106025971641766468848963477746981091646570679111000333206892139234337706328395795400094291036845469399009417210470886903520556747576879727691179399853900314703566957454670490546721244575556808684918760879974950344017228604540085160625539905934958805566227464136345948220063397175636540176982751866915265714622724640743781726589481594944666634783193159942621984768721665612485497281162631951468274231921364832207752862532428702024826287046638037576602541595476100964573925959648386970424814088766729597633470592231982686413451464908546350280258342102991365665211106686004699506452978022287093662943615416177339748757986917726349208128080785684830270254086616922673730332969853489757605620834634452531560155496031079506585953345823864412884996533380835344219489837463991801035085220913759126494978545559444769333485110512449028348917219589489139043613381019104727024995258878720098808274340054717062970960175998485756958274421289796403850427293554123586446632402143161779293105493522316326777940679493069615692564068362018951639699501633097402090602232622729463632814533607951314454586376147308286280153184368425294498249802463462803637368901398329999933243321111369188137216901512225191625105938783136492099234189904293116236822416225861207831200197093468908820207776613490007728080342900344374352777386493476286579038555948221149739849877256494151796161123781651826537958349671659262186450496552059589526654823786121615794473825897052589140639057566821915080382107801492801576407023909368919109226596634314141685312724011800804324294407278426320587512825687514023173798964193005472914649859562103421953401723601733964818220258420218303626983400919226150413360843267350641305840906345484121139596417137681989233042959969751992424428733305277225302930468374133217782947397666983086544280124191611072277630567563874831110911425057086119766810452526538596029072435788846003726401254709506654509674334585854575726869675170976497937337577569458258935967532613619032822068641486878848465987386665409441574188368205742443821366106110432886893861666768582476747066763761204748443144744315772407798636870402164354424973061488543536708390065051334202584675471031296275322379612245360062091608107009061482107086960414256813271015488263897663330352643299543438529634211412529776020695841782647137348150391399473999285685977910019379200908500403711806256825474314121084849091771562012871970031602548605762271212438801406433267889392320973560946899642923700637664551061346697093960438456836317062808848773616073099048123374477577074950060466243761101832421360012313952645088710525651672023766234734414581049936916217672821236361282234332308738367860089230631023031044235439807837139391995179407754074061947258562206987086793825397557456577146722056293905237136273444236724069689633652132472982320162155130893176700443447735024532883807019295364873192499681700342959283516564304373063602533847184611937655279288081473505368483129995272294667677085507218535600206755013761233826829352294155519927391244504708124234607189254490526913460603124453152087024057959624120589171408257787639437731387925679116785403671603291568189784344304783324650393504842536106541790226026058018258849885651976342284854534389151615614570853327979284844395338906376493961844526289017388121959195719612062834895072041883575946598516367690602277309933123469716206431087204560236225369796771064997223407275582523402467113830841463613612949663015146335564190614331762629435167187713152707654536897408959238961658675274512514896201003681250415520122481191741084722053256917730526619475052254570897316502121018811881955107518356960827846987383783847570490974955646981887866357032784844864716980488728159991063473671215892840276389958167176802566343066029225138663966964342250999831147642163611043433228910301877309729679688617927746194112233906880015200061253517659772290231797948606320838610125815551761104166545692094498770845639002210906920497926073479389696039669360483042765926348345493743290500652492782647985212269833406872254016278711840724384273442892557092164904354002037450501047288772785453631645142799895735688269501250332973016165734287606287800685796909633053284177645256968337255354849239526079632210813131230493600736910953779148666303683974427226098830337737848238189466069091193185592736015650724917822857759504781498535119031623020962412167710445951426259093418177589584606395475967517133224312450732617662392841602346303198958445040062619951574010446402133318417259603990690916726908199413263459397838700134733564948938633319583399486527462830578731343525341913685708860982177579698738850706799765204488247696853762930747604955996649314737625652312396844797378765792952542523078220273649870970519612110290832953639219464719768009979516039525767023463896831039991892684262092881254630642632360152169355422691530824852049714678007620459235203373310229408464011917637562814808966956864486647393037254049373850038540586558322677260213020791040884484911184943872017093263413578445969915069830521660891509566568033105019077565211226617338508565460124859808603975310452324259392862215068354958981833466127716291759856288528436400233595152730694274205805285185841980081377877739517399998428572388775539061522471978978933889464248938650112277638217130091118465273504100078030859209423760584046948135938112231654070936142100906773224885289338031094256543399449381048280942683536720532791825126075490640173064731006411471393673350267511991200828233321617384514977200827908579751652553733642097012447407773050917568472935117694132500703882761873821337606299194154974812748562953451909369260071347908063834298104661078947220498985146331448811907799374340498688566150117497842057856257977509611403597688452475751944769705250132106554478194907831064510606859046023452984935417038786263156260803040675275033124716233917000221006899543804670815712859529885008843428474696267963724008498884703634997845472796454737704359227927274357454143059905223260150258568382187885443287934238949053543670872776060053211915736162478679502922275298217667227588183391153451899763491647365461730936917626441511388068354067754418013815598657878598686308100616666723170334621634140184807559347608374800416834576660553673218717979470791747550794555354940334691332843819703793244373543445414904124269267433311979425137902385101857550658292480127346148209752137205736277326832694456367697876700758963915400345357585984330474310691225614112140690684294562403501418198720190458143522883938373306135066571217338459991834473492663423289872592558695879811827766354560078739091760439759272557667557814600219763316814896857872894509142146443948774421975173659209286106457458694063000058719550243484406470617994561571249926397556241090469428075941413247457734314390070210192363079137252878520007282104239966634058174695318508837106029052831287146612744884048651828933419465402166661210928727754946138101645837495707131010221290688534012398758137218357401634223577230300999301611934962132404911515841386004866849362892473481880797076026896874777931730226626331467186237429922201374607026827253772611352737401858162468350208283868218620897492673758899522217740284954698139966535465707845983776570956572738867673582708885027397740392991556308746700011699906939041307536874703536936546624734669149304432203958642634342423019998335664903225568590898261650827648104078131824300173191369615031181342887703696791921101573394206126144268522972874289651778893020739797134071518982838627512644867330930654222318952836444420693522291306004413934408123404182034875412361973579184759064767082755039484214703901589011017414142769496244742741118011820063861661774888067056341393750306146176941178826540883620625441592310312250113103978591438223268865413819406178998412411276131892713863621638970374227905967603019307233545934568498413123972310835400011421135395438043535138730942007234692870283030682311459971598423771762417011297951238149451649303018620435285107053064608712991680801817161768650580678721065655637335143898935715215043636546108708303941411843988402330796463060211544147934270879011622474645460275598612889385520719836078186913555468039378339166511191156285265228120091751818162278128459611667201193916382034106231563283454778069315542713322734354417748636905204231494630180335144696112633966384345567018838218587745483710506539278557367756775061721941255524721414303691289772754788462111010962621166756371732113762689403220650699894692389489864327113557831320415666247987044376472367855394096331458924508238764123630241177152316518623922157633118263441142816688890189435156137023678290794215132532774280721700194536467416547543944442700011793296321102434400435333039006070913429187334853380323322851032553489070623748762162479298871011945671296962464173175706335953257663225251089817930738618870525023472186926516262544524567923233334171541789364827465240054437781167954646289124499071672557278373813802552000862642576427949641202733604596811799584275248230979150543508731277579452855163834403110822855566213903169479624753337414626024742383861576535010078173456519124113485929819648262859296690039172711863316576373846164399103173963780467999164827829187692635111938352790275359682925776304433100506822422203941203816314018344329499637866030363120511680754910458412703077944035208479690055407049943383008411969200039938845452195341961308779507686551594427175827020828101753001306550100085552899021644321793135965869493079378686713472369185183167465236470706708218639693845547388442911607368775805325381983886739519010319255072524792705569168669263228573118010241594955000127864063692888556656833712450143215640744449882191957777424134786439108267617166997381039568905644253477145238754901175462859537821787416228804656558880505653758240719428441145750619513524083594451708205912732097646406813194538564073285029051242607624350757798709708815431630947834612553959785400600626018840371570600725681636577242754260821525982733841175435399188053601980792994763938894870609422557691454889464027212320520298023545089093478868873514671036711441601733263681012215702225924358373237925848553030248016675673268384203333004013941274689500989189320467793254636068914653019670228454063716446510861925175047042937446051078093665932680876810358798204734542257562628301304565068200067244303297077724013597883771923507459665606937762865096081717613854738203181645579619982344084194144287053594638124804643293475102567424507976440974975632344782569891247174364131000223442749460702088325193987921769941616171865844913515138529264170798235562829287579331244887342824200051578446958836167388367847045840029718220679988645278844854032929303814485348192459071705963104817737210256514902853288584631965185592165294843795200931892511147245251956012443211084987345632263008972343478080664003555628103505025853516234615782679356845005647237761687038810957823704867555258816249890185315732634452751721028473504510494484602064195327117024733743526483663181437929182446721157743196590053024957303420875817046815495266081443389170500395967003865321437113663921977412390205951345192128921473430976224061942234620891947533877291902489085298769896148536245422254261370432300893598319547165559488480267545409996458310457498094658861590174622198097162253340971088414538171032565113271487273288039630312981045907382028691486108410791398210562546452146767857870957292455583429809446290858872660732297657726656646428262673733385228736692960621282493573207745667090443404324343723491481921531736386235036030464679786184099680901294044795556319889407138049235644773030006136979213691490339556242949557747376659652823877533284660541816894464707131460900736013183454134158611705227196943437765896199685012894532034090817411611479253488228703034270284504156616435720535389857925451907496429989924712343443168500319893756010079760389192969455702586420694913303606229057793030050704396832128783785695570483859750835024263176621873915385144200707099828043014231138125146614866746411803802061371243524489652027551456364984327786733475212045207648011977712972254227248108640748012236191559020550951612559036361602966632308913831398497236982760811936269221016540114386316701779729294924561759856017808563417795868221430754275658633644791925971351957632977773623023928143995508796869332395669429284744130378927303386893857386033194031131236315115099147947956206282280653524824006284892424474063022235232495731550549164789182586214878592395694246622721547505981248731319074293292764865755786994165089276062765074163323690369110799722419552859107150662524813739519767887513004537111661745726358915096255165588269638752195634967252189785608990642265428514114467927651138178109914545145129416059734850311166280664314687589118959713724696252148167726674866493620436958864454971618944430924211543559587024668096774915351437622590972321732483501297592089649775517920734055456787665539668663606592191843296087352280648614684400981558207228722200817063186205910008548814764789641124225181468072204218082954404255961958218239258907548684523684584147418402982176150406794163883119368247726498984910471162464167277116171282033576380562780762180403009283131384163587739613330939146849421719468353819729648195644026431191539157627954010677619549333746055736916588244546338198143042011677054171657278591522410367882577039323855673150060154661557142192866102374330100072350289444408135966170152596999744498895124971946049975529810105011719082379145878824121092621648285204241047333256521574295586248501083851083854663008505503681591687903618561712770446507357074604453846367985530704152503125318309981954940960486925571954413489183217338504848635429492008833533817071365338706691995109844450928207435373847142264672626154555006461772162745271855744482411496687596322375157446245861971094430128868570934087945826340155724419603078018990089392341259865385760831010457240998579986192982614302091932856580005752544179499256823917211366226207629479118646519045674953587094821705869012142266509668997118813225302209222735808322191848177417247357992733798609486463203098008854415268466361453255735989678010975796117077394897015569419667770344964177667524485725027083093729204366686677877509884235973859939037154693764140954667424896962350977090001822271375108842942102035355264046480808478086456343432009872840775717414941647451612641111902779789829142877436146746202219525228042559780249453784969394020188912513277906841293558825074571453907278784855146212360626406420247256375474570423525264274964198378181582458886315288087791659252041868952784037293593896203677703213001492929603467236931214760808651963254292598303865661998307124129878298998605534025610583226638954956128410422149795671837948366877014395320910626877990308849526799256547499835871652988207775095557214288463043883350295917182158300584258688926563992171805227682974083699771013910395084110673195226371833338065646686799483948527583754608160537785914064301524925265112952985811697328637770105568618499756469827953289761982673706597790126233302586740106086995939949020768930408130283288815290720820035306530102017597086584538381327265869626740903111810970080533947457423924602832476289001792615087451728096838063407639608866372025522594190193305602194689189688758977845284672715996654444540507111991409980843367322362754027754056295713000476132962852111552839699946286017764950218395329827910983048327856260944760484176982271365393263105201983002156857623505515529648480540766250140634246427052782173332412981809261230424316489246593050982862122531057117666936488611005339279901053223263376709493857344153473093130168080887052289490314334506008393779381300775468831351972316477723998194784650499212860535535091981622120560747423449743476482646732256685496895783767788732844471987453989520421119311921756601494455317813063903430215268529725786193539299573040331605366152699969084259650567543758605198152483760985152509675005037338154673084090887025359180926394087442030157805812108925701907113708855162161155036047287213575717183861416579995949505423931826313968701486608854900675707756348594277806012211347025722387808315113133756254079799021758701685492707360428715837737669350661457986615681105612955267488599182693136523251085494137653121119931063021306830062016927482236495851501471077627515287376365823709523492681637086618297898183284691721010155304087215919415004716343717716616079703422620788860829370200256517581466651375242210828901354810025398347321496227075149317815919311441495639007712316004096154033495154480248682714862631355742144112185316620570246078670928341053976996615992358543845359619184004202664164519973492870709637766192712935196076365190198764525093677061638778032583530808673781669017922958663453031756966759380344142020799914149643529330620220867950531776153943809138633516263183805825355095595811573232918426525341281743350464027765257436676949552570927338096390971515820985820508063045396961905851780608935640554781354736183062516962473444674957214181390492714357008491325007287965009756203707824211712615061826074610523601388054468393293354776409314222580798891893732456486124282708231110148284067305845434017710640093783083645898164498164463284221635987213548293164207799481474974994471396995098264253863542711907226640851824068604580082453233013084400698428946115693134738396073059146350075602233406102508561275836376024907746969307990369086725703057113149008345053265166736240033520976224090942923282823088870674129703247748279235584612172652142484394877862115753086626874534781220708283932194477066230152743217935950896256940842204539490669840350890118943246450450199384865936440014465465603512379558502652838748167105420589745616873844294149674067988373571319777827643947910365654582326786033168661868007600798343654634082221223052399849900093099168255046099538451596070292101853290709833051997183892912246954271345758839492139849937554188044896737266156685871280693713799773126450817098477414395627227180799028092305861087680236964564703454413682963713953443972413808609960986996199269796930730136072271517841156376469005717682096832765676558484365649319995446140253764464020509205643267118688723297346734244534235837296646575588515229541914777009992176448718750554861289702772780133568394455643673861555193488440171990791779152241364849802849446667993367245244397584978763849673922761840711167177472590895714049669097434626003107838482433254161411348670093634781594597511599455250779564549275106206840672602710482705154624198254705241805090597497267526252064905609318699758910771303158954875316111843853340690346932456210221431886914741910839632335794451162426699279335541124339236914608698069001686093050816530581862393308924735706672871487609856610750653110943792490670095893447000872862594448485691896393853874952501177030111790042179624892678880477595680389779041079436642362697079965737079120704463825678794595070484133440777650880378107039748642229484189659148805634269946266616119718742098418074110602820214438644061272372778716482992227654306140937853822615943508464387679931016522549969724235757319280139506497463274353671079544467249685588993017960435679458458409010824335938962186676593565060008819126778449182480884891143388710869341948789976357189090212062307180286167313702507455951206074183463197540514336182258683054465747054230317816205793693850820504974945462499097776814838960883534494538531949955809033047304255561170787071312587656856515720147320769708279161568244541264233301937168323720699215680137474274588701438130527841414674524377120917122148098630059250149316908632044688413928758528420628867225976036689722995410489171212699336871826885846215906184470472070391769687970625899549929993188262603027418961130857669400050253810090289303859103249672371859267181863278978264606347354388563891910304768204737925788827440482272270585179697862069509313811402171788207636303163533670972892175074245718945852618918774953421480212807959455295581771343012777092443889082895026963049776648587850039135285112614671238904743918813342955357562598677898336354149606295807570187969626552121429541825836755484261583144298531626051975457470107724849617822162301764520608499692679952932427018101925479647949120854901093132943203762169703089924517645598342233540551741778414779329346360828332603364115125234508842036051279716500111870715603633067824302017962629353834444260912830583160994869583363612046828391994564724174886828874393857911690838317195541124407214694859875940055723092181187161291334661287087287752666231341455506165598116231687224918285517766870661139814151727131810368867957087403338037869424728636154553233548666012615273800268603861892974232424067515275283627312691987613778362673341062992325460608585260988033342002808147846792317218879368256254991072351055111611436249305840712371360924853218063965704157336904969592657433976268760604083174519868420665724225276490897021189588135832407741197765561241942421021159435726159415404947955693631050892527570940573589387799803229964166311386222079426590449882115836797718040480738187419366186961569697898721234550770819615653521159849039270009865475263013709609700098559608729968994225603013491413234311668395471379681995149525141421995964050011553477209525748179498720294110421855148513539635048361675381301288977299097923720931642063710067235976984709472363227676684791858618781172551646810526731633400222451368265193675872330963515118055114478974055045962457670341459950887098397860097631163109626165824828989104986674027717850347819050346118727225088803234876785458146380235888286165506116017515849031332892415147993663393150471463943353587750198112059113124037192435652271945623086011298706233757871823404983087195467299533379590566316865287627918263180697520774879084529979095537279469599666094478294850396738773758725249540351893736444170729318629989612637032060980436541378630766495968883899228771450341612254706590323718290484513685204780050985348894838389384420950097463108771536026586296929245528631957282080825634861522746745060645532243766238743524555670399255078145027722924084040093385918747774947077541417972898000245255667863286578701650841499886626628055372900300561113672816366004659566164863453468764564040670607712610351406403379955357553347630225040076774483555275261563380154237095508997611365070251783145784309922447431243609142888739010320128534631978921111445631088308323403240405308911596532683284580717489767699114659838153733700679496753276566321568302725891373345216090455641242363572756411144307352853422043018725464437525241900602261232687109761104354283707076177640148058260625945628453004247216564266702651458485502567514546390417301707515158578111219629234225102839357519961842288931246878081133099933570761185547139398937852740581073403096283868380441742263632567234604530591397661117125327866521763278308348795090993300678259129602041099198153144362710253826698364496505027523657557019022392614100699015169242606622613169661286245418892353653736762611356548799254767884010851263389564714713513721877231893207800101671317192717022706965405922093863341184414873942198440859865120574971606654343439707884298438003727928372690956557590587744961547770639862369668050854424827512336006973545337952449055290696667012361562928076158131060679783212888505728337045194742600216425358588575143548360401969449496936575454500440840085941317250977821871704393569127998624920793106703630481602889457303939208816969391323222708082842758127563719115270185180366806421417869747426342676290174922129540962193847555495721830138463729864571525706804420327698761965125093451935977332758155675261341142143992635579824469055381759132382389884034788800727922171486862452138025556583461721928876244227488076495185691842052717932111545079670094689713050659040398348491391875954639624101624666500071553725240112438588486877489008429721929494767660064606560026004319867727061931276297699551335992850987928356576477614351874635049998819847954149392381856055332856230994025486204185445228672895888178003328455378689581928875988004511611532807177736699358927372857794953857518368417831081576846328359127070878039278110877060212175539481562761120165834826061598356549218120872283460487496988049493549396218802503111404031854969556384741598669332001200094640981230332210452852775991600005209829135642475402703817512255877285303624136463679146022440574933426879579160739382473767733997648694980327295296004630776630937144873320356458928669808037036122261804106115245629541215231427027635465116539360517573462461756031665072191804475022847427519472194392655418836788417137201049054336048422842055565532198812501885303419424234739387456568944042623697934441015276974193884318879266504920966813762613033251707604102761229148522411557168631250629858878472841602251385143305917664077126967036570272738757599191907649365339340268838762039821891016658567772710511637314950198361466793746724528744479757718377654080887133445857605035960859547554910247499695031382435162262849545040820628277557896633089345172489516530753658421344063354316932258521404913927676119314941227906324538559644410686630805006636081714632043652743540735836345452707711109871238573540821225732080526848553983512171323728360798840324115025477093862088235899351158681842331935677580154704729659789410639175378375034391612992366445988818010263629834459792234021250104925014896775396681128960566185732418889259543466865514529616319056261638105191082991524582249617545750488725608934437664175360575697598755271456995998779318540500616775698142803660152957593044439900113067350315061773726555820149088476786441866302674668903029851776493570987823312240672845748443868618389336493189254045464926914427737886734510732651762532722392697030670725634636281469960732145971897144005798711092481727133132118335850039268182388172765415772499451735705821924711540029267823863379857557281560800026537125875336650577169807130807947991704618993720603126536569177293285444312930101147557298170964839082131962783012656176746225267350904719187868204699673839879370128255021827274718347339103390283787978371354119792602854142366427994569731122780137871379515240007455708465842441887222189149979565596878809555461827977329404127179172035260526340585465865971253724893477420294162467068425924325581148247223954467481102246322976974112792711935143489578466682475754501472302829841012317800630827213098326276119631859565637699812181959308037874527021156790877912795776435168264713316774451463211599543239681050522166251525040703107433097603755191144855378806842260207927859020657605021604561501735352006496659029760138701905219517093849833268189152650170457522716326480303762578030517144180949852075755234846001420801437778094829474573739506035980175257504942445343648267347821534313202458145290849773721055001532451119140692182716443838926104951693036195167958544636801507549644381854660773060869288627916887449086474582979913184753064919767715977896348123184279263299794154008300172509627305500078159813307480205980163448276322209591744699373673933789369642221206608186978132866427972736352639596742227116479313228292488036753558110752796705075454059704015996050403727958055436652476126962652648201440823723307632055621921364858752690506093582351568214804890389637374138408097277397970003563329952598775239861560353804561357305073868512381278627386771047666374897406869978531156131825314927638795247294904525986160192600820539761722810856197741412511041723246502595307623662307248058920727958313098682931461137731743785102393664314087753749091203213123305753804311772871934304737277583933786487603922462608525798452885594236188487526518648899061266327129597330080903819024820874750930335097668193288522094608732213511977299756023377145183312894277100935636175916790431876209740613733624219918428120990574840372576664054749505410876904230502511434496420940000296083033405097803067107619019511783698815021334128707788815567624564529350613106171696938151200372059332666739362773018072182493430759303234768517262363619266723602153733780954358319236929608120084049895889962364013598616847796301259891258052190626674795875144443745609869730168296119294451548366225467384514052810020774399932731068189338263902131561901680060809755596676191123290941640321337743709178964547456294540926446292079303044208920119048070174536336658471457161664097776352093409343201108481827424663545959757498418411913181858383305895273135937402283766179382062235747724093782880023715084648045771457915603409751810418273168292547646370898385775714745559898880617210157402630084533333049693727909991514301767186942399027975356115654439594934318692006399681559331047823368330515442466171377977597352804899038288813191546807476289704167582370307126189154070201673870159730216561155768189548310131102934341806980514344983616842344340215218548187782071120170587317382876032208402250139173659399330332992609273658469276713307658205668544623327240602308331139604963761056167669150196995200720120025089583203227600185147645403371834017336926308499070107406207438580290510283372346935443251907653353812178812410700625709374563353343629638805817387657145530804811620335202516675412607743952720995787077039675508855062801715524636189948759741901664388731979539008452497849160597837125757706190776958718634904403899668898225349013905183675231584696727292335988433892395889327768010704832188310180840735590027899606352297846612158367199783081116586099829855257253499066957852526344809073855856880711080416571587861636086792746825447594703028327531345681920003785403125016431685987622952667148474111851133185728706946251107424528182391961841622134042353075842573912517731493931661136548950717461639923109982021490294916232389948042287637820741470232419129442130153484676911999833852869646329402260586181718204430743224965965022545424397536114884559833991302135636987501736765098347500750707895951471537776150814098463264024220431923772936298582789925800118407623871862770644450584595970254129542851765317366142398404002229652693130569304861169014007857983470978798809436718400385671416601690180110519747498845871658050034956415672216099101168842119026146328269443127768917347901564598426758362376629236067767970561412561283514871146636560092949819475093894875567460218307046435594243692633367610102621732727241932507105042991028365866801298948389660152735403533523199602704777863966248836881141941775326783866005083823124951831130359464689838084203644874398580164802337080148581263391292154540677864060866792198294727909969717195169186103680184426852822546412061129842088148219330795137500362982227833153625914001368282244748791583952806876669582349546603070306252408568479927282941288404563937812801819715185929971386469986401642792380437672386385358323572667473232001139080497049597452682671453833014565236064920004747151969852272290635061544776851799546484703717949764926062206092316316333561125308318754350174163676819033388144466693702077306612462966794496776523446709969682612531013939698262457644825371640251524235217605621433267387916449021010445432244176804715866232766202015592846408327908916749042104291273660015762975783806560435616832410105465277248034888830813398196306670999716321748944791732498139374649822884069402785402040876551093369802589342641045866929047919485812059282061117636943531987959159050174617773624723094096960745610907230467425009055996607354457113027118869224780745762855339060236218341823454444680623738931113023835240080071912218683525791436711010005903007392158927932130853087938898264641588065985288163140435297946705662713011367168309765517525098543287980848834018297818160222806156862241158950621334097997305408086630711068410694379174556627351695993012162167499432361780849238479183749661692370383916757452837238398612526050287462044045645566645649872010353389226624208244619287666674768436108362348214125032951964823137522298468415172862353846918552880033833172479067834604850701586621768661310630282850779991523103527382211906547108077928600586070012729477912480189831537901790259986686595901818136009628123211151174463974316240612603086372721807719497537142249839462079486370977487165154982130632185551472738236659736719930688057782207146463030152716851069148433304960269688220274562645180418225366476610243397834946585858389989467794406850332025605851657101939690125171400651441554792389652385750049539603520286936689546175885126160074585671863545135674006008578155125872010849040159615225079899747570320969608829468426842551928844191382485113896761264680491604071689531752055654927135833871470119202643931743677501386824450962731957815221685081129023125332348100719713087961122097638099856089266868274417199841412545204141924790317829282308243295915904572567644182844418986540001177946849807919915438102461030156104700837670158035415197957989929906707481382942935902381311829172519370768334034529654131565162653807665638650395461151095408652086576005590451583160305332262852502149588077141041975546735489979367694733243332602851897984955152134200809155553889389997573231806133981279355873529270458716274393086619596052865430538096480152524495168883247662757885716700125113129110917665236962041648592773994377622222487598457273370356870746834606024831884439059801190264425490797189031910932708603691822484905846325864910800513664549948473051172307736160330592409367570465625077343746626645117591968863944787588669657001863293935905700587774206300444748733040102026568585432842226823704200150048609761051104539593243454001818471889390255389974824275926557545936502069639313282990207437624235569870891701008932482439895142344772867160480665521589915202721536543594015214566986685727958349630054558317612250106982227258722878353664384410155642400509962319951606261645100360090575482198339108468704026650797666825391030548470107557803075457823980941894485789025119274801480016420477724837304675543337961700003459632903669803163178220576463174061192660124979305152653257018968721508906515522971532373010581114738541222396377550999393199340012073695207929666125599096358441027811107158577743036263813355541592411512275954441279123095355126726706782981122915031593390832445259513645727105938071515976129919018704455309815875901305302365992334940754564678157554764739964657582756390572314750172231946355100440459309890917375730347162160419920110064087245572847004312682837408728100946933000305500572920257193808154882899616581013738336007876889796362319611796283761905935671398068664568426380811544626329564752981995057880745179563645769270850495466906123344620059127068732570352503978099571511514518373097245483576192305308982316492782809457032929373581442959398527811354710343614340798818979998917791764331777756019644429377896810979436649561742384240748658128057081562729648721756007806823857223693847833761642274705757449409515455908524543268216540505555157990389204592514353673914284995215553957544122598581251494562066805268188503845957579435014912880352098795177346966750976889466835060236946247086841276714626757688163361356259469699886641243214980970804266694759058989486799721929800623299292500123477200331274734620352944669020102628340270216648171327153353882853460427168237693669319546380469584739841179235617916100500466827538761700011348459397918428969967323301725769635369996100176918623595736797339980537453550242051539872087377780473612513252161324717619642398142384464426447132013839359129210826377062266919145731811860375182981423405773932330936553721992579848950274889049591450100415513335196166116414213142759061596689517383446440850984022369417024508342625917377590751261530727805758032222038604677879628929418268175869771222317089479370727459464346275684897912809892193894133257121727332720672109740886550367215270420474745873940581826513304098429535390054367512864683970046746717974767813221642446770240011199410642045289559623517270937248850929009119567668251646881860218855948471303251504618034258273512206831736724455361192447317335151992213189692766562972905710611817489268360744635132421375533203427003511809943052228353160352546502386891002402735738647383710344484925948622273587831421126456127376478634184943473664107377229268152245902236919235090477204598027737617141377303513629759616493845911835029526732538143999362458623775453590468249816291401526505601485980116986462521636039363278931549078531680443628213924610880382146718930928665486578118579638186745465422965616732528672248006605569685148058495303867934556937499667838527734555773430704666616752211506902800015497779173220008752626758282485773056613586468571757886740655294334529787702571487286238771315381692516212497881561632186496821586911271909365865042018693684870093025589676751534904607893333358958421581086472668611166270011083039002470383300876671673206267923714097606604392253882516420030159154794456757553608213977911410153777781278034367708112739894071647865763360850723484861019250429790242976110653170158764691564731636816173331642970153315125268407668167014557232478764733649388043760077161715318837295360410803458955484905385270043604326004988716973605600336713833213497012261303709223251714320741865001316332937150613359805170993098160037636453676507691302006240757211811352330397813153873415329465491499648864447965529202392142309893903322294776797027502548820902404052140053424234691302233656603042122660796341426285387749067473215096929219222932188531693795108558114509776792245069837586474103344493298089019848749174018056648899043866082637585879136256950638654302094029965076635288916031551574532478289466970409306258177940228873112997938386618308805256674670285061521886751531677427859435406619705987825965403454997131893032131257135268401129242571009732398489670344943619321198333050682447770606324012495957431460587595650648926934030443386599441941055720960398690212848284830080637195102992963503399374092053019951935259910956908282165693691346282443615031978120312237490391214012833928943753521497276092698089693372527499073750820077172101932320418867260584963412774320849281496725806311458717679924407506946231513557401444541099772839272110902763230348384351650598814140252352311127903391467710799144971314549109082469948968543978602319237206375153076187430083913018534239591025892632173963120119937817832098430468828747974517000098884387864605592232835886598149673362822096902316656050981890715697125885480842935580965322000234954739051922168761265563716773336862843607837483179411270810544573853579962493854342552215107618396728137818455718143520574037841670900229920911030878829334232783676610744004973729366232936778134338023006803168768199660660718034215980061370240290615830941206486637136110558705931367993169803887991747059565747794038685697058897426450618242770904906950837985868538693682231918055224008711196544205194323181618140870811265466346154450353280435645598766514410323579774776557469052535526199718078946339570526070967883210773497482840934313479830779929224349166089340970283863345830138928736588246345288206207420372788672610724166472648505261532867311513525464778475762887293097574629878700996854942501601255160240809332599738969922594310331999740328123602098327225727272170134879593226630168677093949517664258034658061797989054374366398580825089336666062258159347738682546287459319567068944895967423278227939277184210070211162212428602888793285924073391334238415071423803334022072090023084736214360458634579976544357280559041363461768291830440838940348112776801248277045136543565315349253235914146914910026773464091589196554006924263776759156761224320776918671252148556069325418804072893914642030668260133257335904332809764496392112357976715743804438117383153781217167241289505048509095696252064102568707861065738524400548817030206355181868701452120646780201505067068981306471327731391524457992113251037116913037161742650236678793827699714923052830645458811731417138090451017561723939762472134964781468208428188800068216741413734511378214919304441644318362164366754952379256961167797614607560076797801928058322846108576021709998122365258000297239567387757724122348360356749804479428536737674562556719946048868378559976399860761924809999054541409233293413962500489626753453689630877899340679552985457210992005028367529752066906869206022726083330356507108665187202909509240391876070263297336687755873156302217499017486106874496348704006025164621053923535958154748181290356618361425888587492062358768770251959959209131794211914402327765808189598631194732474208722622256563636030777279775441026136408988205019294003780692609633588993485939867891396140699924825923060477919845543842593839613016170200023167497508100085093666707117367026239097313483728339844639415817676451220040424098871545502608325034255285215889966200813633284907525767677831296580343309738418441804835697779315517118459213021344719087328618622986367501299764346735245056194068407113928563803646748311433189010293383013305715914897657424684716623558706837979964104581568709514484432256656128831892048805278737893698712168236040903728489532539568086469595232393137487109160546177557227395417588786165759169520227056048079306515403359432439569738303246717074825625310657914564604439993461414050770873128121000620695452644824990028211078138457610859318259620984476196159277424011101786754241150272177536069848197873075260850359777330294695211721110613576477943887715929262208124702247564939962147330322637298875039537432362204828881905084331829352815320003837687969545567862042117733458056806926483390917988497704393824453404896901576827308041618459350899226901650733739453223583452213205047449834693680630359565519784959969848984928749919581046000097241493735280107241613944036133457352860668782889169468485129718213518626398972735999064972595178981260969643555146993477901780284065801922349317305117621878586120293304259672499252948196654460501845700078303743784700977029111725439510660271269269147378580933630039422389049585793899893013809089949233694785243842616760745564661767452650269063721465117496478410715398350648858960108626272823702352421702905372890994949464344785771527979272366856472773390020627554637096153393254653227211362556209336082976275187781319653413773594362638524109860453200405731390051344755255668889588072381666122708215352250926919169444275033140503751839550877435351337120341031314826966140969662639603308354547402989301198774769163474467882762708486379336686268517574919185352557953359532758232377170444113362303659232993930384423394542923952710457197240851090551284952320732741347157184470190658807754942856467586233058018424458687033814436654380368703417812505192394431266641823814038910022051894317016483626926923172522274148258801114683220807321062107090363879475249153576082038914318839578720522334117861591869396613579793444831912274599203770139899704245845780467249775603627153144883123538135321594202969355143945886643401982257543958359537725658909562659692361220596756853070679026770326238639657850274136018815813932091993642422109387316496832987999696692433271667071363049850000782882990012625396479308579611420454214797949596234482281371849657281754414083344333338809163735272397955566009910658948239384196842618613758117066793410823403268069049921292431234912882262500116599092659985088758138768229144669524298517139078677228098139221730580927543622636963222278084976816160760071596317795217129009007615861115379990190860708480676559518940939784940853136360035846936548744172870500852486659244527247711592426429465217623720224145584890970498354045208623793134860454678208730521747940480588340941558983721538494593710327223330374220517514860017452818319235270231535480762607730631011077324292748789654389192210562997908249936258825600174495074202091184632558202530212555409812033686136846937866579060800881386694354969062298726608184455173148442741491483467263410900874294228727606819413438482448428150837774640936316659321784385941821105643990911744986199886162901148140238520907149901188502680894602990690580593478397618187032485387091309229588173039498374566488078432957314683608178375157362151715934113596079749431899744000638784058509615383844955656073316022842842141197230327769805608213457549968650330170418853597898283146363437633353126238406365275983001806689565449213815604053731079596272634239366814363842297900018225492373212918139742912456762279348627520471768985234154180572506987150053847201177824900462583165586990822517668451870678970893134696138595263065401901155003852736216836398586230875409556998967627759872538262901113967441154773574506512576416494283196737472837932483579998210595276533724948905318720838719758579050815417132045515662492789159178004012274481607395753023214186194306626914231694192092664696821505885183697961395230418071224688005186956063837293054518936087359464107851519838004770847072284080416662744034678022614662525010587833412537876064585547071009493911027872176290208172717309094309927544372447174737183078924096712768684368111412127480574629746228703551587493976124469408363234318677143108636175088866117737742004644997284673071745370257782049175621564724817768022908566580075305045451271384513487238599570861654479549947928063746184083657620429917360513500039990209071305885106679652872192808074903089708958945691099694323716466678587476296839706212782965442434909654818539280220231776903421749566677364912113824252627131137777114440232077858648554850833580549139830442897464146448975198211388814346587008466858274941382606123933929599504754307394348054159017517947240449519206483360204736572300408100460094972246009834237761248021485857530058567714117198681310696796581041313408714884022246919506652052623454970856913154056720113480245927738398116605395403738807095358024025807769200950097020554955724039751521581047832063690611877279670779206320056750562020406601294847218719037406544908001755568449722713242288621549877040254122156647114271551318361405198041830232036047914273381415286792912510585241439076360541421792803218991014368562428130649038346784924072486332267771274268309329662100745541819175007568216755007244098526643593197863671535290979770186695024673585591802950972418655339859180900654362561413540676109377469839222794175353576236702399248614103006184400502283430528163660732206545115883731953937952051020857211815649383330215316195271160613896014999179585635384381292141784858679851623208066659926127262027962206424443373487219024693867321331584077036773572854875856604260606308977795575590079738594390085472600263693656096784040838976897412443224862557454226966539771626061386961002100914572612585264994577476587341112376648226470999124967799932630838136133275370179382536263835278011803164686768847375822932465834470783805588562975038705700349595450671422656676841673981255082978627996766458449808067891364495004075455734602227280399785222250708913791786082966502810925755938680678869770320093803998814103614625886877850415157716058788501609457190679781471439021612182243448567086920763623231246698275078955084126426189878955974830174498847543775588876639709226320190285632455299554177124477566748815837528607465022932381982825079074509258483059112289241622730304926515655400487397181830373554072343076473531709389493581362117985430021581534437118971613954052141999671638436627899654719259808450894795205035506104084281546638290398241685364388931561250833861758118833640024611095857520491817588825901864452919001436362974531755169465330262163252600985532537095482788174100404253375340168305939844550695239742020327660891032440612739112297785010711535174246869365384083049940463996106282990652885857747078467243246627353882862274286873346395396098088928015367461140355439802114888892947257449433829176253031106366633849086317651552972549339237795623587125838233157219135228059038748756018682347069406953194238964096091571820338224535804470653443736148422490184799248459690830181677538144305244006200165037378186604914190318094877001691991914248194668837640681464378765629969283037394927492586404482920783181684781398082767865678931558472902296097768032050083181016740993164405521748650095725216040436076262197600216769878161745178302087204208446051842234052503848515779300282688744275450936820984611118622099594386369965137994591718757923672372426818393150886078912589383331519577212838912689701954303456785125853975911861836795034747235869455867145798762488833536927660826745436153829993830300997534943639337278517008160106854897358625162485097416519401810347398862504846863191692514719363716556962720886844275184583781611899047808474887918861414845801579616240187211947134338655340104105570602097983037464201491878762074612871109490260847985513525078695671913840986524264385532700044040738904831843374095072213536046939193673529092957741658368528716556064633896667844294261186397194844438334570539147237829168818981656126474042292499542598057313895510380188394214393389840460713432333448161173377391333079489765536494353058777746215962083459272827414951881435875883598121157600683679212637421624315180360248540026711797036354578957748303799886304585120132583415422838659836614477756413294480751251350881382552031631224992648245935416451279466167233597631545935091620169452678646864482904195519805137716888488946696901719600714183994986624554691905303446327763551413140376590699894436377435489300673201337790391509490119643920073074800431893010126329012100120496525936588700279979420130866821962233758458207724514306648367483308378098123057767814957711221363709269900974764880857264063309980852924386416253741722246983546184143390422014849984148350061090476143920344856980761345786608357266826897319424221859894160738326903740722709911061835135574614429703936493184411326833422950798967049895472326277543768667346217337442936463537095429971419453015538870663355768240527134714508326493578391152233957308036110461300378838533390632472642550287673360600396221943391797957001950550281462025820045599757759280468861576120715054616056677198473950094756120510836564343925094811668120858934036015759442020126943667530961988309135175312151079503141266306783916807095278191258543664309552798246959938036701261810981443633370939425462292835981636862004054968165033459835617233801531372741598120567782885264880176420003893134919274451574805881750528707261101529066012740595006314500500508206223229026562406933039464631329302308300279787719998723730773170228523784928948344735195176292969738087131209150201106224671297786443558314790374414332924360044850825569004829950489100429539002038742226595231607099222659545708798771253770189256798060480523106855856352922421133200076419429451415566533725188700612615752683251444636879729062285413241842975215650543034032599815278066311985416511823071981373644774797601862869001699506109903494214384938559071809340545466028579155969542588346637823129020885314910714842425701270288411243416515115723603618717531736233209699324755831711154446612742979875151840364462606932718334245420837787194665449071781891517353458401288459259558464123792212972067432255700382233217952484723003058230219800259047030750186592135784597670444626217766537821461430509544671455269694686832372144282629135733571464658390076209894094627092603533087649573354905655225080564870597520613660229332613026218604436883499102341971833647586115887382787939557945280748944793158782818919218064337606133848576200378295659940627712814437250538906029471544793305372817501953792675541166492723961836058830225645089724320268109849393779307968232298313012892886857794557702267308172295298744579816159345097671010003350885193801638124409429575978951632016402040575901942886978423306850622104448187544756091634337709922738091161977958066708857238134874907589777771649614070055710869048581194021159888840535589381324134672829115752429986689420531981778652464618535294408077513116803774686289551583647390676852191551203669515719711929817483607526947345666350353407137816824885105844146771075738915085804896311990975733288944128951299008792649816887091930831305456129444721459417733962376657293449488910772495028088222449273067272888372280057239462159577953587050041604646267999842276107634525691550295063464330412512458867239859666040434197382225857340533930370735467732808113974408896837430384135575726827389303834786887307014517555185828988182475030601915357059112232970670733720268931369094651936589750226089644225226346990796154115681529363400277929479422963674022641488827963340464435971147559659719828111648981820111844041654469138254857265110853227822581926933754066003716423629112677680519081218545078377602647970668777683581374346801755233647393988674031006287509973410960287323453352915798749516807338874940531850292627231599272767031475855328399164570392808551917596559663936015086663059026257122953515692006339565204674610815971938770578798605434231431413218781835172260350526943770018651108851237946827511919183097481263857308569549408140603656532990288768172048996725981430619207626197094007554905877631886174686333242918514851490499803661500083130823299232728376933790932205937277644643618824158919831337286232382238414247515635077972812691725415586545128424426456545160340664979388062523093300315245071292963217509818475915850217996398216557144222310638459760516211903142260716134045720043497243326351394580110844717271579631103053736989073874908163164756342018219605878729107269115480191261000630849038138387239370759865233294619107952030754243068698026429121645488798280120728060187395360603984691514800758401423079507940674145467509020902138695611638919399785702865481111315028890612381826010344894306445489655691741763827900189067215144656423809513764179896903325471659561702224254260038694568846375720303086488449504550723634912701013504346055660802642988602777280956989692592106541006386801193175148251769538402368520466757357271033999322745452638390109170719048632401600608922516753926712149510781572885846065781518171527481152246390649800499129306364326656517863464480114370787080922123811725666125255535689297285329410412796523401163926838544502497350476187310557847133294844119984229037138748156762854032961528065560158343422470715191997085990206704141698647132686301614659793556584942622058996960751420753360612597639760808966668434293205847689125496683878529021493284638539068092596655584233219557495590378136152466326966974551854906295843487852840612786629744740351141603257384403923802959636320382871923290170124546920199504338443977272695323844552470626798744099678089571041922374185797744742384715308646546562976861612140348282816630252472128656950788465257139969766302182274648647225019806735279656348405210748260978424455123800524499564793996025950926541073071110349564845702340116561069172527997207555144583771024957107028629224610116717145487492482906503001666786363484769791664639603391612735713648953932113901498222639701626219887212592880946846131304049740462561866183863096561624792302381537024090621981436839192581360113668307671493976660428100625695262908329014832997273462096018062172514152252933586517021821674849054485925960051378829430588366336007608896741089732586716305345143927066004624008600686142822049564763656080293708717163869720269622678335243636841897841546425795015740043048315511416517852089004171367006714356563384832699773699886415398661766493897958679073943193328154764747370643183340805271190797213989093838555080905948162524531282522566972253509404014457124804954707470450959831052868738571422363005059780974016448456397453926344842378874144782538345909357791828582537780342639042051779752940410392484645046958912506371386732934916000448262388977618030237520921119692779711470197039421211323745689234861341084023321158450411347836784729177569164899709236403742074066581225107128192521003860642394050280114211713065581386517702797929158587533855335508917774551290489085728687374840566256403794411853100151984785005849388751582660973020180734569416534615987781387718584170311874938663536973635165608917170965175422562122980236149457116388165426270065169492687845236061611524689471477969667228831864534953865030228498471887897203369459231737098607142362587926885827832949420322663179026907908534726196208025139950722090627457349611207675217316124867285264636829273391891632342277599024555503704499832659226926323015458169569723354434766578336395033047143282039564926739760892010469582088822010392530488223937853962624680227548861785892458786040271154452775494364080588163152242700622925032398124032572006276161762588077895824938496464669724787493644535600055755555304202111361012026255589283329326923307883773560872190336882118802002440207592416376315885349161918567790435173458681194095379527325243002210547638139588153604245080577631997735184808514918910220974089888630967709547809275993293530321188018470650347906576512511182454958072047062687362451589460438230825573484151840623681336374731558944649598844710212881038579341014545687249114383890433963615721997920826942150102474971080662544334155592095636688441358625454591839078110268126776337449249076598522900990173091786697370798804361436097224036779850748807565541991745111784877183496219623024547033325805188631674674950076158174277716237197307212334065990562937738151046353608726413656010460609430383641775659545098676086873520696573576233467515864163583553864019773647727524901904093503814682650281169444887675016429729713148431442845225774888996920602636553276225439020644591159492732289271538641853599679091900894235630713773534707294836778279434394668680123951868679457438613939731870863832782527598352075641149335470226393791915209192868677710816146659062252294197884145700544935768847398641937671014986120391444780311193123813697786735380010309820646354037929664880187810712610021943218504124556100331677657370891405090277745859515666049240016891786487027102932850192477037024196806607001318468143247636036070893373107145593512249806199413970112659954596282968937767653558485413966252797611711758134313696641522285624479632946974483158334672238261281518623681195415640452707479718990267748231635994729287697124387821830430650466094997352172714599023964757024409253523913163410768661563515312732019450564047508824923582398776682559319660886496591527408250198174724113420361687417907365853051390322050349517237152119114053441397635098974398810859723389220856211240014776319736924993604299884433842955002008728522095521301816125792371847791895758832803480464323314330495652920501450608186895374187652787386663747349815244403939637693958062799489655498970933174828776805498393013933498366005690939325444859269309963239938393768327823343127537897269228773363108637682000261769361721564553309248009450207739016241255288163550610459021599817931431542469716131161143455116032733645498659472832663281045328740449235889336098885989926637088230703807723827404983250967454927102105526166022597280319416593853964249652325864431414039024496219050253629603724069579202397283140077098198001005504987390554967944589766949141155242541876387740905062415017238922689265370414411417525924461543755974856968222582524659149387552400775667236897430129688644516101517017247138385369387835108498842515342985048631568145997205870423122972533313896813886130127328614319884007034435492615950093354291284564711950507960146473651644882867116818826509241124214877687298619357394664604790223693321158705325006511741582711360326810805981029014458545165203943326633931974222819079919892331823326621870725187151225695086983845221458565472967550650946241281668051492227658431613259951050093859237891091842309345262744487741903516205353520867186453275346919584016782226105817438459392896426396287532976134751392102032644831454163865509127031622045497811251038884683049765093504595917231327134288725382762541738589474326739891110284432232131676329573201344869065473469078342889189235752442194538957308598923905006898589294042788171020135877607849610634673320138804228273881089170458498883204984110160806293598445952730401569157716627237421065265260623170228235406101104935903119775243184572609440765713237163210041788532606420805267765248182371110673720165084800823775955871456385373565292742841496765234768276757645634764200481720350779339360738903460109137023207250128806802182194413981550682921333943639126742845152844488517139125767516146614210072279984075494909261685526388380804152064459392634218059530115689075379153838852741879373398297736850598974484443589988322147643065910838044402212512761586381512854050236025704385287126806207664714777698598794083456594240176502908637815492762340108779093811580659479979402779732981761508007132155350506258355089109697047558259916230822827536578184628750764640716769231717238797545089960391435178686703641870468917520352096566847200219217978134726473238603397686478947991577781412995812667924750104229823239829550158502243292759793219565150615688798581746760810190827807466294945820183040514163261553731705396448659480751471461468905899895287083638331907707181328214258021091064031878838044875080131367842887803864248211949830329636740577383488978282792532072247462182967858270851451792994376894576463919277298952896830150234075951680207409912908601203503816004564177772498413192305877160002856204528991622197524580846808607379322546215741134718425185118423953412857926674149632291494193070313879191036266467481983209388339101617067463342492648919054656487973513915380831369573966489415811397223704263273419522818768253599178450386855630962944396880062990279308980195842323006858709289458511601671189280754190775999000330030598277665894123003447729716386967204080148330641524605737327443792004709019790638516392240640862027237753589065637851886488425609009507605575254846645624827976964203642118668798644249344826755361808188708397107105402884995267337820746332047431842578400432186764991743127782136135980131495691200178605670432073927114731009130322830725958506327737125615307857394434350394570869842756172096241558462477703040604837925489708732099602484067800849643034509549210308022690693777756772995223137135487756780503532506288964650318151953099520762165783427842719084217192062789628474163794681011377802658271140510628209024470387064759854118262874123893982665611864271520404402699797445060183850550568059165385422753247801152634091644111914146989971197347848170860257526591926682246688745121994743330170500413689623264618279456025841505651643714685576297701457484307414627614838514989342611693013256937851364745447808937148790974136962881650503845762105073864846936120809238783966912675918279211360575502053181308881495934046909030004984961307868823261011593770963464609601656928361185050121585503291620127382237958610537329657495217194134517843351323595783905636269684291076810251743558947078397805760682723199331594731912391218672849231795721941060006889520090016414109537064098396237705835784662760596176446497881276665038193812324690031170354052560431598834346406134334605227792225404484360183131045666238025744797117977581203406432326497962720593364061134383628844803628955297513502148869193997484008731135767112611503347539261135808191016515848277736990160130111680769145766518464235971204455579312011992800520382226373439460592973182694365705391288513790800916278872207208652258641849749545978350236579313288052643940001018492385036577167324954686596423068513515536826420339766141913871923209587003985556557586623895403384723442451925241444323895146928151342243361314580931727377434831119664761612530522344706256223573654867483153176923100861496851578576986263115320878074152758169877381878854195158537151690752871134984181424840795709401877144479103915973014304092896771246525450530975652502603489890543820512946724915690786267872671951643913122819885029631101616661516541786915420870299704147027122917217622451787792002104377102786739032802847387779799813182821205131329861074670810621874884140481575868395194076108743722379379502399238827166449271880451484100726282092097346995993907087422674463755026752296945998428420496794872318263271537324635692373414404812622327107827836040942912854584588567777488911580069236960396437043048256464651012612720270817623263328384386382882725237041426271677627409592547408561736496682070953574964816180404329439508272878299078768137521956298955322987520447063699420882436403573941025556701130527765171799774516713658808630118397978084158305742539886450956078947772458854093077406493980610043222533673548912356209309426046346017642399816640368691404025900389742648066153383692534565324651291720667814777732521169092700791112115611978681052212356003675274372989371161908575069816432695257967879376121424888778339408047489749497255477792970928396521722936348981285235568947617211788652742555694199683367693733711665592164890413190292112946690550922929052812221163531032527688877965534101014884143150738605102474576178086823174119733149331140267789120401025788639982969796190838001382939608187471785053055609763126120625264627692405255670036645136145417380001317494900504886006253526223277710112453007670138056464998020675870014773943943032309714572025291624908255676515241489278841392339059667490795387432336551582508613342034413685742460945104086277742243740240095951352938510014089322881431917076809153033176630613765643034315836404319080404951891189191294862522112492633272056057922002482405664763630785715909809626666186478747379341523024529243413812741099372185675766311853588304105600291793252893065710616096322445056523440691191410912205463634658078426109635615412519063825863705490099787620131310838223843261705296501869646019613623506162629866643473357163853348255685815274838968939833969571725295451787161267901286364470837353443441431942156795739246412775642858808720779993436841933424467048858292242066516546910607652069680243572633571184057924828777863983787855429043072806863728527602194287238436480482128398783497287613393551100409191861125449738548334264525645056206324860012180869006604879046421390816609922924619539814880224832735252121383350178214179721763413141053642536761806622042206000895500438972033393194835592040652231919633687194690751676143223896345937273721019228061960237390940786340396468145079567169866551598720009955994399238222026039556162112131319138836521950637032094228514979749352450279951060527499069713975220518594493718649993337430593557357560787069785603171049418087105518008136425502456719231424010007462259675069286814613751467870642770144860205839002944220163455390133625457503824388161158650729540657307129527402299155209085443295451650146950356689272657514827013665370247617092768885952207922956184417136634080881500659531115595175088651002447669106462128514824081815828960983604834906536072558745842890268248579176499332813498472805402623303982804133957008881434290080515332610953139580884828028270241079067480955213732281487761670967051656440916315569442813840871532296490065229272642882678883742720164718831458906209448048932145560283124444956118462436393444564719742110346571739133465266959730502515173710702089436612574750729537410994684640290168286954581811497682304218975585246894584005855637571153548570838466968617441631414683816108229703390816787270126723888169834649719852060578653041673970221528927422064239220580356825770137646919152062150458167114925430737026543145407572396879724634737515252079294877709158880671521060083589004082146407680320308147502665021720190705798398966889439903956864760952223452446121209124631901983670142507980164880147140950702052388765801197655021166479154602063241172070463507342844810392327432174681460648807159841413191996456995140952951345322157989116623660259053763436778761786423237903014140130429206305946373367484576223903446796436873875452835438477271878501903233882078674574721923020615877481811246111594913943593504009438228663652647654363550790265979613855437804246877146239958621584510994991760475782896062350092188893989269904215596030676210613297608544004574607397075838976337941031862119947408515248070629106343145104865754878915246320610659221656121116566501888718789174937249030784992057622207791881403143968724213441165447468472882253546326846648191739916652260538023629317923273421155191228989200257557952769725740487047384526907835228207037123378796816899436191883958144899687570036470825251549652341440452659554838478212172861483791797145013033569418080863731253253728849905672166671185231663145656655244413122216765598732323857092141178625091514111394976997301821313387513604835966334084872175562158959716504723574972877720473132597043719033973722183839320974245750269883387352767057512678653699661608778261581810024169913155904384271296730230236576181664462011649763578253763353281928960339826014601392713645118662448335752515023849353921076261186712038212156246975241759395973701581766687544835129145845277154477057494798133606547657847941968553646482288151328800027793369076332338039964866794051775220794101109729136007746023510029206771599761335049517413891985555385107825817009921863061965271093856731979184275108137213915384083495666672709232051677996828378048360198976647453171837460259830729875698651018782429299315341633823307216749043692176503076390388990246242677669417542121604997811585602599808452756604967317472011036387964742858537726926810443274827861625974862356649809791779881302106484009948725850840570144259505437080858046389764700351827372962983043531633897905671906786740332338550090610714484159982094479201014353134861203525011410619378869549326624802981095603962146403462243426824449312353839032208891552067474936089242074076262934917136734678339750514450592256145993130711828403093956423700207122348572368886670947078462933919706244746263906522445850222032014437271882279912005058251861514878265528974485102566980439620746354414692961273915374708679492835208680268352314201481762361796091586406457799092290887846360322703569909325821740134542469737634391545948048830190697566171261548483700375044896171526550327029343693592181157425822910804300871319167710071794358864870445139625120308148413295223618931430744153795792173530029048489366170842239370066121420161779307964501252648562338642069646786569225066117439951880675129921087884734780396092301990516638319664053955486250356288289862725634034948983502143832080417302097920511960618974528162327457107629946569140034517879095800552022792542740120405035533788398813965385656169783570098365917543766351660910020713935420883433577807765449936082651731399251245238057658212904214263427960919485713560171929012216901748833516734294641846095861213209378408713724952034906878423625159550287617902477033149847301103272620998219317912459382552489924763825975093393815897805962417796465611371861670699932903145826193565819343910834627354434716268476457932375646622133664012786553172016522420888618573428923707845129957888229220958325175747419244146078666764589221973132395472570109953856226884577761582897754147353821141289827058509431270029548500031202054530095613614711765654447663108242684513832561284079591477040646864420217260087127956185673586394114321458877131267050567647171703241515058713364194755596711128898697669182678403239157759658796229764563886581050375975593380768032912057520693961675402567115584701424605869090567312179079262877510051534029150682618549750224281848354981255081118159799779646884519878626864028508395178595556499574226588846572519171128418267738356307103638562439623219914769295907277051599870259782676180899682214087047073377078475636853798117907114578816309560052099165868477592614911159089906704628760676740558150645762853113621472527013551459996954811311480595185846291906199936543747117097168190307849778067146250367404655759200749811604777112768882486821163205117683383268301786681395536132746449600591521215497980738642347529264712419044766279957199329067035833434085048066562009817460959957561941564254165398669615489391423378600298617665350743169873378925077500617402088022389233094956636274904955561304793236429041926690048725584877493391785226138945128432600108587449648059834836558027260756816556843536472861214554043921463448453401795131325437725926133579330197934610337041836111549043847256381651279062547499856254091980600220534039125098384204688352896847954880321652402381335007709248629363826426955804282249327371377550792344563611426141157251923504430350892230741128731289533648991646824980369129851304535471897915537947892131614595320771727880304982110682255468088699689692612560031749383169282296442679824252798971553337117764771282063235917487135020549701727135735375792864966896055306136680007665516740492551399532397612095087444249244953077226417606435003847373019904976453072147098234987433345381301247762616574322318354728320030582369593343835901514022277988868415160209409270401478594196670424270359801071703170185180504701856268841409253369839878088823724234003529207345499061971017395841645192399021732380668907312460941896431914250944779919742870795925003234455756622737627364994055341609614966345034009176760297243710326483603068737430264028748630726229019960403545157679728282471961621284652531555956699734897000477193419583047058328617570874705332859238602918500304754618303428363752382508786389138600904091137174176901626719549271511242412015502603572407213180649684912619002622834810770651413712607597941115268040586832129373084828689026661474338826224078591905961529986616577882477567615015933163580335642195767749422851229735141317841553463657702674376128536810760290892235045268372423761762498987841310721930595506243155447717722898971273321505801638781854351267266449219199374654243325790805499067813715493714665148120986419751112727018993171634074764013526158775430799526685294299254965692192719936080531781493075352648346910520453604334072680513798832810083087582374488257255018368726602323730469577228325362188789165907349948617906527797003651572793795648533398852188977398938806620477456568378717761661352493547958352459270446714144763000375495316428023298291320698336398791119655962084216897687380502799504730278279612037026913429195631380899168572952552810566705815225343220819406941498146764502398089705028300155060958780904363903521192194611462320441331138444789019314036799544037995599273231018057917841929564466607651820407651690266046820534438466978690219026878218753868472729738194864504645682881579969480223182073728700965776527335785774344828580941287855281874812037230981109307767657107970790468744612695774839136763270204522644818926762058015499934864316765464168675787404016143879883280029744216353563354731247910932937144955392764355112692001974734960820884846775625584641996492040479338917120326758489516820082028553499755009893967558077210091686964909192844575245455560656153886389015606063300516693723683279771145721026073677522316689374777059245970304287829011265518175384037267218936282394023751151724431360615267778117375207296784784868663055566691040736840129662039880105237217120745018956665477375085643697812809971309868444544526428907393868253037809534957613205475818137672967185023826948150260196144921351582759954731483616767193743578270968703201332478494442668382203246799236348932251764247183562117179353815374393971448360767621017926372441247083514150314073860845146521463460708634098735708160773529914813732243314165823271673958286270626386264164486751347118581652486498698581053037706215128042446808506020216730514474089633854528632280681785101422290692642140223615995768108914626236541444500227195358819114603141546075644054262283768141617263166243315162975235372691850267982812426465940297982286100714374228357870760214897721064902841659897168668851977803171807211821348749148091105392084045795149309165118009875243345948136480442268266751909518061261286004477999775265917700911349497523693035917118839106626453587462674843633933108112138598034620281426468807027276627363120362759985544498460434524149130234512310085719386413748937456987264349096057876514032266197481106891180341941118095185945745492613997629189777983260199031280971583914897456975465433832838107362509462766097138621884532823252717899329868630898897838717255908192923193435091117383041849073209697054840249893712429689178421676582316862890236348734195907415003486227539738738798849554856081828812554328257221559371378444465919086614720652545569853236253256582709425514046291335127244669432375361615757270382591713555657318721041620498063117822645006193436272806897330008676535118113882465724553006434486094897348032707606320084981364757481562260878281190416194008692604420839733055593898928446418500113722225638928254473111569981414862712138038243097528933741324203630174162444845565519251223057578994671277706038844594315239916983213125729877866039747294852002020488930382963005775385028581902456318680195151715962032820453287358209476557413786094513008372241897744409682573799797764468210497361048563790158857617295423558224068266684836008102809037729435987655337760671137921786149551539939531661606039776641203187886034693491701941924795227079096909536375320998765729228409676166349955774978302495688977059104415233522680729246763240880747702171101772004614319590563218820230457241358256005494229575434389530557270637239701257850462356922576256333682442600930445668476350436127243581346938741059018464786163268342643108342525834112938973929249122658289254511989603838625743805904944545270861349485458327636465077790231503168948763544749006208425773934876389520116061594195354654068889381219092045804718461208711434510284408683125143341312426393518799119813481751593990635847998780300845429693829397524928780092145738945855928831403045479291717367620591776817839075267956657304272798093884606019810710322556186352578036295444937413727481285817994044538982240918899840073717988459919933391052081187533864143935542919479582179501076184965820202306862829877345859949897160538385448384478888887891415012119827401161598892161036026510046957927109163897740755914575209664537256295533390188851582726081962705474691162938620032250009105903281417098002164432787902838646703874544485282192042236103719299226888030968235775998144193966954321962220192099427534849373809957564222571349337261199787757813050546088620747178939172624973671676909191992936456762615195357964357406425115256596046052468276902546824550427294153031925316844583091514621606804316515618769896088903008070707650564251816295856891658278441163892534087173501248378681092092173225415462180355448981382968808081960827049513459227493457594273236693281329996332474639675263727229999947465663700983334167054162742049805454678152726641923402395604953108570226447977325141782461356239569434024085242866452184682332353270940166677524176142258009622301943109436073385387108374984769623058791194116277162889478376034355511695391926362327035114060516163349897851404233200288822425333881457467083238172471916540200357397789856216445352952760115548600463522522156129377993894646764103349427509760461480476021696308193726974709354825798346270197905882781755975387340613231513660286850529749814630399215141933168002565719024256925798490053651824060467149985693973888724393454356218438245090826235476008841406676309522065698133092431675116455090920182888356151440232657676108445461309501083343089597326265323063698603251385899033097100930939253839061226600890272663915731488910503997383466278872751879031281824375751972149835610104045044521847849695591017293853608804796132579943038463562705809320611867936169223665088132916863891304852355963784488982656888239085587099272549003632742838491409366205955565924595559297151302259272676980749993242582007961130218896201032459445153768808238308083170014976391148654909577155475370772450702265347292958617886239998126309319134029540413907404805698315318349984352318935339106592826766485974912948335418198535030171941813110210435294279193513172266999628512885628700350908860628152845666939100281015223102880188241660795853704606644966299747903954302296352676928441666514727770482928971672664732357306733175516203010813176699985602898467396435771205320463822345909029523589074732215417219460397531870322724428841467343026116605068963108582193576691382301058098106558319092531439913692616852351856219805905493489289984552280380311949502039139268072459152597276981452360872705554446553311856397182098711380596486477469560721803730052312832009887867128622755351294915799728312174718011072611505776323434425411134625594984396105021334438325932497419113269669814682246978284695460545339815812710413124751894600222399420517951046916958106777000770745879257267093714175122788208662961639238804343480835831919441733519098710451007783525796282779708442435832804457471812703233513394144733663007059064038812831113578553586813681418649348162121643477206840108993491679298777547332316101299548259714921835091702396901540975737262911589560291999772560325837496869860208795210491007701459647514091709268920034372343227260903476231940129183580196074697741700200945854773804424276276484277695627374123703899834646263623382462455969525043195022701642207717460115001789149244964036398479905501208166048957621098391097061377244334857883127706145842554447118098511516292801535507012946067831720256152682180988289690723438998940184172388137287569564215898799531245940342696822882849517020341691942844074117364828111657030621572202640095750883654400676768247505337002815818097863225682871719778715635478882543080033080528579193932883277879468422932112318030263972910243597778396510580043471939947615956997396321589537743621736833212259123891774505330276793594531272337673512215761542998797313068786651363351857747442536087975558242460655646678965212137753708866658172363302903768101273306855415446341220797040789509319310179992357679915809671146140721442716458530818048101866380643926074086061604308112466160721123997273841622756327230491222739101408133402511653000183388084599582174156608489897290772661370702823258042164072265866044641512969795229861229720203591029007122344805614016053871472324370911516915417173055258097460246827430837314012852186428544079319137984146967705086138772875355585466985797433953107013959139076957751651818384192797900200023523861382048361308705491426417834694341151089401854206430232970361866029893960059315337158038812878991626674569250559380367768205090393956271085861409922220117046057888808406729792970438361437285633455024702241110907965621229884146491800608985518695394787180028435073599553309638760712756041109617767779792700902828218167713827514271908644362382441904197514924783971093556316717060868621746267412699206651859246924246850477191142766299245556170898094639894911839305516038629447078768650527204010705597862298847300007702762243700320003697107803458436371900256897150657121651676335699939060291820927462709506308984807998301517705192072420832845727435677735565293856495477797347466265795026614179420234976761424789046723707605803746777267405188832870936975373962565187913430435718877748754609681987120295659282228636178035815996384528335064475783140229797786497482228002677824839441644076025836086018757255965681135235637804925745015661371044481818505134333436907794196775541097507710932089567280764424926357560098292007391410054059747238209807341151792918671453007144054433044417220132865844670500276973544447629504982766803999530783413951016000988050844338668333227699255771668532541718126707992420586250744594695482917019474390423965621805343400903420721409881627163464122956614794297167725060439387757394079672618344177282813639273277963333494717201786870667027525321161536923476374531914530404893944931197243847773748122621782182436912130734043924932700509120407793155131217244332583026521607275588072262083135981773195693192705072168896700187676090480429815240697969282647888757427989645425745359920752471609411541338182653942296937587920204924014930298489402232210247801314443446971928726286402655390861643912370828194445177768451699085666841998169153374382229266011332796075824573423336320237711541856889750508560117399344225924488490260731854283377328387124566564733279201486214483188907563790237882974824347826856808353404261716300696150764439650178838501049946618729498665090991627098828722845587957720739785667961489529209883514577848728171991473306372708121734860810699402332702550042506244862426333452982877141535167838543753378257036751064118761070456997000477938602422755133881781810867525848448203574443783039629629217475868028181462952656024968150018740632819417052326313495211474131774312116837464556419514776223634992091499662371942570902691562288290233554407770136308734401210045104870544739607877391696908483096649504457545854522858497640207367737991821382629132107062087611970831989490399339447248024347902320229136755933685734139678581686322874650062622400535773391567160439116669198514775314750260817915951947792259166361962876953395637920922004483088726586980787672757334997374508558090237107069227783466802148115099651549336400162334849039774703283499865913667354502543260181763779655713092427272796383059603829682134113541979423618436863590040444968114584617675369682259003829450810008362672639371655701091761542853235874933517289830429656123270815332814846982038940439445992991360335124113002809151884102801685147029382698209241623440931245786031806194634035822682289618950255665416854195681128947241770195822100259089967359616778336278848211027368985827874883109159043889601849650559159373760474629626771436570069561937900018531771161929936461769363239075678374913657829088443154926272698718711578795705503911364933587852603592019392711681723308374113799518882359222609444938683957156789545798446990740233098642239216139215295019967599218860220360090817051404434143719744932483258770319060841065723646136161257419434561929445546674087055357008062416275478405928152582285462421153388168068333845411286150849224582629271970155740872222679201847267797519919898565848762929859745594237542130707415446515295364912560243075830998243066765502189159776354374353556033193213696731052130425354258603923669938520923373102214384746811441295969153042642541401502991602453310984414472791535547112658648511173084450801054868675935867604828667979326989799268429088621423120024973715384193098356851477707570313508696682730506816606642625720710310394058891820009834577523648643587781294970941020247707816620972985230246476999638555624519149438828805648255821032806292262575925702783743114989309516037419982100781725310666401002619815027499393518006611547820364963360907146595678011016294317449172853149262079630194365819413685011052918881046884527766910345218148608747706783969449140625208024806708652767298146414446353367197290933323384861427825920501251734306978040956007909004575557248513592736761265564627085525322661797218414781800677041133659577478175823700509182341166312770104282391956987748069376171915812792087102296778817481278588463213233751064900887528113445369831221965685689931615121469971838522142399223760692386645049060882258574095461242840642857519182996813559035632962701572511316595304244892456938004230995742727610742975021189579457670526850539077567357834161589099491111151767170418406606644185993785797592679559082291030595836251167046367714084006786375648698267352685270210476058031320114227278522715477403744695618852223201216346725436473328410743382392903334720778521676569627507538082500181642834234182104113249236800458341839618010046864688199173901121681224340946179498394720086942222687611645665931435407611580971677503666875370523464371075286048643670264025083654997617941150505156910572997556855401912790094322423085295373719075606421832965024715691426630267433967645342221356849859248557942783804910737436168890880262546639814838259592595889024730064121287768637641220772392913746867942047078430322918773741575207168338339011135973754896514462257421025395406117838157834769840694239135048222896819391481835510382295997601991918971396068747462756735843917287896005725415353113065388209033311035903725967176505390430815037080569510666845689147113582059073507635122720032956366700429367200672419881429522853999353864506872192455003899645814218907939167037541898066890025052671673713070470275391825484309626537623849973250604998568171182615028199571938184678632203512515680380026667836601772186512624679960021366004744068622393921828662191005488184245437372417665900109312327770234228580741253922992777212716844074652360191384676706349848574061996560185232398330237110740348571322181517291518757137934552869648376370212563162653901898279889033993251333461720201808968262372883137784435082033372871441221802580955192299880167064840088229404258107934160688282227160760232956344041200083873999483353647049041487704675503710377307678863921228494469208595022506844324544312971885027361347448049608549462165006736442663729196482856831934159731272308448222669494450028834942299323394645358011570909021998982600627822401492612200248726618267230088588770350157069097710822628501100515201023082382682395541163398726113554754863268023971428858553495173687372408062916387416418711628788957499529803690974015948489429497445298937180922560629195219524942856182807600203228854716824893070525007875346148206343396565222215994201916834490668769207189641515607689314212688795428509645537841495807677948058675890432406826194278334503058215733963634869875832522155417945220762353650935859970720880672021912374836763485078641787626420131256427730533582318590099079580849279261476252705409749472843679247990121668440553922475942556565612368336621895871222758484696483432416335584314350746420718901957343338373587260750756780295893246702803599492022291569643914817360151076466293941453336429348295303663692240178953741874582019138034932417888057882554195638550877094929885188123324871975844870929912408658691640224409351948498196812032864613806942437105044196428774008097911667996430797790895411038074603120379116371953636341394043920352381625201573551655569208419284373966323082583019470427307785359021210460046943279767700043977788498989583382062187010789360498768712072759858996917266143746524999362477636833492960489577116922784283837926129250618604864348136105246180506473147707159148849541390255337215407298626167699185008148010239278902797520665669240583057877966259388729434335039203634753760480639478875236244646007473203272721465927883895227084485727792363086247858687209766644274203069615298903443573763895216246781474537358154924311506051720524463263165572046400870916914789339382616833835547948340161062277627735572651218592682380009914068928492901601867516353935370340587767283915023364505573384661239781696381482314010339719037410219348924603648577999678042411028261366805542939204489731359079057948344474943959675925676719001439820963596432938434746960175194072286908291482696978174135274108192845650034065208285164205889644367553373445183518172183815071127197669455021014850860944614914776559665026913351389997100136222865524650834504913596111207994448577626355207949811077414389915604634840863620074542712030854694653534804954269900193230333790158112674598764920404325748201326042853961991940794019430041643354458399325385397392183025577406117581780273939616151727755913716362932773531358929886421519094933181058057119075361826698409291306116097237139948254871361791878668107275434570921172614475003075363031682088375671887303048769653504758412274258696124586435238148985579669359247352017103203829237407603617234934325823064189854131110631095840152163874769204750145442306901303745334866612354441975281330222382627067071438770270151529538041480590728447938027331543967768820019048649022535016699699120311202171994735274135929451069311960485153923239935788399744320216090051228739452264066938271494999048996982643026672043506335680599791961711852963944184506331204487052103137974000526666303832290085348518312828555349345206466557017120240731389076891913670844685322783913891915692519557273368858321531440577185153384364837788076028641646010726805185069074578467704649748805569236810922575913935762799695951496401258424354377273526748113681489484496783881762388518067948045197998765800841865451687435333451611019211148559122883820652441765546717252067226530418787400802364226275838764171309585459911564459989887058042290311249090156239241192497012287629008234510330316363918808516639757093327999772286111230639966417065093826450763949748085028615324969175139320833325453336539725634093983095162286216398952742927250112475465690715084321562388423506124168548327077863837004472906944088495415263231906089754792278602364231883350744963280844590219799786294742971514694006900201761945045834234975205481206604326582579280814609448411543550952330651599779597342996325300386442682298277098143911723804849635157537648117856635485202199260431131749444422787453365659142612887221652134847134407480048222710367996039898003647518328704121746472458945039396846713535680417405583379273901701525421053588201802480789859463154228815964891091594728198887798599346850483100182038501461526603527257744087512600324233122987852306832676182258463172741208422002318482972247478554903224277889091654339604680635499441687853537063303077206484966832852213586314449338157221332493344486930158999275694288875207865111042752791610096088525845787937068511583080647884300742184531894722485896214919163987491730059521416860417552669531937402172401148255132605691813666134597140735767334712238791788344366777192768369866804768917075019945597280402567151633562099901123680027023020107732567112600305260492216314379588905591950979766760133261215191153601001617658703641692230534099659178716407059625177796573336433406228066122176954847762505845094811781893674569052498366550412303927487900114379195186475848668856887940734174663076334912238305270458985372191170586252610686886828923534618636887613138279676259480303308505930911122671695203312455038648234723078182550344982404257930714625066734160352430815457320279200571109540455337250505741637734366431398860049098359566995392775143203224463703059269346190866688230815362337523009434491611339345070373279069826751307409583967720045154447221480307965648136927875159733937627618402681785061047576844168556636513169817755797194759332562442572385413237567464347608244885685756324920267224678498274348784512396392517712764619859256390214902218522702034389097404073896401331298718256638622268194156868343345849859415509794336213106482671018725180410911690975373754591083047842516837799508214695619771680208286812425135752297375857355755015223776577102270597491925876440720441857594745935761706045465691149532361196449398219626846701475837302620518147378461717791793089532010388230105043942271999917017244603000312192723296456375354844015152171784746668861974032158913266485883199012884349417343122465033952341066210648592875263584090237015266278110465693979813748918855451183199320364826350970120123289208777242424485354328273000952062432601098028655289479142334400999984365206530030724681618281432915287937002128477848629650855809966823947812932823223706410037105431155489848411297534538655744838889328744273068016343132760766020807675605110323353515304081605162229182916021315979731933837866551163261636655594105718774027623377687593046158191701087570078080266272674513207520747539452789605167476558282616957932886397236249416749681044216348339101356435117140899994568503097802144681733701265273201566763162223275227242885652067220008898745614882494709833251927539812082229372587994535840231783096101715810902135803808424055917795337029550877787958153552717323996082469958367924121493863674820192590469308794555784177282729778297959031633041145630968229072183263598987240847225706351324115800179047541313565068166826961341716622956107158092957930430990067775145928576823192122357477096939913430205929009853235275946344587167810769394897599808866234497376390997067529072224465021176355230206229874553785779088685602927591021331336989965333158630622671189554085687208274513866206427589277016290564209368431400870091992822462660807650109879489444339296687980245027688942903836026679213696866155815969430684151269991238596644080087694493241749321110673469646040075443544670317505081363902789777796671379431923221305353966436868270567448939537014735543743020416661103332623165994960315702973796156721401974887072975618932156584960561362504583557885693829234334973719909307045105092895446017138780859444746014316095663833185978480808174533652723570910705453750749450775284034352373786765405456725534347481181380741209543687401572113789656257536493993016658718837665401560274607149900660989140446681575459352730079362214930057439073892529845237893562215524838646596583582367176069647766905408301044155918778647718934325491074137376884248999105201150989851561252159444902411570091865229522963988555027225089205156908564896625369211229894518408740241732247466933218119072183270434518562711176062346539386496021308380018335079664735248039829513622341614775270133875974560449576619874965690531515785985254187676653953943799113370773726200622199447779114234162171970042443988863098316587281457459070823892709875914350462823766528793918097192351261956770662947086658474145873152957260489884388672022128863068775665720929614056139493368976275422149856554803744913927340371146107023400520959033337408197781418105006838837104861486409400603284336140883074280847467133451848073875474701520520528278034522755397676946815722729409391176707195880442100054546508474351282025162091726940075530337207856828124936937214008991325685347118333250373793554221596203621852894342103808128638347891130386243334003142853227903154658606461995981932466726809628842207097387019787874898502034582853703816036886717873128014981348820336915968611765994189636809331681615931519824048042084571115608547316684032540364648988613611207026934589100779267398352754621720730750260066474615916096662975769304173778906717375904142840711044631702595895517073945115602748783737307423184073850231614757983457325243778839133279720504620419828612045097225255970075453886321633044314307947477716153320449217540937334876081793972318372967194793376013858821542078242856471254044531539226589776178159850428686344271517877944422132150625560166633675519004001942139241469984587412384883725122126509320143809110696398673894031666387088472597621079685576666334891551743968857920365538958895345953901424992617270158128164492444297239286896977734378851668386139588279695843120546747871879793229738595182939569716922965860280729990301258023495140972326662630605230014960152728467118926995066067507601724961941667562894072884045263220915238354978338316776886036301891229531851959029367407456812504939656132614971549155665340243385469439604498102516929650969614878796790765784006052964019615768926247405827098514712158706249019370034040342300274002989198942781636471202121079072288711197279597524641214493535488410348826594126438399771768504620170596811564122909963674365038471277841473087029009182419804046477163196267657757276933254034251669596589492156246292809018343879484534673263795760795674976125178595223048507742234732851871370075433664422272340220012199433709342826903360763882347424294773156604517198497348020722553882569740108425707657805673310191432520359462062483960054594937845651216064040691160843360698045192219823204939497790510959091722024558953503799929366868902804620599682248947595963076359458500242868110437677197822730875290781197075155805983679700114088420664349857110681451763485284871491266204596547191427976953520475665393549638232251359885714336445229571823454631848697625851198300712971716127834374638455295968813393354717750593114604230216858833464034047819359162587118849339426949384526158085826155363226775459584085301281803454245320111188178716965876114029628912681645318680851146114384378265939875174361707651319262749172710799471542595632892200485362640190894636922825680483541026828042163939936895085787693262534265382789434890061407130736043359319631167209158270284613332590193870873253574733095622873028628270161703302824045973455543711607064090233837780906618721893979157607708017456044152501941168816038725780717953126068994776365536360638546284701080090637994040349081967664020010120229068424529481296700607274519298988995986804882670470344890492381641783261237218164668664463718406413306563581896887534927438394122604528484245630789481965067713291397287298783468486398582489138820291364085189564840724510778182565175865000144062160598875402602452798814818193274160281417762221938846609120230214157477025538926622220226308109377860694566188442427355600840303901461228850451003457840238231215268832729062765677541142551899262265809435330829315200562853244421722710538914944841670746729838330408498756992474256021651974292295786993208413534128994038753631132912719540490339236445737091198308909290436109810774224189835003936863186178695899029406715989157156915638288102250250095562712766961797379629819156611998926938756912729043150733914824104605859652757995538695267365657112287334558932015037705078104337199166275683169470708493333025760837369832977481787601986465174476838106924792455708056650700935740433466498820468423764983289774558360071919113465749384843988746018987330650237685074178675500041314828802473236783314233281989053842848984423099451768631017798757833322917582512464669508272869172530346364377732420572892618843603736192131432049357003560339623027194113940745644764107049698220662179653594549408441483912548658326439237761924062287519554264194465443043610967198528057076579873506407554669760109521945110849771334627011857631454785660431864259765960789183394623591200144192499893853933170990041388883107080285640581450730872223942011511760350895103856805659002497216005233449254930491824515629102116585277333221094605613611474076301636928155233303112094817727729557865993869217115656867608169407340593963836982251184944251809799680959771057252716699443833611779595617183321001387279491516569665761067868546712175847887931373903205523849874428876265610398413554178976772754544293826672891299304035524847985909723943822961300781060410764522263833782051807659613165268780791754304453708806062756655417684908019500894699334298812688115373616633640088344889398464228987881099144236042215097025679987097636810770659123015514268207042669828012125372078279759315386686691946411257639713418408797993360230828662430489695611514419178107853757505881270360776583106662374527935769722061912276209414738254644910681871558736347956381757772546811600928252370276339950017388325060912816239629983741886297548156957091726830489004124602189755820271272606836407883836047814940775431636296794548734808289568314276906353675604203197486360927323661161177687020819884045680321328235419095809969157795051433551116042364855173514138082037523208300695696611156681672715743504054438706583166354972201893170921183203598149296107615928627520570250557428979855431390971244596268249592167301990969790624782905927411540455540421918585043835822220079290328692705371527243265967264284988613308076022932487685148379734911666276859646033950820575512055953981209897891629651440261423687080753592173899770761166552151240258504364582651114978067704156570111901666173421325809213608438199626695308745602593782674881278254422273473511602670887971085566099472541817472166124633076806339209221118612691960889304269433954201625329885743101368770880490522464968693485195315171757737379134144333056313465497877919491062056267721091895633602053073787301980284539108266294032749318254795587078326656304636582026431983872033631791135965870936903956880342505107667009024258731608717022522503705903078089914798101038792134236105680631990812102603578941465964107407826136147236214974730368391131110855770477334819417951257693151713168461508900434567115114860953344852905310900740249803887793965971820146506958318849727954379169162891481527347916544646131519504507296441651499012833858099646350806015322354649493836401469043016247110341677927507739423550211456375774215343838068734090877200673262079502231801118110243465238819595492293359591773651105195159378587912047201802360617896871872809596522269921897243714002577437799228667936405774456741081428307571281356787426790442477516089774047123442378080294874295487065383243011733346284062279609810147001625633292911636679624020796336216370473077920256926447296425658341280492765897979904824002959824822358247694958179566498436160296162658764965294443622835555405490421736716066179767701532952290782377562318366471471843779383569722430077766679865946821811488110986683429035938669446266472182796222234859522905320713133610203662359952161598664007347076704529933537117211688063817953435810459983487322559473840830004635278400538006306639763874053637151954849034847424892133727254437653787529489515936413956912213038759525643291132755108767219041850283245451713444668024533061171184872008840435620126246863091909967837223000083409153052953511009144303763113413289567810300120785101545990842137536104030640866350591784429980032874447435642614258101797866846319237222658367099499770050273743227925311193627861226440457191296624242781909813767856300421036894705991373781311073411819870675921094813965665642172747871363661915532778120857903455926229512702187275641547780863380392219552156264660022948464235849448341511855503809202464238727339829847406753161581547573419600988239272475001435819197122429919331240575772064881610849145286105079833417370918950494369579382173805269437511402839779917685859283641496437833036979587130000529634289020194424498782157663459402299678232524834513226485926092917809343156102464520170464725228824624123708626867195173680169168729774037217345534113874367217503973973577466174631854967200562447567535366652450950803331621135043528333047178543940893680404345591950771321139587091803841110101044094121090900549564245540735831160144906107477386072537598840608429567085809525542495050068333564844170887590311989685409866350275919487954186642338548670956517288577198092134809316298641747770996897732851205541846241033960666512260771650783680142855542408436383145863377686022662136193542619758698545658660775649339540684417930864491637229143436810606970645735097454900255304287444127551216080322946031318269566942959259053660295027920045445672093994343074498327506538087014391543450343650469605964718236007114111526265910613239172863429453959944050408815787900169711639820019223353191002458531045044631644750597161558912218107999842568117670554609232432490444628221844421626222360699007716836236829090297271547504643620542571868119437273790055399746994340689635032392033062993905004890292972187905832178005930151110804555521958115980359260789803682988358921900798893618020980168584671330453839638431267226685712012448614228526635860688811885711074582752841511331734734043569634438278601524774621312636918526824110979559681503338239512856292656686184005934010074574869600305690972503224513715627177709131084195951265853071402154689229801380793080553251358326657202391276567338054079038331513226769048305382070559038254038938057055567777054930355544017987064633480729885382737497393621432301283995820882674677515298724646768015712064472331145000910570151579546580308461025196133766113500315130420165683908960562244591651309743689874878515630124518466863190123546482198171969280041930360216394452204309743759502064637196630321961166216420872730083898338819110528598452976638862623553102385931824712913106803818610616108936225745047383900110692068453270980938620593833663177679989180507856855423375195926599933621883688323286503122442651741046663460181387452673158953887357113923797692723903318122513304654054042778679194834181571556468111712176773036010030649861865690074858985619461830158588505568243599968303280995240858603018295883283550072888646087536497198193141661868151123779210394401363469503178408631110015177279527009122993486417213206623489532926624065744012826936171310964065987693213786140449691877432670932800543524344798469531118931010923738917635337660054813436431608067492110154705854050617341228915845869266302926648860946740531325846314458751721801851664929339750692135061736727163919423336836991242163131831503217136507565268869285076429376241097008170219689225355914188820363347865917088645609158092250530298575534453352149838475186732975299018385254916296467489065087499116056835633214684148989733466031572850795987830750532482125866739939859575622412311552244487260994842796977711931794876820814816462013041104343281045602453490845600762018166595315659503534513797429364256828789095527886658808035044117095249392900087183105664111054234639650537695577426908558130698059649842787351321521967600757265764803411805449695291326430677189847441119441392022656846643737385338529160496712233290530249088932334906471233870659009354675660907078641255050634663323172062403827475046978854309146777870990779827139072884286117925029519434232041259791239184042028484619415957021832815102902040634159858252651441065841274348777395487186806351274424734547273568239838895050804304840818258233248404413692365718302381886157024098358559845963249013271093100756754072648522162228592345726102449859699970435087624504332330261179425197895011789532777716331232662183398511818403090954148894372948975788232471258231254989303328540453079379673222932226951720147768984129537015488048640500260964765771853764161819955486914539169126909751421274851715103267570129021275531754254505619582130186878691653053241706463671174708508310022148073022682123811399320640367429074914644482161442051953924585433428559308818078048189146285417012156778619967805533888494552650682123740835072460418690144632838979333291168035480073639350477669886219910366076033444702599719352230605970791149626508361597730276051667518224172199055998608191459777626593087307696112245864701418182648104179730730948724376127505599740134558251093397459124866511994565331630226737734135054291330500034054863141807895415853058160634621984421461088710023364647379363377328703222359741990675087722933679674886747380246755441379292056274190397159751152770225166569762985701052008301314772793235209602627705013198705207274359387909844050847040624786574173471810802178313144203751116845620216561095408883333550135401041676277451407686431053534857167691983361878118088337494350799351499909273875727885312284733218305357073596366144574984562835567518363618980921619018167425531270348119172021314988405299148630511352314109707990170672606166437739243893746870085172096917610113623577612723028475641557890956038845151785907152269615830982173111997802100367567471455405093326325776435471784976942829723735873124464438570672563548448313280799674319550801645889505416900543586004427193654424987245334710509937800552590737531144174229257703791946395035985483746303079397324747584291528000884643943835360880729522936735935777591119496620217672522223406346501751663292085317716148232095278858975081120330534645351953246617121239859723662296414742786314119319480072911771035606211743143593937602932696312437363637430858695434798380971597365306143030988509012918244450052128929980105955455700520471818915841713982439996969237568360602500785842389735734029466931819173810748678836596746771895412827001550434319312871382336104340119268914966037304361302207465660409723148039180356158778921692492983064331226694104311790028701880000130757294281070100526798207484785562705178999367096338074974134715247984251087557990948143454745887315240984865713662218056244412917640615776758925124515275822685256685285687542272128157414104117478816851231144395752689524955661268717681306264526669729999471388001205803126643388870219417204961423123680193532008271382688097716209289421988930780668277056756632640045597966612735684420510213492717891636024445068579909629564145889815056086668480052850275418742820072325391145996841951581168750437609213722934135945001010300059854425277952879731717429774757395512635820269637036278739721470831577175539638476325827149370503107785932622363300229426393140326654298832053890719765411064322644640388154231566511620811688952453505557430831188906960391415793517501028534463350564737185480540370735080385407032007619115307544385396954374721867309530027568022717288348750368025824972132889079309303797513334412715611879902754045308269850309730323392266583481891361379446994832934648132943257418983748631960653407375469519310625937889967567095792975368649323580216116490428758423835550335116475818092177437328169868237509322361925270264339240048275009893962402352915341675971846616218693007224081832005752067200378470205437425833800635006688840704558909650993422124963614505184550563824460442010212941392896404752576670860938597103360533616301888911398758537086108216286134833702016933574009274763602556941304792739941433041091207223299121835990131750385313529317350332990832027836886477098672416832005140405458878898610330735550519071163366712083944870764733299656358618447864851528179012813173001777639896518802113529681875043999361060463090736547304560085985090173483926403308791442388453826487937108372060397516345654578058423746563299921303110397130129793086510406178507247236500204274833152023729727434178321953637775280791445848395241305366047013906495325666384748673302195008602332057534392344272333992450440774372601912338906153915931823083331390845635376918443994020367844450121973826587063247225663615219889104122322156440016631347491929977727476110873623045389103416752484594958541041593807483501018098514627024621473118731557319233116704771495415501017326269928463560526513060769799803883812824959670088098141567630694293793457329386539076813161947822872468922243434648325922363535311683789446439159293035444005621618790332758824866878074287062359536946129545504888318206651601470343789210743355240526100070560995896449886444579122947069736716458213223708936521443815459260572435424113115278983739848692750258070945475420775472757154089575878290257529112053515895490900323951350464929823533853113248553454374222368505311109015608197357178419315225345024521298130553366638310325224860920051633257789863662462681608441527624259187263679192183996730131607938708439835812075197348256571923823411261231026291216717470868602563205781309204874539467959369731102285929245307197571837411685583267075077739456858631407798627927639155524324010908565213022679538525311786926322454425862231503445263816412262410640198542527273889194761233415382956469208658944082546451267434297250921063785173147061250328671024942889777355727718028796748725304740599251974905262143980242417562540795821161536055209215719484477423349104403907048023084205672898873602194279468430469875834546592627052357439342539748127353474330711785230633239215614017455933491623602059563245831059527773898102057342883048307855197941882750574436255663048003098127349834584489168821135334868497923321279478008131299810302350909740904845904710578551189571070432861087531316583318615230635374657260184630421093190534073196055664597803204239898309578609036045596337760433377502953051997782096655693950689283266540175108289173806204006173851689559963194087424107705755271120434680973717968791274951292495089687560361362794717982569754076007055076563260814199947531122009635322498658423229190159441040281042764320930495998468056189175816630166124743691427449574632564142458235390059256999780893665134878947434874363565679189349184193078965369875282508396973540002490904987390632366215376480683519640478170940045485908146595092020675187392873894721732799202654615085377730536282414692471852639157808478868851046111368677554054636421206419598246387671430312888805916607964246620304212994023190684785187189134986601186661761343194010161512579811110001785292075873208438462552181678723425922686125635261992931306852574659439615063727433165724563799398468193023386557740962295147925719394880085683669490088983268083172311128307527588988899847133144950639481935830973534210824753651634907450811835139048331929719185623245401552781178805887867152821130200716387320035257919571145020397704414787222657892306903622139632797636025462878767665375081823350268709506499549543548034302402747722699559073671809952205120179284027663708392510730886206734693599238320982251152778119272433208439567331725670378485012265512249649228219685996302347643556754246191566209355348422705916765120779562741403383331684962045506789786616261941105692368898861872124231526946327315668615757390264707236228989870632835214996562823417443617963438678317382975923044626413483028613123511426845798979195321562442260055357574413615423324808607902339834201520087339904474215729451307325452235242615001608159062283607045643630621706745516363921310648949915339662448795368231777663260112560503492153310377256746479551885979937171221484893818592407518138965917736410860373327521031111303349962172881746234187357953482860634374398850435725718104802431726448185722121842153513751220202495166458124322429253955472869293321913862995556102588534290284343462366181129378481166844904021323157807265401274387265425763216208212286701667065559836925816713855075556563961428084975552426412632455108956230518944624498711441324126955253342624324689460597053684929341156913627461462273900425990084418376994653711280983312700111431446191050413486645342388200522302841523393321051958000385086863476893832035652028086563210746963395514022010223370317480752659702400487230725762140969581722488440047431680594763719269618376323277586243329486985357439708740925288644081328510950390593380525140831034915610709080767871750659344974618996084080728985017637784464668174123450987277193739865243941110142334643052933133106543947716425320515371562395290498382293289483539725477088951827579334682850084148225245195502178497087106859947786556886022884400514252054566016742083675195047221758354743891401473646449328563879117020886994657282012314125478248711947178051538661798288913819486839841340179959620795863076713355875955383004783099545097816363194742627562913107234061272513808484231073382640989776709434906371497983615029250068818479443096459721830426862526843762476010898586240947673029331565080077875776693748789611779170313356888245183217994674566948557709417193891995093723928975229282616410103578156334157028169688624292365235978127601027484171408836421848801313445615708231982557996599529482635126200543431775767058893496328920178152169384342298594148565200265030634148910009156415618412106784405339600992876231427561027320691997804293407871252678957473374698100210245862341829460656458762500998040426353158776150279524557107397490927755370833960662491656342475057714465352253608067926800039725564014144483272554869388517454513184594934188322393849239257962401190451097241308463452116647279355764249740240696428872520043933575517996343632636631826716857118175283463812825678039148264867429333755643745068195056213303150544580019653882788508358934349747586881021849883980553797163807447188150056018652697435951767309965986288786321036524797281143743982644330442743681665963235901955549306629686308259617092942870305466566338276295223564096252118533290820980371770332362542574379325104619796695861453911846419966674514155423552311789140394612542150211304366769566397906609127856109265486652603850685200691663433702482193565004257353900742642457134700817141197088070115261471496126665240481381759136346743400717294063771651230258167398803724549660567329436934660174058164782747490780870724665822914291736300428605753949494698622347304187141293203362521202633597935571111057419092407556594665672905489861006047597884033514912882427594810994146204322688004787460443976388637248390388009496960832429391382409424468971077025570733931474348448651336099465363615173432697581065254382884599974745177285077759471162314848299345366601043716427896610449565156189109423643287231165010557087851572364221204699661373654745720085310804170896036505624582424582497848883610439678168952014805515349061435818701199506160240285765129554629186356155758484162423717504010602997724718734245262537199149649728490007535747447358701513810982464435137485606667998953731473400254740359175487878468265558100898268493310404195846408572252728065634643209482751740575630102011736014348275559959308568554459560930888470050532486250649982410809098640174227412121562236946508563707089948142550004639521798560461112799792518130032980423246189774588189293499539643750858435426024581603407611559755566557708972080285693414131665612299683449525554645530656143082214923747863041341194007058394317782931579925051260987956977344163261760270696573352477962147747131765624989830289298910741855954679236300540201538812838226410765041798293017208998125231514064745578404726912018076799992591425729692249369449311644437077231407647070288947989513849480363174151942522390496516862050197438991208498233194657214134324171048215862760979594490141848027046452060591467047935813477650778042510793874162786661574437688737371158305040542065242679834308512193606581067968304197196365701320127338131072067741361619682202231643710153891868320547639950338813027726923881307313243507632519547284232681322449162822903683457771378216736184576049869304323866622927031844953951587782120288681855995775423843632498064322428607501151719938096256823631917795563905074390796941814937879240296878722928160786108204099203995289678160255691017740819998551931529500471251647227734972476594666854939071520101628688886108548426649218107409486464387398499466899973064480830311140817312141572858484068953451838902876781379755588762920907066599244985391452754127552539499978217968831073633796384556050902054116458842214530969067655626527585081017812165776604277412878241857022594089535357432271277772238543138657440441848906554189292304494232315396193084700185198688034834568576044020792432062002262988748994058389737714838187058787195078622831356007101057001677459854193607761702976544666994989722216756440369591373885325452238134110719447886986747229827344982961024924795941387859494401197433891258723864665615416140143556780353135305582881713662277562655445781183701822790077038650874571535786784262674537893276093035985512823822622296905610667614404497938932435407257129052317183876936475959748753142034657284992602481182873176121882586052332536214596041217967397745836029768939153763647028968993863244579179237587202677362027254624545524630380121862343228314369603890025334183652430873123578043954772017159836555758550754472825043135125791517587588171433987609562826905549704190888786494685943369851733882834474124434247223582539772193492953325639752963084752082266087581195308958744283459699068425910235915810183155598436020794213867970141822929682607792303416221023240514127135261534458603782428318077327421038188494552975209401587808027659127538711705340157886422146939822963082949231949107880488859820326809897543562465075842975698795019049473961613921444940991236658159654656018918067702295465268273188657932240691714473707345598091672791687427859015634938714965704779111299566555146036902834871285541695785973019398228928568293746093143930433367630999281065859679742883252365075562844244025909911891347678602471429229176974884892508209406157002833672242813202822571875586848143397630032690999743338242570209614173995534487135114514843629959969007132680968899365546192552587861061538994557292376191235102340180997252339511015283122209572224211944142897058373455005618824029301302728810057534946757809102273276991656951425770196160924558348915997788330115279707801212717637361392009391522058444695261300848417756786935573048876826586704935964295873068824571681970954712028498280874782183795240795690805560411534964740257843525765167140552186663720726641469901782477271476767280250378607771547215784897398277439234934967568531497359272873391329994515083020621106976429624066631193903687825255473881982846960355388869035913631216604052375502009969802289250176033705573657503853190414227008203947607517595273889830047932289673136708058147733601091760337102119810956887970219875081235767929712467808679050436759261603856281000283276587661501411971070663063821231378806555212775279300285172885805492707678934604435170708608409025138304863129858716183316946839533241825096282736330428578785377819216308338247164786695291752579482959672820975729855400056551127285293234386864065123039516382616899534566009335757263729317315168831235327891768064788047106327633903812699647678573794414179263291585493887396792037135545079919842138008258800181126718001298542141121302671384232951492654664568677254642231504760649021505970343430729280312708876327614332520665188467020561135713872811969132033981357072788550229552935236114185163732987201191873660523611204733893223689226714955601941364751092577727362079668290355821750841236954322660719492911564894940341437930149757592293013099353878334428259711300904923327536083940059717219003169411677088235139400885349970247848358836554189368837690501375340108129148423248764725419459707629988194888035246373577380266899138534248857452249509643444969061498540456820450548001993967203098722512911622253299161698116732973253048917809784600071616049068994988715339086219008146248299178907546041053494528760996218244423538291653693538573169095672949635589277145435402293040507485838720205531060596830679765352005709361407788149682716954706793371178882194044597696195874320142534381333583113728680612791675985765858456166689246171450737592408164011461325183035391783180560716193578549256204366190336510041157000933024048456528009412286352957405467845657534566025618392885909210005031049837155057292706437568537977527228198834352757236494335417647063495121134984630390964409295186876801545822688500494589865433678848399470043157015622149956051055115630490029359894659773237979473798384338801157701129426735989739664246460674571195759795551052206054208223909523644013274482041918652816010107068923978878324006041311242206061374777104796728467505722668881416193328550205806349096580526776825242414076430399742475663999614858017152295514180962111365870072897149017457574648835381903672145242400168912749341054530961066557133579667510722051394456293095218143830481653705496638570569820703167780775310705019271754314329639031019251113091715956362525359841187831947502956194061131228946906688669075509867755032851170678160045167054656092425523514676372332070284441872227032110169194283207601395296808305162442043186298887416862940952068579395455254204310346226950990640376373033924222821627352327787681009898214126123982018000714117488285586313896117658917245567698793739841201544940832847062976947211005319833094193345920191888358059805304001149569939047923561035342419273927350536186987331970073724778068528141744988367599514081402807467473978603619301990976013403859445024289339546404727374809744804061376149122458121187398723857523053876995895708421787003363345721962891041152303949400732940564861534358153755175482151608651133033062340933964318999881273263737757027818745807553670762900865367503700948731745440300050872427469708880110292096040432588742629645926287285534481086072118253160391903421998152787702565223706719889343338476708984407545082080300083446036273296735890117342020825520689741513807100384698935035257646029675162632503289467014546358291121397217449074349146741276934794162693869408336543451742630833566618220875553195150520480992473206652834932790127395942283612874722971502949949718927928116589128098656174467657433486536450821627429885422977186685469142331667332262966528254590466694745700969671051536439607965961809934759077914524565365013388375481986780621667911897748789969001031398039955197410055507078103345978766785088029991149735176287741670857489831472737268926933396476839090719622838469256335458068488383552824620700282009420431727116480561734407260695673952839188371083532822384544043514278052980767274055687785981270018482070618200700171487049763957103415329293753777313524700547399593976791000719876842199610295977384719623845797765390020147401810307103195909746413335796950679609038477132643081731765643582819749857927459404671766059091128209717885414720632281578831333448713035903370304531433884268013547353208889580933174177931663377444650745845170875372358526480132789223988842293131897734176953118662747870581618353241821371538931035603398683775742852412476385084613967195281967031046259794372883747440537458075100664216603774690571455825628279566098221383816796283304623308478096119501800150125491616865610686050494354486851258831256385694469380544032444727672332822191053992773724492581222752534419753620728485307225974783755654339874063258691908540377004474921071359368905706293588364603590066642107717154949874299194030536494974894503479516915911062008731702798883382878324913340960148420543621722556825025970576376471970348836953183102146941177206739624546313457836738462077181993554026789509164814885356769980299484183778457282955418915914247865416503411533238798384671473932896240180287224398744152105764017302187594343950657668449526719917108860814171403382961097287832442725525222926867208014205599744213341269380274796333936217277680093558680508363598928006059178379234205093637810629464210078202777854906717093979210880224472444980409187437192986545942524800186523708978925134108462129151811135375851566321816211277300460508204248408016452351460809111296660140675243567282696417417793369085833553742300478803124001245458749701635875743477234454446322661723549355840309479170551314954873059309559848344235158914193451059773661336298579572476943596980266268448281541623827102804628718660997657870716896114821329427519924524743139685971071284185051964124709790533947080130506039376189952034620261777416487885606500064369930404466466103841619851146703840012958446452833943761753730621469338674898788213265775017125203015800481785718845211673528991695762204217829748872056856729892879924685461809614065288620140514377348973202308534020557252401321088205287637080365136341965363189049809918240729334842197682082918423033603262269965192747534247647329695273272268906878294118240380706645712667972867292517778743167227814576019005466269740812142499779982066897012164205966675354162555215404942159973091005648943695391375519494174407034291374754668945248009620997446357532445288329954933042163643663059274147022041114643498513188271587831318687920361264145768462678599890664611935208858858177529816832125058596726292384964209322789190895194566881073226558775615148133203271052236461379330223484994577720291811028383927203054860597945137230197850960333929628042514132754966386235315308285476692332743351935814133587502342231066274153441459763481294455514592326252913839165450006279155020374114813896796639475873316073981168620683481363045394283566578580060766007160276454306031922429694222410072186093897255364725511692659468395695538254306179574357806762247980421478943496156228989548643756653188575510197209553344219036930561596145217310909318758538122867846637710939317737979952946022112585646169476579877321313595204005300001654795563631505709422978351164557052085255535741772972499001203839789513492162960773616067478210255412049712947769363937331453190687378772838921608458652957100362625280859662693768033245585973635605670859886174271910384069038209344171716097050679090036827158553130889614209332885916029290983440819459378586273296388780789916919002578541008849063837862525859654613050491138109699104531017680756924464394277816005751834176329117714074052129877163839723171392284130638082512021527836580379134880023675201254043481701012062316297219279606879311081578508834287092476716140800901653008141174162221507502328837823780949645264057191178002281294860903059229542917412162282970503983546258629244310969055164991670893501312349042563611133034726291519017449884624924270601749338741535237966873254042799869822798411837834627711535643137016224017945751495111790026279517189263125552025439492094596685858673476206703932657913591695500185654173614476276710230121611504169817381522313248020139934122816696336982244639360165004041850460444028988711927248531800840981421515829913613526059064643369095377965739566016929170519810011569695979675140146481762208135936093260264123513962461277541537144539031893092768895887568949793194996750063431124461072836621282199615812649055520900778957284689596218932474308226531487263951412438320255091069495808136949323314551696816342440040775857222372818298366122932408196141757049502011032685311607180772462554640851844821490370273816777647209730331062240532948451681107551877995547555342617213845977787293144981781834499642852266991486886957863983651687240548875343464120861138999316599741349534029230406447308617954833578066073544284569558357207906637275469061218308190589493957717389904407341030477145260316958747727627282579719993448091133698036245406619314780711721946304319163850234457229590480775424900199684672087828838269366229600670768712189664434923153321900501670292136080111412511873043200661036125304485228801260523540840886339075956760078703125457975083549735082249877665177321674992943154774528430236155798697067973907477071806404105601672977145231496279225935630058003539947984829077825581771867511679336209688183959532667620114249867471551055390464365841178945878547791955740746356278630411349344436163493363719210473202471683911335332573213337177204272644082393170343221849114561197677414596538146970872138598987502083431521613045610238686529527375387463596318656800997613019000967967221406784634634779773543026535961025509971748942780250789829160056690194888809197422085826788906551107481674311486182936256150501561010275937086279809931122382622701077300147928588249482344690530577258226800317010223371917809829848774755328363425568721979069437836131091536086087225386888419440199643488158977856158742546517431410494997823435882593013841699855609935439551498146241740845195972829667597108415995137574759370086841942599795941077351020631598532817103341030858704753702434639547579992032574075824833602403225812715691041016439876698614521717246968373963328468816806437471215630622657718733169312852311400660462149106151567625555896155249675966588855462713392912482356632152418939950530300133397641207270724234455511631645865810405067599839934206699561542886203434225433454551538132430418790021236346810573797318235685354250465260310626424686817373782107409030815994717779210763353005188047196704664756517348106417674200938986851640367502046746491455999636164038381645801952194518070744843214320507651943342319721572899490468895667867946966699795548312496715750647579515708048297179673126570104220946592650004565789070122502117947817482620757477187859600915256059497635850342010574143963427040657903458319916740912680037811469039923191825847186799452022725034278835058891112383899898114177811850297590914619541288842803331221676459584511981349475962246034290520361302757092394344180355781648370105099841683021073111497392669419081992814344218040082599956758017376611351301770289721305928097590901767557851083425678910110158370375409308838906531942778149334456399628375284953987685846549791461992727223804170869205414925355248751239291476233527944968427429309206016300165221528059529749257959219719810675255162427386176904830683982700971513603303529143646083600893081441355210517823245715550060323276615167530929201189068905379065497425790009630799774386550888792599108945498909609384288059867255849688533281631260124786034857804022307604595237744767715025922628855071832724291825428194950214586856725391124963978934504047471466246998014933119324701965625453894350248145545067717113124594951319858806226935403131650721221713081584017791007382831337743917971301121083310768191878691419011361625843238348343719399846054383345881120632719273656870103567322285274996757470677182275772186822110086583962393138376528898819790540956079209487194620732705792023040562379347015507739777639092628794007735356628867986596008097868959002964062887192553944497520778016014534644238669824250761600920977282405037914860683368051963959127220275826551569373196706077626671822179112220099108608368455969972659153426373945264536064107318214153554300275174571541549753176071163134950431575903321200471008037344741292109356584073863546260803444392223687784385555227812098669124215968212801874739410522197848500214520310142303035818773817374966339493498628884220286913720846060830089756977798702910468493525477099614164590149904161410524942826786726698742935757160632701618845582635648693194786259494318002989006795502489813595638403303599815893470360754890295860977135179094568838415793095447656468921596289885431073413666280160956578553622160132686232343855177747804604361350720245235564784049303848382755560173949765128666707645059436647492215422110169327468103352318718060588976014840129377757044133845889460626035382966759754734049479041010865282659867110114825036046300718447158541556547524552030915802813331839736902088353028377135976153134731081770496942810831378022002033119043346585361084503918634947493274961554241371188555543309011146997195148786258316374714881528321800779966169707260586361196315616093310849944748787685429440671029172586243532052365898513547434094605389817621014336618144709553155786188146011191364362851560240007186599810524737109879506908977958100323340538617283872560356208435653364799900314326114860594079513333749680661623834657777956272393955867413576011703752502237914350372031257608349838036972049474037959436884754805444541545206432207535231501471454130192687158121083022546771256634895702017972823627964896431683788881298182742741331736041833009541914503623144351773080158506538886087232483702608749376689188911289528020480521606830376443464650550153036630030048749493403657557308511975773706937824581849257986096815659061958712601889011775989840634200069369931172705468833495471704942674510330265780686101644430917684161592204767374436778700553258160444706868500379113974177267294325353560687646288975469100502508561499956942687049528476872638662064357042006639315204389310115585464401291977264230786520813789704104314002349451501752619077758973772365586710798346248456302132616960810979084239691125951741425974749951852124837578771961098405639545269412210413752467293931955625544083812436701738431467898573357419990866473608233271413470312501386876885850264945380741601940123286844302743480471459841902561623396551378541563384551873447054102032361699617369469734548322044233253901898889675832464131526853091709433836090416070512522456971253089800653741913797271460240204139865433034732859910214766929217334731018957482755000402949208305044181169618636157638043706300228729707038217713791199585558428028077483078036133740820762864764052570769130748015383545158838267649280563481003954490341729413576209408970301269140487574034153079319207062627491918368240140379007091136630485589054711399742250460529670892626622846570848046900088326911592736909424367244874480975385595145474841797822441457734090372088550731756990854587564224130316159540054544155687111651075187326717173235767667985971337768929739414408111961292141426433123146032119760054728990050267339214387498146551308569644033803764716635573251812712763199185263666508269840759211108196482179921745356200166017272748237843019300861974398890989874594986329215473247388387640940565932039668480345604496956066927515480238717308370053168408524758067621394021589836336232571157435771660651128531440410850588572927693374645894632872103024837644120470327241432125232910794217290993399247114184166113852659490640508918980754171154094926903128014483349358420941893043602510202706677577032336450681802757458758715796343562062409722880940307657188678219628921076076684911813125287533661804932791082170397372506353261173703778086645951052178889574123747875902252097680716030610610925997294578873886966724093165165162999869253942584854620704364095075957749582118401596518583064744933239380368010296719726569423550046213244590391234536802029246559172238085473995295974986332257680001074052851196655999770308380041385987031652056637141876962314760676627082161616816922815329238167864118179969854976674548517989796744684527611695600878201214091011260065917758795270335395401808822850188030136432613808638742064217768678926306420344874722192538626178327529022256685145454341517617793220533250294966255829003520995832442149778620832606274106306742747831160834771363472196833959653645325277452564766014116340547165328401482980299365763569175506130455800856561299309341010349865892346421827985742993928191164653633576552465497347954123263969887852646012389042020798562440914494365442718602500499884020700003888699521479224384372636380176491909209650435036596094410543214310057311951867038170025341672327435840012264358208408125328657909216875855274911609915880361442123102976020334829399286397446121569485973501290100640001032615749072611686609842440790669212109798084397003063260322022812007493107019840823760175240839504486097663848758698803650866340698694263916065292304430058218626678357718816857761092647693036656564725904494021493956553793949331376878688834883608384579937986101276096143323416817783939303379649035628664963132339025263038705849057820599176570887476358095382670622868971612767747160202893793048728930101996512560014844106154958852962894218594238637281748701037531969733723478531279803668702044807808631179345418147187937893085115382903183201896136833588082325742547454267286987586576284268694645110250689011851758082282922126814281071629977462792451645034956210738453666959919066671212861321252319896545357046513190549055667245045773868661175807775085858647025676873601168204180931374345264514879721064281924582116552002762745504211851619477945415678441967516935042083853357677004037662943630362362086061762069154453331285488565457587887075759875763040712260400348763967218635948987768800820997025115638968427013422789028010820196901549619642256748377209672650308469903720553703097764191872938378967030048746004024580511227044958485763397386041497029086064752679457094955797337396576178693863138524557771645100109200140323441447498141552902423259132427717807793719547770043456610571272459118929181916079060621057311166989931455365147384860288606407867383926553622138308905988557131275875202886708414572153822077310919488491730324810305687441702397358165948011017754063224175816785225080538386422771437082166942073364323443283354424809313223061408865682113976676582626431951344508233951167320472420971720747254339425477545899730477241445872913015167833131934093624845047488252760575852956149305710672239866292621713428327285951223836565037631053252560214643639119004128099634640409296326969183877604250387404272589830302956533066500364703762964750807241275640997922842044024487647909421338684000510334702309685367511620664906664303578659926838572320093186103594873067121159917557906019911495506763158644020043523256624828081719337851548239193275671482287620707935809340269309878642807661740096659257838172697074947517615614109661272998201680081914022981886987843436226972412225464825847929399909377398644872203838272428040957407284101871292120324450445542542851589379017511651965206815793368817075051695594731536070280181295292652721012104959396434280737439034766593499621848684991892635304777471329393828798037409595009292652190180842543317294632716336928911886771917771383268224596011648643160351734618911403555863224403240504687645159427274190260743321857705630420199793894426471536356786860174660429896261449259568182363262407363848587432081859964900602550604634913414942887379735544869120965983076231912216171323492729985472078068941138705183215567734280433220578763714708543932921492855748117879719395351945993976245691504299060786707094437763254201889003492905647415476922906776161468978176136758854351050704849601916680880757801698410566251720420353870736159375193890630582273678150672454131944960518977716356170361531860594190595684153088077710125198656655888531487088509684674693720277309117468879552156885884041928987613549025257395442428226660952756018229208153309950072964182473642620084855609433260241726907527045957967554223401662094284571330075963123205899419841008424200506959384348378137796299315704359312849995618856818362682733668329667254178508696341547205877128540314697962615691759951976756713916840811533459327613320863991187044247012536255037533640871781931021447141644475824070089816036148610060384934606667927317428070338020669133513303965172326465557094550152673807661512450318177935110339519630346967930788061283721950356001400085279771195522025598928864793132623564115193037929143200560194713170114952966290814136787944797934370943344504461447460423260591434422381812651052141335927575089161143301869094745637626136097947334443796528390700944612476213774725032547643740743817204994806711608359486669002006217303212484261777709583777370368853135127494687894212646903335024303979773919150276882486940625626817365554683040686158253990762267938248433805232098873584855362905919709450684833764182775002365265921501899861033506829084428721051993145981416007438499400916763001890246951026178004626469658436456115567984126756927934137509903018619046410413150265439882074331840710451934868401908686459872242887366415450764767173855406221772810974302280541831065421296375217797318979661802970525803540289276788724273972491540136481662969168192279552880553299995381257059008459205653896993374175289670314507382985667582299721362474125577897766850734798023745483346718916840286784199897736164874077539621138787820079614587460733352951731482888025675207352836017438859016328904036865866622560905590595195130344714341938865659370673734115685358661245206407148949870167079791027330467358505488430363363862069762827363630273099317610898302160633504487811930388148587282835275223339819586759313118086589979836952281836555184068785386721393317823958934360579265164065345641555651253519544421212321188283400190577662559698339519687863432070355685884268431885623642918037094097423322472438178939800623453581962700937084500117762042526344301304610939478070997260337082727046195864357231883145714147011165727809532729673249204026922181171907229165037093245503975918177715387956362077339594643411354771291473307083915872974518788557655146842534779902798380340607661399096733708345966990998819273044737720105560203909687093747850830284531301388241335386987432095207875708658289375971871404812545396211946789124136429851096073709365432827987552231596700962516836083043409362185922928612557402741366727605221614393837778385280420062923786463865863600287622350792385181804114806201547881881168998394415563763000707395589460892483101045059165751336656026041142119283466451013380661510821772103410838076611677771945488440855357410979107866397515605572416329132330964848352344648755850759273908476215220640766140997997630839658962593347081396140794367129301242314572261552104441934737007909708735128362159171259503031553689116171492114592250595789027680455553628038151837607593575376175867452744228397988068817266881720496996973879615655111960463739382470345899974735428063757800801117743330721139316753742518964161470605694393632533332243431087126774583717827099867053066860910439928335496680953522599841643466003076145348672952975814893779658070567677066612867993275673086265072987735228688737002861681744697092816849301777011952203617832909831524932444172550909217505590691146731328895399245576807787050253684622062877239544453749700518456402680239510014426238605933301868953729142983190500642410813794884319170781384405931318405851992413000248703253138061652143218878554415358511781666444619943617629822154974779679849185138626127741547687249317688317493121264556941311613830190839431980900519051904014690650259742798851564164256319476908914008520367645470059227548189105885341752456140384165352581806818055160252829480147201105048359082580172052764562372451138981126468102646792307259652798204624396131132517943864419793196123436305185520381390842457884866079497266173187154978330460523537725632721660331282906899710070569940361885032844749008080565372133061046021253815241877928938527396626634886707451235362691767329391704802376676448180662936618398583359992187197175276372877845162287433853717378333896483932572047358373968337287621309364326861950752177387818102680718252880010534493337032676084173514288347447841767738005056376539374438402330268356903484744842601973877195639596052721857176101371824887003597216496945435538047783591507439429600502247287911412462512618468889899732906580650291725128088997084800996668558964718245486828538609742847770729509122567606434121819635133921808565834785039123697017337279802347423081773604736035439224866759754194561580150206365172235630947860428806926682785458255787728673913825945344313083260209629314018966775738702472350449606455097496335671012166514194285453214240697710559484063706023548310826142599120066096621478040914087796897173581926531679996829353789497428849719682243435414218121802865666205498114845764256209032880656374748018284972547934232432802571945299004574136058386736841861169892777598169832598149320480154007862181138647694820331214833546104261998506160300129177624839057071058048294295126576040224913924614718394521628929912583397890244701718392043226150284018147517195998100367206183311521421768762815662821398222493266915400654528921555519913168602448115818114157651265238394017551184203514864535070809730057409349478361997079861451146415923311618726157961955607094492483105792787261455195120408486189648383691822187306818393531794619256038077704678078188767497070124520857589257964335511908848886665859951470996538227853792599920694278948534646864573276844040559007505046305440094017159951519576972062548910060571213868559774472133538690591409712064814622857205071122757451103139021395123296547308807825869655652583917868872586866206171728651678404225590062740950924586536756159323888967342624981308284671665866330937961847185948045885525126468486146133765919886710539278254234935609962459191692527191457957330665351623204539440954720975745154540507665869766244373317897827479213125644787746531740334015533685115545078036753024969672755291245584422022040806179225562576197629032676051034464989798103863916559089387786375777887252709052463050994186171550642607299766210425100626961922727832213139870150536283405616899975835614290264154523065070365602271438168555209698145913882619050056975290710167658294081910889151370118847934765687811873491821029479071576637841891929471625911241405055533210492773716163305003910341074020392205118010300657279955902253644105769535098360950817456874428577714837812812642841265767427036779368627744221930279620356050511059058982163911676537280664993294592738389118900252666824631944631696828494480556673109405999429139696798605244672984914093258441743656759600422417439055875830591998348379578917863609720924850860604328725005038130658095818145450398670012504046834013874470376712582974804663027877323788560958735160225077570262855653487153937803110789848096087991877398542744630788349574218198103833165264772700971613250196449040228543104619145914462894990948380624504663393681131861573276848393594688402036266846872286985444101207775424729611135802500479262198549526539167894099766818479828839990458010195439652106252708316535538205551523920431219500634602317047689192474139946509629813507433055128626564091057248467033608587574683127385730570264590654119296309639165576791786213066798720012314802648792344504634665777283590537950602901495672544203439583037137573685150715846941477259195146165094921626041133774820386986776367173555922429550426111981996464411669567868441565783516288212579085058383960203937741278651108429410297115288935397515373149428242058057877996477579362025318465193953775198755542004167366454693611164314415447372369551551054144946046286544968745890087227940023950490922401238340106455797740988442680152099483529798088082010123571455689554159745252658666576389524828763261217473874265065411745539059465528568690943133875515614340954781928629537210336504578570652435079770100753375824557513279505578131739627555529150967905211199636195524339395889047673730446729103299955101169670925890425766780376014033018895465444672069086684619738701809740735557381305268803239572843003464316102598407658234742685265848320514845219381519421592998176748270504678019128060631686751549227371948734696467045499666036937170973508760734091160094693324656967180970148261252717369588829237729695539560357601965359615330654867288999906801797343967495571566659761830459102369504877281057422285149387232872408218960758955217282941378839868566533633121970784082995704124884071306565308107315662243800752995360121925292669663607485698009002297935986017183935186113758787171452930781274831234511804911038910211742587677762670567797853353998545911690098067697433169147479990907232437558447683725329182378202426175559755631653736161569771705907445395030373015408348032455243567643623058317831956018004577125287407878712092629722967574034271590851093701221328009886879561851569740821182270291336818258594422118772767906440944954599680432203132887548776675096604947229167943931859889240234648446998926666479133207981797125045019499574026158328800835433360709687076835902063619497784793452460879982126628380242996903745064192691390853982867161834551386388351652967682913836100753162390572978564104892342870317452985866607465956711753867255427996576657141189704275205803052800186138255002986729615012439882143401355808204173743743941891046796508282228995598155664729491690890831574468370919670138535733419838882764736583216892148033232426271397901526721451216517804139251390772674811200936923349623403491477620935752231633193850041278424621545049589151431021308588212298689410465389396099833238411290769891078546521370144811782437008754721523400437449232769943595666514056188803670112987531822895685627658399062200826848698506781542775381757052091019265346525668281765727039885382688405922212288041570871699117039421586568360632432798765285879819517119318156076097019478099411743622686759607314023829501690864472524958527163939647806300605518426407742510002092738160601104447115748228969079210722600927267999362780435270907223116779293006325956651557860964166476330809933560193474270669148552992282923024629601409505377525191391554012091028971732627204340615136544491657897569897716539798223411002816162172721031516137598605574043518209207177606960685692900962967695130078043564523818812827562185998510797733997999079898804924307915252957044157162400851181897274900458146341478206121681377455917493183232881740309628485674905212655526272571307071169429425136570159419219362049533419082688103344404006393694941634156904995380936605639439259393279591326187163039299763964919837372460999542137213013375107772487042368169287643926488060569702205156311235458519822971112496313242456971361969219293031210290771361175393706523864962822923195055812885136209298714144641409901104323762303993721669575677871458127218309982438902228445587409057828938977838169253510061475960300223507290521843867754507179928232207742734931401479787242235936863000723001733492607276627498767237363962916687818818577691724780124946921910170607762711334064413715350549393970708685627164079246178655266851750444479462532424234793714219324903721069924848493651766816865503892816939473543904723516283461853521306850043511630797398545233026748492175344784857974564624769651550762751147623180648062521496506789535212922705139959851834814718252024990697202871094426398914993507063085971588101661760029288586798569616695048691501084842142140754808122507917010504431582614464015827896999156571946568513296565089239489748272460263628843526355705572047852335592674308962384766301578813980445071523937916807865253726859156111873752044863227368367615541640853364650953678148430708849385199970798768877850568592317594567237166969370271090659210829535816274205487060707114821444264677416481919080616666237489544220724245570831406939571309217210543496387869581279679730779855897364185347642968192135512525081070161120602242316362902918142172823293504275091758811737367165846392973998609159217948537205404081678016960609182763556753663284133157144734125944945098376378286169185768450870413663896836887643557395528879070600650327543392524017647003373930827673054016610687542559665990209753581645663438493726660696481373805452745821022424627310825736752581634023655714254281632670416302311106745822435893782638734421971741313963218217748209734510576409222896222610060172089042601007053689744983385304527116649329707333417659774086699719522399511185403043947608319848654312035928057979165847433530256908297797339147190724312805714982215886686026935533082237203272183033400476417134653826887156513445735888742762288091526516703759710736232525352197511236410496156381233155337603919574485957038537205698646611215717991741425248316113555547957983852615464566178418909325517701417851217776308141404024931401787685789113187117511335383826291974261318169737667261095380600718678689462140724530559109018376499281029128970854360255263211797112198715189687606585244613450639949357215470873417342115194015066828354138772880081213892622178845312296769845624600929933374271065073622313202123658639688605450461118372643853659072640191924124332526979833324623686930154431579783934014774179259162166324196123315951299743420229116035140979217533655918708787899876333148699252462407772475226978666016081168451698825788174404926498197620627748465457772103792931523133802654630752209757573811480569724534467271540282385592988014111351526973671633015967596097167057986447294108190415580203981121949840544966235057113187151672456785928855287832687165417291801987129549261414276292369116685354254448998844455440182466547837035379932581871299588442682855199374021916838827949552785226031826993745678185991912178583558544701887411860803075088318157579613517673451632250380910599656003245548956188601087271238368362005921640668581871508480827398002209829748529386332559696787826400953172712304715643705391657761364306750494245908298660857825206019187846503508909080385277319456415812767580889136172043244165145852845084074459731708481656120225464698824256034729041253892982805714605259583776751342625304147973899125572020475735631862344509105060288903913049105773514304648963771249351374726333141900726219191111606264543535745268035531651102789703653925133008883235169177788433160512137178575110637141668069251928788422416686732192091848793055424490121242828882386299050858564957019843178876683289654200069816994393789855397884365108959791809757956175920159593209039868712882694472114347335445571357869968379478044356241475011729942779902447804204155550784399960707301984637724674128974174590080509603230369070003024304726119073895587262046692223802605978078313860137128951441761298743426583627027313727561423058545130629511014200264378482853525565527309284685751621580937606874529075074407455092245444700718873293554521232895194649329542882915130800153405301371371789139340027021413169866583923724511547156305706496203750051753123035770925282957774959557180815155797609313928655029152326454823050196702367795214618732187701718460112857623278691806476155120874526763132514834875275800051639202386718720955646445371045966982771323203341280676541094370315582319934166916897608345040697382799751628601530296431317860456922886713211894117702937637905328944695573045277619653497507942866036249928054293652777310596643938374385908410037174884431706230739462822278359439376609165052243853364652386264754821342179668786903641060957721494059636762909264371787250999195913083397055258551789549611455047616364021146530348056707713011440377115867295091864856138697562719710045517454500846311107019087533494224031862203892164323437643599243096845877583929143346879647289423948419605226489142362284495039025238295767205472723041517172602023186226520457875081037416437562051041581829449990553630241558140740753279129337113404549002495869345026121904555684248499855189639395552135947485502760255727168012222177528631027915352533773651109808365307989739478863546137523022935821150045743407556493202216781059325381985882355796418580470280497807627709147171013554026525940866711667073626916534167643415174031573561159463674129832027335643775701543684779465371364970516091550791532585960770264565456640693699644530203859173886615824163155514774407478013482813085887808193535759571852628751663982564679266596204967206808878120624450638599346744062456325264305127734324757704495956921060326134671102008950601472889251184138253780588330994862860708409757084324704377263701581068468674265194312014045514721910368464333198780548274074292276999741577705237008184892554398191004074461251226247360483477429918983282175971211047714747611719102966732801809317186990883132739341011352458893253804604339414041864735344245621427238901186898199169430402109843290624047236373683037587409306767624791735195799260764443751805658374756829839844405487869346503079811177391326016830472216611478963676468673242041568239481871592945793445905174495382051432956470212590879136229779462433570575874055022855732697086528192028285890876611905873595445288162274358335677894410861997483975639839461189338329738477426016491981581428723271239509111133793068826217554737268078724523790827365236346443636994086305003032611620900604928498405320317779707685422973371018529278068654062851377025760426203709440070878398637499342548190609650552094730771808478859035875023138784292932269834675177846260705516319741484981415475085769127771545562376344047075366360603075530415229785678199121458538887724033814790108756463658696738786558589501540793545806841055637915002021116524336104048816731781337282534445112606119127440221550363262071797147613127853420829539315201903839642574637813901931257347913156711275166060410232030148282490999825499357053177736407035422368426783950745090017421650300741931758074694031770532843770055814700084042669404923450669972688903065346810929894728360881593502594639310068657860469634535784402334375619787959568066830276911313253710137111972909298700817530220758424324978299631132450740905950639685826223539127325463875439571318994886120154934829333047275994001453951858566047981566644688253395023814844060733798656720379069318620714464406992976222595255846618793407966793336832626792341254432905077880023200982702728434087744785508675793683090437909828374665882850308971159263949962505531721208672956952593601363640473739123900712719415369276601691320495246337347842112797622272585299468091667383757992787309677143282591370830470403882431098533382847560585994761238468465887160567037098953745982752032874792945913311090189962879439676143479731782905927092006426099221147537151112553899943814069106196886192215306887249813596567552988572318965026311736420259832670875121135972022783019136722809741061155159054150086011537370071763726380091396770443157909857995614714395013965851270189572249395578839691480752644878114327297723559707175112339114691402863645787547871943299133191498851316871734401275674326746496304261924156560186165338065144541099298073929315616872532657735684510431364961304267520371655352192212081911058455598738106492105691287600430901305946807837613564999628104266852728915714040584384472180094564857961409069493158906302432767835621383388893444785902033866577245087392872994342965514001552690786821305457843432069024826666571377279696963807720426728356975560980434696633609924932605486972408518803941706637982511974922624618248406365160090335449871895511594986528382611820301126575251187644764386411676683324792257550057801914201815806544636570749993294305877155429502314260609340293504287199740101188181142349881385054360069197453849696883477765090081052032622188402658850702514295756630573366364209377546019937748227986068022166189480764847752542444926353436987508805429590351057081379135960809610379811546489206932805413757374730302143052263609895339622234239132722919173309512161379941514432428223951171005083774239498465601809004310773166996026100824728018661853763836043741413428885751090708551107213225244196497927117850317220472141488358350302486708370670154818983442060590635609115612526065932907736108730443025565930017687310080009879392546491067533087758239161592023877347466540247454739988137593327504113147185804480806463695828765972349818496678629141669896002147955883278311003674022399877139924509763997307999585622878931424720693141660769695496202370832138983635704035741279060760016404389836115589200784883580099053581205525450134594258221821242237213587861408509252409096265018750712485094675705734352867179365604931902423328817621958007771194665239022627688157976822127865704343260468240392408207486939784747911538211737643994551454943051287690986031995036174187329828275207174950158797002694427994770065643486098759260744535634494632900936425230338543979340560710066220250331054433689773971232047309238891297439151500831019460358193325772025574851547628311300310053126435391618275576298927517298491135357333705535891546698165196656754294105557583476803233202373789995690309834170847228805480905528154381810638345346648877328740264753869119051885624071343744455689679859849361628100694085984832916122275450238341816327090895791728531312666373116537290110741993926967956732134076935269705325924458603712465835929586620693100834159425204759339908703528043367914600028780122958450714944132766850282670212784462445061549954724245631985123508077432413616963596955388720966658881974361329152968514160095534523686107624802359508078211706363636769717401721826212486389880750773135271185066871257706180413339863163403486472337878320792696977405523359765397614450053204149059298689749881220290248160197912510898045315124471412651078990640939347234520958835799157421292674610778093121147116752619603394116613581270208409116236450956247585211026129241688442629007450842073247646085895302431528011103427176258102389901194484234432673667836298925346746875244547800975492175596659247987804994456227752230980862268240601321438665613202913015073923481459393201229162543384230032225917006795280857876394150441372610739507440063300728995325749774152511793822565045891796994674202305579401207339017279728001135079648876995593121285568517175523184475065642074114323233197657033798678020891616722880058291163973641544264355038216701477798721016456826352271257929188725351229630206472478207542918708208499358075606734148654148155627699599097780207113778121349448686591669976975502638537252103897984237447308424759639652917814634983325156996927645835087501740469380402815016429705233938849718102939466067844312701925997582550081429717504205847711267770471282073650408292359407411327818808466688967280752635558388448538628237870157316603228563381411551396941322802252163838571877094162709632431719087008596219247444522688816007723357846376519383496671155657541940086139260027532203283223058980798090757158966626003659528051442170150918189644951266867639733407957059992511971442958522413175950329603977286451732630672066445900304147615082864595740769643610509189654907930370536524188180097900057741178624559244857110379421765859365858844735313395253132158679078129532558016629642996521545918576274938007987379141399171115396832062420052496601515665795757883353581989960851216290724167193286333036726130141544977959904946044104736865442733114615507124080378738547132140826252320368073467235336200663243442872467849390378222410306734217407959618704860859328639865065777594080041220965118938371108405419150801125450188459736102046910334197126922774864504111816133848852186448112871096887000151093880695478763963928004961637911185391984824284542696767696975287494780657559739080265703714605192240022337883645340228052003130825967444947717895042341502481783784200610663769102153065267600255901237098033275310287748052611468879069612037007287614970242746773298919167043189135506083990078016271599641182825477978676865641710876420627819443962352615420697088697012997839830316064840168661791076612108417194025694086635046878217519058230671918731566716588649944765212277504558152448357567557837655695992557569718542737776903354960497619100709237026836071308414754563185383477507273536043015564239890118989885678756349931877903869081547300618462504137396083640138867080536586253815493231136560307283764929331283858133696027339079968617894092253003636924144685219035920314742618076513215941609239766768378175315523640362423948678548882502222221796375842148243988611349303819784419019369133040289471629067414133476575436735644256131704913259964064063014176811429082356591336139672924267631503946758592426527491080396245379279552963343334445866958839816485407977603596595583427075595708628693910288689445192230019931560687670798298140533133834509523265863970078402925114008704344950085611640561239477710804766037254311858830427209299499879960640588148031208902435193540849062604969487077575568746698334605224648498115584863135465404037602121122168215276553421180837832161901763519556960452283318632049310514744562881178795582091529110713927401440210272631541973437844801125658449201407417886021895909927900723524895297322569343484985295740607729357972348592692013799086414041644219765814396951258098261145554601254191421912900132321928632535528229617119919346738165980544601404236001380498516301124350762807018337973111730579817420380714149998862370958956410788822372380221771788057595742132600424125284101318869140528278692537548727293845682370584512495783055657324608261100773798825881855080553379948413190884458297272338322728057730746414838610514945363807628425496862523975793227788560696861736201577541319939198892420315770969409213090176368844737036421203198104912366803105661095332922638339150141559077681120580768243987728515474476486208893883268529325957188815812681376164199623458594437567275013959979953487745032218502058493206734538550633134767650701371577283576756351644301370361539869781527001475765419480181673167683846355935378058633300749469074810322519303428994749555871999156757708961423469582038099449518179586719265710143797650561544573099167441489703987292717540868260694672208104668298466455945589502649267116685250643304484543487904253513303287801636247915272448590166787905874352159406836520801326416132439192734711809250789744248002532731453523523696881522602047854745830419068694833254757972053755312060883388762264536771033364100325421123808346446140032821821708334035779577903728114712115092041596840868413874003653864158906262282907887590945800649213951903523108544985257483799499338543638835559612394405103218906563741599260796897616080906214011911620092310631124636472205503049181715797789528671605767798013176883331548265517281925930268122893396614133773628107976273793713951630492964585778399746469265164191567518582333931680044602967996829213321292513179089613734311386903967774110900420644610286599830903643310113531844684451356685556101978673795236134914253495787050846339380350274919889797604846353819392205401481495547304787609071890581315325281507945279539302428253018327635316167799823571922879739078993153458249727486204028444452990511943665047373885659960035269401174501516978369126692587061794633204092919390617145163684147761153879252986887602873457057499553471764810947990155588271472885121664585507079528644063793262632943446964373300360284740431841629574819017596671080154353084722295318908470347257058942449441851111692968306924590844016357382197014602953641347011683186276870103862805895727984175009060763274814036587365772711730887044950354767061153613295680557701883066405287588337472200751669084136365168021098894148288700329759027960470134118516581872240331859829784702528830030648839882292903986564028012811991936028544232840616982789870055321282670047775705742264089686253968889924453726171779765778827593650640588757755224752616851363051189694387578879473165103460390218643948353615563719055780706836575765458957946757397347593290724802051509510574458439122992551168309315791872185843141406719771828022786427289967165206071688862752017381015425755064724195945622165108871029480504179802655477683942818111938968872606323534293547316200320191924457227188664402203442115793696657939299572883868275398291886330515639609498303021561073750650565844634740875069429207406339518985890892074119207237411034496494007275170942749198001997541677060628466572394602464939344907714337514843349970034415166528439295869004794360026407545268447109233386276356243274042326184260972805239493527092390291777523172711227029795384839560530255449437921016223532353363951319473293253554885357282342516185041361136993826390017825073579265524042090479390905921174552030230937869042984493353653894529565244052113804335215589484055881984928316841712128899667337230079757015763162549936887519149346922743803849724593862721257910334593787838347541886946058184220745919941707984563774009049923825194678061217444535926207254273398219603951541966248896486055756692589840701149152607858921555783787947149383231060735883126381752799651994393399044497828377837788815229435890944260817744396826849151894477845758402385353279970801840221649993151123236927363855197129371758668704396193385813450447777119619753239738689981165589000951566804932903969595530469666651906735437302462093430924775080038674912816409520821815703793835914700636999523848900755908802378197540480981561979430389727057846861697841381906013563495112600633327634870200361253093769420274321933433902020977338296468924180020061806030900282235828325184192036495225044153379434912597880522524579012798678851906601569598492265002992463198275196536424501425952096841469944673231497100497610407077919973445773665996630112146816220745463193275327917246454834250504264353812385326257669395091893394570712268353130109149478887332722579286196249927125865011532788714612139819305962107856819096655495163767521804458085730272911601134009707470551447295819350293873568583862219800112784977020493179599288926911099576329656981869209804040782034460385676010397499461640974761303699474645686001309847232876602999352401349476267346797896987880338123535552528416428139841016524194480678486073970352186901679081740283798028039880341178367814405745326237660252477020605940586122034493138838496078595464410316170120016322617038214588469233167717052617249876082091886224482941796972802803206049006687745464067587192490248997704698024462788825347005850355526091934043630779689162289210753223322535692808206677908304860744183400695656840906870119239584785107419186677154510209296426768507463062391825562909490486435138425035124231861034174947036227657797854397313042358115251967010392942332402031624518728754086689185785571648950548626908978634533567288430432543888999504347064329793376159811810330576743801484871794385734076171749656097341083887937771552532577581416639022500033658659985337828026644818117712634868238761156622938163600459349083068829181622768936662700008236539990241535518159791032336550605576510885708217774082874418957637581960500975946415634492491291542739834954241232483543508968706809543725358755833651766161902767777168626801075726256817016910865169844704241935135599119137375879871301289736953717261612996579266848931885693246030707630847723930403487530627077442704086385215748718338215089404483318641042152548139970984311462798167852237881598388302925478976571081990442806962845236637666037527396183014966866289036918414442179129565118649775419493583479951343435201688279032661040997068423408955658866583241068912688992366528489689176376266902747610584941856408083877122032061689761910898918391438802123912739081372138172949737573912772101859681016639048817362947857585457513693566642814679997793625760714321107837276421215893865846659434681069666578136715119116359121768715538246476932235318544168110047317806709213889573522892148911287792887048618468328932157851290754175233254848286843506399672657672617242293671957265585531871210259106249267454806992552348864843854339394168411988970782463014690265342500788602737529969599041326285274782200265801834094498296722564895781559109378815660921235324820319266146531531333853003748222793167732661374135309616813806240670596611649999917539939257356561253628951554040753861401485854977247745426784295953455374779805888311045770802762301633907360541941147249488808852295703323138586826929914351748365799923380966713904624355789019494801139186350176612654714999881809843916397851619136107513819444118974457869615327301069550999563382761981826276235783545228398045704966173504085257560762563977984691873540799682137276699129882100410461019285466975712006196587567606512369456722229036899158570431270146331323238790895215951415874715598682199255068035469910653494535443103125288186632467879144145566982706756959911860388587909803203037374823271167698916940122087102786175505509209561857710454906381098283279278342438231442556333799686955107931418403209258854757260340739559666261579407958343890851009889336050673338523008812450961012680764197905203728849216790593271507968095990020504901768125809629879669959256348623190322674665902348251901307505596880204495930490016390021324602716599287995024235726123444027002239380500293947043733403776333899890618593311250410544123597377582522466576207778087856644569179429113945672304201384016216325384660603610743147799057076789845696325989652492730287663198462239746709312943215352506829709223575366429000732694886094014391783189642450686160092378467598327014775970163092606273648357229181042566343164283182088243228522014186455764879657761899703637908127078905761394511454623366768670739079626370087194570898606346896800375716289118841787535660222755380360508765593175184819067641658859172245719354897254121861881237940951918600774883211081155325305603596766286328584623829754894767557109146763977283709615660294832023927549310217122832353195771030200973873417870449221800488802419074253582343560992895295042086935671010214750379308862933466152534923514384402069192105596343928554567417880327871596541050336033361798210680467367481990040593343299804243159259134132190476136320385570156939054527188948239294893574206940473044323378125664338238059389577148413137550136131550302896220446829566380468497712708609863688147046689637380843979364155889311497998686626395861960951086759431141096063204316945688555847649961271810335560758481119844300505108982893145915141705630727634581808986503201780791582935229155322746861930311801628928794169546411086458687584031691211374093287328312557180230842449220102341175537454894077614850579376829078278436742060151389629656049287063726193002209093483479338107676890980225365917175740627925695455771082709857266300746813578852512858760041417386243668177738245712690731627639698439275671992669255149266673379572777864315383407289963963953924464362991606466307211741096363736664188578831153996571948765992755984161293453640869236147416199402917844699084486063219192623444742601857625089644949950081832047536421838018503270570808630257645017645875511374259320900556232477580480420900847774330178827675201210600174514352745478223045535463133136596507646141766575910589535204400900081448983320826204593406862735957134109702490975860718982386562226587928991078005356697925219175028264045944061855148242011977478952577807515819230777013517351718398023225139093653072594881382200379557083505766395437387068112133502952706654401441417241318668936874118610471015337051680106368287104493895112691775732969368802795861388735539988107507069271929775309835364576833369211625883307023347045630093425357231837312801468187457961011612548107770712930629614280263148191801217300940663124361299223191629278786754513567088239591581354773700375615569580774283497681773267952908448108214761476717089318027534075959055588894144528156504649494316054357344492837315606198668242226489558820801065858717745600208354879759989632692343927193349974612615996244415407635594235188957338045354065737736817210700656247867762347172352485389266298867558143249690092205114070697719191349725333067810195185771115306100836418408883154501942726968181958942271035893268579647688126161465733980139127658506347432819925181746300037135965427110025465365769289419754073075261792816989515632041769774544761820421696490347225067935409750719313846862681795661556376944120591279199362993067003976200068318189953684337628939304740106555272034153484999909631813534856612496874820549012182718823205011944314213337398387097551025600963690331313801961165738889482792232970328578017169632482327226559478284404188444350885394203063716971701330601461851075366494708492680654987804650583760754724574335607695284699529023932992445879117877901423989717830400105496549282185425521454719343085653758073552593524233538041965530534679452879564432706873491900254452426139878014970706286525392234545511058393877221610783130293174825302117659854355189838658865557593859103677151524336836683927155265178578104539939220376143077844943183849819385263458311383237157118063702844566209745362286338290404352530070622453310072431554612163864362593351631515325985943441895317498065648035972416505125647295365993226041134489406007343936499761518561641928135248547868136950371867059153754797706491463499087546327437772991424179772175636317318018437473809208039031672604071450771706529513823849646824121406493337105900447813455422000232857236391098296803500008316095149940916835140641673673001822554662572431698732961398251753213938110724178585620435915886256478332400886709738553451471191064951030136818416009815363546920206612608894343386508451154355549009408520648612725772543876345806575118725147551765457278932586501414250822889488945207042203559295072577248384263444540328470054646996552720753410716324114323446245181544586293800928679965741757986030616355405579094343237351548186606663056040575524516580715339491838709905800896726105525182163218056066011046388854143963135353211030691043787552611426781625644845422492681792482578624477011184420038051680790584818714039981581442197466401016063612313324223784220996377662006885047842975791813091915685103642184152709814221542910187062189925654891008874174124308069905802902288817494043204249544682256188259458828893727293230574744915472653973785629950084465712644738946842799759371708148967491307031103678646846524286768695654992365864583912796924081955903439706897469699979459303949563303703426177357947992941097476792427697523319043721737861947983148067397228668107860633231127666757166185361512576803783694762743180869793216306686944607971627386835759532460302611165173157321020928222514816416940406893681620953195870821490009945855747106941259702847714134845437407737160903484475231002361975034365019838483236433552090081910160503390291614351795704700022302820418857562385870967830183267561541413176984709089819505322266052652893775798795123516186444517741571406708193293602235200441450179676713006795355995329057259512274126306146246611842676019790208658133808122761542793015781195287646341871948594376713983901534779489056964005951919200254991618058166604051456555685235105837726437783566605908613873451383598189202264008925484958191469083111710448825414268418552554797745854277542808470430363322511253185822826845549249575093563667455967268424452018974251117302624074494202497529125108588766557898719497204414193123245438937206950118827704786831911519476063926595925755652351345453959859453195184989302229393941146788404473849073447037935426715014364893360988255119864415022807207307663845015125031655257860095286573086795939528601232045765890844635878207798386819114080450658544629250842477367152036244627117046550687228192260064205308842610420893214108485210401891382912447056271500786207776534877608680583016264724653389878349036339871814651714070752796805577625708252993126490881455899863692494794521637807245612202556534290069378546703638613185707464589533150745211028020031311291427843644555652311835763381568475701743380943816661836152343676547958770717028709301259740554823584941560724911780479099335427252118468986229643838529249865878108871846613168542834632026183043543879828523030818340330564441906535405204682540460048508365863148039900045044689985407586240627237626815326620538065368080460439263547531650273656253903800643707128883262334605962006915046420964774487664499560463873373865131280193634117213698290802317262126364138179423210704807621729651794758823279824586293358717637172271370638042137148681211656324250704164537874482066672117190137500692016837679504743065298833680459128134165141081733032898382974055741973421063388516248297780691727313772644911224139722175027323093893106308839638032994178021697220876835769071138413959882154430715897089620874627254656401166135521561905444202745897446748591816104756641090788330368925263118731649295264035127221390493836821742375800653526359805326649651953901409498235208815192457957180178730086803569394714313165458178040506630801946310922061097572889486946605917203101822262333536250216737506362191016804000317454572839605434671373347757158741628211258101284065337554045339234468162967239849705130540537448684901797183695859760387225567702172947378032113782858083285051344729342164516064677305979714498652396319931950178382714022728741102778513028359676794754189495799539905524545135265468758276833266977775865532234372629571848295117199413175095376962922905145273469616397328273193597112756147007367858139609000878697388704531777738891101209947834008287064878911979547332477633444036310210286954348714744087996895334514125577366913642591911265883928620632900743442595835705348535706735448582285525026718835653350960644315849542206786950518489986167307999015558285194599457889651920198711018509721441127385216189101275384105413467415034923993244146862682209334688298973785865368399840708533916558966840032185316200573731611367285664013828443933158514820790071572840493425296331086071641319308136190122892482563239145601316273787032252414123087083850134998532849233771313543188166380950661978954079631127623992526993465237776794456456105157920220070707861538424190136130011283882514567357447998259071260392150148703835978244975169949545848852455512936452063017854640702952926336769601675964995251853119311406851420389694956131487447876685475683533413237606143423133557130038508639117012581021557836089847043866813695596818221210827171442224608682562755862141855203873949160490930190986795128690996065224114950392712378954377528234442960157205834330347668464257014620308251878929210743353748529474762014089310413810392534514710981733117793811174105262926018453581800667527955356814516199554843910815789114119845532127779399045057106485563778229761335476133832077631793737071401289319038521718789989324615123294003352855688878783280840726329258263552242894968391190941269251296550205479560763705302562565661934730958669050186266335314635680018165865758939074639100703239371345721897137619636220067501965799802896298923272369067672913511839080382842623797337102317210794323547940957879046165305378355681868384300233832008631792387336402271009316770003822686890176368545391166097807173961465322324334028007878945693662887985018402767480129698954581509676968885116321418571635537104707297637268709536760133137914083593125489383924246224794644220443450930116944720658071605360462099700792195187875955227205379375038863149224343158093380407675577881956666025425150892858611516954160760404960807158412210439468224304222907898188487016922078522844860581236192974781384448207223519055743946736270677088606645828150410577746331553328443497791948762836016542739894786865642884610242862458434943428827618742265562313592185091337701132672369586492076214552925821965752805224976287368387201315042667252553007956326256644764622405362991511928310388008450068948216575302626716217924575389917053487599059757211505376654692487119403095130754697434541355576576624584784330915138171772311835452128818283344562951367839726451556080966184528808024557644131280802892788064085442684369650562090442303023371492081380633268353651409905823275865981924377552969552043089085966100513182226905959810948549342819340578226164526740720945182349599037033212358375235535863898440161327687667449637669014409960437620932350929021298705159863815769551132381178928601806110346718998854573766886375583533050294600425177907124544509219934755311338915633069305607892355852707684866771181516851648496500827509805120368655686963813142732163322258475599081261882047474915424818636167617341640019205834722040093515331151648591881396623844504627487110426064120008751014742895473918816734941750938834918138443789792843180307911446722721616763933891330105555314865423442123544360592625444211051655705923392220746124967161649777152397091355572041638236474442192054626565794636019277134667283852566125784596043709268651374135327556102222122800800074198430622700616912652346393639097142334901394667185363566376362255848847168258401824127021330831834675366804599898547430546015499241381797959209825703050807281775998923343035298109607555391782238128622041239346408488677747069145067275981152384240146900732025574520046814538314101640475625006622078956858126176963842709401876380598666749412760713848605816319422294764959760153538500967523691250689144577749296930976180754302209864467242554345611017709307163528927892176469802797733263115449581098724562867397716790555279277942550869716674437325306080864308736465222075202833808221575554008955156404031538481453006375887695018248561521201564319855499268986798630205477133206354096947225396776593008972601424755535799208714471565060231594719083457215251932699443770249809820170055321041815441902194278245420883194465562847876148904922708304371005038912172167757829584600864920894766349253801878228153153055381072481330317086444965428942845167642337036437416887826383746866044907455804559527281604369974790962376952283659568127282233802135412299022451599348493865394855247859998599585091285762114598604845024505046743121970020064450835915425620385906756177126083248709499584847287316082284212795333677071496921775867532639984985648406932394272307818635745083780953829983074702103456771018267127339096280762829131569460090813768783295352885401801614944390426504823456042891583628533580365171768947004007925583455001361018173744730428596819250873508209314526479749725775180418529924428461407653579844398294612401571765328993265101230714982485654643988048197638221494730809180051460258814644262693288939703136909727751030255676469484711668844857023328400029718886482297778255403739361695547209414080532322616359603027793826386338700019212185348782329477281215615204466862457857491476699382333302523552416107252028333498432560630499857016866375348131730016402741416104500874783568377028403453399888204517654630509996012233202997950260772918967219741803342566292179513686137113806069708887272133382422177727210140028521620414628624931755309807615562131477676395616714774952242060373633227894670931203166848082337021553132746195893692479618472077054582416750418173686385202723303031147928477590285044063412536890726622364028800194549372190638254961645145290402615614047906946421696052383810914107646618052309071739619395592111050805481161500571692514426781508096439867540015959209145997789677181126734934027766388580040860377122427688649059568227964014813881740450134580166683163359043146278546178733732140487678837856571368302515989649298250441333058624512316683985945185403029909505938852860438911157193265030492422830995770860710619852569694165870922015153721135445322557016650945445083496914210676990124857690840465224347802452268735082267003000850521366315169782229241455252385634995357998292032075616594109282100558878477210850354842243322289860039864659928469382815727347149451215315337588502398421609890533513569304013993792904258165844223090332395937421437744268126329579270741034060296732815400806865800005675328383360316229317659571415752362780491101745460163940717048861990270959568146720263447507471833168926569538971714165877932651573950397417398780134947083596318968261080429322243341929934665373236519743486945537883765593261670838769713012294734689025602903857536687497223133525645730902470929370466482339005733118817036377784710649250208874523332279807974671890029665346386500564035348325035636475509203433295988914707076129782554998163377396849889463530249217011853841931804190569323286256855886821619413497455881603169954226793647427177155415793051509068788545687316021439203783507175208612748705192049842951961609497996147951237561120939886798193665840055223391365996973733562515026686416387283193776885979625953945998208435652941195281003925159332535898638217095640079946147638591437196049214136061106413316385873385833426897979730731241367950525010149777803297978422348640451618268619203693807136823120108119488764493659249802210973422328565622382045539586912763263797880650543412505055957212531594325893337686923352792162530585197940740463723378455797264828332663402139984115201156836839696461731699076068445475625910743445826542016131324121917381124027289458071130432075559924438969368856466824175939572429274255256392652576956175644424723727470296877754119442405063367711478635466695015171619457776013971989539493187076513305801637311771433067100505447973665290413456632641160660551595832319980469561147535485513361967977082304319602206474194620823776215221803269070694929736716137219043662274868046350093816048742161624822787393698148090093099679349987244116397570543131904368553908262657016183848245860142681631666078103327969024415872123625133449749683041247930606088909363216039984585971520028469210976134292602473667628216923198704461213781960756199263859368126262074301842328958596319334943016351221713435676054305470469446149939933524119747272606269858354162850232571547606661591684533881150984129554012040764778885389039205768064355520512109325975832740900994992387928817621673331987219899118254432274223535311313088514419582360032650610995696869647785431428505855511344778045036074857665223923882335436101270256196609979903688250572456550602529390747648997528221326912658564762116536684899848555092522011181269680690009954666328095453373586811186692067923584950165642722981368215454232398011077575737481552496894020081291638923198308969026674565861750971574057654283392065040415186419176492957377133566273330049800577354993077806742052220813802300828736242819361039065948810394159751044467426589104476868861733732222743613020766647520543206539898970415637639294034928785913400018380641915123992582545944496383529412635273196886703672368998041196376606987172328725845720891843508897903806599325624655982731650285695948265929461250625223175887720951239429728415421392870069571859093026502837621993905687889584426091692829115751791523311587683497120174665263842474080182455593978997665006206798486681898607633743979682730701647482470179084655219123130237193640845096410559384901163380318863736782404009428049213732433139301964899945220672273413986279237605884875135452283837232077670629052492172511831126263632431423256632273029748989285494508823022809395219309538145583003003328378259409371336730542603219449593741817587536495535900225314480544937377754293466908089814437365911443105275451960045276440770893710967273140914291294431979983045978113428835126133320856003518939597721934791049252506341815319415761661466185801333442395022600185381590103194840945910779082471232802359012177066589598831091972564546336977013302299635308185353209209172585270671124056547159777258893542019509372457220868130188968939552585605009277236146657198210600381049372583317076747780562040657143466397628905560378727510966687106641496994692956751597704791066381887088391320679735578129371616388202483217119001014491829028010585287086934682858707839930070114023229760481160938531397903992433450406725765296188062488739939648332587272126436211087263402811094242605542171058770174771429754110280640528821522762365174055619034326153928230302603282810271660186695284964556836841066995219739214268584165732229641293728524466881192999913202045483470043862671626515942512746091174464094860049331383358117313215145423056053138047836737631560910153630143591225729412347767259485213436147777182517312850962154107863113884395688244454993097708714236552603802324289158084707351396357002764964236904699424999505532612980926452708247404555652944769993937994925105193903528033510672116496154626220926993510321426898762173066129660860318427510031793466243220277662100469501720855313965434436100626490901256520879225525090011676360261469258287579321207729611695540305061807084163388224308066982983994967005429493233516478594512505888464659220246536063727317019148078008395051836851452921830983957739150104419777837489196021731382339492867172469474647116075455197348704778534756777877466113144354261358544015337698309759004704385541596467761966328948352146261814612309237371941191787963017816146216333489742417961605336949380905414632535215152232170711118079665544840042446312708282549067620553266904858119351396972686701998980671238810640127572074883667346857382214369810380454775008155554815355971378658365810783252429220582366399430526140294550168110024135303859889414963801748579533068168605567497309183878790983405005508536421877301748191279512985315709192592413704276466721321242837724732581208275402460884827928864792881229217250507953234182880226267429083836203388206450567744627889396408483307306183021576131328761186609887281217951080690286293795072054508986238987269814311041519851576813478069321910600770550059025906338889453512302290033204092408362545112598784688076449725761324600947668744686305629361428786010745414823872733482258116334986676431668545426928033764385661905314237997682337110200182231797048307779397634257949139277887804037590621415750320284081927864826371580751255894320135603220421581126167683885670437368118602161626350119731321842381299898740278244850280566700285383271015320320218215764232471794986358962339497883272151572906169047142723974168165789806291621707602021837202561111728996771622905645116825897111428438538478111574568090578244645538566033088742272528599518789760172493996103140983445459277707189779144352005047264534048611100910970061737506619836832550227278105611556532680810694386332994796928798916701810095694355067019701125914785607751473265961039063907826569263450675881037091157508573276735887673525334646487612359490494153961488530208434435917893504208683471416384896287723233547267063265713738816740983230927736701820719983298181525682256834912913290459428096305308999595202814340994978113804517594736203287453733306154334923310854542034949284229865582229890486406301308144825037020994092995827934640373841767362201029791578500261949169444557410751059397717804309043792941434256431017990416389496486139497182148195550437893457370633261495451276468913817621119581515561722470573200568533096300182081920170795650506704430492076948939960308089032832692878766567041352246961274146301488230462675413927366382832924041130287737180078997910844952970416076661605987088805845106191110180425406125839192461736826992945642466052042970034529742476956287383560179232861686769327345558362856662445701261195490689083409611151338585196815444280630449799890529318130194013391994085862301108081330805456389592487901972567993007469443675304264263692129442800375985704361564098575932863182769918275518814125627240609981237401213453407215042037708277831624216057024800702883187159809322340502355168580232468520226836534669326215023026144598364372101649410027662214907043061613262225053908038169747928101437363180061525670996532292285544657217522093777962033303861333137626527994416097441741436217868141997884124799729725561072165082815293553430975825383322503899091456044361777247320046052273991000207598427305058370808923548956097592530940634369491458375557055293416962640877368585510527719496029590781530115008592908169678196463330960354623895094792217140868759286756890962047205953295934979413717732655279036956569284880246267603120615937637547421526918071003960220219647297546515321120686641791696797463825327779173892624568604737500892691767039871944615194871645506212747993076126776293750702145510953004699461713948270375427814611008157204869549522829391531624021198588382526432505441626344504496297897079172758790861354762758742668125544911613532595198662948383498287644240922314504063137951116596095506144202159495361962291455223426741481677338795197650781241414460466511297197902207314668594424119824902798352501978217738362446851594660081545219803769592671517220529783545920832949234073593097362101735601060162125664409517124852382018935504533307092005750402403411245628221996854917124662319752279879791668079236854855578206182180729854757248959492061604265019922762322351332414658107467027585602017877951860221166225142998157968168550816932541893617785417935897724824760632085979058677945863245707265737035074953195601725468457785354742102329697946129080683520212773886232255571772199529615709268303987967490584641841814942351703560284692142455205795961042804471605473181600636663154944691537417227322506342369572576110675952835277016629133039640391649373242114053199875676921102134682140782958666623485066851937453344222567340721549613708450147449675025918172402254136528730868094871383405496518217540856323590366316538073998415294870427841031575123661109429220638856269381873022847783729212722073834978773649430974756390915147147471646210835072199066249771095122449406803558164517403921509710815410246826207855297170571918658703630228942529486850930719295981674024349763838243920743965684483883712609743472672988892015165439557249043577826347766778894580470338650930354621156370664384850100252160895188568834117016561383568786812027102652076521957102403059658267870976274515592639590438593020762425570970277346055919294252003412244358469877916080591754227235058991683817417944083405638104606181053997604331955708600071491789516375835252110402621072746040556197690545639238841811542722179274853545235785287524274999085015567728821383382556946682532676374811858891429553400297457104785697761326575392165194450351431950232420916675006461860247630925860767527128281028575731253718070610483566198921268205398417154343573606616430096498748143830735841782562457266927065265664560590449470842804568915060178035934207812015624527420347385574606230810220776616942637737274207281625362236976305001159333962568038452105146925526069416287122308501082650813653951192914402940958489441259772338109471556982540955993838744943771099449555612321226443823518362247346878591768190892759668208591418010363282233761828830897113741178556202616280575585936809039702064649639332915972352974671352806952160845833217748497513729077540636814166875441146133912623984669178231125376123275182185552228392849611033777279831839194823853331921535767238502343496672896388817034731057871440133099303333981499811524397887679504044168350245120451224370886923770534596045289528032240750868895727135460451783355634791187652976916340946634564726292953189368762500121110846056958309003562038874133421022756607757336296261838634339104865396109325416049621543243460263369822447637356120059516691453427025207016971521358498718665455332811535001289258383617036710288462983619549812625042170426835964763754188173734164328049717863605126905841419495605792505136461160733235340472854549193479486397890367700683869399558335022697999783553444822061668620301234757900567318388297247274422418084086896660841833530673222514512815177358318135987662965081062061057347899919128352753640379028128096316209180321664284731607885825096107436512011598490241868131046496028189641526996219388255733496459519973041005736564967811945071600517713158370334854008261023012496258471295371814197889256707987943890309574062058717888914250869737270436208090468255463804648445576670251248515456434020287193333367744904448885244140040836327454811354775292876922819885801862936852164287900948038888035185444081832244926385752080500213535302938743311613209986202130144434625342077535077368632960439889403562683634866299596204371370228585428213921176209580971263534065922489314642615608307804792136003035387355119518571402162936265428219497375693979904852875663644393786737995528763392920140586022171327025153576998426757819647217634298851693530621310723781876829597067411606641470818092752178776286023880507402254429953071715921217306926797549299224163706683604719578851420230829655832862547934783897812396830235067885267024142813086714664681556008359238493997263326234469223368992959885805942775191822274839144503081015096472471129268925444566590280730610485335387037164246167232090049669142664306261162970737645975409841013799804401931667390127282983368771050805097225320951083794870701213634759781534411506022475788717790266320133411079711029913248045367053256862630775270937744029096730544071496221617317630742090774618287266011947661652937338915475104949483789665306796119580882064547936641058866786527660787797059509079019784747240535089365309618861018156927468901931293254059969069055514276367502134353816095611472388464797455923587758134526280378307600824784609319804583642393475335950366642775367863931332310500074610822958937602011048092024348527018616428707369676496206518338877303569423744941157108569689723201634562782191744895628031633443742328537449924321023147745109818136307272673471081739186532423365491205572364538688149617956096172391982590229614805344887555534273397883876446433129898268297005759476849466487696824447823404597190910741249828615323959072011004602602946937499811972882113950118599923642068625497093934720358019768325969672822391499006653523881267637056490237065349959868917337237778152123581563108318567575469448287197965767537208369039116272849513377485826673295991652381265598552876321716508867987889379733756769883165319235275760116673092563268634420604997272018168611667465585228869562070128198166101340413687641649620742027955275890211138461940010429457469761079009071273841330872601676596410612204711573634041454029124684262665087934268804950982774112966865387324890964368686086994714836872303859903901803268888309961505233181609267440160724990847615186261340032479450376003905866306667422013082796448245305549970040113609474149116966421201332860412711438106772222975491026042079936471226723288528280025455977834754527796306079593903716805952110705981283442931734296818375923742287721203057281030722179889804393052918185084270911618540582983366645134832922762490185819651704082449327999969166768186831565571911788409319779060986911083625607754328926769567706784958789208780420272705843301987125470798456466656864709892691840257937131408288746642623554742985306897092482828641760739211552518568502827727146414927828014656817324138391570843050197972325309459941408851925090167840559689111957736386688453544721637987554003410723448495377017754252360089889117312423322722511072836953991720072806765907886553309752106104769038140160528278978034496271198966491816126422234475653812163658108033848128099987961628188605213208177330152408427030742429766335223488781776163110480705737291806222125751383439798533693260751456233522418933746726775973336421328192403025416093252242209872257381718284694217222604205139128430160735466597861859145600544845790321278054754616138318016593826917707644962534836682021230603430353936442834550525940852680693967135242306912908500741227631915726944030746912024289786830741791682016866195253754291913909744829651564239884714674984277715846425938308944177074695287040238564688533388783102723730526549888429832986441194400236878921415916267852781625088363602816603045170249966907358814023933069447914694034293809361053358542948815998491958853778747616557814706047422529910561082987888620874048356098956059822057095555385814999804091987192777793488302704425464280313618300225400513424784693802498590188778308847413015912517872326125977451651628078418838402137150113344476727704000243446962503395909409941497050827915564881984488853573745106192493107948692864332843919280777243633266503240794509501979878620639197088483894012730081705897887911263929911709430173523561325939146533440439567851331085715086811940993703346642383686907757240335357884979055322744521308534201405930785802791707966920400754877496858483990134880241300223693367659248827243934545936211685249115877561555121565647980662585532832369041603462324289741520022770230533279376530325067638047556583736155277994769728254267919399536425311438305289505003762361639995879248839237856125646357903055129213318980601197019601119260848949438406928649872969340974948963911618520211337975135630173923506603134364490884362361427084317102939569946817238284863291750136309740592054161331386144539163508930026398033178544987338149073305265160665916575800829132013044995687253976878187011055723186749512661014110537992286928390332320824387278027656606858563932368065544902129332303955957199037358871900700008574493940581434847245717740170923647407043402118600195888641585841052682328065495243338047555792237056795949730150191699069659797199941854273213534935173357276110686310592533062751799246055086930128110261009417559801627127545257382331190514430215049768610343187591255602871124170852047838914097621021388784073208804806928443840593211707829895490634944644687700388363369397428078380588134106018667333339844891283826493758282088833326944160131091451845731515960851522200475367558529284356968748037162246094499824431497949902709974329647606389261480354893974870834752243612454362472083500539717664862683928045920215832213817240943942180771594708950994761557079848427374674943580687153976926709432292326194187375134383369034369811045997965266246309386668565075822457234388399080672950364908606323582189188653194844417638317393452509640316533653410528873672531730658667357330799420331246067662581960342362461974524699237915868270828053972351218684381068778050368875375923206358411915527305235724754015639247355734001571479790423057578424498964609737904833243216288293434345119006309290777050961209068144395163246969205003809026450774275977425751890649286741215101249082233251263356970970216790806238660418200315081567504922203268044237532242196567100865071309901010445132446140699460748223163901177382680433623185840962943550181217654150155352702396111450974177397476279211992653101160050953593975302387950378569150332699659024045912477591869023324925245980999061569231600904531000687701836127522414158004270105318927922209684879284030678627785511185847119410914070162603472106462023857471905771341689196080492056610462085726807023321778108710560205055214208984205948571943860965507833719726931185825145486555199473794303069758935181758444386417291055726665586078662681214612172007173243399773663670413452423405745119247641493372018279223473715580012792773123646429670134923690306863895949616061561597868125100465437933636961088261388304006241683309161906066127454936769608774252906556148839144682020889166287410425974002443640060658012628539616176651652910759827310561692500097510894918767961313186099564604571370248067943230666683861931351150199758701175585067242326943960617057841873566365419224914732725123352876449991878515217631065298849383652517984138719563284293584749719653549356692142947101619614552735308513050138268398052195863330642913413896771568607744730932847756454772768394705775935499989835723230173863834126590275468303367862857474732398064626643098562522065871383601643164365674066042009736897054860707015325582054696855731038534511879176765866207975328969064927631673556649972924642886478794157910914686221613033718279687838380074308683218732838507726510763825438835056591607518611504056155949031171195655491334621870999085624772585533326153868230597535744159109708202854975456694720902664781721148480480979924729093499293409635459691159902966348325459048994744193094588889742595447711134421466310993032151802462177490886190842671785190678956011842285085250350660416334017773380242366309344291560900529446474050601369922816014823570885518223576033592204916371333086609326580393165416167799478716777463427099026542776771212410113121937820984041905723749520833228808630625937157420233249396393861509778098701057406467460470330005258826874150441417762567931125873731606613774683679739357367974943015082548466941521927342194432280705903514254656995966302477083322766035830455801939240798005471078920798249618712950424223487179685153221833636884523126738727911469942484931680456754628101775241921192440403290571732644546740878846639595533610076534296562093990891025728820802134785566845616364266045807568041363971771930241883155297952470830871196171696865324590835189850365705823144322556773304646917765872564397746035865470679993255033488653278702171560014355961989063416326146467269019698956042111711778902613698706120421677738424895150907529345105728097714616708191311597627168194489300624701091474959575227579593828886543776322534929935335845984021518014720428355032059103559628791666158681874709618124743430114386063085470396042178935156298190698189684743364849736680998618295031754695325835220766184672812570895996587587141481738452915095093028833306116787698028884600160139943475477880901107478303672772757625382923136260276773315672325404027014901258430020048369352616916712763878041038155949340379107672785638523313526306513084026082820596464618371316095780116041701829321043447880375649440948504218028805363858232423497686184137460304067510043524538476432827421924475900467055033316828905834539221154015142517605954508972564990692034191737749890999773302625945169667494508303204475512039788072858688164547764891760191992961583171419653439703464084232548349123171226819123859541696611178067215084533807426672954628338959111795104133393076210108709130492358858700098829252232775106709364864199521326803505297304065551962707855855275272710712295214456280019973390458945729731976275291256590478423049132317474963637981077798542914922152931401774112365249858690186069683590343852014530330435051323643080326918839106595815130096298770448921647604889658351171082083593605277702848925643903324983618080123775539227508523138298665870075902960407044161737052798179768297980634593328025015468311426364408686180039278600989416273313654311671233266204357735771905780453673105014990523233645378472324791543280924900992769623181239401190204730424977201540722040532216374807299078649231577622959045436633973232230818646682603610611648765983970452633612528492373207779921823481365610042836961940854137408766037623220091517356303902931801650950136100791147910317090103175445534912210501578808752684594979499602920993940430571254058517294699001629641237239487601083791878097886627726545979961583740553006352730534287215433763956613890736399018472756434747636133554927938565584073706547660815135546909067551133704419137463602687338735523053876507192089117328657080970982794807347644465568509013271478139975552391628209027470943072064347803737285461444144027012013847004247425646643886348288497461478397125350629634608163543419364836580268938878965305110764347801164381723857071999436274762717469796550706357093562611185514132665031832684993277199327096980742193558954871890955539782629115588902914345801031833861398390634681825045115690318598142424301437136274026546380298754806464918079310470496576246275953068706094039140032439152976949294043668013403948186067840143377405091708062732847124548888844026420287112456194533022202963944733397815183312093937540656309875814772109969001182870186938243647689819370764027423924738022746228896902128321767890110209376455079071932047443481273417210101033477427905760354907915066866574852421278954417259899870143781408930796719649442591658936018497029638410268947686784331941769750859452982827503739750612903507444237322948308535395364954366899530536665027174652984741044605124055188276920683106131388898129155854903352101328368754707169644886618323854011439983381800224309764646229914842706931197424372448522204901390080594242119143379023259452045812344845180997517142662649142827938664501867115649698528470333943952712982202439993090308001008109343643989549413700846333375499602501059592742734979320868098432534422444643302771746129654192558704992438026237604353541214180375841768498627345993713434943809452708207158799822130286757854865305797387385393879620387404167691179782686833030691694739428194772450410248718632769027696560249310507594204791018415645366815148087680351610562025473145915955191626112401647261696789517291254530288644300406378208559302398451890608174273474705771726124118591718369530882139642483912410339631970955095182714174820483412264337609277773944148462935237172500526620595588655576551604090476100056749860936098075871630262193710245551628466746542762641873942735444473810210773588408633278711743727794670921489510249901039838606717276226199420563214352116500830406221353477054216160739370671779270301591870057975484373604086115628264723340494026001450279025773497678580808953380500463767925105830602330543917156971901745456298525377676616605599577110166093707183731998040299344375342007373260287764830148770544436348047417447291308328741281223724033553841103427484705099773979297737224541830609287111921685775122813074119091188368120956126937301507920965878171503557547546094499419020367683515012331347706988270950214870045321285983437388524950940387257935464975852802074501961882402803400938527740179583469559923250943506150990766826775552429611084950036581610450797134022374163264583272169362688559676729704840527954901152821537218268458635211261537636031201265216750266596502313190703004528588183414028790634459023598618034127067919945201866776090935785589234332304271980151566467428183842831046458073174620302362170391712646796485386457520936040658904211583405001840864508945489556293195757592064092069072077135747072621488478442426324537479646007252089481847202799186957840449101636306910948131351036894593502745855889654216959014142291311599335109328732336732692535960690202482121549386188511935877591589498187403486572888207811850309495771694858300095284187577180410633685574768463097722418600401120308047666278388118602224843502389155578199574682763823546113306199452273908006199691417312179010093017367982985821585452930621201010235346443549792355981564706431250111931878151026079944922023955185235870582706819319821718840686432479891321294392060989799171886694295598292449235357214924138277150391907633895894457137030858405998833258066839426061229250663165726554857464375466330217200012652204557240650700656844490963982323632932261690673413317254445035835955026331605986836118621315355976776322522309554333178205658559550738170628194253891201556195551375524705665674547991907226452330576185109761589978238035476217514817749511732215706896275102246997019349081500791139720543028865695425462614836658533342368874935364063897690694017325024529720259416767258025222705718850147873165098172431855232334785644668051204933688063553740012556427351623414816138890491178894345076657977398277315807053028319210643792576539723737469218541291005070033944015004528732833976658108962512411428175304868261305878501406647654249148258322506770612603324554521702410621784402670443960198829559503828725457345354045826903468710742840361407641959185913018971694978719599444192544317320879306045259880274141928587645509348011086654400071448034541384903741169109540557821541316929640474349900355687613241183138053199266731528288839636541044992379846266608364127702424986122296669513349738689610656062634830588193921096291387963219978565014264906638933638764756930814811154623528792296071811530198472389025489294219083302470993130214476242410072873565636925638792383652524134274032997033081327923201030563671847145276692499899021799827965054910497053245074267294169892633482605569322512236971814783860050502729836536482515156720145966385539878495407209029009964813817431185396477779159218274774420796632272552058109237935877861009023531378680172623148418163426503270541805851249916886157932425494539389099739477115469775537923098713365364581080843564895524976605915310139617570144173297438550609229414837722389311161020650280071972205369689622988494551915593909925048017462165693116180551742792242635924444641674506406762203961860230528234689595491425614015925826040009176338957313175321016231146605566766691873981452047809814264444887873836177030953509409409229980801949632892493402527064079880759400157582118002945062776256460899461020499337433411913833313417447788225836537609746170539495124672459384629155326440519886766081046362438832750213299782556585475978751594973971177091725623564372284747369060811249921429629029348439547931719533827034693926133323776371243725970899587309776672763569107144281291196120645787671803881809248200633210659799253713890353241733414501502416995729541643217397479641802723448027021776789667245461150957371483464082601813932827876916389422702944690089512691618042139427673545271844200887602047927059712929368810212097949469129997308619419163609872994969352581671497414952471302947982921664238578848448769022103570521777642590813518902869737537196227553423509014727173328406837579026113640389360832407996634506387578949731805312352018338532959734665002482730500462491809181252244418827431842435997881246689274644123038134713234427681578169876429771909274696462045089920678690862678030471558912228712847899958139852832666203486205238571653704754420187283342625991899463408255203417927525725736968129237144034568540769656283198779500263305624076738605324389462467762152967890898262901617225154572633182381857439860727379581770485723175871895251364464269111384540715240086011067009121122449832106097876062592743746233183280454145105289019407672577893074348551461051490801721646378401776522365450521316884662881493929681637252893172672415710460866242898692509849952106867056644745938025943443264932909087196229535246694776978826276955460807034425167424077313687894372953059675663909620483649543473855397323459639817291018482050194571202561486194761032819933908803940676237496383477821943658306302372599946154440538258408681951712154539864540695768501320824251366754300302567577120124989577377032580331936569979552055704402814757013729742090455882358660109410659404383692660339782348607363463754688597236052501671623642201805694700651997060468904396325486318329475611975098843896270434137220761213054021162067141269398798009599693819964486794931896695504252595477635184077493234318186181088734785879911306371472588056924166625462931345257669849051977825648080159699796112761343527200088301197232533397806580704732171841726494573182147718474593329623775443492814645591906000990327867671252687177076900688458551651865535900347441337271061192124110736652051819315239253967034426003320505761663627404406268890991361371460720002468301986322932856195805065265207035221285841958933863793625831098519078005878922182467063624258277224769458412210593858726862438855919153668841673052583938616224797631090961582874940810823306764763114050962685160999067140544009912348270968311588789188526578457320524774253492674162723034491522530532578206432842038453307444190764671026685573493831269192133687265118208794113740463011240639098987630812905062261368079024285003678985535677492963404377793037779081032764218865910861783997224594908129070340081351404426173321770427608757524530886077598688903099906719192890840263778211132480738655772712866323529312972006370092397205940465622276461459098165233224373421304622662330495333520530765312335199205274367516813904688789652489326868620507925174893091253876810500399126806274037279431915674008013504584366103274160679748262853461004254285976734028496013458034339133833910740828664221069660224666812062694171806774758372198685884916001412935725923358804942337446324254106489624852559104514771248931548874031417593288739450133337769911380020474064414898554475207567398614714707021401372612037265627301200472000867635186296571236223803399940891668996876776876334882459703868818235965265021611521833717196051631964576706274168804101816543009696424990528950008581016466558025170053219700381462425071115064527066631535431401228384290905730696278201071494307931118362419152821574803375284580292220095434226800368440674388897655249423718755074196040012464126981621680407110858438885718776013525407635255970612291874647020842378381613167061181455591224840658819092503613966269527384352310985400615033594618811498883274079650664646854221915963170194763860907354632515118947923711762011243849520028449619662326146512677691668657703074650346743935870375572529220817039134076305373080276100949890217790842307666372727322807148640129256464757909005407227358987085303479911710201225628018653229273071390677935241184329346670731335102812818289449880051108929737555419405019762435548813682843317380510511635251169881353707641274833928655007124025371775328995281861535648772740168616103794617389752471822238065958930837545281665355036779936205674936318666160326983137100524603902363217555415749539113409895331389060654644878982948101348294825772605718373158718493845099043870284312037779237611124582773818941180254323957235556968474327256797722460811891105776769293504402147481426771373456322924416020821802023764248568076331424222704996097147953948913643318220946972992716868955713649384544854055255477536077002239441404762623997930634954614103164143795730257315247680764688131857609811612654378111551134954093503186876422259914915842905204551756214257591440182836139823276813858256017978648361160584657251890731613980994521625937263388687856536156254856508468856633315834650130821615602738459860004219468635227106477476581180299623256744207083919273139033874772624212279155958327158784994851081382122636147531428109925017107752258881376368887101653938617116023993800625344582313015757779264987125950969919649059158213596796230733584263730596877572629944129121252806312201730569599333304568531517610337773614598072441807103288049933635179283640500343815538763028826070848081489950547283516136556202675746790091328780795028532286554949765824579632812558223775017315764659119364711382414934960557279433812153501378139825908973993719070489204734210800570045671758989738211674476710439814517180130080749746631910577574806187747390639730642154221477331422005411697503915438908012844595956579071334916291726970577503462871807944752794699530172759280747417229390814986340986466515088444158265262147810296156644326171696016423769911066387112947254705570327656148186596076962316997591450598708565564994516126660272064982868336811961101472227096030843858309793945314956437877315376071982533539443334248507832914181268489927358195439492432636840556066109885786395963690548804062989834400405626993795030785429258263234469528014270815796381945876689648539453230498285971847761498839031833780798028807691971608413711255799863406662187982554999744912703859367962799735483291866896943195418572219958467159312396374351879974863732907492748527394239039831036581618318365181505826348964618697957572045556378228248843527799690022817048895864182030568167559231626238225968163277899616879054185607633274131242400587552342901408186426400435851916681718637675505527224559243474696034038089426551797244876920811196976430227826246272947675623045949860254450435348031858256472112324649721984930633311467490177121770426295823808438222572332487113058452364257132840022029682869673945810988824433797937382732861497051941037324323894168311259824142893053268057929378767599284845253412211571441185943698280867469458474331411374901942617732919879661126827884554865289083771697155645337141870912884346148506039767784235179074146711727926024803708881751260122753272074398637685228936798236241517858788518188877487977753374323062777462301053858174296226557160140445013475858259798311619593537569794155484474102044302997561232084126807636890762822310237961556798712579944028164658697586954357428453504901827472579130661052223189394297632592575781026638960222195247646061035639118374473841963590420094438575571421980190670211595427499723962053374974105083171160310904509660258368308050525275249877689423486610456796038585365788023802423791583108880763382529334898653301436098908807248161889291003609570403300450838022981739108764063648364464694773819350671887495773953992464756861418823762058183875302941514304398466862461503100698745678580730744386026248782284540147442149633344777565917095136785441932559279496727017635349803971278866187532330314013039856075629843367586654812969927599856054625168649198795541814624700827128314191113802023101667504165701456275697377984118260484210083702196471538363943526890312727091951131637799535073754213171280500652464349767424017074315109552745732831906432475289489412121645392947619741120175233147332325237895569192487011190426847928183840061169871190397770223730692373523379077475119654531461972272698712263674385528997446516810273705166940333309774327173311318548325854981314143478730566899730452222182678262036612221581853413158352676880458204401278636008127320891441644403536091544883566145585304099699437116555867172390298859055345037475842601262519980380324463522552759215657787243201509210997461291495667634040015350915356131393078225619205549671560560922737119404350384047909301072459575437017902371359780001802229199279567467558082473181883233860067772286735240353155723436833014848007719701954387497113685178769738101925859706567833356004273464666828386931823803197533206736842774296977430529231277404739489817259856039095894088819492694987286256506770906948038976902753549179701895337964203251328012938630382682370043668256628351872564688765306353622845560514663236215203050470102204289664548994011351533086376685868203138335216114055317927685746939321004775723629634232989723385483705547365928108830969267095045224801031032536732615793371948925444900862811076084010501737819518426352154787590785354943155475090610592570918680363765960865087897367028238576780113543868287444376538703759794619029106827059655985469446509341305537128129495107366177775459804270862310695518761012681968740006228649190050760435162289070647349152605292415142058754378293842058297902393744348062643063197548749295601429608754529238280248706039231482251020646646960131014592954825485154223884641015718266464009552943338963902147532780995246810720199390036066212329537572229049782338637685099639653112877709043692204592267636963748130508932002593390627802775954507167487744081067953646423751942569402007439034539908263269735636840795323940300341690585746760906398680022522590431818659200625969653355236798837079960715910298937397837540116036813315964185944703083929891560164392905573938235109861704337222541896028778062417299403272526310434185113818139698459453357918888663668897588527694561192143633576065588225579154831571427531444431976691811087128744278867932525491644956262508181137211780374786029350103374828067699178129062125041400590188525644986873182217535655215483226524917473587822212831465759390398763421918390311810833892235129422385221406308590744343243054926008135067964680401144919945003135283334819007587234622327308325255561871217935178432576916683498041651335297795875701810726453116269273554805092491884306294860820060275245850718140079976151772150715490157912171976637935998335375947507330796250164159341969689752291380231303423674800889470586062383966233734735037723940228452385712845681909487183193628691859449388094654923105306445474463386424459128963574569631060445825365214624714674713770659081092911300957238276791865404890346070214345529397719976274053353345041870647825815292728165227108114657649954402755869716253222473785622180724807097335197862631124228677219413793948079574924948601599307306239484587200153301694376132109970174150444288659490223237412011533851707779464861140258070197773570138061402810400422029366482339650840947481079190296977112603493438947180843717657863858813938549627623108421457564323050221298028868003053275542420156884612390711389036230151764946407529644966562223910360555565773354252569428706772098797426099236231879611871956917783267329783710865433134721645147029684943024265486723829056756328853368052658747623103799634235979569955404657178633645905034252799924215976491953480639597297466234458355722830912085047077267940056020870128384081141027034224059483499725401002275501909216298317300193293591569018430898997721570363266616614574541233685234787945276320690865637904198675496698586018789511547128778554335687193683460072582614100852739978304976363454329514734053585004161746890828250913036452582573365021772730451474093836686775710234351418022850950623003497821164291029646367707740300925022855061024963581550379307017699733781323886645006805461091224058835003715216945055600159319125603667828676182923888109505403981424913314761100864820724730030818397366755314561365959548376607273408252820665967341073234942630823746251704657748323633090135536717108095533066985248494426248185832876401550141104781633437587587435240411222906222279099839890621285414356782224252385877852896200922539888766931138286352340337006002021300421354601900719193528100800564516751864431697967012811885910686348509992921294294693282713441942413551170822660609980935919733302882950432393189637470478450451076175472586899366140425129533283806085079798763688037620847609493317119104842497900261004311025984733892838465020523287704224227791229621229309409788568779046097096156479287970724904723314782007800136037547363645230593947684596075086559315917731074054288043033324528734885504909901005422626030120207029252960674043943884240495438966335756591563524282960197390900540262158090964536856441620011900677143406342631390616561817173490690734607804232700133023024624240848561613710677546344036650753634490744271237819222101484273402858097744884159070513419642089383993722388304903904513031547719196843442385384757535115957390055965897674496090848624134215545190930065829253368977187882128966553870476818018685070688527840803704337031225861582708570377111558250976540442228154516640747970121518520795371769589572634616959703459206995620066566660018722899658715653373671690534736968588598557953086618088998618984077946790781283650591777669127745752920265749279777959484404895152686795696057926495024845864989891445168634881226577308314554073649372331555164452030739292588474055146644212794714052662543268175662690923336251470023948512873588704203269339395215623124470210263478437575173369259715399514848892802184673215284465419832574725699766221059645762964859143311921061244039617865656940928391822213073184977246517370621400614128112962319872994783181244525381004661342943410106214360060946540893017979095459491666485492639501281406670637186985390471675644752286501249265202909931011728589976402857954066042869104989404934601232940680417551649166179081749783478319566505504092867948472972785903444010026495934472682430470603994701551380561354461688582781506866385970930450288753870283723031805848499552246594924196235535944235229930903801278247457579212703891685461557149916744995429242135411192389696440550784427267616110607934748132352305466479519162264583733613314559467498257079295981056457285696240917707891383163567270090951760197929879508317322593898694166791820243221166277760796647464680989009828038211986345434617815829174505936057332968339694829083045852843089803318227078941817960505621863229773138382335704245840311210217392486546397604329164703228798177731638096918463607440198502766738744488870268010056786134573195513873005073840528913927948449971063974035447850698731897986093936464460396890243695152042633680674491228903492923888086750642148144040850654558461379142143759917067378958635296681998426910518366268358878247132521165332783909585301100134246768561762857930352197470236213433119350999207214523999901253293512673851571270993928609700854051968110579900600413024457115318919425580512448527839901243495083481158045546665437485296730460916800948274782401662675776042247796713650012326804658980439690398758082660343980281647583657837343143189659569437672716911640342878019711854809362481754036107322880046712136231003365098504572391812078501583749260083994902905801375328323789826755265121082994466264467029053239383534255224132068449298524908434495509717752962863269241154992556228864293413494959168620402966811426009431654546076280496423790681252248073633326944472093982925913742788865686879932267448099306627664489759403251476167953813223438099957177012680699483274024029387402870355295402869758650736657527131760004751872933735746984347242064397355274613511568229679069225165460964289233178574560765706895657447633976857716042462910467472283181028523200428696191940975851072755084686388832950825398094237800221646076150322448029663323666633991328534498459724780928737016251239675775658794710023486677712549206906061107571815347278651994198326860592658327286342996311788737279940946997720500425006921432144712714710049821240012807042912963896539868626918094093227612169858115241143269428458079861944502398941423483413937502481043024278187161105531990795065388614098482699540847700591372960365169961952266271040922084247426785333867367143024561100917930625131951328589411987787127635859161447896698597455300479456502240151134907592789039395527023640648289955920322702183321151238532423972498200112441462620425789947320102004890940268408473827316905896152518879550413266452637985189727867173045166618591480340841978670573452106736561429014278308970375742147855343807074813115622953839141668574073107829008415306484237518294072553195213962086560508577203052647762704647633446083339175867216646937296685589056744395891849467006605023018726504445419915254930899495213435759630137737999373704951264271233905505251858297471185827883134635276485232013533528060372754916991604100893240553373196296876291316757305414230466630915382871889634925163708599081275266766372010269013567374294017593684996395379432652352695977252474582144794633045708243016584246045953337635478891062169548224975944194230277343518028946326067461678460704155988057653420339688717265592747785698948147541990628166409179728138792077396491007913573848528535016529366063181076946318608706296959768627593161684113157881388818777678783950561402315028193648330306058400088868773239107652288237161516908039510836038792021730417626365509395367855785726119182225364826073121277201788016526382770474735454235670666419875881092474978620813593107524159519296926824380327776241840733823522665174559576793441919465844340282475074419769688081683929676271021538209393521667427795056999521825336365045843746395407730424530266329315367442985619711758275443968389782413040591801882966659919105676406635600736132600289881970945417286029091531085864787173149072242662849397795453903295386216305886410350815378276023454433965090853322574741911485625691829697031035106408903214453548257187815571008821620229333567053283491352669669378138389641424924320016376651415772666151886017025910372585678718012362650946872100416297340909958282392372821453587664579651497559604835040119007617118386204478639226208003466709595801404749360245561014033084833145533204998209480056598804563338124621057227443615331570854855975790005954714213210208906970682639750270555260238222832407674234501212272990503311030716364670335729143997182332872651325186290356374455755639937387347479734764487444859803033827263635222212937511533146946601651115650640967764495629820689056810953974448844364899630631764138841065337567869575913176482371036335706952410420735326539924298395069914831128959460098009366447958961145403032318192949289516381261701373170392940923717479790349038404583091689424832159334285957169649214308397894813810203576752963108127654719021335933929564187976494725881340024767654392941467981160933527211720615406988170116824284743835259539593263717297507078947326173258228142066447525304763103378145405120771543898494662772378219361105499465910709376070222452888547083002055805462617699445414934002128857142052172960715987396540834600789869449070755465175900671861303928468709964256004083024931849678962829790523480280365628483685835050869240786424022073188028787454915463837536125689977437351014063703611436944851079151325523699738753684615483920928702174059022385075098503439921000437439280235402328384263678638323590250275842914815466063072264621088035913292887066243174907964190456869235253711466961053277171282055503547560555845315764852463066251340927043482422449029236808664141259348263222157281233742534164717860858381927655386082898729886506624346704664824445326689416452190172068038794997852068688911682904386469965589779259359901153458379919967088611022476994356276314569117936881652325892247421117441327508819691329706424762472962668689577752211283951070125158763711859027578872928254770137463405219013201485006186993750805700488295030022859853727151811166061658942682679552905657023426545893273793555280552581592943097821004925299992121532851815545378380696907017485195686477786096537397230551577455501568546773480459908632207468575936880337369655364172955957598079848022802807394351022951872596545435164163954918465584131405125864286305747079189995540200379272388349660993758993090567180735849014534606374994076763178861807078825335509027771622570337136769329361742278081678554850149587259053313092781330212220827962524370130888661888913018592654303828333657620215372237492585510507365228175968527896598498169441250526101940258814233870839991913968399587377271244120021999104410920708324848962918960054767578674898543774225062071584128234140617504941175204304353538385256721219309382343673572887531371310091691559396512419320327470723021867516620494812759914755211369424669134104661914080083421675348519724262847420695487038290460367069899545235801397589044637967495011975596045199617528081995555691213310611813429191541666040094086498097562741781650501992350786040663405677391748271027643912789084702959693091826149964270451359712679770688947673442935181731545244538693719658222923745441798803782544406702944044503288971529002125103869049935122781496538168961071624754446851127219907576895992841567137994358072112373580053519906531234886086539534784641978228319062617471277620087644654749472792189768693874332112510189166720038083921717107241793104396535434365240502055768924786096717026550416700048038242493907672363578791619324588692393635634734792427231509921518472192372817940924374236959780716277316807133652345618773796687381271932789510483072570340049176995766633415176183467689560034905015871176320452170041133696261825703466746162973721740376516330912752499460214692610174111623528117445301113572869580830060253318060639207871306852051978174164579242145726848701888630291545714115617055220673625497803851004815169301743555662390317645218964675457544308474859818778918188809557087083464829341889086991980397030809286786793259410409532872409019853100193934445474178508468904993611634913613745692629069747787732663582914729792160591458775905424454313839417102508224711383212586822843378397096469975531879635345799514409932940026523797965579719947222860261983539435495733142788083737208672101077507838489247389340708486777455846755563425509840918136334017757570565664926548768808880232524821942186953236387970149665283661067296743446054748000248020976102650372270968962571749619303803357815050787233382276866529180712859096376148247058495980126769702378940044051755722339006757247344902361904728360285526412829275837349268884047625751793737304730665214707692827192074043569771185967466277707170232079987071793408226097897888455398500644868207595868686142191157463056680520971766746122696964787610885269860141248657732265836859296135200033980657486458079123803369956731426990546263627286813911991105067180306898114048814210273310846952338306178522103256858424587734346231611516206238988205902047922472948897296978137557457792035741016864764376949080750358647555138937384523289469229797973653539814064594030160700904489967867635956603966254217982772188461977510550881553069973523362735542138817769509932069341306729492307927940016679648166811007413109173119357752277623017196609707242454266329899027814674134455900552293147668944813272372184851552354384376368815165935861194928520895090615932905914721378422733435110576261980748268768994232674360413060128744126011806709081518589294496328015078113218477826217574209219599771571652037657850338160371708691918283251567373782479396393626534698661462043075264766028166293488890020726776183109682432165521369108192444544764877562575223024017453681271316425073889333406142850905674566418127445755257228503420699603080501135522733060736951503476774236521444877766005140446804834177013909683117576118044657861266291232845645422880863174702002549722239333413237785283842108517467162201555994501693227408749179607782337053644597396944256387243695493665922010705839984309075653188475199950362495308526266048249956214419892978478228952180293510634195204059061528430788813251313852362081680738062801533752843253303566529616563322635570251085233074161186462062462411440308496133574680910837482587142050691962736169443029129798093416269934098513277153472012986103636134178575983185328650403755578713064771610503614320624417405290306300105586084148990575377942994316451791749979413272682677134468522948710973384912311771786418592877340893096286148046105639126903501830504767895821441737952952568647459225639924413399315331626665654955266357154567001828503362784143435271855308648149732910183508394984973289486734454902684308154875486386400307637345273804594243181163341252299417798868922467976486910939673022867904341789675075659904464321595762646861288137586761078361465758420589138222813632902914120836568728095227603273009154675032068802767650221352774733538043742847298866572748746378931895229930286336025888833255649916642117645155661075608409632087321214008946415256521615038462890777607961292981522438882497363175850769981463229733118894175028487267263922803855024370255902377913309681532464963886142643044013264761524924290923611094907624810214788940315940583151583505113281111507671989135303062413359666733790079881031870185053617262775701057756056770029470210395339837588295975335737654604128062135980983919061709887848211956630463494732778577426787215776117341560415996951214821426170853300666851538644420476766581078374350697500890817336170470443021301124301670424979240998485317593517533338005770316031351912015935900309804751504075526086687917083999660172980939831451895811689194399070296019196749057616002391296210058910672311537031359705121452507688587456039941259519946265460148933137544778577382702563719330044645820413175755151717869892830097697086448806207921328316409611523440489724686733472611205176126380198957847489851840490049072843138992399346959341896162938255543603372918990665404358288077251851308481901109202604970616203960455607100807328163542663823306221136212811651648251724845962182515982014282534497718320571464731286234650103719779778884724431429337899217283111028935798780050760410982014719333552038273729678877583526906742529355996298898651073930859852836799197603258658970569562124602897229422779603998363036249594193390604366046501229387664268419389098317565222300004326747149508305448523450853054148345267564780459384567619837174466469488666102795718120777088932370193469234352588652225565717369500028434196008645301397294757320796175441269410752246667769702879750249553483601125451488090182782485296286447565839869189377786461581268380724622933903167644686757934091420925757779443260406489721905604276604712354777101511002431799877619271574158204964536490478068491379837674468710618249820032171193225059613321661655439237622551035922216470390019299866689864685028144022568720989868807867852103256156675505163725461172677997262624285431488815889576970429086165683769056846297966136778086814384779362574184015007121857716678265952896881820268407226667972166826038740351089600012721902909604359328321798070277602425454126937635050963028330978282369983882108772744072948368529685998288727672089384455644942790276607450451788349759056643690916300157045882685187104700128951747036218016136629370220797045107758987504256512602406710500903007875513768033356789463415354538728097194143275930642010653033937161848003257895999461192630746210325299805613375997467576612008513526090172276130455425665646055611763620259138898512512276135135538084416001548325352366530957186566060742874882103226406221765615638997577942866961821821070010779292173187797972195543473947600853184940899822255260480825081792327524710705126198917294418327035648795169668320066043424560439923209813253854367415430373192365494530388774591257871058991429962826295303103383742150011171446831535432768182231461161580797697785039095207340831571106206995503208991272707889321242155530966996021862543623760396446231678575503798900092249231205924641120877061068043751982735506493076440794178398728269042194520526885226686045353619900917864723299699252030177802891339509654973203022693536903558277439031390029124377229138378691320936342136655404763835482031623330299565620159260216577684816873972644592735522528703011480378606997525441597551097464745551879081373947999290572236995551908483511418525845379698874900151294209089069717062722676806904749745087271934580763606458506724353924086170802627747854450882238320891947083069945786913939664358788760105310895236091123057385076475605532506285488522531249626584760950708453308420959061816187907520613076571976211037239655733008307772916739765521862985722173635142416290055355312880101893357096159103035007465632032296862383237664668587384724317776636247246822838775928049010302676283135817023636316345590731275448848025597317053173402814262257275116883512614006079377438302844027112121984015822986376757336657492799428489467829402605960098075404814147437882391014882480536312037956707665772571677679583922802974815865744057431483053326347352607623877826932937405068808781684557660955211033007059449204106773613226597819097809774845510841982046694067375214281094265915434060656752715448340526950278033351804779255541560319405568887846834781326233601082654523478132591888375406441336498044449262120199336725542578246942969329590796382074194663804400420425073640171290094671009582251331428541834185051422981180167747158083129260314221814942702589610800249989627903048660896192774658498924770199295926815974832599368063795204928251647556029274488796091013707668655198134791340204354801166599613504763577597429023002260433129902523763427008495994717040110574486740212100763028265838944576505965638536037221014356901905651652260581598179623333516324374028036547943442138363310082115599258050388566759709813905964364421471004650257598215713313531978822785145615789604042147674402631624431374853326970432624140456302343523110816199887314414125944392661996013210694400980126670664456177278328920872470202805348742581900597003312499904992919199732566225117897730290911669564629566681863960145625291441399520469698575364297640160997229127164957836536240768475878111901832844637342194970577840653878660233281442771218552299741860545741779818943674941169688089481585155351602717812957737816264564212468546072678992390624385170062978894904536008619115172738821180790860697878822770198916665864132043863560017722842359020517171967705492713559778672824242394841638219986879040607180800408250464905974684535514127488823761119661278136471582043355217385242998692634255516487741804072419153449168736639618247648114257361620740725353150829654412291992297655093693177951181669608040859369377339306355990407553261603168896912210798240452873731887697515717687965117436124770767780382590947696405376407073455703898127541085455765556613454137411337747684374214101587439077786005698376096768439611785677889971826511559599932635811708827881118433329700413804603272934860447475934948477884751679182683415881893071829237274384552777269520160284903524848831958590508528849221047455685436961705696182307267030869674649397309515523515843533947714899878887902901672310767526506876240104370732371136683078433311119709600761094883637616517491747346033562943293030170178347349143740446371072070877569151158425194602233490885620289658970490548077850898241215730244543857461496780081955754760396240361061542174066232113572905367262456588115365382038338121328077072190701493544280409593779045215441762627721885437502583619650783652322485313987699969172784615730892916635765033350044582910051411172695652304307882692706268189820507095585575116510831468187025723033119181194253129008360123645170004766162378468107597511771642509645285476090256191107543001028689928293242351804224444508913590270993289880749132424015524355283471150728503576667465007443072091370733325204448842870522102169378576457400835989142921085999411452789164175823365827079339581911377843454005691221958218566355745925482262233477890442203016934875888791423648240864316105176425609309393400856592529208571094686447645589549166420847782812755972050638489713437447037229494460386068106861471079537157846280189878458339646111492698676463518510361360652404137239964706708852191269063542283498392188597524366300373054330999092777123623388440050552065278105435479181011852731283727611040557763130791780794311148971308995282498685389857467434988641822844583794220529731736525894286109268722464472828785651995932980987358836427731020399667142134312325636776200325791373069708111447303440128556281340849798366729661743430535262924514699926498141735198067232909329856688573398610710343093501842827818316313522625000160622895009107939813216767853912967413265576945681070758295150496132689698736247030943222543441702988785980200402840777393066477680431377588583222196368446120713156197329782166631370660321509282252382232362209379494552261833710791433899942119101783696476721851843678675537068705037002707371661637438312832296219934481063161380226487723939236282606067522534261744944633276152074410229363657542104393833730874767409031951444649917968369517610198370921881513153712734157415298571456031371216943324372852098563547415114217589666542510604626504137742712184955067932378556043996214002796781474687962896201796413309128796518403729908503168546690855450484634584593720018994044873220794257368619964049356357589186502072190466870229969634843912943994951603489440999242654732717401742887438211003836318687210163727616685462729948090966355115474029458804702830551842058572553876664869917865844751421181542034883574259849341051825889552055863726602929654306084026286459997346800111101405783011869182775615693717693208338849188273645134835804302719867216702727540904912956684253221190012497995725666091021452053616743571745841650561490761435691962133559269107206753033228125181369769799688335690017678955071470082703857723243186905281503473134915002476789813942930686222048598420393115719390742965122232157719515259355025252113743362310725167207440147156587821635656637085697333312730188225540430066956522160518048512787136725248761848216795553920867343712094928085105942153960096535367998990306019802438051784114645095248242045091099038982954986067765323643806470604974535602539798634966015657047476526863183195552371576273219609242747173281972700585136795114303292214472819904838243700378244555534123426274577310969455506222535279433927464748693158744976527216178198779390011184617811769517074684423843207080804252136451399184513729934398043456073965103231731045843645656706564743036805274788165558418984085088078016127309134601906051292016025482634423204975005006700143057019679430704932424306426035900209020246094624333840136526421360093621173240115027711502070236147019599050807777135046995586040411423327500094452562500829456920555032567914829288554370685677544833386215090848025432804645196913472564928631371600834847611370226411156941463025771536649795764192532798254579879521641609575512183274009633331052778407070065941409003331657637787444391219771630508265556939944519165300714090712380842835234952430932640615204221871334731872227687843730446639126702574429957574809409051605344257837450645726010688010118284603690364546338075974874893763548885101449307731152761867147870899348793864225483536707944729015701892618698572784717475987600537618256331394635190988090215255435724134296002609028329853367190339047752119262312518043206088871756882086533482236386560626095628271145568050236646156168771726135763677480422777953185550651295679815798405478890045140093766733650420965287464420200837695191012582366832176425958492044602711984252727818310842361039425824109079888159955982695094135101991607431203265933931323077683540773019719591774806268690507477175996648117808588695133349205345873982525306214081834010205817252547947856577902113881641312285185395975977931572286171776701055786702962568536516091196320610622108245014420103042330674355887766272583693721121715169877899671732383253920873513117603058173506370660930896881390253757564130515736171110465807286615164264532644034343986218063392550201682029731276788187743375616086620572834709303223118179944282591713690250446327272580488315292528300894924393703217729895958547721420560402145967945874977264304072036477848352411478533370443646484260663593857867027420272008018068134634910565874890082281091733621574392160368987342637566870746190879653832013282687925299565997706666627561066209062694719273457557048252983648290076950167519052564434416927620009273277486540639818152269316966424705708652396268883865452288475546101257489567455092061854074000751322226022743167908650654898481744163042491801224133070663601237376032799575467108171937618441665975976447244759537701067707279815577075507268207097357607768245112698803813748404097142655189529850367048994093048841731357289096957638097900623044014673047007646746515293382970855681064316580491910175388711933617843697400440503483165544949476669304931125988644394257531621798653545583196304394480126202134774927629167551560876445113127787909065035805979260738066736144441489101461244597517293494264622931241059106831955810025355569677696404350219115269710376014583545837726375794201392923030906780683525211293069421989296696003974454843896744340895601016439914815309754339250656330235154017899895846694896807096023624026541737191518837279651820586657428928821154436723319111847321931218038448197107337071591649721105371830651596629274237411626239994619555981624404163573038217176957990111993921861644438568639452660930697599740451244054244010061971491149079237892934042341030160814328611777771073260830953027266944620052766988820333162117156221785999219351832316814841747920042754475573616315609723800685177805115425119666900380910338696325032898314566334977039130578805515578801752464356423429446161038072726985407672280942933912745831001503145766701738315907537120179022550144001419010792653241498226377904948060880082647139052291076668886928806407707179689727816765698969428746947051091518048270522925503995920698998137255485419201303859740551993688109217572894251999930215824514288783119218119300080407312847910473701165468419543921015611993068191476059545347223474597634633027379632658227292875304040914007849715948210571360448961233290321595178394540467446808486584632615204533004387553140176696848130266063148289769139182487757420838491584024199493764960166689122430768373006724926574964688838657847421454663940443409387523260864502109471593879130288723440601455077306011673532883461264403356824681269134096675464480148979169800073042078484552168546634606313283407523807807207032197747293526392288925447262106208448433727155452470739569236788984288922769434119372580532154714868509656710108563717689677580049628640695646772003919196313116452242826937653411360770596136953245885295575112833669210853053290457661519543939472555690861607375719846744984675240214806036236571370707792250880219808987836788498652121196449033544879181039445268019873443662842089102419520381992153327787245391821527590987577032070334271949902275920628235087458422748528346808489608597022933341984442877968552468693202057927578622402360018328054970259165695582288635532558928189207707928552043594025898003267738205471658199603410888583832169486753896764816306688162010737040334472474713033968096149894970524508551895650829317683387772342272542257764026077211326258939963380940848683413430511257582881217554508343970692300650060931805521545387993230472689770693273216033433740369413672068035873526525232273078402547507301996991911435767922718590236549404466362523984507784365352513022515955192833542173751988272028549968264550799057665993795773727942765727572519337169499691880473101301561707784474291669125068527603478062398142892116239410256352010971045312409211729620994531331730519007365066804727894820857873962232921559085809913382486814435718195483091098435746136677786927499635908131310878742187770272038242031567743165969172140111323033865737778775949578168755356969009253154942478164162465120914801797219661537075703010339599906582114041688408590683170247898554397816974238913464182499640328057168549858398540408859873330697651034333984925197415109276050078590712620695305105560658978484882942810832284437316971005791503111053087060851895074930242892217895119488099017040114417269911009227385700257860147230013665109547142159407761718659452023968101746098725179576832604009715651887142752372518070223270524734324385050454172743319903767940289703710680391014028356857320466840838446439207579239838621627318816463936829068336667282959832494941978282640692224635277134297243819394770696110314611087907668045802924301627473831736163407259502086493219023823224675974150089757447925967045112936190616538333626439359211740206781190174151460425328467348202737076178690820043391700844195994087547873414108057364741767900925824335751742270597159427955431508906975390579029415892549853336112014719186183803954956229164432604955115715160591991953993976869581014412358823462926068580723061642391038886053685211172377319185375674574012249034579962640194377653068619110148828954925920296938204987760716616346979880096510140837164610912216841627923677534106108299921192211795963386881714047478604029936644729355683813083622340080258965391944127647297096997453323982896413099856211916796145085091622185474875924323857932674011903939020397206737364223150884962419905958305919041105214393557453178686464564712377004951474840338415881463937628324681967270864387747206147026295427725107818224030765279377489476095841069720721052263627257613650014113963075178858328287856267970667392906576397961232086634159502852223091090769921415704689368432539034206825255251361368666686189006512225711694614764707083779018440717954924792695724994541796985535577623294481006094013369907418728664969426553082449997042853016969404689280018501075703932556584096342344508301654533916421380824816315671061239098572495964922366870713276419417940085611737448799698014901259700208735204456885492797430053266248564007858042168639175235430379485921362330627963311725461210008622478506913905081999319402822592597146415207277762713203062860535055883297875866615283552729665852735134250478295404814876086104440393759287605643532807829835762325112477891882029781391199264423753406762958144345130229905805635544266308444667902231404032457506967412290458650897637111875795534998468211618842937112457513340632284693805968579165859371561479758029770807715812800493900425284978453684122618937578156375918615831375173361110721834027715075066169167622854239547236274510330820008942947159759033923490717189503635554485373918241757395439628868913320380819510170373812549247992444134355125589520451186850403738920857129911970384767494061849904406190609815344890705737630574484103659309930677214446414126608531777279452255545580917143801414361841658662850332130756637249824196681135205258279997205846613809838808675835463510555977652960552357365874418437267794880050549898316826431296279401850975309579499937649630872381003122032612685951253190573914158590741227276697534207273078172382156786036792638293683169691245418842738680554611059997637530360172382409295921231554903227143505758895813240964348552299522172937930380511200767636079274347100913322661702823030103144938654586443630731440883769856473638177622130426132928291353703468958018365898694776307291154447431058574042788322307853499509983601395203277241833191616044143135427401467219741836432540194703908050990183893656010517454241613847924433794066946945227900389793256402008748357049292483008141559263982925540417986993032539090639523203044004845243389570455556776556552318417085563098122674188276967816006565211251109338357173558672720235612652180236826465131377590489568033968773221613921544097784821778587287606121548656428296052604487629924081249965270346820889851578609487965832367993489777005980600795583032807056206943577636570489316141661420074380892140044385510022516999256035844404407969940645285364726080283747621278349567566583628807883388170638496559549811789418915400730659365663830153160338663668283502065220011303645761911602349368911255760314542387844417865035858479786830143941798440493511304439703049189003933837907281236578017662351348091465370978681849020368559372550865357832773362000428436717673073130889108259869046565919958020152902335694449405282428695471701474332937654238622793668538481472716838291639130769082749041171387520814507213066916821767532070249869338405525784654557392977972887999713468870748818826627463536292319790153957259064704196148434611253889762258227504673012287373885834219195778832216473670322740051153654743371723617228114962077387573442110603515128493241582501617464707097158400458323043523683254683471947847481834402929483646763721951271366527785270509681957103527689770514205898837340901336346060685565041865371220083811403363847761039680074012997638833816847164322347013578681640906199119693505204619756718065290150626479796828230058757433492857815220756923177943555817113650691175794766550805051156337081909727854835497016283034212168361377693585935754651397110214134415492713640836921501571208401585790145770593204813714469225287725956469742963129088965557274867878171223367579534944702197845248464190565259818969202696078536384010731194897788170095681014531418659519426318612178006811265563478519795193039618174822367338534783257311280386561803373553760416715428695283387291016845653269715686251705566398415365349846993419693849852467925864936254567794273689083305365020928071502338008419610863841849889556391803875195960548697617470967015041867562156471497624301401926114359010881904682320467453554000249702228201778112874423594083548891716423071115714301476794780636244345010663094329626455247630863433406643416090782698112541729947910776223088268095591677209296990103261098664399726071980283523440700122948573931261484308373211741849999397724361172376825883091830079170983591487762967203215665261270054205459630854134087432765746567664721352178550383001647107522137835655442769120101184630820088930350198812682229460959441981583022517905614192190687782543276190006107434996197910826736807935739970924249817826262531942278138120783871933333626759581360867606188154397341618464287350016628645468495631200402807160669572202769928775325917963289859147484486942792180492078601240358223566978666175316163602190005776481140174442615283482574852781168522535763226500018699143333633169502096627245366051625146775478034528014749560748926613783154141769234936180490613807431561700224980248102547923684497522727279002718465762136255298188872317323784473403764425239061548012566095578745392936299754314151673831792445934066720618009499415444034528803250236156322078545562380015075981432490035721142042561397732358539461784141288813425007841826623314513967958862119999529153298385125548908564362441744707586277852995879526409176262569594396447411007942175583040280385073614315066146966412524722605502076953315354013055375254910557187465020676081057413224399631200884896292759984076770504238507668162706850153952199166193911733017969018895171283243539730039393467692544826425352993977943858520736362349607855238592614986981722540057775343207051807169513219661111308891619142614626949221016456223352849874919306914643849043980092508940982711174788695672682803481629673569680561325536562622012301969720779055373277228086814930035691309103349110241266775591375175743303796561331738571743942776139486727912285439964714768887866933034236526964881063280468224915130154073863908964463507883275259354663754125137548738583585684249234565880192985092170084873876505901139159194018701031258417839422300070019643129795563393052088767410141316831757926015690579919743665986851876074624590543932580618038907474529242060205956220344735455081337224205591455259061959471612577689535632251364310594657899774748684846144506920995630907074193663397063322506373402511228606598863052098792365569053401796171059326428189051387270720695196976534756849711632225613451790693322719443842816835558808629150221469880166814127934247520332481414586983270626974496643411032459106941594393616523651154058427505038538647294629059788463961085160816130132438160507889051232167163944103596588341101490919219846566847727930901935145877711508206977710460632322834774502190460434278459475182526331045844982551861058173589327012620924977815976760049120755603793940555518994620458411616457280359389951677131001369338740611640815204905915324697897701022637214601127461844461006744105629144369695661036186739499483551516263052642833529829538311119210061757635565841691203382183899750788915288236704010636878756937671383934621825300631220868878035470563854895882871785632630815701559372653058502808652510090004138989444719639203150198562572785878210907251706080443625664324000892624189557524926910622042643680715341044808277726845774102941206398964662095686452924119073982662814299772574053461329124085424649173795362078673938631395544088818138047575061805473619284735124243615459121774761348724326313397087802461656728739460982034624544204202638402798256901363584948732679756624274124322634663268069689303167420352584334366133161206322523987511384461215966846391883156543910300398400452730705065674712178253589946389186097523472393033184774926454417332799418423298471062611485159417893614018749470311978877687554803568629954238844137581770486823713746984250541895245270530159582429106837135493431884282682350740266963437793131426368164229636135915962283458236809160306222065419994468674037500952320852882348593874583474207371876391794443204752800997850576424706779428496356288540057340545074494452624502575633644699417328735998992667213846328585921564539773222176452626438135277086498424002146459230100130132887914206241423516111613764680894198619715243592195140696227999746450447243473841138588052474392502661533210382064441027166653556615090743266344293937043294607740808205703389529438942378728140764969943076939488290039954956369094633354610491896339984305155714466549782501877399977036784771793025724347570356594785883265330762202555651912229316327941964668113649756556513337503812327179627752772610778461114845639861141586497451663166572407186408292253054693949363286870168245834866986098521713615808997376268919354609333630573595769735564845794472581460049544532914890234497028285436594977896841067911436881769235939341010700585036481244238034139181300772419138185374285904809437666961961865661322532822549407862410324712670586905199296365848433068953978345656956152306530030158770745689085785990653450876182806843207610826333101683658455595791771002940769378568293541083704791726387882537863606358483529644890305928762496066393295461660563337825551701424089729094410699950369391537753732224915845039988905634967126178218194778348959347731299416284120324227989737690880855016678947160072828881061013977476688572623023143057705076140371128228214974804200887673310360461429137224516658319864467348148961301875846640579325049100560898879135633261579918468123941262421030392618347656297345962054106234603705753242671963199443108497007634951264863289089874393386126807595340151623050814084596650253654452214572833995448794300359441283177517597741990322587103336670677144816595050735992903925316895535160881529372035284379688900946937779063021620977494924261033105391676226849308414045079175851007224082682037683464019824317885079759986025213703578047496322055476060330430532342815354296030550551299182811692950281522198543150597887189162869465160865003448129946860889934960303638632093751323217585184091151694197519740823422879590716122460702429952027897095980538441259161002284289148810774736338164300044132803236366799048646092047449415167454972414303064953578731092042659718144514949152982429238090475756564051871298306470921490480999515052646322553507542836397236110030336800046855416877392821443179160241031914717338310893685436744293761837590458893824247291633545406800722846649731291598663078359073156163035326314781063152425943114102053050792349054522225931702778201520876298311210711243920530973192888152651017776618648305585922241662056203893091340870099848744448241520964429493118054955489537461566208417849929900434766518438027177596950772645934869102724301541677168006445413721864525398610048206704730251271896146984093310331895291359625218096700144946746265844950025739338437510655349380500780532982464604355356771068752287987673542116179853366369832198546325435942798540998662889085792750429347284067166721183245047440712151378200512024984109896300310824189787085325425883597884591107959699921225686649432992605596327269716455636586503847155259872973556359988707654025332537794287069677715997950449628620373168164666474607210719656174325418259414962369277249621795889686327244974729521241614904005047567329334712208822328301746746716316587445217939239284405695048471794705278315263831923822633708525226767148114395689985536826456485004684712448745730340132660250602779110603673303020174736593024222266106367219270230845778705719096748561773145667603184813292011961104989240719484486587374600579705708284057189513837090882988954369321755472855644842295311125922303868475146956776525900113198059011271867059533404295533204145019536980962587112926478388703843996277802616017534324334698652029824770524263541127350451061564225981105749379152581177739848239549540132394620399593874070142968453842376791009269004261225620669676642714082004407548423092573309030641100949730970255980637872435327644536188261565331213219530404289204112752410035203909650195130703598870780492259445161448325467938598853087550346576913537865083968413898703634495631979266030489481524557636597231542972417812172289499659867516898712728502187654537533420488431084128076557044020498733429734461189749727419391483100826578403671113699441583997225773716386208402422482924667287118533717811795687722213066569590666469819985244815030456135128231692270073746095143280871086219524979605121400232546250794045452749354966637676770071828999544253496388419572503173783332018096586666165033151366310227136479142149587197978072123801155293528338791909845243577018256462604265663560437439843470819926103471949347057915818070012867658765690015063832664558186959839463283943661699850042357765560152895355726962042280438402385063897001142491426602986504920108897493869386576060822076144706615150511626469760030544522303498265990188668272321839036139453149569154102804714905442999119866565939595166034398347496192427202452472123238640474750049466082206961039858705554031146568579561392828461268889649657524789516759500333153536557381023207535459900556036007889778213890846053701773251725443588462103659454526728694978986569402945779385081918728485609627209169420857754489732415292786218874968861550034949433588642830296491221579349237567708188235983571183221569401621510898924663443101180210873282924272928970208370483892355769728590680735390939524275442287519800615011769825954419866914457493012758338854441329842315439130109354398309492212103213607293394791666869319243045263544524536139791006721475288507357696244234778011008749844434294433378279320165249180252974704846997112889745913556669654948989092110070390771503197610803105786141781606794871223573287207483158461022006319120827123446817346377852998347013459554300135220624278156857877049184609818300015431542684808484913947772748087699615568885666107135257811350744772867987360698059428139098880350986375748668813696263096687361697659886077152316233008379166902850400440852471571301733834115176100550847932554575296179193275363684207433254941779787446917129075118124027564400843539660321065830705459595577586773657173150631062088782704739919821735654210130558488084254657013266188115135688921534783899704378589394309626103201168909494679849453560198793347793772730228683740390454505428383696545085470904690537384253082058421453913274962176027734576821753952538086102784097012090099862566037936603090748353288561087835804389987323735637646642311227478535567619158662689200389579366805396752654926793125686276381498774189492280304917066775363575871080775241835261937118120484931984590399172393297064359392116938880332041410364685687895758278274803137574487044954701273600084129594810768550678603819183612553359171386190293218817993054937256953472168155918511030623656001926312246894420376129876601807382820090409063108714016466734117238516098333180582362569809231996534572864135058241922246039684412301267778244557807571215974869455124442778629800285136565221659880514422829883345249594230145865159462628226364206301122107247781672488641088848873949272738651606496687511344448372912390434945350162716255427609873110828896449596434456842836153522159048589758163336973907910568782361584122052783168152881252832572936029486300488603796935600885659290463325357661790559106374548625620181585825015401579580233359931657542927295026293609155990259639490995617792694464420864797577371901299114265137422592643077892232905216024241339795416123561352938697178240164375414449010624890021022027503728058260268892733952743146693558293643852100681716700745820704556863523102494727687596394543161531643722890611336632113270376382818425922908628246431068598659228826247627041581709411457714479113766110736584593252775149238305792993769466131299489310077874736202877082911645341414227185127772340450937997008177100408962181209887852981543908431420064061553737375065679576246584614670190106399110607358485778331857709383845835261597805402322262961049775795716233919548244447945234627487089939506572621346643990422655142656542762690683731161838061437811187630413353610671030159376084728602909444878632418166119684323917553465496610759769452539907490799156666070875862621974890502358268325979601626176920210717767240183089960444573558483485570782394931096955052845974363101975303797014133349218951249393577493795203445442854618254033318763260178276180760099256859228247185263462281393648030229579589745711368647544036181360376744242585876688992676320608664422359215432724668317587168788364445384350757286997672732836552287165085798544792493247085852960504031481519284887863570977531862960713120584296430075809865503801004824601770486519086255953288607733392044885166571139179538625375399051224785140552058825013960861082219335363442015773874566321080710940757273641690298866748438087738813634260412217753444519964216923358694186597304784709089142918965734621411993085961635271517239360718795590484623253688988381928593621612696230086325954285913549608184270256320198982542379259035166182740963898787947239716239558623567446035917210493908320690881106304608200362667067484758458392526341139787001993235336306983851409123340377174460319187997540994818856889579124849106342013161116316759208234202974973340282787462110039999988653944551092122362086965664506579845296200758032823070969619405981994409538220460149451899188075976060196391253240216827766997444493205442131131145990928791945135056360772971081074043023377481799373520821368196113289217382829429563003643489629784157395059064909803583614294514661681530684873026744321473669819335416196272757131144159547849535595290891449716218537946542418587766018959221977199847824416840811416098846167477879107489915525670515914255820369177204508851392612540039474581120695683597372836740340274215067006887377990699310351294013583816324405365844197978222849185723221426356381670252518892746230434165543156667655168233232530969315365966110717014445916377651248145417861450563259099432721831469327112692741432989768177550601601232633579461553378737894500054350670027817571884459014062607154172883185432994815069664884416474621257184481588159995080395667980599724928121299067420916011293483437558310814198220531276092582398766914438815770437139752658381868566798585317130961279525106946916093620773224084892585256084138466570896914211789412959016910673602807956550281924478076238950885680676594645528027054092473386135684190814933713139497536162037410424530380540771315767533116303207640543006929192554564249314338181377750980310210726318394878003276128667548813250298508042986803367525515727736656819159050771699673690895950321396114924992603149580856820715306776157759004266026025317468988577718980592137318977042611743290340306230358998478684971989059213963701855944419249970024501242876616717501845107669246128581041809445788620299086220048901392133574012826330469551461013711384986715930883816138225654899950672276792654572318611732761657743273640371888452521813658753071375565622245193441687247320482796052999384146195749668943725181398216718500274671074231082814776597727175295638331790102695385442013093330139493960832159637348563373217506334027529407337304832296533352460889644828915230319898241354455061581576066144508212251599987628035730325638104277730035104947487403320335394560517437180599606193605042486316606123108609488232940373521115647925723608985454640952740073550798148061040666896526155588431371921843162480978112075465623844057147638680299602025966843282703016139545180751991698706634710481341751201369199498894178306935766718919550059613210889390562379154531543072186249473170680125337191073032006265436350319439007570062095368094879915501075234593404157887821818917552161544409810569103149707100648155637208491489340630151594884134483154706419862529978308894695423534680046944959490888483480529788101402755347498427503243591540406344341865604546292695193945097352290487709008401722886005018160361250561674701464656357074520192435884465136914250837117620716415193715292857045593588801031729876917999893283731117015257011577288483194578607824001824635744457656556331863705687335784872894707617271058860314028274241870225051383372150718727710335980541660183462667373803242625793696458437022116431697424041254648816202510701594622472112536122784786032098402576764445740787956352030437981413101439418193731314170559914697318863826766617036325809246018373466252320139693640834872803974844469375261446962703634672293530937114298311239338755009876857560558433722010256274356709452476162742364645228322878220188424180894585056037128682965629501727636392054729668608272644949579120465041921714916221793888391577652706388236333824461341447143360325334096458948150491505812779593382995439415730508976507130075846626357222159793972477586663601225015259581734659906378224276568320128463418128336469875234038899011407704230330899956894035885811914583410973561829537438787829294399081081725834778921583708010540181129391578617138224199959170820191939022709665264025176936164286451499709626727801721708642162545549271750587999672681321572234100327006606691827488222353050358072451046485756860050581899830051596529565092075070928483898740595993830759031241014760298641782738764801374600080337059898094934205102678970374982542989068873105677574742169988111626783967343021099185595422394600765468680845101036703372870819561436240154898017398211539159427294752097577430296979173771172722794842402002758079309362110240063006935891477024009085750774503090795524714262629613099309520471021572518218324652741167912298527679030393589816950795523044935645741048080432482622764953971011522114178173984794510795861472205727990613261223242971151943998385385766668787634042190161859291294377541734332392329549378232740718364143925860018901671668878539899852270304327023018530502870400510396704304536232354981489464707896691951093267192467337752217997096899071564693894888941980659796683505515519473566441031589965801726195746144517475004797245920257908855094081050963680250623125964156214635114156460332472432351450370441891387645378621624123999150140342829165234446461486980076728072851487999718700927351571378634994268135466939437715363851854375385935312556093630698865131144414362143440454808722465687266571896487783220147960191715979285138309352558990017756256256123936878157587757325522330247030967475033492871500212062704257898231894733706490939294352083316355879344357066865211262153229420758444798894618071783156661961688581805783286273090130404596829387351819052712337098519455309718662615806282407477014421728294882369232127567095677475399157838593431298971671169500684094555401173457667896461545567955786322971770639582508472492997978012950260713262262142555328881390365395985169873357985305879514846656357951755152214123604409402028427833064875203297355029463253017937387161428727985369711383328581334611443193503639015783134490727755243766899092663236266157996437618430402137509460110923735397782176475533775066177075886848871549423640970710180197477892981083666696904958600533583882505639791107545823569936068192322554016798774667211179977076251393375153198211113645853004393582720683851791939376348702101573926117869077027724918610748194478828423250436231695057774773602966340143410256261285123364831900040927274755071099941932458203566819845901636554207849626720460360565307493492438842193925719746391218948624251870778075413199953049590913285480251156208099421869866286098049670802334417262699698276878108978325351203518842289932810767367745920754298698919915876272670822707308054738228407495064730507469888654384359382627742556162542786756470996996291363553191909447417150815329264837303736332362530291361108374103146226090277946663307223845702487147503546316850687394495901408142905285504836796888201836935547022261114473751600217500491198404507124821169294321563995701966052326836829282033477110495905013400212927431418971240833389612625273127255802144586242837247471859384962406307157336640953443787949703715912123030010354819786176665887646717684833980929420582911633619963305629015628725030191198763864194299041172429172810334121172486997305172727715914585917344014279742960826143895006811163378085240940836184659640916355278677192163440468698263457014084549235502886795706752567827831890458086144934634848004524865985365880489616495987474987733909435560297044251585722859570328988574182582896557346065850346207420950155442652170555846746618205948394969591060718027734378317169728999582003461442529621516921481869383944036191217887005146508639726828296555113608504678103336146170396505984789893838716103157072984057815933302225869770922893736853120731600036513215386481687242753411344466273082724895532309520882827404705865306741380673324843910467782815105594819753763672308076549449026640601058163198328691326277266270530010196278625330549562885682686456426928417027430619618738027274987784846398971374595438604044900656336115163278876389937282875718654967057327239011515347078734231826872455009551569985450216326108299793687513183726384362084674309695251046829049991960592388798258321863508202209120805340391369826905017785723301401037334297111232727860076483019226899650312336040890043970916749514478661572927203447162377837997272114196552838326915633225600295544273758940714379354631755224891615854103009793886069395170944230786480004617445785187196446045515657975043391839032813105709426106700672050045289722793019750611394610509794531637043296060870434269623169973571784133164629471790299331996118925705657405214030487378327592614470036683742978486918621470145558304869306753844891987757176823616609746079429250879844836004237278322386123948377873608373598674739612288654254715981821792298297054419283387784793049514863796192307435974788712769919986256413680433702039698413370116689101575065472407099796209724341904657724750295422403040550166915727511035780865703102328474461951664689380173279931916785054487185432108461752174035068759248787694376646184562369890332125766156674902347522076524146254888579239293202452719244015437513567363979716868832726584034232621106449240657349595412186137442511388375427950997348628597554116207800879557189525319419070073018110447390583757369682213683638187823654704795082903748162853685592904512198196355443629604361092641326822953681446452124826288459683730081312104021107267575047683548313463743396634236569510333101670083131286481462384464082909507665828752487259150282914006031710287369207360619090674901667314440344623265166495298624830023583971762442590114420263809221074787283465658806262897254254708811954619320279786500238688782270446620500062511173262546750267535767234955087613841482191842577207493429327648927349862766357076934713661890292613095240884153134831718385150838471134567397900327332836401627687125089496922715011281177794194540492553516519139715811524913041761912483874445134596982832202223391834288047183900439806034228136273727149859252520517441011093723990148327075799560613693906325242663022366971736693314441613884230385725878935475376386713921399746457813292889329576075462971168828572092242077806858688163215932153776779019623408147251746084079532981344769128113543406134111343823549160756077096163889970964394935229298079144265596979744355366341833957208648566694095954286290303862599454954049169059386399695296957549199092609482525346330498812949673331163245959374769285451635147083154769577414874800692322626717099833886718304526366318798614548967316772472274251221017146280429282032139743116115976312530301993593719555278654055634134267698100819257644086295826974095462288213250780284179243453969828179230677312912431158928979213382632381540892558924334948111092653521565425191273863971175224993329051728945416224464613712356895496781531043543443323018976561275689829393733059204391424014267080137514489270283816900780430800568348176835012182191979278404080083391482735381628840516499981013803876724870018745843076487338764354783072097425102847273291438006459069388885769939585045163002515153761408446576548363034787793825593542324757381843267830713197502289116535498228494920264393851394595393630479101257898604801997947109862515361469660368669748063329717624269436106199116895491646793901952217248168005641766435008099417324436755276311024879598994582340765909930669892288185061348735109824872601373236898018907219574462632033646903536194659910224915320094411089961154693077802341463501643710280868883427798592012326995637126861439370242040054589010052973077104370645968423310879045252827787402737182135219448363488048539841814676632103126857617397315208111646896905957478687645075164337119558900767263559149483218382945269949261083628904848894563621969066095653963434635895293502897862192815865308035561249952999975848817843676801830417907137796444849703998065284844523304207906270467832625176818005769966752288020527715454481779409848627874492011468208045690065884476507082752252769913135332739854504834817654509235010949657761793827973389214970004972304586142802538940512863730588108275746120457347886883836188851293117165469337420497854453985322237316386469572517165746406226553357035738757016284870427671060366222982723338191698597648642917347099977762164654914145984433285089204102808387236503271328562403057995630847200310202305343014384613613957091320939746749855066642857971614211574185169115575518575394174820604882739139423400960152015239097441800983047440468125315441020199218346315588622877262630291223923910487725473938231903660526420710022437878245328223918046861952626588262301502360423439587561021836747103770214001200448240923570327059646631411047009991842121467857565297414983345853855056713417374992129842542776885692045159411510554571710251379214525203593119941636480561409976253053406904993769180010421119629524817014834836344132068204464024002209511657371007957005684797687217421153457641614174615446084976206257661425076348551018153808800352940736064167949561417250120287258850574430117729859221789844635194155822984912897396048049240060365170892452949515744342753194774117597933194782453242627202977349580528586107438014692460219221068576712467338086101254125712756767764921077722478174547385369765488941278831692639817978410226291789532722326763011882055321884757193278261635588931055217159759408659081706974196944103269074291699278227088568881096863281145198191556740679178065621707091065095922824612438240375057308303538390313521872300337465786923463402062515053549940954494296602036348493049257802641464702944705066802074104953455229829971152134592545077399666965400423439793988352110996252323708272548064143275335925568767962453106220506252854982097689271374603672725409233131121071262122643821529912543556202410827980790706123269717006298467171443319418543719246964664612110317504975289635956098573138887886076257225582183443929620685998280294228589348637061671210705274995642241030216210551887921260856560720094150984505823032580441743531835436025315541242344499178510977740332079130799570864715759313383481324487964948390391424146446037175136463732231054775547306422718122132225057922710567729869816956422684883332099580018403266949297212701243316539662107806245697935505626538898002705729807346733410619764949131504152428067673668458707962595828698818063308797410225910925831900980050499874849868811836948698259598233784208055458874540129536200765307152331623469642007820241461783251160363967641915754796301205875397563390442224961479845614217918224511983132530002528242965452217219669174766402751411205647999316889361467001426973413906566562022072137262769288844327613701891932058366417930068696592744499036527098252929684669664632738312693451675557692695117314571562959794441524448785142226704600472054744313891245119870114884310851566270680002451939388995737706198084187865386393825459131010731512204849808932247958181706629794261769195260448002564810252338016276575354463886756834738998511708505248442203198218495642093023989356745646688615695789635854172431786150072638121426272496426265416879454980542855716748179531531535506836012228254571725955913625502151172032519410106431020508009118933710848791242256263181390406882161237142344150348518445136588259349628278280271128631310752982123208472817187934850317349893130980269447645703390231124135797008285581298226546295649854133104822997889321942361552118873995643931690834959579752168813922201184629697999198041817952668785179031429553558667451486465752833900837521995869689573631771881695745678685368919937532017718937956624566006521831514635722198697163765860628332942329609069826350226934307729665912946737294505106878019384430693619179285060507433990799490382697458309991130541763102778867124100987295089020605198099330833975131183536102371665443252155942795813506336784404247417639373751268806648294146384675090138903497098901322007796763575297025689773389844541581802220084852859924169041873015585746432922631580158905005475721420900546969928700073801008510852878306491476554906854362456367706432407155042189057611480426547377559282994707879390927990097339459839255711733029682008145303576622007709265091808230314547747158109737477994444930421941946423488805438821292184222814516319730036611809837478494069959304406045941317407675579488233306792130938204453559489583895029131489097413903890045354468743596901523379434499043195318374153688369600529512595589964771898863374515611491435316491590697618723814584261726203814809197823429635670660616111727795040278761153647811621804516409994359433701575315554140032228435317308690474607975712890474856844891203724253276213932311831168282978907102376645418119900277100133663197451891839465453233256985411400008908515899398198899080505486027540353808934684731515633823284111801641665310827936817008746381949478310820368675785867155365120023521280292472596084546057558323030580349045604301831255464634031698866551747120327354488706042930122295419721615564277677267316338175404391395329224995737037526970812317724893828762080230347203744954254160497045869757335460018775740276931827585731871778359555931220285274118354227786722001487664518514658089530352888045974463075141368826534724865295428814500110990620298238535432751827460413628532296784062105414218698077662676103304885023244290997801287036216678771104435038515069794934257002876971509744348925481988477543756614738475299966791585229003807260387281018352909916121916056881277002455664558420193488804139585442285509962592632284325654483949795368353555287734068419597675464415043724677226522749820587050102206916600882448215335108958055989064293645988959216397655703585200563824974617858253442058399405720646351356295441946550323687925868462250439779447074055472989062691869443246063175671457679804577552232313505390193744000596769249553699632815357865519317754524274335473698245091078714089219762802118328703945573058406805406796102040543903009357207454776205118515450102498992008457022350805474384962154882357467583583061503428149196823065718909168375462624825452991601996948791110291687216469110523620598737109944789412605179148152355400658752448208132910353678176749022333080626682845186892677346996564037624918878719254442625163930193117474217549680045588596490485324963838294288525234405007681261350983740598175813957004655174826208058610738088109176411346210428067464022790968960871626467367161987272565208783366750345392981462233571959952949235595097240199070984073580318741514665815956571687594120463220644678000236074514201007222302905674562952099037770087881473280638535488439527176388956306061134498312082369105552611812149972606920627244203973014056490408387552993955394519600072326101021915729328080216277625151997818861761742945638209676128664000593455533677169530441787986887393897987344720141530816571137957726246671042700269230456324858179004229363748898656251788966558451638322186033146787493596779841100525793745810238552889282110739940976857660081808773610120095163435859618855716025247291287119780527239186466956804175945957968599704590722036450743075586411157848551392337532049604900942189765266307528828227923205689298483828925703389988022459398423513069305750179855207296213212286185856384210400123633823673884094222516942456992967420495608178869711065400049676080476249041484812707336624865978000571307669912488790390263833922670709284245494043728236888311580113019509057364655598976700231914371530484743389666296856736868186374591310632663233995439382923553950819931121642921879060822771177885983145644026666715470393954568519167264656645250762794925747918897831253942241963181132994529460431250649245218794327533471520955548459686938821809987862458400043675862306124377895188331047825893637722545657201935356967405234650431675680646947764866122048314185718805577738742346174747606408853147835417537618207030640293102778657526989671480028554589567920762722173842393185412069418397178911751614751634924695700181571412120317159425876339870827844967731160359454201577329613527814640786785723845851390851484477666577597595988780131473817832097208298400401342903969707088797100824720388152589481642874780076342203615452982107558344457782925559158695979848191597106556607486747754412257761799309225967400651761041794821476374331498836554136135006795162230158999287246169723771550689241662269832849278628755167485915632729727414634693475309445144365036582824030985506903202728309263160190412438680084214102879014867214926327078723470106168466564180842523969151376266119270138227821876668272200936705809971120078745139520355355028356965081903842223806831605065663127153487140766600773371003589997628464648877128737310033687365264157812986380049138830757940042137544595793129862454176229660694644993751685647065284161613713071245518568693316479392693649631442302144987464674031508906622363299378046064412071461841287792777644169904592384032132792551983336732491198444723865048012118912983844508428649459526727100951535867067247680660194876231944553140632311618080771826233720267324677207887495859507188885520191186526603477691907143131263129520687128824831929903922084976569597907849051933398930720870660724220964382111427658084019952255978089850954489482703410937296480467008859665357217143114275121416472458885766325482554588679233724087520855503946700099960182844893231010660546670803719639125546680758154865456591774964109763207393358424981407919819129106869907747662686202067176467081746710553672409002291802686251591692567081951789617066848691623996255612228209469835061878051297607199561693347136422115358255621224467538711692947173453284548778105042658757040415704517402991071371711030835805980439315013724420778787680469221470042852497306708210888364472169810945685228260581220474848197121437670903787239793241491393484969421920372875029840316058587572248403258055269782101474617345582240805727504820497104365350458286660494187125658211637101926640247883702803335108251731218691267283163333334219094624928036533939734708518695062136214247859873415732329042686087872855646664885536437714277498499716589591755764765958274799757938557963110606922199768923490292036580216920840379815806857924823724435728619676293997342911983892962862365066567433133694607485460095355505816092582274503325394247858010258295488458969104455768140146884390466367661440295757293291483062655140764652173884268460654702294298755501059470927417696879481063061068921455306134511244171017992076047193690110347187883559361074113882312461691230150715311515541565185768502516995400359615875042876745386933387820900380724043417288677816924263051885378116475617616003199370963660181375709094317383011880326845298040422361694284953077921204245649524990917919326043240130350242713915613757263554564576715398270603220434370605321710995644744000151818440443258427691400208564390026453223376772109376614939582854578382290922485947604386716827761137243098145605918238212533459563773435519752442773567178318324706336269720186718508674388420849835893255119358472416756623131484868220083159591112736084041008077170726642389236703153531892156624492007815621547556123010682883539407757764883628675057918779721259327606844175234952048109118200446946146067052394688472353363149407053832313332299139407054462302449536656860192848835481337759205834099450812947120656532301732413899619238849408446893736585100559864698982248470993601442628218782970450187436290464452775714919376318421555613204438282311120291411881503372341622328513670348823120082103443803021289279410085662539832722223767187506437090766329664518129089739819108699977513226073281302586217380629133011491181729536587269531157317522920603170031141972427479817382066831095286107809848831818113408521129387907053222829158741247842563050610561420825528385260550170498756361301761353522173939274735880671001136864165869741478915945928581123831982584916496990152299386831139039205612257712016339570257223152086102464791906567081949246680198592781764443652299992111748325663290720218982363973126329864435250900737998379499923174894496677367690843430967673579116631585536031373267355237190530946235609654038447833792070471542318172942062630237251194254970982352504078231460668213822854044484989706060484768469605833466473986554482746333095202399064039111686795753453444101733686360200565791376359642129249774668645743387119539246784578332955128639006152647296802595033070933144115823820256148886432092347235693104645986803362241547265651002801547761942622118607643425533177864211595036230187385355603909762566907566473782122654780178914882598335527960293325923463838075999997534799268339303244638765690974021450595426517281579782932669894907128288709864806377399147263694346274428873392528254543674580808979532484497319275235042061349228973934468886141185353100650184453011618729685458472993639371160815394580840873163637478064461673929413803238591340154198480393874017315947668451179546207269089660739511496805194906016459158958060980433194149815735650112330139777072112740703478022239770533413642022541454035031726749589538649203973844791087236790018546255983770143356408312143965797780267650471900506578127705516246529003701067555084945947160344429178432814999381139905428069687555818556887352039702987642950188391510069254128592344458808203769897598143590860172638935816273750525260782240520289723626676375887259842585638728502218026826790758201755368561353490987649278257686783767639555647618559580938238458948305359867001512791023626912980554775506901750039421844186222073917868359478066560393132596527662839440120047013990966635860998848229658692500542979662948411043184472521444868146481152826463919350035510717596410785799815082544370734025609960187908221986150346228687554891037375629918567137463153698360711827912813177476002363942371744991378109799224906605342003184224464532371339327172423597283723022480741941199057034713218354275556943002717984953501493811638699881173905821787661060346348748975297768490660120068420108659575535733954620018656758130941497583921885914530112093467375188845831114481367147300720824789453210949699932701530753821520999125183720569605080291137485859199146219093272123360650005330700365082887618676125734004271206873725888462618657598522976311459718693632850605706785819413383583593439514976363568632922960430315155673194868755280683549158913756401416065394555496095226689478446495874213514462296161448801116769740460479152578230962750877865965027637441842598556732861131648035484019504982017037855109897657311951835183633964157316713527724239403098842007488976110217946205477835845897919677095285534120937556002444606196562754070287758672178197445533402047252965790571733578799718205990972395367154071215583171714028723212735140580807722482634834350857893687503378135664715412052463254811784754668710828727965153899318391699648668378428626415488797560728855223165910423713421061402087982902488299649984286738989860778530897243688606360218104664132827445557726514817630910932204304405854105587414670602553017811380408137524808816389111072348248784729742235379136508075681723425606135327818917971078588757073520301903541927029817516623260984506817523259032786555691695058426466486688906788401728642551505154916962793862467952464567875586340023964937931605776134603284102692444671646336087025505859037541284396686124279054905206850878904051820288994248217458100789238524586107756625198175061373349215992853939165009542765208884885036611995252072374902589778067332169025297640605856719691448915760544808035626609479438402033567181426883282949931823407324732647373053347320746256966999520370943974916907402430401691693298357230882318434077303526289032851617980305954056345861835745595544296081431779490835237178604088157577310567439941508485578111120772004387370761874557193188393655634915935407279872254805704631825376414411033810631810676640421764176418405786261957028360436426959615950477381654555878888308159852244179668724923858858730778078490769836161759158776662456568859972410254899922496889504782399568424268418319357149118856189826925482712800817123129528223395946079404799331649801435364673994778679959522001545181402050677900843130912293017380945517320142086931432808863997969336390107234837398365296659978749960110140870986954534885279036466169356789768214260872449122456690794988837179953280028397116322109728329132196467056336238204952145236900729970506770394237394739264334730099025501005413142174435479006687628150745896977955746638810633289773816834854918583289879617469397449258884145141949462587934203522618682878216882678184844279553731307182178971508975093151266918677487943120215887435095617831744210557762820130304644029068011964057463278453364084340667055591916492864786382756978600937720312368164303113167248811179315076773245643348425516152633507760970508312148958849466053411093792516215158424196101990270668974485514174747387332873376439622424252736468747442293485381611819360626476934671518080413975132823237659497423127307283500972852092838956512209113868027598342906813701980693444122221266695702614412348400853556419665399787386016383004499716328706997665192111888461270332338764849197471114020142952553225137850843560343277847398172946281605892710950288660685475085026948988110620927957911210925078680346811846694179530582654034067623459688685120147685257780407403726398516569554710105479204411705805778413760132239492565007485607512044749597873400947259739701470337634900167413928438287436153799619823283967593544204146871355037952024984204826624789952834190059363436245568169649115214162879847410951127357373142358974510408102185508451052775026829946245242331189583770080068033166083258430258850237862471393215379331068844454340141245845992885946326813479257092180826033598102755930574928806335026844683421771019214078591640984698587442242783785083213765800755259165610829833574148145597222284068359643890266994548608187795960804934893717008355632347007900916335422278409717078001445639763175124210230071099042015842769452850066280483980768249604646840851253576073924784625242920645012991836626172383447407685655886182847171700810961649345919612884331183858522046338886034065161886854065006426288083458000571237930768030261554790685501518561711483555003838970664520882227486390274243201720055677351049479460687225679611363313825914229833191278331943100229739235989153189059362651509075809328042841018794959784543158393016214706007085861029424089944279539568652022198444549632908511556823231403753653349180597097402715731033001745173628126895322195699290896637623664633348423102658949352338695257621385002586999427003164816713149841556971654729312470578199472928461136039052607608686847272809370985058147672201636693077355437945324181286349213720583518640957910910926631431521302472099071412416525796961087081782040616592565556518064062343604032611138353109995655694407259341423965631223303201542799933040333260288881161232801610868102985359041971330059242882887151426662447894128198165895735132134744778576608000084955643753465166668624885919650455390954598785413048382009801052566830185547545737317282892935774813339915164787183240789020481334720813479323291219392202638805616331463554519589190264474711536639329484470187867717701742918271425811173717646863206222505413965042966732824385266874154255034785190880505849248741394752113691157598499273453781920536478244524346147317932269385061193559649008852268881108651946587258677305431114889666025024677676950825247122137639619076415005326238391214815458607355946479733786237045820799446220277393312831788035529751927278827133431157150677350397590411709310307401013119289287033833898911986991396199632960011358834721316997437473015461047243322471221770080979340268785305548055682817539987534273800787865398903116591346959565012290615533249211286951673687297097359258085587170724864706070481478528480322061608740424346571759108104661976774222111489364342584328735497967449172255076415137768158362669751397575686420874091559732022727820051544856287679233447628132393859093355068199117176121603511657264951020196904122528889945325679941724142360254165643018676911102365328743772394762593294451848547988018655039506601233736066197135395299601935842151082999869552715676614115229971083424523129605896614518006637194839837180122475673887986010654557121864418847196190025545617991015591396602894397912239137314254620237140907967038701886247126976754185634778567458845033218957276541927998611303874868694560459922625080234581128343642927794091924716338859408451239978669896407069917799608404328224804797115623148887385001565883893163801318591125056749741862667341497858435439570888085759865763268855395999423230816227152486042517702624353376217372425975449834656167143744563323486406501283353849677916388952636794513631555816484303388997363120248671251857986943209249246075979427151871873014504199907087250356017244353762820368893378320706449022935025903712897818780354293050652152707104517399312048779767366061886900663006052828862446478360890797526447608005415367286665794210502986807230609022834786039567693655524206508099557682910545858410134842104301729640372390133071997657263894711867710275381158900015590219025469664163713791512646217209790186267753373979928845374299528851480174322128594991233670728234689793338589168475503797458400020562641081165916033570028194787990940134397658622237938051210904477754868506935067984377983856777878365296705086017176321078481242632145868712246615262574020957449094489371093394873644289599191452910795348071113940904342050393978086155342359155752599022352032029262067217024473630206092347720940299098921868929422865976297854594429632081340897929726013529174577508434790716697460781635416934237311298427907721112164960585564069298963670865372249267402999271251159617186437124423128608916065019046862700735871371747001637993847765219835345591827202010536423989526930149738777144017875159392406889521338818246083962349845343469362770170152399046156257281077598205224003175272418080176378333132576067894330498922547988295838661401209429010919069195056309174467286818698761053464821007092800055874285938786855922602376352284860261607514546106064238805039747899024280207301806235862582177567140208745167572762489536497019896858912839837067119214551743496166403287988202067000597348294924180009996375945836690134170888511601071544544807785919075936520687771642944104860135856907776184403876224192074989691665131066295207921772595337598033806926636613935722990492478007545601576108168381578063199774335306018871645208231060691044987587338634589269384787153741706672609953422133642424782695260558968183224262790782039449484520734587684907724215610797757377488218859956863971684939041633196556887827867726358754310355327479216823466790195457562642825999225158815444388779485019156536811664881012991888470953815698275462026563349586653896443792198929661621776401958848295658113703272160692064246778183711136243950534949052514581945409334796167568020055215308619248578058231933672754343531734054600775710361119128403800637147769398834135961669452867463737419313461512740601736999872049575704241303268651449268173346071000444600711819238533289851872414921939539406933977580976787111227570725354942235310576063587521127002977887329351063466647944951496185228028495085612528627380434221025959117727658366379354981609100902991845863988062163787693412810891727051326298474387184675400952147990062913506333653412639621379278634462941033971924060098375885847859573624500973800109625111783675830280860808008753896525619862596912991378961066470074551549900811967623636009515387779753255524114371895473392690832273577966483705940173114757828296753263632095408370868087799653768335282640002598029912578422480192108325758056968561397347161945818709137597535475717906484626301783380422273341954044332164574973443069158370171925099629216319901029218421350466640902037157097396049538512227786368136222001649898346439773820655730831536226148104137857051038984256384622428580208454790604567232414593395688675605956972689017677426356072468160987396256688638887746610938068435463860006048755580341713829643717025611180265932569417594156016483890472397683610080707330906622628091295177844762968734878859746398236630914254320824655318824633935566919547996150283965107296000514582015428993191809230763206436828772374333438485943155103556649025213538433822901096631882547971568241280784562931252415474591893736211735053504619888330739485233811123267923893928100657273400022382800999860625511666132817142629705772625918716273109723722527980090850578281926923029315051730198824964093714258452177222041206203433135038678671170039024023464572861929675768161846326503786065862169544633811081357394644875384263159230955506889672355342260057470552989121336293070478347336939118010100734025714328226709944490322762663850041204617687187319254239421513474077121843849204416989166901818564937443192793495735779994214140047538745971117625576828420408143696978612815432030600208784368002845477583505472131449303774769473960032154730266931792648689714917247963504175153615717325770032117806179940374972499623647459901430219689814249736639122382542689008623582220429661844734308606202241747628194485713038711236839896665671940640129816773510611198998524600438210454386671090152616728790112859372685658492260628896296868189907199030243539804081686601920437912490993050259647856744456343470067172921784434106426593269629698007830802430568085845872377082936183548083098195001665109909439783783048920751647247259540574665517380833924963234027216656150194355240204400317174815060386873828762954833976474394400866638917371440964874822878699962968968805603799887716110211809364069823582338168459997234247980253408146254599468164564946226445809663265382623714501573080628005339191854283933981635802835229894161455519450946923711738081352543755844399304201227962020680721575279981952867001998823360754982099184064213154873863967379754699014008084214691509169854246738237891629212970652541693855260335015639432044880702675058861385162507173995128843174730093459142892500388908865558610281900300650034366811554919084496476351231452466103783229775293960844674002295488385232392854945578024856722560462737915244014698663491788348796789826112696783409952171936797036369901082988111867744336247665981446461389969777634998632891029873088442578128705685946371477120602545273117368912443625293547759267944246302749825736851317555734516714210567120018198349750774649909006473777499167395014525051654829691577895708880217868477067223115488333238755843915337928972190345270203318492121953217916097138045385945713535849619193693722414402078570572282113588919087559923035560564222436194446534040806279733345159844256668453485287961550547510085971857417755081774740262486750653122177435561960570260812528328146156909751594625953381163884842893471239036788781393959900413593909908192119499915532191999995489108560734457089972440412273078568232018121471265651924825573490574952750184166378378665642903776637190230464323253069409064523515225089426994814144740205328354955047234325770031544482118709176857269363315241485622534742288036327218314785221701366682710292335327108932726478786653926557006741672246750802003812756112994478900995860143738037893881481444904253082099326640923258910686436279992387669863538239195505661817439641244415345930999590886635615272467491382946397916979076515471230630653082326724035145428789887445167318139918900958608877898838653699065384398073936660540081010410014770893863807276326566907181925818455214190830760833238393601339193185275652389767909297414065249599830211858678193536541832319533463172512755909195839830081563531329181651617226929442954497352411164468539957153689322103184324617672854900749914486263188714238220670618619950455808512688836958283559792013333720579494124046750933020039734939652029468427958474920690437319516825572201916290582338007475895244941677968609206190015461731310571454213695373861380068533004663865899586702167502946931280615187379914613500510573263578838794154810324775759568232276361409010473265787677506869095798319161319988171927011074735558590467490212279415158585592110028034278762634755334466558246139841469082949620403044699887465594120907819556323010085390134642821847718814425962079085100410413054276132467917468860323495508813686165052216968246337885586046451674562637523497744038257138855227138770265809934905623272072725611106628878171993595026449271912133789532850635937427079288973486274992242732481255178853567512093910752128431552659092724289426977725493302777784467599131703497236219013587982688073816829232872910109822024454911385792250344909754844667169037306864986161786526710868125013848458507318899842129634441759644322441587541218099222489941902559112760578781652336865507823446236529041504792237962216680236526013687193248990907411234060236945917867174353361621079812456150802978647401542383093843977807871505979631633205004798396762988306388458958142246495870406686302035155149933989700427432668796329933903435063989195563868278385940315961199263307078299613111547757387449137019612683430685094073513727572217097389587288663840512750759963556856805079366338665138449834593287441328516503861615673388784139224176281304404126636538120770035976650827505423925536120306863843899870734764148818279524219361758814236041902562548226446248990870405492477872908287728723373562425817146739521180529244559529797190752880862065694377435593040349820490626162070596207255021819481767094465952173949085015013328273072376381924839004495826555935017003687941730772652816951452537575098000691459060757786584198976857227628149891958435335046015053267940141756122913216069015724109696282205585663137301453871152352662038198763039444399154557799655238903600992674339156304651321108372688483662277397480245208183657061645993262759819476039035832393765674663209260492000684143707856863027135158970001068533837923931678167400876224326122452623763183184509323625791026372038015160073316179340756012593138240798284252466717411608581850207241636400953028165801379297263081347846270648577855572776011296910751097045050205234527790798734557855168782015902458877362656294691838038125735274259756846471691918605036745372975402924115025262882694279623288996885749349373922582392841743062098162986461461815492485242390370504571363738613318323542455599631159871821377021397963956259736918598859842515750852309939405137571281594432360447817682120225443969019502519236521089418554839381708190938603426636456241834349640336739876755368654995415459432629281732079928954000615959828847567519217852120586243360257627831406228240196697906453751482509755435815905790684664222356487942325696201649542564637717682557515939523436892441419130276363391510951972160899954007804909910153203028800137973544191677577273079819375718059885275606613645233383081182018834104499399007697529604637323294406151337256370611018497276178503226649669015678726775900952712992667240545073675968574467961506440337538505431119108678942320449719310036835334262259571756806289937081571013514476139255443561410951918269963885391689911053075418957426938333244682338304926724925491941837838866460570226050865751011684717844053024558818426698993960527692842820630955221957914926235843346988281149746171829835586215663692989172923858952039164773259585214324395192888112731090133707296698990568949923574306527620480134505722729518454661993994887684274462726492568126802055554666236075914778791069761522122915273807775380452508486629411451029455962474500954757637836777420055471800812412593341133397103213541685845703049907275622790611374479244194798012279445234980510555058630085217429249712210404294674829470358266460444638023071410632662790030270044916980306070558082534372203849244640966046308677718739602184782608711306560075757577360735812764681611196495605220639234509446399687486649690218988065781735885847725414844447206788524164204579743632933150272270730010890422004667578019451078574528336839434597474474499772063212297236480421528548237149885998844494196435553884845405390694836461692853705597968606924046437898259780954238956412016407227725145310830436112310631262033316727512104135268442070752523005720622371518807496920077415066156715655347864816248598083631943229495031274853472710524567683007486736069365575744915238367886688683103052158056621733649652418174692874263235377477018774770051895089684900638463863600761520467536849402243872705164533053789602482302193340420413597953452076649887322007414978875466538007064218810123333922470952654175395614279684327063433848351747545069567838413901332833018599594887838403995663431395250730121513076871307724210297220980860835658763128544864288954455637230735938563935942879216105453006657284536945082646475094306878993057324555987675082564404841081780513592550427271439344797168527572322010094373268028809969052517367643469623627894875071363970341603047436660880187919606669218770503443617076321272680216848503494853111895517645085326701122454705945526972086481783558558395169093008064275644029170169584241976993929127300621833473175358991726911580817468991744493394951671526793738688863044501573284499186508846488839379698025631862120142079672797948361777686046529537229557030020278039839675555118654504740582394685343274687675509343621031027885640083999929805145691448989520735940810628923133573270979633500684195229977313131377405663886881644130598008001287932326571790556307411911559153263851115663390776457138150822149032392513012206312439705162469600589789426546825179841518384467444546309977563046671601205583950891024564156010491366632654936991316981949963281715231308554818971118044391764661442292653532552070476423515054718661973514661923343958137087401477680456666789484515679255016967242434022576461563998791184233647894456420458663916158453861730904993466606527809530038924178135653930901831982242694651939406208595088607143647153895864147084881281963179627074801918449266368442516414115220188406514113801402119519083417974444616631322611145781316982086924651111407987320130338519115667177911506951516276668693259239064545125130641354295886211439916475194555064031693372598132793659452272406574692908866852574848397242397894601932366216765778861184647942845940043600931347360914514400790308075627097608801742277480098835812731039990913787850850095671311795633782775386969094426922746646749240783864142082528171150816565976684162051262156986799920176746124796729513098359622610021996262283454317351590662831391423739826574559196376831441566266769165001705211218110510825456546263537309504919289937508633250315150159329740695654468631880560871851097392244612977380575946513048710623296941866122039770805775917832163527187295361812221043165367751912264791680753392833228955350194301735273438266511787102881568583286317419094812139677215608005930825849064092961787805920518782783873795564928221129026084542371031962793900866005447809449951081312740712021826015784905468872276529340168452500828497557551867399015078102623770670748226506198424788851165685773509466928204009857011070553392543705086108860865117650456033863049349118889133441157513391246643437309645332769835313538652198771902338744080911257138913813413134928049301820594831268877015438857702685300312398619610884984516851241500822378449346817885171394770880424294718774969903176800127908027711885621092087070954397829404374005231142644395936799344466866709978561733439459307736350742282450558908429555459916182535302625415372295081820167783374851979252787938711007201779243207599333855690061625073294776046550244489871856814759114378439643323843163764771818886205584653143794004576712340953815887847959085623642456824293080249033512488341385749659093094486013775759486198653204201788366894428136782404775740227403042010525759282982045429620348066279803336265202757323334358520200740034736972564173004750321914714365691069129468033430748136431033719710684066618262906599518622006069702876409498057697269913511672999631794859680067837269046020447945716663873010093942846665753986578552268299967240425862611917653964266647413139476308715630471712136076926122016875545594728451764046992189912355975002871828710415470469846967247047473379960109190739024296644866442470075011516693257126724292525026221344583922101837584364707323165523307022115989866523802116900509077812152984453706032665152162161700994025972595721107464843335810410584787605860400309028881809174560954035640236654982871406646157347846704541480443479907833881558028993698084351386884559178910196383277668895693565577276647884750665566950897558656003995131364211889910332005662053595281876916966945225803393351115146168373690736103258599570378417563734273401692984097847662935089814364285128289620012246168538851872062619322698890750469488476672898109901742343883490601424053547534656365020037033763523497129225475337432678463428751703884283349691281423911998977865761379084969401037739103377567080395917362027190884938993514776056068298352954638289476738829573390501587140133432069464609461440222957219506947984126659628060374905283362339744984713394286534576010993063536769404578079150411384979997252802471445344055761066591867282180748948843121565795540918031796208155952730614333532105820358074214028311407275320405715200926619522440567713034050771641497466640152259178768718933373750030208064574205852272734075255249958883934385702116104908173065433214239629944993486381093881992505828015399522252633617791409336272631068237893785278372255837500654066748203967168194579289528145721355463284722027401415122720661792539373254036091739265174839939902097145677784820911379935656577674486793622019714470820568623102848068901133190385664330225780108919892570276226446122533154305636150315466954294094270778502713536420928616257577381315112198705587765328891374596051910391057895818289767734653459288635362579077081598990704769643921897365797670040138292206774761809329644642075966202357667509681650654254584035048609491424690356376868740388802108878359954985900736650921484834232419447766593753793333223161928309941897647632620811254328818903496757248534296702050402336454848610338571275628016131252641337782952540483596904604238994374489942620791610586421770627046850714772432674755085596831863072318320549443528877335860049158107044285620746217890550266149895591389896345145555492065431416712002538799871316978918458842544898164870072120683953216214539270680551795802619574073756587133106674583432956138647501178222110731608353350589075165914877671197903611544519069832768915298955529542986544977995127119169083739938589143405013137934561514015983110600035744780542807739934693623464729817681058656824029558575884106742316995310556275754682431215574391264216039895254716711879844276489954109836706680388411548782349102467187993571226408669883198611503903480253869512187321288447381110800508713633986747172003945656780079051704988535624163068961636059520759670183862748472625789157992269648508979491846601294814760033011938712510566024699839886690008174154630986271330836713676734450055414718475231021580885264484119682571003654651564937814931066158490982536873137086855786843844671650265013656026799831835989785286686301758337136444047789287935065774427688026049635208381028634753585902838526217510045333485506108699132017158816306519040096180639277282116357546169428489549169706830617678008225138173345875986005148810890773963811995222918979205216088689452679254362111636253492988439067185327625980513262614998794558733640612290324798850234157781335191346754607995670122273755672965897555589191747083018092996058923466254148869852531600295721033521865621860984968587373328596468111385922798518901134304111059934617923740552653916328096821268772216431343068560658520684401597278347343086564546758637755475894621129440459603108897756028972370662588090767443331152189057921663990765430608367688653411961737271307653529850973393394423823918478948831501811527817539110796347274124785826698719311404164567513404865757455457710647865887019303307284576320136946640827879249875312182551803006084396111122797871636466558119175048505234768437416000314643318355682975291089393489734219483287714749269006554025027295174100125200020920407366358983757395992449617442651352118601152978928615875606777662706681299152654219928107442037838002578511074038057273267282985867697202189546610963244174294692589982585391949959657597981131915352724888393931803508942712069079270959197103026472731496980916686283452351183792230631747275853998412941392832368272749675149303600822388926863793000680825943478411960685821322829562454094109060356239835062738027589967016770822186674058685043823208952863720238594026183319735647081034971337692478330454467551544051291698281725449823493645113079341738299361939779403111294909398106233127990780462502793514438037506504376891051205084800722034198837359870470150597068144769920369707849284841800546205354800890284294039461608478162949164329996949638700354781316098140361482882666970171919113290683768219717959228249136983154153132091057463328271007427926529509981097389449793556321144737227898685321671667396083298671127853261984753154948661996405160235018530894498007314196490292549940397075392016525119034622735267224160589510036231490740934644950218482200703432440268493129110549445035326390733753701135106873341618305180778371338501188711312707859817116887102973538966007528875835020902092956426685256218741310635620468614777121531251069327547415116009245059398275017305479894417569390213265335427505138994268025767689138201719383909001258432872650719185536397747215144700294390829621108644583625501908675443377799688108821887259736045919119803200291828967682870348458899868629770212761021845192845537788888285178941404956169715765423404618626908913308936218224099056835903768202437281621629519542035057734369121123730283958020306308826402930747993116562945097874472018945786264388728772076671768885852283079118251279148298749209245974164150527138246787321853393508994305905181398983538060546878513024999044060617265437576466395959030581904375990646663203171783166029965520846944934825519677703071892739545753126095675801410129263046287539502739723684252585442334035514414590278212254156476987019628187987283371057666066102473710414281028711399807889060290105897353224246799748780041968854530229245224748745271655019860363073643403383440521220252813527678359027872114051237859625876019980604925811921836547053850563474913414405285313405862146003348763516364860722630935515604725240651020706461677550451006088337209498219374634940957211218981869662077606137333387925080929612135753304270067034407467655618817134462042175437741988641446726894800625360765397848840346317400466049944635813767357806407718516517116048277712752075961535255018434253477859869348412416152327486209931370034685060407169944065845120109371321321472379590872391658633672350574212910483815828068906585249893290852250803898719521549330535072776849789458121380350243806214628042338570105224847674522717399759020318389924160890240347570580345453356889650535998420541748894101119027815347806175252000158334362941858563306650849118809404235207444648120619121907957435430590996620157642559517369660249081262687770149971798918839786948035246518552239549723278283740353574882282824110625618503513775915197796223316773878641708850535634755968866220067550481104446956081464367692642294743214887827878936550730337670310815724158193197618372442647880852654724268453558731608038034290528993379871439903711106321743828336663911760477058359423585794125612656330021716117045753617301195017968579665822780912113340631398752864727187289179879416945280523631064033405782383358563079518708534396605452582903875039030139951058098650169383637255359807786979071546462662240299777668955648680588990419816599871134303688663577912250851521050210990506633633963380353866857414360206028586957111452616060335306683248116114594611670404938196617690749701815813269454775851043309354577903079010554588450116459652977804311393299187257534557803317288639987769397502102855404229605207781751748691054053012941194102252696615644128211144920853118267106164306091962296261082748850176151003573266487928750288300029470722877415516218921033487839769626311294926856746031681037853988490154465761703348095964933194298909647611364290567778747198211791465654200231678321224567603161416207389623267823053649268647167997768119202981693655461941981911908729701958611057851634903234332811810661750279752857272762607128132895223928104260788389422448716042440715590135752847302971010871664105690072490174551784996450412734601645893750233582718116690920625296072155545511253822205256260474937452640000219097014401348381877482748222257053421652343917221967449319138141465109018784330267818912047695822585372722078151960858919073134292168582962368500820524386653022864271926257129881003498575873661982241875844331614565845278458511651573249465686830092200330672797881809016723292209639774061446229533276751714253907865343359280544236138190431161372701343456687894554790306925814421560355686847783653285885430418486896196453765868010312682644789328385300062720088154147571003026051304413221989998334271771136017933551976488116458192200344881570937625211433468294007102837822095431077901367906953591375479460099438467604311782441352021134602564330240401930613007004281567708558236543637832075969025566285318894249664075032399936235666144451373307998103041657354626830308302104522122673182414949817009514096420897756583707802175885695371824135851713746098288098865692789823441012194244199818918060129121740528436894296433461480851610450555266135968621837458654148799294375043955043600739226287201384048849027196231303061131754961014388246816855559924339681137678167170632320554452675209658694320040610696831186336107731479938554267443297993482014588847501569219777869785042350081727579131983753811832858768312773464006858196407134933180951541714217767840974556959599774609412753631984833488937173174824833787824335290922728001398668311556821410986032848499846325708112566169892918735872733124700450247876990207038715357677177693627129353626722509847568895508991464160207499358818368330264771582751016464585620242898675646271095064991731709644889540521809850569208705001887960312099854572333440216720674413674253042638880510882400721477280092819810199575457069641726275370095113234046664612029340219091292507891356395475027645433052312804551113462471546786547947508850035806465166679738510098493654685332223921832938986983367744845022676756566761982585848082536296567379045994975921947474833300326310225784753732364461187029941200425051169233115949441902572328123150552748736157321933834485494198173338797531198325767081880883383056401768172460153099680599767935057001895721142950562909025154725623750980789925507091635928708144475603857083094486251137606936554473554123102327722147267200725205794331982975897016603813309335324540011343434481687000645008692593492094150672427594587092098558496878458218126956479423852047256512624555854856759000922831537037665221803147608053595552505711435930632618986878736925696514382405694724038435724496813356809656781055448096722464009212119594495427494362228362229258689987091911650593130342279772190853724037097558741732054477824663820386207313378098597771231541847911641965832090961100088278268384713175162595458376046441367055646571197145427175648188565683535380564552194821959573870223564839413695251557814052881974667503050355527724590190866421451831004200214119121486131212805122681876563417620347536464742329596537386752361277758155322754338698322283667379203272829608377607947022783277446042197367938385227492312143699804035294381357844128816746014202130346085828944289268782878831007646200532434585909248887189392849814598048297015504120225990702147189417631961107000991954666647249785291631658779248651173688895032174664300840587433579961502493041409718258187185301968493805481465119583942705931502978241388606517474131829042380350562294207376874510789939080703517508839621451448859196486726968709726516309528281492079115554601610942497784536711880707625687093450975549962678291413978749243849935173231262989794760982485416439727675888057341496631863008025764894001444597800626446052480677515505812379214708032927372621650203995592167365579797145744203016237565633469614417151379567423139721753428286272176692623742486973175068050427568540594541501601244664774029079569004175152741298854544817107945152788542872321255701269196322447231252994564852604646469213780892359485470043475452622011620957043889699866274635259370553599268453677994433208343973159632551774760130006253439853788800376107812305751503684383739338754587481015468647785930032204120712744051166229250572760144847309163122466520291967334029765580393054690916507616584233831735466738499344206156893002801767339216600477599577311321659212216890012666275117833179794847125359914245204912590922226774463703961257535563695989541408980815972329185068220196177265853775625264002001111395287776706310637600401491509749936052780500201613686993160666739695357782883579511915136829613229235591199868039874865578657125810392210063847254152457544020544528257328550866452063316762792372226495564965642224601164842069455934635356910369721583303752025463237142837082124525804903254724645060500403039148687917596485705902490956483475905923927311002108001875895947980152733260948820455988238970040573873021703407315778792896154625942751345128321049262630519701856043154084663092290001410884696729998482310852172187435054936936008042704850221108864211051370428045529456243403628576067302734544234072552589926385721205949481916754855484870618316415351837036934229516224495925592990921677457935804392734483795290459120678859886450690734434178115981172544764031425811853133263779483265267583156554924542384149395980829392397199633055198986243063509386416863493746602649706642504193042354162313953730775515042073773293787361233561312253614966632707475408106763808037983491513770112459723202604550989728079971819061845164188491684666560287076536166301631144470994205999516282040168926532417309662010194282193277299180474966191140170681818744752345123077216716779411208173582631114512187096113231266168905187703059352360159698800397395760811559129690860301268907807504155276489544679175759697140160232634384987869407724575939705576103409993738039441546336235053326809324337709735043392913256995264622440605132993803588394527581277389804755186748902428741050850504376652399517958515601991530119376532315644639413130855166328695917027927692541539540461026532600068318469833985454655340511211573156580337239969676607828570516700895246356299166482020668440892311988572547635721907022026418242125373437496904321186055168026595127636015241070763405768074252123836090305591632608443685825639374901732709623150259481341413939941086960157888524406026447918692571299341435645875284989200975169800457983763721512179323021056340027656197667707692254825274990424588731378738133408885309550274532568602223787672119391824249187027996640498196842520218056856627488077169060222958932725798904847323609533944212175150308050332911155337063809162388959580622400032833799712063840744395497507869514046111698587199644210885836392719284399990299865106358458640104495935695485234025892278224558657829436836053106499789529725723308209212559420348327988256953403365231974018740257827254104355405943626080445164675641511993411199676109769567306407278296465469104128987813944497242489423479194782119822308528900677516971552982639826685991971330424305524615537960682235338614793401018121601944447463188352595304342745263819696105999944194799826647706700381457053915128053707094975109888505561013611009692514573704647756560676635917332193066625999421827504987491723487055276120486042734270211280420245951352261968098518151408869203308301186219486454374141521902438520077767287822715736318800201584827966086232529606263308650320742037661532395407187346248499602837103584111569834650149199852099589807861159260955099781823418964278820144804525315718301424925184794199657944536188999836190023708908147360876054135026858476256058810741790733879278788099296729639972726540372037088706484542039913341821930666267218000043040865274222711577994981184882876643593506679835783680692307614127870648041266208544576879951232223038115432640596365901636256793024805604617884104299574329626849045941813643677543384736702251458864022343849320661088582744222062193532307504670074637855858924918452820360056965131068440893711995037554860174455672901582842873941519149789837835570968906700684350191639785316910770850481373963981727633179624318773738449172711925919671402574551747107216692798768923490359718291427647462582705528278797551045724392886736865280146134365010524230657999928228568593210895890580030537446724234544819342156741493108550339343262072568019754107442595105016652649370409817265852267542404818856510059584761015609414718701387177334202004643267385129100351698652297780505661891019890633789620921126303229371840582476295069689754159254860930461932269327053469554917805871247332700904859502299318560321810280382051517120429080098317265558707705931722907446668297054613763616273073206728712329169251027930194888460376077917454382994321927194802298036570371804973966636335956561089915846729165730647874355127531399843397183995127807512790447418409853549186341263882961000137937407098421992157537616700673611752516119044441357711638564262490386901327823908416097681044947687503482907219598288334677838688354864888349419183438559209694272516814479014749492873325914520438604537922270721870973466708225831956698974078050244477793138386093092644601291454018218304343707654370032199386082766686704976443136151910526002737015047632607418016586542635537492443522542693623299682542269467376609992143828029784975232557184566668155684213382580220658433485425712100666375283434376555739927142688601421927905805702015596523184129709528045945708197297898309351686524452024850966381404440289128033229472070739775596263532211040779139451985747173495198684167801744936456697537062488944248062697525858052239396815597455808129651615447209621348303652067900024944885187541490888169777971124783191574433202614652806467591580799887447811378052159366178633805541845728782175365163099224548505245422697066869907765880699196409233527668165174989726896039260205113568060772196603504120130200381620837418714393732082715900642533556452679721769748244011961740806320329189273499264146135340010960855253337518256092665479843620415204835856696208217043211978506930652432489460362373879559442840775544016351648267707644477728218146232483117397368250274384453102941758216836851617375960091913628618939288986159915529586572125415348089427912791309934931050500098139098771252928456370366842273257665056458990394506736990311173058300863002368732998978732181528858057983586597027914726954897067854212694902217975005266231852647057004046833581167271230701354739836123460898413696780821952183141612082394787531552130697461122956971005530010688892019169297770892631880311247713617670821696158054394273412382391091828466563983050050354203126583040730651375631021174499276159575232385029106605855948657449053712522495629095510931135954001856539581391031665763346032132832908551184934646642114074927851651756771060557254113957231776750662560290902015170274259273375964275334468067044639303222588441755544136867250683818929650701196749915968113553285894390800848377537120042727422364565157594207025605836835508217779867827169521699214262455774364209705843727264061803206537549503978533827654833594217770099576946393507693314240366799736590683989236593571371216017247362426864084048469282133058377316506473234411274196982752644255476439001151855418416622042447588071071658622684313507057101820613243600297478562840490439212435737537457823291814003659298623606201387423178509612422653096922747909998419801173713499846712801488554344564908646314681146385917987007583274747181547412399643548740470305261323268594467097994749564766979654517116162642756252146276092267479709063640913877999700078449860932347278660211882444107877415650657997803065376962229979727571994387245474350955291782637553338309220750868868820284794772970895416210561902067525489655950526526838046201666498554200375998102917430657741625754191069696084056769906861663711414596441368889466002372095123619514970040182621120068775234180556460789749948449952547978683761609433525153961223709889336700984500315841855569537478504522533112051615315239960555976773015000245723059691544160156193355857060145273660358128126837841508081884456388885010472694027441342332992194362157333843379337438855780295858188870459784770881564663063711157871906193388875442083759540015494291634342647671240881056220958955886161916448572011130904935284061517163332738289960919282516871224733357618438520380894237048059524619600118413127584463657956104685106284669801838257075695341681544461635777427374757983364605280378227546897024451336171104135040682924013521831510708537960548726309175837625596782452161722745229349331703531078131331242703291179832914543249927179212284594901973866399266566734424400870332694172673683136123828127660605393584616488538942701473229006633459871197592457899905100363099937630733751697442338160391137547145808763418557285224827131645701739036257806457211034008599745624852888395541817420330750621392385628613678663639566204559547317063801890517879759699832221301860628086215883841555031038188186983967810959650913921332522648077625521014184163632666651954926416692057611405012186391326918512434380887995681695306521721986026124858378833502344077031035210113507586819536432370771969997457450220979808117699984652817569756598965866353887273045809368747072747603216176956103748538145999841386929623875779795619013033285338983719076461734102347023868925698156760567003540874002988307064083126056710631413308488094856369070110614929159488884684861538209495401850601774365210043310146915504529886266217587055733326327248558589896799641460594100541692363993469939657235919703494927713049751559926798934517694770380742584459444077928567097002371981209927491583564546473325287373093602923053923598051051030086149716138549094512348453001632372130565227278755147209086537128688311873636774065092044663394756633474780321107960916806260320539650932233208011398390124664810445158806428642740265753043541632296267734391603934229708277339864880571902011315814187274326595983901932880211132507573569301419502829936544411961057146010737623778538409068757605387392624483826271508568664122762355980931229055167136360408093477032189237019993450099778010425331534311472038616986899963322357509481607759776912917795797319079053781201472925336055725749660985734664999371070271016560109227434414474226546994770737198354557371520178571151281674066231975561391901362012675366294616655622765435551576355537040892540888739435665915127323859242260154694744911615696071458419198867296594706897306353228414969555034362739289638719678735766722690066726190025676708378928666847822647915699572685340617800782113609169935417023725112434565523660596408287370785685935936165322511175150779921814311264043672409197776190829052247488851458097533375807311899880658072969473170821250837847375562587618158891101014081454143378954609165903160723507750556792544085290095491145021973576222067678678300851014726019902350071371924836478055794073447300618733534100329790907300576336286423390891985322651033550206772313320672328062196631801510057251569743544593470901623691549055041987596314374794629754887597431083742685018492116434351754985370422645398922738906951704258887701323140514060445091099838047865321595412469086414530764167875430180046977236377108291868348986799338614589685704766587763865131070526995127567368988852190384944297082564076763389850861376895519368125739308846296481259039378598568344009625543679496231418188728038319837490925334075333560583305767507909239094812705124360548213016537481895438040920763780878380654292196792789215153119482933372622435706789383814850492747175003402460018261788218996467594205976580829078264793929333578422128545610106325686054065455479013080110224046449101410487952932638076152411239131378332815483488594467092177806904624166600801237683981672476854098967168980061319888580965331111045907085273765201652287304856199270526640081151094374766081819731468971906457887195420217206002185650010115909505384958479006833928942109759509717208873411669663538914418556921213528390254627609295291370143336206929016658747501212917767307655251763129153601770298949452634521024515371771851340025546418591948055041369595362692271045960442092717891322579619883873877911038949691641879081093124976760650584689193739206068567300871683569243565061971521624560741193216712204549970247670185320621082057331706170557964586258746629687725771911571312998611512224532755314577015488610982239461089628164195923219591389787181180408211736410656253361751367279796212519406284891371955271010101500879088234653264918802087173220601917322969383334261829876524621663636450057347133973031663184657822217547733834832183197002123181031405528555610287883466652532773523242057685441039438975183497455027785320466920578505651082660907712354672687431588250704342640390835013013546799708274918418817209377104497454714479474113650453466683586651646955367115948251143249078082775882344811832079096802327213543640117812452296936647564378448709482872687389034301304237670607767946854880357363611522662437845893294679780289259493479325056237852456648193767946370043158655455153905467119547440864003421300647762178972145610454718270408323170210550150024350685020934923814387495279341405456334865614472059176079748296611739019248197886403437778145657321612690922727671226711884302398546165300405704525940999608455524885082986873791555784805203150341317757607247245824225112777986818875286438315373328216310558097924527057196860596017440544350990125026188870870394992820535851249589265980372685984711744271955088775421193390514247886776397510786684723451269827822646588228679742105429786981830722746039278594727161442442430752802551270796189257697960286533833718135684305164721999725317309620108855851838420171443771023993762725701419348327194473913098491131332309760768088746651091413954289664606150913193202893993933540140515937629386843874463134935108815517257533204587312163537567934967565013456147169542916483054236099622145642585983392063271520437448062515464318114426846416629852691076842164918218516740234153629494637346795279165728660657589858297229543116921262727754348720612581197471867838471482000319489478186219238609569687312705987791085103303709552387097433060621576803884887324901344275535122292982255467276529909084618253969439737840778692972226853969899145685784588100721161589211859095016259568920097983231190787769622841627345477610187922911575658352285495117657209709034408386717047353131860188661271264775671779884082958907690017732963038801019390170599249258510874232982310762706019943296558266739279350825554265013897146698271296987819012426263459418389032291152809478943225713849621696144831577388792227611782907173128505315689237496600378966184109352625758921321370362031621540258951229218363678452547996214131929202525058998978915017795608504367088316475802558042309560849296181279262110304146894972493709967353406315101598502933753898854146876495391786654408685823867655266125347711958526561905258380698536861155850236784061983379793704716608057637704749617653221013065142785692375811917351676954578812982896720648291467291983171575553918709236578103500328259375389274636122791727994267586130056652092776947736193585021189004910027217165708448395763051845420953207821056777545525991112121673581726228847143701528584240016501827462334353532632168437915013063951739602363288822409817085211261879241430120268740145837419940149594299345174913812428195357276510780543477975064160948648376778645491186252856548852684840714938301198444485847935261388649375645415353656476001944636602633583756679010291940932756127053182591946211926768505285508677589865859037047688179149252272714186846906572416481563549219445229871935726146226719262329915221847929674574293366593555044936881225851049772416005500415000531560754013965892690191730181361934700773361023235412945707641795522644905741958161054940005088882563404336809816357721195208219938764141215478172727341842966157473292154864314052608007581416748991501518460190617892260015107586874578231272781340982661730177973271581434099869965989061656775230100285501195257939342107058224100858420502591184616684110561865867003786192976728335662786087958383511337806360416060345945461769634843317222484010873088914914529966545270386120107966701264783417068442843102302936109820134819178043909817825458535287481181355842736049790919673357460292756690632820461324300827182622202658034135450158569942803459917240985331728131490104230263208707940846278762587166970529693705124690315499623729729069936452143413925502037151721192322130652671614884003137707898912910607717499759768518690351369781253003333376842650406690147489084009816325368679466016370354597954214664322157860749417957869380424457825358348428036817147893347126555643523800396064144570622559614564489757602593091932494360326634125008481911098480872093011974737639869012887705303783481345061808040736178745144113301994537892258850335820305374729121935879732704505985491287126005268562257480068495132268340855514566882571269290226285760246443188485514224294016236254582510534671220844333515077920173189242982277906772861167239186671132988681272645545686283947099579092316040609281607792310519632895243358902464115032146071309901855597372128315084619173716758698637488613650651533744596514257414785732568691585603385733802895767727331578899658601803434714094416545624573476861019852755388923636385653034773198658534570764875287603796457200456928061006251764137129489092688522057158334769875437412732173875367176578811294168543326757539514602090469843599176210243684317580706470536954270616473258564124416797553224741090397413237397148337390145706049440018424726854130418715979785289349349902265467391679509866071183794785639297413406690888384354443341543858573973819732160941148707809835359967157674295331903255680629859120698838662754704888510284284096518796513612615012037428410486231797413576963925179204502856851623729061914900533671391391954808820638469815896609978113636183458523279536485064656182269767296373328211138375897772859847978654692338763181088425225475389949408719057887258936200609418928987451727313454543703260128016269413109835112577260861729723712784037121456791670981675748732789446998698649559296426372213305090621494363278701766927750587101713701565579282032675447105472546302573165892711298858225445893915713649573495191712744744303282764923263549823641014512842088996268545528871260403631602574342522161539815306465833041066632820892183885248402768918050942016958273527111274734257426365356776887099101553300251921986858322357155482603703377987735376562671443419908788970355634265194611437527419887256270016416757045579643788865108614962180533089762865193494722191642377066365166479905603359370918265667606057231636134687718480805441214205530893100122445319780864213405039752391852619840319588037811179599332598494003488806719971273687282093780252757143112533638913189389393131097265278322113784049046725987328204279686687616848698624683780841644005943301203674336078920341815608741408024259013323376439409134865016792707434644234807068267948145436012882295586715160864354297616951346244409108632608980945722261763746847559912985693315913576360819779133100810721373469150135468069010991561428578908347344240859067831050462838396342816715432454289756070098437376131405811019272720308627622675500111837956369871509254631078411188064403216812336846473794006274735309538112307797253690145337718848425113759017296817537572689666249084865518643523822113947482507998097243114743537346759562583319738186095103915649781827806780373757938181415061931885553018704066117837829982678987743649802394888195423266537515656652241207593531306474404334879150632101124710024877877805171133512799662235486084317434341379381768681929369770538427749909843966817419264154482624782294747901906846079878457303969144530071774084525701083504766700149443293549151252871304727249628553287941411517670824551238935412038497739787201112014667196214867478020917117180872243081904903693855566328663789995774483897843396722224090786072677391135472810250564017488764864623178721511450657180621720692452195281691379597459333787952276915497427139661645020692730361631518406383736769035572891382801980888072271615729051410270357851303355304060234848853070913752708837314150971371778519017802979353670420938900173290431893513776544720109901371699476596450560660784605694892880366520540824740955645754152667462423276071876529276369572162424732892913989797449358101719768276037595080364441535907391469832256638509845779905899369169164589996689176029901079747968059847538654606027752449774570035958096453086876765117484227495989677509844612552504183939832047993317955889146502271745887165156386113198117454240456844248287518287546526268632971977755045875702662335613266815906658785032838820432487936145200471447496731111228935152770231957431068892975944311750539217683404896867913774623641813160634691623249684910777648198440031318803010759525103640908339892624558746675032683016749200676683702946409988008587116415935452405543211868131584394276066479124630879411384345204575445523762449075162290749993907928702220931374687153531038261194932904720499744035139318840815418800495499722784158796786398600077475998306242866503548479986753014682360867127423539683396728104339660574307292127805883032539115372315538602777338760496132837662147681446760493460960874548428821213612891213328597191885396236652971131135675905070178877691262402888236732372928867103696214130050735302258159590132320606963934782469361104565263456301787581248398363884728543324762503767850185018854078584890843573495740056146411566976281105511018513511158119401328959004059277076343348722811584095664560126141455752199883643419232311280819506526999437188830447179102519785418203182373063450767810794862100083093875647687588531665934039689002628017107078049278670477842524582082957387214891699137659768032887701654141105165190308745134423835855995481028062822800818928557447120668592743740728201846404755143519400742429138478089601348124104379494458206793182902335662403980533242035420420100705209978572240387785192256358006859256710867091527463199292888239361755451348622185558715153398315599953892880987329116907897208175245810813742338071785313785645721655680364644726198106133710258492738649620382876941713534759213255735421954969546841023644437222077890022115852914165287879673482968550347360431444412314887085013634762472794324549951205028298642076557132184241380903322555003623849502774543578523333798066083481322980246841051392061295323366291060856786470901168872026154018112343665662715787147774374696143174908764799792002332262469344513111241502951324773431359912912426540546623542607935922054324438650388566797850857052839538933604476962993476040394958012089633140497625280577896403676104750738537195549528500678110881608606344100186255164870170118247359850720608881591187969396689041210709207083871471348737695491987527924149791511412525938539072085541310814020721779211725835821486663354358267532590688830868589385853667653256536370533410835086255545217821401152147169748630920490931272047195862199143374813419414952461959030988808245251121891857986151269611479789853703680808605553286023231193671072942939893869226440220803280514534555197064314333513149311933634518571883567003329634127802279569849128343666812164042630487943049711915181407149783771301924740301269869287866479493474155429234196128605300139510410706232723347184551931998018792728190130799427807187693410955099512047863675893933973863303125291709342084814296566731442752146206795674045931499586981883502132939407960219880570436910525826826148302587270113345968794572464861603493922849440725499861663095663487260979042942449293310136551233806879996362280353903952549193649749792261483065193755907725627391062063622197864628034567354631630489305454089786599665319396982473469863114007458128983158158510296498600286138341504179519837116979222445027946620850064680491485866023232644625803219798302707224681324169056884236250539156608624717770029360283463035810038356959035506681716326966229418502206791628356718645724581451386955936167027131995460913962230266732342972106111925982941967511080621397719968403196521449603089334027598224516620779585729982943909350017909059969199489815233585084551037079804244717810523537239194122010793540836411427941533141183860495930264604877453494974860646272900726662978472219294788581511790092859381095533365631508009630768163191024108606847685566003428201257440999517606786676665365431344316245765268667362749262525833781082106761506291864508131922697908540418876384728312003024397386097005747988468945155048457769568834395815195287847066136606261173365351468928187986207347514156671041005087653112892475743490719858325604149577644985391361475205242032522644564302409369289935676278223720136350221018962298160771673259660297002535773668722013163421290504302258240190122659813689363170543060446150865720408840768374645212250824799860072209030567495632950070194815793015310135539334401250028193643405965372041096368866803854717414817652688087510639663424745489894282568488659000585890859568581329308815113364200021791567088922793175586706367193331041043542596212081145354377523946989927254049417453566580063441891099818405803618211393073270998450316656174674120323818049744840871205807768366800007209020631814408530968023370019119543963059827202595764660124428930886899381592231667088796620345289774160485534603670495209570142441594382837930130080882579530565438224656968589920124687070703681357174564349249741212817369938699884415209191634153685497507199547343881594599889999027420039777180307439399813282438537201516666796612022328131437271426058471312288664424510919523091080320816465266083099412676819133445309178692324119908234361357143384863800387085680442204534261389663546507135512875065299095366414642029025588601089022752521707946200151676383683881068161515238378921818870634533800139550835153420552844458765246537012399147800423027642878036566152955317542922502039898736576788241560424787200971922043890151273044190508397739346540608532106580948326013419972541671498094212108979192245771314915151837914799484102912571159531933761795196292788499143460475340805275093342934857472448100541197742662278100771209201844703947903483748694669837508014981504491427067166092158523463510266699615210304196378792484356684100657120554191175389502059651553773774698999731096365631878637144222227978338283830664158178544472289457420207075855866858632371993423019130156647011697012506645406264414622847101107525296340849471250690814146436440982213262042048785645238619597826553858032190274091791104407498907102715395204636958158777348982059415840640692342883890747323428803684960787036136047305220753628665637566470240438585175585057301599710476858650455251485936694819193827712777397482131627094590258486760028268438880946139054142967352012993971300312118664202400476055007386394631682857606067886199587150816492665616437393514360149070023936038395880692618343653434061871746677524881657006645832259237806560925536838631403780706547975497169756703189246862405955899217382266859635346971443273658631147679967481385226116799874713574137663239326356039688739897840937290013164595997820146468652917314808807428674430470852379329263980436958764673467492533394794391715063915276654207054931938511014976350905606438896538478927888569478317965182250669652441230286658332321311044920355599882301053937184847846993387376950826244652436210198887980937072738069506023942926252064311344088867658582148486716713963050256974842411627393810367131134688041546918303185195677403350202012717903603776172981136466392176450871142569912804640493245475343345647320579529867632042937076171698306404527512713824969245815188279527125810220388452719727460808828888578476869812170934030124744118386313965271818492859826524826497106768308518792212918716645774687897521000027335114549501691528184576676972943417464150498778175419567547934964608483606326993286748572443354088761412959020930586201019343084250653956418907935638672798620108925246529129942393006319858310026853170247554219448544177276593650734033298285300015488165916930269512325474516444827631994194339112374526885636923013175583794693683302901366530102295116315508149688548473871286753202017624765527303277709601503755063053059342637607176460912210910752314706173336876712772997142916518675811422206542549883714586987696565266229701713567716903456286476116035472112596017229722401215435186678150862714586386955358393533084252707748752157360780182296124290922521733209645086520749362588602711304114233821592050626436482553207699350285327919504394543006934320401631639612462822699043148929289263223164071570328342276540399043565199104803949349098998883534177826974777659331794824009566468807048493885484177146639743174011219321378460976016604631929975862274818430003039206601341244330610179492283534898059153345469782905631702586830276611036295521183754263496843568152447961924481296383852235042332464673236319007376767380038378882386888356789024815637518996001334235299028699094673660257465779941932190300045604229248141111087222769258743302792853858257626671404420842272196479469222317595258403942706849586694176525958620070692618557046872040307151779974873002154708455828951229677728150716029963293364343356876261798417965032995306255509200823507317577235024168356526912533276398140227462610156271669700120352911537859567195075885536046634059119203718289348477532580155354621941167067627555494877831191340535979775191225887554016455230697523378171887435682798342317695293494838889725156034509934099786975140104742543514529912521299266670822830740281010653489038624869809988660809468109092463338618591803686782310805402264350132401576327436098816678539088844646036934179187999817449259086511375618162006903326928753420296295927444186629789118503948353313515962446651693259242235965932423339586415226374325836616122303286927251913081863457675780739325860392266061787039953877625210261283585898612133139280175887199736262786754258399856307545389632631595114173952929366847896083094181226083150779317760416014497513785874170946823107200831484622354024836396038408770992400617947127553679712078716158588152731447001254902198677366580057437071135054071646578576413844502347224505101355412984007715654763348898945563639936805143506592649923054711963778561353426256093733558887286243652814296876697432105319173454697222714687576389495419875746550949551147038292464265293854023569681513105849254614129745490099932279108340446971354215980058582000186188210153489216471317144058892178058803202846324759233835281379212988246673158454917683806625329673524704930726308450089732287606756662556551161980170437847143277753049703888678904630290515142905586326865862702560865551817650907728122558406971312727086698762389988779507083854437803935122079454267756205324833733200701043738173091408697264939726998555843431864514872416753673373209870647182531542274801372336414783993565297540538356232802657388351657301350761442024878976986897225904366551042132674274647202578624441817281323531194940171154089966416143499546840313600540464062205702949408536752429287109036014821084314260407736405375771263236454406944142103613439624066430719204013574830922850318393142368046933499470419933597486012240441749265576315531165870141097927751269194571744305446055840742496107432259455835561153111191552859645981193909608365542161799419525799011284133926809670310819771653684443883374580808653013598583761120787389914049449054859470670250848604830955922885556613800324957471885892448111368307097667277765583139595471151387228505246083976374886977855629034479885016457166277574679613656248998461820887942645488034526429362391341232585768835889612017008941169754690403198099621864946504270104245064457590051456479430584934797202926786421621683559909498000633153104033995358798958199103291286534211153457636831070541836572291231730154015683741383252649996106905745976033082137403683462677165762528843853687855425446592044147152521614725499015840807166838387623310189642464525977656533085685939171506538481938222749804018262364546030157330874160238658294751750199126144458345724069377523773947893341106759069416198905718145456564021801148323029015473433386227032077034990318854850021567719873211982287899647895778307955584481111770578978695347946885845592566980214749799986124584747827070938177457248478970952180478936390526788728130340918537623274420158986025212756556699158029333867495808406150067961304898686745695251110036289061919128079264938537333859199922322223689321893268770318100135907503899591035334977965816743633795760777350694401774386197819811324075671142535653446667910135685487943646291401419330257097496414165482840859770239787336116701644775873512177980331651593465020136508235303225976512565293294785112980992722697234393920638357685646065408669934821056399194470303620899478480288449807284509942985649565212184489430642767140926253374287465271085093146142996530357043134061229008454523598066599956808449514436364723144117814112421721265128630375570724762241554397079825723190896569121959102639037656213870680573726798374740750532233948135593543397466899767810037582487121228376835864001781931422944519595793597193695695166547828116038529981256262537621956933662412575584266319433273173667882598412430582670172663902614363093024871121182094490978185222014132848622918470858986124150192172094930417691461274677947444846255740837667385372473627295197109927811979491501591024116470618083126386621490121044375326546675986424053325723817420129639120601757376313433929394502880700169691086957975909167813268029457062517388408127918553789270377135702652818677187386469082938104539053245989703311931686342651151984770122264790270612008968612251778040040198922379848584522029175317228265112772700564860168059449066805946295709102641276472264869449217390741570120779455957533510774140729804839811484967397571592589367741008940682452732896813328059599406376784345501345518078111491639605506194623381947040123020422959596135767183162235262906943321993957769672296361279121173649142666594560639980728664546964461086957935862424454329371910559475524610852022449846137362126868507564420889401833956406954272272598235070608434176449779848359167066117888039980514952187596507972215586031524065282299607605674724094448154023452129254510952631976697451698473193044410013283915278625335226787175910456245315682118568822044308662768605783806471509745022402087893771828388365181747254056539341181985836273259174718458825258181222321835078505240667584381988888356294486050920649889112056715059742552451494010818339254690385088772079331766927336489812944917248070433008391206831791675074527010935992577206347683912037541528240957618715517626041357572423109880719859809802315480173135404971013106914370749987703465447291516485974594094898054306710578819495091747860149476964201398311129384159365262778440495697551943685077144377550895750446993285467396711285184849404064240887559100196198685577792271961494806611035514726972957442898380277128460953505501091451283292492164131514784246858665022718413315633810410714181996034887370628936164031254157266962976580950319766560031718829774167636132653666074072220431338969418665143574346320634539673621058373186429987400934901546569536468010533034352540967249903281281162935117948745796044666011772530356915443314776160831815252224786029734921317437837839448773803893118494009282012271625623100053650955002326632514073620785448481467719487255252012775239065048937419474848093299621558067893222284258224631443558309210163165029442935132230852180612582891339174575085589111387153704957956522254202985548801568349909046739749015005919421690393540059103349443972687335210437915286346758696913742217324883583240700171781140153664631141964559034002646472658469415750491449500739527308027916384849860690770713653193227378129199974742891872455618239993681588801500528651845938345715644328880583071266962021807298129605550674116517431290844404839975966222887777928581041981870737412310597796450650920596725970564152359182251677763416450757698573060283078971564892657118084095810981759952887085808064838675517162359471729970644096090413041742489330242538613903973644854763389006418324585001305994382716851684966980530860096458388447747125891575329150667603420900250757818546280123298022469757442823841555063081575854360735368193094454355907987136694937752503104629852970734653188500984641057888489195786409526623365279513357654944792543945292523546868933166211541371127297187350976489074214325725169693528927252956726408369599934438704567782916640242089051946307226736874196672538205743868843316391337808309528132881209475527664654710514653068220441383602677834119309721289324140966299370087554645851594563433033688844370509150709037877087867627558412231291070759306199039692201020410820845784136091439927860569461934832669196781289325974933566728420233268964900504245125794364416109092552808624222674850971028802336353152141587828095444022409174870768808601050940169057159452124502750952931021536185239271245087454217444849193765373099976130793564224279272908078534622294139598431798896684318480285092055120367138732913435391977037234840488995667279993464183747623884354131771294593862208350427859919356445775440511913614132711780541561963405693713499970594069646027351350515846687082562670720410063095991591969246870158863640067760775061477057046488712782439363907885130882508473974470193504282644401779758590559594375294362732334860465755457661026445007253399289269504309360984755706925636532665571306119922675911722724727473289387766978156496141712173753071906537900000156984601305925267109558810160597032389747068864640868558413230503016984046829075666044974363454665884115010758622707419030131408576554755943158890307960053598330240173706379773896647427581082859477486341787409883833659688416125527114209871789981130068220961402452307671949370135211301569315596844350509462722632176918218980244134571831822662680249990353727220598412681644893583780320439346112276284465951507442457180234047844383512804990267946625452423369179093773664241076481871571513266555016660957078851326243434446874437639333000334782337148824881722288393500323420548519351232098579652493058630420175094727162884650482020596520525152065275675138171081781277286843280688333362208488200430928753973191600249536272236837780985061266016783031404111680254029849601602398413221878681912160793916308600335003592728061250223599534057272305297910550721014134604472274487847633170778020727688619199612411325626599065249950455983891683328379294649600073978301531676377778748741321997188280104323810708973518839648411065026524839505202553286759771624371441168187677083685712294586077942887163963378606080987834976676281706067845067126089893728251306665242902954856067992977274571635856762672154518004985280007365570858021401587910335493518906561625547729415340112326692529700162513201439627936461459804118092648616045918046948872385881810751219305727423430164785604702133720730177941772846649998991192720001657810700362771097235780153779044389762312655628024905232904421568620952990136698440768756512983713151620626205710535569702127938290716648446368303952784199757556403624007407846055436976734618048691105864419405441277707163466287601134820764274867514458467518376625025824692961891494912798899398249577893794003336788026565856186989761545154632511865609661708961390018506814838103129045529840666376389513669325204386033253371167887857020301806716840280475468388209956274294433632141213152224536543915208641795642289396598281458063936085934414028283778284322076146846832191328338871325260012467672313267233370148072040464311401565215993302049196386695703906850209126308481201687203156874649796610139331121609493888752399077031890687474994864742758094667544943144944964093450314170348680209348786681671315981740881360160726514657106654178123041681443168210457820250178626402398312306735760987976733011206306662425880799780774810022903100823088570457879988367289912448276149089980959749123786507214033390903510837420889923028735547136187797680904980378088251853560781842142488608272013330394276061943629485651781188192297872675089960253739396760270312638870717372440195822774773534912634879206496360752978690001630549999305667110477838786769432408135270552820501869090168814857183516929576097154233104891410567074086325506808768130361061872889303598964668174745832291759878315569445405925983459566570387868520335031521866165369668032599497808550555286794029468661889223653976256331692203361436951678113516643081747402871378236072623005738587277029122065715212873078664210492552992539071935894625887221366642073191044550487472349474341301880071064026300705671201575087983161909121862699003732824683071428759379638297952040423216541170629860035826245851164781955825053587595385526126915539031246289567726943936867865934573261603968806616328132737616805108583368756073797393568980841872732923560225197046593569795053560212122903879200656892283725124554903894836212054255138642988960548019319804762140146701609460307057285681824584531890094372796314682429318527090203294541206161607534995424987756248823923943227853344254443041289302685578514012481193007321363821350867848522806153484564473632465172703724065555340587496722993421344241895888346840525515498736783374890616525280011354157755453364180589172244462112174737427598352437822721693472648127208574440110533002009904524137810590424159409111659935872837602378897064874532636134388866212148486942768724042187767359364475884511140129441090017041714593226641647601189456178356620721378999256736833824740048600794074031288434187673317406210270964821150797694720098630149477317376564842282113510323331807286262499670510121899702506946820689159195848234442889954919692766811725259456050546277345088314865733339787080919065722368517485670764963150879063716470580248494536393850788621146533166396602376056052281739907735100003445898364393042306544813560275753716826976477893552116982733732785631951588159628691034680486449937446292039296970218535681779854580594923442243725109681025594502626706255170158360996141065557498270288532928716101514559571057691320783418891104841316662629323993051778141013331708297264373461472899220000742847389037369868961026841656085343555993571593931503474880208492602130613187087401342756884658657361617850398434366762620895461089582865836143799718019799877564862060396495783819305036137488311549323402089651009422327519582831517844925040113963600995630870930286119107378307064526024137595024409046474356732441473375081117410548491388333614418875324121079318391264309746601485947794657493880307903080733988571620781701386693236740143376246362158951304236780679097416193095636757131469452967514393148358719124830625341741745063012171162632905020694542974635495790636805483538043196380494149155173206800663239359554391158316014470293818391244928245413349995953674483871407851406343152879548056510241725803752761474504501046373901179465098270380499628159516735853010436745094276729676462460499951150343899231836633271443833282267926144283504251943201587305572963370843221838048385783742584692755822683935008166991920623972230168390117827758223572635054784105790559180487681392159271091827066510281562035793998136342764814973334488242291486121774754635121524005530566759191233577121383917253218227535893204720716727680096030086377882627174746314279954496637718005988793717011565158810395260400547782142396327537381993702562164870289931663178078255653437527736654043213042741247177264708692242931182865816115160820679690728583690386767318310381136426132045512647796272679693148303794766652676239027166027472657476941990438295488864866795135884100354855284561273759479501500465490114308371796634483198282428401274865718159740698073389857598328517689615214644312939771297367181714059616223926396387259416782601990862537599245894462414466468487285204265169601099394618072546397395800928028253220287906345757491053200897115763398008032497183353174920787160624097018648325517346635753790864003383739527889958862298108877391219099167890058776220738212862865693374066765836679731540929320568231293523346233925688540668376101398012943663016914673363190450965108052282841561106383717360108716028995493879113335814387974716368745440423934073982839930365230375543057082251186998592700779498526918613107480921098661947450246278172132578468803984115757352931141222303205650757574248601301930167008923655678674698513875702852966510056709764915199929238477231111385937678451463672385652763421984209259561069554407586548893217864942757888796907036006659813690532265484593696868694497683803227904036834816065583594098773606252168197796324493884612446449618612566044854225149104066678032078090890269849766830496153443732272968910672085666556848649787835621416312058993892755006192351422738275539148444130476971423663209280207122643808300749062340211136698991865538057998417939295600850523112024758294375603555236624461130156646623206545563411683820683945112314952502691441096582372019873728508182051263982596243395488101095670556231127343844925236678644283618529314423475444865771122624855433353140548531364645165257709092793768340281428502666828523090918869074553541379507173912459050634248752546370983464149682770768278133949907247064874840725632416918306196095737110147256597649605928740635134968033585833900351726787217588188048459162590873154196464064167195995843594274767601313490158010925900880050061454501722197002943781828708910718126274780560627249744982439126327203867175210892793145563549900146643138128913199987407386666321550409789978918718189294027070672020881077431769684885574002544162884949358268687452973826875508162803171324146417859602449156195927267651271835043760545254281624198521848391153970398927616519892467441925760725994933470531414575425843087403045791430992412080689638468296859394554763370582748156876585568694686574230902299377689780981571048010364130870076950518557198857056620571099624082125537988538960847367649040092957696806388228233060399780482759262596189100075132093781193080420296510386493814394152095769060074102895418177789772333259166727185805621944846741529338899844404171341982971349884374964211603111207936815329114584230047020961290179190599983427816060627845035122891437207947032529727635353225532372310844474291511657042492107587757333026130955129583579367260941120400706478394454137806567498117622234378356168153962903147804832973025774423637862973517464443511518019928315767175012720700787010717108873727949819836084937803550428978127902649280920468755667882406330181983591469704150610766911535392410897000320734903961066226195236735598388132874848716689516889269534804958077886234691902473259126276239855980460092966407288455089331198003463213679491563674703920299188918991750512509807537098834414913070005880729947650095013076222644575695408352129794678165680450603783101757198878416321988649183243533575288932370774078735428405363183934018261223407261941486096916255599772708662186862286882446202897780881495095974606405665906833315739574462482582324764780580417471192085991253221159197115408658675660302827082075534799996520230299018328467375553682879020566788014253202794406137016231761236158440223198912250356836002926642952895948951735096938287437989257601571160248815338861862334008107455511542109075496672619924036269414859199435090475620781987475492995598003577396492064755119236200666609132106489433830496940523300534559435983727307930360718687822144127088342534110547356436136666746400924805825532539689583715664509975320358168079146870103591006557272996465528817600809122984759352401133053134926657741318536770019615966865061861977461055951576916946320388467824872788578659224766043389073803448465260685980872386617140973143206721267520577603972550048595627946621379829956047543939821117228485481545242641232927750818992844356193729355931335636768523815970325569555263173481680361004223262300472351844559817134188712545364535704494534030669373228080912180735572839620936815388192272639908968984881397530089455301736146719639713429207124221353661657345688349828635362597779808115526639212271931867853013555795877859992603355302725340155422995105656849070100632080954593616883084890666662869415929534811650519250844164013345744148881324671978401525115953476355635581922120748930605625952620622538499824130286564738322349351950671438432362494510626522805183754705308350012558155740055617831613984731746092363637220632544508984825980984956910790905573100188413298272574359075389939742686537609155671101342926425712523371721080758724741940374150631944337246631745113307340355929794038015747685526216944426491059151130051660067700265411315321480951148406760360727774637490562200580311839879149810036761457416564798828024967051240303588955342609227138166810093280123599249396387853821408448207455146609683632417809490374892939342297338261645769127790386476936937628768794125112591943708525565610297990868128981950343442495678232022296803936744787926529475920644501748961002217201389975011881474998746869192760001052410662011351953934177819914365606447739667712241289862947752028461356166816715977908231974211083719302851290630613370337439782242630287658732047144222205796955727795939943439317927846594773404992305518392348663226764398194604613481503980975556513679847538885913799040915490820369081582394686485983334008398006263332188879183286142660783756181624912733165354873757199103849963503748529097715429822750624978915319824962938041835571885481859540490125383546125340445047070686874383684910925101026284309918782903021626391830257936502060599875497461898683774569293077336746279351399782227766446123670088582043348189126570800515294156385391970557976169957201727126347554725546651262065206982657294261243659019019606543129838787631678768497546117150880995657063629916501349820232481458757474795333028875435478491522564961005028041638255711991197054205923348800484637746308167486781209507176031169910712873256513338514815094440867228875392279323115795359311161686366993657539219459836186283476595451206967343836505992062917601704565774691758838748938830585997251245075698769408783389928014751824896941822043494417546293211886879971572302990520209184505196169077426603746725332016968057059123856688503042050456365834973455411944152250149010898853421254619228237828665208744406891306939352549368793812898964010054039120145953603258793256265955166831374073630500223008601236806320223750965676995870796889728749918074994578686945098895795027537898162791440631882239818638504728825228423524336989019663379786029838113865815907633540594713098226732947764407808047116613707042254496592458087502109494361789410396700861748773860901392937107077170820954091971444286968918978211439292517575134481049911661665520525643774958243054242956143900298758763434431813841026382615483909740372269646946029146425035527574524096082947286481792302645034251202653198732146248567701318110655757512186845724470392242715484178132844371557707912004118778621778997669500846021399121062395305452408734956645001222562546527877263552483178437026345972394984662078722710895856838280073451826912278149047786890852909023082144086295076550512407470261237812066985395121193977876536367682414300582173446818048971400413323126902266470103903696406084873842816237516247215672108784031016547348525689881367580592588531292354248530210331238985497869550696246795244373165474314940225733583067774186334608838307531149960058572212678983246369941039029903442913347156260319676362076963650257023992820112663885232084286685053481232785086156368622156412074664276643462828116094158323525882720033229794095855139404772125344566237489000280132760014812987027820241077189995377849177110178094256274013245260149530704878908206560128577187707990828682507030637549095121093668555005649841209510733897957587582730842356791117281490410533113120106722225982376117453653206045979967053642233561491887807186729956223955878478898525261767642925957552972491732687385209158297278693722962082303449188905953377691645004671746441992083751447402395227593914028085423469966632121253088634087663052872271815507925080587274997776609680783230109893009964500933139019747555148814077177072988474851547059123289593930809256144523211806105829410691493472050513815374492365890664733770197425077361917977517045140987589352260331273971505233378038844022693458116988633646564216871357080918323393021722307236095177771785432615845127386544779486706590683551094568963440921597870058071039704266681719098524072514659979717625843237991393590081097650841472721943695393040173953006999362922004132992147054042173049324165034331335327943082218200108155054358801507404464091354308404689797681206436421959054941498994578758580542335627764472487617482823897883927390546175967308584376148792340749451396928415265371793108498914385740393338209340609165152927341082432643386051787678350120266629887687989706224951164666624046907259636990853263443502596242842759057431195625432357455381150714298179019634549222845398759687279316853392549204995131745431273351800541078152607171779141245341052827691650477509341527374014394754026055473650512407878170706732041595104422538777737877873020538985106276674424283520366836641342383306379602141908633382135418967677546850452649338928215403894652803442696963287708148507198998782494373556461859895995105765558773014368981816069202771358569884383068166480168672338591015965953945283968186291061878203929819408296453376549300312400750201508266312690364070786489858049868732917718247252016065964340307021647077206341326494397052888579700528055151826132707374346283077114693979147325834290676774053128357796906864707880562420527798933219707853726729439976043181137652336520534467878884441450526680207328743607416305887188776643127624543179438230984648143695557753625426203253738783027173376256593657662490578248177236296612529248159592048138873576834727836835320702476062536804992859609086527277957309316224722734029313518761050248395860306840973922148382704735461251934575303446617216525650681255614212482075394847871411796743430872595558305746247143805275016499316940459263402364131493074008427013465387596035461496640148026164972997213858732969924053909324657304413022239941993069496845814691500269214893722087020794139655181025277666146015989192621305782201239406321562467118756868559780932898393217121130704513705945576828290471812713215180154954662494885333696294021202289851512814156255943064678259012009183132341468142972996948393394118500585005605884301879336507271328510543658829088598936293606517561090703771833807982956878956007239339407589813239434264299987117949802888083521037149965758508016573589375898918511154065346138965939484707131085979188338385775393505151309923856398261286056642547861077855516716758701413420216993963594749058486278434523903113447940441844119956890103704570678565451913556726348138018822932710531423489655258581616287397068205224060293532165065487343719365985446084713177106288773290344652769002094648211378735499067974536238459580009310295675468287226040104122940746946973461700653421050219496230627390080773291508633568421250027083245116647771367840949571871546507380655726259923091365279844560040986385388008881134952702763256592677524182673347884152209664638178690425072582040940018708113032679795787161531579517969481536041300650180752884426519375507802363180947311660174642292122230616044076592162245573317723195979313526488255675538722117996389509314104117175706628937859190464442717724697378215342707826213084270123696914939553366604085906738128705790384686985850923804725149829944121392292506451076370886974072338379692220528252602221085363764794326533566052799166126542099198285044238801200272282501228445243036735441240143048897606062325022560772789066240291914605519270594826606155734463958981566198287898509755721663171704360721086586188467245976639594209634794781372835770653490469100424354993854079638937013386307547865143284697298127624951787186747681489312974243140273595764981254562034313001061741613660713523523981032362179233731020122096599659164297898509122004139116010727586606135730652390263580234501236664049595612127650734470695924395838186849851193051640205485342816512694706231462840134845673937815829703821689280767460454856064930883784912816757452265997488779733415536064558256379092520027519930468507787277817800949412295024683564885154296303985152453169030154783459121654255610176541239083932410539821409181082696718790546556411037374292560558475395218024361229401538119607633146197784727279083921736310606039523035646584724532996749509720591992093788169492755445904229330426642200809125105823065145165098000483211098755834575421397852958335072369015835777994056305835322087599148861340468839924784199847639360355967944046508758961994736185214858754814685123000330960244255022807019875652328075679246050700675036913872798225299027898375104255119594588462122382152693521864676737611976034188443645526992396350249377090953300128216369039221056131206231992305997728144573561320615676378435808210583451844227339330495836289566425901631651217145310308884611352619931818152028111325612799418011813844296995847463146194342995991348777187206073245568392466751859831071727023639591484213584716446050976195568952582883815814791529947680464186604776617716236987719440479574441653940206000644942836200711997470091101861518671581243733998780523891422660739443433502149587429602163451428864502325881458454993445201900560739534448036637552789342383604909406996040181818522651041611680323514061619440360047143610042186694106073228132118631875656918208125265294166577222914429397858017418785714979689538322806271118391790361767658342789425141988821583721580355749633942526202460294356896086713569545153722039975339112815203519219706477438961211431943644296058045047617289818658845242258330024971134784549111318515257448331762187903050962982544995561576878327650433582416897776765043526360930617861608050223529051572751309355315115336732595918926330008060452037511557055733436104266393182166391991080015821714328379781873958033728037890682481043115171625781594488128535772961026974096320856713089436218693977935495150696060991710965993784256229653967182478918676619023864147915876280584084238443610167470507002547061197767132938012640824813117817440380369525812177939760700301231688573337950605185008330823014757130270112765908976842157189064779015467394016704165706456254486987409363532800176079994085262445616672674304016897701356150897312163677408569459076682152960456285969938431604932412760484255885038847044490481289511186336449472500180704142939801658253823621967742962502325806778993972828326188704685474691924937405791834032602263946797961988636661623233648883263740321693991491488715301928907246811573800929452921800374583628610250509098255279324969603264168949865940404029927425913970716942972275937802752037509695043020652188873646170731972296450783760675510252133790031266495355937316747743493621806414204228377806594982106982263630994638451514102540989696117684386608618659965033596664822306635870475213991593416956799138630652560743801785206646765127673484627165438221172538702610412524714427156035939022031628576363877341378692780685635722962449508635690782728508297791972466211496561054522375908433033830730208744140594754648695345015303114383150617077880766791272183881810454458007302838896217175103776268331061332543576072657540140824303951013443808883674887871634858265507343027972873095497991752623337251712594292834549440952166612536036377732637566314151566259313903583949248566472829425864243796890294100190091483283387092413967373075863070756629715847098292079496288040946832648572185182484908870468579830193590333984289877284160751910990227453981672316662271923386373515128709730773034882420566863265805824906314500878062379036093068390346383083099202760031608517723090982156858181174914991516749659434836708036870683730169229735032736569853077776462988379885521395174167546629280888590467186953598679671521289106815731321456586845283088752241240369631129909242944319634349563800550133330101433747736591052813017302161715783245155468992771840120281652144915614596685737957544152856866116854804597313025893440963332117120629613743112144622646034814757478355157757627320402817430130051131112801937971436519156957185388443902960794356097487168594817237858418818253256055240739098651853130539110508449557873294535695277997887969763329516035476404241480374051144046887351045469435455629459491342288174756374661273981855424717621770245028866741541764001712883746194994048416823342172847801312623693689545780664083181521433530500397568069516508187736240099333677723223654951043130672806333570376876913151282682258330764201254118232472337682279870760407465524556967525062557576139360669859005569887231524460463347881287473683314956159452230211883460751603241504952260673626485404066127544810473655005494668178245584306694526369388465228099484034269031114361941732050543825976328345091277854658615104677936557999126195315685452470128417898475579436581892793884328914389886739740135103929066973690644171588976571033808971428956485270647709599241970218851379678473798639948803140180577440275565073646055248433594369961848179852870652355402801417585495701275085071254385611951305703705362978565362685036266555481620975936494142603767639898269416908802215123490903987806317725245643914021273391995614290852391501410752317112489684997902792833704231848564593417110466511622984999319251784677119644885177217738245114618120600186543582466225696553819529659194354695767532676139581361002467060156453804954215284116060384591560505285775505397778645197603908114628587717554594441979089176812356862784755466646337926882444570273757950227040521872332672350450146546027903896395443367697141414045818098067985906923851204956991129122347389763156741884771497936769610950487709701540743993651877131568140027617052835509449758803825721392931773101316942690267957660939307527326587136574943093997507781345296762634342428580144261205139402456719902332745853908293358695569911373107700361734521986789346006722602626915008874516337917312753749368500203730487717087951684237768916793201656585014534612735107105796035115751445769062520693073528470241673813072376580111005522887752251763808375549881952062825439011951826393839058507418829135463398055006011216712262302341857421106822298791268698262174183161260312482442493079908810904144392856943226527515105436557853650391042947477678167302850456066974587054359646951892043722349636719890042262713194362053058002254348243542056847807582135296044540336928457919507441173908236583773842837076891054878402653298164918715499911584339157277017083634384405020523332615928699286436867074102518831523462697777869650220531053425473594703960163782456350210009317492130945935570968924766650176349739635647638743668539984225341650519960717421012857091447158348820951463161607469255326135916057710499122379738010614879453332847953379041721343603343652379068457480219528635933127236714125548960257903668041081473986541684665692781327947719062518789266585710446701132610660534747534837906769669110783392605794395701334567074744568902401467675153636090474697333154829815447463979658898462797863809049953703739771520931037914893119424226787747542669450109739281222626011202577034663476311695516728341999106326050835708666259032529865345362467441192474463111140436817912098749023928898446960271152668291023085890330094107129637814286374963486614027020928155583940150115050808000860009985155812290840970791034237261881433089622956356881001718106484739646227067731452027571120893508291327384969723833878998689700568772639917307289095970665519985591707737104617687661107994687003742851380271576348359660069929440181921987875761103954365882074077395917033894189192787006421435819006547305426159651644393019717013096363927609362193062875111151820831363809969168391571067389417146219352806776382258555808536723900131478565833227531842481094424144922047266061729948186492774080365366521485243877095962650910055040870014241505229051449648370397797797808142280580831844786701623870634755466467008362748613404930181581394635889090562179407271274185474099035693411169510725812979060556942244636132669560334663982967506873920849878790356172905347841252014136131268365087222685538824925982160327537454629207347108778353844364758427962383131938586246994384176852470469331574336404225634880392000319952339682532686206600329113921526120468649822492533890258023649677071136034707978391407056764232271120258817591973366507742076376034551856976500552415977142000670345638210591957583236803246788559994675255179367971209540599272754050747043379541514271353191819141188156291116165838255488433346274468785441309606407363285741204137832950394456510424114272396923021042986049492470057215080620004392708112259898317656387784130666892357778849470570221855475100390355550387520029232313185862651333019307107345646602935694159055286086891415600617750332561262734255024867119698757853152487873537103171769701849771272674866575712699342720389003354861229037121223268190923417667900864056724734914029694454977315085706076668980706949249573939232171828895339438746929221038077695436443260367438146312865849151525150597190946315067365071442027570023955763602615664597796251733876029515525854489311397205504797850201992420895421843732345727437261856181612884329302111965876228421937842282005816127977745852908156111386735257617502196543100635289006303529550496993632894587215764167964866127563724164120074909193211730348552652645842430464556645017165875928343619125170266641576603008104203499518188770960306228594105431843280441818359344722195524541368650538259289298856070564986677645770940494302353615814073498777922682665663392996879098948354651981893345070271093439660818496306192092137171858704387351294934179049718856851479823015458939589671805116110664209088272715594133161167733108998227600999653502148345191279821536522493992461280812647491058084003102978112420046948050260938153233003014519212955868199487967840693777702907289353744591946474031492283230069312225831116768988403880821143199143530725292086251907287215103919839955638949125721073629401247129447244635398752676039314553648662024956783735734324060279825140788047444378564544654405450406211785070456552528197813295919452260166777066594660461575099209481904355420374378052204125831352182099035733860107217869009954778435767159859909179982585587794371190855644156278767297233307538969091934166844926401002004414325231934292362137214709111857112861704439635934715742843696596579557126163800690048540656787938549947790634196253996097149358751238896988639477181231010270742150307472334490185981380289828481856643552787798338070883563750325758108826899386956233443979298550365948133293048452044726313022208280096993305424440694732309555109832337620991186567743157326596999815042261690609812943813982313234250930269094979982482583191028187124086389574767276699044289061143359047905092515844741536501196043504479855191957024357680397178152042533094013754290026551341917651380277158004585817556541564941050231462668506445088363875089406265824548909165655995880627720966198120847985448492549096966318033609771339564013194833544835123396074156973579212976463465249975865033169076784793373731845116009793518094366433691494849056381893689029436661548898911990553219714371488302365748019603247984919946756782951729011689977280202817176422879066283081815203307781034353691781727462398313545159227468136290721076910362127934395192334318548398244155660844891142527192623490615687681678416503782131296650636096865474501343105106460801916446956861129026117234904981936782096683666464230398054928405595705442715698030335792661228309705414521891973221621704888014158687629199327301611975277753246423450291395441582321929732587010850044613350263684060039962314119140936019716181720742487609175999639107979727678484625264465261592155038486483646454660160552480120617475158144832411452386881901265081488177880140648083532213261613260004941703732383977969727869572871898083172135377034002336206642761500454613889864739275079326030787388956737349183909928906803497851480034616311725826224464292673682030076580861967933956679620304426464149849269656473325362733615255156746863944422757772212364862888448568099102780651852750232408103433259421167366327250843033660522802576752496144811252057092306870345352801392354343903749021865811345566753767300355285995945995625227156700562008289056297679177849738028875603298166308468819206739308965996924048279395998144994320017229820252836850607313488836863985709868914403122664181988769614805111731350571203224588722380656601848219391237578866205045239835346700155224584335604690694482679865208251478119406515204259649981255938762977150936276670055433447266563392525898886309513078529838131805915089546968134170806133580176915728682840371681902303774647968515537515599757255474717642015708005105065674753252726359325015365355231882383507008762173104008614326316089232317688660392777098415344297158622018697030843592434956026050100763849658395644818470059404858547898827361090459636555246650713973682804370543806378665959278846293266973728017346334527956358972045876903514616068284761522138514764099577074387727622905493361415211075733994171553442974867273569061717106987567887273557922076747505178378498201339050578245512324367880329774286101926212934624507061862047189269905953016527956543080854923317318158717291466458692076388577066835135497357230800997291413939021437846531512675485173056562066457924923106417903301330391584093205699163540465324024301107809888278751247326468228577474441788733595874132833369681840044337266356821449519414004630576567795763276888910397528116480486286100236626055994667265161716618221566167152400007818375105409967503611868638701435473886347332437696473050362588440696443638662326132623564452777330370500399901125052266088221770898688002627890235631229362078418472879519860398766674866425511006295721208485864661720129038806263323742822753470340185140428846756642098251218839114143369918935431519066824620692397411920527102901646517587216835831162008424290196106277228700876102301164770618285555003842065112607887767684303441186227126751341699236229890882028835148915024148015786410392365661373353879397538922960218048237933776236354621094943847369296458583085972200958759496755372348578217144335334623687969561095428602895714719171446824794667550744025408781434251964912947094571901127608891761048038481310512116912105122333940615576281698894838024866697849459055572255634656830205786546636340499172653355419104025576527883182221060054040539170238918500249803194950201706910038902763575285748916125735483824887544531753148324342456117255876095662950494909386983561072581179455424142378949832627000901633337053596099796000012776918313020558674501396876911136547360087333792630095528562354707557863428503535461593529489935535746229093267216042214137955207687148651910358497152585011644315942589852345007440113558747301847741486661137961355764948123106135115717259503315257995187782364558469429867799826925250505693411286201395630997572429674086401335298780937655943568408153395064228217455228052836201006336512624250076466768043775794948941936085885132717707704186312552214694319759771716163900527211790542023935065846513698353753897507369002604036297154276850857759126921732777229976428926280827566979482403874918406138866262311978758698238842068266189095149383179990583961811529968968402502429046297293899909281991557513590938387287557423673061830452929163926578357071460617046595285472176782112973293210172232047128074685593363115084512144038583618762736622392716499529583950602324074169108060141166188639098022176718006338860503872739299677530990763877752242427349329431620291368260623645320346167008781354088064963519899497736392337576740661846148505048641366805601126995812330658261142522340610886310155430328592109231579060047363257853422921237667613221899669277273524429198795747132749982814005191729383685307455689961171755364874195000597083650364870593282047309787284037539271823757260243196620666211188897849357778489187201649480881854672806533267713340561976425338750643991015879184258894789560414103801144581695248788970207769987232426811865323869186020736523960727826252646462659151470952506009562236882311599709126438364338080447348677805749329627361993753955953601578814218337518353174054156918683608944400989244862771434466556975325649357132442918991069817688524089989797161324299781149730956540650676171194845581947019270584396283726839558586557611609954066803348919589043586083120477764706068295094788814918160204365103481351965786191138139495777749606393077625276022312292436100355212600239955317746535121489487988785533579075442043474414679475090069615043870284307849944332812997177670455000588315427182186330927723422139127637564869484335077124390151212761233867614245077807534581558024461988414709163053160231318852598731969947238232779967097824982416274046957473679233341446530289201559507015885419130724936332630313512162920846385633258488926704312809853550989158682482846368043161765812736554028923319939297343412370833973818464189956054584320102069018610576325101894019006857452662037574762497547742367672923795695845093183315062114211447421360385953855431563420001425108053027280642183306235902318081579926282975773563912768516081158665017365147974385597891071476621576659893341555455984174991907981828717939758082303673846328972727012782759156945514930626539436522475971240802118330336896822517418771375790653413301505335460117933587958179255030132376674885200785959854732037815790677868512128023555661724694594774331165469145238076376565666830889619790710827348763837163342909076663887944353151043936592576954438605319934105723634407619556492891593734944102236502483186216065560739277391655268303713532343846659066535145630533759028372626195034916186731201138233281085242544475449939484695699147104772011150406023594277400237868212714379291186352762431694209887171768210627470774681914046962553634589843111308477530471566643148281641564874057162369316181026673382152133798172679186315399264305331095104517066403458519613412712198610778696776102277375374209523326742158259172707499601751957082646283943735952647052192879579461459131751494226092471361617026534131850421013932616154169988593782212990542908291524022840788218822032576812272715052057902302845609202105433465160047336593352463359692314935739734220214911671370387572870456723660889643557522644344657994714452236112575261604036684490030465543379833887883116825882901482901117757646848394522670940733609577170647240760159347537470933875850447884252190944972411894314983659579453597572667126607871073345168501902347987571762746940472097479511938228554657641642546739694051869330286462754539020083602915926785581058505653654755123600511137103711125031899689113760091093234093702512819806412407247379896459088339976773894831505745869309226079265159585834241134080334125828837677210780471337462416163594328904154254928687021356275038801245559209106748505144263690716163256802699892784847167032228877293455101225894311960442964273282780025173980489677026857808072677114227750205099870858312239101102839448723676353646617711875779789241596916215583279745467030027492667318580176985962754188912775570030549648236817206163458383672318320106945005974608883232627057915980309039017676322504480529680575969015823590194115521978286005512529494400601076813701796238174517008719861613407727051935387540071383245219717024494935856592129807865489103309731583990536517856010329558091122388638748952281871794397674190516088509251948888498045553515339437252463854585267858810659412700281384646318325299804304723303180373721313890280521262782326858915744718501825965443663169629612842231378902691356488773379314024358530480314482780087216177657762964074228554232415706037946886843150862825561973369948818579045692236385264618054214108042398901690661485506101865438516653697037810722744715385577834925691379757132327863792186438641469626276777990318921852591102948824981538583840033302106725342813434910669509935281230595185465841674306792747038485888269237823599647304738559506584707809306218467749097237961876724409623114235181163335530627024443517808020968829972830518946755323883022674560014799342224255532117407444178437203549226219794868649500771377091102006956518259029590528644799253924874782681204823103654684835483814545676051343451973660349026121939064460629527413580938033627400035208490140583627630603016599177298345391890235883463555513624548009007180613015680459259588517610503187878565126559683142838252851769924561132875794953202092039480350286375946122275141048209512285493349580441342881628459029444940873829107195647384158654043534751725579559500425125631475379667731750632776152079598751029637829330444000549311962330286474728873908303237024989423683995469598608119053538474373782810219223360970671641739380999474297418031642858355571397434313673928079666917665444251329837195775226305584528538811522433625572899583233274621641336460226175233194306732962142233289170804038815225926972490394965832186929280551513321634022998335864077000831670035564462119087685120083077441399620721800886248873068662126642065981639602646897172471210762212675265431826271747420003160095302777031946565033564028582801835120297765051514664796218144489175693931203273035862051909540703069985060710633080456963809796395327176634091131435442557545618535841483617593386682784574802631423784442333126122217646264326055543652484856348556604002374581485902224598798641169953452022945352274461077752075588633915627691670058543551249477933341543727767005577290345511465845687151743819253223003858523560359425587945848339584178380055647943624105822092767970627618933116634459209551237304971021436454281467853861208962907408228389581795370618142140079796518834978648662279426183338732482314965030719266307167011693408236649394855169658654141901064006087899231728766311438187409292640483495280043177282091440118015456862220780386602335338125188499097870174455249105991239478054106164251223755844696270259574595276297530733738465998136006706618873510387130876119519443955133269768252507941283922131847558956903696797730920418259295094633926385428397598499921130389318241922876237971329561376344052473243442210737525725846869083798158900499185053189528809090162613168469719392282093544755605589233540869243411453953598567176130504696609487283900785761463239877023043856169935673487186562524880896560537285508015592365413565179099339091908852807789751194592245249991752192573668468291924693386305504199771197885150143366869593516638680084703718549562012323261352015666194674948462179436859124388382848640161707861701362322885928340532127499625983927909931599669417847235221419776036745693032540509945024685657743837596510577304147584767968625944266088482993516238172777627498995072464973723135654138604734299781834361427130197089869606708007097410801025606634004109353660159855944406758309852684326670350974439652714063302758009411449708939343192115990777653137225046578302367072430514205571687596352881586134652314533569899532085528814908035627675006593000933724176116801341358682540492748609711111621605767951162942735462148051754928462947419195891843921017900566891179304143272468620582838479163009617797932762561262665269927432663927151414372718338117839544539995345990213018490895843317478552815088883325072599545728521331683988972872827598713050895432939873598123954963955362420628640252125083069399092279397262226707807972752163128371230711833358261596141250227921629491643564455932648031866779440211289887376791015932129791718540315725956541404957259300113763745619612853151280136275256172734551382958781799752668662129706100376778395167935313651247236940668372351091297218807688083566846909263464969710885226968118983985136174760056895721167805688713403993382495407072383209820052667487516915449616955171758625331956831147739012434526858636081208416805449857294497799031860952000486685560583269624365566327540033248701008854309299690892755505647236356224357656041194902624371666346016553201131290223030930962539355679829705251990542988752291477201852551296776932807456356925676732540497067723261499627735967213656082246786759802273726364589568010898570253536793608757888205457974254230914433623820450371107521053541010674691566969351939877247334690938109717699561650532885165414784132285158650135563434902814003941988612030632272603927047400045869174755368262691067864730326498012654567635772257543860968691707696418771958595185982430245819946323040677915603861304539334902778007072886756584778751776300154578391318631417835389881933854525884550297904758217277716216746291359278473477908581567665696600288704715569663980375458269834273562113231702415512674735094865392682696259328064703111103555973946347984504298711582146181604125462529981518378916707787596935459431086889498244992567370772370427871114762248733539297064389308415819129461400882608764567544171402666967824071796208735864020191873651517686794278153448359058364138536429023273143099991545825906215011739391789109631785720150310374032380867975123215469921479292814726332651424310137541375949916021160482342225901751142172262462373764523246726954327649731668899958617713415464504334505202247490752697458941335488944764937258685482744860635284709003448325354628032714299831644478915920263109241277140652160869648374398975701143838518657231448878673738615597621643478418972685096301960689468280968741972879818114637952731135347916398940536815216858540394767120729554126293677833458849945736483028065527207729978021007470313957285701595252750813828723925856279040396524532449093382409868518854389666447650539281857910688016302100432225862335341789827133594590732473644402940944779408266407135404278202999139852211004719846515646662252378534502626410447903997460782957156532297216960762531071426649405642510970459322056426598961098194236148611701202496549768093079549971379392209304887923080181279262640890588007877650772244589264242408702508644313177175374379635278199828775029303478647905376712128759924083632885334937806567427481142132466826067113523485904685986364422413601493868599461513965866199855121098944392704841423958500377496035878020069359603991830073051945664187136101526939050080279312901740460738952953724053797253605273653417001152172672015909195311724009805110135338836310474386390171413074004121934972890051891592496216962001281901264030414757043043249449367206276572701582644568010401275034256669705546359336644631417616820934118921153569188898649227380243227415500196155457228069014937798890425625088223925838269692428726020922440098654042394270656093457045764197182893344333922193701876879562796962096654741739869386003615500362388055850549645448157458979297462793918653911821318674678118437817819241676829085886543236662853726350404886146054233443530797861595106004819088428987388844470425318480842518835555140622651327213991848151213668006310010767553805170129298752766597679303847343449337272385833300695678489323453439946656956062497281854170571374578875114289177874248593270061905638292865391283406263151747904091163273277202420275191314293414344477073230405381773723263534210358892429183480043721100002834140099542490412780138739594911051696538687528956708324056794763838191770830498361996987168098930434338644214740905096480930555744639329809212870580715276591050260047445976834419026407664136524625959879642899196455436518036030298068680860756799111103362584329013058156504047709199184690135580043783766390218904393971490930594572916741834045510613273233946856992432287787449461892995361336697075501432797740641515450711322150307226927794188138430475542588355334639845018050513693729574302328773254805906261305671119810065422944299559414103659199764943592940694097835900495401620890573853843601518254800035928914832495998105892082840087725071624704134010182085402227268373143736628512100467470644530096002050724842733664452558145231938591665217507121944151342043720359461685269283213810780619177813798175686808177966484277106853285659936193686965992356994016743861497437029618582488832791427679744144220801098959993385119138872762062146991127066760158420441018018346724682902697362735626376240698200284050204984710314214518363432351101981784706446604555510422571424378408936939703562916998606008190528998107663530054048781801682597502356600404056117794755964406033147139032388257642162420881614114995458379560617246924112884252039252322586485721715898530933538653787869962387317854421423122262185049385820380847788389438398521966857525802365826637110574193657344395845214612515981690797343642828988013756894143944815774021605499895676020314759070355766518632952434135746984788874564891191158056188807707393271828391955987913837556261172046922153594137364095517589173199914033281420403694643602561738858916136518818493098372628497150103584725693479493532845365968214553072102072700668740205866486102151107531838104025225518887248624845823275123866193853828476993954866680505251275589674267346105671332298291921844114626178380143021074277981975829942848301007458753484959373602885212014585701326408073779743478446146115018316160962521089141026808251485358609266737232941756409877765833863677621497093667347332946544411453801391313402085799539767109151135456094663528464567569608644296965530706545291679529526359385301964778682616261516058534506393658330638748042511548411628440079467853441929094075431160968230589381815560616976439507369941956567935875705328425660887849924027126151146087891786761622891218322327524486543968224456736233119814692434627778469653710894060033745256954357597767502390051137620567336565728482340659492120886554699302788356645234136803551256174911240739458847800131689681246329737274616306674511077159885424766295256263462082974473522276292126745229319857912842722453681443148990429794457429461156857713592274631807651465551490717718500093148161212645055072287275035376770309125447556281298710308792275346181471186156811810204641592621072176888254483317459007214290304269255100489966493781146510571926724421144828411845495001902261163673705527409757803391019156111796142304647328769621928502284337490811423537150165785818944552281173104853972152825675372035470829705755582266125840837693559049441722261051002978367883703086512099134004625685553408713637513260955598866954387645887437444178411915920025834477431595972840657305431733682127055291366677487624286751659045620478822186434292270473583166598101233556777423832377810617646245748620248336732637486360744684020782827647270763129619203224954296393239709774183754695117509863721432044702210452376556022927472903462091312083295113489225076232934542220186119157004549672060212834638109809514391408307383704708392630763333678202414124156113665523617417117329885172943730937838232095837663903670420042824684405392615977357860094144441052745405573243237540202503187183489297954610477412403105478515117932084588601468430600094361885541441285874327684066129171307947896911658034548560762559997967318007411470730095510249502813909725174505479175212919542226796386299799814300674901470948193863065652678878462456953042108740302331858380809730488503059948028000232882985794431700553122793336353307788814246786446995340244569787635792095385491140860969523230112095389393691827240581976216098996810169364586132528039019810521373298168932469559410751855655022889924371078813862827818886985796104010384746340896295217913398515746417439529581622840394629883462197065528919155479457587853395157558201801915314312139012355935638450195031846514485103718906781689839052255591801963939784799463083352950044389566504794648265858902662899431781425643353139179164407580299801845693994875205414998940294148728359798878807069051687444602944728512530428936907392693424502045339920330558488002800647229591775077644378053439781576844357388034242230581416077208893008447697268567770294389150778197800519992676308982715609295370963784449283339932984474389137236467397683403115269796558735476438466772185463242598590412360306850394358650539319406992004392949491662652548141458568747740355419682373383866971566800827439110495893705517060195473494590798605180308385295552130065962692121755672487308555490936464566757174595809128998494785498725326006023939228374323611377843965626132324708491459026662093028593102545159442865148327749450436607517117123474301166057736734918529748738859713793003106348922851853563787051234675593993900616008194394280322986979136373434396509966036822495912017531949393076043045769965506485207262054875363044226927767659837809311748573842323241174869088966803713661230600627246963965432781383492912899055586037558798534709076135384960487027273927814211409528240582412921485507946727613435365000276055686725488311743414759448326838349560949055994490787581619402437457585479285302958268965605405828461627981629442172515073148977496357768059190097309022796442764809115344050847807233730725039384942078901012843279952723000865469555400117338206742352838367108072194151193253654427211445078959857593297734529300480541767071223564601009667120506716378061887801840820207419162861738899205443451195643931556749787185038128105645244695809275251617798107951395608358864761585784561442161632257001223767205476119392996711981263445184995851290607173496929943193688867973176307418244888118637315331774400951891558965513320303794322303375366464453256248387428491979004343136740424143265613600358681354842837996736400641094443398803693723871568732823804865735558091804862046776920920040795147104703650131143352471185052705911628144553197056887784211861906914134757857494862860906782230940711567538103340679242525563198619471593207303404405198098545662675918974296343668624254856343005985806141945735710216282972077857689337430890834492993053951921743465364016082816636210362554744557521653283198614312199607125656075619802562033950807285099676988180753559924331275900004833244575311522049169673930132266361107819280143853612577653700288302523866816841242834057554270759052552182461750150397255948144786151454305152157224397948912982096525619670110311538669396887092554085639454723416110259639001653716053764704349198867346802716125150764725134163220620679292238948930694481330874938318700222202206611359320347070331238638408695916412194996738684822178450204754824627487291344368846030412160969092189067462674419037049087276128133426061031919146827803178221225625550057197280075565289469137683919298402806419965192735659692245908837251034603887493796087311857495018229682498445953287226152711668487598976713887435704977212534750243934898611596073758730420161553021785351642265850389929944708098188665591283048440025947552402839402128288698979972136674309614567411605698856769300879859163385334069344108173468512130379449374462760627925547240479011487259825553605396687533004395588752990874346883970326399807819766238194277618609624390259288531105140122546978448121668940208871082465301002724484227884283991733433285451634948422383996288720250154389030545885407563321283950550827778519817461191431930315701335362090513589028414020494612712207001685993288289610052570330964486340508212184570756041273861282862131862825551538693484624696956713849722700545673421794719095501772406816529759961810546740805926399802744966140709699774386799696462965030923840142864474267836012219124251729650416682679655599679227469630462346491655044359535107719589706812882425814991740634547965321450696717906259272906386713638648261429060806369612021077819090347239675414406655842467709633976584556476850434875717176132508120504777842429707727515887416786475217348329154899511381232530027966338216697628235235836056886436703581127680986226050991563375899548606766738942070275031689934672552781731448307013337270659993016098711289590342897781207203110791936023543977384243644966373089221365876151306348516237872265984640626041083601805245090602817988617313227251577814757655446253953975649630091920521109004991168598740540811397813681758621401237016658061267392397814181810784771996758615200135043897236740632275157356229743408988815307952905820466063056772970802526922309680260612357662167392058832798025996674994154194089403608974702203112677221893457556929807599051548493274366963531800248208292373896424170263215119068099973728291043222128279229768230314217847518588572074226854350141065237438496397161073277632080724278055910399260886721404209950503002057862360960921205772591015961698271437047868198087026364597404116315743352477790875547647883279600614359215092373057033625360917350012174853567041365022760303753288803245730225984239587206099455548916693128540698999608766402421312984821024910916579412644966853866051841099359582481869240855482145458721768096373390418294275988768542771314362691302040387127772668218966088171347783189555171843586589897774958531610221748361969740800661473668291349373277653544946532470403499054015614335303853191779519998038656067829593052031548972712354772459765003307439970942577854383538723382008153357318789404274366471662613882378453547319219975549097561582673530273280533882542725023049819760428326768108858803966954875146381133768959696774197097482666247769947052234763487309775875878578850243152184382293371017941394692149914549433376737850683486841768890267921947263469882472791511716129296882276379210391352015812718207636975052782794123776817907803903398051101273820825663315260437675873668403930050869831915092784995209285169533620274530665853786195371473592599702041565163970546595768314139115600225208926023624677795956767357566092208098106642828554014741406406832721912038668336690514620963066892081030604055641236158034808122617061563864740077185598066980811343915367394334238700969959636309110576010409868816994318523102909271935695176232411721589921377578840399853189843974560701471772890637396018932004323747336928542103334782552127707355304298543611555891161538156351311252171721595414899694515994532097985792375705209649493082086991835464309264123776714403920678098874013010440937847168793961970407289367483930634126031124923526172168892526487009494148732959860719731505991653135402747627309012058099590901281431760458439521447177003802727970056197836538982696309410252144438397642772708186978655879266638952175463350358308621256352493390415680091148005688088325950516804247235254850906249298869494170357001301154945057590636922487810794264106033307289350096572541126098977304520034533734520887060181889732896722767553142869699149835339898262059698646927314842045260880077220603849644449802033507284186802916826311986550206669656239356229426594377586678262853227244841856153935495013155264864397869567956600074345348234699243877177368028607565097632164142783214661374713488546239015956558900292549115750452195346759992072392359523211042410525140583006563612191134578031193925648028096061465350148052185653851591108197056010741550944049111213403517748838990366923575528266882358706009901324129359018922671996809149042501325129165356432878071248688409704731542423856654568656147389288439442705320533589109616368495409419654942347555428641768241969799512343478442974778190117540977592740026876071653632263134590139872265936329925389959773621412836399446817321618201364902247154036684075984299951015164502830433360906034467934235088903814304831380011422895370563304128473811114528103942326816172442342715592309617123537992791268916327562634003227802895485510370153657600686426328147410681053079331980816831107279299822796260726747768480925081994041166169685096401491085695498878584342463748651331311250535927080978312518181333851798056310562711078146109019746168744510941446996558018144091327319335542979891964099144137496429695577111633160129240090016278420224971611613198616857092284743295842856000918942103707712833522184554714188107257339035354150615567732905206416232348463215685143821096627869894168618359977655238231662737427855764283167439350253195547245583430451108521600091016230926258501117879007204578464740280443897078417952161754242729857412101363803530593593860155349914731457259494115636713375993466561542118501556033859207953652144609787901103628841261643374973752460743909764652225954745785741725907711208308715301043876124665259885335064111852315342676740713581786864971510828438709602807829178144735128089793977890072911680199799303071659104725908604807143120033523001798965831556814189628255569573013532422228672145586146701305983912944197551355027475974263877840333597633549852142531737977468589613731757396702733157760657450454567819289268134356207474273857328531735648679712448467588187865330985437686614709708294666627059392923203651773083164870952201154333602739037637805484996102026240241771367020570785686847540420189179388613160501317388250581015896299669211395935178833790824272646287368479099668057179731259528007224247244756642378979954557517861587948408263075165757868794555234697548092420404332071688205201893980980122637672324157737195196693946845849939073772260348200508515681443763524743881783184191603116145701555539101471014685382097360157145607055474146619822156785512179059779468888726981912806221342879984100640730419242656877933590607689375872040797743692077435035000909649450291649787050270185560687042806375626456727568816174428555628002052703331203702746215095723994707733613070486958226995677333016118174862977774015168529499107539659283737190196280166923740327346269674176007062964744545800135969722673135391764979182365048974726809321551569317337999309455368844427874440710161880058112894751451235556719084518643913057081174625031847217694684833067992174952680644871474389326964838856636489096630364566955133297912430662158909227939409680681475712440686099923855023409888884129615982078678428894170830499537956604837462966585011182587504700071966897027592051820701033795186909864937584723571984770064347201464125481088832951326129480355612172009437977532140958074868361865438786966115068217304887104499817678406304388195521721852996853183358994190016061798902573726381375612944275513222911257343461954475048058789503200264785922810321937144888949606361003524392125242468348273801949162890132736013222052434087486122335975982257042713565744814920886266055494123968589599166414799146030619629607216097523471000292291908627740702332819583813950209760799682736538692793576424162889218743528793903646995307779208467125235997488555296506996816807307402307704313176980565295769432974033770603991348606728340652284371811630350982165651755516416938290863750466704393783501128159812294455604849052355037827203656801890505443588678260629498281295804123988530714073973888255186667118301292817482748031963741979096805417744356105549008335745297901811387609459386354196530920409846127384384592516920425583548460714497384698438622422705921464349036796386153233957543105399173756083861235204613965622889172300895515950727973143058940659648520708516467693449817466628420905620827721246218140464255316879278947360766727970754756401103428332696802808231245354407056492358919709018200447542926725677401638844467774760303325948434270403319287288155056755921366917196788608595097003545321890247759523860551370181314744904134534380958936979429176731180585371249930718692276456619912819458104075135398379303194638671085007569404332497728186985203903840542472666292096363181066985530185557891642102520182370731430844228349290829365750451969672471137485945690427023507313989833799380373007059971427624567948350088900651078769840124411188716392694427981515980283466911652765825720229457514621209126653119164217602320502630652872384371145677370787820465744347381057630789057125088087956470417101982380463239457410590417921333066603540408215540007102566306705977598931202365922689431023304609851588346687729689989024628127153218543697011301202594858717442827347967831737869531019756304528009121413684052916441775593949302784954980962053849259656785482578673778341755382504474369626123271893913333644775234724917933177654202684701878470138691559393059897479759300621247267980311325049482136500157312663511895424142426526011226056378363496953059513975051872408327108893457496242279475909544663676426551013593509072716011411773161045212749408583333680300753761809733703066968845796520559326774716370997412900677862371683469964418766912695744653617272417016640685557309164028145828542294772061974302045568091374999432270971980427472987079333735451936323754405804716644099551620518506139780032137436625715010798994006825131623317042518667009026725881526476968792846263024301295829844102762066854973035001992393765146202429158011755917497921816293381113288663965692224935885068181845082624875229702794453025269451686291081567751409042854634977629754773436572375348061651210039388422465891176191026361900900037907699424822712899394036161696323345207637588922055050657665742765512684907085554153918627512770145500980903959112359961798478777220842286636516687662309574401375403926206420579337940843721761693848130090752695414468960262688170705667852986980904858895381856261132770171747443456289570532623846306411935280289868225000631861774916958191779147117269302613791705471579318193505786891048862038802901758676556251041732135058184576221042130700588773219998617712214859809205304743741748087671725298989609678784167071717661501710339903329753874312348916469978063199897238161147443525218413596535314974151883066050356884784995791208070130032543236200251985423666596674996063384881477902340346416041131519490671767152133094937149657049543547317862683026475861958830592001920380605387018848275064200544665889716155139700201644460652550371182920086291102667224681856874006243604661800840053911481518866597522352688764814069107658885847722106677127253534103610557274020834521929778068731165746171673786689125714549044578159479051752218847898603034214031095552110798518621513226700525349282798542809160696875752937753299006802354706250934491080985623408484448717846926763761295000306251514465427332739140868017867293774013346142899765627054440645187255183866468138730137945670815796531784781357637837105463220431302245298159127370022554992087269522055092297985332401764629563438402877336973836419283120028554096218526820708828040375607180718577429437790642813449868003048374569065321401213636163830685737000337882139016829718867695381018819343862599537114880662989406033386068855649383420829378865436369835514969039446931399001001307965394267331925692856332619513666378598926526031484964792419795017429195740032269321737428109128943287743897436343817994714535779316373468347124521434528902697750069143660041326488007532740632193483857753408678931701894875672563297070016229939102479695337699623308387150912911710408295402184387636314160771061203004550531611668187860399020481537884119665403630189068153086625715765153313126123191491205998452846717798376621642194025186298667622898725014612020815231996226900203769342762837468631154988966094515366969853705185887785026554457277719958031401440999902124793332480530693908562672236327944041522130552550584354186934756327994295555811734628780507430701338845540814858437092624260072896735006857445363428926223997366696915253602730754432459141273705039895128572103752529754670776848020427249025938633982279302926026337327765112703736918656042225122984684668953601444372536646085511298712530046058010213669721442859660251897520693510809063284708201438088638412909600139871045018448894898965649033919577241785747979016449334375904076966139119220306065633060609592703894913572954138711039218622319874040506053726855317974022025813187057653589373002104658463552255189700495749238468211423798694699630528943513367243596012631452648538942651893345199402597612506170317781223448424999771892375419674700536584339588761995205984063705149241712504642344055225806504536727897217571720076677895922143832310887984381459597895095930167195139294495527260616617681011594747062213479117387128609253056501873531084814398791041662116971952840720528161183802196190160167229582572416438235929927756206965483569041065728964435591063230180367948759439333618892612190567044539115774522104646157699754328504654787750865813196871621594468488576534883985284823865423460533762255676374346101360329295741211870051698718042887763557434939845948322461220478126618390128034538340759488560971833020410101403931475613880802177118449995401619102107539980412386387766520961617516364138814677225259091034850484754108125026455830164839286002819432939354029517736090214097341428025850510149004186134489855640540267572380019305081127626813974378899878887782518570578865525614320711625692661155770798744754152740209082486610356530159840722530408835858730281510846440144893978886735287915180919577443509220691877777154556192069616736734136442384697505084989930301799960154490642342948403930593312542351662699008427954733100500910972060187238281841137299047501914522647390134229287279251218413990377648136222863661347563137193837513523157900376092853674980760660679815257971912836834858688790621891903295443470448960912115988167182763741286218175264068604500848474526028528199197471765169619250886619106348983849054612195585791758527435152225619898277481705616918886074182464973227614098014942397029619164495884039853463524052263068461415469047110576774884979043865246119336843052756759201657131072722099826642841741165150610183467323175548880299164356663532917913396934141701719532100395165634910598382725709755854416440943181228558357759537393013001317165333826380417384969945968440441792231326513653927618435356612025755698955735407055911175094300180255362197526224097178426301323565759571582796369403741555050659646882263149664522872278198631885847992104873888200537502123000551782279910157355715086736991328797031505313774507679753276414558188464671271396058501469961973878221135294641153060484720951137536090469963059520171510914071016981866880887987025963320019242302059294534508683494767780333039334780412599799296194262339771382010041393447783600499129134410157359385535066282883071098481605214133877010189212918759710262654085161280566617723443344355869245082199102192801657851013397051069890293672993587379294245804872039012326914940886874724323033498031342330520038968075820535042633635860117039212237157279120085990579609844783625803781328406470609191690338902087233870488107587528173005255951096351293484537134984874322839032631630078048342438779688681363704813829631923526580812464022512359784126873283238899519406034347013768857496011265331646939669231955837151863629934331187508808911944374096103980450014173594545431885007782269827847146225250342758358317158614573509426290643116536181588558473233863306428600027842901873292084502553026458699923249106432890167658851390629732331719782069866216827731074528924386598268401670947269324729323876468888691432088937899169858293438675458871887680519009352732402860433288378205210947917600841635604292817506017014861621042177902850970388499866886773078356351390637335055713707225726415129033052956362035028172813148431603609398292788128403378737266131972342650215111695159404332849770967262070114363929070250713890345948457583066214646997356785157819803275499185513233251945716683052534053024019826241810166978156325400190669761208580221401597220314974299991252763748888748700206429779483378365882434676976714444846622956012992168312955968783655421836081496346998318263469746053767141144137429450800799388175711318573729814525221878739051913857213649434369039009196143002627988776136877814719801259300024815997148412763621580181788228950490123603369193735734718337772281807810957512967483826310912872258848722457733191971091697289433792895741393960171314025508373436873904683406359626044606493617574036077772344339976875019577496334508352588407747744398969770933056205507590466924555286277299871115192037450705913079932323996753885788073991393974341301361352336882086821789758614486223128175258658890528324200847098863916378136757979816186900575487071899940334991361520924053824022883065143586672395618568858678697468448006304623849156936810892257140802634803702945441341725696725456871445818399642540869516381187838068677187326033969863703004780729597095744935886463590575296123792376188002028687778893943815212072167948259924049773311966826419610316027519315951145326329116392355595330401379043241603365708996894438233562343053082688252188724706336527459101955538194377240458090073135298240647745061405196466752778025872066194868879407479345464335170331696187304213676151840011126340991094639500587930921666209746822038471332031921852048108995410597563133947694021959607155676896034151801991577426782666225860393946545960913282070515392781676578895440199505159882623058641557748344416033486814736799067292818029572005180310294954383000115390738792397349230087162128748590336584000638276158231099889034295534982638319410697765997649999502902414780604913789134636037003395262880677623068003105848101624288690084945717984401291053259910304099105695342254398919015483047582266549501229454368590731527681495998859627994036382441526505223544990715915088108887903354770512633590088683011814775239722531883688399681679301636533362306947611999146699324240133311707209657257324861760128228049333316660892845888647680077142727551938784880096223428362992965430998755740353087531433996148991014436213326544675140656418657815509735042491507007115480408560226664991197762135399575575836068455525311450814933552806273166996736980067586459060362197392000250699873213172877605309676288200898253584757769577860327061470705516392994890975266311490428609579549694896635237004712885612844500193981776862787954603523479435925210302391646251030126142555308995628052363337798312199042915730625657025162571216144376975932094269350689482348509958877095290887574735315686334902983636966403384239276282002734068400610558439743929666512081514947285655167966500584231011946670909002130578673105431825287942470176685843762437101443289890535506176205639274153775014229215242162064523386045231749644100101259951363177756740550834828638089927464357373029412394112600646552104592751149059212321331840950992615191672944025492963861272042081091230051756941557539528662159670743076315706410055343314156158116569446850729077631975168788693410200325364233313195979610202402672289882369057552905411740713586846880088502653153058382529581533845529916934208814074863428465728888638276504613465530582980956016122094192606781578218211989826097900980754941911762331882284892265679154895279625834740748851538297738075448787878724830766392525082065734328316699869109260984638407977615695002969443320466724516715498957027375791027550586549458539646200628594979095633857563398686828962301950513686608265628241153397093468322495061440587402471985593502796370195677694330026707671930315127598415018557024018556962461873409974053521816194554168512186351645960443359579673886353885801123084637256516350251666520636790494322784920710812096495090134880412680305991802651717635154001458762355445911974877382961291177384318726642227551000214269917636744570528245090058582189661940728091714768164407797376688118787215161043969934895059634930009566850736929162339060681595661778075976025417029705385130948474852769834228509767929392153797895551213935869123171956021507263202103924423187378730554224201498008535417009157194725585286052648936107450209450693351381531436291678007128614945471927536841111847211522718682053962122283326213188622536118389666624164735995686378946596768057056778898391302299555430412295964903924703086871984775911562621979987771986788625529389441869963996502709251793315502955881191898929896447529462283925581787949436552142241363363788281849112786560096532778010353133945672722446790312806346450123020805494168972940635186002150374890528000567447976207179715699628727292482209956285414116193295692497226692847836308103309916141373145396209361773188445664831075870585125538799418301131461591009183672154147084929184175165805235588314112071093806475353724900353065410429093500526449986191953929146713063820705321513421822429376937312575663889651404636529029401170281946720448047147013230467771199383420826845868844773541074456138975678903646479246912865646190608358990218968523506316433425753094115207890099489779711957451538528526707637008034521081675904391414498411252510006513625059749853646778430930113632815136531623469965212581115976948073616408858186999173567644737829785252274678333666347820565349655697703256304523954568223848889542976210967971379914530049124153737837812336179950851335185989152955092343607942832210822661592439459023662422605593336753303539334721280027409877164718488275062538160972606733677521868550122810246516926956832490607645055983873685140512552484660522456286207908755972210030629145557477150919322463364457482021092364839042668846385575042986723792301930597152545641380932874738342782193271727724829499782270937212165120854235679406511230638132598458249598935887874427424464251449163203112330294681865476469097014259559951634266374933506507699431486610322011145614209975490168458194949334284260590343127562267087682782736314346533948905276703987277321026438871916410625520306888671880772749957222795074622311618959077790446509961036824905273467205006331382228941816527219691978847811144934518631638487270893662161925224102330353822191916604902811519987520037797834978766808932024709664178352936049778353135268922600794288714672118370211543542357693327312991081960279556076940200792353990246568112571963550386017124954363269268226114647074853691320047852356161106464640808287753014645399764885412367061326138138378647452807271935177679959989432299968934283320595316592791024749666191681216379498358257967568477672137452171273645815783248904359664816388440256155470154952317919234784200325358007693062716845284719265866212721861087735013257238357241081964101671455296874606960881253658039805667283621211110363633258617652804044928702400085002798918126760432636187443914076926390245996227483715801628215426765121947140162087120127772768348543077320886446249286010345544060332117688262025506621622116508206827984010648034677277660648231611604130807229479647155393427606704455466553640970558531028751422758798603971528650733798678939499021600363388479638441636394445096551745860656948001618060711349984353337008227932531076958880093107396981739831384475040585037433949811323837498215722018144911029341811892873148450781209907312079649233128710388582425129694187668066813144607784862003699173223015299239831133949234117791607777157582946205289364184561595454804727288804490284242557907108890794452480830501607910411742907588392072517690929045741556265595522331739849219445062116192051217323664363025760580641218334693439235435578320105917010335785469011608503473764939807138275048207929270774175365887886862391990383881826954771521681342112641151559725054978333900884784745017410746614026867631833991485249174177575676586122370400391860158858720884294357363745766569618159027746226415884806895423406917562016498924356839752736595802728164961112987041701945610756450602746949610362336473117822944018445262298478676549974898954172040886522131194130877315899329611363572999930323088904977814125684042222684056021724911805243544026641676653179949946672598539883282385546940888430614734782127835162587570927437149102456166711245123948681558444142502082371713702421170453360348553545473921064365761190879026946855148910809543845798247828596325654497113182441048868695036277213765750543978431354468151830967371209283373968857716736428453107135532981323463050096747322240892853047822775919889065185991850169412508383528920440849783153099077410206722752086122419004091259391782358164059832587226384112058896494923949743178309073992314420013219377264077025270212039816274126312591180272466930638562845401512041074814809861005935765349142595451655267886715150336557062036227980504119043876124068785239903642857813415653487330936458949731416560683835811634300281747122374652203310098291916387706490356029119466344648209644383181529812491556970814835068598243951844746690724634207088415985033762229025775326297494786428150208473631594144843000793181336862316331296080957860525151418119846967578900594489093826619458469648855689623232046576266106545478670353288592348542367050896072494341127953871098822244169377959529958767771286682424760823620490064922270842905995484512044911087500252469684982385124279203472909224618015392569906574742716770360744319611118630633225137592246666398212567012131717419639669585380382407030139614921836120161482190138538975503501050312223827940599714282697464140881075287147022503653281258513501134096419282463596576553686056861353613931068597285701360348672975377027014382645806190868705026460894946536752304639163749668543767654855764720299120784510198642343402764278442473445778394092036842569654441467548059900976609206252392070114450529956318919212228632940640279546141970619330932775323038514028804321516516340808850282520229355841814704673691087576225846960799614455145245139041165158829498256283464783622899833971988517301051639258172112740402451189628400156423869648368217278834757698003825693518212221951335668747226625822508965473222794860435975892444013862169066121246683898685848514555994595574879560208815195959176469810353362443579777007385510562704415129738732557728091649794809323825500024512281034414384317768202724441966525330486723671046014084544191746823450868676790705373222107992278057319109305461772850413972186087603478777877211774326269609586021580581769558045242789614139890911271270355348286681433565081890559448624746410481467331686759479915625781351456529740745479517776788485901628246604330535244093369176240797350287663398157453645177885485802641113204195936723218650753762648535000713909572204326388937736706779706730560895005085833363443276401659151317123080161046681681673296100241981626999528340212815298042966327227074281494571972368573086228159331679320813264762416737548722825270995405289279193550740202421541561851746326230486479119825604788438594279715377443950347244452394048401140976842428884184971593348933235932550601785178871430173409209910618080112360828352807440988198241065497884783923294333156228108340985700503612300484173300923578389555034612534031098949887593063820807659291905552417016204995865290766625536919898517181228305327816912350201863040842250950559897893889873301216897334022508180913360178130698505401855559360144203459264094993296166572840142130198313449067102353879732685515456310036083756454355909450178468933311801544713378624249277089958750196361556692306815327044152582470177095710497469939964488707953261076145240935815280239214322481424386521362155420786545092093453797677435860259849249172801317882413944411729312484500070642910021516548446200670908895598473956006407496372830845957235733898079187986932039392763190620202150844698728410274340125795069661813181899955602706453843553244154531088910106250194583055502899336130138067626122383660521348517752530508654851990934260056793237441133124875626425836684582126754679350833625781832987836908404950628805625232298050270330489897178687110114567708992159226017002055145169880112660303509257224977408974020609886477304757411189174377985594288854256864926727102097515654091697888332871615900051410570744990204920698326282882208244724774411299555100125705522659980166470304551640778466854791555969560974918327155076820273487182223231288398413182071160700977633497709280402225168992536123376223062160510565130696713149123472542957414431669884646682745062334328948211508965901170891212146053202427646167936241471613816924551418252754778549490592517348206210312384176165373298298050936705617156701703652416407281450896124607058758712319207838255555294492568943285017325536872312388547735594896616857050096053792793502724639098407389063230176609835554457256085364052775320380956786234680488663002405439571233886769171875699497731000157236235381279131085882208985265445688035070211999368990330582378851233992239569318392474091920320694511601937036694908772656009395869410136611375577186957305635250342722522382629874230003589488281496571298659248127817759169680706076550189397585460697447397567554715530316854194250770169276649169688158837154826328473784620614840610344922301274145729445160240344782737987677542366133886324393954459683506618117369707457593887613476330471087137572147607806934416230283931460233939661651808503959367086757011219026074336560149211352912782231809872135757348359928807254058157761019557015295483049553581918405422173112984861427785162595382781161492227344826298008277117787308572731960895006585136294344357920583317702485572119623480229306770077556967319118190209217043917411708906380417312728670199208114947645135617945526527166385741291896681484824147979839314709813662204015716287576938858571642098183527276371312336429818450096930816872640788736173341671753201001019574841137613920841200763307287964733677472995381361682197323682004501304940340439924874140205006558490923950868452963472384224780306887467672764836775307167412255634165634373039103967620703005528158684594276728946923632708832748789660655762402348179919514292174922160181108561125316503073433309131426593109167149634368213949655001758599569324825957756543905897201538979680710839190840434312038740130651362804378129975100361945736149326930938327019697065960143565464990345472064846655076688959334403951384517409586035527130039427489136640851528321168133168482924467395878051554414663389117024329765313667484508442233968892513246541259718155767842689554973585499526612134174447936289749834042287793463404056010588208418862638608362774089059784777070742302011083826533633729079859719071451165558749568526971297581973121495500568001082958681492989218974621258747247437649074832505011212733509516597499940266220992296692011985772231485753106262473668243383792222041106458077470000341413059846605619599612697380763270341713520658632016959710721940774591325354008877632885667829446000953932358904642861882475675750247456675057400404362056576828592572861825767441331956429730596184102116271711741124688710552366586210373914674612453369397394716889574419370727803940571562845967610303169323310548948640324825794764487396423619767102144884610767635279968224659975279564756993218306897936325946131606397991775221647176931961661296034798307917569162365336732275655095259432168463543104056724761007339438340645344520714116329085115204174141164368227392893025917067671425533253216131546207352848520475212655922592514743593373955557786683016840510108598318538303312567432916583260716256651002261668530274991870132143297147749610511850135495006005370505752342252065786444300069382368962360707598843674900737308788499443175311927546939434963381605838729281659934106304686908799901539306970320610892245964341095777004577041480307734857342341768789237045347575324310642459676388134610196660795243562692441377939856857481612762426981297555829660693653550640613307789854125823457316341134655668514956583219858902681027659083815306228064630909422170924862210056033427453528836167807582321673813896169671632194812752855247973579728065565366051953706561444716365086462071219400112362130700666278067135887700969438738709854595272554691878526975213527335284328295173340341661193923180675428834565290421054914886614381219563198137421914708796589471463122014745607677691525024139753387583563484096077313714585916610528644305433250389064486497021602307498341029403996922443702886331354021889089944144390788400429596755671350691740098495998847452621518039479297752886473900737916255915561362988721270923993956718480009204650950733967426280175192894098030223725174049210201487006239117581634140789303556651709580783597823785616490393751452304764913881407342932165128022243666406729995262238285286746470522249947792301737696110481331812468051558735148619836196497540488870558757773342914702686619289960037101875952406122618751938009474071597346246710637662953693024786149568732023144928553328312225713966640342778582321659393899470459819640963788280065541505811224007179583671862586123876462178095154812850214157428265228294411101592091201022872011007012024189139032834478731822825253229598962002227420455804903984058606141869330146509217069917599614005554250663267150816386232226428279948872219634546641509945495190184325690814775595435081898356389881126369818754499219551318305358731241939651255055615436742225529099685849583598964318620243833061166767894975335052549653262330259539422703409631780356280982598786882446098586942120385351449417942281506209115438576011832048454991140484647314449598577214622869732372982964609652309371794922905998826483980818372943568783889119825242694953363835164233738719638386641185132504035156351464439704222567833948264658408196205171887990530850710279221851979303028395623016170977716298128479288236951938865027767114349367027920057264333776045306216306764773531254659123060026268218500528157177095120777034729804129050064432784411928665231577049268532008644237611574363959820817791092013133391296960505258051676801695155373734522296903690959823702819603232102260789494685201961277318564557815578872567386656557400727299238109519664619151353061639583564118298607304837676279880345899162560103334314363595555557879274734621165915282806317173559660991817673676697850796702740615603937530472685646227480870155246081152480676917918883198189767963194958464517478649529952950635504167887627920814980718486264679491327040326076708824726447343460691950597429911865079585296432688173398624240218982367940776106117252366694061896746746190349139247428978177333000057413594212373940863437863791955799222084619503433276319395398802134045625305765223126683515961817452549318667066592048025181563784985177393236897435774792424744550972242247451990079472005567618354017735029341451718627370919717452181185612559634212760439322920018250705309800652169097374299475649461153420812392261391658210201148413944891947618930471710693722302626224319279526196025858020729238040565189094430787258642804568188563493181774493306157368425358930079593756786622574079031867242554513557342960569526084565937174777751445168370833835519502972712827271276687128057959427116785660587678599258876227099370799330127323133348343114113349167655225607954987913626759674300824779396953896034640515499099725459366727733450035718685746091330864840868723433010050147585811921854300346205529840944281377575524432073779386411398081771034254540785160471617646708678742649084988974126504993829245360277835513782730143834748422021225259733807977504714993452170630582694046925829185833949615710104021375508985938009696686403643163169648192104198223109167518117996899596650305600491974093966825920246532945371589930446241029424755304095214159033459406672629412391367872392382561050008741768408939333928974579407825475423486882963690907662590594939454761921289334618702542492935233755978986419582988184319222985366002952057555987691395880821654898074854121779977526941747259400133637133578984065724717566018645139908180182891244232719816138210341856953865134458439200262018081101890141756757997162651184237060997583282951547949886071942729732489453243496319312920245827471550665537665812459647579436218114189472792559241498986002931249970521814773509120360897899261368191240599445843726469238166184848299437484964344730939954577087158536509344248618946344137115838869363758535954706165461365182145815655903896782477940981754606535658019565774326522882027670843687325122702380465979576688378599893568281947496263501649739884432064949248154174831812060776481835028370414868139247303916280305094222614999188176045410111541136104966253626255908893397618619037798675659431044873891501641505238165354847978605387244487364788576241722771504977064706997187112657041753873719031457828752785546369740115825472909455443108682240286589401002088308497105170313355847333152826011697926719458965576016170347879092653280131754989299959324574054009690547113913291654759705595828839917006932175087886645469250351382644276666565930452826331759502729102351460706321021126217950436407978592108509351252888619645767149281504063601543515782467996925173808578960301765672282049482658739816952032857337284364720470631137256612277327563681085656264878566622440932972279253012684734885627173111265953735066105640338708128347641450602642425416497255039003221522677165031897027355423955603102748289304229146885959403685812960560497829059946853774860938162167747914921945778615993047015558236667981530911599033772083929063524391182772498103592130092258515010706883491982567244822916676218637581781378712749345430576584126429025891478755179717075661839883736947472478871251879328713192504271416731177008837474350221101315298557369357154639012175169979032418913563365456228680916500634820781794091554908524240121812488221106774367382061101914463442003566129218375882972612632508625671018228671206750210973660580314783955200103207896478204472485782665994345444713136511321283480181391422201791211632316073155703624678824142536211308108708557921103056068849349662645642238908700220216478726931571359216487039819459576780861182627784398616800965780880614805406285586636204440162942662685133784293838357357831531805121125063093395086481729893044918597278367162174452763464717723198164186567234866567956559892477774921783530123677216095125025109278169812272126498185266242467209118817202205574974605618923634833907165870202932919032065132901702372852189108068777817492951673665442209826561734726013969657826827787368235679693706358193092720579640776213377407225339769797124711708930260518081461504929621928876852528642294358614244732179628979721867614679471517721828544278239376978886331746574722768950794316987170452270998147339623147301085710716528461035248794247432591838361830919352269147265614940295391745821081068021708651853625285906108804316894676734481411055393570593473589340794566668006835312101056345830626093069102368952205959044874657637679706616668175479439285093750641984462719508951641755307866361615314714608419616664614863200104409421283155433549340164559664157917610619147905793454519853154820518031323096789684487173826062271137888455501239709996136336880349600952137024347270782546427758698389957427086762188978478225299816176928069056615223795167975679414951087206566261438742811684901725280866978443765464919284360395817812947958518269162416058638581030245864693880027210443827272974612113553974256760902940003055553324157549905271592258733505896106832380727306240847837700499909480246767169448666644879714033755342956723372828416288666310393582233910726631457459102053971074156102367677293237016703531720894579119706553302989774181493841910480743663474362326094062873376979557724100941752372646240188011905125710624203890291616734791889405882981074915431482327134445563515305567703651713937871466687439171838362836778122699793129603150962278231038716594522209691146392618493709987305692812838980970502713450146813522425149954395493716635795804318945198438432196392095344696948959517095156686047453008309036319978736760796600680105306590539178614811265557967341076530964626051888653903853816137415526850008092695895697395269014269389871444494073188972154648278167342686487612052968532099998207490062499185209538580917083322365713396129471846676455900307379093060813148482424114864347039524481479274943774077092721167585253135760869459692984612791418250540077380655008380914756401696808215198661187684175560423227945107852124284707409699262227261538713485546265252343541949655525522467546519407303516389237543723664235106888302259860811623601750124944312692257880620739057646062887738261710762204503199550329298385418539775940633454024762232804713926031350002944008133386113135928435991661955443759670536393495709224264385278093779260307577220115443366102761746261215177609247942932580636471827693025197087867058130883180595439540989790962802155447333882579882339062585956800358480737429293412294660705968580468607988330691006298064479612136056988097776320724268551945370762684212764367899071117827555200113452323727426975418323996179146605083975802085171292457477758901991744753236076401063781254658365338997918879484443188374256038834528708020556109377607100421016107474865759346879861803929913045248698561471874357133333863735644373065079937224909598193014208841285966831682056383431636860559708749720132048678843138442963154141106206775226011525801353529212946700221422595490524833132111143600482081535718695678020604148174076400853849178223996796944705470825426059395576899011400443971162659716593361456639562911193113873432706793416864424012310942771053433590882796256636184511093231471767800318855946000456089286416876957001816262904081268172925944888878592031687561654542270782692300307882625075016499617494708947678535869326316889810516336727575564327204870523097538856422248963413920912962728289731608679595465158891787332221553955768635252802328246998233903274223968800743348626938222033107540562933067604763633503424672798939301994068247427154111590466364957021500132723776299842377301715556581003746254040288323987262411094173844122932002223902832873413546548259993665699478712552576847376727818095390688828279071628244376936780279810578051766734951844098544951125059868930864636117896857559010853903374951580364859804907192584601084086443020244541264159052820925225326861067526654468583502053972060523170874381334842906162202235881680818029970157881402486097420916515557950368236204399122874345671060774825798673501321289147655596492518818799120107827434356111194703154928258723433575292028457851135750228134661892513822925929974957202924167767196152897156864946254039595057397497384865617710533033274281857559442781753603370218310217751638332966445824185478638202315830909966149199379441173938818031671276510146649597245322852695403577186041860140069814038469187462396944247227026562199091752601856756749571215115094821205028274531783045038897110673403002185847246507707942961182494040161440180799819492282705062195341010007794094756484980056313034866507781780977728320315621805211156223463525991785422439390707613905393060488229146095593721766248882241195369843334930513449512730339645166195861343557879597110878170049889836078080785952182472634546648104946817357948137519421660209360763525790621386853991557203961197093170744748353416809415253072475999596970259556696366635375843232110609723304920688142025384538867298780136167065470483091806379779211289031137093277092544654210287728065373233778684157961414259408480179415131205364702909714328767631856653024255957477631788716149208897134588967325066604288495802153502950084800472280045716914333057134145010110176633950544073001148193119880027222819747905123615678862728894332473398217609824332109645984089948783626818932308764957387882313452550789314918184520655063952000095286697469196404450408276612480983622067713355816639242973065248805361179285470549674588126052880452311881432710095689388986460264678678998468677826652975592862234280362012575297583658231562065639374428606000159953629821088798842551955662192757387707360608532615541114073959512244015210615986189214752304430508756421791027116748770050216433705967696387029367772475162319163603003350288340077943422423808287889815335434826303434603118797463504018520935429924728759044283998652427809399124559834748609178263834133246324783217374350996019942473626954247697293355272125291194642656967896839666721360594353407207007296425910891025822916931501950788544002311667254098933943289774190591424442968908472748317494830224111563114863165308046636250635197364435193215096559557763773899743138752622877840408057110170078300319031167463913967209940280847411080244490504172649169610484583844531760573679356940620740336945980635977138389496335408426176623500488912070367544172136274593472141185318970150027485965535390149142855436423489439377946666079861396559415194129651361132961736437243503411310837671416458635158060270976125741057251573607985812635524528098625592334241995325714028699546611711292371808341610225061665048191830584489301773519612914789485847617611134385934191265555538497763945195492370259258289872988338910961779356546317330349379140247895985788112439102934006737329722083038516767774056865453444478173440259889162839017493646579081536260180124383844993040204884111208468081319805082384396065864962859745193063213590965343631270121829803089211801155818467705594552090721892771075567364299600561015989183242728034293158757106055253244593675264722001753045947615510675593735761945450883169180988067280150826994504398735967103018480307171975541646768557307058759076210748794435045551794614606063918266124799986252953501305226075457268748644555900224731622920376182032900815955231766943492781359805667440262299385036758017992229726416307647535402595166323594942091641408423324759374386091444136753406953122278124016910400042912425802821156813967130157533164383918313709725929774965568228341492062373057851346965713882905355899262169479832523517878485908114613668645497120411615578073252862222244085466353427131602150870047785554652437942565762646075292721498854636181545854613695021126388004509756387426653637214244452056348119117976473093347527180172138701243753405208226452421990414587085537537417600785709170009646928624793474370513875186920910952070696296980671125625141846076874875935264778212640174888952770217795702845167494678453667527068017809406532979694582301757552084518888248407497091693335295568552992149936053207496795586849885205990956226098536523678418379735197483416577532784808262759261290270336206512131779523756794212539159727712379973357488069282398703992017322725490793906685993352060647467216276966565273297312803118273789906883136438278432298149209502751419963415270312006359926677027979463960064735437745590333969223612346426379781834853473555145699237660550775471594268261450839029032816726142719642389583262809730425740818513307934164621318330791896958656533208267861561378482362925009267726477036451870998564605840703297236265569583875246079894383331951219307693553635262266354049092119372747977869674503184738660271894938865286840095150945265582562314137259539886952761851554473260084553377758225139777557855595176431513831803122703413186235036662683273922562372142538611104593962577212066347401245720468137944576018757903132223317327369964605164217548068968432315365990578576942664167411494979124943368273843522067666747223529041324721040757678896147343606917433203057120628546518920482511110799101786541424468724313942734358141970378994054050890079965820802471105828894386983482054413053624857940115653349967708212144449957120198399364420048149455022143860308661326907408921956808458701355083411019991495722516888903792207911807124868111397217368204815513648656038236176159997605603730486452371145537938631005546058142640652419712204766528880123580299413453082168663239411790805565104503198751550088655398532061192619304811159555743976891960514963555547548732535336110152207039858782306317931334140292626198462004338201456151481324248755088184123121656482024550021000460110610870619053804495606836436862281745508963976278793014035547325504521295645232314949658028202427789882201724255876274251518110265062431319207305328952699610306340227850675893785771502748558677944361390462903428534084602634367277290617985788425666118161336463137393290809879300243012077688520810779276553673470033764979772484916220153819537089981067152773728022565725430737313076410780496721210024240760373721049058435883254544581291621706576733786647000025575730270928390983225957424215404559802660721150187523194459972308926650972955014607967091577473258337454758355970801754404264075924940007716528410994691825175792148472338358647721974060437793543516955160137354124027937758619948892936442048982163773861961579726848581462224160540322055958626032062152942473778493497333549679846975249712424871061815562072906801316467488864198984353881095678758598971740537217370912509217346640079079723890141585650579130219666826399570478022456828188572000155929455914030008458104689932919141462495970380648095836869880126142166893770484342788508232277964197656681412551698133379812645289358343294377304987915730663736653333096313545329812398647770089100088037992064664163275132210968597449506133929449141309123422008792153944618905576110003346898287117134835504947127070966500319546345981741119303833165162667424146468808784117610615541457815371687781999994335748182055888834859327591058827959483709362940980913901665213059870420757021538001646296416646935013660788277396817840381034835046945533816931090647699441391322851292033827466871483338368047612126372568732572889060439589413808494868318324621905882763380066803198151147531234982350151918094922010463347039312180171166443211047141320666713557485081880839162585611181128748914153088139936007371321763778119964400408097755676689380183871115463721171376037284973454361836484770554479373122002575920047322542107206313014078889903017722651759616439925972269741319772580932520540731525493556119319620251546687670354012377656420313936067340770816970134796900448136903220000390801834056701196514417966421821044483398309258003214108496755241729935048125027700452504061746319302799467027684899668351204266897184922361481360540046293478338008249526289136707944728457786884501849764854863401494756795328897485666900792548833506335098509406662674787660948372199059319959966571969087002866762552192141674809443037019973010813270587773646614248372864503910661451161718785563927528340621945869275933261113404551049220333081924097594877445967150853923350609336092840561825194344439202040043235440275060915049741788849134569487446220566121116937271198021292390316781390255785457164730867739678578125233019327826291694107593967310975524685505783461890564450012116217144593817924961198176071570380765438154689073352132036341963184646242101799567002080995863530562091206517379410638803146656074512453057905938174692871403257082796325329442291383198103096650660882160336587541414284680327379878262858427322097727853990126484960726031782415654289184283949261524707933153972521624278652355275796770166112368656485574843107260317817681330724671383968241833461734682969523314507666609534077806029926520746197999437938997419037467674662405569055753559322102599166916203785344346590312631655943564290608388396814338939092463288667129947213206538849313213994019858303493906552928517818967679593615829845947288644968691427474630084188055762396023907978783981568002299851411076909147731855083821144145812470133951924952708443618689938972651403378477969567476843684007733265433570286138251572708827713229107125115885065567226613189111049918533638391720233720326077155401187077143816656213093078085599334164540831083487102441163333777053422049676264486096767908321465333047935637513661678893618853881990688658512778148590748082425581663006569262173000272772212749600571495573638992093800273236892298474869761529071664899231414501791337157861838788151416889869566108273203008440079196263365154903184065884460933548670314423649876763873846018948268174635847529181226107484457315030631339197876192023621805142378346277789511785194745219651126917089947741601294800649125987156835624882918514565225616362391588681812245069072986797503326109155023541823284843019266345810165194331069581766353699895235811763955302904299147351270918625546642047961718212354790169186232052037753673908035270905754620325772723195739567561357163023004726936426064896500829961168888183892081564703494462559094558086103217792177566287143421911659761654831743769585337794197870744329166212684036519844967483327466085802993449266139183690311992589847954498191660161640583347190946073712398765009197862794009661431236009875756738854062832099427810139635408963902225192502513981587119844145271993139980390504441394928878876669202690797681469553841938085306180289257840321229322894175156624706834151007197358688819477849243705242369303439723487225978675279945038686614512240493275098869902564602937218453164187885179621461459776572378702690516297875300831136074397116292719856588434255411595447991617013373900284680537899479331657709634049563627725974537173453837764301275248672472864403834098803026741316635232735119876121119635107280455036626496621795182964987003696087382749899991526773888435245452743598710273142208924910754874445537535918508038712104490615671201055044030831341494510066913695306318567287027968707979377532847242966671992203186678539215604971027119031519922586205547367701836891377199790830525466565989781759479658573271861750263118066489603175631485179570764811948412533192411259871153856063214235164583246013896969979289329782444305319042687990814724677643964174436287387704343381347520084442713226334312435862102641884515301636190283294277119252930732944621346537399236270925832399187065718136237177021594668290264294021501112426225378814675089501594874222651764831271772713132686698923856727951339115557041493869030976300006481740371722712883769235959006006082502977373558851076663526084023459842129180051716075213652344495601299287012084911640203284899239913089826885073898881604221960414082147923334214623056089796670417226202843921636035511222061705344743400220235457977310961445269593058003720663592241225773070911195837244632193829668677524432623774036684405162339004128715001436592503141795823362210079747499034641189221233837609582877041476661283743957548861077954083819449618065615829724548513269894163681435117108175158361846160746845302425306933715897567288522946348659592800727446442915777958104728799627538748726606814931696157206289925152883146791540098248951263111134833869495926210273736044155244462538457276554587330469224541283650977582601082666389257144506478085748737593437216240845582443161986125557191213734327766129590283286968050273962418133162326585340622073476411590148387913471206778630512276353661208034576653809195813297942342863958937365741315183637447539339386465021122764593360499331241110141212378286475192294906579072873696679797285306251906135171874872900739694770933938493775941663819219517423700074044985817621986887941470278237979229949648403303142703690081396890974212027531857196995331916188516133608208924921348108838703266355329709337929667194672055536299723416234768971254323667006167592883394813837573443540107089762485757093183522850460311329799332016425303946239903296967272372291171812820391291239408333922325098323418046255042791396661351817261548749906004214514361363301261081607096935294347678242590659917489453434331593705849494421898875844463807509416059852785619655877258890230241366199453103410249335154346219653496986711198407147088726327910990002062533629459693633918031696104326399177102549576953444394993119117845179376951668520983505625243700872434264084138183523214848606651242125482016764304832827217310526198029247820739644164215313575444349585694030749856056689026027443115445031215449219475294695420858808732861289857010570985868934137575930314741988385130174650958977522989192420011100419559984758459384410975891400021311104793922010511588740250407213554677978938438931546763858825743616027089962107358254928162440247618750164682185103935400565536498769401597719258967544251399175010743349016949743610785362767740296032119035247722431101801467123030796957304750992286594518975905171682246209721564261295705384785537146569803724003802031418468752189667067619008144842544971607198523394680757018876196940897703593808074808495518714413045121473908685056044540488032483562581332395374421179607450119268624014421084128595481853620781926817160657738818806027350408563665505318076491037528463029070984428962391479485245109486679020739426000061501238169056263587171833148113577218591511052049597600575451202657339533822600258794971077996824122304455468987461838322883502528286713513393453214980920939773159864839775175789355971144863208244075249993929879287789780208860645888982765068267023597442325856064911866649757504708520802723651988158104393901935734335633328916706350983724464457012080609819472033913950778657936637016216728718858601346394852374344628805057399619664458825938428265737364600613789904268301563202070106418869529096989428709459458506942315642590237994004567559655192704053710467472703601190021963397128584802428900845192553762132314548102145270917246085517586128615191025361888326144127701439792613127648087788595456959040308287865463784472351381283312195403897181978355565477876984083820985889655179831588875626650973401047619488732053735231880370597527983463086629559957456270581857814656943133062078939505205568210272450948190816620567854836804905562631681304298730555954034596702884139670424306617859217343823618009822563025561754319098279548345453576751810726718402950668607435354119471770922211423287223006134536521980624955974160045109773010005992708639708574818655296071006492531757806834103296458737998225063200752028311228875042858654088698429306525784335395991513028023266247429101394045299345979114951613657407209759526633990434433628463605806782632241874144238019539526214811858175387065361564182570345672137845873523044426726513313549322278505693031231594896315151438320965590852684098872501700486731397578832832379702766949904498006030053886202132388938872807970360526880400442890813530037377437909937254307183035633096766253745084044670327184930645649774218925008483708661721048521619646164651153998064185331263647914864270083664929898333171971554994162384777631731069787712955600134496381552391640111882926049899801666410843351554484028535514976721123451943229320878912219407614970496009654831857524348842118395440653882593506774247759012003310541319762713404294515817150129367781970548037916145016824684464213478130683452210302969395143692306853682752615486050364987845410702102819976084832387981668124513909041695244167452842496904036417628598361017431071729763506776368957593916475901391945756477190407291438036423609453107906159431624167514541183421079850227410968840320513334753405237060609608705794925807426665216754538377886488796457815606632036825235800505729444640433785508977569622997755340926025287543180981333201662543697777522830402645618440309599778666779045431663337005782970667754423830966703723874019413496919045591826770009515772772052482573693606000387098905488051685203541266377419334799193980769009727893878202472043907551523966109517143075138644519723001188027583331833762027364654302222524508611924402501316596163979179439980570595062015294051789692965612734206144146136113390983246828226460139914408855633000516829220458971915195932565252083303109056532568750932603390017790367057765128609499446955093674446464692316770645495254325107155175342105405050416168012745856626393861065710201307016946108162497178078825164627904691240130736763548495002263575290932593543876155858038619959047076919604984159143397738707863698126853101611267906646979252014314004169860687688692825840266056084410703276728177697325751939857226357181155130485703542009208243249253539178061446119427796035544691366838150831386762343863509733589811638179813945907472306800079100828790262024918159962930343227737483162442327580074882087286461425259237831090131466422302059535788655516934580431483466438316850895812192494934098243740697726078457908383257270868245007349739784263926814858771654897392946053055520442101457253146686816030406524321453651121420802989022934063179191678263899360122881264445595264783823759450419489873827641567286892738471963777609373018173901627888739305006598141408804159032264456254193440509934767993642754216342113418588977047210505724659158576063088162536935567420948319765388943687568603850007074494892154917416708887522338141593434032157744135718569014702583576960282649508181256053412854331899046014460007645564298025707930304227520102433416742161218333539762290596678687316019818000467895373731954324011177461328271432610285128652266967212560466727459941320005521392287962252225882038969404066057105466017271593907539053513576271344959179149002174635513500181195354553878949542863909760731664489317658952421647176021476242456691102246622284766367191756318951995837437037797033174325507874023876414966534491512856522411465086100182445045019855077919239010146943056583713037442377943645275209430224939018003182698769489137375862969927165758195269706493868945215678454497488383397757054513081133830019898852416566947089376974995433572881650148010960644840479760878454911322628078163017094425976490911231857915044367845820812914103193656035351253509216236675487974348106889965731408646266332508257748965019345964571266428388674136759506667047912720456837901606986898905945930437595169096694144614926547525950767506077037972945878487800521640427165591440845956740944610369829144721447552475188995702057343440248382046317798076849441230358316049327306301415729469086247976367535445136861310386957475914987580500009142722918244615503423686069858995115740226506667110905985661982318336333358678762564336391148193165662669904902741608223891960884040724529466200741963189050455959614221220704013820718843254168030815844521736364856512671024022118464157390439038855576351710996571371563854085426856239071021224462542785271661739067681079086368580932788524562420088327679217480508887001220705051356776191541049626577790853007368849006731502617644920135601962794799255558768906795321037556692346172850766174485005357405232549141984383474109768607405881041361674325737475076790848740027146201251195228045276449584134784157267290951515957598199178404197866967154165028961427335067041407636966662475878884923468993274113365609587873325332587400559325803236650681716525136449115874764964735319276093693523321382019396677010726497569796338171584804566428098930971147460670919672866794182650145062981896171001152730420628272133257342392010651819679601127204638063213063063131020123491087776993228289545166980014219310979071056929368490217234310146993306535022533177896193765471131623892399308283721273983022903031558911002613708892114167402655128522899688706059106736714085365823635269927546389746091580537784210161330762355373947023491414754990224483408741058949390075405847415956499773265948509103701029866053667554658428694699893075229086417361373016718905341356080449739455064652150517869539211850469503451233668201156743565169053890618350019780575498630861627041417329498967699475537885747493925985239476502923874287092624224966622720775276539318272838637434036180467033736262557047751700763450485593415179921877708937595793137655757308712479549429620480625946578916892171644844948206713575393035162298252421083984056327980020349123422140777027261859310393127029912514148079432426357133897253312236503451060349061515533569558436040604893500261692612046229837337474102197821088967827213839703183285166748183798167923661591159536926087668069663523628853145757850108204720093046457242753987465619020916189836783312410217718473242953331177497326900931618099932979999397630290102658735206225724928610988220858135949075085102700711241847295052020749311645052442346789512806457691131697059249805944769605329918571363049039793940680381416577712453180602957050724384115309911719056386217740925801673282852476364891276681791246401871350699316812786635221183093878060845192510459572465457144523551924079632261379667574337653550189861316511193506785908139110976450410565998098580470674340143813431103200507584679757744566172312084525298010795917365647110605796308016641085593610690914551935253973628847905153197063218731796451622271158186839938548794464648013255173144390469076799127601053282712524964920877495574268724040425398081066604280131187799194766254133829202564258977834350235507343415940285207747446025089290517862325963144330479041168101259965503581240078155924017560020395113617941731663771479501501463908080585927408846192972485134613504460822034673027177089098408001493915934134891165037927889688561493575250249100184818134103291518892471415524145506186762525944749040945670212961988084633096080614351083657792192807888610105250446863144836036312652755732066872646727811467175729093549523245558905220531469821412486411273302681493772469356352788203878886320278915690527931013952997463320978697200262655123585325750793390590680016267623553676052479374124089532086237911044903322508916822463113310041917098024399089745405784364017110573080153959730725737839578108557861164151964121767585366238797777781574337142101764777405339336766120624017970315600074158345026222775272990636734762667069645501367184276664785392308570222122393729376177634687082656509616250317392911644661088874451347255999607765027222138712333056902892226968254553616908338720700065373490287854833818024853022511560483226183333328057236033569980401080295539260595707339057866565139527275556663907947023388387826218978615829983396234866498268083679722413879726122746638379111922729856361017640749718545619508503607782570923623762597912297530141164076589985073393913697066868346292260358041757243503241481357908058049350189253589129502355402310660373359116196503292003130168008878388019228434236196042773363716323329724917227822792884804711544542974110116631351721207205087358747828840888069160920557242996281546318918418671085338063622788744389838933830014594063463309312200310640295244412912558442818817574814081588034773175305048260760956583007881171404497325714461797878780469083347037582108107288002054553206547742568095894507059321139448338308913004509297954134048193802157541156332657493105289269587979155651378933490242093175868457261985895938695975058592584264701215958989650799072649250748808623805797213549154143001580719738934045446165329319251961324104657716810481798450807907625138232951474452122105389145713374953425222543543206444988116280932357784695024455256392396729729948709330272020900049050523308378495938629895013075372320781556815445221585059717053284998613952202802912093009560594322512109348653625976075030639273431429390016088798412152823469222603012453652739141527933405272062279913387187212198405591669172730385086600531338330318858171992477387939763685654532538091702791362312473189845223101367804987204460665685887728938637302052949993921892268204349083847553588081531474028827535752047174750244896725275323226716399664022473325120970350836262008165543925737599649787346849798184254605986966446284810828805511333267874468998720301036313675617064557442261138511057829273525609195420251474405116411952974711484997074221493391052799579093705816715227698142414584310317024114957064586963728424972050007029347905793470509767986647724695699346827992516618683983127672833358649594686704117560408411991671636987564958524348611644725176749393804017389987502687246934022185906409006972945091107712721047685637366809262918709057629257732740038500633591090914713722335006913484369775412170619007449559449941142484252036766189479814508889993422325769511430078518622187758528164952989928872951156501015794171365342570741895284725967414420038413499199972466574013636116430377448062321365611514477610085172398050216938607636431820178307582187737744357870353959058830976386602883399554316706046458460238341211019413919038362870969690356355584608140576951269163782459910971585643508066042901962393674370429077143096366860069068523346234441067275726409113340035300104286824354258659862952886603748682350101894438142808686349327741549266952763365362258424482330064928786618730348324514516825130322057447992874047934245226910577339839122237310679819107282469021798398828909591404835644176270268311766651877292350002293084223655509960377651587249213201042946947202598648197529760620485200286435318888591966266871972890607454267131626790837027646051576168871615727746772839573739547598579052442874960253176396385728486606434765460908679519443765657682770873198417539298685201093794499091081633533601261556015588988632024877425789703319651217463453279689310729207290344164031081323771044328173754591966545619339667525034796007624498918179291340263742550492382510433341822737638965494473518808567304327388731522688397480502916726263415898973857441293899310938488264239735081152552663054232904357482937264651512686914305345012254829456238453627995970054418469589570548336278211649435154619185225751530451168557325735425315039309536577239050582503955487307119870442142212881357371319823262929669694105995149477706788460875834113245955292026840186144689011774819035314085379604925464040703647006209403765938175224470232792331177232472594755018637577390361729972238458549561670231008274197810462884251739518398773868526969948250880234345905272266219060185830613537810934015455651857764942715017219833065159099716209290654336014684639033647611218566232563961022650726769458962147451973221872058142714562695247341564503123836048393796935371959970359206802229312684536711118096358380574105265080034874200699383217337399986064765887512618303006842119975805072516287973277066102305014165932263985433528066454155020449075603056632678016610754938067923429526130075300416657540892349797624925315971848856450625927560868698554282786924446508991317346001161588449139591039314454368606412385279038321991771528131722141124356958858845196572473264707349062653679663897492407481562846274668608909259255113149847796484854244592003600017889008550142207991278624087338313675530194333695871496671813168931950383429018729186669638470891805202612416778095352661119961678517224606560840059802112858224389530148475611926176040580289853738814634933703033823502198871023613197323614649156796402056183169050466136294789710098236257259303137264268638218380639509099160442503616020234980602978266962926046795650033284679462673672004547358513021458684813577483379108282576844005918444881063522698116010947664823710263470646851999505377668548431217655465991629620995709841982320714012486050384617644756277869272182756071849193791279898238632891494484214983073020309112283216568269045811189059782501336412817242319164690937624036612799068899790106436914725549755099934232447912666153598204712088517781232901613164076523692004919480581706862922289909329964267078158219744612745316329204506476329502781053763022118087953167666287316523503059447114914480195150707564146860140069494754575695435645847064561380746189709895158925082015388506053824084385149672854494712594221353128155454316424102755480719615499221396119670572986883997605682158920348814355513732477887364739610394356101296969914531437009347022512798335695089831659125879697939508022145679200349498451581410932458574497116561757557226699382311491889390511650998495757361635827743580382357034037908269787944394731664941157901369478608232239234710246254544201786182295875375595040144642190776167503766508799318341563654524932908148443750376802222479246984779564030626665450880179568224074615310978187803003995050433689068162081750506601135846897606279514243153783400259112442997420827376783983519055522670496490795476557202265099910524094215847169253254331876739352698573049169199106765713669345702325307888588263491484703854774393683929684158874721960623670109064458133672796886378578144216802727488839766424642869922255577159191895753484066562629359097740315032349916926495916829930624835575524304609656913104271799764915790865036102457412264633654960095555795862113810106412277283389449693321689601915135763680962219830351106743288216492719701083105243110938175814206559354521821824440394475311259340799931470210597862220333587005984162133930139803656916440113675316808248441502858627148651638089222515231761893280935715464653337473557595992321745295638834789754878649290182322678887094295172128590477576762138891037701921772602624150236390904805769645384066185953835853634667431637658810341493874756320526113256423574629279916678712416319722175376974041821155207095100506656307794382073395138550006232378693499622879300963158441220045187115973729320577528955756058550768176226443432205929403106686104090160004189476716302995206245866624981288863968918802901508819966460241596186104396967735943486797525331606079624842557774480333875903444521118927160959886192659244426717697293346809784184649928596427774681946547374411671435115519126616931431156570302688977114250661548223704653807507544179775333704072017590738992094659725286543700177410891472558945005040763566363787550441342679809112464210460206215140298540703333044217449054442917491249043680076550385017692785343071033630995648774984809511640105564507487198922962361735726211071803984350192350086584310468664367837285722425793486030577045207754195689271223854945955999121290465222379282231112045808825148537942499996829553357782932658620357166213522060427308405298237456628787710725526781577405709121542124837402513938440719064954040041203634904834474233840649677260413755277045007397471143654139139189251247476922362913264550372982040601426484302946233019739817458252844354791556162641033063744779663381973763288728214345676929084651605125794221360720553989513925734683771902321445475397581256714976833648868108136160589017924638029358098451330700773575754569356251218934085811602302444031717879241908526123191690453237424165380842631148892379469527787839100823597131844854131277595857417308138934765608044623363892925074796753400671120040838713427421054287601087867661666558283760969233840118811444203691604995755151102629727635200811169769053312308676875000312127156565903223183021522651598229595309909662916567098908840160958432493596261546146277499697935712018221634591565967681769369191386686649344494226754219242665811702293288123276226914170270310562594010412188459066509905580797973549450935127961614647596037951038179672393497198392444745145864597026361286900639461194208676533026744767884531288197410138676239406588090424846635230480816289659018863433327995741999802735562541164167422718411972340435993465349561779895975333862681843869766304779901213345507153164620430713354713884411874588054523793470660754598966356101753834367106868957121536730321662547752065762761043685297833293796615315761494835769916681814950903903852839922558654717717739782137703953720800869232457750424678614764517726566256438344613382430936505528212685209268282415969408448882817008448284753161710802577353451225006521276974535423598080410531886330857905934359920255457110949397070184067768076922794180310567817976709460532312919971517764655527406065141300154854864356826031286991391108054232196204619953035892379535103070861872158783408601401017487431564689121942292111690685222372390139047820951595761820995728108240436405171678197424541884535647045821951383858333397075314892371647149201726483405542245916486155685610666895687567905579548745230740831480781492005848017242779295365672919568305202755213273401116016869206183238868142500519054822326180790331495627096969554223798147117184229469105989895873587794088571370012395939824223984881660688950212240334498070274693838114408335457603516833241224199805178660783048179083197607532580059487192702923234163530149820097677534796692444943929514937850831433830351300645585126941813474006200677323909804573487434882971235750172535944676269820806474419962061314310500746804642270120683665252301928676930527861428245189752341031051129262547753419612732579608980614594761635048938313245687783602057358677582410143945492312686874433864688736615321663290120348461171340653731426829372126459488864109808842933513551180920586556893850533896226410939681507149778507235912924195910812715219646630711932445571733309187431330911042158617303790243434039467446904143982671494876780262311831884851268503763338978540163862166540364870727513960304258034785905961935443060168641156381835525289267225930251230478290105676649475840610463074884354752364367283746568847883566345150568027110024435595360988371668496476428926873932206480417324753072571113656187903186365517311741006246378345005243867630248379601993201197641692899915205785846425655037022565019828488360169375278282815576882490051181009119820387770982444613316020168900252339774649146461417913116412804783455096558135376273584864203806398029624323534867108159477306792047262922466477625297104172607366761106305611747254172135244580683476390623942147339895842063582580854546165461203311300797648251685403594046218892069556322496559257412538372316948515777636869633601265387925719230457507617708731486641185038480649642730423001757191915264128981731903093750533709301104732273261515417516885275960870207434711479152719507639705868469280292070299267039380979833240862196079632803678293516228670446975223938743834105076483174193126477700681903196757796831790030815251672431197914317550142145708502397097443262812557099314621237339212916162089871565987532364520931509388571442458279273470844710111278365022922810029255531936935466637706948927756157176347770129659566163222911765011717814947723976177509557008920262568806217916755014548830064325029643267449853055834367281743180979375410569553118035168135491016848063567667005006308808074430785529947653581046476422304461135552419708909377630241751591793338588212290215423139216773560790683614379884977699099897451078357760843861599138212231845140193760926298315086863097005691166484123095132175801123011566568746774093257934236357325624528599713635985668954423860136650427959813389057214052438199268315155054067032135303533017440487645007582344120672402292867253401424942982282123405502465553258760488765731558322325772807337520376342991755628291824688918846987473713004105199116052295194643886359089233465629572534013571865975379277034914065138265526756819600023351096283015252968964228160750189309196387018456944587313409547494290928469848837086715383632326470856848625066897045303081004422585070645097046839816270598195176291628843664922405181624631871529203140884309658788937647800691528392644215487860698358501513739897543917470093798534590300768719001117428924638931382226406113011510077469576974261931845092487062816939130844839364709455045479444144177766524528431118859456397540438843863800309989253063921980712606556749903787752482109429990596496511733321831954640080935851078401245524564195861283956353827246658782190797505722425568841755119826311556470873479937725500003945004329984819730165459361735709671340154983257860945621709023296487983235727881022938273971068947007075872365746495656350587241846717265962979751823216261513186535577240714569900119739236402236440085258149402214518793332353206321735566913925066038555220202535276854705013546226316509237566481999586622874789890112000604093607093770842984246408172380527784059568619689786525884524748555468745604554243688656588771335838655244620350130008048069368462138496808171361597895844704294494233160548623933684636793922430815773083600262683959114390602725331927093988919663546352634597596237453456256505783204429819923223916018715346119860326049985188507660424441412445683026672339972526679879582220599855494705729217648688199477872315760026967409508618766163974597455489130600607171816927837042874275227095534360723073111820840699629290452176238853149530355471432445983139329155402246734597571722723065614669377662026711801860086537965387540611964988752175781491995225085753819575553591316707488724372348685279110233197639937807224332295230594785566904799680117625814263398834649823750733044741800332780070456088923437996965871009793987227304422711062507070779779075013320947908185813135320572141493940648160877767675485280792773615661416772978021929469478680315048545236337425917590882625882249911248463637560408518389436866577083278229198138428793608516522992218560586105006425412854155971429397509409161470055640196712836056907723631629951265848416660661408945263338915226412132274662223368327822303181809030762528889195016136551447514714262930138817807192809624904549679003203371887174724326588589451040605166338465407638004583856741741075383018359958650875822106002725397908230048021922173597750657602178848881410193484033115682776031142980485126579355281453546014816235915796088084362168982036880665494825469801463848094691770228810091357253102998973707354277542243744635550434157745591181041919728611254940820711248384134420911946278186664008886728384928611086243684650985753601151243247288920589388591405419063836014748164061545818208858955171650369348138176959269150665868934574439334266200785643422232229196296071089982288857282041508271110991117709494972485215793265564034213846832826512297054159844795378167211446159647473430122890556966811802795810982449663038631234175054045443001372914324843176507456643737576950101156599618294517726848430547865852077512408048330554852881650702172421943316787125501215391951383580907469139083152313664612830453464644141356190205104955399450361356592107405316851839257380556857214797446971205797895642020928913979823629908899842602065135193658450235766699108070227087480175335845867294876496282402832974824995358401178774825585588475551262979189196075359449400685199031473925173491585813355014616116550408826214019769091514044276908129317873128632078222623551371602686000402537045495705105831375429247137925817397405796929263651818946327077439372352672672394242198966125968983011713221483646102362003840116718175071181745840982079177983455157602128305191722412062599061065092329282259829135912491306860108163013370725415557364651663633042228264274515010053414099195549627196087338277072587585949877975090191421906129493595616901772130202502951626711312166014213156983397275383890608334041318473815338968156151292903795803594722820536359300473467360894805978385952282999033150224289098244942439557560906561825909571296172247016297738270449456784307506370108866183105905500712350337808560120374294696570475578798548907700580884853189770475489500938144707651463214740931788401659447138517468142616981938209250281198307761981882479723092968256095505269965399837561770583824708662897722390098899594389886293170051061162586581149674155598462156027472352843391574156194662600045092985388299457545299615258018921477782221184531628738447486867011578504775556679253678164980106064372753419809781520871662743354687089670533290805077332416074527647796327176756494836084440487588641589052301037865601914817474409656199273583897998461770997632603728880289645666272755721849685164928364269589463669718302681016169183016418078236138738496577353192598545196860354712097135636780342148784559940617378796003999337181987588348521986473733775277791928679870221707628839267905602753870566928708927951390920344901793256646567583555347558225148187778046534817652799623408720191656721238857393490522728671961360621517289261586005780079265441331859304836032023824570612638413596342736479027875515350354321346615175290913952910548870702359631986258120476957958937576278223876753278549034230487071403764151854434368487101163004993013094412970971824860736962866540100048343481876035682420062288250337720218287145457084712327201965992853712025596304641961852523611154692974358811511629607975976709238065687445810216420993093903915735178455100911034167797503845134870822447424753763716456589884732468005722072081847685637387691889988565334541132702846449306336181398968951787683625464619045223762153230018079128057288506876580997312377774024653618017896039926547360708446992191455209184075436860661104605831547509913575635192976247204809819162492385592846187824198615983567152580648655017700842861517312828815324879044222810720306040157854226110002712407592477498662462879151574931005430242945770369875987668416281848544562166832007536365062222399327790518100410138418551282181824934043139901766655107361532341839556980274318816057010791942071768043868256631012861869495471240801563639063850450586598129206594631932021167678618348019867761766255260564793675933881037750789398182005008994882426981956440709282576836138140545998829483338374211893384589467129548376274300402664995114735568513216726982859565483491613763610906781364418044537020676160067140662299484081828940889603608410545736234733133084063947572796887548587839288362804815282829654380041170596014348050672861489789393440804857283599787822523486892620053489333375116731002451440122997387290153507149314123771956479860819105793192046693314316941996214484998783274105990556858484226488386663654771857379650403854251225543426207186139145702839725448768489237973600513662261399861506728342521166521756485862619960658611432218003855049867725839575028773214386834000628186250781099369768997451669756754382556258664950010713730734257658643506519416014558614210348496324622132113448909691306524021709477089009276560676377524415682238831479708797889792990660827856157920071595563680144409212936850156572711592350852598616474064327824422627102836038946043836667211481209811079425378887773087320285635316469953098743530629089577201789029960629065714958801742718966669573411667627650524464961859016118465185865602390416631466665883929104299598097438188807587841490980966959358683949538201275010964149266164299377648957670602720987355991337397574616291083761699817690386516274086672883101044909061987908511435483484233781327541122975453249902280217573749081397708815495780186824861674535245834534599974854822371240028751524962213361747391256758837080153077385657836871931071806901800898205999723965039309207177620594088261080026647659394945668033943207166868508748372840983098557465033689221092540707534925139287949909452956502776174730925532960925942178745811557595589751967500409952787063616108376078845887331783549818104410846047417063678594639441952395712516316643136033444204872488847457367692626381237573405654444325070792541920250185841832425267051990122027428962155080470805730173510177829939736808268564477974477482942866835863137796008951437645881100529059826534870908529467826216897839940152057921702176256880622391475065591428134158830618241407811223900173295456528470568696896407083445674785790230784312657915470889828575123991603929196862095333850134315135314719430787085923416695175866792297744302649386232441803820261980849369897223299017660361723711910506244672592691394592561135255029420007738202791894040168490333332110248231424150847438136632088962897809872042715608137659739471677412755421072593870156483782799511367844953165206922211347312172320527440755261205292086377242409203963958853212353040001227583667582280521778048779315387383993881131267839533968806812131216575168141515389130655584573612422588802165014668344503584055164960771536906472548413910077450826217170870129195451856560115198481226113952508655112470511769327519902353839052317143425413811529411784659350120780464545973274122578223863681254303497560107354471999751042453621313340284476604126556640794900639020283207613118135589097703071164165750401701228415322931430865381550338260015990027788837040441798528562563615595822005186475224202252944090101468388351581535897074391737174238399943902587631180409006628483281307368024285745790486354763493638376952726752868456622532376677708126507335835981265848946629148803205295832670734288440945088647967663216210115566302622359607704609579392449137983797453935119497095840171628239288692523686108630118279786934980709780352510875333936885588623227972691065376192678556824864998558150331056923252258399194391969703953234068159151532949850044017554239914050332657503338419701904064034172572075404968331249160777206219480296711071684741104370659189220139744369843022494208578528144478075348368873012041745671640978588024085884983887238219487620505017235496118122810615487492322627014137701536497918655004432377420035716790133461683818272103831194679626521312743159513558544813111560741918029583729545962683804651898198335073158777379427589233355851010950274726057469217265400200211266276183711339071238983442367064446986796050731954133536949765978242521984110603991806389150923164173899340576130480487956725397670923289321803418923762185757031894836093471026546994688457163008074301263269984078595162413398742980478724842939368823552505595418261965963023340266797552632653274418627137537857898000453284485119201486906796425584636675534358181853313331104480372820790638572447269857760063499382667613931713320039693654520724359667803438707680168152447121225240172140132713803527846572716017334240794415801051536864475598642236537508683846618633063365093344186201500287093895313508820040648672437359554896695631045987337270348590460112598006071998228541596865915176099901884622012401736522772484576402794436047187901002682453621060343969490020635731230975600721340203946876146451175127016197209795095331471813342548524269007804935497516521410227473988035704040144537973254259800239840691937435169613184966914171703873048178605334572172026245212891618405572028096391691845980044889557858114606977549998937652472013715048136418904267870202012169233721468271198752048455770858166518240832870531499660270114299712063071955218112178186797684496769783547102396414344531394622723129775994365259913859823527654981067239389840216350194546730674296775042854955387502378485624513565248301700918359397538577244733505882451772447313587762014637813383262670189808702186839305593963347852546557553665100101991244749436788801379688652772706662299766010955836956071803518438391663562875293105643947256903545800337888498584482846679721470208098340841495075533744997299371902275734359122309833216896479847766291123324080918919106786697957475265823068556211989901996120263879662153036982509089902343207099566180339159477578796211312273373256842906506465557738446365119292149791791163897414013494045145757312978729060750020114221172072664603704733219042845001509969012249346796150842741642412890103289290238360654049824096970666028894650116542003687386089246370524314155395298350490285840946821429677424209247432929205029164530260333479932920346180635250798563061193088295601857432651065518402325872922343187134132327016223537491017955687359892045021599939107441354684580155832327141358668050172184520707674797045536220599869143698870004486792835042342765162674897209836741028971674167383158902971510722349639710699128229129215455425016499828894111756490581958906864367050098364467207706897229004895234195610923369418628242916614226873128471916956866995396661782236979946640906227836772295891547341274775658074349882910640544889533278848186454290072011430991071532720459842779189890893990742013112195398796551154350097719241971588688867798883872924268836073240831647071612602423735093644718359290445609978387394596336116929826541289514911972287188888061595069329515270180027755755701498206709241854729368313602221792578223430382931652425651508461716875574094241379076409832177126749998060964848702208317214538391059520927919484507937214652846387425662188927278694544277721552027509875722157598183394161285406587770804307293871692149545036692105220973543712532648033882504181156246359983502555583809148601152019848578602954134280070665615067012135859589313822745132064887565263087728217526450330380995596000079349414152407664674017447015126924251917369336290945535570693598855744317529284290669524096876631849976814105836857200737852510427638705091691265192433078919814646640627922883035318981189089096165575083740850958721981620144566848398056651979944243121844868349398470019283799899269919837816566605598874931374094873275790874657993247276492131622661500347941870876013752744959830735507616568040661743325756843029191690569773775137759936217673867472384300100114576135462363866099128464246518448275667007751559654621766211401795212475223943780126418580258323625965767429960415665968696790252404211051895030337434271766832230701377345920815265644286803145655492240532497488672359706358202942477644269394542849500657329826416364805893449387595166017491803397458601828371271318152464311056482008079414174022988049041184476981497463540958605949563640870173457953815295502998453703138672315453891786739660002587497399279060366206930025197012969959806723159095101008021692514556594153311359838609074196978004887991116131920013436144330380763969782945923045069878527538342237733568188403731601583186908300784505235308027164499005221660236410350155371403300683572089397654149054810265638412465653842212822027346763797512925203726079068923197649694280277421525856473616503044188764465211735509758020375966406712943450627722861003790832786522794138282356342110314538130792262230228296689897286281015852734872502206580759339234801855226974033648873698802582779624799230925931425088784268051627643763792507705269674339667338833290843665391488828455164507598935191125066842351208901497989375930013630167703477348555924981456677434740206442905650156997161442253589667841597045157382680587831870372135074172407935127396015950819960976595575900400493824100056096133004451422131265282367444642643469769918868422951075595435385617840470613522375928219281287692171228598545639272178412972741621875711333690024972657091869824662896308043541299339906633324687837383238075997833146580196610208140736278056483118368169506081034960360384432502127667816136155607014340574591988278143280885330101134276422989757198953684179857852619226903267550477407303469528128375259505308328950840166006007975121004400653542948542664946270109421146393084290069217207710547661594931027814857058644139193276254849206676348070081205703502082803497073026240350629410228074218184463700670970984663091760761364280320842703144552481701677299749247757626932665666815049551098163749375776349740213227388863850977079848051619957131780229268326211887809778657800355610859208577642104485077430440783822671303008792262586299140054802255151993573832058782944447894077271589193676394153764106637454821749185244837892570474025388160123413055627205062145844872845529895510501574036782816153708109606461233591786719796700560718297019550045219812326147167114244694423104791221308129976821590690275771256259497687916927228795251233915841084209279467295406828677398224778918729080821650836672432381425842070751413735892089440158245488966429189113013358643761009323453900688141172869631457189794351654895805685870411656756928606739954760142969639147874294500830068530952755008620646155259918516678699779822409538265008271572630674256598491816026364752707366785217376262241595041334187153677545297859338591077199431870418395843539408576194725170132109063410326753294405111045375684680526369699212693974246707978645953492338221945195065574611397689492819904505272971553928361407554151352098012227482490070935360627521505348174380368494913019856721234081336548747390645182004922218555997165544872407772625545075145360000600095801971096461370674914017811973184718927467044927973931017078064004083131812347672863785536439513157697589595768855265903747402721523437398192584003526928729156435194416403047083030994098914382335744146422471109647534806358255072940908359555603140677103555239234643499542545017408240781768001115780059427309366814304097140999258417668042340097441281733702915606880362461322017112438300268721602240259365345602902248510859959871162494089414103887239495321778233157142595224500786081466162586283003477622312735412399264564657506568016348732521866198046165988816972396651070970436695463203365961184895583946433694351619910944847197564840886799274261310968895999332703195195339968453759321663738047193201125255534521223640991221248781964126813800114453272837550620571276246743893674074664635513645273894545284645482056767491258014560271353604460559975279130468961859259892930494037343545134356000377629635241985265766337901794557925440159560052399034991293798181326829978464074666934509694432511661366359433558615150407891504148007538764417796623963604592971706912968197963033804717020021342473268120452411379397290508997758491642068249169196253809005253736275267381809726746413776660734181541346393962322373545700194908713315753987728102859644265105941242582820514221114478835520525492953391082473005966185297383764543193015587742531640068588056501016060632087088499157625046068905691412868670496358343635691687278791025928112195173671368406603237452922787338652048155758091923721313307517236030313792497001394220305716996890689855696459711780096822220361973724498427653303632496220941257927418066373850199498673669169833777287142546387258079224012798718234207101933263727167796038142547040931299273632079709366672292587574016481182503011528606239245045223900718503219895151606120676790150098334978630130466875005356788848358954117201977133147384789272909973988503257201829285738022032060189668284744190008934256217504650661704443754337254602824042683125159465330679831585806905031085327235528787030779203582943309005381723387313182493836573089686882669477077228486352824750484275723581483991193969358430107892367206999974036793813764774293854863973687016913064056383000860515019313108222659311114507152952384554227104246510979929585099721886999661480272596698731409474962025291835332947753328542574853893470063659362375920817310076285975814240533547614914786188113721306402159866337632298621759981930098449334420918666704051374102760219588516760852064411818994177269854330940561597010156411190861698667846390956256727813086471970771518675572051888672894691926911292622927321677488378759467297480778991837732956002712265712219766788635079036914561734944393326801295797800270052114346646875987184657976391286013091934240822423162736572424791345969698013575176960854088822966391137756614965549542258525114741769986479094690474482135690432819024968395443881390982542651012948908411358531009323590533282815976332955184317811606976942452245481688101609928334280269653231944424788652738828149999286429017611448937724927374644334062187859379992607867186081283464265591406308902750448563144373694714865946295207255726434016727775609721157959545575949874627522851246895155648704955807295414576797438216680210808809077426679026751666406699463406557226719344261421655677202139004414427293834231781556621224723423461334984963308992643994238579782646602242461596516075673256339427244236131035857082644505263586633928270751176097406518527021092420124923989593753481407475550364755434320518194952258255358812306846830585795704281028483599393639250919744043846449772733583930818278860702913024117182907654997543677522634580488241429846663321569418875196388335921031615785862554993171961675406800110352876542323154680953014980144358423213488044357970790615162373956843201344690220603273402219886288765428948444608609475602346278512261793777199343664079646796403156559475178080570538614141863871006906407136608396298009069777345122922333932214731335670517743383014398917743037348141777083347561488078878182340629011342174117222188954869250300284365056329402711495146698175923529050056176272045072818385846203163393579940689643135359270999212543249000347266692238106252531112106774125292973634208114004226276874537714616389767621167966881755829995287950220251092105819034381734685672330304152516716731754179291307253900031167787648923187155146490832689988719687528828177686727354918618253018367969900576089148537014040745640640030879541190687779415942398318063297480188105407223938922283471828612157563529816040528654438133384613447467924469509868817288629944504574354276522633749668969184237236495170663165457842059825218694961972575982341241226977323641741750279500860425611186234681528417568328164732572613389046078529523258312388646623540590193268064208940741665142729139492100477145787744097062783263116416338012779121478458994365971553105783694081605736467998635886316075331509737017543544007492021513094552779100736581601355613023973084767558091945727810135178225790761398527403133850479859907395193913032771965546709279135839549147089897839322073945112676402589189787445289324234070430931137265057919042819200315053055300378806375545087403676576472493257130546855638177061322664313160708328849883139440203836582231569279982998493114617124686265309796188306120304377592782531052279980558642581798364702762988105359927413298189826735651809460164279332113030977010870503357000524338490164035899987436604457456310572776821475367281454754147622014414440957276429300119062152258884647486344075112999608559025654932008520692690261558576282043943090056430356527938710319749450186387013730248873223063278789264841623988065136292015353488316948794636107801010661810725900502436990475554077757470050959800475099168932498023067153576129223362870480632542762788912827399754735828916387309399779335042795589292843703716073901734386017400228234909281361579976563464617330206049522819801642566507227882573489744116199659480001048776162903170480973812994667652566843947097298464070423609759614792019973920086668678411959530463004638729637935268217294910707692858464725338310450649104064528837151470895508018768177299085784562512141861444894558702905216896518383369487534605339443996576685889057929030027859551872574741563423678303200376545607254931156675989097058304245851089194305035792998528147943836196980598817647368973631884416881865047883980190854132109759308367750223669568829201737448499111114401223679741110203012035311807167173901992842605424280880741412431558838403152841380485534627635474700112177667772354698835625251254914198533508114911944420618397167044647161797831594671525815371385232400941637410447100063310443454840938794866458118463557447344158500179505533532381575796135150589673191644741226441311500690894914404659268508785129979958299523473924917479865117683388387347734040120108725030840576729890622342314660930170826661820522441166643847006302134061512011048290302260430571582016866182852628931910534917383083967399094897686714693042550348332406699931231658359392047289109608738268555215826373863477097033320734865191873606332838503451207627530929447659021088610446138180851871464775659532666656547843801539781162863093935290723707589637371344884912136940846453636294972687885977286962287055081315909670572438346833374113394323558744521864381927966550933943135359195652815021768241341694758041322104181386534891309058029156876587738155118084765637142061800628629491054204396681650733264878546475280713366533433747519602813142988906381131447586688802591726731472079852591448887386790047506558289464631202237869177196029429938628075678616731933933893013192091602218112892426474584559380782853100802310801250452428403636245971538631198764764072206168764053658111943391877041649943874373457208264805831498304189317826837845950017747596266254713470510425363010744287819203514851629723938406868959354332562500466446650235029137279343422741961790996723024636175860583448833629210908241117842241887173443831794362745033928352625212831680363015241387731649184957850781919206007664938086389593738290361354499166897268788622576083623400747686937566835555415076689695036852728495828244861546169084566246870211035683235422777772030785475673074271374064987391938083056291892967553123229766134348044331374109706356049767981133097791297383534959409437222103663767193339761524478071539897497704653530777954171920980571876078843953010798745786711006837652861513055617339235759819624382736298399502724895424296708242595910754390363989033920591753418370366472235748688676943210763468783954118703289124142042157662723462932536439798886835701849309239936210937745186362860898622913914906249991962521848499249937016136371732581827891889458552121492660267605159247088225659611507166275354671107066822743054439579019590644394827631145149552937355905191771920710709140100100928164837092723057602242680305458611074367548150339450492314887192585432487403739217178318483964569053102218220583965113319892664482639340246524132777462617114339031949448533959268360379277236167145502684638867114766286267624641818827398713676054368404756519168691031773887079960229990105514057184940885247315990495362994854717337358365979991982116031032596963129135905733691261599704406628294293165033838582708140369651752857806392724140374296923972238990970806245550247253983404391812599804208010946830451445916571015833015667093628089001277976506170903880850393685891774007863712796042709686471077997025258083893581951539078873407502653753985353651699503939673290337222458460897444924758238687909554622830408986540963865721581270475193457019941354684826277155827208064870349496913316959855172305606954993984812170460135519708726113697303033116093593593799001640675973040317945328210989419327779478108761060202484216886644370288907063654655367794635947561736378615064282168092457551589293636485652434886288331545113899299719446590904510970337072646089225550126829296618301536797065202690034855291238263085700392295601097017806683084694186455236316422529072098296076565020816606664847550868943304959686128116681010972756163356825278590245377382523586786524736993493905092802756913723541135861999154375520793048578954597858521908657644140883187303221758569832244169403072320336103725170162835030683663072000176784091944033115967821879591144478623068425520228132451674906221911033401521661822149680468260053591516682023490363786636525702292647240296668423595756547937693568816947223578946380417154996322943858960209812183512792079806194396145384511169734295839864234603498477389716991715958634578214783936576508598327495193824820798616153946546928739638697819273399395273789761760228806112215028677772401703438336824064271439025059619561578319882877795761690954606902806341438844243794964567266227033802147411210543272800404257881269751882948810329356014166492598277346184694161116183969492665625937149348969158421033877048042782578368534508950147551018010020124447870318494983881222413275453668550448126483112866504379189996125202033302222284984790123460641232349847409626851975299546696055532217826811993739679145503468614963179900611386487390715820882858887675963414029417503823570133016423083497803908383454381024394854600237611584159762018023265814645263535901745247120266162072041713355159680501099220291198736229901573886315586568612828564560279294631606602101088716209289384922293997226294120586603099433641456410177891388929728781564454981506954554526529837669013302832403860525608429916419691008577856624642633459814725582884881737131270386152996277132192251482190761761111388990815715120647533410913649926028122933095887135256277425888919096186908580375598146869015303411002595291434632491500332778008964116786993753941182314031079217280168918831471313951278138104063372539641895742725121780579576992879044024048483273391631346298322971093595723116757473640487762522441089259955183582204856862296297658964837148959597908844936204326963595460211923451233187453603083277633677679314815323696269372016569655085839669156278669954761099929844831386052272431812320685623964874006641028944104418319236386903111304274304646948127756304856922001567105156886831644793958454639394996208374370575245440997712278136869510992957770794684728206530511902803554862961755393836097288390715261892434250344746833557853767069242722588583239108603117731093049510959218958188430509337645463509039152107725974673792267526607772322604316916886770825805555386437038926983797531501022003163638322793825345004313157842863480846648910138487765252072791293863214933977936219188816143523264889209497141671139977678470246821945539124629783929467069914882892367426640223860426576563491658469340457158289188035718423986277615479582662209290362282916095287904957991586920426526805898792446561284129992386439108745583094484115706759447949833594142217524046973780738344955115283446586609363569498262056919802419928026139179116760442218606815137536516507646313664186743813064353743518982570393443616503886264665324885295011511592462287887742969467542737771826221186547295127054126029785409563568685366472319864055373406986734028085040271405890934296083361598498737313709067144087772227555196142722347955271689050344215814750320883669898331082987570702652221238335375675124365419036156144166704308262778127946322823907852911937275211183608521409557799955140210472521865659171358031497385796985373405467674538182371192329794338874398200416082529658149949625233716337867219935091003097227002977517564650698417832881846416242406030531607575458995345910652864818511344260228996110993761644579554963180079802785368746806320278857743004472518750948302221206416791177238261345678067507673532791639200722184601568739384695901510702446350196973259472305828624536936004996078255078922979751881792349271083094511765171504122037200927087675757609155545283761319463396339383479893598573065766895730134464615216101163627638927458584198979869060887168745550117511743907541432307663895233014212923201015526328798879216266885417478880440325429865221012431726585706892634147105586008450173634132844992740144110260716310104688856252048748286715159415267244380395716822990723178516131442362380194028820363703784625396108633956928303874399047666592230890464328981875816258108657318813469677391383764905437132772057360420741104819477252744668683995362340186542927625196249921002719002361237205684850269667322333511735775777542203499847474005272944970424248789347643889548201079443394656826861899103653332856065769180100123441199404903446148165736916780684122547463717692188897870089678838693821406074276917648450958658125455442711681921723398870805713377594390284367041897686679379521927730042804465096046805354015888580544139274022553881403002713352829901457599059514560403559236651269699851852614527728033219790712304416417597283767736870028760671138424710110082699175094091586317074715560497574126189353326213104971819484870400924485395762571922633287951331190779049652039939545765645530897800372960214507415045903315363503577955508565649347293193328585402960984213049852834738840180477597307186154112194593264074810433032983145733750559276574908567119552103281206571883599678803016232183375704409248229538220758057861107042978824929044439281939733349851208063708213634064913733488966717324080559279204646923039742055269152199897717035051407789446932712088137949241131197742582417196623374897752900081097894427162018782817986053576090420139713692163803690516205809221482633475721480738042208936071268590231498091039985483165679151198762726430369666803202138688861353876366926700100539509586634067394367460207698904748364282892624935107522207117373781746298226913683380575659217354551814302991952413645308545015079210229275205862427860055212410007741089401996948895273483241526682949454426752274111505100017119033821788930060527561466840501046713284310642997417572936623805963926032406108106288404196856090354832617111554062940587385541215710669573020645811685533155314509547122720548085542280386518687977711295738823368251140857705403987101071334091887884034979890467241310088566354473019189450665254387934532554100301322622464345853596834308665880622968869519129586075722334855717229097119988186479097230791754472988089018971954355112186389795724903150865732661063568609545566904512821710609131894097484719829014581229507830181454149218133278714794954021211129446001595762145965194540279675288788537994619282744811504403817064975246650623602014827118199322109643776613301686776016254293607458573780936029726210426039681189226625556728419286843140113088908503934472626490563883307715230199405849116931534973276835630838986978709222730833726920922256447867469672451758844208116273748172946936732064751130276629146947991170333929130628153998471161148708564118673973260258104214734311241824496282297926457471282001624361627661357600305332346479710945229256167783610709179773544557462135105272747662329360957853812172840635246585467400232257178379204323310954257089233577086744630533053466708279044105373602071344870567080323950513234066965942701213292303107741000503087764208132747182372304745482875503593596238652779184992569058811666470442847895140105110941468310483523462003695362207442373115373647274724933017749291041989046182115591745319172011637434649567020029711437095894056339990025770984090757332470773416163353985220930444676415312932969109739709925694563966788910669812228524615037145219516228841212926022502186119140101076228214376244163016759698920083457759455143362104036095323103638244636509486460493366546466152811924619372999634190993651478313148729925817097402093522461392357057086268524628522630567831891442341018846066871582741248957175141859991818688095857298527324527222724700087459225297437305132426112471011317646505713306907222503805146811590586977761096738519401193572257024201348893290909478431831645382409338712755361927633925531036873914496914477598584122122219341637887043415359350414452254144749659709947831798170764129447980429970244820348195800682527351144586571559219065188886867012956664247154163664216305580641928309929753801655198897054754838685467500587364115358762255539492941853047640380627273506982596480175788429087717626124703292464818191933338672546697230257159847886558271352161883788661261385042847191750832746213475958834801760356544733360849297866855519441877894623131909906051996398812318971676574315588302005015025600117900212120534060126626383444373181727763612315055608100469800480723612382370780933701317348469369128661184927114130730574079799206938425965428995506434760339046653492816417400514615205359749921521228735647567588213861594185251408279276428239431813248322111499682792570396904960080121519516088864117566382447835886170309574431424605382677414376613058745568020777049643887803246712277364603640903419326012109867884701680681022468793735309946995819035793265904467377099242630250985296749788443428779298533586565320209269865895156982107158987233361980389514366758604018240649256883552999280943902819159221890007392120275532949878556250391969605874790725273799528842656232233978250585343842015353722657222453346130814090924819072291034917232420324670189385022146223283031174192002876052369124347437276758016573731683586609176861072337047149291990601729013335357174638714259934314129227198785760483895971174994456782945815972627441397096165983447106819051858447914915936929050552638998050449873712272276074652167712595225406734685330111226951961674211416061961019034770349175749220502683798625301002021427065912505958092349002738810079009229001860697234087979792130930811709925788563482172084560148014114387162281246210045209771310633148143330846079577385711767404001776924559516892411903460330386842611718390025768120293464240135332169169926693350699758342058470682091550902769175049899581996257713239841984456998557279952487329171549009467701210445293201885600532673289074020331863618754221011480159329505815590183204886161214206682470719896514263934594515915603728138157916092378440661932979168685450635489614717925790081561232046270173096676530271371530082638099599076743203800247533207087859845317393953245643248415736487199713790307914176177918436571141713690686378643581733080668366353980849734745107344770056127920306526912069938436286103886637923436285300600641215460235387919909401339588161523316749692217136434543638757751083232048688210205084084579217576964837940600988031236608470670665296726928537507185430195088560092685505874643159285911843638346505158632685476579067374609668926657074377212924609847228684578467532167976680670875675599790077676728250700482907262607635337312432862386143514993785286399067727768769216985944254825465232445585711839244775697239812744533579854613493590575906195895959952128524909340256503250457275211869029322687859512383524570575063285826717667678765590848414851170918736084681629065804194295245632052836171582914220676960393011345477147131825703692623238880745339002052623709398075020853657749467860766077831972134501718908448560275654101477311560022779899883605697374818504237434988285511006675254234463489519536928516990655204470489254983973432817597900501966294708175042785026852892306716502422148533846304947297008479764798251146874223174520164828244651826685086158315938894350881347140221528699081872618074607310199889453140241507916154667715805188018974555518054108870925451533691360075339718923079244259537042146554594866423874712164748412765678935534508203487211712164696454303004331944129310812188905964599083254173242192433965719548570220425115326628299861116101537130195701205607167401538190285926936130005265782631809215202463748470113263736019148610665758931899486251081614592265373475075689501782117756145029264455833226002258634733098629110685856168228794876620419292299321855861485403924919043957737845090129571667008496465079839725144379628281014690486469126316427876314568212366885043062176525161953824271367775539382562888997576247533646994200934612171314167805497912873763421457035130065754694957037789362258315991906906684577171901412183340758673373032996001576633241547207319685860056040404965601792938968006363028843364341357115490493780029709135896143043867849957599949698072153300657433955663846635897269202562076139133194774577983678779356655900190706550619052164514582781512196492713140254484048859206269817154335620811504511934204883877050624494887550740738257473736324732218056408672708845588283477108715040056334416521105478537585735202750190462089244242571127262222907073434661200908105345612666715494681409214121402621294524087692566633084127665370077958882798101669831902031072235459082703192093475218118836164480873207686573654207492507230695553064136708413295681250938299038184381379350494918630154531271332184939618326545815952844770187280656269231159098116896743373471865206723420962830965569256743433630763712437854494510714110692605998769424202372327800973655530304445167492792258221291074951798964677437386826856621316241886902303638645775173007213866984411268010090698452490407753609777721103724521603506320957039826694873218457445411893851581453152953233495685643925800692206410197081242481548866731899148796994617418691388454609047003688719006670220782519750316365949096198851809182777115968866003714879426538057096825328873380555751303899926731469717979150045795611868384045644551931351497805980951697964251711488148856224590876747878414238994596805225521935373533332592647664683112138247382862591536632655006587745220310075295739013268578278815006466556112482717554310187971208742324110424166203047296950650270902575936192032155215879723795347815469605809385692415908985055640896517572832477588239228803307350900477122440769672896702976164970507380829805042508989985330924349959017207188430592141171655171495655347299836490864132414930009754417342911659010136531593317924276154755240019657504788565240366858197568458353210266353672054675813818047381441660540684405180675376826038451917646652822243175537773691059285212590684905103012958043495013673299082190826178006081350713591576559037573497669279782324125917940674981263254491738768473191106896011830285106512799071200880099967918235861445491794516143520778125235625046114412648140436282295384337794859815951501933203266060156649179595792819326666006890655026744860237641942396853210302211302358008596906950588745320764123066506904352769387606063699125975949702478719353111255982949576669662881987947335619312160169493505205032331207209319007014222211900499670228410862299774019175707149799241081231856838042534095817251393479942981606074311532305450062076799838266869772766002884661195683978305496917993075672893890062477511615899890500363769713075687845249647370253866644302505719555500546774840244179464113450418142777886156567015039557742900131301101647535543537133625931905805884213519551809451538798270580594593012783392090814196370796982592327835876964018979307421926536671168058954547603314520220297306533141972205120375967462249538825116833087359941551674074920727090787670268547905381273265115492052641220829603318866390468672004901362349923602104495244995382733725105703790238290048050073588926406776549051014507493493105835943317156704193542109432414763722060117536269882785617907982881734867794448113650961082741503388416783259323642840267541076319158019433215289469332576227059724777070224745248506012867527025734978305895497996044011773173839778823421145377006978495356349359986381671800734291299348201967416753565344006671464278741876601065923631105827492371005726439808412807743293503548864233682817368011416960346188588439871193779677039852410985501258855443594084802336000957965816510710057090279512542476668562293489469409471422111801774106043232460609410569786427344046611111673862599392997538428904118370113195008232124757141905548547980512872038196610748233082337453827300047359676594420440791746320639103669293702819257430037552651803984201581656969630009343949030226058332005406815117293666273473793902993552995871285892828012992650503374301791045628340550147698039183884166987846454254861686094463256320819915258201869443205610883042238387852111601077646859592801175934487256495109822304764784406406165698760797084445320587697590962985823125038847571656892502416997455011337530626191003660148504550050618184481936221134645935998938528282829677090519242624987883603699700631936062763367470647134167829390054427127066026424399691760612928850277253798849237465381203128418521447463376137564568071553177590304971140002073469997934439603025717815090229323575038143387085560917897895420939639924506335163730848058794777571669297804625567555165184263609183090732203834393305130051000457732752503161473652430214134764746623904364479164362893604629080894437420044107481967177552954644085565128714144914121563502285640365765285856654336166023717110620329352841167266082716462583287833869880498004878949812981119362916010951989991109165939488714124719821906553509176816752757528600082918419279837733506375502437758639864915923580002205187128021857295792650046118193927880914900099298539388522557762161478860629084102223652090339773034570479016051304502504734045175030182896847022007659726230997565632976981043239035850069902068382285842298750482527782147707079037868191136141942642807200832234045159209722230816709996020049964745226765247771198115398676260300017828606519613557027609603635881719918649369246189590204765181211763665955984887539351259259472589205196542660631565272286127653824042783192723266611338473264028024338739916160873277012382997573998988689076289209347837320740995929971411284280670659117065085931550804270015811051010185705235009557840474777457594287976496262605869674145245433473560368269429516696024529236951758872924729293544204022077307024708944462824662062152182332933922573933088401531691502527941366337624251766226110265630815044285826377442041846251251762423241711303499888434793217254500586811976659381317175899862908588419510176645274593583622614376778201422563202737062203051366290885749049596459090551670783505085903435238128120460201839378301977749542143698036729433615664423278817681409053262735660420504712549261372871187865427014284614589310214316521604842754716643652890113153203208502233842305276106207640719591643323354822581452968816518500872370076572186979576704160553764244749510369393138088291545685348656386093974305400101497675425896200350535757444890145478391169894654667481160557101189963254980500497631098304288233054213354688330832828486845921632918472528579662223368566519656130188128887328840440783256377349027765405308799257424959767872179011041179628161165689136122543372449057300139302273800786475063714565115816328056180258109324401618674001650428367106511176844913329316279811558292948174392387795317405247836009524537695819469270626247778234525936298791160710453157641937101480725239486689322548218774617994757279558798865032482783177111219834345091443727452503612011539682853846155889151754785199351244412990312176383566497040156376047270701851656398739127135279176243588181942906891202947415162674573234458958069539325577651373446426580570912216673847644446886401772980053699220408846227153692234617461776611077317922072393670260861753896458071365498754489731636381201905579980358475292111005081894366867885963556900878361116583377128828912336961084192894469603242572161548025556613323442683667901093837376552123020153132413121289503878544005792385598944064709490291195148009990405350094903315644951608465047967123366421818375945655694046953380238567170896274708694502501738992224984847165726337526568090515552637416233897341020213570883382497403324812908768374991974918225272476231914043426494630051452741160311209807323375125465146878860236621855173121026507003419170130068146634900336309588858507248654926119163620464145148628759368461345062853437668704712899483694345164807842168275811351784354008583238974768975703061215944365525969377257362544554852216920707871491525963792717640128043876870590134601400802408235843110309707166459328486030323481978684361810629656229726836935422879653313552762789366437213531135505744769038796416985493614507509018942551848918367079390625978332456446030401095239263437112193068885698945756401318015845505112518347440744263423566065982203462336430799492652862064867400775931827313118970089566207034543821876447624554168540216467957855406823998731111622283225532725395619722853894131702891116876311967604476232246866475187543062617929108177808813826904357061017939888149009718834605524872593713272123610534362566443987403904362494117123288914711484140586441090469651234930427405900051143809654992971711760481454326303196819041390281075343269352504303866851360224229731535951731394723283863443694459648835601942415777389046946176300554519910905424340305182925952288365962760347976549304347772603992717773364422908645419032189895844282931613062784492325182115518067198564051790501163069914922718214296097826766427867124545680910497385567053696360369727509543220376032917817868199523721114992104097376423239216838692418256040605129262378069798141407322746567648791922117336898115434661010245196649463194024640180273163101899756847998294452600543827632539846840935189127095718758301098221544035506947864527964496632349565985124166684056409205062832642453293271282193945749638186752003369283097365072751379454835995241194966758573379236156276995777028641894880870025686324184175744467231454349518411097258469106208216898426342011040960898865526138053494068093172866298930884489401214689455653237920549200776618738794589060947482266627613380066294941184115677035266261958597617386616845296395991604734986978285032344623980892763629272869622818312670227730556150010860930732375633843101357311991494582578355952350786364397426319193977686241983613833932612544180825829948252324251621448939566518972250686565209969215839865057062718624876269503715616280537786561678793564502933942646976820033300233256738974342521202586815707145442173591618980045986980265782377759707815828793569033025294311181666440101643781020858104490679062269702414116743280733672207180933350920218499978253004469325592774012918783841895028634718280523019657794489575390107158070657066011315518255251157263592577106871827970146397770421519418699269624849899072137949227293042446864572264676239330113662061360010329094395958693605168820539932607878646923693132372269071010706919884919696826964390437255990878945061592482768804473927149081244404073420101061449461084012659952755954921412861074241386557447229388683944301105722578948107449328639904876380095270567835080168495929166433158490477506188471087045881647504252771630619118619268629079061289041141872060655812218537631572125799237474582947027203477118514885388522784300462223198585728853196491681302559859714644292668404604233830894151799467606517262260538655176675250727790655874466923255302230095804338939381589425012826690206984068754082892689509985572914653741756673604047638515153459695905142985196967636004477452675485344861061357379824270823552513032805961093149149098151948902398215132361894208970590899612828581440281115818094398028486032179860999775928052481252123058431385329692565254062375540398887898741098088232551151190415190680487805645086998259246702488294500841430682280174269278578641547760467156656286589563997251876858086765913785991340531642235804470266937560559822974989796226524293018704057966875906278024794006161160448275210448463685595986118618791228562794597852568731484234724700910961548096689731136502084550034721638205378063154895848632461766690221492337122271032073266977705599544247988699066985810569415445953852680275857128596012594350482186458272665100403888632560417252408518695786591887405360560881816073554902943955067543589447521123370536873901841455377387899225190435372433235580250984751998242216814193064568371887735460570548190487186441914034795377416107546114053100886028156168407027601658611612486683765653878439656362536215164963451382324827117044698329546123328766195476333550095976092167369754636317569505709788594942785206154229586051968779546441437018503081692527862871318649034746941047433955374179678758146908792760698222854846178622612880668664513780465141353833227860268580973175849878901345784976002574794865964025843215458623090672610043572037452518065908614293815331211228215023270385252529024739354667463212631543806969433278323537489451051864849505464217079596699664126986379535834522824020231526110353761389726599916034557258199629845147355055323542605453201553937893633332179540315305785962022222044486540271036475387683583446415951884733777042375729237302097236229712217276008157945227313849934418534025465554706702342794131096880045677605004294840425080837051401149387803344492822546545795890804932214273731404900050288904418125521601214512783936244735820539714241721053503772552090006754519980190540791814843978195233606595924909330440332724337260315951349926184220428962349305372080659237924704170915679426952963907601219048590745305651103132043287588520513547420854407249493445731341000069048547225236039273494332028213410629650091114893856764998893217518337412149418060854262087477715949886916370403599225026803829736021933614207938193598055891703030509917993716367253397082362520088357284029052085218379129594114040907854038221935650125750208555147488205989233268465246081367344410967210538689258007125074430448867371657781526007921062350248488880296330375650560047945153487676698419178604432018328782168437092043726040863122137276791113586974786857307917096287613982487244771690844154811262963745577893312968125726492421256449655741172483407125416707996940274037671457212190651072696697031866198119210369668393960999662671285717913712798259024445224385709334569783855531780865908472667647615302463097779824138394504625869888080794778576148533958653747675709672338944613323300997302202785742127284668073439050621571602922290424805837227727851091519780060753485927212927426820270139508878619550813718799067785902779226808657752311299446986806495787462374537119768911192384255107167429106153827409706010033935701325310056564771944523804778425486943192782601511004684859209350815831671652787839770424502026641809851034221286112507313197853309010098684172629569601471459829912889246258759641473680953459524474616537705484675190498292713118546409796999644033280706240894712363343433328402712563435168325755793992802019439777124857752263207873966242095200103705395304555679024376905582866531523600973567575186506148945539175105481263524885983732566518355665010231332478052117670592471188291659324505887501809969915362403742354494875669646447242257630320788834753072518696703322723115171315502974293560551088935934258945463162081914314999667714106924600704183494651300505643709814993025158995715055577458830444891663598696880457513453126929752622258017850507825339016387042484733284902022345469676190141177748202422567806593179530403621212925536093101401605278948574911131507000828343962348010420462618724904304128471523586005615383629546668170386681963115307528709589293694943027787306400569826849997730861129536205900490877082546422423477346508508764399488009284454280235170137352921483406539949440829207570417201541895427682171845173849453966059501367037679300471825441987773948946284177016021486354659704990934850891300157153334241895499592536184721874455166553282216590227187469145550776101684186583410433352235956217896736199036263533981632236120931757327122907013975116424216303547701385154628518161984296542315835200019920239165275774792860493797531866545560801063004007693029991578178764132708630431384849790358603877629844616470502278168741170399190669786873003957336529641161094645301034155516308553757105011638188208722655523732312585360812684686592362370823547264172857896844643274684286641233306177251436331912404524514329926204487185031706343877552053105566540504430578471280475140356643255179236544580301515651758591551623804670332453627692187593555888436023732068498024761014770128814973263375989198891987004498994028705760319349108459174487669594276447075936611385344098370732576705704416742819213211946031039466266465773228023854946253931815367667096834813811878017932022108627840597294602290429615679200157968795635313481627637235429014216617736690741077891375636493674226463772724818338821003620916991783063101083858401270235467818990055602782502763440391516762659478109105141699994710579432253024492450020998701105265946989173981007316931826128650385328495446904487807249380741269384082691503508478308368552112941226509752464790832376878989666312481470270122422294470697322278574884688514130961402868916476927659211512344284806765861438516072826443874537151424260565204052109611703173610727940452215575523006095139616091459008104587761870817027254963282429054322332095672633105096933035717983563322635310268494998111658392549879685748590423900540082873861372991351679956474721471843253064566310921772611252432297812695601325761191295134608762839856928674435694907339221648312171397120601582037112887002673323009272266538938150883029750461268083658467248578741233528204124349426740980851905231969953364963970398995735208206051431743681595313850286787021072268741531328504496448528863053531458354554355154559240430082332942210099783545480905686710092740087822797655591947186963513311866800249835434817234320532136997370357402163332518326471881434096415495712623226141110127010637867114274967003667410725922430671695527922133359790544749695945462912782665121601797752445119421686412679037363982438808052519795937549763312353985788784636139924578703675498766271637573627427183068014319846793491556509902725574020269579748627925693429133338526065865287345494867423502161291843520693827628087177670101008948360155179070438582276814398435640414118419565304756615128220887206192469412639877892113823357595770485926008369716198733936119143854427828261541754487957208847652759751104088462285164553245511071819691268303002185828284225098874799662739791920333549779997634158765067541216322625646761908294038513872083214272475029166970196562001015470169640667612562417679773658910419244697842853356667046246724318381273641364871674483265757760855268034058768442438212837088751873757043989611908999382392364285143634033959544553005588423714238426887219363559245173441612023500800772573212234718450316851125367107164043049466307551027005863173028158355514607441289665764227953020661375064062824818153883026747749858956853384233157004640183610089931565191970129901135585894449463791360223475774439739523079621997121072323985775497652204700813830125219683463142104162673234217483270902638465802081455183968305979822033025674831117589030929005760492467385317084524547644562769227134301280845644778098521990169104719770192153854186955994352418323731288645250418837182274705414505954433074626943570991724376566830250987717493691983249407150113278331519023874948922751311233745460370328304728533185695584042830185269242354857972871726058136293297062705658927982153661818213771782470890520557547783991303569806652826942426365979424000212008728267199321770071690897783663925690013729318597777419107027138361556038730345569838226172643814572932615349369918951550791200682315776505560673181021892113047433053862129265705507278081383844840788041123122031332319940562828139539094020429594819371209968541958950255050375233008667960791057272987784435544425691204568368122085122173175230165571482385086167098569120694916300961715048247867317889052405872134674069324556798549658994572704409207544886612943462302686221578329343635194749267796852032081101418820242778704203478434813072616820651612682260678329813254616212201568578894898978016356536179548402387585124318905322717784395700567445020016539346292064758793266782806471972166449948741013832531272414147076632023716788561104433101142659808812311648238601148840947705759003469215193113575559997690422362597592713240074349572819814829153667364682676794160376582846760959961708901427693200612511717117436139562266343859019402291055556820397809329446634713043269064654231561009658028624908886563130848121355082838639598780742560771652042515106587627658030381844927453772283172034384308940484824320733967250334298346509076239967722960622173311997904556097900041440672679739721267856239471236517895918774309669438366310888173456083162260830197102317417368201705941835075501855953374956880121811250193954826938150750687261740522588005565267884432318359030622379961039392844682779832557393180437987333768396535609917519781891128980147131910462227287334407686359376906732326682514562376482430643159491461474688432413091480524943629131617764219335356497948140708208410448789502024992449063259040459189777973202744686157740570506457018786903443453389500476665924635522581606523107319201561581253112520974974247917552843454295990415456352084926095025931814672951535594785056173380654342699436104712371312397550867578737786308421296205969570806614133576572376866813872294792822293603406597076904955448400766319078465906212546144019434378045471710801586354838685045663672953399456451361219490925345447297110035921346605249935661516813972294798145913604425329178320660727923982419485239994927717571073968782521945760716427102783192052569722782989911128088778413566725678012655641638284086918620190772324958963338172078414909854782428464632257864657033349409916294335574203171837468768535786996320078546339487617398063299306974252122284097251607376033498412514064265646571100205320434678808010545668508623728915842822691075926249048292446451908999066081866890211517366141150636252866318859022904179036700275199136933493904677457599654559176532959812299704912740156320087295470970204200408327178009988010690007459379436443080914382486642091951136730159814053296286769601365178921510102033268336511778096822786372948310408605202772371876807167153390282215761740152192470152414124774035096793274158335343070257978637854419601984926496408204451598524753705523199990351585336296334114891004719877365241310907983197881940601261244964583469106816186506833952391747355076382336796342660944084231583133850738479908003260590157760151727300998380169517357130058352176866759170717955326621551068909042293551783031264865508017201407811961507488614266784220862975395539056931447238881208316726618532547065935201867529158516469143852164862321865963483271001593049461859527863310858451997293573257057507930469211848924650583277507331276838385504950073980820255252391849160724894175584157150440890848626392478687578784963571604826328670298755686860776941663169064596418809650497583764171142698624208653741474854655388982565385215024617262923621234361074615489498399407561698016469201070592030206351397210595990476188222336092570626653983726535202162190519534166598577647647261690314915638098543288805351049576729374725152487580139763700467185216565611268635110688609493726483624683135793292239112366153531004483728476519601376151784632239914156138225856648680804551210326999146757276956119513924709277600963271298988201558250846164518281015209970154923679259594569374208834176809872338845420302349962405995794525912378722903543461475954865536727474712716851928822839003764250864622687015982683382326674834395302299360105198683234494749981684054703188173661333145077372922767009021816500979381403865301642093001138394787185665237393706231622962060611285152473977272556791162627191568324039336104650329850027112904781631128210307769244810943487954141556854522786786207953121913456486171274856618432499462901117932674372398688009479879789438335616410565199401486457347953694728088633419143175683943271820647411567608449839135226512863951203464878619002425516563490829169149336019375103746284549711895213573541342339552251010958991589367225184208924421478058514120608652871709735210625146767988174751306296064485884449102348348143921642306729860048013715180720148577644305546824936914000770190003551384491219261711269265463822090221365400591339796977971994746782269290111883250600299461300831466367984816904165043395577798530448595913332591926547503498102043518313482229914615973985819810492952786151605777861290693455057475359373111549335685406301771586579899417414397438923646771620930151422104653657335472724229451155884577607348032172163786763362620856019438298423009453783889254338071376093809336277133998674474874965958602472201992502966194049113371911061548125511639048551492834317724709617909318332648827933761475766553844823734150124326254290133929820016982159573816141244198739288277018280038747967772036233042466988388619291535235021274962786013474274714450963045417198876949070986988865512718144127640742792967661015773129586125961871645063337274292208469741344100615539857906474848945671998160695535810730895368831567230377658967574675436176633451712348313542065689524526710737475523997876610590740392309946200455997880066678909727693954620743371370704812344911589865742972888371351883511802686220007955741557985440934276246144945711102315641420659582652827489343157247554196354997625405756499687422859053973991201647578257749910563017914070797287404708995624315377985741985181068442251315279780931537652833071912840943478501691521935165173307867082108354978888912160503506568278004525284040061854118646805731729369637454841428006132159618170217224792810582971432791870638723906652173143983321392457552761814993014216020060806770941967221754217709830915868343336336322335243443006744091164806058133211288432208182287655668013791673181893392038618869057188792654009784222850172499706958254754133266372299764207240436398725332966566071072472840604522801211459187927770876028500284748822551900286475952396431094423317463381979556531684482440024799035255444054503661264578838133387559228789943967874883575548917855711529542695618276865586651584208263037800397892037001751329537026050637815716726964245592044041526144332885478183177460312217629742214818236017990517832430197851308567950134092168849467629582710959474189626744268554481161957133486810227980859058435766547382345460967996466660676665833157649236520550527774867236509020286770902846421183531136005679378186429319257751556359410703201009326116198491276132136807118697660365543115190126360449506836242711443580306294599856898202357984788818541297948150465973309031418389412133494784210679493526027967597302841130228502320974961839654776766948695933449938912119555933376607184933379056198320460889361244918919670568506974991379060434848206389834671974225209813445872716156165787498084977980366692343581094677777801518326066471599872490474998952849979120411561010409876324170867453682956366742362038294527851254092238370588176439159210450249934159886110104053286039972960600284795152823479623536987214276259770528114682351840891225315176909620848331168883889631445249641772368717448959955249306089890041722605399075293469375848144300441821055047317752857553455648396907219284800617886201520251964420734927097704874001463821208843491538570905090762098848318349685588786937901205588634700737612352403999899496363069034861363632872476822698872707074206955821232587216772870822170356518548853896687782204174740295417479691903324629032131462487739867562531399527826641005153479726696721361628903596838109835735217891288471256018245657307390697746176523591987610482719376338413228205500348259621491814159709216439617000354414321758829904645233471466692065146610805392682294914380829685081807093544612970902949052399998896674584416719971888979455314882672029401232429422365857394809490320644670251306126005176923083075200658731412901563763154605478202585319799817878909470169024898154580084621022540430914420653756967111465095648012921168434440072153010703610971318104276676406684865481070446789229191827057921009896846656604649025349342972874101364096714548770771253066223794283826555514776142809595872746653643097827974277501594401283145120764395688009236906625969387570211675847545013812960811178055552929735771034950443847953072305829550394711490854584387776545804906079806790663483634747625797344873350202258965592533044057139808738174737931579953989914430156739829919145691505336084671691409497224606553890992560396063003070008260281625862005538882869302668605371850821230490255699833105765870280466369756371674523896634094482200020394663703967059296311138392836207723226268388877748936848915022043114463945563443720687238080379578520482203127125221824572806670520393321254655556135518333900612555855427824668562144189621533092120755494951692158498612595702441455631321835169033716406154360098415617126267536916068866916870803808801832166854286542823940288782818878144274434172990895095760113542932468825825899433890128851335202183320591061606719345209820902331724057864426816955019942062323416078058042796612853984519780376978267288868191480672746625671378921429138028982762447137600288068048831176686271443768407080750214105689801812569694618309313292357022143652012927538252439338645310673650804477838869596177154550855315149179042540029038222004387308756338282163238138157228966719781230970915235165157648053327549221664852063404748332380950333627978097236510230267732111366537827813248969846834323557535665972478779958328180200818404462290554154087930171811919321856424719448803574402602395016850412265226178985749876773396438952938483492402693599483656155758082017367311315544192969892379343616030225981276657801435917353789867411733257607755187496390175336803721906253354544158096994174942561776627238664869947698401453998777381792293294981193003885931195843792816691600642408384906520521757817052406873868539905471497223550179866880664749084334532260241933943958821274792942919424862075018493785347391709565970622876372047507259594866731507650411470881241577703188085329974795075399060685896743886277614881884473763835501782297637800019876373185904051993826411941984530845110492550143731651926872404529335591061643975819860830424701438568518103119588605242045209208454807994692574070138866758660486086544649816748298288474689544638856392031012693782836741929476582332206055207321290459478225996389633773476823889348782254536113625134144124019702887207675567071929854049636623667433416537404623485731990885895280933773716642333553202510062551834316162213254825116825134505989277867505212385797521986838548235170701564746649489296028283362056839242263828085950575628363856211701872045207802261039645994236195174079979609876561853790746168444270165629647846220460168046083007179467840625408138117833031590864578113868113729992294945672421642153193188885423902869784017907444476532072637758667772860729494099281320657290342890428384469733104779619908139140648633024912129472423375232491231721310293617989449282442392714224780668135405935241987322324882853635043799754925645629959560425195104088198939044893258433906319336709002654272375353179643703795900530430365919242166695509364198097583024670039885613945008777413612496216254676976864147365085494303058848577595807803679238431994476437010284118987397488639626354409371724979248264631046629465118621406972886470347120750173184012621731635945049397532702117818311482283077335982805788990406599096165682516898155553464839728345250509166217123345058268156470253304927819332346617885886012525485510138645901545949560802516696443673271354359709028452654576832526133955220973629830966613448812585253662637330465608978753578216405153678385851073328198311560612225234988836095788530681960791539316443644732991272266622460412403909048595636771980776675875405350192171285147443127360667606079285417232231917788280109674194248531927806050740398230451138216084470574545837520956267460276415380661722546689422457459935684850286166672403398516331589197793225975986524224571112130567179719410592503437110816551381274229199666883820920985491391413343850112423426943493591418988573450154572190047111614841971254844188424994501146511140239818711055856017534319082484051686707724253338711532270440927690420413212575167420688433114358976060210590402780836328480197601602294464670749716241329928970410805754998160268884702370708182208763670569785951383729830382826011731880527606929321945855253813380037055216431823054665544173409598170885616227163883698954903506767943235563561710208702085004196576847786584258456918861512698047972825109058441259673701179998252888060141046545849150155181171363887420088774720719135834575899956253144483287756585715752631731209201883413391121568196806848179501914188734183091328354415375635621629651597005394635972684627622147306133069336521027026178783788787357164305792738117251892234337532452041030587220218689780577296108533190242113079502719388991134106765200413909730051302103462979459175833706591838929295493309144545619927780068748916470543076692216819927727092584490007113646081302392525473450427129591701140023285241224099978776626459108613876616388717799968018306216828605782139580082540153355527142474083350122515822656006555981029140922985577310860919191707843464538634633736752060937280898387951261730456581364340367916846815218166221905616906961929349643060058066604111058358410786826002185350984328409276255919992629462485159332121737218235919118186149465596574719339780066252457880008469510391984997311709317896435930976469003205400289461651147328865343681635261975579848735932716751789570377663661034829863872177152067447268216251745404529948622797602006872451401371322482768368438552797555229785707258544072245160511787203214650123454940584536856686691451848696562773559444152295275773714166836931795929883067946870627520699216838398087056777661327478839246440152045448391873375599094538097073250598860990728806419868536417412517085529115765002291348623037392331436494875322143492240296547156300637145269828054849388998201181839342379259622205982233877517721335799187663961359992441955385938950729490377586902247211759989388947837809038383357315641449501128032996597189038411868949361321896546361765860883056633905245655087243421694575278008079444757992748658624153895763535339056319778333317670913779407199647551277701682135017289538606583100981631171998147584903312195481038752744368057453665514892461931139658822727247598078795487486714081953230616355178422821797658150988187730402585839432075139504804634952819764071761283308225619548493479044616717372994027402769461844443893575054019712799521724335056211077119994698195422276741663551350782378328217376623662971659702850708468245975947487622833543405077661561413636245962554945338489018995838813337747046133220787737859578763830493242179988181454614862488334293291222932577748917953398412922870079600085166948236993567051638652921464465922671177036647783949421364150805717894377389895814144399504913129740497508285357375934825562943693709394810033806323300203501332902543481626531402833956912302515844484919510790605817989509689798508232337261337947682418380908446527588042550716527064082957849396679828308863323193534802835337894223844803405260178996110519408688117110942502236595410630787286533349458948280036368913836719709740008364129937181392254938063860865836940759479588034822130598970253944914475651073438972809863630214905282817336248415183731486401561252102597071925716687010931783033387317695879872003672592256023294398681679662538794196557566624274411981415649892756867958086449707124123321493052025255741782559204989838093963358441047114070049180412437274134495971447245804511881097596149897867275122727858108656575820069565473972218426491709655865762797370504296742536600755731515388564683047974495340084271599258625871799476698273049252405573599081842649610431140114098795858844516572003240247370801593257888188811808648547882782790398530674001745459749488323505354427818433637961572826575653046706398320113322510093599602346796291150373742200228747458787913445159668528058131188610669044805477108350673865597915382455402673851381220072966071608285312269315505108063920006164159646693253808231013381325679917497307148869705043482737254117822546559498711253378113598298963105411754571327955192769930687674032862580975562126555828289420073268684879102700332167081068659404740693835020038471735786789922740635717975494095567714386103982262221134270673971712016867942485317471172392066024352558435179305565146502264786713502663687108531328237803164838235430779677399742037359046896904023524950096465622091598063541304045018859823731717316903873812241238084771168325372530640237502490824233031261829940582884247777089787652533224521223494417541420795221849201466958326183116797913233732012723852292240830990237180854226804589897052180215723557387646233600902807558863255016924757003177980245650815463648308256737781608072691236205662357971802299651801000449900378554260785519895034263473853044784587905184037837576650464815125304065146471823193142696560606051647522320334401292233894894176409769180587005542067015671185108606118484014909642302173442329993297359357183164405392964423674118241619280289080105077727655880231252920829074609239110499098289433971016951602008936195607841440736734739998237253764464094165731543666828014495023740864417537647930648067118462720162414396868353991638956251358351109604241019344425094286557983082547341465406811704878338766546420054425419084004229296723030380640727041056169196974324058231259286772783682517912361515846913680658086665272368876341416887885488003365617011189997713491985324201707477738700646792007411993346551597598238547284434124949946386772096813336628638009805165327592090942990194400421786969765248973759636269887437131877104193725203338167664600798340978273149957667327015010457715219926619052195134598097051080958485281120833801227555945268690764537403847791897769144226656879008616358826807437598605913178224322797676417886975011871247722348443049184281032837460481230556346088408333195983074856122359195302311101836055476202234178410489440107611200512490424932847110758613488008102995929058650324400956992386110975365421729868964918490995018119974715201317435566199445844134200929637363081888137430430856088756626710976264328224062957488498042599068093069610727166930627240734155939321182082183467141999287260152462767082186630081771103122713290996798784696051605016647495357345866320912596372490095522195803667767839710623938495701611593238850992925767255455643598030055684424818996614887991087645923813410974770603460045367477979558235381004304086834970601913136663044984620977074137943479303082637630093687089012197691512746385558093934866145124163120165318337997260090017957547300803259154982242781946752181193930422593295565481836320346820885000743813624241277470689409195641295093720042398156192606075496647598439458207959390321273229694419786980050517810992557373098943363646288776033362816030629404399694032400147495525385711896548860278324028809209203695044702191044845746971483040748228100505827498588948121936935290190041092167870684864222746969586248065266718889841707590676998563034002343895399247326061778953509533905410168639713680308790386020388497516045193742936227248162106447260349263395428281198706525110181409134103497612843536702860383794917363713411739897832857926672835112910085255035998754807800756261274291050605432438425624039974377259611252189020081973728664536827506035085663521280863529432018338553859040203167361208415389692105702445246973981304933815197594670104083423588834693579500247544294335996069868648806011783701752318334742490929727296396327581795028747836396803462317360262319258760118972179737064518389845882582268550382489708490695637038938888483220029994127809494598622420136423406442548111271867684762480059387504823267975736403265745530951179230762909187178710620812496513003865441055212082297876747906464551838019478951760607293553561333491478671249878391651464806088282192581827144139104758045424599009292963127079317311308572440843027046758793346830730973360017714349974216047942048972774333147225578380432526238225067522087204193976863230307656515070925747754335261847956752174214536610381738203253116006049876860145480422235835884042038231952988388066822858236317100043429110272988652390423646060931977050255915106416668970277209582518964920512101125473770074024569404068044931530800958319800379952161112776511351523252279276897527900693872434493556454052322829059822558865563757080567342451914381578921864082057242136086756933087385787421755973676126031420137557176403839173007917555901703592762709647718550693351783998914244514212517895107140121825576075544600540674007899890835948216787332338231776163967745225684899406095045937088254168031644274255651428371643501070959457861207546771000222373693456572799632575500782201469328923563153963352347119166712036100510071546546864593134250669177535571748305159875829574501785630693173335581523376094597976839944430866399924842672070058226069972066012765839530430938545715973304643432122137947339403238308250698514307257452067863036457776592677971828532614776183774778655297041100860882257611516032128320026294185826618551918803736491113516944676320693967068836031883271112101296767188129640524194552811684503688139261003050056770990200099588023518063911038648930472538107858578575454360959435677919633357415312450576731767688961976110236783130647373675461142717882287420952390010170097299214991168082766320712078998456595494331367900717205372543029438059634942495809942060639432867097731148497248584693195869246412069930689930806549529354364175267180111309660344405190255125759438751611332522400698184606672482754008382250327042110103959151120726706141438472948371688366508755380833792158294319206590926033047953371253950669262297846897396458513568644011626622128045303254620224480742776346914344485114233639702144417060549347699051608193009940495984226895949975756012478545741765952849586513240507763700630601297369107671151120097277374965257827466867755102653893999051579167230812555304845182492141065560985226302136816425637695752270771314882837110268590772756320641462591891051479440450287672431124450176740367352979773031150077758509167503929785057996175506943007454237250085544820292128145678275240607278395822023538559133636248612094781887096250024128004015490855300820065477684789301260778764523551409259756034243835402750072485668533791862186257115447421870877619724307755350187989879818160170766474416433402219214488489243658971190923881259487477116811468224542011697472244661773711383665914676523630232200417848190316882676266862487341024250549459825001020467359517005463213428949085083885412557167025887768595552042465931444859609179681347741776354393010097584958528787196587847422131820414277280885923367345132428944191310818624829846343287814105280363503856247539764877608003864179287070107044834697961286155084642568452857964968240388171038636261604680989783408909086548839412278484317660599449114163509940498303220777504398297628969432057960075306670395755604882016268606351587227531011321695682779006114914291768233482573931754820638528946399496562136734320474166722276480775661849684434838445989726334579896009765820728487732524461912081800889443560449371015736521323144477403273758050445795733213676098758765642365224388018341535743333143896113562318509454838963997794153892705537429218147498940392534119102336188719544381572142680017301833674668249078386777849791061387344524293579788047456568769903127458529529496944179129853891378300087919661026716542184945218249597581219539323458399354811649830708871861018876888487998298706417451970818754133054717544357976532936227459938145528223669201548436650550509367832679324417693811245390605712271640452190495233820895751631458792894901348694708437107958014071756699308962002464354001812996730484264066372972493315268933505060034332649367448262974763191648626170991745144377646163794203727000044958257717833218217569776811402343392760256482484908940611946899834084942710018127011446841971520060965596123163785400831785440632453746793264226652630856799487023266056792624703390973629151387567696162948193175623747656219994851034349154406051575286231494342134432688292408826947698332228184530271702484132903225110359840023795978674181003370501365328659289825036334539075292351283132232414329262163350469227079133126132897888069882629210422959413880839394765237534217244555422283142739393671019804601410994197256890318866404346929654997795473243256786149668643549180863666748185732952032382379221855864028886390591281582036906001057747939894999339753659282502683438985088512283145758501632080312134051394081727950028250747249076635965084957703173163039313823042702634865391865839503949809634820532878748168135940409136322357601969851357576026654862305546856689853989957441257070237610288415280495697280563007456637560702489914574273986481630034787896341458480898210618896691708711213405686671571779213094945313901670160740231095894579202337088562619669616295196136707283331844966798153203906603395574438486994798959503649983719035573356787059806878526492343456627949057089529927686577099454621307503839069311034104350681931513094438342632129023918739613269115915046480204572502808221898048862954396300114190094401541151533472363735227515174327363262568402168750359829492120861288176603906502853056631342837075201484675267275371419988330691125826823968565288230955093056669936706036991741467918730865123924219104373944481857729818641775246287392410963246022623849684508524816076534515002905867026891307846391401261050498400733561666408431053025426914119364782010540112782237838228637297958375304664368531928420629863957483025474003658000382872800501797368418650691071909886916713170521035862343338354638246491240115757106461257559063186525481242288965495722446342935387299374284324571106227736515674253593725559169221274065062529703873816223245708709767041011865987676071257780933108910043366265782981801889039028941045506637442819336400195513028685229390772085889945207363868138720400094709943177887565450547440428937196763340881530366698668737609832821412909234046678635732109256217664257289807307912008884914710140778261139916689702320699650740990830778698870418575579450882952756311468997715765896861670237684174337003652227755934567566224395400579120521452735085531469454803976268072003188789511357361061043997102352518242225201718005306463501709372044625308956257392191075449997517374775919974238057395233362493380868857401341080984988763459684557486676198432099482680106138248557854658207077013779528997793978377757892777495724227352803112433303758519659078876166638649530225283411447731981400862457368394385207369949641091190189722934880671297307241623599859877233170195070339508889480495355955447683628605136248604444796374272146339245619586081963015109823279345996034560667494104973659102587945147280887463981000954241189065663177025242807360110614988427402708519262167963346847525167434899371420783463036104442105011240608432627962684095329693166546411592135129986571261798743964701275742906213265259128429389482332137499254866352202009325974456038087756047324992591800998103779183828445706563250312051554871741328564118173275721749890570998861013282171626611701987831589013647429989745333760860964013408892130391805435608059764301800564542212484948614436176587304019711314875673960677527484431684173088588905357347864777343545294621677928722389015233719343493493736196546137940303932772449225560030014191364383775058668539872941037366804933156827632508374588014101321530936376864835012609079468398587874535672208429268570145587718231240693131079406553781852405868809240284406768218149943694163546229163190472553126177582780687420288166146374344060456158994407150357447813074395375987864831256236534051322407137075823834135725249427255755651186577342940227896398966829821029802570277084792498902753751916325129781420975117126122049715339622815432294559838282785250701330143959854579677565146976266312287571117813846595599691348089012568372681802995206540672330815095734347090270068317096330575684764765299172358959209802662733550753575507668692013230619860211505589307887614273441595076242765472510102438975536650047218104205103476211354749577664771105850505869297675202796508962852568587661193717066034463949403663246304938543003103242614797549289145913105302482828639712814594499886096951727908827514433396218643374190724599575109225359401266621176611897698619365934601990688361429479666173787120093524818245680716598508421734387520677738409085698243676031244283441800122534829908763038613145419956810042187774227056039026710562654486466551968328783299062532624332866397429027763801465208574945845184908164801535687023584018499770342173642192864523988563920701882775751014794914136671036914984598690668349232151599184166352781235782574050727462733498093342737339531737471303549425006882422149118653485304415280801334057668308247765199721300259023288867996487419913250046925631442874892920468003112437384626773361195005844237716883572096099817280351569549643645361840790164840630084799946624720731226094814152906621612799378482028415857268051830198644262982112721896465356751453305317715767161607498370340369847296562822629104873062318940420787410981954736140262141561217398946347636187682234031119416595833693326291907203859433326323509587481178645238662720111322514493475213589222608037533055675972878851876659794537622406954303830702864259695900648650319842684489078226864809920413793189267507339919576193976412240171614222792507642735850064278620941404842297746208399739173659931721365465299545171583456173692775425414593221018290937955194180190128767667189969841751131453960814176391594232213760941266599185237751043058512462225497975027045081111924906350490386496792544394991535577401056584684161018833879851179158105401304393752003639891576729959290952094970158416262682055211350169919030890549106916559540515418496658550717168097270043244104224726975378276724233790463295681711839516228565702904277946367101779639676936499649728477664080918150872803458189578496638001651710163137728111437005597858803544336927381093096424131051959706731054731437092027494640147261633894760829768539731001196820257959672311813368242331571251603539305262214781882435026906124063275448952518236839870068992270439311271563982235812114887576230063719193999379595702529789721010188398211722395288876217857029168142717206691839557611954053278421434914181094756386488530227386457275182014650440582473186689688099500560204979694121699246068011155454517321625416393678041258207133050664556753855807677258642972034309018293084240701894735455363840827669608822542285265881861632890935334617080855568350072729263982117121515521281312390234718053168717790737627945822214520082527130081059420031035896359802276314381309745078968679580427515069141354793687019751915314051841049037205797274046826628992300669437759724930921789206174944507714849841531400614617699559957292713672987283137142812560384036434194638425158114334310907450840463336835222530849781324282309428962441052454988744006158930065480728628251707193638308692472931831101553258595848695831850338551882162375274262770306681635161966378095247864206403157622803374409793682362588164772915054280397476151580692391053211278700204296331400080478479359634194594955875569600569070559246508704053033654654631479851198543773640243660050463645177521646547613356466014889327188838451035866023749302029474540455390125913198084140700964779655883449481685420324551261330760754120855181683416149854770047802033241884014742861474154191717040537547117024417082060816717707367477647032000046677049839198843221003026603835492054353009432774372172766046287516247583094887569067569614316269980995256569216624733765091935269243468696497031193935408263554063767077839889343017582178130617967932361720538376308233427688349481783374148842476431372367517567955079312364433415569904503604973531419857320302873429582487823923505467616850370201773842450755987304028899666921852896475280675313643028012741010253637970029551302241774452717488752890177756814899352049499004388758591740990307483158405394675609550886800742706832857070549222371607780346188970794208448823201640421095275883622028488235519574642408117467883940624490861455663386410283378638598154824870529345815090595685648470361246013177647639845850993387993215084741738978967598758355204658040284287722345048885848871861174846743238786107590379495188125041772578162794565543890995729554235163559032502055184763465065093277489440589870884533244222254780609402600861441231797720237370613295490580049297085867053596181615478382124805600335505375466921873375735358706617888651362519242903245937105447838727642666268061109388832352604193042185514400725885820519387059389188749028843377011912715551744929165773195060263071529402231192560341745906066995327101380518753239558461228437321974071220949574847848438430891929217222942198477055097946023530822213098886296354234626264650195042660524255656914558842962530934909085144881711394241685335480661281449176449672226641788991908725824675422231370560925132563357326369900027109424773756267165297064226751965060118886153555148415971246104087280112142786401982714972016974753045934688203236809004600101482664346998379080638095430450789227372461821850106885700078933735975501586941080750667569842839962955376046686722648955480419221794104344941660132251901466453830996613800901692684482352883298509019785067800244195963423575091391420061380558154411335246000254320963854512659373993944829167030228059227024321522509575245218118060989229091078914312407427533600189911180632750254319807663989351017563305008697007739810981364143843183385976346519769201158060730799103244239409047814052490805278097565862746226253338823097821245214166024406215160974111329080284392664337785201897102610243972906226231428724202426105057843041464106540901415578052748695699754634261190859805009179783772056834086079085707898858047149187129065927468053368803068589526189104971990051102511843446790845980534356800988070864317420558253904673767308960040637051119257127983735591042449292794888651533917968311878376132895617137146824731918812255384844947934337995449549705579908512212211291733818346949335464638537556111744572768583794735790519958534074389339924580922879594015313890055263514336407715784058811565973785278280866029109781631973291593509899632935439868277573396039511323035342057529847621508889513495756828752814283913066968749756567093646596268821847922215255433030414286530940457471225944113631776272802716393589550921590959259766581709740060957827995889105702608112004549272990362460522672888432690612269688123124698383078527394609684478239065907750964966124460393703038023924274886527896065745507780872855945691371161295546381752172013799802730112616645948918336130227173724735705235670013113655086649710824868238522161392552214174449200669782502184196865348366164364359264083832412247387091469289600970015107744670060168972446317691088500098743415465724243654311976036199540284348781558424296981454243920765594107257488040491486167741349412908657308677043758263217665943780944330710225910744459213368819801868029696239861197358233419272786464105549647132031702113925175681536167551030174662322092673661419262664176155610568751005553234873375959382328748439237092472995994518050785680553500313281362824792171882201935765623348184508182941324642012516476686794735604506960940798842416607665667721481069266330501973715189536622050416435407570042139743443539044845895769494082896572735249871653597756898869288981015979407076981615859699893792727504048154410666878665861012543616830345986737280451785257445811264803072060177657760776620583476761523198623957309782363798420901752781642238443622009104109354160257843959936764215847968520561645765184422218669455440229371757482695843983011661681610650225760464799512780583200552684884848019895202889125909104238729818382051388962339323291937324162443635076013827260578223593040818427104863570058709558216286472512389523599815481347546525259060875082772735588886794899798473005218823522138011163908762211501094634738718454336677668536624717130789021505213311095925541983472786202774328291614969825469272130721608494722789147619274340669470739128696021963953748448286922522970917950956226498006549666909416348855457244116107433957943935530454478039447206637923269188095516090036027366858312814637701622680987522805925585973028765107500157177727675373547713410865028422835627003487375018930223213096615481944395012234522864691713669753477033695348014765090445114839171692060921186375172312025826377945729539905141247048663450506040932715925164275448959542785407564531687298133944474153042181338238754169092040839619658205124497048242711674610553384972107473137112772827599894923799932092276887341636472379255009675198981277403400824453888468698322865873809751831573926755846154539296593270697556121439626627084700864537598452212249279787040193808361908333762533545159196701843106615962528172359403801867494276665302997811303084336243192732678010859967170239928571903434904717877707899072976714064254264047285777205679595073749341730542773907213333888952479841104533161446037861686561141047664117823202310819529723711237724846427427182861913219518927090342251834099910426962498663986700791041341449829251659392797878038531568632398586865050465081721435974767311108693322515879030479387342101982358153435401234904558470923252158373377531256927036138754869607520158304141420229074406000345601274871259879231680039880764470715090605213623838748068946715692247960125803869679905007208680581509216044415118848725417670298271479940878090614324142473295224035900074633980379568043392477564698361697774603036566088786126587333192138314574415193675338352931289310193933807322565220901459241986854042459264153030043449420523291652411695777676079270947642009095571406497599277971840937162949850211142249674124730905414339767141654391868925764907119303254367875483740568024427074661921881629900618482849015434419669039666933348254458579489044084980125553720836460520922752103349081915300671978592157867468100454010842747759171757611297169958924624314065743919006154131456372932417147935159381491519526280164202627059565568128660201513525655926171442180375495769064872298823698096866118372976192249455248641675233355912168694153196338830588409906618935430930309711578725798370457594305052591384216290566855641651725003359125934490026224200837450017899807498919723010525217126255472521603563487935206495998320273501874810448406496748488312151799104679758325853737768880003719856336372273203979360022571411327003779031066944409213450205984367451033889607209714118958246061626886625282178552595522836218086935239704964479981559306994988661425895161555667587040778801062301798771631685100297236741901621338598667096349162918746886052544692133417052341422202341048188598213322221195584392935431037701555468195237876963597707919220961735646914158202977545893493217110590323060844194611712823660368118923543694850250828521914792505656810049200706897319386914655585999351433219582532828998814522973494020245753996017979141435967280996229675534967411169984419023859608292617490395928781162888869121198261324979475590139320624161430328158581596632339241002437333720447172891578507312655689316454328332712254377219046479026160690798679113833132437418749201436409341415675079312065064636642443267177296023584530947113486647706639086519035441219407416485214923878171991064496436123763612821207304093841913083712381818566348616529694693052667516990623621441108297999804500741628054264169175858589660414848054545211153557024315396497739275547137391701550172287093087740187208104263141486487977934038455061478325139270159580363240654208028049387885868146163192879726244025660866587595799214617911860351881370490557784418287917072029811671026378806447549024959211589411631837166061953397371470007252090786759188347453263205549726221537509341790097031196104228281119614707071192751625093554190275252444847396950015779405931141095805484288626645891572799157759272815830694184570914318669795945134207052030150496672071454507640268070662456764782958175311622211257661812247715482458577889193167945726030398937659313276569403438925155235040964376708296317718154106888739724642809054823898041591293629876477747234931713387531979620576139793151117698867500032982262934864424931423056675155523572780823176938119755007887610744999657443288314274381353368067180547765077363434820968735823810929490957219131953492388126558744685087883870745343440543922893663520710379166475841216699235621650385551432108032212922660880439366278555770814618056628853473645832714318324836899472274684489694591064468433745595348743778886015292405750230720290393725576268777033106356585898654764082148570700627120563402857930967549943597407510142229850601847712214934669903277008826985811652117063798636104201165177776829563929979480538083769307640146286945555809296733610590596734739015112346805046662895680439409864878172945617058722008596914173344336907048225100964646026447389120202871887389812990399217184325801596319792802954570918473012847844042302020386637703966547239661290977515120761969105009305385021208992107100578305276659748781702105195278824777692598697752091183800221141222458597426149213741880821729507978299611441273670757102655395053780659582728165001183353154547236049814639038585482130134071277910219719865974893146256979799223494976066206057180177946510306725147279775180698203711945363173647454964393340485460280082056427594024741447818915407642552001053006037188218396258778077322416962534303428327863469598783409969473584129690880627596604575887671311546403696296122874831530171860315801744893386260943869558576523971042292639946389387327980918504514330161289285973486139478055031397160194428578388308127644275330768808095764730104483688705707724174391922441045930364594264466509674342214837067219628512065471302845428525084513100865596632221653786075516857673316183810186377229544837368284840013863150788841053929636588661501708253744007994509907271255291406480194908210890331408673706748575951588086773518932817021052128474742914483799009824952650531667261912726345497151878252449051029243199047153955990830840870082384176895555776933296233867048529187378203699186189712790546292895524567864378090008286971473407604888306257875438257006874201096270747337751650120041308878042203091838787637856303914504405255668318396956370440426278666607735805858785960983528438794738971208290249131154606771269333480961438886357981742984376385912416662228522173240829904632432531995594473629590571111013750393125925432421570345169924217469924570551479667064411949035933348100059485067666450068615044224761957301417482248504664608938919468064212744632881799625529429967023176981649957685890597203677218199337779436966455078306902115173804246529326427692874452686885887396534484740397551339643325364837151457629259880939302379651936153333395923046487849868311840089225124742332513687311134109959179166606142447028575615867920604779840965005561735078320600222813536426862884738597446652167054884329334046873613977467002716880517662611382635370963374079023875541386887614208987819100795165274874678956875386392965684920536151489135743984630694868006674998865570100291865269781238593676532867524886393370260161490033733255259745015834580001692875884592641868543444424234697348636008827778352374978426903406509227286663206703276175946981546540395053521844341356758377446852398005858805355400613213819546991995748556368642069618633262492337059471823549328555296573294630026704176572022940677874780913806897570342683401159233286180920053225092745509902049844553473097159808728285805534000748687627861450582222373942801935223867357443719695922125796394311766739662034092480022488517945518190751548596139385667615180130627064656113334465453712568163491756852123842877925747317827136158976821123617235127729890096200074945864528577621770161832201423899683465339244134040009829565796855674481337933971404191546825422897705504668037487958167231534103070198114615209220041008079729342531205687023283593629848726315574462653047847537488495735945791963081052042969608479327288172359274416374263219670722220081522543601237744524987447495219086448386299692687955207188457864536153447759350520732344822384091526182385219432837415752364827903691740170680350784459136062965512591139455931602534928852019119341541309060858367388132606039854571797821667409246255919422423270565370580759389827792584797939395881903190272730970041981315111022788863953864517769738535953566869046989119691069545018615756098377743981490259867956959009767752177668898608076919394444784273194169940836759925902194370451504494701291708694641492830659608865693155227266156433353167141896009356748009821568386963447554153303946421925062902555352651214579893505246382168006343389166979727868893077973359317058689868001831129817710379826793891577688563665617471539374388120447335077557849868247252746317410344134584303000483112719051103265679506349267384795458381952739709181271662109629086902493224098738254947598795314346483260186778334567213901336863623564162320778884429165202234011368496349508228241943596233973662097245842938257117569812786877394344457327962369520567694209699106095800224421124592573036116511888571066497200516177776628311411379709492375912465897539215342660654017866989865654039796523507871057111932278210925857226443309401876775110782867086322539148850054181179336378248430917552773940829707008347694448491327310110213848460040724298516161263909507162969532831503988578396464727755372704057943299505318842463659177921659298518037249083494531941262930221656387431618846052287814953384693836695755612075989611073942575083312118213702201283388853195691188208329386410439159105307260451379750450494648424488924648469953466749901275276375564906213185526796947625914374625680003613462035924838418704747000471166244357797167306826468347482327695923554795046925325788514319919988058912033038931682367732168863621832809333723249963162417301159077081549587865163363126348169300726492834573149801803322119991150705174128908007445191835327085217345602935396860056429020151767387568220155226731547245298386141971732178731946011795452515875267282910802605608038859828982928986558757142126316673160574390208853763391945999709742971830027846121326900764892734846896490343845150950014344093902001662270686958836425181047981205152993769033301586890704113744628543858918175983199380184698991667208515816036942421658527689889824068619655005613505897337289512448369595734453495733006588675897458275813409156427880797242209994240685108649042568182061098506294186196483864586645694570513189184933605527109879148229462552191369778113050608451885394403533675654591241494273637765790824232439140126866876236692325610010430469035380630541552587685827177759680415466513219060237679253526019526995909898487963799655873039419373252321835641015708636364251123449033199606077442651897684518685377956559349227462900601909231133325473351131050564543648968200359502510139087124432319755756780418449751157083247403135592629989958390185295170264658157809357480163072140982530726202880529744881672144076131318353600239551278290121604853628685054795941676368686987851764737780612134085816734778129519073455564814226697265094587554530560208284408267727301482996494383150837114422611339898746152875700260985921166095975202055372147705156113675253265119409049592248278483470777902705730513084392217397563336919670696958183123816210264771532555194745276995437303213993293444756834253783000719220991251468581964416008936237411971933311053769997989149921207072620623515723257249494576095498622766434167265904981596506548617759970004936200551655901609410468940687314440286122803803411662363305206108237193856887016313803243812247513816496021802134511810116935211330589306975912434434744105409921660750210535822444209935383778565348708903897716227546169360743391103464779655082845449842449727213401832336341942308638820185155396452967549718238809264827352858893680250974836392791470320966601873396531011752123568840853193748298305811652649018813304657821199418057268063166879445265082240201984506343731560649253483001322293258983395680239883840002445189072618250534096891718049885410260272190357728996225491392269760392481945732150889133926356003675626795388920697395106137449433997131405194871046855558141051394046034112518981761830717834130353935479646935161167266048033564841551047994878061085361494038834943776489550089156545017547445510878133165544795209136610401985919632030020412175801414096974725114465507449270403688489748746813449843515630464842360001124447511729829519863283891087661198504675958514727821407326669582440132620895816453332231719790344373069967195167587229129425621006814673142825078386910539377204553712329406715019511658135531722827055818590794765220822610650918650523537348843273856504970447956702289977962812432970044033962673612450661479663362655748494763337761931563993036239042574458495165969782367645871674317224483629972081178350867500001794197591975188700295052422363498467340891780907014931769335848941224498174826075134565674092158485986834953435512966414435394113250291284341905810639148517194442895918912653125899990965190729421801442770822763028103235844619403091557007925513246425913840941000784043686939834304468784387816866797897951047908379107702840577637370702566239901657075556594311241655087597309816359757352350158187330236069819336013446801251220952374546655926471844020914357716157241340928756338869842853910916623950274039522611079144147016388338793427900094730914053085811856135598250305121648569365654699310772637315230684408445251185777543164077566476942900993946345483084841014519132217518781848598229393667527132866229872404226934796801349105768279108834800555202914042184691471412893544894836092057535274735781296535570354266864444024147768610808245367785808406580467587859153725007612504028639624219269503747037405724257929087847514056569913121786113566698587054857675179034380226453564650528838295152456197545144693807027988240415919733084177752528790445901389034679423565448094013083102378470448787334310372755047866850989891790850739007324803223451745328454714817378728174310809136323433132388583045989394149003989426896163866760937665416894348040050805323172282456234914447162660540247671886273873786501493352047203113910170912805674289391167074695279582126503034647063906894963886294633145185693948029620111597036992744636915621413533169842795376168557490538412188441750939457753697401100224280860362739443178033101635772828786486177822961797528471544743568473497064586546416041299836671398386652224106770633322263078177282729126537015444341548307837306558479496054125354951238141880254303943273383807892555249680784402008810496658834769912324957819209660969610392712522706073190073652725760654669629931135629682804193380449131730065142972727670266736416777596373358631997208804854814072191136512664147596371642216665077114857505060002388869638413103386304765401454448728648540594996361341320068683403462742579203775371895547084414977902756008806841662238844151447476358369128889605385849920957435556187164361611115257603629589882530204039548982846856314138184838968780002306512820595766734437533089066386133932602101354826695403817334242190996270463271059529633502682854929412446539050433670907917292613568706424751273462430513498667644151208018415076304139660705047732018318518967974916082219444137061930883850231893320297048599896768353187196285026758726342049514414506130072770738286618131196338002217341099686252935395404097827790805178604683294725743802193788250539466886887692243435846910431154278480034448493077608098361653558420486022316462933062695069012899601617265922375325949275074158918264147793559211946272872719403841441780992213659260699362261555322183837143022296813981976448181566847178677602686880306665641105136855623107758062121847472361529027679831102145421742354697960401810729448929157491759496247987440988890880532394332998617536221531015156816129760138715262951284824419029802972895765923997191897873869495989121567086977730603235124493548239641903126359773291076038915622414135578588884929736485829997156925321275595825311974119757956577760728288033505687470970084183657902371062912438313833018713404053339563631254710260671496441702975694514273197981868330494323257424776569940837818994821288769516277958384877068450479056845864155080001588308390882630020702908895111628738137600761468097301548222982824087722524274605220667245062255395267650817836619064846083014572648944080184367386959724966560247431042199357450227524324197181205210483612146809765122505073012249862561505566409237250949247395385953046562870861351752320056029895421038199794430657159016090710787876628031086149099577764407326907776918944090145698577964211687704263897127337096715097926530039323423834895068816742275104172338972511831770388611293801974066966704736523551893856043812494159338263177435855616146656417804404497310710907059257357865310296707712526527635597737242960074414952864963850798569364133157312629077645375169856590118397679637921758060444548900494322291932248437057222078257223042762009129031573044114902821105881254919081207251626739846612305396699313500899267334372599890349719081072094962070857973036542132447533998435538380068553709889581125344282677155598050616168952039410301820761842946456295957800091990381715430078401870944129468935516481503139388623562592269478705164177851630007452608186839850936534609386269858447844371830617434785475791813595394298039770369144310377677123495756980632253649866963878598712890353844855032250664405646334533844428995934911365978115155474193344637130519922068150282320883727488700262123021758326966145779982636147114727962183545927835401916504967971782775076895554650334101759672456093893060194113974393116142756662075250099663353348915296273453861771418658796614906296923514562920227445362247357433497091226023672881746209248951425978751930700853271881372650266411262112961281338652070742953301084051975639441624581517856377983755029054707526732673978104741108262064977126755221957928769422711995467524749562862953103524994621410179693879407922842971820656901084474737990484237925567282967730024131749588125796142703369807157420840316227199103923962056861275876264783429253930684039211535504206056677397296867649930518531901550936416619777811926348472077280017477513335515523275974616858124626841330534807376855406646229260341829210536991517824517673387885990490508528855311989096058218344826536476679829194521320071115771262250843467162373775745570652054547265807561102273604058054674003613553264469983919446072461642975803967955152355466457638125935932401207398875195768553249014901667305540383373210061349494204192176345864624334078790583076434982944477367694655987423349667488725398290317545153106673254601865949854670915030244225690832853392427007683946858521204272339733058479544529312291784520697064250456298952424442489484024956298777850097654268184785108231723263447967836631879653566348280424350280643570761073000882812656992789045849188110116916539682885790749149064255164210435400491715456016038313553649905665736426818762933696745733646893583025321576698774211213095649767250015966302013770891726918622580837779465114469066837866030090707271442011679407006892998070448833023070637069363556483257680131550363817711185923194297372957871535161873524881303269983717204749462262886935848305336196903086091324889582315060239460733072344455257885270558828894769986402173989024949610170618658951681324237646118526844199126678997188883723413094600124791585384752872118557682953899788529922208629431988444371877125339183327983279428971201131130384403617886819061442170802940858218784357673148357716960332201000426746417359557123139306385328001514553314529464939510564371829644328712016945302852257146649307391609198180033051808936546423752501037310279609783247894893382152177062222585114573748399187144750302100345388799927650264811432904659984317843320335478374905196716831970525379190529698448745510291295216229297898063571839662251960076241774781181928702055890259695245526730518640192154755140467754158019076851352162646496207102039608162585305870566650556033093518514999769457318387463222348080621173909369394042539539108771650057661667467478690623142838052316420807062331943124256207660007908032240526592687850065467896727861727124968359300056084388755442979481741448747099980915639039998565072163443797994516453064753611537361446808115507294603410819523349428416264905628253272036697338349503691543107321735446838718827681265802696813611234509453602210671590655604102721127103541880594667647342608227537311365755737239596369521737241006354811186656661576613205180221032426542272765699761035055599929890009779975136368094396503594515212346863314044860373876782983599502444119011554710302425885151604864112824671326181005242441291204643853336382839193327644132289754191784714015976799999950219212570823963838353190690211694233957269237367907315163219310417917244461357843306033232446760481935722267691377786936823540150546281490028905163849892504450969618036555626017231721139285088217314591065200016633997692069580673812178272414885275490649690953823033477786226632318869463738052450660116041403628572162943143303874727040440930190234783374181657047464421799603411402238651219161529808860205581149471691698789176503072627164716087138988405259156214043648982406838140549521384071528249943545952754708444738183180352585394309735161396842615502884603051981201437651887204213591160880473068914400033174172650351781353339269717063760173597431583618879698711945828685286989202110850285141612373526440495196881858761415199240143029699203159876534341815441606448588095415374828887812507420815709737953483178928506695187598209715848080239706767634161157140156411330672314692239669588780238240871959984941253390021100611066401979430179299926102348187719616778650890351029539987985666415046090937928951955502596729662338370241466310604515154518253073344213544951940303980084698887733969960163633765747271456247875353573099332951143579733095681456584265966504989204993911870334834841842708657236429840427148798993651828800040157335945340295678360652200407913616291515320639611700399902087904481544861764992504577168307524861671048956522764007667642786305593599341890307401428174346010018440686127672879013358187128352485794741571893766606437001632301405921920692872971658230236204447713998529287999268755427420254403977661622457204502321093656680718839708116166277560342445793459774355200569983421769427225456694637731214421703591463712123249472192729149766465914344944639166323506084640466950683990986679101206251774304528055289679878493633723227765204439408510549038790356724805946135870572463404055454960939261292959158070211378959284974958348647588651402056105024736543697583093253770148256183573557873650112616526175628043769964258743342200819471366080454264476868749269373917666343444601015682382937973369602228325119000599149088969879578708667501372854300095958159023256201630396497026472036172843580208938543466687289032309399934687519528337200349475882723354897898847607489776974585676045991309557773284266734089971827782737448995829810555388255933846366821029258499695313619523545129180089241663662284691954189973522843283544908470186554278878122223847896419693426561085855861487245630752931620212245771563021489135952286271033356670184099304744747921617748204704457875465906187094455059621570692524095472011474547073629061469572620869625495420979917337410634658823412396732608904881019540124508918499305789763019587817618845278236332831765582251974523689270761141571056884805301341211538164046880616483604712017343230981340410526262224707188216279631148467557988280818093963180770045460723561124653904061781069394077775087891783933434869542417439366327770894433190986005897686044501468894640770522672728511318027731809074732539473811802460524012495662644583139642553594526176204287722950598886052251289650224033059678534455076153321288024922899688764905877484773922645620615314301684817277817740598640492640716220015736530334478845680118711849691339793748512962173837581813737401011794020339442203937802014060325628703958685661342596387983326992314344531237215148350873131917295022781763999175030587253689956273215016689693638657392914682678291853786464408731842728367913362785378782338363903067733816657784988558551605817963115336061725784847660057081680249285972338870359946004644314946941389895486494545556337540338464476458965784099954918739530907057135546474968898537229386370089431310012649934926181782284078265110153916367734891302496989017651519708006744144800829915404058501453191552841922004602940749820083639038765503217449564243638830590828112728224238380911284942043286958221900865259407146056785269685595372006952147268145891573820114403603829041542458378120122734853537406901273713184202615970618163653447357487676393241357021835519132761880409677928103387691853087887006766928222885377164787538415665095739827422764381718864541937494781091934175032258903063469015654938209803872601908924321106287680373341019393997886906017171852121620384147571219444021026831081022368924479095129143919971252355179842230764758533922845778084246376308308426810058023967301631364439130525281047928070558255535513219998448523910573429404988989658930789717822314063210914066556311473718879498032234937535921819784925313379140039023837746884205202319256664908333643659153255964192985936748231556576149851118853032410260010585569943482766978187242357491952128081348728359061561807394532417508465474983409505141110287226540456071172120218049455758707964064986191704828838614764743313045023162363404984377486400557093398651114864697681895193849817852473112966918036943441510107537870699636472466450495297997296092300661276261518534749562332059701371997710972215902174929046661498709668254695681477195744265206593813656555660647996872048354174138258913909662906012000482739786864750271709180073512075527073262605047882952055858033481868020322448480506130403762109784324912571769544603861055226059031813394198820390719971060913384255492577774037170553246275774241374854050404865518041897647552451384381602866243321528234248327336646448520574058147090941499071497503860798289463648691481387015816454707480592695272890460820345697258742331347462346475181306619535712266191184015245341633687827390518164016792964536850169674966900558852413989972179442345445727238531300297631982465189134281176704184244261918509808336616875836067442570695358956582796615204122234307308228035689514225690119988380720008594461673091520495171398792050021720777369696606250552305691328792918196067348200820659694609632346537892907413603695220826722042758585155724192352616761715769973504430490130218569393154196075911377383502394876427772697565206058265666916525237299959108622715691067969998479021422364380479199645484378344958947119034386705919005233700739249699384993088333970817462055086681401337441190110480457041408038494500641949753997050228307165104921860254866549323272807317045927122082788799784406893606761345727686217973963285824931339533732437088511166423077310642257991081725654195525231790610215874045825001328696140240243431117637592563058581884773785419166531718037822175788665860772257949957116496003525903424943872620894404539575404052237347500909083829949678650447158696354748762089582460834366824729072635495307275525209995365478675382709058587196296082346511044429071310169821014520669150561501664180217568305745790845524483922591400572481358668787743302924628690429995271589465584463950781716697776888193541161234887294504193346872253020513053637597882585667818808692468347848672978255028383743463646130741822188089653326251289680443557641646311588372102633008919059432017703162143215734440523960126263686549532013860304012524622013356608747978434415276704985181801600993550585327801066598159066417403609235306424648302189965446519447488919924727970296562943713712767188931061386059538357382929745955803386204620428962270288476854712413316706301827365155387504233421158060941527413808210550341885936291321054185701050622894837531010436529635882112696354659506915205101770381143234649228692478886686115406509014281803165689518299856213056238756539315832716311706534195288832311728306118878137097378747210616196023412332888935411127814560752915346299380268645553010911139256898850701916951326403062999641900671351772115868425830071679507768292433656256608874006563177909581744868609103239835236271592270941474219710294885532590548410395582129243648207317421261080356540960281871999527128546810693475688594576882205017759764318870317769664886578925107653217065564203664854251103242423413123592418509787007867372092283802832939935623208226051821330867193544061635215312402318010357017853624590689732048374736553309897868405139986720344596070152848655699415507594232723608667538253651241473533039197784110610138813335484177873819510516292387252079281285474915779858255641194429276305164820059232212617058118792054077818181316587395195466431229682239041031708016040264398359254839521110998400138690633039109954111934868821636620810669250485272528021572381658283428385556868130689836165968928594910060748328729349676692401839904250782598474878017254610276945655000134048437441078132766553114138282525861304130672723175925798917426359829854167468513718192652141051796906585242068063210607856313333060587145512444905813495880468272502760019619531124629894102095391385228873876954141382768644408268863701328576195326238077173808322638981417523787830780053013039859649781545032846098944794940149033326084250090952083814716269697236437676388051802802781638555371870858872274412785561139854862881587986596763155153693941500750824234657613429549939550126565735971321792530053240178778277094585169344258127020779938093831441001730357155121193251990456945726582989009039848257595037097186570802411790007936886149120929857710742826665075960612882772326821943908499335220473384299671629457939285686070756807040566039496391079996502781939816545791237989454531274796057373515051608188903094498228957068849996303431468014617526664760451048770944933539513823705888224994075473714675129586381655928535157936715642022130282393193310238371967305702875401699077582766102394171226352432277942549908912196286524951317759213003313076967579662461913076415326288667004766153664898135075874913988383949440988624769446812527648597212203118321525570642637981721233756045957368318981309379638069748941052633543053898726355076037417156093346442668144566471722232427992324897272807775164169498017150598958510457410354568672083468119126153577742763644738077942590096741760145919973035748990531941074366354487894601903845893121588481626470235343372352310767718692470912674657218703395336870772233019485116676244198556087458601772196177250346810176533771896934990449760463972815907181953715018885863909405030887702202463213993696661954439351317281584078015011616306929687076191318203503515617358535096884149004977160326259083139180473847400351870531174174690760751773005956371863793359713463701579869709766465230900291830157452606152108220474907781984981785039344334255864403798343438079964435085455581943349346462707254110986585678166618376230376390420805841583678494878421951843663332190287643754366348237262636551797090127372596361975447793786266566880111950830095595713014095107065934885957893198041626400685261299971893741358136295420180545812139317588465452033186396942988209341191668716368552649257643968177711438810190193364563549448241143432970359888407407908408235604699678732895490531300559577495073920678975861113183600427729820254334705159679855458659687909164744198825544431443017606526101055906129515374998590065058445591197399909459766672812057427890543688783832104856686764021242666485398141120818284160434611057285564832001400882555670233258423535188939551666323366844257228205577935286141692634760513085248155109365158283948208259515006684349767212300080643753836643860943378994958601373809594228502791581776839322126842150139963601576018703302309310184086745790963470974119519750368299231733304403860191391471834049380704742107023853110517389845923663424582817636825763403801156668390256576826227462121964007572083143406295702275242909652634692524048006887417937003713668794088590403214856090920821219746306915880357819298273576634293967814583718783065288572303817236853585684503336184503456509273685675978145357536447934844873905852127835935288195479453865864996036357530150710333118473202672578750239284207430757562485109060668189069469202383749759003274588883088856645625695275357528794902275879896768948398254400048087145051962034122060494169271572834663314562741643377608587438747346344261357763817559637728451567603138722977657030229998011759142668181943480010310254407929293729062494705206840372239526055042396265450151562252925073766243213050854267173100677865146638790991836598035763975206499901881063831528661418851249760795810957690042436607202605159044458270770465601257349272330045873997051002063574707622631149745527028561067426080446470949635350098096844829019892285040822607606868942823973013065774552939131848588256944321161029557788423156547295899574773090742916962098978960297791019425669602659996040228970087510718547757596008901251756721138035090385318140429205560671500503088619570972208334621534441975017102581560481211314373527351878789361882096997805924902498547437502518359032960770970102312650936733233428717872214347495808709723910238156715017252413047342726210618704958572472471341243338760558977818289897489235656756021900726341763040751696511384443273045555911744943276043966473749199618572914271257401189204335348951886406247445362190060961813830942767893841110556138680249780351356058478559015515369547904919667467892718836746150777806158186150368847788377778717319911886072506726557831123396926253479376701616405568079272176526662568790567046451076088419208543621640804789367247761172339260700548841182643574452113854595558720182590463449457987605255452805495800665467343910816414769852439904959499911040933565140305493645513512010497709845266579020971280924414364690598322141299365021775599135759681135040435572439354410944449141453297757840171916639596767176886820246926660586089696993017988042701644232572715636323887235271783077164546144875798363928114656690766369541290235884233386811361150629545626164775705405112267239436975160301615742535490674397081790498879185855786205955794065450983949507252249127470403340134187825305302516965403416489965035551768019733568389421677553059932243865335668870021289753779791049965638236694835954870233110956753669726217885220302612663618015240405661857299674140007037468667522153875554146320113888519993883826531771904392740515388259189654266376147211299547589893527123275043035425283239090362652974369201383520871271315340625805485647066795409431888771755946635578373799681522624962032488491367042093901123955589880580669272942255172918786732910716229650488056513883775247067711490498501772389293943437221130608125974987977184046062351035846231193149209172295997197958604615825217995382110534049010525312353929958438847299684195714434519230210553786881471899872954864792639514155747008881143731189465741116537146256674315581214394856558108947131659185717215916393851073665301032632447163389601239135847782734460772518971973974116289407428071010685608680888191767798351613696222575795514976978097626727499816773868308264471179655753873823928303570403476023648331804634460268140568522291453492225315362238977372599892645614668809054914891239635801780898773230555594071904727072743247266800897373458888670687385653339974156375420471265713979640502201857238945747234786424515347472647981553851947724207853925422398900185335772883544279729253415822824554599341389042064107295910432983233865773293851686741457332520866656239992374103803389577924470692012239614694720532887780592125161152258206042180095504540486084402140419980477852918179552165014005176723443233184228398184029990090222366384447062208177509068378490046141263804595935844226706398702016957801438936241038450613970438310484914510871321606932497183452482927150517921230347501395928783878036503435555871399074146714977029693120023387676651720398789437848143452536716059811237202263215823505383369876287112601261989083333318760968251385925251506673413707554326239270908051050537433663942945716546303392408391351578324209430054223454890210835684290226127393002163436298037895883659231202112447293882338262888039776651045859226498950564487660751936392934398555771321958369212769230403756628763310799491428034226219804188692381310791913721911388737130928717454929390072093723011599473334537331766690828146974658214255523783921608346512405902554391114445804874823050356930823398748391652672871054642037832555277973284959916612909318969743874665169639981583009335793392563034927110335131990535138508156189046449325199057428811876789727584561161505904405930264187644439082895780881690722856852198559063506740409722289026320729871848984370488095168672393620029758896439422269483472368723583557053557478883860152557592321407752757515787556299375544202991668967768469296502813210668022684081833160392645612032907046172586621780333925456080952620396338267828302808506633901964301503888071549105680066531458800092741437957961721697948604309571623286704179963188347784527505867010669935397557329661413712753466879483518187919475018468366118953440199804387447737082216562841605631458214985667498451983036886738417199458078825720995919327541275098592797454777276365412524655389785830159561601104068869201052319465301922732691880778303706653027017183529816571978981344853544202052782438535920479771165751134106096779862650761674441628956674509814613226400732325746217264528112853770524140233212577631546981487728418482109069156355473605361072141709497097918649290294116722410411572727525000627340937592166625926570233273812227754767883348513796409292230127946108601614351827113001830716495067987614894566456182223277629081891607985076939838340601012508377008358962304446154327170981415455262316703799211914800871842098027703571651207687541844902618488578400994503178381198684696380385766453518523400312777048807786188385479933781868542605987169776387569767511793784468693510871119657941473074830865459984416092046844571122891805992862710113286281059234929833000069798819131640333723781164327943624946771084951799194882484407316348871696826642455943547554609399402268381978428000422141010180781887628802305223946505603552269731756821182628838052000035434971160571433205748191485208717196594638700413941789781939750910267746260438906262903454366247488942826151971437300650004678813769909225500076758732131158499109334421216268274461831688130139338887798115925058693870642577070836267977599489635700735843753980023875681759315764833581605728035949582546139365922189070880924886583997269928834554281967589041555757208395279996559119445904104501481010465485939952311598676338898070463384889842034952022786836257954000976058464038800001921810391588524807851899824129352157918810287804871791669836301372253627141362648554767084045544316508694383368592359748534583640152960146452403331439723137786015596405202100864603532946554647840478055337542473965837643397988125546687622868189813465332102285339376091033784319412148072386070318960722872264326339230788044719945230858212620425045872906385198634928572842686598095458666836841331806738365239069964161994926589192899178490357036092553429301411363627264661894051792735743528971180002585582554738293196251279624373646620660275123962266697753627322732688558051727422121408216152453055957652654695510248975754653898281512334014288431576175585576004388989504589852494997620745307693743049948247578566328801226919076812220429577499704896692106827749462552997662686230283288559450145346352739214248852629586278594298507978828670790148311364209685005274930922584962506058635701356117718748704481953525695789599287163755844189301358719454606779390762318243195809305969194572358256193453085423548132343146107833228673925645166239944454400620627970825931909875310481036181659108432320374016352017519472929403716760633242167835799661674011287377709824957076053432260330144514722055409557976287638349671041797109392797323712998478245297252725566770372163828808612134704118847387394597069906242329956057078108063730491432804039002532371962944110511768701316050636323064092390479694780078274916941489528395050256365938694699924746777569014618749479139008229454461852014616937901058299709798777322781340483958178617398265728704958063151244903576191043155452662511462295606101028688062223069266014210805776979170102933817894386808190490662812757819091912226093910173669640194133463964579337173158694025274392234170220130382525579387971802323583061611799856185082870427298202713650373167040976983379441948116565116652841238869290872453748280663286276904906544254454980491541908331213983353519078231010037742877725224788470138827467964898179223183024070913239008492136199473179342481503678238653318388650971456787409814907137604046491372836785182511634320963672875575510301650740480042958977981807823165032023397499407208309956671732191554644991421292474274751434711017908552941867921318632162389261440726870240084900269953079785404164205269633900596442251878800458183926690294075863582817118339783286902525006733058833282034154217296325563599615808872552896796074720885558996075404307999870932956310189900371376397007941996181235345747062169109717668954916897375902136201476140621263171881115449885732499416738509656614507780757246295096060241427939033784976218770721310238052101134274202181142072812215762177581175905378192619413338213496859750451799292854234428641995826577863597891402567764258634593019588917045186720845702236460786880352398322117322909851682933263811012114453598501941283224850286256496702386010011550520989965582847544155529616225495437492666140350916966202158625467444921383198719791301754930578990416163622056566523552514012314772734891515200624588973455304984050904763045620123629386535915934958679596173588667501735903078862212749498915221039537261519379984194141177845448077692319460738309540760924847279469672337473287731560724293731820810993786207460654716468562048374078103313338726760138858276165678842803666885685712892868285204681570229575481627294995915113583306356280591573474853541088544893569304396500628682541712126419415920967306133702610470391707980954277633536605582597921125022821201976107080944304036413902149510265048536578424506693065812752751208291012779007040974369417141177638699041968225607195251253912479039141661928095670669174782067384021091064783848953032827466262087092583339652709910406545841603426614701316317198237064106272899668420841794071834040049578741893749825196941155684582429137326976641642920001335510823667824093346362291340016073132509782984196152419952964481596732945800906200778554274416102635882006325589492970183980950366039566446191659305474758959577826095376380706576894806031386363332040679230583697675442890938208550086172695745075515852008096559323979714285389841173281793854425100056247820935894294382026386369789195092312540776296753619780600959957648904792636397208152702873443711601090054483824727534294076961203676651584299908178270280844461587971787058549925405700522447382152954823074767173732222574179673332361003873530367554776540628285995231129820212844565369951935798974927071756772946592922802026858053784260052452854078914482827464145089457090665106619055299017305757324694369468382345275885495872908098992876142089044336707505785074908805678350321869167599151757313001562179452776613340170815881175696007628839505585964538518451185680243301670317183186582558086287155646979633248341919900970012383928320976068141768094981274982997786430096885852986069691086996734902189349829517341372553225175130439550012890462184844227742146448259631516595733149048212100738977041831014631955764126569779521111814945903761862348369416861688116069478700533020026723843577848915598019257281305909051216091908729260786596523618145168086954606076954120572430522233501203118498435565193835257471813782831845061211745069962206506248809636657931998141170904506289732390615255588760512640415608324977774838838896117953096866674525883608149273137122744115840204075110518916942607671284374675487669429715704445175226332983144854453607696788316152563182452272338703058889975233709370723514369588704399064315640186531567425137608350787467212072824170334996177247877222668348780683407840138815503605566840921005072074338195363858247579453596378927797851532101101892280961136206055241202608612004288045383788003735602382733451955894833226637000517676420700156068018975533214358926100505446040794652671443652818560830073302653578541075997375064194726015613995652324259149975170867903764043558526149222411797580430270793611653980464188631651861265058342770023238412670055180200653947182268451327091974480785806952108883060515371709852932110869323973481915776874062854004043530545114474419354475427403808642248375254990776180239100651503727213537670799959364384425438048007998113342905260916367333945336836620533982270182551778256229737120825249449784063438758685664708050592849135383706178454904307278336307196515607768404399365191284159991982610911284240301005331601172368157674476493234955295829966655354315157370720607037975437752350315038086005983988666491755988206560810952126702655119202929696996765961295316583386755647756617731193034422729388855446705803353566247290822919630504630669411849998147871563794626343599790218315162263209239285077256914070072840761262386524367550216179450057488574962092390016721061531965711120952769275014905557801655124739627713302787174813355923914787694512815212709394813393674354015933562755015864511431406175314068953108329869446685584053535975369747148079214578720087683991999059973114771448046981441116403887991766309086291626582975829579343797304887492565848171636394203674077161587668176659128469506892133626024614204094628026727534991394941527240471739408004644721425078247248123487424634920052131114475699227831650600989287580458682781154932989955191415341600567050199622132535137203481374164338484185321964982081630753062725167413419997630059553629032024085613633761159716058261818068057789755854049340839232805562789273411305043009370622854257254627042896549706452598939010910583685338187858448283275338029442385858245931893083739603100344728243704219092852611417017096866348352079693324010591299759096717738861900636668590907497572995890669222266377072116755213743900101756205243605686945392021603714347756874737093827630394696287736029639733749336833583310828215645537199374484746244497835612158153281787027194160118587535662425472611736311795481144559024460260743541996584873368057433852321311581429233425069639708232119751351575886017848783099096392229975124710256366797265216561261386693283988251143680728858266293827105501974805079693072547330562569338419089179391850292573417872222059906351172413925468605578148083489316935898193470982868659377640886895911722553135751586930324427862214009573369534950990083138319693704205580048408710074595411449548423622612739534202915014888550715919604483225666247604854845589103338752442166903278814754368780555392042881274685446605519457420535091389691669956518038685017574113176982463115702276572131943075141056829750442014327428169409646790716700127661774768396694353159184294656154607015088656180229794755599701659261245007002424467964344617050434727569113556268424591260298490111527104833589162618148987256795252492851911014086190907240671495847851670663087063011169621283242654311778991383052054576102740872691771819246153457097265081505745187475325300716725528132329213039891534884601943294377669506032996962190281599849712698375945789523077147643175465853706890513399320618138382460973508329719011636646180124049291244980211399490468971875228408937169782909152813716745723037514604394902466876283972728086055063177850490300510643070056671296964941614674002958491165586993057792199056921285093852560244207899064369889060075525356115764513062730465083020791891895704125004654544118871931824147306859654411544781644706225239773480833493274660223835485942623378668531712682544038988306617738398209992109020440575194647547465751927341238795034517166175451617219812679616462736947315530937913912423841960127070488814193260526326570265612062533860907487051570451432812125481404357549093140868000458062172205537588380920439210226692902176483633161072242756473620478171990200238686841850100637533476403715375380574973084624180762127855755456119384096207757426436695767725000988506872991957399906656684641535144554623711786060847335728414847419576527365817350774596286992509120014252591921443821703376365102367988748234667475079388310943076834427066628119067865552258756500754587976791198382829356718417543393369412002892245423844321602790164100556246255944082508559570468624502342135743871897359788033977118386630744735234490541010058961456958918847003066929663364109934340184921251851412481689668264707030426397157023099157070406455553173345136590979443689966803805855551243245417911020173074851875306437715395578801667884457801202634646320666383320591240899841882831836123126707048673494900899649146071597524365049906622569052131577324146105782115304796772095628592176492771909573348169868957993677130648406201373713991062799607817134913998461935628558833614840127262639108534781972640503026986604931106213839635991622177670187197440395682478719160803036711753532710800608040973565472465226927222005568287150874331824455234138903981674368007074122005071477190579111282612009795189768107054431888336342523687623564917744721464383421500725929313437817230578759892808393132843794345961442258764870935254060271368961974136286385206206098787793685142282474482199089912578653181741188407494809578377762274962214230017977835073959436608267829437976743992559225068736766638024981540675639988845906806383863361738667851953356261458015116715656563113827508283920116255223006656806434602316074002473957233017994774662171335913763443284823282758867466489822934005820352128050458955601783779893432753555724315208857671308624590052027543808706948482409690795750270515864590691256535944589477600278604268449651226835603111170272961425869428659280006928688820250754025537896375389050381572993129570052336266870607191794937513403801568447799128005974877646377162695109684005894061421044831840048123288861386463950427673458595641806820339897532181329177749545225755552822216412037813671280592541869502362440977953294421176216116220431904881537956729968262195331776075303583250990456223700625396377144640231458119441728802458680356980273064932876697986476061200109917864022345191461118438950964462735789062095867807179488581091472763151913717331806511413332992062054534608162386143513828008235787396520190756269023693277876092839070328251522971212216728874534476722672124827016045314397282346410197893613381193497932031739189861687101117524998206284143800283649984130706294649438203939503810102190287073951182018678076305395344063824883229166340352196194493073851276261621278201940279819855303829373849735617852520808969377170568069323390179449198163432534783886587405609035751640707873772438648253037970793339862620123212041586169320658243580688386395890011554678653513443145653190055461887610590993413862670209074827389339755987925156448875860884966745158481985242718669154940237443527406887372604175146041981267935650797938529021904256431865972861401100547567845014163770676480212413937643900583898773700894299516340059055225891388722633888435225250186145576991947522934645047129202968388072809091916453696365427592266177199564848572260774896806603623757579120893660286380350284856000992393696331389202595160694285727621914990254663983668425831927597696895907706227595400654756248932924676754355896410555854350435668212893441804367513523725247012201807026321756259249241166458644106221019977436648809402546340990446396256148655434683846187256428737794512501237355672171098922528019647016220939859974073594373621400380992890405895494288631370294971441740636452372967610500286423491170136134308667898723185374988702327872503952716909535715565207207226806564661847927822280417950232592098510799109895480442265846581792898119075961511454596110287805397040132257528809757454647634879608459796007240027636045927765046261965409717468173543483845755668546723185173237181938995404601721881346589696015759590168412864918939333008091987180715243710132707784131990573217701146643252252556801296981135422411432550040852768977177974427971102499073069850620078214824619175725327733792643873875398177221178341730588355959091794015396258556803709857659556520822546272867426504191212234112779718256749022025656742981506745068669132975361936057239716549060125633259250348260161096531100973435594973342723615271883628145910125294212498839850342306654022957216078846674531866239802363075240165230854092319519509416201187142348155795676968704390869198697479720261405136028407700558015440183881038713000428730851937060759343293454952737837671337621216747128788891841523557158090237592082905494969741519683749266813127009363259069955747607138805559506007555989863360567674652273959313364526779648238782378038690513282187115542122277751977964267836055984369019616323750356819428740541904952525455887535265497228050042762614426307945446345724871650460289013722706807040244545456575307068890570475294901101557304443153387979516150708495418002733205215999614295728727842729152683177392316663619462759361394114164446742540282328778943111328212165303655534758135750570628017803210468710370734863546623984265449671382736502785050146046695146256308125992056249648921380542554997567899529853040133825838892054642565059829623160203176082924960538742976140267898441449507472649715301004769321145715801475457397486302167095074659277982362653549041143142200816848087082765656026665403604498176016503199406707230972081800244124089006360770130793958205636630729661218740036406111422757958007181594900336127394227964959019368553992275276416470245282056192886142751345983426633006402244002885165116579540792001988818437794212387143686214079161535299138295250490127054449506750216824523922025769886940541592452064659342286995813159916921524938379729635249034768747484172422521503171428190936155541237981050757905749413117232737340367175424736537772481716107927147355554055539985115808127635832522413650656172032741814337522536500806151235894966535981496946812445040427667344918757569564629471253197599392706353049371871193469867305511740776574977508438543663848731284383945308254082249541205733460136644063149108295337679301457211933277967641653902832161904356093209419611604471745261805008026491098467529665238121327767044027321513728367402553750131486134270073110232529144766397290473511477932295467577854577836662606818677927734995928889403879769949570106243954901900790936892464160473702206676998956489564643628308855386547953645834665864607652307275811108202770944844991285587182564300981750592809064348173690790041683779879655719565687361498451974452544622395537602935896953949750500183549470128625482434687721677993770716063203733185134161812090266259169367399441327601008963650356861718879011249528440732588419107718992511028208281873707437538166924051811453057344554393355044141828350841965785382896281427505006158900355876205676915113560338101118270755105778785517875871630402743777326581600449805388806902121695527540356742140632775551068676873867055666051836907925878843782811079121215334917585583562306024654084429636605895939597041544203713809142937079202062845399945572272355781203655926652372288724855826040710260408944709175509929855292253067313158259081763870105389045323332902235278263012377885116255330758773488914787281019441835362292832557095564589318802862208584778671231343094547809473447956939898925675425624491762889836966489604407140088555096573960625302512928167701354196585894365277452285574625251583293707508973836524633671829315664444526955901217776239161927356134930857715926638783109867656846943139480406954880233062117906754546930845987709942862428782141512901859970714539189508237424448720529291249562588365656442117199669652791888650647930923984458236854543048619875888741957442958232955285750928218035923040540231747687329944799755736184558379883973452043383012399563481356505638888817828862169253947255351262908179575619239347363153228851666420052895805222331203421640185270234753619580314757727179481090577805030327658406076957638828825499341919515592893289396818835103280069719124075064787870041141524695784512328503786343926700817731264880190371380939889992093002068032158586644463445212360626064880096886964770727584937070858362462368738715250594800911784170199877361296716878162565513700296402253451856187892710673958813634177739568647479294746205614000124278809491579450670560657349035898475915374454784207069427676218203631367287270257036508233664041969755713278459114213123813913841076066429615443334965465714431536873946257216196002714858948786678471173705389897058912560120362569669641541904522002639239532675957798942894928204682874002340845558980606603123459950695861822056883740078639180615478634727796108949522778090738991685330430787096445431811293376910563041387730221444585664707789773891149863248310267700470307057252052552301544906873882684734656578769536446153128987493645009675622883856339099765189833250415581156959997349374224868955398168252281251140118602873676163786748317873062326618665393015827108154710643689147114535605540517985497841307998325260306834043596080231393442781181233486334616444355108099198692346011710886520720319339240985867611553480467039708583442287489497827823451585086609802204825490138986330819345544264441349829500934358612016473098600476387921104347658701164552492345381236554771149872783457251741017732727691502274881238720045225214835116840691755782475350252066707900305337272275504028705568482464014960850663781426275900991800702202216277640235631421918351194301711073149732501715572829074948234912599897935556264835811227340053921529631430564435005731995997749121572119635150349106738603502821321293715320246698989810971090805595213652418817467146442999649239358036297074589480916676680220412901057172769843679492283313450904389829982786961160697097568200952992746816489426451478426133777707136595863341495334982057203951224693657799536962887688293136972581379284042758953043812509699485976613407882941054423796647746336872335718994585223563110015066253472487783713669521610365004194946677945055160560995209146422224352516142293611408446113566687513979183013098887450436125580138615773285036643222068491744570326668362057382717140639364480286562269504192136057027496406267455453356672676793156528209635202535711518433178752453665945817324676266202316538661695397699108492201087914511461605388258793404537480696022712147148326935332134557156746178881672430896777696403226503448590164693004261214710551266812692353454362196881053690626007000881801070044589040788015354952086474970828501843188281046539920922046242544126316159938385275148482728284323711403176848099148705004100125195444104432066267646628442754416514814441257284588573345298378296514659308838381488229637814392339026014368206216259242540497296272903108066853892651915655165240507627490768675532967868905451982007703877726551523567295730318167086106026380964560542085870165852942674865168013975097339686000461188347349892755659959358370825451217688489188090828958229049675950318920031136958665939181212803397246792156057824714490830740531995092290534479969679630317350135559139289505401392539289868156151338259007320083616884717420317929758301107463316815780281413507268026074828368937553880520593463073301755116042145965058087859974730238680426393303207906899843693607606302333063216011730549034967888010104013425111338040095217003241734026586426749931428215193466168586338534691050641501254213388630214214612583826757170659105101646706380347483421768599175958940741822812278412931726182915472055081223506607325428601293000908265862109740920289964128027154548165211262262486951663810592134242113126103364275197465611031028897248425660675935290529203388292978906470227872388284678541376648360880070278571331976689383590583165122194387085017562745937123196525666205462207512992283640493861253640488447965896779957101569409069396406931209410382290213594184500951372234793270701097048635832990267913401858302906763324224674531866020797992533331307451088718330831460501511399334943947449503640307696263524568990508249954277931004579074628103283752426666620721660205314591445841164757728169894213924426230433343541977345883952934790339891382861869083899453637884760676651989615583730601560689597170199542966038612256132388727092763991122891260169972375968692586123623819073045897334398156986165049528749275574971892535272019114307090306570582977033438234236597044425959103748174873888952300669763863988533150174978992540960664244927168102937238790995082642631220557732436977835681330426127280599043687193216061973802065525322600860644389735702452947414458538463412338046583755434647981834048388636609651942645035048726569441069651868766564509407063084797873999146282257692101636384019054934598087236535433920528740326553962152324324036655887358383444725267103994458864614763884477101589663570158761138477249900597109901821272403612668129450706140505383835020054670338928536713179105777452409607731583817632633118201777567850903487079518169860325696308325386740599860708631451321695277023940631340933953043191428514580949120842703130526629888559682423152804603858445362692984065934919107564680319848604821271544165561666814030478436388467453128635698244911075338638228960506959002235273355680645563870496552952952058136247515996613310920928498846426879510285471812538162976280358568170624981722027333655549805793615900856801679267271362146407058791575310598989796734652542311658660889556935844421070109855331833504112005724329044448344223845479825404249247552570073384379947179668158088825200965134242849270115546264556367325536408487507290817111393293607479282841500167176096882547876599451443783838067788032047935387170169136158639691958372023357412616483352700956954632938737080853867931449178458207040024409948580997912192731001051894304529394947290182902831228657574718719795554172786769070743707717209788875481162023008716375001608311153925847958720797615772088730445323950295142845639311800819791232381176455284586522860075488994457393326096801674509716280710951206484708306936916876027991518015818504579965386437514704881387449388622951238009995077724410847866549563342117365334283268604851654317801398689417927220902495873459647523807879306582536812314586695157052910267021923432564360334401423546434187191011155664506024649460975532225090584508150290926891035449871089379085805364377738969550158698985618614519202704065335939107588198228407947773611091079264938839806162258326342223545731444113901977736584922767106601015134338787301912373789035974325584609242326280812793053448556693657677195230155657626731769204770786097207655877830138722135221930493397239002002982532055668262659496547980004368316549934957816343877079949011582705437473933923910783428172179396888578572735914189254971571189247017232459993182072805920923542884561327324207782561383945131952673634366640775219338756260947724965778339093262407821938096119122704502996818361879308449504414108063850504482218784804719038540804817860512900379670939748697766980124214572904520084473517462990012059550429279438060797485692651975823779630307022747681890404058662857685995504873412317508314200080444533998991136253809798200170732112820660757589124712680958978670056937591985198356857091299041783056865400611024795358148162347352394242594590231465475023797020440149313552883370605265528304039841740229189011762496200649252048382630366812982328906502615585944076016197952381229042111453162851872593540576768920279985460832837853053429506353061940861221933644707750609858348698770542470031637417075049197478633461042002411575114489785585225239263490680941211086081014293092305370046913676434097324821847396576358331865228212508931797911831457077132090692262146957555165251508682295810708155746115150905750565644135229786049278475214006344773594830871980468079052807007858633582002656619842606119895092716111101935849374727729877508967908205703949786305677171257289788347336546759460979305177354783184128050805372346191836389711050920223990155981897707064161697433961017103936648417301591242037228577040607532563052091494368203238537002227602011317560218706102383845689120873715178193228833851639416241742670502343815114758573489831181428066182017418654617965778130217690787690710144946678751186341838335438464293419529232086030109152205365615040279860258291811725338260870853681390647887063543816580044108751352962442597387589668933060040480611096640910370684471803181941619911454217386352985821603352636785211321744199571927683440166138301292454193766332958985908989166410898215328291523504603538046655540482721204047272843908468427662848261251238497332402137114796142356153342248147080231075827015982874023446921752884982874990543103536602752041473026130529686522657491798111946050901424685150910284596724847175839515895340757723787753498761122491683695294839495213452970240073307725632647118559184073600950675770003896412951413807575129924898364142110248995162436110867255291317954404664411571911522287931562427196524223715269233084469887357698925554642715785217033957039500019757831033642530141061139636489708992395774528750776916565980679559763723363680220198861974432773013879678558479827536224258230840401545512164228485322502029248578791232718656669878493693297906526546187352111670623531847500929677223398134212541698323318211488514458723758712829143101430079002214809695226248760563205595634459036488641686983193356722271353213272323017576507080322736016325711837621634688150474104511384457356652138141984453553283038590737796777428805423612453874325505327245821175833132503273310274955085737941786052225242659274288448091758834326415774013544773732987144865870891918554237459900054391631347346715886646488264839779316372098381355644826539095276266068064605116950347931097875362095375373905839746696163541878869362573677297578434145166495358666823983020114233785754017325497881499823120970046722595367322036141550447764933817005259480858789412026625828108208083898091449689598012666841470451260895179600156078108997315196881720012714102237494911079997560872737245613435464152490902037684001276546778468149893803645975627393166864822406362828291775210312114967417157720577332640434500097469642107787607258560518522633555040662000805340684170148998119332992006723438943111016497392398844577861544384844978656788023899451388296272671051784128749271876524124532986186518159359026864144579691493526890552658603757763549575775230653113616384706080079215481697330416283299241591902149877374674282283057704164813225330418841492777145061331708833748386151827421112381305916523101360722686934840474557912287263760016998147046891372657667459169718457211934601060798971897680834909735579823190926138057096291339620818221625309662506200794848398440255479470788482860601231453970617192364757778320769633792629479490712407335808046444114504793796234643020970349427106455995398998166929582233910442285518669205814140481014579603017446850313012150642966078639153140844421542201359607247265327866772901265657772055149550135071207421938453856352289729548356593886216617742003249658151493056612517232593306442192117288053784008048367636593773554067276055237937703755999030312095088210772789256946876085256990015836768737608721940422817271265198546627376966828771555426827296481445938724413397094270741890709751734912902169524433087324573929574301264653365845141381882603590079874588788252166267065665595417297016913179217855632461485086838237909717479062859703431123306937273412041918754207909119197013664257577593277098230827003087669979743146725433033412826420628273628969153475382519787746735878595767089910945639971416004967503775009587573221459073190523349588005365585687194996744324795252615677557838742804342875751648924695486774060349257724139414521278539869514728375373999745250675193455160880478588349198978840917455925143463676123800776961263967717119594117212975787143054303210071463045700366571789188609852184210911143049464853371077262672852601375366795118243544683424591209600730035718538747680856460582680935801868600554541885474499354341643845529534842472123000904177569677124846357644708185714020885985322285840192452834007941950081885280785403036026656335110742219036262940808715976514871280900146048925337358481033649424803147104260398026174448136365404816366806363348080217224125755080991992772750956236644247757047886401837551491434130842454885035760015535749649777799672821528277054856001691938587913316476303746697885987725704850894837337479213445896422234580820691592651426405119939465282824069542654141143818914017901338497144729454386269124823953497463932500663148719678687989516801426694885261477288002819053249377579564266897905509611640173302058676849350255124876945586045196663732740598998932463925996508544955866111375298722470556450929951091171013275550878821383682608992962188163137877013430146219245790899738210708933976829844432471682945454103410504401814147823607206435817413138916885677666517501218257801324784933391021654139525199433314554905214737390525396730312116263714860037619754276164081002467786569116352050634167058104448629352682386287647640080003529928303887456379569134639996970147894559930682781516440668751420357554020583682879522390258753426752667451035405115205755308301582688315128719407695218381680625388609227769616222316031589464027585537810599001172888718394837115833473763433077738431262245236999913694910257300772974248898906352031736350007821574608376913383122401194797335846280934884150577524223751499014451703656611651950451984723453455657837721288630357205678737120350918436485735077137637571777103576552791178420282777555467241363992829224589750313937593397602127526107461352526974579039541492855109089568328051012885735311861303543472908019208149205871229992824341984179233648805603106538235922456955624343261150904608789087955731330861159223120045145449055032263206886051425035855433287819811919282743851644736599809785840215779575377801698083670561497268901683503565163246245373452190295760728231249333994896603078177269591486092096419816688609186118180573059808538111199569685684336422309882561689791118452084785190347584120722507582129523168944721606012383461466787415409405156341315195402274564915534864494556310902510796916830900582506871082401347611224013500611805720167667917614315579060570882064944736175734740031046339866738905403865552455686490668740894043994066739071845743959848915069648351251452410491731822222963193739423591034206084309719022301999513096660926654285394707846265409705235681442717376448387138333757035941259252391754472261718529335258310388793084041496948575726421349568231379275367322477791479200191750149765730541561790362801866872744365558499651465892878511759633225884825914303317789841436087908499172998244117085939486787034234215724996067361003851260683441126307738950289779258127939099584296407124602727524563941591168240252018068870194474369129376871474651902499504511529344481364448617985262418677544158492827191829077468347181539242032404498591633168173475782332795522848406323391474237628296138297956924097811509702044201688092191330883916851975377708670273345851511489899497000407029695181913527268749286864447445198870579563020230294928452993173860697735388809997414812249351784260761554386670804257500931739741861349429272429944007702210305844110747534088053424177888214987166788649982183205628770683127290147507422256612410807709261527559425315379493712685799895585422418341468210415443024634321548395852511414183522786005588451607396047906111284336481287274520258568564620478658014763236027127929147107633471636570520145729934233159903445651153171709846394903353126300418547769288933312564513134962593904265478256099500716591413274855658335605158412263006794029714970203128101734383964664982996870849640954499149039139373657875110854431955961585595900309771219646246085769514251125728074603125244344171403869623867540296229886232920266379817724268947203143548784707976586990845154543321866401152505810714732799497013886140574910295336419980318266846036065703993765193351948619024071327919851133204051499838867312606664823232201642716415196931547342041254720283693338826157872766610140076574256908257586603439040961491663550119898382577345662611501021890218900479964464796932813803929161485253831255729486577411206716513094056560153888045798293897261745974616830499688157957147681756049897431093483083602688557688183246339480680668104895673934439721563952989168635774954519333875290419135496605068357515931211889339199074926747246588092928395775174170819039865419582941757257527664472561440203893115689450453092572500434768996534625395031040436248150440028177574670232870629306119293244943478699632059808212167162787727552306949710049956003745197375118913295638235436445135749912176066327066492399683829872360185826079918269183124624167112862911891806498283349467540973591059308134832896993009966386828393340465000225285965744589538452319277058691238206914799908928211875067876735210655353783183411467584195617046875754202644018054292741235678369403384342519295325648105950137041401843838636538439299585587309975307471567695324531066605139630594913549305841983667894441470720691884061971619998692834860424922219549862406421163068094576419491566561236159761602148230700183634960060181774990859233241377437850363571698414559342581029850424758876797883478413120702032016870829373233093715756637674498233884507615048682347681150957336171148284336782019397553352412761072558502016228285751870441670559055485978728502380308176828204610558221930317513973660674710258685053128487355951379311482384975782559279742668853276392594243281133828510869579460897973950250917753554410906819080224333830196904816035148080313945904634220509588809899199249654015813926844010040840468893539513344570343750693516778259054733756946304758990851298280753590963548906981155918207957269672741568140630185034003115063063413256091458038006974060848361646370216332034141481383579013639394599081234056375239438252338070221072406579631300455128573804578585109547499771293934362781125279247478014822603827294153855105505194871676968934731556029857558587945583183622313642397845971226795553026490656998365301252582501167061044100988353452099874751980850271872235488625884650121409309372331834319001485770137553025169549655677222562287978082165138198360989302043148028444657118017311743715813448467120108593100939540080159340719072335122193858323338653915191737425885945845985757711188130010577570874288577307109158468975385332118546381511581037093179003722907969517370783684116221834628324792417110695378579113119025081123914448575627131692219104003904070892192246034868555854165914138474743452368142537028249541552188381164374594113838661539009666721332988427007641056908800869655266119388924853268650496993607013319755690169001620523477720916354483153308234325357611847967230392053319536419029477678215411136218934098330105736093499204806805851624456717022724086285088612834315932515837147092119652369199282642332102861829993400509718322703080915694087557412389497015539803989344117839966813771451680963799946095492932442787121027660587209708979644561316771155216021358893320181322906413016076544737246882181529504592203427288034115841261824320364546344117424699411979122803539961218140974550449641473442755883672220227339919046668448905642518315750094145791977071258743499927477155905899967941634509960388302156025045866429217932365406194177352236819545693592770279534252328281366102849900285169828407313808952008976644387836433269142342367162652619710529635462534705404411148402929722833332118964345210268127269478846452237387439238418232614338692823799740423101873751716458439688592052845588138994827043492068681484400083561277288579368608832263312938745638653930645569207005343911716962333465339505255550037913139065656196819133979203011177829576443795665438826619501599022517670387298346850656612151466714889366274888486081653348472331827121546974543425778558457661203646017103657258569126085324790619348456159913393974456983297923959000690210718112405665033942406411858629599496525737190975264963848318036072737066299922168778732339314548844506737789784733136764717569184691061889177739557592873645792242481869356434236837250221070059337128877438458373839395571087939354911725573486147633993720502662685746415514789863887414001713368619685889741212819080184667610513681439317489051874187072214717050570583989423455163774209986444982106334151550570467343608682533706656533579802346847013888524351257447381316857476508740646558933487811773036285660093088805179715361897706742223275989061105767583062982716556378854568549533717957662338287350991912536950902884444657934231301362531464273227618011148339347322139152424994996627496139561485131457037317495180688049891225917479864523936121750952212530064377199906075885436453970084683508036210690908650179625862995476894512742183575056182128536493938180249270783018868520615258607268730403957272185024617428444047382951440187296720716235459646166179741244913414823255369741011401965095083457587358509421060020057090566104065611229292064956899414585310637888298870012277259557575131809731181165889587582921059168539781411755119132161214527425257097913103770322941858327773146424500090737970254473783395181515393634293702737575534187009539927732603015582108291421037247987288385291199844541872155441654578524733273446568951875024540209369413747603397279867282447446997535642802688140008722883547442016413304029119835645109052226218989314665567168042577714970565598606646291485674608340224884696424633479895317611965796725862157038605659795068161124332724031040221361955058531515079487770214202881737481891938233508364452266729173995719022479579440967335821020917380457424889613417917642969340842508675107956681372502048197765520055347809962492954604871497680209205503200047572001570178534271997651699617135080486280736336542279617380232814045007257186491953525198232379885181278765464192781564964394883274069250601062340665617157633652609134612944506364551137430490778684284998369415551599997183920934962059300105927713763833841946688193477912501575237287371972856230803444456071015508178771188241993118672340998488125120240367765048619910766040106417552859605608883850369741106924075955935594054177396576574122485725777172509722308011503939747182551998869526702402160743541060485939922287229859595821930587314821044424528295976972150911193154208077030370773700527093874810353357056518441404809428604045116955916773435609934022967930877476815389042735074972748320022345673504981198504521839994848906587139695641853541084730757263182365600021755419454112772964566911733762383245926195384653184675384418698878069926670343969495300517427005788642259153852471915033236492021428257412513727947383049715866916198606860120927288443284727329275406665004439471391163059456569701919766477042030385761560721167522741651640577581647801610471054572805562907795898122214213904113432741800600522085561826760285328526563546603845992700189343975352568523578819614648159388240068314713303642857615569937534207652055408750156275054664784263983345327303127782004464985287784953914150239201809077299591890889996390998587153308770658545253067972655923555041480707832931168067650327901821956665068189908647068871045235394994127509706406828363780364029465961881999276769177979131905277416194371287186377420690318861192956787616543240386546394516233411391346280160118785393046408210561804566999333590637949953410691196925516109726548240081969478846107597681381121394104147957269338833791437827788075290966123708180825906406201863349451468553884859289779542654728135115451212347838540778362951806606104413876057132989441089727334110681275085848533535269145576303745996050585510078046379560028296701876217812628431382766776586334474114122215667733174297460359392534286540374033308139471739990886027371239418330315998289306162134576869953721787573323742865109721529862356551866315772204841921846882507029308560362626298424531371406257882025074583964327008216922471629134850101441128894170960347964801546261558500161009883772624015649701283144723423579122135833308284067449510772547944193411015668723248227726357095439695892822082643260347896949772368246574589285605570295087179005784951657343076583368706382403944413470562290512964829028618004140230403757859172606752254474843518470354569308528679909778753401393480348173960256562534327668558803393932339811099688440293024401698124589928066791123615241324774728377610394836916502905006151020388580465776387536952310226892153392626718075293458505599513482233247031825701607893447443040601458099522605722214994339585057093699127089494440589705867198066536288959830012548900717397846728919304520692058404006555655696290639764922316639708240856268363694246299530650650323184809850244756852276311537643079864347710558745098244214990382312028299954790499221856105057762593601118292815956026962009887207358890656262322846291092637630039719421477261682567496540221459608202186200945950121218892650489730141658007157399114421122703469740099783916971724499661394813147375199399204071498624434204613598111414917191282031093884787714559662187845146642146556651962748749444385635970434768338924514043841794047271430957320355359560306517748333489905636017861237914139189334084327411778698330430569730993991140802155183480323266142911766330072873535331828793720656318980067104984448839692243920629019296650100572215185285305063392724473463491905310061627516738792164404413584858523494907954721795645042055835723123939680230433841311928441023331616889679872549613612281043620184309419591431850035599669685112165272844579843815172543586563168678366149132239099537844662256155301094461889101968265141181098801847714228396107176197056511268515081237881893610567560694457780026096670767025697516875034323060047566143748589681294556936428191020932597916405260871704793163496806178131170453319014524898613089712985869099328047707493923451677301025614273686996622600068711671533571606161120838923939249994948475847352371121193940727327659038916079486559225977632887733287273765121908644232792638132066924882089733347655608647388427286165146930413102163573973040997048457462754222927988825711889019888127048992546947081414646275066740272822652017057459029959712479469783924003526620764565889873846365552817150485744619498672937799213736063864090798426837380833633337544246057092785223169885245988539828046353932712639252305910013168686264436824268346288969781966013611299591560663483845386486457744998445109027220543970209413658494254044497103349746700759095980818926032930787550033948344129696244991096918983080735182012867121489919398011285141047422693889363021422932501952015598504340567774994716246102938503153268125102410375059007578994130952087125136915663993492232097963571490739621262102208992035070038786957843930595760711981605322627762632490141875480346975672155622673605587094112029396038892419436849209414551261461941488643017780674105364941983212134618088231245043389728986527897118682751930357980121749325108958572659123119116392372150897209254556640916559242255032225749640623076626913486947515041156588078218683334481193853146650873189208405691869012567639061664459871846138727681845872285915541346806545672602466927921777741832869849633202393515616063626357511304478570598419173349020602278652287199450019091926416597390843362022299340566465722238717336353664947402139032925989154071736435835412485934561573043760712787767033810919012091927877831117378942995983155277949935782830442415675773156944891878606744115504934466223224357294489436959457016536481043360885134049579735732079554970607223731148710046520126162110958888794371888370982422135706513855457102966881823273003026337182043990159297053648855675857221817100286094193486073506318485508919273493631652395692357404363577609441758406029784058213605712337417155556308638165590371580187868863743806999662818942448915555563456844474007872690358908840663470055869238510977859788921023335388636837709539792737632915119446447391251723300733234335566510925402072307295537487020287711142162052933550206434704512265013003630911166647364472056203964177364328164077969681579724468290612533238818343146589458124016411749707883000540561353254603735131753729035613750148074708529066722414162005230755673038579830507743708124587784490713718069351274305949366931922961577240825742397413722858318251353191584756355599319292768983918147795695015325085086710991011444516204344752674593511986200788412936139681222452686993456611551200464056428817979349726249297907091141315093988805923980640404932279327593144589008980969590887662687913216179865480236724060849000639280892231660422488234170190408337357443897178979761084619837312054629209889065254340017097982402536022904863854333377653688392283904694490698490890458734096022738659902665622045385068664986373123629819286054229326889023408478140621027250550059475479904429135910860373780124651840001862993904912241830059033014968753254320656490131591818507488865766122358069252138426936660044224656501599522929919686046098591607888206468137917412367687860064258498447023103481781988927083412798037805741022224754291159038237835657439532442656658091092834786036576694226950621160228794793800148247887429788761804072993994709370620952132094862342021375322511987771580903275216226429806568144053625094275945136329332943341484472708266414040788096573363212793169180241330882488680798676000569073204657399375214665116098269050204757232453988071377011474402503244633346840775291244757764404021612551453627658544188576730270452999301754408933885948609094207918157980479156151253766444814414426430020148123505215713804142341828315988354477993741027531424953713885298342308433553526246449322439732183136360769127354935228655352549895982423852260924155715611803001332158308780410495809885101179772279929619643113666853852362702774400531470684291251059635120369161726166875144997874254919696283147678626005955583033288665868859725247576639221209894544724962540838522339399897218092994520476217246141453899573894008411796355930577192287101249801394155813325904401552247230835586236367942871263922844673549229108870865212321065029365018583018955619654437326854141257273406905048599174158125433012586897583549708765495115051012618812005417847093573113201688452926169351801570178104387145154736029180764572072373218421841646130532184373105540536019896443680334430354881775641223724416284441690331367909920672758842107890124753915016479246528409729512430000475476998898866266875992221249840320626999944118316932677959148537290975199022631864322788912937627694225591203131710555395569588966187460582345302812813211489490446823707705138952120101479857213425539001214256993549704784585939293455012949812650750549783602286097547967311848489264168443072679104926599760937421730617380457995787042988491085398290674304479527623646445658409447427323849600380959443260973922583996293629370474379390281727304222851969654956757568294366048046288993516502463300965789210053188102317237652381381643251946048399827880791533956776042476775637371275330760767259993975820528065028909082831456150470761817115227125535677013214955971160523066000955087881308930701100776558319465441795860334849460389946999823539203032833906956427682178146831609399979603804681011573809546980863216642371807470718855634767172774999974909894661915768778199060384962749115005811419676431650763933280905737524274315119783414058048027856290700843395625612185953519391974154223082222109784026667381308720853071594541357299881580555282216970054204167725692081210023902264445381140909424434913537686716494709317770560022760666548237213887838111610246736681478424141921593705198758503311699560361655035701317079321344747452106189613701455199367110564720128735068334536625956258851359248613699390083472574275634609259312046547037853904046348213740896651347902304514145925218982606787473279571034019583638269820763210631060208197285634966987953473572622463822934099403286501004636915121409619790035282310652788737121905487576468896041335776983079853317388383362622059917581222145712186732350524038719829181313603519660551301976091993231742224084859106584749758967676031754269584049432188484671292159698410166323262907442380270631797344387011295190587044916097478613531560090887994346856047378583268082155254792166990215932793225412832801005777525098239279092260804559220427867608310731242870901572943903084124643363782856611620474580879926586361145794526185857975399000037114769648774365117334619114551058241842057566486885773376588660854684257310253975508824851543162185399848200705965951505898636150170246127847705463788947237299387481866840740335052358408758018461101577544764807548766631970834686176826232069189219636183209285787291726892841766856996926466847310985061035306293940006493670881436857484447917858555876842306654667162877691532383637073103542566547210703471110413402391609003040908298777707920019353939418673175615986056557758826447891535855395348589944548352903650431214771099407731851968396259283867224195022311274955807153140032456032400428817969326777964726493502014409050824286853116523097226716758420550444018451930860146997597129999749290939387586206148863555882251673188280227898573811291030285714063037318849665430932944146163858680570988748002723540935191717149982849246575168712684549268727402462147088358553488180894434862085665417824569742875420640216675313711775087858317537017248261355636045031921535248472274785209698964772542122268826739448418298501051591141611189202973046129781993769311250873675513274320405885359983429602834214871430363399641185686571815179987132030056125723171605801415203071268316204795771750679989104956596364864969646432034783819808938918528592571412494043448439789590890546520348700039715963995508854651819614371223880208206781469943907159749636151998618997279170961328118149787030027521786569296438615963640790853337485318968997763947866299136127521009821434513685975288301185258086974965733657320056617406988877390221125863865195201958905556008520379694872840855922671864721302614635170624490701505689248655764495969290620563945606097705450205501101253102305488015704940466756094134152874274846853842025269242617941363186609606321672195173831700662410671022502113106561690323951137365552074483831702736018076935904848849024929883974684633217455505365638825165986204463774388835031733866540144585520326309932734785709602247401737585953682015444810000705065565402839010506178389031058022453104753883768524556345692158336290794618945784780090061914931263614559369508928332275436550148397920547803521877465595963776860736226488965350935085625622892185044848233330715411330598488200864877063194384266146774855086797422457348163696920755873533275893769339038476096319312639049391506883717341472713550865534766728681611155979593327379744087557653191917241980893044829850228500435756029766975231952286057162963050772189290427948574845302011994666955868381349898785969091361812205109579574186016234654008540992402173270123378976824035974722577650265486337328128390230368939851782038491976741071889767440618955698893380510014315105035874716116094474796856206318257413669273064375011152387573105759500367286827067528103893421650826281630776102821029812462310770876609767099426306410662338209420236274351180636968090832526136018267395736859651892566411257022358579924792587040727886722732000511720006651125983162696562755703624065295173898407355677197376686077965452639280463453586438184562623336258878481145512193595546247117679692308359472937478370767304583789408368812754843025998513037389863953858354040925628386897255858740178101403157616185837267840449270086778572660172872311186465378368563545794018159144269929312997934360740498502276447281547917379348566353316861982578345375904471248712731971171438905004973261039321455140437176588589352537815156026209252291361319142498432979985585137706232778795080867221234187966604565455801118178557346255223617560281781941175746074915975266798477341506257945669672285003079323897376040351811134254663739657808315154390599610358031876428262221816100430331781097598800938154655873344445823414440261359192091802778801732383749815496204792418778981826084637884455870032633791506991239519479161994200341943027396413595958799870439782833265953369110340411377122473169538316383208225540881738351566786170373873217983241088752133376882241238316444586396377705589444400893670171410151776073262364949632794393842391847101347830354819964388457378029257757356154125430105228636094450730109813989396848131737822072475109533005722820798782425694770536428566868591623185757764494921293314606895531943038230571727041984667877445107745147360967062877247653792827874783241970240283698778708033536390647978224847545197343478482598359516479729548958440972919470723997918124824000650629519617649243157084338889627843332591948155888178524640271714981907442055323769446871173944588009286127308826687452945460558771489013476086130640234515676990966919160126320588014014355132574671646424509649913816088164580593308001972289601825249834743473508729410078702703974094335946189971424325155390092657450570573188022660501723048985604151166938883423782949717635790399496469351796746064797526746183806845892876039605048858490546404390384278567107724765461058116384529485510934848880723225534598540841451416702300466271698382115441834773259831251006569389771068092684505022193779737721006837118112163221901280687440536830536796101960332987353256933241814668909719710141765999878033872442394317879925430949460762943404722561650554900951161561381981193661948677531704213048853638682555115577299332244812707618788737222065707902998258190129232839173180081928176551070096289118868500219806840016544960128654445158471108967619179241897565361684236125932753566403985281659218712777321185024870568030167881450677446420620508112092887196169774744941845450004508979066285881545536065240216865737315074095177365038306014718740345773926249549345146586376914233124882350272710193390992249602806207120485734303578908044049401592594806334055324129967448922157829796348675775609793014564189646889903430896133585635490796937977404611221680399940898161341580537886136014867822270726023978232203839798443702751948384657092297523978780154575480365812335161611656081906996546074671189705877037455153805136725464587213673225062594768269907377142755464529322394119776046324895186634586496289682894284185657884846068964990823884483924888121590671523792253761750575336512526144550749383221578495129722328120044523510576774502063460814100603030154240840028202591608149053444940207333405474093595220373302875717051977313570854974042904039609461570107217865470886618615798683880250123283565799729146542755528860730926930938055814102067065260981149802282076499366257036998477423314121018283781602308046424642836358653122147838948980403307416875857675408934693005882452609031900602400572943920069201043052443430453878002790456762425143499558063217928776185869604126139235259659388612792608710449194024877314312762884425647287494658971420546774076199823223251954550917225537714093572603643654060249113357391215354992937685000702620558534006975724594323205952366086608416863654279976205416904526957624209132965810721107673993543086903625501037694567722514037757498542384095684188699341539511707413190143800566329282467509083811435569659826380138870441632852982490789513600584168439794636441762020746328914625583053384357401992120391086752824431974344598121489272497987205046332588048579049167069282933082531973194479000998206298588253527617644518476530445668381312967938628144330193274369038610730306866261446031486990105798235154506075258396077583784903063227715719973715717193517297903539075197021742123016885542594944429374045538074326560935217749303155021371940054736315721860125921735146122640513500843976874245095478623845619303623050949541921787055775708737585252238002047126022228595426017973324551565641279529340120821860272246784223270319688083383203304161337295251016792305257901779353391626742781024730614707481647332969648919993203326226293269671693510605663039056320128970675663986723650457476410935832901771011787445484556019247825602983199215480787544346408906455935440688131325656200437814687365974513208955824209735686455303680316160810469751269816327727683418213507634293562008823301497551215238168780903827822774203685803267682713698393604280865635154537359528334342912837178515614528473468455634679361716845544694206729461308107143187423577527049721295443101567689485091562279846227213405128758289141791508916467555760432917492943445907849438926296917846258638118945961933306860125382817150898286751762787087578996884605321919929263452430614773998978997453739080141789693759537792064822691040454049681562600558774834238951808133409656728606547220194988188645383584096080057412596025645535917585120973613556538574534522853252624493898245594960556242656064832856954247836293078383929181492587598853831692954557704809736543912943924956530473044569384028003854008880728149842469801926474461169243256984115139910555448051796815199455651682359731790834298451991908165578826926899092834477973590908276602109527409229059239795030006393501053304167122596740819229088593822457548530485881098298471317307169451316641863158761095610295810724487458810067786413510703621207485598947549204802882382699037956877519162499354897273842250716339954300726504504997661004810219680953698055024824456994801267781459993605528701946782308322821148958107561568669312380651433310049779259270454800687516842010987046430420336899892151971524633118595819062025679956512214746753685236023621423153752437205029663105777673355463770506788161929282575199439242493995231818054174861080794686066886596748632265063634399134258632890804329907404891297321683565078344884168558408876174170482029672448303177242659573023274541453097135668956690520992418386124210896601833667938980422209404536661254510393160796570864104330594262702964561312679675809408965905222811168752265268993111467904953687606873225324784546120640852427292804476693609965632298834679324513674521912681617472272318725731191216365118954934514564991778365390499952480623272157840429156071264635721504419377924341089893841704408263562456738484725639972744849082481160948291855891859777669678786143697469845712576585369523861971055058081020454327189397918807418971912903865881830016241370929364167029106229106353187711635010824273553154716463649434886185496295494511470081800237471023823239009620866743116756197340918503966109636380147463242933995056763920990250873004365465853408077677245402173676698018533661783398206971912274760825691529554785067166340300632683452225751289837696492698204351313059105312442425385606878600188800805664384078618176413933424580982062145295544615356241872889528115826022787350869912794296828627348955229756784400612885546370667850926523069457570324738961233034551491157899406310044983154093353877942515198942199905534038688761811723714943726451703425881755961535322702025901549358496174487162931255277388119507495750423372597312817952787943056304452931315683629134148492722117135834645543320373639037459977395494814259860083339914769193729352486304685158265543633393142986505312480472959584674812299294163596903907255044702647316523303246781469497887024197562216072410585934769380863421684802241685785106980809328849832836206523757002908864352306370661248674737016407001509571401476775195701468470168363034089193483891714171394763860553031750989798579540196625820118734633894799435293547099454576370802341029221377106030996843484419664289304656937764226076084214030095116214471310659150070572745554024172133374965173496496713117388132679683569861074142039888082709382548780275960585162985143187214775726442743936629109106143901577013881519311958067680145428546922761683892812725024363398595009477567632545884693658843476228023771683478372228832571715820227420666150023668039956759822027746725671423464408950793194229799953883543664374921088772504970539659411541140937892501920935765442238205129379013442786151282872905764295525000604519777454290095234325237370926029013104295984498730564682130898513370628094279788027040672809531595734776984879798241437493448620450219631990739352807854953488649712483603659208771976656922868530903160213781585544029846108308964984636820832997322301877545421249800269430051536876140312353332161626293750215365827366017053629757564525957142873711338577457760437381433576323488133316626341806149512105707162124608016127247256322734114493843699487430372749824168236789674532432957536829013644713123260448677902414740190214739462291537060600010802547772367293598199959536311488190007094804272205531076288645738536611785034656337464506664187688357496591419284752233675587635520766724129480897864699688040753973734225341556877706911439858302567085940129996876372623792741523176126623165759606505487722335447219234055109692331946662261246541984828626804610490898530113112852383717244984116599068870725502409791304443163288647340522305313479824568855509936786640292600510562201846436469231821560262190855886355320287553517710384844990032510741513072562385473145736416739084834355372403258407831057696328233734956595340671630981547934487308887971045887828308958041995101554011459243165435934493873587161774659028125291619629597148933247052888374104414879453170519360128630681241443226776093238210311518766752510064538180269102494757492640936326709487234922961599856366673156256454004928701147810098696375410053229025497967003786471753164123740875136284613123418993466917757084161337153986591155950600442225981991645636129927816499613291487641741252031463016569566282276629148119154091635185782824927994017902287091746333629201150230085312019895810946335609257578817901315735081853757288026800746590363537128208099500567388562850400810190787330696238213614890622491206661857485581666767315141607924307540262122777237546442352220803815101822353861829712700865417696681792441172104309549286510565856633636369081375695993769705351197649942987438156279114440525705978404012600885656768185685054607430598447105883851387046566108419463332778504466877935656967409188379157904224423870554021802952010996504880046588771721851869284493150526503947675715844643128240663478682916224457265881486591355497370243961781397019562570442059133272895811938552928424265717965223461411186957081570709804980448080948088329334519628172449052463907716459793233332499524371603869322247608419114212575428977354265575469386021354993398359237181510621709684501170764300470171194163418041621911447253742549742394486482085533405540943658349736685244039229655318728494941332323141140046699847700755443756385997967096862921070696386831839566693628369001329752387556313132553311088587490434627873617938666195654958801222247924794161774740724264102429658797830316562583742884875427285802575990777995665369668195087704897566907647658312544101858777950895198740371221893594528417273510536275969447041179838815010071495632944181010394636205880501713153253432388789762170349541064678741771785319588075224357839158748240143541386081043809362009459372024303066786095622972513302960790154843962015563769590613839012924142698268552584377060084958280648171175135462853790725723819383848808922119040771766223872528740613881013526805501904587965497101904219670740977607354853600021385891986079715273043827415998728974318048856178585453116128570074453688798565186744720597761681011890080690049556382128395391676333142992280320745605012123360126976167418951478141956502475566105041576227213679237150350911873045484201332433647448066443449751955395833452901824762971200626880325649957028869369058615921556429607135830203953507683039506943903164371533275412266533665406717375470680864607523373941851037758175702039639745452902446572166000796048804839461946652756077659566149148140657044556237213107191592168937471549059877130139387477999263595258271733603871326985737183752638672053504668904443691086956394315269168336327696896138608937570370492383388059003536448749369388976170692097739585342580240396868844411932145333415410306470619781038399903627657356926437731832673215913661189519575344834960004214880348993556111034001660865642926796219226563510236304525222307000618843079769362468041840458425915767471276499360277618305759975265330220512750659632687225634829045337093069347904010936396301965166979724631279708302562731037969248739214321740004195760898688409055781439880719456576907721687779204131345579442653388976772230015891358634737659964356675036539464748573960571916952626217956609333962132923656039250119071053840230894661828940890295726930230141930185076967096574861862435892172838619083162279910917606682800990170311782116335572603281452875041291143891979078633548995427806059443918255645682910613346582534560842098743692182968976771894359953291795292093332737336278541431366719278971773896193175461517383373062170249654642710374372435961612227250362863048227870114005335418277384529060631480278143618882339561155666087998805457932009310393316838452947859243402891121160496885093452756445913692044778009647124811051424959773941261382875958751123090080629957091238849929109031890578115455274708057348737896962671507898988895603039900323275847671013737400618617114589483297895469229354297941471462131836830091913550080369947310558901107442561742993106831752548727572026009612265627984065776316005366789551209458595052899467634719040049958229581453226634729299867322106174731041931226392349023873977598992945417459988286500059733083371771056026580284700526676869886126482139478660524940906190249485312017820633272175174507575142935994963665537035413621253104164522536261188502754382976485791562355174009517601995039642612631175836210459290232064749563424959181488209029738088007373727028024478432352689306267259074192335409621911802868771035388197654818549604761981861499557138893620647417743403104067401168169479337665479187968914780486724111793456789646646704786654355398723941699759882594695235387644946256752057153478603801954975966469740068617159420443043030284037867574479579785141595744046537030744627398457262994781083120487806451884752005539227056481020416174961903938046493493767586229239801605147591344166697654037697124489816914782650510719370970825367899151619896735571923880206241031880519652128934584190179147612112388453329576300191583725440604189772408199542217021976829439254016874782914782369372747962441807855435953577172612355871038563931650132462806962535886288884694068534942448327471735981711634865979706122570860613002776710412756194602452838538037546223704664384646616884860499433251206500166698444273790101878249747123447091164210946311549641091158256530682349945230342261860158594259404834313192907487699548363679105543152815891624559028128676691678582581715531823381181954405848165190785252629430344689277469700716902886164226647726261818831378293535133646870782787183015384090281458459403806849957058511962715106910408584847847034614979748575816836810514517664372312187930524525419471705497228168085676842415312608531403527426759604366609219009772308045690067846760061841244563787806481041109214902352131196437291911436031419887246903374010159243743936626618544587307599770416336896368191062125972225923111593561798693216304379772358391877899505733276574174518012277439758047217312735789553145678001881296105109409128571237936336152912729943663695484130008197643976599687337870485742353039000555470918108279891492839155620518657092550829207188790657372504880891490192886753556584676014991663370300398917906906416030838388959253211279833651178803026413082065995418196927830852526896481511613823222600465870884520049540214748290915504210166636371359423300363734789613947198800094844211801842755288598116128197098631217861858977896496128030750425472805252933573559311352211746500412761367308398228051793067692734832650517920949850412712270809535674979907852568678059426290976504141190103904945783855881386020864324973507791771601717660229379840103894096545229898039444581493515969932766724883135080015288642497694924100207016376903770547949391978595650205474492558266595131465905972874101094949408223745773149139659856342480412239911249295438963626972837224610163112708597035304498480591274529536516234141974706130565775385998786036652565313536267508545380960890009268670713547750711898644496564221940527900507930277920806902641285663309643326257555047272802317626283019886955792952410234405967678152528138130324159941156076531445800921911216282374616577537210536220553488180344409185991520049970324285976089796370845473872444247828858672195649225464092217059794258213738521891930967232761457809925667100135576601163556409269590477054809021402571288765734932009583472204506075885112573320299264140151948073451047153708055184127643572488482728815745127490152469157670775650504315091311280794354425334434678783857399607544756098202129622281662257291333973625152277268867580414974097929111221110976069850878411634704413844969313673971519800346890615579906076878788177681327238724385366023138291983134720325242703058400620274258560980719646598670648602009997233249215833395513337323332364532967157727405727414594806604474769295254411920506119201912954578379324651659142315974959853861395844116260612491827508419455910576259308268333336081910154373897205718436054285790747062778689826357954828971826227177612943249072985669015389612270638307948400566341292466573627330865433091119128035453502032565989758656572047978491987686129743007530932187249471332732923612796180209480345544474798574123975366479916834428661510687105655754421794280007681258432545013110874745300391915125381947882430578874412559155311776344609324400919380793435767056939435315923004887665411382493956494346938392968293441145216360399890056473612601004300055066173296561852980198865166687022518875689766031584741291126660960687806932398836241641291037858763650158555278990303786403429055675842671543278064302175417174406129462352020870106042810238219461879462291996362970795823291114757025441816009683610865625685099967784783949499360420209811002886779567648334531553212185752423812961642113172366527464545343110612446633552517140161054125704883745592345700603054286005501066040050129162317580497511978082615798681089672474145096792579715393881345128137170006976297788928825447275889137081997423278444333706167960453125628495998237453187003947809518880700206223080688864398596293691473856213531423106320857021909815726201573814824708032947655102301722488495074916880402551130225765879447335378062837391715047747620420473173700855708441894542957095616453672980191608184361653636002340513759294682827964454249450202886746065739026837988068419797286201599893754975289558159691270255907350419222830951066646475881682711801272818562187745466583306569676354559471233015927682521394323183122142686907432214161658332090411206188346789692930758705152760098578058320028381737559133325125414270464590198452273116408043601343650015162375384135023882095723939379022431439408277488335539709979293984063180979336245221240617068674673007935037706196246012747104448671557532394579052527055387303174742431089589488131912541734488261039304653750929707297342640430737213450214390260678224606258144662968064032539674116762606032433185648842316269886076088167025312113561402830466487845614178469752507214671407857844308123697641196546798736226071507746588587027136473595936789416475151339763867141657574732894776149442432189430692420349024219267038784556408551184746711719123261460167291235276554858101504281962774866570337834202964166388038624928960070665317303244835307412642281315252444682055164372958677681766698319359882214805534738078076722256696090754997321235159535707171399674014006939786895006192945043110877850861752572117683336433651930201057094762954245741002387858315764094061898974751040521837415097229492721681893719818773881839627606104812145022533307492142166009927145337819231880906116270228270940218871225487210917927665462941259994991067592554921597246247286441779327518670199624527926155891427862941499403213073037775696009194030181990488033462783260936534563718622021917832941455007379672768606513259162226410968350344347295804295834821852940052307370940059449785677585556502755662746394405321295412083787240265964827140782732769391417997470446825035896092421175866572490565427191866958322488395885889373241461678942195312155618530700006964190872595237178422964833724200293162150953320668169278843405543389918082339512247471149779551209874828511780276981077998380571804676744796828090001303712506279052812435765689903923154572958358970208140348340903376894166481621885019555680331200207803235929231125215871906249398155879263653788386184706948371904220182008350440164039763006745403854615161086776546800476930109759300983828257258010373664509671586003105624710399655927446309884686877625068956832474883531375051858431911742055447335180401830141607286107603572362505625858829126151905883209457567655337702203532488254762608444435586540304122991635050818700355119947204951618486375020454664588399927268042715233347612067070859451823366755385903377318310745820360493506620720594666694114026877530603734673643154926396940135029015159806258302262411866982221468219478855089515101019191096822591348404208156033294752841424260801378863151509123338526645348341043115015753694148494368140285125235078640690686610667868480219825912930915004205431227889953239974810120613310937956709509769565735943884458820019367211203037377715326030605528027466234680217674580992866391317904551158909245552190938592915687723298952473687098484818466038887513527945658794967264579761223050514635846678615160163783562854288975004171213669581810360702643396250993881195191710199683372173641254216024848228906092165303986612305508995264203043794311725607837964947695922379545370679744052207574622968425052198560698526205971391469469661014688515512928059375125364105233573586571966916990714006222683304266578737464825399870382935382483978379252795333531029939416907145200410064295296571221746096406559419442755562693771677451782226468107844038566281956312194703614258100943548587833763118249804243059132329737686670018762273637017804683885923792120679315733755198725255750432514722213265865768108150681974999710250634892545197619297230431730751803502750616583250053857258928927320798564031676937739444677351843727169018672437013449098442149078700776266213821341211909316964361049952889583102606267533492999014427194812538412960751222286079645902933919059271765527958531207704201563471115996716651127147664018250524678347684207038965660140792311955307615159262379365612034296493118891798275656121432441649831111451928808557733546011989353639570343559912696969195272621875608805247157973912957069325197643982026559465223050951379872703564397197693514908266210850651847368639829103175752449224125988686500660376312081605549663648320878943312711576363514145189958377997841529501255788728379828126122029352298419684041977283544954849800778538094340865235992658043869042187525603624057944222229520475838345980526319533383921097162693749841663334085046628086309874805069360129877495426141240524920475996432545196800916256187994059038808931518672232875005900355756935805070493192093771123923513346094140798538756265632223167970990990660316490980583188342452106330522096965395981010166367287910572758913478183567129894906409167530223634526419614803779823643636801352365249081550561037768841452815571622294590368813006490753118745496456019862883175720874814639419667766991793993841187988816892042703397732054956878791783628070675639091477768683581656287016717237276900684190380884072413729761905649733441301190595552919051954654603649339604088476898242030014840408785564922349527990244646436187106491991864050320718613487830577146082870177093444500013621304996279941725322921952544586288493790767243744834900342411456303599475678004995729675783514965969064111631414655285747341016671857244191342051395250260256825957125441634667698843972927703545059086435012848039469009523601017925299778431500707207372724300418780221077497961069912706982286530499359112295138691518468526502781581859343160250475890387256459430189849505630583632777082466137329416800020810309322645091620552358359147995865822009625792585352562930647339977982315866916894357160180643723423578862616326918384298695413370505626211527313698049171357149570804907232436346236029969903289176087618271568995747494131473724490601945465151927826199228920161400536487705270641199519841801258764774556618996991956877762856586088837353096540357129773729173906525267547897593529684920493946753111093565396398113773862469957947782323507212673530646976390608740793789288311331112605454731526821534493438782322630349924627733662134802712026861323179029889505324485829864244221379608430864202140399501474088513968605105558617006929668722081318678191597050000193545529475598618966112900000663438321784802279728730843750128370637538550567270969607008701537440857282591479352415625735218642261361875911208507169373009597686840182945806888801601548845071403461302119338374198357246760335514913099549116762512829548445519943980695849795321485427851823502613662649926145020070193359798958111269127640197598816792518792635511546342501357644379335162410452710644507379094677476912979286681132201957253153674529564960547400189277697867587604220340425185436116230729674192014664634576403715437670464762284881857253632787040902094596177832900819951220177504626599353140225836256953869778044537975699771646931000101863442408463024716359019798637323992163149758663045882758743631554718986231346772229496339970290064296126588202203385957762816076237421550417913773430828623953229828657331210313335572755061838522569200182805158918152419273074050242974172688202605034296892836625675847245937809165363963474561147274004523482293899140483262130617785205199422495494334160637472308188538800876357704306334116784876212160252705798344788273146920031599631058958583559347031843430643090818303641968985098714775683172681127057866884966026557098504510344176077488445864391410328254913399388365849921786075567854036074199454169547488167154989180515156185483782104244730850664459249822135528874395671198972436000044263688110554234176699379842190518444879269479407618402375011738842051905452621878652219213065928428881944188469373545455506995157336302816744477982444215377066794434845332621430080378811348961366599003973157817525245664817818765108190360452960784317213434599679065296862934942354166238170780589104868567936409861608330823122086432046040314064986094186771930454643778409306114312804769953236794462689298051952592638220412070500903426919621841345637252107949226577415609524952477676360601186372620623739840981915171995359048665557467565895222246200911589007768162478481488133836851947846370062619676336977503129864027008304858487063158268186705685915033960202603578691312328677738980358628724426563235362834067616939523936874709830476844418258843702966977280360397505621284660754747980030504743517404627766025441303160830298448088061838743140666350032203250964795929279804064000193001186789679561360012846807110663886093300263970550658926397102970569272221197213714738792770926865681116460046725519002570919501901852857524357094208193929823518895969669200807366151615289925513115900506807522129011106063487297607321182577869033562880706266719298524833094226358886113100576257283155550041307835007343900005468750956233277166177659700148525619717277599636027737326410002112036625571473361922633288397686278460576742357040830232122039929961245837900803136098054237861988536445319799953155338472501736409412840920672193468389610894482781208850392718367226411842141364359365529479802362556781344103065199151789939827911234934184338780346599057035916444311355984704146933395662290484378450675998405342372574095087650117659465223047437770483490010551376141717857166895921935363821799020970140878577685058828449788403929949740404850384099998100284523528899013345524152952343906816704088751102609183859095268389376443657034333165335063914698012935228757807716264728262319634809100959746186944931242949086292870873169138166505483864465146437950788072489176563667962537411868375996234602957905236741750485693036534565959200595134710905613468687251774191118593065302208989005335306065628863222145230787839081922372262117082115694832988694164016574945371612610215554392694327114138890382189858260972666916891961028531643863777429282771066911841629866277902645673512889255633593118194481349149334241932434660537362357576508812786080905766590074649800163738306213707697637977863587091672103914149516589591780660539673307245866215378779738096169865196345675645770543736205176995169500954972767034254156830025655408277012602471011400448817836474457434009044592607341942051757089163817413975111657949250205456319785986280716102748546372712577495368555761181147190557424831213927759524777915814264549105919436042429503802964905466418913539292326028203641799920832587513651701587535290009237050321172417348426576816055384345222892083009266721488664011884540423884794882558684936117798314475472233627021635371892889613528598154484855399927281601244467159481109381293468601050327144917472069535217163921219808129384441791918123542692977820467920076412374139617923394816859168581354924180551980340031501583467168440866353962844978009019551323026777810638979837932148247176073229535860816838014546791349056442774921560155276721698229534485184366901437329707436005879695208219907652007807818221599339555753958137313312677995891880191952141146239478106035853852890483947268474922728094608138766206893394277206591495028345529004831016104462762994232918373729169051727250052061273618015718061141713081482876615200771665241846138031045534454613329607861878508488949429567099584915607772892387233819065345288888796426528506429032537040815308721487619266817007926942865098471727932269765111313483355226501477177469255325352593494829168198908976996835864615637470566598049755529445655556164745187586384904948839136709795312546652909676826395194024740449313568518570423077334377495724997026852648967320699431596578575787136612946070424597711237331458184549711714904816208390739009293428659534409080037957912404463574649223343560110446017571563780570031003248312738844165012137073511498548501171012221226287765816929851159859604945908905130567394863174068784747916615043935878825483453011562880187136155085712955447859254518433277935840049815935550871847516371288597701061372554539607996484396818109227864747751009614616133936464685952309929224809284437442140108013802986320713674510394995367811470591143755601100296101810894680245179817516185973029728201253049037068549779303524763782558586812587275601248143627867396551749470993700090281275320900966132345473392773161151630749322374491440878901533307436977537616888921960801593665555112254837787931959688359605050570854115251171860545460723717341614226527523046996875414206597526295698773492806662327876952375386522535660237524061817522528094972349722017260221933221301343195093089153113593515202322485686961199276133898833108211563708821471375750303064435855094259610742782044171027548595672191270772503684516621730196585267677654244770112535485177995297220229037334474916908211265969941351298466223044081299344355530556797513594450294887036398454757270183501163784008132117109633317111862894253576140477645903061581960228081043443581292387262468470423977711019878763305204655382473039485073999920795062341661073747847463436128954892226102482054820456814249405578825566395354991729686540829336347149945218705244323034318211430629889785476033104274191113018857958751565861172805039555463585940483932391871722763329403495259419271581601989316577241644421534853599984206665029166236890760400665452961729401333017298703866777053504535853408064761587105315931460088449233639990461230251467483714524174451350120828900133210806878859301625452770262475457357262009924519529540309228647904017207469284682328822454047672851028682758448393008085090141427015252141327966394555191751457559995752586492619548538434201596825780732717964776108076535359602974498078878267966704455604098799368567234852360256334981591920563000393222584512059617805414450389370626273768939653168580971053339962761543181164134215192854512738000692232463457881378999091157963460264274197005513175847664550628328217726751759999620089417093730251578840059980232100413958595382581883260270606878519646854125183793856900739942588166135232298266396355952711528914093635855356723318519340579843286261137460138710966689098539906948654201196433680429731619157619281441259395861626191195313283459911126092280239172027998066511143957667490865166938726871371055980463283194545330255188371271767900354654411471201865440112793733989967590600016843914346030774285812235191065161721424110898277721041969028777602330376937819556563157047622202037705628820297401140809915315288617397755828012864416182266729927372748921702337762126384692305649210060663415892863144772988249653414656056820739185161549390474268161938050660739406448710410952839252169270830302095271412034460717493025068757235280470610514288184419572847065176649205313747347584413587001902509731214016890708395831580205290502598942551751150445742136250791826488557040734895101535979453088941288804249526351648229982257636965146892885584391055598240602174829289486419482360616914755277040704675357349129746171088201257149345471832364179153502779662036946891198268104414840889147952531473189291029892744589679441286468260241142293284395641566231987672377517400702770785338162017527350916442429669455302660995951224445832967130119861892742917117785930158438363412205450237620661818674050737688715676724013657093595274140919525622273007461040595970648766986019576804630831380232793630696747962489365338422242260838227415737023352342749437087769504418010090516298450775846876697058974921120216016814729778187307501863773822252385028614227047331367323364960042543886583520726007447723932647154296064608983846834199977548433999688765164728526503563239988548939893900486086504509548633610236042620562094687345895013603533176845903991310949615259134736225637839326863949145284674168415040359787956390192196625406499527563639924739821357331406834852819685067420626365629824096520418096944950373855521992636310495352448445937134859340850153497477885475752210075221242064497437109047951586986171960013528428336321860336352479773509352617268508546415863559771521158272124594627338795367797808676332622537536657966744139289548583945696245668218208936558938117914022351034046680551724523618055530731103487590508366595921210729688330575654213327443983787473482122233089798931135623175275319054608784324694796200742201880309816642739652182668361058066039119452015700330792614015287157100543115064581973166339522855013502159480558586033900102378407475304380813990375329174606781925195659387587351539445982574139078406148381321444530029936160217920682949276849319775296312080169926626886818658736922302621388941910643695100281431335993887336421293086591214507348619442588032616323742472624586122465766134598644326297475410555857260205649369765622211547227613104191145763993008737734962271828968486577115099978707188215222367131868904147243911690047079094989464968184111303517111938775040601610942315391567015084669966479184242595099831955646298336018075856755452376941517731803730184758463106580019704958147711151393912348500104552751016459922598102878082310127079946590463727135024863513437608785386368504425296494194446902242531904919524607590471419623588129649422678069431190090449590595974155138536098061583792706234411923132868675244576620633546877958790350036400104965586006927696075001959781524886071112421953351193690147186665534714312363674055764173051831042611166957796242970749738792643538175339590164460695914285922559312630466364318723919374539834511449545833776318818190187556943005996627295547566749373350211319724669922391451327525161776836831188431416403601404085113949898410527456702444669305078105680994546832199125709184271155445949064246392646776707381828605140198014585403668953030879367987569039089786660902301481958708034055638671804075216897629733466114524929627343338282718561800788551818989920156557451712991580960004149980391892621996793625768472973056841861064791405367623107827235597322584875975300213872752398303415588160923019230467517328351046740421232021345133853409427398096746998176702207007499126352541141431463441478946358565778506017379232507684289794320238292635614193530398721887272586043519345736252621762292323278449382003053946968834774714694825287396671368390143416458345608619142008908969934411667806334572294094455009428562217553327738782570565085698433224278633674985456969235990996222672501216702306455064379208298155684319189169412219509815031326169002559821771843219228248052676530849452130796850918823622773956302702159010675029482131701904320465865615536187406226294913255477520939007165719391052838712655508034980762013782562109391807488872301130067874530466474920999416695497716513715733826334206245672200043275556360679358121907668813582856137345433686444602879276623172037019421362012670039639867182717143444120405349011474067328922352657914617671917701179916472896494407869067877898370917720117192558566882984690315806008672056969704522563404776197370005417346475461741435602210462043719542898928044376744125806991754807632103400337706580551148661366162335113407775726239582988926095394140490648573263755970438493190260730016850828460892905569888227713796055364159012448175347160729450188375570541242600343439682949271916623848952442002931909920238092979068295457191674872802178027138554592340465418203939441240585941926895311234085961909389346617621511403746266917391281686187997860680423993207966940047164124222961514298933851659452731152501711289273592820277027586429353450635622436965323553113422913450614628843265013450662004542561209948723995937293478085037984538831637575208120188365465167005933106873416493837232673045879885181687236854311831560361592239121799894157041756284963146835171345957623993290277300385949017716283512464120317436187076712258926392784251879904514811901354841317023844718371056547957524910063600979303194344587736545972916633842344594284116588504536225907224972011217008432837868322468023448082041334733623793069763034229775510108323973115068974077771939368806164917597527205543776769765271359480915571000079239165820022090405303114642923000834569104041875399532804291894503551809521119912720620728767022913060094968795928487810786703095946310139299424708141006902540690770226960049242403110149333420321792098941460998637085504778627677200868704471313196808779645324333022023237456024248337733459051636817177344322744641552748163426558039604598329796150342794094045052404232345479239722779798335326528233632344340940334153847373188597694721447413536389328534126991934995100372739391968592821677621187268241652174769147729070933928816705847511694772483512227506525803048469397304870885182559617561654588903679946609478590729611089950992296286347591307126002649596733498911536136825356517842249074131494170948916941566651595084186787855829243804856189238981906060444939803580575837056132489377627181732881793462105964764341399329947766501680877435300183429942955577106165513992603179142685391178857540656280199618593567751568919060443802134600135900085705322993196939908262874505747557233770696750000337228314205717579648816292336875156915883444091427517725428896293369803013264284119448676956511102633400081143545390106814908132843521288116189722969467342041203594540844895093641659523691494107438865407071923843459114644143387754174692477117938765266158238593766638477037428833417258067257525581450104941863529748812359375019853141189569434262769643468796789937355121620089901607287488956661131219456485012354977503217037443401763476468176386540392610897320033191141633549817674905929548995437675838342809457540886173529097449394050302736235112694350508211861281824167441982724844905187586923559705040873678539871368620959351054804850139847697122671090903301868688733335967333730495813933335732885093281354774030514515200142808412774785883889720877711023755850532376545539084995586890638751683452408840284748171509999803012448794121806495368462312515047640967329587876295050270779914972528638836545456279951039468293257642719889252688661952613074552315798228539588802044556613390539686932695426211705465130528182956994371847373276213006959869020537186778620287880292181207427109241128710484727553689782368010874517348879070922528920799331771007090806049609786934720923522050205010424269979309174541104573143203254149081772721142394404632291508684235304842020156928713149244322159724891839545133186618987447215662045819222163457486288129877430805059986861019275991349467669594773711211997592524892939698552120185497237660305401621849893088074381996135729660588098404797531462065090761343075856911129865754742890360106509037452551765509669105981221421631651644516611747251322035559527129511399722655825794480839946234404113249941603054675703148160351565780937864458357274008209730699039040351662431326577029213375531571756870447970424975083808820440063124445651515153820652132867412956970806124206598982236487105253284468125628456181424719851061563161947118149029092390941297221943537342224522948228100556168213585440341763041817419548434464147510752896635958313742179457032628889907300282990663369677236551828766872062989265288214854205122941846683315658583520097223016952877362023758505957438989157772044034136138198172474180566099798281552951750096904946783151377323337795350169072395442372883818954184514228624504737859313509455944353883055988819885654372156745589016575980008675504959652974040876572312078364157005837861225522310514543042080715439912323303328157214276553320542038835434758527553958296474932829581180581578929931545730508911194471438964944718867619618144951054010990592947467136246410012148551192695958112880283137105566824427256278609940420758839269325471764882675674843429997881165000751485223581030987968319175686336368135681515043740944962469662784729673101021219836091443165640721141871406620571175992343718131377912674265234990904179984757414063257903133956693820926221611315397206071014104851549120908148770905858293078099370703306209355735529398027873605128402124667747093077933284590644712038327573767199342061863913721474874850573539843588718447223650732611611045071587309132818717614245021976068997557425782151166886120042270783481802065256003942439001191427362621357556239931389317859255845183865609586711624823423040562005910445085216989218452519568440056073700834406403312168595069421133425151869202693463113229173529523267104871495698835308007426022713954931330989297934117176468013573156267393060759714220448099638501413259995791755067699255177827941115888653176717747756321998612472148154318177110717566826163516728380648091807475011586839873754984622781108201909905164896817101522922314055954551604061702885976109625572202892703611069970949910964846268104211845263335713821759946700200134301943414141137944603264030209115122463490010810793010030983335273675812779760643502284255309347714815481282129173903003198601917678422778075394704802431404060178790743481906030576536809483831094235608368141653365231598815579685382523054270213206244509750141637321569574655038972797634143074284540803302147527653971247774197180773529016866074316690540644544188492041150808074268689218107471468164595586805884403262150283496834993932112381758818329734138659210745386020955369281037135097383115656052226793855224425337176341728615201362485943395327397438571973186916487466542071393798330197024857710849015310489230014924564967590743332929114443760833820298563095425971249680350471702726270612047318088238193948650914914669530183638439448808415170925670831245180546344283735560920954878752266694111566178143095916327364206678026561097288857744251105922832447665065128270564416738252202179503032665515255030448422198139589778994918838917263919836076558941813269797621140659977856217535918306513295356805478406158149547371836095589502816613800369768698864495062977320564587610823258915981844177320402532023338120075910898304293539392502156942313706516087327649255171424873386066862412625188017536198875131836255355414651870247209595550914908956275734639163105306150284783494877797645066301629882649963405817544280109982984462906236624638118741278731140845957188262906262271781497642792126232343989508428000427306291120776404129286671829311399909189894569290005504455455077660250536017616080901857770080495287761248114642844294398912661046845435924737579159831487367405225317108610707859569201801120534356727144818092047517290274702790538260320334276160698531431119743841577985466808501945405146300315991370038237503063173294477276988715609516314674284029833582921135682027614072498763548186678636996405392573022803384595724950889753161578646258333141653169749087097887810553136546341497219369854027163694589267944749829780865954293377478676799616353198813348294414221005230748889366005767399664333271977045731207850488432817349950458655337334133333696595806502695720698130279411630222301636632837028568998918040932624412783352844674021234395451722083945327166816970441586424065786810492626056559854226582591240132782652412299462376175651738026755375759554567772045574853313361207922472374585890571420423119348718483645341374924358510811712442261425209412720808589390567739105356714807788539002123226856339443171513367609834063580905970576037220838482520024147188043590908106033511451701715864065435439074822056995372180280990844619724811566555089928272470746693130215688509714587239682686442987622631614852269956479921432562742257170500819606065893018368850003264206766826228070284111066256574712185007070257323685397432559602313603938417663073669148346624515558307693131150096040866767943917886879355925313410498505056186384806160081056822430327509513988179513355785981818525543449864975591806841454279278401077886305565248601510303139987373488788494747775348098916478561755287250558762042703278810647524709984422193547079475477160604085281106788090862029391580914711521713137194969855023049531480042828076617570320720818191401759824241134166572314271019637714178616978291096639462599397699787283564170949932776408211561943287093238341482386205488312979452227211193176614759773651929066510593315095207437312846005330892152954894313689252300952614726774261136985722053615615832272288706873286710218269250034221506818057290607815871405390317011617080587665074707208707820684376883296845260936411488148488066911802187577161322943213182876878991123150159626860452426158470104264945579209269783535580447893305517585728486341681908476520333467239207839990395623823374738154661656170520056177063586698450247554213310387167333432426588655565667986623649891217887686345086686296414117078256371045768719348892756976731774104939402957243460224163466291875916615003180535946795575647809519363007993752522964408353272456621880048609471632006238184789260345648671034177930120241905238852991062899539380595449420057512163931562758861125967859789585273498837574148987810094417082900806153536349966485580211755009812140358290718772679999582078261050974876772582974959154920721940627402696861913456201619774520471669086886571908404834836892209421542135954790458296499932326996056949316963828011771939286696136112484213210965723040198086513667227245856349964907201637084885861640172524679358214331484557745404953800723277579999163578800838129659441912363617204967414807352936534134184435147820458029471987780247682463091436299715587081573801689294297607225823421888411661737539925163194499260033805277204590025318059026002521301427138107509143728062753201393043273130110455419175264219647707661273276445652653257423312363422607807232599228804160045560912186954203888617634943749529018203651032440683417321862395953725962516412687657192885499903661306731128553194205948941549391342561870728167519279954834016544075214410380667576921786373855936125148903698304165112507938885241047386336649718261805022123113297641630463625831201806891451814408149465834818061213058332546902601529886319964548654895122851301692475933615461089765995720161965933094503660440951332626220893703830095761105914948465050261267436896348912152420784255879837484427447307771592790319651995843243861334600863797145292248724988353179915265797369255019827245861393300501640848547885406507311029052520182177080523347089538813934727600315137663471414861200216242096227379920303846349085849602847877450278982289093061697271922178944299335803387715402495326374315982664259757854114479084899409804513741504069364612114784824684651685495119038176314517911581498966306129750832142724159087527921625802805407860338763544526096870717110124863034583303289746870014289887533549818121806204996787455533609632315742181521432317183470507949291414436269965671296136886392351885654057462185650185438587318863446062184695516595768775801303123873503195677527289060133412726386329895734773785880659524796442278259097587367449007864766613757509054528316200937235493370101313784339536622503783988361684705059032059351002034177406140464189868949837720047414696578457292289122501097913256405668531906803526042340900411292853053115951464345902356734185847715190273808692655136534132945791567656147514006292626072162518521502290362148883599350458088447476194907040410551231417237206372098498719968284812888191397554744585375119030180707478593358277534231888854391437247619184508334674072045953387710575661213729569950851799956165304249589831937649267004189646915647939235282103220403562232082623166287796543242658407072803387741332484581236978620136045215248911458801200089022075369128318275904971388887571894855186027582593012232630642243646551698828668406133012906877049301747837521227153692091121542104356093448012141559469147757806476835117839571455101608619655728124779525380434092930029461632572100865732109191346303982630186327764428433375313262507664961962985955319564269357439814997697725095589595189474948484853761170870238650866678679891900431436024635278320092544735291235293330457103044846405653637627585510939295940252665491995638396091212007048972057687674402149415860865137124003489641459103918729855188241954457098804147626604339907042856230642416477601014346819666958311408029291651339858882630845954133505896617739913739490980838990460919213787093511570808851437405124251414624238023743736141856505867270246691273544422783845831127812055511705797005069221509351541184033489626657815981650222124248839571280316287753380036623270752181156433190779088890492412262236375598745069063607319446422753081095686639119432177176072398305444623328827684775406001588495688893740710032485182967904261870037653941174389237345680157871324416936239723259981923251684747694847769192809113562612722381403526287660415822318749641423419560858371967527185383006479613657757025597176796447697300109069697808083142089419265110912429213564940161301712565012494157601353035609827234380755575289983396382802218668673841355109998766158065694060859904681022034104886499980768805552036964337993479887792562452127267853343894760177291582577426225453458067307756312337259428366409086552751855867613284232403826272072544429787845569931411440971871518724527528994810865252944516705256704154054665154688069548518907340492167533574325170112886278571942190050740620563917335574717961773933340280449459054876340495960297053730910896767537325030255941407231017934932484561630489462592114738799796089131009343774024581474625604761468384282250039131006002428995666063794239193431076023017976802686857997488651121261728273316502206733585457228001517334068824435852536206088804546259786777876782783462230559707664416462983763597812842793009091077495078878177679002722384637880670521278944619516127946828037176356994717479344253810790304914903185717332212836196466419709463826892461084696000182788289749252096073617615751921847868812189783041550007642147935517369209278899169355566497877621192101938939163147286916773472211543733468423949663340112410953358497055811063373039719308358109328033848242150968225584887151079812312890210988368527024812605915692126769258145913813785652768988465722019155095553501930492732445506578673401596574156070359781830065121302006210911463643093181402914117055657735871845061815396765350891277399079818906574476431793237102101905684017759280640436060435469905449688187265937978062971433774985945943923150073393719855415263536056065410257636493120152279601241984346877315813137517850542230595981995334403494858699871968677356999525723462093351014300173794124259147757871940244046136161270146494407528062546113635536480891527466891473545379223914593846292525974294551438894831186359292776254368129807574972368183563540807949190439723883892844240702915057031092623677415674768557789403402553806906665461460442055655967253408040280855832985658016564184610369438532027583451133692474416286403074631672344273483837621979556297838749016586730657493143676803122792984460989968206590531316032584937838767288543542027486223297928960646877937385185012937141060453563858803065691013237977858659737647214158430838829053845719793031980035116629296639210801173333596760635241048612550811012161347327304335578118357424527489318718890376157173124913463031039597837287132189696402901472645152774987163323457952664949312586578621766254986740623931466572464595826201711342304097711236130042567027748849344720233221381546840058661449090274243437793659171572418799182520792056640295945580983598776195556092998022676979949649710953137587747058511822682298564656401326228229952544169503340751902615436074765436810590058186982538473012274788200730794288191774340735705065127303310479461808779512774485433445307371390235066459331313116993514275531854753930897714469159551439351422365681312003155037272047974084104829764336601577493373459036518790030648944356192602003730109108503698246448575546541981167555943015554172099585027352566719269916563790304940815796047202144057081001650587531253178297209930476026592034465275270267252349660529753035065373437081707983952586920431159496202275856748000220126993487199101694544202040172317635454055090825455555347519774573371624203214268265405798671853169207000979385303964121784011754088859632100761619230652049344527485663348885639670690010123532679590342137744303081887659722444549053714990894991556243630076087894951180948637078700433006795065676310094784335896879906690160164368774887277709332942244954140633164677977379576343982533080484185015473494464731516806115819280009510543745033378163942218387040429221730131114379828171634434424335841667226830738287792464390693730515297563574575025484932326894218443095278963541450297412513944113605810359955335790262256361685641951944366513631518786027882401747951050158504471393225328340878727204288251209945142254693197187253548578675956096320787317521442664797868846450475782981959519450670943235293507145564802561695591220801778987354156236323221499872863085402078003937628326891993628723057142831522954751241509607425850285071645030870012579711911161378424670288186902283534560908246784894959405113949808010087253383570022430901675525152008835560462916828007217412420640393298228541873809553725819554221366965438615638894773546368767145523188844638527204209546778119796179343592727766698492982877978557130395808900378276866082674316069029587212260295363103168092358259786257023754140673036102508709633292713927170422094751971849919960432189031801177991265530247703165587942154386274621501072598835449280598059621895810846769279625048172350745253786878523014828092766898270464818762647716666441932120406504297944917297526200078569509624988118085370095350968706045634935428209501039525894163879631533660275210149189004828122363392343848733155897957080256140197794299000894376141934416826133517034961008186483638036083063219157952368443216062896038039195599356952582724260078329511397258797023203742398649532578515336541687623499332214067327141010095760416884147613110261933844851351565095810000840654734572378168202355031655774700175029316859836312720559714123720087095641204244662592676672670967149145114654527688607360819038938331723327045711234353631589791393130445042163718290087524756130417345764513955897486928484539889459039828463600041855194239911846225203567742877992806110539087538813188218447849876908856734923572273134011986735176003830790698130508521882632234061391688029560490582295637908817518267476899969607970557882346034863724811678741336690607604170244102173732678269566338573470919026457156332276654037021524456353330638797521209182517907269004293533904955416837229801506125809413144467499836286270583855068415061673426151791723635711645069741236438806977386189383062098264890830254421832943398334825756445025661824879714949401783826187667537908879284610750908926407129216048631145616545933869438289335311127498686879897649253624596489363650875270049383021469156191258623737659561048538725535526246622920271935713473852139351840989438706544574874267685886371236036395113937955632255175844974566768987912256141320165917459451121777795409746915270940640686745416223478293195366888337233153076693708347466032348341138668949428439571671194575926374453527983638896365624815524284390350521910672518744529501510946055097335815019108261418515508202368159378964625720976351668408634322497144130537155144320869439926386017849779650348800100850458030202603398005421574092336556707465673444305765853277808873567388266544998090081681689344245993532505762122137488405027444102466781660768147487578297310473206945734082978695136976667223522796432076848222860627517748911709766996279583180118161669615930285547248016440134438758996368660456280542210550965898073071591333831222689575094777551536671710896356202812029852849391510175378289791434890044877679181259045242405260332270822181786523145037116694786308333732715662724984690092958451601396663931562887446783660438852583970692133803300179414452562998420305183361460870449424340991512099649124534553094040992459646087160861001875635566704501442155950380180918206923294079857431344876377469119981862965496442899930402087907089837497765025684892125354383500344256271126448764546005770661811008737032879340144357360314857059768526956426909210805408615546748538353499384270103200514955361379251938300669800959998940064959812591491667858308721901589284570958902464916443104728597818958252608896716822225036612503481187775662177680065966020238267900808201119156086050728330408436913335924484145223663571034621125720976118778918713522809746160384605237665669458376479273174316869290990611720800724819851679416741691797347333551208440919037826524680895397370770085198442086990308635542118131366453837481982188087066202782558583651376321351194887751430495206937052392282952901965100252297893860985109775558920806496935716414127127954074867859596198663112794628805400781341477811463410678584731080555912182156971560732006818727769373224524711876172175118400912507367083879548574292355446196451473024989863394104906406357743641918644513124771605342185394149768579595901024073010523915974193963309453736094802726869225927308561757255973013442785057221746636771069847442544922558618312703855410201227560342280564585070064695900976133612226431978144864269388250199352209992800521042429641173194865546629451890750069550078089873601358322286792569386819861457471637038954604100993388753796644142038900279711416468178131426499905882472180020806417131301693438570846824306146215794732530271618223296389234123864542067532887107533973090972659178328319641757501119638828728205853130120544491941772377907930903206628314416593364792917598577028963201121712343218806117566493085734759037442380303990336581531116101665709161645310868882500329059457828927033596507568323313413243276724618118800486621356162154386560588390006360243315345834191630325708759533253888234276831109685876154382607125342999122937400735930756844538403079130242644231499328479169933288115922081487926010575610790593335571413567200387711365103331563731117464993166956552061840771990402435755743951658121229337078958966408682899057042550823014271565129939170952093139586365009249639883792808459674634877345954881195913213631099567214587504081438531101943850756637135579928816669781804036253205474857764386975542614658652074182279158540289515864565907547109066899109208283164362994014691212489313836547657488704850096055926472653642692982756297863500329867545767387189905924340488520519335708336161217272222834830793019499341190591348570774896726169219075838916972771656043466883080573997039094638185051985349858179083080645265485457344963703719877553279458246964750941758262801422424356979158725079731015687474722217708246454533263918603403802287868331697102651325253454052904818077458963103431210835087995511712611269532159083891368684000511472306229861970888972217058091158172459389757172022573091274966041074233763569493355518711353399598800772129920000171968353534195158205139315695529867821221543110182465507424096751946195302563490434521936204482491348190691277757266081828939484345967606521295422666696161151039057756426453083387159870900098855228556140701902785455579305793938148239878908916960715233619858890613763280304078331766849743318886241864740927045061046823836205126613140714039323447161278257889816090682889603645136919835788092103246440856900461288728477354249163993404344083760734546332916809082159829952842534001434164515533903630230464751877993363225402417089189573137483037112030080300577722465946069002378098373561364955724833559293353556467142503424714865948376797923861906190462201346580643836174706918335042688736968989833516419017591788564303321936693256968774241962366318171538038837714440315443270268496191720497140003860917142412832132627821779206594619667034243444164452995681253386122009486123165401803179967294986831273223402011873499778914225761011373080890607890433951706702606996476712218016518973231060680772992465950936587867292740931309678693469542156348432105735872175060895573831892276104540655650592886308549145156244909000940570997895728213530640256859584396554569958897936082634691439125630458374485153154263979028606239249116430383079416127762577854436047365038875325592878872536477949213178933907920871492739505715082449007662146952824889678392184958463984907588015699860468880507848828188440748107188528561457319105661188277028096513709707327293304685407500435631243592469293343251634489128272084699751169395773897195846304309511567223232251357943030578238334497398963928762483036017479846127591188937740129948701632466326927502159534194207736517257868366612674874892613918083941249775344112004303264501381991558386158798159255410254652259947278512711026169510329294869359260474838833400778336748216399073886686408088346824372481401744133457779484687047086969796792436172378002350936951875495857812433781518327895458762043940185762934154703203362930552832230729122898249937517603582190098838938875767045729171000550469944908232165998167897312019588534717379964343190680995987106665009314711086104356665142942790951687435357273525863570728273565124687308798184352834004973886203192077857251384762391444597776745515979547996280531475494540644337235976861123914711212066876986621864865028222501242745440500546997955746519423185311815459640449804593478654277217068723422366418563969701232831733030338554603237186663865923171099367312257386033291531803920846815892619284180884820368246541211616432628915826633879211910494488516485829685207686021397844035957984534342018156805986558820358955430497882850900879108128340619575715393134022547406782855928038523466756578193023743599588629732624642596871497534728884399773317631130548614757071957440785775354678578907049793332598411493461124991354415442969006021182766551931228225233111534846090443709849713512022475535358180212444395336676722217485525876155275428784337142969048303512915485951891342381433627716313725140919304844121937247893762320496676831140462775625264201924400396772249569768741419484374875165330655492357721486999585023748616175893123255496069081940175638837923196766724151899572486454496918173872785248392535217526029545641512890665853045518702373327296356383013833042035844399947270158354249125852523256553852127290453310468134848892529847177004490715705780570339178552427815202211918715709346252556703932318620277513880525529224606254240311130826239216903551298403797349280641031995889543385362225948146356293109528719777643124670339245140502832207053767051724537683093874723038104509547878199342996982375248302399899417752895780365456625558038486376627666230099880360654842587786497136319510729529927832329112827110390251002021299374332467275232581766427522314169199527745835051773009672796859005665826211694873214776033043614303272319512267105831584661404502286649604991224280114900279756801937019840019779731938039681793129149058948352294169464615591507584568716180775195824951219761730172399798426877783269220088272303059754049067587060804862209701000519566024538911396212188228940172465728263069389581426377164328508452794491043821583360861596887664896230304092890838338183741372825682789500513344965507069930942659592144834629600083320013200204712319374232979995902585305907657602942228937179907398683061779162149356045943194510515512002044109329068933025042821349231570607508793614278523531941336962732433118081684516758251219526952715914039716561555999616644739111681508426983571317286760727439457875789467038554629174933649990933659346205449281121380832045399351874904038275695688461266477508502845013321647742161141792213735949336968839494374358611779795121350461489353312623747133514357057299885952555925745221560951810853544470074751082492340781259089606376409880957245686622477795695760643810916130976822427296336398588920843557412766284668279347778595000212560641686954819364622381956452098153788042536762022878588019979502879108569325284970551928281762351729927234217615955711575700636505322765893251152589748341652042838632950121520819554456425094395070024665223157814473340005554982536030096410622676339371419594936029385894497730991264761346231870484375794080866900616298271016965803148999723984722893671791606448634177202262567754419373000910359732384976212523465308734464626574041477333040240919219133618736517194964951917487237500160622193647353972932728066499566352569505632142488680507795782791803716961967994964817947382260417120226521253880130413583266974187657593764088633500133849576241419384109579804581770217411161302269423425650995820754571912279916420998612014965744779384646958606904124578778818031212491440204940605347167310459666472405275063359603961165718421484874592491675484634227824225083041703394999296112834044439880100699913797978047852538736106869040074397102065391173636688105093351007770425035599496937171707259850265764342428431304138106691043181522067925458516938874102409044001585922479249045563194120001003814997451748533166070386131364529596778234354293452703569988354754237350408655067969417478045116428536277733758520138423698292898789567216443771857474315908653352315969712853050639379759361077233044215880692798298129036635996002778529151920159112179686799762763276082857877860230440473476547404065377105710051946325532638143744122670461449340146927254578182565706471993958131185468485846608478199555073816996070230237672566395555446542253800715654245525784970384496692130074027950184806594530839694943774395054830709274920263560394018464645936833965997956380259544242006731070297115525188293468489024624307623198409536215766299077881612742302182683028096442200410588640571985317335940730250390026979479733561004260353210598888606905804774574963397920441513759908489235138826222070732544280613813338989971053301630201488770600808730551400456791307166721281896178703098838850902818833828475114979193047149513397197844588537028595052048468031810821162616946515026154198807312120577746710799942316525807616472744619268435666358757041014281610823111693844931981215917391419821001462007799787090100301587370924341623921639897742644622530598138619962750873175461050548534420825491856777244331970876275732476425837136562871685758043376318315578783148876551671886510332862716494494195781981388417333436091890461332000340806002547349712525424381465659604753561957042109430622226379679909460438214738496688694938026032938955822705886692056161599563152501147618636410475305809881332985351610851171583728427833860191042774648178869339432271053143230195452163429757315928362914357027822029164591888072280331065507266997689788095989948366587473244354018039257072969362383950533614324859244817722071392522281895460471606704650384073678236668504474250538326488252489809412908240436714750089884899334816781862544229649491223859721525783588956611800092549043462872611862258349466571668591925694348540540655548572142271411863246745509174563308106389658936800724162731825615814409762832622377229148879087333040033488753894071922805326105647571113134834699905662910358169376301132753086081312867403685739360693650212647395430538482235808391176985488715417646552305739229137607698424315802143860040605492589282346014007744320388227033631120855538620101404919230732847347866471113941886491659200964528936728279860852610762177712694845222940126498785673715455961970738391420405082438500514658995934240060218307755373842651096978322551492220869061950587672808611519273982917950245493831069215504649143837252521032810872496443655839106213179415373001061595502088313110186650447550110403856870740027898764725470002558202668049270175378228806286816180610555921722240270045519452659842056033682070999658439656353041356342036565850160916755649527552763883979734093047005433916984160753835950563763169420540060293116784675362116498397967954803515991061658487636836826592216070304709578074429742906381179465515397600913097971554345940314286764190364944031821571528263463383763276450855315699811508277732676175804697222169631770053362177055208226330332492322172708660313136045003622289994988080661088169345117176090528858283073631263702471921290832964497402564487956408361515398898651766608888936263161556526135070630414398126295242160034561439092670080909896703767512297174778756484984269820344914382408556811760610386202668056770749361807072641585987583833412010039168756823642872895938421623935478513144945034706959475077008851247478516179337697627315996756965877991364615403819854261047100252833387756467708768450439961990584273809065219769032772815428112785119297835861888664388167291620459988920007779944655018181971287281353477696524434974319609768260381970035540001263149328480290517393492318487143076803476809503999395400257483994342861337046771964536306974327114835306706823339189299483894128967067182793523332936468785710177849965871330438718772023900044165869887303661546707045913907624758768409370144245380339794699900029732180275364431410846584035942005446658767780799143815745769268749885583311134260988124098481335969573981935119063032315964244488045421328467987711933640841787637262301172241238015489956797404221875878017231657362534206389854814571139249570585312648604991956114589159081525867799657718036738133401038733303049862013369713043811200548055311948738445974502205923851511876839780232811545187118334592715230947201076568586669409008964303879195318387440079516591931823131065226258462677589079159400891513801496898199176750139777227576374190550343406321032518185397937514893795779066106293883596476129176398742878964613938197558468840532783854972269571788294147710787931610936889285009030449173721684926935553444379463611685638867086194546936842452844727112772807638483702491690229864317089658831835764004265407973979436704252097455004967748570342495252357979279273405235093081015004363343976322672914542651018057678401659491233513177372588442277819751587022201765191942255893030966054425944189690650624479629500700855886435149889682898364256542170012379967955858237920804341530241077286811535269155792268191755364098490876263646157958958562851599184626245836668845080045504173028177382239863449454763586428060616639600491622196582173932397991650699436512025425761212257497957685631568119092745840969703485565767795131106268412260704306419862951039439019167949202365260150613043455262414131801056415586062668098769458055631905346730743001694279837875738125838582223070966088354955641027601995020930775637991154858587144284793544003366033447755459120906131124775243318982903889494733788321512195155346582625466494142457397637931908732893556609616403209307056850177456237109126045921445632051929541943057145287765260013841218000476845221456553538633675917375169779462738720031857466556236378357513366624784674013817271966460871813101988150771917550369212964460638998375913827918463196105024600897374168683158745523014504884138355902203586110579718230812222962954796980603394393902594616907047621445386836652245377216438985099764564407259677330943786102405090985952562886178887835859534633318035318074789272117818846999220212530334394583381834071160661749005409302766610031092088408364468512138835652940828037880309518869724625408680262930849037241753083238185975478002036825430609215934391033525494086746454181758287244548432217831589478010702225890096474071526667843011299450609908276132985131402938898615213462084391367488959464377392607289406968602212027275430228210078365108542285368116289635924365120219336452197016958104260706737090884354776653289819619132181974712176799294265793173396081403326353908076609974581670303468502546177796147924366801549327957030444493107002173858023448093470911989543609642817218400562241590462977613285812090516522100989560030362850731240012672988757951822669903355648991704679436115675912433484385027740196069656128419554670636511679586041487515294447929109780643991019791591392302279103304997291310085885023170628617195163362023342648501270491367435296200028995023727128671978932977487368059630609620389266686424108528692540941456273891503718473196849070232398873209510923601943006533303726000040576860030122349724342021838866222899301532696091266962352550337178393272669799547301649227513054074645657190343401779412202510599660331724813856163780263991678267553531579871086510864421440339049981774131905747783139194151331860423311060827126130682622516027000401211892650967507104703733056180034339265672551203548634054032983634662267368844281088235913236242294521992544073457980549635793649103750605654412392651627236621566614507986512291011559356696809597624509158763109432556610158220218690980080136207050842086561000971687320099877582437648258275233937414364651666512887122327034162636347324563232967938491093988679218018817969710358404673876009735937926736543021142811555392302004625602726410827523725846598987327042815289070373391192951174419067170518159093079683084976504143458517363433999868100849945537597583903101419618660510303881114606412861855128329517678105862304283754400390370616169162647317760070254857306632567995623169146534218795080280606756543718434452917004317821067670471159913211132119996279789153226879592909792507726932079697855769948380911101420069344755255676682508575641108583208879283750560630414651363923677780765513692277802872698893465404991827769057890671216653284245862873435563507952589720430610217003279590193465922770415699938452585063079936941247618498514227772880143536526882927040121331747040094925948154848316667566568918671939655173931630620283029594654600944770069380211881093780571815403438503877850280198611013801161913058986938033842403650760106145563961323129274618153912586469337246483238232569348275778665360823743954211723819777088715042849156201288560201222296465830314929455223150179451270834873794359011912151639939634597502370182216420808940203075250349600389854249502200644046993450867795540935910541975894564278769108465163616206321959751788665322539044579038259562001320538570172979309118741923725600909776025067865535395346167610807930661178704799654043618919963852824382733104137484578264639457378475205556472156983957192644708526916041461237595633734338767443055345552793340231863828854210491677561466215296054364666904507192743982408280410486869496526046022024449021089073191697507552289272671419124801801127510420606359472041774554182377670727763362617554222378520102754537351410461785233900552000121860344730261976638723154536800559834400719160519314133708325785164923756024735853180131250689495378487146940213574787589088783576192695638305175287333727790292291009276487637371045940017929525948145186965284921881132097086895678905101462779325007314692612934086320485174362217694625396658677384284865388495437401316135646025494779232335049756101576451199402223341037246839923542269305130840990636553613635918055978651699596332065520701187715678250280864116802990141386354700373127299553715537756082159922416284232095903255503840252775961271202286323298855746173062383550993254337277789951208325862475010360260867379123707556858947502169294562845948688455478798811885578918475723469340894643406431289899141619134566640237395116936631931955114548800261330661012761441486887788800668028746902514275867264587449641887593997605440424831685127287467272266153671937254821617896471313215897656292396170043535101774574921318819780234182901001457930145175944230880448691214189841935489974179174861611180644177463963087197725018654691468154691326166582110423915098173432049620494513295742155579782702647187324584451093367090864820135247362276020035751586806606589796019207911331155715387858376344833587767277374926638106707826681562120853966191753477142196604010397102729397570641318280582581231034495284886441989941740614810994231217556337721595791357611619086435529030859758515281997398389082966782182169981725241432265279888613092365892313204532453857790053328644987849790406005125324883100721693054135690187148822029401674674401331349848267935393834677665660677709657637783855211621778235078834794227785916715210858556538897389851963831802873563231468088342477340719355710215150918411342972741274935116275744653105471706102895102759291863214599197490152873351798344903879455141650709427369484027155333234489247758800339173865438964515662531611394862872113193057406548349764948783217508627655250388928322849045622989981656501083066289090732605546498439635387404032080220313671674645426167305640217864621059152974189018174912427657285622101998522415260236017642030648325960324736796673499546663938657454230231394368201794526370214266610756161051071002888676417346147884881728219153063824250730299811782280971534900517205225181262786356973338386696963158474508305821845272077246760216411306300972200154338591673274451362256179396161902680130378554023839464156549066173944405487421490099953554534352044600368335359415913094416069271407506820340460745906938704553617423730817834599035239856340857067073013447548868429332494140583961941661586245926124512483514545121530365564391647537219099384462627329253432721045500170067315330097381508981767447084796694000609088841260270986638918085797969586199696173782513306217443658838718068523849368655365885915481543905122854221230115493511724435974838738083343999077854452937024462807796245298913343159004505045955179993553057061417139105549718531619320364345888229742171220365571091062116921767843558526683250116039237859732439283709702859195361357625166820320273090523685048766172848026010702056383806154726305791042918130054743427621350393904354036543158771855548778831146841012416063289453719921867734987467396105785592606431670707360809154766575161709856689279843332814313951640726384395480092977495473534461210708814016623572590173074619580645639975000203000356477206222565961706742125072864420284948451467155433884960400885910177533314873856398183738348164710672249635819533593620628729992611837997701056874820748302891292542130142273024594589764228231225058905176636070357959658704166685187993571329588026371587705727308741753122784560130716600860072010479551744755877890979363600512264578062524670278139185219040948357711672749992798757478661883407178057116216183110682343813553689870399959797494470110063896257262811276218339058992175669729634614374280964095378827309129970011028016614321129037554777543498164463750596704103306700075243663904495543061444129103354164646321770743284186529614562141041048127602736196062041374433680165790890259936361056623324600469943947211346540891582942106731333057119321695312854569833864841826063941658723238019547159349711595481714251943048038935818441884621551215579268663020172830573658086353933044322876853706921354767672831865422466949393119563362688876944315381010855429763810188993766249945988085090419165915839851646796448120053364539248902716719313850495311723340931574766815931547530192561147733128021348770907723741572547785494621270109357635540843375282052675155163108354918676179411189320111231009509336002650135002865568483809120791832471970573374425789179619341981680541077498847311285482367270372839621178409778340267724908283065248403767548358688805515513199314084173660304004286190894270690837328384286898170367340219280389677983077665175927445258259688664397782454510214914726068032408569708252591079826512003364862703427697020228009544700775449574461213993837711271120104249789342112583299399228600719935805338361501746377995919467687347711424336443498838778000095657144595061697666226513488124079385150816844512559526165256753338460333594641672508650162965495608402811530998008869653284362618186480800299783736959905301026271933260483237496046752405896544258745672809701500721459438214012174744885231993918912411640800203716514104680283110398356055778026379761588309672044836727737842146908442485491449425736427658501221578368846743425162999566921086744901197789527023614362882090998336739010745870141202279591067136905617398329297020584460859710577773708331859234243066560414945626377982498284141692016364257093132258863588395456921247969543852065205851485036957240537274217847808597193802497838743274115851378669828238921750515278919475773335892784422782306877141453487432217075876402560803415289614653201233636698815647235900372935141339787129416140742699941985365167283640222715967628686625436838433366624367353566136702982364991219805704350768193038895383840477414388437328190503020716407847164254077831045419776837109720183192726678467925022043275951135539506180884918795649229627235773430421929877242400505100037702099860671282609962643739142107386559685946278933529254802383317272408588643668788445701742551734780269048557243629068443153268308855734335858546294421346384656811073027228421498974133426696747552542482785427387859126291103005115918733627991120013943622848183083631639864717985968207560390365282628472281555134242176368369160090546655552993859338357319420558214216080851306612078276427524945349463503783095068231781240055139954300380187987179533690769536654627531265726677269634316306732030126178274368943938251476940828034482208556340452412156863392971590055335303148238593988292891228839047762995815907032130394886846880763042956303069401979233470487020540932366030676402376930630071069933680781318730059835401386346828749720743578990927303351069525367261401932617463544926664818390054762426195239987313913567152705084158835367409847430925276380847140245476914971624274286490357867309717969409907319903497410793093933843087496831468995605475177724610292500932219553605027594317807191208700767603668184015540072319175319978964179840904401911355487326592084262294916092141531510412394243672628666140269740005761300610239110811974419468077988964953959857301805300717625375975184311100779849115933308912105289311626297544981719358634213990019014494028427441625812641034295288070829326362102438821469464313426597674066213073014736266668308462504848833269676662927755296579393171328261133646635919461023700031034380663106080407933841065718794233409444341423224657680892038763223128013400701700918272914028198079750241322506081599547166233653936924393163254477797871402190678774612807408458015531817169768620666321888927882584279751659429698797438516415410216300756046309791931399813032586295216175661071514468670386329070631196666344649427944210726906754012241333473530751199109666716082241159246924326023857618008418159830203445258465721502115837742105670774154521688912178419097407989737654644804357934199482340890773278210594418979949862669448722580571512558335229223021930188565747812972385124536193627795961759487744351947371763208765900875607765041811239961146952546112823918553880765351939478979606290269341510163750868541554834626734785665212140439816135492358763036643281428891886608168703817757653313979044724271546538243069764244352902216345305133146400850396803818448338395290899940068194194788798176440296798367300835603748996569808055129108805429279002949921394507614026512826993560244510928500406640164737826871143480236356455530875215171715560906507859172467538272516665737788996753854229715051597494735356120664610671035281261415805386913426342465155892137594952473027684307179631763479925290595684965927391233772644248464440787871832731643854175640583127896279786519521918998679219409024321640740723102751170898364316504534554383485159837004729230218177214403833436022961899328438860677079003597025154281968244079909435986102333408880185300293937723976872607476493969006411847001047911391934906915751839258563960777722949061079541651913204840524930191273901554164804946786880030346013929413034175224340601555949086329000268583291795723722373873688347759675238285835601936270783321334098147766287689484231963348605369709721072152399520479153986238577672701431001778172020750405635883662267518172650690771708499254714967459660319268341280919020740856247336775473660324688931666536927621666508645326949266336175749400033952586438320830774799726786995986486516196886902568771631087584356023387569329344294641693576394357565405938463196697204010248544216751084982603817374786226476129120029513940776217574092278493308675121342803376968412191432996090111230096763531780356709829682030718574446825253519155179829637999786654124824375599299819398003643081067692044484086756513606972972983036217051808501420199699860519934012539323914337742792667632166509638647804697568460026176966909490822262597159749008598605272678638165824771160306225007821884848694644709262822358701314589258623779557243833669433027513075769395875296610966196443818482981157725949716464570052375356701286142227422132551034662342258792056781986494503456322237066556676947917414478976889392084042867275661501266947672794803629158079435544499898320169198359543594561624707547296198342919076832837520509090932287814691276529582629436864257936426751785591589596976926362033394457459200774639658688698982797998328250608895894576596833066125596768012931649026812494516200568220127266924346562482433470681922914349526103325052610482800929622079939872105996727321956221457337238046592396453258991360536069058704786117138661562585802447393933698311968399528983693176852015419930514864342413171893560965026877040704524721896013710540860541017884603103351249335906072424145657524485307679825462010618570957979107045138714755312224100282663902321794601292792157742122130382072468717150307685860861707877829525973006201429742704275374915813691988076563507881162835096126427036107081640914890955297316751657260552353255593564865917532071820955476369796387250635120114994449160080174159877545701285859804269453320897033456626340592918178819526473015054202396725080871343875005341006650259391705913737798531508923374365757766301243208780332413219043414602815385786480308834273527796908535984154754210059385315773474024384848225538745621101710477145542587395767785179204140523562182435970847727434764450248163969154559365975899387628063193444195608312279065741572517788751721526311579459405078523036329330595318234917305907043928204691657495624451230209048152723962686549338975025972838035602878770950261669589815546045696703778854688882969511986914340412420463633381041533604416276238935753870579222583323360654002985954359112455575177723186374928325773416164861759835660464819972710528847414010636830037146275047644705551347330479101461134156312724823773631422436879053674835253285756257301656836427365821416769964668229386894259662174811070564437495559949607486330543203444869515430903295639691336509118996122364561008498066643701381456661824784276337926594631744630803934470954308804708177692552965512864972472087020896033760760909472464940612689439402824634168432858590880985880203741367714985050295195846591432695601445640777531096578195029083568223826838636485642477820631781141405177434975253076647129083758483921707603130486985443428767083436871417617557016371332881087594811641355280193481024994855288280734339118759646671601017680036706336977346342687799143111744642673576156155124155056888834292317769688892102037721405427556918496202920333608970769118194058219159060918917207804271599175710747047423909783575427882323184430784392360409296634077655466712311815851743520294316105303128752386891355333513851507719265698308172019644765710479084977978816712346177255193257581104679678132361221253622759937002497861514925238923198949622442664439503667651826862079073734667077795020094624232947632340327202084869987758624033047221990019019187312719569855003493202294173583662523452667243788286364890527481747418253668505738462564142389976755897873360915950310898228618706909623072991471427417960272484045628553930889204305528374440536802135162923422755231322831525480947731903191093597909430529735380046205020940366417484069231532380165242232878107535311574113343775899472117584401936711331161406925132317556556981124846731674100022176723338343029335402269817038762357492292403322717148427227277973790919209763515441245712202375714170999789905632340417111558118110668817832519803019202428867946087216399338668382840258276700694687231068185837338374345539589876087402920426275264547704732340268817497900493483223881933377022734537482357530445047498698875273582651829902656530965832290705737399322914232227252588850484007246601934897596507090295181760192116921175439929679909096993953655549210345380320615149113477358356609763314763583706085198036512254195708044385490976606238382942617063287388220435181544031248537361368043031092322707394384851311933627743475071510391122237212629640051322247989075364574479850078271731375401085808458313908510009237269164041532044444370756659319048146022289623119590456092905507964100669472300135649909087787938956484035890140685042827738992386936324584240754961344703524688575542105940400333701545468944956535088745392588867672858880045819890287630217111632185675238083377768623903761847867166925729469398646646599775879458006441019339623191297773397368900058800026652926006741619005380123822821018255633965592539155082258620239206257110690531612522039456413860295051072835412899267494479927705281970856571799470506201809077856753949829314424069099921070351874359977286981358752047449198157517544797317345311168732412907160075265054724997136712070990390384919360242978920648337994999852810454208063098806804114548762087954265748255089372328874689443346137395106566648816776890891899395654626578318372148256192280300530350986160693092875275237848603621001582626475130298930422188698153687308163819126707329621271733332241176117655165261759358902225406418655843201090166597075721925596437736601530059484835514624819357327356850471742866145648127798826106769471144804034581880924886097194750033181100015106149836940830640547497558399554549568215334405981470748803340577142988285828316815162545415001121610049914127049208108804481204905583051627149694009368877778586663894120433764631695446544099377588808917770195457988935915209413406612013379074574987939074483933312552877408388906353434367826355700657217295728861106442005288055707999500345071454518945389892224472739481406777527053953237941162247685671889039728991389653798877116675469344638088607435538115700382322726172366433667429230083441089791663837208034803257925003887142095985541229607181468983624556731753314402935349337152208042452009405970379158195219707069170978610458730663744564348861817284233052107518020212616313811862495145826755360814098297986905302218843905803205774659342420475452491101855518362311656201354318709032390514909782824904104466336170912519782360802176239976266861116309505952570307310854420810234136579746622105430692577780405077114200736466744412221280431263238618553860828597075849128900258616948054103358766594992109982628133271644482798304184347759884917561059583523483789665032212234836860393626208485431542051492515539483711811706318783655466491717155916619231114688510541349609443618712398137877867801480539498400563990954634065009998561770372251292411736449749082117452332424800216097707374239376564184203355230974767486888030830086766132558776135092582898017319054562933484248054857439474879461956556920724403985460135559761868821825749582504427919393130862430466774578376211362030299879739372481204244514400379356216791884002105266490897003251162046475984880831416006916961559042451988747128164700989370451605912242169598489080383518863182230903330870113780498383483312090897466421107280510557416114195019813962030056959415808022121961438204747396009931863379021560398690991345284047681609350061087086404557135183561623850973589022187956978518209599891306851824200317039610592006185618771143787727954825602587822997160286764846458928221773117615193133023516077225428074160546370234399653129304550377302054882750349592902762964302623543019081482980149987317607293410486151568984174056468601098560434333244751347087918912047241744975673552882132830972206208979149872496611356873300002670129923340856930349519332165965414850946960737689595713532637782118808725832173200759554314644272558727352103244412943015221916421289815198765890993822430999795427771656023143705329898924019566803395054813336785075753905230484074888979627945463349334553801300638421838553535010979578258570939672416077876893079040651306357182647231775447303374454885645990160864431994477923580023927059638684896304263609249319730457421454246711571981985128582000850971771245636597147001742434623558257326839254015088318137595926476715707895585467633734113459868105351303002039425302325018891256582175651970899377007857446135717816228230573915056533008027887130570288320741196703668223560532330694649431517996156650468909400090955667449084010282042696191144859600551115935099691956687016977223604582497726218439580078162185998219694360769440999489487032972157901256655527075152713133544836356195161172935109648013448321678712949934966387362107457705510006884225429734893439772426282989661974035255758067327103913902105996824970459189209662154093430724012547797688822326305606943946787623010832996908214528900633003594406750478448225317449000064131724478501435605157689000200798905293848633916827273652494795842716351490433702541556799536974922838698413630678118626342068757108850871258237189689918024576548571043372573334520809501688861434200627847751561643136287810239920234598856243344017478890641818034451586005784620891640100708790521809931285357853889193547032959686408129955877944815385006006541903364090174269118933110677327500852320200826914703433261438081393449286597535195893538827624324284729600419354551861635069649217322469858330647890188041362357914840309911631978782189303617118854982691097361702332821983694763553551697281001115852950273064458489106474646091545762145458560341627542717740919662338050172406956606152454239982730923139621130900129016582316091289717169867679187353506805268181486956053974068502007583011750426343666277559268633807752465624549104685462979632615854127158888707358388371520848708587273111291579349714486486158219501862220055700030262543919142449990518003056811565247500351619932478511455415614195620056229900034391272058293652432671271042420558756251096679072137086040175093199523403906927282891360567465466043233112551075375262503292138193167216208726215195617100946357631748159799410900574845462701700302404446946732685265348617199730898298436910984361397371635330386333471610814260860663841618649692415479215947885364009442447467217476711727425664621404286159215321156954318511398226389381942471525380417405641970220544534155105998928579529231179219910988121766743240059399688703905664100633442019734979360776618505386258802065783130645699551567582284900339456953689536020080609379405121809189105413483434112981102686000362320901431721806064984678017303475154609217334327101824511506299006090022037299906048145414410063686014439581860956121078445377511510764663226706829750891123872975509694765934606747608684778437035646743778641204797705236005608498995171545932665152610601855562875995166609384874253147193160227173276385304390488746346760744044173412216524320984301247911366061773965378267297759352689586633019760273574126092097012750372504443421465774379341986536147069513530607482291817651637918499964161194055271991067129224551654139111198500343250273577971919506248832021666860060963105847057548073299755353827706795016760704879641909845695288207536712174577744682705912224304726595332738615913191223626076143157481794619102567800605201012204653872331188675403919220125081221954576638206869983304446861897090288016908230241536466569737962386697484789220869221307807537249300447778327315002166533670628691594149766001971883219081286931910062621310253379812222340711040652094744538758783926497075333347424261937470031862607947883646114577630420994682204905366025204293963543550942663551032179146291160843502747146197973079975230221358496983127887149907440540343304218515061666166777310478820636611641813451398984830254504641004344614060483775766413783797806335896581861476422291815763851664302135880368877128047704213784441889505209249973403489909702001722406966929591753762184061628726279936793139435110601766417207171045844633706448498045050537282087818245070614568599413694983835359902661812569864364191484452257391972847160885029200632041726227276185852602435487725690258981143677741665887683826106886227203179573160216473258418315606365480396028572066578759486655211511381069537236928175337795581489990780278542673569737446737886849413884348874720668972226592442712848793964717175337805406765069867593987804018260916640894256802837923187928439125711677573871841434051524476417604979943655295092662730486692693340875132762117511729200392950485115867217060497462395016385545278729900681148960551466940704056143200373780944385361904026898638914918488324888427638739824963487563224697831746380672082957627567985517609234207264047704911535335057159632242874332843448063138038154462322973401375148841695596579165313172472025125280458587018593839650143277334933471018575310981078034258901422276141219049161173521927079998078816612207102614571231467208427593700354823554344766864609703490396783061387822807802925499906158410955541320242603302018168972406979285276207710013602774070069739111824344320593695752641781910756977024590049752801009720745961033857122190942985775604168256797826064835286769953275116102107178007783659124394447359799025827331304171529372430723956964564889588995505768299405037855149350885542667895771950043814251341023520943626224283334728229406028742808681176960122162423056127907269241160038913589768555213419788903926760216048677909558312460234843814200478487603036762709646564428899336897246338821072688405692309039363819791108408657512809739041912661758160883078414986594048103593655451878236207496354847059670254342251797910597922415224330631893790865938131053811975137225415058625740522612007199057023132932114965996647905498237663431420427583644850742702812475671245367212858726136070646909181967107262960710257773988679262779360713649739671586638078851621591378929030293012282797732260044562730890115520337009184554358915212669246368401795455708464503393495925586650970658454546837874104198669881748728799504973770345817997180711701251512722933538245813238515147421776268913769076775006128519083557160539840551189466501320706260325902786670451393831449648862292477891637272297733638916793307061203148122099233121516360618484421028268100108571921068152552170381945259559541251846776389840308947954266289171732053596724820513782625764849072531919775934676876023042936073323272329514978863996483585810200180374305822230099726790982960024444398176606202141289652800266155978746125483463889953826766758516222071185055178052671842628608768026584127074011001754387343673058605840696003564931434825186982100567726414102062119060401103566442465641220773029018990239525060587210569062603733070534712138071110143558357312957987561022693031793484123237188757791146246618505902008115788773369202807049453151848534749965153540042123538130182252976401653730431233573074069609428007470488893853246115822141762070552811442984237617671638029717470069580412617778634792304701747387573341981724870107840372838775018554604451314018757527024528228940862067243854891768192309520459760939990315373871286419627988987490069946220002698989373670895515840328477485132111346441581538193584945407492153896578877228185623931336542126049872414321629966893987849294837903627138692596231561511505225838578160699939427232981647534410761992103086647791563475147049188208304315209441472788905362577576440056529713258003167593906931447148746384228144775580208864610507761519505674823637231422081068788696624107617888768449243690679242104945271814253093323080495772699489523345130737640557556058383843549406950522528578795561151867432667526537416804232359759396958279272740518596475005813210067885786149895818388752179726427220002963020940102794442059326484402691547784305376319894641412812682446100309306264169674008583491696465335565172022742036269060567537519877824104852441466966677172971181357539390309219110411733540113476449926551289260359191362524569923087233238985945581342609606918626382389724575772628041665526096735662399310664599807879515018220804095027686165195888152461074771122536984026228825381185151310540041469228074394054362990538383730058765519804052916634574635095863985992303642865113058724237980877598317124693748024239984222185474475847534593627264231716986558385220043441686206847299606676121167872909895432471575905636703583592627809381344555108491837400760983603573407694236423189342839996892236489980184442105476977799878935623838356770309875805697693669849045171039522526753274656754927257571382379070110930352604193761164083314202578226103320632221763470898604347139211801441713557731812150611129351604796684455865966444328956745445033066331726524888384191902924158821517708140753715274403750733502238249972790612079753265832231642814502843353978987371253719958735094198012746185701334979909749178922942914646630849154751170652869730257040610987993177928801578461132586645541665423471997207246918274258795528146708475580866416960122748394493353880854647645598720940556745048384956920580412727868144207702437875610647568667730516177461905187391919870247954471195862696431352746720658494010235534216735240792730204948841464809890179527480711322199160589380835143223227056974023092675841072573207230242138506988836909928918252948350179716799782322621892262376627281820013206930174218963848825462146323398591460255512029043688009395915823926397727438888427975257861942953894299306102150526942417354803390636336144437087463535652876875138676199840638564296600770733680190002027707127111373185887846456530434306492563175688395282345037858772260420780472163157129238420082669888518292014058948835556564887067448258942666356344011031355818221526044337298187181362260000101599677027713619869057440109161191406712434575088501337039969752027204519909795752556516510756692379863460471181310609183424696218095200758466864265213532682813856604165025572430203839083582674236886346300733228002662891203524387973795359319467655462710150500779436094279328708366880794073534631753658136875061895832027680144566028419524098973341227465466585806230941154784939104277999863965184700335992145268609159361798453579717800612300081972048802803016193460975381220909140602528911279037888152037465083911683164870917800968565511558419954497890322327632144753243014239655500856709823109528011649448667915334371717935725739891378724769080825181516411838997221737488750223313706103935822478766520070123426911909724674320568273704211233342081344569348010601232926349706074361430762474919511934011739747663785316149953361792830487507519534587276787971941892676696356533734693051796763640786344753604109588263162315471730885418440486680454305675071952271037941852965086585981156329462808578927819842029004730550595549435911116962152148400550051948283093129589114051582000159534411025994967775685748896587632046368747819135268071787631440015199675930597515698626643165159880357612841914916153651256092352123376205874896319223308134118480878237590080173635746803404475663792308662295367825653799232732637062984774586972946205031863129342023278078769468055674823886603960380106193723573151442100203601028453976141642553791379358522232945019561250510522674579338153990520009090770796836987258356509938773144207968399479172595926209550322761865568141245612702737651771638458152141611085564386923071330189702275376753129076819474704683054975078625171246600665094189451974704537090843079994757184162737523370907984952712685319724112206871378016596372642788534943818477228504177334411915159618909882424339340109180674888208556873791766544328059365021920022564810749461992888789729561638714585924483263238691672120210112852911797903250207389232178949049801599771856096872086903329716585849950130064548217764529203648096414901420514626391633123189944885092732995941973121813834728588225319420607136530292791427600391369063619867935997916400487890956379680492743103276463434594628362804566439868847005194838017835324952275109946733455452261230915101702421957084888656011756609449417769619733240255032972464233776750710012862785142341165791453079498046877283992038901894051292715679815302127287080414461199496939293652979891682785302890935241931580353802754360329933360133188075633655390349060120885613592181481032174801198599720860551792456009107608074245298950215243678980101690918414205251231899245593969428961854531281150945699856579631656455103540489075814250102124083811915515555328723156929254207084816216159224380713920940417051289773943197019290569681231665592207634234294904352756887047282778111374467119613459133108875616893862565699311821754007872881158302255327786294358971640045045042010001285580940974908521666483560874505569736891656066381918235116079572628023094583198416442464388115486739126743049009822759629695376263344800489872236748183833107819303052096200867451450596519019366102042440151887829583405454270037146746348309228057560800753335554926811058432205922803084649904852981671325897849377227317408068033096413594863384433901920092825789933596002307803006330173880933031064717884827999190476285636733920338503555921093257336953886529334326483810126353987529144680243460394045028643899189883772472459022948625178596840437179408873683690329865712988520415832760913480315772572113125335327937244996008276384056824153403774442198058909420897017252770313583046075683690645886310743064689916445395732474261756968243460366286823307905124616186945671601912740717013589966632890523590087407932112755498972919856296717163965472676923776336554532656939160040703249173370309390095382374595604587058629536313046619998406120650663689256718735033468913000644439344414200170931033508116245502730156595224535135065439656683170689242977990121059472232041149844207055105934750815664870028134608579408389763139732397315805481405045078306932836956460608284849754620878591600187562568794301965012171114995175272288387058356602308692584478850890209385920544531172831283844809838265889684294881186557159164062840183010372755380673545493430007214247090522234101422719296782720424601040353852564596755816930033301765684919902495901911609376683760328124113798976342240980569219800078814555649101551561656359471520551702763028963703185219810799994728166135725114920479308757760814786891358048807060802896018871459599144113290866852676468431719463348962443196316812681333053093858351121696697269784743746832717772013680943814116697366398214865277919620669838210472534185094071574977460775900132918685408140096229611233298920671547805791164821468805822582915547838462351235716931710123608286625577795254604062360712078239624756217012892164723273118279449326406714859894788413022494740382061741858972689892782114373556280606804487150957609102279145697448251501090687275930269463703798317372152716889856451064712714706123956961834944626859445764908001115225038451982855647741532160414451612399151505548566592266340436593481175467116414400511099577185583874118932080861329893955356409268301076222430894216444365102727768260642462926756907621933839902752414672842330448113722155013769227924247885941160585145306429562568624062814991440106903200459563674316896646887816055498459915044226239836349627584082228740352755787964394798186785823054329787798257846644195077426063281722573956572845986289085266635082852046210194611692021028081114588397511068137449379148410967081657253388889482844095885600240573648328556541967373466694625654599433813734571487428188556614515156562152353738247489062635445948846164483556682839201619303313132643519838661932877623393002445861502375335988497478056633387227700373568952872087958242217152041452499936628405836373436298573336768614080894645786631646477165552399228849144937929337783936784444445129142390162013666752061345377387652301162592183428113789799874085665301908756938640497290470257668454663068469502852865304276328622894386132805465981516103226882683458208062241767269984225631700971573515142647723014061780148106947259552555312057736116693563859810748246621427387194463280911284467407533911158307677502488724915568127251462369101202232370151535831776721685250744399061568975665511173601199333600484212364581172602233107106008041365222591270282228244802065329205512770733801810213229109996074350170125261972465987856848260623612104018378614140504550329617518180899819886459646726769370552223169652870557119995193668708934011223184141290492721592500808837204821086940843846445545722326464391810334594445528315556351741544459978528414822536437993784895233221467232888518024164220542935710179680548488375826732471338605601269625401293327907079099543042619544460922952801638969514243490867370093700105188022935770310172135768554643718045554138425936063224988563253371575115341773115566555111063708778410829009796548637751258170311627782672775651260043711006189395995322403692382663173619823526087712026074500645364614541584472371997804716381375946725141259667262314219889697210892401378409293921379597778266648793216867205324555729266101649955948431004990363908864527319958057854465673224626540799407939128661563275651279907012224233952595318455949469646913492130089020245164227549012473451539105605474369130481297906446147625440098483146874689648516467955079923180598167266894674144172577974721548647205049777232778864581224626874109258434342491500821757501061358852456859760998069218599899512577272210222917991277986018935099870542594176273480034691938037066777385850236744674389021265012055458439513662267042184817553507057655197564896959511120179099509996512638149742780340616626281653579895684170218669397003957780486214845694677543538803639711197811932269075102437936518598219736414084813095444248123541985604886587793931706525928541460745961412033589937374841075165881364134399582408441239995982253066596974371974311611466063789934648567302328170993910342099411468138650425175266877541193409735965556728148390556089542940085475149210443881087402153975861716786916652186366935580644816991323962681288091409687801253974871957619066522703619416181666284475176281378856345644922548481142213269108391491432572175992816380183235285670938854333551495521537038866614328462552549170001468917364224091289343375163022096422131693320493495375577271216664296907944795424069774320372140825454895235659548080678538829856596988452167447655148803019041543566567905224911503815986739445724686856435280807607051649684729086423561797506199785080027268903231009889922368220668165264498464309890285152962794849953998554282081771754125910630184315527998902530417401633851577404747058193004958080495912808250524441532384793959663427557543407272084864537564066324753622253594704567399069828623754711616391807224591300964165694006196374639285888174409520896906350031806992514970709111934502119403850916530061469604454054672052624375925736465738541291644547551587507380493960668752322037634882053150788562135392375300924847386330851126158145425886994988946271257110986335992213122417526535352782014225234738092416762273399436405017377590194584573056055282606653666462240516770978455506027000760956025658560786436513194202342874103164705268612498515002376061987783633382625637912724725197286439059001797160794365206055634991517680500266899472961689498693951415437858832004309172222913732740988769113088811365266803556818672953155876415191271359666245243805558478035311801819348816533995882551651366097581111975493448105938976238192478653879650290582145077651022334215395926084930703722298653106879637893903807470670079968330904944113401740329010770465973630301807628494036812188662857737027597433129888062887900067522921050393416214490779887261758056274580342504904878244136222828568030434879507055981264044784949960941008746604158325096931399626565788918932083960141090185803014207119697988249982508798587282360220484531166175503720815545207951640080379489285127029854329100412226614472349402216560845544964537777384262044841479512072335562251812166466162877159072416756802678643883750520349143258504799957230873298688745452926260117397383201283999160698050937636878385046823704220765695255056363403809568102732646000861059542602306160790913248711833453453697384799579333384564830245935299730018247515398326776880179888085662419990580502806998728646247987412901158298381555856375271607272338363098049103713596571298831419071486135212202398602179078049956391621150328472522739866600526366253449794187189774505103314567583516278683813585480602731827143339287127486226246292847019493390247730803871260793206033428999537534167813970632456448631976146188941452044466382555378931383416076068506922075266414546563511478856956667531876711283052674334616387369327534370931955823421939408955896841413163136318098615711835878802396193496677147836671496726571542876335001650006833265018636960287612078154865338911244260301729432408814451129384497241647335655626363220690393306657146103398573793826278261824756219589443621709953599145534517012840860265272868009691573726062226831886989166047957478869178446744216619441450821678010910642740500051116455149258120928782182275871418491894162963076031615008278512729498155870831868280512518705207809971526395417082027293397006684824177796972329431271602033599367903073823890390952257239423753152114370866521656163660495203430337045273331795561173525318471824929565255574900437502830752282456507271377259563228921340375129063683985984358664048994444826817306363348127215141410162915087354598509602155127512865988006107081497634841752661233267920740445889742126931228922450834755237918018899292758589177342560129299964427036529216239111422163101847058087639694123606933709730616990804359555277840447134348816688619428300915686466032198835290834851435449142516530092174666709759774749003427124011638096241442303743518616696234801126534614488139113039578071637705000613453841017983703445901434226795971059314396778453836047229770137834526784076006893305555043884254267631750990851160379601255948932458427559055307486015196864302902862320619281783523379858839856516763827253965091761207947037501966590833349264266487725205624937386171106589121544924070765382212841954030449175255199813294447340745060067464164552671464435568785169009557022355865307935289175369138015069739439102898363163027596940895244265903895703975293669387316220053182368294096989548726594745090196299455161270025301939077991945271338277656805388351116604489057561829857781497943290545510906186304052844146973334106586084135104536649561585471300274716864179000783121113173075875592386937865494474408629208074921044816034420059635865411325937399873528834293515390687530855252579073789908430509612366789525506633745103410042272019328287015048337735659525902931466527730092852258182352710304819661490357232760645990405700060815499354454059856787929698354879536957489496278399420476190761835783375830161110200681344845682866206263065937805684591823744650454013327316704516586028012828356963060954420736669773011593112541679614673400297471335914721030237794361857890343818364855128375485051908472628744228497707751609129597598572629229478777393275283577586587509123917703560255959420309984468464467725342129728804660279935025307095205541599636410119590420818296438754131312725744654199158888664475373622965539125514322799491218157156710201147989279014922509212493558941087740006587139349060558011991637750239956930245831028779675718806712427389504453865769302422927847150060582143866118322195200781078364020278831075024601203261376714104755414407805360550254204875324096136545100696685034159482464405323855457212932185755344072163219622702599968129145456179271112879826646820375933153484850241094019371906838615447939159564608766442430689041645460825262770293661880596691731764552238569627469479565989706433381702940171741182473841509258405480664597284306461714759001635063951093510506884768829192367250274266936614410457047152268764061842595074378077142146410376051926054475742518310550388572301213396284683965634387439460057987152437823188259152761970642222601472572008968142776124166942254627902999030161720573185697478115522867838738613310020810912541879101895325029872760922216991567251481991618152376581528012180891827162560820897775432088114786964037062313712644484324860741178659551079358909123813095636761007824844131819923760719522208120439919290610554189986369028727460707717964490485356704069489329869686504196003456658857555279296523918475317963330350355330190679610383459830776784582051326277705082680657884754997978870348603661231643443336112535936668443561884566319213149207318546644651540220592683948230476557174713842828122242869269787417560379794166112743312604337081644500016952729732877202249241956617299435669890934844815777690926538658465733771013370251087801178180711693667077213983435666141050607613649778395699171898385425157311330252942733909468548943254378252157310089840262869871456095349921835456969255551648987533626413098742125668024680564318173931332229599308003646127990394352135861646873120947871478764427747931702515177737688154427469871798711389515068550909424536892318972468869858389815867842198042777287813600648429265128902477047177026378315079699278753197874234876418585110411754962129161651988824492688654344244760697509943076219971518512824341552329988089537978323570297526495129570302506811008364383070596786671982049648399305030005295095446292754521180793438347531472056586318884025081779653802537379409500403474006116986415893342747512186267956058528624938591335745855422148304565184346754984505027424214025691017612841808676394593649922777091420983511308446181910526141316638886990047882239376618233675835810319886968598327479633792380047257157614160237257732375548730040587694849579821464120011553031275687691579912662459213754836628247620608262341534329904906619550942247564106692248576456808105964558637951196109944498562344428050764837846514700200108579600691056348912672149489894386536277133713505782758758508543001277869766119389436424138418688417418382797083221536102307329227238439354738904733089677773806373458621503454329912403930825485608239161277813093700202894929663935909155964320668873097341686167286912248550233099949408533546028139120397196331405294134086309957015701732361211409788047283505983009197453455875590785862888253587980217737559869857446906484921209430592669678972896334208799221875191849879054568824782656487993725859199788126483369558513221905232270975831894461533122774892098919334417051655716527106864078128253549901035110327457670387938941079903129748633262990739542077771276275849356348121977716094407047530784302656056172377852478172850221287588760943680818490147034793490947717698395509029697326958636800001756933377537267203697786203853330300955501866854900712651293282429143114025999475646989836314427707678518149361813535595380016238860727927974975586374001730983889332174426651457883607515772399179902521344627397302075196096061903246860632133140875520213638074393135307834083194260307570553002844058202829470476429195421060763997757865847931416898617569734650577085411993524039758130451267450700427227615440255577848371065371861896350031476542729056902390376386472290250191487159303219023329579924979556374739601994745848614934897784170522114600143086455888970051468499222884480555536772363421945473486226404358984814706384346437623335070126308461640524386384806582157596632597401960380738563869358897011175104289785980567315128729497752472066622818345857106475647148991450422637091390986110008298604618814745396262700498633794747865921773235662034292012201115629995210731905709370598123418198573747336979733912820005803981287059392873130165569830962079482919321748333245337295305912268099289286356310148503227666832561409101256145520648162894566035409825336771651227695540047981332557545802100243035072294114265249578944844989079455088087939589157672374222884775936721111741187461785170997126114095067904676364553897988139478053234990572693766394011132873631442875487408888957612509812662827815368111968823527277035096543216786072906523932196361880449229646920558340769555231680079056017087543607440180062131095547802490680814250056223741255827475174512312347505828371081930433999837914570365182087163358251047763740266532570273659828846219890864186738212930627306339043322946419777460607292726978187669313060452457252095486229793075703790257098333585777544280126342500321981987997296202788111853869766226372360572799073373323126952835593631701380123059611166907877884994006282383932697102461297353533602314812874353199620840259924742822605317726741203661294992170765043234342575479320156741943324144694362113764727491846765055510952019448278993870869801799790358451597115098561224179229423557564726000524833250371008511850672645536759099763531386487149879375193515606735542469934385855463077529897655826447740453462637348658434494478378499935063157279542113034891039880545550895929356483934854868668949055429489559999160242516572289973302629044825471308411653415011281874918329586434324421351339246645623538922499548860921113062653098545887633541462124255072776250898951447402350032977135791115417647263942004708353806081531898331710898695934607060329658123435150959994640853876170539913363064388680790681516253811475497654026425738464902625667689754826828497370504128605508230674475988980183648883763450160036416578994318809136117832208441458213117303811873811441900447289999505530414810027523641686051702719366199747979124817351505759830260747904835442517153541428095670763901430489756190908740748261145799354371908489794245426250138224174487825109065881510322492183622149684804448079210143514728246570955017388996029380035196972522141372687991001206286062990564189633125424832548716857792770142144088430390311292175503272101541250176337260348177548413379074737052331217397899091624848699073049585267012552804663312635074254229766936131506785556699495843899275025502357456498310155390247315049196605628237449886021515502974117073659070828282388917011096024861865954057532247250991489136587249091969859328127306938464873491987376571811636606456139268406979700011929242228529201422069164380961635510245292108787791383668876264440751527240381316150396663861971476022234106678797600047993657257698337754048543753315208330872707584115620675656890742286734630661008214749692095878150482866371871343195199361728196400524011339045812095689605535011129118253960934329099206463368545927278927965453121958300288237856604524690049333889436292305872235476203484630376261848840058576157425131555161335274940461462437498660992641448076216012037210446302482857757589387346493558916715720157868113337991056918574580840982780491294732670206540568681464305385319890480487100118609622331593247860138341974573421056579117607290151361740151964914117861423316241589235260877472113037541316896502751111541932200091078927382317876588188906168778741539222865230213855573543254130662589271988555953850041795301073452900045187510662293912462946042605115114747298702914604320201231024512182624143311261734329312970277490318609637623639540000469471552438992228836400072136587520884398304708770775833467474652660339508262059416443884313162876938792402046791452877498832505857671156506763847877538958466270976709665836338788385093318522562783527331303228018797639107802428561939751932329578301543997531399250453393278436452002275028015526141604856735798576020049380733017953544294612468689415860329045136832988035785141897333823348221849625990004789954270298811143347035529639190559643809716347470337641032893420198162074781034309832958744928553462188121584625484988510989404442679039358174948089465365399264248358955061593469513663977017867294625094591842162430504563680064746477926035051357480651665560845335029112510692418975406540030818678127022398322402809066904758809575292226268758269200974656656625893819137847711945418146703311429530614446881332012518531563086186201730815159378571518281301482148425557473775668608726422615853329366216756388728778376064095410168701773646442123949639478421054973150825563906784486740414068171474479168036996710735398624366477696093079478736928650346788466219302350327365340366979852850245010189181076510509462507876165974319406177003353277072263244212797231733145426064497508420437258978357248729919554125177448164524368277953113739504893450352200659069719279122500244305103159719183237198490669838487434613739343752708454101905207025491603394611788650016294371855735702776433847494041197101186533268326726174415682461905486264684841115858985184290324056455817810728544184746535190547731838957314322767936007119268416073502059208262612161708693793726729633040340618638507538966216866799806048871307850473032654916229830497980326942283559808525123825130877728955237777523656094741691830467399415500608065373381188964776063476318301943185665136143219125321942010465322448333598019812285793827286435643611475997083512803000815931423099237360256714587512424913019894220219385648376451199078205175725263931325219121578317419436085435735737250602135640719638261743164634483755904373310982456560331354004268227657289887751455600301860835971169921464773331239293477252396442092264950758710639803431001737277012361269353412674666774213767019552735305362829588068208736922659791253771571082038679653308368618730107605703635682220882348484206404500688480197204180300550939255534818944270436179874741226830659881109323311627907766534145523801130428100756141123340094133809361848609293187979464708737096970208565789607601008223458220587415268865518485193956566305814918660218537167844032978952404729247085263985438355044299089916172791619440036069833758426982522205914343876407725766292352218045356461297013830928334446850338535974339747176587329503873465582598608847830517027599089106102634067863644572320600283166002256778255609236535837868160835158241202321627273736996942673526292467922335029425359641988228135664797777464275360236164005628763199329600887765528298640984987898585918511730062065214318262067698577755799037964238546429341877266380634768782342188021552408765858065755605869454028824514197370416975346690426710390178053474580925770537984083805963165840547209322975207702423086432986738017330832273635264400712248589255227371506425073535282415515422676728077015305866208309920183525135543407616602526494346027510054659956207670457996793940844431932782651087606077171245480106179698717534372950660127692607324990482068901001845706169196842788242412232950232591862762114574771380184536040044579617896035015559445388501816045938405735954926303972872799537267464837256185290317516779015638022251881237630244620375761869976889326250191556112663269378845728028901956797282723569330714732998878123777755888952278952771181538588272817863581124651175938413021206006517420308186140744690355491802448496493795617599982656655498448417664618350012184358082426232426495401330885962836312887951737286072457421002285464685429702863839740353260224522102250371342934180794958428371613785755884791017736358090258538679952107155742027103882851905561255792000764281999427810346199761470399198803819741439797764152873202340527930297688861166943281506934106666677840866878630178918927216899349851372194015463417948172905715376991700338474572921066817065887618039784413573233149231831697182450288982042046375060272370125590484136294286783300816002490498078142961370657939227982499889924708437716868813147645001639819316663079279618468053759762266162077175788181376375331518137180169674160960620785225340605814210415178577348696224161299625226759854712632581617296878358370643452799161213415404205143063732473141610142665961851331666257156093272575388238091471020955260272643821750632837905124215532253546867515529728824728344276538400291257504527749045362239417079718826747891768974727290217336855197486694785774737184164513089853134171262766868877758731477895972466241687692190609344080029187839434075762011852155332579549956739125085172933127072681580661257301978843204778324585334257966375183197962016646483525849570902282883247348644631055359218857722862217564757535594672825476402062468132156901450592126411327750838799834222196907673840980734282412525512099316069942925572460800150477290029675421156899171936449164587539413683645173147339154980730486123840181243146897871980103281475312380446406831817127473844514851592091002430422519360289198156554535729821715152658404550237683864648691452828486107222896697454087605089961011880504012617678289314601347784892227575922328469508229684402126023946040426167511008808890047195695312852304172544493091790774137417646068788484076694804134226060716774742442691255344127926161341119286954464750621883256545295652347219633556064012720283890416136232172291138530680934252453959128537403667346679890385915899929915374393280028771365156685849185926025594744503732493234046590010519722039296036421979215099792913162839112432590238624255309776577205243593850187038661122469000842567713428468438637372093195934106746659594918819739288596223492000729618182717940125019219504976512545541047559093940781403906758250920120654899739208486686969573330678825260380382858124415225047434360395003432999351786078544944843322127272903232343592411768392097882897299132123458415315446321445142971574520985299248558874673559307281393722121640600364283780595507082614064688142678220979043180019656984686781453798419426272083015170648849053897991145478756517095218882757128156552054495169547666717118161882111040544984315577898430584149059742278803725539904568408401671910588521658090699746090301665330629532032849775829044145221329739142421106047500932991731107564305798102643390756475917699873897301233102974190614887153138518525680915811556066388080544865935374427033663509792660160998589942672099845434212610435887719025588808290992346346474123569207504225199354263678012139539771777209621759265760527785798202334136257777726545727226746301949930289187470378431286553980599896696089635770618610324154511419660555673957886834663392534408549556105043593510003439529631100177899158288997162540334820118563328837690450735233517902057764031599137197883673106232856511972621806694166251584039295187185076026325676651604689974909806271295235708483220919808235119696463789235987144910741248330678988571215824617829312021638448225176768033005273031281165850884681868909858025732375918980311236867531651287988992261767344819785764756402043820882419888265617673454717604890197264797308625552451899053762987322059112944491614884774198449036547937778609790054786262851582708064872556138480804682137835703712426271558617267108824331984361538729076054690082401895534235340455987951373286060081748813762921880206718535219369605390939006668799125647167201207629565389015236800325217270038637593065916477621891088345810158740477849809136763386432553005871272799083228142638905742496888949645951932921589784534635192243493044534403952288523201945064150406039500975404776529510342994574708259958809739503657199312706152786169761369598012821491740422686677548759042353821473139731156041222818292531583483667972064627112647323432625292077597140425500211961825270492163079224677315643562771537629086442253610850454217087525124964672924566396111835020669931742242833672980896772467891550400261575134509223682265024747274369625426456931337555399530667678499140043316813870501059738252505872004280670976729959084852916492152511356224699786802195704713301208165615751060849528409053262944911721478877321565938668462004522257234725523992889521018001915916638165951655982937046247558607761514482038462616002234371073359357241982681797926721230464720312007917682450903946814006938053983422394110625900004191411502733051890872378085746785379315664518797142358846798366242034209363586900940710410288315419844605607726613461605438382460528081159704500754775060091210855338340440007597628771538126457837877695281211638731572727880312726568774260417747471588091202887317142636055084076877353001448102037141859212450031603811831418684071708903278191008345069303691144810024144734413995894299444897946765258543666851560710610193904538812806422597732652665561850798217757223826487424935750945023048899629771538617675413263903031280410412779807329218476320255690300954103373280832218699503635522203575526975405879647208848638109871231627827904503563266834590371172144964314640259691948199474499117027749222869633878730710545772210755369485047440212278382243199953730240985914050568468018990184714146894986657761663930084355574664018570412130212927789671737661397909760455442964316088244740205933480225274591103733382745377256281327026818269495920559151341383549404689134518662206525891051456151749537028631623351717646099975200336680190314859833496379440744787887626592000995350080746767588425418891951765521933446715538417953032176216144725304030379462863340738927631245985828997112319679881779073699300077130265848077850573824274672894593253252510092090593866873482324448654248183216436117111834523987547113447419029603987098267040477984437039177941891713218729801941539724501948862942500421313335018163290985862658644903530753239293895375674331165498535090226186437609055106041107580823917489368208962120261415767171821717411694211637830270422832454422411397411769143314609757836537218841661867068368666370896771114739340107810819847820767757275639377007259919026384109810918719599351098246852238146114639759488114084917896962491082249581090510000628039462432616422815134297286731841078513657308876936688767767038936042421719483893862634132605778572069903405913963071143300215610895287378055015869579701637549061632668135673691316733601055908238035319344356921535797470671439682235488456361625747342065655962412904866602570487916411756121950998930923128618452796455270391839763290521764118864913792719521448698428393717912141537505783423993508205772409585849614290426650046344055824685491692580895940479522113598102449147442923335480170668253035199707575542877374243674145289147304857341406041122376453049727828993694232916084630995639333363959127045637274485905411826024268465197650357232200586200490862598828538267234877718311219089575224199927082767230332183230117573065477717539917288376859300792934684390642756912193022031421859753752547641952596261109257467278451941266222891479836399916972292534608923588733663031265166402370579374903466957587458227136380452137403874663235195924029617159400267119080350999975223051315796676565833415218122119358418589640860285575547288045526131901789589347433830611415917324667897187706301356529381684196032046897756995044378467768870469517828146627686370728237738086265590737096681236747566706856067693111522804570480779692519366359096796504597204298370904521102977014313874855969187679727924494608592487251026508182444971895741702890274780663902319288569678147451585697403652325585258219723105366550322441293833310072574741722924442150227275687861370984857219159791365180118363381870200391110374938488726470130806042584641360660303516914687454388081314155309020189356058016089963444228128816125942316187329642118449957922657344969973757269072034955298836878696521575215154957489028544256652344367363936595717084634260464600643728349335737403911996721219447760443881900535842265571909432987809132939831619726750410987082887674064678751833870894879110317115371711428348474950530777914836255931863990944678829057068268472727442091882439642218453763884298561400337717076913155425251184951230584264071447584864480407102434509469661564580786911069215828760701381231295712629726175985860049078795664944112544409373891209491097305412556689334258194574750943546402726503228363482919434541338489896497441019338240953253908451429500487621087235691911101593812775525982622735238769934770834277033948312893126785136567578538281850008717774843016525196793783247331720954806633716223422428178514119772927425717603154210486758974542985470932197353440734706869926487345119398308792990348532293154382080008955048959239549697525363269510171362248529101087515625436562235550428675566203981028927377184520216749510536455074523358818966324837591092646048930450124493634959035852577214270556235859033703210351706759776279444121076361626203925556226686572848717037403109480467477181299705348274199964834042013309946287146699722355978334324327525757744465735977659951418227393325944912767436704464983171438477410963418693201180397619107271754501651424504934018706670970770755523618368062658072012243058709997765147147328930748060905888270481324405596977288379208333384394447227416011487992536302292881622933566813603212217255836466983578389148612506907900435579081771226832158952844911740875468252177173606326929023105657280713174009571644703043735737307651613465058114011322930015445943853775423729889698426284471703006426510881062753555081552381270365729526103530541782329870934707084364097648455317485925229592752851533218379174452586750709846456360487553921815971106246820793058474572786432463273653941226096048421300502926051630164298912036014580929646460193681973855488480574847817868083478162461033740604015025680705148285060123523881777311477303716029418678776580674920901001724152144117251557435530434956178878767029704077995238841541212866672430966169589515146676970082840237668922080767695617691548184445287657444996038796251997836062662496598485666208943530251296829233432011531342674764929984138628322433712250241303893312399460465941391810990630938433093591444291471145749987687006445452008678198964815209076530668206371708178479996030366718242344804362590391189427775408790213994367032313912698862537614360832363059757836640102877984571867032149737259828120145332691457040595050007267137977621689413378111733023871373683722500907131155534196098571304418220233494477683123156612408775839117164857699552097881536015320895978437275820969904949863058635084606264495085147976425065203317736458593293797258618715384867517592657795644691905814747763462618914152961213171366766286698118419708520409209607624088133279087062013069726882066145350215989193857713393598791302171540463399327995080294801854204223379870680340393895742850322383401745467029428709015154336542471106611110323415815820999666809240661918370156052561760776987739404951794441695741126824388122754230405790069530514880790799428039611006389939318718299978693491264320350255260541728181576391036070258424522229617570266507122083721552556980073260178111030028770504522885615852191181896371805734636725780476990899258595462204845020845960309385106269971418067317735199170212232754515431145473962342674080665975897848232524959351382790720361070198212179101574608333854138306863649181778198241116276012458666247183840229139343097799672131231337533085119324632505542306175118525147697605830536801966877963037625806417408400440038596580647585677185136993570305809250550386762212200331184066085618176388058165469687090604311708650759383140224960817524514625910891009889378214841521710505639759225570141680810648821952312254210630316757357145654990447942939357580071080658563227396259093593604317752563111838357229331790528871269976476508479008530519032537533563584027482605445965342949129102078054960082067272736817879057158020025465273493396292708815543575698978719095306178298839001582338733774022646712033936801741497083899110589310329993027403408092469304203901368852791505942580594464223318317147096971832947947912615848072776710545333766973677732322660628554445035142230604659409625758227036328547952079622657752285426134364985849840797523566995609414890299951563415432625605073697076905001863199127043482021571198194885433593331950663461117769679555636846870643388438638379269097343206686532895228404764262142375105127135090579979866575580298563749828595501927777177684001438716304318216011392662095084356951120844402661736762837239630182432417490327154482304502824060913878209720719066281083637040950472931612850605258670179125030323475565363812387967490640141315292130965441660088496583314469101192648608017060813593873269519533721760302662618140261993768635770026868048318026436370901162611911390373563527856483098250885393800474853905103310865995145410036278288308383754225942983279904152050770449268731360356850501173239851035296684363138147604280226713543078087924562587604166439473515038496695907690145901145900438494061670603065198983449196266749603324231881190963036104875529374810027601885898939484934488311848556147837473594705731135784700807086170746209328984449554234889697455801306639375788695089152961049183572613670876413198665475525235289755347303675163648862251966083874328501333480883701036883721329069662533611574543665214709083321529202510721944291051694693718458030323350242790567623670179543230333668221570539041063308699199458781094400220741670308096685509392826189941343661987821112093934297138759990586307338242315619073306726113426051152062612426940408830486398128684093908603420373444330812244142996495105606597732802451544268555175653990399885051218205948746716759771857549857845268959953719644468163375087593083492729687991360926313002008047870898511504767252721428996209352271046910414066324056504349958635486593643100839344407975764709340152733680584005986334221142205442469359228935549068804275082263177207840581345142879786562162979294657225788288521591861605735518631974353241282555878709982351160969648277669655605278778167867198352058046992249679471348350950739120206840965056158656197148742084159434388358214902646841208765880695409437142920821639612305671030237653571578034457591772126550642046508145685304704598104919234244066226957305288107931656430854016487310475544396367000911239384822445451941607069717610654644902138310336044802386846789149979000356734275643572041943227043892769234904624936921714937376714036263015942593576735617570938042398248082783317391102282346863343268180213041480462595155088589023848086620660172208480156816760032765875299212533751530061080806632802752357684169552651579357499572094468902163177826658067772292242951252624089796586835117737281459584472721978613069405640020591932786742361940775881810542493096747051588495476509525164034368063753924405168985842419525795581377421541211039704741425807330292252760527409817403446954564049893305700063873640604799139625456089699867319968486738900539909011039798827001669709977654465722243110364813418848118681509730607661729933522446128313764616863606506881685354355009129222572263140592215034511360186467962190688975178252914436546825800396362816798451767039243723115494185826680305703137481025086928885899906697507143844930601674039227921156950905415982243801411778966942621147370451977112943542431441363689415068014014080842173015794219147830517370459718471376737048942425741232992066458877837302813253142722658342889641452811910074381225363789132609761883018722774577809119836672200600940842574658122705595886256997054524250194781511001631088096208830137477633979672938675821687296061045806680249688186464364303814103228183471496017068324191889206930698821952025457788017724124964213506934272923777633323077863832622201295913432748889820760327960546501122014707337835876133286871489628371387431394515465747085746718726996923121106566024126052555799585466217581314089212922740610565191796236540763976568284941467026509382543011535003410844483387486753756779051070612144563569591185178131985932296698124614383808155215400109764705154750961757936436837573434304435312789500228251896902287631576373576798600827781726340479206123490732483512253749368680032364762012177236769524186119297736158836423487069753363430732461659497670097661619720646735318112802489513207456465090770185655524634268231764595281761996413339323868303302980556212077462726069904886548306418420627192185382438809033338327173792754945948686598346402217058305918578473700950745592733133676514676189294449341209817420320215907076198269719005766153820541919395367188984700438662966341620310452836652116765603863850431386212874849954322199574656708803497810700256872641836273493391225143311370083223046880093336824212018123431590025803816356843332121073866676653346853733038178284163006691272943418400939647551012347868563841593637661111180504035563419098686820427823804160795144518065384199261653004158283589394157374786563878029683253702234364449783632896469220303668153228845008463141629002360099722889105528151244420591539229903324908618807090738147325337984809502823854845748216286530641086626678307812651200442587468231567928737885005003185028048446545885163600979135874586383821455957729953278122582712260648851723996109601640748358659758881880959933069106075479972984882826325553850824793690482954571212687134086614342130184981961466182577309896372506079222834883988038861553202962246841584376668574327476178067682256447768329769490190163073530556313352060443407188073286132646371978754518645975460824502192492839143204481320020165997702548722098083769470668242718816622970175427802247855766874094498331616163686867917949267410199342221114011797293393341583728295797324679271858174899373038625713507588180262400630556707028561845470809731633608314267253217366423372092564297427914359203385083445174978095751854821919622875452190023044657520996094312046223944497522623692612126476892679718451312093936888140873224346753557833707753074204429217581145749581425000139443494654996717647590024156920689886248732516334918368351390823366468375214514923792675105639808464577366402534163494374012231216481073914337207042342373639935474535525187284190046465498803421700234286078206623016855995705211639670916970253166160200474579274982408697517732657476762037216805364855413771767681222729762597723654647948621084563370379536890399332829643289696105045663018718432189326854508769376532526247449023743107514635120253493565841294478349351228277934586067839424030522684825953098730988120064660983666034953669062705890732968751160736795527082673225552378895303519770541165714431008649798965810343075065942648027953807638194290074135337197879978296182367522348372869086136284741974662877128561198216580303715705532037323527424998376141440122929312121900479050461519565318680393010174433379679473258636647081957489854817052590343262953344532880052990893758485347478436914034504386484722625298397939525085866451314441201103383212404480376999236778458802287242746482933292382818149833361239989565022922459835015779966695358487244822586859540456760649344056597557741975837328618271739153539108541249555669660904921079800586646248273099275529312147492236916190186321919359610054586362078084407972023719655337233820218636927583027012940502593219064137759117542830698148080923547538552654893749426814009500115329930070276973741009086673807321171828332332047223049071688369671058440450788803633278606575174255076451659959723657430518097054582671689852331447316608872290650411326229665557562161729633959619560913273114641320765428690364126633155183377454483139414405564888232378664208783884601938163980172804379631860983106669572987833363900208806349354669220658112777640757399729861048189542539206512101189218955585473988577675157236805731970992911783896535657094899965639502377272003391128539143972297956906430055143942675875958098211024098399697063377031156898980192892010014847388173362909329894329859434843863987436879369374714354747311072487701072856545559637567594154207280291235331221484798846218067328159770388746150675523212360058948543859876854648883147061768037134017829766062798008784624672904534812771086949235698022745403114757451103389671365623487539888253928141256599149066339022561272299946945947528734499487302890799394182765691106807773279992778901453827025637921590532535225730342106493514527284175443830421486327741740744360092259675838133001642906068782389106701030986849309599010994813785206595511466277778857601741004655140671520231172031371125891420088914878643955676597984337648179821594686015143200449933248235631055582433087468975578354209950325262986446732672228957006513955579332155412575729158731953925878922809444041812596107964377503591252624897819742279856151582345334871969163243049948482291376240428956234654547800618941404856185846660927883186555559881777701880079230000968691535250850993992931442882670712179657120459313256924956565829257026224642627126993389739011302433990069901668616943449774338112909484078221922987805681986867138968674561342376052869303787569387648134713196120746732258164235801637571780738876656331629224019150247928494148997252714187726244704378292431560590140719109798221594002757926700724936149774212289813398043631415021886650803427335811282528384972331852499707458700263166415660262858586106171105008487505676866787290365929820982654988884960561326482482866477790814528886959166237958896785756895486078489484968975823852086136033665342290488419143906318376565781955232920204005277511915030400585525360736390902472357565730242869658452394940610742347950664986664925935754100934880283052345716789051015225417374998441510683462789806311684513145053726631839568887931961276029873565975021653837577079361451605669880044881703130639654134407340569001568778574529926889522861666113602742525633281541180133011731399959622479100431693743675437922297441358839777735858122992584856914921269504023636457904696709330528230630682015688028993078278090260322150620589712269964004283027266031127656201460937195520745750922531925766881220761064070272250163931345128769844960526735729905404603424567538012361695404071884462542211455320903224640865534132291161783145225112470164657691772724462453773012290481863646733330775419689024359820169144709132870125316740871369356002508248403381869690092387402965624984495891809935639817588418039083698550712342719786546666314182781214361663286967069230507620411956539043578767879233834718682162516894843675603241051901716659882559426919378919377826243541364906297343529106118270252169930256486628729719000816888947230565291334931504273082999827028036144483456671956735928423618206096074738753691454860413125659001273620781220272757426530617430179500258797597283847581215450836976948016397840524496687951162053661351622127969766851276240145400206371927842085613383632561695794745760727331147045030973865260714834132997053770459693694655778998801945422623517182852222103106080381029113759416252751615308950526300183901274853493478434624240620774142219656931551608352566175096405805701384640280919334880033313775378850679761826433697556263731334135891706662029122904544361274122135017920649053253562924520211664480352212659362919126968366002498495575797624213659520862357886765815782860057587078863800998942359907219430674731400921505702319302791375758763072907596036806840518288041563749299157154404152219486326781814704994756001409452021999213076257616948404592637749114990737581216362496988600788678879122845305605654981129482311728616877726569238502939097767788188257339605643277315615975014957869498416143292899505174028292203550585284634466951874132469420747436373130403667402663718244005048739925194907601286418887313160623573994089895453920732254741357571607440961977570938563233339361559759355045119308754446909906371079097848481881517145076240004175169757162336177384218794952924156220892726551526452265342457219087720780372389920608489484824681201429631889897846940796141051960083184618324407579706394722241574964736711087192362524819465682639088274579860484303473007538868959545933245430249342083231864718904370212749040109206754745447129391479850639277194400117562046235998960183062985360676571613056712473462782811842037824894663251120082831792530017657342088765957137131712407635868697895537992533269227241032112891018742355358951950364150019791652059501278003240695395509464335277946941150961473855621795993204975217463540361291950040186168819942196273536852482181302891381695280626117544588154881383793324712776239025251957484260019594149529221614342045963615312817338203844398465696253118941307880796767587146014063048963464773348073234883001808144259722011510413748189916926217705265452505304695461218967625510519190086475746872770126735586770031577510836540705528446575036295200467415794978017237259479629391879227304358654982439345811816044220545851821340760131828249087827648938181965089273742543626085407855595600312787900797605519169259548072282250062314671401993049839850533062618092609374359328176186517068916582404104581195695557022822933915597497551696473922866070430088426155637673898875613610430892604970994321655789421747472498920034916478192206674518766160464537453804319510123875794712051060963438256461998655599147919943662407122461519896286112544191007500488371193740466822156258148983669361195338449389970175953273839384646177341624079929193185900861524013060071000183797757436422842874112283103161575594316183826032130107181957203912463262652226191427943780298100592661217341106477131360385203096672474135313800362413424053703093131408233745863329668206577196265190614691418070588164343476990714028368860958383025724870686465560208351695705306593867030536559086054775262399433277948851340259608594916340889083095619883783390169685424372850399725970409162831082600996885872605835811776871894202326391357492953433875464887409958605845206308962520287422515951942643850047465597644867466702333819841091276937411732661469152149069710576563003630690519288545665117973797976224764726062413863383800176365478817367068568895689836728753933035010158104194594462200758564969001878027164175969951086628352195451043654595715752364498416357313174899362618241505292946944991306764357061241568034176523612191410147889875872492932757097096373259166637584068331870648809451325589354560389168346800096371991847288178126237128175195233381409599293494426374502869417904526345019052002155829053570319752479152890820809051655142748971684458348459639902779216094658901559443706501290891507050038787416157840858483169259165001312494782289732373161088591163760804996594476232628775609969563687034199055256802905235571490570980235167827177472148212419498850498741236546754961096108526655510920717887324570240649496393656973899246749408479781310081371946985794983502185399139204354695332111090464390925344298584306946323101174416465752378823413954931747576495958085816490971067085134464105777186516518584860485003039060987625714087287112453928048010975779211125829446749910347529236309241419609535752275118185100276693077218971525858325322416783884023084077601104259858271656698329092233162927612871705338654085490323623823058630379149291419984175047041194375454158926113048854662887601105550940765361508195270522240947160966556849448193921906515325314321904455293076679092316238722495487685788025484088055649614203550022712682013294549640598390069591495499691807752095972273219637662017164181866526537795891326208077548678793433493599272374197063885876260531862329148971433787271816126938348627982549879272275220925471174129503302917010983578775033234893491881073102214069882250882850383505843921856383420832518141373363989285725983738836839060922266717637459343919086861300802550799109862553989753351083944168859862889292722225280441096452924886298525864998225741215656315619227095939279737830325579253558593595514462991401011691528061293909413649656859750097965850468366281079477222751821091791488612987575445343693818821362562943664669430813741879515905401766776400089699122532541912843237917287283159239520618096905515997658290584072139227691532823267673018140508599200369561083659860064205509811954616191614205635801680724174417647074779936725535459979983845354376960363145209734684734173440758374329881090470208093897319048837378737117936101410560936514112042051192108230054118425648115476267258264641309023450448806361276827542822275805292801774274158731666524098566050844780364497421043175657416359115236701205124939869067362480114294335148184040225635430528478773041979143540829586378591821738921684831165048619039094177742963672580344314043665736156576028229139379698654064488145141370391964930877734458361221759623191985317246027574395733725574634140182970595080331520770267392353398920287456860100210216290213545565690354553239574897197688142623987383382439498080518901049290218778203395639676480664434116659099926272390436649910305178749691662466447016381043151645878516878392967651761139106495498944668616417778089539654545031383429003257545437025912993193241905600997374854438575253760606848174333675569107953848879398419890702419332041468347990080656191854202846974891972878541932795852460647839641233134150980049670350152995368017774016344801224515046692695521336865502685829720336234621379170341124596212578986932358121486848961213156651248823801805716116539091850530674981357329012993358413079234324362619014089494907423983933071088493825405237345011670662877542390412520928984169629593919629311890045008518358208376553686824204117892608966863357345701479414155141246251702250470271138123118329631617963995022348618191245119059953645567877322471961482150490833080671872354178166655306678200273700880702799631255996484305888450396970741443885778008498206939721783075397910478865899253514166951608601200973483465664062220228341950586984076709469839349643384323227548016689093197258080426140750892610536728219317172168209146441599448010090953565754225856648514844023085713319614953363323105581142629554109752706408489511670356915021736678325593914089272962607359760977680809645490720283779636621471725663001045184093950808045203700261383980742201345441275995945770917374220792197559975864482639080519252242980401368119218858294082337505979788756281201776067562702321653429447410127942401682644984207765622164729966038609051574936404484700369247809405937112156734651703042886253688751609868092664471223892255292128492269346530203788101170320727868858994962896918698230316501381217093963725172017890042066812239354951924258680754811037440119159746141195519524721171986707442914507383612359632033265627795894598889075510399078513782159951018480162163281404216398876581309285139658124769721988096895717250680205560808439398974992329087632964007400630872081027939347544946144248565377022378724401013903512075116872780385724254355922629504659311923192247198106695189936247267136522209018990851403944112857431625663473968281436880793829499415246918160599273873918173190541313734609830247912741034273375874999561476250589459849312209116163264991217066263202130279108073276369878245178654375354054661600904130079205819220095156317868520108726021905933581633776710653120061310912919346001431925132223364473984636714215026876332030870291074002396931548793954296877361713632141761127648020157071768034955284548829880568580730322552122328949021450075951261904660164380088196439341575420022129776119930805487758757970842717191558830494603792588442085591188506218952750855214902752704403889674380485203752882987011398150979385806413097579574194121499546058046889625247226785084294585924656437691378080866190109890982805891974952062411960025263401444601653675670094301316866719415351390090386379751211170817539780589751790281481657999827547340180840817821110027393116018806008676387971938924968529255421027999703615777062698599371847839106223123868974047801451264240320550352676999332685343596762229366529331215760838869691695659095620379699344977774129117676756263633781314671224955130689192755298137543763542823195614733815819434954227769919243478647796526850956558105316919164630974148065056950204555255808694432492868220863896057464556967284711216947388808245132280924422434891146333417356533240150944527821193548366523525095043415135102435066842559535834269066510480366773526188826120426620537702013118979949675729281543402617368191788662481920867208412205851784826495191610873300530167091267031226224281118406848197246615091772659429346676118036814175077969809827609640197133942948584170304472591606791408126607491779067400701470014584902134987989601412921084682623915282289914617749100303893659348849595207991179015240744904517709935055041383201792490946207447059392155704340823967370489505246132145465914687084908874179209147805258177185910968852937560730618053205314132935822588789955201286416992428151790463570853378146121877882478744968796998866349806629995186746269978846821265660995740817645643868088256341806537583591524862336381013001036097113082054805695620253674362840100057263611406201646395426330018057021302671567324826533071475730943295548947824940765812027761097821503601063070425884517805345975090796648309385158856467355874771175955116217540669351999888132967582258913941428141182451385661001216918008035323922123014124302986742474925634155643984740243697030899254499943812611097931975743911455688168307628323536893591656447262284985367104254941302969349436741312274720196844683273399630417667704820509586569903747367939487384169654464507422181898777514995473991934810208789050851963673354357428292504700807084476988603670014189300381020898807645477265763148649250940435359025447511091763442769975531366324527422063795259206202069042202563843192732896400905281369019848787086556546987385116827735128894425848428283904180319177806078571406195614985183448599694696138422674779503032273639056758686982060925324994353660009020004635023715777763609046689832248790358286912138686993323854450717567134957847691427124089111844259544727828174064670233383978742676849360426126277889751009821728516430166094979430047522031090596011962206450026436908247756708731356346446089933540847033626873763128200344243772666962527193378061042967287971516616084425186498423953591101068672073123748972018653875041353197451075937191254587335080664457568204353221459138481251723610090142318451297923689993351973682193187635772536164697391662154949978455759814098858810266311950728955368870695545717882694327444536809297544149393882393335626001546970939175514486865357056878555643999041405362495078284294486350028036188456303903077084238222656785285071024974936206903766707873274658768661033741387276779560315260912335380817986977923003092728571717686784747532300446627047876554969462638761424016822272903690077265352833919754705755858542443964436688050848273870694953000963789351605793548042938608238408603630534250102781594323678362779248722260139387212515394047227200407488495282984182963933617272537319697210167491620200823755911457327654160181211129493526193843387463277809478661437129593726165667094068541296267460267714004303181566248436059284315607468170251605229881763871685910175087535144314040509029423486978768585128237556181006109755516746064876800510598175248207020894640345454887363694793372031522538822126217577148572649128731216549750801754869082143219215333189959376206440207917722893865911735905454167410223581269306256946530903869200670174971269453260952596079555214894996690735100976435962984551574850521503245868170704146819129069361690101529487444019506961288651407029591537007100235630619027828647677915162877728465764815875499381567350994085895001331961958258039157380531860069194668020580580801096662659915288471736189037088486843892066906487356192022574454264552291556582445540436502289868486947455060547152391449428536537141612475748136867939352982846549622027916201413637356329067291514392518726170757953296991054226854508407322995585468803237975785637526176493530453044562653281053872713049182224386286760195705075446362082258409840392223576110556092091046585696718900590481382876673509701779916295597454968088156131483311471814871848030702770460136916877173895121475878404246783440019206381382524396564685726464772682796542929572365199348269845776052501936661983152988233585764110546737967150208907851921057238012722637633751396650138478536648135569772819093701351064270426854856380405818137332367195234693884835433087594075851788208850138716237179337607252522588213627507326197313416291024151716395295124716925331663105490875071355787020065932525478156774952756088784165912858308563418229070605745196269457488191119881404682997036988116807922331214700478365541971135081335406046899507220113895763339412853091136421042997571202139331893520343220441927262625483035283049726277599641952761904813110504033903378775165492049489814185259077194079547025191496591860578629824873057955042667251938839953315836114326497811859364718736506853118740911665121180738651779247359867339713989785358661801109099422893906790929647973427168864779882130772490535873853244230063700417800631958402664582753316366661174195108915062229335946846395527875373588524434186786861050686657822954167153848410885228018972345803886217229943746915954689955157383467446574879432676597537801474691013270431211886002218699129460278440099858193324226708742191604308020187313031075063989468176447862553111223525710823419825429863885067863204231795118117028733321973835891226177734524771837677809952206025509831909201480381720322744977380268805486563881020217467127450564159365522530178391505120204588609110521775460335168205997851674352106226456530827605551915315107038458449201215314868424848161650741646006226519321266948333599235906943646497978941873472782952825907191502188910851281035425219434919650623309294840379586160918765172738459233628810897872925657086004325339425099905311179136634158859904380836326891008873083091228816869835084194639578876728590367471008387449381377337597348804475403666638081757002260323295090455023419685261898520098550333089754285243802585943165286691513189192931375619317614640767506436213578541976220150687518214736099960438254779666919488981976609076365362100909672245674987063189990358372849111624443786531841461289913983826788971427960236341742959238927520202115183791066988447094611922478114009014261754446743899646805799417519510801522746831935632719828384813916865206671876793520612697399491410479168229861536807485652915309873341961071811197118933476508565102675253944203095398666369920847503197464884839791982731180235925639353935131323781947345884034619572556597874962349287131610884746095469534188026010030075933795598512441051326182705216244154752345728177392517513077819957975484398357425510140262754362615085237437025794993272269425621485392097102037533492278771995454518521078254904192743417642990817572428384958217106631169029474895625585322665537187173815232239017171975867121581629214899894269364965455999058795436798688700144002838357500181055910085441595691512628272930724368468182563489349513313787912435105494134336727998150430615621566049063939424666917412598302630771123084694826575656144222561848517234058529657435634095727033362469863217407218989175017934589807955549660759760894708343250762240394282183301397708917248015042497796918037790456344266281483715350249228285764857763652999497877809908399087253222891448196487608099238528902719431300123129245348077611336289611968083879086457841428365158386288411672400627488395308809974705028111587459669877728728819805170379141107134695455123033609082791435856538690245566949716573572273872662346036872769839697338962579707071020614851004343888436311480691208244511059830506686612352116304338212315361923594112578448162711692186935431963355856374247647741151774521031025955664309985217954096793376752049743372935815095947115122827707530259939320075142127283749953176089105601266041066474856229419517458605823310979413575875463538844796442505684901426990842613634095212842097752407982750343483373883744700492542991752596181085534117861009447461149424288251904522203252465630000470060301105943325083747283478954134966676270254937193190735740719623070532320771612984878332069064681862148057367580130443552837500817869727443274949082248587393909346146970870012867800582370827620277224431921034067912148273006755517132558985769995104860349918059746953153393374275725582736943730973295973017182954622173630176234222115121841859150937372499587471552453192875297591975645181021062147702611106330135126856230266027737445746510291614564507120216509040437719747282158733616944559014109111631159451347152682820281801078169755164843107535935486213600399276837889553726797446611319436827136566112448552275482713567178195482987609093767530809731978735132650007578411435370214368163934392439650493637630422896189070280363855799297197102640134755853927847351376963901892276270948830676545355398167996841981878495715328948860798200608995469455553009081417962856505331862840001672170233401678529117175840615019616663456958405816288400267581977084763492951407083684127530822819196095100002339378993436037603642639371373430630986192678863596118819414990589394102081103849780164699148009645834180369953617008929713402449259259678619403332798838526953258269004848543357453970270406999255003748245791512493262813444305448384770838217717179783138933524288750998438957980839960803736058336479427420913085440480163172969171003909684066178697401008267926024059066001038724264303097150749282939992986886165605339494351096540162352468881280043630904051209984002760807418420037580164834336379256832679481920707873652345045696242229965629334990170388487849103513547174858424264397797547932134898509826480877796339169240069419274953397047655725905550808454666321456483236159798160961337072725134804070784515695207924801968553409930377388474756893922815743924817966132771957589709466908365275544854191983137054715843633659757218527540378793134873058162776659659724676209252425792304778977381755201610318723478297158920534033695287095497849146043288149776830061005190765727879872637082672628216265444179785450639601749428461727159130246609378081359212447949396050626596526328527687099805667714242035349111355576865030325349433413094720851281464075420235811383573464797946316011398931889215054139551619585138795453627519711622691527868343013736405882177704697428897384902351537919061659124970709999104138961467884257464331913669634987895899377802498086529459833966655075261114645873883347706051810557582748369708468893294380112571453680707736933473561721226754451725677822910915309454627280477513346608619955226092572038489174761773327984471397707263618548716240043024361782543139182746980973731806195891759374456113681952406834596600979660640251821084108622078758692510395612628127267046138237383606241080304279062864545168512218951512059332981105028646915996518466445548223861693795177858857195198737146148989214292052484973884254248235899328684773812362230805136422192549254066356981569322055308562573078988262857161265402291988848426656801283649654159203051469264722780362973863783241205156069613725761902779496326314734510754573874500940665393255015664679605365531458066325317853941684110404384792565041434861867990291453387276702377263613161706849626419733289692107005366348117001115611331432641739682553206670753355806539770744900940290399026093983998593270374648416372634075187999765855830731266442117470143408555510005244310658099363015405086663645868188433891310890747302228097564344417851180737461789087087886166158650783652588057591645107995695805548553339216271794005808476881854160859335198803746072175254419830648085968406431099310447666612319531482749870201474967362305044059590471195098026638267008854960055659335484823788166264407974538326181331368136581938535501151014234282212196416100712576933784348048150293075262667313158594962206215048541416002802913043558827914643738118444198377757920598752399907400254364227043291090703775997627765570564393592965409910527751547754585333781281771830631030833464016319129711619017235343328614398885485017892635260912754511567726455705287290959362992542209821851763644179958551512559528832537024784909534949753367924743471989101753894961312667206397568386260427214743205510315089004887593722259593654978401651032719444094964383033029639162193417135525817516170612824932527753580570087851916427650708433145157129372133467186513312235852480073864627244428741645476910591960599009042507104121581564194579793025019632089436342140725899499625579121298514200119571003975041510211750999336180902996942166765754844764522838696485925916309698030279007311764958418850672101028453041918201967566761535662443905883564172289972703017048032406595414265506001496264680664874728211748851783221577694891740694023875216020578375242785398304020685915564493839586099168077419237234397179362971528681164528704056583754414531053977328654705644206882182326221831000561246816220147029340586405927711439933272512865732749198992694122698862755276009092286767154156620334232648470579313521872707227220460074737701919801921940620043410693177579647106828694919454490015981789153718237211425690358017865199919890812005099884471400703913110276924659064155134212845346308378128473658931784330456246943676222074615825712528210204401498470275314270464676414019022112845595717150307305626910073512646708103487826528683359299163711453563875290459727941439692881197657732874855515899612000295410330021384427654583342989642405839616132835260563428088602273719623368530095396536040213800767849570811859040925241344043587078742575123850727394180806153083238093689933267849680560759051752341797342109086654381140531462119524037486975655327250484864409031727723402046694132113418969696775273010197055778145794569292985318535126084793692620410545932631327868533564860782934801954489231310446960657605423802801087672949448443537460839723315732056967875920734003418239547450684396849814031246369220744565795107847984845066325856783625381736426083067226517246872547392842293929253861366430588293042486896494119388157600660086365342723609247168424451549278004532856403413431574196732460325553044462688443048020933986439081482299445890751689678703675196753307102993525401608190429627048657763157103259187026215354455723794983163567841778528944368898547154327599085042860543050300624043573836831544111616078727971276660603161803370685396684077981556046633486775842483200790916718632263344869029028984946029232139802140825610713169800349006152739888706086045362218941188823968827209906744666773790405651166560433997155766751853746521174714936383546089289261943732538704530632244751237490252224484142873776809078345293627451278936160568805642654754528462588426071778707835375833930024438910548433278472913850535382394615580456225309314949868038861585285370533285580485737939996954106967551450330712769071030808243906678390323621972448967541027879177288301284331773666445635289656632237443654548007243102877284914696960264369701414577322560518268585301204604072313601367706138691134934820885384989986596446241702611961983296863397990901190773249256376386927434125429309564022139677715812689479076145866187784548448190199675580385031845144218857081954852974151797002247081497385958958755290957306564329127390966212242008450031598470768620807453806786340276130097875577753776897778878063064724358410426939373451878908650010880526741798353123745325949552681289124098847109115393914625602288309413372979046512733068864287909586316389518974602937991921952165752313248377015654658380320485443560605141684355611438614519636645447372350541907003937704794578755982259679368192749697231130179689126064028652135980209674720981375542752544413455364018164288527674940312503013219818600958385061910749801383908021436101887466366692958629816140007624909452330733461865088094337429691017230793763469724045430678144443540464236586090289467495728763449264729992704126384230839575403294367543387688858011906880511292182230331002312750407131039814124051962738497702056529746291261419628851966209202172521037705017923433058765215407990735529105473774108597885423065927468066809677144488879057742395917511586364293991469094712477553476318965524110537444044603096444247852777182446718191220325369286168230741140951688746559903703279142913564408105696941127691456278538511929029785747847073139331280043931069866865439927659563780204916357148982204677516400319318316783889958107015751662973074234116732023763966350410342833165778659481719525550566320751402186657431625451030157873834647589319300760632424110285116035701460690397443478501240488738991178462090850640427378829353516096354964084599843884640229824194051406294864102132343195005465137709964488441221829185987407221496520673479692234791158656178225311602473476954274302280253349794746822441354143917233645951294896069734611488946502234924300057036985305181903497761371531873077025500251504420564816270826191168509837140482506950697569823182710781840832101474372306783741938620656038247251661616457615993994282150897970704941347957033631327161199830075828715563815533409288169307844188580109015269956361673319711586453241853919059575395178071387758751142024907883359445195955876865260584823990973766688702419943169497438183082972235686638748887798426747498494963767340003572661099633369649632719096235086795252110671059965968637491491495169207682409023709489550107934218385923439921631884170452510877214109243126057727678790911940816749705858431351670333459277532296291092762128083229938997947736483857409151794408543514327404139342613835457229050188935223543028036203393671832073939790857521835594720985112356370261263920199563504797518036364432146292720131970309623522008014503452348729516350615934359061202452729014416613585954933544718588318728565626387841350739982587738859477603335671006463133134913614676428467141728998849278743596450634452036469129791020642809593392226337765152440761940824758685517342823064014577551615149910241583096849410792030778421769733716081976188177539613440684616166480019322063858098171238120123780950688628285312868652238116024092626072065063422201341217244666947172822436007791223949085140598793486351905807037282000936693819298311082286568473636740310029699292063778042381781461475680242847777651308657150924784183387199493669693912461592729117289501508436493965250284327932191933791168764966090680651650888177541791010056239322336411936828627847239810630656217516445864852239542461401385898396474727738094730229023197559152236472895232614231112202362335104763410861984032101268980973596314110244090615609347741806135199664728558266265048840619090348067971139842730474086889373202902889735696292466947661477063338671132222607194185593430327087905853509318555949644313318825671330560455587557421548773392925994930001797889418225104875602511541583444165117476931620712857215174581124537521319960702674575681693066727788403943792465717717129749033023470979042194685241486323523183206308574889936675605717819190956653366461576910361692838992093188661718677089178718230814317779778008064604313558932902509944354952466042283942828885818062614596934019672209210491655997408703174933971511458092440805285862030123114384203475183552636780525210888255566078145808744255278665090807368761918859592136421466736573688392146396113619431429252361476413634187646900942037314293162823204081376416195611246304842311360327091403128218856370573436956286403934137459531067197564767175780032369580310900457203071855223069026882908159905760353446952681759735980206702754807594308651741019743808826670282780800561076187048704628284075896722732631621938433344477820373221337615432425478991784600942792954619449948634180955864719397445173160463981629119336066881587993525444583632429865830510891028340541906210977376291713824730449955290133939505035619501152398969963434476781150109872016739705723266648034259363245408461077972053374897757645441719624265194329351186700458672346749795621941788286697225415279907547303941348531323194526767408931052515273696406493452718619482226549706470229457406846493674063746583403060986461555772649913474639221795732919638304667959644271903795536676912428114012415555317470765012904213188243113085610743520415912384894538318836682395256336400827560944663509040182281204260945109450703084477603742886482263051157401481893208452735714062122383158359522206088155210671903311426603780153427097915811152690035515920319708065384360258500015478354832828162906183165652653908325587438008347563458435178494133037804846541255512168923584967281768278982196884479974586681207454444934414531436086778936984062088464256725979354297938471432969997678290397098363799406028664316989211967576007816575522436478833705156029188923927870232202372039251924471015791563696771412140554767239778267238730353222605798610970338723816280020992592025266014625968140670729589147237816321244740939816975816636927220058420546367949539757844209429411810751324875643721242360305121847684079599538791036963514038310598928661241621199966479178352335987697189650068625250467922062433038596633990129202872207766405561304834923924968338527106861806203616839955522756956187287483311755561699531988195223997352713895823132281316355035296075828276237549225968309531147633810807130047407687646073181433709459589958771429288725721912176563368873151755745447867295814106122584164679399185757197300875141757283844396596351948182798180744554709217799793154748090204068469873444142190444350434492275832185124112994041223621306696418876769236603011265904260476130271886262766269210551514977427660793223199911466549259626971950699404900959192288874518426579113646022881296977739104427364785689605994199906794922310438195195518964417381679418213462971506499960857650063903202799364147318568309524741361408695948304526033056452341828221923459389500194283891545321638390124362665121368530416261002166551178238125329592457403717033322345418240335519467122576839150940871043765424940421836775425907654785415880305836682487226573846691035272489545063770902829059673582237642871530019139183085694913926667735570004567813057039918690306783733245742400675989397135502868496419991406335649806632607442593051770778125979270432841000858368630239993212931597898637699932100230813193121399529366892001532910015747424314408572291382016408478151173414811208539412883596939245103383905501755913142186870221579190345140062991881277679214410444399116372648067031591778560008749473646597451192707651397623029556493582607629200030594433103528818663463005516709446782436079910700881203753394656573671422590997475567996811907737225231001521979587685783422430869382480384269360777692158319961208103254676586651896208746253307141260506670110657012055146021178767089110245992089607866914960411454286532774221699942401747987810430524261002179690533174076821677683769045589941494101853109322620327527653718620753480975261845183612079509004708960084262267841546946203636031550435299988065770776131899030153630043440870923846293130344441182607065930406571901591566378926779490638253252466195812883283636673709350582784390061521270921917736866356868824701136695928792745144881897563442356551464644776308247866235536709692472459750971642296084405302264091618030545172311801544377392674795763200099704454257607672008369146928537197478210141989759398177028758356369327657478649232412197125125654374301177675462604794845480721156639792617567438949264820249220029818344766001716095605984899023900639429805289629783055625954052632250943525686801631815616324226570129965381523186988292027333900898593798868455842641422747830293514550652689262709883652863516120424665891290062410491282181043166898590877922517164394088771235146481107424492814323419726857497374864718182278040202578810010864475438111175156423920046172561241485657789953572520855150703828202521637826115780139402068537407520993121285389623005852606782970969243035617957720767899769071438338692746174684486893482553745156237751780636148622533726831163066050115881936172099052733330280301104187276331362686576403532159209913566122317271337769920439636199672436919094419499558180871871124400538542813845960436999682813935901750933137826350339511426916878130283986988597130376352528821309879261905174389548852856301775153623949362777348527804346656732069336409180192794304025389014613180459352626793493124659319153973162183300763683921680251484514917374618978093256420512575646845723718235150782400468421757200692305342514532834235936653932379781212399576975860746367691028518417097225066911715811917468276827681581152037107923168078713591555621204724306491458624884286030543108175421608373353801213500044599538683309415679818436256968898394880261078936581631529071306133342513459306288388277995748847488218925712627972356087777707988170354353019583470019122842708311040407230785741201359773856409752699595216725649942721706455984156588129846540501811019772538509985433047859992362843003963906311290635111795125668307894672625779172604347735216584766326505379278210465650843246748834340930222163628129507113039397239601007732001707638338818308772789910304041789030263325397758770826459919815229275385691651513162212116764295577274382940562839237726207264570691944127722353539567698110348592228766880427067411144468031665187080586818843013662073182503490754197616951182136845235921486796356411219849325283086862836446912535292942301277480356590141983480521814243544465065816090956414956504759736981257140890042825249654373864343896738170368227937558387827479521092620985484790992542676597356101106796203609991455873108191619809338681249091881646075459594376256635789558326442276225827842714597052126823790554559926652539927312321206317028934569233102228782140919353569382693923371936461741847880723835489707642269041592949372647452278453401052976712738766374762531120519588385459578612481222612652516514330936082034143095162725298245750896283643207441845698482832218320064124371239901059986282951178356301905456123488744722468679087921994411524665070776682262149721000019462480787340530499579115550156847093144678639271567652945869505520361798358156313979245777766737425528656439840250806618433310913437111903236024753342758538054952066853011260327987841323260144317713937834215924054431017281765629334760348020843723572490344442182011669478364055641830364823397806876013009094204999907581943616139251308264527991219734291628534801426574692071358266764101815148343873039194981864006447491674210444908008513086495132289405857031470667293696289302303401227851050575417267070451326618535332955991471684283177395949052416324980081909262798810015481447907154692320511898022574755613848199176309179402547286980646908265484501247551695157910194339756455403219818928862370194978443119027630952642394265853394441014311274986722644430026621430016528416358367300937369113974066966119988630539526973076989535819066284641191832206059191222400153919715717114321645351991275692344167345646639451905761175392382147909170702267998807331888655877605675996656398251865749176144432292581062080971197116338506327937849728665618924270914656201209347986469983895525464054950999334171202951981494540957445011665504048074055406645656358050273345571144817087387736604324426323651269237371828836952145682012876196361858052186259116691994931032066850868494356899363025704306732620954676744861453891699726726913704854767236436358564156532302101834792725729291019348358484362134300518456662333954848737604125079421966296055247100076991422441073733420567605442830026920190165595508758096447075800488344624939555936342477679498823093661865827657623408489330124296944735621177684050212391893103890753716054563553421085079412815888548168546679067885738012021723151347967996226298331990607637209418850452398054096292388695364746967830488285895215232619737098326832761468662557811574840369709801618457611405287323954417306643446858909202212950136408578030428421827453497638454524926834984047608043367410430043413866399361908503228633769889874793335791246207702201285561496480003093799082538020038876119754286333556595121905589351151326868287034113988002569109260807820017395685741404797876530430380603914498778930168251298959793537359153787778368905585382306953315165590217487544006180384937178735221072938475046375689044805726138433808945320432932656333458843821331832246283863871652319167314636132692610954561189477400343658008222226365559726712806232116267886358635225790066549905780912246653991202661195806122616779121363080731538272010541892668383147786750445709762033639331337098847637840063009415826257944368173103274106459981507125874360380796130760396850300185454406616344501538396306234142033535959058451602928670098657827356892023851566780748729374109109016223610252449921033974923767965912562344408753367204344221501612816203718545779564396835271650875045509646650395854163073650277219855754341102943213941611056832621865829858068563470043807028207072473120684703630112199180433671964545878497617271816174738747390687224068789115863219586593898568871586766926127220064196170031590175337199876629909584236100286760824101618072445301747257987462018127061825966141196204038933409663345477889005662993339481072053590199872088048527191769339388556719902341779020850657709281431233365189193354112602662234865988920551016911592254009004417659279873029997779768659937355127178769616321962837016704914902319055889890354358410444111179796004069153033894476688291865824727810503094952471868091399262049915045316668237540295653864623778763313020797056848115556353860587607898040384894893056883200799426577147127069274330873300237571978190610337014989033878159871798211399360878449426497715564407773938937551691170427279156724822988549847037194359310223795187287914513708225884602918366596848655145871366429833266656983742970291079630290226545208933463064273622896656801279340011328235928172378913276584653613466519504646235641759036481617781367871253139623313070218774115127394688867128444489599304650049698177640083694783420132429885631174479773025790511162430438604632688759048980408550182118942184391289141470716299592080210637438166330044993098326082681845361655503629336284289256148417371227392470600683919623002335681271147217350625689579229890871354046773715151018184585696003571230754320851654070308131763303384352737580114280895852909382977542726455148938649833801490861161294921452261393840236499036243462002558474950504572054184970103386296373958146291352127417711501850496085798629241471568454057309509882000180641287827877682061220150708460599681721354355935608275447205149605063605049146226139884772677744676348003052318231934317957175400636567299101234998890567448690296560350669766459872602542298505533095447934634733736640907793124643541093838460375520873965682538623518115295691043008229717281618940252610084358665212606937444767361241623685531588266626111627335250326625835708153645870988824099401572363327713154061241193384808480330412458971534803388718255474556629601504396468344504228136089077423528637355799474911091926870885610832872717780529055387370577944665131634915243748338038435960923276420437696881703574850205327340624805974041046129687849599857899480711117014515503933884013161300781974574592093873953521447451034567073583710458402486160822388418910299291076560819627880029244007515339113482113523840357915623876513322010101409232214739902128786335066127435250536153765322889249583963036804578217310770788063750520404028184436991119286014592883502014633959618952765514359943942683621132756699673926194616996572277147975109858078757569990005981539266107620484669199021925200722665293058802990913467298374735824593531519599116426417485333573968936443072757837860383138888279019565161477652075211764034860742745000103881387195059206299083629994865172993741861257534608106069032366265845483126117201183771362288187781843218045200927982392566360130343879251010390939197077206048827573439980628380727259640152358735221257400240112459939134140506235437107277479573705676320105466680203713786281665401579109485388747451693115993954134377060864043872803178476086564156335627493964468956739958618976857506580607859282745244820604438451896032626002088555876703443866467247318093075252138883711675409723552106677083765407620999287887718829127656138880270162422371043550160783037292641360326760420510357478806418700880486006330345762319195571327944716570354056321292324410590465451424502729915376560141945963161628458415840270512203210953813681963761146405824909991187667875154212567521830425247566333646957736671904185411814337563736139227670812464512421045517102610491999854015194690338479861726465601636360111712809539969929304339064322554785552156220365353810229876191034564427446544123995788575305252813209629477773020319670643779515783402383331640906424544951241389566672983870298804829449074350530109025093582441656988403859445173959593804595454761536361661603471390208859601281817132485062787790411884694511245022632762898368351192513449928799922111867380131166469810954005055552718475915993591878810995388810718838072904080555381669798186204392134705703198940978313464983790280406206096431956049463961523407166376243286957168223318247266430386807804687870319648639208160738528451407387672120921848093212109431237905839203326590587451847243839543256528102015554891837242848963081149101971564246228262756067775528890126381776273239461002956686352440349529265224603210959856722916389693011156820262842759229303260870391986041965053481737599263396347860573106701869392406975717408912046526632655273247443297000295430989279550347558274473952303990558016314071103591500113885185022484965248798865325092420180954805363100207594481883809452582190637772653320763658257670517797954702509830026992286440853231916156894456886467034258594662471797020874114418550770026065802923970364719670024940804534910443626690046635358572434956305153047599118548750635047972177204120169962732739571689724833091772949134856328889528441451183617386711592414586038005377782404300207502966686214331230644240353456289052902445003580626379320880288892892506817406141039362937196086591628841866265071764355303146077867738880343939086730296173478520932687502652419315865760496479681452549149060591743060640874895467728558339546730258494854197969851384811239847256091544778629099048057576131030690403250417527420715584728668812797471297174446102449678192914319527475388242934175358171710914152535224434379863554933314326072764498151551507792705275519623225165410694222600366887163596677458986629153448186974437668541843113427787176369316511247361566182969042945019869627600460734528104452887111529079423865198179399119520306379293080448349222813026481626663700407078571599362429194361998076905819660751337280616205304355982444725601666046352736037827476239378979887519240063976380316648125098127857822264858118738642359678106474720883426581211126092410570284032923991839754937424039136449140613124023598993069548140004896134158254337098449773506242077185920219849572011636651628304081035849627344807152976898903128982529110982488913238131398448689197110044486694985489912003718499068038246363529563677949798153538696415881070436673514560115713957599612070715827219161626651422208744204856490840215592993089955044029994712702585448925862620726596411346731651024998862473199916082067789536920105187067000383984406228924381231335945263545194724916869277951034199894112081158303728776936276669412615306562531607471030966142204171008269833002196006884521151540095297086542602162137292065078303806396710806028441313487592643961156884696853307034000728512483820854305460114067349029795396294244248865745446250833541529477950169628052026681195550581830011988858368665507901327976701774009830139482224368314003059038909671994507760259406611670642840112834890906767152071275050466054473500304903400560292790508953361572380989645558308904644710033626496537162844666278102501306931436006994095275839970835256792599839108291354709223119737113572927425668970708127992584742984540382436137327469162089850897493344295333808134777626223933514244198754636095912434886955570948097166225220907578519431708853729642118537996287293375447592780260620526684536545873261003778970499109818120523220483970066644027939735514477580731804209905250650959907869678402555550737941301557415634911444615062576572494441909598227568539499724894917500103441551160534926242579254543083329817109327492626172536617544904040701806617885680621354685150437481586081904300329667808986340235944999193290502160615468428709041763919896069965029497106742651083578860906852815541074707605642906190266926337206336901846337217077592861807455948550945234238700937123281496555195584143781996644981735061517851639603135423089952537414854529218741702315994596784565478551750023391358818023100346691699539472512530935524446887046547981261492689518640002208807866629275877545193084221285111157514746005562858256447584894241340042544343308290103306043634362480642170554322095900020691272526105715880215517107872289429216826160267727278465625485685734863341073009724180031126355586166712876447536218913545576523139060036856475564577853953423623358142704798265971934495109677396734301109017471786838172268000909520048676527773728801320228660364257995880835522091446392496607214617917657569281632496190239522262479753098948720954593670217044512336956601625248081518814584290127265453413238124711943386585065029077485949117737930950191410720703228962064788672779387667579841779918783132356991154399213570437558099241967604327999171263834920303507682704518271092755207423284060654580318217890012797339433767957501855905360312497687292670320094961333374287600295187295901931890547429846997054863117017798146128556053640623897332566179273214365657741687907456077135199713050977388526163444177503058297175147867096318097636005887883574636189152911246273486952865412585267263475693292671055469573333767921692756651033141313822701109916254403980473475000700905503630705716640265666322454558333206317546261231010268393591537882124026132097988931189346642426637640385125112319193490990080913269693353972000534709689758180954052063827250482471073615553074826510068713648116392023416594334442721511209729314705516096502401670613945052904031304523553141578271921407440579271663204187965981210458464273744408547257166228262711892318223145669888251763434444322640298120795938639834162179812016620523379383231384208020653271756677030715341806939100959289071146004784241908810814594888548403304333951611601692409449217175776787125563574081346734125136624878682851510719847026076780600811369539532308401017798427291678770323592744665303798039635922323643310688789287958038820167294476915232751321224382778717989015703612847247608395890403370801434176743661778284481277603222430414467830964927736783923585315233634579499766829417504727005428357362985513368574832407536414286901892071419005818154138320509642654377263093942951469379673317794820660074255483037532327688133209175203305025066065787343529774871570282044802604097763105857702535878199506130808728092897837997284248561762180314598800938240599656374401234285389127987512057450286481094656407475712264590085287380589242183949586521104699077311342320640429097070891591342833850538031391583618534700922878548105160232412192857842802888919583539103835853027333571338287765902052421201561469689077572713504790977008588964846167367106961309737729426991144971103480446331657521341146150188239263945092032652808186016078520385208375697307842345675754267115087383811859336377402360453767919777473525673631856896984966257499903421084588446369403114672611989948753984735530391377943722294885242436590736960155264564497409787749563849523279029261486240480281059144171240909580122162912385612128891167909061459107537619101969444326727826393461014546782351756565590478157989927139359657915452746611221069524994880189923604342199400303009044556732033429176782040562918272201674038214772318328523099490463255792875365213743237097447800468637575613343502425077051006717110882264075333354118018359053421495178153367796938644829186474296583515403255527690761965941810990294954246930247210953279217214534729812210793572931715839722041592847085426591327734726496255100206686486752404145409023820546356337797994637876587875993364165939924078528132813114647474282047137996819570744958562494203354499956238774715324076509116896434918670107771046652987019646054859163627212091276787020942492684162205729311416844493357145486457290316658095729951021800058269275848839109978313427414453552043043075236062305445707523566022226787536260488708610096751022446322265351980502847879438643113450419503797361748890348332125194793623576301608566445578070896279318011059879445261176978677787204545365459398019819703390643414621064760889709012003176432460473614358799306299793402399724895075121522764221716697798672729530246337663613455220514634410349523191195651851221518441135823065491231665628577959500513091860041276713505850649533103086421916560902824118653733209531932587262939982293194258655916394096023981976511438351941269251063818684374892811914833230553666262737926948126286438668696063763856465246347623906468147180492693066914949845040151430934730135353029879509267274522689432731012955597519890204334121800138984344317674225041427860404307521029246251202155740899117671887669312718241765828435421634097450937365164939439797008187678053550276686059901141192620397478263513899524045223807663923335823423048035158632891415265727162193366557202453438293669579178667032560771865481595374565184490342802592652926229878578307270762582210785820650837874509772256772784887249859876319225413161327585954220470993967484313460781238450530470583519377048133958441979895555722433508865104344231022592962616415131334415799007843904579910638419628822161315624067783390562096284860903115061748392767705153830372659582983732606347359002056250225019898473490223050132884815479586951588418638290087793265741866981752321819911005400046049913644827691974163567842444270739859295622367520887970539200150789013074144834938572869414095276897897850628145421713769298968395806661242678760362735177320912227283247295000247627327110328509118887529440877894992568354817481568436514588482468208096986065501943904777255501032951903464496654547844505426596957176164915914490994429015998370169391054487027210745436736855076332305203198467816952652464700296944973010211496235020036613469449825228401477325485539085245908047428991458272359040109537927173554443420270089760465750799713155902668603168443857731088997868734792006502699115553612114663809431319587998006117277370607554025436403322792416802995815754275742624888782432438165533327104317220680600693676231277919694212252118190449098588807359773464523335056869822267957028213128840996941122620270829622781795104973804729036336759261945389484991501358417625163585128982009590714359501953439817429230336157212811908784360677646279311823308959528591899922409260906716981418389414340940182470033480970505265843861001156604120092930288946869930591120267895061002225999077967397195849744771723621514999187164804921298623937000956918634144366569947694219230231486645698747032459593164198945328531156338918008923216162240414069553365007166050468374145141012559820562705458790176039900975644359130812009541346923382250999822447179939580106225887255594349098600631068092282355070002400597607428206985033899771499948423062601478718961699939860204143668829698893927139107484197681473811775651052856336817093445233737040352653266249705109388111069569532233557594851467915962535186006538390452118418806347321474090685523860735532043638845356519953033306532994365266981944020514311291826131579852783081086880563990167926616295554038641845556139404894285943658648628174208840913077964098307782932719018993597181952122941460766013025264632260077091697944292333548929146939296290464087215052822902778507334489876860389446525849021714203251308636450680165444495580878356652292129469825738480761518930681440090733449708504591228582868269133299512217828416030477896656442533749100880422769772746117944299661564574936875767230605251367465491573111152279591793838649382069655916029289689865016175793359930627707710296960928566159503694493671701462161305957181467925195077696824336453778581572749366525813751853934784442965715366078730618934845011834263871777319671289107289654560209128535103391124707608429294374411712333280140671239713117071588779674486535119547427357397044680989230655813703325644783281242516284110358599826479446547893232944777034822844512775633876188355914073427524800078422717813879324876590220164589843454070606854669355109610895255757703478983866242630200460464943639063928805466372075657974772751417528624467981152240320712178810600285977908996403080220541570640333923241301285007370514553539845545314977313156969653318970029854238051466610287322202364034314417844815766654575965405948267639416343892400209949006075415813398646778587823896445434794513607688357751222453854026524426441142736285877601863470575943788262483786100269499013674091991250946885266123436528553376583501659103403502149349245202923592156316710826740542028963384892126008031536171085764547097730124947900161819246873843107300642787834420042183010933700019051223032425901642043437945245273443124188812035937059515846458269036069604005965904367325687923350841738533819573788797661065178035552729245691040526462446502797862469392711863286507204849618326414597245975083722469190784576391870382808833909432017232835175480141727875427850287892833511345794118110591112575377777279459352834022368291774924638526616864725077646749848365304697995529870317698211031715659210568420051985602029517977314388747926300097917148267878137306467780076340763644426884879920944756573953583996387029834510977361903364177194843220380143181382482486255330936156971635605022184226873338187064942625486412546455574558709676807480817031894879977183685328865703417216516281391706058546528735904725383414994539404150473488378536365610923783789777744867153200362645134951186182403065288452083629537513764420217235886622026482995511654015710385092443646242149868992732609452867482429665777719023645213946535813503905837409438515558817648907135798174369118373957669987998549676322460534150991961264113562073617609038607890431243504437144859844531978496533583435170464032511724836570681625234413809538095048851747257189870425107987869249321045242031147624270371687931587302738295114119163907896869413972738599132796411642511790058111786778744113973082383223361485191215769615971785958384673973189833343298856190679520876886819990542483084563583442281719910008408602701863102879208929631949192689305458580056184817784446350709314019802120284232952312667814946626247412307328468937841737446597201402469148913983133568805910804410204442579461421579604995860200270983181802172041777094138232497823755764198743230705167397669167819442342812186928942314702551348650048448043587392202032444216404237051008517148566551593897819259257128601589723242088725882558463022001749268929409299769322524469022304157448412158192988948152232996233920366222846325487785341163645210858688569441767893697559621176377221131128784059361504536898220400111974494277894311633730757205018604738869106886583626724602003305235810053244613901220235837333425160050102831997571082070215800709031462946919814696222590616562620350530285602968808132586112060779410021553820672077444080642789709292500129577977899111307228441424858389206772747639339109557186982595904372415140128484195544189910689754795828476584137353093785567802557243710562578042142990610611563802703694139916705124300759313478130153711416706413531257897146529271696725850734142580901419399846657649754018293378580204134574010542564219516802481713696115911217904785624456748064230841478813809623080097221666017764636361823967919333567122588914245988033645747308866655438450250069133502457809817715117251879928975478452301596479861693410448146227461918368772997178242079257068692926520319197394171185756043519383503436996466226191821101679130119487076990927532303867165852628709909998911124678017859016082426599542421504281925629897344639479260647043129271893603894123810748686705194926671784339748864420621899107825264995194748024286972744560292920359134954170129930475284458585423355996968985743297878983676614868116739525844394214420144637431651076643811152467731396729465082197822693247523680205770172570624363092556438783583807939826485281166504036044950795907771878651608176701265754684490295396924104298647278732988122706883742281797292789633715316720914487939645321713516196620125846797068059720198407865816153112722698742337241769036530757172337326914634861277739473360765969282657473627572845206393004024149785259381690564402323270894759801965079964752701242764036998245615190332422764914395896127664407553916199347860184006501882966300322355455380628086237852578900350692647177725979364221310228722121324466040805239777191990282695963858493860174244481833220647249804055113833535683068386008704730121160138682269657702156388755049802865335094658393231552644461296314357143757000125072470240802708517970323370778746321580512272726509859826692110178153478325785699158970924667393183803438123658484972396192845875075969025582969038786257983148445460286584510957840373293012898895554765398676497458843525211157126179625450345733720185573556304753631171121736558107263210801279333837095942959057969297983791185987256124250437047825823362672931481963188899308743047266171562025355645048806971352524664324494124349125818595462367614228390215196268621949876354277382925369644163746208000994513978566289048257772468299304163127633556467679726019654701144803038147213034240261441086475624061921761392898321103386949615694072968004852818695584074920623003652829532143577855953939375245875951315176230302241662487494162894979216515131675738023787898112586467721467485315747482115950243778097006101846318229426211155316397524009788452941926816227612625832123865760505903531446896434665879162564651357777157036783128598422001381137217549993409854242174944590941284985501626651175589738176895334986613540550205843152888454555635197777574971798784545374100207354684013821616354147322337018156479290752736691456508997119102090217614664240270336005985083544645387415272148608970063828609779791045688787192025572322425049709421889305588754378053599902759010816200943015541545667448102865150756646311211349629961812278261631986654193121907579882445899278679606782363462338735294708991477671257743758662539046107065342944933403277917967384248437344492442121241733859166906322165860386877321775327008561856278389456697757950129126536279576243963470226665696784830800563078940786586915706187602523683331057286264798084716410234254840429250885570626947408189505291282739507182975285241879459955496274207430899385611488525502279440188924579502806913396120458080715722622181129585614764096082971010115496796522648155251867039614358995080508694229400897678634047492321960323105289347173208307008297148112126871957388288693940590872036425123301709421384506482204214448026989305862606535301874494523928872721205482419996716968820328911235017478351033385478434449704423590644208526432280748717309561007616481360972875967989947094443958104821229708010129228443401918345672892559046409358657145452756658865842966415963310296992404048471150205091227355002169891979250905440222666581280410063228420831723678001270898369937170810906120660223628932982298561266209594477905103475207442686900182098278859818974797101373696691857956530718873193091422507034623046198231090263734254691535607215809367571991734485149631877708915317869188512604681641061866592515082913739804643846451395460653977817707613231092019515134806408608119912906524787964591804016328513734825739826678554529128598327398711700470120370549236658446148670729247337136842329637248217593884407787376384762062890776405457688308041381583326649281538306038950287340808622646188435204814292443973497845073424112175567835090082663857375976423183923507689059610361483636466313691610893009483004735795395659309584324756948491648620089863538692034773671579809826777798940864472933856634453614431836632214035480333584117838384789866325906422773195026392205025179177459130153337544229185417351460348456895016586485219961393633029255135952452678242546296390635926097016277885532125085507641716128349004759642098026862057003880705566828508965844437175660191813575299602532332747528483016731650970803297731352328344087882789830944773705392209288232128335741584854098118775775409205482191788387895768828060587749320502790756166100448328210709001793938323945945678962023582071452884264072879269943299384225852520381600563495893890426004484003526317688288433849293933590446017929894408473253499827867827761490602431308546140736830220854604258979578061132425543627736133553209575794732406717576771909890350070106764235029538708775874498558508703341429256954081982996759924579710160374530093582281160621010379823782137662176204530521236305865943709042891708691144955500489161391957197041153320297729843086223669296624663161780104972023635087629796322427146574715747474663009642288031405688497472277687449688593791574112838341638935408022326521722933750721362880684063652330640508065240771120715900735101930159609965759032744438970306760524611647533122725195029369162739824174285427709152637736489831371309012176521971395658296262894881501808715755261095459631904103640077200177974578805759350444034393865852712169435054391924718383928334348104741820588094135768244855936253813443568891323913195025640538289295951858271868322523950208842053951047337091670414147323125460650298568565035859738538910574155905925317906799787180507883219281930915915546196777963162240631989602954370133468266877596151049250262106845008293136810550980170055152667105406549677020774532761468354034801425480053834399218838599374668171994667049940798836350509858050077760221872749122778381692023805933678549363486517339114370385135199393137159935801107773840588212226493499308982883797363475376343370342208174549461866825019595316136674885339097733708534732341116677723580446721108084166282460984970791045505328286436204303243243158800894848645748117395389428007443787781314200648692097137077041026047749859235320373327448066857004474728862605730208905705863713561491712513896452543795912679144099197018331365532576925713287144628344098361657136670778647519256465008986369064563705572853967275683972093291930694001925298714941774756825899203604400885410843209090102117452149905132090128631395487415047042725495370080659595855035778404193194974105215102664904317319176856260934951055491783839753347796296395186658683146551465459346604721465592117629181275209501009466051253501215130778791372992541304943828628236761551477351931884457812846508795062383266042447040685744406971001438122669048796556007982796550953954996825406109476692424037417823114617971434485357305325190310433011593869245245822253061289961533018158437144114457041371514938639162585800825081419033033729927914907515978649519040042903589123275186289313138222582905747854788139156419468019252560339837541570092721457441416699940706177311544078864090651388523892596799183048270386546670984540773744526318435472796999108676908787663784211838026484262338057114999013508643007069142709638183364070403068067616266762453540861459635039513290987512357153347385106574124192440661580750030580632059667028924727908156880657330896066638808817854420570976080902709709874624314708507515181380731999921113334294088457639922573094153204589219982786064766850469369681118350071601298379657802133700422907679059494983558805447242472692740521885970150177431784794399852282403996461347533874968223752397482167635495340010210271658179040726180083019038177454864395297524944944733733019427863962014718762726450775502570015146200929502690179644248049738520117771333590050274085303856876204283794042457943255756161510280031328936773466215474833342744896817455663202197695294558577832501159038122841734713136062179145738771485274870407103061131715649787000770329879807854861198708129175872964475727130227216526900626772726350971354029379446304998522835618941192282435099603950578626605051635055847912475055633961669786214290621885729429905054813815513019207504044530397832617703367918389578996094259229694832651379604248636623498293060901227402938082849160979721071864254395950049562021828125074541127846806289085570410597680988751772407764541312061003336035752516592107421287555031137056993452768764194494306927388317005790455824281513124335768235942718559179055207824892709109258656241601811830427509312338987795216589723076469349199363337846310229290637442710087655598944103414590708479739497789020660647220601887821459354532014062045450706378234547539580783237142118655716446663053559317909874453275964815492090423010312838102157201586536707974271560753433616379001796350363750156815262843941725189303409331830563858114105175898518623283200503762480025248753914706652249055342173534084012001808520008990355521927086601267505391179971879524449313072075097685518947617078997686333439640723318209642878322821605126292291327473276630746961203241823527215170763347208028738532700206611782224246353879013942857217105566214354594640827352339533157601588477727538617343500943072955661411425756306780152782216168762753579951279578316481562324402492351927542141722223215226298319525282403951157246398533404247773482038550464298356806882687153544495895790286654620666979380855359479920011564229996283210591435050975002348501418239412090708314331599646195357693380693066287778979632526279986876896266360187638986954642444355368681424156522657755356926977406930456531312634699372254481223623209127671488626060832732137643019323282386465522098728806025436412172315908073514189481480875690042005151717999785133367921771871294473701664220396339813962311375124866809816028779130616253279721499211559274537051491202279714112000632145267128352594188944449959891632588401464091759059175626412772572504024079342619232003518066014581306031438800219138484985806821375747959654659305701411087459082657565495057801456267892068026402307276692229879552152445965957842851424796142737230178126719987243013250521723405702667090512868290624717917416716183223001292322731107954576680008422383143344186895096475961019381777842656726654134774719901545609236650381193628729956262514608132555180538906267333017619783000696105845471733082779415490845045912417784938732102212622660714876076253006966947756412846653008902947802725114500218953093072558523288552599325548452717036686715508561940537021373949177937376485871132758683748553193719055256804536247912172309913101415935550189083410287010928546207605890226354217914976134874554563507339508724681763491442700700343735380014474365058989349284955786444843399072248690948540435719484214714388547959540906733954261693084049832192348983379114774831172540680929444879770857989374639332031737405121296585804715960083225681679094667423061753210398463895093242801899518570489627655116265971220081457556498810180935671263167249885914798072264687389680938947171981316268795838750656695498119673799394208569294365801060188377960849550315942770842296449054569293765048116444537047265352794963604942234212076358365122474543165152678825619104935302576743827252484796599984651633233918633297024478622830977372111228425938528054253861310406349014763228722640258655482356315477839221711287601998005887265930676450882196870104261657877354480708912417726165646815509772029741660786520393612488298727294385678758279235053039474522786847596595075576477794883498906619208982392669709155179056154831409583004583096657309116753518315376992331768839693399296828648909776041834273405593744711927555384260498191765277365599832488879299063188906861734408191930953611962810249494099622277616420970377558998660837180777207532374684059012486358235881263637735067062121817316692011729737301211309460736971168801996937504269714840928564841518098295978183087441660674650969328911884824444800754645186311084580641336921438254652431233024482941400482271977699531920961403385150593504463794905734407256981474333386603196669107487079146673180285903359861505719747295282063976774603637640279944962112327032672039105956845540277588983255322416226690160312986573434610631339991070961032564441634936913540868854192133973991309187772354053649784493184316605891820492415227087808232666430100862422915670540897175417883917271249446035789327114336895995339745099135080467251349361087720176098905423721278898125342096908631274068738103336563109415566050335255010732710934446753435076441793675395824846889560534843137713808182999995047217449614711742690043625495267300495838209519444405167962982480477261374119312534377582108075200521274336118773361280945466005277990005622349103036790602426398084370042528418452537241819119401849465885844409079495705612025646547225450295265817521944595951085562438828225439645814102919735468676551101067173236309618857376684423720566952319689530304231870843712575310018414026676363902906298687209902066978797566669611576840867332160221504591638126132454491522997112021854545054916303458279010425664855360454295384979981753630030910270739254500343205517103373030152255317977407621632085333568694023029558125307689634586008024968391630556624539865280536626066019622957323325767504360117969833041296961021081407495031017895282797539022969248711930000623697915070264535546113851642552473934233983271627611171708577192112675147801933088544552593115525940824373396319826714748880201900837145379561253159105603663778067955525900116069349485629722809371627375202163113967016912269286081206587964455732615734722564876453738872085463996271537980503061201990596829581821471837911174252593382544479462453892638033892769948358715326093501340307226314076604874870666145027035641322869904558547388723473492526438929987297414137115201056825760715387616949943022882933824905494369200691060337473522151259880663301977476615260299424137729889398632180591567574988453507566770709883949818465370109280998928606331346987177004297011912135266104609989117117031750568448340177128806466568065972581902802200144994962125100621911900205666317576484271217133180907580343329569889111515122629938981126305300431384998598183516680964939479809505294159234681525597565387586918878222441532423971872277356412996198046298220601912005049311178284281708954787831877873569542954728978985998478235496607630571758527136590454593658483468177834997493406567125024795408192741146464378206046967079872090281136593456944720509734592486839246753111042118679035363294404795034269373741279575758161624783819223305691926217709874519879637312212558315786185952291693603086384887903827796097333829312696748207490129859827950094239515468678992599271278799114492693369371536874823219198343743271781438232304175451415267463556240143482066516434691587292703023655417116421994487057093409281064558344560471178380345036708501871383319730512751236309063645819232170788474538449290476066450083530082113897041703567467076663515471025880670603069426176671200347448748850204694613928388461862285739751971537832733833445769371882874525910527392420516909154210244535117300534483426886396196199782931043490745239721914319685698519208642268422486906144268167305933949221851286597746115337146859862140638683226056498773346175498848831191792500836735001697327809499466529929044767732240678151125103140311085846697117385916538946439087725150237264223268417420450477965144521850262981532477080979467167064779812961372594801770753847103117243275375693085522421120720593925751374480424569079782344201841395231396003469643197275154036951823208029918786911811036628801693117251285134635089490868913881111609535027052990369864538923669910203473904578092735402448650376001134612737966937533659293733698310467620670744403069836777431186732758527457353731855618825505513110607804423119164588260250659267199625415230756024862488712700730375836360680034356730055268043491615189014168023043851570578669704530696699611970113241463284829423728472318334682278880870709529049278585588245388118817463325582520312859364118866235656452484375978565845607021435513813536845066597165476319309227949583621266796369362757306464051875280974860106423173553956402163178621653302485405705483899259749687952041048447205099072768595883743072857022594667131021064492515450665384496456804123939379533796398948783824382509949717762052521895634478527248080543122734068379872275519687003948863039392561519607399311566007063240231314948698133917669868544339213728162670304844107668110617466750713426519227560297933137915562344422314866610179342280832127604089278183366549158146658429337202626056943722101953244407037129945267019473353946794460155694260865958080744936119970839817957419251182883543747171896345040470784606841324890929620050640965040560843008180328971354347165436912646571653132259108746719870673291712052785711125013701315071349225959598287900637970459768372872670622923181667316927082971352971966428695076640573690578685378801057118332914225335120758670469679822947924405412717054055742311553721118304626016446419148886851043477368249126895253869747116821915992406176253869332932715768322521719447723664537984360787432637044069187112732926021247746018763418195344294391273092396934164649527280491080539327053930522458794826067061850891243991631744951285971882281524928489724295191943671294091666330607616210618190321430405415403819975620217842164326775566751035961117197385265428584337426019379687234134447876640412534168331350295444464700958426914824280315609895758340542017702432799283679435685290877536822312786383922536785340498951947491173213097363581164178897988609011614960917745521221228667530378677573781738615383978721776718203989364476838501494608371815784983212081872566390406676273580010647594696586702380894316849857893730949683267861847674568955113288138001830621347006954706517675548433647325434427624893666676681674805587822024569743618258025054297675380800501978004200082563561164585975436430159603309783447982314448494681507300149030368621119029256395280112204121237347762972506416426677255501160464217389789705837037417007953583926292581937359260489655285153291461998957423798098589757977827465651102060918383792920152744804361281646010129141003134590204919641940435116545071835783264512715736439676998411952706510151827621997454933007784686130456455221105626228515994358379788276256703359700375640683503868647012651817845829986693534745043594833258319833715067394256740357141055501500504916694372294875936367669122410401016708919394240133643384833740234982206525538593750939731824147211219762079373358875856859733415799605957847952809446484753786372545842882433553967223985500108734170775807550024978225515983728774481425550378700812149606342982562837306845047371455343397797678862709109127256536966010467032447579325840648739637971042439546513060481896234365691089764432780120578861540081926182263500928074829647424750490886160535381600896297684922171053351127218291331570013330682996223967772800526755327141924570759749509678391075331523232124180478339688508853594396875632013574951130088485045448655351191362869066124532143620209761279410816615522706225461549818143292694200845896464365952694331247169759871381133548608514440164967197358327633598308662780964735888236070820176437519834768117948359079129613275778319513929386658080090283356502338484291371498217590953011596034736802058365024084597645024345713798390136452498628780092405955890424260689541295242619479941696093287861410831953196425739111199315930709261389261379593060994785735641594322550507185295109170943063295741457340591934788478416008706795516798095654467577134113378260677125916300832559300112665492953369570279384097571933498935054949853120453991284683619050961526869268886892383196031660797219369665899772273878330872934823419058259509801234786118924411572426101476109232776908933591141588304744944150917784962311419965779165698733490643105581099905740219604058265589623873990483294965702803913562050646159794292920659915368847878767044043325482871544744447854875833098176877921741147739516076773287415471120741339501596903552752875260881932355651312239884193344170154329349501389256189610852311024072220197057740153353897056121371451851505556318766087548570548311142621050509628759937816343585660731294804455250488028257811053491245790191461356915502475018240895379782549878866521675749555501429765384487188585583077076811739001977948862559300514441861747622799343661816894827601824382550257595980387522358438200289377662594953948623151506856763204121104107143142075195828062205779533727922162392055412552299333651056556024850659829992833577085948973171453531739484850158235559350423669073195745051034842929861342047742142646894124321464547751602645288207003859826271296323445442266168670726594487934639599927263007116830430648447983541191393209913955883075405048586797323084251054971230368432688372643586379578375445665023339464049375529767025666123449835596966102552654234216236370345833969948329723589630318498384655266536816869777941564751102101722403099841602581300811503801695638886157791851166878960086007414480929433544787237227882926823659771083470486909200457911647031823171876714394012874334863646970713383236324591244479682572638035825702292751093064345909200685181271784476205566032363318590705249284722903083976916603849955546751682772964457409982233141339477089548079957880760132006866931878782105115531286191338909080004422054816822072503800323790632159288084755822264572562011130820412453006837935653935693322210967646316407252866266143702854068853525410216044935196503727657745400749540862765021039711131669555645582627610211454528320435776896542337581815529490665897757503030661478559928065700473974828133446970146925405409212272138911224678827705754063361606948700088055063491906410277292642608503910567951010085765364618625839637569295590015617985995394044545111984141286068976217131218308645178032563879683133084799729015766682603145919966430865353585214359372012809546934243199133358242024929853383601531975109193420854148301368331623182761671108226860153079182513793714711782184586848874085220469422433460745501557381293205522918195300723965823760908699998089216265705552190202242478323531111769617146815289183779672614871735532612874148311579866715257325942635728652954931772233125360336241028399831748843028546577419453323287172851555240160413181196980702789848612245799783062766186994705558477243637284668701394290259736729528735786971661621335500048889335052415278276668470650231967718055183796624124496952364489729467869446164035323399103955154760195412310744852733212206600063716827713506988776203365259907941005568108885950895415227795692352983137809069134049062914866505639378391078314400727242627657907829048836958495125933961418694258588023311412490449775171797384539304763986549862472629874267590240378200697141842926772092476133689927310076238846040300318026911368307842103307682497054781111962027299040139024382495489515539263579301734821985009744615037098547655598536326010010396734478925679280552839281507413253469619386917816929193658118787357061439684193735136149286354325574630406321280349192169623484239097592765121244493618023044794325210818642800216820539526192981021412843977613624720966273348371057005036424124297600299891335324159670136299739063101940544353515069006599242067281119383511130882326725572443954860072550894101232810740676636878805864345069723106090570542697207741846686328197213958864665528427866345404339069798206346752944610757035616112706795115000821866118515858748682399312392432021240589148503702218818725775937553251622619936481605334321895239935989151602674760894733373463695384596258340933360522110495286298675766939951782198510404997123914668080900808156689229347293394675672547640220259867730690151902778186868077989201072386767916178011928955896505277889845925602741643972779167391902591270487091967169866363317710846024790241532960795250890597736909233504567447607303624495537625927323092414503570521100239093016119934911887312643212595069685712587602595379418292860141628557408041250825271216414064826420667621414209627276064887325563798697267133083398310149063913036880480572816444414423172140972313328430597815023873532058883272273287568672682850874618817693165656610070879724825913258868008728351406573785683101779643413023521525682816293233813861528931153596879983313831856072304649651144032834586869455738286888849432072910150330847699183654110053436802974959276677623534314562273725928384842718155837420720987502489845339144848283964084617372465735796764281456136337731136641843116329989471889299473603826488100405308015504907110071802905132899094531500600397330770395975625779958118272176293298192613557842086070108618107084433584141306410521902420705003297017187591107269998461014183699582037812550256425419377246924764490511912394696604506254016937517195383123541325122974022369594078879516347767901864909610164817874710328673950459850946306341013954758127018448807205844045656790158561722145792459526937950167635743865167726449281624541519953455580060137970863707859837017067899154314574413528212833381443400008248316410850486619429597809597616263353668286401013075384331412383364584688745101569056844238439902730004247360959514895460396182778884315943400593989864338272813528657812108823154982908179500220804038816393499340683466733831419065892029817385436000869654883203292020969875635003981326000464018493255337980587254619073501229559138525431488638896547548181051954312361205426493381576479464443520950541063782606416870681392009941319631568800143060750688846411889601599975836034247858806349154440332894152872424296514366863105974546949575834698218767662340191195113981069543486440582919445808187094117657125821085049000746078148633084161212679141991357522688985901990295505090892925605941508380814478731565803200007541048296135970317609306338651344101991209993551982057945101555090182322673678030252048970717675705842271298663767533941212361080588089385127761407708766638772135928876214727209041585209780554775385384452935930782569324262500934236181993978309566274602301305870073054153473469187324064281437966388018069148986431602854094679332029875022060341701848400899323180589111204088059875042310421321860603806795527566576711639938910454416497136217332851106271303744896066873586483224527297140435863204496626214852569645508293310273726772838161475041441021348857790059347284595654747695361789285154514485678291758842148297087432951430164795664006701978971563873635867505393263844202138212876941448219520127690238511631422698132745811259797799149969203926353086081178764597547451703419512157402190986488681552589644808808953801412169320786911705246481558212568961065402483384371475320868358514689964229131751858732615087548200897200355916258623182568002197709888216926205290305583760892778020436481794964593033186110886758650985154812873308919395703783776700863114657189617384165032810147353393273837189286232392734256626162565370145646137778468374413664049017384732575228128375771281570813346165712946077988143835911541158420846743877206178694828029777724699202215756007623958992067424457045417602355602774861837700685351640369519472315041632273867755855648809658978772522897320235677856066013961225867084378711509208856683964390417271748706803943538642623027560548401444580855794889750703057979188267701643799408449593593472836131271486593381603684144073651896376900648022010950262464451543159367355118728793346992154103730885217446479505077698559003029856165334029537046611100564728557985734259163154824410811910698533016142126027547198695114391912077769812117277231637986557677537182915451574031404181995847340283437453208335645080495997788171705306306123824150417205611575096696326425227121077260965419225161517765234469128505257269132558844722407142372766498019625000538678071619665542207471279444493232310771103839499550093062643219664574684049880890078273146213307093550531082574119378844805899683201902309295916142131772522110272524710222544709693931009814305833401538770248006212356019772417096629909775395761874748745521097230691277651237434029234852602882981130783957195031184074890806242790684636112301269731111410067571754848358644323025239925024154025510479620168725246058705946214463798395978454757430527134170938427404294114644112940431038280050697004986576960471863067172789346124277490124086644984260854056299033861901143843052891163006011808446092522276138277074008967494678390183880970540948853661200128355066976945977659220039301031171642340581205078451052823278322292567924274727493393233575152947519999308726717274914159525913657489481344448896915566346618294384965281005164070855803854498771510119235392238753243379099596211109015962204047062869115649476278904985859860595347023712157310516801206806239373614831270975646965834391217201149597348793998374182965593020707078115569421803514923454959367433611593693381595102078805674066476035053155596235765283734924699532460344484396730321067325126482072092767381053148160149838926575876923530743551277931502195911024165314541459742472978990965201966992756919462730856218579278391796182417274740710883316320510337435141488257628117823509940007287603381248812068661567897138067356141990245818901556390958929827687065856444242267447579607852497288645261999357717316566110188089789647728821506249467582844519978126705668376496499534853534252579351862270337553596032167503193303327802499161575925946875400889059274881106856608461760720760792870195099367819978592238687699262421365406379052056116827474637294432461767352803700142216791842237126878381548438363762785175982372346957288199748230693482200759416908255758557867379805247311278731602346959416289632665350797153560878357980192156786865663056373068694984366899488998861014199642487280414536172882980395041200460799242926354815615332126989002235895969288154721293262823438873312981152524945694629963749688155086470671453644949112437078141052933870374929811766660811542184783099380327530239034845933709730162002915397220094469648945940386576883943762687385655989716094621150221812571366023355486420447517097132422740114038941387225027912958705622502208358573208391430801042881644376995322701155898191756950980784521740783550352131691563039634648285324956108050616623356146596230778722039037196016372035753153736682825019082806210626707999772413970805378586627338242294340196160482901939362146779312160608525201906675330773704741362575189703916440788074815236148176304606266459307778561347373534314435576467792240968645770327609242973003947223833601082433470898646911877180674193162980173514764459634675534444481280896561021847184268295282387167242494098776996311237828887614500990304816497427338898646841372801642037861539794328796555868274931349370103212984912209698415504739184797745832763461285335020754002755238718600068672146776791215072907518721035291759082078218968832084728891711394212434585173687881374108983003392037352452078948991801649455897573224250964103990338299236274197598247797297464806329812682208138945917005388253400241061700938863812140148016655684419080036137599627060268879600563560910090705691458742688948981176906234461542153954233457669381999210303429404278085285863995950861225594407245515132412581225972988371870701132935881260880771296373999501814317683972329052219491254705466400562539224678572959941620045458613708216455414018360698512784173986607997689163705337697118368738625974945006538462534277336374998967507806179982932050513663260960720465254653516152976816108181536725810316727282724450209440128433065789505229143745352639031286385273771603067172732873645618376474966063028975239735375311706530778556447492144051105290528943098443791456935036472352228279401675101100028536860869810640617038590367636108911101200344182972603240446325463520844902708768981548992425145838589305594138875468693462803035506515419874748042439662612822097664411474551457797826970092648220217566028059825066764045181943726883218240729874291577895200162736054389326426962037124726938274630008906464911271377743993549805537243999710882203928182028228052441547376688354906957286865202179219393696004989257567179440172014904471573839920238807901899596389013424121908137016181651571082349497388513677287573602970430352194974101527018533237912409657433946887721127116941389768685388724327904413465941544330871381477924407199761742194436806324918004575061798624180659109730567419422464892522556272289364027224124402087039187541433652532363020167787933158228921154898859377069835671397525336963597134065192622705881247760586139024216957081005620184376843007372221596594485191568548126796329251980641751900334758920449536030820376600625641684621794231404552913938116544678245486930768078351547273394603739000352582225191793439145397158231352911572804303328275071099577236941174080370402728197977900767701668027114465938489221868690694099116198834553230362760880837447296372526604837180178112473488294384946564101762994242383337434547549887357953277048184976235275270243906160532547951391001427411081687923363759469300295981431202010255359957038059839172848381093268979411799387109231294349456529421547689014603040654527423387749626941943434694382211172372389574410101886300802510225800515619666494049664510766553340918737809361550809752833204815693454311406045344923834126233178538445285305648422638173948983073650633275723955739173749523221699386507016045433906169633480700768376507149035878175726391929479927541713117673744939767511372897142559628991415778453743384950858113746291687107387393790225844235632615867093954233678072413020410344128588617084957776740218735397086556147617882922780665777531347055567929271094550231286825039023631717338230266834202694877262287588220820591729227059264425133341896921396720387691291813735436094223984740176709384340115205091131180793344642193009776239278125333927232377591772868160983507395006347013413492740921379806766399236650275820725921527983784208723682814250590681120065671475983690876971614011068082534272309955572727138171301489869426922179043776207137132925071971448097891314722114411400990191775021288596842123217864798421717834033638532395487928295349605088702928082675769963615638703491199218741544536052296604261173616514190493647328059789464558149920230670588124791369993669047414500038065666625246031136128644601362823865081724439728767099280083799913179503404108988471056944618174353544832010796472040341298883189975818437272947544573332047591332639898333102065568419033252806204537013377609221732198230974000561407695266946463071324308975476156745715030169674013237805558213146943105183696663269130375328129624579701413193155551932555342651463160843112362429075977846177132133413631346876199426121997098838355272577344626801133332591757799716807127182244723047087823447339053035261625671572265112831285468748232307134178039488074088498207692992992108627741343637716191140844456377311111799834942265072828027736902828249849596942960095607951259963604168419456066481475669799402723002462212224390324166417269197256367825756681697877077804402271827774433783906365203989280378240650518484272080057187169978202446145096134368415397089489950699069306243709092403421720851982163858837887720040515684104774734339002326210541568216225012307487849443587111393252777420136624699834056425038764090177999070304683899748448487225529048556204067632635381741870377883163322859022484383845729699909703009939347837952565859499158190893486308792302439603232390542796157755963368962805679122829264390212450611202556983112063659757364413562219765236752478357675768362756384564320073597585358615295465094491408829264473901976959659734639068770420230633430611926428923405312223942700575500753395238253570414952758729779643727354622081341230778526303169482027658466402506422011065790261379627512288319418747689085388162019055324652734647008784402075330947637732280616883481482227991102731614475496944949053348405607118237495240560975587794996368333609889037424469960464457145599258735431574188042714471857084612718931693834067479097627117290306057943355591391616465055088103901229161516110490361530380613269004828268276348432759721620022723827171859491805733516862279078725879100435587493566288287214312156814422999561867132247596490054656154986841341040503189054685681184120510612905517270752885290961203990804108192942296537842613096185145270264196963058679445959900374453816455993190566196081402111251092344884718985072783008179631631973251482365722937408471068325530961843288283957128690265427865628336548393882292174457601312152432092723566627527769998741364724614622724660123325563164237792889973578264799495971571033670021084459899854747807914821287664093378298227598084810681861174746071109518389230621979245737868000329022580069112429186342423737092190078406112084929712289405553362957610227032346756248284416398437139980764858688032479690365496503441924101559152080579587702542033166771837658270397358603971474521137149777732783925580185598897783324812780485450285114689160902367767442023236942742853352214223549874596489865486934189594054017293292306829179517590038662565728594854338576731163460711296202232568702505128243821581326693905367973734431322401961488823725639733161823431924204578646004367548983044058311159883318978835213844751158186038858498366942633797800163455488319180590209849867526884639114304492767349499784467008908055247744054276429724270064919181232237006692933429103862925993898056737568080343186908854029263054233186151761263934841773378443108935230735266332649366003131080455348424502932888043700985919383072361394261505327025918555815730155381477883656872705623885046868739418616712759823160404657327094420611395912895409372696338408809145716910447210909030806012121713702989569015069454161042789747818381886199046735514553094865946755303525816753334018472670205468529809176550116441827602210073147491516113585991180336518495866925170206457541925683330488460082611262326754796037739338096044958578006628912630332260143215214647578098684399172447865756969151896350439349902525794520513553878831097285480037541320038655395943132345643702567269536994110319744839306184598826795757103763251121473666722675077598593238017280552030392499780266110167442902063156522779103929691819843275207778221379157724292249659619590595464986501837351263268801821063194685455826293816238904721322985752235877715235579090972973611290272672305817868299779578276776495553784855396157884787795760440610539050092553944982608715657719055681088784711654013391040615345078110744647024649000697999003522660205784568321845465986518323114048841192467289481749517863324700396031950965523863771704790096370582769092451819655887946990483932449715993554465946437186094579711570375293227059417043067191319433800232459757219778504636419652817694941297438246729656496018349093614785038290940055038604055662668194620781351005970820951668308813631515890790204512222894387828170952775572116443735443212902048454204476046954603079688064702706691895672911063159660505261100095238788804643519064529395700980526459831922778592713465377157827438672388090928491544801232845448106782318322630921574968082398936659174023207788848020710874125116847105132592810690097281133276316283130745434948650524484098291740633369291388454019035900311595543327718559287386564724113992224069599387837071443617804444205832948016056499000306633204865465084708118299396343343015612153167138252723893634628310249640820940489213305989919643264847511865588707225915994564102853582837098614130341200862492330479778021754729010299206150057222492826349387784405840700219677218959330779374618833256547308455943809138976258774506591830257712692895112430884138730583445994694181105554615491366131222969631353515892306832990274422906167750960744092753265741923183747133291990481568698681553523010378747943788035772532149290211724566031193108816425487580613238712880685729443320633263870116883698719692969297496222263426517784153913348921799275804901756587662689038464936266048459866411915422469382641470749071626043235049235089392328089652305735947808826122083427543140587748031258156463095574548958016058747281166527279462643945549151562243693537437308251712690702017398699513019478241002697401706461717069787944514683026964161812165761904443545849455314737224349075348470170097820419928600575756904440552765595390574461806143990052932850200669227901828389751042872372404792766861790013156584408253401159902934650430806574544004459364356203372566231789722731950080094757905974411661395243614635653722112298420986386225936208539079564012390363844737831073150993964307917899586215619114532874452003556389130919538233506035345651441330445113978082135126865668865875137809984218008859931853366200017084464153365064037597393325525738819735810285053085481482486757309289968761007829195410545916928659187103921631457903848106862648917610851214603172713541507476912755089452966336448932256529432627509983858107594176937947728263362037152610692992618348903951700924427694169402127750688793493150184027235120411185596574448621343856867074488914920323096062913902575383717050888171926206075669202559227781254333736048023787046336561304403914836872110423212213370430322747685812965560657210449943699307625626622942499499608004374133636744466999116866069212277389478652537169807283836092496685825074777777047942250702607365678183675763621278328451916373956160907617525452116190712809955105804011499965370812659533439583946088937248813192409361945774109236841048810740513329134893510630693829035604794279922087968189410893454206446174499490411891327156496798845959163846391016541468721213128613283394090163211843450068049071937688900521730804989286326375217768876729714124528936521199650564969926737383111723734385133013261909307047375644980020699705883712066221888833033052739142499634269504397206659583661434199045909715867191464619796584252511746437749875695174910777746287994872667904269851786129399157337481690450213072157315155512675062844212324181978229276594393158217838426421283141286877252211101105179526288483655640518728148963901050840142898869163175670860962607954723767155946696541473862872024732975787821105099598325725630129327090247786587817568898045225835182083181787076192853573322708763648025778232820784719877010307532059898425564805020537648131749005045970177317893935288180132127778667330079841791758805065927481378580042832232487424052287692171101503155480233746714214879634632095577640389218132770307186320800120365397468890133125218679944344989400254041276490149780147388201214276040022492897033269856122455699006095398090540425184598592982067140299213947341275699085331303495713452567776399806169824229008110487884991216332652643075131066004107811145389085565080777289914190414180982912308763503192783037333636219681668434770342589233184279938126706729216797014993427336944340432571364556572824807251210175785884585897253574340919481645691063770628147649257360682007879498598294270485384137387696827121514188549036709455404029074596838348492222629248753185904074147934003859263797352152063681246002949057042748830120164673506148265258032575530722708645246307841236556351340250276761079961119505593720739524490860175499785510647222860882829448735929024462634380631460750887310867256819391241656980696780000601167670921102380699060976727283672718730258972252733942197320202655904490157337814205026459763628626561834980408884437868484619888513456317061936000546321839409338602006942985584448305740183097709499256777301694091089829612593610289045690987780395038268441670093961172498440488788515414083534409805214675637405417364147152467242556574402299856572091925552628879139658338785529408832273359995975792975453333478934408906188945899682823961343316852141558723857239369462803823137729660555094723936099346874241484419047170017626864683014691048502705064045211170495482853290487324355661749766241862757987820051817471245643709059254291668236104488859508167739142502479621922300376702641910274952054626509897013490975677409774454922334569848767406877983831487564167549923228468555344480041629059119296138031641349163279094617287391411285342061967141848363225945091942637708786403709911179633988905570410976145055497596230776604348727517336252587449882098881519711731678114009603874351791847242807960665119680645313576677856108684730672347905834053503240127944464179597450525575450313281231901397646192086847576853213410764768529477254248370183550340316299346991102361492816680460271595446794706356679149110054905630381041630462994222305977951260665222567875151983930201318108519124377668079281512572864116439726003792786073983550298456710401076356970783209393146829832110637218397762195996649174584822504575220988734521864129053773176823192767058126068396249399412550348378849795038895575366741612366246649135919059258269913758104571476533386731906853746389266580044348165028864799626431777980350033057980774592372582007604780814308874774958380808008595247287566493793037437773787467172052582101592682752592261821015606732994396906212754472138200178171842884491687049105775164678128120435128714168452721812555951082704045000448063250310389427504724149342571662352466455294779769985815063305240314733563909369413798289959274135181213860132451805760118900401588309956551518877663754548114951744095236570812096027466060331094932099371997531068421069805258930926355524993694514845546607512152248078290455786564714450125749746297296455344605853985023569165802862221671424900928343189040355154956003064637404239683181394424443640655499656370377931324506070165530810932330854813710057768046360524474746593948096345042076404408725157635897908578532931294613956739952541804667029417550495258472192221248820951642843662682356812327561730585876690624432329909992908423844944999409791529903083854451440189371454764467800922937349678656099709082889651704622093166199717151244606271884394634383373811219371164259043828152031942307576092388600988333183040454766222063634211405426094027931357368205124338239456571202404607944923672473533461762488188695067253446790895707391517310236806021925495993205441181909483181511323988496200798105151399625662846042941229450253939113287862600845721515900836036789285408396061429778505392009498454073969226993670059500137248492355100583109002617838579623192444769340194219541189946021506462062847223225610387642324998094077902132055927754016291946150950108084655670541131665836345128961511184309090523026317519334883998261539421268021290109564656633736958481166698914135038624189509879332287466935412401548413044158884044359035390967138496054639616571084611430850885666698467516933753957967788746486585867320996771937571378030438944406524342818003104242683469093979470800783860524927455170454767123342457395813916651095499918336751641130530169350174838598281885608473055570749102763342676730928734909934556244455143285146110444647581055198304309329753307717584174727070679518101246768562150477098453623067686628389817104879286710168027072832197571010536042150827542682333843680318307733444319976258113793138399807754537868449558294743562495301617327735938704509448540507134375528234768481854920703780155748898457738759104834888813554007085279765229390704908437512747439490110246967405765342787548546453991417753041827197965253680103923878352836756456086680363807040778700314969801268925106037324215308979266222045655461547211009258531175827060563247858728394271229611002556064668458448452969152576064963573424247319767131852860578443873771084669878645089153905627346860214272188896177307827984846985083420740741891845401163208528641604923459168347029608604491511363303959353958591415995179137600787605814649926916440011103381804910311607606285532033707092059528917365717495568818190157153646721705488106692220539418071922557666298556630124568220468939546997444729274942799173694816925035215255869105929792024847629048609722888364892488618361952386645160383583595968802368621585154717377922414166941770112670336524629217920222071010674288153007101385477767079116003250515938524732536154250510658018684095126083370383629527947165319561566672345555393804177998086685471591297793090747414500681138166068483055010753371245784341243258581361947395511713397188988993758738614477416928001891210358155480910535177627363289439209673466511649363781751789096497677304833935951774150405472866698351682050199191772503175399571881902372769539219496554887380673984559695483208377526617402182493027876947475531729321953230064419407909632132440973341538881914327977869626621109757400689057372979889720259999952284386716097796916490190929454159965616849915837582013685134730648743582418004202935653686246259309023205968113321896683991896662194821379457428271385208229319712026655251594977990441208945987135341959442891209811335913504965743421351313464787459589729677990922663220458807429416907470213708106169978839903468493369359224719706435895477501706429328165405558994143344072993275529693818808686368137909785949913001987563023751146792167203289260181033477918207738879926453311331809734384239558658937740041529912888798233142181358744899229926046143813631026087220811069753976812552520007361937007223030036628608068801745409384625990531278664919232438167506161925897719113898700012666616403413307815197938624602604128017217934307525621428747074005464483032330097207252016122335595227333368851524871538113472293299844530629391831893960161570100394137941798691586003520551849245865628328273710869573611059813680928191861890019943112014570646157734399167282329617562480414995486435009559115055012460698846627669880008662406761302637274852971434555033776170557070569242579867339430642628448676045100546774383099552174863655814265569835868027024577822676931067971405301408420329974384491886751757793261392074383252414700103717190079453745089596742303219072422032781505709370667004837163639276633937065033113640707846708504602038025822076293311292175044367196427878334273917561900674020630701706997047110183529926006181452089767021244493464800730557027478948570240052741849380695531249969201267863084854281781581679069433424487288243132527499773287970061585514271790295197504957048664059164986066190005662215169256458470780706293757846197203129485387870341060186330264196358800562319882255774505477149093247214583989533337151784338850641586839773257461645703341444383816756628950075692162493271163822310022855530249031997217633401966855677878781564640581471590851376710148616041208577097020796092694256356814370922121698126276256253417922832034720888048595434416299088752777176618008503723032109634876187633936769476551333040077946413826584007297030341995439608821045516923643298439162130573237793418362701359843474233504299009804606269702057341302347676448402674074334681541746175916167210086767846923018364197073273172589348222565506443110392948009194877249157131387183061304104405411401457170854366823813167892024811952560420195914727359689768652131599350953053087776335899423157510239171321496210307844640752032285190320197247890278764485335649670059928681037648627701129388994501030931141951194813120786086171210427816029787686780105379840424268412723883688900838812281494685489158924889980373333065877141558236100203174906600842828697567328854111789317106147168695405850077644360563335683418489799504024787958107579182701069925685537527342850734793937028296480341397948697102446632858095620846516209478071777056259219925691090821183405121317090534063434822218719188427458101644008705214965548149804725719789416782963136352133440000770054183307271830828386923557609498513121257398441494501830935786273759638800821223897783993450058089925992539196567400109514403430854144791907157019450681414651065206833119848213530096658710105153726722924789392687801450681407830390476263849328191113817983540745097553885754145200909023002434861997178700144188838625283032091353039228828687237534618130520005015242869570409860022174613112151534419129011625605832151841967453881202942417584158732867811819727022406455735498070451591180406375050519587627871479737526694884734997197160386980815133585953210504370947064407951569619169159710603245744291718354347825163417389993537526455203882536094315280175557116138345188719710559279298812564112845446700910943045326403102619235814348957035213218389236878752038037073612139551756426809961967987895837534091758694152686757747462401348547208339299281576269249422121674075676549020068631031013916502895022425510340875599613756150037430640703056243132818541600557614432542557851813410409871076794218618119207408662742743889085665741010810739534619877234709530273920015884622281467781691965807759577980922379535298069540677440179598200841236860923551195867097504916969050280364359214485727029774556895959031067134182986903607571274723621120400242215135449755390712992914397690745475624866848701368856803292569987232179516717498201984361326670706825378416227092753328093399718931893941212570351780782378774819015715935199903077689686591106633487525356134479974938210412341705446583587090578967413881943242018476602404465931420551599024162488117263721828571874137714008098448802475012449897152459389857333266646570398509101043448100406119005532155524974447412389317100175932467172445662542165244371217192115370429798950901387023856263162459349827631821428605696383149462803422028674047838704027953797555975539977536968143966731938061145146527132985503278916180138237586408487219735128448782730641499977175594009109932132214912284770212386591743826239071529250801592784895393801924002261720404837968590408461855271816687550675919981399250224603610569325518027441855311299094266586222400791857746857013575188757495502863386924455690671958755618000276770597978350769712691572349075631821496689147997486171670548141850637730605872148433012613488578341722785469586163047014800290652226017006601476340931666891210005302366742602775548782257214782526795999047124754044252117926292548997732334788396948526630827203612570234910464596580829401936665155523918129716675349178913665598650368682724315154549986704494273693881828175399588295447645304551778634432370814589021961335599588315512694465523318282861025941869571778978966485819548809941822226156657238944123034482430528190945999225308432838009313972828490868208500907616584927651318224116600929977473598449259320567012770355770382274419667153414388528634555866731968624009531698406339074414190199570263476150751835023017761844438228343388365826770629460956540140404559216742983399106708660257920545556177324826661025090625238443497549108410805912916433591030131674650820088889384771499582741020723467763141567662166688545883657745233058646791427949367386703128474335504154588080809076502419103391839183388363230998795643412522493905057230676986412581827261526478383515569023430358752224496007145204069751515977038518057529115510243997760711973364517630520068350559027323186198798538662525862815770693707300478371259359170605712706103119511162260409956030967200062887808691371799589387036839522492826811772000737934614281411836971939535139956727435723665798123229447855119775272726427499157358705338824588425473422693181563193638005006331363184608407446343055842947628543087133055194178566788266779776228253954076354669038500872542737378569725237961383200044801075166268309340218861608717477190508266505066699478566307127467580047498893546738647798664121969911283227394706866824520968791682458316570555773775715027193869004785659385806327875923158796915016443432580881077054180477536171985673552944937967747373279697233587447916684156553906785403223805021114805418788788622204651070193112709782024046027376188965464421576302983386484004033891235656076119885458920557149844606926107201927828462147293373256741807822420556668637189938033703732066658277040335211323355409222371784687719133767087698898751378754320924378213901881877186505781159686206856145883041746840653746648845467876888935357273160813409586858133257569336490770508286382916706336898020359525522338285445281531939959484170100516190729657035921744329644737143875526853972033723511443987564764459711207997200766997984930495963155040445585892401954151155455919739167325906916362371067574947695925687513723267870131161480550045272582473336280241859425251847285191433202973586542479494599448388434471960071778947333804634264428393845233363860815956818269555410433432803363418392464884236864241881509622667372331463807030231506867751129650413917708307165464589530197202200371742343508665044495797651574762702896411514897381546984275069335898977247694076607324335642913950624289225873054036727733496965344421911205364518581218375484909986595928169430583697754392552647157194096396687948789818364700080170121337640500853083675518331903118701633188706006412161701132729635864983835381962701917643149433218051722796021380311407494052811780407986028433529824278308661657335957060992648845569501281212164335979089302916161322635742571260107495370370189699673258273271262132005156282269079432653319863274765326894259617405503196280555321655691562081144004417586994852081362289655729353004191788861148042774961059162424675163073941563037088048479918909066053076130576553791829236506164503884198875384793217278733227372770667524889363363717386021762459346045506076941004923488884871440019754870264324601051928759205057813862590326741811084377654615940478937606377052283709756410388320404731802694274420479093088139665939854118958839020338228428879453318575339093691400370804476235572713392887727739748258963248016815934032750865693641861581622207123971780354501844014731674889978341838368287981507407214549226899414140521886228161219723501727104134562072457784142643802508201682514199789294848441182774767228510128431364920591482394265620416012738565595338550892037201682651930399160548879212195060632791003983701563900687688756127801046703102711507199840878399022051621212684506006292572397518317817484116269066132089634472140307877548753033932551832040264372629861413774023775296053693063983866638055954723468599385342062774682665559373919370551170872118536155755942602511568432793791366665025871131407816295033049594233628263867072088719224810139221112804473688615312913763866286091114393424255745939831308121431864509757240622343900036496774165698354396256957535618656050450232911855949508796419275609237476480018180862021487753173818225036585309186673970491258817418369271446180434344791617141040607388361859840049706728848504679192263819602646466229300686481297367950952032751280264156359323400822021560056018238562832096326471618993436032280672474946962883528886558273620539317494616234082274604159104794165310555946848935656869389906389286604386148505836043514584221949850795447091001273763219989521043277113702498728969468451245130337252162497757508140709248986942787537108149262840347702305842198117354296456623592525287279914111633582969419794254050956210427059707509877844908695708063275647912864084759030844309581944031014242782479134655179959135356405762274555696995453726338769283382683236295275493698985518663574154982341863648836074214081127716013807378591640361598395477414304847370921065165214868881578006443972515827758353820189859629658231596946859025246978368414330102050081259077629569499982768197305429006139473056499295481997300699603683624592257656443679483969574897727298572783956258217005740458448535562035248167647021567767400217935914939281999937924539138628270791516868134819174119891487424753268783589948057935604029569834788022668299181902459483546911623771282597740471556576697691374918754623872854433203829705375580808617435929165708492070821207924493119372076982183334539076864439993641278448637773958079150109564266736568091623257467101155094082252036340443101682002385572558641448142247743793146216409469533713860694528603270415401407460611735042028637320461944852938582682165032923481832123949143854272562716802078300045828508313779817138862835579206184562287641545314186087821355872149561764126010886425377226927755979968921541689720476896725287459542929802794040662858680135734627975711154865258705265255511757326091440309246552728396845127270315555273597547042524678388997269683966322516514834289054797697880670611267552118332274174844522915608433184555482899520708763774969224674835604456507753188721535179253877402340782836516179671449574223594662153053676313695858338242486388607807497791128752909801490393822844715788354648785374741792328464037575503569596165513866736938272011494290367529952622750486803091881680058508585840676901516233090194166405863545279822025187101103898157038218363917313569443794678756434642721133943284128249401973321001819199024253420011618366478593628669314461563098935953254896768790289339728778875895782537837690869164971144760189529085187523167245526783461369455185865246477879757488812777450299315036513950085784700580675181906489907981701524303840845362240577956516305507834784505398737042693067516027366586839596461359621119642200821413348452676004117279050996692440103385001818712135873538939463811191400723717374545177649326103352266415670173025455498591686762635441322268221720355320919956565026261203025908517596772130357268832050157671594597098779255452944269082620075778952332517225869027319217818043292655201786269308425038178776696734428999951082179400247752488972810921298696260609730686188371852785900639207614584735155412832845936051719556536121974476680394471754458653241834750733900727440901302415582222000620004248640231843213640905986675035542627057036080885768654262707364446496515533142713897197950609794855581689361169243435001331748445255482358862133490566377167869890658262546822933109702208905376005523951363174149564302413194451897639715061877520345129684738126037434349251073166580522489000191333264102797182852532468874173395911258366300128350896052075449355994694480320727534539968609071121896179809297390215450118864970642162267968400501420985461286062777428186933301347462380781674984892524150340853114526918168724753513071958473101882986163408596786063667948278417336759603483684678168704215708565892617351697268308407644615567591965319498708062609016291681287801996007966608817406615844758772687611132202203153283484861759598256818847594623534051806695296608007053039921598349750629196197632132223047568662064687221815334895972544424455669463363633834401140766349128201914329077895815541609618653044466305983117730948534268506514834032989151971048723165572559712862543506378490550283140542548614859694759644747548175041658341696844772187337684531679577427295953479987844351076975991115503385865717587530322001578062228540332318673664759833928473353101796476687518825302277683582463340836761536189545969351775672194607303655450133156001809309457623378149575404353453022030801998364449160809218979842966106191788384805848986571755525593793535858477873459143419961934741415522519696852369048148000202113294997384804431390332587893080362850133822514474771334912757887431756477043563146768723250919032093965012898871694967001042473476117654005415581831619699751886017329126220596068956898810595430922491140372959274781259095190754651945168191000624380834081761994291984943678872958818294408073824097082382980582317216161822699999337098965259586613123564931786403690267897629379376380963324585800675293781417556353084237055226004137153513672822911565142788313652853426787943978119004978828742711478671284897360123962847251643305186091528528878797842136228588524895749603585203447810232507134404908041705812637202396865455866780447010015527153956452753029777543212455550868450036844421717248072694218463617908648056852037135461419507903460618728941447829739493605199386061851400016273115819131977311496214235011846795582002984945193780570989601264188663396681085209152719094950139222819542553938097926729026120630373661316822799268795342336277440803041077563166466061768078635395029887735557928997319505092483276130251476852681549253315689442818008574873819635338223770297149242548441013497220537307206920641931998845303747932385207600923622917433901029793173117996496677010716790079585852917688890522667494773820548683249067004740887804821159113173853589351505733350902506847221930046488880455373031391696771600617554497989651699739249936983098575264844494555920460353909925961726475645840788318105610248583073417226884875810040567455068958116665745889303778722149746638042379497726248732894505065349384763236992099275279733098603193635494876946854272968503336952206114503822069210432161636968984415679712727014689130647475821344330134789664968235057882834378310023713478928017722620167482615089982371560607867640140637965946977140385897215002912291850108140134908912957207180459100950347016687701941571029102850575472822766451541230784093291574568690341572847462035899689995306103722707300742837126765975202079632392219126304600416581866681317518632412584141381071901832232181117595366887302691290947158747317747964110605794639881503262501403893708954182784761110634813199585764677855054537662000209229206532103155017816544692396085668423766740596047224560546781422786673625455791721501933956832971527297331624228527574049809264418295770037054280500863721088346082754788465685196325158059282237525644184134057883712959427161015775693019053381930836807122048714456385297379424183086080738871936032329061402246608672997419034607693722412821856249133937801832238016418702444771278865981530815491626069342977957964426011406001672837208833347190450851073423175232998456545611702228135187504029830087016397586171001748787596635839879751229562918522690198909745167816328955202752306607139725330566937001460698272055463563393420840057282238760903942042043131140774187170420022369123936417441322880408917927527323910797051797110094724078103463031292947240423208535987454007843013227466066259319114869580552776655700750668591099065704822145252318400648199271412671656613433990863271523829936877470401018719119477908238971114250285054966814705817612098239874071358367298972330768978756775871890004916653107896743080325835757507606013384830358797029759203047829232568561164224366527543916266784929396110114939431011946948935848058817308915558832193077093718569978270379770969347976006287249156129182941598499727602321033957538715102784367442466299775522616798409380490632479907049335625705909201661038796327717197448025014392739849023954620968774294826885808805362437627805514210855842133937590531189362014547010908415674885575188216444165129329340006057126453495968271554341735050165102805571443646520500483300388098032287581217172020714650844469018131050355208375185747106772422508194908595967317608207068962979576759113748456095221974657282866150346221419719917898225797093827203267621359898986620717532002310871796816186649248250301389474387841928497955045500690380866110854217201681490728005875263047252645433681196406414431029878615468069644775858782171669759692478669458168972625241073922939165153465169317596479023898696011948264668911472799888224906939301433036508397896759199029205250928161284787817528338282017309478202647168966346453503661775346294728618116587859163160894887755297610985165604565259980492293218510247721706879251738533566684095290897629905837210387496085306118988853582430726285667870507964269078286932531415289978752356499638840161594435680725505411775473544999664350609921128845844050278429903569223530992207569327592792948197422535027164880496825072403750907628086311619081714013010359525615430698001732613359498004454498930890819942413304499930597244935446220627450200981514639919839963651479953723074201786625985553936139083852780241320799680791776206733416039049062574116724665842872068964578617293476609000330698697753639422971716871804568393695503806296826204005124085065645592481227494533305421047104657428570969630290869893774663824173109005585912773169624839973817801540903166655862737321643582178328722956114543213399112843527591818630659048940117107943160002248283865946957304561687119620604421795199984637672254321323661126986873568849010374625335792885649492937942105622280812226369007778755250407918610348703118776878178076698055223767775049396443228444705654497943002201990607817521278347268631524536273233001376424538865567510229728126020146841776861979440793137478229906496380822215277293842207996079191739289224669223732496453705506137130328590278515381412770991085093490857397550056123774715430150397910709038091877376150701503227529778229970841518427758990331049288661407460810498078614219039092788224331591820799425514218099758885210672693029911564122063226106096606988162262151710775338266475375382178862934255318652356402008466869164391474409537318663011930868563537687705849646371023015376015578894033958217964159746639213309211650678744304983299689602861322677297736281593511428399589863663323378854727100368378407040649382313184633289333234529206022999231492337110751166375815628162730682423446835635143415097316625465016063741333207705194471706029678636134129423428306948807325753840167524738775391116075929773619743671641893145798388487232876000226307751865713685471348296052312925819168987770789802349762153657492059495603659283263087342370386012912740143430167107430143545849165232250181591220745398635941134971241741938176895036804064700182807861143808062036523255935451838236839790962715217503264207526918770789232945358113081704209837263896540873848302248628422058090765170825033251963587330465157701671077478879868017368363940163989560678512886917581531803589147065565683237233064516577265587097017374770267809511100690659582653725121710968338631357054368786902296066733330883312110063250261903233603537878866175264502246747824717709415644405611070557826575591199149627177857416068236213605563824991795506544879060768444092221564104685923974223786695324931480754169201912275994768745598750389016151330762692455319401556890446717879526650044557942734689970616580466135754698791709417051264532634136569598179939007962947212490900360129567649138991934921475001563228425638341804789699498940203911552645853290413005636494792210887950122653508877792679514882592268878621683940430133638257672995866457469392056466400969427217154757053815348108632261150035148228422843876024128435918756841501402010394059826059037473017670390733336842994597898850406958455297076585923589010035958016929740990433239199144063110609723479312019249132764684627125966855543739058813549645454500400894621704739704988093596913351023526124750474580770259683613221154930315657687321301444184346193266742607979894129342840572362819625651368380931297868547295724671239160139378333267261709168301988698120629395645833972259281776560664218568277118838857076525432627925598256260504828058161079934409180829892660838078475956642609480433023799022088080675785673594386732276056952226627632066544574653209990893827300421700745087018618130304428242945309804087974920122131623624391541571441006119873627907685605994945782005052530969694062131911744811861389324367449347711949069096855206305298610082363869023791067419473228451387175457064503948974502215101140317259666597490493076871092567532602106205093325412124816126060513403530441146746946052328528401530837355523259799722309652813561743246259731863855257224403442735368418880374478961035025238887592585497855961897989006956989913749771383913109869804246805788135815156541263041660880518275713565131029207509050012668684879831114312339534038968412000164674398566566640970746716953215349877259681297892364605715426105184860976887239313942749199426356076935912986676481422420568399449176004902858688568513498635219839320288473803371755609650214698105454922788287520169914610619687598872681533538556577310050317749137310671612181450628623535128637492838360643278227155231800291083577027815126947278023202654693077568164155197580940299263314475589659329118086355904820134950959651220622588291225183606918379099856772041793987740831959148383731423502525853717084669622375845415402755432565862190078717344394460877877820983711453395654175801680988550356899152021134621558367876231409132034187632209301872499998344295590528362477692245069664150070596114651261954544556512588111207533115888869385849577364236728461273847728306236876790499799642430655877007749459613872145272255650533550126612844290241851666083361338787784175533753928423555653045477832858929988067335631125642052029966308178766241981831103123978989990603713354620325712034487696941114197941122329805230173498200207423444004503467382004182147277163549410866187399677680593569662610421240843210456298715766821180021497925348272285720622454274962604434497274337358349817031349494798106439234489960778085597492670612083778756731059686035396780623342202758983039410152107345143979780999775670547428663407179278110584990283081886641722605804212757742378806925182864664871120141644902201690552790197585765108554253821791653412409230065946549562999664149789662256070047341779473729514323542202516679193325577581196104898065836505756256319690459457891224961770626199201992797604147656878652607255513815336245667156864018665027115133957824567379339851799145373005318878694120389511200554741540232108886753943270921811104467747298640590591443215689631133882199183461259437235073554355456005640233077481653865147711321816248488738826379067461815015905558059408638166950838966195909499414697503687829404381576717949275123669455697835731140105315696265202097230513997270113473258924644379027042705610530071640320309673481152519697825236272089744317139986881932662114821750725951433859640252540313454971657331933642974847266072579330900459929598180358420104075304083249959207042857724930865001841884521352922899073285360692399583183573812854532885292018288997325632560000256329415524998992174028306996065689344523340831895274657642165706487839942731433304413584631351748520019899620549075403083560498877295371418563814857274573150090649432619495509420270158708821001124101191076171596448712266074161460716007600986493438675990575942493331996311392573565335041694248500222953136983839268465751800673563661289534897892893381903049026830627228470207982829390006387242563541719064695947409004299412416333268484813018042951246787949387695856461379125038522837231968846523752999781076074405211842808587150148679740339294570554741534735986504269362067910550464761409900117033652137826710668318972986447318219923852702945372977904025882407205337138345055402633818005529856770229520711131284730796499413558189589741416631468626882088205071258567209728757817597798416712446817696089515812017806339400731668653969232653732107087207104927552127409731171475104995394914739098872399787502045067963135414717750981536373125588128506546380789543734887340822675499118835966409608486737060851859674325044836969682225181139249615912052022423065207804939611519056497584770320231138447704758474053282989564185606729872292439484329378906447924591809664378923569237106297063938739545550754593856366011161113393305477296216626254345855411792657469026162193941366438602914968505100711478414711544791388201962901319310715933827751094325487405230362933633121050221850209746550384178184683696785905028827672040171382008162960392227434684010562223094248846345449472582821399809001051798076100602147047646781582214236130170793153525083331295813756158919726628064662330482150410664104863744820418260315465429063217700640797273008021919943469989789102968876858851125084402445614441111073774988317352989339442661509545834243505921028816309441277038954059701442379797397979023400288571464626127344059601911100816960405067474871469661199186428598559054114301358349984886013500960659881926062542693817849256801104161874618032155846673719857082545649561115976640138932741929428929297118454984319046350435464540528009456222391257711780207758871696704182995710709825197783696231246588728670171318395838426938328949370193497784756683831964477270614072895464599958557552256029779776848351190444732152799792756972537258789681586753632187298781067629608640026924070209695602154613200703493118793303299436264233411509047016487114302386908437889331900482447589021324731187206214468306515561432766638126352967992427341675244273833311595096617762985457010998986253760678656903282102228779032956457056890680351067590567278363050246200457197333973518207584077973879615584151707444720869170644562089156615655383914826000693669911762631662223285194489439754743366127558493560324256317925716201562547492776670630794968923706177085014712433837296285838251697689743912058617102004989418287512332037294770340194987583222446300388883156358935082995151618096841631130046640022531894801213750835543261803654830837415946092018262380954427576250190544288351016916715367743978139254338295949747798321508300928200773189294567184195170875738278840248807225049092175230349115637929001498964389036311279241394582155974671577459559360072878985663776125166131682020930408239237918054221391411218827077881445993860283811204574552994470014436635638333544127176137542866844163627109204635599486287556178536644281104697281121576195049275826030711650339481304996086219599567036865022567043592802783335848389334728594186721321687751415317076895194162047721725137859218389147296574514261746781163155624099586839540573511267794360670312942470183140888564715440834215975569388637852251569059575561018787916160366510283006511259742682167849990556954780553256606719614403905236894819175402902797235429534498470529475834372574616263631728528131752423682273217135356459014214612207852351466059362886531923794103504874229810423711243012132069457817688029690164120426568963669449309476656977574596413641606843445746453041801122075503854860029790994541445190993307870940204478227926094923726992926496582001770928037768025523906618937096681902409269790085364892999269558513008439691667498809962971037610774681145475221165820841129789153577059825509822302768911354001950929070592592663167197313221374672539912590559525763767001113573112521003240787146163838807817095847115683639936630553223551655116732353895564854602064457932945093144529110196194317873495396520506271934611286031532572898483219101849056515106001311214295775809990779296944327009102530377768025089732932568960179324854522849398168560685999268631722297531407334934198555924679705665834787616978399444724320496564260014098884022302672563812389258245392508291689340713190121271076404692731455278775475064200544062207311225288512988157904022678681497119698239823669584520933008501689151045425054542852922868503794951506524856530832858028702145792523024109186311593003672312088897808252154590116553399968412125064360636892876137525818893278400094836279561648554513802344455796106879002485905502074062547453218423971423108209342896363164785914138844633425836801389002337260019915646575394930715902626382991257122616093286205125373125032399644104604232173718825410545380610469930325687366863913885828593859950926938080598656092739665574537340600780714380516123280962141393795744223237467040707204197614994523815057342533383100952002990334982215453725178751778991788388984824801989141309139565627140566246162761222674374142274668122855529526849622333284325429381264496953914292701054827582152651631697204452000337240997653173663082472871981873887500314322631073059372399558951645814496544377445418973622887445088598338092308616043852716619726661625552877503806484918559532021825387039248712244960789436519996088392416267496325645118689506315586124354754237696430886822210130520780429758511417917815773216722897800164012882304015268428732509341701116918901688513949130095994169085157806728735888711643504102312683430006463804376061760548253868523390399256044542266307466303696688972683312181032441512693947159743412910794475414270136748068997604260893102592468152661384033566445704802078341840967412615449607478486710943037372783186824695958989088813055761718855647540554511217427585216642726646658964435235090859012997368760942459030660823747360613414418548222258645573438322242626307823571870622175559272684609016305275655697810979086646873390827605696706553964155172639446760381240958320187668159271179114367405748220658771339578458371737633139547497325861713956115407671268444841656091710359945018424186962638290134314554730378146443090339239403278066558771241234956765272751060778110466686349943971824118859175495822906278564884594689900717807411700481080028211213810992530445768294576675799659823940484872249918208802324207016187451733869073362784071483633337782522276004737108704939862406156553940131382680536636390298726560290599272880058836252333867637139373990986833889066350082874548437571595513321792460812764191178284464525959562054915902779905696387069044011415272807285361442814654749702386584778320172710738086871294519828417660805056458346601825770504785163359100482980555065194779141733789778592883643377762854688074549804766495227294312833166455219139107299152330189677415605515709902649735704636535915543436622820589526603330526172131972595284937685299905150460494979470788923395455566428777158945808940234219794309990768841645629333529216559162926442554071814702038189549532642959605231455255165018940303921183648030482782922853474167553247342757053966962472761306848757907443414952149577989062148842674122069909124149405334536371482603118712074619921118758933135299499470080878912353694249949936121202050697267995127266802564660449161905550119385912303810812935220051962851658017020836158604208916518124919593744357151071874312341366596989544837910081606477893525765021448242778454997062267947944727278815986889133732215134321133378494262036892911890374123951365742470368288825159623199633224026539090724021464648068817498786563410634712750726964279707455432111620277879859145175615110918764441818898851623232037884791207370253486494875510100453243103876178006142059451663116162349663204343753084642226919171689108218034740977399705497317254091598031032962535889196455653667216891628481488703326216200914891365597310021366198511383721819059419905968262190687164037053557909661311775146343230560273501212844586543026963291925118498844357093670131197359105029744921953752263405052634425794730552316480747965407725522506258467246135839225150216698527617301441146501108852554845400733188215530157122824675217897655606702397909546021109889095727109287362711040581398643303884767521246365868584090185885987285493316977723119010557256191278593794016467566562456088380027718474767681453443617056623270914739096411806350360845220832114801759767554584575212007236143476135866475783180710868019340762242074763106777282836999974076746236509831457754789108408671220598806752112592308531270033867823194625465636524062727458115278068059846942306676527536435518980815298997461410275908150804463035712869618932625409665102062215111769197578005236501200992668212840142719434887263992626688916755056571735369982023609320018034985077125637244212305679302598564313660878494636387880822752472334312161908953822468482436908156522274837416797227784019742097545621560542060303739457532714400908556285537326016801152890594743845990474964226086430498004110847625840929548535897264249917617819650374427932047168244520097753908269648241824075986630227212405901200620655098661071153518289872726708193678928793030631201141295129216508652860651758608128732024509564825652526334215888778017888170293038134331040907580382404317383770123996901626398434501817190385144127994731187205869769103453522473958801484469852758410290783143408739870617310117054273112923336367317015549390374131884166851631912808649544886931573946393413417708529888342486501347578927699091449568501676593508014224275107281454999917131257638557249970590892398592465998525240000675540670652745857950283283094437079080425721553971788678910769148900444929948360142238131268362387631564615762959952089759439992124232143158912455961561738642990796411882432853258514072798544393004944640111224591137603571089931581172329842448335405033031994923531643191437897076280000131887120213530666713353322931737070223445336287184369675402616124433968574165586502398475291978862669497247602294210884138254328186704022815569419481173969977823423564230045282900563852428195970838507938271895673897704856519888497226502485887993417645018265760972696016827836826589395164971932081211655557038668902215021545231324661016577925968670097837464563711822802411709334734344500707402944385754051764688316470782561390026010757304681352576127746247179586989416446118813278890521215218539952539257570341509731444021774427993889317217750809048903046166397439449780220130852305218424293260430983951035086382674816924576606338096084767324943196619891735566099946779135360303807666612107692971115640318295453595651469345993611338658242247184033304900329287863483721190527169989059265649131081306315915356839547525694094741016869800303108490727317958832544490194916439222532421280530849037736654441871496066939852938747933553660617335741402808049753527023328213665192651896590673722297431998682989179655850424449884596929328948558938428281456925458498807953840668047804071962641326333123607245193758145650594408173901856713113648746223674742072447922556073063323298936516156780476624026589004079100126603903067818176975330244253591148128694292755461708382831599198480760087771109754223760807037504654705362264872411088156922452847598043899555227559641506972279335560379442497483911614464458761160994923661704004281152335904196583473338820614104080558049565322272434215200428708371767300766683940351542600586375418771163972707400924162221404401557366397408044823781342352388230990234820085043718026092947020599423469920044946486270130261827845107884533161088463865015829422157030059426928970882928862016602998601975291012233863648297570805879647654343233729582551791098060147986059419990399429109462299391925607532687428913749896576299172245339699437778045115702554035868314450800799565246500639774981750399853328608091374496684652809269181103807537712591728919888103107287864727693950689615286057068920059477441243216612042529416414404048240597157301463661134801998634327326301063466126873436142865050094134113372107255558856692307121461523574505645881872769432947368257558365852236026414466891121780860003603364549235406693005340337603171375996114556056011400978545681087779433161989275345177557097269386267730225015931104060456250483153097845752038606173243519523145499475368358173816598143515181634309307593838507820787768280844684891373601549418600856120668473600947497111032449761950626949698396381955620167910848804208242933777992673795032833508074052212592011269423828616642990665322813239333801333628787420047683669363891730356625875344335802989929828877062781582893898844371569076755706800041397467116802869041354524481300986559399709145841043497776467661504582407792496928216321413264498323909837916965937381008794778806432837332355562914195316452048155303634737229369198308775442344257136530058026950409515297565084418028306060821806043608904579173315335495834962518882747488363530634093174415440812077725777902159045613544173982180890991637067454247373202451319617195906765009515963059598316091320439845675674837386553261508987006681600426734505325376544450697939138439947542217418973200174783506298811713227803876495482864482896040648947991294797898824208276948115900530678233006506387799257009171135812693031877657208131753294215994346497513867389544340356520063137374722288709754111746210715606655370279253336193884864195174559223253752481420589156463306509884026211090540068070885551112922124100271846999021878601323108071719104624262801322784506243727752372008951264281718487361029142608328481979418002541664107209030893556590044346545736377480784988374346859063077133067824549730223156666782597260511651395858743018421869410080109473760741403388808386292089882060590777231005546315821905793341695147319359948732036704525099493165156875092270307883064842974621940891737736919914598696246331533244620819425404084553802721609243520292311135564153459109620478905272493779213613872928605664588358784862438045213948374902839360640546354252668123799960028167434495337889215898272827238289435084856498505039964886281664019340188190939046213581800175586972072255582551836232155113078670363361501197508253817853995808709438328020249191443378835152606619930529361312803943028639229041807197084749098702723663982328975951076260741745692750879420067950039451915276467827768191254463300350442536156753059723314813279847331639488479490392416936958441983156253244065452777344782993432100047167630668671683210875732151993375068602168882568106759023740597224191306459601671490057298847116681492919693497455939485939799012621508397871018788046604848641200363646737798333343448464096410913116444564969660532225464357573242888824827100082839013433205192620507505793461609988055253549478347573921814722094584308980450565202725056052617214842052113792535066210730459126480712663839226483600674233034986677100549680404802546417807055545285224003802484137739284865082888146816942518146986051545331492926276944774851817035898512144659495410467794447637945476551541800675180670849275977073064543218087507799542417734419278156950395668284156045000669398587270591407146697525975851226352289249192775182152308073427873669840313051406635408857852644248253040822185564292514198205508376660787824941819451456895771380736633554905901251443960583080067325882998548731203008680979236170006230319904871869444664717096890831364715097715224470860515604915945776219497881241686391768255953478067508635000932448124442000896196358136555242344781585014458414066269312965453187903719696348112462178870157425987176463610861333737195133258342560057514007466610604481611734981158415467032352324346908415731143034196383966352685239714089039802535185030361694685883155939385342463983689510494616826390764290515542050587637239735299147511395971069973470101492370325873326172075544334293772308511120559232687395694394705652965520862713492755793267006528332146591937703598562848340563876424216762814707200020388100362882876300472138500972119079147732933411843428100334423894291594172504425208637011675679651113784627231248250000288083552249893611711550867515505554248425052163300127062774684892276610586188222358187859420132933967779211480870427103564608265031285098267349497908847135093245944340541537313194126135903643599586641729083315402869263363889324830241993335338929656360782046856114769351948700938153099103423443587728650223051085644946574205520181238797874492446943016915096114392741654203604409900469170230351015085528212784935200721512460557914783630321385482625162187437855587524290556684634810444249717764994919825792166812926374822312623730037666198615944182911862888476851536127338347542290191871120485339851305317682478684007400510533537517957302277167715282353057423412207561587693799562016297355680341399992355202243930109261606595695036604003996815251076774466782164758169300215531924608713238725784543136059152463785480081451461424196380449836242454073261810343095975872752970184114775996054702103351386078438113435692476582570089064920763305869116173721683351475167099620705209802810447227460730218876847009215127082031871177250004982449901066302041826791718274301099663752689500764117679569526750795266584687263842403956914830272883191588208012664381910533456910930137831565805056630773570287752673259850426865246073705876431300985204534743277319651014714238039032658410495949829607990233796018654318693632145366052464460212861102962125497279042113356206975331661446613944618345329748668454420210083418668396123156611868216909801330229070870857544669350373163323589016550614009193821469376242050920318716655431840536115697499019993101412921848888943117778122101221931283518285127613439166362610013078132729916236842675969078494859608196680210872040385498205453853720289420269529496043109436605088136931913773669667046913762474614448584429231356910314092753210424052050797219518034139209933740702257966787897333863367187404226136658399173016167072433444225562339766792016652233048577315054999889952992084767266513661321019115005451920355522653358689036968142572228982073473234160923829004165603030193438998995065326120712890778671037613966252384385542093632995994339225266233353423213407381691089518951596261749745230686966563691790937353691727410701002267037737578231663150088440851980257017204569350753076980055406334713838331230115659531308601363558585400392723754098328139715905713623103335012608430602394067815713845724990199952736429577796410231313009847609869430016992983672179356371051450618492824419776238586248786681471136913539256387121306847116432481287714869326644823526150107759561086462724805840451332870669322404933798897466722976389660231375136699252419201080101574941643210770638064064333266972087799438088035211260384819382894353647495720576002675271281932354087037261400732041080726249886307318934765129198265930623314055999566441038687937203956918631282376223184476340513748555737745424783097472760771133179128236693240953684053728700871518110916548778763147763793354296774403955507809800628095151032338724131914185307440857140365016259938300656603359072016619625258109490156429105156400910350535109796263822158264812351251490041514866733984353777278371824657066395071061651322316369957880704846536142234883561521793290145992895068987447530262690119172067040073819292394683537540722436579769327006233075863459261071311103764611086589523153193525160063416632895799083383868866543900233979789929056930999646692057601546813076248716290419980474661021137177060555521668547985995373961008797473445302718983825881349306435626704355897140560388283431224607297752776804205474368421112036571778054967662704449144861468830757118900883252140437363469220771180015517876982149136968580261652131725098765351496074411128423567705021405458819226548005409087068313693644540928384770863963749198261929474558534043432769029652494987576751142429025534222331669921663201253469235451974652082183307006473535250241242426865779197141357785359362137664157443350451064015348175373396601177891064080676597359914110709694652014523908053462958621181657853530075707364046256183443541325496727715552560479628867065080482076572739373592630407763425789288412016768025672406695911954027166685583208130586411627523403701301800206086522020713037690571044674364725168872205263287116389973493795408363379661522874007517982963697521620457963565378220071365246131776093568570008795096901278581852766515370544398390227870258289326015866400631248749136110273458479145967279543591267422479304705783538305092114782108715271241117989905468430193156208451740078698104734866922525605609301042407243331999113634661068792376743707132018789884543868717320921561877176471802678058303102500650096591261878077688149718657657864641018716345519855655948141558356759444275207909936149626648117721931661571234577058505289597400693493751334630092852744845602857169375528312007599934942659522759082639197470547384435331000960842943623832226273084827809758724705995386358480552987544672013179215198825930811430235173922823246844880954513603111584648763807026473578923944633009513132304704383701333787821581513128892272824265583310304528450338208205292602408274561376982002126914928272768194994519907669001820952113138874745232476520935938028448255584338941053826919029083934248423443523283288001844245712399949152089465987179049129562074116436612905830876249940856978153903019205454732993989882662544973945959338292911533921037576315297422998038717659321496332895047733103455353919955924264525180808246117301294129920763743684755610780013268060529147753633907858561404664132231077214591944311622053638506665781809705867111327686985788634981674451045422731121444746011626825869750208629610747465829452341006822728065624145688262440181149694142814317328050133773284580071096557442611848569457469186086491057588333508267136599783038169957260131574180830807221112888740921127554412622880588302189130659669164989932326789092244023119858707205139832740080666018717932983897762394174928599961107214982366375604692080125945384600850660502463699996698397668163176279462586340037628729568279082234660264786993014309737055942587803215012355310948985642922436480585372436126049437063424629942956785094321504062738884442523216153397833671784728529869890242169106493185981194346602730170746600368713772760332943627310724136809439122024613563725809714559830253685471652171259907117926918179986377513202735584299280755590137909846136117409298128028469922537134170801258291379288048840736124216713544457988046537062426406303267861074619762718104265668142013198748964286309725432242977208668030489058546321133614248741424695691652074154409865737446099970875219761385718188668284605475847812959126039277591873128659567434913507918498588041658359464815809185730532010788623138400506061696968866719011708955421048794973076548721936734972192501339645014730210238058633714686823741457183008388254176838485906799931923226640735351111308932619045497209132996705544395999261775306932567106108761429044414113290751787072689737870488926984111624703071651690766365684525533870626987380099132851691047507227356928079752239439955880470001525273464185404963894099786415776282691072743288033001867114487938853191737227074838488144397316337086677168477942727571112749115421090711743134406094400708119008885352081666551997587159537960593081986520694695674082599218066890308638104271391793970391180490813694412858588484657455879974227132961878297096602219423856131852640369372643627006261619834016782233578924658547743559010579951380785135854124656032465832900942397778862968839663790657793899474084079149369147361783384144842145621140702667358625713499123498338618066641819493426776154341455530818008549231496034071998603788541214608214370211948007376704816194054782447096955368013332989212028392838436932843293127505379079647258562957391523838273630822380072651039657980955757826273025578463747766578251833199005740426621374050151943775470249516634389078346146834651023609852065731607865203422536352375532741499561723413647614726788080374748518301369855719277654098803017318838167289049946613140626064996596535661004372082610401871031018336337221193223077245544222560488772323176025471012202760893457420186525340173460493510697917966357117567573298992120884280398085840459167941621162120354346181676487801189451165502208801053280845807062326793891077466335058040672683661287692043059380431207094888210346839850709065299304743979927268681635651304237500373289614623621253889476812345477569990808402660243937525408406318599507629414022004475196689249252347282900977978135124627441035677096689144538389112689002882222017231418283186336273610692569108843590151749735319411747229676287874630869008860616607749004735133223379011608778413823730301866795386373574927648735299238249989153190794186291103605174748322594650593823399206830116448104082475313430312632064673775406808146579855082605049071517356959302488756633469477793387969430379886901504869156625487001347101137864211506278409557861802599489481168203444899196619789833208299724340201944865826688572700764724897521467467831122435005281082585898171422859721198197666246965685499286865525967871206788213677397140734060357196144634730451015374997933992040813479194650392266761678926470110634699342142347721337697313732767973938169238045512117088098685353141133184663727714075427992901294200824778117299769289789388402591806348258621765670390468918661085638502595746325509755605507077279535031741137968262291632562890567855354482921875649888045098030138534629881146574940307431181589615739824935578621372716062956474080170900330304922826020938211827400435688895639023693954265459768232697224833787148611777508370048650878839226901365639662583651690996341876017001357147458279400677710994791170618314562138410972599187424761539779181590814429403563609475579652350102204217166985842229551326188634624580366238310101650499058309411858775654138980710198034760648151977649372418250504394437010339435964274712376512716644252488492377341654476168233519372143346915882540852760914097781762494961748702566110607496176810617645404623750592465263381276798055700442027649950419372954317556453662825034955353611143412731034122787015850859087027896279626113108731906965945189375744965753377063153728454992773145934012308897211285296428897971690189998162671004804861369678436089672311094570464807989463944389746582966117328096281285822254617463427849995529070740026958058464909293557169930503623287734518089646010786536987360887202250200817810714369903011366913525279514897559972323599545769226541506658513373662590794471924154529088653759995221190268739650062266110489783422648309512757779192629402226541973205349553165496470645715344653686608562724842031878718962908238551609096904861393331496881068445229323114507440228041129732738525676885320230359965743113928981552493272231453046902065200651773506013204631033064454554092463057020841611752627575808951661164577803546748697096923127531467235263186088265210689050247312181117877728430416397600981602665728054687402787723703720786599054706390881314118095106419082171724671782452259177253831232353970834497890836919221611570931951878760960031389417809301166903398489210608366322436908734446280990051926367675695129720094241688524663214341258673144844909213324129603082390555237224901455604832625486826375154552603643097048411670773986827553286711651102848155611461014257506225712534970262879012655287104118328544762940270399218641675900569109922351366082975063478334771043945166614553797188916668417363097789738140639172861428445938465899072709127610806721571668635364492260418719082612498781182308588027328947768067725060816885413676248449462467075238598862057075466617587521033241214226825286959960041980687022816264297430722206031881381412849575607900925213500197807039677791110969044798648003671462465418125957695813588299614850072243684957055155138035649330223837418296901153360913763537004592130321575005179185680224191173801613247138248992518049342352918880010012000751040594736050131668607834482969532086866500375891347294648479163052847923621475102324661699838944313581484693189687767144529313375222696407889002518223009650836231412150071922346044251022547122872184524503334579648051740355809472454819891141088353295720885742467206375465870417295901122118851508790299357183045141909902370539989619347586959017457959575045481229542180510281123471576455060370890777969830409868908136909789266469255251949432742403647952911026316265287298179334102256065813737291908523226779728586079770202907792007425502856608565920976175126912939264491227487593419546328671221156358291468434229382434969159898468515184778358817829680263165869936785540376352586830181426173679070717361704062920623013329259788698937213614979859031221091319118850294094421309491629434126267885581588397666014010677729333425527981783403068196877094590866231816113081879297874932486269743439367678413499462822096489722951213364107296168641977194629443899229300945286208006907511614406630301362576072464904745105559501122772059575255889870453696167678689917207142566318145257740853856648968134125072677677409663436162172176445024178267887270733722132751146831391105308611730450216003139305917495391974977886755345515372695308018963517401658926818874604879445334293374641897187192582289719205882432559802373305886571612884360368379571141714507493373019647027315444501408255036843187471721627495023049361036083126763902661758962422803956592891145990456988672389378656562556221588976190663957361200679351538340566901516908308484212337826234629665781792406629074601782659593065062105659915475780430229406642707856961567928283504997618267690573694364103484799330124013317445072523836219655275584303532354283124891509761187503866778051125586026157471312033745099909157687265597346992138990677261841966390442407050053819768845761535064861448268945897998227620659110967636187548064190999910171477850832652040953038103846260836679740070361845302002244008716299357188085346901140375070299147603176835290496716416732721146711561283976694048062273171289217117863196222015430013054519917650082652285283642975497712054700107852047852236444391333425322728302001897706151009535507410777659344773875502997165506752118201248620461212604176289722060691079457593774449875035882466821981864125723062373758923423586816538062367509791277269088519928880394079113813146525595612766756344097682113771552682172328353470973252122145946267329554047257860482399665958901341659600150968699998364967388006337594999669229172015098910565066257910947917080748915635037914481576197773181339191124592444705325339454447128905884995263790807917614248187195925842179667606344300281251668667178389049627894222878718660141135206357109197599328124113561032490987841302103714052838914542048944270648551116369543968381477695585901160198637558621757580958878819995318777865052776061771355876856246082582612408855209304377104437488747614827448968178776339564264820327748793796467997717182392693955633292708713345274714483280613060916706333491800828307783903526641438801879448667153163370429673632040300940085724632444904124375779404149327975595860159694824648656401803181614460750467799702143816777638594673543930577290827101086954433413394744502268400665552242425259331420449410340337211872007883161297790065840834262776874236484961457821529196370910096947245284797797701456444507696005223082267769666913513297654979829850550172675717785095265840227157664855027464485217779847587015603066608131273801575750679447607778323224808510930177312473320884817875584772841529255746256138836425261518646067547796462251189914242565977287795749959552392600139239419592676904832595866440320793282619191992631067387971651946015327089398079842308913237747300728130483046298393938352465392928471982186828026943896275028820062284615848399983354475676071435359582111653874714338670288926632234371711906277726954010761138107713381234341006489493326223172391456975722642455372446009724020479449872175188559314234694299848415594870559531721126697262003490729641687460531698222707308069636820336726636448377197529894454027519683415865703941406962885672690193364825502805316990317441042182604662095974826250897668061289375807519221501994752545666219325422813668622351994482514398575130625533276741509322472170392973517967495851362605095283789834934548469574293726412943265808298756245947267957365252046992650020309618092610574562361240171167715575031020129136266863565125917819521411748500832370454669691185005102626893271559553186139817716319664144683432771095897660722995250960894219147088712241216943133729974671502006670710413072000226904612520830225369902243092386683852017722969030624566793902669420960143056677177355174445826299304468690800791515991673872113718649454244561006763716881282283482321392400088518729119030156588338976584784124182679060740243124353298232327244568070737978023424196156825162543156180632941887780338361252956755636641924977958465765235350258304817888542357261019226022467706471398721521919495092554771036951788684594261143547552461057466369701292909376199763577545999923878175480306985579436560490715437600676795909085372215033889144750365368147970159764466271108714289711352109242984081580902077839296459299817711253801272101447477341850618157738829951588532131657219337222549394416669723659688074261263774651614626286158096872683757465764165416050665581302383699398813368721264056411278745847404653945312057277998953339027145798863861123015767416854768451874547101403504648013700810073767060392399504178915719914580071826947315803275744549746146649178509809690454568552962021863739875320777874218911753550877375599751421342839863433225038918883995714763559172465097575018873323293860173317650689541403297106061636086663442692527750886399496371235716086790510629902534033476090099012280917932609447557934802132354062060702789093422062123679304828714316290192984425775752456796037339092179605373265807202854470985444232957197000556856294940332490892710340293264298659110482768433598244466667067163559563998640598737832212817750285934014526171603528129575913216501191075984435006802531161863515823250008214421133540327791978634036168067197786738818425300482882937918455638447126282458960462255484056017539114135736202348436653766982755165269396263819119957917921195331989992891545007190620041776992881507686856971363053415479149190900000241691829320251698321924337177188322668451847435214929246564633296791499228176691079379329484766452262954718498677312270589147556374001011454899859008701764489850013017996932868187285655270973166586282765326063281986550122696335089724092754035267381412299125983563740499499504504436062959234576144685868163233251620367170897389008945257649179042010958991874890041498058314382621006151643851090963700576111729748332194549427172656110765934939756791129011730426643210795159393355620883449988619095976001971189695799793123945379038192419149549405543658680796670130337234901797483003006684411306048662329880130008940488648093101869995440063308361621257816552998489553266746680523135190786735367726322512034470731482679880061354999903182118446344872954191897009913924957461637098631541326256082715581059351947319520276435847646116912038520702257023504265297437859614285132808683551146261199002549869376848568663449527148025416089651286304420935954415243920936751027932597449825751595482560232443327241542164091539468741072118694551850466838550867949149127378868182285256322725292932401981420892465150845045439995184997559388540747966353436537506936619775966952473128273055115594889634766673388181486610871336682712847847119362311987787720222489918005725483003916063175536605255470382032665624495438742604387183380686270561232037523548810270696594657814253564742862951028606867798784098679324548036318738223025149038786080426287834734290824015104086711362777050525728975137879279192776303430137748788432313403758159554195408580848326360253989050903655454467441344364940738778650692040017622252290084372661817130518162420868623381529495976175168422801557333354370464667841648284474217523919449501829062625936593631439825533165383115019258191734752045926043790543568237675845331485374881501431127139472439556283274190298946761170870610263515429477640367154277382338060219690604505142464071160456479748155127680331640399084513279253408507570542055575091030803265648300473520861605891840530891436021165917745314142296390851262068604554194932404136205008610641531667442778999472742769823463696846447291957794787906149997500672077996663017138928489007620076843745087968534617366601317152815105505691721393790983379059121454644466119543938663908239555638413757781453037217892242883529328026070914600433618549979671315476372913932905297882486418221253350865080124218213509429968293284987109451356716522125151712494723458289391393543234538150641445676214703789278927780406059322659921490705279918697646920677165155140357332712577502526030470969539444851736219931006451834757139768845601225760095765675800513693580048608345427813567316348811289867803096980316272787418266831909963428011922259874064539179853679934434335247718255492359673922230861361789308547178190006687356974022960324973844448559370506135563135276275320728163889729371712029834296569067410723822372654256588358329561884298491949968203154347527148015838152388060898984990724273294693199008506069609329574041592276716158016877636809702300278458943301098742722950299585334150141145817412653207818134150207803100912098847495716215927478294231683902948283937970799397178789313489152166843366015074074643824951024816073648998915260648011832301624687824364511930728689881712781969869747105713769285403910796760398755011508335057024076003662892379286122289680531191742704716717603878029805020143733802991049615158009307277379676600429956999480174082684330821269374118496994449749140616119396665702620465670119390444325292375902494068759701759022848830032299862885351567058907586307006142537374383440706280780353301919379030221529109108110254402333403755291383309833499683370787338495359649457037412262563960862288057865243303787739262364986773303254273229454452517684873082331579915761633936968142610065989787726615180173595063485306767608209690677368970958258958896255371607911161892348198160282657747835486548326939959701802770370119348119274806578054943877305560518554300443346732331200617268257285917760694270937156742487683176519077744978818038522307652188252676932181450377426266332269820009746717646239185431097354230239038525871897861991221190256920110515436427169899894977248437193701465947465661179713175800311887344490044111841297170326223440395197992458958579912904560258721352726018712980972881221362436348291603850153412951571694758842033057371866995488711176811759801296377907296384783115515251328160281274119569213733344642822407539791478227526368485341376023884416778158032803052809403720696600769966644667538171600478219070162138858123265432472729856027749788356732408212998170628772355855429900583550922900995242971759019798506648444035906535378694471941761129477128925774042180050815601236585732905753542315529687515766419981687576889455990513967202625737268810707473218235456201337619498677240860188061851570986683497693454419653205390655560948630210660997614822924053280224478538094314214725674853303358796348406138707685266578615012958604792566347512693809437662182556944330013333188228983115312266370969293306424510347177298422403091501784543890560054124800895447745058170477376484349948696591536690027362413147240700826295895571389700863802544807592449072756199158247619020741709147615986569842528726544694515806412061944073680587269196210720735053017212362348905973601379648916644166795263201385969449457522016905846210089833965091708101741308946927005603682707885120679368475636130570145375592341379771351248752018904663166406899693176029048910090128300591946484997436313595503945934788269746834509824090058946448770443977746318513336847554835824557821398330943301568853873792909529993381662054835304254597331073153107965789444388265788212799880590631805023919735928087125030023972397342792317807987051508131278890572001761017571504189360177349024413158254580989630096986851400253211705286752744242797772756652141278752439742307810014461763247308744316164661361564384316136201626957736018843623696299495469309850271180795166793695314843990599526714377322405842770348374844658329951213491779519795116409142864057817603330243574937752723765609495045944129121211530430469712267176796422851962710068547208054399320214601066681331001810476421288492057399256470303449680289055374233457401594181919939750298436774003985499725427118097798602884056557871794263505742428152773474924128724486273286488691144939109592993931505602884871386434789575509309555302565714187962751518131371477364577935215482397968130314320416658008128915072672717796104266676408107400866917961529125734889223355933856795118479853155997248660825983655273653514002234121569824618098491080661095777175914941333938995887881790183236441814956419188966606419107462363081713671884194767815319970163498307185831740040965381666373946709748772979739545355090513337657622027518451735019243939007897640921495655550108168822120189923919960465130376909985253684843612758042266553206404083975000784229365219056027140842082077612206997843831143976970553862687754867523891697790005628165098861839113958406777723151675103502921168213712161395311376920174037616184599493509887622480099488176711976044008620667209404879773315986215462782044650189246308107119956284409262388785316850842313896178427144124119370671573579408902707668754525107759771361113858893649349836461345854376308108189617314939924676861252789581919613295020358472402354312612357664250349028171926851489783890470319658604410740468717595510819358818592266081098574980293939507589152522181676766823854996539336658714886167191747108199591775058099032179360312055444604264721902802893462284278889332246405831346223148612060323126603713262324695341086886681752347466524697877354614142688270287848128359240150111355720749026954086608339988184342250433118306227316313425887453964252372741956211192065458655733631731881963781445777844316525210988207916866711123963411095819581085619159508471121257377447158085120702362132416487820150631949116407951528908987325891491493563469637132749370917341940711956247015827274627987737517514701928806943668748077607385205704198739096099781981167086464043941167371346980242220805398095325502864556245583715333829706431722836814671568649803484672512536667293625706105288887269404357918786696017556245616249691760477981858800484638608467347648836031909703214046323715595259398920919210613077860441372572470060941651888077597917548398803120068604821929702442374532489973928103621757030773063829488011553022622567282863348736415813855470017269328877968660478781985153872166111536889352807640455118348492910379350931892074204961392798011494898344908328240561672414949555025733509339676601353522756697606497680973768062598869616787764769888738920176219534009851646316569810567331500036177024438901179246853165734116481124922161586233222174010963680996908990927345969392618667321399472729494105872610176711969565823666259354039685054963580510890474707136364769478709613585449282506611915308574682631323963871947958288485857429399691337191100887414455776692479395520160269455518671083418086910220223217647076274053011343500947767885919967444438807415591197859264026637008960844590562556308337565629641462960119575915363187869889706833529115974056324951539152060163281543185992318244659073902744970607092838964558293685563955905316807550247890554629539974373361190281596144185101805127656997748316480826307637711986267096805549559722857562022528741245286375872876510755739998307965850795355803276847946428382360475200907635646577611382372961323609504310545050135317996688878354574512923449479329390436872738449202349001059856358960995915152328311303912575258275680777609433498180759152729968965875443039367211258579600983130105889026483280589513700234924143980985147886656331711271287745869470023719857433845742294617606598385940373440847311377842770877688812982527057692190292794747314511856229559389174844127547622446732308991439037421215740570708731598191491335302005171820182980625208262763463490384844284138073339385300226826054330107111321029736729057780861567430083294128694171787728183244321215531392107722550261707971159155035255643485294862030514527915471729406414586897072539369082240739411289442267387901933391415568754962536195857264658454246430603995448184266349092782358009695987680706067235541626167509713590838357559275120913287401298634514305314934544930048018431776641502216401338941797338546963713484617359085287855147919924249153912231364384077501481529427781656957896907545151679488753032389205485835090820187803742611583059259935258739209365733344200362971955741489088921251369009131575445737895890663181963633200256284159419484165357768558753862942808827929212629871297068088853874960504388826399654249351960847506401559906280735570837512683410712926939878609053859600561812863960127652455769295832037686316930812017971989167769439942578405610144176820316660454161820334828953934078249818617054499022543783358921514928708981407273211544078654979805558001401257751491779148037193603684922578354288599093455018062419313003320396898289144023428952974712358647116606786448591193614339004707403411731665583107799314684464640852129222270681218935153974199200846706443074039778908613189813776915398292119060239740277518008098425227470464933540228979176052242517546801782507934615031423984167249541620671778500823979033057778447461446114453809935274116523253236518014846031744594196391374646481912237902217053959363609726000939987267176004417761905405284104805344979487937856881698966637852882239736988454822331590528021502502795677436002557937133565344528749818895880727364098984362027596619114459168834945683240964568448565180815593976309016585279031551618127363315464337179547740436245809681801044879680357709902138454546344099463011742460915735305500436437019776172749384695177149429488384657359698699428081170250193842295723997770984720097049199119424987855827047093861010587832738222385460640370880289683010183101013564412892629128025281044743553850882110691202797513890665432637591426764601965987623636808041361818678781036715370814750299240949083554232912366499772620334950275795453536208331699074436623546762825475194973990647737937006192610538754369424140794553393196184365030944773839118365331510221317043221108480082894369328184677230203278624488775401895545309733133160650625021501833662110028122556277722325182375388590360534041192636914135074064053257284469791867427983710954859873354383813873795364537951097839700353606880745825185669530289140832229590195565735627980087467133353028184725327074193267376924858490745599106952463644012323186670423596713624677080106002407451278246873862706696521251351459122380953142233443279029338397543700269410277537445900329594552126595317490175855764873621315179850203539153874887748497676232512511699175451391695733779076175451336247225251672464670849011520747994869689554609988807033382146445986541505284462899472840068342107129848903271209544557223749358744510624688785207792334962975885151629075139404325713276396397292118802557718011601637602156953331944375049170000103783387154464968332341170883989160429553299130442797782690737952910880167644556975714887638575523914201688733929367014734326855766584611467819235882383336959874640365149918107493041296784643616660962152007614509422262734086457105952890667159966669031569180481404667627209511478629809098773957963124731276687255948539974809082737563352803776326965766451711198683803989277238825091839778769808791773628918350297808857118625744864066504605421984948874402417238495397006654688476383686384044265842278934242480788737114091767272859961813423464614761839850600712474596912520435637206133302847330201136409950080308948599386663466722618382403760228846207554396187112698640439581413029408707742306158542772127360468193003170759927775157270553592119741243166244814908515048529123725988450717111639798884455272526178814439140860134133283073450141130904764132171849838459762547328823132783494356893528310558630360417228615340977712771190457120042241791005814330094981545627892136152531973944917812884602019752055781642473968824635986936146753988337939347383828914674505969369807353468900415838931236545645045407695166265798422536145227663862280613408320663482423262423412713440620856318238430759837529550164688527653972563371185751499561050660385329537652371708333069340032356675216707786865324874852362497709081298845467677608458980947436784791194186971363158727326061549765413279426622004559280215850265554668161693872659871576572314193344257408715448537092568778125778524890548330361182025678386833870449855810165608177474581872090949284588821469301417318996491821287511290140315336400003628157536267288914917775005576254498780463662535698676338375990776416076860637814221174683346871020416310749339509958444178345763382212982028263200701853184537491079189419149465437684032720414648659434893833807232137752171428038254581528239039777119994120134022313283296394189757156579771890966770625204325969092762004550115969746613982721143508527197962403278203127155670834767007083898784469970137443203155617798246781241864242735249637073749289895989677735972923730442848904720202719825263889292925993865594194232287639957571431072011788182794521659842705113024656867118269705813444345604848136741815613213019026968779280688680797060920648418721317463320279660702206795000088223141701983634183685809318720746796000088981848242316277637061685534734532597095672867453972451634047510857533587996192845690648293423329982641268006028721227629737557938201329165662188002487991505514330616286710355924490033415499998110996256215141546864869439254156170379824620259108004244025678519437976759409292704273879474383630640030965677442605322020372292276594281802481848595687389189505819381613095003069651469548569007226395779463525115606137563341577944703235080890107537163412709517460155383182122777997811790408368059233808746716342739217104885720372663324712132578146079092564747924363562350281860585505493423898986497994515453301740798521073131821246672547996309846931162710369312566743383609641594446862845096791783284723469648961853435453715639813579816328615976224148401344062381762434139726740264971214738777237525787312215940157034227448545498415854705952110468489621941480449619711393517898445733411826647273080512009783889438726664902519999802271653251564907975111891267240207747535546998457836331502467262943394550240837097643862577559493769854094193917563422914094283960985674070520098401477515734787334731009645731926943927704460923076962096099355250396281462115249963254776787495248201143767377441250220204583008084630933377001188897172951037773704897789685338466224510687549231554863651372274972356387706973825783966079185154285866738871681771326448038408821442964398922368229098563204329337050705010320929978252938159437351444388334532908642662110663636202767769406600125931961866315461314804844481777977917511776018692375732238051781780412181510292999308098924819813309017573072266007448064548390459422794525056930984177962329436933156519485062125942607202201402132561990903776841525922072515510649683286340213381734281333409489643576702191921918303253327522764131119101881265559862787493824234900769021465159254175430148487658897693989358112820833400443827972144644500589974513669993943865630822124187949872966552729532313858148547516005951661846602602400506688068312030050130314429610595617099754572214477894166056998836009378478991360474992154184746987836028430757711011009756003694534622014472635280480304428119975364698966751220625922646873421877718967751324629620759965477409101181908137536387100851633042886223948899618645952386437599815073024665101548828919761839440208873450171725105494982542143683162755084489541326380825499621045715042690353579443726211274020833895786158069460728708458684396281744014088941179182230046220194299179598240425362689579312835727413059810217521651831766802865763768246885212784487195656670764510363729144972038549149975317039130858770812683921458738414223320976750595296341078606456234497519711504680980312538385739225943274958849767079589890060951494310564766598427820995473496803630264728614439675266043445544051613204092656014366522894608035125100260816759973661792177085909470433850776280045676077974537819339905308887345982258445338249702065428227627365374814768583498936033661174257764238107074465669411865253198606410076706212083021143631167631128248768702383753038444635756832755350976666582747127854173382250230990552180276050969516145225204754295896920569951744229344474007128904253940226693146263223645270272822113837343010669508196599708307339738553924220481944096480783011242545221158705332078462400201175770190325409519504288264389960692277906253187182502693329332112796074971534036908085672175180902126676848613234975524010847982609918502074703643941910628699389987500330564281252794916840748839916792399173027767878417086472008769598239855490258320887969322078895798789811396266787166868877811799752343573777300870300726029912384795398829713616623214279784899277842171954450686099005190744019376729328321533000455218512004735765584163270031739887244559138096870720359170900023699421803847534143217948469231914102589317770863486292343076476355619871232294307284775402771849985145444978588787672821126309534031331809124129793345213323510507199135553733546909601241169298638497499616671463544177019978013479138504513038299321295215174980917459040751087697478540454421084660283605824643295374480583520008154019032816237406469076248720196052118632794353327234589370203679032800767105217508935563320653867351583530987281687427495780584022686440513510749036056092627925945956415232359856096772576617261892263071029218660046728781861589026872157037022805046173735533541727078237891858685286085956471525618575071281415327894621400462137269751994841721634242955210839144716379514614966484158641553497728469407607584771070712876799733388792724299347648739376590382045586120339661390910678289006028278018779859487190108045207563622249441169483792038415846115436154465654896185980538324073924027171383790145073447783854035504788594285565883875050176152940856047394398678210014877357326013614509124128855070569867784171282736670694568164894936615782246110725800162052735442243669095698660326360799015095662839885744310697450123109739607031766895571635976540315477943954241853040948494496956760851076758314603720787324156510075476784470912355104341288036834402152744623918524964169470995734868517484115859521052335620751169120917759281812713167018162212463024562949923865613655587654344127029229601621776158410325014975890663286932601981417647210757877231131128831358812918079089308456256703241118964044647502983025717898640505999609869460359183853815198995460448723149421673599109585469849823891934569150472439569885217059705090533049019405920271510273010167262082823336800924338659396801524413869544654717233908568164970076444902076022644131273636559432979744333466849992650121645552280249199789634452849621744454937168903910861833362198015416857286001152307091331302986216382851413551239210314065922182501768498637757545966097000390355636704808653188307955998048242337228041316784651230322952248505080903342325715126467142880210303276687908121691605220172675050144816081682800716392401069528904500441001725117688537008894496700466599492061850957678785638089907797759279807114513497670276720512238645121805215789984637269764331072887995731115188068778378714871245849446175621220235552268492974398316853755920048212678661087294016616238145123554009391200806988132348075027836269171413316431314535911882586534166833886894261131051990680787498289595134265347161253957791892264053508210820985260024902199864644809005613376177374481366767199629026105100036133479518056684487324566812498114768756099790250435750637075924627291776289388917050692340779149388942115247189842409379558450269258651115631331369907367078469780513377122685931247918132952410774719160501613054310213837098019806217017643422936749705223505991994978039180494776661936937356258026263676484757534017099961629803693851751054120037692739054299779453990095836931190420106070988532504220493052519250544503082225806622210418296696519301239389428347167000567388654701742985536830263545643366063014773064536264661462903027301405252525397734662325768172310908546164879862175901336891508422823020991349707817040149245937621979592889569640525999471181242298719214127352395682744773956527443751093913101952894632679288680720691212129855687461595658646618498569063645251919265389805411960490640343130548597929051283388990479966213468594529115773219208712231872885211530799851025145584637369534156117174454427358174268191236026627651563484348767897569284202943045347053442514138195851144717166880926511128492354781949653367885492796015316764740242001240009386487935012253308172482109715116432910811771668772466604507363350317950767873986144895862049857660190989976756370169032627970003689534377427951812378768932449531155501541800138812599918126094858327280685795061491479608849886093862157134771804252692090211483506623402346050527338827441506171528757512312104077959987618656789414138211060646344753885481266288540077085693110738355146616042850999161704694695398991295687775107177622247540101819659669287382238716124573984092332601969446384552111901620831339513884177510627003382882374973785746561404850215854918080342395937979110722003817974763633841304084179571937795249886019638069154602094560135598934925772734907986609558942566001643711324471053882846346463436644110035964169063605655437543081190639018476982208239543154352469343976844670661380741861833766784293002712564428070361697812094463936319442257509415978605307935941294070823574702515946429377069070781023024147436702116245949827814468137015981804454175881430069228662943088038671164115893450011695213259765620057452179604531094351399689913151417663428080710507396029978510375218421944492856895509250509701172558884246829332917288683998791751000310238678276780494158503135026778169028217179299901329767256944816297310741466634843695107207230283343035286882063379533556630303073892708948140421972811274871316591255092836687247341634323809571090553503176659112871043318347801544523075785001586190045427651616419952986087414986394192455909989325792706637208986233551674246413462112665447033809311579228852296954428998534316315559865158101426829131744174091577166014817559198982593300106356685531360294711759289642670915398663777588768860074441575776494642712794679424584196877276853046829211828835338141152827330070966430829353355239590633080184574135369244740245628942987776691855468914119444998705512329147069213478254627562341717805231027761221782922867439235146004238657026563818045128990393847321474623777756354250462039459176762912544840124897866168753690527333579645459367223226992698705685074109968397891680634139320809127202266744979883201635599953698323345583984873522852743500486700394991626141990959479309846501231857723194157054538439640654923973213029593851682725126986764986432725386814875690669060119011812220038491167508213856767766558562371237402167488711777351801465541580644500089244584348077378762683603610533728569575994545053263914915273080585034881653136645146530058178126092951024822936499756602495377776625086713266787917636384494418260610823477212047017014261728820005339512790941997749965243824965774913456298432708067447123437748984023730249565017602507081756891890942659452205190126596522160303874952786370434853528784222652689687284849392504755737749786081042697537389059083452844100120346641160606118242388631532284829218832206896409384916541405434406984880332410926817331032817453291252707489555446815573466233072822757597565115578043690738136907788546610614027196589314508405472877768564407925034460860889639987783998964063343718025242015241760442028419415054549041226151219544993630994182885669502622547221376827809043545004731494196568056885570450853548386561444640297346785030951520747493979637800394332614169060766094478562400743132016140466344084101549945436258423744355430857389716984119387048438027987582823968146189011702604655701926411004650345543226878360419704153049157218850541606372691087946804879311773076810207615201276742717604231612698853510860564981026845840306262042282095109231648260968826082912176584460147727259331918068814062857163263401243230557327512536980077339028192136837573925008047915179978049369178757708084589797268050076068242857057292013626431777575619418107121522331944322963111628952187870434349218217115682031415339895347733011209137228479391930287325941128578937489869352631962901162611792953718556917292758969487775987383934048973747937082758223656209711593129536136335645440917176081395850269353973727965091328747139750843164600157986518440974800073288306817658180851467816784761868251952403902488796749955244831341791255211923650611961364247053258859750069175978330287226374724029298644557740422551606382823891260605208247825736025399590670470418950806232862750304349613222582500541906603561315852932054880204050957411476089590503199108518756989353102496090140913476307841995594113843845854606467048492414793505911176011433322743671885525901057844361652671425438807567741038652246871697296844644114156178561939380199630311339743590251218834492309656465823201410753909686974452281548907740359488312065336185341817382393632255016905865129108728163700363467865180283349549674153835548750172070190952598792555424119487846370031215821342626202115557766589182157455402890329695731720785763193089344515623201225968065148450086620805620470159561261862658420014255519792541952484487114275251478689164057762058822400759357864532980738806220667551208524280499905667150125137386303975956266483897862295968316824251976958137032445765824201300414969461187973133384327188993583078088325221693177681303457912100204900334774015077873416075923932667958432972388983092222618043200015908472805418632531980232543860860645321910489635643950732140802438775366224267749894446846514771287313979992703126978689421072434765079589864132137647635205908766411691234567050548526798801762221128180704918026258046828497461109275701999031126288201040015987959648328318300862584678194590317990529177266718315962664534412657509775451477289315154457865230393178272174562521431976026561799408900787463156494800352244080828867411720227358632649723225088126606206472358805743937795016812197905375958091251198714221846833637095254510573741839379341322636220699645379165934801768586816591495710033302358238953000741605932268555777222634939364007871007286550620756036371034405391717651794451972007474724182940906969870730465335583109775753500369909322128010411302341647196259624738788023745714234424042550730789312770763737586110618908733812496705470444925148254034496832743306261905122205660554245381539051633675602835430043957844349977875207853100003851788612747158701274240915538879755202477957472032616587068877081745465324647656091658522848660694231372865401363164797448628903398475903184170230366935442675769918736020675877517816177199968700252507837531533358336080819979240432442678736907587254371171114911670534154102056550672024678698158263659699390824587182336928309558503744789117806465730793944917449305527399067927325103675024457476941057807335648791358506073621435662513113270846028258538802366015878062215855832159284038621954898242300584413961494776705839898324483037419327609934414658847532222195184003028104673207867231478486544895501843309665685121248517977904345493939931833004628661115608062673824753549459535832819374065290704704367697148414633572362450426580974242761584919351636400452868609785581804111275185514894189655849321166597902583859677355191431264719770582119649325433727357937757345986015033690714821730364124317910486727487810524241266458618174275000889518213911734157267859251763622901063636900849599323740939962896883600840413597491193978054834745468989102134463302372856291666328762229949862458867623261363049950947876366184484229321484091037757001589042336974359782541847720246049567890155454931302097676410363271025581201420192298127864444722467135049091725282160407871068632155992699974225415553582524792792135434665524116851363483431777381696117383577227778571621044296071994333945261409431471758833939052205047186158736097678987181235496110973651936522889335286555918838579592954937234302595602872010979357653221443884692251753569715319952313167989655860614369560149570388191369480735991437307758838533011592341016102983688085481342290453739669270839263815557715733020328635690365156821364096531531825880687645880995748200681221462667267610395468840215345905004021420752206720635610254258716973543010803851577234228807605602591635787238010567284799839488325336801843108254602377522515881014045473411327537677572946438446553658931860912915100165371174449129974630909852833367001076561313610456154924621328040091811514826151625738428333036465217434436546099805278386200771523470667213666913265891186857031894968709399021877513255276528708414062767486284594291501845918362975677793548465921643677672582601905561383585471854393097153533212633852442753453007407943566358217322556906725306798861660564346685633145436952034579884528874197773541593897672168898261634887926020155427940343704510133813101642179060089586447329688323186659193762626939456979733123894882185617250817178797317317427088996548779245550625346169539443471595481921164581217123335948499498706363233217567364484654453230532896977741804737449876144246333357003731922897260322209539541193050803390408750344921689076288031135678651019994619180937844836711585110029064900228969968586222820933152428514273726167095078037507667137652124422514022886653329920499070395978249590610693382819696657526794028064550123513520152290606358542263397509556737961502687035132398911952985480600086244817054484495447177562980456864178092210890750412623136577407103602623839727913901563837304574983263152304023579685788950918607581379559354624231702946447336882609434771525584538849361747054793711846429294142849210551823813763398355195918219064982843054777281894620656361953856520365614837351185628622237842208022696371746723144704930085819887345969336634080818284724885006745380013367426124860089687827974203170883072997692649493899130135174110295747880714629813731561553418210104540198021138072082075930989761835081607595267566955250659739421671352329273606632971892939529373038758150088993984263376950641988522343452457921762676973554997155886147890107807724210702357218988462402290413786947779257124053257631546113605420318733480845074834495879261939361874827094389603338476810874002024813431822915462687422506670579061383776231045160043290928175090657437410567210729428439054078802758990372059259645735732645637512104474002164455739786890664783334663511974428201549872335434332598145890794727716201884760460474805669911038215585558111436504166051407942810124847347236951853235780908982123575289050039833195687315902759071475653731441954476575721384188252032252777278177252489288509444554596740534914453030280187798248962789124889398570971845266208616455331268663625111745485483905184874258738987335401072040952769352090125976307174412854684233329694927353506189881852811097440701483163729813939777890840265510146199147749213006517597988435867552080401005733848303169904620391718218009481721207141265578711749219320002635899974821115890561132589629802330497830669987338150100345482631199348897275050358315113534242776757698413110137152827063595397827810192036165341258455229789142950999401930676227330012228825494361856627168146906607652553211974108656115501994142541921640086052050296617775412676602174570326382545657733512697609003470050574874024185502066272359695503921405877443748923229738273972607585005848700440985371853796718019846125183697818909071361843866593760510624134023317526408635618098875471443171028756524474917610501968011751823186723936094521905578844799519614053668572731570245447773442325741823520308107054156680032180991388006948937249986092095248471170327079214869092957395975384023939502389122474747588065911627381264029481981489979191422680976916995486072508266150791593303704113878833675049277862866733736860883299251803227576015959625051376015420509297461858216239981752932760371419213015995881908317890768082021256662066849354582324360633185594887412518170439777587393382465361637935841697706511745531124449591889109736408130066438347226043893869520428482065630449755241200019512000590977544844546900714672635066649456139328974103690717252138708076959668931934217226428081224445464855315424644477110887635344428480653594712265699343779416036495417008967591165481626231476942050575181710869502229178246203980565090436172598416050263379233321175205294939914218940139445828804516560583574988371397181876666861673417255731102197862919512626100797599993350498948303438756660103331156508386375611989738372130881965307055136675097002474725117879675585402146593771404851837986275940910081880296657421635199714682964012838667074935536118653161991706241074342658393084151839808224157642066578717191212709331227513357337071036456837543212147084518961705969951410099567248199031257027221254862399750360864042908049159655535294746016125362026810106209176048305116243895699112831796609339731443487024042103780486575703834136183053597623037294464860434109512116119968263041330949118857259756308336891615082856010912853924235421187093225553656880422489429272912117873734609009454853666358959366425170169112536360594296375894333404825471201940815957258517049468516883982268437554884735308263550844965273499261594841073808194433320655271118284095663370630431699049341514047450602629688985714258015549219717583942939280023364535328151165901896619452146389962683728908187138048973956975227092664898800495780050354490281864691829630327100372838804656518594731158027125186608458422677332647818984924355000988734518934399610568633356442819329418085784070948013885900266236383753992736590464464914969217526812136693529723032658928066236874236767496841674546944219762276976359446136488861239341807395362960693625843483487075140559046054886866790395564584498223278829209299344971549033065282225088191141874700651449426130216622596902784338378668979522040789872974861548533140951184553735646270274691552983909993284111374627320383699179561141253742752337954001114316492227247105839037134184102260699513042932113006763383550571899806220185662678453560613437856931244911836112375364105645107438070133562122629761220307076935946190032639438932788841058441811559997965199131114935048452674081345170915917987212825961242003822078219830786752705590096617172268867783863317008453700588397206444569311752828697380700993673695887951980670668448991006182387284856574821346125561373990072122763483481032477898325714694987635999195102895427582949682923829469551797181704444932825401942378650930240546574659470147999413066461074455060438277294186722319173258026137616612796151610119702372371275253821337281938405306763369674203701439943211772279351591488222508053685736578440004011758834117536100053483307945505674449531762402098805332453845698495946592610830659163642035467607552298900752871387199593736529123392377537121648661455627803979584525752871921785819603445700610812631407860157299621387795001354430792078513872789486098207635162604150803067732343037945520106771577622771667966737807217967192924294304102449748670997415346782572446361389916816658835563381479841728576766937671177716373041250810895698076149048376239643367725175665606219635875076426548433177946603512010895412784370823633241744950850858759364819355669914224055872367796679235719455012970028018586702716677436717059029810608578103219255324300358024190833023325027192341650923112158511474553317040002658789619335780423556209316098331057031967533273166876241686694602638491340021934112638558639031776330361905985487764844522225726989729744845714372122618507868742195972059466584295015076763281673142680314785570264137381769681058583300449427160418048029449352902638322292220113886158803132985574144858308911014590964376050935392909001374283816462335421615097516378441569558522867144249632896421991415221656985619050062126489119184933752668655590225416653712251392640385207988860166275525189471298063817184884753799667472382363387497539159180867023515114805779990018743795040872812594704865164691091039941773388577476414299522007537916864722809462356894661908111775106011584111301892810059658652119803668869598336293651986221970584378564671986726212990880377228487853111327926085040475577717456597097965651218617017836603872803035800586157226430326931175810226235110825847751927374627990482996042969048149259703154617335039632511148060156216049063439026037317243980368200391724581824944763980614163404958750994880022409094946390748504250350103724049287397514730817243822156794247736022185558749370324896122756773346048259686461339380655943492582310930254939732755766561168174060769001550914364060077664738150311682780973628306480987270461391076719531416054882341819325427090407638448938963089568726457239207632320099872598500699189845379786571535310593420154800141119723568802991200706870826828854881933196470015043582584465056867968471334298667024546777574379259593675452617114752656688813172410104947114147767012695080157936764368010365523156996898611258256564490763943964415725158476919832140220303886551296943802431318687575548952814286500353624715192705033231986124770008323661239591137166172739937025883991630801072635540611486940547799876568086619311471269497625238893368800485789119435055771675194930567442589732089868464503413944209104388693388685820515211277775119988300471798691912790146695294912332534256326893025536638018768490337950959519583834195919880846817330315577369674882954941109022201445543603959962025303096210747490011350802063469095908306467886764863859742727255833432737216922835832248456434681556796089705676826140921657296128379459868622262334961797358542439210057116724500029459742174017818821642367045701175655557402100491999962065132618900561552404355330751224364880139908070962256054147990994367876839989166984968737804360755395059447663501673029788082465158785939886839644983586594516378859839041843548144632032840600761434072634947540977580131404757697522970980779023366359970340816429754811812465956275062388505503862378080685808671088730670993113616094089235738847956527040451030606547532383543244232670717698958687210295629615566751245665594666963617344919840690048877964015439168889562975410940968107840420585454307914550568271319982517092682658754817366263838259927701620493932236861127243979717747511187535708655541133601823005696350964896645229926120149116505714998922900283924181037808211530240943565804406363754848577518650339539645645759299503743178478516122044519228605847458374519504791212037851608899150116272574251457296257397554919390532778523628869521145196280995347184913859473478408564592865970478609772981397536472921581032648377810108872011014183191458762021484876264311090446096977917265826761988104187824975926824662164819598363375748374684770871888492148690782532234584143980588017878762219816014419338861853165457359751382630370819673435360713014132565942699460962280527270173779977872043988462836246509140098197176282622946562083922969746519060052065699593834286849629453930131415206850773303683845695344358848829566540804591823261215529657096493922241251341876893889441460986715259794821500125744239410974668983699400070808907803026286488586552600786277062876758931392551921963921746556314071777799064761999090722860029875258906947949857399429931284433087210635685268314627279739820912143550465421904640307819352754096014628925564288276319640221878870740479059678989652835543704672208128825121026394941667047672738970098657401135461778557218945637559969061113751478326931660566738444539883356998703858525333504909451323776101138226523106423070285086896891595842047870814318285647097576413317214393331085290389356725818398153080770591630390138675328895911721670375574037213122091071393033918437557195441903248932859235090593226472499488940674394475330680271704057400563191348659626432466639850862102112331832106002929062891336303293253624991924378037836814150764036473642376404468585779670520450788687563762157189842983067550225197294078463423358238402560188865735696391711444653998927039030454305751687599194273400871952727810584609493372625729520108632401542708766080595312605840136371942787812464069786524435210475719139972078822253551603883972411307305561054731285829550000300200968336499811713569030491387883395605418129861148868660655601882789522304654951654888608468831718539961488071921098030786650898990181047949509378921065997834932498167012931664486144941759296534864523362207285837671786781974124058884966492911558754334222109389929586598074515644989887120920897924787372027046733520404586518227187272538663318553185373605551662100256530614732010146196320928822323866642053951835678733666244394596347466295524784195258377710592749637290705029059186798763281369700493357085903275508550230683881434585240483596135743984629379430277176871695999528358962409047005272680058094438541224540291791237187366429291555927056857716314422796661197351538045407293781425698788118263138056547071879325556634115796376175213334501695590250203066976194400967188646248911640263818529057789038563743492797336065350557350654392675624599232182542593580166045083119231651814026814249254186074848414802854205002559476474756549683766221813260429539580654015113027352016960022070392428715226477879516994728972010635001154798470469121264715066911841656898253562479252226978081869653025457894113334183105955084072973508493041285230344891839798728965735537501592940666841566512122199098456920931109705924667582484927003348486163607263932322151112000815706502802651883994353263444488861206698980689777482730407293355846453270496966705611890230875146968031942574091737602277639688124400433449352332774672384027113513092792842552957562994163037158236414411146659459451370123808347368303372154273916593788767483759222195090562073330973680179207980843837725695828258844439609770373962881250873547797014214896464662068981848337626371932167389817251727697898045066339357676611167655714087220072873818476542616046172507194616683516909703773905503948964550733742930260530508828639427905929681444512165904571261327884885643367764787145289404379953428899972760511725462815036401989743869371054174071755257924994769910188261020616957956149339013332973542407148449664953537655752097368194675249710658504129885724468514574350803530654165728599454928824583835129641923365287021149223409694305956465344051935856502549164860631543433812822716243553002365929356646217378952092780086451262815771301559292880222922214756534096053477512686498049293008658115485528761198596839550831651349891508475760243537533000404317379226014384075582163313161621440150656232475984663218445819438958734911034741756252237304633163907121830144229736256818913125831231795205913226775966022794279777518089747065835396940251310439343113389466596825296707387705481306339281362474447809803866487793182163525359716941235498026683207268116156741585023250052220215312275182994017327516260566318717923377947939675187384589593221022785050640762840838174208799368404242845950601193188628110506512029544660652259729608957696397901404141399816951936171695943841245233167238977529256379207193962788962120751014132289790309035899809369178768670797027004805003706768891367430289404680688016284625054160126912822351657782731919661830082726165717061166404086333123201356416244213901227265102406293246255738902398746912072188353789279036462670012068034481365978660640679555392325238473470420599587530989004300116181235955368759366495776488659374253664303041854911442380921644687412830775819886734433492447810217745367793675529635778838502971835374363084332029836224188078617090236626768802694272882679858025341418523435850834444522063728124689723139369444932919698011657107003314595836309887696845387900895608731414459398876180564208367620425994855219874023418936351005546481166471922806559113729390753927651059712701828226440840026859934373784390860396145525686839278050943927013055727463124261623743700636781857415842660530945761460269622820152072224521409353396383516159058789125994436915511149899170224208960656372253166757285120868595283709978986423667032134922769463485553239249673160891009771406845487750702884445136896576145801449204102821557952926336481631710544077491726575695824517698759673805585102973415825295069968904979372418982935494782555734715104956830801372001852447788286713077931684526649393958185311513279645646191780697733358943469754918086664948661688641193452754041830427252861117303706373510884372674297393009144289428661462785796795255899850892480152904176905971515743468226564690366463269819574837639392165364688920249833862757708621965504733080036981182870503666987954106200718545515947969056891099566651810518545566780495123410571370903804952988943253997833400976576451306510098826919998455115418991334908900838536668822616932305857739944488570574642469813794145478296912353223760355808298229064578057175964666815576255811603655593433354062606026686749600304117942015903529004474729063439764329477524600020369448361853557809366287963462590316856666823066347971629615121214402724442021253697224804321819452362640591687430737473175392395855263682818653182416081692575726079408834901291734586794097174545048979407527875404283686301080479377310530771785759727092995470833046161153242256029609208826699556593286860648237769613353606103612453831895300928786629650462498984169422033904174371470396892476759168697494978528131553710366284556053226979987891063909290016919307190862685003119845952143752114595036316343039338585157989386050384612372445912707865347462236022074186594583058878194996255198618494466154518068182959540808140069506099104756482572618961947524532408448526074417803422023701081007924213231898540921291051561023717158507267446724423433732381412088149277939986214261212076228803745368125920606271085920767553219751495498555552407196915387202369732571723612512505441791628326427509356479341642813371791176039407358537041034026932165259279640608044250491578242679321066362637461796677708793967989699606541517458595773435340751725089666002975312797042426186904895152481092349131136723234463465674536010187997673593494292840876219384730116900573871834347992227955217498730976272176489997999644603425723775344426218362691436380699327997288703426642455655954586677027122419133430742831045897235110341290871134388150277700416111380356429366535030660923941917315214593401854800997122913973013062278520161564044819455090235265873648615991315429558290450677756017062948136514408182484524512223730804722424989677352067796196471446379711288477724142524357494622638934218243240764322031834964369428976254047964659989070112462383690151242939813633233221171437569279294464205289913346816097501830151969809981740729444491136058944544455663962087842378318433037004492796256107358616339292542046382481232288516882021035531666430209730371293993186678058786007149498679803576870855269570064037746631936077155100570328625666211476887871477073681536228572946152195049747785354691892678936909190297976938669590544361044605227143448738264539834519854098606666004088072191292962166715963873643431086823134912584199458490821346706855186538786590738127007410623536397596883084121906164740087174875790581936805005555840942788772170137198604903421958809530641407031189342068596118652118507906328404010441504795368514063974797639581226486109703056100269328870166045816892759418274808882870722252580153691235461853611214249973350344606634661038725896363267769357963007962620793705682771770402362148021935593701909794567626712240306214792368350354176235397986662946163924711946632696295024261144026452051169046179974700154441262154027820955513407889256739973981096092357603402639133302502855207945884702921102594135995602322877402329263616565661270839336806008635449677172414196789376847204442430564636045257142912203179604555094948116758372392298195678790538751638925876252470343517291118112321582838175354611023686139623920993229859010067986479507579685213834661892264613236136914760487889146727799153695775231867325522807732371539720936637386632874761160920348134701291045152910434234101365671150205098204295115164578269601468494168923681868593018094423319250974665390720453684025809300782247508211960194859845760058549177144199400946092009008988395369044757828365614417339535538424559997088390636784924042075155355784987269030965672931791416678943088922866872902095579942882037179342432565763319476883986544574025762323147357170941388398363705161075324821895997683102684014957365522485178673055952703492452755719004604715809409222571605998106243283917609526940016291925134432792201133474857341037677741792371032885477069646533766410442861197521806081644895597141017262050268432925525034324991627557303774042616194708743849206173064239882853698944540348983458260917167612168129110642442459194516764074820935368306918469407146890317084290789357252709383072470117850150312211175125401622375251707932316931430694540927163370922820718554782935546719451746630572278048100441741858862182792609604716646237579468517528199277659719054754928051887665132348024935511913247956736944572342404302131338603300250569023815464256290449425141670228247292956675453292960819548163242401912740284970680978225972574108697724034823374116622592278125883596797261148717941138565129996892891987976010768459095638608704013525952881666711745242464181500138185107443113419513443848189001685767751312185451473255950720666222547745224702250270856589791975691629671424028568044066019635101808281060940924506739301286149754673058824344889940755407918641774253960072943896389766383757530984098762325908997619665757321080443023567322540099765750851994786867078598490406036922651691051016790868384838227291785342500895663678212302484920713816427542867461609681110771308185687600421863823250807293235623400128373406224047547943013388700699141985723116811828955813216059105036638459564641295687186713638327229027613466264463086863717931857923738696411707687807410457289590076037300135370891312924519469578909582006508514132259276668206740011394414142837017557247381334659508967385216014696714354557150676881883526455321352487085370571438977572509901263431760944721128066686106021072291499518371263723762879629302420784332207967379803389778313103801189394656231017036420951133974790758830475283378881617504729292786723338404605992635818956616674431114036409210622442607031073366587638558062009009471600588419962122668539760521246061151347990896747035240223526149124334221416619997830100288826626448507220085160624485554930654323412183080925484578152959323046866442228187701136956985683966123232256259267237817709699204709633834234916382846333545639771359719323684479547219631432224900152077550725727520662114548957256231154797711904351558601129700016807782129851622159680418423625128766760686507876721203521282700445635078950511507300330318827641965412839497187400841215144419613964402796849110014542631319223877445751212264839932308289561356054863424357011968473181692497301487852755979628519911931210291762868815937406104984861727073208173863237461535683371381022063200032792245738969108570119953376642470663216974221740506369267343700919474008341963681769061105967732956074918413486563866144638463670044482806550722708699866198696303114875322200910496129914842527539181883761472907874959149165146190805374635855041645069838133416967814791178835661277452005675599224924253996694152069883567410644409100340914466831912764472970845554673137722207606339138557978638720494003556948675152906052831048831917458829246428057426304549244924603978533362251951343290333037189740394319188674389396408219296827816943695979185490113968547727821248410147885737772048148423191445897657533296274015384340796282986152356510468169134379493840276932322924554255534502322809688269144996249348754541684900189018079242792476918133907225059462997323242745889108947037435933277988134639649397945784048183365569084518674009274612968053741046517288815164925493044012915722763613135975933923867223166637567851937228694168042680395671231463934936646444829662757142087519254212625920497374276451233055658528318736547452766998175000411715065131003324755530915269651025572355854318350241172984016791268425400604903390565047857383260644891581130841163125031026981193116533268211667874164589875539407043903233900168085631806524046643760759674254065372702884972905953175054805518485416899209468770828145134661081904266980388633030939786155994767744203115953909557362459289681012780202013489158343651339387030554491465371875200918933466111195219626122718624437042843398266176433758577258539524372566519785545367662188632224375399380306849212247686532634734787267730895856877072578972095760618546736480901238545923732728498915701181900193098915909000551349751100439230143523467101108639908063992232773336927198501854772726981416318048353900037919145559873767599354201171648045716909671825128033281838264817883789113333178073426009007863212146393242193883027989959143314002496655837149303560251295435993855758904056403390004389615238614672564850824280979094125746080728187362251706528803639557339656323288686594113650967480197613689383031735395728034409958608183280585865042838912745274425474561673044083070849684265496505284400844265324391952508380448889610188370194428778997072808983747134777439624711357808060697310754508638054428983873820157988515194476213117012068172909831023674732373290713212906775980027519548875726974266871368858950770775757347593452056922535161249778293482896214699105938655309215453839577911953463629346569404279734933274629027116416584110627729079840290237448276966854170563556732187248200890106417856878322743070029246308279910363405021709492121933148511106455239713641549658678834846716919935870827569578550735913003226680165376919671751366695838989480331983739320256605672158341968767136979826425604602788798095372423357897873503169180140506042810579894344334678569373701464674799560103048064136259829272356525644428663944589738007122047506704463346989099673439098759914710670457298564126667315280389393546797737588903191497473219455193175544691407057386702253175972380490221469123207724086445668916458135830024791927188792426624143290276011436835893663146287628690355639459773119616411634076638604780841849361382956584982884569954919935166888970392940554989463398253168864105786029405243987416395748135808744113841975189822066303152214355075950408384577234847601986888737205715486919865731148466984714760244680193241475968888337259704219240580034953576417898271084977776292999689306092189263606026195526844771360287810342324851536124622088135296261270418671956322599198865171755997698289540504814324820958449434107884329310336563076188113086352693416122248311265722042766733923007111027812605053573990913167286437637699904930283591357611479856423402788585255561342062672915547905689101605140960875496142449594185197908147983739217504198072114623580678471552956124000737203864917099719826258573425612101450969823048329286129848284263971903247713437865752524462426516732175424327553803232271674995460335949842014430367579266976398954314137882636958254256168562572892479570296423805777632745925657124987843428696678879469774229557576989045147970006833009770132840143361326071388640874708802764902441770348422337666402437841592352652661656638033002824160719148455909258249056237233410383188114171189292011442009762962240371672327975924283273783195048255046188455695767438460285304369984445091186856263656516193828387472399173087699222786352648046945109198888302226417940035395480977427122218526548980384379859978564036208271881626936280622104260035019563426524096836447892947060083339529799521704036756382797067504937151414999127588430969404002217171402660506357186539575489238550225831975351366574588179623769103711336301144754130401327519366755209703166848303038837722441325804990834906171224197120358497153787151078359374932854518872738211883747636432827304546476057333884298094852513810792123657946949186197836442392761258223841235454011655095149159367371527891697440047901784799621307015679689325128870387235813720854855959935121831028551897567815201171296060355109386809946047416167228146737009096445706848977827115104094883031380373758878811527886700061964488172053214964913910004194508145004872136273129240717930739211072482108361752725660034709216097634516767784862994819430898868507990988377269720960423345228002969294559786877842989149644022366417995703968012565764191052613005324541845502993833170275470254584812592554560633061932138312629748974740194277284997431213061529123590129410448984203073905758963715221834221500058349086448986952165615317144991754721988193686750129172350040438568418091314027292072785133309658811101665558073132874270009608660460936282105264994082248237421435283884884852632705892792224317578507564069466291607884756315186296772002312790422778226786911748800738310939750533009589799447294042561284635172071806182564958887998671999467166477043258294681855226467897847577755213504085339515912610840306574304384112001635816408031616441467332425227487323337985278989028859929891608250854662585072047216539384977375167973850911383568444806457162851766408599736748597202599221013379603419724629327621720692405866414637077260012771695930805599487091059651041429416006481829483361264152128244352139954044561135956512674590372482077707039401997624237563827333135461140857693886938573673085322760185722499228001631867375584186354269109393258357186873003007420499082235019773934415624432986253293376282468496034339002844186921171963452308529078040367378584861428562397691874745589263830347609597199836908953870037334037707183541619437732724558207720646365321272753988555405292938135210286795354174338117908051191771574622138427034825022409737382269880075089887942511697439850231138716301754263987493202069119254208353645751836742468234208728802839483151879377017714431496640152123604873110165892919026962366993456059262040424609069708103152537366581319160401716950706605326364515458314283687944172911723804388662754898971939807360071039312527290981606010068336421204918784322244432714593896785425955309127306286602028273636303012939146779928513725689805671195482605012253816237222926397977734393840752751558923731715190866328187211557028269973651434801930599371449920940375948118438865684037143824510611364041301805972272859803798426093323726280826847055546072659403372714342315034342026127968002708352547359073782228930976822913344602894441848553306811057234759832257786845759912456708971053165676517782155382880345249743431689352550410334867487587772718508657271148005055732175977189680612554309553818572913302982844037924433079065338266615915079394540705160374255427190915335892986337810494200492361134589302448450565449179614534482188239568551661197214656506871574035355075017333085517668027349730068676623350940866018056462525954625541464854027448114009711016500992822289574894921131829384438010690766031745306105576784080540039315904562165016414236732236616766723708265890932466234681843378179086978685441031491346923353334705525164894489884817392135937671794834626026315294282432180872223049009612701886929246723051932447596507225433414067880316116583845705534433483882253894079589624588634041087920919453784571133681580227687544388970781890707053432746046084130249634086776551236646794272872280919618171599616325097351697298717128087982787844991619539520391001840396377333749680069323333086508306501494854414423075822303068607758971805962939144568499969283615811722024848827143221002353883265578664842199937975415865624243693868017291703552427953441936949436352558052654543594694625503106627201011741965839492119550696173856596500301100715552286756350885523047864421270766189278750810642421701505969460705977119728949698881976385250738181557233222251944177463072671241862235950607877601607983836095377277149946779886356248933997100504969681976141227690517476268629250048660631862853668415532999588150087163700015466564208909747964775981599966730304637466118318138449814287975636681631524598858122991983334252456350324962369802439113904647260693932072786233608009856363688414931104590403968327004273154344576858578281136379693055037844615744950223925191037616567502238233299753882193798433331058290948970732972516491170273626312589555719917049721306381863864830044282754077285801171561354024223999135192362618848204919575443839781323251148885355669986804793745332415956051287185917944533064362213877195850605101623612857615973584437472514183522350555906400810835497281671837493065642938094448911259129681125288871392654096744972122623851224983026324016669653226126370116843496649884390879065826370054416885389125900895991747550208225436640278073220285925914649901911635320653816931577180111049832527355150675339808110868274043308973146529001608177064794924393735286930031093130731129551129565500362525256183250771517478341210930208561101306827231952867042692542425005647062877244249372606219238903003938035122749085879047732397762368866523671243972261421978344553661901176812375427596996329200626373277625417061538637433123103027870922104511591149798155280452466998358283021434777346781903855569939626627913667680935090394924003213991803809673055817356853200392359079161968594654613115272931834574019308435032538210513803498565703349327098254972834865868190258292888322370360251985703794641215673042880693956851191874798980065914858648748677962222533547570718914798711222809207499088678233378416358294495606391888447388595087063807437134365563675152329915378277727993113007680610643134696428854002717336023296001966689138001072920743026825897029986653118993755524111208981578808372688239514866826624794259838904517200357144499969553301431441239705003368342305898777099527306986101917167216022818009276333123215370102650609251555104108061913110355372742061297062922685866350855175886813531225440891344134758274422501695204326323625171078173426086571258338400944219657593962534923233404345915001926027660272035620852540454367908962573623503833905907019333004960880380749944001834152096417414750851201998830576571551708294716917261110631307242385014148064426863047385702162760860426384563701557136951989442091316831718315422393117651680610927965232435807952228829707882913409012544747089492969820252874640254615285233220194511576087500562941060476189347739250647084276955357658687914143295800828562214221590329894959707888788175081038474612399722821754858109191324125909898914982281262016032156926222956457628027796078184941667923121496018819655357560448476322449889891377648781767149790100171961623684340401215139855091060037977468311625711811382045899867433325839878196990724251226387032704519269729741734226052635989085152598843853024144350353444577719392874114841061154436036211746514417704654212539266406022099079075868997753957254172636548740637995619840734667156432788870886705845290380160090554165214350204958585564272734062030812724783468027139111987506515929847823679470467412037726146722534368331145623734281990300812686816442597548772926308360963080527246358301200394254157681922451433371270326096701053346930418209112896025646077709782519375718517586961938548175845305096267766325556237367182009565530379849427461051230842817530520581159888471674517548224932110409685262608851812354158720911354494564806027264226698894132454991858456672735035177604041931834842182223079216104686577168576350189989556524456221038700541296652552737539931701781342028347866980598011431225797900512560584029716894328340835417715736310274061210206336682983613951765152571959077487113583220434184099533701878131816820609829170896932355587090461818676145793308656638919190444878682025938267787558127886254221443054802051506723748044788136223163516955511237716006886583412666641987233791127830993219851216860288038907028352027494878314673494397320626878215068314968413513895818603825511146515437923424023227377895799100463151508424135295315715024934661679884470464529274082214265495325116686921633189400798870801019998064900472116178704091702456423228775965984360601766234911754514707349767736808827192316330634743384890124642548581668334932321507712925086444822301565243491857891640719619214187321577107399965039781851646088047891003298368524487513701949627626791206995167918685083938942451825798485849464531193670748347254344453448074047723751153159267296676523578231334808947836203752727542968026726303409528252490718978772410405341990183254100211629085936712678740855438876023194453817353552963167975249855086968317780720464087884786837654876563458074722499730688384501150448275380308256779566821114705592514944737353848802828843429069210408468152316084335724426016770061974523710345054410946209467186638508541796466160557643999863747601100485893271905128915510615394735333365317628262893224728657883418536030204586870708488279770620489990028572429331324320370135892950826316668063389892585705978227646464137836307017716807279758233157767648166364240429821986480946078723638898337959500431428142404974635992426900501927048291085405995947203853380182092172729464704257915600516125439913124370645103317949735826363458863022069798722387524276343156188239749742668543566756871248113698735561727308831473888775634796708903165644583014293493431178644820332549743863128680624244300361297712017669529285286983344934850562172602756059534914767873549707513897681688685313098104733303820928628373227015493371049405247435618478082972435658859912082833596309590863995671040852372255230486546123635014380024043848219794063606424646577045674375428770669164972002888538973575622645658744165619006232312540399099908858094701758178164559848136961047983525577814088654300443911897117761078702216383556023831117268426327319129060509648707523609758849512892657581853863722814752759375160962459360276303413861321053481724313811907386554394900739013944530451062587965728820136477204749892507829237731099053687785004425726018873545639713471659618972133766353638772848270665532803384046567933912179823069764184558558833162019318781891164686199575478900602305860147179704058297767069915025457363047488884243927560076272356327101681548491228666701712751528386797831691725556997306965520586009361557730375421056641771700866280282021944502174362701175471532282588125827578752554760519952468881197656150022480247845644280778751248642940121943085153338591221617870477412024396478356786622034691800355745245232782385176529504209490481547657706895651390321958827250350941468767408199671375339280368062339514692708801817712597965653153677399575428569393605448176765988141690108865431698673144653579960310471193972590041035864726278665802024989636438080525697168837832643069749859616052284599968868754449148238138042182960233462146749179702006611910452630463954781957205787460227267327091791219158094398213035767063413506988052219462062327894505164830905955966556557865728471318471437965736513219575943867329985992995444950501649644105236445697273491374286609899615877483879278855511412963485960620808473847947904969738177488508659011107528724860997262752086110673999188164204797497993111194782132867208248405503726948707120990565126214664050238899484458163275810143322818376627176204661693109468013721459742089904031807478328378080384526125135098810517661813540340139214369346367112316404626660728098771761831689949166638409052789986036926445134266762241573226999949074969324154567712228165273378755492783057323629659859288913356186946031679899232668324678087322605524097065185631983860697197845782312159966860029176335783951183542516749303430317125389463214186040660125369051044346220041438109330822979811280247694680659142865283644357154842503586629158507922174203815838175780363956439881009144773603343051419502890630187488671651149225489494580263288022885619707824181903240450596510089262174133856370418578940213086774452899264429418564844396111263156026615845252371592040648738672021558081882715169030565467602164381486604064754186227513021826649171608256664173201166062901137346989420434184981580697701107910978387458267557968816968899532508888496464748922616750035090812545034319078062705840206818419900487136753756324742849187714560658747783849503618352258924373816005374560669281299941463319381357938132210850234280261052932378919001449437168679592383052982577233982569165725340301469186538561335656182404378193112749862292657714669032732274802972261389982916263752046099060406363567574750153816467397700783251187746578693990667253368130423709084983395851725591971912972309011157838817112538423955092163368266039433726802282943261044634160179215350668614249594782250606327370401343957099373522681886586887441561415642486152664983897744115495839084424614617633670943267889592824834490835651833092800854517404518407618430647168077372810529202256979667330069204235665932156739980992712770669471491116099865650904525403148352825340654195039047113871435385667964935869815368841292054381465326226991388670163033502378911504943286204010470029293444242088320073905034050856306892215257650211582719617894977504942934224674172416751496877989725546756696466403298428430653492317734681511854562434712194835131775679870742311256161837102061321174664076684918950424207165975456230024987780979559068285254014833098727472093574597940170013887017062201909898296013358320566039361722116411479365415581965233907096496781792225582746948934533955335602281052239010430680153687758700598685350521134659910426829134694560996923889792848100756921186086044403063428432373755666295086752236674294716159042009515953207694337063984933283225673989884830400278063325365277708873964740218393704577434099174272317592482418456918754018819683164027395485908954048051596595599710434756902510554953800852443128998898057426742457469580277442727778873128073263271108516952353347729263537884810456051404124765815586507999312217112113372593908726464975062681117441232768526938380226708382306012043416396847402668066153082937954438463647324089856410918343144203914320513216211637909148417998947672162806004608063532430019727911409669357699556198950917209606407329826862453209147070992833105384956929263472799675262041471931478296444401945086206585243739800723724503339264087727070992674060793748296889438984037735591819977216925005031877217436749233523209228137921520476987631061044260705946503732085625874736614300543044812944693473368530599462034433581346702490997499783156578069987911732519567135662026968653461506299444264805659207912624325070208111729722315132960210669800223616142358352150350584790673204391472768684097951683842156632276725650316860215298420601286958430546531438818240199239259984293975188533009606964356799010272898327399792340012967216363866878260190569240883761152920672924194660016557331884302645309826811074058843405250746084705431789944454973307391395973746403611713459011998079349797267191991464038170860875120507610250067240679607966054203496219115445230835677515786652344353017414574607541341160587069908358125076002279971002141115433455573073546729853439703736040526905744635481108628151406094453092716819706098513223048858923177304829800706279530773201385935578596213210735093348861392830806976401265407418269334338147161920928529380612265550097997138943366520939937180155571286241904277023461490036881602334302633826771555807113638201449216012989338343679692374003442950800987324393008441424334445859553064204991463455118379470804447869944237480585751317807375493309336730815399710693801682565894115812044474289044699280606713984712956231895533228582123752755419174332098727112726780351795503502851234229064404143124255792632450183828341456933220041146291250742623652851556296884359402513136667986454192413765411131252724757837317829119730033837178654926833426361409088421248019668298191606645685022456804361284919031387859462736047375107691232684988160371212810414765628919479119696735105373678494705370069857129819665883172608218263189436578122773657623689334109979665883748236826133228021916630901599597688175390671645085737217205495018705964897203015993828410685997502719640584098916581175845347297500218270920122350015425444997914532337672580960930004895920037055861311026776855436487204424922422352145897230131362794510927966844388238665927370321440568500452486383397298968649721065442982353069795947072532582409452191438292091615926251143766284165352795740706144385003167926090001679619232496887459862178106627665702735671977313286285110703994205461844248614656383566160497862090779015704555033478411909070280597756322641467247131615577806300454419076689534318177647801485591921918611458987607578968694270499317009229529158709738643161369457363366721101877922664226231623164929267203129897425661663132502483061031583521024121059146580174041215258739245686897586866724616199937214183729942687943314829714090850820977691282305059944618998565229269015243672185573210680411196719408466798073578934064504270386423095591574066258849130223663448484892832365110514451832879071305878538985666362915480679725793452149335549227046527035949214655620299564893007773196355261937584752588090601898644555279023650774213784031992246701307650507594282307192385718036776091027361158967585974063569683396491515954481643180826648766162979797038297803198276772008402793540250421812775690977871700477677243635875445512853932768285006878369374128370664456889235788876929726657950381759136375364300549048519091372235592639544919566505664829124790182610002635247637991992122043677298570496832142013644960008171541571347614395392240530111573097910931249659383310848436338481815590102994007759870970234466823649190728033730695683559209465404204691864481301118561005972320506015628782445912092985046850867589768827709074876530928588048585011199667895024679184650795016900670927136090997849065292923658552463911641475332531308330101643103741563548572688211829602571919083454687870064530761989474429914064125951053711314726683009439714147047098590615913660512553956616091546488759465275580537872006881443611378684887681576976418971988842611658609583840235326523879064639007045071031815618675771519367914835413374258617181307935958457332825999039007315757721461355562787600441488711849819612064422460544207584905428392836633486296964107807750200370920858659578653184724290005893683635483109073881982643631909139759227425386483087743385003110919017054275825289343813743076047911638752365078572803289902595424282661586995823042273563911437783291857214782104238191252284663826088486329176792652432125322573940736633822232398807553398988417088497353719528260395287273121342418192997709648048570325143080125002654453050095073434583490988835923685790934711665346564472178303250426506451036579438995416385927734335946053719405195422676416993853508468448238456608946615195489536879189792800639849105195733444530913383466344844936999836233516825140102865368288011376352959882747364007842865798608831272479445318593592319921936380463335474123029158258374168689613341140315685997082323215011707363597003363218911235845289571027904030870795232026196949128700668740504556449022324552392580434167205874072621511563373622260772035723400370091095515582474277069010354001638726243291922348614660243267933861978175197452883630545872552085187209118238860881240665433559399777387225706542434875333700025277642782101231764512807917772414895389767015700563937445965317570884216285938764596024082703149060013935308987174325278193728058100403756242934024199029552731333459680702178087265919670623657896048686071830880486289293566219523499726040725014186550793924555588155176625946768064449971465810981451712610391503952201953342803453905049291688328089581153759283457733164189493191178509326596325639033436930014162360838850435842239733841845398646502051270851385253264373642742211705276594851818776400066190757320645501485997648539079984474155854521737129224005116550433229961802211213113134185945500756277426786850237825887396555622592702843668809312948648439905286080393556260283209270035256484361880602607794668752257858255215436707115342044696524199802558431488843276700632828898646388479112545881361251290012939286520234247973651327815207664444474373007738253499902722962792569374766514238321309913059244872311163300656818754708039444451179078952723393935192596666391211255455190463685491496473413117558718053502745592726708966319342691786528622436688890906083788000890242957366975848336688086871459956507873442466384513054597205424576741772762507189124877014798653159157236423667111213322576600209628337938764985026527816798573265168558646572454866436241475633840145052320451849774416194293570575798841189694648126986459963522830478420270462079212267072651054490612248552434754628500371089178799717171432457872151073670969751899146888703213327262147669904185503514200871337594519525838859576262043748169926105153292507073065194002671560187264490393471249480603947526353471120957942243664972640137386195124554458461294535151342085215075427911228475271108136278361989204730775493623936103692997434037042324872011859450180061533970429925051384337447753450823914046903440361418547906937240726326365017418737506267271589537662418006614710608246143465172038488682806478719317786619130012629534206837517173452751869546403128527795537992183756510593069859276234057483386730648374514241018810763234166039919809152591888635413369736427222107386535371181377751447105972458812753796942443698933987622395865744659430536008284624425243870813094492260189456707961219599564692531093198850242511510745748519827299089971082520692356045853133176812135064376709124851319064668250630158789824312273350546397244500968823740888182228516985658498712392136927324007725492235000958935983561551860983087940103135343470428622969817023354665124049638425252762380484437182814605933225757182243393934088220920600844773823283768533181174747232980588011928500209856613731996079088288927786774423667624677787461090712033385316868434958761094766068890166542265457270138692918302963767887697824258231761246665047805580508767908132400222318209021414149140820603449052807004169596989921667767319603147495560173805095013398777173049171733057152008207691226161304795591421460301950968145196734249175130900940307360043750153738188449855469178077331503613755819198267484618267364026262129094936155642049490683121908278052683550816484110786493353179618320979546276645273971045034331263878520210988107593638826839123943143164972728316716858883091116447188749258174530919571353426575339439615214129146681747184244910688956655650437142503521495099055924383149932351742165268041024717854981954527692738495444349105784183961902839802814435551617612738507236207099498346553645512001962458142244857137438062667244659038192701811744713112473595278045442478885113310491917849050568316577055025273237966488846286234012273382854337384697942088531836472745762997122818000509643800562610641404335210418925656235289233217220458107015239798084599091554673223606301144052656840694916412206407464252134135612216550596906799253519776250789009801728364192039591929683520234750420781737993908273136071136077784604139768369898853989283768833797654932236511656103242002874780787766815201695526769987467929115247886862747137115416818797006952951969030285717476653651212758543902993448969611967358026127525088554416847347230967006398565561947044956684683214730974074697176678943857541193696105520286374523423091860803024222632405063748941383203879951021354479108272969070428237270359523217634147393980733885787441037232570479097645414874529254466656108234860303499962029089276499921711691900109716609667392418057031879764569735957744464172547377592639793643892103031469967855218585054631670969334962693704383772328480890551773533426871035748962495787871725916445723876469263990437386715957344984755644849744859252241840936796787953905285905755574954737928515314995143486719994267793684950921172685575726210761445284427047149602471668008091482554022471586823350127227581532672262755193963454690350606280683760752394632988385052619247417467581971794913964479849326694750523753434873231849567515828633221595069693747316854865534974810859858904955507640375369370012968082943497483085402361888231834537353502553347270449202993237203900749154261330301294406059064386027193803421155125399948906700803012893380223057841631801805296418751936373893171482091779124052228107407168679362129798900010604777005442851036730944797595717240381096902119187308254471408535030381742512434681323598113221962790922793608928387916217686222005265514895488022386269442335432762821341067189742988425510415038350047395544218189924712032516553160900664313243052187656852503091658589186871895780422974631579830041754529769078783062411084054178933973585726666552180609540933546688089977955194493912147552969733872145878447295872997406214075842676770950343460303689703338364744825185837449926798924479382919572913735859945304264748061084106187215539920391745555037057468457133918415108133028908255637165648926857650654273387862926743043239058628354282344719763108628520362126101655617179082083772631649298509313395911739354565275598683112882979328084461644389124353652415433987366865948798980511634530235094991708065591724641494586965248412320500508122061178819311702849506948013005797950721923278488350788603657209419568078555854876117314114339181128044395907643632476551261749456542620714634290925616252159000124911795482098215293616577422561284510721016510377211878746454814372258732234895949874160988477831524695654669003353829387093104642845350586240840397969780303431513344710170593953287084714167134814801860990509494339158270240392365164805137248314524549043342129186952811083653836110771169424164461682082364512363069165863494930704177806265050615796491374195156424900346858412102702693252708680965718009698427174234581698656851486806653626911657426673854275168414658874910961691090683458820282935388978346137934729829112020921980596035167916255712014750140859253765141700271331883681894760187179702823583860108313747290027524166733533270428026769463565638918966730356628456959180745202478920622277006163740125441874830158455055571161470237586020796763722903875307475898188179684910007740432459525046301312069425180427144262269375526198632852847971405786998589438140534108891463557751831820794904565343261386501748352421599789468989088614768352000183568040465005051257228441072125797820841877916620845585828630775088350004176550685377182640938480438713130834152249366781907406042894494539565127397536947850477473298301850937816154968728557324415326717605637838410773195110765761269571016695367523560638917268483203428591378112258104970895777254399886202504525412007636274920789856902309126715649679827253264640291576681654889858070260917435311680341299126151418943735233957227596217264415331459235784656189210459421913681792486055087463202113020600398929726278279765955701109779121084148223559705545292159793317269917777762873239742125437777410370558836560326702376562464600279440267772167343911028624419930689415430831758949049875035460127767165742844756054140103246709833585546866433062568251582458710655275656298313648375596720704619544247098722424935676821848100484693741479548842328805142101856339254225934778025999724438514185374988110809447149745754166742227046181452956619291836905669511122076579754787855797214946651711175028582334691964625853747125905984373372386074459902788744233225572928815807528814231135326369387042620751249401175625143720079114095059123946376530272734966210861708738928699509249994862193057577861141078206949227985041408640330342647835647642541684307336106701730744799497099566166125062694040871648731093665852938538581281311350901951353742970220114124462934253648529686750828740965889685521601488476045041878215117547355676790134417617780719642800328979514662531143596295653669354306755044975645080600185993340172204844484881348656233343635452286079624203943750096259747009831266517557969115545635877460912889946218103634158607298142359743947566359753751514973670929250890100359915064012270585023851022121144490400496670104758835143450390998206546881146218443438458112467727682068687879169624395670556757907067056255442526096406249054202055975255876630765902012493387503227005900846350022841197835044829277742843524048856018700202322510627748844911765551484406523181971849889143099357025563340379476325667800419318277179445417741204194829893351238442748290489848471537270462044425545027063875342656921013394156396780498058763678642866750305097339196987845868100296139724451912535994511624318240289788082473167834779410266619703404431993193998150620026620173215259069437012096458020148071719872946431377442102914777345199758633619537965555832045418087324959596094147439696635413950307379181185267654199149587246897860542864718339361433362936480804755550162996800044895317032376765122264811623518812987123559900600694466253658371020384416453604661424310477606325341623661656811842721372281654093546238706911737337594098770155923438768511895992747467505145823155793290092127721707802492707784597547205247959401081711271433987220125178565937656540575471641391172146400346157373543549370791408860422577021470242735045656098210988393773024505256092689156443674458215388145958921842242244938672261434996419868962180182105941472618248924203309887366162651103749219548673490954867621932771007962727878624982510141450300769433998247277421086037442226525560451979704389229533626425089411718405904394771258187739182625284332023035356444205732436806412497347146396974206266904076373525073021534454119880718698188435776600177957424128934646643131156780167862480432184466848870689783981368231057596344340421040391347284320386896518338577039749914634113471439501640639703540603983857381928965863134622612334255114233539869834096387134139721928961880410184317116081169663271396389967792209808111983635210842614598386416024734505249044073988325375760507613264516431333821941590500219499214013594322137837281084525738239748460966788536686328207798923563251653913947845495647339139933303006136825845328488932348043395550907501168100328191873449980070061817361636619783990758249337934919448484264090493540038118458140173952167247428355307034322538432358536389048644387180430072839804827719377700561550132983752764229507163626662937118721187691386936454574251955063348550201940950609555423529330833492774108180457177796142502323486149679879846897305816618276571402074869041563754492682999292238726090788402950996099578881378296006392166153013841210702144064601012365284620482665163761663393777594363717117838249371086580322560755458619248370474224352608012682028007136473638011663978577028803792540341324103684975979355130187339454093087102363415699149851805464820285332723264068717392925402653675680487111352660843293070299294190844267853776387120043638879092115500355842400376366346263338304332728977128046556977503393763851721430460569313203440620883195202883763930017542620722085530943950067762874613767193782411231856591875716247371741671516959537197659892127716051971725450144336569098542150117232443283980462497532625878838319943451756348779475444636631371215839139256775036620315812457508126247255709380636010233035772371520895297457963691797925786172311921140953571192241295220784752027126863336095523059306442537690344997987118057013460377127773171847213996481689014498040070097831793095776976513898028309894977484678782209399652481200897552230308001832783713008919556793701160064883331046723755025219734662060356667915614404090836275687355112557206187006081627316508681273627546470069404194507416812523204367375179258287415296623927387556543833640966498835041979667151663653503666567356065562327443992182448522528524603341579891366980220843267727009231745886956402019150113283795436935816703433322019426652947665866585859406026532992956760171290018382521989346726034676218424428500048308535309574569866383969646776681390953749421855613196161799448748054061948634689309093303612782772839638877765129934965517076719304556991329522824841022753519257682717420201138634562462400153683847677678620756192061865437849122295773435114053756778580050953633090997463316188209550035607949865464445234774534964897654201714725133219348225923432503794092613808527949237788124106705090224955996317234168674326605095092693496392726605816383254281949313239329357871480414765190928428804260020725159790722767496034369844355206151173212849177991851304692272870656649307380053802724995064041663805618563282998402370835939766799514039117668757504994363769876251161572397423932580506115440576543061103919745122880517936830376180176240255041945729387139097956892333009563195765310442346679506701653491283802720440112729252963961426871312312495835267861766241899104106287043361146018507921997921399500000739571884739799757281800642504508685613692763075488975449270127749609847788316100059079467198629010673284668220995416093219789230884953032586917934187717420565246581500782060530915188663599598984175898967939861508530279027833825081107011804305774586035632494957115979796706157991946685307179993064103909483719392175743379749612926728932599054700723783061421504913324487132032820655714033628411766891377545843776155029211585830725212617901373093259921294900955310746645207467188368989866945486436133818797559358688951902992545359147669907728199881875963431175058309999744959727870234454361146774314235370610737007108088722741034931127645776225631719083214176309659268942747789214680123927095012134013023347111910580903212583967018058676185664876368460626488843410070476240347969152527230861658857678336231053371716429016582552698190966045536800183724179830662618273825340011649846135256813587300938073911239727242933738247077638868226737667206208910681822831660531118130313493105892952592737899641821769766239075070154660818017144803340405844467773043850264668905311866323233353376176225082374219136037515151316387086008293902128327222543061901651396445127544522140842392296863165296535111707884313997266139851265421919741749444841224214063398406704910781260561510114357294388681691020576047580244404902412097457195453873928583953895928750951990197085358774079439874569906287270844068601944600569458365877198333063874173060310970725961731283898786359121110704887314265020201729884221190776875814596709597019216722327333558012370061567004283916604136448716507123956716354513458399539118723230744463913137003768625684152472551335184141317063378979742418400854082069420395615073994165329145724304523092964129134524156087910489007577429966105036529877662869755110680922711575526087868025952839168820423349920358974987435017233738125469087454802695653700399754433792354513284793202533018648621443996497782458330109478766678808787804590660168863618505816163746634935205794839196734932400841785853474326159043364650274352958642170752693111388997979917893259732099249444906574146103267033305905440227067005510708347736939661768415246359464352893963278650714617740390287518156664232353176682563792255651269366454358601823689758485971988901887188040330894374762640731020841310263796821521593927531794248411411254735643704187235915150041527801735784768190676369414478585415043445489972999220152766780542085856222124320828366615600932309608712385276112301470911664981032876292740219348512840505020265641929717771483205846074878679562139267160932160981890377405906651453938306295333270418139921227697415891420883651771424329691572647006074246803960065193892907160224877696208933150088246836001756967943679851727457061010086714404196217810194218495971284469243426358032157513112878061588224680813334745137299141543346378797029995543116094744133837467119154059404104249666866986605228996539284376945211638442678735667763319229236211124662969923198080249091772504536902128483370888233870095416998821414931592790282248756050032670501577613215990613487844746890992085210613855067216132672933755253647742322390839466872951172286989735907273095489043978007319823063751960737414153580958159629745665442156586330575004081481725232834528035978313115535513315309007959732579691486619604070974311417644723143122398403045378461697596719203215396003326327264667292537303075524820919059196669965300911499268740803339450798127434049757239308971924963680061105204471424423024135335897058765420698550337205005708885736215202355115490580971306264104951239317826885899177862282328752933407874591938074817279583792980616113849833316947736885675147633268701512511484739609379257438185165618085460433415083836828004923196283112521797346032028967448229190151692649288237398759650396005578041444480229830493534067024168075745367100131112504285743593454990300663264761567341836334016409656620050098423998893245058211338642727205445089542738438698591061327020389258098159830919373593741491789718547165765763891036254245012664588195090402698646260106182785865656210374497627941657609463380930388305261963814310986762306444528147329124303182144150267047057156764130334219905692388662650031817798398161515622225956140817766954240228449661838535219655496117793463217759143875350418931545378751222988361132211083389272222103825482661469814172925379375064983566539943935925443260631388083602673726887097584135860459211203776975064364417863849389614996965480948580738919953109618766498360215210805858811761067754051764155352057861592774482364730189251189474356280838486860448292637272777596113366863784789876464614533942224348927033711873047454467629401877305238693080869591481162491383188386615726712426313989974492541716274832642035332351883872958169856957205190649394695096542032312856438462374997792555049341227728342191992544181977170019543302611514644277067597759884804664913278507012970915657812657671369542808555607000006678636909701547654308922276421499906919542536935991683595999562904384305698558097875146286448129564478069669320050452738688513300799447135785452396897755376299865666799985838395469619696316407274791384918710158824112713192213701044047314265266809921492602935647663542943953132912687949398128049197229615267439791859819639738606349307604029016257423415918443137852962679684097171063702537397172827486245817584004057024805118307113560987184240070405432361574940522996124060455876744086565407130404653818520309919611958869978896960534242185700467712157743218487800626864931266838839371142899861508402252444082274579794971182968718312759045491022774073021048709169200824426356616220659265022561262762280140030692511080333298382961581645723969779407486879277132738693957798258969320073423325824852612648553385594847949668448447019011287454011788206125870771068751760993264578890911317704286296538510876445053810319347431856048712794195203097986787759548699244186051881503877713841193830630895113091445596605709760465590937919922974086088588052191931118836963550317546124514031734745003063625025451117999087394488414214641741579247603421224489592640538208111574195692029960762131837662544719116800883089003623043815398799582511790715149303950024090789086891977772926249316853188291783053607589889999298232589835534339248170919298581404720004324745415546828556904475650319713937231645101456788758110114967958683122305251681082798281845415243425689640541868751042656066835024567726449997265640686854151782306039345773645055715551245762425297409968577840424652361799085991324778499449990569192328177908972431594322706846719538678709540781112868333856732421094604891347508656299877999289758917970761302317743758391893036666222917095196051652279729437232494206859525005087444023712393901460940663481928877498293403371774529352581035786767141210095687429931966716480600310715171968370765716127347870338759049539253105571408935296788538263005550080235620769169976089659186801949119899141977079770747289315026447120671049558604731196080123615166542157324542827339921110101406260678227214036181783236075535550504237986548217349440914617444142281748830443511287349007696303053763611242237461231164818821932641339697085165129510230254462015108014922840717485289175123316667507766210990023806197003825783657883979667383068776031539683187867210582547820865600824912627355326504891407745016739407701499996772611034215852554609642122684538575599009680308274595347515423693025355740166963320749997069541016686795515994105226763136912397087210558891483688708263519631390622592331769466212004284680002232337482297209826666234013293009878108466340356823671891619420273226439842112511764807369085993821565214640807138657112955862497628528077360668165541233820785538610407755523829241573968723849895208326345423402489224436311732134129280423868373855483361789445399006571290577471143530287242914065545343244143787282265356547889679082339729872760505226738865106358609599543461332892602695546704049496623096406052651590847262575738268299862728328655945483652988453217789352068165106936964611987412560650077577972770201348998448206375922106975950277520050568710243760131457393836033417752051634196463756873884501287925757501224698906267733456456478185788631856013180384277005746306639879153785471163424628614946916413010249029743095080029968931723070856030808125213177841683134191368808127274942305231981794097437088389068412939720999235240047905499805657535792387208823284632781018962716393812162400009889968540855469378611858637378780194995620251503000380730423899534739326027399816437620558081828219519070036183043474843450357704398349243937657260667807141682793901578497569328616365778317101773802020100750822953287077947851377928012376437512018104516436774218904151686311593011099532429075279092385347383069139485823528757735775242219425561144321846557261924104570743094429149426782004590242746327218418204924595990070985146448397891031140273501921656900544279376717961551565600329331701825612177876959033097364723365476413856960136808376303482438031144780691038510332043693585523480878194048742517005765263688333168234513762003367691653538527170239738179726490166748673212094962976500046626344188147862063030923663881228960009637661103151834699067942746118516005119363385574548968855692085487725728742744070978641178039548081287954853512172752988921367744807066529675701862513369777793352516466050655992048130469216745884331437313294696819180058062554387135606521869767500905542632239117300169736921808750039171546285531499186692102575800691494513342477905430316184868959406298997120798817088038799828490337178836270779100434231533094496891642663119925587976361669907510059890321292229120037819056337411646753888692023495490921740724216238268679805889693099524466844326275834693312343923201745855094562805285245687870291809194118943135594293008739716446310286937610845354034219125508795578916250358560819116300940068632956360602023525394290901576628471679079860627443530159727337600241008880048159821814048451089260297527433810525780726136304527994308012995572320304568875204575852746829432405634173525257580966633769043950156326071701762517637452584974701029797144282166454580651439570451852045378648931265091865075192127189022220157999366959541519957498358165950365862659267131882715314370237288309115926033460549160191219241269501835756761119623678538431844779208724845145922080891384209782474776889262806208080585629672615875572950396093536179029520069362418203214040974634803646562430449191347695875195156083125341489761453531497519289094091963535017537579453301012246778847507042956649509431504404340420147137978268176123315317325228756665737670419586113914980246295200466166139357655492061946412583305092068983916692148809266492287308765093951566889446728711851077638475045114500405415513468811814914857707095651251710911900212786128089830193991462921082180428098419707013349946139510467219240132996434178682131520594382626667655649109951800861113026513544214055590792499721584423863876349392289951208216801110565937851617540463495523398118194151289770031775580812251752711750565811213974150690374392889633232166335275967759648314556468722079309126729149087993730956026986939929313906245451291073661120292471636209402295854507932517783458194551489054264004046527292041784355971374132463045472737262317209141088022632275880603196122618517942293197415023065791630742336901980895620023887464137974342503087354934622939752770444489158937568770212978390858249392268778341898198537496850451463582551782473555554923902210023659160165581072813946294087745202003451028992255096926806623611795165564176075053645565072512228677291749478658616518141431168771249366395392541880317120667292232270609447057788939465163094713395688756679188941434350216393854193971575232206187362106923559797113616176922595689895274512674187292082414626923644496898755681727715252759179228660303866474934930011505024713892398326250927981968372670977760436961832619290001003724066653190230652579355296293807350647321471151184327206020810147522189264775610025444263653371502640021793841651018591556238553547651871760258905496162287786579776416769436506598087788634987825475912074537647670251595874028421058741682583654870128282202254963479393720791166891389131596200266902338282926863935806178527722233808273019414231978672898042491550112095221444708325326076037996364244395852992781633526808934080662109117783175623897281570986997348917460695066450841339755727554267448453056271509602025519239794042602071559106140579734446985489802599781422942261750607173064761292733859978183880530860897169553002439753572749485599807842986978150682380023928216873247257642482035964947479770563598846394449078659712195239067540773198992210104823568461380628218360269506619284616649136442613078097436310962208497644821726384613107318839238713286858936328336795584923879882775427835615571000070298352707849968167136316794769628097067438881182570917494972636705906733410507215300289480991442771122666303448109348824941953051328795789282932576123251387357253939433347675682535892886913226074986868387245703452715129206525329261741294194787482572395805668607503726020303286402598630865896588174523389349139900251256914992213831878804946580551535704017263009947267353466225056659318815037470154756930514627638892814199230791467184768617944786195051308467253001117628869571388523728042957160897009749904106020168589897916822278277922646798287334439471279102708164316780560091142288501244517750909307633321664209254535839192036968614205692858566260242585389580777257791092189927159302864697412840182917635537072606583796777012738643150484739831427743367700367873936863454334630339025701247821736991805554537474315157483339562353447601876804932437873777975609129600684452545150695047194061325069934751392330272833861206879548811604952189104133575048156832193948822693342035348795303371248008990921948529717247614119755662536037905440138364589152226757184530060960495275411886572228554729873041176595103182330780613119368036883221087026424391993216442125019698395733746996815009902569074789935820120458263797115970656665992030188277324398095446272556281480570690459539365613926129598239651231669443106593167461595863693129797320588405524662165001258048586118012447138543266853712004994866669130343228302469015106643008265544744553661370833608956721200483942090404145786105132689623806809212233389764059093880062083565531541661647121223683886030545444562124981779544881294548131536826679660297047505018572940215713044328009376593394074201514679959081580269121005697626316018681634535896283466303478873319279202437227847578281556747431589905165944604691795260013211934082313333938541138607633467625998461540476931540812711373771943409835970372057397196173878636959243521780205723818583437639817396229960566486271648205738028423123403943449111615648452353675814283068030933674171093787548911781111912045894378160769161567532092524915457017115766537891663763981502654736236879463229142515276753974815881312585669301787482036953982305229809377538699603781561463146509388222326231476125200656576775614381662765260805043173976554566008329589932198578838678266799228488586897914470139756648516110720708591731407285916600167322262159241970401590076649418475887242891413083740855581685229328115056810620510797483815347491534158405164959017983087545725280135045471238306161011287655639887152878704666680658053236009946635613971109018913606182081766804714916888926195249858506269397419582441515097967821040313077423473509575852417021175179895318356838336052739184212900134342203896256266757814187861827091864151020571501202126584342001108519391336007667545045364935831663386294828198069513674723275099997618476557495057319657545732573465794754154576076643173755088963008316668030181087890818796061884738475047074668235746530587212113913128065591836131872375039300129705561592602634183739973996273895902634662164874991161273671592151114643578409521904550558444041936107368288001420826737117399672004191873446952400426895892086997728649767705805022722261380411507712535371066927825253727712298504126381721083058516844230116086507535346028492433910690288559461090845811008981774218003222204316615796606488879173096149899847367543494256310317711893820694123759555496547784437365527080469987593679305755797426551148555702389695883588826762738223951486851900700184637833100869211509623503931641445385743494417145223700545069543156680507808754679107014183884309864035396187831600127006421277948570611623829231567539702507748736250479931813513518270258758305197164468554321988345335718008060807063224965026307562123999870098764765942424301935635011595908548588781822809906500520948377028365912026644812105965243254059277429953628326851955099397259572900634525544424573275082017207969930208116123283642152074431504606957133750069421014422343249500665386539960752004569182691384315172965338264347206295722901623421419955724145189606588809777752583546947481810909867003676923118518386602395940374522471143799969481629839873369356276138929738990678658302557825775169917496279560314858309851535873181122448018826518881962498828588121382009071956439627184124254996205553661895150646537784247814851438136185131554082076695784714644778084903752002633981534356323059230627622908563619820789161851583559667507595371685084314076435896662452082352307382560622423552011936035352105762501331927608028489311975210514333754072793704139288523100714567396306834387912905716196569340046815121873600001197890004789792704266251835864331798831005697984229419624282595789173229475367908046664027061091115757870866894181036387212285672550885761166065676547294640212152046823919681569612997377535068603282298437152194231418511453061499449908052343198219596435594400609130136162312127347594118425931616859181575681393749162037859025934392683656335511074876787693214449054684591136953787670488217592805617141259903510477257111250114398898331896516767803855088144505193451630600539822277089248639678164243539724429972617743200763915981301501787593395116328674313589017212540355366074169812722476050557602251480723039549743017224154844349985550396835591022264125119042603467378948666422230665016673014942216850646548376308711058858978884651142140511712484580383941970519490769146312105516054153214498015388366291521055667187457240622498388677225286239991039002965849229199935753813916752734803394269228735114537205182096778098427134935498485333717066063358620650604488738522837398961484650118699110280194617976694414826804142914318259856849687665331136915525244832143934248281922728318233566583693704131057892893239499742101699570741246430701471400404666951817650057957997054111554546201727009721697832549243365634196388087679534896390605641091073332526757127140742887519429434765895750671640363119112978265211221678736974274527427894871374661749218026221745572681408146318580507800146543286030784703968358971831909816749051306580919207721764339082903844077532903605476820132587946218912854417050858318710820554590737056909388130551375837729571799272959582823183376563561361741449720457244488254131227726865864243638946001768148183489459549340025132397983012083038095736342815966233170420839937264648958974528621581903375195134496191317091485631344283976291665643700082139121151482039237155251165369742627345421112814243644307391041159879733551997887925735694252039495156114015601387493261379273772025671355577647082169172092993042754916875536483084540835149904040240765235557051714040128246532978472902489834627473928834172319852025917614433126394339710848742565211407841148239891054236662642870091845693474078126029538578642860683934532376282950575985499649388522850699396464595312540702642423928834145129118542274727903507983461932800744540327769077967844186327613621116434524248677812647467043959098969533484290579862741454004849636633792976830701362313702684651374693281793934416111745688826559799021313641636648054764267316481038951328359205297636667867306543626147913204864851719353882975625427979547014900368049951417174681345369898657073762861597155111402483426918182188384522532707513573711171629241212985378594423057265240407754483998351483606486821684429194151627824860072255992046467827364652681652274673529839269962316627735731235026590177878889256826591804180917272125628433245852874813551810875494856810875971077598738408763504424476550073258886080321698912233750863081687186900422155286999804073544031848727929647650820998520356880973537994770189770612604368931834691503599247257209707139174800047825951063672262250367677988210693263301612031398898978839114902772403989198366077721063344824742483843079919068580428638208187257827446738403016114430134828948249785624909783464084900387065840770823756940580354791870866066543543408981013693861971606365629729517646393950810037971161914708351112017221287145690755083285207068036856129534875616770300536813118063330525483614433729655809893384777716667480703011272064390792708355511131238160106082999145113969484351836911715786425756326785783426355987785380695196443689314445439465895064812216391205484013294591750927001522077975379521494987142707284353456089569626492174513601725512430634971893218881694570387745553930616265723320240987992274199461941646691608648756142175169572580210247481153453788757213233117444230304502721513603886206587643292716897154729048456790647590750201116576243527718366843126131940992010560317515772726490491242607022587542812235988456881894971075057272370104062268582164592129060599917212378936580809607349305545552316282740301565709891144320949354449422053951602416715878038420392823037152042592754644785460200297074627311131356031220238635414397604304049890422420078990904970049019483698541680019337566459875670784836856116623114884953651792704040929018001962047144934935661811108719238098837594408195156209954486565781963007761677052376107706694693743531553074004990103349916163515697136639387743484936729881835453225703135333905799028342289461746499849865340704883682591962386482230523667600339672159472025526091888336461954696052453157056939446382431894358546595750381698127994195697230280777595195149488970785827685163426445982433990652867678808894709380695650468290239735073732969054768899427693926203532308620754118740489217614165528152272972696756312316746599310453815702837657488399379370088758959565934799095565372469180797272287684700767028591402693819569907622608602661536792784241738097157295986875995458365475231860771559021701973286573757795936399189390337107877098847270576374274771218475798581976154150084511786767789721126517776118003454183848194286679806755589703142300552943856612252097388738580208062433091561148066902012116232853571841481663312168810801645858473275908107749052219898883004187273703437293710146134897464144634903400920459180677812267655451671320102958815446255524160616060521670587807411674240117890462165233462083378310624224407488920077956472471308407260818232948870333651421887690348763877809901660234879237701686831039884640182435409782699673230060666523420103161236610526262717124918474746819973519968789012538897127103169835603243616682492397023239133856369796034955177715462406315420120092361121348310734442378401523907666076443826231077058502349363565915770768874544656879262995820974136652505462464334297722614140421674756696860240438108925460015251558298702801754718335380259053540591092678181671714270925138706058008434858445842739566713095157403149561760731064190807606189378236702748117285628838910061869156407027767422750782907540997648420498089833807195870725867910119430426378770773471815273985238233950206341675756070479856494016696324955733584823563099160155874989089133694193332193050526960602409593044739462883381364847237916061428520756936988574683545785275132802557524743148665607970519613839681329992064077326180626273735929639310466745796262243560871558245061004792337266095037542913358009661469749923344404791623420017150234349335263951278440752218992791847193799343320353358251206126236423028189988698012810334189966818762778747392895760634010741097083456656873052051925252640705307309400692857313327887914253827558104416541277165626882888992783909305230544034072153768628199863162680212676401066194008342773347296073425643412792921611702304515759466672778912040323567077261051992802728744523325460746891639868770223469573461255234420050874735263382503185096261283940159173383361495378372090262265433723310575932321945003921684151435231730860040099779761079503014745829122739757820599118208947471937191516877681279354611747056505425275931250090255978314993876520109119986138246542196154407954267956717684354016300130091054042802256954915352997864244270414940315575579514483458134557532935509158826767328057445759792725800535751460873399926355589420088622135301572812932203051251096523473547824490740693152173334747630840404166227897096744265822343094487219796455615398399714975497206202075965547354432771068478221296573042584445856425445653830174123351398528844840599201049032588018187969617223393819025896858675716188431779009267881369131747802221016849201927813018128075471238085251371246599183740323741474316060287742233484947360632219625450670458068760669654258030277370323350214857154646043608568131873284572048722102539013949846489362368407659496805759769682221107738364996786816327007750729957476057801397520104042701125900345868831830140529471156916772960555903275596345882318488388960929676382334030355728652804908830351656553736168293640621679876276135988870939652155480189349056462027223141973191431146604643829430380007436224716112131079302242848188556619097159737711102001591455016750289920826774403884913403463352176092666742042524073397864691423717412437401643546168010512359744693756459244361610164238622933756389039095147895777184224486098045722321741453324755994546071396956236596385790195377588518979753251979221373803153629229716011169383198699606655015242999637096215591019509508618263046976724694874045506640622383984036685838299257241604244344925349764968761146232148728215407183063697151715992755745188046456735173596232907929766510941443264605647604790906412124463558739463187689841064964153445845515710392971784488413292880778944698833633977241623828171847729836196969551724248527192154563849055495290516011898956415156047830450731976240776764009043072734148128121963157842859751023603206127818768141298024033925088724480571271736132664828775065948757251116306135729141875379215876225798513432511976424925555954756315919800928237861612011601406713735612146596937496353657583219085669716848451132889296836593029318181487477938431661772393218194121864133996220912798421742087237127474983451464770748226178800580169817873131523531591977664716822853509218684349799735995653367408345526034723510504946619403502309975490737588788272888291731600462135396834832592993717899167181894994928012138365321972061753079429534916533572682631431377365409752042511597821859698619355469295643409365255941689651974921252033360787224079133745644210515136877673490723106353101865721515244153723205147423602781971539152363874925172177374070823613871376786246352527820503923710885455849211664260492490339896173551021551574268139241346661913375504094882084950152330312771846164341683407407524008556945388691210109707510863869642642601008220049041668848773093238730835180172381945520866488567546127741758886872542117230064007629105985559218639360769473672793538366857362923328641952159051847648520784332713825470954540347141613777264317214302671433449546321756424067942199728802823304956711898507137669518047333376716008032194936291698217409051161444248169349931059242432802179055886101301680666313258872992857838476372467882385158730991188850734381636446491835992511095043515337955224964255115283620842737874269818830943936427005626374092667446246239924351130707564316361979448379595103199500888923816774086897062474960713349131750217846593345089776275489406079929507736164828935553124440280265069084126118729642332591323171395460301842870988634502522398111252818015472179440060041321939834804824540186104628703803820925769669058300553501710450285601024474805214686350143649522849848261858931116018599666550858042495663640286980450402878067579976141928349327750723085360125686482356779925809708864251027938062154645758856804133914799106536229739876180576765244302297605481866528907029736870691806445079408783747725540113834685458728195334911062011091004004638978279024222615863153605295797843347406505342605997758688678995804746124070042628682859687825283424884332725439617421059710665050991889549332223397251089613749103415552956372439780069327091253681225442627496430743791180688784066683668084504635094973391470113444831111743010015922956499948702678387311514465066779554548626244187680011591842611732489721141978859832873644596962920259014082676998843906599908997625201081133412968144055310790424319349843711683281160211741582593662821613528551697400423557991763467169575630541627107774229286005564071962294770230648461209970589826520901185372444224898408649915926660470100199450715505696616320366238791844180275077269830481951647886793010439223528191799439044197293793501375357005595477773699532192001998473285159731672227826264593771112345808809594861843429776155787319843309109410781444063767164501873163716725175882946259838279909173766380807431435135683465702455794338498232295311877723325676273294259993674168449085954504462807727404365808985050513749594951220817844749182775952910073346512462376666331935746336132588361852340329478246452076829561225961197505604829109135972213411911484807512373829620054867413016210100083623218009305022211988145482615603200574126756718428918250229222402662497213323884393684984379393394106754585171635097477692755632088157098662537125964782376489272251110354800263507204832358509460932643992412776159255005318237037954927374757664047753577562727982425965378675895611483817316282383110563796686130851270162032489999450655652609107257209550391774331121521501801846899269752333170159513403674512960675463505320619848435791038026290562215634056013879246439061118110756996578078066028541050407038908173388259713537804369017586408231825546428896913333600348332818808389690582372902409611101044620206335024457856471098404747661872404563396434194398936764306514727092620536948635112610112728192936786350106993490856435931555212229991735295946412339328217224355859478270049791223307392886322057885874112086343390582131738580579149768926744110809502031116415633792067493511519561538504407007285624261234693863612371450092179722424478910168789213575772385443007138977734783944637140414134197827601874838078651395563594432880504130882561645462059757495270905854581627195666248559355176227195637840767033552514211537455279701269610275523575283587198204952664424447623694628475926727364990367134097499510965581524056704601262071100031621715962648530943741111742771056218763993632412148003861333597719575849383945243420124244726675643406474002053370684714610749313531575755942866335735672056616630720835790115390292236573481171938423220428642083387631495585253467121112180000733666686497738746048131190076077912046824876590450524298998439759613689423296893488459772621182298993414368624224352460456573851198946256849058115169912798876993717859454054129781665014327700371283283465304277485382513266223064643709651071863391113296457682793795080205443583283551235748646944541101774338906208047943936775991800662924506938411731303672537308720490686469652442443038375073737093699691220865587144356036224380943980724470098824471198446719108247781675125936960602293895181753207454141174764766673018739308276314767312755709798662593479676519065640808033287314339229299360900532613029375199779336172565412717470394770784018865368965691522269402672374215942287003008233036265049973735237334695614227502563549133004262572117771177694285688610612667278858048575335847595108666453666061497922429919409867223044477997479901285618175482280475077349063279984912386902932430669062457186945476659013941065928234997031881992694626112692937267378198572326585911603634657218975297216799759906404862247284858577503843136484104051024225140983964885225170050460845705135818857188729564728289950534199719656880772601591527545963162227102581678326881644501487182361716983670247944791328416429197563796327476541812655082290377873008013133626247972678430218102693306101924869967404893278241266590607830187875311117384859161671872293434303038482452473107574585474410662147011764741391414322613163799617347273620201205124501468623985064726927481896235341577959689021250578224373845150147868330017143899562805823364427859165122678773919944788754009555668977815286398318513663583725907737906073290745457222855892936259116413925225568382297605052150417942044513902115705282709025285926894919827839228442203362405640231273437550574785795407616604390208350483894093142439748883142904972941696500354397581727629454183582896113302090370608618285750526145641976400785446798183049536709593962928314704023066473554457633038194036976079152905111772227393680682961274951340869129479399778764223254809695688896450897689171674453079917931419718621682614158446359548706448882090619359471084727040878239051796026564464353972674021813293988963888070543676703547045266922180122297638606396454989299395799059474810681349739076810231906518275826301110242949161845574725778333784903560930416703461118377657872772845496660792076401065831862633695711392236483714928912281924834068411268951385301164535904789318227728924341316192473234655009574534501489242844444262599906265976480268577503316151560764343794451741744082052611305867633064435465581941049830295850647110833542927252399947691424075486048286700268115798136628661172728208694324444268167564969581319226379982593103389704153900830326324086068227604210102265465683491316775508914896366104647188162332009124826143402158248409803251582529510681444283870982995038402777008032267550683803663567482575673705059346387882360443243585032104170244339991987797718740272842636230252425252016810201961966208755379590539327269429272039882931867694317294725212026996282337776445223542243774660018710253291443828997113035115578738715200945217767097686006367739389829123414148690402826049681243320283370239399360681013677460161243299186536601506082004444796476058173787049584202767529489112375555734523752167850732615111965088087890388708793588329563370519559850035214389086986908766930936181262158609436761310879183830060716599091964496028799846754048269842767139056568620589621092327763512508179639150251465972138822275466059462902586042126671056614198465741553423969422972629235052479820755960430973899841383118437742739904747953398448321385435098652293181711842766657079097726443513927018527091231629146832954519584224037427887690188323715886105536175381631794974308845322213691273970303406303559443382066879131341304756565167121025469476783094002529824956071571486072957229961932522098087748534559011599656648505111460983558046918178506862807804230065981805816427179734734420130711594627427867340488997568667230364582644457856616707547386434922296622538619687619544903149264552158978532390367699987990902949354528359654072628007005247720042064213217201384612657923718731030316278696668574996952780458828865979765697417602006757385383435552818112437923688058024036361797124062398606706381655818018879292814915263516879075026459543975058573884705483296900191467021510507749693744182363712389686020142515215611799332566707938950999278325917964401624166430208044502711535189117442904521373922544870250712330807244603829669436419740197428374335364201398055021322091016856814422731020999107195135077651490320255126252985215972931989120670662113458662027011341090913028732041070390368968160976231855904192985922117583274445026201737051037839401946149660726599795569067608646121023419361882701057288555183923918251305194689016153605749897820366303624340631836087443017505631797784747678072034674465323548487154017204092749648848348664927049819920797536118850778829021005145158641454572513499097463211843842085347704566913110764291565905498774016517810755717373739496277300626336207457645118735290010521415161492539594699588133573683336185209420889531713508068016165202382971969223726089480299515016115833894142504452508290331486485192817569218930749707468438103888652434345292376945216995346452089724088721519867982785687391598343802561515760828937179642898407721601362134007765381600288352494277768612342766748387776318039975174137993880492731145948207291939255222365051099628443690982508356527479456382128582474779874785893964531808095320407841826717181987541920196858300701654259529736165565156721672100381144603191622712580431360520196061389466814775898352833016843110309324120451360248359100170224480907812177018457306794811565634900498705358599547398868573554402877838026809088196486385283348190643808848826924468462086937838306359338892008004506997580898632299825852114566563154382790467127624223489417970411608638265592446850785259444620123046940896566329130507387700804145681874578251444491420277109560644017239950349987942021635628464735244257782606603623911287209673971658928214626651116472704041895155698340785105525683318387983135491869791270322635675568353404079303805661474507274006489446163313825882611181330303169083477104499525541447908544550860009948464710451469897377069500603575322240337776594125963839365270271543136602748978581411907758014987195751785438833352165552492615270584267508360297794135606299396788477425399259975086821934429873991040316953422662197123535291730244490284305752179100705596573087899146277096077379492277759799729645222643250189415819690061273696987482516269902691998387100435593106341235834263278493625428945960081359743582748825371154091989701937708328960962050778034505518762301287644951059164446835877845378882071353970499263967523435732578587861619771351294859178628515638973798155190475558919433777764562765165227861142490192984192500279785729956157158207868763204026678888912919031797831237878401592996206384804289458931392017113537372852711839985901948074218402965140693514300854944786685430471170163396249315966844206996875895392043680696476455261435368083580463347848142275412348005516722723470643978139814947283211301008857755550937640468817002122162339219446419650300244017907073649087368104257698766672591481565282913832925357400259673289559498637286096810249633882840048720388094184807894173194211169726233787154231239454665294034401779253472435591802127131242574899980770200288189928653760414972776737674758725181658242119698734800344426987548802996730912711824115533232749747896351337992885534868002244163037681562898113953077859783495154193452525603352573788292224742838605181255588190009174914044678950361555700350021462264848683916235614535197725288330202276714002238955064238370854334465572559039172776183854744112721840605857703285392731837811614575760584137727388351939551811034783505303993783977073116769876210768305906652525275467418343622983961146812803941984910492577187008384807321066317211357583524589669480855008912104548517014300764588765217657150502292757640075039875465993822368893910779472549609242436055644176206059351083187653728545045407371306779462012187250818604117493053547862020988725430266529095836840689894390039504415304060871910011292473408805473611894070851562429238370576804079225762987932448439024320588932458636439324881395541726052006144707284319318723772933751106392079639172297045808143119138263840713353254733894342021252471370630017854730497746998134184760339537327475050743156298634777211657590084072244287852305573219596874002192312323305013810671214619840134931640999266296417447402388046941265602488992227955062123855494773400646625298196417798295764512027955722987380255895426797274184114984551877854297800549878703288354473205328572825751639131288728209355373713080321907186067968791857975375834278375042039238680497377922199612530972825817307611217573961245983636068118350918981657167511615063613301586663378747716560176132276254502017013680505463824439918842263294390705431423566817295405708681522727044800605282588423881788804000913845648056656314668636351550229140740720255839093993537810178379367150032676415082843535505990011317086684966772994180941951298239905295161355650334545985324147524401061636356862532591795632118848586309404632214156893521270632496968280828266110622771538163689597723332167207889740970754697816456782927076564540052853572606459804916323910376371910510200089669496099998379791541535522606478192698376345154557071153732638412345801672546026449570065815212012795184688257760178740977941390263871843161479565580868314879144692558347320968264134425007986241331828432123733388865125461964182993818584386261305201467461470381423404670519479390286959975560779313819960814947991977178063064936385444584856561157275886684554166834009864777180171940784133005235186355235464543301097212650692721422677268130753747295914192286528999363537205757658831681082833290525331752623031650283832147364447723601699950710038307214564804264056221750728104638168137730211527578008194141179323245368565389522142392159695327665162248642113499937415405615331706752345970615256845648323982325307501603980809346573345685997808110003575305057758042417107578148873627369396362677780551241697728431331217848758931283913967190752964274174320142414069513900410596103020155190194077412339834852344590965489243075183801285898076369691759301613228552210665051306533590397789805666842972754236519212512156821826133720328063317751358134119253281406591250639473030439005107281688122665638662824406681476961990469373829925226316163459781910368959428615474349287716782880801057055209027698665878421136670529798483371782183615088463989373101077052312487106327986920077048101369482535842710575616970269072516792943589227155239915448085588972264653758367491869826024547077997096652684004167609684445812047565941378557912433820155629122855091613272514305520178793060826709069748956836463545071682486944539185418245535324958812351405506995600916159895860815909687296269865215944930842716151531949293695572586972290528163812075118316514198676080526753230424974643667750239828810230511740270083905192258750202930186207248935308802138156604094626672073153214048801196117162501599337666526896469095109984110812120623836599170009790300182207976011585448495996333471684569382461038893881129612845073912598975883623763309192182597112318271906572978372040332002798433938262791322189145509493915519761533782350268354714812494704119219007576278115915704991466288466545012022138827830059114282596853799982653797334075593595240685185390413075812180840621766212178745508129018773514813565948293537971653906479980319769350165434981232381626965319619459958980274226111786973151116788904297506735460188584658819515833527868186410229224504949021501694549265718671744556641137586628995142237175660141185833075460208151295460383702723678083630745044967349133628189995048457777564833996475431687789320992143690269507627973108715872285999846352079456703924937048137214394225365927000488689477210830095346188404955629653660730380268012941963760828380602156864044200602779390560322111066538174193999040490741343329876611835570735833644627297140250927143026022305682869761468600132408573671557357860635634622920686123384158859779716296444386124892276495744880090963164037648103032612893527752233643571495606754412501266249697790668626942911869824934374585650535476567353752250639554673988792120784028225096636932130837228813796523989883617944059052772612962214026150205831324760615776251847940237184825580898962413015576280240753506395148125697635246862519481353195592172696014296610536003425171134606618088417072372223122309334954398724350889183703584812163030834094299201373382796537743317463875902338298779702406956702537081211792541549186255065013752414735053574099587510030350377707923441635635235762256388823774326772134001439315223526332497769255408370452654201828668141902385858837148466650109140251298053591051605644489312989797321766481465800180442194900781408838585261271615550406179377794412111243407918912433201320780236601173349284683826421098583499261114528304103796503865139400485664741015448395273963075249910267636200995631279496080648151185130592522688034547765689927003099501686370974347792413521554781693453212270253962184543595601989313429750729845377675429343129493999432564744200276220369119182123443783862678246847443422143354040154203958351121694947134390245937717689795497604952077496710070333706081574920516172954146532135302283292019964022118135695292064306350405061549218487889024897807541964111435203435829806438061797668070370999025928116655550313103013472597399462360504453766893360597638566876017258223518242025615186806268145980466515447084820686756448593440459911218159073509843775312257498147078432779019452721496401290228775916585201219281175408426971005481139961440209508057131100304501745899370165153824834204838593959087423845568772715644392448099803851076221537035695681815196519524187658286276846329413017419481753957910427555777824399446106246125125786666352952785760231497189580980901723767870420662851072107374638758965244154383982868111048259472049981777506599265741083974646147882974043111507889338908847553894358457863780665056769364864491083981587950913084938921218207139573083080474859540230964092618715066171914410700756579629004836182278795802940695430769701647601020821542314840130002243186641110275815138181124233255600513976683989110422521966383881014296860361175061044928749112233040591464776652764677336193995937175552829626742777445922413399436568935457449654802666807676569963516160398028453095208454670815590049619495490508363428203120338336655189846855001633789456662216026812078508577916169661263417234881043069903465204390665684480550503523262655032933683108344442974828108374560426796710745977603598210692863403977907467602684670040524938293826342648619098749903788696821490434266625537090768702443157457216214932732622161728784672158387960678135174470293118653908134552377170496383269527514177028054609604370555276081780471056399542467320602054751725521442835047774909897409606246605552580294083091594199586560901169604312737506895070522208728648081412938510085052648840039394593356815981637451907620601002802150578346619953112716124490807476862410364623933474328732051284985215735034225422033332672954426515356674073904495428000231083162754850489777912985768535365509637698260439983644933949196954499386441332426414227463433338453495982151451732436722877030886304154385335857470331689687881147717967954394799186209262172173109398795574714815586540128442484685413265787965357417334047560440695367121499230868308674728936191052602060170456040101943444974894203326374029459647856627818176308816549875105962261079811251163273715463161784042408718015671170970892399789065686338162369538600168205231086629798090129180057590011477489642397103175039696003309687042162561007709871929218692765002932089920750611647129947582732384260032182679565619482569870355959465281658813664580764989360169780000808641781839989431259518881762872682641129634615903833682824437474600844046596882572934870675920265910944866447543300349699068169653385720095158512682429829058365955503141330057016384400686405929385282421188389915936429174035414602685650984878277370284698487968379811374716146000049568057593834257083772940690233547153169004649372985419362343446627673039685900571349767829691294649218593078951510166042177543115062350986480633368598826647161435844660392513005809424886625251952348748880063430357292185400997971561367318051673875733726166289354780436100962591605548343129497877381288406325148028737313777579072609118802836836164644138886410851425883482909914193317538726584298342539149671420232287512877445234368433254964444118132812892865246672111316038697782327747276605504977521520171748037581846014315893839709212827475622207747531358780580120428723556782745336765621656508601785214039897951767167736865640459680394582964397683866675367961105629913566354891032792705141488594061218690781001255617623939458278631023219172240916890463341347399832641418967019127041805049853199008739538907817795421685110745474446005069086656978663581083610813177794065335399703437637561565207840055231320301456323796119325618600352246907913372166532590841550567433450592860477409185986149732161053197705945072348504137344787017148787456834260444846111837303105801246019470809919943588004173907954559406208108425184211676872301382527542046144528484726996509269167851845859849409307824908003909607681237669432669448634541339940526958013250411057704783898391570489886111901453561052983702216645465191657209110091757224433979157842211246749252553475786524096460850758917987697048978430492131696344922363595164322035482568134084113540613760222588060986260293529576398895307776857031770523855480223907671751031931670989217188887708993962588393273037316384942327257345602141754744306651773645926158126650060404174022244612890888310948693825026827390082062243383959254375984909032588196993860774994621032299607221905128115264202128048320959856659717661129025281246076880649500050946208677519041074496977168152412391854414423173528821559699103863986190013987004482041992223868837192916138739602830272661382414312477144107390530872009694576109097858485623798087340055691312853568960094185959977128102829449805768610910436932863412384651186551798956160490456832779491041836705815762831745062311255191153878060317777720328878867648518958291992701402237182757248024243398509183819092501399963161695957873642019052534367614758251321711891062988903441885177676533323395012121842409367678636128469345203356824834323078889842993635739455480135796812970201235251033234497505532786955852179247567513808399375896882399970607761449514622440661700282184385030008672235972166067273482826438600457751785705980750226300006589439718962211382531262839637024143557071475482893521681634485925093895067636759022942736903494905089002461911720878926831606502815822944955473878048010210996157209702614017725203783892773086572074880788989657479794715964447952067055315857978266499819028808542549133805029537399959098093971601858900732484271196939652738972415847312701963789994703437022065393682003102671188142331809913331409306961872527601096832760021727015465535860117188441148484814403593028390168368612161711918875156920815523743712036790117186021572892548835327495766479786122417878756230370268683952743138074474575337255626849974800274816629449298988047928430492791925009885598803762153119408900446456553638584433526690725463279660125882027871552679897463767527442177602568744573809950829661589997631470116145824232820289256327608900650482900589436672454406484603491623050980012479856814342678837800346349677774283605796072013282267760799164050339301088818790116265267090694381387391880845955413087549126664763158802442881336072507630745949529600762803864909744834087224548655057526621794137695570050246984551339281456138889036635025524818193544542014955308105623225735525014639465480536627363284111337769988965570297452644672618607360836127156477429150767421368871226438412468869433296743985553453994732638383810839894036836609071853357472366925496998910858397187722261530791720466492919533333056110396483790532513167871392679835005384738935059750881885468605337585614856307134735026436830444912896694480346426596081722852034657885044187745152417515502855292870360162026946185838617694516001961867367038029434997356989894752723729702709688700542242438184181309063137650776330876441726065650094380046660719356986570176701708738253682734386605776854099895946169014457383518575640109592838847984037572084884516835777212817669863458167738085192051625309762324874112390467883560418681934503116900310980827447617181080712914260575377376449586255181771762453664367227069236961698378308411820600274562793035360208218715396257107579412912505173233872468329864392923412832449462963643769625865924281210857209541732896819904841172159056443007625186551661029575238743795838094948212198369854391689217215230202452300948823271901017324544155871217883791029309776872941220582973480915442121450452847874642451783937983263750460370981394685469977658697606945748250720885040430327609033759150332450672466363000936226926155632668256336852064679364883505889449223599088427589940035608559219182307176453721659663808133746361559409129084925769459200699048345457037680564278451003010080333554065891746059105672693284433819541264312897678576487249025637316746768098600905360289517174052351787969777678677926894096414169002902648661907187606803113517929788926849442025293150910246246735558598911758316013395622717747546638090897340419989857209925252589017904563312591388328913273516563684799980934525523435463585208723189541438535632853495010085676749114018090937524716651547797908671347597063791347793944074575370588303194953146895072882375554260913868849256158608515108224026083615940744024320087089344930007129637858992820940429007048879635081402429333385237519208382262034319209214528058860404948775979969527865781942239570796192843887964487131734213312837312134079600318770605461967134120642295896619215448145344127194869970201236596778578718983117568744220992820797327217569860418572892827906987923550831714091702373678912112113972253673920455778434870105604946815169255632742786350411154622321724893636303938680226836257444826226994509803233787216963870438731977663703346248759196738559295695386135183478567228759484949138286508420071372865300504219332155953901620059178735989945470053960798429996738990691534057066695834725347520609456546587244608731136215133698723447510378068010929671750768082450940532130024515851998132522492577978542453292851227255962723445694448837358018933399882674951064048633375488201043830739684740476364147175086271331854096336222874338579467117750190527533454237880570034824035560245058290891275743452232575399186746170420944318815085061326813474900001609073205820270086845736579856655065910065082743116005319262498703293586555427643088793953449498938668517893752206371213806288328296328995938126937478795641209775357923666703253815669185182457869687370163109845818479817387846747200063391879121516914068881673623034400479349227421367053379268300431481957140922545861833161394822199933378138266726179039881684936510398456912716300978020704161286646990026607789772927970829993531787163937546698718296615776965515651918532058691856273442094564572061773425207275757934582933039688115894517380833105692901495815137409835167936861600999470763388613818071373054676879888034130364549997638296150127588568677013874739802905409781952649574899018238595019579908434482258050307097803379598215538956226833854923564404407147848261069696341078088023824653755996164478691752726876574379221888098185797589229033921647604206117165230476424111921195191830917263275641544641714950878500593921075068183084830942818303631472531595481495481407259761183306171175554138933540363540559393220769743684193982038703774847338185394225016872663787046309022202013822121612064547176797994123304990378185694211586624001946826317073632809516473173362520708016534198789778811686358722050963972013114861011720063888249375647028105236408618084587792896925163139658029449055603881851859571490847845410542043018700948661942085558427739263021597896858084870491115419828828564328381563703793359853569488629608513128648789784027462608623270583822709233796085228337992093058287467715402608947816388417256161852247904259081620886862523829852633927230473811216301549162337262123273618682668297101873732729089341916400907481737805717013835309339954053312037555677074759394094635525353384520765210965004744074042808201438359766747397208161590700492433845951808005014189501841445062570348928800590355422286877662402263647055480118747591112804036882379311330373766073647191435370148129034970914444624128623886348701575250500050308942846402753448095281343650361971736542117731900906490437809362596124231291168106743446400050613232791781249164676445383347161158624808073941944667616140080911792461298619179738505906375313259162879485190476088089224314737690423981508809451186721393166860132941245883844611132365701125969963830859347095664848906436279832623521988640896956200389679109414284768232819502139040030355287936696958824189314302744085789368372808829520552638968519114137291204381769599056584618080315220376747652834470188632727419008752142098311370100691083684481038449093024584294309447952729485274731318762133737140471886728232471528371679010696694659549455389114453052526428207154116958860806257962424978934039026801861600671861308911000152652447955924067223050114186574253260262140245812121076499206630489935001668053707405817700961231879603697414757583538189916324535135783610287538937823760607278463300884457788778862672657331505898703843752806147105149049880058370072458473472015667084236135859690098332253521406591715959334589861657956099447162173453446486916288581304939275653364206871240882492814306171028058291401121217419494010831391458433620958861815251476613567501154768963961214279155526980594255044130210558758817230736658336868984509106119944079854246482003485303981207055163714055934552881461715419323556074604830752292815933507313310031146803318013266509286613851314008626285464434686662280485659854436262282539822773237959251788381439952213063051260049081430602764122217092341614664175315130440950429992473717906178086314190547732508847073788488560020775939198961635665119845526409997319954437832062507904878540429494565957210229410240363335179037149018044202071696595852311345282132032272557066922506216168360919530194417145733607745524309595001479008330046679028456445749954576121303304273013100634713711837454179451474414215195587511388726194466143537614830752371252285828568722142886219154623000867845851158056828501090112278967052729387161635986085683547463214158956262519034187452342582563629356800948516694968815941815411799361724573521301191877473834634902588403298232347314149619415907307254102680800966461969048333585881879500443080254791996604173740805493778616090803153517438133873558120064215349611272902460460881092612690930207478092902396568215663670547338819113893682359121055670289954014415736747218402036187884159509562976159861947436123236368942729230997545341940471024392294209330850396221674813110486524877853812740438155152564099765604835714969308895637263723228178593869376599133138960379221383877140482813111923321174748411431886839588043808781288515414311014885198539605448946658325050558721141577748511976402771572063008358059366160500756789099613687204687802292826443910160188264716157476874181442107681401866861579093348074652139115614925508331281002397284805699948915616306822880508471669221283033595593569222238524041308248622630459874214274712268693200339154215824298210602203583457762711289971831729462140477379878342790729731487446724996330423414182968874608564568295638401365484844076445223687270044925508049314717981497263230643371484098004684474388135335578872832298446494674380988802689762267235139110888383131827502811866509448863003063502005806828842174786869415829105480904637390078275837358843147431938929511034403525290967425462358841070400648214207280716589201159493726670201098403106818136112975664114462907537075233161887278850007021727514448759558004744065767979518757880697397239286432068196980989632330226534156862606967184426220540921484806141259818425628298375236750871342865012111956685001823865273213795382563043723651579453862623766631935497814339101666763356501555098841753475337421358619391244708633603923926608941798793490326484209725061363402689297576590321338904212862637757041669197175998321213925258654313261953860101033668647640011668844267241106973438416039711276087314097978425769426516330210669307332334192527447992290281721893708001781813863871857972148702850558500901150177795838334429134557123520297835462423116371887601528608566943767720149397912659691370989140839619706604762583268778144671512011311148439832195126280938132491437828474732311622579925863611456364435540700697570308467429954456690730814900021758180274641629386324220410995871209107541144926608617897560109167964035147790288749792262738646160251080202265057604032194262867048745049381269047069087485786817835904486138084989442061157510169189885198820686672001519749995620842235545936798459607550590661779885758151605768194849596302953369330248636938845914446102282332311143046040822694743887987484375563783453480816078583556970548991914374321621828350371171098962210511527744256641086111967296480549679836798134518232673057176619692005111189314291886702423452134851802820928590255896352444548608493853339883837063600623091084044787164638056183325299616292103966177584986412399910656547600229026878200044045428519723374892600085752048816679619684112687911280127719464333355831271203363954929518008940409019820905496382376735307092694172329617300548358419950419628391365291081426598841432781193988968845761389774124991423617008525239312426513338840622289426825947365606874080591316121289043767990681676102291481629879248319916654408222326330423450247026431478330513386829548497662870169405159042075379972664147165876105235612464627441653352978326914752993061904927621878145211377283943722399503342514373058945407467772772657160155053157594267269835156152735408835757255408841616597130339118604951460755601855970655591575549038173783596194262722769245305205609193564385438996738775801301264038691151921602716564863574959361423374532937746710054827378718084020770211887385492617126164515706846172538993672397998661516309753077178304699633180276440298684610698598661862238137890461504010282682316650276992798410767980212805495291016093831847208937725628348429521040155126546239858927335368862729063897846280253860479144082297555931344849311366405868483773670231288022918117597691179778035330791379429105905495416707755944026763770767322149341689954129570451087819946178695718907800313624799707512072960192206849693537327050108211410337327055778207639468339100894162907243230694452392559194266577648395047438905860075677203506107008992644941680663689547831837925059206014050203357494567953066179584689029814499200237584378535159634531358105950266097765080482201693604238877480675433490795264588899092404641550397079527703975313874250409724977117289781541168703049535622606934473732817218051478577541302380361733237335223823171157968984133979745274725259183832748767467171456959315297502048495710857018127632264069072936209625290524648153444824846687768973110467190891686905772854195946540036719004472006934054483686851485521662948771751438377576061310834008517461847069180009755230143499634948819974463523445291161394605809315596522082718348284586284618442810686588887792678313019171363252715436258176827416578286971816503588828011660816857122594039242274327919602804883075905791673662158229427578140280187066925660110311540587336594453680152120988745085347785675576761850436986040369670361881853694926300439287948170945234080246799421279424369637583586309057621431522805342995478817416818704348532374507546871983633164924216239691643465032716603912618664693852639528429617185532172869334370069346597771193219021899501815331208479710043370899435456323219665153576440569053832674811330248390179991952817799415555911814388242795051646306382711977185979982350134692091084865579506937515596439365897151613369575731610985052555654515599573111514690756917393871858251534915421219171729069594967100795852767918048861140522021405951855791207382397181501926805654495595979996547939733731064838149060939978481921536565840554372176575048668142964479021261232883933242234439906945764417346826306210178022332176492496601928972749071033220218872379029658737077267973049368307403115076970380192369645980048118287724114901844832514218783071703870258300856834632244201981364285999873272282798441828203013389662983630751128410140608536914898937474641953528289613564815089921032955143435308048934740581328068924746932894473572147739679588792488969020811852838930932019756405649522193283670186979235186670802800174002852184679271479484190864378006414824545824255664840605382770030529644188696430228794308588165250308786067523873169070962024770566239744759578518489803586877431333811413517628093916702380790110322717941167832365683779350652483875689138671767841231355551889053959601559956089746920586937847743570749180462667354984561454849726325259923474551567211762995403226547277183468829104898615341275076745395707893704179951675952879559330360833648012579271134655111059652105757288587549014942357906218050536354362627085004802079214797580336871586046464295356418716486747058392305866026330208066548441976478848236194724599828841668293532465495964679337496056007760519281680682114405756865943704351046562173223553440329376984660879871950268931368362462284330514407487978796809741826678335011521648513320245626117554484365154651894347907970650660274739845999559228326617516064237368588730721765146708703747725926803737066826591641379784599807306267372558978707701589448138114068183175367433874725572197114196417001580359113717963211956990483479794395103278458298746337366097253120694150412378578193008495820693985111054281569468376588942615040338973910317777696502324428262748680085219266012248628768229362592673676357146769975231718957736701536550782778463176393847246063272550396426285559734741595996918158705381976062828664464080826148354036294031171189112411747266032537048474257587779028645162374456879107275983963536408158423549548898702126180434663200418097448407440542078120347342575121130640041957360317112013336472913906947352399231684261515547362451320966798536041809485730124228991987041671010832943095988265330781982137876182117456223720597748904855126880352416163607886638246109554258722272731037588751253960495325994600504098793508175344981444624604318850122795064874390719438797418660924742178263557926818152474511375235754785468840132929204717947135217707082189637870404691693979496546377890923512276052167694279535248777981617271496339744413493983902559331488493021069033480056542396860436943409813089029083741820817070489996964625411898417718642452917532865783689713745414003601159408932877005390249897370257639780022272893302294371517810063569905706025996441595957281245022925219581175342266653615580776473607507018096598470152503927192207938938212513852675084616333592946551082009822842341705835337670354100088379557975456876387316598479192834987550955412400498141990170965920986899944192610388373720618462634926424956419225448049655040059249895561610871752264048107750584456723885703900910967243416743599052973850427540046518301555987350938274578253480107037060008232332759726843878965755700908621604842847727647487381944336013161162563190261982242891643365981080987385308177917860608546712576024061233254998842084429404244358667528156745827261848031140183221210765095047222952071252414480675009913835484413124790377433624942083853275260224639655736014992554300435860192331452600913555719843005305013334835936175910205441656448928364383683618022074965201519396616582594348779667968191577201170282784771647311709448849971703831513956830577730939849348116649216569205605311733848469213504106740306677849874111484064197322230356150765358651155199432107513836612489471041030337938988259406803169561407597652377669436407920137040272145004106271766520063975936797534908144604127352062373597950579237392409838125268375190084495395708194159712210623251053889941418815020706061129590037618000336439514644343012326172293918996898187312135821757980952670516546393681657614534929243097524283845023048764945957089997179260652467733518884988006903523435614046721588799339821465578423216323839187472434063124530195908419678476395967715074181629417980692158442858505135137195588947121124595183470393628043162995793757746849013603980249122489999864379977265868026151118284819853326277977343907372444063576786271420582381296944915515452815583045269295024577642991602591421824651936288276097542615110513799719333307251092492526131253071813180476623329359621712702955885563636761439260067752085023730043292683802638146716345828902481606100220316143255811222622210809724842505653325783794758683843081825608273564067513141594208383321211986276685052654097897991021613514148037890187350435651280882356949726997856073050989633282005450854088657917806300345698989386087480435461616473017897196813944176159088326659295572335793845122426863238133724438861793564847956396669659581919051498997538299070657749764301278681799312315095684219989114089944641652449128370518014798809636210198977826286460280423288150259321361319480069829065451043742701991459109930496231233216809584362872753303173741060737062617811085312833422643165843281179809990478141922196353024659350160142024357796201790341588368121103440914073283647548650850769554493152959189255406759753448280208218591803280248716170126195447747752947697465969032487698799561415765440746898140089589443618037557918835200281316518012942915357414803555882391023775072110949474630507493297890526827922014804826240024718584757915854476380080726073140084672821722351817447195525417823222629060340025226824900548005260206692628091505583097450643385308850913600501165897405508904294632237944769545478559112567834195342460929446220154938349428402698220337475376188405950745126109938884264631086534090953961903518048298351466410851597340948131042004933943248791783472697536682137105444053124291039941976486249196585664584061358528262575015966498333545738624952130947957038309042115841932449894749442231199260683614330209445745932796489602343225660688053922427143285953051747709624143322838671190954493813513183999675694486246874324413488610737734615947050404302961480820278814118907625370067474224138213256504008950460095995223824073665152105088247567854189600143095447505450699942114974935933704439513101444895944258289193847383811327555012577463917824252114364709730001907341268718462244933247547512349854988731661060673130369300340796540112417431026888346743272648470382582163668480987320304052645896192392872439536060311936268348889038260034297808557133987151187944865489909354784916897406875979755485719802980193076912080994088743918162636777857434289964254380894629192330400466182409033879732957871551471380234916931255368794322007302233281525775585243210011828349880172747195040623241119240216833665669830833485875635404763643059164161454244071835043104214620837575851529450559675050363974921352565139017471571676056507733774939013730013489664708693875391568037329946793864925519665324847428578762196561685493318510328801265510444568886769316123617612572643718076821666527588095481657207900199011767579236496470498041502182700571417587232894906857651658074523324508206495857679807904546273389651692874414278969207889896025151959744058110279159558557117121952037902008640850816932055457545848746651527285716785694611832070256346787293878434027758530999769721849956925050565900608988100489543806289905700274488201718866456511634506176736125361417410048113514135152626469462313784361318751332536888008683041054318900320523705964153341379552735256743553670296705834552368674896601990738286617363904474737220446750127066818072511800051431250231871659970054288821614158254942400610887860184638092941132348394964773691107271484012996053623470009001922838629546689948023612637381766786147687720704266334333845694358719190818087925968510061144829157393750192013195236762610154598632274160288229138632700518860835775970222520489648285850097986331306428972973284494911547856013692550021853766687788244916776855601953061579030162085753769811606679389718596449433466407262854962289718296451201003560562860779518792923380140803590818923793858982456468194637754278031694281785911490164433985162386817103889759544428114181826677002418111592983717303393131258148627598782158811482932823446182869146239513522046826301854927758608350579603787782169089389182998016348619198371123904101493322671282081030794834363109655886617934090741992711449899921260285743194064870853071858064118250047772694955722006239359555382362880711236634012962821406942537992103704260915474592756367178095910152751519790097691611878918666431727614374373273715973542569830510824010944393792490357712882697108885866377748761279546971419474144140893189614039380329186402072655291002296682662056698522632901751711619860736712642725879163813848440979433854050172348628310379951491916076054295762084455491478847123846171147618151596834074892448403211098027605345816450527738735971431172182281034508413214915100060219218574343854966847456978183793730914733620047111930257040331435464714376586115769292657678069867417075132127122617575859768263984962790398280566115977457693175510120160789137799957221735033088878902904040702464226908188997470131671989508612393847477747511155975051099674061024629188882015410375401515003790274164248658736275266178212877416133715080813299272222150591575924542069838177451506767377681186506302680879749678112407161433358050084294061425401160586155305967292654194927559616952100614722998075590693608006837712161700424595556949909599524721498683471230654649992397160892213943031838795256255122694351230571926647224428116185958795771933007743933117195863339653676513326996714529408096129060613583100735640163001427849290622507518961156501122027263601527790816257590036328736756595831690495997732606188825039131054569518243420285675182733367549548562728374293709200683879439673068526694936273347811590800474207729518568000470226850288830503618469532120956455709718279261177722949721863782954656485470613786115003688515737936077665274929510946657498383383528389184187268166205026666185190239770649794457713817405957052611841147042414928700154094037122119352390235596457930246824765224382436488337277073588441716303487350542838611964826091452725508563600942569227734440283480929098167883940723411196312081720447239489286008949090729234789254921248443787317392671256230000062539384060054506035056823775793432029969084327440022745521082029158140674824989576539433810982103517222783580148290232539402556015628812645286532531759875560800637743274986599221044574437371563962965161402465462243961043558906554113338927762805846535777932023021974219069631613481124158412544374181529075356435516634450087774113919722329065235299316053626238248721507163124281110548060044951358012982002627124254871511666991251893712376817896241541353691882607307105274187468854374954558462942876924156795621449318146845330107812697342047862179157209940116419852972892466637134417266416650801905650458424013586977585294627021729149426394165323726160101325805768085839410626896028454109025055299036323543245636768866713443623389659821170956126656573244896062884049731887551527892826389106133567103187163019969869984565677326226828818448535549931683623331818856554603110999951792909432359293244406409815154439077330558051462802806112534451495398726861488000329458789484209020406755384477569386945966564016768389333230558005371856051960947380463230382072225167855360268781316000552126764004796857633835985349628729526347609682548731580919223635046196933759221346550887089935611957761249120237889988011499631255672784535470449912691641469979318774002054027543601684966371851785967289624203048164194719187148021166881377061582561865525116762403781480853370179319664521937699150486689490768384728995075580595392260611106003251861737862715455712574729176679811809556846649549311780219924483375523090610960375352978341694343650292996407086625219477541768872880744318467917768044797138200664636003201529790728333696639665184305055797081528560475424381339588365979931483121021682437077610041713141738102467849903228171123987080415308011408078373540399037120457517734978836856106365762278203153448026166333283065215655213511081907423399867563637584463493585506724803297858384755505955229205997848259971844882508676871230964466246664867079100315673712623572935336020576915487639386367713596602496128017728910803783706535282665167624085923998135541404666355213200889256946927924775581693210474005376811493961870443590309809858309717342780037456060835428401937535875606385012200121151454751177852825474315875393308706005885646265094684237133971486334458660979436473290280798808124129473152591776400303783963750903232555335568324944412121320897157560706708915717015727435780233746393654982221633604754961143300934762723583137126072642043649369508423044677741668116660283542749622173559982770754360253878758732122649593525148278557465400237064217993206356923112186735501776266252687283950834469485497735047725460288556413215546898956359453051343998971761922058799277415856813683554475865727668278651668685769850385183811187120857879746292202004474116761870128538337025498339140787323864755104894146003475585819563753464206426905542252111314960762019839763845016496921672243047321677678551225960517130011672443059918906902591580720148977125956625320265740440522820072684194508859964471979440843107731077226596162399606603672312881663549172179131077932479558841625973680562641421521431443315928453244280537503326653303878934572435822010619494220943781574445162597321592427233837843591304428131420681455098740294275994309692675585853366900149652169629678197716291898172619099477786400394717503556302623789932167301138649366625981054992984046056578298829498471468392935712875238879546110636727850813326597985677864482315948780956178799671154102344559086008518706883229691562791353240791581809069981350739802140560195833377802128323905190840426451871350862997510934476371693597367430976144464376865775756401254609764990777578689763646958414044659626128628616934832212830429535158428344661858429866091443284826694830359877542494938408911236794071006590159249608454129249446371274719074811553563396601702251244795244104976877725116036394864875853816491255608386182235116336254138619249591810283404560789083560342091839567488800184979673052846369992122299854591995589742922146104231186541053574927207587504280501135030662638501567144447636554696719750290331045426724217759258062587354831908459611209899716334592891869606328164550273975759523368640199614847676648090069533445365914677587610750435103197857327307672052245995390993359563226795775231246022678032309470314159842689427129755632181722412979174884077531511031337694720528164918787428470971500083770802368954995264837602166970416315206750726391748213123938159949791842826832698500070494128882692709657422784273353078292947136152262572222190168849214292119318694576931135774301427612630547177934937591377893681552654381607211583842385808136424526253436150525837300162956188781589306360079147068799423913454378723703673654250550914610711012084297775676396898116996261227141674925230085260209569578070227028771078945256535712952469679680753353977784770884546361683332455427611211714812582122639127620117150157225293186473027973204609809436532839061879243669999268059885230496741647780725810828855695750035173793505306753197433077834298500000876198605589194295073416302234420472548338707771365867187254833001912764078979593265093222975211478197582920196613911127418193430752163089128764648406560974763254077047523486413666322317710956672153879829410310008233885386218465975290940120096349267483058529228139294100763884178308364210749072484322728891960203085222387839851953949845966217823624519919110480807835404700421963253942533141684952395081980068480484143439312333628283094855567270757663636773271857102309981355503608832301975327284034636796815608362929125062962718438112869569010040804704872394484828522335937556415895662515864773956577380288907996747730468764574265104347494054363456844905946243631670056672424512940207716660658065560390402567209628697709348256377077651145547365647861056167522090445174742286773131309040588131468599284477298083947413340165874822761908826410690945140678203244075406658243021170420191600792185539677787689161635266105618415966997154009124764080282966045977769948946344222634379893311121751193104054515224179432717392626777244551320628410713537692816495021419598581210316735059433221767164974588036130330903802892245133211115852869555591313906537695889733057381787270843386089505871597344122660234333280974034228880052696166753598494483139185365661496670927457919771201959162462906169742934993869906605313246569697218766080199510059597667713193928389800197684511803752467753720794949715497683680708214527605773942132377986421286860234250755504695638203521084893971825692637790919924103816561219394970188364961348550088345545870409166274958622004984021741054927872755651268174198235434801769929248965835445448591334090688197324676344337948959912121687586182174005430600783396732409178902355711155234749132361832252176396454448011942701291867218573129115182293908082543684893201889045673239023445906474625346557901990188251561552417898426093987390424867052241859411123375117641222507542854547367675325103297411085677734524471760551900023786746681812297676536950994507291587914392661899184312807192022425841111678275962649779898586764470581108665078582664956589832365604175341013734317538985334076625529259338249049927847048694077337162974654489647471883865426966448456580644715652260370886076879138623809328977082895948646083086791907946549918327559671813492905444395200422055039716184866497408843529636378822439474229280825524368834126101082435521735038070642245025858374886958978560063700403949360716974635744717879635565197088741475515897908045432725606886173734115585285481160835495639604474726954868748885259553730550647429944177768903789895757044777107339427142858863295186400947621978995704590183707054064782679508730196206692748341984746409502133100536850656534588424331628698608643942555555058161473579291777127746343323880565455028076171357564282747017952549294503895054400172507839461778334198148334125842538218907705239879022246955088360285078213909282326213393530177131669217863938679096187786302541210890964755120303296802347211724075745055408858237557990989350819840392835727144835103762490874550018561410961534435711667519926371156965679047149575894588330811581842605116182966416606446225490811314230528173939681483493666250175690326937103981818918144041023146382784660472289737864993559089714581116427815047039884200785238444239966288649852823868176380034050561264556736088634442964456651993414658048553600454438513883859472502607167214189965331928524917189318093489899704715304763497030698795211255258540139402360502096618606712511275624508787699885366246662012385818719498747262927390561212799122475109807154953809311229484960623914663353216809035670867854356443452207303615945365662071480772115339093520382071778936895132430749218014910177198846755635768078856172304224250163563533942411684123893116550691837924975589009909245049796919653578105620623343765538233820123895765466390725595606922642867769339505763570859260379124524937937685671215006358624464958786506276719261156539310167061887739308898236331432319869434946326451678610595614635723394485468815593754629192751153303493709075353695083138093113869366531106864679969529055440559126345182872427655515140781939516220156149768547890282331825133319306814253491419165562899546413525253194818264644893047885394368072454808084420090239952949369500362486987547048717896264705258853369106523456659711519767267241834656771877681616729282743611191111161774525201971433662791233082670102240555877394519437133032625788577256160699153872027528905830116461077255956110323620398920286250500976108537542527911429427946051303119815608283776635403636650954258074108150355205308129856261189724551910945842702852831283909953731218999738966730154500347317117344572035573046072231471183930675499592683369245524358517814887341137350695818253116550178646908655574992973671216941524217451575753909532412315559874400817209033844363349634231345681811189747361004516999358256266537952275913621115194669291292734670799188177966836694652481639364436839129572662251783882405737020103079870083253746556817975155912137493938836686926590792071731655457451688034184935348241172270603426892552498848696855222960436334847003596125324907703253006066229271200152886027872292002565917112540822863700892234796193120426347741357126876742277797798114699911181216339419355707257510263117028412263413886464196074343866267130093165342120246774438121563501823730528391331330473988534154304344299839409045408258115217737656231925225384896500807597335902743606224210041789525159853441325481140658776166330057164011998782900115129773414730916431103723118764228526434466825616018816099040016635531113349439261280052158391556818766398404605723346678101648794861802847390118363985290147533666586408214438889810629002658669677692976606350845181589137158363649869774623559258268814949556653959671417300473186436523269554517065897511060759046524257574175695308362322709713121779562889170824590479875263763023118837317877353206186925767522553480332530585263574875087832214216046452058360984728561226585206475869875416345685021089591339229115796491452460853389841297717461379852889608099205820576216844469989891173461149430728443316116406462878770737032350844474842787438634996240745767962483663473131733556638207816979695435663698672139284238205320373431151661590353472776440221010469074483292831220560066603554627479238237178711429910687824151672718616590230671773265130247416399602900676667526007621869882833186793173840455704926775361857823275042015436824912494540671562272674504539538078107777526148914257752086824737423586194339309971066940048237979915837664418877278926636921550265816172932436846183158490187309279896087010883954070121145989259513254035360319974374565097597869338067496902577783943764809363895490164250591233627690844160200876808722919836803861477212333200281339063621524644527775778091349148496261545379462262025415153771432115254844495438156031358709401852274542861730694062735487271903557166990898096581272847313434172111621727977762041298296994870846055724322495276390740774012015848700971292032808532728489124783559483654563978220740419293703989139217829683972584819846110203298880564275192907340043162178425827931735337604428993346939908549524652479226142203712271965735378643849817467187598174994552233055083841707520019724111172003094434140593488300066374351273487968403922844805989164227517584680624731649762879530118359651017147654267168289851306082988034866065850869291115241473812681123166640604380859019413845298377648761398173758246613972543327819789307862751277041163482675972887964603333972601228564479437402088990052989999147235610032123809001417640216961031552638275540293752540190163788248005832757777549983763510583967373127195830356264291828130784526224199758472652823011787957513150302662457930358137812940103084084124963487136754337285762335550493735398766125537216463683113148654286037086916853514774017345741421296542601744888281023053788072714534404131355906427889744876758171761371944379202869464162365899451837704191417155915993853381253736349331977948266716938094680854394213090175315296556189408722697557241955183636410640488297183055228462903936362327563471733973470170180772584534685308980384353631976836308306116405933386643166183510024900626746717974784021419831655162123544772642538842568103365641699840554277085474084816053600323120709194313670945209140274337362242359406318884084246224125515269543964096655763039089037250831031347260905362092453710031884952703124833039183747307603788104060452819093887960048042842367876912973923600626769312522481617363925204457703579077245342381343967007526276814632662172633872146334363506594473792168984579116157754248859439347864284498285270222107962560228424959265298942238815118573740030211445468636919574287967334246728264292931069384783944435895823011982617227824207907950492391376191658094019234692688803872579037474770721762549386981578321247917778841774773433496484271048664415767699047480869199510774590518628285285838544563765340449166076415171015877897356947009302041270643836282031442159887497828605372595071536794364772430796920303404495884615041926865139849412932150932274957642261353572892634811045799767552616157951572470853510607675559866216221579762149135043053507578988097306653800118105988231641245762567980801514403380421629877556106136702394781449959999748776736702891130490765856672852382733380075530595930720850179561359193150819909722506713913573343836823699386706265107134540138835266240268626290761995764595253846685998326047819448065854864450967541544408064457318635257809164275358889242613288003309135773259029859201599712166666075112165750945160305858023812019964990629026191434850168071539325072406789333289770862788888385288531770696671717729509960299033462861545113355199825424553171666432455778291364310609876063902470391449465324992835207083945528870408155808975013358351511359289958868250849618108605448694759756993230009486504124240715591529440008541008882472918113199137305218331209925331243111505899855359582958263553305413200744726176437663908490167718521093150499485755869190109259214064142798600557413212627333713278876708280062249263046099313507707156691339588147935239223828363397602016927020512573324874766108452974237646208695981997887366375873531250121579694103805769368315590443735758989974095821255683071351107406314725999394013113129203700124782825337984650475483494454289095468801635497748017955930711946685685533022510898705473081095574936469991802185789743080088732686633160041196973571351131695365499949964715490016398064433576117888909131927287197703838780477180740458698822117378655745661275119379191703709697461345066471252891457796905232058644417141238271288227657694394928735463257250962165963982497258843439221198047981992850624898940068432576802089818718156887669577679146111240951077578803632147552117673003368342378294106034711848580915448446558084979465652413735698618654104156144164463517452050020701647855466017175215502897219369077866445140141367935645799417391573796630176005753595173913150889977836511295100354583845912346955979119945938418958311787804558263898581261341749037213546757752734483968160444783713588087835882756045719402297607305566251759901996417138733656563147686357169969442485013676900172761450699690550817622272212284241718627925832627105262284946249574145807117852205249305263508690087984726651000364690456173364055720535120810769707230353873775987754547602727855349289213795386536207134380712717612446238292804436258591479864626797289027383293127700276149556377476072663266387409193782441325702408353447418838565303117053752197450747166711041769754605406246370707843341491714004628722982070362580999907215440981910662995333521432960063186775091112039956284962163904271507639100907566743412750706335328689001147701246371614159759790525346320570127625036386024577208580028058093182699859156327146868050237452172534624724747901637220319199503402272415992969951104587391547919102538512967565196024168484440273215003543278577415212521053156286159741756987341471702631650026754874117748915858797772240446143526990571636072377256551769814822687944361788628515809971377690751921116091118076744843640894332811241382039445401134320503605384675521593524821769497179186959757424272888191426619820937310508787219165728200036617584692492972671563766631696631198425840552842877363810155095141140915306078993158999518346950210532312859072044574704919573961050617827407998249634888201874689347939120819886170099082134483781756881759859778882685669770369416980375566682843494920333843213585982044245438762843673059478468671235781516186563585113831589796290364627620434483918307753339186081211530406735035209633148246449656064635626982891846064676772920546543725031885737621874855065684787185461003411403247585143836129506975259317147845277201254787958862161461263987444749099843846718501612951055888641499199179973650230020192593906183845545295068247879963759988042385141182088514389306641123242481086243944376399929207855486395512873433966638083703444158685288657600921140949096700380070510427431229188102331350788170678008735105895674167457848561267400349250579630414040871931556341139705684108214670334337116039704337544881440787483409423637331529885158613171239033570930079135287076826228648404757758629236893638321114381862142659009007833952805660250179216408168957819518118550681904783271668244333818748081251417771745129443432204569242071552869641113636903254430057803745434484504212279805007739406920995479759834140197184654806168934687061082053766077537091437228240558057123812574644719261905010874330141743207337385086461675692196834807295528427974327466835105109030033286425413436587794443330109484047696172498990299546669473589894295877739263741270476027378471168745340131670362001282148708753574947336876561980151534549456854774117775939565310813532977194217982272168514397727894322140040793462376157631927585337518841404510419299551627750701896142692663750466766198366140770912660720748666281925292426632244299720929158867253031804659396978584139624484416882280716590432443098179675092824410274625557616591774151382783598699773960550966556072246725225265665942702445555671957451773201524794394291057487503024060806253828523257161327681017070880398997044587391203763992321678351532673143752697795505916267990734134135695172527284132960110705023243014173517394696301105217190151604659311406586977041286107123461497223928305805750075280608763387980356462628605936916165675633515802616714113483926035121562064576617563053307697738899925136633761039336512100345329182096144070459553339724839349594931809129417574926429047332268291873224066609310387575307684565352168547836900320010559949828887904492556432870459492834858832207835346827578664235376989813113368888221904590243995145554193666677963550170712556202469047926092763549071367204899526764160540570232526202407332138911253730354548028621886150430909826430006636123641680441640002277492466541280030377038522366462718172713084929429651995205408145019080691397299060785881966347866447159186403821454374255230244165414698541560056453575080504303299413318260550729426121050220994971541820302068949083276986174538117131441586969824912936945685380550913965260679981832626091885222607575011246740945669215621170853855475421459540602268774217332162694881200830832773717201632032134052478515842455715113861711054224239809981105161047984617799021345362412879521456199077328208641818230785416528028392922632535602412982795772078242383085673416956145371183840460077784398425590972002089968386681190740894052021897265893509833816781753876600082816342768429549680062680430995024966356295851305516856688599036557762575818648777778730277316121129548083848769400828823045430902146792439184966068558089394715624426697487893898190255500336724954742515762491642979991522841658412158393347606576543140285591159408806119179976060708963321275530518170643213208161804504358303356714412822172041915991118456463706524486328420692623898844228773039373971853519463879053065437717330627105404308465566434626608581566356285004998127607813095099564935535284761070787496435543292835218762302361173334268681357477980230780566049103901496266855700953112207636739588338979290107470869718248406871981033907176232490449246413926388429002624904343309068813600617670058944901410566661953862031446920568878172485175317731678576510974532001950935511518201489313984583811857210565951083704410175833579680780779299132169062282111796123538641673094058981716709801275166328608617902863705502898729135197881414003585662864772473570324387735396145217702458713786239313417436530847142682318642451209416870013450920779697456410285636539221656923528322640280681868053054288212768961313622691432957610282549582928776776415129870982195723249575723255448145013070108435265611515493060939727054304060558518361287154339149055197062179748221056497126828554977871257682641489597975622178996511908329210602624099376640145988934683652350064938302614615138674933459698032552647072766206350915237186724373139534158174429609186526969698936298101650177833035103546795948058596227949580799195389839198340024826521291065954578497562045082833640570957577384840884217099253148104390682614155340022509256841251311044012313855473504906244651018200236451062020676715801578938437481774085486058630900317533471413943791617713669122478190087134737620936949158477762440535792924589467095786704081651380524419102899781309649794658969485331491262999263822654257592991128601883998815140954481767452901563128260764765823212250941290309487739679625043312834481211927494305129143936236842848169441703878223655296865914972648155804814412671464797971246899196739721978439983735669808220387072374179301416069708458315486846103810189427874511659770323386887446683527642129999061259135432601503682267493711377433558663632320926261170910467343320412914897162644379887922575586386590233162651906725293917050091958093514778345362890958932100741886573192052570657558255687535386481884440348202361387993277599662994253148206995667071719003971009871244365186524920446885806714521372130724188827201095276030134032339001564795051946727346905944559809104860196604748092109497332389170617469964405820918073028788853328026089332645604229295994128312223889878102763290184357999209641071333244939399426728801373020247068280309233219546721590417988628004477174005382242030172146357036228407919734059163933982653022636510974039076836132083417036204656885903134673565979609372213514667318621898201525520501278332002747429635565812636760356173603194226549051033828420708379894211518334269901488758978366193521632208236027247108680098681402026631137463192994647584046865454856714475802469360973324003297167646081697213534657052843010514732148195582791609672538985118893069630730137662570442020116413952749489683093755940992374573391884811029143100367039442973771809694484149144964083582683907359803772601095321200279460887517405511404671913906512700509892700747520171921398627354887601057924755119841855242489822584213480184489806505945196963411262691361446409418073663964245915847145860053386195872751908707412807930817584244933215352824046249142696251887210032389829620795770811175860886830350984488479877721404315723466692405805790312838939115925770631967769837658411430330794802706942168281954081422696752845403321121284766340517423285549605612397077786644439973994107093019756661897803009872099422445833423588915288221911335300644628255349535474743713746105179267603224712885788317448669455629459303677186324476142616365972438316936396278368479509422522621676786582586222170663338502445713342184983294503923966368534151902875816497622435995794298325609085360042122106213871837312786235831909149794598581540936279600357411749579598613377438615271747718160093111083804086177902027977582460239581079199317548508668393680559559006203206283726029240116329934116553526452274070735108222829525421519451762037997894963626983630274764083087591429664872883823857623018312341226725473628772008172059963989091899761678063577588446994229149131438763585330657303267614226207066600210021134458286593086865048911495332934331811204357080272734372743900256573592236302599616720898700135826125209845608979200594005937794014676954186352720229560967020500658526143249066008775419979008653195478758554435049178112506888741650213484072984617036733674202755967012380123943828272234332795356241027012519646456536362382296526736533796939391969804693247861643636049144461345950280488425885598444804796583851072363136980562928034939831845373294738035438961009468349732928414396827970647958994502549402571582053770880506601093091721967172359458832976702405897774548735111418853963868803499809198128189830559056147135693636548146442078440269899577960495769831170459317548366609915076421851120217313014302352076547775970521227075614056819066595191678054792097431690900779181273867781275738683286840294996973572791769883650077163196112490614218472800575322461795026459581730186630963143174128457873013340599865850941852857727363373851645398395861722468955619038539421279383080645242746854890080158679370183351102102203306196222181056616346927172112611915739988676308489437023062877309704538901149896052825286059267871481430518990248526421746898675075072647060611430346634971997403238065006389674777685985046292926238049008336642401312528440263955202796202841533209192170745751562714539889641618491983139783346292061070599987456005463810434884489139680935944398063665564888213250671575567714909761405424788351152222385570357465741741818997668955774645641988904606440683790694406881599478819844496087950902213655770199293895347890118905811642451788148363290453198141344255833440235264966785517928608866384492535964276729066954415286657032051987814983700682689080886761919291620861846938952617131084532380439416707598427437756275314753803633887373335384248998071428340159509632607069408871366327487379542021194100804493411199502114670337621716734265807978925589975245867038974654095816299785344968194892245881992788677988432905347369949613254095215018417544605883411565937190172212687854565987531128783051453079498626468572266799032497869602678875604629461138175491599711346606711322220644069806984037070352162609081230187096287128391601665655123683552131770342055751022244579456745098329003892145782655169686528313543530014086425225178223342458375242203037572282608048153318696333213448479786018136549391358051222731628066247736400680634589707395134878519546784769884970758282914359751170683902187390113655676190147767252558379736595987373123941022398648282187665174042211336406388981319436958697129227558634028107091946370570540514039385453519040517658943669876680267575268496527920563524852204469164891416298708747934916426914807461997365546584679722188372113892570522287354598639612085351662702132122752650763148542400553912035106597999547844307217908385764040173793419904680323578107868213201165670916973529500715551377100923667737597564119220844059345343699356305423404013581353448412773321015579493097030142152549154498319723553479419987442985017784672941761755028535079112177569502546083938171676336596496836855052461888984936447667586520998558135172992365173151814332873085537869772189131676580076326502170611877835437335989105947743572425011552366234081727970334216713652961681051352661342993553156973823934348403265681435126903067258986101574979227790192845190787661433423795339562843671352945373553610265436481908156169542422112400374969426694754001320246100193514259974641756652488057360625015649012304685389275290041720112909850444870424036996257791486495270033117500464476418307561189947351604775087687893859261780410762843254034810059389659950049156969123111643242542521081389350676844002029609036327209958875278794335563200651253345923154751707974254068471521021015969397268288319623018705836118632648973042142947640175363575688203437899904135064878990780155445560416255819713294186791780639351959244845096826954650866921835566097975978187542678407841951407985615673866701385783196598705428378439818346231372566806575467080260108361883084519290940168707214440908980053206085751932176575718549595506355883386080822645885309117822582809690281019721349443011975909562100462081868110290853735171888971098965826890293869964624305464826304699581203286675167438526905722674410529726593350441760274643429474896966529064334294661400061969669339160954265861203810528845647608223604409684411304242296571005378063042896189918701188365522220161889391827094973118529641419805771969941381699274780220564122122540389704812970663455434860049187310370471070098415890009002275007565949641105853839248205483207490738537316802967999447909210171490716214522660357522178072208674534059621148488372356457196571652149328179490875804865581578054984291579752754966995867264404143862088335652181028586036430981654336512362122441898725487066366585123655072350347249965680472364758898265565514888466224448890603049067221120375557951325379184259995844392612918806032448751134061983125255959346963095279690601358626321495877701505925675466374342380968756235137397963857508877611581240305363863152973626105421602507348183213238724316864829550440478736379324639589320070951613670452870689530984275164426510699788733630135090389659375593635873856225203270635326157065462566830802680502973301468550995821702256021578449438937074971584542817554079858907509111694143948810138649559268701158889893326410501134427474050184927309379079036652492235498858138372617865490351815015327279933158353416215467889572775921634282271206890199975709229744150335710876165009429658348347686485496697548989054307232930209624640716123320358094634655091734068957340886744184925517720806347387737972713582901426697456919390543684973602286871220140791024104828396412709889159704979768938934008969202385002976392894596141170696419704621778241741037389243657338026289635439834783313686093389991194305190594444826658937629522444603446507483731121670350455427119527918986898378359922466789817137332287886001868151032274279250215299609109395327197551589036225107801198942449258726142702500852937122567582105874318172310594730442458331835682018542689835502324898597153592817276440990379715636223072156152535604492174739880568797864803774974058777313335082250311702459288387237950432640781843814427527841280900169532820716701175346978471134121885352882266297256603886870693142007682484562812353051206641442232196883759236567062992717761690812123493884237264601810739284797718552630735650010850654348671689928968751187042438650018937522487269254141697412295081313496060738396612432561648101525913343976994950426097409770618229710391375597426165160751098233689767288276584067990986458933545110557759526505595405773727611285993611139507471111473446201512055934543737325801757758106397610617945496473698448111053925236195877300418297701848759564185107989481604324465434405454834889524824164585388866759756425996379878099282648944975287893019386662841824447072837225169062217383700101894327584432638803871505811793847617513649440444519323342954009791348902697787915300910260875561885781367843682693048398734155992375661256659864375536177997638594000190094609181191693018642590668767644805383089012207784387945149183341880736840044774583662718332202766628542469110026884068601739120242357925696355307217740702638190387103575671084587709312537823276860778995830248458747439064678791873171677222595075101870513667181481900241515452210749322868110650724683708035452264120191939423448299962677853386938982539207308087375303526976851858393250639413187734906621458336915029908617568096523956462380141758699667065622562473362576213244245457020006114070717898276757063707028979586765550429268596854147803977411457762061288084516597326141857573274913977551027965612223134220912619214661923768490524761256813873965064077302197066454762794377651393402251209982902151933170741740832178747165356048435798477981195440250061999428970495281635500319931758191755142917170340710304043680744058276817877565282681732427518665313029927659123942164078956359825701187960700337312004584144384464677828081211774299247148622072409488021537043919869217893547364671810316261445828270555582309028660566497627068372514096246149754941614951483943447769849353232182807929617047875791169187985108527991252273548460192131738365641100801101393424991233836809762048504370307999923230715444478861800891784927986503902188913587927315538657451389795290114033027320870890737773514682137912693467750303607363407397688147854104035479066643342639121644346668414414973964859958659157427349833119941736937483243603311116151687730884089763352612985921832305830989390910442979128540229382188821882428464690304246493908001699850248295158090964431666929904764571900357213974496047278501312526457530368911884882322243636988634209881398407512117739574494371798031983035545903238622377380574565231603316857300572243145532107078880053435999802577506559386110812505830312802307463991630785225880327101929477041455468033213320203371460221117793020287375500854646861931030508771321350920285074277795320940808309836996792085178236955360281947624704665185957275785697343200890059220150288669175055830964896584356445306585931825407810401619129507110466482394080729427819865528969343290038747309785911759765704545789457194910565663903484319044689194663124497763526509210326608998919733047890938281729437921200642538745919767506167202001422119777325789446940518585713841651746621032571313138333619545465209721331091691971293842516192984036247130004891022817669416867077025199716743078905379483899875260445323621631766086545758682235436785959276466437554523873792128451676264443959623709431458760529604506903034003135002070065306292730387416802865605241832624594269861542953671127335751863231203816241928628408061524033156056364224243736273250900462948062042264154247630896003696873319125346626826531845509870679349086382170933955925739195933036297855360585187454620010836126719130452753788022303820973587492448422007010114025975277154374732340753392404665841160454406229188321556830091188792726578352235224899335487154328600881412565431596409471856486270436407296026653612792634937254788831441246845030568256803815113069028017868859392132930259816334983101358136613075959452913210180617583889101640999745194706444294922253212437388448443537680410817038618969699309669356949638876040819501617637187326038869963932110748171284195593375516056806167800114139139438818226302137473859916135677341664858507168394869793930464609936211666819598095497548362843679310397621287880839597504334854814931253650330251123449807180576283056743380127417787595582161146267490553433899276104407064271230878362489878246817986145901259098862744004540186362482209030006613574415288442521960958091889273795914405612902380603274609299467621738793193423952542680856512053912785701674285193179725320021457874916570892310296763151154560083641242291076689427888531953977302620961824242752992775519549748300295827737943517479280203241591215127901091623158165360987626900281883636121757930914712987545251074618441716007742109926306186581068010274724647798445001945471790224364213533677688514409981358896923843781742030020731853191642354866397307009210730057543318504534756743944010785908850577508116748019346933024456957646882849183539305227536887772392757749252474777992570905911455517329887108645593067874601553345883376825767583866803160062094291947714108806979232472139564159556748565666644771960140686835664845888867189761353449916900121751271749661341333715311485120438106837966221162257542284469689857824225462776770385471099004462172047801508650944205115834502006066361880364692006002666648500458746197721720380325058256110555282742798446141933128163636900149783119720133502417723970028955153420440925096105902244526083461088897333641172850152190682182075811536288633199667035581319213071300578229067229177105374404694953628049478597787083552558418108373472814214066834198967318779551015577918711247002444409269203105231010854531823542072734591665607695494817978477827193405378713896491432227037734151624780432809392490635360580576253238733320147422037274469792659070945059241387078298977476050514405211313131559160934917466323344271589954794912928530086334924134407906333345292687338106515304235782497932630490481349449487533520370093379373266655665363998690355636045732359645202098789397540590037507987266228743012893132185034047960674025406496748055476644490526664940572097412654033955536244707509357084737165546150553800108658719112848435956170380143761967118750154841720893879724166338295848963531926264948585441827500480388797475777770534741998300121315520587265928294246951310316464446799832775946686130244992423147989906435517696944645388390783963014766267528060996817992182697004196826646086535187899528452691561854625391899579148582126430677503430687858141954413770869911789148388762435135158129938938433369435537124101098484341960955686207580883262308682241324947790765870146435191061995675784704362307731127066612789851080525032493853536885558220869924490673760138247030077095958620214768084156202095558393693805433223838440023325124626961729637991812267113202820079122222965941029283117789640339651461541597764188695519042072858929682516344875435839905778193682140419386562316356378162492012829602282172059678290786456612636629370130984414242906196435401069020453709194418005401676968349855981136034894682225690833036228061383917494177535675181413185862822114439303903971421651415995747327417329577672789055140283075911676319666881176112847736189069195668817470800358042461615516097342997487286037078883007630330257715953597005285831630251202949686899061960992915157139694579806450850243532364748880268352208915518373552366165526231528568718245903585497063573916551142063748350537804197999102636160021524628444643879616319558224307227389740410559307856028591291162985881511542344172254371677617027486372900564438634258854707656689757321513715171258525516688931930200240253371411866764791982638293001397500813150290469325481949751313212930814734599040146937045942183767471757804914816685934304142297840283035361874639678193426125187676354967964937797531310941362256689911320822513079550488583904319066754336409791094345328353194469220507064983742011018218227522265341269958802708908180470380255407323425230059392823915226703160539788495168064390101843071404947030958443447911139417218875323828053349350675698735347374379429957721548114712158346849981607354384002552583328551997274199071876480703597256855823016198173053238426034847550812796740341653848554039064292243609225402000493922801608861411184374244157407361173182636919698704291593892597310828471639577161723864338306004364445604784267548844861588791123623416339384804650575658056943984580401260038421773931179130604220899076077133190260570869273393429822547394400468188024630865545402596199355064460915379619789926763609326698164319545647304009274586486839715844266109935386707239901590062655819539913329021617361188377432006656776010942303207478988641163737265539919974077521295165056043631069615402097624291384190577345257095498246720618021564586952207048528011532101893526777253309075716340351646754248357555633872300330297588444735598677814534353953105440033169824498974830410029180149033192653024810504717590754112214679842156775151977671006518186718499705982282554647417481836522269601409194124465283808444807975846489773166308435587630989432645147921280199364584590104512445471132642026772709949283781601143556613281275812871751430750129563563162424124711856950428058789094345523799725160210718320929403085160003031182123278258970830970077943395270426858838313692977729719786037986804325072745680061010621864203839477873642097374802493456743215314704981809477934134703738194916633727026755829587922449960229820015074940149481111943618367350877291430152077487965804009604683894399611326328855459862990567623676087021025101660108340331458971330864525810805039214842331815519649029248115179237213015704654796864151141085369963245447209952757299668676138609909418925326615441784797983376203407213330014884220003842971090757360301676064371970958527783472401541163195080417615496660964811640659211274430350769574204354772665510667776964423121722701673035879599925025612282748199495194916289490715686663852174038551927957706571991861069386572335741567598337073590239911615572754745570023493521050812874456286144556040777328579711287557092832332155612417141223063203099596962524071436825511068679687677532661997663232462041605697009605997565607097979544703418699358913720469009482284851516812197325941954546893102426834813690809643154382003267234597892164881222594481954280732157359358485318824758953659226454428872168670219740014858652989090988874399462018346507342671649310899210432329666372646421973816818201594081607776347214544988073297804874449507170796808471879666972184121026811799270772340297290398913341983842589835429027191663239635690958943910508714825425390241063247735025935183724431635815376485058119143007735170685597587765048081870107266075822582646320943521234059150118630145541151048660447278468118285980276200454141715978784739006504580937618046574602868531807016029501015636176291459733970867348456768641195586750244634625817264316476604511285661125250633881983227772229544718491736651259156022316396658298121234077119560381575819465795354416059071531790518346251838453232044178765443239908722270107599304441600769518584346697792243397221955768997064398474508868377317029731203724858141900596095183539741408417949615412286880804934348893658032258403528580620607379041722336103249465128731868625156893878865599320028582194133416053315711085087422243229596915770273644495209531494367924847465646713147905773882933461254398876063516937250668563925103057385863040747234707634058360548970607075875805161462062895448807515342368035710730592540307086143482324866950986841120718634225632886458213488840713232354160564141064004647758238463016595683193552475165906467785018661310692059270784516144781403826717556857542532406514183938589543916984155445429010766457941803327345354827081549948317990326596663389068524957018188041909665066456333435275355188396883829928081185873466129095958784508809507131372253529800107298915497392671098938713193343122744108572530533075142344693176337828214275328053025098653883859340451214811273465064956025711081162672779660492619965730623284519411193620361114297535949921883323951775800977514876661019286561598696682202487140683944497275176005016668261039868999629927037637721073453013553058132692647425451046590250846102042565412323384582362554502231834311822738811430882108214156079643490833752102873272217831733560877788523442354425822530636709693875588629502390249523807716492267610462538167146779701481387594449642298753142474523775686935007156987741353107378788406197241080360410664958421191779822909203318318142137709905520397074627695472914954522871302355332422500617327222659271547034528865716343404277613778966223354777762967353224347506482568991535850320440461262480812695000230279695255176441943591104609041681207601753807410013973376658363882462799823179820276224696225171868708565827705767779264079488624990294544798157630215128529483066241725293791503975492460108264719077100923477786294255061218900245584839859437850176258725058607624657655570301201170948792361773761222512910432407155710770723144987099802515055831360131450579288503079468108562930986014215605229727033977038531095738633765753324719303395998693100410988664565554133655963303174259998046515650723654433030345501244060916706216877594832392571441381700346733400207717351370378137430161648458442235551070705458207521845405153709525065062782597865118303638289628800465360601804493226198943705006318135590257685501310034168201525316851059095043036632404040861824995806538791432049344024589257379798363191486221759760298229930635740509106458619153045352330449868443352573613993377002353115856306304489099865294083659734080214126852933317331010170324173498309716745555907088116395819387430294151667809684890268810084436146882500737049999001643518559190677638069399110253406129299993403412267258535879897854044061821382095224956682803855930801198395900938839496372828096340326050272497566622906195487132298940126393076019478263411205072968063610566719537283630689796839307662921840054694511727609418541633980049667087056353917616292291287916769589552241621217038892717752929833615749033945489980407263769855679614306912466639522843672294874662094337489700376012840702909648522338591262548156171573890251017456707958726320015961060490062306179507640485506209347942308183600420596427513802797859784583072667004148649455389247727433432798443228705884288177486808358218989153853211266818739683550625863843188610459704752613479814291606970218605766347708578028503842742878961276376732816318703577992715953741799720346029734983306244468686356823295779808137857301499726093795796254257156911512468161725370746302078291091255397208407102905584320475594696417288645896401979854814293534130550123422525401862601361944197062078776123469665756981309308013857912735993738582472574660140697426891454778286074119212657521590912954421580299124386320580178827031910891318586599648796841923487188046470579530917060941127343761734152413445902813580840670833411950664620417690375889018493353574171636146859876176018369476992096610160486761460865731585541246659588767735819604843127096640187523258349080974654577918409876690846780290288759568051998128387817318343503794278654962601279566611219254264165620388570184665702946287493880408778762997183103024110074422310235666396428068958424631857777442964158153316008593365386774838950664232326825262690389251345200719982855632848080103000751762957688999371867354376881388227227720017063820529144197115086885066612435800156477999795580872921736698978488232342346151175194157268462121680777842838483388133021326990584081608056204199178622615453501342249364984862222924554836276220128662940113732940396987784437993653022647000166914272557002448156009243596288231211482698047819902839196406583018148745346908128306911492293407816486472566015081976249637279601932772182379091237574357034228705043583221419993296874966603091655008213638488488081574808291345711045765092024053064478077840041973033842787687935929719963575926423231857467688827983588294944323154297811888107464114922644857812859772220144848102865543417484701057453364873739756906501832694991595741102050521929702341445917185715844647111178230595059370439298451473264448532531181487615477538190938802545421937080269946251665910431924858988140701392537383818618303459285053362740184450535160889886381675647678935366625692259216046113745077684375588523820813499258606409189997918204231556922975912833703815116827919196060869563621414557022027037925437550494193827423310747008208782240108433193466166863093330340788232995146863030339733013907873040560673566461810113686174310766838101111727194782283366244006915890451169288614628548226807570101826729274929741191624969430705957807330165884931215118242608941396391470910796456378659962145751231472789889381505174517410233926347955912377141257239709883271896631342060440570026669565806555591362802503642485978048337196326548092684089187859097932856836478629563587715676685855668520088184845177804948117994738564510274853247420554444231167388980453522278861318836132629439808314395413436590931861035428302068356603870141797772831294650278146975112626558408481192957785723674598467963878483197614220775842431322802917650375394918424327978919288245365391585151903074787360288550276708634115583601704663673869837042891351868508722285059691156919779220948557627976512678158331945677822376793919996498440392041858819651859241039289857116652923787208583631976477307670513692784802216678808659121856776016933855379828704691185094229183549024784245911521377085961867653241775828551705106699915866767974349329804694823407198560998568523750402757580039806951637132804762763900978347895226588344048045230702411827041899899528324953036578985146805166767837248151039333712570731278318586742914796950711030196397802650311228797361855839132843522353299889399584826923094152162850400319943463945775067467396853172324399441978898797193015205962421944454764036167246652830247647933129096310780571458453770038400443528470054284475881567478798929496939998425632280494341651908276423427121929881400260400394550634300420232407116937552234448360223827337620872807630067111696329754024173423546674649597931651306582750251115722758447605751647011165801402048011614157781250384225504358371867232704171505623827213519068669810356427846466636266044356411093591411457977859999951565410434583322075982770946116777156757017265525744023999164196953358056336136171516849719187875629521384759569421816868897627478576099156831309844029905441417469020412004718073025107551350505006263109517600039713458288693508884489438921347714317890880402783290080240066749025777014877730016950112983156955558623299837205488035691670790462503253986299911943855540617921419353998341424797572189463622909326254027107236512956614317689713906433754582424317696090521581037788753195105214804028274300559076923929140221666186458276521366013285222398533897842574124677034927355757655813161106922831581110730135640792555280872617476977747348363073542193081169305266116337673367365868480661488650996662220251783024783689465548639876663210801230803315170112723846642559687408404486299858783926386817925101326406721988083199148214950480651931229373770881223336630674516761095191901084906997505329317491775081846349090953261105433520139742222099038684539730269167700759603033011537971930611190616878089756772419203565029777604373702969569957059389376048951978500913284985864348807341506286082904857308836063879750758239736287452865168956512026019966865359884407792655977140723249067781517879871829555195281380400324634246032626214615521643702294310286902202110816920287381198517254949971321115278427409962001184487066033201801002075866247490719523148005418509301413885749431203036733383852951753957042125749057902318125685016087751968112856112204894059158947241607951063173702287511074216996353036792123135480044743038710011343325382290710460991758834436758344085479028424109225222549372276970076357171282612539117959462909199291360626883292533561006083665333748390343278367086329336019667351869339744978678131034671867992954720552191095747443651269145764448521179575411882512357974954966652242176790407353122590662309758730284934366066205642238456960393565904501303008766852090082680202249443850793164158844277497272355972764657797765225418452593003645258671341283548831192949095954297214157763441917313622898125783939330192366196616414387271476953287079277709396577231357629316957365461230259034390628757932173799767911494818483556287225331774499217848207040841870613336300280863093329581039123420083225130985288821628142526359342406944865983344745253321955831913891250865358991975857425267393021574546963208405646459982687172303127033699749811847898012980744024213179025416284342716006438385487501065590091272322330951750982651546493098295665915302302473834296532399617739092383895908543097332880535315246134566267666032838737258963700015988092062043025134952682431845290177884367592128370875088891634790376279577437217012965968234480987343253570493234610482864133118448309032145552315048751203575849820388303796460777409973562992402217927450013588627273626854659773049080474158860382570022316760363924192596548758405622080916170566896263061294191478957261763499439175475340912638839283562103099257052569926956522101392196838669361100397732095135489474258343207576434241728009801031243122895524701113997870345293731807692816127626346511023197688851852434655993078550922466901780333510673135959298539898943421164292333513914179052101321021946136529277905622883737159993176454345485745560405298990978561281018589960449650911596477923358279595101180168774073697753716883148699577118396707917731815445233970904977689150103925070076254610620380516268907132616755687422453243880845265138040119364082043926189646897772338988525658686028535546302050623469833246549249267539247505572264593778336129643625546531913195336379279520303458858533125226631120510875275314117178782340768354976558557345815577627213231389501326830244102453321657004482891241938506843558239526476741573546192487676427712608696228362928824407720740285373300984316242407280608170385232507250348360133026697342616428277499411822429618544078634256564291436038896048672499127479743802510483678143962027464324098026612625094600959248513465777889151944393593839656300787925648274992777447163389631497067048240468004209441292757999590526186709673155413881499797549022564350394014518698901552133194379062005819986020041735087347813551185099927103185148984169090796758130581823985394371867631282715269919863832399144195126324991087931131311683082239253926751083897427370165546796813418032300052643582245328749919716219721888952295597285890577553033937534900560797635079936752604540311090730359649725518237838046233864431821376948863152619259654782043828835484092255977278889197596491737407390309796438768193852322744606840199997705067754590741722387202341284216045989550515980084818458239007078887683878334197064161012422418862030730565028842962410975089137212068403479015979827882375464401040645413091088317080845196305845637578543924016308406363646112682273223606996726480363065534729557133751669682470141115430581962440612157648376738195009953717187066605707515683320280440011610482708793923180713405585655816187291615667092283603691708768296527562275545513448658663782552400925041298917681158832370619825036262451596588856252069255045935091084997233246116089121352148306702731344005296859877599697692534567433227956150538787612459268946930041193196378357839139466949363738768344012163520259405190416458948645617102798691075604009877179925179895033377887962706762290174202826508649043196585660579169758215353798260396110105434686722254449957265137238957026787307663712687589045162401087131966285746004951568920457020223576574371557677453417091821513979672624495665179981859316923342980964049571060243876011768273488632452819733186473079682359974330951987903241673452249520312503563703524730427463536663469393582996775353114431174773054046197574388660629193486141646144068974194682336195071920131447828257567759539911243926925780576623617568206178318303096776605990525956635597636340560135148295042444384373542783751831419349913352238506242494451958881963049136357595301869775464633890667836285196105904165323284391004302334316154318459190602934673429685391712637158199139665518760129549074820372629770475964123786857106433598486620595846312980588998344477927408685713390824787446570046482862185644523385877256546419229100052171191320666946403423933801599522163531017692079569383795425440116550053335557978494283131800027295179971977768698803900842435827244230609020684390265133529769393345900366728335942278335451554653841400235873585171490815953774489691797976858140889499652051048153833666043280009048136057283594812303253187772159346969308370443760141334118992473211383361344415955622067124454397021637910753524991441588562834651056764742468673393957899277519842376013368007422093084032465485430361947351082680246086448467575157479066504435712698115915283728563018058888873118293173665149441705840647816526439952982045251331524261233299304727750215391426878891228337629445705342672290010399522320184322050329683445103162359761426138801737824534407472036930754126877501090873941806808310012138141041247114274974227893157007540404849931039372444045105790008054342122024252671909496183171944361698467372929385226999658956658553522880858357781854343208457003706378671760651770034816239070275906964308431882479379005659309088027890877496250641862174618937523166047968714386413928516898258644727382931790267902434330583969330172396539061358315452889576535134249938885242346174595774573238850010932501811255729415728928521224130551243047392941260428057358237090502659964486043082006021452976267852645540863716170305739897462609715010674531227341812477239685542554305310753730533214740524170801694006651280155704243889053728298891501383940268712232954039864002966880683564138067334474515437535805382525339265051403467758233543849877492930281145211558727511889615676846802153599410059965856995985060606525403218036661154324315487307327142608600087861646666456090124598679775703037933820454731802566668459651097571189633914026597855147406289902305921577671888350452465483234339223352829171717841779172205835597646664992887177631161440602081040938929758477951292353624152896703306600711360918677626344622812100637849342389849874941631639557395791134419810986224807053776143116814481987858400847179746277697030543054864202367686775342032178576214647219432224887825983967172236461393864134400198490064404826642499625282352770922110231646329810515940550202329702733795399173350153629264106454320407962060001839575864353540237661628992602666236322066476427169717882669113955038548314680583169278257405164392311920574351669814669378470728830329331266761948124838253842771259251783113148353805008105775713917569921036849739448668544112062588479838421320670638704078569270736301720944657378685945713094813717049717050938924771052624315503488120440474984153365731322829235921938871231810025583835237218413184127358453216951384746239908833170870518458254806732641420962679328289640720909005821178301385825508559716375213881480061825360468021772096164226796614795053191447221505753737671531433290240153270818647991708104384415025673179354995374005223193242940424406622739386198185454911311648704427817114664191400517800070966736450716224454259516867619166812262398751379356521746994676827869053487876611078976775710336232890738389378779569338765208867557385257655529505194700905195670694596138363390362909321200581350200245444634449423011634311851614466546235618627538926359054079498172799732898623101463036655978022519356041135651201755299641517566067852172357356851484570623371378227676653633004148943791712455222806029240201143103836454053466317068602975991059978984597246821552098013761148826481336946535654784862341030324698228139508129300572527439356859828876425044121196961692102547166400637873079836504142596714665408014734632390442254878155301438419928749259064979435321763608667766349297401815421297337106425175074057416613235345732817212753596911474384925781500474940133131808818008842749344349263297235546543484061087875971735259793079712890870037778721052251632496101756475795984976065519479967828016841185561646821187106842520107922123118889801548692322384810838096801180321481482894354352894719977573148801470187032339940261831579700370526351212832826089597750697657394610534980527081545247633109951403389957651055928723457180464759592151444415571485112633347722124952306429986968221390855584078551771611734101943449004714992945567697514061689146871983342844569762150397027014667538537218402755830595626340559233091954501887268388171666479966666006224082125506333418019512637126107463786631843612860936672716624338853857740048949259182023473579908101792935198515048486330324611082192138398536667451416687965750102232596715144123596401151824314107816558852601770215381760154650136718778376550212652960564163528176617755276146842148971041831901627190329182560034312125413693602027212138277220594524706876959239762969058119034715011209875089046625017716266348891058370347975223373805531359861510959639947087649713128623132828298135363451014165352021944270605997173961529822513824464608249080500810432479716632802378583510438402599402231073188223023608836437468015633061969871251948103262545202140275837134753319206457853049933788301734277615082913203187480034375178683817496838638802429133875891776081336044257484113627936751007843343742175119669046067902565654979550941552524674558631710590641874528167019903006310259423120682107474917243101272764456463550599150086385107020566568604508338657434798841899870526320278053602115621817241840440648581914312087248830937478001702067182484440152834980027568068689179135283930448558497141623036305269601590447717346479870091576758815920043931583684966077927900549805217006391354017069436493934486381228653699088495864184589780521042440730597294315570724563219539126444958136189593948338711494909648060854473957264910564860089646606257245116417184574752197860624087947757035057708907031840650447132897488964584238520810617781994672560662358482484240051603647682347616542929243788124604490486877636119561450933860204236208523920189118120977584978558728104578927215614452812310240471788479647783417505760181650107363280748082344597578578271385850452842327518839976848984191118473945572285207449805484994491513085801164029299841140101495005562740999771970943513523529887312518474626271871131581460648017147389173291669378231035625918278289250168661846589897737724529452760238341931161591432153453575792946650740407824517894776119465361453288832433211320464826011611281358538316909271919528174218829571489384814030648273295388496081712546593323347236704657046917591557543298262246767293029117868035185831603125859419169837710298394457348933870260542845895811373377250141793450828785741522860090558407476771951266759486220881321335275619259728437249255164925547449324959469912504556182212625202920500901955034774460120615347030399985833854913930648394407320457633647339501725598278038334578659123535139305325694504519079772200673965335671401104374638841086422191658674070337728938376715204165681205916770038495873024751144845820468138234728983044491440280087490086494510069530639523659152002725792045490665427321074256037024549267773763581024092855800157152692448383240179548890236193342692824118410883797317869570206481275055779826764159936874108552687295137805270731127892649391358889302753714081457358560477609782198142043438159525481934973158396601713203382642006726279867752047528163842305659770232752658445968368624020142720053346584744888867468041315847881684494920162616130107948403143573872667543024190313764738014340319705350597331603373840953855815089308377051317332610270000303780032400024011371477993291368742600296491502815128265495895054115695419670220341777001511479968864847639350957909272336346412698725557172843434750754102383560915321196749051950043989756047792449555805119860608923402625182082908759868612593297397616618629647241096426518506866172661116190568104783082965563976438673197551546670199909493101867538290336376299895668361295392632806958638546639574784013340421523959911660559995682410628624806166906261860197807789168574786311902566984698795529784943137594033005419005750114805709437236024459602031256960701586043732977555514064166290824321826857176771960679068073656125302407334308555919580515297677381808199183112751874049864280680183600470823551640488633933322118323948713742670093180016346663820125409617314838961504709875492574291830856099117935510510059898275704782894173735126205424270153261999830465792300145471759831513482044521302779248832089091200371752716468697090329303410888621339090692867779684442073892679841859370700743810365549753772902139949604211325644080854158521327466092070385213696447800759215345067681858468944094943431048487697230778698321687398080826494392575960917881869719931325583920926896894186428633366321086536253990259118723450355722783371308685757673371180574594759187288834434436369755011028220736597767000913730710391240901950943562913346084404961880417088215042912877485887193256016870715785907047839376794239028149681159154128190137817739928497077912010918887244361817292694570579345636698575236108702587485908045309339130516454893051923066792701803202359732762099446333000766178417145747457952265067860336100909679452537140759681330651273734004229459894795279410412728574108820647190439861488979243820796248447182589851267406252502926253483140110870673089751338519454705279451784114487186765089094823395260555730588200026802124498913243727343832405391186368793331196311916359779327168090453913959918346366201414641772814057559110093478567571462886922763395661510197716312711703071017320265512698603237848534608279668793613068520485446194047384416926423356606793854183608104789457313772155615153691751533246332908111229009619962076677412914949013925710386312121482856120613400908520712052583104384657140928304972595671306057887682963196954123776558729186685524834237094113489578673950694180033915198231677631839582179101962048979839188202685149327462401434139871865279354287714749248611766843669125914049394000729288334918364243707507786747027154914344914689286702889425782872294530713278721152125440157272207089165845869177913951199274694905948421328104655667425685572740132074208259355699720169885368841319523208341333312096288321519625155630154651735380790170890080197234159263253705344517466048969275847319199564630969213846985788006095454026365312113999020158492157806344262382973129108336224817510645814828249474170651473060576169467895772745051665041851460207802122616570435321987067897323310883773703574532645119855904645731378644417737539795225554282487489876072706393974732526228723526781817961191756528111012037092825069122274172354420952236335548923249972593762387472273774914045262246933404314534232608814194015885532527405263994214327307067547489547425680975064653699200030737059283182245594949105248274394221908263942983510160750681381782448734507408955344235837199809834460453491452821509433395072654868675121004275435868586076604955251755206603232743824688280124649030164185934992262013366147249929652566529120097122963282349973891501594683945733768647134564342960966984369513358546647157854389923430738845448741667571297779207690443755270257714315473636829001124749859799291292342770889158184635654055948488244239974127364529344975793734899091520876165487939893744098861983909275414460738105567458625862139047863572980302946805784278741293613268501770420955101841593284763090239517281290149618437620869410282659112244413256907954785775079121730603371785947628145540740477750447295821077138817700194093832846399980219476901920078367191164124690833665108218259701776235135497498583670420147359347255413211782931872540712228719880332912129595379335383920289664512667219392483985560029902403331793217738570365676016335961350030068770618787480838924424127012970787205549025053386122969678204130974624387104579007699317796926371410725160164403117594934750219552278351055647796624113018994835069285098324049271624069396089805226667057671787581213329812904613800801971274138358716663849260068180112221154145235398721127053450229849511837848191504344507524349832773442692175104345035056868843643322395905054463901258253470005273220450663072517768186067018874615186413537264662159309525272808899575335117811117126378533796504803240244119987451166200974484799093972019791378443915075436740042688447792348011104876518729557271938533483130563288516482502901129680184843895595675584988812563010834481893517715493432942618310766892380275860260738994250305623362289317301028269972375206152495149251388331479515009614918436306849601220224372616912017503941445903893211247196864044998618062752595204634792256092036964127372657759516246346374505046489252050839661695233697600109193981659758764387673631353189713957415165312780670811999253203616360628698860719464913133659898789114843481650214019976976927081126755175589768197065112104025750467817191682122920485438196564976177656466337770872981264634823680164799193172469808684900141005263659150507711467716098121142678497751244338570108394568594434188752848519301827222809727284238094749731354533273809600966131190999539741716930226379086481971308734951286005493363415085705968094737449851178786561448218620284049692384464026933076566627842799293487094079233240891156783278111582463785456410994424308197458406471663186742954152732537169132083247343705293366277016858560335534123976525500770360911142461391092099592699368910112592558948111423850360339809523319122314761236874799995702286599236858018369739218096024023313995574112409093684777545592475545286203566354195695425691133539813949127425266403979938041544907736307719476814802123466640181401295983913026173746131986973553337801839001136971836923365096577744722076108678401832878288368860242017065609667032797816293401781829854875487861789132463463977656865535811380223581854623196632669189392151611337788360336958236611690123370083685019502235407991199026180757071052539584156106535555969845058359775059511035306894166862304286344268642735008506679340341008178570518078172236963664060366641977997500593483994161622471509671851738940894619568498458911671942461783866719568197217963853851487137619414966141238977326182215676338112121106767344997228562184809937711757335047634240395723398817325936081702038866756844760989022680575115257009463543726590752407387515076172742321959221493829707087178015940614716005580311007484465434608638263620853208336421419374633169193747464621623946842472879706897287700876977477459070799648179946896529165453220753509762581144600980257530479690648986042610917797037822625286449436937575554940248785361603349872312026511699961206259871798645934265314637558610565085256324516359933227847297934180237931709152523689707602071511834854808018992617955667615109914464014747552052604520879145335703271711746362080213527697306539166578106368480740162020771249761123864021678007770207765685951709716803385522383387848229040457192073600027606459066772625100856258093476895760319238308605321349089401826497581474591187772291523220384550163742937543794016631568163572995468653436081345175510259085781442325641244799894093620926811506576581632671430557131263819781468072571868658535262120106757799290915586370016204652764183483063868647072139813738249617889538880968103403789032424501152954310238442006246861972954595652625678749502294613814195536430012866714184918990494757385978591537848236903029200395510468123078020187197880773162847251697131489814197620584715670324442400809848874137066413433804483066622979828011786962873060277728177964981258482890925749035888118672485831370975361584785880424410646314088091662594525048776800352325533104003095050308726895655180996316580992670360683440077634220266366954274620702310484144539025235459392226004593804312810275260865342519374162564611252826243093661041046698920442645831549757308216801806754913175685006926388681256913060078462929288414665502540690787585584596124687096852169598032457584904600838261626679020537486117746339611909773829453976019031571581721972029579208342668612953271638916157899371922548533519121787941865995462933010647126518289022487704432475272682790243630099329267144689257705661411964314337034464821772365748491356900465735305616923614393150511284287577081510720179555524286958673652239363319570330803615451169309185021026540053704765535587991231394040240481271741705613611611266485421216981774406304143189046655650818454768738205774622829332927050981483392898452212098139115174154475965106605785463165124140660546794712537502804177268494041923032499555020738239270937181201838519885709593927808234889950328004186879035212270937316199099108062695322035632920195390707295440662543812287055035812665322863987311025649943518112788719309629308141356042813548081603346758001389372161199952709602270910454594706905306675356119913933432142987483642385770053484934195461009446199629235938882291606419026474225332498994832852673638554608511803403821536855422143140234329010438646410237650198351929496347235165519695755829928666985337539138650911513956161515591527871318795288824506887883433453802684983643852104282012686609188227640574797188737221346049981213052100950064999333614408598546829190926261055777640771625914191661615581722795600064987788671621419553599272147039376407969157414667542878067155824290613522396604212773935452361973612719428235256109966697024497459983531009899140372473168566888224206771612005428464764907829395514649914296224605832357704645686761838862183983399556663179229321596633571900300673096259009886998302214232011395835926946237814872556384596988155281250151044803069511902885138136050387842824830367863963767073626526749320341019322811347862661074934394114279179421294123403715736713664073062733534438795088597442945619289102329486975439694824611681500074403458959897900874603944040137949476210568857315149989921527959721610463355799044961135297422957691598144392778778047743964273849642436730864186818656346132423742636805166089093700754656951998224872292242589306370115141271654043555210309856780693334241785479536075239192915532950845954076977760191718682947732641922827968620934792306268739167092115586075044412726809296669398960694176871872524308101559511863928428324719687947276309704919411650803379792843719273281297630316733571656257548839224101463128335287107421375302588484278895785655727987211131127402655075641504897100310001487472268203686714843980677118611820301585412333790415802448983594967768945634185232618549827440377225233148219221954834552162695646317730631098338021669024040716559471249639934777773216868620644403205504206224764665156573309980574917677111461871996792746118413203337731524732792192313325602809783674554747839819557174538153174190332679125153962198900369181649391082636918897633201833377853574563232008089085394869382770458613721742824079044470098940802735670607202489924185512393707767212813715735851175996155848788247623964298410889269358627225021227602996775112202379916522162001696575732058760879926809252678732937310033257047686603326866647945009159728073370074775005265949396357378729081317188859898634367542419137604757056399220098433405613159794798012560515288337353778153436918498358874587574192142029116990973007572919178908348279024247931123618956453493891230316131615086479363907357797338696966115930776067344666685720992891032285913934286724452205234456476285375696111973754216727984954060452666577670471518615021189751401721583122027752073500985879241799268545380564266174590044637085057871233483012206815697342238280533198459081881245586289426077102665611751489012555979119205590352118966069342058829152002015329216946866324028038449891353437487610891888218614791359828100851097246872818576816253788994493839780304287161087691876127026660555993023652550408558787907961623377244995807934063682303736822054761992054943498501507864390614725075289894168380984632075625869582709955206894489679624870146237796179390859925339792359029383846073574722066660081403969343049406606777543849125557570687626748213955200732199933058673729382633373716864669545203416483736628322263940199352025312206260040019682137006283771087769351628217013305553313921863990409358425306357526712377884904475773675964236566330744463103496852432618696728067427669083723870967201137726772354856482211077415813861914015653553155307028715068050083541838050590064953579165710755988538038381272657519483059090756012013109564498126600525441983040522016144550105336874492201935272949400380875508655208770954217225163476841793617802990048496611503058300459333487754657596964757437125689396523622473588116295858827814515158158867720881667856476478459862308524941287726301352901856678100622707037186914947437219459743553069222670957860052672948927467875745404931107023126813173305133079632456739041011291093195658116875659910399597653875640101842717327876615879290921649468635768979043910044451079315045563527368374327397396258674791555697454226057157911976001579248764723423554683361904905906748936700592153833416108734778393054809585960611405411539186224181899277063694576601985784431285109413596796220891897339224774065050170417795221563251797728978709698247797760697158175370859519931270340671005865760623425340018788714748382455893110227060643685921908718224125214377900910318076247850041626810040672617406761919870594077638064842103731353400902240592297446287158685336477309218915504397817851473762756574398467868877139509238563333180334211147085205189412643683570402227118942814383510014697419902235399989543078862654690905686143773311952543818576438159170726961799329419149159413978158418411834751946996275833419264590615520724937627979866737916434912264693166854580500250915744408339266829785065608626237999323243551797054247930077585326721542544103256393714860920974569166085469847790499223623081176424320320802268142418441970621177026701155002862960162244543301200574919128688679054856580468591854621838770122185755009216971910493715820578230572880157430921706352432335313609932320868999776682356558041726994462971782957200139233858639953616272202313648807614699624984302831595326638531086571731939541176660496339026246508848821752930328533888924061758145985368731030305818991074417316377008932446413509727861028738652550146202170301308976363873261949559917354046874752121400158489342612422379890297100914038386473118647306153463958872666490791846874994692726129495962562923205919108883387163070613518614201293907135137020394472769019633948543068906334029716110785657731896477969374894480217642030153137331767248624357259671012203376526529601770865041347288906745985926215118183762357641649023791457655836003247457525601038087082389585137504197104011002206806506115195819520459073857615031650301562663278317939364764129275912644906671027539462038105360263234029333130658345461324979989749638524996129668822604157977675784652773546658325274478905218584906092822975943773703608642819828005995301090023434532068741525385503237153736745513579156744605872496747808607863920208763671416675422592472945328897221416155608482538715225587077611152285520340210412731881853924865659881541726373274057416789623835133815236096186776250240805849141291365216475326390366651633087623051163537966247430319758685108068096627040395577203175001646467367060094401211515190357993414610065424982588864275944620240997820662928432696078589907608492862893382294921121522454307722277803657914813843959323841341322079612746364239556964576756397629299791581676580233302503752675624695249334301603103144709160721977990821849944022261586355120294468101276145299221028672679057964172942870111487438114493951510489794385409089236748115295409763332664311390355767995448129688492503517810365122597085751760659346180896849614957765047006899677308317853347596594312692783508940663816998903868946660810416305079924107222265954195460466150432354828269285436350613567655752394908426257744002374964257265098646340372055884327932879015614807198707425287060852887573771115841655537138802788696069789358698620243214757380950385919830653490673673779203085472941597551240906516010087433527466944558964257966973440782481407957732046217755814970375271981862201661111983627346348469291111010399821419980343040231221112397589608022102286682978903758589552871219857635960847019851728785385117388275659945893840250099634861650507757720856109190235808605902345400815552354603925632832031690923879182875752787447297889894349933231057431364434514480744113024055701299399839563585192259998943498781771973889656110169004883272144319300955236247750779592489554750521989104766977466547937107411558366342700553689859354134828722340709983367758761482597075653061849312968371595392625358393741634098668966963428016049243752521556203052312936624646715640034982916423418728161476022500256538012718156374831157028279986954878207775185673998693585542141309734421056631153291210092582273786456807431952417359568658925569737231152615225767445147262122603029062496830944310965891515513605274442426460895687673148965540972743075024712872088220508705043309595029451500721099063636434808930600574315422938436134572631922864564587326111962761033203999807244394134112351724592536869464421193831329489088031865961577995343303875815068072917335867526837541909291657031186421175676988510732651683978346025630013433268347823715836560795744775751851502036036605736655887098673820497298110979638676542815632894472264183559595529709932994761329066125105800484324433370506116863103604431653582178536674271315596669217312619497755126629154574668757015225193022452966944224128693080007075806418653066670523637804173249837897663601342861650100093117223076456430984712262664425154744007431070002515553151257498110739747729745790356234309147737300711565701971514466619140816405070355114306335152532012983239042055626478982957866641862955193974302715834221536068519512487025328924161073152271193514093597547477519397015468474678625356244733997483170780456945354433430780523567190891192884314180324349922900692148759741228244968769344838260471067286569786234765159869039510416152034047523931984868950500260476965434422544217114745766611826998286065563273667294775436805023746446007722787056867832756882524748349315019129437995259339009627635052527018186177654036264024290842625728483139519203952881274211450242802637511196697987350495654401027841760909130861099526994198757866200271133151319916027951885530691730574639217758622638993180052249708151327685340122957904615361403472479218970805824544401211944121818619164997471069676456928460780763029353902066785611821571154763314061657300666420534850714481093013971308995679595514989766699483331419418373597903717212128827532258598204415980060335106261828004057772911496299848237012201500835631240783214008901324121521833418039030927206248602491757163552498329820036325370210294734281455450352995292772657173719758185509726397604517102082469136264390372476352066822386483896861796333463742381845741015149603769150545916018163316087652793128957270717902999078276091726211169264934875351954263400628255378142394841727464069065429408976647938163561086583039444645461141112331329820586275682192802519098004096724923021758482545669439205225124894105054940619265794014996605400600186361289594157379766372246404022835146619685316730957012546772843849128677864012078778339200091288838935419373909254841737595346145784031638997545298390209253143803503807113417746314662082264653570047944120511313878226042182241909958398778056951896069446373778861502546719687943028643927574221137839740401862076919568026950250131359103362540460158569498305357530455984204807922769266402626307184524316704656087265930376903209475736231489609367916621154032492653658325796386290633047408997742463676848556615275981271825154040306588529064315161675060698426118542100198445071494911412011656448019999052492959881508412049924133359690650015583779719181219205126441861009882116307822500751511811087434793122397771788534776824206963191062060764847722347591591344810861551483833390809347842726981276977880943336870862998441168374840087245787672957353727292956535669874165459194881421064061443473886139355088978532388445074220180630571554413560504716383016052339438427703885546922018789617146490199958821236516892927109449489338626565078860284967662087077384610280898288445637607015747685839377968127506386519800034747182594010249851916683865955842871289525777491437956589807138447206332091236478812680924506178407601379712394593221857701334694901803376774194045797900179032372015875531646322096870584357677493181827015336582192915743067405176587294479273372554201525764179715557349675215220196967269067858956986807374399239804818446557212355251752906655445275010211169653289318978381367292318853665118353547588153397586870295451006299095037452405673558386671988622933316474946759544148065361770707444532940152880642509426251421813267906136918319630874853881282123639274468585002035758700491728103840520047848460103258417011992871882540813394505779288293592630333708124285410058662110189391826035243366440960582111975263007581746815972108448329826272657945859524148097629820649855162970252422547318152688009169916549780762642800032777139595875956079567016006372489189148883371976440300930202070294935942483972735417835697978121231529371460133462374407412250976079900119376236331130405817429354032402333380550196734467479519207493163898634943425913966380307114085265548308013115684145377360751156701201431815089282661818573113244999519926163612093431889252938275389298713361569984824470168171915028357572996167265282352125432191920838492120614051745144596820235969753571365248543616928661769363332476233051374381672676736248438336477522453976037415994283720026583795075142595040584317840842654248499470845310335587105076517617168181124520642961273180929285135727065762879412218462929807498188007434598638102311385522288655825272978450243121070128963756777842969431967151644635150775459259809719216831505085194855847042134259521844700862455697508711766493669342283622571491733795838354702691534919697447449599558838830573726553155504770786592808550305709995639169320911043536363844845698368579454266575671025932693425620731926985734893179578072015198154883747038331904248047695823338530102007953078747131315684087779901243593783007502176657551240557608285348651322889483129574038584087618267289940492055021638115706713885643796459972360208566288627194992174175756158989092291166938459715381314243013116708915251844232081297903711150380098403749955720294990850256319601034324822021757430357645871444460535736983484737934223805805587744744496064397367140652204327830954939490393826693754394709303831825438261302968603642719967470295818658658300114953252279900786221296180454271966329871868007923487606436573795433227857361604076463374870624437341942801211766461705781650277397334730138162411528687308444102441964036634358638137814950518541747602322000767211072845147786779993784375801389736978356971293402839916732307451044854864799589978684449704875042021655251183505572302566900988780848782093803692576096497714864030316269926883567796748469755061625362962426832262834094436956444859234904783390378052596245143633674823063143254720777229112223744749164270737432413241587875117000365888696491489954874832920876216947121372151722195993668806573608607779512341324288878355362267598456455506633989901597731859059021022082319514618121114305171178661299942764956767052089557258439863705191469826682690615042884649579470522671867760424565902068444175229194221945970884146869141443868512515019911517049989409832864702850173946797594486407806061322734360768067579312420976136939213299373428345848397774530571342822128645942182860464747707787379379220972675020285253312753500628384179593805287515901225450838019867594767953208912463500739743938923182968877172621893347562390464040217273422147215347916555449230183430131916050842545981437043861747873664859302110900274318475373614922426718486440777942934129407431815049789290732346486129375431221960285561110224717981662504592344271745063975260854559520680140447029979178936113734080662338183129379663619757215632222504475125766133898519842326495987738314362783206061663022851586266714098075698841142957031770843148309498479124063083760400612813294324645754605348389385553243148029155641002748243320262159820332351892208476619511919588979910776146526440752625784310582940008507213931391081846292041439447036283961417406463827752854282199701994687917978192952039716183984059858900975252595822505702500479654102994841918702878469878551031389314213773516101348720127961747521907169465150749618465451820152574409235884170606509760789720076785265549394637783013908448268929344835536441353145431595122781373595633185534572895440920785418104624697168940406286533397909505012627001277342769849651350328745115609525175315858181329338926400170956247528900741204782805381682886528683702286522862534324588509976601930064181855473650510466489621962468053893513684872556512056897864929438580561735684974673797487515683187160482949595870487245674651467313928603290474299245088090183907875029083907596790679089301157124509118518217824150380609066226191508605201804284376321959761403203826988088893428527854168504098320247873976361927062785394179347427473679806339117201262293776467617874919720139109791488566517022712205460448706235267285556221793991017442027044231676170929854569589496252288617690470812226369560242310480229439866460998794463574160651154395732713441978007441466843253493850197214117455003116319822292801967388098607840881407718490119200202226170596670822997698470749602533418289146082115026830285324890487655389567534482635141980119573949523867130427196360541020716626285782631819706735712371602853641243650022350008238513593988412197598196083096977639214594281573751222273349565205496281235242144524976476452205637566736273763872682644543986061611874731758073225482096175256973483861268484092546792728806186966452520664820132346100233774775032824487152755314622830406044261342240186623272313108159659467226366358508986054470774688957925574347166114808433255651001266730206709757530943333315891627122110269811695955035487516816166813983584347564761004385268243285862384264998447519357478942650697159550847908301813042919491059118476281737352256267071658564929636477445670240507511733434491833691676959591828107882639788848820622082499031794191555707877431302111821683519486720584521084667485306364771346800383584673933377787288475160839530195333354995399237281989929664274464919022158766987512621390882024434731404244612516860634696089356387748184763081153435581047492357178926142874450111336848471700475965564335286063448455436483565691842831051954951507114510037822470650199360286142477034426382081989615333686548245713565516526671189566265511777013845890126800324184487621408633075080666390778856795216492563123687292020560231386167818953410192145309438549708300686974198524368117092880448818856726803267984100043228272832547707312253238670551882469735946842899177212729532762603928969277880579661611680455952984761617488791580732011987138596762168715407179282405221892799213806812658456055146497734947152318049917762617412617057376171121517658308502851857948377058052698743640511664663633334601980268991721831497286107070288972892150583558332927167105574490080735220674090914195782541946489198809318711316057632680786392115234471400121716563942937365484802708413605673276363991059055452899052117199897862469665058199227859453736934554999352255595660335721512140284546828514964844100347534896670043591675709838465675958533201141243161481033109266525761359673306894703266225980916628575310635286672942450081752792579531296211475429711379875298608886522390729845890453756173624025159333714952251766753600361005442817982310964562146647084931587239783687824067361860635449335804415393724115683844869501032848987998067928309515427952048362334464760227502273569694069976546525095624490799468300170372149367389210521395941326058440518556340124882830987657544622906933454658624917134792315108599871244518493065156268591042943915623654962320929586444747533034283487273213116372666881989509347192397695831186265756429825405647993468339380457347921629616643748472261758687765940395283859090531046860542689519713010003365836489909171759658918091842925790174409111257219785874998895075185656610303627372809725794922036415467427424303489569063098440512871680883578356883122906387119100497302511161598550457642180653336135207292407994666621220026090216769917463458079957216749638539034254562824868937677554888772355226606742084751053804449719440447333703675706795792636771621820572114369255600364155825378723546165695152137288479984178763883941325574996425471242659352084871871904558128112879276516402117374999447108581538901641453244956166726036466532944501512872692749625742961935374083331880968726130245580064835765262328324651904289712074879788020696006508862882325840126161586268049384044795665745261349229015525305261886776576846345054155924999931844274001223538703731540748297339062648670950036859284796143717745788812802693912545280769383174064945506344568842672051101074577299526965414264300293815433583002077655606277731914056013607152645940218112340129225015799201563996454216217149965670907028112916515630130188495693820438905720781371251214173836973444897603151843783961502482929919508337749004149839752132949714849533756631555079138348123864983691107680295573633794426246244330111370232584818092057363747324719518060811414661950116421569299377611610708913270186026410506178886012372305221837134328877043708177312080161554074862750392593011424089854846767336934046259546986200519678009248509469850698193578586982383151171516200772385828277158587563278949303176942187817943368702066190333019520968333222066080116488011479286083854535140922173543516581372488981676362190761343534483660534709937163222017413087624259592492357358146342969377242671702270419206706811179815133072002797954112712336426610367656796368832374442984642977376659548397933588166674509706311124462384247265752532417036339517153204274279258537556982926148733938609399980114919538094652328485823494168059172519072753875128394389272382028465681527959228314538297491945847719114902220357478018301308957521662570015114416297604672509031524874886927404584982325158791124278148242732555076236204536217503396489297631647402764579760764775997295074825582217948650749615732362645702970343798902119902141557885426767080967469085878980880525876450384315315035322630609286394462924032770354339297899774493502756266402424487044217436406951593321924510350589297263146342872033561531750920197981940164255773273641464521929004640417670405046638508705522928331103844120459334578790756169569618309602479186891564925779333448759685949313739173478354940941305353598430032858538756435939024223253189287547556341622734810932372594360925935735513363691000187263646662093914869350544093143531844981378848080628749807972988991763095343385637522194789446641434627740108561605739570273317092041118727365528692495660567400483455825268656139136895344399061281072958219599603317941260199629870110548992350370038299525589348599158741570467740494680470645080134505566335377041292055644489025806152064846340997810957415687184906476425563700493409643376124732626425159485749942011949021151766877274130910571461027940738299417256746461001929182295514195974859765400433551783798841092184980656954296443346088431945648953633887876606720227534089770242787501652606243206227943326401867922937002088396551696244957537158839188754104071683747679062045903438310921337455571163668687633076940204346515061336031329393144951922417223691702414874796238869933820439278616031124475663724383428524495827884116288441310588605763873120365238990733207046021246555728310275410619106037308051439160770532857515385098028554474993059788354363986219113972105777991111262579884913563171954147784839170908948204274102854717559299755937890306860511203068091578914108730960464485804279510923226897365669132601711048361552158605869817902746256797718063471495513771650498725695339454880332325754602460290552697649931376413284556304435305572945801505655115240327680290685322460752153514570069169911227579620221354057697198225955246492877693952040421475064346361914980424727381532600549331999577534001287807853964187010847715780892843671453063009295372756571502000270702396656420530997859045945448195879017883027097131914000709794763282451750907530695559210011107384830034435078843517424327083304181855493671165853481274139498960915696672663635600916767731409454974129163602797299173591621674132910304627018055957958664086855606107918989304705055559705270334863355847425311174796911403539583489926364725329696704846812589593173479250844541245103621143738757520274502645717483383884046847375622944657538700739704241423039495296888562204219414241078267492679913426651110127531581183454309059213365712966315279449922904739563165609918470533776403419674772612213470568535141134292813828927353521004868499884557523917478239677670100674385129188027207399092376181835779597071206557225938104963531919858979583648050180402064512326193453540389628537481737881294920058165675247199489466536543013960752996378427282888103690752601811224550194888135775502051923766501847510849960370608206198872418695504918338550096868761219875100757147837463694235919165680206626335816177282914988103102699903784993632393996093421920492661466239767993166985362917812322847561936166490687311745268733620588388772595448517315728142823278674098620859495682939288540833829864885548468927182418287980156128632700609780627476770234071077257661165670281034034872572380076766556715886583835899993572963615196243546900034755692163073720915827505083196574393821557214003914767239177394809747037852972996214181219589462401007834340060289961987752840184552032674917291230632050383236020527673872492261737078104750091025035322366370806147862344634844862395793009292757403241303927842009499052053047089751616168357988172751213037371369007597014379522720820078753621403753628928698323492376011183523503099131345438734739383750283471182683204433923490314607660420784626106256203687510736149714854018766509023888087368196747676990573235739627702764769463776205036997770899222945380598895859614517215165190601448900289035520455218461794962019599357167317853361958231651669994815140060816034623273255170231650579399475110145903620772950307844488571077089825988617580075140755549587981143861462265181036510443127890322170462997281200973628782121599392844277017825151010150926162803153867058188302166006433700493979487958000794244223824790076152619797532114983193127851989202378987250459183230823112967129976386292248013750062627611080599666433672464252993834137229564906442263104829448121040692912134072455436034470525448607430170874612072233479454651752830671905302746620153779018824132965802805140603800851596214157721817608456914218211461535754086031553501834900743995585682624510163737395586070286205237283272326229575604738364686446721343502883396711101101540745750538319181031014192629508561548495501328863593453718798313798550004015549615198697676649943934921904078180795396728621488623896587029899298682163440893625263013627536744470105899001546964482200561823654157438036962308429538250687999745916495474919006394284888407613470829139273698392377969030844375933449036820889447302836227643837065730524039135232980310568143438840041733804086547133664901055141210098904331168658641384468521778353814146842629108483693837528597887550978712650547606648132016113039711819032657023823869053687864857128334395224871801315527922190522112035853684014601091959822407721729302774035355434173169083762942058829803797918703122834177286751229700206362863143527922707512102927528188803266394333138147998328672810297854308265536820690421078657680998832117553087774798232679434231987104334002301263962957768485422260104811930452135227257900683453453877126591389740201905000140507700839916619222589099011058568411433520605802655328780669981084950125531017337044708662440989176169088701223139874243362812632645638498799200867105150634959050178991539293433987274443326634487182575532440531690577568820530469565729603720448254514775385426731880169049007164387599647367852761218133708800472269888222876465934871220405342584987345496486253122255944988000571599703649246033849174822029475979805806404730899367095292372126118428494457933444943045112652607817628880376714030514088522944493136640659525478377406631581295723397651121211733153586025315948757645786195016263095630196707173352358114721256116964138409397264409536695840319940408110326021081919847415474539471867831963700920625243878817306912925262763359549835605449326924508279248072379510336982161369764008716695152676628230473024029921937086644895292161993071866917559679906736040786843753548842208831999098511853321773919461364371477696525257378241019639986599010208008180953667348435976621715536526039398889020667004512973218450878048400537496589971642679708848450838145853084246850438869592712468704113047536704061058987650407698947249274111680023782264809211538345860072576778498044874243597681278782894958031724047387627074209193340832158363154456179195991388478906925817133874167358129791487717710657683956777153670807137340347919969271111677722270236718235123148762354916376832612656269273652352622281244538860198203974890912815935971803493504546201421571166693581768774295243263791160691409926069805648988887826237741571872691879773058987519658413515977950354645467043936607223843433809528179409343810704084003634146379824526617915644128845752742532074576632365407788444420925181882004913855891254201610302700722099639229432774571437872453482027228806241377631625027260658831790551012154337909317449989041523891272371470991491771861188713244574039391545369705183940455598783669072671283231902012823370219090016836446643306159570490848603595776897284713174112447177015037798207901631307510536370490118974164595299938987840839196331178080132043140703389185299343510855816400428627392767937572401090384362182122177613912335891525237283214376947344909984795199960632872850018383167588510915401136775505705032285550043280900948909829702616533400151407664423626982064636823329690412558135257488119507094021478832967239035327856955164390207615110469172795667013626229753102976804948748725110487317484966572663990714896097795296120049277142341171363683870165764141998757086340968117166626887085258814698129008700237750931994029019525820017627630659209268352282952315664578637149587434052801494069672216873053686355087497696211583647969056916347063101149318871936140050863483061386327357523044338676632845372384224454740072995312147824147436433065959712524092426995070668798269383557804873755159525632013120790029490357153174414955791080428604400800493979903138477139659396827907169718553287457488750669179259542640322535891275915966575322601344177433762933013067326707797075394301691045957748864654116824540870688014047105789075625284800676326474951750982444748289844990520872355211931035539093092535458568109624396541447981417919214932545598830484782865915802782540011064858279237401737608381082553748429184305609615816644363479830843421540953277092873250961844135149013008460828110981196618973856969667275577540912034324949944771620989618567012018908154896866850717282421770769622394209298630318764541160787066225488581707363050889215628561639477027684986973484487296370382585134587169262441143578744251548333154597538362128862084627217848968993443351069914811804868593278117645478827119501560973278406629232509479947493762932514914747952066810979623862799847970862148250988564916314081688575021067922675566079164527783531787101985487794742920737372933565057946110714943263493492236683603342562557355349402761484652591923858826552726823607796905232181837814384150597155004807781805896935069142288019303428120738580668653750600025724370778125142659974992053935540529704625813929916942325703385977990156615403966430088553209603922184880951597902022290689273738180363638381898752590136758194216457618514532793808470036588936722046605684095929608628018556574123230825887386171422263417510739800195459450085136355136704955050650291373013537977621327011609092876380632400327973634491308369825451774206401849521543985711729013516700706442767042684595017023722817176209476424386861194013842536412664560082538332053504781887529396361463778236194860002308995724143432533304259076572899584141959205362877611817673007143375137841165589696742021382510907712968537162588072477499510915643989472044075581930861565716367935227557560465977176232370561246323540824577293698144403094973496551249359731821112456889214538089089519772598215954336019776660217357944302214254930318536249292791617332339960925699921969241677931118694385493847724373209219407790349122440873755603665618856118750724072240745200864006187782963665602052743216320508187271202480641043675531530937565259219750581918219565301559015949568152783774957299500666760516049106865859574441140865016840263531551116255958760467653899014063094414949696349766400813763144584011938261876115090259918769197117860249735374917637323843315525180794455609510879443478115147249498247210673529937115756053838337220974358508094455041463778362471679183408452744865136947785743531366565697816113982777808964424101929292421001036566947489334386675991168908413777677731506255134965753235254756580654776582972106573405710822131009388149467704143068041301754770132469566154289737982348937543989011251943861310945698577172663376693715248110508137551181915486182433519602786365405415275107872084320056390671155180025931842841524719009940990557956006941603473644724464983264163662435182058406132419565001596873061278415846785476722221521793365731936040589294038462235119969791340320194327039942035337100822652507327366034110950211855570933465076403563385919371352167126319469079821560350245263223415830030711819969976984910580925878578028700950248823949849834841694926493173549759467668358984807037990934354083451038744184006220943333406230094418260294815240675997087234729019553933131452814858430765333829604824197951926791252682325622625117493694509113807317358830322964726441124305877166268327491250033980382426877074986456180489006459389582705583860213570017665176253110745307927197104675025021742431982467133082721956001468993225911046507565232376238867939940964216705805224740856061368079741985113586431549849958001035401801920148973223474341493812000466347702234382586692806432356912295743974320300688008870364390257580472092751100981800240161561640536295551191329394688927164651493808604417848501142372785850948042044327096539983863977472464293251404836374688606154632872818387689410756907657617311186753948942619237926179586306663556859832202024138618020795005506995890986226920089955669407203421446343145347647895295502007348536774347146413610827928583913362678623723426436463268990957184567794874951019014045220444443552954865012268827054168586394069010641013938666809459941947033789012320074605937432678935398629649434557859696959851606745631454350742316992445377161670387486089622615154470364900331155861628136566300205035773984715982363717144799636996652826752491884535862939903742397827828165958054306610944516416324885288344336980323616574623825704215877301435056931326904847399828289759091796326882722331028702672043752472626063792526192300499690707197130912819909145950606194141865261944186980130388076031190844492578080762907790295264526852055064757738987894523366459272420593694222750792284710540811545656007748951113491695961849927801299434673166301962321327106591397269148951116701187907700167590043222117044073674274514491323691443103170757347741029032641425413614483297900048934772550872540204805441383273673412884077853643948466482440761194700469443037698298827819710282986101109804188939575599138243741142115996637093977456528413232264491483590199358787649426538335628191047986802163755213270683308209048964132972539541352404952144084494307144982206687914477787202981762291979231131869357368825855521436757016945606535621763289900484007782795790401899082512343779106686834474085537554960766466415910622961666594696284358560068548143508901206061512272413021748279985933937002454288168381514324370348725060080388807849924535664733226789025808421024951592543842259333365483596744054472260157547622778702791397846963772734216543999355926159145936068389174799621538807730026731756625522124489708084256251377203716804900158218081373655874766390440426058514666889332885019349289408917599461266679389762800915707572484185860248612820843684015374381148248601948504385237370019020043332123801788317378324988772102422154280160404236892361832949315231885088178351781889665478377201767924313103271201479444964282463865447203593089802732595247493533436799512105697635168923311352225417442054427482300916193978992074876224355002330780730710735157577582282863910378942494604807184602929621366576582423104956057759641701789209467239477212201751891664630224247173806136658812146148072753336293981812324313051298027095095447877346558352804470815357315124311608662524587279749632358310444832837057823292048340442055055509414851842655143396246956015293100458272537401924160242045854484532455590391850633313844651858920074163464784057633176827390404400091782241170679515316181212377406681926226263165798059091630668414430952649248505950593251281748602853901957050560393892399982041338373826535857728143782704036278704688184210546981488634440920594281850547239782190036359666460231943618558744391272307846690709569708992004368024510808294277305045974939450918494945937169615151741842063767154775214170749034922732258795395289260921490658309037305918492944759741725669192597562914146015591855304288814179984636178926423434837934027846581268956516556437592414746791862122706251306043876896158140969884595338413694112807000954869136719652543446345072978009406225207575964743638022442075137959169330088557656086484587127678115537680638042506821591628532506238949063268515583318702874103587513356290014534007057381625666832437072707562029321876023840890349136897339653800543760288785388716620074239401152441680335498933918827734993512672421916059300188427792215471259157486967980050071610493866690861771218699085289172628164581174394567598253397459293300122918887384525714868725511084674530089687728874677095218163849252599843330761368644604734315633433425950850711750012437411658821203118470521111655515259760380427122238297785657517748254629621417985043207627923530411054873273857180825137225802385044963701461952129937146665229888675353234058258244903024103710552715805104877064501761148782945205609127679467764409229622690702988114456056629514126247317699798663036996465728792121347922419331201449474820328265668529984986430480791251154175109663527151564686992014512822827821067022151861862057323545157168664097779298301406563914962808993903601646439630514947572215775884966749423268055901201707491417195039950274659472862450323953023547230353873121841528122112616009772422714770834352553518274056779459000829667911688405167055905348942964467573172069083179196197788929235217293771692785667463119134183184949126946076583357134358392283879917489367186275895893540211919612559376978635061566345076086436119693481962322104041041449377380494113640995843206709226258679136630626034944617455164221990723799785367020023567513907660039349255313672300349252830055386388719915936788698922363341870289404427827517192972005543268679235793309888106786265627631758462236478981656595570854752075430162767586386850243586811722837520919194834175047249961249035987424649300030248053620755110014322436489313577602844236823875570314980486080371783815304562662460188265362135654485982344751940212674263641910662859234221843696948246803444049478742346194908881722118304257958863189953085527815877207284324327348391374828868885280658490074434685997573884094196164688157157025508367972278972359822034246760131074357921519059230765268385121322712321499093464091792864307845196624616665670820640033535593834596196112397218927797449146850175026985964531800677485660029154668675254114371042647783667884962673967927677768644667506042725155066531915214480533610266169474303480847426116464848219312002349294805277275880901937996000592446055358959878887861942525174621858475634065586615094694142934439635660448540063809797899353715893781759195836343636688980306713514362831478128493996421481208755171023443424719319102831196990064625808608451624613648613592613363367808223704112846134435191451618204041132908911886343786111524590996920931826775994039484615336930192038876584515651678323634770201608357667608926408982815989661808714643774153833705454982100514901533840696062489351907022050139864156040992096945803380161031690844549259905201463182108533667802751768735603857658925376397242150238464998753210441504561094331920896951193649563428289981163180345436404950647187773937018208748192648373177072657409545775617807715006952897300785278906793958797923710122203696625345094105137823440260361652256332074804360529150572784568128469150667212845892453959894876762677756606503077787908038286322479813930476240885580725126834883922996072655179745362164205290168301098155644995106726943773896788425884587453284990013302760032761446765291545113877114889672507738692781296952795669457505849878753056332790601658888806127899097168345767330717189142448472773015308177485911316820326905045671015894173798705839454066519741565738224418585204140070300076856295171204172432545122033860089841990250025399247692480911947111404879458611872367970892130808073601387750020487333294919020903291638880076951738039332092165852765998855069439984277628809470887326175355463320862101317546852439302078919329247871899937261710766520677095960716578101153277227242701568898552245503433784861943857062658749731083211973941587457342182252216216568605398272350085541230085401970722405928883094074747881435883574176665414186363898667430745068775309391107765619795549495206671826851448507360883577189161732094900070645738642123548316980362261008345135146088834016069769907379524768609577636634281954604410528863145467107147091078872489967841321191397978307184524401636208503397668781931357578358437360251569470099755198835926639303726570922710936830447219885660292917172128582054267915836867144913867242183245068559358033481721688760957384935540685614371728265802139721552561098757343325555275919489926453366202051163469918194051244882656913399666487355298479516193163693435973106806909908637220615413774020819915399800236197420193506208854151413142287883552066057410410675641584234446419197520115970915890558239226482168997125967501173781630766605426815474789347297874035916486101712386876504383520423405361182580516736501316013911270232605689498609975251513052446363142059102724614750705281396045264234040348879322345460902426163771056279993408426510516336025415670297386442522979608821950727888077297014303332828528481261866775260814830962126215990737189661716678388671561110570152877776164062847541360135024134663460217026598084723154719270875858762556145815657264942013771672487798149145304596714186286858054165119188062638288455516888281065880964291133386620445896165997537944246900344175988768458343575735981836233527512862771496449462854458635826621791292241550939076738893830358989838697364086629988670391515247618948740564369513769639879115414699378048586104496299821756630416622488511936394231303183215615885208806201506535086810909888481432589348910038766851684941216576419513511685091083079751310954164119652350909622785307109818312362097624950768220037985203942544330651263510979253399449885718937536706192089945634410849088204968915685527884881587952717677982116118983234352992535273014893343720158250662226786113758541807128781798369835746101715158179342654552829168935556915170218757893048670323507568651116992426931941602087421776432677083104378592996615240052584206148006138907392774029185486214879519711278243345242680623968472533199437253255185676401468025115815795115816725060372559708167665145684603148387526036939740686197327166081289746953967411302206623856437637235223834135211643044121404768456145371671758528420938117095295195141884689888322738158396026462064280311862237113647650496790040607786316129500834992074225715053565477334583909990728082658223659593369621779246313551582425602882639004473061718169025431952279810464501076539289847368589380025187300378420076055673997820859659307514941986990808488880357544430990815035443949337160198793659897934013534962047630265950047096233791012836982267089490184843071150075437666213219714585996442561107250255758186538060816302751625802539654081905271489460851697171706782431217989220108299479727654390356403277451527257722690901033010064857117964783353714151119473636379062382750197617227530116098275597197517454547964617815398719580267650393284649603527745629214736752790801582560819539842457796300838009993041738649135737335677290904295832410830405523415889713475478384333662325576480121222958958941953211452059991505554272946769104118752282345442658003067159921421889243763670437099063597577555292143901881989615366162944930546615597618158545166076304002939947007052946224822344703722187021161804752262201439294720018669853144265055172409288233060594343778468206476266941089803674463475490839973734264437421311456059212656279063463783549678644712281706734662493077928076232379177103695996703392232790333754252931376519466763688777489082106311721048409290238533067558991763693413250454351804374777719928525112850564705889089167759518399408213706081280934927834138811859841567662697296080441501304175494774254426524043836074487499392677378334518400650558436630086899890342087326376965249702451751347751828978281821992172657885915670999239074920142812012619733927980086478983525473332511944639788920000240796278542206623408492399152271886506972865672786928257259739727408904807861771131780472842216920765665739372884325415088528510093915315055697589907723159758233703894726936665476942462990739085652204605933710450305483289367495068881211123160338028173956337217093526412201880681291612391570084289991459536082350038448663756882189383763428040361125547298107332567303618738931431316398739969294331190850317005268757860936693922113420181725611387975957118427869505994737441566184361378578390083603485322409438303970397875431083466177878499544440498446727169834975541285527829269136888197210936661760665966192754491203854057837471759597503006613868751932964082953434531475733476953405249409611098221997283534439794915334799193091230268861267845308453102619455918955032502622739221081664156027179198329607488821236751510029252863973495455341441371295982046913747203825589135129206805958042500494662672867492509152247532889799413448804926537775797563329899017146072297257018714449939169285559804462655283921959831531069291685441085945911510111119319481048931079772721024777509571064834564706892757494746076022735657173550821114909539172373904883283584605834798318435223490882176667137468482590967216974172503412306551118606959738641770846647386503686402494212407659113816060976646195601228463489696306569176108315022206128059022856992514170610800024015711256527649058508236069828556869417698994342963414627631605673056139578024534598237602248534202277274320071823678392417132438589990726654136621794279145433124026011294149798945318092811686204522867456278556083470632800174817628338051291674200215214860654459059664283251213786529426045220136706498801445393199535030249510307123681859647585610494223425562618855141760719881598953247170360763547047132976796179062117698288828270077153271047400863140018626237825224539731769932060133532101698163002601464861433559793307101937015172894612601799695957548000435047866720517177693741597712814620135159044623270354099540639716229262448999824677127852934764807732140432272575534222274730716988297842482130161359725923281305505215666784910249525395962296196469826531868363598859522340771150811376489432599759663372670963549730469799571034033385357368914096478767390880655704576702614399008819266005755606513106260230676552182902817133151553185160392662390133938355823104935083327316249553317711665269638099024171962183744020603847312121135612773789143741538507461826400775233469687852392624701134372461736724627648340340061199694245315440202839798057572480237539240692238041698744298545567213407776433289285896497971088677553230510179810298016607921337712875934752528255932094854852699484596557335844453983485716297740401001486940868571657759868220551545428485597544210691593885884865606069526239274179383852774628587711101450922778933333577459850711304298998819453248131625373511798156618216878087822832184627437755121241457178870600082287667007621801244854119144238200288340847894769606393408124358539471718642714472880863169180335531791285089195780862279491592505640095141808185440342913395369898507520968694758347601715608404148289739750067252348768846493325944736573982810366758144625730088092304157802644151115726857453426231189789188737140585658190180325913689396633523516027829365684577724054537608247744747758607926150370302782172242429605740882091998171196837748799435435130321810565015522241513292295701634778220028677123835183210824176533517831900082582113141063296955568004014921079662163094702878397892686259980594757662579539914493448950973943665383232138745204196739021347462500108658979327900924171324863157980458404611440406034673207862566001274866279751235125199403215266911047143014727451700144820264944949590737068027219883354265358494792454967155111687794570432336283755002485355881377073681714911516976771246381905384541122205314556855602818865070587640975829608357098015063886034234185047148410104778451146964546343669514335737439142826954527811929972452207002081627878954867603421617646651216673617484336942589609583762953562576741581150224127423940639555464348192925710468578576878073641856833776115046084994027498521308474999931695717833138000200762017781378930998826506704148544964209719418766440956361368413372117059889917506905235441999501412893769764014495611989735993361029487479907478935407971219873495645882641771738690682574979966404356843955253782515110064556543012972614873072510737957353628916530555143288345916465686350373711374340353834619895016660450355940523685578431715783827621193036839003958722265447259060990079750055913571111662445676401699957419397588047532825679394730370890111228418167201305203154686734803281689412738934505511794744558578209058464692009273368917694464176093839822635361794035891365432460806227307514405670463613135106661439832389188919273678036001721168074687528234817550627273100249316496359412575987074581678770886248735656015221279350461464826282251796487412768332037822592679559125899729509011285816907802657341026223773169366199078307061961977537379572466889997788236895763515507860581867113683589366590098033710762102353838286439804887256002685415921004843959294504598758232701481666070625314225200570117717168568557565276562533183099607886586190268244052800278339648089793323454908607355773620779249345688596016576556676531991597948223166467276885668887820782361297825227961437807812131121416246452774918498310187093616615764399980907911788413455460044390171349108907593849406171027860069819364738351233568673097700651623370419034060002195803804531474147699640214657955652915054954056420220286676564609267295148512227761625826145849792875496010834589164938251705795477543675177689110900382909881391099463043761136980007452486722483601173743756165886975888238304378154414219015589732679879383494234378099507670702246970521652959254929143180494086157051787025644148687679041207377383560169609575612592650566657963338379368292916670623942232841031164182274302105144652062161979818700343666817151986290799608119770160827635990108583467632131335577481406927946814589200115801332894043152148237571163053101642816653826684255710507395779054142877552731929288664364875780532360357484279402695478058991451755054884449547746502204486614482760880577635071279537415635378163327988079156977758519442155331452277566045049000058817625418813447719372075765746375994433231334131310495720147830711519460605452713237111672892853285023779410482330244778115152611375446146404118348420495720184431530450018841648759312383786853285174542936414398117273451706936978562293574385488573148078721089543460648585505311660149101012619174600214995896389046647842804326441722501174231295611847251472493790908818985739496185369665369989327887358513801242288561376180085066716391137768154154877963752658249166872194093676717757814368339616142337389716488272411195536842844260246957356671597969634596351327982655930609077369060087904064078039160121446340004783565119230850328113296848374890385385296705257997950273892628878768561403591481383463317003988538736333326843402269285165950345307600994091472130637112386677787300965222970443668521061245324845050802110689708282313743160910265600745084802999408523600695661207875241752249423494015288618614647260103596717633626662963752261386615244721416516220385006649849006316471223860682783283771889758433141419258965428175051929289417287502594857933342699511908345827640507660130158670458478586024749301032341417040783018640164745354633084083364272328611457993178962681734944389574246137029636989544783933063778922642051165112510590401974157861254703744831917650682696745897736763685375952630638755019219272581693280928022109413688180740374642146509255517299735495477757769302122282540922903448910413450599377014388016783429015100667273237600768958212139274871506025830664250573088561391215454919182696437709588937154562037555757500093915495195684234224492937349597183201902677708504588528579783020256551846749793840018233312386468483320397277577948587010606460807321581201764035011335578801091666671674954953524083559811133955176895649853382534129347568154629979034206048902913112540868999113473179358775551934026307588345872824305135594262423848392615223624184213570251295928102136231739253006670832318802433584967519706140214977804121348944032424461504647729583333336591547057079726886813899395350143152436992248814038829781269168014462096854288291587307343344915439226295952088078546298032395082659929665999410461091123584552201078621361603534365864931977638272395034076121536255732994353807104314342631133539831242243641503322814649717631731688014251846878777648621886105859197684900060149058774943279625073182415037828917643463800463837083415151841450245774979337883846484015390434174637689406878073766551525953019210463033573455558762416304325027574062236365194003001931626338410166874729962201217282719589119826904341089370759854541407501483018279218611408471349663687900109551537999567583379015163874064207668037345049497615710626805546139052415118507829011545908504534463587372709316954066849112135713525078198801841505783473223547691162768514787178011290240561507269096098650637790608610036397406753936545247028209476327832201156633531670343843352692311332714439686235698324528364553331597284136714189147322781890715657082223190365949630455929899715286491639505474663122099525459422870739181152229645249324458112215724983159075726578602206220297521176717129650599150395688820912153513638772163523274491711686758812470205292305954127761956906767117254741931112839673227163808706976448855838255935160081446276641834180757063889437544748878900952054984186321567631748139135033850628855265158891828227661142628702921043038828687731832917903275563168273011337237553553586264948976063092981054036709352971243058404366324477817660951198595473599276368571147287534173577899368713457995948594431654516085025964598233470154591542884558617093148141551340127705440421628720594303197548304085915211394495955439705589877048917662598155579042869390187863367337360586050599074765692954756716106656019484572640883529823927033734956566163169777250431364994104399429710582414339300124747724900708421567893874677726005795224214364001870772936501738480248673730025438046472181814063153007273310927386630193828949413211061752044264813852880108415940896659875179899489727433668571403079288783075292667816106853650963449107704228071671240273481203310701076884728580296808639306236609867373498044178590153261096905607534736996261856569565685612581564849125807620914648166989193074740951328536744796414957370534810503999422254965009791253163673853854456834115865696768889070004345586217564227394096365697004737406056084547044640249769308810887435582176881295508284834770719100249433049860909308149505736651741531626933436873419921078498508099742447477595665442198574760609285579319209927091084418697216906734983885279764442152542265117888737497896885667165246100234225832555438479660368776896748588882210026296339748237107764205376250679360674543668957977752446294904252724403331819451481481993356238352019367488648195343753688909112102591205660461389171708020934795073840796428887597821405525507896541206938061428987271800521502888431502482441334084625154720177943956654564706334569120535444760118559456758378947971057202727407464887250955789256274367429852587867049339702606886970230511963308709223430529204182570209304533696129854450130702836986385091638962459370133740022330817855834657967428445617497791422941729948581436826019883190673845869882397358483709562479321597914236943960348941128771102498922486380553596520497865433862310653927400754219835061020830744063872502827498205897076717331203467870506387400369283629999218016156179899696462800022712039222382729176455034122689107890209573588217883899247559284938568512738624537247676087382155605923033384862222237791978086090602542111141557283739089826851951316247615633681679961895974411966947616375478049540708351632156635028052856247535626825306331257819106028578464051378087876605964417172601937182636284653849051520515251652470512545083976346938093382554504897586381871860997288896792906964284220562992325095712072853966397329832813613240234728058403872093022779564377768274944045639281226339386651637961221556931259330979773213986148366379917923480677640385528627396203798764494825705054931912583651994007079173887125702016508454707199136130906158135523094303057150476694113577479093241109607328671426082467271271095656639395795943295978502051554764160588920005210179953035196107741339434795298090174651878193118086531080775234474690922468296349684982141038553413097780463762773057354679495541297881161966574415232863029159691828854569854981223821711753081053868383653357252316427627672684120429097780746983304843901859408930791505033791980200214139341839464712756070579000914398703886009799133775755801667742568519586316373118223505715232454750355877742369780712063833742730058628359652010127216185082249623964473682532811549296433226277150827319604228447005264780787933070647676774379081263040568977241244641860232254910046256447296781776710193896686457754255917777827981356713158531384946544806062980032902571333711930095020897276178182491097816866553612642408497279490782633623323732519914592431908760250275048713220606047612503647134842693897281861057664910653067939186170583828849809452233959589119034156437724599984411102768842159865511244587983926257340362845039074534482072781841252257835765715488104158324895964918703943328009582308688359905507717485454496056586209117465024984715431953409922155344431966593584818952838697139775751884460571245619549133753942030845409189372988974728577129501798055486264232472619443533110917159785983186997680971869520625682282960492779733427822743711793625289739041399061416591135731558144445124079413142049408875868562874913062928468148168712387560202361926669525607711269653034176173654503727268051515506162256444553212164426026944051007344846858684915870202329807202120506226228908833733442481818324704487512300646434625401622115750698529280397215815853221101821820513016742830655408554779316341289139066053531661184790110068408726306860347086990009536844456853844273597351154506411441097006078872046632600606542103448545840762910435488665167968022802676622567220635792794265191384652287157494368085491075906578979348524264089676789359868135530976196599263076112596623783702834506275105445748091279590750408087536646197038288728363193033666599042794589870842219558481639624954643238576183398807082333386346117298288632675808626352425831818912684887866405530105533463400192745891031022779278945518726873721904585997015193499031492833188768316154499977033762284010362655779639546344246580084412007501474890428329446078157847149921449032416857093648803603194615684517108927536334927864745967332394218406348876981367597640215026897175502217676956000078556654541531917861006440233312890844839146084935088783199023970386682393758286325054436464433885421483816245876756458361159771733602677559344265128308074297081397527104299931895347599110927041374984548323710802138446571343891128681896597611766550073645619150233321214237621046947234813802469944088529512875625527528578354930134396713209135989591951716145746097599542024105041197558565057228880720192388129061506084783560220906780053337676185546726094033513302991769309045846136361974018660132927480048772871779346690320726362893868963500766452729035429509122983594199530088398042543722198568005395214311447561748273676485645253574852099781837063474629852238747176383128789432304528621958269880496142221738184345537512391044232216134067893897083223487810991388901639411827558403758591213444144705241833023307223330422599072722420945049503048878070231613077003314690946593141714869520004878685327666796198906648760682331023428656843691754420319534554949289976224098026317409438891528811477608474867889857009725457610366944785733360327831983460840524949346258094337010199850777778989817743059290857047899408689666212598754960951754936710053027688282677779978241783550274475936461446104026276585786133693637732651993992085248001823208738960949621771063330720266880861663128773665009413667277442444977865703036793373759226793453684818624959510932389516928708004627181624706952447276727612845620143350341496798685460601242455756425546734779453214288381841642101420665683772506210362621630026402657424339731736437500002399216461661463858384070094838363117805563473784168102719155865143629217232307057409816647585657395793575402199275010356426875783731401934176918260753315153140772651201208623432080290540248031413452612731461302963395308206878516022723144437253944202458752844080516483907794821448374155554510287155492378739511176418538129421911299626682329319236000489660562296228244303891633996625703278837839222544026253846036249338941248958306823759714331453104937884440319275383360083111752706976185942042120389999703200904857405834258412696307074162496784245999991260138118045379192910019199270038205322507805545749394632656940075325867823491396457468468787869120780584210821934140659341041083432443205039546846444024825809536289744772541980004320479906314968377525429271913268808963208180303675702632391962482463877981994815571294911578996870811842931868650913923569229016470132066169176793123483994568032610170562350809022480848107572990802564059705286824298709181403861269632345342530391743274948595908618938232822034171381771859992597507521049663334220377100111721055608982740272174085919100742921355961337167047439905722757476077350062479435610434635692824069982927345812722035895650928858895876896182000924734281219061446967443878144740983838101483023119053839438102215740770406763084580336549350615621531141599538329567564318298628729749846609463994694009971942456904665178022051484981689756218991107751185795284201234635289680712073636805961228996685958939785489419837838487860013977045837091998884420108825479302912860624155243013311532790144589539499857912895324114206476497075800250509932882767140949845806897673719885269300683217658378714234730240757111328553352633769880483813459469106698340702813210034963095466541217918899382926317330054549307300388621770795796299790846972198453366848137961178717352770305474078298771142982828554619052803501486409312267377561951763020172839315318166874513233984688964413659884592444647411869698370515490714805584355267616473038937347553591388617786728063785687462049056559393633838668237579523787583889411314421687128661937098538464274307776191714257947919211471199865870281011836040892700347492682859049952273615242360631446974476673391160884264548362317795260044977766428374588013940540700234829244751448644606702460337884113867505978559836769313675236070608523785740040239732955403424815914959740595187675112689708655473054188542688792567236169872469227659492194578089252632981263625933392649737797029891366750809322800850223160201566061852320574233622644558436416396832971101912410672555687034171644508086776838338546691459840449734102333019473584625408077441679148944888178299340153099967389626243313880353252682780231987693293779684912512577276125751640417764843814217717479244581889828974789910596703421421517250202439133959332481651516973891143160789828480128626414177801684368548672750919252560014624366645395633152262353380307931841630213848833131610098749966174469922227370989994026459891898400813941927901548596531385769323689453203265738399028742350593109578788301357316620147200443840132913981291241671205049264058640354178066155153287426022146415594569125441087043179746687362932580063995850677874470769553786950427360238460552978669844530122572702320874052365066730848555798372355861754803974768245266009035124676935318531424747760688257006849371567399808724008337753310354719450686383433502064401592215198903695392989840639907859897884219427949387138536652824611116493026664099253830223253101703764485055785274649243591012441241443914916903546120223507513442457285634924066589582654558673345568312412539564644526078067666056557494841770380775629621054200623745194151861368504440610754183590625813702806754493586429051687784677565284753371034528618646913847359080816878677542029522896739026511019588170978558983456708496894416891338736014012981783763415055371945152829445703752116848414880413300999339641064311550892895379925820918450124588628047894051768013406073824081694066994345486953389116021172644813318127064842354951862305373433602999844988855293923796561506980464721567781014355341046054012380885833047854369068102555594680941504271004831674817124025129586266909249079384385322383551779758826770350063976872077770543747218680549448596289801147895734255887323968866659482551347631071991313964479544105208570665663651111866989747829111380758929878516426249482109808152558147392040021672969056256162001411792889162217929773182881886127481639359799631262923938517292574399288980342435204143560353341415421718248031242180154727920828421637910090588466167091905730417261826215180175968305471946084386364316053225227900123382483016426897744429646078627950061762756225600901901841742209102814063620690170689843555995767959278662213435443929749257819171132895303782738001925070809345581777363687339614100573611816730066385378323180201295264933051757240955404119094412974156379612919442431448364431417937215519849459160275555155102523675509869691249333514039038919894534088686124044585696614211324918713675714307531646028479640312102823707919484104561522760902228484531877558862309315427019866138029054689693272348058506973247766005202885648688536123564720469756002067943761066731101708977968946420021351225130140964346118331907880515705050806152978695167803782886207478863892845543812619089964633044061823890431557910548640906424837584080897888770998884805169256929321005208909447267208980766449826346113320837487916568759925804052465986525769203041483114125961293364600321350332436672338986445714683857044565447925897625946699136736274895131598605452783375120422608048881454635635060280486088334396640012766787520966338491539789984859396733856841325593759825350846941621514261172193770171668840041003738746227048266863420895217758318834422330117222943959604719448487556101792003047650879604677704282587609038204510401174284978843174898823313689611331450550448909079409725982679877715686878506912371195107690243954740271395583760048785935338004075880192963249412785010328720946798977587427908692480401002958612966649591353367368760743988065780664226244998321718326228959640074835738444198220409249967300572909219775341809370005109294871953356055816162452122074374160362671518458318522209139952737901256487814985660975827466266702123172859740109497791799017130250334772804599097927363799084698432616804377057281553208827984637216843245620127104592220346956500726099672047655389310171552288480893816972729183690667895538091048448813647212853532877434630831117002390219470540947141953250296853146969392340279309638084534958893693487123089281992497391194329059542010713356540415353923691957747498676136396922917317566225025800295689400112192861254794629340834137614980108955701703942400603214944186427897454729498278101198917072352512117555769682662614928553148956545658675735062775077431034175336617153031088093800231747393368267189884181302410978673278136570074089961736539888890721469519055228361026675214041648487426414675132894036092662610657308437641284986403154647726367490461454240933615466998339467251737354145585156010476795336459260864644974249868025419243141489645355252631807537399380323771724838790487836124904099638379565929052686201217514427705448143948521853516120366663569150829141123290668010392706106770428645880199426001631401485339538851354290467380078593382497224693904120261416386019992776099770882276712952999884830166361142414838510347593816897750372845390907064302500061273717503515894721946211767807031607112982007375197426002912931398281211866688514038641337256565110703942847885797141976981078020915564378024612261442306039634653751829238238459659290309128198112718265470332719753621895669790113322329455399186353014709837440039903245759791865821854889627073677161843521507213476084461740694388399103935144823482033992091375713874740305410879265095798131851959308853490826559249881910944428859649136913929057701463250362811300536325738281677473292997733746814543612243021653022936854843780666779510443269172247031318419982029712931085412442527429787419802720922394752340065914867954706502080062031322571220668008947658241806073808851775664170034727794024470053166715450150141468649084533037501686238278146102650439642408424938443186685460485998331258841401740308900080113559161786442831080558807605501987237613579714992967622109440222887710190439954093133042005507604818369493695550410160593284556789888080986806517499700000263794104037790824631945910239389281924597861265440620557413599677542893648110700415650034843191705551978557196695848017296036317289438482306439615035221980400536479752303113682505983482232730618152364008975627764806876070404811230633758895266214225308114823728509474782908376676165090130836898358835952793577115413613604102280658947089364283549598267577075715954337728773441625241994619849241060004457581475278587907829129399141159684432788913214287232281288867391013856946627287983265334416516483512117272684687066852310893860266665609984609814380837420521322621017647145457537934891890960752957670004553136922988386725428167173186918685493473470740237557364130552317735140639976001585025374458512999162733681827112065744487515235948193439059752428439119913219772027601918290116891512058175398909915328012527025918826822358185153912044226114484892171310139303431974402249778909281052397709567504059448984225195680069152670384266634035537849293747795454311925393213979055064058373921061691290909247872424257514576359571005935089680984763783893685534515354162270325688700926549409348478344370035125939369980022416389062779549384800169539925166044320086438110272766742859156679671540581800534355653606917599864158988966107573951262920176157162469598600793257614915312942807316858698076753588075311997020932765505973855582419807429451597951772997844055581241122440275749484484837327081595286471272542075762694729634830048946465608118130127878176300800862097327350154650685636152457956209527334167458385259738683936346629671138795830813494990751003373667065798894823547472274724446901057321659893471568823869924752384465790959231894539435631782405967835540815147891669415747450149526762482452696069130442063137923276304048798636425835093095117623906905594707477095936339180022654661196827648280233927006918609483068920434284761214844259587057280781126364896133671170310816920552981611085466330756871945777114336379459639993065514871526460783031823197582596586455823288151722731716792750160379768489820271963609018318079584886795913807580199365728638381934594717173586905483000774888706127026632069582759816399364355829275152367782849709405937830597281825830624952194758241397469995833226279313349381579457696184275681210309104026595040032949373167840192117496936414498249723596381231355763357103151616308549548038751749153993589782651624089607619932342050259856640273569682055333429458637707583420909023655962794395411591051599124026254176428409614340592308262619754481312672538317981948776946529029204752013589672228176923032229296597454124194546985411276319451153563289487350406125476362902659181023463728358834938363668345015208018330159706865061336813060231620907695491319053054877195124620175885758750065279669597392327165867871062296064277320129945468950633832771061609497291694498571639413345799415058436940854363006442479970061830575204313261479713282558349291702640966108347707725399580852152565588962651506156265078249605403522606354296983672889437314483349568339816287013270986846310173692603526364755662607931310385144948442866044264562224869422354708458460324475502628861159074991033057370606041755637898774694700648877301394127955112993850403463945578042444446859813009236585350183780362459009011310883149351228463259329822305711844572553266189011427927061977111110322722007452468150183514107649749488827040193774678357577825083843786113486871946038354652183204928312869957690251711825875108085340043259686286325516625816600881982133847956990951935331442226457485904398749806524239392874818470333683767765618362578466841856318531830086659881834905729182385395426789905779912763953838545031765872432034361413938351202072478807495718244547259217872544142930942878616346120931643787289993559045124146934634357269650995399784511009101768793022473748454596533353202890001064825636135568764474890177839182764021728982903476456334778200157176989879188666835993533025051824976966445830888190900307027025752670314637584133983554136502352200050703694188703895378995834662564271986186035916769663791607806131256334411088869031138354444510361732448684382854701754388627158253672711842157995723052993698984013012949003185283686421347385020049419687749340522670391701710043755461580694516879277316818924191461720796926517613886347682593783506635982880493321968778232869914610652706252404100109499564141449528033143780170723964984771405791137587444951261827512671773339553824970933419826663656076452105479688306444029773178249382171472072679043442309462508914393745592813248128224852929923069921668205772969358185122366710030290917153786172588638331668552942794913331000443310166696680309384110692022487508395932085595242039924529308612271425312187044310583611309032346574696540010232327196709642834758529350997831628087255813232789798925735240471410519877191610008901836060037875539644392324876214071283109643750210974544289862769849005174944334528017831472650684718504570757177260274439055308989480307634313234986357893962188573205674336805696376518361378085504236992797043127701323361384676922661263747588690982480800551300818174994976676517009680618730507900245121252595124057956999303372042769468320650514040528559313576181747092251220329905351346744732711096176624216267568578457005513151847799118637329587451603898330771955949532376164286842853558838303125919829309289257574657991297403548760934472173212319258232534326599662060786189114739235282148400051201790047457444247157265557810474373451943509115363878002872065327285713961042529695090999704334873243878805024792067684808152923631273922349336569983354166811811682069295250767128518641663939081472137403933640812190650615839820826913259581893666020535124374148434306728558571160927740519786447252251915113960322973305989367899388518347102241690774068927754817643759032239071018124837689806485827874033064428439018189115047776669305582355973774584705262554559246749759237033746477393487512050539597965076313141290283550614220894466001871666624974984061595480621610965869801534674293226622593438370600815288810226833149742365940332399736403934304374225420257512376554813775790623996810823870560163294239265713155120225888794090791925096666627218371834581100829481770852808255049287358486375553773460402973884060755573543713308197454983608241634264779572406435185911055187847015793658369814749779377564950913318998960254787032514824750187636274226647026394762155447761455057649184337262950506975984845659572503864569017746614665688421062218570489736241232363464987017694478854806842669636350259631366279058440703414406381151250659519316389865863436283396858596930499192012384739422797205172279534011172750189018982534010323968763817022005141723491596808945790263553620714475712689017501494850090267699223796838264858543761650657018251354968283172067154610955956716896774211343580461642410775753233441251045987950071033684902947526648622151843418615816937989758565177313229365657401558361172444870263919283563407412177539363972789023947276121233676821452682786568157672478148926887148280964041524803775944167122446031087195819977857449976582799591370219539656112218210953384898357416961455851810118638848088516856760882757370715892740612650080515675843315830984434038040819065419768491652151827172933350506175725097011879468181318000696900587668208723878324787470930463399137968472267363871860914250552011893334604551549551682213135899737698091926187346154506764558600808150529905088809085432215344308153608868225813286244983321520520386475650213972158088132288753547231239975702344020455393399774940399132592297433922882180435349607037922429013718998191534786779967815643582929777023188304188016344262816574258207463605285575444252843431427663834192078156191500857749309490335078633008343924717805385602683345901331228296504830885370235049502245640627909281013047378171564621193001524834596159189010764109799957775763058943693126264760596997802657673908221687877055279410087740097981573338382640500419823542403591185993102101468573482534513210210121870180150092407454474123381459798426099603833261142570369204155402277022707678171730400812174658069661584219330779677230792211555316173812619724839300546241118806574723587329390998027147481114297281267082110974727570029443270809354313483358969869418093184530264761006160130954033392601103407138978440552993634915083344545427251111113768556524355537419561237935705667289899418224415600338443025730570203679269931503857493498324215319695869216270173498743309114063152165510414196855099414568279334920228807542147337074657211548794183695505036988747782509457267531501019228299674920573150846774753288085365091384793291637098237362448089379120836269313565482417299676166680296807571154512459086091261083346553152326858265723550250322789316673465730775931889426799648705849994715616888387168736102193283318156792992296112206128848535176164285721434139248153121343928498187044150275416351928073828198504774809128206875175263077941867914337478245070444085606073597478991704450836594244359324702037343594792994768107570899688904642845227055869054180446240649704162644142556671976348356689607934899585282833360484098614147229317544831407649061704814341800754753144002953694917440161743437145881639014850616751290096706084376652911554462805053590151475706016912336844655327001591936722731344629269637787887780083649876759300736706578858939969969151161045471940240914186843560284716040717275138605307742173104499594562743127966124260174892177028340175429603947296795799275687589909793698048364554637661562790436787759415939062102045985165812872533738834301651524175261420566363023094574748575354096669321347436500710124460773675418217581949665889195873434866800863466146500662688078837130166656522168169479071886532411971249773548992185441016493417980532107001582758183336759625442635421932628410506411459059958653534604319476957137244104649731776972885802138927211681424667651390575440779551403255284604114540286230934617516227296157209438315099632736657358416137388895413171555857859858347107417457732769877744115052326475388690220105769318632461411241063165842822139843723992629036923613407230934499045869596315518637740142217724220300445359709213015203236803302605356417141064485408070781004713942237131092731611837837321839697849025003591642019604373650875290518271701162343831828356367097808255466106772236439595469164722484292207880242317161625490297166871888694124566382149564999033573892722516577542572033994768909784008813319484598410150165847139260077679604754605162458702060335621809110607314174552493551026144174776321702769428887501697875231784448339928715665061370134294741901324287236794107577660447142895385404251136193617629713700760357517704803938472238289251544043525242774796594920910820423176047217598537856429541004908705388094328557433668450053308495373919413944784111546817834199235510450143552089530889426885162855054928262624684170353123726231118233537620687797890398514913351757410022120500602617874880866307108294742843062048383483711992605265568683660202964019437578754959574178385875385175967215712048467184502981378758086840649856469974403010880613152069475772047558403312015818797848661147928603955778046275213749867787689055650694040224412438794785122784649743736578113012320084376951906995014656948174953682461333407597958633225980391019892905918892055000069807127542039191510908292150195142417179869570414817609805374549900564658994817494482407127526782385612223230801028518899721513380650659341967622924488768250233960218266004605046351643795911924209438442339421522885088918786113097127883799227478310535806443867373027329578641421481327949086605045013129585624962461143056486219371827222761966288055197237224487666877059384544718382100271126629035998570740792210905711127709360911887243507414752262873440539507856626114722934847179229285178929287968140579608913003012097308650572241009086030481142279502985091280704236951469575148531321895439002779049211994186447157991860890669949618668031493591105800033259631664950451222853794244856259457800531869236608443443542648036450639516671481386646109370472770987966607309213906633237096433089364764353987563195330676306376336045964220382285805824301049156704872440528436352207312057357174198836003238658322519382232840167467623660700727223759078161396770880880678364173855345489246452078469851567270835191992639934197281892651207640856799887734897341500892108836423802437374004044931754953380783897072511727123367396361669833427366687129930276616416234555842665671207240954853554341799778217655506867975180627566002292902137493504489629737825957536624068981378755651353500677005324590700001737518872421485904635437612429511272247860549547792045001772946628331125649744522106990647750342378204271593667543012559071081376830001689040438423063121916319984296935804903503962398810595641687713798694088205097997365731740750493215812010613949739019396821948450896934559400342984697334459788140883613859075562682106659962205094103199750398048968843915649931238167134283524831800052730334721819827231565068527912682210471426803671313707726642518877847025146207123852356623557377201776157218240901182859744419748738319987308201066272238825085580976426806542065535025274148709792366318140367580016666699729950273813779065858782268644107398935955819680260593766729465458926630114465073447049923120827031494512734816973136823431007484670822832869315615212122259742106713590694862629028300136515361486117616543617805578087333669026910901774182946520939231439208416435084868076083776109295452716829350829781677824074510490975204683961553277460217500982981964919992892805408043193106108870867059348709174334772559114336158126314307603602155704898176434826633067233262789627629755489110835905893899900561026277132821793893025940924846894465480071943745020217774725964413310073119662867654603445898315359041179665017140026658043012627003175960634182594098293343637774804055790734376777097211900259397065356225739151199228458429697747014556298293518315043794443239978416081478266147598163692110506889153816242317251592199864269867567686099923071017507032207130647856716882573810060969520504969698915793683697899414949027118651954012003473299908627946555776651299230972384922801845529051419005787653295347482525033536111939913261023552060469391218753782602062038013909979984702419446189336762916976519851566342441576347869813046886659752662968865978943145742888262966005545684260782085509663227596545697170283521469521353820648394885578153955866660281311569055544788029126628675835405554081009652984824046636713848427509596243261198186435325403504606888172465740970402082699436732831287175957328398534942855948659430621737115598615362424577222005572480163616140121897107765833509241847087876294685145985254350456270526668398224516232709302907012837653427470076847008336774417857645182008223589159343107869894427477036400561949219218355991098811332638893207776467282484461354725473751823897230437564210829772315260420380081315647530789818486117691140291663216655954262264396473145142723613131874255556513476602411927033993410221627620392764632727534387488260612837887380634118365347613005225036524461235526475300704149075324207190414214761200634899966030006474932156150402082048524848049344265180795960133376766056579503545160321397215579440730639043285229372087092928908405100352770137189567829535238954572475176406033943297970327776018914903745805570033101398380928161593488072696982160595744153308217605873919346916359566573444456300676794350744649173036042507189241767956625098087452476887662308868737470382497884385231531354349907956783542283314184328888390531044925526726506332438580986580543484754501350450854686470050309228282146798853453989241473364044150011037595316131821886582271813404283639395845275047330182550629738789773360185854770556093167127961278385784983911594803185724252615533629624742154753491535001606436851551944452996915122050118420758281714604607214682513381245920110076955235308601465902432235643331912784849489868814279701542589055316828448562466906604145018494606518062144299716545766957721508495405348044084790477989351512140887271032299859401381939542358334383615293375849490516463171499040969441283732104891620836537164573976817074019172305184541353307605288709266788101796182398240097115600561662247728209297108374609642057070500215263329471248745123547359751809436126373615786490905051840768710741927594336743359193437016243081916519382975575712427659083229559967163218958179945210154182345320543059733875976440866026391188747303855674874707441492737693177127546702601586882578126278983506337516900410286611153585877683900373932427262230481436596424989287795048519015612392798699906789974765844862968691812108485488882921013347839949466167563515124899075535220449595269261511848945596929470987386851105188891572610408914737774994025506979264086871370442994591794186944424021623412846291459336514584970611788717396116258381945910150055404200301175026376857724040679941145290527261676697370661344940803480688544927417416185223519439513899643362761907984758450971234481038879608434699664762303924846570093041283659223370279748448772239972036676115544614889601255984909649434686756991113491502211375660489116383974816024060828561470795892517067332807074463933311503319115588303694096927088425756966927783841230595306148545599070812495533829015519353309574511762857091150461510373588808442272596481641208039000255448036360754348012679373501057346947937688828244997726666360385697495725488594744744913342363443021003717927604484314191205987700901092023582741472834323432035512923246003593061231804588077539814398088979110118536184400959012646281446105724183521853075885618216670664692874061085819199582999237853174984519301631234737022564377506558900892129191766963466546169240051076643312997767398849487325892544795322850199640033768919210005320562333118902717736099453431856123808860081116455948648821531712747148682636601416733770426732895323914344010205115987511426480283294230110640432824808577328593149482220570069650162692200584751547425210435786659041889558081657471299601851132214185493063800846309761254653425215364904703693473969038452332760102302847444040036050934144118604081456033891671285027083640362833602303126461580832692585695765147379603796853504779121709687568286686524397285622185291275665522257053447100698028967291662033592969240331448738218252688963432348359489907847712630192427176266586073302161993782461984502775546284454958631063339545197573263981364393078045254674360159945508580014594031390736749102238955692767218629678736053224934738671641085522405967956906904349366488923847024396707699420697725928262084429247505419549045925923725758276691554263624775475901718043307313289762433798308776680661761301212246933897110465739080439918169995186633948206531166963639127119384207587457409805701569994783991626127315861719308229171851283554091418458614447027064813204846186385038828865971036223957917113084498725375665230169373007598663121242051422843881875801469322821667487009718325142612092218129460650519132706203598856837321231187688341876240001680321494770043325274510132613100412569289332637658542092814685695744467355296132874275669826334097151089685628951624945740889644394095823466310394548344297001832468356358230832285539867823204849691534171332029757845366119594141014567448181183133586526940536540314413045194654212511009360672507025118348191297999408162229706188945132869932667155324407404718241104828153690970903352870091987259472798633150940923252881035853541829104134597728739278347947092919933101180548079272293912046722300461104023548608547981159402254866499519123348295290893812018966996296894073860534949269848728063710547613266563730058916094155040153749776075980203978820732999644507386019917173739291622780974032730044676246498248064548753118327485820541820010811368058373464188677005749298048662783100874707232462034494854122458971758550228702941747675208732519072946019858236168903979343679329522493815310619671265977121143910887797419831899642729418150402734196144680860518789517392014274978124761837050019520436982953460380079794421440452541266021908438507183258300776131980505118693846152203831547868884654798583699164349530830136580989395181987300268242543913190797814361044517891718246872501100216638104516771724036123429777997042280938835829392315495097672863323978594035141002124477983945253445987896570788811185493726898297455066486033669431103333069381910772464865659252221431700918046651376600388698748679544917269205342469613428330210501186223118293498689102273050210116436736298217953876611164362354292397781958216869147866252136469988511983305903218773004012007517183742661958774492679072037489701258076501782524679964441571256273720767830489823403766092937118629769174164062392375500315754227204291468686245270959490453697124980052104137921715706615282889022993995719922421132051757681413993985067277465428665069791924971285584873006468445193645488548627139066931578960882429386049967141419622704001682302113841962258643946246125258785797826526060766623765241122239027837392148770993146225870930996436500915960363212565003711649176638365132685661713097965836779677853731229551222101278754627813696765444627616899100803691927802682471637469598564462597694689034876175581130604152585552920143115153980132206685961013950333054189234813721436427293992785312159978550391138197087021582658328378318348203328654264544740023527230431122203391229474479791128131485933914711965037408811349357176863469524207433467045594289908168841740158759974327899673866585954147882627387925012184874076861563327361297987975389879626546108884389784262433993166374339225856923257393921617767518313625555785243825478212864046940721304569866733485660154143616170999575968714835165568483189108428768236149456177426929065421599904114184790504960890294867916734362922898229621891647269452671589183193066197113757573660135018676592386923138787884733574372873466630398105413040417780234528343854282602757002644582727707257059227293451000137290901691905560129180547943066601299982043541049968958264134574594467588185977270134226278373750613407570221749273569035684280830582492465381209174118808498217174201147551212449141329909231686592731555340105782338632649842338906524556546998436919196282437703521259045216599731564873840317526371311384010877463277799374296397872891299131087339778079384418842471608279633794916767739335808279298597747897076402631440755747096131732165943128164056383431550918272124232239949001692445558530033876850952528463606825350448148032801805658281546414156789684827912526239054890463357281934792119272827142630569573718939621313248998534645615460293565955346810230158705914112009359413479439177751353833048815627666748983415710711996269723436801935551706245099558220156537406922634137427390946939330609844047537606935814022115693477847049445549392559194163759310785132964086281149390787151772584436409986975772569605697709900134261979984238348093054616111091089985564904555465359690646166901170665803503866633273683832832256755681800070947205506291402611186252902516875357636786314923422702794723987104935874833828066567888663694155467784692077074848022754585590641959405781078272159926407270899705293164863580617399020327803926554811722115617278609989969194959486426961042661970903355401257676950160065408169656783601070446870803002007059786370767769070179535393204369965549973151282947103356283224718903171520859236607408767555031904182676220487271319058793202831743141186923302900988567309828130481752157230984039264404120045608381501188695113387769525973423741681591287216996423282470201429313748679476265072159083093445225141139153448792298951926331216768870500984813246120396156108695114356215423552852194824575090952282041884969487757031561603200659057763708041962383356933912913199863040122000814511799761458722448647477905495106925290986603655310436124502557625576157495227652606553880485055271493031975379148880603827130360110086620316881388249946595327184895128453044007197074423189984835942359492669837607216510633284966730396072998779372590031966739961688097611910270306966124908360056887058986326933691292405757909231211752592127794100216419045193468737615702697434927498645170191597334237929538215581473028105105687233785952606678014162987948839215963418383971500563189261291941854127057265233519889622010279099732814417038247329088565538506672802888464665469971309302996208329881178278173605374309665064106936353344495091133017221261797857489265642919855719226379018255109926788884231778708179534865320629821485009386723937917350716782269264798677321260041116964562557636829282440356749478339633834103706103800214613395546453155818468531974796106026091989958410174684412775539802075379235409900109272051476653127376810937542491190804169070170983477505965866082886794319049866914316433737144906042957708417625427572282546303271922398339665683025953852063724895698524492846991426399855376138249964193035356761136698687782620701195364315174422966995072026452446267831489539640433362538141771120415122670444511612232582434447348585896262960749777489092952456110454498374499500332441622383088837090256784332028608528223101031715181179344497871818152056069093395025716522903285658486604233020456793015870890368165373072168054740852908409183356349109901450531029102343702207377594712942655175272962680916598232622399222847059556925234459320860859012831431393435560041231250340274448073507527388104982717322617331076393763196985223727620222399495545130752572742709416468463569404836773269559855660728263938653128321133000879451238899971967159630832333369622874133517325143749405123511921033067739430485025696828098572271570416795914416485750852224297777624285500705951677782382471829530624406779311380251930562549699369389022891095376616312990989830167465595369401637157252924200274987997993080851778890710946596176865227934422961363605193374050989674330785906663685403020026530975215230577973408558023339163180644465695798950933248686035746900912113936326307292852020467147539993727579909799427263132888113120717806348037922893979743886917342056969213437026423471978790779992488298022334086747193902044576513907508259436147121444401404857269846906779544723336259292787501639438436762475853481356090124202405310476319927688599679342285360830499234773701217104394786129695228617526442411664986076776897774223345433901700611577122722690049825505154133898616123615881480803626456297607527267137057755117445991724726390858251718430457567462611516754913109696051997495798835787643022698037860058553005603816855801991119210093675344243803093935497568447871693840160901790160318853574597252444930331973947633648218856013373673939011884954840811490679832772504672281049167735690439717333066823227139548723418908779194475571615679107831796319255079619744021778516138731234717415722995185743099758277489865753580605344551299411657015332982736926193973937684039242414786974307095503009082586165928707766779732777922583785743370289101078910309583641565617831756035518354372285966925065210964942629447556143922010781063279163539607309327197793689098244314868212058168191759172809941833487145661456960721323853009077727373046284164740447744490279686456217028321634506723863713105286509339445729104321148127405742308366776856993668849865515893114071211570502299452079794750538740312822440665223635290380791817650575098382981308246532961122399184694117631891852814760094883898951915093358623181637286070179434672888507092507911992516000526695524121983618889059902622093921535227366824258851423127133648511976657289658703064219609472865238982410544653260273039452903235859890151553066351195845113058544281767261968411041592195228138925767739951448730967278651449143263502624963133607176769157363444331824188007502832963406325573403031910312064476222295130442355493000495375607077499429257655414627414239331333158418627591714476232841411183803644011368078091379336803039000715669018138601075944002277877045408105809976286205232563866297163983375665402920829202439055175460639475065139552235948563914493083470371775200284692951167987496797368125291734417625048727727671166053578636406407926602752169369731920361132260691234664105488317128416048613728482093709906825238285436305029819747787201402792134066306507755389050255746908449807301550090688752859540981961432184943780669047147005239964446206578049934828711661233256390078505898872305115934050761037554516441390327444198637209454826056066577244831952893880552111355311699749377050984409322028487189377005748713321720363461507971161477184429771235985022437315144717366268074133362261139235353659521626767093357257851191891795195646963597624160158110681052371623107685100785550523801522253936438573595393207838220548441379727006997198428616448101394096967094485853782676548306859728616585562063225857773607242074439258976127547293829152510560112976784866277413640644574504560514289262128155033551471936582557307973968967384475137822425670453337983112405254816674315715422955031897776049612125540122293189418824886860796807404683236752778131019889895906385953782728522059721982041718402857622738744801343925323347965232868907196536563989826392689687062623653319736020112246634846545058736583232708008350301979665670204607384782139228873684840925524608361398407736524354842794069435788809708672461568119151543222749154427781963760553935270393515142855352819039886029607887048547996666891090499396844487959289140660117202124825658418650302786603040799990423347131747305189440241847356964803785668435597832430500057932678530311390411258815459484612507389114623347259935978970812823303597329119921159019585882924569428238325663274029068593896232936996080294305875531136736396333156269739671794138185881683461857332665386476135584007586775553615003553250720433035055942587405095614710648305805074052716297785244066308937578877371380737604891337801747826001381034967050161568093594073717197316191244846002511909725450454619198562912870623790091016637368496376526105276461691797815079100837946820431570483024862683263823753298203101290595963385540298473012591304119843722170575168001151220918684376047222094133985314109880210168595297494616061320953328871116380247551868729334387699613729298482225663079343050841663939902895496653973294156022163822312844691009188209448786162273024220274630848302846131487005305319431133897492951534305149106346643878225767392424483325642664583596033956006038964699197651282675312411067956693084187059112134760642971496105944622458889737559840710658392543247245691939815845305500175989892211906395832566902278241075979023953740151277032855031035773600645567599145255391675648861125926316814045115552773800669531070391603952312277639818172071664758703650683047454725295367643311918583916718325274495671527615197716227682475981990052649819962673476174153302077459969056601708995745630711926124324777710115084111755239830392588677878216189890876199642564809128849438796358055570820229924885634955220371424875590346641134931221241930971425184662236156311906332091430889580598197607929852339010487843703018005064654421293357782782924685827374945683922093610918291949119002969766767517291510206928139404548906310807465080882661366350711067365280446367195295199178461922824690278454498960522059352113023541246593740217656213600520976676837188910716423186709765270676149486705786048146702874110486722726351299737904946906231541969892205348424832339932782921238749469337504424686874056355952947413645742885798698118551377962848636631096444664959674432016347469378429009279108576066350759272154857273738357051692676620970799585954993684119520668799322108794074276222495555451119124675062285888627501047885751753408106699961933371302690866502897656651346578901321309349624392425788869644998986146399167662941457877968037177090553865770359292765071073675163791954964500331173466092272526799244106306730129640843764314029057824353990748840572773166828166452346959639497583300209035464299563772597534674129030778635563910412346633057054194649450688578730707069765198204533117680410551801833236763452051968117288335317932200381714450128724311556481849082047159649723891277304313103783775448401704615046575006364161035838441915963286524127653840334760669640223566585331585516475062558020684718778646073629651297303652918034795696844316300272393363343469277512831204840481290556532017696202827672508687839500327285081543271655279681418519359700399684566255667897208826313706107737259405770640639175086684413963530218054624216492865971955158038742449404518464670203890145893887523517544638478540186202973753788763224913331694611191314989831736519841951562470064542385978069936754349181393364422660089080762421357579068605559844588599183687457497221450109551362596958099538478915029085145989328648866652375916895794006430326143620633220362940949384256853352146196868169502965753370116821263627947468383367136883461820427923300762695135108802814233544569278713396052939821005476525638642782043416740002821389843304396802870503210533616306554067637484535624966663422419771133536722010664083073381276145990894100620030591797426597574366582900278101376969125170240384142841632286215648942854989625296402253658018864493933782429670146223269408508530702723854648989278070541557860373581834931796355176837328585592944853096634047845616412102466103676918035480953369644452921085879532843003567945041663948039746690174978763245820914410368264092131629094064146084603002910186073504614352600678294347615617343314289009761512966737357186917273269683428044742022310926288635855984434591132668910406594257081791779111267510896812204206106734808761311335496094046835476322087872649823712538551731774869036691833342614292337256152680410796638227763004988247575541318420260242232368383086050316002304353017389188781320295979097403541472320655550176342000482324714394955038512703465429982654902028230044387338896118291405421075607407735389301150716210653192550836704816693829736004676749551877617437015846380853641889474027846327446703849637863973727825238634434066566456092191469153719513263568961920379617646035443025886510343664010346188511687254400368480827167097153253811545283765255003859344246501658020766479823937667633584053376103468621160545244459957522156854707155535630600772156146847638291885874480290807800466215481080482490485386453019458369168676870230986723581794325811149085119837767281801066929815372174175325540735191479290414829223312149642247623972235699076523786555857180810682680394939824870788304374401072506908505399083822134728858936164377857318029823172501814775251488401258586044042916868789750578136377631238769408916352353200930603542145100190772719560142110745024128218492908839071131214070858988801248511703506828871112370455994223644762137487276974212009403538414695516079879811873574384526051321544575526305772849175563569912411591543892656561751843772010408129138888203720610997393521012865676514548401479645091869610994383969875017215885540144082968248273116499510483372303324273359782736670901856405190548372095570677144069984069580392129966614079650922425387001243842952557349891034488985916403670953297418233463201065799134926621951573950811399695407154803290071444730688415459609697557567228781962264319642773834759423193804629315450797988500418410160670629617457917887199584264798420668473027397499636565778468373092984658798000756876941560625811858874826795374081813347237232856812381872171438665562733397968387841583841581632497011640634394067510863074390969407994482102654564998590728969391211723591149673808358180240672396428259899852580541838771558590009180463436849946090586450436820241181995418010871481827060804450540655566987615807426818345339597162019313160598929081428628114234253154269203612468939048209577495882376980496160986619387333464067057406886787461974644548061571451817713081115935262019642358113214305761814151595092726389710741152509587061690244160439267740149482168148203797214782154842744843961622534637156861284586017457104051810285102470455368950400096199427945773801642307688217527829321831596230561934806266280728761279419622765461265040777701414356767717206877091084478553028573505108943697485043581537258326424534050664603671470871610496132369371984926652438592122405277945159577606790897329767701718769000929368050647397934033515410255694512736318143007017881200113909649722962830829970248879391625072761402332426446030465730222188328827798326863782427595075679612650606056771931390750275351768969615622407461998412071849539362050819449239936432261558348511570390379866486186508983084736026484101155828794488172386538546416254401160878345820756194610219817627090192343930050993334792351590098367857248502007767952492153046767360132636674510429063904041017455174190631697992874302795799449707257066679850008196041278343902711761432717214661961526773064696730514366673817010365783597426657720243598150163266450683759899911647974556627182536591802474166911893593118695408446716067162169932963993249170493576780155569137646961137375521190459631966449704165693158452282071303344725224097814803241459960518090474660057549217518695588557201470315189551106128028438669887101114681746559851461938051548376792066451792677551194084713105559305182459487077061616325409856681841967210521308813624523353447774964238951900394863515864815092000452947309026768786000522090622767760614910420239080322081580817248048962363506889051315818392814993394736320638516330406418612857717144014051618975485212325854317854270956983012570359825806215434170654658962013189553313428924590984208797170693650091205496401838958454031228682839908392012762736662186680832495625350686074758404848527545890614298613496010301973442179235486152280298625884970913368825568503287065104494358800875638494358014867418364644715753821171385378742096956468279340468238210800928715204450445194333359555953236466736483570451393665573351561024354256228666002170061924913287810963693521981647106773213376649601524051769251102760069539495618441565858705028262029729421208805713770276441331500943305092800723440548393680491899459990197302571135132729224242698851913574731163392284718271461338657409243515857733803214921704513369723512502916615144938417639355754045342457100771223308084318163697961308547937759691013960899635219799437742560996445225713923127739730156155571519604995401284914120757729110106133882171834127648668525131656561568392669391405911725158717801988646047781435069285886753554777542965942383093787997742132684793552832840660737603739002222030778176113913602099606830659321660340405869426897769819478145744727172542257325922845034118938737811669681420534196015947436643262978618441262367446837329277059798794405102357307119750902937073772132973488310394414772136097534975758171268235331394340033176136470013852935963180685340287930646904927516175076019073309974229796327002570075801030455929757257263938124337372117326028578614224475746851900185333922425061788799857743820802157606605612658821145069244034704718374282927284806357866399732830252563199213302527774040569885077485429649029769065246654725988621977505196797852927999236118340701624771062020456481353624181882803220918191003998668219071785147670854320999097368861329803818682756075104734763481193973883861837944225545425196434243769854457556250897842514200206126633587790187446921823823348509801885151929146808509646957923179838406713847982624493596747123386486907328583057976119023917159337539093584596898918863624489293199375475507229523398804032054112255100859646137181968911737212537077085313157947221266469498817693191675659490834406979148885545011282858939805607623666378213832451424918508906288598446362520582815829473011488380653349920851055093386683172887574156368993429640905449631209886494963185866601360602625002479442714715713235366367826596194314179747668455964298748856469845234037824922453732233649849289059537510387712585821614815047715156032514584308497580083060738086782188818145484402129440600411878625504384931132049330645211347345193782896841149658837773784817763597061583883205704008151227935837928773417155854729764924843985037390989127884304889363735262767087756102126997629965826077178447267956953651419995805708231480398748142612381295257796239417520002106129770646482750968195705656490770795226258037792881315297687743102525362956612142055643058566469159459814756304316921493474770466808961517230195993753222506032919780077369849809648666026745556293929776639413214434092600837179129758055120785634251307088813720774342007475036337844310880094775816051899173771645440380583562483527184454411001576816158699549965049020149941737017683066162792233885065522208067119501351312825774099473126453359866717579046346679045745716919070502720699309669327460730953530317985885445979080365163281570266567149900918789704261870700299068113012354816877947534908523973986180312818349212820648133496295202691228135943240840153750529990501786352863741697898320666517250439438086296185791065395436447358045882149188817712328936461429461036991369411904944453691126884862727700519646109973981064544371453911313878241334837632433503572407790496616136471893966323172736707790051875231026405720414764160649385332916772783152651344928771452492813757465451153979782647660193397474338911416805825497185416031834930766741784938039649368188389098296273371391944296770528148133859852871632239068546368304743124383531531800975301603967978962101536579112333299593295020189305175625805119250321365067611717270052899412722931650302531998434769338352443903081609028904177626743210076922006507595354422535751853282284007234998782246921272571291880816287763998186901834180448399238715318767425240151752016841937012067839104204710006820895576719203413642057636646969724924623194553236963671855297915699342103777014249454253410090534275072747793848887617464796107683978978197309059877200188059831654422733984203637314997441534734951312598853310855721361640841633637671751173820007161998813646806537471200471545952586825064372296576659339795970044800275363279786736998887702569556791670162046992674181321229575865525081006263084813477052445546502603583051120408282192433959877982261349909029955784025056793925572179968835853337381977344863490959277176276301837676978850631373516473583936848434729763090285854588230533457618650666409440767784874415551784192746045839870577537864539737248153491223714699578905090342869848095984199763672380062079391568222297471547620645567531837849668077506350563840720402643811490628535730626521938652664717778826246861185059528884565162413660999446316969617302984729340702819683947903226129607164448011225364789280705572848397480940330975507667093337723037441018669388123484058628063501597208726515107799088641468918316306070039714442083138241571964665488919748331201103570878169753457429838258671369267793441405950350662983861879603210920920041242113660931128612601886809831360783068793585569389557314760560953398796624247049928173190299765786037655578891789616075308111632255770350344380244049936979386182460579527830416640257301270738412263255671663591072395718602903347873741693076835777055796625880521728874621638599822078199293550423281828909552884674128478823190055812671143700580888038650926840461713001667293787531353139436847347464954820558662990216605092546427284279874098507331452019239527778445747563863449633358274037163621305614881463889144264970042180677996852304688503106289241003939971002703304025508360866785306494797393133730969730767036742620620322750016839030611419415864138891632977670061828270271611753224669431538082479372061783312000288853280151018097378063493056163553487584829896785195378052945210460424187132240356775176512885922552424367539840104540970956663898532560873439696198967475364210426024934016451654582531333809908792537705432184118584916172453943969764776874419121316152990347527010260360681388698113594127837606961710402697719229934916288037701997476934049280674045226841945727659655833187478101683773389193871573488402097134768236622633696807639609098691905182049922850141304462661469046208649009675126455559335350521863971001630648228818284076894856844886826280463093186535066304793265583230806735827052845849160614335396289488015099050622716889733430498184877415962547233803079465400762198045974344480823529273619488911834642831536898483384598500471408239558370064129014494778516216531946989798535651238978308494860864865128677179274776966969435086093856143130003594843160761699540057918102731702752560604964082470773738947935876975363314076240561024566458077877783130198279270890544632559008735868720937524219305088354480387993163886878173605214016223055927001380858308348558706749850981248185232444923774228323636314537683403121288753918342170156360477847862740449588617770520659920158128823234314329577604483511447885344152358587790124303078046837458308687161924384328012947466732525307565312622316260097946955656488808774472522874614837570186397554568886401286838275679520539659111045750706556604238420716091621223837834767861336385378132902800188548942633903125468794809300015765527267536386115341218601712134063000377090406265209671155354361609731099650544058306698383564992527900522194150355751921519491052362281201450292663363145794543113022694920044494071029270251358978907475824621497237773799755126272050460050884270102634528708561463192799727548374138466056389430083629904711577103093744496535069161236677522509046340793104989963300647971370353090664988719848199340063390237624687488840595434070167234920544062129730833615422688129139646278806277135323267996891606880459886619359376156722439995750409646364354494100035797843640646393341750772681402578931911557659688958880780719631679386498192183650184876501673310922135915673868829003665709881315099562554624980294286964497754367588478026507640181959764260393368760527699755100786324996754378566095589356766825050789198900171373334834744111367956723455029016920956447355218706600549459787620872126254445389792464989130393417267615336596071077786313325395969208096087116445276824857994137700313475354319587145998670048571718189392761098678229057922295288455550129293138401254799583856783453015241337496715839243561737343764526816855753526499324389001988233647709865960484447815816664423442394995308187541882517729789203339798412783897006202007348959744671187453487172241208798868857419149698577326788015525616364472909891966239762826717693188517730700922271167549195337014343984211163459613644403471939266872560362773041478671145879394916607013561554133044190213890296744794618090069941515922110639423577246983839524971511761771773042496307337671450609526632932374752271730068647705271852269504673405808989787758275560654328628850406934338209856071040636916965325537929711215134854954322068237129950969980243677591239625680817259310424860413660755488583335513717086978272414721413233432348673535616152621640779196156114644703654609622577088731798399479301377147762331116475623981803350322512179660177151038447272976043579133171967681602702226878203600687475650696105941664345455767403714033937980595214569146384523926083891818015276626575256962584473753767876625736217135551306158789408683845776716265389727975729239270333539390208237024024875521817688406753546783082672248486784672891446100068496703942607961203404707416680555139499074964696459184403243934534019306561247463449437697835417029798145403296885464722182080192034077924792402014236755166505724021513457144626453430639229253377690418951235806952388522320153071538175238534814899606723335952872684650659917487270638431584710086655799377934159770648450625938238411713445380148050944151555937440436226788686352269538909808356396604050279160416459383599782504653690544761264393169770951335149057443479467955255304477596756118958654931026254072071070433647681585223655475239974545158541749641153534332458443674215105194009583578820762330693179409290502330287674193060384280736786059235893518050569318979133968920074891870240128326871257281751635774994396521920819859384296871241910306345059571881573785857799808114450659939893656491742676683835503002928772202382573843080786672651718575041223356411094920813193349521842678498562426393898458609932786617755103630194027259089364260816161950945187181289006433188591810049121592872213150326419228629572959348237539381195456571870354850133919066139541510866565079997461989045809077622063953887642842201112828477019182067246992381495078987766306464559637420528039202673220930020235877449918688392822410595306554696395472727273688829241489537334877699139786602667801410051932345280526263923216012097778576875079173186113341744398622362660100120010726822419210322409668875644772010438408577330925627538948362005797725292877392553307356864716690507548784301884279302044825993673613883154640985951362302002800502742276614405482721996199430064230859689534756556791685589092525961695020471099373784344751806511760883551316446703825271007662374264337238404945081855257990268943481664005166175749695208875451695207630651677309440550186298481006182013368753517345562561188633764745751600922329134466294432806790988193018555775036232191598724809637209566865463479554822552820376040954668444907365433815271154814847655632982198163582341789555469106459831622966292098474251738146027026266196637607699589318009016595244061070218796398823712792590402675700690102939855699536095385987077992762116195139749272365213453045912532511238781580561714406018573372424605482487429342095608448809066200581814549169128826371055596580983422592064331787212196788760945833530591536898723440152710849647900946820995578552520718135097085630457473354327910936060572802826724242273365120667858277991555131401973669117582074617014503559195554375037384210318309085104626860952005838285557247044456931202775083429320478355316006144419425462460747996380204983364269562475936015649965799567767219024731136854023377238935439885124777007538448779385411381023036982843631602619633872378603332742475984893315736328619898863978701533152305424450561391907819087058917254139632101190758868541189536567523585141274656460180711376167531928427475740599411016361147206128338194819273812962993535344641330025957027268185440341034946193660693806872697276664293621031387875356310744588785316209910468132907968320825971681558968547065717494171612333346531109637172751054058208881707921238296961088630875339412190458777660819412173638226669575578505779624946013653635596713919255337219683673323008441221707256756083089060890643826843731313120688693640495801607267162633673081576153232336988504149763623822123927966867904961970197860258884775888698088234926526627970893437395412756667920409811585373796476248495214986905545680777925888881028417861680967392038663734968944025387567809733095561942401132096634482913531166750739240820982253924427612223400887966070683473072445402540239803270940198895265872357800719330282871297303509673584688737181692162711146395857499545394593498288819051282257829778174581224024965458777151912509234637007620174210706123099565154604863739144926850659147591242906871753646873078863069964340662948344024984698116216357316256830035240929948181176567997081611307668990556083871880851489611636588346608384213580961031842624570628372263252710871848614334481602362563569553022784629478208551708260381182729605847069607741393168791744263805101329821937718447417806935627197943382735299609419365431262327703231976456699330776189779310303343646057798815541684291531364578524904205858771609620130110667926104069664916681752983402992662554289239489544528703831388807622283883529020168174351155099692382557328662344082427537683521732482492687698545119532628777279268788085984977213092950009045296590667938188316693437040590200715361054675093397226376045324167505257546952019962390968765164993433150039221681413879393242774835052505373978887179716512072172725436254145588120570160604000746520970839718754833355909064184170190074467270907255334556111344238906409094077659562960558308745343222645901474278661684566199162498683198777713577125841622295092879649735262268695807619442894391809342417764128252847408536363217493997112947697825052791461078382548161261938284590008841125452243062552763548908710650877880430385177690757547134220193765561733644364925476243665609122085904923018485954136705265820799297867427205412958721995389029127032462021499971139626137134023847405962374792434525066805582864926278542942896561125947021609102370774590778102406722213194208169746044088400167622108747846117777634309996517944337560461753331972983046768878493539234560450556859999976098564743811705195299641395410287518269374101622650118433634954868950525967434068754243983098385230806234165040712551596009263635548266145572102415196271575756011713714335277537493560952985480603162039911739109529094208622898297416946921635359437120512777914521014796151092484527866833263904675460590619213753016892596651504928876029998279667143979050034164830734835652707715372064080759702516672323346082329345385393466367543758188912025832183787235172717675019289883462205138844019194497303415190845134159839588207467288358880531325141363437904199697514065624564441301945295321665454051483242844805057186584880856316753702849314320675398244823964369477034107766941427048468253675210892312541930578064244770832505644686798312412612756313790647159970227990328098383502568825653701251588072850337391851351409143233065806758458859870928594623046762386617512714797814901477470049065730087234020815289641671557850483742604826684273886409841732547056607599648466053155481983116286397278039171882171021560807728298350175049614286613054821379321654073382451317503070649231621716520269090929204276969880725095134037924827430287477046280678130658677119297344951632207316265448337189619345521243831896414615519750673831182352716214755710724893514451971591946725046200708572617990150111110154324105254620132855841201824928080715012890560199874869095756229043712803634161157043598736627680119939690250917003235007333587529454461405909176811316154541824929045499319714676968771133988436822302076598785653573195648797140620815872807177087497750449010779627517276749106057463124381155732316272182153767399619721747324462812807909088363263472126802595976781321514838091626931746061724095170156153789192649300185958047108237913938692032498207393686442273070439708942450236796174856033261815903783936856002792033772009239727514063801239157329982966998769878921190912941061573178936459002348150470705997212788220250960569185051401283733347855671153606587621579140283153612165131450394892891626564344985656050052728015893287387002240157741196376995030887707716590791694451316421389966567045256469329753219536713926536138612554739558846519442892484837074806973391361467711392066302895280051678686798476451021203889830344977229764631902005375418543966617906677640959308418027191991126345957873618746068338516145715922372756678143445745108103079089676342274438488576094526614715052887178710248861943552948085076883651752217607640597334456777916056143017980986779111998179791070708311495400307288284445518096688856916672695187310493498352963263786429464814704835886232464378115258881512305486501690022152277831219367324434371077027178187912900584452707040958976570200124922306415153323508950893688699242077350080243056647281676280738394057151449993683347498042105772056068389467046892427440088861433003427077069278369144439106337007246389346540205692023745143936635993389014433631468318304531553437909833697980480057149995802449383567781719900672989482343176408090380685870959685467599638051579109397384161083760647365899174924157920964769276525685271710471718832642024582026964269393278456345494911875234240106693924966001225553152408816746113690286168684121412762051353453150118968799152217400910124931023008155849209253377772275182742784603428406952224867435821801728074428084884904986541102567356861246207276790901915436361141194741607774377454443253358164372304222899556927643258415498102806911904746568845684632716240951101844809456999384650012401034160588347967723004185290738872802849946775349389084041243065807280995853949445798970998688925923961507195848088300968301588460664484686465763778869872971461762720475359255928096533082655989817281267362620519019439444702490869383011368002046073348878883376186103475032840774332913012836789740442401344449962032171151966040243184702503614487175558570821088628065519775666774373167028833508881862388983694304221773456692805880337036097422044202998148176349948023059521584798408333466565486209532187886011731933966875825057367635676871136407332527634318419754177424556940805685853475189082292541154206778622043297355095792828626545269781688819575753749865275879584323112226516395187051195117682155355721458343996227294827345154162476324505110590242119094441677995708439932257669145534341567739339580762694849156149195856121971857185920500291801117847291387501182368286969026408426601460526586341011646981971282211535804485127969374825579902991958541946291234626468521889912437548002637402519224777481228609710049268708857449643084557534738045797781870254742794804702699124152808478124553025790746916671179270705114451199437244655160440513123486226192378986508720728600352538709032106844353957851091809061944198751200825751996428451594285663534454006455089008474399644496842553477910490073959089561212837986600283192742916711928259443850765683832349091120556616279988675846254219259775545105623373234877015630346389335375163663755134087939195170224006836612278453823155666392610740457108137757031907362535627531257063698352729315060845454689951375787508563569995750300428316001825906258081947764851855418122754009565294684667753445702231572275665878949778384628536911591136939287989521303284250885134038147564987886011794467164659402543920179886509549093339753282520720521931328191100924628594103816735759221300030668640378012848913849888271411660032086110268849295132783574665288326713663235870439094381665309485137703152351150171247786319538683824342577694300783535201989397807630127919267498093837007224551458045970379239457448109211020253326316425213441580916576211804552562598425752565178475492048406009117273304678835063400221930572928292453414389369450971294550692760393571173009205889863162747822977970299683014954486043529626382753957095768771738728619952498259851896134175563781067022006488683622690887939676277163965599767734340240123147840774527676524410294186702608190277772326536654397333623184495110260683939264666934508478680008760052055645740549738435568399597669538178876446814705204911921675767192856123140661530765378644249598313718338477655257975079656869556814866121231030898593121362083527366370650493360109385541431957178590010435790112843784095061440148671649613445163074154664433298687009456238953323814388092253796793129533158015945201319077563458456615641042629121720980735982047817517286209840603733323963315387053549597964707815611009205584841745982046676369506632306302523638192298891262520538778440644267521927126683263843296431881784998474524488795956224249385835744798200843532704333077769970785205325528526286605670689171753712532522559324353158490977657350497890386541837603385237218951791461276743336123790666891638153597962448708153681192102516746110499634040495980658145918428516146176696733921626213536936831213068994396584065803090513168882465515491744984481593107571775330731604842649602790776472481470333420924088925485042060525171446825491276155241364248463764193364426881537045351297634030421384252613380378171354012473959871553284488980041545470326050369469848524452013635808553009333065526169176407480086908300950338029969465822146127345598734956167207239190346488745960582683976457217103726194515159327304111622324936271445741048700988127135944005879360101465758972018479260096962578047872941008104772358943339451663111512746410095041788809233952948168108549161273984448578782112866367296686974474892165501185530382899226186976661193250202008987354181918720311608824792800558800778818502004337356007086308998468362016092391018412222367372638981439799798399750960687488747187230065285243094670471240551339270118264169752858089648121454271959503496179617052757099371086932086866393839949246654082906972662414464051941044736000883382206008319961011817638666444097309189290318041515516799519143730458468604755454763300864995398550236851325486207320052439249920763219696040202404096070351563230420776835452260479982455878319317571305380261492887729354378440840983385932548223492164535271114726842396069090157099966682038164729273102105951810327364007796876196459100794362708228979318341391778127063225966025051434911126972281195966872651777220491890408404238821566767236000974367833050820091376166989332677805704937739661376869037569841373693782989150713915956585214941674132425297138273329741724587313550687001816483806194384409385986342491725387167280215304918641846458147649563119790430643902210975081424029652873746918007801460622515633325639070704236078399135743591659181556761026278552321195305834524832641745835135521495286476689332243307964259817261407611618792255456919061922266545638120366224299140176432214063279333445237097361111816271111109335166604181772523989400325752682737473837702399962439419346658332098236236071332858389309431783628661326796735237043296246261922976945457684676022792723260927204473154544822611949142354911262579283713829743247742137056907372030710152959799342670543751889692097748646803999727555746083561591655807040443592804946832941203077462849277210255436003871144424655176566349332812043613688418864102445508275323110912001778978614506848640865358606865961931261825755123994149175929802937786210300715636713924292088761840580875292211781760331249233257260902388042303914698458885022316528879514351229683554618370277689504050872145071276110271372220900451143208431008559898395353113847164902996452295591007199249164898299894598305504954098372377356887862012420754362573193910467133544399581406508420955576132793898119806079901537135690367001769173353833571431487007060957004900339841756017351452866079563101953548578114153312036490044399200618603183332601242952282220496440302972107977763606744672657165323657021790379487006938115635704977041934107135929323314842716553215474088473869725895457611238492742363100851748279241928400485233170689268595355583491372886407066729721325629635864297624861407950858899359709181009057428958224200305200468446476915128674956171964045353090277939697719863574947783837996528509019439375328316699933253163655379818488490556492944650585456904437195026774961798911323465226584554150332852039801608939816587857328737444859311350551081930401698224812018936439913850129590285786688195414165549240895652980247770001963364299954963794704664140033767758677067277708201619688871320151587324099134331682030727605406833139751874800129538939566273842003150707791013470089561279215139305870584129388080105663323023907426989097558133704821753043906452075911807683962601535685567718963386913435184426394393107629019772641955685409441797347731808764352777684268905021618027887884573732897714945062524176815758243367329104192787698300699915209246707267846244756558737315346682786502241010689756746322638647612399029802586122151941051429109246900291977446839399046445026764273392523612474356097084594042979105399606924065593816952591024845885246406199165885661460546743153411574338020518644147023747798259053414898143831649345367811546000557088246200946229494356769852339788390454859784704999281399344052393677904886052082474522888620031602996587409133318797263468165009392140447611131272222476497324007686654490095453159114079332552811414967292753747586317696925599344984731530627334435045811152731135067709781702382924716100769053590522974251364730342957752641367098771021166170879416186202791955590228082196698243349196302623214855001017213997174085819354551360702660710123722142338806280012205786406089538396772165543804420760665408599190777090937380326040234684449610162684319936213881560762921859633298677548378807951278532349407886096268690387061138779636069568707955029612669283189467347566073825836884962312799681519572458326613886970859258803370858314731079977138190345549576049271282816599609967548318201796580469351005164296075350815394660046769811603989806267215484695219928030351472252618824581314135122599662267525175565505734745144419584506959584090039902655840538459158558302868968552154757185194574809780209439733797096839660311976651386968850659743927436707854901268991450102315503972744790240192475634346044285816008771738771731319808351977385253652611333428154084976792835519402625828879672986555445853387312018615441847786219649834819961741056645771963215143813718289540889945994290184823494004577464765483217143117462031333891262974994756373699802798802387024785228019927190809705138129999973022842160900728213205734200861790928530809532700968006778424352933934041271395903346375841657286427662882984972459537231063983484479790868450323346177419549746333811495637231706227905934294462612980859869644155615473026067679266930480592022706572671473503885291455847090129703417551844084776833336532515746179159238813917907007499236679567888192127366518781738089041514160452825209648802910720416138115489078169316554815497867915642461837411537261781525309793775324546082164858487490582144999892410397294456127172567878918262815053912234386538949630795863921188329042269204584090024918974375258196312004567814640626762422966499160051493806460382281939247629634114086264758092549751371735032042568091066747267280414938044406756481804200258067360069154889700616626387265200330957493967551403239849204170496670138639002398698183915227079720051134750118081783591162926329673817344331302634169365758167920752415641343471571201926415563678059094016718814797386854420631039302990928225451688248415501807649999250322938009655220075903356290498355822847243174031004920359877640218479670561777147538086120487779224007281618534312088450278220036655645464292680297607326967942112026590194034069865161490940841031737800538203387559361200562748238651084974414864804466824481876328840154491826397236953218740749905876568663010510530161065131620024696337591326701857145850796620801381265190161828307397543753398486816444426496618653745176062215927920166338593799030723677810895322377777392622862354562450859812003043432726751551497546621606635563104056372729367759557978856171630849148084182252237546599900643268847769365091672871781976903425887900513936717422635249983879704728507975639775775028917208769980772669331638748301604968507852270922664385397895325858443655369723421620974864988087766588210181979938263217360608981139842009957589826017620366788232332923612533339391246391331187700899779557503776342694813840952575839620878003620177259519170074867651338564694933764703106610607858599843681489228716847414842739392154468478132916589574725990501510973848807670802229225900665531985779471870868400914348862187269615780651166221775626304469948351348243383823307427818948092717137231073491775228462554298376737459632773436652272769352905008002307471743395242911869484398521693118390659302833299101392758319335567415657707650868153446682576044969177063376309786257517919732508686609717664729449402867439933348359058661210023728085117989651265329971027878303502741680289054097979533069002148231704986421414752212399474490492486236667433504640218351177107761315638523847743329649345600680838101298718402471268661754267096207515239748927013776507814692170624918054958110253458954609266408346141407455888478107106228135733231958926598660113315444608868248027933560692047780768986183794790402325379435430478842230536774359487964936426814303929178040949614346757411907403595145721236736764700438968547193130280200725848048173820344489117679394748392148104893915468131213963971691445072545096674794857124996402157356844610619996527425897600487865431221755050616679959957096624254414079922650382049744819137743640790052954044642944499514508704078131057857411698658187100688026282870152557416234805377918849213802513792035870762408038333258998393487944698329038826167650077923624032109670736976221823364082406333334800468740771602696704171573784483910847441741849104431428896837007478889026926559613632035339815490823283967544410331871828938955746873549406262201137301006860053342173961637312611247678759399978415211431609321540616829801746464688631859239016049147746006284651949353194161923087907260051129520457414055445873178578150972594675557348312462608013485220362310591168283657691418258887439575905349865353826643801655830062160414652358857255460887514793093518184467426095629040155559588198399289780680925876811415458680501384458927741928729075647232589309188086004360420750260121019055822643706351402305178048612985098997509724057960690157219183655130163285126548743389767459664082671589463213801704199113213957574278339115076880542824009986833365368842790402091701174555947303789895158079902656357231908700424652195012701730366421032542837271926587154939992467514899464514514314079075656025698497116623732064571871030670340334048925924275450259530333243248230907841745777436170981903012427140559292613848376980200657040977477169073521770271558087313635348859365642551958655643833909901782300650862111986929189063727400082221692317584548413813866440069291637879393503444051380329933949640610552700421036313127376391252679844949228304897355418689814266388733176698425729610032089670228325029991881384259724480803277723461165824568823087205369127832970164378594078740929200088616561085915059717026882404044967532098221598533402510051217204933652655067978451245126163912924792021730748557633298059423713861433572826727643651104171459652670342090862730641641092244689395266287703203247472797521116833780549589225524813752356411059220830994285828574381119949731704027859859643161556683738053963238749137893674827506480948252515594008524884859523794002419073620185104969583832058049834342238581281630051894947086211866022271294648251516810280394309378570757692404471411615040835779382161869431551992236906306158528097237467080373425747038263398410890950805536245222902599226752678711897604324017670358528393499778477278853008717648478732591707172392702134186756226336268038799357641463248517767155858073810452442480895332411274240837605154895273226758566786428360489921397562417296144545118342990227666243650965116981617950088281683712003541257522613018339493393944012200467153715932268166971200351433601219956790472297056642240225505398785798630441202034436033678467168211268663449521637826589855363395871360998281748247564177824355643765937039273188489290924199367211459459590333248459499788303425570265122524234444456437799830032824589743968060187007680061635115649283164960626025163595123710846413411715961509001666464387876951386840593687847911728244524623403842132842230546719449443389262832723091235092622802433344554118424019433879837755216036109208665795625496414134530584003792000267810555465143433204563255322710937184946697338468729727117307038544623390982187516117264665550549495906407652311154122704375742861560313126468752421339838969700227768187050572620678036759709937459243316780475764731888857570210459137323493224545301894645654570017458850020672549541328950827898311375514056226407774026215148581727889944887067962879073399604647216369725670210732762867188170767051954483115551272117034266917792291199160347478116671202378926945879623396331326809882190780304595505938059341224704093254985953226698708315191812522569467369204199838303241483450021969426611543850468941897309044092166021334449846475919223395067014375128482006655934340835880792542379888192319553556877904503567767978355627461132228351288869048203857474253760164306694352795239881626798992932235780028454517697427535819073045023384777015089866751952018605041307918130168203972079551441336112815838985555880092194255727342172039551461012002608211254222746219838618359803778593574701951131895016107016647926604841283344841961352809764869379881211248259346886762489723642499189612032407062454468062948492167102521224260281016471097192982861033023644208129398180459598157331985831686639563459887899510027927090985399378101436851669517220419256021219779681240739131970128640572621119096660838535471494121599702458390984658031676252390775024349564557463666140220910429866868860648616439463565791845668935452222483429904225339381172523087108710887835634725801920374415911928913572991053583613706588845690623123075096795585006780975322075850028614611736097632427424703436750465700823102663884338423392557320697878008265898577283254191548016781794356796939645384417233141111294968341521523475992800756320318601591511487918412786275804559208103976061579450521970787082858844679503698727286202296831594237447923762834551337710629497097983707236983794840636879628430170365053530243608122369289961069398605717299222687486706404465032424396576685979967630307337192111148615560911522531194286556418743348695333566422432683430818118238870352890417382360902466794382640936857939284980149218824078841520220574272928309484717724368322022028172741123044272684538674907328818132116461032580742364480182286453693029049436890007279624291927132565571677446009645430231754534756034040755513883953464473808332565759083778184536001443820900834563584029737045098292818963455709878510149596188109102364742038202860005576457407399135618608924079867115185609491258949382823078376725253502965135866974539423726330826170182531142910894786483572095585305402119333888498025772932961043670930254066901910245211789782110473228206740736623458355904415197798702438247090715616631132946860039020905165340997551327125160421736591772016683817364944437574573976228250449260240872489124547638165764325858454494716423789047834520992620524794472941306641970013060096782775368103782127272216742216296894547980324601113755203743943917618655419727547835538944531416938847561996026030581749393240418174865026353816455876278926593409259726555301687485610547102054740684856506384802566583186116323666389914104717018633395086458071730836370578157832809683337196634466563542444929685024015911265961406300059351429317463387798190651551733574073143705976733408687795136145744026760250177375961492183178819516449941672306443766751168898927927932019824157654299322714657688297616391216028365130814255418325703273382208310574076575535483315513523457642825272987025686949459659732988728844839039767109591723359761566789743636307135672155083736117270633384226852238199822422639167942715777068246449452067927629812793715078507310393500198413050773103317344660100236026330814995500178390544583118904203864936802695265612999625821337183875672318432262650557831716552991000374834061158678692635913411773996256341728594820408404697440157201715812201926294661071284540830055396045182547353736742400246636017550123614721178577931257954381585335722066294147790764457893052826046900885479858129721134746828332677514812485812893826971129815084214487099238323222131207446742383331317350838282698608551792736049046791902111269914772909556716459292436076010953766610146740034535533842421982003733105555797734806143974002971313367864771217465297594894877069976505054477818099145156342985410586989112932701390629328234608292673150576370086554240404889081050028375163110111271715023411676609806697510560316649598538487947477962052694519288375727831749955688512559607126445004639703843624964207832857427837968454677958656707318903032890455598760424715836940571527114550106185138015188946413828181186592492414996450870258871106208866450824949665587045665634537229027067873429447554244988700063223496120016961254932797063568297293454829803494455288785694703309401806960816162466378014295521560910587561112354665549721571710550211593190103344549646126868928764475741368378972451157881000768717771890270484707817612618021898929877522131493065446957408810044663559512945350709410131828702574794365286941661980868292665109093720084700466092629861567327470803351050749543166069171992530816117618533188475728796870645901460887404931282837322353584494172471357692166735812172785269031214718549991855663764176903652647113448741361585601625707672806375259340151414657760103477602220929964045339372651820669032003670642596681407529817368794559037510317479071413717418716621620686046792621685485813238421568021853580952773962051683003450602634170565939350533813172330341295961436606430646561646935840937998105835031152701438575743884257066199305935418148721783590466617845056717590239051110990960295294360673772437277762066668237462941316960580348327514590290602142847967928965458131591175567520263535369580277853847423620979427889939649144201674310996585442582524231947031341493517771492474320722812194777569715906820099365607553612715420531707585008475413605164224755421562415136834459882214683859430921194119093234702955770742713601602243016821181020159567910431878164507787122545781340827597845932846069006874447553020372676948339684323803608054594467457711084549892312048679430141710222913733747594096657120804059191561466602081741808209891976985263197571990519582528010782616490243735639876401777386759704104635479326701167232217997548737307104718586972572622557179937776356411936927372459315477759678514742734275414627051493487145576022120535091819000913305590540315142598496312632421179826518375044773182539287821284885651517939647695000035509641058949630624846496326859611201065869472320959135241477723564245777550761516153298018086363255322890671419240069676653034061036477984564972511603053312442411730820712371999229106142204355727069579499033245288191512372951742369680560925943186551164511403718152009719603012177455949062883761488715562447681680454300198901525009871812561623165726944736441803095529696694091162069000453755098313892722953173968151072641334925953876988118038466017809080426306539259453830730389790683583752200219250027381387339776605502051386426412573316793731726096331485715866397253162320770176522084586423381376048613017766627116625715344838676276405975815121791458922953637881240984874158261585967720073180814548951632169811458993447423245737761503381289342612938541972742955914340589290447715987926859173352679588031241901061378036731518654858444157233484040957263878564137807208138574237450344156160918452656883516839698707592124160488309179088651559394941064971581299458895854094612526085035042556992650225349248107442876453458712430686780818260767894102241392438344396101525981504701269897552371601414532554041090257740934302963516751685666259126398113574449536024224497933626096132363612920929968164569540781431168283725000579059601229777832256803536278927037814322213232291497906228840270039102108375890671786779578560360517777823524301585269618217521180306764632387973411569421971604920889677387361061308693501022146960725759379483596364338397382689735911732042943762705187238321220846499259732351574425298425745331259496379477013699465770813908214107125591958150984136816757878586616851824936038512453499780571240881768302315279536724335564302486149269003499491446079120102343963335767311980636695928472765841838035090182912384476549023107851844632457867867518621797120438197982880331716436111365471479230097482136985435508716498211335543640730535392372884233338638916000369884700765989408946878960901574652051254157292030533156103279199419636801695634301023831251230104692866013915178272146129619161135582295549713529513070746465233016567563908438592512173620320822618688836640314850774222184789314138489198889187269680867897430475917026899593786923051341021575248047664446463225078500818707500841637150065331021356453397210526848376123955875890438419956045100186512721073079217747607277716631493731673257211649806797466358433553753161030301754614192951931283557688452352981494465913416284648117080792094867111443461176139942527730650392723803668148143420190076203936784748119638022113821039288437168522003521724616733450421628057075323725222206498365029748872528142405040122603430055119735681101187001947845821030497584025520250431071260785421035817182221793354283395051665467989732692933795603495468687686021225508475161682388114264081014162255387436888900845752920177981568174701648032302986365179629035796427206365354156852898551193210794435891998951587721148285479102919027833261638656661182307892425129964230628171278283656558403846865788200965260699578062439056095050128941367168127970642618598037732086994867283141188852341679998223983849429010031622347993267857735537159821045423185629853172045062515204467571834053059482712713000026444697745535032653037645605234267393763318512685862745825308153778029038003536853890694135866978333715743952747650138129348231928162719198783757720591908340382223230672326993902328650813208607320768459649239151852378122394064377601539279954027523563231134011557902858942639462863376496096581255035133709196319072864932258056969556666381331520401414025679384031775132807429629055021900078937180571336144247829579933623299824604988651404402215449938619128941144289203592258641259358016491188906704411298630984703517990866773663587242499635170825383481498923422171572276038238937010673241921100687076419620458489030809106134022774264598116025845203974989790257633706822660608438350772615427978243558800438987042832476197934005893301560491350052900456616325934197330067988450503262419027779160204827217448794253810249012349769250296867950418943180954795455483672761514952464202112624061920910092211194714872412370286075337213468508073324044562006313009758467500260984646988211840881089457006595409467123661658011922980623826579209852926852942953345708661586507949187786329860140661788247454877256334920841615034857855522715494077135467044162675888631521240181200100116850800321363452801398880614388451356312591339401422367514893944927960192311254328803068510484491258298074255540047795072636477597934196629330325553641042172128868735826395990685500550758851911672170863642574386136515220114039367828681871568188286064281926067132220329020953209638800673295960004063039026551720620134717285235523347453481107471812690058529182231317561694383414063562778273975814069658421553107874347463738146361632481803454437458866660575232624084980153776058064922223674657242884530454993846327781326765926943884775252265782098340706319723071702359065724167485808024240497149948962042568412600620291008807114922881933479513729608270856145978133228632218489474128183781661315827748007397651565392095676685840710764814703778168658674294986342863414401446754321509439247388079533984046550329185561222472929482766853250739349746433489917947992171972106350887782152874969526520151513159578158173594662420126730647884279082963409851371093338318987980079379019414852167247338036901108162018080509460396774301286565922383902154969065581443908622444131139724284848862165095664928129123757966668535221675369812457420178624490222279618892424283232977814829380555910905936244033100417923821290395141400114554770272710000937193282432664381384442318979365496096616318590982192100038442796085987757675018964695994029451991130403248864106579579856586593868445123692424994815339865503242849142009451389082222107960694562675125804189627966092479541689645211637841425635529376859498395095766544772337694349068602788217729089612383748040835012109641899530073668517677316633979196464739433517242076207430631886527712797161386984777052669544144192590218673010933467220999954273144254380082210376537405393504848583514099507544390844746202446114133299249031013003003702825024533685315004710890796168138708118332746312978969451771131946153967313931909364760560566807342080710243815035401737239190744008427141833464628644097637776954989656081153765006592005970644035514378057058176800000432463505574128708946397653819721550665114046616115665406933711790019546934285970187919700129548731607178688502725380252487675991994128279630958194400929170941197773889756196570995363522765437249180408514695511775628708285922510100214885812438466581864449989532926465572376704234479674255001713642225402241999051531172653850453859711006286918181716282892153722674119186099228162499777797283698902879929567485195583054534928107032526145686882629932231554828057120702286170356799337214949978408165656480642799933040270479481572365510344431694950131986667777132751156812996889147106004509923947040486076581747367556145221168299923246944894459170938060565463043349726107986448535638918263060750578670875214881026267079619284085364672671228695611857822687274275645239332781959819204285590508607976721552999225412208400917941445120754683224054239142251411652051333523052069056522648370749543812261070100026195703780779974267874259893588266745417980539446759847510608848752949642361232502018234229609273550346922958319586125209019045369987849963628050074316798141903358542144308686339455552838735140610362114415554487871039323850493960822699808505229652851419602372117606640881453606763602791066687052260458177439830492496994085836486943599370905398469472643971557082096753403027337476735869834684443464533536510015648094043629492313277470407881131475086216030613399969285283644319853185299801139353918699232936581143001136847453653037854637750741620280137220222645208305049931268732073321561512735571778901698537382132144372760649032587140786951321492987806374700576214999347282237504395946274334024164967674698318661075610137130706069256799601278687079679921053932141623292929854476184118761122866603492988898232465088999798555153224814271686970712371461324825471608382658458768112013147918560685443595483084121827015335893665487204969601213608747717008302475724585476046804981703621028873178468281661477342237334006951177851817087690704092094871129555453958500308242029305645097277445962893748470184984082796028810071808589313138982142567289310457759093346625352482086283739103472506969340797635480306260889868912112686328760727197339416689410097766159077570556035499862453231321162000914527084467283669482549277312460779499179146686557291536911588879107902135159860735639436839293555948278710121116074830321728186427851140889648805262733916270993061416781104448123880426594364464493285099954042111556928526981191049596307398457698261015239986601437354011551800320518228853735090631570525848214144784715220545244287266707393864456137448160031371595082585726250608007759853475820271838961403386544641614135778590800862471617767020002747956480706570377912818882172110165572450834964062995972943130297222746857653552940201920650638290610475078408222353895961002570207380674019657747504766453318210224874819334322583557563977249540159377565224924136549932293758670936181457740586592408416174018238538806341244172742137435057131198293864343458137217563062154815828356248926979358539060578341360096684634492802650489861270762161563406502840396084470210784605286452585154443643446493354342834020778184571007457404687344830567813749459337923396322145138714223961720008534362455695190060995378655956204298077380134143373608691407300576666695426371546457722547830375228813757017808736591939482963943382386402598852642988488005717907393000067256323767126864647083355524756420017249146851787638254675352809164920167658735551843839712645493173877261264876205388089082670580684751672879835027858204422225553979381730120903750450249518585487814647080745517828843890283113101546727890959626309182746811150844496832268532720031940904644417506338849910754804789536073146593834638526665382301018732154529386432922357224545737335338246523942372907876481957663295617030002740884561453430279805888300212009237637218409847971792073894792254649344442890430738079610387558403405176455442356857763996559701645016884568026059484129554855824261471756327143377581254600959258809582043727622621181874301405011341243823342928939285511410290153456481207063771729743605599921601663015338096032466119037833312926717706614490834044431975036969198736645846998540553227216956685074102305165488759504573736170984293477434261871996026041044788770682370351978495935245420673708912700570272704121507473645176331536658807397123779378791050203037472722499878261708723119366503845979577062421532710111761626837596252641053208422844173747379096029649985023380928778794323887036177168142319165681231205762880546598493279475252692598201324448692201603249699400951348635203829128934353917537370081649710666170155164994975277961740381912900203245237312133663397504682060652141524816396989174526562341398433856461791253651514559477598484064387925409335037779965132319883703000371686210512318985152650208064477202315967769169126714212280173945029776660448947406134585116310641183232871581103038670355252353943990459345288684682654601049334130645004673919739992585573784135361747619836526077310563013447840610479992645274929265067000465457758831729301217446293185462130473519981518723116085239442287937113925042346226560616736784632716746983967640781711598892392819370071681128748917428068635749057294462815050029937766194675591242674883409175819736827007363417001081593858643385207155373526026489709098723242180133603954797086182564607776570939439136687043518890842276366686607064434028119048022308163419862318743735464817494140741913848064977105642850579454486209617196718269073124902219254684236506371242869698902767524899678403911573314679327306747001258842596524800786520482137332705278723015064021209225366543607052358383530952146991124026279461108493924219643264719458174604403884567868184224536942403279055893817794326995821496623797504352132154327518209972556490448379144056605619684553666948103289391037323910380468074433071020486979936664302239196634012712004661654413833512047826853371742943721577836743015141578128902088626467123754189369579072282061831057157896578661263430299019668838721475104957897146796031590592762158964964803034597063019594235453146634652785073693497477452626846696907469384337988075375641786055231081356749948057810657582774246845295735674948973709061905663738498587482725526101493218609760163355018389688640468434321378800930644794775273079419876132884931498180504967831930007793999834389060131924839888260809021781396312158007691000291451012272939088168830569036769927483128589788232991912508473961645790972184763798089422304495789170109989593258828098415347341582287642365695053339262357564738530290672832832980600607446497563979020291933493941047511972301652689501084377828835257663731896029599974428262946279355556009380602717753204140730301724473042822772671247738352149424451924971663865975153845946781758951490552868916464523859407234050680349617701165239187472997984780348503705358520128088777182940485397047404383810561440098478140348236575706724904968909346493157905754887199775395850458249060500887806785327372662814601208632105541298954892736556514735466648003810255497646345153685969361703208473548402249733630019587892739578178704492986536207383556014529630245581758478888180050833891737447845671458967527199541988072710680293949227112981517836384784576603394875567548186174115567773024052483138336088935042299966591510230749261885977355798546183074539117884686236196893167822993237742549421515508660275288020896720288391722631367253598828694424377433979429782446557701205919199053140752733724750816617041189098182996208739202075173739506250285285314158528975057651720685838305319456938838958073641476213409476633804882711262903307799800644354628419229320777516279543064125754845183396218678817307353240583435845269014839781986959985258709271661552714556321309485317777649217700713794795621475058495708116102239353652025672339142762047881982176992090549150610813328895919449665376516126499528255544301366928225114573664409436803990947580630169627526877385439540630446253772332423898508711500618265361871021851029548910606707788917740062336461372974102299635434412940850974315787267825426242459277623628424255066028329409418214948681629954712801471941498150904531514063188064957074042882992531356406858712341982569240378293791854357322596743978751144838420924708892985191865675832167588090570765464198927634931297120248308049840142725412608110044039065667614435599134465922862924621095322320383844373789431685053871866943338328399092047098960325381929070733710824272998783416012613578199951756398222715589644523683652193291162835951341713264574447052613886443719338209114677640736267789577628604830513842414643849540637337171070792210555464271984752246127167742177675925257603540281817739016428210486005250416216188767340460556528846482675510265606079836019629472527742741829460040995320391488691401047578924405726822629903699601129144144348845916825361921408889045339258933843437440815005163336978557526762101258683495795614189731033777470952915737134790460710432198493290458899134296569628975978203620772902021747703143252326140376092918317403776685482443966400517139558180627246445490762259377972177816119014696200949875009427059740077347824744415523810886535288584082427316524328383189715253845953147432632050617014915052061036394635377894393666019370755261384752068288284753311950357268421932069299800296594004248466402710476322150807122395777204451858043862193092565403233830223867300683331323908100316878026149580693607450271553523564370109068692904051961089866517788864945492108740010119862395326993550347877520237499958082470771303389794869525203618331201532912315862326821699640639251002633854141562337440152932265619740094786924325086265932568680093002513490503177093902912083879374914110270106187706148129253390963440074593258935668038920646288074437297582791518466148729624986905047525852612196240600350247812358760405415935982302707447938299071703386986772834949152584625656219962691230153640558142273159910799983953265421340425839801866687117566098689144332030160279668565921508335308213482997856070684621455311615383651004254734740431646395835997914902108501046622775984493984321702294780245081574676172706888671419230804431452001660942163665366332432976148837088101523791183035218107473270565794343233603785226083737915644922244071522811472696828939057669606577674306334491133789348235176430159412274626657676548869928741919078923866638269319890490504487860241578178024570970046364648113438047981499339116058522742252421947939121555804905887056913411073194929255699249110720808206558791363119009961543986608218661237842068497619653205724269167041608067882446661959995287782640161980063533922569854272751614826627033954207412015032046457367413940065518628971248281257149456003669548168685101307149960397078604485892413546272722630377993316857113946827220608698430389332856960592692072958979870882237443061981474441325893361605540414603682544029790966878687803108021859011932172719736424347995666010797397557144702919188931947300142481440363806610710231861685593303200613262727040539732474661429739204544600819149641478236202377204659286644127832060040808889857993598844014978404833597247851424951451794754716109743031943540602396215364755478306555735339407098086062924907706344892282993929444095716396987862062817460484503344285638140733417965717391761590845820167708169652087988304974483170197282797085110957987663449774710954359283170268466064715611796295840483677447635585032231851102479907409676012923840058420196506955564052044185456454333013350661303663552420866918670300057002977617841527798717713394300605578143415780026038422669146042725369837813254022228941119313002342217538154863726287157811438319360062725853344950380667516643988401929753163266704368458427547717807749038384277500472751498028881362936479355141816939134248858284677990650357633733222368904287007224164868217884195150691062823503856696050660223217749559264106344247865487046496047971425981252464974746356624835758246487505591448115956649086316126463837003332360072976330245004472333340532227186760887419080806550956176120426323268143444517783323075471160305724531533951502166019474687219061524244269149071390792253457559675557202645144944984376469689687575065248013794572376378944226997196885549535901016926118762249864225392438660399678272167111986050128310759888139516458229672934630659009569551312217436021654916041354883463221764057186253730434995588191134036973640568294954810505211680040204849927816112469043009199048703221174700026636391851751545576215244863764970982066833726893546010161555849259349900548415473323384171147130079162296364290213067962657763331285824938090798768201301438421219430672551549295054746560075639805168500677267737694020468250621845475170475961826660833117432826873144232872893489851035624998134130976092643834044834001345936978775543081922108276707401474210265200421377212157272990205915605942818589972758514344136035029523314809508597930753890403652418758327160984109305483583949700610112565608327969737452796077273512279541704902967076047616103772395024000622705869307130808816888246476818376066511027509822590471883182904327209366841816480779132976958080064835927479755195800526345563001461067951164450127182491588566242571120315174733570060496541146484624560237609895115617891913344111489469374944515953772628090333291523782350649444549162055830757449064492393858116470295696919486208997229439035412688715593402195429456640507796672650425844557669223621775881033742706738887000035031012585843973017097632075963634355003928233903114598060848280614529664675720419378875402595129744730155003652398653282505571054522293770287397515804193362682596487426581611801476047358391179769724726380759705857420090578624462162374339144250334585550720198315539194468630311433229211360825033081785732643896635367709093692117888943509298737890811223162459499975471492996101634466473553613685176942374004974827567074733505488834402013034292578743400786566374474302808501788002681164605155440588481068476692138172899018586059801596105476797141568295751788493422504230834539787948163572248830179770175341056076449665483310848923584487132058194384982490032539160605966725138070655350347140633091876762457723684604204795600718027472393210219116374166785062129881077465678242096312476250270902721395621534674865475064487814644507403703524739638202091486892639432911955188692809502787142541661458419837135447798856242085972849570040219511710379037649635907404382219324090609440440695503963270788124641907321609557612482340175430158957113760164419271584505787309084165169567748537806487620024666968069763084138871475501582412183319595683211022790409722075197017734629300514741249040196389790138747499370439477861438098043951904038476158439832236382651418576584651899270334018045226101024239246374402871942110409810990541334501941219665074888856623826958436098064872561575516774526700660554911464746336605812252938194420181175696948166936638368718743713485404466451692103031324729107900468761570859366224181176473271440611138223639904213926218405110909411467295882470832492650903525394179251637587066120329001177008133594225429464898438107873932544481787342118923923017590539449286202429511619574445991252755152556330862980734769571812422686629762809462578233866942304146889079689215965248530096185347460110927859753851749249936334334165297073497242510902954131190086952174349495889922461026449342233506168835336319770932102455892963608122644622329905644347846476578870357972877398192582269789083658973022594318205014033553608787028108679574637429584375114218501198394434921615957080220955914065211850581124319718897083071387450183267189132106757554640010305050527472521980969772085228657188563088617378838413523128216561633679352377758262375240812226866006900815716917480246119675559631357115246876689928921403676685648191576815311539836193265173362128215387834443845666843823045270815766606996103059519665096679316951521548195034645837347567709214117708661632055730667632801077228492093798442673583904038861911805305613879948460842834286215603837893210582496232213132022281799017899013324683407318723200539654370017820048108989182296159095869015693819799048131957556083295955066811070667957654587478212918592668488183403970843808416890219942851435027847771264913758776554225517545534873557566956956073235548663910465853610987532522623495786482563308131700658146048534455185175295447351994095254259384034894183186447065066550187242416586244652094104353188693576447411926450179839163836502387857708098406502591240377289978379666020796229915374977718797515967617086812712321804119182001512689559538543577415257626530596532483645844393077255292926611615142972045009778131365060554131564750865578564285775984812959987603861751755385950234487201489852944103062555274800310633946400649102182967928039857867722024047871347578261717190976154531757092093909070088695597288688779007332552568249618322944409213073455555418528120733874272159549565913265876386062133153907474950940805400619495312333470384933178209533547675790633329122216385088709584411937658340964259507406879235749395746720926080014509468437948032718720449362879406433581694952735433213463018076417675956455395083427880321262847265481110433483048926097150643226538769938444763836464333665757680060539383862371965637481783352308687095407231188429844204860465296758136177996726055864346006711314534395266496516564611391240895630604568630016514783135324832603131576615695713126610761050618313979534095059365458969475577057738733349365488208649419145518009257838620127900585223913775410623826516634726174684843093060373747614986330433760896852153741638663668036959218676248719387670613097350217679645244231181234406586153327664465467085935852756222965844675620328137834520462751124501518672449378062539020976619424784914025576749514965056263727915513930577604520347811860869282062855490400508752844237926623271510696521794285545098390986366908989794893598289667667970301844788421993554397702696120280275239476068187666501559870722896519519769280654936057897068744434531636128465566117079258592443235773457822596718964137527204793845703275213964000190654538699429494237043696783702561388990771536064321197809489897319699112726986965327300118780539075112859178476252752889983800305340172154384377602162457171176743342160650254342862937771698824823679804980365699933487554139825011796623757607387465380544043540969790486875341443234051285717245281265168660509387348590002065895615341019462579892021505198811493066270733209626746589737697441460222731256524257543781112895143533051538957056904523575143514282502504868733125306097218609863456932971171295412138480280271815894651760147133251423559614621183738760162226154850742648351046303977506650486413203776268203893253299555380556938413120844138444482948976541225459601678956293171605766094631041934511714463749219278930663719140262953514227893795775389550075894528805274654951268836304925392555992726567110749248552091804105527610239184995825155013999891063908574581604831472734581413400707838599996029287059095017283023716185554204831311579381526669805777928384648812899951326964462263330957033323201869961533809567068309681681585635424009813203917339482115179305734715752870070878748273302360159631312843326118453649694166291896630385793800802894675133447557533105903276960432031126500092654967089723714795210707887625856768487665746158515345631360384543702567815841694150781606203816094203742448627296887870513115020593320904375684792034879448744484736063279265322597807300069926710347048854251557266883323902219350347779412325466305196012025963367690682881875112592940096269645226910565891291724619424906903206634863496374573977776692389641517468778350068920359908524847458427385476047050291170769396543500096636382763101787967876811593242184980230586317984012582504056922865346577736404495991870077881927939079082742363979844643151321488408218053267357476566031022931092160975795624897754324952409191679818262138631528422687380554083068119447008991386370256355667990037719978185210368762391741159052584354430001711798319105620865782983654516436364654485360730359931066958275965262904496389624941757935987702175137333546815522343971483095927190789713110980017290808358476249214366984050107524950428685488537217562925346685828690478436009106781677326127569411732490452802647779487156179104665147456230001749855437566814533838187916921060716911452157716105135341890198318430807055094325920977084775363602366138538515354749269672566934662326630178672501220922420629360189668008078530933795321557498476755211850101508849687378613214145879735469501040147728297413783181802339858453415333045884662620570016993953439990746212329231473545367834876826728288831166407353002943514551846716861602476444440200570347752513025833176685244016832273255478230513437245423896949644004259199253943150638300715279480085535409993941499358966794606720276299166862440027472559456720632929860538783419871769525332930871518781171936702577145461159115531192707738663500498360558527401308884041716620692020992400403021045573655219444871661061867099032155746060451739366135716989185263661025364394070215592048405856135605610604991769804829069093738103748680075346149249097510723078661416653563014070382437938615375839753858135772459475681147537392503056568401035069809585923199356327226338133304290056111976180411764167092735044140768253126678136552772586500530101136046593868924444730778339713760083944051493121546139210472024219604168202650337422401683916464290667850678421782508024444948143402688399139193026301729076981031249748850969085209031006511425327006485539869325500221225299563332797419236468030143695857294208235401539208581440212724236470462072029419593208027321068191923020671060350347008636027331416370443784362775642645332397668780890261462640166657296592761609934500289287713985926689946505606981321371679878525566549344876051561259459425441602596596961170058977904764743523371361336612035964827641544666652822398675250897126013417908167881776222287683712148635205344279603599963299408710963565468905918422928137835031940056609400903216015211257261787080531034076505071766527080682012326270324796602382342886841151484862206251651441671655075162185721034621154306251756441736336817616405086794532774543047229862221998276736390165899754223453201854333045669195095065286381922865388966619173227373598002905769572141461891668424550497837763836014195855506741725957462107228020135958539948020268925304342921936992305383106108228721215433443929308005535462306907314078261801344101348091825193376456344511975315710663181204101184072026650862529606173766852248414379515276163889336447981614625823470346984193228524811248203038998109165497428332686817641127729054171855265175643333810646504154683823777280216579178542605131114717550914492382827945788307447032747135229365890696036235432454093631876042051248112334363933519295232906815965894089247169225004546676517605309843423236292368344633788304977388476428079637333073505649769620541356177291329142976687607997349876170703656228602849103783220671602568103600231604507120048749224591046352165165643435041669719613618234234527168450029998541530056296130845905517267797278524893513382747238578674827914810832299537255948813418500463116140471080087929155558150138017836066451851393061801169293663805589879514607996728900692529269441706893747144998638563066859493932154430135898453663780899240581573952945891846781851737868656280496938517358852554305877300879677105346334805484362560651588180082136083534641326797708308614167032412267525609000910017840885816240191525707779962328777294324627890768922265532673274500778155966315721818977360814810817627415076635615028249069136038453099795320869076337667906195318745426307166859274512129050979061307931746501199122714306485575046978412523084814735437874425469564350659886238040553133605702085732208082813179668032282267581014824010280322850451915864362446422686991507183249769752145895477033491325954243271331518498814314526901918265575550295049895832743054422043286815957644495978265269733189945305709034123340900271774546565138754654901380641372736350961145558969701263510307576740617270082753746396105327625510180430653034027800253778103502969143707889220490580744038556034005991798998972180183435883591773251506260917517335812567805647069596801303687510944150871057661835658247719096816173033633041074690179831932393582992384786428784181803650147137575551622267690341706058609633732372077387987951334189487836047667219934699986576756105056498731901773139088258156329743729588108840649133299756626073223250183083908318795770978306143513916258951243026876997433780286439392166028898965049373227079397035424037341029488935301532691264844792774833732961821476905205440377695748505853115485662951164531606088802041832179099231770180506074761496541792028597416722012813364118105096534558082508627423186853867798306184940419158502436238055911236437042821056944160195643719071756106007574673155038760137992324318294740735034804938811616384709680411342061928577876331963311278095507373804684260974692349593377595845673085194135405991076349314399358118840677800087221298534339607369953470191006060356124915370354894499860717064620873875572987083572750591255691688046810299863177007631518515255500507148886746236221695422019916734358520233851807489340466722703704565133409951149580380444867979214218730898481656234247520369435534371821783111275010387624827831194858956377858088124252251953179954369566896011122668747296803409700633022582695069362994179008597316185930943899750557031409422555282959476385057691465799286589471274008378891369911092228516557923592747551637876402921266347910044513674888299641201774948653779961512140482497743490596092742949781619242940967251573919056746895523111604791971796445520688401970231788505428726764474298860941802337054904713877789064200790251845127190684919999095573706077704041320392455729053473360399581830240264413405749727631223853566762103468862654643135642359223302047864965791569375995100956070867798899032405830161501079495695472487509808402547638887669778637178553679814311502391702001556230388642972530926993510026170567666911297976679528094185694535114640440944566794911035612618112316860116297620068610262448109318254492058399536073791631096662386210611575341299073804440876232217451716730642825943403643830852877754882002360856241350963300638055864035994658035968726921619154434439029353891865050304366849231469518275836822784640439913393147144563596711509945289986056214299206436628836524260417932455586632590016551615811176803862174336104509039369544947955617783663499336038656117405961316435905748479223300759356990050369534021564114478889982161141514400617991744737447866319096485022113730864781870164871877274308478360150961468075298087231501796042757358654305210073282182120268805353709597101512998227347018594950979799849108416957545693372079591875558403818663431545159462723124560372057641707251403714886656068686802133703998815033793676386465074046044225872493659363252463013470869050175918414288714871591823390071267202857094344730402648355624210800749437295193848999245221941285564196190742184650572849738240522085736973467567552313082802095954236073655367708259312042218438754468809262663933052416356065783989356121546521282088413190289787844911398999533840506947234077729635423124048584607693059941502644262745562085878142178881995964935861973568819478051831313683798164323991039128220082200161162716824875796728305756645838557037731847625115449944159329547724343398684938013241274939637772768745038428202209664969749900888651993902457077580398912578720713949552205666877717930454917551232601692192884659906546687725572512592733490989734405388485278950878591848001887168425727655494650332656455835991475750695344849307775522720924670952819737337698306409768939639075634968953673075352483271109405735285745651247762717997243095053358369050837953105582691871276765270584679929014713797737478527465148407707787494152882375211764966667712345075788258472711850492634054170748120122490262104468046261619943926996537658573826704740360715311499763578839910049734335345425145123369863954308928311463909666383056707819633492808934195347133767596262006466380594626109052111663317672122950435297713396367800488708894767951464531540010271282706752276436367647360182238968634178472545604657119103733870454154954546012189496749689879809985318812566239085428492379945341179646742034139965911836272554877833762486598254101884032352084822091240474335263288338609118773154765811998328665175094553244209542726536347984664760923093729239811197755539612866167222938770305884640004899742679478624093422806742479446844292677622098403997251680575762974448033652986292736494584889000646623516859050799098086834190442700731755559421787895455590120547023832521601098211724757038503777312691006968989518887553046666179125403378222981124162668028890891903346314599552494884544754908813008541566687640830335092918617042000659196108049541606993003358970099356426878534474906755363246648225725889941998640509305819777209772666923204799126939301270804924546132400975104549894924573897027643502252269585878978874190979986494629393030966277175837058474001225091804591938189302226457529586198915748147295565493614658096345523540134915841707724928798111234695616381762389689767540528565522236888509021256948570641856564397523695564662311307396724861831343357590246765450642529263849242026893117541732419155787518771663009560966537552063732548042450626319457301335213758283005234482992220447493161912190724477012142975084263279692936227817064426645452029411547680517772360640535021480670657593677608363641778202852093060050991982606439536906658144310360357215874165235511869285449897860470900053200250923139507183328673580406247216328726241475730911943913414265505504054140786584926413849489738454287245997299095396536672496274890288755448231573472820908978953026101018410016911241099312926436359034925605261440340499959563964094189531069610470426432837864576897118130992941003477263250253831988863535593230429357864187759039737111105083669518653882236732349206818185881598859965685134367564426588925969605861170649791931883644235360608053953143226116507622322950366782918784035260490738653947689135043943723689693155905272252208695830287866556641062186623807077345753693238539615576811129249275493368822877378555886367542713907932053714136962440228604758763538374698408517550060295363137402763110097788576771096038433493839722233251972147810597423316407245316168907282428444758368594092092731651287284110032639127797640578982671743356380147649901273099394297915329528586112623575594742791717844728146119870321056570424940079058644774779423054534792512789840833172954719940507537782042568268152638267111218937540060478043123101573576348697993087006402238537330671645789533587786759180347906223681714793641129978640796624566186038261314505256686596692178201563071214557754661353799332972531022499083463228224822888635441387776269553265567672668287989993969342522255479951297181907777586108900080280051444497513580617177128033409760321952270152270802504080693074579515502312432375954216687126604738532635624801553305595754400245984025388384501359512884527310787149133753836219406982885455816386975453815916373724925781228401774203014966326219108050894568677736513161111072726432018808580278106562548279892849792838159799249259924581864013253886376726499801474518223909457280159196017074136726005383335453470165330404934129731028997796282004123785331600085203772108200082367522693924739515938915033113271769244341273721505233709477799044474025209951727159837329914571225080885266185167128496655940591889620552575334495247461185491520701284984995557690138650673515277540964374048827763689892649847732996793324683798912202014602607048642284345435217630070920220654650514858766731806953883353065858900969074974552766614674944797129405440861283440641783004268136902919270892160481479216722836028866076709274230976486256410269408430157533616204434027674150500251142636902143644746713641043212724169091233410434182275267214746396238194102036663173451640115360400770748861026871189641810957108990608967190647101354574742601334088117675037928968469096149508613141771882373892363471705909875671706459729926280353114182713273992557303730859502735295277813291047465687292920620396256501794856132246209294317850398285943507698509487380751803408768269019163889884925513636172013000141882140360507284676017387788260557666043757061784558602422722811380387234313077061806935153217946605031749570212444306533777864862339364131028522268809094754047244561816976863321363705440145864090360503130573497754530058582069770852768500245176581693614636908575953299362000435918329902951649261390440934597299336729293165115791511168620845209250558952304427898056706835637950932109981991239204219301889860293935524993390416517043334985572180588704202332657810215144217016277678547715552577589071937237172914872853998133390451259216203775892691164800527473607650817296257220686514179968662648060246668177327733472342519623372854858720332450482945177366096854539048337315029119038979661537444741572429013617181174003034147574389127984788882549065739195817045977305149158877858993707038826970380609051463595996014507433039265273053302504757630955618061782962646717542791661359108889948867015977821209420250777089512379961960233429949429035710882022652804729182586642010128758185839618933787522178596704062023700192114329042241305991300498357195776890910105747201839526295853460882162973781573088725007194442049293335777255971565909037082005310482676868930927277129302466876910198544099778871131970304742301040211968366311040443380988419105874216837256132578597674941297152537828764105864749733831080673357597686114704805537461760722948469040634735347692984910733205001908964345462313630096203162090549899790290893832289970678254509909236829033468326751812705385876626513508196846702492900279527132174514799945342473701016977078953352714949710310891519546659715847130186621867295969142816792497383792518902126684245636184720535244249205672905025972384493483021860342501260266275085606528552256612284216574359674971867483418700421741471672658880879610513908090168624195002208044187627637712346049077820018595685774225270665697088437482484034619415352060173316306092881460383221646188431239659632680711388378275928525958268258559068050139451611479605984311397579740229999900769317616543322036425627993465799492352192014372431243768039912109554935319444456006269688096841061727799677364622759793705709059793969383041903071778472119076394966527827886408739072113961249914495915250179190715901450864392637485530610467128564375626761320419613168510846075702085738603957188395563302582443744825350566767631417787291756667543535426259218841387465796573253339577832527927737147344719070930856488227814105978138267706494982577201631205661919805094176014816837213580824393180110905176659969056860475393022846894476684398718658191900807777736012860104955235636315138855372744084335278341316749111748537868943107721467077455482720428189437710026941870160685663330128380548453247678061982398825861375293477648640107257202240202489759899783710211660715727679423114812939240608136554025990273599780857005165553406980496122215200641442620750007358339211665879163850558360486737411758654160020597680004644492494756827979469557203199767921919705710144059950667365914116955711649148150231103390500680310085908426707418158738075387464477414623242058074499067808568325296011713944544744447802258544796262438956137782740691077683138642497108550477136645381307959120406874125758710993160300268336843366908021885963282503042918847272568683743038453778548604516846840038830137228864877949648468152768692905623284425221125763970628978012915086310807099947850521113370730671360687344766960265463202454452183375990684332649718424422340680736449641207573078632721327984353083971528343533836319783088875961497548423564112976646741828844862610991630734486793490680696063972579174845223790533423040806479225386856231562774708223455881457184047747305306663329012068518853008339607114584440923360058393062396850884020659274759941984883445640224501338218425302221700351574949870390104930969054153834316417789894292760545916531823048920492270534507653282442492135645381997184790322146388650216149193758950127368128250656002869692442554933870133217559474966555382920181832488132242312011426951589539625186275697563123602341001273050089827718836756402240303601381859004298560685888747342127889959338371297312130745685827419100396620082001641241966641546232460757682839936721687358579433000857653902283507186010723240568456676114888127596598263127076709487338831858893177196325612928389893422388816606955905896881172351723706792942860904815961626688636717269580026669828532929921363095248552297238222742746396812851870189960762992265016649633547771051605237288804454216714227984208612070273879441672455904628974396476690002679445560572910125022550057802551449168614174697473874575876196566785535705558161566998733912324980139307131630113423393768954884397678590648181972194777704349824749546491863724885967396430466557820318220495486089060262357677602973308887948408164313400820701940921736980792535086752794248469573122352869845157252974856604577581551158295493513557242478350093303225441933171914463952686441884617140393265288117744758750421739361030493017655584828751564499744611316705374842202419802219973902097248803904178556550422035109205246880560098881168009733755243896134655985764619505312123629931297063770457248713872192518657640152726475398829007854149545476286943521576591075205058449989317244045190168073662845075006143655069271167906448086494569127525722374406689750182735230510885715081203965439119033913695644526743432080494038565636333580000996837878665678179895839764744687120210546910955390571325919170345045973729838335748910786317180792256682302721654770896224776474959874323516131848908125728445478254359205214286135052651495941542288350711561165668274315486307920811873459318999324892217634246801669203974069246239473315098519762825254244020567795019914142475280563581999392857025158482888057294347643434996991733607147561788279037700040339494620357855182966205606379321405185053755613188044250811313338091484184577469703473264102002970354586189052633511954486054270755275257492841689267672006149379043197197972564410738813308080744797715884634394893798303659848339318734206002281044183266949817580133591904219865813249168367493165541756726676100396489149359917277096193143756184788768205097747107909518372623892078788829129090628963525266773588733982253820583648885851288872831114546777100163422499725773092901803335857787565263927743111975587158382098907222646304225131776819721563258720340211481679627557846861689666233606087213775704111251108158576400657911344923326678403287696715436775520810396246488356446634367429189745246576674816744582161385484504985954559869143130755142021534035975584809145860190535980460823193253565672975680495576913539827411114640824891338273394214059145970827955054184790976442787878005817494021310787769156432502369572260419311112757196184049548783730316584516085019589506115525559757871167216209378938839952189587480870553659623182415988051330339748389044337173812709916800775321701439452080220302799582432934060642247982083930356232244929870411446783821006754607289530210764023089936503072237412785708526738790476778994967749155029863648595662516594703167765802188044056570829290248179140102952390092868439071652797651924309839925988483416380161408889913452459165697886840401152220151874740244186661122205380670306175385372103782428513295704717380669859388493649236643611983114898197866980268372925085068624341732254323976450379525410008698229392305330886371077910339524571677091524928225031348429714595612648912384574262239894139642143032632366144596049064630893569568800601465949184824230090428631305836087549851623111334781784292870592374346269654070817614439768536713321493936552817344810072228675088813077432838717927918910260766230288946840626929640050681297796901505644662293242324494613236822342191518472584367029729390837226781303069695378345247276937887979847520093271705682830120436674200618511608350345325675730590220688530066074315856205907461672541289402126822721154448995578525717571200430291947529301335590201627927938551041862162199731258614532410177814977617208283062020947196429309343576264517635996227756335655966524732988322058216843702130440849217836440905048452226381684325355993191053947764973764036678125453110262866144389849397352769192664802728281573556054558565898302077307991496879302800314347209421841926350977288370910563927840791630819502296757806638321504069156957588393377058711305388962916905667569243140468462997143396143769699141402236231704318079925196026056780253127855526440077121065838164817350486663677916290735598686556665694424009735632619575738626122187411527963617288664684628490596383706340059149849246074449142004730276927900177072583583207141918403889850475603507658516021051194750174210339045457303611254197735493121336254669382263296929161056123421256923077605271913718126431353072330001587144741358226279918505949553140535705051557012586328908787176297917476831896790616021530685767134582247124073375646851490150059875839966669454174215881324872907059184530559209191249645365684256701459800393585713717020736714442802208780810399864459282797795104451952009905986958415149162349062300255679954149044711851888597830250496356815049710950406160661597538736175753037126174283283041178520864920637834701505763490567365745406728599759707059055940572173256346494148908356157870551093864828450812184771681232612401641965752609327124661481947289730862960924024503188936707320888516351557470329625710818133277014268384401715845678348051494089575585661081245672716252702100470450016561087218071148220624031014865829397301042138332425055088989431609302493341506222345853072462899084535115448223940320881843152678337998901884464834079852909128996720142186551181471702227972567833789685929017736278690228423360102649040363830581526161188185439993156030374517578311962101065293373068280295159038308108756694351802246856879274662888959546151212664274763845263936171429677130484992548248938762598740515577057306520719020445923021917810284549036162214927281009292990352005268357061186681627924481214670636634547994161272184652060585608633194923781244596194611170928627614952715658704812196305201591622785465150655664041323402594679953670680907041796350561443088482795682712112012100811219847818933373464178710289506421990516479776998551070037568878224827602970264569751089801529543015268387853193040622783277851944298819714357365131119740623674881830373479032312383974604237629911641899366117661994309366976334080777834309175535216055909664208693544835010613838321508033618337406831485096236235328925296160057053364482208916643990228170470833353590404330405720940307843437507382802530048241352389224099476194522520986900765398747727508830365722943532801099980466954927424100760937903880348583074113268016307971796626985899183131320641754930218168671410179385650675282303506667430613431104310029042529645753451977792622735650862820250047955784832670509001279847272455608934182284901534139510595611077879334886979144076943036245918159238405640089845275105345738348015161434152476017079563502797912287561608777967569586534492957727468828942666293587395057099371032663493186028027452240442177449220600619424643378799724904820815341381225618043033764817800009915922671564209881438003787783299953106649462038794556110605807058430008670036208132220093085715070313292055162520686811631950834198730558203408851338647844508353975200398314952465622815772583270830848851075708877856730137030074814000606266019034541450046758235851224918595479587403337121028279674844942377931145691783578742634965718262819488910062917952910291024547899701858888798130183722481098808237415070534507089706577559703711491843128260677295583947908206709358722786335794737636834441044852615400174681535301690639328181076243729854647421709853527900514751907168744705051185195185502641361277289283129157714606467538756632940623397495019872948955093803048401270533757256313915945576810654155962249502027383234835307581400747344291987459674725795680227488822413737006681275490712773044791718486120496842827729479563150379435190443379298354975450458334263169382352232214972628802307719908886240327535490242009593049464980104145116732218833612458839233850770842575637628598011866569685860812782800006657394963464385258147794221406709459385306283332482062936432317930866607388153212911262842671561000914942216252769801402231142515373439276892572861370593006654948424709454194359870962575624094392331467589213443503929263176395169400820678816449488011067940423070252685630178407613236967866182595521863559085452531847179033779482375939307833879222828179691593128986413243848652637161258016527744841384064204730244272330456203029752601022728170952800424710255825757377157072491652553259259755349933889984079223017327494819316320803608309036383800648415569752720653128187247688083377082013009863328568518109658341406806544827390970814506330743872970100742218716775839917429721474089319164843784372267964473433267070349018148331560845923095545673199925363421988039794530378152467576115538902469747151432845054572597218388688599652040613557471992578072893902652195442933576602101664586147391857300527050873058515040256387705275248186499228569289647156174176853025608954068228029278911455859503368943885583687492400721459242131907384323299439113422724468038869735462726907183973727613049588884523070242417667842966725604281270816751591209398181770151648593687298985558196581349925296314118308169776440362880226682466596420036462594269136618066766076755605615786916721903183941726916370472604310448730942959589762530642683794939245519733474244546924624898658893159804597481892969378954917611840833407015709270603403907150505386617706717353348838013651182891465678407350853646867127769201719085250528679454283740744060996837303781472208503299250165878992323062765015728927590682645582460263114858822226167421889177797911452121009790949634114619834544530849843798488698142741948946525473874279357726420696913584972455324927924819496761205738194399154522034733178129544750518009602553880004605448118365944982661514759189668996008891759075178656607004175498322789422177900468040251943513597897041609934576530493018933443206194427703095284476476440259233989253628726896946509049107543829405686439350425645636016207549942198034324964906506324499081101687373499348184496502924612569494225046787193928700303895354341561599617445923591233482438289648059378952877397200996177169256865776682169585032199266896323853698630217418432360623761470802007528297463705150437230221945411015253587319943970524455715635595878173485638020931298181583804857584604304323990522804809828354937914885948562957327714779021266816764907213595955272496791539167648162100175042877942758767612908959418200101659687039848059925553629303112646305126178390936013841366419329382135701727199326453807801739556333746123615530832983567474796068392427805289231587869498255472628906255931921872897221658729962496092076886375000886155117179337882643175774038425659355299769629534500171492633771654576906394184428401260299343636477759898847687634535630376484334381101373554043401907185551074252124962197365610954564179568653262732138372459962115790834530341960954734642906509388805878707161913892540572627097649606785346733097416676738579556475239493344374269940305146773896865815824423627924012433612763822413368442302344610134372418019219425148444890403433740794349115771461448865176226211309756055220810632460429477524643629007380138126910943028296527879477037761098076465038685329431286460292570069395900454382908272044050338565767375283623905850804172237050566317953436356006248976716806567213101048604457912851587562152833613699902685006969185471605274232589520529777452848365000882786603222009759716985798876865119751587530641344526614629852352649761635564754347438313180975198634474872597189109401669944704564266077710831294905263143157710648954805727814689371060747540482248224053243351967676246554705264027043454632883060071033977164968299805877813728707980384872869010799166281148886197099976438530243930996299656875463225428554678923574570314128632307973974107947625888327504064064715823333491536710927166173241705041412955878056540154521514021618787825671457554659408612946823480207253979514017064864969308874554196912066533879864809763143970662909572546670474394036703988437118069571307654753984295006873217748736716973988382518332861289656530643357138348364233667822859457679714311986505897407073350909637493630738951888120731398136802362810318426248195939759254129541703570356477275967557510246432677213463340423690505193167666492037251441552346892033554333975675054752339363629956595774250731172216089562777284845275989953112610561202571679323941480802697206229026864422616926312157535875214342789976017895631489462807762067988619094502367794020552657383149165022327691343465812750775280360569360815970645768017100639886859895192227837120268406223627155995240028368265854517197629900928139449888726030732792782469869603347960686251581439859693296086393174350102031827238048266534039032800923984576166900314753410924541014748446308619657182391863449793558195869061851595060888448470563619656499291809255810298849739813185316123527749456686065132130567169578516886212935281132457941473557484321565800895623855727241554747762362498835836977510801906813161910101097948813216115175420260663222315372343905716177372923394000501562098773998999583212376448536197923490954902772454954724512171957261918681871784503521163673777439716826274478506746629321293020750618677277620919140062722058637763198144741501765068537790916938520467558838397879915802813771179813696784373433155349656607851407850752478753109115264189003092485096028474498916679927075123399302484420829349098520991988605247655855136079181758279371236917291458579243582953843684599718798937799782497963509533163987835489026336811502189954626868805942586740188399969935686792224993100973586909121753719642053256723536251544013988314098633720968650896263890587036532383693148440446695162308996318332101304808817385378482390128430907472268087919435449678214110949536314532700578088040288665380340833740150534667830793899604837419993715676820938367201486677624484180053053173458225373284941916183629083210314288197212268599009033544717460297284094507717893499139369802230649132004665503522754062168634200859100956484994443780590346709907549083699423070144233742263236053330127065684515425395036546364621747441059684676923307307593095803290348738671040585735972072103079339537032100186370549402651638524363051301991296194362568468270673244007787259027236087765460318176187093194685685363792045610065768483241280359228252201605816108828246514561123246977338652704628041508729317961803615991037027532752744894923319179994699124532729917149856108835427915658998230347846283561942828852216224797641809837098679480671546357889072448135651207999097632734637670314003112065895612122733634346175370890757211046000536507481127120246364239807090602821380456862051168540052398422122691487253460632668796714883262947382892351021053258214440447651244064531154718593960522709814162390384210164766869316896312247972553206635660801714392107722452135665175014236795559377211237611536952102431919103219399456004610902527115372065494165622058997899641546721133124841331178169366496360270931164155094120955933653689258618888627199839530278891459022870863876339398271744505834400221923504682741022840945942750983940532045638789056018051520063925610348019824157082991153559326783827186158261362702708592523919810363932690733412691486009815617170136393627292414565780120640620338671100032502429038954764511534539082231044835185328176414776767285829460092865141660162853088144409728413227526484171633797643305161200212886729352829174142404955731550523633825214035879587935028101284999936229707194983475483430373348563754750492668363757171466846796252209412638298015348309585410884350446329641804838732585345039541845683132223977796371580904948754680785603627316760123537533425757440528415510157533585594886216617708414877629558495738373932523204502113707221985504263127108072422721750018494771651943393131846246109713623452468377430037050915986133871034930437775898904569608325598827252386834981198313699029928779392253189839731086934558478056304645648791070871197538660706725375738555825353728544394493213886041730862653002223703609539935017041763202024357606689374036212473932689920800282753935507053890682494619675895053860919429442092863884503987728173007873467712615478093136591520772941755628346719264503064169946641735802345079628360523403038954070413673606464532877828752554755777762667169266336516959824467457017207528429123266955596631204616327527762550904775556331566726886633218575062830141799970791457272904874422788745520937596542786314431480476120049289718291070900187147910807506291201770654494798400478469437234921151728812756812903486018242344403789644168692223428554896017923004341227952524144698419991718797383798490255799200867254003972999197757489698387372878708358549658439342264320028818395993757275704038886732076334631434667767319133041147478167956596723266793963381273637284256922218188967395041886725706744971255112752027414147115280638585939495086865297247629635926488543434525171843272396848911312841539775659775890158359072403675468747828521474186052516683690330482344285674294181235877085383677190132573925494171015738867477963881205264130032035466357498971923696059681104601757576742834687379515737963812616783008471791757421162029559142591760685845013990089654076263846983138970078040114973015440999544135594420515076241931256481478443470664481110094228589036355894479538834851194055078339544566350754809193354101618710834058715509636214925615210677053050665350204527540621918833830497997674642997968192217347157519847286968845453576117933200024533258508131103188046765007039162252023628231537355970170545621411159895122785750898982288115951717056362016061295572912660031114692391021492289771895508952267962544482210427099259234687148505412299093956441271614892031989229421021401506623356514762072749950355083205229544613754338392113770211632941718120391438108350733332807212502583010041799345308539491477434045637336360839268299425609493859564995540959138646065607469604255733992680091426210355688075254692768214890131967896198591291074640408026134905447962391039912533175854272618602869410744900532754542352666803559125897766354890548679552262453733808993221613039570462195438805669413333875603253798075330702042825608330204007576301487465680712439113143247693821766694747000348071809354405723502003558234742502854740298917359151636423472338828274073159358825897376276134005970098145104089768998485667305991368177844506484366157971456871587887821541113790393228543700805437305370466416330968147902047675285291945298713760945437999376723365825646066323041586405117837563214522044040745372259668458143076489393168860231239101259188387639419911040475595805772385327475752634451803317595835409465569210120679885402424192485058426415242507047799082148104085799538261536134167219833997890664584153767221215675397706744932908526398731301302132831427893483201925444097245450326359608546324945349167532278049039480600264151073907161899958729962650087878909771975944517568784633629262164518056576313209431958811355564113434936069282035412433824639017318441812029736662640846516273468655966717518539927277441433904217064616347328209156689693410481756346377480641410680505072840215174022965119764350571673277971168317655306483751912701365333663502699693173679867511757083096075468162511518524588288934953944498338530487624740001981267471207193162223453455033293171927847495115697416899544763294822107980069843673557202643468998093080005398160870553749046803715113483329456893653024961657183208242500361838106509946467147528686576489734573885187446683873817939447337504455573576950040873027159065181703907910939058749494748510698450655603923068459942271992639537667426446955726204165108892314399274281848546808162128918972966846529693655523676081365696037205053694632951367759977784816378666044824186006738154825774118666153347177633938845923491091268395375638379415912939535048194610676457531411613700545169210864826207035090648435965882110886033479158722933425071219355877443043637787984867020927297348678107083239508842575751904254010040248697065785850973319418073427296643187900630232236941652672048682738879205094261596512590570328149714453867358557976762204888672104004129386952433460833128653454072597942968272019380282719491693388427342242082898676885531614120665963688682175127584007031135591672438898203763228936224581000931461937776372325595512790985279520925833342068056961149751146399136291723361472216132516612179825968611957226784734064879002678884908917821650071612280131864444635805461177368896473109625635882243419650280119214045175999105339784369538374406621861577695275931565629248586817553167010593884847083213470832845177144998675847543528115628787252547528347886305572947210631540147743308787680335234059866095984976805054236300102695862975982423808398090295156764837575767337181764920656503370796725741437810909107390806407151759454241607750784774601417807599853354893158190952138657036680838937864466273572958029400663423273287402208256754919627692508593347003542526377628889470708786236692070167498442318302956793642446780068124010414757948006934373450574193511351508395926585366818200835377796142132871142047973797589260022920315552322200199864004761371459883176276998395365717993148041798416593842165060339342985918651462035142120785636338548683908913935883064432451342099362562239067548617094974394165140614903969359867973199657505406782395783570954303989181978111114316427463112879800981914032317048331812615181922436857027973957131069325846214360734148111430858527836639103473020922319575255013131835263628452781647393891253296102281906283997079917128200189791615057836009615795440225144623077989744771583946588303140033525964306221539173886671250528414660158192724996796061945640701758875647259104519569318359358687490937406310967305267766620945544659278992689882220403400401305270414163961209957686605734037478828181745551581564923849148352011501837427278793738649280227758839861594273649896318146879351299084558115833535970531179639863808779690227483175047851684917695037827571385355787611462408290581370029882978300663104927225598095495719637435976467825009574419600850338129394105258607439671769646933873549510493763747091662138798977879241354618870106123615741356628847846475943955601989454485545081103838325491015083689340431867991765420834824128323859725520402679644449838228675784140838786913402115028273344469458984183580254151890109281175780784119914467447531671267248166361737429713367999934224217232145572750572918782413176229727735845521429841886055181723788483951083691417455657868838164699684900768059706141748927614668546519733550976867890497067621262078781299695542159345435077578168130559318434323816968012305909055528284972421929911573449291426641493000173957652846848474600259940968055195387345357380264693361482080232921438973694070020311387221658182430395490548503544100328573193383764975521825918451206674806672785501168479052090563961535334512961866723602987668147494127615272122333218169919785726620671675377220390872689918701208942814742729450952221273889890724849328708619377909220331704598286507445403135843118931890623044697783356229592816191494455722092135626664702663539446345451048517537898271621990031239633773776839016256402464884318701579136451117517112897578652097618006326972931979790785898592466075065691322122309858005505364871953084735896024957065938368514367960845194473562800382092307704743958761446716364798642809070486893296450193316883485418927748931241033214231061703428835985233527361068161232745095699578814285604862829808851247646315755576572494338821697880740058152441367135807331816043093381232151433075285722222253008233055402575858503210421000429031166366584653149932216345429492050623267306448526500666051303436935721870980975897173480213143540454383835711274399106468089402248150036003867751123154855533041544040205373034372980194046612736887454834334639832504956658031041945455578582930749991885874593758572386505400077562942776699925746287502555593979037743544948272206885037713321583521887534426096628985624107512967727809134168038224511631214495490162162777617507608690334704219532672656960286678721918770140502410166386308911481109986935240138602673655542384047166440422344375522589276528734264086883195344833205658271283261458117787606432526197384926205476311878495218636242582270666107957775219447063667421696563255092778921501408422877279626666328777653123297616771709184973240844600591618452319051044657748175295672637513676919298926549771157171594017519326227488955214874669618051025719734760918416244766236332540929026531093368722080953588414324924928482605285291605547545868604223470233968891919783029376482555265869390152963817365194892024731113784093241406195620724039363258505299237007983836035909103898630025112609955499031171185094995117857966980396012236741055497812259764323645883476362689007524444503013936016816145825484632292095071878994436189475412468038429470079190714082598390023943484605071259219359072657193578029414016294554201663809352273416393049894361531209245287530695402401045649380176581855160962938967565941546907949122797949258890011943062061508505329950961393350539904468099736340591200350589180313361302561436076146510878222973534629928984135787948816852554827402268746072320817374355769183655083199382213401914315824945922412448770757244050960161219006676286760733668491141012851304727690996073034413954758351020294662971933804840427719046417014321800126381531485482942269155405606621733845543427860531215769974447844177989950621600611212422046521337810406886423159535779288994416540033844542679974092279957099882228097792762245921004261584494498271201746782654877501119141937591975320108041196615175731112854871952575291289696803336660699179935787250684117408953046650430690318960474898083292693233372736502123138510353124368909004138059495867437995761676939252766215206789998763675011844695516208896787586325486387767098575796727571823098908874405120998798790483321642888116233740890355952509159368794506592396241043011332676374013751974572743112475139030756682678359241582599250709989074432253855280677607016965774487737029788501066273647359392399091434598805144536327736375308926492162732244328862937624468571646684222332834055904498296688197922420123476352440787903365308850082167535086341760810384184926784535666056563280679396038818688875231915611878357587926772636961549714294577149240472634481476702215189404665525009780020060271107092386737028916551509880432018016906969697913802092681333292665952740937405843785777636398847072547877901484202453436279131107120039724415450235818641802293770330461500710499665406406110883320574537167532922558583032452893359911658565252562839712605939288788316565884182705110980550936187320721762149975866245487164566855230053180358362255280078586289440399899237479891189596147817245423445112704163742318007060849366351268537210728857444916926899441863536969079452069115919907778866093941019815016319454273628596393424010805050042597592455220680706963193123722729176175724478523626948560484538274353780451739548035169397896239018264111315966182557246316067386177148940998085858742668161818473668774898745213154256670726162772498663679858146650794774933075159970405758220347518660605841956591050775857340157412333244102956038688883521047983662556971925539328641746433301989555783581181150687334643639445342475049107378176399956683745777396177773364611260553281963121248692387305881797556882356812579134495242986994646658847663270498416871924078850427015856226488093470152938303984256848355329970668604983056075211867336269327634469213650590968018085808642548459686067076973142337617896105805636547573710913412224589536556191959170969122495900197728509845579106620953990281361498234276467453612464830058082358727049375810908693218597744376020053876018586975857048097464413426579485633590225100480478697924354989942557128584041369485805749326950228863028178547760771174488199904013706220007891604958621286420528839292101047101953658053676293650249943866989373566215747079801874204275511763668226264992663198401107258164188174412457607155890454513066791402184010157385564758524727176073915444065084092566088857800141941422313062946961924957647976026788182338544607742036506789719324415058720545710765074033467839441141193166909288456101401063902243375171411204681783504351734310726383428972302349113614924084071539098387856751937312423475558067701408090655283879053952604031785828386857486159133234286079800918432477081826952068428763989587222562276060757921726229399746556853832389774751000160290165219414231023730473525956814539319905373959971235542162882936075657532686513143695030861774129214635395913079491789731843999334363705733679426032693719537143740120514536872374907499455291811971173899862259549365093434631638337102264232403527287584046547243592120765036058647924342027667675035162784297355069358031824634904667049833535554489823873447054395546855996932235430890957459022482427154876409037700578159698198423753847884790018011430793724750450944850099157223482101040416098319521304790202720198404373270309603190505635588016446096450234877465730425768426420107390549636942445922249839708646134467163393278324327293514360257135411506822785760523687820756369213419200718593053058585244575427423033961871778434665155391561706551536451732493037634943637213181932806797523349018422189358954295613839056758563131934899296468434818920451932157834634239482157544947371094701884543229752615948949556857901316818108304973111461753856445101608746963293967082427414671413490945203567501285042430173168327915116711805303639481125854535259561318762630185338035733271148617174780263198091969918682979641537030458886274671982981204474885201136844013138367004025108587255140599252855214714122525060248177181414829986900145652252810549534972217076905726424830023837702441136082023185770402658023053209897981634009891212751193077161732079759821142648142498809717495661434943092707050336862980836428736001133525038581155507622401170003530530051722042936538841628166647426748154889629305746263596864154899485337350521679478623754654968675717531312495631322822269170609710970916437011198743425792470313430435855699389599736618086308123080340323136362548036821998354324243140185184507214589960738096047017581688248127569320075323710165241295845636529193977838348239970697155069332665395290274716744867622674974081519259357343526927748233868198347344442077691420534908816753812622578066142964505206907064821515895185539769879516873362479973014770256798139038637808396445129484971051203163705181431701560326278722843668734977958743282966021774412986507412275321003749408745898779067065590819980265672984636291484464296465413065130239590960561511157522936371618591105816554018068531807381808589562016199142812611627522799354793527487816170201112450228441236566101489256241709472182535630583046296464922746664261196435373913966516924559896766413384317250887240807028586921703103659440510441000116068840343714424305647012764998046017434564238918112643797233444301052342518324997346286702616181260172991000195030956124314145802027812140189944917271255969948265707957727196267026150413175948377548883667638509277419964666728627271038373895899550573568539566899405532974249397430479994215216663236678226149633366606859222269259294600399517498055270265841322577910325524801643206198977791597573692509827470246600519684842122404246470994524075254629467402056096792086811050197528586143091632478813860916551858098255492384345893146635534115496232491311698440888708419869535298265120510343965837691010850745666592891578250126863071311708332430455985877501210199760925281690267213578984757365714296626218222285685283756894709758733496865231958488231164178980203452613289191474310844839489171062436523510908551912414594336090956731368134342435331332775968082714405096376178591334189530519816860138668237997898521968884118801493348186797881654128546973644962620572972778787118878375392877387458776605885350848117946958907682928771936636820029101965875230943320572247826080554165393492211017113296241883084527832015295670043292250800690412681899089203623862414873808949421793853450024505579347239323305247865822677173039490813680545039402575055152609035146372765780791830840720476394072089224593203527952467879417035162900424512770850430025542057919239083831599076023003882029244674255828271590950425123028144262759674575639446249506854430902954206611807855677055582961293255245930712874523520139701830051251814734893403989113173021773355072160788385559759267891158520230702025905292885578907338145584170419627102848550440395613614126281380870692925056680041311428986057971714026597665440628335203272006454388639607216029564349284058805346866251356149335202231055772945992772902980437697186979810677142443752209183853515170812353427199286367616309594322902802586366033893984168353869409714987417399749390701865669095279674094808523145774819860971497938510998787108277339870112997626661081690589309377412045455168215974745189134323914385098754489532740974288275958086847733799324182909195818370101691400298531475631122087496374497105487600485961643555481725195327556495871390079903413614647295396649138772871975283923955347184156337095806886296339560177706007780742712876196573636852570374947362157088339557796464541612014876163759146203171793983801667171821337721338959287997128028987555072247373074413364445227801405439474336571645251389416243699980350073179817775069582948438860580620136914627881863615986397270656139508465932013207532866406372165450268845104958565116805954536003523381271769762474015073359103843695660757461938851421745325496682306722692494768691259230522290793272590296292607998523851293585290057779332250335584371689795697857148700736342737311402217521727302941976901973129246217187328546902489459111088402268674730205768994591797855766527269924886110717031474923865561189694725006871635939522230021008784882216325334619198497181986325482548383696710691688214716275219390981956365894652118131727389542444664387368766094221033818809432532646475935142870532556237053057842407797820857700397716292347768218910241308532732644788059562635899889329569720320158626022430313624998444478717886455315082924899673017761379859765570288866707018350610009553067437343669950743665376741306425777356825633662643529200238414326479576083889340632772383774520726182336176657572573663866865757505296510425907745872069253080484108331193666147071367241254052732630925745692523209659581841241815663625355475433562401896334342717768092620023704907961592694613900251637480096298471357466922231590930936941785694998540472026947876781578401036698960736275173933026334449798531345872638240572458832096710207088002751416698035072949561213487741769881574972520466434968966415311719639922892600774244347963305804072231056061576031851454081876432650314981128604651965788410433556661271533950079335149167914494731222747706469214124423071624580960883922177828331092654598037221561533128454536792624309484900442802694886552768454317500278056952559309901631070732762267014569314644015114946662900673810391235170640287754876543529779085601856560678715110635266584372486308471219351851228936875400027623233777684348513265806245342347642098176387259093786460221145385544159940724351826715100313595208175982748186984279579796753321995326048329225999713470986543862522971595125296465478541010248843845866511979647514424733741102416382404206296002002502510880159142035305777743347308447802343443747539411690992190813257169662969279684600420558768263880830039597289609542793173013930177729141256305776231757226825951332113700720304165845681139499578867504206291964886392690364516722810262743080516050411132459465973631129725709036619866133581624858049587530150806400012487231869103200156223686608141229580234542491819154484566122455317368890228957805376705658886029629283466741863021242069845729324539948933788442703412027297176288446502016689522204381853398974901876557351926376097210037490211441030964620238075384656927098270375802745006936576198242237517202902643323406289731424214788514061354808200721731522686924189345237850430058139715869764773287392339537408913729784735501562575251223733713102108189185518758586457115533702726701423369142303122436955641379625165603956245733651102400237942370715689793072410887391159458696938564573502332239901157168546202981429922420019565335643383892137090658978860089004710917414924249952896053166549956029912488551322440194377498763463526985463183570393049394824986590716003566657603976955532491315049007056029380932058103454028418231249175702304669751234137280518035665377814308610010085989786836433616378338969137440476555985834052081975203303507366655485937980389078270352398032469785958602468023365518257351322410665357678250547117595956016700338366629288230856497169686518732361436014527081766397101767158298903692203534841722866219360001861120728607323963688724823662398298882678518505738686960676477545415194505074156726832058825839303916224017186076124873543514867203408136433695173167514447156990429462172489730138248270818731057831913495752213908435095175633639293401655735841581755666726770987491584421125209444443376338086247643772106665300846009845617777415134316452532748656779236432679896632393282352411913302048680666575220551399389354648991693943919832182393043223873712014149832372000856701749336327458827485922670745232960600361590235345558189658809860744958551561454789470206413201538508630424147339040433440769634117101512615983777981590957662404717967509871051341381969158561506874894779847405015413364409101252650182174083911640643022739946932868924327686319451923412494360637532880957930734626885560851583016953478154690474701250326649899511513254921664449664514034729471837820099110521793152050951942440037366811759759735870076106192314278388874673456333471157587775376680977803655884020804841606496941823070084539089934059032969930416261395102927100150127430651803059826893512540960458006956740943151752820735145578418840494044219828600886607039846711872714362848013789771040124146954894328123778193635966495632019371143247417160282809506214077359858725952536443970537753637957900392068998667822464089652263448083977180592784853846336230427039133204581487391047322689607897607763784255878135542655390763237976102846620465595982097988299750765427510727483544607604138048674945242537690464861287976197123807321847954081512719091133780148151719053280505859288075509368706951552923723185573072638475691349315393577906428256184955338958323861912753359129427404834743891872789511528975434712850981840063233958694933928269539968059580139632923033271710426192036226355372622308456047806099734934643263038663843952236327012838973688307189291964520529977756628084021865644686979355544413699315561265956658643762972136143241661201445224518398682504643740455510681438714880048800345241289969374347725918228818170930852148069427955343487160401429681224503796416468594010648543335602576786801260772310740845996277048675658078187551908276719843680638845905370248018506421611808955126827410371256533743157539155885629016723875951004234901223044931180834553053652396883418353021980523786952081706226123032518542036345195565081083899661951343423633837493296702947518526020532268107243607079049129483887889015534196127229084922697610591835382526553892663029584443407719928236586950651863906297820947346413438030013402798690134238023479172705362685674953423651937520057998612097714635070093659106651885779012367867160645341625191295060496427466074237448194079993175614572480477781719319545323377576558310582657068548625577396592847690799563494617364158226000536254645859611401164970778913941300368057642723172116340690442570319196093263615682023608962500914202656014193334321450846366463617352162378670637593133630318374387532829791869549130030170846441726283568513250195324537190718365670333202741310514617015061251538058736856437676962704471588273317641272671730152993598556294249433019918462301810641660240544942409324837240539916028069132704357448916083686685681634131513685098701045514132097989879608149656168802785358949989390699528919794063171675468391501293827467695494932680779032889560945706270366657165749379689202719858857920378338359997214512807573996302773295721718970853862791797420809110795524520751810300250329597676229127150333415256950063092318521000135876371641192535831315082572388098807427877728718642022322269017100615760036008276727665218712017323071432675668820946783472665776063227114671889885744054851276824918529671900640880074576662246992500012696554144313840936646512306416959226829895620479422917874888853531965116948508205431640303084251559511271726007848326574681680703856539755485657468127670035079207827101934742292530384696467366808155709892553228811066798713682944238695576389666467444275801178168982924326926160024899280541908270325616806442602869389431086839820182155914022707713371333191185020111980283501311905138936536441543714591640320640825088716975672327798100604227887267387467221490494409069966432500488841387647803774922558582116038615016939043670112346425906850275648429880765844174391858205288721374343067433874779897077936531992183044411553269235295395724664371172212888755136408117772256984589549749626218558698909497702147316159094817856604032607585857427771489649863691828659540132442004657460264132043775886887507207491459591491829738768207215195585808080807377810858601483209327734490917541699480494045330823168225395982572916618186590467996591847130747869253111194459657272442945719118256987919613101389018926774514773598488852206980862856419957480337968056718043146913540210473841624960675926617118191635455507659913329817958682461011195322975598788281748778035875826646990947984002496825771947081526955850926873805663418985490839428814344090520478388740492176373904259839005105582919457107147665081788824637676603019192933890244498054988133576730910905445524761853092352014019842661783926117059285326226392934166978682886068801942403469068311093684429290851591771835263378400099689948474287938159473848944344986042939739731845424071256205518468606363535587604804750864884299993217303935608496649410381074777734770790106119558696420971431676047137682913869758908356085390030760949109305410391759292073793381655205632917850714409112582504251895411060297148353089763763192779793069656146567240995964524129286593593081897676277595204053490048160664649436385438659037327297286745717726744062813303402833848027256324545721433851924332601379097997137219207350337368254683581365430512996379831518707961687510184678790647709356409459164560480946240018668082397793253765189220176674302020797393040487197240204374675735401729758195323583220003088400167002186685106602909152513327585364941126732485686254394403735628652816553374930624425662552730045359002713022490875494736353129370618042567269018315242267595110192546911544702250704028603782101613316742808025204995589251480175899935161037990895923038838962701403778028712595406183608056588699057570291653678190041673347885880916931710135524094564989293715258932467165521812890552956973932633701446898403137043235207658727216960240034051596438791480451383099515132096291854949914730418810731743658396738480400716088134180800394685027450984841588492820920236790618203900258089090901834530665067942274985689894559466540125894567337956530052340825209813320964591498620187373000354595141855741652849937237366176258207482502009268537284186165493960791901478776461137059891665412984395610520835553856544304484072637368696240432984262118635700375821220334326463808303465004485675225557832932741376888495894659241883277152469979644496421484211493686158448078628357704945816835180182112254185591350994091142075940975114260040602756987592418111869944931705890869984000792810807216033383515646832823818328691186362499721528328641218411764776295002461860645774848640170554760862911288173854610245171395129387933167174833950886980159485477811686492928375830054109067194740637415856880294047047690775594109088533218956987368288858999943405871716345872386872963137325169673282901911274767974259925081599072318823381223454011435168335898636437402603057259189389688104262761165509809843231297886615582523364544944033266321247336870983215870877941626597350675738758129122993127477786514626189410053915376938699141633430707716292841843693489910708275848699986407998762800335625898763310449380699252358994126158910034605567160156818427242305042999257826790452702444227768113165440558963608714865109916558338705202673350714808932883556069529821185194016181601575967428881025556952113519447877544263481608320224090560369261772467882310846075019646726618824436649770591400319843040287539871593248969970180046656840999967765986744792848636464711784936796840621058181797342144775667185274689783546460707657881422180485350206589871202945003639947602149682204237566876390528448083030168217947965677094491579773930966199370726874723687515096232184841681113067865123401959038984772388733643618853838133591765621156278744412152699347702500401788700025352271679091420692662617390142664544985912994378508765645039622258823581663173502501112856577759082193760263069277997497845075862976712272929262696109528085145516156361672986044546627919120912418367915117256672514125257401960726441114014396464555807764778331036766744824590209404774644305932195427782416852995847685197798737907941559961138095286920797322337133841561133509246627848207421238589002388788271284276719600576066589602588162436874616781797722887404939358219545291106988743325399816899906149135781930435716466250278103381153917957341855368354515911866628334014195207921180164521213871932517270386884228499558825132074720713571662851659697758275610373648247387750577935830121980300872601449149081847823227324393962433834416323599955523232959870432749090195723874196387560807323869185407000734461078094970402327244256968851329853293397616570881659790260761630617443052469003218267181134527836208853468583427286041136245566551524979465273214739196753717478357721324549430216138689705184350778592931112753420229602831565563467231566780677033976466933884686725648134926671607579252850849520953304787308982427344015001629013561465038535781981138877662957899431347317853078798662100532296349225398128716398988056618648477436719624166787150026632284846076581585784218035886774739103759247921906741762631299046774693541365085900622956488773569348592093914278363023055223102358757639256161497491475909019285904659781655785017322730010586612731639014880607661352018201477853138928485739526588487673581697168938111810212981675758585721845697261759465468332648443450386519407771119610005290311659967799667079765376838870247569141190592230587951355093027519937535263509654328924714334312978710776121275595884367941265671592704653973685312215821806454214254004938870696712760577113515352272324977357149180294960512593484970719776184096872245644005409023780508049913841542043144726267388821168727128166878510052252278814665610146237909606746204140074585238200236075247713058685017872030325244274848391443099234859687713727925012961977218557253102191255662894450147528227018670122546029080254868337400237137588543895246224576366626211362434906070126172773575127186301611314212603400570279358706100302235628953346223157931706620143422834049992950530023881421850795829282357531558653068105340246688215549830215188246111559494973926013221395340168528751351009099921388484960605742726912714085674189317520523524010366998758688177430962422598992498297601750954966288974278031032268019257314790777620479956989976112489721257060838386600999770694380666989359895542107647364945771877489498093621413793044646453339011134469266874487987344057469648658696820987311985010448180381718591784693814908799722789177331779773683626043525031136219253659533804979401822585357222237219600613070848044715673635471520958455998156408693839558740543987666534582256465277043934301057125497514881423856793473602377276459982785520246929376988970463419104643238259231319784064239469998959620973824258053847002042663823148774079853345310290907895678541211239363577208027531741774778277594028629118263315412891025066178648215401523734196552582121819666796203959875363628065695454761017007234148665458729478432491363823408342949121166531691681881740365346941240541544223698361199978973274550069351127743536043303077177821807878844012746988931520136447951931368501393846605452244441785892484048354245575141033075774762247818664044376068405257582550527411676727113485027824996617970447352151567588774761995013264853353451951652332094853962201628941871804772356927750934088427222810331611140859894244336453906471705077808403330778797441783936014372871109664456300103215054621814349857554450472622260197456442669501268525448097411365561291028315382261253416672687735710097179723223051900314131763905154909244017898562548566294262872142849687002842748414363438711691154612580415431188352851683804020086956804524338188685758296643244906723270738616852310804084757623369634652765991308553174892691731384893578412492828358085376280743733290082179067463078399504278634874388395295818338889272452396543945010311412107473818743446536169467120980107835030841084295561983795094080605571581630309049193862071932873492611849313173701935018428520763026255236652163939047415783573691626046110420027393253964624446517114306696286507441005005718539988663328835005541567142671251819163228862453082988573340002637504803357875629453718180805846898659162364165130567074135943073216406242680197065491756111467129539752324577915035233194755619367121226905301879903801370210314538292547777586573922722100157288344973727519203123854803166911391311181298405268506638428051000439135923273680990866210509379830992180678762497785148161525411685215179341759596416340365785919435312718542483334756884111554572938814671287805392243186629371795660871876517480380882105400893374169983501170090364870728359518465324842429100770838153606708911278873827390716722296231313443896213673203324788101087006701232884543620292533380371849890800625715847208472962552767709433617192913277307602676597581684185860388666736678989374974639918487965132720986324670483740302413048486894826484733658946108775597236056426695423180626828406858219153684654698532282848332318113879293016030961668610104391824459162793036864558427270316903932089868282805734607907643395577355680182700881194945639439254044778781236955985752749224266238059772843324999587446089495653253824648905133148412726664856738107838487018962678597155905762290289708114986678108534436448497295843474999098223189590588140134501413359258471716413733242100821821634577324803685650906040341822623853217648137670930561603317681050964970576568238901482702515156207866242435661196476680328745368982839870147057059844014927601255060487811521428532779205477508490599111190909079919850865166087457250446410508416421315704517358180303152652725954238144624359802895576987948090073708663001050882480527083085244894204167635589329585758985615952261608951844598256812406861687274208713249531708279237146188043121754394592900124655366423148495072679343206623398766253714734747675604329442632079422669219600526354657271546015930677478112105162964897300344981399185904580220929453742411729602750849491224039257887737142265832430025024375834765958228813334141620617412403949324601843720784457593429302447869900769861335683306033715225057226858541315679959459327694559826808672626334987013992809729757933531790055667980226283155795087982425086841558506828366755570108239732996023969443361781890871035832276471282417515921171524272131655426293150368535613746296987337963823584327654626249943893737103687358226913373305178289226960072501088452379689751536460608370520880365571590306082782106199001015390471741730800787295167796836576642904669731064721163717962776084369703769048513520633706517843650318164695085052654149418683310989829094033790451636711057470871968047279132277944825026586599071673639854622555747596688930905659017082958312119405957759925110084546255211844433962833997299091901260628243626828382561887372848882105479284496982262827073951839984347382273256042246087362948800631895426678558421768236718663606727133212437884124356477355396539323397499051035850527367892615346009879594676673768066314564502305393920011359722639305315037791833180343933138303258013586492487758229819502191346110132991669783263074511511817623513192730390174886791965222261527693410306831243645170350423343152836851226120563564550912572234631575837671876750220196410425005241767259860419097226294062069021036613413655941631606684378516062581175409362373140723024867206449294676858667248794773020258054702841300984924846081000628914015690617381668326501846408815441385419781089016433499182142645128585574153296128533597466941093938355038080413348724444562070110994778656010981807875217344788271076230507397929014834383648567663702792791717794007925611280188463503324033292338043803892898614468960557249383965961656933730720883405161312441272245957186490655622850963804518853674758962569290218648003343408148669129298209727395848551417419914972646949385345358206983759578897268660244418823598940682293277971355175959060861732429285129334388553371772455892859983890242104327612570670673308262236598068642855705598663703873481697735209649023752837944490644758623596120605809676592118428901554025229096791355281971266511305354083510079978457896784959860554126197663654162926475250079414757517710194324892665721221826622038317371032333859514356397466892797551119336867413102141943799955477516125839289588572687323032517670644588884637395100787442449448102009841633932975171229364980602581361934640808197808511764107812224467625324311536562883437989122531852993984367062049035088980472540933690317460644330946563817572415380845355045524749690391283759386498824731912449000712086702550235651309742860769596877002743352809436957325785514615862453742036889085734343444384475607135082746487200771779286356781744873104041443557677402494997222093273027592221513032602195401832346714681494868231595831530495889140948351326581924584069831614145845210859307161548513110355188970405293793267827423714436549663885737884830460123341564809857388920725738594547920072696706143017407942913943448121175275012712860889224653250769962359502818129912319105253128006904435697164229440618659735032695928846174817803622242764973019485224929041963535507757196762580466288532025616833200575684170037313656893319366842883116555658041423209273171382061680988972448443115448069687292890582702342886892458037535512251533299913893679460688702131488223234562124067768742057280380994368098734042064981810304620962252394351793547852882920060547475879567432374469670348582416181877337218856077789657958561448709570333462135894879152338436286348613841871248124548111644657635574432127717961468060467341480011911255701867239701318097042917381990300165096753017289244278188585158866073303611970899655835394268270406363310974976567850504162370729063005042213800401039677630248556339251127325675066411520667334357598656366035600454642521211259177011893357895794044311671390880774161200395698028867514684417876507285889299922790599823245328908191185047986597102076132957985845053506915209629501081117705015550296678068350284065430298707823681333695603341896234919321940277568060396474819077454231562056333429206943372455595432882529029701876639523568127728222657563817769648889565233791193957082542348058790355331482977637911742494578353685338098242901750461655417648621802709314028498566254514877438295870819267268326704147121296016812494341990760715241963860148984010293334938313596628469825457374383419664133108800643717431477833679665968818393851327555072890527041119721691377413800336521594022647556270390955624181084958938521481172002446482338615683700756392818429510958190062451251531842046464407674994752694926223064015245868744142788493864846857321923096021725190858884470906424742741195039557278449238193727391079348384246878947256202053215568215054273373759644611660384458064547377139778951285648161508591921114659533721128717387130687723474228376576820865539368448033608848267591694494349495701444613418849936661348903719555561905934926790470107451391586997337155181592490064700672184621398543523144795680840969555070555899693206824507690635244643459235108487063777561909841328936857009004482827398237160092198213570982531015335205194720871216488006223253475142870504437738632968379130802338839089980088060325669252876302292990697601664927395084746062103511770288826458707678530494400119565825960494038780004359071205927182516004889632584601451366705586807475408969112185169733541643826079825498636500401533323855757104805656104769257306751921274684399449225315331997065191009481193374536509778347549092541272020277719294928862346107141639088843249946128541607015100804423333083116033824825182543570005626640273017709700015339587188690392093683314219316093597109959603196764466269498285042193396730196764471468314755875438651736899556610453798004391278412743965427442693826992356729000419568223317896039883116014429384753990514967103733739833620703558863339082890891730257315255428702526350574148678368015818506898410473213323510953675173366586220670925431806474866500208713507699735698231311207254740756855283500832434428085873411236166240708085197452115537842769876857076725947004269018003403279731005258965318935434473421687047400157178023727834154747131917687026954752780754680513500134147460296179912554721496045662162610519493663177008121353200722072890210033667612022009959462688626860679490200970884424902751281341073403414425734332582396567869683861472708130973970984462436095708779872475230035419462240028792346752679366886273359596192268504184707754936833558080849718766146198303042499335755118550271273277176153496281741149741761687609417059114993894481318989356539488297102251296324520279033737554672767615921070304499001723567499171785090340657706005162771716120723886183841721469280828685388919580780466529202382608901722781999258860949985268375668433192406839880831118676334044548763165038518323929161675225063028543839373937757883921691378070680410746072641870564951915359140232445263081501412932348661911249179825669588680312199560885904191501028700341042021228185835081331235752411964291327590857769742867190568860928601266642203862146170242143644592349751503421435737921699643265294845296888487539775476140649864790734066995470700904912825406226752573527992050168967510904693477951729754084874592378353441095597309587197003767000623381555651838506137959578771783600605768189962028485146910584690810910685040776324041210916808257352027384031231747836455764776127948983443292880969885861792222260137826686627047860327801198557930654478219283884417137420406900380069327985791283136270069789173793622578830188242430122597578110711105195372771663307438189562457335737008530601835031498864747594268867157806408190727466005913209528073141960928136342435383940051565288322177808116276784864526737814908273760164275133908957805059749578784672996050597722197371650267638849433019020181360459630169367489916908635677471983725096591502965659487802136287855903938115471274879085570836032200272152821967974684208973384874922675062238164879955535310799707720768425875020947632924625856084662736786875930765382759452623993053487760977412664392207881561733568290574305333605906955997078658473574810023070224940279605066638283763687074631683919617059890239777801195030737989089424883626029734591008642263483311833567086684099696200522307616817352199437522348608804673832147335870741954162464335821941028843303219490525168305786331674317101056370234807427786811307046942025124238655136800735709772672820358722592658146071304273238594040314575854608657186827774267794271285946757258313283111356663649481709716982951266565765488947052803895769222590174505836043588244580495027250552637408538650442042480109673022712368698475353432878115736629637908338869674199951666985319627209994237025219504600135899388659730680803560712840451148144948322609118316658001155902904837882366466351792496728840496381727661122900834742201513678860388635772609595105902345808011400787247359948301216480517865911288786840375448791200386286332061948229948562625507892217522419973799393632064489424314571294172794824698734858822704727852526671507923684940473879987575830004817440254063151412041098926752592351124114474994271437888113276644478749799367274643401654187234773752560610703560954945951828503899562436184314660025078527505356201331651034651255240884991833106944475842321842199459323994157471274322121559408144693707434228089940351923186137824573618034386868079536924360822885704160572589784945282160321407220897445218644083497201902992869768442911615353722731318217654551287652682547176591985559099992869026663609087234279151840529833828088939470812318483548536855584480375347208240848839900227215395753227898236652955450327094599024575531900346388544662629166865240585769368431644453215649931446422461486085867603370765855765617513133617046853023690537233885758832736625122337109022735372971462182829916234314458998242603798529381321965229586972618292183947734815419328709837395185741542536594707715066600600977422045210382777558698213487568796006505911957535182768401948075126425928293104698323086308124022460371606400680866661831540679252650954494513378026241994052851550416539485203493298740247874578016499894539577543826224939032273750933186238340112808125598770052768657065992603739728100906701115237731742098473119941212903044921292973650260155904176447664279359864297728089884005974922779509553568703441388160786268790191862880471702106653106489284161011026972520593021709379265272755353984953665940852034405995134898874445490525160141944210536328102012837626349902055015569173880993590505235998455926232954498077670528473379585554720616293320245496935625182274567597856906985939407037203702276934540069475300966974068493402261304799760927293310235483016291898882659843054237219953558915665150675449901293571563343491059864537281675874593195273776273910801417379760680948988051257847948081502491858125761606687463990210816245992405612816783679408956115136981999107589831851660575735179031688141236165605401768435385084865017710950298292372753277354137751008226316808725228868260859918090692078203130097533468535553568066849102964077602281814430425964022108631338394581098396318596447401788087446118503342231101548325119748240926049668735959352159523266286669093738148104001613635253493284429163180882089782062542422669602465110514409448303510061173130920146276656913427915834144996820053704120234174346354633693876559767756703898463877728071990309369154734452449117128940987233007855214616246276779427676516787497708478450884526154461948866511879088643359929239043024275664353138617798919941562366323690524349494812302450277646167505908603860668455732167960424612726357365066916163025599707698553293548685634141946974488994523508473491049376699046364489083287374346674315491785505355896467858779535089136634170979376506016567871774962693473169101029777883523493199380601770878407368353547681244495594644941291800469732013215440889236949597344006380320744070355726274627212019264217192214514213860037329759460577056414158329150618265105557278458055985522677956285292157797472106207265792315368155201158915944799872575321121641216406787662778443156323723786827752922451782666955052766049655558751605506184397689317911654794794879724368567846409612570148140686890349243965705854377417647074660945778786360540528893544329054774143894862666166006900992743407221207049538455799507592201630566652900302185795752871714954272865659510635290323276177860060639015079988761433276306608259043203924270117496619592192837938289670140533485885294927204453475795416808805294607224249208786157479515758749595246369396159302556787740006386115203774420407452302194312283199554307408859237138406780860472731332111266281216920768686495644504822988044644651284163153844799614504372306739704372916596662658685556187229601877033460087857973304895494936037109162848670283701082722829373691010987118936914241756849549997943891053857974396013222844923195758234402502274356412585436082756798623395876233761839141728959698018928507312723823992546090967231253113154390302610189004170328736590721647170841261066520221549003583970325548997448011585954781262137525012309524802318752811152473983435240833957403241771253774713105498526617931319868892847008614208643690919123174653694838517635928320510849540632855126050941579927408738110836578988232559823291215951635745343885977645867557237497185201289732137957581873106795870392957309354734625909115959177648013621575692732530856210630778156364201672718963099806128677791336445970270658368615923495839050360713748873590100945581382151481040948866634982913139725880624495631408071649455791954471942530955248047170953631829895874999302921014290120792410153473054798866266091571738328423634897908769130359736949318416372222357175181590744876635452048802120744726692762883267507865629687273955478490361546506884744433937968151119071685334815607680855398182445800563217067500945890917091883644473237604470398013384454888238734705716800951515380477729855759535890471070262796323201391060322903700087842962627784838455745344127923541067049382113167872130355226831635989159881210515853944626113536050230669572318058233462427900191091604943756191382837728129894123702663817191783127243890347738869218499461240700734335091814124731806922299415723972730645165856763508473176477930032740435663652918937601795677490213739211084092420254120767658102097225176114311560123120035737198192139059224309930081605125993363625447797508576288551800464020168894478795572852091836507822271144605411947709120666777279437196642523881109540844021351820803971101145689109596925652632271624847654986724361116452276055980290719028312733905411494531015803387164650229059158525065842808353259002241992982769852861563011119367374678979927503637529706910981156776471971519813218525309559080660497336710545844524889142154294631656631837434983836981956261452000699108790178613760852368226397537457806089190156666926815548692297944123165684115722066345030266499963036693382033046866978370247719043288185000646533874191295800637845094397473992880792529940567289923558775337214095338022660116706319163358529149554197174150074905209110505497673992248733562395247549453159347149309089448813872874831072664104513685963129741318404466062998169645724311605236917914352525271117267641122180921239288142408161390631814220229202261843209800857405617197902360563132276250465128294597827330206186891253935454860224143622209582401590431938122740748504066486629743474301184419284159445574266882015376237330374942862859810327136261858853787300051550273060060733165087344449758612960529778444886483859087729133940236865149770249744639920970835188387743779987575586676183431150432924503724007121029643792399768262935186683132177667160390183251284000743352056117477322144961927171537389591386456671902123718459127020028221004930451384595796977960847821096302483155142804564322801145455260146363589831998078811340285497695029415403048031593480899753688553931311418638215847907141567149077638967556538854051775761138080557021589288205722986990937835916951438933839689060847690379147464309491692271984197922812378376874226865672465259211350397742682515767854821614661148996703637820293871287430203177899744588011413636689143509517401701322476392995354618461584152865959277736030777316097513266924031382409199127715761727402649584071607909953436817880306228620786230571794497052952546877819102262008598980132381297099378478831737662039215533858929348251142323136682919330951990704157993861146102164916827769734047195266377710497329207279053119794023719419071414649412189369287660291037132232248867942429610245917604695951232272103235008456048461480137004637007042703434192871819296979621131151575103143681800872233645041845325316975379242959303732621906985683935770716138768837687550052206886473623910397367214701336716905083746375066741071877902623379473194006657578284735611100971410071788480764266008339707076976849850412707786849941153666381494336742234314573722897763797232769164859520320166638315799866164069526214657688239662406705165351711628586519932065629680080854009844566273113180470768254613730057566546112287744877308400532359560192320035284849458894168203418090554473723997445599895653362103426110984245794117164009198400275812778148485284850543537683796321596187736706407936525289933329964238292520312109328900459955250923870914446389372731354730543055280050126638198117768629474069635674648898249778710581311873372725066176538030693607978686820393479384044472289393380892815357236878295406562943741951975652661407967908721332563520030094353178650562863922655653343233122800674440650357401636613656236728581490161413932901216958896066469494349554682653849566208846141740958204867976786838282630814863308057475439543464893177023984285979124249265398472152335878715966360627522471554735163383199307856674052216697430598859442958093024957959217248489880562720125248166375840836002713877884886905547205598984275870653397579280171794136276053155159225108165241447032169925661155203747495707652064815324726410364737885581484732712564300068218102150641439934957744942378972530882867545378256293439520928370435448225924342957702437227964735253457692745870683739047170264311617070794075968711075576788393973886267635378735846716776035959417465014633659891342765253615634783144969851033909034673053477690533836422534417769476872544567639745678879109704728820438475910532634255843483503105416182241809171106877289651834398258840475561642326182698482002033250002018846870037208104106865755150655936618115057644611115587825451705418021725732117960446648725876662591066591202853675930970454534627295957658409757889944218392332823706870031622821526392941195081788181441070303298969499381009384747630760429348005519584183492016734397751412906240889674482002276573406173433388071661820248793197701632313567300669506226831677488914483789302327685642754935757393988109073374779290470289336292129435210663918432202450109888822894282452991844069326411437948004169485627415799002621378612381383344273711274490178654174106632026198115667221282213383134293112367018595535649186718236974317091902539298175038305902763269025223567820267916948267277604786692958287253784564261756473697323767310512843489155091980779285407057455265639723874927669394961621227110290417487503739656647061644368223761902628334231433744280187321037355190576505233835935486620848239352622403809615898945000636324742458564591052574362560860637001829877578801718606043951966973973048666103840463210960225421554394030437594169895141566822738902494484454578079868774724928355345584922248848340166237424289066682562835519946597883802825609961803306150408996069528126964526666904779653250919578813145015029485337154274480156447898624848380018867737767376847723825430432326508157605177536841717688150708489785908905253573815134205327115945527313327618324157164268650452000288868942607015589441837858240323118633565624896360076532175221770628453761390628530609471612917407950984464672717826717244666236249111706477071039683871244692909946846981041419480104228229595949935662508428522538018589305660319053993913779237135778381601548470517705487689444459351865255346958313953769926079339153344020962784763596452164366246866421934884306573378801730593918226096678917979234716520486063761844631791841146141390701742880708024294165277609489305039165614562900331921859595911340825876025846112941736817278989467177039310177455078358941316949530922639049050969029247976413708846332995194967860803722665212181035426826137394126469438874278396397682142192542737823714931023000261454532992873551312694809799494984979819178494670915417612554992731547311168800550231266142470739903304045952900702144253959056831469994014628663114610026896429423038110866433186539781914784251664286610389944449337918474365581417653676165494917071109766970762427483660229596343096936586477649700107771075820079826018195801851552400105524871905482344355908254499104464521982528628631816677662378168854165200782814283139329514884435577179705320081367239933611998508679270189145946465300085598047661717524419215115338900397420139099528139099560998598591358248721265385250004677064518513208130891835026451571692457188491518920826403920340651455861097083323738768327912282508030010149978275865023018475536946378108211491628833180020510757666751035469710843627079404691243256444612882579459969177425722563183380976900099351623799246386172232474285629511576168573882724978910225101960793046298555619198008335462052316524133485169568240363407062264937730867220886980803908798664944956172498394583576182046118716160065660745984747755107044472008090152525125925266774611060693672996589739666281522905392677584529919213319035781570815982149771143490251900555390835300263625764600737503702739625837639499331922245444872229170190054523125823309459987416209563756745884664642876185639835975566710846269119386644131739838902163700943793213611022865828065913319550642927273610528162158120167707800803826963825315538812377868742764966582032629427421597395727252264648474379405573449051566687500213102243603628638218558217109581375862384006668693932056207680796058947196920736863760704431072524733690828083102755110492432919347071199852581196086961841666899526646593193942694821345973056859772348528749792795815575788722101303015161823363458482732011580644428289155342895023394759695041608164482614670353497716574683891204954559851807097835278892611135035810366669957888501280820047445137667937351334073714321353371225586300055749288088755812300428646484816824855203793649782676329031223392390071243484024266983208412427629344938056977569005258091433056252480378648161874146265169052981770026183822837907941569119082482270438479127483539200046101131452260288889069091028567307455501725427159801951249918916324847737983405222906392308953417039488449220263758264394783639759033120936836350597334554372348460695226552141517675770352626801894714640441001603955244689712121690313468643542423043035481818399440079465025820832994907479982567663213578239502866634529752459296867213231980862600672011447007127097145025243577898093850341356308872436056731649935171559444884650113829538002329864361959416318074652554103266316353097562559543570665351942823011794345384158885130655396782918291244342074345276833350088291406074922721216235933659362474848263565065685963191459526329622196106781928447331263046066898144681071252471401419611068425888166800974609224401827506034508453745964088862846662101412507659804482640822044574368017600408345757649337144116555617059778436438879624938410886022280308949547267018699401458983544211158526930734461825814468754668598773551366593905401570430731861109571102330893946444232116573170102774240062101077880623052441416803835637084989638881649230458159986392379268631558458368894929337865201280002969857464097862703827085031966590132832435907652922930219533100444975159242481078546894547846050017725559235524022453688078343139053802690485330238442346182597343499796041116401488815119336779841466879218198928770389956440283009596048479052161102823541971110490601918713197016853545825874269433263734609763377796154227430826692667987804466474209240494934310371808901914975770818421769843847426764952389510423729688318930892660189334209768762906158726191206626867721770660803132418977035658627433614474356445022136350511216135719000158417466853850880474592355230879282409148142175540595145187633477934045948942187000144673625954608941484491681997039066535243450702311053462937402166766032794738497512290010077609978769570181561864361265568827145674425957024288634220882278436764072737716857915332374186360334442717967847448972343434178267288982576292045890297567758786149508188746992963291906947042439257131376029525769781690091065629135722286524690704574228190489751542537384928369225889899012108424347787378712674120724538790409015239979945772489331747313769870479224906413944706141532684636061929747417243574974435691985835956794690998634289652242765347178708510799642829052100583031850463684062650477969955162522645348913015553428054170235077374156320801160725106311831483462174788271573342610135527650494297025003889533317228208520053882961906997708332435157903761065827196746057073882992223473827286713467302460057444175302438412373961899951698081774819309887092992857982222139251819385229249420448167744899722199374708760181000682948794023640730703687499288588005625437908108946197257203069528654106071395031779168459866339585859110109484504665229575318730769864273604600869405008972833108406286145248746028224271629033423838834040886813559600638500783836712438046718985799929919649460206767571998422673748722212823762241049603297131898803601863719884422227960165715714640523833380374483259287498608479294805815250060733380659776284232706296782191478108668505727739266786362511753714270459584845498810553240636421095846806967494829263694662663751394491930756557749180498386974678746109547984493175505216371601443083270765355751583966490810401326735269328646420471929511934117613715098987423002270530569034335931664445085097810246140095918224606148682942596855392944411612441385255763992205957776834768392435759711733982514080681097966178969682763566549316855965715982164311647350601196515217176422986028487604519219014512493141695469389069326500839939128884689493137892208538260496709835675116105253531143005665279294959569087460365163504012850222602462051082690855135133914517983531148232958839738561066577742352596323391298307530634447096583835607140394208137963387765764345542997130311822610015869208562552673088391424834236000322292196202601306820430270852208215122268082696188282299798306174884521553911250351718237568872429059960309086252743958835993928829911797402023149623332363850884147400385058147847995299561573835564058494414745441030401780081704458762595492889938326341844805891336793156575258892101699980824159362911286412998607949040885267985781085954863179278961625495146763905056975369960115563556583481435441342201591511773315488998501326764644862038555910791552696640428757573402879756846869145379085205018882394998099084270099595254839664413608608071057950641043463859478240890914326534115152966870619866394661729103023029909564212897346799119686107488919331762535685293577301829786181272977634256579009618103755487998663453199423940747190157269327770188058671712244392727950587700754348561084187570626446373876129366974873954481125058452340042517129648682248378827781901561427666370782254207453335837674287034527828928665578972507941551958836850892947998959189131262743076084687999499510268393872931764935206793262157197712155906917942414319967723906274305387025029947948264369013301221447060618881686169257601210189052438947280908295722630092636447381155778594781233248917238829339842916814105466817575381198607786143731099386305351768347314162269837164317013018917601431594228821508418069623747701359751482706307282427153784258237526822506402682492985703103375756104042697026204522585299632027554070669408847933027835074143134728294242452107611743213044900773083630168340203687139429360895533875324215152160809033742585130306423956531748799598272522153111857363548709354173909675698870776948430290546644803445130562587897929562664470379035566284753779745300573332471296016907516157196343398502829107149363276577590187386336963912716573597439176855197564961713223610702383361461793041643326821635983243581258191417771424137101572172107827402711065310860575059974951602658663625810508501887688627819702964593339772776005452297561837182231262188536328728761267980917358850982312027128530605344573311005292708953314650643509379566016713359190099361491084556732414334911269448099127842726123988022632565418267345207710043741212750821968081372260192690546635797156988887986570976658386248087659717400078111064776301341844397020461096382597668990541430092473980167983518411422799968592908530135504001203955405064162050165254494183635360455965369907951352276982180501659582853996070269013951664315454862559148121336179067550598574257863536191819571458826700986512426490752530257876790617893472887993951509485906052010663106910035562051634662511912951523869661810241774914760238510151354548946704391256171932917203102647078487486827192213410867820404976702060222114757049320054020606461935376183170469446039528918419042805773343977020215853599233543846015066283078199775839543572224823338447576986263462917706879185464943305618867770698940765836631998079736148095170736862746773310203653814763398927713881123603102618077438374539794873628746765406758909118211167284159333821655571578100837098248772326738851076399861265891351703107701211413466226410598604821871591846272485587467603434753529066718069832649941936403998246419353278611052871975097179655182951256504631538972658603781768969465768724839034084879077822913961495898291627354664661078738240060410355978386957693182063875879077553821644102509027769324755307816398282499047291943159368116689668195857753527851044480993115486000997138434336647649044741191273043130454337932042945690616339084150011193173996856409719576712601269815310793072047283156805437031234793232537449910362599103626022755337755301405849595311911227607580891464408250727374938795842428725308763978348140769835960321433415607375718972315256992230013644870928250437204462422914602663036354567794864947137023455367197341677016420533725029987501167823449692806988922683881478449578862643366360229604720878066636543765353154066907129039182715645253665893612674362251710580973746276278466445490816668426176351545058749492726623367685076557533405903196682718054969652672392121585640032554411591546798782782850247846760516053512654855337250039180245228143771738385248521003498030276717879875994055067911310097689620196992224933111332665421140243578329760728053476666887152914379562135750135527775787449125297458381699437421768262207573999744308697784069403464882333043644130238751737437377772719053119419479230643701020063543711455204885778626725917611327859010900051426082468920650442332567946468882975387897342498751818188932757094637728008316475626034538554106568520795897491090206034206797602104525032216476333367002446519121315628676411774067344606642639509553305763613382585948913974075862140223206619367653119885233556207214699689911792560805576024463230575008826346376170351524357263767688224239826387197141671291619796723052929498855906625375190379367815334100496669646583988246452940251914631282371477218073332123740822033988420637019977916916071969960441909388748436897456670150066342700871672844621750260358932089878848923891039128631783085656862616849215264648599797001396826664605465828174316817543352844982139329249224737832089465606454195413196784820414909413726501259500875665645023388662896359019241245462520614071513089608757392835176130033558159845520118818435801698908408739670017062904025738084084392899550236241826043621729421902295450895978188643740695955821660876486302521642051613335787466551008728322556216134347748644042577338836590943694420354493629203980587493570902831269609869802805320899733543593784018508907428827698488081478224493298006412656056017460312503998257131897632020888505183166748800599006947683486390326884254557250859628336158666304243549022576717791343352146634180844645127833403847950800989485127690842916507967523769179914422110901187258826838431046692042165699192983812929175528425101068417763397158199814313542362914463051223558503848500576317444440143399048200021320473547278690771597484736965216823744652956988770562362225428660001533179952103249127401120191951793235163844514985486133282854156437412170882270344031649080204267815318067982484593509853420201415209700245254903420719898613525355095746029519956652864434798747891490544856961297981626486374324137875585149248816867420378060153666889387470822537706997966355289336475982458881438140804736625770826176437330495674592474364115165566808528195443364878008875937424330601161713937247601006446476741976196510505873521458069438237957644911720518626179025260805058339814958941147120225405946129463512858516508854560776028526138534338405170415567553839939798665554446206477685847760658619753473871905112746317254621415755917820283087939589100623070725038409778327217472774392211485917071537830863962948020781867446463340906111984980377573021191366265993837500354911318430501365838787204479470972475775862356066423312991386720285118066580032054699605286922420293328108188199554639366173332983628504264438928193972163567237382583546805303489760203686824475955902961852230098052176466510287023796776140367956129031061585078528271884893775621527391513805019274608012436021308067942562857587328155261700135921727073287102754806103521733820329461812101654600381546557618464687815411310202024173300381954905672100048001412573603487745224830522066590764788034451554575193187015120209555668557385780101440441996911722285049546073594824622849050974737228332348157976707020557920998382538572021232559252049658649980139316474483160738486889564054497079698639864562228437484028062278230402482625856043797261140721548774995870656584349307532956358474488631107825852863908899769197736271472709670633358865776028996809718165224637352748314400794871170095996591729726646105042806266626664490822975267385234190004799165534988034198034775022924155030446961123888515328830058365229514307467316516804554972771623414017952143339847213781082857572656035219183632394799564420063510354587469794137244155195420814577835376885190440935033144517173948698532462373663370492086565500283582788705892052934110956985172570783900633714286330287450825556222866018982063359740029086917311578314058035472791477546894656768243471385372606547494458273175694559320058086613540409844852234675058506130741782123875892027600976369250624074318911401343163279849692391960974604637596306853847862660386000553434873452660813589494325505804553187812769920624404600296429546489774650422552832720937563518929550225108409025784238677256611195865782696186859658136041477542222664821594076135614891099466122954440339385751604921245359500953054869066217630117207618776094117588438496480238082183657424741679145180839296571652399390347374271582150596540807554331782712084966297379698613800844670323123736116080255960080721999130875383371092768916092865773609456061795819163183634746204240855465510550355417656645658937473432381425922379845361455216910419152748155312438339377535787707413320475552096702949029585865798266590134447791449132822255655211534035304085163259521324624441973557735715373283139758748393547388269037638303118277731019425844723940172714458503544342090113396567764399007891608226663751570474328537279161556249632374603535606261112908174340619091672312614228378019140893738818746995866415370108003541462889921883663084888624228267615120500377780207422490029453758166749865870352161984275545905140899004343101428770754166746099229438828677914147463769164257355137058385310909770402447670710496303636176750730725371610885373850806463359191168585929274792271073932696371050103347652509911346532202924921242825929995920019253637520524613344649836493446900711815129781108207983972691831667510365115359054143028880511543366142859566391585556645321969515543977698629272125331916947598954798617851132815670303993379470263382112591061034359826146351535525333355622640390654044949539053840423508990318295758796535558232440562267159042915069121216247591572018309780232893585387717501231266484110835377834835193481085199626734968221253914402814021957675571011751518317325150604280640958768052369026326834931654307573561723297612129274340371309461776093633600772498735870509068295972474796396890483222049785865228086651776558766098157446601147729244339772355274390858849917505233394648417699699084299078967222162964858333546474215759005029556406067834181375132280522138123671020851245712643023689455379543807638748090588053986784340709646584557447750046674847940607971970718205187712215400801820929959538391132056338321372730676717381981950441529122113233598076203798627539744918334579128232927237345441430400668103697023575158829936843036457596427464333243190089274044076072588483402600030158857389757087049158168123877724112105111264242067826586060423330865501576619651014735348695985101930998690763155800945114835251418374584364572746884363467392641479452841933910727206981402186663110141231959355680001380775800221282579036738617575592768396470049696271598743261213541095135198199722370576210009416441352753484080220084265052155393119595506102024526847985148240007555576293986410644358194368606720864981645196795611983713636393977316280911319174093385198332083303026893202787879684468755788917737511605567791933155175425345438352543551580866197043001419252851653614278189501147921922070534582989952960875984468530382456614044769000093578245777493808978602471813375155412586281060336921373967280678146346472035694675431145507475553584297813898529472169489768302013375445612732719213517311305155275224004790910747194506600607982448311848572832299012030579436238305288947920985783922940764365849000793886182944298178206432853457318743983153851898531064521131932828604244943290414328831263586565736422997610665627758840431181784227926528708572806304128510747159599202411110757288399902179565120202004516314204938026658318004870039758208973396579961029905446334940618320010244883442142554075854529340786383736213312132782135698911729361338244295761300741061845033719765573405684202850581786380861810286687248955498826367526906049388015348673400370249569179113367470670762982966336221423056246430859838730125574100924101943259440289558402323808250461497453100152843869832536169906711093609154520332370536770399538994178103683551968708081971527501948736856072062093588270267367003557967060780686851797671759850463739855741596053853073475843339001698892903777797959799865737292811742441725214440516901565435758076702822412217221590959868125771418449336731336607042832126500416579495248218982463467681626462053793510638294903307703001504123718607333110951044629250829575028038715421647031955317210494762318937550076955528624761130102459917365082343974660663156067545140823938063843027326344279360142684801601576179416648074016087083299793462562881845468601430359305018795594706650557383854073576769726319157549284839777235365501330657862772126653126209034599129241947816215089658368590594826030113766838146615169012040242076140506240590449024991642786519560873987351515756385634791272052331882832635281126059856823790149100468402109542578280772713722758449540833294566509473644587986976578755906852508852436087004850339375714472349855763034745861365562038909161806629862968292097159734566229237770351246518454289759902525399787488768326993821145117242030305292018444089547373174394641874064153407908372630133632453321258675213016710328573901843473837756113960447368058648315780182742804875108900264189362381771779023972927801331033943824251107696344866189475143584965500420847585168249304511372187405342676477918252735828084526977086587851878714562955243323290842254695022640956724319225435060198512208532326116352258728458144971514589516318050979870783598810937370198217544244399549157444711297955389065940650661170357338852067981336793931178921097568068730546159988997328323738812148643153510522013128382261427258244937092040434578021732765154139827824414008663055255856176876994759680058052343310090715882524501001591758854273250355543615608042068430870827278519854762761866772742336123545474054878407534269554376292513974729565767087822429203163438288307938787672103957269907193796754725706736478164635782122128975454783311961020343893843928943612129597049467061785864890206058847611779092799595304419808911996965137192809998859213155373075832155025585579312112742470847837278844071863010911014881728345570510908813089289581401581525744405559144347219631279079038442259834006667094557544827295050784258784072725129304593260220996271684766733193582461919380914915632782160135207359025603057816166179851989046320531316864836201253674642526538461469241709670022294127096316705711200798529303073479554548609615073223271456309685020478538766332474792936593020971054128514612541477215550873171855185767574689657135102316929804755267376290263628290645652788471132652367846489955654718395964262305374759113798322654406005760163390171589847281095519271351627737377695598604734240783214795183879429427359400142055081111618817442449445342187826621582870417966788121420735896704297088816062051682718310155113891234089892131180330487698322758860325742571601235843603742834256514199206768440252726392443450446160172071736898821289611395761608816418164985869772280123184442861715259434268031369853991936616046048776498679593386419202801075182767662541633467961621239134551090721041064732825987218988925117514934620490476658410899895709220527066865237109149096977805660385485441532105764179004576127313832556524095804121480206363878715282554751977279654617831961265746230206547094218632475030683917870049877689606855410711544952876113105596330841378945859159772837417908330085823039809129179122968197680386671110857816218906295979373537369991130746668419570622554702972779622585124115344466064528880798020408338684090291755449068973322317504343296299310575749884141377884890701067489938105398162629468323683487708997809276186240346526802130812620238764015231295195039158286853806613812613247983621848719860586200681206343267452131702671628522339366312890230233384250684816867565164901208810962073405192139839065969531533348869827267152555554628656922620677596855476721287525680815687819770599380104839620510583225678437348892874978398154477790097776681230933928843558625170188560501005736125050544401049024986877477733396877580062204950782684532503216873883059367593876773064305291943708927490837265395838585447521006114987614802950736245350661834433711692010947340812773709323137434951320969988830095872317373232741288401598572438760275676327461543614660376683078981311871517233534696662529061397789563346830732398277721294940013615688579015672907850173838036200896873045423134316271053302443714289929126371541304250986544116966830929860740493666904532677603681241421376497244956186272991946780885377186716594139520483541911636108419152424219379333727852550874517046356461891667153501072161327317717964840876365183269587715436535681969694945054986262231080764935436231154879665267536444234568901910876516958556468490450219832131340464136573140348839852052586855681299669198950081957535415233885017083576583537156341194565388437181140419168578754350354032062001235911829952879139661929582115318248197285623437947575740236535293592080447489185449533010005546552238021134009977971477029525231577087100536293187947777634869899526005138592846594439381300605048071498682323051063013698846182187491969647990773261726294394591211530537682341215580417999048204884667480422779822547263256300521695491484457944217435423738345287125819189372369804440444244201124903475678214943421767001131298424100287097326804633772503748519296721919958185897976724740875852534513699470521771434020470479494003708071749037797792326359679713128095156598609125557454407868082714932096075292670541238024802308385560676049536264846602524286502576219139068858890592407704989420606415580927942785596778415164352532561345111262843356448579740786270004514108957193493095612811325183407038497459850870611341375615543402519106345182516546559408588793146282573464652778776946994711385277999037197660466792921428648694854496981805227902501260198367926392784727026553876027211127605482551548404898985378723541939731063412167880071389130988322650327965314336244344229246686338227613465901701966278206117833622260402234507816792221626693586537458897733231953119865677024969287583538625724324422135351899091503468784825515575430144507032831718082225217508983058187545451123145348693212574342956393240324850369232966414053033366623849616632702397199364850374587486483603630009302986058785401280074277895287387543212828073909516659242422961450637551223550798990644555055606455479417999418147505225538718686002267163113539190753895375927999066984447040362017359431660472068230150044902477014081308184183609494916952718363315301438049301292192873783205414845476741000665579670165484126684014181626672965481047078154790736988882955853209577802068641290913237089210066827374400512013822018813539489577004996644283775865034744488643827841992941281553136823334928983514377899837206142805689498835060238014793059718613827084483297042975006184898810120804889004401412863231787461019877371574962858685580614433587787519900530102925207057932727703111120839545685790210681240574416880510558676792906300113585971157132160066235094862528641183940219895381386730080451218143402640417495772716632405529353906732240916281953380826699773256188530747824383112076515194477600215193151221691345606598882554381812329202797439023922626733262653290836338090011055111113258622794518079098288671361254654799721314972688331588611359815337546950962883135845592716877808879682726538151261231078083463224544933211206218930471575568071921375893548841647814076197146881131600170339685336622976528532334092384100771244231887860810839102372765217138715377452651052732677888917724793290994849751427674545797347506787565022097067555029816244735402632527713419305456350522721306380251708870791267695081177236631471154094796760583103940722901000191275656814239278736803005904399053777753176445241036094010975382435748568886477996009717843194980211143838182041893203895329774522218966165755680037766037298630660951598540045667365859066863661305526265482644712001275178852546455545800810433546104357624027796412439317007271294429166083340567933214644788108932151751234691180381048979886102488664749881882025714407056098824954204993740873950669205895975526941644168988630538669130544780616308028667501806314850613406188680524795252922776695528132303559217799305592688623331946267918029448898384453532033940730698538884211844604271309127498785546622923458725098667020685223888310908676664486585810502621362518561650867761590508460711549877590475229413606656692209015074230444435009293909323594480858588196242849560091451204363367222320607071842962511746095562880758037209361419920785365062014927223807861112403631296155989352608748594523628467369680394965795819490879790772823086331814472491692862184591680481770961060016236404740072541046275392548936934015178780026023685374687967178431794214208402695447411209716809022235550881215958296969733523691396722500843816105903300312882310810285556255258626425885959242162315296095167277365644274393665593842269407653897395325432749866675018033933788215737835076208030693953305305978782626332624522490039326545995741053564079572918991410609091755207076233720098266602413294431003347022866724769812926642085875931519188249576498665929180061366038012513851660836602042001761991693682025904344514937788286443803503668330854129958489573472134939883957477522923126247490599578292189780698508591164549200042853103737065141658326942312611109691339624967549178377991783592362059139292330340593343657892615950688101950954385910343432376328635070791755651051852426020322347118623669592791534865851808601388130406577497669677922267281933520822245593028794148455552624867513223576112098548424776559209681028253097600716911048962854045097948708288593370104136777077582934071175994265926833646776894214175752014332849978569348854200231510250148199358206326957579455072342051892264242595909924466869224391747313499803439811958316133708426981943666897082610544719846391812329351045296537623281495569749807485503663652884061610167716311185046855900307600059014686922894697082227022506551124491352599169837525764535309445599989307569084345358423021296768358409707799519268440434561217024023426623567569381194552961067369795458979317625699087161258213405164753297964493509239521933563461101687100381418665802637936240964705193894858641531269601568948669043848460147580546893152948649682660016652150998442031916239555767842888179892437923051737037750168930737732688917987285864476577676588085888362555845929499526836298684665950318094315885732700427652635954344814260328144869138638429033998434483099178427858981084653890593650844084536853117885908839017440698572141554485998503441685108247632157170702521430956938164491263461858652005013452940259109621582451006764712732314247952421364561090481514444611193557649781395058177348985187729166697114752818329581911967506414205421792985526855888593185334603979496019956829427935786033962940255258639941149969605194707600816486450820011300466690019207550475553366736210188142871243976486249517105265436895344193576618539670068540429380122312354010215398169983419239073152093949702673011613920049599394192420636937330820476449852768771393613573774398668667026988505890645282440722627320034694131965811272483611385816779548372287335605570622858609322167981989553345243303542359015262067541380974815249303996990669959120340894669061617668517012423790039739146214283953446112425031468807293221465472297167268437115693502581753335087803796495574384490889879509708505707747594836274926994610579021472775740665692401795948595735860439513117230785940158308961482222969249913101878921614964941217085549775011310062988772800502988053248803273703653579179650062423355825249953014545135932600093745659978391045122611281768546966641591740420286801469591524176383423461173471359747721013903193073758961825476609263876857130075523510122883801917551255776958793748143083814574521304845302538092456265458418166223004800723035704489515039524493760783808227762825403935880997872838686207269243308458088843964428365213966178483121841330892217038989722242264588918570283976995041546768033092807605618007393554537127945859348472926535631587071204338251759754264319939774962984501249737508886699511759171780315404307500211765102264436077954930211241304838218390969259507913608681159265325590885891926779019909745372842579142802714532918173749104663321651647329837490939543163546466634525183879368486258241554592340237361947295374220332481893767056376872121318406642233708339689063244195805371116058822967141017482608729373777242031909433227707785352075103163092538929279891726602113922056006009921609017274654579710152929553649845313923187539127330126850879709319683973881666680012450617577546090902239413956235211545272044979603983955102796759403419463977789862354132037951568364378762013749475894353250390099071777253033377029419215097379067287297967128003954078776012915747879045386864876953854151144125477209477518134221528112760412045612215132265285568271671609746905736367615568510184819022565312433573066630604278118587689527361250866964568800058216616873637176218897235803285087811062496946443382730203331924554891312909292563426488519210125745512127631294197041523111419432714789953319415705882711002418779552012339619105371607875812397051801851412514083121353512601180351425718032882777862718780843092346859604461177523901283990023127374737242861669304977164708547792088224025097483436282197259786873271415872041273685575646200542259409900772408097539639907277201533427339231647061212403889782505769296124203594805914063617163641377132707050442816756479421038646665935224119558796758373526409021846227367282136560345925894736649440502901164137003746339925695193270392045893111644412073200677583000691812525798412636158446439196843365601056961101635123945761948998227981319909071599790956450471726525175487515588521536162350148610060125273593475351839703414156531547627671474266755628030581892548924196047677675151438497402452876637403803625582779621444454018994504858167620278635413313000713610911787160385180291797570483630173756623490143385595906317860965287192437348788261031548728989664714413343439683244605836147119929758444039652317840808249562994554644422544797609188245663853992091237143323305569063433741293397868099971516174372878988950568582829558579367215396380123490577142266900289327101073943093145106039477213908965528565346311110137868199776303034082348692950484278926810749103412871389465402613875096902281770650742002809273246983396519123500305624802531108684533037143379744271842512647926409631522311037315058767167443564598845389204120594318778700485978439280987541708282191440644629223771354499035939076808270679989133590458228836910022124772652256411048088708877986331245610320364288507107792095068434210125836468507849475671436385633811857728102678532632911329895676548911561071285439956729783604355111464391339787940180779854540876110936830703413732970085015266103830157780819756927292893645902530443615430834151937327104094452523972289034419487489850692726344811189667012639492454049395749324390906814027422379834183494744202256319926113390597203818685624915202680773037334630020490964127887257310854899232665489268675268027707378239656190008088695872570186842661221514366842309924209645111139681078097350775416827415230530713324301673025087475199251345480286507236721768883954907322770613704818195858979767234782772662379740499900254166129987138427064961359804590493409578216249757016520673369408311642383815026176358926478855479535670306412923804775110495298254931083520311550659518596514178766851226964722383547625129518014563883483186463452977363069772938592143595145622117170511152674655825020963894125644705925083407462622764197232883316305995218691821069081469533838134378614887364283661492583329606974812392661350630348906588837784989511885359225098079430764470394932129949332458646124498830718291354712649747454682127985111637058735004444026089821867717058724380538668018973388696344803545689954886207766513325262845227884054254159112980362054887261493831735604130566900429737858337289276980609742252967665346148469128110861561699337722319219220962481877038997524685212075682638653758366129538854140672945660611553564215900025798011996071240586479850138896665241147855911267722034962694104329152419059050965107194635833877290745324442401520686821918247098460482907482724273561299980855785983850575013557364769175610555418117266221019957013576497811761151500118618855936534662013601337777309869355020195978514194785947362084226148578196123316503218326896697878703704702767064818304984226115949337056863226731913714944597481763344397225393449338284587784882638510725001932693315272742867011223493545461046612138634583176919727456683389746537964094569864488506215128078299985432506080408669109597088904989490450875435667879228155806791467679312721058250282695186303898023060119997355518119506312547171588604967179438603548063233776375805478180194988517672706485717179689243628283906242384398004981255596463909814445749649485311927421256894016408834428926433570075808210123665013964792488541087823626946612944649789986533371788210742467032163092848819376608270450581183279003875863382015466735343423137585479017929542221771224428077425422316808558469591645074574610571784331739820409601133537872463819327760579360039591367114116896856915163262057843220610115773781408902751020214235474958708380640343910241635724252874733641671865750815650712554431248760376661657586741422757213031855539063206393110492726061598006302850762580544441876135279110186137938930862580157263520960211750329017111416034179362638990676313093119355821730216639256240579781204446478539917369064809925647507556275133745379716521459431245012606966016968753716011207328332154245496757296312171714296584946880456574780251867217942574319479712051535334575181286049757400365047801207828423280537209256331478399551478190189711169072654782855472910311546957578496281243549542513475398258496496816483340105838919812708007297623915318625541572587716470357307512782559733438098332479886283431524508917439003151134063526160019451112338298926217985793637454132937715655664113723465992023607306941660324510565157637550225998422240811349267233447399392798568768226956158145665436448758936944486510647689797282490525917158500966867630694788504291501957582599955750927358374334311149724590618566104501978729162377784450558153494879393989266915288107139942403238996952439479825055703195455494477317817116064091616724528712849795484668714754894671880775632156490172257083946507239976351999760942855203539973176917718627481138415793289884183914827801011531566928577619117901343722601986734864166188551256951778007027223358923022921016996177414400224825342184682158977504002611091602203105973513720226066882542084396847917543840280138070634615615485295501556811868332046485568022647891100966858297827373402629192242775558880467583607096997336350575173446695234218286270201680726656199485466725392112573911693963046622512756008389726437917014867010022685745163931420152400143849447461070286113336007710845948199457437131747285867812631528853888428569402639665359170990306587927489983957947224961354507111456555803091666976430859292388479767199457381591762821575913187009759916889865562311687642966279479519881104263836027490869770859894426213798150555820894773891521380967986301839950467045669564997718567207540842581658165534206454224777340341494472299689256273238977503835083760568721815976411520299523547183466420249527678382742439441986200231859736204733606137080184061692642781713039129390117753100469033503685000968840746150424378038921060038130725007303492007745241920817662901466725273666793986441955275431268801777092547349247768628656509372355460844901384263701913816130709735128399545622295512987050762377609890537542051119666825746975387534468252516644787663573296444830793885408995590872757135957082888845494211942087395719315791682671653434678215071908311833268856794230808513892082522416017526006621522267372033097011073386714629584020626230973840997672611043250761121772787408703232756961368792849849403754413997666387076217953359263729284964243116927530299243622957478027364629227480619813305668164825149638078348574568939420676792823282685100964459993218039365055057009569630955548789363934379479175037914399806922265702593605883731390209259224530501854832403483191471516943618236163350255204068357901082534562297823784931123268843787784094455743219398506349527099008012586775504853144159744917889168359893368669109376724905705807624560857414671098398320958716224323841167593351368305812009759266389816815107144557428411811888794205360833584756081165073279984066845145578951065747518929743809351856158297215783928412923996171061205979833305120468213876827795328276759606055552150183092188321740386686602828308685492622201935015504314156203818766209143912932099506164870349559373568425587846362220903540795569333536056237630373054733475909417829494611719239878708299911286925221948742904788014417458584836256961262842446362223930982958613576067067652517767484673332502761023733843920257827442313826453461612496673509777513990123755075966843582516993721901924009528225457970109505606685624075945600939474210051201752762740981186623861336211933994120489968537105763365600217478217410002049580791769412632212921046386347716466680592118634301594273060311669749132039396015974933142841802421899963135667514930413917411905066378762711420483400940742113982176613218304033345328824067456760112412288925049174161656071564171289281584120485413675988380738918948050078419567533246443947074581481038930670441750608549636112410180266925239083806389158820735233862121497686325398853073786374828706521464491395549658388202220589977179538609516727602686475783713084257345696474294606853175942803529212119506545247008832012890985621203857216583213792007468780812845113755511229834091036682521270248200100119221454544084018091731437687739283197134166431104090482071454422819061291943419591946040843676120513696958719844518416732836930254083554366671238602786593973790932154859560173490281456001623235629468034069708039752171284912248124510698597389216284225377457102508773393082226666559202691699887598776343659614566904652986232449585139830379697250209266764255010412577772054756982547497919429298805230504297098945914034805794407858898682294360606568254269612414310198639083853264148160996356029670845450189634240322933792059975009272273015920081945014901162935761834933316522967698185468357964009114948242787696981604463537732372313412155236843615331152441252386911283816567952675579645944329364578052108591599655700195391086591141404426348636921986473839336776121947669872034939366706550828504531014568295274219213624781425856517594504454071257779228753866478892048698711773604281848479514113637174089625120513637267293013686301458385206177812228801899208406967913090598727018694852059463109583514439311088687559906266262550183222022913284945176588925055786523957603415849067698099316057793082270909597850965823208039528386570301923104837528836446182401448911993715282742047162633262337008092662638284951316606652382180549501508510286510707592381634238710453949451533092102859093705455045269793023424572021526571033872687088813588184168948800581158755365947691292596926364633612879692551411558105772854689558192807224754609917524648555533256200940491096469606117692957161602366503667438727130885571706651295807033473802917488652319369423256940637834090874966202903840074966790986232234408890685531714740275800883869271662780361293335423507608040062532985349939675485804499269622368527612920496055253301215184629836879886584174040140014078225165051427435195519424915019291097853114526015809320831688437165768328055843450556266287166468238369504591639094544261600815255020346877578602730725332231562838876075242817438983377897932499023528574651333467231412189747320115348703182173117678750085143681422199270575951998697902380924267321969261485109122127573766895818950175004210539937804486479010022767233283989062148963881307462755592510397382839160005699544871024434995584777897228973338813063279566838064381180394300011965785990753925366948591461362611751294476200292938036338989271431903127733621542311279865914942396415414412366614744776907663576333073304643207498951698791282145668478937114854090278861063592280777249196115663717733521045632825918555395275668936528170223273999728121477234368567773939713312745942458533139067339981125975648155308991017957593732640521015229966627346979186129537840625621785421672469304322872719654005713312964060915944339640175763126858284697262541608126755957354910644619465956706627318742418786172155324785596207314825805543290779819151461270642424552740236728043353351306171116427738238300000291678908801986710842719862698359707017130003474862380160447522569365090785249311210422855585734700966141802325299838640032518855986521726115281591057921368004316793632381708090974688293396260936426121695973469752576622817918592348469971762891513193278615077144845826989503506820667327449606393217158696469376850968509189271666203174189674284730265323487155072094864708253612705315351838400960524295857562340723867213239894417262598211520504644791908755058221991424185254358147121107585870935606133844240489111281254444857969687478697125785067181690386085179972896525673553491839872737956365190794513381901916750685388655080029386732882041936082534256071431895916565939951082213533253463276560141883543977158064218499479129692256217515598755896670242920798241847281653046493318352887779587109558317414319141385981751042316574610307696800906482812766462497088682307751770526381696792411445523597596339179595740872478490251518560372800189791389699650715983205921902335966567101129575530535164486085246854186317855465567387661743193302628604110049773974699786785554302005624665391075939370417693825361034751402792460401544056611061003261859045619846954422066384293606548897729151000577853030633558864775376285559360465716004429430254666336977382303919737471629594287795505155436229726080577977792654122485520262999532039705724805076127722074159354829168623657681363313463798369235059120736860298964854781238749555998826033809456965862074871975943063533605776197359266111023865682056283115114287219952346795273765471715730801923513005645877611985377180887635730841087245543459226822980674838137248287764195517569090902557748135128048655107981443276697915286201829453476755076427740645056567214151494675524660735039288243692557809246952353992868738052594248158952155377835710215268909622734751152526143909010883141432979085124888086137019513105346286048981356485850941259431007377826424962667079272083195501563331888789129922069030498376576058283263198254076949686531728316371204538696604125889639744121399374949759629013869856264382977880945547591262607985334742581431479316935352927680449245872884688207023055964495970882493599732269280805394332982230885876058088791817436009057007954950409437562171926681794011155051647036131902005946013398370493487780310073164629125115284999532320162302375071546458798620876689523684781441247172167175963419352865083981942085907714275760143515475081851857399332357318993579172515821985670572480568081842570238572476570812246410530015120211183710823700765632349033018833006232754592460491242012024167510335026395205976479825153778163114232600185623858937458278748564109681010437743091975004307043439601333945378387756952000014678288620829140030378441906304910937846244336904689853241818797361404006831422002934874887741092053013009616846572739972431548863123476996395012919031697089898041677537590332987425668515044840077080084085182301481615857234897620476227163486817246324038670017170400880312704035811181105769716863425759276469128035312933859418437132513669130314972633594492049650002072475645139754838739726693453183961385138005592178315286001963044465910764218925643817087042183318166000064789556172709521861469473603314977501538800072408701221584200288047170731310501586973849847328778294285973539118786860179172242070333578452143290523740025359266393760094688623981150003681976855693775301086930986971425394968837378942480062746863594109307311568503743975494037973579286405542379449396967043405405755474087410188648319222263478053749693032907753876172354308388684796137542305704219880034832983829223478036672771651624081053784799305846992923169135903189452338608149821284168088718866146655567405970450492896860516727455642284044776694262212959562343775010217712393220914278001348997550435318904991237365653258415534452515271460340449540902615463782686631885705116905762074472381360459150722772040588523313839579717574749657365010629152914104402488069566450986070284173229513177772980044987450901215731179129856703522046677055743063265868833934455583138374510580396465205394049019121163417074826421128483223677520537077443113366625917178519494901657996503813642706737759863205689842639385862021151058783519448093062585690279588462477500686010672399885890981514296725382914766377863649893124801107722477346033460806298621694835900346762746123877826713489876640217836516698798611265221078292775290955734204925376320966789334796790800650308070144434221336357144949390393664509979078453351740799614438346223469502454669428989856517296882453935642417304816731530055475072649642164823822039831737585032276791557119179242513776963271370092102622690928617322960835837367082261791942937567155418551964073258381029161495991514051043765128724396796461118996074176388918591540356827926653129881741592658021216567550968112475586717566598759534922121179752640785125235238734849475906851669338246430345019957044340485045691768984025545778177521571763373853120256126632699316648069177320306424105839484557873403403406587261813647185999486096741692329779057886267748828431292875128310317643205230239809146644903008549877853311766587537148860274268966830653059701682979900263755621029578825661490712771301339075358235329725159277874634430288373998161318633564713303584732679633961135397093709312917835678706030195379212535915031968152778409958004176716018556503174822418371582229761972313670491765528187036827519389025237107956471751325004887399910699198506034500837717435759809175227060085658111687431796498170610517743501812040686920088716695218122955181089959841476883542598883668013553796148619202219063148496901413255851186482591976120620716051306330556862995062737653172741926716087780296628700976111494137674663659671647250671099068993634905826177686156642073012089410632114959104950679448837730485549985083269793654206885949653467877924720494073251578302250624650152168295770241668348336511469516749376727129920372368236680634142578780880718093969426840369021915680436793815738169865307255413209936568450587564226130474272997406905573395183745745318284823125932364303881302698250106210844916491972547989267425389628466186493184124752577419189318522898793513838394276731241817088346185457885503683282086298671289746279028566562794145817055430172800801529010470301033805350688205164488150091749669772625223329911899665195566063413885915572758835907051828467279789300487397441847743467288638091576891913451428224123453418855440548113016581915507739794255553573463880025195952578679940648693115333671175761726536983560519206811475820047765207124168081145099052847722173019535447192250476363158055406842272394336240235663394562675554909358963162261090482363530057529869397270018497416385876680005000570595265580644647302277015255638975001527221353835432406121934243412267496728262533339506184651390249034163210153493254628462215464954322746434470796098015489482952831552500896705271052875608507527971570807374428764358214496105211915526176774273151616001243889919774048383506738089778879786496900064266272582303791242750090792995231462815334377470410294265091785649257125255329198145611583334644916060631442972101828642957514543869039417517209277004419807747920053640972808843622079279176851513553611322743096932620461563299146963004332939596950848299553566195860929689833027875172436336622309249537557124397653264837646011186536615774707873708934086004960248310759929248171662214047206128279131776134381654482204788820991410832515645531126906917769127187709933741570384298025680980551832977874076009972249700132816123936047725917353153868016832603864400204813735311719152555352558151605948001680785372607410884521061580502013709314643766940648723508461620607070521513717199975434855605614696026855931087053001629502889334810381014958459388203512112641192089991140137132510763078823081215643070474607965569356614407467859887067742924005612175186385255012570348286587157212635254358488730591708677022450590408472517658505620990536796633222789664713072134218144838090428533441124589948921190961725917220390017503233327963108151008314699082960685016304880445792270227249738270158165564308836187543845071768814772070172231742315997711288535734153114179712760504979832477312792999515594057427980738334837037078959061350942785121326090244418398485234770012655474030369201519314652474365888249903108700454541394455778416643606009822780585077738173434603454940753238923694199364474038702205052322941748752847615075626125652437006020375355698771345891167981010944775741246540459892277037978086511576858478326988233914017871251806373731828298660454493703503904103716114149088739982072619496219581640292148218788284413306048496738009064874681412114605118908954345393555532270526748529900931366210271418262349761211328719036801641625887102650972763452243158835842034697109619853274487917283376745662837751423739300533889341072671100380713099960568083183860537985030443743288541092427194833171548304479804654766435444037893963178560773773791184076510997915058039684526389013725965794843340980585439809144443977062144566779490456821672309207398803999121958226666420304589596304519886728145306576102797421143797819812313365658496496691268315302631910110442753601367374433211997404981077220076603478793522613632534711758860571979084639089802645168582173777661495504777891945033542466093602190696085508364789994199574809185936813186738201491511455163269766912955228241344041542419014931923898964120276188131885511818388883881943194151340018434053313623191973051258238491806777204412156883315118614552658715621469791983448135396725383624316276891081843481928107836137481255234958459935768315264858426707359390707207586556840733199748725949231428933764840267628210294274581165757447163362502690137487667261253277174255090247760136823519496478236318324420163459784613298053293651168751319574369345958011140416003061647837814251620776534942441898891585702421271575857490932811671368537103696224586248226630663263542880719804461153621288479190905520660305642323599731606478582491619140182771605966262993493613782664920197985665155781448395226112827155490735614748836614683096797728292288313832467046043437573355245077864593229467669348538637065715711162437957755889812638626993925341183485613680306289496183906296493073129073854285117659539575276829036864088426933367686260810222046642460803615020016460520105081432905897352343535019131849690970628674203272094121821575650736571675226127003740306174559262500753604952307360449922379811709478440656796357835296612779683550773428084517555733018642502616639148888011585811925017085554617822770504701441313751510200437844105150074104160605586394633977595129241814994770250662264127317982376788245592741927401262932397442583210098310926940991919319564447898685624314539428951015957173068839541783200660029907412043013307142532985121812839470729254588529580629432873369738363952369150927316537331596219436762180362759607101153183344495070852545719205918886737685965863826743521287583078391871164875649092963158864649189976844256205338230300058562328376723011969847260126505079166733474255742246840060101364012667800222619856248843675202459225620500316048136551010520432463722017971641120555136599782976302369836805785314169173692703835494230599438455793107645384526812482223895766295978913489530292479517923419617738206364269241740240706221232249129851145333115143679433480199965793422365774548420084033174174133971425341885820384181669543977533527742909374372748211370433819006575440500124520506441459086304240932700046059905433340428904611899399595044998786387463127018666799256569934241128567278134811696713717179647067236955923612336302018885880443819154262655127839319868858363639372332878179626814783047030437787212089865632253148747836076939220061295601663686126791035151706568349117076609520930237212104263702596281638791928976011871155031719797258503029864460720063140727541637240682070047251599231560123749136103686261847591274764090229772394170785143841060969782028941924113680289834472114317083538515717943642788841931081623093338567620228055698341413942444288149861136133375331303816380279125680609437652756750297495094162423127411482823325532027882731632477614663638036559206310503720520088541193322705243803735871627964306430230002124629141781965339275763951519999213799482005011265264754186564410808045704214582477171906028352847273581943662588382050034004855216003358419724638938744319814540041278338485299644947115320437334450727241058507412881767134264016134716083163721347445684113658837438122142108416846647160765246103651643247606154833808427787862882447254652562117228995609681290029493440458147749305785550652241130475543595325138295430873513262790469712166974190005226248346779512919782002082807586565623558409994176831530094383978930961942599812292641405660093344795056105426482075466376382403294444667144932007973023375075773657905637092322010276639606423334736458723623817068979012382076218516371182502400496767340579003714133640661047911857730171266917150428598151820928930345213819109317330384563526719005337835265263792654490128941939204349591512318525895504498593637084040927583963843682003256629499714037703764339544909878391315845417014667674681499151410394999813700520857572147109887125242067558403396282107085547910415032755222752801167968494458732041272441639978253028805466958947827138414366577869190273601003227295203848001006172596658666350833387671510773120894742122149740268964327321857763272587851219842563225149824496009022851537122054665802959618151927557646125822820615410916354613652325797942627995958075664284523609718912811072483963780817702522611417336951280781946980176968098847893998609886404725299787333200984377528851861889293243510557680709077069305108013747150561676932610403570563546888341215869775895163152432536525574796834811132268668603471351263623475915712545191318840967147286541141802670308855252802852325765333573479275760502040447774165824947387835988600922028418558870345485300954970075327700398760963534276718433897556118036050217281503514153442879720954289381857335599522879399434785137803608749592830987791499984053919145151194314696088468015020425592165356735560143219459003319170188249307348033005182172005469200665481355877022799494996457783122718243550944991658256111733412743933074076794894518677953822320073944024724903294779831675928203959194624943202452065163498195438846512202567166257393349959374529870555619482284204844286842915399457131334649108429433670367429858597284139337021050473905869315267649092094755863548574978684248992233418460297117314027892751807586994023770859812908126218723134173430273719288873033468321828889138027203590131150276395859546484195866707515181155995740197287458024580138052589948544776340538802889223551719418490431780697795874542585835319657552382832249757697832282975555641748805098455250338179143516920677935181049625787111136362561258508796123041705616171548904288195968466315623768994243186339954467892282132085701159060684209349471222387180993443295072930599226753011975663661046828733054909370840380157690304706620256425885437432166171799852409850852638252790739760533553442907194379618741232116080443973769287321324258313441065437779648961039411542255828847850791518432921362196696615561396262781161605505002957618037673561532005080639296253608271880424964255624714260848863218676818715282263984651739107596787418515168452341989534415551746623825922192805060226554103281549952663256753605328019378480138405006947955980002463282170954573877571662480004466537783467694332164436858039662792239809765176349767235837240924630414945631143983009228083062618759076218661298296088120755606670514860662038569389705084167988628975057457400206856700043419198925869834919447029323753297058866878462638950307403500237838450183253034135076477593343165630974627670139177565706704008204882963400745100790659510046076018495271310966554224383782476292319662860000250329379795574371685345848477407418521708358519792133759128168260648024609186904043824071583074161648719074981324250847559178453177827876320720440550111408421969263307478398409587003567845424402214494726389637733760752347682681463877157507162148046808317873735103381399258603290594556594218146321562324775992641048274339874871723565336427332598205089339124503629429009249207174612110282777552424179868685326176272979616674812458895460862565147682133041741234614968300197460167758423181855579047033934650125409495026281428344687456387826559214283610770151477522592064073973347489700700192910686671609375047400318616810322025533626378568242719062112369536679297654321871875571007067559126520059384446326409943712245409167747972536956683173983192051354170324204601373267616500807502211772890905439465708127249028509920202525336228365236189233077008982440407494616074480197434827598025024891811389940513523249351834792365189253371354281453653663579651875549072577730435489930085486240952890984544548072249093278859560883679156102217445419268365809576550644037728064097295956103345533525642230085287980202787252517391825245281236734365858198207414899102847305060215648496257056207849076032965957348019016881270617595295787904962068119554869419879006962018586529288431096215446180801072331364355702732054111227662220957881624940961381655509606557015701690618950968023581795909643362544386712532302284406403026934486988551994181480902388021587855719679216753340240513184854088622425125432231691996465370582780825399768567517454556649669356857556634615007885831218826440774677468025078582424251784870051159498219969943568582595964726809425729661830412187323903806304320521356543085486602358899857195611064123061209665480377004338313415729988658738217639604000415435274250127913880436466425189233595115535702876055024869206563205137576465742012681288924041086353247224786674682304347280039016183833080326020274837944326446276364516100623885291477167616899068657131226201738599945910478768129480648900370972596939104361318570552682613245978993471632608818236597654342555439777526076556291295451334540273388535186992810575705372343668427159692926749218170064921990712008526470520372901968933258121423910948393629915765605572429562850831959169092998254888688656146500842213956182955491346457805009946490557512673179382189694744034984462779573911055760465180271883260639340897453428669370394771823902433716734066620302031323421630647043863734297798613139617203840946193819463318431939575150320492421096794253994488944930639325904042269216525958300676884285220609201532604329001370201451940514990046708249399926477747278088226579743378911257621844156043350648629920362771187329268605550152749193018877836272941141165436395928353331158328940040294547792742771675247800714282943462255321976168095803911462884422757057391352577955063423717817829743341015599497136191613678578883091161186716879744668055526571275438549377633498558947492463236278019145019525746116929533600209356888074682579957115194256415536124291234105737373683879087620696551187034433147966449844290522631497809753745983115343995875114444840788273837083516545369391904723138865319054560503519122909968720922554876462614252550294692589863142463209305795129945712444778884229318822083282680986116920502650302103827463786229499890110828514438461372741631336629919593983416678390694921808975884205934660068655194528206386219457670167433727948260107701522523385612934845482097946176231212764310855269246750231282084517084339052915399512941434299288082563928479686897105717467886869602687360192309820672224707349045077058187288968365010778147813545991406941650221412949678233724105967977859936292414278570189871510351175702144639438563071394199915688446865205793396097545675887520936182754234723076194337281725184780828761646222026242629473777100978385948781296951539084698511956968844000045105920259946057809824940132984088851013891057843145390508765348546252586379374358432285616264097445438180027258286309677921173832301425711081907422826197396941821509835899257597982808589773558439777042395324662391287798664523838342039532916185793176464671271347512987159061737284706738461961405305562470325035828488495692169515111370641800208202667672537746483399001488856806366932145537422843150924694318523550673631465756623046974243720569439574559638063877467834005999004431320444763868564474510988456820397411839957088865864504851167471679580792752134045042848493763224020921385357726413460926599877748211110813358176412604336371699650107940559103908385571522303405812737357278294828015516442875964023712339027890187987081715400156560214901721713051507249101662955589526523310619041937134191177944846960986770826367665002036728058257940025682769973699372935773716727234412028385028616453335051616300715963495334026522711753687417099078846701434196817557625286476656990626302664805538451177424314740639474441926745962497972991832317926752049707987243233617426467834773339521889678657271810793405960258521280124213551927523618651356002179740400174651052723157292116828076546306234876592666973738040565027379639644174257018978398843618789461628610382440917951004770713758305030827124769233803879649925176424817164284738848363834371381411276423809783791383760797574510881800996401640268841900740000960707268517258103429395500485919572653471584490263972501796168431207870434722125370557045408992086559288215813040195608569348676724451272114466086233936183654398953404342160756468423342249294837645464406189530669464120160709342475215228711272899606673692921012334870935158726455679623696847002053279757778860911266444769069082051911879314574940126705733862602830739511249738332926301481341768557040711192674557702095466794326668039573208374298406090372066698407328305621603380160321812387263222048850289347673672189049614397878638835967372929171069020747551834817054481274858680733700256310714373916358667467100830084467697086107389661082112710394992037080025912766277069613012305601948727405361920622204390766405655172844556714122056594961958350563067887001979983145149733277099075082794253380574912668160977449847577014185686738281667455283798614228874503574535799104048108217891376860200292997365303840524384190253204607895305963437994450213467923920978891209808060471092257419715576261545814827901265846470574063127583345825793338823856453286750621343500945013492907487205439517666767609580325411933110730817951075029672786790065153423717446016651635274235505523956351778089911936482215074002045117248821686534500198193814706615852646611346382717896631486024529885946449908531286785963380970373952238469893689248195319015755418904892061273059898835629548168089128631457775205427791743237644307420056351314125584407075012005594420375183492631006788677645032184875955714002503262985241583810327209317351307605384600042523230128170137464796277399537915030290012854688303399165431393556164957160411943653455012044531772834150941955006968002001891857171347235229000808036203858532982732965318463249256822129850403974193560191330239326250029921829819309507215203114905818052335568569506143191789561323015988062131241894639830443250543478066374221189097955320300022545585865556811969928764540140114262592591096455883593220986028849539997053079913064113021934121013061198527445574393982610293624168892271710230879658448434766759976735357782550153106480154730753558198112331232796889670604402149896075054231669496204702176723061065000303221951340389047996605607935998940100596600024530100380653327709638304903023120475232424372934181213327262542513999654139858894913907378891429270635966434641055369686735206348076858936134421407540042299744929990004313892631788021832435438413059819132791058960331872847172626560658259450627534877900160972615858646855732318367870289915891983480551100444053122235970435577680311280663806921452527306738550070378304775603506779671822819476759373756105351977257888538784955294872050223964229501042155765189113265390662197247456356599277987362848942596782487810243183696568623462541094216545371254145119352635643964153071252264965853618948818921155001556695177296666148440485646624424368121992532729562298333993472826754993449475617918077488298863216938198483633296522762118485974362158717605577157565686404247319151239346698970564555726053102505782507121287279150464736182611665510327745436270045864833903911519563434947354871937253402498125346473863749599575436373975779219523340711852703896087023089537246534328206663204786243864034070144842850845825761085361979162285440330764871129844775282540894028095534621542930667889197640993688394174555594864523587388060046185211310877829438702961427241106498425196828696136549486768638572679529432008189201426773590155115933557839918795575097445830314888968480437881517204293476739727239179476270036914390095706040598332695258007177450222830595640972882197752334347924097529427520557850607068389268364088492267952561527348033819455918310119176096798661368201013575690097587852773566341559820066197499732137290084350812597263232668512916311750146192101845633796410596869138755918195201626297119348134724166600602228785477924064196067186552297799089499773359392788297681641458127943494534315705461839620057972137579063817350039922104284622168025840219290692547323547236212658449932599578234672986558516813132704595452835823185088309182819100832664647186606105586645368407062809877911445109160902574487928778281576975153522724171036203828158836009831633116612285003031441739616981671321574693768725914109463348813946388869505142670107016986424047251583978474224590856767470085709173593448980551422322854836443843330441863914946943873818583708293069119192898506172032866772535732166746655564848188566497058251331154579057316951130928190312364026763060749207773568124254368522973313534181384857120366716170939880154378628439080127724201696498736266417915500949009220765915246210133908384725210876011924419730711623841401048982717754417521570268344208577465390347962253006710870664897530091297173533390606921851560336563443287110109996450263487805732646429277752058864068230822713381686229665547311435316113800042642819825411770076175173784260428883963242344040884719297430321945243976400996410503678082478703484124670793104487048080902464955283668877387057991313055082323932337820985830251987695437754904132404208344379173313573681472327277917669061761388994969229589976618685688081442512567260437925835309555511817021512059531976192883927370484726743062860804242974487680504465673446876317244125211946451561441617670301854076319277901750850976524814387051967008237725429428034449114057353901908060906761715892326819656307402217482020729846343597033652672108477384381128519154984857177469425659512862269974836058502810510409081424006653279398581728999773371694913907270950929515076981410550149715384564597335335232695233147151571230386405510736166438703694917184481447492129471645252107716711128107252931806863011170424797041477413192675975348220916400044685360722702386014375583183787575163171510507061195996724907194654239721877204082857236102705454123945536581839102453066883725446958844593978097455449028902638963252936360319700378138585906383949326420023536651392151712001649595390848203050869603187915769005794376471724077018757506628528900705828349377426120691421007395742784999234346160805177130111165359124350105764247940416180818619275172430709365125339235550348217910782577998766265825616643656472230793935419355995805947118210904751507245240894819237573257163877106578156372821526090500308478575980794650209586774134113172436883140922387980030619320433033272556007045374370606810872791722367923483104203899436938777252113370974580775288643237785878253824592441144056382486438282122570856452648022542801677731090686288527288150102257336491411911715199824990215122717237967843738175071560672934930780162855755964390848785430948442676514542301730322861954958970540751058416382019357631812006964764660257668576465020225464496070700234503657520574260228896845278168498674652138711212936548688400429649209065184827934830495062237568955193720535012923523906890496070876398591827158537537058940959542827485091653138663955775150238998233145848050965895266806968780224469377330031745000374697993386951756603222009233217574382210019659774089258938611274975404586704915571832566648787755180678739376462031712490401700867222696230856388583387649287778068330327586978639397453887802490554022250730325604668352981383160086018131119463293690539691038084502093980542695239065376796087354269702151504551192376792461939853358651106045447174369606741145039529452395160539943267598663723502932827194469685541917872768824275123807201310137577193758309157547126620848753754629136314744681020812465087226050343574855148639365136956069262912351056628466909574814732042482532195407142808776353213208757170101340076252668847235284916424708356859220397576130249241797297176417066666608026828031656012286161128895378958392101851986597269222920126033470603452563128485233754282816213413174069482824691274897351027092081105931984314718160677912375239665211285122629206073884347038336501094315410328263749535460019899302583334341042926967090715716800684491477907938712555257702184620914270260889527314011955515875486875123772252705726948284657930060645515836460220656272568835059112693814528259782747894167798874443859033984756457227418227638285919710965834366980006047819405426542281122384915611255132773665078018487711788690495339021163815357955976369277383503672552977890455297399789820847123013728154003205460670105490219166314959314188850133497564745376120910799572572507993301781698820555622512486029367913298321927863160309040601943472428262574911984661652693614194384015473175081815515604627695418849240015226608628619749326833811402286837403558371215246788619304904386472992964914265882070004288730216042922114705379042525645403358627821449524622799567972940997338364717816510119143193212972233281301786723371423422827851060977532115837813427163606615907460057431415527964487170936965716199560691646187609642838033863819554004711477879532828632321204248711720406032460192041751342182162081498200861668256542675349244670790899894021133254397468112397572074969154724056882347550873240191689032815920766584786776557589856756067424306046799710903831151668497962127247977943315542445646749938152988160960388897783856465654649700757672904070474126852973099521224198653624313728211365065131313385080736165321861404940604095817075269814045784334186249246548378020707858841722658587045366043747929427442151823675928292483703944790639556325141189160306462946738653814876072898724614677033102053841255090653804302141794967141017590740177610821027624372023944909703867953593103117637127367688305582902423374564687818908643901135728974155719802956778893829699537490552239833759188130764693005996159119458981060265384539459807054059132489272357708933102045030808027564273441891073614537582391015914264110444833483533284665015782267115009136265355710255571987558600569240632065915215580055096378959603723255549346676894202243842708915972780242193983418887978264962483426792445448439413021269685108346781704789461021953825415024415513104877512952275234360549737058255049260455984136763772671828010756095268947203282641951907253790500680479981000374944425637900682937041962002745299132167184736360668241272908145652408518658332626712564377126688015201353931311923047537415124681244961189012091475013290487619624191749805666989156929253167297932145269450997101849183736661171300447926131936330880410413092317988773183826909186954571568507194538095947314890013454523396285299133697689490681862796381348059889750877487622402271893245961923502621758582488968741828652123998082051333509693570874923436501504983334819380234784949994556988391618668125696248468780073580061958499889404429891443259512383693082225264868010946432635291111205909824556991384107341269375400360987299045234868152039196023576360357911085687943022539934968302474954759862025210266231874949713160052053014686016080805200106517125525793553069790667162772428861455449415056916552069759364562360455926850798337121719155308704038049275964115896134647785924957773285536085348729549624741285570130729301504224733238817835284627216308092070079870604866215282346808322305688161058449232866046871892082135811179532884599027067435032305599576619104827968318867806266201017187617567321066754307300786199558834319788641313435274363529147209448625182666985303492987087977347628541843968379786257953406693489271142472887526006145333621168269584512549769775124354163494435398511461194651175750523059462212735424438995541055017447828988572095030258771285914860984253524353338980191911764151175320397452481284796088615895614037612864069931575254039904230824514898690138432435123335370422840093509064110064193367681550946643571543774881634880294617737733758063943915857297580416808316168472497216000413240666710251494563171585373305564833727748878571083552562779893192531660610445983020330980986148805126953805611900139074117402284670046095257330859823306562291488165053630869442161263773863384860722397662031886665176250090902633847091640471548175399222900108497407315054908804945927575666100948061989659766150526029997577054396130878789542801709851863433390709692091046664748872621551317255890822888798311758785574145007266788891487272493958772560651931858488144734274718321037707316793671124126165944611021874994566551923915261409656912334279533532468263116598425845706914631279751696648549400404601835502276560690598489336521837838037604038844227101718571314361172882313601470025684617125609112185991883626726947403822655251865135090625355508470849906688595235152590908970840487127774479106522169029466050582775438824651987924137862600892298677857268959072998992585211079721702725204647028928372701566307373321248108649327713113849459803638339701910599825224203832899582689464204288768081766741907915924469158458172713618476990911184337698434510159693634115034068295003641239216937843070266715209151924456871478049713978704459032807171081479250319594872783880886556422675024982322749226265509991797991072987423724461191538538851996840770003288329686727872743704207592218051722768618948247173625036405324828725315519696250062348239063974554482207953510952583462842980823495825275699357646274543773686947120378814099513624834688190743410535695087089025036702045029770304683591280358885364758912983169699919730938197781382528857328985542704045029799329770940264448551948044462365472650149808931088571807411627402972612894381330434965347006274690320200550587196214156034844002215685032975622726237707240831153802789302344159168044360429814892635134313878841189231508790081970892237311887668391608607019816835570900998049711503325394474769935188767847302116085680316471056743575707656102728393940066628893648745414355456237995976925084909260721545951685127333915794984044875378726162324687290552382268278958849794807703917194826042279364834385082106785204991331784894158440846328709375573842159436884092927625412781960373384416220021163363355085770820451415796767301699206410600562024875544726216756952030242160099703595419257673055583230273187662730167772681507965248628295079103360465681272055904075684999863931478473654747019013410474544226525591500083977214732209030602414119657215083853741654270357357916348690037796915036606452031989294313919813948329552253810638971291043359804388878225461954940049122493505311053364990310563181619079776640084589777234095336505569963301030425572122166599465745303644519659619162970122318436624913432588877963334896722984070426395642087814160480818499581465608387540447646880791751815328561596056342836630983900940886760843346503286380866076404825184253638230705607949881896034253580323832083068168628077833856909880605407582906171184115180439641890815058521870945353234927420837263142656718956820629492287447597007718077791647496553134112926255628689535044811517688450952402116691776688284328275882801173969472819041098045992238234598813137522601836507194247821746475524603691029327997489090454204739469782123858474567412215879651986541297379175133155203470124759037573218512059095488789871408239821299819545830247622683919050811502222476084833106319992848745691324562044159096630979967706135327502889080493231948675625010100226129631451697211757773916712889984442144664182973162597812787133587520139662692082872799204741345676458273267128803506852286170313177042022357339998221160797450469593363331696735774207807527582377399436981981666539896188335347693684987018609741346724433426685468039447704672540332502080279441707125125016362611449438750823701395403121765458840850350568095184721592373471739522208412101252783433493218949750781267454918346827107611841157247779800370723117063709164852638336406398121801071531071794535166034824917421970425985700716930060871937172273973872396898200555388971338181927166007507579293343322325657586072313226378606188188538544816692600260274946889473482705832526269270831006579704102257680927625383671760601119500748720990625836099584452294005359558098580216944813847230608298952489421229952288140359381719414030620808477180385534793307763553774445069629923460180361600574032682681241531157141472570893572412529904296835776271456971383024736204816099852803499497002902789933262570346659189745981022609245305994173525483112675256884190968456095541553730853284400375415973718515820333071225942152849777042422808583964771031575023878873816531110328508991800863938408988646873273150951799552790153988149357401925235873314044503467344136507527142816006391404644345364090804351034521486052433252449422437572904628868436688906292409505928300892888894670775020181987485707092027976476240475811939566454991635951997579711146760047337397346556366551952344759897026553896679545054010958171236822363724358981245583137913871316423143969527673164954735459512721059141342108415990686830118791971579380903116801543743363649187705217978732693305837896030064036021443298221293293735097944166239667847817764380695349906919054894442052588722660226644367329751688293617783626187896725726282987892194023708370123998028560071418225345071260440828042586089141178738976671387189448717473446002674633442633543046487344650135852358716239646434548126057929521400485054047716899628284119110248308349063871670587153629480310780514614138078618406861798717338662431610409705949688746408252846810788345072515411037807904020705377337338057742464036513126971391202748202543453082098555871145303442637823504299594110788122173146159604153808420871019530207643072732387454310269594463642668596448940398838600426655968976785139290454484099129024595255970247356872988458585343338630919009447394330036116723339868144620890460279078945608806402162739992283982655453369349401770045232424456254404914074035408479308857317346931804988647960614436876558690983458362245850519072799345467605367600731629809265821802922205212139618704906034899185282932336517824852762137799229324185663120520155274352620659191007340890727862450294064136840026090208611408104810473273187515727030426567806585583659446391216476443401085587192355043078203778212757806737653201574780322672530993844713497054091224884324799125768230767550304743106355955264917123132173400417577283012913207784673199332970973459178033807730019536385637277125499730526457899729030926019250270337712388219620848332074039412690301409850634399959736343345084681565709004658805469790904683026782080197707707921451354062427719975945949911038162833770848030084081855170405398634868899644518478342424240073250760708546542791668107892400141189355641108011071267086526010388622332165585841451305607156025090449301081568172231285106815119468147365971510762979011212560690014135851288741940940090563681589747048359750518471657393687010545202611933776286395784139957965150911065689365221178129457300913147460686967044065714711366515237381361641177143804739569393430215074690611284537275886520107879341817367905107693057997498664709597557701527890591712411837358618420675229895241424979755729773159736059831171004644064257993664996756836267090489062617050421253902826713533611974179437882031322470375001440340871856852594971809153303567708706032323159608414183617604394723237627858800832834913779502299253827599244005965699034264103458293665038704222441499456930129740257903058091187922448304764210020402140271344664897929502193695129138194895296377863925293240790748647609336695429589245161647355353643470300757860701052884127531061178384219931344720930295409332232618895089116875780762161632598305816070253545189905283870675446695099683849311412527236793327771176562240613021741950774683468747190644207693242517811501810529404769480353364533453525299819494186302310002328090402632025218641944632414210665398198819767726746062893012823543375276770014457042631106418907895148005504059139442358945578963841742475944553207277248028702212338030158829923525055277274677940855247956254096200220183924204420173916210020604831563230114919196158551425495295294848188228747347189476724651467059011516496944060835175821662700291433766143100267238724534234353389068292255681257640995317171843289406489876360039106762036420163824642645284552675038867450662970094371910696459232382730378376096670137872234287658868693706899812124205700886499736800256541549397953870574517859532710145476412318689386807701370786153161228611136636125461796240532959514383867374840335029697487560682086882611642617734590721816540724897205253663176598816046712404596801130087665567667522723150591704099810192194689246715850797110163640175824640202726434606454624080047660840353868175260310890111821656869882101030130060992315240667253013494772262536611947977346939926418659538922788425223821041766325746448055505312554309513838668485167074011473758800323073125852764409008087376092689313480989710222043895114457254927684553868602280763800488950738777119422799757025025828654887663270666434396192650800623201131148222209132137526240836240770349176525123645159970379031226268267219894254919851830542664653773188783628912057079282440999063881897588741979524337475334071059848502241108041026426583964520081901687885799717005975840550266927415717073493994333350729393310458321508345354381174482664024627393541653343999585374759272091256105379129402870194362722550080171126801614644727520078373082807725403758605169859398870830918105228665234306062463463133502129784208686344442800990625243864679987651733816263175975287534368451426126742433267623965342166159385244148348049025536280908209478015824533463922853573221194123019077120992470051057630234957218426837712466051844066236761600108032711647854061033479061340139613081152671039234579987968587664097310991226110816312056479985454134071150370586883989327388170280249888465810393558742116249021504128700685542139620834921141341859366136553395406936238733930771230792951279314660621341129549321959461390560511587120572384051944356750902313274744136228230277704768860420627851950261277778909686332223994677701050836322962970351847516394438990176786557945339082930147052242360291342736578830467597040859401754785830333264422689570328022617029219267464801566710553418353071451150486553153407263343353528510447687873811947216633760820040344798298303379161121382719259738089896777508228849398721152763991325988860020822140081945708841618773797452655910419875654466177388580570885239981253490891758685641920952831751400479489403002517737296956977258921979907416565847606294364356432333560034465875956053998133724780973565358421985487340195260321799161777712469480635062951989417906126011388060638468507915793179381098583151951336787969683885760576006988557557293100608678938473506325346122609371144371682390887044532326834092503435994636607495581947911559887832721191880822487038951433230826136696860738400811321596371577924959173383546889306932879417821515250409837331855183502661500300526761112448147143781257034077100916107762323035118372526713064255070577185939696331192292011616554015267131068203392353112819551752500217654415105855912542463895992248455708755152274131798764900320589877815963351408202563745409609467913546258970020860634483752870837879574148980637471613737100394111912415041596791532739917422240448943171354841092163437900329590249631471794771944231208730598737455585574471466785358966789900305057075582124151681288141125788863613903575596197451969728357800595641146289316578142799937283824626681230116968235714544379582750673860829561736129027008689459297704963491776175429879953740018658855197174213474729336256915611683378452620954428612962832799409137918581992811546103164928665611867614363243507619324089607927145061062580893830670273810517169269641130806122464840134672829644930243327180937601114665482491387756956709273839326451975768147870474284790714912749714845244581294110003729463815667665830131515662944484982869626101149170202217624767743188677900978918997079772412968180919985941966968919387468188600068029214392326740477526737283018794895240300833405165188703868143981813538124009067623073451048389381721958103304030301988148415351900862850237291451108744211192746233128181035302575086873526626944017184387890309194451278972517892361792020757743525369016089856267638669263675823016491183615263709360501417807917344533770473224525932760313370797578481432897634393595285297721036921209030353380202299100218473930036453528093108660135021937293855015330692716899256949711198351503023905327320955444031989670446986158264080980132650086844673974238447791286069354035289135592701906453413509462593031805485657305894909206721945228905260503644533264897800259677970202464695710234056619917511588468328604562499211471663089385709984050486477660439704172574133370544930268465449472316468628442418302034465870114879887176123192624355953743188413211717634169512738267190978079201892097547953212675141536916756272580484066851382508795364461518962698134363301295527949169898956844191000197393427217385146427957909499497134474492456795057278048011725456008694781804076089091773711271271012318620527973037164702098273897301894827936981995709272247585731844307838589830966495151702217300252776240865423848261770017362361622316524214349420754139503273483586963920668044111835309301018869271829313739891584571923766511518609675381697353962111255738596626364734522139101916103418140669977166150697704594670466969493160944541612017224562774833733743894637850826921708958478854131336354815120446155445484725040268753106301757423756270859945288466586875699987045738828407522172944509914553047454602410544860147106399076409019961983806257606465336988843012757115606043720864912719231558047858088365617480134859935008197405306875274587106437505003300714880545081662791119443468528857205468337340863923933106144726443032584599506942379365289826445061518048528432302705955984411270843881735114231767670233815828442071705616195196252133325419372546832400393559842116484985384923823311865692732030603683933944848659292633155746181652985878959783773483879985272715017964964255133433470212705834738023112953680818863613287103413461169914769861373987902096426487731589466619393281516666094757985589304192044630081205933012207898780224889123449670832506498742378151457967185619957100654035870913157206721184567414190650244491381987989499402393843193683020019431036897424063106595359774689841119448740782628129427830913453343831799579714459934118527511114598813837225961672054862635042410812176239974413340937994817954805224345323754285141198234648845287771358517869264259870526678149392981355405709184011579274690066077419493906175245796859104322478976234289762211612108834610257890512086542982672362773942530092451099761196279352532427345066193078469500158977265756016391927525921668776723029174849289208078223881107423190241812127693491415162536423600663980809647640953136756956938360984292076824801090934735806884683642034588911806552002815455595807051448035701279551448928587101072544673133287169094770163232005967611676124241034525301845775105252602444304597377979244551862144757659365447228777562945381551357659829714540354119031574149600348330418120081271845222462705590110702026292002337249927119589372907201834123117629137966472892162792498904214509766524511481757931916389493728155469112951763162623379089455468986829744894019799857257827027096715421263848217104145736217674527820565027652729894827851204344669258954205142432355883631278902157444098339264505794279211825663492950372875765071280825325750167407349285762906351799291666169248508553781924634842230621256160542005645420591199099215067519554661815941159587955426227831229716996180996295003543246738870314442920630938085626560629399502666874653418162956035194391134119090808189964542897619392377185168220521140987644664930301849141866049402232568677473652325105180655304868205224822419793248111488844997121562496400724470120051316957371158820919079395575930107224260671360428302926329814807043947224018506851024202662437594304565490202952865753504203249051899138708069913179058493579187945601529234821605961518147873862663469355395906503794872401769235971727523579151627089855922958664991800188165786605421376287441049789837127874962977261216465644823259372604029828118281125071818710120204288385603887260968363293359232541273588903229142493939768487490683163977427787316508563847442542418274674423882680571279013656091143788927271700637392706901959033172217365705324819108680514094610160711969354481555775631215480472690767934593042405264310391692254068658204612636725032454977768831306161074414017402059509112046446824249020709299108546412102140360912399804069070783625412452928397204751819588619149095290540083786328440257062641206264952825508846144286655986799525382001737507575317121561343845273456089890929685296603586001307186569306028517064636779517166319525829706721934749177513540405475759415542480505591298075993108641910473515846428274878509023674357819983804508759194986860060579128302931532889785695994858230133368430727398200347461326130788743309387719389076523069577912809331214723384108172057601525905373896730149830492804892164091929139290415136499692483022058950465374984812987296339782196451580516816443642653957417237819047578943157544320937595872123949003374556723687666602048608613529662897147784002221456619011511948240764663303065382697734592871587737951783190315137913907646538558364256148677097217082940042205087688365689845571663125164431575126266633311843223748594533811673939201052702746230449760576972586423369712352371467800468136266119372545519420425175009156638596650983494567344224388970722758871009071121775285413395368081449148899489469492941190244874338469005699639421199767322710047029186616155600842497002497730431783083266491084858010891839345789400515975552384565481218937834922945691648104171351077580192175074948472508853885261104691339259618895777619306567627858924543817342211734483782468656613850191541903792877418249503781355924872579180256954026960407893149163672408232696402432238348443454700504390832950683648324485051202535829414555323747070703036593004623817860837215677735660388449718193847453046874057167551972234958579034093194840263663963992978135542872314678715738386582134151327120835290259308225358105400280373684786004740516892916665037506930891216839373536951426024879182082887896963576211168701247129059302880471256776179546373871902397772123534668953464059783949908172861451721934903092982910045262514064940163510683929923207845070570950056299887931023107868857253721737270747024569759405740295916893589815563772802708411735444938114097493158632638249623300362813067217533910002281598212848729594141769942567751632417436337472386110482686739262587120850372291381533786679210069263341446620157173661098963818075197236845197806174843309658673322268180500320899097998114694978068983642077806307750229924388458647326506704698278182233514184191429740079792883679312569773636458285625212599249186815596566955561115928146986504270002463240025795180079506319044959509008461848347773045528001750434899850567372485334327826391055303635282601661704857444983990069976226250725120943610078342678854181867503673392333299663335124553869367086228715080746128662376502599081867553923574751725507310586674249993394100612613980340307530615565717576573920118725201005524404677697535547321735937816020743681970144160718745418893379009671736672027385555218882784347475654088969394763777491721194962135308133455560458396288901844249484829549621627015623370302036006931838860302478263163398594910982018524953095186475292750981169995599992966791986605234421759439243087198798308465488809813084222092205542936221481453915344721277133031847131902286540673537344938998887672803722869240702201064578713807728477645014896444685525162504665433657810660363806945788233751682749057727514948965608172656800564186769531690576808879273315663819847387173931122321901396093132657234328783813405255675490660851865136772475360676568179293702087757215639784553958569160269116105463657602950723353211251825841220126584237864301708880809394373431527911247573696729218615774836685735698875563378748277494237781501993908730603019790677611567237371806304603939910539883148355884308065760868568258776559243705948094673092826495397131331677843781841552992503476457407943860694592154918962578899382379345766039940081190414038489945966279957149112017550270279504079120325367790787617208809501362605234511889185971994968634385074102683341592039358706492373251061335767608481996626765392959555561519777402439762495098599248543530226377369138591670201967029100833582539494034666150594156890389274501629002462511357984262290739049931392669227822122135858713125254080800679910755145098306916466774436880695963712992114075021761654267309975555152853515506874124397959779617832547186540708725637047213020917487291204593301385964734762637189637815929338858939278515837808927139503894013601422907931981796357394148813600024932822296208589207422290607711313240427489637858800688787943562536458599675790996974740905428944326537375007808256916818091130749395942166579901669792245270723199538815479912802365960314201161415527602134076721626382691853579579953702285819636251002835155398085178037287873831210238751839267647724973782697297191627830461652870866447692615744955644152232600027080727877725335160092982025352089685067687474431841197366135648606580350124563270052978878514504450626529948045744902063417747159761503424815295885501957723493327850950239551054546338378346624972399488176922689495815344990386397095085618763792686978801668879107702515227334230855983787495810557146760953608469802689102036732046141325505714864999462952673507469659675756596362958219601842705098404043632727684203671686671303604483258385299238809468629011107083324508404627639783060467437044531445788155009549619353599225744016001289236976694206206777029226285856748247218795778905217047881711370868045097329127195309905227710812146765977961341236882178199646568742485895246874739191212009296308259059260388894037347956973880732513793665738993181480235626571158428265881929715649883115526014679098698667955976113714528670687417856140438654369534755260225097077631283325123113738468684874306484477835200127832820018560402554642619001874280590441950272763350593887683551276500263950202809574452235373661959259382939948871567787898686731757426326532294352538650227859540058006532174789559486156628721861876294956017169140251139276335236393277153577385578537986151425496195443862094257211964962625333402812496938760338680977819282437179886636593155272221985131265301877099047651917395003984467353015154735989220351959912047158020887026512944431891743654668342094884540400143997951165988005512503647240202043248316125463817730777449248035163282207363526590534596509320804327128347528851419946952012967881673197810697297779335890790210749090679771551876753026827711363059145490137447534540586447912108372364700770901860864769858351581382088027102616753430618355653007002340607253393910642361482867758190769008444493917117343480068290311944853092392487328584108342945114776343420965249434539792641873420318596370615360019145060520650080454220722616341097536507082177541092655315814678494759233744676545787713358322034098604219156728918529698576926063356131167513379381432032249714582320749506288942641587861185138689513388087775001506839497103361102699713863064497728230778269527018063917183547324131079125418414271726582526962181375791269453950842094965579672107389891225669867114163923726556484607438769644509046324098760017488604945657099604271147648850731275400446486938855102361140974744747309448656584253161672673757949722906971357815517660944392755984913062462257314363196876214106568012944405753150966282718938908990604328383390099046130825395104693379797165378097398657554019479772420458987938178824775920591067405444372484673274838644666170044239811287428370067184688306553815702529772503924260672849367592419503173157482124801931091773222967008954248266461645139864555366383700498717357915441634680168612439032026155975087703273575179067906438404957300184201131623943290980973738575649272536633192503137537642492061632032007760878681433020469150548603134154708195901922097566963851705620494220273454977791062279657186800022808376183325055466136376157019712525649528852375947096582031923542370907611171692996924910641147655012375168709516522838125974877951873322071380518909022821949916031774215215259183210524393563255336238187993583374346526533622077955002248981172765444591387731800383464435952546406927013946717083154411795287865877529682890834300509760976264798265271281099415166768380916893794637846311410534121557313573266897679261215989616431002185328546198767514123069352854527932410974016365886740680150476481176573833317535397550851830076259139362936145622352348180686848058162748333878378162025354675828676460344144876855016071729575463384956956557622671430285884547233556459979527223054501094068688252374955550119008656258481096431278814926300956923711086565169589031622644921753882717848302041822098311475930407113361774733705602698959329776693600618547818623982405764462831160230075784297395078944985598894206887903850905156927478838565490977762059628240688692178572790075871495336681598530956042893326495633981166703568292262079171399542072432523626345175690916088154316071194389224470925032759329522529710577563679208487609398779275217731691342621601399838732804888800082521876988023094344609768398495124288737240797516733071235424436007899854648510390942735110485755622203012247550587591688403970068541364791351328595556691486180040146596996407749980980630050275078365057287031642648545881164400275430339611946381045455718636377122409370844014561870478373243357332261238632949532693762247064446518961381966302249667225393797473004859560929176946674132373760009920104912728770306144455782511883833498816802418731027400115397415117221795898011293963334922077968573142713182057511671680223523763787306302779298626119733501590994743384157578338972521313419483539393985089545609171171542466173033922103966877144017202057817494553466966728676108479462183385009505788838281937841350358775321577247625890133910771143697932038016755499087730371657889052306960800722631965688517423124134920487188001269667472941531843370564567716698303670321755670398033708559731160185925153592177215734764566763875302168549930677067914538709269860660537480595891046035576749969778298409257264971406660802459597493480742096389076563659251546150904340421151495372724655583553961720148247646519138786426650048631753766342782712254642397038644536645079388434721043592347602280061958058804244113609517591340585716338590304356625641023457809735203538471507114878197864354987969624014786781792231856711354870315927126234653229088474043369382478154324719288510277682198514487621924146975426986726948687958355896933091680735466963486180862219683473784893367568299055534631239236844387358042124977167644162586870315298571033095136000628303053978779846492540959091335171649086845439993086241084806771082375304749977923205707749153800144519786871023800405287756101598814869126423256896456614894556929104881779776448687320706278397826592936525498125351302768549070511356131522398272219162630214272647557508852738676719027137396694604986233309561985049802001856163946109430895417065255214820978952653803220681995882203269125999102491589371336199158429392727124471533058707352766053166236785127357985479784035440693984746530922262778355704543312107269922594910190759313445730883720021919652923750839235505505699563726686980678995211063257199899900043294328999463513866669819732590914433401922485143963810499821484696075395467609914955707316601406110438619921901809860239167595373736831966724299392765361909039418680514096247017274193974691259491220700763522834295596831848584183006613719126547197430027242029810771713052847740788887815182749065954921264098827679154618412488848135140216893795577152576685113652152544941179287781388472933894531156298072624893695798180193602067188469746494440895828215760314136539620557072635912538610118549976054648201323377303156451598715429619972497881718888866021634362186185600572123017218326188998916268971194947666547255525680314569977140791494932957728219060005591410511716050138684335912132028501562494080365191724517155000707422230628765699815326980011176447727571647298247520053860724957820530170001648878722634362172332531567724627428686943335891755081374447672740597560614782321083394560069822360181079158870787879497216758014187635538670835004811013035576122404152389923993900062512331189587997602302686883105009530688001015998648321315093797243953571159237541223814704092759086920542807112098382471439365998023341423446969325503459767478075355095388715963125902771115618343070350590670535688368944106521702058586571606436205136980273096802685232597517079600155286946019685313515481798167297324906702090685201353178214863688284454018431835242359179453910348894314733730597836413557167803888490251588431519511786113505867671538883821913422470933378410804899662531022863815580524913589317860608759134670432061354214759865103398373849491137301525782052928620374846780196540450994547350297465338237629068685588230335563742712002236901024425322146103938350743988261148234292747796856601554052730635459083668983611970773628939207159685412097348189878195432403148860745555072929649633488968355550855313735642660822725578104625759614778143222891457614810508623467272419282084369925974278990332156092158390116472521014850690612741501492716278550452449835671528590735073712918353067030837663292106161905606049959926407463838043592410357263161007070750521853161917478127682252461275173096827524683561980976043966746746073036211026791528622854018482192386238831725515783183566593637150793272631651673832768289206161449336047594518698506026865199531671556386951890968190159076150067995529927767671458222880846813885869532166293814740593514143255727624800889811852136555825716565885100078936918706599481380124382547863129241460543696613623229623991962697703092962373424808170165756687063432870173943482431625508729597942178251846391377048328979990769825469940137702902007943668023891661683162208623109639464632406016429396047000828205119610961324624669662361632460448926016408873846653775970135323106749092068405815420332447874763085142816815611274815230241158115351922735995094218388400636316242239108390091242445799695297456498560895131528263669896566111768543889823718697487130864892754316340872112662884586352824753224771914636210738530511204847907352722163837692389354563014569074384539259604896986969329498116368591934752389885591187732846256917778624760273964556281711072420144235701541178878378173995440016915962727549194789180142613150634760063394241691730817834328127759080429597883388368518644997549308814175825269045389696884826796729975106030060318835273507375040555267652343067416491073097225880974867725993822185422978396672283028397158082647582953127882712962079529450854804316002210451880531613432131843470568953112317131320996043235531404061077769104626391567712299385249686036267194399558676382858542787252535570243501330049883729257021035412525690959772298598500884995180580086475644429545301741861902931404722020399159211383637283957485561408060621247114983300744433976930039960547631380947868767998002899484917860166042402976198469681670236969012716950013014972596378032450994333447170073844200897986682323404318692884273422566309447876795503329340364725608991697825056988427931955851733548967918610665277001933927744390725689057914492576810933058449820823017482343961724078923493129948124699002161246055872610499834983221943907540395004169114785395466050526409858150360276388881373813677625910891467704875179231451404380502959016788267689262053990104457568059541469630278258816376669283877762361119657046433185661099777136633049835912893037160401060272065704692041022409315260436930525417322041953457692830288125246346616031982043093800691369275446233116073857504805210956107708636784955320923818019886669541635277417672941918405326966386819770737422067314952555350436983725585573556414560882580763619311532211275779992535949254777107226253955714235524674492181819570679942253515753152355244498832672793950641984323185000570194709551331502919926687561974090018694620104520632170015372535469788132883877351203136141484514108919458141439871461200535341554181748296138299607298918572322098339147677421308606809879278335878359876096170801125916008420075815721053313956882047744722826155551668540038514971726668065696267250779943269782668111144592225513493826074793236880555061107315655728974594721143210507741651724449872136237613375323113800328620599548985292553708829343341568154724850989679901766069756479976372878603556240721838188062852669126627425945526288281287999350971449809352275679206596394255187997352590188602333846166241365039087368546357896703094216201474296679259350267885494360020426743391424682881456313219835257145331737165742963428292865748534988914904793537253328548882866165600598005558645234547752777892726235887730050909284166797913059503290049799649075431654077316562518816761179616094092947591728383983007106773460422091086256225550897184840868761894477611981543775592582223043956868982745065144352572632728449534345781286651072471907590593259422573456147159057201506983602346558051142610287352345307729375553143833424804067200477519869894979092846898185829977811409165010650762046211857119944071208797179829740663737112682044254370376774993087537228718182573498658443966141363497900535769969335212439910430068172434999191866759465550202899257620193503100971276935696654774680206630037055301354807256108597102278034259212544917261139084383657072186858181461152690982926608482033695263709615512686543168237200563336917576250722291677577457729181974081215357455629291751349585495600190963356006297850371806588231569628519707960398642638530195791010119717960842298767723839467257486130905091655550893707730174705227855018824608824612089236962761799580571440208041112456571533877844430014539621906460149540198929256979028645616055769708964275846701440781206628421781674556919582845746047788400369075833933921066574573295627118892141932059918477226939318703672811380050685144860062797397844827239088648252768051234139476446505469117436167771333922252230384616630958900945694250656070778590525625654598668537306920401368318313983922316363342615149028951046745634157579393039774223823533699230039297833274797672993804191162181948489942199888442353556319615064113950532839510883125515860988124548983805055249748830225566832711888569314530042472752715548703824875310378732846318368893019737444194531452592058756815766998065292929389307422893617438966158878926711365623588489364878298716179811132241353775857443430560302758361570869090527522035531782504290667742514031709964137367227646394794292744459975098935014324975912203766929642200156832874344113839431935072388898492480357749299028375777777845215672475868800778004442198232356205159766002090222927183756715924372077914472403596336955381867202404478573908336479644122200956139037546451820604387224404619269721334207809537639303125257138420880199504614789950062546979026863305347331447966371993276961561810421368631729949435632145612858411410387284683027680910335708683031457553150306311147413892250674732053611580422154380781826683249227164367060939388557548503779902068651569435715051963127703889220323389397147351764666704691721427765017592361391743792530380896507157810984994770484257386457482341671439537276004588507530053426401753780723693655380783227349468588912064192272227443243114776772041650946741779632733793600422289494482423192949539172609934318597335658517581277676231640322663803398711160118495453491929110358878583906320014444004094327849450859634793509390366822838158021262259626416123048109921251830325766982270382500470439392495551156423048357406692102409699564048170452665488765821479784058661348893123959954615410973472756021192342782883256876653297008380260134128653298820070101902103079421182771694299083299832266064264065447698260545402431892683004196814346546139827252839935431294651503419030283621717909784023225815765124120962494796478494194431758320188947619913258819169836525716625302506288348367123837068997986123136821514363776734684571152752208691354358079205649829871223768101090780300988513841127880402490890856197411124144999268775599341253988999989380071583100966927731122137850440987286806507917280696729976494840717501003333381166464584290583679672296564639980358111296150719940701606307730800210393231511080926511593343872115441652098164372750375801315479573083340236929293796959095508879490374555877011231600973823193203257089251895430426139674099070048798522798282075640139445918474216734252617620239523866831816897475514443105090749368403847595565909254841658397288693012026980447436708169224544612526363628274603010325790202173818480646940467724514106585747730979686629130847292288760817157924049676563065065081098120017079286242812432605927719118860834753763936344833092134500777367735828729657428589139027185059324409978254212762513731238972135385092201354232853044731471586024623602817889152671991663111411482679468155134508159653256708441687937973991280468250520464336561309518115459517029018838359584750849355252049697396364785212792739483066719077895082492060811786456546074142603660155187628921301286277245381859722149051900214660876910423826558559248459378074360919335976570812119378401209121175892808156331839783022579533243560792741497889188162640491792744697026429782179247307043595473684116772682782004427438447366826076620561317865014917365554215476050892550061577700283193749525948402576418231208462798266255808935122277893058789255836740254983806377009739110282483288099840636869312958300911082926801219414711309920667488669073718798277094154534159695858683990024580127997989747662384282187951517690001133913300648373823027603857367338777481223838371310618004331564957803861028720681152501653093993038042251221766864772569679853449853289930069104787075441022423334011689639432005884081698053591895377251301128587570518120538683330389562858427713947475381599199591397905798670166794147354370654614684789324164655152704867561029647854262797442743095140387988192055688509619808956474857721965328225544613759398008473638968015864327023326041868930199950996827323727593061548245812775373106746935771444030985372400696967435610438882130615699009753580525707073883127323172404504427787140188044188505792279756254021171075261916666887255181737006330317232698397280597323956109609460663401240717543588837388820261337950986826036642887648163349443059564410760907227531697826797431151759299520802511915657956615363429545696697773542830856106435333028666161341824533845616758994327823094359153278664508470373944485191304154567537182298065868847814110446598660401334922379661308252097181856823869775170189750501457746078411560645897545385033734458624115032610579460089967077071579891380004394521767618922883624770066228160807154771324551305057933886066052247316140593204040237839808174211133593804282991656710529271875472776791805571075713490468329326057564859424262636913637402959433547548334227785932270557367251728249876531105792554996148683945352775357722587917791247294716257288916216417693741581691620421326753073668937087058237514289749113316607089175892855267587711065024157780901769388371792052788959482260439195706721008651998019332024586079120082506516365531467167370925043962825530088949677634769274746365516922440041695155174228900622969959375417451143921774774334239122500792987817357303278672989852137782366527785507664009953148121556171984403334670614803064703469778056955032003243922172897375019839669354571639040885580020725163903875684899576354244269765904013919794882462091226584760684070255633115560892656510549903862258438708661125465928381544705280199298929004584265144869793259674240835962160580477612432807703074391896827270307060373267833161668794241656315055623367744444253300505400338279047967696591585784064636650717184245835493142090782432677522366194127808884125646517287725078402531146789100934426443749050799108497655797648556611500637731880261152290331831699068819874253211915440280810901636501295949608659452135584044515120918968179304511833098433952364417189458979394845127077765189784182883626443725893353776390762287707980934189323239592957501069112785023268387580791741656095558483491378941135382419013978242047128421854227036714999443304147392246122424622733048061767867864008574719770363700940497119971967728241809103660654086879490250390962493196330975278746013026247371580013551146332007173844633911360374760716731714304240785106652289208606454485922857384155979573834114745471203435594459173911586689292590721101589973417692210794942470097572376826182570641538006966064078762868116003679181507479590252825628217934634328846261437686819390335506815258157300369592417171797429964938906523514412321931087630670615268865773433284114970669502288848906117205535235644919004731577267877125039502734933875568923870015838969794531240305464414583876698413239657986394623839382258657606472613017732661147728777976599243044649132290022851191408577568121849877038416094618214964281866018945215116083521792129843283000858825784447303696530490137178575562774230239533114551724394332050680918371106915416202360162689093980738211786673328847355812509605266020738241072663052422080549489000105113699726707018914041157716370001380022730156279900426703134404226730557949184501334511971504361638762735153354761848174518272003352266734502373379480426965830160891455661050921041554687819159345806683874691347760307995921291372048932909340774971469177975934585131267700440451844814035181299485966532428838595147576586379555896971066232834174751480944673507902782803800295938969493905705285089861518618755012655556958674615768810418370316964105559357097863053669707569039154727579931341986537162575337634400249684560431529452603955584913741829297864744243686222551549367478218990195393690180706947178222003952163357729422513143630967931676209447913885686662458818641510543944274496621389704098546869510527546527059281510570523044073328288135611950708201156838766852995820622722436919193571122245966079862171841862059714046888206112919567936582487500170421196112948234580482889421307243431189978758121519568387330077298793873971060530638315198581659148329885008871483292613346429720197634292672165757423970326164679570602684121433265781641064440677471387017932467774803028964468057265742534962775259533542921819082290352845346859292677566693781278907524257386374374502166022273618017116694008109276474607313780510723585293840744625300861654415029346860018826044898798467040172251243076237726498475034142429461958203167620603344699100585529081884781979166613708821665314320937808191937151346624503232690125778273691530199005615688910462121212218819731965495348340051594608568936467122123111897145179861441206242180215845979365398985156943991590851781215942603986511613175230335670458128991038769541561011004549879337955548522907472881996462355706085153183708493893800113699561710043671091763281618647440811648874362043339050382602441271748349729742755250514719716001878385388775622871175434540017370807098940915381426381551395209929044108942423693338034330451567892189629701593852486522211520907415739660629086506301225816264917967591487151555440537578829788994765903543458618348492419629703704324338476398354257546302327807650176156751049214001284418493395454644825913094174566357457233832063312052955285643466643442431520182018071634127068665622286626151002448564992699067004608394857485587075680886034095343322798836586777375141851130866327446356840754761170730745664748352428541277217386576690388855765122022173703061022612788823758024851392549319247142054379278574154410195612228575572932099618153834592941309364516568158583931240456775014470893759899956171861454448779585367381792886647699875356540329506186405342121907428759283379317719873429942582344796498487351571225528072730094473582028153648096352972155737643329341402192911594195228165800414383786101320790273398061519778567229448529088205411603764149487323781671707134303404634318605932322650024281485889971104822639473022110619577360720836747153071915232621738135078849049922013217082007791520822938748553736074500689666154886754455166312185413388900180397901904404135358199581082676857339851095234149299440713745377018266893631990604121420008748575144659789704664846424204109188611017901786902322762453479678936012741879487261563134506698642959461535424511773133286858307177371163781489364661790721802786786219755932872337033855770297922766546316582043015110900027721928144984943309387058151168849410498354911816428132804842744926488628977209737868441255169330044714155785533699757341502654516353897828965346027643636740588783254331246959207829576526499357533026848950811994649765756006700006341032538746050453738598327196697166699342102589962269870862638395060406235742100430978226373073130647568331404326855406230182168449753312255355917469726810757728564196557411751696756351090114838620187957516608171971087951555468661174874919840782540292534428713843836597152138495272172585349152100242060190283473548239454204339002780947822935312011777219662186592189165877290957032966951060427490586484152618120871668918168437176308340682145812900504489634450894605259456978883352807765429171783477541427629217690886480249458044834397225979308733084931793195412922167467274125097826097320767406156041751322334406900314070583848916419636076394399518786722439132253040636428763369639661885695452143909225651012338134932530873059242575773962517960690289064633050777730959403177304761621015893766658713944962093380186975456776339679859576842003914304242882400635488645513250386358082139965731962957774597200319199555978496125260053702481051074579675586653949967662600934930699128680602519323283588145093052011826906075120135150964393922680101263392814284986258814392529324708867945957531720971805617250605982544738312721228821384736200425655389116745780433538112180677364382988115456266062006120776026053127341181757389467597013115700543486043707277625788184296588245763057762752565731374041468289173890809506181074008291139418241346578374920503562681376753268769379931023070488411680965691533113455950602851498922663370550580494848088479255575153206085673236009059071257721795375017095670281083499080633281645151417385670142385083374093080251715991201891140008156416000797534992236334144203015064810397159229330907877612260834710811906577912344866058120710838641958268726550457271009054449639240209421188220984939625199128709415011846170315585491439589794604709928175036447963158145785509391143320516780354848880483383322674028317810049779142333997639956425716860165227307079363516091587571377319949984151950264495237453102108067893411662449507262325499574796143397644918818586294892733417011891563337772819933538891509351060599383417411510875097437477328519849005805758160089442717955435782697640812111509937238199052005566411934193938454785341286638227025471875303461059850567354864617041130856011195692448580317517610300997300893423403425717919261192777111614744319215729442161419419365771648670238739526932664956974524684456858937370020998957141500580600362853678241600746012738418635410420136467979153458898427518950287289459712389609994770063807228754403941803418513558001296446628762457910461090885000404911107456009193325589355227901493819592687610198191324637511832630492568316966339002715570925435323973731122929959170396670176139545440082993788892633597881315256487913297367557101840020752512880677297302868398675752352447200287214416496819714341150301299535698753935098655225192603103720747194076075168701002262823797143433949119948563343197547371156943327302507756534323710235497458190324181134462867916822603481821555495829194727541332659941941623407911673351064355607931337775739634032123051335137960149287008719418057822483958464873308318679699750641325742678420590974051500659178602519833517897562544593825795673377895127994802434317142646228445630836587984010968395406947836344271528326327756684717952053453044956191598016279500781245091666664846009082479346927850964708976554884950288751791457324533766480216690469688726683847513662996105648919444605286960253470353836296041296552747061387394955055962413786391855764696599326733381377705566837202093751196078286067964277699164967163564149409985304037414957105045043544515918302928685303055021119777133082679062214932187252948268930429988987853734563895627037823399298118139695539336140085671853502824200175264411269177487155714933610903998092353988521596933685583315013837819943323029673903261505699505954007476046636866795342267679105514682809897492990055360556270395008030696939006779822421446420635077402921546411868262110349634571121430944197624889648875945237024368939398292264915599846866654407756604321266043352613518252872353835837114498242204787343795421205297626245665378078100416860346720255394729589625677658080186812206867770091651559432281922833381537662212364545748363041655832965788234898852944091541675471977314484225098672169364223938153991911511013304148787010217345517033795132209348996664048064900771068371471286054947277409874041688414907600030537834887129005008188139162376197983593453833007248160616224842942382571418499145403483731110548446389826354188634045919204294052931933215595364480883478316935697225920016031543579151594741012419369332953221778545976562904869038339957925047159523813537292161105248180432080933395342340508310489840502788592680797698191750600397040820505701627770680219285513214074824916146276587269867819387049343695228569084537774680812524823630432534178768063273296333525022364362567492607051355820833882868343181379669389020084660159943388515273694329161874637685609442069122932583124992576730315058968420123193416166094871455353645480902006367397161228285411221204706678983606419457973195882974737791807203243882413271235207764287664003517927468596764631598931407979044069015091516227910397439335082672698846408651319756317648633322468891422488184377438251753576914987697111812391765799020485817149263423118390758564946880390739551828728081666349242609072677311153334010506933371487850795082329301006419809436795587934873812748758307530594978085730269012500759744780819686441377314856862428847652309745739044008670946672767600961281205359122378344073899178355271761442051142713723874145851346049349914217933258956947279988595205656523094282422124362952004070032859556845979295733863343547832547664427525086879664319749155104359292369597067385468552384282552680277479215918482090666238903764022112277597841923743656739795214795750109081331101220119706408561566319091558088257611251249380608346512099465613317543551365176382954340885731772806603155169524187603811475780449640822931529861613576485812736582290654457871401680114299945646553328167553735392249237641733554594431148424481222402521078215497848346181255971910745154561828451648417727956234678815764897388952395405283537593403416123003691486431754316592485170428072684396989052353103714395373224847365907419000588210463851061055346332979664843729909299886991331350633082197896481691485260961082940335240686840185033578694592407771907945654392128792175286817979317272811022813865585057315702167163442809388705284753755830293461791741933985998362426987291704568210765314877019138550975229257289080581020578087719640195035913775975374803050026458058129676354030136572490080746812303109091720911310276513818626367788186631039439219350597296712611366168000041486350385721997925420851148312781198157544123917830856757987661813707775092181083211290238962582656905032307535013694462544236762023561266821715584507946818505272983756153987989998485160632046196040248632143365431863445940610428012651882715917634655060750790741206044048694209130170186462031140461809003559478460300793716617705515336994793445090612254258402679710520397150629328998416908849112338797712904219152407734660861042072517164403592664606501683945762904559714862617911491047516039352134832506504535958814179027531096060937555550104285445034447880673740659451332634175955381672134078121285908509327610015925645453130133415890606170966645450118133295426768723389221617264907774385011810565683737486277954870376576485431440304776816906527396818447312112846575162886758264304094166987163229486977076668993774985565845032743338352865382313194373166313285308617968764254169296626754465775757500594355679242891143531570423331769918336474716352583644893127106734753157205796680680806188135202535324237938439198942834629248660118378095965480196704257499666243371209757234838912269736144385564255981852490979570676277447353358081861531740721125863458679095759872094791867263770714799909877284767394167324970224867122006304353961231012482104382626866523872976130179726264268271276667322385452018745926256893427191391555298651786134093877358786692125984341348550421846084903879468805021202075801875970894634988751182378687488683652932636119030074943997059507217119829542853511073962061129719640656955443261255194358215635258198319090307353750061996235661666517726274225088798962564908197731531399701116548331629524780802490799659593385529595730737304657229788845899439112154316288213331797883568906491760827601123103862391349501587420343287024179518957763721878862772021010029796636163675894604007780057516624554134722263054227814344542939270846592487233609614585525011545250110290197983768802456670242972079681855698883162186164890932889517357716873090261358692781989659193181088839671530479222452877965768488970521427914254874251972489647928411936694182545190653540756590878312557406026205667796225149491355192059753656160278536163243758996988116338333213886450700639695058867361080813268127692443296352092566555778949442470496161997160744981189916133697162836282860644299659945187853413347592608450181462918811184790849730111310221421555295152114123794134669214575166530020343723388994153308736135044133138107170506468440904069283251440521423597986276387413059739573939672822398885956317218480567322820761477224988204366330900243505207963209267882253845406867684305942112181351400282857619232958860555662354310282528597209426388061898045276811495209083975238847068203382147459294212271002469196862547689087224002861765662519610322880798539731897578113635217667521835432969861337248619294266388298120562105856326527400580125859101463718525410261750193392709433893931821931109985859982934773209794324031415007617319865703284528010722663931340517229838433691089880958006316346271248717140881659922075023597769032148982474779934689890854651021935008356836635972895472700879111826132561065903895521148871982865592967292289634947557471622059869837156428811409038173784096139994285337092527210680524324246171536867770576697433178384765719713068291230501808763620145308260332445733532648260728328050148706184662130467754485338575290175190542957163536580753091032251677997350632119185571270554767357516238975025112668618916755274912425056982073126410818932571695038168948915301396563955104725365024406119784549261085898018697818797259801213706185118499297179824419371383168117193402336664171042455206896565551192211874779497416722967780831521009407281260107055125914380214552139453371132173181116863787067228073154572667604572734221566950993155665400531158304200575292723179058496527809819320824489978801360135911033921508189250751802844643338666222602417148663192954565249280909366064847414315170761691522865609407256335048361783348013731220759439272198748854081705324931068047646520926019136160641146981668275121310147628552084590765894574274782529168471538322173913872012552976929969881688974355785857858202836896786875438643214549169530784479657685096809881929204919061032204063856711125015428983946721567998109045309138038335407763453406772782479634073674732873975479545822661662152087027342755494791278876322575564439448033468152981699635234257109894482001992039540076912023122872081474070512180752593940455114244833947222684284296334582121686178000579124176409618546129015562533337851008815736510365986373434529162099837805268072181811637468145953575280832464869405610192828745195833893682190828293839760507901662882174733707472886330195834019006602715248834631772876876341930923235011486154611373841680230356637026434394571229352447958585241633980949642666549559455384060705554184812211911201793234896269075955115201082424264470570153918217856272380152430690561824819464879124880423406060599211822077713297718809323086928115029850452380734635386343651798920771592641153030466399002517235032496453565181470722471540760459889143618467019163721277593269267724967338737615745182998407956001858044103530501807883062480176717997837345489379623865318280777716691740958695196374019266621754875365183396254469321606211805336392036802906168956316546387471579412293423360098395836336305298644914021404444181396358409599924811329482533136212920523100989832279790370101241425440803958544871565610576971722008790031642410286032712612917551016646582605762585740216651660979476831904535186169367240465539393500464065676781026929573568418836261577685586938160209583924846259461126892648477813914959574438107199650126608926586158305108434899844928001449660597544734937790781096353236810957345133603823739096555873284735597964128865155989392803367887100784266668021655021347937666002729684045761865732454267583420035905851529505060889491152187891228408143105109500336793757079166073013237282690565894053161470266112149887711135422544502347315796315709839494466794308963621832033315944049623712858451334892805647291611865037645782888970836972078582894711820888166227307764497464059156279675672170764036094503728828033574822771437002644847026232103229821117794928390039793517933441088145825152709014554602699878648662589851667624689627463007013554891860536890453718013767018839820221489597890690730443711988325727333661237411294900051496445005428390325073885199397582208333705729610157286782338535552392541007475421488057039196625342649651030348958526187709421807751776148477237469688854359964355147457721167492711573631654235056396879827777090134501584895525656196555566933692175109023434215544842797119184412856900676242863093429010360979447983795877123590824609667554532562090184789830998196878893016893620833033089433560517427621396017761814280677887500719005363573224684883384356219798718480673140877738100494743407983477993772626155493565655822270618747200963354378515979224987772918729369653380699348529595769573120133788130739971845120215976692964833230633439770393051600367606742587476649808263146692773573161184606610817971762574617421625726034242647897564362445726773419832317751139722605837408988223015505345132115740797616893168743055489904999921934250119193581313670004311548193535622674765816334942654240017993650401887395621697575504924868718942552270409673427706495829365269667955819104186232324170669103766310744594456665311956347281997979890954937035020630538672964831708200614386569582764469233391588908288509799578272107770507522757556242269774502033548193875835677982989099639170629507840400380560044259145061742607362373157153946842690916130107333940125338888163623027184662022335270427652920026745728599620192202065070751504797265448266005157983573534514267628061258378096529529449190847389213415028457357472849452593250542251283647144207525504304321754436300176436870989759251135247246772906033015293988429618702781824550700500809897220156316494028842498481135519018060011223087745749079816771970321216784719570197080301712184959355329607188772192088576657229053578957028307296643310314025714722510235130630675172325365063164555499964334532536532590549478090362338136280615964331025282244995542154711391945939152598816576491487410979873865024932786262040506903311931038456141956730213068249774852789429905951134236082702580236926297357716268000558174909182768184088640813631265931158258813041886377037505020388391928558854422047807504680741292782892232787353551259923879921846574255279270717613525448379310944814403534476334156293685284708026541247705095014522765520437579376211109608853836329547163884597073155813243680250648827186468675414218932654403230610969227596859010766880005043403610216229279678620030158531753979806464783345283911463873406032806698668213555006115364588616102354013369612621544945511509584360686126374489240868865803853371248482158047624715323963169311496442294526893836297449485618995802951364006931902766484929624129226898949403230179874126473357798848645211131570980336945945783971644402833667885399039470496752431567626696163362148868440308499607968106755947043422474896351278630973823845043836345023786253768461835964374483538113729286976996887698956761441148901064511568011035872702924480699136816304726464384839137036889833256186664061230746455043143337793747539044102214392044414435351105868192670459372377860468880154424602370683873056444038816555099680633770535802212978363436442157471147291170573758694002281479809620552592098140193476386540018726610344204895284143608018446764294093621284620660723334481275377655833345164956418388487534641244351654553595256455476711934522096303784504932169772846760994334027817801312366973706615017115645088407334170467513543833723537069204286800625496113552621508249955352888352840461621767707689554097161858585879257542940263582413335379080989133137772039048487554931687430975449378695259579607349428694953090125340979343476929624453177891454651643254485378501245027776551212281155806430610353262270612624006235856051304202844895410608271159351825230530255559847048731618393921178243652939843192547363957309382017145250236543360883208757243008081453136988068450047395945704160732178315342891998041129331256172511393119403182360128218760191963176338187476297457166233768974146308468143469295818041228615955318900317174919254235852846308882981220038068524195115246043014472725449552651534783239661932002314543585660129595168433649242276121461374694474715857071708098837817465996027570173081986692532932915304554040527085789713300917052519743790519971269003944271291953574431706677218535095212382211455081492010440497166458032679710211739571190176920025460902278550129469011304998954417778853870416751545010954766609211692980139935407230759748727171249975298823470881147508218429044005062225546380106592061947692039192994633712751467574561916722967651663937221527855417115659354648690907995527984257296040100198029357142724975460295309616820917444234860105622064650508633930400230793796862257228060800788134214369963790559832039207898100870940661710680596499597488478896470760241825002562645176748615177191452559147603246132413683287850682240062253588431644757766564737096336994404948168537359876335951215532385381016733444865258030304228393205679944319602413011753802988831055731600340189557531320881628977483758650180402728691226470099634899243543664578214253554231179895922933568229614688492115145080099643659014146619593129446592173746779497349644419362859769114418776420058726479964464903103991802943803633232078758499150740130678522542266906021819437820899185494582128269043802216678920457642543215626968573100329385958913293173665236600318581788142904103110434178430771493667484519203067457874164562171801574003669377052166789786669712957527210631924646062548704313090337301319606705306971748956754503544158137749877388714878040579658905813564896817204364172202020212865425363334946300154487165524619255931082945075557542169633688040914714674989134466377058549127539662164521717584782409685159076870059014954078731271808763343660880971537621695243389543673268626551330190225529530247057586732928702513688107577062471457265606179079045710543797000933339117206508605562145049586202627790288966526874455778432413487351489040516566284298636952800349001957703306377663052200549018266284819609455990366227311232074894040146168993274030278748889184503831775139546306080237360103141692528797780856156927053731303057692718665943146468137989024341798975055608881064021251700419872389990617478704199594675349063225345995437854795235160131032405331948994483625522611741503295359650749520702286536736260723967029043545229977323513196329953339417773822598429985642644408110622461352908027203609274238864626330406199331976632403082428727838992992612844853300260766699557429436927847009746352050271596899049640095973535149359081194616516175343974737036902007234672669099158501904436703813105716036661477932373876667941645429084922804734600727185810111329886497579969528903925119926771093517821553750197731204080846042520945351871163892346760891808039847084255954784929745113887250605145594226579120039886301616303983125022988485890162486066609614640037703475536191261661180559487985706118969891965769410576133903696188780841788303951582457680251555385494293839745489100334418551919969646320966800732826781528907849747696548557789066138697797764217957225855998826373466404358602218316119101804882137631935465004928583283061674185027774312796469879008570990984345506627511640701680791144419014776002853454197711786770479677926692591531488832615530312091446785064085786447103521397406577673202148015970342913648107812094005716792842562961033678804913401035349384297741669566646519695852708809929290430985022520531621016252212406787570319307712541105405357818142679919582757629572961175809356242156977671249265291665156034082201339756601724563331426414089015590029483117560715830938233574440838349412350243531016118718174456008573878467916874902839639270460699552303394153813284405459184165441138055990144372728782766403269521238682853816388348801250969755284437578561114608845337066593835368403682136464350940360444247222920417649829657238506726542853352259900073755189115664469514167274145706555882197138946603964462389910448647447516751986333319023194111949534777822872466318748289665187910060013911181720255133611428303131139407992837481461065425813528060043306225415336025177177525445014596915581130750208637080522887889408810625991765388723250069252110327507830834761784189265951858654903303347097657018438294463008897275272155207292383810867623111507180292110623740498705240325957452801019373609298130593007458740071823421597977005155260031938706645239827420028022206404756918862575840012022800868541929890413210925956491627232470375099771510434816974105478674235024157105906640022631076889196103763000194757817666503371318973079608860587013899409906766756174714885020730897667425894000211275679823072788947219405724674491617131794469368801090768097412731352917147048116691497793931869210796690795423588987875107195375584919292224476278000881259491069830514748057630492838197836890052539361198849077248249669741483112329530573309103116683895697160590052796142028895379210826875743220765276592737097015542440832210183158927578385646449329438749973479505154085254036719348967960229947079019183461189794098142871286979115694007687613802221375094855499263815890017576597058897380359663611647294929938746678784992998519987610297140636164886388429974291474971278320364223676008348710673631088607079105900731756611570015338315960078054051392617968526786314805444746424238620513823216089429391774467131300789984397886554159482609522450947274010919574945621187251794435341637948292605873819078303502399981114407953473188132618618534266323635990822828056758194817897856336531650714156591573695955179294170002179103640682036713606711494544645376859512961629174094036245128360578286180617889034604104075851531909313032338280260350450584434880810245645338632397280389954454225608505132573678080054155352922203928190952436727131526556124446551721307093053620141023530892474950157845367630907646911258568045520321417439580853827740355974149654055397731272882609225619099681219492212781198795356494423185658061799180457370174719478342301770890569624925701822061284140481736817706751715864282922851538994072153208940509300148237627567792834715782407921944258880074241583130429083488119869687510593289886731650781660885830225524798694509981589743008703166561353679561575874563550138560967015667925880346447007675169273378916776041306421112115844524943450007665717082078516107163910123493903063625380692045207934834180413195913539875904016824112357837549794908245341431481173570502681828980424851986392782602808308261501470908416422953020657051905081777461662683938601596822966829726970662850570926300282994566046952200479503867845632093596495745814180189449085563978760897184061345743617178327812412196687384298501606281078494904663502506742297621872737279060710302575032274102857459229992659498333180058314683425565138721695140520299794059971197101188772388838054005473835339904138166308596388678113381599407910986087346436515485317110644413418743057366582775413900020757830052964256193699582667225678027423313252792112574646563402663257946649917696910744280851678596516664790067657527836589837704998234616266170136734379443192192798687267490364498253125304225356484081998304381671641304915376151971971918445914913021499241356524530609927129346466650027114294911084677203410790436232650693820832897873429362197207002484694466660895480491729131812838556667187293261733618040975110499766550343411560644997756838831071418143920737311936668348426154044830135618817795338691167490884448070793291249081388461739928252378910508577413222810161684978355319828130428749919370111816456897639006126877186536096549141134314078020665374170563728541986992754108918851968284335995163859568718174133008993272852971100663940910447863690386448831834981698031624251956117189947392735948514273299874657202622291624550958704311193142348217078899866147100461121661992312456031832967948665228615813260979911623001894515712454067472119790136479707063635600437151255594576645296012372886779890327666867528771916132037704514786413789267826006395584529416778017148051073375687968304650958014893578469890244037926143757654784507336589369964795186810964360155979493707917149864242264854644500055970118479553510233454319287036540194164388824631035763472056558043792666956983566823386507994310404850499536059719792819502455527712742983372501420692598309151775821101082397069862101740770010737923421685513239167069334540807553155318894870257424986189758933250308343347556167566252508185240563957678071240744198458327415930120474070295758417394126861951069866178269425876652625671459151974285534962526088309905496674000489184715856236437144285714650480467349344610983828342207941098518860265664494661277948564057002335223502981565685704461034788787199726005958191222613272868599301973445865201126042353333276736914277959829715641311045489370536538963188749466773596042855113642686883329089531608412603849380283260529515010166347177410284581072987794581489695849931439591111348327849502428307711543350891864920074780771278814333802305377967069278385670176027438851664082464657087455279535715153417346489973750865726733115581707047452625939291282972653103039281634505677925338992347721122008254101804678174144410453053015614965357514554935483272803778369272887574038541447005989664012211910980234152529077305212105901046444919718428942389242487278173137194216144120911990325339577895866960967481820320665774410263091410420590728127808094659273514869648063194914135245306403061170436502549082918287320861239720986577636697785596938573777564223010300666728538682414272142671973956034717494633533408333259486166932355476878700179200814046228552782272530427754325065935765922237843533712529926677770302087865126017047927819440721042709750868962125072225128827438268598281925441733543775890630066566447755259651214832585825112382123037054090906045797178602772491005746026583704640363651556286438928446846659843909753949013206064613294054382901279113578869792739788469734614180041399713449385451853334543641243873303709263335585835880646311971934045756305071118772739574429864156581845600254325692871518723294175722411553487949097352401506094045235822824089890767974969424267408159248442472582650708354606706417182161808370570237605017152076012437438780350860683842825404282311175518764032331592110321507741278412170479484974963444900342447027802613986476973461797108493591133379177061756706021769873778046912753322510759567659581618756778990816034643600379708009618493161712772724513438110295454802189278370173756975114601252867269905910832681911093544904095322861040787516428241545550569458045308847877513242724943782665792283734463676990392845497474548245213599347534213104131324437406944794525573152611852405557246621077016646624521353779835102307407378824549616691282761566506375501659243396143009796898060920829904789925798416205248054480054112997329771844457159026003730555787477899259512285433049463238010507074038580512018369156634040337546496353953642316484842960733583349931040902518035448888014814947912094208037156472358781176035142813006393451178543166946352383879176579393853542686460301769185528078234382892372126431734505541812389434371020766813645136344164654719236968386121786526158846554414585751664479487896990355177664499494672051255815836842777275020311746695606020168789559263157477689898673426269310309353628805547171273649798325363083960435666070801575378621540957666897802689783379242380294758784726511704122833660179348177866561290498666611007384178024884852775304379927578317017796116516265430348320266981685555154579297931967688447891991259962390291823651023284992204735404338475141934852652375369036792890332306266698371229892067038973575424657911762277469360721376099416757423386648533888909819871377821490630636609117044286905461863066453487027130255821965223625892096378710621665763187267532473717801782791854265150125433669807202273274835516883993204132473987255807314854323604508782603796486406313778754662584851362265616544328668800070503508899244700665616613110324816674601240097572165810461100087423014544597711796913939949867861331162560538945255613780817182310426224453725253154914178642194689606443072774742688900137299814710175179377778878884442060511457977558276261722597413528400707545074068672519908451677031506598299147607397050657920053369151834663014818119909600160205183005877681537324787088218574110341184894054689013414007841237120872543580268714866269906437936578890136971279437849414549235918443761480554578100043331042029853385362672417230466759873628330781354129789213172237491698435913450139870240793994302059720402171105283130344665358215974726752576643551380712289001494638697122344982567281615436196023447383984756592437211801149669407314922409210194456015523090243791557225344943066552627431144056721903123901172627319892311010164861168294632046637687422610447566501976346102421482561716577595701368498103906205112470532696833880679911563342811263952555490849232678033933743860458587602713462808089112796104526155892459266246190117091210033350069280354110839087488943540968888452472825492529443019553058229439213530322981092561696095404239294246683888646598455321950545863310558423592779081865659671854772535267793143760831991471708127002110879672579588247219459531484043395307080407619739089052415226178306626057143401724363896884213490868219717432596425815075112657124248363838965784870483467267001080609944774641268183123725469954696134681814807668325271063481596617136653597414973358672028931750636539207029644396490138884204526808079962261589511207336086801938027748809229229264420122272432767405242489554465745175989705651107034602069395655253639618698350722256718002272108853371797990666824365847801439537377194224136936090676994423840953980590080305612648914879434333728738070910407906123378048164957937526241387387251462573961573876246327690552200079977958906935186417881808189550891158280446904724062988826573547418588970974940091254932776608561003049956504667181038337048030087214120150062932095411853422413911355188885925120336649120474430032755673651481883060770364576402385230797222918770728509235965054172086263563995640709715338920561701620808096582115950332767239648751994770728655308175044377165143569585000726943860044221417699828319764767431244513293937845290999251561367310886443246508266366392986672425417777823013458396948387820156767711176162084145451819390316106521476397219844531164764129175984388719959884988476914477703572026329237576505347976010243448116097073373705450893636306237035069374034142481355773825939474965024498902222316218324496422593996307250086916185859859130455930760513035602524958582621442164907399133647489357703517217288448846088083079674584287085905564630211707604358866091171792514873187276835419126454302351833953772684898311710535130298559157429549426313473162613173673276879251282468210593517262154483857217119511794001592249631594882661322341802710686854574919437262370384656795329835316402873309595882134727358514997499248121455902137133331646969399989985429160770759357131596832184989223811028992801292815797680139666667664088727828756056072300434835251769064912819485230769245781599877921293063549710694001903893963744562795953263831183467232962624544818284700539812617961400438789067150714551246799571080442298723965762335646417238328658946114805849831748166324633022995729408005663876690482912589026012349088171594892122226286417394837326048188338264839731570515716194726585602214435148912038304139560265436461401904296299199232708140993355535918619684411048301739015886722164554302196039266642773294318205517297674849747932827080415982916605696806931845852989962620588418610425675252925673295839088078213057614359263943470086394943032820333550391853739142438460343945059541984400370455709799715210364532451339087599377275761750148192233706755015619484450656303668773339666674706148827195707490790691692859800547404892242068466398530301351657458637162192717960323412395238516404919459988783454485940392459602419505112512695047324144641014886004874849105463865474715344896081462213665915439180165948906677002455947114435411705898461928784454223188373150236158760706468476877195072933438014049174109488595366726531906995613782217086189029474219321949331074886051523814136755410712875999241003780588934843611352252518242526369568912787414111189399052688726776186779700854233952685961268881103184009501157514162617230289285760369759319183913638045124823309115559202707945147027985907931324792562555337223481887449221591349630972860617356243661302706655015705073122497341793928833852512255041275013771384733094832437407804922540836925901122898510389335828372051480333081095139710879542582353094960340335980469664264053779105308019392310824849822135361131571912087972625205809759611317500841061031876178116097854057840316641314271630130987500425734117656351211833891829642941543168352309796268995665063859285824243575147808942103999111810941483273092450327855798505773204721705069393007110744418402475299872363999026750883009092884600177545612841236483531137506984093524067887750905045641114526776675492474773779941857434888594891946397696812673582734993510602975763704347761311946609774685141462418646262778239849326949641556123473622063540019061436448376880881390470711171318832530339474344536020617936307878618260291388533743351163415322233979881958719602424371959386802068074309342291828853858560682801723478846998199998566178397555196811869213598164676256676151201799821657443687955699948099819701275941351174724877861762460928717024666442912088764103522817328434351821504336492707140700367127467958502497137491494812411178726695671736247491731679583952860162322223154381451393344724359443997882395234280083861653685512121888224101453330297942818459033864110533084531872902466380150685771492549873473031203244017941751460694738630213952454270619762815879793800945322159996334353025509265398673446817366642601044167735631923612994567263832440737876794038402546283262962776514564294840608341763973163605906530237830683493813785131315141514056829066272391744134819517803388728885213046406715630433230975948818291870479288187481636384106898383293110801204250399623468455316174903045536990663190268164184265361230746487913259082873755370276263746939661278529780049865010169701547868313904145245047301261489862282918688653821705333723584325837843133100280515930365076660727166788671671050866550465240444439934307208594103405888433892800694871245948771497703459254164553657208712888615040197796475882142995044502276792055330169440441433228928928415113542501028994468750870935064898691198106563365205528447073415675481904690882256493536902623558673897593090533291448373538840700984264059360385818990253817364609035709636450190162672315564968944376000332614646652505696261214623990070959416617407945352586669875494890880743256104604608851678268351573789865661452110896785899016841868586842940411236854426445666023083836088283685421975668181558817141944961550530354285999050811776372496761875310254124504701285227875699735683322093710646241894308710301599521170792919906439620471552490814865400915953495016181808390766012866731730541592584358292700642758734268982179946400904033777814353958343304462280955052422632875004206702228553873921500608276212406259351889572961546495120243459199242714975041577540359574914112470350174902219057959375645141020028458986078931640579149676937695398780424491227011424480475502554158521337172458438110774150313844069632684974316343863825377318784609759711710220023444883073000868222951879247879090603510145438418256686143281459203090918678295217149534933102322784818391826922069652878008141029627128644839581737352288928203889250793065043373397842207974962462922070435249989021511784026866811768874774169604272457074150616394290331642903197869882897543113933390894340737784353725407661124881459552547814082766919925318117103177381813653341579490955229644106490837549706967415518381072771136929322330280108733037156857325284290342327348748020679677377890575644751179535696622499800895188705884987832602990307899847233054062786744492149316479471695444359926866800107907557806991172716895873273841830853112719397510762312978087699560713868792794669946217771472105818162288153756336589761639005491066696997560033843990369581309245289577094667314813644976624249026058641570080093460400918657711652471759853331408346469872715836512399321003039460871766414763368083581063915083851416266802892713711394430625132753885465822653768151751998619479036273123391255387895588943585764287805361138420693504035292343163143553412244230450769094382777493985184059049062698353294934777929063073212193102423522727575879922832521214604282791567635012708719145871849271833729357590693729853427487039687147959691838642922570547914261035212043196240192684283985418728454899944840924882508465095020381404359048242867568700606558275454362536733775549823775255018440536790461637880130136538475518429598205327440867876540464764558082089036357631118090090226065019942413049777425916565444965689495297548168001705646257025148611518217587025060158416537781973571403820623241660125218367975566726329138880213184671302803532594213801971734091346939512588528420403249237819785875042330035440680899192574625600981861368886004048658680251457083544629245854667866122098433582929887300763801939738448423896809304203330184292895959887559571069455888976733392640093855213220087459951686983558790904691904667113917145581941312195456833771415182623792295459795054508510689614892507600017060246795859733802868100314973279190490985850354623588378827665703210595168466787116448563379208172405071465588833720890020921407793891910317675918039270528689736054083644501807441181804618802375288888905908690778699196354824388949164746520487287136038219965844390033697166931426130757177424833735155570551916320012294413196276970937040788692115402615152392302118734403143130014006905068706357710192857867293388213226620652938222237002107633564992240798147615535350415520760397600371615418764886067208948364482826927177225916453819951810291036405091198699179274205940096920322069268154536413331842304023146318543780051779340957282488488135168625775915968800397297544481977080495923471414682589314399778421638552335223658173628419166811981916216600869678997397768502156199016961101791888763466114415093074811654253035397346807801082162564496718667898861896865590994267801553712538808097749497463257756110686378726115408228575574347656492323489897194489349740060146009531135267490918580612060172282596755195266456992868987661118233894683601302257990340119302888067768614545645026013480223760784239062148571024182713926017996591560503089818809922994790154175622205178200461670233197885007881913550929111219029367942541324828440276067859709627417584373486665482496460802356841117908160361324987743345220051492977326216181464884974654532829741923053130753563421362424115343726170093078364312342656802940941324381248042351642305287350103561152402292712884863908968247288500319115697238793461527144446664556467455687661301191158096145551987856366212517266707200704498255361444150379861423543124835350007014251911792234785101047203238614561094094303355752251964701460684034440782160280576142794257283439477849150320336288165189684356548581697219625969170873981198436478616122784140432767113965635899193839095642062706624840624511235721630794456622076289234846143504998967568064776906616747819470504287162480044628935396839474752069991826410989954147975583194769379528434075559017095591091234073179341860709524255686741943232145513035720633081947781018818442653618624356492707088245557275787700760817095778071671004340535972308749305824550846472211207905954905950803635789669835290454465882057270928031082438787134517786254607211155606669471723643118941511711385264087977858986197206538807801271560252558663846480740426482167092896850015534261898820249751846470123331049782487738353632196131330869415420088525045424865658499514197046417821542317115656853050065754266991723590251148311168294159731010855761800595259627460825258765147999978076734695681900952970128311169579703919664203410864516937184797768641290970942652830084899998635491436376457995594733453799912333976904705967459029297053357826024945039713772317945820116166084231252197662401452662077121616041250715149620424753693170071869881864018008629926856702686980042585232692805186845138279390609103000994003934820394305209597300745313527576672944450466751190494517983248688159167735134809486755831168345520580095017394466576466239898265133202089924906446842121438346077297233404910387110742769005164148646711082209223184616134418339721390700445027435864214650006023407167371439588351044918014229903544215808529139051718741397036321849242457187188392817543751259401430749431126015104454621910840226652203896619118989495991081699552946477357412372788730250844038222819626597081484065303289728428815969434937971953596195665210040720673463378890432288187504970716941392497622432936864685755371744054865216962836809086874326667193601158661598156358736698153385437469412673759892203413533067187237883048330622624835166732471974606577683903085614702747060226272249302958030002970696761940745649102127158379401435126986956303467959821053318751207172032513008693376739543984424626617848840835499545470163266847645057506506148291572823985497443343380409163007475225954113937963455837525478030946168957641989359102529108577457006474183847985462077800303758060014065302095747169054904658571580470444111653183987792901243263007445473667934688729168408417709754914996307569271658724752652825338184385384354938229508506850251889920113249363461545085799442176167688712719275410844423838641289634281631188216026794553291254831571642423700011334901984512697340312499209452817742536479219913345685115966048652363081704259630405334518837363550623110463595363175106985649712409624854443486807805452173146207104761387465795572374626950498113048955185186156791382197583758162731920774360266508781663363349301756185979133079619037834767313608209124464840462286146880133802217684982469913300971712256334616023000887872304930994616815824198558254395470307401043518421036615094538380621134728291607806798375728633285860120510288240709824388648663162084996796040812205251505865363927493910523492522774845168936015476833377829822539603829346191198770599738566964950883280662068668545804886142934285650614327563227612430512684519396888587380515112286093054328512112594322501899646740141537884838303474424564095301712952590026424153324308012435386997145582917621688523710236932460189987909656241173082964653618663565363942659279257500017186620480091465720714654754948691176176177022793145906661623647472040587167341514934990238393325060851733811686229025022754621066409305211224210452047489863276886397639505112078121866973247373554733785035790710665627807245557016315671183768874032691978352278505781159770300884984851466659979972959670988943525746828206386396348503850432892976721289096123535309257539100681569159381283742077663471376863600645202183191860939708906037012641252097936594346171027773156739253990253230990181605304901429498303444346669177048218981628609971289039700339661469536071496880735767120124085471672193460411540030740215038324867783264347472684691034146841957201892500073829412995091445597558875459948719403817175796051590087470582974277615684441357961044665288849853386773442740183487611200918774844190754260831451822694140837475136595126462818626749055644674236173348373044654307233878780185530730684394123019417636188880632003970266964972142160056660815332110537681552490774229557421574590236598658813425126348603370529787446654561997901471180712730626406098277992834245123443398790287267553426090656828851521556475232198218974027167961379497390401411381404754915961293842617668802042980024136190606637164214924575562629324136720216386868903802622570792404062203490482615518388758823443912562630341743319433244776549206352021732058324346517792355478339344065974558970677165182923788738683531703230169915693736790050153815810583859822348086333233757795385872621557734246475014324109675957095270528548525379809557391936609568981995198999263323691857179577567366227528769185299462419280245759297790870310581508314344556495502464958134925973813273625155440396921122954589879477683819998763659255788393976632859850031151797256423235011846599882905429299661379627926081371798210324433125183475294374462011896525591846392135536570117420513566690295279742643991379208624209053420643877565691018728352794347758769567810847622622156562681015298717165917142277087303525016465231192243887340223365130335699161631368020714460992325310291826643622149679602262872001392222561035068876209885461092484861387209006199055167272771412826237159678410182083570140062291539397135262838893715839414671854484029015237760140553741155580288821215529174082687055057342987686593920460253650012260354832633440265878075490684173290675166998346932122851134197137413456538236196930373218376717287928287569365600839687057267663953342715308568966736944801274763403677631640935102077904240245738122918645981000160810894848024903447543856756655079043910522553278954128367292772946036972738097334574536315891873075989956328051063830539663237829226573631100310627984172448082907474197207871426044421600754676242100714465145984756372542234026922324747062225546908915336894709234629744621718074686418398769759251872890631766659985686254426516583180190427413953308657865094212122259196131168726942202555228010720952628438811628216682651410120584577834270287541318323935234516110574943328543294447734785573046172741899987416852977701932923568530662064460064426573044138597717076019157392465068249200460110861074823446082057883658309023782084005638361736206335668039574742221187208649665815645193476428489554426305364838360094086350432719764976497779327477522518739180977106530308674321555363308310969612337946239398760147391539134956084252757680600645990702134401622044487215802054061863316570766835277400979463430413357042293160023638660851316140370770233900350873357840018974929024013551935181385079871587345741266269446464409441470358322246405487469676308376424250731682720459461117918465710812728486541168723527231055849589547942471390196015996676671907033154779981045396550761795062486313826385181782981162846406325661024218575541316404739607464424078514732427228937242036756341436845735052409154380450710373233867824650799482741133793641262106871983285677809894976786037436871094061717992046699183193301868267239546623858095706517569358180895889027492665283103096753868943491506432216008869507852820316134612856795590135347691763032301259372326637307525800046145688171855480457327463160690436682949710909231757409486576138073519744011850993410564621572571908414600074020775124365519092047683481175319469378198292255042703627859533987460462563695283157641260064642755239751095696619340128366812075778608530301986922454757602771924720286782385302725569401867777762854628037183784386257369452249826138807063536301854123688202761084055057476419626269105844429937762918043004435366011438572378949706893909677670914063002656000314876170454615980568253279989447450507305841351786645458723062814452558204911020341449844086026285455245135444583958439478460419321176034761206678661236086904383127376277234010669357130545854505600674928394210293461418680229901767130602601870559817914094233124123183615009870708046461848770638590962930372287585794082680735368969568668098320026985432216081983930818398887048943185757310916992250297614573892083109243988662549518413354541308499373420485674498931538483434613514081501510873573303747486549175351818613235679371522691432161804354031122998578749196474619499966766307069239949872173872175445531307439658769825135432347180646571348479101469922375543267509442538240018392398422834539629608751991046026606879047413916783846018604792590847651551039663308986874171035837359326713567783570100907740219086590472429535446904234803549046041346850017221361531212569074684049745746359258177412585404985044968461135989207334499587594982007053052039582357297071077552241473633811793105077650957676545127796139012773855887953126663709263988523519735409286427041706629839561982023314212262952939687154416401124398418826605183735476794791478873467535899343520267230247383845028997704478951146656977954883477584879173452844573691675762894365074310445890300839932872058620469627230110887259614678949483198555000189747887056482211991691065485185810103038453149879026181919758438077937672966504756520522164975044572060270085238197379336212060389864434609354192789437316354527956386217693501675465501363622470252609088893876465343767165099669339352376730995173840302892126742866220299246734947107009650026199803743726645324205817813857852082637597419946847932909384800680076361018777304977364859167095834859677882410642974222054902084357365009627178649428056236995024645330223749608650728360409117630554797862136866890254667837296328333880933072432139333616740821318210384088165533437120882613008102157378493423767245392579842097366370403760845896733612669099562722344524462343840642879246172246798380939526022822971131634074598965180171441690534669454737272111865611287924148497977937988510899900020878965860723986549290451672429111393299915356206228177271927771884544474684957314076253373413038970068225722920802285509439508952842035530585412564257831824480806194511434698858463496370074248471236802650447813037962616106699659091638666738506850517314056006347515963875907725851944444372909188087386381075612128233826091688500289542118371448105742495743998449289920973468803461075090467443453428186531761470778335510645015462695009956032567957171417827876389775584477352278972360424942458859019690260879686207023787542843982085668405930390168216477312591358881249858420710606228918151195866391701565203512564456566313282732121003647275996554174984553713031652853930029451404981428122806970410413185284132164491179562558938652721089929015163137233114076501773372641054676299728745817305280697733342284511362108115782484609019035053720214349755657315228112583558294754000451741064231519957006674249918523438618747264362941337874480723061728092578220807089102958580974552652130514829721013882970692447630116562439779662055388397004142789119417273227209498389473184414195693869351571919113059857913079063878277985559289548131245291355070617806735476130426680566300756184705210494981778209539505325151748425928211606228342940111670328797418361270276966059503570987576908019259677261636995932164962176612676811511695368757762027991314857656617161319539861800074492506350505625938836221132912281275006688924872168931087330270663714306750420647865200365492477769849884447543667145146704510776798700411501385195241792919229427885355477036502003805926316865168418734109127844682998816076250433483405642798317014368919597188820633840329392762239369538827485020905866168395915938846589428132897495638262298850910847312491340375983763685365321670601918827700214203163751801041441866693698416265625202887227302953376240525886164396487689971162359374394098474437858992792809068611543404890067742977789187573323455623209439085138690523363932349291561721465143928646347124574761856454687193062376635338668322696898720591508129849186923603860366396906505797516169936251918938046077680916324040912615225711446274151105465638836614745098264824239916154081924022245925378080498014204294552871301009637564986656906647742818726892550995601930822032936751641982313787019221665525067832427769950466480473536773581046741063857311401703061782774946190626254353961475084045337125463445094900074878238208807055529075122139668812208066956493518186743626533942263232898978361199069260343979343386422940493824234807911707362483211084079354978876466999227644795836608334987836662232970542145921279101144608852212829911646690322793030302036092118503333400029159512689926508597997253472936306660107259975950617723571166549602068273857610774635317904167961837921690991524465751208874916342697811892772207964807444408198734159499551791678597986296469816489517439561698194817421551298728384695047562553005678526125815545737685964190764525950886670448227115249469789708964441205631073373637475779066580130082646431866974242269693243783476783255819365626243706018313728582524712538640732586612438817959546601873073091751773566692051307658358479000333463807369209003758547584816622521693393356617493221792290527035556445857803482857239413803630783592806883702871527823075478075682483044633513122259797166200093106885616505914954535059607466221871476779794108899413514835600772601907061118990640994857845017682065208209174405844304580490148328005871153107303335758804656149802138362808329390563870084080610772859009614262618084926732658594724561710713784939783406604478436184789602910196805830315206541184518139971331394660151891023689587390576249611792644911091447350752765167535113420359191656590294705351602463447833500757361412922417187124427391383004655673188574696843451947212592648478010261980669090083972398396300997951933262095603314962400567150879379158145583915273901207059658480798775343227539483293659497253730317414674098014738576764590722305371141052503150730911082430971777652520341005756875092370022704704122169457437331773695838697568668509476300639462498312447541061707136213369435104838171257389097761446259950739660948528213454499529287025940674711389706826697136136605929412118619441615865010551677430875246362450545433858126186108701550662623363491084317726579844122804343345112356006640259769288193591258004124914740114026615762140958001310185923903570925749703520787874707046830323011605301991082137052642627219511716948199527375976849653177748169066827519233570438069382636633085887014332167698358931133237682945834286191408766559056533806210997372064612224918852636648187505281900017115628322101862271777599622782018087141624143004046975320432075226700761287532884984646533756394664852142713700227647226271816315829328798382618989078890277918983941658390068237564234376438006995190426381872517671976015956658709263236026151175492118308847538862817346618669370150587891978388926553768463600213172933554715729148167343137295486611189889632070064667836442105092745133594716199402011120163634037351582542808550255920802721553300193601319000403429496785370903764040599240143255924254084449985817807530962765750437394428880938593022257680949985221075019440582695560078383114294951108503312874808124936268647178093836427865902069284416075375440954599423375260017035707899206208613355508166158484561207884646402922608143439418502972426814317382387499793092363964403212474003830018581643956117845064451227589959703304322197228012693884063006074620705919052926223696245544214599680272131649608473898064375293071736752863619278309335362840959150844982585202194564973491132392859588583297432461041652215610714339343585721254124807238182890720270251084958952324623311140932451587684247978168425073493721475278232069088287558633386594685786337816863275443551755180497992811011044143608363374067134426739960905527313664138269789552681573415123699412408679053618004740729648158685658330241576206481540248780876985073633197638354372117920142066445180972946387293352528188284142149316007670124843911745794845618449787541884741582517394877058279826427611877422965202460454762524776438526407216561227101892893711965828215644663559923196379890388201566480795029948832572851927116928422696430331542883425406881662619771259546466904385952418658978319415975687421563575953463305779214933220430055066249043866892278279046116088040850226276701083189885429857397404917469007863052244897948240431068358413325820018342533378978519566584842833284100211505611588304572151045289296433902589399265048479991529013098518208560066208274622589729679747427193580364657076458939247623352063648919765138324899395688747768337944276725762716569696580888893340785380733857119376205981013185121486585418431656117446466007414671621245468436925214147146747248169809830530052201234250421334297883650820795062486887128558276347280710850569315202070563934614569049385420374227419726342443832981769167524980513570394281824446073090568117773687768204811030210718611931532129121559630790633459482770869937132331471825706144104043930129388511051607041461221901302101195737130425628149700932935620482146714909692864717646000287889612881729099753505727887527760978227712625673065203855275614357756126645350406386346374086791130962112093408454795506753583115371995617907142268046159236243910004247182584397213355268022417747185806149087977254484732443283140768135599053508378218616518041150434558566263768837272609247621878489632541589092240986392441949389235901199069957562371381398070901760672610927601341196506836889105169086856182493124304456129415924332403599422373568178638788110112122136723977282618197561561574953233251152681534647835988113518961791426063464128148899274080228437589604396283149369790626420136776386225802987232370467830800666218388756348966753106840839096078541253173472634600773723604025094808523109846434759784861012258580248717510098914614085816485701691004222803772675842822277512919154024174644569567502222924743619079242575936953733701152130201984982063706168601731177510926113916400204209460096657053549640487366731604413855980501136145323602486193840973721771830385182816695833775165769859154689930918533134528052958705619118980194735263874824904815238375734881546744325107532643896190572755238244049037568757499194450066576115086376298715701383997311184906925408024046998216406674014997251269031559114683517463347780881430419316634166329360943426493311594902526890025172906399578427635921110233193348132443462266279040043639679608850771897655495912923207854342369367727109068740901252984243051036408949585526525013622552184908228243701405119370517022691745152557970011439532860823783707102814338943770683821541146827114830257559828828827089539298113784877858085219877886185876573000807189472780446375451389057079570896718055688694252055161015655244795944771118117926772090511332041475503178349819209114187092191187525422840951388548521307873399266916268554904895811221203804525916569089141184336327022713080162066615956055046074482272440826279658185698006322782068424735109987938174572209270992225077003357380257373289272848807400256238629487774693082337823090926448399576791917364847817558429166876521875882692142430478063806749797456775767200652728678963403859583233938895746469431238682637943334427935580556861075410746552585478822971105598806488284160977641236114763109726910363998330834230900739648862284271017987269981077997980039730210641580139796317590526292039824991020525995109317364856740430329669888013423146197212336148458127958529076142409400804610427441215696352449346108605006420359911238392176359009316527855938200433080918932906153421461662322226216684681323122785660015404525765839783728633302569082075241555547835438379234203244402366283987443329593998770795601592715775820003999427052625204365431241879995275622192371616822991122164757588202238052489146992129829759637038753131088058921031035445924488303869111914659652796702905954266510929781982167115403535228143100907459434556988857910452800942699456565272738226428903476917015200210909934338317961981882354141780549983828107330380071938714697593210346490894022405387888265044179073909070622152047296418360813759994388508273158596292823610092947876357631238394929197051359955184644294431058647201671796898772279222504942011050033626762873609759514641793785731995049259680111354827242796929247419638083278698213020937028294946883205935950516607633625168889963583911887493017215220950369208119362768006671889139369329315425112010446874959697141517005492224814771300934792022017876480233280457551608836091442339196194992646971237273892339240808990167467033240164287596285672935332673882503684111928334431077668195249059604959474988078029773352666058999134123438655211046610655921349658467951483575089016482752850042065886345206121182777242384400605577162812745549571685656770151920814367864490317658520992991294522219802925967207019190898756232817322938520851425919189763475065969990127179727956970719418127984785109560891135539339950497868136613731450587441198648482990420781085625774179855745198038327351173227130005432132884638684946003583944487196008666897583912809981123600395949255674555846245646043780741965748148012348911035076436267660853066402962106897900149217822711213007612549532672918338351599800584853161877007390350902332724601948423814014095012237255781892262813593382426588554171336124636872830669146870309306836230784912406073252850258234604641940635229292701685449332086037684371432481429995768921460163693708109956764584752435032871549629011618977162316873863855105568100971992239118332552671279310549664343738448019450263525660612161393468790970041420505997981809297922485108913490804250305364698172806189591340696391713939266514397526559530130038179535807115161832860834288335289790089040343591864573629965381881084714178933726619769858859232776099125576631913464542353326851192093416364473846249503257864451194893718543815843254653324038567031606882839833311910479901106064358930587214048455359613637263921757704104195727877331661745215089750904268841139056855431004671441927943256508678471921484745054276228941959847090220274397554624970807161359759316488067270692689505161878053128193481997914040353648745671094871946982871662767477538068310064010933137636150954673277451423841941824354491667771456371478185882950331296270526023192996868234951236868155341232388685670586808361981893289295813529945940477719155478669324290536295547019664642500221489101446890152863303357617851892412517270086101643991467743997340902023630274497097617398416480258211809407261530692619911072039444102506045485667198625569501275207118945371333285684439829532265744830716270807809994567343337849705372410483474186397853988354216677658244891193546983079601304538731340132910022667796431873154547568459861783311390609362565878406653714601770332259013477139909754877960362768139470272236435609632398242388837456561167457116835945694128308408792310978016780995367552338942802766405541314836519915233599090699406963147155838218720019376483131787038559526278225322082481184205595978729913170529601142028925126805138626520995271728708905699980040094327379447019093487503481222542607418962736290629932779014441819768268716014380977837865055332228234563674668977267531115518280753993206302287614779708329801533924948482463511707357621845846688247709958736549161976785891673754860475734749270549316237337374453152938809762959589793633161571274281470371726383182819798733354185085785660032368484424156365292775837161347443983040828779294621815059685662963839883923914947603742825885340996091117506647647186923630669551487630540385005128511109932772551735768661094936953234411918463275618610535661429095639467434447060155003292578552383074147753224312049267959212976358190813953307701011899693343082345070104178389366120175180218326843529031320422543806327824327117980763111408706627992211884164068825123036601468281775951835632819139173289975076850093178700198574188242757214256053819224506039478787051913952443992441590264063464418216152192406287217559964494211931917483605553810213234615729181488122839922974627865501734543832917468808769260077989568297976100945923062472587198225140919226320541432504747554540682284375077105754423917294676627913417052047327647991561903791821291994138965614289611276589353372110222605246396249539919031719916834696448832928305174881193931575508371247617273694513017531325053399170113471507847302474089712220709477987015210070658394527001617520727086509893937439295733812162454112843341632625281805899773043559791031931971390074352298991936712550127221065055537436497023031374273952253258135593597161840891013389288873476583146060846038971226980738807934440700752854337632377295472417027598116488006046504410602884852598755607148163362466458048802536048904347433745969603026429488001938634613464743620480776001232893687481682653617167642791143276669612788169155720454977100052763893920719758270777520971201599961070752519561960185214457609753229546169300076046032609730091717614255922018109448528275908297467373492841659006585170991978791537840655423411012254634848563448465312118689741006365852893068558466174302139428104283188406901254801223735780802276988694202563173498793049127580236519173002743960573360622729184583842354758858776362355679997505771410026066077843497759494155176262391960471123023088422578926444232401574655220513288325559608007744931423238754367390242131784103829142704027233666855669127912792019534769248866343593668988040526616170274039654894160090525582808197542845926144974679114592359356502169801275995736946653059730633176898816358485730940112941465108267130894246919217017572538236041983312138281536911486626787130460896477254053396182002816812925919442351883107515542723364869063570418823865381453990962818837522055354303348511527946651641106660390009742731127221921122079756053659892837734967215230224788909128122721452131846674755943908187241782510458436069571639323062087990210502866563475565561014057191821381567592056416800847881499753622047694525140556799126696320028579204497752355381407591537693137615941108142731510695826395193318548196670179045969537979670285775678196379201617454382443288424405123361172887348056545582361425654391145297645313638176417708980103179545521918236140411778850009452934540063000805283497758647482905319381082355818349789877787044564355676218315727524584383486930393375073348022744592572101093866147632017336538695305913280600921987525919711451140200132402187035159509289378254118691977073645061615611466037074611452417107558199861777741080807457478404823592206962752681831075148252625356263888315204586548374641830655276237260708856104932037691809576891351745649417339589378319446186174209078760217316691377880230434940924266383282632101908241723963725374785294579884842421803567430788778040609109854179419512511638877150941387053305244223940546427391839344949827117005814408846294737129465857824785011250724752325281878800685880478702956829046852075144373845180836646076951972721545286139438080051894202910675370862124821318270425146582614315807666355452852819751181003613968268826513173898609200400542785292871037228968509388202917068764496114287687084543905286083218630523544826462091829482183392294553235438029433885670264432436796634938062352017550092358161100342774480544874016510601978379122661628311787609876678479625641825311904322026689363581925909693214170559440833452168995769458081379026366426493619248663809834519364302283129419775619298502610287906393023614625226852235642889982579210735063990123419204414402999725415907452237967035304119022043514348858785774513175676820637740127859012665480838766615708871160236991753403246324977525693418148753667640964474163523880191138451361093219552300772260053460022393602747275909027633465621428084056132476280572561573276132329952007436462915828497690837949232282499386029592435389136689678207400042297825746966923292777991317717686261391087069916126250195748029478406338498870799220856688109986580503057727035567420249790668584558337397309863102330983061187750875538858218421486012222504317976275885517467993338685195079968963945448498748606426847916954313248837287812397250719938034425767642464580713045644661314083734197007624010072689065739436517801920073923527616883370785968217554797293791212512058319783088397364913532566772453327351076255437745155875841353470423068230686538017606422754359328230716727076911865908521441358689370296836134896696738575825765561841725689751009812711269132674916595921222010404374946042391766474941717293583499167761031789929300635274341981742567105872634664289425924989097057922081081280822115584073731936494567671767640580670923361043269724951872099611266199679060259016936527683953755586345534488491135842106677832596645875362711606346973306692981298679670333388110643965714244520368696625761056847903917264646062362684774975194813207092469677382366434251281792276742952926831856624643647840337926624820652992134198363415459739550035268301101866928794268835514438122504404193099714080111151443647367771214577127207757358846791262102750863500746406784459630827618158537231972949880857783622912650974841599533161071033829221729041786698357502476664198003682292717060781628109100666516620296552610844862734046865552938729112393322127391669511080450319106613430676263947637741251192251737714551501774044562814028165220867641505555545582090548645573408571933937668412126103610898401203959620198065557847260215721456480868753116871365577599173552983456232177986271274851924243379967896850797717736457855652969464051415398950179065371821638586338517944065509964368915629035544072212183317997021797689451852350830211228262088781716701548956799087499464798867038778601789570680663174050078680926755610774682680618634394425165563762056089429026369321412307504361735278649643998167208090565699444845581070045687149371948186967640468097229855874750947427874411894424555247543816866602950055002642683911226247894646154756598983164815183034025876311589193632000263426494462598426034604287546489161783854746381997174160207151326394700374932396203437367444567809340723142541457856894479534447671821927422161331158672002077618056219122936108477124320985132062080532264922402739086901545647953530950569681204437737797061452397398112812978227328334276460316989366802479897492302524416957410391626205539410981972654800815955919477970749984585579938502705132714252078051822356324927265480116319644053975669699890532139159106686678888287276397325762225146664868380830605386115625419728594412068804164150933260909153313881018390683177550584727868471259874580973029635288113758949701274962554089823652665608145496674827373471535078766290754768964410336012914425050508739046039020166006257367212100651068904190007866815637859900081134851763721947148025565829757821198018862697023548722404579867211030388977021962773590800965935770284412265129059510163682574380788674206908017858803360285345256153572235162478327355265282724303829981835128329617903166056348437994665098184397637833197514546511791533849827154687481297491664644195917712263829515779840188301849239535496596756961326373727132545663422608631187455816876953047412214660910087134645452037363518510613076587622151507281323687022812615809450327503976225568065864472393876115956081673258725905558949690944319993434669486523227426893897171801021693740504601005129783131206410075683158468419799967660010563797480045147126362954365629538872090448429647444233492370826020232644900629445498122460156357590419433904742260818248148113508506511527143724892306845587481668709086535404896163810773965425383518968692110640489605298799986029419038085008796895075255619970131197561781871630920393901282120899599531299467237925200381921205579588879155868829276150999191456439721068112426754194170630700788138923139238076923250891858296957005207751319657303762228771587645282414351281048703704401923986141388304718125829559311100737511724941762602552010918039178730698922371559873802208641314283883581625223238493487990648324733262955724395159691264434039778501210996015500784664140724355194281152990821673459359251054931174280525469332651012624058483721193356459336019661710476040793707785952648222564707220406737268568242567338230064713995845528320927422901287191781415629602863820945564188990584500816655917426866152969194879032052061022409802374046050711448554001367704230886772143587903981581287740134462650923404551771558737409836545000983255850520998516929764909812432570095017751520944574050540140316692195186962166999141312033264619557510537282921069760896425056573815998004671793771205049528088825666918019411839955011140594011969057929248514433420801686672520235736738674355140096988352937884400093491621369428325071771219476739327043184518517300299088703047628050037941059410717428639461286203936913147543138455946553836928064631012145123091655745347781425717684422780399992839025804393325757405632485704734468829871009019087977979911812487224612624264544277111029953608196972302817921250240022616424244405105076519644276787474048843927145977245183609395081452199305066708472547313075951825672715252666432862611663792190019914962745809026972945054785145466479841620119440380552809370146158723108305173812383808406858379979859588119408347467341835162096468150684399858935222859507470083783249149102723089867865218140046480805071541604689354673264755073263724013185287867274679264218669050809798503021820581725451505938985278793918409159902555374660843992599476755147786895641869232726835685362349780146677284449899652962575824042187126990768503080885268755749269121066264925391229761684149841715458334038007058952784480337618525753033124726796651177905042859221205574145272498209624027276963555396441983947514380515778473986084418534157710915591931907239361678672659626294900293831784991743658330117394537590612886383183258175162673918022292255249594869128101379199106886128285086399698827099447900377918355768071250731874891482762929561886595068658690786186809189020447508543541227718240793185379121365602983179916781146528155579497922941510714299322219881067993158768005120566874937029976064036529949003374125257052162983813616212455962990446424507878281402624841948887870137108298489065292500682282411781478870427739767565918057108511428344022873695054422442175781407189346875032096934042210532715738712117220408581140794183402020852909646348401330036412291653151284772900993900815012007506241835688742576328972510015865509741809441702215660567038380541284753599323817194229578182647804646619007619495406854843513452489789037266243723922857870714466164551013783502794043701865047205171899454442768180812907767573693212418975565505173378422570224258321616988530664624950245417063510827108016541438305526975568245315749460231061849570406657315316215580625348120334731058425160371838109126837476660688000748152601995157876663560678836623328610590708133410205985227752500378037618804376741644220020950556200497680524737338246374681455741913678985455498128740026288082054094362811795035068270040961609864924524812670413583698397765732985026101887453255825809606989316259456712460589748599991025367252146256365502213673681814233788148977273576718636736064371195341827843595878415247292004924268402708526211711893056069633478080132958641082127314218079584043625678741190238179631802690806311787788330284998649830118045393977957379714770244161612006632241991906975632850506077474642178178393855923834478420706620327431244653231771061966837711675683158444786817873546901237393745665056790674738359342470278412917438149146108686507027516696011899907765652385858558120622880265710893493985829871784708670837981516882327295112621878426795803125968638127252660660284541927949347172289227240267269850343757544779210067607006954445197369209757646553647770357776840245200756766481459663871544456465160935979875556186488586414291287452747483185166005303898387082341561613570066684212025911421630924357369054345160281926562839934530814840849821838459319287650935154872404610024114537173977132565111717314311446934192290219478788936154002905625092336231083246647187070583175788713093792680545867625750377335243399134184398523452108018512635695288092313725251849973441272573213738474045723826399273234853585285354604501279461427663584403694508513480298204152467660421251575418154579141725386547938741198571657188957127687149698456946333676025830818357013290685771663960447619966719048486649634267116074472773750124731124416578302726215632733239978176210900129762309181606062804538080596949714164563354413379054049661678143523392083364059674902393833843071498229857891701635401304020948629095777370377992388029853058715795239596309246650679767516023567406979446647307567549993925307005817887151153752157984057772593867858394463492127779881271455054511344689999147030730335923481571055112929883487017829942309307711068817970848390701450987210943883479741366720568810911512413903159873501996632355253455877878762917015121930001896673873750737454470491649548487270988243478449489243948874151651899631428005042018339480348828806808705864048347342966800287131473212994480428316621401526940902709913801731902483260747954851142966097891718559246203200736581356183807444242964557995924069798948831819553500748421987552995039764959065855340271409094066361963318512759193041405130807281936002223036624113421785993308655732389318767301902131201548291151698199746113739683385193569440988965259696268445550223806911293442648505563507534341814323568459288211898931733064794253468390116459647292264003220569462674942565640711405726159619472732761600370419518258667327635561925666715984315681149097942122642595019858810621783829177334978191144746342075283195725515923741216858116144743657949069748958358236841628146127941630767566654029729748658666475849008657132364133804773576992563605077753793642722092970098082173215989239222494963576852693259092345091201143794446848361684775822307493669850139865077137629926346025993915137544467476213559069276552717556305996855406477064273856736951983378930878587115551615658850909463146898592193599887999227670330943976516396663064400020992966613186307849701511202225789193260783569356853753233736896661724613519511792387560308897604487527706575621345630776912246792047439569210819369914241419975784249958348802708761953368430911495762745964029449049975957112419707130126410672749010173963558055399885051400928625473993402585101355869097748454705821838440361041952646301494830366604080733943478386588719422823384232323690654174741064657156937356948756518139579033465881041638418144099800750886872174680492595844087013525808992611293234274970203005058870454220478694191507967913162724265042225126515525136457528305579349862977367145780823019584081500844270091940257537775270305190975341406092647074569728522800238182653482307540705568587404344235766263125256523536788262381673423087531857516451749229817955396058026859278459361846746331312450087809815255622641759356517945629997257991346305729171087988954303185336546964718142424605119855496369834479121252662187303890245872860888740930264218930365490985799563137392881871206147424303355765838974359749681065812960676185618414853709735774421381772589513804365465154380574965038888259392600029779030622157407541840219982262241066588932057892441798732937349605788578592131599659365081499951598192014850780333074568296092742285567575933666186117573176099233078951877513454547344964073614052173242760099842475236530536927390822158347218329181407088841385860786401296058865437330722535008520601734066546717948154793121021269697690295939382375705863842665186750157748126332134487196272965394571780148003526738851428501910304603671791212596037569485828768934375064059091383836390403419586834006785128509137979253926692988051099361438407653493432800661715146460854440097848860038997652634290558817947957773013629662203524576631082480209517293549191253026557095190371750801935231112594774753014779889258848062973184120536507200333395356847204889308351813672844796709570502597094669478602197315041697696449934068957053011849412151015465975767595362633747810439810683823120576564532796240340371963573199233730321605712368773233360732686756892816398368271650490921253594781634509561469846872766064261699197452759654030383963713276938283290836677890245450230440892108816158111013157273898170762979073669168845055050934932471855877875670379511778980980289958511402993057233722571407784824931513218867301072325258118645688667364032549084760099569530438654280080205568593681815911519696059405213531875977944592366457435028202641597232128320717898702785378588785558679724010221081690984295228747800832752370997180044398900353294628678300037862138087553580004198466669998940554332945922533579753964825281773468108537104008340236911096374192916289428764693738562090894479705764189903558866909870930339891253296312984490221912123102358121835696829322059742188644591821822250510628005192467713043273519062930511241397695542393458067843239478749085157763605633372502633609811193859625178093862010067819817467343975677248886041225921438270532981582662537578461732632580836365623433302598490955257610832143788232629208465345066000166012555382358821997449046753615379219025150755724719344776283561909649754462790347311198498492531423477967065357238833182795246946122809538958394307833939780221974959630580052732051000853841126346543602278176467842438048900796909810597082594301718776260302832913245411453755944322579523556620720040945262019273479214798553262390221460796750474732577204617692252763766835402176192502571457763231877792734564047155395588677174932908598578652498784372564323920192307140646973126653047818538297294510238904012598778182611296009054323902086835900521608797902066223560624542014989282933023368463122369169852878657003820598600618229250577282581708046226595153402108231360049767211393200590582011010524173887431260506528077934395678768419366512961106173505862997858294558313416366504760689629270358782854882966532835748876486455479720223632248515401685204958921990153546005766210005190997228147214909638737598579445529919118450354997419439370729502603038023158382413924312518406827905039780144464159125426874778986307078012407486391925803765515430944452294672488517704662219634715085310675195157594004294410128846511278679322557878586038199854070393871861391992138047428838257967385034402715806787438172864438696172063390844645152428626380125507923246656873557316139331696392554405799367433243591167654374171754609330768727034744459512290417521643924712495597128422905000200215276624741421380318887755793668054151663569713365043300709108297795516851765370708232231918618252626021371976967816500586263068060255835253258185786681172406071890099147742955760657598962570050362179004204752967549875868877502473811960718477422817442556327646307746640319267028880662869675913408958472112132063035654363832765710333289470403379020676764017648134551430119520494750496865041744169993351100750070164502503076258063259070933922013398535075081931196670899671327709020136342805387653669200382154726095893582374499038505059707450767928349179952018689666980473367879721266842649347598893408746105561652721764251539601197530194011144553777902689230966647860477459372800397751904188889612733471923029860478834127648152998385554174244598083430575014005551382797916557805945082292358988089084127067201946622291051397506112099057615867763274090749848302151586166126565340333735275989434104060651888427972656377001109083730916300966371051955305263053546139472874455626466424460726463128275711497883012179680990611904592732652244914975547006161481148285361079106831459129096604697307351260687374398697699629315947195591313744876161984428735190699484193804743641129029107535100834644767496116484311301986092167660028043223333510554419267168484172726811069131320181903002065872088128272304346162331073156895917938567014039167642469577631183513036009331739163827592556041894141875926974793500286989285109456017185946867630026029947527631293371072949673494644712404534563944843627243494628151520264461710173536455398261376398359162377115867994836653819382792947593994119147319614342717933333960301588719229215509242512913674341263119919890589548968098694496091216310811364802345984075398893034826769317523977872706031994624155334057025064209158192014180920620367617726326598909836280611133544058653236388082924228165390070960732905817674000762863550524436048706349098177059170020028150199276773129913503341797782023990761071722728076529870072227047007050266639611585516519023534253883572765031740159544351895785825072385031339394668824876305433738673239483389702318127520390996541936044417119023173181486153392197794703829413474627436672609384475074682996722564652877907930536908137440949269860821505563184971244741667887803999687742173336036071179248752496053468354939883863867664831287842140474917653008038542904554288865268611340009652113633615692307607702731128460648430929931484673042007364308349199268306703569920506491977492447486908784468294368845259542367458048192405858571948131506554110098044025929455579648874955801664138807081738548387044946347965045286337301538272078101040627391880905954652550268169714234520563044108736685960608866473654220132297465944863480153013373694304193769168191481867370911712650950454953967320975841298979315394601787386820179463559667404602625532266090590429437934705105259600221587163305660891222404090641804048741775348242671341993911379494730286115325863128877343154173722879604917205185506820045236971904801067091591096720115953577795134640562085021726686642967051800029289088959983147426414077416800866158981337646091288841005398939062466335284350970541283941104748312230089433685161066047498029002460491535493237673826201291834007379789537926599755759318057384316423199065696324500410841693023860919968828544417031552574685372551668547108145414372150101316041244223378667998053793319849299013542668681585326440253384344559670086510800665282553625217298252610631560649463717329622117323457171074859225242556131922663042528949601239711737193402432006033661760858000461901816863893806255145994440588678119848484222943536598373915975921997025482587567480605667745653324982374858702563476872302113570700584175939759302489915699381947285803857796833823603629853548950118034877986250995308990130051576013551697933004039786837841144305545816418497981202128890776972460378264394725713361762185690738952597351230775483537871715731633481217676579358255921794248915343765183479821579804961363677269151196193686956750180087160118003180017757174720941732813101480952883846959969779900955468478713251563206090261217911419852127429261025960813862450401653065440135994415170607037443194050763265310415423803873825003371799481514985902553461719310515461635595576437554408666040492390901863387551686420834306449672238264585086182704665154513662500305506362981372983029441438519710371887187888716310796325552611368242183111433310531235426336642668921045028358728106741607520635671426179835197379966367515169536962089234661132359283182166005825567670094917034935296483239571064486935339424355131384218792187675759167223016944327055902764158718026996706254473403904952813998105760709587388473819849264100588797239226574443772714254908175203948075923942962876104520286264928185774700291073708370788941076091706520813292087718109118990397515753234934697053794239693929658755560464709733697729412856578826755471561202449482316690843265639518798265292909110947518997907532511053961079706337085958138639825513791818946211811934044231631946300317677613919086053592213479325646170758308203613324046433486128311045889474383557299222203450407375690949357263526520754454848647631862308253566047911477920208723718732848446929669592783584809812984168918185941673766096384087681867974517906206224186584914019894972690100017990646643235241382050994102148002698002414473323130296973587467795387420398238732561287706182307848421076482347131511389049433076218223988051116911536946730750413121276190504934191585333778699974793667747948818559327821097121847905172916948160974987412114702419915360562906665552005992451773840564113267288245181698134942551116725732170661155480066052649419353093011670535608508881798627384546964635621702737870498845960858843353574092918970521985437882541566016218478242777492559535869281648282835014635938708156862410497697628107087023056449170123109296444078251741704672911671793321413371853930163855652128268523347092025236242101322285592195388149222187516351994304154092893256068989605410442066115145064631749695136850705396698714299631081790886500745108527801948134396790301472265427520594877876361111372612627248961394898196793952840718319120567252054998290163465583469893681107871922167936569390255373690407890008120095236568915429578342887670519367153629780691216273334734180982217659485751402763383208238288009903028853001952663886110879805536994197577439747966813451581329813351875788185836003323228330567340037339719156845176012809292380210721138716256738587251534512637396106287429832120860288521520294873010440563702550231134255054350637759477942824672276961322007672415285176563508357633286659784257286654657642822047481350712895613673270319797079391603335326529517097530513309218931059480150586673062620400814427848748888307717868373635260203741661102499457515543731986425573570759939350904713399304217280418350420770805918355735255754123915154057540584551613001606846539956581046354518429583857530268952580882709311647979454755018709446072251294019480436791033252096002634537102282918835018976228757639403733807188233288663231415317198683379421326557094025339679709343440349699590513542349163354205427725908728963085323623150121253751473044064803053300481514763455813577683786523145109216008428963741036601629418972300080802039572825007716573001335348027398298380665208469641424523357330420572979611220513861770222550095919169045447703338559190865831139839912374412090954994077096941093305552445372615663331548524721520788056245053363677633685054726027765111971695824142299342113088512912433497520351945106870799201196342249778146269175138655226343672865088780829894897361438484679003204273217755185629212200150545730416645608446277924345654350288350758267831052823256572171752621721630296457369385792121168113738353223409158670263799773923722978073866973978306524789251384020589659681966507743559580434565604667437941483883799131757975808435842153390252321134758402701762634617602059146104860727661831399034117238724417880114020207226937238714473786355783941020770994775614166156129398267950022038701411885104242792695784182438548047675631959564833885214869405769882438635450371686210258864209741322253920469441048354715944109211289317244964232343731066131902600173065120302277731794153559572337941558043766320429453871495428976398607292785723759975533991455929233739872858516786357418808836559683218312161427404407190313020316204843016006923375088665211183488755435352464414696781151257642191758074293475592414194132424812739195646794672931092959953351236667759088344287598223896567666190561548431945295197218884932021521741166620414736514440102152616388803648582798193166566017495799391867270472936090195373746915800490780752466762124949524097458879821038953480157240352601379731440762763694179291975007332667408873825485203026095711881698244271134724785634136930042297116338296257916615252424150221311915808105432342281797613480186494393362023850870675786312888792713982081658022111200535397761524818366204996716391786068618568984784495328134998836914523843770469923395157301994163484521997507005347769099294617053887683305519494261561817998282175219821019864350822095985111856065749466880684185729121398474253959052523921154559683508473743481351273389041311003951363872257615649598681457903523442693650704176092749318848768761606082073879544097946222600295923389093901307272405248386576762268549274716577326025347842356877529551282643100523550323537318573640355755436124876754004942466626632779971515638393224823910260390655750153078159414212573531966059214624728802419459302542404063041278387009600802538484481918050570990901221727726501770380914820068154022811745775089032336136745242470667531109078986318605308672326027273934111617035633825038126009035943612313311136175822478558610524632630149577303749535575483976450176778231338305863126547161325235091694187190668815542831900879805052856050276690826146899297599786454888756150478808170048805211569144686626361878328463453430452628057422364950731817871539168545992848694854819372305691086892671851341643059540429815277112177510188373410143507735528890630259685499487031509229804666521367959838356131589300285741472299245904759100363110691095258629269544829615166655763323421665277068635123133475671702360572193046823330606732800969851490361713599922893117091572456198035244257827554506210615857355495611589438135086291554269127256014151304218917360080238390977911448819156358230098821903353302495858231640290034160077462755297370809761479399027991523923915001562811392862240843135182704660044896312324211281415301598396045194341285785220768540586748461242752494160682253040222752448984292190337937170603886790031200921996963756790078070615417203746554764034810793482671597365131863128166470243999302496130360415654297782450137157860075251207989129775001616627473829317108779192282396958032302178376314405315070721302426719434476658263414524107538665833195654190472499401456489813620080303959948992600533595111182292052803113081910863332470927466617352815601280347706244231725848018269506604345936140236872003548804883875485820404614195219193764409138860366861465262782001439295773417585857113769267324233203696877331823577015202219924926796852107040231166984251221900935894257323574454794727887252614791584667479214124965761274852187082753353126142983785322696343416619378400989290957542566062602618517622700531115082786176340212556257834122257570419798291071893427408895538600211865591555245125177712492571106231193576620825064977785475458807784264706221706122186530484848880598633477220532764837925006410248409941784744880343988041110372313102546744669399806027100672658611028986075044738211287068241239263974646999338455881555901148508036029795824388114180915206948059940982451343314646728848290372096249906960098963337656130493222861694972992671663999873387854400558562676944114961984983953171246346031718712749063010130021928542085364040583502322189207351119955593512036911795101556999833565329341522306748603347901741741902137726917241040023264992371543961889821743706285522245737849346195001081994559980604047805086974429375593639397995897322735242474720734907491553205838943865262703016196778931374224196811973016039412637864397889076930141362732616187971458975116253167637398766005610153573611495027610349417710449868257541471878034699148644151844559701804565545670661369590922056899778636119713922417639535425478814764751078325286623269234729417124679093269793680404323318921065117890914054246194761895307512422756628446604604101700348876647123214041323818376135109298430223248151869660714331002939027625087354152913097341508748763717526598128767026254646302620274375983315418166168807168120834611174503652420531309922626860227656140162364091560875840452047633973995084940917590403145566338364345417784644477172788699512755408514447535500633141017167151353842105422037756424622699974973602460234897377866741365408862413406559526751791167627123631849179765298751444656944111848445780832119685262562829067371081753567600801427412957996925706845392859438157633454843475556387734494529881975581304917342443615475953151959365906593668754777078871034504629517775407739940878159637573208400470923624231718085810370672646758164752283911443854971619029276037316203097957461380150317433268747645002709447943173179191330501917620665788251120816467285876357404792548113261023503143033718290461263680044341562935216369882023604009666700548001892126372385394397147175863004640962944653772035177217912825914032479776682502636675329627857173884064435336206002027470951659481897894269823303958377885537445532224681455359677514826724837501685291416089664172955199745557417049377127710972805371781111741236305675897423729453170868388548733343190401232085469287568611113770863782905002495656055780188620220355026137703069096022521059385349347286543504123527617759552036650684119152466754934078590482283319702517359280688455682211439173773823603322129214519501695519663438047916991671319091758470122440986517867480588462428687942113692058339989370216984386590443060749708911824721254074347807318733921001054494532904325634068935751488163460060125720985994846764725141491495906312017980779266791235696565022932289187181702519869275973649275767947611205877824816996993157468209143642783128895070643769243811878432778975808850984749394008644161951720684662344138489519351092430898364146325364981196299496887404988893150992041496195205454486849582321375730028569303098210595769443149496693328385197733206272079510609437157466202514311526678519559675999433923654157996296602876532405275270015850028156730664316060717874292906560001246912654731593255899551626790018662948914242038454587585252536187768815038301772375021113910983780187290995938568749012578384567392763763903693203418921461692870454196850319132782401988172523709258719066128575594701760325529329550316193528305744906719164308717620523609802669628490672648180017708134881839394413555071140956359691081243067425621169170085384558638885855095338235372883059326802085535782069817018874472869351398240221914985742756732418612036602993812540408807753777557470380741363475571655845184645338727700629370333067802498013887349031182181846570697363878878056929939443960659421646985916191857972795078745129047214281356873301162101106923225458617228554689005367554807708844294537054329185317617189804109929091001035619229349792572459364723488384175637612673303425614028961671378589826823661892775524785704064946034956671988787880582610900733076742289232348163680112066885963375946744261461830360290722325485191659306567729139194220890128774119155007867950179188576932179891519659115976320700959623601898129026639060415730973212814347391535055325353316055295555314232666855103741601041183107594548167728846237383450994093104680779451216329741417593462581268888387750298017253158890628664930847513973124990822024667841681265101181005189561656599640218778754431839983159798176001444270405114791082387666552460197717222551994815531679992511360289819549950070877308893853236981146047663314692500626588580482476122003854549686261791941598947913378938334022375518952842855078717378395980579977318239809565700105513480468065586355215998258321907641287586959549429329189346208765037041050422569358658085659416227857868355779901701856615118039110585230253347275252172048318566754217065781795082936548293617201159644711522797061920523961706523535562584424161847024409960637741217390371066037493821394017464862217033623366582216821662479855831590807273849233260131001630603481384357142801754956584824701103632896367625064944533126965344403894485208265672075829588928084004353596768055437553764288542085723353774601997436681410839811179384681048620906653677489973784794734120637526921812289762081361620482684123489039402108892503418781647033616385259977635617430470751843802783456252595623198494326207934366602657420616243079030596126686410760667810201772116843199551129592928157167969943233506785589991319535267868904157872336465452470856453680890015476032877409222683302050749295963364246104981656012359334729844044228730620897749971791516850687701745457285546363881242965236211689958057881556752374128618464683189128192960084878749142005001826401188321982247805527543819085548423401321223167727178239382215754993271346319047262249520789416859941217427295645383183475546489939701153979307269858194558690303080556119534133784104606419731468993753595299526716106572716831627889180084014504021354928354292653986143199553596787701913738080701979206240939598146010281182245767825648823519797839585677198943037075008819798768281105538112615573168471224193896926605938761337746613162759789546927769090386000561912316904398206842635000570889806655402136489108956409853230783790696836980660433843573530572184308445520164518691621441903400157070324005032435592071969521525213116424186466960496763942520728805482771122816130497874951463566008774687536950146765856562898519992157217849195785680530992426299629204529786364821371839923365169946834936617490319866889888935218092102794831769774186017118246021248292569710791825099049914245637849175634715247007504703198845409171923206430449101075461082240925268244692271219140666689771828661776408517576175239377711565312541450723821238913774607988365865779924219760231490716705283297374556236667849762837176659078057433460773802393681689786256315839146230448736130976181680378568739873701302532412282436579639660907260328461892405458926435050700304817156669766516901497690417605835903702632482707737112566970913197580151349858084654777611969089283769568384332132756437552634500350642892105507345133774611512894565701032826788390723959882907244301045157992875092658728591967406355165173688760611974687045242308431038392066843186997678810548789515148745884624797581801475049087896998450017505431180009392334753412205298372542222934624723409958016232104477545131702914257935728603669377993915380325975861895884457924272171100898461095097300880915678925245484322600124332297916159835035552093596266884743164634747984067078709422410559785769770066258193829447823533813237935512786691694148036500365557148373651783667164763171261951658390167181587598543435881672398379420646432328191446037165502863699674661725616962607449815734168104324379443732795471064189636413124371378293348395696740673922959620382763493374331981457584856946007587906738950775842534623339935255910968003377049790056320723867140750524177489831250883893880479724061511363417474595132873973893192282530164100111138311897503827947482082109938622009179813003957508760060987126290613759165147039979929073834656827844061055086695349647295881240269183221593229075389564773508892386858258421913302259050386256532703212973077762958357515340644494972099144093173897463778482941203073719414874840296823143974353540591511601308286924389231853045286023401672982538555557016672014527315995411704787473066104017335749663132222394771297659725572630103147749337766424015291589928997243411028969574323756515707821048013053889327658451243650429081347388433684797932240049788306745782559615991577038701317916233872349700614562264617652825835159304079846755466790454076750566830973530132413431653057736462067048680058277460406074340007364020059929887461619708212449656169447013323675140739652496574925349154886542028266475845190637983836564944033208383498837224360649018822464917577153864023073695340207510213727871183981165444561841149485407109947951032350242029763917583633910560077651496492480806492581735611794983977593671788004359719016657452482410437796638279423931431683647362480803975308923010455643636321479608261876588789658024463781651338765026400018582190389976800767894722895633292340171022997941380467447548079412555576638067180279672883767929747304388131049359865956550958209496501897985035721855442461592979514083141620181285579758232475470089388894432801099431192202383765346349079702989411161326524268667618574993064098859978290801683838331872602428078885572748871009781763126660853031155685520356246750238473529642203249147125750677155897232252380533555364493240508586775624963189534431195463702150898546326656820882294455821633558226103433516395380644040537953111131926852880877267705254830901689747361412102727227416404209098177222125526343525174921172462203270479722775638877905367976990489866704761885747840914797334318019754883344154318682982901363142812559589642280669414277343751591827735079978374386534508080182501727793359910849461201956874330890745204980061903835673106991344209493228827977042215209186273410236461894644729836367482007228513295202065186632095749942102862916896236808406232229592113406187010573996480566917769246440765240310307990304214648262799468657613611615936449383242622657343064765887531077275675862851709191176733832853151848506668705213259707981917400977273366789342704180666376305341032014578700480231636255942132590214811746750543265129249728232578973820135602834523630645661663558731696816624078065690213738710453347070553029452880969983054949016107277423762712557342673864537689783834452142049137720084551683930937307016170745072466230302987935940866096170250972610208701356580626842846733878717257097459031198555875228939462732013833689372067458187443750905990291432443130841483172034699473524355481379739159434713764091504773413911061965904253195657122351161302837326246442011866565342942420343181966659500045115322417793199081013767410572884513322743994754133440921381353424351085928653689354818984287117371353507564373935535725904108735080456692326228670362990425828074162086744423280730076718752760204609425785983980528117836444824610776055287340436484192441893463974031971025842779851547113734563033047560883804986085732693832795179381742434559131518919454293163165578249439081743627958299352024713427247696668505028126707889071924249338882891837498971463156489808691571492509046537737833362638504377349745523618513748663580131276231251721425436969952806631189965205615914488019269076288699597463864027309956088738873678506059196263332117475965825239815547132725740630970992238024644071728368293239258068489828232414655060046926957451722302542636587109048283962295563691431876640186606210830948071056991398620152701120194560258821675439980786950659106511757875334309205753502434384192589376649003690848191588640554879337529085025203086827476167815271887930868597903205537928435447611889799401037848073931410462951142594812473345867542863167172595752277293723195120942440937081584156571307354185030951840411145857002513274046417494311082374066287343047510328005338733463078467117945412155566650847941604352036466274666495073917481965105736957847537758503408245876933050695006697932249257676723896080394955529433326380637055951995157306475854864989201965010214789273838522488806925789074194734185063881967252256373492161208380060043178446265338841744116453840025426281400905337175343694403350925603947708600620892393066646951245977634067643868367086292360593897047695612276223176632082740978178221454580697236883891372952670793333711533667937029488953387185394790579616101771377483607518232907288539316116719916345314499195279772908404997342811553510125195351604059312198472935070539074965338544297037893511927107534080320253160321356006067653791823676710349714317235302949115408418829116313341571591493647154551439707994313403817271087594216460170353544281696990843241502506038749077353744765807438819499516141984096879378425205375190698435632688469741772537576120657500754401488934437187472820637053660277584143087678175610526731996928936865700415163792170845029223662481336352606189148255095402993687524154231420950238201131601186083492866730196978594226746843021049092466816582049267758005808191008014202755832486538656543802584349911035274990715092771392401546405883921266865887379218277545719123127591623339774844730340606274589225519565451799755259647599049833572126132201690421156023032028611875534187510015174436326511315618580344969192489754904655228494452155309542228138487340244934905272771892959478896040529313766792314839507781057409413234342108629475915686336070110368370475638139021090307685840634068645036540329963452734542999577589984042415530255832906685999715432366990177452679049624530475747196588364523121199204449948187893252308014299462180538516577340144951238749612298576794104928443348567302964772179984390121575988521205829247962997582734889296499284675320878785328811425435036634664897677614400113584143326385816703535665665336909167817416359321463362543555542625108722397768498558352650469016150223123842624043090334307763608283985640520880890858419795691443585825670057593884924077808630121088187014061808460416754131928270550848892961715436226066574092274814841611416654096211311925977782672709364246324934017734907492001568299516326891448004552161092135193623016991845429563978443092846706374617054542489224534075821228848136614368678936559730190145486454628049637242334311508184557262826374608141204110950643387884392913456815253899624964686299783923947804032235525364602234619661008472185619028565589771201259052123247613656941687946959860778354003755352124854858950113148090382520253588316187013531074797872567547068643421638519046483511722926898820598215615911484079647895802691696088340411950742637972851260281996342172567822656342535817939878289616452319752718285139728491866883271405795199823917294542551145315168621047648746866864305966365189745315429610948844238811600966012287254005281044995463656132135619200994364691240486017331015754006858359342356252813242076181894569663847067572139562846476739645576256584049474670774493694365560514659940332057843426244816795635753883105514534696694240867770850575749701225708647661470884156401516850299192344530892434464812824176445762668433469144395327263336263478887166208553063638382975885607265717778310967222955933445092825214352071387409132076726712473795151343985531126125162618824985111700633025272349082285531411297332345279551169371870779637447025769585239107120863556381695180248036996653266167441421136318442191270175749069514715220792420045867893031744261761481738843531614670250214768167393960939909998866008144450332279373294350968064305087722446899370424641255816535852233675921982455109345376798125799721783428376214575347971640572518943431067965054907390960240546306526844960215264163100033006245016758618506480596867043657053126358253198520169036624771009925984724074036654189359371189304571603015198450732369458725104429399405038397534946724103725246931776913390816414309608312537505823622555643815188477084706385700768307077886763413131968314788056551133814160508570321261070454872536060518368104364250054336078027445336718017702079058448338173020247360639761278220028361535903241972891952235195317488314676282690571170416920310235120728549149335530519379873570277634016708555393826786448363113741140057363731775172965387866377258707407985476175615309495552943764994381121628373396395830371343437068110068569587712064011315668033238432648391217629782900780509674063226207923877679970913410315094173786210611658031640376838661906088455898896415706993990924917815892593310131532978112808901616304086451546378064324999011059323560570495630078507865775686946642656882176831330006526004791283757481498619202929681287536589456631470215991970153734867231407284201443101572967066916478268155415510528648078648269170219249616759586344922134821373184713213508223490419108132235937805627156075396466915974326599852836862709424229720484585639802560451381417979687340197095463142091803600460182116526685025629440410320898714136712345757467610137822200952264430338237890950099012172240653140330489604842995997886506024406649426085939274869480092338103127045001712870493254347537254426420791181047894272502996010662725984541139956451270894336308619444889130904260621581962988432279032398235518170425672726030751797049882723482152191087629190214216226710358935679720044338429854426915667959634617862627089989373715254671036455861600422564158657764040618477134637929490123889735143766557545017215854762841428687852524010719291812406980712361728776112772482660144054805080973262458331205441774254853554228560365942882522965874235646714038549119277770764313730109227023968444001768089924640696265203109540484314113294692516718795317948827142562473236002090739172077261309644566083920791339701528710952413723154371735573363908569526748287750053581221913961809073556733102963280139540749223164226570444096724330534972096428315197638001686571359258572243942182178980546198935064875642165999823495735642705219997293756384612184672170171656165165741556523530710003416823572451668450592042527657370096278771533810776448643183059651153604804706352174861754236992438272642541096654512628948294042060074120564283957273221933454893504046301374781259112601995509041439352690778854651953573904022236476012852660815161597138723857704049161768965247157552423298410219509254744553659533444637248675707357773681669261833521384926091931923651805129908302044939805506650886005117914627493431149254120767689090929932261711863727604759472819893715256810394151623044980857447432027683535987212691213818027778986277177212976288472006852037260424881917039166740962426263599961870812429540612920492365020389837898010907789202113890163123245409534739927742547203402752708491172218289954164071403115617857565510058632335194845957465766533756785561269733770351219780118522413847816713798326747834372372737421170783093894008799038636613272618514175570344576898847180286368767758176434980117519466185986460776817150701829976646902546015882090584048811921265604618397381580043081826111550732904912859151032750734265620704421262925101133190995553112858254881907858461965487337203167571083667975814653835313664236173308185234745192591462983794066181664180852724801393125097024689187389410644695475743467283783476961936200431056716550653360898958436248571301320473455804611370632604724044527227345886778871822118334573736371816531855569565901528852178215425716386699100259823264344123859158533712884987645606351608084504002036381609750583428743259565887400732386280689815208225451414466486190633457176569582278711066748830763327890390431686460745809940022692935347222730375110796963705052810757716505256891837176687460599909928908181092641033053913422183806481842166670674247380274764067149100949249971023260678002515582330196233333213224718123227438672587929900611598016133549731067664994155785947686941779021476980232144898339398635818257892024684510919143630002856265644471263069561464603658822461518555793431345704324277758898521878319376485471308345522371908007629911324678141662490299091405329932110347929578100723240334082628800223153738410793961861158784112372423206215555309040170863618416403919558140376178221284398313235949724374491003033228007092152393076281870236563509778134030723505735450378681520348979829213780028664843625799656267305229879295076790881034908110037764435776447347878208812899974971374445884860606965350685971058862090370211757902259284872285812832861794961013984450728048412420289897462441664281818914172045146541115690141796649574296862633090992089979077693207115083696049329165114882994659864511215291956912494381566554850541616688117612808053389917041016607535403753787557919978310740918562724240250690195600098612277895856481932915791321119450651706428848613804253348673831717979048787546495031475323751170821951367739119813930863216031846003559624825862006295577643350507688929644707317484012575994933946742572422814357753939083483676588435073442002536388976569062975812424247645411623088544462342411492631489244514807007154962780972363741784488818503097371637848443895155990599476576880222004058355688048358835246074806827348554713653329634041679802615234613408210819546841526086097989286646555792061420685568746681813671919782540068944675654272983470283616338951520204552617381704045025316305778902615697760391041726681642314612612383114765886365037583850183955824657577613366965076781312045673159748753563136432655530550996979821859489794582850369133775151433899040865035343651579002009339748720585215653157667679516686069388315382155606625282721540436846456603433875696116788229049731754268077337488429771197579012308174423266769557428613085369177548011523253668812322639814402780140943413413453806911076078221619503571363196403341887593215186586044257817257261788602176515674256642798432697978935057402924736271966886618374412801914804912240494787296040652797740844640079150983169702686726916303082817517124500160239431643999688829131206506767871383449100192491949308974581586364313361747636424009623670830715435812734206358186531371234882817198550833946976721477879325465753982331182067601923643953562966651231642339125527424392848270734251357477374449546092450901725645359221683055008485685603997014079815635951244911726875936407672927674951166388801801263936422214257262013505113260087839302616355255742767446392433921186779015575818601338438594405058299745836993086737549854780140823250587513443997924820395648844321435019204893096632969327210389516260796439811316512821947045627133690983451230963307589704109830302209321471852052454108447913251715683971229605789539937543187601108827386956693892464470823165758583230754200413994056459801943098557297246317378886155763610165690919892214578902846495111472641532929759263239878705173984598680406222082328012368816586965300052962920636353421449257979439728337277622071758567227484201608197801165477143458058260205326789156105533077624979031535654610128343869880501205018108090700307021980092693529662484575505558445393574571092789108966880859215206698466146094208739498086968476890228588599909323686834373481279956182966871081850252693734481503496884256778117612250153100705138022149885220571947057258377180122743151467189505484755054707324532116147150181255860868681304942629935047982773108582217119748429326206908111381304455153969769991838369118144053804357459752062069067668106459198057143261923140665924383979046592166511621123493572727988718426565142934317205689852530413034484132261662237773459952607843708129047594477886419092159093178102409217314205120711792129087204419520901676829460267445311944136571616491233709213387864751201644586992791678718136724797268237015050096621955591603751845990572499438381100379171211071744719051810853117814457591565354179624969438608754236949784957339791047521980759032406085841180720855560600970427564189548145132936611918364896941203685135739315649237013616381136435093355813665638336189499593817229806246158215826484076193888415123409995700732632202211655790172939041818334196267084392555000745645779208524689320958006514023670705857655585630177226142718591291390106752017397759491712141434800062715470695769869548911258152404388322624964365615867594651468313549520485177357489648706601723569819169199073929527971525230800444531334672461224229614507513530021877218051343813934552589677575538150804782241871082914358575614789807499570709459724111327258980238515214442430482078647818222209745341069701251936734546229938085505256794840688029407441091289097514262487045924686778520771408095690769280459362679883365698105763305696981885045783086312410348788397572189804906121463477143380310396428495357077696947468200885362523303457689585244549250221399529781016017967227773895371402109079419569532142988596736314363128643139615465274466709008928370846149534877010942906339155512172776914649663047085513697500559573417880271726843303446229441586522036737571620844708344860796097931304930399270462037022225729709916655856992536607796619247010774854700183676210609698721721419033028801722912189722596032757191707994610032206996801788656400205179353216718088612484235305428050685253247168394494374486877796004123800391810192568732843501745978189966821243095315901791881553382305198416152923650999608653780408189190405115548520947036420174708910545401727221197724574007276381535352094605209460676031596591820044323821212324068732359025329019215433734316665844498309894749559041334591992766573565920402770663894335808892887116514758704705503608247133996656140781070966069770626465836309424279291751506621099811963895244304059632486058911724701620665220236800105180249897073868524406382488290321207642986305528286581516040521301683063040015289726330964681576263108105063267534136000339340357482833261308693187901085056343812960644357665795285886364528785591628182350169822056665521264867391953986489868612364831934376571403570142039245274642348241205606079011719349573795787244757272394851670749207356074802766375550470930641192907611473617386639873909143257812049617519562519510383847471894490390573463275664329100639833336460985864667542459732901402227799307080592793907091850909797397531799199207488239983877292034126749428852117407851597446402917028363646699360843281232516194254539628731334948656597753547166108447879545679527796648742166257033763330462265462689931624231966041772302534863416341101500694929181531494777886394700140451718140238224871907620955283951745526519304281166871713383223170134172323100373977677362113543319384195179006856995940757458287631486538742393001875693273778925933988846759467341150687717403981949701267742552468101708359741660553814021760597910414503358301894941034180045232704470773112855214078392049963947964362216720557419626376571803037750796451566164710426812235943103444395423603666421632577555425303791155726279617925064943952406974700607391115631933502971295404820363714151227874786165683782140526879650694268120874897396887477376046598055994124968018429256582748162408359049951775614974127334966818673262389289218785771838417259660991928289833939002500759081935096981604528969235075292478068033853994923219325921756946211111847235864238120484266916277391487743249036092507733654438921353162721835607475958004347759599328543506476331216655899575206986661836890873479091837001135793890967290744144427834399446751430124077895236733091956512578569337290516601519368456372699087083223890290360616285250187176578761440621239001109914399199822263332177734518882463118850840524806194986236462876324400283491308435639102735196100680935075829947369641642869078191257474112408007122312641654601516397112089753967240394985530298486623105290738708682924020104877903653936725467378732776768561256529224813145484620672304640235998471106691011953768581178304035032072615029855791278983646096701346223937315492400382841353332589742313535017107915409754327626766075468564058316421978416921614967578981939796323886270031235773984296633439228828480289791299623701997526070568288296091008756727380702511880574993294596220766957313275714651146787645811052445069869891989078490113149508483589234854999761215615717124046176223430336873081514104593942951041579824321519569951182693714015611724864815408307399479646232801894833047829784833590616248039138323547844754798844718803535749307844375621684609350087023803246599447033584401735722380233072419059753156278634369092346087006400397169538974681877616803980948756055998740815205188111160046726255821667801922654656440934019227400843679968143727408050591727604541914821777686026858181126143537970935686754923556882491494263471326532396073587212014262079379413365463335354456526915140130802931951960001320088109277318620978157307107701564264257168579036299331543932379525925677436766195628143313278372199872209513109142835902742981581105823419011368785546462174781670072272823238233479798547809203046704498847088921899136780488229323500224826555852912610910867959427600680556626252747803469617571846734782030607256939638814526610540845362907337830746958715469509669927997723532497673593566623524841046693980062378343827855364792871516313132717881578921206416137204920180515592446147235017141742852840718163130180707054371464037001649301278576402584080380102978966916216350593439449677989823113187136516961786082053909795137084762797475892211691798627988528878955381716826447851863075157254107412890956189514342550184553864234550231609074794569228801820196286038628295709158659753448201224921873336907105790387536486240225785519650310235341396615100353325326720166027042103416967173121728314036926847793004499849962636260711242471523971902061553972761396994290744572854667857493428096633302459692911041539836580578860084773577079184168336067524416811563484473901574816158915048443748078304520058910036130004514087860489726139744145763930721047844296415759192285914069927108022134279222334611418067746740660027096915517782206661315782081872716318896741247434086426310972113996626411691137398552555476035154530112389398092663909738049769138042871575997531646364992270275795322110570429816078466221006433437121139889039843042458900986824536600131458584788063173049440282768382634233930300627280122619591281822071252791342619608922579801860587547626456067946810351831684706891561217161486693261975870996608933779166725392311824831418163445432207476966814161071469962912082117367555704519175476519735198559585484097946984411346670674000281562844125686615156197359829622964067471180214160819168019678999755626062299162033774686381879408808548550273867960331243925951305144261892834278735565247115769334533078835237882789764353612456728449149518854996896048556664215307052187161588858633145661725480191454019074225396497949187281855071161209432861540246635732561334862703301563538313700291518282072707999881779441700594012293547032054620217218529895002866047676382175616866454997155569993390784241160567110105804982468906925623683168581266492349797180420598604159461488012974801401436027696170319870790363510603042788841397201726086157772262510354941064142252355689361532543200563073022664914952623192059131845987856289528259720879813365297264894468827362924844415138913796492869843556032979939722087751026398426299023565350809065857430237765611147017438442385038504382879715386875841320947224114388360429072992608194450861387111615492806938596380538094308889709031707511459420298654367662205428576716934734355005104759593147751654159995880422245719764344083092154273025929334597897779689489196287584687346121507523616620567853632123279542597640862284580437163180698490364190680427421645572128720317295280631269308220357063351513817746716815392600336937742201193999478389307016651796480819003051007435125516313953814267772214332494653714788314638250584205081592566619782271623168291635331006528162232057698411607378423234897651964361123818170524192133545256837559375441566913177102426880512594362577663064937371691768789068820953041893645578918418385088345879699197220535037238580985840022258195487221490512617742119685488399301957877128351054118666232959626067079168651277946352480783766088819830675112031490333215291647640122937661429938510163046144919480809936234236385262413661492646289099896324663776355512348551623419263892915716836948807875635351042483558673283229387324736723806388171863071038842931158237928837138329965571322381425055331244015874667318853268328882862620857436182479080537240791918181533328598566275774395071575550106232382817138248414912636040516764159707365593875426665823715686702396537226600575003235371459741787820707848787021729150284725716255379109062328751141158541911938140479092183480626578426424638521547434461312920623835475797271444911999449373764675821042676685642819595140356387509396573588530642889464133585886058255678714352727036943939155142323403907739076650507325160989399662718100249153586167911944631535240664864736929729407765478303941067226674621748602606445116174574342468026614637999314645537041073761648922858162263375317975620310903339355874120487554892284327816255833281999897931572237252820603617482821234997737000996154455423425691086621802529944427255190548102485023747251661883453210343044505718317802162041833589711613185422557046529951290837864731019815213158106239486942967685404533233695488401748785435899635458034593032495006250649538595792869383400316101250328336523499828670299459012791725042995960158702193023582238308340490499597360866353781947078778109378426863421782107449762598715478232369746868369903179037655569702632386877823641107022686651184696427849825617947735235279969663681441637575449780098002287777334868376408742565301925590465031199283787218993131338253994130803549297349211572974467791561753066620100972281801519428778485998322649338891076848776305169084913594349806959547463911296348848231157333475314064979181743765866937791581706532091432980388872247836791609225138927548611178101747906603442162493689850929578305901508207715152049880740000584998994693173780561682652717326598157121999944250432005457611476825052092502443567821318565391180030413538778715058507381693149015002483696098197614079254573401128602843857612362127419312929666656679770456777097761916452061863337496443580681930524088026920259147994852551570376276231035997841388259339156167266663129649678252202732439927442016275940179449887904404093931557173994050762241524387938785843639457649462008920150820254841846482845324069169529811500546412184230671440750263354331565142191512881935107699418105928805199548870642425871751131125924226886441866073493148256640217555395997165696869936578623390316229888365164530492894400185083114362791313355856945464459680512671398386591077615723767975724133109640314138833758299535446252986627633290134468936994591391686599381380250002481601139029583149356122125256952980113266720398372367595828601801462471716560298277480664472268814210671255401256824473570129711297411937277331740677370457602124292936985388978825633571072850687410535713586479677201470737316724804095924576446506301418703660606411128658974797731275880279338286155685212717528529594724476814748438765634071616567488566573890579086120701859319988768623847959687355590968567393151470314283928247159652268433302900785370414462787098950780281047676224690542836076244753022929118220092037135281186381202227536204336055089219956501459747686285520565096742484252638474095751784980607039828470413304525004268638692764935791491729502962597094102419426726850738438684328899872797021680804435753597235513181759578220115289634312390057919798157216083537576257660611765400677443014372793366376133113883371191675143738159384163828172845433651579434046738427442499952344125372276617217800135684791654810525328264299830965038926188791508543237717937726575861514625202309271417811006279699740780495906193802274932284636616062667947886478245915829324586093814087746012364734600669547196367706253577388762304805821751735779291835825981251436034844007157742892223081558148930509125586638686715498003630663270662189305782020089239374300062630205480522825351654932352557311544402116245337952629690532547384254421729311361778877421875649410287626876796934780054499207252313085513755480617136706231208378589302736281292390106811620059299324446844180543427792851623128147239141776754200958650387033973251313271247432950164759570341554975056064357975085666188245257046029237619820093333806528024155226509485351157821388306704085592037939506062301477464289743996933066432518496778092773487211815888227120507707942473184023184056083768720121578279578939582653689947362453533038601693261427715323132778419803315913140004878713932001507992477010302754946780958232458415224980601254851411011403176268814825714605889333456271505313123906445041921675550137893257528508197913144053003219640875717996320880395403345270873496097690897845458454574216919067581110326507986239001438528416897117573283000996670631719649450829359037494472086654381039944035880093931496850168372550328796657126094662415580067214480893128263795588934804103252767638582594412349197365746809723973814725388591201587927498581266608561572602541958371316676662628291710849520971834181581993494447074511390447414293165866086703280294936403862338707938911642280125364394349571707956424500468228073204738164904561954683170911568795824025137223156208445923637715828114457437197609611235118582149991464371553119197036179478903885236055052864330239354876492682518194966486216458741945849407809786376782723343417459843106531943207406201672849069110473036834448529212151374632016741003148616421342434221236272491506322966899886621357911583385796630310276168816853242122050151605223357637729141423954141447566841997458259823795755853959845328937907519182211101861316987711824404995397452813906972415555965465225917004830107131668061676757096412668736077257650202156878857597269933975931038198650054608026260728177164899234931970391465423733810704065326305581309886348234486128264048999111943891135906618610385454314618543417341577479383573649457986034380140671645772356838354681870730202083876948835052101798455449201080021860410308353721018976269061925907794045379183772234964744459921532449841637241909724398439511296270781216159268768340480298383392784976329709999307354698952977783673132200335542330579081833798807822615967805902253784415038901107600171546635345230519290050736336228692105154238950855131148794515296661065668759787567324021419640741178711086615498291847638995279532120993887036644645023217982127391051157094447615772807643044765594129565812092812443027055426106458543613332922041921111932480536903048258836081995427745792873191637996951100464127349480961364141864803331740191455046325186769266263241599653787619066526753396170433912643888024583847511549368476659826711601566956120840616481752115449625809727401355918960216207938854019813700360936851009579311573831394429045734348473839677077503362868322633440831544408496163907551094733897358786663089887068309727383614797285043173063405628579607061633420125735797591240070487464523371625053815848710874175935827499973828143163653115283081479739430861604665089950706007898128933223372382273308615741333555453196360301117002094429172803722460502801863912033770513717611413601845742915833450563318634451097553570208421992410698739647805038203682677226930768077131003485079844539449055201371209056044411554981887242852386998644808537471513629640228155572740222418096943232868075004818529158595309051068483451666654809521473797478637056930880806954735770011034485071182365338037905647355273638949197149170104753138505502019944701608873071331480047187021873157481717234210404470233804608246422693144047344073253022031080047186448699632053754886891606301635077910174683620058504710847716034619448427423243655550199491887138313802094183679911646100347435651368249506744894653429635288469506244462993508867474575427576147191278579447662508057498815452732924298069905251263852237680042249960853423447838974347037380147533456520723818111130011691566732136588229435345594825807286268968697834632038169390217554977271176392956152415818561314502287471847430103904483489142758765033569320738494176363926421454068440790320925543305969619868911238684469564367119353122193998022639280776429436337868050425541204179194042999431424364003338802839250041562089236484922725756511319549963274679888912200827404593561108647435713782100248502905199858818499095847472958298307884579187264158061567977447524521657469850155148399409717521652101748567433519009883175382331745505557832757186733823440854492739526998742482191961370912228670370907822252428202263619864386030279329929744386627392727204185360500655699387862291277615639823664807520439448398647771277420883779612967326006486415577446437160207435453763443274572655407936919271150733373212355257963890295199319713667102348014316888067976429347811446988615429647071286314546022853648129016356170229550414256536345828821069962658680227239509925665577792937661450155874380746963551543190921328388950424541248398715957287546463428607520942737869168536561557588139257386459889615543421099103282894890124432107212022184344605870471394840715639506526115955413667742091077358210540804195178830612900846825241639110271140866258504384510086346419472103860437770431306597191117757733934553612545523562787629863289088060328903670200191628150407237650957215244656464226794580482240645388362604865321890349306061726029830630436675119378909937573612503622808582273949212985284462465981864424868587224695559834023258371957033284305917449461624632420012091890420183596011110828691442394597447916711426021949596427960780884905657570518594214527681250280392591267279890998570732689552592433451255949637851751215781982119801411978899729279614728610278843891715583581253846964817838176857915169628108077778805711759543104390256914173154917995606554455036351212546620581585850447375235503542083215597022550646551642575221163730185610618460084171427217665921550824746563689994738939348080105124961861207671668596056211244285766809939575518677994089164039275988640268397580545802159211921004430669642779264279978300984746439077058302828374879409840057512819387207542330718324204806119498241011580961499438576507458412791961158504805214322912639265274771321251726639312886794334642347820860398421544301897264915889976696053153967559236470685364519778262316426419790399503007854631454653594809039111976434967354426027545984820953071871363165625040131332976840110878846965750071955376629477430163537268124191356125722387759232955522642958363836211677373157972824518584669964726724419041856577720223165401098466910108233237647298122657907539454244129740697582553209283800385440249600986846024473094868521386935117270085264062555798915874527852489837250634372828815589759022388729953988830848181460342790147179639929118704338602558742133516289124171470608459460437944103910377560619270234273002366210125760934168191243463295178204049657904571065168539092407642662670685954274808203012318040039392643946337347532712325680659161544438349751176217329265422865731493990028449980611758995688397350085125067741355967143735010623410761048349655662730574700168697485307043118460437837187264068903978310354531439767687009951936278171701107086526086871981352047519200930608212898570607138205543101983674897749041245817232067207384142852801249193618155317815443439744701198400404591798736571315859849928413363141158136771975705015037926445123355324576774765506864755156505854677353771258604408829077655456205886253808003934288828576907200210410400460611352656311670050547204004497122972117484325490514296335409596995723336046757940339066536497836891050672727977509911405767907534618040842970763486598865251884695022486858658015289588647869560662534226841129837587171551857463499995544766237525770905898431314057350600923593192925133763306005160498118900084777766091008171499434837402486658780652916482272980103629734818254996173723564517049663825380820152835179308730488581133025066370574800825329988879046199347041531482178301304652537791905325936037591533779282026278551708430268519317956718809714177052512252290173916098586761266603961238443678248522263692087023068590569017183178003696146567247445465858466198196258118017073895327753340154863639007436258389609343368733095133915988197980734534885540613955572703413329432628071767065070709720519645008556811546905925157754162707822504906141628115285154106043070995344988832672537077416743952011295444092066738235587399184325541464264746878134972598337399775736037146352194019833336783832215858234775043600872123296140451917738135485262516918225081192693820039426793980681775515391455348085821690666850648890683000469053270098935378898173068367491646998597129874057895957763619423228958549685209880834696898775122358972827356986438295522578254737470496158885489106600080329921227324645557352597935659515684952888170476321498810243876597585200265939401981067716881006104453705741342185254916535393216797944365413918299211815214066083207473162159609779944125538158151135615522561724203486605311565570594821118471674773901103357495757277320054708035108557670990498630883777313484080968433339840469526959270832867716889797811548806886096701064396026790941402473853305855447773616884445818346459266690727259391922286915639727511767085633576870699506751589700310364679869460617819371977386341829550858643454606491632058636840615391652331471717965538763019436208814331830313896520632917611869070189994866661117751656152052945876975334304155197762387910465515666734897792345274804540198644074645975730471958176038538861850019033918846652850168225051037096345098069904684939803808144066045795145988020236147568497075658439315795689122158603565774958187434474216652208557931003031053939565753912740017271092136788831513162016000894831355339417664036370433531710080808414641519747684798715271292629731705156415298538210711245330111518034698572997575529072020221596795637359862840039483665136822810747137674574968786993553295926716623403896041937461230483119069292155429545290817313692477572173152814768647471553406899545097359164116615778370332987560476009161854915002239657501598793791903403021198696522886491679856841431109569092395775100488114974144576043259477765321044168266819044568233759875010527701096656318251751609483635760406812361370988029728782607455360128191536802971838330399164670878557454701279377512080197095035337242348618873792342056067206241766808072671983167176492897473076220757337476787154834659166320404880643811904113303602597219428848123614511443694274810727718311220205966052816465937215654174817317754281440016081941603727778060596575039305119201361808544779018982415999518402216474751135025229555016619354936746333634055014643285692886434029173932690678450860341887258967078737018006260180797622508063034773712503330007988288126305019999965120741783090537364945080320205359483020387326017201379552602380511942601978433991384960663095969690510285941009341650951685996783059264307378124959437546024049977675843275589231594867386414442040696239039525324658568026855944538194484629914056117151865860985424861673743415344784200766572007101589538643525446329326019344579263053541202780304520420183851871973923320989564794066346835518068376155175034193293597750611678078987484048498148328345080177987736932222298125688004967992998454182901566043719760716783411635541743319044409478198074065404328927126012482232547520026962766113035247366092813877463382713637183545517524151952559491411033983406724645420692248403550769682399464282427024091476511746083031003068464366149509423985607219114455143154164390210172097340406890080870984071894905612747934782791584369762540220239013677275900502733495430539401690427983615600615738197808993381472335465166115934090967842167066211950603685713960215638182329372414940144897577351752741352937737975619315489956269005913080695128023399476439399558146679026881007551383983635579973084989681544621907557661599668267279984483317547445491855507143363651531263649717541771339766953350111339582544352860564503102346938074591685169708567481292483590259422223311919101979804781669165647062871306241974553077500373660696716573797102242480278200570928286029499309817897352738946521586547628954637806790503832929293788433803360635541128658556323697320187343757078932403126672561789499370791131199297344390696565847000268785213883581417993880513488323603985007281324668729788975827169999536921770661934569308358708036348737613709643429651533203587311194373886147247556748992892166613196563976494351987645532241101515333570671628818806133785928331148482543880265024944469287035384265089954338011239517811335121125219346107197640772127196316898459695735311211178071586468364613933311173737339472934487138808388711086429144178276526121818824063553548739080661964075846437745545993778197588338369785567628145112482432404687391898487516411174378300687107177188202025010097031718944818838234749017083275476597443324312136622063351522249741540232525279963299207495342558260138712413726663657692623606825380351461904513761251967013687184348773922524525678286697409712666659804076422960481573974217856858799396851389302983442398059025959659903387903980886399733181232660300244773648862880445135323828894715764127892956678743973484320665986804485287778470198875362291823258201979445369395764662065617741630851673990698829281923721388416851936270296016718802100588483067885694824529589521263249894519301465876309493943868748247312784583479571991832527303400644871762321047582522923002049752158012473848394581642656141688724150766998758793937357968332811728561298762012547568290807853711761032507790272043009041005539100682975787304032246931469547019924156695731207667678631066310034064969387098127630804076959882565191909402625817819115636334695057670404278574691184794301690114286640424827762861885904188256708961928725338820881656984030511920156104381568765893664036278187751204462179284068415963837446569606909249521729402342130781428107014014902765597782787436130973234275375459191028976259892810515289819996046900912903399005226730795707061305207044063625303393838711907507544773675886973831490123325838939122634382466359995553260652653171652906895183133789205528316008549596915865590965998916447137799404116949824190835499615877155375990757083678542833376889321735587830758601363469894248471429555121748348892403692481347748016988230883384715173947515680464805697254255613319504555194789909659755028395577353295319542208866048054988056493115161704301769690991920021090552333147220370242362407649855269546786637234578581963068610263988518516982431561107924965726686796671739947172494979556656794762623819074066052136053394104980056099131998756115041658475624083614371894997084233404005611063778488467463533329444599173728697277461258499127698311663838345142425790003832170358950317980404596896442358895729526215076027305449109189357228915456322639669755735315842875190876270567576961798358719406638982094015053569626958616688757566239005680838191868331768343804904914878560203670686803276389649818368015559252013552982337729610914683953718714543208211499449587160849235677682241196016133626731444008967731667020715087728100211406574810509086485465911872564197248088875007643152194206926542499516142192358191496412129038905629020671577687511074998491736109538175450490498112055474842044298566094449742106583828539957223445669127922016124256429475082157847005937992334666799477475081384055190553852202252312271607652325571039823049030040424359709740788372717285484696338784328039814768387059191327086841593712888304654236084159296911947896476215315689355344891262237946282820784723734066002754451359144289269637011289746093212127851362493201306955250798184988187291378933324804187742157120190694313096623370353587452161218334116077457362416040914316040499701479494456096462637432638308805658455537930311750916533623418701851643057265197447599533071235222117392711907407823354737658011651779918667014044080724754843686146830127373637955137260094494316933751903117503724833757333178249787775712629741597472574853403177851252662120506131124109458979630979168202991958333076808374856371186458390238855900831976554526103235040400948650034775791674136140529623294678305766068765959279913970813795500350046773674959207440589832973442272141717162700708842731699962836264043722982793627912006951728944256807812662034166147296573586874340300880587913450479366066653463450233538221008810124345911839818336991118566831444338061960820418647195956999252492830580262480020161514270201676950671711027240816415243605681619063930823354693118018065313073451941414545990950172237363881617681749976425104440436207476789655515222814824597245996822732128763843801774539327475135836490659282036968184179067819544585785641319354121313088202714375445971943804235848478664271174406831317355479154151242175402137893063333490688511477634211317875713468539150058283145963544623716173525341746254318978650310341230949504600357737501176769983862855634352130184675954579709703430789073865225175631372446751120714763409832678600919662313466285361340973615705576780693788759757802393515156839174463229334384460995257374272435806430073122690454481810804803882442980550992980104849374157586587808898200607646293131873556467007439085234199751031648670372309467367091990325013763147072888065267819779798551433159677354334775984545623441135440211270506904610152054002942054303210650644487715851697226753632596099043879416899800772075698567364985751582715831761268613679114174141725634459881006894692681047120130793274723208396350479854175566492804466846448062738063173311564724207183210055944399831188505451962100319147852521792991793499270459543687415745069888784187134999648395469083940272976050935421782170954388222974958490384453295399054866074026042332926477849567753206517231355108292955945290438038360073553986622190053733937555294727376208578165751308366587277181483959904142295418392062349330093312592527202705169827298891849617474510598919023264384917411558282335794155824075109774138085735150315613649710841646610764419669751202321719023835461103306520997212985689096378262349574097922043869867665910707252185144497220080208645685232353385836727036696549859363069082266151542558855828762357794899206663501755293196375828001487310106206554182122885747038259399763697867723268503324488652317013114851191330166202250288029958630500777106892024009147735190195573687059250808832228631732028594575721360276140396446282926279403515543676548275007193650174836881958073497160457652388046542628489527260525054036184102533819262098437796142773917885209291887137329865498251998555990442295540963144621429489393629815904103890473913189214096720503518566911049311546615543559523168285321532769871581182635798972815843825652271517845072672010342536473810543055451513181030904556621122035169826713276597245883999188853388696711998492404669529130399014040066349222205376685509669630411863215834398075956542560171498715880535477555060828503434808832092781874629599719000813876287243957515864048456373883245475560100120585718184993942221691608869763320733614661267607787409152830180580767660542629765371643573638482199850177792622286662947378619457271543305645957965685948143219736458459488431061033621230965189077391660014878864339463238666962210614865423087323078770250925245979950064114514607026048069501315105697027072135949739427452366691776150519709125476937370810991608144964569652507028442602843904069969944666888552425209103545406326229616586290174584401898792900462947190075330768663177795829326303754898756897697812748703623729659034329880899653659701903981854093978856252620559063767498268660557967171214440604248616043603395387862964819378522941027567145614581324531035476417165594558260731653700087753742937099735304940078833449288067661350929896385517573678493525096495766347841500898743921370557289787885633846441615126345116224170560363953543973622710988197305229293347085116532135396621242294897118159407248085238319231456378859339587138793972557257511004987977974032598015814383397829735388501375247817879166463764743541364900664245321039005385717274574463266583296040470108928675284033262743965179802806424713254530002986287646394591523614458002925740545550969077372733269060019131122130128460689906952517177569194788157279410246059408428587271025522523636745166909930343254201087213766649939480190093971639031544240735485460616075425022521137799498142322564358376204785109331970358737047933220759335518251944643487907722958798637757712291973516245345552493025597343335766411649065395256544141880061744992011661524948900948141615101002825917266883187823684771051233140582322311523103292304898240026345600463407879500656924272827006918044504404051718570234182749371595314516080181162785805416161825126511518025969302662999967300367363813460742079816508657160483086143502998205128990693000592540699393000456936134647495993831543435254383534709781235559070303574635693477092006493696160097315146215747933069538305877416328479530380132118062515094251380701005663618062747677366733548369749937948747145611786722837765386181428849139925820218327336199358595590408070268974313154360583258387278638933233619164501369499954890928398039547135270805937633332421909202581134059633434599514806538047457943213868854719521959495398849102686844622456170255218371897418305505572619491545230031581273793859966713650164148843065592966703537541638334472207089803519341949743445450511611042035272428090877195223482691272840300271125664216302309337744926652183168229129799032451621423717361908689836121071966160362972952115775298367482800093917388383249220767376048327026650751477764905368711763764092849306736200432756765215390875897659077989265698840743560991470987992170290773596929130009998949926036746376763292014465220157457846866737611809730534499634300939174223570355846155658084097090621085482246413332429302336365441376474956979546913589146501597662745897502786296408869636856019155621145558783915644590359544508227333578775702525780928477864915675311080353459416722197724619249822610759811816039797172217111076581739030588110578987059677855453416674488438501443641648832852736888507536062812854677730876847043017310869523553564429625725664707436775432082218163145451257311887564693999800120095084804594986085077187231166174480739003669580503915723673827246041906018190293273187054308752744964730063397152487898223801532951751064604016336614576787677097523323302019692060895388476136166832277867069049242325573811124966026459092822696839778015280458320807941370479284553774184984025875345804559977379520923728648933386855726729298397815124876298073613502208999247393426112981123077268820297622289590840364096210351368953284532190467776418309594930709618500289107489695452379153110962907246810617253865624469870187230973832756428878606656333317583179937469771363713631732679399249304968178516927197994025807286063917822176983019462139959432369236984150845948332126271425926959313106528469756293122358964986341315668586819253673205518185286670095321427676954131183337982371165191280523568048744462500892485600656510399425690992170631275260204519749225344791714121132484020111042768369297417197884795907595478603067714452956323188202687614017992118084689353176067649522013017075822971561768999558189516941735147062332343996558961856135964318137917616245230507702216373783633774610340804677031720030601186945174852157360750892956740659849499932694669733540279433950572725459048759131903163073385385712645158538105691492924840625526688949929481716604296662262255164082367135059671023320822283804938147060023313436025986748863880693009150542657949666224850953649938186363936664539706041846726035386374384184242207456049176348682989049112554208169367317125965413652434275934193787971937992280102837246652172477044549088532340826114422964010251029448038215301264867883975489400488058110995741736087367005597456413612865307022159403612428705185279852932952273810895180035789020252973451445479096735027095611555815479544299668068435687857753927214727660391369129435331254438351299599980800255988874804550637218875884326879033115522701771932745067338560290327113610998191595053890791941192984529913502851068124889588620343236259734163969008470119280062400854013667601829906405724707976771545604841001790290510916218045825936778873037339188838038114423510290727882605073648065248838361202095661031996691725418944800638335193371189215680165438817706201109572957017515079947859870049253435252522952078832642804478186772712728861214167966405397361263041932301039999498265654228278682554422679238107187247418079212377861273678684223756813046921105645885163266679448607705333607809076472589477657659074326462377947120225663595956062605347150865930396787035673379261122574992351797834423033924679541974817585055671719001890704209629727739754750740281740888148751924034754791985714365833036772467909201901782093451356682468518168948627748256329729472799270402777408242350264570320967086328177867655585126685618781541218196351538744172608764387352324757280750681506975051994418170332366536116585626273029533468862449564483274409498883542671664690981600307243793789814645238281540062416279954113164496565022062908754747938116168223478898930428056900452219153504939983075266718601953452007179777923623080696711257324668405074855018485548416264597651157011507524493170835871190991529648355541319601944702655560403768004681946976743959139418823333211308141950682219651183215698449159722332073889189201679247287633131578729967813845141110923330563914676863339959631671000948866092488132453710205069390017553277671789286847849644554671432137614323289719123804857400804996615800014522228778674978621407131300355025472540776509425854438991454312646689278237219232342175201526221048781153026810987269767238902370611566072642352028425726620848673141579767330882907121543962165766516927951863507641727582147242700522401246367810446433517455463294628117279356892545335961888539089684068157347107161276752465038436532236705838159439535336184951042776366936408264581327444181842646107481988625788488227546229810075249954405625352456610272475553220881174216906048703164893032842783100980246176504841730095257581032589693613373341598937341504495070806038354308514630595215407106057625202490133232423576244037081061483823112358559095584424489401105838947788900389465733823904172533242510180990377605482016010547945380273593075130532166929725831123435149072361596799388416461506108538465910785131868850892837726401158301013893852280252172559199034524906356709849619122446251763287898510670894803913195319667050331166812648735464791557360657984500638608851538038459862116676833986510631908354082118887978330825631673886995887608338884201278587570241302812072871674660786370786027659610228641309071757549403363123023751952971547414525819436517011792288513931792958019673716622692983734480067053782147754393277797461600199898587248142264674361103366700807856050319511678868921411895644884788709082745725525278494540304265036903362461101608109733026055642157576397021858661471366264335761735589219015150758199670999118480802671617422021717856917827458937894771184266801345477382291491040107172536108695124949909657120414925582157625829787284968588478723925569203415259860553439178923838414196582584972436934252554496159799171439736605090210473403372070112344909018783959581271586179096828000586908537167051490787706822004660015373046802934412687660140888914395127288681410477348286991239609098693432429238440428735021715280613298353764433852037894593090945955045704974038201043097243997094118421291589654895622864193785775707522956804005713266953583694129565576105982488604357890532553996602168939839616714128452535411049257382676170566433178934935083198730895170541654572382751112938363990409632640350353592571010319833847421554958547434387252763862410714421693765907290123960594454911100079330693853322313588964981775777882319484493107666592922029611158501086920898743738700194738033618042961954449625075186432200882601797259244514905585452059242041904237491258904547127205126881471083781931324745611437981449637049078102056296344775153595940555524574399100145556319329398120552535572198513861891375016215831845679419549597837957310649771223919864589680188134409726174677102051525683074645366455998577781882946757133030107530913745938643835920777802658799194926439500274350599931226637806572008807857188878031452947777697161745238528351285249601626631649923814754884663150965470628858547940911395583177473910576094328828003188323908667625935252731840379675769142932078225125056305484307653459450877091817703117754667944893756177246607976851107877585287346767126229371878416358101440882982898447681881438481029565877281183565397240579312751582167416265120938359407028336994118957074792324016878724175406003014149648199673521003423829088321916114799566171179779392307804561123516192472791321392489645570304400970518879094520284390031381265365516528320467635148255641717855731015096427683870333709936992577532869644833626856981484494553919810733850530220251818193825538804069232713440523121435126735132979994551899006752329112054116493376904054196909621636751198908170050478548905974251174845060972300401171923800818542071923128766294643261166190892540112025239506841541450652151652591241001597890758034627250109832506140685062632921094851434696801126381465344589675932050164671209564199769735413201696822271848566757204593916705931680937877033222252303832571633309341730663121940494307429025108750559820853314360839103866518363408468560036437484501121105624681270236586509204173266291024207363587172730931330218973585883974044237985273591428855919529700780489335330797784777879862326607101175845298884818464014500719352575570271152003793835384319571201872403093590191575009955831495102523681387771753060573830511606500397182427870651405803286928523794111446776391586940848468719785838775907155990453936230630122592287068367673076636834746232907861835915113909978461362390369977149835161249875107848246802853760406137615222623395565524383300307200022268731608738461520472185773563938964696982354167656496197295206145844332584878922454553708091855073459493613679959824302472248701484872641799563932651488713515124399486790431505388730564442012879638864529490739900876215040417424991403895426986535783051487386884214778679249032506174825364815845654697730234188006468814795063084504033772931602991813994998481667305581405934753845595620091207357980440887311459070990046080486838223745678016144199797419777951159891710864765411692605573914528204943454709089578793903246450344675490566936054147289501768824659166692223716686053300469464039915201925815303783452918683438613686178334941114368002996061609921219810878279943197030283924485735348488858973900544195076669428001411020955698464655272138976668738703701920328250254999620879589110514611888195502765526445171079736019753503419735001830394539410461847097216154903117045101039625674693779371021491038392742966999506550097575935994660787013876809495466283878851029801048573703945864475537073009182767395506190336135928447309421523214871932492788901619470506355430946088817301272805513401000005244782892345252107079141808120665233259705357993915696620503952440286654889415628980602196223810173445203377670307737415924167820866502878575262221854015886625194910426888644270000893586295299210102715841994176845760316641567859036920965423800987326434120303592696227649180147323171916148945548397445011076800577340366197478197417743068987669839526593857988775159223955416624387277329694070488666257981040648822737360134080407303590391697587487992687904944350375098555761082324937504799618958320948656183469414663157855035004203667063373520234275485507587536537012805037947028298000797745353990051452371196415202347950310175021569806794188166546674883509243957030196436209791818834224494157380899768379922847120103499592885425358254342992221473460208812342368449539163722803344093872589528921360974176504378397824079214179396767331212839996112846187603642384684529172694402597671036739412301154321024452826745348804568012171429174647684149787775974467398603883848692835232745882974600798890388714069920460159947848447388884602536513066293050399056298275205824691953955935398133907878518116121470179001080219607848847533300528154951749378010670839591025895989157841145175515223261661345037843981328949305793970356647143193355707387618714564603909303306474751367902164548397572689358384883506848014547053587198222612758440430428594575316340899236263926561856659333228918673478906537209801785907662221363157790913962794165436372472859723325812741606837877598537934255703608573816971075678580276000911751060746635534142182562600565097100768915903323559431151762284215957896882132763065761373209513130779874733732119350385848225935544771094780760852327624719054265432299405913544398275559042522817095304670924332376338487139700886350191527485895408462375056060239910885467291927631917013483898578159389073211666967734531078997287463357699757361688385751258846003997819660427571788779580494247139179495283913767544798231596544872974085743389428394961457274857824315936246075364031172654048026616878465810293052611064360781921192098941781837571511293000251726764936211813511592030132169438081223451156430236260654141836716354129372480661671808589059182611516400374770862272675933674641786845886441852388486118107485987614114230339828999594764142943019575686343015252631801042008386995177678572886405500445472926850402780050031964394636058463265767815485505702246381960311595268364006444292271383169283582919452714203258881377937888322748872905148309776133787659288370168459677512514215698690710371838244436061430106792638550068189444777017676481247612852453413699741417801287931418825249223442690659837368468559077615238205115346396925574679015287965913949043075100161265712533361832111853960982215869125975086703091126186517067523239757372589050643329690754310969692457532725258438533695458047698013134095948458968735635742891695360468636514293996370150748146934765198579094352275316223016718657147824136384200553160863778287507845103228078185805658106628827684380395849080800572615630176862762880191322567565417008261873582026371628889081320439661874272613846313770161040209245167432425024495618696365155906968426765720887373351644721414894492474016784779852096080459828952536399702708561319286294065262512754788531678056220570773670186691279143891354941905420519133676038606681487427161188082703465691216027693997258632332605719331155633495386829302157086290135849330977337007199062916307623773061884861421174696081680902157055151638765714123277616423256909493998243552000557780040486759992906579631066459094936687049351557543995853059555363323364339189462957212742600284383531585006260665594072902418214276028594761990428805736478504361845085530861522683150750997334547382341677633392116805198663426558627963826021954173826494295502772294418276121727228004353259656920072803894174908663089903235496321754237708422957323100806544500285210205020251904312137640325424098917424995853974025480566653904483691510233016754413217622420120479409493463285636110773591002651655673067170192881516921132478126610073842864115421157894972334744028009108067096868563756968516667862503277940393530429000382345779092043862203553654484409873171358725193394405282976135808322983767999538641021154670975210042261495522988377055422834717430801587210916813520620175286457310125666924738891854164728439802918461581359279220870273070241126432675509423748633297982222785785441530705921568304472943086911532148615260923155365377216208080737401121228634723948465048247069870700643866084161182092842584063915808819996457834108707045704846601516928617509227163561688282678420617381733368876505486751169720912053382352616588484666672615550437404714035658392650924853197710926812045832549941288506468849022930405546690966000406260862278628658158623887556744640354249029677228814529250689233007637274272354794230785403694509693414478897750377412974658008303206765267377227330279634314963875532211576773713312583402281924868176603960219370883947345520942397156183859234878025131040645020114251823065955840986819075903306295089828762101847492522345725801504307627782281332565400581664728605434114765523657625298919686298114165769867541408412721512424913359951657583867925080108784073047796096495292089535387543646030386129241326783930657437178465497146369158674170659461264426163052832621703533524108891074238704352234497745921368326543825339877391214912649453597830147157626580881156596305124333428047625469282525989504369712318937317673112986823294327729763161572260325375360170960567607701583085543905437740962996827021639700466239669402206390229135485106788557320314267162636449125890510864573834692427661859654384816374129513781251792122735203373777755122410033770939041451078459410969268260130167351832647039253407862355991011442970509343400694010933933427045141284479754124234591525722653375225629140460441744192968782658034514255222447870300850129967795967400770943601456020201016852334936587066580992531130583202898560252545872794603219079237887998193248648733957043069283289000615457926914932137705299504634172772080828081775222767453009362259313285388526871628259487435481171599308694357143106266021885316895135610907573355095497204587164895885656173314738552646930099508227650212997817560137821385598336158869036456264334651755298704560333803870002925428473259969315385605174938896784065605763330050619268444723296592812244578946700367438289035763747382222175069216227930384941387198610445856091636767972064114737947141304672285858503009266989134732254472932326535974577970736376375622738921916280334728650762449688024558505663687076291176751500040925788433381104058126717777486664292290981680309098277904981726620025145762743296623861814765413077075853566777467189271812743607917845490993920558304657476186402127338596163183614618026387556513464551292391443160837801592665607553032289149442265236214081150354334411360095601872901153605737597734179045290418246520094609659572210381650411090413471996001787628631974394261336578423805038764581499084046261708808234315158810326248324769584921980472550175487404208603543653939843429340809418155119941035367152379130824952582767217801392823005337644535205884736258613719777733562810633130163257048000782464340165908474995995613734996027586821301618440786093653215839919709118670673349998623047969987825030752212205201043766925522646868534240420338370286195955001463418265939853200167141169542642228272771973084425187236247271237108194870151192233619234336564394335058382697833409382828429921170587520073157965343567441766923294503545621161074099927844661241599598146147158155533732980791331758863472211897632278638126969636696182471120268153044504006951236757219176595337239735585916810111977591303156853365344301693189508269973566911744694103547265338346966307529366965516911144863027519550490552833136582178396690128975763759365520242374792425721488480538527572667769023815940490143649872954474438511958595293701835772963245837913619048962398267808874682953787569474967441980607728296299390076878856844732297289121307431426894020616160565810411310933436740253195160953679911277433811682314922528302435077335952290972514936572080032866220247068018893646498652368169616854361863673864390431308395618267579025408864981156291643832240772128004643205746535248160092944667283876784388794132938396446993216912748698396025613972934484662873813686773561918516717942243914539392152532096576934339179735469378439766080665458227132748697138896854401114291589339201301271524470767295090243025262128873288086655756633773010046732646395786152208019656189725466190942321667511412044743758081361234990190319845403588693426742706144845182225394878867666510375396479682959963310853644503623066883129996436869592217385930883212008966141027030736150192894703633364878008936630480362396629216342203282391628022392403793349109854263627766667106538779024474217440390525379865370456503208393714847768756246784783146352898253701495783930946323439673727197139494648314570500303973335008404887058347573240039829609783215229431148638775268419275018625040106114802082033999264517823678398866742877560295130933492115043105175630025823509889915455674480169694477611322546509652637750647839119077053413930590677318762564317818245621165966356431429300962992734184275369365026075958478763173497824562976014778426607833373912080393184700051172230233742836083604610629368433003167169901924225551114265890008323660302576764646213549513878079738230604580235972142437371082832256675959921849699320118699614254304859782186609896631003215091735528592886796255945817558745667434061842017445234576659614518293895443301157774502139415567992158565534447883585974077370706542808511515765511242009078004331854860697009961629748587389702408103673082541087492808808470421966614479007149370889510533769112693045299338107875320358472112686854185046691724513789661619564812900848965841618239421554535462808321030221865147949168662438971000879245606201476721835454736502993549838471477711476478506461838668938876701169752953554648614954332744833748637639761258912557093774866503964174469757676180292508150688417924801218964145370373376002125503648477552488958251078480375932831419760475973286451545798474238346903054143971834196184147540186724305766155924061850068981292260848546203460019710024590873974343556822762473114937847490605333647240819553515364860157231409078684986321219201257022114835955961866769602157501740744944481417469374142250370325513658225778712936837793716810734301413550987744332934896043279297395572289449145426616611024114143132523037814513668522871149488281140179146476732762224342753918330150288971722313539489737069415398150187060937184989307127134370317868434186708069797853866439997549061775412738597246722261494579506319920862510118244121471758590210450351899909359737258116130767056888782575718813353431755600344542520517776760922963345044033378455074907574502906999375367332709148926447820384190434118333113718430309644555885318550098619385814575427367538687046706374748147283239385800848148542438393863434788812530727964242703668596872978517467625730225562658714791026965210683125045706378676718213635536088550029486427137842404390990123170969211422838314050783378255887413178925769546325289733314257109210343720555048786422983708490667587541226508242433449824886868671275414390626558848409613041929733639671331560972958199614958255942586230914259622638216578063516781619999732253348325558291820148998616708802164042073906392935949592765995562134319140533772971339978675499222445936969075110050596152221999426266621263579486738835142323018636710786714648036174918323428309242646098768188549602374346542951866477952408372218318706040963726122125248101785780300272095908838406993509983458818909731739874607306194851910824154123470576690587300736328246304866436064460429806065385688860490166019011361696527002635798531789000174577214687265932495410187275289895287555802059875850659084466082706822715705992953734562746396818509608693329543996890585884682138408066117817078048541314027267223591029741060714290167285226558514275233046823124971632857904508158055823829817893454174241518532526189106255363543265909081013201572795534729108927037569963270523254453948442137658929516629460697270110299847447608866432218575115554282284634471030571967106786121863932486051192423818746106304910385298544683726187376087743642433195012089148067257410844655611558831771968688640574840518111635385972410333824471827097219461403811680701792877136572640855873829213037423608941538928441687401392205614828084561661989461187390409499460994798649082233030305088359905987500578557531390973428734542005189970098394731639904639473356573906316990250258943271438592621132377085793060630130673144417103322485689958207682454881962843908444121663404324722448643049243196528033948274794968043389573351248536606844363986130483237920043516746300012593143287173169293061569982547171198134327599944229420761934980622976838634289003999862482477140010289334289972119500562890635407763235260291242841155719638995217146425764859978587572425409769127919279703836695553087128706969934276174797799295798756507459480478517569624031440729149813718051655881425418079103600209237379224549618585445966870308240553700945469399624444548351176279833083556428725239326681423287002626504938775157682557484957319516966728386739220389143767566622926099277063398467678123248980594451643295709141362470568263802239202706348968567425737214918200259860134958423186005918809149473467141345425366459111371261936404048200423203156179017908521163634715198912555680295960875149747529970664588689815240239103580454518459900113487077710919710829678140906470368449549753803879231243192568933834265775973393229802229564952497691957614087364247362866878575148114919694408694080112646770465986910417732815729749959948707196852347509500215480663520109259513250999600136212345645705813078327786391375723616856109969144869820049174649973681262125408719011409536315419617501546353074078138040495202241842806866976637413794023784658766576707944168648683703531615187990987675023515118713239845909762963441372508883518334342348763422495384728711517419796836972840075081855190152183072986477985965623578289038368190510724592577599205614067195101903589211993084577524505162370245378066627490005819550097693481526987613509194760285386523812691572540782664713126965257322717477574180756006864253916213794847904426651897824790575178645223280829719342723077735998412767046505314417198448665991708801102264850188945011440572430984289986002438227336665044754902798139162114396591063050749481174002450779596470552062845470024397370172381372047643004442957834678506455117424499757987501416309222525341477927476394330792819831489537585290758775114950664487700247098460154305997648637986912743734245179076163215610699959631900588802910273615991537186750850508802959948192438452875412417068657584305080642052607153563162241286586387799506984347367822407409722734588729546757220526764183645832290074487885920497995818379033855590528656561956704204805196559071001208783085914494950345292183556037571987172162092449545688918582458702639079267674238114684021678984167156834571914505790518431838970870410730360476578094219682417576787205567167462819447539944448352569053816160891622896232532155890822449128728867594569581274327342617078762804074652358134757576028434810986136074768594231033583894769060585176372581825587134199511444282376638105368605821267340081583482511468855653342082819587643705791537350754321465521659225349919282707288899449743461716922040188259615580360768968435272900371007003138032506228114127040164221072914983329155095937180426514582616787175394921026696517697560402886762904734653199796056277366075969358638620142116206828148299080012473156603675548072765039786345128400111642059932254761569863157510227470573577365831634650367834668411986447004666576925877045207638456693371549603463925865301276332003906395380418107715985078447921219079873965846276264620107103691342692657481029472663851204509922147854182674262843439882913773127852580605424652452550782328723304246739413914501005686199086296927337576138891013712033549158690983349289995926705020171937817777088323626115466973339742098646653702472907968489826109796833446047087598814705314103881600969092107124815482762253095278326821856736705885896436721957655595633942292172908123203655402569150923171902663587832628879448948081686723432360243938634610373992246495427853025390082450806702286222354918013025681530407994796231060817175206453327872771305900883828888496110080947533001412575209616292406958093254940415219543677399179712997268901247839346043043650745200058957873526250824846290928610975276538871500812453322795876460997415036506626362571923461289598838833244059027868853580856344351818785593096070353563250324993914031385467014806381705386372387055089292750320249954988142285162153196156921314702590216404729743929234263918899815074412084773343346929002872441801420850179124345144026219716023361157151822379835220474217883332075332463412671954687045611667104908702438256686856264422734576767601785374466448003466283333820413337432791798620389612280136953880161126327521153008877442332248069645614337238440012711323537204627440865600572609556709075829924162415719336676278544321290832213099580784715819704735150335871351769103526659778200065918511506439316262523460362744976547266666372633117093483388861768460503925258146779793562705946929520689137631788819235154587796962476892073255116808591667820650955227406060967635003286738410854036519912760492082547902451299379488683229096050548284691795376196677275022968424065170635556852760779792552378535194311453590157409365919977768965601688953125979459304940995995225595636716314576682253168337888783357059321453791520236743292118523361370340206878466858390602797198522633374714787176800578368185356966236780925493504991008844146022816918065255845046600552115863846323820082831545095305690417945392648467805963392301398230666384483804497314619710243728897054379420502564356250032836567626061561051575953629308231307853869913154729144948014299659675748665098351166412747833027730866828412128116159433698193081555769317595515415444125187521670086835902790170673151302927902809098604152048100767272165933927064291428340046877344792656589401832229353146362272527036487299618426775318591486404453298792782319571458031170298466661353125377002380786655966778101937739055395280702407614642833586853506612211980870533145966811462465635203386764110084486072130684852804166033207124723280655120962562950420718225442656458277313168094585742953185036200472726980248940843836320700348765277511543480015396821931758941906556959139583418619902490330488792501315779434860541696098812000547251284297308808931333147520977362668111903304413837055649625737865092604930609662902642755187382567627585124283726510636930919357342320239364375902419570942742463997435691588025747389901000368572372918609390828422391620246677722596948697694919772489513461062836642848637706706232090826002637645702293295702646888508190441704523292542741284815815658540336845502556679518823511316894956316309312623051683702884483986496251816337727210033247870943916514911229636381214237535015510593956877072188296936330091387325797487682615023734830505760803143466277339700334740956428077311899695707584697073880180248508378007186814813675235217289921594392139369509520772560728139764092829879838401266726513291071951376212851856962717186814936908808782703583580166073331456953766745328476890843137619874968455469578823290230477879813483090318541372437235870943719510901830559858869586110350518992142878438119662626407293653572862051513282046409584512535211692380179708123357551974752650242614866039482152187164372063090368871820404257726122641194791871456660820482320254370778688955410267950811190097578970687760847976783364236812789552817641660922426634335991574816226946615327026671884839145580756297929567207352136902900295080034794320099121983991396661589657489253959640443106533433431543928556541088128380820812761424935775617049415205964174320698628367615353198509066833142364972052535438847596127599747981682005407999880974918578134296462517498175061322520129646142606598800476086333146440097211353156108199768129431470234680290679195097955830885848947801608312208273114449333236942624762885968295623670309089551782210199766731857379262240579831963535534254575083590595714910870158240200312922931326763243244999524879447928967507919321145874938326045095838422676437231016858728728396178979456395513906103470085588026022912767473928312858537537152070650360384120866716171677889872465752926390802357749629104176592511449095562784516735113623876324814513669057264290269730298532351631281167472874733379890755618170655518289224837081719089547436764906320736924620065657561590671948993324599543064110508251204650541625283173381774408914907964479839723660977601646038343161079513282644318713578646007408275563987074364461495638736993437353741778979930268549323928937834745160809537407401032062428572082691801907595952634583567425486201262871129898591888931139783304832872288447853726293673631199989261290668345223517573762349059104567532400018768950257773451704614664073346480980434110022554570345255977734196926114625346612698973697107906120445473807610831844717509896352347633445336356529204527987382614404426617979812164159892718239194137699447693684585126093758694777256441639934321657365627006146099369993365523682271894766313706105028174036669408316396078747621461948793093652096182739015840148725981588351304137309768618710162418614107857234744372262646426932519815287970547610830373639392267637588042942945274796081055209377886797170537057639188695259568988340153549037920448771385586446394960855292828650676058717500891270173580135714814116814560335090888844106186189006471869454038434144628576387685111563577760888499080805958401529620251800448174456250529852641210697547425783548821280470340070825200307771657179602930471337074658282758548213521300446628972385360133991979116086974317159938780609272239731478663504815456924523405870091271757620494551923438376429519206127542602345178893829063608205612927470840926476813859977102050951669735162730631790893370477905755014235512559578957053957304480860529704552896282071808136238640645132368073026944342701710558615409859945933091732499182774937736055281826965283044026206229861433859902049396915358914350659977882431202591546017997074820012502731435372670374884744284697048246245704047574549513733354796093934915425722265623857636160897372226274419047157098625346257679491359861193011148968459769272173958363437398311102252807675196166701308180035047364531366695863253565668883107309274299912333041223572792038881287550861437772686784016884992575007574407058242835675570241540411148906495920320411215616228156336718012431928343279364896228703942906792010245415265610376309868783999570870477709901872908722280973382391457380420889797232301187056626203569301263360951297081149195449043705838047981945412510126968296358489132836283868400981551107858627301243295735683259414922142166422808292879661840754633827579919390271862409980330893568352639615365657332871839029235221062146961247103681797001475179885009540087910166129944775032785185550382192476353182094566206585532201489666782945497498914458622254372681703884268950937937110718616098197596650709691884107475800121770969490470666223252939456223629959150919669553426630707334717567253441189516661030992855948751322442883099672830161181089028360597118581663745531725091190271477874016294687248708567291886965545923427571697331954595856507459576753927995475191603622260293133142847911612817511966585844568969924560409791827114665765575700554370388983316741577636103323144104597899114597723414116569695598894113138624435808048426483147618363800105928476865373684675739587135756670909395331220084532545674754191210686923135004887884722977646385323503108737534308025898333496854631536214110832970327706198194700784284247274036957587696284915268485446789612527777268880008680233595211279854364144399208609963296306258301292310755457572777181276321552246256122604019632127746836946482749269017613880457357537711158949764071862288701848222542866555755827523443500197723643663949657794279836888295185467044775613161224943254735603100875009291399949122474014508914007330431895478973347784849939413803445884291504919719576088478458490548215943956871797850725228173103190987890063087204014406798230621977708387248063005303755115108306631580321151483520838047262765355137051566730693979693860796432304124983552815289023330253638366203485811124367786620900953973651944156793595742322522761327500123900900463035134999672797133827682524972082140334824794110993051537168664310667419100851256801499119781125972424184934376098252162549413586837735618342378848703810682360724056991130861553150131636981708139153149664422009225565105895880982269452240532190626601339997375660016267237600502363862153291331105236224728054017009426940372358691969094165234392118295504827606118792016221087736043583863704455631013521853929195864223117176277369798692914539267747770114376718097504661609975082539414531797251523230859631286610122587966301116794955818882870947074998810589253605887511281893598284058719718307204874939454711570265293729009055965699413868925650543483020818687624814160089820900569828477492980501231868937830104296892856701660590411253047818830035420966616439723889173690760150012225794958941459965783710402740748005219502275903832063904589328179753922761453244659038546064574382188692813223853561276905673452380048271391132548013219483405162838825664725663050179956848624301601972718877564911842462047122514021996143650590984251445173418749407642452787982420796575453252715184681908241007607699030138070350734189885830486721506133534487190201808035043812331551460263860646304314159498614640807092759495309325187369409058901137567924735625711888491233442136593521765337894754630051601607926773796642853227452209823719104393901274279813094350390502937452576244314809896666321404074704391029224342289469164105124689540683881992660223026609185019742364433391609621695957820338404316044584139885017251042735442236914123633965677710282829886341841376102079621918657790279848513056382995303715482803815800734662724541125448163808963240553837182632074108138947340823996289810059081278009653250218853229321180299796408263310516734938949141436917073558775212450339590474472399298096493847582851585343454919130245091115106165920165182220766375752955233000015373651107540777655241766474716822654645955735921000288071901640253880231564727334390880268356402239652616191323148293930415062904522355629557617264951660053411081369903357172042271652545637986267674467132668903154019419729745065726630470284044842241081750146212870221945734543633182729653279534804448650897972114619716551896169737872199773920252432834483692516816913947952560951901753189502274641211717693838796722256699745543573699187968811441970301126580178609089608592473525718170780009079124025804137404378390589129687751245057167644117802183040353099022289351770513094899892703063394228393261733202603916796635987096329439292458933796238247927771734775557463196721040784455146120006242193436004971988671465812240314678401204063308502048261634513154053103455498245315903268180528753031967759123683232474379307214503963910326720862488851394769983105798946292461264746153034098699132999143878767995835047534907952724921135934833781528276578249735672071950767016119540965629117840375118708081782051008021534150572461373454005037835351236729167865141896381437625115139785195061628402614321131707057845646639882519227990653415907649541878948577898479244213319461624050402953877825985495016431785829994036255883382458220989946954206933282439673896504603350440391066661065686545415981424801891121377711439776519322828752841212669067119964060048080064763674023564512961256750914616996957938274453216462841164440877724978169753185550790089832488921403158756228535649625434412784007147846362137829821965760105519086645360325960541854445937043060415383156757737498269750805762198180081162896204561770286209227063345143704727157857254656902004605158105580632719360301849573059252961487585631681965128756483545277667509117901138288964489946886708502975181194189500447158779634479035414625741650630485622097417177621228935290825283001166153242658820831997505913317643102902602082387439260402550035012132323278356908910805290770403485448158018162549418366209094084132842486499522886365911364480959633333031193851332945849772822291495764543590481390859433032545500012536437766714426748765393843940809953186861222419659194852844671940833153903690031694027648632830360907060039000804693944231239952444130802555083754978680604399435909044754521216035705190211503185479778685761447355402540158947537834428512927739972934555664929997906865634673755836628110124321679949878501320834871081142869782342159583962063478085667184636682081184332812010060602108821888330379276320167021920337808469783625371389785046584803061592245128795727820342483144321152510943880647946643560606746096066484663817736853634469173736557762737410130260686875350844427575696238062556776906268872983160224956271364626399834241051581866353859299994029823311740444570096088926196101396430313029464297302611832438902496965907845452028491849226027193853286775919773784273657744606613183560974200298285824738749870222014231919397758167873564295422070919832133340129515411868518050459902082634221672950117432758435098996957112932090833855013497205989576017088361880915670475129277278799739589540188008261555536773251124678503828663607110491981577810664936645256257028788669088254408389856546263037918979661055852316819356028440007939409888150879690785414107361286652321772253850112153576677912730262481861083584460236805018373621726061677644773726840541293673013451559413861655310492395226707926905369126735847047197484882196517652697990838823059764467591511177047371553075807798200490319963897618122913466096320096383990727024576759030027130790797408186966673984297264450534072600727800246566276397300815902357353863136826462790814421181683579304793064312464715447333634285598215482057605149751842208357867674814378534459441886684029061077080544468917675869583941597370915845345798693007167527994883473788461128510427965287469345687286824573512830229895238029506323392473643656428643119393522734255621345351220338664444703807240192287448063446663565806060760119594502821016732993738534414418509538572121281312367728352459504547671421910834030698687908502922517646383752217231066180207883465102481344107176273110630139167071535210413105675678572895945481938735047849164747096816529312847733233218869623371804192614597540119637186378689076768915180061526191815758299878111934878556463679416049296327581242231138667929573793873476577345258629798004680715753139826721308672222824230958114939082174235948086533702699235155076094226316101252807892618206250967337035236246539462494965131587510824705771175406203979348609589506392866778337030500447200268354368410117533272976395171857893998593788422285865414925557814304724799162257085985184417413156436085267031664243044144310576912011124340350337250607959950826234591268634415964817925989524355303482052813635126365322415495368092957189981933418120896142094184295735381743123254521020877669981411207319850911545635097987203882379855587628605444729814727067672850344900369498139552082969430546863190173872197354974789121574954186102423757524661396419464378105034803939416193220898634066956877857262491924745740418915587745799180670916747227622494138323059734873100544575036100490760704776814229866723098633563392038075678276817847732130641058602194025245276586476289733393901096126283259272911357502004655220819842716989997785144978894113351717172489407963778852790242916056902141633328592099052043779130399768079973084566320062762264139227608603143187595340434129427456485497094099769619268076722874998319912508458375218579075621246093591901105048968258230849029701764989882473090553969551960318534466458418475171958039567728856816642899614115926724249896023884282373304027381604817773529316466008155944773688050197826409148652001054665424124509578972596621466789661280013205502384522792502990625357856217277425918895515564815386258999571977746670726419385001777570640297959208536936685024181358369713127480825337032751432443924921308196829080876545919503413254911215191250945549030185983411417122444559074211720999172615870846065022984669519351386520407676054360577139503796248261566789476978839324694067435991880682884422394228408847749112538141165187088437121600957444348786618365962152105092031117806054312300075708444438369475360565169666397973041337704514280949194741569231799558399613178237190407598692410610089107376802352424777380566535873213832884221849854612339653167591219435680075142844890834843737896630447485059397543641558896459321450199645652062955584631424352906609129675428815838159092482022685762848819809929911824719112171057014846789556594749405703093550711913659708614662241872286694975542572174791180890927790887714887917200121128817596320472721155159451859260360050289615634304750309832034113489650688469916505314155455269830148652068288992351250914459157430715420598962404556295832246488428198146677953922683149702018659953717654680034665730587714569428510128060666655613734494616871640476432734637769452857398359520118948750932282568784002075341828999786280477599007492664034343959161505526583423170068756678405790979632776527762930033146536778281374748999812253789382761438954994211636794394647016509800425701265181940105139248793942155380840489572766138300155395098842221225105569062627689297952276917877060481569987517130471665026572575339811993640140782774457304743172282518039657942127803300527460536863156113524698610758493674726496156235217934604961613789817713982932779811153748223657833585947386384957788173787951819075681616781548114677441115811873238277553427712642459098431516043179435334537951595395664107648473396953660952102027190824822058465981594335694024273855592267680858055917909361061071191457544896860928681364047749483016357221993135790116452060941268658658246051469602510827392616778602374074979211757811961482648885897762501469912296701033954747065384513457041508706360686185048751000895127824306712301431689365268928717917783509179468133885065233241744113475380652130106216936537732669023218883581754296728235866855984539417415700966607162881931995967287267145367206171884483852156215457437976258178772566740137106173107028180962737627541495503417699404756379428943440820739093530152440863074657318374550191578275975690534288219034911303892353122787316307686948944173817012318480644765000610314914113987259880629334857041656313793400799860230080358518576592025193266440083595562928760146470692005736346163703572411261558080266347605667053978775971792731686267204795942488302752966403343107612737713497784990526956617792056881059259630401359677038427169476360299975440801835049427420733152633650807461704508149705876325603197303800887406643050619347482905696305613240654847175435283119742501817380438790518816543069515548322812240568424805307832026856138664783407060276275960011241144486803591472574083636558658452942508105536741975309040698376321588349667338066602877142096926540899727982005884773065540498298159528947747582146283791626880627830032414373296352595235500453085281763312058738964024949319478229428721907587373145961716632551441688163651735785270168023934346840176001599053014099497283963047787729209415472951592782551010375451799490877665154104426939154765114885348282065891252651646524900211572298050208757622237802495736981397504164871258494198340609151659092141034498755490077992959309659804385800273763657738811091833533805625553933285785442197833215178922176965189743696894957143050781902053143906161384238745562155385729886220826102847142445118124610524694305272282767135959429469187338448755206863275211900833076822693653946734415398987617712978902219177024829608226048271134061770138863230103985308428655517895453780259383162349828371939025365423763609104313870758822984176262699556936257113325593541791467954719833164004045553183040901570815984829910157671931157733271263028712439731444556151976897354635714379501575735177462018442050355463396325600268186189799797481159477737364079232643187115740286987193267569420022940325263870569871153736346481255948833066316586884780555918520126757656102200207264498183307795336293895606359233833122005347913540498579985139652064468581574129232370579529885456337123388550369038653134616677369523438901591320509376178834409171758190468824125959378845085014893405239105480701890055797442680671415535580896319950749294970842277312654022261785268907110571657007597055622805861485476965299086811968145765388652082739578441828303328820322187979321901068886720717635616657468239190929576523173340859633705250621687546717206450761978775371867453777435768628533297184122081042120740303149093105098829462275123505760870234711961754980920795108745096521525202276707253832133376625009679832888778344342005234887604828937219555796314737245380582330527053346348028907225002534758397957745743778469200097123434572357153022840353829092252731954690758926062607767164854539253347151547772722571790153749212578086635489781072399071317255182250097722979981359649361451599651932727519096383289447557845023696960868903294101906741389378771022896993058253908991556396386194965781612519415031821541074876655096124808404168472330762062743840854535307173013695196954772315720475641293365342313812403474725001098135992561682074651423097357231289800067888009729859323558061921755865095217099846228779148026482521429806247371591056587476968714826369121734631584792675644125360320002032265583841608592932361194218280072890855122738540326348654654085089340806546259542385219545942298177874817167095237849893816427520856065181579937148999542959272972420029473897673027812944529800270671051096490380743752386145030305585442773538035099284924435886085792056471662899240761526192064477124479755141418000976670494357585517292152279804455033647820455820881380985417977004202954100500947689096378059727619283460531227345701338159836837184194975964565079030524597654290106690340857008122955740242343636222386030739600933681681272168810319475327981494818963394356955478148654809022827807707409254891849002653529743697642462558655093393854053850892587848375721259509901099045647031553405930324104704484922745202762118195043800402715152692500193194954800842577285690847617200954381533140754773108060567395788470048270974313100363259682523720088910560698392105214149083020902558709300028704465829764591283576566870558625295918434724288144876653298861375958557436483454336106434736098776528645944060991736563831912801585095725756261166567806351769896051457699778063704668489403727184202615232703042098389065690925425326146577535033396146657489587351797258431685204613532458261070970075138694184792943724611927760738984017166760105272853800689278632192759170576810823142941356676360417612611064655629649391406726394195400779434327755488641056439027636256157705336671450703884495919153289708525994028277895240760783770944973345395810412899289141833715046540612054528742917942958500586121704089569444519463207208056846699641338106160003089564264544846628743821171243204635847762023757141324543788845644141260128268777401307182125303268815367966034345537245652516891267217995980906296126430992000908418632267991832804287285104360566584039663380948175903263514814509553762066452539814643848013083353168935050366953449320531435103619524316535703847930559616217353863025346845597785397504398875377679834807028959708023593250233589110502469777271246655753255857089100953306920678198990451770638588524208802120315762849959774140447966582155233550094485223760219356446515654895968832381904562341774466059032154850499910550943080456300295553595276118919188299781103616384308230474337718125148103576655972636635863986119847983643777285105698716483108889646258459613864010943721496916274281998613082367657507422795657261858561876500389304797388820915628977868634012165751734300598251909691541409237122838333190682854499988309146833143989533726214155058151481973470495237686584427910012736734058739352709975907338329865304569900635150679638864756167801944467648961043927536292759085528898922153870835186707654939346496448256821788528739190894284015608893840240694407477047965237386831241838193621725641681882869547485726095970200662987286480182347068735791391310866035419011606038377300276125948988180069476828167788594540087844908935639796805690926178300083539766217492970355376604894148299076019902192855341993107457331228185637838995051520941042654083173399986799572094291535121404540402562687383120691747624235096566259648892573753801430510430288165911073251835409546377945453916011376600117650169874297203515884168557955141786142672622245782052517561231225967737218429837726538613651237042266222486371684133004051472052654112457227137498337239631696812862350537094661432886743745703733433411898640633548182700352974988126487815643939570033187889012681263462883274006133191173254897774616461542028820013742942532854748824962199551116953864573907785906349235171197287999550751835617681871161145108653336742917216462016033275274892966414638023199865705911670719139965521405408594954675767762832972050991727015241102603998391449218937163706590925426031390838475706264434467833280268704303927273873272473306742396204601402537168891470794623677937807805712143722881928749488707546770664606277176757294862263114395770267634840740403066985822039319959489550633735236203704095251991816685154461750302647111370555886121227648521451168299165540408099780115060097259363629441498416658085021391536675346390270200601401453517715683534173967944046707803541423522214124629364878049023642813037597168032144416454498138105626457136045418298672794992872183117450039327085476506661403192401941786346842272660510344225319947640405258184423264802267454230838691861862206319551365677949136095908337407926547136324596457503875727911096286134988565948865264834788214712096970935337175460114233007250037216914456002094640921697603144666280099106629635585261571961547818922661395072863220820232802552281486152181191481082204424696006882674094152246153078656046296696072058281701133495098639465147535672550383211408477556732533536881075804486126760860627077886075601565830031071699321042991467150610153031627413417465284624478875672356475165471063315183817863590763616091729764615588357411997122522892439116995566383356547994251216202212758922464621323567049199818643441869273687273293621471481763340566379859400431167094135452744423729057605441695886752086785010312022777614649796071524114153518642671013587029414242386922896219922616636881094471926540086674015522498195371274665227732164330645012967660269174880614778188352339523562170137772094145620050333108268428403616490600666508971604901701752087041212817387415453628927173882339368330202501129432164456889197691670870486023190305624046844724130927524060786507953660158743013896264142075748800296806816962518559650778708814800561133989861345331517515506011187917137544965520018718790034402238691299654958911485416274857228812632756118737245828203959602210013265538018678777871729275491829755258982259746551974790175253063114950267747278992704132360477753895117729715180883131655463351714805223929077851201279404937048955841097452495992867109622743068531516725774420230687771878271333597955925970892135510602049532379149376788638749308514679099078339898780067811646848169281561750250370624367007264912707427746255428020271494029959004257698792027389249759349993320285018633740071931103855996828959297969869832873498161283558595451534406662412349049002501376336480357006191503488879271308235823254088715661686435383196408478081716299710355584191513952549007530474771465756178306771403042497732878994265271074117828832593304687543830301819674442351165311261139040891034418118872971580734788460058075407773130134023862680774050923110792204100566623196501507491950897914436350419518560832893141019919550140770575342298636811220757067313220151553808899181414618525683902577660443816040299995363363154445775366127088357598296871744773133776949633057249474423456082699398653778395504610690616983845054454058967237969758387374904249244292132197900451263964485462357367550510383331206470417300778755593978894481166853484710651244640464879672968025833094774138437977460417989164252805940716462555104440924721892269225373536567788426350873862948130425211905741204464558611295901223232947618239009364210119168058062290209605279008320322787622575928302861292391373015347956522606701867603500758399463025025120767057128225937839144882864568771850542321740709532614925170802939962830574831495612425380129087307234999007577443679401390219461509494651586889501083629091596991554756767868234295500002029961542511236103502201369309255020647807936915204713744128754527221551586430707422750699396617171319863293262722363459841688020181826186909008063451376202566090825358823213197170299971432990170154239624160297428236160780561681948271905092539548757193363794308258778032076149571476652412443036165101398928770912416745109577306382848434466291161641473942565401929087409663630475950365729542727305144256734371018985485060317498344230628307594521645273208577076304992420123871626825505005506843871491698209526360262039590145193303782468542242515217578821401406073732791690363269830747539897891869730879967398987661579464974896553929901985879694017611895878039739296471624176110049292424287318257637737184786874901385731854389626275823244833944695206938968619874559855119117292192798589292120147267678781440928900367795390405094791324376410746561167952683591926329691347237567877288816860683385629485569427154635849792497975553386432530980952043128070414938589091367499283275276336478602342525888928618333435103753099233794624217460055861992454366118464073583101658477915783921515274819027414151766733164898457587858893898717282739597413272688778127094384602537489003715168570840843529459529492244150947065253314612865920178392101572900759357847762826288201777809172864301906840577713504571214091658121248094996739863137167788086642399212053368775831725670207371781687200135305374284234851551044035086163699697078403302234939342243618586725477843147694617838708434875910812915907092349215451380296764028292862931523670082148699270330513087448030223935560962687352126600444767784371711099900786023279957373699341449226492064484231410716466459199309641103118373963429281393965528347062765461218991158420468506613574068516455494452847046260183273851104744784579202338199705437365424083286828655101345324468961562405048237921187843970600722392539006029365779049558400705360609073091348312920422685630510086764744508933586731611584994213459865491708186877415278898440829730929538224491201797576834203131893034186064125749279674349208237610250593631252804885646862086637203735549293147780543621755189842399461651591683133954100294168192620318223626562730374135998740111872158709427865612554263917597504679742559791809533215567315882861089189779758367224452583225301748634772691377689536854492093326123530539775727406278593251594409474607270381063653700505128144727729880168077287478701800043689087377480457356993268506853929535666491326128188984275708093304828021423406149924819752223567042382965119130098444092565831307038884476439277843773921909205437582459253978421461995483243909982519341466909003524727252342422208029160077365092899338596862522132059042072787910463564484897563281349164795394652363323445584958807299812097963392716026778489915054006682830422436830302479175937202812639525835362907019593886960200454616018758400986575093644765363928508696380181663383958367454253174434652481782607843956310273346459945320412657133632859754450285839591229391439316882996456193837378616189038112964197257607947122596003082069530350512440418589803978791473040397665470011122095224237062237032032942293181172312628962018610955756691910169778634628059973524336442035068855941272891306752392162952154643407372907496298639992748588964922537064280787418871689842125401794657578017032252175722595362103357777168196216682681558720628218173616239332570903655210327572856519979806404701253120670975385471258625147615920282950448053785080174837973538231748258764208887594795599401841771502361885110597120561725797838141164252908939488649343718328961034836038764277031709657611604475187898361702149809145059324340761799246076246606102597501155194803026327506139387250260556297323922093493765047692417455667901878721782145485127073192875172650366708543109617769656446416046104464510912845208491033359996748501693193107372245564699735316416931968421707224909913598267543390788641164829479932811574568766870112450107524151115373235908041076173536611719942701532171928408769607558111146497227252193279056670115769191422639892396249122700340696815987117616067032925012044187796446545810097462011303870166507645061749518475202838960907220230392943964550428439706919012661983829894560827065341750126021992298797908340985179981047021494308602825825117262927782203869519064026602066966676047887026106934790745083211096978286498952732377022360885008928072704222903897509779381161170441426179315262820267480147217706807878764867043209641096291933991342153588901784324696817153069378613807902886497539365641809451162446586439612869444962607655446376154380755234774262896555345427536621483666699339544255974203078700825536716700544944932984256982908927008557751842909123349950412360103791165630680853564272941866160780194741444261997775316860950356021197214398429485646513191272828803060443866719431492914051358413638516440014992473147662584735191304424136774074631962649375416063392248131033842341683874796388365424719246872137766007629268591415989040760097934882598434417986492915187495435944312036364570129033404887625657008489749445503403245833958465339601608587361903594294048278164710187273782149987348127887610195968714954202493293732552138359671003689383435504289396954603592968108743583630837975637415404786027827202976705066478650170803852363462054325867765116141873786114729209231273176469530848069089318186310293656391400682929164223890210496706573270259368400137370699157994447001917866479635783566012309234781933998574069634629035287004411277906163113932751686392627731351960456568482338236140222582572324747889892708136520610133070566852089025638585247216911324214066113148924821555760226852004304351942609309519397702567890029388353232880185194229053736280420615730558501048633781116248301726469062912076828741922425315823759315432307414438879609056565618918837261345320853003753824778175338459599296809732687965703178308272610701277216963906180689572715887565266266286550907621480988811241836020733493987477705652054492140551895814509909300326269898791505309939607816028697736212881285285251922674777654247862434767653993798295880795318573504761131344835011621206638094041326049990459680400965578506088194415782488216977567780904451188423879065147328859503960880796483533759793669325930793483703615964196673267961918458844778798888610550373330971920503731456319704107645664208131530827456199099942377584467749234213590127554908018426840316028290050465238236606996201322589742577316512759910664301605451065820811963631526504284778445829677784839622162294000099546039772782848429328146406319987292419317211036577998397192763735649743781516718609606986280752108242061744558437090498522177368462048063471667823235815262556317840774911582756760985260383012262843585943719947893175275377934608442682395891919140670734637486715048678599408621415734329406738926828886880183164784074504131939343957835415507933437892139992022234713183156096391190768333517396534212004470670495532005231544838327569523837522287462467181142562443076660561261976219194689545648903935489776505561343918328434222085832038597508284234066248092206117144718818603857643366460224437952149432082115780019969656665824372285621876914586697861386831973148028416395446827710653991615807532069823561130504520615893317684093782340967513602932469552470985428178937116158056190934328016337925930069011701332282934707721592736927279205181390591265081416538784920608240209413804107996140950958857006399677800184070663829481956765163348101351999331762077665591184070216866279789918113356659743053368103359225384122600443648929569028526564008312303412202007930194698936446883031047199800292898173261366271714677166860996142625597937737115209055391990188709331454275800075373676186656157406930749629795713457770324197352606403586240635176567317465286609451011029096809686048418608245819451930448619194695170404468428698306151524738354368005920631189631320719741409669048564588791019725475631865572014573187165574659725563960448806575661473522874635078632911394136520281356527455657471517333986901593632156180559311750917786631542859577250723258326495316682923304829751297149573683269828395646486169402124285525677326224390240832222770544705280339827685311776179671433979302288151976327294158971466763346904724977589287837093108187500027104234893982826289850921603548468159090893022890414149252781820405624145409959503409532484343410973678577183125659316798446252874465418826084887221891386852941961228499411142817352252339378747887254429366095002142039698563721052632710698483234151794766064856409505766271242448761555741969570439383633171798725606415938761203955501422277228148286070060589537100738921953526658071561065793401630495464669551008892143724766273660818429510061581210915086218733228769808866194475536017410313338795491832104322391547277440633914346299091208193792925722422499607943795571844297246898709997479086393963709969767760959867753962815727702053798429983414037483826868611556161519956760989029872139449512619086825797654949726532759572210979987372087034513740623113811666466668379032633658554157085493396690428569971069091893748578253623181431605501312875010762867393841318004629730741165678870061548374815242023920875824475796501268548878460054730460274986405682113141748411672476923205809188658303717016258568592822709199851204359993262597854840006796796066148964165450185403752508735915490329441501209431474871869976016977026937964043691824727391263544945593157333956877696080232835274322758211891839459720970599387889991264298756062791865676011992110894849155956673130158943137723802044645703689280834122838441076571393000375536939639565482467534881928289889107281407182650786794446791792008848605287337836012957563310780085847157779024344302066626075369933701004422276215785100176163257589586831352945565162918199941298300974336358003488535782515410477176558702872095312307068618245085774884574566226177485938267423192804898058937655330441599900254272876581407588260677964624887181738183954708925367043582752892445973385906305979495334850701715885269828494587879232545710911039129609742582227839240709956821938662149348105295126696530842777850805753038154769105535300908764667925664149086488237121772306020706110096229009888264069274560679835398466857272634742255389059277131300758051771925187351460391462091077570366903193602920116383986674896076994600620151524684203145771939638802500574832227487227609038064115307473716718269647985300467175738150240484597628952406306650051983502808381492243143747968263223236781531776038306895517159896119762623142920353395744519488475399009229107000188962901237727004147335523570988770527623791082600077030941858345670129350689628587551777151096263869747084111955064606731672903421428318147953124025670829946462481312347003461860534387046551655575651503318253145538501761285314509268721189520604700036165257091167253597710051755896053197243684651080256346837040857604490657190362471953008170047124389532155950692647755102806739839856924051842556837480469693969189422132734832862039546498562546140211817751691765334157707640449524450678852041888937387331242280698878551848057541702039001599939357287576123301296381596162145767211283606974236584791521008009261702850175341860158185772279832906598365595370367453731538980000235570901028348041575120623282459281795752940840220467234483902314802416587116202846199852734141548365116792576807532455566880355348346343062065769039731632990233865138131075583877027885969316830132330840267680647331929347898800952067865193171605279819751198968741127529012478357714945086500445585900562728861524038661038025728325639560576507734798797101428754499104284297942788050427933422968506089137133393344104807308205899385475729142263136117874152819198164396974392662761426485325944601767126288631069369713746129500007600870576443414298261080234365824608947325020588546959638341453993687056949909307257143098204907893770815145625373642007704649853836071294885102670284794412082085313943125778897553756330273785147715634830457824246973700853226591319295246725703813703167437111555245541733870945197145122810068357987182184666380601125708497320013378024647729234007943178139383780093101672423292295094401910832974271607302620442306462926645319506150152942997104339916132265701328639181504574999294394346083694216769125058596236030154998057278488324645679521655956130583397027920423286009611796667479127742869735209448442121835701368172062585531509230290892581819874592380563609341319333540011522374210680297184873774296460248688943359806417683373054689872118880692977415534956280834032389196265342987843519277061210222503450441274597620895283132427187271451854928800132162377555601865820270741180957332088415493756458179935002191456675345742270761260688494644016903003530313151348053451867045088364324870121315025739509495223204744893895684742477611825151770964520405272596618222824864568485867785146466394450411581447972743543678753097827494288162206176013627552427464369509263064534338356994976962235552151882086967950281602844674646522083659211910161194612201223000443057035498744653216286945627111931702847666198463223605976469499133050967378062193392183720771311704619973253459208634694982868046351980487180159497217840399143549442623575505018107506374780296437555446777111876369795736049648289545915816288069204171814069113880334107159670271684992122415619315803711979641304021180522958288857448512762585016663588674904073879833363934027384859610753646726643249712420911072541097115145934589081792630180045460685253270817334450938423364819461520191792050527229515157945562967825159390882721478142376229479627858465514066908353005025027447220770954393179531137120193357120962668983525519769162506718603985380539157291009377518042712202316362648969783005222828259684085111886444582410998714124652002281207653643772510283001537819621435087781004375593342628661109430432878306027942232554502976350950507663357278396826772447627743848013905807237345707626252619704407511082069095633911008689598324674101007679681852058957190042213217626854699075542004093164535073576013474675426044182207611519418624827903995270714719687988595391548587468873148779936974660148227973832289738678922451321002402677804520366624943005452148147895456586420417340179374673849364233167490441549441201519779627161654866607452111049815544734585835411169730162870732221902864143184296978754369541800382162131524464951135092544221177676913519668912378451179099323553827925792897516714904169347412196476807310253671255983008049310810922387362345269804617600199172948835763698153187971675567619930312702461968067815029146771100628991756024989972528363807197740555720440987311242790684299897962458228982957054737254454910209000370656689647443927402881771908792523514114333802977585683744840105453876672991851506614590329291403998695596119782460482578128017624593612201380224413089493365428652598951887463932087192332230220896414828231884849358470340189847940102210482676538126445449118924556578333266352263675138943889803672266565900560784343528755523622842808302204274045764480517721482120161319980771923974582110335421314481357085717876737601316450843636152303008652391842118934576132369875420032768396630379528869667356580132332602817515512846136777946716686336945151697604465704011660554259829340719960661930218990474690055798284143344180538083613230882543270172176626754474750477368869346136338622618022759548199346333901101423228674803065998980939119823488455724720469651220728161479863137116360703060202217075572896093373457463369889946600847335317246221341932812760947163852235292440644839988125265798637670169819032507926081987291004703894330549855204447475120274026748951546808251014894805940472617078297693612730272573462559169374228564627447233680351616068598804554048425581543348684077763439828930519794139878883964050468630124212555082966100329236866941250685079743565204506990907644937070994542773123518504745790688019755704606503311861373749929846189749907986456439206446938526798965394151297029410245857425914279456992253443489268730753939919548314663459968008971301691370894622812801258943285170885786980589706160475389102727282853646518652491943895518293261111471947773831447164267460032747702043264210768813084202406677944323419420360443738324892800390347064279156858733089927162043646113693650173748586963023896923157968443689243521991554192114936062028330318301505888583977631655687575573718996248761908530134127719346822285445509963777693534947719830479799120775956421951769420275874983539459140373038704046512679110692507183219435219234659675518799454733333163783701424278259118072215702062139261589480773430274618459900703421678661731858548985285086585718003719052510777147750486433173297950880226030545377244222940429622884068804757672334505637843114491868650484645712793748796408490334026720458125460950877676050976681717346807742463250052951848362900049369319066760922517796345188409266825591985885123012555646755948749677434870185253421199326456253290919045196991177375377156478007507433543359817049326628178551871346385096618756016048285957899451663807688669747267507422160865851001212249035952398434886746107876718561603409853797399104465719577046345034669399097434717431355987276667538565888474298505938717366752831372960990870666757403812933107250459274027683763544794141136342555158830677077200476039536780651673766641615510282899020688655596749985301562117838193354773550844434106709046110050181430598461979742691112649419031580983503570155557420834614758115632230463380609506282047955766666858216410685718853398403745137574701741873113186880745054927864000287206243075987815706863888297707693933106983328394460644025394198394834360929051847037793135589095205141516380062851805253448363579429578956514287644427229332365377179832318684987721266959983553340827645521165306983125005162071954753177822538891224911233372491692582822647708646375983712966349125736206903095828062331960767712341008299508288615457486028904267741805334972356309879795132827678347842425862182984822036773004195135809317844230809667442958708174866259648618992190477304097482140608799452934244385580832711848788220048564574528063815358308456600057099684923121809524631668113248715506829849220290193849499010902192532940848185323936347800396765520512713844185816678366118287269113965312982145043507994539677263157275119668052614098413030907624675186744381663717690616968969901038810952420194877449366125277296938221722134735361166027098150594273883238398191936998193854332767921754701854059803927378674058146570223458945743099700862877898490636923774197296359715749199723896108781791195274044438848056002180372757036203176310651586255776562507089850551967348230343111331534038040747829890351654208802940419212115787485287061803750129441798552940375253463498515995078619161968540158807325330747357918104633013200138165322934954766413974398263382230738690177300380448288012395262068664863356366881034864971360255107550767262111577524812733886609530967329553389666134258129484806946599941501843786384052379588966174466842054009325288857350006073577050111582099201990259683206118033169399053847353757830807241658088087145933164864885712198158826777142193012941093399875478760928908359522769247475007047717613643247953669292081768879047162075334424671911105694386899652777537069997661742886595694450802906626673607455998235146292969166832425434016988924743980817299171507354649177272268815640325455762961595756020374177218701747234287954683882654719854554948694505740608891012482249541547207703258203295297065762581402164310316402954364302431729755938690967999056276375907540013199587418012839606607619196078245953149217042873470416589115986928016901307962652547811096523181490167550358545387508487850014897693249935884672153026582399331220194136017588658133899066773045652424942314846495782490558214482184833551712638139190791527758533485758705124094050907669451365163526602804009771908565512948739581254648936260931385657997777301695119371994741215474295365861309329059129253890870424803468548879434400492857568333798876249290238565703280457841494178395673269963960963024006782462170902511797023513505910190920702232196239173989514084052345157781761039667589742374385545030184098935840318373093251738894711207192991116165559150652562607805591547757570172297146231094114231568276985919262406871623902080573579554713571449363101544403148999740575720209651235922307046659119025262419864330554712824920090006674577714454060517246296975650399730435050528175120011449526710995559725744372850823603162885570447155361492090157000480936002052133760851957450140525956453538772599579884365016852440756985417506379786546870142285416120905701850288067031284179055561567752869925611207267219782424817898218714452719604035147778410986332571323252083829105580829941093349108294537448711580495126292413289916843878607615606101413122743988200745886227507370703020409720115398854613631626009574185461797149043279440733941773259358040714058693658454566642934122655718920347448885754152803881376832225235150443517069149014379026124339438419839614818425133193291985416482213474885065972772002090350098609307637207240121751963841408875368821358217992103340487021687257427520597158355775518631913913841670497670898185170363138524172311564358715304690684794673470898693786357413421788123362401923381261194043698331769255241589854571642443984099505442915068977022229350188756022890955251479989456143051229511428842413728903082427318191268103603099142125948412373594256218248753661753395799916738352862888386790873388792912489550363847775295587614682017046712743287236723368538166445719501058883079818221498633697269880716128065646758640336098960790743910900825021738895991446858166642904185409232927022637412643524583966032145060030421603963434025360253238869929890722717479161243374154610316672994937304786692136699875206100098998304179305373561462530322507865818553176326507387411230338084724831395250682943529734758372150361766227621872198080217954482992859011305384532989762931636599359822529697023706926272470113183973910700901668283152374447470905317810422309143322482559512863231886841376065068969282249950829853834466967097617378453920994072761150622005687767676119573549511642609945606966566901725640410393948987099657612845895899028522820766094141380822727376402079196881039748589329482346645919556521238407347261391059872125727289762874972599558577189324739509451631718836509648404545270913894728004782001212645544571405548700851536297010239990571451079433509227178058867985494387749216270269492352972817866889810984264736373623618347621907710383772819183949697541597424041376853598162079784159187663038702138416307818975233203245469937517799798474536727422248767377815188093694914188400255773300350914714998892636506630661559525567441963208855817481129202941667616794319258308568804759178694665337924683466384349934694606654403948280159894202835597080340466940842026871880560358868410285093540589298646836294913561633667364043321583775479568364893375808935981755688184285455386520207180449551276352843349633938725733076106472743826402876475586559907170954083463769597386536257230257688531309714737613696582840411629460961941752265493002355765113454180261719008259381610749237384451338779544208100947589890120632740506163720559015100221808640336854486615785625591219329775675106203878936271150862505409145468989764326886687817516996534273667859765695451811505655618436812678526723770015279774738643928578791664283092204973629199892170486223486803537136273389029773939280760550838316187742932338584584156041055755574859608433302493709333507729585015978681470438827042397710835316495283765053759322349390505934300848417371981054450727071441406767677537920198151347564502444369983743540046473226137628783739892630299377370795918787066831551786027496774072499371353298277480520182800439875089661041335939124773603824011569664131834326319460410239079796519051769247245068780792384271711712183808456996660587168909910258688931237676221425522940598493979294306924784615226143848376426417057984458582115708947799269547741910837375313862141208467238770481149525852171706401650790215275457713788861156105758413989755942733817146238856163523955516921403222622823304530402349852982559386429953052247018440388555344751534325514859806015633792934413748840784893341281957375242495359188781066514050865667805587288139066993924342186597142250212531841247624472979211069434540702292125051329205939605345165750373758572893428126976105221671068527336717488583670286624919172778464392000951757694491642463838642921636030491257266970932810227925953907656710834872612165102962504481149203615879916295407324783489216609660634812677518288982323631391098396759430561552984316219796450245411046539729627741448869275332196864980906165985961830041546301104452708565703653614086142817412569291368204810057253503968391463768651494169625195576421231550300194058117860888765871945006496951376702230442879973416446300629308857199033270499624832215083957659783879581984608633806136695823624842369902572148000061625289956757942890552052879391034757175997354215021440875108652133906995315336354430328340672541051370290311921712236412577559888570961367402621787757851521646217024889789019286506137870837584616045038740927708127695491898956217096022743571487372526791076835440790715212056959992153402569261203975070180000019218340709469109320450243387697120383976009009432830757916296862256658167847801300811071282574337455082288367976410709249034397993253759884635769302204191212177694099344613091837496698078770590183702515567168557327796770087586749711781167675393185045482392535216365537555320742342238650477372774992233924055954482952272688274802966353921734778772272979270009459719269183477331492556097032149670474098984260819244797712822109546835395100075421961305344606354855236019053292728169666165086465996315007221298185867589544203612690178986986868197812941977566691333893368633474445524179107049239271072124435818531078185084000819497057296810541019605459067987675172865791474687905878218067808950140351320164307626832594873903358904772288336384651623343364580582197952066232664598851662977148810630050601941096682469177562773853807573396271769119408818018556788319755976218754912976063933996160386120293847858372540150907465951461935672173667938614627799081710345682691333913999201700025844169855702631127705072586461836575786331698640536452046540380251668628582153987148537274227677700630936369084522508335315805804383422416390733712861401225238394340187004838704979572246467048470217553913844398290215550178059006301081585066490994099226857160787030491674274324813673554224301482321897634357479753928837543423823948086374161910443594164406268117089056322485263489289998123868587789905728364303432878927735467345555264354688407771112056746164770712403249987797186001398234247564044224117566882424781000060053070305400637475840074356892701847981782798985049807245374272042236112795789834258898234707681230815484983064584858786608317078573164862816620236897152030712684869385733112818686467695255938728822742604197089423106517385911025524383949884027586279708152542294689620245494893956284460316329584927673613822318841193838515478384466223267107986974671741758604619294996943203015964851741449676953417418616904872952250460655659280562940541118337895522012650273793893995634332409449721895213841223636744115558793106130081748795071232640861307192325520649390874093017194686615572223545631575701090829082196244044664725793425589016825559463411719819155213846328021160945278028426670312421403312382011153468424781342574891810260072180293940090786304003995390395129242789545915071574144461750543240219240608838256905386014957395758150572778401092543164743285117656642424706118005979485690443864375162536743124027369137490229316827985308482620052078198901522955066402841308628131104482608655381301230505185167097581816951253974966766989913647892385827358319117078248912680249373956026448318237532902379385458952815609866745802260939097333560952889225608515999693124976848480973893712517493230401262368070007819270018176134141790771784643735321134182125907349112171014959170814834537389838252942355918299875140097994628347307088863939134511739812470262163308585347193174959102199100058007723187571864477552461028350752696405544923046981454384779990001641041399575993927995093313618067921608464651731292100012199549513871945278229830391941424935990639814026902692524828817804796807518613152469782310828275074081625579632048568777648494292416268188152421997473226635508117992016094724323486272694396602819334956076318182404977597160267956720639082042949474894597706932444456202885821769685177922895328657005697481512149367992819734296077251242811873520773218962536712247764916786925424500135289614715268093110497290712254958286275618349868939689772635957609074313114061589988106557279823202292085172652886912414410801308664118040631348141954235041436408650925252302956018695712840902412266874010592412724348817248065647807846282091381622213264451675390022049962661387204890301311065105978831028650857633789653297235912943293521296468423640445965074157815389365984016772239589272455776517790013876933971288525616185241557922863153144474380918479211664640627635068859289382122228942510902698483501980038715074688483855145853383780446471084186566368641935451944768585793232909600985928440037196665927671176557175514797029299108388799575259682256248780078741258568551181306057607772435527421397688782761637765545137744044744921401136532477020295135970497876139697490916268121190963456621535612902922621343338794291085152649691710528894681956311084932979402903839095810008308191401067915161474041708467547537182333171251111883621009800072982734214495694670393391807677269091611820362379204578573032813526344559752563565595320865959647308118415153010633347813712513430419288512935757927799456599857456155427244294260905157249701400745260253760299555291779341332617699199994913187626407371823397259843768465416246732002649542148366451927108893356191004361724192245544238162359151585602536101868208453347368501840551403146540210526892241145632200958893621505137827389164161251070941284228781845142272498149943742892250993393109738467989828155524812222530597563644251347641076659717083090058896184211956325877848798942023223398175415910414076673122477463952840747891693030046232732222436613803720485207451500470024046569433782535064547211927414782686696860461562185501358343854434001066881572037564469321937880263431710282707372381411486718585234444489653102438039438615855921766073140744675091145063833457941150782583067531800476839879137734119556262465997556218597864014943074155982564256256923229811595587205082858327839755194238310350735554266043602368808142651168967595415905413708811178806793068272730033119019961703622771739893003024155947589674273636723345438948401232782742824815532569105134205634024111432147227914896336340380526350975019005670650977910253207247397044533014632683514843151990171230407496458050221689464221571132730817176888608092908429589547539969022977032842322047985045257986055976413241696993852177267802177599250936499773124589590619734131626797657405218608098131176721068020649158394152519085567476161271064903673254040235341427246571791723058538677862138349116260834760054393343993883174113472733361072682316645032870449542182378767590272326059716377032849515315833740482777604875485853395819139546119285662116654646007519183126920748444093236881063770624784979327341071881916397333113904596631392160241121539036754220589371074556884888119810954118418130380008589534720544876955955901413431232732707022660532623640328461922346521597951566927059217828375771530162016237497979044701693477079436603580218104233524187870764104223815938158353119669080646617546044142676842762901903140539626351623255540407830371257949158655936387683926636041871138019302904108438532482728621345446592174595482598438283638061326310526072832261927010252324667204210794885701708603282687297732857410634344859349953591884716152934961405779133707626389985442022338211658052828729753742661160809787421835457260459455299256227365329352941825993869426990903593526097181314085716613050210879495180087072645687698368756561222155699098839761749462593169369977754664349039983230934179014009897358303577371483774542612914681341182403681854617595193200203176340223732136857537654338476407452320801336779347482459035276698826501525629998231978934580308538185507252157780874041182180707246005455846849968128544236025222977164183596059171236205482592551664042430126229477146529488015763718913790304500141591098573868051573020991331821759830222705324211857419149305801380844101805449823043807835377747856060395501632802864889579934695244074820099203162320874678728271701424296239388724628101241948948242906698554536679820563835373821324005132308686304955480151744416849803940344371582837301093347219155139286546229661538609544027374864159378379296805966136683428058636570811165736197495412018578885532652431625830231909641629845422878665535021279085074629054473755146666099143040252402990366168428314939638533837660313026213159062955848178282666239774082178993877748258965882097528540753433303942192741093821220539574973107778218341884759497037902473954313679696203829121944363324977205061288228665822041826322494654595168856012641230899796669754643660241800291293217167533969492280017060377140945667999734617701808076734809749308441717377501311665809323765611766842515619175528347845373315192179649552198593753877119574924932938308034521502426007878616481356262690234500604390225594549021249705234036646822645147582144137231823348223404571740546223186462048563723481942866212484899135058863007577936021799332378136621190317028792524269967893179309757232473434343109711312668581546032669202984734367057731622872678207035899632828480683859261852281243957464123671396334627723490668943594311510357119241911747307432341908087908883672073539763187524710370728622533290043080777001521206129226704715649815018441761135295917297240803935489584171994403581172308317658650399487164045541175171438875254059350746463048276680918974700609660416898606136193062509732576508594324755286018325805539105271100430635353299388586629616117813344505214241604458335257905278368385082517344066277282478952388828607962511065436304229772145793540931865022984225743959816173852134927955460607214956251670447565029663247541474684742357541164238411256396245252334874871390926888820747383911763039630821036812973200168068038769088679591446551218255190071790588322683411914374077692106503408164213240858910570314627160914881129493560901656511495250862114786315299307739970954748213563381260484027456106984344310938884952257619581587890837306152252914492916749120227741092367245012193428731306461754392192879171175576567509042660480903622316203361769191961507942907011420123476379153839878458649071341169624405984263272457218695648948729305822392933159738428934514848551936495881814022063430823708332691945624320945432822133474974205563375717481472431791069825105927938515684566798179394321877021388400082741565685062013733637521437318103011986683804693301305407916024955466193904777624146124902195956947189755532966798989114541663316606143722737492515700446785014313036854928834532005765324666987457217886745287811819518232313259916886169848732295840154207717687670172056050150184892313935994861525335542277368135671068659444940178206445560224297222502732717598540085407116897843395444899731451676333406367565092721564645311837107337955996827573772359033823855742206337082300642151138927925891052316143309453054581323964616245206248183857835512506380112474790646491319360270282570860216517420311338904938991088159544916157494664675857118242081537194861186860775333479778624525248017411419573632743029220889842766342093894700013571896541285244163766426853215205849181685838893432324586493860938009406429084905273375821553947326264889299432673404231563333123285491175010412359450403729587733427144120572985667040560183670655174534217140113730151671656687939171290273222804185968614788326474777135888529615933424573698798320155052880326472322050023234963634940093556094152199053030858783684221762112935385531373032721339027443056211930875930171806401968678934014469071180842803404524215501689743149948162695476396426619156741559981356276502250160089430544455954777644247319163541570413074966792453431205774100775766214230303989256630046999706712032171425858463651505231602850472738635850967251310178746263086063364394790196559534835999405031022439948471287757862111010843460718420497550660980666175623682089868102811428483630505880465149936901873858627730142541778588487436957509896670994305075818964480189168133568200875541334220384649250806814550872146092789159185572481760055007846449763297692173963196862629036842294483230144935949997348079851038698434695824055340471791223496999761931547850358400051182522597199448718427098706511935938951055753640821375879292068500248693681419781157761315162429603190805601945007271332103082277217223026246833148974536613813545975789026066761405203646925923765643184523094590810058162769346668405676382052673660718344965771113280523703541256200704349762842607003429875408266978952456985268753713637343107112057355306759257242164030241369039665509469741334691521381330750811779837324825797287060689586397974317715852215581349630034023177783257981628864152440206784980578787420116920055752001457795496340717431135294260479991992339151418893775963007279738338476000896191087815037542271087762600144785317137616394948726177668253321901239172154246868643815633142074571891853992503938234347490047427457167659311676856057537539835979590677279619652553684582401346945326560480601206178034409080205495213547870698165298112021237854356943672166105009802970011577305172916120625835009666066598136731023507422718064816754213184318265170828598920654203709982850522446328633930000629056390538197149462055704497588280392692528127584699823525491704673156507995328475670136743502157325985942820167051928059015718457554285703224708736114245623442511393348379622226723995697205398700155265665042719788322615768219283595577037276324034056101735838411001065444600496178845940779058124366607030934038725690989028217426306175970500805740723833577021655105640994417399552844625999983542694791158604714297966791698503049613039897606651880785766129629540532593138173868769661144012039159895390739002182652585437148803207278622387982088325662353372833049385218768560137839181508434068681368132030997014767099594389746583185401935608968083686011602044308787890719434708912986377964604801547325499963528580162483539407996429873541065958960281762145688021746512841707744835623250244941896275898190332182654237128804574011346651080858647461734132706508023919025197820777289993192329127609878408756465996842538551839201960667214654608170185677697238528917492283133124173450542205241017854944737022322205753444363737049472541604318817257171465914844056682832804848039105725020989671426965542041871845424305951770649153805839399172830795135165894798396903173393887824884619211942249939395612964552368259121857908277618805123591830863371696433821636766855565613967670112094370098659354405476977225961487530994867369791904874886860406323146248550476109950313149966897230327024297247121609819286137988987334363420612217201644980514430312455856353075530887160931681535831834574938278839451424761440875201907222967813734541514133990525436524465787197460851211432640558811517733849811495168960387975114869141221271876285226532568243292562692843509897805577786031190758930885454974081712263985649566586831939252739910224748444740782805960401547038286866996622720192201283848011588289217129418304572606283406217231941551321085046656186001566477785276330425545765844246456108264623285405028246770778054063020176240838007061492281893605450418607107932061148255816476252598283771176513642346544779826191088702404502823034856276958239039856896568961676211336402608464048957704497625805045351725484864783896318987313790499621025694404525899129642543711934949496509199412432203416145167437684183227638882698511509871349277400665034162253355957284494939091899646363424469022775891614563833713571637846570885874520735436264335778102395714594191070803928991884240906514525313717637898923673544378745362198772376360621211940171494270278156708766676008685775745350801363225300056698848326938568853169926100409025182152249930801604819830612826256056568907185671801033935077392656714669940678107579463624614103083489344717032880200805580183612004223526831083310049637296899432457350984443610731569437180748301670370954735518078322321887603018639913627400299017125056048634682656105880621802737362972117957248718927616263619206672486946871183015926960656173867400267602651696469592928829583242038744796231004782987391072061222239897352030426618915034346930418286225940764905042202161952493820652079684733701088034415223601236390627150054085916446300638386991427436090811798370316575650139130845748425605286913208751486590968447718242001901266858763472133409842540630190984753418076628953719839395912993226401927631068722832717687900240130078577261596141176452833188373130963798338415152226205383098298916569896925500460291713177777187841916829977776268974648730686782893437502722085246779631382825007919909335535445992054867015235548605859991776796068605935967707666166833257400631370416049438752000132671092487767274148001216984818400381363667713913183300284535081255826239183918875078523164282609106683808678065803935276207675229209958261047693732366551206765421716622335841255115023861001603815388528826438950797059786053545026707394538381380976719727452653260803878681324097044229907646735961176802323185064328110135217919023373238457213269332597851535009585146867599775785254599875695265548474591321524680233908404055932886566591149146217260586713123688717957300762197022103099489980063337535637472896757148705404231467974018900055926228432834487872809214934942183296670486747599448474461297519981075682333940141754194188324779399443261829483008136121029335663860402037293121169835906608560454175380694226821931797932882056734531281848215504303212481016325759420117756558054331232288233760068942133479448902086781565100239432632771616221568861136946345328542400405701475206770745477077328803699302209213169908756746729653067373902491409968925847168553111499314798214842863570905553417251422511513255234948037334557733604872969702386328345866915091821390187566406925163800539715754187410997001523346321749576766505493496362328422809868493781519466627994183274841502963553480428628048291569595011228706917794414956369570810483677188262778692649474910209678412960920145068301997773174185547491162782819468525711817783393100330013116796911180635492468189288954769616019762217802741930923718998113698659305094568019982559049892316804549015448061007714071687473033351472294793172951433259273250644816128064303233991747713547517277535974577662652093047679470939450157355758084574312465390975472277100070767572359393400416546037679886691407556604118905390397366208282312727341836862991592532384736955575587881894758838984589877091276193114139127644196398314353375214372056432879180937074285511749158188230737849034974551245084289641266470392867946111227669496265889893547683641749268405972652250162288430760548640116350301900606383268055987098353138255759763784949225905516256422593872985848012560367865145581206361505253144730300014042501932185614566301516008544759098574228576526863831569683383036457606706984979651431784215933756463857229879169391454278232966706413159100370025023501090624042022238621356229314818763629915637203878434485759276150610074235402557228671710556315654575284143001266518003685015467038053133903646874442120734844135257621224487566524346137615606263268078195253450177692026885308328193334473559909364259721032417478356699863894785576369452166574530946896663457107856454844747903958470733719893685311720836456541218956512737953302434346039560874870534758048883043878784835627865030063860056336944877794272179543138430473630066422823949352239122868207735573328171862659617086881660261273512156045824944235998585604836532399074454307574248912629623581885600212759177430156239841156342245189251454944293842332482210675805454905318371139307587507549871731471852222711741147590439375260725829293936596066037068367939042989130325575303779998385175795306510760032992930146226099486468873725331489187144599834052172403708361902027125358990242386696595140400406230842201338263819202504817991732453256019752370423249652199220806637239275671416911891773870308834321644120229535108182409755393152157533350357833348385394493053347355089981916629212025136184943224656630251145549082661100447419649018377892009266796380452348938839838310971730231373517715525895146368889123238981966466250606802865569998696888180425548799515706453188967353676335685635740187052327893676842065728575958636694666238114969040236971308535675060237524364405571403400356095464937436767404901863033389436541699081572462874955598339526690433141095517705617921602380533182677476358416909318838897203516078760889930570409493055609262602521996974509681907000372941684795719109700542877222961791653950627527915919777059516553879414773929219602549106981829174931580138177483424699485446968446227264961977944796282532249613576527504667410045844181161680563085651073880715899367062630174415180945298690852463571992582618317092950723815076198758661366230524148253989922096371015634780953477043524985953412247387070239377663274934207847986555004599890400479321766562431281172450744213350148348049179034993095093725039362418416851631708241017584976825154309294572457571891572711393959124175014724973330690726853017955432687134234701165260835750109602173529070371837064309920686338289401173208373200725942836691276406002696480474945455827694796563393733392873099297228417354449844497051917593277299924651575601404127286020099333431261513775318932858381043429929067751964781311665283374438940486414841624547303294060974847596834905215272082510812904231121677413247038174290251588815047993294205176998434443509254231574696074175437537680115431361159871919348227485674521014914219855025602379014990634838943739660085983563023250153449347166117022324588774721611780342976065379333137936556831850442050340860775685557758007719134081043827145280279237354878314935534966404598345583108408374137237520935870409077342196916886105498315297341576162385829086985194051808276177036937932159891394783776495826305377941386694401655663491207946383395611190403053868532042196304085055503227546761790901352903220046575413481860485842587913039899927572108385613153766023339417221924435821247958886792252267055615687006333375179860882517646892590392773257559394956756176041397663649707222450146218451255662417808403279717953655562616070139371268207911730735025112399656666293216086582712104028488884854552154576997152439039271666637203844716106325138267806166794458307479867842349678839174040963677729377007375824093310862001709809261680226601878509230842392972593949852795775211287896799766395858681749037773582211746440025206896253954992767803142047892381665767526492626369172286682221281041052587535127399819007729208682347725270871425386141952412538295158176016331998424158044531670470181976036768299612204041883444927489145429598664375380998991211500461854554103163283989056086402263860192910063863904745202838645996463782370080840785502771621017454859656510810452135858163856698985895634880396042945311909130038285065946601857410944444403602308278660694856206381879122909703623629125004743460500655095316862799999919564310127730523886243607916794116960903834597440140029869096498567323255590451184817453437818999132316761613118846513675755586413998556210728122039071743441038276420354380882336133652348862116580197766197420134824626510032728625111644592089422314535009159976057351393135196244214678118654049741679751622875009825411692146035279766977786841785924964838527469075270615862358658983301232894460192921316627619444713725899838347976533745975265325946151350435797778457381666582338673009765629317285602098615149785583100256476627929742276439227093231001206707466401595388161651905729697097844304528090460307628632467156237015085629660172224004213470465018944323097608031552645982547777038109744886516723883773105456715442788218333720944080861700651125382187130858705040656630031053785042695857287868355088099889646378010708151330994452180596899880573322718524707982255611291366673782009585921775634858754473996271099019959229073093127807700754711259916458135200072478111991516797779259200212578367374739667476485107420723665418512260097376471714025749638468375439800685003998903430319514423814662782845414879960128495491058335450533816983369548384691404412321529625833238688679135858521155384360624412602828339225068196449903285018553371182500854537749558917928260350263490137130743040407353725639690896910125146863085427551451385705523577882058131637630738987617519608507693856084159585726936341660148625378460071761787464375076551110363185877229215865705151875307892976872733032264488625958260428230966535295608043314453821235442363958669106791644335871800323401567946424888122798811782211180711343616226038747876106976266857860646616841343225099211791211842985076594086832760936865255089543403526283747441317104971423423619478786358670127275605447436608044152952132438692934755956455800450538267925693087614403685246985338338683906678674052792992741834272242149538570747165986083046035438099339056084724129994778993278304569111527196898817937467828288870885537862820628774993861582012449389966945702657554393409965669031151063537603004085524512177712030394709395968975387978770144699346506747650638945804118312088546813690187382181898077415465252462500413654218448441307597093118564925503815325588159177622280842642571779168203117690490860205115838242544700346354394283138457657764284010283809767079803721884486059713064939410651037291871188252897832131006806084731299154758404231121922235767125613440912266313042192380572238898136528506935261548357906694682772915706724401012407881707745091380723778394329038476842398802367667039584516486199149375855702206284532369446920412490306366730823475976574016382501776002186153980001279936621495843390732136522302247064298623893659234387065583756351027612283476494981749062092945904573652700017978182725848213588285350877851222167980158340221078748486811842612536970733175211933916900254987283394838499674106421641983940339404576035275686540566497055749529577888928099729468628824422196511041163862415659255118602246942717946699621410828892874115563357312392972880388227878544563290571523646828852037339009364572158359638960429884900114731495547369832012298075825075546940969378551484038742601569528348096585286070759503994284684014665726310962173605221988283006584090746550183239001307623136929382581790496666071294645938103723132007501581636833571017720641529968252950533080142473961751246139955301741920509160541806570287533085127077262713469797857067996251873646712667510304529240279738856565902216237591183045816601667145203909813455881178984294088312986062665670119227780164210067620172325174190432251078813001222109698941607664538430128083266929213653665561261126788173342147289277580317020833221789828457595096833195884457178307904678997091411872444544524328766863820976636599554017017049478480220505916785356911276184069490393948147741079285864191979684462213496879411730524374570414349120453814784186350289843024349415147981116673485085507983031458683198800840387287119968209155791879131557585267512573199221077210196924083592423752137692117450410748353958557328166939799359763223211904428664514754827017325587489798821625846414340359582472494590736449964253334211218500837283819080211143803666696138830721359399400919714258979115404873972669624139455227392049514106176666200667621686750544840612862366665768816616154406784065912190451800558400162808246626758544487841415635815861622934717019533602429582360791195517706379401671345834372231142887441258131301434811111032948274435869863289154434479761669037008556974975429507592109703103499713230607126991100599947970719895714334994661554734782169713071495202730745801474310549972150690243108268065119272527984165851993789941708723840937636227512935808690042574019088960487311627969827963826676514973251364878736101532693112206804765277889867667739392229912021780393765893055375784479895581607628167097310403063504257135185762917822550889439041373075004908778098531498937519148235831842698869886395147102496808542664662305285820447872007108058519554218410685841934244531547495764387628505596621032780457711986295656755192185674710382185456747482880005408374757575180955807954652728419790912846726565084327316727460565107534662762987126703846921366138362727945597333241775712390111469868762531832565869418518533364446650216246985146531027312406374138011730091115357599482372759662992509096592207259095667882489935439300892846206079340547294851161365368719850832294234152772612020906152952344201703864227005758501579469136998115577184613103873951173048916998859968641347024604429668592165070168010399600014588379407783764031652317085246577561605475619115021372534838306479334876083692142089991531764749993120865410339351271580096109174225447557283173071478454903703284976267333869147591069615937448059243784814220606705429126729104798566649178334043880000754747612946552864194595566179453145436200830902297740022046181201361899758615178679707259237612200012999893143401582794229210799475215312917181389419242242907517539529647064891268918034454299573665083514041978787808511059067515212241635988741014230312123751092536569703420982937029407661486526022165795254677532746147996389323878669689943108061458292880626693031131863335828136162040748141610865115736706050263148804721248049661084259805150719215665036553513260280266935988027324688984943562976143867217428288704063567581637643406060580163234470296558565449855032914262892206507028971589374471080488156543240198426637033660645969716010964897874919493121795824750423916553308936279093474965692607164849773017188159456005908257006972660034173529053868551792964117534022261797524451614916164331218933441310632504755205909023795160843273468660501385481657644001413503687462178437916664407443355924444637521250050345522430918169117521030788460264723003003477114643118044767826045882280508753817674872978829576287838383181312830749640394530870022713412893049923648813609933119051573147734370959838143587208473455578576720373952176108828162173655886669711452424862640636350087344221505832009619925753615173712598647450820165188331370576036815844567364982703539200192338365630797293328683113907088437228022938684648828187891950756128283393303769700748265596000011323935037954994429642200223006856922836399326621250860741327618697221011763803366014380073876174912895695045840078848301587858337774366481615406440050995578055130798251919416906176449828337356827945807947167999242100879002849229060861594115947442327573712531685200684255474432746752533188536526055609238302406574878147035082294180339056091521015437604103813015160497338136198255019989889175409735839323791715136956386330662821595422750294925003744426204368053897242650474387589607557771261449626891979214071784827595842197269391871068420138409879576683396180378548872641564750707808277963336413319449051241916726772200740422163224170739293762470204011936986384557438839127158418270532038840988105940070158382429864654778202760697296883701135570765571312716600673799117698872182313773562449644985871242019286658411671026145672553120376785806627935328059023045279463637137885955268065210691882382119428785330103607442606597696071150745982756217978905409417750082519054250274847823354143120914144213564006031171248653191305241346508828600041756318299417358565582713128885487754257848482513299624534559136392920715837456854791439901582931536839606135545637891546593739168971676418207771360256013869135078768659060027098503856360302792383992374652105417715941548819330590318357548178660753461358567699587639614951457444536738394129952969046142910442345327438505645850153997551148338363353427932897675211880637600559639296653678460362053003399134960558202493123578783246348337060202511358657063918662733950309872900142892196094784445407771060415180663987201491476836749722329874224169024211950724503537772820184807766837796457523316872561169995934178102854540954402621735781040985540805854666654612770271753360671361449705451827067058835317981375612389429067124665458037019558925564775562527430102335486806022210929969401747138732371178292826470176743890617307173459546252456969458820941844819240566569426660135602738726960710396877339159213919406345414492531947392788425043607390717201235277477794648900692490815419010491193261158402256794625561310883826480770419154141550444243423955272336352221015944368943341114892557292390722715211835878816025831938877310385396622498340156436652578842189849353771567273009686181008839637918278289677358587635499357055678649772351614334686065009670119351123523716086299427531247775563415969734033365645876785594404269784596137483551192163557688370257496121972327788461646491002632277628029163592221881083314136384913145144849595312333091346513106659806092214745138130866860102640734703865995428939797479204979656576909419919966161618627370421785316962989385660668417324760531105980767553266776638965783718812418598139852618899066303238892514293272324058903677014477478737112482909302059709330358932700668111357777480557245681977868873660744872848204060974131544540833889480240214349315235210223153782350000284558005773296796229762270066600098631015098363153550428731377500289953980816093338309882083148713751640100474379073475059329211312330911960039130212038496518629962967010343885463981950489037503061527477655460829039256526477326024659335889085377857569172072383760511898795068821784497091460285655519286957307179009325058738100615618885075937337854403500745404046076201210192943503802390065845803945921354167047116634189505512501813693642152680023130208906248175680159065405803437760555466014658244223956238694755001589046127074019790689524747280759066138068655364898464805273933471415405262283973771215272066385240913490510294965859122219983849419395549951824771657474942640145606522259013355438084910185525297962602750585810077677730278331635928009054893491824746127303648734995966313829695143121016833370541062754010566180917018746136827315021215368950356934089330661539218517720368154784784074588087149491067032576308206506246439970462818335497085757903507047189076667370035930194840591003581213809527316851788678990816681570566638248226138377478429450405783751089583082238244480485509574619742469880324951471145235131250210536406312832228733922094202076121556480422351132034595151032168834085842366662484006845762639923728974753692703458232365651867832306606262963916242877823201831648625321151443376417818394687542086162964556413078462332189993578281674124226193475822087648486596073603035199362579948132813015990477503081131594130829002452887986203897813021452162188628578790358166674739172197134995791685968022205751656455092579617371480935984051775841046935792297066657230278355435580979926085352892891326527344309847121045130160256534410917331402865326965912634244816953474304790497306498949087433820900744456762505183809235147388177597511718262795533371709783218666944571738556066179051638913389028448957054859787053508805429005342755918554995968871264835097294000159463766779339888062520984198699339339408433441655609041324939340409876460892335019851323851387235749496515363929288685068756280632642784622893114227105792045204318791720684331255548204245359047358662174136742982084805718510071503968988803144997653231294202642091183421178401994302586961320778054656335757323623039313517075843473053695094594228767780405530111036538049521165801729346637036816358036577015031444811415536838113413252172503330128269205726349057702354789326945806170528464091354729030280332967220157089954069508693326858736508204308875385001040117310720471426865088388266277923904460982335052032826510047295383931709598497004652935986507653707931034781569913891696287695189806224800961359090106651957677450904204872251745211750962901728077570537064926420936107793338173712012113401048310213358322892559401697931710649328697366294693407692752526169338713064396889577468945012125983724660838483378046844987570656143266944799947034895756232506932281348708606699805520491603992028191862400932961506869884425882087931858228465708399596752923239309888561971856992422834808607905810413897720201183004680801962365953599907340567814445037058065149937383528505839691850352358364542610017595181892411375935790521290969766404801348258648457632342878001686031203063251263561711555264213175432772850998865555974327216325302740304613245697477895853854979466435345694318960649210292081145047823681918254529747018380585961654467976733832831607579023900356636153432569333089503106653752839816511256825189197354285731573927072332382215872972657881588843580918970400745377155640633072573627579913443744422115401486584152564917437113939403676574783267641229834932364816903550166713199900877214935186147543153338648072221524072156637135436619166450881677095478807106084585731698522459614391383793605652061059421640080052560996694191207548655771405475949004330062008364217021477878722903235883653641025748057175515433652391990417854246739357173738476225585351709625700668194415448249913847107466230904294761808806126089992480433273239183716543449159928229267137996826854973043540574386873623517118090466587790711650917656174851245391686571107615409431507789305064371358908467553703128214379884272579669483780402147914643624926835001104503446730396871303150443908878857112487693716785501110416213850539912666633791011330737464887031323786598203344307721642013081509049676975732590358649064415388120944166055810037253481870984554880439536938087162694798224607460896287667467331442577491902474638688456816405881398206233384511377508458071363525767364047537954356453152205250399371759289525015303988806589316558000454073079214474266960576119295724298034992064895272320973725281237628056973172326088599381647033902935860549878990997761393397895507004157664300514049414374493845498834411244588934598962151036277200294332815700506359493989924417956728750564492980785591157321721733886202823200017120086745763174693349722744462279172175293520513894423006502919557045138582603394867236307047304764813465621528548964485012743879189543793430782987473065080345369831874731278400910533748184167678260366169840942290594230733249461110206023939684511878708689193854109623699475745593337209510305627608476620967703301295366723278882056575722650783735091470066002488760613190929679608988505379670155893451204053133537339005258771319660433058507074447067868985130823602399085346368740052616644657917317074776300207668241517301397838898670343312582905918374903696978860544853536965481493311334431303545812256841802516310103665196034599096857071195958557186288565518229581663169175124526293796529775472644310489107752070507396593543800141724885198241459065210319973934016253116875806184807108377237726381858142793972620486974181059041000552196152067344361261650447464802797859699030000625728741082232568783176322723333056356928711433563786625134997085264411848519868237913274027952749980002014301652009473738292568793559812173430930924349534267110617123218587231490699722837247193467039996872966240466621174798573389250705992237066790826236564419004417109549750832217629338222353260388018541470996891922597965429752405067380629778513392099984093445060664986780300687782250649747796519749911748146291761130920288719488862666078374608748717523405176826460833627920928362707606463163063348102876080497936063366762609836804138989571825995872551417962094328743513083345186757446561638067432950936179130660435694691731192329935114168117761260903184185959962051009540033438159258394671247479266366928227480997464455685699989596293131912004145632924684474018552461444788193776441830094441386259016730043400548577359834251007762546341227265602799654334540757729011137512763682743937918505105496399383816786986338840438699954635498706768292956895672289299191179087738399290459945400595690427938594720889756366286414619228141800618008390084093869247288599824066038812881944560049837395425653311183645928387415427008586572357578430768917538703876502165998460415438284836806521116715425396497863015054597096093489352919308999729244937867459234008051061228009145236088941899511377794340899789745973958565388736908852065428711991182437339370207593756094285483967930718270540046537550593994725573150349244703319912143833446681896124795881688503285435801708129653562990132102377341711424910884057135026227048049286496739118179763667329448361000037182066741525670099384654550950537977529530551584051246174478256530645681406769972115912455098197755781656188399434856595887206276425664914237437593497793466906009709251210353551423873427955037521074734944415998609980774440255650248319550344589036729745992634355514455820563955798464904542813632216708475413582817700456528337193899517926268761286670811294719387699334722482634951588181813967574542439010434190754253743053110007422497286599739928239314936054322310317515268537120023194604229847648590114177060165428649056862855155522095785905473284338128762149001841439982428244617779555770065275875790945569019639229275997644785727520462107988912217002406655701757876078058878766516383686777777077169830061828922162148350683791431222171690099584227817837334633539096439637158681580443270816398505807690939580266469999981521159252038141188222385655282227035311034096460950181331265415792320119219180742695236110307686539579892027017983356137698033347893340802447290479042972791444951586639481345569624750714138889443923830789563410900225641671896417072487479062262378517296374209039718626310104592494073899305688210515774924657442757809131926336083030398709772283139932454846146959441319660227274068166187917399951814964706202993894105586766594788969429512436824925172534669731034894058644199987370107478329940954927480713051056882709838848101064687852865527514778902004385287217530450231181557206419308370126277114639349431354598567423363080899336048730378892727377973323969806385919645345362969555114553777352097942722817071270736348497602284888628261271121827209101413772702946797897702142430323687403527569561214621478847440978375003034686408954799364558249765882080364121040595419446381981676809195986819203665633676021945184430562944384915070732554307980644749429087238984980460177621078155219950172601112796171074857681602819031627611600380199562610261370675042883644637933873495054161903154542152842660320761209573075917335838510481585868502662610704240891057234827559605946274404938485598268556500549966023969611896564576297053845851124620925739016054376233593970496595641103873874393738214603447643598405573221284042629574030559536612240404201807322574285926263583372239696958942823069951114744439065332191495199783459667463978904458130329554468149730534647254288186918420158457835941887698266408700264549755930995806593729523045725433383934100617348046665303829789136432841158433417659874690512207773489360994110155705820593868708160313271562515022280316472152890086567728489339564634779263260797970832215750699590553165463054039217391230262443479007148731541666067309880528672768534924543448863247658730368712397781974655022337170593975836628396347356830201863599365842518811517308056944883260664334145898670269662609273218451155837146784526481551660049698961600773040613674011891977270579132261013379651272114350073651665797243682805001372275432509380958913341021322682630116662123425844071737516819851458533735094129677929143289596048416880110976330499892194199822333057909057277622541360158686600750731642549933381446773113172620472844306316124830731252741846740157636052941642670594463673043127880248488278408211090214221462011963957629736139006025385665452625574374277917998774845665860533598360961402785839088385054393144452311290856459171145739370115336170559990829310934299056808273391495171983370320203079558903807740600267135767339217819860074323662789739576809552938327242765540230712526872224061993185699802235668426618539871457365159235196145623400119005503022321016122405468740856000508411061542872926655266366530983471922419648989558073357210598281593298081880237030391665040372656220052156450925619057077227884086791252400067982596272692884363393038830853463993700400108980193481524482284359999078346494143851144225258960224741009241607616395278493276419799745633378155334733928608035340150941103952830604354281993599386970774151939264021615741800144518157603018280787072013924695124002252846993528840843391694197625606462320405950185043435350110454010677491558576583006343649295571047580675493282176718357876224019219365303800524136080137132734491577795891313594372048117137585677825108901955230225228004818211092084253314871067871794618502828871179841117472403429624256560321530614497083497763352582739823971244347856825935541127071169055698179508993058272947612118568006019714666624802261322596921758369632651705090337716129582603872094809669255811006520798872364192639845963258575896160607517670539385158253700396755775247359321584068227991781769246310333485728759322453932690363525094318165984288540588946649869953834044824348395022018833443840395471203928303263647674203671303134794615621286439985854397293558441759274367915882966953557410105269817073829948507546346632793024971472824438519943015191009932785988859237992943936438538212715688495334171540689274374728165724237596600355951032646324541254519111736627601945673735387872208766349219331035807095041662814551909206795487228619884690235859017791149955568765139374541159461100914108257324286692354826307185911859307133937779784195571002481329291178668073593176770950898954783583843188292899344060817712389721213313143541414539706152890144038599405373264445653821097775993874309886696041891481353976671826090343517820491843737537970848776657240160976132461760875661315427587953135603203671996161829321978173564215699099671721800356117326782951333803296007721180518801009567585747734238506915385460516638993188890794123757124720800323679233609206329783596332922604644142486338095716478926970963832802268424382387954786758759527776934444092946879124012174213023160824474514928744561453875298435516840170561356624326757889141069183586377855887755821698033675273271817690425748523764863696405785968543715160829721509622063672858837466782873667215746870509735921842510972644235031059922104820781345955251508348138764559152055742301985832437239474835720335068310071130900943401468251815575735306457628805645178999015391894169148968098340803999937975915215924472605274814138113408753745763980263393338415677010183069443232377651851481806320259945583596378598375645127748373909319120797792196713809886017713594260457883590030307665678602122374637561072875464675185203173515187341984641680671406180754143466502123386030894160811493074066833982704387613149497635138206153164485735173999176620934573391054050620775303493065477516657870819856260824505284582768815432765635957137607163865825283793574751440879919505544230109915172067213158796355868971386975914069799121232439141929058966219871281361002573144856868724986981941469003530316992237774679484130189617536575539274977170511455404525739441248728841419339064013632136517885169911503574639388825516239807823924326225036964970956168800812335431080687112605837152878209260239035719205666128958252140421538051644919110841290819890170087814541416347633867437698969881919821395376621650362806972313520914883721123492138605526190713426641749003016854475268700020670497684453222898667366378285710451810683578651990389603170876060909037740574060145991299820878295800960833656733968625959925341169228672038724463270168362299143419202579315153672583538645228322840275503418146249677977991270181590054677469461813800488564783606727268624274418114766030375031036184510935977755252633898696567627672214761143008353459128343370824178051984846804163298227458302468052810193175067332604924162708900035617533339231810099163236837436828191305069205577465545282923922565467628839080134005307651930553664571120924061267381372503744418239448894291282223579914780889740242620809999059604572888287236199125812353253045519680527371411975942232703350688602104760949796929066427596344640095549233307800661044439825224761191795936293590095523107752318162789986855316199538195695074594052662103996690205344668356001070592024788183680290746878143778278143670582524779667268245720269128643027527213381215611315731956878745655741524490162546817666166561217980476901874316882218515189079866760067803145488850044313661726669062872653781720142984985667272801967513710896131395558126905986926774951222340127780867298829333063289014802801672201461295421293522037875271199607750899109080033669576852369786570710998415155387376778117983398271077719451706769235522043440983339529360100267761971223260264035976418862004957704812712215615171128871123211999581527075435699236518155598164785242812269123369039465406381090459917747914749447929600772200275044000311322411831529800271413470094212097439101013880415879381994873545889606546276135655278580376092988396601554994296196946334221325587197946278876825877261511293614908945608562933882766320459338834032831886022059678828730054134800218893427943548964294267898065675222156917028680837801625032505528037560218299982343895085843649491204711052082521800715132466625323438628613684216267969326495172622456016957703952312744736194771137808944826872348691377863719774407039044226353799489702754941190614782413685559946667348373878781403547893042989112179289941188471054652681557606505943537330500404479079448216868864802689104515358715999686145804109685978622656365074693509224287241210619227103585101516181314704249462277575133472800662473457217664710440775295807820303966604650120753368455676234023754217627208363378163880722932942772815963172673242106579391816860332903034774105474577977184873593455834827008675695657491913485859584878224936851212246182374437228395391599149251399331348758353609576557561621150594162443650813542457202680258065457582947533775957241708607289899162277712587726573707859223357350043268200562953399928774415805711835831223879931644036284695762708055821668065784331447593685763267449335785454113023284599374574829555186779515629221692429606331865107783278101770315824288090364139189375130603766151605916118406946906911927085694933802109102216798223826586268379223389800819130983989014501675053310023384368388156878439133596414027067952853753182368962224500493091434552873359259786774438124286666481619256337419346103371597665881084230587746619708804452633485012012193352714644210548573670912288873148998056333894696258860010632176120627266956578579863839918074927337947359751568708417661928279343773180686691891637088076140509622004283432167369868168656515857309087810255551735359568292844735641364202130713400536822355537291320593724535578841734837672842140367352444100328120940502527161051419724752703079099349892307365302187617458812107288841794319013900276836503817206884721705293108871238034092456697841367677539103963962077971852738167540835896160340211034603610329786875677398403823545561857533796965484912356051810974209533302008801396639716821947760132064820037979236206548818434609265824111369861373662729610970373885835782828107862373072476436431390361574284767023695327519622018256177229761514034004310658667991261842830826158303641950731533084895374799502573373166811371047061433020005438941173154954418707211523644177811990143561606319828052801629056803741484290895020575166170276806668494973843502764651463275075008101627206249898487656269923431667895008234523777172494422310341676747083929015929896052534844559169263792798803788508149227270726855897324761421580388091333305746180913966762180690551548871136126296320217278116202967315241592637004405677621045557100230291162313648740775322661263759647969345792948787937066294848305629998553656557229011577564168915873765750996895313616531550645947719193002021147620136206869686624321994758015296534255320051353731819664972373021654663511945938558414683453047433074506645217070550575722220992124086796647152397311299837592453934372838275509549610696909684576372840381769046055944498281328609049632781945717271252862211092712569402132515361358874315349331284294264432403105772829380118019000545356116968209848520765278787643829295425601038106710655525160160585062912029052902745585084839101604854714739256281857694303056909448080296407390539254397908158761520707208487976676493744099357916376167763491118219232297664576890422903018316192609875291813858735445322746815229739847346589407832559986768692894935025818294664043958028467549132868693162974983480920265901973052806423535656964654208774831603026052691621038517857121376379395553319365304421260029895198107593446305550524380103043075943644052588339699288060974975904350362193614655014661994138236869040472669487016830330064546837401580083733649184020555085908527706421940939171570061260898883936957449638790481568828014415781959143824179986424402591047791778591668746353267201119977538503713974815984327770182130895656650703404977297247914309236625335865349681909328014482233084143080974549393228680318974985254302649704067850580388613954463431875023414338885213100512319664078035594156857384962607198417612507966812881866815033482117601765705892390076829625430649668414513622525570899050056957288855609564787421447696221927697851226377763923599619729476784849218722235157510923367215432516233637638618626024361242336230492575324253240521413202714593447398730881835697944522086241929900007079673683623508526483216250982785113111194320378809274284230400715552857894217802292430957925480732195264113612619253443001724851516992732043536162325865142050253750148840449288403797451843372067710406638387838574338819512253264350363495941338610229228059392100805733878272930261661477420410470182742933750795876850494769497819820988376887348613453753041743803592411971028076585108332914426350475989286201426280154375709141876010760339083651091454035666466806667398259918137754098009454058564869518358414890624184703077223660476530445187390028860078479365912535090432016340565633664809783574350724015813163655840333227274406894550612356222038407107691620281814693248769524477440815896227682261760403390952359413866710707160475618835291960582647503505447754612147507616177012852316822829090520229364177627570734935608806160602922543438639269622164416313259645097414146938116379674602296646464266624050131525852981297150675340385220613344356832992431453506274287200183399889383093997001468705334599787055866125339466529290531577966492803112429818461338997933454016344859867234283321817592949390100167156442409729683321587077392625970460891613544373778334124541597729798502680062129634421770712852155080386844336287360217492478051096812286156197562634265601841542419749964062645194775609101217542603579516038965921632269568993911217713322776438569430348712949738224790473646485775908434186986028190561485733520802414597833401019205090889716283598719780674532419509320799078853094384726398245484972480475293301864236420718743272625389816138531492297540374720129784062184269209915977260510029061246724758865505760510340903502014432419995053682772100860187871551496013256372935937893897714725031216742398071290419591161423793653143899843499213983564727126410864275789766495734052470657983096247358595761357270464780035305179663619383840257472101851952848248612118071263653655186690732915481759982273711215949849985950642708550140028127684292319809986550919785709053001771920680264123225469926855619201737923307593189698953879793771342708441394302833468279039065425673285450337753619846415628100367145086196930559475145893176435623617692366088134436806219006134077871725639873091229434307076606045563087537269559139665069043247783420203283137077219614314060674154210472260867988364901671980554709546155057307613536259563574801677142924839198684261309578674824951974722277433943730865152623409048409886044220864542590716931069812948399764792007253449706065352322664153881980992409248115379201707236664775033572801749937432839087664421508962225268699179435971123549837804656271858694901830992496739973412838809094907372373013357594389970821008464402934964588174928752945724623109590114339050312080103794377251871174441459438655827596744399370350859459436329661378918005283729747188458982545312203241793072999772924976922495447639748100199948858617220638305927902467739154505193277280433024334298050015847919160405204268700344247981144291070771100369621815094555197768873250725678879570131155382816889439060457801513553155332823144269516468166138654537690680770428137099327180864151219682978199055104710913083728308224094096274104360551693606178987584541264576695118387311759324896931163095351899335222970720196132071165056194492507532008314642017897697583745475351789490848097715627242583507133915134663649923918669988907344555898968550533143548874783673549380583882481383248189075366417837641081079512648314972414397803073737906526944280617669527009704608433703434433670630819637935361589156165921215603535352511744675001735823960156133856892208451710549467785955315065614919834302266558310949310307227571178448799259707197040084598470406330234403489893784845103728574507354646277448705995771850492968283343673415966351468422730841181228812386344942588520197253582856246644692671035001505825013576578793042600982185750844925778721594623720669341777940353593525226881893588446907814611968237424353805956159522235652492612281305613262284245558058594129962460428651379433634455654687681792780825887970418550751550569621916659265796407483096112580119700078636458947904156286194898863872125697773733758753249693901401543382482027215221034423336653228235301226311923171211509489513188868430234962512424939865574908223591297494829938318931603397289768241655230741764683946619342264292162328699137989232246534834157127051435012101809157367295319378178982078196609266250858330306739141709583878581662697344108398773392800679765728857941730505133994820136064565517538042486387730058243823181558042022541733121582436584991180688582442358611275120560580051267378010068035219835739788121637610925338492375356198451909108244071514989831334441957051765495750328840048634120608357954662053583512299304848786978999384234732688423663393687261759181132032899870991514471776524805131777226927527513409346002523666001398201813995411149905381116875150548815309675095065161536069206223391502481814078300827457246565073834001752773486065351802900486075473855205618237543778156701511671493320034909101296208072420736543008563784039264467622024219416631977750685392495433583093395503032665167278165986667303159651301525320323234080238349718382439187357600656688678547396372153197930618027815516331010292413819005941599350450499755145988638335773664112536071430767126903229987426144003940532226946080464402138380215670653759022214799963793168985170158121340737909444982355545077992558811369816764482185521209364834087248390635470707109545481742704250497739661111123116710409900850494653306565488672727172180646125780607620600494943701382147962521607472652016325825102551514386194724121709127830913790160312972794885339921188551697424228761138344457580267303391562209434460576560504535314402076249327455742291895087528284379146608353101333333627853893200966419676789620505326081873241791578020156706513969276133831081626149720631621563081303423562139734323386738872109388651552859380861671915760988524422469386256667184531021425330363735899244266493172941597365720279944219200877482426803354091393515013625771918078530998462695160346512774986426131169155535862634018194659587388964041525417710627655893644467735823179065597288825214736080818204513607872255220625729125868162126773084220478184029426487198708897236615830826387290360705418241573698599826901340197274181903170988693139311030748106612222325720310868237915264816885703335012990348122109104283167949343911583813528177011468254324276449767376771040513885490368596488466272131720824676784568824521123070086102605618816190888813424228420720673658206632175740436085107583400465526245309370747006353642264134042794316476420505567026156639375913853591432409884834052589564108346329106093026084831355230313061621134356265271176730776054269815839372810359924360919054543315558913074495998836880501782266258593237857099580478329692555064569626105134241731245749777282835856329663492920002305337226069399837747274448245111827572766471608010930060431282754802507449739416074544124500311989480452463970843271263259464050822356131159750826998236441548017254342915379346778217122646120922639100834454502935296578956425390974755972445066742458316392390579844615906478861252800207581161367840250975917385140978140981676395106539629240157071258266264480888238224643796370529346726178455502891538672142605739524897810272916118830565271619629490934359642896796462314424201025560225881268935252818095135972727328591066366233728883098870665777718530143329171520942072334156175119668143839371351338755326288243686029932724295388369403820301755405517064325272486406116064624457907830567657666795786635928158654657138637309855871544926515597134192122881740950229876629962517328191098401066848333735909065871925443658253717779211756547144844709464737652134288184513045307152135323934560050487575991249791329821000707967676572258142654284605566059867458807770604749686666998064975105230360248353291475904289196676857419259987636140839303784493776457795638041797646422802722641930013726944327072378832870472447569640596226828960038573802749315283765450989838420402919581874112515796316998877717412780954386046949194239373477596409255023919689777334558883219078305833861746602121479398466498059270720120287719500361693836523568450080481565071538977444511700999180979806458520491178355757420318140392085477485843037500886862891854349603156158031831630507464065026513388902344960149660738905098298105426811793706955882712937718803111406914726802222909943196944443400771272852557663835810396007579759201439509850713719822516377252437883575761768127536034663461440530266047061956018176494795137994225327685378769840761700179338256080188958598763014644517908355251716999119851563505904921416701879326699688347741578313980544234117174020749405181307998773762470728130392569877592542186314988806439328921169873707503830252167495552185628975163751595369861065977951821751327691014549807821240813375558064941357335637232383828810575546228826718791850549291432355614603363270377316075742367596980229279633303483398470427265748411111150487832885651901927730884193844056691022919919916364115363390918500986758891728562121607283297634440195871888278648824387424971266148076276524177142409512679360206137498140205617972247335963295578417238742610162667597901251375545926085038546239811683814067557094199392386211378325155594223427091538947952648371392951464642610354687444800989258768305314391795624493728294304073317895967205482632997151747319865414062619268138524124223654430709802143283845309620796684454998651928536012526942591906023769735914171360638159767365716047764477672930901190737807837510856566183366026846493204313993477610661975816727354928500945546661604313315116776898202231788037487065023631435756156246020336925410363341802056761955340856639586755904585318971072513637756656893126618998860341076264739437522482783532768648072094425372380087889604095982706088641046930850503862207417950929496773435558997949143821083665958969539015784691005816321501063909119491180402615354721985028264018070202339244954788539854277464285467597414569017015323325595694150903431095748960192052441490817183651012044356712664221019090639231706135903126010859743567992286512020761303844885077717574004867728835609212205476334762668651693084932141061056298371424477925496083400659131150158066366385718189772461421317246460236814838050901889976067767696181987385254313625309186743288530868725479807013881909437870087827247468326683465117899443966111725198851936581533130374792779929010496829494370196076091358391685071456532662418877169622921157873508103924301982829042075900532945245846062795153117479394474750799600950462917322355780812766657872783832269700730920878528653735728848150025938529694614604981890410998747102404964802876142353484784386758373214091389744818739868130595398974239458482953809028101925302118838776374805602430582820820517071157887553505133349320436828363507816725584135345953898340755032094660992911619278467871754681709462279024384227710478189563100012861268078231716474925593261646811775175243741352777457413779606322670004805313927322203953166482311462992942681642862315052953406524609658653561902204073683744967731951928227803846727262697253639452259253356122505498349885342901633865502761534586625838311422111699399987853656531139280604035796471158832362035900439397367166136094634363152099712517091642657395501715719231316967151893348065443036588662176316126937831490253311212257201420925789079485237913466347466436124076379706950168869219532000508878080837350540271865791978006156174283495082329429418823482494570783419942103812593952395654553364213216768397844807790943010580637568534471617197006192783504916773073127127453763431214938281695887691921361666773353482248364842308341782886806196067136085020135738154496394442922205782471226957702626758066690674689386896683871005908251562425972318029615325240303466664795947917773103687664271767783242310840455638739860701456721847412317930362535107675697100979486735407786772479830435777289457904006853221024446086611147358638341113537121778492453430340341919546081653431436927851520242069726384420504942851078998253260152625137919364049377135210841919449058463662150030066123488207668681366074499723900469555865049815324546449622881762520905274608667613143102438433142865618631523330147921235244784571543229256922846262940037836650553637524968268308555538541195833166671347210053725482992068320430886093884097128907237877114869916282306104747338847902596910823593230028036054600728439437331241995294971115077771058668326372214122780628541511880645247328535999326619483590449659197798531512838406957395046371040470792986228862089653888671529571837549701871978750113570465567154446125780197682014524435654038158841727857263472521520510501776418847177594655264483839106709403758763674979253513633633856366978466550814200690500951280387374503962354608341517795471398043542867180992584075595633567904192924105032288709933592693381527192711443716214315414523430761448834743097238539016341106148773411155374543691791966059842717973534901921487038036566580873635232543152057798828765997243475608256890022607320645342395839301658159854175770527922114448542695869692579956373753620286465993534456595010339033708445892847603195930367722548969110585854615886499434048318898237118520471675871765906305907999186182123344978311857748678072601297599798922099589944183289362316211568591619965400824856217044340847482952520880680562305086690668084550326239489165882469387418486496466580433106756602594780926060493507455384971119222969856055954743263684161767138092523265473778440520788567500512753114699844856727433735682606984909316195846710917270346925593877400342548155935212995067383911975797577182379815130248625971680579061381430062550624094797707987385525491197170789327379893791228247806849096388363075845690827189019028527154994791353660718725521042899070902874039676802072166394341031875017761946684528281046799530372325468164234330649406439699344351023498110103153531392504556489490979251344964278798361294367484301319581002112520310287117000326857055396879596694079572887716273938914397721766556810858217908476892814969830405717250651466184609923838636048702642362833713885849129182308482638971543729932057284487330641250954770475070070864277456384875203519733419562278760665424273962316769834685053112271982268128120583749676787587779209921584849634133584563006928007620360984843312498890652796746234716851465532691433185163468440356486482011959676468711252597240741043297594289301057020542705124655005116361406523728377574852473500673369638599908107978823657443492419259886506533003341247136327950829354020637181402326623274056810194840304164486759872304848562808230472015574675915631175936565334397596825621632776681910241583509113624215442151014449160091436896973481403253141754682728025530249938184810834052003853592823809295228350132324274447792653663999759381243131298102306044909799724666508619735875486760570474536212576079815600570180831318720656084823107043123464415782374702808758185507719798465557723108856721201264573389318655980316520817230737812952637208619207058233444666226900858645653370213289510727171627707150291837093300865906601096498390582088711060986821569706979543087839500442866805927121039951115712530422338519616824037321715524994435213856346209384595948430836274206254895899048676214288117714800567028615459916954793675812749664631647485702449482025169863081341046354608969498462562110138494310796139840832086628100462587944433228086340035807919570069374483491064757963504786868249765565942338805580985027687560732157096744403420046264084525580717147989684867391501278660718826974212554124958088210357747231409212512327180356979064393756951041512278968612813514508370996662998514792001328836911672250004844719093342022096731381439939050588357914447186604737444637709518592198015645187013987913577166329188858622542530992667224076390957812458697497060641252695348124478376435970396039055824631729545419885134519017967879377474248937195828577594252732971772182090850692585441150835930851577845755125993130566793066565828608377825032070936938084017323024543505417461392777852333652373995477214605888678546803382935511268133672703558646980145927250780640947647688974089076487367145077569962571213330732767136437300372045303386552986237433413243964396284115742906013953824376316029852388694064431596003329364237594884963680036986818743029422405970384697219421544703973890375497647273023353747205863670615847636441929226009298956799688917248241750861319940669544867875580308803510750345630697261379313253721178462893250711815067435114981874079411289075780433246796876766714493622622721302817233627228576134876794570099104268218301608780351261829482232396123769270438550414789394697235948111865517580340460902766541147428550015940998307475467331313912637073613334308820465658528286495562579100254970776577480794170216673717915085585517752884033608856916450514080948436474501075874355264411919242961572518222870729940235718640967687367641907403150182762085289498379916218718255423375544343585599630943901016604087073524725585533589701150728770887938093258832348295736753741427186297126184426636592726773595420344030437387631732532087547903354565690064504584869716375155129204156159200498802771013073879130835711293297249874154470618997602600354248421484306535578291998912789515212358807094178154851589172015175652009165521612350717978278812017560688412479060075696881549593771432433419774356484325346747290971947601340863554775426729124960726859232837681906654902519232605032891736911002965107978198908163139336451775463238585336370406222754750215495097188037111467651019278491381010708802147409958774109540457584982647995673017757254868235784126888051116661807256382279255726955736610953070512849212782115698987211646824649815176927335904394204441530796707320921181967795164524472107490496246041342561517390491508741802265771740645197949075353024665636950408387854654454173196778724395395969897567263983754861740157851910488764349041765137499814179656711515112436208053403837516940933766704417113731365492972177595769357833093140693677292787494512621777424418292047852842246463367360729591428594711360592746123966025189640330926609705881441127980796343448724244583700095914763035043089845302264287766451305321078112611013381122881954188805742257130481362283481279546371850960929373809840966361847698426966168464655567875900065579929960168376342141479448912661114260460489000650857451289352256947286264924469000191959619939765688199511516384864759679378982786384082669073957933663198967868508020623369377504266712936353634535932040426413111825332815684080567853859941188561266753717625166158286775910119962473073422964271385231690459095406230105207095579171077595253860181747274199772953270059871567702479436389386411264493623978632467687633052293843870778887549533186525683575474395559341601924657803769298313259136629836206117582966137330964141909440223381784317750872491109887879207610977052896064995774593207854171046693364488309810258570671469082661481986830286092786356645246553849416886836733520506019196605504697900875833504004900021866313340209250823671387243922423347896989128401106358051844244314002863948871596703389341153007433882543903610987788754264114274763909930592312784280009209195236514320850426564164747137705594622015512389589371734808103686925002571969293789618218159124279674186195682628014333710689460274866720722520265909364937325251861334124525366088558570799765194238371314657888336881131439114033938211653724686405323909647996476346097246131569668772050078972967792604088842383733391095280937843640978002710002321927969313034184428363819156597705591448121366402342229508668404811266455736826150955737051593715902721310014450079297021615265833365515934223874010854691318019359604711420849332018014874621337921139674514111365681974528235731520293759315302682991681986655525180632467351796851958093748886071459742098203194504564869847606777212985655465372955639594519674138626305137380176760436746611906070924544498927003278498745394945171960065752629569588097634287393687660247781459686766791737419206890252471947021457810909778514266818841602602348392898583269224054327779914065275327671858473899347208810994200202333716106176720341463272514623438890628146904309204461742714326497211575001983703304067336007097444762205448643555253317974523716657447878134275940145920451021950202376023575546876320835857020357256980585665726986862681790515472358876834402138144693343823126574706061605741039855695826818235842722796117215096146310937716687421730123224929968090807234148969247767894754805824737250248814590855166435510064623671372572745973521478552405949030841662562999280091949595479505370178559056530700735916992887705610705575127790811013564300650237025761203745003815819557449800135658033950916948031296895739397453712113935681981510216967992968187503900611250986456350923197118627965956705919304130284515605337401085217458025919752502083116812616466104588880300677081734768495111110970044256206617818557123936111400684021296352856665589825925144568657929445737588915013485307778512724741511229774068770831283727642481467442154956350121380035415635109942482708387551718029170022304971729081613816355973545612347969976905183050368076006249516491392995159557299478000055097828052490182364894786733085698143322125322311373538517081305904819178371819980538929492322605741540178536249926129857069143383488323279405773696253376980672492468458544993138295371931849832562967624695375329150897715482722229602913186381991301308395963759014728733566928899652178210815822291127336224528206039193143557159465175452999141898655982799385658095827284932003634129464100333510108909445205354826920363876558755440294032713977820714313634467295026311326768749534244268942503041026021472937275474504910432351147015227836774137402462542486829109913065589414712060545898861443083946184958113063102430042043853646041434072284687560361883214088333256888435643978274006123609663894782211637609208739976532156020870397249417809349747134296363009622110748490430882962865117788799022942675079014556452189467584287839221502696632753095078899699971425642508260791302499724598574523741408564832758750615776702801955779223714507000983388215984109819838026353526520466193221634693005391991414527166382545358666895007800369495127718209513619476281659166629361860246569973692309184559977962670644173921155887652186241571480019659017153681343035384427629232101633993764580985798934509127621396647283506243104381153805942145351589976372160030509158353610905747866906931409824561110227955928999570413994424338359331100403840829591464803349688674978632942761504846385200652617785077664840354749117179282255357263032556926579008774388501030140335188258564283215093557262325274767727421279907658697302755964515829617800956611895797790199862122855476630033272781922910533038365982101256287620624541808571366840932619808454917977488244011970260701267905081692427480013883493870447032934957463206974275038962916418765748293921297409616571649746938590674011055211325356501287851482248386565454759663049101013702790250002307263676966949750725336860598126159736134331923147806157484028681376757873739384642348860993452562367707534239586622343521205097509925411331167155155096309415544126292220183302886314401842005992659512744145467922747540642317963794672933322968174459733988037798093543748134405830954308938305574426181512983383343295952746753113431401609855712484863575328061596923456966293730364554839984338783197604453890009911943827213769482567995297491660363151854376238798164841464582821844687695270055109726223431886480715348481554536333439158809495322490431119114949393597124671136740918981599019178211599316578983055309122927559342130187643199052463310896366538085124011523142764513501898924144983603178196961035094385411661347145659665886398227285750201495613027628491278487335465159431787651068101235233241045914929349823892335674127805823540982674030813176017976629716608945237075565525873723245866496673729972015364818725794038334839501739347254451427811701015569299078015580180289298187218786391184021768606068749992593574661901030897800021350624464294122948196307000109605053187095987025799978370894063926532208226557323652347002324728964107892014881979065706578965685796785766266444147305337095032918409643042298277651244206788224579577491338704180959160183071984447038410849617823678930994779489738486233683775083453119789380206833616098593848100221237236050712288426956552807980111505916986982441286319655262870331506584760512750663880780605633865504249572034527728225731956658261693586860434530737142818603351859360571281994698754307168110585940646911053858841399914321937157711012534894375535308239565266406886727061105478454040041662959861073537810013732602199097636249480558266576856887502803770129510428900219900078187020187284712214295472623925476776450861182823110350013215220411048463896184434949871630412337680103045677492034432166452048259062645112454330227627994027196556078022726911645046880661147251728469680870003419079269157169467101778069520920632625307568647185807382213143946340469787908664441641687757513841151220608396536427539667277676752395312159001630021385923024311008335543156350053437770241361224576904755836565935125864713669899900699893800463932804705603667564835490037922566006855317250777994254294058087638937584602300063358899835647258459438615183083391249896440178785992334518281567704201607496780177125658576007664893055626174314984434926535416483271034885995678139856186500900358145205295161805803903320403129612795052453490504459028928299180455259287531399918425251647335213191391461118777090890031123490584228872811401492527211986107862728501884942118030703951587043775375127030547738302741762275118309375914341006834927592722198521377032608526266075521433710411672014596647730886655612826447219921722601978179905162997190259843727352998772715843887233650377882907090977222130503154385767947560288557029701315938516947230635872857344906144673953395579479104065464400880880746926949073522492585465968943524706828519405684874131308017899067766765369205720438750817324064315701691197057444863386439614929469739923950813164422107023892371683037209526403087876760810283781311122328717491177940417128460346646637739956452382892426814316371595851672483557444978940382259968378171351186794383899591574813037763994319609471510620598936884715043437595852870289359959275660571381544878878012140459377257538527984558806860745549187378785832695672079145892869348346482637964804403973355180456560354979135953521675584165028948467597357966187174611720877028584534100043672569089952212068893196932816531882293068923491189487113842248217919988229865948882201894383895511103051772031518818670676442877341807015193597972144074084141076874980032551821226245802294422365813392254054429029560704792824514878767566283672866952692725291704971550397366861721261489204351611305264419422763581544248642483497107669743487008830719044530232733728803201085899409156567513178559813786955900829797523270338051320933135209696169367099452241435600940447297352764201538850599191313197931353019583431956762285210443212868626627862459851865166590200552936266830523234208519291494441712468042140146018477953237894119525394022949626056798011838109540689330166472459236519599431545780742659302031519567592337997028709795288919794536257194372196127522495280207083541781064158981903797593354140038010706018726735706298463487890936456993217418946189631381419427506017162389928127865340979806472524918353365573255047888902856889732340634526083803047585738279164299665286562162491915885816622674565162040306229499436727977329746237953598343315548426508166813114328410286093949026015868526700063637442757159347504795384847011016324431306387321874707255720233562451331251203142067070996944057078676379977772198274010736290379306549135030296569044485452128559181846315481942082388754929224137024458156221176346800763356936325225979721798693500772406372950619066996168782092581553238744990590944856605974362630403085365798243230039103216910135715270746843341093558686940323097138320882826005113053205722764329444760120503904571098358797566613241445003636233759171390879718484536199436580220428849893008689076963019039846070913963192222145726985047898670696640400383638218569158310762752621333352259473302324156081097865447886805415967978048830290287172214358289206586617637623282987624073035692723032132087126147044606758416507379355211496168112448612565713606656424825862006069252684860638003042741082446988294872387144658642039115309790930767881225077395859986646051748305646882728870206443880315304626378650698231131470506887861346441577209768983478053524047899187153506339137345905709286304338084354544207341996397414737798471697232435309259263928282153188031946656664337778514599116978138681603694798303742925020156017851582046446541472141797784582973411033896414995646233891997982367618411785494795124153002015416742546411867505968418960438002746177438506440909277797147755705268661587531360678096059105551122151027895601478321441744788027549169588309136893045364152274680701255090758261963771759234225779199736344383141716446651507013608180577969844752347721703738841389339995626316470614019533473369272495821559163326819389699693008863142314975983085610131205458913426101558826161543626540649521932342956162327625315708778895323168664401091749811463560730756561036729034647040535855521748239661326492387087384815770631634136889721623121101991054860782993150972585961471018335296538890366146592711216018309262513443507547507739682784245526000155886871938806724853866112079883195822239417021203856140390196830957880775343494303574441475497785923182450457762702296085385379118755083526724759643060253024156556224341930533188524300138771321847621768997482285434420953239681567708251522344949554375889550365702399799595170747375779367402954051732588733337837946254526553970167976542001755919627908447006123421746183862552925610084521546805403397521814882382360021927085044489110906935543551581813229743641578265346756636769202437523875607524853726004481040605148111773624782049349498664206201478160055704521140880617387569762462295629850653174096591161195393146960022805490295703644506101648919051731566300139118183649606831555149306238059970200028213213360260639128906397170011343580447166332616058538510961013309875572841151986392653132624352144114565423326834912259067538724083939384840410860721234351659097167963068884864904025991853557333500995791329010490544198982574282913742144220421598106811493753368216389765072126862112370359022152068796469853058247159177304970773389060609912290559696503547063284207927523689149354901786238562525004317568444443866454208471604184418951005816652644720488866906404262770085228131391635009259698541164130027889155426985698335013020932201455221121012814871071523719737364483772143753905092839672690699971683627054486185783702787809213240777001768025016861485688455631975763779765783513271341106185220222143710591542833925278269688299211902632440866516298498033132298238794148026833234740786223495103407463497119084362001906517746401222493741149469914793147313666208250448028614507086556988363841797311629116239819416866391748772418751019053305142712654779967858395834807083688923811671206758318326030385293195759494013149247994941784925302250115642926019423562146422932956548289650396549786272913968480082063099662596726417925990509798662146010060606137236061746658066573766117899205528177425889619595260118737508565267691535307876433909656237604624256534333483988898085811648390984667512878355159305181117353783924836441625710371835666629027910618514873657573827330716617691654465075106295080043001251014531761351782775618901448435251485490604989557404187172095114014364372584709415692123045799739559606600076796395627899582808756095379316147893580960015122240909369361172203639391278318294441888218174315945380604363486965152679832631538511869120816727552610021685574690183703846376354781323166384089533364934193706337064105712372935569603502262296793418584129112542550530185057676877616531215197646423525912695037924076703181791019440246255866072827065580804439707502891034294714323987233740186445428145155726452186119173078578705256516213543728001938475657381146123152028227842131269627505756596406098311138920402830287529830980861675973954870111263686274979184425053515700802306613810099477530233737064467423855598541499701059795019629544662218723852331104079765717523158976103995876955620984633715350177834544222997260988101928065897925220061691560968520891229602919991693604874627960569648487625048843024513208319783782366302111192077422090815467027856060550730147272346439970231086631214532341877268811413703388982042163998526103985065245281736536590254519070791261123532943439097637215876899498156114200442962969219606089551581843745232832610986562665070263184175677410743071174658736665903546230841639677922777277232270581441470635187122885477654920580183754323627362392919872041040096862457508483764476536165297738368998293668663088096005591952698034572324919621603145616262067499426547187026828808184192827374214029992233831755126078699141216586632502429404553426508437777126486159572224111685028288369813996378292450934396187420439860309088564525118857859817366962049557507407041676704575694945896518501755618719890925622391013969395576064264080965478659228495865331037855938174488107090939369237433725758515757681958771085947676890834853939428379002787802616121054012325597934812813704293385533233931613761742143278349879410583300545987619394261880080647519636479154609136390115754731046925499527591008104647435962583019794913781138065605216375913834854818906965872836240487839750779201732006210066779347490433034477677010331420934733708566464764906520694860840485797044852129824069474775818876077225215839893413684907083579589689649210359878328148734470917875451410048309231202413174773672002642479882010803146666286723170655446527993366489418226670605918466880424393892905302459436109632204478908386475992513865741769120821070456861565028703172872710695872222580737288464915019864735216639522662306774584424480513371762614493097553150838056372471976096722601422257332318860079771301687971205185413418245235460347393989348874751035196432274758267332440258012168196787601956747997925469865678718697589502156069376654238027728407978352722284334803775439206544899492737135813163057626343410748217426273733448005946585664040996722762183509378136234381920960288799071296189581131691056561728872295193851654531191777559134293481712664511288211190695467184067636843255018613911550653235841780847520689303191275075930770619443865207074015632100337703170645790599568273622534163298648899078628539304873981110728839615854541142593090660080221483676707099588893039749723168790942205966124694441154981257178722071325043205574565380936005831512884219036358505562577264302195263038528833089334554572754590592940458899578109775948547728634828185341039956614252260161016545268442236036712346581479517280196002390484976372088801409888151019574913455384877984985713732079380505479610403998648503895371357380398400062290464447240475957521078975246796919365899935543254193272936357126615066422810340816402505502539837824244497687022461980663020275921696569294626327623610228344505607091813925727452225138388687519955102857434178772689271284971382994772092480164099068059518624286923659607719058761483499493523943715811730321056236826340466819941997446147478935340940254906839541365767201763407146809357383517282026042433465246520973617723760362661031333985735971509944194982429758864903456528051699427479980568829598105138127966338685466019092643472177310451338903712123429877758674590965155310901565035666967215882979109464669989675062837510314424023193808139566882385207922096320623366000903209226710698404496900800482930976151544468325451298055402327327074351428110280684019126504488128122654894786893120328180705893152511437432982752420954160338340673122139892507594200207672721103671637925558404757694314858149923898138244366336869262020850131795869722744091929520930697143065338198497239118524200471613195569928054850417886420584518454067773146853343940414713032867496720162745621797161849083727781527767764930365302707424550817483888126014080633937341332221713772762391108433913945081837510458632972747871075695141867718894931162478013332232051349676413028802777003601533375655162298328838735951456019678822869557611645493245173122429805574834031648583943487912915106308340611359041818532703884751805612682546531395289650593737980465342027423593544445429262167015093987994279667486523796625334816822829859843197905307790668943811390278829044892832719627899725863065914014843196970916847001079359132747757603471201479442536745187331702873286415286241597494559683653510170900462560651503485499997566241866732290320282633981968433520167210860250801562625449499260218988019577497951228675782413815672023045388815187365377578574925342240944845973858065274320382205432441177728747768713571796406367709458019274937672887062230659157654708965884156847735636404725992813977650445225220917590464227992725496166768370114906013111917275500347199814210864199029548314679250456015247791155834237978474032705251329939846492431894803054604509506641624660355078578731938577205189182931547197698750148923943802304683054688373990924480328867496175232103293055464243515111306929969640628127358314339137685056113666211270023762494808663633406005299458636121072788101874091574927052360400272183542473458926308563986754299406632508618247209180043001212654262204371189381367854963365297553488916038029371215974711967884962021737090601682788726157040439775137417159711600914478861442334628782368255500313216451375234316184322572966558922072579170040567364759760651264671102928076834016878860983405108027061987884356122918970370845573140413256600422680294462745480401013046771449981247797544342866589814662600237460477909035304509446986660783116076708634576573571201753210031835083574922901300815896661702010037017795538717238029384014607150749420321950271142039430213242496963874317407543123814325649178550428477542573725199509431656942163191024142426151528038600042150251627657231449392694440113615547248011713739243955979651232324251589904795784681090938668739468298352192254665975626081884347265031186816691083716074539319524325303990723331022405614279847334361843932541702530927352696561313481194227587581219289247149975276968833036061609891619213605312684435970281341500687029889776995337018160543923718922020039491267273651591063574580045910833351270466063595686175480708460211928204694361517782613870471472569901934835760724752693523657787286328498507479847832592898472299330706584325566610243494350902610784715316788750476565185641955198859438957689162337138067169074348318877419186659207501347517958307662700628249719125794414352409885838286028976462266045885221690886223895217563963350938302790501650277696209049629226254386415910971968055348389206987599726102519386465734527806202140251344060078612728937103825316060355027837827848017256843077121386806602401211988480844453295873814694868745232620034972274603339570034990441785212202425672210560716311440848074233269719273874993969349233496629501313588063295352014507896851008135410408319356368316014864958820960527095598955348061619274043701425960490770850514319016996426430323911270672235238525644617956173395965684212009369514732043267073436347062691672846868817599920647385037203599073156596659882087754694514261324629498635400625503987838663396692080111852905512699845333671421432654285205889487702846892033490359859051686581641277413995905232636218926507732180993576485732622178772954136835934664621340923673490124834494891412917834687453494389290153222926272530111920211507066327760756321231938227547301937226369649929515813973671018892232526487298576729547086721750035108593323077400395200541903175629691189700978304091520675352467987030788323295350330038987426231361757284273258860421316489009456242554663127378538753535788466104317473497917606687458481248212200271662453451645099752390652637832496508653450717729596442104850894334373376679227518831369952894306791771929536434666077864218079445054907218329755341409667975548705323149704222775741703119191701018530633988102196726731928660833707237891493862030093328008963379073765868757662021725269260543713200964132859355232788538379185236872440183560708641890105575679918972399366731059236060112633837475588797319233564616281922232336288313269472157754774658911931437734331796535837726233964658632516354877802708890396502834924895278689823322532435317534600147294679914861627858322836833244149261877431558617579430556224353418587973636987136223866230659333872218210468150372370609309933713150723208429455585643052762017042882845477556930547256418094396642698641509488176170189060204883005567787000016715756658416822587708541946530279781348849651706257735515636662042295546356063310121860049807106649611681941181686350988811963308035221524196864275494749299559347644666102422441559149925410350115045132186094241995789612978920004215442338069478520758854835049094555295554598279159924317282887107338354133213785438699221460996591763185182294325273646434855095890130582289165691541162572972142780868654333267369184232677362357986284328216639498831302159240700087798178082067351204476324785874553215335347282695732810319789851289977629377365285443629254252966601256477773934089057961480477297670851116062697636871621880087525745224874581958325095858203058808305212652480588377172812408910690004770356955302233821659567620545852380463490150584804747123990118837263264610133470794378164027949693768891662321139543715452243349539000218891784677529498473028282521248546783602563055973802764499544049814013548013863290366236874678585071379208976128666932406265808454274381873882780534312582211190123256597111572319792809071044525672846963184909373391183455550760522024819734969742855556118039404893655481970810179479947336881745033933310204273536439511763370857472091348759383659612799639990475478067821065706316647727241284995392435772858321451610141471873502268885304728934138190510122715361037721352917093387347851616452246888313782403452306331257589042510741773209438855006773298260911443909528445740384654150408527198851785955434116775364382539167026620069068963364836270035513888925236322858933348371647989193374847294296550903365470017894184517658350569191528550980114594192964298499513890940559074920921025852118447434822390576882547784409859474408349149657520149201804007594837207699169330432880353943530603217363068232441235370093090286455211857273816847388552937287328299940926786553966731096639924003360640817339856063605478009023103292749709201061571220274572091500855036392705861003572340489883568801468540831590255226890887432913826812458170116228720012030826552959552767757225002150166091173410540157250820751057660807673674935427688395834681553306798836424482572175112254139170126423688421518543578994393747633096679022122235472735199373969522787022745571464694951989367753731376938504245119987216649771759388033481246039765452426509845602889494203403543794494913358845695345103382649338015204587965672088699557701244710020687076234415712242252439211850901053375553192290759672869922587245293926269382375308713049416803757633158420480958753388104367275383361557695007453933025753225366807078525484355628320261481460818958826396240779514181820665534852885606950175822720598957372789643293430260591332276098316699603759991215832431073053150612532820289996331354988485557762805981542580257236889558094296172678918935840592573733521442029444278035917372758826794648063962275317001648834530370137321416808371411082196072458735847356634862139116598169998864771513267359619742969946742639970700856855845876122516762816311436566020261526521991821207820697477654135432473155158934643392861141807954708997903133241562095732377816512531056596320414739414355753954364463453235253294767268163495500980253957086468807893089543436774550187747035363939939293211421139673111271641203182676931020079871973946842187315093240294470370495837485948109800509022227463682773095666947244749751156253248900239397905964762162662565921633198371350323870391457776483149085764538569859870556897839289512778937829383407151827833622142702442036850576441898716256292802245921698567500238241416017983827594767384601255603280896972531163673832964886782270138722599894310542808321535510567227585413890775919418040177042213711079072867240439921423655734111010099916607406890998090818111553848261945481834487194026384092378121923408415624915058552945366748863253934415140978906414944265446858645508486026718551815345589444485439541340347476787995836081052987844384075807354861302379393114001659848874994629403592411541777291672163301928263028223296358124606460375958807928180921121801716522400082805231618787146515414268873542226138306787295499620130494464957809864035594192357786368534366290214207757796618865989943780075895914506320669950335450644196160291878615114801783127092255342803578529558901342005707609249980096864865125858606668758733129344507185778248920523863618924642797811821071756732521469865791195418970769760179113159478979845149062580103683069319929378948650915119753833437509994065449206545991316172959946448818142379520334096692112306933422686774785471696613368687132988975976363234569185245726199674875277427340572904314364826101395559139773366009966862036673337234912555577470023179248926838019663514207743225182252027365960939703285300234401608505441196248504934772040953800304705836944222091360931042325215660997134360487739370287828551004708174670027387766956941457022535661835653781123631031528290027572744957010609326437020092700721469124279966738211042755583033428190568503927930803565789017149713290027595690461593042705810830894319042988058786829209825057224119491257798440407259204189515691943353245325177809650319168663553163165931832245254118478338626404837729312756208038611793529457658937887996484614593259955190909662207982586006868469022605279350796572461714620451896255314426054760722564807823596854209863649663188879131137983529236054629478618236284228016983711256410911699322000423552414295439217039453384774963740768777203004509779073387550719317211568645494204536685324915189900493410968279915054182117028882260897240460548023349605785578423068788755923482012352522158490677382942522453777992408938868874042807629636268508169243175382337618169617563936069172954182415250540200230186303765794176362128261503306563909659330089917903704553327204461632125370846804557324994484699840011777367959695329122022095456496576421262091776463086314183067561493933286605468691841017555265835566886704751473646513884867178914654526981546380322628127744123683829630752344418906124866621698928725626223408229985745651466399040810148643376020745075963633103360450935647810783875041217692936703714137146034175983340210749318678737020380775925485987762443500908174833110567076947726400470504988838839806797439940544727000196084682216706070699323744030182153523074662609836517495130026978078628229719830284206110010928375641483201067309258267521938816875355037215069877282170655305706189396773886635813722910254042327733657932367302332327228364037062305566086554649217599156848466180187275852374084285207334282803572293771202704984856879861441082430647836103558751175551389325393968584831890008501305233279441987396192153505048606670242900460272129815998943792036360921445124048259425782797803410873362227882603359180645394951648992363266213321434615939607868991604938283709214895291985514886586128515363660801435546714869144194247128162954347700089048891560172431791377674974548985498996400474372855326928402462279180350581730420270814407380989977430397082244598633001781786374040127798119911546725483538040447120838014978598304405373252518516704470498646913790397865222806877785862743855076076741280228235896073081048412547853342246623760838663684283820808227665741015828410487445301461498257009027989412520338452576445618118940911141697718418751273594185040770330729480173626567789521625667017999977641995061544735296464778278399561462879985081024681544348051020025966674834918333596521114246081690741273000103597010873399528322572414249166690379697212103354689920410851009904278145314568205640181106394387009237398102535351968074489278921066554708321005739367110066019535787298956709639331388227810350213361822175350335610284660423075906156483088369199434626305146468444172609913780985780217713655957599457408857326932454675004908763038397961069669176645691016136611455764372011648956356259656209578551223572508632056856313796668966051758952521632357514000131387646328939000205882238649575685149055309950935938167662950088105293179157613980074457235500397919546690341863807458430468456516468347116714830844726094089150570115158680150738265221692873580098733656141609088149914102389425882761370732897774434725826954800715888328015519451633417964418998346720162757004505625530900949051477347360275156992761332704290904716210245844409596966663707788702527970791904572050776715922418443697242948217539759676061460755755586465044678439222903658418115766399108281401980511589937586153563071318492946477578533746980095361811104851911984764004518646293981269529357201844335470282450267570136833582725552719747910679415719703330008142819795655107107160954669494518670216064546499049657738620225671304245910788051548895298575704854009911560442711800437319422591558451279767092057371063189926681629852173147105161762489053390259546271616727395799175575213818763837140498711546837463753865432123624487124767414052754950067658486753892719211320479751551376416549894014329437883757873202074181062210674119055424265929197800087564280369657346141750171683438496145860591912335295024085930046740376883989573269770405808707601026891314913753634167676846837790046201315059397339850962101255121341214861270034148573422168369460160412352966115139253054570072305726152885736835849475013954970027764341931666121741098356686857639013310449284284160232409742342393845688050009217818267185854837885277655569569855609938569081270488790491314942240945006150615340651868838458200455083869666909972058701695399561060527449341902369284831902594710821222022464609423246519598926148204644060305882058715028361347639445439886977105873562286467568964278596087109683685885699327780764145665010740206364234953711213305282092286690523895712277129389057607336360092703680452378192142460320594120617628315728273571957042243749726586416093480679202330501308094030103956289207936551920657547805294564164428740723584149817728646974152642000901223933027305404189696800589034256750848232632177583626329221885756867005973392653851369151732021607404213315109513805371675312686636086559807042150717816714809944201055069579293105809942891681446801305280726669755003455942771798168731955259324630322051077348141568323591029051150519421531297544135740831816935061680873817231787740071426947363061125156061216008236413700466458035633809986180881989092087852135759016969330050565971113628609159970286565193446066854767021977044558035270264105480478553582081385707956774447423413523537266193915940930229791125639084631527776504503305374922584202296059676474755211612910920684255244112052765178498971907072337567895687345147506692156668800518292112866522237250684875702316513417011506904178164077896673359488121899105815677583732974844950624124014454648164766607906674983289952137569543173603917340379159195173085088036599022354200561347304954112429616464807536408806737773016717699894544130642307716420323680165667749847205593868665897973182368562058952431884269063695261963366993439158015917065630642664300266035641707387533808778175363161886600714003055581822149645177278858065838859920297384840797073799428164965201691795815519405141843750229538667592300951849311857731907240809046891081985610633450853888712477192666964707051271731115647235347810080458171957882837201222252872796579892276543120336250314979763176060321241783434989161636620048789103730148065912755563402168808119530317180776198283051499893460595892963434995034854121508460327727742415148960989171946084950586211284270423432855770961115611234490743402187802532787224718789945960025055829440768461015804350247264562483645317536226574027852678985906075487071640201290105878147240280657739405724917226018181477928552571932704326795560127605911698804005860104936225413280827295691410644386968487412545825922338242861375685030574759879967761431621605034646409564585917067282352390445284389062673635507319396714694849818209970664746030234278441009137669327563746079296651469490624077188577428041188850256639591210629824500804932014125536662754756541270855135586551056186320264362766774374410335905764425453907190803012546972630727662474709091426555417433241899843950810376847484439593686524309091017700460465483800023445644448078581892198340649083571337459285945904759458358851893474257846759365301617458422188472478726087345554974639789324693782257200288072028122490328097215205516684306078631578772695764477889861988236029527032025225732606404882173392756849666309840556390303730432423467337615876801928468559956309193489758104781579777448273646331714828733451187288740499858002942280119735617353240591827854218908308399745502084832753475791109240144760375095936876315248780950720447446537392894298987361946169271893558024931942408702427934550822823270161205497483250289413287398794341421448942005589322520999589046183509873431648457598244557343549108706974082994494604195138480569033541201468101527087548170685392193505098959145681947447275235058018663002060100237041471435892965661602545941842065278665398941560019842672055494701520338442733014056710521743119354613218597448011659737753799926565461097771990292692538246957997654285564872236806019057423824769928585861860738878995355228275896942787314255966571397901589206606364586462275114390397508643269098978225448837042395689528421377282009828430688927933311197282644099999146747340866483622077714448909323544454394090938536691926607177191470494605660527124300333507993789139751029765890496134189168599378241597209299742483174836878111319699034442310001674519287453773429994303060345162710106125073046854811396537565922196107296261421589601611653948430680365815243072989985861941970589388195654433751220937775013606899004413444064299406793562585910168102394992250307239363865861682110708730147888185510311312084712987099235143261987034826625141774002568279439936385669826331104265222501374833361461049278163917177197686649134474344820745507388403063527843603565276612574083338905335810179549799877138819424089162425940805987414898787374343694882748852216744249484433498155563126357284610345935897695259624870202026702417132481365014974788553756560124995829070272067478497953689816453818100736367317315514913841689230776707350169087150614516427230203409053652510179334171842828055007947144693179365791709501438689175183004613498292491791824905872007454000914973521066872897055375285499128533304729629798060745598942410327924357335739233774803743815413861821653928257292283200222990406831646554625522865404999731023868060552653560027507111262941731926689257411749263964306618206851451314115398073459861522933021899735152428551368033038711574146851717752666895379762729091539416413076027219203969312684919439045776935450282670406250542809090452644214019601004293999417960217315248798766080008716219615593345212644879660643387879441920724729718382597844415559202045236891063100780149777859330399296701337997860401384926438510088044260251520770771015910928164784224266806647063037773446063497728219377117295628775439047084874850028732171338133430659040125976818871653743227512713077408997586775713769736157541103242726432430276476699253668113733243676996195697853799499166685326252994901009836721865171692038052179145927871921291607875963353275767379970296585556255341050688971738502302676642917398976279188759735136293407273900679484833961409146040303430577758278309697858879827343874281830755781838821134598945581696234273304547485364667840047463038749542619166544381916583961635836447086931736553341458374899913485525048040171133286911389244660287119938235899544738088523048940866783727420811873933162854132327890813263169077316701187422280327760676978955427076996680114909867952327693920572886867338054783796223624651669410371932995477384656161648403523965370333087050284074088987941967638524340797121751338147803660319794019129994525101279253251861713611129587728014820673324376489092240809009599463456729489382627127513251524101077588981396040815733547304357480218202838593688593347357344001772365295748157096741053805870491369278632659959745795624171016961765298696762764163473539947083144796173217643388564493022736099168881609456207514120872573616960280874034432166498549250947739073963709914868596096149524651630656719150957072986547726877650746587833042082320310536210664894144016230114164813273971286266234226461317744409599114374487386178549215038436031536658847118774038257168959684649844559741163764993920073542142270846377241514006336647972187798095780301949251423146790174836493823491544671216310746440607741015509903630827907847172112515211380628833410049477427304655861365426705853855937554190974181382951116839382154158245579060054119018318093494542026670540700957515760360269689442221388671564943795784542343406865033127108736312622358862244956207178661670658784641416751508633491198273365672274197239190971259267425926205937962760239028642108979349869964391605771448183944851528904595592869470463532170478204993937139180254872085300303265021161940095719938082342232688765703445633259460913187926910255025682588298137283281465265921534961041263086332652885361659721852464874573165631805570580468571667189834901162790477631323458008786002684837165739834768810856614927989471887638412907063098545057554520984792630869734788239646309571727844814457988240663196457909335996077873316817759043511531952843750022233383703495640877878352728590321051922769255167732642531922049700263543029032702315423809936441630098393488957868212333426198208215735120297339369155102111199616766186276153277055035269795834516844869959459455006072404715653857903433295434016810350776804154291680323375746868632050072181564961124755475212762485164321696353230879938823555354185616887643704232007439443540914382724385169553430087346026527031577314142968108384002874208457711398890377692988169608867296310237112946520850452497711214100037079823757053236560259265041478769257009901795640544800146091153431616002098731830359618800687616164395426608690849014813135202477750208552247759754568975963437282123486843326940531573558611269761366340615657436097115565345657770775948463317401031574308295677802088426497961378922714287438623613288774450925131824422233585649778927503984746089678488891048744696693929057294489417895551020592893945194149375598018430993319987032383702342907770226661692443546442301838201628332472237011307336691279637273096457772102438093827441568227942667686909151334016500133213270708986692509630373126009124432076924263521906320410076675513350695536138911669942952373607676468992496198486037855516046276047757471382272587332509545937323627953260717450294180496779468677809595660780330425301882502214128098191311506537597654593714030792481768783107535655218945708461327291282680453762713075711020364002814978819805049194391943890127042006364341951847276861573299253748613813011661746673805694642530659810853585431055226302740507406434207350030003947677275283689907443203444410169069150290893573650815777068768315275117665666195434517466015987515303673298737894490186189866747064318158968497931250612200135010992051111056845053208338584743774708491744019260768471131619167735873218885513832522414652099923897937318065867804328892562782626139814100692931646206891845698326371666124533541480853487737531777072383227023114693801471052824878142926972834375309707472131711097660783710556535503436373680825409789159163116037618081657863207739789700843931397461136157956441649140943626133265783467213480767166202273945349333449731579429604158785225953172989146717343260550198894459060811142645999005655683651728311218364393467094011094393113778599253584422603433635793622122547178508592735626079749882751834340518966150657541103582649314408593048698802656051932718290972310173827861409526883053904815428656865467947330055562519418807476111412115796181478631595526907777517449055055470246138206377127708727441962604304085232943611068277549049603893884121248203143115642022925371882129453282627697955844708132281612878925406532997713018378272495518268409360038129803703243555514943730053592835851353476688924249341201967701914543490748518700245772899077506730178833918516890174425036435830097149575257897714610209297197216814953698066100067998421892241780788143160291361445335196265838761108871116711898929800819262153779324412089953518988035685767476683291799754119394175774343988294451756982979160748280657232652122463295924728288170827125640756203754595353991795368097458161337458632223101052872437812929555468983680514195962135055370945107074534340470316141142929110464154586571794106257588786349058194812619331051796476055107504737497829438828106436943231797550770914713916846555956738019640621968867277443839493422981449063941350165314803640767620779912012954271473130336014467851000581395007264973110892469267571505949496926055867844555030970314233205165031096482345533182136876800575621123186354438377507217689668806567149746730676784183698179630661598189407833458978619413232587256490778874780911271563300096609576227025504895102184671378123449158021184654694285834028928420496818981439228553345216272102934826094530441721069935314492920036710422016868151188276133319590626125131222098998447189973669921623278984678277399883852831314039314852717920084135060217160080737264957352130642264653077328016968179263917884340644688911021721125963941629316035056080458510266559972199212407862327901405396466651437094660135110578325660812576904297615488878426679575833391247261113183156658098113658835337922198037249939833208919235245836710718389909774464246306848993973340659928358712507557516079309748822567854491163603164385218667902780109909560694224691146063191687872394626743256578756077854521135777280531160754813373312958443910323823812450682892548768277585952139650777118251631653651588079731825551557606928603338440524628303722743139077050990773436687199191550952911849530655604998043225678347669003987385404415500664713775063981153235297092370077468013289890757511861149516746087695623127058430910812162486153719844981292849972503382317900975282282025815073383469007188051713636433161218748152217799060151686241590841987260222948697432710335138873847498547099616033958369482888987518271291455236383269340494574701574043407284977765248889738553273047372620072838801969287745377832361937877881694782167141695008298486602249415047714094822722630234488429993017841158981201992554479567279078550873791437383843247526974419913226928249323677318646113894863399688355086823947661939159334780850280537211200380015496778310082291926755881725417591885525178096114835227198758835614308738814222799218265363225069420957960944557204471504603072566847778036562413848124527577202049127272401337447206198468628689480194246850100796973784242153136201713385000504023049437011447564127935686597923695915554721595170173742594916280752755070352249215592675121028132057548856609626230724587746410292762006582483979023527738086737183978790402374243339675364222194774257787135257775231510557240798543107108732678389004671457704795016902835141694475012323359619652061739885289951951714450229575892381110610311099714522182653660252581383585060413271000232560026910716139563525232134289012051245704246106449156469864097242415196067316517106959729407765214290285835434586514851911922468558426983453387069159942612647635020926882549252313598790072233669641837181950811963396183550827342577721256137810686278510938639214381639100126391137333538759636331040753214381100604563609179131393067306623133964172554403787594995585490681635882169730735871679048305058248139202728025999446573969706947203674386666781310097763514761553956525865611134115958777224723162431272058299347752217003623500872808984342654578791152413470212136200179247539753467416949058253089199998543524696762101618780148017079699339853177061488579693223606009170048823652332121932412507594360378660692240198460600843224815404196170113826625396047740423604035311755705749770210710168620407119233025777978909766185665048253449355192734575407114754325169877610542872288539037436151837387003473955963978517584788794660019233232170107842164843326211439988518261888126180821516115076303950648554641312586451328307612932628416646178299108568207097227610438105378345971763630581534402161995096856145645755317355062924458287323588994268337540789678979808168197975818572816996748847174567404420029301974460709556481681096105344637145272771103929395591367863070492607382031808795041069952918222438195072237762095230798979121692862510443567796601993767836745736095192020976057734125188129400938223466841415611149974179934193621051154098113644843530578718811660915753483894645308365211437558953971261092602269626736946160768168601545812006705932011339754189098926564438768648613992593743072066466617817725965082906432980167137801906335276387256152670173629565682854106714911067694372966827336151267912810763161129528367727649017121420443261568059073398970966764103655897920496256086693014245442724199661224604791571073932698604978828880714403698913888596905732420037379918560812338449502362214663246805727356183254257168418765220015281520671770677038128652810706018238061938656050589906103078781549715835598503354143754001011253275105712999866130797484540018166734625997584828292139715045434918202184886912758969110064061792110978430817113738984799457203494853012778076990975734698046430776782592150697650143017931456948262781732446674633280083132351869164773413438353342141355970686381714273179789770129622029237255983818863532563308484225445141816701950960332920500250795907985874667141960541148940910571222087609667060662888995949804305942772871290029373609460071914614143523037819431189837855612250567407910581638133963962947736983288331007417352308867009821013358203757290647203887453300172921522920827618151476591963521066946885678079423617046978951708755844457096266213501689366401767715600553252220830246004889252832695450542283877739011915351214689325021171292003408196183834344504421129360180854887428768466687982480902198738638785793163946509673379625155244110151766184691641967221160455808237005727368922947809851520691738534421575209311561577714606743653547429752869185164597091288741967192718037539498088566834672186377067043763741712130660319259229078945395698586577727515992832250262922622962667895718657623720173841440377814685697575140796930591336708885842328903114550611016162498381796166422293754982470471717332638956677357347910605494501654756530725385363825895208954497390015185054116741833412042128165076352211779722276616702003780557143551659332478182561586279313043906442732685078427951506783854273088633941641031750525426881253685638576912572410467367118235407060324841143649311804087302085418347871975550764219145321192196178417992419107918999051166523126599421760012521225517889422080093465474992802206695121520068780958558157289478958492333897446588209406467774481865603756322670504570523133106000179150668936213416977337665507911239815599122037365054108813418991039025100451899746752321638280218473829884771551602517640856191075657289979832410267382974532361042964925779129388574551563217675236431424958014309439647454839819205723082925701803668812053334924894203874604520284803704586270554377680595037264580722126080070498941700092068885942888690252555755988807870420259705373211440081020960211770713745020447775923441559820367391474377647612817466008173377157096799646168160221096253377969453326489178817907463698550269977340707071942794269938408895985899326970221760446778168579893067898560667640247188983352570055573571112902638848704680558038826319326982446885660578731286541344451116297347460234874289211287075559666141665400977235612049595716588406788967804066270717621785562238441121667363897644762388005820506916822046332103213826674979707600390272475209461088500532658666447161356507204764183567879451955304643122505495743347760223908415626933884232722949620834408983893687522407245592436356358154715699270230746972339284721824338756397231020316195349356355511280570988989432371679446515774013704998937864932254452699130026943981677836501776136879572560391929499035343997435385633353690282750828977729133813421161209799135373050961962883063765419586030526327939685377731344667653521082976472013355907194650300793149333320300951909213183151555873131796340870143396846827561710269073222375474696257112843955217093797862129286983156278239300187409270358346531266764610246688072906342489488986370277236965559946465566611376243591292708093306038082713932003920469051146935855035270666631114281709029702168265856291294216309702400360855059221975034727431086831773550040535943175939091702094215930059180096284432709882307243651244367896613077565847341879331333585155372350083139404213914599301465193891886527212874620194723484599325453492771547864736779592187914726967354370405310671306056190958198225834951442336444293548929416761188397709601881050237851149344207263873026151671107945876658406229470018162174117166130572348402202439305638868652782384144573585005150822379578662779288274105104913657578116399552885072267578334982017948893688113795772627301723104414976415770591158155779065060928321538590570799300860911761311215928191179622487299644048833322621987441172806191011010727153663792525063650502085246434045039134615485696049260322414584969304257080397964457558196243866910086941496499209095363749704756938128400346031998284814649612146398725207663432046142698520845907567746608231184623324244217038326558694310279801584890552097168137046841402699097043271953579584679950402630588412755665348890752609865760567113596397468794627926312086919755537309726413210757585422906243063515860023624379826817552269904924593004452558288868097293395238095486438691155870053209102805868841627729659730070164482983202132040190392479630766525277107773883845536483192403571377053814999236590947386043127626563937254478852829952509919804583714101016386186188232584849362095608775401488375611271310157849002472795204497765142185675231455145292878950862952962330606374953012626858258463056921291026588710769181227254013663232834465106204245518932925977116065931943742367335521971652019588830763930787147262649787494815911192590118853672652063117241815497393992855986442942290545581511805704803642014958232092348803161838074262418500725894822001650497637893368256648244240802970273405446795508328733796838226020833121821374364197312746109646286170109418722077677432104328446378924830008374466917734251884031307950179165617392314497530128742239080005629914731190790044493107006150268544514173608234381583144023991790593661732076841886700215655173890357897531758855778392920339694463829068510252868403098430456878940745258698530058891965618233948535855160178295749226099550576750219878088480811464960184261982235788647525109373016594999530133469143708882092378304417586944804957204051570846477488451893007428460719727598207753934335400398158460928326404000458957628906993027583903820358900162601048498145343411930874562856392465993778696851179405158614683597762405722378777416960711039746549612836601026842944983868478880974317950624509177718157810139468209754711813923986780733312875135134631222023631175963893972842923026892434657834889488756029759497571085775810462101681712460249690825793033485608194214711672499105509400627526323447426027672457372399663563051138156952547344673219283788861588693508268723638703542245234182126102753887906805395719751746670657990627432709526272697665816769742944550715219534172396148704205234875103583335957380282306299096237011509545031738930050694549171949731172436052554170826729469650749267277454741601065980178962336269965369551295836798642714420994694295088839203975457052035161248794401545860590197625944741889724161401032188140430183043402642083502937342091775918931623440159051944229841734348388743811910918561101174010430841879154368900610001637828226879940757294197633173292046204112441223853467214782505601874359468944822356676904675400619169807195056426409818425906672021765603864959661731344391798799643081064178463811591918108489155768135652603693535040853483716347143284677101828295554991871616679720872016160581322908268474462766848480243395225869199480362294411495641501306379961315635273366544979662762680533813849873600513522625634648145693439614508079314688610025916444747552455543839016066944204139972869639843105985018025586080686653726086448691577687340916608368558878467408491793057360239621533777467322608638619274954016059028513840276511754437412499132577804914419225376004158265974070176423709360953335746461041499399554126221649551940177973308297573326990162916132407771057608208380414101214771347479532065729405895886483046829885652536343867936083474824196603460810415172926690685245669571877463915872988406587099133832521763968230206247141511099441160819614837776201253661405632036895291040667922095572059218117210394847649964075283933043528848673845988017283382008694549732721168851896151610780450929842105006584044489293356767107687781972408415851252790123351219313902543927911177635188090371749616781186268823468043149266832328797476668945927851403395479081950730817308030785582157305306545605549902579075171880142831479302058436559012613442333319048100846270363548354983040624607148283495165431455546143439832213954448001674904132700101412823930053591972672675653972463331839742409795491584429701273178086274982882610432855572941329717397484120806784277052993910249629537321550639658989296830059822549597666371898414062107249982897022092921474154886728978081124467496557719692770801871252197366841185720013692889640642949891096095230412061051581969321567045602938951714838444428846176369520940718956669716522880156905445421304371422578663240850947372162566649185990479739073124190484314421428775158212306888960581687545269447971606444230629697333483974205226731368608285057576933749326627315900504565607799738782149536672166594885841895094648954100095631103611599303821371752763060917808312167155707292653897085678749932097077744839976512761932499213211980796834408574675178276584545845815743983581780266295142582827183691656204766209767571438174130854507651061692030977956047968289915293456622020358716235684270526511982890397850115515864727460540585101120194671463481146830915529405973156981187246874970155766981893766650841627239230287736260189483968022481592831193108520540201715600749784768593251652575373791077655329377117252458736662832092885250235264175165888344334183731413744488909225663709925583496475077973661811881089876521754543852393931594723219284217646282028107801573135545548297898656155511332538527503186159144057149835491952799134417414598409744046761803918055725946079979265012508825551516462522974478534769479563707197784221843500228281049108358399054172429792544817641419139310847105508753339955345485725298575758362039653725276958936136498660944518537361906517260191880575239614553996785488052665109915291574834719785693788205835452629234627812267473288702174720519738359931275254323763881727466942152271303688614786049081722721553366239903473867456302720934361912349685254436006246288805620571363577421489917742917831496276092940175314276625438569272569644401301984685391468708012189879944743562097521107515801585494317695592192051112572833653737010434242214848479465410704508284368384897397854521958417743272937158791168567405748108020152929050416969680601972759470698693810970447848419435829397006712526082704681012464319236155522776575052424542204182333786894044418165221261604583688637944494729650992401012470279037953668648898120257483084399781196300009294741558764504782810354655871332330352787733744519832054164483333677537890938990666853237768286765113889163572911433031369655084384508063886361889702519826394144913001704199598415058391444819668611894094232176100135902775817934678110915761264916846410161335747372166835346930592927559503684981978227678581031918434797395635161092522245570259051433864851819150948941227111053017099523319906646275860223446738832044899108603779753970236013604885776478197273917581792097911230036502625867786254445350015650491137805702639556421530813998160640932912320418461118384375678424152009908838391779909903050764564397180701872794031045317274616064832608812945345589227667768452342075778174966067210977977766358150519813216678501257552328057161428782836735605600350449559745597190749809569415886919923233465338717122933451793270415508031618536461972643025133198635759187789338964164999036341479243802867726641268562956232736250321045424652978980211461167751536647222353003374877125615203317434525091433952559993131643784558815417500789802097770525236998817064458333452773800070089635719750601287645267115392306968507097118483600610912954729485499857444631824583348895530051659984747274970325540220111085920731907593941874086414453978259665592288513219813803758425161700342797467717282764479532310290855791791558158555695889896076476778680882187742548424810046967116337654730821373368867822415985083136625353063951263651821355294112791641328764131233290059774199575389082172844770775693524853228979978322184576674497454567973837383648587333014651690346562354809314122733322273880488440216174006938598869873095391947031438488371898261096040143069631892097117179760088560039541217683497609187853710880507349033482217898117694792963742092268963189145353076670909322029736127065266804419964842512455426763102959589399518880086608325553863546461222842382181568891925677804619638177285871713312429098162440558515365384573568408994085390984783295014821668596789764411945548343596134423874638747449009251907264066540655486857334148587667117245857975881560560553144614944649213458394775011565094355964993798830167024129648956689033286800047074696442728446390587285167561567973032338676681542867373719398787284540200629315625607905420825992638613950080987033950285631916075668255486267719837481309664553837512699014204774313554513037344491500261355079286789456126782812698367577556859110860096221477738710843455330377411857040728120888964117839504697847103560101370370064096142753680275683464630810816339997803284813374536978915728417010675704011374761791444707003120298693373794456718918356870695750422467361563570473951204406903656324703845928259151597216306226145849913749980935783617207866634539940967274207398362370657706699134284491484567207411891134888140640926793381887111093437155146264581421044100116701774579578393573522078661067305646130805933113156617378728682454802089550962789778567629610153708087869326175889403747610211860686248375580405741434139513072951125859485089957738744067345357373671543014623208962471009807736631990906940395305383320457686880729118319179850090089512315756299187940817906930075476050370235116397135785348179121284592158135396581814026712854103155160028569838128388144052629258256148986547268636226341992492728818316386944268905193845840920558587010046936741251079995607584841508492598244560624568762580254686731249666112865511978727359972422003613748952766865934306542842673252406189820844585904986573609969076091478728277754484801534154100568231437207746705443576595212489970641652167359748342735216002268354751261662493916663113502244027240942395865018478316638409402769561929906285502424368503545222955432172519035507799002184029517527725532982933233408249579042021885243123757871019869637514801303708048718619249154131007216838937842793912501030484565194068694150621249681365905939904252599583941363972252957137334931549751373853802066639710843130313873002907352205736569002966047667146874588328183177842331292843720421381332595371450593895892122467906964507419511048941618603623525802620371131202317391818897747459095053797566505818058012365564658156827029245803042956344645930867196398751362987088374983859251222475814062201673566111148974349301419879942203364221357297552614819459457367236583697643727264887152200402918216080201583172557603415640171795342433360529441157192126257196616537004214461779078820367411501894977043026667541827264906780591730784274160943359101008151361136309198930250895240080481358804366043119667357364037854471829118270621670397605556150082996151293945137120423661597208808105411174085243380595190139791510554228295607365448877327645987017856186098450236092286930612649314230951284630095760913253022122026920167300271041284630783337578444126115015686415561415442351388491519293102675946396815172579958831640678251853543279056495650476030438255818100132762726082202782839175469849305537361039850942802963646719251237181934410840321198503571308625263491365034994865734381435337157164883755797732300934708758830499071557895661485178983714601988442304273314375953340113061768118686425135884026251234429826100510109128891602669851117847413889198043860512282321419336052434497933524243145336879789197458494865944594568585239975968602202568346623956903422602933852462971997377071986388468396152970462322065628834797189495038205243674121117460688447361853590033777574264425868811138366202120020442105641795176255647322504740401522955084867043463347405733907465559689282471521661113805672320580107552836915263264640640312815885935776499594161650854737204582554210149201516389383600413543329785170450100812705889362964119224677123934517932912360463359843266862940465853716556898708840112640110071028977108691586321314927051968828362797582019330239960150829159989001883754513511777634238769923215851320687724120060058342922094078400805227712587770788989430395829599114429534503388342120089680341152888005196087474849656499700663999686486865908626078690485350834276723933236489301898291614337055023594867064568163629972841946507395875489865194292757395992802119109578457773622453017670026140678899672687507137853051489962011768004448614755237896585505163284157635565824801309584995619557574532072246211463005069568470667355923199548274974932895371437951426125085217879255847417101628837040072430446466527082139815187192662541542755925391398753493395826337632265323461394984928248286278276807911596204166671924201897694423162377825980231188635393623466569537684344459001088734255089665926698791693538207286502950461936610725214170584696143994288052094676402288852101963080918817310870899243244149391155376269920688832529760745473797492640062660843785982692766038044273467587123134975074581894459391138810386665414819269538851621321690607493360083742348963427887281813342666809940915449360980897119670543057242339529989568887860247908525505614492918275132414695738617192907486254536962823853646285506638585000692949416736378485703072409068257581119454403824231634224411966525241496494216272781585485005541759753257622346205809828798306799356528400381093599036194337715701242388803116902908231993990711787334123464481122231667934612879430013367721397739129079917506433835873815216867179172162647380303754917109564502067152445636875259235392868699781801063466862817244915475812378487217106228516324090539576222846025910007185715428068238246974262559427429493226392972256905701614128093990182530651447126022154867148915106370760237761350497291150967197926158061314746153283411512143953947988789575538628672563075256481332479685686680032044898219619187764368072252564276866861297970346012208838309908907471554523780160231974318497401061244360140050852224068691698450520440983310867286529364707321973905128560607239133999655448509137624010457066564056864667230198939144499773428802223229698341481462344399175566381682674820087102200782748337692655345314007178435117387286229011122619891872871773967381763153483923337254173905850138808547333581495058288027091133341246892344049701309802225393581347854299751267965193340557329893329108858233347241843534266920190069866522192563310987784777618383177041210379766857109857049251902968913614239359145256207477073020943582829481957916055625321837799715498302006474235879034674609169170496365449699773368571314243680474593994991918859135618431623646713735268309753882255554598885468671693704663189534970907586260316212551367112746448858763778164368181641069884499176364400477612815692038233278009488770581474797912725802537662233586307330847336462874649448444506780130116194974616400556275437965298722633809268297990986960729337990641522828434797857875308600997733542916754927674274450744212168609937441689900179485085014172387286682019798905095033063606487019328389174691975606794925556186164819724573947281570890575248468700879247742177970051854642795020930400561323239550862423143591030113166006198019193682640050077735767896036404030507885527809618643722079848421453739700404105878322987218118158266668053395030810600020954826437331951832411120906723126099802994908685821021949767734100330180798922585227152392337855988466635043019162662361073204167128658011210956382902419804192266711214854794930558557031535786454630263666918253584460392785432948999673267223585098426221820746412226663240982867674769155790601173775331541350658148834365712792766638550597958495946268971980974822176487730853492751044907724241166494714434853561623009505289847764304825993332137757740423791221521108313805980270021014238827248869955907903784116784981885042200600005615846629153438819625437799502797725501417219064852469666540025886820207183317384963621315254487878995372655968037022840736605613648954911740466178712014320754706919676586269301203370005599223002214578758776931111533003153715971880717882801599310998968055319902037152186811450543240874545995469476455515629326738936461432069721023440143807944593233563404182748987402381349478504157480450902657318102218600723215790239747530858423061799721243477246684087277705546016081742939420985076129978272358134352999359303649960982902207414518649025131662995976489497233067441988019824474925945700291351058042840899566560162775352650996795508367292222621481457540372487543437265883391880785585643844287350143834191886280186516237615514990515480538075701220538690164438602296673980431411176494680922853033793567206882699470092631254615446219256831304656317386302020170699206872073000441502070264716690162418757965139617007983768021186969321920852352369958182489345157615704286208802953847187878393342418575917872360981052212408228057103934422411121575271515006456949542565155049566493581644813605021125723631536079123381342010408591742717094847665226108938580508533615647190427490068112627291568426201105982865544398814340459523390019168097282130633893405983475568215292045804289718036613379671749017156872071800751665212742478096183596935456269915545521296218162485242300381085215098422935519084380216947669773078048978323731860988415995821071515964831482891688729285658245860995481484469252888721418233991859531567469079541621088583930373824313616444719009201934617633180375228376357585063893339133511635343764279950810039068722796993303559786023205463118826547109346633882326138462923897312804382433324567771990461943064739497631126954741066387679965385086200915734463131363675028809211501132407970128899160241890100018623430923441683335703358745573649951816939011355292558671839381482188971214067310396208449306893216717569689392987060316204964096423634937843781013250451523892102254191890262196340330943148292376066251268262276762874681450541046991037118838634000846440345415151956290460970863460892906034150579135823155017287958558910555625084705169566441164061104375901177878789488064633841299895572260079245019298539906442827854960168939284938442684538509063963845342293792509096412659298928852085868828656316945450011996508901488392363639965663044348154410004258907089603155154906582980634197523946113140478823877310039010779290641870087364656327486955803576550761417279612247895662488081780338262835445355900118412637465287751642754155020668443850027342316257567030456245788625547833029935102596766193883292742256702620829571265922978582513610691511527575353795883789094379632265422685948008253290719996008916919567996186417233468380118921808365279210532698239992836934321337086485550856833714698218229877180522310230962128114145246522646324300203117398490635360799782703926467153285196732048214940952629538146487442056236137049318941275915474563424890773784237819014800025945776409542796473501029769163714166845319807682879563999441863917115610641343166320899388473279076268108110944512563402811231470579450075880581315033033777466385790665375038300409582619900813614462892702515576519126267285415355622902022878005297300750901011810385670410585499205820753439416266526840786901006590552672772038696989085200856647872968477411992013672048534490850977307703087586066015774900472996795063671273498232721523119843224108511471559881125637919459706574406106448966087431497780613675488708671999075379425206579345594086246187623957205023863377498396612231312881741292623070293220911668306490234200485620648478644069889622961836412689822479524719519661318200217119226625544719561771613434727537909715155378542596205693407429329013711522397238674606597640168136248149288351548252975606117573646937816973519494361747241132645384989676595120673730887918229517544265712828809909859992932478614362674929505060098577245908898527689686788705735736119543664534225656881770601643002238074682829520266236677927208235834326820010856367292590846787654334229112465091494673391683734395040362536147850411837647325716138398565936602367143632718828847175470616641227630851587819968176166810067027311070665307790317066426799673001468706982854519751479561775065713785104869628016643693400400629517495989186889201402879083238691044755703517757120910439175384340439948698073409078115827623100037205368337880954259176455912096268267745463129700069420500985617524405914591746490112009342770499368188651979597779624705709259214028788635537902034437255867339931719068399436038185740879971435622430562926767270892104410407128790878383052444030294645208815501748457000520591002770399343848699281862307817730409113305827392878793349780188735465517176196491398404894134301212403032122236154819528651973204025642441305706859525118363086783274705126582167330984553669828264958980264888769104652487486396819333702029811310511867758790752113423070755644836129172790580261736505147261332658259521735469256562577400459721427099806702225042266291995135727941112219380126631837889567194342320257863761090027160478490552513334480330009929856896700887149113819521211671443873373454946567832608213058200904333906536731006727517359653660633991157141854000503658071557500995123534719911714777613998347091245499868569437495679691187908747077657932793383946697583137110984463944270447923088743712474324329130744760827288301193721535662254401798844078037682438447732306075803135461425048916922668757651697054991440603054772062820263374602499919583208013358229499679775740181535377796604667511583178650967358234419537124500498419900637019843901445674361731917334145730713641814568083868204229368574208199892008287591014015510517689195742067675853415057404291337815784155729736359343139897676644730153953061570731074318735742695869807229594041707469545552541029345039954473852991808868080897753074135558763635603644453615953002549904814770998634199449014392986569393975928524855854309473849209399072342552634467802655747420218760532036865255398097977974513158827133923016604309666605099711055721176731076125069550620092373624351901800974088787679944401652802547366574384691558358346112936322826874208641185630182345523551167786050004616332469225077227394452820463666445282197948204322000891731515558688795339047246636487411875554108118538069413242347850365936085942872813097391858354301843414344458733521612760999077571814073483768415945067640830583644796734391815030768810760615064663628393494414337709446080955129826823657811750595979208151586144550112576637696815990287569055928947701194087092044199911778942510005869814448845973793261844924316633868455371636333851242041528195044276688653475747536281876957445337371336291364312380412433423270740486617176104368949759354851413599798650940411240885542724312622052043079434965231996343834737095691566743283420446645482500528460666415484287535610756817566363454568606423095043688441741990277213938808933874840066105342253350552835664567501607905324172633276051894612089940826142724061871378539347253053404569703943003702907531852596935178075625318325443000002047382320412926773366278586846126345432465803205467920904968317368433049373134938982427454916843360097877315028389397043873938604601988075062588780717140623705757218171430918536512562052789625748324477568065994657274844396843552550945166000327956127907370465021785499329736366507235558320821568733893172809779896020006182002946643077027249712582691906871623985445182813525329530444398827725894291178422958738861092831647290308965990424634875697421963869405685544209669509049105350918853613387297328544889496777663191374968834720616139568377915800751534323805175206524915307264176057585542441177932538322109243303796798536118177238416425324959387331399567065972833355000160546656749875506109485280199527643301067954872302422122833080824727952966132734318454333767860766279108717789311200270489169479345487514025135166110756489048525952042023067175698042191178022739039931510145482942151449684116799887896904774497095126877098162325693161133746955480156453132218836650936535709594099516170106777296017145758357017397536271812342268151267474918524218979237210567627903815625312302477809104740976761565296382986405199724167629208814220600655885903057736673570444924258729879299967933528700122742538173229311712164747622789263182560344948989400128672019924558695278838091053874171995848007381862392342652133872898703374809031035828983516027644123951489363317570684635570238234231161380166603758668472268658168489335087626318227232868755126053365080683507425067119310345646751365497950085024833675342259013087309618032724480682959323415296638284242325924382067580032148942826948465235365438182014017555852135623084603550639858906687711937175399893724730543728660888059021105742662073925271419416027997982454008448069935125348147145626911294574534791085422637779233547312750140038181262191390217764060374071621018649859008784069547185934057988623285421917238756559413947866930438020878885938860982227519970386467996724649607849052313204473750905737964368380035098507899991003975810270146988689808918109111974354055328763427929000725290161257955898258877117564012297657312487370458818348490191625590955094594394781741272254695264438555443366491995581783403781899388495288599491345024471526387106192441773408972599969579244399889058663183934897610130613351499867066531057651179198100519147678658098664922516437941613862003721247713921475460326927701548389129656430651442494612234853109117754194310653104445131707901370053135272798557677405564477974961286666903114695742570539637293638737495765468001720300041459579536692996314647423555025488635853309318827052711700079564135347530180794743679164439965449005223100927943972789938425295534366857763381348508574139874650333502348751616418260320600411529059242415772439665290745860369948870392929152510581174134840270082258763329274164053741351865324999833932817344202727252478303489203697822135241245323829794307808942917845862573396609625964959642131158418914239396151009557053649193129301558874926854969494550444344098858405879848552499727341108185620411181790966514833899337293516643672018538253204920231086975910707415905713934108553697633170514178504014204020697638973896420917765075053107663844814811643280957644813501558495896894463861364469994508428267597134581064712653392516065479328877523292963310628566278396818085259096616580896043592062680340286812136893513389029354295329244816353405654000563261082548549552268594775031017874472395253647729322358716584879505235797256122992062384708589043812940937619273125161377748668974841691546855131790688574422193050321834864876396890094285762707324222153095332643313496721993584961267230088236256849461618323266266363097388062449190691344240899900384212214606098180518230672273564704580737568236137847141186580186400301097804294361166867388909727388070230467556059492206736643311143478664007572364786553966485932512303890527226708313710059692446421316197981555770655844713771696049279312934893405351448371323126864727582586217688792589652462574773802042754241696518467343759769644098601065874512137536063042075784078635379421737631388631565096244170082182823462197413796589723126498633924319741043614290175336319746083118005192835400861443464394051226668251332692975189968947358852865827642401323756311272006013781965049551636104740204258988228588674076143051643035446506250789782536461801673504076702034659143752309162407902058745788153492835207891300751909730695402033516075152619362761392097725945599891107910797297534364337975348489146090348679851090587229609438127737010284271567821831869896204820332338938786286052561132464372679057946006973008719700138868938601958354848872879106298471236634559271298645618528640931605714226042643245424871401557414601888492716064531860180340906992490118473522549712646527428017895763907705500806839053326161916337965803710811464442889745571667306035554155907471977918906753403020297105773473784967033478867756130779180070792286777945824215244323019183951684570636863110376681870427087082245854816673586701599419970644791055836936252855306648270782833339204199005051241817247820779777843465381546465159914317733183223206167557149746001673794175753850828753034055520331945219148506444506687328223191036233182659664030566411845659617558082305344620509350898457843693878581974010594879088155377262353540450797250474460649854422119847078908954288163820425155433699809722093330066969600435687662294003653558193814950064209104701701067401361691870461477773857178145622451121741678856258830805807013611827975933456879370731740279285361637690589391316532653699135403911125729721150974310451574422477630205671066517943060417285383248359958620706032366761141237686216092517312829343430041556571058482984556975709778178572807803674398785521175118124333682465601728186703545154530100900893794462315278591586364401578597587614696651679410971003683932702700256279550064293769338214438600824639979211406398349733068454203749223786992128755498797785686336294770903779875020662520972152878590850830537540963209804026104785197757819495546326847166550106560546563777822063361556797576177104498167375712430120696093598259826604538476922005090029150257188567765804073476723457637426138643718142330370220335023063817566391639189481696288434258984181542081744201147205002486101617955370929624483713085717184329910045924537702891020345705977461349217144641881147787731487399756872069050790625471921256345109057883903474798005786247248626301668484333469068187207546808997464048804518035861036170067451089696262485005163739063607240202026878248558527795894803741931625588205960770776930140861664118922991382494454563316696785867858326072007764666345393904163334862435089077617506528721840600074253150926568519149819833514928202856772156703083686381449188327871125494920858259734033709834943657676541035409225930032447881251521009153866628980386353543949404405024247818992959703683162974156720937399552823039222318127532085422433844782724244316653083009338583099193557767590525229091544176840860647010346447948011585211017901321114102801013534979330173584819768608522439306158667330715491905841942031217018488401200389482439900466630498594622979832956371938585802076014718206792711716551844081311444002090150040927749107182654304106396912106147253671515638187275951855184268975943209871536815323116192687228076184269359027023578828516119841552070423381889978829588604997564768260736546234001345041158588408956216697727606339897357955828488770138225189551245609658596702993130571156280545915589797407319628839194921792985644033234680042228166469406704351693609181791315769774656351871465176675853125369195360600573791554543063928047607074754361087769069950428787987885523759050887727078629145573377578700188610832801499948895116273125699371994863675728168095692184504324759605972980232889735398296731491799966475689623670553769126244995360031656476968841567040826698835186506096444572633288986432078829138272277637910266546065842053050197867209284363591432853954634170544017793121112191051363500147497457910382762665579017439467298887514071782685225442378398430212147136026284911822657558360175491081462704402010911866463600205067691275346558072444657830403455045296479903663070285848165079323938020355598715768826099075265320771841770808929375455852536139302526512828556655995290466824954368704608249903511397649627279018986362559893831348591375692956419103696742175424549294574443076805005190892723465056891901817071741080312795552593646685619235102461101951035565549003210772214439726373149431061940787882458339869480512043465536389830230670386965615396177075187202976738222598899726733056503273510204527995874304010676072859266101825421526174906447020855115014116485402907384948560241408444082264982914551005709989229206681200090694614620731729810362108330622286418226865025889486904614006114186182142584298054140121127946034346963255534103174146087802455385796798681083814974640702559116223001108302853354103213342952136913746755224837810843170276459683604669546261814980400427344962475573997191510451941876703219324439470875655044440971834041149396429378523786933858949323976510963447329309550537527258591331864945792799384612149162160532210491559021219448630983381989808442584893603773772472073149513253885382129448664360532758062401324470168490898777974312909427101298757767773754557232037976684873150630642488442679302574110034333644642722933079681240809078853893638193218102501695265658730779670356472082336825525359346552561474219918570698771626128201046665351060147732518763023136603765761244204020999433726251807236536508610275005230892150391595807817958843227164487006979449755286453951769659526776649880765806084763711816557724166009018612090546707919673864735000023625303102723486911528279882524777273135600788446356634696850916088990797658936277665695042332640309420234978863815855355450552748057345770428690864854643806575272899455834510754586163858501630059329259058659147794088623406287625003989111715078340578626453826133022617088860453149490211716921960620078174301159612385545783865270671958064963210076410154258810752775413737011172267189037777868050770822942913793620710638699595753498359175836200157065058138257858410754572902757367619216301460426391075964785181889734964347330572258235877033112850392891859764375473458605660134524342493436247355441470613142608173191751592160701724506100321863143376336713262358885629731858432307771901223824707506618991830987900814201766127391500756958712427745905459363858944528615697357973296860885455143323424991758757924747743869876191831954078274427361311629879159672878413542137937906102984775927752822298603042681033627485523396758775391863590737000069314959440210422828349161926618288018991516688073831700954616350058258485373131110058037573859648333358681699167583265544571666735152346944274372776538001303115746702160062188987520405317664958426750985185313051513601495682065450168094217897815079904201062151635123030374068115378107308942938872901772636930598298485668074794956780717533507642449504456076666569864138128065820465153128292549373172648849799885871923412513809316584522473102992441599472758524878237565590003343566382211452683400422502290374837732721478536043966738178920157060459791894960695133246131283084920822091792364872813304820070339482805196716266830316791650171781909594137817568657530282885517287393138732637691333120447866947529833064098307507503095976543069503103639163753726005245849780952055550972338122721283731396329540541946089672208300175359873725526740305254922140916637433728220685069827695711309397578859188190093824536009221760077347808351518415238248278330687905251415517334584026148778235813936272698390631659731005963121953830154232942012059615166812236007595362406200746413541344313352999490790221808834183045771586599351021476314226886594144822883199505594439350612307053129248410810909998061748223009841746577446673272738467423895386512068017764588311122425802505383495458485766626402843966950152111106783801429229783591884232636415248426296118129311462941209334201790967479229835032438397218644560652056338089556734476090901583356979473894190565122662185264319407471426121384586527711851209631805469741479449296700014169011441435071635699972336436911696232041468586147129877835903816385633850606473746600192221357509397929307233899246289040375086357407553611467475797185570877756882987192422605814653960141666582934639214183860825267124586381074402149339110364765574358216841146235764936411977497683107674972064013481891898517486213752729081546533009098764776484161643930411498729215284377981937580712245618645510399800448993799515078582790589387839775404128636262432533181508970855700410479275066827644958637913904148767046003110531956484049212953362794296167901709902217322355195699446034236681953925378063372038925891936996096871595450831231222303263711922425168262098020199084923640317726358657182966046428033273824201739315544786289524208319567954898881090106197511115960601209579377615427360190750127694910291726006943597780625091138764042733338188085542803524698527972141066270425396510892068107126962856160618629920613318570665424898308051683091357156752237213080948509344605839008710628555319647006351724661487095868516630074350097863294942052205268562745567779245519372475062320071161498759896589815873028411651295656645175058569435839053521831954068247417357269600578136586659841751926043487498684182724366618849789953777259674987805081643205310750226302345506815057700620179143881417971131220643030437998021804025214395148793469298573927459700524038405073294410124116980279694466267911277417612398498433267823631857433242224807001911768958136316003859003943022413904059179658246237935464610218915961061784682556679717476420580863314791602586412340872262757526392096283906308036505879151524786737692421016047428778714213163901013155355107554563149099743036083617736950545467305316123435975892400631159250419806305085299457424767253566881938553731876406371738333843665211538357556377763474149022301454335241728201615930022412026765113003505035934886349506202696432631740195056484931490132246672671191318642419474981647608998931462241337323022245893057478586029209638371218368162624922111752310817093471125508088913292203982012359098332544694310184973593239123413968004435783238356759415586068468694402283179298026375115821618133635497987618532398203676432141528293829944171504774127109750328186946206331574568145477949261293198792720929657286422980710578532703502875982256168336617858102873450892735718107611778343924442935124778482533714293023610459845848269596112012416793041833327619484264191559565360330010572286141143980887616582048433845451317236027680585895663458343412913091050861597003155411630667909520767862836599547351143175829826722311543519119654612749914340910527297067495571570755083879067626991570584626351929059927370241254590007785193789885841872203707210921964760894072352190165113893229111453589261749881237252806739754802758913013500713274171583203841266415338482015803331758828306514233581500480739773645623605914933285020277274820608119339758968917281019350301585599105318701706602919081430087124029797137326985919099451791820474312324548222197748798812587922248720937261650484581839092174252022202070006397833554040274977630284633342188067834683341104390151915892950999521994894396519376308257741185330062668703951932875306522169335973155658653448846506830515041388881140479060383213553152088787173118772053400983719279466616555436218014175606542242479592403273003020681079016273716765640716682373271705372608481404146347315118199388986745524759433663564239793644216015708242664793300652307684754328549387165718340669862193725648018657753339684322023133737863834273094207941633613307198018832780726441333890121201194610402037272732267456017628060552582161961168749995919216937244308869491517797083997759124632553686631370260233430040216151079916841340929215446086712056022628475986967844242587279348216699632732793369922581780027822916474475811241434413860642553071704707205816314432820958156887299573775090642857918664155195105815312736757842334856742770362838541841483271625664370708026745292728152455968247737452188093656815499464988098710117862207392457555118461562586368488236444611630688740462474142263821984993375151987321003295501473177355435600188861172781312058828382519366984028654710168588716312617947253378060759538679278651824845742269129623882636738056962353312445710912082754922127224374261404729766593857670735013255940571584686039145930586998095461291097641993919370036551569247314311440749736813095232647234721945910152236809252969779509559769374105157030738539209771833153178957192765110855052846100281120305183688252987989892720021953407605593523328168396880700905851936769016555537355763608012067969823875621128199032382065565270493188289121894176519688927938172616795908293816385742929317913162426876586496140867199897945970669970187207545054614004952648019990806068209908304822259361927382183939968350080430216067076338972164420889661969101889669875389301451865483279258377817689688750426007688407420160952711690206550656147990168922253274127027888542636778143462085127312824467086165340184651770267761900976595612920694175544481458628215240619662965313623589015275925949947530230835407112455406658759942595204916810472441638056430393090735889991425575385208599727490895575073120700318034596009142165929501607104022500493969152683878543264327896481907720024716500707896055522517627278400258281733036837112957097627460103546238994581301183695467684900325613198393087014694446874445719293914083111860448376564319794476548219887054847159351953856701260804471609081822597416186462882725652443055431288636773547306251751398151516820537867893207894519444395703210069699630398995035085068200244889084963686892573377017749241710442216335923184702557773427621660744611871934810402473918177871697383049414940914781089881513290385278504475870716643974925252511053855771817390301096610107325045496798764530257666886413606006445517305451338430976935430587344690345676500148909064329380649748909189560371210653325443435388268838562570198426703754933198376746948554469626894158324747242538010502089071455169751153429839785755227272936725583260506345979477553515356541441776168950159736541193597397912764162715991431804782274784246775923149546871875507518658166316948783009512830957436767465539642037684641962179673619139009041560059498713841505925869436343028376992914832180841379704562827848187330784585691038467891443090973544446104979472013114309691880828670628050311554056965758854010310492716152065730211223239468820485049096189188880728950040579962167198376052646269039098527160065233146528534294459313645164541052323608013460139066218734591807773247159128327462253125440265493327448104438921897884481978716717645126276609691897895313632297804197667536145876921779449279242451149428629911789204950848586266866655890245521818957815114994594431419456452996416204260245053185164517993890259857620522236125390269207720379220687921228483503425122933771896574399562163662362148195507007458794652026758860587473334795740065193898628186179437784417644374882711184220239900243909600249757040667790779884284696544343839217976053620728314672350161454929430178223108696571426006438208193055304276755681603400819422018508939415824611745306654142704839036313777475355160241645400386803075118547330939476574434695431456756795253667002734406763471781367493464020864776410228932715797739045570826061092464321563512970718126024963245233902581866919677269374950093225361378146424832464153271681188271941201641699756485383672160719195080249482912826377515774455004892613705316596158074205972743624293655200318002529284342794801088898919449309249187015698816890118928258331975303489805666583340771679763805053355575720666218157736097945836307729451716566068173260327368701052409313883454663468109193353075199899903176871157203373639667050450805128339047157822335431616329681889165723092876533290750944826020480906952695453795407172746830224704950133387799883076351377723128474824053565132173575950701098715905581004754833952854740722844719748823695370984049847274895086714796366001068165439928388511674980733932390530328886030144384820399290511063147685047882059401205210780016234282933339298245243635640460504739176536853153347969276765504900059620853306308204603847898205468530933869828528397263235506836017795299981139137660687094898181187237391515576702065865096236170171912859369246983141427928154022492671957427668681907866886836950986376834442886678459147627630127765477031066901106652644305379508208994057835282481775283797713980927617470728524445485477947113601354783457405735059800383263376258913542664652712172129774971368900166499767363475531572479808843578199982108107594307982303137991640699526940085975185650312075963094376059325293596455803283712409423953763517831538298757463624231911336324946757897805904523286822472189896818873747155860397615429460555693631955248453609509543651975010708114194798116766314911640920625485503235655305943158888136681065779676124914990051046747426107684717488013942437595625530306542288821995315390571541282217483196644337364419450480877745703732060780255916231859693518666944448306197505498521659863802032992119871462737466361207181738577367572997875666188180069250582641952673588475703997942620054492338817987612813720287280050225186287177557400786979394598704336459871275648129588853786121755735274721788852278079366885383257907199670581483896048829550683909500942768689860765178475557847916684356778928728666721790321838951217748082048630510595053091665720694358400548979624667000358471061075299546302800132636400155024734120393754027300298551912815973634082320037267202677998292116011157032651031662924376499520291968271749438744542598593503899784400548103844633471770366674997916420493164608673325052626607249303876167746128986111551305665517711856214197604246529563841819055963691628739330267884859455931342785162276493918398305703576103553261576188402564572213534708881222374664471471076264042789815648342160555419659344425210166176762801802974360210885541375335153653702275848116056594257227180934792272046374176474049353756436383790215295335002993172529854844699461564876472533277262107057869345170787566397601939282830869945841827379657052303960761544175755337216989141625834239667819647703154019678810086895342612283208750907628791049799716756591927322435884464369701683862450120940208264547148241130687018754939417138404890303405454805074061064969134452875968123079114739191742919252192520119125653342529408980228757273998826789670042373653387498337718855615524044211143866624735394532725445486552901936609683392302153367003438344832521515391239084196142425052343475763789164658030536650991305372054005278846704949970311978626574853363499801956655206344750270351168575894308259013020302238341218911757613535622096465825115003034883781915057988428821364171729252674860239823736381296172710807901134037598367512528639872114809415739209979532612634507413284335755687638551170700344729021044195111460621729337784695815435880624746522385670216369267578461357798687395689720692303625003278319789464747328865898006908643451782352516330302569845057276233532843525706484610655057576301569536819912627456755502242023653774652242533360392170542010943841183469685549827119376755914115386330077467709230321305243272433094463002052980756974438009534103080787673050104038237619695834998431845664021702724111478238053531472593841074636164477436041829336748091932493230648552393161824663869097244680424185923314269764079333199255851270764904381051157089944825313803296996631040709284316315441275850544926648671179038812193621378314473197263701769576153253739273470633639734990212848684629102263927614347041335839232860319036130131932627503227251418496273121187294091931987692762536638061797031463909488493986979665047249146308261442627166524699318362497016241120006368148439277848407496128213083960514812125871527300706948971234350062524884525631941841501864636563597491924824143952828502019173897777564120824542830809343314303051860284109788929806512684877773648432142842139476248920662856091490628554577046005323844168676054939033909667821291571904949573640831438861150256106964378385733366462036509098371806481263757267805040960905665035382289191483546616362008191682113126176898859870245575468456808958577133195438832648913933221431189799119115489986272873023341499399793523202912132308700681758145132021202023713541201734652458096932544724867787494796071281376521653454020419882817618608383654254306130524745039841836097236589876546201749010582442650786595271127449565214386211825735618102824865283767649672318268180467658966033338501389739237521952605504410009727222762355863329003307981925073746810826298714029567557250405544039012873268363190260224793045951102367234755285908510613464029283184312589431687597651678004009417378024176048738008654258102530521269870259605209808948855164154011664898416452419983792050313053808145079901710971898523351508922803630400480742371749961651528561009151219672561371749320222727479751314950367296427569323346116426788996919141664073409825333286954183431428842057974358247295053273747278488870066832751424206875929339277694552620753122801788308127051637958240073267650027450336153212378004955655489561713876254168730169096717255361189302917269702096165925843740683186401491579447603918347439684989437130243579895082010563705047618214913912437982394390466678709984791424978628692622051427804794676598668700430940166195564993504105327234336750434602704471398599476978287091776713110753418032636844407458746993025010447808513784544254612570989543174730161713664271557172125578092795163209111259811770163215738566262130675160042031809420692581564490755156030370926268802726238094942239423785721772225610811200787811099281245341136035630466094674907040873610468944600790614879447280837613386085747523166204687143039566100759817999774219608884858344028804371365092429781998070671594414285801657915447929182750680876854866555832052765660083832742584139599360835321509219525800953969837143600525395358859202353347285295616954478611502098315934095739384800449250012947617253828789352534891124596055168221855375703577964591535478135020900184471666437121095379017757494864656665329783501304884066682954796472946915973598803274188294083448074203627966330932428203174163052416503469463742952555212086855314710495742267358643600265381530121794643288561490046239441288067779355968362943640964853122099764548243488761615344990095337235893099848066197886896574215948692410718566829079239529955682434401181925902607986176321942692742217055428952784165823788265023075092672404850249863545447280402169467651807292617977108531743905403690785701240857721991664200183155942684178167437285848713909113197071884823095863304364756946455395122885401150535633292078259273133767970311041057476843619818310039581769853197384468631864823071487134220273297155874845961667250503332413102604324853928905250460895699094140668541858569543415078077711975946373516740326044056865640386668523649549038819984481434642531567813660591968158456371895102888180500867532256869763683400079021739157954358460981827267431169464577838520017867318297776509050487543118385025889988768530573082979637226915050753400257495638569345006156174883059138448443565155497587410863686282868291383704771337380280804198129690106593116458413914367679234840297112442508246737965290110684511224233912897975065653785637159601057729089696677720016637729545169284645474016380625585138154702120899139185240778107676850518827099417620766282950939665278438188962712988565924801033240322293665514418923231344831793631952520725209358721179042279610745478129546919885747884351475298953434459721903038600776112772516496266822056606461258896895099122205313392994143669143811962958132150894924194977581721129297849137506456900431236145030860146910021560270605141376415551523089385832795882098950225616882764094572792129224218791668971541867377544214949616796928166763635374450706524878466687060366951532924994082902322598184786386719678682411280428483738953931732304426846801442556134877581553270478003103503028166660993989350415116169392909242190734230852474281942595511960573572833257260450285977318928316425983628994424250476906515209365748077213772358515621327894939400967554432546388961912105659426122801268034999730219950153428354596857222263761799168725236890218032533799800025442180085828536766424558065931508918926455829694967041625820204517275135693580271771082920510500709255101441791546464093799617068688874306993323856511029905893064428953999684950532135396089064887127654623725777676401341135216360981887031778142449553151608542843245699086015527531651631067111200024265674605207629635217342913573819590083815947656837095984719118992082288139638371884578418623268358295447982006979387395812110246425456650351682670807009657656281898145021295561778697162096813558676053071695907877301085823617469323850489366851910564611245327395853730108068698245199353471032954728372785855629580970992955557041744017690358046442754812509197961097205504867894731740612317593814320229960220425503984187804651104040830364844565682550966572664288754665143169221917699495527004232312204142637517142671859437688622883281547304801559640627170197296300756298137280508657336097061788898956268275252029278971119688229693582565915572003731880551051759406687858198861937536505763910234475033602879753539656396178777627482699741990817546586333219732328236580377336548031312024800098654688681610134052845495014500840791372104261767115111267068554146323716591057412172188442991052514827765887932114995461827747149320586809558007962752888188895432077248131666020890010446045411015271554982459224544623306542793765512110013386674769782259846039395575738592969309773786564163305431817062970287495859893457949274866659891109270825662685285992077956655523494722084037940664457506376845110575856957276065490277094083741475263579872069284918095109083409898785367419535170158324027134185398262583767710944134296256130247497312171564399177111333400109445788655773641627458614999301387587468325828298279246069604617552344236585122060870231112262499697347022372517975447201889778230603114077159715974217863919181389980818969705590203235712458444044922422685334982879727231563056989541915123991283103112082217113367361513394811525287718904687277061967554791456138789301844372791678980221668947061678897184548793508842306271089415313878837103514064579379998944471623074596364500037260602792020205438235964712804768454940210117511857685890200437680584728132186346193673887323248180484238470081245170431236697513049799217681689483276453756008563226322781668802891368120284950454363383458096818269412587867988681942262629645759199446537350916752015763241247636125848050041880583453436228215114346434846107316069952266231524477929058418843260344049515159415848496548062143824492307276987998416094881189029715311143705635783093534972995990734875546431443364572287607960145401771613759591615407358845552205286269457818733265552705181183258522254061997666308517179309279111376226906490837559661729336369622036169979477559887697040052669912046721077460310542553280562591769227478262772162596437951622355491581291348468903076178856255954227114343239391082455353348293734106984844778501360338741905462283832882734640188486673296976676570465768453259308634549026515271898400376283157287163208794242784047713319531433564275204792511941939722277821346539549886182692397923874070648858487970462165889052545586250113395269625722785161579532994200487731093225734825702038380954873120433480029556464985927514864312628457207190924143167281070631693820355519036780875324249871412828817535437190105472964886814311748288766690846438531073627866579784558851808078507756160226220716588950820435880876663663388077850625083745251837526938267542502163019372067097497365707609762637279132342418512959857405880027722703866594927226915357813265068601884294577788652413081599660612942464490475815797683372253128351408911335487197313604843842094724985806001765198121492360405163680847021196999392602335696170966831091509790035503427966071021681803192024198228985940251833024694452638262756941172642302740399479372882475635729530535474029704040857046394967622893525106448192579866739249104751215199869430848379167271268425240076052435403176087647749008288695949017156455832808776871304888294759874584642579557901723064724359604309551480774243712862948917577463025157553323433062757987549801231143008959315227729884816407591860139268256133100323785292583726465582728005632467890116656546029138738790261780294072939031206800535491497627558158734102477959278436593151218778185139272101672272133155591085126466978497323558603767498688702919893673361446364414830087593784111319839325352747794613047834342020435263752927135352283935535913057763234438529300989239048332264762556785835131277652738617829422877719401023232908743157126760281340227773329548032054337831947849799583463787726223182283338684968186902364981733224521943871384091878908299624387149242157271112301264937118897536275956885931751490298540217636193785945998153039023217817466261653094702937906032911681580023518995705322278267302235805379961961870649792451842696436684137765471888213177697975286398230639769278806069161511863736764373558402895599581257630037334641960963331339991646951631783452986853240656055859802579060569658515072320767572684177220343645378234555923094927940905775853106948810114019099688806944728830991172138735949928050580798001038194904943068582313513932347517389610340016720275704035223127199901167062669919040506563660418090570126183047324134258229038048331617872885658597884270822009200069680472194504429407582487621525622317183933154508268721660205981801884016962800901347636452136265773041811369851593080287457344454145010106733121407356277842107579856338733795386671890472115366806316772592271012320689927428324212368172969430459905656501623783203337637693100032047196221993214548162260920749275183736577959737242573275350218237639719294636570367315663468426562080372897795847132276520178247346665292839818303835324525865123324440875827092764296501560821545962117843964691200428562965408492463794431634601325125411692187493647360884679964319845627328230885083547616681984253891258900581407450582381084011728436432362662887454327280146843479129784713968757592891338328180963410729093367391280770141168242268984390308560568070607692266543453512210783476966551512764695809760812016593160458797347654017418569838848164519538839685332057009764273285349378324721737749488322922641289634643734501948665997181651894011321802167000278667693381947098478256676602102211768989904213624127758671806830703915024388182195440478904278792094220222111560209989875643956559145325412720455633130535140611610219427142007622814816703689970536564645969273589918394835314111458094213540803542426526020408020193768212360818793154896508358957904053349264946906280511319757373212436793993677568496422866539921595335490312089606948710335018082781589285686337568006678972021220278008419538192598492650387919910694799581425101439851803940136231911165311080863289508026877113487577047030307635505143427970485561306874962596476233776993501187459561714644445968159011384914493769062964634822705846059304744033762987247203308152467947755034463305885996991767392290488899875395652894776658427427497348178778654440518127530459218330848697594424245843016224539317766116383638977145124661705692296275730714280456570355928321918821213895139195552204179121062168659112603257971665295163382925233828837959945555890755920486406082756581899352367391886686316141817589308551250398914695134417859905500269588848926236877315318563536053397451412107852072719717982865021618147502693211388455139491485731685813231940759078147056897372433023890650661553908765916862702717338048110944813176796520407722143739961455665759540698469949522288534336543696859285398645012858999455621923422555364045381550779675793724512125188325295117784513332507933328583069939655897132781232227182860804312192757308417226058138297187279347667656318622283541192685472536625770208710363021542210520986506510043317813390667578242792427383681156368835071726543634678034284996034452895758728186627542568012741786521740992059121797938763706580112274456660728221661727821695631396230117838263798308970830435311393804280080118384847528762224204928971125797887020621197855145198372182389699194556916793805016829816910442301614066505602681851145541096449584760273236515385382362770806170616291736743312273611367371311144995796905009598825451144180070118125255622693157530042938627324833033555182185756009450518465256035741661852344343389170226142595386908548908257876070767174511169345589032116180030244531227976931113060598619757028151107750709658095194271920359296748010058727445760609575649167129533520601516303288504547667565285561235020992918993173329039341890990219353280877539192048209689595183087110103729691360553188755053809148228174679589617758444404581724513874423781757626980152194647767289696458027672977179703924973843261154131943229246404272942795027056841127248338095885216488372496152560045635927804041171927098971997424526105398149204707493090637339631649299094411491672676800441254146801096071960393041011236960890315160571290027882267387347416057202823595629717746882455477583027130668626110814270281683234907622300161258483445377783402355478723389589049719838645351689761554737771376229037196181290426867613699291915663253886454988325790171048016163556828932405068597274849288098976131076675027460038347670868640393112521476350746471826426761335616274484104149691227493034907203832102215032033592782367475986835874579858526082026285007936497681571579891649695725251474601551070893307074763328458884213788332555904214195634805212044695527086820348560919802204299339221345234871166372382245777256239149953896016548662658583995384374663938660788221268122793555209342891194127169364213001176311218492507668689590474241850807802120879868095121696610539249832121281328992920041577898111286871821526931967305438716066209890201839604456576972701581722418997958065551626670920784215640383130367918500392163098961908495681194693905020192893026924886846093478554056958547160405733250392095557421770091922665763378375517342831526429257281182200442355276454412507840089190360362946242992274589170804712985659136782212309243428001022505088861747873156292509233219464604228999488840947117479785316133791404251377583317732942004724639591652591877573378247227823955939918837062837743221029090973475810172245970802799580411482240100002253099767375059598733303177838407506659552227992155010684252803176148757427362986600214547149065143770744605268799928898565129707336260636720937758633381431876252067163660996615824052588666657579479508005217814900014409752667757082196137610873003232690860063114895344754293611068932280020606357829732189448695242075353662998584115452182675582925378687282987833429081983916262468243914557961372380271383276293475356690213922151622507901812592959492269700155697026854743253116772443097328744704054309450422358783473335011118423726767793339017835088718523615435540722437290485325267133276992457413481145211446300677268573444524840493025757633491063464568859392713198888596830583192298931879999065938251626480492000315785171990025145105362828465944287029436264668356012241901441741162954851620057362942467930744833938209935780287726579871468111151871502866368789891186925416370588819201842220107343698228043091098170187459162048285233976872600174946603698853364351617784321776988400043302540918436275530426782057269875352786498015221352972171045700966375136802538238143242408307275203637926350519422401983172692120849086942369368695927985016489539815959565614990195810781679693916494992751995056288742543191598878519812304728714549728103410916690040602049079245436610612148945507791207865040963516531321239250044944312800796051788131670549287552657772291557451248708785767344746365204043795673141059384585051445322912320252882079707512735695615795768833748969726606298682490748683313013499950245054075025898881616236793857874236891343185984828333330154325559308158330763779931260781599272319183766447725906603590498132774378318561443787620672750031835573640126766841925602075858457519220020068381377909486357241062343748491593074537356012599315683756035723877071249827831809114648688311180003352023536242587604822226333402840828327044679203897953978470928541527436003810321582811399142974701860103386035400344547577587199357792614662437476426739077520643798602569699873433804779613777843935568839090415723441235130653284587857648533004883058593510702975514590187292173183320223345564043321082912936633565492344043134285144660879284405249752833344656798654651682558704077912032787834869310103495674094411542788931455806038449966792910785241889962781359962471790502216356752263106688019416996719374306928765038733874143503604403601989458169462455394222346505816172131228211469034744135190605174610501057908681674098978291927688720674278165092899804750834893122251868057005744978514323658365531298479366569515471798825318230550502653110199111554204390346384478738660425658805839326187029792392003096309580568666970449706632743567302359900651966962395517773390966689770243721618481988294895055189686353672526851701764278023189006412104466825552197878483969744654692792453942585470418373258422862434135329081968671151533528526278236509595661599496401676688313087741717796376316428197298764043527269546176701071913800270768788087118190513406421564504586041005893036246526279397955580661542691199977809472847648072473637794469661848261784318154221826847006458232439479502014438049890817281977555627664822956659819236567124725588958193723744296338817174306801939547905708023232449334223276721114001030674458645709252518996493669394513550955163719564090473662274834509980331273017087082579725908140326983944982499045618766753565628782559848956971885358663689058268405524326562531446174164166334332214702333655013555179392788955085924680602726153242053871676230483675596344525305303851234394727279913555179860851324636190597797400271363290751649098647666384418725947361209907182136614263134707248286780032712969901950730779678870966319501502573142709858930365624927993076242056421705487007804613857020055180710572976932853273489024956566712280299037015923419001081616759852118896615883494183578017946854621969705814015245331295774663521474808077086135085482293864101260225367875841770703312161927433779175248586687817899709067523129362963587145431907949554322598246645747808345010756898425672911996706422371072575176193290488937881903103285370800179146972825858147339561685547131034447174293349134524840914653699415531018403815717443756523851997712168702793444211186828509727696536859040409140575055561143105078799000302423540519003492128051116037590768407415805501602395372093494536726402048005319211573964245985718828720634637783926777927370000008655111634704974010384588683834757855377566772902541834602789813426594162076639028515288242490646236412797867762952748901811091543788371293446081338916203881252486282544716143132779451922443533466808695507810014566170392505705984123930808033772702705279370829170914735908242305039471935679761064179057564702722221500193109377510774724325082232966563769272043201758331391308454304176565451113405522738336639469537862699551191495241410743232679584836763703439306863559101028564316383800558347202937384436397752628216202507373554308894037710383491571387012018261654557782348711827072122563792560367500476106286572047708899124734334030719068119623662552539039141799268470903816974146222855822399862815979217764289991436119418123925058177336126332267330873085203945169963978519842245243173883502890719070662749133139550248915773003961943167521743751796146232209248195331622952742230902848196903608783577057483248337024376161735078266958310226640968999362212660961592553130190218829571566972817470049399717119300452089994342845493960141468204876665045293763442623002768231837082517748388143311185534475842562294194176330482853811959366345631102250180169621764244802467398110794177007050022874459782478120948496015936323010653307513953890414849725542309181221379233461952814563247695752552316134897646818594514484065371824650177916650137004606267686517425528439727940263656415577475228897665234019676238838034490214149569620890547866170474601301581977820580579888440999186428620384377889346054778662126737364089915150414679381049537895420028874372548661338728945583798169082360724312754550423596124585500051566312443094544282051671157853260937516947065608734351439099200437662606159459317182562268575169726978056706622737013443673533105970205337466972501739443494357137904290501973346719349217232614105038022399089145668517283288943016435686695983770597161868940203282082934852631247471929534382208768810685693487735210739503107354533914534406630296361416002753523542827497193307001673623757977622765978904323899585059926471112487812105303456874030758190016591659600988924307677906456808795152950077959536449882801481675984311188607105232830909742297042114100352221382279529542221186186260802069225975815633364358466497756741248946398674986467008750606490142260247650319145938080462015957074384621499991405014662639836442081911013337585808932464547014842498178848119272889649445648107288017559094930988857026664974078793922712782100848331069076579523554643056564141739077596655553167009370835874533578311643200742683254786518268663391814604592188937298182959193925431583239509934479275372544493823689979901114648308633299745483977365503857941229762278164214713663563435643495808710791529977242309391837461054831644484343724892755830968434511857719152021502393946546427408600677820657900222261703775631374272335290606811821687525934695783504358870523332437345771566298556563113499822485098422059061931674921964060968514486256774852707416293763725875769413028859374957693104946204313295343393540861100657730703138382126556333260008438867046262693405334829602910999249519995244972153211996148458941943546734001953730926335137247489804367563073400180833080021624995360940803930135780069215309019514601410215686150027799585595792985768537187622260027057124082647446064535715509779817065245464946033290957484119846006891725580990348744469523348611805343315149056764885969410856759046582945866740418742547351295618203382705169497434107488281409988286607976987547343468166360716394225214573714932458882954667393332616275475258217728148783402281273251171963465029193119106563762862284038381599507907426413743596858974032420845896422466428647412810446795694264199349631290986540780599794462801082849296925617797712164085102902194990861101936138932964332446295658358168586798033093758051242239890062829809824033051753081509589453463363896275811762552183479361326284956157107282954113867258350646058668690494295834818171467280707932490899925281197700108338560268063871097074550532174899801267941583699475164041266871550661608699252284893817061086956676923056655023404700977284264989468315272615296790961308172370186430434207747964700745466129809383781993287467382075396772825850114321229714838088968354646676874974400008912771123270735074871638056172884094387559516906281022296460478999263963112036377389673997796210232308622632022395414123106177279866084562315360534333924610852978331809260586049962216703060157599821420542487245635819691945451372588484824590172806690851289181311815201759373548425718108342268154708583764388512887554791200142335344938292934871833843669907379551506723231476451024389956260921408235888242153530942451797588233532061719798681426280729525889240460330154501621873685693938797068337582520411850895665985457255385730027197238227082726910499961036522753610602567276394247156698768994552377282628693920426072943322456477357920205573273048471256368135134360720268747775399284768896368497065672858438625753202295026894777802633073881238521973195592595064606993830162869973035591200784767204152083140093649731788976486293210040055605166877595228770274396929671588787572019038961602575920722305623001903895068425834557790494078103973140809627506947601865890407940224545571614099524040482298141079867572014404034480376866604924703098145988220900828656390124413230887237696814633110394369590010590167151315309317626240948028655287571216691400887506667893478464538197243497286784017768504687944502767496486251149138752861777281476906496135513519283974304308095609447213235640001970993641351097456316716866351059429822282544390931607129543440450092234301447732958053587721149095494535577344148323873407876605296376838321942394166328150479613203178698141011155828083954760373251338286280247476853434197371216579600076146030838672972849157942717240936671663762466900509315851763619366707355445891730268557594965911209446537503419749005263223586855050919002560403603215247489453944519870869342562319224667729708659123573797427022806283341183540055919583773700676430744271521083792120487093918503257385904081297831678895785255586114825640847427894053975921534345175351609107653630210854942618661657550753806281951917292008887088833936876398813037596045535602016999480185100767265556580999298529468821341169334778532435719793555425688185004184228027491654242830938757253012767177486565315419805560472817599558368815006345495915530945949452320614364197440205952533662594606255574270894484567978320359835595768103040256704944708796574883456941158051608958611872052694142773907960338210822566177137247296567391647985844392518648147350308899352609709229473406495644466074540161910700818591518100083832826940668152456538371386206286990639245982937922281771881303717858369070134126574720777546480125140438828856886174075616403484206694516001771482368517413743600697356016713124107746851185958202665699294206229389691617438682676219104490269755311994052134424190562548656492457999201737529644403581328091079471911988040030285946581168822297943411284960129155536976680005696704549964268031011694318682294976439346088600660046876467126418951315878333636343307633380397889768302586697200711952313623287215525139318217472092416100143823465034722539611021430626357830374599675121232240627531503999353002903585588357729415808151450770851151471897905735226290151496136109254535966198427753388246954245478505762388665098586031600812732713897595947484264834680123587344421159054783125692661858400854253311426293778697718122119161506283158309293257462892223291941628522441231141106597386485216691382649653426729986497923897756619753171694337903382961382037992859132306848503589294125832520434419227558796028115897792623546565880112354374004606980478698794312277834242863785549831880119664281943740500482500886199261409286264992870378780601000006866457047216234338690092295447682723148561458114361305732045592070370390984936634690117009803801909642555114776280020462931315256626676803642659639670205836972096122873394893200654376200712622652109430517989749725400813342751181461502351227701157569763243818661554489524434987774627493421846698889387717874270906813455719679639916889673180833126928546294810090770115510145279974618984866646447128259764169752448353773335969320124271382658725402012682839193428284744387159913259693472527967286268963970697588238399120033816199366046887265915172897980843175833480338748722472491376254765377300113403715849013791690227640255301393545859710696106202505208094804796778338521667712981393967700567500976447907200365843518655118136944733044623454557399998150677199544152757960903979060914451661965771363175361143179519066022847158103768332916213444027754935323096055846303816671688256753794776997402356686386341990808290354701192465447496795810510616409203490285340393309050228102997461500406095182768359901053089764972092483907891364012066528201093081348156014659811967913217466873903756371094766735559528062396884776703153502134837412557844531372557279851319372320892581880087329833488331810723799080331536056795691273511979801343219381285121354393286078512085285058777353591634209144371041321639204642307984123217879795658139702490414376711239611062276626957463048607729424151604497758605839440754661515610897723995580492292266718067108434441505672837046159190935660256380523435719319404954552036405076578426989025247299761896685504997015240512453048111215933743026664653859659999593155303581291938317883193121711500670549492180616155294469848741186390436491320222026576755227790616041936205301738114128998208665916811267609391456920201848340029339706531848971832634568025953275826533843254198060922517550357318214878876413738025862728067478152801737197582665535879986061645494417700369484135267667620144212585764139774824700869806995492189582822794728701786127321631090133601636573419450140278641642821349545933901610097054619250208682771830708218735443796641229545570718795418002999784883186221238769541197384928866871931044571375195744197793170389810126012313704887065028024167998743949796557057388639305766455221103712124534605833333449566488470352323935661282493806092729630990370995998030709161668109819448612947355874328023351388249294701818993623169827888306643443205798052159975506286911683131401475208069586711956350914654106814385610792745345745294588251175250997475695966381040239739020548804466569799658104537746129755970716122910306587901125207625968168912806666413790307842372836861604529546389653912553715697828569116410989434063414476789285774547466526655469107321647883792016799302858270438727245223649350094272056684072799468890793858598499942044155721396326081440824409638042614427531835664373515085429893996385126932473810408339433516102205857339561914165202940228777336556816002983185510790115366093415448815105798911401912701380772279109606418312461277423537452910285039521487238978199350880406155962448982975334970922682361791596263349583137047647837003814316393426769106731478484450573813071794393690013171562143052531159692524234121581948081630952673449361807217667257995784182194066400119379366817488279706044685072171145069561701798577016631316410514647586036942047467085822955954129289247268984308869921777491580195056065462316456733514977011400170864712034208314468413714252069907675553113672580201575785813719930800493810348990473255173640816274712927587733708038444525830485328232027770251038772371873727817267565705878059474353148699164550730042613902672890684653013214774395407009566809147199048595121529283175496736313535938612810407932581937033772402509133752797747015902488621075524922047956754030094048758300532700960649576353666747540304040444230253854431199207564076414067969473048857875237108319349586919014394947666453157862785582936203683048676313496010351726186765248255255841638438895844676662698179740508023540327977782033169492315373601670333094503265595215224049824188210009422356293327499266157281034059240873062283168495279084168144434388176974494798148319007246948898769138637179878628819844905630917336159261796073713769632241582239386229670158925278739992494151071054512646770633698499667991340017156780288440449504267937988471234333474443838125075592678639649256315708702449929755287571563523383190637137181018193895943003676949565537232287342373005397105119965002903805025862365180195928946883047290526771330784329708594538010395154278590263214690219634047409208432038367263137716554288631254234284835431678561221578394353320519691914477813979556134556806213725681210589453626089555987165785837346905649709361210168291408350699320732058151812267899724308057017648108784424409722582951931767284745222777671285867786166848525052355629195071169666741565737689133809001853989916939781004929431013181784039655315345624560298201861116724660124179621198862336821330229064664949761631372957761675043512404468824400313133846988141407934258977217599155875463769655336438831007486313346443468133820245215739457983919210451655399385412844428313965449464351295833329344325318749723673133790458664974626914148346094116803477246946102413573026308680068852999894082250502676593643947701702433260182432546310304389581617143992700591828215666289891059905956974681295949571533339815272171916776601528953391511929265755996919900816209565175544238734834858057938581969467441851506676636764699993236309007425028144442683042227118166419770555154284906905913374497992837015075640203699178076060171097546868810927608581667433608005637229748494517041704484425134551101532210072103998775784255852062463342419089679423973227666121277948221432115886331731961536538497704275059749247782877355296771389980342388013160954522414907524213963837837634613187909256318763241488117282472629069911995399171383459960295935809256356265798785892333432907121719085627686656348041180290830835977331716347014492235949876472884296017488299221050096553779117073927248796879360887689810070572843522413597170846772004603628652269859413876352495565253410928668632216273562414338526443427422999260594548414264261741263022367684364857448914933101813447685140545077650334868815214750289249764080823959921407324284355595504768666091763118072101397880385171625660338712523880140867419144005664515887278930969573888414244509008630695604309902409427666685148379315517946308250612523148756386288863742118768599362952912433325968955159879420250449913323408228205003836587177756317550489234422650538200659622379078327816613687033489627868426171054238493883356956707868561015214074825656496249112135656602427720324967045805675808262609154707105499745953016022424433178936163645060656057536832427509054973322481480644915320488819056751515190694135871127744371676364246918023237017409949980087828085203244054376328456038390829215649766137578989839919630686395344205053159722164321978901743367463417280372213835782019870458915141023364652378491394456394374105985561179458032221260036088997286513292500883606334170420271943928672946516534476756049105897627916063149808716610149480701370782486088910741676433447211499929743330116598679443878696924476553267305277790380672901750079860225851801263325847700749843451042463658892905452004723567857364804967000939590779385051202314566539074047277205286788150808897072966639570853191609304914006910920595939552772351849555146823169404945984928852098690946696686454378226414582308069374225337659252986673438794899188818481143851030839045411052159334480067626185881402876214864519526079003942985186303406874106104299035889167546078390101703409184288993524495360549645895469693270469159776534336917176658437047585472028158646521088021182283324459248512652022429028078337656845211625739047527639768610368341215699635032654043370240468945229252309887676384840207168457078332145533609732260302861661399928640218497665159631489015335307214970815447381773599811105126467357733394323462970076689090228301744216478211620543617361307235387982416397016115936351156534972615371753873000053418880681614477046945292443149951298132469881086907177058814771891476489913062570011041358680608100471997575748092202235266816357402287828626325855033927986801820402394855313831848089187416133241054987465188675505481164206339180712654914231498646199082514932567809529199112091620691095838579258641076366982175027551837285066930046087889464721825777620184501930286908783432977719097780195420321196151153907837372612964147482844423343869364525407615558476104073049654870468922933861779846447400785579703120343235660589193324165088757701688202757706735052890819054498521664859945215628509871724741374006086559949862020945044002486003603039284523407849267588633498530352916598771710835853483695108919995466745185187480711728036390831622023948276706276217363276686712296535897038081496799327316491296720896669244190578021721556415413598085544601308410207503076491657581546324318416021111126149385698233785007952549506223248907130396912581841485128995691940030719680532487378050084492494207170839944954580540304588732349621692039994104031458928503003764059695109235117365100110764945149726053207313280342038272312373002255813198412992103611116117439151979595476952941454156729172051705947640023035258400131127590389579984490760114914101970061804802865572148781085636418797513892582737913763584068331648198463245040855205865433824697896393240966910614423440083675432357948267833360540999161797844914998988653627055879489841615946594443184493474029547846569476793340090154283983263173111466072896662669976439243109756801189047712805616617522988895787872310146909470403911577077768274084849929699647683454596127284422091991715198425803214195364895870450881043754780097634424195394333164894310718774850554081044599141565825089368219170530926394049838092987795153275339499927226825037049106810245414416912931130566540948491941059089056848343690893555708745090855371583189678484766296883177893631454078152016415650404103950058370142691110112734235392655625011893826450891887005768300397416097949423076023224494049361955891614249290712106485171636319839767398896309818595746036608763286736759853422100717558940103791633188089716164020126990198794653610823806606483303415059076428022705367560582256051565643143689237435152379664140542692360220763128373328854713699151115955938812265389062702049432523702953510580927684865419543433629098499888002940390386214449144250149500369619522487715157915968252394991587580422151855523811657196850313693403866701864083019473482390120024799142670254148911527034154306065153866288078530569123999057093734443163707396451411118963571695377444629956181978967563574098574473259138638145098886021354906447445059522488457327728051513019745176968943365480848693029443109731087909434941175631978843227519863613435708786565052562866631900104534800629925181949428473666238570420209136053272989816094961571582732322376707954212848654501500659369897022093765056464328087859874183392231190853152204018155907177277946743437010146066127084098207114135340841578835168634069346288131272223597389154240293339020523105357818881974810799062850827547383187527213123111944734925562879143391743492526712672471312966045198256918605937849152655507976389769783771046236482315091528658788235269874323069336707809511760603993685159616512923743545580602087153932686954270838108379095863505568458394111127585241833887298517214903007269246664931342425945950773263708046213156180843647728685215779809646477138443935922263623154157852103451406890364854040905545660479275380327263116490656511355766463953098674244039226934483798036750809195858569937632333866620546807864211195062686183758634876871170030095560212109803873834821739869362262807278654053060924337393143528260345756101058219475085389424845934686356842665459803215315084602588523435577821650580218208860533328820073338012922711005073262111246665059632525074727755763193729287081853538543189735476952693971986991003728348648943244513674838655796185283397755730818437274403363266568430309468785913141140580221752275872833416489687735342584575517053285756479337934164479346894673576827716854329744482696145612982734060830566428136474279221202977128314724013688645695870899530331857244955547109564957211472948222671403965690907560213961359181023507820088532611695385198067823938886490025673467229089857051745148584075081506661059647501765567568883594008836139800602881880254580177734364014354652597770229806435638389733761959022287974790581420906209179037035548969213128404830136144346208095325298771439750483467563330377854350683588694424188687010600435085562437871434829432925856392965184229405532573401606384235103748569171344183223636516931455845547487560686615075196172873008114592015939821265523868265905417837333366142935559212532889929609534073966169644122130454851632253289072548068474408322933617802006874271394809523088696176336604604641474100424062147816875735112752042418458266543074983491772460826004186441804516606496046442120990697877591307613170276978661230398769108184670576263875625972461460958933012099836290214797750736673328357109342612321906852895196345024572056232737688783639083324167214248959722971198783606171798509687374364844875666932141697958482569428974485090995778030217293148850318477717733262973351716770583746872639937426548591263851074371051964100701162514963574948086303350692845859335306425525427082921331370127815325523995615272290065615697288665184396981962180648532304089132217380986071675927639193887181291412216319733044113953893028508485052561341354188118194933443886146257106737417578665614174872177492568064203216725581688213543874957172442877189548915056895271358749453705581384806260262686593638221645284133587774644378519086500596632676731224477645826914422267865898959333978980269700147045778550795615628336887110577620317972148211915654506997410139073865542264618944617460751752391533169321318173453896652546616203597193780595309405550958697269516364399634108002945235975209522519025796989483574267695654651416726399751388894177545529753901584654693629327220023558549776617619334792346879058380448541048977057918379992663498875881507945547969810008690615116147744235520895625827515476459067027713412346703556440403627326019135597825613895806416999640647236775050489147651127643240964358752887718178172629747196295580701371020511775453365300214938862221328741978871434879578409919360961498372907225862489091095322523848275471213724803314587372200987836291484314591357123324082154005081401793566861326858887659628069740287721245408556941325679329638648875492580091163809247604336433280315155595907296092057302172683289465729652835316764734664650150083859423915398198088220327950999634485369261919326438804783779626398891991412706600439896782191667780121632440172092765138693302635210143109001978734771841650858015212091090118315809993203012634550243652930971133512335446353868185471469904738367510489760347016611619615996051341099239583295033475082737856341199610135913236309056428592572201856865359712728449341101973520205513707380174278666935581968951564149936141363618305952622881210265487262537145877161742205782148212667145569602006608540846319852349304515922283753850353486531762743963622038259930725137695260014630565798621461008988372942632904216651724199383365096825279333014678304124990032845256502296272973915852666345275143132152443773798454007097906527782930889241830223301759056460410172573442456428692945079611007135959970397606399558939002305546644822185561201286898138725824896016153645826530126561364355818092820520541793428978563829552586125494017321697115178208465055851461564172449376576066267830635329413405535083227405981263116485366515105091811681308945962037717811360971363460828882262445261778125389464788041693100853925358766984493817214072151562283509221059256891068717372711390281418005563746666565573975166693620653869389195509859980755637725628421100905506159379061344671706438402222344552135456536556242145724493951829440428478895730682578994981065681538735628158587781354835191292319523193448933186877098620255942881792733834778560383947777712603769361732458516442200062606440254709747319441891636526339400280307905157328297912524560899239039001052314364309384817225330745537800616309965402934691053634801681019190393489139413396874045643685870066186335938759626493467781961153254784393318135636566537240568829641560300824441871930353316288752071684894112368713305890315436387592376151073242926184807445226945823148284722430854692534110939232893435490185862655639975693431177597343437981055806265300143959163348324945374360589721509747902096801510557140539119494988644396195649295036252072659741199773133472469537339944310857540681964836040616956337331687506209484492127170143154923078007001430496761439230971133505554996807015265876979878182039283203435514232434368752718565860710065169657954646681146954382781336466627814324470164065758736707088971992306948370856816392838794030031200014078885909963369162284760741067601190167046626063025996026923095721393845668229576411571668112281033524424087008727808723564579222910303424216368950624096433822344702028991290812369294381860788650484763816801872760055808577159297144939002026140067745437723908038753191524894123427702543872227169689873662523997444264773710712285030245509676792179557875218322790430750344445330674212348761574654197913182838475361982305014343824712183273545936685739431441313175388901842452754739594597282102504361776333878431949099374258923714022629484031971994626200716275236603295325215836155306129752385265463306441832148928032292717500328668297290008390030797069141572541926196641835328269125656797857170301068798682146685500488530807949786761708492167326945219617810106512311986950979905115782579364986939469716531153997922276482530464972706394859908882962997144630369758098294911664048055661054517927301662071323614834952926619785835384157922467133150950187794607199981811262991952425758084189265403949334834724068402170495916711390113340369637712804322670721175686853713928706331581524774625566094925371375355909765955079715144268758350207454468254004558825667855509069211333239713212018798618985402868831063560535184229969605692413418286138746931576438270761209851722179705283765013225667308878819264610879681829027886096525042075045396864647658083276126474154040390375305005527835535900828833154278299826030328050700070177402607869252744674914994698927986906647596757908894357361173754874445627661673878313086548300205918374088693179335622834266858885111730315603783752057494397914325265364045214502334784614985473403588067858512401871368884218301465605381156932276105140086754815051113537455995069042311446686875203499379143080163876774626582917069069773771389485453453385339448100452456597121022838979255610096494078137166751598142756937049604195605413241605111191741948913871657675757434491306941280396107732147196767976817894886616481841386014839698969342733866248084098621402061556495702768538024085647928106467465988744776683175081871828918737653384082227216303415448252870257421641304802889127713456293847572115914417584747743082527755933542104928167586340559796173948177145936059485508760945708058567823170958460735061835425971252111956918137621835906312606198103980014137548047078229628994855509536091283145853294085885389582394417021387464287112180052817013852895789604264554813201438430201452127050306374037428052620437927836597301704293376451212178594731637467949687438926122897809001558194490202632862930268586765991524719772976210963258537585597788154200003003557683086200206751818642133921994918312624029198906689150785753070291990596383054725955808710173485736156514551471843555085467720828430191779787126777171279993416262320152404429021930828432452038986442230265718659970794485937648101869460913257110729621604217529103173340976399796456416549430443122088166298357885873829299862203927768377650382882420070415769560575635179712138163303801350453895580005384449006461579433425565660346205402533356843406929745955944710806373956736489311229335365648439783168289429255589365338251497230332679482893818171080537503134459008061945396036783721008786379000685090928960391960387774310797784884846407722858426629541772748028116961551690411235682655367705495678173734449789607463681652047835756388858532197995694058434841296074191620502890621489413386826941075677714956470173936882333812799050035019087016166090976948458263924006958100266535600720287046332817155878879923324634773632800358032524720246898229709670681859723924186058601315174287277987120822833453752446210998160093424146255259250003471412391368911438734709593563152956556494031757970487533734106533899397766273545405812307592977216668946139363518769725077796140209621535705326283192628180864101610467343788083528440929234107929122449349928210950176362042740726317895206410713561443169173567707384820177827353967834913442713859867971410076127314022927879449841599834689149184272921749458185673658210950095872166218373443676850852353635556477940743385268239616681883604462043494576876640558622086880487094093527757613428233264472747468818187306262137385328932277362222687818620099257498553039832044533807645958361948662330113244711656602425456502538906424841431506205148939627061853670174760083446716824218875891943220615844981988517390313101103657338852967971443523940353646904975204421906305113187416772258098045753022445787779910982139958725418793171128825429963614871709294487216496101398962009107165783661418305636311405097350106515465892811084809838537366700438912598627455393494883064723704314974079457010823216800381452677359338918319981237285875455853404191989329446525816858768540254019512679404757906030693109967905847171863466084466186296099076403381454865730214736217511670647754166769201733202882838394665702395532579915229761852518602146976129071852237244052928025956906797362532069350655614864716321599552263136102133060121834173204440263759854189820371346690781022998170538810218901934991052921986662933461809882795972959116192585629334375936397153327429050622615116600393213812021106243190532764312801188220848050319761878421585171105497971513228572941455010264292516157639940714663606672610125139985413490752780617392116149754616354188848980947282819507615733532908152698386043939490732980650314397505088845616922784735740072434792770356238843337915101434670285336465902414435886971454601439309064361381853336029759169537316003981405640231026699066397970847579110269526610663347551120902899001302767856692421257291753332945082011182750651975525280988652839157563948165661567622844882165757188235777694123820207758793298391575845276848761402138128552086030012982509843841138515834127956024843664902186130195505744995975781585198389851258688905433446399889850895767847930452365283213698297266003568653875314683907024985240355217001416365618249393488092992940501321074479255217766987827369326265446288467481451102332563457071593689550342118786306725625283789582231703219003521523675738600733166181002574505771124517805761892922578549082697613597490627763520506926481735853006213507688151742816043339368008714474256038774190298328829896059311754821360114892580066146257938124432982538491197145672793524016032752348864487917998913447091791913657168734130460421740555667722585398225005161887381900518378264971592938323414351673555050952459060021094388042566739354647702131233649228119585755311648365183051810132041923277062494474738182536389645671875200050849350733701630925911600247261590042641757026445032699857990946611914908310046042156186992660412919038709287281612685443513750808446185534315302029013353852576109060881886572401351014445486274992317667977137735016046912810532655263945258344394728393224193741095993742625582422466295026106770414546329844613261410925751194316066994615569391370320664128397264392068226831853765796129700716296366364407197595380966132966899091754281820553515979736750053133126092307206690311732027347230726747044994317658769141296918944393273151885629971684783950889119336134889114645659467873582556763749429377075528758145606352347513744763604809912757679670414537026377566803229727258877792365560008704631836846509937156828910922959360860190727485635570061151166003216064846945223904914871550788694832958628775633873071675281977426347500295121702348799606743372081558608067827675313531993626700339769149358260029019824495076449762573177506937476763360778759363991283280195416750943814116325733375172035899228586697697542878086654441956213487106463489188697484647570592304885265189473682884680528138487054566253568174653376284757122445236750075040437320600059412358208469124250316834339564410320250661597339069805650858102674531702614209310116339553339297910789922065740691561212961049928576259534931063016658704986033078520226905764167601641591527275185813215243919451383854932149384463606287407234830444129606036789546990312388781281712230822445867092306305109810725373494879164055042697272969400416019890754332873733051498928999468976527394134085938305558526259223560941260472534337917099735140493478579464521016246540794211875684684728593121150007868837235974160658006751004217104772794549595910261292540519550130197825025484742843367299907626759692409610715549000761009057212304447647214745825464681645009404843337475634171343637731766721923325931799496402717019557365259256282517378814328323475256686163512753147603176201863702876947603866545064348965879552590469915909521531549838439126783081572994587554614009006971165511927886458441008403021813203129219478196595737785683786682012139915426015839033139187468898615750293688143929431605944308991130025140526320872142098769073987420354967378737584648613771345908141978244492596867336913291312647357821878659232245951756624736030567223838466924806001633844257035132124989770011082515770802072918354733085762545714165601521945511746670062483954595797067398769907553792370649704128599374344732687738255763015280563241378150932485794949434229617680829035609034637346299603772454589882722843017519123414712849399812439491699798327799876359451340623993385063770607751562332368684148179571983689105642129571677165208957685858795101808676635764273411454043546313528853943833114525222801636770773963654059582642277504084182808124858432152654561524804955132982650587809997507934875037691301217458212604744316640559939995953187163957347683614409671350124786616468734113088473753326934010404279540776302179848792178319338024671005290534081258704163890879776251353312462201991937368463925175832726454330201961016509678773760878636929431489210752577852748598369859257317037557575307537143845410018396286344392892514474094884660547314833628299304462159853408375799028448225869627270140441384272190639084503880406795091547664708366456248826336875034446139705540441458175448900997787775234649060085366012856196021167557702962424218904914781545619282329535184593120502487954933275635551427012768633061475444430391636584329043121728663014618072672000509997306958338740252691581876179770877841304135110709726241073135716351778728536532326027958589458869073219565499873510847170014737780749888823388746027604822403289066448110917319766026795783465793362656626877602020359905629691646049968709704602930236030573983377558059781803418810409264032847861006205681973166176481448379227340170459710809792711101431523421134115117001141413679984834501278963778278556868090188091982954606959124208505303426717515731740248862071373574644427896825796172178441395102726998194155859597918178178933448291152484796385918285021066954900041249051669118905922004689583097490712933582355725627339845338639977174901536619523479928091153745092399298682348985850369873571395504017046674498359212031519886884705461931595338445038223013162209431358164327867289667413624740601778849648021983906733424377650008962623918373991183282304367857604352638354827083491591348713726761825094702681866858088263667964088911858178621900918489905850153376744745352793023228292259621644651693271693841037274514331361652534932488763061355538735835565922280407952315130219904856066611417955308067833783841362761339220826838524898571860163211879868493628686215292648956598781873884821282838155316970568263644726365714723022306367485774722921868778839990635509793240045646068657718713453444568648295622025497433891078947525705820552262187868256269102578770490751166853353775274849219566755689443810470380105007126522482624368909085250204955912741648878620062635441510634402335689144780877947843763726134064622872942318067081596303029209188042350668687351441805894320103748016492220456040487875584201319134084523093148680803709106516980008022900065829076540514121590367117470338593258848869371583282757526302125251644136029151077669667656061593341482750601496398753221494262983839456883427945473611769113531014487289668795288404436001588229356898300116768397808427382604076246269407802781443496357987720876393545995443998366447542165697775302960970757064104102183553692634026803601567414112571045028329377873075230861532127277530730756461150730421630391207107259094933835613573178444614922983604466452778209865158041627207427749510446443294175851348720369619087886948251587746047499863182934051894042341392527600112230382333630933922613145170971679468471606005689272123686832367844538910737742764936659985081787936820330501646290029401010877692448585387689379189928032245096484553425227869775916927216759808192984334220512309514806313250810351712581100313940095541122680644789551176598831510989700823152972405781556084370687796798264007957357114131197925056512059591755886868652705984004042975634473290697444065086615403120486666503387964190464525884658185198107460764190456379571017405919330278244264659132550676116572809439045003068254977731584376490536104169199373107795831311553978915645571427917679587065823648786977220903597264141306777438039420834963430187661339581312060103688089965092504221719452205676156436235384648038937088631184486674458890037008352031468131628709462788021557969247975030665206140308899828915926775910398487527348373259114789920810582002527478161920423013057080248056463700715221882281280411456547029162821815232657527729063766278099949611358833673858406868338148786434740658318783756874763331195281870864818429376645655258560613531963829766411044062369805966948563983632591704279949438388569827002303731724077096118302115101064396861154614017030491348308775111952055971679758141337715944736685915602783669916468280780152616725637247777516994637703152362783702080685485257685399895368442162760633452693048116704520270317370955557339820538812402405897108891787331160971153886130615901393558992569909609615820104081160513106828005886719967090997890525730933902621055583085265896787341622054110105884858036798112804193772092370383643090623890209965542533708145844601974399705886282584868200955128169935552447075364635406115703939369391912698001049154668417586521465906165011973580335489465812447909540332292279147059891347521634237656849108080447966030685451617311385991150402928474898412079494587389701292982882781861636132715949077679058516349979797082705720976380366726061571938409796295656706429038882347944430590489191723564101767309868469616969088877913693880280628357674023023642368499916539263199391153455988657777790669055110433912202466061463548280940165519210627774168590736746295820969355436427607101003592304526260853140130209138352913229268473138534471604530922978496520564089287734243281744314394790131823238936294367691296390920562931547933677995785998555427390113854526831288589474547919472070352694313205532492115168235445410710864786112944330034257882237767568712930556386796370661515435725300630363333256178374263761389409589815414725684694899157522021460107769585717867831437788975423654662424360833578723748104422585674051149037070988973719707103192589879408586159453606690219733080281136779963972584798633862787121500833468902532450650743221289301147764364210348122421437432722420481285382998537210552149362578533553787726431799528984955934138644194489685377499629969088098977877871149052115205836034927527612344401130045148545941839444083418525174451564893294729772007282534719014579639286476989688557832526334824093991550063598730761969951457470376495186120229230811225253243771742841263393988255140048196504120983692104778923156442359387490040274719823972300329206852485205126308304341977178818870497899645520968342951044197328268448868799350257243395732032233903438499554522573733722346591912225348472020740896289860948255378687698473449881443041256037274535801952615948323716223580022369743450654521533047127846322373845216787775745189792393577985283240803533146345481636536604308870801672964604868416215275190278221339321619944860356433512649015556743663365011106319261213743891694207489327963608930680655522489087333718718738806349490740343065634433991662451776666567333889684859306241694664292395481077180723529158983259704439121554073994274368749430784989206159328059064551780918826291307129617580970380090699094088109835127405627993277634516279364145142203103493468894866999780009810022589339872298306088789063639362451699064717752085806989227193014432119211453808786966149585969473043705277693106367042323671659462321999577659394393706890242477986748245322413688985958999198856670744560146389905433882248602444237119368766246488138322593421183890939830188719187627796006658197998197839597396297457925042342139153599133638158485598669370747486081740159309694462820998338863352398142243171361098830857372618044947453296835933882104716043775187138256135928202284470627043686024891139339496391674808543866096347244250600494753381639875634142225966516690595780220355572025147309713384974271210281307637085067664709227796077784588399481332549081570131515521857332300503558596779923439570949963515361293389636860177465678380361842430733890460190634319808107240304863216493297344504943751426543821032785245299651406765414377603798464341694480836596808775335289926269027653402013408353098811348122625702979103192586133733832381114145221490344687728315279090244867958130011203412653407953659953007700495354741060683140491798539248621964331380345679750926972362091583706708349373267482953914795994002841360463721419608151005697897453028217044002050222499881171746988217007751128090480379065396222420848150271506239824591214624274175140738570698494207671662958445858439479807071167992250123880622352414000806753389190747675431328715512519361292983728923836435855421408223954396683352691590404123663557232981845487644107783015354873311558097347033036840875225587056303688890605618130526700330986249500076864803765754319127396552656255591501727066731617487188574696797301134631599635332671035074414228217574629920492117451454222024821139942552580976539917485075242638381137391148550324670188071125157025463615701878693916031845628899963857980515483348633589902317341974169170629543134224869240629492558620451226256719733009840568503447073554647314913065925344697188415328961987842254329223832872999673990510644297465258664797860146669136069013081694222752554203445123511564498353532948088952604265434346519866403576297966357224478990116788264101162700482557445884974192201113122324124474963123554143084349558606455240471214057704738698456766537254875908716012048354543661779713265608087470982017269990398453904633101863841894082020584446298908931315190848982093304857964459416894174270538170890456974218715662595198458488691990296499314978890420955950108819404193040330988579354981136813405350154234543796086151496740433444009188100514935707920700016878291268778510302076137793483936085861971926387502085108616219361782773370192906628431581920624695159887676292520044516052804492439746505862064801151926440530029715431218566829372337529228986531543280081947597427097862485202260550636428306885787039415665051868079175572046976508649880155105147819212633898213339979126144244047300395362246641619400502457047304309852542352626118353405767404596236826687273124352111712240023768206456457966659327094069038306010872802485479766198320685462529790037716167632956187197032333722362258891791436703570690538242855299712331098244279028331131087525744649105099608275295591624162371102176101293831729484852547575697246735827447528220356126098748474842221740716967201890982594516271013837360054502257860850205601495619356584011192633028091764941148817050883869200549715110682673475928093956070122133544832822314104807960818224471635484936573681971692278048756339308783688312802769794463577119189997341867864331773656857924116208057934590883236369188762402175882294388993047428156370895926091290541832196519080660887711301281515678870331155165528356092090899385999723140238164909901022031057691719237194829729714322136509483433028525639430565831005865454585135532961677293879040826851902609857899344304031608164362086272956127087541762025943503954092487502089505261023498035881139757243270188677969883247850815417320609396632501097311565988249463117480130146601022011185290371443218868205169498945646034070345369318585434094339684448517661814464636118372543833562032543740864823049816102874736098130250071403872953910364568260109087699997959447503226892574280021945673537273491183718278553575262045849996526031843463600533508199644715072520950698104829193957782817255254054451575403005787465133396050270864053809140875167596178988004310857316574192848387979605376812587959772702189928272818920100471871298524546293204447379049854777583504516292552711506934596700240502647154049094941104121245258631223357781058999772868031999063011881310815399939264739407306022380607985481754013540223314346938184759193786734428284550884415386331390486592231858449071759743426849531348317961647749897519330017871352157915700231002902157367479390435120303934938987533751898852555310090935791823248841713025190794514299309860913162216236462352490406176322821176129134535263104548956908758337427345885755479137920784136529050789139771917484558813481215328578120925758299108418240929352473946394945144790191637723536281256895624790486290847579899007601842167564729421182099669581054521219694683117387797306354078366490828852755723749694083086893888575286145625316978596881679415855173852385094882792082933844300111490601925938798262998500909242375881432594427372049565142832627210063514510907650184602695174854414354627900215533270498537025987173774156944113720129380059439728783495032815570327356832096537520632022991396925316877423518615228800465986764097838447293798745778321104055973219437831299015182741563711284947724816694105599255513426775308194201829220856470669412323014210013042686979229880964480474151299721810078271105632294763280028106803226390231911877185813988940014402828073964806088209448599021624335599664918457096197296087795308328749859432727213557428855528790508350553706992885557416502845045282560399523217364527593368250125736823000696575529892045182755444210041526064578706998314302474408356009880577251926090945317269581213425645559870407519691776604801142261159856305697047265353707170181989553975201177648779871939418494070242360483728447223920752750858077151027743753316978370579086521160642205800970325836225828006121998206016408672048795826553485359643721053816459218297521822529926085031520434098645391438560019588495220324009094218215208809601683769628802692775291392583445920195791703911094110008243211981408940982465651416689068540469455719382101402582697989832414596896667856930814385341324014490995955559946045517398348416723303569859527242888458759207657019915395246082997383442139603948494895090656752574646326519669273391599465444671268841310338055459823555784262501449354878625857767183992405423195800418890509097475328856891332685910259958128423517651289694159159793980190668319109413386264964766242114403064132878583243468637981131801392868305636191577510694101782019258595360076903637464768042114110397228180428734029504669757083089860952496904334837869664132125553472706529433037594664044146720289456528719754707620532494991123749076642452398007284972173575064161118460049300016666983924868182039451758503002966003420977185581756137528123998907093197789278795239736026569743139029752503561269625306448920967285406743106543001805156239005375375914534729684055813479562075277999853515381945801190082887946541797854014037634689444098623386955397857213474808627961261903229147296650428620012057829083067565048788345661872949145211157596374771175868284341159429725341684975297838239723475956441862002511319581901490757864493798371466485405950198290716743035319449887995126508636930152166997444793654208976618964660366437283086359159955168750577059703598339816491391263070037925051736544625436678798254177810674624432833573790382687533100124004363673075887704286008989271826588996863016235082230012887898424388775324141075146405116504166131275857935588657617398394609304450029807036065138357294023460580652004003445415409157924243007157596162381573157637190708447484139736006687271792942218490782119834720435772668938986224410730086120926065402477988987271310540981432722880725483352045263522255285129291831269696756924914150721119560317828975921855037660044699898632394610010820761817376470072396091199408185873761239644182052673725625526179200332441149143373479736067661517582751486772268256320413814880581640392121756012061629987144321313396131653495784820453410181279764098818913528067574012610247073397030913721806176784412879568286325958088544909863559779768077974730995880144131434942840652177282229884801837109461850909847970670251726080405346556994608936527513141068053811800060727614637136438956161223073413526153822732401066472808997333284641005516133322974311016408184538364939596602956460393829170214331528764995659416127941243254255334730701852514870259716294697086585466299949086557962579675652084275952815662284641464986292316358627482396961400732983814360060996671048591370068762441092410458717490635313921914879203068339501733007617144277106258604060461614169672062234510562556361115345820021047345844398047312696602860784039240713578277767672799408732313992896927717330863601072859357754302926158370210026428268638968448120883323871266324397827654042882962750647881740461984051768791387028039049747516191269740895851852928532956999829130137226491021455898137622035018043401916132939284078488060601279064543899270710265819311169406452759662892113651508872097189276587629943156170984146118189872189543877337172199477105300639880363144063986723399862081507140899163211485729563236750815274144539538577744261738227620653785234265027937430872610084840861066385798530800408800571186607045898290708553806136434664920855976459330083805561469508853550276132723305911044678364529977865410571689292201814794526110380750204458405662534878342635114383910334579210561621895813947262411113702917563822120345325793962530378399847606015777957620513728513948322589554803474774496964336911018892712637984999249784872822561002837067920573737273469172011706478757575894016323388723979490577194914692161188474713866617645918193679716181111800292796361623545819062778004522944159121469050772807273256121758480823850265527717618483293361230114292259155296821756862302724202955475101699588930943472397698078590434462381751139192624297869428044406303161876007087756855144842538357755394110276407592186907837392316209640492375752243252291386752158091247248281196650719365313394143984687369030493992834533508179636353109395978916852037681391863329730028131111207849288237100767446182405632779838555715466072688033302502343838382806425193783798722132217891502064525490440728281193438384478519091927939190750705215042184538030830089248499672008686380215409214358252427683579851929222200912007633907438394142415046188433508651695467653865798199724443290381947096144853733545350873308769145345573065862601549914821066586580236150161966657205040647322375812282203833545620719022041049645974725915729459262946892019196923887264241143569341818723745888839978010453622061842158281304933960381787121377179231429349600134783233523052505124046985120971490404408398479304950643501958522229225153285275145160677408958886916626718566503190963408155335968879942803848013226262572639087975133345029529073217524266163097875724041545858345555861757873762545729832886989155190774474187126560001292906469464467844385957703975049630917229081762889207481444418409281368153246431716221051045049103409689181005524136122737906433130296677595829528208410049405106040246625828445534292639429442790701904476850740055647903859944712294570560428022642603289646656979220923680869468961915727671059468354822126640290645757962743413835575379517609890031606640652998158149564533499788843069018814620691079428810534579693810167088824847753159213437018783678251114915070867946988970213809787960392128969045643376060631475699256981717731026483384529481819769793670659434245665822142075003581935655018406242447249166555008301420446148403404765607653610022593525117634849436096137128123589792503743274234478729331397843819978500398369314050059700096999223598784698512380392121575022698912039432169134943509713137409987474806452311908405319849645080685816213635423106665430238813499302513473617510015878644761324656912077680246960502108404630669996469301186092345833488375294887090653717935228928197605793141239777215166494909134640207433940407410134727032801728020972159020117087669561770752884740626301579353399855505762447155807857444065030109833842075031689797043047273797648557450290813272603166440595409659045104854429597308865833438747205851279685718710634025788049755278430172529316590813489436973648933783063840233605541985082767231773929684612489936432333960299613041300547139860952866925915348907925339357729132826341466654011833446372887581453504649509136981320153078205454316810208542197851561036934167848093111252648101348311443842778877348927841454778060929000242362198353170118102834458998518464502008190671835753929949302938610045698636193438453102761099205315342572282791409680059642303492401923586056382058831222604947535748889009963917088977192516986894355153315458286339069448788361874599032142143006054754990684404257113663218402857345772855157061891190218643681723429430175192192007107207618809331814887589034403791076011632999765713699463231560757867785121875731421395584252538820936613722314580370028554815797746826409759294004659026063334231665718435578484687078106996998008444125963472842954718915547520513702948286622688503782978593700259842868932148713372459110858310912573094633016984609337533282411209902878037916054711744311490175185358597384345108552189345345344930645764563151138100365266946306346641825191255703310971670092763529230211769919718677972892480008351003810463602843873067140702093570175550204624797322966498432785277489318106445082785833896170066120535206386343470513237485363219282036448662872232990310965720169512738968115294867563755121195056586618411486192575372156486648129805303560030715917486115127632536323931486046372894838050559600576119661306581890905594245781877468388248856148980932364910081729409820889031046614735828602992289535253672172004409954899032450839899383819096341589841936276617950168085742589922876925193494068682951819577813128310953868818032026080044384783823799147870373661905360253482206647668027463591679696206883526681529708302914412451466049577460856409370845594093112528812196765323913608090822600482763912331056792237059782516510104103537456788043612072893375140514394656093791472163836045790076466986428255325898469273247920513395661880826558590735381208954405361236543173238784025405460918074469591511665118279873378597151683064556710185426166329506994154901613078278857159741806376720877406804420338386744968645959052554731171218952337089650580034867860780007223010767224257203273174465412620275380055470254392076614731771069621460103823319048443103069619261217623064742617838892174550113054474442386025693429082168034276350043298684087644502107691250578477414401651080079730326652871400451295110805887429691283237564144390909688656334092033841088201493291713228383350226858730418071283959590219821439866716766830217795295646909536987711828524597824905368572416528060250991113864270204683462079396893210548513120504156086778455431112287657061419092262182194265806550023972695038755916087306576706129751507348165243765315533616218477701164120352639342451103404934658498913957644667088611712905625198125968222159215907464383363061196009587101348756341775789009344653082705988882685594987576312978000107128541612520758334157745152606596622016012014403603266346505005869460215371517027056620319841611129791420693052243866714932768431961556371865480114710812890560680245333062008992451765064986371381498743825407023965072786696638506756111032150773435063020563109402524357126614846812927407219098844976722430455266238831088165821389571431352579398793680923505061942365416657609807677129591840845533081412271274032472745649682301497553003981743244694708164112364386899437119159584046445076623049316843865742789158946928585326105612409598348273918589782430779367463400459982238656110448301868015611379672173745919045230612611982735960770619540621982255403822479544719095639473868549935153815829266055405898802925968071041033824990918042175502310064588547975951578293423843902822116376142089264464852338319536887987002859493656814674728222489692071247277690242124558950570821552468656297699936767315154015215765479572042069214289413014490570782130127245686305354521834763365244825674311006314503952477340808592770344810840885668625558404781272923085529529097300842972096291964765176948526698048492534727091315331209737420190865904658555577928408767760859111922779185385577575114189213864288595591900743290799017689298062997010850989600441642610116526439028118134828737807451420240920631309563186842021506573005581031419747612835182508335612319606535245519279846703030808281297311344870143486538673595349782364518146708901381138326763786586958655679634098788868794763543712024379879263774231649684610368183328932912346898231700396288249608925372320734930017529800272395118205142273372004381304403960147782189676873921980550203903934925007677985275135213622613897958692996634639303519173059989211039656143292868270203467471053129882447368010806006414361269782426889423285619593521868331672492367241011780011209207852511722609214591008785704360028536593075256241071946710772566103857280783791517042876484320308426037652950237042729804711558583273830462540406292503711888589324910201340341319685551576347699087599631025840662820879713503287589505143436486277794268430255387192250369698645840442119372305953927574152276511727910665774059860050984108814698499530463092309569017441908479799993186960349187799959987604734195595756229001085234864459357124003881353796442137458906705391180521552474841169501834029602854468410232229111727865529736254635483117382022611101738953252512509816241382948528827898972412408343249277363705459364564747426573160281489035492886788092333960570806739481541298838691624585590485266023847045137219647310976431603679021671271527873112835117918881623398242862767975572886413861132361318269812735788226278719078883890427467157100583302988694693284469407416243309131991665856404015542696854971144890488890557510974734134079448884140673009338182921576357896643944499816936526461136936604153386884724785432446113124280600275502381102114374575886717335728060322459545449223460793134450130286371049254647336495589700306203528558070908680895516095386251402169789317546042841351547714583351463330324983582628918201753319740986674438046672486016727779169955185431770436930878891049521453141882054054261038926614684110994339801594180891042358761438372168019715408213570429987864366681997994697663751793608147616305066526624717513481728519657233932398769930129400270291784708982584269105959353776609589943107843868677241695075099851008425929805969158698105821847359382151570513011333197927680892233836201750782766322677741146560067183041657437107707271051393431112658568503814687429471826651722660097312365585020593145331435350317001487678558238038774242773789223807605705295226236914455302689505336118622937947400388956731990760146367121922621458646168754667156582900145383988703147250468007567227702813703470535585603748662915818616215085197368370455288588973437872890282384359424021439728310577794528656102829397216631446845901221547726254052069973376251035353086058884537551795517818771082798723061049354248456716416759863128450265526735449147380904660864126114890495338919413608443781009245359128683387441577910203119046924038202905772428323597364945218695718261422591179256812236784523038587174725651869566277000664412117638852228528728693776275755104061067888061251151083290628476268459875134543824125436637191259250928854684113436627813284687756327004399009423335541819918562825087936170204878865725235596987952295067040616849357687952748751435184956513070076723438714108674262714602336575432102725680806920396735865431222665081700051620454954223089800017642143181139153677769059615219329847625924111651932435428632636710200729220673331942087672056398197178118272429202853784758744141110150283162380850880119225412466475578461723653415618954634550923497634525602767683421630229292314871327399607821207759726637538066979870634728010739729579149187071460310291314752061409019552853579880397962918185629482071316304599276451786598472613386318724951474923195950725882252100667970794393099803918889757348259836866371310394432362512410181539498308540057981591818034721945968848562262677349761113650686408934957529141182711915071714262308975904399264461883484142470412809345467010604950210307197496267167907365700342139221632291225765816072859554334860466476315125041251211945846499617792019343941371165868149428927467334537703070909808849978366918984924291156523897263274883286039048306513402953085330958468302664869653412190804363620031345789087776791732609702116645379421766371664199653031497338632304348268989615427132876345862112869984759363605957037328390725012505252405697268071544051878289036781047026657940453594761471908917938101820620641960371234515992605264819835492071086691390685268083957965023953039752549115206610641812726530013407138637465461267944194514546221169250046301399182125790644813033784585003449003425961106753544864688040330227050750208704473248167041054029513030753089824506268172939752125760318045974935620994553305226398020491038112355075628321619028088053548554166435354889097140415604967696750883123839673804862915551673547288960336978216791711621826990709915584455490336060338792525026531868599937461588370513486621341662010974618811430011462222180518640627727730490323391557290120170936729232870411640957807510794733796580147992564475362712178238243858809674652048859898234110764074533179231800801892781896235790510978848197266501310521835024999959583333828859432461583870702021937035345684867128491719118203908276156363764971831147643373675141839892764770611265858237199588372412640903866321473053091614044505288052276428322766464312074011936937106522723518017236059327672940705279168992005129264849277602080354224804164025876088838048407487632078554183020343922070810472506850761853004364596886733903286214734799818432668091234036830201035463678407771541978755223595001266498425198373749315320334768287698217716215001578858322907823257848276384164639456887739399330693937929957714005289295575596071321607804893709973685924616440012133065432640345390694002293790160777755617368238258980044957986916950605554166145304726434696515003322416500840337199540469435408037740662057788919463017542929901035100570343174691317022419152204602563986911405254458536819081493628319059266501885767729388776323085493664592712222083414066885444123940974065829972242548502527273894441508025852270377178252455233494434166062113176712179610172504339987314453807931266783495003957442780059382309859569747969266339753201970333521267140659366596821414914447943924208379855096890292517624498028140814228826860247092858102734933320171747565679082721221264302012779306625856450641722666328184249483978234173129431840974861102818764358633198612914397403364871446703946108726303781269603706504226624531209356539554208036420780724275940730957356263077866498561527392399689251526752366504858018976095133786917918464356029677366338564996641538815573887411709022366162432788013404522046231311132259236545084545310809680103311960909499889947552752934239401586845050523050843163941743830248619616925540527899573601370484169050789121354685009609067274374339768100941762975373510332778005754790437363045132966349307614924213449302175177897558129918760643569418923836619865099004570157283088079059486925037625039902613517049152935999540996313323703714813436703015515407432800256145701708654229012797947601670701640552979263254915332669582594432656960236708970724039504107018220105518326256244977975611763661071780311328710667548573173148829169650186945187817079085079327992737031091727443202395414868377525063514360539378546875459524701528605080047418921428130864620406772511766770017845428811951335018297777884878640855333217700737870717518538600468976338379339753368726868520853025691869864589478642528681277652391060172860164029543698719421949498835100320388601101312547296161361106319076753554112667873846321873723411185511803324624675539586697399548512683968203521144819164905113251987459815047600467226694283986836623453163787354956236531859482661002583043636256576715860801128916982530837341624088917662015450132121373867344650935657639226481896576121036783663991012273257823535633095929285447133379256496651852400703516997252500161958282545248166132050315107320078870343051288786176563359471922693315942188362183654209278008882266697138555249716248575205994801335783450792636427532438776293919529646165554197991815695463886568475012960726779371052564251606165388451560954227062140775851300478557538247353028741043679357149084421795107591208402576924164999909678953889743934161980718044110013641390716680884613959387206719462744531633413552630769284368687398313906949080345423566813751814208365619017720402552694303269888299057845905426712382221637167386767490107501518525224945773522401578117348389593077397599580954187504922816423862827328595714986621652866378154020370063961358602004235243114878493416739687111516468244775917781050592755862621764414444513904724696306762345768506395135597642553993308838250068113180667009555062588049467635294296565724893039515111369118070744593726285401342397180306790442237092410259040733624846056790752393142730898557903293494674994729063388333643019679099952033928752358414752865356149787905243187272578959007309002045593412330632856043638565028475142459150451069118342000570525047634540356002408152787539733206555825398877286137385745031965244336080442501598299333048138901556222091204143081436267786823604663847776750438783510471865559322886511223632235590983461489323096988157272438599951580831166201851634977485921175984794779831684657080530711336506796213379335937151400450634906773337032584799538541446676731574197222473786479484412067691286572584232390559963220093309493400820178019740285929927558127492285240589366402828774529296794590186045521710961544880868301901172379637271925963848173140557843839737492150746845918858463332609422572906210577464195237075235956298105575983547211949386356451922354963800379242451380293250410373825058686551854016734587881869533559852184547088647984436168930147426955658379601969642046694150580030286256558996711132004446231767880169254792494674089841397788541938708934738128369343630963025838467749476347834814074251302062597282881186203933799028547524933132280681233769799105147298897946075478224602311551602387308327821668701523486159125044909176562286537730376863589158994346748573144534806656124113575901241903974645625633792648575135479572915674209452305795139762242615126172386198227184614996547744948942399003754303251939179582988515594044604743389384527646483247831569630687060488704384456389646105277059581194660989263616315777375093915025410549285404949943377379831431249863324821788139909906003674506496641140550077282618074915948942355841372088125806485697894593594312068960774620029512311824197788546779392328973370310252827977163741330680930040610697197193270536175497351472183095153722085891078382178531684642197659405278124757497117071835764555289484523814995810717812534451391193687093190783957886484422088461623633667123991016946407109017487559343603439220522823075932343962466015382158417541614135951432745654939536383680480659327279858809776482689211747096663345599841793406623000973207133701624034093625672040997342628080575916956671675381078448580605753326072379329117238569302854119398451339737871009495952407362918016964130287393164973341784649249474124356650633606570040744430944886081585604604761516249083424248769020398246708187650054084247188278171133865372772613883705638392617231826906897537047200045953981815509627403236354024507468632198785089150561138472211145963892864023767358579660461955980184705076701346958258133121469347234169126022110452315470020216178120078929500104405999615690354535432156681802931128836846562931934605565693013972401786807414450236202984812780808535926949041966831599255787318632067327422800968666232583974612766447903789082546465302751625326998777398552232696092462026898569629667138837710399079161325629317075735484991311576380690555340563438184362878008471548013189421527237987328130008614396325117724805017380520986234790395493542069072179279639360890305612384440146915602033888394171821059117935297835865037771854575354658380746331638992790649748818177665647232389554131692714200491179529282994376254897785301520286750814345236694233152529012451528045975675251875602823047662604719673637381079893017011711105478923005994018215557114738806275815020277762407042391755545873747960267939945743092305556814964287194933867122136966077252139889236956857308118862581763972777191577259955414695865742582902382901708658795582157933894947299918612474271060679026628440180937376602702881779486469304936948583294486275152676115996379438548185536854378010446434605545476479873746047125994997450942049348357248263649851714182083112669128287350571930114721552580191868599928957160967493785126195960379165735567142426065880647729686216014155290009877443356554789458233313165545755127241539422280220016374471138631632364681269096595413760937104909420943193544024193657863727569764386338999869880387779503308473873165585603451753098509576445383200856962881258434203199921897130198855517805953423993200461742207942808211476529758943636424291323255335011638445939672631654208422862322559358320932970972463774803797000284034031361363886058632300993408613596732982830158919392067659400703538678480169291854144268670190048458493212539578470903842724788676604514873540767566644707191515778430825459558380191554240271489771510416331619487958513315499753135117658083598871133824573344066319899209377455616694377368100125416987333530802942076862397383131616822717377810508260406259503932023230167997619608678838719036757256356993959299308144445628951446671227703643856609295318255179504467298025924993333728813945873017422180057615313708516910956086125311182834004366494258232172042288293470651002140234584492863152717941491921167942608284276343204962946102736050883393810851054875817950219408568546908630262090727022583165190425424724565335457990453037111246817933636145899312581187518109188845789424311554116520456212276543498008599124336091782536884341736950265388777364581321841231844105402480545323930926237004033952787748040520327391154024000806854258901792162647331710095767725041456360860650856111289449170821606013252620152457400634088810530788868648819076992807902504367416699785453687210570902200778209446642855627001242481534796360008584791314628069583870058512683806948565301192453114567009544099318671715117919747111494211213922853359801529242001702659960360322490162211421395850560704475113646010814736916748952704700835079136916799040797972365911041871633663098756544489486754984765863480415155320722504429448421935349132862562274682996945967186948161619785278335988255320700179018464805423785547428856474855255452085928281894598166338430480424526550917663110412902540270470914802568599229612054260378374292402172185950385557182759735723039737435468894088236270491275114795155595447320813323266491023191632614193280938369784906520530820084837362116736085651636641189348242869084688806683068744100065427625203539736430063919049591141320897905110672535296230435279173871672271272578799824554944388052372885551037275921914134795748241969766370715037093078038597808829875440885528187974836230127698888062984797044343277370728557800763813623561174441358301841592022412323999975898101803094346521457216110388412588969343123227521106018301382455757869497691661509920963473269423136174929616244980706876955579179218759773898813589217648932538578196752136429656746088463606454868285301520124619130920576533401504530791980156684569839182488939767421612441352573691562904824056663521423994802942998182460148555743738417298361743750119365841304849910965640223621333417089540501557431615425616608825352062609782145303847024703650849654564021417839771017911681485957533329837142432461450086506893618519986691400985245352882779059777985355026874289287740101851323582887768094445161956404239786758645182809264491354204827980261174375353923188076317048226904861211620674892682368459776718386785847880716393769681771891837264742411533880364763374609967650294595395140284968873708096666979601525134659979717339153858188678721918792333175264570474938135029793756344174152988498057088191904160542919327820235397743268361718133928479721767301607712284567970513010975956092392690175089081790326724219214454616035044278778269277525146954434164826220689317804497133185991186485743881305647959403676918195608075783882931775826300940427109384718534225831687869585751830786942253587084105961124142524457123698263065249030400665535060851961682255040262582026191196530136099417510821797358641781743228954232101224101270899037371406903821073034717066489074637454572814808848313225698430525698827092761918023143624048912252386469873122578570533813391528860904809380392138678847510089986634162054372741983998486371632809348236184879974735864357487230365982027431431213829214361466968239140463896363200138508689481620552503312749593398790897470551067708990325858921214758472641026512060330925008848924312511754882647059118937936643239744012503420501490144261116129252998428192015017033458229257721645855454599514469675202534013082902470279034789930541379973044347996014322081904756857843045713876487303957423150458449258709658843717925300471982526891999612008817610192632544404202664273453726277414958546625905283437444118320835043253373866330076873625782731178666021640659960106112555780639512093807913731996328410819671372465000508306015500319047900876839890934633607518613362438436421891258623085401101674879821568304073657970120414551042383548568742195078561625610462523982141946950090455182371573466739774758855580768550220197159450461180009787396972313047721230044512844356928070622665724295794960080945437464247291700922933422303386420343767674189540876358331135356042665150873793272377543152668250954326389957495762052548364588277441292144106865746468836982861903829101671736038747330427434141412392592656305669663746703076572134224004255314355286031311215397029013493840658973846385386608931131840773950301661893125619882515049304920033315587842481554947483792058358675996670721608642452095206915714787435245177397995849578382858655750439470929424845645247511861196958232379207771111334390204274346551362463968113136470984381721801234916682284930177868811366786441225542425068340409630921217249429284326031415031740073632923911120964211219959771390899709471324763790868620793126830550849747663429293532181596259342040726090174552985384508942315373623440555979890783514433061668074805834788840765761943004758559683916549354208470092581579520013725167318296091375852960016473784945306126839631041962283983192628182498750010252093305768205555727650682276669488882933835962372113206486073597680824868260811693657682478563376097222595293247250976838167221116175440590680165532850764259807902643342508727924952228708117376772871532841610058521503611417475578841345123955878919076772545321225249894173946000135009946458048449197920638310407003539744530196093670183667391264658499897057831815730987005090880577335162536545930344184991112459245760586033623103023529062409055176500961589171723124241482013864172675346651282068347480606491491229605968232954896347186462923582558814340169197821556784312656123526460694498932252437551548798312373979718036395304538335602888771215499662813494492930264088699627860913543647858300490019903691224146223991528992913782983951503316686234172224950481999643518281927414669432033358098074818389575291238380511313042527506385336473061094542110368031895409213250523980423633615931183502404641641417353899350570756862613395120903552715564282762568957950499292292050793714732705523562617761066220649431849396203725810323269530615717351629661255931563646220238164516343298755258648027215765190828119312240143035226399813708201218221453464632328217763832258791380758302261445279741448503648726078935174008271894963251411716964462278316022407895830487518918847729572743322868283026458653797544566416070123576669012630078118837426376055804152019004989001836125634270672692071656692597475141343144530113469797317733998250923179564848998479709472544854334063812674187116478713348359592235120101164415772383931925713919582212491194904929890569206177239949063372251022499010177077195481336906424277636695368744345315639893897320149481381624389678507233776535633320542565433034697334577255699031474328201146453535147245528405525834677875907541521434052632550097479610258092236806654483516025277868271304846343313882670471999561409056578019930483550701940903674199228984805616307951194123289376279015677760480941235884861860522627410138750636593875059471052354999386716918152900619808283134275676357644313443695015652296620767739931225492670490778337206938151876790076379419220004026248111051102059367614543251332703383219506353076454168082620691196853118507597046507626315889855712826022244879486171869274367326976291620776638979236955697168430490814230566659668844770476893539407487689198896752758157630025683760905216381931132705645260473411107992109403729314040493447610488371076400606079849491394663040523377480455531029659697718955143409208139407631905019077912604846113021370656509852606874398345540901811937025912132381503329136392702878923114495310015759160760052691823308169055147381014439007450036879930634847086963413100858625820752877553431301207273210339162599865080407677665472078577022826112667004774007834535912168305055494555209584489792390946969370886033082413638850706961867777527403318398776073945454724940737934421235868706761881902636107260836900298623630479035228502249008621520600405445916797506315443479098982677912419595930452759221935251993723539219715149573375524681850537581093779130020219951072178908328884116776661430564750971965068792753838468806520592411557509422056859526831227586510463558042184484484617927315775170985571118031204826794961076421926275351060326175820617606054715626386259863224882734916214054651130532211441913375306011584271126841702384993246781662482108592713060972537493108344581215302960715444127488460359021021029554025273033564202631060881575894041260523022916726810518131270769635911316581108398034074584078549510498647093162446406099523670703227126785690931059309613652456779620973445883132854041771399193744621398918434248934480033161090411288758536657280077639480928476668749102804007681999561816029859011147750986516319241834003678922940322341527428681750510082809219553949423895748886849296524364490532547512425924577788829638608266709570801570857488694389124228449502266426423767242088805013224232477513671481082603830579813544827685390716749378983055595360986908854170572221238534153336278051498253295861143240907182693763618617324758858400340776049239935360314233164960765138233983030574110754075758024578731381899080488408540260006127123741192670966228186575468927179359672075618157104023134872544366801927487764746926166434354058266107699136865406030833170966010610972658574206428578362322451243981046147256547781411769771690406494124899682259645924722862523024538907571213522288169652126413881216059908310536937385768193182585341249150261908840779559613742905986719167184155609111454559336876016805390899805309499860620007560605782872413635707820006842906725311362499479103145823095151423093019771439216827867222231009985559075761749539597297731344382655587578393134325250067560403710320827607176163057486535015336026691937959049422148731322963033307030160305926353020117302715077487044547637213731154402592542847249292781241425746998708622625916588217064798960561523569145343581359799285840863995042660675300268245232020873192934467657913376641804069645766232819391937999264224960977940173091099655540455535841634601632573744389100419447531287568790172692642610229596643858104564901385776221622745645765297004765357628707708227860497023927643525833412243357412467410557698600201911517753471162480880631525705014105647042578000771894942282883257133917591669073343200566860206475520442459550642571504154415313185739121990178373347656669106060840106083796862069424648200003029353114019581142808149873785462993221081154292266138092411125348827195326808525402399985144715312396032662142691644988787639345526427507685258438197397317680500738413281793901732810866147017054935676871679889558450023958539560700680307746307718370451955964889621541281202507489008325512858918287345561875877794695789417810167766513187123047455246042097294612506944080001061274356315469902990895536856709148468810826431295148583476932410273422207708084752532117987714331209636833769868397283767676517467549064007483373061299555923823497806515860314894342199022845695596765592371019306329490637634456759993977981225692609116996927186377759939636550695103172172596036716149655186541677540220752443155827185007738336697086478944603658317673697153619229981843221036646318356378162143824348207373665721133673758646356660183481599517724037504167539076667582597495661794407557110715043941249560617475397497402825217393493049837488436921235778785940082408201496840672122411027879660799123730167249142417766232964931841994466858863227890475222008504622955203742366118386220622737466880379687461073255338383256118193398366986232759341087817060430907163891094016958931392721933766597646751659148710796730052274025758555927872404394536143591197314262267102825123499173006438073470944220235921606449271857760179581773981987896940192911692471800784197330488079611017428847870795362677979362661189148521217695241531654587482380503765374538788717430372745413456886307159545614756766529797889323754486324607635752817375292573467035165094549258506366906700396960829263230623984961272606538679773784689038504388872490883655321431004575952632390071010272542902948168781797463687566988150238232884528593090011797360392574412969981655556604989480752155953040428552944174088883933289532864816942090840364060813311900655829753690940975734167813796922108820209689256995758336952431960994883252856218775149096297732814306988819845907548829945316358788152285028419959084122642420306648752307446821798098183641614385551320227289819074387350037219084972737385337809954424422797862212971339828170855875857771122056619213890159451617684006411282442951907845223737876565326152719853102240098814509464285971016521548869158344636769534464018475665376043572134776687430483670603842393642143378506405886367026292743291194135703632953860357820098389031193080428676458169526502719635208438238638133217257250006233375220064425006291515968496087320334849337003342213080802896642740429222934313299989631321870869342657817347765986627872151742088271253351422365836294731015190804299813571019050424932203307748494917164247679935268360199335117605653706019859590822749666673786944823269801209017841095547716612043133379174990640194026794585079193439911301877105256235284561802436814086091371084034254264901604971093877644718343474485788099416382984404238955205336767403522893581181835915039344522205150620999836734503083975932544501348725925654370115289737896361897904537404224947899025761416022778381467433564790083245266729076134153310055125316741798492743037291119230571326284360523758706411881381286319376874946677119596992024430651591314478077941531998795694249164197605541727668934620383661256455152466080504772837909584954149977521527508757407422123195301669728602925812625369169061566257701569913544142704557506181430959346088653552882459677268992175492137620474775536987345377788292848066474530417317753109903769464308761159380149063565907855480216582098925599578240634823740376549614156978275682627550984080916924389922654318285190771778491464870787293644876858523227563276386432982219927228252375018428674167202848845311276194539956222152834844244683046779671972618904610482908073429473065309732432887358867245450896047671494221681958150839654115585843467726381044700493388458340003272239072223492949648242349229215939160810076670104609151618057697683509591876640999082391146336897619194632475974886377688316431965665646983195444152921273284764124612321127933952560654866817268031947840742005437223612086013865628358729989391790418234027097800186839379647623138758747426164435194693915340278992449751761256313241211048773389351411631461816432293261350373893147307485638718788010067357614784280775912379608392929486879984903334146402013199898428572878399128770809059646816278602211604791608762791582073549481316937555936963248340211308448171884131719679221702298962564795143650930700259912441552385426290051912127644460782365140188101192877163211558475005783494516631376468203848413847583323117481553603822004768911485036506168268443362068718177072623225209102789070027784263530565816000373666243473682186503980289289603172579556749125418024046693942943891442625507147544508900103641765610449510934655130605228115966719864068654221448908315382714647440781520148740821004111761383421569023941640076197084921661234262061803460167511361618329567498596224243042444228068500010289824970784028538496609778968521030022062461085160027309481129915409882232707358029764136210547592659822268127338908363554864669553226568955612752157481571996572907116869088555230912464930923988130231013406243528606441168811418680717741202467828460577693997440391480961944967077307369700954700909935852560756573047346280366343782125354466421019219140035037091162471173271744966152401803847533677700190250893954480120278634080288066473832018858785577325241747103260250817844545305553243771174256462160323059909425231543282276255684669051290873710218481888263203718058490842463043708886687189150972947607197015722389487218367729546160625307733830625348643614296830286514195958989679932039423873126316613565175548013525843519167180645971320807693017226616402478737779600751871402463266879633308162074335289703796274336560634533808919757717263512875799591813122034225622659468337195665031469499194612060862732839691929531015585064912332505329513914216744976167614597567594177533373606851617104038398869491100133116783507339257075135020192991483625290063780589468868951208989922951615111647720790424969961844692420904095119989713160489555392648419692161671807982779910739279181919820930694153283010473401778408443190313050693832768180796867444324580945993653779903109073992161958234504461415986389393414776934669508606082535257168818179277970306974928041127492927043918363152012083995184169793831914390495670190686841872180626113249674699946768591855621553185078294404199568106887342819736458297567608330774378939599823817288952366906284436624728754165314529696016677944525844371274063007920193309711183976265845063349507337226625885873365096067572590265868067438671805661773115837747875571248073394441338505379326070754744309728640586036429881751145137732652841648813564833088494113533453529920741479929754564656890023308931872192180317201701033568284193169647570147568294649431909668168133852242975668297916425188419659439870397735214766319826231223085671975984375436714585777067135950039075261728241819053240877315554474447787046910185035713329168800393963280860311872185731235636039530323703183809711898332985595206417880659397782920863707202773113399672423921086833592956289046683093451979222201034213291829141138364378851245132551562071259241203841819144964845360283489170282507171268674114206977035073906190533121102804078652095403643293324382149693900219907223203752977759867311669685685043069004286638291339043392644687602769894930718400400192230955302141748692831865892033328137666616237538584261957220357943595211327126968392105902867375185807075099144588411618825492767096571925962310990185988662869512456555924811679500819355264792495150712362478411030302279367672874700952783638325706172625143612058809759287183729102572912709178516985208987211423878033349434607015073038605582369893467684173235602035236296734481537296855027169490136054533800131094188615807798621278503707610399224613805793110900128566381752642807122407052665079933853756332446909144767848074028863462051464345869454309395720072507308897800747562311032537257395213280792735864766591777498513969804946522044408130440699111257109189322013305894757059009251520350296244770785340890766174861221292269140419991378405572902973146610854909869546972360102276735498653906739247435877856175257597260387429046379943814794805562978357326627733487246830095309417915974135819561734713748668088234575692491313735609140057264785853738824317462334150305455092368402627578327521999565478931421696844536473390320316287760048316491478199759757298186718985639570069686207682400899635587035315844004872613799657026437158810829311745206164429730129162006364593162535176258379501460029291638133135149911811314107639968898510104971923832931315689539611864168429625916191587950590864621668478767537296560505381436745554919482701263737816149351961979097733016503843530912973187032264664566901180926982551571755145362606367800909926845235670560495683717258548512182136067055898674805024974310909507565177919000495538903087608987883670736410052930790825856975866163359849466924425910644287657258401871248556267666792279150396535055945518934199153362249259947868043957032829847747777583295930602602542956796419833826239842462038289674472657504154386059598267845665229776737601091444392027108313265841179022978465367367082582368371915844516085480381742653559849944269051477473603612438725910149135401833950643278376694992666018656781630055072533319362127566738426908347659107993815062198396329366722349871089047391286705393167926921525028926896173959069468595065837386679032104381725802406237988514692662721539343349352500854837018196821167743469554289714252646522341719975174104419445204909559299311465959437934151863933902822063056148940569588111299694327059166780911430646533724300969920034998832724815084917838965278856526048078460890242628098036879443974456974578693889460300539439441735919662889463825919008245544764512636008659969137037004787985867756270885100242670615105268049646970964954057958188054564838548480403744027522963197525004707113781049492468215667972123757292123504819564156661047887161562193740875758141163672182274043356290850714701914525671144880267079941897826484431917973527114113430694907024480872622126186278499297427098134499716161442101582140795304465979873571826506094421484789192235899277827344423834193499154112466346730953850986214050245596726016405262376834889189593814935322236389584488400027974179728696020654577333829936293619021882693100692837213163515742769333244913238768405949198157849726429183908802033275756376294618053514459856964897611654780039576616491415036361545535421260344722798976170656340063365037858045904577001588451149556282741084026139253442145019716654960320278989275801056148502308145024431706719754080177562669992551723218398363737631568764968451962908676267725339674077295891485541539404463424533446262054654426414081376891967339905386594207003551639523595663170320572648572160433314930279073176412007499355921658416074562381315247254338224747538167183312878224602861118837723152955036831890918422456116381600863083501276556785147343442116183375158056003142561702981183927436196069399857156860904150695571081248182559284250568892174371822245177618512582836879461058318503901231386367302495991732337831436049549188074527862354782011565516397041344093873540120064914632842100723049677345898550884401782392716171495755651369813467081236313093421161514424493793666351219116584710016407745538977726042244334204297821266199304142363860011463722604043284674222503239702008286949121306959663151979355973441917449580801443534021824285470652560793084646699730514971898018113688743624844232489424683127642545588259372694237485811892250205630038809604509111605974025014161370946873933172325933240293338992382993399804168589553729082082706845999676265873238902315700117121405732292012915361737896927227226952871639289157652105050396277396484957424297631234394155987891497662822371097202586407329155954869353690396349878829770813044780563571197677651589960773586545038994617853668574609696125952656836698043966291485763843258612302934200348819917932280344905207627388134064373895181524698517545722342786751755705465600307413563658372490779979625689782899504100510828828334304857765852650392102037632927155159551496682910591337526239818107088296808654475570160352088804498896152669926691239530810657461181262945605848723614585385024087978404011219451680631771133028821455019426996760670267046991496254852795282762610494185424177432951382024878585975849465793404065821000992745359446370892653345024739277130617350472278946713814851153672227719302541283684659327564654945392109912904880962371014836913826321106343686897416347385835133366695870142199382293800016489213718755832958384430271410438158189472519918874355461634874651779814508191339771032339582868099497402739052944048799737450468887198286812011191546240720737221373928979533697372517881478722436658475720734218099732106195008846283747145095799066044550661315860189581228227792665195150977407745178770659629564739213493195201084830984550601810933449167870761918078555066590508801158125145475917077896407403368138229405630629454560155505569703651327032960446848554174236833829936253893550763038459408260658957660222951460608844814455105632758814620821934899984338862134494398666150466940736130134973587826420717392069553337638714631507983975602960411462068165929543294655594466562808893290178195788781385410647384702605332046021659805560178468939262413269562620040471640616438760985722290761855080017025181385969798596953072577759108532872412675505550354630653550007315311519515410472379943954055825283817590356848062792614607095268092316421324253416733365030340015641860253935409420535474525504370855578654139164511147390095538436508359260259889345667802491702494254923809294200283713907587948854036864822449323715531107894662377187730957814768440871444508077754478875797976232380254008832020771467443662040188489730319670986309040984262776918722671270891393126985227328092509795423067317466642498451141739749254512187472163596060206323953681134248680971158929049511896334587123242493983932713506300771978141327109526304101575082221491851540091090165558039242809171830866707761392395910773164108444730641472204001689032516758436332881550466428729713834472993419191566388262220480236080859306831235174921870274875287057007032866153263661096272411654639045847334640510099805357411538279072787307698877870522464906226248056115342882765608164994150830279518849109522045539980012259763800814261355824112636308621016958396569544744010602636420557127465294018199227235692310819380426737643194170081210978137415579568818880606590290339503476787295331067486119924780994257851467027524507951050405136831152447928056063284838822046278264335397638009282833975751393596423901378325966870166051060812622350073902939080243185996210393325218227440463402221222855268880462268928492084533119922125983249444339883140125187499175424798676142540616174343746174371195707601515284888656269862586116596332198940046994515558893582795659806952620350559159216717149000177463576038929330257840903791954388757325749724799840702907726223290368629949070044458873387760305772914170476549021975260253610953768288531238041445438282737395881417804931960881053253923513714919316307195897148280314574067297496829339866308602849560003887501557840714970866554123574736194722531154529917851564994911622694010429711244153640526687479466648064551098658883983631299178138444191753975149444336567996916155007727366617671134625444942539183356777177560628794119012538113965171692376554703928167677327524416356305204057306106076434034318690281603400058963837803329254706215287188515015375412335846142535512414404929328946832678846428159240921208383867579327797843718280228525361687586082697237975337960700705646769079236754029593367895756250531234723702083132851752130085228094456399006126948420694708424366332160543919894609609850675700279467329117421167243281727973968992341305695424255420191455776158243404962234487114029704282636929811010727523901385451525839207886564693224834621438290005797127326294799708668878087472492287654412212768317255601737233013863275537511058312828697130220652835373934689778676810794846060560106488317691128631405045683258436403560203177604807774294661702447736369106338272506613559460853275912412784922129626821633877222183152403734996954448394679936248908910010921913900254787733563570424304792199706032230242174030224786488881561000930256190779590709177147723179734577382343085448980288266609814586112023072056827390768399115318975801937964734459048502024849477089342141332903770723795706888911296913787776818904264937018520006170284542767792328108913026758483503857561465743748564793503889661655488187404101407143059878421722877248028425384313175323049523134157596391707333391179749293209238300194893317387907775612879903014201757870289877273784484619875654021809079739918978319273704189428461793793252678935269485702977092103119634088104216035263945769260909058657098365413526180263173354648076697654280190201135861160286973824069568184860558641115976048469265398657591542503584800636999420237645536445801741930729904615189135165640176330193634462212046065223827337878933905584535990140009241737182643824794965794295426717866138758108072444365189027561377346267415979739408830961103972910434018213073471968680043485168336109643008030824081637041703558771786912611318092554604041785753489909821417758078392247481228523440818337068741632311022118906123390099806995253078652624335699813040755940247849119169418079732957159169293650494497448962212044982820122721934443356571796819949356820369771224186052016160266485727437119181182111619630655434956652310780291052043041709598108334108190847455909836331749436696068995826358979646665126168017619518596682152218222710503196475091860847200892849853067052732550111070988300570673737123965424158066085492179953986305809116867472546869346548050104387629323248489330824017395300552106729771826721957715097265855560042083026339579840355749454628324506548634425595885932482355773135665075612629746508615193617791667112275352178771072498446337923580679881281876114863911025621518234393573648626634890728759140993377454642224163717937435881402105354353628779544732075300193226558125482176644289056167540766443628396097351990931792939516638887672173859061566241991318449240620827010689628898234942897778513154314279571461224254876481990468480699287832589104944794524928167495322844497151026711399763312841904061226506652285642656113070669302334568183245023048665678602487924159197083264282640849173738986925054196672248301933212158701882262317992106017069136868711052794007495764148128669100776920561251253448710283230625815783552413111404322671940256955691848047623460901206063733402036380379324993059723808163440482341236519304647540152043795996250881336587291354506034226142182613148879317370488635470607236496178251945435254831068118073831265771685433883692412850611796002969207013799315037163269796293722024531909587534042246834462657141488497657069690335787291261304916416188655723336752807053832021767200381334733947486160686755928175590874876511971121761255707841066857961789257832303089926556030790056447236425306568068016044675719525043010897782258058500690340517222423288925273980671703472272414217843943179086999734035996162316827598235972966127089313926328647115337839259818346752384460075495602234291851870817289472907232094310604942684087586156681441961757876228280926137541607703909696731778399246577474324459594962114464991228987496057336768578256653368094914053469410146579150178000751028059835086900444834837291775817887322725965285545644785898968482329029458956541765087156094852111977725993410740810074922868644376862487485880627750084421529669244639559763901938315501163379377338535030701475929943541635492024613709101086739454007198935143967415628450792817811969409357780537087424494671668345498495405133115504269657897318835784437391185029882264921202614039749423337737603582000998165430054855496637309731380621972763406556062815445765820260541835005033519257855478436261533262212017887154192890042305654407771219045204438367976992298813955768262970048073272938931995874549144147487315888166261658206412217452018725724024690585283012365189618924273375318959809602651831793856029805672633163996448928645816690751267801691425236411080650346517177188713761571009363983258340342215448591450732474221819263244648839548496533508948662366072757965889357052345247405671276921533860591595806645502172896956131337710939645584885044437668365885778800033445892515185178675537569937819547628196668201784831859106742274258828121711635731337031875970152013041551982303422017361696861852278105723580210200193103776184160544923204126467519678127956613194039719782114647794348878014411487602868674868188864072307565603399987191589155329888485000453207236981667675306855527427705004769592335537913178168300940328569787228693231040211896389478420635793647903642319194964817670697553092733965460662860730774186220870715962223663997369699132066345224078931539654383705266684080224134830825126405024616669408542485360864255263042639374450558508061490418181496747458990353687649495365456627196406597880733210826350939247694968060511559215304481053082257773727137995582918148502669607709950356384531313952270276431715974416426781346128461626798515614810854103686490319138667810111954673870525207704079187346411915808217485607477690717575345973941248311634690916323095508238113543183776164674922981559597855151316204163024491984339522070650740027094642461787093505103841189198168444352613331166177777495267794699545751887339080758376509650617929676594192949251989256280482033999774893063875542420761752799257658124684730817736127545635502870126245374157041227515426743710813556176407656804797130672392077561323732262758437947892353587533993032066519977027025405993292050188234922759225294928998307517965569764435407680971811162281516050025821368232284839397924040847552113126327056541012092746093113394148503117981703181787647284314041063997774291481509265626198479133032039408186116863828854527860136193625796975927599999717326975386276027941894525404474111807286250452923852452689423476033733909689590902423476018393267532081678282239798936226949283196887148920395848029450032244000238671259042811757841447903312817125032776918066196311414146054037172208417998996802399206997898550728493157421255123985958792634109077175502806037382829602870953955962206947928754441251024446145700618025078821777952454451041279237785836636409615280803798821777048389683422190729349154144662638480738044399947715463989085403414864918228882170751178817231382933673286392424670093664563184940653822794813419309644367304967377581530780569383893445613118005363412742459779755409201256622975426861831873355939028829545261542044409474377989221997505800560677374529704317444964993292882322707485021499818734569976659971720965602814673237082914078011449310908498439632750464377790993967797641858186769096910339823362620326578220956339718371768723001292480637450036293716921207845012236378888371635711297412874772967264823366931316582061881559993381701691104911963871256605710847896336418088174455406347822642608448657254397849795194511542053696618297990974987030717768557904000021902080078445413567625492415597919057738243934626804726353026250690268306873340092721954383991060541466295231390921031526818765468589122210384462056763893051045769873352456356283770137493451699217234138954237974426062574609125587500403918617598112975909709781311988783839528091193263244989071960785151587274022110566204572091135484591980905876636797969391446798088500789991034436278593445635797305623500956283676124062288323050334873392701493673729847621431808956928653351118371480999883007747501946435867936728833582300973819374589155427114269378708830528105814361562654590903716524423872651026916678378477837945587659286780029791335484800119859309488857511059500666996741431141100608031801407551625959073760000298304979915725582422602289624845049614784976193391020403053422832767127879211818714603755631374335647329849822053000743509633048414640183635119300609150962239572984109609361190684020679700379040630652167617388760236086310994137786586356813366171519617363123403891881615260115273951583054831861260130902186387478755335744727242374943319699472789675696464793895674960988851413556467960284038837438952531705295425183850828655826415536979740780164465321080878945154123605918514740170289043521271398118723868285136363790828219638548687536986266684934066671980768882288062499780478262908603465838138199133439745484937244476857485286724341744151622140897006202511663206012383865887563081617432695739244107989311591149832700564782268977855135798399728264805196554479462597582893164262546677310376320993512886331504138180007529647098063328144961859957167953026539571390664575612797554041388389730885343759692073587277984487646299764908298640179537483775651984170541078455401063265421304836796281589530184474713695880816800671481973395356437854688036440823226203157429700482838631947212845820931933809712883721391972042467995512194997284288818996777168371531939553377438573311974405734240753826749871620224762686247445586372148946743454185525934427655626976383198859098657412820226295093932615283116781318743009542249449652417331636545047959046075182182069709084947138245460583403404697311132562487684640808992736635571423260964125453735992600736755149332233840878247084367450064180473489437296039359604583625905242316522634982389964201769478607461571926821289537667590784724627304759337926245759248445595922962699183185914568469957196045092738605803237501489518056427124657964996098948330270565376577425809436602403392678530146777564253188513907202189021476915294691463472707348518688346627940274055118909109092597896414075764008832937874560971813976431293184005799662187945885094090799425442415735803537257355959897712738781137688357971711108069209610569443307182889358694669754656395916613806493248293630677387563536048720065496860558181521986245982033614379652624802521092788101068304267252724413560817673875744453446070740543990959575051969705071001333604840884334190315385736994199793487420903807357951683279863369148345729895325914147631770570601539553581851695802254067951098688267093719972350863493335522458712107739948755316420509122237127043428706369628704696268288725285030427708803528540499389438658321373657289328265055429545155313627689998467137680836415367679346313163868468693660678503665810040450337399871874584933226120691101481121815586218536054659621041382262551936626861041682562723952645221471685170769655834113541720561644141620237302791960515879561348606874321107460675141316717791226442527627025699025893251443648591527029779374002351328185078661588383746431308535587675675991881940049038716029638397699705962251623025056810317709941734982627649625632566470501236295742446410360754814099103949183319777272952001286232910261659910319825838701914158882946253957221059641379869954064352679867994013102403325138413658667488986233849241952751813427294608766352153067854726713427429839655612972949911794644014481447210265265375728157557442403185295588926004090570771912778139942544986137869248185901591637986381295515602773367347624514064534578425202262650643734505826383391877974480454707760247916488059805564981121294710616983976732050810046797646919464474739905417426356073265906554962584045030339389082813431153105750333230004116944180234906607198397823354631599438043079508391434058134967507821237365311026929697321852116026125071992341203400393676932762877358063368686002291576803904678640890199249081205526352023000818923260449898268656641366832799547798609006503957062741744905060708392728201014144475163676376901336501964240043734520272296808773460360485450824624308648215804655731327446688963349363373731011169981371469986438208176955151975760285260175248997825264552308027443571011239910570180880403937625088028533336289876365140441749035655633858403343012712686327498435032417458170807698956129125223442675491426323318345894891508710559204453398665692312133168679844639310865267285338657816763342537310859936347267931227130441669417595919653944270792977700710054283821917800790130499467541377070153741769839060826524850379320658445727483790291648849222609327875601203178174219912225547127623698900428603749026996996979588862464901911026035282585002736797785389261763881943829959694108906733595199865428252735158424286986806021456126081279445966893375836274524922633005670940559630055227514891973211370538491817327549557230220207853754419923910925807503934069798882852289118961140956238495026843032054816266459071459597464251725870224468928195263321814533796114144223940546670319883894399053437639454174063279883784982639848091624570962142313806452792240350017635361521678687315422185034689502131999585966416166952708660426204740723250135335374044733345065718401545452011679501342857622683327435970536752011858457567401020939524311777260858042942160275387535493328831726292981331252734880682676770849790528657996932177113847185970429311683357953460767410649447562725303421061291386411537120911554844060773812258294237122183110568159427464362949039876506809923616906976036223452620733598878566537667407172852423797115563289616737163957340263199948172831087346665278377460361523531883598213636839749564511823278595901157553979245993260685147514173070355270901896986517200517808993343812983868306171900510075543825381551840042638260633540958878926577567759130333085713558002711819334597034637597937679169412315293094371847864443529339822226377301971232237270842401732683463979616929659956300938157467837833336639700745474887575007218204681741036140032717055180318531165880061980031417809875611357778142285818920862204652841720361558039974608130376021988871493776800628610539654369754149060012955483635065554638758690193558708907003060536690616594849697688928797772507475682103959862226478915970749999986045229851086341624632120069608777244004402139551573996714693322571474829640408809020410612245319323449605135001783403172522950284722914782174474305245303159101601706846121382168044298444345043155202042669135349651507603614349637477824476057165376677703488880030967354046303446933171849700343872250808180158268055653918893320706796833580251984100763644786988260499730562226369852054285162876735071001959924846973687051282457490019191425133825891143047483572529463637563126417435697327365403258966166373067249801115866307496908556391315125526477645601210392269263500047993011993066059524943683075872413772887073454272632039625383559986338693052826362647009213577415356166493591093238167280617093028022159919836857268093970448987789764513890795336060518619817289097691632876953086936591876397602181420338660681371601773705207664592238205115634944344159286539870369488442133877044995193159541921663163689896195329993705892391324214576647445050550318513212727445137812333638039436686899882929227694194535392935624577609853378417743978802713847327250777546580940927452215161565162472703849104563990913691870272811922305314733831551191395595705323822739862801715790514467255870703226175546530734908449630237927385470401805420805748346272293739890452812836570602680503950462001190204541794525268586060937036654484443295034933086925189582054414329634775397099115262899516296354852453385583011049155003479890496913178251241022753208965622831213101323289049350158932470480454689793212663767936153506062593593491668541134639603434877264515863781907975340164827851471312826992817604505227776904448480288519154698162911234380903525377745257416125007488699417265360126154399135101696497567845747436829699419855769610280229147981914732538309855600318833415913159846322193924188943273005348244828511224138602706133448833057788027183368978692087786209032981781152118198657105593087764556012586648054717882845560820440102993491557293755871791884204502314352995312351312318296952795025370539060364238729733791696196304081506910057828206954014846871198846983254290894272180197128997517678058110368234417236669235878590917589289093954083880100777279170863103560160005674520474968727621259083930699562130672802821380234585054341759429248826507597945235387329746383510747107382826097297136039357482637132088450312516903103983366768715847760924181505394183950224456466085139173874562938747342979218796052401948502309777289334095308430036714752893913759376504241129357882278719686265761981055733346579375407965322240254593012750686162752971892113292446028420349593622896800548584132518210104975784733882153882399053408984424631191267527442667538022099884198908798498362727606391955936299215134759586523661419308227005942029820914124971514895641997968985414383839558352176441926214026622213167004731526226879043196671641620825660323203597321711963566167420105462783742348618632097365404735301290748888789759197326679021098438880178073073041724332481463302777312608372749955748951737758134623601406325654686098007709517196032193493989654523995389284894406250104665389934758479088784666941784201724649951193330282908009091779766652534123986284597382086092540201346871153248121612170935750747081593018113450799650078896173033422765571836171054824290670752206576610018447279511290297418956289120312240082202659837267310787277857998671728182067231417043915776606363913344710524526636074077300590520694325069142578633445033314580070922735457853231815237635469009630406712038074012909028757156106064789030883834853080461971825810351547366354567257757860690314621741698147514205307455509583985657338116375084294476898735986611936841234445634073070793421376007079940664962311822657604119841033410907291380528158547336269204032972429803841626734103122009560169676074751710180811319463056444876939978916446401642776075183578599735064758348349245855829057947541127568938495703200470227761162614878318725841868257209838425342555343217515672701127882974679922386716182937835783934295999109439090719650505701534298880338570968511955315784053826496820432921930928225301541764785092096324901494962065441964626006725356072277800557323534236044833453133724400051023033252992587570007041405700620541784826228260193540289417044686101687605708937700119832830470996222367556418830248381273539910902947758746931754595985940664330384711062074614116874906125381801225476858462222625491822564187552127986971912536849933194361376654299508741947851124593438106349802818190227017964338640454162007861140712767234430111149130614001422062179803157299865770171319013618620002355662518046078642468838628907492229898776937879006798446996396565609506886024457021419536292367867132701566341112980213603534908097698943398080979152196238205338457453357667957599030959819398716204313072124766555824019769023809214877056681467834655423961499371781553200544727669202760005950375551786240811645464041837747612033778770339509068858171046348015399427280030910509491827391112590822220580104026226207398340175272856389870410737727251065513170647431455106969100427448516789159065455602401826983356083453120646439910396237997816565968818489378371149826345069996933681509333803471592086159655036970066930745873641165722553280021473489727084358692346986426753893424858422981668807538640710655074765576082400895839088987570491725790880480234889231361437185595564609936492530561881488588113505431321649160115502520493509038432520154352766693677906485395726421580603747682420620898501362992081204695302603306307975856663132102600963656023883972630972360159584980076518389335312329209918900037957628318582609475168080493437912042553422063964982044340482509053366701185812337395978518539223260464948346065206318791077935956240986422492658616121147815395833488885606942475228232015666209536978119073683876486391595217884291232801863378006989457904988897144797729664607600408172301279058104608100401896582302368880467228545097456885540449299462861046154812923427018010178980752410093485418121615567162183489055884887200034668204377536172265027593930846195685215138481040650850815147526456532700889642633026842350999103226346134177095434565479123024066390484823757819526177267102920872747687197739022226572650339727078548527445333539216563305177452597728718697942482971999922636370086917843311725783478868016804388794653956290226298117343023936684852006157086152540796208835130038909130819222364445593614476787021086168893279988087098497206750545114306610170481208258271099741625515733344764841869646909808224837362139494789965559760843163290815805719894388048547132415684031608218452441772513847273223289559965441738668536892100876149718667343681170355334061702300085498409774955976361206221166551294911500216476566052689558457484255374607977167897360468422011572898957470898462664502276528376986505583603508519705083742425521691025363406816400362076973686425743806058176822726879881267754838445256632781285537420717105863953842148849760471038493537155054873853418118423897186624709651135290019273165137268033368463538845760229748335043401211087144876619703388738862959340790633796016220237952119659442199356238374641601323096336815278631503436170713109192077125224015382387221439585878429822860034484122553335075590458434779395675387057422521839610893890725330777002897935290978130913530934357057211549843299998704033213620970061339653308378704012258180638706770848418265395595864275961706986750714557588754262014897046751327172951021597494813132830445038856291523734673103478555791939822984865367206287355070058202968702944843614201886299291159607598203269764773431277745078301036317269896096602820086379726573720138731730616523770125044994794450513422370316233898357914528626889152299161876955847982679221343030549645249635088939459772881561939875201669877262525890232012761564244726446505537438855894328380236067155153338191707158177473861284741625789779234378197593223446830217165165961562466472930508615667387800882493865456008991746574969590951256997743958576023260460680862449891321559057816070747357873936704167547906234093853209119752068419065256067810219993139006592398687796911548088117872974107122002367221449873678899908738045656049343179023597675414128209155929426332407806189015465051537387597318179576560996972718678716917534212249013938485908671901128939567852729324327555279203430538347687284495111349705400458757870541326625023221468641136175040119730033468001166756724386356699968337229748040200718482242200707384323910845954654202752317969793785661925866515598940906128361081902977441526622650518968146054428703683576074323437002111081306324061033633352107118954010709237835714194828994476221853081467211526001482208888860764180734456267617462354396846758763702694143246762550379266919192732041084968299351660996364427324352554643742442363310675466837610996116165445292718177787093837803564806391605726572804938212858556537270529931489230477753890597376221950654282249437523080738251153234318824042390169087738609680291996154311390093829541246906323105235378730670424893957291919281052511221476168495865412310897044374664140554398023585896572236463767308804833888499114635472692144106232116594079557750891715480128278221439589424872659644761600894855174502097386663238319440124858579141550732642753988817284713560994318589668647078425618011399308097211135260245491405861205889996140496402327613570746762380945043544287272223935096759207206076783854044940958696352030836844383322851072449328990450249715455778214566823028450349471169609577262282781860536148547151424725209328427526930765935824229333653956582167971347875414795444193333208018531703663875362972031098238523876885988789201452076591209959826022039287182893452267205115450523689219877390896432759920683157826675709774713981778056342575838957836728499475573671560995411775058324068481276447703275603594368454679427066833312767456074103831026009553548602769557784983009843094559029739447065270350789331583799109083845975677984147532079368382019871748455935618035072583042299487736266275489936466509975880601616509052454754387718730492708554047308912720611608682121480480340133236007899685610970741057576192704848016795539783589970863903562440219592777645729161379003048702108353454490858844314681738645095058138536737828926741137214281175046273495122421101700002542620816632955799203196455434216027039441227128157794100628840982801527387320943650444543437349703278937954808750387354304101875809105072715958080803174701401040209658950589104125121216814600846644666339641688012497268282393159621427554831660535579437727068803587792325665202811958266934530145147771634267075438655797700661643212671276134456192275780954360853225420735344190177896786482438008745905794011104286758378643244964351146396907185713426739148645353425126346828495610151125617367307860708297810916461709196346068152173029849686743812311620284967364677034101146312754984574382929354789313309229143275266518644683439845200585925400301960886793811740388539866220680286994693660945994486372042171558471633342343140441276805360707404363219740223545454666722332099097853050004181825248209485007028846000011127362496260581525061468618466341804206146061055054546611491458578220384543690241024095847960003569270844765459762056360134704896138515355858573032174799574971379753000345949589878347315145622637599550227957093764595774760810124394461407234623015453238660274083757915585897236863933973859649791430231821371829618565493539877155475263542090017589935333762065307533370527508568482583071681527515030205783337619639798427970230433935014978395676310286573004926700992890447133591292752191964354419089787180288087367099592999434546709302415934788776171736345148856815543055952747908735911648437229632511798026605279222993739919541265084243568717912090711217695734359573376618901660955363222171361292036423689685425150034180202137254608175392443619401371678800670831805921419685747961946856598610438230361097557276769989269369717849811189681051549103140195250993507237700076745575677490964290451059165998335220687134093878229458862321839022561538026222967270426019271195096097927188492427848898706600145822601585047385626823046375376826111011901435040674239222786523297649281243255031528738741464024057217954860726114817613636255591071539913798534129720306505982756017961380168223899057862455636443737071211161098479034627669528850584918873491820043909878316058666364969367107621746536328848922429430761662231657744870095133636036421853373957006377010482026526745426307941674988815207400058018314189218756372727684245925400064095850025160958464563079719351348247734176739580883928889378356794051793972418599842616847947326175712476949858838831903217716633605782603683653572023706636474832639475535375017897767286272544550302434966088241416093047658922387441177427338303284453668347552842281070145799116662177385241013368619046699299169854799099289635079157608526818244197358386336536345005339878976807708423762647083346034683322203377336903091375345798279550633188401974050117339324634075315121229165452549809584437993562409932788713120517044251550146001859486736130002458264606935486317429886627142883388563082958422582238055038066297639447056471453703616268854808996499212201003798433971515049064171326371611535590110282138664128162091442266216756075238417654440936698722728362225093359098160627580185949903729026305878952659517052401835412014229532540943937330789530478840069548333333040113248924194517898183151613550602279417004067883412778718327553930655656939961661738990895669665761537439158316539262444129370931025785738527287774936278169520537417512746229923547885226451954735807312255095337166126612241333660393932217756315185883536672923440052387796105241099741044347824784291792304436569667441976464660308832752676198339125961444489479501635929026203346107289996951887391180428455977883997224116579608760109521640214139918027145801665574407322818598294163414203847910726350749532598835806772536925145907365003925948693292967540058262909754382414579097392959516008804746735010320445321283238730082409122812459383409532388429741794160031980952323916852717879979456285262082021240077158636191428081659990115732768917573207290228576562617307293354519517522381289413188507998283048770423021576610920853384828799666445288954759264258372187306470204429206091281322323706496129034868782442561455192987620200952254703377048439895057331581311324489693599188566668234714513777931028638796088042876417455273041168426155220410038865538924141159184166605118520178680305989279169513386271060803601677820206091503720042310981774403999780395610136329801389584299457622217369944617436852741660537234564376146444452640780289370268639091916065297956960599075187641401258664002418997358626788102966182983089310888447834890166095505464217631271044717843874994725361857445263651269699071280002435778808810103855892115183597671635994294162226966679777900822701360413431323773942510648221159376087679437250015978363822132883046233792042966760358684486344961212821221066004293795125080101659344449533517874395009042064532601644335000876923745862320061521259731411657208001892467824993099331614187762766130441677989860258852989856469850099217504776205282295164344854827375755762881431393181375936159033113735669060181685114255870829756453228121836438351001173948105470676708367773770959915255136302332826649470066203187225538982047010898747948495679085219870272114198016950463459280259644392409650550451202022051021273562835577124509313306947118227136488722916347639167363039571560061626613636453678831441282031045080086810245509674623930849918178844896673892161584700168608544785582875676118414377654598904262882647502889381496961507343898319790871642801885129156239979784294263225274961087921103675079343015343931977059290450985357470035497509221010309955200002830890712471057629909996913499131070802611988374866443050561484535768909237494313010271915054254911255419445203537290573230201775146104770850789422739554022833085565055111537788945924317406553598314346022589857175541919457267686240244497783314322608114175718849502187899158766223451454562413039227295664338175128577142843974853454476237857968218577709578766362052363128875119967689624137033220667267554969237063644620144863201799923682446385329881215220089280963276242212345167725128558018306044843012404341120800705834384627327259537486652256169002658206588972061372851345198896463178756241024558434802164377880509761568629809815535940797682976705082425717437430119209120737152386485979109739387916684153749744229835817483539916129923865835063615465756908963711595970340001214167246311285544403586417765829168390154585142800691158643068886565471728883947272466149281758371113942134531977732284249560220872314134216477643614818379751421257176171637932224867407250800316561649798010160731770878127900126324480231221768895188873964119132612878328896215085167610737519073459399635871875717182361346905960264128823315142985420928614197890960525545909685481498747092937834711126460197984917616012318881477347880620471279481146176360517574809212030546498160172115309779147335309577964723691530384242785284173461692004151364364192154146109979423847195882273559353383535168694776236482647745206600181173565607619235330367590403577442743857207293433212342864145471385673424818514312671405137170159837246458655787816879233832041491271482805480031475063248291777536443843425869686451957386435954448828330129055607428556698641964736681774710518612937193332892752640980829081224519999509067957196310334087236745722465469387433410598368083805184303864602547520044424111312901407137493400795703291071081584795849674841258013213034852146071035717280916708598428251088837471656574058887992323349290093592184314823210233585115536016515349313115783783208527185951352945491750959633520762365002831201391237596344403393195376084382744475507148370137828898767042939828369692125773806132414668286802080406489005689949063851183176115148181564062279577491635830072694764122402022929326484190003065728048504257233192093028999673237770665100019373239741480360282835344970691709695951311054233495115523012725098560317986342693012981010765659221515102663867578287578069552867581339141588994567513750197182956665706431919399335577196222386941143011451655126711668428974682602781559822196918015112837488546336121400332897073478223413144975718488731744943315465627723987260204925022525152862529010360445181250556509652370067693356631526649606479783358592411325950918778259658998271341909566018540243379652654621422582372006365052628437580029769355245558074578464573608862485848389433177956882400340134779476449366755691706302046749452862269902137107718327737573907963483806108677381079426609422262752845442816574546067359983297573015946127751969863359621071871909021918002097973387962161497816202797161214412805334860482152590964480912423224814228035860393681621818494054459653851175672324810114805533542657887556747504448415810860479788149729177053070830473824966656377067155151736926540114935606172888062787418464370761072503830571003039226091608688220410672282320927265801996251779323793011306173084715891524790608604050492917275431473630477289225329513225649627828353130920210212723526049979847302731856158088864968738359675504762586291593244680882848897772589311217237142701574411883784859784864030182161982929258476886532185306519652871304134328367271339563672032645246093547021094695172726035327346347786156764773030611030649157693965422892318890453875389920474554572094428785622864334946364400222689957595736720892831096407950781761343303632980403101649566741442203584535839429053200581500151516306969732675176876252005064754867304328138007436832422875864470314227328716117775678480524410054704303214727400211519672658799038304560510961860232160548806203352994924773812587618637294381846066282803038737996719491566495064719723307491279987052162334492217960617861284203027208397595761638132676047120107345379410685439302586517537651071509751959545942040401143610406451247337559108128521767948913672784002195689424337662400522226440804794255656228257894927722070449495445985378486389518671015020937086152086818094802417213752299378338053423353884784527720077994062961118713561175658079569308284390211797503665501292285179770486685364032620980357673556869467826989623862753434543050180209062151317582655880333372534905056774169212850593018562823198014563709099581143341224224379931568559102895206449895299103580553320687160151707441592060240097217662688910946104392081661139843485348823229083682081163230243188175291440538520444791996483852792688318646556664432332900410850309800122934549280610500453730984098986658885563010223520568080174287963774491809297213257602637312903587180700256153668051089988470276131378357778735030568871905125947008270455027730856298367298577402351856681181751899270516583180034064103566285503300203448102739831790847346354559289086191356856782258988512666438202400443524056951145214708483577071129750280426975662284887799648030178729737595050910880528655751983898950024263492954884489059643360670424592394767532267140396948090322408379436117345876120777160671700508297311021535583192294478000529286284751163847490717183508738306987081590212200051234466967450297394433861967782630909309965312361969482128926966979785848908740364381146385922816154750976317676270282645659072568152019395434368049246561804058863165194438154860027822630415394554897079706860626675210621551717084779178636768567965662197437951042660029252058350009550799155977317348637827483890939339232666615688658140693791016957328141173349139321121733337648809545189184162308581891059825912749537792438252388221820168451534378235848773088310068359656283174161558882385768550421070791839482463676952484356037955413109666483292393115353931456821854662501071646141872666240060328875369472364927837628916618712162502720961555299200336692266049653214206907872974825187455218948932797575164807700554886946191151269343042923537831698255258657864684131982661710451054581116484121264574864196801917143081576764008455624037805031555902969476537980760625074022099447389011471662319946905326567061555565926757457829779419477956597133766952782754661914584605971640340774732493023047283977600115401503036345634896193507597012192859293899566921718748030965344100258821730341088020806001253838228240321739106280256028423194143617480578982532712741036129216466557843962099380940281867612784999168723783659053968805384040568784619228083063493825067245390346828963947582923783637229762521347972806120424607414546315007645754587713240197065220165081977450300890846746469519830227346737682011114446240070398875320485385049547317346871087100011547797761028631248872166999022986027095568010238637552673080219215173097478455217198561449998106158098837332427386028424394526751338833478811493985512191375092969477002711210421347144567025432756326571604515733808666934203495046354898844584712513826645376407856756762089220668582594092327497299575371016409720664392385235088372860984007798564022629686840781484733052626183699666959880653924028519890448495816691854576707334583540659231363901945794986922273390600682970937462688134537745637190641315861247303205615007794486719614278249848158169788617940581022069720455820390123765329832757871555565594371401037610796814898081407635074103713694323809791585167974803996911944688786635269006115014454980378898284429900520396808324069939736058414565345401827866440649125475137063014247631647250058239678863166148614528475999314679978705964987169338805191755738616578711048081005806330502602171037972206948717656387300726975935287073319198409765321899743632149552148339270812557989506206495424246366725480942236017934457544432809183749136202007356615669751386801391316551988896060413391597297786828462696689831975099190734549170269668936564118701705590339011409848983049990278597362326620685146835029389273909569253201030059291316985197131083182593595120460543378552871991111833066159558080415158584122209239875733027129635615988922769610521687309068813259439217408168488538102470792829040489234510328119088204049242243664923817936993755072867428000483571314188062374638852756184927157731270085269700573248071575501548887806369343773542404494937156130474111371338566199991716510892922578282858231200396243202455829984623891830754704388462377311644394940504780688858899097582199153974335429072275177710443162679157891241827726133975453273592046761444806708932836244988797008047672054992115658274141317511469881827711893049036634154339348970544593291249468925276835717965809196504424717448767989497802755626290435346963802624404923476142304257968069123639948478834972019138751166431431639148801006838643098571737474098615108435890702375330468984816687026239098183589102235081987866238429154212100664982460896825918216253647213727479784948142954695149384332377001678694859000687827644808163489448249521869516201581213801534002457233864014382341320106170767021965145220218580905068731261066538240060411090501523406842792574329984998357578747280702051565113951329449766295491273884077620422104510468818367056786492818584564427202874509152750622655460005119473965775478546559237618720653137103606518649577633092774141370093523381037233790652573972570551342988401059703719472550243752929513903232422659935358388377571755889402548626587520816412355824434769028921865198051086842470550064779890955793798918347492135870027659457204101057397286552404055539752769929597718869698022592788584088103609111161287551827130757037155404536390242995826738076489054906469196880234665987943622578066812326982329336024296833615923115245092914894423546637156743497690816295466908362542466721845923389097904881962335052945362433098739961048243927759295652168630612872948342488904441241033134488970741570573207748807922569711633923684741769714473855046161132378995627128122961983638898177602189366175031534933949864728478212136938686365801420516361499489658104813486125625064375539032070975910866226336813596663156852039039427092142165195246195942694179087521161625771932980005537072077955817605320606318702677840762730425020716848266110315057006034233165582239677306108900297611105435582020460780585887801633874726458970219753987505178852765134424930605737457851013452382198703387964450264082895573995865325259577552472620230771581387041267535962287070818029490586606374641422562277700031562932818127837471882357040456054379361200616769664555938855232804835946143762448268311866428894113801700466855841302324531559019282460366697120682907022081716005167495087802189178732924713751875540275648510748837536630193342161955489305417996903404150057652137240837143416704662307558989682114347183191739793311716077303803724310289309837507563838107042614211009312879358825752308434496795554321717058802190803751778746650443320864271428241986044069486529097984984003436686596405891284786377744414723601307833172272507664762306172636348592189403176736977775919253494961174429505422674154142852598882439885423696084522299759617392618025377816284036107112537913017053788176738303988358931896794020141269721971197070223289972243579436294394129531557590811513582913810988779925495899435649019240182118182956972260530956401028665383554462679188338354075054308457886625233660808746443088631350938163048705499169923321819542021985498406028694690187426653866339555275074070902363167828544586085234600629966327153107183355544402526299298329521463841616844645562395674765297376039944006854229432300288582718228824613962965583982012878911984661618188132031297151591862193315233652916512136780965337597912203709932835929024628912727347616708098379372193705595095795889185540388996505489187949234407392047257609339656102627223116221122579397599593984775031355767190643575991070311009566920664019581261187534621736689716242492815746989904830525454182755188696801015828303538984776500915519441770445247406781319512625176394933597110818091373564977729265702682084346848853545197228087892577814001698025877090518728764755098166752925058909165653915367970454815263855220832358189332315486229235352520659588683543171639372952934790087205757410956729948078274267754038426701839464362253641305585102303920799512861453362940242130684546198637346092991066419553379392473829640839409478501126669487459613876128945184991061512566687716689760182009135027757338844095669028405304920906466883194003797920431356979150694302251358413153784512985106023098689228140445674180875061338798972404116395547813889796019900519753069095422910515735974428160788014134925947262165500442066043397413207621191532209076991940448696916204842984636149570963971491384556664812830864576811251156223518733224034082371501308415857413740677224877880602413554812463052540352753750527716739691530229096371074672169719823596213269317314654376961702872962216536484398909387201635109945825507136711400569255455985166666119907716328753579626339558186503053767872357173945344484429084969866385017646034802141970975067317636509180135279180053634957973561915134792575911138894667863114688285251813577782495291322907721056283504451360400103970967606173545897378378347915501848369565635934070154629310319374138856857522072536695239865419446947471116403617112058322465175827749268047763750377051309241022518713095963845331852176853590627664699079426209795175624945390706783083277755302354603974677009307093700302041107836484265372942498471928727398564223773633101665880950741897043150172608747273412071158032289325329531540238472630623201174720167436671554685672322122743983230567629983083880001672958890380740271771925151712372105764413608588182234587345687440237965777450890300373264163215095689408329611889986603701522034855467420596262231037415635745073922397571096666845228462387711519122495363337190239153939929825368679881069307006132359517007149640794870934163499464969102695702618639880957724214513893490877548408755056644036863697456681329068105096767062782653600834730438355097029494537633104691200883812587079667715838805372633973283165249938761874639078311158866247213839319901661710461220280038513857869280903054855293209147072859096275270996487333649381663480191610224796476826942793941629147597753920613600042807017035724686403939691029341956228874942052861691781478384400228826562340425430539117744607100112153976336860206242622590643698457867619018773911469745104523619640796192403901861969982960321081037865585780722269255611159284411033378344224412650729333976968521965646948662599348948306054800438929001347997729785507555479305713120173269867163533883765110825923793848041825568074506862160150138095875685964688826075212165547945130998462613562511057154962784406162275358030508469324076497749561032678852226491564577094610033191560148670217988186014478579429242124223660451378899126105451277603420463109541876462056471419504715233667003136298175980639300905568805368295132808024080345447355284323102483625823202479166244303650700130506950184231109974795683871827982439163727744641009180520591218502724976033692028593028368558432697761816258325280487588074612996661777135207471124081425041530137686513762726014797768089937965159063584705008571762988346083824487682765938639223073261403064261886127039438547445149048394452152798320299153628652601169194122610985823410896937845769969718202242462709615631389930138148503214017550452608677472719810845557866754037313101568693922722429368008715541945508570314231636476487451173610322659939575843498490378242768105304478906617965770690147215766029107677896574545853202251650467774422793874973828685323164936882464040477154164091867485716580888732119682001198741043930209069054806967067461962699078505896988495194007819893883598674552696229350360157246410279489129453703413757269111495554930441101368313288199666440932292352009976334554434753605326228732223631058186164705705877135031116028170615782468830751292838941789415415446823981016651794995011490571847854733055176700046060652523193891653844870116020451776388585634825504323714323604655756557948055271773705191040138473107816972019631723263626096868776957211172150392600704571283379520817573705298120140575393120453461703758250176665932008888358507340771935649992364254914993936397386395358889710206642071387140405787112182896704093617002263422532641666943688395348248567836181028759874531719537313799166778798970535354311543172335686985939226945321884749455816124008710976805963588163756645496612979864418484760345472241406278678071533734989772130613443138101570239735093248614093478997593323878565086088480578168358392841189429901419933005792947613074083493701740986751697124407558726088137441489975585923612531125799913846459922881021975301376644075611001982317332604667981723150431231476827564203099458044202201154126417392772649815486063299489462694407392061546578811055149819192810173965239218027760130241812475998443919831930498061744443290736058988287783588220381769517773211442587099702509252327412586315311223119321868877126388771775055715843185460728935059268598287836674016859952359657984563684009048887923895858854792647119468500555184599986470905490414893157267811552585086175095503505847648126543458644176669532914621651040082408689543271452419756053229272244660355235708731293521754680815671240381725016085783197360671360116098917991424180239602016347337809208138416117768345475856494950933166410852286362639406693691115191832045332590968880109323174879138632182255303146918513399700703050040625735958797226804899476486084189119086625048055631278204029020829677168898294198494334083320648226977344347459885590963674271741703784339687925003225114973262411656541975840360272463170832168510599099449323323771050604559626560170584802634476962127285951507046221138048090513275358438336602872547020103858901276675257851743744207601124255286563793992048017709344432533815279488065646113895787301444607148326564146011264823149800635818021258482969190644690249665706608140829459835844689410214665789070773526198368465571156629424335424067883726426358514511839220655888878008436153832866205350425142863159186531120897792518361459675962824511140538104863290119216569935375275061730923024862224881795709830322407666055875833481595555606452095364907703808688983253087556004211380814946328272593554442127969186234028486578531950261531515497845207521368907991513566393677290512255217798233609826432402983200255354862688381911659723768197147162828526709584738049416880364557592710229521559299762718392486885502669712266310239693816861135219963120922836156285917227228581716315839338233402130260355310213706924270494998742988727609175315676737125628452239042096880567308771405211088056421696639129175005752879987535864942706848713044685406140926165818739986057386457221406340780357319792477012511302985071631640709853616976541146384988553754817284337840679468789539360047531077480053012759507899961460274084572698803013747365878782443895127555335682182488066587480011014243886194983287900052310211720683781037029678996880133181057977264254566823067341107927487119741148680762073122942641887844820789710361762796611427880673190169483173583552544532479700361585951488380752257031694105769044804209023016147322129194676517153962628185616309441367990683885238593135550291001439503588852782935785715031670302585880158515911721048594827386573303469965933676634603827546421285045866711835077932783625870955467603090439705017544796288393500235628342807012415136837858650997033396701082973479446569890416941760200694453093932826808832886523482471704647577058055158963751971795813950270207953463995414343136328322742254241393846444723516820595587881924253618850994853220913605225656846287904143520091769295463655099807407859352426960071601765301225730831218999179916107980560481559626408066047405412418044918862625382059292192043800161626525192124543234078854836264412481542658563721226142387690702421259525042395268885004046960040108361909598690506293332696161365301252385085218004425520343889123059532283371678654821071966941446298227069084253134459156256227496302755106845922144187037044566447920075559241572642770000560083772826274841232435050973375635220503962650080203082743795630487813524578388211203010319442877322807521741042711111038725420774605472001560445494646330822893100127162378015324987915251500512880391714898757257810875121602815001074644556073932872183965026525336525689117706922720083439801384528025660419027839202674887728561625758986625941092505726000834198482687833411091333447788494998516516506035004306854754546294958668906777161457526249241796812893960648172754363828756963475012839280904008778353514094523615049048813321307267154798677571414488727760259622247707470813986970116633771532706658562085782121217066181461699088676960974768928107024198809486869639489407654019953086040032361249786527274632878198729412220052245657474974553990802355027599327341660625955660244086511202504352863006340948792619038681516706542538640975626235668709885126038862612132139697951995404602501280106387056274652712108608581931779619084065660331395324160820172158692812213164664616552145209150272600173804232319921655108561063999400468917118273555197966964018889765518343969891400536657686446846718407946638637871831570658253004582035963333877566911388330859152473046717657962079869144653652318334525263643613102754429322108984327265453121660277728341045792354455444106371604804616755111970216181601966635699436281294562994256997609850695124029642658637965720223997069247515705217698226078875239421915201634437976819051665563380071988558106486207145215911219776085291394749976885389607111231884833714324765761986156396126903495182356635484628921388036170716711854445654471104886541373197014233250138071291051959158340231380144059351413521565228578630499462801699610431989194196621560377230499639070294989288625855063935954856870082325809729168555822256872384225917230816206423557530185955866696512887777625696903770465847387470763731444645396601870675673896090886297134224288242813502588416243019412344993860615459744699796488730708107823891062648461361627635550135730165066648929434299303185829615937306704176046332267809865002222339332609946337720410787969072887924773873698100689937156732693586075178153855860387742609314594863244988557078450319712587663292974819257755083917149387035525426049087090055688094420076584836153595896401493023637695249552108023648956313936742820763850009275999029235861036687866806782411763985457386412113024580078166611048678197288614626726435084811861910352058544566426869190053069943121150472778250283484394871249597349429104486276202374848826039545784746511821717145078058011190793544113498555294527947089704604174177323298408515023806336158838993742355205267814834768040792538061121417478197084162400842983381106666689490296528457811625048324046030747599898430821872259792081107289334217483907572545374461870136795632064512613179505483193549851560897186770108436490935769177174957414548972558073703951758977187442445339911527157483738517588868081459229776460121320010138051201029143575163109321900317782561179997887695090825630027431900241272025958091003506444790402938130080743538704303534369745958868285654537659219784729785004115256375935125991767205884947799866221496706809098201263275562552709863372315274713311775011359806309652403981449317324169569068805376601767563792928628556653516350961980046353453788395655853079667077465413201930167032890877667573545585770415238248963314852523450735432577357041516822950131062804129595007022287816236935152337827033151537530063111072859545441409336527818369942384974722706105072423679343010060337201589082279246750802735444233133226084885142549047514127921274855501244082889968583858909397501653210221972410212246769612997377228576890711684102362419523676246856746272343078057199587008499958829179488772637156416329630900868965826981806443957987480214152701170849239607319487431962693238782875582906273073050873529998546917101831531565955825295668478983385055959537206711861678819065644936940013702995568810010990971057898477695981600978599089365778018906077068478223758509417759943441188579161530945620464240066850390295509369809753949864016337470916610180639047224549285043505684638301434579125921991830438467117840915811231140426055313801933517213564757165806091935210388846255890058300080512914937114098021693307148942169270223259871971581021119832820457490545114707526215549851535266107612194217765067449448599986103064223501860858801499355880785548215348568744079404990206641323317403095521905762647305074542723366743652017081195496627767159359791250674043897477373597900666050381795963569162316251764073893325131217034564560503959905066893894399960543540229909059539129393652937831860696758141204562201650917922949509552291211993147017617745190580746423333140637518501129266783641991248933516291929401037540964487529014118408809708800773906011764228126399959662804210221273490836818399832595094482312686237558156935736891590246440856409767555384955821113527664487229311067255421917163256926332645409011807622322506617593694910769600363522199696321949457762800191607622492111164897118267334175361154916261392234693688886748565646869012652338853937467310817918270209170197455644218374027743691656625270542713736414536633406761909092390658211056968289307542174750018760271158668189211236920943418318786356882502842869608252228824934148991263566126572868499856667197672842997917513655380783541557062427476499865102300719375867296192092928580415189874863382771219518061557163562994514152239253869203051492731382398465071949794479225670223652479301664464892072149343445886213828035072565711635156780155159313969340817951360617419206920512672048624973025768092872987825168334002816829627835953683145416026086650544058999330202498618254718480725158936721178985942116932819334686272550453245863789966681269105257726793359896371550742543771356366379713432250044436102834819502788646950241386830703472741090275016530631193353950107647977273586296252193105935617469083187466425415524757390833959925626737645438663959098201022061810267604314879401552688414965527293548596707612047932611450361842042685315616885415465120979856470181286203829021177395892161768601579757934883824674312895099495423799495627583956519658340952971222995010809000602469821164886457573571869805928351578424620904819520234103090488758630331019959369966605689059825128451396158018534535433556904773120349681002222002889515455291927661318093889815103339605429745126537289306635163885832053904267635703757160272802096290312861002665466022677448591704308801752900753593506043873042359119430819279859739990449858603200774000594521353770478364969099776541215948326780159571559278745829188937873981877209254868498129340058521555821940817288997129175379296395324515114032291453216727590066435092742657595447944316935666685094623060041479519715435380975865475328536442177781071634611419570526307880845900878623443694157189408368911915030395571097533473350233836247997919758287772878687882856197259212356527621878044282226724767708326673789198011100246081917794177256646411419449994237075225880110672904319277403996547673071177707866159475012616054255972300415813434401926750755479535846014228866777384302652369885824345553645281448050789768297669837314904763936273506203146570368470564735339223873068103809362081594219284006613644545790376510039208495974353129119364792534899355264560099395181729494250260197291946597219509796441749095496434960521657240811099426720395355706005302244849608689592169798435613156410838559114594621830237840308759606345479070311578181479808494955260611387026591694574241598987664938823852545219272936600183027746539264880952409722509668264343034027261499568600825503302660416938354895167356375995955491188001204369615908558781627325130060779327513079311281924091377958866436560026353602248667421812067444304617959861962304892411817176524611573453093942723608826143994683645611089864075440551510205485608294681358730770079889047098718832183490230453586877608939847270244176832091852459710302609592628287934637029406151817638621167348382088336742518045995428975562108627882889717657696081385612575958474787578144353254151103811574437915598298393582095030262160026907943839767896069386331871952090830092016144456857148011332179038107405377388950632311997492636136815117088801630742357201299907995058314134829644107423012059873604513209602551960962485002102794750237132672331097151071160063680574057508442392448437999665361950493136650074695566342385020161928462622637764798564016602793069007022896038105992460815558398763213836344745286678635590831636393694646451847910970357157492990815053358078654628679071639190108498538841153841642270705841464138582356405254968621834412537526464781156391540253144770860938029636828096467633858246852973901384223279404744566681354532878240793482148498809369112592132445777965078656653971693011468766629995237225002946263162878268499339361703754035643075873107458092678834646414580072349969063254753428292883968968968621763973122589753958456774476368505388584323365937939629222718340121388443396416193227115412811060313491617579525973816332737128209655387485774017275857302235568182780853978548992773060365111546432630570074054376240923213637756380805965683315641979359755608099612137807714830785695664649462492502681551598051766978288303526200488147908495143537154922527289426601173466194362437630366857236540425367000169695808472960273092121196762023852344500858479540538763822377102040296488280302144128835962143730301737722809435839364088690787963086376640291765305458179702264108488037628886901016927304330148197216478618000237246289280527464095916211472227428141913220563601947392115160175317106645024901707486609187351714461887618568113474656768411449629131558537942132674073325298621686447152534632125317646558949260337563146947342160474185504489419061247562231056048160239757210386229859216664231872827894098880982856872408900922695170205883732380150714998023923104641794038525083125321083102065539145512636390146078780838647728344185136786144328953546947289509404856848237642222144148064980826407084149462460747640411262387838611018610040433928856065971711147068283407950041282727957749867283300785107518362263694253469197345744056211239383718138700561818319400388584123605483253167078432151274374403878276983478394381890048556310526564864649820655580889357407300831506640353483461918893419447299234113416069924313020163595029012376185428625499270104182111409645489306899449984792375525779450342256344241097932575499145853791592490267463338354972165075019163207004588044906136077814174199514969733647047557341043480053949110037766253140603213077901584781637923947713494113806068265132144181660598233879420922563875675288253423043878415131469717967781793907645633707762088171109834194746517825322966814052746951370959982255774746464400788899382008221070579473242939443350958433551509340836011549662802558371148968201099091648447287871798473762324846314227168422911104634162399360128594761215514306812130580980055346707747219191856548590020657179451161110961124480226445763377252094907997425239679032920672192382723207301982317505786113236829545623547544408181049925270211457844682658069792214505841807154635665511187722358498192641376894240729183712464075864320546908659103817385255725191558370389798241854451487293844769787930576258215162463788798169076297231932158899725980621451298752703497468205113416880820018960609836565145235561658822225006839974029351118876891333819729878777887163900192270334234869588364261042759537222581703449397922586619447223784910520293613847619689382475418352958870622901319041171801495907621427478098605526057660274478838101591108280242828277682914166061861926370128144037979111002554514919494936911979581894935117334997900750048238253713520837293096122250072977083494181214818201843718848853342610022007167756409937323623531409334002558484207330818856188335752263369139435842511226557938127602793653644174418448061422252685606391909779554885372768084999122206175792671797199243134509696941329990715394460540278121076918820374546043207529796940283413489808229971326323063060882198330920572799696710008750110346649438270905626814414965051177221630402437676857216049827881228830240855590432862788962382038327845576098557455956602685616995689487893901888383416520100596794565670983632780164850914757385233853320992586605835854148759222870591064289616993227325826006160365385986701059457042192121118405216617409917414272067886255831154319370483165511618308271276993360159544402994369425035794870404229288080155804714751393551032462028329205528398548401455677138906175987552476277292947698270416292890540196476057249392783155156815105657935818002962444959298110996725406557026121073427144607437471161933968232526139361016290917217095298227596241093551631360238407200338580131152928322814449305655889678663966539778374672122895072425364587849845605645010361794378960879766412527876945192107142067610103717083181524410751942422197266811961430992398008132648721138684632681865108635686222915785916461345282943264919400208538965624719125405498971249542481599792688033579013929929888828041865267217300186605978404869615950359780209294133039613081730924270691274227474560384307168693899865389767939520758090100929945776268963451779390390617929255387538651159357773407440744770249343396069538210852719432097718553048325836641201595197136412941758693618899634057344607487838234281685923028823779435006529003479026085159679176395777823126407744449361702352917389205508946253633382462311603878510746583556350469741462635156574565302555410440970036668794387483903416736037757898484106669722712885285715198692940743397910952773302132345397766078434546939063694679548297255329380739710116106205565768495772453296115011130705421667411011828851692683037590427083897935581361645445718593648443213689195448733761868786070443876676060620110858517824924163410063140252942388562686000575646769788562729243246628373064186353934056007308000588150571542446913817344047221277813268461518855214312542069406036524798647402276845531499028312503008090533508040036774590897109043968625544190759136901790758642541932337108998874565065791590801616081999648168999846281141555611475255371816325770273626347924869089783345775112590096581372714881174260747790608524579301708441071259938532501342507257221572142460434796309344022050372880942188621582704427447415749447140668910496676683428891412773986664957928159367788853022334878461329324544815151208030294596374659202391890321494348117562882935386505065810539395353384272385417723694305834750494280757243453167007604786173812088892103154505341811974932158098149898939697528394250141781699250248468677157910490326560433885252991764695656380739939107222098663900784131571286181731037472441769273890937984084862584562809619958540167252122238844503216160490858601436380500774336403750618235619298210165183110733912420146667323052012668205654036523811062010010311931082637507446404285898296143360547512805742295356244317054113327160615168654308111102570495240260854461415794135126373475640593813275776674926897338714544342566090260361949923401093768965051802746713056655977972611270617089498558564877622618449892222392463043810879662605892961242904123325017506218702460154413120753238962873912740819616391835404254859704754243283444279160008702342902630049859100489046502867874016129754258676056175239492918159620143105606578220919208488284600104329614570687421976256686308371673229080094263997338687571574063539053228012573574089173771053600733671109393355704176580759448313751034654426030656465455274158712552746284786418746414953922790861847122372657313306952728279827993891633869737858909063953395191037375898415812050012729976111995416935666457486625034345784125035155084172413266216480405737354881922729926330930702077720426111491253794879058036638977469907763297211854468022530345844733427521482423858850349945843691523481322516895441890920347459974121452849249325139837410102065283478412843284270024408215711945487992783982988140090146072733565726608993046510713789754882117264063715558110776989764753994839943670720269667638308132555355540842347546167440146534827390319328032471956269770278749490378663222202117783972419751943154583522653224689891774490093759947919415667868181021798373619305273094527655179522610192355431565962593958439662980448918966002947620914459829051152873253108066626194614874508252808266368047513141129362781922142624997636682795614304556990526397912286558395131281494213437585322253169567711368503623374087227348894409780557061882776754036616103139693123200144078254617575063899956797869028445510969042739767406190895350150131468155980310147315114154267626372228185608740379074313264469298755489994268788645627877349250606737286659584188939688170369889587841670350331393286370189921240044468443878484119688511239020219298951135222278368298109620420907434936255374011236976916657157175272913548794134774967215983058855225584145867376467059486237014654010480093434759598962989133500161375557643135459292115960949137857459359292654592551922506750750683109780224445879088952557460243848680521259155539856506927916570819204617943687007047799825388313638632004173722153754393633678610323427963847205401606785361881351032247854141808166872250131343946822702389647085524836758238319799179016452841253513071768018926285173492541069354759285081815898930321045560236928782773549649303802675505902991401726603704099844999815693933944810015198874399620718420537079385625219706055492804541280732937475386524013812540479484571955972536877491998262504234084982155984131595789003136370150915364374435605424780651546054163979498743464918715497582080410996514731398862241773921209672901069972839768151784533790292565215466852829787509691773546607789630099764416082907785376885714874632539637731478062429739408058115755099444184297828829736309811666334153109847456463753508126612337816834272764402609973449333757854597236031517188595159955352954584042147007830350620701353590382307875527600213610490211410694971176114663538037791546439926365628307068592537903743721612858995318053096897437877336002438420597327845213926195557241640003655395917876973555095004045357109888645556894420175728730500959863567866431489989710448208621770799374342594559751384454291396198286085134167112771040317389722837053092825363226672490765730381270628012822679054240228059218902001101661088721828728992892893988486570173037181108602657364568045597671459298358242571388058187074133678256426875316708630627630224192572365589110103839766977972115273681553810257253056167638291899610321836224348697209854040178931218870617475385278846320041691009451896922477864129216766700821074761695330982735349987253204797997433322324764697860802520513722904943279450371712010063583405940784112008102977470085813374617746521464089062558519339259436283816687956292683666755214523653551553375361464085436357002916313276536412807322030326300316826124643257342487221232645587634144373401733667925647068546824855741330083465191216184592648584217385986785813857953567585745201187545213917226689169700444952078675397947463303109552366762217351491433676265468195350966303849118114722591360322892901751782422780617772603293488035512616560390248062291788265097249582599070783812862014591119708412111385650762754042923926697773047392183839450335989503074709767440604860788072164237671195403329358896893139839255521603702461784569253446891160630600923196134504129533974282669351889419420911522056681110128456178285743459524260016867631490358159790711543444858738251049834776837466366825018697396970103585733253561203011953250969214451522915936634260064159968905007732373357272424359578289583955296879961739743716661393644732531113670806328742575397531939538738562043763827560272378964248135079140738810452260272988285209769529042266211460961189129975455320702120297293171831273927504132792043871287730257248706772732890711371376505566291177435367316027686065726310628539937872093805867733446904911392331637747781868815040935825053652004861134362663807211335358632461339405009865609031732187113290830129959815581898049735428063380089858492453227801489118497653548985513382806742849946079401856440536919874803669589421149916973781236776661639874012170382058717011585547691200284489841225219125802133653501940794949632315682437296808439204337611856156851047574522707125849352696113692866669651877214002374650834092005515755095368967430770784587909122199044204602457395940733608644587315155903484424426988601566876103317036194870931379167331499666212251693737316331079124632999006766116353423288884842584605096343566745691338678122736830995044813953160954255083291510921781341073745416875196858210086164447997928396630753011052191850018859273785676649914654169601633098224677908729337642708025172589456905386774939184272529801843306612652500089483375205709143581016473195263454617608579645536043378520387044062619572039462180748715262489497665869232093619208749475764314989841229062642980407119648572655393269850342461976168372239103268949923831483409594458390054078272713400563662498777418263987164663502972665968078829210253162183214482347467519750862730621432789826536331795800136601742222049339544927236579932995952897409193779959114187302608583268370781070009637261381459526972176827201618527361305513434663089180960462724189126321514316044422414688628784431703311150778455692437544033527196024127075644303330409133821328459813468222764366697862903388107421580812256859422723342165577251154697974475933804897846844900072536865429754726382675270664208377328559215204942310119621414781382712405291196099192357988089661077256384772963070722578258948590993845147092268712987553904890195022720037749277819849328400358857349801454020314190753856463562197717991118416297383739649847952119917567568989436437594498125868191209368465126084982837247470207705075740660703261456794643390228440974754227782678858549089013928213381678924435341547222868981492199196372562133327026895873333331360895049560794535669261550186159220456743194147680818334869959814375941779780048694207764110816476582613637700897043228248033802325688091227814572489727308152309161983293971155723192709583236279892159650475970367504349379188292245514969966057656919880586091397063819405593208368472038446849357825919094102382008879083486874949524285707841806904690143880843834572757406781538871794496630813776867341945585101823193677122374250721120623752882455680434865475507676793173587647885272680849021578145211133002222937821839197414680371266752817934748718279630038024214947341078803666458182452965712742834237952485098108556396497663898747516619281221752380585757554596436198538721488047694385624266338800580688274029367754608005062434073524780585902806987193367088518492105340890144116377815504828108817274555494696726205430192990220606813981508352976729875012828177038539003157389089538502590989587374210114067807101146678746234636441876936688521069164068109960914454554679979888622221259511069969765766332998474225119286930127419328563862861178244596191164246961991306891059823537388658391051999009778342542060656091137607858605210508433957155263896419594065553661547391451303959213817814369402086390120944286274290088543942665513775563534489738387654808698995958858548122660226307034790948599968122129078322012484348575775096511834925103130789422881145308817499003633734685676513925024802285131835688859752083381854293621306894385745405859854470303967916309660549991466855889878584250423200610187652558631316987500889311539373965548959376099881234757503981493460504803819833208841296883675032409316425627336771101030303347632682621230507101142716328280544453905214861940637882953449281775349453996936714433289522178740403280910622608461381915166188016009822922968066684633103064501007695673660973492293681634343822801919951706939812068922624442529467350975726522555166302447977339302156166156680453838816652882991556543992490264927457621758459426582918431783380588845338932360474087039593339524683584265654400594053666330054516531517022740578733658591353869591398061451469940104594048109412758131735619488547365222799711700022420643901764378835489239698967786707288511949072152254452352961174884137616173892484363757718214291377475908508833362403591511701352864009091914450277753929898944618843437348570757568090281747337106946189207588705566802631545258504472049256931128270028471949730729232585868203864361079157734053108132007418779465081870486816412625008213739458785799759184187951909540936423577894488161956161216287050789404152990877705203699287037575410282224910239920543894339063547102846665513229761344028751116435090791700748740346620993446362545506474996610506490755118936997821051547723933894350432361417681685928756393729074288044682573417772439030755032657965391501968365145045075509527472331117061906873828389399891348221482267070016669455441738115338256614734800062119071024093948325899801233468029077696770296962481725886710900872284222093788459087841340855640251905892797343310151961615571351528664852653857000380503389893582919824130101594597716854612831224203965129757158214224585911871515515494759243681328399936584006062520187071037839047172558015082111711590589602883996497739159070443840535812034420328751113512306364796194706096866133614914107895361130349152460871002638513065572772081910706159966635999888913446690396816349327324463250536134035220047240277279127720238190464401925544024228185274897795427302397264609121432360141173560804773697405244807160660800048338620293303571619534491565695629247228268691935528573364653459910650322859113173000635336156137586146298681766115033041289615022975110137718934609302342532161664370141828013002852057204825016060301301047809395516593705494962880225148230775451435574036065919134699760203276120386610793651794115674776943245368529448325921990743759830671948514280329847220041892389435306655697124370560144483699212457130931098669165624468145505696454509918802610052159456209761609672322897181189890560453809573121275802006028526297161807847536052670039004447303384406145811257032175371544689133466708031216432964689958710864965260466532231086648098956234992313644126542879544356574712187865261647061634469907628195868193198774452755721257393073254249622637216759178535377346223515351505968432388840639149637941122896164872708070473738798692317131153317246450849270968757648440120504814562146314471803784425901876739265803599659346055711834301867547316668844097984964623338330749277535881072842309994962497818138506619807187141342481359407249769503986012791088950144487004112193479217189448313368848239062898864916827872417121735393758821971596568051208083718208934678517065690223509981540184953554363746554697205344404479865675777866719595403459874256204691864329633688818428388086908795455777479379546708768242947169675084268299181142619340268661237596977032900866123467470060057300101331670913160503253199177199327343066760210148108777009914472358343291937528573500860817303739860070598505478713881845824184330316888574466343280959190657880410243879770305351566139456082706933937184352444395916938571874821272238064220972009783081300064139771598924114702998538150469511296026705553367742187213556001548965984332944896118785458190335064338669468892660349729760715463678516220883126071354210640949156838545678678575058377657011358818802264895584014941400211895337597237462188652766258541720316258704546513632291210516465787230239127964655203955749856275246378125367433610910100512028682779671257962073925304939521022207086462417977248174849337077788108239378947771421556507511838610221940029487024289697458212033459480266215393913685297329973586862348646902797633058411724594102076860800139452776878384032282355946031874281859716964923353972510581066991079900434955710777007204239508365366949447107899788695758471601897919161044981386532133948046820253611099193705427273703025695993285236808603163756319726215737587832134993003031708101802316684601334066805139493765319907674632737091243403051945281200992990927850463827635103486838312973318879593838034825357994248834998461566548044701439197344314814913104286949447811994484823566904794023794195857486879854094807745210105072832316205266114345479985669646360118260308536014800960687087719682064186917896243390512506266016620940783053887600418272743427250050103251713698641746853201837056587674955992216628055456989846345872415324052899291854063028841278482071997929734471069653505136210944778004402674700631533634520074150225329818916898909302940231106232735786777234548400832075331782093987477542898774893096919751731189359723958105186942241545882257666167608273613180961587119678047272214620459082967542688577448484835100912564196506494039224252284501892519347006439193376801179411886860736796035880227910981681106253903172237114178231776352985277910409976204363733003655254639804384587633658181374060697228368305276002354020802534056244189819437022433244536702294029213685523688038010095000999867581445359730736907909532198104982260872437327047779863984267090121930444250329359494069035435305518210308614529341395601403270912544124330061834341040749588018297647771270283585452934997794454817121051083156597792090324348419525388996095131830012050337304325577946839509149137809070090582564565580918487608661120795208184133323682142475358198058023777993044059050451502957952548686982807600169983263052983541979637715834581193042432081171353720448526926399374067909190756434882253702267953626649809491670398897455327117248997057756011868963986111654417002350738573846961974754810245728127985035304079450481048511786128539460739094164200768370301648877174723519811816194852175424915742135807473811551035887510965498179688964978545486979666658304816647790907640931466107617993906244009247256859531627085005124762095298548299591894407619167373373909148842795498604293914369524293963447734298539592812689524638475606383654161629146150215304347343935999769050394034910050119673196873084591122733160460179707640903180910560033038065330742550432880317779104360470865361897961192704327812009337191425581013017879560398476617110856044097701228548058851654861556903373613621797212465810870867377799018547707148481709037353039460175048022283682471937243578800555190910544749777202716881428052982120766416928146523652862369492042530472801236529863177176283124274036871172058281684067321784000892750212538070953585462699688245135079486648839679432898134179093419145835516536190761649186684118272203314899880549058072378765742873658996534224980362802378202369494153358791634380567785459081993599081269129829952469101856079092955734973963336221070333211622349757492752248362208711293990137434191830630159592464202546498066262306701284563037352430324616044282859412086058156423168161217597370316867124541399108961578827722497357861140681950383587886738420010776846050687926287257235293133433848549474584642479880083717101164075403281362100936515674621875613552852136151874809995151069183543463609304195944519025304242619438343344629898086129068934567923259966310522692440914938936811129829125175338637077773711601561270906764778328091986637597870239075804604557938889579534478235452062226846474116819063873348257917613919906584121546111956524043150334439342036060462470260956858517656889344688942615299907077965973314839680149874791961703098542605996667055541511864175052619352937320299067336114111592337722688471944681519467245732543667004456411928899896776274475141737422938581817975973118519265435786325313570215907863150095292569215555329107130109137657334017644351800465773953935659334421742613239601052385967412917241950013735097335882554284582742074243270825698359149322950037712846784827810046049454509242876517184155994221667891485986851515559991493354870819825637109103906722303892763230484570508846380786825949386003333792076540808608876542769631137465413317630897310782122395675245662773479733793059950703201546102291985231598857050822304233493181447693646415240279232824106811825953646810079085494825278055986571118806623574844785831193376997941758707403290128006145366080013052063146245139265738029015398670415533659979830154959756198377617892224827836643153657698310498890845122001727068117245829699054619444559483091219841690011452809632481488955817274954265301866878700539318555181556975018980070463377741902059968657485859977619175994164887108109227911103892594334390829830291995052187413241294727572122280135736185268677379219080972895276612457620630090161758057925120014318880891916890038422294402454833311419605181372133575383240932851178378048232645383925326497833281055663761591126954614052889841289096681312287479296628223555567639255321333251093589230738701808068163174991036817927075926217030710031093866767213971739733831317721246477542108521494511458121919196077408795597852388917017361146076012197314652749930622740861473992915464951505346648951223287821500413575288850262988185327775088591869708999589694141809054763820418578997447344861848974140752026505695730589318400868378369687958382435789626033166075029254603336333252549419980319123824023246409219057331177073412536423170806523916472309848870809482762419740916306026961836208843937773895950276209644250333978171750425712848917963250436860910358784640432788553945079709529798626741459959286270497926810220203376735814416322922646613736243301063215296587894640900006864057490740946589060190174616788354886050776563189960362807128800514978717684822427157541144890492423302583258541922665727845891917691112893713544830872220156890002479477395262375493671579059900672884678720306224482524620092619775529979028192407919885931749469565382905263427815104227354568762765417257810288387273494607061952938351617606475966758766448526234497506024885180838796583719757354478247858607199996923532784460162759906314748980082336995450130749491638946114863385861294847688722744918193424927255730142765548064785563224883071519789930311550477704711349773792096850855444606155719115891905223632404512946177934732953820743144973537225977280674634523447937306144741987503834804494801800176074498351118871845990651193032920621857522583515098115911969398048798533722907679514697562463450882553209322288905084762241759671654499608037870453718158047103449228074551106496082578319921452778768413448391919427317282862675483925063267394080666724267432636142476273216456047609283285872775918576319023609802105345076313010020977981274799021944203193048687706921865588275566580164424782687292592426068318029014862965631607042946012086884246942898636273581559722705508012681341493245920918851632029446385658564049644949447776745275070784549784535698707553341148882665672100517666014671059444432228662559497397736245015989530643912826323735366376295867016095861886505949860737143117078047602132678402956063056975844462575277322809152769361453192061786002332272766053324387772962355450612186472825256890741832338389366913234132968791215380045495365882982743598910607783077816522790431180720583212319123532266956463975633749442475266572209153130769637782000664099787279545379254125502198067833625832416923555068716191888363199184567329729846548942780898761240999433689461914669899104574849053818642121838787978444798817175319988243843822378725278425027902815842750418634037442431432526493956915797868537460455279490714439789256893082969703397189586927345606886159910007116529662005271794107334171011168342373433256899243454222945373961927269438028117810327902045119681531637846112239418226037289537982292257247222359871380813504494728557140357954971483076084355150655653975452406894817113662460403095096706246580643035464558023016130592978696607755251296399306366810591855525274345244594339324335166676904641647405395917678135381439191865715531413206520486101215838193813717728024014109909453636725886989094269640857545716968940503198322396016793373502556105954444044688755594229225122446362193445139592656682631829654080977990564202108719610555992887357581461812097454458353384864531443162641781665815941520338268997647939565030549718032671966675413346624292081772628396292938138759952287287789355660075592800711734558056677053625272584513725626602743406415541277286803409760568606611766232721402105551757979621845081470661019709719162162500171819750791983457624482781382671794961076335400861618285018522333520286861676220717131678041886082817599575699758161237618741826875400770658201367270592836177227339835138489224549643715636653373071020055630728943995408815888155037544106240464446317252560004817713243912942954562477692829940520115846757498616428469139514484246738763339923265991275047147266431590045251091663194620521248004060275180820406604123952705190877972905912968783454682187831688308837279488175125271321429096130606479045160869126499383506249943872081825852263326256799712387987943359264499286841816835623079005204969954233229241376881968467706355184884073604508799603545495674405986319872891837151514755545363307109451375620690516900129872350298717407698802936771876021712924692172240316265536112123832161129738905691175651251580944309661645686934025959125726854394452483739661458734320419555021403117683864995196550619665133207221895739206655728748891048451157505872047745670883176232437798516189235187573644508586623322553589412168142951796314399915424549918235973572938883216539399181959982351064758241302029776530681397241127593358527745880975741494297422936181287822139060350197193071089581402931000142791871071814290474549257491185202260588971779524193394832025858828950146908198315239396096184236393495563119205847133250683295869265917921071180113641377231763942857620005520119109777105453875023949160424274508412638391018656855022597357704568482782300498584502677133977262875748584121760658977034924905629714052529753351765152794228714111413592573229023048525605425798917787207060826253134461773088928635255296223486233938148794433159482757007908694820265364822283865116299022875042397574044292367197783033254941142296977602409845856985990560493163240335548957591549842075260086143184172563926022684890631326799675981444167424521728861228065641515266193996173470953269849838732623066248793514255021537406022169526800559307336327078621645915739913869593062201498494265749687041359294562770934932951383456436296840438187124084061599733876028463790787452142632129153815830641226354632995886742521606623789634682943590715232583899623154157853411813888213302580285602793480617050572712629252399992799682291744883366078202795081233162848579967678423906627534692126878369528567646196690335211306304978934132104252469720111658128644332857488976685635684329540689392496715848454589959228999131896080314026133278225744204166253087673659855250209633140843582629842022520627378940138490169881851415678615008658731287302939875836989551860394132262741842322893207369541850349451679812392473418946179668016256832368801550582570603733140235972248583663135861084734005532824816014143153025567311112169878464013325051424311119567613604990566425887091796019695310643424277082139909444775215216662485727331443252174144851076126328451543431311142021361241602354767804282314571492797632949971829978289223338112599849477306904544113944450603276572506894214380847125446482104439365119801817518476420553547050761226798774661073332158935667477916964062345031959744986578372520027755299849658373845040471005883798093231339780703017042870710728928257745732299790097850969008474679966375958096600431921179439305371704134539225323803962265445549350694237942451037345505479528667414163435818068467980294301837235899088918777105968674986962041972977330348124282049209256300549183154910036135334521182445132741763829881735530211247936787239388741258603153446342844539948026746030644874605898553695107731040504859316830508273776194356140630228795088314667540509944486188778831291628236365887828956966991148024662373417731779182212494363520298737174797471588862414325831396517480198397566910493989569255865911133209103451790868067269253361163429059566036479834419335871443958444378755624128171583112677290871919082689203577692941241098961157572235527091978186223083592182266908307254457433493479188101142769523367663340251932992727528839674795539730731940787274216709438670649314422952294136153210504421005764187340756767971473262234112124224967391511857877264188312951454035796585643635094987596501113017713395678011948943043717069346905135109068117102288018484590088107187513772540461626919462427278409087889603588972182504168763603682978700443212164677807648523494687441596145380460246774844627232153749341001129504140545826286896588749924744388072067181521015875853136355985230839275198806613027638723276565735160667194147041270827687567914357247837458667062981128062675607775161997008248524363370428626370686072219767398507386705184915245489372877820996495443870314220738229642822337397485054322196818010120556517237298060853011089492927297279145316650686261839235271567461452992514675957011145261822648992806515144233022584262063523267104940668706551134361103508207544794084675431648829313160870419903141128522506156479872556711283546936618545883535780342302209563249799153854518429364028571443060724371907266650306502642440616540992097469399619912061411653720382697262608459620648767965748766510541115665270386542942436786080592763608731797526300168260627349609501597173421133929920254911317434956448092701738483744710713428225090043826252116601388317865886222895704921577245630989041673478359184852115165921268605677740991370050767651392396265011193112856936019253762781306996933941049258357959504279205718762207096309907313377211254426897171151121820662755833649498692466013474394940902659261837556652360947874550879896653393578160278251802662602150987565057399022255213127792855972362415835383238134183844284104251602615806606567939597000840176291222728486353147251794780145202469020271843667974589793821949985945721494624151833801010512736334846095474398097743379723997959208368541768574636283740186107814677048336494965878296991329062405343302712334722088910884675209849226191693452354472041980755243731585861370568885504846051183895832830127257860171307647490988715730464341703234876611269020829235728117072155940028442139442302013166654127688622505106894482178958903135241984158830873414002281814194952347366162309383303142877917429612516518327303824480068071763104326423670352101927830618295379566436613829274906889373585192441225151509868414789719778282681249473136897749004611094661049270645498391207219130562377778418082011574174954007521879938560600468649105670330752635632146845634749502451839802216283886109884568489808488236921030737748752667141129737307586055427624158873174659887197817381904082489023683953642558867405448980720317008537393444738837563949285799111067159051026906650551257712886086348148244901734202915499081843530520806627919353482903503102040906380687812134099043617571508325488099786625592509436001056363585831484558463206053411087541867847054139877687502199613463013443226488453292006889716274551786474156472181039041535941715713952931466416299432889509045168158210171627251314524707847766660387548334459736409571311367468751590305652799590081006716153005692270353388978722334430518566750637512527748287784954851155268121005081384226545948991268375112968604653145480753565831931713172783991886421264573461573997446564333902984753362333087945040931266208175337665024456211344835781126038306435207252607007807521843029799201548006914270856341793916179905833250990958825584037351832179757527684172649823542566590851676738191773427967179790560184079576625523364164509324749175082795634715564091356160421163279959272310342929810672095878747027343632377195454659752466961259376371876643657479133490503240212685757790406573472951233540464672450237507443492374151883971088642323739939965612436027095920562428203327574183183900181569129756133288716649434606115604740124907010688147590770238923842045826273886290766228243483375193733611952476792679845728885173146037920918157128695316299569169590200449437838556389734156960977076872720803762192031649149864338332932491506166272650939190318010295560046932336087720922833447195666869313342845022302590546541270187831133508309576262445558818492315063070659514120370346710463409681666871212534614738629738752484470019657881491806699449548442235570772798455002973247258692110067002594229565535387075219079181243266390302696978690392587826157851851113530579034881422118734479800286814951019992834124646137239972744316521194135933626110821725848665590056756095667057784381126986327544241875796514507755584868047967710449050907677645657646047904603591873176364022702586130910301511562386105846682105866334393478740268209065309542696012081626643876057378558484562604216338402320293903005326003809615201391124632634497752675799353563292340651834500375226177124871679517276769011876188389155246009595941353147997717542413898181521114655624254035687094778132557809555028008022472160838601402674190647004885043372202254909472556080392661570722784232535264061298595498007842606436230001774958058972801113272599861608987865589794970917571044041679149717993098981030372914748206416462390910950495718365205451830214987686222266230430645667009576185991182533982454602478221984175945548394116469392974181161731278908829121931740844582925434300707151653579101176238047483171980117335750040124468333362979624700190326967744966648002534306203648483074065095848734894155516574642875556987076885496670412162037947844316926858115658420060277207470497413100155640494517732978667551578100589773439789822717483836410390828528565778323783997535735326281726647846459614698119522728966404839088574407490708654577284322615467316635048774963390767903756874649835682806077162818230015340676224396615768799903666592739674394925423746889167595938760325384036166031394798208530166333601723908009336272170560968589268335742541753129074030063404609612135971671082656939807310824130490774539677496720448770442854702467614073518803667010519696134093557322077701433616649067706046707118036844034097593889301143582700968472073697685688121144765065095599631491685990490850312683174616753297630158393952846668262268455600228710222399099668536168301038137086699250660202278945095677312010046562374549133677881724889385433007312260911917428265958893556574780886074869981187489249664742881378163353177609631921581296486217571348159274118011829543939408840989050157860992856552158584831607017758717444597739693225638480132690031539189675749007538959796639919387459195379162813415904238517563872219994671440006497674995461360957623271860407757963768498309470524915050328833630680950138686438722130201971588900321950497530439360603004208719211433142347102539183135148338684631360499874585779884935221181708617294270805684126681688490986081909609298990782881451162874686670977053252981607233588743951180848544690530112117816017949712146313947439596055152353815749692396558426990821885034166011472159199794724568262451925569944178587942012646083472827438610218717044017165595044473368267494304782072510139777490251182482281682142741190977515100468230256763794936077454359341036682666745073017950643966560949938464629336611549020480572099566370420961375028145055319784010043113342712337824998945389751172332893395411757664987436449878560659089150615621292795170242227670286649632374923061289015003569235883548537984921341099606170845004237434446387193168864833374457633032586351411989292418872679086427796911239522399777600763582791493056998915721375507034302432711408315430982321255907992491385105178481937998794377861182977705912305033907318715282333046204209380059238579299221978481531827334262764281801025687634428889765657172675620097876060753160917281654216777437549806260900671934998320644444011987947147662608202677533362338862962673172504600372503520808941348122084921575770966850198984105154150462773670532562803669503074757698244026715866471198417851862467915569686524433314057279966523742567901877968467484268892536739593643072417137052597351945968689202568398625026103075276930995396252310340123852316446029243277360061563652495133229871879798123933438786786636685073739986678943358379731918348744803438201159210395495154734656501488541321521417274269006274640046393394856306702019237851588260329864239044602686843250364422279221427953734617989343537730917995819078478027444684782065587162094003015485977232288633025697901895838266429890612578115572355397362567782775682687792604259137078341864657007004312205116396995663706314930471885072183282497294122045364497901710161200777715608130972870659500061738627411480984761671336296504548211628851236344771430984654491830595447204990208141613003268095969246846970807258027203614461889645551527597071460470667015251567805982820812732199274377052981978507761087217330404568723875849164352835268116453328147550365688273634201220036085754306149913852705874530304211513452719557492855216117607202559613827146708084353703967980194791904936093965869333978643443078473070742375248837130705432839233223692520175531284231747936497858871683073640234404621585810961922255370846327764997783959992503403064873075620338748275134825735020590053893170523066667121017947958782124683164380942031010726856016309151822296683001505132282707419992223345228517804903850585588911600659312940268347044921568182493294627519681410747117704340905754276223454952372986875236890632772879060160792153940402512526356947735447129568598050621316932520362906493741275104027094634143473491074148135822883206446480177864797494771728755813187793644814454191263134516904168155216653360224762067205866625979242698734483893204678497868840953981716165901324501728774681961217325459554609171788841285092470809196849372702549793342523326330182761508637211383745427732099122885347207335236013330342479331365651047730633855523245205456521643511313252637685236944168312458920269824082487510752304980926612768519416217590778345992523227600342587344501739177708881519815641470065626426537207240847354305129592092356128664982716151918158255671592932065634383919099822451333399081567994370421231368918233258424342327299976443608446763877936827057732638877948067821924328168525941481034683946296801932339772610664389258409560432429612590061664420160283971182093566309226010920837003995211608953580550028536923743403581524425564839597539055488666755610463526842725817251980410986829492551501644976578504452576834023379361514029701701419998486969469131657727754373621099606982738797263339748282987996454224311390200327401909196876895599518470411237398674555323246281488469953651288636597977466367932675155342992867706783930151098942006650243255223755587279201706819030621122752926994339271892094522075163266932826875923202390023853532390350308559528339444741190151092597203988899554386287512911895303362157194928869121215620265225261960942453284055273008329988049400720221013035428635323641710988375795913217293678119601767505469809182670754873422223440041431988289339541416488438479665809966462932326809788267966160789702868827203391923449079140573107635874148495897772085157673208555508945407090481925391391614476928947584682122052948083338639243989960914459247909567883148113528982216630632302352577766341149955597846369176011817929624583714636139033884331519495046658932378872356551225318151293377110098869819062730583847207551210420047553757599533917379219826235153224229479451968946489045692294376150266348094518154583256612035109399507643392731650156921669358311382515538082285646894942047865937442182942118361104335991655611896921332557360207869312937020205926561285082091648745748224698324694659766535676060011025016747625101966093555327356228426857179393606465077019926345833501026125495754487765927410572438603562267349997073555976127818501015197441324320940004955775030024451623906208249280593622029645978682219844826774331822653070952120976293551695499897889294570816937082629013444109152961001804710459147551130034101712722625175658962900457046436704315940100520682400133775350338037485234854630035796973150097558170410234841195608692351350030199431330488727340465017976564264899963587735638205256716251105810968413627106045757337242686739194212482719507776790905448680979222922067234836625563594891058022838929339753515978445280551671759984802450176233679031712089842900064586572804710692184391677556515813913837054640122552151809821941363342657072913779409283757933599383915860279945933895968679472180410048412909944217369754128433955139138784206779033725366643654447706890390845842368999278424840796305884926822901531399891864951761496953768367277856214633427851472048971927481163159045974810887586532588862777656872837765839672707477967895012033803368206821407798574136859995951795037271157253527341717366105337105094040089381384158754403321337779251156863021130803127054547344980094922463063495366607109991313576330048628547464568665847403721764595723233619584332870127432278477645936185404175884528953594438223230685986678770302250755678510132968499590340242147923843561698556891684217616469594557337242368994326649565842521174115001499904305196120595480067101309332897082606767465524090702956022499919467687173906472440802915362089296905648312172435434674046222654594692778574560364449573568499313111754833727643849611104650531660391032458936869893973786511339045820756454654994654896198950923370345714600064950388879684667877929076905720836580073560256587629616542266838165984020945686363484214815379492801833601969612141132425939271981366564823112035240039412136615151451679658513137368609662521023556622618630300161953035589131850182274216062292854712379576528839708546330412888925074012780864731946475785779681799756334785822919341067094408712978972277548095704212996741540511071662056357837157334620447343888753860220475768930577788527242736355452509425763158215036371142472771460243474413899852468926116532626240771929037827392922411226771980900392900143140208815989704365529996772146679770354630350669044072911829467152542469126655135294021300481670015230189291833664800281756589555791790480869546199481493583974176943885100266536877956504778783410923680461308925092524585570686395466241180464150083229607939102023073597336844647572624260863412158497930817486370703359204471642112417087056436319416974739632490620306125640556582879184192796086085006925191437537737884444259979943707107831427333865278205243263804893634129051771735873851617223772172247375827058561042879704127788590273368577441212821235554802470981656114053127715878305365531719122498663222962937659215156860503680727762749589053743349710160676078223657306644936297411894716126195665350536616185701741500540331210110665457732969542170876068093384239704904872726317441173527783916241077957037900282552247829759030282294133946574843650758837659900536343406271988863223561232349075971935333801164352484552733835711126453554216076125581655473573586665111920638791251721705112066645497270467057965922772043119710759968491003320836248367199605629230707779529091275437544390621632243160481796604929674636271675627169085456374240602171543828382904553043008412719883510770087687701878693737793086991442894963383292388214570357935556385641251104840984309600125291118505149822233037142450757159728903512432074037269100605983510377772125193190058826447878849920467064154716012831340052897960608768909958840342334086646629502447305426481752701459486186556994143393432188670095763877640944207807473635182195837514051015669529084845346178586769160597780021912601592619712496241730784564899282085441610732203089432408870792162210392240688792614717733808872455802515513622591974332733215749510311141262596374440607650910840501897113541633821994984677921106180954684722239538449496270006246242758830168395268534605657391038380271111733565248614863580607181541936266381659569873872643107334640415260596735839284620096990839867710743536770121956475637967604494955141834131883024369497467617505349917413544197388823842317880699801203114798278213862881282820446597570142405078313055907913284570553563552954877803073821797438434058108300520071962078545479982002050324088925869360287182922197011296491722070881710211524681729763662760128805570798229519928730553053932530301554898702900668305840164958511298745433649809553658345220556461954812396297652473857306088227686911473010676978682050811310748595192881935477943204245767587466317236837464956238611942450521866222737222772282913627979387859821926369185945659649754556452488505196159037053917233210251637313873577444373973390472669460467617061114900125174193578669159263812542587859882866895708182540686156454898203093745561392694461954121973445520446811076372453050818547211452035670947147584321384524529072104769168435333337835862250786769709755556883149929785852293502214495785028216522414732806155429142432319921467932143150436343582230680704281200653573390876113797251815659999853583806681531338243095294906659404279945238159077268371159408876558430842024635028886904691120418412178921741050968532737212052570095141181794118551553118327880323439671416856835023250664007408057484224819103034796860334552308731147928095052901537447514655654363421030146826045951100261885868347069870410235451419290345310311925256349626398201635817436235836064124963892981484517522008662543050759635196586525239828540352636264970351342521497031147789211764737411197365658949809711170280186135049126086969509652494406376473678271932472778814757150686306425280358191511751213732062890573039821765615482170888282390667809756684050540726476420358694043772629063154510981744013320341420161208980150883952169003525735973256850691887166966671574001426037183601424676348863108571208610075618571598891409196267535270208582081960813501628992072536663831977623576668998861950502859520520080344857823974994680464787850018633901723933563161667544358085670173568446667297024587255715659947230824465011905139405223714873401636120546735613133052152756553195979246909175025428635213632291582458676650585517462988196298810403797618294535014308051757044928902275303088804986742137250332062892528231815968410938167758020394284930932772545940829975979448375504110464695904547498116423954717944281057367117291132695731503749856463391601893441235897555826760850248621855766785059095252496221089441953692041186671723364528592755149884816932214996675980096428862447180970849938796509642661605582071230336864198835836442920816232949921897407276163223281194723663515420130619530906671812777606592582374948345304906468191994209307736159081667723999240359130726263465600062044083208596010851584821129506553461785996134077954722614417505713444774877715416452259260997233302143574983711102585193554207653069080595270356777417344334699014624514362678835286581722895420163864604049436663923699720843030493374503629854655536191231884038990150135188926034899616900437959577144763571265667763215015050670401548154082636664774184530379242181531350181478452168682782175119323858773534229939693680652606664676673205969850483972071718990398213242320987215351054300953175277206156707894844901649191846214756288908979160392804470556056978884562521681709678416014797714828315951093479013138483351962096138806169985186344643789167215198832320564947174905016925668024509769350706623083120182671906434582377825125513382469468876888144669351605231146998419175419100222549374997241088200502680565730442620607759693095454892754705171198738214846673658975172905982675974810436546860644981542279878701935003900815808107880573766866905293414548544344801733869277555884364022616286849146104567943396315495683953067251971820132178535766634107527015662194955387250405121658354916137444189943211711212480694709099326451916809510935956800351959886821684859922038813501000746852231657370312934169865557723595985877082946548143878958074939528244917627001337198573764939213034082426132817016429884764757633745487563544940824943531235315218257043803022867369565439896036480159959626845125949240001693472340572925384600028920097081033305419967699430681374743245694268745647101294803988202098347474294433017551880270693659663633757527064600463204843576172411987497589126853800536598007518671302454317773347938815411539533771017329387846431709098259442350489591368990423112007915881524851945955313715683669063338852474471140259366997293832806496622344016668713432076654261054121947025979690863739498859228156306324371427213766354021581543820198242965638754688747856581504036998494388440190306210150911181983220814578532580089051797329723944438622783185639283679171247548804283727614674938397829526480600351175115807520905074937901544703765410814002816165424592261111254279098614904121210851342822701436698627738073537013781242661968030965630142222803455077079151142017280754754366292620057006830935769630329260310384080033899343638961402750331902644118212644180533431742341754772214584898573627508851861829267100850874557908292988571086089136991043675441496436498733077759721574768209488490478440503638669070986497636348834575020666031287270327772837364899786821367996156847133973457304822402751545016100949163847025539701922783920571032786516716985490261015887564165396910147326494718509882328141004219810273132941172187943617797767462885288859263184018240909063073623408815116370411372806735371582951727519177331040756540128736109466864698515745988355013263977877768692229674589172283916517064575955674896278411942452591762090425495732103706059231888237876850811179025303879458163995048583021741127268700017034925534092365864991556129301278061661247732292804150422563341098286761655669465775937078963481397860512847252868802595635231578604784984965474779053458325596489717781500997194467817437590796370278443898519573790698675044144063781065802253395106146468165524908666101252276377871517276320805143909789416734698649484958772515329898956995473883957398357846592405081402503517099900872403084380869933298247452210247287405326985746018899995895489484173778517108190691322265654515082506245366586713416440771871823525288228624710686002802537488689670580109781857211561297386092935865920766643998557196899905817966368475934532606953985380987997790599302592512063267335795371119688904361562750357145805568460910748439085483931085486727252248943940302730989875486009728847391745971907565831748352193602509130568314949438258312141189161019846857344492506514377421054754470390502204041340685575425369976249045234384688508171129097609571077434215023525646381668398270268824443253512587326987343094313925245287092246954680504933248384767336273811226188348022120639614940875060774111729168858863396760622577090837259239006160298096335739200164540796716637488924450479069191376166950309330709646127112964010963774942850278821156536111929343891556193923013782120022430747149935949326889159483499114328192562748384239100179839555419486580573739262433624815784346600318448835595746970103424850757694790120330392075185677027158108483650660309175398354847390895524816833375189581262052759602352665362838185706488734830629392139829471514792111179805723750933997102581482031680464440051811563739720436328895043050636369087906590285371205851212481368614562445449391145403348317808791856964900442749226617899356083359843328101603113040329748563840703148092793902378264712176802668474069133203473475380570872200401817031531124141860841994145616608220564406888572344016528139020885191659606837194512379415677359753563427421449965825655204575727447086180187292617177471363229112687619114735096956490987048776653115033895286956260324093622964385247263827820638167152443157762341000280452204353936970858471557184682676233846255442868772242308523605254914359290868793891378637201692374494473701531605674182449336813381075057490077454466869874322226924982082283036943860917155325563607290291189900169657538772775523456992759060677723107576325340701738833798737701635872718675908825683318933010437764799601643337212694980361745054811474322890920978876249184451699833437284765504668519575829552324072543738878770992791210315944005006558771437602130360422797846726882101861621076074021755024596759981333784846650178497854600079490786937922248692518368820439225229942305600260682709815261606171422301150302120116291361804909487550128715531625392520829818916286202367989865309692451900460049551944844981348444087527175263115631261622354348494220143939480842671786943335409239212295142276538762556848140063586076407407879053545871382319957531711262491452713754475016217573593725308390855318955371401591098618083239986189871820362347543306906078986872957130274897075681123318711325855695789756145040135034486806435681474947974062588965811023747491633733947413735032639161692274237505174604695492728055798555686856911421628161611515663362861177295926504756895374003757239079045458345695588406043759295575054499139513199072803444530488268681307211544056400919788328646378103237928983155550815262969388694994938959914977089669567945628030510565090776778332471890681626218147674907134823703194373218941263575416625959604264817195411770955262478443912001213312832330385046331714846492269830413947908453518351865795859977831743809313608989955125369175804705203540420548170780591443979753079376381086682912212048556943404348890350016188547841719133328328126884686000431582655059280719176707947791359395308602139699304571065738325299669217497210484363913020953320168064372961088593469032459005431942985310646334026412868719183234281363908999184461753817023304822376757632588439862220540665025455357374204316288264799069019789856686936485965151584591706490885714130920952290184740702284322551607007554641274556385187526824516872757243714370497154954661565532630853735127806023993028542016610400754832845264103342577025503424948240075056005568868035936360845254459936196022037302716432392938384751492490757110856635644157248469299086293978919086569995525165462218065200696935646652641778505047320394505184290027414883017059083464051570135106120958625908724337051711582130531513898147826700762812124389598339232496656069607134127842917955131812623139011180562271963047860995684474076703466403949852639539222067711536395046629624627523554134843615426440250038147192446879317927850335396033909929848408025861931544940665398347478575669633933994267185584629724042687528560430441562481658027066863979956800887797207422801626755471640890907846075950636002139669026858199636191152813111272099541139844385062090165753257633317420113992508115621305368627834326591966068002867359220866337151311897575018661934395936533188357969922173645367336719764074402647418902572158430571723700182745384654474155611929598721784539951458683000745928611564485926528637174163238275114207173416307668009534780850970459326564453385413626716406630113239007093273903532355719330561651733198076890112317583295106242207199021912496542970320628859298221136840475368281924266230320210154986605605343428583298795518290701777635367200548960631534395218313078323505993886148882947207639678506818797714775430491296649812915498369568274218743513389585596906252877010348395825057244999330661591479304175081722834979823182736327856645007375777349429664157412239696865769512684606040404059287941600168338326619700593654382041076993975879100642105374205962657952344334454242576783218715072554713340361560809893411527515348184109167433147901732214163317539100786786648075679764634582703694566844898642535616350241450959112727225082618306787547317463516036338040728886031072922079659566111619624435043456889706487258502953906650702269300770146484209619229096676470573849106961827258896955113005802075654323288770120948771746816150297287187400968823488263546913948589221188996466916358079377262504515714616573252441381306641861946728815105710662454822952419540555925979480297997943298914586207088067272996641020807671508561106456604292066351333450944504581556101272189499487689232834964982958311377067832658867409856534667185273855316132872323261676793052410367812869921905371044957391863467365294370307099389435927153136201748120225074880533793808426542440637483390650325292221154768522586587381320352218313246497453531965349550516122519774860073637767582385263203418615926819575074192814313008057420569186355032113360139892612600920816155022058783323757670952477170503009838409090825471455561952682511857185545623883787256290417115065234033559015962292604656623303428320760540621753537055043323712722528880682598351232175226914835741126677344742006223091939830285646224568033323716933614143575406532328149669165481129114022077818694393166658597546934537670212366773573972728742156512564969814943252613256454076605718236558802825374908243963811990153110016340185791037218803835864219647228982288753983325730918171537069340835958628919549338692117852059297168181013336612016501760916511938469781631217839714047822283161048286607919530703727631138953095543648991605810195324230938210229301683621737362091907637885457087664152241556363097480967680401064847947861146762069437336118128050772823366461615195971178914468951162669343680134859026545185955627205762674088903128302399681606001218482527313308937253934209505164363463190991335169906154770653721726348842718817432814862556618418392103664038166626154935722917413411925472722077780108377658208769961560302573692233093445099050410956868457304164685640843769907406637823905600809522314254744322233528174413601958398172065937122912564217523363141468092438467845896360947493193915603851812635821585235284233983907302761863006566078071059124895053919498539673069054083562354252850891066173427852207021132286686047697837945308496424932434046309964377865395221863973670852757678499678736926404275212628338296757561341566064323621702693996772211274186286053312673132056717135013840404721837471500869169855443532595290585973097454146730389606286026051441743919626595473540823396288107142798344222181233659088422730755108836656952688416684258044902057049303360783603570403143689405288496517169173232127329559697721482530882278650622806448178941822215425470226310421683239129509306996197211796561220817332346294166448867007477440972945375376018276082581062611321989659735046763274495329237943391315234785036864979369690188484045097229016090019611625091650337360230577100748069237953522409197300015286671646609454013335793060444029807120181332443426103426042484666982237246381120189565555526951915555220039778832428874668996064905264886368395041478410931795714301025431400668641388350979864789380632867486531860306231472108879473619414564964897183520092641396308991246817311956591961001839057400585679691734525696981061023066518427235748870168826122624250365266255552005089105754947861789049844868988606803351048636617592080355777137587350866523424272248095177011532366457109702823018386712132970403174146658948781458623625112123743177604426845937159707056295729251118033046070764766967124614043706243943331615936070035334205464383577096437452758996326111531748342565799196113048252755034244995646513419977162631276750064928173410965866829614948017423230328634575371482960584160398028229446556450417091854854212578979265038382883962058677817524550397910755044641349589705246612811217264943530632826594762053031615481025479142339549320463144378072269727939981074815635166152571138425246354990028454990415321576604548241830320807484540849382723824246036256173431680886286810494486908401847573610222835106558209928028580355497362380610189006471264452626954778812043153563120778434600448599748528106711498624693601350391508641356576656626526189819029243215279400254926366081348940375287357316188188235842296411893252037939928124459481666325216553563493391216600662826667490220201535386746827992294663729112304197378872207672365295461613211928401104306709145935349093420878058030647991366489216619116141225465069318675850452172543121566958107143233574199619754768530880562658301706149564430830035033648653042466930605725702409238868601564838661256954961796207140995496322157105610425521477635490575020800236526970988290883101619035552550502029757976983624773261503168289817417327612824830343508600465186358648314038027614173601434082337441572293087484574402783358238748111265088065664040996825734841460100603504193112321693268283235000482639449057221660676609288877065416308935309577650041168900422447574621163737928473539332896668498291410121627208755516806162915542213565399752498196768935900500477985683185461470369102041951099233880589092923025619667785950156365666201123860704261970188999510723159307110203422001538601858310069931048435749626914505797466176134040674490839944931794326379828173861074550405196620444662467479150035405483898062485431164226220352219589838534329511836920621117243326860802563292590969311449431405927286124548109093001211532863770529528592707783833337368160287762178921657083346395733707596051859240294629384018680188269755187327757900448594621040092879200918475132999610703616668662165824625352484494749749291110111886975201111279121269212518725364882913129283765325653809955396678504401750625506328272543118122361556319722328258101758198787384224662364625282757182819982917964259127560195998695297411647650203502467673811390984775007143026510099290155274821503618121550596914644099449238315828261448101218350986925084443571838346079760089502312830103461171238458893941087886879924904874615281082601823182542255970540576478125616611275735946320578453148073317983084454000278078853500290180189280486510553615294112665405911634601381222676514322311564130617325818037016931624255272859677835353068824024784947136512060334488692457402186411664714816990612579366159059445098527859319718333913233329123997072660811027582571235177605493961011827547552499929667889781679718681061847929341246717105933639878671774136955483981992876489661292943041857659374733796525135439168637355372814342642819303358400998468359852907204315121614715813531786437538255227612844698280589375803555446596477378359425236828354631080683963411041936814858104066150519486597194274152155775575310955628949340615931233808658607451027112066086642464797440269201047865172405630256447454695252364366583297882283905174328045269120411587920435035353860134963482171828787993812293346311011637058630947689408221706101611659498101444790918041987176795544579690222978491274500180499042239399809932272240485986045799844870888729345141523150531261525538195679292610445840207256799810240459639401339204330565769222849948343665592086419159831487103075573989692335471652155904869105290931037421569978380669546080470093035646419020548573520975478189825258535563675185177651398318294807218855204874881755493818625803367896741352713812765356755199652307614662616321763692562607300546521221496919460330499410821050076299787337793386159513805018734814932654411685901494742514627690761823763201859989648909456378560480814231095437488774915651125545153026925332213167866610955020967686111142143863270739478711590296410934759683561922304468143235277933609159965397923055838377093739594283543640635960972793869517716299814824318362338995769191295779998236601795579413246924601739570484082860573194911534426750220197211601606783809962995835223941079784739558021818247556696287053006340011167264562134372981388074612752250300679660180096664956069366178330583385546270363035545499219698173266522821760235262173529365692897541744333811213771027414053575962461411776629370291874268997066670449016042462293600240414805939231639786390227438956847234762837661130515879267622387701326798683999723609852657288500667970023892699995513732862039626907903214301577255621388842088535429768208104044624576690662979882062046892167240583394882217838925163686288657496743189466705845761487945079542962369025597100671519068038832780882576053905294865949569050210454128600406706412599620386871102086105182959714057476884807262097568284301181894024179489892577474076199697132005572181191468339334814965764787469609512249556906677369963120801764520828917393280298181629296185495155264007987345070235347676940866913192902907109178251459016575940317329115435838681612134876731301399479113682766681803527303274185929071824741412287949608430357661637543082826714668897248207734716791160948024509118406758955626261889297301152253210205058563562864163756087989064005781412299313672685859902587145587432912128386317449367165546261609372495242626933601032418387220457810332359421889951050413477173967514067097173434536496845968025528112582848905429530910103581310858932451001970662096798681416279830620412588021737194264095124501843752762259391037938621460655861375206494923572353937410620647497738098002820012466997838244365905150113660296948578973402572351909905398478224964888066422918080107084189069435048758136056399928981606382745234472614925468755157858258699303916530073855445267120155857185944509926658124166117489473484542791140015153382328463844161955637518895811832194718623835503650019024649472325784366918565590250740045807794946837690965634980182391199106435445421856623890637700661616674357862603896765433458178264598023323407367685468225762182854458560492269239648899228363030940427633643262291878588758177470617740646709288507205460323736178887451785813380256074141668186930548528923103760866245240872189333816386682008910112373693039422398301758528508692268260637985235898537250386458810495323450218024722767771774039411646664412921783409001804679611854622141476966985485694248361711391601902843168635811417855309765622648011685797842222663651413147020363816420108427280119435559926118938638671513962872013187549182360970754852689999916291981069378935571639709865189849891921090327971166306651518843826870131945678172715225194289845903932954106717018094610181625137748306453551983946804229161917355436567138495925181502888077216817402046154670570780127470711433431168883972282163256098107999931425147061316043163392001184760338421799875586941143736533340545102239533224746316766649246881711266402549770706542160726877375008724317488907550084171815973305409223140571118145684347892267731605107786415309404666119029761281710336875850594830130500455073998909255996803867384818506402401233546681689883017345573105993766248015467071118722127469534868380184512820208203631387286671130601345421702481557734328837977121733273969049462624655436691568292538411923387890535604436104550834537274708789537419803089638466955769038205825129685383209034916269949699322812607894207671568597180845779141086420011076350498224916998678102109770950742136122813532870450192941618495314342207946339129805598627128400697115383128271831261675343821067221102528526032513440964816356282060800971538644564967771198424932165472289927372303615476952493566923726941998974857685491127516631977877186736028214095293506994736055093612582868839318804543645206614643086106536830581416208050823152703429503558396701825348511497365067447085948892420609565643122786142369088180731388478114093952976373439678619590782965036082605903287938365894896567386270520776251475922586924113402990406914569010271834353838512544416524333933027002106519437675377607998821503883749536733060432511512459816643697008442789645531166447610852848482885235369515537652094064706141648664144978257171883152243886931227295830722401179848977658407454236476996990434815942953772236287481192560179610214815480189935823301345327067360361155844921489632495694758970571087883846440462131515530490732118582298001168999086577711638888090450797716624513867600301287272152410432742684599115946161048515678488330157916507958858852939044853961161424196753300148396681767968736307186443442615108426435924463565825941351674344803199230908906436638094672316633210158544152892969498092296669982094032184028352973137548281480120064090239237925604149386396782192015559954337636619706936555096328558347888435243619439438269891754570707395305071809851882430317892933757954370689033425665679341344913825295851621836759861370864850057633870668496173922904130102435552402941494985691413340542723955419974669796057844889938802989268116970660142314809528514584462613391523946442574452298281430738748323894455686498527240994364217474663367671724084323141139277004214666859342525246347909803388746938366661918110358357085586870041949057406369368911962162574355453326407578870859335984069547409402073282336632452981919137368056122111306279425677860266041556962743362360501780077990419515327078780420487737812855724474772110960319674313719014437578485862448314669956887435565838429746736551028219841574213494337639689627392685396620128522106919872609202854264824535048968720676301081880676107336532232951112572129461314314991892036033349390313955348389906984528263128092915723395093816065208576684312941198933090134270413250993258927959400818953201870722584237782884410700728226861973441456119552149506640649705912222458216767185750722842139661324131668851427941644540945216085612368475614790184096291886651353665069219974952414682170139487361582271430033998105896884505514353157100615138994656423887462611782307385557487569681676449973699757357547432266477207279642357384794509853821645441329932675319117154534248084508735324604133253484662799925452986818578132371540831892053492042829634841277204869691461629972806615004213320758155535856223054826797197648806884834841956537858954103718346861020192523660379910695866251291912697210549949335259471882740032848340718105940395041905865214030139464945932308916906632492754525203513078701008621287371623318667543907378962263643084548187900084704029080492038379253348833778773921664078414949385344074395761844657148513306425108867572955260807964809708690995132054845126935085945095877795676416999386511384911219176090675446276884945452524486096961239879056306786063720586647669612758375295473915525970613143504578832325444873760824900743148634909977564491831773591914285047205921022381936662039824471437734928961043051629327054503499462821500144052146746496491378304626207556529437767907891899571779578569112108433371488415386693520549426456174019669778023085349267128197200605933146732661665898345904269281402287091124463294115600789455045903181164834302712777613401092709901227439549195178787565269336792821344354423676461450748417919707916225134310170141601677672022498492316728212787644624313974357517016483822901816721200041119177572902504108270483716416071304671518499325837511374822413985121560290883759204892694243163640460126324092158739687131507550395723787306850111522698980231901185075308309763133672076615422184016487908979497615560527597284705185747641219902880956705381185748123795737706198328079592482479383194378435063454452675735742911532375204351375591512786421584907279054436368657094834948243059273472283938247768928977369048322550069699671616209812952728485264000716009871689899811842925412524771824734925493286530025018435037356459818579786774534075382360789657144337195415926646487277099334371982534036333220042018357134489791902805826815837953344486834025304107821955858406777660020745964251954035691975249461143515062672892238361147815185627430927404436896672309780730611176232862905971702643306611901322865274160595811869214428136313445545079435897107754105292972092771415482927083531010675703735834457968887275145950100543427889000591783756189251777733770317142479952908313267727827631540115152819340221371479394327842007512968252130530517365618991312305047117941674031976751086532794671242794051754665115112336905650129198964993784749965337038879772759119331612205943213867341724236574991401123557827615909296159589776245236865265494897080284535211813512493159407017824783852928471285591527633464412701530450765152538947225120280984383756963240147699465572316216653435121046537669807005573943184277668290827407715693098398013411977034823237764779420790056473042399875904425633000721773644429628318535635747891628352733083238273882531533262430010196651628536056878938280571228888465516968452703500481259692301089472255932445531253774153872090701693241239529290889375158485695871617113310427372133876564463223766984766660401391787978085611897518919170152643041571945931887098094268209093229754398565030566749188488074058573714302679401176109328098386687528366540451127306965565930904039011227455478069773949042620071588853255632071124758775889357802958701315268792608249119527942755738198669995817298486807460628556452448861391367621599512482490315980204155031978114675171922028450814863187204757439766471114388183229680579293076184832021568527889977808386742689851219357316796076966193569004557275181581314471878844648467767637541034270236986240850950512574296578556140282950578263255108155516182985501632621655884259927761244383025353195647836261298209021530935090627225340386787951393969445749760010520839384480813620495654557567062434919683079490133895685317395491734420107819230391525789151420496544296017132494155686552975327651737748941620574204518030409983713741253151903871537805035472592579638803670474966878829122563836522159723513483295681874138192683249003978503413505855585434460102556787358906438218206536000182083547688751131919648518040787396060579751173885796600363724718228785223972709925593294094815638151444960745622168190592424737575233631718511557452833091259643174937794477861955459793284699212645923074642000842549220471950839276336532172418125064964722535987305973289769052775718105845194315212181459178146128591878170359129583393107137859304618839822973960943586342270397985564097925906187426079866691599625250930812577324715407567411099306035112505961381106904868301522621119956582990415950524897152073440411426793708891057843832685506929600509636393325583717584512623942514420454260436621197710124867220136588921942923588051962774514971180240586168250835229931794016381454584723716040330163759997520445461620460110317082418901148165982402218611692743691287895531329207033810161646579388204034081630946924001997679294923885705375845945553709235376318866858537547294245399769927315436299355326582512564581324772042369752707927995186979136772941078732162273411247040098254622442128323103191076163823978410590079524006562920335078083582103447157771201819194257008388409485636204348700985680078416812077024033372947071472203546917888052106351294128314378539636172487850423645084011927560678048576793314701150109472793848434612304749373932361171465686247600261057818576116926800840559019256989645514809078051941052392279484728822931588442701582769473629280472744990775195004386396485314471897255339954019727458637659769304778567546988348894574695634381680087240258460075598785969538196916247032958197669141225642217558214616732829915096628670265148618801352861991091416374558311471022555757545651587350947944766713609144217863413767913817012482623405024149699112344625232190423669130055300677640518947033186770833845356442853906992606472228759507250455283717901275007939662838871863946754220145759464679959982005903610273097531859007946962353667354545428243449886350951247361273872990798539443635510272200306169398763533788801217457129272648564044228600076537135288425562214249448642254690842333753412214906041572857188402805794380280755537987668361526115267096289392730991369282201193857744707580372109673278495247599519946552186154574716128171191297834344271294114821918523272287268363478959537086888987561616816388841536796761507385931317107918167185008306201478137717968580434463625447032775214487586026848065404572154879882458548110207227941093446969491442479261809731854718696690814568527271262388140928560541600296124679215978295571915470147925777255060976940675279623321344689182531053233609439268170130026937151906685890185972328299306511472734860535371461754516878355308868104833053487965309031546140670454863643946197586746915483001361070249691077361845601797588539818391526116335875900252480937791330924987374062818619945732115230345144446630751763865398762126501753816302748405736390173157199346226130515555701506058218419633779757367956872484583554284591036819908698379784771351148088990133897910985055702035004358504715933244898595000045048011141444744041901416981189559493371901592861989606072106883059179023986487647210659459838518025564695036233844646501006248898190385903699036499274002440886130107536123108043037289300547014874421076212310125212233455911765240697360168103592059293564693884410463372965079432837980403550510218286630281083433468654900489996144889712245734689836072765573089815279898051414944633116075363879343256957027497911218264145625994614148206073775373580052428434103094929079301555935219428753391578192746274761316138130227065901715351849281760025686975482756592670572066766451910423477260147885116738798760071958154929771269334976033429042761888360489246347491560438077105820291557397952949075384182241727664702698204344134325608675792444922439207251696385608793480909615430190784828975700185793919795353985013050088828017682751199341561850820210208460377466507780507758506899547033381918391780370537731005490166410409811373884434354516203369740134957887331370277566105673213366904776387298192648742669107010427065148435084029712650911170508055692450091284974857395193222979731921025298660468495204616524823963513116258209903759925254904051062471691688815943481500841217570116074409081085304575772140279586461989483124482907793823035230892801341384283229694639784580261938353468026480701039353590490526477303760278448480966792759242096732608251522333291525297254031974117343040740521783461675611159254313153155664328166186586198236516569674550752381750753776140631870857408374349601892688669093296190127734039594764394380743085532501016321550566980419668390218618556954505050690555651456722125582519897353028314983098949633162270870280780540271426867431450843459628195540174438755589146991731651853719439383720361422876694710181184610211917428103936533426030368015586794953168485377780198720341976976019717554586695062356674305640386409777106978397639582589870509822973836971852091630051158005018399893808190475935777446516202617858649352960714319982448664584903486384853867473997600369859383900597440132856540574252760256858980009610685212416490327700788446707799047729229574899707022807660101621088136748936768393972632166379753018451676668300307573677627642377710027795961160564586113840774469491511329391600367401671272922527566148788482042737374945651107146633205797697629813996702777758303950261761759340027830640106115771930581824142078828970308743482783199636324906773346894943859328395771027888542771061748988834704392321087792735844795273453297739577921815489652918814550229675516219675044642519021267378639917702193143152409787078849301445080638676602782644395738848850932194113068714154935140272561221490116078393333012002405630184201694396273013748684859024113331796300012807062642219254517041884816399486241318258039554396624445345274566660888908453072764034897706773602257150849469426588735593454100484170317156544604438988345434121870867402272165319206415156801758667625523328564703799666856130246911259158153390424577215093538226508996583926377331559630436041568880259493296593636556729471911552945045026244713427718568527567888901479054095336407464987469516701938295558000506362864794987272198915165153222829919063669165576104439752032954106147058531591291153933882667919057180327763000885979298525189168381095990507878151465197983480591262580482790038085344758000665098454868464252566577589654784258708727655196921733215549041467863591982825074580478698650019181964349079605298554377975033299529772423115228273921001227298900329303034486069496145518109901197642749399469165347036639301322827304166372836060098860768677472626079882262705591273677160966580862408124742536807921125925458593313177865267676796033280193043397495830313939901437381930112531885397650613959391706684213395435541248480775655082152540675573741901303827795405532535309227656063301062416661628656867594339626823374556712799145944694450379829902597273915699629064355558550788152061637637267415384363961677881331759110397540692838301580229425418795844209045383565991820067237556504244575754838065741591838612782373464732865441016032530448612728453866913369303173826302703691813044176131720991740621371051205171721372540134757928662655851195428983725498284706588353711223917015068535125891521977572241498558293078619998481444024233016294221496859921693919604056365120245407827675752521720716164794328211837096738743084138736373576800288645189517582018065197379644262096728571502346153892078187864388457796912450909015486737899570798106542423492355764273710718765771196444692252273636603821311780892744175094872037856531386479542798215917720211702392963021177505752919145658334524602837847078501670697412090191553048836858997786897100462195468826029987675867051345813850866371291911181013195500093629096751873330098801859398733556371703623679360510718356820888383281287888316795526375928235733323552230870262542855533603028113798787951256896650984791478792672807123186878713629575955121694787154299576685262930890787100924554621246970327643771153293627863649050296315585522204114010202138456792782432863528325023542372855697154351852047229074996704679491374581179415898090725684527288472523050234726022455111955225256283314243400588278874120909265703346937247489112515151993187708921772310500774494287735959555824897567952466996026847158417416856677224624841689195032780528171323268195596079936047915611486460649236433815408280391445783748457155561744223009560137310737494000650858909351634427928599403439743705605628026361378073736761286033068180748931550667971546615994017919342776568698593986788823964246680775584094621060102651487324595218521435651522204327538567622792853969479076418534570335193654484546809333986144767236111674315486659595244134385756665955334111716599302385136743360328616054797845554355018331761978490678512179809631784596541939392526927562161655701420021686659200210958350433504168315945610314222230593450326752602304450065768984393856268569273446866553504332237564727285975917666098047077466916653568755429098717558330602980614588816857166841082461038142598833672020956508463806917933284109914119448654329538882937446469966447206797790182916739933513255729315803767278329059852330756530351010218170426271422805515263409850703599625445181572982256038939708689692782097550321360542880139046573241541408274415736802110887398143833446507688359353903649379803247365518770026322671459056897618084257716244661681845376519041790614355151317523750096981707071477704056446178619052697002399065833479748389236672955418251580537581423761839222901018111457458711939890412147885096770581497227155749480397706962014975311668161274335482205294681722201089738714561447764801626884213967724509693658992435963835644120329676221407608718553656698932199778956649558129509738696370882280890088718533368129595599116922242309503038158418364629528555095583436564227924694930005731854602611597832321900752150543285329294208597596980182149534818893582524183012292267749675698085084992892636565728225173269388094277947476475844437134833919156618425056482180376695816739148579528510027641590128965819459840460740929457132094646929905371065267613134637234987132048428014052909188110787975635049479985516529443969785854646510062650218409662663818576842066060270422865341555988569045059913782328826389142514422045748921816462572864028503321758205541158433609874112620538255265535027119957521431425160838586540076204704891025003381133216535418396825746006563850162673910321681602696976694282935859196774683503282011512941656111086705881375362781300930343304424633803208827821571333565596830900683762017933956431467746477387335258500607753415088442263742128759829454861010284941305935773773343174555681206379778601855630427967263183918205567338919158788659892073032178175517449096711410374749768778807447542512367468772939486325479307018399450492896091715872372004033631922314072455030430447935811909426501466847509505440061184413211971953715983403567148994822319200488195059716568593047138652272199194724413940106208772332946707000255988530722988911298289521189908823735717215480647867504734060418681655149414123014284000974752476373702613103740154345396682334216079747197531815364903626119110741779480698812950736077960288675061471833904149154792883994838732947884910591164625178032336271817379139996917648857449175124028373551933247713515013606749300263424695253295947928732385750614452950962747725550222405219430200639023466067492408722779890504919492722239365080466635537525527560645719001934684550993042337346120519699666032036513201240620329346919837098599491766196707957096629623578885973297395269408873358733795389655322631651605473045634495916097032102290819721958045793197492392782246678361136241993411503544881291309732054794775531943389780545667815155491325603188769643454666092215241081583756190941225678357949289938598569051527579312131092483618079335313564790183375623756582114289672751796998460351827211194866239197064866644928148574757319688216458211171921377766841080060797913439861778278887159665206284725955513575785938578353449837699287215543421288239976221128780904236857365417952772105846704051792793714367150702362587210074061610391207966550891959634517321284331143973866114308565570010419360538343334866366748900626263336106355263884090201324046303772762461389289122116003374606908590759049178263844109545201781704573787436920665462753109251901827952823261241805472667432089261336370170257870186734421514332103115610510168811604631291715954409148521044773515885557928865174131392703889241820590668318158924323225320651203619034183755066480334365067103888334467197194778843171634080139388499739961921974616129131136629183562793064565385457325700078862125235916916532307656994205200321167671811402998523041042254289958750379382930512785792401106654580561640556026842864011746474147857161642140822664793053857563493375767435311979025922400278304049028615616957513765730780415581792095216598814714056879403275835965851969141635432637973328333035491700223805111193869058408318455719442490348664725807335525591424839541422524234096178131023069791747695003319342311429570448768631787286053409172929676638130991506514730539783568890026587216039754115715360756196874080502910465887640375918597405789578729720301468347839705523059863449204579605307610883201158546020787895414843636493913142888296270415941873696304155312176311761393363950906778129327788400293401725287712843701637450579874066655377206989741981053149556897720374602904353543607171766724194893887072507904617856219563759463560793116819493491295635559819596896655323374697947411538929557994474918100319347219865061597282661882957096467249782147650759152234237196477318467437100507605199529586548915611843901232286500582221573467953675069690697093579635739429924517090855753270399185497155029031873016714156019003475063130178090802543700949538087784703927998042528163268896064818092562774680632027187804127038909147264949223095897683169603660446349205042655412259309482774129953818664324768752846314039919496151681524782373389089546471432117417774232990106382794558760478324984244427543887777242725602524456298173027825348890938397321294079663025977033535880791203879791800250935665598767569165390404506586811803774801896292735155392356609989481105123147720066227421457358964675775522692172229043758984868141685255075391176152653201455678708071237671848131668078589269057019691591442249816312355037964613886666894031351741924582384776159637039754754900094439971836507381397795624565982160049385136549584955988632643500021614604993564946160325076872126042248427492137700377225562000646932736829110851911161890930580625068446788497629117285964081418986151009639347339122839485736876692010002606371809530821055038463425128517830864939543222596960935582149249451383981500062158837711336732943475792193204875782598047687033497702919615706713885708860145006568969773396877629300798080758474759303854143164097108148702879929626475677593210567865429619494873711315365405232768483734308129754825483655277644473668083798282077225450822713407940233907173521360016682899925631473832022282324597830858501721310576864601532533575904487956560235027630414715186557104061949091675660670380104601382677899592417294335059980017606487108818289066321723691305025576573182242892738501220279017980856726061192522621424842151774317582647495125085231178280762694072907827044677085568941447321832542848303612310280456902438980446829016415771177860154741759766536103223333189322157202012560556098075025545972731773609707561520505295073131763739286592162907011377947593436312715499317250139865240187467584236461292856052539288139755585197980642104119617494873902169104229703402682128078836542195349238598520643913939753376719772994079503977152338481853793789013572770570079205449724932504021939699734647560189200814586544880582476766911860636509828787027718409520108150204301807182962543717125714829662190522918308254237621526385629011974167579470351997507112343115007104610158089520575510168390063529001782976517141431837390988956131372634741511589206973529855481497999940871691628783366081670966203019308735464313688238137709632788249192743306323941405326006614845788696552050992264221574050256176761253523064662865657114843570759370244856682187033604464084864077748427011584704749532080586444892462738588425520015378786435206551031527150600071847517058231630074221185340574562317925619685352572270360720993263133975945156653698696650340451762921181381818632820893249063348951994228798552299711737646347308660446138320154907703491430969050076811672217082431589559346863580854053470305527093163378915270609201390548388446208193233761784590698741899460532353414084613533301206350256284507211092230625502675064124316884841126441289847138606325540800586117241923510474759558899186569146109673048490516472201392362725604019809044206019701070776825179414265649194630894882474657188757612827764541352654815482738679471685951975921657014885468412798469722840468901868555552090442416111950719981290370197643711407128067385499157968214107097713049292123390007499442893543142689731299503400144644981915647042792546573296666134984720768808795612142107100752535892507556070672409650909520549140721672816504467701052300581455271471062635333730065734935359114841706109092227402317536344426590867337602486355425113495050362528881770930289786133957671676710118114397388047355797418506248668840112737087488842765942551753748852684588244547225638242592975141379024016449004150924172388104734424020709548355185953890649020613847116611038480353504359023250548944439840401087869419446494247638144326076542555100209930055096549718912377690900251668615851922974168727460722764941743922133293454586060251132845158895028720656071137192750797373593325959907093949187471353248990631760040475683267872532283153234647442616557337578077856744012742049937647243798465512441467607636470752405185609575790216084291109692257700619539731256291713103394798662037476529464442830202096057950366560365807049307850994503001687949735340357764048806432002363820923123460092296701333818475211340132643494623974911726145712286181922752581583204810948590738988769741435171469118474708188806116923160639579309117825375061949094445538228083727723087433374435552325021000126315612465432442137683752813205617420414512565970483823081994263506534656824697822367721363245099041156552472284554349154493090118957276626160921359677980495876414722446530586823412498661498819964141987433840664020287155992330696533918387679800768732825004109184352812080707852534642745447842413374231024373133386050938907886917292300793649180448651865134831815593828461395843288937008453737158449405025747435672006796379566746904618270381396434713254067951311004862558520672202407301919508153560313225309721099524365896805135499646066578893751154956361274739110097562079102166186166724590632778358139377230305271216289399690948218653888631408421974780403641918111671595038731981135727503679559325911479144100031539874347140325296780296213326935933552851538142816806501595921252297059853456117236543818269213418483965689977337809584409402027421598495645455951601520550897589199938569669692085300136183535268873068026826152565587132417656548275315340490137286910955368121217981945136112159976097392320085257411505141635279055939221928520416275486533911461187002578429355816449513319332392581130140842735943997104327583284443568856259210699440631369479134747511246077665283428001332887680462553869534097922660837514397300263098883796927505564934210902863616101957453818926387607416021487538002771995004921187368019006404283139172806992842779775485672347871949748162452281602800879828960003903217039746790801490366060345023626208009228821105235688392922916047504850541499577599977989624239591762519336538599747247779234511566208531568291893264574327066713081902479384212719851846195204340271560134200194431873109294439539043139334291577983703530351411963081770345311453885113023825189489225575808557522213139629793143489774891220992335053883406384285145482125274525401323405439603872208961702030188685584030012343696154296705981859414713470343516821131093023560374415717315875852008245171552904658671939411823082963796449780481272583839429230756609517512896002293332556981537080732901645503356272850817529850362680758014520817310493070240604793624429565652988955069124393642982270204378250537282754229764032271851365213586631040826502091722460310577645997082818322533813841849333319011018501614900949794924537405769688334583143904704043673924852863822220485764780103223201253728339706473870170632483640674595624465037547362785844927837012394584637788155203888034895306757455640257579550143986715742882431475705462047870277775644924080903419165992306093545130029322019202802481079145543851208493504338340745652928503263775990522462427478735097163283181292430436107479860977253616127704880645001952279752651629145009953371730099371728894296394091495155303747234812633170153295599399398164562897942040025173886826558707954612882746234863330849723215833376480497778486402802425196061475732207881150726623612353420754155503912620111506051223300980078381118036823813836918777264092323610894467345157629481197667348612951019256117205215349028365906337321155662313175818858488304396680550842188207172169961582019955912629668170554312639292722314403346491821966144248785698793046311215220251951768564834272562192688044246003010976072291046781970289445733472484865540467264541801013473662874139090057840865236936535486977369505824152276941957941914085744817499765189212719670387492359155374161483306227382656430308652449867631597424823115212412333083358754311987900237482352311280948547929549646567805350731695498085590260016809991021964930703597320925597864780145947973556005279643257964415840531290483738286663232126520472029991885502109091792425013246218359365793520513567607948368424969099085871187034539255853493180345337656543551521431522943736458662120684006024774209985488220175201017264492408802227232270937652380957568992500901545414885397857316314451940526652013264170951288047754768235031422767371733999545171966325999227406528588366265100568149936262232534411625945456376834452352855901600405101962945076065269383547963525781562105326723516777441903330781258681004728877501745664016377766978114139426138137385259134240435297919249284333017532106120424890408245356539706247262596685685584423768935871377878631873301450225993579291059059408476255560562345279630932451931314531475347486788698130046337766108652319054527775379544829831465466033877384183991096465211048403481181564250346604966134817641963802530717654464882953558808900783345153656954035880071653331725810084494490779691176637065526062684597567586002753900965496697299130868004082375218044122598497565358438308480468740476889041388637051505823943620429082616447991848989438858736830531382488878846070104540698662052325749999275024298153963619509528310828765090582445907167414836484773912826319234138431427738587418888027123149589818389785031349971869682972999736981851472060563522426392885780635671354032483747113827660810552810026500744920458334161372597682262128747438688845286011980114161368906629827938724152890273339597386172259847088285731390950774481981324104375817048563168965665503648918072898302695891049344900945395925100990948939933906092488133650595698623261335067949104252686079055287704862383861479352663509807809568295686472973214880278999894734773375788224781911247502035124049604118415475374171325350872543688003035565743431545784156037267503650813753906673075183385412654481552433739197808404131400473340521491458312244520848943044375730193566525029886088614019463375347715047803187797620378313963422558662071405292722919413929773824581064611130570809198558643747074602411443801906120881163309921289550767083111957456033193462850675376167877869997677288176195486510103712266512583624770991457260779771073735869517948730903172273992379638172243185022008975785955968863427714620964198725495389931989369347968271303312497850950870835691366259912717238690142113077574411191525170932673262479760521297904140268388945100917782660411081106394133377040095573085293926356015983545853195301720638590268380399588599618571804325652024433022627929757681729407276296641605367749054974625115460501180770253635661955342740309509569867139990463190636300191585865910427208565256309213548770365550622780138877718695270168500520089740897026899854958925968686657946800225923023969820131727618441175441102909917764732044406247227577124464591829750759094540853229657325666648595830000747751284598408139359136667738601263364315782347562865341500995678416756432807249095631515069043382461197071402746001174218009905964536818810381000357121300415292679955626814593428738077805900859735838542962785957340386783349383025712856663809357718722209197275372490585390671275055048785289766450233088282919243670328921629168604624070415028736531726488234672090491831300709753263070187597573116618093442311036208457260112775864000161363851545630035074561928989903096270344017011757223940295411390698347381625444962663904955328867115054730036852189720003999641150884123689845210393348700747475443549556055106913426964525798343317423454439676876941781428259485443438281526547213809280005795232920297943021408920917524626387695541909331275932888265158206192701111242716465890742963100487109957815400716192295298388230365289509398127898140051187016610729410311598147425427127227421144875535766194810233847860849472393533305119153726451322840256549512317485852743385022338684612900252986691710213967866049547598167304143104918937540233677105393125284617722561313433573507111354743374548211804035404808742972290991999178657118585488138565876887178146387158990096708443727930012602269087802432174805950320217267389528398153551313223833313336745721066594726926767861495926339479218388117028212306234565647485529671920045369930381758536916944501770314453412772706307525900614005943009244776843784793933517124564937767700525733522942642804990625031215396507264480771375692548234006347597424229142115437460353117978341601010677002672481331018056252341934075192085304229975802622079022067390954933257507517347440791265978352894635973325608964520588071844631237788621876082193410000986508210511646283520886062350206513733956589861175953896864108731524719102485606762822454198145056047418893361402201251218684416112135375164719874363807816456737213497653401835601733371983910640390691051566256952526227028733440963223219459422679159173029217677239273913213837100790265602747617436752245389616045564465418636526659218341987526178785483187692439194329056539691365021366743300007245374547990532162197797176984735596249249998305291734863506216603181544777297041445488200103436263820144330104660463213771572841148608192527854308890243455854831647875552621456301251871465659317246105693233591980441975614825789525714853665819216461712399264447574451654181203390121851405276535356333856133015382572534407702046077648717648545952509358436631481038908451389218794364845571450616189238119739248580909935997882098288654575797191898579018626545977877479682065801326947202932036133446915368286879467255943632075800875112821048760143690938216702582054488311636327158710896013230262980050288283050898529041157620562828700461613315103057874456102555861257274611113521448869547871705949438742937581857986007816052845152297190284213136103097356438727297418053211151102275477968396944376263905937794720316182472412130620701131242372833227302241103388320590159008821888421826123110111097601865694376460353044470228927268855921233422457848285055613472376172806364761613628613767078561069443454961186084471684993369780354008349717491920869799907887479356996460456591071891987493114971441894366487369600062106561093521902157144056024940674980547559014908935266313673750267800596766173000178232017759890137877418878320549251401536184069310932688734810960341052438204845774145097651522858068293573254247925510732048164206271724291287893777763767754572072689429872326305573206214045355577637197615552898936834010840223729650551360152449449079981147420915499420163881949916855972566852350266609672712092814216159253705007201131384833707134258158296088286671588206170141426288845262749945850477938090612214693112979293267149120885018938754077276776312048560711276481339277945912038529052568331496639490601757144446578344812364119192531484795309664231681425630925181866724741402467547925864736754429636126582879953853072244649761558937720286263735195850200373380550801864170446035019511922110778889749132830573562610890828696050123943346780181977047302589468176008802599403545940494709935174455306970594252404132138859608620039684192823365845436970168645957946867264875767734639656267697106131352843476747533751704135287297146165062725109746832250056062179037979766291309068273048873014449920998827108794568991625536897444313557721315906106788618058418678822924539583060798377901140760452884063821432169462510511138984353279644835137882787225132766220488408335827431260238111486433301558344061411447492348758837750857377622581745422901015903302544270812028193357582947716163342956008803802478798239001802500195191547242283579931786199328224802969920981110492958736911737251867606134122168348090349491161995980743248136122255235899394425143709161000714641225794676844585529152561508523315001838698325851778205878619301866920845500679815165464339812851316794937575443611855399878775506601729084415638594155496749077479192735268796198095341606056198450163296111498413873993844769677946516042554817714360704390217150722979197308545763373271209795336970985577302372962830228104603080284925357871021897943828383770409686908739644177713122318155696702656060156251725334409592774155576629431252841367740751710871294291349322456065338919439778644948553302815264967554943588759399786106852196522080490145308972321786639632664357804405369536924707575853237370732564036877913235712879367195760291518437704186493259177058961560675681374622475654248624209996402494725703160924876658087735005748276352158255696648911850080875499915135595224248642105892992180834151897403452514717424096460361915064763753217242799913249382517079416895640705822169926692414705225257913826440085951628427595134019749555787662600433296854895378235361513315559188843556533611314043791744225979641586959573504427448778047618288405661350697507629028792920300079191844353345212739780084346958144122152891421306438418854039863448221649050663566582276413697086642865618511181670912753448724189606729945113082344423763835527550218883070091883534966538990619704579140798962807530229859688684030746815871928131354457636361851100563569005191695753810591406284728932619654704022127958769973207302677382991929114770427453416999208202796753539801027686325450952576965535601225917313218544578504423392389452397704843034433599568153436273719330422518573570422105906648600784543465186620552029854805436708192135358523292508313300659345815281451273638403657775060274168319118835503442122395697890917189783841499725302344437310521361284876064619983819796230610443193523754517678316485112935781894602427775325718407480588601777060780471754324893495127716752044012595151020163591620742862938234400114004972769258284709696794273614387599192999577118985009129063413708353157128747807378326560024321985645374511813912584241407679917775535306193962774699473227665514529689261855874821151518200799486472032167957243369022288391373457189930351838555735094401064390329268703564628236365238578807132508143090081321565758228833379487506384448212901717907382499446649763397702976626871228215103215841828139552053746793971195762451147912297695151206902064515255159725126815062461600855543137338460992775579052525769960775036178131934955460725081561371204012201229506256645205860899860778487701895839768915697266354559713389767321600391729371352758592912816430036194421446310181786859881965249643430862678316906799994605142906542871948225318418431956896654510980174647340042258721519793992094611678718352034748847286149320429531332219867336387656591842728689504416783041924119599178540022608227271840099468830673686853238301180671763013412254789082012141329569675416573888793375818208508026142435609301873796782655295065044483493210207010966410350594192988283525752116607872891469072713560245917349453690604472587569906578486116475526130260907104272568011438110460562755465319048188779048895684988990535312786543198053867088937173083283288998261335185818465335268305341058036876076291396422922914514912489119388567090143999680894817845731179674647092514446744092363824359070566799335654447096228432073728256750977825986655964761131581125043689124371489308450189391133820663403522469161591910383049473618523655488222095919451710175030306808470250170334278580249945616644369582259007880358520522130678088469438268478647625965956222303568600465831339984192522593219405117538005192123396540752452125372911041278173709875233800117116193008493787623969314975993927421684002844628947908832804510743563238746944264566601961770851356015711835385622774887734282898684898458957639688028233304522807195087564125960412038127773729068027480325184325480326916781939826662894008514466610428716551502928999695221313845999393368008148254652809158442208331056421834615004386788803854504335648761132860698615679905209464686242792133836624343941378417878318728506226709056960812340434699195207057410370660899195625563404936908960842510723685964126473391379588459204207507438046085864127946315604789023274696594379378055360497442938768900636596728723240944161449280780934452440306485755674562298976742314085797008527335201281765499388040139082085664206555766933842838383487256380862566499489913689308453267144802446304691998451827394827906525910356143908797541882990399312885877132506334073686605475418873897188725979190613888552617656102179153653214559140948648807079406150066460515210883846620753464794754141854988436947837910846538011201721731797549005501999208282443691155853940750750612507683479832832205391053086265210882725898855327036197584245589024379424433699117874632701420743697836377783844568256806240795340979595762790917128801200206843340410284788275799068108235744465837888228349958972207225909225654443793674468793666884940715814237005640421147765286585467214792790192239030275324764758607314433465645729844455338300921812618157558448993921509742355668679306800528555755028086061786663147903650877253743804469533435613027566593533701990021718439720187049371795461120256427496407450171548756536547803708269383974240058425611799394049961437119183069699417631257208205962996484759685863602940570064346523184978764036084184101368209160542636058314295528199527288404318583742242594083576542966665094624371289984828160923646531835948897853721978578646644387327590397749035758660239880256450894429633317830921114408698382680868945463072764677992674316989700981458350664552211970951066530072645347925593034544493876162147742155179441523374054598169745497855629348759704033781963199474042158415089764204056295646315011149190310522092287681669216914152300510829132599545498895245776856693673326380618024478573594949660287943739213732682700064907537754531907735695447503562126367576736335943066781598961156003202024955591127027906539308238599551329327445146477209528061061188369511889854263725913833095793232688632143930514486816315657548262474799154753880061020329461977157594869211647371167415887779732858269101892629938300619154013331685256736220482392277716233118220004656261694708484939156276755291289239264187431585498081428819154443799929244562395146099653849915589430431462603299183554313761755210742585070516752012468707418602071957061883411253418488609077131649410676880499910131176483446768994777813579113984476981099322427907810522732375133450540298183295744966997622548558671205246864724571718747018736155299567096235036635877502939348385465546055444534187204903876641790234008398561642995367236810887851518684425824421972025526536990543717660500406093442120973558849244597901668127017644070898810347098525384080901552388861994805976182081357436263580309076766231427976978849777287571930986333440510192437498133863090656713167836987215115191221197787800624167079589888221213850990920551082663969331026573229211209552997377440065246878894479278599837141239189062119678754831294865310340934669590432711312031859804850747151115034467725942842598101746095488517227269862957589865692293227236473883755101147370876432736582197508156273610047460454266470391546323249635046184220232306636887408268262360594010736491107655868436500200199611851539098192157429161775898916930202446036164604186768000311193552703490136243994465511814461909894605586919642761062025827176153225231773768950705048740337092874767432921522832148727638648128836707738343686430176442123178763855478252221039683916639832065464791195229638603084501332459359610096347023842494429399934399000106924823414537937667152007100782478332128843414661869521372851478582049836005445182469698161619092227583880339511547323051628832125116566665682417180674534454961150973264948850667854669912607245128070336016237022725530274058546601494450610445092370873437024604997920448525743668740952444455557663065026631782611944815093362110376579747464384188095554781010050039909542314737941112508068046733802164789666549847013112529488151474784330379165201979010974936341181339667775166288459562995565728518975746583209881143689817345002068060769452330522459666414433947543617209114361477373336125909951301358271090838087204800649275774604744634630170517827139350344779629335495421391362758592748838446840590924244808596646423740980970513219434804358890487456957713847836476332464992529415826425279377948569749346552632149905406381890909777472602543918908912491830950686669178157489767126190150721147472909905204817015105548209453692811239575892578450194976713590562022156559757759005987212582371651593051246913318056662680488942364030399029652987928525116947804397071757277526895500545913090067233761017148523731958733156993442213187875912497374631455618574092597029515754293520703612264724381638737462136078485684593438478588998014378770166530203792007835230718474818240039846879284482888601579312085469291601558302783426590973143950349807696133066478465937483675501500411880774806030356401431572753908792187777427025596565638876589748203823123845596495634264433518849849005100561019581823313092867039574769626996305523791773120462251315210967321545731436583727644332261959217780362987940571241687180280670863126544277651067292665791880172931983285172607419871202566164320971519405661047504186160287770165861974730180161340859706207759591744181365715197333030356107157141957811888195984749578871253789350953898945097989308605004464652192969567469451214082652062482123183151058073406286681918761951365261768792425376159223024982976148677975234252323952863472003118962247570334275380119236476939919630374732906972627778140478983381939734506633538700239089062967036477166954313177392303456799004080668933653501881610953363960031164551539448708677295517968588627576534523316699756278600832473355865497848006793702816105821569693192263851151744830190288854874438969951550394932598216575916657295881422388414585339339653720632875586065502724707590310868718153386525135963724244128747284209505900125225675987822743830241392350665591207142937428251320411271357627687360260176401602103572267707135236932561413896033476582404022128458388581079639039362986335889889283785060825532686891694626032797512530882516266370531621224636289826654822014815675445486306207628970831808590171933196454641657361943398945839177741778160133167296915597929616157162009964315936282549369856528457588499862815776040240933410982088881610976159030252998975719841338722207953211358833436254770916761152361218725516626432276925978963777964827884105026992021142048357212774131458372345996751806741782091120423630351872038167805969848170473337232045279153541085804734767509890129010888534012574625096538924332881537555635225165531925638639114089930335051498967776807156848815934552357963378442081114217874479793930611310182589881066380158490014830141267650001718570355714492233226772188371216065213671141854274265261451624154141376870436893734854505678614573719601850900146817540152797012775711306439859377951340672120202648817281927787775973734567504740524843380645171879730658481798418656455790453761696971812997486015191997961296049369389987682803477176784765676233820448812405879219130450326827661235090162653570322126463987545928783041986339098053192016614473274415652663207209864657910865189677962370823921247886506535740390341019011524547177156480165660940655690205277609041477136953368365076136170758698106358189818911449492628676512847968903443213226064663725828114018114624222315668428881740712594862796482798980787685450441880575650831927665045241898090100965328087802268143721087131893717385346361750322119818084027284818878400061764951092956881068421028127112966683021126849161536684225798187876018734116203632676519677863018147538674415628523112953605252497079417450620335093719251824066410545295869855713855958043788137430028412699098007167197095795710298457653774372578712114286041248662629940045901397274052964038841544907510262729136252541997098905713144705188810606364540350609071451809416861844062823784376887173182491720665925537298195530226875153781551974811640322531893049946816253493772145954298922945740038488274421183099549500288700153709054622784329453700343442240839398646456219309749883090737431388714403649162145275964405683454802692852312687685922313492689195816202338850849812392542789085754257735045411329290814124799043422323208700552796423635009217753729157289760070052984363455448592382275745680720998331564497378481317270518880527394927111534671538944680819595507582223768503550683822127274758870000469850265435139384505316019519427961184336493803446460557770073014702348062321229681520860386068866005904713658397433548505333968213003483808085882586024182864943175990043777474503782340605756566544971944798578233800308911645467204248916087225676156920209229542770495861119683236802664678144230902046056252814856604857276868257136123182733617575431922668612596184371157713570485995667121065895084746639841570308346506852666096798785097562269874730718035325292283237278940782724748126074877617004526090012193782927862189103622447944624917530032365700077353667289129349632494523309131485279748401600144355727145889385703160014122027956180643588453092873257759815068811808962660543123589292564619778812546614352139848958603095169196911419860680678663032909551025019509645424988966876252307161476683156094063070946877699924898945909893527931826912905383584104840668843594914048361199468585464907499369816996594606378549968409270435635867239873878333599170086541405854979122594376269239473096755219570032067342692278028592132584838570961203504240593217944646396071764391867131004639190886372708079941090428305290885271333676617996350316699355120159030949165057257444433563694250351149674154140321375977729121626145853458214407115307737747095777760295091720581926483047238506354460728806598554399614620974130347152822537449402238226806792267352237385810087433692091097993784843767861846050100658346649290373821268072118196899395264361991867104123787721352356160150848099801622339675057024850311570427412752035474965434220232442731897038815112381419027904153798007868727177207577917559357430473320133254537926736630811083608675412107108185453337693667563328980265050801208493272144483462321697032621855029386113577630734686892853433580583134338912298682515500877779006955263221226611460241861210164601366122020534898915994639945304639198601253661697182997191640787459736081560818955752825094263314133810665300538795447468462020574111471907662975067337653175227846631673643880408507188374978504044268627208505881946342169251321765922419587324751281371486347248811291186265193488482910448659240352718305022783056913447183281232969433954443054099084876318322588356779542240351190406616767009627300903128037449017960316508511015574839858686154845749061295295341993437329336700743702165909240269727360701857463149058961291701224301187290809801008118302857000422972134942950078587413244423266583808770740838478326621230174056326351592954691546924106286670634608211423905232986667294710919688415140038179037174646749871062452792579781451361209726620034166061531601205429792466677870583639176846271601075276082097594021694909671467538669717129484066077024316907044814266907264488373110231041837334569662865023284705086969491258260448625638309109564421382770516205638162312010345371575182143444237104141258220492518574086135648418506704948572861645585036513242487237987583478493351243757738815992492067384218444591153812287208113629817489491813066099488808703927357196918051730622210922938268329633145370855807113219225088312670285524337124992101861299146093782602567372639759385915828321247022511045381418055973797246872142866086752242025608670996503539899479805228265012090790972913348450648165287994402997340251018581500265272923279561600834183897537535746879400461974395951881020841680593578674977234718101850407410538194699372161366813613890934248606849191333915048144914201905976951123698622631339965584447262166276591830378364852045920242705589583238444255714691880513583039504056971603459293492080632949925533588337549877741928287915769475998009335924031300401760462356049351243404704054592108907000972065725305717053982080817836120747127519336242262232966452691423691756353653376271516699745978806840740088385999088611088746775525570736946527215769971826493039338608507849617076206812137648363110433266562695717794777022606006546171411355290337355918760970490726915569492505794699354587111733415566655120608109088135070144757713055076298890605943321057727582766804564054092346271019148162208082793378751580845191498901838183678040587060848773376963920536540311666144157270462614492982841147089328125304981382338455774819980396998855013669375640195240403499304729541194204225311040762166302716253732832923152487068788813800218452301565185808104882908466236856345673863438404748672070545853789639743367722186770309194196502693248724283214616748942534513907984231674913787354948923575460811492118576237274159830384653721081471795194935018002898483744509818714822562333266976200560235297531830402425883210990085798836147661395644660898794962025876053900544197061140036320406332688508725502167816176808412736845413219184078883067305586717644696235416358834352606963937865486579261281043017976208745216001987043188729371816113837880017346359022594351761059036688021429875064573807240033126563502773007946790973767800207751901825972549912757231922426680433850822611602265710708352791976435120881124050833676775820684080946164833384066598815921704281362261806882771605675706677208183600213399369570876565874699828482249271928255874084613178900275944918871273969474962734896065883960150624073698588046471935435873987016103132417228788197224042387165703555454796059841404196481044990718394748806222360637517879436572427555829986994967537368504101112037801990488393208193164369550831864783029223934339665100111431916375722455960391661147969618920065365100049981955167558786324369528862252542478832351539358686521721468110379933710283038473558344422238609450335399949087907946460703667143302845404562669438441129888390073210682594527171782396807228539743976707265067985315229696311953080653829759708216454240288728443915660801554329721434206313304909695120973201833510106795854519846194795706878607360279565897571919976992203656820694719569314328344197092665156148961569978522268007444653965960902077461656230372036924423746039378855126102022820569017490843065403937325154899594074017741453420862427791780998150896729079722481010418173486955084765336835317713009011692888626361260433822990936175995258658249868735074898869552916432279373541576886555947074672522036820664981605517176613868169441648947185564294565462784297868551774387204015772804145263044274021359505490375441739075415858642383056296349008579922594787771478130656391540461660798306761425005323281115160075431955471268992926259799318729663635211614062646482091682488260204450801880054905495960665375386750880365447944328934486776350160029419607204335941739237675699301035083126319558893299239473515172571885644446869401905374419922541594903081221030555984877302744945317840086815773581896764893219318931022542921060505703918435380124079031049815365925177865759651864360815973332426232235153990133155024730765448647175332342739007282306860237248898310257543176290590678451855940114325576154809366139291756373806022159663603887379863583748910230738769047364830977164470868937730992465546924839845139125647431607441918097062410499962666862574619946262792004868718553334804707617627152799831110999255159795896962352746166902981585599651149719976338182558206021839649332746400329264990696833512383895571797686435956922186126176877858444178681346710081071428373346689175714086406916708136198984789842827174033832692790748034705727426856156313356349144769182251731497152153689641865276932580269894360763527569996890218144235410734929437863809228792639995831115639323758656190555835079357832923104371448709477176597047099518754274007071492562239800039260506002808595629218431122286318870549467562765910778850018381871979356808712433940914759310216544395172369547101785107718633068408395370596541081754247990113704352034816753402779005386658438484861322813542139286442860608288333502477482699309575147817621068527364124239747553453169459248044256104504400803010332269105087074712059329260312787993362542212376445922056800704036717641722356980229502077808974036083287923650797510203116857700246516191927424869521970778750489430497635639828429342814266223040201609413343124346183855428445831904953162563281364094567493960617661255788194108337125367002927504008965428044233154109967423361790965599417137685648483691178944497978437946891251809063733788002329034390472909879114309504015774568446765333929689020225891026485452849550526419491176445194876185815308968975480167694987167748026367742193353573406560332101465851450957549555808213894013996739174234367775758710601345973903446472163010031296747958669708683242550147757336951724141842066196350112531131713053478952656978825199989694067922599166638933062459909112251816394524604899288082614161684585265462420817796109804967942427765750595223602363767061161148109457377624037097421674548275345449356016574930490997276890064737435684497897238849470425915649117182738181790343501834461663834874036256316203006375512771408725357297579908694550444933513989851381773293565411824338137420525092036358645563518766633922491201868015487244299588417342686848911047701856568950966235069179799352517455385930401050159949932194550091480313826868378952908607056197138257983114043433395164739011792056751431894449749533657722592498125444965992405694110907709085152052444564056884463990776460265642967591956007966910976301248026257540803735690537618900420366466109701402810502337303218810428025018113805506933688327765442593182167885726768876192096804687997036892271631811893293445354314137769632708370922765133153600011407190689687690963582429551698725756535390148033667119635879373599692452950165938277245691336063666296628135820787828367558758955093932793260808546369797844893271668950812662565254136640673760522787994129131937561029704873568905257879418981578515297665847798472640711160934972814077403070817144527090735737240316610431273060123864003113269373561883412214467370747959740949563478187933673026538302152603079886165877148789077759986988489240124578118260540733999061678625017669726406820833739469241837165610353538873313900917609643621244894262244022507632136049290769622107134546478417371741594261781809234543243944086714755430879679760759170611524555756248653464444844523261009441018944670644650550991994983708195865222242556425367342804578299078916727021442348717058399957829694310443931691473455510594708341281941661962532016664862768260022457321734298083896878300052364582780903004966289314649488447166239734872973001111863511311745825806743163809052313284191837181208071567422662684799997564961813550615641113212114761507464224520681874201927814455847484221369712482975198403373972272516597373063619316375122529009102842345407773552821185171007477531475497286466838231509836006393824628940029882523873982955405545167480359049030274882384068239276511376374155521378932763990482854045851880609517070378197398578690247418421399411268446401598570278882297709782892183885970517565966551001808349706971484880384462955103840477245808903717079162029941321462735724422251207418221156981821233510331411692464661225653311984183303139990422256335232561985077487300522509401855342784214213268936573283139181814646008565113768316139644620468516271642992407037616855926668860354232180691306243973938163252304758510893666579317097072560039444845164817463291241750955457974571513569742547707880184794618515104917075567823473994893524169522623155048496181009950979204104935751033889043855438551114852347088208891186530733770817705910696390657226619362604367042219859044348569047093292135084881593677928901322402310921419029969471401320796303637792169580757374437470902087231334777289660138116815637963638920229400381429195519192024538964414834328737662186006618990937489943314538838141414953973016845684316826725003910350608071340950527069735463103207722715333931481565451291466487725431120418820896158565413478237650717247346663020862069605533850278578536674480005663089286738463471921385242475346393320369707320225482197631589417329391552100437442269555943784029264190134307614072433317198469754232883347343979403101968951752091007981883767707116666313666022182148777761883579035109908574334414634147969061071436785032434719040034824301081582560606741416162761109032513934084909244527970701784092974431595553868943098340064721740652129894905580064536133628009573079499701570198403042956062184974480561868088180951043774662176161521563651172697262066573302580711523730530143764747547869675589409134544851230208840304411730443160452115368283561953499134817407219422281095875626671295741248079826220444188623411510080477671916143059285151945359971873553344373886634262631172539351563907393876351550225785801639646740775812198127645772865830408660009008834093696289101852195629065095588948125887211998931360017143322388826162709197491636176240903371679899552983403214396765795072710865717111551525121923380776973038268203362110228913464242591190945900158575304444676835165455223915076122703201786676958220538218931329034253219082743913632767188314101938222057768664863595737510377461685981857869574896806704071422418040429181783324728894142851995238963218535145122423387909988138738234546346021000811411693734577625789457116879343740323805334210175284322948256780214728379306947667982981603473809953729560306136867855093748331620043790458133746436192349916317235877676737793916558549736124549853007401050730257878202537824428234649334379517195476755734964297449822629638171133680404749458359954623276033455849869834318927226320061044562118102122581558701723146803578441663999317959250245388134578077638422665936571488250611122128103886307893408399892507571764203339771489484528326192072968497400502025268222870910947468739844665883488955121386455458901594974772002275698059027419201815208520368464055659239372523129662521218696616176585494311295299205565037183365918954892809208359595102503094601591386383286479504576232266035414704365778950192170961605595986971430416438755238840816670035513372417624407497283289064214788693375434554936472929316039556569338835617776438210075904350103179268533308970183661180071755670056278326838946496478637767782548928202872484814668399538382574695659187334273904070310709345886352588604148481338967290220196480539672884168528068069011251687962477061670148700839464590535634151267718017628836290633901083437536443969958347527089027333561998402846890825396696528585001482025628308534324097547669962565068740881507851995724130978913300918967748166210605306113985134934719223137142300565856019346233786417940418137409440065309119069607837048715478126816541626304629693403358216464204453647949254355524975958436318636122908190783422754937077472209972604038911893954752077976348132563880468162164402485059931604815089178914279776595342907619994210870876404615398652742672638275144160231236553542756498695656199133204411752079545893969113451252763243481921374666263256471843167094361138129964811927341841588699604350114178171870424436092634333246636389732390916309129956569154476869385578945620358941085298876571750535567782622921728633310801396634953627693464418915385950770265981694347147502372773744208551050826759262263511015790657318397236568330596541837761983353984486858616084229397889731362194588164963479797316902430568964073232992343974114557043092766805130559143834753500831083992449028767709833504275247837600145799911632407593837242163634280243475766307614470151824905451495950357695900368451409455989143504861618093714337245589708869456135326893510099337835737426549516390334191038188091528975933235140339299523650367023194336674071513520367387297260479717907691365365246481169692849414212435413379985734252076702025459301855720139701280531949438285606309566114770714819613461766342683800818070224188076821845803740695309251974075811196163694125854006815897940660686393957290789708093957076306120152229065496282658153948836092339740959440312269330811898302139941370514063870717906940278502068584097959503936438205930504615733096469498580868538959913985481325296419431043015650255132036315702981951444330825121686706362692904869456211815168383519779046062931853010092060956509623096876671246417376110534259125647700992369124898237944874154272757212869027289030980536957844178699513727070894345370434563267630665731709720490466798281253886613927480661794419890447289143037714190683754583117227930105777374262825648126004560872510973017330178352883029812493918699865319537803696170793805378884633728524681542062062514461049678457036813625628480457858875698127853280852693760890751483952785512317666400604916619300882655814772884457388474380989588063249321530654537313770160610643204415212501629477394984728199676069380580568659265382680542790410119789486157666803889957549599284361366499064272936903619535635859994519921202831269483475259712089074387369217980694492564528332512123152835842690127512343271172860899991538300226390366428314667428152537429790514815830121704133134008810043343636765116402853599179480456141371701658296436924574911573194248346133838335758664750346729416872145329292268647660161289156198816295880370197711764145884163307746817501918308483455673264927726688953972877096058620561145835848781505099218921171642146071251609452472800150725055190159555082098409504047330068291819156666572077713029523727475898462209425964895349345479300818667678259451897045920428985727150374797687090042255865042663008965229641590194907710521663215768569982854153022945000758965913408395215783044311451239825437281153374170790344320005189685920821479765536989076780565595824490614491210789650658226777736550737154577713445685957975368895887322558390382610526966212117577620488689221392582080455541807869172878832203457138501940081917675958182283817406459081714973387559077621456110948947983747786794494382773091916826319135115256293783996092129005438195775008101421191206505829605099787687329282495959048928353700147870641335040473893450660271285282551412073096296902661652112495053058643913765428613958155377410866331652469570112829095858356684029045612340904528496916842313632062890535606259449838906993233269574046755477386689701370846394807678957123679132366769869141030328316325220065316831012117684716860166726814695480875882532353402110266470744161890178804043656149623955114722445461961723371677992292460646176722832628144110496955639855064549737868177965690413224924956899508818338844673822568130604383353936185077403246318016953410213244285460642906407867806666931987793373148929007672357113336986830749885345967174631630962128620778078890849679845343340879958353929353648793805940837337049177389492278868531350375918151093151942399458867398404230463622169090015855354382016986960480864218008856991606735510719976824138193593194560325837321887924104106237347092814616533101495318128163646382332984386393329380973441037280322245610022881236434965299746607973816761361233625026393327061686290786596955753204134225510081254882097441792751794607113667193564014107104027218597062916022167474604081418965359279024372776424531714998264210979741339345889536087759155976636148167340850335197803247875873775839584224331956236434488197010464682195845468513917561702815684943830124508085591666852903401471161306067604922828079787298419558108488313572076903448646759148682448640242004931188823529697969010855297071760743629195247773711944170081631606358235318982427503570604190797211342159319605849380167455555530887911761168734376851621857744529889097300256264314707343758152214118638170481955641937263721500808248904641643821417388433539630308765044758723123843910455173344007833029277337682415199031593388969349363614725358196249512549119679253858051052514044627167788729219474221496711790191106956004193764572064178973768606707710701669627011499120672394649726824159744938945438704129151434705853142843503622551547699064663352148842311728731655070068847942692943504912220448915281929712685275185852016205611092743175775677610309980727426418732035925892629111617734485873607825581334208010968847888104782128687542667963566882770515977854448946202054588942080614607023013481277636589182220420494140820287073136545178980499055377796418206029497366598516827658502925996633780082825311647683363529959978100465919584920535696639189924775123010184045652981511391958449714062805844574559210942261840300492187002835906211383190666491053707142179530201604766027109495957343511208253136491498464539948915372271996385167773549831506636137484834889115401320195911070273811432684847816778471956378829182275771937676547903998374047773928642535023547088046097475528416221567071951057478362486546374269149508230625105187032884406080213102331324198966984736805136092961273746166547306912901604827123179186846542124089750096349363715859918518023560794355614041502655364209837242405392933433197552866460674273923710318783882074536148310447198766280501778475972669438548939606912678794374076291863339221919709842878556444609907408429744841040629880136590348012704434826371841427661316528800068721951924907089650382842926378703874903761294379093712576134117737587003622584947001756493839373132429950536421924366522628402740840649687085160275565810249243768029822209652389305676643774360879010580398452214447273727581908550394548454738415710785118635933661318130855354376675930942211595909360068595982473076104235501447094198523982453112324054125537765676422601888578203059013378618900903065159053711827093593070856383344615783103797249041536961922426146862769135206189418155056177927857928895196341205279192285142574770406145472101862972796635083463149204271238121098931653843342146703437998554299884742973490616401290075506097190330959918309850789891886373333418034139431575444217607496107719601984669301397423964951964094410031567686458335538688680747472930104878376850845876341023190308026207768091009868181037313012558778260020267939609928619394964422201608576282005397555861870598193116722583776136595053473681387902498971886873064465383581247568908655771385641761508016132115190422826071592440356508841198861216194260895029661869982431454855793052740619319275985481934931783300422465258276589056733925249962594447277484763965724391957627245314562155339466401521463345109948165454562471374849181699972168661214982852316326372857694888568729180514132141251660006653663429657975483579325799869333983721592224452613225135617632175630592393333632158004688962654643031914397248879499401998542454383604730888058971015301516530751284806469452517418768764149677188649919454861900583157330340346503571619690801822150466442419886032698747290853086938802170908787563423115772266160459108654350433902532779324067481473288005568657814552468289020473026140731056595338799213585623145638956761602172911904144990339061085682276568964596823599913513005239431043167233252896328048731082263440878208543510562512565033024318457389153781915137742357784483452273383478159382546901796161683507714395367245889796277983277843771746663023660303993668163251081654130829844589080628651683294799780930798294616088967353012797905962280325629640445015067758562284044003856231484485008787214500368309006839791604406170691695480157450116020281805654562344054236275954509260557036979666275011874105975122079924940261027266502353756858632865952228311033418952996923068373623293114463406861341099793604450250929782283369775255897078104984936564327203661305612592343437750266814857973903538803806303492277395037037901434722812656413917936447742653967461566573568267591533524174771511727084635434468161955014766807621450313978432110496799142104744735310506292155088047806449849354180713348517069104946440638248874776192888504805548424651025842020640389177233682962974116988497069895264430500534769661832552483743304634907497370794366163647039440675960049614679000626848557950686740527434996129800669010429849490605344282723860686832911491489347139442047841915356678608063681012376194096120045766452217295710454873260093019207465265638401316316920482869674211141673682098566510112124475980535075403623334451791744256697825843535481495133831736315097267695817469523027344888828794076145935346473435076225007387137850898025273843634070324433099395219795807402051929329723783512121445551081447434414716929271027462490389408264985507072779638094302326114745756905931909763602734426921656623618894248394011010541099853896127002045132221838620031322245688185106594100086587264798751533125453980520262154967670465276870559942285733047035083851254263031602840211798941798359219303054296081568243914276763243089929687351945438409206302313748541424831712818647707330981250531135734435176368881348901442009715077431794417958759642326718968136139981157447424705538902095080367920091890797434406051403291870553120347697660624142632319080186827082655544019588644135426950898811697080513871775960040982767954638340325115747998144294895220859018033112295581981214037299919467294769371442216947121865755999911769717227362940576521975603766643889284960212524547242807011998269276366866371695045619748337603973745783951281533594965676717881267847566311216189535453400211145276899166347060653862612272921232065755802442169912992686983834342989813089262050501546193565810034009439587514347131583434671369730094507123970807102451943883342707913354114186818083837661886649476450134291921418185629116602378108743059512200235830351297471628925262660443032881123649775307310410231007775070487827480514844752343619225597097079892577647980754406927300768332685686147040231005902979612895151184830084621383978241702963011669418688938185443376702286519653006416461139257305838218898643663363419973762058961141243251469808253454173096960359965127829972235053548123257644667777587131167648979207524365431227750283084920239558354332852877566049779755525238274600522259421373932188881968222736540967600833999215410610876090073943720934442417269142108961955396356750350505980131450138240826975731576903869402102810107617899050144325252562938334780057178119987742389303624244654706070903934228490144382476452975567725691000029183384296256196806950964996636775464064793298624938867369217805702277467354011786661925348875120217034000153296975493091359778782434744665472999505964048457044769865649212157067923060865119206013843203816688377180128885719532821069560327307626546702582024438828848650563772131435596883169877752975310862412229142487595818358758486400969657910210836332875914081450544544264195533513535038719159966934159796718622025554212085001094745539085344722757130779981513509433956828760958392871104448200930495103697288994722978323904818754301722394552367555408605438053896851541946444824641826934004770862144839159201258964478414557073508239991840304633665063401212829207283615501579384996265859238073966598222201618935305949696020886859344129728560432309538188020490121852910172582863392727498942066178475228488955191255355241494784631708359697622573384301873432029762720339075621672219068235249433336280224084869566834590876537841274318362842537283739287333671185574193971451352694717005069579392395511746385805797550485835951947543403033541663505733011203105368406002534588013811222073326368707024464477209321969922057301180373800346653287781401920780207955593900335907969237621225794130555401184957452507843314959084749958841103181835759967968064457100470597175439616457612276387478341221160356391662710509516755282513933689536959198188250058312109191699675084359201480690975737953166347282559330595553684063694634145466781845945700856957977230713194050429129575334893510514965552422113459268561828140900784415338962707031047337785129702631567937393542893901931536396393100023265450151681611954162119992579192728278021748022796925117723891572194700729028181067317965245007775165625100504485571586599981006691184607229714290078449440433382839278596899760747716505253149352839846670249754963757700532012242977904057640946360234263639114356967745390503609869046739873693896509920016230347502615985273712967371760268769576994081311000744994229922465949775252285058224897689009925069308074656657078123535812751256286812920148527970382893214450145021791699375139368511510698013015793310749686551194413893256554972854225742663159423408161746031125469848124762827639482927675994795039085039123102296563922680999388974338677905474946023197272487350738648521260762358198436311308178863961929189498164050602706126236080417208293286140123312102705254139834306021535334968388545635579297370256399998597253590554324563984838314030112367262083833364470465608903015531364867523095452711453903711861330025546537580835840682450289950007019918929432741138017590855508164917857533424485648064647299407708023064647582461237086373217472890589794781945917625742908289179838876320868757690476225001666779358846773877438889303471836510793020563716202518251864728513487457608778606749967867017592569092854938032081348088643075455540810544595463840302917100934209576778647612935889967399173891287224669207078408249327844534699084934763663297340101843041492673203033633171533384114613494631217824873919113351533322696914871952740606248024267569298351997221786200054970689845487363691119467564490071683715235708710591950600315797393620226460096916335195525854640047524981813090732172029977522854952034330805027033268452342634693420407524178498845992363883822288416778611908076259692608997398379966493296634714163668574372702920018320884271515905168064425038122781504267305133023342374795457898102922857243486399317242874561022745903201017637856327640606111930756226332555300021027437919769553641077482015674337035890880735603185201314463388463746895488688421180347483662287761299655458482495011951518217383742686985904943837532973261118308355914477610817059762482886859983557588982527717241017152472676918826163513649123930143702250953527174782246811926442935165127642418819492486756001107650259532442858887147947703835122806263965667837309156138413399892076814528441706066450696743324525616603150952417050139089311902793824326132957845794839558254379653857825463244217872772495930854427459232659667957465033086357481756759092162810548057704425966557176942142123553485198240956825674670966539968222244911308377797370020583933532187134843250491722820006691453182182995263120718686705747252574698012173093270372039535376521636725317187016036316756847815342892055890717695395173482618849490411086811525069359169331875256294491068908786113069875662522313864394822317909513018213644656811652868982004390209154531941022631703218272863158538434415792260927316153888218783604779475487135169362653882804114233172994500876493628005152417738986802179121721338527792460052435369476130898989120481709825211545339306496465558149823556475024351011631135171619653048262691240783357228043006788623608977957946106831589975132105869766166738815758369941966881619317982852147372353857078830333018577506954201875230632655759771477322767991733432099217466458654852536631114098093110304381453356981307007373113640572471623728841956972515728577726540789420956194285781150139699054608841686328310346768926185202324601041906817425635585986794028423882805473989439292004979222638161329544310068247851962514327933758757785884798111687437285451919350771949475121653918208166642773312250154065420959640090626462981969271504111561164180364028065679324477049561409340016319888298942910658704404388025183228944350493374410205939841677424460594352850193755385935625486981852396241030106453616905110531053281277644111419091154117953090420371506251783943064383024923210150974186819699937222898778452712827521860107156650983512782319781045808817718647404547933691016351200630243586798622761959357833369685141426945575036912139441752556220458437271193586704060587457010174564667447183914828529492815385682245795962906233449123365738011244837032602414254684502421223086321999672383896308758715696276774549979390057587245980568900610063220473377683603285803136635497516859058665657980537591691571968390162541875616176331818422249804818283573696479146736851789390660724716849194559929718847514889708364429016328076583164685311788896684249149659245461772005170434486936114649052195191153176053014108577058962087811990824755128755485523796485161559260138067366684027163913804662504053129572896680184233680586143224044128509630838694200780812417711904346908102006590485055242003119223239305924749208864443659137582642721833716284218075851120102361759454916232995934334497495909131267554744957121420985059954312854205350930987388350108270018412145494504552091526790236000038924952993331945322684775218102971228400917421289753732566421878462869254837918282578574325303200753984084693515991507548039195121946545612320446512659286985271234937716067197355388317590052201599265813226519870317579524211945477098397215372854358028664273447896699871177156878454176000007746760360303590092774395696450615628531882469379804724488958081541008441341045912481620656264850580199571955916239335966487452527866048309149815912117851283864327364409573710776821607810615167925477307687834667333738673254442585546677176477376259657077096655265581286062527948168260743862468539831641680013992626023835715824468208426303443427829784779340979653261009223248779806729515792953733937443016466291462627907788607528389873411498293360390984543721635943701085352873999721040722654082748246400121955461910876367589724152280772152654303250785261570931193028126636266066488846372747339890275838656386227191472255791987948836026096214315518490122105319621213334395885522871754729610218976472896906704399143717407406567660556975646955093797614295616303386510013881778872403712514986882895424798385619654441614749354677851649088641646562988193436539918445996840403610350669367308478834264191405888105911939661557834927169551108898567503987889462313326147158845558252986829923728202401170813431444357470663142108358343528199977108624445773023491158042055823254715246332513871224567073205249702061786964351475033164871955870739609109297647368308216687583426711380893966258792915811923255415952024263352358866949598675847928141880904952489224037627662705510203527494640650870115872067154652228010856272655175982856908384139189327343144934488279969701188961619648708645736551371870709901632773503697315253678945794397920786079696982419623197269669444311281744124147679577606093937047811880054924587055383967129507402745418586397233553396719385922195853190663894202499767040217707852929746190878144247492701480194555407120350676857386638086475343537392465181722940694907031312485413282412576541123252287570719999574368676423325843949244810491403659208940605818265047849086445703598800225238604885181279405199588954566236557226081332946125541891610032080169936433793490468802061074556282115581952232181934070432387309651390361352694842125298390406673492972407035196406539270860368989269729780214196905588567327269867190283409176573194868620107751878731725842819792466288254273636859288648072381503330227338960135835819089541104235232344083200885615556771165727751081939015406817339950306341177226631816961492003024619847273610981099471997409426762312893799188834431192583803708663141716812201593170203709184812539162499396400754509175593870988308013974611260089255399601864039512834939600960009848278543510852947604860897469971893627476800560052167924286412884273834988916092402745754741529492099821122371758741683863712768703135284493281250234277918021431016815123492465222377596707933315206096613692191168258665081795869097470569518038319852772603091106347266674037209348673589985002603652728175245117583535272156197865263602874028019270813334700786230294082220297497849092202479493102838249529071413367898621657587474510136475210054533816326154488774215710727441701602682587258822619660554033950648083048896056565766971863835514924158874252473413212082208519595564650922548382453230798919644177234596030209890729035993207969584933747074766708829492603601192872427950240803446991880577860181411242093440644398979699434341740467583399669836294050895186803637729598212668091336780134113427668214252223016642058769843954675055782652738931417891508656549633728669712843674067689734249864304269457137793152292509865409110868560362467908459855496823273669372566046604190334041781288005672843849165043771147292542108633553121993174823687821642185330918812741487355611548403019987282822450442935533542208855405268515728127542299512557812919960424544381987500910918028966786094687756951772404111610335442497297697820074780850810070721147083175863692168657830937557520133619232528418756524289050633837000920817803805080399703937534848235990351270151037863390813068176988365773272108977084866606586410195482441105974230661765098275129440562965744754587192506445756431499571946470112487122571701369505218512303731272003210944764255506813760201451531765246815391961850901734655183754550434234857401780362097915861063005603273696410380625447894241020351837761597538805804482338299316452340097337220969245275619449131141421805668115083281005123378882039860157871589178377961821418490625126957902426178302988473121022341724648236477020833973741431130025819792760594104404436634533737473201296191218252493257345197934482972911110951167934072332528239516780143302143410372283346961931815633482402484926594636693415286648550580026085928415206150267040349693513352242348513326013005388730854672300409393902556101781232912526629755302716872808982435854247757633509453326939812250620271391653770375957054239187680847852680203887450386616975931107537055204016660478242412853720893031618941956292111958619463585259397624456503602709029160385731543002365908270159703271771428567632509904100906136366797100220264219580620140558585947295678677610589560088298270869764976907549935678477107913870583852245254513581730690416223625101760143081988538592093420341922806798478229284347485370293049201450168944514319793019447196155364120619196397952603785578534537043059016745736198648343341301726597274646491610935349211774209298638644467654318030831523090837150409139269806772171210754547354446301706844641603345878602444279697977219976420727095652546793700742694843497403160542156881294996415221175277809371029735084023753176585989617068606913284051482475558774638182708751173748947589675373628566442574496121704343075833549258031256256649261415281916236440177813484331919603675461059840456399344340192140021419364109511438794655324988952608575548726542524122391320678931323305353760677316067053155954133477156403478482951228979430792179197036007302819784088906555245474081815840866597736590377347371713489063557206445252782673149504027676106245326422251379570427547994877990676749390533995534011845143477902503644370208738237552337827335661540250471469409551354381795975894915780423814170375575307533335423362458042036105207294065409342860061337545597941093807775375503958640616454441986874477210385768294864964878158033797367067793657568902320538932541609058733749245104999352856698991725573643109229663661818290321939750493395725528908334806638510495836381409230087473288468683495643581780772838404169737339678438000402750318756573445489767045251161679006962515803479372162546913964163282416762451971182387929335968503316018426746197061107505348787372094197948565156812828924831754653238236285031396682880369057380812397518767486302801543956898584845149110450576991644730853503669596769407660770980901465204196670794669350090910970670484256867269233737722860648124956925965414323220464050718256452668407665641552826354080375113487418129756369796597125116576081074552173263400751937963917993792605097559789279034693558015452797032098868385010361549349901359911398345516672292598315420311247569103924563976868808036139508189468316589909276216528715510675926575014048920855969026908518168399797160286178225878652346315538818110414462138824748176562626988076000974741601446942916952533027449126583525232771970218893104458929086976181306229487565489937499311668985672745236977282523482615063296936570336106598568466744072487623601778593801752217769669972410112396500603674977796681727431195054747883940053610845600473624092528192307111103680938223455447514837041056023682054964175751760845531231702943318762649746609242352343700346957905516704638136627711925347908842923441143612789512833433275125755745575480612383668011066063583877693553743157315949176991437529800041468376084347261795781492258206324385840418983567752361863491904526950908262349924247299220970649782190167900991407846264334283434408964669835001500482747401890556542309644065904751374484994225406306891273539166055766117322927300495391158668531483491446047788727538854688098876116735939297228262151786781729602067632737900087193500539634868227610322505637720750029766391843450778895100235339473664735304954456678414085295947387446740606308820096240810827985657061701573282113428011156481791547901984049066464084218724179861423194218112091765292525091708801690211044070832700685971980054934721305667984528711116201741162139862566756143643666060822820942334682120907449726750109322211176955547983087518305522482977070001646134360922664178628656602164595655941767519526588944827960709354309743896866711434866900413107528300706459997232623707791136145626652893992201619653423800155203125069384606045290793568399039933819272517167330453514867428652448627995854626524734608652964097563485945941016592334848275754345831207928258624927824916282256450343137637075867502711039172783359146313036090320026060133518249150070692765663021016147631651452305440172295102659903921260976466939700918013610433058972298989875179156757544938308593051759934222716797422138006600985566292091601537795615777552668385794242594817480217899223243502898501527788401352455216479023141879341251572048941240539150558060722201089581743353091433660859804779259195504943992831874875661715837713810436717805944777568091910233959459877415367139713118678306550982571745172844666024985094860259559498395117505051465837717178009941204092500597551043581481283758410090001521069475493881076652785035086724349287563436559990203999981739471361665149274951495968744063872237377464179753569264612418217204271782881614658074769764652086574460419502468439216026398204718670163270081268304441736235242953068192505993400112018053356135598890375012168785152501338787977381625860300796081996629396080624660714170003047349871519162464610185279564203084479593626888078210901274237111787389257816922214995828024599853963996889692439950815687861417371754798595362860178001960083906344390198365848195022765131304410490274377888592777895307144808584190674871056155703678895960984171270781417397003441884073776099485022778757180988608243374164501905331677264629636898409364232048279891889141012792415942138587106367018378959306701103344045126653739715251191520792918921838833906224808073604657680652837760852105924269160489831663829715772039533044779235618993144656004482423537925015166440589404533028997006456607752727568402584637193674309624227643026540776731092298197365722580934096295318006920694276242502868680190425237215165418804662005047319855218879061559581467812283254110487802441025819545634322911573410538026339077427239765316494186076454409812304437136164534417120172872628865147249105588143026945084859661817571071569033148840950217067455237453058665796698727177816702257964872107461961447198180837635632161277834837342701414708427890119189286485102333852242057368295587369255603044831230713408579113630016781675755708725352204608799921286902262118799870068800445103158060762691584303737491264363929041765359382338655360483415263562346094399931330766124578163603561233911273711364033222415509046743438309834385273979063150105874567204573555012574652901234048825769979930537507227356043286526254285312461516558265294409176356125552506183908011594032064144093783690552408418467161064769602811305143619361995450491928130193174390242948270506528654163677232076529877863325637296981824026898952354921789913948440445208589356839423735875561762580492755693582448542277502153267427275613082596500216301027157176658103122037406640653758351777221550565094799195330152044305572616677133813119591508417632086325548262659742929975301304768911542745993084104772226984664821630565896944085089487988740203826525544461760489992876352155462334885518945652219342393892826411506411927713292907802494037414266466704097354393446775002027881018499892584142943374251714624836585769152380649574001647663698302586620915470007392183284605321007939073979418265861578653693965288224165960721243415567386797888906684632438336144455338975756061545307789619054110582113295735175485658854064688173145158780438899200340220825481498156464319549164391367245641870916584843676422107631766764173507361382956893068839312783699920195168375209217905025399599346605118328425521448299836141601695080652476985633611668433665983226237490215066085959547679440347823739144728750633718958309474940427742954125562938247479790669390676777847247490710902621461288923153658165460894526406188033302584811322943729923369369894458258085723501556185984004713021955861724544363808435878641544000857773842221981255513556935063357892846633513681593268270549620315223388472160764063968093581149464383953838685226178175916410518463524067079091670053287286512917421646786241862505741387870569778112352842685868726167403456250869245921931019481798706628844386988582820439677551664090078323579990848988546588972467513150335770031509391214516853350790405656767503198204333250538055694416234687739016596028043904536029510104865755340944440588420645312823569166973998351468367315761117828239796774600900794179839576740998625057594424824921359073043486778196400017306419291341363809348429135826090023040344756217325353117999472472038249188535038172227264872835543831774286333546513581099196621448823373367333108558251750287098192865892642714579901294695066037827681236353400565129481198587896480195426021034724438127961080817133765475587443447969679553734311955696540582275996984265070337954619547755146306910645564870862257784800946390844134883775008579234957587111760782300289986638816989647208664122399635856536173015288745801744876445529090631099639369067074435523841352466146508384609733596081333252274274351976026388214737003059947002512228574117887676057473360106775751646775258419622478486208118701971179303485795976607084486222014627873144985834174157165564693946531247528618323944185842671574524259322248462507239348300757663263883941638556352786907620388219331278767999258044649481761801515972148718073333241943306785964137291075679804438107025220260253685126300999411985287450191888512052422630147466019791074744907398954922521673486228706135427145915201760973900608521200555904109164654044903889375809777411912896735943244854163981818120983332391919201742682671723442153628020174710569818279705764742625505360934444773655707463476854460833012181353928193971998010066173133386205649578246567191643972708818668528897644298297407191947666131149436279851156525008297631394121122213479310553988262583163453980679426498872584185384975025817958696167323178201760588982116295242932962411083376578575589637389635854391820694133503312926337208029209249119777729674356508410598298815507804319785255339550489941320991030671097856008934872886174663938849895951144651121060455071966187293322857577226027766226660968315730586413600993358362535171430926783279914986072677493983210262816644902148930702962501749226975679782790682677508923302452208021279134311426577379196198531818068116019849404022217518031005813060114677295088670563228570324348205739022603147455313434634280489190901849238715533399119363241492044452216688891399198468548667559519151373347876230248778039760376603290444972874749537053206814697251315021675532966364848321320777085426185248754631617840793258249221397055200976231879972307381600814788729755568566608013371776534095377443914671006644368255022046488935837222677033558163888594102641852457766702384005751670609619475428798915167288593608830884589986702466060985862210701409060941010163058523324260558356346959735146201511491925434978430767695560146546645211960644083326375041696943813631319754091402267173268732425965763897857299378793988735216281350214423114670910360891537454362495602388890900176816525431645497507896952419827418704269807396895711436937935318431015082057962232846923872809522273258501829265345657104663029207837627486455126789255939585379973412165504869202456970184633790713316245382245741769789667258951709485186690488428052196164810139561527284788000200414412718259493214766562886950730230836499836805408818331226455219523492369157475265794653470283818307676718013289008014404905037918862568658090527726818808377036701276001909686982855004309654706488744646663717921596200999688026362640237458722218298583198480474496434531678222668020943798253705408690413648972638531598644006912325558582477441804550570119042116768331166760860992776167608231581414194065578842434367059312129733960058947516726894019864800696034128940695687027794559230700521581483130374027658861249282927386224575872099200338703157672489128457036127432096296984329191142738656419377981717475178449244608550324239577302395020749711728447183508601607494945888031882450581812550920452339507277239494455754181396133469374161129919056323723788587604051095063219376823815998100547651001615926529519711907698113070342244514098122245788557361203523396340676487773199123418115233070056698128203319459858534244274975733588419841197447691161807894115114477820567410939436407742502487375061642061490450044362035525400032157409040214566619804668733516381781298989096081566570409135014486117858751388858117772175263311665564898995706155293067094518571108544555953565366159913256311469732730406180639985152341489772970706572079971933146392606627026437066584389414072202674690707228611287176055334233155055190050983559979696952752480781053582811904691296033916583837523900372679634515805933194416751961416305795578364535138671018810348769050546217179883466227589072437405456215121826130405016526516984277101190340215757906816447186733672598876398606196981903415706226350942211065588831334387648850225161215079857395084018691825625711105743403005550618793346740581644236589151010504877620907750597891349731324188266339144195283441779174517560966313389004551401709937997741352916531115722880089687318278834060184116601125637198591026400667102035795029586212733775901619883780059136469297799884678586878941211102832080316039703623239903675627229954787135288280582406777125681356278228966532246467110681967385109271645583893089666745607815590590718906331607953745079849335402781810191775132289018106062708810354210758834626790433129628694210994605799676527690711181941702800896640997480527387722019399083988865607154576338041353720685537957945755910778555404820962517004669766856087524582639391705378776913800112189854305218661241471905113291452155729769835200958405849060039510322513555836018119971829513333309251264411849117091904733397784878802577266599534639398202703258020662198289344797729230152480298274275210256702170099373326366003712577960461285556705353744450729717969006498514787108329801289548755343202146882964403534455568443254551676104411528714871422893943995817974591369715703561061579834999124088395007266491844433548851371648153175373481982791581538201487917417231647467680843946304359203711556005951923013128687315963763478689483862234157914351998453304671639063610438771928521137851879070456851269697749288211583645557297670219045035777169490391828329690918535691350347955698370144714266987429488596130583197213188114297867766786228749183865327327857561865892653380813862060852575910654187090198623943049581885172254660254718684423684303414715090001600583817770093812654133130134516355206034632962002684275162456047300055643151245213554016624983466423857756944358580413175625344766365546482879786372159749798647869463685254802588961557944309501992422805352240070209380957084950255210325745446822975812146706165100778690777145890302617749879348729902772920848496695665806921045248998704031636274305721748391354412803483474934427380084485119492162234705459156620725454250436937973187168920097997110818109955358301435567129597635051888836890148158707229693254576602269560721893308625099106296214516893455211968414210759616295077375932658483744147234107953327774039951955113603103276719402205359243803555151526457338155265979879654883176183112297185895978542851838316048729897387509875781979926427816067981160660327285554138793868239945494825585869909642963902094786706466345743060435150503916684273009722592473458192344016477473543097938888786213523697321956448990269941913121303343963955576408183440611239466576457527175958962790806659957110460555801430271315673411271312306271455997163982596677202149496299900884781589452938827303899630241275210880629868585579912609065737279765619456622229800101908849067645735169859650733249937975090057067878666479280686539475111936375545362933460016092876174797673337065874027848109223571000185883890420066219871608838412852794714212572243733063883342322702091650328212790359953285182837977555770851979625784094965079799681638431161038258194252652561159618553040075113383391497666188226957253057168517029048611261832681947460828522882372129911039945327925680330934124888483090689958336921855685538354996316621159572312675613947260183806920852366123743980897997613015517445449755469453015604186417514878584992866426808918090033836981038018612384471122119988269817067991688426978002723833705896112950494305893155446075627104676042429800539191781692703814417272575342796054921225870217424577653682357504691468909279122305586928240872595544824217832897864913001597262119945504997365011003256216846270810470431609542386893036377862074803696037059302174975142015768738552686034616182938606073681582456465767572056657976879149538431476803255397674337901648621584062133299286652585229066727602614992489449141774360384330176366427543717423382444107610817683048938811953099401096471644907469469503253213797904955959133776949325438286271277509567989677914616358349635112391392231565261756594815446134920991329704315781813274018718710218925057447095449691050292018128926733854698663267299703666454209517035459882734896182867862859220120905810978762754996898807546538163169888466778434215659750774834938994733790021631914152519087745042044318484329882492832033795638825185445146388140154772519091674550780277476672283088533831137812831422275084106549774604211971119311424621342380085487864838010547230533588229679022827294904239518571442776268025269907839730661286396228489448532764498662858915005809561707537980922906131329222150861350252981821030807272767057526188326634035542636494213241247799021510194465619490488857106083212153587168931979852173028966755153666377545085198121958794759591407727324197608220060084212675490018972457325123969742749255585795994886256519713545276362439520484498711770584094747208736853088563466286623448408908748506181064676160481328982970144141957167454833627297417403967354063106349585710044773981765323095059684725351898054934024074465439782577327649891487746743402199094715966031291458149759599003750991565085994161737471797284057105332219204263685963340282569466163887075879852451835676694320963119335126528870907356569145819669935781167003205666286733216849655475444464153861881219623827467583677285247358871231090171017378733103531263488452699039546340955313474766594367870568128460731309814771679168183554542183620920627447615451565767235778021778225554030120710598741352764275564666655155096025867646276196168133540831621188940948468699969153628397805444236153343505963207052749758578450279542649228938754737369848365394204586736600265507232689032873107451376809200644121015365708354669762603751026119929392959470728931608424097688082362183570710151343777355584864528948292577801746136240493082780682181637927073464452377740673262564221580937559127645363762864103410530322493289610629623416137675496954185509761738301676792924778928723194439950806458690212474760334157392130616488572814735348069165878815982576958375029197721948407269096910038441380458652694620601066823519460434607056677147184186141945749370728798398913832315311114652439451084127042178723609283500689448162649127338974136796792047575096561114250696535420593652881869029338062597741482832512322577012024923020868374008188971977756944487694805162948249028193019570770021367919533382853207610255628360531422043125010213557060053725907523526379754867899543122233626103859344838394196138199944967929224591534058071439252953149611284425655320882060512018426205579234243424702231543669043257581120068004310980125501013041215242143688268131653239773948902454235074089647335057999870055037182853107238326954365593436251484513641014658229911265182398278056064630889581788227368808966099777091843501555029857842654841032279860701274858806789528673397538660336158557616098610408395383138282199094037578681749185037386824667933609953055554579765404818991909219861988283572553462441201263373729521939034348864967729262221982363689353939264091084780193388827960768706109561469612156543491202379955865320901175408766197526614386619927248592312097027741678605680083923665518409170152582789473956743282870544543145864843564078320514948873535518820317097357111134322564067614919894362916124072408232050653639997996997536863776467747944418862456756032281794501992160949462850791773787212087007232844426038466869098713317432122386130749618369810435931692672919531005784285447614577203058680321373836696911342421763081623656087917733843124990014438234199786981975565822086475795651503715360449390209668366955523281474372919011777813226860405539219155125089415789224725304280387651958975656923934446621719644308053570146619126104790850646480897999654143351953497061231117122675362597298660341795598701449611433819696014300387909938049149817497540845095240133837848354080577703276823339513562894760056203525109296295415245166922361988787466793467287749077762484484304193472010316676315614441660972689178036611314419596762094645402777101466557034380258018675102615866105794360952001123831019791523541844546940904069613366367735877012847731958091257469830010387827694272497157512439053860645118305683179795312710014717990902475706171505050163873881877554202805877562470619889301088817155779745778513980543605508190996027291031747743061914737485322690219426159751252532755230439923008451852981830158623743444723628576678882127407263854860436362725702462298241441547303050940103827893696442599857275334481067791421162109254387747226855568064303906781256378439643196189046028433418231302660776878353662682812609505215062878982085876891691869350296082044623990800181942627699911550917041719248735763666019203286151004763453392701294106234178109127049795967306190573229743988228013971401422486462881108264922528378161903564713466204233320066720651718406431509861863026204136832690127620656693694330209879886463762693989111531783748666001493063256830773736732398694698020390946689887882407989713980560812047621675295449164701180019840689206902087705337892409640277300032248486654630507675050196225047679372866406720357918178894155520190735030087857917162054712015451575408662745687660770383535904356796639871324363490248537164796575264699212044456933121241941061069458687419165003600864496839710699319904647414488869152332005660701587359663824440429977742240489037259861623905321177401962904784918243156754520160898676550681188351928242880948842914112985084695363556405107966271113603668181413166033856106650065943878919239911448826477704919713309812877289376906928177570567014510282747730957862377213380795284580495576259019003705435756470425755151926929105061036572015420392878284129354611221625055177310533805505352681341637289070122076613080121283596372606658342788428033846943746405043002117918655440270764146293067813725825949611044661975782495652852355704336244659766890114353038105409841242329367853020781347620035460645399392947762101149934033528306943358306729663656610837732149040394905337522647991934887126860933063154441565825345439045487411133609738562658211960048394214464425909742171021597948352113924297279093502036513230974976718960870330775953718548463133280715529164550177138375373676721779672140355558786849715683290802507412208081545150381026220832926717377673136908045054872622491941719576397370013997952432081001359265899260999940751061730701934198411260157707398236824901092302897175412933036491007869343550915449721019796202176315293232375298845727869569642653656446272171045417544860391537367777965014158073144029242797250412549082394534320378531132982769580584889246826570899925944070827385287603992353588798884980308408382574521409454664888425578964815890239422785759020489283656167415643279982408870625840993013701550444500739673397412735282221345617301402646805320479382582912271638980664394378566212877441753499335215653832400340599011259153708238701965044768278023042405119905393447169120584516075286053319362570344141178657712719610735818923915080465412439441379065540120294253278262743155212811490526028189034596131975128814937511996275525729531918136702265132169807308254226228456226864328971605611702549288355832513077010171384435304868215628319935282506159778455939944517094452526273495599196796644647173101787914721084212799098835164904554669569521459091427752195898380870649281041874455651037630852093504613179697716285226173864026430568834669507860715389524167496174978902860257988634473040232972420853112667774043265028411787473060934607229634656209925035216499748935703746181145652069481393814188539221924689081537009002167177228195376886393584908685012439705926616985253480459838861515265027535688572909655414328437488328966339777298947047543062702279802825564176718247214549737322978108755802728310977784134361983168246735540748174488758029613155848648282806671322644428122585417008989521240309187009085639262576349773590099410123752132628026932784180955183227406692514173550547797360141038283143048073564444755152780394474549016202936339756464323353987799373821181431966585886782131431631135510200054397381303566926980625548085765141260664500764286868915797126402987540945304448784514493749624843209917883675453975140533258330318871042921696010781407851857000384491590493326877531401237149877680869594265801721614249184554804744112803515090003675657946258619672282552656487514319608541944137468461191957558083163561011335252204646823321113064901912647503088586695112787440733477258413279224697036427415847927081902067700905761224475940629198767441267614169643662461690726296734181670075994088046844237945814539584029436476129963190667812564099323982694525364153645380160061567989627421374739502076475052157370105482011580363937613850753574137869247828883126475368350502751173193968043898959184306536802209238058788674546916065112171968917870567560003252807102355501055095663559738088072349709489870660122665905218792096435556709541111334328151304162194635328055306929489692780019595524678869529364873726712042187152641879630666889954643089904128527861778737660473547093828715611469867218247705871844370660770102513819686926142259749645387149329854309264861390866616926234548417070525986754857578800764491390950426100195593719895325451152451875348388190777542019135541191964322875834530612878241345069105818296201814345131150207991389406476397301145896702752735093520102655729177240284561938219916426643988177774508990000564460003753069129271055662710150613980254148632934557444428868079211270774206877836267697817458115282034180706135649223826321100265913862717346665951261731575250059510237072392669003928187129168483251685270915406124841155936816470433921914264787465312722404917076503026328050643979370430529116227556660431626584948074350821903610627301413312631784710024801198573383669797157047862360489156449138144818973948542553695051690268157064604081847346143128667457863319563807614917939305036244119952277202883281293201635644010308395952389937977795987633767555650890335490158058965711622066657491160217106687786876090628301913102367950092975147463225944867955391093532193110949458615692334135869584353550274701731471606817864521299300138018974609696082273770414729614369439594418038829023110898362648508837196184564152497949824476467679382481606486635036122290837269764588153563096746245984420988475687954397570513001209158057917811280609087097917568400671375726493916866318637208764101786074888076377708993496791714139131140105453443538943614545775850291619040991538455960717973703265413869179299889042638002426706512522397685575913919323617978739151976638424927858065959193624667520574714821503500028671783583551712152268132582107015066633770258861589838773068113675669490163089705326460912126507998555983366598932577196458546628131458382659826707884685196951680453560697160857394826020890547095010100254219212242115469938836613239611276238929642684862145479948759527667627449937079854163391951536939978124164829507744967934212851500786970236745249506161499126149315754763185475531535777664480025477525239746858007196445425667156982840553824141989419803796560127280108009879013509697742549986600985203885753477415224410351719091437141769348488282107046947736038282325417946332266769629654767559230401549148416738113165256104302147342182518089802753438234178563629826216833317586518565770879005975247637416367494158000700077177019505036507972101926025392548700123851828252678053804906737993275739734974340831714365360505777507473242858438738987788399986518403285853384911090678564073156599306105501392865647228454589539898016349096061405044617656068364825692506914437793887343936478640492263681614312358600389048802785436686922609805217728941722499773873130975337634136345593815489067140012465656825470512400633243872837335540793218993688350929800251598740873999160339616540895577181296447548143072628378585815505551127447661058622263963617378907932018251243329869307290895712402265391920133909277802733034065987527598425975502521738839303152635631964017187716363318424675423555899227442910731001833234640108298586205229231781246695207389522794564657108220936725512848686725325598483784462223010594322299322016206165233650430786539639343356291000451622980188618731498898387728300311569139821875029337018980888453508119062227678591536611398181761163985495039743241672692231371448072258894170418338608577309991016153904697257878530128692374934036853685280244393954436380766450861403935484360737865173720929415458224720161018162067553696318537013458714734828739732135982724848297272158470857451664831665324264598303105735741412349290374319157042550457635800400294971217712701749827070612952439696236369059404091569009186707271661160796357356756956552390869365223992067140455668788221521985165155561769890953962267935471722992311720433917432511899634832421158412813504994967604281640628854027670082559906329532296114729710864375258238078876633602833932911186366190068523038315939279745261297931072239264127561379504896391869850239522761874906246631566425301312530949583370390871184008178966366635222842688234611015252013852016817241955128800472654413786585877229022683579149937184394286621543629606987497954785381967485277478981589976171390939213991774335274924552989778059735362675288634270224132329077836251292228479433594865931998582645864182087432108222172747327377714514765260694266112793426413942399339674533675283041785293219340385262580940389009548075690662057897328869252382748686187321478729373513443940325586907657878872569668698469811461025129146407811410612464328917093364030864319644937750461887438526665622960982203424158281516745300354903205396033550011165081272959246062190605275459033768357685036929442279128312713791550084374361058757533615496324354876959901683292525376046486263247265587304637238363530751540001485575114852087397717720992756636465816715843279620293805314961939323667569902023148935591978609876297711911465808868657655757056699156935398818644065590756860781413255400777892547763931384119039575960880360104006619095494122056198818804812366563646690777573939237929008919980163467289573319307745283566470535661660530242092707492694938342710670700273077162523493476501947031837158608001581025406234233163414143426417886751618381934971659029579683445975158947714428497258617225971461918289053505211823397997146270511001971826160189495080222130874238807055388832096322469861181095231898414726854393156209919457958553172923325021176687200507047119824756760088223398654851453362521703380078513859192391660964237051875349176620017688558671427813975037810750485511549361778514359539519981667533319516738849235627557205255310546635040314064607886362755595949896177343134694468944059953323168607721472074717964412343237541145772992949155954112293394175842757876663831224169585039514891053650734983213300373783415870732406810177601717827691002481268878594243414150201253983446953651267365709182087798558432438506482172900786974397143525306382939351380399457896479440183370602513170404749667813419579825203337446264924575053625491094818039116608069970461157021678500677782679974720091946520821712060184535970046307874537981086452842330792128523475845110794791137679909788184748793146253985883395720459621600822003442077880834536311413178465877228199482154932643853862370546910334091574544564474936054118967047115675355774135960167426765779022753060019197568255042853652132417375461845113487425873016234749535478069711272421704102730492931674844807854046551835521081817921046639641365009536753245353722952731288229047972210193706227204067649043829780076474696638678763722006352187857964054591894350025134742943313080602270476614734233230451431168696997636044558352136776441878128400947737290527702020363943425268560322518830064694775705217643067012806999779387622869015600530134142518575953822406883010652643198389539154173646602946358375782366206166705754000490834378297388470521362364681271825071133996003407469685530470548455153062739185865654209948281104479998619005651820147006669457259435532370016958049511929037614147111461731949015948549279291978004691968864409557113108076396769104262941582599287335099358493485365277081923557026105017375470427913326516959598097844399178383887451976750801716792609253460634223876940409217768737890636906957082912024413488827478080334294186230815369077398312446283923713491745408447249202028194532935299659999968300602787686349605056779759538672177495972790165014818878530890964081823037370830769351157396417666632563577767072857587318299603952434267014415819095775642710402993661417176019763341762181373000960756438537928418315011761252810034474660419854629031688964654974964330621170262569629758365931052423887379932137529194638617698079085403174224335436193641850259213558515227895216943487530017939629933887357470967506103272481565860797824746310555709577635403689118054063253407273982073891080188896807452466220688238101653787480741081309946592452427902679471074409997991104146217972427359264043200393331868296551334097668888534530066826184398530910272818935090852322191443693826903677765904159942432576151353362363504935841315131094457057581674447775036008111755712927517225214574195502019373973514873106473086341965407366198333004127831186212002251226599311253894365964069433226472375601883247125103146035477493832961350426505378745600991401975045744252140078107057335756593968586837282245480144281350239722107459871898791382376283706986613706757383487742905930719039065041323885171490225805169120147457707220757582772430903797165521364058927738074837352203197364513568250849181538738933648096025255348873950917027866418019370724382407861931129443456799820693667270804353442358887570933679110532731242583686341408931597741651345700809579445169204920864614312375711382536318290781321495369969668624784116047835981050913932607176557773436626469270083090853752076730748214775108332315324926046939701940726454511758576528654361233635760365031569287567911480014880719799696340970132757327479892253168042361341954965671552742443108493815963690510776589983890165247207683745296571192871140894864463446492258031537616423581797656895016757829984172153616041876712946023381552943477958455869667648883877748588211718376837369457773604338064968595443200207859762734088405121925407759338903952099876523152792323093750411685567023966646211571826530498372310099408023801790975058628929209681143028249507295013723215482684166335904773124985450461365166018274695872623293319844629926393950869421831487985348997749280422351500962820150619831961442159212745855604407282073799422925272024738290384858374172848116885242539851850654457463804402946106534538513383729688997664434001575406222591967162855410805242454307495079896210682858338450962310359737744855286010486283364823918073058885496847507129180038827394682686743888066152746035779202881456784986505270631585225526478019976092450255288132595469439985051111852423074895138286252245636384996333542899146956603349389467365112719678197328848813032244710536016381687491500898167600463617156645474503320312288527429929633543920567987210522547332514566769157547926590260863501784545048173573204111834636444662116612052869613406896866698423838551890202853641075551195466377128208331441770426443699118985328752134788880895786955921291400914921399003518787933121318289639776642165888261967211341749471165097531614417973479108981717841192231495160870482751380363116354444611827680901853055621063992876104493476173983673123480057534247839961211380603524417627669185562983569210133567099513875174856252844501915147198076238951594002458839778855119495434352163503430230299302757868752838540341579028664496128880186667246255820833026558819173679666070417010779381043992526755865195511871240895240463903726423485884052748111886221903911708316458687001584668759363845048192963315682558288426299161871059316191053243239795412975311313159495751909090305260969392861514740665533284045022944580471010872072872758324657014766948062053322736710628902478682379869772407478341265643626149778331209660470437413665770041933350157967713921657356141375289556725070775814760594333344590436203215259409925030841244182210326512202478375083854976279776923430225985786608534066420660979522645794897793857648512862400966381202751147115215635187772536410744186775086609844931825362309467780829866788826212124357966957385818174761216395890434463955888649181966458985297668320420441581246668023916624654687691458170255142591500175438993636137262602028899270794748172273370439636217239367802905393677911975835622316490952280232474540677437857573770285264187133945410439795387576289457908287798752802855627509250609630123152847555012132608088760214901724272935523335948104354394319532948375062545711054001647041194425503436109456915553100230124444678628816873880633870482989808427625925536813817810451337075754510400415520172362765042858629412188342827704073405611073253435799550625260143460590679496270264384746363876980918476753234516525508087840548998125593595093588669550982960597387389162869540020796664122974070069225746217733021679601575915853092601135694565059360938653263711676496186005385630579335498037498420541440842908044023416976873843113738685606226959490876384010757085278261560596014154377039206799831820838297726036085940853959536574395250350160381028636772189505767226343995046227421201437181084435023856728856913918784588723305074528370648802693100921627114630624916809207987662436741384403042619749847925025605309414754053578252541554231254447317196408226767950433349346913194591315432442173587761733819936511037300784687858964083371797789590054825582834163820937289267745282661071647510265452963905861609290945541506034537014439812779156383335194349604352847407315417500536901899544037421474994519960264598247407634685603892838692866974636370769173336954530505574763193773419734355796191320323380714010766880186082551376778436835726435372858313640213504356249315386449876006561426367769385554764594884345654607578081580144856451646530362480538069146936079374139659109918150912899763034534129922461712315190595009479147166507251847517601452305383437010447359792114161704867169882488497301726189696972102791381515522498979543174358156421489707771389342701863780895412352107484683608570752526289504283392766538907041164292274036064205865176854388141682982445801317377663933318319689897501555518963773318306084697262510965486521063526601602316999783062012750939078060539755456370797965630450667013590311458605744308937401306310922063119593690628454977886373628920260881548939062221766192656434739847269710689763446553611935186318365491193967182692135782973799684308016431292290243261618144869127276869831816319343934167614402558434440941608897057221308296938456060533560143905357545000653645353741835017831226476304018370692224830082721201969391891629257743204165295235280852268881983852496227121514027550970105805899009646647646946049103819844768375646684743986299206567189890978584975406424758573487779104499359518717051052740339162331308580937671669808333546175229620274683305612944349429587026181397983470739476037541294005378866435578739691533891928075937090653050573099194110868752155165311540624355703281449343094980011283855154583908828886386434120637420980917816929513724063251657311695582536322433922467002499596842175429141074128300125532670502167013313828674406921218129296254872424836931630029226311758010698750854104663216404455743937367401793888321229802425478589626716870030281552683810692485010284388523628039637845774269714662501021370000104477713191945631751945644138696567358445463555774198116187429205880870886342281219496873944911468921056520007658714504433273039986114435077552249845246857052661831214077819705023872006335781430178873907721376746934830225425197319315282058599160714964528015277685851803714543917229938759967998527918658575192350310190426449608898802161014346757348272269568218847993500461152233307068606744287460075937314675474890984393461861395120757651650660692930380910449613038958677115988631428568543206149870836289916644779226033542746525597857576951173747516379214908241272337284948131095200319147354766936858558871825438865165692802073196094393494034887884697526788304876546128858077692931363975067048946705028565714121561486168105636528055087576918437808015521224744284958908394167098537885068133164585934275381475932154022277775663451188424124756927822752209109285851328259965402350798894992910411079784256504085179993060914503089005573001943189848927895206488276755749144770032460932392423272859557764118162047588834500613819962012348779672618125441128651299946715693404443218888123598926326167365270763884463894350491999680503824219804832669087427723868286952953960522077504282254684633581904144412883062314257391542723310807311927773612749150651420665068990359957181962696022424254268052159185157429381284135529990023523219914698832333945807899202027100007563464551268184397670466789779089048765937684235364418068609636652300204528378395779681504217140975441002660077828050207086714095955654665134489957305826330001610965929131876654024877956394853363206381960882096127433352715056162858722620021753307068557780845738841506250608680913315805831946166892515000132959033242316917186695781307034815854440629281947382092818317848213280774310349367215361550573213526969536218866220529159381532673011771033867486079581843343558855482501309645484810115734191857099250800658804001373490594501013981644767651482954104859653390997080664729084396137593083515489233544769859435958493994303466634573201234516933715185201424720440033720417082293309999177555328467717642717442682246401533582597398732879729509800486438595157587457055247206862183729269914442562384620788566445657941355662481384621990507938449756682826799435241074661544931146607933007076804441842567316882879795370880109239664333863039338554839989860604226543645326907283046778368639042867324191064762545879976794488256167310124133682673989692429988256593707022263580566233396658438588178531994323168945751696866234835937238908094930448253392571201217556029713094731490864207429042500666986902356422012100346929773825908351586526666050808319626805215396637685984396379892240716831948994078711535783454876895654614896509278704189986712078337140106489354533081917045752179669961021357496004376760920422307759296225337021375253793472512918703275487780718473920116005264926616761811301109308351146085908808638474881496052337560125233903120511838125363795468235712995814368609983252140589887936430709054942104699792811301218942358376073208143439915185417336147051185118355812372574582355862928384231343275954290274625867936834748158438858182295609616130111869107639688157291560558852287652381900539502662615600844509569074194735368345260930569346730931258147081032088490751068998786042845171153472147721856018019115484449075076279464821893006312786234292079395573928947380574682489538548672100783049229022815567328404326084269755594751587487456457143073396495003514272121129358864636103564570425426410906281501806756440603503703616747286642399249754302191558227997377874077466584865926229962683031706468628643667428464083402256019131960672603928143803931387751502605426544545903125812873317810288221377193422876577566152303395708476596624394561106458898369926959659760688797487636210036012616426386300183520909006349271285869230408816576687935708007258890293127363727864257957407550405399515234021118988667670489093003542918503594631689029238405720683765124138673375850749085542351740401334294617199381435577895422626154224739092384934456084243270337641471299066328657561192801272056060798238635255702722305515826485700375976971044455089400441160320589347406388407417445679547837858767515472216310068558316616555928542654163125805890072755590064586708302186930002949911136442273258871985025191961588259771671952417826958247731151368019886321448513716202606318613097239148533333430649013292846302001652635160291903331748878000671408207039104309607448299557427407326379425396492959658864591594855783077074112591221663126819931252180537790799353691951337114024568313870405839598562861726720286057770891935734353311643908250368946950822347014296246726145259031476806906923693309977991144162433759395931993154665600049069892662198603525547141574729329495720218127626704300860199607689772114625948266861857898020313575932063455111501943867837379629836236428921041744604226870815230023594083660163817484704184231431557251073982867706153494159567966736562987599996914880858999408056906771714932018650930271276850964599460019003391968614274268708248678277562365898890311736138659465375646760597584633068421013986102952430133667208866973959876229713749402927296256423683617439558691763842279784886010771237669923364657462916676993829649259312965951263768427804404798126892610855706471215940888260436067441249641024693056633287712125206503737724059391367318805833032536561733228314305649548831769313757217080262262362107986552980565531430361451730510722123073610151200772604637926773177988795333481706734955016281075902393681841212056795381167093526703875683321200058685994215657058918239006736812320201742668269917236679556740960874661386084778966691493001069454295523211682840568171595889807987409921929383087974422093774229341589119315713097467540114055980260661744256016452298754352965347572481685380291979218223408437762232303151451842033111379659130983551174447827193985879403825381576584261607634312468021668448137549238761786066299933893920485005243653379578560240430572845966929071783303269171956126487059028238366394214544502457958454780021687691214713820661392653530787999878897854883190057238522369525596485430149172877170980461614664825884159507850367855247065689749614692248583857525151756024854975257176916949043982780091246462585548200798597015772755511009301980553155542157299846794533042447717322300928017378840518287658316702805050112265114784987383145052912466292335286587297025179277949269009269142657601968906006731604868047454690926748424272384522005695907224169394227700707356807632642717234173872948473155209826509441350706122546024439825972960395542004502758140515854444595279921578014864952257038251696346569561775353933239544492405781067405237179847793415673862222749654478284671474990218578481069751053774280507131071578532000783078447333049892224950870992301753312407662253934668679062792034995405377810506758302980825117943579436189360647213299222667635439497894880236907424333619606667730157852351753319122199333933551883532541727856167111780313021417040308771161779429416251222871321102653012264257079415582160625961099820330186553050011177575650262184735420488643439783419798306427413372268722174905108527844383535826739585034566659603869157007483748824109426587158707284240769921869067700478281297961934503987519411859044382310616619397751865897011700790724003711258402264665861968222328852968212214920993717744916060829226906702073518792323358523559688535204270340652939827677961429214012744442680247178531084511151667661316197199803232043952640653276526389903861694579018718392590124796593054518861263662108259603619204282674764135336705538044549171560762070178816975912703227658581531534181915462423009932078019231962364212953183273247103424109152131487335038179560154736443626024064111124697596023840084003486160399745757716419872868958824919884148075162615694183625887633644458638919504908946189891304521595952502711662899195509682973141050059201051582673367822223610451695655066765711072979124955699490763855405542945120846878344636040284047006168292013598277155395358291321509027659978633920079958663771236208621862432779441964079397581817566788423009488641413183357410067045002147085829267465778854495396042053841121532887981150678224800119028221528246415097124505686860817529379894126379069298352389498305099021347698371206661349992581674593173362192321905633691422784033668256619426611026149499310076673133978257204614874476736624409862288820458019625761779453667882193445527082134258706741356785473961577846840155861515342930503911378306871245081831891760697908576926577496502491823130655457120459191446740758773234045502576866639288423054311774544846370601065191110664862850302423485630873930453670497701457022242467273556822831886857700305876598932408349712697645348137689822923519233733434333564412294155016106789191688070178478401079511291684423313121459191234118568579705300688201817228797548841288885718928693921834793647614911185966624347369150155279080535331362660712145101159875618229663602278439611130212493391155496123996514620871596909613850405649518518111769289028752316494925917080787444250218850434018836818033220478597007948611211587956744062527168466167151982975182853634155873781921897551106858046782150263460789876424180694297092946628670415638599038463694055740028608968898906180582954161199074569962008391873823103969972099767248587088700823764298514049049302562137846271679449314286717388607809467680100914029066152024243270836052298087439539205577771842219332327590528192639244363909265940945203614570110421454484883216655332406184390712609714701904206766928874921830880202117447009582884911616893353370745877091638612265981979770602741187994259152593329754357335674135929898907282016635732473408242700377433913093796028678697213581787703900505546518772371018934445658727446436436263251018328257668991975275958610649938272906445593329647472386275689340654133667033732825024738723020322537923071619223947386722521825482809551196574237967906048457432500769862431386324740874950057074024967432123735178331794073431487607449142917719140240907280270860320390435179980477496642459500634164226063782218250720137588961539751590750160628289162933144171023701570555797615305374521614629773945189147963084715442880888186594948925168263289491851270946680175180548742686898788936062089367780150142534550438136104335459852530374422158442318912121701966883296035825808162407820024634454464408365197368335297613895288462010440299630960500742754359286322602151712715278701373666521745466382081009306595941418999747992087835351387038568156838509755193268391391049567026793450929081535021768060108590753670401604023646314394714356390277744477228783330307751711079147243271887423626659574441475401022994383295187709658672321122459311056690890076970048673258588361841565176732339641254623175398952581176490970691735758206799507251312729758954378552044880605325018138010489362858275974808971565762284046610662512031927700215480940793222911081945575296856698183375717575604300297384775052646163231963370394559532042595320187151679933783651480070853985080720758348633350704561158469101228918714457812028986120359283126496760369592284700433146274845255458358121040253550120727296000364674212214011389405462918973479438890873003583045430282118109454196242871317322546722378545555359362477218139520843027282379473932287146003395357225290346707777488781669456843693605556966066321455578816855413546200893502173915155381887947838264469803392116697385371726724197566907029139951989082838280436424538505356254027612321501270320075858438175820486705074119277215624659232678988123215096230225544418322630900951798677300126918056191290200690134304674460970432240951209106425110033729628960685371662894948034844379760143048626101227623378957224961724040515778215761177138061860092440846813184672228953183629384675504339662363254265079247196208041436283449819997722222192454396487712124290029054738260000301991936674030106269975935405823200776706371255403247275562656276500747335219799661496185797420668309703818172651866638425512898416770870726870748910540971247653252352885259436635978186578971865570330258558114709720138650877076311313207475788115138778740818289301503177474713536012445257418015095022206659377314342282809337590316651109653994906101261073527298525530247618607402064149781467622642881216505640525080080355337991819776938006812496170147849491944236814441342563874948954792294162737780926463682737921439727197301279272387791349534659874220078069252193510187311465890721040513832771806130995674049420720356693627003695635679786072693533722802279271115464018910935701747451238181068141955659812677924859650520726677636880613041564129838575925623658031691902224204663356329127597447929465288295096101748678986062861161879018098385806305659588061309568295197905245381786919304354673515110719693539694685296983608620669920184763996370317459345259795586721364919940705873188333115249756997330991677116100278492933041687458398578991684690563115145271010038163293073545698498901105318990729576794448669113654385045909013631143036106401574053649116817328857423965614168270612802893101989753605051210310324716708573401149003281014551885775058679871790681044345120927570817759191587351437016908034879747414809000325026625795519066314535217238641913281309667252728856587054214227628044363953681161699398477089466740378859745991980095140131221161548004473856623152756551972927835017133198709276559320223534834120579715705645579929699283286410678358484022045955000982412925019514787441763878540836295956010265811948095116133554317419475566146623506177851710383318926027083333035112043381896670278414088514791732229502508802761376616463898415934953635678942533788347205369251857017916718952726684269236245962714845558971737372568150985349342201854034953407654096780190641192064324655463016166130423059006377006747551857367237595753830652232583558223512361804490806370956830063508271998383558010480878648160388578580217165986086379309522003474772269079984626308581298619135287285317889415407504226911372353541642019829643004155068881035874540879546419443502193171702687356764923802180262285161908441063253519134027086557754104653241950866000280460235423763353608647086795178647506741593581300639819932198383544113219596756324481366274683425568031224862803601102191307811196551538921981681743560154489388165035034746019013356393330095949499549010337177399856345503662601723070160603434509540514957275460945415359800314055981889128806578154074552309152957547797906806256046124142483437935304911219643698567979141874464401222614444112116373732103236919520042233254187497937766384246788181987007273907863342539782660025051969327849289518061741190310508527096819041169145547425710762998596014781822242362865448901317484888706969601961026485911188448164646321501842340304747056363350203585287649769533162050654154436380367263861902455066455296304105992665372657000743642095376248665414165979017197154475669704206949464465188828971237590002623451922358154937501925024557169843874153505353423183532907628072940654995270981329188172720574265330913355569115390358884872816134355266236465903444552264447154080877690517467691826500587997140125455679709219230670765970995255177504171816710329934592960396068372403879083999406576892638674276925145651239472014036205264194483958107375159518188639308059514049981956659425927572248355061054609746432358956666252272860928391947359921711765469908419024102901957886667412767991642475709965814631256721052011821346443667209237014638516180264967420973381061980311588913200423538390920567196290238994605668846062091702879898939100774255622807296089893553866752033240285548892187488000339275052203629296607261201407040882013935072409437183056921792623117084537024387679666852549359184818128268368874422732754855596392989238740407885969211880362765438455837363652200144120584081586726550214672646443168904928865362389289196113036065111383717890108613503407268637571011766630561986983825531542365459341388631272989873885511597409755237780850434591533913154232292681175002687074823357254071156236586245950357422064111815684357162371650984959187876874008118984565006948555357278320753583591462522247481275397950757999526864687768664348638439523491129697239960475229691833444945307508880514739053379284001972471995289575680745722378439988707622773207894805989660904216202644255273568873862229712031251618509478213842956869477259610962873336907913827113114414137614872249516310361207930816046966747042897547704122388526009013689114623230024933232539853444568111936623931701092388479991493168089217362120551617264421467756781252434039078111952444370387597609195444868375514029626388185999621616404615171770406926731804811615245604904731395436258577826031767107006493324857625167400826271951714213165613098307882685249760663060740565580245616435798125351507831846282896717434950493437779905053612027277174834596501995753104204567737469459957437512253716776120807207623316913071444220053108296115100921231695774360865234035402111018979875267408402801907875065179492333238377410081195274231210512007304667473518886484979441745507591091837256256544291443798434627297455653316140994822643935064399639186245153562723740724302369431503851450770244961937973682380482772733409658179391179280030516166167273653734752931186727397783911104529864788465939156070395046107027427425334731632440617313570193947709268861413244893582299004438127075731388147628268204947981389915820200400479480682338084624210298034447413589654501180876777026215351123334631495090496763441663509545198771736787233337147539757307659892187549719323945709446529982875875897460736226919441748002327926686208921068786970415143540986809634044765534313022374493760475383540137705750181626400430616868653978389898575274769505540610812200269490824256457918827393381491737011501565642836385490486780501291444218971710583436282684937635916069871020541940352661017170966760899753310634486854083579465078045994825133043079009044423351111730546086695493055478983846257980260862805116852391453882395666983871905301629744240647456199248596598457093926150718319417351252234219035417834806244747407868466297699609942596531757820900276341413659446961090631942212865407418472041870434882091623911094262348549309283923581719332371869563441042917372592978838031235247058693120444385833367630726885333749375290841427699306110930128092492807152384478180792344311158301212898037739477596571506794462589345246930682581458888311724132794543304182979605791113641189131668174955953728586277713864573606691359338649240038600433718341559590764195008261629540458272259285755294560654213759456730867406561142219056318162056100687916711087578806311390869725303534092075290420071718823362962318457626422214645106958165079676597290678932851434585781623838419461864815982191437308583127728526972087939181451458764524205538098475322286826336258706709212225635177586555556004549129512857256165928512901462254161678033826312756587948338016121307582510002142737059087924686675527389897973205438689564396948200996146686901285197325146411098534666610589493182699797886300021440473947334840554564488924085586676367317114923878855855525831477197509946155564960187047170781713793596400210210283994325875321003577405016815562357902898439416457679288213208430637862084701575755461154671374188810303789407691194461991389525983391569211368637331780480041228960337186478764540828520354342452930739643922882790197137527861254563003449014768098572006121769363163953910425256269611151085508464182039635204085453579229839527459349305370120114992350661690816052621212102706199400972801110336749005326267788622929167902663221504203267053573548011993917334844399830648477068115914391881803073101644910246324163879691660604126394269261011207100903620564948449214822607059172318755212849024637860508014530687939401078120226644763166824073053762215017598642213532212855078853793458731612868891261786572726845386452118246705956178976872111660482471170728755601699469904986843768981094023199720093730376986162921510901005194282790704754924675691356530742162575242027651772301276526322094820168006178700397675210314821381926106079750197103325440226022387908375651164170765646307486837465990245673401458320363893640630536546564523210199613422146404098386482619075719574175890036303989613081801074470324261212019599477489264872747643120630804530596966640078109047178717188670636511401104264665766535267592769896855982474373363279908372984356694048739359844011522893389252610506467869319255100799549583862814064310008672321060074884663886580690032120315857340087209888672395651673001394044972293486029415913168509859556314045655882460185580152905603830063900944285694596330712841464403159060026951366429391639491247072773969081346079080522324108210174960821339116015796668193582930539929476680996605961453770000663630803772148471823854709943551649439913615798396774479794953970626151505584273195517482713736256719437507334259546858566874723796686161172737843241297203497871722168399895014571969866818698372212857640458169419986692533333608061642230137303028102571028138176620321351073635763167652359770264809433829947553014084052258326066958268878599356402069274517793955079715710312629326819207469730711307834597310401220027847740664317568446376800554913957580537605502240953066516551687269299922829987208294579510922045637609391022855439252239523197578948681206258456194471746084207865721741160569239768683408578091267376862449798913571434370677243162650463385507334220805003927268195384700779131423867365508112078718657648117976842443310334790263204074311605107035938709229353876136601113399126677882873252270540185759129429198690965407095665460339896827410565446045480614725091042788871569230135875230244936572328813136424713588019137652726018049948267255047004830606096415975144180709357762480142087333747502438117635595382400569166633308709581714522412748603622562412930382522359366618388347138236663155451011761926809205972824766212139980070028436236565788083322406576937300152201991286750680413699366095685397427426670548448231122498335436133372470642698603627970945058609633746228513624257229865998417460386231318631611030303815665090616992219283812573044257965980396287061106715968047809226475043960720784666348759102964769184112591110311995441867863632615947280413001618664694021345222873157000815265945303869727382160719899815823646061619194429076144882512592089534751231399548746787566945411030797863416504154456856761159561794977769781592136779539259674694032036770539275769632851269398992515609417167189540159659651126464947910321776100701656579802438751426630234279561303701754267363061386287662204560384672715610285273740739666843782500302200684633610564645234153481875408771177635574259180441371926715079234227261292986414844494203921804852984709242568593226413271939463619252714305153951176346322509568802190176705679438595187204798593264140476681815614498860989741939231888386602913901409244338387959405869057905910121770390077831708126427403013658727373212837364891699183202929278219993320285489235748736715410554084262056871737923185344760347646473333260518994475862941859038269227106511245612403618005278725652761011752076178001387449208656878027255543410184644221083941968510109839644975811026885786212759247386196393562714661088586277313531020512761236541204582349767032328093454602684805602132706601176091144331080534064909415142647282801689722786783798384092737889015973469462070755625601854137225416649187378489090282701633308751898553698714902787893221741405979594747519927591380469394515001076858612389880536251796962527497962233804291280544184650165922502247446179139184265203119492460100612202867115511688134378355880577338549588160549108112020774888163256074345927496901701230343040280930808086303589547506835308845935688374936055421500266579371731199148857727211612552746336389903514587815847568300612710348890970443105013090945167553781466203225037289759111162962823865839036837011002975702236318938375832213050387310107551090200502361668805235675575401645574819239707349570539591107026270722613920358647150281098233845825006683933929498908644872017866426709171684980854907190730019751346320969716751377072014960972706027911024617373623302249902809410366943403707325587161575403031098361379293327964018766330861265646348928811075790996470388890697867407851621532058279298552790730149173547224850328971178699317000157929428481473249192089533454513592140503482182751035395595591940091581107330472399804727482361551808334705616385276248613614670134914062889196799073430000213124229833929411220497274980058401504531288100538364971477316450883824944759572314961420870407265107927666712146076300078628811822079187039658701996252746286190047879672192821070077130360569470377991529431772862477336430439768908125816198228383387427211452448502749180295035782534883309154996619936622775487452680134681238272640922814659959771418189873690567153769200642598196260376233206782847735832383659384522826398183438379807848848594343137220620554481939518668642511782094784540887095036012419226085594719083474973642677486323969273375781659619207036339321807258262498168349311404519410326893757222860834781628925188251348426560341470768707079394413959446551682314790989282085998411239279738651330395875060197454898331908572599638769696645666719823439740536141659174127811933194135526054443641583732172183888092569239485741879671111880018250578192006749262862744338152971216181483299308931734416867110595131351328212722030595501165732661509263539099750220107817810748265478004898513877679677715618547063945410791180548117386059143150657249232742785043152565599477292932201247944167451999664184002311287720918440777762156084163874003145120648015151444573730451502543270925563718572438846296169127747537679921074305017435292123110549139943700631924380232538088169100221035179049528605512925592151555492132850203131328087466486468649101318266498778762303224512193824915260430345492738863778967971316491843978656759372029026169045915728095772475509010975952512380469846875598096884982573738742369620370078603667379533867783800298517743390154535300937664864236997408187977763604403386401293681419720787749644833314217199565776034286277068235463405588659157351780192409934714014282753450907283027611599479367147990704452582282187489263237934751535322552321085135820361272966522869229733705856990083322512167882708472814065394379161270828973742602909825061802812344638099370104048232665647677500380318312522404278820964324846925109440898649908319996709604159401362607484157923679323449770559052976905109325927525399023388078911423536428563185453862606323885848951088012101324205923315346401120000366882781956479934383935542988306693526900259516947041334908928114678858612346910612334949571591307360393327546045110457235688239422216375693553450429520627846626289951183000915511784877573918639445220042011059175897329444922336673409908924752542904654457931747308545321341416353254385330537059274932888977741573895131804289189154838418554714815024991816029102698303033255962240908431602678082914584990719557738815557768631608435112256889058628115533250830181090263005184786897260575026887984561707897129518602617668058314964977422779678153382825146754420399937017113431546854750587231401885409439909644791582314284823693579837761039381871377005277677978449047070647909892017676061672233931495186795322776563269517136193481782249238507377250770149291899187258155897989231646929074769288654062208429028660062414485714903573283955995914381104752606041778597607910294497028379624386387823476504566814661150040095957253590440129854432581632208368570584834559001490404762345139769350443700689308851532099956603475235805480591396497194758443502109947885743007691158731438210084280174205010632108922434498954281634179019454094043828227850933601215884050686456304180480357734203686718705704553294630996306157782757510440965970437556098162665087874725642843908782225842792927129619522796520845376425108638693236963609513241408177222351836519341490190506196974978640101721501760797238041405291777828923312877846239189962861468113950227047484117452306251520492600275143133340054642766229308613670744776992376185745644878771416620937084044513861567894588397086162501418124714621686968497785159908585781398052784794534544149031441697690182833145583714105577881538423011552379028842751187147860869546935016325518933944714438501036541064930954902066767146431421137080293985319377262384958307974658133843427244446996968615474010798396754750342450590777403513177958373846312527975837950417759629925436826706481032218037097315401033185153187327758778547062581596035943683778135083000246426575045786894720769182136390309072842002284579005852523533874289611571035428730515195963205066565985356378600426174578970571771906317251945868939447204030321071824139694001770652429362569454661761806715825605883257564013906168380568372081578146524963239820657284619701297702205056999124384790743519906648143983002829311298066785621399529550428183139935709113148700952846064997867869352776429876314291209673761170666431660317705808809063767502489133101962395459824201958060953468659481184806142794053654686207408470697435517064289401506854041233777114524517826156878789924200621319412519985214503038750061956591581557009287964045377294058159988931710619907643479079855569732984978776625878734778377632607810605760367631731745954211584283031935313312624798322010555765243887069903042721956596196005351931904183205269754285421599756342306549195247971072125016785287770344799112268883382074472401423421525787097611613409319992419975289917872840470469070733932598721553875639053260473359042950987202301066717667792122478685288051426979501019135677591399144415530481510581282017616351287050704579334090912376922630124818524011199622562113144850470436925319303020548554155085540211150085231984235914337677005794859250818802378261985231915047737722007887604515001403385125391693550430107021244989326880145051097960087073844487128359145018345772245518755070316558708723803788826930694896724672953212525373453272965130790598553986169080613719274540245037058672234985146709305049875002498311708425644434007512066687652238226869075902678114283600461890966482753615906781027343434953642118902743548057714670609075222300613947078983073494600393359477992934980722959028568329699798631510087009955847971592315221220837964795009202928989593348358140274381574509564760622810340221019555471158886954275417805098343838443256355578515244253471262888401993695850432028858384516297856737651059579766644207420550766462696198120615845074992748643912428933788291980016008152464284125348542317509936605812067875170505036815782462325858836349800100897739828503218116251279793786187035114101891754304005780350931476088972103897109984185638490959567617146696109062999085178001398042541967285020780529435689351658129995625483362119518300278542896678658025131320311992239349053030402511978512136969115030115889674797211742920939469089615071195674238184600451672933386623429905504278529226711569712058286027372924172803085493623562568821292456044499368623191774453126688131043884384583112116041426713437690872096022230348670122744791487890621965771382979784933571104125344136950770439576722422798077199161320228431269005316418343881353320436546675045181631480921866544524613621268150859496585891148704101747295730396663773260010597788168706956390253730889955127435094012735036103061526642874813197013715310462759629419508111226115707959969191103113023585450711192009250102090148898778094478386850804389056469019801948966604743585601917899565481580082943698413548811657241542591199110204664409921103857466882859193363970881385327301594720325710552966485643795043582958636758363216490318491892762600368588034319289249738456427393613483631993875097761736911281671711135883136550374730694370116191552257858351000561427592820044787402614004084981271042746835986729199825965839729462882504989146271737356807061926910256628298209129267735566989318379744331112136701890245394932448524597117698821604014348223110873672833980806038683289604077032291424732598705995141652475543353034253992126418299567788248813719695004614980597750905098036140239499989273973261732892474267863015954306229503406636762297099878056253770944206282485602591500276811524537769122796430939883045511597639984843624230481835212577884705257217702240946351924226514088687223848234900577571053032974006693611938408274132461316815925714141103007514012084855483469351454894530215191710318358300387280767399706160937727167493395512083966064857190450518591480410769094674279840064823424830954273175269485156140988841171852377924837505563925278748491494197166391648519155466560998583020251948454790345209722548019564129716277419925055823724486602717283439806953813279988752183656553738423571676883317863988148757991753561025297802620233040457690099278885210130288440117488459798707510340342677159467790171222902626978001075763641044849112662442332654804425735457909982877472456542259704513308362270434023202496875807928819762802791267753509259527139664379430601379749842436552355393502133709409004335589014010523061131216386346914213084147938301206650028246027499233984658636135631383734908651898142463440287978639858146453655352580255099262371587073316051011128692560576522554427619580128963322295097877648147796051135842369317332042404555045334383330643787123314381811734362971779321639529387182756663281029638273222287188712389829601578031659383706324872709325456377434793474137122129695430265094150626228050550035238010599111886561167264509794081692742346069635105087742432693034842616624946692609270093806017112246310713334590298660955114329886182620439705753467913715339020767985164200908560594506152099349614907263321457402873053064319561322834887671153297904046076373865127208011183190489125004191645128591745955445634406522833857798062776106538968324599563851063899588708873341596624378312028804377445047403261971724159481899988928114093641063627050391227242099745084377772512714532260067664878343881830913474619445179676591203172099037459889782835683341080867626597280354164857087016355644569858763592094430298118335880119355981747167844272443475928158295783024692892615297748854026108293528433802497425472967174419908103071873946121193611247336959664116343261632697843580578929840788258479003243861843272817700426979000530344654187309396174990735030201940792955708272793473918807003377572729523617954941738531502103440648797747679381077308512592120250007815288298129710982714225087872100095149125781643023407210053030806298310540716354089392490038752572279481984510124960271576333094555200728938407508020083608796478105167808656884119287406336545002486232030406839997892960553066445928358508530258281458893875025639265928857045936780475474035317392447645538218281927879409528642841570480637081414650117794457021661967124650045678745256319850489896236441978102731267316451048783037944086691578421995419377104673012282647855037484814981682603065945672689683794908803751288627681780123791281926888930038940088604420706674770464219288541007438537598757800193345297482568220611772973694212404765963822397054816841815842275213330039644232211748925665616060847881672128869240774899538924407239612111428446952781675534583308832275978068485011386658673025529095949093864609109929442871083977542652165943081657858927433883373858837179283591678210018587441893939769014500012967761419413656364905103974081921809054651697011981557435549683689431387952167091021747882448001434463178459103282898668192806782900115062986597595907707520894814598928331770116842711791768949756789912316381743564855738463458927485341681622292862381629213936934399296703502033655282015159199983266553441353944601874452679143196710255234544158949587961398692859609233743450883309111410864019361563356395392655038159304304482975239636657098208748904562106974845540499997054071535408352625217105633316202668351341494757034009262120201118178944228249084905104732283116026875736488248087088837533545239022851764243487371972425799147174150455296092781902329409111862684292928194112424320780394405303746184099084070884305804671317769031928214401065660174687125268490279959534073236586210806594847585658471044743075978303257528361735294824932168464841379965036677608171104775563657431592092885647373468268117507092966350043094508796355289441997170269216791319928322300353187609025513425124835419344216908042095387045340480149530606639894661317290588317301858206285824205195828678016436338282211333545253492878689616989624954353381761347536186397517718926852829673220315938232886409315933979328659605819739098037285772192524601234499546583510953325094973245165606798644556809256495692856350992507369355315865605474738811868370095749618963241767689858655784857170389998342529247714304217588685781267035292852039922655616110395252677399815037214816730359927880128362605408674972147873634546837775857843325887620602104640605582040825299183946924313553845053520606238582179618535257492734804795523422243583170758322626313407249411268819037545465764451901685455447897567374717498539041933830097835417336888180186506527424691319775335169117259394539793676517713571770143676167244013240719102404179031991463747327663378336144318925549035204121641376439760328105778754486649499463376607357776423287848160736165813915154517365017457507579177999200955821354933919991778288668166643948854459034831488977686800077660014362367631008841771264061042130241009178931827086684869905665295436175275159215049372914318567526832551537965492671447615900498082413354069443224120192588740899629149845786939980162033629094272655206964691244251913875363749243302356869893926074620391567802707479401905882436559008432256952861125210921218519883408298573017590912389014384952876249253474515748332320703091220956861017304953392154357009962624162412975527797892416826114286957689978266003665563882422793407612981082959065311846615037569939761590063201613544094262569271258239803821643382771936718490995147588057176961254635143411351230728275642437309308977983829500868705530885708836101952774783553219842428200005422521727944540123415173243741786357282467206170002981375230077820397696196915572672285755685793375348312691807036855043162678992772706678634280346365856761001562235323819126245901637793080613541503471682718955176113462155119499699945909292805303562142254590313397312534504558861552030726023680684328619868060082730152781041658778947278484786823491380179723177057536945262644421484713032835721338614077540975553669962936442281254360505050331159092739876295371754341155091332962182700963264891896004706873022214145293573409271408179093358304293186436907358438704280461796505538967990082861585694576000719289240279626488474686574695373970051724710609314576172298369770084144348912050137375725410699823282655769564495303821707405168235898565010073451353947217074290039738718342324038699341838724319328891381581121951121638747394868703786937576513042558418012863065074833964116640766622316920875554394556856753228282759039688175802877217985322064141109866592625199311244876135314882064120485491967867623897535689259044714226450498430197445616742721674904315867862984679356169332047160821130526781729756455383263170557047481526562387865256975932473256657529957108072571191985116453495338269365691479599796986095825970834793849304183742106284531194378224356618209282650128241335923734034903023101337932330418863785987568721359366929726600554133457453422077416709911509505234996082086820091516735639714562547312951058709544580906467392493219093214309007579993822299425233250952185050404583194454411537127093732112604419698978405469499155383360061966702964643521051179990390620760647515158947344288827391103906200163693317854222629946212898844218007389106234871616175054893287180772154013865606185091697127698286424979571332352083287681456629234369714709768940363733114208227330794027354285248447986841425045236310588653479642437204949728230868407237679722384909212950691786341535432694760015225649490295646705396468371767886700784243459212548931186372561904798279230092230876131208396164292902560696995330085543728852972525191782978107526852977974474555855759285904387789267839706857433465567023333200005131434905598680721003183832114339095578773122992626178869044751295109932280454729758799551466074947637162745578136303389325835113457253401210623653067034175286175738801641064299644324245946771645856374204779063808662512973576078851396292200986895199659926278705082320872132230312788548488359570788830030286693029714342627851876071476493489852366194583267985147332672830102834202389556115674371105087927051391193661417202646915452516846917623407556884777832204020869409935746620570588758371635918388764895914872951863791401914329606306586735457076877940875272145485242245645682298312509922669541927193984993342020634640118649539755293801525124348432300687130163922293540149162113037823892970607535683188563422703103077176525954015662422688789912021864616357355620259588758068897393523413066190112971061233723348808793026873636848280702634104729711814585981692559859204928172020975907735871118760340515588592723477998865248167388054240909937492183192163209216784293447367885950689649421541144554687158837703691821460331429013848109887963435020056722488097224922041656023241132127397982711276275567638102729098470788534546681678527784792556642031954007370231011838125882598427526767677092168517044917200638141600552321756636660992188952891155740034779197847936528827756181001478228989352836061447786567149074223922253149272150834094640801970337859688893602666847691071389675241406168738687860229650751013165418820160849116786870752949228514136147193816243913064270991373350846002938524090482600719426670936959869667050164238959610941963201715634816398881767140244337316362042845181930681238937617748773713550249190639875575404707444114566106101500656722600454862049605973927267047147984919668319574967898677545466616087402621679860802401812574234894748210025806125805270180180693242645570910709527338471666275812422726390354462408180577305074423387065812085737947487451333724264827390645483941224867791639580396066126933378664280817932082488541743696637255874794134676709631429320864065263381573640945176666269312930361888309118264949230732596839520831151226529758689798858070920275103784462377025946600028778294745155825252040683899540855213389578416943469183436958858043649665555340237943510094432608905647845978780551479562653746437362825532735875766494261556399582019624809336884854819235115974114874709097600862613051917271814930669041898535075810375270692637962973134511436028764987320535657007899116703845633750191004913352670189333613034708786410591554724681819228427412557613928723713222793287022051061145413636929631882714580990693114855916609246185994706144179619482128878648914712936891761473558999388187134632564850405026007896364880852113701349012930940472730815214072827273702650159028378738794481955175952031195073949929587472841582282149786872031459478971463041471343958147692430853251091083293153802806126485833761610997918782198075920472321103947746946068323443293122362775541995780054670390109591935675456125440225576638916898689149990441427442760990724411008243595209078678378888974014136392696740981604967836566580875490443378063650191055211080595261624477408521063682742856845106712668638850785256888600877740305793865299742969635916153114426040089638672180555592513119011573641502674434713159091689996599095510696508868676811958274635898627861508421243629858111607132792998396069125901566114021675582499680843034439914188029075764297076249561939223799796310846748542042708487235040848327838004695612401045270987813872214688683775311755244796083276856984411269015540003335633887122106076612750572318939164930828166449117873708362321004776773090891791846153797426324270032027579360301217377812074054416447398025575573783589524030065116688940907386999200503085772923751861556598618788454283545017913452409383857921192217439134982062067561386743298841986556811915159347674450506607183903416301176003522235729806141182976766058737309355454667682034684730557390070771334714600255692345258622524615928914342555441603917271626235283205783764307770198699330528276987153439205110414163449120046276902919418694686581311678879868377236512311971839966720434484045907145819584167234919754158687191893510685736582156365925676991121924645178667707527130611643016453395767986371471014678105242829947689616010226237942816626803749042610626920754377392746462680234745713642891060743170620613971292497732784371043518486476204361651830841503936190696880205067267963405922474285579630261429672213734442941806104954573619064023322102731518030491768158270419408517077864131005098041922490173432492006285704979561297350556240653266626897032236350897564939118357561273863024046893108405324862684095816238178875749626963828963495804577916456881185858790124628814703598735571094241649274368066392636041455350515364207322105760297589647715271132053002820296798902081774669272318915569244082041713373678934229861959438551038567481022620731205712935043375570932010050124017810193170377031904570740630884703237150226882206540596095650779312523199220959708603130844136768902073337352186492172142189718431233018564015451341441062183466418965941455473196798243877304701845021365608447553919516801782168874478402654101785733070487362435859095346266837965195365415651584177167479703969400136920251991423541455471645630717478231507864743269026602003519839464377766714827276588035403982045911887579523588554002603437956076610511383533454303159283965158557985225429377166078969748807426658177092862328856203472575608777499602750037093523143325038569809775539982956040816694976967517124912257141117144690115742867662088672064823687759671790706927638239962909241597278228617484223881198323203901798321432251757496099806240085884239632372601592649374678484845696919534503814960460245177222299058791927676478072191793094868928171573041939100449532400962512948376316379065384845767322383270549202054335103670867346413500398632548435155396222084932682486610883377564371662288939065801128425244717382872113393544451252201760990446345388781053621717999775735204137406805441878687496084421762370771630344094175381414581763093107246778329555985956623461352896792344934796682807423104694893306575873048966920685188641774251442114577377738448526779098442516968792217529073770532002690140635197596447145982522507076407980212942205216187549761734282117755451370419651832339777019989343675071571038572594855363229567464943585088582833218682099957964334817750206269970330206535152917660865794369391982576283437491730727740613663041314308948104122952039531099815492936054466940504958988163563712663229071965956660373511969915800983742556380434197123621936907653923339945213556753115373701730252803851093618388764357453989787285350313504416452981804154368792903441561685036081050929696765387869471460753426969150201433122202877209638642486959648329601884615969943561576468633632622194275038048284376315404503852829052924314492183429748185278877340924998405268554259788156003439666842334054446996339803491830142283160209680376544308572239644680467488798774332441719205953645921189583479395644024734514399153054876019567324769729948576239090795818838255264753328610264137594791637488848134820795449145093429065866313824885757447284286757495096288940015697048718672265370159791859630242993864769381087073208366121548623850821006999101036886927716544912822734554741181724006601791144186704330692120632692486115979467866618683348542904494249648865323094127842894942750043241420836772509475440057711442263708291521785103175704891358504651613449372922698767123820191854764811035966386876856265816765347515461425900574735790690131574805144612011327268112884479647404136980826350051872236387555773295392706293682226573915896759468374372457833411726805612309520885126471916138862740051308059952346308102870541500588854282633532871655323682711573719823079074753271305949796905651437534937147119453711130670765764567853163505772994697777682584113596076142623931038477280577313387758017822952843857591653150753611681139084603429138592495847728975954044609122414408557449807955151889353281992407152444769316142290171712136417830589039500279233900910770721140482474716581548175987504023009271965821425914785123757916904618091812098998619132585518954408778480663073355605652097725318413882449546325581177216390339543724567916880961287528131908791581116953209206289738457685528930114640638466681794464320787917197433013404094681986402410620840477304339065094305337369043126852466750008056531332060739689901019042339256369753537577117027984195641646243623900238318658877953294513801704058606389022186592781661770879198616340658970061863534686546642171574289347813182177968101519271319067715624506918468524357127675509307178344001802469361611599866852616099141159234892421681325126115985576418777837755763934748296602075884113336227998034385830574408407087539737069253200626002699673703548884449048522895191108092955774504879861925428167282459387481072906007246198208888697417727361195998638874708096854749812610021279512722119634047033504062335186542013900700443545892856120314247261946629125197668817755075502457483316975256214519165230267601191814874352860687482963880627077297148764393048290939745962053972881289118988709624921384227520743006463170458667362449084528450805567049700467204389752700672179954985404200258961571632577423489705623306850842561259078844582059359783816814049898571455534652534152680143512176353802343506087183640860377830413413651151616384499616911428138761169983633525936695414849244460981791417787405949796106875564499383176015945824067630415051603515721553994685954496495135998472647539693809893653930068103786521696711750077217206880009022754730194331412643571977681230688671122840205663280640900568783512350555149374252745975294276652227894117842749819255351978514188215984872047653043289719762753601286345186095743889224719289651491196080773041979705782553473386246185884726002063057179885426700069716485198490399086018599615748698395826401830557694677924483620921665478946196154851058874951468454320716482004983219367738332137379135790189380491152361922426511813658888848948709403451832046040631507523254016697621161986035475773784167322464992308394968077324685021484961165085014261086905805424561942683857857681159647548167210785801424147637706000759962705390126787173496293927225143404637660595153345280502712395836614966509574465531674686899878003159671387571833492353526773095257473003539835303830277142409538054047216287494212731516756869090406262443588315920347520356656187049340874767387765536601084323451967134017750483346514649328043645437494741801268444552324409176820036157527536137964402744538268092124592459853409647627666625521102073289263185815735699914277308782444151837688585142649245409329620567150876862713226918708320461549168931389088853053656697626612113361815635739051086114569073247644559995051149113877276974506538181233629517150624736937476939172959567042989139470785929262627067549770754695394681208209091384826219400766576747105929798937263437517145886821603826665554516958128192785664859179142392321053023388514966978541087060898244102512650168538778770759507866823621901517664298364476201379790443152427427997811001213081359558951945576663287116663335459041447380850145895560221224359531196922609104632754341101580670151559429040041920232712585962065692191685726343604219313345310378204766513950464579321678144792032724104837465553828519893104438936705098989361236188822663971142181158889415603930055793791414500091722725456954961173142576719281038186385877357633106149362570850049757904268832452580072256701111824777439475480492974757664663548778214253795203350810559110716119193651670563017481613436310632684198829841510899877210146250901682819316896637976062678040044288426746231680582747734230746050714209672783395706240407065394074831364390068935550060021485112270672535030666566662791317545931944691515684300450710273409164693238024502065765618678019585325571030629426792277658963308201901216638410605172020305360729032007898202154688592590644645073789498101445394652248039247823874742424479345741120186050581178345526528987629696987803185767402536021789477468818152743853839827095707908765636964845785902113126802580889802457338134567578006032137027888475968849407247515978641621565178209900275225060459481259122875099105419618627836087587303972410814669849891303982908326002696269777993757390619591021253893807258397289553457438074457991561367407858995748584924588754974945982477682267993521703761127593704746504720106152443264476782932545364510194941322413417318773173790837581774122239792037428639734578551970655319988584641131980423292829920562604565916357047874201676220121766643715928130149599055363222492087039523798702069151414866075397716520030032289181339321193670348056075322145051922625497260179948015597503683024331601596968465345641115299512661307303208452984752331192542784446236731852090596172960784623344493932518880808799806475052383945475949693747257106176012811238973265254955894768391225234164176865722614720542363980006431130867685717524720774291650720827145985616263822585626995908903105718351895784640208852639626297590160644305247864308691196675926635419704998889347148133751004666358200990722005735209233579424708180013612701513104712679627079128279147380543814359999968079928900968719692976438775326745913647657581518105277192271768527755263356925438473429684752653319064519670742826858954682274277893608285616507649017224041835953183556054941243542004556558666699891442909990526538504071409472954173285103921256648313782793536125373364594196884185119978200870472103398829219091029428508636445197959708878102397101735931370610245233386886416501710175568911407321136369690236488053485038650910522717699208207411616184235978327198864711263430089891665160519449352119776333465385516489808770005134293554296915497136085012120819691889305326463586392259369400359252309379719754434351833884924323062837220010010232773837070922678827376016353326150390050120478705110242072246678197222332668712595187331450718110814249660936981396973930067885564615859056877111800310764405161525566269027788929320857419041670494623775394711469950656480326775493656678871115566340164586831953394202658780743077803723908923980874007789734612274529590574606007781146813365709411379092274770193018536914193777630344762638299836155198557676478111130774220073814500098124734843654007194660724785891124153299263924808798965889468697741868494063709272547647936106133073696285360016489033793764981144379052167143982619511095939657179174863447398545404471610989027267383544183223902950480865449548391647892936911142410642573284662762312992031540972696927295176248149429427234469244656500161830795057789732074867603561422405544973550188961917236450085829984370062496496052824606756661534107765127274023564357715241270967763931757576008129743408339401907759484811818919536937078311509786362728160888058029852964082594344473075093161607800668982441159901784457828887074245231022268899044335122181076998584333128113684237046479069714991467192462021032754905558103923628715289807275337077337491787305323000453189557317098737863305482830628466341274094250661422762434067009043471904187573099643282025869853484442848798928584538034562170602675036408764962595709380381982851639674903326612184930763036319251586468567712343959966436348403440657849509705987422506338008817461760988169715855821625435482352370071329067626227947910969292851328443017986531756173491342744156884475440775761781384146112207437902582162595436811987345285257518668911503102672715635630750858114151910872585742538727934128174257462955280003330191158152013693485364067050413377540411927413879864622270502572627652376376360151945427835423379263712583463140115531338179772307034294244330761697420636100529491849927491116263613869219003567690269966817025138526055366922793687471952754549854937370291648470252948672327443081145110638869721865191271213253666197962671577035650462835138109063586977356336173889109447902615854318906167613346037921342447539565488277020206012451295774159397601810765753314737527771446724036908401336583527810013051885331998211016834103742381261674474245906213137254944839659313911859645373442072247202374705160219232424784478596853160667181423525897545984665526262501673990978201015777282927601657762515426580507086387780416176938633484266629759774331380204479840406618417748469662789332234786319782517006201968499443950127703050327541407684288074300432916038729606964075284491458952759225048223911733642756915230543011582846671518261707438285897876336097361506455592163636529604162939886212140181438286369594466544684745233020653182345494071807303755632362042949243182991007602531576875902445216220343515362068377215402523745828621103475822816069691836912524373522650098110266289488526025302352787565649458043647960464447879648286378370251998090005582568544993156157139371137609246487565921604563624569948081060008901421299450680533276653331970563437812771253883484140629331426823027804459453219994412062681056512285600403820153216039746270035560971229192850626963034314853540572176334137772158313543330683757934132134559706091583571406474963928727270279097287022335513513138490143449922328843214060473425273880736779122296664892459299625224895057175010460387481796030809603203868910640254614297255564361316404278805384548655442384950688538692237860837664410016909030914468699321291507214516491271861735290177091348938110914089226600155752458890256761831523547022428239631717870644050566167062705813895507405507493081438123027073841975697990819817634981104229224435095919169871190784417248082169171660073009671402990111939008906178729301688366359602463113108303949187322861333880638588000676986245539633875017576967594399736480795401036910362333615588669524246073601543543842112058877895620612115532076491240674571562316336929661992374784935184939554904528784188296591162474591445202220073867784777034898089283776675212881931780448385603763336160631713731361841623104244499973286872503526571535426260488458986741547705936909055545824394590089077514453386434592451853666557220099415365783481205023693133270310249677538748395372869029853008223777101498504183566765629626548614240473136363616022622117085397785838250022562451124485468397247805325598483531145510484852233143451626817636399016484844343451720200296364796904600728666096915361790709743963150299826296077860410243056978444695239917197695490970061853710796172835545240075018281952691570438606242971240993111683193655970612450611882962913767439680356591844000200367953320876115555658271377884898649648520753991961047030036726580000098330768069495513216284951516750247252317898495376816627045595289382741887060138359932766873501500121611633476475158843238087570818891288106564385079659246820187341313398246152016004848357557601125168116015966524435664920993862958746993789303260741601822919340395567437586685597245126414937908021099551016388323388268417308122262502767918263595146736915744537122857223385533549118796168112776449015363438035263208420492208107244576393269555398965496588691200915622994416264965049452439982728819421605365943661840156596147056158426278275634949223467232769035876670139153327455451729937508387764973268649453049362846110925325612072342811777977301961359338287536401038225768386984069731473611491957070669318181475218797383579404516294962709693858557833730281933135437633821603509707970534241164897412383826259377500035493784355565856803561291608879873574037526098195410226417438899665812258918180588643359408175887158171166370873186118032164268085980991180419669972044201731733860630446898517449230288055937605282152650076307354541741800290315147154444358598730685489212557367515371861473592359097651721431880419786275704060831339470513550692020497651062770254585506135716653066613409420858840307241675394496765809595146157712386845899113393582339205519542009588366157845420684893933606336459148139169766931433033099245216949042224469453687303741992023679216575360168116809167788820648077291889470413465364154796152529803016375023609384013299355395950056509638197619945574913850209373227731190504841514542982715246218630862399066879425893594934640812004325592621007912222998850439644852612143155396603468151659259444152611139161559646749780265941167967080875110147953396462465944626451908290791253341195666146446580293018659225478081324241157202896064515360022590301821331616665828244610807957247691173598514095384113048284577860268678339227175712663677882270383390608422751903971821217837507972802511079785491257181038553957368187405114222182989835265354216708680348101413035315669536072082316486093359808151645014002382868091381102325558372281442321376025878639284425746888114736344754038418331309166023476957210917413248340180121423858292221390808746835090150017923646568615617101039955125114296279670171554844112753504962797272858194843301870284757465462222370884149432609973600562986656083535129349560170761356875652743745102418679366088610305778348611837964243134388532647683031160035583679288276852307166628467185366426785943647227384700219886553622298211984533649245168794311828545883229927714238747154319015539321768739329164370065443039720192498747519190073145115616641721277628504468726224346993931561724370883735053350006036940017922704189856438066567863140154901759372226818117327922278860035854158525828451531888560209381874694568426164532464565592976339542119761407249625648350058497848119465124393296686441660439120744687043058943249272747608624419376767207193100140384034888670174268069322974663335317687637187821682551933530670330125294929435728182023027762033843470362431817303588023587078009293897314516976680125296089295371294448728043042667877016575516405167290227124674370846013730258668646659777011421536155582365602248169076688680304625348017524627431563262514004939979283631465941344036120536121249601574882729443218922048486202374618528829771011228820985465740443758721001607322269275300504182364704787065325111459961195658116465080502307142893140090543098940731509750506766021287116914251026508587875102900210872379793332785874275182958261742459366553994998581311389294077759603750936558946053144926775370653743064916758190003279535544341234490187775573384057183417686974518713563463892508989092703271805794554857041004171818000431062590609924387212948127151210104471741552792146574523650785539094590051060430659125720332442613341300195463671959122644746763759649933111449147406044952076419691957059264080848568611908128967363491327331914503821384184424737039038637611417511423743315237153040380572656501615256305351620544831082252013213630282603498974980477949207419381141668265711307296664426234175734147024836688887266924593227127515321384483048435185751158651652526957573334549635967577536220758852978637211973798110568232193937210381850008423821222190471528041641095480998231009014656990137165886560553345628257865291851521753907974888107136564136426121961529445102873539194937536998748163673244677617591592674829056220003584185709267849230634559096049667649845006162719882980767732340922463364361705303544772618103659766016941458125112058705791629939320008528467707559642720896345388655883334983008477769155844180810934392375045925880953045953836351554504868429246062707173075066801420109938943157434170093164964935215978342610599761353452109056121108484441317287139500691329403018516497634600317968300850728280247107020854373435255113176433140945174541993617733273514653284499396077894530488796904052956110578706386985931424885447737406359264799714053583507135115966794180752359851923811664534419893561822394013799745980138061166135099635069041010675078188781622002810336498092935719119831834558665434066119199985092434988032702895295209534697985346255866973414103504937236563682148379923441799829625897172923009272909360359895748539447207001264453243355201099331614400138564954714033626194978417298093096898428861661764514780348554118348357118828060519173857873307472328016390759619395688074642316797440768316229611223287742996961949622596648237549288765415409656359072716464529305386579293016806027854755200943985514549542546220744605816468832429331255321459125853421297937038378824125135597971217755587313549758677179869286866375268700026107695298654839457753017886260303834820643733217943488687060744598898155821434815788201428100869218844829653972782966103721419342474443551342760461347504017573776560607765100569077659614440893790418076570225435065373391124040397676045037120175466984237901067521684198261558526939871757358757897391998965538291446345409259798079336563516209349518068525158445180349632552094424410744219664858543466381935966157983801116045425052512840011223447519249227500419194001245998896318541235625165310453759319331190588758771785643278497853918194184320286716853315909422351771728882049269746837068756365464066946958367576631369781218687123602492522058121977795118442918545714373060625157260804968523324481666695484305205713821617842012002130356895431664179008768083932772311998269277251653267545149216238962442533925198535247757138479137292006419512459025806211695574224317172453456478101798458534935407330277536770493997401502794444725842618095645129473018267251593816222394455701068134554885574666272442007298588360908884389837053746013711941497872734910384183125437564991503318861681449378565857380208498899267289501167921152642665388123535506419470258101413947724625327017198443903769231594788828773926403275420379998850117382328694832303774854943467807368209366666634341096880419736366596084702306987790998097144072417888598315104181096333536919071953145669566005202962585258786948853010320701722694084829467028602348478474404823006061156155081981283036184734002574337537434467980748215565008523564125443477174933968522986318426382503921842449330073231564507511730322919914703760654869640347909309414945096202164571592933390679260839049158937588720641756704426775113249750058585917116931983736752882287298556490583295732010499100841465178645716456361885860625189791200543206519638600627445686695994349353139213269684728725452853874360039926283047517921048365002821028073067542394383142148411096506523272809654891941984316887480388104250555767242439505796281726544725615714514362866321179806715632210978642558484990727442317792410125028134126115099007539551374096656400844041698908091677326274817663053075204952591672758310920813620310830528406933127246836718496844955409383498735642079766509090161767094318747010847241106004614239395953937809948313790255804544999045400798795466597577050474608355620911234506179791563775262825965677253996481663500962262272865051590406252918424962725235421007178838339278952391736410527859163904102071102234297809048907278868288757475690957480981984168593052314283924979867973585424081621818652569679773467354746039108120169288475523604169172127726835013564776042994415867362114256881503941930296538233347224754598183153504275373032709981006473298594491693838733348826925447058092972148001629691379243590070814267609794110539146854613294368240886710998154841216242702890093396253764090787369866590373905794713099906902976826709179504389594468572537846326054490578027646343485577148156419917046724519919757101780653550785884426337561736880446671831920869426125666935702993988620902283386212410866990848375730100321978600057085333325895971016271499161363823825299062304500993274616800015873941573412966227694897660864133521387370311843411425088639582728646715540356329514668192169761983473204743437535028001262300028346409743468576229921102458821054103419150851341568376790678255107366472177880246337403138846462126871609741863688375383635219773565401230335959289705564553878318117188667129323837697543493066567277817970608615321526679103033358428933976032486669005405126058759500370436904926027619014541216888507333722557427117766699560418660234917423298096599065653452309855067035520571401584664825132159404315532742995932576318492635263827219630038912668833153667686660010647494943563126317924997110882912107743734082056147634560596573108752074014524018592753184580369980329334822504618860394896212241919876031408003549301582033138601621808189272723842065417975249420155790926288813821952788401373655650080925080109523760317805888347438718873659706518930514823307173444227698459800700650638005099952031004804354585839230329146910170902678700036133765648923010228977928535740304101582718261502679871410014133854179980330706551581703808441910787271220960833303426594286762109197034736188759697584941791845441106087883601423972864619702952575394823344136561808340159402802432986936601412527437188382297386821664284445702781881360196392561325240367562352726586897233687191377572583352640606104094884501354417344229460660746904013162139836679841848547614993224824071368466067701099052500415299433937218550416406921454171414322747234139426085865048911598287210675771721647990030178297294157933128623514819730134012184113892846091301319561670687916224166703824133544127432974625735473076569395366300728590090160782466993281170525726418703363566007610967079645402824568795148233063418401315311724997926298655187588172692005432493283967140040432883627118750842064147339671574892331176170438202970105573478688985178778024462655362235620435818419893710602673035381727545367446042111046302462852430232527506726271578598393168676868122285443388364585672004331970840806649812062527673425536724172093644573160507793530741604178668971224737632243278192996266954684580755405520280370518209400323619644874349878817520338500689211103205093481595285113367025140074392042099617214897459256477374011104275465438763429074169698459359437558912761016507298035258061924538351759448797735994355227509410611817467492310627565643488755364748586680578011751250702752919562417062683700871892184922456923718289353650528204498930346547094150060908305819359220263958700871462465951405837736901041456282465313720395607773198434152804696637557044072370126203062093038873152905476807180608504078101917923610579352488099955858804109920764267392827814845082761285481643055376872441903096153159143815579094306217610838063009736381589312473915128475772204421114121598796160111277907022155257947494085496648132997488895593680441530011321115100183900712801190958603637716700546685731645604538329446065555585358620879070789579098037810805968451843378755946871879520712260750280681222427583456351311037702784612451459971603473155428099613852888522792375910092642578362242544703812746078000270956251270330360042008578401463080674750158940990605770022847800108028571255973783279665116863240201358638017882053094967055685423153299496433013767068812762305200185956797239031109383853384602486762188642449532952183386227963240524556239945418643640163526568862472856645524489531062735832312380084115281703606090858329779306179464583592873190257206422209753857412262309489089066943354233613135176575097886811914151328524263733286383610108943431699873062506159162050672919024876646352831921535012783161251905648462115509751108254200979655178577237717824159004254862428896463574949569833232630800245283040183116870039405841958463389604012271146039155531166737393439660220424943884448845254229623159425955804697757924597871182913724480588506183394671788960588777867907302399412744594713989276265187821303483576249801214487600960675012525752903122855320667987277038639212367150502327091568868377124995098713487631693996875512243604605305335061500975977400319348683178485049053081977848895541103742574887603247225488087600367259670460751515624530073343931830649110141908556268924500211620249262598542821356554886137107516067368250272519755313027240696769803055982255278882492860791465514042269595500090656527521235950156143927732432857356207071862674134421677947243945225972038137530726661291914081925983713817565518119521434747901308918403434205174626775104493551690276805506258118579335599615707074992900712866452098067399058099350515899079235164756415224035477860774748861251003816961726151311981085735060995211257166963631165763533321284802845957962812231639973353955951613481108249550277655879834405152005208687556051462189304092735501166411544260525016309972856221097107738800953517924241001100821150980008840698204549389130311988586131647592573074597770017726421551516084427351250744825127612496651366856381965273275591496747346224587375848963772019193960579778543243548555861657692608400381416586916099037663189910969729093895104247805883256074612499503799311378657945386923266388696651099043483492156404068210243568799582175835244473603256396114607351002563663264899036292494553656882070614615985248561500995207463384559322599445198770052339434481512455773678060081721925489232015946399490219115361349267182260609027503415881284712994871836309884033836844202838686152159890420072122719378329437965993276149796852215091716238336562435118574382981142755672512185043944344315366984075295486073691367003076348736106307295872509598564235950853357020916498179430863146215677219386363476169808207462481610053401585376728518377162504074124690447839078332078753835912274024556050249980906246544645035376461612460743712273762674068229031704766035582403934656050551927795281695187089734223945709337549527422495176391042993702175079484507764631989393292403482812185529676859854058050378633799224372304246830744623484817872483780940924858858457983175659328361454193792144484813200816852183035415909016891552613107456874928261297919386022234268151785510720362237307787732439514336847033480280129475276968780063145959822906155473850738503371649375680220541993067752437747628086685555394528282542203417414555390918121011730184982068681451837923762181264834585525663609736697398948041013114801261242385914640153640846594570512364876822229170554019048509237640416898399088049080445074536067287608723205335206183464386148829933452588317431744372144986307108153048043855912280714147023902871707796548033266451769621308492189242145392220261333228974461699907450528943762307591607043611989303651780709474887282517511258920695862352848832366443538632882952500374256952002003149382933928566162293733432517296191527758520609937078991302103757240681936111342057351572139174520199563273501603640012681771370716050247022419569871623235384729872816693773101139982270850405599094207806328545460165851028457084530521240364422716221590824666163592956316327531851304797223189790899550128944955601097580319186140921190193397585439449720282622628199051076722624482587925887954108093813909268525640876312877785265195839140971878503472917393990423322117367981013328748265765445736825386988367016222091022894199855458017790362540236850123425500883788296296141777488902873111636760641691143977452156499879218547906725989595379648185965096178889139709717888410021910140952348302448795239930047379818435975200199650652820767906787066603629257051802698907900181405878233085107559865588963807280348655720683114443050244669125483271226775659678825130389978929130354180212778046284766211276873432021844663866228337050480653312612892429332555278913728704968249264814870350062970301479285183164188922953754454403644098303094227819080088936061675072106136831371905599333131760513506477292241336574617514568620239566515698305686902351981463646942632408330673625261011556267531014229618385851735657623322339295833914896784412051261157536388728059067215089594212369246673144733217925185569139688584978688777187425475231722220976451778835091538090394095820419635420248010470898578975684415506561846754367810399122512073825259175715770320026513205971221302523925338518048388013103598375001359549531492829661063244755573289624359400409651996260365953892212666375246167020815491049754919784580743296369962682874653851450900005134179670234301436612267231352833274139569029007332031061467696878304594006455281157029382861279510885312150165532392358454184096035458508062024468513474884759829741692802165261138296221055620036196830318483229718774570895808549504095164942374043870923933950453370113684653175150487023656697856664125157562006537911419626532241196188967639017962682209256017200739255374017863891553093983224233613072942055641972858746540521441851650190039056107033024239492702332787031646411350250717759948009317559972065811767512814417312285882852130931324269456152118800740340605788690774811702958667294117411101656890555539520834044720210959084525757414061784369553418599470676824638779377262350121884340554682656515306571561868912382687824765090893272404080538320011219052967054892648396200183130554265392452833960509928225402215626483654351157848747410181579001127539078675002576602259416973520791532713534632684616230212987449184191590223123737320717094183752076786675796889300921381272549044664275503744965672786910004486720011520342888329599213126815252746692934665145778505296216147112533042121402804420399244404703494390717944423296919656781375157193215274120177774681982602643782038765479190724023321346463369007891819023325099519137262855063290787379093046868123422019395774648166547446403506519308873064110634947518651026259480310375478355097486906993778898802373306418831323702932979110298115703677207155341428098939401379886729245588863428314222701819629140400260136995161770896032636743393456672504165755563796766711078197256920643027648555583990060284469298220440590206010286345686550500411204206365459633049154984266867033946109336993158135701915400311981714156681161348271891933699091449451661759568053202542544660630806795576067950409886929273766549774453360610836883689856535851213146366073907484157400870697486790279575820696891541948082647989638841424840188424878757402190723201268965978274187990723243315601023639360125142173842835512833691106636193107564850110898587465335988237072872968792617978035925652778605430656748552204442216226066371506303271624201407541392193983553977000366821793843069180282851491820299402382362520352498144768518109772999471922194043756544219373916308555286653990746161919128642327378540174309138620651068597537189050802428012856264553950492676027739616245601249674641040208717789737218931462914567415948800493134921772314884475693469921403567856627889492202555035546572588098662819421266189212033477395028308974134386803684102773665136896147966861064182560058295514186028887174906249094700501882669851643183510991931843884116048352575516834701976319136686814561159267104565146783853225627317083866885092546742217776993223361925106902420234449921646758729074699984596921297581777514837245783225740411209343038121690137090554387977297533771183913673543170233398634612202424958727982047652420367879698259405928742789925937846368466745544809241566839940359208547498713553519057653117001234180663459908008330743069493327126400310734208621569086461910803892126724473190093652135661190422426519784486629348280870659765113865373093562046818032741113470770019749059409678084172415234139647872027642130844576278744168491419053078931180025353279272559264875160733991152073065794231424317693815301888421392667469903489544625326028736862036663952137555121912762667007564639470865282662528672196383528799417202506258776854735311517857403770211860389024537262803471825217114106116492886082165582619104610907515831042661759295148706746974288338018618286890186690390873203385532550750001941961117054208251553721378704592360704260507772082639760483793220504063366837888786028145313041407048380320907180542538153012311215361526854080018309094410123283604895651121630771779585815993106974004034195815205379420351533620209116432932328358161843465586522595269743063423224509179745590881112563014197302187346836512894123757244658553424422822959880622950393368952099082183268009308207099492495216571508657376055354644491053845401652425897532750199788655875675922528240188252419727456056422233483297521765986118518857380375056867934175968437653738653982936679150296924939934325073264146385786274130835486317943081432090542695246789963792958227265836209280235710794619040554588809313261354975665564192251479372709905691918861065531965080987737666995977084560373869116999080452989171457640419901134189241224256053528567548935554195764171464862398175936889327120029871829234209879727983153757011167503801609837994349486288730126352428676594941711872255590391311823244365728962150196930538085842297697693578386972050831761321059649093029208987502343650546919578613434239696787961712005018213939961955111578610799959009733163907386779678575829910973824897963682779057656293101390512475970217017571186505598686982428873834045329596719883109160438558185518437108697236274831742738546781568898980370512956530813373030977573757699247795784706044091176407619251923060522432951573831148991316457125077847053371326031262195850361192251046770479690967376658008935346722368901010443632047227618970625185903277782557130728013382837861844592404752673252122643185986126951399906587502389631403536684614627282683958198500004847819402814433688166964311307577864773652697648047861386284189201312379931989321167275484404429664249194829400357167495358571457111853975100366081192396477928278731211955869876107156091643145306017818842199648086623110039513600878134703202880223176399583315154845119082790228589103750876312034233011436764654271807579559574917455403196332393312940384530007421089810362195701887795516353393932263669410746562359942880762850792765256485986125438785128012636377818626809153423925971704285665242176006545156209719127742100236037516101921604081057805444906081526416211847991009282667220017584842198507740455468355872114663607526372148718831712738932560599458426486133011903159346140025169523665829041780297419784204863261344701296052183649439355735309748029319136933412206350882459363946687309014622376118517452984272803596877327525483073465753378749917418441523532146250149516115430753113085428305926574909965411387698101746831993312568741367968270677847010336752990034354077432504015280700079315300776490398009445721607605800164541786754690866652163721662361871690465569329965831329767330138129170075400819029158664564992716785261212697186057342901376795834935198130338224349460914342678064504461080188586615840620194962409296003414218730086127480981714626885319744301311255819298004537524802492603910946256774902018014180455350865909459281286815607958928386778155650970941484441124730210056429514476243655092017808615760146988319646681958681867753921032947907063247450590885930804231641003031868492740718612261096157491880903036020311869308771987636719846882559837265847790119620391898837396169576284780723281428205514769257417081368544024808046263000383212836458012736343611167409614268491664528646336951902225700204635048723358791902963658004826156755206105467249050550447165458092921323264590119399654943929448718989433087159633283268099435407693061824538019080404532496576771805529694071549892785304993157047215453053181337475234815272163455037056075663117485767093493911300432610038316118050915591942772698729024191267736201739529617477595151336781675574943750849148015364910736783712411735054843048931220701247355851159805912482447598575537152152278744943853855214441322334805949343598405763690890243324898627351392135543296132202525125556763183497177225704526762516533465821370879688276782971216788476798393290741385892316626718309563112604248773327172606947973777760511659589960616844066222132548583297331519605742989773176051805228088414051960385931075680464890501293604646119890962246729848905825732781407425969068509149642279198328579156904108585303218586661516824972563844843125928740741573761211776943738366345347612898692440034145825928114803718708027837799336099521558093834957792314862464274431428397867032359690375708750856634704603137127510945021118360211807279058723805830062812986221034463502776676972551130653475623584669492817389427644132455159180359015848572532878011029543080651874746774187256550738729067378888533226543594265656775162613456862266848742967463722556486697020757274432041191200392799779557888231419845643873355389599270820777029301991521637328103274172587039468699604747692352999693153433289725986786117930079681898661670862969522552187875825635077318277199475034917233150620100519352883744513241856569429008189365039106814592964958665998727332967483376086450032492506053880145585993878846026043150430964210201902957723500955553468620805634083450893879655332613175412026087857899454915825468171561063787251203315897931303763355506900099908249357066754600758575641805279625289116554160271834232716621649463513575567089194219687110667262733995673695781348067735408175103411759896882035775219996709139504536281656086865112792976022449884787810652358168198976736930055899501677274054625983434925743592744806851240543080759971521310655271005100282240465938708703520941656553153088474755789912098525009923919655502829477709764257506261081402785360812354039471089228580619170239541868479251988090447928536053963244767115249972247388075921625532812377341253731142636331410819122135170918630184240234748805990657461720741982744877987810987052833405372267119663399350849171937317827161483065159314163716227802712733675692066744037990502102738661557829610020055027712635985928431301749382122964034405007556055659134136081076451071496468269114594697514788441793282690254633138539664506659536688254630648143551387129930582305520260634441860971955918966330666399255056663030442419181560584653402538780006828234964255896148109537604039792963071530553188643005301740389913924204063796047058830812977614837656034428685409454617721150062268534217094075682077305517838063884382683099641979590373855546835017862399308872954185567453222520903995216909149632897841250303281480672253183905411210986463645829149412935872168798266386580496307616279812235049208348001438466303517810991066285539133638822450611266381567338036099253258882739724011134360454186950578958790419365389191844295311022817692908178366150668914510317852616434601291272253628103551598923935027860536472519316193470102248455469782374539761925058859815570825568897093561762550569212429790585441620117443445309637567067382560311963954809226642328091291858856525479288917663796854020573525278425750863607231019623763592696102970133912045697010582383854867682029418813730470903917305315750479307453332745741253247703398958362330562749653104752440078166771560591200818047387486355018130688321369133877803802664097778339098102113561888141427784920754153961787263849594318810938302855743110197699883009064047561052499571435819113432785775929191511694128158738164999569553534509567051551424677748575399876309288682051901018990406975566501540275259450682916755596657276305909516557866654100785278241513348941160426651859066832058628167329149822980070637705919336192719397081625891387894781167807163591109323407371862127646673955730524838810496665878241985112084322041227543830165459917776350610103904423463398167374470211615349865788330087721706244722991250405180718109758671052157188525747557575215689734452386781343541300042589507552011704171857969892045803008383763260301556237930829926925719486682997687080216615774841381894847844349893518071657057783668907126149668912891872431930216297429683804893268463967229552586847171611183600363154459718158088962750046139659220114506332072003546410997599761256026733925943805316273750458970086774047854283764568535954934117465312200310593899092400673746902729871573940849770204516131960507320338968109076517016127912633042268445499205019716877449214877290099621205512943403434257161609903842485876978112915682828117083373803826307606360823639820601915134817980791959548033299252219429818615270215597485311207180949661961354373108863875286952300536033095191036926169517900651536073266314741735382036169175214679518809157059730465389472276003355469846638952632616166347751731507275540658660615188785990886968428962915026739787918367390509579856645897893323560594229372784735717042492334495743223446345797924595240361605680687851855473227797021877523527713702321845285638092423805010999900469023606535104978179647223451963010045654907297725904773084223012761734116205874831811861636914688432692725524491689707650260147700698319246478938459753397642493485123321423880673389017408705554538096292244134835779780488478743023075599558841460791250473627500915309911716052473431746214205734915597336685731217331747657804932828931422288469134355907960340338710025761514718390030076360384813633921421066769565076315299751189590718477949278277834895614948578176412630863332490302053712680597900456256135253119205594723717216635748103779864511745172078489432464937928262429704592609844734845438874897297048031616682514817903442337471180251433316153228574219380638659538941111380011995540149065424458669847864589922635352099070558852135555783232204325964393008658743925071219020717653385000928145508561227379158793575046524458638641429063923902521399360560046884597436666614104681734939657279270925097971631377351101050346504950617220742208919335939174078073552132411185860008298858107283392895604677810360030151790798634030055696181711419524256726133222652503895472503818031819162912710205807454102497938587552684177880158039960354771130610602825259311442991532166603682231778968917229291170116305201567947405316268613400128699057821263408295438952547455730158904433336243899348818993372259872084960122611825518206193089292546117522074909640854798417186413215392502147530132562225383685470570081003852201061959122243733402864315836770587146320523415279755571171480695599400305742461027180242606656968173668871409573179597480858772523101321154565217430786674171962643473261262527080801130206693562619648930649641527423028577046484048658965389010107823900570851250745546039061596233367074749364754453858566797699848791296366951490103252369141201481268523074167391160409602792612169056737353381173626566050296096007710875337223509014939811844340270770668709232997615691906936763048069181216360806665081197260550857744830411961962743783282326970506104883178542623252690978764947147409245080878212477775854593820958007770825899913150819992765409180364026112297311967696640252525102007883490313645403968019602595111196751383780280473299233776682248558426160757043981932742751784880699163135048696447748657198435076457346757691675831309964605997835283450757913898778208635944044515854174002528369840688719460020936495221236393692280181701016895592183580405679457028247376698597609580289893224519099799385981159320978238297846963246744171501951717276042401794293736597087210154190604565614803985434715499364973860343013146195746560453765102801317755562429768570231252290089027828385264654797653702566600688202385553535150292456177049672238789557834117865176171897933829738773916732218777028185456211118278183108193843082865953654949722843489692105706316582383343978716501459756656634995579793276691341381993464951258211521938521321316083731330410396850457906765762580963560112373683058829691894844159069431539504038243883865319815388816606741693069646667633130947109819139137684613091319781435116281987466133844523471562496371001668736728268257835619360386882928802551556918060060094679709991283292315715718954934960380389903193679437976398290187617404327298047121347261012750898783615336713726136656839847516635487896311011390051044453251870158024337656712058123314252305535682735551042329878735821386842420039123620461247111851376549698551894819435337085754713889499713991744018120116831566645282114439162659582080148155531772548696568351127600407166286641327961845663799110954457736447595953608050764756110788014526715592579457499971469702653373249656878129740256510470832738625441859088651315989939929824857308535509526510257409412966740972916064536784308043909618611888415007732227981974767008055871467510685872895687954745779866832628951185334153684405839307529549729383445731283783328712882134728786259538635518894812641464317893735341834285982474588173424354011614766926853703230631964736950158103656720275120244551322134685252211554928293081743115519284720701967093322573625168033217933461846877261911275265675501976166550321260094116521811091668751863400802894098737041596133472282896442116231094209502408074460516044914287792559687560146653692168571447939029866380021128596588805736476897432802222469332038128071982227720558179582957335923576955364994704036335907815754576667509861276308104667106280227117538261088613775451938736886691292089531192270735310397977645544824449320947621095921628291051576057956381840992864742887730348771124817167865107072415951522201772802821413345872251537905205356037191868157902042974763596643542317245644392852869802265042263605207481175755946618393447189576761152176789821792168223411146960477266161650830527414372464743862226485122780982873101207266964164050078804523880462559725223510704078767071849326538719040186103308959790163133607915073130648667327378530548269881045726103704746360542948431631996549443562565617187170470936177802666872635088444703851230720477401880416291496222043892887859019430307948532031802575147046661423569030844212195662146110688650921840864274511931694292006852624805200930702417219476202102731734341313317939784112837801542277609154979618377753412489289706160710046368452153816061885106452623528183559782993472677863059453854926988542552249231530321603660384704546173431587119419630805845112037963811257069572031525544419553465199598078242673460460471455547359859846858830255817595687492548744409446355879837442005622108325954286429769418079689149136647605178424562797799542161045310592574516370704098283586658275960115215212415155459773307618027411118988235586194748877038856509124974043587344493162359174091420580133364480817756521104914275123140809286234962222313927711320518743310477475424559142627815210969632749547187344090766575780099711083311367637396887784822007646474709243255600171247700679832133981364472460851119596204981186518328332765414692218039960098207437304863775974917410571222662249021222972274897177903996564678439948451763882663105152143567040023986924546730576008519456064624569918857817238012235481918121758452308131704363559997172419543696748093042187609772512384029084431708339394231639089109876629870840765250175538643073538263592002136284926438983664752443680464616699697127675814467643948036348213025109691868922031378591622879469177165945476823254944089190433536808763351927221050151712832033366670481782130316445551445376124462683498903039552306411455605978795084469734658926900658380416730289596584491765039918254466075895379697156653983692849420954607845454646100018840621739634810123249516365859635593825260237199344431569609966329390911672582603126732729350847588490084336237554131412091189823852843355417933325664736188093683958896777566439055970132817399329348565611258718999311033474366485266758763085607179775674396312706210591837092543379478525328686221316343345925250085161131362884516122208467649583261176869375174020813013111927595531955170964383268732826784768476662837439292285667046779850491301402802715009469498161719324605339888352163686371308020878729325927449812167165895903519820210820174383719787196537663847460192404124995043006452702203995319420118929581027345707744905710170574941004301242429179925865419783432284607129344059289110961989688475949276491618098641877095196264012040494830810482053409525102877039608694520196773814715135027561305663522754495754538137695701885761811812226403291731955799800469944421239553576845913071791803866498595757189267381082212459728413128278842542038717371773808570296696589042345506644661662528412568076031293488641737502425460975443940801455590007087571351544657867470671280312719675570811058974177690285646798862661632809530739652472701053604954089571023194747084479819576491991626343987932885610765738657621989400281816845349111908433162485964950372890652373518249074235660605210670685249078253537144067733318073947634238654588197385708809944935239882778907176366636088349082971773278197880236687684611251763637086562916821376169707133214076597087587018103491223283140662288275668616088570709156654639161375930895716484671410413491452329554565098183806383765796701742923141599172781399426101398494099787214362670848614360151634015914540448227331375368711948323476730616964493676627428884513723511949571975493477740748249148025020317930019135864183133068134130324763383612312510203966959173784939144025324478344593509566558465569356088604798555313547293173743943202674757015205464014000046517547562172388965850881824547965632129764531651175508531536969078071357726705161030014757134489809425426847341672779947064794692836908297276255427918220601370880133542453458410881386552621589361320981104198066275827974848640122028970161986993087530276029146096335735076890442839703105689165493724154818532395588582237712305302908834866762804939968377979299435581747304421109922836105114853453231330010271071437160705959235436590062900120140449989651425840233511490160385068914740510820528673846132289323478729514615787695021073553851681951843400355397618549493021726363164603898051891486839844498865002049021883734605820024781260589064847785516444951257936169397171672440851953271125707087162101547302582862023454528380023635054777489322118114008666840200938353944240894463527371140939409228021149910208886808923464789843853027583849543016107388373050056806089059498250746917854780643525139536339986669304713355015091550617397234823695681464745957408086765891801897670901685098136949676341768003145984284363139673997034136305814617995705266806416769802520343520473508307896116462657507735873531426869914267460100706050551869417516614803052839894131570732855462537326699106568007860313323105599016839465288342367564115398216303609273582279573667056779392147682150529916150772517831863626947992588629005491723003125160537919814417756728233153446047606725174106122900180498467265850331952199221199725172475399983112256693147566735545918251448076881485972492779298023713543979449656396553822840675534259039548055258776397110699219666687300358730659014247267674743102526103807520995033854010515910027604982109417185856364449869296340946660096867827875315051128587712616769632396726388233596541409832035700826045051840673645157666815826710825916511375663045046298998067732573559404802043602726048384568090950888310408869640623758792315524392653301515019770394192381140209680061981625205971049616679139863291746248392631358676293752443745603353547842116357819422647745396899563854763302552713658615849872036992992120970630040807518175775460773259117541794131714409064630506652070300249526406776329463565572337394030742860589757573748734734867205388315921254402084700486259580679374867709074397724473184971842189039566572526238237966664474151931882689915937209644172422354498479620864645372687089449329574356500653002875069294223725099662262630899804949216785937075769398104210449414650548642231535966481974089279822578334492661280127155380759735806556826177906440539656745201633443069267685725732581064012238528398572795176705439264342712039719496088382411631201800891339341528547362395081018375306459865924490745712132035738765274391750100013160268051054758558815487103608199938689199274398797276992236517715984822630242172469052870110306829902339006952682090517636116007359845761983286873289719004728479295285458752213692823817219886486314020298572013287621162844804409173483799384346950858844852033184778762052197876064684417463840360217765318904640583153601430766267273867121409723034745291928423951063783221615479936628683761551968556083680683113501082666236109222769464378447711107609488599081696975975527032416098043217552597851407369748950716616505916207152543389866681083003468998280622503111471009561252172298940916908533912009714069771333353532358735030179266499089933931567233752541189785289563685185775368314957795454450470909991587261732244855925751137806974216420563170098050545669610344764804748591128036056319859168963100925087239880455235524182871673207340360389570252126422013999101118230302298749903643478795416927344022247252756424220039765784924729948858197697660253031745387300536068289036546321844229461194215778772234553414373176384611678293732196772585129929024488576742506454716249963711899085684543528962963233645602274503975979602870090009415017892340012217252890244483985088467660994115766293589256456244905398203017330698829592613076768303878624977910291210595475092108767773680220078022204715144138386081021873556796410544511896171918689099203927005600238898333416457212041626386250631949064495480020908792772936172713029575382645614808204157196656313346190584250400667931061358423759986415149128625247783980538004187719561521141874962004344373730694396197926470387104835530886979955975244966462419386721743019106775737894573945996397326377056956151913622519349058682492715597211027552715272747099787369477101385593866575245187478214034890630961345272130252976889535362251930699201421823975419401200319270598209763379247601439341516733642595260981748595644423305134155529259375765525443404657452502229883349652036660404884262039660001994687458773611136198247006146787915278124631156182319218798273822819751078697181401846455441623364161219122471319436423111518454706513539784138920746542767987013408588599586078034411310823460101832659460495597578420203844198873797657473459943452393463563866062431721861604230811618748130157374623273507185326112785368728421790654954042574893526008383388895688998866894084060948864186936740927120701412509375414644282167349944894258214150609389629496996500306961838979416156931724546922138486221940844229894497384041201311196277759389473770170251608637579937441938531377895122325668967019725244715355589653777877987830968768274904593986708758281537997208065391881841227647365943822337631804551373385525813243091120646000998705573499588949332495514584374511182985725815932913210703657472987220618761922217493164436211388072197549439323949274600577353357619472785614824900858074564397401721604124051355456993443825657597913138268120152613179382074372338907530653921041268810791595326464320562457072804888493342013467523678650111931130148052495369783526230949326583815239026451769729041433050254490373529810178766589426376421082231968908942859494379977153983190407580698751786334463646664417295601857787946601256347301176430001538270921666766717342047517563798337585293129093725900289208904687506340011679233934301618344058339912566747253281467692827480936264278218781781585634233379809181062952523123667540736573471664772580105497043875244708664795890389760014443975780167535649945360396743812197876472629865761918084227722451709399616437733072463279392717937822355255981249342732807194606310735811948563851576683228221205411971265739885574105098352051924632185580826938413931454159848442313570982644271708907931469072502022793301174792960105191684012754037551695998121920707028105337492353958204885327113140285122960000086705408054415084499687943162914205488302770338962922541015505560476358926110883388375267186164235150050948667983054540621357681961652689422037050163542784191965693917182949893731699942784129572725902469362021392913989120394156478188804423639169847145082807542802749498931876187021553467009171283308182873445244637492523946122237559489044042897870462392485082793893389116482301786877867863607038952652068724106682557775789713486494635403155071696475894829925933858540555886306653171518321491480076775891207375613120324624646035189812100697550591162391354483774141833008221197718112504842749144586126527711561807777234539475770089781973954892098960530778638529786500269574168573925798144462171494094133790265171836789922181528760665982044669243977077070690144862720003579618401325180782342127003950544232644023568414843021376387486735900004360201880260973990827441740409577626690156184597146586150066706810391124533698318443159593898024547114234316319588101016396652035612724292110481185469063249297625804771515843383043567385390889683121160098961080514194875282504814547628692554895939334815032639158004819972911548079118286396921112826479348025375408202272254916631474166015093011938555882864929244300487099514029976641324659477850778015312936855524086021066213194805410241803086562498085616947195180966115102957012788137437591091214138369166506983555067033896850662133623741765477436234791383291793755965729268304920311573310686417494948460260194054551051501276187018563937641095358998874498298450421327863693964502191026555408361813189491102393127305143507232167064645316460274002494676892925318396997779196069891638770971931285910433215855385808926218764361245422973924713988761898435266469843707859234120073310608355343478746675856032375853173656129108743066704361548839732869697580892215191014489205503334889133240991052178761770551922708898103332408825494088033180802251934717949750859974215601617850231859432715377645522341754428827474185505326694898408729542422415255191321183539460065569406976462285537867528058196349842594547074136255062960229228843716235526373043521916251708308498162606206987719243052107606892193588866508182746707930562669106821784591967973135872750118022288926979894581059250151458052934218395352204972112486590117221953119686339544951912023082794388371899756623243234564539402743608242909577499609500299136271890224183148820519886118423282895481466297826069063315679744658514682411292140041161050728634595797325379004685436499596069703106071706550041176460563571810939344424705644238528556763691394439903153772951782135109621583600604206968351861554942896230623344410459189994909543759547743330830792860547978627891391319886661627454755681755612414651779564445476349745491656241991212594408875882992572532854532195330170176063487756904565145804961582976537294813030646222128636066269378406955918213157125862459536153177150579198047103215711451091218470558048730459204109094422367833646627853489733434630221256376742325542999651061883138546656913392981396653316709638202450138110762164186636106653597921062339782852121408352945525995862020772907815953263335498349828613197792040174098939439550516967771446297299913825768614222442380109316612174040151738182476715738706097046496932569347837396940146088419687255053931810568030195117871417392902428886678490209638265031087670219258037118593519783572494494235960846330715377524948019662588851094034899972365724103962224957109711252275935089604850022442176109120944699125994938783006831349475636901203144932390767372376249381092924182131842401093389874980763312487563984987615527297130263277177903222717405649231814602656320396579944566298691051888217196514124925396641714534476808541552822768408394003128798393599495454011343198343297645513703527706838184731507949830787659824808654786902425258492045620828244677996576907902765781466842259128777554958364691504850511771507499705988507709926726090536077673890072661387260304541473552955549389577385285153712098010474661632447865181710204903199587528881651680725669439007661360610292244532322981691962932983949886369371779672896244345104468935253287230050102707314757460852923559174183423623978765806571973059990773451764747701916559698862502726358877708800034482551144335452949953454970501378008635641652894577139456400524346993339514561566460445218072453247427674458421081288057892405639308086742391381468562402130011345694329020982308313418299203188610567560563090689286825565607406472713840402487659009447370064518490118694195060329674042777331596514049673948749170754765030763523121182395141205361680692103468177386663324326421426365427604654790651839604249911459624833548998981322430997572087899304235152971586035087272475235429009805439307644928948317917093737842289677835311075643763631994419198329332017109345460042313950973049636222391269466532688894755570805855881136581763400159604546594918374997508188701866833847043429482251440311643593330419822224035467856380738620480156305789100700760416945054570397942409971574794738290041861950646824883008995447705012699731691511119567456080858615777731367485207530521218795329451523649665807574081606670730857162192804219658431804375814260037155729114647430323262887358796127717449657590340112714349625391387406036117924652397619355675549448954931604102002734180802797457469497857317861916473877533418007444594047455330282303087754151431389115972691083497674849995595369306665704646957898038204373752938984370654102084252895251602926644908396499691005506338333594008833502402798150099685706971441126827360475804354995065577731837833816626523437102136349479704102708027615123731530257995652957835610994309834798978242375618514116730554404393806391574127264817207125866780194056957054543541389348219660935952006995856278259316002053075122673359968193271845824688904930602971455353804221415119918476754861996823713456723263448018844010956635859933769806722199824540342271413820144789239003135801147553339891162436406493491578715148488998309905665509315057356836968326578920283533304316876398195513841399641517479971722840735106773235674572861966791217094736810481226397690020902206456466079632832392744990465461940749206493585544180397613000107695030807532100752102353512005618521490242864855583422440691780172956818376120502781679868564288978226730250202847752259186815767189754412414209573607923671544036180102980622517740605940304407376130478205171058909269590056863766032627508512839197374970770975382963665683229734525194188374657586914445132088560904207981530727647534154677285916156772505936399013402788258332285458184820214990383289295596016699619628134215226112511748935242763457089411349882457500247870698893162317085623380618224919191190701530541742166756933916873231680214433639867283190393962676869387190297156113317177139791978882576077834626082094878660226644403158288138887520807718617117303699756832502638001729506232291720459728745196214601450613073223634258722096715273899360500314616669648251969714441469186013235627301235635368381083727064963463164546788120118467831443234536819247993934586477577136329102101099537015564877022041648679421058173731340928169873914097327799382468265515524763632624586023282765831305059965543272476152562277958949946779323442669706969698110895509649581102092234012145535634803551212849358341092288586859990584296358233615699400103011826332289069654292024926682128583855793034219143294548401010007592515554924665664001493302421121237407912807232312482654364906469148806500328599453744737668841644351833996230914620093944317451797280772319352159776807299503752875166486362728296419676820674038712228954812115516755594378248663267848740573363081937326233281203023980345204953600377034784237294167360220027770053453650639191395563382052355369477525774479549832485582627774203892101851871619901658734019092201383816906887771912125381387358606485866785826605379869467194319706308647387285547279267792111118121218701391294777430807219451299878178817302810142501810153262377926675768658166804983993859772977297836750223694867826350142930078741407587130307322207507927858944955128009576679850913577041783841553424422169354300057677207224965685301876322950109394253199742551297007764172352775523737942090392991344324834898866559638681512049058001062659342877887983963739692436029330117975849316570783423246299112973961277896427405827767596110190530720576519914443127177669552126646725554819695228687955727036278106925725937538884667471640757212364402155768074036540441945504133880671373829172864538861192186852374622717639767799609788761699197498834269250178466277633356640043913192346141727024285532786291830143742620519720556190943658128390400467050018782216451419298898895738731639727199279369082436290010216122068493015861377982383578985623038472511286929716515214792522572795934254869382475750885145917854506636077528955690786793356125587443069654307987895348493609148573548648111603360592006880837340361845542528855681753595204198875793586380528506148793804012212260591387317250036919086502155018070393402682439145775701050801148790627554729172160738345174311162301853857946304754112186213829788554649172332079831061838266822886306089130228393620649704728413895518151141015959469149096019227167700006331596482008652608013370273722457592608112026862113901829543954969262507293138696284945518777242216818731745581270187588060524013966558003481283302611850614381927583497972247107517928020374460925402718036861653140204815102626677387552207276736610321953245236119872793989807309036786188583743765359194472176577153031055854228402595242168656700842854932160013181708116343624473473503346943117748897848158477004972127241969567577622130582804472717148072553592075802697869836067429627594984159311248026638524090931742014658399295989331565383474378583664743255172172437226020484875774308106796763831636543766322212143615772166417426659198562658717974494685000169042796299425767017037572911800152468476975162343184698968205960467887254900624406343284477735698800021149269104728313630806659145251164427695745874972198985070941482739153533405959791194502812424671594504649775368608077362616748033461295591901933203291284070249700127863144529920678424643050147773984540109855808033664612969482483599350658971845474496749269091856428215089048306041563715683767552649371028998737797878520996838451229574434529455026622394595741064669173468058013396285412654755074904880113315705547878625811383878103926151322884170096259704133384339477081659278682985658879657286413299382017347308043546217469007702852628662447253099676060875051761613042190009329130702607568573525207287526168733418444291753331235306475423901030576838946262342164109247494858990291753952681961104313025397244840847736881125512585062175145113227703237760632781369335876355139062267283300979070850561476019846695508792147363877012273613984451831779093458702101125355801443660890381516123985313260326022307811002558700507554752071653613448961239653761090949479210399676126880574094837614586216442275903632324256607781903466336302742439376347511288100985839429691317235542249864871350095029256099940674334038486111131666377597021398829866989035215278518565465950999764388548626755271304873512852617798911301146897273228033156158440491372981988636613629891002443770111303386603088248693740466090278319043812598143392271069040467639819873978486143560619908494322203566719937652986144880488146287893371891244582330886873049163958142233132829927263848490356644171336637593904421791162918424448239752684234054681887175125576002428952917325025868819866912495013671184363575581766435024189558396154626675485850664711008996937780851087748829553862593259208231929692462435320835706370974385750686237444248088468023479204187043242875068470671101090945506746337342830784002762928492237574585071914970650260196376221636093229960137747266761604751549729234270902802870399413585611265566644564426359563410152860085285348183709280129173697402021452335533780187581456370484356590223606866904162767987730661404517040386762804531733366608448299605853638572378426515241573639186045708099272603321008803052553252385929250187835426519140741470346224669685632765912376503569274585158740420619249869584710287392342290496636614920755439810844014568799071406000166099314565500876576583743616655307343098002015434306811316674521148622720524431979169296654120680426820092978195632583118337410080409322744186473348068631210949352709177305034107337286706407795598469298545256150095659676213806190007195434561050946871768380962711122789617726546987693108783627889275122179134665324635452481101564648627148586560595481629544744057072463527703289802097039655384316428626276465183228913665468681571156175690546786329998763718361684987151215658803847820996296327059961695961075275853065537514663878452134225628818260321488265992180419632028982712792140295359504540938745527078320020807975580842132323720533442420022193416870230768964140088485112944380435228495368257027192647672270066101185541316846399879096924927548828007554255144517852911749763702410266218944115282729361557060214367393608526863838838612112134706239085485131905504276829343996462722458120804052082253505998354815425076953061150113571426481538330170113077660959104928558285365502747748775787343151057859883012035957889195113444479701611599606982590161453121908060195395085257504580980234562885462456946310931254670899325794129843631263464853745235568445733854251774552804602338274427326122643757641360697467749182799072406016728616885616242189193587387551706898657612710013777883949825842841501376763490261063220375255173635405582341761160324671038499933402915615042157448497643911213155273398431867855062582975151720696257277280642944900473350457826329174213657719330725906387558312542496869417740100622242749606923758867282072397779882768845722361499819090069036847462273783655316631603348310520724322879283851771622395543212882001517436805490256206071731756691893489220943954903539703786041383287514063963245703813396220637660100381903756733059857345693667953264449030514166905019036984940199100302743145777317670391200785170305486586562151046246291737974922767961851293169866526151351195026206556689031256275968178832148217672479572273941838650735984856999173235154938174390090247577831031597410054716539926871606025486872124122454940229016759962188591635025669582627617880122022604588704913033519925717631102208354891794806238780604568831544279707082803535134620907447271886015391283375610060656233522503753423955475667867596581971689954351704637568413887747143811966439462925877721720223277440029732980592976326278766177588804134858903844030112402914909285207573748652366880633348514709221527327603748423111392060571095912409038740654923056134028479743166935471708029730747690798974952721120735067503855737009427397915971226669299711342701258871829597731208343762707246598220903535223916331659216883357481529869702098863188088839591225412009849082053540215457563121303103801076127876938348232683174093417038127376084222935011479491965053972344761308343782724496384130057941872244096046897345543468602616071166395599849362032956671485114110652563286566701015912664798878362908631492807994821949737994111538801968915680874165474582439734521328132394561949764344445668072039547095403618682957841546667078679755225138945176451587634323099878168006475343401165640609642156710272206703684394330641374942838695125915571697291671398906080714676591080670694026111776491028358068144051050513154513025654151187464328691754762857154029121954691903451804661001318936310593431741779251747710217962473676498545232337952168427687432660540471179001152208439325607305381875163861576272373309731990632896615433681132235888210786399209832546430160107592705256663707571290917352867769014349757422765655833064103049915194400320301872338614837414530350407523554546495835391904140609373237507711279901797825384132323403880893365852475645229645492319608509858577110906155875348049393346085806002153763093957116946549407395094622485730378552042483639302408991977581924179647464309267494218158793512099141901796274766215776035932927969114808480505823296496947144778943233289556860155661872671737999073479086692149607006305002163327095912930898037044139197346683692145966916590902774896326190069556564939016422226015000879661198324875541973563205113750721281943825469068895746235347648487321344019894090523337039597392725457072984625929597868559953312140082994793713804099106764028913108616459470953318274614936248209015014915831353425737604697677699017634287714137329745184459511674185024598891335885881565672917360232073552942126770452924066273765496233793570857606790037572687409811700934841925270600962390442267032920953817531736812944815253578744657161601804640789134927250523175332978446960435187840914767389380302537132805857387447553851803057832356857195490102758273571462037703644922193404413914714881988172903484314756795789601301483434581252245243384517608855602368556607944119958895065656169134236466233809362020324996138878910391339195737812390072479882027266981811763450851431616015510114369167697798975801676909295524692736694973740474180788080864129274152056903116892064680688125918197214544756459453503745967552518538913273884912478983880716476952744636892450754487177751182211076700873462314824523486786751940620844865646581389340503313617992303191419322775457824437495755850043708708371125191163818859893609325086484929539541457971566869837199288108667397025863020193741705366707102223192970493316169669726128453740092248416416395227559992892263482219884475822513054859967001757830357766439209816600110157857855910252283299429343484209628873584315354677175480264824399505142934764012631848677467373411766185466813965481762942962134449985685013067529554477445257657248552361480446361839253423139055461329971576625396883244550467521034981544912091610034452304831496181412805227712075839649371156635073001482055914170290357814312181133380122066833578948902563842597402111174111266896111586921683296191422976676716732539919357049327839318058479050383529065477806599115747789858259740022744571836108042253398456978417391374493120646460341373714266714365427184108278116350979937649697084493368713768021693691354020054264450352170926777814145743240988806300006957948424821292520709581927671380933394423449495734378105133693628398128500305807612549021529516222110048184971411228391312685458196822608222564199358792182648015704294192017084162664989122728455641701890080928971534993027426014079978229503453480795748873044629688897022168434041561625984537364523404217773730014458210637206438434674878188019929598881009859660776617749531586945645485720529116886911779586929812120459989929220245404295835503602321821177984496652679393297850188910575604560563229120207070604644784969304550199878086547583408784688995881070446345067513062336923720340601412288849231348182643591854128251205534177605602182554432216518428520017963225989050089995296814481963202277382560941060520916208679039560106650202624639466471537058247584354051560411634741230336480151551498743726486416548862978133650310000859062218745002423819122777187731200812718249352723365012604579025352146263087454540531438319099065334606017918277064512032335454629565366991023698610750343861701470724284593815812121446094905678019442162198103406541818888231282340858911414813911829322522929539012792672761804695982778185598868257699432094921293791254395820439915735012625958092996604973483351017460565149432790301672071633877387672872085516807459389072108794364619395116452566005730631323218494675933393180438322225713392487099442053534068255827657759188586272652933252203971348382334574442216126425210198911751626954112481101831042361991427295027650490910437732998360150956494396043604060229711945552462191165377420406802717072446208880895734863948935297027213775278407762561355778280697384787943871919765596088285760703100052522310185281257741867297602017547445851109944285657425546857023537695150333116388468955147272649132407488282439139305898038889675699608060490748210114538419071249371619007477948046595071614915513581113306010671878010034571040715744398605978670588126801113333531445810088672982768584042325033288585194166921564040083461885621862698119806925878382011138592095133929751426941087237606432169311774245805327238299017305188084010379692648507663073879229517017312119101447689140703482638881222006047329383533577936518082232523920605442209823168306701837961004291434992998039550144057559327342431046448559892729365632693529392120843819902553790352620665386651338788020541782766139041377837205817671564466646409488064068965278201367706112302484060761824170059347140178306262129514222375150469601965617231093101574547472483382835012068826343071828464805818959555548968815934618909182628539381629364363357242266313650302909960707666264776835623938745556648013943278430856996155665573566460009588422047993397862489614890343864659102518380529145363472992414582371785691341162525287395616166470420899404789840287106425599447136549087563607021273951121201156567849364711915797269864223304294296294891306128453169860320610695066381107782342405233984962923228142068037264285751086551364251259298513251876493315267153575175116582759701693239690442705606332671358914430031113368517376089005647771259365612238238396014882234662744865419227057643673741742316346519638366933770600574982224180672632657641266871273199572935655409110142819675342181282211929913293095318582246553240629599699557854955982704501860038581353348760003814761315746745376831082370387256573257569940044542724969082454895469573975790281135144749683858578018015957102886631169807255232627939379198654208476836833047204359179152967668907066637017308581983140850226186993443003329605128138026450551985521874063220069567017543405533313890560978066513910796036436560724996145014019741535284773277982170917887141601638688262713495626407322222114823246755033697980875420585775828852541492130305040932791749436710990848919939421126272103432553357887672899076898638915715425572467696338562115164444463699700486105702551878308842305650346733274616353826837701936481852729010858720947011917308099817455850806849360717799278054927143178228098722001989571886651641727164580063758563160681719007264873505555106979694445979680930465100689303351441296369204778202534458615766274095760223055294892684607461244018889325668216431064586750865998808686589418190726565377995830004324010019584132234820122520108258672976825874248385142740938118777479109329562401821012084742161271584882430316986622005128200264432136677023155857955266925579038264751439707195308852506018989493401697821440440858226721020019426754911258040131452765034978508239524985195689866550023812364052904143766570819984781268847128839664462493744537855149657042293705265672514314271375258090670306219916113012779828433271982094726728925666862019333294596806613804121023759603409663889782917668832899180368299064650705356499995874706414331291945884396417022174411171045684499830798283725160712431273146921175797819177481292950859360150551003700855705400820066278025770617720435003844029954428569172844285932668955662405005879030342485463166701594555368685723183363410648462425410183197447184969987785985296128401102025381142547665320059302079938430069965545002693137280389865216957063551568907864162129841744796042793795590766475854676518886722823727085803065489040792599183989338126465933551153713475146527380599755995922709055030082442198202262767857325479769137046482584115436621936774708645197001677479900065010803669813345701976359654666472322654929699173315497472879132814847515378921443284609342330962698223227852405824668197506887675599986190084615506895901540758456843077399423214335848727530791357053192240693030615397080520095224482970002629742443757534124778259046693280651747688860155030416769205604977048869818425351698664396010537578866106299122755002489039842180403819449570316143081097686637909294617652309834102196102345422345401627979145510597571600366863760079805726309491155190917122095610598505559159291526407206130465112798681234341580707785850124872228061780058048999881470409357653214987673025241902810573856647530312304440000185049830059575188556113139679968837768973305996321961738418054891979782725764450870731833927306856821910120474403968932596352913847244706075590348960636712389261432517596445594284317268370314785113306852556158470838859616819864658885174706232785240512451180739155071182502001573582005591441672366902653672660732028331438274568038224162729277440627934583977042036202913675334185519721150178640766214676079351024095527000207652949565466786314860568090177152823669039451643325830488716599615383003983923305185021777322777523216948286013630399559193420345948288720669237372441298597845357430242657354190116174957278596768141522860487468419808145058199004855818053386044011946650288250383705128198762841718745391166420723608129371576122159129473347024156987922419382035633952388702937200232204454442349276862101130500798142255506457373472349060397207709517463009015972717547476353213538005568495426707418630526333328324890983361916025468191356144862472316228562343744244430721039979445458585564079265024523147728714805384046351705683030739127191691837090870845936235214416757221535738642771670298492084133428932163807848940817901584044320677460723083179724246502182529023321470360147358958266727956945270230293765994404959207522420436485001859649325128686564981148103249216095017625526715542066437837610396145624988026311180803887095475545496979993979068828656112539356993598929237207718654406880384255829182184395848552828649878648780288830105746588345095602602114800615804146364422218967122765030383648032121314375295285632153121965729807316656790599057617161238190701259669892492414551143084630419931839112251755461353771089677703147185132567155303556982578047307323678463771878741409019501149706897668326938247026126949825842548895695347879234674420032594512082705020145577162744403692925324895858990760598734054762047983633962727526556276466766371086153924870712226607636128461712619954026073054684462031773070763391781423431193450655189661467830915768389860689726018161643967331239864784172926532201891397483250302603308210292956473219932749420640520108247428407866965087485904876332021719186364008123859793565285985775459018229695831092397153413961903656251907575573492735245158250947873457221841230869354249252341875061799084981173042527810797534946541960035222528968836283793933164580399694678325089448776615095399771578360257071452475748779741556266515020190212000153708633791348958964600785017399594999798027522467339718084434123170544933176945516140963594330059293822875771206190600494018545688608106048889050552519634915278443983057719590672948290852724666118255699121229020259463621072953115089749410003152435082057251347285331321328975530221199871288611626706698796101991056445459599427200353918904328590211649309347689665685750655478039853562829494577346621236401763466138170514991414340569615255933451438273422146631895411668470343331987019080399584453003625972580723857614046023269182010515611449572715575836478738541124315806755384604590866110057999537867052189400453494400114713343107204355134691912529140495659319532269102327089804585198376701148963599486100794248438183982199785471764037102001775772702570527745717974713970953456632705478997789954591663068607139310266006198132721380561771003945042010825350057955765806581091597316388149505545811014240558650437724797092216750982300918298101968831602380680505090106576945526152912711829588830414824890264325533700169545513763546788859035087352196328606363680735789805170565613701142539518729228475873834243100155747840286341412702374603219190141206391573828752468032662898406535617535191261085897919740146127103903253905944746780922455820556455982513009909135890014595629783278837192720348020980473215880048084785866879452924648657128361418333982565253233141807440582041622779924501957937458703667016859293552327775229903460314032499217577554743932199918179114448225080842600592540941925343030882111296407969163251735338756928671044486878498035816594758243211013881036662248148822836029297647204564353950876683774011288368494534345685491369735159569467926519176537205681192296348151158441203758556181811752849827897173286308811723832142943376458749674519929038016734655213442638296456323368799652848119641945321958887223965009683898758682157482182966275520816048943995511187545348740711865023442142619208051780088220184373403725947099521953016385467584655299906601287433841984498317981008865269038136390992441426013620803290185452904032116907426426914122034202657345799189831377392377501272306213150472434843871827727295783095238812239001227393463072194744567399323965999672594272001764164947062501924067479096728694039335901527543183228387668012491383118361187016789785284383557857976624522389942515258298831802992580898960216112953344528796401698564288098566432978223672064250807990857907963508441938798097961903026475170442106314287921226837541624161366854052410487253552509621788235726803112110586393999378156074302833641867730685650395175113626849703863531171109547056751199589859504746842659176764886030785551194026016573271743497081745361143544387345217423516909220854987319549708358614472527874568090057878622284398827506797495585263864662678406011844390152002417238853460140751396830976619289281192769658511653898985785063926796295038919426931447450314364817931138836531258524410237440282937607530929920708243808062162628844873402628407559075082908769590207351030832233792835911024581320763168799924015673802583755131903627718306775568450301687486666557419346100440893020341680175586301504215394877491834925313610805308926120215754683207011742812794279063331607626070690848733067404563024362919590380009140777769446904270332653295870118799850782363958300869208759908578951529489755490261770951274476702724546575865681119772317084345919714774392397486030013117898187079264322960564957123721105873327233824133023152684900427892209416482305833275577764503706970980153774035603788448623396439618867417199530333057547710497659980237512113006437912666534838298574862346881731673866394158731809798751295761727617729075365316630034645185678507283980021344170558824495770850472479645125222523291749214309968754557143650481852617884240705670532456681213598693522480276428335933563694169735541269092540874893423284654844762337151455918135590022097094673473539065193109490720103010347601442090003701515985979459227231097581870699577976031224552989789367207625343694413245110109683132113925173362155245059460647509734809484466742478621132234531264090286321248029627797430602349640549267105600924158296783694280972997787931044321230863615258040711467876289590450256243578058764544576057961802078565403213583099259253060282926688855826147051616358643988883729730900408793652568697055585859315006198742779451041378087805263705739296587281693057839495878034194304693442256612316337004080178427546428332297892808380238980378112491153098150007141720767929140872470275673871773338109288495116857856566192256089290523728216195531935287112427519133525615383259771160324060890726690132413692033896597983747124841325761238643513725297868399455598258425996402351907862598034712706226158311578075821006867202891981830366027813049929600828645093085548640121331295264939527519304657717004333982620680534487627509062653592499166977723649096453075052917410727184608633928135611366018253727708149571877502618738699636595886082012238451755123887824752028628417463869136390769718245427032271393424583727370373643499759684147323315040002313941480043558296483828386168584559549660022011755246181993674844323300761830400978195362813971290674734550419189072975745477621255071342309932361806043583970288495922543417462843640845616158004873761561425733522346064439615126652795919483584787093100747874701259986172170797080207903859553770838467181614032696280995092724579120571733301747990852867763712269457847660775212069317050899366890818632908116871700259158498478350134526665423492616031211723157779814807680025373587338875178017903260591329240020172295774614975554481292781930005763603026796191424300568482943567496602667190102072157764654838248505585397597122859459707083433681464711297750158169022524229897788544616159591881614001648861957071528801951690877595682711306945425554529813747516526721031847026897362888614094872502648066384733264923816635415318034590889761092979059254149443651784172964169151592711810092346623094060002347384636888470984048550929486761801478510469172714360263487134900309843825015055199545209637493483822225517998317777802859075637896555796248374239351100882814086871152773572693059497053945185909760697923183557189266469913598122132492032071868758597199123704110454306358248666322815470618312600237170035202263321445463289249926928405492900945847075772405081419843455940912748500810329264957575962547254324240261393709453327644320432148034136821513081378432376297098553090772425900851210877549585830840891894691702962409696290109666649061549604827666437233248009256862389945769857005736893843162934523182323466449952311691133511485273244328239284431224680888145922272253249470749985838149741279407631242770519296256336730845449926157418916672826330709570625963647412543037257557626774477042873070979118907154302548236337107449849896482376298356260230792053201611673547693903280534868507966272471562612668503239400548386971925352435227826591023927090882603399380362070287700045572144997141999190366531626436212689416678635988750069065589970400227443096742419705074162282742711100278803781424196985572708881266074432224916498944202866542621057463937776479674767728837895301616571655095331407924458547076784489541273623201541679444816043841695336929311112940119005342917677553013362283991729758153795557785724437952318575513424566583529006920304063063703019807924702703579677435183970636635689767154401724385570388825447536206212913275138633624669273403347091009369452780039858811066755033315212964486206774748785123568274626430241136558861463900477422121880096543577323480278734279255472785531780744127697169727257552585016891457173653887619852104896126338348871169516819451391808299505684245432555964930138635333551787801508992551561381530857376825447273419692061085211029339128998178222598280733237016493959711782290948159143302109282973760821827319605684448658967862498318667964063666184630523527455623240822533340215234586199162960197486968805130370287965704039679807950175572688386768917001979026332427791773167661647167045364439257323015719608637361823588303651574691508532114533815992145146391929232206385983122992488887888064868006280098851161739931054682848662006825791453021212752458103900413636879660099441099701603063807016806690289121623130653567821008500318902211728139238648724881373111862666797804818933093868361135639614597114337192784102206095507437090568058232198543402704756402819025153477825373515648114033804912848470406482116111227413934827341250644551047929264201338506247956787214212788735634196304414491648597293357850894014970596314299493172350404947077590842330682192448969074126944556849022458990628126544811618373795033065203781012618504751111572052585823767941634432964374393480876983717591201157399574403013456037213876549151238111451062347539752773216031153535165109107479973323331777558619077699138201345340378422917337748586508459663528130904210790978318748717408537930819140279255680497499921207176831437287933659854742214000244916858879868184451474965839429625338605896392196933120740269556436418077928725996576696146896554117072176742607706092979817774155831118867063883818637434356656738984317081704342431000395738751991144971173122389534617029858684447379682987174640488990856539136063581165524569815665444143271926220965259620707180082660555460722284327162140755838748038894891491402230027704275544690606545518145545464969784910235982011476671933962892994742639267739900856461122625389484146398960813432254660057051440264597592559565590743106343221249664342966851980444612037418934982382363411761743700622808895711646297039975063260667179464722675742033475974600237075175555097202999751894104231241241779658779444282906982614976599894647146562479860094750396130481165395169464263986703946760966432234392685908673129611366927408664550662331816345779860082371723833808993165698960413402427240359297624172072245186120097972094534903900326284522060800850366490476869041665481755349223129631026430173087920871078301717689515873645860428918744039931893390032679153743295282439106686300289957019429065366694017431016141261313563223035914097986413899127625710565824999999273402024396205076374076380535638143222572956042649988721243909833164638078074108013387346777733723361450829212167462537241598218013688139295723568488102163965891394869017306253225736745404085075419226696786292161723484800756821189317254147798508984521982845061148650582089809726248375575385458550941242756805169434273416709471973039350462455307308267913610046194625403101034780540094067686174371075499006863471755809408987296257206715585658474356028451361760945772850634082328152819460042282128452697775719967585390942127142101384428496068969643122031912633061294965663954779928896474708103825365782060655087820958359873804478166757748661089188318783159389623188708072852727279313333880734217894049234524745724967667483932117580323892882610678499015109115851185994481730043323921123837549508095824294099485222185465823662712294587010606891908270120440097962263345901906425270663114510087233424038761144232714213056250150393027597006725497626979722890971045627441198378150678570785721089732137000416461759097603736150267702775421588296577302958937643743354476433831654134220531620605939062892118843934379126645396332899732539850945527300265312434664379446732780976107257715561966298230857088726027712240965126027318948707820818166328602291480811176177225750431417765518807049343026919535678864706114555392612297372308712060500223668943241185701547536617156078405575555487487314326594582844653379033399956912034766411158812716878847584200327742949147467866862607403518503784719455594531451499312695210760913948830131145643603902234849504047658720242608204110047604006671118451105243104011720016452513279008816499769734157088643208516644812269380625031261762028776755130844335953617951001861482625543978747658081038679310024014891521318215800990582396376239872870833075094180145406068247466999445929366008824874557333478452739608424396126221253749927307971597575507257042789964353171200478693437661482495261045184297717728462045426622792911032248904357332838627088191710570236965602499631960285091114912969135175306644334269680236017260228002341100530111893845013798075576592616016229485175615977122153553551882970197229724804923743921177659841672024081550024350914212379098820925951760625251958051782198343037132418677058106669735189367415068542071966547820325375911715164614350812628658639181748345550632789208464330370865100239747693236697561858089179838458974747626301764284067376189821331617787098176816864583608904580776861029108797186178477630181396631118958037597779408344410297344329455022890831860888848857436333800635194829083514129333463697681124346963691958902984962628177537173494091137101716318650035410357009853865138734817265100929624978035425130530046021361211460158795082962327509877296686272167280416721471435251444412705942009434861060363007268314623229090849258002840130693153001264825144382629365138889173480423886910439638955359019189034687215372053994212854648065603606578840132554460061267259829793100839513206642783186750284426006366540071453012212241833092271425215921789268624887770427016786783388274492024361106867930786978942545318900903564388562956204660088144432770139409036704070639155360476264450684081168406978998107378384730223930642500391103354561876621140993641196394898048544219700796831647564063959704465335177774590453483999206035033965507913166975560561409099593598505223479865741764315982028068653382989531179245168373078441749126292638357878725470279048454294885839950250861760453243178167848873294673564442757345947618852808711014005555060035857894581497770524523990488656463279161190645945123606385221134374525583773301040245741992323943842587420190974983546601069640321190994425257951315590233578739934192208313537960867774162432093366920214704460414725251258661269604750926130879298299636167297349342244336874958575941836446056129672921675781601760962497946814726032206534529379062128766585117000830279067927465513590106694654118239910555566776014364229369781957872178356358178147428821834722543034944767264477126435008714899647369246990052608891905759967135587844155711121957664531411281453615401886396400475437883559307802855437284654197939619739168277883533420331990469535731838974504736009974810515810613803744066203871112599786140258312438126562619655655904957229174006377681603867389495050287637903465996625371076281575923102075860264598675606836197519368349676068844005779631678549447331600382594858299194345378825410718411700264987499247458211850039483023847221334806230864059592355721098787387749392635094246521229284631013436565381790141789101646057583300112874303222045004728463329284836960006434143711369353247226483063599277304820872227770806556624699358131918337139905368896008864360004451503440381287847508422679210498568820111599492566477150350453232581909619760885517804432091984425442695934467416148360857664610584476798294858242425434276919281929586904531685488345817490845701948299771715131357232012150410800353988118747860840249771248641462191493876523001230200236279336098311323276214540113265740338751063794281623284296160533586345722771001294690671911429537317173781516327499372934107650682276219717730524392751339850683859746989916042940226591806527252727541281734136833343383067822595152136429321470972553702642083639225222951672103993244717175675918185675153117537415869179860613033873957732432556154475766932623369832099021051440855346050958190730343880385293735242232481592375806465598192235448819124875369563082226783697250770810046495808679553034353239622260341326154609548885369580017736349092016148322176965086289151464777906844972622546606696536944381002742593479230666051010345155763941506045905521354377843596997831101685085476756301022145928871511540513541402596508574103814391005188622897089238164153352730319701191198044936107224547527057849551688252791567971163444288854431838367356163063680789194042728166023580192286230552083798715893598528144846854781902235335302486927690456885982587652202529548301086713517451413838559311558299615467331746926227537085756057973092012919849718178466816859066714667124693769156616858548123738957127730362683055857487748179800878012143311377262474657563154909363137976554157041996758970584306304994762741062611522750462713931434019774569936039528708594319528748468627713378325796594421783075073382783407488235342614997041636921236672830601540475114312988783679389808685936431524787263852926886653291321254269521881397124294263976743419117435209069685532803063329487631224071835231367353788089175400741590034083372059688422867240203534001304294271543219643902124397980930295886386992879692075102754127309290565844356885382661404299930461258009809588205934603576690612670667357438878965140115991960076549240782797710009488022810558420313431298286105662042681450790081130754276057249150332619733666165461751799659150135034262776639047902432038779268703332420577656483818878609955217028396054325645352370474547436404051226534615069784984983956386405743453961592767219584017856147873168191373608630374383564164271446683842783233674968642191529890380657296672755487786696140299027223386711311272780018491086345298226938683352235603311255830042752437816456832131686994468730922209842694897222648105768948386442564543794877132510944871185855993027777852650688034352327847540927594961867773373063300601934606786708772435234978615552149557798707669822053353495807897296582972429818718403076883859829380440707041037979406925718642295995536412122855036595498224626117512428002932896614227743850486584468502709157014381898985050797224969142184215420084184074365169621482562567274398016291327916474230369184564068292717757288948814018136735776766097398361289014807387318074907609675139083057355780464815592045794264291257450101138492415996021171780567032534692320872102628814175249876015016461480138518077835064019454001670256462406614088588464765888578453535544980534405599560511710065788528273645564624973551520822393016551963829859526299496552665993237984814007418368913076059477270931632851325131054094270238814081192570667877416196587071287061612139999975173187384964592107925564722578784068706401664066459064205674815955094097179619043146527609207799472735682328527371248755095139476841174283560730217266366776979497183729336727437384048005810989510834280769177073499536449585821342718948023012074523933516783563100066029153875079032866376410545454907888227584032271625642632947845068386189905541185302904038855687004478859183546924453610817664676460496838028537914981486196814437435976238129974422183486415507388613008094618996980282431299594040797358955346887056322855921029892676830688634052407824801987873126677985601715895382214725358688535205732471011576697764361421229426397537107164313497512515212024924509158179291163704580262984455141901747108455264246440200811947208513415502513338792991692948703201783962083231038199573215737341330456175784535392589603615747375535942152474076397348213778932770054664991595684368184868429907752693365213806559802360953067580209964871632303515244006618972056880484245282877158804369194495841467641989177105844990806595551620365988166896847027514614665383026560083537902576799085572814912328277296188497866037191353585964629549701657724411003012562577186368355078986914772173723999593028622938433036230023610903394045583978990890717915726322493984866556726719857772203685048979664239959088098685149790492188121268961008090362704809736881962039217491311695830201409072783936781175799024293313440178484736340015793587500980256394939189306754423644084579285449669505207995063255545787301797352711904557822025566804563260879330895241585523925037014831401090136535183149930576621264724785470459565641706830614168583635343783440819522372958162055590345577199636699900220825977681170007661818488284292621394549355158909564020246170457196065094055056281794483540616789050783511104352626464038878105651742104301611077084682797896886888257126146686305545582641789869552120046673499470652839592127476378130904809326683924766272046575243305797926001944971386120825914083812143610744264753461042546691865866651601693036206807031575409301822512250407253929438836219807614020302571922051976071207011290689573520709638488672802271249180690146428393282508514795999355216962131910105105997338609937614105705616750241213971438649416721530944313502456170985544104417590341077100794958333110247191295674197459804818463436969995583393101524962675628968336796660471668191828228509682124175628431287505216550197622990283448064594257473821695839262545778778319883910107758282980017774855732130342084833823899473937713284442343767254305529747916905324268779940865616890868053237818009256902728192414673863502343256762889926530426847654116342111224767533973456193539907476851342557785976363596136304727022345710086337054711736505654344226736332506276827615197040620593368033758623749096085106513632278936382481512136381293621027239766486339749655694898288060182782741269951115469377003360969714516866578419266733016454892672344811423493824500377805595078367385120562557093648357012733232682304934075391247434572180212444076913714704774127185737539094505902551954979469736312226680652258015632535761375663392844481244679778303563856649904377419596664201512774739510601318755328251058712745586905360573286669878626456935481034978947691957615014981102143610654425302984948379543148683278724398177345070255714588961785293889474836613647135590139919340304033980584669665190729820882968526943651930142267350349656758738986813501084501687733544080225175099929816209914329766569828271021786247788002925985197271885899732879814506966105670959720902256405332655854635900488824548627599237002884869443189003873243527088323678957498425105085906963715183844828540351614978044065241330420265299175122759554460384261320241402864912248979180047232098829705687379268166049500473299627182868539697458948993998861901329286401208911175767306576886130911038469594619018921399937390650426680620436352850423262028447446978532982345895656123294112372170650283425714832898804365615460995946616507549756655759360911644744117624243791427905414866448870852174160648256135861346344708915544282390283229792413242615893183927438974514239356537401500062728289494169086679291455213327960493153345311241433185586139793521842230762553843213248017077619990263813949678773698075082910036503192927407172980000293415897568898464857490211136458875810325422685700874269879214626054291828413156082285097824304882170556727498344458545961484558805641119090038820404261826938807490004935362159102305640654783854266767673338740217190253801090738993849318306354605242951763023467431137276160775829723991839431419827434232945701949124187404972198567104654047981090053480156647024044092885680843171451832128417786340387554555716883294884926373614547028101126335522538417535800667798220083365599286539543029023996187969082384626139009214981495355643092572130249121843901746200778217629915739807499297518647870167709016877925483310429270724269947251889959799826976544030935280727445638862824311388781478767762446209253459664402652516442023140978790309213646922509927984161619657481448415773331566263881570082010440988949711287288975385047026523515012774481075144932455462767010163923331132418613560540189960922431024725291387540528729562932158152248915435416938406413015496537455581354454267910540044801520323190254831686546891753134294805566517859464297598886843432627932061476152286362425027778174373253383717980762842504391214403535798845998689170134527146983237156799072299995937577288234435069666357223823238682200166105018840542049746352409937459160462292652452865510575379183154932119690543041395565358142108274558000200541590182711754995452347688891320380083737582579728221616177608626419439623500013841947507814688979390372669510991686987417398490489716725508697430949323753538940706704256670260419839947582172879477930031330537496038088999585409443130003678583686597376835484236515452375919415747210591602958776093412480934399157368136529039363901591304612989896024444804633336101731170147598848849533683291707962744224325465105221232538941253450970325095051682876263903567672038043749043711120063422020223900882139971189898449399915049473048783532324530830790408373777633844821764169236903874120196154991190051317486516051110381495910216001830562763343435741607778637883851243859334099493927124965685236331033237517146082079901946465308207814381910889241616015602133837874355316423361259933967405712148310407329727755145575290316789884261296673846216811309114604997129917313714314679855183682514688832017730319606130420553429987452557165825000991069434699820225704815252572277588760843640104825209999197837012807356465592529088556729863801022209319599855729668136291729037106762997243449258202576028313841300409548878568170593582561600673368162834223951962084423729887539483235803159476456408046705529905670910924697923021591630140032678270201556049025096827975880184584784054445124233539077547743457974776852036110566780990785754079610760275711367981701369169250188239725550757163412713358563557449190120984462034904316462382959545125704363655196948778483935929505600867169002139729706946952325538632782580459459180572990264141727787251340148127163105206026433103402900544733855782830324911923573858280850679696676333805469571705350836858421269740797232047523639045181106785514966524098165910245258353853112752027423101419875837820129201033003464996323680206787106571436436109482359090716137928469072551576422863376556581006759922414413028909515138175619209465650900025693043425196334430453976274919711708754125788435142489873756682447716561369439268354798356393682762590807042131650139514285542587946045221842655362417063230179469758098538115993062848447577332819358386591103406200221302394527540746164221839929085081367605776406782218930764330925715240600523476330742162945149064083255627613058846803728938806262486475046612059500227401286299763481812827024459693147170636351218964876699310282645476685898638125277861381184917393710861875108323977217156815196072460739088788195402227177075582786656741155776055931287786045576807044462819162330982038303596820127849320502358544226745566931592678786767801038083019852146310265155502162361959071577226908640730858538379770029782073285070810560024528468939454108458638062159347170212614335997718366823954881583433152347905673728665901132181964086371176180619810251830210042309944578762260316838173381798472739004858491285979020837893472206747760181561380943351758564050223051929147306274814255120499038734697786335339086668655418585278238016467372082050855424437283180892893643827429124548523896292905222131306255254137659419645682937840545405619584456476869852928094292861549379265788438338877648024048178639584141178546378417062114243039491282505587641804099494601239067838148667008155889670478437497510285975077572413222667225075639086604798620216551296686689741134146497947774125698938452145250652042267017615382347226432120242472600774686203202324529124350416564077624420177724960469840584581174806498367390498267424161722777847419836600494411088806268313647349534221586654556877714675429693756747406377760886504074211654789419226518006448620516818746712501526459853553992621770214293116560395690715596844990998011417961549761265314574434633024253662260783965335862787918278662194180034622311612403492137126211044978546680496742583525833274852136391763199591078175456925223782533903998915931705921282505350431522845177205921028557132828866490648600077077001008816777642122377839442345813028977792326895379630090206185381144063239593770095376026868326237544597590546373437238751890698299348958260928255885848617995320577167879594026514578163147628563001318440668821378746773874609636649878489556920847683450132327585506361648560351691333140631156739879987865124302683512278868970169606220243993974405490387771608036166936250636252777494216451933840020521248765125723216802384762080476147440256392429598858411453879368261946620323605339397202699705960497283012805167864785701497453688715430624993118005164344185668416190388515797738181387890748241690378101674963825164165102923060583520079739694135975951411650057159151989076385531032652178798381022137830501313741653680776211390439219146791581352380559813090697756620968965886722195783668643190599092333734216898413844969121550219003798245026954300641151776937913590271165284540152893498349066223310271268048864575666690687484316342426758375860567487498623916254961191534743705959501600362911535904124167264338365119635370479454547458522866013169078151535014005128008357503680335147236035116267429562332329565274194244645132775850836544346579015105558852081045091199949784195763633929139213416998272170711060285216565813607771862666789547136516420360562241141372499106817460650104651863864616224571725420914303764626886430876534936042958182465766236617371907003425551247459367149814281636963703846614451667893353159399786098992713765363479223750580398147645685660715373851591469581952426926029677044937177733734649063087516609505878222942704428762287129361024673558510084204191765308317453862328909493609279498032070687746623190522637410733873820698654295742580024183838032879242028317293562593587723866460213340869548476581562435403709567679871169484990852053145645416123478711448634769783199458983953742590443252730619529876968487104286881311745636339032269767202623433766605821077164751171099065930029923076629448403684530593312521927567779874024379334574286994840861368784046744728564746984649411675173448650947994556310109516687992220219918255971776489085207338440023096062731489928703617465791694085301744644668184947417052376282433580311669478694190684235535638728417247201934187170352019097002625042641525681910658283371956061536621337362030029120084776599926986682532245140380094938700174914371857113659916058010070734612270809846343989881879177032151999367949139960884821655604105772317368425158407847261709813629534602025454456624274175094174510941736291317397103114896249869901664073934293477664406382627141527849991765443594759394352285190399060649654877630101528139463416505290966919479119452446291970073336457179539797518304708938506854049905208117614555911229914574575453146708546914923851494830861456077840234773564189353372297167900817491462513265022105487939640920152805045471652851867707163307648049564536855942921864801818910244295954454566432495539736085103382645954388435887732183313945502108404057824499025595905470276810177735915318727712243788557831913560127690756161475339125411642265569246444920712615753085829759236064236432488738190138694830399466524636625201554931824413382335582983786877553715967266930506021595454122916872059016123897547579628487646131850795353148844807854330559553580664551017670243363783817864756796364581330755036714110099744707304893673765591850004576916915356108228981327807366858959139675156331377148433831277458913448731003909120381795723709934590347593110123877113842867210574618621016660950377950335099242334814665247319461304915233245106367015605219634975736156268643744263826640982900091172864585846025284118641467418723658397951303886953862074827634288969657627636926095163786537584561439194606239446826655961313942825985966657354030294709439816332947852632386943005886825927959630465388219302382568172349764607014533835852410340129125962564896570641284867798740064312701008258114943010425309651773014507783057006948193981492702199808805592886331003287678004834930238935947664406511282173621337693121540875105667849691057929671853152776161640626877197033549172010497267602266552678927228458055860214331752721375850458865735598933045387708875704907531384601725415125522880624456489002278313150141248414720212313239542705550230913734114952307521399788514971854784310818220465731974059340881228200072137989216075486754893553287367631518591567355515935856301796842065588355483370383391847499360836001708852959590774571862906336552249508613726654004361421391899457029553837703503586647048874774415853429411290516097180818441225261599435484605663615336043624798784663697602498766388481063252602979814102885986533707074966666573197693970598501058489774767817158346707627083614751349361346432088943417646607015517323926687411423241264603114525185454896639320358655551376891799360216620782783283092211317396589223484238638738207780137190161009196878999957147605583338824121973301367296558735483453931353635502597031069676963772134810707370913442866692394455425906762426147318354068471975900749534419863271491402205299771399593598227267786170000088378290593386793698384065778905072921555383684076633647495886353610305441957652110896426150606026199790472303172187344736954575668905970609964114096138755782615159297657564824705490597789715483042997448791450209983468514083416929521407405700325281772917796106797972022699265941307613898055823080063416493384580353357172148391789087967903256213524520400234586456471728121929331975693111052618096078440066559477847544078639053499672705744121640142202630976669168111892447299219016622241013275359200944869682587583692533673114535675455926318737017621827672311684105898250566729010340083711762719663441404103643607721054005591188963387930907065230310746809120938937195314191379742641177889605047523348552048191768712861620923863012171093929517621834547456998326694535479640797980216771985157892352930360155927878451994619285413816929766323159790313691324392902493822124522125015818458750126994399322013638045355429525293564761894768764134771566584408734659044047175691836454906219025493863271355955878478989275329983903385428051397598118588855740128480646709078286240137467954942347767664815847823140738423631513282282913358459817900534326783981033236962200225558651243033363123671944055190184175205477946127406063936898271008278705048147018383012081175096002822955797146019117159815820512634743035881761834324655921626851285033435193538825279627636706610567706515185033682484958587036434434356594678626648572554427349525862772554387241149091101122880412690916601680657831670142983949640450333227409737721450193040622097189249781856814404570873314253067744989133095881040123948449538593873430725784847172769388696598639739494325923292802602974199107128277726343637774961975024097072904809485203537521873508427844262189778117152505684786496729917058297254209729352955585758981541782289162023763567292890184723870674913954549311473533813278701149573959958743780397490745227707349734631911461399872985916277410594077098637463870523353081242093394200198076498676902759165126069902338269016579481397858692258621672530530498032296102311773697448954139288235558163584820220108963459260269702593336150239297157081335229380576842487308573848212466838454856656166236768860744151960864134946857845709928512114749636818930720731957973756107925416047508289410483484098220523436708714006787040013344045810916376990839922519123223457572728559758581291809731101143426968951922158439980132597430708250213198485508299715988388463901067899745702887858334999974411363248017734506981810285298825496646140668122228333929228038359044457828838166703883301822460532321373802951460324599149970825944718244083454418607150589342814913020008657473711209424852339745862630097722013734388142278531874401149440846296267673192255198265342986275040703821521755051412169116352741927347866182925493781952180166917311733412723979769789799104977587587342659654264462324825665545456881919359459507826770820068581454377286025415415753408270133038655024222699680685279029439472737825448250566659953819127875586606200974586867393618023372440668672537748665692318073462543901065685746855251782605452339796283757339575004185300018437974117380270054906034082977232071219623697960308191937988563625733989305123169987407609634477460181364232166104332866995499950271180490555742566070128977919773347988650633905799105127546662826115709479645162875980083012823276953049363308268955993366826512776823362212086737131616433173749431646776006404302356640582539503222262716123729614944638331012967186526951713418694333268516913065355033233538285115492013313764171128010771998651803196135938239731381133474289375389502604548844676857963386670938436451319183710242213953083887287639598603675676469907534088112833998755521845689166659980753080455601673350639967968717235746479802557667263741676307510247145542913738901692999364231415360644685652866947126520322645116407640759131722747917204325673710514702417433532183412393130455679136965253021863204395220436941312528318342903717368759544021942895400984022085999559748386879250327682732251222781542802968379160964332111346818295182830430488547833019046509914561407875756408779354058291578988783133203421896363064282165028954828382750685152093796255804974986413891761032272520593486618527061256229018818719813875712361564245637105326804506104840582317407934058768123839348196445719547297986372200445098438487861382944030345364115710911973922514637022994018256298160164919825585058013994605565385076598069514393847929710263895675678510962400985374822535170835444137772555850884088994068168263192197285632894108269194026679106704742923301434206376339502416333693223852153075818249856590367882054129320474943752634273346762274383639032112927310389539531946076845175273637493698857499657870778932314237443265243804471259242076572995731747225804850369892957200087117698103741540275720026196017067124440543787146079609771569066893005280302312738702114256037433251075951220341760549158605540433563346922182370510339051997577977799367897641549454664343874641062265735399708798879586816871066061429087654378361416964571130658917838210066053957570390692316244233245732072130266119955215380754704862933283163762582737351338858386682425029363716770049082977702040143021088004677100176745068758872175964440674380645074402623096431685822169797022477303382781155935951122144804952800352086622116229640626310542599064489291187086947733463727028912148233549338887429435440485457309817595811116823906130765233652998850013661277321605394434403663978127641293635019947464832759115174381285782610789881657348328841840869611316626732815296385672826777816228178015597404967248281191602827572221662583784324677601072065218278440973073824127379402313285403002310535494236795147112424363880425788498586334181814236741899366485324186776145730766137731679505023645951555785073345052869423403502439178320846865474729929750207904551362975922428094327297632187034216280445410408142879927706441208331613588780677022547772333813059699906226546541119476843317611375415663316218861708963222413631341813522789428024479479723392967397838375240414670553124971758523643667169876943872470471230138704086805775371138061102196774322098112604550761199647015647899972969878984792837820436672669689068658198081780824126191394707500385943615321578926081891091623628216515909037224629560601559597419815985104667061200768062160839232459150400725881262096346260334744376803592507961060393327373372033903939234795694377747941658321276811821026915150368399868407295372780975192795975532800912388643493446706452773553820892247398777108226078001009410468147413204675232101834368692534770640872567226376256983410225148575203848811259188704645182964114024233812901781030239058193563515672380754204880431275151375700379389664797985541206144706763006707812355532905256077535928718631668612121928541215932837580754604089490829376092603635283633451223624562408189275114033384407570169398725824039658701785450452137037550301536906410229595905487422815705050982356813790973075373207273386331774890088423089159164063258032003490188796658501632526359535036418305108846815766161304473932865889167092369593456916074494133145318251404367400313403462624317746781386522963074917939456290935542706393960441934045776806113639191793324301784334846064219601242078467969458128571148666992451315280678939814470953010572249436353209784868542987917232480234144809638343433774774658584465329111014303128525936109367209369420786822485906035693185880469158881274739374218515685727210544115345371074950736936392388625373995053131007349281584793223676667076280964752717523554931399371644022477302760239133954414605636023596713806931103047293640864796828002802831122121404714315040925009994008006565796459808857607715991410750669729482181538532998281356618593349709322766576507610715361757976826593061698298651297668776408153070730048222118290250981401464304914854454328255994702421116986919676624898110073244160348573932142422327885743776380185818652713796211717441415370480213403670312094983198902325404569720305575142290517105079083840396274644162446418665241993400649376304367764536740506066752699705269615020683240354792876359239852757493137877814749696594037348222332061687724177961840142052838583022455246500098143198013123075767946910310493658003761045143664730198321303753057374815295436533427475551793088209593413547135510617904529524399062908507862900921891490768487755063725868235192619070210285338690238092589823976117784288589602959481514720739324903904044761798264640231688361046617215240694014230038140611455413345423667718402406440349318388390056006022730654728152098044265698628544973191712252950105336617861375208971688394688253634602542129228878146593845244718068419056546458614391844981439943465093616768393056861968421973717819481080568464670682794785364696177614330470151727247994664381836754137625000810697932535040836137150892694512992571083026725815628673902785403085174328486212185507099117173036188595003546182005190843650476864929276368784514965152888042730531704243360742702723623012960175131839089087331813259917735954751708330548206428131794596442275937650249358670986847771736063596084370358489910341226097287817351849544253228199793440633038190471212246541440859816856498377773214208505671581158495035031528262476681574833401606820813290143333747213490501075765787088335627788851856733035772818770614852112135122216469156766273968423790331935396219757580901363840609663869327497258299139163585579491409724471591468799072541950418772297232402848885805771661176069246054883832643953033297355992342649741904676623622219770983034456808893873071716442043981275147913445307420456490546713911372255829858649830358355794280020840090449237761813409276787184453183227786228506541276318055279614057286372819388318990293830040518592274212362649559547328004794495377438699663303900050800791952379882292695316286168465441117091402433754374132330453100956527266411048979421729814709231160045039660273668528119759295223281721013053438957116914680567795109052317885039844968965956827954915250320567397406109572256048091069070781098391949111561449623753537235201490968825908635501482215757723409678001427417923723488337553419825462866649122406807937512900474480722624375708548179720342737374578733474131522822868848650971834301099567005583978976959324016275734893366966000729733146935959467468735291445901241781846792539006991728111442110835193572480446932307156311250024550029599675412097047270030123600392661352664424406453152862968494827933216245197232037939704959390480989275962214548686526110981449507201981165721112622585539913382130246008270710081762541525578108145721469071971287037947729627840802467675476844883118112297415690513184845944942475574894089003299330399532573818138188965919700684846515826638039729540503492988329347199478472764102817644880661444830949990031803085006626450839739366753030272115230676567120756389819963656776584857699891757587858681244429563630420808828185870861676415948702404618019996117388154839836130175075246068791129621661022854154297920526715055588195859443232548632049698630071506202898468595473993580693650353257056685479917732029995804532768011121105892690671054383444159381772462405621876632188426831587696471089712959417704185877173333247776250468928188060680587118482411398001640019782987620332493449821197333630115704169760795380486004110379003355073652514354926332313610898558850968332746154135638945202428115547305034641983746562759765844685499900727422799612112002446563564714569580003228877425475726749495399655416933035784619561531058794837993296179596015819026890239477450468683126770663768632009744725672903421922516321458697577459384722131897642786609651533028048863296692500249217741754088482794971353518619394692024776781653935870467582207829795838328300492866608372672112936961968058107015718769002532907054065216181685874802033507867541548210203338582517168278168077106170899346132045623293927475336805680649733861990064483784716578726438973703653177826791726792077572043922407901273663229826958576117021243123272952855718613179913096316177245482823088816110417887397849573834277263873978374191914465061456389413947326232449501687024887962366925512724125090100697663819118135050343214936649655006235646408412047057013694839190936687526107309961790808004747687699596161863681853317934501725660306790679340799892871677139415802440240174452347389524954669277909107195272744816388321339769367791789611285206190507022417691561845635459923458249001725560467475941539896879835603015541372073343949928348170128344777193884002092220789289570575104288940644904800274212509115669244882518862178320366531066697854838114921479341466152604524820780158168440898146820684309052511373326345263202058465138589225771412105393351523292209627050461106088286878202800196248463066257142419460829401465935484179446209307715091343604098083717901161849410232833410709185386559955010360803287455533132379369781819412075326176486366103026341982632223656311434019878434042089398379230894528617204142510786773320630190062019519906788075428544426557373399330916674878729258053095530034423324616132609581985084838826167006897353865678147500223389672077413513727211324450756049748711155693090941926081366064913573624592282908068543763623057183996004428370473412315630333901843967103431144616465661931033690454741608252011577004886174325623412478744194384786084615670008996566757157718212094890455603862856099287174198536156970259211936079284008331444399899821851313523782654752527439986882640448301889459714353815319941424688364379574157859700422498771664461721047349039631373418782356799101271890133305858294349440732730474247549696941480196990885325648395507681344246498696868909026722563498301889580776564690328870864159980912624049679160872436049887080762397285741519396669443766929917754177006653981310649690098968878842993263061097651529469500570708114765915306887075014829997422632584557046295419598708809919357707078146574347628329525490986079477205078944140541115111176228594433401316251291704470330480842233652966613821644235092489837573854965222754841064152586914472518572921200147659639119536086710750976167798249083783299573280430928426976368102229964682516548635262344331403016339759470135604737935143178885437604626390974476087899214084540437972658751783650355747902228237828197938171088118912970512006080234068225596580351618497185115443700883790227435637487944863333811413920223236163556070409462579128361252112851038062147677578094062921944393873914790441771137699306839632123887168069228017867244944740185906757033121851945728591237220376085537422608890800900413124281972366217126974114926913263898533639670944735924212562370619239942407788229296733842971091962794252197013037471382202605708581839359581656953220304833958252036802493479914994621585031087001628601940773202138049394837239600862397763466810692643084479046343028233842621892060888150149384350430002874700314713574699193852566182088245135866070008814295327056212477594699841785824388530060252640630870339768723893938571990630222023469527859080590516517887122609731039369996136369350554330091137482614645447059231093861476925606510139855316896403099290381197445779496006859911264425453370440569634997053040280560409450837251798670616505868911430141576510372725665125201798243626023264359469775829071500884662620595299766732400770219580930352775559278340616649934199114541448140810912978690554509644964974445035549518877913787811976428672526949853784515930431374827699985295194795890502614176192993138255974096789663915989605302125248287288810075268094771326758325609011417204906819743458001619673500495327357345480609254057143058851281828096152485942574402894919009626618823874872169110193689137327440453099439009380345624379161976439728444822229950705240634592464624268830427801711596278792448930733065883663770446193253737823749735810556518589102990377204924308697691557862147336069573280301971606173120129538385646789802839760113244602778011127171815436645334285859931017823251409923119012607893524054542639875744070021965602182863426030555356963536261578628862889758981294975099349140032608961054560738772667894368940741066286390008247749155299977994623794732848765558099166817367338803871175495278993743174860488105358751385499810529459577771463683193690811270058074648844721474808654007438625583910834104200321839965044415218915637373272555896348256090847399380374826673435400643315815290400613067597836540608118600424271176502184432183590112529271741536400045065178407544775598815889813110979564064766727448202772168193589313697883883553838791058297285732603414366233085512383884659543128574931634679041151521367573033920975279198147330693322625783475180497061584869368548042656273179149169466734308156973535132494623772570478916974516321992375867482813683597597367210143653671649584138935480166507881223432246753664316605494839691347822722820689693686310047516376022051547748941913345717679411942468420577819682174364459656354458767596501288250583483385365181380292440072092710254530802304346278448433265553300839050188403545103091988469033171811739994648722645241169668018147955811363589161070470037085875462336879642480484251336441072042741068827755321630843053603928359616614448291096472700070344681848258446623983923905561210203611230890524526063066064139304779602114093753813691097694366497301523433370764590185818779016269988284578256429541839040026946646625530917133028253849233735806017215995195330586731952808539597076394882580404444147193024372868148263280226914988698739288648768070048146296789428954909383797267345986138300948469548409585114369213520984117826515406067245282120951378435867442917686296307258162189446546238104502281151750707288349202671063775198811340790848376322771208512765964132212933731836416264794723858751106426844712558535237038061139118199445867416963340171702135317014208187839161417413837541440859852374964719763422695421894343685314937933183925010710437797992942151908834745434035672541014284605199070504810894435197217693036105183610304290477345007397694359081892129309224865460220037369052918891696050066990194066125055055505011237365615185427886975099981939532267840342149236841837960297953240903761610856720884965450220808675500815187446774469163836147784983773014332371662948188288286177019898487112166465892736976200642517292246863005735645574441766564843932709509560870314705576045765774348493643593183603154731379126199364163889754634443769126175702329640900876867913757510198635335112168167453574335066252443162121087214499024178337876923394467862344355127196724346513265913341965685196450380551251743962913249234874613410863437257516804402188663500061079083235784580905253109494129841225651532067297165570170431699606751804789261742664200911858092447169490265041137341132509021886284642870981133041320364098230462225844114883947067851871627727801738037828075250449386983929362825877348266237695312080967594098882189373365909245841135603434395609930316856155565176602644551137070230470670436611084243239699527224674055081196251125244391892575027403088449945286609402637841323085134441265345163816579545559153767040500963526655112350938667046198886237414237875210369349288272441902740874180154007284551001432226743920901451231712656438476222408934701720752287630090318979077549069240726054705030234361243768361608820822074858893281860145354109580739119665211227488331236647882889510640342892013442838589192177403203874507622932971249739654105673119182276805914928348333680369202683267823181101294264325652812018683893858085394871396173999647127775947595042123923717121968307204126897417672330953899910425021172851205179313542852161961005503826787740722616392330897717141191092023129749414203612128285170672750886953107660901659229763127820235878017736039790546664640252650181361527311122090685768467843470381770923727467972132877769268574405519260357422328894037449891023038673521395551261165320380833377888839957193547025117283457323658305166809001181583517424839650019681105089127208023853041670870044818970943965312682946747265470755118929562503808924533241428305725092703353570053538986922751959466023295793245723145946598241188194647489249170037108948590587925042808894504873409606982754254697251643886518197260717949142592848574880530010122629485980996033461982990102771277603038412686144037651160181015379761772543105453874531827103171960669427168409678010145833046487055459303359728960389858683754766097684967636982237358036819599205633867493195173199688787526222931485699766069261352675573104018533803690924054592209361212353151626024551155723071388968600846333597521749700939337792435190815718859034460935263605091106436554461422864469307513005115090613804523655841206720042162782712063164901335749272518298587630453053023544906814946745949562290168110895788725254579453743896853137575182953332195288596970937115608730358646580858034694448293125350649734044536847384254484549801127137287646710938216745890881376515978331062600730240712785657020573172066736694521519266173964887667915257529763505050015104134327963202931588850615124723189127767328566001847737357501911095616017111923786536188027598464432308231375311736936639184496786988528315190840940960041090003914597566832577204376889449726222129311471606971098915287655139599849739696719621417138780218055141212813631592545502126164694960386190969814346854600604560223822656643744053747087528553381794230308718307476178615943965613238155436867354623116656254018522231822226702472906139811388273992247291840830269734525207851583625681677174297899776354342312017239931779792540870938714639531637428618664621056266141211188425566959382656047839494184402893841517181350178384792009621495333324477021328673045638093029480673172607116901462154966164898758253148783905798094486982535020036906849056682243731685304292642235884042729091191323578139015515166083691392683813167977060215378784526506515424260635192883647702419459474746036535526208361139924711295839328508884185752051078606415209468020398473297922359060123370441897005948593402442448708390189218043157436205303250871183958154611756456891543072467699784728155531377287701927433028992636175179766917201410764742962730065323504910308668905642207200559014313294873782461175853819208473702187566189577139315280734149702402645763066059280096831032166451255780082453461881517482708215773116386151687080667789175554593065765905413753817403769847871391370418106843253870537904901618200635744755600126286120151905309916134675209557403627168149008011810006913721810075612155555803982307472532460376271706729251324189134785985401596436597642413615553496291783972520865252071496126559703967193294059919860830278153044335914170964071578681572246558780912284362745469557384715310120447537300373752416702443578504689923656572915880656405848004276541938302351700461643495919056767425557084895013642159236468791424782771610858172866828230768642032203158880931595859439100695950639365271737207302352770343403759896585253439837465293338477901383327489372129360500571643732273852098585215780202333272364212808696758341069321510235593201260844904560430426316192906827352203784877692004445990619781457700858303487270413960003821961117946183191554899150817018082261155394610617301899035603943876749502586275432761169071449259777216484811110473805497720855315824424585965296810558069906950804797028914396765403585719087702750281074125709812937033437688667249099384647330588189009229429818172026862359670324335854366291836434899511525829824714487303439311233325944070814508051214115950608980487388307042242509574796304880966772782073562950458794765083106659749256646825938729895347685956343790301040336450504360989650238392940699983022162904845734726861840123354365431496930645397785184803202493454085034764174043148721487860834821234196215139106457944410298309185186371799412524814545675233846181914970093666507681886257576482744117851741411328394505177483019664222298046551982540365515810815320956932012028648466344335392881624597850686490222481246789200426935109556545790107517198090376632913438159265786383080512313918885054299955653857321031959171757023529343941085532141537930582077469874081579370139685599238502867059707735829568079223879025482371017301546096297205550730550469981460234955227235866501960819357786498110163377826082288792504789320822102479225119602303218885345112731134264479818960450572381489904309180490031874588773663814698852272499449635556201196655334145011725862675280906072831908581225086885933847067127541839974673473962484895466597685854147653239623922830196150128496765872549015943192498978597734537908134649502036626472782436852696890476560969976826575264405450117263528428925672353535448510119749300646026635698463879336823128625473883604794124459475947153552330628209030358026162342080370729190126969211968106857826263851905827670998612267354707126542849210413586763566762435142370611432250188153050983951177735932719970214222368042818251124450862846545615368365151410679807473348752606028431370409003876333372996626898693703632501462635140590176332713147880884689892564249351414389871474111253184735453510286419649594691672070432630835416732808603650746149762523900305893146143509149550784557985962564842868514664774389850621519291551242159667963924345126409284496531526935911813166012522293512658564529694316936348720541504797597507022907852024633825248951583591809815912096863388123040892187396345543431308100317488571984517514562099734715269716942385518534675513816963504636433575145130742979431596249699479587842864588452624874322916270212549534045993673724268794943625382557600959137489789302840661980535078646163911163232675628471806306959979586124730279603435436133208181356234574084212211833047542881172556076715123601040968098895927019190743357284058364515752841399707818076957903513270293994311281885730948902501751406295982398678170335369357549425449350747662056547993076596599927380589334616217907910404552232036129456055088052336658681602826678973838124063229201974690497907899019166821816254370414263557744325387935454703438273202318404543464777050398657737134677020018909918465582182527875379565564409014980759146723165888615055938286422780274377568948326135477352828879001590115839011110215439062100539225962128686170751881872187368958523345719296784134520302279536056318135982472503620469955626275986992103253520973816035781589619122139260642599828499314736116680912851251385941639447451216800226919501477064832294118481737123674690948816656572393013574785905212086166814131080493530475222128031432739772348923410995259561281605475039859425619107059185873062678144449839716081687934701209519874285613238943036769403558236357195172517136363638174448944708713120323411708296487459225703277471961205178263481522684012461526823715731582076208915887012650240372269438772870225792452146209706680179528884854775447587347346901310990391660495200768247491331258892579767312871996981486589235075777121484180212720262031123904471700442613197420444406763764757629525739660595202488280960103432057171883682024396916737980121962455437015847768819552377043985898880506582294212249897871185844942577480049118945442337733928861421845815812486553787579848643658341259752389240215772422958594024202221825238425358988194470692607123112302516539692740800106820867159831543675238986769264260241039519331118262308043186585415545252890904629571304780100086557371458523923436074646473128632315203966182438276453815086852308088317257983061722629677064345057458541125044773623655257990711031343617703180432323124425084057605306109245799304792391243393142799099470690843237697944026291008070494726545739414235712338284287863218210649980024851505718806973641782617958010619632723392828382280296590873310249943379478479968363910186643027982686794504936917058678919684446407825227268096847839424188469809530934029847570178755465426127292813099100716434008478466983849988265818378028301480453805028620257509946750482416438227757972002352586883686794625222825427377048505035523115158254085474183255446995760944200805783893757157386482849031196918033185505712931367306176910216677190203326294369119132028650705603139376759860221912603205250394946777382835487859335548208724772103956904739554027822330703785777216574696788184971641813051276482307343205811174749842497395081414099423228630474869103785695764061832003268035984364718130056007156676243955605416554581885551030347404618556133442426715179128422266705258474870355038458220574037756503830402165852757031854638574834349297983978207875357837641913088310170235322236765920944224219621536005586431993738740587043157421980480559375305227554224886785420983831809269632340614608980097774758618307406327172268572335526810680109798152376804837621146764593040927129498447888353136564829204908182396773622008742844445495318978400031028661414637906469793639127753271290697646729354938655201188898418424238391864659889235676781767799906601331753619540230615963623282131311758641586375339968925434921112433865457061538264140353879296398341303451427933997781342605149270793448666616641360409882980700449942804676331324681502204945755430874541755321089745232996943890847224708146212136183401328436774539599197640302030279272676017216492376955592025239450270004354144954029169469672257392089927168589840871342628555298636308192762798037312641539782612236180027467110350215149268328327953034978468047915811214834477696136566989075619591775283872372520562641308830964972544631756952737093419563325454812077100988656699614121817404984054145697666227031221352356164105781552153009669007256367952363545081250595338593918966869587001347318017385571032766281376809835915692488066410228750489901170931759026458181807344420274778876815132758679172572970744708981122326965826521213586532623246739750060703566489892528493645673284233315727109112576032104480986586792229131946113423984710713350600216913050022536741844368357656767372523911136724597719184732967782210528970816671393675639678552177647610914487312558798192001622306657832705496788805886101145701359851152406884562176556536604292390833611201996233589002744970105023185022969801200552418824028132343491555030322012217081480885147540295465217772657141316473113126679381812089351755585240972534093362423997378633773520198586545549641863107740770288020092364977638477634327057926840813912384618359704660523582761435618220833322458462338148812710440193663086941893221361451429580186806051965230494733397977001365923580339239692813111705940970734093400121260475025801930028662234524788768086057249371811780819975769824800671042967458457844777188770606977596412484743168084165465244586305908881319987237128374343308479592653395532939614808619318854959530544990856680664758290802091161280998671830441900498874826752693367976530402732498876442006348695072978867966494498680981246018502929076780977065046584445263227327069801586518812891321297852895563024031256454382980948686072460154652016236031267975639595763231853152317664505609831700943033958994872685864682799483153719895261717696591207437201681465939667720276693570845435688770569739945399588038629184368133900337371232288471816255251745900951201756033787952279088213793174375106029030514540024299779100968233819199842441265481479131204816449563370727479185292047976711021041708682442175702509440060041606000419901926655114424555046520890819449347513967742552012589988118505561003552630623219255336446974539815103994520679685731374843109070308041939122745422249036456248912979853852038981938510847902819747645194840579474068453001433290523710053715549045775401493153940647608960294534371940317276677939556930514956882635878195790957707886113335464968355068633704233931891106632138599996955156955674202560196204719951812992171332913079788236881443117663295043297410814640691134904369982993498077206468650346548017280523117749197026240230078532370351854443933170749495404683041576614862298043632886163329750341878897029302428204290753640271722198901439953384005153867022261150618103009488717036476535023473686634191214408123933632627631408956168980610947965370693938985035486785491762026558723034161431670360144941952071707835870111221099315182210335834901200745803046834909803273074814552414622091413907479262120179951400525977851117530645859974767516788246201937169819160958078094313314709174767245476038275645480899554879922956597672343224084312954181193332424935593910884929521466681264656993676359090039011705618069967048721751026467247529815993589774191082650435580289012005421721320409001592495750220987148271097975142177347200946833468496106916975990914171794186211506442412103416924736397512747198743156258645109795208891364326495346669991654598318520449208043747577269035069971489603225921685775857543710755985072437574755616661568406233505091998232997902158149440794610820650335250302755104517054880378630830412418553364023226117852845446905065584498908211583024997462004140240141731738524298301118091959492185017879355317854918987278819010119540562109109771344593557712307823485670274227940155354400769503698972628278540389065273170338594649175540447691463750532790673414796645951629643878851672343814302214250228468042014112264033231474478494385599654718749970948569850369197255374359134165073473886586915818794663520171389517656476548996651828670314689574289768544660160779070776686251673190355966249898235892218193227548810586389472703333585988447701623581710947010000222370668437547999127823916619346268676784329183809731270642961581582083845688281765286895914911034449892252349492671560628048691312172814393732874148547420161991596498138106744651340716688878229596003785577237119318180406484929306884469293626422129014457188032137831704262499973768432571828885355602346670683500442074539153593208540761424466451074441031762048816100849009836237846301748609115949628864857142502476987252185902268903070412609308241158595823791052433929684442678679539726256574380985651408344094104226085241435326037807027848514584844139999520752578919910561038338555211459564607662098686759936053294098748997702568558182105289451500924525964430100842781403402727750676662434519055184079669168846231501727594399128165887189273081402794835368557077574401692761338341665177582043828255647294778770322059745313595744056416804531390453318953145507241021376663680056643407287368002648003770879405620487914206244513168259147093603412195590438062358601912801727215815712796569225152091549703498190265694117539614006562250101474941905126158276695032739637083381165901288650689386607283820772766333452086537699672074625420716170498603434320492245554470636254926155677922438336410713289169539991163400625501193690392367184634824138578650409409522749838069776868985185238494733455670237723078444235266492570860029014033286027186048768898541925749672193520075279605981437936601014664878719297709321166720767850446624848416261989659381241843117655181564260131891981723542846438348053015418921939743100510344090622979567936214276341256408366681892951504069785913090013461957850061048174248863303335455677928020354646850188073099018332675024420465922382879837713926520790727453749220660200214554640191332274941690787589077814103740920313963690847837475643561361737887180840665430827721356752908197918407971115515990699161546894562850751063222427252187369017914119395163515548847330496886807234823693841933591884651840330391636342184377663824933946713737780621234563367688776126987332555318809038610576928217515215469738371878747127646042062044958660697030605221029409731575486505422972916041946372257606237572108476527028309420225387171984108524307786378575778815643656687314218343898298843684560283906621207768560214974559815689260418856937722797591652631354498248962768811588185779024088988792783623715936412396459283857577627206323216029418769125126345435454927762011579724511850268349069115022927195408364332578589463917633047157368282116357916017681023794750696032690158128321917472255557159511750722551973877408524400295676240318814199849170442095434067831294353625171518341201975109039306481837413166307982345571670475267283113790817141028724186844064869410071513257596025897781960913643298531890793841055967956946030971211479219366810547763730423573258401760199584909902028781185277913394149656246819291227371362220470581777965414299412620468106185707251606226719899152369128671516562571502034980528744317539514364248357537793886203099403675433794265974706365934026047789020292956574921803798467658126920978628561013710135789590919204739854997204274514581027217908790472178466727883269966297878827959481304995120181544569368191234690158139993503045161400735191321062378083387804138309961838804353591265697143024869685506248435368632807294515382366249027596067977136500113443003300607889501000380068392235812178224768430337313897906611263106891166924592253129987085158529728977307639295545069241710270388641079199329781865129032083249362698969830313977088134317868226646059966839216796998180934337955733598493701127670670412103275244478508992020823112210606015072306203528125317077718326505307348840031864490771165053686958065732288557119995767335765897600075167782496757313295704197238903030356283067102464543213415346733303834273566364271647264853479075000260706190796376148587760841802160526472558789163041637538578689195512721691488004424181839833066676069291993543039739399567215936229618240335618094507908081970170657913701962489215941896954609770024272770583764562390082438905025686825974477175988150377332633895824837200726533360268292234305334677563710554351272947444317516739661280894752249238769025000241819954051905454992120415224303736318371903244440478737202727858847460450596697664075718951162857997624988092418463640666121612810536756711308471263852753860582325193614480610603210434480721342477352166661685035864708128715340260197889580685541163683131377668007919838866590949087366153433398422426163215471510540839087437853615299527727936939726753831936273706568537630556590908158781366958068211965093256845477934087841033834740713291821476018312795348972110604857000287245663085691829013458511670221936184782659339671100400521111292158077095601511705242459747167302218129656577455891481283839714591189411504304247692128698334284829582754026244569759897907372542355572237116135174406273861760677569412365304987141843628649661106594862136212455434455465301745355108444766706649505764454612013607551045026407926771199279535192778618005091228667762428507722198295960494874622240878375809681402255253176566937460181183297078129447749392423438114082675564276450458280491683558189086142331471593375076669313163961961692149819593421831983383467440076422709873001605190812440554936752810026243987581337847737867479106255965937117675300335242871016896676113274384950882918772679546253244030255276594205549130162664626869402298324016828618781932780585128528789647294492752444206099379567169117173770348513980280728972306821829370497337904785535941368644504184405492897376758929664578131167386487814594893735166209655456246803990792872208492728671106876323982328093379233664519294901657169427564206649224226355326447973034345581543249715190490960339817949141050741705791193002237822509641067980174624213824322730850920212918880907637209032284434840894895021222130088023381173909183242386427598539350847810731158702735595459772978991446290146838384867293418739842117439696887923479233436104740381003093617773164302200369165445021920519645537941538931156130886944977628237896447419066476097557755686927542803507770114059914129459011857077660501355187691264819101056991268176045426325997262483969100264242008933996640434601445784566864888922163428715060164602744055828985666672365710507839876330041114739301483717142155055650144802855366260454484140395216155763964542842986921225641580450401301313419900722468315522632082982728084348957622039204859352428861858707775325413645762640445850452523302617329377081591579733936807717258765343862193774907683590639798903929463413320735458170396522855172507709930947107402768651153153753444951384936807760165856730839281519889967166295559606394190432522363402514808027963050228631267522032720472516684604874314370053643034859762117225474078481784326586602596999262637018356708600625341198461699308208193774371005013340909212563333598226044394983950557067817187598501490271293280545900928617353299531595941389098534804142227239871692919439711046231297731924833606911910554336211897536144040687950964711312165181357266655073360373310338977018069246013732325254936591301469052451826708219990888292184204473439964474914592903721470547416216542629307159601346554968327688822351573307951362952139478718605265427304171079813248222755512917998051302405685664167432695362317014705480005394447331524191776671110926740154116150291388437411689134609559083274006291493605195234884898474624406975102130310904815285606474093045444285606378974665161403367366363824436150142955152332030172968298521316397853327935100651269498270482784753842394002278442208084137069250346631030912059877747676109687957477341834279778710773540070325255521218431339353831992528677767448806865613669001127903589706940451167495454647085979261286504712163015406551118182506150813960304511443714470009290658959987750225962646068578665675628690957726948661289310666134068294674636773920941369635991080530604586703243832957349896193379377590509062692016755828252714310449013513339018966120369116451204377239364908787498989926409783289930305025385421487631548137896052810286312290912007200524878083616751622491356286534191084575970106660438964815210694354379713236926496853280000647111685766584846284896119966870458200989309542086612329863672340189053017565744325148896632633900874248755724949265542690679448604111015243456870750317271900414459906213795979197641534271210408301949189170897412748516962967172711471643071943036264914753938862339889590981247267728096228767814865324984402662524463087064039314474961808676095525468955661779837052385271636157789749071131229019863096615829471970470113659125815380664596676799628457700613965590428027350285111150220111970223821159556454693364900132056047851815602519261061202819943584572107138960284979267274743672734683938037443300223242501277599152444708161796756796475371959438482598267362898350470403492393904474906588126212375161144055633932939008838690529127566899030648095890566613449164242466963443230753873377203030343751576966427876780856170444060212833943619214740267840629864785989619151709303422765904289260850399765581389519857668415731687285555649430093817824481661446453814491893135522001117998819582862849637673147213797503261703276632420397650583137023186835708279799664352317766508124145278102454311726398329156015274352421641028174575799410234661401566622095761615554682561827787117726897532217120346042725197800878790837213089013934193838934788312843358056674734998498826792571627789269466303819495582276650300122818951682637446641123675066764258065133319083067598514640172796491488809585269206371668754488402962264681279822652903834272309532933127626473780221194905976254348326552295422260962331105260175217611130736919779029978969812954040645314750673251224451170507903039295132430338198655799030723988908506878712482213914162713616526311445374770565860064851345727985673957595189812351344529478345320520409358018830957686869161615893114898431854184025385779571774240382144583168070418152429008059448731383666145950894419942418025633058723365270637229536017414473195348512224112939460736932505539929873449952553943184024667355477214802955615002986476253400692179390199041693107470134440726921109031967312729531973127692373172289277954066407750149559509680751559506962113323450954708201451824893420226814116162666220454920653315268597464618385491368421640629924441475209106730410697684407303310991721526354488555956228348345754915572555416418197109699795155112456913604287249031599238692826630453103391523234250073927044628259189999843546559006728194347468894605968108344812140665219385695271815034159841129995464404918160151354316028961261678418468148558783961885171071378077163580860970095674640386013150996342922931418823657692699079360204796144622445196836778270645925261242064696473150300878100242080604400965554664937937738916808897673218057825724117010759071131885352177003610318398119065168883894109776756905052134198009379971678512775777354946832932377645977798763905860141348478370482264393583551367823678541378113789859338186112854502485214613275390391161569604209905360725028884297863079063580666596463993789285744174684603985761712278970659436952936932112305155565924485857608622175297602452777458378237451813417377032346725450257248172536381759074815672226292921035918038406188632729282490755725272484316914581088591314199560969361401622145461712687789500776577949752980475793520681269214140722089225825674953958743105957439888848321873211030894499496059175455373968926181495827765020316151622513032757942570065014991062467673047481484554244849496409960304935006449519484008879984167422259517329488764696797125966682346924756128298030116275632208881879410858390902867880522698440200431555237710061889832855129655838267318710865877763205291378666083783898203006844231761091607383026523277801525101190251681267217410871705009568380083823238480160605375050324101685878971885746868740572905153296143487638835307780376556603028933597805567204181634757667684895799121801439223414496411224271050263268943466517078299626502924753594448592631851566248766575094070673381654344873279358907492932463238409207342696241663794896288653602869426599756756970496964663014227537299090766935359284534505328909535225440307331600880187270946175693108661861416120620234548194977597886624289624301432592074048864430802011265667002152018373228195765801932911228510018461683595065604447423178728651645845489335167646151816121556557825153878033177476878431924426043627722641647568283280790194743116085396864032367130846834374171247077200429445615366454825952851980232070177765051095470161113506422892203900072108985938393544158566221131780518360374215313783877819254236808583157887162451865804570697450964592348517506740535146918262866844180113741264358300510644756175654626110837408499056486397529153429914589365661995600361099732601351685131756334809184321528952924213897263645559806324473623409701366181685099131046559370469905761925026208694074775816160256450944102062028003750376302672084057982973397160464076164423136393139699549952052676156714961158944793880025743876421702033317032310638080219250069872333881379757752020465144801369111013603583989084700037765424946769269408282652214240061902234822254044822584477578462368711986890872442339365036389048822976396468304208511312318279976937655931932295071661490945142859164250047172309951310116566548338331387523909737516000957277053764140339090595540984301218709496148342782182555475282348488031441545280185839327409469280753010510426793828055686860099470718791328768690173766781940840718201566707717781626000765860033690824127208189521215605289793301752175251944442419678855452857118336555911831527304913991601992429278358437323001401676313055077949083632411029774160305413756185598200695326890500049420940357230470364764132765368324429782554607941686785392747240343932011706458310855147946346606672381179803002611344512571732188756653588812869964951397036697785665778480223811310388525422005508638365942704260679818989787346493446412376423755011999513626652021896993490166284953436236383244193109050067652643868542395156192555478063924786849905586928228248889923154026312123251851773983199606519782987988770997548266191215573169396323460284489677744007178540064519336705285835063772228252397157486134256049999356808255841151304741656964489358855523692252537842711288815487743537301187367257625184884139513254950847180362338295658387147231102904789062198570090731367037828860390791079433274356113089437735997181498936636746520470057967769816398557028457329553632041125207890370767004939605430010741367659646098914566041332477575509261716334277093639579111813059344498836958075150354586877797730202289244999528920006123958057752296118498903616894964823452247592567210927953538431253287194596459161402968358263039865478421570047798775803684155135204417892219175622614840272854201738449219363176015714305864274548306793219870304342040447604069944196624339421702180083882467660650268238540784874892865456053230267850453999756631987019826449337280116407997646999252360569974276171406752247427001324645441242269496247971202566580814935661655886658399255743562554734653959875974603921138793761424713137543109253746452181657405926660327428317561203237956336546509540679293622917175417613633067332264487925064898477304739583125048051049424075254555953092435897506382813037778641195670008335596769835843048037243310835707676895156911511338221818405324725859686999070222694286153564330016540628655283936640913682759808344296688667868577308038319072730937927242979117678862268902579335408760083632447564150885544159301111210223466722623046643203681608925279032653151745250928140609694073951922705033314478650944088819874659384031873987215191302751926002062625896840069883976385513002822447629167549208512818432940883366328728616380451096770136241046594159498072083726071352024655645901892997987684483427536195999040064400773548053524234407662686340511929539590985109436873874079518957431378068507760011234525026385030924418441390613690603007855565482990565933003926818315069857374375024660050498304599747222337526150548661562222168949292212402647118695630757196580690990931568871866792913026593801274267068876876755734070197694167160557376441967809585911436157153168540073887926307060185013182112738106284916591179501169045638551081218178644008229857201235229371079552827977253564572011684660701016892971596414485711718969339873758913647808234655734368815755342724277026509708256518261234890442839069598393193692302020641282478829455807788979634765463978084607430174234365507085183248120314545366449398871561211842574002012529128172884436313457469840025740439366580534612431189133987406579618250361435776302606015036113218075683301758954416736673827589267499063767584996373983309270961934495461111783346739391374368684425568831087588573710154078529083421835006117022869376504116625509238757758287616642154684884293716091074875832110126018746545973582848115278615973140774910943712996759688137281804990114175127595300916943825014188552740610538174937540579340425444560617172031527373330713300044371305092268223365234355017339549753824604344379276176367783750628242915870145086149905491086744571400794952217798610336107949876195130146682937473862598695601679374264656444429961122778792000630473585246718143808711647180864663176723365517764130019957169835454111703613377041344521056149571631131941945493992252978318569636307775383628056235250124398265050102134423540970194865132574847180612391184990925068073668797312795408222672197786712623127614662703946888082905230997763413545846070908968470206105945221830614963178441998606406889808479976230268087997586681410092118612653416478402791671270922787258959038501798138069540507571992537967402407342779832890730429480443088540024204349042784018070615667244572807357366896974623567030137703359175938714363522140908616053543502373802269492175002718282217594128787835378706587853869941555625564132388351082368247097432127177919414585475061837917089435773135530783266449062835842291202012493864948586657240789683924579839243963543572330582600163737188517053364789611500279756261767263107401752866758047879789337618093726113787328947474639708789751378994337147517051374883983981175080961132586104825318160962931946856418277713019265194511634763282580149826358681446652203223434933651795665307986906102847608243952416442480942689747029197229804094739047963723481630887457546297585265643920768138866310855500083266089305061484964142888874301431452485841410491781301149659475300789234129650365392653616557635052180565140397346472920959520522262775355159278406611514312336372102297327840360901677933487971092150099389478452718983509075704350726140412400664955627380133761364409288992442784260012691980173350713232686724712748900539071648501649794529928057596004170192132304593157923480492373144223483697909050678349703257757607138253779975603868785013588688813687454344001328031228866320217681177452842560743246579399884170006866611108027308728340812411602626766294806154323413513205506832682027743329889061324818110099033061934830105370843484672172314100170169972031096483761541854547015900178232504213171528179196598385363827451411226950090338112177351914592604239781683951582298558990667993750612979450284194026064582365004045624171191071549203004260617324765492821097233799298423211816282793057725742407515979142596979802530279912232745299646031948510145961019429385518163021298441418855686768753116312168968200848033703608948926224686453307972906086609546511663231167981070798867960976082878395529177825700990626973583885568475452601247063676285333908949826994351311609764624482728222928464358931711079896656393135729466609616891917080368071307111194182011901547988602428520588086468420252591081104670502706741465840166180703422739577365507139437067961242272026031438282018713277414362253436870287804491857036541166803877222620388228346436683460279578683131296752134989914821414001109030655552277372446390061344833478360138815676338190514067144741909593150817806777303495322735310884513853113263409472849565929416738595138831657924547876194287175571530936755972216524129165354130055113443914937641875455941907141801099557871517426124509764050869399976648205573871377967962771133300221221351476143477668962492780545219721045630914027550054052695963623756703682585561636038065284307850258419565652984458167763258916172406812663177792600039326129229758820018034517874348922727276651916044239988651204654790561485856738142796339405022598029948423210537097977167595644197607479407672209858234163375416751154163671150224308805955252920422047325846526499881815561932267198289087961610045374682833503484003126802096396250090503671203967382028642735986517789573817754530289221844262244789634568409875982232244782363089761899479944807705378853376501021939616958564239442782139166047869060923526623675790892205896982710530958274032789757502650887177720308427700046014596793455910876024953905302339915033588366147282995213797342556768387636764911167817089443760825995782847359999873208122987353831488206838631802815526579326976287163443695168952906208560303216317344381541675470882177865614120711196390927019117589693135018690838071105303775003596826219715838236242220355955098512319028528609266654875651157921772318884555962430269468106719182347060723435824961157216628537850763387448994867704096645782254881495670098931833054107802547322950213801102686001563680806928987771182750529636299317466397355965662156068533716073412339641645992753110268400461049725607233180277123314867178930694944837986146319379399428423357500020238294613547417293206897759824579699586059465997674269558135329738117014549923628865499222793210034053463807949658083159495083793040627048860996777869791024952841191302880038127437099106199083479022264671046839806375192124245277737207963024998374144730249576198276026886441092417383367799343799533823372237777412557638810670961802212622444967644721732523963098168253484352082442767763607526773060771370618951304877976988688901186341188081893180620465657153475360026626448902322944746233447651856738185690394495965892861304744605320860919782062276726614572502168934459954153328063932053833861802852551569871474786909872799051908181903008038905542310027933447997143428932634801790856221313839334637072537875391199007617232601003914606188798617253662293248884112012203113965355265113761675449663023304978054716006351999264366470050679693175029665348754376584947681111793462858168386360745817887180436632331336234070305820455815194652161092634722751491014578833074680693160613902588596935723992658341526924369848283078097013250613815896615478271691378668733507458424664654817413706628504526591474447319057141768517647938605453570155494876948308900390128244034484019654824744865728637389262052300239961832308026745431343614509811082710403348728978169425077010449989557013075198983735193055957927745877768577938255795844018545412399420602913712197625539933498311440854140283015756450196619721113775620213680187904703337183582702224550414382873594552615502508648722279129310778496320233213394606847766628179551492653209419307394940597015638971170240409748493013135571910027629583049402484173376393790227028239148726508258200190939521466509404544806309416391505084033314077954180925446709967117248907747690377066074253533020031047208235993724588689439691047041091843796781118587722890924120597888187206693808847597622109789617462258783961525411018126795451264368944435332076054022698134439311684327415009549748462427745869192621338049911157618769006192930160400352571872387820113377053401239374939136207436934142702998449431109342932500459691772707107071906364319115477655904383893522631170293878043493805470232402655827922282149620321998565061760754877021463420377076773076899595275749482706758972285032167415209748428668127156516439086670834419859323298668201426212622748911086707428436183063153730267273517522356296264660938609183828816490724657312841765185564344148611287686316917662137800996916831572402605505312158977223957595451552041252074970420231162788582617789303803053428976740636881196930363074624024486387164522118903334781389102837788392161602368711599508017035618122392294238452390437710942499587561106422947377216321932858570666259742171138611781699783847196388053921747809782840561050792524237246358921352930673452262049293297616711066013024772562525341113786226923109319258555770972474469239575804335714128885277281426951260222764973945641740266928314614277420082742707861600796369020449591932426314886365831203409783666887458262447115902063735657388037537240712124645933966571019701223138373753072966301256568680588976443272687030805850013656720924054800347808500302339681934357075472856820927112922107606696335536964347775813195463931775284265599893799041109426452698073137971118135277285574982062501898292150715184381963786366093933939934642443847979635623020094906709478254223202054721796501060408660501586150999314561988552994011932538065693949480392456533052622378627167378142369416808688232667585281486501210026517169132565133736043095491307366634449701849043578486283916055124698348721810265392552192460018705940347555909806913554603767036698883315741898471369168631100608691682607783133393423612577987721409710143573073805170668232393083782848124831744603033773441606711714013560635758682587821746575273406195307513140844694673165944504545138497623945220488867293524869569920878429577904273570973818630135901156000441703467615979113841898363345884018362355893705295669932787184686266377163123580187086901194655920155220579433595338848902752275483637325871014694358212441449737515757212202484001607022222871137531781795701237480154681879569184444428106661237510810952394559300071096813925733657496708400724624336705382195241352622819895377761299501709656730801740618307975713008019301678995658905489191916548669298343131433926249689132539021815441945159232576260096818234412123823490793324382463623691062452572079567467932073473311856651198180728782824512346952922687403980069706192468102133294703540787358969330997894141585511642587864037968585939564146348724051377558497544048645003465894154830205579055904708414776878291174667515291720636903708054817695002674027403518325419427643803200206785806870037638273352674737593924812002748572468771751434474329116841583356413462403901752903954439895631075479671364541387944980462419554143530785567720592630737562114530187937340375418601526242117741024722600641116914305311328622909364672863640165094745079293072116481764773347223585925868932421030940378565916297987538329605846422195737614676343400574432313409196592799979496930107466801237907842950575031240650012507967778957053008417919391462356827194225009848571388959921695229790536098782539987186716271486756506928774733477525927950173742846073165507747351644102351830909167371672116628753052379598293263492559549318567534855678253228920813629066187345119253525403188445844762825743788689102705419782305883516910824588053199262430815008526231023609344840545960652738067787273181729629635918095493754378188837938749537550241762669618061137056978267390742695193870304981009081086991583130486919239187271964502728598669920536842850982308704373615957254421078323207842579365118458798821011746414536997499615907633344392618304032167251164056469393180537108461844953935099200658837100847536276576097742363867348831180062559944753247083644690733836242992461795004017963765657746264857329153989712795986427058411884211743248901707200291396157134600192047892829716419624742239899865071006170297562744417213134802289569447155519296262127981755209383161627147847047103128341684190249290329590629482130618585188085082306152616229655210201604235646295865320579057493889902664629970560988930062675462264050835050091612217607383069127085562821606810227116772977272301355568267972953616257311464033882173453216292719915373068366420306669161665235339354607246463804066629862832339065720440150537184029546276784074071663487347921222925379953804143996538426468977856317174254409697418828343009406618101530338944512981198006007011117347980829180088239140139564895668740653985819159179565390672856437570936933403147974443417308756415195837698319710807679436372723094618957823846445516794692346514348466399072164756294823249993659080068688201243709514059066996708303188268978005411703252053676744561863342038424190527494456533390491528194512177965043668460383840486089293092227473149348325027440167712468961709857387391454667406599334111057014791345741226605485504657920926122392391692796944641924461267924129780073652624532177921545339128934447014748987655306612339717023268245372009738005260431329838262718719986077794128440510466731634596478432028442270674337983716503802272981976842620463595082962360742960177047855814004744528122486068069206104600690352738653270594847429048995116617594447025763588996806190214468570877492114685484157427520984541355998358784094150528717384226965483526994181748780734735585552273988620410864713694135547228237232972197588288428890164334610837801061082860183156670424984540794643187341580682475091972436518195431673492107895913079382462615696585268498745472247726267934086882132847267170147445574768981067608689476741721897133156449582302166434690961327918810125211622501819496393078942804031163413339859209149939982321997614102608831433106157528863033486697168716641427279785648854566512596480790700045784059525123928566079190582006090664728183483902013014383039324443719454888284831250882108485764351091557929312544191652071672298834406209419657104466249217248516539159522745554063842975159601594965437198342025784752135512897108601893099378185750752311451233134823382711608407660189853875267126989420644256037202544202236806335035653282792886539153077673013875121809651224741864090437388859498960488325450930323044452969720742796368854014933981597965431682835811994789955339294669031646127987342021730627652066446649025731967978487314781527289809975883640489962099700403792455953957022947785573051045638358582557132624460864946683663089342524022082280438851204480523917400251548632992214377021205032480107762144370176628817366945923298211934042765894448430005470025342778277927935670901807372294711103071948348331081252984248514736782161672423847500902591143853952214017006340481716771011338688169785500262839416529642337348635269219561341158800981490207281353938063999483105990482611894676127101191450203696530066865070036304607425364718197467925582858321313122954678510970647076809205468894484813359428515318420681345174812913460187044026077932052435349766867123860617149559620377095481646088700664078000835740129705370470955909528940780513645604584500506290320276145172105941969592268992751253719299800449744313836085937467291829396959833644037376196438909118957046517873331019721228720678151771708342963954970587945888776974287858436409209279184001440069242628280502949084385404294634945460199492201239165420790068580922221338511899332223869751616802747415749398160387089329456101069094607019786075407057643131512376252734319070863473057691835984495073060897739274838569786636982574499443672298191583473039942092938070678360872848193505639384152220363837268255721916666736782054774995280647005343605297407539921567853432103046153426078977499466370945078240873987457164358449219081156890820521815790217617453070247364125487771258175482391850755534345934936795827505725272836651236551872553105418250664963846480626076345238796013538018430103522860198275538959662744185131117683727694882985926466431134387932496581053104850664519032904313086971821072495089296456888504913922240428973017253411722353296321348646375707703053284229398121302372602978740274831258277344392341288086686529297461476478378225142448703284891463365781831165142504588670386153614944322028268982365826628148863913140384242475575988499333558926253204117239739641468792695106878749173013689799989066591180485241529477368103583722298867088131076144286316014985713272027895977078527648420388159016804324719339453431999007799038659782448252555164331381024715676249528660810683969467055806637203202218110925610735079324539937604297082720832464568605445218762858286139458065356358592823609599217555675207993723004444197362144533772319361144656330579420901001110675586586402574226547107571181685318893757986397440232460071721372823052199452411300672934249111537005778633565980726311075924119147169207331385913237832324366483504715151044366121345972432618789507199737716960644273446698116027273761478184786703491613663649793692794720815186558155031492441364677277214705613388069085750496592896803074006402711186054275478034387872915143142280864255324822344469874685131588998503182601539077741871625375304942494408521922708923714624672047009167715313399147319586724206181502365762164947889014183975466644520691603574898208557241072872670971391236633629814866704538280780626545212886155993449795511537661814989676021270002361559886263556084073632886564464400538581023326842926611899638373692821515226098409511223706212462690502451756204448664784250237236519694610693774761717526402545471439818405666277912529459159925876801969368473861730099351900116580296000640942278211735581656076735626854315099090815671025685185564173643029763802231561739921624998878460763757749430841771242140605273762240502102280668904792498643123450372505706973682722338862714040110893021398656577979229017330171672617383918387093170163415795287562443524286118115882915000074056692711547597004365959814096976059298592196747194701854431061607782786193949731663314220608837235969461011162744029161942124872442646402535352079581287195130283600940259174715498272207893006265262011484652179496616399406686195174801122345550177847470454896119592224496881680034969629532926711289685888772632259709630594988761529881809343317371771975888831245757680922841192984749871226555852272966145546258213401025420045533870969351516090871148434806707460956552131103082967534186104945281031594136729107012037110066913270667218319988682175814805027092568623393263765964869426106559188467400076164227351422424100308331096418632975972216641085853668024757028594784138826515962511656872280750885755347204580834373793220562569520726069931933014950387213049611362516275358783609897349962984776079976163702219804151102036302198088050036642096612719167767117195980338918795730459017498034975700494193437691690088860555598313935476462148490556139828137076730679696933424003251902206196267570338910884272620218597748149966950748083034665181617962836866922725401140629576326263432238258248304154517639765119990322046455877813888698745070593031158632766676528154397297985738597558472522600459916142245344255555116617377834598109483251206888331392969201475263478812330345442452038326883957261481388023189403227275025561563731954388910061783687248715394962038561789564577907190075834338588593717596586506422026458937236680590977830734504396843903792678005777321617596087703356906956893515154129232329794607841054392793591918602261305131350202152365877753603036280816643937307222093437103417388856380297972308719004348449569481748104307637804578270552498829433189889326798065017785981962163388535248418080391953907756464711925865153800257774718085661419025518644645266898637331963901536397258101332645670581974523411705878049811464576937864965972690764493449763294982084106988243860006499462376631076457228994694847880321550164816248425411635250697247394654573836016677983598079338642650606514115477250184131100703627928938549757584221014143070076422234427891673577983136939076448330814185431348533667245030029033344200667735003392839892480102409855370851685205503287825125175716450002375693523636508663573799466089865355524811998170254442290317428473475762251198843908289156908689757272475620907633425695598680298190654285260384220506225023972886700574864884168928599206530885273075395998419764712291619542441658917434059659404756181542819566433718377706904633381898015958388582623338238095148932389055562984985180034032204699659071145004843777976922247312778814231539696905429351373580944409349342580032484582228239468864960210815164348669376783917129859604828580916856721568667725569116886279436887499998734596852710751131887412542038182701097278822297889631973995076629423349037244758667973455734188922239080530840565043262691466889964161844059184183885500876728377555831391201369772623167561959450424415901159790323275593629996425593230245247493194256310820777805671061245109607392916440970103831860707408442880922167031801167215460730688978743051365495995907024009759434912067165133086558739364847102402985419493716258345603016553763093576368898233012293667317774054791180275091003661963098053743727367759443796356664497734239716588440595266891236336874445100847416687684222303211309789001445658819407719298059228160708001607073725902074112893602777810225889992487025886461795249477134151273105415529685971946507064469637837977150474404577161847733582120265233780608827126209300286762199701127260753344632519714258773430577143576305816557242104107999099877948575068996605462884231089820156468704747626862713695478573218313038928186438185672899010824113311712177348885560850656359886725535341481461791342811130679723071054575556959152749875360451455542417669696332164798278646301663771623043212978636235247620216383464309000235651461443331603024009247456192078316122004809898142907016665823163113192376293306412314205294474441239904766882071159324375474567752087099376329381285992389624891234001988061808454485363858366608276829982775536040717451828019877104292298320431038290784208753095604620778991305066000821622617490269413813693434972300812295364243533336039586132261493828784635374822368945543624447331109610343976593214496461746470907862326130685271799549942790427256502398494305717267069985026182743314565580487020266009106922602625677057428094533571549691043417920147832434362380688142515538457417839159488485323619931203160601878619049768784137796091841976663415600271418916962456662607140466892035484189497359127393706730156618462656269746534584345702662885598493474391439380987598824778541514286660605867890107075380613979609211583233779130903687659048168127790839540169679867739786190436519069162478306694065891770193446448956130552871237945387057882770071936942608624308650347659180350615859474814864844376665533575754423427507925685270238414881098540838473931442741242923496162895814062907290026275821378299480089385238269635104203301827612642011159910042653926407728437358162448653737447986716493832535836407796236109514837952940071131430015494111881776830074269369560859601156868517251180801687683018234077757134082401741540434930813801770507130918210518542253657292793418253566772996547338289370443022345702171504549583266454428212634087618120594993621419941490940836089118059423187683127025588196849057583108088880362146294741572764115307268644001012301360866556620921233849588150276214609901600704095502635695878072969791311311205235315434145388794303483666538656515636991973117904954406685747601965477204131423533381618160568749288190540869789364638384439301330318571769024239487897966472722060920516126920213354357652087777527889033716911050732615131057541762961237582171501173351345719450567143838080388474471790338022008557888028236035249857838397979676259055391144081817648627959367900335294717331968150999701711438904368353705285518306681177137667436264771779541898563829836248946096623785607498502809282265871049228359130199615491918088818353210292183162331593311256795883359950265888260235103506435979311263289681432895414554797986455739085205158620706600048677643416849443956533877405493248624727847415786709723450083457123921555591170994383269853952688588452530738360469684868600385691880009480277065828212211151716549577590741205016883215337533812344444786044232947565917128787699288752782817501858673286300512061149096730223359589872148404569371865772534390901401281554334148190130823253924879680487284331392347606022624513731151639947488243172685039501610171064954683839378326906604553738754114210806716219692972043569185592642205411314296827121667007339206158071848974297679564048318985698020403557955519870848265819971980687103176190034604763218804877997488331582971568376320342269831371358489954994751997813317993588191374339176456637004760342789993646973504152535102339116801708522062744218160398747623178023355043535826280588538584335205239021730722492477173616907558573062460250694408908810569442830164487742471799869955088539775489297790465500242978749120271350013408628002579576489961655145146735795080791597636607383882985908682209110517248976678706446466627491377008899074281530322959060034541972461550970888290543529870292176448936065811912551424873327276390971474339754817518033110861831538359358856054570716541410045229189121100758544882864707231326522867629348871186458889576930638913857217853967975727539214058414387096800466243939057661660070360420516187764901454438283568214417216154484323985730693884616975553466263007269276898933632212256020057613913062392381850924278977573805973960864080903401513418770999758857385985893934509914348662760285136331473659091270307796956169206367563534027603280213870290897356244640881503473798867595380248736193254559126375990565434517084521319498994114896754613553238885497114894660002001619864720077357556147513376636195697945229577470221885796180837293497808507727922903611469406171872077943238678597987794343050765170879356138344321444414677143834941158651630221769530762495558110421136627938038588501654445051373703008537398294973115892133328415937657414648902204122394906457007759053954055905811343118148411445043676099150914163017573522479079759620128179104814165090783295379495173238579403109938006568604823216786033306234441775426837978063115224883871087515249038279208441081132582677239771560800146623757479592105880083605352701587450011118961624366144719390140777980989331799647242033580030723864134812044418586009183782841995185363497046854910870334010579728319436144276929606495824894594643473643223010422725385439983377910297626004780302040982189290498285771988523489662325934838856509138965011294003010985695033268227145100106851725149359351133091249334346884440416370342882207939832537664246385394384026621684390067762567571027680393297774784350383956404677711704458457961244430505698582924879545366768004551409441705872897721983586548705513339325401667668483941139407642271039936546926430095172773452004327388933358296320694448282566073737568832944659849637849439728385418969615408345872883214763240679576273637551978039516066474902712275644420269094204805118418458959025383434516712490799012256679346542654770461124521510002228995669749671230696065858803115441311625416132004900203244109933225579451110804583512032732116432797014181602268198177860633076221092945936076990530599616273394424077849679657009349278301974734067611025725192782152379839870432996599235923627207342744364614413795740045515755660718382398753609553116005508492280799769352646284428478137016958571300759273579108211300819002753574852826906989888699727577936885185417856669459671044526501740810939096862393762008226566346539169513142549871095325933169764284730563896750541735472128792747788423770670487516143876928958259415513529643051449433514896211977800566872594716380222513064136292451865565447332804704337280615213062702410027725857326510465781330553494036361246060696277554656221544232024883378459707542961111518437473579638033814977042581789302565716749069428622284524030383123243642211241791583308895523702719346930530357527378481722131155213361925231066584747537443579271602893945926288838748091251429392392932502665412625538943403417987879951571097278534572179940120400369988619224447413553322214088642034956348219791852514273374923370132806737219860873709497333488681159015493053560586269564962923301689263304129438727075161714973253324115897444582738038510435515080203867064761480784326421085029942875527461908553520078700474210803770175181835155928486805391122262275611161730426566292245076381331372736828295279302469422950973809698513472600370734039830668414108690021199678434601394655375976888933582791366162042979420781587950474332277689400939335144847081079930481096224305890877493338655895371873801775572484981030987706963861310330021118816096723767653513792799843780463742249528466085713347920653646257895913508519486787412220048607169461051365050607149653081857212231242214622834975531357170669082170668954386818942028483265013650842556750113241638801300006116711487450141071837438700831438451194849494456044612323542605010829998056382832781285325824436903317071600152689213547885943033126118530913865293274801062668023989372003497398846425454238731472462879752606978918723928334140589026404518895206019658380874875103536796821924054411971295788062800560157319982862492751899314324953868476391076282854332662544486749780078352903893880209227140835441105908933985765965997215003665040046415336369064925210801030538835833010807830406808320479306235148517584481891764756328248418995355054937185209781193866582619246456704338619907935706717193853118758335187393860305166492892878619492739031640194850257704507026684252999113229980600447566602335902219684024178140905646564550116817912565126591214236924202849228859323345945586713133496955267312279693513397846848787190144888579743169673202198699741105926166279454083875550298776230445805922452140412668517526912234757180032150834852202202357841599686759756564994630562142392470538867769980719603746315349283588112920522920892245672539063971164927635466502240610255207735716166124742935531748538688738564268184840021138328591884218869952691419559576810202704356301904372715133237918073249718653803089944367826861350385060090960679439472654287708400254408887885624422249500553241749785514322478711814970637506710695881535811083388471290355480097958575983023483993917786672501768538387916740088182424046424091722036539957080917472591153253109681552124654281694158223777649432197782753334649183648098376986272550381744350742755973315598676111519054694365171562329212816411300658103120585894833546501089665995997245609470956690460727180997939963794844413565117277418299439960528074580586701987454743790965175917900322310613826557429097730577759121816736257310666219052943136235231411421239960928409675014052694515342671427843914155764406800621264900424815837075151125662604229009674315433799318616600236462384576149936861992346252933537865098775672166331957709991232772429573384738359409859382411956889980954789534716580033833068910751579003856971158945917459597584101822316461346808539550189513132186969276254252012394426928685005432718844034517688151309013197101902459353523340734027080340470879062369175235500201194135649480104423772180079449725828765503009541640803007038714742403372564803250533509309847343514911191553358871365175293762725506202081383266401048849328238910699183162618572909649914755565065086500365873833652260697322987945361406625788604290939866274815047930570926424703237482715143451605413180363819158954924027998678491158420732850366321957608796325729740796930562793353191264977733947938362138141603750417877797998509565289144676115139153114173516315029569622410260200158916095162486786544577607587969022763162234616541949729097710865130506420803247807484795973039705498014929597996847530086486763024588614247887247906912927299644596590040845791720741595793793353570837950968632957757057338142622685075940803665090149666481197567109901756961156410176386018985022161883413558938932807470410320696203908438053707561804618531749666643265921620650198472650461056281339776741904974258584112340208498326053525283705426542157708526887489025868468343020987799391132682642077183185928690226203605236801540423031863402155474692839686377714702458047459949659718007089619449697656426068178260856212323812295203796482863108029612548418579569140642048633716893931372391462419630824065548534333527078937815599176112626341697928202372647386506154139962446358351226662253187275032907564376325841889841140260550026557969345566546880099673569297320167650355338696710660329778737966966207105150437174349525463986283205453878700036791342602688955506219257027445024863026920635657941661487258991388425545693853805934002984533067294191165087686838116361987161586594706359581500049418203840127210684726645343898990289764908513901121799372859503017074541755748621722673247129115120907289522983072557887667945128263554806736862388500123895200532848229138180397291558453538886623407223431294715250704903970373830135968563247872860899441316087468775585669056456625493654323263947345606649272667353128523373798198060763403565990169126269499370459968434815702559294027141781900760119222307929534653754401644766380252743909021142418627567995107705045778037138774302523055775237515231097781580840768312785120535077945137684279004565791019915586336363872292863325833299408784972436800397679031903052337569365209320364136809349346601974745289081807882094454368138411443176832262797791177605131267340298253159290877947941733732760351073841211049413978531986226612586896740733244397219605554242021672438587402657282448213310117951171712854829617273489511835214385741583208378531209770155973827156196262495909833872313293977704409665289383476676935287137031125972758326354895372501595019914997831560292759679782091516693046730816779145020661863689047056752240696354186500628050886588929890044019512332478068674098248471344651229108553454546409461565658781360005282919124180106292352922322580677212858406305027009722285805406564725935484632819900849787608851162489034694324297304305248077565735249273777911357007859145866137350418427481757931095791214769536970906929492022010330572916534680616622674305083217070034761224811355720805483969884428559168473644609911971421868369144985527626358248969975310135654365811751242232278592286391986980558727756001438903588907723151377552322139579916355145304289680669265684697328339305160590144115176810754361963865811096686123410781129173233241973403047385875740037038166168613658393879482888878425180752113101738594252184442093568249242998272919159832853014079044799565890616235322962880424120878422178222183135165779645790238755271030401637911488169410426910040576500992688586491898235598243228078351096810355085000590794473331005176231141520199944358090732509838988955736873780201403539626638361792486291479705720334002887807479311940786501814734051586930372023099819585626875381555545311505017264349295269388115567706738355836538203547389881011937976063749624747062690364908745518193954851653756309066706587964030704203606721857931540057978019629201379397134218341481820669894773025586118573598437258174538363456420491073103865721291329554512207650335398291703907121861963424835449401789244654493751680616072192155801957543367338953233585784997884453525102966163377990453392540614719267304591245150900754615941131700541645996413191468924942037112646345172806878824187913707092959183912461883407574160227974246358285682943481571953159835193172094737685631899239128626492532133790162958768106159333740911496983962182804343331916947955081714073336073426083031786754137823847994793786792706087600099530399524373646269234857158897298969378858395516180274792932279259607362030340739572833905141646501273955573381159338736855851233103041890412637600988816499742312331974200140307682579134818521707759578335738867601292739957814924468902969041650393498870527975686210656562926669332722827069809963172361658261178945809768112455849914234023948103035454962009443707690135586264111916460492350335380056816848682806149136766357021513851977547150893169190159783756560162249547793547243375811453627921922280065472525190548930792774410663995993002127281290021412710867490255545236423738893500361199300562700448532474403060129126563882405316256577396888530637227099758426952965746689342273534759493298020061320283654870011082848167477244712807512176098449507056564725947981772639190204639070957865738113743221830756321167226388406153627581044633034349594511001893142213577098504360492402511765994536191189003326265060261315006419157796745524676444684638276090956527219702787900498917860103243715269075693646196685440967181517452250666253971011305286456153963339946762153122365361403553886404162556283923829799343298532337395850040896888730889149723784828288767996980051671623945707027628542943035656683074467610621099838753526948813002065146821769491243306473850225943222642153070721797566362804115190296707154148758387053061295393595086544015709414271879445335190064493867678948585992889660335330750659608283775473796073700180024026945990907895763572172727931830256783410825270909288982426872061540219023362402904255763068031949868428118007530557152736281878120411806021912319650696424506176690279382525063877849085966930765776180088886993690182183398797065290543539456369747968372837026000047181559781071970158237305499886401220590011098947651824633663395776963072498173655536843659026857539137263996390663211486820221742524943565067017179722533758051596269305969076871838295642047825923431490396429261589282004120010071869014876443760539445038766960966680508224332079025784092385168089027548764904791433814792875114761100267242944821237528529441445991008802818128153124022492192736464128205074833766620608255650572796707152615118387020004902896004718944215450901607240398804499962130219004784461353971180819245552960746170822021943447816381044430886488450921912295927054447924369126851819045917410205434405218500770194728442319526729300541285827040926411789366927005004632597955735443247409061409172810644609663207021110519083153947342329661254937521628927204691536963622194782642731600218564479369891102371103184222315955219242159924186121261765978318336620697078114430121432275920352836745875826979362822689273167652355620801684471436633620069970984148871163377995682836809888305801462996307129157803538049288986435316170584459871531489062867020839125035321592775994060311919497468902448027692719287271309089457620804184036543796757044678043902887578485189629564273859297274836236020387803011277373933657065194247058036321184726522679419469604558163447005163342645310942619876657710813776538088215615682980744850468864922396586723045557744327812809711610433794119408811387384491675518131328708938953924982018637487664460845830457779560039440449588979941233544731728224554789841387793404583009399971171815997337717641457188035748080060569844365978170461454084173513624367088274442030347958979083765654546739413639955649333182996999954394752151137224351311152128586681822857120774595535013009810849273614843796471269215006674896028065893131645794202918785418320977412580376435467605430731667170669470215619013249639265964545919662441079479272616681557186282350499599193523643660780608247099074215948886593141518305921368785900393796485678989572298742449593166713160798516402165932159306863137961101674693703947785141817839002932716620986876019327806469954424473939462930087205814929800555066229000202415858750380646296644118830141861653402227132604334075308664247205942567463639128263497678143143755829529167702027138642772975274280484855323605485131748358206651859836792940319471248853718400885828940929490667444347591858410082531527368671900988852005336579485023219081737934698885972362523071315964292066907853662397565332821491083898291976471163521981436612103264305298165983365619406222964833687255554530924368543803477162828249162073309580498427026433769067248142932023467806259739868375740210449715363573672182320109123927354445801229602506077764195489799320217530901460024133814920077572944564618288522066257328722620168258153801671924092059655816378369630476761373026235181415719904788033480211734103421501670201009029911372787325149326091495723512958869988749672085554763160450212850531099293683699978968984419729901202899388458786859391832762947086375655121524596764842494529785855390180850266690916959806040756247230527379053695331512055174299154629443719576585003414680141764534770769416825426526823438293959410703653799668036089913143667952285295477399548461782287125099735387509156191940413051669282440281170300712910413690249637424416105605466749707154496439322385269793152065108999511953712502359790034563090148315337007755097798179813826093097423255762507684848657490569853034360896813038110380993998174915955676876625454163396597228568554865085202130932440149364766450394661853714713748523393091237083705719158147631409947275821942432604714507075014349254178720865934581265393824333854090832889719225795701250681121581342530302167228396820290048670714251860429681645099698134164104490653677691383913785245191930728769017210889244355677679279957077402175953972444518868799615001996892899197132472709044855809713980471202967618437497316004380086697348086570993482270745181444193055146973735354418834828970238694421001778961190510746025504772904164403332369913220578815930853409074024963843811686367170548223724117393273953053648576711338156771667097187987645489313465661620751165019197786546886625415886147972421278078510328569180741162597019977809318126090323583139054973688881898972301605791773956679357234548332498145186426053216413191487072261905478874563446311429589928965551195913191788049504573242356823055893877217511538637366154054184463130710686420667880191939182409839701637374871323433235613097584571316877228856157317743536496478818795698386923448932060907668322580783420528599915836311258718854919203322493174425767868450147946031571270488017079664852563316509092214622821782652340934296642646080915524869459890631264470930255903519246113943211526930426819456243350477336654140142348743448531789251604695135679154541064568536856804380671199055300852542127248727255299593076700998467632386553762193859745832997439474383887483975911817129020041057723796160092111946096483122619895828959577570789378609301253447055677657625493753705171688915535848778651354090468418601954950023815687680333605736696533072000906885268452938674855795074530031167324937853931227771107583979211403998365524864422063934190424202765373609051311788635001783898293428576365792370099032980268695004318305712584183731488500672838094246619080651708250752222014880688265568128892987238781257465333345840179574009835677659023501355264500809993404814117747731585195625143495890274499619415780738887638820467078021710484720825778433307682783981519534235335126400421599295531589318302648611480522660230148290030280571508293416958976605939681306706271669306696351652358673466714708176632472468828870118655023508698207912456146725690087198246776634371980111199428726011276197029099761395041383172357523003125669066726392634462372802221016884100059275240396800040002263582607577906370207402908914086463972242282095496779881727999112612703780916861288573802768787192951171931218650915963315689618826189243547312927926274871717648283738363270832917054207617971725231048130592597010849271396904907184249508873514241610489738231885862708761664541966551612070148750522798173216553180182163278489963052179495465764692336065687821662737729042071253597859221017773661560963637481869341552837030356700773685441915896015075569351216711446712215654380790415252773961392478540373827043048530747320109407424242781882585876660189585172549415770188078213456050650340509440858447050119505021562410321418510178614013151902009129810214143956456780784124071018999606335722051987845537609811020508353846340768185879277500501463655545515325272859847539812635915687383600929974616427519433320447622700783478916842977040520887426113398369664495520981875716255051936645790322064928499617491129540321874591916745673553264429296086376970659719603429209974285574955146242790234236457894696837117045435795515814792005969134695132306727619586009390176482078483449037781739976939100612532842334948995466678186347543755786675861915975227914033066394523742921672452010153895341590013887631693458313903058909148077648679436366471074925770939807921300399233837219311687246016472911491838671303170240882349820378621851531455369061711020073265798417318091547599851611739157297148172187150878562623667747487518572424215581644960562354363706200274899127584733469168093020832984920789495670812929453950657638240960754195302359007953292469533415930691991157168438446078267298777020853687265826682425399965139268536499791569254922725087213929583448874857412335222829576256082955374506127234903247206838004112004517816225739145925178520588390699771143094368119586350729768059049612833968659314640698948833900765693293823559872223778239678581369910631701630971498598783926692342051295991384417727416968363628610863249606755601844595386819693325355330602944951802668975485111981173922649335093042454455520445242459100671341447839838942749396248563369995632277764473047725274570935124132266633726038134661290216800581009431201147133920824103712353818277243247898284671528440892105280664073845508558379823208045768320218168507613719664805568313300713973258636230150017528639069567136623375551869399707284370043330269950157941707341830680595625001788847878032030497394812098429848701770032081302442604579775549897306359378009384227484498243669426239296581015360338329583094075096498507434056139858981761683641755180007229304706758588610207637806580141030372004105803393625073097108019201506688507581000693159182907841556618318824049301247426900983493636120395606298570713920877126486463107427927740405670970268919519903914362834480611199628353019588773237498577478974007878330389214187710868043232041101558403708264075208219207902739481295164306226258636441824851226502405471093781778931760166861051200634502768554712484590658150064020970177898814637452113854573379864881984050383392602496476859996866589512071967970510823163689310557768910331190794071005988779493713659758592005681084010641724325501323889394911012627979997206416839341610966585859073740150067118774098363980975240425726650987237113228662401527843498212338264623391027072075386422331949567972207980774716395568930714350669177228801521557330571312311901309956716371275220286897005585440163501892020109926667683078898501580939081466499328548223357750503782286162634135310612130642477554261980683795787925666446045733047116383303821036509440549239102265066898551023413335872348484821743138498708763249280122665068000211340304313541453975412306909897009535512707547369270464148953117591130706806331973563139797396949029857829283090165712681956107442017578857041112811555887253043287503606819074703956803520683453918044185848989995441513551291954363866017159182770155168262037336677491084142266915591927030785066763077472979917741560547929918422174143205245337243291107423162936134894929428887067027933803566786234992790050420157022813553775654795917289366046178167507884860998535958349989061912790546580723377376564947681739363377512488367912186930531064451840792786246539275375351705411414191990847024337057365094732047255978777657919332535640058895204154397981368378755313682511512062800932659749032835682337057184330556107228726308742912709202412812290010770663124387863656279031566903680050513187614246536123735432221270109200513162437750569992384034745658427623195490628891691300199067717332337576910666765903845151493857114020628075867435229812016957213574090739152365666785755901383781594787161529751989340280514936539512558365326932339069676187714951032788716318154804194004343748034021621053977205200561816106373822335935230578219203564113608724473072751701290109631467631449800360108715123047069785002896268873881163868085875038601696521868883349260079775118507281233432114630978411691873591009960341873009961442607682190310235421196629137326630101995271227531200465553253864032245425229304617926116066173328903425920693083201975836572798190273829760638871284481188169570905581362874178286227284245919256896785967082856156107030079480908925507916345794813680166944848860944107065637311663338100984292204118767165817344874912808073064751429355954932759754377450354977109717204232627497088308775485990794604852439642998368579014825405823619783856370238110640546007651673501747367304262534700233035247970563298153525526095166938302604293772538486046092858179113321423171958976636158626523175378266047616162457048695417779682787134268547088232839441253228022391530789948152521008456529919776897262825678243623710607721381784738972687712648851467340071116320176851478047940072786154096491326381872869870082471454305676303068812564506615019081272833449061304892117755284093778273938352553266020117419422535173362487874312656472481581215651426333249058221643612054065151341322691672424174347833470759204793518758306488202778372649712355048441243251493219349081744318014017432106526119856800993949627058457564686872618350331732053112265506297628838121933901367131579811037955532626496735002011033510223147103335876867922168690240362315826596879284616285798983395480581840795406046262331344802820477043009067971400454240918608535148243627166492184172942087836512158435621262944958327784007811231922693928211058503458468639778688614782468456340696922934925388370991887580751078328017190223477790791904035747159764640284667068068355682880714642966008262804835076402938135134194337563534851871523563745215696271578220662652744341786972591383687257795562479684243708154953871967125698673083997969632451679025659729498063547033360407934416494475103257470146974622217965097319234305443785394390271990073421134480410497915582614113628338769257632895593018451477051053787175973458881984075234329399867397713507360950412050899262908987992766447277388549912807004836535992505107130002596012086752019869788445821428835306695101395255573822387324692968016174284296915065676657196251392836387904972224622179693414478772156638496937576812977198838907723666936839815995155467750662226664427376320972966198969647144627233551836722907983191270131925881164686284076073779403579082100919801888267915083134122526050720589676245484361606421568566784356456712279888582605944782773085250205473769195723122075158451610583728152166986479766442168000593854519637546622299889185131448535876218242617496978664046563722889152821284823442545446192773633982815105694591561606681706908609427977377628706785308569298738878400830555693262383244614855348485754168667742411172447693956208572880782305919588565449631708578777348788476519081887672790819694642983224787240174022395371616473677459352148882147406425960574683008972049752616080176757509601249072333243511876452831947278784654961658867230769263416318110835124597658036943200517916271350532246529497712169538154037163315905790863510985275080328591308684548952254689889167198180619242058287432505429814035705942075470804827270533606845600510943304036407939445766664045030856977143881895377058657623189354473428047667392175778613761337068680968830595877688397705815041951209607923656947694598455871692669930958565714774536985998719308500851601145411781324112180595915761233155113483000387276061253095623403469864381289266390689851690861799039333376151439062048693033668713074012324415720271850441284416032258387331698936035053055277613360099819703764755917907680958677078824781471588689428373194679644546270552879297044585269374224561907325020016971208048730748567808319132862873339728659390276751050339802038504547199958352961613293037712413150290101534443731261483279518932029459343698615239051714362036588776271030068362118074137463299505055247855548799196073086221451804601129612394479704565532538521389997400006058412475807870681717205265762676392932330222058978857864317303938961035578193005501748818411873103215712002101927409670632751790746425031697575453028639384607430368685930425649658456089374749260245979393196801082678057546368298713694985572829418498049726787014987482320842935383499325743034426413553960035574950317811939502071849251751865966096750007269354343987845688390514543151313592901108465825796049902962302406352341115276344419855141561131259819958570629508153631030415996955028960257275362307710974199777889921683517786310284766866197004759455725120155875521998897805107381968007146814237804967248268634555254679075759820416715788059937189573713129668475620631410233045454899173147355803583093885117810342892661878556835220131390439557734645149803270147834608465213367191378622956418408935445822055859629884117486358008724547767973124342341520207363716687822130431734002937183082444316726086575769004686229946622350397173651530571314853089134079614772293399714412051524209446922192133295616482899643160622854691976552492494988422228374300992402668938992684191486779942342089151967241177672765207337759742751083647207960675449646473087233000339731892541585721568634521411735790115051044383314133273612275484733642074716479963230573553875833239258493993453468464116857956437393201034243705549966683694896645186505447695092685088146282497613289492270858458412087353352497624406346335121018521458696862436405682694319081892986961705072081010430367557925095051071207107285812095776528713599494193074431965773057911247364209056517532248812709686362065718710155799276096949309618745842788492206373253345827304735783231870000004183619816705042563082540271400030739735381759939635340553664458567764810761722263037309921574185879334222220287280778827716405755435293470424721471910221159619273191169991554102490920056688749888502755104896506816143363431663093365232342191622394266337885977144352842084703623548105206428854368374829436538211680738609813724793470945616400503813733530961734606036492383214513247751622730874695807386316869311880462123480338614190024372095393039808861362343214517969190976409736119556137287920053259474169567699705522032635578981349079663667399353666778237878442261626064633879597749167008532599674461056040881436679177897314059943397397947094201230254275283637299435761195347133433352777558021316532623870179274006831571688849474358458481644434470013399129830218364336879871626073491564875230258070908400963282714164738023468155001401697687955441577315019915767136565806828767801344331756338782700355762931966633982784929803430297961620690584440703854767991716165313161233212658833508803791842955822447001993514951589795669038080871935273481721932259423380723593841643563961263704495082396641173351234111915211643743141239512342631559187775949963775316142301057139858730524209841003174024212246333060657959354389389080473722570047844899427043872721732870066443367623585420913620137134560736132416639747436585798584410262514310292149746468465120318739720456512767210694983227670308478530920911492817723765710616263365748061773116885803053763040339856076145414054484874854003329089941483097645701460878575937108135052191896534372055184341698684119389734390623904644204918280898270727777008791131651487620448685738394228731581554861028124982604449009989149674975183223786145136671158388452330242925004801175209030833104510282864910924514620431957327142665761860705113560703842448883384452540273283133053440605198819717599618797702356119393597300068729762199460572107734931909690174027310887035038947884024890058888962398404819540869305329375494969174140246743561298549984694999683879396036021877223416292648652044920734574204294216463663823661336921048653288937666134614482940124543637070659599015931081332141912253913740020037500783113541836804036989591092614778641776933622799935563442033106810281006226544484769412482774953992537147485268913588921704488707116200229330513900106534842909859679631251733951061006037685840897916889232630840688968102121360979768745617121382533001378694125991031479639417284401752174504227941903969949849839239857898955725610383773806116552176109411257462359162916494186536661608649265616579491168185382458578559362497597383858694798267986624662282200208492681258958455645193980156970788231717516389317064119303155617344192356377927823161282319559716274746283593816910673558028077968799734412786439771399320172618456104035302518045147362863392433740203376323084496336517324444349915078546741244303072354198832376145049798614383559108467547326182110810920997048580877613473109323861532363176327182219915404372877529304891439492517681287763981491901164826513626495599335525046812423856561377615831189801508622286504885106798914830787891256963348004190239196505055550151369207841047292770357174089696980654931101601577950070102537494736780908632857102339889613084804982115422763890363139793770073146041935895897980115058044604478567766069530116640506743616620964969924728846837122688912237519676794434346231486407495572100175376337578651582390421913025615330755661148561046533295626277800425366696917233231460011501852494733614354270653152675041212918064502049806320871093381370477710909824813700089779921329661562551126777724818839441540970936688010303347175794654770965680871889694657422958938700251210634557964577548921547561685409321567923137785126423417077563079669469181502738293523423566326783896276934227580395489880864543818537776197061522478707705447162219232026793179196577623369705026317452871464538509881081671363539870824598913766195031937148892335511690208623994635878839336175205138389604593693790029448362065864459066277621814867992173450572140311842811492090845517794400735956984695421498908046542598697450801371829231403888089512723735927509117545411826155520854795039898606486995962158537496830141115756303724990675700857542685064900042860055324838750932174823308926711166102007791307788531810866667284852347958277228475588004615983494897140319624653722015496340753701871516808661076845951652615292598780693855818955457748300153646960791271143212393162168050986897729409971051420015004831237906212964673051689441630850872974606530904565729728118309002887495179194191901813708049215832752045454787911893942510813753479532736123104129546275895445734451989844996941653401433468474296653998379478466925996935248829912883906934025085962622518282582873825263282085984188999683286316825401655776024254560395121066984005814242683229693451065122323388778391040039462244423178041003337851850380824660289970553893767701007564552054489177575106841635046335020623683633216271012504623563083425217743086396753169311056111871389328070817506902899274409471875860645708956744249099330118624334657962438509685999423612361907074953510728121619169359666785260907247610441408337561169452011290217944759574129781735661323174742852270287412599171855769661506547668622144563338607365694537954025309429739982102313459342383180291732440711220522338033551710946291289854913243512736712906018772782911385792523649439898432647539686475667996751628623170176254913376002975034717466400872337034119971567735337726737554067253355693563519784492706958584447772617164989854088124467766456401297403766775630360421435876408635314971818600661409250023586066168815298824474211798699336099509208004721736160637097821250687506043365969217311741093990844126736304845694015841074569466329039745061822698023140211963195310466834270810147035374324187049464620643524884575359646100328326709441956689053525476888434926575962118647679795715185385461887557138331009599394186603550831779839108762442318831098425515029558650870137656402302889333602308460055389848018261389520491160812421620272600351298194668840913404072956229427627744997561629728116363148373304245436845482811682342561147302167924789403575940360504561098690862259015731794085049252529694112384097950096456687611167258267496968288721281115072243219787438784964294306431388475975268300745038885742644714459783338598639701360107857027863975641320085018371449279047370514744406398413706756181378673677877440294309510188207375068692341093285604273290339321677465303237847686831143891703842063768224838084523769888662234482409982304160994354037729775522361529256359036207813604313864315944503600339442228832087161852904142274594821484589668134945551400055778666313868481471583813653693170781905541208198832567347674441737363361855208805294401299714028698554143572255198502705619617703613173795760758937352087535879321354301017651515188307153562624478045937076498539289878047127898773869145682996577856506276551189748842598434317405822467143456680379214345379763146231577578385639884846168277273827507951867603138737595095088695100678928563396063446280255759426225617986082350705694785141949006386194521408824174302358465454486878430096363995399277052371109419663512405301718551975892517520896080356476809387044228597427421441849257520323493066704721828308050641788496181407805557884338171339749215633564332447910556575384086396380286429850728083360751356236500138610619961668127381682378397488568721017325665646976709741723293187511851109108900947882094964974196468981392653192585312356856075018747476622034117385298944632874518775547461065405930223966029800825580617655582396918097598040274443094036530585469817827089819020652670834428164555258450674162108658673963224499009545420534449457482376558414321570261551589457106714539687660683748452726729477448892212298247496042913224088426220724833985550140546310110304281756242252578885227775773069421706155329089137366302553822757622929472609739721863266909432832964726464750943731286682837523246682351204067007739978378799825351216304148936710779115160973475248300095634858514384448041904200182942468203732917339512577253894844174185784707571722942338150459317454111501864065874167912917619891275961240771915366117621478549227221733215207406064253515699962494590348095687452597609334248067887473376407101377068135458868753507943807649062023521299224309238600467223240587490359856555789109294517707455608764352453566186006251718486633388480229460703865353722170324689572265172914223091780089935959371377386327737067280228047603372853053177097416690190418736014916580156465228408222097480020958128379667763589207093736068290564777587610566095994120249038693749426684260688624497049680341048865796477713153802407560872939445125153536209347446267846368913238418153133292087443802762452407296736348548281012376668955546631876132358764760652724114380349803756519635043030126977354413330500010198732486148829826845670824342553497593367809614105672881080016528701515261096219199896381977227227863077451821253720671795969593395093832008775761207237675648795761392743708385658289357795770999572203062186992227141342074916066229561717468242791615718672486819728961898663611775930165795911984608890547259967643406532137434962036400610792137535056373636416143452948710782298247610741989650092744755350414523064773279916688657425164334937204645752493394522190279888880527309541965691649715794913731641293045496493183187044741407114810462232796695700872142987165316470892329256304945531566732065264153052614151820737694414070630755591379628575306617389909971679620964616940322020658717429920694672034454593749748815796150485720228403786510887706985254368279786119880029197629886191080025476101500892590384028155558957324878766916866301389514021864063534012338507242671156425575765159945417592815296852460568914368502353294069692006366196091102809390333301802001194118369386593024325259696845936039191691711419906245978563608701914774543606714200473857905189582607403869724452425729330557231148742160808152603781484314236988322184171536669055908323202812036870371847112075713945231587441241649459858814560936745052312796803326477643564773891565273876065588864241877833091480134964181532818855274482204798014682550818320687169553529563335803814362891939835747824938198079123244156927290026254260963358712644792952426192296370235531014983442781753322853011769086649922373051915055568350096475815647000844581711551863692939638333529387920405919422478556580270382420454897747178399417319588270837226130556496411363189566419694419876047875172200013867027238596227502467953319112429044968719854790171827386590247503402870708243612342359639526626472373968187338240520449777189674266650628539032682021293270841876440375892870497379042184580407692861880788101797379755713905283068753859810440700470488699738240044591382950101641552258257298278178342877414130458959152522268918417916331421405616709256483241389257292311487625735148334373311413523803217435387511569273984220003723155413393573133321111732473717463576392362731646636469428239997755005572264004115588987017778838818476236424401032280941345092044155445853793552302118674973633811226412415945075795859899390705387056995021455651730783044362817433472052325948460426716007592358940396092292021383690339858266275925952318096348785953461450554728732194177292990552120962128566477090760467146468910274404494888970999094165449370301117517972067324260964095464373803699876307095598277770410625431752629846300182225612347514782151171249395803233466757880476429702850735381744406596034365747924544102819105570911372754693813259825396565401968242764693713151197966084205329859412186835717210891849862156504680233451346973379752719705838474001740737133092857574420004232082386558178224412092078818499346639384930730929790245255602162366450651422850639375464319891142195804321926682076513313255724751134983206054561462175349661846171598054800610381490963458703286960671612480490889569202880840777546854805753129436224311091578733731309728719784514777288099372544939331504508028010186574696494294278809742075359101475453647225565288646780570934980107875318513571254094167819113099443885633807887431213519346417548917668319330905032954741907782817892580336450164360316164114957491077426687874115199292286542132057163856668615854661600646328132472145243779880238976719579826862515391408795781962491311477234022362792307858202502561145380374655493782794342639275681858916858208266262547716929046173140717046004399294115687592659129209371722475923638122098770302091482052904816164325752268972637139215976632797295267639226028412800503907179555649926207216553096220953085318429379000749460921141946447160324511674850163073337389964039663630132932272991022234803269451060844587251068061030205305068914514673475219236619258696697933667423417181529617698277242730827740285355734879018947325735567887938367172873938310171664014840448355028724964994496823901519282765422184654636627211559109024282865526417672291819928562519981690280279891436967497227539154015698999741782874579751154207487591804640372365053528838022126451401845484472883082260958703159240886764817212657343678392530458685646054085526370140060801341068023730585955565299442058023503293201621089148006724742045563950194351023142750783876483047100225109065177628747172996400481020910370148994427887172943599090717545156567924231371303678343234622519456058141946552668535059388263365506383396317583613258386832805115635489796626312886117851126558563712484835159581365276298660974621818416232625281443968331022437367832774426944996591135388745914325799869777718825302807003094183432499783295562592368259217575781378251105542523083302431131287986442592676231641541734049132168917485602887978233863981817779993045958989200296899572540840640632588033665695677395361127656175363488158102136308083363165749210751737259820202986311177545970134304287061096363042516205440794779795207375413613932339953003882420529019216408073457309558389182823199776825584976560003904325896949513592987147254154366956947386630362184586605516036423398606210597744551902478649138907179755291123787187017880753203694272754939404809045324660321748128597138504325123106918690339703176058374069519578448040369827856264946178685261215045777316210203711684034676415353885906994360202235720264687363034536840706779408287792524035367857817445474605764811417116092781870968829185640358085521838617238811356949939902794827223244141288627034706311532316595104851876863563749123867778689734733735941772270258563785784709256306184712515947770488298969995585435133415746690336134870746385933703702161968341453124523844379046641909968625818090278827980392373832774513220577108637833611812773136208236546355455034792355377638879880026528873574382870913303780693517087413661002911204354117913156646161569999846216588274045066952714301424849687552102343381548290508946602886321660313646955020048868454071947242883460892859818256847383883449651624639271459585809764418579989796296987741339731551035780752742783783406297238064676265669209090666638050947286499621218051579060457757586211752705629757164375545204574316848956760974242258322005919629602046703065712711615604203127393530984206542480593729909281873732438199956112475700059532651860741957681188726997923072286548481986400652361544834102709211241544712020724126028580878738373346062076618233076262914998734104824940763015751655852278053690332634121427867499215667106784578200460386636643764464232682572290909746777032193235117196189377612732264091039881989995958918378499007056394856072367220327480363595233451116384041562355573636817503770964967650492898950798114934032759650032702170062491237097073874497518787367020235661548867112527268136242680950878030280525764449563143343366857232132814994326810656610178321989563719595000946244915582356577384791285298977678227618077800169608680667684686716303714106685028698402399764869347824414617675399126212649989075763085739646424559041764860402044583829710996692726076910656137160605861538220090591780898667828340255576147499058293128116136964188097255366025253737688807567447826114295360610016966327126570250595956928573023279171924634389483298213103502212655904720022680139322657035025969022028307432070561164626950165926387525416912567575431248448647293608502217423421943086792577992792264661197593424815509807643749537427701448811336950772212775586222606795534363054029947385528875969719589163672020418376888108449998279472988157787812077937120382785598274548216359058910716196584775136507475888503334482447296619497761109511769982586322486023558114163155916318258456715593186530041978858462050522074206873617178475564263638497075987404923717615823996569617254266377042961851584977015602540096261944146435118594860668853824939569647110085993663149304766889637461456229219444559017886970386095530430792000599607575524476610723499217710782646592141959918766768343678570314980567783219818281632003480186908700493084166933764125380763492365892114868892360186403102311207344402384632798333545805172530830315237219958519469896066733541349464258893367720213631981234252276284055943762977865788602086194427573938422258363884306842951884285088774532992845283824135701875631997443568577006377080661119755142098743583742444169013676213594037773011800887507387620175888660293586623404753147778125772108372357596411121898189541275734259666758041615041256803952643363696571436533792687443301348546144020556935070922764392051658969770079821370699839162128895317048170836994284715587148370220110534536119758006630338356253416306396382828483492030846159334603812611376181768416190432489611759248542588851100800249651352384824939894405308555779882047788829049782166608973698095585635682325028148312277268453000363798601976014818117682673542569031526768155600356640922448640274932311175746055884422487659233275815164142296560144050168350157328754971593412986424030788345233795803227984655528265569823857721070045370770442310547698126402642417618948072934660212969139621755432284165174583593789467579425324013697646214027069753376515271235971304943731302171258438791313044567438448200702025390529780537046680709269778473145369287084236052204450452257142215922511522243004378511654952885236944075566560575621570045796159555492042577453689472640880108998182915582657203381699613578656659006642799898101931699944302081591198160879730913435627273253628898654544560932873336895125283333655959649960689705557264527363522274402776578754430542134904500331396819396948416735490620260531575047555446039887534080147306108593577304143350548429933932932257385129544318080876936847409784340553411085574789817129271493274950443840609543451923557290306093493958555582600504560105063699665079197609544047577959572159060448796092187435926353895174912184435568910844945726276294042376249082774684392244167623263776472129830965004367048697385378802688645222060051241619178700857277856952066325184531235969538426307736565683988832904154773173597086407275482909825786546323515262344590794708735174885200848592361028161768642387226820426226476600650603553442480078866301948318247085853729962346110704074096446831588915068033629554473902029852452611641387428435499548615007025747312014257969374428392722126250345176596047569477388326417092850816586413594246798927235201033016947870327614634202071791449230097968078323619785772929203909943150179244733651580538652596425914325829822413386963207146378221792547574006083705494515441262677462333155830627886875759546105282841092177244632921734160979523334472275298034054120324973009161585359947759268744703366397183317775003229939275566399796636716796605318465549637272725562615576714466402263029539421004844576604136333031515741739849531612838441140789623021670195047971441443935060444791047307240681452022064647305292952423840309608472793681982164546084099212024623439323023668922160913584206824971203193562818310028265646598280398026257879702226790353235723242451332377332696844637844249022602485236964262346832400864168967734661448525872551702386013940272004944356666927000762602039388567466446684642545172827336840116725227644638147742774033574667070739106842762291686683923157786349542085253400913558892616847791946131197847438747941845196170149310354306060459858628422868529453465954642904243794632727341502619200528054674684905215013535051690415989767237615854575351231465401429073111220741249057083031625960969292357379757161381449938102753780828942629916493240271288161662059756102139336043467000766609296191443874212752797925254984257044533191465303851166222510374861276654516146681035911206365936322229682940293972342688102203266449036126092981556700435065365779982768775066339092849174504714060888900757854499545682960704778982535823285250804493025864331248457221230317165604593003039282212003647439458635894771805687753187624720306895788843873388535959024366934526199973990352006048742327870989865405979162529271601662252547552330924069584254124691018879671933685692569639564267959843290654013290133759187049281999700337840094946388404368477088611133621097043403662104741074800099737110354616945670254842782339171555748665939138129961403160577641047749520693280455053812382810050783266628799785507126407627153034739708022909602205358553882875687449488801508344345282017496612279070632315430090035167889325049283860548124630382254550773278360834402780997551188246133600522537777763826216631121284114167407248210475911722787894254284661732073894281257115440223223756026608526448458589636366781608209872843437019550955858466499254465730356199226299974759896438231877242710583993099232809640235318911651201071348033959347757050249511103445408676966915192266715612069945753378786441979105042895301933845148956675280008253228695050821267415416995951548709275489416313323675010606239532752479283170981784666241800613032980518509706383480115995674741884096619631086166072302077035934912927719803403650024775889534584384032474219467821875422321538734905185175526776782805800171481495663715058117565033716037597317911101619957334978463919130882879724135589435938906916276635301485363571120315002426801362545537869746376016979445234330764551380398118662056177845439077605814086001181823174133248888886520216265052448768171955804462857897700167891546229045301509806281389059890166712974160591860336657471628964584201728529452392502553805995636536009534739235278064082737587702924852684670149375809572272121447977540781259158245656932275360829068865510289830019148038147654282024716333502297835868665099383433979697674651113348500533665553613116524848426113468243068855636239761268943346249998007902594737527453140557196527832377665228950882228364843171311146221216446776255674322321082843771096598118241800140570212938313517386106467707800064871721475695784465685046388645023174868135601610717881454754375144735437807002159982461629002030961147045154996893939867272983484322472399722615349608547929188461402402946571592166969946207695423236924726705720640381381742914755773486967043700282270575388512955686430470407287228236078625975413660582577606821189608415122135914408310231542980001591050056183436211239399984457990420628889713074095332458426815941448682986945566609238145216710024567937818208824181974245461236544309163779632970563806910887429014117487081607085417351459872121502161820138012162726857858013808600521202485073068722661487220119823859392568170114347324093449803499160220047507419160102038429827955844906835299479246134242625900880124661829339963183703540071720748841473946873310260205019138549307849473567369603288863860816073815979878172157659072812122337512939118757890809830107852023342136456727468249846954309390221810505154810943063191309758948507348325017587421383396530951685056598572334381101301613581446122047642203464427576212805164718520310227766117293011933211166169872267270307971684015525372354610576742538104187982090149066855530559669879142549990754969631975620550263103723817630043524831550253412340335813136572821136496706436076154797441466673004567490199780355765675192203444365845254612047485665845202444993673124051279602629107133427579604529804739590307500483326297634902011580709557051353952403109478469044197181416206522119611848202442128981093344682001747799160699644203549079122866642992596355694073413207036088865216055330542512119281547001030849872554002399756110451902736090684760290626119707654444634608257780585210204691125192844024959202182097570459145247247066596066453975499595635741258710529980394248781706336891449552627156067740165660827050370589660845572498154596673177179340433480499676605582497451938396782668598473519987760235227777279087427096852988577137754116005147836710916820893242544230542358364907484435463888536761462442969211438009227061688798808380758785968387515673408010342381384523337044244476804377821328257063240245147625334676185246839246760421323435968734787993055719906043389844616005818853358741805251442945069606248403165594631435627080038458772991341565127543932673863332289302628476986564887462825199268015899028755735898314372395928837193674286245630474498165026548983482705647062506324916293337647102194977474193550485333758249044138496150408471475259097546717299023037131266153844363566321261910006906258859958571047877695256510690171897274869350965839475496347232208030051469512949589292977787284975729307810538422790984636692640577901586604065190415598185635718617722729172714501288674077169016763783870575911751005417716853604058683321648052641370075327436762413071245259799549474837253074457582884206676937469699776197837145395768011810631253925294934538411623834504551429986692306019927994113862240021455960919707216517479911771914130976776995520603978932078556707516163789223410085294893779270948936548448045805492961889790652403230203675450203005143635977589800655550408295253677541569297626080128290083977553620331544168329410866888211185555017360353176189171009134060519434319384930500233870772734257289791150865313343542570890946297737558054586622101758434482238404109841344350511235775615425826743213143051122666288575571106183479730948626886344247178944091322853370870036437471858109495962319012446133670578232925600426789750396504798029397191468159296114321235559148546741939722571469363630571263401821548939201083128711955028719860556986580014855705912322694494733016774041470659427602406736147284865758834614730836483379130605403049318844768332091040824038063443375582609623070292516557047718922273675564753486770328614070350509338325181308674118797737754980038085881374084859268579254873114783435137484624864370026190523114949222964374708878237495546902790591296908720100235311228582721402585083101774279175440462273248049459062911663854570803397944102464909677161038760999558819124783574547036680063599583081331998071243132564130972840836738326122065518450114565039037776242308175338936716296713470869037146425557080919415481234762737887905916558595139803547465433306337867043946676701020685068288476277990831240838287053417376730732033854463901218018359442549291623437398232935979285743278623446987764843142943597820030889079711208608785072761811106991031514769277441700015641076837257716168911498504707311051986057506522951276839772101947589371982841767374039331639601575479202530672385083177486815593301328406079449343408609054407842388517943628040205298198817071772899413640162391361108888597408880431168587572806881899230868354702338408033934910326170913803030860721554396773332545197689233757440812868853592091429854157835350425403804558323905083205809116735912231145418883971683108438865795394671258911141614656689037504750446361466879709111812499313913885324493626426043694882328207386113066013846046399009539997691516519016408770848383564563037896450014414742872737631539528155694150690614997307069806196331523635149801067139643411183391269264372813611306312289656431020549264492078303463666993805147814060344286567495937655238551321139712602262979082505970242108219411336976438394329900111980232636713054681032710447511336261128904383729046034002908673391341277485151638268037510949528149418609043663969855179656496915716271821805798579570847919484660876632940221686432913843246397847718428532928003863925923465068272533257492790013882301019181709934691837761793095678174242258334694096961221272869320511551135613421812759453393185193519100151639201765871117815450146745487789965836372834913656384007682919420418995462665759413160463316508472011661514403426349218050281998382549926651826105991119386923622166159732816534606323608780750533365360645251604911645468530275863454142782063106485556123278906693059311871118478613088881260982116186080167934801206438324110781191581357988474209246275773485202577166283896409154848767354680005125637075090183698203743079812606037057602774112723136041913673348675431840082193373188778744705499015596561548016190118653347616764075287390653601639786996567108329012226793762731943090084826423569372677254453608382317323509711913416928811707702949506807305676866535585059166171891481258132382002783934355303997505631210484117442122439968460826287838786048770465256864448776063991018747234895042594076850205300892889329538053107161722374498511558975941230347562683883289271152235393829304923873799978724718631685466403152725918739232204381443323955005331006653058024747091866052554701578059945660096244780223865690140246877124122078400854672186893917532685639924439107430521608426688400899768986061573402132218463749319538278287139177193123691608360116567104322976379644600870842675172415802541726487656362979782073321254369385241510473852388665368402686010589925262488232776171216300150181527717460803010368705759701028544283327871402486458739612205157843108602715406497142380163204259657529798006358595612251676039460900081778603344615094932249005298582446287486282148622934364328801296081513283656031263736824655315052819898251591232262506910529422133972158116565572790639293369198314351878130869150619741058327546485644319408833756792017518426592939499673955122434655736782146434907858338175199337786474612789696109835816072524357571219584528280655180180714078180223496406772912596386348719112547560311914869592585420584368414306222594046295598580853906821582994474853314205369653185729700869952355610421643177121149150490250491868377584966168163594232914211654173152939589210264749622318636979320050791466759797039112412064477313731890435937656510260237280161341443728135251766148914784117766838918767575759548073390840930514182421717890031954472425502841767657624187664062820812278857156758223584215676825104742869185442554424810120227148079757997253714145301040826691843510136046908872044691795482083964363229070344795934326708203289935374590059690360886594382534154968959717093603278912356048155913309253415909989667777331277302012554273342677415600199725095256928230585274577969248543989905245104033680418267610626195975738789834897946300983113605798931059426198719054678880859207428867437247259222348837094514736747843934424732737073819112006382209129919717472773888600620519683230443032109629647493217249245486254671639205353402323373307308692605182418470021318442035659193018877923586347274360663863701215963526572180449706592969824687774646388738770832029935547500100669087427452638366692005690964689319357579798809001200532680890450665708755444012996984147889334990960641262255757071388352195989917312511783848071969309798815645537929071458996813682466473982729021375030652057382019516986520951309026900740864670160606233769906597494410334549700321032579446025759097714415912547223396330193558046184194999420227288071919682020837208154078996418175769849208682756819640961693866629857285104440230085049214197182507903696436685267655564593272272469749607620101532423117192274551820198945747813109641477296575470424478674283728770716156860332472737832250132575919038347892008581715272245077674282109345621898061336755845904423596325038532271938832898015216020075806025428437708860575803722118289358979161383281454968334830395414573297790000164110608485612847345217242234941566113450495067018488308067178203430090500020264536801226237142609564592819453626318488037581173664905054970757924792284826220823761607904563830342211501236096270641892753195278993595040895779902087302446180194992251978057809531142611016232262333089060457673545075420916111433438657892530224206778251850359057991628339176253521672761687085528714007948781133612990169412040171743399051980094416483174079768835375752476421215432964380805426434644049221537370475546161009067979330418930573724107986052555026995589624405130652826852374402770210082252997578739028719422343616098479957040396740057206268507115483111483699260339914127107666369330827564744776677211256719743272098397576794378062245426963461876115204257674044639601012365508767660668702285095705663016133108946967279232191107119030707562852157652862760524893913934041757653784516860910805430781196097346125703964164266306437797195072163473249330223081843371604974185483418908293185715163362546137602237519939058651515883658068129214017382926529611640399484139455547940502842604863796034498116083130293662320093167047589187558142002791538112493902123957587461227180772257841210363407994757455504194480658698918559919733876324244425685055073867613158376289233108998255661842390507666814498819877202142546307115107071248944490631646583748461683476520856465051845901060823603242499252131375796463659390434804994300840649137271012005150025706382999120207116283509833360316319340695498152299553723807568643507184894767853940021386289183574999118106937314753518107660914408953682032516805061198392850045780621198663150628348673201838879331756052755865459052541831795246028626769723031560477098301091108754312431284260331346566618886536903938363067658329920073980787400589535269859619097487544175956759634493972223798625592884222187373045833695925358974017653840840239094258284574119793840106135690909813260516028020403050123713503579138946194944403797936064477263799965448764789613590487806516736892056981966472547816631704548823834680640391378118153937060735761091518292531757600000809741208382449021697239944652488852623708147038816206555720825239490343467043077086738674113265663533397901918528279357157182184609873307732582515827550223838609505143962797525708702483677308930135588305705276602690862445272857269576786021946730226497587641034323311200585671830610709966262086989396739420172238339853072367289119609436208088472435565368585069010588244108305350926491905977769963396042275226906729747291816308004356274480786844883566363996235740713122161235979783996295398466634295450157422187060752413109046511198189558396025946110466409141127509037172604136534295965268838845339134035172417347888270740297551938936981776517105840615274640551916768102496681921811055112696714055549433039398488630617880574147185440199414601942026244003317188373915823998935541407613620611133057136357880614311472246259066232998213988026637852077208381596279085729009267674620297675191288165459873455126194193374852551210362505772422487336648726921619361689308895071382075629645967749553703196405706599576418573224535429546525527561119931020443654731613903497807659720988630440735688894430211888892310940204894826551488708985748405209779621653084954940122113944876449284938728300060833377608642920541485811542132386517777120217793045531458560434378732858383362057715811674957157110586454409847975625631785680148516210453078132103676510738482641146917750168623638980887236120307178047203832315107528961231532541938269032718499450402431784028476229798760931265702466481655167403304794158113279304265716448071020470853142557918622131792377071131183802990176110262076949280931141280094797493525037501828965383407927428245965687656645304091327628106608747185237081677994291458205253729361029028662334971789118000558883249599047346316269704741049629748703599799389187255720337799465046042567116532874612152164062152945884376781290347855175690907003906834087230479595983311432165107959563872414230284330995773600967244470329593525010679824961906368214039163458152012208320099699883223704045414963733999678059833380763268842895338414839003608918553789668541975489095945538115998514585394288112341492438614609028593842071574502673867078636203403012739312749975796638903028093725685092693712982473404236455018962525570763622440860855336688150894159026735039304502393372698708280996488072098752816014750844522494991067149566623435850555922122959545896216526529236140647196596089224835959300838538280281096247837662135016389034094755209981640822030545198381810311797023205579807383128081509898496273368959173689076130391850789047595021935324358457805932814375861104848620372813710090617911336065813334314874907591653290346191911007351602268142686724570556420771958113687971903621263888933898172463864447285273526022378881191614189960285613966959190812160456650496528149479367264056305012094730881835287293453740023062199492432228739163518804922810876770780321131764024049469937949735050356250395187242485875702628898557995957066652673427201756588475293398031849253865249680495231730592656800842696340487806989390598808307116085296077287964600404570658130286468577042244006016402941895274476290608480521092566273683318569123020340895257385406816116589325624028664135216617701227595497189243890441120897044032414498672901033584097979488926564839379060557996904842180695317727229753296941218303444398242910524837358905553937983996121842953675917559031817891583121417375612461903306999400907467285875511325445078521425417003517255480589505060089682179927375678081718964108770965721467644903605052875962920344204713565834079195513243382243112156003740749300629339096421920932008495095961962814427224632179455082055169666787658916341975241798354069897269014612484661155158326337298701365619432570619681315525751430916822539086521897982923468397311376289963025745290344468652236306850294181854314964283389705945759924407822477894911126966299195114660822914724752050182551094752159984719187286459369388245434994116560683904941609036251137147639856990415199281476177491793947826315203253353781196026843468729944315584836466077876000071977019637970649483003175009666308657464318185360879296323161501917926064456705907091785748062338644805800620727410703714571099807665666005475912829978357478789158373246591676417147420914705406297393056021586925577335429654582122252400758281064058134569981180440191726716054875122469292847024730814652458269381048595548887360074896003488012235180247875990150926551286013647964165399869421652124586569642616142889611755920535497972581070266956316511381057051185678226854518028771782975493426469394884866194570017815516434058254909556001513763540460054242666222390105796792753969461602354510849878982875272409469402976457244502811623979951018830625279892478291862859057708060955901927635547170001410676993554625297352830152684050624813010934331612075736551130949357881464084364337487728561420427443093015797809151025870790859172609827167902246870597452084737685987444879741492976503508236743817796583599538525052637881776193876655884178963753817312650714107562769512044587482591858317820541495580459266940379856980546627680076139667167353165834473347576170389614552760123172193584869942688334354893920577829718391180503257791949913025779880152347045039508343401402104722812375077380709820534055309947099897003098273680311227608570065484971643617266395346258390952400462958503530012638611796839426942428892741927233306426320785071109253544474623766936001343625530271001453560200933879016492530746992806208782626505891042349950408229373469952605571496612110533563673420667951316149895191231025718688514431352125121667534391453775134744820925976082165990974953160026416288203246158073983865997511370564174753142572143778408873670526047686553092477894292515824499282063678374960285250179594424016655217951800128485293458340316863290063054051448662001896699845966615730559646171972893109750267627456982383358889700439601269561447676340979211321769757243815111801320614850903653499145215453998901650504171784535865666013401065457448847859775773281820740500034089164850252441230593402092368724692761297729990004539311031398960710819159082664465237216168952047582631903400186805703611189569205492901067882425703123207176514143213724559744068794381263391358921071576607466593497351685300400171944537167657110755496006722011385876811635929525332037244809937753282861787353575266658650951437510977341471163295701596684857283983735395162235431225113637476437682866972062035512097843256818678126671274130393335214094502593723283338028628748557193773153671818343257162417005557832407505079679241764803831745648352688581466997076070383647256447699520640667030259248449126955469035489327405459204345871050094139558946821239549129873715406489138005222692962191557714083241586452446432050520747558030350605103025404727455169362300488174184564820622667050514881326694270354327228594005189019670354770682535056808709460867766173335566675597102233507946359448558014780581467363676942471329060826252347673197822656812273874069977133587607399973849044703100670607161356066177261134184617086606503613662483965114077752408416437502430713401185884967115485152186116602325424939055357736661161389557399692289860411361294230665796327686178881739418933562598773412974177938960079876966153317686383998639888062274192824319820354917645893611025623559314985122585913103988220425350001192642693786577171374694045188133267417493569630515755172122038839240588713441626353387472170233764171052899091614347897622573593980935772900042600490788402877604607631939638909040470029136301755741195340131890292421714897845218457709930438906935673098344864331521399133213515141262631449045313933206618546678449662700001081076011971019570896990072296168629365765523284876805627148785025458189777699358021945124147065882057841904204850141909297229759067215648348825033293077678779931730968468809630906439132223649928484248146291295111479059725236250867662143373415063419837609845827798344283027566709863981608852038670125979625693997922155410331324291344508013295494252271060407614264077408766680745450798768689022475391279999347469486887569523889359880291931453042979132667154122061449425501886849332784734418952327846154380318380021651527460523454816120334842497967840922456375105715553638078318816505281327794885933836643209885576095692345894640338277642762136884054905907336781106272012449169776851062704755376575872449712390012954040563596842457276476668900707442705695874830940568568951941493637608584004508557075650517489635281746453701789088105630062347888460674044263594957518641989149878073848050823027562457702833273259737128754990369715108537028191056612158700040577877275220549283729645802858635199523894921915267119092567666555948675667474443187637987050755488982224155530745597192968265316432160387220959782524241291125200329459774104296277039696813945034524784018787901166899718342899331764518853939103001404669945189972542220124377295189950254869401953328726460744528502742662957685588027049948546354789831252257960113071774687104936453862861295526178678663754390667240977286067223884767959800661897448719479726658689465639596039202656070605335814298656222405682738966257712584890495416001350119279219017406074706887427440065783213142245134021875447975311479078547581138249922143172942509691334798352342563504786347353153585372013812741602907325061890471460221128960074428507472868710992169263998819808156944844576498096050692931711142250717862009588584748473031438881400390192071809421332409061028798064079721591379916134662546853524239354983823794337356940263938230287344739037298999125746147525241616942206358236077565690617342511195415019372298632235335541936565080112522171433670709297017627595130391989357601642966085899663313872218177851387552548316240479475578896538857360709860386781322394609766055594524730319491728629052046425187526514396355941346128660037827294521702503332574396823970836635207688365095816255030140070559198804598271383813313231176641945705803935363164670521260133192496886381871758988225399936269129473585760093546445138111015218887537757872400927168325325422740836816431870132369255701651257018006579875312908208193190219371224878413763466902002615739594929860158548609900185074398324484000665688679204846953953259024286413324584036718051573253497734404481059707280976140195105143109645813132952746246687276048910321002950407696272376398620962850063116225752052737109403083587139196124383021716646400964113885555483689619837598616384105913936633112019730559075424123810908129296287510682053286729906405902746486510515539837990927042763691455551205303550763799958418556016718586762614561921495496692068668634573522483066625625456714153378359563139557227423170171815694208457874190485103251589936916473686425462958050694652301179602918128740536323927515797389593227200750094229124327752104570360590603752023954752662020730765326185547212966277352270438530968217040095300418588051981252331409434560166165629187216796695361093355842206126099974731324132085026716446433177440729151137127350520813271544283893237108393585215709512002317471661045692185539342774284989360055555359465193770723463595228697851143417916536973365959448882592546997454081829254194488849905202953533933050464193802050033096647878509624893334061841849698315935125919105049476561537195018660051034060768032421484077316648639538815095630219952694722522576698441905771636612792661840405166699125850390876732511709995060175235651244018993378013156187064331977360779198688734435057777332652094492063993913800732130019522290174991826542392489643058095103158511372937143115892293585973423564441452552078916935498716612440203850588251165772212554121898470810245055441815939910742538398756554936993428790717902121081419439905690706944809666896140336461211374798385587572378999356607335333646888057023339549351796982087209746611705952314900473778191890246975055773537740781463456240464715083592027792745741803186337556132029260472296579944916130575374332780731846784259174056349482405332021763701005104477447666305605675821553315140123207659390206039358747107145850310530886696604240653388978170458936646549523403537489180126094902322796697092069274017213128307928446591553538397770617769000509590259468536619809747901710327465895831816870535588022796431837233920330507969484738424029627948673295365897429529181131462163479054971049976118748954948651629548215962229851529146095810566168022081767076137878005338972609460391988106458279295342852064090387002094634603087269349268727907494603554858946755708941700735656656110798937164399169014374054944358538355248934216859838557428173266889948397602909262687465895836599018965378779924431104991044921466284779812043891427016880113284205315255803743697852527822312458622546561588682503948202652611707409799964781650359405766371998510478876595831842453867902594394158860599308794973018497360486145012789354643511657558502983360280950759207351100052596517506802708795237434667603285685743964033248951976628993628677064627152620102837258005566140340849260911396539264567321980474509104490441234513928063548381921400966285270641383602015768637339943805683341862114546785093430588208995873139051772766994387911544854767105273854046584304309173861713131174593263778338302180103515396462449380557690345100873256326707810594008358642921744589983776684764015841953351938480545263238723406122409610159312167124837835386759461064662640392010467648237307482026845240465166634383633981247056439528037271007022108163873458049116035220898030849364262592179479180493513881457161776707540697301099419707613113664130088765170175072947406676861727947952948363080441433985053983382637143057477801537985726906309925791614856591347946422110663678180362589482538591851495122808438915457676162413138149002654969524613880963407391765155596688744547398604774361232997774903297527512875313930487221604943433822746039532581205087031061103685433034436203518553902184526764552530084049395931985783733180854189974971904022655278312875266999164543339166412212541353013636871851375530977844566681717190573847490318961022301742569692190580151089575881443421733467817697560363816592330938500386806455164555877367653265724404435731876551513045448390605753099317130361371335933162404966759145382900796114703176296343849818603566206299773405010991518722011360530166398906862480359091174864912470139464689268398996027120393091537698551372266609206273291779825258531759918248461143654791553486995477639531261308161537380393175059636154227486561047428887118631968641716173079491091045651921784876303604198990122213943382546984300606466178149745072374089393974503399091715881572729353626880924613531618904334111024921377682486335180958748737037892168764086745024168332883348784718867143932811111664185675744930833172323311447837045605527786875380127216039241006395722262610451792630764161579837915881900128546491742628605276194320666194016385400271940433513728126389869399654367686887836601822914181975781599947112712311778990513016583119879018146652010186357143744504237962496739806350443217458558702191250130025590067984806710870613673239382286377035740178733642793589403255776198745859685439882822733681792642237500092490767145210789088768850307245356866891523503739786469682248071722376994153318386334504204071972277484901624367593359640577667025162978253576779422796300199281259195190439319934263462415170163669326489621241925995947678800221168399158745816357100688609092795447524643352001222926100156878362382580907722331882859721140507179688699219020549910112872286573149768406587084792543843060828529512318378874120900435678279913814145222626252168185266139824933752612730801334182958792847454834215653403148247055299643890008601384916269181071159158466818140118053061153203749441309994363846406831374240197927525646559699994424749943940949180420348388508183780928381579249927676397652889198223238903572743002587914477845084742741679866448368250236165216614012106726098454406068426335588093798523935332834655424076184667855796251488239943769880793098635016568204123479338638023977553776302678380030801952352651751220980416742398351646539770157559349137990294077489901986486829801773647204451736214480344298066115675195181992302919285663874773763536272806552858073327633664469482960875478774556452212451964436498825349798009352172937769706150467242611320682688549477908419651453441416611545722710761529436305360082303400729725023002426141841066716634187721756355711632972690875848545292843574690114013785946759717444747558538783987474281103462556939768910586651407851783309548639790999628602703509624484252132709413572274815091938210987002837499061130649990343176503241473620293373364520860438278645701254730189382590603416050515944038986273315864084765964601445258574493861667874991369095217912004547525436631729825835361148104922240461052807882422500482036530012224667473833415870334940089839184483873914746594589422657785304106360973742536232183173747922970165177611694038595663733672006593904120302602013704946136150328923616048371379607375920649767892875871103920460850281189286096101524395164328085420948991536281331731089538723323612006537390589074662363155737017526550440901893842085097703280189510661914226825091494463338897636336786146613521828910888677475181582711828515493941579125214909793732051804686641591130416839632291120642506745969917179025187426109647523190959696155811351752606544199205955192654405186965851282135904415971308087063635926083005668856595769598081661871296217062138565298771756169075917682850283867920692351884794440568678585713906165492106630384527327564778730357845713138285636440545979932074757754628199925996438595435533434431001171506875791199353379185101715258321010022091458064992685877421894150842276709833518115211373295294911894447656952563261928657168249113009515651992336503130189122749260830434927467029280289068394205150904719009523917380973437363172980018851080155442292352681050625662172012575327258111723461568060264595066191978623747458127449577025501593523108225866825471599625735624698920961830015261380954796603338951787142759560522904747782920212452018941982632143985990557808564322395443835122241605521906510679479874272429446322334235817594825768089321552372571074620260829952978223012442334867659453425578647840251886209802760668198918219408904472431061701935580613121278026416626640738709058704615842647088048229880248131866954165814586389467937907202761396046573115858354375517940216764172892864134840406539566392633290391330156629814029057114406825951960894205952797163155001286856120974463563216121751362003971616762604425876624378208424511517434491183926174269683168787451139103114126161773727591340004382807004301861498065957516054395838987170972011948163817173672663026763370215431601924517883867921481716572171461421372946244079720242638357891146634464943967133618263314461539125243587180334896439267927858504853926136272009926601144360496871983275570181731964295082379288311804143438591522267285034831488647027055756536517947415714953591454096077959278271495401908735696934508098008153274170508543421490402749615171875797102578758851592422036099516723531880162743595144806091304758874492594500416430322333152676706069445681836513977596961155306545236492231679249724989120981854434487419966080568798817747690623451135608004484608138828567390060271013825874032853229791687687453896891337771978332956176273336788296477570509677888285646701750175720835717377231495938695421951465461158456908860918754804495812019704408004065386336535758788702522883166742901110477753121040605212981958165771994247562608153341835902915922660737638136584938729176507043806712378921653136584438683647469829281549743559208801419053862543879211630179237933286715949507962748930621494026315211679671936599459608132559486301126773455905975075790066731695173223656343930494013772670748851562106727634515800401608596746692562068904849911202015405312465646935820158937590996330075285144657619149435676990853666945720330901108755761163902664508330941721484008706259698152253728927286427854999203231711796527285396488799136383587105159005215626899675890691352404483113641907792703472707987959576856778212978921050360971600158350442945046454709531748106300545356124683117136834720693432328763939996837929512186592752137966945165435726573367754030176118108233266383373350049846233371042656678923095578099494132157305208831705442281624340986422545206522584314601681871488919289035464233898263252933028107361048387138376434387167425419479039838188364007165786854821839924253634892188969242877628706805519086876642615205157641695040732077812858998104091456355169875216256862694809097072557587578507002094995347349904079661702915255863637733995621123620630445621666001837671174217234341373321958262893336541530700692268157623274085740119629503757205476366526161292974065892339964554601448037686307272536944050309637619443744789774337331444153828766225474621553048232080337761226496436843243160613012722266609337509625851848750481701147011536292471538018792673072095128443400682859819093957888969773198052700434597605054813678078599479407572035558857548133247918310563815905734410206307682111013379119728810884956084034997834335805874643230603803095860975415215758481563498685923416795958700420425616472461965449841550560580228041832192839550909872080913265626263539782403002739086242664382823961296533457245080664881369254208768568619312975901404145421523095128072001446912165727426487710888542546170632186933208359370250918345939874684965466476638790332924841975368924514244527243901656185112663574323259475181827099079511958338898093151044130257991229600713317212319751225870442182850431435655953609399479924101497807660070800059092181163440869299602281237896660760929387470441259486122296269332681637568062494514937883029044305906505304058586982770359768791628291881074120438804341640652178864966589877076807470176558495131952791760296812025627846526712330567832571331921763719421373060622813595259826252285585759417578648769784824058478280970502591377348295882924148126549869861182101688463971062284021512448162263525927700942312917385481266839749236033362789105879656905396835174653234612453314163808561997341033640258761181717995176142419476635945294442871063926657558732984651929072664426591703644665366421383738650599240871721675913704213987734076186822067209278811724370196890821414162676693826734783257237033467461651253578449525113280551735819035131031859007726961678773927528110133242317144259029999642014909237610867890935339664308052657479035559706542162770244028447686188014400124780328058966139657335114205677521536688113300462884431666314524724588938164479865252474794477836221834835027766100382021423006671907743308603553109062710507380851934539811436919673178118283979214036686449310128526281130665081317654469576796368039268789924611174079799565522373329028801258001597104586916528999432287816076847851933393381274473993224818994107382311397946197572866643716354003350208124837555150609562540180973244217681282830475551913254627733329330607644157972772117277589574942298032607466637864602889760371925303393704805846803530888268508939787814854307171044262530826091419757061980706236323756580040240461768838786240349508966762049931942283288223778452172870407223524114359784478996009318424805164765160450907911238326400266738752980653885318761732060097037015378464696014157497951610981559163500322797775439527651126261912577536875785336498792370137409339341742713498989057858135505493246378514868983895332061557942926414842945501371051866747747842290571857492873146037355560301323194756848594356252312261962174336018698479144963066535632475254904006559663256244444800579096257407552082785580574233838969399730190791122770574065029894295731474385914353750961994173100395601008128744073375001413801760853987556454847852021269548595991072803903013953809909078495543764172438547229219154989348901391315187941533181259196121872173317040101115142031912045112545873782250899534655249988480238662293206079054327598960971282908525490429779236278206946042501465003091013717599446304865617687055447142943277136951485309211887097418747102866558912729938278563732408756760820010469911605497614326705118226705349454834010114927468891590719450147024649926108923019184916483790697038562477862867801576563734916066541775050219921609175335250277553080850443373957605970010041056348711329842147221669113012505519989192459508045670215195992719989469828142088899105468988666213250806113763329159596897383614421817379422268498494225853956094303999742571859707512827041714006314978234194354145598162941806531659980911868632403043504301399560561679908977357857791973230887497209200087695854951691641414823586996904162085390588337101736035003856540124824128080839238002802076235393211383304399214457748517079722549140748407406415935274233786803234782339896310105505441615339565467720598247244321773500502562937864415629965064472308382877528963847636698966820028494733875336684664718848524367049920445838522259944273555083922267525122321179615523704380636821823973019969049595433298512763625029227298009968992131362527730150039126888417130568233456444813848294417547823988083163146232949649953222531920854149218335269407993307356408137348931137540989992755129358043154587633022259235371556210465691414060661388771797812422191570755990580127097601832563202774953079005582265586212510151002834711215216072456415834462578482333533728624771485053300544418369407048041951532291612420166263045175277907117138180543011396084293998871605249775719970641708735154464548992341172354320078286390550631825391889681498147466889001050655314752553483018451308952064262332736822721977724630684348814094891260936343738840038635155738397896440650187950476239333430509898326624187466869639018769185623307107096268667214983998393048888331178909591359219282796433565658314731386116544713709567684143697448103362634242464474326964580451443197004772157253567172266716721996912031527720209926800485501052569883564822796837445054796964666403311529911577352089307198694706015894564920856182092716080096792158670282449968572040139845542592252131504022748789794854625055713523833936083571068179238650058352870708315346267308501013671681532501478625359014473729015908159681748423064691000852248723623715553936133811133153139060410377087549630037450501456616926850534916188892325912392284203959044697300089318773639396605792658133422491978112707977168642350430694578497968138805799947454323416322979973850609442016557763270564349881663766550638692314342881680375918843927351345599974991366192398804408024471624635779770596197151271317191001596594041488183462600232048676640949062377351715637492125908771647537293586621173683911197701646694203555948548959111981213037493798319549399017362834932849272599554293853348887342112356839258189571961952679728710894431000979380488702015142504403196727554237340806771560449372390728329282919598165641501742028272863790582948936628814942588484549074609620750932568552842823564652511123277460111500791666296499919914653447043046201074406927493417722063231410761970011799373011450526501129521589815233862446290662182287632739408234943637798640595606211122717452171334506354621152297344095345884946980478421981253036370917051129536152688563953192581571233590213550513541346098981756482201938249641295821619354502299158794696906980266285016534395654342676547161309205041299971106796560186968466441272042355228829772524041134165779921795278786516065682961371542502185477901218309875554575270547509914098978582904703801749504760029463324279518777375580255973047582461680080140400902488889252460256626275017139934519991070945514968732837368978288862617571195241519540836060430810433808303734783902356383111631477875178449014069903273921081655693210651915741737788021559130475244256176953986505867362599750182555343551675889984677846863257796398529683775562622956910743443014209640304968598386638148102070407707455088780808459105061429920212001813833114312703977123198748179360213135340711432119300805495385994875300023069888317641521431525936161194589416108941177577304169185586112815983321954768090584177426005836251056772576671429449274481547048175956709449722224376108339096977538715649926255442445417755314882354093743312049781585646408816480857676859344457431744752906339143538827220023992770194909650279064877674312576083368021811976240366538311739348480778284992567394331363237268783979757219873432736716678121658261232681196686407984554321196460286169932190096341207141174449383672418578870691266331902149880395821294720705404539539036644527905772232144740677559639432615641919457559059960156644061390037097073855768792257057794016295517334406947116963992038677507364889602900400682024635912995707504299261181112790861948419485583246749642388672913677206578287861895192138187474310900448527924452086261229656207263538178446442133020245982743342297303558114313701520758594989555753477140426239545545576634068754357517680534094867554629361852062581567920262920264255393870556842053521417087288211425076538931997250206370424813755058993463343308979763790832840638348670437771066545331812817903061293286643826199979492988746381432002841142921097430415887595848503447140196177521077152538005717944669355299268385842321619705419800566609987799833148417936233273750095205402660390232980829767714320786004942166606721248967335793791786094337351420896035873166174479712598383872851821822908450854755631953432193110025451566265650053307450876764011683495834135728225465048848852799109231484479205844145235152012435010599563587595511509205415974554593544461576581906962825894521511858429165282971992048943334253550551842505461813673930164773260040427805553638051805823656704438137796858306332550424185576017075363220979094817005629608683767702007819955353066463966524336206213052686421554089325353854233883707084334218108938149248939285690907388012020201021009047755099210167606067531594892234099042949768298232687793262417395560276696678827898724378235892538802393521513073866143519012109547486199846710054942066137299323436837957568526166439860974416372510624299221264646120977333616396765981828477921662778778907168235557400715463635679817521616503717780357478940910382253330962848533959099462575892533965852951481229453685242747893191392983100825542603661443885053806160103799588411607937328305460309400640840347986879999644980052730633065587331347239991819014069682120731977522292346383013040371773189469893561197601182803129052390106680978302373413752375302017859852879519234934708504257223971387359656063066010852812004441644960903965654171499526782447817360821556581433443285621231561668299094697637708528457646289274524220203973830509318439780036836194199808070203611477949965846552509482774986910390538170545409837977564306301845175746772969762499179874048905712574816568599344281301892898269421422830311484654352418102052490927283517392693057389659918641850627995780573185441766680175313424239470566726100945172253009550084291374880332203360586045736233029902671092361381297276746109236650531675650043815857019354066871448073286937937308979685972629453135929942932781055912969808180028139418672389099026864745971387255221444091990721437678581638137386004843224726319563708629109630886042323797794081761179735688123301053085536760379347334082777565509685637105265304206500914727646970014175743374876537847882058100241368404594075689076239560496996545208870181873687847880855925894638003993209882570231779535585105105252301131137623942557476533989036451212806015262079153225485856450479758515432360482762748640839875791940256489186368952796811948325790409867828384836674339421506522534557132232478458850180273418314629462710264966165732977120073469047252997815393568269796673949942812534895829417423304858452733134820288901436667849657687463589889649087617752585642710741328359811942125964358756609633770092450544885355290375598278400606096014957507473261681633855745958079940041668571276591427200284419380972924731468277128160678066239206887350714080507631310162552623611313970818071914610701984567246063527067294303797120624967160882324199924908864188893386323049820684658297102866297373288126503965410661079710766871975732015421922693924744796570877512482508353960896308847944246739727308398594680350792800512588409011460638168280700961495010507362763093192521000835821052861094054747080120640566919208026454640589267582286348126545672044419690587756730487888521986609305439397815330781500937760521987855772112619497925012321799747220801687694383096031001640995706135178503051096476595946988282451940332855126982767444652408492367843271386830063858764438387911887692767473908154973182725793883218343499899979425168244777356584093278214413052856664013386776863293718038800933587409752208821708623507018706245829811434795991700128538298127869833683400205635402385192287926411455626796989064058792371371989097719841950902241839093690773854495459983900943464794535033282223994320387544697022286440753020451269512403626799307916473792329049990391081170969291759246475451250398549127274638942191326459264054982061716485664155559945270023523144975133860574762766582433502235683656950249569236212368446281892739195969295741354057121337176693418456289173239215913653766290680111178534293584713562997072433927470403989813075168572849828954155383787315328053602857019677282504143935316458647806869416386896885146262001066480133778481905032522065750221899079055518961436201661506058729240824155635664364659910147993153918182882594072456418130651350086036627476619867149026092523402325585187038249158299530596060403300063980127853078075209671318543703711739469223553473518464562256825032930095412190042701804569744004389034098168455500419334857664276272247478767503455848030795047473446016303609970016320480068828116979890258315127546713166691574721160736063355762261151880293114369392808359913102345292821294575965202080540322602982799102721416931058252541142423119188674737107258792511473363493280213151489712650388822060022575519093769770712663552647422218338308313216861160812583548241947230586796389572635736902112321411239059298558726242282175362966808412435718447837757194102746194570766596471678602709825104589923938987772372643897139345842766960037530836648598741147771512139328934700342440049739250653074742734335581284302203687370993420658571296187219465103328291366771194477674430376544221727858012680747183346180570820642982019854599910570993763562249860026032596645322237223318163526209791214405673177583041010619964368018254248815957642066789167002507374463577620800328925858454419062667050889424338068342921267897506914801478170401865775842113048280302313441850249480929834767677057287123370025432512686565518450388608134343774638619365601220976241277164350627286611336745273042271417245561500658470131865537177363311677122944418974660490901618637339241310515628347755745801829187320876274811559319362385116575141897038427163150139063087539856699109401489820224748792328996624379205776187331708417077412373188665229110857152448686906177296100667592427826924903703577028060269275002344987283995339879395982527983666631298365314388293715371383838784174474303101326012527663184778640047025475204234983143185365566955408792487067168375657574412068228402842154643744202135959536132690370299255648704323905794086801991958211780490387712655858784921800039721876310631108158567966024281274295615243474820804108327869110535365960050827168380951649725563666603652761345410828356980520427404065478831382547081130708636223348826033669100789531700106573814268149040881476191533107559913992209873640865474077331931218856863119559672937826641506451053603219716196392579236665093829868911805186232686404031617798480587678358359524367203721195624112615484060948506969838994850779003288042997204079529186257300603843598830003313786793234066462551770031815492059101237968256960905909319076533711570404310914281382314656414179453041595762102765212067801188576832860824087006286517777036788484371412852166302699706721037371993387909799138891363690930552328309535667632468853993859757116674089811241321958346534287095709152136333303862862656212080013800177732716528659916578028094166813764955579783992789874811159551599721396866628846430239997743363307349055229323190322988433434497156371169646429265746135972349443532269007648049401321566964442058616187386237506810058591392793733011738332883839714389514319478763939195810333787073300371551445774325457861718474662304077671803553837904057125111764060717041343449885040575377965356689978435979636231654665744980069911851986559743998169269764500259861767411188722321740100963956076806108443912608767974265841722100171044377860689239912643510404548243506899279836881876336234560003937141673603748826192749900570012279017054412659331127401067916702882715063929245460097465812317283159659443327637220496473674650105384647270845927528101502701276434382428317454115309878686406529465718592392357622923023271402693967548087828314071584544599172963559078396910828156728027905887758874396059944151413267620706977416873007818448330742680938101245666918691579482105334821618738068795984051736422452170470021871181771535283401491710012929037834272231735923033849967914525190012672256395976864653451754698564904165892270078801860143756801368851474662521059848323041489373318347106876625096364149899635898122114711743588260282540807794760501467354349064621284258861616801627805450712225343664602778493075143584763992984484155500951549570819531419369285039242383025071943214839370204587674893977820219541352916555630436451872778024558558963428789176351134552400399984290405876289205628719058592223432030332350798537490191464539020419617488129866840415032123711681656876938204996717090120489363325826632582214308827368739491031658279008726684554212523409116518368167762007265851894312746674171660324022806843773364508413216546561744135992721115008469818709143023722068183000553335368725353411320677235538306350956690834427162063172710835671776608142931969565938733809738936382369080393662916425246625295364800634023287016126001714662646381115761483131232207563386169197184705088658482666318390595727497568148661130783703463749841544338709266693944108252206475357554787785635444593572449117754988970750923997285956239363386607759724201900142072934648480610843022266040062950564520164167040777348933030479310780544639644998169006790995213590144809177703340160305880037853384116124668558606383707007715423977688109232176755008325976313927029266672671160287807076365084845515210598776083408639160230147425298900542446191836244461264433956376293770642547495833291513617495223522930741527702828843419672351659927521108941846509151274167213461358232943461213656490406480774740541481216196255570177704848612447912482172225018311976784492326846994886176249556366284395863844260906673048964026368512936078116937587545182847720982575930500824665434702939021002682311984422530214455740978775731857419388124313134528193564392090396564282811279555201437500106134833025497402975116138167691759904841109409935031131820536738005012968295539665799961770455537615856485566058687045294928288571773956032342914975389044564473332754507428452165099586314674672551141566546824128255558907155217148362087429268718297778864247071416057633905400207649802054832353778282794952658591583429152770670721820719560112071807276605214527371173903296691586846600059472637347850688168893133876069210540043692803656865204598334709918262711910548211619609720378629035305818685665819559674281787221075977883013829637936313088652864720101361122597160561523146314882210763241007589942624527679031460123814270675464390464093869487175680197461723327074764119759874450646022669277844298669300925076697127346854033380879181433285232051345138769860594625070592041978412581816219583137465194939702140567198038955856490581286564828929058046739993842273911457776210693029785900803244913111443340800083513742767859045762752707077089169385689810542793060798033577230580230857760424450477101223345183271421864202233376620640347531749907220912408186502615301922806500315167607102143026917150614405959973460925298019403422971507801729274105990652003112609560575950102076715390681693681045349133271476280779446750053397834284476959086969138302722124091719504925380155255318610413107320309585085901243838254798171166099378756005093232451571872638489038065619465155692817110671542850964654762540914641449226158209417732440471634420272136294888939389673853136077177634832482080401426224112670993496610585128900672848436576870649275347177373271263575466397769433572398553494202331464711657743474811902459790810634188610458441618143552357177020956401360900980914653613420178890009533114787152562253891843337543476578565756908143299233017528646685391229988912909215220343561065001685677002961543446662327780461452053842556127375457418533435536331438259191289732704696477768521013319889159853145304921922026059241041413605675070496304862102007406913478527597599134671059676416192783185963438583344468516462871749294512181421347547995098033547061508973528668850878654081441347641077191861759932237873840473307694015378639912026307372134435561181317737062273958573142267166549803191622993263815582747371088630256619590931345120329500457693151948222294581101504285610352372243171039995965604200242965974149185726183195230066302100294003434871614952068031508080134243948687502811013505581016320332122980996415309324169213790993253720456411190878216251689573766359521388015380844461924937363384709417170595001875098589414099852408333279116638555636909132007525004375357621682774218756539929817994113539410095822381692074225379663159327164785209092895548512766516901700590071406534279229288155087656962182350030870727158835615203727330488556834086109955429635030899111684275636194130417377682196166314240919250975782309553987643007678156601107063237493567837576074827606033432999567764037699008229702055868654567810004311231807648485915567717285235908059338238804603712858244622445306665171269498372505537844966642317181662186846121809965933151762998501411941187388142922518397007601090916530358619880828518839061997069987468659604805258569075062345240889239438616122274655758653872379444303286504688749772875011076022728829297659355465545266645167987931622195523341556296701278283161246098014169305749208392103665999540923420534081715972415146167169253422760180628082828169110027029188662976407128728600856587810182828377856854881110249913564988877316320059875508038665657740449380216888559389998802232928987088105906960293972732755351407451090254700701798716420080440020069727798854891517161465768770258064628846604021090022675500004984724901594271704650168185496512648901338590159851885615937314364842288534768079140896829430957724484180789830065928846699031215277733830141121528691614724084791048861706770489867651189943921094527726412367214212572756915716228922295212633781502471799541819809417818944986682017248746497950813927227690827513747024389963000023120816050314817475506683797546874548104851445946382147842831483563831638753927796472695362129336838133476343033924342290799155016035893443040786263127335446864557862741273583108232220788918604208836792154362154702567765155427499455429430196958163415758819478188345672242724614521560760621129372789743311416178117777486987996575174879858767541296951112426560617908452430330253332444500721460011581572377012307688860528989853118627329822897336415637899419848891975020585748959291780335260021938771642991823422236925283574715581023630317404809580552430778707255122672535874958661733242904601235520944720654870282503350761741007324915995657158983442474552685992785706469731319105008678714116212233053608752026257900650562092199079329160219006006685078215220346633407991463358829994101142468519848298568860586954029769116096894057550006679413528160478090885083580268667309433234027764145802499809848923065945866688185086055610134243522131364662697199312862166407785312949248198231641946838950901137661808287632945625375806761482666644580088007961533425040617574132881693526565156102082354859137381234195238876719557614110574087287070652105222028303303066451456230359579081787876917034886375103990248502629210948758779873920014235223101029009513255123483352509783580063136160666219196792230865409551991936625908622393404190870045983299507140542832311811231218032200530004886376148561453472530150504933050963406642379605991559385295875339980885449784071484148369564315257953847341320990539788777318334627888661878149400290679668209280741578893558616739249465167630513823171113288629258700700842992944155156875993667696082368948761562728170815229059291971607338700579224022023863794269640850184992175261538804622857925282004967494692830096189520921192811600982708096750921639083694226099968069854754515500589525918194824520302612436720692336512534956649034270521374382996039568142081067583973163074861972825443328613811300005063429558244504040071598589157346893890951182269799257669448460548972985730987465164960979728762191175541349659858580654650555410798903069594376343503010766465043112173964500863347574341591986443952206984116418686412848321651342468364283010673560387008332003102219350422029546040313825523376383199560830623511527713204312308231355884164571653004001315981067457772080350921165557801700760898943629774228432759799798954719274870450898336517988421117830491776475072086074505094625484728405136202957968114511868453079375327220152742761587619108718015882465682423439751640536870579154977421165530184876686179685052979942073913326014327617213119827084795879322550416992397215272330087437144768343817711342136472002836952244118984343755987268789934788115985223085485984288152519122165516942986969312697202160680476713531988302765570525343340275457260846673347643933659161387961775049423205172192476558671706338366514456679755680787767589882557296684205027829882306642855263056872862596204672379272219410007673433957667601275272154666912275415955706237774473806487640852735667649367144388800351627455755263008655495633609373853125810712587583110090522614681205979176598778842592210358692670932985431436897863421089894336580769113672566077806417796833567768787652173872692316330563256440223610777172574208902896510750480246681219319548546140921310516153092500242981373037609300382489569889479010053833493784414355656166861570142560608200622208952230003805004837981829403805137933335924130794569215566520021929225747019899934594233383665104033715481689823203612464049530885573701371586147203319815340849676365731132236150468428803050614357320120944223767872537791163763737544154480802942187484420866613663363197257913683405134632146092093094340076126838307209950627532320486535792736507110230775452706044003561752754936975863859664063758214949379299192080408658732622128000779277820117013978171341921869771514876433699461825178491359973731852151008849380656732602729364835430883363893021662944823970717517117366352130270888373787000004061920697998595144692286408728026366438781887427613055027048419400103623566238194506385335937211826697385785333439719280361627767328181059908903139779456187418170699363090092538689336480736820945550746834030033663515610996401324982005460773445699788447782041897700823616605374494457583915875742558638282605836698730029385324023087697150292377663410179276215830806371782090279982456907831204387837236710761391383216412486847753499579368580538764934640541319163707003295640922973130682618623859098661713862708899048575833868990102646377023509475470236627966790714218784351141056642867863622884269662746787196709166086633363189516734217394096033322371856512221142513994633870819225691065362204329984145051040898603506510969434826314794276625220627757307795893796193995363673135135738897469379582282599285716041433328568836508086230668858453998158398290088113658235107107880272722371508536976568311401629454284127614327967970924730328683751491912102663032816363348917636092614687466017580710820031300739447509748750444368413650186178427581391246510526329416896056341407854493534717492770829225883498721816172938991026458854653605719263627409322111919760106954897539725043471943677876510980475366628100047124540999254752592101069673563089331944933197370933878798201881353884686453993462455015312194258152393509324318371962441982974459093937590986555861329085635127618898447441802811068344431662512033147244828810954178376912786789863042219199541880118320117140646308460957830978128503310052045768875067113671389588200722977522793344261407430689629777677730757200470680429557057984503091114905591558328903635546218505858209813783769026759140341596031357965341961788327598080794637107672848793803569521905391206911748056663247412402654905806385048097555267399049133317522984374320783691871698455300607432984592048515694115192604989202848408985287999325277798601413753170182600120630401477504953998840789664914248072153423227747894430058591937423144313425834310964339074933861952321352261447121702899238010861852244787448051127532358677556694804405030993866332402315373038000588626645429063361222974301541812324933414358660823542399653504668725524290923518723495983943072926041665129580559754580010828021337707395609716346950705548471690227095877216493528816847278273760732544914183173340981555422185400753121442126700538847853683120869862934801238943572878235002566038978691703562806915236747610401662458918396134619742134686299834078219128047178995932179753186658121737022365562150341161532816215047282403977933142046679719634380001260803590524902033450648550781268232692733241516841982759801038644426722562629087969247242686213579612785680037137618138141444481722911509199493717693835936593723709235988124093113894871205329476291971891899458478077015661329869297531569395446537416471607755656742637739581617280491968570280912917900455435116086789117931260341500652868833805105439421847154892341839087882383119283987477269104383738011865097461560446728563040971391646485588002901127705580393393242611908571497664757811812187113948564598759118514067997396057949401682674041568505587464113423260837074456106191421236161981903826641495253666680497755054409042297916546743087546521962417903567184969236973886147261978485804862099888172138092389764882517653894736881304380866048380326680504349999558137689340001543863446550074025869913852960387297496286193334757547732179250692393377582639826276780868822832580101042832241559988966014379036938327411955155160211440453283319670176523045097784465238401080998378437232679415926750498750801839822753690605472786341223081588700420800367867341374735561237695956227277098687338758905727652136458627797875840834570039438718838791075451109486440030503173161649794848812964484217924827325170103966539573705030255244671313538458882951621746945060129553182664805476348132505233570943764521883082181672549194209558595127454440272190104947420381968929506482833327638383773523043686476843701195358559933980133552261390324054822827646827492455660513074714591481559042283707673811620852626430774364660850257841623636273771782929574958757421750883317558659777876186141651756834666820948377510637984719980163512861775745597178945855686255655421377793177919533709519046399692355752199664728407525718677725629263801696067240095645864974620178123500436204061196388747581378281458247724403103787466063005127779461899829508735449573134181736361820475972392729368491936108317381709252256767941303011707458121129871253548138010127515150498834813032246922169315763906834567061006233067959599229183231366969939824571019432319755982097511553301585280823245084606041180460497768924391476899071758448943459153915067422695309710199379569071151120094948259399544705906198807523132438582460312274651383315179820406518621792497238477785399584102273738608438613833212527498257240980209576323406251954971062021005595495239060293128652143889852070175796519413301839500520464381527419159378940825207964598589950825457723715695633508593506394416941611739671581064734159095569462233369198043465620897646325289228827843339685577050883934446329707312330954041777742295588080082342820948784880838678356804109676221823573714671655051654769417178739404951598790484175126755518869673250139078279403279816913923173317922522952276847894313846643922663592066463933483806600856728208756519288801095780094026205124048057004218609163851806307263790352926032943031226091033601688849816921434988233729721400887222651201899843413934492330083686286757379072842871227076277194529122973978797365352023011372804465062606183715660832565915038840016078463469874761016135453050417074781029924132899819721066781779594165746902879360079111112293732304468759407196122477452285970144014017688703598768834735686239056161213699227744787687250954183486968640573802947674182443393203661387616262510082332065669793014057017643382933935693851385408026857792143496456326634913419615764523831082297569776184752840868004782411458973070415598238803023964598792296070282066360288524216049932474802829581197145188550493793615401725585230271438218319014143020090322254720385834209553150920994010893682745971860692721494913576332996837493659918109521007812241193187877727486609234064465085358822837721651991214776983378785883331147778873859264074110404282394680976470574571737932503477961313163590867269040183724126471608819053225234060628719995428958371263294597014727833032373923350995590052745316582886405501300764637449778506794175005202957838622929757080800326158673980049305291843088359888507432753841557459591634654475995723851471221466384302845756046372080108653463924936916567209826909272659416745405287988604007324579434592047876135325284165361230747885858568198489900147156446300720808310177575314473516832309358020304326003971720921346609909660827563415982484965213012286092151503930562479591755786466039865442653220116574704550300520507844485923912799366692936489825006512765606570190676190001083108670128330829450764806883356080130614867081268435324185117713555585056366922400571578084286830305482218530995483856053746967424747495613982337399979119190189281093264194688164175501024766334029548075470184960496072052731913834282133847368577834467531001353092950276507867139439283279594652775313160571625697792373622069653169450401044477405213920998449914018057332573462594372548600056827190241332105662551608274228160318488898995954206782946617504717178107597964509622732032609015791425171063509387223812344092408987499570439051124390190911771728971973241362258579079800495559979509537650733020406196041447136366500705550199230615857905750951909182745565306938845883600923762007706018237736005902918988392552470258780813840676518855124999025124823750790808247660431209099428974283365042408651332441549078849313064171614108928896734910616893222620615277511597692469697723380328200248917089513925902462536655639692909732661824738325100932314033273128543677893712179763346966388769169830098390143958460315428536749579362755103102407211597089969967034519764378171133258531758707976339699742278465749054820379795991148612194705661726525430370192832474887216715472058607141755408974151357950337732410391053160187516313234506333216318283749118272331704767243219619361137864603209200532736747659886170041256151146905696607592692312652947431401236318685719122230509103249880913115767810787155839463028817948535955225017640458377546375082265300515530934235379650254808845846196056432899606234676667343732481943877773821660693346310562123166350791620941436152511638994246872799226626175697417292748283875583076019108023156207572874204163729325359104643767918791442132550775970944819539436863807801877788604917555689228960714828519265471441221977923572405016672765167424656677651035978425489622456214540045615478980808190872984358912393001109389585709117788551325775631792027754728854860114929429199389436357165777026964222623604330747520595967696504602261851131565240756717021017855781286164420546018435978781828730446658961867760677086907848266779860250347010307691557895023028236466176387121924068952426980396439526713509808504198992225052021928668087755015824259224334650316054925680882884499118158475931643355417878111535530654459941221411810225375642358848670765671462524561108227743263232559388249926508397925271891911268984230909887925349654742261693989039438054901207176694844687489174664074634306944530849851755706859096644994654628824689736089626339726445125106853857289453764589992528270390523709441716399759089019050504364225899312811249756682735229758826166276155100784848531434874229154927938497744273084093034718218948862210918585597299321832201675406176327916248030836051880709536616248916284499723503440529990818346782662378743561310447625002622942429871836249340562953239648448591346615840496771538498837525804800744624204350657797623456621560490731827929029590059459283024805204693712916229813202176154411557740674780594549493643776736178068347594871527391766037086262108770869069202074456271413445049364010959858108523381723534432823876309346221872894355578395400435783250692695688114326203814883261391079436131542560224871335193184925764406345838214467478698636729661311142670766878121772818834671103546596364806865821020015309203971897788195286326084049901737236300928770223737581738175476663528446839897330362203375036342885541927614748377286889636852541952568920598236192344893208376104633644924098391167270764797427940209051972880712916040889874372813157413641058190278900409062600392146513397948882562497729651083637769181742181851670784374831482469010363387443028409062592046749160029577355268811570087438835804751455852405315365558787354064248014215561566324929359043709067751000492300067882727670489751034497486684789885177217006879209730467129561657202713998961034676926125048507257029296330857676907573088876794770164565241179171867369416204459222361603035514932683941323591097002807243793875156205058510465126356604111977410010218678291513050145032957209186067410584519650368036481402055761254954657810981771206779777759982676705114959678453156223650559423165278428651479556439264864902114273311925462433703890749325036029784124889206657531943547986476580936439415279637508474109148110183892148582473512012750715416110716962815425588661454020377282943777579363149397959588223308700954530792147426425886672298671270692586235732102251023800171075084604097972662610349631364084890883596787767869348082791099188553612790075428842598463241604884073526032794115351262195637614056833210281745689159945518884504419169234110221274539838976248328798133953144452794821444794663246136908272626295505169772593893399142691823622910047410926734811486965347519042015545865309523843807320476259534682826266306032799030325002689588956678046981972095130271254811760918636387147816791376467158268794719399418694647920158708646491544381744299447929789742700837521320167905901345780266797535863484414798677208506906507634445091109709615776452276190414233026325523476744300128197879286443210555675948865906562866359427393143941695981943924476902498562847917104185926020575607561070206224631565646793840115707278657574095915405051097886887073197742079950210179885487217666329446644224475206056408956893792573625319953377407017204678278928968920678968218765587847959138447923851861508710959270837195389445391523092291892369724732084857340603947455989658850275566988642247807667886070411401201154330623580493801755452679329334292447196123654153336265682439662989662454713842617754869833059133407898713248278898547166953031007902516848037910540313493073894419793729087600350101371764585498899927833571256151299243040078779389617455834963809556590306536844792656413689517964413772269102799896915278523605869527390439904698404217264226737962281045301920054648643624313411768163476599118588750045258854267038046204976118021893062344062619987342287889350042631570862699176172246293162816751710904673627431440263960519034420098264794490508608587567216643300754473149528604936690453255794281848379601989436376143002396436965746847988692388763642626938332535491446446208232773551894419820658888429181815860328494073742280470841309494028990283875553690256946718278494079014955334093559550851997858108432653592044207692416642008462760279626770070720748057361413217227217246137972012650329479308865220507455830737148504996726085102844452916890298560339302823096031412701512395975538537012194992023488037727167851955809128007640194717801176484675227449421932404480549677966125711554449662512886827522821314050344596684303215439219926838893198756408099662963879799404016740073952300177426154599866077084955499640094886517276890475784621678716163645090696970693265667015402126931841999793356777553051766161914470093222345518787246482901179963928155952588034324864397416697810754745438425928940930203800637045103859038433507230909639997505940467179453544755532852754240889785648014912828107809813846457797841375647897898853763568133842126564871687693088514264245713836153828505185224795585246788235335870793034858089554388567186598864744707702576020609216121036744294129233316139440216620164765230739054339053659502236443094961038588451991289396419656893796285814311186425834631994806887269790456812054421692185350779567353158032916014652861205136748935402133502375573972774394815343644536088556863734727607796127465176958966908917690031399878813233995286462977229500242866239692295379147325763065791099000337142544467608413463597529845127430559812616734784306550349045684231115420079887087637550780641218380221747962292796680220249040401878338905931126665085104110742957462024507770834331338074019194486263376390075065084298223619384779308303528108056687494968689493566588535261613775869970363733227545850302083494724434342373608534411214354170253053834282317832517195582471505860727942024778801809331616654972069004885839251306259709606990031573202377557444522509566417549260421955917361077795642478062653228789136773911090858543940962832011872302336162851892857793666924995960158302341047737716993309472495380583600006613126051603771822919159273350278903257509960555578722289535867705813341959648261358668354837836835709071839861713958393286737356078734155156066859647683443672886816342652647043270818673439480651680724484484668222958393306055406656214454066282465515964196267305335563971565291814075265599746894796479038661773805745922817337220660331104113002252430065551982235602762703320040971906044275006691102232463116869184397313006510751644754003410161287092443621678361873545586052185891469786352753899297369391124981509410310573269831258060136618759884073841401712259337375768532093886321430978071623997891039428404394245856995555815668440991723432155970569952275890999718821984562995870083481597737961149140528590747737948858004150945469026204028296316070317171222221213245032731723325468979373953153034875132150125208433843055396034265255203642170209543880700950386695292926753884998032297491296783366006136741334648283812139637743157726394537009746099643659802860428447192413029492137269742678713888063640908739077309493798454679537714054892877527863398583922351625683967188316221403602393074487739458916889828547360062017103076108328165955820097750014728200357122141124588624272799929871976789219739267938431691093936527495995196951052964478886513838124543204834897258115714408670126486847916207652898784021938616611844416535325195264417592794862362009405590418236546678187194664069517114705412642901511941979469562190460460431351937415538956650814201225331573157453966646949799659198318807666382255738561110812550076862550254359243761833939524834121781102589439895374769261252797265551218340006591690761581305203140112529351631576252592666249690274883112991136973658940511260926727887726161348170891744253777769373589572358215108139936465453330366869705799740846463407352771370317193195915451943926110844414480764452180579109649715704768564886412336831314905871347784951527479979262370027222921474008788746587706669394100268337929202687268183739159202818488822309073267325979650969611325380811258843798321100566237174425440862939749015841870490961054705389990754641462476287235607708306679537008734497075651422541755521149963579709363044773915324095724988881567802933019911425332407773704055895879533885117829594365510482663430061649575259324924161431792638666643016896922610558810678007308634667694650493741244769369821861075298067936016922563493830556654253546388594304330323732260632605757918897990979236475916044351024455472273077432260235476300281451847520249058121495936861014960198309075105503536083958244255141387425517399368728344878404677494816121077108936632886471035552688583367899024247979832595327964803253934306121163695796886902321051434622518281801434160435686046189654720482402788169403743407976409779732811832081777454832787588450297928064743964026779612216627757422958485674214965824532027816353988420102572452360474454203145917907421303663428033284256775428346274254841335147398709821829246881959189179081702640626670858961797355949007805724275100767488447085597727478576295351437639218227240371476376822440046014084993478299843630938560896619969929600500242685629447930303063240974752419462784958949071777844422361654033105580968034312971886251873581277496676274762112037153028655383519099157005146027298115824162164856425318522936204897463057137854901958490843632211592156003949081139026465074986256952861080835485981394856545883650721850684161334236410272573245430986863909754500939143136652413736481389937757883861906329100434446789422557194431732584070032698365697074192082106204353127138265675941788030282421762511426412877492494948220226828480643777123105403401760496287075931825152493727155330447628190721924019425068911352727184241348441918872177932524827391790346461488533353964657668684587387092048229065361294466380748864213035458514744937454676353125669083167473206551301010995142288262144388247539279599824987341137083037034038776394842089311419983848969410344075559349205197042292883302721385904414230315070000884807571966379381630888805361706766723099555467447884392749989236564356887968523167518273750440738937345332636142103118201630792302215364452134959309380029428462447668451036134582090550344146138200440664152078026055945130463639676246867564786984690133491666032365681996423442517338832892435798128964283921187080717357352609294903556568410453412563983771394976634605367954015883790758732096006850906005879710457325238604039607565076590226211811330628296849176931364476789457765302445182604890781809672956904261402087875836844006956186267373936526755172412128719101745540702907091717075316754430940441328672589872406668564347954263772573923274389652174860628627078162006491726073055092972002576467547463226708090663424094193154149281490247151139765497853596644546381708594933994960483996572822102467753765470211684385878615217732125147820091854047895361480313325006432319437996717761820794735256306210202830018845187811546672509511368630167127645667862731046541318526310138349158169517579819634440606318532269401600462741939414344891615137863257658132339689409821338149393291981061486879311540350227873001664841125572773152129765746273648753363572832586372892833208728162907400523472704027877415681619582394314728973620967006159612796706691383843488550210676550913171187282896275060763283207099206791403595393150566461946990480586202866902553478041002222150440500904148845548998873470987924836035639767641835736516608156576489964259690389575097272688576171872081426298869556167057612190793897475518696084444471420009568543154870690055390588368113853034534874146640220296759626245447541758866753911387865096090846786907278045808145410392635711301448145006758401527133418963064033477358395265664351733020724991851801134381488690335224938093587611657953335834590015510322267077628815164020164916406392101711780080974534354091436623613128107919367790386602135538172888939368077597196616591176112454824745324871278422892650075209434716365575817497140492259792316049870015426392123170576926021458772412761408915306822457681686759106635860419511906640346524924007219898747870034498377266425546214003765365599596407402694801306226912084408285901634883438207322477352576541523700528454792006533642059228788089109052903461898217206735812539835745860425441508590458869098536615520126544043754927701206250617906415911275976745608250455024117342990520069445833770142262989323823016610095813767810740262099669860878180954299663459347351929310250067756584671898454240518097709594539543191970265421265524465719292092510563417999837683502171535354961817635033071114333110943332298141712362072142990868885046873480717968354720999368373702763952592077295697497270139253057059237778724733202679842802448422788607850802694555637973606135315052673030224174054308035505620526484684927031404595138871106101510321704160931449751257596251735211896544815371506330814527981862341366837857030772720630933265508018050396912836794292050809462992189567490062482167382999309172592881399199908807003542525239689816437890206840247907287352046385585747990000185981514788195406077387061741393526021479454532307744227345910281788085355953462417689668012283058081683409942765215945723180484767762706235542561984904989899690947788722040714315527559256378075060733829615909553944111525505093768449585670958986373871147376010386315742800157250871921946940828714084267143677617193648825800379853828409568853617272050221088503473809017469758373259276199801378522236552246749066517334498006589374812876754912077725106985429390285723688276720475451990707791459279084024452721447633575230323637271749145555475942707739129615543052449523927979399400293964794218494235168448790870890658410307095901456362496893657785399003355903751157422877624020699573645827369431514612334711923743995329862700951539247098811106654954620307935282698689904267789113881867166947934800425698507176561090698474138061062717498189814507478212125063948877302359210659969619202285575128019219298944436802406951234910776717353213317547193578759623135292012650987337005659631869602083411515818764570303393194498425839215867708755887836234919503113494330291099954547403329080642519037888142457965804434309608468011838467232671630163608893813641142276204084169217900581559387036898059431403524170531970170954884152947808595928698944901190077747720494479534299457463428024709403722184789791774189635663013300290189178241665555560380632131294328677318834675247477472628314600614499878808416093569244948036667734590366288941560896431459837590709389797290325597060578274165073714674153250608992860037530863507789411648898050028917456498762779517544662315422079737260608062518325412113560385762788176097038642176295380834986121181721903934568880024729589710387893688419597324697156647455540739973437760512798585739456733060532616744459366607108565017956726705376441659647541113926286115096981123783504931304109184993723993949632248314023425795111904592480331941281080121183406518290697004425640067986326127862897434440139289187654470933712557604701490055422734483621861314594182999765269480840292250778449176527593349604022956294440850878886662950318368073812056024075083738193719275030043587652068548659077749069878441568577743127479851755243293423668900867318096050869937105649946688135120332842741557606243953220567779322797338765831012509078398640391814228971784466327509363979180862930872110623887630288065694972915245058570818257367515873133801584097018606401991877734321829790978806115022007834084577247172321351866074994973172460390673848296359482625240554672277596619732595744772368343325506735630215176283969920116899337428141046540317295916202485764492803194449828721825370347482245613652123379487321235336969120602799277764857227766303099477623969774037894489313799676353389412324832271139393888277814583285427101247977409723796970931488588711714442278570560353969915294572253016638872819243004741318826540322969246418882086666227308214699860877514883769203939313353950904991975241112724383983870911909772810873210299667226540860259725524910008697329281267196568697920176077429441767689600056614774175342072923605065363688819000692529385497492411211237492988067315587777076126972238418343177162275064711897444007238539542663083090187820421044567676925968210590333932161486765186644274319778468284065455033537960614941188422744209497079000122205610069557197042245206483648594333600595668100231471865484042986207654412369018131822025676113099065958614886458397129404905355119825827648515702490823610304677103521183114702576960268237264189080791794800789498494859357023133590609814991697062254451162948297792499832436493569634982515088345367927033369737586882818276659180038896687712164864396600659083459612485954883271054750543205132143950021019225169033676764715406418528101275025058826502139203624548387204563758147834635477555903734907579206674966882602150304123876554116709717574171590871150235285175719006549943394210574313807744462372039144209618899883878079288234194722406490030181260445849334098337891249480056596929447271661071339727453100918756187969805287363687600880647058554906515415785730320703782894050218900550741678213779787169050490476035475968870419353590492525670014794595910838647331779857440264750291613839649811727088378060120585472786732290261461429362880361304641648813376023622342354171997567529890137226077615518769968606552839633144556707363489761685111364003125144500973309967415798905112724090807440849586986731360035293053753252272793901352502174846934036084826906597130649546304778219837396329696644557614811194720071012784056959960184804250807196953377230378474921018403920931802450364071032153561640044142764175781890166094039919091679149649563113070264093636812120622374940653657838442116283705079845710201325010012773641384026437162303625242209850628956787671763108409110681780214548367887855644933714436914606023671093872555420217029525110494560017600570333913439009485938312295064348924505758598568397488055299173876477480282508391865030712043737765935631624946551683080097124718073749550915488351474702990348530142898353383943795925967255228214823456968912829718094715963347485974836294436809740661451317852961297719701363230492132835758733515141771166072497094695142560248404027930034512309844216256251761968751527439516107596463695574273792605655846570087893498352295813497363321426865134840922044525149289297497434991051838474690368727415022108094006188937337150969091538187582073899522690593929531661212953537219935878423598809669922858286573403115064654526633503023208144757974796382745184446348901725652127799073308370971680096208905171344574535873441845397430410471955857043714698615718921937272847167946091847145847149573001052880828610061739399521822599533837781785139037873748312841857901584335627376978588741209893757398951018535806759038503906763255546097423840939784481591006691871168341813972486484547473058172804721723340500026886083929788347535718168475049327501771095548875213856038251023091480041046617431988475749840702464481725758050416692295907147135283424784393457214612109999573954331700964558201188345393366359880605127576762845600407565950732549935859353450771100889733899386933437344418656501841210237182541591396362838857872743069587216738071120938660866205472268406077486064942367385463319176383307828778617114334490900972945290674602759790225354909253075649637162575369791859730976069115105384160365314465313069612697019771461602586471658071073705623184224682113161322191849942133114827520316312984736091052400870667943001428606375370040535718598425822598038319020492014764300825289975625251883211824896013512681634291899481673188977871224344486160854235215763805614204581759025066362698614328749335008417002940604372913550944555970318964355922962799092566463695067186493041226211675300795448098591584520779020319619979744127952056887162004628854594748036868220187754939708497512201698929068464152320201353643399701217872985534548018630116235898060904714759987652452199652850153558397872869292165869138624359602185649049580845897721448267739970600719695873747533099061827557216725964228190273373228608432067759255946916704633353132411364345004340883567769161370647720990549098964594872959910738401996975956246351152581137145852740930352904550612825415021717232610654305209533488343058965953127387266932186274001319245539606207009794301013075867560328328516811624126738995761849352826547803540426832717830151205224570792269729500459846129058290970464426601415612916007802785895447647050983899808976468576697473030311913862541538092502048441048108554186090997571780197060792267207769318363735619032546320231971221211181834061000964879506708394943566996889124314418946764521909911265626867257534429402987075995657433022453355744537385179922980797861275952502531270057493159766284117074822200005002212236507437811346277930196054872675401592185304969261440042999535511961054657008080869287498398641623530196512610132838088363041677371873000475891268038141744677578420829923193272380552312813824531553353862145813174033346772803086530781970926427329666642045694985258765509759157310316465534066875513794782803864590122722102018538775425856661752347213095557426390802898957525643358889279252633028801760820451664075177413485356032579975926395337085254814803294098367249987051457364361770243389852444084037733602653061079644233827733268315374866573646206121929764154770656521190130418603796429322788227019886094985298596865043226662776901925831943467538977697595000486333726595821673911911952005694577842425519956429214277967608759478594150053459279296380445841871534065325326702967033741179797413256623308860770813177914717406647862213878676218365500790397916355154398504709079602179763700063861568551554698902312030702425412997916990984627877077728292866081526001348184107482549125367080594466085800333372123606691942314202250772682312909563418836828576809477619864523548869689210384591145198454231444759328535383090793061220337260938854953290748355190515786967545151240189897509438010637024955209158682043530341602901898710635967966986238657652588096313579058915090497306969355877967904058648519569121462455216753234076614070708835572282377663614802169214184780915547037720044786509996811878553366898318936181021703954440941361057423695373971910540805208383773929835640478983248135395818317458273974129735277541380579767635874766557092637915518065734860862569001479465974437534691395011554307986655028238579757720811142019981916295272387685554546787650085024831297644987128890431146985354864213459173109196422336560368604361464393168581665729119096567819187690189547790137826957668362469646559962785579364817992663552936912063281440324294153200676042242284780165442041901549930926112591529970414577705331881940666961898421429499621863469442108353599006827949733554800973592242832991606496885400422362321004628119996613815106494161680555652391172247513194743615497964569294747260117897643683866412207933122721479959216946197983373385636446224289576413910332751763281946942407716190646973915879040570889411424606918358141166112524460124938108135506775730612094628615687581118273545027496167068993283323123051855660973550284575171853557491359722059142746703903998410633183714115963960077164298164184173410563936504435020707654658468399882953741811608716351786986858481656441839221605605692128697717823685608264330975718755458525539084946214300376480518122877549918261141645420409957187629015436637993729152306625334981402230410063492658885219566785489182458912886456328684947092224849877170003909105290401921844964008064863564995300336325805312357962419696180734786432530582865012187018188684976215808023619905079308539332949211776510864119343014983325477329830672606444100912087852639738789304186342040754566056693287751113491682692487890762632502094640107117071314841950336583557600395371961274607926097999694321659510164064045755202709042113024025107065602099263995034213970615742482835011710488748466930861739925583315925246103436628687697867569137963894345106258040162437160807630246770257781993338232014241987643993936690914533299948825506928873981061501770465898510924272590945462393646587913739574252955169541374564083155835606714478871955316665268031477415612673389391938268337834309810232086981507082057138714174451667134887737353213008373157172638690121985565882024667806945199965816731682563631323196602572457782526304916920441035975643261815123840887274718073861151233442503670453563524790126333713129688403188857576833249581215238330437989284781212153318846891639938505950101546998193878130877738640874746285220036458938368709488473589249975201538388783584353971359904877005754383629671460482801789624969979227990359763926546844579180145548067978147162689042590037717870132153458926791929846086554321675473252625877982432908655066651661628570241353243681930496893990804504017875456071712069421274136649977842797838020455559529673505621699761269417598249584803505729544478849009552774001143924768560732901853682457296085224799674458382932006404249087166278878541554091303871337670624273172074797685828921584695681813999364009211958721763628098895449642842338201565572418110512944309089695542966398631800543309454675419538598332225842659832853259506127848771462556002945046144629121676277431516348612275728539933556837382339401433222258512317988299239101558388156209066701136947578693557338732522698423121430051270804969362143045399962525243477469132208853793676631143967344148876825824346347441546535571747344177381307178153766220834498190768950122204277373032653431478239424767592526075072585261395796305017179483726792160489670909944519045730407226684163851586240557389919805818222322353921032239105793925828135851391987543909274660404525526529070322237802201414281137225798096071562676553734366331830856132443370561094546646806181363286007252153573604644646725123071509378202055088568328977177637651471548567736697643966121682261476335691279794349886450425015863243911549606713492371393973089329978725834068120987519756161932501023288242759159662464887541977558741372364188236027453327082195159749466450492710757591277811021060375873093115828101043710353517383950471300051240610147002360278213859606993839704226565646550256901190657180282439017779608073259399269440565601809000676746918219243076397026321467217662702763157677606532617238540615792757599718433023789749743559838841484591488170719751108747696679549382149697662931818024617666421966270023175488012830290144228002762932294006860155138013123279013717186783821303306417002697318967735656602861159543733523650988943279533620760727119584542285331381953448827244436267887147665531152875153343220223764413867441258710493582426437703382405642943150287203793957981722123149191163795307495781678130675395939911171745539221970456535655200962915485170482494092632899895448140091383614940258056753633913005464214819961360420263695040883901229505733976624575508120111503920994033329002542905310170064680963989073730103336687973651518400479949530847596141777014300461843787742330916497130499144080890368381870603066659213985727835250376606016148630944496889516415376147093251502712882580177134047580625870796048073903173475019910663709237628048342497673006516234090358709631635250788402625201858907071972348925058600956779306411970056811268242909501609593103501642033383457472093349144729794670839034754338435049361648206600317315714830590614061695488710117368050065290950959052298167835761495798292635325573046526970756145955080503342944556392955165929793144353957464660305437236223809617884851960415738257967265062467959426139557973191011207893521738204261145625419793399611207526453529262284172409092341149596165221727632057846047721280530321435575889783182101645279325330107404502109455550445133887017555687136940053844619442631270904755075020668513505565099545632424819193971864339762906227363261385148665173626050470636310528570969318799802798287407225316942930840881612676983277425405652517449972631707870902800223891657985935376178148552633639128938788827436087086163468268184274382779532336547783183613141709354904176814615831755841175149279683902777803008914047619844506547778940334645963644556623510609875228883151658609486770961557361496727160206724333823410003799874007590403247569857359992234932279969135484056675147841701758603931966196263964050016476051731243025243357856959187552990089255957648144641553290707855847185093024350978844957734493463241432950029614507489499742616508818067511731944527183989536967719363492316993070042186363161464270341344902404417354986665687000976898964850634901820273833836535082599410849154218302580208028000982732903844535242359175245062062821876159295520077113230783564270198677353309976056647336490898900769166686810712297939312208995774183329506153194188643162081299835521373031821632352914982710701151153979237216546054323774116399200989286497769491917029436173231837259039878108364030409184523276868506994851352676386294618919020814773044256873809748597506716531326099525048111120013835650844475121892549023783170169063178227305279394988607817872514115017821238682426432490589428899620878030383548310948260355930107702243638470147290738649434208730026074990023482474550280739726338702723444619396222980574984000130226753673386997303622326478107318625278509731483938988892787085913345475811235838607868600315265476686241370495333903015612990916412736429957811859191971795646392800925612007124687243960273226303174651020365570571729568169656730615990276061511816559433243647975047650780207408285756313076758062471379650282796018039869599335412098304006629192294498394938836478211902269585386306641524739241580836731044482940836157305362363403090380605308294745338122256657213156175522375259653310241298131756484059000364704662583852015421133877763316159841410210424613295547191694861580850063088077792083206733424933375440578161691588739662640418986384332290111813779923786800184657108612136409289765922070071776040602803785478538992906670778243244835119903693442268785574803888634421379752386172110710749594030138354010225987910105016398526808133085329244460580545139722813827400932666876280311780081468963703168220360983522594066463150258067711818062693201633850214286746096744112747926818303155465741379613483537300582829164353547913023318146292882026584066907370279119535102425196152725089013416652700635710434588862636711147559353409767868481580977934473574212635000341567187746417339497411221799224132723348317855766407392714296228192913018955272746533481123457875922230997271533052378827638117810085868748343236950085942294096292195396019686078410753338324293524435337226640388347496444073678375851231150571024872068236330664089164298975435217388256337576314212188831448623055179372999104510179460111814108547227439285508239400690947163272234209352940241076824776377743691443239599421376714692342621204195330639451164693893066788509752216581776642535481006272872101689697276245393469918547371760900680771172336663299087532655862121775450158214046589133936862128191593442177108383652233952295497160051542607772375137487580852921021826263055154560444850350067647109919606337376419495812103880422385233947273272390712580620268459024552212199737117521598440019710580214213764140640964336676033928988762623450239621750104106135180326639068433209810015044486631440880227365951456465137124705810213461262976985490638603630445959372091844382415721460558296424037026808312335011441642291020794096578373690154303527537185057663609320538859089157930251883269837600095956531872979999078166864283486686252482932946020487054570468552989251100137584692720199902339494854652297142495721538402857447448397878340774670499030930638575167663842001756112325134547488807335559943262659587596479256702227281280309934298017146447253830745109215286373923725018854196765269023280219893737442045074141718378309316554061184344662463782223521177155039293774032571427695530109503108136543572508653219534588262074476349536656976784846244363960485732253096722597495843793155068170997373649224899374011397127890275647756606762338991966641707565247071148815042767056492863925617066358634748843282586989187048524905841133732884398921544839819437601327548063401534206807327635877013178436481059482060482004815946656606986979520766585135030855871226086960529886851500928632192493609500446608730909338622858890937101309264193145151687564896561830591022339261724134624809674388247951404981187492413077431936385928019653484939544058531995665755031953131860171755376019910580873859779339294090096092572624310824051866752972042909934467739150413626638849557169141491509796839932332538660813132525227184515229276351943507109786936882112765075141561852010320822264880917375760150048208137439667949199625463076776687330507221505471954816191047409747398039309910876782724847127087079950724508112786292425801028587874427815150274079993183767537615910362992533301829545207237642977222272832481232138652391886456269256403406499684098349771910578105151896087673389694698189703231673341201621669252332715187632527833163363995854952949371235779775077873155796920066298579441063513933677119811151759537698825529672972501087178224322348367399200368325029916248162292356914648291831807418552398849941135430200275528222770944366411526871456908605589415542396840042988107895159017015497763797511625121723087699443259264184580721396875688376742688205128326252298601606921787119408850584978045693174796524046012441800592978607224666181506431881740470852887667307311181594032935718976235879767649400806297852196124380701118626296392156513753954869102426897642992392816565162249371515051648911219661882888557271940265281693769170213698149938669712806349270301321217627489893804224502549054826001737571387286643467456452514326932673427306148433158185410301213010969202453390745407245551519797767007496370296915696161290480088538563606202166487937115353643905582836788426266249582051744514306077957830680865666679572781871371862750002429135118798407215548957039249573406394011105889452516680591185014511767655055874089047804704916253688951537180194166414487496434557212640483437542054864294582223516447844977912000632486323781105736182663530569361356931480583138482003271385891320981054178663276027559124773871401812019809485743519998655047096591156520254352936022983180889983637681127333789541182567315709525346207989709742978696609352835240097374878766591333722815110019810271596407035550337727345555383473853727262324534720672413380838826586925143625831102123204285455528862423138762584903336779586813599523947199758328610978487199222187220489644751872958777016102803998740211985065149342400365462201446465656453374612157403519022938334243556782529040772182397209204441651092457342580990781881620825896782254380531064274831026568466823035200966539416988653915032240134362154363999634184197014953225406914430712531472905267582599984703949246711402929368442457654028959563318637732106424375309171892462562479636964806205203255042347051052553265145572164667740032640711628708734472964471101605085097603151038068943904842037172832779482496050170789795032937640608629701018255288730227735084865457956477038536495674616482008284657158429228040843367390937812181574328812179400866679413771162209595058019622154408331827648653294194748122544381680669373524648529415450774081811275762321213698010685033017233384962625497335504670951154449758846550763553884289878337943811341298202062739040751801176374399171165822003407954186333890406577374104239813327206368113093513618312749538865816252440088071112471163511267985089923905085471611431363882505298134300915099690556366216840340507448132931685271573073020170687757421966382577654198497733664056323931951879869332893659406385924766539666219963306683978918627245642185742307582352507977858666563256673821533789467531997416728903256322763487635626343165163262954345877168977036572048490491660318229336973250486191104550629562888654759053637107930421874391859730530731755216250140493249871442508071773776526482684795738409189023068887384667638662886951157795291765038457982339906561677190879055814736446943592453901031340721018913445100391484353472331448243656469435342258767335728647313629006025770076117676390032718017779170422756923250911922595060271823619415724591077343256997200938643810825404233934286010406048132455588456958394833334024456045386236389794801365318496638781106228304557118448389166242546022763065922647406755999616520485149644698528844529616837689349915519129917072086908749125890781074937236103624006362002907983000450361187116595408615073072796574383254179985453793334282531117426425657447095263848248715997168993273558167058682810861542663701612034463748191348889319634436749487691451804542771143192586494306373720258550836062392645339575088669440201068598099774052177257318070408353647634702183259440970616205175680936000420555447290306708904580736348039088469424253352730444472249464877961124064646574863446634749194809746001263453361562450331155820907040874802168991425141294048191796622298740872588228314164297409095222595727131831546188565953850016474119589254642910211947748648688400730940520144589591437274171079443094801709699323133928100588769438798416476644729976354416384619862613032523139296227993202412595679552027574608394616309356441374500064093289151293485157853533716291465665485450304704507774752922660046881393430759441506941896636769973069123213063561449508846949045660908627236026425501374547399128803300156883851110979401770546269928626272294767927566863858719075502956223068599697420913372650673624004959879487596106599532265919181174321383676640744428631207027240673062150351896041953643356367762144381298773413171276411369279515284461010671621228175443895474365309066447425195228128362038708549821434348258611749004410933381407982245396131492616426977746571999423973219651588357123369940615188974996127509508465874017276455370921735807908670616386773718948639189954843213613344239945388668303258487361593372744811680462385390053698479657446998648817276635278632923960694870210578410160957613944127097108543980634907047560151823351933274452871169849290189296492178409715170007626758489723870782866481852572241837346955004986312012082987053414608914430487513866494174976254267247913318491182664277751804781228353060247210462750772412665428071411243696264783222530058004859960638787196417678569538751972409568283403529248218873674540886514842391121247448423480185124735088297124467592084447588843124961722930811879743924240470047572529982225615176078224888971415366480937217918441332282462182699849894324567953467304986030879450872657662111313712498929595609667427948850408471742354005657635979024328119447037354937571085282461984034175461529862587587846716508170791123520885918617367676752085220589319208712714453096555034984338626797347692095541820416297366060038632843703050344200455848999648804794263163372461318971744870227823615426093504108508813096010972111668175558182178993331474459495582288789645877268781715791436357124929447829856602735469153905240484186957821624307799349314272673156775617840033754655916970673999507882186833764391173198707212555170016369723462143772093069842188569367284874750033858987144922168777418197029722562528455673222798141638576500461421364021403730656416208704664042847570848990712967983237156236917852798532919250141926927984685872807910535550803760915941280267684322885537448745931753025358173884616615480234070868832723548750689209708895295408484643527031409530007047366259500367956335943635055797530622937152186182002938231848877295077516899469623068576778618123779472263883212181729570709688607286695818457440942828277474750986128443488552466378604048810141817899266959384678273094283144532825212495068126143614777864644203078397965318176901664515062633566398667514819623190744735064211266069523119108440925326839348285805702333844063712289605415180694794342240750196030108943047478696564373760225653239899490146808281012202933557343640326818088184978334962333393815659396187100595549218788144753552128370931146359912393338972144296911745173288965144143013669506550195859808831095048216510306350513335250990621702619378050974808578223200856882248343212254709058358124451702470333271869805683272706351414915457763002801889417015942405370252395842767722580984520311460626909412126137681986280082184727740589310663226706725273327085284576926257034327668102196394418543292818441491481903950360401602076242193658326288447954374379805848043112409021593640100747890781912891641893510928867389976744063207824378152348433113940611023180012828161644261129975968123305259001060227994468084669816831236340612961386984544788208960158599089499733952829904527585084837289098233000638942034037195118045743419077906248427246958820621179831848313468143339583599526639133151312303290917666892557117928746355124186110783530178070846388172144772760500950990937455320675291584629896685458894265964882019051642143432083223933121023203436971224929135076944384316311573746212838679529536335832510890625686196143622539284109723432505150440883013521255077672276254296285441948269109039363118872851754267592453528412998423461824343636222346547693612735828511604252050504698369680463516283556786802572531578597538142616794504709054047899501662168071182770316836775056550409352325357300692937165808067986316182537760845033666814294792534717797058811971450702261283515868114942651502374747817072600845053536508004407986371078666778753630882372768261138916355296945927418676412488854260352389232281206162032865265329643703232665862198838519316459369725343782142850630713670565281101591250149455119638527550113565843376503725105148473130795087221567349418940783491766354998956515107080798013679629007492175867707720278412421015233856843731406907384899172261912121503960931783455657027563856007791954191057964246971884508764796896938813824332122700323430430582717153792439987610829786464267282939852895466891138948392744823273332550008947510036426123659614647296557855888395263474066607244528210012368932387382194194261200792483853986171001618223620090239443963793153540047494119211969071014836416791928576723299463698941909287559067895367200562755130740125155033855567664470989520913766910652315138769962229630302671420002542084355241330935362248638598807246908089970479343843144849799151342023016694837756242979865654916503440861038575002806240273444708627845192282582474397142430681189043157479398087164607724521294466576078298709216728553663405936786168493880188025075608333181023374659132034556966274957633397412417469993555991286967479780637565974918128914605717506952552437803033100949195358505779414862510459082202510902991669434023885107612415625231361478777765428844913588234420608199784812156279510353097371029639733462796730671893038179797551548011404863882987662800451284592818599444961162315415698027170035133277001176342693135461881770595387275918333842693545777042152408268424845324066443203903240227937814733016525037602967065047076067256054726011513921427402181960604013317409503624101153386530495108949747415288633706081275339122321932329194135680516097802087571337349573663467127956229527387498821705030377247181774888632892791422486416588715413765401287693791855586741680362923651356093761338443070391322171202964430086910081232853434024127425627696863294954784510609378342717986702866022206956932533275970184037031752416204338649020359654853733371415123978660601950889741556710761939228482576055377458905576941277069167025586032661767808340431973628118198493999733228522073977632018110594232833127198014565000818282471658364776741815335733023247514518979048716453092149051589659231046614390384220128992336161921806275886886834236351275501979248776301997230208985276343493344451539504975246267249760798770009532710789296078937286241711331261176583932448829201828457896010077599650075973361273160417744918977450941879095094627988053642336431753658051535405421039367694919847999288748848545215991641085057750156190599660671291328138615311758970867043014657759141639012376061899036664061034568548521707431094902051489997842044747594125832091133024502840004552232577220528846181981695588918760397181296914173111761495143363671066742609953112325621126297098939113457693490105477249143391256217405370643943237623953841411387974418640524274676580647771694246374830231267170889419531673490740998700895296966102458327527529735496863336710373565670150863562722758577355770291403341630528797628636427537619420814602690574239958128861727139706130604650957303614721829015529391398636056088767001281526017650867029583557321820597473576994387416647301549104354464556062781477360076546713619408792531054612590293957623256909044886698736979557376477291692967649700508166714429912199589761088069006383560907887891543292003471395793457667865982859438332331489057871057589411558626657673288785750494546604822107228136750864364458863424318083845601749375036608586102250055251985150038474839968890672647504995298052155576896957736380722479067620644337214989499120297218319692142097173650793528815225036298372378714083999905764343667084329088709711843740498436642458201666514128265518805860744183474221483121684350527528965910911924505595487575601264525299431256393398035901083110032728126640888003059427968549090032172641274986895696649301349369679182703986542351197363195156216383423133670363689457663598649132738691235802614596922672610360960002350999178925653117339835443961208781891865079278953459686077872958816976239602365361694114321349102972404202129266472055273868029829736785927809768445235562890043505835081906020139671446752128103704098336217296218412121305558319346304210450076461309399335892631793239470211000808499289789135183251861529748514887068571469439944827148300676994592855416005199841612835422239415428967030001135601714194908436324644719438336008759982511283686834363467734116811104822003145917417381072950985997207288112021639079031252899382063649857032641455417836848424689706296753480923118350085760935600573216416539108398416199009199876605566555688792552865180461762750857162204720930380929319291280481146021732792869282120350284115561814710462245335048981152501119573258438210436289905360101339292753221228513199855026959339600645849320122964808034983609368918398997290653524518746865522742483407734195086701630313853246773699704974062452467057457287012702502953843466024579308432304529865692681790203626741392421410150841467599035942973053771425948734294756564441643095358965288744296801223495970473800293449364855102391502454869816613669840656905103517478655738814139774125702657507257023933063742274465404522440442147688850435245527402137492293343843192451265652909509088760988588078850622369994658476139163333090188787104608798835796250677125184618401140871055779104876536308507200969417072951878121919501281561780862975286455149430446670277414315643994180461503519000197383058742447567712968824782767016859989668640119855295450445204980426561158033140977541294728666140568125574877889340500950591301070694153637407914672274224689436037126194221872541121867712387688029151745462801348277936857657796932550174184174280889193031698889835301768299306098173199412393165330851144512152642927382923848752717045470650928821273048828539554828957539617843435814891926943354760406278662580460667872403479048970579515860400409749391491412629826482885604672795462166730757017593060410158438113789467150676372863539611148754024205318991457533879521821276966287686506708019789193119156208422971659556901315338278199856318108136182997618061909726653681373800445329592304771095817706057576558009479855268059801495792140045471290589328518871414599897308596779814458105923825684995233886148919483058092624895348240556106444265963640408723858047414248025768488463538972439563446393794246124272585473246762514794379784114549484761599399584430791250568323427020826969291820895000806367901783222215356027230572201998465043490182651958002830001694292792288628570097438881262841853949492286620221278090356784362704516515600895599672287292640711484155267894225777678487099239864976804069979657220627570658307047045570247426561663293021106681723673596542956633524703691892371920114305034466223012036210041249726609970086956152560633111360006985215676012867046245410923615994724047860641923071192766374438187937230267230904708802543282650654896717220046725317579557621431168795684855418062110176788262632275090347077330050514849648662843273744955441238906282358915920729705176122324463174100209025430805535130030447027630278980488959255737934881268253197059362914840290731049700889052110187472074527304179993976194183062610937053051745643543250811895668552518621684967413520384322508407548687179364352490083876636599356625499912075416163872494469645610280016060789168213535855505631012404073716776019621992668710585199445205647622215585879250094069786621361125654722903396282916596013748976439853683839642268450220196529558179838823311596453135694660132675213614332029766442017323242956059598010391919284347686450952702482347181108173677653059016975748001623109529963626261807466698833806005267324745947191938921504372158346614496567371115265470703595691968823717806454191567005587280414237818581695724136134752291412251426132451195846226971765749763755314528252615237656586561725065149950682714620493962261759942782031709692949544278134947782235654338521493924502073413044103949298800367359541527006072656082651616279290009248328632810647957093106125001851967492560656888248169448804101050883063216704141826429878109657343030778201759113720522808167656860197259377372988831584811642231150911857896608220637068707359302713089905399475422672352094473089819511842077690076276702876651119726678304435580960295994094326108777452913592587310937924650369220881733469397614710284403069911295269683463535348874432352335492407221435672916320830213920120068173885212584645916139795313469058217520230320144563748429689402466399164543903870901127289867761908265326032218261945618243616746513704482405898799829321756768188095545869145094394836478596199940746510178316576488149559306444513971212964728274228656470751934672557848454258915826311844122212394841818030107287524934381315506066286861351735169839805334673356580678822019398944655687041501346463962900307910663743967681601110993857532434866957066051748892443403493936428301997299578471199311435812079055098043912154229977660340348778242706509547911925043077680212469506516406069193098268011284836047651495978756025550325154589222418609985712393159925932814355512101207275648520664463883050506993061766090490424244475105978670110968867641205960461984662179902279061428093428136881407830857680996741675703016103439436650859224128605377994607552160870340961540345928051895711459413921157048550713527467615400422352938311504853833226705720483181920398100585528539303592550013575016602174534340732651083023499510356861839369802759099733153372389101724358661922509906335366755808558134503782383252523085103968866123980614367867143340013821644984172164041283773655358293971337603188382466311688475922025644766688515694508703620513158040124580979008739038008750438104809675969366400493385504071623475681127440293440968308027303749082292753151476557497409866978575186094511643022816698764371687325431454974322328044284345806907885217630023116260138336660988216586744543852528572620174665301866130099983147779979808260359771580825097904928050961253176766589032520525372417862414231307397084795768472153562641865699578533012079434144103318187251749886311100616817697566220005033190617286403565498819158600876033692637310081722627360670040576910218328214488415257056492847184787337508036987726326683766150543015968096441623481528234115836646399419704047060103535224771586406742785372555398053131351860791690104313183017768274310572055204084189439031026754974647109405442184710270552166452706423566741995485231321347396088085329558900370808910476233707068128746136404977238896067440212183402110657921212390134949247140778352500783285583317839843470868529152283003021262541725761213794814028199690713950968270759732966100074379632259734008563251330984851797760997652291154635075797593616889318344397473391335321598971145760295167968126906665174885770099058772227715729070872540360694945823834565771186605452217664325945812771524226360913854816399338711210791493919338433885992591947716362230911854369216930808574484314850158199368639122238616245197475456630045300781892213627970880785464492890547828876851694530535763341887547277498583985260697072454147059776165365760144332638513080620649243316112783190885544975934729042154734805290486000507937891942587238582717175761159151951969710648908862635867754800557530899682723083628350353189890740871127102938559505743088821643960082696961249302532183379244102875421774784141159571314558747351724479188563994484061889886144643259935936528311057934442404588377386407445601809083436534703763459228747433233994032350470047825898661655204789541924775175794200927947116615554658752270152595524206231555000921926585440214748532724617086144126310467380802389701379548140803536438451061584022500106516040687113281843086382299065521964330944927706503045932393499160233232944961191558532790893439721756919933512253942911070215946141376139368446423063946514736833426285813706191943255881869242986046074660278270525744094662034604924848194605443923972001042981937271584899792797342348170823973736512839924903257053699206693392704097961884645140766306097415937804124583288942739997221817199208159897525457999747952588820612413057735669924618371363216137939358567332078919907396934448633197775955130391121790102687824002180431777752660728991588407371697982125225765736980604179523049713004681877949137863323058779301776268585798100656826842822126455739460416548736656794054135190680592890799690935799168762108865389179625785787732012343929813752415867637168419940765240067516787501192916343722608703894738028236338954622421490447924699383566140221200298694549627653579509270865892889285586386950838246955417455827071529858433253107265936138428523486947374792210233519605702363116206344604376538127404539977950158714980259099946479070498877593566473376177217330660825254839209762800664038518928128883901792389982287233848992483137063426753642411008301269407628118402138354426694012441640431800822873355161765181953794018938418628677083991237669489674450932153998052120988061444847805099029182597645426672859831962551768690795711984498212605193772311943423589422478888766644242133264246430748804929151742546080770370775744240653296737819400034410725698912522122634113552621154291040239081221321900058706166362720940350701953509273596334892598472206365231058628117331702966739322657804720087731093935254197415038985308768854444637680869702866166456638060816205532966520252477613563191786043853377389119966503252085277867848716381313499324594948707835190539528258524554280016173621676108343175956879974175477633402015758265476190330990979716034909240241837533482491161426513348045808458870822842747506803752215907768893719485561965997560773971392935757435507498118771451147202550053278762137832964340076560133246206443058993916307214571912027374801332091475895103763745652838837199049010155265106467403545534705945198082416363978385416274490922174103798619451643935814450949941543096613221040239517153442146684525094153601200074059141770363170110898855355869873206002614108147300776248480241862730985928859117944114384945001534810202507342990969608631850781820939776493488970204771423009321892587702529662563366481439846323846747876518043835466648438701811776656404159045916490017477428479642462256971689121155938094583717667686542598039692874852226343924864244145013930006432253415459668987976626221524169519728468517516985622858367368119573489652186416455344947592713237343122291662636982932895424621174196999813751938710949065447450419725763361119383437631489094049560006402392042615578903437246002240111970891021330728007959460184638529299887029048517123761407548702171916851296784988978900288525278576879637481530360949772144376712883928371188427336035947837659173927912089778941215256729551534636547710635536602376789966816273985363746718502253608842850309742847527484110457049738002860799318157242091162132913866434443678066175988633901196890485210391692762203186274394110966929045930033413680371733827314326838757655880118809880005632824797011831059783750926251697251869692988137310230898362057449408875042388944602420019506537518499223350910661986743743321867732821714678011316426120206853807360018633968021174964347160146370649116297452033306325959791535183089961897118580347876128953759141106140437357303253560401790568859960139416706824837849694813255421952364455571103830443435961442691336257352566207077053818737314898282440466723081302584552459505697563942138745064270046014700360907237212418471130972254937843733521815061696827924746114643176498682690081829298731586180357728186316020217093923033561784193462732131504830575275257344521461846816186007381443692467252612980104169612403823336456293715196675375245861011540599503943490200308629773451013293823978649823325693953982416328504441785005665863409361657729550062385130238386719560353412359905846455639495720241836257769180980576773936984073780932911169822390883368913690445076570235326666118693079678770186258404855360993252473636218705235530080691174940020624317315338284205097530613366501362566424151565936237752055684129341587187082253715558204408482303746637127046462673125571093506352034537725721777062668464328939186886592076563611317195951664597078365623578566448650139999623063750548775711325058971194111713708322137627404311033991364563000510054310104075275691399304755257834137678075653308492660876357007051459209151144435201963534370526653648248095590636438318264506290178940479915694083581836692565068639780643094461688837941145748879016736033048479058482603516114387880756060928845031033726157691863284419880434336405062134498830948031953385802584200383219743398034386295177189963917766872333279818731829719990221565632951235236347208035762000664170495797142264830071175656834167855146052720149289156131195943458107479438768030561162156478675341225128147173879773264577970227439513056486730442934181960245211735270810071034673372406775950369601283047724060665691072143525431389074103078413791083552030076245334408808280119543753822191141543680521100719315616507175891343466663009049280754251217070443691312818955668999495195612415565141079289711342499811157100165058663046785168216752868034084004991790706041067723672222783492344530283340919013962666489936508593474831417865510416163345331611037636460359645023270558238432774962047505938507315705742718925301879569654004033841961873156308978303188954062704339195435281528487387514629274198933636281014224823251856246537458228927312683358989905509558661275456916847511352343293125517036540727200458607835529486804627694276489672844133120301506213118400675028743929747879316390249865752237042302234015732976053651072283871501819165766691556615777812001403511738394413877958490266908980933849472815746174717325454816200849708155778150010889490192448922585094817992019794981406807237524856550073051718523499308477651440513508994524930467079775112647997652968357079367355463381085740699304031437980071030923285944227819178979940951217338308894068570223118622442279667429430433550859247125739206201739965608067788274205710827435047459560584849783448931163013287456499166518935818773365367748151786748843816945394250304740362017391345255033363696326015474751181996658077240094039955595588821992321350763386113741688073683444889500724251373391037426505962938936164804761066607692561167146894231448272736021323689675104260449018978804642017289314955632472796766697945672637874918066129275832008491245398735019693827480511239270594379810902422216246949179518547754478531748811486186880195524017400215609668917678020907075848928549799232958296484573546933993061629161473702976619260655548294503746170035699571103202316901810047868788971912844717041002557174382398122744680129959239941975623667806793213756292655961286379289760924099625846769063852658431051705458332115666285723037252423591137902492414414003554916459224731757072081284302932323681995343634339997025330555890662155926658747833718766155858947403780941487749744890414280929494590516491277367551805039025242627753753080171568852823337441051795240428193255217709244438687970056915267303314113855975057797655959823039323384541404635861808996619724248900476874817487922289576432876110612971781853367454559706622326151046657045926106084128992250149040308618659738604061469593561931629329348285534548806213454105724895727015866566369488812248695072284782611962549640160128916662403309982890519126120295437701877434338996109959808919969308804050144943054247494336529709191851215057893555438742350258886790869088161278530985887364744945215675655914911591036442757780238319318805878388597671411891440404612107653106729176205669270163143986547724682543149247643923141703893591262754239141412429502554650719806443263748538093967023325522109534224141892388261142998469467917616190794129003691819321498658744640591610907509454934152523285686079721429488999810030680241080285435529464046719290598197833103771239722524809788571458445437219133750136106523604479292095833998069325428810735962008359713418143075312341654068338116117539976232239163936792386530049706836560725726163293123950952987066269849162806188578033201784257063723565453994675888128414577396387749901842047678913882312488597167505857324006605146879448041945854391415783347871161238694804312708345243368928078008348079241526401802485246791490142356181282593271720149786248123694365798247068409325658327453228547953452966050799037076858131512324091645160056119997715519919608421470983177493047008396961242506567090703595091145716709807562677277401809083880062684479365761823865529069237598346015562631414603456453748472816349044681936578693644222489786860920597793173740142248315443482558417728239779285458421030849538860689343081731267247188945835907819358672331994157525915365501836363682010601847915208203918153311602872593679597842607295681319462662956247083421793754350351586543009958509034748309543367667254675588622470814014530780796753069234250509149276022793611406776983744093734709707271808857662641318579270068624336387393983828533824096501236155828939603456974861823352311169858364623043549613403462499647474530575861555703426682074530819216571300907877726202334910917537513108003513577208258021564433820030423840345827275632844801592488499889646621187799458704905668817735184612657481336130970869359824044187850238835064253874167855037795727216740086153856251360716693573674047491415179319992886319266606860600673905814125885612407625737805364032346452680486064604362453379073400268298827829883772920836306917871146281753975689151139590251092031657012896836215400971445522442854089028744304024262394330147160587188890287855993519571851341858155140989455266303009647136174230226644241190406490639089505530438007884155714893620253414427317199297666362813899648642521471833356725458174785363721020491631600576863971964556705872490651447005626369496062810936146137040612901028330796840733365367468842083776813078422624469021235234148981254195992232804562561369912506662568977438798849699705649109934424306478116764401043640949494597652071092813896556822997163738741626934324344794196792852950728733695712029250085441949365086516257145180345973536824405654991003910238767761239354900842988123867171803424936905482832991006057999091044291289614490906833772540602377193835965752083911085164567319739400140145451228003099389593770696020984397038125806549462427532167448920822147183813081293428782336474854026900103548519873926373436465618655676336942258886626762581524234544385581233234607747345872876872425804566824820559554395130992147287144430594092586952885368201974827433283311359997329534384296707050327534005514547397978975633000675740813541076029792533188617115812042038141699731533940262858803038923388162620381748277053884935733549085017367948051399535117730276599806626823964369294945314966931999772824097877874501286066578956325358598792727982669660541331129995095249221386019208825137748974314942716388850169118331394073499684147646698188426925857787626737125192459055970170007453939425132231397543354914548284378326406389928493383648360107111366959964622288390036678752540493439591830125699214833429961207655482921297865146132754683591284872995196303820584078609266325856191010057373668594517377374207339074130102440177925156984432008470080283423297132343950994929563331012650527415266380766817198316348622116409735694003894931373922853007980457388503998394456553808146317987951346863824337097473812573944862978137561646945687344135203762774243016290373227309687029099644817511481839990017983646643469540622500918853743792216618333193797090584789773610105140114553857101355190853425018021786039984652264166092610758465589721747622218135772417803881350015575248209467553531589413155156776037121562549069575001642531960271930620988312726250030606395453674653310968871231331065178305315747111656617628652730216157253283894158883949150743505197985192028298829031113042787782142175167120555134998981138551078546839068142018017537341089229006469442524148224574765099335521384428211498570514966332008841949320415019348744594294044637832045284421789006638165132822362993585495235375977954079043304072938031253036230541725089200557268890489592394295586178734610721783495866168131867432065994288301975302583180659601692237240627586778542538706860609326537085875808571378790577296082807838869602733629568236154745559464172295306989745101507135837214721921778210932691642641763097681319785098172556876024403551734837587862709217516296049884760305230349170974847638954038157296589963027027204824626447974136253404200384815709693015826280011763635182334854115851342573048952221456124479389115602744263461830103136934007222880859941165955028230317145936126822663830880156731844477100773240809910778140481960134575021151004525918377233446524751151513203248049320170456414222676799137900291067723807213046671735563090310593721387596427784399344416725616461781807773477765487771036116500522342602855078329478998841123119796614721312639123812894735750780020832526988634612929897165171359176345361246975473486178225308546457335938993670993931060409753559065428476580693014537056124954075228325554630195212213099974239139028767726483938522700291533637999108176621515164833597077219626569373072440446577557771278891707406627419836161917783131394489758210427930401823278973448283246938527798284780661324192924983155055171322926146005688820037953950949710183242760682314084891507853063230521241316431844931647861583210537346544740055591044601142062029880218286149912458313812236699407116663637088365846931528782234430155539005555258405274210493276837346361336099284305705527464259434022538405977434265280447553354042478498698747168520396718918500113234506550431880141554294324907840490852108567768070567254182640348010903637713417726170800985968396307056401360706055707598358119961242345384699478815523748096599904055867147758572608146541107253259277645920456727250233159459134853348689401874827636475471455437409864087380301821463181082064557601430694314203033918152986533516954264318847535236777986950439248666954808252431813498952958249186490276205792767394514480446919123447033435827459358358617393947870546460068136168222049957198841237556057925402253821783550612562317782520976956511913788260833737103290952987196499700855282795935593145997977932613445536924666395000909059110608534622595821418786188511158961754300831492291759054906377725426108005932517247574098470168371951495024223672651462706447680341732471720070970729357309443728211182280309990232534674360729221995020238340690095658359658505147998905037456032002384138075315399493999532456622220689727162464278522407343425438863788885707158831856964266771297532413032689182047208760222406497645494943453388131631641362416547719788601395266167843347713308445707513253996639443946313626472704119296332904055696800697898560610543962510669637431698275313603491852119355762091734247568828200051251559115844236050903633582383304686873505250403137772199184758224904466542518134406253045519662941787024270374116582096592434612343656287119985264078882458099586197188138873634968126801068267392905825338853451661222398259987129133828328832435557003800245711331801412669965857684286851366385245929355772949196088463912644860852211181954311286278128192568959107755004239470630413686055778787057975233360025128667843139480577308670678495697787902477979469364626851060421764038750716394355545631047169078598669901145498801372817348880524315222720420530610098736161453415190968409302344714375387932702318812686493664585041930434671090158238333717547073514114097966309262135258003358341309078920183018594971176828293503860939390136303172289637818191114414408897058647849365025125260118481817385168487092472692349928162397886427929421655178601278482254596384057763776111538595730166459877968370788055823934476003808682729928419540413875555873165995414587433007090119833853834904301597635233977383784271213122624885000277099334785960629507069313357320137189604532448822694779964289727384933749851550048467226819823278368219902209755326694695862830297656303243216033597119539282540541565933336857776906726477687736639165190288324810442212808388790864400680412603013242780147781666218766820351210240836957162179705394137832858850691773717185642090578766851362902869829046681384768763601581407787904103756821446559397452320049560614114402822438499472254870319703397049734249104045962744446464626409809323309284194640745196489777365376037033215061854437324737528789239506154726166522291286270290130962108138182701823273293712497631906386717515879729209969428337008323182519674126508393700848750978960335048915999001325835445600071708904292303574645589812326814285927509078406565635180113413431178219139124567159697379607190858136085585342851502383615883439267050546572090180128504841406763584011569885960589918607857974544995447024328608508476214332956725079045270075535240154920000618216075574677367555478044009672624471331104926963866379228905618178465960203632538736807969952954125490452022322211188827206574005842630462879654255166055166149676843025217427053987767159508059923024737768354047537874806108602512530166091696186022521861809631932172424892501508876554014897141619300247671776733793483816028828388261837505480745978623790296941389227603884108271145427552695149849864967637370569523069794177441628587602835835598439905916650994247778935208405695901711789862490693234626441573931911390811647593578925338424431844826057239046891869388640322350767576023016165035751258765248385710978162098174391239800863290106867438409273355647343026693949162398719950649468949732381897875114929044978885552892636346938648385489684739541322031803899728914117248988699769746760607771572192789557990056083426845568777593042463298630726708504019207945935700543427160607800566122335264622366661365757338776196248738873287076039283960523130245132727388933172361257552128627329292610794611747501525959030486934293281578637310729846611486207406641373574063060621201637492594633645861538945639631080237446140150950319844626488035272786685937479576731309491712041532931492297280127070946597571287081896319719650189918900881805350311408270116815028963414431501334583046939713441530092165907956829518871321197640926998864396107114059026264459976750784800989140503843325851684082386584285889747537496007093471480801575216613773369968989913593190372646873123445614395545372102725259465981216293964148610156593437295496782167406784079394859140858048750752252683829090116821928794313222180946625448581370998222627854873057084209815999050451392149092014406841967749624173527129966126779954331763143983981552990649971885096258470354987827391533267367571220401568856823519879709219613715344694926117272141340989811995168772226912199664295525299856384036222788529417897951089163460593320717555561553434749272521686702217495340576170021993716151523163608510114740927496853456479195277013653434691675971257086678925909965500518295032450438878509027596444630568600519227038751607944624579404477926944601473376839003555337945642190722552205636730079009862739425851545771949950642930672422876429630937820533700445617927504517399035996961508316629223644111968105166475382049289363071151690427170580771075921535695463160542450489632696119852616219377499908675547357846526300265279870876835446009887896622640123449173963050534679310882880756807825668969192718135734202210800125855056670494788120171081105027325771298675290243220142319076164070799254867802186706644633432369880747834495515228579073286145895937700637033771499517891184818348887503893287705667596170204177623414787480905498835761958500703793467732341209236699539022723546037371885168653264354953507429187578309959289988151639913421410862274482092486975475879941867120757818684935919343422676300696224404698914416910135576371950237698938749592889311697938412829000896669608636150078118997918830446394875948328838398423829091562480917865313202684355745522071148580505941606993167005592608682460511046171877945435972319506355087161956117700790767827150343633079790351170273713662402592492062342941915722916421565736666286449691619422969004270037060281824439411885134351403970531740257562210199469765650613501161389820866162718678151600871304397202484568706127202959502855798682301410354062573421758322668642904511218773591532788826834746615461023936441068363921887373964079237648081325211619886045732908119400482585645710556412595211635691546581323977019176683884845808855902441222805816397097158395125331246399947549111740146009386984965604254279702578254191722279072149354557483110128624069260117500699586177696003968895968412299045354783338576533969201235632403107077251121196680010524321110905947179659854004909130008119907052029535916092909161094284378104769923383799469201568707855757822732217843436139149262531053846691413897356162932977735444453963550544432260130536905245451570781789680227124885956948115887221975494962925213470834140620104963583833787869103854953125021292874473065576157316020076985681137764698188128601448615114314957020333221577178377914385007099628502493146255448178764590895089039863571424971708746795459192723286942145873130664365875703938370298348531832381861963386683325796487054432506836799490360060648923138026240233947727046461073685911472599960450642296039959746975902082399677359635963963406333332925503682237770898453159567670624624883696528309554951580838081988652505098230441250421441484742107567817922982169637611002515977681981187953227513486816036019882061905491513847241053944592029216052814520406001347457358023942358128783446307995083898265588821965531921045985537133202628500781193878594390361042912297521875167179895206740553125056152815217848330758769139074940565984555851713448343225997390651479446318924706296687173383022247299759092415714403041982190303750909415554656814032164960940933700471105960616050430688681528666934417648540837828840973364173657573969099083995485470487553607662244526446337255662812220627237500226881037380337042687078027644719277404696506767647080226715751567537589886131597163307290066410249112000960298160452323155299360136208657322738826617496182932972005598321725280327458041686690307839431209629307497491145415593935048138226776209017912158035017534655782141697019852686724162106604856610741314045737348772516949986152340047996680221337556784447771649031847914855645046932126413538482727253934935231884642304774884010637201845676172624402101551226420462654396508249820447248520695751705882633535114893737404412184789897148483588897145619497403585794533116837326513527797038759988353510097823040275128660607558071244045351040111336905426177324063453109873756983999380518402696757979144483567955278757980511990221774834672688221294261123829733321758250712264015374039385553685090043295916955204886149771209887885276927926941548954625525382441959295174651842792666210375298374740254571338794755318464461200416908689088057485356406349572025458868391777031887978748117562394297188636085329995229949035242826505462260944464224222228947167120687582144497039104295441722049698903426036271420636051641886577876931606818486853520285137377278276465187787459500953056404224889659923211042646933442897223142524592157196642251795047640039732277160973702778968419501362354603933412892886044611198820334481955081864116565562010988656411229370248299403192553638036671272288752956338033119175379450909925000313143290863889703415261522585774862323392024479752116222875610266530925408367048749123298232064523694890424147686907711774672854037478140309125519819293756089793233864690311865042229653304156429629967059009832292057458241561738137975075616238691141882928519122091891193476045058211510443449477294934342722689741802617335141230030632023814625212412316363324571605137633919476292899818049337909975213957930698202195747889677836198964758530262630639657073132755743217660260489372468641352228591536914159947015670152451943546517562853209451794998116054115829955882514731204005543776794849381551146315431554902114947806027585871411620484880241591507857256019787388708538752307589021751639729904305890243318152355219815909211738916708802098263297682320833332156966465720459586822499876682777914941155260985466924776742171817848408983505362077228624425974962226224212974059847689005881149795648534628167276800419708251415938577203918838470947064603906409910854253841589787109921137386941333743225311707174038552637069195781335838141513831457625579846047997420957182513636726187607465355788785015526157359695116259378299308846301562414518073893902165761710499603331991027122321451014852945044090436641474062384432465603791099868709787495603581445805807383883291577448067848762698772079348497384189503022027191623460425451432353978760005711116755152465300575682781933064322847984041296653598070773649235805948951836500389778874989249458690774445338042973519137281182577815523236184008451586962835362621723099959851217287683051836741292536750818140130495527399486317556687573267676883268887686688360574463539796427674184364734709297850435310793336206387155865974124730090913035393306746970312931890171358080948884306017720137037575687660582482355079441004876580648984818228622656805925046565966811078532022752990898269140837672821111742569670658845182643616243295042322747744594306707971667952989316958182188995092561583233885302300113052198773530846568651580118324728721735521097886824135790715225203297382973829863533635918480580797889852248647134440725329045013388449035677952405371389608797083296915202425001079182948510567205261645812989380954729268703973894685781359942562548695288355314094485741972791087370944145757848799185545175090659875662438569127114986223590313566825658063579882916825442437196431423694830630476869048576266384652635979516943913207463530479039149747449992179041352257227253407156367765221708334191289716087349488038011659048871784826214950443349213468444171473459815959384368986949951822541237176780096990142331374459978949045934288367253533615540521352071538340437752945024634300958317250937809822453103619647168656731035829101493058332896846827135423858078999855387752324691914469931012465891155808506709384724089887388280523443436475172043602273679120807164938064680367269778892160114789790054298408875637410775445380738356044511542106876619988185874631766651205390187391720751141330605635313383527399248004884165272581490592282819729478836851948610147312441868416515528943746150664873190447789663266606590874426340937054704956619389892161807472473423143479344633044262833385536041077044574304069447784034501340207411886181805328688960388529245388127744806728565652824286705871101808571674872400465669439920801535632883337387341633668430108562430819114664459390407274388224503232907844985281397854026322340579075834496144766224858557322713790920115834263537939194530830674251456823072081471131873396659007970276713667241831222320763784099000081432460806779953862910492876336794411248153736721075837754595124473248910710170159698686519490171079677485842862374090542283843868550065614328008873460866398314415833241693950534733104681565261406943411298630238449825631677581796200488606908852442550482986197781074410812557203023595516460935327870346759011760083283333819196648036520843628932933488391920222805934697508113670139173679432581299637961393345802705045133806259351676898587805384718495510986614989747547825111642033848739441814392573969504804813923955211542631123639399193988837685497705430485111005456384265535850011001191244747445109098587386875046892056655252569832310812565882961437362729776870160594206037866666559499794588235187861181741507389985036821232431669170617201553293143895965893240519378568564838450722411080891908159056613018765213006979557119656247830427450633651909993108447851393720596203537420219968993428136301363056556035962944854517762691130425463699372021920919326121025703132106013041336476800927774231257038094168118988986272028462959877189105928360856132182147579068330764057396066460615623749618874779028632093964389692805406709497282500365412841845701266148892919497342596690374379571122779243462515868932724387549470905425948229851699000036913730211368947619590301547088718402184377863089716144914210139011333215611218673000798007973463202810906013492802015575460481313564589003486875937787640901711466042121896294386533088843149867828521193531426151994323752185882174382033000763158558020930744629463237236109522012213786423842824933485739156714207395422324663628519793562459364894317394798348025602390891374184019366391263645328654363697501238944458444366396047950731350060579229672034626367419867159122968245300900397039124616645180383734419034311913656054544064378291505219901138155896944143745164864782770973310433552345766177969334753904079349225585754322767792322055275257583663695822432450257018845113141171249681567065695861839175963297423000446547272520805944084297639106511026983608380041422431190763974681590041188725868446963201720166258315063460975003452900010859819022705413742831063058511663564956144605197660572327729673704451754903338498541175321911849783533294846410863090752695736346622642381659140332292599207293053533711418700380076726306535812213401646474982222401728383205822402722423815101250000405555666824576224515061116845443281602827718754899704431172769274328319651982198987168071935603267685542331101208897331987562970662290155240938404479572603333804038541094381559370491913424889390084405261104567457392272804045244499696564647470433635391912393493547972740879871450709233053712693572764185985903963337960396205478105834241655419780310303358397211126416871362314246425737468629732227359988861140307698134928957784467635049137573927656312981978440708956247638053416967730747574448400165898830868920324443629765051352036949267667436719526997756346015607307890320463980771869196176900926734906260054227602977502783950014691818344448239970072004368267649358552717821671109346919086482641515412361251664682544532740403267561342573139775708921622470795821254852003451253292561389722153867652536815367277971805870197676195480227827760836201764145898973039119205789256022567712820474034014133258076398487644051293781017987644004470481445433576673440282426945628599071205721148991429507299979097429969043370005754744850822828297534310673641136790063158232380231221905944800140281056569907332648378564122692126843309548114478193066204270695906190019579188479711172839274700054237438531449281519414732369501332270806976762084809354213591377945761957155183146249661368613666523325874627463301825353487449749301456072392039140565397795399103003393181147627628205432894755583714425632078610895347078154992066663844604475275531513022784695729183723672878708333492648008328266988311513645921497082648338991208095630326422131574502659618420424647712182106630639742744546952906865789287107422216841660432901090648586680487048084546248874555515924991784373335842575166439204592141091244245157765593101266167688028818227899308866906213732320968720832606954871075924738334785852774970909824566246971893093573784844462717947891505968801645714991963747867729708557194808658903833402123252761030733272044692075880129705505413005000999784139475642643978556337771014148976235732883062857243252120613408961778220445717171017741376576378534482940111067246716474797721858922707377910723834310728739503192828674629020467429803800687131996487421334145106058968865940448255100370890269313975374033167773366397112052897289812853903094454341879188063891582832969889834481633083073151066957482374837821647492082644567923323481762257228951613520517881895406314319197150187912463473514415983881643065277644369718195407386434327914846269981053405077944545309903650030360435336878879698657939468067609975308296712283459335650255790669928378510479959756611026548016634603566981886094411420670570465445646277167848482211894776084381276057100460573173497799014732038763019586936404067496078191002982263218064413536997522456103270939099488935262643106785464948404798813749006474304470401863772932044532285860438417280647203216278734336647747562222215716738831682903682680089349976426113422115301482252898680980209698571696560148002922892725220384886809226212956005448413769641704380646106735896797724236228377589941828454003229101458016655232843732927640073155326466252298442294506856397734988728004361126333857945351070783108463305571508748892023091785440092248605996835763733699376894832578358341519334785798483490297344389236984677366586543687554821695581099413261183995980067440845325530898260910834679012902560623157238064072027985679196720502095024787337177838818154553823176732929637648290222479842740730208828188050546259709404785177175271302287629343257604670174800234883853902906589980601863405805350892407065234632654718890444145398744841773763084968919892535268607004653696122754153879838887309697678686947805652002942032565931311168018149490046222419744852573631766393159200286915141305867281457741793180295780298375821608426965079957678582790411405683327744063185802018292029622458530522175019023139614677389737062342923515391820752576718836531450038170057679927094721523028572503463304741228814883132325132195786262046011369310002177381739129946029861795193077067744760914682366881727823808244123926176799983317110946342397619348809025074628779858633280048694401410368823837289168827921488209539105688251873144934579308640347260945184636287529860403490599898736625800000342467566384262276733046863006723510182523156532715458895345840059984003209937908984329529758863437127831307654567178904756063728029686078816137280170402679223694862820768087793093181382550857864152593728996454015658978083798496923707648313551695081694978594413274544854040667479908555285513047527699789482846428959804801015620850753098849454360835133964910996304103526138149693629238593359403064359101674349103096331752742276636014104154156790481222515835655920065705307812155457595725967006932392821145011795450358495513438254428350084984350339746089108944485795686911222463330610142232923148973017158035611554654861648902943916783993127806377932010248438421450142711399050246046032395490646033037589129460744234305953063472589274248651685520956516281982045524172993694748386895050836718449591065708709085860537182707012158281973101339433432343450409391875630878698578169939381701162213629230247363191216340406897135830448731927841580803620412889920890587535580038414122986571533373220949356937403326639588670517973171798969362768928005791581184647323723210884372409321874453919517711062725321601292834195019330596222552182242232510872085565158602149830279694585611670657960663990130801909003046802465683950034770052828744088218200289298411194854808996153160186724402683736602822734612392676411584844790086207959995280708674643989382554343587104863810044448487120323373206740005968893155723039525112552814780562030088416940955359946735370362337510028601000512602356693558166550329399839579944921161844102747636994496059415034445839937981269549932777325037711837498553128716795925204255277786387133146186827653378587858927837092763745464553450447333456997536600397152318097753365738549121004420531941498897160050420819089222373359111427732809888149496881402056779706481252909172950160297571860875565363222696574762885605843869750118961513863509480295394797426409161333779593823366408422634896927648259842091653426184559203625368135253672718220157640762786697876879561970363689201025329942000992578633083133743772603126982965060828832032229236713793304815102135936965743938709454758294052914052467280982997095128319999920629198124463458141523071479575288228729995809413202401048992472466940190613193637819063479918861070599905643744506059457704767818955812388425203615746764214947637395966120854621408750742632125811712710564309457163535423575150548530637630094770109616606562669760264353577763828509456185024631119696827866995053935589495080666513356904773551784441091191086068078007022037807507435742234064868344830442048819395826961553065359505869715056563786163076625353591126869651247070708849195610884115089967112469312982972957968165850525898989131387568499624405559461479740126936193610031191040663817114549231719356862245107102787028910253061186169614487914092499098239053256589293824806126078082006038622184596419583032861478519412355239323558720346579388748822448180002835028384049835258588234493667789655829338330117548768546570251580380479207520350608512837342038874005438246105299123674000644886021061784052254248152114875289374379507228714962547538859587870706101758485618493714710147902290466220014947019723044850638546183468208858865250044585432937559776325833311790376081307149134466679281072023211282943269680397380875269165799606029090054131693714763372378969651228212010986777520902113256612122453099555661538290345959428792211577694123304459992521174945607593376567509534453573326835288779559369983476243987333887605678119129162847864825289376103125816160328285349159692960478229877346275184131577922572528821004168131339498686454667825205387516017866301151173458750948496538018675979770386583834270946861096164904675515350954928594057764386425419895261216874536226118815044295226613331683784848205172241453826764685651881872306919100786783276106868450330157190292256470758898680874800532892915165643367194376305062060920452530875243532197442391632815932073253839508675791769248527238081739458050843993494596522052075506204962240710308972178784276981965815063592682076426997254052687471238672973955758286858672235137598637863091677888201303732837730280674385321026494130521156862689925286308921558786183552951587940584275776711723771334755059322878525247911448433071735489079662061648283352432030154652781970551708403519352202973871379173077772665268670226037611806962255694811544017829109347980087469388323583752676714244686033784436324783417409844338794417198461897947146841444665452991613107317593507316685712884423382001847856113494517889935126869621227932136775261391397769737756632027386846517987849935799698523523544941159199331955780984296750803324135617935444988977753944219183283284602831269755633359861403386360012213011681349505734997805912170672005195330914523829889408218770704810147122213616355028778202795970385750800881163707224282327278834194917733537405806212255531126116606138454590051785946563951728122012351163850649424793359834444881095115903868839580623684958328254715518152551468458485557330431010569776471206453865536524904238021896910514939034101038998623735163320293055287680450814237262539863939727638559606664802001391358131449218643105955659206047078805094791570103001086375874812581143865036644885008217059578507303873321403405137718634277161854342323259043597933352905723919808743085972857181569367506657792070025923853970344197655999944086735703988694873331142378342465427458106042247564970539001834856317161236537398450265653222320061244729979902568801296561337730696515383823014050678140470041681945829812630554635908251352946319544033691601727760879935325919010476553435308317221368132332637246545388445395628398381664047203724901976886619247404523172418523959542760045836743653032956561395354121806497853083973741509889372670446446173201494711112649470360167238727914932847353159595724929955989833881634008640830965247912734141158949970060960945024482267607261866764927106807627658798399140477805585418334040750953365975165263209216260135791894273596169486792535728544575511921037008658158820832863565653415958769129602920471776053008830904649408561499882510153538631847729110156819802394107814386949736515013780116327054337575519246660412063676920942965296082544559269916473560181947791342622933865092615128870366401160832992296815800009947999801392113766911699275726764969581669766868841010093279594751146576464954254831934647842114939941940760886591989895520034505019919976536328065307963651049844256227755908027932670482374787599141836988708140789677801968685338961395108863723614698896282336111308530572700622192770521056086215559402457037482353422137997743212473947055216500137783483098385065862737903659189853984243069141873199175591195211512232281496353083455379467321863270398549947497448036345689661383028420962291910415694466202496919993947681099364223320272467072744309055343269057204558752709421268129889827650987522110230345017081130751663596955750300797217093338919240499622096974961025484554550883318704904723853562887375282961427416643724056034003249350327266932418808739850305956658867681083832108807132780844669658048750753834841503065225643827871160723521332185545404196079336666314820255910998345743916787748564929069518065631337563839522651416024842132007456543354654014784087516399475903084752831298702465080878431307803263540290108081660630176572654701844790425258451731562946585857267240052533738631740502633401088673483099500009435561175211549600639679384232609037330774710670390069088423750752747447607186294707532980248571780436102055550050217012098492652497512506918142288813472439328080602596409570044645739485992323922467671227771543622229234099242101101220711751410993380796616743205718279956766921315430383896765483733653783373676426261915369325629599086332143342307344715506365521937601130408205488036301597944420442675890193933753252705882236062322742742017360306182213461860381816197667711452357443579258869599907460418175399766431785693388199185683399616828434572996645235017686655441814478199576693587281791403804164713197183848352967486182292571807508729273004692247481157223313607488876125571900902650689547731839513646199412713103813296925400197612367767266686687338874382910274233273272999041857141136107605359497693281473951862881495669105111226364372794568832614105267760754258909374369746197072872718805654470876349878096572640320841475584636005196395680310326441045899923005900487806028234145179655758540750265735651167215783740579007842970162194230731368524111443737826689392219534735450589103977250119187343950053028408782861129842476289442801394987715326783256571051228166392353327852237963626430832082360122221282607844281492592535276050312606563629285978602888320799891575123362898479621704918363099141694661640834329835273012156177936852911373079125401942110622804728280043677289213681802430725928472449894264198150004753242022628947499289362744240709513569731577264295865137465272850766859175240903466925476748411371369254895353906462555860102442020667225739240477893934845101515119028666050210109329038028440768026963095976905194935302395353995539157473166598420312818218112402487455904312683737756867743362940005443055996175223542627255197077374568553690510582087181823897349019753470579529268177595702440867628235786921802904356327780039706685957275749879663635634700615701182642874696980930526630610684287680841780627320950537743912944964842341606839766104957941736754045717537286230042001260810612582558273015903591056390739867303456996543819384296861095837079538584683426909527300767998245884315510035748895961672384045789135900233102324188451714745374743412229687579655992127220391426485112390862449281027492279756629431394319538934673441686084663516593854389945977621814571458074785632424292978684778890198628092749141918426813706145374527249621752019299686050365062976243929911624766712461404691803051336731410403431939329561791275908041398816242458863927056729156461734886676650755337962884923995169782054690699291344602322086665422230481755656712494207471940072508681676830056815900917220675769848287464721604932141871964089214854948377900214144096802900461709119942507089748951681862129256563798081657104535366212612842385163279642663824077472546011385929103593478129948512498341404096312303136169018818282197098994487447120664105609812478925660521968628138832568760620579028933269753128288502449209424760483734096989164012919727070312346999026988027432156195455539137518710808383762589304390251312260278286767085638660176808134149359525525258621208606186101465555730753823818282801340006709386889944017489293043560727971195059521974121275833341108758137855459346942413225194714713932969392696275384843019642324481306629953719853557064338413911887920122863933151767965411914834595003265658853081125118393718153995999097743324437516733042184265107139302978884170473530948228685823898352081375109183703212176077184068995059158589728190832679493344973418627347334071297642493137115260619861092718064196456309415237496362230630611312456789926492766420119574321585542673895530211150730714871803421179039090213184170298177087456498601737881688102077077480671239459690166050207415760243955418980472462863810601404744179962101160632736116008037508545235210898009261167368360116459735034899682943451777014685145453786662599025859218863251441445894727446069627614709882508507863102559825468828134201366167002501471225709278177893410174387210432353991279557795652155997297522603871952577657817862821681440350110858278459124799462869366834595274490816277921849108305734848036817254744721265645658585444070071869205258632634067717657306316335309591134695297519657578116062533301918979026536429820531234166171524784139030193954869076247928195794519195132462971716823849396841699764042517267959184979114113010419931458582030044754657419996919839367547741015752451590814364572382962354785813940766046947360856257971037175649921990221748297002781861917417153499386619077203844048460852382882034866866557842253763587751451636176659579216101282115248564215463412154351453865040995303248022150892948409948553856040743540890337267940952682934697780141747631376027935296676900167704374387341658439051396936883112335465845250161794670051301790832218607321863871809944175673323951847723625726998512140784365006129536707570020423576471523871159434970987635219989755405953510422205970958705559509359710130852959940022230301911940523972971701506587647475483587510828084628794754701038986320888315465569871928522698689454644249806837888891387810778804511395776417700383801729686680595385432694294285661175422306595584468246971059943387819649457613140212920918251647813812216285966613382838025596319658184510009052606062074327179362861933322455636037054555944769847181338012553195607742685601267052299764894688625984218627771404610207935011445939455451883826852463818036161466596223413899179025909882038095531044894762343534822831817880912267100455181319539781623474443219982630027754347513748540873046882349982585713533815987779351106772472807814545222993778102762515910925174510227822003862960058139517884387925309544765457410806777822664383115426955290937193353285365836348031696754769847487827796491928113332321276525654056741850458762337164920328037360211767103803298223700103926049844129954644394926980182647974020388711912955859574664546638554444178868686068086484907364058153850726682050364177774276002172795993700568982776502327347567555085450023161787005227828487431592180078885004652779182909798461599245356243855605739920915794148319098386744904476131641640785861635063796907452251473214470250408464112133738106030890776270540285787676753300857363874986838605413894657930347547048104537212063008606113555356776908675616847927367494631434518374735387682888802881594029826927810559396185647593302472837553486443314220110728314304325207572547450558626575265829744306538860755755832886346331056394387642882532485153160212531893848414206185921347802797537498964107982026181424372046150193151101028829133222900022593743442636441453015529941293287169346729131778607510054234538922943911672344027357347147136723279753965803930242698933759832774149186318216909725119482870263094579210682625824361305479007461211033422616010291027285444083652871478867094666205832859815925155230529414876265620022161897538374853925008719123225188439082725376932805073539625426564081018300089368228052648445745660844947671186886938574402603534883428507694099065507605674655361591675192979286936798434126548705726580065692778551876246984217542596710681015292098388497482814435614814000199772970193264963239058720562624147694397061691048543941072157854899070420563686811207352488471442568186338197031209467759193871184148561767651849864505544165082143318711675191532737254284433159669373370685919452466892772921845915412646663818014045911241514367732845745642005186017399647571554783355912988487200479788876217395680964763897171955460788435764315803977675660592154087550938872721445868176857348741240265650274136143742215264086579335093575816531793683548521794457501090310252428432353381987983639793212546650683849055474284635262979630846123438847501825880581601509811693296636930582336347840994190114706626796463541280505705441871112714622740348235522685327493462265288646505958598918121458494168744426257803948888544427892026034301640757183132820339702598657653227914066977387466688019318385438423921203846947930985961196776722193868677999655374988286979333161279821364468340981190077145076099331382756151173726662385963245968345495768934643496085245437529815170832866053718146938115651711116510675378303096248146770474947619279261542823447477376837803817251899921555377639548761716030617976200635121448884498910632915491560070322683895202921065925934761778033671277658921057147010411413558340685392651708019231126464298918032483385760850387625180122710645136603916548846511024088143119821704982820032578921715380745834524697759308768347603521706899419352383212506872528775521633458945259397108760360104724393982337321719766218966951232661057390914889196243323896936800546956176297989771763585272595824214804407490162501119326344366000716709361441444804947409252894976943828844697072329364232274615142397066617176491348310862377678556018362814365160351917219733283362246904378244235792525284801413329968511785409111808068114981079095116131023051654352327916688090282664725136032155644813333982898110965476754347180087073328103214686285231905475744518835782542024514916185368363033076628792599569312866004491665811462611653630836693458662193010626993981236894013844224712847706551910990456824527109754430757474507060097242796371829256118593343442158244371655668504065363055349757566135073162616433374231122600717404598011028536613937480046626764888881125278467473956486043474714746184415205040433858905237225396353956394823097528427813569960297378011244487809110697793505368541509680303430426053090621354281367374716642157780361370949107266851157429396365226648471091790085605097447588722593341150079887827366601587052735134480542287553817412924937349743084279550715704496482368298685027248621875617871309866461129711037596179483794558911661130005705689407236326335047765134646630986402136512462847121735504050070539288895495495380040066804271780145766140605656742360763598894577463849743232201953415353623580772228243761061358408408667979001101590584311060142553627789416778948414778415827693597251336687347443025111427870937674151728084994053597022884335136351356288497543803654640614800151788923643157043100632287037092622130606881289752297840060695523594485434883998974664435772989708134202920341322259668903923992282155750975713185007781920323630581520272355709241446023850072529508631139656792776386408485569379004496726916338882885591743760456284545714028853765558213779680910363954697077604880710513642017023399971175012060880650277581178949091628656044615836598121466966538473072756629498744696279832553896652608519459966622707849915253048723959103756429792813556619070125515331129911340773607252262732384806027628838164152913055168360213675317116005474581127728472271745901182018117918424372993637994064620846441238838096313887691818806189276523359758330072977960970201409413386235682546003290500459686918275977769483414292288858464377840872949327928868467379098023053746834463237121978518141658937969132430670748509851466439548544472307524614735116369129450473250140350085485388054060955714699289687933393105401690396020628559070232489036199196286613527686126708865472564199585950837438107109544185157120996569913588994329889500287516609133288363677123536314566986662580896032403303180236685942790178661744837554457454789999483363199727999062258702431734315332508004460082326621456290556273961481417552169214752044279938500323530108547572058357304689547261497094962414409382549463130119555094448583105909545935435894714070803457442143446286695434522281689522168169603877821791640896819634830191965048990334224482129384313158380737849902155298040082282945974725007261728875210713912039820094508747756827660232568867820455609260575388913831607609730139470111613600144534432754822047198139439600114708062889687323723775163138218916664670192290670775761260563421314216040651287031260594716612281111283632543265700263614723919461867905533658754648306185583431321975144180155255254216073452050078488513136839347992624864759514422426450466256081854911521087418772419723348429225880688416688493389080228668605101392888103918113333962627655896019930438322734195557981417702178626890104123050480559284491586228010397432003478929626787425374432025548706683703368820374646570693848930108913904796671307690155398422153877300632287747394277983923880927828885701397572828902505891461866566802918374642491079392622199213058494897632400111208112797235490069267035071519974446181391590852045431784036810405367549186505481434465256439890840209840129613090119071939610408096231426198874836414172299051514307401475469444204829335940420337696001903820500401733648518489215753594927324707927217114430189226512027390756929069459663003778881487308257032838136566424892204130781305542965224724056533619777957329227403767498394940151503215016897673136918060060958298717359114816659902603194399847111171211241331926254528687672343085459623911618410476451688515138191311477155456562516755996565013342212267450545444237924892258037613665812367293152600363917564651124979559813456537832516400689967972350932940358541804480627006928823054550840430281137537713850052859165882988174183169623128659758935736975196164253373414655807835909476315748950130411942283842780711015689861605044725128239875783197087647194195473627870406698254965177629242440775945681715660303154150641914941146787124492376462888773333766623101301742702815683202397170152332035538913479648341264863848910291103615098282393528594757433288587371320735764076087970051172469388984964303452702791156699359940205913799859899863575307549719689350835389181938411232689965962357425982653662740349088696598814664145689591243564173648151645245491490858030570308911603838479902773844896376448900832873629420883067455632243461296121892092999979847574777980921218413001222960343988492102911037151645251891168773157135674608646530074302939775037618199882013758425558009297323802748860841096007941405931361926475913040817653290681206866689125165166579199438838507766408531435589699804106054034447601320518266844764412280617164087770148999560925341110590113706197025782838845367282213921756064193985775708517949103035088066522214955597820020063744058951367221585268947924340263514729617942069107272803621712493401782236627723595095758208923987892123056288917778355552439752197642853898006111148774031284449878871872828825388799112419087950948913943351456877095094851623657939393865698071575652129757174294547425697427970736457665981948949619096120681574454498471969795614585002561118806259912556112981607636885920351927447184498645735945235809843084793784190837046362097547247473803808661005229079219196261098449527853990252788365955204067343868406305354020047393116008777861434684686413127132622563692244732742103400394219205106724027504094296484523822957846877088547857508268211290972827714270059220261377737271919476365261440953092868741398115527285213279341374684637132799001924934187529073875868595739670767095669798354862321640099016237518158743907829874701278066996921281592721856175933598086554675498530185100194661265045873681242476898556366257301537003332440781679778945544243631682497597999967549966059464305608518566193709277413089233276966485231129021793548331589720172526138196603769177614165781281411924935640952361978218300792558530865062555089541902442893487548884814479318070588775035834492469433974595835017243589018238858033938518083734268358494281969139072055513168061354654719330832571922120189322055473384750345773747622253888974707028259263101537042362755973156232856041072986951199484163423209392526610950695888010670196638233965131841058757302994993288592901639980956579200558707070642361449543891842853605529326729292073553574591064743041384152843711954651540287241815397402828119690772997269217068408772514639518027948463285156143191685279968536418500437611958213603230312038411105647668178425128820008535173778872989108007144962776010961145580335323296729924526475955994616438199162505553135744844209443619862694229895127188066484078207051170793329781936104305075853611061681821893573819805109077316377974121535504619329712880575518555234411656405085117748954030744662080429189514191600599422626870806481505015493977449558618660648044967150448373121371325794849079979593314572814777754121747684959980595323503006979818549129244944877209300450578758758747750989975259674551994050423045480627277739821196873119705912743018761997974417976145770738680396535447223153744487074972755528329542655870003991732634110218133425521333599480377591901390455217817565459442530848090084793177981185687261976512689487866254560103289659875713410929564755121309960800812076160262115741671646104217354383054100803451753992335562066591425255183212360603534507121031108778864530556684082774952118240795823193657185840231110755175536579162993831371166578925123765835809604174535148778834727543493291125428613400739022394748840655365953709608148602301401511902976312941848108892254004158865978882209159195291091165822384936764412622894237086889812220607094366837870994388209307387635478939552029652490011532223683046321411666430861407862042315854831938145496115868894282172253900872436884855633225330896435882830837078535207214383249271543430820008797878551433428525140080070790320760075965679484223819920363671157605322645335608765222472753610956623012710392819993240458206896353508687741151668091412448498898929373829524778339873294255943928935652478230288443393227429232900060793585036800262150407424985403914431809740476898897959789068956812352411509750007698251490547409946033537068786610727213413740688691877139439925537287702873618270216027969504720796017805676569137809191708207511672997422990456224154952470469855729272059892789415704765149501224569231385297389516432384760408164640053971284748698929380159956994355913831707707112012381169635003268928198177447244063636813852348346642752567381783879747152134866305201286531436795266563651054778471312065233760736460256364424393916327383984419578441610984762783011940689300139326080081146494370263505619058331436457311056276028343375710213383475496956271752522041829568353019310719869318112939675811087113432957446133504369330759522178482289467871511782238367494965857773410101119000141462047041843077896784816257265005393385698517746669577645147621475421745081425720204625706929150269186132879229646489459851227377426273180439646328132020428425396467889294162082235422774495045941959025096805320060754552558667685193813308788451501123957667785643808860447668724579806973547734885578213509479822542747980881030792289034673453933465274183739587284258009915526973036956417907293494395055635869487300106665737080454924577746372827002019499434239709964768069332865653650543202727842860800126662407737334621425253422218609694427213263721343499047934173849681715238233619709163689569605615397742873428209862166974702095156141996573066958645427733489654444961679931688301266551790693837291568030501782849643477114877753975576967360937446449371067412927194720087651724584463869298176795977869361894513115411908273698537074558625759415519863930343050493524652687079759996153295927676652661219038139157078250972864186605860222134775486772952554120824571561636974093931502471948701394872331168888089309636377222843360756133999011464741445398692005928019925995690149393332951478240443772194108109369690175987410182223647836785786181490914226524567558235446999564405068369963739117570938532945575592634846810026751355671939182683483969442257231138911940232978345466987527300043843116610595355364264867667932210129439656161172444960265519902214124485105116943945353650140245543097200138253958095037341373239106047675962939148434205080880955824826012114262464275060234988099584079491755346071848795310620183784953636975804643631556150241010195157007299247069742686866608788436674471538769838539814944716570651638692945030104142260561631670611119895819957052928821914464572672144968683096088833420431627793883003071649926909449445508889694418370138962648993863786644379204680392348717809042823304308140622484133058156333733294673643675604708040715951578820517751309709867999737978528329821013898144655496268300960571047314714125073512963928904058272967240520882208682898930316568559558509648925313780607464385428296870967903553008618626363664644412236437870779391709530467484442125574698104982141891481549234169096790704063694905427399257262888138228026044232736524899546729349705835074595960894443353108955179692524631664690260580345783806517199762084317050127586739208824823931463111510701145417764464016017648740675392144738176133405964893228685675772663574406820898022001753892963171472632043301947599500015569360804287360037636556038581694199755447576646395242255667575451400958263708943884702962762825052444630390123540202841409450326646644266995101606509094464737266081875955448504296352883861845088608975322556959063833774314175295880404806878325827667370064879662105223580832876733314867081651414404904802009541226693852113466788982388611544547932849198733354935621650896665272271192401706640715206933284263096265851863560784895174201096808378594043423476838838005620612137995755625153554003934579457639338146869002798099511705218707733868797342185024490116790917838457260308449607931996096373717565486884690875018554432176433939355746788903680970327924683038328432242312817563276029450171333179492614167446061851635729932106732177413178616018342384449442157182278138572738538218261439749886005166119868987559368117622684845233920478178258072698412538789287297929983728598589003380315331144369464886444202938060798619808599778832048330068639396225303343431918351077652394772993288935268873601518744680306844930408392913456406945877942556376921233656645946750397105903610548777487048341014806384641246462047547351346352164881330366708574043058060895635296414733330439940259786084779847661723396694381270979184736355918480398613474516301839090284294781730742772638945973820002802111437074875964850609546544851132512313033614677654333984702375364091388307115896620423320316332922382978802168062088944148413668012102083464832103586521359356916126850119592973494408578297905300882557878263683226055805023300352652867087574741882938654731209444290351897915464218908128131244215669805508140698288347277328709609498459221509253726115468964914678929901591355919797161240010399592020364186710516557044463277362810503740764450514169913933038733916295392621369407907002894639960217537267932360039548624966805476548759153197418924391418946606780539461803060646467893875203138856209216138499407515286225460403264491672020451523011232798934164911010425738105499921221245322584461155307175723070882469262109314730069702497730737448725386736762574738009545833435435495872523284992093331332212604193714970436033365514290283815682135523726807828638967492494112029262298484289606043646504032225020099925244896031171756076942544756918318829081612697386732562272190648310359962283907694135800242697340329620073376884032053086503678201393420337722240575707882084642644879230605387532269305850477603062820040251303419707351435059537071711557303909873398097761312561101603455250059496587174054810610769924747172707451935982868802418825752540863424241815698639816446284340386199990346179856547063275028183130100179285996453414156058795077478522160875512764718641685449643204569083706690627476999274954057319912850349187150894895215623978185184725481781788622161272524594719145504897682982308355240626022309871684365741943901355247769556605151799179263360782416349760246912185175794331224379002353386337253333641722930278616299879854748953335519532862511927993811625624470172075178085714591923642087287886418240106952783133266628759386923683736758287997744039042229118894012932022412327731535183820992567586941325241631444159272857092627945665250530337403545719301282649517313704809422726217579358794329301409190156372521190224996430262502247470834065880405650341219117921488658469029707165168226825328029050558765127686979084277125959014627842641419169514432878284131115159072311714960209746715996585299846949337874137236176292326254415101949617910869529826911321261618431259855436467619703119993257996167185252843381610404425587124532825411381403407645665470589323480490168559048188529048370630002971552420552501419054057762268363773601266057486577800440614764981087655770697831552610778769211970429518970770274701655706633880793522414876464437354895822752309986552845282412139131788823922744956506585819637764556136612707351617972289131475907756846637070655030829603044951847856971312865939780515170411179660385643376002764295373002240534048974265008703111345237569200394499936096207289427690880479413262879692256325892022004293973788730648005032246916394591422776642692588378282666523558247826193296712629917742949203546459067537740969908220500546881444674096349264496628803518153095788002567746049043717872948786543213874479310514489412507748540809512924949118757885430473198758279841137158376777610009133752811182836522444598984403086576073599867484396907814075440210949868686041512769728394508082695648238969666846919839683877265493492273554380800325209935132641321673583587310245102885643152849419081308043943609413077167789673283142359066122452518650189647351982010989328227015810831224917188755456293683536925562858633438642335662376175570282937941667630096762911093538076786137652401027125886485379560092232652972073453132555871504732330470684738302264567831199969434737416523592364364948734587191245112788823484286731078565677107207871792952321474223193527680215068491276190879028001985582211869523601051822213830927082051956933103732176584757756480684172403085399523439880772783877627892824119500546742586261671032272115641072422809481451775096713855007015812153816168784703591621224958149649290440650993288535856732826850488327870721808970857419738919252626844600714300956008886234989676414056113863121392236183871261031226753596384517371683145309649997957934572451743486379775499017128336103683791772257270593307208536873595777025947374691975377875817240821894176676680578329664462217677983076680759482423819400172503996754901102116295649433158635633074888898360943331267039513532688950045709078066914734966723690026500761252944843636147046335172195463023414009642599727038175822425988491677085578519703776844589922589540014796423759602984579097021043090815005993537713741634722755884603253495057031989343036664807270228957183535027530854191239358293358459320792098564333221684608864128936794032668449796820320397299716619798728422370129711701832951142437095770508576157465220771499987689835775156574248438644756676401935178518541404011389003777866263666526108745590455824159164800730537620206887759813947449442118628422552431456556017650349008681944552489124248053009418668103484608493606464222967434493482683997749052849274391705809906756992733895436460414205936662867860079774458004462236717309932745249088928114974767457244994869788578562783918054247892271640438434328124839590471862815311437425026342589045402517976313201799298322270641575606700735732885706967200700096173969765670453755900304998165159047175723488367228480476431232314030937204862886467406750131943993772757802604160733071335492160025509597603629322612708891473657266878777730766555931928867264617258065384322993337658101455181581127265374345198891296762022013183467016506172158008507463860563823476747082886890266432015673984838198033456510917190320204285765131666299500832168103148361512115173705935744008738663971758685701019199443030804271936912783069491304921234074368070448071272183894118532122597575242191739281782640569082421095330304821540281497687500672083963780943759170768760002402261724627054017907818411491800205208903279683563302140925102055694406042831356726973668942595587357086649525956437111734181818424365497056656926991125641296505246144422027753271305856056469891823996115097764435133527716328876482596076418342246401542541486953015601779762607778015110831568086896583982563897208937583467675005098626569759266594734775416345293473943392890579544698331150411007175405426648443093035678576592687348109635583258976405272771022745373088321822138077227154873182056106832926945762026781815799291277654766830373197969248097080589213001398952761599014195099387609654118021842392069513121026316263495161927081567552154443210451151636543823719941948733732226041245763078265885259203886351469647047750135476707793674180211884731335192016410798396107444245204911407874673414724145912397492853958987634574033287238242926049532104718265524625121950377121414195721110200731502155751353248099066519490952791708318601600158731763119016331648148547838127064657119402038545496570569888627419614938586402432963994178138370420643270154267565876666961836073465825508080228970606834458198770538642401252247736049943371035451420780441269848742281081165677623821074150795995612091037798005218555192208042407311716988958645345234798805598334439445188042595851317727033762773815634960983652025855830703295357481825058880088039370854440222735734098020804847103720021318893479805996820921524021316812687179233300933554296484109444681375532492571017425551571384768872825629410681463468516322996751852682879834226819949241179658165072014276834453068537305280283892926145396984051074589644468177971100575551388103455489362029222885601793328114857853649414142056118338708814957939976789091461947058692414940300585438582754212568199863764128560567566467746447112054712146669417258636358480159259737605117407290499638797367410859166259506584400573528742239284897953712846726756638581113985759252524446163399542552816254990683294430696035897642109187665594693175859568205461953258302872427245107624931493314851802276338673372812969131479768124466157531619260709331115443159926579536948433972642117865900008124260310533616027701125027727958150627097873662479158905031444529774957973487542088408000113726139149758454911714536407882161575134755983754044365430542362108269992458179287796730302845896026743317320798242955861780149804883101139276454630665757432760623547961011482777744969570355665675407792877541241381229453483566019517734798464669659296993328005538952360178326140095835180526276351336242814866055043006907366229459068316087956544327563777467120061440764126242179689976689898444815389127551416508937689694121348928381055258777024305387589124535380949652954082551533185065757285353112092593452931287580479080476561609067770982127167170945335570845495976552139920166581777936345672808333721711877351659934266552663596004150091113771110766685455207483648996516778113733993554703924940651652385296283507281871195337064469253722207918460603393845724218272748787070581208546001136731012179053101019968735784670978313377830518330108363537549666472236661766111830499930532447145718039962803109334890246016457610833252285828402799726636780189223580912262156740355764829296405276133048745792708099759287978653623952066848532161336250118697550782483606296580768206598986651470268921826830510929054047352772391746665494580263512212890909375947114487630126964008413080645066835674633297411241794597393185493669027051849933723986456907976755908546123602384483179887053506051617463506834096933196785660536225488994708939110208744524535983568822926561049753723432995594322893826694373670459399852875496446039446923236380309883238061469461473625144273884493123638060555250997254175908983959924383463995282267478232819018039551885408227939595400173467406147448489773454008312499913356271018427943942289191919863733580391926487654269271986896565168798290252988628270328960433939302011427200400262877246837752836910693371086498867488916652917925454128561383088856672092066488429908221640016725625178004580272846231771039437743545348709269118594508704571375958189236135628173758344912590542527482381015649193656357213008502734704529040721086266134572477288427557966050912043556942651115742993023051770810619307999456104271414292296711024876228391247742900888552279654686241213291216075670631066824985859966658637411153209184608763993322857624459883408590833058748268185114901717033823489012385507208659039430412967996628253564297170852339749278915856079884941348898026150238159897530555997633506477588217849436175537715047641347744949547454628351147160200075195105555842237219355181978982781173217857381826457108745443066044800990403127588224384151860393965292747795573887569012053402825799805523773384481131915890671138388616788396825352546685652459321262624530475261185793932718181464544541834310184135951811088296810794504199345088998221893661366586334426506370212500473007398732696108407578189845163735857373466550142370094418106203656665105985303260111059766924071444440933318210358771825897066077338858899426686588759396864233518502695657017513913659945356846676351197130352397384789992620655853411567373881318611545871426841010817230236645244641848799413174226013104077954055003253928112543453780966840838887358265473019297723701818188270591055394720874010559341024065895229862266142657458144887290274627452456018420314507795599844486720108808847780999841641078657695180224223663864224639945321041938644869749020175403153593605472847399498342282153403931644756178794379672149560430423008755697262717468644852245959741547357476980213159121471031957472802422581478140014196818175789971569201515234399030912566699124595679839505671763086173561192666914737075910080353622074871601683152111348471742456695629959279518284154228703584498960908934176647351787758945338965560102630725109197529666513822655677631148214838477993136464073820978782513067127660090977520676453924448403862720864177066408432788513918435604100177441142739058510632571673019500408462770873284781055730598916460076898784062567771068049891057142407808092455069387528030525490272914557276607981875727009468144289750761697667388641044721672351532964573677365988241180277308423047693364018502239451958743680883339195376928571235839934089956627158842223015181376835328676795010575764382696155692238367651004764845527471469354914491633936664803084294209392990812883207902586738400344693804681020526624290314355234769941400402081015249854609247993802648199297920052587069197462887171897326997668027201155046700008466755072654127132802686573103888838353661920381114727582887648830312262894199061800262811000734526467542095092621311469259949283885458195782914727550384346592964179006229289810050369885592949333113752530728384799919331848150047807932497383028332014845055827933242905614177465862873034495137783283960190932337514351624946340701474835807341472110648729014080247612690047128739215927838687051984772052493984477561671230543691331460035133552584486729765696284985807051289165045645562396648539990388205158467171729227295188741868158588976211046672682184526189236918613273955066556761991108815332234886555858599762676033002298358581152017462278495428716811271868154420321589116019223301272447812048589231932186622986119414288450947680701017919866820019598829342812199935341630665756111197957172003711243261506172436727969867453079871521578323153083134372490086831112542744590850158893291308942439804457965587653730639937590550194408117702412809117488544013710241582558883076826532244962396547866415648557128924370519579923024621076817656716558409877902656001919440528166643244446608351975042095913084195365588574235857767482958881628485534508601298413835428166569457796513266490519153524321403379131192591954927315730025852805388188322388466100252361186598737391220659878155829073350169680227267031442087510667164798449724781115562385179110187185380131235361578975055056776304180842857911928991932888930158251196282162655448880214277507303124393845680543954795741832135613551729773352054215826264728856399264373635586141898776818582587287217581918366990000023465741989718721086981593179742820590540982693202389352956398093726375913933773611359476153465557372211454129078229575990385397360656502276283562866985002225470488755133664399705662269363933636163513700879506793989002350293407535066970478386563399443787705245392447599635689720893363791172932449307092288150483513405372723175995376659133971449758744413107376484845455088491356241793735910942364042138670630826301601206023985721789257217159640677949774516007185924541237942036863933551858689482695518897462393844640394804975784825471517404009689352150718877435098097561276939240082964662882177326427064416389476757398979179366600307740449422479624013450174146881991687286703028425030241416605905386854152888208089568461255816270615472492410210367783768393407034605850735714089831499563676677020607621885618126086559712171113895241759410682100509547150603489001555833226572694437713156272019224799810816058418321932513023019576107722893902825171570733433636418650493792929923740823926872929431867188823984368453723539064836074327541955165737640041443273632071748980565758889887367240470024351796589118468399665693026042756096136826721242211305332012260846025961276112747903042428052786564811622776712182957699222423523906591584323197802344086103637311259308129501863523565791156789342973825371568486893573309882641090394705078177554503099579931261938046175286497415426197210985649561175974610148675192727602514165248259497021432271967674768836275507946860802035854998309549820402855278260949078054985306381764740866293923105668048342700886604411009175324979197745736894038522469440081367334650213335213724941439857552646440028241549374007130153613199817073287383447753930818640255808965334775378087291805047800732092279732606462805484729410541993429450390033689650812902955922438991403365974862715224917274852696753504383827229563194242366472239728597635559667576009310371492733153671096277294888074057495781816633484650160345817062820083854284972213589902467380074132263734607297051039249271897146634051903384045598770689866366498020716928548006191545356056606241905086585754475547895407960634972275604248967147126125733129834992960368907557667544054079376709377500978282765341016034519298426019812821687436586545087516163822975988971785539963796127745135246608918511341805292684271646863728288484136874861057985527355751206641941161497594334678160284889829983241046168976819686228819850886737025346054161653170455406155163659548841344208026016865608712280127949327305893773888279562977131990471461919001981832931974378450660373537220836968221989845570481701021095737106690619244329152222245213432687377975874699160554606104063442474887285988548592713027087280017688938656102539336723735832916299011019633343449635532026201833815168841308189436251618247359515674063829449965087830286436778831597927237151266465049496169576547684738626471780111289479545955279559746842093264171682889411762589087667047104303803914087098575602116969137796983464179549081414341208899571780099031946256121977734424295519745462336167206140186579850784020703333859580191429004800211055106702007289015132809491261670580358765219636293333648779286501043305845223228139146852017514392391627402379979709699516746360677074627331930636914207906750699103274273146706999193221246798401754876247491891158075288391878007383382973694445215169696171223176526112907333665202945476506215529129390560593447300705938130516338624734093821717225223515251985552044325105147114792038293359443262972937280991333816621540878187916921289846964803671197480885508433984787071418702123455627660628296762243614523766172304818648621583465051977296974741984589626861536919244014292761900956609907861224092274476907631990924120782097046429258518632007092536341783442598609926546220921540211633596330429846214060305170438036348424433544944401328842286523899287957154279199019394882575751884550088913646213494055844161127432636173205511717765194556639156618020889956272285296878728896718005993276389065082126787631833098299993018325909463221754468539339768305030627795183197677867168861828093683401042014026914056207350148993034003271531423092226855748881259475652229179691639883220175803383909326299436668743487792610950340327262948872749033269938139050371722942837406181201302792232485627242667283730718244942453416347225924116045792595771173856497155159418501661791495455478551192595163076886463077132856578674914338157153340842117105980404497275085826596221813059873280557639303659916294687717364471564326113914952611241850742207180638728180575664756833497333969990454361220631798048036793714789755418548224937155336875348792369968887823381117076315344655857535287526252506838117467983809539398862253879274697621161174902822306298498776543236712584005796956845024751780870024777012553551667595211916294295657454768145801292717970656524452462231504887155924317714756085132076830734090558112117962022325829219787324405890284314587521233028849566737279747335232192269939067777971967644937057598918606963412862985853620869994054424364008918488244280927539070683974562302638844733207675492600511888484568221456065990585308015641355287911412214132674030065033043636980370560369347685598615166595215043310328711103620289943756659975818986694841440461394228896259018174540149842328710237903632863024749214031387413345930930773325988524096003125964465993690150813141351241280791501207645126494683401256599679135692980430380371098148273920338007013258369167309760939769300254998574978590004591410479089881387130218156728599291018203202596888276942568379478247824116846120661411217049890704226169571410807517504404475382562115044105043174460543607555518471382693433871005822872266123668664026033678660619513262588955373071725256000810917860727232535405417760337555173272957918359631518289057841177854956958602083126501168412940885263073402700455675200802334764881312005788722036330499368016050163768983394301129849029730290409814037034633172210943176971360515370199167726974899818308609141214303309184208922362552773479978286121821636122110966807026900710250168008812387467701404024988749643381081208569015340576694940066578055179294731143070125926766876279855205628137910218509529193531066852951419964410111454962577763573377467299965801718960260642735952383269200434199515623009663965902938940728629272400621924502592006553116051623431087344855560980755302035721184949121144476529142188115644913867047776634130756544495479229463768401018344168701419673495015381966861912316355076148787926409169548038227142231596552755343097331273946320671375922792800791068997296526535625702135320544364785131548442183297459861765901040180224806375481138981752722687973167775064837814505467102535662960151332733487829443124248672319050995840438900988265794024048567044550290026002649936609032203492482164108252828169502662128465021284690213743493842254322537045875897604861574254503191232140076173203242877040837537611087218492304088729952056051064289117927326740213342884516037417476335704097012867701514268019735961675988930631370506797737510591645743799214240050054070872265096177682576979744150520038022749856456891942739767783054949485741921684936420330497289419496347110775773095037736920431138577084129579896060649865538698843811131670153613157342248908789103498758529020754566310112187231112256051988996308566405250257629539231867219419255210820717565486538034907127541999348825449298752428562842308892767019714507625404636153490572663508188074764967360591120737034368506995469642702568863361748745558895729750494663043035258152313491770575741032422621965562031826300912259558165638678542140240637969213292686793698251793486656736832489355722175124082444627326726037061436728152575874653104814100754985689162885007649029377224030315410477620904554578361286276094854142945901761016116397106121411448004332313982521085141769119375646285037076402501655470278454677461670762628129955444324169477753019090590383520957878120747875756313109517612241598215504132442317248503569534836158486905017964196640298139879274747067374350854426817867017163224203906095142556737387640416057795943869278338178538116181742765383655684538690317292133563305500797197046445585997722060554607960148772635320422739096722051401338294102137396384705156009423702126411418947162121396240884507477006315309664362842210751271574581920506353690336260552295860104740240462084482638272393059655894418620521413572037485059045928820329057483028552332081160794620698761432598445281814527421501911320003407365472864607000811899692214199728973886206680122571614459319917902954527862789326416157181811707780099280417576883076232851775408617081357799871062080970153645705263339188415058801885636992681689351915221983168734899314553228001990248355535374502374130280417886846551660292277158456700337836205488028088715029596025081838944376324190317813240982492710129122778695228590950755338012926945106472327788726795060990458136336268855055073641633885007119446900496921765058654658339795863459796882764104278728548592716145824316728575936291422273665330626351383210917629865680221296006199670287233371262188922787698987928314508591576426878430140011008727196283536424072169728910816835669427757701427084315286023547755165420137068838795505589639269859626334264432550392971593559117364376351678885958776692075225647505423153944010169031289844622581507016680624613925825950408383625399934627101071256259207197063692680228967516429655741207700508518033652137836678942127580218421955991825437078379466182311394254529404217485692361229337411714673355945088908600721402826915778010047840288837108186235451077730289618288964913039701868715326901278579809096097444986156078683428865665219281440852972959161973728240250238293085058916393479519286280695635291649936483407007678400160789716789542342841960774833550144064145995128755960253358864434681850333999498145909588326193221712742349725858102271973914065140080820663624222154495797416728930111606522935954039258915681521793166883205325439741460484685670727094335208825722136335045703533164075041663978244425426059495049350589829758364065797373572752267877490044025821993550169453252271317436835496784177113433954236229140784002028808358153259853996537489859713504196294144411462983521189154909004976412726522128770962720202539958731224011207560370954680293166378917236173385982290492461078792562878726242738047523161689194381733293559535335212817387989292235313225322358758213397554339150227734474438145113962109047776969302123311882042490163743009705870801370938709798690871189043877581208416159121532753323360477709523321291545004408692678387377700540374590777396039706143059323660282166458212284105588268057065872440893268027576949131573327574324140441959235115567202012936012483157969766712103885064172809032049732175779749824508420007910760337019430200489282489126311382992186894274038638845726502493197552280801904471583505757996936384287412889916947812937787015817311276429433940544941446908379798501510884044805115071102023682419120239949135575324877185464606467962385859972826116800850758880598243641651605771968542108131289186637596649482133106595593683034749690160926942024160386657805690275792140694287003373828200227925762150742584146154725219820565430195262380438956216271203543656899896015461285392983510954462235590755926439743168766043220267610656534812193809553011164831636973316207114597886994251780864829925565918507210403518327242953963338916306029247041078110590505732218099544280043802250655829397568282018496631373623236987204818246057401110073882613028498948960260585441881127804969538944280825213098175288777366268213124500940090156569466519045031332146524695880384781285161460321833850809745673083327390463586439882443098313616491671548128033715288892401236574726512806160911799418957254164072103534731475663460765411293981141763810376434765886383467321279221192506122913235645650498518456044539465418853610949660060291771069435053101362808839190927243860359643387175319809219590033908194165188673077194863248128967336392339396929786786212605279979854714875201728234483113268544517538833195722961328401375331843387387834294612887012593464202230400557200275866975973475148439030855639751414081506018913714354252489192030377183911361901850730539007130094217031994810014571557243483310171731741788003353370742368076940916598859471549724274185322584808721099250274019895398308545214678775161251010114054095134833933226765404250973876388832291240668264521514708638063394181343080949644775137185120382265057478101224709139930050135202008121537211108475126928689218273580017461591338349689445852057687596068902748918107604635550359496698725205847261362055363745490190291271278907786433399260049391461776170922774740997098340215943475748509828109793477318915159082242320213023461259024397944631604877043601462034743896792515742336235002158601435841138468539015124845563674996362101626525725232934521021189661555759711645129303992953776561505083936923522331436264588255294403965923691210904515202269980337173057730299738363709073175798966930897114496751607521933997017260419331862727048004268668716760703809999722640373918244081754988668289009881152859215749432997971884530928911610363704782202779692319845580589891069517518163300294034359815607119438750707811663880136662417920947121579536746251286583172644028860667979714979293089822044987064149140716598145567281485088221057771792228267072874434777796981304959690668885559509776496477527952999352378682486087892662379654764934870395979483905195827331653890892370517416960430727616658643912967823710666815932047979627352177435110348226408083363866289052038426902056647010079037384462427538780998815491594483229369664650198898379493514108998246893031255024136657460592185134081446388384785259431716750028292887364136616967592430177064188926267370181822850114350177647487772181024433087393056685919479331095370037364448620805018379137524112017108577295649039770367016748838324141543873029783679996633849602866242679161803240394724537544138081255444777337643635163166547669710193387529938232643039721776664611086760515269149224296770730960374786675854440261769348255405407394544881554479959172702392954463696430106625828229351821885366331966387724794208499075013835039827197630525299144280385583214667473446647437803202382082475705408630065254025348977219389496718887905391765922569132532687292821306045204074488964849906776652149146939376127779211716413237295321169898646636750270015948992936909321634285556436054602863775062160048671200818208281302139251370802828029509855378821131457336855118340448185121906198309657125917846295890383978309147485487365038562419795631018219716181775240476993894655941273613322767813253693100538696511396736370584309614065272738768137495341693731701230770541713246856421657129184678360782861033714854654839450110214564087826344418607914847725660133682260221824536629804630153158964704746600115301748531124957228566658903721767888049248956096930741180054009159727108407504768619505379898391109253049920814686778170311944484454220870305428026333045567917628345215965609504116972808654874719564765761267344698020952381416109519618520703121033424890007685375814944778005187936871604389822409547488565992816858364745500099002650145921702526454115238068070726594975280282276650531501378830354830231793651810542424137885269159145718982837734204881108737149201511832418672156068694415914987697965837318377585142194485982024077235931593501218776165020919093328006375947946995738256354294591717553005671122001282300979436873412157993182478905616537830307181874984629697409538589333836060230701725427617376547833396177535532601483293898236224107400139768489610000053007752839783477538676501649921555907771757935379576461025339538223319677537140840687527211042440376897635584239581557120208083292278037229052656449340616851489450373471929609041964931549598310613599821175950225876292238046230747983787620887367304043516381905530852861152731131503774414700530128224595408324889699061746565663826067902995431116700861503465581361373754783382043698232788097257902676269601119562908323918063082350364429607626848793544438734410831589917457498477426807538410241093205837777262732738266437993273383053027212076639042217901125990620524303898623880329877338534465500893489358881402124446294325592501346582545813044362161799060491612724648737606538956945104178074768616169788917376557896763615564609130562289042956526867996005407639402927924646982130234848908736515813103238649565523626223005883990569638496340601725621150276768499724492332952265205869911800158016996829272065681542249476336451748220287543871149865242848933715650565908503611165281845469313647626925114327750960162287277697278649288672427385859818606008743530710823722067024377620191259396794700249188503176274454337565353482309548689919450786909766849495185772283117170038583532056403437533778849718118964514594539283015006220039099515151135798850408328036689904465062631188973248497668717970337129209917103784104864076285289028196630352857934315395209054226865607797047682248513914605955228708852068045070440056014694700625038829365887973833779859628515908819840246812529866637509821272297033759379223657004812388898704527816909270438383966273115297535800594815024688879750891784051963945848326690932142937340308549677170664908987035416870539641020388254967026014192008581765704805593036646170443260225359995892443447969393571293368134669004314072227450284865319857102797619211560427691579907380110973974107471066208483677313397277361411510755984526289960662996172764978828303798428770109030368809938882968820347996257778375010544809064951563407186233398278221277910180049079454902601997322645019746264581644390011855863045321175578319146257769134679590031703397636461840600033380382944343149677701139987443277521405774387527875587000512524172405384520823074735695051955889224203776981580961556260431932558888124134923346974089303816472914980761262734676695122320618276749986261547309031469134566281949263698328100129934662771609064832960579887525909998639970565867637690237635612006259917356693238202270008763430684239408035890973907547652495917508936596980770775648960749458017825498910158257856540888632410724909789536082017668628342352919148006522776423473220924841512374513805247665308302317168199390514730731953694618500507053594166583125280520863549826039409382415603235687117074265293275113707461161376588685514095168071696451162247949343044561084038462291534407236621644210704157057075692960039748646172572873794983927588331814453905114389544209124441573105378271933779264083583158812883132685754782135524950722459488639758361532229774418362653628744539552981069429402228670057790124993698022779784846933999485210865347107793772301830141281222167734188733226533707339786959638739128828083565723851333649466363295595664677044832583451039388473248705734412513844839860222764531181357245428008399633979246022227634293763300731735684038045763057556404812054469753362693279013112296985642178937543682976360154041131186411559361732160526568686819796748909716704323291491084226246580028330321825837119151516771131503768110971596946456854755654466618895495131309441612083506077750043105886075526146441706791797792231527175002093459661474242128767899270494984801742665455509884283570803413287760706125471116377178626348425345566239436414921376855322927680310460663128249693721983760594952457784588016523332360559377868952340488251890272923384723519242849659334480271713561638468915897207179284137293726235426138930141070468928211017255844577482819365299997872349363052669076385535293814084915222984326609900059221923956868052522541774981811477841663965267960387426121233846156371156429278108396044238673729518667538423808529855875762943370641004150603606120825448117855934608062110912705475360172112432533939784088173566120774068482351033245909822250487040100250057981228986041901486254113710892409477203816613639908151260339584255581788725315824255936357143334516102542513308050811083888416696223791768346008432204647050253071344584189005237415611896559235044981230139739340498635503640575841515618349636971197882928586031491472421975650208673759393263792649166740847793264316717272713461750999922854935085640044058658053616990565096392328597684281882158665547081357350344119976816478036319909366838861906592889903833904979642209961595946964018803372540501707153692808127084114595752521102323570284682698188248373855011240375351439417139373060634305490059595050982089996682769223298266964471474570551787295538368749309686282058229852016848409633625649994336504028719339672662742607794468135976045607366559899455356310170524379249105272166462028391644781535490370230684820133019424483589652239471508573682203617542015615471497279855814586444368850015933605456830727174069517566828595236124755098183676147897234425360553821968696180686620172691399161243318799901851624206805166412978335643470377705226846246951210914700809275037126680695436265413498510342259050343126782457914019052118584127989938464730615179385350817332818288883463967581576290578677888508212972372687735217454605977047497049679934036419789013324666075933870542755088274092279477528327506092865786215093841149599536638588458589016566389236842157971749009592975068856178234969577910347140570268385245196369844108157518502707373705299348122728575105199607981491459907869394103844575068661000770931078420945268255209467774858291781438315622555037647000344310226430639192208152418501975464611371373103195185746476122372102465273162117772683616768698375846024574280034692935201953395861529870994409025322914087661840734508761005453335684833208975387747713325499687869223102525807840329394987956398000186153880583205334387161746559030332967122371576564293851067416407278913539413507422221548468336197094952937359837110131781041854862952454796802662819128116280017186606886100198777422224280644879008583122455529938218364579988785213186606923802028745775335887671657649976571777256920497610844981012225865509716475249174632012096465756200291148063501149609563020757761670676967566573485221077949831487167028097810471843562326066174746488474116821881582524713541206487310590114190793378727967112959883575652685998009447672004857572845341926494665225773978361222469036329652569222994183189814655255038294454544052082944336290572320746825244424719430745141431142142077017177769277651637129208242271580381113055547119684373486898598419209487637849732164044397734721819623484109324431433762233254638070005304610708297402616987885924984146697984844087026886503575138701456509651653520410820891064245975019700860900604955378811305502391521610727933527474606237416727234180416631274687089056349540173022767145753613223193991737208231760758005603947955245755938842564531366312190429314684133533029104994174084004506747197156973724659688335630746237823697768571678257267772165095353861590366739845965169197957874262109419513219084569886702466709508241656130291931085894279187759054717277087615482142037707709054135350314406741454247371478028189252813033808871556641851088457015707853300203102765466899553792704588890068597719873888515381576208485356832338160893902913716403113931793214403396225727072594594461521555823621363113346548643429365012027455346621317478821765551022778293914040352251234208099666736966301835897463854599410964802064856388664466359828833330931801814122329831810184369761395183590291715290167790075992126104647576867595008814979310486115825782476770682666677698757798626543281761410942731024274881369560405198542211129441487554162123540797176711594804734916878362347945382139723902671627523541742004772701707653954204764276905541522832897589213922283939435951029877604144448060400063302659550328317427825118061275681176448598603900777754417992287615867160485723596574147436536540676228644038629727116569457242060787824994256380695704140096230497098135585574954288630995883862192004700756398019866922979650363628072434653983875832567246096012581700908623368216976591841810050593547773060670355372242854581098090126707060523442275973761180297322849737687219484085548265125203496405164215850162573360371305808593387724442810285913542644485816957324539373618893030951782151838658677634340713978179210223015717393157514301772845987208844393473900742055962261439212875483664773021224671096219163644005550775023009051439215346122679875701454986375643490879765280561358658093024023154481098307703094383831950539886267171129871584511944348211888199286036604467053994960445138542170431345187734032807662144822993814186053059831918522937395060591909175741522760874974062382163558398566057074740599696680249679047091206837392175576698234474186755449354539012067354363094266291010008357197077202092779055588264605596997097159658685924295059342611021019283296602620330430011949199781252310343126628441824256769773957251377706343649330963496504280836087940462131212145159706453092982036280779780185835428084828058041343406075650732480412366179467873971875023589667518056602214111875928381182397692698827809116520544325831397767281610565644629463255875429609770675986321566059238033777134392700102563554548757867291710482094198395558327551194058742041040648923668684788674375167754487321325672406779689423132168436304242530456110010431828001178582143296053793092946952736116165607191212310922593359989951735617813784261089527395620868798684027284443882710630215329595278151998059111705617818207294729019212875078409822546433192542969111047614434440805374487817395537434435393765896754657027322338092561703414700538278670787855935104861296517389740411681565785660816404131685782288433676590248949421413457553887570885146939338777104891150307598415287340905233833180261731665924786480881438743040446661244763246538516649294342398821596848363269495681462977924289215937837845388412434066521483941270661747846582615097190360428026594405158297223675424146883560918703967925842653513492361633467266101255923499819355992482478305261895621673169541057636309327703038693959518170473026060769899184702273090503065957474991302047126095774072662299862256406632451608076616815360564680552529406398608823864626435029440949184504978938247912854493235925673680824163482438257538860694474656466891191770868210766121521380671190603720285424754020368605780623576190911328768291478013238134356600184997435006256986009230615531025742564013333221535478357766843991142704244513793789965977268095270769072229501438792812360867528823700237120938641753045114106539247314445459348881081713781002448918619306570450656633953631149220470150534244674995271400800636476170699375307410734950548538860788915493594513708280284246407368073833026589109983363263852551110637671319511552331783319746946553026310690262533275295749768146455184980407013252080141746690889849473157554576698058784528384053301009022366996391631970333580857856218782392241368126770752928154445256054507541457302875780042906101001636412554393193989361092343236990696313096882037796728039934087947196935364221049698031135203325761919202217838497132919495537194419344481295075547998363386535706798439277445114579771732562696268108285184564791683450230878679243247204277393077028893915115134977191336393862320890641007017939276554109436984493249390668553914745651305947491007650675782831416343089929166793332139388145538145817273412971544635707695536229454100436222525115464745843067694294377946908886989300200479152222452758473903546780078208217764202662591253344088829444851234132465164026079660897988166185605293768311960764101629271500313075313860017609940774231056443731397103504460659078210238541003451933756734270880047218921407245568385656306304266178366530261762157517487304777088116988051343823840558252122852316381272326581108512270889445328542622459707301846913422181464579502183399736200060803075687407773409158490876980903614809102817713211229765726134345759754121119458906193431362188021167939818996971539755644611908102095048199561473140080313366890819468336497351042726628571352013367167539887272091454491161588504148875899939646912298334626338820512673268831256907567392922728550054471641553948043339604139926607743182817229888203064711174107498971922360721107142556042631616144509385744787897737136340073021576492129871587947758293474674765196224406526620748607725881684551338114563252362904099854349059115629044828340482305389975975131445279822757643576057086075104438099849369087790296780429976664695151738005302311451715256798956423096579649378838752044231179723779542027346052365443165864179162895828027102805049836044011851152573619458023954511178093536440302237259092173063718081945605933677106279018530712758997644566704544844404425981748763253282033800273235894599431326649639974235724875692837294077602431096649580263352989424929050740927139557841957688920500944008028342784337489400584689042077228625083048709614256948407103366809093492844838563396965737382794896141467927833771281118670370130385280284960229367053884082185908323732424652066165527543280096616696054757486005453133840374742123114720445543697782450004250936109852167371966198962504671188622841814897395189142956736860773336732775176576808628184550522825498919216826922279288545081630848593965424518858648730983999179049878198550726296058691729350367853498952223226252555797861618105446826637498098293750217193621218368946395026461565607302275243528610134422018778354675174894375433289516369117703749181824507102518580849554186649644408424181069408725318755587598107023964373779458046301347736708579602966326176417981129994584600998998985850778153224879454585760817576087523386023997702249351440478601959737999145147658402364709368746841094579802680747243166100896037891704260567449852099004882784019840788115502815428067532866899425865735215058697906119114720420283229397788812474030779394850662779832315811022485528043299073380374911694995533653964574245403556898410810635740192542267995599243443040832871710690154037565908377242090793022384044218821159260114425381490316021885800601128170526017454736813341888850742776535795197134859086042235591616034322257332204207495551781005319319729497830466565881727943834763182923766340070159437313566195553925524984638832813292301611860493359712043553914878218391979792445092180954226888732188250630690627590334899494809638545000798079136153982962081981942117705678201809025107033722376777336679629437938168726583208581671982567652727549642936536596567383656072069910355259078791350049442549302968721052037387144954774917299059812568097754744390366338225079463438130751543304005676700753530091445023268207227150798041525342193783686978218681927048542547087842408427474392089431751368650128599303150471187797513365970220663506813189586585347155855194000914038179990063546984651092131731288778507208900990425136012368985352516165739309921840340382719001405552463280142578986177553460191884697005350625536885773659130624355031895906961944692351525650328814135595138869461024808683752246865131634613555162883197466385646599700468368647716525512941988764566973243771062222376906151798467684645472403232869113506939609475764739603808319777643814146142923971215569283009987396783236161758606574360880784760596404969296550316800136323799355715486970095627046796624449127692901822081489148774398322711016143550241264642529540968197257917304472639123200350791128570771445325397300440560298592559534621619260966842609932216400005062036298026404875516463151391024041328395528474614916073447652263525678827961710203481761807558896460257352246169522524334894938834603456281748857342737623403001920912910751032195303985032884065697397883969948189071873380758839029286623762124605910119674266770303089479217100089212994213244236131637773424172967522858735777805697410576904160300632556021291095286569862151239834496891746920775860534337188291327094179607325349226852465975828692016063755770507964309961444579712546586174993579027891774254062131104559048297729726982691733618198999169867445333161404614888724791494493276109073458958914111638999648156366193380010921818318058400623083189126076408423412099569830183305802404577829927705573799909242860063050741248891336126951506040617443466062412913229610540055998624745444674650419054629956111876090135958684466187592057638590999493916415308068463039053255704161528249537669203207979073409023581330090262898661570203919257438520749558520976138034127428333759829306060574296882632802546060946634322264974757308277675733532801033796311599449959319186840248149820907657107662588611328724537718640386567476380887398366413203544508073174614441938813268605350121351109775571932036083973386903438083118092589866627019447991988829456553398691177091862228015040551921478522864759477916929255070497868267480984430938860962348443994262068162684949607644368744785647009386044313679415146624385122218937147685380549105224907637521198022732001219116060018407168456002314933705249290529452625020470269971861901614180331945146011709752807011604506756163635282924455210398476182005880039234913398500511658703127028947804453566949565716709241069464517627133533349053271383389771826811748406916720942066073793267114860728373293717552308120542064069311080244124313693548345250685419226141222015185943796237971850490025137582538828792213324574463616817039555013415274569952243128073558005204881126924069607879106755034946842560247043224461415744536511329190345770336043412145981892478374400088278592517068283788454393240940943442838034523998958943417580945692274542831727745633005909347882573095651039604959804431481114142659556011568879891225434113066942963515667981592303504727801264973064098333577826681663605505879935822453083200822135219670403386197407275725365490510437737705868276638139675699091065722560407824191497308652089575728145773245832721311359756056764671768901424568670855568468072620092282267742254009819441125045011261274206171262800752037263427837773337999760439277768449673798205186915330210822764149763158927578194341744312921957341633506760793264144779723939160312301688684764339981628610506584416367675638731165267133523508714144695584685851161337929336508589590898624796888484729411222580098075347721302318501141207490351730325908766432607528487800655973967638014256367131842370615788285220137632951778354354658766051374602574320294614369202523448625262465043311930892056485457773107380627788871674978548607488558136110918855253495828916496592266593151400480399550293872102576202886703437135320439173523279097415493164477392001390539711697832754542538371648429784407792627617691643487630482666291835925876574200182137607715773208613232060151855125754068671963434557405989632489794241576488751521097942618705109338011365884497802892787701743004506929338793851424962694828742720254496678571590961863406779860909430487672834148963849794377820437547332785640006209524855236683676541702957373058103315097185907550948144659313288568831339877872983648405280474770532517570359203293488462788308803221872622870781981970256905793492263075124292523587719269242296044317806281902670240374329367918452726847594739346973409252204737897857372525283210571775463868973896077930777529413810939150913390449737466108232811767372084346257037345814836163345376021557333471957587599031059556202806026336522190430109016856913763878920721352284912694422292392892319323137189326641025008860043668937342550146699436569847664057215865856857986156484306801144266477639286143670801730504726419424529711740513540259284392268384855873652249963945306274963562508759465515562934849509729863850390959797286315766040814729275996551360800779472671303690718882926062663179933602809237465180863833723329734182953788175866357656247929979446916515398097572302700671649821524989075193642684870625918437479078059371909046850240718072102830646163028022708974105275770563474661807456049416417824459605424880742822004296035461065320597008755855313859812588970400776819014645608680174862835571356404116256968126008421115298791295728290153719909364173119187948635978155696818959537212393209831194030039174317044929272055472399091871503188568520996967394035323551786363561934436943535171275204680738879868771402640987109250191480053581271258278397801743074384130791466443629027295724296027445420777700321774567519334425538683652315853840269409668039493465114646223112420230864477745986141661174820530537474050901159076782867224506017025317293231637133802371650498400179115305433769099861753937386897065717114967729938029543030312896577213127324464977634493875543154317310410207900244766501222698706137924720834854195769884018641676734058787842324517326023955662187531271167513829520296026264409314842720139334174090416764266515400780851618732751968914142398525457422892932069431539079142327174992467045371650578623141750187741623776814867886270473651595689097666608221988562299982307847877348042460916270255427409934553741366184826907602087479686783603898848950540826618277131987728028132551150316996748417340919165590565222556908006624344907226149087366477918832350736783242829331771766690004701303813820093773615281658659393188968117740894289923970447930799147146540846002811637150190949590777811255053150584872957197580576177380790143007654266394964585465704983780846633041222173466045450702600244489870770969121777724763861535847037997520973475359077391359709976285223647072822142952100750219315442889231158526943064728731513427585718005238727244377833508713712978544894162443077743908208401005277247575402420076044389242917236620762410938577140650871335377330995179617086650633073724013571791542161486473688116638375635461757787947140559806339744191379826584050527493418629261620283016948004369254553119873826235776515930910870036100345607501673568418011054156890915005935842347863637673405508928761084971520778541179156863887767341057426274897928552230499654278606494625743500606491304120756830960736155309392063033791625433318617863346682238037746345951300964348276692111391696328788116819452630335957382243415476625087475657856383455167897713596786080911114000829602737623502300840072359475365915309721498150018621881236135426882775649465641593016802268083467339936841060973447914934408487720948079680378131089854781634904655456307830570474879937942235946071748911809231593326513682804700717193656604841519537996789772065407316644980039162356379757750248256137787989061837378520594199989899854744091641800484181835127070338465188139922108543523410846094172449005996681936840408236286558074000444801980220959189035775681994688749603653446907308425184923536765866472808582904845661545465991833090388316929000077896139241361897419138463857507394433586370943580138038792403883021552751313135854950889373463962617924727447254710754776478581468370877499867185684876672303764473922629571527323402069505240719580641986555640898902574352206041416963355791455144336185572675261134063910800688896093433612546370193252498610737766637159399734992719760598327080034312747838313666588080219245704073184122533818772791924313489762893785993153986899575325659876447188736023281928492712112979314454861777608596917969558273867783702739271495728241083930480478391669384853642744140630730916071185557157712223623536672350651583894429350525778678816194955298657002243761887479001318088903332202934200953246140171017687892643291837780439920845212492203366606378404300810536219582069763176530942042878073022335047933900317545754911411012966829665189979380323330407023889309018491738580696503097780255366316848404429550727326858280727129244495011525786225738934396691391415208988868746909074803147359320599704549642997486511256878484448455563556765331833138950063811751110907169812535471437437671379786751572488710464277724576675366431847590625893357657410776660885096113782217934681596726280843001578249185882433977378209283092844374362798024869892448127308180930535681155455061138824088755872566874698177301618733033694855100432743821465659112314301881896507681818801492656415129754381244475703966722922693475198083311475891454942769940190756902546392417949399098218434814450928855430770925580370395061704455535084118837851334873601763562571267531074169370847245410344164911605516308641688913422251257657569903144651004692965782660691312184433506735879725485504566125975581289166187513014615529496391593807676721832385953221575793731967891508494652180526359586702970407580030699903456088511794117205797827235908263920066398089466631578897684974232886698777560727627158196926825000281356405933259781731391186659363980186810620265248922213965062805438143466856198081153061070517901006337678737783235183213904040195003607662605940618858091668217738206938403195168559529824484196265409337084153860420804982709422105226611192481511665803836804536384114276084793734649162937437960868943194726972582029912188784919956724415907562606728298750406949636270645353537668837426560140292651078323107348834104012851306784719954580373124659389757177469122453753391285946412161311080859967992783011125583147503025647348215038822731921114239522479695777172529312992835057606789489163773325355367159678026239867415497006465056256792303758621117546460416818698267231818396164109443003244683952901102813006640701437765566781888685462421484346568112613485804739899907251002136020667079956789963294874759266420072938518340334314645887190838351101453211272131738578419002410869119650234163922266888928034292259496985480471941139126299130533567617072704432566937368251262276216006890741037227565581867798949173713937624639040644763202415975035343696103441717770031829503821264368854472140983898735327389384426197695098264563258263367554056261411190421432110754280921203500982831546733784172636677248502868410659862530461772871121902354394553244786046182574879704303006378099003229325156740044412025616662175409869278757026845590073342136954230657353703117730684335173334749752542169985650123734449773690613616771211015230752604959035854001082096702065916817728827733795866928642145603074242106652464964896177367491682447667256169945803875074702217282596827963765260755097713640524106954642887043660565421977371638677486879440188232103589555174395505673505934807558488025930670278150918907032240949797504669923995452243374645927554162809207816263368383446240449405358251608545977005936248175441472961797110916836302085192029574085522378532835803735697298608062345543347004387080222532645545389307871371329289740978333117472318542558090768818674364571205287376993745260879131536705087002169194310196154619782147831416979483919213049405769589570571527548422497885713432133838252305707324695785555523116982528778030215786875875588427325514035452081691276812502902640606202663674150187341479133336570284101209783923881566442936386430447314875204725606772852349400826429745780698404591711870730565648564286305163396043059243573631970734662462819861344880174212608143685801691547336335001647400703076917840447307579244081341211282799054440756320586288765654959982033050608220546602574625707476789161550330908022222847374135839584825692589547579302942988926038477271594136693451508843326629366242646835711799037687581022412131353079979213098184190369122102708029621677200904997160113793706548297662462863661755773748173770377683943643384876816423651890583316153916183720194566748084522059745119161807245939565248903465949101137877816641270866777706459049102802397363363570499837102405881178509307547853882388720105192575952227893217442997799062865469987831454233995251653577971221190373700143973661205699028156973262337543346543680422569930877572516049112258615255556688301456110108408841826717882209780054802623174478237943134622831930065068006473343088885173837684903056203062160998000112980099246529516603714084631578075875313615979441472651357452224576553747886700873152999130926978399211311107335129587587971628296736887256569534339093839863623661344661825670404176257328193152569509108001154180463911883595632051003797378034323101447927518497540977356173612773521495546463617245298136074159471203186219736018462374858986779689610430015252124563755377602392092652264485849088418288052772478824476515158290614905825704870601122812321700927862483656006506656372725370309344720829712135850408475321735014100378996043200512148614694198284298437022941889889242909756969500285834377340640213651526770865398866037691457448387197053086698562230445092304912914003279814103388767555844908820860960220549173251817671742733279717940370551513285520791170318976752273060802873959134634328096965371511032431011098765378956825879150850349643238954000571796775073267812651537653667422282327530852667913050865052039342452273927173848555123771610970820070063897482714278672403967960634315542888142824187885647944486435592998543384172723526694703435026960818544191737775791337342485819598972231376311686826524670197136309103250139563465855158562613041918598657082893059820586883200048667070415590109026215029383162017625102004969363798298335138183044973504218344294513091648642365059790160551401531249537494506974766700441729285696934479855464158481927035766119265317569511819089576202237151760165854996502627722242942090889629867561629109099730932644909241942546398384255140831163891728513025921387530962162275028101400000184790615478206559728430259135204509631150484847394648005997937174109706000112139065903512990332075304047925730291563470906916136036964462347596227111969307782787402946507550364279187075115458676183774824430998872962973859126632983432553841266146826172273831432874204669832084377550490497488883067227537548939426200872258309552706226584101528335436247978548350403753292911243943414673494645209335049817290078903742265947780110005808155080615688236358026881342246940802680877664055241707329355816043217371314477608681877756886414197248753506152618784223564811759085752578661405670759327824859428723116973665628716709233952023856520621719674901053773598838822737892383246767910414142751682436617629482381019288310934897764536752308600113602887565838917030253395029195210989015194121931150380856481702996507096184844471371300094963246286241654734401671471240221167509365465061145966927185268589860536257554150480071818987373615952855273252598283168569667707438097095140554437493756069802196056092012631209469327597557697442326558053950159514245459450562572915462227155398655890812739266659408518352836682305723281447640183067342938279143842383330073310259029629598632058788137285228297401314308176102459973388590291604095847333963928764513535417059980362994014273116817444397594793294078723929090871005306134263383349260143045258445341256221475090360058877928874499682022295491411636392366083413446359235375302593448868770911067732587211330496129923904538680017787505378882044837032269098056010075212694557089010107630957298098460336593202388844102052059232129264847930953522032768373786984528496790953923626933620686368892873153548732939141359328071189899449871309626640277594777891146650814080208267358645249650597859755354305897485865492507654913082136932555399431316959607655161151615829312895875048457032429530398185873565801901540075549154405082853019163736241159621665609264920280558154713180344293818189640942985495263242724961022592014004468778726052749808128859690535126410474607389171146886000693344775956973239744573599244798342073079797886671204839191093981082415304477680783316985946241503604026472034576971576308667109796604856793752023866862805210328914666444343876327781622011250573736952022058058934540167842206667354626924834403320890359387266797658316215390542343610253889459994497763542341825353383787966912207055533470711093704222160684707195062159767907208290822707947388342444612160300333623096222931082090551984477967002057139289268704189140670761607313819560230818190014533362375401770418175982883037147539788847650251190365224881109622038731050839479914885137613833167233908288140546717318999165430582640378083686926278699890370206457904744366759444694600703221236956542493367979757592637313560085825639402453772056008887580531010089749018187537112734834494533031551674405039348197149062564658565021725679523539914247609075245489068751569516405363412730475608585528067650078573174409694778199303023391631445205513248807778436266568166385482636615442532840430849167636220296506065284024367544717020038744144809303679445996362156923378951939795310511704042622968963256619292978549691713820277792925257542664782492298039843199138548917594938849973664643966145195854125268639019680259193086869722426643173710272176868764330677044522542022543721692699404781791410357413978919089467489783199053661096870750813260930505409194455916885055344724574694362099365207166600344739704074953233609377126375132684364279577148300111623621897226548663441634409109213371623989761021379463927127293841507083354445036235491603610827405743091907686406913839925434278089759239090627132455673658345051350331381979752579301580539410905091553806909592409371495090655551165215330014653222840391569388073368775839311618254643609149342993422017346935648339037249989443518853607966900946328481165919850181070901985565433024189926404253967317673998339942393234460754057638261213070849784723890101249899499471654578207685236022295040574716271872557437158994971590127387225682233245929652123892810620925669508859561813875233166765321132553571396925028445806273910045509994114196823079855197930747489804674086104621327826302843426129629395209501823524956701948238001780978076688903826924557535777331472183857576852998552605338017573654629617417316846911011132355626817256968572049683508442300582934905897585247371059333705686743063216198957304703728518657319479991410504816472854481078730065970123323771107512886868731797842637500749429869951916039596334006111241788339498045636273984462531817424382226756438421042134042281545632895080477204235142910881199101095170843397509528751772688719967701057345996960597206662690302122496574874539321372548884949186537659233712037697154063315712090915579928812191450903996356365667815504094529219822140492409615359819096159591320522564387654556469061820724193770059559362809784611734481157820085774927523949463148809524025334081311696024583358097300192627460890174069309158975537971320887835538355460365815883409669764282242521134806424198345551309041855268647246497432096372057605690788232365727870935561704269596283961239530322099744843183268687733500148976421067705900358263980573608333600400152884413950350305667776066013281468597903099491926278470869758665018938636217307212961692360422332791622880355068147421685067298573589169943635877869726120249572097914598819846941338413382553346021899363350769868534307835213691782697284958230755061451895540547694406715892274054453131930190605647912524934987054206746673786217860879392345966680696884754457005560636288207895282340758723578334181401422844145449821939957372720546978565667225258618838500084510853531424326316343489303408991310326743213896775029692482791104400340925612179377724814511617573831760597309491566072402956665341275460376954704315244372320343790937576715490846792240149227703753832909509110405212877755858299336418717123795060793955746064309709368474149609445935398435690495247068326112740277982257400559632284860207967510509259828508268254387441321710877809348571306482514875444428874116883178382297565746100281285424301311300528747170281947953492625198100477287517803926478578525183310801858138501073333158102274222471104987647767100564073126159781766748857203950100431411458504626903226598696767065634507298442288331763589127965360275325560555181467026919746929577449884190524197030580506718950053266983272446267896410460729256121716578946629260545945321227720758052530116729677903689621702873725764438872312303309937003304342477752650888156747971462151733526994517975748522065604102276130350988979520324666825918034919220539436988856913287189864227431120221776421344602369275837525426877392008120621880212661361132710527009563192685648968193764581069286292021923869798120200456210460015449017868341469322630135124406247845676715143199608162257052438204374403580773521400030408403682132643821086475026772152229811275707731412610752839622516800020259816000340728741572659342393431663547065610920872318413985366121059377658547179768537152799945638671300477336136654798356708016029940197997785448388081865165761476237152051035932452263335081581671494663772635045945113109107833103174207054125607920464969361229888570062668062951305720113930494421715083109689809762461179044897636879510152921562205918686185804804629863279814636007507107711907150660384472978202931795478962533378767390882251530131709292079045096182549649256332999637713433703065747190796997649963538785072426804619231294516526334543102473392365930177884055838779143290835882483128499548358782344511961069173675393293409728523105279977138639932030453492273633643209584961369414325245263620463275083825073187053274673099539286870647760871220457689482853862163952180972432764886170038777189708331182697229503705977750000234780865587280363382292740347724199017577436423201728324029656705019572871338760678127191021356303661017586270900587244066509531512977383269134910483011264432361025959068596800490579001168512995499918064969287950211662206618122690208617737373636180408350049493755398702294358324473486157564938328786526043139879085315126944245290416047381726765980757237152061584140983335474694502125824826886511755578434730258134934734148229375043643604853034615625323925236813500010391845653792384660219975828279399226522533492658456978704352587682151982928192316118779849471236424092675156942430688381682193111375337416870510731931736530004767897898709073262149265016004311831320070343904470954053603630493178894375041638600402019579385300692789436174176301783249587011443194721386122934448787236976668807915614219800159248413564230124036157155851492015417763938666433041307490234871012950940228659336413426991483992800429939665834560210660661805079117672844767908949341190247597349069041389450142292759013527638429724096382942648807298451018322490712207023018876053313945121047540999184671718575280311516780230716716660356182733862419777455039434705716058224899683869893085695779332859199626334460065094726697013846207052245873954256056270953799933591424375777935402684253552378567431009273739359478843378111999451003861309982762865151095638204823897847710291306643012763394070104692788761476737012634535392504805235450846319646298241348194377138869265593842872399203780746379360103252967942172979408534405434719218430121688985802504981133552179970136469185692837916327708414846455968091624283986217183758448397683445848311772244224961773137358863428315287092366772846916771221989392001656603410029886270733642300288208652212699257714776035439378652523953293648587865084693650497855793219915359059075029657832315828698548952178152878245673151747867983403624754055778049347964822031036095668764848649712520311813541337834517155176427479049937699169584516324118169204638553631297475425454026268913977524832854567574008831235024242795988074486946752943553177393910533378441442025278637273007415319818929541031305919308913970086180458624745798159546277124781809908642431580925195307285432255477180787387016653513423234060426813836787007003806083181393212207169795108774268383069982354345337569909793156524846230208881021424819277036662523186443943117455863045021812101332531954018545772298530701800802925108312956886803202966423827526725788826998147936810269599129181690624719414351279592549758265687622844486390410775009082090466406898824114492366515297465838690884353962655560927677646338855035935400331713648520507959706584655468714053881827419259092804071645219412692467508001447344361820215149881344264120400892751144882279460584609281100077771629055924923645786032034967719427165659486236044111710555398120669631931224470308179024576998692980122322628674687766619294540019908797885596150896032014179947969375842593513932378129783743221293308358098248539244207118275771015217529613192917401073925365466671293741560216132909516913891285149492004905551694025832799419056826175256958066751985766056758306881066902358689573918669149943775442715570653548620532730490601772198533516046201461453905277272083201532255205774186366661251797775403660760465196860286837715854888875193451842506598039743179145850261006166637641371841352828364606999569737654086353977001786634344055594414125024681616342464665924288237688087465551233403790273041876666229448681650689580773364578826404387923296800460334847348530408301297015527588628408762053323452686121731687871819249458326753909165195220520625200483269195186735673949726247644687985187578443147831669783989194105103491379895289432719478121374636473870206586928207650932748611307862088091999048798838455336114590799346748154148204510407820341894759032880438674371681395437854432495896126226549396476728684096478496386545673334377090199311774202086289203572732729542976985246722981659502521758357124738992822758682223810990304815992811534241952547560457092193180418876461497583512193030547794838722536811768159445805658947731125208359990207012830220610663888151188415178899316777406444023325268506718348634234777455719993255993538949673727287962567925698489555465496148405887204621681561981797037816170238261771363056631965734473379651027036365229845677441421993476706909321063337351572382323230204145698153374957536047218123137172627781696283338846143269797987804765066661284823763397237692250210048995222154991805436271988490240041743165657358365616529289832701307769111037394372825641022812616000456008382356844359690149156712571776325329212605652550595390783758019457022703961541431316633285579759920781110072167830444837816492497000529028653814846329934369825259029769234115470088367174347463753975145166083519748955593737336105268510235983801586873996763990909855282130928954979163147155283676436032099491381996163068296805414689918240187957665205469665158842558742041622336007231996191074207916281089454919885552088144548280179976474341370483621815373432875912010105352890924283153580939436610311980435821736027342928611811011522177978505996831576397914540345601111940450993647616646673170038024368573671505688065324819989880379990224349196590650806099185158315830740043976538273630768654403713981269983070689913570093471133323040454600969094058677987439274648394652036994262657807812355580975590328079847265753929690886579614581310743303120347519591973613106373275395873716222325722118454912649345692604981704419891818346263624738895577524169309636601196398976173577628321360826444099092343641456036121927811715199600471949698255154618713072703964514536959637877635939171917336405026981972795965108302436148408444060898855254046677058112781719646945292453779318909250159339694394762978895190640837920265624086807129352254015445062097742367950820543455689795510699295421511928324177102942106734096171077765734698049522535044801343200906718402099658287413065604109666235453708172743358507553201017776642272654226215976607819053772245624550153034001975180567727551830423228568189087643129385084573633957757517984471936554039171765416209428740169047545107594177924550122624195346016978293127660443435111137788169766666685808509569785183887898168265875778986858614147817580957258893981362360203738890812151153142997284058336640935040970858173695531883051698406191646746264302950217804484559859285400162694004002534192036670473366440064394705797047552925061674623657786470199223687541331666082610629147771733614728781969635491325981836969577129335135724722092817652953105344053602603676090719080729636264134821447323160530781198904504776314375410066095496271948006979900712652725072554286345860778321875999487007318293195454244193633084680236087562693230224597282921842044374849131915427326485860005904792079620553730024804649593205027356313580638916068723351940454993366200410559832850987265281502126265904074017853698857857552373642984105428237420273078757290597557222343144703524840522198762297139295467352917985733175684247057179485015382627701420319597121737114783217341903813856559100380268596889514674109485042463317136673595105345774545515022934663691579144775389731819897057095361324460582495727416290436127229366204406578471885471512879892071986487274936388075098223546393652167133152164663026752579239831836665428372358594707455391024019549618968003934407161950269354489254501966680164388586584757143836798916214109732058517784712749092120860822328804544046163274995727548038537713278139018750843350384520835351554788491691332513386298898118085622065160305049094965873890543044111520768078147335864445581391626235175758086589586354884893795855051734618122198867478054585993953325364368700399469909040397113355535772097060543447284247274502606137650785084795485097212840506002710239801926724053135591643166453765523924693519161532726584953946483118649162942525024514796658761816299806952311741878218428713716359171955979634780409058768850721458562714393654600006517073381499265663482590769417597734176344195551316775390290874846120186922364437843577983885920585855237342910623970814405758944999913881105710296984662102188719262725674916888090402136042424183222243554020255503725132827197740079513008419318109388102185101879890635832949563993607592345339367024918024491877500782262563720596114504076344535506010358978459873086012943153047143141565511794018580121126689314270955206941767532523260462712235821188734156580060965848691827456583299353319991598762675959352569190943502911266605535232668831158824326368246599359991808478607128594473784326351260816406496701745261183300306812928228634038261417089888880424058015558576449532344347141743644378745812373535150032032419957985964973737866588371162972356579602524087480481334627324163643050856284915185014718942960973515933992445513655441091386647381061454004988947185781959706021911753706691626697637875987138577821469152029556182171552417745143144095706469849500954879190026850259942229711389425671061070962681159841246656682000521152588420892748373590145508363950110182892576704729636369713373852401090921810558519074987311480860619522442812443050251284149069518387931083549035389109956946988905672441787463860067206754381161936061215257238312280868090120006510657419188046842006881042485720398773289620298370718323279955451422254674214290883438670762427249549816431429588484189308786834416991949336692228531020769062500845877875051382889539345413068698923768943041511140560434138317012621731362121951517727893807294456523301976406108019906192287366473245613506495237166228537742835798468028087383127234683018546017833882316803872680186020873165478850161121181556591341340005176809911487843628939925209676061383641871129704178747892179406021563440745699092611756630662677541884309561503686946763182409085454089017119297636064061879167711919997275348067238592963138921065534237678743659357644467479536305312437289982839675867386517412236801357757324096076079563304292549086850971633916145094431073510046141073091570518888310520719576721201943187105900575237086700778557260297899718537030421302520159725896107243989194258433954893516134603852138132007087442448864821138123913647923166413519797304524505144753115594105890432840347136317159514953286960221865067542255821329416720378934036613365662090579632286492379072672619437654397130522958677406481066128909483716766735518706654697799546113278281739464124984565730161735826556901042515575471052871854183979154958797372954047322640899804008582892530165507272844755328336283720157380812928007484672752866424531273610941379366132961578031986049798091324928345893835554381858562052222072502877598360099077577353098606878823480477156179580429355194025338820241883649850479146639928755166545268585656054878274492848076269891267234873042586771755697839376949963856769855703229928552291970527815144355249519587318997001813916187306082565331324935043379103195681420076205802574968465208568930647425325267967453809122138064154866078257753924778982702724259096788617011798101716723050101394308638167686675021567057787064727036683871262600266940855506949863866135378167418836018892052064601051202810406920893505967673785635607294097168341424432900513021435705130655545111926318603090222554574914052823426984503828322609663355975064773086109772810857122275993285643168093046114395514135385490730491575898811006515470165745097089626826721142631302251044838248692728595304078758052673304623040131039916078731099015240753615164779772003203338719827561484244445192585479342606180461422947857103820847971884382040407429329166957105060411283672025750378802279221642035420411139158902642362151224327890599076978270565233831769852958281085408660636838956267535813395924222443990543402369316322346477501811337264418816192474629550777866759527405648250835936445896041629026742644841149935510540432638568279674167644111259200734175891190582899596912116453424652451476573835524151851992029567473444733878378107552110362496761322748718536072359949646911195824141667058069041005702067270993241746638754654785701703517057573117169441174048375551095782027877247121955839451348039583606313856605780493897417271547440065626207875113922545309515163734135104745621159226149566846586487434485571739543053579038585498489461792546176525548662944165269470619049352003110009157421284946259782331670010466872308215274969265392766109733981011502641008319668546016500907754822811353170654681332926865204759850038555420879098111729358517732569900170773839130939192718532701717698586804716721710428904386780945432222698980886934417695776765095951532731654023000056000719485642303218077572349237081562996349658405068883963699689915431995752543408347885664719300048790867327948840938888940682821707786661565909064309624377639931843313208724827390323399902940286660807304838413376594492874654801701828470189102431492379970073956668673575304786016784779800400342681588247103958624322156715647974437223576302854268513019458658684930243659529722528237786999788715234262211843155780823058612034669021745101858755666077208742076118153704182000091631693471743102624510992814307815282739900134054138887671234435832881685029157624032319123872688358717802076489111533812835976347783896460167544100530501227727706511584746571845661321930319133971539130972674998578022749014762820588529077341859986097581741206827620321862482032139974155830512615181436004878738279012177876991319144583415505049666377907978452286084867724782394894006164227638487686998117650024387230587273949179323060005177874501394897569256454646822875217547229988135878452032987856675291082052968287815430148303449917568117845502860061035490291745836227070293981302308501752526378185810939694766445036314188014838874458826210216027702619264120557377601414261413699107394902036724884987893731849373101963617946500230615490019031817477728159622338936475069150536630141831464065480955631024501109504226587785086685271658830571411106752899598687472387709512981818629434178196657375701594973843910013686097145333104647513432802959091232836731975315622736573990798086301793731583172245362350872531877200481583566891309069765867985443157683188514949232412127230532533098140408900307679019837928991791993922909724232659377184324442397832117447766757392453402500279192833540879923964313722215089381826478946782576853866644401857385711171861503345519670718240898545381287584657556811683045702064472114704093157114457995670440707569362038460044830325897400324275993725517630637043065203916958034998939826887510723328644701063829504108775823031054909594350834431357452510717496924642259674784829690129962317197052007216685867801926710941848056333473528774215557442941824405360351147778791937676510902375407733365884813193468862262362108884688847199121541997405054950143271519789606439439792166963052223963311393268868529245687686107215409228984821569315146211542833277502723415360416430561675659395488083391694468997980327851560669863334358542843691962852563676015984588327508488730640275447362521648112015601033775755732289693316872124758583119254313872285175527339881203344089731171075411918595703001917607415938649639787110603175180965195735588282243297119258191024026028544657163087349150362135463774756280041655709799142786018198852238317839645808708503479418891619649855442731331675458289452000736093482929969881864477780570329988950475254752552946194033729130059986957709386150345342643972683448177371466688403657141393492903185681702281417218463351640310560315048548452079139917247483668833656172860660281876153374387795646708950608583270079805073206830903594385020153674586531270927939295335991445158550325334661710155145102594241172973391596358253372824968773915388201637359517314350935525836166968169626017614821510586638415737843613874750620765994405109676089572203253715853897573619980363257994964121849309458331902322440668521966528757596633983135860370600473440184404037733608033966343193844684264845199926689556953911284324186984752569356313679830198035727243246510621348479720728426287948574493124979078287508103297360707450024828185846658596732314578655607202711421860971669552370817456386566367236437657804221513513415062613800857642585683932730904776078036270739475264351532341937108124842604642748009782331463226404704504250106719553081249502670671837596159413054277527486027289099873694496168896820293932524373508040932069997950044233903892729944517354041455899273815884470145350193928444467208616591041049774072756695885128256716248045854086563426682433113495289051637325972376227704307675011724589594480806210857682240977256650407325833405222398329279300455627087931678391521623387837546921004779295430573527950670363127902565764480592016092610907589832500767803930273385312115377981789299389762228000154898373005141892857053362387934592471616417176511996745087948915223679172206845645975400153749105917676771835068723859737853484881230272217750022296387681464781204351853580758866350352865199055890628577254980266340518122415540764065457709453726633428912949482640212042553646247290559651183317135556331481262530246183488960137552752130307810643160533434331343168006443553030629439952529163212046405552892317832643565698828094000040076861369215654000622398609073883394024792810712972318462918774736412967503009269135716500056714700676175793605682823221874365884937085589434119945051724565651459202968594044910744109722463238327984159509698847452326005335182023174309432710960956415334166584227532419330228360143456204678532536020170893330803170408826853746645348059867528539609699196172183622068991968727997266661199377137691951193988819337759465431364482867567810406752295542366064621296299019018762950335274643842628863743246585157166546410096562953730871043893807081662237895451030656863735045321750223257087385313065799980370488411586565158900502499444442218083265805549375118825188974796115702564874830069977467286099332538862866002711733463358467517212079723751541613189998123030304882658860719034063804852287974536918214220807122542023681954934333719156548116372631837734654067626212237498037350446265119086015373496952158234752246373467542626086533597205891447545331610354072256471365269497985042045150091204460951568582719688057638743859813547217118236629408388653626108640441482532482071811513235419060438517469843391831882619549476807756796339363243973610486415047429312567854025278354928566407798544468972005242036018872599220572543900820641405029782045657875525088162240511058662093476801229821822309771980436328742210365814560291895067905571231926473555335016019958190123062394918189322468773949052400887814604412614742440809518264363814457852628010644367092269337846432978848360900027544706629524031228862616003528030160157496132969163216464499947997652035406418733182458034856588734541448620075535345776883199181389442059748171657973557887368219225373477542518715558106115371635747783241490906023211934558767896833662347159249088311614900851459307295413313295204272391652825164693364036636387513667184894456695937305889895129490664230906454144450023639779334662581505489418730333835534899900574694912834268206949926825429908047719495053020323533986826440960227551392479990903108566712751115060431180028209773857685621555447730828232570243721136890176718903540375356622887516081488010740254859438454821734372736663069203156072858925731655093665990656565686688115550805907644552405484718475862048895337547037027620257026185443067306729964125719922722798883357249822539567727550257080813896688980371318826557582279285441753852958273041735124109364437996060489543262767397559481263799562821519725480144358993073871317767028841605036979950430318484751374751061753400320964719089422944194601652464382828146503496465479951191263967447788956319848222513630673055549122679672814040233619109481482630493705582173258688436054781742215760205537103116665458092470203579367661571072186645155587101946326432093288186368174680469577909280254474904442111081989987111900262785867586125795628966335270808538737641289304139008432527752523509204456133162042756280610068138598138919295944114335224027838234400832998122427999987944351144700087589946323286932157400439974785089804323904370228264176800872270747681325343924741828095559028917443731727290223773403815013104900908349612595200300488345515661234666048237850134759569794637811960405270161082489118334680280164588163370174216627606499962458437513732468166778625009518478009614536277311824403743760875177364926476887074204209874299519723206830763036442388608111327064245330417515485552637102190615624534529373443629698615881423650437035248586574502273902833726443104801546829130537166355950050155186992198158214046221723863496164544670316270259297211130724980650688647251337473211451144977887450264989628003725265301298129429332740183941928092392307384285146981828532415981326007543811467309315372236092719813192192320916418667508420805427195125315475781773216220273280296978633909961647708026280452421861856077139375985891249312215982469399656644800570747956340524277691955500957117433798466529645075434300516030279979747594165502609120264187150515422817831032734161064064727358538083491027683245284748272271402768410896155910231785709035695870230391344841209566286306989749538577873516365466925330980307166691946221860214793638689100219336876103926047245820283337040430394565675218881475079611403932280414412358406243084290024170291897272605498707794518310683326832355700140530709807471485045853560163797436985118966419580622686407900713196206916166345497953344476842919844802061492349002648982956437154001988777923185002504577301348618483318692371767580555704806092196465578190005856945452025285935941960950988195553391309134740725014989026504746181318316231681148468462154487620753444714621808901953397917217353931536501171045222067226370353200085792957513877608766079391832262357197810170138962884137055555439309696818130303298872462010687757854041269763656479632351870199503695364760003246242073646676494105037433743022230466611041421414045199400076592727197649326571914851168122394191599928419845157669596293243663658885500933147981973833296109110578566385932259106734884953395909376987910160278371475841200134108941703634301703384476593724413014110760421512236529569928110665357599094620376916839363507311880153137078480083532728095773406154536610034544800088384178287694634950740078041336483000855231826539351764992108155070685153430598979366909821687776140623587644061918881542767841812596884216228526850222018198873147298886938318522977851022182231619894797291024994623000807589416226115354909743329869055716187235346915620819225724129036458600199351079123533502030297672151645097909226402528359210460682584619470187880335220557735135838150274949785652926384506354228291169264832087439707718805013660717776496956786405374379821718669447208769549975030610750758432534198123196418887968739206610670938654898214898645299148677755402377221824296486341991006947144272691705496375655188047889299986804447416501533213837536408390629427771849595859151325850338803856057678720393328612961699847675042928972566599580683352656570232335911113678354573316715098524073210109085552555299301815563581915786027238881937479678097553561326387727676898218303832274726722763346979383175028519088705956004177646201825154012918419273081071540115815166279703334926788353037953446808141862695609108268299686321546780413396773543810187442551040112314024682946443319051560511245730238361434945304822653767217258378543784540539977648780513333086903841373941284109177999656760122231648084825421100798386385547274060930834989444453078443685371212581317824593541606480781569934422029146043306207939184098047438915070106478749549983943531997826569263252443537446698565186496564415723913198903578332114572905532290501379580155485911900369427019616250039220536169526489249367147060851691616212961720608413829885028552868573989003796377789678973231012025221979185110382301254082742777305872469799459281603775665502857936752707347887906960540593661787868076550062098384908418581977160673854993252212405451030309299013418656218679510154021462106687373556586769601950736649760460729725254971056407852663964310139918526087318234570810615964074191491519119625262128391486575509467928834964799121537926186970174119674369864944065033369820582298608771774416537619816888879280398491661113302241395561543181366395610848880864007536747876022009753065779338725092871041644169390559520204282142497262129672195341581006721830972796170510137951542775594582263478369915216973201601046717566273919613400480615495279160382414932310102092007307756341142126385129899580681650254925594920869645968333439552947126378934314401375322383011255447929388424407432126538915625514485832904673039403013622503685148568954177759243078229197694000436508489701064043005477260126490191322094979206325302361626586113935198754156978499174217778152265736209163897709557155289556160133799435942402828704427193869664159229100981441901792178234541176992615909319958617373677158657256976380040747273156517315367174954711629270812548495925078218012320688498351608119046551073231343864746361760045451857223089130992437211848972187783205210530602313138191738959813413444067283959351999785777819779224226596134421179536788536693191167248768259758960880639408048165396205191708760729432086201083273660470458254703534380879913875265611292950037238562389355825559375335881574914379564833197248389789261776215406644075252585230236470349600690850688127247905376508979111087959768631065932814990564555813890040256840080582739508830758349808487286996025551780376144848751373407691480969588639480435417171548224292039325048158512255667291431185949974886008191875875514538698492794098950018933443757111822050093164598650998479248827735189745791415631418468844518411354502903204351071865734423280727764188878055523798493666319469326412780846045375187374131946885202765615862105924272601352795257405764749937520855527264139787017033181607095602732650737864268593822811553853894121805977779809056603813804214917283175960218799227195305161170054650623407488274384326662823248595881770205960362297902904527837293653925755853354558793785984463999014175681569744188836473154020317155463993805221948911669933838972741336513674433374640719567528698635825307970167697775059352342277055331355894364755770356303044733185631643553188732371857888568951235262471408643676985018337325400925810472491844433835887470985945144336163393530119346593054318473900527656734864008095647036082048745298746552434119524782274656206573543845093588664167450540634379578961131065620100877741007136133423055011130914972808493569479036916797839620263992671413504033046733743286743738063307705955664888140055031328469140344829049619943508558118154680314776053618334299116900822025068835343465668747117817778271117828743196280970240774054203591729776819453763235765383669767604433003192045560150867857356762762381684287978949335559692728783230843177648495233708050133366349733403543566613211833719456917623176122935495185676284112788872801106269890308626588325265498218593057134459835964859912293924632838476078933947223605854016017910853861434291489213057246241535467197853461369926902561879560790218776084161492340869193324119351736297207401899092183294694286007052134779834336388697920913159682703694950729127003011036617170790432716502763230902571939902816073952076816968896703423024804112756431057570411376838665544090275390202257646901148758279899837839736394496209554394401106808757480990418279414105770983496105861984232164636152287191591828685798521719532313601526010364963670055688306807360375503640977152008235331674999761862147530410541377264110710239620621863861173572138114266544895951663477658369818754693388564345325220286786261072795032135504343808807264612992084828371294595296536572024311753938181196440169996036075038689781818112303502462047151825016307853071267165320543078608198321943452856289147460296480790847635989754759680475749248310356901384439728352498004663156879317397070671508802828890072848265139434506289637406235848965762029427604158012133484785650909423298057223828715082440587606830064911508778232907382631113513010921853772548494212708296881850984106270570103346762257238972079236610535885488569769951177652377980197851107629453422896732207514693360461979729778407315007067446945629415516697896416478324408365742730134785864438098848111531816956675090820088117927037620025097076855857768525590457973460580923549433378273543841886860098575575434850376856956286363033007954159759398583539944014730146481607041318434119664494444407687104296486657126219072559052758850416728751317791274265716225258638887217252163014910787188656625074444149931561101634017749012433071509103679192314366303760297525599353442069526317876797638495982378364362819405309702829277761007239038967571296012963128061925423465344961820197614900660244608420615698076868527562702477511629554358569893772918456654087849292149488531455927552701221102805922020653268245772530505719874624086053974773036307304374316498344673130476157532963823981337850734923189967199286807651517509679725623972024693839583284104472676311472640907798289892767747699239977756922028459897562566290925286301518167350306048538143574796720662041163290500525214935083076985875910526878679174005148591508922698004339698275673650694549263477534283995923088971760314056724352941522392857353284475289644740200973321521217337978211291011953719009521268477662411769722360683921457705579594066698196088418958819468557090114013445708838881884862910569246889060782887176640579816721772719999298001286534824078408828512249059627118386954418538854049701293400160277857809220275969876331487747588828563222615931308135147916946957907611197554848975155229570410046161295048900822363880203958940848599351283239032370218945802359649134828547426984423354935350302348050112089791097943949595544454894703375887280097854234602384158359666339157738248090021108819212070183102894777960675629793845996870181949425092342654511692379830738180757033804368095816335561315157395007089795605298145758550862009239608873566427835583265833665285749880820162423335114410683844798538985076648177515993166681374694938358318028731432970179709151982171916345038192508579626459003554293659292571871100702515976961615458455130862906096927518001025145191941322827542310541779248987416948806202394984692874006850093390031981246996658160394039986959822439659225234473621428284931329960300682255449228469654461257531191171527781605641520765582326019386417190418887629898059926050676751415053521739114855799257488573015083152089074795228126616331598865320050608045478454144741933495375978504848224122523924257994592406254886150628002280669655448761263025287932661976960221272944363674290528161096840685959613545974500706898691338951892787187020520368616750100983685499922506960677200714762887905242015363119367474812188693435173672101008779519260788419471050871518329129383612011613142854072682236314508352516008467691260557045265603534285946667179634199944149095675093028897336228623573650938054581445300129624198386933611504141002722832865271506992145399128451824476018434386797820650477408194573645636817178874372840697073793549408419852538074760476681480565661926979138396470737586010049918168054267591519176894573446091545009931214562388985544382419471200833876953272863997618595205122903002915083234183190309395780149480051921439656394291313248387378894782161295822513215037977791525044540253711529881136138362183007068577978774381725515918906213617862799725950028072468735778202704726764159852119575780130142773675195869774654373090444588827726545717611436270314285771852879038191172324518463475889117454223531431208399899127551717651158943740302951851396376343944613857887964193096032621659878376652953741095215450347257800783328255085348719290484046931746125503190319853357215663239174567720785148095447487835266176387423976519152343332886757679724319692878039974722057014723718445267453635014007389920288315053076677436399946417702983345319813628549731058491353989507133347670836375600519605193361354860970036389094063795994404344850085387787516957069374248742209358366860342123100860353792877955006125998407439948880899018117003667640215053009722473919769656498641182398943118597308254055632511396632167473828807878967645829297184707842647226056669870181387260891164733264230613810061325833504733556663319419248290985805781721004042660749246314621895767259956600530890088160562076372498637562385501807954574597191463164611724321383779235268912627824652257636635382257420912175302693555049627677024358348906824108945072159512591909528995681360453280286396292076617299397257117630392126286072026343570479682800411650520957309485987874789088755092375225235875835281874087602318832014095371718581809398176490734825831995901473296707436322331130103381853824694748380221764097664890365798959361869916480767697609319705216002087754498470185904304480423456249514777356804120857745688847359089641008279498678388220031918385656969081133887008816058582065339357168740896568450634766403837708257187749156909883314142760142490251562255999189328045572715325381488710841075742024982101634497158419532874837075646337382282963742507635694799232355563769677435848626932788568107251958888694831584603672510292807437471263749522838985621654830712142217154353533208591903352273253199379101345843459444480500972359918116656065605012509459474119292632891819596258313885514916549661261951730865641514843751493661217722852327180889928723350803953790717351155820203526658638716267422420819467146596065167346645540510956838930576162316138769028155157097236724512718357861164679787963719137876485014696678382894243566060062931400178563793689154167921570718305230839936773445200320001859813440202005372792960940870580615991830358611261546240338359123522524876250357072890045316789391191360010126152873988158451840403657174102146555316599683607551191460091179221340824698726106853008517935819861288904747580160261365060596748381078287539324500459718851491966793852539335027911262532841225909637412693361580698501625452150746675502120951338207287720242245428481146158389779912640114371592030406351494553427509350565894163227250705153092528951862003802426081633799003894872633801671281125619078831471190628760574190676378843394833501324297387912658162822048297119539916984271880106182790963395722714003417001720816956412534003437799193035552613941766125853165784867234285216971423581868103552580275536728232091085155806258140679356090770772996736535327684411324388419995209532277043137080011768496571654540433469379703365002645018137499034197917479339824739435028130307325246274428623245582814197587763128696734555678655581330717480348955605594287823341896308235975314824325304912506938424101642198728310912842560140159079344760118102098516488670028014859434145305048919271597062294087446331723524227285359492323697284232910449134570686606651056305118526578923187026815730860450741523599394635326236519444872912975476814596744519878476366549369296711356529759297137039275762802680559402038159262439827612987771276056325965136966402725457039279223665891574047615212747181349008642199361272787226321755542344215514992822406468908565243640343854227498522358678333072301888717403709004411864661784688739620982665276992969839835627390246496587174612647968843066952374721006040158540506238264323897526262788127496826085060915252907305346006790304742570491863693051783222502329743083029809293035662621887568018405568466181402113576068290108679301335367709372604827562699927456971464764558921442004667761966146424886383294658042633099042153765922000738637293715109267360551487214562936864159368259014321035635690816563310901728984908909176360934158462886590439842435681696530961233948324201134942131485084040875857943001070476708625865517804462907389511531366640659743288815970814830652188806770650376410753836118048744012488912044054671547006042413929911132689418008169178844952323794673169364137352098026332816935701185651796593649311676395710156300592784671215338562572057256275021860854751943481958592501006802326656870746273993628742294851941082781651287367615654902127359548859867642351835544227456214384192984704767830719157175257074039830718072091622410506087423899532396134331587782069290071533734902143154786221449071042946646517221793824909578158106727185049591686736635274417312974162602107149409594072842215868303401896757338965269895336064753975285274649448361227784695271980551661649956680835667847948325461961323393832786263740783213592321105795535020733286644301707197884655598241955554168914353936712711541373419329935078488728950098255041813729721265942049788164004343517852135348132971449800282239915868666109952837035519426772904654691223104348770635809093157861383485497762224270052769422749935117133749287879445912704148196819162494080857819495656980071994763717465877527547242079879884026461446776034181104916718241392612591991411268825541113164240064012562335501751793678132876439265615242423304006746540260565198674237656240129084922207778040740864964447066840332075538359006555633211106792658612059695682388588776413135198228969843074207718039652456181256901144548539519507693944779935821419544118767153146385004614423699349718071282391932177222947366740166339524851864081232613854423705821401646406884249208407326493296384392715238917875454691411400994529538740564386476451915874123300315611044088796675392550419497196464906734547101836241668949380182690604517745620193811309256137132615423048833938552351588762679290705287360201413307348947920627931825440760244372139996529918784443942669229281986923915210543178875319130000808784532505690191014288222819923966951527963550761764756335260113674539190616503436628295554010811921340977425730316311932060982712059999139146553450553874251349641534754880493821753484815269965234485906899092518233691771740248814591539084267454779568886281547368102436100667284780083978507057405875324138998263918865003120544789433222528276812552548856186633150264413199366401304714358570038128218171484785860850669027743633663229981182530870022924207665531449383213876797757210230929221498061858320474048252836343664181399180022320845876678796577776558464147690214841907822419640356952649310975838683936686831101880065195885225407232722646383270891407309145005123332926265252611158248890802742290865515551436720920572252526850711292538196196781706271860254643250748109692255583670430929267155448352393178908939801109365249234682067974751743619077202108962912685907927622191282089409168635927428637560913789073380383421927710481520240652536495786303339856932623284057134096289682366440745236364234419676380075340435842846323308287318846383035204738739792643481573185745985940052681416061633164535724197369159697198917546624243316787601721556131326578830089026410605487134699857069995423114143160042608905691687865297553046453616531881775845575441301864508259432182633736576205282549894989151426724264001020451506898756433162108315478680180897192608379867288603514193479405778260111002564754374425642812563723178485375975760275909464212237988621932800645788748756693503122752618743307343997057864996542617957835665268651507907088343868846527494663363666843720801339656321010333048783451039922035057388303522428837023821412533072896739687597264571224827569991383044350171353284570187021247117828666896343843318405132362551496862915729953350210187155926295907944095544054200246428522418151220117563955241070709012194185360834929059811255939832416022444771133460452384644127334278711833309470908083401163490394227890225381777155626899525073132165121381720897633345509190555936019261695653506083197368375138611261497517514019801972552487011922728539624518538292742103629883942081011221929117214643353318626669566143241322081534780352176290551346299180558333159804323391451712778876640265689914508420564795411481441124330810589284970111686198819128784856995877196971448855968431477309477636738976842909347134377074177082786440890803823330563070267961620018624427967804890200741994104827931121137958382514767662771127491123060653575619664306525215494799354038435067880129261592874856835236918440914027380126744029695445888150223972578402787698861031468015642741428473523227396703518393657828625914611104103478832823166598137033668643924609814145463841348157679526219798439153117767406196492657284729547857558178852954245936919149961353137337231034480482424679117262332877434669778743499934614129534438261393021802686994698287661726415727046264295652454473317165270352533877459747286755561433307173374399344107794047031436779528463846030363298031029468377292205389173419006093608706909497843851329176960175014470099923712105571609182789259779853893639925132389406610058004911660274554967001511791343418012624394387757672980645558589356134022457582877461818726102253815620263442222688285026913577817354797645409251260851681879781552049570320604165908644390397947266596157583449923280660231085407379458834428576715919684901974685318507159704195471053626631109410182381702913779702812198333840481293311449666180158696743118947546435870481804418850575286585004700330591731015277645105120018502847163799728785167031533975469296513972461372802469989514872831078855977134144102345145264773350017274792255992398709195172685553179471410708888640577379195762005405344843318986540283883221997261526881309608407901027383567961762841473562004033459168678288779677750045392690206191161480418936738272830206963729368635236036445242371746011196497161320364565565804034345143122974250754728165217823089830601976767057157849554397425593003707938054244012430982419841738674973869370702925533142706538845294020327515243324689656201945894758318675645949135513123263006437284804639637602372380666976136758425550990244906282461973686690417597756284042124956940510523653726796217102498713614568340779787490563426277847218370682893215915529436926350118404398019557560044841817855451457288412670139955921114632514956028179246195412445784347306360409196792477164322941145074590508376905231100931632077896377351879254368216093679772642599957625947443573164421761265985166932821950445145243621787541275354594065448252945140040914295326370706688998262868027314992377415761478739537940396507071972763568922755674354577621302122664959808650494048584081219805492942313095962626462710464397955574678336727100236425871427205703834386793700022436077538870936762446682037758314559950190328567949274573248771617559513784635077544018150439725189789618794077419708473020152774496065810919012645322882810625498257464924023688473751042740189004228547889415622662072673982688074279203132317173480099199390553669643368037920179991745275264431107034336482737915953246165506799055604607935103680106129439784203383890655741331728600289650035629974720923701408207825977725849743050964584965974534622552831486133052327016979590570236946510957648896933926549438458570722378153758495777241093216519048166900902371234210930044587149970408943095439207068610687018168608284326010205235074679273656083593228563861593401596036238402010140841052391427292450802864330901770013236338662677383063690388433501325164228788641263274501901195293677101656096182567822741628568772603166347125463772802082282759882701697752998300898826304886062092324649328120831222689974478810143409516445338086293494395338979737117298735065577299237256264156248594942960575631697653906515354152278955182551975090032211915956130878575370324700343445265736141895156505066419784295695499854245241367383279994080982781585749942570660121976184626792626722423797290867201114783853706318378687205851640969397833226956151134306666946889044447268426988405801505770181058601096034879361096137203879359885068957049480970467535945513946223404058824185081308485916300480053246451865575465248414067561358151761197224753495719321118731369733711735820233795336751476615685162816264795783173769336110823053433574392734714201209465014393159425893860977514381237753218860178609314934675512451028021332026427702257482297651440930859451343495026420073856857699056219901492820209872459320831430294583734873308210905739678792571363443498684196542722205831081774185165853205533227656454949299597786940540602436726569441229951245115292031520624431951004367288402643925821188989189422543345457759109230997631256672884791146315209778842378607391772612455091935233234143535995849263928922205102711893739484970878536138486669702455367195008365062868345902614934096030659697426921841905603006503409952743714075759359040450578466239838325714379602227623665644999055201435977014028686236442467969729533820874298832587857953948502488693168878194503397136631131923632677258209964423511478467944990638489460678448310605787194725309252592773304858242290104047772830772543699188327476575002641253201112685270498570357325793626284868218254382163211974115200545367193099912410209260308899652123252905225834837974401851848867399948732016449860645690321900776595960287040859788502170184833688172524795638882748090979947064439724493393382886560347487897584534015282150460828289065063353591888833469945119730348078874831638231711004331613130590808228331418320479427689358104906763311233283295832958515231016889602378690007896384770361220127125725301494117204154507020621729490541374998203978356456718856053046204211415529308052453997037239974161353073497944201886938236225538761547454789982060248699917517493842009017550800185921736626921446564240733401770277230319891991445411333021450741765847834480913638898407973797980406863202700679233810238496155910117444091289505939781061788713748763062669076208160393602221178058799054084493784183680735002800864142926922926631774888128880372559975514964734647528114439408317243329773270509851526017255569976274795208908901857546577246112334440928482769541520796037967550940313522365747603652099636825228709674484684740710638193927056601582526970567421919400901746063118382830044417672099315315457556776290668359357847797774209594337700188640074733512497348735659978265804189778960115702076994475940082934330313353889726694132079960184085636338431986695955011539816581073220724175453675689644960587420885219643030110716634366290152058430884862848875690226913530223684188385252858197229442254563079152737986775896363656683041274911936907050124620011885231647804583271959415359555715018020565936338606083955858029755590511274059286911401029685675608399719668573749648732958436472987376362081775912877258437318216590906318583988188120362929579484503365042873756278389456503990999041740637973595014408676255834675254453913480214047477337844285032001220283703168822927615119265908392963723314303853455043238553667224422685446395166705347405408095823216993493541027831639370933381732661031140683218066955508998593472004439597848089766154921634145947500595672089255091824672636154355020799074502833507874721218143103078185166222475206890177127215645182255144965610735490202724664128134725207497830939672078383777606951466893393687010350221046898669718015723903490863646206647719310488935633353059031101913294435769327725403711985627726018504809149810483677605674128013263055940662052208800155405629491067823848886332628446577338629800202807557778081260981001061479039515315846025759959304030474059453746519131761217225174622790644855364049431600435664728814726914593417467225033805015487938738183103018615904310983375017137500348509288233238266431207216645350686481874258605266136605734236700471441735263142946674419815284378943138768748488575530735903632643875736852749870771307508982705557930610549495171481275411987161758406297464745084839824893741387223787220904434781136541684807300798837560551065781532472024994721656028128378904819993559275915981856905906607800754347602870911502729302737919747835721318497594002991541916812943847542735145596556979379706369977685393723711852891246565255189405076240424532492142306718705940532435098087767316364195957393848997858314725759948985570650037313293616692808993847018743479947330540158860530913409413995634473642875570078516276298840846978127153494613048847981127210047404302204427626612789567889393206606109962357658446645304593420336709178519373959558657956571088746416371106172971893759708142154835716202514242793279078779410701531478334387605201243754438857349066068799329125907100024505585208985036860046187938893894647798247473175126241856435860024618359668429899489704268362505536041739459296937835218962232181826330065478444244192668680159950505837935894005350095677798489144439644156580008707898995383228863366522087875710692041063351662115891286893356409581749015993923275459008122989125578842749176839049879342189480337640551357122673029315038412321061133061408805195422797181354747342174264792404387701493633234228008926096235874709959028732095723083882442345249599588210576047943990023069089240916110499423237259393712489633379606301416204117992889885979442864511700773469352551361684333287957708590105570847981083496782240428461728235059192068564663866803641168661284364360943129725182884245941857971813318970550204483814604389508468207719885679948476052638607245569660666985186560688707572823725566256949033281900782620371636766030815103752642519507361826267852513344107523801612013155563377868791894552481459169679643350687499392825929210790468614563598377108698612615474036423948288707337276760097985501784285917558787743458291537676995065798874457004177405616582814913957800415643233953357848039129841213553758340320924345270996835651535519567134122458267417169210346773589715750172642173607352640677831270376374086650840836465563132545997345166402278120919279190006799464174845953063001072543125501096815285824958400582516710402119870797875643964395655358890326627352076089409359234893990387555150686532629461140967192045626105740701688199390040495245103600928046512855278233020543235710000640848206283272296235910661658197896431480017721641748333735103991545599832337715503737215489881260213512761305229072658696086015696907823887485150629333362147477429519169106669685271244187808896605301303092974309816787396892852654828311116364532998889641571943908541805856671811607635078927735265528720101107165314579721705213796899078053946751944320273316679427176850989719657034662219398931827773238300815109156090582563194964540865490511723373874024248670646179558843672605600894213269816428616741935101091368930256235286414301684808530514814006068557266212948386252858375764298322114923585654567663116120713424328334919237281258158744508514041155528911318061410126624032494695776382393076551240641015434545604965179220309386586833835891678416157590641389125154516475577680339069650701665655602943881877597318391360600497243280453390916667226807139306234315338572206406781181314417470447672023918952356515506095105793407585024404885242438560868607646771699568379434552061518946585465381989550046414900436085090815159143506034699681889716052970720022672569364330555971919359226837683414444291457205696428608247613642418723352383699678182082292205406942121857104361160325298491693367498634325062916544125106679877973778790605004761195373532841259367337765136810452759467388165885746392206545375475572330205912947160113922909840595827750463964768928640649377025309381675107310828876511465132949838760000281375727414178394856962223016773014364544588705161177725551094929628091445836675673612077830047287129332267312384202545073845401285376506793963757451395257875159161766669606564714352910637422020029996837902594307914515228164142115426882683705071279491768947049649166790289085823055631732477524710404879662454854167494134862406366922686286801444364380687589203778871733000909224799292840624689925676070614645158397335447564920222759509880589251664784524150242665729522321691965026449918226114150654910969564088188818091749075488045837664678351927888819614429848641925472089512117316573497682561967390224271580824473646198638757940393869993095770356965554254774221067678534465680604525764943723515406396591255256705473904060937516591827650217157158900628528283710707146580187913478358484895074490318356477445330074753199178413416854455029545722110974080744932328798876779512690551317161666439982876606872703440046856878596602516527904505782297379471732169373103900882853235863423000686744253790806116257228726551015661515775367633841254305233307872020416619734606677387025072215712838697540239269988278388497975342889981134963970289287590526096100360889959080174325642684705420882050812030737580016412571233650181626722626619312982091799180993403876273703513258691242346655160178267732602432719621390338016041731415311730417034896245988055317366012243094962389076212441872538617489650603847567980866569774208688614587849910409855283730171399573003282029562243382492687223008441581312129869942183710873723985570677227493196776592377178676102148567046447174577960766280374701040511645911244164356427850945370052060635328736252352543409319930698440529911924414324979643442705109460435093710449760705348511376321156043322824381284622228371290476387321271334099768741766893024839712821399441197205646488432922504887975683439671061961900716341850440563268597534937393363266180064766126148052375188087686169400776188585500541394078473181315656943397263115368244283122812374410375318382389451353437956552359087820738091402056060264237853423681194333273883947600787614740509942764153905968818447854716953578800044124650833261299088869804705102554761895091348485797911754056493563070107965303946453463511821546227588840423512780210512150297323465101780762820322762156455762958392121925497330584482910910486931905594764901692303942467641101503958990733773731017833291858337088599101702012432644580409377872328533774669018770921599353405267224878642772693100668362885969908145823801047678977196213514608042329891765687494627023369585266155358969885734055413211723726866726427457538459707627750302917007404299414747889573540776879752433379534749879478136238383457712466384737159426985566753441385902512232686161387765815512477636321781049792904345715733217971236100906584481099440575287594668722791907588051778699979818569634738022845185964065767995680958446365998218173798682406171070765505770963583020558486241552337673728722327473925676701390736324138672635671228639000589516795689449114106992631374694726564316246134512517268449333656517278276574638499767851886491471435680557805108605575090922121965814024447586556998419278061612027407061772424430822535124161987568953230468421736875238226533380561699750679677458901859105462504941532867215410992168763906559522133983583792453065555137738414929884403613604552532565200169343334243402233282638263321610069539171922871820025086902600254099618508963809049646944202118941733440072620630706188835801459283373665744614978685038191214754298470945358480544155854876184411914994676336432389367930614021228915775909485647358442894871873718943779683383482619502325238777646006797269520539696562756629226785471033558683233589639874102347769595415475138354706568953315284516979705406384495452440338915101165590971869825864778481250939276026863636157410078595939826105105093200776218259201620156930439373928109948242585289389096963725741167899946210232159970323306867146968188630955544774488822529036938580962332094767077430517325296702403135881309187895506976270457996303971606020028710112395708120465924891770904374208969350160772515938701977051261031956933082988568921592366373869495392697283691648190476668984644217613473892008173176082352350121386210623318194518593966273093100767163330511496734920072371798166354238260341627515396498252922147430092909273935557835805795720802713737764408705706205871340902168356721755459247063856343600799103627941229136256147052657809300654270254757765336666484525399661770606245981705373125955379549496996747599416653230109547745700441011996051233063188380511791952961354568369446766087910783887911167765824298000209191728263939955205903331048030641489090101778151746916049279985925904824660627656337308411381087018857901182498744937023776203976296263724414108052804943201758957424096617168120399770568770815299765703106596442984929192368052424955726615329619765725468771522721748727332914768318834471960400402385686731909886404330070094560267873676718803151915333517947318525085302336215544724134902895587070915738985884271913719679094150134927507229828950030448177855978928166165267446740662931192804761943730904480289641140973709164096186590200194517380799806725661473084029882373477352933810606223091495142579651615857495100592158141111039403523736199336181939190402043607825811576876641280464420520013946749765474464138087654096833885657059996705230977636920005668238941405271880625121268683861827097594481265766876926831515026174907537237503297170023603027528840383852069707274364122949869497705048457835213251662761296717742715293099703979327071971429706846439063856933687877450711209539473482508233341708338900733185819141741797158865246434083312366042255438973622868178705295590522692154502054173166072232538571303204614526632885341173797398933900412484818763489384338346285474760946457588509744756491583089697379237872546185214884484047987744890087268153027531197589411296860861426475794020079002541678188621661162413905837588612091793755217269133174865375173964264903796164840582566255303689396766321115847093695280928371076710905623256560580228933787066944874132402148045298796437441815493243003089262207301113135707042963383379190075796578813295871314716487539512345119708046786850946208787591412729176030171265892497471127536817292622245584990748705534445786806062853859971240660770095037622798133148531400616058982641232213629842193033168874582702629848925587376791143455430884194123240186356743580616729985059410958387330953980333765035833204529656750929227797897611494228713758564294558819852301140051871772350767336013200377086942356869610412447154813840258572958106751678095912624345412717578230747383394336186400727318678572156099240722124972211444054983766432938935592237887875666788011820774968946222571200244452259730445254969564208041799329000162797963130451815973235197466258246085134775030080108232955081655963140384817841902112142847831787465121450782377958119838856469082735632220099887818722662761849358923591764564644975174829611224737261513898605526325647732324116916786092249089278987155173499017588923076527195758348982692380779908374356930872024676204689801611146822678715469997573365555165799584220684492208738234576016563403919461123566536402197258654411318058503825091847375846027450567835746236783902464730723659553190655288095125807846992328464746083812408793087880069792037824172729995946598351721773713157318624698440979591775520651771886344713027961083611871891041322839030623426814721764834388952326316010788886272716600359996683977804370917805569643124262292625845097059139255196465899902893155162815008431427072441851581142606942665080347671433803872270712584075250324356661205663492137110749603009677070584154014928573038219553319862572752148238546952620625722724098735885781591307040652224889741447208049061375760878933622037417651851635964082212023506242497148098485277942997761122149310748144194579535779786395605593080926177417519077269745513439595195878238476962204975615448031458957921198344531469097450186349552605942022268809775390232515304947438229409222791893993680181564159637593321755332395969437466412794753777848187585887395367196189122410927506840446574985027262385089698381222516759862927143859414355705888211019242520667677542817192877634511813560761008035353435886450453175056233441537518461044916984290741981479942721320535817614168942943399968972462774627552854686022827928768478157153106726225013725450744902768926688983702832117094777563367401297978667587030256113194738532577365650933492747750342688440139966425811902192631349045531650287326925688272742969821928681685068974510017695608196192620542089545474996885044930804905370216395125552382221508484623014027884235794649005313326792543878149970960457919327547326033665993473304950886161971715878530244243437951376912671928715870456424863975874581433787300591144269557574218698113621174319741310515351103553919575506701525660578327116473193402085018371303486188593131959477309482883231018146875824232895636799469208936651016977787591217021354719734263340376208309357162643185335287518309413836146101776734695006936708465453445032194830078045097245696720227503951050775853661553461268516177455275977981210385424340409401948745166499604859289937855542856110187581810267035911168863347260974994793232317600899775558837487519720707781594695384274080671782537143230861579432209648107328669501668560473911337302522123545503512323745945740221119660704113020021367075951487532021661289593086134296535450868612238830029750731446616219489096236646940781508783271547758941791378582645366526545176735600500674210356846552306881878878754216938416109457753049445104310328570399571119739536401829148152563363419624871890561472311517610008159565940474211548449419244046707054792147451836502209854830875634874196890912166133449653277699155205950361014356406128261942577741371852354566054678173929269118989461802012842403298398346496253679500247522247858189147152964335324298453807897166747559830209540529709288852405273203736099014629400125578000380216366684289421811667274643225699606220845744342040582601492345726157032653447093821717161496523283466448557198653478515641801738180551584650091474028937536971537283912235386398550018810657445787607295908927358803185846726151321195931160931459465863015189363012842832824182958183253524220182019942873780153905615197137832718041414087713054694117956885081994490730398837701940847259283502086433370110246437162990718442729441661974038219535114185794592351886332843141842891680184000929510008900093208792722380871965018461890593562396463308547214937127624219479440627745941028159721568664775389019182380354280822714306544033609225046140933903574332806014484783071978585005736134532635983868240632566851350111919828881615947476775664908370455498508416729858619670257296835301421515766181376538924707692305409935402324036280734923151673826713146137403712507853128768770133741703192547608896430345705338194741893739962286279383813261824096857221438190845037798479340627461466112937850514467349659261018482847598667733651331548967989055773180521258661344595626866902961078760603820753866549461645938872985071008525864583871177378434536055507856391424697388880556275415134858101604612381363603871006109296891334272803343136816633903521644193637302690798275504285290014240145116722355530873488872129223716543718047985646817362193066312055106248489853112456439695747680927737300953390231303886497902756941491463926304672253157901137366556712314716182832937443748592894427248305053291748111751679860547930779123312641459087876262290710564657277344982438621182640236900713279838747200740120858837170359440826488427104377667653825689199182373052149557786492359721922691922072255447711808344946606491314104219061604062755628138084358702057622583554896720819541248079422718654724081070488796556362929082485025874275977711190324207165448352699791397611534694179409075736128137407916619883692838015415799612947545802783494151753803459872067647174912106459194840621568337852456124443343833602626935253297136354065451345618982914576896402905586659785286299432860646552371569394661866041448488002435171256358226749658562772275120073114961291427181816610410455554120090318136618608837248349144873066130699347782338310057191935513000680618173162908922092286525231389882607038327947757148548819011460372410905115981083302864180182761078632404170760561412391325113454520155864362519487683075694997663756115212617919539174763907503979630488096146596860759244453795614860724991726948292398961782364936292176009977886113203619915325457285402915283709682589864572775466550663752191446837236151930739932737516930004316658557213215396310782419187585303795410987995217466988243370679770107952605421723965828550617564367092525690813382214559987973566336565824996586558510746331220255012261604369806836773751831575341631429777223605906542404596844094197607009609177930408818143458312446502334876921113286627258581393071679210722203634138240993463966642543673548644966529352189328897144535390159350742059400699938184410616929451145536270318433266238836066430342452215208676897292118427939967032061367192943383737292539890652075090671608199701692937338002439067204791697427862780717987285531649250311730372363409655844955714680827920102714512821151852327760389031425935744162760324218138519979156338264801991243513490090318393408187733511440798751908790934614806042214652485009711278503626351266519661636474200239271646990008032442579248953847172943682212724104208380884082868028937369438605164062579417772218951102695781800634470570170950181907265346253021890920995902071211444886479610528456884834446372126143997929198424072879978596629116301046606295844726861495295271265689469944103110718048127045594409431820988100280722130707858925676253696211354302157376023618203336655436288377445675869343996985070513417422371160011104944630774067856135844081232572511032215465814064587143969291107385703002676409493492798607653263946811958856166682948996905841893722512941133191608925981519867561011381251900295753428665231766119400323055206673819103471752623862853914205956472691427619113442784108627950481040448588680218413337191323727797130789469390855420636839540832725908274319911215302951211864877379284836462596742739472945871211598337067385257052894468206658924004212886325344616852209835342546983876645322162214053899245373607281855222244968519074828749032254575808703508084296828029427492568257056670977000164776697928030273729944421947794352553409219266934352215239346787523323577056564292332930560135228655095043334146878232147083536464689900644234765999680129973049511856863642975630275203909184898869558536100233485031275381341021732498868372844570902599703282204390068771974843694143365335646761542915473132746878089464572892336178318512905761552533611586559614887295542093766837357720744718880854580240384569907004036242614404514980541863314545329512823787220944669239487505706381014907067714457893349996317698255224593484219644718402001650545932067073538057089239964125493432410131557747107637915049745387428118713659401626589113358795581883321382410111225333032096967693982088169646132866011138181864247312941434125468612973071239649621774843463863731538244777220048934632168248008322313036544612405166662734485124235153254248981274297581093664339412042573327953110462485641109663554425059524793148943031176498870199062945866393305326913112659001635439866399690175830159337703311231261538480239636655209541278076212869154891712727076707382672046966922694046397559326490133384550388091618990626608176284084249382002657991813964226218360355169094932144960321256160286582644640233412039031631907316284287786046396402651682728743323368160960640694263885394080162809389922646561743413832028464819634878938470322902826739040279718599107429873385271092142542776774703392991499675239430926681547078351857566570897262336747695042370741877523336999751280049760023790974688035708897137366328843536871812159993643012338810238750764846118909044799010422547641531465195741590401950639004854060738301259927956791821923108678003262621559020859646275225760107737198504137885972548491486638118018862002957133651941551027992276781298781267407065449124994702049941462484242723616408961760690565314376228011567925854188981537998054168158167055934931548091337373150321279860414325466822959051758989371284817912337388116434153067703981871403824370026999356970257631301845510798037525753841928818521434092299215240004424553986842579781925267755806504293145517728677336334470475284205120182262305880731390421304169431320536140568611750850458986035773299900344255376572136269568435714638394838656176196077253161425341935963527372287062223725089684806035022380514549675102275967583141896619090915887409284816501849602592685886255506686556321561252770699129663641165511787073675172166920843451657434160924952346378102064077291969541541338767305820320299648673858385800804534380175498094081982661871382123377370812071084125556179188325469303017643786994314389478042327248759842073935303742752640846549169858258096065532984129746564427671564750708694545385248588401183639357773561681322663739046678894528415047113707998983911849881858376223667633344053999659089438230464063142143454415005987335281196804272315834347924738569368387480537452830553609171392117375713996637116980704305072020797967782039769740136904443129337882310407003416406899937530098370734461392382797895455433944410814099778605398250620268453726548467724981460150150294365678626017647736640018497693642185573360048532266382441108661445794081489930725034906537099326499195634750711499891505158845029897584988397361735931249722410736764514034184765275526734110547629747250686894602790226278807027694699511211417536035421743486507549944576792914080607038109555191254367755446883964404885853781119945700601135771044788252384148957274849315356725136970849492967098376429865089644006094516412339312556901510289578111774402486201339344537053118295347988860249015489186274956861368336680808788349203772353482339398510360738725970822709710616987338607431423970904831176256219719662760287451087622421895226461512608088073723911443502197529264808048951960508673003604829625993025417133316162789073867386501354159251845825681164608090847101703484848155490592911217304424018774838670485747404830453023081421079534732831592432689316859481830937174591785442670979122612589297370647636956295319970590421101381553663190170776089009401375062676259940289819735435633312436382957400484981841788393262129246713209139616199955113942742021376823450277662669711566459897178404823433136836606648160800855100091024040650740631858502782900302124329276853501413013626485937452068458397061555861383700124568617271460760179235329795968011450688861568908249696708382907728819163676788047482014413911903391672034354652156558384767106456080599586760053769801716773964462894624614900749102437622537517060503725800559961535287937216182230992216349915376745860870555226022569037496845603112620877269052470912689379576411322553452686429493803890996940087908359302897681958915086952664353914984496814770524333089581826150581605060150872558970765276037656383277019984932946996646631942828440760778180931766358829762809157443891823990021406858180175118693541203756031105143967786500879098064577791290605653805031750812339245749715511901142035843718472096055396859305615352256137973218068273562267702091333237986188846205842195460729918229685219873173452333579763978627763323183941799962268736693221288346967042852850852350010836481300239192155153947539865794766994491194596789308350169948360043601687175425647591344761406785102462191133402480421943549112699301097828202966302209764559318980728551512161889672901344455081306872660001269162825435433135799512761271431641845319477698502013416213993415098575461267416356873080244387381409185928498123969492692159624121056209243122042333179285576664173181309870178666098900495041459429494366651429215866308122129788546459770388489748960047804979943766742108922184699658696210118024725130357888103407449074738041477603133588499810706972501745041771508965584785331716666495571766925726860968650710259155765836339217060874348936033209057173162830589856506456780172028303655658185445917876486458052226477250464593794302964719462571876985897996592083958817763120890489622699183455423405938253804066017048194483758179701317273263305199422549236024844925222620907449228801928614278860017960516869991866209130300928348684909208411256957301017739103722435495188906769065875752707976323458402060646317533331572057832699802934273899915907588390658121763616300747233194662830796035970088369844544663713556521405323647812708703121410961614363623015291136561503182087317635616559569613866705031810879212159223886669672912741498825777126997755358109942963065191303680456595956106855410407044836787332726344743887806189183756570920004954425932211318007673280049935441863270193730456873600721717891114064381278819362175912693285484353699861223866703519984205771053434137538469969047538810477208247789914918990648639784313140660713179402951538464839299761150979217554430081653006743044531479806059769082591242975755389779992992247751483336641470960162526307749884604414678116443788259342969471640606344136319254077346502660092835008492045269790904464609368194319826939589644506598704970046965721037500084308914062472105925014283132721329124617209958010829914987853003893613465902459735022394811739567361801215009178514455791969826018167775980874452082904931146847366562362261633131981150441895387379564507027301796983083777001079848408951889381137631633532682333122551702591677013488581117105107567070789113788481228905225494074375057209010851443151478375068897187849628388510807007090671666257185083316201765434859733538625273693335785623228470717577424604884090186990882797369875047071771485251632786836311605442582966585775185985799202445753957604296570071810397304141103889097286678714617070633142397021688874533382487702941232739960008876166285158869148055354166984263900430553786602894274931003563642274303275266309312132325158367900869881419893137354555970388720203129757787938610808471483531714576618310493356657938951434106251159090135202537986615598105373009190659391641362810598075895708912323427398622019587211930497042482985768664416720559666725132757577374052386590386713867199009271785792286863948687726138789168572881228010887106431634106943139952997638988552927878379701538537503451046253823484463458732422671136751377333498331447347907489439453440697539452299526556849296072353821203823494311847483174356285531623776567016983404632809847977887472857314231886143755244901192566699779692704775223522744515397052924838394353254974080269406760707834943834966098993334583696700434422933052711790114044612590265989198173983970425464140246595343546292750593439480948262394446387392158221564626486984534904506258011107619304118773392038913512438029571104916125612906429022856687972457218053365193471024812283564812395347112989895003755350581585825015345689306359715490519818278692176913259117358399838173046374961475415713542949245881014855047000779044626123187230655477884522689319960386449349590501939230116508771116451302440134276933598444876732867528540920063234716579239740949891873362595988202757497911426036973480842916280781583095547688813615132441838836954299804914514970957931940374215320586646067555788248431991864557932212418110583192242296995298683699954991743593486825509563872683952204080810387698875554755678952056023866739887819358199370151711601296303945121925553667106290183302889337666001946108598662158195535861819672594225208103239254794732994569372756329971564163732141076826950239120303176668619599006776166375824072034378410542099639949506549555293406062815530412394041664051527019734590323399086691387551496884003051648631810072618052745782002014508953661335055422333628518613210436735931517850444882413067570523142403998745060784501831254157414923007915266368707025003019923897644475068243348648094611122000938969333681162393037948090049992065862851864142155249494896155208318470491719119380360642916451720056748581229880934297578846526742116977540914381531882563561334969257554485198493230258868067308139867473693046359832676902832130212694180698102002291416002163049468172401242004917288022577103532449331831379994103228964834794635020420721438939054624295545778119943701697179606213413286095348510200534485201859161256482677546343314118507528946123627668528127568593906409601885306189120571601521939616217458752560475688872719412032583574074655658285844964993413168160412734515901920977071895266413392044136728286104196567342482671867912280963958425107669320603063490411150257626645267765832088177813692982011813995697701934878356159933372431215392961432846384295233896472247689171158877502958444692975704895653994593114383332899138242049364518380133014222527245036657422111879919700924206369920953512484824147729238131891932488121503690388197003369226111842630984036234623518403011775145105926132752242601496443233585374419580680393786264224999769276223030761903906489547550873786085901259633572732563122591503434607003800928041945631171692425064468723572336869138345753371128301481392884742543078446939914522957631736579344241562494633524424653799587175668382025290616146351395950890723526154259625734354597623593514897871722447245183234549006109867410999227325061676415936494062605084578622331670082072518140790445449657069580627082580391564153462757269689697038881313310257017633494933846329119780208405030563524679582327024181961052904120769623146768060161259467932723842907050059992203116143070883747437669521116841100436050555554019128158027450927519015987096531609980492092236937101468318220806778864568431153929553221194483809051053181407855723182567243078038621547588546842470798865655321071543845930102412398566765972162476536517912292020248690052193266302670214690957294536962508216973404442296871318740616470712611730820510164218899351840649480332239269837184796899104231941928567788664043597473935072507784026939249006924179125658441403621764606564718153262267094417037640601227848867349210060833307308225822262681528397411620779394544859296499175483806343764920571031590086486465596883720249125486997997136958779618146995824664134228213037765719265723312410856485558190518839552047487926469678591981794690733958905271128463255004199739860643257418694698508091959336265458131911522188937375859895858041576851516852188661496290251379501041744203412859581983835900244202267880313187574955100430046621991652948514577566857328603578104096840917090303085319715635074125035516362435336965433693981904672907670249075052081717117037542095663699647402556533590382851083538686107325842909549494055048325332918559715065048838431704072173683345555323704542277028104261385836573449751196506101728318255660764694396063748485583626584445555609060232957732883778708004284721934385130909941453974010188560841346101947806240102135551970236559559806682010825850729759070196719420278699412473748765774489083462883939397975848876628322800300083644722021333165065477139738739894350705687203383619792830311056799864468764118213634229942916187363517127443921460742772990857853967135914669398836329281375551464904145256901100168751605730823836224745114238926135581919552335338726365471662180420001109510650592925569135440784672631388350802954656190268241358336325016606206166007926989063387747860103733429539882179171872276510557911443113078362180255393191482709311024054667518065695975817309662307537277193783687849381785535493351342926125254521546653246147209221805217872257825694968698171980820405335641254560861265537545122856278076916521905171739357517507609919523270872388982447278086961585409278610853560052855997465382072113300921697836361092089389163252686915657122869393958295192292213073882318976052693244191845977029088979163343786172867648887892108123804286512347360248106928752454404280248411987895545164255959719659524732130663811318550700904598223897263033627459713537253987286654642415137871065729793380062777414688858076400402490340832128026084836223276322914170553088643517847001809326000826512605585771708873435636689157672877587515570176473378525078684080246241262828644146924192238121731543920966528400558006901062189767558640028734954697039113889032152557242699366537393539739353617583113712967041548373343394084558204321378917377730731998884851024203906743904229042155889244118428632347962466724085410864976018054360856751279184616699162119410757967786368450412355293691317369537244595392237431795267728923388121426524972598184327322615131453551854683443887669504483301581554894461163430397855615509191181641676749207046003882804467802915490365612208131400430230416496802928499092231169815797626434955189879600022617173078279864670196226384931457029582551413641527133612517503335589366159514755491371743639010373075929894743029098657896559400887252366109630547163985232293947804373342421651906819065245138715740210588841941078422793202056674932366469205608216231972651166938790705792421363008179139774750434613120505119360802975524103870043807530840593826583119418195543832888675113387458815648557132409574915477728344562461047098664898363417808579752693564851543192975500523333322292515976074090570599991083194753156275381425426882948462865739273657639337685031580769002012245560973071092766530222714721310494151106084288991329305465586206366578016445753993321929477764309613071384940262377622594094371302416411405401989089356469534873904383094963433033563332599394902304941025668486160919236914359998721525946858270166878220332124190297925875105098021767215882375736416428714433009660212854910186863543149098325490142885772874152058323060252431155941537262367200906058034225062597480578680116523304425609162109386302174934676300111477799121800282421059301427584573782213273767902731259041425684586258949200829142072934014657564371395170968889780519338843404748401368712189914887278694010633793120434731449282829746718596134166851273199148618156363388018100270612838321915997542098985099327994102156838771555557566775670394887712052180962915828245873785188104973072749976941133124127838663422369502414094895872009279096545359449529516822327865970664611154791717589995094751271490311114633479742918559504129061503082821998722535960670177997378613988811976225540650195317436619588913613391924592345689569376136045673277506679697964421762970735280990024673923859814030459979287898175328065169528317044702418079796882979797562836090393577646774000965700960268215635508262128871885259458062411409592115572114462260376141958522278698890187178256673087348041650914431939384547918295008901874810127605215092430708974916700254005193643439534895649051044459600509676194103761519116322115462711781877003316742973688407831438422053264162740721137734317633525265806954233879155978141496300212612668579288299615915280941376338354726060016047563913295208200765706533637231505218849422558147046467702588981641887391562987984468272286507265473576785604464906552590861956738090666862670741478190388237768594554077077043970145495026802937358807941804162445804352653796589286441827456109227643692452183808285851872509037723970540591088041850604048850192430893305578081940155258540718835991382008270477198772748868715530729844383842883145933256233855821377528256524506172663462854551458386662413565177457901811546902721260383718521254801060066263435708274097444801262183066009576024408731608328541912899554312147251918490549568124240498248384495831789131002791817332780329373037352170341040364835419742058779386379020939472231189194490400232760718169024225823953004279871692345411099943318019352052490863027613727084406984333849351235858758609980136905100499884900387412760997729479583180060239437842258890061497055157365775371774182370903093247454573951123031632630537179784509521452380017215337113738817599419889404772473976719996837719485082558710500092534092952450967541312305918404428688908821158736534737219443598250722241414537724676790451329357701711696043151906735592214188367096406644423130444205247060440384190512326937655383913857271044622095678323078018997967814988525552709027889906902835292325322683471110540656514564248107248982087265335785539296869357341008957319625253411766205627700477218520657399770729420803132265864685250047906257906270485856752152250372591281784067670722797645207853236937166082345901206072278672204728409080416360242884378066211063531937159116998613610242723818626237239381076976312998686699955152966841903122484755043947927777935889504986232779717851233858146103628611015673808320601232912277933498399654484157086116965542237439833975067074173237206645260105500306758309229018799467911562061939087190790326297919989202023543028607423015339590434432372291990625898503329781426101009633728648846684715694512490774999017830859073790949029720100541475653303767934704784380179289077254302048866643015504313754094462372160161835550689574120500406617734424695006499926899039769302067752594307112658726579435900401106380910877640699273592558915808029851581090735341370619980564458789291551161833696910718882582761538111105903466058284020060655040409737264682586118373908198436866590648756275140235364157292539422114589484792421020582567194335192154702092937958545037897758629720586600909410026156655690185936348290069048911006241687947783774551380957399860660076696241407826293922625856640220434408181497670654821139213643190242025148521958463828017113591171710295358868218586885855608930514931669269027640272443984089954980109151516637459391744998532759913261774801836069538177095854991303392582163291375698655265146720953892457747387498251952767262826616411419480479360840575157270590119288500525339036248558426281726955610929669534742949311938079454007399339850123520878451126590472842983275486114122643467848731378179962597937835311940667282446370408400783053330754710070139801543827889694550646422351024841917388233130497932735849374267375933363436188848439901969017804325528649589293896727020563051858946218543438918170712431086293070693463507650145158533708061210352658727994836295404116654214894345763225081233560967970906271130318297827858263501064724760114514117896457501916123893172370216130130051789164524141928984058721396244612845271970662563130392866197309486135502032318121899037278233884850629372769264149742151177361374453530281639399504585173985937864757390578558378349079982894637965121071595868720997897076123460673336934349755460108174990114975217526059194099255910911790221115603956319420687353096380989805249214797696229285200448864589947595781276001748042728074477929439554889230838741347022110032023955537482624929466719093892869781212383497620292274917932693529747586867819716134789678807965652788104506147477347520226575413026178913903381754940354975001528367804568007877334406305421962646815852009921649278411562714208537170634870551657247276743562587831103171713944600212002125682098737696945207618228662771842573219103448965091546671694313640212557345561606745294799608890381959763012260320458819709114687133583686878195086671893951922139546609017913721178319791611812198397690944169136097375116257475065450969086665831013837105644404854829067817594615835492373458981891200346587176734856724177059746065891158830313197624143070427741587511657328671891319562461528689769711458834751763237905659841665031793463244016634932636537620167707659225534417350484515049330803279265699664098887451307235572876113668843478637351114886737126095958897031919364228375814830208491563512163122630643682178872305091563336056819628702878916958282329102925566583841882084823317227788486632760416568967430123361872148654348692860606697856818605870077316234182337141893848671710159852756411757060543998581259639683925424625420962041676818994920548799154568419818781615694549929407185507313878821852969583189032334056695415279614168043370602288016205879769796720728737125702579441426959195995524554543598539282456829873543838367474278692986551124610438847245281485101202053540181850799302177629175535601983385430398445125184082341703889220754701430355647369391660454642357003189092599995536041184888701665520248386756052582929453043115194811085191430397762069794183891797945269158650763947786570443870094776875516863937514440005012417778402366021036045209590877665678886039670681154642753931161502548246924699576850048992434652280157543768417810448541830242402190015604372148531666433063601161477183809905484402972942993133863745844198788457666509359708062429777714989880243185402721403489300896939959532961192714741085187874858300163446204921094676811330665490289770941148677614778780070117471426337772594613179116030857532785017643258758437037581421514224765823144763332762463200778525607199307959127223296982218870388474298961809348099890848741548529865896804285563954450021278032095428087164465019258385231421922107880917157712539652321217943419421841169661459670737825944067352496785845029959359578933734449705161050534113392435551734660733069300191919926464506031704579018368185942690249715346594304087935195897569107760324211903864079519649315372274473659793700886357198501936419938083227964881391386405422501622900765506911025863614231898656485733812540726938480126704846596587684816652582031077499530681448846484433482312529230056095531630629681796652280477462300879507776476738059651703342717055463593191601309788304067405014023842968105391553765924173396970103111379290732216905109484217779720553689928172354831434454979004572158541131046920376225303779664881608377646971063797231403847190519404577548058176613722747317998741451791510426563874582319855267623894631107121528525160361301590042861405001548444769232405723026348081793804269479336013387431198412211182198448397582293395079189538037594305580550176132727237152817344175768042583016416987823657629757542588920645946780595598740794229444276457512079492180994797490432103598424831468538721739315442384675618780416529497482286841921861730220797388499095783920812803649817525089657216043891235084848007676709512608947684805833122731164655915019247656338317301367145069626221564155786951718340822228755798199288029739037354934265283187034344236936808653857169988145488345686713793721376401692094877181882154661128586487379101460840862394075932482059023543928562053498795586079368961757878959949894932789690044672721149892310937287285624845275468878744672976382258714297659937181160807527032494956450363221216181309044823084814027588023172154435453679313651250713864588568747940361909943958937340656148984145585125989476436020672274905915336976598881717493341636187078596762576067529538980372864864917607203659951503388490002050390262018724305297477162395230121507426008305571606159845615651589212186235639616288279040105295499669161055121533349782159011956191227553624909612970842242361129863243780075120990381856606701212054445185731534952571497649962459609398226205818688132516769561963350694932063623648774422336141269206169768715218226261629580600460933284473225741855232524779518546258898655756350065087743488275053396062083950590889545470929734283988947835361406913087084839018473963921917333835483530597782038111574286843514954144217369232186872525951860339957965486474480011086979956037492678884142152704409128527362475284673763591039404908008853102851573171654543192025408205121065177352787167725095550894037819568888991035932082965261699814070394454677206541558792410054982918466715014613407764884951316269155435822136419192904748061692864395169781194226923523883239469727166194274634729915520619223877734558862207936670838715407720636135571701112209581512592448030839318201360693173861573543421222836771605681842553172717394818409945260569348176572796411424753452021251717234090765622735189707205837771171083972946918127521393161119718471411334277837507141900658234255429170059460693381211219600654675914604127731996623458354618848187667738053241813907831425209380096813460756221907610679850192266312921193183105702749099080049864250108745088518365214647422847529272723713272619519166252424477844751725973950690689476773968330358426462485612141255124248619237887622669470101339720383065793063719079565069829393474629462153956027456489093862136192019151886725425621244034328991490003976155722320798200544806837782076834731984926346092456631686685740496058809667622492055498610357807159219885491158066846285537905900235437868599613618166853750903762750341665923168279554011724564415659576384986148610316415568306462620736969078672158510139829241427998254767411862816290298517782562433267078263784415947922674700540533833870513126650106652775045482399121828641503067750458380044754226262433813578427482976763205453122723363022037994454177415465552004681103376233170157715327592705336263857336946230980677441328592370809239428033942941757521919530688978035879308124328797034512794619371687619866774696580225886336786875394453966186307771332683452970197045521319668162483573620811244675087323184282167731514635761674429177187719860100319728830334792136582068167644560572337243620729250536256683902188278659373835622520658522402399868196610933094888685446432991561018789920115520660821291933974122155540796759093982933649016617117148677465816910330604938746060458349980420838092251974399306121003110548771517165527656290374383656348601085589078249373755769763781104221397929750635566723190538525121042293386692009618462784952578005625787257712853022992601463015965686970960762188412717361933229900673593160283489442067950774685523678338432544226195047681638089457196140938269718001739564197763462273312242164009475048305887189571166789240876255013768362495025039507027607438671343820984950142883784215178774104668232245898931033206690694191464183644613090962127175403890770764745716202504392840269391337937787494099662945775003342632113262779585335150534728348114984311326921320343114487503497451941858158403143142166487899214923128331356911750316221643855728951748415267869920628630568349228404176744928403143828790761684707526865491944338582786876617051156088758253756687902958834617592775930281804193360921831589981679423747379226643082019246732016472601550398934068454351527297966469380798675623508553764375811377342608188598418412801372979516667174109555666693078835180253549126299864520481096123926772799460555415767627669009549467096618761115670841841175329887142835034571791556297745568285879550878525562274759652644576361251325281518650286031153476959533946319003547501001379203915804632395287541146442615709375384801152516662777740431813310839626169275295275754616891973820861669045567621723355095018847696765811216243428077253683061162001265967416826493523252126189677391095448608569924437927749678609124281377843034696670939914997091805967967369416804131505837841656752924179555024321849062601310101436099811414646890488989698002033896418819576956425616970317378799947416272106844795034052763955183353974530033256149241815153790949900361013082780089239097519734634804766373045523249701741635281769213444714315365513025319527237938052825981703163411638000176421535039375524305203373606288027338519118021823462712536086233923301672738312236664154193376996990789893319554828840179798158732140948151136702024920112101885476262174416685807338471379780747452396986097999868937086673704116626656950619086263687072566842415237689082247201752254593029065700907240667571339657971542890826780615182931727498921860547338077022017293517289076932084679562935853017595298246905895148918542973894096268002524769234709743328912116147151883007667917665913668164024967206741483208963860265501906616474315234000762293381778838025584378228198066644014269422361098211601600992946717708395614828043088645631894556046864437658733459522301805406895571222228692506120324036199801609729882180021646932647445323361325935629063902708366259437698213388021609313306013393155187489524531246142550554111980357787698966829353576250188964566347167393577011969186131820598594461536702141495301780251671824652965722673984564998821321691498729825971835584000313564911906026840970526607456120698350088289952398713514855338042953260267722297385830673128325185927416651431803592790655372916268170690536662133993290449767051348050384834106137220551980656487235941324931165650177329914767379626272551649667152993326480148021540289272035731189929599659027606764625696073010178310828710769382713397723945247459461524995052009748197530848743774272492289265189677371633427113998563440928521287185612291077961407523955133900323106013654102980667731229704348574138170749862791796276131314683533307764267635378401762769946060091965626868417042613349579688215637814696415617364628981442613133804623437503576778021663432919538269308653065837467919080889858395012304464173664682571775190185521560623534300396404879223413316949548087979982136371520393934604102098692670787443927249943784212329750517162977818930122902552734001102075736543180894670803491961881374671610435323248075337890357373298859428868432518383767748304998440218871599565894389944300292372755417306878589776709314748912166287881599850089673396652738310473253793827599107964247854102646000098220344857154046312747910510990909480356981776608591436064313326107789398564277137865612582488304056131008492278116979502215683710610010329005559225903829625681226981226029680516409157503818172405120467100396741536509197628020802311326219105023340120061230572479429012711691374796910843045638499082930971969066174416817316462732997693488240275277443206545782487355312011679234880981279346388191840881434367750142536704521004281254892136289517063981332159188177664414521156188161419184463316061796579777148952147135913210416259246927543688191291246672060698127556977966882117661942857476972784702705920998547530089480798023776885844049980916644661051810527837713893102516225625503701682213318648220399876255979703294283061730146457798663250497068764720108483890800797197443561564757847402989658191905252549817007131870859494852488785967737366451886168162332108993968014242437520535819541282073011834764030723901880694605865246844399088563775829722814820384574415619133478025795415325490043013642976399900264131707454216520196987703265865556029105742876201195893740461136806368306629346626800897947447693736976588689215325993811625537403757685576106738845651848939026500871455747773584641824757186067952511794165440112512584686917318581507732760608403135327166443301146136367108398790109302947494908263075377325746380082846502414253180467644322719528114429818315624929642646544537246401987365962313599071280067741326005381894326685884730566759786689429699795018764511755045470972005053704297582918147221192295808267768693768550675306614172347514605132329022369920560095025227880766763521172712387143140418571368288972723399854492961179071371392543103234973353309899656403105048223890443879852479428525300337964630061843974597304238017009514414039188156541273008475133003281813738875709156028353227250778698491342782852295148972604182873409349627406877402696890025491229775463540434973051651778919189695703181642654217392122472010586732061354269119427555371429887228178068615642285335590901726205388102343342294333982860931399041155420813027083647095400333073778763371413036628125322626670549762525292016470315902163071965195656839242551479882283059199422838172613451038145321525180320727388344448630129924742015566284558584769726750790461448111846299220059227550559888494709155922964355597467922790756489556028099300156254633436538703655132066584573545881336819072562324340314606196673178686134837672259499065410967187977942546953113558284976572092982735266977675358021134166103994860030809957058965542039042853558236714852919246627685705391305392142701811095799145237339336977878904520187134709203040431425686583748355667336894145860561422211522859039360990463149263664555640477520285027691157315692125534987131874210127732614660519072508985964949393414739725780637895881167518173661463799809110593382980076790103011890836686527304043438495631893982673844790109543813556095274638049053793868630531389901345666972181491526632293439108099758862637958812977072887626043462638677455717860587545395360700008286122120693240032041105458037827669574863246769664623454671679384583889179721707294176537270869821940598458040110296198384910769412930802139037989888351316931996335684071011271185253819132133032458587242083150691874218189509910657956787809910567919058835833603872705801314533529403328406865997714246565754172829720539352298859957006474937250793208208231508970830029493985283343163844346401446784277247755596455836170081229300667420014528301630921765619783394749485439257734335062792688105250709814901978442387914827246350781556281326113195930509636819592084110016845859973952260431799287171325709035347937822011839125105220588812098694730968831329993182959204845709466364166762459732683066872801395067124794550969179388244000121780783399495943851102702824969997879185679692294610199521245324406881920131941434601088246429007702342471089824423866873411114187769018290375882868585665741042505928250585184614052801069626350325553941455769640765623948907349111107642693964285747447657666297219757033927722122515309255445688017813029426241228418462040104624078495593689524276181168700957924654317618047517159305757574738094028639059272891246870732147032472780323545348650311943338900021812391186158113059105665461319894031381331263897710237716886354432733383283635309191761652873081840165545073734918284778928438940699532726950516805181136546312850078997053602138641704644095912457658959009131252319708328334064884910693241885444567914789960183653560649483438618734605188248306987368098331641792394826991764023537238752995135774098074156320772154200048522395116186424892460812555961295524524034403218987683884791531429569939168036585770569287311575286095008526333813481098170923748985686251886911547057527025039564976134539989777662309789333060501837588722303869036347981656628319864971681825901805773393399361825715539791643270996606190748195355135049297776433283394987237781181347041951969661236569658410012190322809392383497442289075060794983117580661144567129231708672579560718849033215574531036972033500850287863525185554669992439538218570317341937334453849226320834328853996871964525808570849449545603756292361709942271680533982012186688938460364822568620790607365461374462419065179744357476707090905086750780854659798776307416993879624924389387337932706035514464725506756467448032220249011427423437246147252891348351489426068234009165568645346826354599103557439698652261162472462903214839832646719125826525830472824432535865522235191399516240700225435051242171079256194825510323515325608168579529141460802589887495238513635185265927267484843522181458034352826570600856408953907374566732792179216445835641232595296624880100148224795371843938821131318203585782875780074974468221579417690134110047981084044742991208572007426412508620436299249852343584920817530878917142354589013022282442994274943594631523053665636848149544973710516985398124664563786194626497167732017866499622072809524914806611305906811409650648102089363143940701274043315467476222098038700844352507026744496692244271397193354144604017696880876483241552298083851414805345496558139952494663799071201483317274289623208734515600336161055860869690204639995794745497377416889822603705352541222434929089177117461172905305085843894652973829354798594964499695186914191204936397972765629883104243520957974585401497476824934326146224821883413808250512310981020052644638859629021301583078089267090792274810517385236050786640014298463896467213209778893991106193306029683961343074173328523350857057590318908518753106936400232981354847085127892580099082820293429795033877523857234635419529284883255365836117751314768752752309137682232874025383365509905353108701610581491331341766479055475601027605879130686938629188854727953578611730090851110196611932095222009325397362023090150746944184228158883628686169768731379218548405861600392427289812817651059761544095123867972371657189784693841857296990761317070634954465766989531734413099890195157527205671007547217742966749484244749848667637623103386282298628401429250740706849236715283891254016889724811562287354900132585955992409727011474894373118075115113695075147365698617894756596931033282532826839848890990192217349133017108910120942168786495061690829312784911941684256365904633591036000036362246299685002972101595948492396849936937574442247113278638363876516381889882258275611024489723656116648841510212474003821337742126101626281422434505163577070943368761697213057533419003994889897916125899648179356451385303391683757189158400300450698920129397041481182492243536936739208065764054502719767368481778660099281909876574513280880551570138439362272722973194722858358030768676995858536813936131675164903004076678168037396924820156693665896482555560765494067037378851948476214342661347583613356879572935826976028626342931640511570931097172005915119824725772541005147402588674543875918109559372914295692749470594219303974988687880244476258384146632002266324874776119003226702361959340641708060708670021691287682155004508789507819504994022238037279347863045697924667671717602860633788383885754917840933469375777361964256186812902175652514100186265311062629881696197944569891370744712238181216432093027660580735159377687199715034090115880285683039962368556666195466089845953949299607508362065823823752078355672336262036273606478821450050987514850732226343219767161602138329724488962769436536357031559513834864316391424848913600306957277637419901088874452841863697529813225771492210611590430321860777460676176350632103623679089234927396790792743202735063227655137272738337456100276299806911157325565232541951854076707488126781568446819205959571093562969786865656103410864954002253706629662118799968864379206715978460850483694097296865183162133330637109012680241471824154148698960069908991782271713247974391569468992190631093525089291745495260322773050733757708579719197569571391548701637294354869179885289022113564442389343164318583404149055069937934323977997984956773595303426896423657185487704045032840663863079111930790383367242085514815931516762067498154271769479815615982239317644089945835592684758233531918305245381696581336827924509201804371956306099489645144792922971142535783534896824291017480731534311100420242859380791457709737153406127821733332994971289403403530741441852524057806341092221079170163106512366749413779748944599644749235120760412535710704030846648151364763645285152205132489532099529950010422789494432210638890373034041812565379233450760226676651804641613423885501953755108517783026734529921059852939477649476687674225781063166217096849140016674644003636360966726443481639523934911079891884195084424361283048021737715340203911536461112267586043297780439826166848100361756288639649670389006633929700590209990457049973437466146271155900758200344844353742039395520778153136974496068306175063942449866404880751357740096647030056693994833147471179951439694510028832282880358799066571381031675988341335723738271461547145620251351497354026934632690148570453858335103955487736074994771435378927606486727673737653077194696414487896025604798516650169176662990343191098354262637305042518095226759084981079517931593928119188927916689512428100697234495837184652389888104312086499901800419559992260880144875212943032351799538314249923551882364487446091116292722098400692363438397407091562445030544304952726598369729260512866232244757304874629880421760929142245379911922275669226321070829416158854776487850573608378462771505556577458897948099028650857762672853340053158044924459792079758144190572345894081399388728845909160378903464293121478760672868834708206668112074589372560467689486864775001664018722793602517657108553082266018029608843443197579764534648092320123866163246620073244215776679485517054497541612668970747008925477088015106696829600513056024313299781116057177494998813901029396478936110367415043498454008916662608997951310901956589361470034553313576675822654429593757437059023301695467117863609915806302599673381149800512652030656297979802879566620993889619532260629726138407687513418027289602126236907239674360649888096003401688027778740191341033900777157871602436687631828736583304341005252974940973152358684658593896534715765533929767472578494151235348769767307366509518073074258113002031493679189740424239024739740713888457220037755002195708245479499877879900145631573560995948972643419088315998219237241492644813170494650737931857258887255866424512059396356741513012935227358273134267347300215364913785113869272690326971894517650367107732373825676348293480827414649484642918962796843337247511039237243910136413171629093173346235696381629409732208565571501390848295570887821672208725174432471535543415086831860759305174233492580914599533472819210952690222766557846057554149605789384774506512406719299254701619796526606012955591567554989591574613927451272633669822983647397743630786475752577549586369025287829577415864023512592324289218284736746837718432515074784345909384595602352430706326828568441102125363512275692960439420042866450265250566035720645097450884485359187741022226822402939791566787077155256505509791457629803217164424040142336359001875294693474003302730097484469217311666887044271607340754149578191747149510207339089615607583486925464038249647675579793766455218263116913649697440568920723355718926048125223754887477195036910923857396565176392468972723107238294170300901844693656059672305951851088056178429232568636930767109511384068967438761018804730035506356042777363464144258953930217333401233067991866719067832898997721981720859399435971107077705162608902496422339728949033089588842659866754613703846475398897979967847693897271324875521417042335879969077024550416581907847728145750409686756145144858929050751808136783311253225091194071983598661230670315650436559963360806524630424647050902035282323549168101863616214340261373157470788541837597960861020871827252458552307876838270370358769923697205818404871106071951111552844620182849621825107867187062670479406415644010956869262782899183353583623445990068962181524709711023185754869750046799818780729798516338771698309820065763627462807824116387972331596085217283247110996853887818797401765224939759609034360116180417228771379882233104587871343714544316396129865137500954809091841904765595006420563505418011388224979796506096226193140315498097644304664197753936462694272867706412828126352131780851077971355695178146365633081074465940426596080996501989432466211299306112212258640385983209740590559271635324901587704889282930593793864054615484560667325409209123081908175292711853806696964774459053355073903355981380128394553253985388574204408161643101157250138882122598221501793605067151497172584293989707920321372812300457430756454360111065005596131257589145688293521299780780913250227610909582855981045435816648727936867282519905564408351925435048088975171646361597383871308561199751898212070743187374999174568298640038959871992656150963923883560723042391089651937384863648640187794649989211376212571908422645606623260443629182863042640391788281310635544209261015586533393506117833418489326571328452465298317217098862634861990736867612597129481187170046573364586262973969253508573542373371667918421143578821737822227937635744360909808133737033311140034629739010095216343078766110724999330865210422980544736507941577321037716015284327571372920844345039050812871900015853612868755346114904168169220681821244893096716087014006541734622464887810063405386010033782318092508573069707727605715099272715563025270470946766425406573038646187918028655651779798790448030335486388443850309192454523226072189130749850108409106020905956964208623309237774054819102218002433281224333162212630133780014435315812365240531100134986010475192230357973547467738837047403760299323862668656573609920098472867042595780946706407398940631415611478183152749431979656228409122172002412015382315612832403527185273160378753354624078698264623510755775328789045283343502743954004451727941695343022874087958942833816537749536845821252757508592158935667748633748752093240914287825056024143069910996511554809583320152815853508629229208684913084670452403556280691961880732747878831324179216793670349852055908989014210664251467944062423327562526075693411905493474137099771510128841772647651000968138036728109626431346247155791929815015723727772604724672604071236964427475297906380168509570916355338699107584390351379773807152670997861179771921466026197746873295982243225344598132415257637462952168330442697790242507667881554892023995434435754900877160231984394646152106416305510052276823282179541177601830823271867785091312319996222812208493828054672709781531311064316719177374893133742311120589635777531244391792427575969142722296864953695464251906785554832657171298327927590398094427352615332765416241148188691123639473373795213083510689703671572381455084640375962747172074078642911802198406650396524074408609410838441799936810847946517644876678957454456880382839421060017530884000876965116201072963927291780791858356342335907892020436836616156299828558487803294045598684740051317626438045977237926612960959839927366193530856380430159957950114281300081175370947060195162993778135243614177163662590939549077353285352481611863376533427999547944524540426184412200573652410956068442144745695704591313726287474860219208087950593487324067862452857921014145705482793496308331095966742682296302394558804703947202675852268484913044079328865607477886088275340085512764322390452214242214560120952874851642578192101736594475844693463400056062832296296605280669005074051876179369677522311403800858842970351092408420838344502959674154525545597063892974546474576801435388057234556790582774548780911098277581104034319144901130995831707429639576013433630634464028603898943706797334688161756371116194422489312116057261987192652502887720446424761813179955250947722116205830404708570558605453090964130921093663614567396319141456728561191864955458730775099026223325833195647760907161880532670596875516263005785622298330435167049128233060189362239352136669161378821670782473328712822924642861045575611675767680711490374355484945187813825875630608921113275110343119684015989886100958420715141658528711806519833523128656592749826306697034560150996889742146765885998719383187464250423743119156964316748781497875535374745745526553192797521741520350209151368120561975454157965035648304526448785129054827947556109013999126436430771625278218658410246020464326683594130505599371045361867784451613702139868735299944597877979634558553595458472482341222734104978599602574066907308708872125724738843883501296112815940693025999085587186979573069024380614934666586606478057925117710541178402249446840188794629907924659882233331435024032073629208888541815342643600240753557763177113658947532416364229532745630383876200814991952782401686023383753826798763866188836881245257708520420899639781203909147194541006424610735240155412634094576078270389364858594461708712333415590214510671204104462813666147986163647760860889239545878095149138680811530969268879208081098851768378740165725319519901582947782135529612643092513963098401252782593221789752717550527302880397585263850812441034885161728154233917123697603517902361535979674502336504463815749479213829841863649703250757709838515119575318989378389327231318944932180859344741933760405228829511991167533089793476286841528186850854916218317714179221265833028031683361980254667481202053915585018056971332136541867912908206374373121176041793606939031545051458442426039019290151142236289651253830000545850688317936915177977378589406964063570787248169495013703440687956821499454784356659335150735641234670288167460372502510842061901395341557312945899122855173909045644740397655394723212835418241008651707043431848491970835358096127461864696154913517757067301772303819935213648106355654819762714474904457234290095605072973379163817359000518188189463389567363670653168524523593520914359593667609202973303125567808424251224759472457692881558249245938414911862053593401539480844986516452494119288125387441232573616356718245534024602267481023127959260122669762399681884565911157622274371208747045305580009238546184335101827980638209939351828159103251536756089325401420015329784982208289187048871439739657981496464747413205764976080843676587762906471341774829987219259378186010962703190508327860952468101758047530880058673469791428493012598993256536137719602875358548256289084831303154114659114578857829101373512056420841073911380837959731498977645603217833623869584599874274889471672264138661378737450952433026344143454165258077149331582813643979166301061111794511909209532910927650249066311622973352713674501554475560324071123950372859488118263983960053041004124740878635801006921309318372519626316972521799081071481220543332096995055439904270085120928518437417956265216732602611448440740567804218139860007652797787450577197953148790918968163554707759096746054289174651733460602902483355911735760031514695032174046138288770496467235669746400928275529762284040603621996171276491866301290664903231081379391862999891012301417413150155580268406997155838046398239020104263942622563001780449357400793788749269439692198776379782270220905097995634369179869747121764482741179269300636933245589329411157693949545810259939340455330839354330694119299091004078736992751463007750859007781881188925834902291506908661163143179175684547038992597831658708753189202107733766449505264277149822978525263094166679306178921794197539561499322509528635951154414183726633063195203945059812394737555333406164664717099704499567509064978521718431869662961734536760548416459220135924596239424947369671862922831112297529646727980495202244703718701174414615030308954705178468675414804252678482905016068142851709873316468015626838306326436462488652293508280794637543454167831940275942338009605716049583872211064667697891436988568849967301614412267724704201116785174633306471825442988000112232001508036686061405415386885553079602406577344985117307389296270420754641834404242026462211088243610463003927119075277980440943995683673625197390254776814562090196566598323692496314436711696949177528617423467946692724365095500931128415844200717591766408737117691213925879549126557713580792518896667900681552599843078690263146529111283107180262133188591502252658703797483546058599376205173905656959155394472413291958476131185244702753174567134407994192215344674269610005511292939492081538354490027719475255416398863023884451145533460557232397258052488089460049734512248533844794201341733644141029898071727043477863300124708846575134544632999057262930998278150283372909527969900200106930964005773875659311812517736699276751801655917172163681924890880449096534392110255666042305452177599059079658062578336232389055803430694325181842452159488824156913551729874035174758959788238576765806848278300120105507240310665802857935277954178486245788672228354791360237154673495390849970180270362806854973163638080683567383279008347997648029717528156262912193929487289952794234940209654742575469127171449360159108539724588578040015958221613741361556971332836200345778149936667136383444165425770981803698729425357533194973414468781676006859588111114048476511903711162286345611640128489693422627680331510193373892897518390322304231462596645688017995172057669180086734012024779095213230855116671575378237660421142504314336329584973457793295221544085429458341741974046948215860202559180558742771352840981286210026880964312844035423026576100479512156836338333617836331956060222416708584262368596055808021188124920262347120526215931599087258134313745521085648983129186684561774760465445670752606918000087549712215562854343251734348294241035281905913558889891226726754763927776736844022617462766197764453371437238621439851787054580824512004140799156911199313735158393456642189869088412511075462204732242527456934161800721034030713078830968122699378900910516047039665013566247956692681337256710397603292013749462474382266616653265767171502811490532724407396325190632645332038111835213471878526244856831105216522026515850098685265252426436653560521351588973974044364462014773034871219882685001844825105173036184253799850130924179089523238945575487383602595415600350370166827647957719743339940311051037199768665882088474740253732273018591779157521016706815515046061754708271666039301003464304022275995454359732096076980685506196676086433036872949180661287392783016931420217706965757296229036642186382841863817317899315108443072993070024549565833064086557746304576027482926148917468203082040932083995910512492151913641850056402613303634108832043723059981759775712410406694106111189895119209561476959166196156111650848512971218441536381115020446080905691854607733296652038195880966696374116545715218411422086201220238589504321226385237909546366932877903478305142792948316196061178330776464909921743790526024413775771971593398605457494475523852809422693323576424002923975611900120450159621871102605761134277527957199791953900009494933875660786019131641448100611126478272169185994151109555027980993267759084983962903450809487301310176515324897730793299813870170641082695918329832354071679786167482372849414192807498138664227315127899643547003586147320568852937250646292251768605708794698440409571777185967913517605259952507437697226122886911969867378064346421305424014241109515218502286169862756203194145978629865436989468554637490292452681792347941405403826120890524394257887623330586164312654007994369297139405763679181568450274718969908315633129433026620496705678760861543860135913504764371977801532407460267210522837689213903772994490520505381288102888538929744517425119671695700528690911484434693549291864382577245872599513401957373437954764910754175059368862896425259492303663198169550883626110270159506078836084818719459408015105059157917058942257787002760368303633661920977722519214239070025182184015447054245202150263756487544247105759478949796638664793555953103529169430149372503874809053139561664517685044739582229964613226718384292537808755689432483057220802902861845946224950355607927147272707206863139058924694652176179951180388498974722039586307883560311857337596244245306378918840494690793086866277160845570370228386137293638292324732328017379070960596692975461021032602842279260468233015899312063863666470368545266028173378870609817279769357325510605903614099708383293459402817780909366900428982182016706816441167730046176992201220019204481174663322888116313446516882219126153273221981518916944084777527386299946907599841606725770792857569746108551308157383700901732088650510814747858129120226652862673020784593192240955272837777260399986318233472453548270616875722214259094144929233877576151239874547161586299361626438128857685280024763475379679740868478667949173014054003245438005666477297711455040151690419105973127734438350744454397575739679061078638604349974208983116827232011727204820203138585460073404230899743275102438044371445334572262044688010764370891299091986531085227126029826422406811038029820742648305153209196500956452642898859947618124508758231226597945105461032823369927251546958041362425937149296456922071859001357710012443745641153818715799183041106095231966724414242672722589964499845150704172654743760306752862761587312289928335485205663033871147135274328081667945083701882171580677190591614967281326611671329131244245359359186628155112279010878917623432956355045808341793173952862808978655770659147701093770275916626756361618418621983318366887661481653639599485856519349193164991290530249049978766074342340617377084313317696229710370956724922294118357423602012944782071566081971231438440118628333203208313132404804841495941741895374618692673893838158979348086310189253371325236259964921164490920696358057064094068935113827408518918526797695852698165569836222295254081125831669972667497484985236313555247818221405624084749710684351781261493677307053272914044379632041356218485132250575741873909132125855053648442882886514693238415388897743370441071079759255020657635379052793054210415041058205976239766200799142301277895801768185934261404487678916467560061938380048472587821555606600107701989275094208878011867558651136059417370587836625905888374606763738178383968890287598768038501711438529542404259144636121487328870404223312860516432131849190819581416089532780806480262153212995221985397321184305730797306044547766992760787574231773167196800271969150692436594927654944208619466507605046005486249725544587603232309347145040956344331941231113399765562291073339660239559222120622643389455015337286109817258506496744539473736720191762625244998322397590482762669519092256986560521646173847963703796549195936437657311582272712269427743643897755413195271910239562816176997194848701769993989146909438915167266991757515480342720453235592979517765647879547300569207892268259203221965824216042252640275981684297037961626335119453153530659977436733510619279831689554063412798492659671035049753714884093291719650722792519259988525367658896247305420814734769155283171684077967784489737980085080474697678848825982348030765507001870876246715396506606326572137038804146330893017669823143591527615972764255011922451572882431849950633730261198823071112043225583544971982141481831266893072426719108810069141916863084933827262082190086530761591875048747742067709223079562108442395878537460449614223703224028129698945548986192148065310538555558973075874555621843331774790166956006211006068994940402530476739270001730745513577225524346863557360533890063861630028330078385435434126019192213045527303130523503480933936121465369012304474894674430716972758687517235696290725395828604344700680956674548402518555757758707918407476305285160547177810666991691626894214123206461040640726915250829907461678881330567845224435150858623354865158833353657790882169680851039399159782729020404591400171657127426032161945344598991304143713176590013603130682201907201994079153526564849895653543005097441783359189477474213623324585105699512170238358671462572957279621756932658151680740845937673594416200053895053904852468861594855068443951493100186674276716361797826500770049605747734558334408581377734726700995986940648064855732858623069603450491073528138917774578724026381661119213796583109632698170436051878913405426587530503964369379205473606699758283002800888164599538851654245091519030540041964306335780332467033892134592060312309583952780716368290118711694573948376156045149992861198736022786704522485525481738709289916246523527426627836680556267449202162865613765150306521413175525789677677913547293498156179045266762385010237800093493225022194516169348369572734162839354530842966598695482893168699146393711204703777851864396504046105903318633278304762526198154571271062380066135816921031018227280453957675732911633886390015324766598244008191743464084015129433743518068064034711405172000463750976249777355334678424675237172685353308061077613014961291659121549235244858751292359415583572289757333643032472622426560047635616250702279891279828578717947422269199104312623615610814403792174765815016425746939943069522094838010610507203164069042664082503468274108236562271519360230278848040439670499900180595707125949849719140264178316640607915541696099222707527782672302420488322180476637214404511260595276886786974325219603503548179802181464180424045637363094055382838207624317331741117606665146527471519606067828469039962878188376776252671353701664517994447637756823026398440502949473458622858739653344238686720436885113049822195461410459506740176115650287216678478231584284191467121536114598234752622385334732138814705847683204284703147876027403566144296418662189196015530240719082994454732557578808083656923270176512792494955032997391734331751466856161255138729214079392840518185682572825450396341397008701466804037144625268590209095814694687493648185803460242316629896559000027864342948263276889812698245618042893913107571147679351005239872618444008523031228474312312478818250516831462470292482045030078117819373744232659888171562095014032692024512245575856648723373890435757348739091622102840608040443600956745512819037106235210165053997761303794257169882711194767621200438645159309650096858661743665865280805495940104677125511449549591192784167313514607242568951807159603512588506881185435930227016126832843512292514174769764197774378687368251681107389489211368050647925342880658945089645105371054340880917158025107577190961829248602098901458734984510769126432803463265508514263074362670201838080535951428784067181688291114450860256414817326454038672917465003132476798690553411312132067757206853855250695539994336865910506791913516022087983529152927509968069051093146047017506031331738694321836353172034408866711221324182470551806437696067333957194664104253270185578634886879003932423894395689422365790353960588922893243892375430359241694618851594862279797375588978961020754887690553460164861751283273433757894052218996874656196295489254774995164712877076129858098708372701109583559336911120458775993627869900101998544816763911028031420686361099891396136457673426500664862123375759777154067303249974189524057271785344162596296293628954760135496074021220049559160391892945044705087973721316903370433254156953525767399760276740876408052426813021767188387926413606278960963847662226952480328702692296896243135098137017099938040870214661271513131349650905830264620896872865086536523334095628848218281175182340003316197101572299877321015368434683866480355723662674132957057848241246755080707800549172014117964054507958667019214254133113210495710802084736116526552213171672780386655643322205780719810971974794913215034109134677151227226737760708865630916772486085159241035550376390649706516028802504957621256020302266612653075616954651038177918593297509653682075874268724767419779563772760436170840996827020251925545086525312560570599089968186984621683293048901232817548071670682250778042201433766093886564531956244601161949300660462630247800539709794254191570214819021235872792126172269895134709688769649449409459371925363855278415550254967825980873815367888258077776649746973992378006261670139257619359982220515752630445095121627503990889050794559312574966322152567670267784796899373862748590857316233509444093907295158215076774611410595073789097992828540542919639060642370939608315188863097960697648671599158891723311682825066675679898693569974959506526088748447745181249287963561486739598949847160836087117855601544901714536298806080018992006287454062115703026683886887490101100257750442573029793816289404965893173612122865193639955326130624255117530283724599070801261763225039233657703644066840410553467215056658432734380403474300433184574933031139261803198523446331122834666068421155146378153086572497163994931948348212268531527572114033831433589422807527241757274673702399395843226530288776612062690774557764966355963211105925004247852013008955048167289979627661377905538630555848948413969982360054694018967926621475723973271829685109258942228511692865867433210668071857743943360683085595454330516691467559741899734137358232353938060620257824980974873366460529192645854456214489203169946857810315603188984328407921460470521949896111734264380350388948829249598693082651565414557413824953774890290189399152976847715732931452881784617083522732150985046258972764679124803754680654027832350560374213835734271578334515196941897022703540340658723805966588569756901259489514489951180140115900387206943885997927920856294649406061067565302016849766262712230201996464505903835105575482967747832428716577546532819041818849482663502854320417678499607750619718648829642839954879595153831409381328686888535435620603904575798487627147992669688269728751803879899186275183278866218088561185573670906326193210791160891650172127744854520319249384747692819164985170231278798099088118509314233740806535369783563819455598996108011506905438638087874712159333170370841463711457502394770567007607216838168766718691339049533744203061703921892913120590587837949781259592119813079258630526836972363675724525883202208941627115084801533139340296556870642621212188662418708150992344083883499934564863957921324451583425832466614041429218579698286843359705178369959418570572737002986061561736185417991545811362350637819615450370951404174303215687074696255035313528381304714434622439366793873863933897018082285313981308371078451800214843774464899949623582006546993988433679393586092243193031501687094938146609182804250499697813467465310511253933903110059285284715154331516229598364766654166644906844873841085949955858634201766211937005740473376021618166867756448830038880650100460412832364720995360789501245878039910564697864866360099007412846457240805184153340441867759399680430970857420261058716364029428672049165491429944701927172464143621453876116735650701970058115325708821404063655606543474025721430475614578385148304899591534796074694557070408112689020599793632860913912495861646846907147992136733507193231526791651462832151149766486489050992838305318743861002919568088992051013297095057731391874724499656022907099280599937385782807790057235378625289577704241191686022311130709048936169176125011277576092639424846296523134983797214506780290216699351271034456847758534306499517127129671525381850959433996088589160075818331160565563477038628878419830644114055573807253657587696806691078832949344512121814015333555069443221920225803627542978969020200716027830120124116649486972222497633243290552062944840813314131000875610664731076992127759924915217477808156523665526968469803118466826410409808948382978314404092990043553484181555359542454086133478774404767823082033305859971469055898839701836339837011851099884299545317139613117497188144238915249911414678098450005241842650005520307088819602155353524933404411179355599737751369030114595679954974436877986988567637256319576404545404905451249016028090036116328882264125429285601647238364103667833494991624291352200901749537192083437316812486050258126013803612042596904822279502483486803106377120442873485025076840957266548490910201854208496136109277501300752389191025774539413410461220450896829969173266990520032564197192838992050131781724043500372488346161042615485807098889546458060325998923659522320467594656421145582011159628609093404871799854264922014587778984943767951527045255567999519159898683947790773403912988099413399490722193516931190785834863420602987943076282165059000787940039879149636279095982784302784657885198733701652420229390054278429649978004388300636213313316452292440833150176589000716494275545604939032388246316553644513459437282018499686719019206300217197224421834302667539351337220610227522636732392063265683414103855350754159901185103277051447986033182856513240277303301136745000573844431089521771452258558924631279476046451644754651301997546531069083610184161587825025025449494907541775706710304074128152796432148129492992494679858100302856978055775449280753674745673728576742436480255582409136625494755513882530995067783650081511737117964701811526651520350946400567061573860430663207131594567167275251593861617105973990740593003426600052779355129069870365894299825145323695007147149023976022301179028209925479893539785444714452099251458813395641082117669396970481594781582178057960449713732863449905594650198844237051608139503176262193367289196197433637453552371926827860488496965576762445531052225970334659260244510845588030241941539611689930612969654823421451221375635296128879683929681587240123259997067741087947587392980558724668334418601037665830873700098696750056897111909622368362174929131676468320955915650528689468890179156403400421736539918818596480213891854689856335258164689977909721709388884113471540846654609236209811687458218185873551179983143393901000841507068443787764740239339190472646535575362125592632434783426985535873618345933352672083628884039610316959982181877719823703669221962959080986556054242348920589540214666410788910790226935506194555985638358763847134542054426649847041895580554349653851385063481187282729204575632853826225574038496757207644869832011192767560200714000794065608153426998020289928198895905325897069829597814694135082513724055490130878488458084566593489049413886998330513742443073624161164146105346673454233664016411635906805574169019369642138487838838677051269533769122830123486492420669194201022161578091621665805840884232758196485172686428286615821788913120534297990877391896883940539094115046711181064012271645737136968678834310819620259961536822115315621251363648779609629631855817760792803732996554391180027795527822833675828074458965409741639420309086614538410043423168508531093927314297475192756607263881531018547899406472472680090273308940261254050981739354870843721660241337313775576933405625187583537207100742705337191442357390341615365176982705739900821859208067509653245490919519915592470920442025950689683102243559739226699847048641139753612950728868275814261950614911717663133075956009351257476502967579224941006056919281082013759588446692617904386619813322789379473226253155110746122380094797866636734818197915405311949370329315077613102626704781187230891354094055604328232921902239445921091689943219025093451417536867680502095521706340512051841355407727908687554937012308365884708868340091672655367620456169838787133417196172964025690184122166399311972185877987295224516441197001154550940466520396182752775316980396234381694868491231728742999811827507549230625661129109723085557666133358347481874645238737366235273633687034537031306146522959415973854480053234639037131644248815108736536965668223550887785810929297774762041118024674322474043723242719508295741109012198421270018731249154787520519606870401421546539380757314998735897262060137886491746674076499272106035759072516323040232697218896772464272720150965135037457441184185830865113102811712066396576762798407745942353598644999150015535121615098621371612853545158382569420060776423743092124030549447388591528792719331127168170435537265670300779044528958951500672608569102467918294890282726659493869140695565110099267788018801588933250836052903786658809775830423033514226361811315742547161762333535174903932204210301754465604459199268473355891046087884255094960659959903897953870963246636899563115259005388874563252687172792293067364429296607823189765679922633057110075525772485183812291252107639923884711955195748259190222125134402477187945276501790415747067591725975800738022995905657611547739925912386899217968641325110240377167954479564901682825933799295092721614482389626347712149575551524365875907866669764855930698604611918365126351941397164444950456127555056264164459354444131840284757320164591161978296723857592571864926234596383001304330147648563980181085162452378673547824497357845640939315617456667980596522744422596846148747798587381771819380791016383558190476741228343515387944762570704666750742055831589387614491327783739317847484847190995157895482488353838840302625015047737881827892668178472024886012039162057452991207028195154272497042141944584083304590234263429412881313935658697291704762905380930782959443956446000407390293194856647647893264254159755408772134670520662850935643146208148344315513907482931499741218698407086311194985095367681072632230185796768144165952133216894244607094109705110016096922374023477779841690282214006322783959941434867561661731965979467108025788630331648484843308032751514960809700970244389265629111980474269754454483870473875678987543520570521903946106002729672635361447074093283296421358082432460365895803798378437508601895105376940880242914857956005944339976402191577742831588926685700522850751804892015858213795659680174105211308807411060082384463666100549606044468886174789407801136861401222053206921318095008290812575679575282400926662517144018837531741224111952004731975994391414495998210982492562858694927670535959926161027279906520103466550530414394143466772980517377745917196465612582700017356878901175055081088865304571667190999527528196769116778728456003357375286816341883491809862127302899219983077603696759649839554081313985131784494039233118598110936853202337752623688176461283506217257210229074792025531396155125360654542876766777164495482128965379681242254967138938580447830427514403923875878237481310189602596956250061908177393240675154157616456134977957282646678165459354141706993562496182399847953339617872664625249175048529402220507607729804506090500742599088072146695255675382208641180621574755269306161665552344621033417897644235316583208904292539377580388216835445539898917990884894918704248556043076388174114386963944205448535122726018301199887322720885203355998989940941648629603002375824779678511331752953439559232017867325234965702536883016747525510446488744225651605590715112783739346133772380217718865814383962227780520792786263837460024228811092151117088364818914907670985635701624147507934058343362576500215318364960837817569580003672439354624640598677680827038724084462387784057985741570659764238619945856646635366146025099959982270632617925029569489466804235929466096867427030221674457046978373538460743034513106397278414768087206803030325052627154957056861151904437988354059478641274223109081764411922267460117313481921682030475825853399824605124108449371271849704506990348475101464946440025802259979503140656219705890494865940126907115485654375632081867393228105940722971652607566226526131505266615058550017630008923919973832426233001892789417084870659824419545046995574040571111248894449546253098315156460116904856126773535725698608217465984839459712828846834299532939223045438290844410680348285792525617287421334660833445124275679290924313489962951692414372148622179720440912400523891186502447677091253831318238569809600299843105477143782987157240180764068281424143761143887625898788776017112515643768700924932924851923832620549293945693230757516925227338100600026320807769704698993080889148247076268413709971987543824784220069414558671269529458569503809300427153886412488152281793439715415950380352827498354580097366850819462276200352982726446106301985807008529598001192241522228615686939418132935035741125327394184087387503897343864600354372042170029214603792082575967097383874339195831388253763825652171476228062508238536044606948693249995888744422771405451544318342252150134841774760701190063458973619983359047386444244451141044819787520244050672636906980836360778539930669475946058071134526968857067372896451375703233393240735958118310925580056960245247691112924984656870014382781443059369603486626316329787989562671121580108391924145901893373936659867790801824905818637173735915908654620142909370126427813591851566285387531161817343487613271382584714309025385229748511789694966511932937082435493897340938879679704108169529711451147522224086637025496478540645505010271084710597930260221918956222551379514821617918364556206943798009906759143968935379419002152336494551763711672338985200212088652456853702449938703606197196039742353084426434974621656533358456644053817087576471454966032769205845863757777660799852390889106359062178631338877662497427611159069583429244350377585808214728917873369429410490538258224034587976422283177362371876853062386204590246109799464142186448438487109274049559715024500925150061907968880337973939684228990749857902767275533017063378777881602275077667915266457343973056795022456949517611552580530317752475728933933029132592086326055547947037491717085995058574817943145208895615324428032135444250005825410324307877323843303414970948958653089836254850736368196446681584093330612060748031260073707152386802098271246489350757973302138286452265525142782394176281079169803005719954847370252751623814113702091964383860108036300783167551871275331110576632843775104156789465114429097364430646204511800799478181157877274498494754762043768399600982593639794888974717348690175253629767950166881357653027345476359279168108807359168704329988551547975777384339279656539354397212613003935353137849018644856743598257474270193154870529805294495797357630680159228689232425739499908137610067173638637438431365734846990218382776378339485176970227153868136093453301758440241190542463832676563654553922612818896463795186356294372203109952873281676018052168247540668062036492237675642573759721127510468005006594279139398274555330996674025849714742409825063773090583926990984734018660296156030001534825786589257592485824093009289573811758409579560935299302053446650774119500599111228236771406270615447282503136249484471254610381257423726365098261249157087420708061609822870573364232481647525907746665176468539783044179629174321182272636706434858299275070929870731796026789904368563117151426269084137579117495731951493369688918955004548675955461065669027650343632246369919838623055739254006494683295048765688433355988028507817691689389236706958188683751901499460949873931588563176671675218027633670212665484946703479289573616410295051879926562014255896139765007330135033399176649372438966942455405359888710764327450903509364493537089816976233733381253109506954194588849420772837754102745158683668702773424227077706309176967093850902844378364915394598971063821657054279751982140688110517428968451040911460955735120902781673300339447797492314885620660951393019487184778396443843431108983587776327906779358750995226491757077471332130509172843092852700691956031799721800393768678732171850420764310903505788924599262814484837736698145299125370808019996674740842681384167573698800801481018229117489839074555004172006470957942409479201567296503687537694551707508955667481868846701015864872255928420313376944596865632203549966100900629924884580740479461900134880069258479037175129491131895550810448701533895563156118508658022360297263780202015823887105505704896902602620739172451380598422488609852308602422332158912673215484168735208181650124219189887068406564874402815146820234595186615059795931972475425722895995196940843473485991341157252919286683836310547655980159290638797178750648208467175962728663110362407388716313463982697226157372110713791795857038907476682007988878541681989628930600735366274886137619122368450933993803226624559508331093134729623954747681589968376254310173129592451955994301906313652851040451926064344324039750226543137000134976113688642074016558771095701523441669753086714137436893024865080303777115336121979391234484645213059247226956937305906828091893212031281685653029391205712798303341090450173511779499267643305146645806340757540236685304486436937699347170721578632761598935252354116029454328981131117563583736872564005983269000172822175212822699212362134715199118043135108230350674668207907932999421456724494915292108323440014984463889412118714681995499531087589064836017066306934251404239855108384133323729981338482878624295777509573663451042174586109631508625918688582767986754343650789838844899744356899124958106600805984102166291064369489961343199914202094387665757085899328887202561072986893644146395100034724987684561781188173992358799316551196950307367228292660550070227271265907469889414323108839744789265356096649821212970802240654177895632402251076728042285444535671139808890588030960553181938347333664905189771869976515446517761821868814553514495267979836352478150963451349920269513727231116140199585093853958874460077171196594570385147890027517895304891833501589105990276203216109114126935982972193807582158104234302986321011498355436358242403314922402171680057114511279837357139428896697491375441664649561214237764096071476034240022339595997480086667707194031056005484575654656301965469071854864536680855395044036002733452155017587583293189590860918520241623509917513543883030376716045527451131384771224474155512542314810435292108346995522080781572246986840455344553250672691294611772217813263611499936329034138943417223682939359674386182656517629813360085899948205052346724553783473158808087250757917657650027610541252396039804806408865148601760767287880393634879057707536463593590736336428770486338096331428600644366568825280292512749646431589673003882609985199343515155871518854184902189405023707388446534461293385972817242551059527357725214709287957528640882805542368483516254644842621681339786865871041209869475465611064661464027150869058355183004994241611074873882191387240463546698134642531497139842543201546864687643543372744730323786350495805686806337631401321181752114463447950338963569670362962829743884438141412254808598247927493238831351529602119782372573329668133323874572374504142119020102333529047227228328805910031544772387780780204563470806251402397084627549043049232810853794253997243204514129489050772341539492106201802377690181271537559569567862790933971408457208218142009325008031091995376616217474566731340888074285176951907285253323836622068402149885635222037686863337786098605282927957781759809884387492860639737823207967854654934520362864178767386708955929565653167200972117055910858381251676061136610927974253043621180034633740776132917474134678315183115048093531550933593253832234047535420430338323668004562904282048427977120128848616124597017541768676709533884232168379297361414666262816427381798606563875373153652818116557086579704435620360109421372596878719095281453576296024589596999489868271985498933148638148894954207977713388549260438836647596109250596978632990179929120497701087101573392788321202836667252358475256947095025750815443844508145276355728713376011665034593067475431909301615776570010923608734472099845931121161504706252975760585913070651346391656700096454351339491572371818549306102607606074473420284320352442241009231704562705982126533989101331306003140540440080436381710199192146864273341899992425309812535783946241209123466839681491859826404918810870856989237511174850006277535387031772461585663463182654549905260286554229804128085083956614159504546168689708043145151707545379782534109801888444027378650809489002198426994162965634605654072606489953843244872760058319443861783224293609909262621317708099269518056932201838048903349774886995229910744304224602899485428081466523475259383454758926375707471749445600673570800225515018309478358421107668996595912162224290791071233354197789855280006330323811538284781532421084140648524224540805769964479595945283114106945315666473545485704125438523055146987552616436210896576704934071664728430334884697676442984385370009535623712888342214694250546790122043129666074345263769244744936581148843540953086412853243898827686842895963830819793367534094642489167437307894839279846242202198055492861784533669507962712741472994481515596866487603518410976227821737063116841323772742864998256591824860030010436106979225058670842490134777602524004329158619383970931431159172560579102311779844543188973198342202750608288130332984839982025358770102964454771490058963872241516966356240189101997976696730382308831576647843005977884709721249828865013608984252392987867574919737751554796064266336292006180606461415146151850385168215731320869790858989352910657769428032000371175560529203814478358755140573875037811743396727532732429072109102856453873827225050171448047641247280592802085225739956671545436275259474648078059805585545132208672822961090411479382957752217780741122146247460079162347512904856969135751510923126774275155533928775900683867298712172105014675338406155810547579707595269332444514667953450320739984501266140145460396415094490908035921620101074885538878887932127630644491009709483053992275345355366784495753358715644749567138984505317538808335042873239715309117402382873323940268401555972169241918030431081353240185264188505937682852921053177786712962975960164971132255212743512434030280785023327832013559445609810802639400883981279533664903020982754890904565959970508007924458591351439130944457864229146201490898615020264200241369067828755059996029683342914180353090321256856396640991169261606819060192997990857014206311732478924327725223100204853810102310075088138310569060460774059402008974671986812397799992732222328755293287038357968394803613525176400785403790945750736720902120698211395823734814709308508156432420264314064198009507755982990402983998823703513466465046061311497550363299911992151498699128430070523970824105900952806292035600416603047483792755231371340114698874706551501994364954401063240881427915604775827767912934674071354949014949681228671279377170562693794128028928689072692628601957340756500153314816161516383391264436259803469726300071383399411304717141645456744242686050850010136503245052863288329993111224242926769492021458583377998623231852538580062853634594918100965966985806876351365083549469283568103122118192878839924311994030005606660289406724163172000153202207806508309751027648785243077633313105040360755701141418905539799064992643171655066867304678530008295019995507323677938726838055982295973940912689594668717722833962383621176478168448710698657907262862749244664489032430358240944059506330434802393066927249633685221500166571582518027484082616405474210166407066707705277104367119493748016726339300260463157753520931888804643898536497053013844312090927814813777047036368529167018762348675593508096370312209357969911665543275938828140846427976145852404534460558159127403336819202953629648208731007987361166233706824468138129532480669057368326363039767197162614241718162503261656403848570367892490981823977532712190650816240042034094995423470885481942097843045669149981345821575174307719993810193379933025171687487248128937305665333862867181977031803374911907053222620632512034856115150048116298742569125804653440750262059307422243341700383190094259822790294545446372518369904607311865168447380320135515664122982075125529635136937836175085075273091810962637609202430224637464814456733864841717810711071453553475752014238688738955210727404883479861369705054195547074305099969465638958509646096408918306479069382742890029721410996526297667768364110981695909669867133502008197601505471264728831922072797693369716137428937702734200251104337447392523029261692063668803373281126789732916770977608922855650413992730967253985521385262616643614260161947771279270774421036720371406437153161487830461232373153684435448056002678909045677774372777543680501698675918063844850769435533494878362078539946756946333904715727852082589553980711687174672705639013338489969046320219296029038307032884928063297070615600027712604713478378488341566721614451814735428984688672683817250408530103294384736432673435166129141009726469341734194513163882324765894824130783630900149071510310223360056110138278122889300289172656110553563079437765656393334033100733271393078144578348708690106689507598620179722648226019855440801632514346006530206835524688572404322908220234393308508992158048072641351825234872445724834823794844675329982561936115866448440329595759840472198841492773143236708528872271779761071943451388582322889253948018390475866316156666934090674080870767152468973801553265794426514839522810238860428287650401418263379396620459708390446384785167655191297961583971172857607637809783568206927464657448465891451043909178862261572880138758413147227619125091668143886728299940898312726737881788241512895717047168502994360410480022701976161521064747041720535850386098267590948689742532252405829099902820716119573569344218476144765117046244824163018768649156485740944021316527251518312384184017813926825988942216016545792735072175297916469991340719432712066139228495251908478579589486061700335542072640192573896479396108332207166710540420414355107338493967847556703481315817324117040413100291109649517443885775250483069889442491432279445858243079205164089102390121870235174299463407842550646853964254033018374499136080784402439285490061114327284291410497508070221363467943527622464764734199710479512851538398227809249718227713921086065572107357462827499832088216327874690838157890198048860552993778253216186948647098256294229540552501465858635220841551053814018277791328891380717563937702794748644775433081946893303516457323192520307483520861275982631089961687229237576167247460759213797995656923006968614149881528518376830459841228724438938690784400941217329943567467882819247718366797006642473827080026434014239572573097067167281064938695373003461818512742829089486009482400384013664546056900990121029561643917790804360318002573905705912335420576796982328649858456733851993386200516538935188328856395765076413878060827188232111499496136563719381488717364892459498820227080483974930870151785606634576320531994454372423256347426187503192913139621965051335643585905607328595646532007258292714594632033541989557406326992771224149859112013187081806378393230943093737660419319070903125153372557049865336459534067212033635688027533463507094712757478717745701236015748482732387996819941034175224664924968020705808698792336185020282739669855934877384732519579648968911950813512987090993756181950603571834939802798906717648856172898446643743907224035023388722676665963751749330256310452204653303776728841048123336579396834930163855150526767488004610398535006710793186392846648387309374713539594181716139490369048225621184677856357953669509393597319122913826735114158575220750636669700447165827108222161832742131186788989755511777570039898090932473858628933224680163685847022514035939191003086512958035984901447205723720454305667811378096206187473772459111483686120621004024943245452710276745205747468709196553743004074669363505796728316876336969298259760210253759323655309311065673112055597868845442376777930632460469072172963145234674193096083450789671528254474549759887971650772402948806525414550124475686019362289810155299129891403353541861644464564522046113820389973552347209099346465673874217020216440893682642839873070819683704880674378031534876752215981048975501837818633651742613707876290063033634487045876525351883288153237273507745578556457360007765834928285867151576333006908738972413683257170315572941275293676160912786358737407282986114907587445794301694233045821123724507482713777934810400522321274062362714135317689540549626885867752183170359337256076234568948975266511274062648117926755442076666247761035891512095618345478159170550627478350801331116896075543314975849613208811132841163309749978699369295585627345236165476031876438552301227493887211808765037203615833011666974240448690666141097596376470430075776964496042392874407039119243531168488000317438191019684127873739838272765091206033830140642209921905843277788318685015141381062396827113926414665573570425054890757559337254932713711881061865900801685025573068635345381390831180944966101898704801770447427677874330040300783158992534910035896828128937974229317408167239449030608479786292024767752318250772196814050305447699480218946051469748437563518081826796065445258903052959282306421057154012060113835282434913873857010562367629631483967960887213991469541925194011828913792848093290154699815535587874449555172450274597573138832298320592189897554712189870033162902629271870997577251230845951047310720228414928375510152743151057630696227718002618330297634892298219368094545597711881377507057466890833383455171138276367022152457820393677534220017750971341017399560590217196600859033222309666145092354676244887614562291627691710415483917560433271173398469204231294765321807050767466467753475851683065219960126182839003148105588647365161954460221890185476664382583230826665154685291946072031163080039919651776218234968680307333947897147049349933148144974485952835509511396214074891821814580598327104304009170991840073617242746956319864948068694954882353076183497714991942431919313144815017506129298304763929142878746420276006135836324980138574427895611654949183721483092402595249938170599325356041702844511723125650779735432461017634250314361810251196886739131857613855893168614504588523408375931030098299390555379802687909631444131667102393106845796890530260488260988633453417796911416368774601222380092513716679670295987258823253924230935841302499368866822137588132794576182408645791860240122644545876128138969469516737326169773336219873676915191669741723030620742127837334875559400669064500338797682228466587465659549563148333872861673000223472849712896311065978175599804931336046250828878992024390052765482857660380764354097764052162410992599684566610526875291068382374111263303599271256071290930709948397508360962269519948303291260182053815295337224572878963331779443671098152373319665749456855093392780210120448322523891540486307454051313211093769278748454876324116052442826459900725800760266644812681657263998370235099902745210175673523472221084713567391656927006755953540793719670919394173441323387727448009352513902117283146409839473399774742877092573691072797475629167627877875665846001095168807911689726323351034353895858091401380402560227510443628358232844441913508352487020676421419241391759401106158150665096137202374214332952599951188541903089064433124957498203852735938329713080894311901738515144891013151010803263645120784585034184293787545075489036435370050173474597849887808388512304763748381301556959130668725767392420730523588113535786891285920646445306524682276965121760220314410691404188599841793973238645935528574615808547009283127919934938778646776882417912895384812147455138662317268368072774317540239448646101160837857706005769067229574388702865221394003231934667009955525192470258751185317373440163722855365228608315869772672899602689647535545660443946954537926581401693882664169045908320641123678906558406931251881534650646326815611743299353195807349933352583546495075715086862638910237172288605178197499748843888920827205030255549373518669348177390557200923752184570853417936804333415798437680844855563389110700148615822624086446183545628751410731971559879139532307533796862660831778861917447343990260149784393412244522007913459191529859540254575923224901607554267120277075426130468116023079403276325159024045787805600644281823705722252948555345925397132621110925334439050372688395266908918981558188410758854037913611815138641604133269171470992169150942557568952093534130231950497190513611794904387253011651638593251751940776316269809359498439775523132763062257729464014902238426379802584439025093808054362741594097471110883413588181815442840270142297813585367633734553340955335715740731944714325955480202245084414867536201677595038727386402489529352244302531655206342631437464827190016990208280908371860770176149654614151725141737424007252928150643963718064842479223098864090192269897515276956369473284111006099080377418580601131035770489632517794362260907472534664092373033021663624765284177259944682499911219749677174533649287559047420755968094757672391051365700875617086673325923167549235940595623535262174465832618354384614539438394865397710987184892321883094103393611737409197080906036404831398439960794554531997625304633664785615730069458244498594901838708425623050236596068748797369142066011523586508215110752983677310046035680478400286952004151184636825410799761281308996488332044376467210904270669193222558242742966232309490344961922518180294589856417918825088121453212542437713726667549905142144590107603899309329062753029643414514252670362630336627176924339365867829914716462936833983075182333096615737029035982312052991815576238235266353289930865652261241806881405150492447217418281655034663635476410375334047283890314960743244198942448899049600480912178950293031797660526177378065746474441696870462080280241546706120706458153522206877790489488822940900130767377111253466669939099693255160280769133768334677531707115459286303934451230085725323333633208384522496815081724396581512141026669107391898061042018948191686965063717290403448216227397665570624481137728300643316141208025187100219633875892316373696564884277290225377799342810248229864766645946365296916630997963503854988030490896725363367831650585406005469814247965807070699821404168800547556475678355523115378650020930063727345213786557098416706207826124491608709328998606219046471683948605447553262812435216827277135140605620145174236202784216112598682222499136131740755258628427859975671956707274911707028693769371088156759944175900780676806420835981911752458206193141755441200189370659615068718753917100414904664990664855706925958032733232588209527159737777595698069892087776000158911731391120251810472051284338032305132377068110080449690352006899466259651186296752672980013914193233249234032409000732822585280729919351819415844026530660425147238098791161880929018322692573244919468396688859106871344061501032581121976006578239554459907980243640649167069562300185891842803337026986443443189278905449681616567881970081442336718236405180085039923066358624050109282911802704225009305869951654425417561274901931954968824048076505277606717705726621729305585218700288445963315341901715335331126680040409475520528029055038789290087021242407431693939445924289744362016874020384810636943610671310927241297848976494348412880711501022339305436512371096961529293365718994542063983293488120767178579912882677243055702016819988917348531867451799533366948031280665315339748368700658110863660524934551289452198342601503117561782985737379630672514559353059224087244053416278260660817877497644571976606220060991835194032079518760193032129049730163008186275301523022768287618117428049358001980856542020668148161338013122943127610794427057113843534973657545393018327480493132038125995002549798609040578117920297250660879246957241249448735917251185516451160450817766373217294339339416807799671828405120569011160282234722520797923638006171199771764208417713882893757842329661391149577580338735627887759264085056053014278161755544487634325063487180400670492170929414755917926814766754689510403168312447699146857446333490435528380817993271604473513999477166114846577447728373577630681049972468105224179156905745324580898220832832257512363110730859652755491942391614001343552591187687291925083435034058908514779883682753778042186500910730699477561214251940768116812576512796828177568274145581865364004612215157750166545464653819110269036177197478009018016499753155271105461817919936334353227109123089388198697961103209670288849155042878390195822830939636742055991068966436230890759584862495903207361864605411658311502109137249054530554863108409488654686739122835681488804017262097139897233532084457860347715676661275382127243821161994364949831168324659874098869946726272646114029343557912961191366309204843946973439402769617138438215781880990218083365954058375158458887740900673906671903232134907590153325222931599478968408683411837942989050915544897627958092254828497968106786806420988443456394010640360688924918704705210124776069106842217317124568335775359051082119825262077303266603224050917316772209949186623266482112539061585839291660386452286387835625636738060944785627083544260387134820794942559757759329541254661063889555371628083365092221846376140740429377430052253651876140862208655127679810714440167357476920842738135394990221033163319921617480594964361657294209259150773656857138275938413622703811752862346535393267286670935820848135461871627458662322313804092565209176611195341236928628979163149942425850815861374857482401385439068638029970790204173577310459359761439653231391045866633434784851596267200186500355915613590851116075079149703208509038876306659983744953046911040136027344338794249190883527817471423106523438785031100218316183792288793305599292127409703687858660633216974574675903567841484224297985379440811704805129129196984523992015897462773149408747941813635087016547105481429054619082975561363086137967370419729840029289317933449045640842683886107241051353791215655684718720258411654194540968076240746753463378829157812755324197207594670554522407411264401944157305046277718439004712567401806357562034121975666336428910943345540664677331092328211724399860325779281781871524962178942166533063241441293195885498987624207391531112069515790721219619659428523312360123929886535177362467422690689632655216618914281741497095989904677894337013349143876381557713989951859717380464845632361446084383786637916146343037528561765884390475345103614515748087916335864649585704151935408796815294248390371268214518739667323055301934097351249497296037385639807019420567591752802695408334689615425375492351561368783802025142783019162661508114925015802925948848876818722975139900751760209392164816733098210374982686367608860299898803806813043591313937143173850931164972973482458590655787245917674630055594392573666823097879891435724586657635668814634058731133437416792299454773082158693749919689764787198190112983456119472205359797987446431329645044641690168463806335160237220286681252871170480277757825551842529488591399500266907450637766145999280758029013979019580426491905325351744398153079911349678870623338486636209132401933644308344437059614030926299667059132538102311663933808193797907002552331477084337883610191006469986124981995966957098925631456160305520987554788760792613119513744488656834334509066454303209318307980428401368263625151199726069781206629140684953788725686152452326809505368750540162052577833519601279552570899673156915778871511935174951171631157476616675960490684800212685740468206514420505955692761197805313282517705574804851817042191045145448689112062403690450767795518674868028201708988886336201389190974135654378745381824296132192429106622439828762596988263070202471254415692575975195451909778946278604893438750649727612978454755209926129230841886184979747855252885279577646495806728339727602913217667113330538351171418255648138070777359874477232732755878712700635742207336130507140317428444011990045585657314689670608186753649884605102055000938557919179823432974437348664259253105456529255042885694952930696791140143453254600293652522659842531130978915990680333238067206567614261635462970395548232879113061824945532526142747870905080940411185607454244147452480377367635897105404256171179559590906350685546888028935795612438207309930236657863852129257378365085000678031950949840172004302964795172800189245234928005064282286337803037780017602852265080538169809533228774460632532390260587375587932512183562908564720712893382235020580942754754477293334546366658301275574060351225025024768998338795161177850767690487893620613291764808230223282772185830434193634250880610132894008133506213845025881092931156260445006937180138821992652110315767147982839251987665919166104756632483266994009161981401095709090538497525564660710949129989879735779501758192403007751196485460400487437920480071159864668600669905063526210433913324886657068037346125826898557175431370917365392660646637707959379224131577613455915920191270067970793039290172937429583537212340210227106413533880336416587122400230745210741330193952738681557299770336202643913945435458993480951904782884315269664305445689833745044379556686606514799372431824156101450035331021176952199403855418457400333593908174028159303482254006022710108341956592861753018378220214144179781185244459665305737188175790695742021894169625250957290091415676094234061768094289924159194800749163994575995132315745900779950876925777731707512764187191948026233997204411244297388302596786859189610853558198594103201661755205317403584018727528511062181853640112230651475078535253706707828569711146988696914485966595079596202368976423006279756586448854540527464529503601778126730685238368301384335826723445886691820747088184225889415958474838025896589324153085461156652589093607397376567645661273788262086601882507455688258625285173778021891759897566006131017066429775813419360923877947830714186281946282730372612206613555893378567485835501767379211817746543154738379805753317335723560849566158270948107948385946552915215526936558050297457377597561702404262514424916467110863775361294323155366294114630665426053928476651561143263461701357451840278852029725793107562733601175270026589000702993167659501591660977653277076305519709342127516441469630278230931191950210039857836707110805178900687127588149543487625662992359640479567054512617912376234350438987989486446760257855432290891322202775459383844082582947277523550286548771656204309624073964052780691839402425024902018168654394917111646418534395425940626727649494137959054654576084944835873672008357821592699216685740211765725840038109290223854088672219876089683961993172585591251257430686330751411593360982889681262793997959487602867325382434885231233448747946043765762273609459012512132081153771307955450316280137084276542477449706043927154708343878297781572056417596103494872997060534884481538307905050794345083779735885595987807311201397425056943523747904072728444480449659409495941371166966028270697117579717401191627416301374925376306806841085737094623496350522953417588415391809244575554468171778057390219190443167592329275675349481993577680029806436659540014179454590508266459316313114702202615831664964048000954730834025949934167009893516932013968614634179221907856691698427703297214321894127806731299726928923235699054073078147432857321453309087093920228854609416487865911394392088415532850903324578266895562866321519806841332938101449000784480286172405608995138647117471915034378133179182127836121644684499457908948156102226931000036535366578296128569644297820432429752601047917961393090914095165498771480144217547901888135426781859514034873814308823394705294125911942718096628632921377947887091264753022590832795211131055105885305126717929117639899156415485529369042897357964595355483627257268277160081835029833576913638601979102854829421357759815743685314164638152265431449149279746027752700372407203042537786272633269245152245273260286619616495844795355527185392964275983949647162189230255841488780173294333109239945535366359514822174599880035375829007416757294205641647508355973442662874904188123700173948914670944586869256735482290768455461676022120538616797545701116902056556877546441818363033846348032491478509503286122003141005524147030800564031635309936625042191000002019645937545119615802068898349700144856078542296633862343182854807510732410487752080326773202920474145487979362051380562974728688054077470221603283388191864672603773077046529929747609528483033545039522693218614442207460097294595100559367760069473325605292071539037687251156955236438892667454288706233362566093259943065193836488992478712164579268365398938736326035953662323195983440410867363182739332696948525191594440074361440003024350614198122726852155769506782302749184676037176767965663805207851992296639512431589738190084404805651997061276283584191435220938554662462077880588855151409321677564009597949051956148391663728190899853965422801219858887349013553465125280601854019352281211693505571512550965790376799658500828409678408010029982897301473285362601257165555771455082682400500745934141859778314724744880819869798426960707798895934676216037982675478410528365708399597309023110498795540066686392837905131131237385594945183172600263399310039736363592524166805003796729882851624269246429266859162679940225918086073904936691483777427522806016837958419180346344386900108987034188433626079061771126731545110214453970764081282943403214665570908796100302257642114947211745326358149499792385839578355725491483051568023270107063033923357502481671693668934426229067146332882074026210573837292649039789192581307429898869773247489989252720640186238257707666675928553318659212968518745759746665251317507989555870594778115109792293812023226525316173152010613657724052927078314045142677756474427765235996747309168343787935948744922954702090821459089616628672781790884328936998549080272423685203029760122953304414442166938305361524031714411208701043001401691782032809145376634393727142082254268017407906780363143275495260837721689580641685507049944971134742737133337466692961983902445439333602572969566182256303542234904191739156872799404526703753520344724287712954235428401763649615750815744317761530433813472768942736377697995514490526155368210215544466829265222814520239544333670730039582714529920984841712978645067111105938281264521469863389713333477251556006775972345660718817454572464758806716495368015374573708643425328867876789762160705784280682773761464653128699502911595749016233959435644154096171270813395149236332376859555812650703862417935128190146287877048644121725666509475390317149345218277783826839182309641695615226091506632519250454333779044791199633071700250370806631301435721128274138748736524632378328144038554498303912089280250155490237591190411217779528018294954684700799580527073212661196171163412469123908499575056956596882023375828080444624509563661892525399323961143323591000754752966458953604350456579222904418155781354050507858318055925387663570875131413576164560931582016874785853472318020266529443445056666702669727658283186300570890042717910616667395020485038030727964980093624170514801103438401183349951894997015745697348409041241026547690194028402218148765176640586770221321846793650707482403299463152937203449505460066084792124257142993468059559995725874480709814340201823454131399008113855505855276092734087999086523382126640789074130339155527399015279086701580720178800310083423803168814566117223629854051002568598529890064979891555681580661594167068078323112542225002013683205130748578794754117780592508250821800190835132292411150231902231890815591966002932750761265435763438398604415516897050153811009009467648063002630633495260288400897417722329164132244989358620089277261156844450725126426622602420335516724041324386928592028295915495745895610554654148822100013947602052604359954417212943928608321268661148620095685600974209148780756137566784204442686622847266521544653087437097391207803377788782711427760284415599478100594483996423504519189045545517992166843624915437438069246918414919654463328161304066734431759540073706555617452855650434520225081325387300458307563002396754529582721236619542922923686988092954807367706032702377623601898958116594909316720452172866830904276252751384789931349705695945437223434771344025461816954713074965921800831916602141585637875257900104159695272915069364117590800285996088319940321538610850196378439884573680408081560070459994778335869418818440609380125117586061313169911528091537890912337024659479734493995766968737657484868421750300722333858732100096657001419602908131500740446800895149305474155044415009679266375762882344230539818020764928194534485224460666133458297054196184661223445293543346424558587792975288325279455165759871428574082569449691927130473919162464951281328778563134947775123863094706878024398098410676168312218511853431512592356062897307875906364929084193489470554463404436499315433196498405579145049470386651579997628704117099803498555943251656241404916840747548668636553323645540766697092727210038581100014056650041998927927017653643473859685096562468901930184953897347075527524426226450231741004381047099881846203784047751735535584948692734131767442683320369384403434034574191437402523832265849881535176749422884805965961756933656885117829814741830036299267759833330237259551346209503339218653627784585531113335632684994752309327621098889415188855884340199036237095278355033466695061153188997106179175592503505692828805744020850157723671227039322170007779269271005661961804611528900407857576299304967580628347568118639168413269294722945107457148719259521618135246293066474260631766987425847281846167432454213939085113953256803664580857498464058835212829018345431217577854276220968910743180053134011712230489564894496426449210025154752098926929952432773220665819798508426180006189980278230958474589358349333553142164734054444409304584751669376080779992336613355800702273941253615111270961397751260735781155529733189550381713719992032949131321856384440639588575632041806107080531014052634124007881319463540929267740511876158421657557853846698369384913106048333638395720480128807662226150214310402407955932341518645171654537293746434124561397420072576514397081925817426659021398932983378683370539609603333098325778437816679829971035590096210807820952155814317296257694141083096036471900495398919001355993553179119529075484397147434427591891725735738724009610153110079356576289050783793818986324727554842113938874990901582946325224181839328271545596634673093422736532012136404341405007140034373701899996623646063309163240281400869146619643611327293814538985888637371739352964202898705120651459028377028990258647733981904130481927135909704240716577880273403687663004400938341318969052578569250696774419268804836664597833701293362459607616162052657017910711055136444457150118308631101119394388723765535503085543058633133095825300141486537094655696890771032200741742360263254969444420081301886609243378099739834749569390514040582289638804811106382799656162188503060818752204342022205064065944542331866942635271073606082401816454228862134069589547376826114288266044493514193349696037228960073113597303674295564377135489478362619196842787338836162159909975212906819286666161926706254618407674224417063880801918203540569886707476387503573519064886951545877545377644345482809915360729730463742733574466134270367379064399151710204200161781696707421860381257499407028707319965387435016706378743097896450522331442649619165661224028133516906865591946304349878537040031144614257033847014299704392284563418619262207624753998455007924356716338215235580964271087185417937638033002339263718242248627553553845726585930023588549280115006596415091000121946848976192802042836790864301496848414119711267184341236542850921749995315694323750156420704931085813134139879643910802550302436459070139347872571902419718314606777594524119891042870757215776396949664825727391213016036990465966963317957061234893628385856250004932280059953181183345145476997882452449934937786835263106767241077429031424987854302133924818664225163385267674811025276240628318410802381506112633541985874187492168192948632286664379833782042493951755964627050127915349361539351052757251892592082161100314796263233509304163889119445276048457792978581314158673916821153287900806136279389328741430192555034266307986735232391046644837681410870002858243144173673550969443137474851881165700606497693452411730030522161084327640976628782195263082193710416653612961310349174782111463368534717974843370067572744170955625929251119724434272008086123921433199415911558254251652094255242297375942046738362248874081700075897642868428129988227437764575207706655003237427254827708569256456405507254736879011005048621595579187787182328433062608067418844372623937803334136979564653123041734540841849357921316515293329914210149685371355483341712977466875440407938635474214712255251137435407136388975896462218975175464488578569418843399295198393568761940303812881587943634284976011398012365440185948490319978852442639351808863422629115769774361462611458746854888356076855610031492198158791859695299819677554028846352109287044471248614636373234098001297829644229773632114257469259455215569545731188210802478866169646468884626868590874530032167638317621349776656507182260642207285484079930512685740955708967559654289189284278063368372857356051899962646959722549682626285094906558977617102176176111404409815804472236068179506666113790127614137775084462287177344144208688483480554127109047659752442661609596633786345180764114925222737487619850568318499984260595421653597386672100851705257099429687095174686706313455261478293343982029003795256387054675137165051611071770929529607508868524858266642771280222878402532534317335066308590433539566466338728638071882238848261491797593474348579065765358227118145114112050027770092148279551879782589991471756269286100896449175774252038307888539646524775568622718056351575059565384621100046266894271588577661033936794311780696175972619960902061177855098483537682928234197431171572996258391206986044165798347837533246060369842751500015446181429349550441478868194407564851115589878274000348401125295341304050047121282916036081492938756057501294948158755755187359744084077994157672409380606037551522066899879475422807694182835164654936927751317939578926762583414431106293586539961783238740242949185011823483100918102047747369726491572255867326448274595352401651944843855927867027944569794150213734706425603359489277287927441832439371803600407116336783217885196987400444920507007177604458293745631047633452823877765795036627703205716343999183382290428370419555452403260084356801506004398918828776814958997481711248110247872455725825855646716528590029805314197167647049757183397553730170443227214024479264253691795319006204037025386005667379948957404287232657817654593945333488149997993917721629624593300865050751920887946737950314725974948165587056748197557338992537022884484139858207824880180951170440319043528717475247970367501931276413408234565014007187455913063614477568422195975948111087725372164227920030672949944525919262337595627055623521174770157096356873895237320325848295270824875933430320206998536624349894147776024104412402381120855257168106005081485462997779351370235275279700184304420222436338930178779947042545019142558059584751894549835053406204398405187369817398822189296903340441023429671106314110709978968204931391314341371714709081502012814723366322640218632970457641977791491032645656538020108897938751390823340667096413910739135273166014703544540905610304315071672895442827361180998520691181029324366190468649454099310994291242540534745922208745236702886429743234728076631472914110467351302335391676067768249865774757219354942060365750808775906686682029155008351091007118046383800241620712559696570411052811903212746465397787052534861422796889908718997862156926950585499539102116813684715600565290145796221736350390403562963443954212366310079422995010226007773840416634312379264850395023549307665535806945392788383782872655821591660037433318497663089329212672480403979004012221827872723854409586463241512028939747776206990295286095068700126251378745294831403529912363727257219693322193013150355034568594091699442415614067294944115431509708845564850748798256759524417400897461625366265485941336247940406225057874344366685779453217736214727036489343549745245157753598796786942840081928229865328119874882107244292778645191515836224946618302521973232122326761198125921664839510395550647189429298955507199231188833094867624513082991553164141489361244025425688299578467133638403350019494777313679149536036583886619305654200016683465085397159234471393627272664866064868102520630599115574442710423826891683757229441847683452071101091161450561018774320073727530641726966119120691552192578078878604529654297687581248331187313829301669769783503000364438375050448819713424267705346561506027449532466448228389033754365460091038525050928168170757982943990059926978864605822591096570537687638215832964652882797054350378172529252139690334434560276283439355990031499820494725999158348676458679884391484658973665585915109094638591383711947293368421149410361263543331573266162549578892661332357570431835256314150457175542656644163035475774485585386236339013285927345114320149982992502059908806376298383780249720820252630828322108378939969441078472401757128458402266066217544388990299891143009231744011093392937126161078555765515907853352823908995080477216954174017479554949025875191077982721861782495696165632289062756145187172163267116182224229302541515519369392999035718570283061701793420582129259148047289260423748187572577715394815641766259284891847037074711372727175813015989751295577115849263117129333173325344956740552163327687378537863026075912999515389034427691224525942076455370811934318484730318984281080920101520975958657969368086855309422256917772571477839855301464843172319014539956835170396084274098666139306715080882750605252490116620299486761325276066678354382246088864417339753776763289258425277001821001784149323781731119346229353141924636954584829247368700336784521517926882053183881867301168957822695891900752584184426529978097355975462220082209841960950107717303647434180610376501594700303282473870968490248172004268347316877446990846173847782002808186952937899757230913030173044834053973174038785551545259956116207910058330421193415336621145001353150145407221349961132037321819147501794727286017979661997339883534954664067870989760817425344653293037028873529042337763006905733097803163582253183265102144816763880944490975490959558656162131393485115070621018959328955297882244146540934011095326579416980365388051367401830388382734950226852115276149519777815018279004913487563489524886357780654485791645272745158445302728720897024417993033464337385575747280932907672952585620898658400140936087565018287844264988146158083573235596437246165148483853522807381674285813549728911415707512059122164144607674225094807747311248867535887206072110352149468544118922263012020094035358557106527170784524974897943432475801322673656428521877453008412499166445874268107395402445758964791359315028901360243572833703274625325288282780667464775792974524579578149592367361972749983576827080812172163513737456438794419173588386369117527993651672047757828208178059400863930494766851196079555277174117855917901474256629146803194028062023641467686691270482402273881346588401787720055356824968152696170584887596044971775929894759178222035758545981980498677653949488469095116730898728256719105418589228477195122353966302756479350444926165806599755244855033632681015241748575414759451892792327572632695534743844980961590823453164248039206007474037857942438240420967714510858007378788475081643117802578815662925250221145094848614051858177545357512248460266979207670039465808898584831188737360347100176649302717665953213845350966268247930849796316092777393080331191576828484682517291543747941079887756912333305248477663968472996571532294297443524702684693935853680049321451155826393648417617091869075927150812384579909519149853755308066741714670852060841370390047224493081295775376415853100769619689525028742427615245497716384298168071199755454950831496125804110355702000270429858360768009782132070875646347594272400777752501136715249025850197574665090723383388973475430952880247595861130679278715512872562435128283034917285875432834421780355738192741693195932927183895373957973148108866576123350691961841422319468370042607423600049747353733293205164636520437638208425285685000287279344182883933794457341147133924956731620318390918446029219185647615763653448135497167585876870198626211475214087301967120541412106500350324500098451635550386173896439593307835667041080911658695604929133729461058244645226285002683486396077757179127386054701542063359268289275783239716412778123787981869669243614107563726799767305748292631014793208854906950419064371206851225860852140506510356965467780052777834838779614187375201924630749842597613246072826885027550046792056047131076931195531465020569096299309275968506773726408124461403818404329674581160503700382239883319211529021330036261318450977544394604295430372174384146783761085919878639589273153635026380208028841383636946068323690185157346616554271338765114476638790303789496446460266544092038585663678394183969480542029819630978681197225455180625148177198063680173354005185991192126764262493732951475254887662697161486094947809936531159877623491332538038120471178722206108141254704728087832397582423122607211713746024513690899601712003430060852454026633590145379707800628538107438630894151421062123405121663802310116574823668674293626356834191312657572968005344629697329317310613710455224330938002958660670638233357301200893886900010005773171763891952498188894909608444864331518039130790029053611117121368968096767507213938866854207808665847949106896367537601697946839560218618125061857872673044510690542402908191738008900117295969410608977753799320483800108027241199972296367585482745145182838005510876950766934140819625403782237898593627142622075686772234760794246032454206793069474948768940192276285504503419067044433378656169380003077843859437142748835305131688196300831274935152736735689676535780411320490850047532098679890785856273809136118367606590460044417687135750376434876232522907475440710793935992929447984260158755617650453824992311573432313074665311611590359553726949663025883552282451026169416599483619169891331068808141556175428249483937963537165278109186826123335071343465272586168167625434834046907267160605320059269026986965811670229517909292741212851061939752758534229634221692286059979344265123735607048934771093616369534132274128219583914258443401483866337271549413661214332619455257417662801117661115936335558061001361817649352438995142457835157963764945818461882609151977535552375494498579882388914271295324301675074125243310078304948043240389332926227430283758261545331681047717874546503847454656032232690006884899695006099280067123900422927157990607392653588009601689692786731749488402841714902259509109056340499905244099086667530111211102667238413041461061635893835669432981156178870121318851451275294636859368863469277190022745808881684846553796642823583553030070434172405059766477798986298854086721260738331173159687056114151164237000120328233285126432260108518037506169212277155319704360798514829384794556968171079411435791108930415282917525703773622079072942568958942741010504579255387940154635178756059001524301487469787246834330257917908413124560672731762430810402420506985231450734225815095796749650269756680854122291724097966850378335226377051295037630050751868627853218592483961434788612008477084016478738555976024214090184712426354692397686899978797519961620251932257848090097987411664573178284132830395994048467205180654123976659737721159660699057576597876111188283406829008447290079186720919658260197882401234472954865226798591121495318104854524404964205538967843582505585534927315648503744643070657441131711204380957400879071258598520006417558056188877440102408634401151392518491372392507245493966522294030563543306767255899868171527437686514243156890563566130474383496925531201232496971951364752355367863685415957295773050939346863792928743802374627942465323165853737124285102681969258531167862425761979102467083354371551052322035253700376283848369885610869281811886705738833747729590797805479575000554291661851211340242743504704997861876969398980394247067635592024810642242167092784796767729882353951124495669878502819485549568555685087690939496161066857688351977030375169024386865396719193999252675657485444052573017025308219289095769449799740720980176227949286325227386053502544892097869327831487926007635221802122820047492184348811356359936291958226165001402220361430699125269674904710542132075119498980488168483358557905118275593972411173272452138419970219532513568548194959017244310594749048049642753700151073639741471224619074884474325693318160859642651493006442728101800882760175632390498369620029862453714365707876382744440343443673839445485314203482228965896368853377575383895181220924743891813207141166925261903601467908056743409948204639601986806027111758072480334622028516517509017095531851248005338568222338096761140595300207108273029172460525978585319928029126907520416334437005647986833431265288264011259284103654086609138474962795935505591619495325203872815110295627935274260781889621037002988148862131697506183450324188731480005775242556110488237729668715444099412169295631961293479648319155719965516751677806274834054554781720223900747665900849149173326146396726764982773156627713739636075612164785262525081648332761720376258210277774010001675358773516324762034651971466115802427167601840475491485055745725748967328614322348095918705455775916086890510010387339602771740641804943315511437609469664035749399215335371905108646507860734499266088822606323002500919908443449119335246775337351618669918341267366935391029127610045267802960927789427603416498903120004509435919810461888141513034525177434652970614522613755475015318783587684537576422827048836751374325382087156246020649382125741867500398312607442484294484581824730962276146769698766381619807056786106698823608479846883614961611616152563539817795700608826462603570209008596036620308595755420642829961344491780476392269485744540542803733775717803958565651867200749753111521631738389355310932642744731038982369577090405393049072761383456303489285628340444551131880957668565174725265709945382520083611536880513344741942672505216875955917931438919333398367791662493863323565243850433109427364110474816303337092649440321822314399515710190375741730861570020131267855559225000142602015259715139838359693070857826216492193665566398838091831940587859110753716773378901177799249804140016131204606727665521354266775412481786106500034210666218773760485381698942074043517719508016322569771293242281627048887615297211638118288897141184454785181376114162132930116747733730107508484395382616404444242936752390196711551093804500232406492375566216153565816609213333822940723364413850407485810415481491209313906136490315101249869400434469782928423018347655815450329675018260719599973610731320882019655180599292687051414781176576603066169672246276249709588946296655935244075506969793675373380041162296165775631308880366034421939214128359383641307575541549775645078332083013313945571192301396484665056121598582558794088032802452860314468839571393860397435062269073494613515609838598215718672149225915765245011541319815016325433622074599450192280730133710889404738460889585059768819997446866846801573089468042732993366395927321687551501379656629967768721052341452088000110687288104868950914072291783938545761987348212178401477828488495255377605318181608704348691203591601928196442330365602464637073492680965454130429808108894833226975260908684517278426133269688385631768129286110425444065715981059273923116640791600530641311316348886554864182114847763559429565748564451545234572348188344784896236454097263791534752720475898658269827218976924480039264698654101401639036246134162151552588155743419398645314649336222874668338149541227085768793937937952798460854861143193684545683126783913836667980228175684749447429097290750538620803288950441145201983780030132060509870604932281646031961505946971864152023906307811865480296594487210326244961668239383793967922886868814042250460957662580958359794590670165488128653907358986846023000358402396619960178383150124298428844050616061218563160666821429245937164701715603038341188323597749586591979930554390068561076290587272370639555957826602614372392613809857483395963928647519914781148359118394910147752653967261058696877334276911064323392626585996906671540088512758812192606169348376756529186182952081073700840989155169171605388991216817238312655925783689677515099425826630326530512188354256077557927964314756210564996131901165566611216757682183915301495294858459059761513386989548184021980581045488362580312227947810093341757840199428527107879023218226806406941911954336973084063471529287629083844746424040110687271683969340583482921906737087313652967791973004564583841597557354997525142795364846736390112529674188534278852205990480412407425337641554720561993688835083568706837173173501320764712320933611829000179156200401240755074271240174250871581816128556163415740291440064929493099325251598611662690786828747988253132807448066967514116104008526286367198249239792563578399391140920196699897754505341215436696025643556909849086419232836668167768379416290326297446136704822835527954441192378372092728784908225867303813637580715627685038459411123710420621610495443448508099137502971486899679499536529045259885631524110312023017121777627664421111036185007435744862284847599629176115245207950682568149355821681179193367271739305764891057087555992195906201129578708093227275279272983670089021288979560993078500478435125882606473289399495158632238778982381840070435243846173549476034580411523182282346623721962096156327474367413710358416182320473089416728052868516989620217876970289494568286459055076726741603406118787402712847000820708641193433675906005594186636518127589859421737200582159976630986045287106783909311148827285799361518159988734161441704565516787741911279551282200623503532189247462554600815506002518740112173031710944093411600971480543825413445773120743709474108504646822213859229196803155878944797531899402481047549214516132311896465881569687909277822465277853704389056653512413947286765333564295357324999091744306932856166084507824749057016835105651660866251786783120578929419780324276875671044524534656701494273032829327408303536530508137959972314825564292831121220298871241842807055193984247711656251589880056586525742100866464607282861471577027272019290355067509814746700345486246717679532570603859720237737231189250061725344283609906438751124766502878365700117930370198735516218034143289018944772450710616602975600289539078089754978829759382540619181922211827494112281119114483214445524950327696912397271974171029927614186145297757879720020621455070294325294096981907795109403948381429223345334131525346566020947728707691073377097968158598303813226504920409394561346781621627064554339769405082880484713995788440180330175264110298493984699688126721181376511814422112320496741599778286939296129025787919343051682215715994551051913266335762713487030411946328695377702294237774152658622738804972163343229776490783843008563274411528717394620073161761344758214805435882759436960402462072661520163387654303745846010200552543959298606213831060735852905184462808595884213309096599756692245876305781239664600991992678990007480202747294826239277794940186666804338961922253437698907179564882633308469975639350569734247516350964077076554185518167659290275769269818684008073938358478537932786911525255120944407293027101085403536766289738921015753526916788091272684585018738136597600673158082183681980791897322343369941281823501540904617986500741341781491839447288544169051327342150983301340209087534950425718832459127344453253152925485612207035173038147384162167209952650877567266286569283031032332910955563584321484782241055694232900294132804308749380890350305710512572702307530292296529708408964248273975590178534921164545115150542042284137608285388652927917867479261234188297148135098082679439689050188495979958125372655814701974393431669113974946759712487817675068583300531623200781850510262213405941361816833063340299080610266818333534342062195563167869007788777619874463577503213404974905115648821626720192668273334729975760012121224960023704195163958369524009314150967058793240400735502194433773091936347803248301348725970153996695234356396526426377587967283530072627174036313703638964731207013365323746527524091208611248960282575499570572769182725773554565269228427729231208066482069447707508028870689278036463550039674477390543413472466743936930797901251669884824984021022811263485596597454942459659468124652160959267933842652701767061980306936056368293840935679372072936885560505563585033346627932400826961850186533296426776003516334033693876308909096519973364058261924617588303906923160696233398794557033655680551545065516254688619606527682002050417360384547398829172682142478342428343503821031635834924507937580944124278579778888154627513665818868558049379816825092847328527948493614645782208157852329027212264803639697804782668613340139122524708555230449652356902042527767651331703596887682069791697851887099848694824644904219911381594080770132925465069286616839554876334845810345844188738760032823082631226289458750802403909970682749411900484255263346152316228165847052348716804321303276545158215569141708901718974863987603123895118083432963634750365051802316382588058920832221388528589246053850170236841465282846931411713566545100241204427806479346478958115319798746626711477339956537032447087009296172975779310618171304170963773332034582979205747954313861999946155371929264662233125056190854644478801499677594974036021309328913840974612461591613793654352698374394047776133531034152991007296261831667181958818279526860755819794451252160868313970511452577848523601369023781110347570003493022279621000359508963063814204936294002759403030805787789451664191310825100025051508428166073406740206844545847199598415727156797779104046891373209001482164474670339179322091264144147169156012223230932530161567907344192001679112743307966699552586625043800736796320550671516696058059363882911558313160319164687555695880876195838089708146184590009185042492049405759578217212723491282464898804278424610068772964384183275366239053760694834199722055806069079982465873448206970849215968921650062986856721472365335856797075571959259297986089911930111380915176866764215311194030708619144626079745650959416827375455134639572250447317529342136166824838254628919768827650612854828797590444377728335059365871032392697820068541317220381261339038631156463104536259770892810708163021002749163998828084037266574024278682282005507551709099953312998522231089437241551401365177699411406159337021429150636985863123309382522505024212769852712418182913610531784823939327109243755244189792618792327520183123967682708270237171996080039213707128031211487337409350566609679191898670729733899110906584621981533831721933094847772984566803121265255375608630494088482937746569674913023980632075545056615969144070432571173334449928777085834932755271109235446624335541959107527987327510252493317570987943630290956657519911342970182596514798859402076880768822281685467794022954141947169013427920797380468818730720591209103288434755935861685522818503730157767448503697071772033158062498075702389827366975689451684450911445317632683844598999992315980507686606270246616297809842668781784429842066874586190128014200857897982327256680683894222741632731544006219862100700309543198765730427824870306890120623274509105220899816060166260306980002064443825001877384779136173501261033350036305195341782222524158206752372478435178297699529412974272620542093293616704554005774754170221987022744126365115037724763260364425748777232439680428256405468098007113936518175580063804659056827402765033920897057081288751160731298793183314970015059461751633177840736501406081023100264520756344507729127770946680344686417114552100822391872898153522528728956807983698481082592397626239704089138477687408003462865779855330100637613017347098039564024065526930279306957786440918604727223708538012013937899343770685367652411472744230936357884911953807540779614508455770669592502478796343825184757160141048209295898018964286515660504011151086182527822055852292690358753462464932923147449881894265311171916003030974972733253335762894867031055753560004229523715059063240984021582023139484926231399092340339049970776014259479424687619415927638697994828828290844007640579903539831852545346930656679352712798958696270459838649739417829454350562500534943016139903934662048030135806377497817687064061544844069522553236157909517159508059507214377205554293381989640608665531654371653380917211576406884749452060522269172420966560153350977456495618396361522456549891494171263025490049600607681881469171815192288381051525901999629021277726458552529086578513915193068727625458022213765542066449933012046746360583994406041318822488155957542746197801618249720677288842547566177824934174138089652271615489072623814332281631742527087565072278054445038313123623621965610651703665414048352034900901172657885832897822400660186115470703237616461012829499573706095308800021061137441117380747060102259826866733327977950280566236731582771791212768362315413558318123761387897609489011039583641408396842509593182274785014336905632195130089122773867088188122481278312734078081372410011270298872082866267970042992709884996359259556638364521434812401029162324720869978212059239278795418662349007717932250250486198970113217984160274108906710689545644554937334419015363945430445547688755552697119894955655778330031366868947888429732815190326523525651228323433051989789478074052259197427441394897169139402011618023630190971222038930263963750819954025319144993182730660469598540153383125809666178182148066707542556595434379202406850442050685021740559733826615087387215022855301651829719354272644822949816329442188302425098407657483516135397726083630870303374034140624633903092867324105248542995435223417243086286707001064995737156562918862175773506384362467801202896194282698410478140432444556559572256560948515416396324401122873550063658983341109789847783135699438612743359163916302157184888675524849677498242725270310774814285036776727999243726054469232340533200452486559328208275053574091297175729145164404049745851827826507046912261187938790117624349480452233204092905735222523339512778211894029501818302128138538192826503767668819262194647034748859005914101871785013890884280115616431997830986993369229274823531014436102854311577737230531466322424232200847649248730780801854611490267598815163967396960572382735589500287125352960792788883054217196718666078792685626309221067777607400683031993209262079823278052527334549605990770627922708875438020942120215578724393514450813805652506648621678064142226869167415225232618138917043208038318604349631543841152617694616724036689217888702001405778174036400839452513825734281148233925033789362174301575453674067948067759559448392068237174517391824284605444002396103269655004731201680390547656302135149919609032463949630533144171844629774266543132138887426907178731740333758439210949055539146452172470595824759748719829227055323574415519231273213080870613590292444324348509557520725216290750720592998881936693141156264597412314820769381143435183396557716269493243536187931401238803218032037448728949646517537338647884050261461167861998172180744332957449412023987421471289408177804900174183057803290678528876792009462351964880533461823277082678968233312151537045142510520691636371546059947235143830927977479759044672963064577980641421741464424593211518714470694870441779125190529609903287709180976039056830737370673582144527111365995216191817507850292963062479735849354959234768633167165991116422723203700922832913353164404996440930300117745056788527153595396937616787780593943777267077224542483756668223951420445299260085837235871722886686114094100289763905267546440665718028180415011207614653114228434414406243284155574276126531031987238767724087400484474153931075145027266303587635971724266340867736329030342193405218385862052576329686962459513040740699128176870156895902901027384410009024479319465396961361543166785910459736041794831299040879335690778493400679794699243259331732038456120201153749824924105155204120574792758833296158687812308826777006765495525359040686479926088366636039655038778150579299159657785992544432299182786262829062995055001110899473327206522438889186951264172915336627310088587174415442183935632081106558915092337537378656362251548369310880269917742135520762843535467544137232719539436768210368152273908122839379807618669184292479889065220274862084013034399662297222917048299141578038060165733412622588480311118231713426852670449233857241864667286027541093559740671425091727991043136265561480959689044567544539608683780634521497928292923325966817003808336138146175537134034397735868310456226261893956506421460519719772951714169536236079721335517135581213912852740516420761350083631019423571899887638060730992498686384976279979112177790941096564988045225528017694655145156383665433359262809176351030169986190750382376554059713350648775099554631543835427992424040282354286356502194786677926934736816645236002288913269777040976701002606589804306977705996738385052487707285633957561762629427902876498850555431857883763008287005302249205913228380151714290203654347687331844409282387766137103346705243975019806326628847492800331429743151989302522405885138768149525289115103556616848940491274979148165550717141674420598394877401347545714862502569224695654235683035457053153343384403207226967422243977841501798478168190797278363954991162223787672683125740192759665174694267252526505899349726626049284678728710353091697019753203914568014623414137806315538586627563422645600646234057931102591030616967911249343872903660542023603811803417733367507717489772666383986532604281236195615288263661142604460442444973445231771693001079179039731426759116158441237764243657729735261719340057963295661450838334392293785761570083088755233383589153678954623270357230418890946809842358749347720771424537535274383781299902077693549711091085428613975946558971792463375880512692844095451703899629895906700128079986442414766343676525564105796967799980712161867536453459428189862994627574271088315488515669382134792016514447716049427799402868399894544695017359604679896628997978844438169156483380376485115907621882957203697701289999161752283049262464420349112890379014979274062327945922561149351558790590997938723750903444471966823906714574473387692660123158342381171150746429093371120165875803635624628227521060359014095625878909924296154649654828318433409100112424462238541855531630379876044064040567086162813975972721898344506851327913426868017592890767171784171721101657105606673109871944470809168621135504942129238179849204612975882767229906349336824986222555473420053935532049142220767363040138352219282063002312102314124235062572162417288075444933795928170398874691024725684051940230171713726723717032146068573539894278264000199128649515231354633385413494412820309355170312173886693646961885742960406519446021385810397584671061099151455249209766979946957903971729423850962950953773607635812717156000054552307946714597379588314490561522993186530629929094234209373987046401721990701553942200943783367697125669141376880726474499685172207793075094992681356306154038460530965437691144435556249630766602915018981312575406224689304307436897808673425048500703836295251538250113664930209240358451840218778700466924779829737249953680211196432991567822756095991862346617048778501644439659994254973501732544760744655156606299373099374206338153386615484134519889277355955432534926416353478790766716833911382877874715677310222538140611845110289863830351565685836216747234847592460294756889636707473872129298625766017773414896341723568498178237986366378365508122047510677065435693508672010410231073091662619562323502526975514919440006963607521434801481616854293711413291176377126831071447758913403702869750867203981658536073851498782953153419417653023062382285040281948571407835265254051767550538905308503001449224241840523794022472257310821616169178356486199217841547298699329195554537312593185597967290950838595125442154403314018692598874425475959902174584038480984254632649849456034713542276255339226043617872177355781910617933351627746068914316433677698850809019091944127580500269394376463499488779871873628425545698238021616053905813640811168005316045069948621746674258473631733452057659853391153320135310012652952006652433256637675190081795404831964314760208328268757247790540720039424509894271968803972589076806164082280652822758612622005727561470553731551795670347128139810621355620298507767565419397368895529683177336501746436672934772932790388808849571207536215357487168277050605656686609222876589643822633312233372331231801189151310730078474572291362885305513589193640252743089693351597398349199507311449263843276961940258970219396529227260373918265226166987504603110782145526726300976135944231361161981422680964739290580033027449639167582942119939754282445305906395732058892821117855124245713982238630647482594802691654839340942848524135128761784098076455394656504560318412651937101608507341004136077873454997294564175752508307969968529434916815352344784136777665204711026521139576141591695210048808072412843537971797916013563234465922699543956558877342248997558859285603847404030511812215494389015128475833555520062141094542062417077798435649737736527128078767073804965726382124584295306191028857990519336618265470426422125871153704619870458253433865173556658791688696076405765668917318358374831243620062320518940536914665228278324597461691308873533867936061925477535947987976037992478557400509350230866231893002541591082559051540436603797651797635553684002238829356202954665702343433473203385983104528881145614258088448579878020867867964722772901138108520848388468468810495210054812237449556257675404955482868126649566731225639680277857783179031148040074016378889346375633711037284697949599644198545778763898439565955662736144225918924196042475052786453340619840348365577538544006671729634433340120446110015361515683478309449012494826019075318614666082319072010193075171727667082446112482080673794097157941650799064140119410084986240105442531005313042612556130511717260282846966957475259345956113894559671446026465214968675981007875968636339917760807674954164594000274261563387235359705097002950762999589573809863954211829038154231600403028053085678003770386436356228174246424058929289103012586909342539223896175030282022735507941106122552315991507762346228226999944982650568294750225492483760338100343840510510744992904636896799933249242289090948240255733973443758519543637235392131792758832725439892630114728157851041150668639972994115303038288334582464610842884552766154829744369752684788766559840930284070242862215857229203573554293042435088893404037052121064877462846760298172304648550243534787228619789224458826289214718097231882759515694466473203316705933419926860862866786583856712347962512687989057440436789652876354494938543883956578442582247177985179184388711106115534537855465973334452654381751989423944351554931739897030954971486896092843983196890841834419742472130525665105815058191998581955003678813878005947969382625983448373538771964254920871788734939906286172947143272877366430300366152674564786363324636385010577511348940356887491838226955059433070067897890866563564426706974110632727197051314620794609360237830736857240061651104973180305800108829385048230408844365828350169887475640540116188634634216096462402309698130555517362835096323669471822344848224552599977580558413399989591879419986364847037501306104737323357272936332696876675311661540891067174260278522927604363005954600309665502753957852576375460008803758502520962879976310418719454811908898152903670700554898928261635806986163414763941186287029195295021256350207830524162666940115821451330571831968175203356307077891985342831722155414802611390588034629352328107855779765337129296129855600948569841176975438991308971445003322577841308934824269458026787033956201018259617034671862070117564774736732105344863359745840813203277810695253110965932903242997130976700818941526584025962524865388912148317209213380762425405790637069525181113696751330699927486313204810295874411147139114911273894650573321417352058342512645518397688017297414333462392870329308605713859288732691132891156825616560142276296231981895296579959319520379195437007427855465557439201640545435990214652649017605656313829166845637392485451667522563332323691405838586015808651478431478370881946338247997890372590178698372351377884042104386457883703940140406460174977878309777814280718697366044465240962748389819642240490882216853205615216295407339454188487366657029570516639682865924168803689229829296526943360706574933069185699774113006023755572736592637162591402633520473083837232859424619767703482961208961649630456038396027407066865098135462209830920112768195650816183158929893959756676260880646932461252901740757298183018802163645102020656998531115937294764312850513177649052869350353722811895461559527849330455613787044183974621554072911352208944522135731655534276817818803811296248577790648713952825691374227637458340626313119009824476560329571295670693691641319218886478753474485010822675613568375306412344344875560547679214080931322946481733107150240500421937118959496446170956359080974513000430499779019750411173150509218088272751591077121583999359021983976054564130728226161912303028288663220641771107311945056932459534412198514557126604946877549792632742908501906053064633692939143321116015575982039193800308420097171861528859046096613626130963694249168503204202396279348065123885330756936188738152257215744379881200847728370450581824681013782342579499103036350208041481261923041055125614935482375553427283578914114492557454675568485846986144527505260867518261382938872634311966774686876306850810406039440484525508968069073364125155127440840007088437800716070938067029657621285448339927700837131092384553038891511898680538910221332188291960175692686998583304001882220149997923751079687529851022875679746708875031319803600737942677405318393077371724712428598307871792336646559546566781995067275912081051837510090464481266258684120678812255797835301709264121777524885445121809006680838632733937776762438964696764684790102188160028472008214703206958913675488378519932060006369727414463919987034858911840923162005684847732510831563586743426005979694096442349122718191930726672194629705077044942839272969890129025816678299725379448406907997094743324536019140154114244400931827305868371616931378360022202815693020924725750238477299147391115137493432809773475811316418122359498532435455505213128592364537362200432162461666203288753299235550098799125328606229493188855595893989587756866738164763421548690173809012846709960988827336386711817405147710387574137221177312663483518596651346268446736583105578467569934458676693830668295414962007001510934677530379585992363425203540429867096148165585182749642879595771488368868985202017690307458810070982620088482524162226279286952108030323597495345996338654996362141024926251606621213606881936459243212675046203417967407097116176062070408077494513454172890098382417176554878195224341027720289613940782129274955148702397004197316253462495710441942870444333059749362324386310962091422125154102294859163960160926993045710272552947157830892797433202421884317330464659028840960953899965686128593300229804425727312830300240955763923068357524162439171755026682938201435243180573244182799338008406620992134989502484587959196452431950693678321280668689863372265212060965754874826574004807248318738361661841900782139366466607698548767276449811369714103522641032571287278913438932147723893030302053544656132237056290638575253103060449164283338799527689345000201827872296491432167578517283590374851338357760473200456828884350754105021984519755966500316057319129292947846524520161215094963452455195192286343425671752804147067287809502089569360076980149491473814322212617328420264651739964065439172250289016847039445638404143709825327461620754613051619629926640536434234078144982727830507114575665731087867767484738165250757295093567362304524433592483986371644045470966772971650474283713748413230649117785046767519364363370074071108069792435732121228408350123003816503534962866624359790913053439052405914640659203647718099431036972475162895188933185733685135369063362681177127580872677565136424479164789059800775924349061512701275297078846901617035333407225230135708673138032690921421628285103123443656423178663467401363480394321983534316930045598498532118455488073769160590015939971214213159924010092564275585206854108996755761062828528816552697501141094416296503441926150512281463254274361649212685159562213388840359720476713573839271162129274884560700463055672861473808123212673381618957417539183812105909087041205353010478888644238247255150635385868304792995791863229716601019532285446953503518962592734038045122844126570224126757588598757978546464467184352845018689480399612838760590749772334187633371684779875642556237018015213609110301657768531267262188526050775633776729151328667282644546691470227503504711839307115750218866248049970888722657885388811841743255751385157484715977907781366059522505277997049245537104736829356812941646477016690318921667968732298412164562489469307556535120229064844996232280237459676726040327730565911180550941202217481745257102901316721194734712977920939541179314715945787608228792427709985330081058287980422641890240991570955831800161862793588419644475628968470673583753280978176102410926243451701003396585927582958840180017624096330653734053433572608895389074280038654365051106274033570677537166480726340573837627029335374674806808541169428239344590453639690581705592212584955583587800420224471886579919088840474637212271748821422100183106790711238561125245358179734002198127592512176924532828048850622929428148590628860728542120465769624725724168246339658360906084225698457494917589292366256348493064481873490428240205531040197939202971514223186508931282733019275511734583420829978218826717098548796213106208898173640970249358677043286345434554542923978688017920629460848039443264182820787268869942637454275334439912738076340718998399959992458178563915369236915740692544812462004575318309666200535693462199533653318744335971590381617483408691908637563740447992620908555252048853181845623772179455923027123224602343343770212355031890582924378238961382809972728877722152007567025788642945408570129924346589509542883795646899260764561588853362940755139550390556855977921856200445190934998552585688438322277623064612129105095929570579140281494792678383741397127157331208066655317849545081612590844629363124395240367810704739572899237048162758198597973161965706556483389701758980398322248219669376200292906089107310498487880593127359411147444507523533108650782633240399880309300246109105578759170791867804456637943995642635706969805809980335841884462046690223487424371168901809488158522237060206004770345988981583970439517310735089100096043815065665546350988672041693997796588617566599931719198102411711283207455438056380955089125984752839039318586994952985435561651963903712290870366352737012512965734387020294026637799124693649561393108497581909357093939252370158285442234589504356282092112319630045909255719089786081635682528411115445228406071116303361663760440310819244452671698885100687071118201397679053101763050484705687427275151898248520165947459529421836955424765581758545316421814272857944237760827625896215513818526842605209221117812869675533590538048262876546144476686363242597979260716488270374030258634772116229607256362751925482696277537213315779948829388188464577390741134458768605432470013544179586999548733350521599053589446918212740573086761743426448812857753910627411696254218934486840734143466863277140831079007078062496590605553949556711008481070218837113413306641996116786236992376481298238703683669092622687135556400974510122878503481048623539686377649352271786990711147072406668055438641610643460679297213423090915268777184556998794268152964297414769254928076421833079590595303133943362368573934920239366626946420555690350596662172915047994960559858733026047599477438784461997169674822693128370743682659400760723288012950251483662670206176292923098189718783651486031205279480580595598373969000984875143273102604898810078713386800017214867421164242308726253094778872341552458181376223578384159798730747806814215338274198535642376091304701941564222244115853866487075268830753025785615043029871004075985357661459471459162492899041224966064730022103241090150836138744872088158899289650622132087202473963063965401699710746739749225609634681069535298825144600803011776736151265227399376012661726814739285807755077684715708789167869378941715614131572491324706067317241657412061130386748471667315672452924449543237105826364851677007679090232144151881962417572089327303240020527204495788726730764499556318007122725820327156569561771293796467339388041507893968540229068437642463336646049264291394044446488302770845047336704209753782328530552307874167531349557966219249824880421258208873968250948145915374475869088964545212385279848109907945817003128217711650071538835002748491273792879187089972633773688393945920110494387600835989650343655573797205875344234554305427562340954617045317180084443999039909349029924192289092644184217828802950647964306836310010832256368894120877448618055349860036331010751691062973317115542780345164434231574365983549179914848574093177731344628270763234223330584787209236912599836927448171763069546229172362500863206254600671753428051180884390777300365671031295457268951561266721721992128342658167374317538259080308566823873988466021494852833877198424007522206755318504325682778863447672776548350957440238925999166640002485476193399258777717761284131792312002805072098731714008934328449720300992389450124497742200427865748239662403156662339003854053172688042544405726422273979663395406130879622460912724637571033585035543288480347814947206338758673883579139274219150879111992190015173377338964573400257369599861203893572905071118006280873558547887296703131654449414450441479579150042176186729631357577006522516706572183347478302081845555852127615703817127590907255869571688495601089322604779312597345190502600810880480817391753163378347577676790561348599397365043722278766620882003638527110882210061500198015356356847252989365387659886648407054591603116264475942071838957331823842950885476763792673356296119863712625472493929934449024938203445286704111084477838279411001940870440201543449941687819098428574312775265220970176942251500988273354224455559058776801651650353707725458011420784302462887480363135642079415940243206428122741212117843960490118172728307360408270086102816308897210243378798155000662059900264890325153197291317075174592734937651356156300684449591072338650124537588682831752505556275188475779646757231688947152814839443201695045421064425140953871711265167458408433234383700727563826822754570442609155097396038143551085088035456906135281763550748801252113934508700371172815206296974457306908080424178943228885608592824171092767402454498780272353609495841527764697372839439600799455846228555300269098292393419650550068582815932626900368120335193324395501042730640361390650990730923758548308533179802203516742320479638314282191206493306758936193796489203608745532022905265791322366013577539701594849891804913728692475401882262003442455261094912988929500827080015360594803517438944786841629117458823836415989623965800553073366689575956642721960333207937882710696874140594832383324623929408579584839050267093633834718598779002596640074621985147139038823698278551965351612662598319125918812612687990639336048491669068868980103284032224086196014190090160754443919417586123436920347541888021705304948558926043955547178184635818162109868442030982203727179548871274281518770642424105189271534490783667933586303513121458354841884346026616196743427568793232290592021753873751381910286747977444529040233427638709626996976094503470649842593769564799842141638626963314486895397090923129821198346571125181831050482569608466304137052722086393793951361641961334691744307867313377237010014230805086667362289963607804199724561308915881157694305187435210501193925358555610612682847877662286822572349126004047801506026154949242969294560400427812094895063245566948227274854828969431443659710003728958350077016742223459868285140470182287336119266048621272549539568926351249627298617144081526733634018315130900682974837152218229671705873900946666266794816798292455401282238742039679023841388244503850010435615366245733183292691902763751077802667392711563420961529119523795962008834605359076713602440160562442476912021420612799597267325984869244921876393343177883070012082101269037582398622721646925403554758472550651575335636662869768062615782282191454941879641794010091514389050078750857846956285099036390359479122354201553743984756330780871093416925411819379794422265009188502473070064590162339533656783366646255196445672149580437623051668879758724747598728722054614052925093680270636478284114573346790995359298128433231002850213321224450244869674669582947123084129984972819043675975989442818626265048000316314484190909442500102317284701611200513252140845406058414596236077611976761735215502522771584576205103509813829329843436051632159575421424263397828496144171847590437997387139032602326037742664653329278247634516589989088848293952436343156443968585757551922939979606538615218166839790433784835150323585396757109404819359648187378447344657566492063432668454758760644557820420715075656842772312819814679880745943991653259190530463328631443702770494717136060416560127976423213926469893505932114078078638438659671291625938861442529178969859845379157398165635344470352999637941460232242103126224065773551368138063745963423865378181092612323771417756512180352898000547814604913672360518790865786085854738451951504737936324758275968793390889746762918387645056347402166136821422081696959783939742450029141656226976318879659383962947546763622842751500236167655627203833836611529022701316723291374234564479859224912428101686464084289139522948480102811097746775084226697684953497377953963700041129363945697252172817627501005810885825579934974074293003410038232342522921778289478499202996234134460912247869660662669167940614216411983360923280436591053135167195395656340678521409134074471614720762459513677488755174661330709445199926955264721632622313211337373259999027677199342625997284567667857044398681832684763500766500007064173250912304411392929066942095389482698655963713582841318303473231310437118173056701471868114302102478310863695204546021568521642369759931860803017288568224950817916236565632206779807426984913518231527653426679400475560762292324123857573316313907066348247976990201964067777266188854873988831139502745631217339431848402009016048847342006778401854589417977593950707162856532854452399273459771627810712711258779156842821771376059275618165692681099571756799059603835091985172659291504485303668851095829234878861221811914340161792968826020780189042113447244472519586903122670764147370290532321300118373587705260704363268566351629900538361324386300170207766894320382082204160172588136564167657811153853551789678398479247119395397374865473633903083597228207314302185203181256397017242677584765472045355695295644036377965892596358774152896974958334675120009447558155591954934441954419860885252341805669374513190581456123927394474233404107546598184170430231146363727456560712383900172613261985257435788751301101112051636442557509728787464982690941284497292252443482771476936965668059793471772375690177032621675762190753065625505136182713553282548591161872074191318779679733152865132657771544712893084072185714350177209022541752689909563358728361349040860179372998174872320965501008706784435397902414710571148575430126654164105443459157853090115309217156786908263617634334689554998308395372516754941252069912931391827234772362151249690563957897606010857531638427037866382396875119127614131522440034600146704499171185075029211163782915816060662392067053303464829222917260787188809986632678716828473419003690805857381855075522485177891524063002381786495449319868791493400349295502898196086772233217318515946009326964430104095420058961441899785519801339726367373986487239071247455371954550503397102389767549052231482301979300551127789134646013266057838067380160371918342350191253402248560675079938206390992188927461834257945483851719226962050089409334432226839936261976391082549847598737341837417103686773960100220448766637021924607539499040507031764583080992550018380150218333513530508578868925928519292026790308992554139518348549565558485867461120231863845408094317451928705451227801714111337063203628509438523534263928858606345358897304179221086563932877657655797925494987592994160233024041444442725952426237888685200444122764956884761111014458124776281075508116927140364644078011472931140320991849475068466933213824305568936999472598103345574744993062306936390332098773753028200160554455212395485039733547005120097438823444570173257839649197293426004904298920465101461834465012803835443463598909540480892604171356766639364548580492715264503904378849635560056065045870101342233634107541749578067838612717983203686799555939790371154054771900768033563669963666508040997016019655506756015168101883617872519076486194278878360819389496218989926758493539311732210729691721038515921431734040618730137359703381512162291036824654266538573747871567215691451047163030675114286839697684243033038472480341171803536362843838053633355154767851569946427290109414565752545437540774539243336679223826625295462034029644562393716975994492377945405152627497924389554241193701055976537964123228795972057397847933779548822410035607144220059386483652191818689571064290361847154954806014327441969047032089151100202366737019167388416097857084485885266861783772547342683190156171275342184143008902469252905191754079914531837255116297875494617263339464722527538343059463580024095276999321704035566807848863283941353120471550466611329440994048309476688932702571498196120465247818280027947995931350326624291511146025684584429285724029085411736771616713070602463789312566784895898181627322987419456522548474700098413420915089369306827219967661034768848469353997709839519576561394526634364055545428120155515562924421941007187793431909396176603332608663986594065892244995406411761582365333907508757882058457713605642077812637620869192036156258832868658042670273885103175624071801949287198098411847468177398768182089367363584328733787513048123092120268612780118133174185477492497757539814181024826734472131458771723023693000931973841183314456711463132694434988091726679664944938300741378843627289261725024459268349186115643619477673952755136513577358907577357512519899799711397922142074809171031701720667703856038890521538838231247467923462235972968283228839101396160738496563826534270330990956184903357636141304759134099838825097733340442554922400410639658038063848577971267877218124443908907819263004278179779716889812274058569609781280740403360400259000368475228519874794357132210189065310016573744044725341161014553520127098375199129949266141222803201900373769767989783476524517765261208378461555156698705207789707156775512114632558827540263403448805539123158196690792125418089562807639670371272395940689013401359920775242354897798729920409811866134899770668442768546412711678047784634975917155675836642462516813142612519310360017013298525525992149544528637893763036318239175804224952026182876023012591496638708586190832185421673367940569409568294747612523921914290835425280978148495181214691246445932467857600679149579993165166053458579677781071405817360625231080300675062173494812260965652388529029919896405127528780925348180670481853146556933485901137831890233273508864062265409857131836074536818988573933042686184803069158249777182338765215485704693399501064254020530285984099361516591775987375710527977479857591391460238329786462726819797508766562820334902623948255965303531942461105471214565132060208153641824787599705129510544153644821226105748677315138465345901801961769544442512580165992210985702806307428474913652684501283756341475955108316838384115645570457538395059066766188250517891320806854400290623518146636063353119051490251823021935308373477741775121671189545932933832100509804738355168909140684804818169811665944692212724760723718616809555292937691754129975258860197641526144736809945331924322459179186999269832191629165887790251031369417199245203311006591371460688347690747923724032336825317948545377968783929747170165483473744901411673220090328216544902707013310504196678964455492765669401503586473016224800103320270948646787356295747629510782943280525541490313947525020044797043747437609546135881947488691134873337569387893954868590261603750165033773767343887250766911336806942291701130261913062655355390498732699288520706324481081301296493053398858871521945843977867054102508955809129843805283629656273953891647249433971322511322785799381530830639679785083828454129955024906188036917337051198151142833034954730292350150313987419446743653224203581284099931208233826700373515488730322348313789347157222135274888444904076033493747886944560381762498025178486797885599494513847402563127193445419261280190261301579264699451236050633572440902984239493209005933338483981935652336122890274502466548787586974501725262064287251351351762483016436878702416681791805383076960765961096106370342018651883165399424374350364592832381417082564895777994283511013454688458494110129573656024026212585830918392055367284011202689773928043514524483844152962842536171849402700929719027736290857282250144965946726302961837597122724915034904297227339984465352297218103494238350566085022366660971215930574152754651618851097873987554480499461434592039482675020928055937349808198837822643985556097957386140200696632223733448413467027861029057531438650124508751837679348314200264178872151368908487900604547084287335117147306517227380273670341566934081862044983009293780796673487374919246090038109711798187030201318030290523425229867945359536291916230747119345136004506741944026082381397679336576621866036355919740201797749721315894273309486644267098205361372519861723469019123909113354515491682485236304136440112145438677624005807217394562103821559975655579914856761082257757250993146584234559042175785762723523284347593876126338815518700652921547295606507454950408591847487545942878130862328066986036093507631550875510662939619077062580077716153054128887346586134530728888839442561066024442385529869869225895522965711590932482042230825972735488142328923995570525016995295903110462679171637485159355513928465252411219580305559804815502661587405686650152840354070864487217366175735613082442008873865776537149257342236475284818625629848068330125027448486538739959054294111700766318542715953432354536163005307557046733964444803007410389580712455938340547288783656999916184003796533704585886579775476450050525731741542187176446178782841064971350944777681668593987837345684699778644381771798181516039000473741471670382443945241152071676860367393008716792041207816524873112779339260085921767317709943878965663945455517105234797186960198086897625509373789748900825116923829833632615482452374305183060463620871155720174450670601397124909820616091716296450720768113555835582281285649137404450088841786842857692592076487703448459131814313008472418093674077742629840658868264679288112311665846991705822048079045729837520483873348199151433687748666600454287234124031263621419405076217960021329882457389656830357118856215739630767032579092234506330296748474515224497897013183928078682012374600158145666045521051549715590774975110296820841348680883335217036505341558126252416511750503930116078235637321088783811071266307413225085801772723126054268806332118550357818222339510898370009835848858769998118859715487211835872451707928563113778395218922215030662387018356446910604086121395164613129026038667396362449264357544076905659707637130527104476566152786413528967745761592723776517943214889413270097920075528288875434169329418423344134208043206869682430879033292550024241796096844120882795647530634751595983727087818983322255725810407101275286248163665550542784823482821521544014531312319259376182887592796465786201923461814594045378945031470644087111249438094248329745822166807530611311510904542346306835909202620844811533549881647125366389534407565784895632585774858828372272737902994448753980731609941358295772007701808120293501694218225915112578444170218731021252487511441226138642477431349163788162778732771301886532137197981144761226463341273753049012490110307496687347764017545602901641352038707077593341667926842421064107568269109166895806778040657563895173864291242147974733520304325273327609741202686760690721656247808383361899173252692134728667386630519883668698779133229947345442491281385137465814679595294574834161398133722737757872060320965131149296836890169719901658807607547228891213167868660544718783191279678443313542806211662096741616600241241564456064573456563495071860711398032771515370325315973105387427267565793340486531237537150633943001036617319098246858033204100644133946237220663164345720968642852625240793197851898619349483019429760648708639649233047298483821781675581163773244914910908643842542379882282292217798470538483715548559340592680016802726875643904795531441079201550291407092811194994151160324725111543090824674757645016237004851610809373204168757600262941629673708246771855795304274295614734667511789940070354603455842593172672449080256578220351739594860313658873077965941057958323572135798824686182178655471605868538146669245937203886417426706529414993653386674496626613181231902590598424853810718896651774815757153037596977736513165005034623160491625082960029190261697490165177205413340411541831845418184535409320728940767083737401585378898631471502242080282409425759539215974163707084302441942892657954520788832328293527080576940415218571059846018170241840502472523931336825310004608822805961289493765419386777453835008464773458459340199152114045487968374141737545824309012417421106980917986936682973593891269834682946269834594347909818366764892753012435777126260779343331047287116486755976418430539222145473343028132953884991323863060916281342088116537988179183204020740505482409143949960593799485776059085782678561215645385040379636664638824684614313466119540091893056517575309483960960736143786557720224481397344428673937784025693461298680164962580260926563392434602699311744609124131320933355532934213169049911229102937618070520404980100593002416093834936340374690271408441875932768815401908630386899864650078608202465661833082631795505259493298140301807473360524966000206042453068310876275276413674607706532212835524983374253715179194735932085170135448354049413898114930672592830564177278282395811808384946997701096993086148712846776664971823930412982184277819363519267971441729859524680680858215111938987551903270295016641860914996206576385050265338920737276225671613686511672827408454079716971692698752134930556328242675940035124042002429251450165264529445175007248616368073225852606630604468221416436007300406692030199575818515545977193000873699449926226661416210848666174259141870341227433480754272741353695590146481196287487539672236938144880029987703591991460220990309808219637488897237449423770340710148764412793849900074532903945948686780276801513659714818343746991200982606261368600706865980302278317791349634397895149888108602703837412512077615359215335958031125722180443722763749284654860400084779771219735717651772659790891779329436305416846788294556104763432673234232207497053488781011323655461163154805277289289271834420334672359720069963523868562603570081288279095318613973923361908518689343729660796462965068576727552877330283976506927803747988634097258496996018800835552721318157215797011806780830906204369834227946919529791147656459809547842025025449399814688501458959227400829070401286825884379030202454100499257735262286713629772050151743262812634676527242243570031454104405574995074057156670399419081012131091201182173944381972123060761442816745771846542792563840030242977619618247554576335333233519469639052842403579778138871045065318727754974829667690898230427213435923607144319416258054945785868119826748273546874526029852356797916486318615337440287842439302636986420149598931970505890826849421401214241017295965385623298894806614602307147211794851435290857622827702963348315759258269115612462808773015597366145345187712611508181251387243089581421730883673643684816454664709717784965449370871017640712355991151642167966656885064138039582420454731667098084228032625915418756088352754122851173271939367068572428708020552042567536618075130818500168858678144827209657829684453719500356056651409565933199973421350375624629633246828310799851741109736860613085600606717479839354680329155055953452634818802586282339830290872238542290670701189889339632656497430704404872347472907475879487190193224220280555251431051012335162950389633401184547766648363758241959401235377915902810486598709631174444942542503701704411106272986975995505943565015663722361277657408227891417637615973230127432297405085053519497368074879185385221813946530970949919824363139662322392961303251239665732997849877809308975873287531771948139284471332214471630734832308222691548131969929957447430170608331076937820377455176663609776771412637917937748509685563549117817738288627644243721504095467308729203788267966052033609596323606945289352760070164773127762878928407856861486157070760152144652258794550624763416228770545128158874805618131727756635802398040606632994861550146909029639520691577521641400612757065594044092619917071844235100672140765012646411361285584763578754459472973483247384548396644072656600004236526010506638006454718155549359437636339351934909296656226054135166603006229902461298282413627704655478445070416191180696370558664599353863931038588767903159677648116928723261338858031503100027230346334473522580685063357004454233446897465690308095923184355732393536316707974188121303641304042535482863947603543975265105322350257061076948560793456033742778779990794652209544452461679467777419134579273589147007822336125689028364330274789198286662826019492604316350629857751397078186159332447882401714629095370699594905338847493469217875286388768503041760123362649421573352227953604341797561861178188985327952952247245305830302857883728082269592531289372114015804177451751044900532424579343947331567146451676362401258887142504379873052567452802433073170411360374119592327433026591241648137132513466659906868389969075931413727499923358599896207388925750222924667396995353204297169579270311173303880266632097108438720334227634213162705356176070199872497208338446974996052612693681099504312954029227238920557861479143407983174682767771255309515017236056504855765479284342017302025302196711060830595718856968900708219648823128963599614794857019722655591240417089917884685415955199708600451539002224307021819025312339537227585978448897884657412495014962489246090454520825522731506050302964415532507593991865632458486680812865953340728447662186342907913353080532662723613353584011527458964981936396161913965507861156392618728878584088276527415570088914876687076629744082131676364567447190554521403945490576124947079424597890755271833652305522058170252795564650733066145526744719679702518775740382739942074794949092288082141171637036580803263518355683517557300968273481557033059944452853418188004763320324197809370752693945214498548424825782721467373653841128609329842844690428887368899373744647989324909326907303446393799385577179816162919871424377052280242349723796396428287879115500372188642290641197644746389486456881548620035046022510645122953951518097746452161025515593381798550325556262633496786801966984512473641458181467487401592836824643280340266832973502531376091142942026230830592128798662145290038424529766075386694525804193962047564475375699182382857100687225135903056208926397815102924837018725415007406473119318864549383566770440029122289409183999534477618829519095796147406709975653713301103295523955031355580434127168031179679880984723707693211084568154619527940092568506897952772974009012966038446889038652333437273855225654208809909757556829925881060530224669128817664475573977665376803582503310239894053000268182454152815342893401731875544955096813452002640735308014807638305599943248137562347542465442800835147952279755329362230850536745589664406299037942896830496488293588623907256767920350751060350267408472137934807325273631296211277247039996866444454390276653989225838178292163801595279466972680993003963186248024610993429660758416854624365541304487054468160963129150522318423273086329363014372285263845955130091368065799098121762265004413243155633327653542722866463654260145017748506106928151920226538352168152781655142432101870943707981608083636376449674918813138876435036119314070911870171860123603195497163711520823412179647898950996046972351906735027742679622348971833264992599989182539208511386920874822791101766599863967127280646430360334504264202695622788658690549921814318427215794341872866255923504308308418648151273746292095679904658605693975561849097507337990034088492059729457183226981265701535321617011541780417404981312993036307180442205093511202626752989510383453026605465083489067745104954295192806752399668431358193296738953240263385555964301648289433894516383164635485133970658599327061348131612578989108194609028886115915866827056393715723668333823016078558961937203302630966109230910362245862223415206583491541521649856573616975223388804275514299704829457587596019875129731978018286289797856259388608245739748950075240922316521691686008135519327382769149499313549317935496162994195508733058837721471826025416426635603990143311262936458551975668685051633783012325382605780028501634745294263982692504039351470922634883213770365772308316016782187276494576746147619970556740979245687284472682377525939165448817785627155204257172632703353331679995140242238843423211728854637442343436933060475031757549099368105673007798001255295793847039206028170268955160683952563331155178419442454464074468253103656651722273228974386402555893301800718103118760652889607827933474754861817157166398953844827931943704537492159263315691194878126270697241728762398216561757507835861385664422382395158555834976341723423346400828413871597756464877176159961389910458555502686908462071747133179285741617917597652631898433057333971896426806576559379602471414642263322900556523269309114166683897081541183348487969537290979563638209599733083837756526675616585178361915995258754447803639314211184752652472895720579471162960817647749404022377004264780195177794039414953103961221486998676678856889398479567790324774851305070129373500664570779857350336537499710803645452581153735830252457511626592278627848552297135155085430030930323950251356842263567493226732844370843569054290181193178650220453845550723033821541593629993564179260226372278328139667107537218498711879973681691112548763152458737899404000501994276479272547952815416154882268784857008628516300498606665588283525370408818551279959128598885773721564463117390305752549920753944394865650927994858726277034048603815850758911159456357588451545206881904518858738273025225368666542448258199732786147371991127223723620335434207211103307066037716880184504047119233505670826522216358242884785876890859630637800238001867131994555282966444750341000182413174364239177071060201982314748644543454111229921602103392195944540508034096846035337378442901842048149400979923672381229019140321003999573110801879589278011990934422820824192319894969005855485582594290573687723519655377763036970518658472217023883619360169582787736851037547174438591705107322786971793454531094377843978276125759945553889571152903076498736349733097032608108113808570764779367762780508114886654984449002038355557790889151490062741877317858393192144257289177809405830739150843860409618581266284410855463316459142232160821306485905433337547103108533668655940791793109488721891829577727952357802560307476838943003402730829452915972634802607893033295702223296631738682723019299023616879829407304616453785056267477159527039111665470597928841902713922763883307257899817087240399103429746100997978766121227345614324156572040636663857988992151687928594769902434292187064392786668076560091998960295930920739482755486870859720819224529933672806973866389439596516638347191373929215917010444814191836331747426757650417251701703656867341224685245363141989281638209485321827820201941366271877601591751300204046373086244526564167103312208256953648341310186478173267601090101712394308893135494500225104540959971177606586893103786831112083653049993464737553071850473166657833811098870889964400630773249553670792476204897065700341329915347987625185490056202133358336594341810045546220024950074331455082841498879769431476884404598690906000766341001680797894800042764739934701139817442176202869503501132889475876476601781595747696419058633877141829816373757589170881478853897177606889908353818117243282108122160005731465536311893513119765590568105098922291167692681025416545641594545635735758972703260917904753134765626676122863698225715530839110822816219418239350205341065676251873492718843984836516644365223675473011383109649125520769286041510441802137203466835214508226281507085973160346490161434068696951310029410338149076571200083172445464115948456669003809181531558573926174328012743682572641963631487592481338787868836408497968038366463910408838543496933980791775755112947191557316199014543989381644875957810190305597665907999235428256829795772666273597827428576924114706852855481748620494526245302632046074334092256940723559224480860289324972631587722483669341756625051326408356265313759724443648575946813924268286304275355037373086090235672505450890163854799773660172278145423685458398036236812410881194960915014019939503632168903604350918078142606632427160143080144839161208045146778869117826465725874618391780463810520014056275676396975368588180019881174373500133622148349741748357376995707201658175511304288262193095981098599361881290804178146561427703154609537790442454402536350868875088255315123288273321083299433153842804381465231021736635990906407997287519591287960848917983855144710751170763328265057208978115719224698803987547374977083771562920191529881762031579351645872180007999023183625667979335791614071061290078540714726511590311990748178219818883397654840006271904579901136274083952092966298855381763968739212274127495223771670568154744598471983548727377626068823625099564523269962611435755135631823285464380881752972153520163385574272557188456790683739502612026811199537390433370032698125125954946097541089955225712472440889068846451093000288658691714136943275869717059823139894249432370252153433584310782414733073574982923414117287251803880284661308476471818819525742142552549557114435791843169276762339830199166693133291714426646762654758232237719848753161074411543733296410426566410817838051340380758916606972502965693386609868330957649541110295920646929848181986608100145291065722034132078616684561712757441382867458902331478121429256314966449643441718422267577715784848327700759245039379581417441242353498288110769700107814026156077297522528371225886792067928037479383985415580214679084135130658926468326406484995786056217601758270990425243592635115878871889165753305375750597810410538305463228623005705960053484534777100801877815028551063188912077930323758643616181419972711531732520667401930883412443274170168374925208742689531667142423745328719315128704008637182035885080448780737373198676530375991157885040622235721568298658584157607422226004317046174762308568912543327925169720085215720423648046171690884273840802217593944984233810252722468465482077334380646556281127009053638520123997697265948733039566726855193315221195377372092028826734586491535413679472282578675018437463958953956116196364379600163407248217698616953273997352830688482231648155526989617698324931972349045157273811126709097288018734016815474129473616387700241582991724118186247016775817545595764514390498436241758948753794596711472122643264497224958052499810586869108111034687775509049486228227223592274421095084842574488831712317527981757008085986691323641237523338282199905927591779328375740302703295120200402159379568974474415728412466516091283818213044940716203694636182333751716578011311590167770847973581622587461225243177047848388942277693243939514037712849662735809617977246034520306489797559891776838805397459255851910238031072128754432907044877291575448245011545192041882706053591544852014112543028940086237428004229459891771339736919071106644790232556260969936800144848390717506947823346829021838002271756568173514644471038211715436009974453169295074809578464322931731538816945959409665447585313116388686148393648254339997392620899075488503724099485197774621592037526867358999907030479541959174976564318202005490095894518180555114578391075193308782991934004952231417714657397938173176260411597303806155733469702032324268833007983453299030393631822745473944617613741672769849244994192424581024390845691340911995394403992492078021580781967550995680521980815978352425738727440135981882195091964329601963689558393874070855055237353777653739504571257629977792382653681180986533698410283917918140499834338333171891299908041648075726064005371288863628321993535875512101050683072434256007430937130409241636818167553423198388231489259183166767175262573558571953394731324918965738048222174198704420767641200506127210324821755260204254511464441057147075493623369684630216814421905302130369012634949016183517865394747148640377022570730449088046983135497282039267906804976514311827177399380347710478568370677201366960717599126946759519115617885149825780454181302891076050146554622071770046824988807434294812936222341426198279373002435300978375417572537835211266228495728184890923402434460337960040644094729112776327486834321281518580152918480008017525256364855092077672240976525808767964304615634202258353461670580568234186149030090995200190673083781004771733098441461492362725262360042019916482638305545371397037393181535473769947459052207068011548841874100429198741814501483549670531257103493519720995823124967994944812871861659951477050211884767133885525104069848613674205715636530924956929943270714795156711497637948350218776355801264426207419126813125972495565923819972098947763307899906352163258956465878245363919522981258622706023672621020710421422438969618975779471938092308242977552471562463980920779439664516473175446719861697264474154162934066268857728470265210287570359308576633882906941706994844076164270451495059801304152857018907647950549695761018936623946657898573754682642729448416758891245911519496210540809072508272332226036019193697177249768197923203930212627199720793071652585411320766258417639288789510058594183612469872529806237060170285481715269140720438503274654798903240602296051922693778729227473879632352562366085971364803588885374085206920617452847015919351087944665350263047662908624455196862679103463862708331888481466707678475116248985329645652374162900445025681988047824830625187807351271578396367214184399386335588969033486261649657361533150938680874468867744897393229557531098042166041375357400678964321186579631824776012749474523188721371590296533123171845266246904179199134736696837098538523689463253591922666099760087830324819492358725598137461365521344208580169905508993975535420506260019566445836469821563305582037594902422531498488522859353077657016002909837721456605028165901216201742509882829081157587839069008302627601293504403381620370860396134566401426123366472114038845307862987112951273234578304805569490174603111572277872246676046967304438113475597730871179727565899565885275998377816949637676858014807453421397027569054175375648432641533983135395871148688515540117542150346725673698146889754081927229067611692503005108955726231966182361022005144214506690948332220300989118518540451150091891393066347088240079997821068876148496429854154629574899971212749868914550580655751908609829271331626313027842593142217112935437284431062809427338804233078827599137777337298090317404894170915377432255086591488203003842192010142815134492572438536836785894772710591046286432065896965137243547676234432731605239666278514156291224291531760538712350866365687483398626202528182085280130074215911273789796338064899296240232291018577434180642078046233487728802904702166709557882002467521418446105577431175481381411247550291111543346461834164494809200342608624500890758234929753455621102832916417486164996438460055667068570297895144973380650618271468903909736896135454469785179990775548369407078197475671347524547641113545906551481339560631092194613444268314629128181744810755227814248592690322384928464325002913235724118477397147845349155123297015065748608730389201943655969006997236955407219138885842666361109350270704196882953523748543717829975663025488529206729567633120687578853236794735742683075791303835436953099016310432678298600150898905184393426714152782888971607697012518082746250878833830710617702746967837063479943372788553994575357682253360368317789143678285891230117849279786455538268217524604525746277447784547263355157737713649521301207030677108437330158206580574088117310805000459457404921852742670364175931674389423447667304000788418745278174302470315325111561239461573445776643954294975534826151740508201756704286031644807095914967649303544181632075912169501387338866093628419697305144805011939957792730445051132371955180557812744352408357807352932343005890847169768022071804202567902180964126719265824672091025170771709824879178614881537884192922661566389095604129266150644695693437310005907958444982086667755457763703957812091475037640331750058275293271867537472744397988882556391839128092378135410707071860533229552251417304375186386641441127295588721195471733392917236878693560594516467366365767769007240283485687427821871064483215114497391207198381581470398734812574308286246602188341725040241385326099078829262370363720179853379096862842876091705280228366657877898736318990482403439658417737945525581930932022725356847303139882426492194941432409434200869492244954411091663990894591839776079744807585459476661277677318851238702517139919600366948613514249981824824457932112390683279453723439747849309715676188400926648383041776360958948967564536768361999588718565345757871651252225384913044064874606096703160784817579832162091560024789577403699934979410714874414846116699758495311762238022126260747464776329232815665806689286654310753648788838216141135958968822560715230856339768542294505794176923077895990985099680733350403675922014709428254570020169687344055897183176179983968777497004664105890095339631566268348995816434127966667838682605384079664061537152020905014187875041048151676785663489706121252667984184485968845723876048954762835788788182922459116624513167687267253404503948725301341082675849144499592730204021488218945187510232668581188897137197934239721168691349043547967075881732260964394761474802874084050578982573594971151950485387740696849822727076445239244173251698841338500544192264322667774528981189865974167857054475406986343308030962232424353256099861180389574745931702000082856332528481532123915515594155593343404436362116281322433067003954324115207144536625202002702951983164518339581007636719093154881140569172076413241822972162185294628105036089032402964509622698111765030673951529748100812885387360445548109583458583325840395610851508427176516910818309635107715245577606269714738217961860237718412891980398783937124119031332469064657635801285509731875636709688629761563979179800529502135430541483401722306232544220019832313133294443753675253100112738925941647632469723450227382499823453650385593195809016351138553792383742258355608558979091821792780917172778529702489001565427272222850496342193503054672504739102574007775756647535778463314715698902334914273673241985065229002640052299398872812177913457879478286143011138494625741572219064134982725332977456194028452509912750100623534022638794173734908260254427972252289528649461730725757239584399523258739421451662115020616185237000638787083873042667912215850438420356302319731402244105143161346030541028552000574897861866853546224634804241879900349685847836305609653689958816521778292612643527042112343539516331710686499489901779367235629361124421319529344438652693667269855949544827459046131223631242435053169418358575378832137811003546891063982123471047608265021297148698071348418133366490042141002116329521850658431673326989936386140114906923972366103541300557870233167788427652780183728871346163432520219137141111934799359246392504474296581444283932552925728770211634371182956615835813838075818966196868133297082872424699491103255634058527246806757107872038484815372497667018827442737324048177265625481095916975699065901597052295462400599282140089437561978395017945442906750294578476404385999866801099991713926513182400275739196640873114052130525816617957422305600553527092686767510751486577022651147329981124213277116241139284129180845847936260915450176477619257714191763062365174559536928828099928591369252936461236748730137943416602088864077602208173913930153278318876226486772669768856495362625532428902452540265008259947714841775471703221292950284694737548004487911478467058782274541569276796144360916142157681030757090032381080852845522743807072977514490003869143326461083956403811010613889057318894548668143247489575972543594411266920940658359442489010587401686718307677488348431220302254841825292746206143589916563478406386650952770055007170165281323684113593832728531798030746437429784756564673203099326836496960023134121378550406841977564403577656020947678294673529598662205925499543330424930813754218197802366679067761307368011750337742153543858386014318879763227649146746930827400339622396191484151596600504895093127938992081149744713311300742706577404259967948308476382923928874484759287044629164960783403476423866291235040367964361555086533285204850627221588516762208824743440870875272682779098350100649079884911224103234954308579168682793787367580802341783684210263643741769033339967994976158975126779922271570765388325579950405614619540791177084741534707585891589507486145491693355188491363766946493434391996978841714969919079127452168860793414686730767674331969562660513288838950918461519778702622996815790901570244560696784667934422792594717931026317489197656733173204923220982946089692680403385850799529176207138911577216435518663405646124756420590920700576922803584412222979232324556812689333575107109045329529238722883473759240580084305042183367098067306341725205247285842400248453402734830706385215188066158807766716222807201383664361562869265350444519163367710625346445962364155373419755872789552261965600471532376679742921482256562533720122728528950339439538043232113958362756245239481007640059848046989078538253202055277627428660620040652862670367941433238582502402550001588288374016455383241643962818218247555506886418894665028705805972878959087276021984945975237110529715566451630460565878664204490905582013268292484677265130067319387319229377115592777195770051976345186351996248500411325034860122399641646094997036034553996999246563218875243065327677155704876501233789113721003604868851719627869163377922789066333125609373878488982750512157978087962027874072755900202661625839939174925898502848739972035517200177113226986099024225372383276452110729104039737786570095669748261318625856939353550242216176251120465308276661339407608943785783108010113422918529538046756959477890655028277891921975699649204514553558228604037495639066091933579317530563961893159663492885704768518175309911876325690917254993903745440259168778990297459218229447156688126508671875116342577010554232733463946612433943194045231902467304707913707311454418881064016535889991981597338478679131835761140312970350699941271152253586007284748020246582328669134500272344760143422988377151420406000053197135328196601949630115891795298860450724199402622551784014075440351337221998382722387671892450682362309520402699654754012749749815044766018016226263449473203201742864870280751935436171556417577546788864769177838183606726170730056849293115442704765360167185846827328532045299077497393674210202106211088012107521567041844844847319685098943928060600752048271408491819465130334409185055850485075439533726214239109455550531654321589595715080219086119469641535242635052806045853635475497355076155515685833685410462922418055492445035671387236123579390633428593662772287163915207954572284174197410535831211281074918538132606766825458899555377549577637599128780119485925654839232292573586488587021506258497816679818838824901959364716164325388613785181840747001972752058267429958065634971329360833295686259496696780772082899445309694194331643231878077840736644225674045624268249612757845998271538886733487194777170510192177627397798344366041049698226838115975671234538149908048228318378206280296012505774081129045019833724832912011883964972817848235604705002821330733185547158864437539080514698128853657201856974596652470032347175207949097053636963946314442994666791384123369476764541969157448158532445974672500594914525504874500564295067291360524370005731498783489244669481432374107924219860419434390342844881579609075596164399899457429600324329522775729121519330606953827293561706059746708908645642680292520712357970864206352389069582105906371344184624024412281954175419409830634701088058455678213740991501197385444175227626370725058870304334902989499354356554433663223595496968332946108533540998000538441333913237001519332626023307597920621293316964808650127503928027789658780677836267747829822949603455309564445640247768635253023673063437575211814013913081137966674227649137788025551224111717289947409351443233802474948096671426264108939332951786773047830773666798933485036850472375779903527755888806656906429078281503572010681468524111308252160812129128211111529634948133627830797759241818478199865443533804852020736480195237904145715937783080627525585702601947131659730629113466904781956979682422757268587584438909620779777039227335791746609169070084284002827171524029650993507767395487475495334067787824258047347592137150068533842912368982109109191411878914687687508845260137346667770607097251116771936366708501929899023502346476411925769126586950493343696015180928458154529987712547823692936848806405551330358064229181491925050569037485711612650303754108897464562043005124122187289291829882565688965758460014679737487363986418741095321917213535802281733563708703452406306302961772029746191940489269773299231189832625577348243635909830386561343037191676536185733175770735682052846887681864024113674484470940521072033389242450179513924579539124656066009945354660248931453666816334867530442570308405428790957846390589385804792329293992328901481525583374201378161980837147092135124237834833142810657325503748895543279488817921751876011398023051695196047683099561987651074169084013955803047879931039908882775222425033983837552118761547963985895478222635461604898874517621913604927060405309270518661747963383690141132456579580939298771392572867557669923098626194177356523393096984432500421025563804573786775058718081949307945122058649076984492472644534477885211521955362291028465288758081187833243012795538159957495401495476818955605857518470018802555632985980062153111925567026899782297892088124607973423321204227338209539720759633921673519209158080222613669219463783701096915437244062839165531492563344481205386846812912933433579001008180784949442040618726747687383539376362954781474235602733763998273115398063844605094237004270536936285147559379070175349891195543506940654987223470608009307404168853249332779982470032221975310862687119847448316015769695700913027158954350313697730444788172858008291092804471002207424501023888672762928626259564046008028615521434332172949760894032003088778308211392037042196728289338498806112690716112881786881245661556333685761461379047499174328188488139168651529864674629363203565715606410358610826833979920403015670726387298912666961534291735631238803384484479994235079316800687742467571928161075764621379274886150424969237284164838433062425931453113738222174010207462048775475672815720511651118386075920364554549948013436301630681012207703550697620132285640242753498210174023271046021396363532165809187464731880446053380337354118741665447961344866581923163885999057694622591582669239598167936008080900707393670052855667833284001630141492722066831469722056368771353168935460417715497194505335143349180032591883847836163629480202475306018668293889954138957623002052920528675120054568489303492055938815751850491897507534074423649306511613038218568451345378067464582892971284275147926140789606873679770074221534530225454131146981238192034709634026034685475376622566138449158399592638461164430956273113040343631292549986074482830778052706787644925025465133973025575362429773444454111053846265242851151233099861747018790443522240619804355762325513674324021149784774454011033351411989044692483775074553430899173159932445211570413733534036892978867758029617128278233766258206219529114702297921386209261319995292838664913942192975657517608587679717962264872296724337703492012101713370118462851875953763164364556443435527054954841188161657636227999899133598752184972325709509608490913199051819146645678757739675256258584445733565573891795154102399652429283278535278010662644300461455505537262177895596876791559891393488722852768072347082154746398648435490816185637295638651132081951773234994024091638002720733444642958257201414795754113387152577542978287864789025011093912338102409977839102810536706814433686249080441195863364655276550958663660797964146326872173329068958314225290740525228576140320400602437381140442033637858467529689503959986414632829474040272755879435509210807761793478182174384550366797368394437046113474173372561075914123172846633726741228523007428413603769954684074900655512941765771508893133641343858257282754745420714127018874509814049904174711201440629448422324501794479122606194342809642562719878513355439536564434285133289011200660442740861540761667721289435652379483043483049410415701429103010686307143111771223694686600645717715160601567527256328245554163216766408887705326540805911729384941608810520111305322677289357698533683884308537394122103949506312828575430915437826985052780300502803613800378211333369152720346522828983424385086975059736611479609494054346651681313395676688909712432446038956561099391466853164713441478212008377084210183258554766205366552626087102234964167531449173593641623085342792875080102551581572288236585148695332560967164742020395017892673507815946895081714734160724733726774799034115454088612641338028433953614732781770333783344292425758410257606940130589343263215006708248142003401126305186029943965485811378174176106350442485380675613437711622009281627956096165558067054719477958659641201471737715035604548085274189215147434951184971450491591602503975947293365779034981216419171630919059557229367136903538363021023088500653594006074934451626385389512004489941729551982614576838150562283888507604215679399788159699756036327377124458387650957395458851593920060878478089003631763271586577839442492810856294216007369882956177209375762011750225469184080228702141657315655461268554528553348879316163962387976750654550731175587324139784919874807290817960750637750523842189615288859189550135695481596594721946756517556293108652942663246458581261671458512244785102716638686474096962651514098677673595332954315603071811541257334446128172648384401027780677054605768222528061310912134186091406847971151306678118747143527417685553733783592368674459372178321406776609890646953287331328085429431098990159481639342610421462547957793298472668301770453749058440696920564191028155473933857896639925021022764500387652956825416519759882011903170758614909279797636563449132235224481241681190799469413193058678512269044331709022989784209079515260625849288720840351275976566433986443267602018220889715007758234039000584267335701001099076554418616577964038102118938465742180652980597430346128327371759617285472036447892495591034485612069041141351466835037817223313352826424503023262181321889934376146806518441842484237795654209972306416117119237416016519013501779396218535068920639083830311184907213821151151449336339290952491238911265926956636946593299840909090940669509329295275869962732549957533843472155059506225653924078631192719657674656356312745753996237539959426556084849911699923400547425731454717316201104548253529207142765806892401592776107801310488610255202714171599070650216416605329244238153584042817057207023069439859155483772231364917551427889599626020398132635678256260910250671504302319587585139471147870444820341653964929011062470178916167772814992233285711923911351219153953017832835279819243951438389766322101871609682278507356129304387520744264580083948719229289531552298095999170655567262167452398620599966924034072888401644625856631530844235016671757265169420806060924840394725307528238733180203033080931719132684942761632988055857474089692302995467362079473523752125908479215234165724636904268378077901418955166308611721166312671825687156985110203908693401210510607651890746072555582669628176194975297229686764235035275373637353699108820166756838026899418373402253768211200004060062799549660905332624914697710849736993914098312012868484540802954564191037039067498330023733701404583006630045448726464045021295880749704151921847834455365717649431001843142589863191597119746390309035222982977633356633158216216996773848567415512056250066547326139108882357908971927760980907557512182328287422401757513698775429114098303507304639863717980384043636960211694764168781856481828744495648176950706174627081678688693372967666056401655207357111688883319328065739294438860156916642080763053000077417803367946729940807267079237042271249457218146512141320310700325868084589511242671600571458747558043958892640035047132654447350347237546738353161693523387407330122453008615558125184826873836425044864880877558784782667060163011249874801796566890792041907866407421016667209082671226692801574098394558027282529792545124784399476850862679776804998775776393447349248164182698143841926513682364938353943343862704913770164919576239852559528414758121245331341402901310576795979613114187270443613333803952138983374955560929924082020735722713115834964713365218985731551279385852690110888390208725249332663184464383894905786106685264291608542538975615683817772174724155885421270691821406984041164536471241832363522686616563128126312687334203549072681022170336834499167543017625544535395140267061770069797227890092526686641137615344814579402463403261882688931361237757160061763003675757621044298650720307594421386201296546294528806177360603899517861892724954821929702506994838172508093524609181598083432973949162137999492059375735538877916871226345574507709866848778691629068367338916616610505202674965689053896348586564384449399850014262944678430263560402524164730900138884601448524756322402168521111126781483767466245960264015774800779870870847583753545993467954523340677944702615582651406472617137296183247013022716373117267719103436474775265929957948080711544844151779399269508750258405507787298375984172209138491783758476316412577076451240697790739894978776218303378487374264234554753495108516597499264807487903412586613706946037433146847703019471312982575274928393270555672432132804294095695293216804610575118464547829812227409622745071124883458174660983762566072570952834098550865706959699877436202506196133025858445398484694188413723155456790231301733065556209111734288368452455996429358484030342995183226910732011071592632106397922135764075347726687323204221148538595292048355311718311564441379185066411043886121037100191284101982531019938273319008606391755252676477643000441743113112239991317715899789809855635802816947747855113114366409162949762180834865754969860112179987799906826141518298981732336644285370545684792629682301671141524514170629930684276431958322364016537597072982754369029044018431998758756424177447003991531887309156377915228494661392057614966819456343317455115907577124441599718150262354700352645065971407820484399762410654498252447218602228276885499401065159013466102220598536725825137610602426838353660287827859897337033774094049621112815898960829888495979317455791901937079619988183968758747985137838215690939820911171265027491174988326305977123821838653297513710549458146266846240522236686177591852455262084709577032042515423399196787945410345985422037548456870082529294667154034954637359028930788097500266469476967851371011587305638010998647186419838893136573252591651679847315126896654546257359917796413358910081857027551983243722340063264439841504686101888543924256809685083395539944821111248033651607044893117022705383534166990213794972970002256325874618014415020404133887684248897961205340099597072221268802884956496196988001857939537221270773466086267991436613688290729520917416455799889936784285040582901067310102414944205664637271436957712173041253171862814306385919482295621360285582157283898895938163668091649009699913611419981648222328355582386351890780161475553341397353966729971813746517500700558861255872737736575337622277314068507652742221111471879988491420624073131216592629950661347107870703691660642771287681740816872061331367299882905994298433169787676554125044344022102432167365616308907391431401062229583203671551299528786648123007862030068412668745214949435988648822001550931317487819465239969485855621067448243048035901088317503440136398568909889352541915974707007427354941524977675914299103018387237189705233722236244363307343852211598178052626867144698237697562082324241793682722002502187750537928049757868081213616310557231090086002126079823123829807449311079019494824297761455382917103278696363251169678798302437456673765401322193633363168576893357810088249544120537548232480743441726615741211269857237082068662761319587023435396896867953618870122906659263695954668370801135136224676161864544983234834772531647212800835476276135996282061150251337770936965975195254105252435004029950937252454465459221387698634989351517353206292561631044878719455990728725691519724814163447227801983915894270959483086090975348427716934533055904708468539488886075145171696635821868670177691789014070780498041311614711245205008609593606680198473708861566156711833547373864174057251439934424886362705726020017877896998813262645312338952872018984895714354536928403133021824378124116938673979432064314365672999178490898243821907430994619908724385066985750956302166268380392719226731945580013090694456489241088683208637101085259226371929913190181341766901807541529825628935295191549675161915144649407122515677787350523143999117175667892381528167729049623377270106186952253305458498293423831066741807031163767259002429577452208202449945208069740287341173571251971180550378869312063252002090694044119058707958466207301918754287345481479907461145044689029509340549174986924785213817787649425753730092418419494590302854342493388238664259248040650669751676665433770851524265707341850076233375652566345290379673614781783134620555008126779986006234741868683111928388157115805638567544972202414001554481253406327755621688804257220707483840183035041410211113242870306166346141859243009154696232821753637098300357183323152719985348062793190864122832694822747592370434954834509260408907551700845942414196227417193770377908815424497733153532101083551499271797001788179811334015321003770557693965422955262068054506043089224204701108192718298627018560245252872390858890645422783360787811745970505862858678638245885377520487107539277927429884711308486203950499872871957017402025723133441879998176406110911852631832027796881506365134458004008681120831424772005499046634944025299331652475949782448571528170756047540765872261476193228875842562773234435994635193215681718764965394602402829811815364133478867833339541815421805368795851366662629392794581258978284259529052931983945702305792358345969296980635469675562698356435994225233389769072335910227965953901277299328752936641603848545696873516295200907485130322545873038105751054112029550849011309815139428502757593828576336284330390189875334223876181528114250015252889721767944350218511078683723768611498279502409575761147106340800449597634395461858616838835273866771233485940738745045025976362950069326456278576161893866469917264040831796940603507260897408588780812452520690819416081985214941453344256823460414122439108767206357830128372264791888303898038350332714926619054282889965495361591660421468924605154579442133141610615936360580844563296819237529281729273302386583837031820276542812023937216367103097882690466059646415956071017898730689077058416600638115232379685216404538381405382344502610901624285617363969709666173498650838084467828819202234702617755806029705035598559538791481041526094317072857464594043449019304523176862294150741231779144055785707255381079603407648497954220210018346894548687614542257537269028913266779011404499757762981216556710983887008852740205494824320422426173130442483586206322541473264203872865628095768326291862979159846109953559618366951429301085563564437617884889861277387827985993358214242231318174511934470758032517306884941610235679750294763857847098048504900336047131759453320520737558318950392648326737393811094817789502456778419302555255517094267858404541369138636496023630062449348660125867225907165632253072545807359758569002355086402582829239505507722793298445189710769699569216991680572611548489732709480636428777961161256946871792188548500624364282753076006023833323646519309201687500434060912884054914514609104079923063992279155326754419524400126765481170619737904450983177073067231270203808563014376020821841808027031559655607136722066914643713338850852298131085684374202227593940987120378269522454773315459573384490019002816364108240579625106279250892405240676818103815063616285226823030632628559998516816895270980417781014175781800493703315713285200724230465801188645004177684570179550442271904454838689288227446996520490178720537125898293417037887108108333137035173018927116997955279068796574953279878075605923327753979247117960737126253513324973163766794842878351070903274405204062359197016891174333864673288018815900589420038412622994592948816330453344235452788770992445135281247382334716871526560388721301046673912559523198683575931182581768626557331245870146511680548317462476526714674020503527939391079076272366764304108368254860130466288540158773520427763815751152103426078403713437357682234776315921796372126773568554508588599002980472030530664805581570635481954359612469756257241499706662083401404848429531312264686903810113592745372055646573772632011361252866746808393196381621797191244051262100208287838910322246689679336996641268095187876746440855597655915289406970012406471818624084631726062934768001657663222114606501999930974024464395139779846815885419083303708611970397919423080376448933491115905443058300574398750115557888446053767235312011686964414739815046069774975180937332983515564077847925697035536087538899078423741973367030700135644038339981404722930827365543664884022745841881200279898722294568374366993171101677728798855232967826170135746868916854933986453704242987444882719976530831598514655443766162459291587881516440951513607306624488574518974294709539924581095176722095281835022695854161448809174216814237471553278483814119464135145791763701713995253872574567208760252411193420350720844302821820668114921222227955187970322504977446731580676291520823281130346221717161889436504483618284011041684708059510882126193420699620594967226030305726376830587530536584853163243883896365686806278253716199118100776707989801137021168253560088995490021908516913022885786281137045625382794589594998627771378168646123783039049781527712205873728270118481659553412940142681205259628142922059234460866570524701886600920548350469436959134755187793223217249735157178926835736185188613406969469407673809338752573057748928563637611591239453775947742635156785396037444808612473522870637687294313002629308552799014705802749973868401959666764640522216147807827390914239659934563958700311948286999516969544728526266688481318381449649841963978421193306922199991480676710637305982638420405339673319380484686357065930084161656635210690671964731085330132837818655030414690377027532104808361703932575322777943725020224112401934894378687065904721994189584784916220140178461571947757240459869324770556745288104990738696459645218282133730347032993730529146384093536355016445366656790953687595748588089461344975971413709817679387408361703579557239632880207841037948199342084191603951633853207574498486302377484692869782172335932059626260451632467925751625021807784025440328799404452364307205092102268639577335791443552909271102169052822241703268050982643082810734304240829163330927836026037302322793715149343400699641450019507508487563568550086320397689607965842302279690780008413826665753045175603749125699387346496626991644018881041415727122246280389946077885607183333620236915504813435815934191136757333094900910053073549824309899705131761424921512308365209988765222101323705484233715318979662110840522642144249888158264250988190211370463194044122326695677378662562715075080060652604311713145161650672623131792115535249566147171528986778158686280646675236856534709493061378198489469579745848263561296357084143079055548770408973618514125694612526184919105250181051480812622597403805172950643653048234405032885038324108744983035247647348318334632782980219491995404072602003720600608679982333063185079196816407343238956373288686170896068055820303499388561823102576748414757236092088604497519414002474262902422770644808821365861405241180771317250263075970043846812004275106632741412804754812636119150870980941394260390376562372975629126356042160258352862939092396071717421885895799957713417858262230599041061588445702436200116852126442280728036973603627031183729175696239364515423341008824147235812431741040521258224838646011349475791112999844692496187284968287094972581252681092657815854063250350519735930161557322927084548368585716092035275813076287779305244862749691392243132490575488632232517897742643950728543067952568895106630902669602222448116456604303749331159927352110511427936653886708238201454787549598973634424918127437745407924287263008630017101640883049678225141838154510560000696934160996824636123373825102269525888247815833655846454613780466692791348931500037798029795703919058018422144773025298188116724242131714331124121633175765233703462144816403246607373118691555021670137438580134082317381524885642736244621370376273089922934369058403400663818741320293793593730711514101462355637521713658423792430478246143115753228055030668563024469089706708237636711567943195037641462026428275282285845649166474845896906487081530331718411345061096353254429294193486291182702506105796897673516153328680787904874239786306018783651829649672283197935736671122655507089762764028722388874660806427326724599085331711697263010527979389294162032432777088482003992599765831519776154169663090847077180291135656625434875442130235447937507097750758322161394662892899083613688225133041689615840304491749976269520702363032301348093291069064397474376372980784044951906319019952326867928941989124262312109034156829479505224090798006041161686052047159034495134154276456512794716370607251466662050136561849222546198908171428530778944898188390731786285959177966325920071701334708728486999047984494751797281200604829575904889942463749744521491684791906675059841012147825593361390160893196066139806212110329509988423735412275071190640504833994991138564884450033889305361264208753607219163278790917070553737977016036172926630687226468323596346482801287850915455269913545961750272952624825543270179237176402061367907488864406814363559209976085643521167592903987868518261830598750628731074184492614005462575884684114728874415289544063744963577641913940606822858631548285854555120025427133028969057405080750248157483237917466874348216158714851477678300058433159519933260386571100822572319923575109617588122379535357110514219942762625279451295570865415379660539677349190781739729997606007309452067412900372936707097589480078734094302944244315911519088205431109569190292654910739965739589998044291614991450021120574514556681375859191812309614171511699594589366357531133223098440177243678386413467928267325261037006287054008189849020131926271851367751814755765307602440394135737498605049254704947528463643241732613031358762167377633305947097872395637475427536011470927841554452737873724446843329599314302558871967456055578190428072178714956898777958473844384646403488611310083989389934766050757747494026169616037061612017890325453929167703609687934755136482743484024342307877622466124695853123217708519856138822192364517195600553077509658493600209989233633480580179334389096344016570689279775893669712626756625626391470659980811728768664321241765301681952063390092486027535099002081452612043812366364395815870783610030712854576890018756418263868840037720946734304935754562641215075388043033191587470922192044790780500109025277030904970558674489635129595770088523661535638814527070910745731518178894209817495920715616169501684919058021382380197889472089400520091365149119136060793494970712518873974497324251972417385018023904623318497350071112770654218994970534577498283659127760262152939656151574023928092934358385899457187089170023194492780334089421251647562981710138243889713273919423889571667903027679253103017415956380707387692385047561365679675810299785587203735043687163231538718912971883016971628973125114188827727814696916619071545902566351273635290279045850048744686454198854286067866672661375286467869994682375208659050298548619201112790799122981332290475490059503583721188344097655446532396369113717722831263807204282480148606189707429495370047940096409276895466224018089978282340822401879484446073872238423494754219473847270365981851075554425931772439046464052297319251038618257327814061798836647838769981559308696718571187400113734158241336994983777046168043610746350050231592565479121909829551736089877696876410220204794962856227528321721276891829070563657814739334520963066491076404171667815938854503944584523194561101317903984943184724115269188011794726303968991907159348166094708946713976982121323840600722549033010694764976496608147786765547318868139028162115551726415745575746364819231065907270524700772076854565871119159403148356053699775467661987422502121276997686375491512649467707128786473864833600180843505122168757742353504146944594675618289114114233301836042327053784821194643017978409518069094303066014796413498017827719540466713529197559650502868750179268599494844415908841629897473392962657074895266261113320901282824946257903220616003854400736155816854539240992404009523919343652745889813803314637254296520484163914926587344426322935182072648144623509104801930295537654878610648633684737972635923273787082309821139537650481602622672254981687164153359580667152772490482783018470766707534466369998184507775160509081096976764929440947485371306500242547425576152830361442343907882470966275152108041508176144708737907332348674611585815785864835526070649905742216935800836654721990677648972283443475981507524460353710145342549283628941190718673843325657274776918087136163090480687531537742995077256180030480879479320655537412421701086551069526749447665304828240886390695825633493695356509417920782961405270633508089744076514862086670058112116256964929313793122310630841169573267769281400423793309716303476491350750624797583191627245005775841444196238644565422952608707320294702870293870037262249745449198671569512527030522899059280864756134037602583050438065684936182299248604368148326646904007681424822415984942342623185595930615260827935758770345011253280740973945766838629195059892640698568808383513995194311316279644882448411170754262490240221893467916129061881505737105726615356527007804074940492426332425493452091727806410163310391229895654138041216055661472799402281620376853000638804593183832367770350632703938963044527509097989245273790328533472584007527895375302374101556625071151831922791085170662740037713177054700754748001881540912825381320585355897713320981334351947050902716060468322108755367063209399372887625822262581004359415931280959921804538982081320006525873101074858811506596103052666031304901225980507075857321942164934146468081212763437901864574988488035907529536343480362437115854796040057907742189126963844376073162917679934093292585518057916114172685829560735983054627024867588606995631062588509546132015740995711218997195919204612418160456711192266787086321001401732689961859331790367798986848067254075504752295739051318489102218552809062603346382511047676049287084986179761560492149101625259398647959145780162146427602309915963649076254664314459893275660143073395376219437567481333602536495690543089701034571547575631080370676492622751133244846099820278780562394025714635357264178199433854567096757460976005823832157278953193526563836767373355760488643169483988978971343026920912705995606978381388852996670239315640974915939012143628297226107255749931485988604118331948024384866321848801153617910501699293258144624716210743777619794460938612711196987462122898553312055093577871757464154885708404786544557650521578192488006533848394054194403399375683109023462244534499785377534032119262572210206378889705397424264019680770783209617576385719455959424451537457855719846376629878461794996870761382259326258494741037239412476030999966552318123401396046759441733019222953865134645673914665398410293611103947540116561165755481200522871309190973263445766429481254956756830564070569256486922298135835413067945020820477803276390631610975444312058601705404193620555054169155022351381361068914335585656581681370568126521888044600567137065490565842458826794592561992530025761672777744049350518135674931524027889265730092982548215952084598951908870512587395276461231534061145380595530880900048346928622120923776269390347242816638931556836545921244759201440018667904144190998121056852629568650334083199405188158294747774034587414687681651271694257790813441635916321474943144047130499010191335557041524381819992836572049758892833298755913639607491574725645580717751846513306244389307395161260473511181662175481882304190981845182147922779824563063911318993767120845433713848579523142504080879125764474045168548814521622535781107962235577432951850543597658258729101122760684593662532722523791782004883907639216600075121930330372607275172437837946893450046106759116674708627731797971879038754855051029594882211444829260563140777322065190866137372523028687580134616255756637853158249488924790070054597555096008853616157865141633809823099839490837221099697340169296366705671805442437488424845201293570969596124070556083974117637357283653150830969817688923018866912347242317901075260758145858801239576592713274681775262420426969854183059750519761056289031600971405652643744562204471486857558551811054583762230783169102533408911579433313317775027403694359369739944457505835917448721022326011962196992962253048500362799440149643645568731061684226253845766805598608756985489933473827772216731313267068225315396240711592522676167282850752487465591642576960526534379449433993417001316722273321646014915940125094774573893161279388522377608927945018970110929032110013204153295734068731097146039310179179830594425636577824757695581846100813138267353576947385060101404549290431994209048587551990006625645660950807236717104205568640605751878535585167930014187887390710767815306316591407112373999539079955301967455993948784081235624706269800265354198699302649385673082827562686799181128501025903986435278898377684651399902127121757588714545553329457109740031403296415857437584779714956641472019894119785086664162930049051008470568595371284178021895708545434880869618748178324349709289952744763820158056852090379544963528111430297402115393615497572519800522504198472872811435507489137696380588798541483310801040266256754037579610060022643830634006022615895746593917322516601310682653063959295442385911275765856620477049837014724334770555313753312136762098637164729431504621300804759060464362765676785204998720789553709486502899884078905384632414787486147014920528644874255891844124764861995938230007405026248291752450824304573926859431303084969070976545646027111751790212519595683442253489712772231744050029388701806920420809428234827853832603434584627382887166486692864818180368344889512325524948907258836597348399219230589897437670527691559256843211844104911690211209356462114046705859210366215775396305758369991637540812460413727336753332965025259139482743287153850362094585619104005853345912821090529707755844309543032160169704435516244637401135243151729624628298188485014950709255961148443123692144083052933551808355705072902740806917020188570642982031416987986293573249874499010552921745108395064347562325171012998489369484924231981384825036281013649712541454671465896749915230787900053997720982622190975424239452854721220571486950052895558123908310418278284004173227368528365952949931467575405289873299916723431839784392897700412659980636357856523397204451793764210889481216420870540543828598792858590811840039923561816920291919220965734055314429362241212406423261009092911053107614267195327286863772278813625534686158606438417915068710433708395924783238082641116225078997359595874070044670693317482260127272972158161528985235206232493252704829907978523600917996549380228920529311271486588705064124928827452332682489545773494460158591935456258414413926278557265798917818115787402911406730886040666634992501503021074915563354749108637891172769293847829607321851440525487156898924960457871753666523394050422195228712137542648048388383632860626121558441514214765806333710160948299842242266672899320755497861529453858568609789865509706801695116493272530553102792441810552524180842992485577533102533041778156101360456477721517199941782718364098059213230980496620693177217243225158202806467346433209026464833290798636477370830107823676816133686303766247644356972970440948011808032042865953943872009971238579333814879435957192903447528678002568794442993907504653203780867147445637858283710758064866095682005295138596840338818069015754703306286142428454826276579928761031184516239232965094749820833571035456402970117965466834651225534400686084296825232384078047522141226424598805254976553866775633292098041668863132676464621860851828901391272583958325739873608239306602227392253057070293539723563390725853436662996002603500787760541786777480984331643715328139161541378045749679457455324481620019471243682127734366225646690539703772215081841443830614357289911962848513364384833611786860914835623791438246765165745116696090745695838142237617837927122063309160740905304959356861153927706220331351957988671445456581663484921511632027990277447286833101898666259393877761158770085858113112981422611638295839545451522317976781715493295962348351215437194257904836479521596413135439169485628589325279838549501415545505286610583153021386153144966557413419782436161488406357906501295222530340656168088235191009470544929031804641623735448969355078190476677417012957205969727782341004615075115962411666065046934612478313694175805669460325833819044152662151557687366134323238496133386514483954263342756583896883341129816516448988828647304086540630029783762213576521636144886141645238398774856816978573284624101052337266809003641548668803423295272156331366030966790684207287226686837230950983901338782744654489137863957813203720271305468074793012519333217163303431501446923094325835532014334589454701524148858604692826862998001084063138155725115690611684319817424839484024597859825151411294166227030709664469688683776720920057869675747425869689579879745285696768842074941666030424225603414880383322786977942262753697905051817381716533145576873066590755182620524242052178003303333497496575911728494263716424719862257154798282752304676241126393593085328361964109415344306525657358075889495415781696687808639584474759982610065221506722013291448072701066807232552919848425774433264943560867227302376345024743121921821445090646622435486006868986226431234311018875269256427673128420999130330495807393599382269289622226973500959917678968315536826461753367108959388590852183925248009070981253614469535840262339570608434561651792849771547157443381300241728591098170524509812001816976747482091950943031259811256443936276772702190690713980745542662834069914794340884422686228523407394907953597143634514725453947908770746762695609710127082994270710252761702864689568988596748827542730383259376691625913566780736423834872148099959567246336177008034808739257958893985037212903226652626560162427907917682169511977827161638478287679445642850977579048621664184425054672603139234195453822628411558777281766886338515371821640101741208279850602222222193810486615623909828229252948537776167446108387836335966913175021844059342238493836439187628311798575098456289162805153799398686088225049437920281820246722504962224789256687193642462607467536964136573579295883658651876527669399906652320792809276091816459675177262274610501753899034421515999530951003382635168353078500204807320223178191811683203358423364932597460538938329568207992485063222113781182582854676920618016441260825692937176979094879173683513309947259256046571504221084060542696124178481894428572477871785437802341280411326697746207117761349851246274841404732643708738456598605395502869945263614572774743813065895801441089278459172724587757263055069976167797817236311905959953575983824914965926966594095827498832019122189887849993047771260912619535705428923591821065234328450503157168448617178849936063170867829733065305958683806216201859227096326226015045120026121796778984774301576572699288066130958036347194096200523332615995883751129047041842222389971776502879445059126438478021580506686261838458100142373325240555706397045947436418443878494079198402078490791265655028960584979794557932382072654194743559992237360340348232397228295319333786271154221966875508644011377075561155409880643100508351459250231016733455611689339156813692910850728520255254046327027490253853637652994548659810496445479710710767584554009693643121681022690814352283472854953993002743110915951645820397674926345635134186195013897533543646151623478805644560248501656608026122297555512912049811712577014690245978941320406712893750931964944355193078868675203507225559134051238248207543023054358784874893100457376915968619365655285789218659082898135569079907017460062857138637672383305866389972206519258271703675788599723402291268285346312237048981789873110741403244843850982912640419813109152101263500218518082926918176662038026149016347285974211409377033747786327472801032010615287113113458119535641497933178760872577107525125437199907435826938178817799954339165217448824742781467096740530266976455760467896820918693850705569033940050304669336860870771901262256486094343426594867412373776006899427563482504148024095484719069948575780969212631925470004683906339886026970773060165074113254334968740852177388769646192730539864651674629751814064188057145669830524371494182332230079142030953210971956994742181172589649065198901937420854387390306569008703281161402281035839214519260246206235968384207073813044706573032327085236144784423176960388941418376917192166683492830906373469008095035985060737715299372240683616778872978086963470232029226396858535660375392238921599236502999468301842491709572652167948970215670579265577814336794175653677074633994721762715115951511201538293402723971547455208734082336220316091666815396881759894003309703082520368255980222113832718056293114155769975004477909165272451309687749597200085387762627316959631344687832332300179491477613230154673760394597958656914050755978701557258688140090744455224690950441728439518766916296347356166440166440244753494928920825226093253868453010568574907285028332514936382183283257232444129461092974020428147634371432599730516685157770797076910455394534503970718927005598706214322526259813867318689073947616445901033859772379483933829078933355551271856891476512048480698690948443632935959364160421547720119892359836195629163488562768353859266091877083393313867560717630649913778195762242930399908926719739093765501304746308377312486453679004036807630745394572390986697183417775233798500793047427262900487485729425027260304713217855916691257434300149862790117347352208712920240856155036329016128033905351982224369076794026592911260341615198149695638648782457149280226137631597760083201494986617443411999473116331911789604437471586008951356973030383617365733205398548530456043496400304146587478510850592817320329100498235790329193787855218978226417741824373699779719741282388934477123941363839240228939236190719265989208578645234035276748521464338710951114193156508397649861024467167145883674510614228147476187386143561644811146537548138128145352839821947149400656937516196561641978530539707259868277672862501133049614551673578299716623447127958244838641849710043841512263150212131642654904468486794755008586040569343138321733785349252337214955438024248202754526306085176850545573720655883387691782534901203846530450637705955939944481049909493386709145737544629895339712393267648020168860521511748022905721940033845767710978727236743719075272608350325315273809878097648809448293112930964307727235125964670720934360666675644571609575450909307656330715721111374383173591118169506964870144406169361285980000766436495159123336934567798979048989883475636993164322021823978897146949539558852568778890127495378244160319174836016843356399629536918316599725008013945095830829787144424449871927794724490818761906195808642743870111234764381088490389766942439822479901036924320463263226572563673981956738121510327638215839959610039304769858850074535181018930526600526649124780772436993231394519969656371602951941641958413708844947727966130384799423183139502634881095041797176031302511720084909769735229698838223188976273834033003210854547612495332929237140226522322986018146675758867304860867251831327916382753566155892982245554583660442997672232123830003584743940034858275406645817176566528951697525150982386815262723699396300447512450657918168393760922095733177190918883320961012785417781792378197251797276252595762820894176654821645853462534425175057407477521975941166694463034749280454424917512350277522902122545153667967168345349670652719822621611536256914921580046712256496799265114873983304338528507939181960803410205452034072595794238560075583386341713722533805008884401971889784511179815891898394140353872416190115062983316599357635544629108009266014235325325555849608217174414340137365734788633583813918259403486033394791669609810990422181426048585030152179601127717990671584092931422129002681678880681885170289619993296022535624716148717199811910017296850951969318604655696199694371593762416039084140212551117298045054087733868623831997589383348501412479102094150167356486770985137801534178171747088863450535317330858847208945344449569839216390513059577303757759688245088121998167813187967251323062341660460351020226149254775160559753799950273514904714791433788034146557811438335118063168378727332030314839409912481431994618031316860954612149092950026790703576842049850044545148220128331483675781118291385612394828121596171444192914671717796244526197629985676657998193636772579791205886437888827577665405998683000381897100884496318575174863030227304680614263611479269468670154845108133823521600129001826140700301382586597903080488206317959409147415630390611756768887229754857193852633488745382040987509648640767928700847556837591313898902168765930944154828906431142285510164304625745286335764426758431944040458108553131163708806377944231647844345037005120889395687245613732777763658866125705976391231255949878075905806808867485541964304425659856941204824052524018929512687829904940711776326269497282885582700961204573761915732223431434086595669274423448903398099290168019430579586738884846233497963456570282698841050215682494167615289912597022196401641770366601502525843236295171950767759796863926192985718540744762592484501940635997164486719280468911870857807296834464988345816257570609887179150722212892914621595800603443654446190081033709439444947751720760276991675274261066404851626268374823059255074666709823081280236013086393653600080143720315544710764065469930936750013061023536000333934083334022520907013632506427256791432222799749889570941048695386778496862001234479293912639832560386524683579659814592469543786780329251394911112800599051371840247916863833458966645810413421108060339628619570905988845968561026241792644805517971896419054883140774039113035259889970015862165248171931071907138339988592619585044004262016446698811344590413005882155783793034238652094746720729465277379257555744024365187801292879783774482673698760006842596786154158472424105917721363540566631299766167015385469018830341903812630508842687562251620750524044714082348208193021405933885152172387523544403346105412119290908492905380259034792888440720458794178841883396709326384829044639763583986810381203356379942596340513302607887924639156808049290494808116780793135665611747828177494312349601092060223827412074259817258959157451871049854909520733872236368572561098081701935993887926977029101051052069542003675301613602572614648340641163699298386172332027341289219300738540381144990606159953606167486163126107169738477269187880408351702173277725850819970421307125802857097445509850738955194679041318210233678821627532078472133870799384830511247947033927463388217506450087675364567717901636507142394204726553609210784954819248322800725744727817998515256029291490355556800709157501558853108211483759059346600317074279588355301727921065791316370924814475608583493354450827781317226125000139624838139030694412567167255418941455447084624660004308358267253264376415759690794477910372862678856665462941618579619745725374105654839722476554731944656084050120709839869531796694712401602841669731073979821555396318879433889497117231082694441165987350892181829417177771809461087334752422580262475970953741119788572114759884696998689251404575429270973834862357976348578919548687949691281077101904684625301531615599103319322460659592118635346376317365923037444797533052689794988938913710802979813317995748797953307752097708528674324221030620359085728643800163397986036204261897759630340126688622982562068628833712256699013603571918107703126531777695358503109520142651900826279529458175250242100866545960987038497865074690002491363462562791739735029991114929120942594819164581801370920314790969271793140472172499842862222609234966765378322140825892617615603431371154057922453900877383081618413612937717719917543860997127328540710973266403912979678422867570721797825315415655438195831792221198646312459237825990262701267709257010563926490144496809294005062245164712752862550135327131442167420213302432069306880254661968710293492247918167935861323406463709146833550955300234974671179900662163492394806075084898609802487194889961396582433642380990117857106881801048870518862355130350651161687743922208737013883340583844512105827759253660933002115803928289846972377028716313075724926167613541796668879632289126666577715284194330877851931262845130143129926349947040797964083400615663005756187784600476407657422064778462354180301645445406013491353527497762930172470118196370870892628195616723480045368722984277052254895903505318573316173003747087668155862662023799851226818027801812928316957744528153670445260458842749837999544648540391888380043970314757279075729050643834926521221102545564617968916017152165440130661725214148569989158841368314402503798201720079687812702756162883493807655169129435718828484431587602938251748469633809714855441246947563957935169563671331397526431810616807365623930383387217971328655648554812560364641365753776683613006447444945238797978351732848255591304509114506908851940165818102226296941814266527859189893742809424239440283584409322463781464373604110207010976150590793195561833801658077227509574684714255885173400247896448713148506005663953068260551413699534779782686477272047262081668154120149093964095577599437393924465873592086671632330563087132428434993995083813318625465530407530880778236348767298946301212701078428090438819601777519477218911096478662149210599532679040735230622906658119807447956006074147147759991720984764654532843591678736479415585589956101529147607291441045966539451050088709559906825824038225792434224342637289403140443226157679023049075879181615678679156475595420430725780269518077418364524332817391409188751712767608614059382926485107712422035505713683721121528274849241540945447305950502519858425503359797214362031961303460616793671329814093984321451600653525574952503204589432553912615403664084779817218967471295737447046549006747409758539241805831564385159512843894106094913361051761607050569436724776829187241243586096278999716481464620885919401658394400552087790066031136223133706800730281127462598888256713830726833456454255245921675511056485029127407824611154628246232865500531245720677473057967646886760531952920923731046171594142177482790250845622272075969710753081027293364544419373077271640287611584955871241811866312615654698584525876352412668494184446942759719732411976715539237405899005696369465207690141136955700062887569043289713929363598466536475743981886135609779734074764714242180823019431589601305316328249656028862045431011041324581243095618284754149875989093598575953967171562269266593578781489308058391603970173892766329200718599344726943302297771530350703559177992294744932382375878799640670115064407045626923819162294188122106089058295795749714090279446595936663333853919838901709048261209170722693668600367629210544863830032575596131558100257373354426313124920683808618508284848528779466023787856844977619870979987172234253951297974144167851697593384417238997752476252953909815548798034056836721587819665650270290293341747191829688413104647114172753167984582394550188200739279139092584301079967682468501400975728980688052848858918289407233187965694647992561939972523051191643601760791533231160761034589376276531711878433270333005391662671212056434788400751579821299971394214189989496685061986831569967848341169380236599356788476381877884120019075823264203095055232131934948345693503491000580542959571870496552798961893263112479127334194316172246639352349920736745326438652988259464221063612326840493098226182625205419440899739514125531729495938451753776369581290963054720789353080768130556334967904329973283550265538475002103124700040001015196895181042062593495038675759434582309137159321148782232044456183276514657095217139864490085682278262938778116885801502064143093826839633717659845328731758430381004281185229841217708317687348779917647842974678893923147445985858379867368174937640221517918559386499288951489597105530765429537077495599211743329571828854679380291974044405622898189851608785925165359614780614775000527820275907514868504290745337542752985377159088546940135757975085301619171832182272649551419368488106939770875461446481344952462360151637456091638823343001413620857402348380728194507600519751554453719566564823872680200520025070356673997105803753259973296344287445534287203368821275052884479138625343137016433315938019474056315168060414427843581772134558754586678016782142685087113124324828478781328059599130445344059024976516285428172708831375909334312294932058412001901624519449453020090316036062013101056146307686285227705438727066328503780111575940470773908914765831253942063453258683474619279412349828242861892969211878103310690982346759543351564257187037218928042694788158942768713444840678279034148967012893710387668308007750241418348332312749798692655256976732083422108412300080080294995871906679019918847334454077917911346003799540255911962110881473829660398237141370759718575645668104687385952833002765183285953706373125208339101739237220919548283594819148791938123399010379022912647210173741686801569358384936856825351709637260520707343241751219147299904289265890642876892725913314252230299574507813464249763861074366730787326057481145626987234859691888796049980326578286271306623609343018953775661139454196329903754133543039438598974349554259172219550215945750188163021330917996362566508616855923524053041469858106118841168670865237560213151972771448800243792349035482863737227405431972506612715164783294871807846931424363439454265317473267261485744614992969651866881132490916843636699308123521409797233044575715669815506990182820926778622211748168701357656567354630760846847420252471642876214700705026409705968980052419355386274580294071902364461402835291190179706965966712865352704546294960008686708436438425401284296047226567976588602034621093081829148568864582177691314178247381737093996690372555592123749054700984597952631993963914067975454272404114875500396437815079644755282115347311410870757923687300846871690713160235947121202151397982340497804454333434764807519846816209943350198956227194522417469816920961183319958139198866320719238029839370379908954767515506455175745369892107026010156175427727930877546881153184596549530368653529187512393991923424669905881712076223674465546590414465483380083943101583306186991282613841015931337515392557962831907937457781227440552941018142390730334741875466686237291119982665459478927937396363934143630304939103771933570585629698949098697999392637572786437486916560502298287773460151316774257647703367461648248014555035423563702454485949784648414432332028846957189006980735536151391375467436222533662572598151816479109021088614706661748241604054290401207066083184244562410537127449349121050219559437775336378367259207352721891926669719218688436872439065654444938526834565347105426558796451079988502706883090999415865048904414256142699118516763530291966134310418153343700452362396835533280050730843413730121740955056786548544291952283724737255844171045738278858499347450098823368839943947517738709214281088548800063698650726460067501523430371122837423758730338886685978014336190103075796386822982191237650552048052274348317512088912455674688318627825417991239759892176505117548610326874521920534101432230517415531916895524951032404904104454321461280856688110028010407027986471502332409351301838045062605730450315753630967801431825574329209180839357758220422203977560556222317075552495806955351729573432132521134590063346859583022165834106631335156237388699036254713147975356985003960833828725951767709867904406238447612267122794071786856553426041156254387225074120392177746083862779223818576527004252844161720409140385968869181144067579839845103030653511155368805251565125653497878040224155751362883360547474623479284371356680704196053026356741747938665676765752637302195140614770111273914448136620339248048728345623321391142557373010556586728519548344821416712601835399688849532625366602594606870313406013143156508254041929852233686178473410791386911733665564051724094689369713373766648441051244242196925998402283847157570162453765114390465762737197313798740715472362126883829923682788169247102333213555810686406201810652588247616089210353574591436822826595883860926914204834783340449993853040422257500547047286558097613674190056418348960912094339785868374356609041886905983741408202844915551264280819072954354734266131930596459915215738039857554365802346050121151754889604641848717694781487474822040119127176248424366552133219088678579186488272241920521719919382809157452234528343972421030455109987242688386177694777857821698197928380123107689920324700904104417557221800345155411090119851882067646937982921030972927288795577531230547199006359895816191043766000731021471505963582718108625265120695005187169052076239974299315064510504433892320242444256651350470489742849761323942829225485464114178058802582437385863756212401252898523724125863662389734674277280820830422989295316074524918112046550316977598222948708481295419900186492545869492567919017277479146250162167508326746442747160537417956576441138608024628216270222372839667508158944186473229894318816316389411092151551337640964272209265332507073079971461204645451849692790266346032598229841785295817345150503523785884234693382050971337735543486020428497057484128986319093698649579976791246829506152299828127413730979226521575127910070132095966676324471178039113636281562021734601069879753513062021320988600300296588020165188585928698812941456651516478300433317907085214133731744309931063823820589574736454714210724352079712060995303647530101090729939543732749076380988247830653458652646629003705342076272897145839107115268064425387767994011548318748710776761287813937424703247876014173181552069097756330718520007886220030780061466589170151101234135294337219222930899665817934550974031368562696922913044275153880576719794142706440504339703612001317245801820201775665867488635918143827763108458410121553505224216278977259656888017840135571795790970133271143161954434948923686266155899223797813161585019450747179479500022735168079506324135634965500913889115591165012630052762546085323285348536900552078378420433983883252530591139055519380356810873076256225925749787924111465041132516118900001352719935018745523646935230151439904852477715280044837030785104497966578027251165703984708583938895953347651629467651651530925466686430369336018711490800855122391179572740791876758002339937853066328259652088134177200415770863102343113151012402814317260133470571516067340200476361928020535214856367220603448986616247127104574497131645256759141754364801411456956542915428205391586234258918048843801381079776237319656121972379337767899996980008666718941927608990213611849619498383926810317992936988865391275358325381023788384188510791599720293340006887569062141092997993791846709742766050885703948991275706415908021267043733457147672800139330108614624350544634815623211924756437663206609995086820080997030099801690824418599484127337141533724314985968214531662288577251943333596186277368503201717875054396953289689260792476847625772927286465235858862007307157021439789939224902422979080477952581642664046231790272847422304748582885746344244731180113165445308080231415387896328912020263826032744192539610064335025733290396760708806126066828528338168965857754273033838302766714811096252918824894689754110838801751192996251485554466614108629709125571984079527694348786306876079861813111672067731671108939510560472601756858913364162735300471584848046246420336518334101125940566704490781668913428724693206631830606922739289575734155947285331342755642298301356196734058897116163791090278662403567051197531920586099883758095537668086243370648853076392277368852190855011460301340866688178911189689849493599942635948248717832141362861078499319593229140193170235920038059735562961727251812592524530784388291270057416278851046410619962481773719890894258823369333988183863104106845741448402366380591217460065765710274382430143513128195701107237843591191850489062339384301031240611938834493016019373226562395154182953706624646473399347442309547945933901560333583066732279831520729352395290350099489445809145924222503122631132472265794073649897250581080637006355867459824769393519941374427917088445579985248170940822074886584512162547584039645370299959208954455824705665856133675010484984001791013943465621029859535134015237147679785899977570739778227893587441161674354444744660971580417007597850608142857023493637617682453606207664548542095321221417852491413382806535042230535962031899793931578038935160021083961985287542228589401373788449092574078765979517442608569826607696002519391158385394100894785620562986004288614168234788108222061040089387648727311647914246429425069643277931256388755434154606340240870220606567737106294236336784199365586869889320290107829224114671704169205137448966299724405673183931904696497693255637607675082030333853212956731984990615643565144879487785770924033462452105657909517872331983380388983301413368353248700789686904961867700390983005874511483309271052938918526924981174993759748862854704346852728055595361466260588750000201697687805699577495467272092926670672362535321023117801198625408410894725577225900894553977340035619606240774955972487120735611199130368075309532557093524401816916193367514228321903673848327896074307907261374256142201766020112861124196349026360508691612187816359222407033531501812465191089538350053546643896772042577605545424667593430794166718321718061725727800304798862096144964867890621359641668755868218180089095620397003421076542316969190608408672258935370250593866148973034020547150339319367174729293076069818154998440213139199184459717792727481111949269219941356858698254963209094614702406329480407232044700548924029834572942348709521336722887231082280124816900904179246495311104663101696710809096956695081938534190817855802329923051499178197185066074836340471756878000593290919173630245304192185784153410140772269016204684217514474318608673913629051293993231115561203155136500378814280153528102119049809234782950181772975807283092307352035197281541642591442814596532933889186475121764470762271788560459608455188093684501917986099127058192048691550524900227537541035379533524466654662463334422730788695862684405514573745087543335611076115010240811712229049341295258664182450226757219861519673382584241297238083813323419255573694278395123762355695048253475913719338879320384036891191105312160802417136767028583027357094706291217500720529853841110470399373176582232408173526583840239515000971506013270662141287724304095788518414398403713229355415520663990189725135038173595128042221328141640675981832616707907216428752382768005785512060709107638368377840011801065643741062272783506512219514779080272871358304549417371677003483194642919198791096274899718365865693528460136075947986939706649460329605542521714672117980459694770587142730418692175560573756485970005648948360364803006363639709591668267733365771397108925834583129283066332794931497300543568332224384629324857507916307604064212890894155160740320926568811006896966328813097816504728679765205946208214544100583751946497107427534018916395157466413028270103823169375929283934506585691279997878350319202988985270215192808320275409471908178412559509545214553895242752641034173588072930266436344149460791786769815360724072225726927025094068910109570358103672454358887657416824530992204658961763087796753845721729471088793080304920963477951514443863828178352751770487443821387538707973169841741743223881640835721827862460673642372547991016710346308401939075198989012674544138228061064039800490110396670828485421794265132892794540140676994248063661308336815779032170627371787190945193982838302257916171943092417189529334770375564244042556815178032454542704199575397261981659620890454549404572190713245031351406987511559783098692645360026738476135682214741671121677129986538443126301118515920748337868754863418033063996469724797180168188799877773283903962223462850916597332332074330751475409496070409020835750735959976763640834203273529411303138750757218941223781509928709620542041164228081657407221381735378296967089540404089312657877452725556811599183785640784936165526860059155713323695361818941717381951678810310619758094421529472544908243553554820308994672492971091456123491217938382379131766043480963438695915025820010797173376722596673154699354944004503508556705260456198871179973255479628634352499317147874396661473040090622367537484317776258649953537861504714512343278619329760705621903057309591977777627159594954708663971877810651996998549184610573680720551735001988541226920601743847764091061237879212070056841461693039453347466824530122888717858787821252262210298880139543293818698714846496652650241864136430932616025955530215491377883896705631459411163552977781574714348289427096021500325792964153342491008759424721411468404697200007708027023923918977589020360129290498121960320664334581290980696075504514996926247881488813437463267643711171628560342368522798898638738562381974956918211223284083524180572934163658483278559622233996931206584953578436196684750192790184558411554433267897655141732970067336806587675421004214957172771815715268764112501215432999258373777074523086884822000590738298506013161974396725750869489392552718300842218461555913118002031053783237312243563555318549582875114275525525374356295543505222450213822987813480645157412629068304672228412765447482785623283545021423207717842144197852865565293893261347728878543348576609308783525480651214065606872782196156774727203164242420439205429345581046041629530417969103996784308547720721808757776338152093194668343537803936883242993971366367858958870598186548882560088278758986431450152802822192071921421900088699597454779681392713600419727185939580902207832348020353723384776665430482919488608379030865985954825297482855388265869492035682142066928601708291538937627054109690044981094615577754279328088579659060798743516524688209662838237541055659625090104635664807055321720332729992023187750900407952705994722454155550387845240175727585183382977770311850166764174397586052594242222074143211264960439520580126061857865722706480924280161296050304957534329490398157118628279732736169294738706151519945409763545335852518510399152265496314981653853128156544153607279395740726189947774948098719113554318102112419645980255663426722373575841450629462936985011227593687878301228284839058565446361632714065296277885938521085595745725766325304174051882750199417036862080352270604341240025968918587056463731992193602565836802687592057930633180944043788030489093189680636190746020157352993489808241718415238227874343549650304580784083030632790607909192935728406837637245695896204808686871379617736664309100882339027633033167958702667458415710798271217490263626423302769264182712174026241393639000010094271540300738451201873026219405192044060374104963322921223325271348305852589561583550467837291110451724993975479675081897417977279076791889067338334283616984732191624238656638199270961759779235690426740415005582099193127898940372954472938832886950615895715961893404418927004768078576357095026642174143583470396040502099015458755336945219996259691023994689762639624955076901045413413628327772694391195431933789725892047052119368313135983756080506988759017452436817211635381704889069175115250589348906017046529719154000979090251146091488502366640096269290075346519257028381340756682502717432904146426466144560005000727864237021111512214463127628085041386111622790741779091374957325302293554290112965316622475019126223050611009698415865987087482486072397661213678698391875655293993704406846775807263584699438724079202825008065488638342170872027026913025491695446184784303254799689612673763860762170423139072954287257701163554819818847855695803909519433402760951096212797052953862794503154900100799937100504485896416660351808497457216582424106658485817657851451695110096239594300408520674337638499943818970427387126291935239856079931218400445640274765845989740888691286903552687314649692968089860654795347784859603366248491157835386703245123247432536473161849911403705353075005302360910843925493700787201457816538251594775183457994747310575395247515929499193825949236529254399087821758430974882683170928891566883848444360424641579871433331972534642828272767128342081065037339648124277116987160979802522641643592041762880744341714557639435172546712351824050663134505645202179641120402539311134609689509029320932136008079735949427229560586664510588139524926636880228946067305807339593037674560833195185130249037899841118894070522353051190031357892180975021515731173357492294765256027087225302289250993097295450693519336675928669242849503489146018706063448976888371713443584599013220194889752750770919010804883312884980557721704481279843125625213374931330425175761232428803966775291649079278586137916056945599602852217137637027726963543564541607275119660977564828774156662833425537280355496980116236039349673172173119643683324958091741671822709372735288352053189043597943698381937478505020054246788982169490453214350181491271188630828191437496210838906758719325773348317796370274837683433542096292893525954038374647724427117362130452931772957894198874478505476335528424479768038414714607075758631755587566417013375106942377325291836106092049850146667674978856082873269734840735062380036250069563385481785567954260346252690700881176616348327457700357911538165179227210905192310888501278400242060124359108274040048162663836347723637796007583078888029047236767607658820872907985949359496255956012905717942718496762856039682831967906845545452665612857790635250768799793463210011816071586481097311698189167195113776578246563360900620371135990538369631908370211465742585164165121556876613343092793913807076704724393267037718607759768064080597016704111366830894640909074135508598390071418259499763409497687077587631028902820918385914917376975012013357700413680952018243991360045683945755054529750932398954086518514899196777641828207466981701415857338709149220255266860730823704269226491138454449618120776213615904384976583025612693723536363532717915713606564583390309719643889027360450939727488821981621067273720525987746119031212154781929746130954493322984009921783511326912269789320909291156164420753826082946020347688601486343160790924677284941730114464639823954209026853972628732128380259744255340323754495761790623234253738595029807057000309046385701387920275232041099315268412749233216421062007563664961698525822709995806685866908462326427976672122203857336774183136663631245940350078128980710110533706965151730959830628576014210888289963801028044574293118593844993977306324221495197354186977510906087420450964106571572282143925690325511849149733989148470574424124346482933940950357408709024748729675859624675385622000989753479016337889277015119084301848378847522763287966460079923914644783397206357176338754802369373282249897451865953937724028164456986930259983261671643538724951294217280314007525919151813665277407093591868705848621975645444120821651132440951329330918372054487006021525054937940291666399171226723171068442147822607371603603135475173408693773471532807648385373252662358365671235622900202947096458300898311498498452899156115832310757957165181372516745018796115869840343141151958397449789136078951180525519356030121806822713344804265801755252344393471763301097424507101247956506247547780919476767955143642984213808733167176224911831428802954769276818832573762180799547145666268390368337861769614387738428862233095412930790250547638749928009837742476538784032395187141468632527385109602558146273237466673997636565316598751770073297325028550383192557611947356442580722278886692380928752052242157687725038229805727557002900537754563261179587829848163549083216062209765054003346014952726714025226967136998895542484556217866309190542302543633321940137666109988999165120083095923688899604178722443717856992239388221194999292302473759339624333211113257642694456951189818209861082494444812560480726623086909941507697349930939271658712195324404906043794410398158140346031463540150860969472939117879618512510413126871617437465855523260706160276316181486942309590680111232474884492756103252264275103755753651919561049130953858018720994996053175444716797820309084931734655772719392354141499743810806718264236031646393236728310657055591666371922515369951466618144151730929208558113841271455700159649497078411447586367762516479090428367763999679844561928323149878411970617413235516488481157789470945362222381753074779151638715149045200304622204253446866713033746092592379057071649483938939109601599506198765173008601804193438378838279764485436656182120456022687961441306583770879115461252546332074857267109755171969033527989833553669177564214475672578921280108974059821416628679707019301490979723345636128385510163501248118598057608771589743089710214673582640493162455243083748161764503994936299057095019430496873771542058107095096000612963628193194131254441813572049399238180258104653456697912316391226899920322895624908373918545492630718818615164434317576705249063880735927235342811412628361880471373248560970587043503062834570946336209222674212773035618932892581546200972831087584982041763111042267222935120241794661862198176639688052685382353919192208405587606206480178440218042154533380660761453957132891783137950294389914275270394359556927654361084678158678941475533872219424670787239019731726918150596239157822316347284097510002451612691318015942672879570398886888028143215050100483676856986155387371536175273777547472465774854767775986433150971962552691717620714155889959053152907844856207929230757355589643790278914761804102964559507506771674502012132595296046160470915442893047082087623002179227079614842887723222570331098483493480550961195917169355630758107638138234007138367581874349279158264335010511568258414989360485567936313841000600156574324248944890308260999599096230805499503715035222294490205911312530150897962689734405517226222363050276311644260574313133547225498765571421154384849629470079577446572341373689264097889799374669749733296087404813550510686456293006170062172923275012088755335152653502771584986477777212401500192750220292093692084109975789183474865295576187581084766601140902184067123565041305987356162224752471074346209449182427284001483306631410135572475527373779698953612917705438506249621825744923106763582387447375288634927724107926055327364318759672419194076226771723481209451429411512822678722173108669464297879790470971121808173026091137356052800221766251923063995455104790071161147774012620415350939023106932485928065588949725820692578777372865644356277179669873359731040393195692673640050083166522542414038132469172417286165408950758788555406286096027279980258818887898113782930376791806706996654074715338783242797022246826022235575999688687037098548332918433010633660881213758080026810688179627535681411398969474893443960271445592120672967361381567156867850030462307953752018438370598053474042163582115240826311925022821343107545457695557897795545317969885227231166990527070651620939815250690166664516203749908530188313260499458467096255561633302495844144189962178362845062553537990721821069591658851653323807282513186662216694457153682298042985667400732424622044895295115856112684009468246651337273440900867263872329514662422734410943055642512807350922753971639806195990336772637131631713915035341566307717621491398703775657999853625052172955224246420311969974561692518816258358703802757968207886630772313270220962501156432809825875785439180411853572787560751986772917372086509823251037296679943539813579239796935771821483322276026508004402809488573332514707308544009003755960391746336020175114885487317391175622371129985897175239303388042552530336818449470799648283524888323557684749498007598285164104842738063116089844723151931729714103366329095681894166664493032788278704897481733221481447431020332558265726428534463163396556745463008655621834002239677470710141421671066136761814982479095056317810591923277673990862681145576254078089169312471300062996792514811113480297729210922638366239472870378965658763102760962876567461227308673780658830361405367742997497858471728427409208729289175405445291243993606137235534370297651846436009073486398855574534309842228087490079916096756224941109431310307223435962335444632722277603599001513781764000161575647906098107984553108944903076282937937825761284654772265275643227886197313381371166568506433741832589435742651520488176511595627337318571987310289111521737719158332925724813370100631683836843996094690103505717355194010946746593713919966997632490065283820265495923021361817234826533582453445481034651354300123407479947390896724511940198482536562509444498517542329545479096204223926669668063145571593883969704113913998391078700916527757362159713577796232703869793306391381221494914176400472805333723502092547218419416840682201332470125571017441544709801737816080077831477165063702570274579604666275485751118935551636592860164224637861157252090192219390128975066104360485564992740122529880845744511306335026200037399308943221247248255494149543152810325746133893264254667918362517470319206507648327223768995099320951488903836005972947864371499091972779005831809094555500895909552692135869906911946931645262461683813153606159476183576831145789196021664861431178111927392281339190438915894536461959225858828830026774961207396900361341663107677421086276011532989623516210130669275394572851090217019875432713436281144678346791294287573729857219982727710252185349613256820996860742511934596948827601789153139113020533587438100563347556647968472220053453763534439435051240117297369816369524412851285969427853931710915678821906765080607729977018227277644991961998306476812110317777804401638806961989414953685755010516293071060068988745697401345557194614102151955743006817148776002058233256640725444139499133025175493760082272090555543263806774745216409213088667545467422384659860904324068257828835241139584479468828083979091790835777556302574267908291195229670073810926865371029554212466189921734930856580054335781321176278270688094555933346188815832686183634180165135456767481032189544833779787937324250357475874172378699504309292583572379444464805555653548810369155769425858559882860184915509131251676356151215654881839778579423521484334355469900204811060150359789848537300826135780609471811390844472026552099369882684233807636175494300021011131963806990065939855366921367203858181093387254886255198694933781375472927484528312734795195550923005266087366937767916474682394942671930648558083437576729155366557694322598717844646675933107609859834430775348142148230408934970517142201749019809385674533198007508856776286508411811576124507265831126605840047121449824872589873110495695867229532340512653026397288000987836970915860396422536653772551420194595319506318591480389049018434082321726660314480487790042957275022747719109338100100982060650887858370677998643085529397065604757290392026190466865092157300628704977187761309216774414931949247764588352189565265362149043984748349042065865039971805299884522485587461554124588311411430750720060425493595275827344084570590561112418012672512836743385313339346869126779682386776341274783888350131181506139624467696811359752125438540254813093935468520430812419561596047578423671973103453886729972273783604820341197988884578536440645578867965130758069480669451341733873431919313401986003018112911070745260692822139227204910431886911542532029382815070450402162865022029642375124367645566155201341310305210166828353096361524199901081510987632253860775809567882359111614613056729354379740336874968560830623000855466029952517832797932110541305151665195230868025514904645849149645855959681776806025646077258382040072708295296038179553697747139660351056278724954068665573083944736550497734930089543671967513972124792090153722937286384351063042949347393794433411737131291172166742766536021863634229663171034686341037413625804807551738091018919932522998145758289219486388498300061176401090559677067612651868950804743864789553096661609537428132349640538730215073073075210092393300103156339317259643815380023929165942856662075587979508627890740949213331663570475089101125694166904414534493470678232026889141953758059600818823997468762255159365554695969416128310594717583286240357814547386986859860276585308475947051986614447916038658588324057580856747346265669454562681609930164612724705900337759882417631389521079040771436944499771348354644293105578163866066083670221833810204569890271214774788401670668010595719615199563075080560006465110755121156659835272220573755203034822859936214632256700617508389670712946444896621540061515613226890933490759121557473412224410444887812432162148530782997548304147086699929064252982167126313469096903860264735940325380028198688479461756562696973510852093670292555323538471227595328632834007415204257420792155360478168582014398201527144556350857863240175305850493690617032909559519185599487441183020373450431489152715425579431137828612637438222882688768351758084358965487882423625129674759094777501258437848057018668757011670124967780703268205238551320239008975311946987657245834663104672596624667737857899647474322462840749582949615459588239514059723380464674400477270221069388502160197139457735530355114676921617585857943906545086031032926028063534732875684084819563810676193669657387914672631039069666276081149235562741645822181640562759221618230528293851629632543417439972141051689844296932401522293360217202935786420532570901724826599087579162260924280311120395724406079794808417086154385008157350791211889497383753684529665487393967674794540822688431751384921493928258210831682467343347043696868498301725161608197233093852564545599557624082127102820632000612027714504631814638435657268969937250186208346522906437225206448061139713906707308679020846624899603897026479110055282489225054578930867942362714569773865188847988191090299705455338652205483214156654679954799629227780557024434605359984551970720769516557236420546557977567768643504714518450092694103730720961249087780390992244514582140098742944920252427225775739137474833406649497513974185091838459674999576486937799621979810470938127632921850086290732844026184027336398340252394914178073062642712772921883112730294365353635615979957962488552121069042582527935715920906178037304309747476836543994852095381488936446775360338777831999534665231592890071912912074949843236970831468116327755244914920036060950377420836099706209765286856595319279802397802876475125078189971878406920407811572302885867798433418243722062872419057253124011150785786263941202098723712437038528596321647108315002495369026839215924634772308507310816083184406601193029749240494937777075843533906628741226776171675888267618204939073861983997360494576622952600652696017430572067676538552977421022902150170072996881107343476488802333038205996997968059769622415869852229140414042027089833426398508425484687434809783816968658500106832294043667769483868927565051566940287228312395703807750912682985139983077247094232828863830032517737488800186288418565883224363579447878909464362189693610285430844647752957090200382814348388469429237054831678175844153198594901835259326105828385873192216308805634613190834099075915593788326423902840168019447224447002129595530597722793056189513997268751881299827082958703151537955277303214103615004239858327574168301320305041020230268751631873554221281490260698043727585435417587628558858015644994702888467869855382283934796468335557906826980328673542259631157368373697641975809309238077322441233606968240985453575125201146355612250899593681943876761036786072696327401834586078301614271481511767903154231337862810836082082162219456783760690738634707199199123444453537413178754343671350150248491512555609046893777247756361901239989850115281545546292100100851715749011839682370393735219742198846882873161255573364133488306620309971816874205021145393486161880323575113247814444016778484751618153240126804920346244438645423581503868281617753471150471730355286305146604910865028935931753259091018259175401721864472673188652191281674290713804423045478927813220099247360274589340323343826011102392148820507640906505453792227118072174911890172249274366793997680283933439869463890582876616033568808728342721609650466112641673182062728224914539548660637829594005704517716788851856810585641655106334258847712478904680502218651378238907381543753900218165060654640272083884052312200827780869044379686842749074938522224840252193445248201046311137336850517385493111564446501628644836269044632512211607292569134371993872973594914388713258916533371976203975326104006052658923276623032780086072435655090343631398781258342026344462819044501520215992798809150850091944411824737529272508195826001763407635087659438155986419204591693376679057120764605148631826750828039271660994128655361149959998007996422051862357041296681678007929869906092030645641583750972834002104081926474172318738490779308014609149856293699263403773394883283962449157273705576867641081523835374517546794336319305033427323539554451553149157081719646857032656517612185473404475835539268230514149635854760044302809940351312645931433079814425265590724440050586686710140731203304236906873704634358601984891586469655543634364442562351926653290986244232910616042907955346077852357778986189288761185553067212820055133132077759161153884221206558952291934013698076583436739306411916278678518471993864604829729069293183576051928700995926845665760741122705078744785609261127992700840582059932001132786815791098125330495872206996127783925584183878916060718441704593556105030053742207448348913053841601385553105528115212659270048597995805091966732319157622804996698563392434514521512911689150019545832709889544629031409495727790945404681791273875886012777860080669714188817252126616907473288487709147215345744332459941350019857693708187099567639745068653745725964811998993679819974172068798629895714140389393720256586794709758404004353136291052866386636216635288790492711721995047902061436361552820654956857240966770229103222588044880528736495094766367413557378476926959057319825172647432548655340754733877916341922269344833188671633836773394427071675288792374911307412147811382421625692955428701999611330253038550312829806107130865428646953486645422255979621287764398454159475319319871655716370409237437516065581224535315259396993038825764516292634483781508815410501448539436482586246873350193315409075782143449050184767158215332939240877848923906219981445964979701654485709029954760967086395037772417832294882488186571758377089976931905197866757194330978069823807340784616227325690059655059090641913886965564047859277928480593143563659403814983831382585776508048430464268568963133999909656239587562225015984023912273476073119921507506322520747915094600935756862471173653023114421250986933499285755205612398696882095556552873661276651956701379279883391184741166050543248613010937064104688633622343779563287871785572417459454390459549576715241824068781400057863165857112058534733812156314020441003992829572395115047886193365916699997299655227531075389127799920604577891339212111442269804988184217356112373858730775818991276202947717520671507156099377695880281482013901651372054518512926377930147978325899469933591190747211619722945209651076061165669123387957012984503420948298147731488123591536702643057619714903034880096386040700126798581694120352971279039242174748357842540171134330498123744952110946209863235266347626926674208264774619303096213032397192664982897560672210402694406022014344624211796328448788975393369609020939679976039983925986602711488819642371637505583038666564408513405693660550964943524196304675728732453620976752095102125048022034096898121266987670787406328930927239506705503826129417241540421017769165852404287883681642671936520561277887822944412407609151527681955534704259509456432242868690724605605651722269041624299373453429726937381790719037725766171984400548382601465153071968140383290715348186834525010288712732651361964355615545369706219917076964248251234622459673159651955862178941874597178433066040894504986068338587063178634593875265546890412102841227156158657541179754872657992423926002318434014882314265334258047906437768085696048978635540976097450831384277790976456676626969433544085823880774104734074766446305712626194096427414073045028116379309315158161095101523052473241579231123547852292779284406843682521868213753480645710815935084775444253954365903333602120588230989195477065055629095721665262935896193532356832118865459981879849626343746159920164542680570894445706810284982321818217008482324699170683757157600975986824197908908366632277638161544597141192334276267392911042768038152770408773553536537632956145522580293831684686917873546765480623848968890161559571085135111892854222930471959327698646273150497969264224612246478829141950070710220867499607537425916131573852091755119276839816865542378886537326260440923099667583158161854981555917319407241639416102306559850907272880752623621136835380835042877981344815678481056942294283043302855652524965497165148890294364111128315988769667613916444632715396607768658723062517646704091280397573605326307916610031863301817411667710436938241117126740288613491085790144079418202073639836494130815497280070263387587792890862094188276666929365400595553265755023159695172305842904575777162575031277180672789873794340252047614726060555191678488416391556246600613438143449139589501069821424891584798231344791801217635276390696339324067707527033084179417550214155681694134510719216368384533039303828712428184860075372238742800456527370898556577749613857425680284210046249825713308407133618458245749924296413610410986457609752842753992425414316417777156597843675802423941287430251816983874574801026291450825030022035002547368181156668529296374518407857689363243697072693325532297289945451516320060515584579330739555914147166466337586980058598343817104600806987718569465360423797733328052655461122482231775863140467109383319247226548782192211559444268415989314496785201118133508400114610155458968443168802031284160858235726613704151944808706872215014959634874441961236744655872339311427194042573414352869131444819205898225903614292209799102273617383077313479084673138304091726960123494016989588954960422850073808053554294764760087274151736461474258558796237093958486600177860519922716946933391353792789857577063315518694265708005656105705314334796222171559051784967275353996841850796901477611929381745538215772010446018189592336719729304950129114547457484167198217871288707470887941536441837125886653706948913157953858031568958161944523523972829562343063507883620595248769620065503210064240285159440334392343473856260411517082086839453982859159016004067117413258638886672509922282209545220288309171737133892126514892682844255709139699211030221275601436699477933887925831858398204083479547621220967688225330191338011739067805795665694741916141945914283994043776889401743924781840635469228984846196409533645012339477928862542297168754426748705614690056623363330876413221796605373523076343360105858484019752360741968458080874838517102294115749708649756393515470134854202867368207252738721152083028730013915993084827023529023408700292850449728239223204523138969956491498839204590330223067053257280436778169515616208192856212745053763666992344495974705188640587541608189525909191561400981886376201363752064172654107073246056135288535169499431081392381622347460276549927219457393593050029308843528504579176425156574224784573890776521801209665656156306698257619511610580394628680294099767747361932519246991598351643194990235577053074311838194803635673609698256968278156233743347839726559055738249272787037775109123724135239530737447414086198008900027598264262178339652371952519901334325913568126121962309903937943472808618479116665482405420246881127759865992450861410911808433973462667389612692802517440575473192641078156534370337971397182109944525698712997067468585123644462176282590130864360205643608866961327105623434819831397855655355044606038764709648859032116435978326728148637706585307355387651175849803243759089073973014233404649187086687827016144071492330529625855653918555929700246771900536800602877026939128090396862122494540945493212099572883937219625927673283636727079912256114032638539159885833142057817673928487468955189910797349031323921309384175790619582801396701058392121644317535058558897492358984901411737904177297878437088019994994366846811651510265791100674094567194970622012775850849902089943366701197943547265132446098524218725674871978033667864430838522322905147165869783899587874093469770155653931935769530935701339549188907038910542098491066516617609450724847011185705513842611866975467554585395379629842995461674099521535062025212522815777286751012578489542857413821788757144042824166897527695366013500245871412428545420140436992982094610729131323106355801698747649339487931283940993147872625369734179502552502855007662463096068814177331452506612125723624224956629178045327139026416748273768718122626190955845913010325753308228770571498637452638521559371219265310320207791632079746983395037859376014108604274229486064671207982958306588737395795291961057739470717522845069261782945280326407913990369974652866585336948477616756019280116649805002156934916976126337345841754335890676760429303377223310104070797254533831820430026123178047712148323971407323422404260999673213013877176143356882401504111423527071472060190228615225967768408801309742479910083762786465576245999805359463683260283073455051177899815714157757868504878624913369908944474977703906625221833678778234545408398935677543858875619778520018494070350290787934466196245235455229212107594163465677318821172583657743569544332954601119404386814913218258083518203156871509404440338021361411267490044060911563036770276871906358730222811376287596858844348688178070233910716019213409247478503452081033737277245006189266694620519045266202007242666722667731886279350994669229373821802292031832817726739835147614054529663325021103970946026730873884792592360539865852970195035103677992846035763900678239986255528098231594277084298593920696033609552243570713335065345773558811079762297060247796698654108856140271596069810378839493047985185195891961372513429685962307285471635139641691138118220425304728474566607562414307539458036425041846369335821913075390265842407145736673346627957316010044715729890560531340476975257740270088730241993043175935505324068920966494699390590294952226069762647860271308186946268165278621081409356485842583558033296440623236181648154758517621319446370559727481193433295002068625028199945117941198623710385679855694078186948130104186392958950098717431474913586139681233999289997294037957329219890333082226216419302664615642765188475239068348533101782387063820599033046946457769566598179219138425623134676839454724061925999490400331571043471108715430852866351929239809033103276753200903200080755800079023768690054044963191019285017832151703806121529874999933616649133038025089482991756876632741325708474243808045156337643283267977386159906856493908495231714563586321857680955315741636262499556286858103496608630041728446045651875827893642249147056387902118286607922553822466167716003366346130250624824411192897133160454231768837949923321743561891615155778766551758175216906643340003790363918889943191474899573731012472426242415255544775639596049959085034587563259346217037772485222210126910552948259199766473835821162439852886912234865057749734078095953078733469176500021436862531729905999872816315700631051000013267528305484524055794672620085994073030990100048663753675378346161590905065432671096910458215092326882922435426308045162061590181340002087951032532204090145377959534081531760945101957224008925410420998042742679032895593215087162366408637365010553405654708998535807143323404661841827812606858041918993075863613034290003789168542986682794899616623778995540309579644366989525485062431900274492992387925211928592167576256156294475199062448972089061311162760467539963231166398997547465961747516567013373888659045411016847140925008276787829791309858034614754777730503149586005108377430694630603659680587592032704006178922142475037170583565653847271733532703645408406217877719709298451903082298753854083248735220871720152736622466807131909072494903164943139604419049909235699132239876496525489978273157037805845351605433940364552452482206073144580193594137723001236878156511716654434847994924416191430832846041731718533270798423244221639129244731958986774275273959276237288660607462969163306391217237924291572128475649930107559054896842412433944120363360340639169969869485180814530326100531785946701980164097243641616345517105136662692762692353325021109793599726299704129149262558768388334441432793561165489401259303985527917699757228032456492739927061262934736559647354668279663062608109873054081863201322806153593186055108522347602211963405141300131265470140936642544990782798851124028134562152650496293710616208432453057652873769411494535768531603134350770567254755626728196748217363083900538649405318525465987939046985507984706526892459758181152440717445365838959042629704814874508863478671586883524361533125793965570140126662140214157367078030547290046562051211570091373746073177283372517488680492821019581551993243017511076901188082774799468888863027964729782109984697602237325469333739084795432855542288248172625662735084195746120586294302763322366835109051440141624394374275618867112968208605736125517113540007443294517804197986314771550391394929694280172706055361813729764174305034700525472105096853822752937184448462135534776957702996710613644104769886276827367725981145750092414270088157932674139104252258172930476731737518971277908719897432548811588707746968866981926148496521283686858329239831943508506350246345188897823567427947638492732506276570113481509638677687459717952301332223320746978590846124996332529418624409787239438832454240901811400234709112861390198013839192607383976219993727191559136127694717525414506920839188127414583526674604234788787148356661549165614953373571890363560215459305608407728793558227556572400118245058444671872149243466860777197860856514057936296565203267971430145396332510775645069608335988067441387035000693635633018149298666198045321847448162807222093064212743635923639485376607213992506327449084995779420246006387506622203161117991673853143269007651275160185466629748408126762515072029922652609225523254493322731976476155891631825877048835082038494986303093524382477155402607859963310088742474859945171435508306271696627956736148162587910548164737665208882190008223649948817168702056687565386563409658261154258776713065396869620403682496571424602641379020397433270807682832408803730330097461007589883654622787202981751471818905699334139597171569838707039871171360646353327276082249330843153059893077213947847777807383064551773471483861132355846322747621286764237853440055299540692801920145550914775213592700152427730963585697112702180590425738499580721369303520846435594700436468125339227088213586677559905493364813565896590306226176151770731157603516358700967185619756081412473899996806901824093140248783462926787615918079509516803204472105421088159896825450482529171069164231057512334897693296317514504798554200825712319449269534713520611390686676924031810220927133022823893504055227108605176270686456199609195413312247631944241888189031746034312209737425160081250621908115861880764293722405771123021687092133016280400775615807595103530511539009717210786181404948986476084939717797146064432194986133485644860705858625434321300025320625876221224038155850151631764396265530082058790995317655062697414293015387858021815710235746001395293196664026092941612537451863286273465890759112188943515695083903926666062550342772518407469181945467889803300314658736516849928686469060023773865112592728877189304824885397290304934344231282300921303328638523992053565562259568573841016070236209028790266859467415799940931761603977456797151456161039405077429507166711125343400026368905994661895442365233182390921334786521256695898911692790822001282537369421851036337272942088844235504100169860399520195417174163363436831077459321796191397985553771632923238654562731282396533312054458647626735275642807676189047534596869814580578846503723224303478062133485461102168336153546164241386627287797695040745810696838732784391951016610659294859112988795096070642810717324165814824825531038412945331593289924265003248499032418075112078259444082366043421384888766169217755428505386188739845832212545842514642170993236124641690624199893296694701534712935382087981962963847501224334286006910538352500584626344622310764728879699641317599652527573278343603497838180584823177731622318992199063136838561504635306350103162923859870031539326109183375205656755440825728837032255724609231405694725057478210133914091502400526684092422221953714335104989750585057729884616325189232312477977249133443677632145574538159596595527559978656394314869689871419487033391712447002905156789621016506082439121887898930480757822098358733127841601045738452281246760955114695104800913429547124669776233766734641274285640192915489452657320145271740005605501886325823372753119291799267928704760898424952825560039890557133001097966108222435920917129664943204993577611627637857903943265245298222150926983654727009592143236898625437451682727028725391678906760717862990779036342196089846959678711758818062066782885760033564095675331479738962283059547312122634598185427875477737193552426045530339327318209794205304827419892137281449615267448367944735685230724207013154667555069309118786461046683982526813464158355503365211532036705392834828763443253647857410413191802136760683425053935483605637392530233434736024753457123113200268653227921526899139877321822841079197449227370449678950143424825810340879702259714422892249284180829220179617602428447012018090971869055966377376358969827281905054304361025820421492980429018012142055706724913504197029964732762111013496919277438274407918807482752825571374191826471122951436113869772848272329267883834316722622227673794684643872901628486739665504448015352056132188419156404076679168143667799414366621319889635188016100592291713325726434304278657245351012022568411247311315849240234477231091673349234738509028447410198532496242186095189115594021254770090761449526131921319154389512866924216434864413070322236995100719210825441025900265724939863602252780692914897244063061009338542305460370286597713727419080569764760457137230869847296882190506137017174008038258788628784527318632491140236458138970918091006681431997991905705278342882277585977644096399365813296581636586791183274190314506996698588515200404844952570074058315371733332670751121513943245796818542136162963073072443989059390386863783360474933954501392540783256786520754553368441151795983049946837145218330172329086828098515935710335373697721309049220705992882803209040135754106452671509159708335768665699814515459153301510098314147750812751595771594184448022329142177922652023618709286372228434620336869883625767232888887349925649185801632666017329251841640661659939765846521456252464306932494912367310963936783667373808380932192278003540951291457984726257636166517373352642064678424884876696851898327714138709534482261393358390236620149737895699659814613799842090404412704193987431141316382510347071765072414116004868987360153814913491625861300789153178496222082832769041978849223487322462492138176517465026914897056474902618597816297867875300205619582029974178933759525066132485109745786624154374249627254487050911612576550546517247645894487831487463380232387254510465736393525305328603382719297465310712176038740358506289549004216812819868336189677252375287090315622142970871236478813046954107903093917710110648427935351555930193298241024386833006721230038486640504706376475482666143980939342970575866456674242629268530290459595775894423519582329438466956492773823599857310356983657532265194475044481874744990880615253790409243452587243211554706596219305412699418626844615387417213164145855973294683923184594901006467755092454788252963519396575763485068672689722472814428125826280647537987197812082342728479338872460744221962761434423996368782447550167621845675473805337627216486426689839716299243736684176318254523947063826782456439528898505882943938910723814535986316802921830699799392468694202103140889679098925661980054384736340168966856905896050224393890609532120846841561452880863852715635621365852992557602455662237545063349643585225091173624557311829171690309461446306152324482285627028288756131293446242318056572442284500699564879159763428300567782649091875110649530874734318389775206684916955017819037562475142603120142572135286154900949794247958349729359606633292827888428680469873785545906561627794596638266498860628515193431225929949716659550510211455053714323774756802523289144189161430152987364583061442072523194901606014088236307267763586037782242084280541694940098030818156805484350422816862552773883952633820304332681072988988870390982050949462784479643880383981047585184899870993847145289892542876107562112786068055257758843033243105269503177334769076366442125426602406044278155451733249552067361259302309221430489658214500948602840868750546796235740799432778954708223464096377777570431862754274622909769786752478822036919380800209146111765254859933341438522424413637548173605467317446945389201528597771026344707799851936689904471864324605301479501650520855813981538697970853478776519986356923702256795706013917934480958794614195408735549458791283481007146343914230703293070692935453541910561609894596294602784744106522951941996789759115524108269147458902077341597605476925129649577325870568896411257021536369000385242465254595702920534116292349283027266068229652125261248157618344167653006799600991817423812183476989020157940362828529347974837551088576823129769518749969201013408829036639651483697115734101684739569750412782137026302252420009838705413374864584406741833722312144888029745573601412963384576983877734500503091173511546190411105174017636626804194841116396719534310732209156841810694212531092333517954918489896754288674442832388437298565408750094267646836516798529972146750106569701696338855852901511239631316780572029489969290892891983397052513894312256729347840365761177708748687748017858662107407884010590310864454953744882499632938706243123298202298182594993570848456641335193039632054478512260070778150733295882389593656656726635995097211629209708838780057393331662497418601036755290141099057333339507560198244192589870459763998850173587075754595427518319592851271486739879832316998122960299999276019683967635724086540520345159262671698728017965742611513262644244168098494105648728239103209837647987891885797442002948593806550500735493871888852037091003711684750616369487098708599162017530179912193127626429319005963908638007702151636712581411995032797086893350855738528685883977426330332510765348148803345178722073029534204978980693872473169582328365745849107161153592839335146971614091739911428343814967370055926640642746707132628482076732986886415246680809972094027300080463725894927666005515581286306793965171219292356842989875575565342179778290707460341107924064232838090043905089561172929270450354554801851473802389360018556373089178471032861956183799236771584674405623611367230370253691030501734131785420302914343985836958484062861601513013616081461444674248082256445321769168561363629321067030768841582736299686419028293123841377080400412664598324929467206612058506956886796637594947105745206787229146590467925494310919427678673754844350133867830120025376440953227502388992787987568152541757564620763911925780730138607543017262724869003897325542031297561661496069370242390929492878204518831292137900836271122179172123589992966121563628993178455947408362554456578146147848703185012752833035148335441672249792368295514545629458406103625212449711928773231764207859528552621009767305856520175914210572655624517423465320586844407434788932298349912653215789356519241078623849878030635276700845596412364917336701236982418964778528395153607992835441643374324142909036301805981484280337617180181431033770091393288833612527787072037660306746887501782786584877166217434657907958298987057331950251479746353274825381192035123063240080187587448067006845293417995272526405976497660601059421337696094386430789083870332434589027381916576443242141287582626941187854472665065793033976981468075612975950132119924062502317059913836709048983683819616468329657856032958846914365444271232296064740014463417024937993180017874519109576905108674467154991569790037718381113493391019338694663379750693807861848076596092407055543009055652470794815087914144285382985447561279300695671276521128489313200655618993238711005715378211382348225216786965727450341051416938317355425150827690466049181993953437488745747904109022801946978861935958433827077735664137477989789561836744323510846935697259310667192943450870320126919895046378887065239506871192034469807129558680579495152521387629083745683673780249199085338877076049076497633253991312778782530914154204577521495170101914362799841565462201774994146637148888226263699449526606599860430008104057218857502322818457108421109633716286661298582485208103564155816440802954798275078076934456682273083836293852288840172310492857730890233164421519571745003613549453895867600777075514890760429662689038044342467201389282156637890550733513669609783234513143412400561281434520208424227700018684185804773688014136346178350174424326986234182132927602442667932961652939679069319360115529336907346525586433910560141121848841110360192701183178970657437082124757312787694307821484846889383707281733162808550861332761566040437194291043194940349914388383978611542868193747632908999138969861417017997105871123026461114274708166940716565469049041885872002645250692323136412223479615517269537528218217150699959667204416737441862686541564345400193492180226728864095127460830468185808485347496324912035676334281872699666350300444308805774644974422527994139147399981189399653375041334254446031247749255109683277391680246945155455644643932168143028817569852280137226971117815510576844232954561836298459091555611190404981019736847772580958192457364439011487308429081476333122592466904929774860657880770240330834243915734628769262346357465996595627187165880718909238627140827907600935184174526599914724522627166137803807115683557156640995515955367208871272227856674679972341957914254029779475790619103638049582802150056678924267782840492811978473762752517883055581124633344095684524699499635778591231976015902508241845927657112547198264672592892083498147591772907093788202767363182560087588971348878242988909831566097884258344109165455544892735781037308379460758623037246075109465914991083932921880435517433389557530084099516762212463561248243475830087751685076783292069687842289097589350937711502422786853329540762562934365948987012225663948212742611543882668414448886374565970132003536352758082687324332417818249879974190492961538959667453503543722141954345386871392846571358063447841538554440763029803278605008976549580185809149215888854444545346199459991899390383295651426592136272704771367842999279378610054031941627796940761122561214055419169640639462093777716909714742623363329798922643389483774872003375850589676944571925508256892033104471455294045204222968619473061044497432120396903923548708267918068527679374168925132365259104403259035692983001431399039988115027634214563006373625124979254542382002425047379098652730517087869819425464862636320844130819326580850276878776914673775411165859921504434993661568869440480082833710726913164858395054965425752875900450123534945431727872514939372584617798277166075136366458083161754311974115994859133573989072882520079386041785150176661503044401089247170971643568197952199021134903852700107933249129176958391334108415712107244704778029442069254845604882164513041770699356127998339513218747242124252772866327106832046772540899726570511396480769737037739065638752640050485039428653789439010693438815740376593833343024483452005572355542528272712319967383255810327324807158376921463416135548773355581295283968844396690277168021702260278053984735712731148538222086195456273617362084908542684021064657317792213185686619438935728507148092483106082985414678553535591111230238246958315013542104328269305555405769701934093726731628621390182137968386281015360748298630886645951481812214092068900686270237739259917908297708508483796978120999023883440751762507202640199418486587890012671850673232926917260748973820655014688117723663219038643398146148655228428379192607593011426138031425975530998523858383015895813904037019213113755144314261284171311811157359313004029115268292208895262772366891288522170267451409895051880884928453244594739534156761495784103997931547507614913662386239130690288755394488098704978875005920306987700371760592540042904613657589698052776060869139450205901697280011244038149128600073339534795427074827822550987901850822002206504761924815423114544100860631155988571561783453210875348787530234049471932178098451584121078484180041335487415294982575545451433400788295738958744909127480227312822818597004797723491972753978027871676941583843788229820597131566998728799706804897577051236540600207380350071701175597570978619457148809926290446396839330505483224276621157479515530033129367773366065433533500021355071034138316753952044503179156055756320910036150727725894313953522838135067904984130971361329154974186816440175120195824872337543107150599127116960841391250397298041175728202904014927016016294894313234474970087420666146209004231685817726637409997886900031777640084703372015507698229954331562721204544861139192604742996712214290347713960899974023580242572997692125903258825154229933406338891821352267019284943583205486002044561343693697452835543903440570059918307003164829205035368042171818365568926484606142354268197984322977307535612815541561975916368219607303502682730887796847255604084268718007864954568290252274967778951405209806697248601462449625901835395135153896047480670958074273093713563677762316842120857391913079794631888616652298451189385650867246528183217787687749635697097314288015756455662102553252082956977480105619356526569105568651694017217306785668834633017913851046660897819043149265640836148002213029471799527978589502938092891326834115941846034527160300278141796657506097458740748914787757484739292651816428124031258230051099949679469321052309903817254294967086841282803432166846286471597555212375735711145013421175124191955765913054179424381440999473428383267534025053978950562397342242317969624316755566177065436808831637864402158993439507510840443820475889755117795374675128195771034584396535959153430734582734847050856981001490899225374904151444082123136624754095073449861512533613769454944453880791888084062390356370133137951556194850996631793444033283594615626201930464981810465826653086221508507830758370485531792313360083844020380422700015004730229695985521836029407889702282088904187332938292142655936558603937380439301226834378572084951322362904621547048343984979972154295081778052717922583626520480659928721703375390922278270422682436315559887909765249236706008230555800729293337772492156195783351974201459377169175169918588829545987411218659989733639108178613796893212516028603472344234949478002913021861893136291882488059923226964060368581312687997923350246917800636886963713032685665754057818110397997955647573289575547709888385084113067602225331086757857750388618897852888990736891361771261694067871371087407360236271034937889972101355851608638892507101064260265266863103418305330303952639373857261947545919481713411284089488426512041003888321324353338994231038222183549777221999902725143698353649382794527656347499696598203945542422034872138437004472703355451747347877478053043868532662218892251294376229748550146945898693415572823727460306865262999348211496440292228148548066252977900146921763840359531849987407294853995700089740124820715095337606108481130110426789021829253182179712316819143786089422468396013986465162598186621640930208683436649927372116843669126477707284133145043595253340188366940530470036032065815036988210767828616471847129427748375987884690256464125910351275957817532820595393192461286618472341703844350827203963038414087949062443535603511664368483328852877354977041406902651954255118481955002500908115593291433849555013349264223999074608090230973122428420624683018062610049352500575724573507432337194845904173435202425428544259267987712037260062351016578555163816915695475434527449744501530285088626751412368253518645664300277111496063514096768062255875455399258259480597158126869100609144750070477327126778937344237613381028960470085024880760324291688462632620059536097554152906329790590789077010799623839567776788307256802565045216889329917800528917111720033047028172259217160009212215826302912422971726615032007144034938503783386672177749627203353000580178937413997147450693222875432654362684174961105683963031328993672100530794638584593270747584923814001500264647689526237689661619528869805245539663384591483920485064974555582231833051174331645633074618179615740942558958905909412466925492115851588956509751917067058549557238690992723549028035144364426748699664971341845584441744042880809752250283243967858156061918767251556644170794403013554931431910491104463901498638567454674877439139535510383645868412227081728841930515255368907876021127032912915405443611496236754008924339647768763562788292075571901895968768798699128707708377187348029146884238106918187665799951061924102492348783034129434043097738183140754466752950304929334325289345027007542158665606892297078058871023266172755326124081719039381441616298574197271673705867174189838301123976339492831760997920189855185405012669199368572379645167629872538232579990903077632181455208526037976773547184735829835025010975777360457447071197512197493336443792523438906475445732059967858404116744396935719350284133304521526732748664748444701996854657854042426336490834747055300474784227248099875042176306683147836874441038463986312944186183469770465478568197964806109810384910065638602259569571372295812679090468009647445659131196612880614265151184674783786002491330512898970880738561245464656067188347249569239119670658508658698794314437175558012667183310719836233257795709322184247937874385974919410009172266943299047567982179352943025202813865676565420868485906335922756355505460799639396302679076158681956058262972142624237231087024870688182295009080924992165302652033117008942639855814061550328676512127680763032509930843046353053479535210737873596972168232653388337190384410323336965953294389942807406203773586650901465307487723006862558828241188291998905977411595376781652438872478574705882435114204594007310302235659885074646496461278802097553688637159548836565855980922524863714426956003444473331618127749328443268797316270798492793190144641246149015856597717718148771032564220120708379028537153534242870231183470075383472168102737642334222768736565243710056656061109156700069425270719693636774713138520074789448876933072610777659284223020265890722039440583584913214848916960156668012270585253891696992955162760851087097243211837959007395763078697182721211857023815079113492871203264667467281165824259321847194788491877837427444474606394273307577666337119801359586166740451870851258164502255759546701907527708389863993338641347886252692554396900078417783215280331678764179016238511014022861713851322776196136946661925101628849144589924625568408710743155859547408988642495337849740161426190199723502287988916091627992725150817325815901915450959204294309725463685076953387751263118677410833992266301825338404284233372012201446395855043850584178900712558193113525292977316457129713565061601292104060450241526495267540210649264136579626144683457476465101460766072207444250459284852400717520361453217632988948136192939766569011619916284214056432770611458715934039371914779843861960583021361424920239806298315281741946541588531006982762161466121737904105965965950400917433322066534127563631717878938027080271788121528255597156880043887418379546409419485008009161271194271287651128252974202882664952390366000852742633955727496381679303106063873123575362723932693893300360950353757700199726269211151620581399904697200804497676494576187200022021374864096390863369499080519007508397497241645764674779405206689842066713479343081742386175262847144754099052341326555055410552034874042613586764185584298690559586688684494151330636063286016975611449325251979582858507810885805548812800673431303036200949446721205217158985646811851389922271900694181211353633118222249770117319419571867636267957121779586451806041079244056243158906733144434262463696594498293726882118753573840896569606269379152118183977783616653325768284314049514670072403361866838617182595312531392318283941303516591368292025922748641452124727601224771767600781124590329522751718845439269840408252429483681363029969891469067853731562089022044725053997731485243177241950524889821303353354118648114548674022833186559092597442326574711200558803740670738968096240588730023828515776228613231961609834921701361484217999620874293325927179114166049296820797755400776767299287822654834679921323113234690414671776738467052465554967782828336862017871368344522849208703897903683500258632129876949577841089406128244094075969897636664683397277860256266889263803563154714523483286106372712916952347254722890465515612249020213332596691385024237627791822627334029076860542139000987181719529164139336337031104983233864327172344915498978715427429846170579641414877408237776547622323294041103930222808555623337611197064386809567910840730803939822095449059385292436046227632371475953064027484013900779791379773666505860400206309028904285232648071379322349085668825908360160735244477523798741628150154433072783923691094844440155289387810250543789111023640981725175426283218005725655361699824339895531345487902819814429861709868424599584460909487396919776061848055170427401045887595600040688405214549019821274992221597145774170758531387400495801938195901146962025588107922238718517931610981602383481988905920969659885467179567578442043628921781778106916214695267897852039928574421888696107600709829144401042503975526713621602441854952552933882744881160204356108411848150789872095008291417175625765695385964778553326598760799927795398638417332862351287089493274525950508410718993399478451675414482650395425816684555363790128792743519211913406193221931570962765075429498905836341474629695815258997244187641506969433432799291881921713514287865908552842153411973312409328276794535026104378107532186761488351554226744802595946435795540133644042720743533192525436289318768843368700568326912269902127454338781586643978463947684937629638100811095652527216177773203282419332227735441896275099455686112345604033391953325343425766734475639432201380440361130991821040549985992656804921965756734129124668146652257452291240478991772517790656879055603819505809865427395073022760224128861782685765205292027449156297761684894383140625611177469903358157815315916311668654943249565072843924681227360381488708422548712439246624542642093483387878586039638139929585128198289085507880805888552774219079149261422185241706812198728143850119312738880197406277551049093508360691329667041422647427300735395903838788382619498995820229711719759599583577613240558861685025032449170350265138204998773517982220375078939935800150456510502375037275801697499279249307390208391313111715774261177496177932595298122208110187993585253448095654103166931653172253207921427743295197252045522750712448235252034053120861935173548873676869972224499152683141793737400111405572990604399182615640194442615667327359464696778051149388203396723496440697994973297677189970615471995988498033850608986405382078595416310624058606732607933679978476438784256176895042585805762640091534500991353064324575230615670362493466426823044041526466373516702545152844876466548597228015422082951615950778675150222192348393495238234478784293811155806844783174606216500862063093415488242161283677454254516952218390523441533521807453847132123905710987999195735125208306657143316996992376931819938897296526273141021497394087395303304293650170840178265649074742235189545681454282557955041607291941070692601650895896915336594361617255173258089529523421077234401908810343482407821459142228330165887728709055432209791040825800899992492548731801730520707278507881581427605832587365165697048398147451118116978973135327432171499291406741061454448630211693123688091456067510939590818817123867420078928489180493132357495451438562220774461085175315582863274316566166550629833266320851124357130535655997150201855463368379369068057300057356316407928984858520646406769101670490279016056733927306763030959910891611414992744163803015904854135133697423560797470946593266137108843146397810485159407380120303027689525373270575982010670451857776181275831189542832794328692660282160669616269709208514469054536882510538645790726321512875395843766764824322151470245059967263550370852344897512864586434247682185569280217387950301788219091722508978765771432430164026635572290166884712728891769898476394452868549917803849753262516330692685318456764416539005244453516657859868506014855567979012125380879742307357407453736517700582605175999629568756273879591346030462049604953548027081710571787280029395328012408149611715142353217577873747613882558295848400970815008321476903387258608270405890354243547605014209307556714001615608866313857306356398467431236767006150776154195180834408070168138402670746610502296656081443489087884693920261311789113863851189437804261627139324888119933845941711250886317155190713211572967482860827638851714609270672949726845342330380310540862155303354501763260934559600868814785309878043700362148119602426836165533143115471863462539276599851491003148887222021163363344497897494242457367755274695286603601208217745689401809432372864070436522299126019047597490732483640430060176893873062515564130424977941839709979595803716491595290274887442701559101678447420881557467604677664165786313858193349734334810624624692613193111411270480043272092334759033793822526282296406631402036790795085934993406157749174378319091984070113549497850527907236961362517082903570994268916200446283747624098270235813097371438936367994059520383660404575579769872489494319301712814161296645714488827360956713463634145770868192277217614030118035586920808247063351623044109876690922842670736333938785890715459358314757478583278592069199504812941846257523822650637182699346296262991634023878839202622401888651758713006490977496143705166210926749295613882683231341775826278372935353631817174301292528205903991229925062882743360362029128890968554910720785540716267266281087871025473678859914703794256080689026469658058420958538370389571468206035303977265280796729593175854275791210629393838811527980764458821462710822975343501624297523303633466599742259547471786858885305183550481179257963396186733056033632379574599777686590279647132209050818182783810406712236369640409836934616061242480767811572787841510749454067771917290530697093330478256203668231283512164362956691826538146903322535842780977046383547775027491136409969256375982185246462899096786030078948394083952599003664324792313235649488078966148871117349837564306661006895565932230217550507493344428667674013865881308365253118672594700817689099457834697128079607685569601563602641760552568271000272716216881061220814611977317037970437743050493856274600126333300261918920472586980383893851067733674258391943056085489301608377147335173353700134328601342306543075816183054566861197313570400374810443199702911423140861972733000853899565635512694082797449959797703831365696606918802419581652373775001857049693798653099295811737476071563204337155142691837936467547560653101194043467492843141851149312904096333021842108056464370366563621521015651032598096786513383716565293947180434609210140586093444490679104474168160038034831095776405115943063668250216797425869985395359719510094927072639172570474717317031926003839817653286085883144943093711633627327704107609382849041422013131989570520864218110353134554720462721565677435393210533021756299532776352632273263617249711208250549548272075018555592572522986876672452498600574244128583358480498626616500457281338276490669561217019512357749066384370973618687465465301101054122973977373282885312458211495707033032410526067836802711054963537054187778316165142545251203194614960615072413370978011861746457318688902256379983071496261823040866883733592587415336634438920201658304824902491710465621546912228091713594030884402718125173489303810853996161697010344646490872625890465249966950902422498753512054418675783319602701088273215742900710363033990070033490413757086665164799233737093603218940188652469212722939347015757083184411901450567373439438671458378934721757680466711003551124062110622712547262108207434738328688146199076825226892114832163832223662926944325341565455910491829500673160713545864931208413355351789224154830720458853348446193010939167916668357324773477021101007215669220283096984365606901091939280636093784646078060165895153156410186544389306987037515155845981872676339191052463768099174040909258347676045575121239509150841817939139467906204618800157722899930611204594911257358828121785801758506396301961852095765576861650051674213304683808988854393295326545334094273670064706425413003998767978556622390804540479156429709741320165397506764437220083115237385009079046943249654522137953106691522027091353158447683837559333992405198254629716321400344103205230952220055298561188458728847291227488585864233471878115168362104850982978504534701738326700581682256981233917593983906932770627838868012356718833045027460311197081859440333007917535598046199091623201038582545666425694778154363322699820217772963258999620598356074571324380875745911676565863435951041133250819885635650917564206070366108746490514361688580444843891169833487055355806165985638440864352533908956701564749835668461030581056983459970200497045465767850247336990967254244192587335236251954567191537285065846510507369304629031031428540968310886516117859091779318444758237427548137709086436052454711010198431727334745356046349141773562903162223897304557916776042889174634696225315090162304607590731972857856890353201205934965091149088454367708045485623835221232689860838335264232114876659277644587321975664758307120121259848986426853548923566584641808670902696962529470993686972955942678757666249872603343368802839948030555750086758653280835897126317599310010135349798625893768609121624234464348289846418493507696655723075623432721900965188286427407014277883119798044352887228669133220780217661207589202198993649627537852178374382129695680431056119292471125692382532309094926298524892600436311216094646358871217347061724122086128782834168767357960419432138329368297860909083903852334592255698805063306747658926359435956554165798073178225454073559342726674565423669753061817863586972902814911797564942007752295622026384022004258845692118725162675275322937306320260120868330908587814241111147658203555582581561351351370226397061303262075157525699452910317877943605910545436022466328227717483326921641282028146330652236819380217936855445928163977945791090811056411398759883467926989897535666496090073610465609023052694745619770317662572014595866753209494067681855038553328949604419733762055314286979434354872943655702982377213577413831599638102178481034571822760742433028892908335122114915990539065112856353265695866492938416083471572348902536968361949203663838685464365104126649784728109243894250367103753533804455902939841988944164712721441119839037462902921810796493178102292063551030130264165209880810862448114502938644321489206876641118626849568655634808425318131959326544382088408879009909483775505397110430762396740745813735745981601428784565733969335463902361622240288098435065910750160170943629334914381326845122492875597951136659606604235017286539078592404782985998971674388653240121696042063440786671558174655621669474960360110271878317101722896472073805792348664954311842965348209320841364207835616216337851753064198030254436617125649055696271004484179406351136043066815488793143903531214472217501895776273117856951745070050672457585769113924609895281897515691092042551344721287374897805778591973053150577334373771491217487302874006261403286594932533415753940638160143971601841398928735394288192996719869341177749033562937718741589517311678318005900085170830245408816250981105584989438993473974419989665744557160902023243741813429413253871478229777370647640716795786664004650628889326926014438388398250901520566000005839107179899060441059264914661559152571643001330988479230562651123078603588464788905002392339530300362241945060976560476490334207924105333683489635962342253929485416137448408163853211828607984854202469057517379880157386553698975522733207036439499058935070979387575832459013194192567922938821555699771872173770251967083270547921457119185254112959909042234291472827311186499105329877447095348371221709969946296024622862796196102807700075025333043625657072562940566758936082734981787198702571100671906864999582579216121957534726390518091698309062859081374968744247424515210807720343625469575511376311465810984310127773893022395728452225346995418035584175922882206282873608805968515969619003889180826960489469640733785197572192040843360017917093681268336014864271152229746232022973410206378842521498238781030532622644241462569479783853006259804363440456641059454178320726311747043609506370383985600843708839914003501675390566878807962980178540230882045080947075461003760748430782347208648956488487917906464308477173328792248582389799899525458483055271226199928188842418705814706362548851861813545618933575450663941850273996465441432142700994772959940808459625020825127243069041924830890772425494312827886014104733998584754916168805849155655778403341511652488771609961348662332055930878069838221844233321307424506404762899747346277661995832839121957181229093868817275070004652719232228588638589849473978647229043015204700895502620395465280059484490563077968452913021101297545019952083967984358689354939809250862758970637864167100735477986383309896797342438133381146103228629820353643543486492847802913951887404743112525470099050585607282696058543677654413762540118161720486424876156656577420071589233314236099019854362849273754185997230671174994243100796592910255151223160512259696788296224284057026522780857611304126190898821427740495217923609408689960344982855483509113438817373815012627719320706866838577016670671475474383239546854700232117775635492051678459028130526616125589966720963028043817199619987276513279933559951392395505275728266185143139671594781751402660756648890145468896930670192656874589353516192825562042454762924116239750762008155359270859458888436028295239857621213308427314622588873944668386755043799307364048587337498316967209262240012010866808134041056996531511558930426378183428525789102419728861218011810683364926811368963613681870225855300244662439343131600324024225744984139048140196998376910467692298717405182861987041461430955968216485194990469529233869071793676670364511740190002269373934514883778167688405778951913706145183683621734314867551955435620431338544086672741408432089092356630500870987717222611279180300406556696864892959111353886626777706363902765795697170890680413112072423794229161323594066934301458243612064364022173490714452218919189035057172542009109365058256953262760788689067730800461373789583192250366364086218376009050155639516051208428258889839657314512840635751080242700007416420541554471247676217175239730948324294016455963273066659143118309666965534022283515031738378030324998565995990573009949831365948009695654151955153937161038212360772850526890462713833872028344813377895169111146010829120269232813520354189874510973789643151433832315873342418046681340676346126556783266782708085212160820941180361994750671274552044361084289059612369366024741460510770376548270556749803184649517727840023722088504162478728413993977678784013015105792750032454549912443881661430072135342064214811117817030344733888452753012046693344129330251672258421784291902805343257465938789258716837119313164806523418881101453685906267964531489863592463664810534808307398178856219207903403893532996719018016277394139267261136238266073480707669021327778203103640147065058262184264837888383655547046566805160141502597845488735476273729316759576093664387297997770189968697958334750691341331944266222456338143853245555772439027599188573493360058352491284674582528983131643631338674104973174927170050430921502407055258617549587541979313186073829043501803591204994300875656291129562033534369090009231600306819833895649674947420419969924932397250345999219932681061275377679578973298479050845132355775905150732656644078607343062201026733601027004320990661785438049101738884783628161014940326791742818961630043525391592495467885717573616552445622200846068774684531578901888150283826940769392247322964596534139466132463825755173324072062293764866630823601996895214289581986261758096164759876037038941620536804197485498539153042660880240669486741906865388616696806415575568282091011544370678672070916055133596939710744387861603051712237353055330687977325489156982802400125197692386276801407569851725660618368633618053793295523575179479518193898400147427978431588495844048176777081410683014022866816499528305477871542477060926063575139197760585182956551844052794637082292158524570049829482407206524009425109741036662840322657021130285224001589950587991225650584029532346267380563232708710912355231003204230738709475658984433312538450837726103341439621165171595067208909910993176849523474057822107233859417973079048465278204775500638909682809355150315094117202438346555708521927627144558409154849823946366299396006760701138813590688730478656469140043478180145062574521763088886585401383853743283898211431089125545344206249315523114511407332750321565829862421783212490249780633328628179250313335682383148321228320189207974332310682060847267893384102307242355434483975189880651660310774793200430216733900530472539787751128389861329644705368861699166221755845438441309095203701106699257230746679170660794158539788628103065212797737308732854154341618923047199338694005196815604861083838049807862590485135727434254170382400399877808516126016631283740557877321230927272171013064981304710062056131886575932288588926573954663084742600714062206774238343673634653946652804530206729202014943578992201369174031130274461584381891378632744649332178653696165027405082441453426300618045583768946433224006557281526226334367838442533681310950659932323458892531198576766426730929820527136755867058496911674735063091926499191562755413780101033475542719065218440480409538211002887000142127140314113746797058695500770177306695647037067837424182704727258871004007591356529576126565801463497683521077557870995042020999531134390915738769559083874225469176476065036650444052415982675313686148753537639540459037879439053185488473088413000902985675650209676538148535078180761414292247815518933876632155699937416944058995912246648193147224193644474548555950244451071365356011321226607205360921705646436904239153626558312821085281497188442261781128284992971258969265699306998664593247878174882160952888435301898214503654448814108019266825635656179274338987947444062121659491028758922218339170324115580085039524486053855600273813212196356006808674554133419507733128523823459695692015724627553970402917459543927591853977301131355392224570378562541206817299915090388302657295728628131713732828521056164650514949354912056875344165720605072548998520509685432402191605734462414949966129385055783486978975420840713508087321981122481169299361086452839245993822875383029246437403158628870024440979230412037510139818105538880784707281979240723176363769089749530437947673400012229752613898671785725119542014011671376529323140090648944051376907728221496418400373003604960002541499073901619428550808040980835804796270593515354932823243372162460601297585232570334765924323053452722661132008798273657025841557018709184233726638341883400380397066069335028863598378995705528716617748105301156781742540791056229930833146967412236066893373187181935135300122629725761751654697884080443303055795212556229959284290383648582178435320542502996795217968536553818007172294604618868708565982249406611173680479057915846810205660839434589693794683112017841761369585354914638961740384426707229713471127862928019860381225892843869381480543702408309377094878686391391164178589171305040416281823773907413077097831113428272845779212423270001459902021440655832905536987923258983017457527141383737401295019997710536369679629179128833953485927965055800143788237979670233141591212603836739550144967286342323526869061561127311823253945215432860267562548904216094048605395898759365849338020730844784903545735568229027894429021420558174655521533128932735457420925192165792900718689586733107383642844083332048828843930331752338611687554856979551931619570214040424221956468399332195003771538255650850255832655617869275353678635823764375351079913265667056346112851868031945537575969445581022840533855105601502429113283246426788742078452020755327945189281544159013957476604799956624666623465085685752537141982189648896111949887862420677102286697386097849857748438967863428172636064995846283748125837645100269064079983585059249811939124859772902501179494864205484560622788316801446461803299274721027923462976151683673199185753204150191412887467906088249562568346581640096946377906893568202434865379274606663225444414318563439164106417399417876736298634437790425978396764804879575520249381756930823865872209148688388636434233410375542422252872667496562597544392542296824973376071675639722345060221995800410476195374556798235720410249160288733815542970754474820376735194635635578422729607979471491363436744865553114000950832386873274316415094741671963807094317213820704209372616048439314031972107970844071189442180012686679955808024257793300042818908124507617406852123444524966030474609429344596489500106751627353618967080166272984906333656232636716958286474281383895320906314521829365570511126877140015066860600357441739943365011216923968867281877237976671781417656366893151798437311373237701370780807437125803845730568224880771975517329834532314151492471467349785205831080943549714883723857605364390568735268375788544277638436588376858501122762033109912273278557027253782617818551165505116492684540727603595543947516713785897683531574131024519169881754178070098937476014826243594213771856724676400606845395481497917527178957239039468808973894320830407071231132151394980452112796480276592923811601609065556270061779821550322052266182564828646172255302928943353172267145691051858504529645176874962787582830166237888069639975198339459483611876328778914706732671288047418925887251907639124618953127192463339429389916238065906413108361384823876576937017783028217154806822906245613393065637898214062141325785459471128348832134517825568215912413023376000862866894986095790588455026349478978826277582102913681582524667463456151722224220269852377645850827487883908532853360838280880702667372498341556193376202953307022654987976559633139620157589308530846790550653034546255431121114461570733444164524627942014053136135618397134107038547468513990143877232131429997134974075527116601255928812650808398216556398576812756342178603483475843212879631993712709816626198079700161486688353801578231479928934977858901834350611742999746585107927077603238159232327276206014481887624403523499019638004860031126180695293271245086612620901011873294539382659410599072892834177982762221717416405471200409823862057817460353541963480560341364559689166079598446445773402076174011177823580832858905407172589412727010730475668336495122614564342964023862235076634146909096290679900614666319458076165992220033038700760695775298889277222970742638896190415455143172173897232048144426543646916390848507596209919741490438402492848675526264706637167490499277648510943413280814078341408638010727297800872845342095386830011804178398731365110886534697297157196546978018346314144642933164664459088920982391768012249348147690394677726003067154442896890271000736149719555862356168723493084637432339818501174514479683820908805100316545173422689834865202030292524500715024566583914910469050848432402432229570504379455803748059648507538868653233139083701967811068489590048455304518901420449555196073447728602138755592353552511053991503745745127883310766796759608236321483242626288782638387142019825906072022771200371618293620764926125638510127230500904926490684498104777509934579477156870618574568067379681426421306694213725526935327002131796083879458258194995120043019748999855496589936271991601121698995212547764164887788024697661483589851967965395866702146191022859140391894814158359099059857493305750591279558334439931041994229215277966013041991070615380224648260376512947393485228717254821216112084097829897006998601824793827180219509590903711757893859043271043832176889604042954443298832733009107438355691678558651864984336829424679755707085508634829488788614124753919127384347763527908749304851567812278943802375664084237956445627644407338866481864924358309010472044129353997745075714774314996948679298907855350896025278888743309330187320409075104293084750702348300368580171955551933418796875909196882607687011158298779640444292913273059027567990582054638945431374541563966206540976537734516936141376950645261151684077991499623862705454588851512734917822820422952516255395398780279091707343325461918306383915952999001193661006659367484883143243070505858498933782456542227937446768786711553222537867057379134411557600290714595764218854593831052007265730224774402740832484416699834433181482091640398759658988605832329683778363288635595065464562207360872661208204082696337943804240226188266014738831911575499802598386017604441439555794140474934543787171708638471875510913188569101036943944426782271173699291401755519193507325291880679713708626178582271466082977609260994157204890573166209233549796801457800873686944647893941365888869414218594856256189900802333244450570085737225375526184614374530168430772434576722740333955400529089491016977169077553341942815321295760598485666412227279479306812077660999246991420217269065982609441313309357575664588400524724170071015841778909531538503745966949181994433392190249071150325676346556456171828534131493182430584998434149368792846772671127752831957960208880356608281586791683477752434292398008881311225765709143111011226342502422570911461316053981414152230439349479097073394132345201279230997380791118952322826650452895030452173771887561296840187822557290960201265177158576929370473871606976105864070530936139120094115072589511126816260339286623763748175367772002484749719484932531121127234272987195842762333304997201486994766119525077916464552071919245589772525856622536264750714595000917935259717295375109480812462112450865836500935772842824911466673781320262256020331136422681728501187002989633895845401680282658812480120543838223116533342974212376738053783537078921565385819357437836151876512573989878121867830255673298507728091350986652640207951397266248905309108901057679206767895982132000240231420611411144208700078945923094873374114140261200825221628080826925560195904507452228139092573169771475367259156976081089609933292860477199398437293521368745134293344836522946391708497627779277953033312062222303967039874552774068044747434919356936228005384644015215571376361707440277839766561532332087357230311795949787122732621024941057332918557140324032600048052730622608997385411194697653360832813216482111357650834622076493030032536962923765491742756718481845902021811358105754451456382962957648389544346348231957492617737842971080719635676309404648729835939110236000391215643193255007476517882546162459052101452132437503351398260043621138150824814883881279347213620368022450451230577588270524170534833304277076558724709670678516091262871597210987641743555290400502952859981974455634301879325025643285604672512487841910896660777417921144391404621687823718837194114947468453817731571420201177121813133415152658905248358472901097144287563917746602518450159769832289521030823605001327653774735983616228410916331940547236623563366262847759955597680235069246814148205018082912310153228286440458983436239309273784794025673243440407706512050355278782484110584285658892979115264938009983492236385290525019999028629111966437775485564394844600584855214969281260960874078937184117572287595136345317954826502614350970288806842146541008056044178403211746166027249510537713423325270395058541753707863604479114290550875687390558235282196834621369190591824386801481936879932619761202111308145179630702350410293432740137391438106167405434572889061938886140714523606774579245450955860768742239563307474165886530486339657132247285836228405680654087353087122006011841788942660254603333111260295604049523455964678476121498706894020972442571510622039599697102478985494921191523890046617999999493872926974976964608736644770608251672331875775522039949180913532445523846219404548557421510646878223339698906056251141173949836739726815620339867239819790103091586699733709104437437189742752288464919307763549824656851856487137639566135976356612753030067588135078015826576555559878498880446557032003382229963683945283225681183621316093548792712313185238339590712086579195954691041673447334363126142400898863647663955114655391184936531214191104626047738040218544275810771646774953204264371204036334797831717391179085461771803820240828250327347644320211319294617003615016583658170438273614570017874611872575223998275895050357654653530435781016568013705799235855069162497099159827180653246315666729033300817786379374624655330335098117745555859482487228340292040818281280165019983419260765980564305191066255955068490026981905160257254940608950342601937760353157238787321863469802431859843958022590705365033332215068697069943345700804536260289371375787290322556287208795864863595987724747160265052449110807675377773529465471986295536936971271957038002180884551717514339118127647460519915233522157356590206989099602017392042316068190761088070518386760797738859813587927763665413727893234199182881494320755529018011701220636213213443083869400892457488730672572237934518715527886112705175057001097929234308543037526975460760877551630699701724790078028823101815266548843227825044394566227622165093202840180902873277659561352866398810629027069096178468526070542038096179541388972679285483251760070945394432163158631588517102584577917836881172802356320912937128645402262111888414460681416812072270037181499031003159782800609832514606852986357078873457727215588453903618513645095889431878865991404244417102301886490457857945461367572920527177642636177766070925511972048054296897944835296043892033715392503195290248038578536480165173851175844785661061574751346527363954630673587217776503331249039038457991321486649875138965131043113128255352327817401247370238388774887860497560277278929146116454885013097979785736810504465324193033064489295198234198881085337707589644033459070369800852573989897612014712779511154870370166047071906974192573161441900238643958790929256113196941411197098124247884544529553125916107945056453940001023311769731943395053809236298456941364059258509901637928195473520954580652877759369191559207816968396766146534849390444844025134953320366609895999722162874321887183588512152519606629966795794892795121241680897415329986458178444797467819593913972068199788142086264510277009183630286910819666707336296288929419337726137196736345307999317726321159573650241971544489887691602515588667361964183205308493247281041233220801673012620629181109786431635527120501246052035760262336815078106361321090464334466255547685016523903218335195419931516961150549105069307245557741886921464463849894471428677063965679666248293767774132097724229343968142590001719531786849989247499705527442198597004771898435965674303633792168353577885021358745698329541351371519449497098789949255861784045707535043399878313812201442534690699722395232378787020262787615188118222386989416144270108700407459418099278972261494488755295778647653347820486437691739427075826225296087013240780837108759129838967368364081720937984436012593126918093332166326848729866286785153001143852326490654028872278269756073573569783535429490763472855818722309171744429738653181456347732445228995465963459238874761183281956209013822093122759087008923605046228971432518513841126889269376124735465263729384854391129983833964175830353467534993234308641802524617001770550103421445041135067054905749398047555606535678166206336611349455051536264944591137355408932742077630972572187404827054147866981293859533247026022395467110530556874737939395950394988552829574685613652479971167852274951746442534585805747176753429235833240226698521784143136356737000225788847038988744863116052757157426170574923241509741951819376822399671193137359820986884612440050093808297110582396923792882060110854828736450841578556019457654104307505173747123390890442268713033304421592662826224837224714853110647326911088343948112642106526467443603175347342261199400447495383531637251740146826464201636418304306488185972734317300864286808195992478544335719486695800494929485160522836548520203001610718918871097496144529159949338125607797876577891709524742993504836829969588947190263852042046274591375904934751432073427706789508761202268576922187937443405675056818379833218130938078578458769563888856067354118441817934758576789634249995011842615531019753796414373243567893604843545938818069988676364200736701721521230273044274008870572369956386056521577958114557613692082442585943927257603201224026247941089980889743912133448319395634048534629548029307306197013905297020030401627193759748553273492248625808276157308947660733303834391340205942545797785176530364077246979678013368697161517777106277828892165137673111424984269503523970331715149992314394958529418775872805209699515428159059536390306366129803307401378508116278794816328060659974958669287913541598827761794292350928862229648824913745325014390023350357595531193394110426102977168362992439009427489516473825924106923999548823176380467065027788895734245313016088192981652535637872850952332552427132667343094868042725918484076796389901330216933682260605237998667174020357084866836491910599831342047928276817716056760939615378559955468722139794978068492774811831046337586944081517984382851282749539657299802526547721289571663319982809443629112625200003688528891821893455333258618289324094898959530206730867314641925472351642355326587925808884349420272058881139348804513634488755074928862006386976038796363508115503167084016930159672060054817722069896231366068307031303518203547635058536637944406857258215155149588588333028427321019937924727735286385030526324612661474840234290277461486578662546296492860779799693779341118128001488088436383440438142636145242386419129144356758708400563863970464391209782159434601777417894803839133204340746839440269540828897865293469452225661505294596267729927051748970727422339510170726613663019645244682797384879030052871511536176561112651266995481587985131268420441292296511930296300022626865699253255041691835533173847242988284919012462581050885321284246048563629998311776851435918691440056134309256585286992381148818912593494961860875290778953407031392388463163917668128655373657024761561495579049709858576484769069002220890358014860525248333623400009767846323858500472547666717943592596284858703422635428068672700198164906738471419964671632376624942295787441304518560359985655532314512647169351335997118009210010133079888040583656981285806720360956375217413034821416724427044487352282726908234603254405098701137844856540790884202591439663376273914824066264863899766180655817591246102072641055879554738693066411705308923227200008599788722848217392450272609949344782329257896126700064518083776309527960338623988483269585596289780548918449682434286584247913132883817341008934336670858675128487844548055880596508053895179093322372846889177494675599081222113991080265771924083516099602065702443995936080161996856120839742174801621455533837258092752936166991987513728277620471948956628883345951073063700756901284404392846735063567924695706372081235889431940440383436525923152721583397946300424392979004720474197232877376484457626047355743545595385531187405132346838300037432628554862097726297021343900644974996833243650862889391709063752467285243811993437560927290351416066134098109062319842560744789881010217595113064392033217819859174627339631742931820020117609753204583786284354903044276613526266113706021118143604236783255827824908491792703200190463542216436764436709337573916961513063096940041236387135036554912647852193560406838519540007885915692834723751993124133464899702661266598039244740018809144710004810642959757700386430483773909255365774267265827901080444220306750859271861818544449139650883346603124409223469029523798127904060624735292294793332392870172916805386748796030459920691639236418812960021355558967533387628565498789507686480361126417503957928508490557509114908352478185389408042130052023994285031739265773534733273926049163714488129205671225897089018806712202501394631662524518074816457817185238278747705299272452876630540240849013406805599213219463574156173694213184685278113845320338616771757346112330539319347250563830240037385659066237804223688783180173677594643293194402040169142449830647377173756901314742156998160756985891847237438076699049190679862716052590595660592713454301146261212241358894734363085316287057279689570927436658397478058403136445236062185756442649368303022802783234469694062259659250191289797564744758181156023393446421024378091815559356383216998343291584588578445273534151357594601056384216446952517589655188713355531042260278088375528373149708187392122876199997872190878148154380831249713312979214297041193018560995065755778652669806049997491636145137106361868219998303477205592623354287388957749720684278817186045071448881567381413135830199928093809212188521489768701057551127239560636671048008697071645751055451588250014102431783035860909367576624307331321665104544531483114997451216707754782556533088183619720797670817012518635250906125696110260357755540780257656803392870762031635792110374324302489839953701925135699324577927957744668777084531021541188850724580046116138033138068593038399484287892578200399055664153891163439136420068677638780327864221256693300724839818668729074795388102863708441176095390018717993619837005225790681019551704262998161779248170836322281490710730746469215766447236678676666445665245476094270468947424593422165981753557790310029425847242273072524986095999900086411926029548601084166028225711106311229557982750446296446210325985469591935534706983722079580458281879799217510998018535899273095944661465142005753741587934615104995778700005528636695762749162874978142152893516824007105754228795816035094024780200292605653992088049224870721147944950162428439875912037892450617861538393039139483787744828492421457553042318647671653402112742556520690185652993982320080208669621915277263731318455719964361239603435733008534169882893438897724538332346033251665233658213463092061535920072818309352981716051066695909433266140758036421466337385835313059904667791052235376668038466747958851722067304521662623554014090201182059329437268954296543625379577797034494624979209224898417401999286540866830736414613253790774455784193509434511379349842335826743001100527129777931281626669759740635752035867240597884549039071225906075219579003276371596912714327607158892815536019021224226234855496948423775394795449626289094803925795225078450911097232368883486798822781691402489107522416427975011334010949317226133664717984530695692452672365601418269240938813369695021632345042129989603789908097113615537338052861647738457770246493396947230373086208968711752792777471399655666160259538272560036220221799570521908465720153658091813744186032497642210089407978256236522791869362277383701195031430486293590174971723789294854218777907996603651080678751084732977067477748261676519388583475832128175535963602471464245882478420956257701042280786119844864449505915382757422929376697130307074125085667453896127093622060297400705668547741000768968437893370951670782923825906257667220159562078641728648439296227842401558978804372702157293041173951590973377366126962417132290611219365260599214720007582129010100424598061695953627964923325775880327250236492005162745296504460181843980503302757279834156872747977513124329316275949055548586819204546965704845945035876447927925731816209371926760109926587543080171291015502748939462761776714414584713785154092217200208787489838765723386372509663804133404282276977740385818227753864523247085757630778621952729888100992059745220837778888894038522594849132847810309307695808161058011821579849445363227505449460223658906674172243309927719630299051385657847126858968819103316839046087504570312906672159726355588688952324613591483908510849348757237553395326358989221387186588720965471033053486873963296840739940095119166121482787369563690706876803402324907027644309670376924785490081013858457514080062818823977219101819414730540225763290680686936363722098363364220796666501388963017380461356513489876831441279015197885991855173365023181903051109705826102668850007799162562957455538159914227077404242530508089408154146313188499589380640767836742778101765240278609351094600150045830251092755230386199701194490131137613016586306949495375410172173221421569417137991147707940059779055113700386905033336811268843977354142266233909679335975841678807023757970365539340743101230781174498864574971289591055983268702013052321774127579739913019716625523534143219031709931814770780015265831261836556004978188886181980664443448193691343584866439809646173792031810597510001352051752209716219488739540486928131751916067507094785357993166990536591958677676799512722839598894732574421599095104885036434600925321384032375923639224015652370165826631716353384642835617151431396980182911093985030676290715548481706768342460910520684666016974766708946542473402168356347358885855744264177359104997375490373565406948617186978300049096971195461374385801225294710353618647085697223550637936087633091231890999523664399808228935780729127652637033412520431779966928290706782876906800734537645688207586964183340872190537757160574908425980761703609231406578063631240759120278237538866217260944837162737729545932839029601132838541590378490402117150042145995462467608693604166575508768810415570145876392144760633142084522120650450106562209747930584073870279435270313866903867790830379524615645434971630780559199027178454935495963197561778097654814301205752426578303868106728692368528912652861724619748612842427328379208224258691709456375577742832372238022465827299369689680163644438535565365475531720825600513170139217032593410781788930299869297420573434939080211215616822050807368927284314025316268162732807984838368961085015064246495502073906287876915228935342084058635677381319855186992126637675478021313772726601327517526735847397692981875180436653177906129816692456856808399509357268162636672130228092950300876476369211836360639149860321115711449563834379422541219701222763769988528594151447229273573907293341021286922281281467250288739953195506487485150158990391124743296875870473048434010187298423148505686606096709619085583761519330857513960094157701701313581981702074010803376097182536411058273980595704528415182350289316192069692873739279191419997795529393200401090503153459894492484699498530825280747938868483877434552252231360581995427870404227975736085506265835110906149486152296179703704244451869415787695168103173658929316611556077595201322170771800737977037207759101324989037034020283805469922628582223335648733234815936058832095966706207222641909676393911794413811820603286821874656587480226331765784637077156752610716330124606835427647178745448508599654068877959293647575316023396155110544603969986435488789672462895922575961273314949050082073256825913104067445104238612695082637447577058349694120476463906703970632916974724572260763267561265109963163797550589789522092737945888463449464465522513862439056355072360649134082522078164078312125392420408672930774779644722626366888961396236098382988477759352108092725467951672953951991276867477909955129042051095144152754962051677118192976212109916956862115814862833591494257610005516477858885356726019720493251034553594808807459848023289658790599399485672007914901928107172970650588148297820030548448437031604529096560588919355981740413281738455346920466259638686405196005673830131131963142631317584220314850455389851956779088269031756534584556058068304378511382730844840058090859159461118802702552936996482601180209765034952929492458618049055342785741744418298281733209533669016226238183649444138694301280229877604626503711687111421127422906204706270738988683088338906056925876921287258331199977836538879189379992696899654641374918369725989960486513891341179610541932941329074163801187510622343560109912666547901516163985606751810658706545394779861004946137791304124971634067889787568744555026007297388183941434386844115589241174012294883771038338886003963251467082461005474669077102820533727513756073163081840902698581127218286453421503706663767221874529335407705412255310139760043990781584829651219069275041030637641704736888040426329894012832995079244573532083237884450904244752422018698016951386620090556326005297459209066188855538159891437804495415896734564299046582175495617297168997281470662652751180121953358049272510723493998241917109250180690300007816130867803288270768291588351609733367550082432299214267171169210160938600468593807607881365254099146655885568849814601371371241889530480833536002482244646130562550091310927144682241349577990064205628892530878573293031965209150750436827491714950151637359287852036163189597661634423190429820271108526526922772827178282068714636706520890553359848663376680757742628851544407119503761059157794632062515261578082025892168642923545793385018378595254480834531545642985637084336860950342330527289187974876626289355170598982116503021461373454112101664275000482742024363369296230206984453081130800486577323511775511666532991191886650929555237792282593154502647311030878931086742309432723844490569697694794678151639844977407863838515169209960464515742865169168482460434086688837753512378354065359257697535807611147524819627534258580921365329923392978558256424585453705086245627881064020933107139395503305123586721289144727103902776050859519133658117803540687876738219957401056356452550403864325033524853605457619971753112860931222630239863411119363656843446590485178882300873087276242137222358330817216552438138986566156062075525890966546485912537528259910747966300541979628589010876537449812282354672117663195758311048100378026951783982806011883638202089920052951311524363281645660049534427527017209740506077367130538413816065468116187000661302418305823689549925668319727094054697778109661040333571347451459721092959044086037296835851432253393079020733710958011587245421576034043278128434994355664435247707129625477587872065688042761061756482446790636924326160832618071569246285966326661759249072434438264291494575440252872556452956905564314392152751020531108379151705160317018851728219793590149490305222804943387476066940310277459076665935783649289687392650161036084443099003130246495256246052394813569834991620733669304489903944338708566742240923755070573586454143718021466823806703896431775061986756615426940379468835044707813740642887559188115864553570995680270949863979032365434519522932312730595594549383240707084914697430178490171267069106934744722015668560721520509827397023947645856988241613480338844118222343022241539933909748678673977737459801509399622099067686737173055501750704324208142835038082860539943241981009811635142553162006899575536917446740042616165502931721590894019241139190220400984156817121495666219854918072262021113889908132609065132885308006595563039035972407610334774410772117689260416513789192403106613405665319874161655544247657503984908611033367637342144372311095057256123409658507760104352078375215037518011032604920478854633223065700405060135495069367681762606296158803292382907353599523922415664067427128231454496626308101602379440929246585769170060501134611463552310836310559450586928547728636073632447400767003397536727296008315829314217853366994207277023341261976813192168997723767765777989768248968877931721522324060250278176758882560339667576639366420101863988101009141485346347406236120169936601242620291634798745388042708849081257177148562194467758585695140820646005188023112768355349354086875424043084378507759680986141908180762432308815550242968346020143007061740016290690059120337815430412389530151202878545201500273740250369846216949564222694448700058509486553563030288735474846018476567691368167325148812173800077962854881403774587019317155838034124670672342946152482992357893308796473398581044028031426194263259758401848279889762081157361504645242169165121419445876938152561311965292295393980192028975629226303696696840233857410985999925160792578180292029577706607905505541455240598935583917826550534544475610271149950315915641565144193193976483622510840855512892902515803232635538207449375109564982517839379724064111876294104572130148569995106704536381213839050924660216661555638026567552875872708736391953229724045427124901104656891575635371408179206799942557290269604929695760734342185279213066379912535171873887777386569401258694308047729943208071924026346739481745423039862361154740066811306210328424178460972301783063006148766539273300625863459062726849373128384976934786243970337792087142793530065912770839142207582658740280666253695796534761006597994531035758450213735507226462990953830001060982964733854665038806376759287895743046839181120095009087242095920109050921978175485514658288022022218597874024788943361372437357736031949696981915649762274829381731523879285996126090438615346547262285511487914612308834823252930422661608946062940545856415022041543628548867211472930396128562304680150172687581031156340801487461544090999375578082504207216051842799813796680247288193807027125887371224620051633456308532945253861107561385928279407393850332661906888307093346715135099133410391796188400729198316959908738891922648038437112849394205224070680707698459647372349844006917897753370290350178870700344577244347499800483439014068852328661191886033869931971611303818379529732659161377739632976397980842788021786491632376138474357452574040238592249581574857089919425318809124426915510891839968094068828157935984223450907178589945758686327375578985358665842671493512984880961686986513067821554765812170061497410245311439563757262653626848626542180330152452315056333486506128797916905722017218892627829610070804840425839864905909054471927029865243966014733520432116357425818416059812515445525748284733141620943218567979625752467222059224935991525829416680205819793040842802018356758151272958027104735102600175085757076856710198628293353494460245733561119528477758413316932118313810403773906525543763340618912560436640105908186579040337367286194482866520190415027280356727173558155658816073436874733287962128653446570430466219617718409763130290975915241583739849475756873199450335746011369368871836616873973287521960628946597885577807728843750900805723158008181212631573200844941873117617579137253197925289244888460949607002468081574373549827319554884492990476102751077183687177311657854310811553367790034771285809395925681302898165738852437409118061719945031843293796502933663422503698612395765543101058198347797545684806792581456449464557250765102473692300945348450168901471475633648755788520070255255234288032670287428470461183231508483633519819434339663874111441377114234795469138333298817616949484432061152813821876181775353551152679063005547649314977663543535582309457712686338510801335580711960637212460753383313787210209593661534712446625122772605512570479747950887778788651552003094974794603933892857945000051350048064393670240800602154578632632872660539371030722581464112735424721933728973431276072817878057261316352989859365929439963893997163959807864046412559142962893002574718212215607604211474547863944032395489160042795989138139290506225923847409123501048098879050693291346289511214755496974744656912780996240713314655484593421897002967067632070186735174755261489333443694711393222893020868916121890151338120427464858257609467508920618370204574070846227879680699516259996574799986233490833693944891591711039238430505440642567080793479505699164024984908343975709361753808445201188944992964932174308660044026814892244393971087345894464649602647615423237382071744082727956202321112637528061961875964053450443101476737427634789843816207512137314137511018345587903264357859886402667711650075664890496975385702205547384212097235839800897709790899013843156836279521625436465352859816158889809999698473133662201683785875992741540806263411728334655897761107093561816223518968997711269564041892651953395545253645613964814371087713028208561319322836554763533395772953395379675241857321509073173466383041305003456133082710217597777519172228277311848276831247841167039144342334021338396094919536806776145006137883335862766234801649946828403466922259631089490870038278597064951707368831963397933034217491217852496894621500475184977515386161700754981465813835999070147485304897555035246925081965036704772248313087600130800652614036558096279974680253418914248131178692458051816140980899782859551975445142556311811768420088311549554300498013328126363716810265885454564699339095768407364805683456490522964772553467841411735142559075768664410948990102888225129601757017013076362231394459941937437292572910058973146209566874978006359120932123413476689418983469154695959473989148654913864182362776144247623665678129255964738577605296966077444828501070423502338538436975734718569920385926862725443381595069900381639215749349048892212040847399850480734799784839193100638146573434428855897156370873685167235081521844113086705121342763790376249084679794659190481774915434844162424764997587527805767933890266553789629260863556705234724981370490961370818890210990683738213694020798072237905263096229026654283878843469237485035239356991883858252478895913386334710060327512246714193995899982834711437859940902888609442414124152763151017877997763258967071135738059267193913546275560424897122368900764290361182335371084495657445505557369844176756978489701772051957534175227339023924998619795040073025699875108357760105054904789339823627261334483448355523611150624848953979604698003849894916521738024359780174273252400169472394698456332554476742830197249631336767867736625303396401935429709150299157490304715063720752434864839609902028169257314426842492709817502969262481647064277790188765605340053773005508392577234811415989588722536901068223497868763682337887171367175598375612659993194809052404587022433516225330641090737292659524342335878236688593755899128287523000299071164752091912971025586730391622507285320182362431556427367397975069456186114381676078039059451125021699285801086373900950851783438849513416766825928306952789912838171636842968568218098590572330583648509538154492197205249164397050441195577014187839276518232159288444249629787767575399488108979727603017907562882062502678219638838009815061068303154554753642012548988629705680193667058898084170311739000480325397874789499657812974279964071671573578831289566436197000643063822812942684703463509259090002311037595044080955916435052912579841050795797100075334554919991647326742688351783499313111299803000340727441417659021102909543287588348265119318567858831060638657886055924529969644826648501064118895005928662066214565406352324172909069094693950208136640498372442184142778531157939950920182779026548959906844873504060268307655175147330474998234960842249164952006597833790227784202731346671573487709160387928075675698258823555784436852819846647459736763757910459846649139512878487645437648284766711768369993322700380982621891678174811406923518052495960347773056937524393687193647920974387504369880654801343484606400910428220135611609853026476258563224262388522265619578338935758731578265426293770210423653964794446648737117246905354450628541949678383644122511135541620958298585862095366466616847082440591289851692288471002620831808377299356491255486676342758939739354155004379762419838662237872532570081620728686610622006287011562309910687436856570576795836442376698179109237334355635272535514031904828250553384678208219623531422614346305052398250560109813676378704788442509945139860305401469291825103302006420032053679880882271119312167975320157936502145653444185456216269332408080774975048702252779060846883869608055132392678679149427002057737372868453339199336536830994721802050561361285203566358166820752764790490264537011188325374350641622118476721395403613071773092377525987576314849604710811455768117770223393695105588526250297911037818414026034904057688065009629983412597258638787321261827673005925849238244034214165188887714079869076869361405961481701271449580340763946967101998498190218578318394329090446789756596742262597744605325769490744613738791291742073579858553226326485398582878455008101620934932442213967072078219993488455973113584837122943047473350578989180820054153457716043437365665769722525154113750604364237229359826440948624002919819895016190835676172730042775545735626487990497762820739152017283358603949762439778710940254032766632423015889696967389736098267321200496728415908017286260818109623928821412356496149779464364065345533327297411095280347274498694549483985904842601074818708953809538269790622320958940116995117588340373569692389334978153508832544729930405565795503367757336474231604013617270931427307992484589678251192838473628383837099014676988625529257542754115871170043133994920141026182908547678227208792605142691062878030791689250858928297202103525082083665951365863585043788050561983773133601718357071271770994333339970683031163813085584920295404266998573534198397156145311688845110306670502367369854439369108270963595763161819343154097552384557267234310394828117294424571245579370532951159873075078509615683126307841613445769581274302770472196324210426251937748367584435385289316248435203452973871068743366016308680254433533714467816489002817016488032554120639052321748053724793266556825562130180827085035567566566295762804094677757334628684639255323460756978610462564202592463954932575099789906949623304632122975230346159026049392480228432878170993957233661764257554348329081134257618186705035037907010127774850452520932325391227055514926677802490782001335001070273518443572287638079906091354826933595092504231213360905062868979055647703049189422349749329504942466292333067346750859515179093507811897995820700120898804036747837102429898148243795957547569889505218794423960744046782210619647786822257348766186490207983187764933981645472940003697129000472705430161103838082831292077882694005768625864651419369203153727914525945892955888672711737312669409223341876047330400209689116376497786800014509715317941052883023770355387264180223835116405507047824420240450502538660818645162914561641842725268400155707623429885484110536730018881190674801448053832977637808568889374703167737185463871716828807038914991087923039944238168519201233331978857052864922567696923765990892944523527365534139461671911529840749825437056309860021400877729728182621115069996863404932486838053760713000904675705926321581744829816061139680951985613011963505899459035555665060970088201036947896981383976973254053395493800428136417148895670585883012171808699887601311528738656236404345028692925797790826779183903835434826179086316984309255331046116325961239856103426955092915854684462472988382790310988670336310640595380892630397138842762818715374814299618846794794641553191962694736062558485489058697335220810912569277608027357465850137372868332596720473191695098877522242060822437554658157618750935969620123341242071401191567335365044720386203101691135035581698272675678537280408816470995159454482708976287357760430140452651694645511703180155379393372432114910881505092154484633046722619265977018083461073826698398956455948665515132721294447857081868712130664137141195451691269259277245836860882281256412860200889986037356176047470338362103056062789652223929194660466203289997922932155524556103189263199048756755069354082510939097773508278970478397622597359938009355948968296543760283319833536655519859950398448430993011664451012359915475166108647361763946896524159809636417142736381552378479798936308323680082671051016341007131900914298648489794466177902572281337212333980623651189993664968425850393757850127923868517943739616044205042885951209575178783690689747515385843625132826721891056267150889725185707633394729885693349798151237414825285055193853724526427710243595326178277806225366911569503919872237103513341931264900451564641397424222549838811075762441425091708083709187799017489754965010416291130069312534797483242642322985118085360246427458283383453726807236498849935344085725853551909558139703055283746024013224798601010376284911817049861383606762465023447915207037705344419447834032151723971774592340055671974956480274040767539183582764618608309637610104983274535809302274806897288274213709441920733828032882222163975110221721962777351707114756261698275424322724910324945521638821291122613608969091017858975397034142173102638556141256899412922312272249726337526901373970584971020682273369116768026981816319721671596508776099416343805159296997034062142627487147748670693624509134739310412839093140706899076675714788406821016491884248034275188223401185117576863194593342772365716840814759707403702988019853292408479008351211316815196214312147064867482337917576775625405506860113277373880917024032609013506856414208772127771007600614068713215661995887353802682984855668333008410584742758707605999860360667580426359349530123631163621035557081333360723210531845382601623815950915561264917067766314586848365996469178717482367866057024083707630726163574326754959468297905048810394852179741169847959126933148214623761614646966945417888813180184124121547169356769358938256535810453636340557889366721414350134664673495311863328397435419753900102476880451822272936734904222688580356392876492383901515552254724730814775528360250769111504243672115647926913685084744530932727219647422186996694749588885056427094000713126586566560170313131636358108865310361806561470322803606620098061323490196768917051840113133530432907661148287138410725095555125616635353495060786510771389510057194835586350684911008356829501561329181301265054057481549729707747674732167722138146177913982530244170429145811744553891407351561373343586437551086228693323346794977591189918321081128239813784353348910664602765226369197273720102489536173284577202137744660023364969026639824919390689750306097848634152675431597044430625037070628499472584092571967711679146895905758921222549373068127997259671018820893987434802612444808379534505990974166141531947791097401582712606500354308538183015441476243997369046503459259347041248642477456902536387224420396171991897236188815878900110647467313808586178720968329526923127957465340155696484082072302515448342329283933831089015750033463184862763207779144515667706025098568065565389312217650687358260531846983303248944633308124941337445422134367843741762465146025678042925099187958936910275019333771617781647584106100697467566802132837824957810100493461965127518150909362684893015387749954972548404914113627526347618633993084317738990715134945199220150091342146641854313201034922293611698643629529380622688574932456424573981919899743813169877280328555037233746661449493102648490008747379454178036160601331105068316698743087658708825475305403957399368709540708866789423228951807959950707344475537079508478479161178160709234607862954600544664717100827018140896086378775762272774784397765497459395216994819727032111563267160309425470666895667130462172696846181928765984467710399126587261083990223073855922193395587317813523606383314032024389264669749898230445427558700638574182462135966231921989443378860516723988345073320521546576502525042048797374994355395959164441406963591693307585916139388154942915251224917139314469951988256749997272082253773174870572252265866370966811670719826606553110378521069164044681960138496891113446206881172926300938242049881225864062853517386841065559348066486281047177227145403073149305801892556770598407726437545366648525170097501523506066492646718420185745673012575401957816187423188642787561333748727545797546368463581771027447255032698391082522702568344738930639847609900560218216806181703852122557230712748529952882234480195645184862682293207178198085839083129392820295249957633484311079282389165830771724825472197352373259865387121716496020007946626215349671301622841018461521952973488936673846708877349055414147219857722596350506661464782464830302216997451821040053334377356939183949398005808384527084623446443627846319319001823630355886212149003588676088836558053192639510721557576937014208853458096399909076363944463110450281683195667030106576137751624037033333414358009770961019699634488981233818312826630984019107980598113171740838825988579116886842184412703051401340985850726333471144649852420165567248275020923103278050374591245756950732738990802189588328086012412379867968330355959488535982615680564117733173946707774952529531946534530245389491057776754593334557631392193002741074347390164584133008282455553048047229757883832895101266208272678281355492918030128406239028426438244724286650414322620482816416570396151363323827947956181277309998461204469785517983948010826033198978805087760280110467672684336435291311184567850390375692488135042873743472245037549304743791112043932310681457313227275611498867755813670823769436833861654653195221455484778576598388928445668941249554840147170728728678249611748858760028889735145448000917555679969625235709303963211675367819859476655847683339894280097360911698128546255999636008293804750762399413747989818541948892630733688558088010097136781172868760247097182783879243848994544898306076484700129223212230617695334302021098641309463818188044939517887618994894946236004582835770675231264480224711632180365645032602440804728407937614474917238205603085064580023717484438927011781035470437850316839749231880946975814638674541194682794863698663704682499149420786742318591005693846409586502552446169047105043121419006479160467178379590110456342301753045494589694311904542279699347796156758249595016470953722665741959898140072678108276473711485294952305860267148006122074766133808593387143923809512883466603265561907568921229471017470524763883593770299388481032726380853695036558009742989378834639573632460686030796032303232481593074995035051153126601889586712736218672125436215994033873225877097129622306834059093169618408116389216857498827281009508307582967422029757717917705603915744206572042368151146456523974121518677380230397540683396991440856401093415873056346804480349311205240712381353596495355197823812182375779975514044698287805222272722790954652740524894248306659284147395838352732505259489870708377316045595317907551388806432830439821207090268284078779646039340273346779381326827468389600689112567914693590744752034196633496380579285894771552854892099487886929167421127597627565136443117229711465421878838318153028983154591684254054741558746916540278924918879654973037098870256019594499444885467462634034083402312065859756235685902397065308154986133619051204867617390389963000088126984023714724904340493498006370190224753826378431201492169946946900308944736491973657639557792682423215863480850180145466620272315036475738663390923896753386449396684573686502927489103050754734641213306795713822042340991839038749327684872369716558691470567734126841175643327871840770079342443071990242943570005476150829629864049096050508915948593856214704541656824480538673268756317064955705881621278142070825583537047909826386739205711930746653648732687450465902409155211241535279046811161495463393812403530299116343920014524435577115025274751881586326258120588058468359894437787068342360856311530942158441825754849140312098155931735930497867351998326461170211673107970080376294769250912095788673703248791924490205951438832879848815548063250077689964247119591449320918393751572328227862871871899257826213210821765098616628417669401586653023167684519951490197708976357979329251299507634334196019875672584429066180465263876411300176818406975995354049640145621704695219081688097348032374796456485896901117784497463849404806772709415368549877847117009899950842774444418206078578154091960447831325973969434719180739641122118184858735066505812263669683118027240680484270750935043301970273586919818316931246324076398932594896133444686728313501227528124428089235448611771107753736016829294785833472852518559273450643268139191396776669768404195368613960133624838728874990124318210015350821488198945932803994413477893956239311403215464656308946361388889798947884322733769605449943790462172098638698137533300689039543856878231543120849416391070040442046645029025680689060885724998564214430214672028957081373584000252297159147195717180171940956985228335544278095311905550449887383425956523546724999812897563478429222446680747410875792305107233014049611805594713683444517734855794333498882314935634791984158283421739663015075912046641384282593586851599583603420855137451929199773778100038994909883050382415383412155168979668489184186544278714389428275685992267152027340518531171209208978917282219295588916591968017322622147896041568918026534980529565452762490731043122051842771289119734847072863266585468173384456643787445510582897073511875257425323881265493391731052592988626523290797654701243950053564980606387706949890989960329865121338954245967521749248262407465032326099149406322690875214464777893262991576925426671664746349665708696883201833387602087100400500924235981697539007352220296161926721723954675050519934959883429635651987905950448805959571509164904774597642148741800858216061554756144371443201286631340259786431537300461565921876519247623742294445152512097227671728846817829561110687727952438862570453402562796715652064944504439252358043948124671680520447313097805549326188560537906681119462123740830774687239756283217615076902813970964070994952779887282990625033253041447264029898741587380476039090897079321621037477369667720123988918300503681154271263558849969210431514552936879092104134571503531380588445647742935680325712277091220302345262709983084604533305139753167746033943663800751800037827763218380111946387936412484288021874150597974385402828489682418433627448065286685540982511894871260500853417627847824607853929096936596052106291599996298330844693012718707600478788256203703332907661905222137060504188644712603784026081442405908066555466142382653677517751322725255101597409403688741939834845388792002375230229998363233003470309080271542189842043704005000789871886679197030497113035709897140184219401718701737898095453350929796089660726489153028401776356394982920110370332975032540349878972963749187122029146471713310485820229569761954353115316542223687321194916390621625451663788744904341245982619455504074467404165721477669680057672541977524824291932077483898365929501449369576782615673463241838929837989018442205218922373426270030131410127535640806677291817476200021540794189635371443721600445983888758768183321785455765821030882357135028572790732793450440310429657645449565184879694214009658502989011813112316457739089015900903066075322405759473709261237005115449761565836466721763181910087281007400280719889246442454042613065994508074151597354158547576067089000711895348847058908274425202612141592770536571683059770054403690406641965582911671009656172862003374354448664730920929673668166619441101549583652208450648825300771514194264088818979235472252508498884748091737599451909363176146546242207711863945260347346684244746356547023293785218262591189430688285864068828164108000137037308273860040959173764469458050720588933941485661969780846616801251230411299060990334554970516946891620438032872375966681739199818962088170035533981619931216435707580152695360832143645036464071565626450755138959321704258641735644538684481671330011964558788808738498533305031448781862397645978774133610494929127012219916094920443496747181213045228984234071442915997550245246378317568347311661393364599116268440969797939982964531536378883317509877762900969833034547785386056562962893404030607754774796037955909682879966086329207127226165716832691207712405734385847882738580806881681776748847781414148148221825998844818796992310111824654094233996015577405572191448696056812603299770052528737818747542260939689771816050687369812602905660190836501552167420837594557092214433106126966138596598387305997042541739466001532434612025809432335870702612116682076907751714836049158074407404474193881903640312993510804951996427676963037476455291319337748925962182878891279443714809058602673308147516431905090512541099337238344126084021321228762405096621714323107484739492801971117791022255277602006204061342399317434251100131727934331939623629491887841519441335168210569118974574490856290307239022354188421324778579746667492117685912755895471955025875634819191900087014021518997882505812938175703699584245302539099310718286656790142278608888448350517792151435072782834957393936351625697866013861950072974197524332144967192475509609414726296375327637535807188327576384176262974602477980201766886029517489928542064342104044871891257727047889362987337717131812894703903982546274721580608043630621749813677942506679306809929804316256733580084162776544714983925332889367667957263159253186385762700218881438875747318593118233844755189772129812333690964441385062383987636990735711953436872463473599294838660410105816576222529963028728111521431829160265255791580488007965854872443304905156014425595299209464432742029978910502842914412459797483473000664542209390300912690009109636891295812169141795580678363327849213822429980477772584736614612236790872806703235250288252674133721372588029138070754268611629346960303353710714056032472194056228309975887248437245501253576090781255015562418671252395235693933535697849972142765032926160580503036242737319956919897687308437674555452450371152277786081917938572129777242079834641508583293913803543162648020292890522010436130983930971450014703519489177117418982385046688109429506171336610307628587168434634276399802407019899149259469952130814506470540021764733052066679303319611565249647706946810140404962853696296740482678752602517796467605112955927291114968657952164714319603450577095797135416304040406265280889032345269784188978938063236368347068738836967420457176351842525225063484693166120143109086104153691646358463884190231506864239134300763835849481724846781622979829332691825356615742717312435920742036784203012788043509440895491927217760036786775386971068293531821475936540532644331519247517124756048753119793921717826296232674676597384262423833762563922878736263354988701827739209245721740550960339558571041702256669836337456283147330619933636482509215345647645841206029085022421707382817336945419596483549169553600994548793482663195842480686587029100077090330792943339161565349904597436504491362349823740176740803631204211737500081596216838038400688136325703878496183731087272137182212272196508960276387143196513765126392222415076828828004398658667556921007839440142256932560453595520369401775947159631031286409607867179168849899959394688688064560938666128321771656996716024758300778163752485324289112164174734776235553106009748292073730859756238444500095549072858177938501630413543994016710614058979654942594722131303765286897878627689341952224571476488954778176974976531631228017894502686698249868694171664909342524632569865582917832796929734903214511627162271340776806181957329440928991189975473806935521073966497105275798553907893915302688673379412565721173143472922719411749977966866563642913774363880248453334741885707262716323805644999559056994836261926891992947348615395486649277788592530764837530976716504201180249845621597382394423826563387528941878102454808210123029829680130768744859221091425921612933775806286492808000795216067151122441129310311713838928020971522493078501255933975011606978797668943517273591155498732564107858881150332316494210028704355320698175440470579334932472600387579115329495396319465130019466053839371769002163808617706509849770061718768340863659398920653708026218963689142132831990129264976145556077830002706526127088641426813406987768420148041706408974889523607447032398265029755662519663629373252833628930259188790105024457322961863958949397077188291549748643043695836692465453157553970021482760978975971317384055591795848629604396878195112816157024969697765061768218892503321752093217471624314123865155308347081920720380408005712721081844953275413643784108164343466316661122616181341146065853107005683237381396182644819129647864925319999267137963107771959100278904737317530204653301113152843646634810735659028781335614138720579317800385468004006703655875518415251900011737095137353194081844665038992172438418091347350574777771907449506070818894647673366731085821260133347197107746592288707438154453187257058223286265644097841989701108328624078847271000113735060104474800653862075579909039771077518474109625627455463287820609647974820180761555660858480890623550126046639649895053934942702598219148627517233525284159974921639564373131361112132859234342569587192667575465957447489043403733072440224986673693707680397065767856117119362255752472882157021838153943003138895272129638829049265018383731019839924413059023298566286481498491744257489724021948359594201885905567664019908327865527936794348547676692521651408085738918908226169410585660963326318179783952392336862130133135321345608007921075885079113425929912088097194167488196370459801836907423685412410542334637408906167746765226242470446658053069905790457398091710884133462042705185218572541900915897636711464875174104766117961689414575448411885777328501868144075554378620598067667521418665468829317226407992766091038006576717865123847856223487580530203226306272172981398655545945529893502865686192730209954358543150111911963969383181415231990102271470490389493531947192547447006228703070803820680053191492284102055916698351604953699255429342662578256413548596885481932871133928182410733587437618019941734976191327216986310332793630807770498700775455403057582871348923750030641720708182385700003204693662530501553260026655702388285633013172818408091086451191213606806171232528053618091261421544608756591624754861413563562131872788615252788885328812630155579641055557431198385361236896228698752752142514156895277490789209595274798183376997950452915070135040747954306445035864364666097882760439632912670376530922803203938939142217729968258294377999652731898431641439841203260622173667862577423008330698504285852050954113108922753982874061282430986860331650747486429748071844806678897988443972799411072238203065452137611206537045975094805006617019951363932098147280136167231726105001871444995335132883350363212535615070988670171797814491308808366044260776213967973963483567136554380422226284936879556199040124355410346748478954271823744778988706373572649820501889221583319418457383393603515527755954999279611151550454072058688031926527912595643788056249338502763604516456555206924344273786344365799919314209526509512547319814822204619708674415262847910100434720993589686772570359893741837690179182876976807818181592387408983566948022436975432339871844619141750528688486370041865937279395376384157626053793543565145336776415740862247645751568269732861570049036196411647883460647437785705876396954786137592747430788047583112687530792106396953440691781979579684683505970290935735660632899547498521162409973661311407725633386866227304140479614611475971246856807455415013777158028289427831521818729387985784898548917560648964099588007013597326767781055736758668405894679025872955141141951219170572194446536134400553516357179214496422173362269160612802199966172491034268882147438611877401138169380840446609061548708639204495364325656023420390431374337077034138911264240940977477338658933680330931361591281695139393309305613556828342379521377919346191230514330026689262667570997193173347196655253554985814879740460410856011144406758923725182882503651391541803757082303554592399284541711391650783137168906574161880629856742972232521874405822487724762785266555894929364882252514377004847235335920668256585575255956129636915641162327651447986683485462822725024941819388205834213378683887896680964996715700212947666121193757021904650583231165061530785534521263437874993470853962585396017789484214220951394084393579488846707845744759301571797219660821055223511256926452244069997227368315245969660217122593224513009275486245489152772882477601041384555190552416315668901651139912209755016230369996968499819722648429393487539755607265894477210062311765944480933112352554890486241790070274776017401819313483424585731013930091178986211663642645838145200390164293384584807599765070120713310187326614793438526769791772396254094056222356657936297524591437097885956695424690599416960866818870043423831711703937200564661626852612822333124474378965500355418539929927236854445531914511780340745935311764431957014984957121663006254948930694028399807939805898835083175173089676673552657313241011621048587856679475336809946483747891926941295928754197821739095171182398812987952883683565859004955730572596901925604339229161889915622160275784829134122738860387260119740135353805427297759198111876378578627381738508198394364103389992667044401490241041546740200657863591414094985339537045876357363052909453908079319798962625165678918366812341794969987125589246109136161011828250721153495880895118265247588124432066513357622811775148575904321253602487597524439631622103201731173675958716641894329197676092148998496351935809407581199384355282578655358246148598869156265240184226750831868601595532109211428025065365469946052497106363560636552537586343901140684983483135906544665428430824979801155285803971810635043577105932095715270499543625251912198472934911193143945920890330229214831108250674021586150187910999451262316805727706381465453299674972818982057226104739351541794330942571894601848536293199379642886074129336858025174222085821391908512415326230236130371961801417992210625281476221969632119510749403684286043543205049215543957563965502978514990781266633685556921222647424277222780532118138901937665529938716922596146394753896466225219863000390201828425856969901523854863800478855008188427081719016037573376152686631682186085048752797776249280090944609201639444056744827506565015100839334988666750662170103877861705630702023029491525713123963681680616655929677953095554283119753935880126042322536805050557822920207985596869399564775569291353323721774031228890366536017530452660562433299866934262526122110453789069094053438986968321921215415541726683528320503208817573926297159177852069927911683892754440696401259496227039069548374296701079746172670263558088440890074184692618841318594642167779691125160829780621706139334184906205023310498604550558768552805033027762425260035170387002210245123355009996382546038424040807113941213662020796263698389017078160461132579817159855843740204860571131824117439340719048344343144486889849279657701251288485947955523502001852379291485527433689313253447737565140854913505495378899060405496625730456896702488002264991464575471887795524563363946286448705068473438893367687302719643059464450262734938328831450579925707112112120713839415175550755765997005609194987315085185684993018309712447217111434966500159067993817891578976081552723050721243510591090842840289916593369726185138757562165318412356730560039876111082676231985474495926082270148401965620962941787866290009131499767546544029753631171660038413807329533570620697791236312841856185501583630467347547556721162870113398308554694689493022514393211331858847122311513255680562809501036180625889764377423287968466703189786613749813130754668699025755528507730149486723243999718910736471289032981495038515990423341959691911055416664169961183919384924045251671560495860528897084465441220495615462080193872615644804252568858948481414420628136934886006342787528180219977966330905854963314729580184662500673759639173256452868050231988543350150248003295617278899028124310904359912516671052958505033413577871742977436116457425158097668236566464382474421496981923111239137695142374972932037954312031373854223334231929474344326908412194745642836566664378717746844420869466842344459963059043745940334050239792320820532685590816489013987172087029195996940059626307394889987037681413504312605585026754138806405268666252402432995079150939689684265076932517443826009919920034979971547196696523978344300167630715156039470939618931329478387472928046762070264974111988260355859749166426428061475555292514327295455747421545174277102320531572236752565871180561536079926822411558738673588518007704606176354911334509898207031357134265153715926646493396362798865904007939816073222437089400253074950143631204092987411346579847981507444179160392639221266926130754749147871780497109798212548104392318548433870401413836495318167304711007006782997724842320622334575532560131889168532289447952148028609545462720427280564526755897802273277658931761300642495132713213481021009778158768650286355981609907116342633081722916697417293927221274420048813531458520205914830170953556329522915201448462979098316116036641027575480726818075889284288119245598982740676888050291762384690747889187694768352749359669996403408940080175233421759696148461119540898890620970465184705246718996867592918232443931522443842358262785418756654240856428522363634229450712010228759310445767303491215959921138917862727206055561425997124888368145455779901666482375228722317256989453003970035311906448252413018035650997761939626272443483999951822037207966759381907234479802536234507518267945271372461986324750015892709706203942459734076341870224600158515588233817496542201289538732187667641729004544519093894816720589787505066700176817758182817476100374710253073507634977811123178734652236504732379725174765632602516328248162442181212859449354253642568691614913090957731287195439416317306339326723973679798759413897743870827510849460431643506384830739224138946438500152886092840509246310036918770359697097815315658255444430918389377697627810768377015274315558037617898670443194966698270708438291240030237597715488691974492719933812481504744425583784549357764935435672397525797963646980151562533114382220366228133258711442995725510760762993862120445776158162300273552841045734396329322220786565553988178653545734725186322252469170183453603430646438040555592678717390802051361978619105664352380914199532418633976260613794183781115017658402780825430715493091260346635903024764875510507893551198200327599979397288244395733260712993061888251799757981781312681092825022626621519547983586450529280711195529449851899091850972599045432087242002770532304948985353559089508026231425864975725466773430707717667131393153251561338637604174462008982894125748720632303620133857705241921398158065871069918815147296050352242162680461683666344565290491040257823868064011272383028219208217069627927938269732271054181642282430053214060346238889886317674039256270942119654745293361287111919472841918226499784916026945380513370335472719377201179864176001716090813138740397556871988693933217281554868938288914114517637041369823047897980709138614238716406663627604802923296266692391537842782595948716126775872882496372658167226496237838954253445177838102147565503210546099748568439665944652949834596435863298410401311061994984150912803076905132937785008333742245040573465697857396714959872159240139739894104058208215072668309815965539957711770683972510511877063581691645844095149969066856990695184990212817611606814105114759440457049022915250426217299287821812423294682529062850405248705296098864363053560083584796410239533569975284483329641609705602904996221406424896655251692182773090954952348126734023663846830444803372273959260663077063512624840489303255818457941167252934785266178650524647755721259761579880338447352994556874209638009765926700131431472795166710378183181296288098178391113732928122559654251063527275680250158089260110563290383558819208472394217627719105732278813620499410654220620131104488022147701444928920718102816485509622557941936153280336986510730055190593874321869602165447081201797885794508631162503452172961782676379050389616000612398689363052005325625681185842028692727910244715058424435307113536935647705850874639049573480300414016614538223921485443263208406173964136355315796011223741413783120968101970348276646603229000685703018404424489122379032240536057351352957422430215096155954792755458327933118584498851640017798185452320414730629348934097020099812933397225538249056427330106187620542404027836334164440867828857528982031414339601065248030365218332558347911316521431657545063620372616474958421765889790981823794003195469984468305802473439827520930379139576174142684372015295588226203151654086822371861643497991070734281130452290674897982739967352834170943218560636440396899913596847873357197437466017133752290389978949161136876361660797490419733804406907198823760117301372889799854275014378053232057229407090448999445805618627193513791357620056344736493660888826978927249198432062164833842963460219940356697000734367411437412520491212174218782307834150398443057805057433449037884600103460129266035096958117146210577315164904707491140833722880589014921334572554333207358325392888286772570674084145755231606164132126605389493353260488392208026932952625414318934060393945815905930303969769363901728444900034730691492001400428355204155064474043375718241240724388291000831559555985228372100129019680932437198927670966398637180398226594027534253265322056494543684974124619130405600240269115329718151694425040971447338079802888589623316166540460436282769458691466263491937650934895033362214007368476034683549622814592522820957713487205772836485024836228401142009117549542231338979659204538266517142030160434497731220093523381842236846591540851702447910232569424483812561993285834898813494033865211746089633561663625550755037162544037522719816424577359128705469630062158818971855185441978676565795570324080092166366828478857209227070978186375710220834058718899151820130354966477712463424270529603053468599613377902621636723579750022078252595789239961366629331137728140395170026589646787987800029644841687402771789763998871462885285070506751832980870192578970336147096124833626802065753476422893786828320948015694536355051700495072756017698278915224182452649576034540828587542481545242038471486048220554746519582794255356366442955678768686120689310631575914908675716498060742972833804450790047150976651602393334282728305353345473978667470908475322159664550460443441036371046181120502008091453452118559791786763640873086269732970060496049897811802240366065277898418245029013953060522564576948924808709675761033841416832760845350504313393042889485696028565272544630035131644389350145673296923140944490964759161057174437184693530958397297540977251906897135173566761261969843574530613986087985220465180422775607135295487529726677487252079003578573189442436104733205076982522991545138708822459457601792354582609945449412580486861255849645964254111507865057497646168148584967328401085476607655449794284047613012792707717079145396531110781888162780847852710607288967876318552160347000989167967999386869221305506117397487371592965270130979120480395642914358012649126415147232822571249892733997152186727158316178504244820761887774131935820682874227403534549160107825942626142622540427389829655518409845621516651432377487624188687406850078435015010602862468939523739905401219526524632880082693588660562823754192788536876987553362400702499973809100370411536275635233873532914609247595093574958574165272314875935077484232958727883083474541484077747759196487987765223261040643384501767392713937405313927402070670054989531480032304871631977737145023445649177714129362611204585362162232589944746717044192129370544305372206218878404782768139235281071610214670805520981120304928039574230067825269681470033967771088965454152821075824984805774571302801549177093169748857982488468170831412819202455297002239721688039387197823236754680447898251525442757775104131953264762983017590649603052852043345390526375260669621074482547100562526840294800791640092026827705253120702243332297572085406094910370002225198839788205207208907198878899451644293503756246412664785258665659641814084958548163332706391091548473834594232748911466326962872804469482818278541539327525582548000870782579070189086364590546643031487947129999529284524471995042607948116817221442752942373834289104863605408918077310474505734752482443014431110514162997941028621753047490510265317400304205221415220891231880236017622997333331486648975537510610979942248532654262089110900459483509874782783094817657630788712962788505233917313682296345053686954148342992235878643573080081676698178841089466625929052291299309745549787459905080019437183077457565158672271622745578869349852261935280740560435789461361733893897582187464098999719489649036263673679276988582236466920510791954929424925255108617384594799900614312133478055498658653548412811937933284827727393842830929195403076046730415404581483103280706956931497494086758970232489984231999118771811585369591538107837141057783730765269333760910661992988928517809420742429434860211051693926135607297234558874809268113940426045426434797006896618374044531468793755472882143758067845204141835108674565248385527827725294888658857975877195981916295690658454856930729557215379026465135456175183138143955585453429980872813501867384626981356160635307053952236477481783025666103814779143063031701997662070137590637619971787971147711859574936586646439898638568398932456344290246604029144638756311761610383611454338229950608703262890750471204702224053547422923684156092155886457655495962413602996782939891623131404758705348864182655169204820500357930897774289498002815689689137122671170889028028534608474901875299166291903873640654395674718246424477289411731946785561882274622755515166534596451175487498264641432712357519816869003301403702940026244222438466566597634611356360852275015130036144218810438444129694559716615360855751066976291685038796003471604953044981448244179307667905725658516159513711960133530094218247692242803948908308854574163335286222876778378098311205448805878778324755323029630020180391993788708691087207225256764767454400104629908383091337989538650321789626331314734718884760701442762895187893522522062926339500235621191530511457140660045992239876182884524192311393516190025820096608958663520162240008222374631620139408929198093499658125387806836986243309509283769119762051946225089593057910969172242314838728058205849610271429375624718137104285887108661901697112250552937681575314961545411001794511726749002579529374302997982250872200510963383373901014935440682255620814573143190242593727991423347133352948466507231241939239393677351284068693527829434297950951049700009103858095449706175172317690624292140925033117302435328418451160995531023643975676462707495126911974115118326521316640498489534846297912939857892726056808087390206004614700204342800771232433479121207610182328615740497384363981749051565474008093192791136074782336912160615475262058727290661054853710384322603652287819683527966340642063482369122112805199951933946722068788979683016801902804695336201741318260338146232223580671771961278889714599567913754631164401234610015946245318220495895705781666858132151919201557707343714094686233770237667338181720075917794295698123847503538639260672324666077553528077812194352529828994956677767655902421202609125645146766915023074696880536900750299243871293730901456101244725778485686372261196911031373635985686630567345036673101314618999644006714626388705698129046515690574336566765081072106723033385634434078095938499638247747571052204248705251926157412880538655055654241608683177195937639551386773250762731639360014000488741778456977843190859074586560285628771865189308715663242810879164480452648980581091951474765061357065642966242911428802925179391814927911413613956886945816981711207101574883221689123672295944760889053217765131404646976955689244907546318285524771443354106340756061114686888422097999115796160341074377127886595202472476192638106883909266480810761055296601829599222171020505035074607736593676816846952496605199345685393669289863424620844874740290253712160749546979633008866617895568173424101050528551460928475010279639903541398185410653973988382809177864859074515454936934325605140026156442591579740262828126904705086028843112011753358370180534099126557797381276520424153144171253025743435675763436045065091683771296658313404864560765968581539375512462560508802549812571406454513997660624050857300260645738765276575955273033714248932073891997118898539438585934814696154700226523026805694065433866530229152997249650601981201394335373780195872235379703812721187945289326644768838644828393658281245247753511161629370305905310837687994684385167736467404783337213869110899614023504807442414510083513346327984540966924500184460636684832644294589091926405328558189212251937754390092156880105173854103231617636493853247563220060384741958398597506356401049391903032135584714861414955001078718584684457995251071537559943981013672103026251235901871368364268052685019140547348345821729206931780434959882421239054432713122688851257222578829199771089492201001776551677532524832419109581104653756681129545337790923051978667193702008414950731862949868912633552672938204909920988543202626860556487310529615444186063593000991356992735706905579509401061066760792051421729006352944190560594825267539643646050945977816984307290225774002657691111224083479052987417284444225067003328349639775573408144365789778529123294690996471149935614077126213471327030179385510027534046717836520854401757721651842027304184194923723687678067647002654087132213274143007018298689911311315002340795501747891472110281086644829568217459780328064225497534892723149683665631324729876609080354857448631977231212353812516227316766230676372713225246925969248812108549920413096112440559048734546588737955152434258890900488241424694800587666481134510574025847329118792569690022656213317821037472894576796908999431809591656841132276315681970227826266422643939182216323458023788136086406595019170680234631184478419651554124817145725558956284947048353619102866610495246955585658480426171879701369348176387832925741622871383045065260725219166505062626435532543723495757195544260793819391742363372955906412614224128922905386294936511945652914327212042604389130973156716084760784334894119249775879711614529350830224083326458550366236355482899031914620026318095113072379594284449395558917542786878668861607643464216433918888874619561684024859619020239505288445421353598525693168065505927816741994332546143315668094783840703425447610183477539376512343069023036265762714176812277486968125060602672180778089505587820299556777098809707967802743699892807256762039068736709529262866081834474816591439511916534413574901888377973396702980323257345891035472459448351845335521318078715188131414571334481587885410249175677441931085150626472611352195040851912201753487127617316464507540449090283676398365176882742704928318190636197357115168953047246361805733611536272850252684079238595120169552669722854188455442669994103224169768981414558002664399137788727918675072151495460568794221184179044004222937091384330174947932036769001296480415849191418395767922814117747944623530851612354383546224778317181753175716002327322961980854681900061138712953511401163343008702369184725225698739928157288736577485028084774037277345066179058493355925697013301508840755233215068457077084583945804984725520560047477789495972446427073539999741820083599936020201915740772799349423257560794591674930551542304405945801240445995051025232327654397427211810208355555039663044973328337927470613506535689666245368655009359764173916222019302238803155893618088444015827322453170186046544383902508048151540764917101418383366426475179615729090024594271062250332259783223943956454317027872297764716577732685733419197022587544276214920731105361140637416494555703563216893261236002527398817499273174453010784304051642123142009106932681645783918562936071277090831701923999437535649375717960366603771982648668073107359685272135094008438822313299993054469649005068306656928400256700478447451432229805070333981359926108899165134121419183021032391117994942086947883175180645917697645341291696640879076989863851091190268130523146261370148276455538655122315287071334603966146244637761961261924522250735554874267620852452126351649016428483150365100194185592122302578910852747904019068440266030005253849842224449591260266632818726506762532245587648418590663883714350534804996724176417679795729795587140504315161124794039581234825016722130642102628523703965223746521308286975055592036437523371318742682096844044083307518889409779619032448635092704238654897125942146882841074551854750800669493732804765204660069405103481164689215582255661590870372143992023633529555631727274768548374328534344925832119343843196115719857368401900724783904803110770551154040996394879908905247742978371548543542041865320974598930304432332319771888046540647616626412537956389809534008042581096494758868683263633717913941030611015606941412300514371972089213273988175005442559410580334043046914218960996412634303806867730887225167951042795409410845881842206302696364905671560821084228304087992720138830556500573272221783026687039518476987452809910489344050480781148807522674026196443467973750753614698291506717202608757128848569068497514392835725989512533130160470873946462008367866221223709550236635276029373551668542903014453258694783396322447694903907727083970744413621764997897677531815906147892973337630592197893774579857189388764133353458184392324980572242705134186398346494860078499890282409741438906405587708328391010821350117710835586773958396532302478160432653135778405743197647947660858377739254061545518289899214241701081260313257408513306823590984874549213757928605710201910422210041431510927804049967837835044289665874193897871603726575594348675951609826178702100703339205419836093461061963441442929609253717108420160138369489352350744500076038468954354289369831775467952705967525074957727796024092904440567814918554446731206943549170379956927920908715023617166351477372776434529638391616507187539978609417398568359025068947871100226233929427243829032029860753892670118290409200654813087733177560489970134513230914017940873405493128555940355540117087273151510962216120032299472521208537795625967970499593975000899122201024399850665115813722627917647476885329870214287474722136302391409570675533728880463199175685038027831271061815071700278306161493015732818226507507732388791433017787296791035189647146976128966335820302336472204871594299524277718594149267796305643694295240836392439021071927637510960905277920413530184940732964226331964272674649019500829779839929832500735559628935409983547176489324159002405879805340282260000395688571484331304295527975512852540627788422840920330459358762059389402310511734692337562127382969749618232728287602792602903632419003767574537357714356766290673468152981058131928024145854309927231370873244887824448358250290579866628833849041925974164195202549101973720661844508212926887964825994552191398392278038159602118714336822774451581491775056672980938119299272430286817720340377565394437143596534300138043006693047617140990423008342503398836745677043445501616502450936201774095696095089518522679782356722423039193631177284844514100183901406552593794164571777384156782001277343530089352278876949428343978541274156502968548651647475686851210172881547664957572812586094313798409515592152389263876810415540813052636222061741183916205287501498294723527427389419827983220975363207507425820634121223170632149917223916966446080931315683627613498633802332589877874561994949086401512348110234598701971393529437999173460695740055231680612846919201696180168374816607375414310558044778106392325392719160639571211918917769130296565404730963761379347961433092338072518122605303310141076109963269276579184890847847610750533776746911725103294334301252821555573677095631962646103706916300573812279661478925124571639817484482182848352583757555704045904080201033069737576516550365997967172898160185226393547016439950428872657550335003321276858210024808177593152175712926185221750203757403967408571579795742557279908510978054123692620474615512157021965013279184614584132328022477569054404883455517169728401081993691835736668807562800772442241129074862789303866297046482344758710889388614768616676697285056679828501155129811659190436099553729217388443943194934350734736179482669215749885104493050432850628238041386389442233074356303769974382617061607438159640297152112645361282257123354236710977185834913507254084150419124194398146678723643106652094937299212063535581122504239541207444365236315675453120302467579323728866194909680736221902453680861190658753859064022858106625068589674421086649895919549661315444689346455960427899781226644430464767416877552717318112202544593932138069916901865595582201851294393817387980133952925478514580696469425118351128394728186443230748799233511921269941549542531978807695276543080375388684162466567466409158865758399713491220580187910074876394036214856374750879482836945769246361257178525932465154675892611853035689968037240980248194057709140287820984268864895658900402268608149746897268439843776267885082051379661599726554377618681182464941206384176632032489377228730355609149483531790776715487605087198806405274515875826482207137160983770548696551944151660083293979882111938771824448473272258263430023091529405470498383181427536569621013375432494564703928928821031479396510936811112686704826311020495265914565499145365583052961714160279741023502524564730015550500311866314144733209285460011109053183982662797655003342605649375615662038753998443337619298768633079597795497909640096006148970404377111132340308170670307215644379365279746579806583805104963978597217128852542135371021291541435263076607424859262695718974556390863418380791394446596746113928161170449433139029790362816168022476126245780349367055183479747627882870979673575091359373207887631072086521236576579946640035880799150298461679963087314203243103634092434348394575043825557226433268092206539144581131989703410813850667455966847443445791025943531974961369018954063248172279599956663227889670251074220894925466148763148296828277001957574058078849498980370573877779290667175562988934877032344891573595290087581662808536095346521290067686103598664973638209436759285088791444289311994802800146894121382290301657818146250200561098150145181735980892976216008645221718849924097774094131267513682697316567750357472668100727354033005389948083212178231748628942347295890327328086682339923821028786337107818708445055171995737491845305441808986250970371555380482660532785064576816636618410467378683532559161612292355577912755901177653067346596138560280310302195556055633918603769375301751697222464126564162904091816266139916507073586378275437788076323291095143861486485899784995144334824102222368241155288929485150517508195454102195203056060826949567889382658088905000440306745355895829914283139681476084888791910455091915686331947043324285589124615202409384252978876867813727969305915634216648683621088242252152922188744907639348447893092804472608722627206557590187815252481770110305004427624958105430225806543050327919638189006358155767384407136366081769534517041417178216327344090108741993492789400629980366244887727199448739745895613331685537777393757637492272854212272125618207746009858790570282401178403521354952143138520911714811118358043249114687384180029413778977040185426721085646779550061214686718280588913335387245715606370350233557703237587696175217138698716505532843938101040368206874827271903688796788945226688418791389150330127119565676060502927011918236520062283028891072899934581710548320635166002558333087944427010756695071223333514910269104034584987961270510860116079944948557383365841787607509717484234107805604562642290539900525079385745591535067279445686221950411596201819485785048316369054629212662190700293712201141312984348161647546097354080255093509956309350869851822427280087487482860854933834643380066202493737321496937814806495321349186504199965596079262161817642953662918872923153039962012286399718253773371203390051286197220921423077156843436284183677752060029777708433957685483079154210242947721790556235624536265537835251883254407181007389495482582606516557619128815776116367737213035767006340822929809174237702382500352095004693608726687774210733182406600193500693138032895237504162807042768480010826766271963330209444934892987152720559055864436889130478700118283321633879975271756232710879036531164802810994725447115935576161447528223037290028042658024542289144036918607825623261716408428057450245854860837721001297938124196522945572372110981967292895320181536036201206120981295336959091264265045954795816609217798293309096379120506214164017150848988560098567388523072011302781057920619845353684843274012209876879577931482898921638644940774374864241823994737765802077954896214931872495343945053751723223303606323208345465467821328192688386276071376677206121311230233441011381357269369936686070338553779118306572000439240125638075294789423036196432848961075916509814760450146175228163861203461230628948005558309154731751192436384098956623271719734705960909882532892814764627083889620954253394981647684003224869882764186645310667867199278533629179128426592074176770982059338017291194442527400778186107034529901410503449919534966570069328843481206639689030961209505417897024280914840070998342158203975918865456011458625951805115216861802211875649493183549965566468799053045255890405276648290998454529439016073409047117366802262875771043514885059041302042267439192171924724576508788148842117769544680283803451646447534675841662740762270939717411856756053243079733911117176910490174330900276616513074605942627543194530024989955577891530039234734941969825609199670261202420805884271832578139651515818770828768940912939771185386234888836835223912404972882924421861953113729091827630620483969800663328910660842240725620371583345727782907870978523727040078911528067852563563853873705944967170629767939003053291704176224439717882546031745336482989462569706399475572445374765965130411027263463644737612165458427948709643641821800428322288195584135715928824466511973018037011781462136614487196578877063005904412923329124979417890581887253873371249672832961074498608128106633578846112139495139696291628255642367897267397523979734888199785706029646077267944064018976301374447675252915976935093396014960703851704565570143457189792061910261714226587937814187487785711758062720411286789834864857058705143309759687248352141493171951221944284610116645952787253357221681761769849458051842853967954900898033471811357709550816276662098332736651906540498829632554424194203579544561142340729312705180257066155121453300329090989789077000999815833273330565867183671820982904702459628777512321715428939322379773668841756889752916065395934485177108273041941187330595015238584728657859947102681056964381790212560948029924753337389423144806954614216265004798896825415521316270256971930898728908628837703977626766027057461217140032855484533092374278504837257139258715886344177174966433662625465647479393843136772172261709333314235130072668772720717748005237704787223251914182777784070707298252138604173844800871677150780178333198085619175189603941865164217847601683123808580278994787721861974674739233786555277885531656453973113922463913647416374276986285313466311329821179933648495442316258034300788268590881878239073380461178670095317417738147807909115136065562027169942448112034627618488266136029129462422176894656670321203569421741380167147175845119090161986285595046499832399197519085143553411903580760908611148745562618997582930500321871678063121338958539492535081013930697414435630770900293011720089643343814636634340192318647153453443608034808752132945140992126094586608684466675865209542307656875333793917125736271630479887756966042660170008419878433449737560785953053391608364897113032070897726248681833506169344900956427005030958676235888001014607699031266005240935990344285683435296855920427546453018401659793215756071841087405700258839008798499077207631874957336018129871621307234818576719343297990212338705215703076433241621754393175262159005607621167570794093664253023345397605074916230638020489195777826892131135336046449935895240701131652291142344320334943895365764863541272697994535309698052461085986163315565152327927226199872492756472491532256658444576300667441914500933449999375903811520609260586753320278174697552093703927886757941456384102778697267703733371856012714223732046461643420771282413917364705494187449120201202849911789797934023560794665747337259310104562236304782005690493477081295655772747592785441673653745706924446848993489170647994134581124703033339384823276981297669000547997895121051988102715050151202798265454936234059145757222740368764948135544441459560990220092229998726597129490060980903757165319335788956475956376517331413314104543444508833858368858579646383362844960654428475103655581947986668320188622791374486257182159178394007069740813942322404536186920346537983887871961541140568306815350607819666561561030674225444372896241516343015164206632691916783616506296556247527755305696751737784357845035353600220915465775745937732417479113785206662770726412728493295664415228174597825916063520419039819622075785408160355133291955627409417897377123973658247254527255926298577052455799975196234999832961321544173313725575633847493576196211863604160993817536164865296997555289402413557222863640143833287083499066492496050435121831314062317026877233541783367510872810915487890889751653869763814934326113305746096366872372410260578536448377368198977121006899528234296892265142128647185283142847587977115378361688092866192605220137520358721269864402884281530446915485361173458641504403189940360926613365841632934433430312667558546703664047384483257570593036516593936865330092144050223943377495378769116860042727541984940987971829107793365551816467960053263261145588151970465192535996096721156441733893185390682953292291431777168054965057141318485091873978758160102965093488552023536947258048307680706044379817805282833862867184447672660919378666990782349708122551906727479181287212938215725238582239491366861166846195565317245189055395998563427240848307415999284790902695276646878488690396771468593744524824359879816516582802630551111318646017149493044286209001572949419288446152801281010801968031504392507431557536560825029146020595410735949337414055809801099847713851264692251745693497369560912703851437488990417330766501506216495382859020642165203228693496350432799451627467495577873014970805139467595717281759699916981679586417480130874005992992312008883605705844855003909786633949501942528356080596937470196800838650930847086440531126473437504822911106441871827067201965735084925063677976849298613175482699191888154774117400529969178325549504789809017321731467019546500558737445140885570666239729008205101853405202796685911291541254977398855818564431467578353052004702709405776731715899879326215530006191291434962441144643018156760349967837158830293842073086187642087625343418929138957033591152565270314995204753015801685847583178337173981495511817114794211115902416973517838086574726941938083252706955281500011569273003243175531394764170352916378131965535138482423144671481238915564494064729318086644298000568629783576520692359529869933034989509871298080119990676838103778891577510968295765822295560869073742452297853911355237487687783496110144896706233246055040146611135874956068835856686588529625592709162075193789269899287489531346269707631623744663489489213314091438981529793195615212735789593200174970754997214044896853563402185615733183475739252171303034956724330954983086536472554502899324449617959163032135632282647625844398489383436464780449269014809203530943846037492701477288168254380779324231850520047759495037802248296129434970530615504941391976929067459308791086899478410847206242754342979735554606788655962815677514706860106347348564656728236660745803004897637821459126949555748537209390566182742066822188466894909618798286908026123434647465543912193892694253424809491449648534028500503519172402875174536691982216482008198921442110885380730870964376279494511170086935522734457183382398060511108802379888442062692972351181208510234075928085322064622789855754175008126912495595757726193644895948906824631683724977260984338152734526502234097473460194844755655566993889593273296539416322902433442498264352534595958549964160343233455882299426960467074333063009400245130022616832836653037180039849257427906275288205849791150113245026610977972157388759153948202631819281341168215896274799406667499416867780639063783529944104215645059020049926496175599235877455809808634023257736545281822715669513873238264098511324495887956547255152007213505988508861139356871161578460109421794174960485010599264742037961642327357634717958548162367690246649241984019627237522563573507479566192812747629683684239077930660560940232778671512510128663356335066061479111140837905164359746560974025389434471011556678795122134707537842342409823172887469683592354330182064541502978374928634013688053104658013069927058267275082310000419247133559571523498085879689727137309412294446923482866731894342311875984587187734904998422436489909397341474452478544566453971137359115328074738633025677014307253535396355906165394713002846175253337041669620655803306011526983585094192434299156338206505755197158875149432915823721851476840653489583658468996666914842950353511267002628245255809925121218221082426965809583327343609920470482296941881001394449862073976196188940715885808056305248545122661549894543921815475461877615321062097018677141330366205163656271639306890424858563456412439388051830414169506591770205425383427207486781553690943157176093448788178986157143496091005055666869028104678344303932063224018295350730588794163044151922838748345984560863296074282526072281765306468093558283012568544524207065758335153360141918304344067076055753073949917583474370197121596075512261155060757845526820992247751342603900014719602048376198856300958996041449515941713355003633204768332293258719611291898832023124344695012610910257508638115093724701904312194483871389669513234388391730863559340565228143281653702029885697390961853498990600577230169602537081927912504669631207850835947313196038758706642250468735204128657190885261123732102240576142953441113098527353314702121525978408447945368222893632308424798438711847556884009806753715439703349663524286670268476978367868357218678090557460372690794827006032050577083132917675764030007384179727921064495642354772645718693243084863740117027487093364502533740511318806703565295698387357722620540306757488662462207876341320673723196073188450687301845359523940208089403992825245959424306345178998175190184161558074481752556474719060444594901286209871033009192448300132484991068788270248740023450110581379693428049606427275257678149021710176834321791703976666479087191098781826892729604741586971311781302507873445491864791266716125376864359445037954240804758551881112909457291540423508849535231381610556473331587428796321428807755861205374179216237656251440369913462402884914397296921736512564703095451833890671107836317275384723477497657965137472785715015578136722987953808720112970315770502374934067235950957313055647364070571312243231286379158166239407591326663409264220177297597337091540012263670303946838252463928769689830941893161481092561347301093267485908276963214347488922127491282112593735642588314361868166281562179819725334309246977614925142339583422232391488269390863620034819122874510601653617344521431896904936291820082790724267712135218493584422883962950270315781954789096726925486324869334452441687053306026170150668391762266702283038912001692111828705269197880490583470784895237116568078940894169935238917009415939422925228339444640762409605356138924510873433017469199593249904290535492472723521792950047215051235792737873652443395805231921498864044773496341430209001985816712739471051191844991968995430785454833408077249442529317202512933291380807867365140961416314383269191209310215696530960320449579204817769692005917347721388092660541330315167943661924880194165534934323636865436855321480303279445947908994402202460169233880985322317800314128827600985105918991156211521692562442651581987569357131809452369315243299000746950393820852457867720198661180625366905760153971916225155360915026409814436457724004202635701270188730507203246353167685173704858028845802718722396995000257238068119722895470286337958161093872606687866147552302088544939590264874388613621514638755449840796175250826581223679921876753646758889420894032122142742890962849067960316405604988666925845659596886133773960762145222108775026290744897584584200151629614608862339375799955775001827854856507019634312348909092599844631184637579345133774473156264606241214903855006829601102705033779701157179301941733367232175465010173864878708109120470772867393515879455580204397009028475245088606017281417524191978135740071088854456607910963890458513689702796760359982038729557626182349689578582849325798147453694849920554664623415157527911198549186882130706988223963731964006771976246479046441062035826629297831598331095540133411541905180880423515428660383959603863369936996623961903467540895063304165125274811348532807761571288165022249442580380817177940504328283347027625425676536929215873476878413858106877720325647993325543134570181912579070341478556377974411283495046535143766340207102062636290896743081979386489579177430660756777010767910299298544365597665906617083180298582189793168749704268814911491000768257247029186108761485972750639754794458809774768464923065991487436794686523443768854275895742690151441140406258669969302398098992474975165583836906928631306558292871670982964305017444782841967849788033506513114103440288623507826079909971922720828787942269000268221854172049089518390974620098122716892139398768733077671845005628114253833529767842938029134563981715365819948856212510304060131939167219331993435276918995450065089918744370104833872544418960887315269383369388957307518842208935152046695903823311039626209085800770898484750593566111511858231416989668186647082304188477861028330404288611869210140854787664800001569476147786134205949301932202515608365256455518748742878587271602772234007252587432551386230924572382044516501953223349019806234475825611168795241588854528699300415472681864614871564034323919331645996862395598516268899954306912149675798208668965473839042011418761406601181550719228913111304479280304555589475202607643695748074929405626231157711895841803855887442807146981473593404040600509184474089358700179881642056752838331635455673931398091422078009534251426243176091172984055585962262317018087414850125186469556144638609985424111164714544726186428961931860426151521002765344668097393782992137562601771631681786208613918305517641635006357572026377442380795280417349275591778975717030468446165710487809456223575248515431196805385536149464070667698896325144713966258310824802232058176335367204703563735277656784953881792953943153748304093794933030281761648935613256941148263515342941774265349445350801393870110611368075894660010130528586661093981589160290837470462739302900552646918530150127180682356758654541360821057720332631746651346433506046704097229479847068032706780949231242633126490219742111053555953392551576093842554026001222717708493192832462436492468110915861739407273341880906711162561359426131993354305113939741261690724543751794950757038470039269676798220227782505543505932174452985318341752378164284011666263418227431824145849220728699745893935879235980889161159822752101089923007135206103683109772993168482705153233029957258898820749634092846899793683318477218378889632565461959941671554486569298572643143770110477124900988376831174471421813749135528924514050277608837243897104626120884522150096805853760664186088695154580393936113686645081562252417831842788364724394275654785153768448160957411840898881501697120766265063528696848393205881607636688985607886980191951172939952904893764371405690871306938577533671961662289888724915404247413091552099072547388970766074308916844027160191059835770437288429334428570312414444263556235800320762417131768001776727244999132332371265473167502847743731381696766840997564254215701046406916708790318073451974211463328514943401193493490852763426606805056371155976282140801101396313238346061653133873179903882312255396949503573391261224258312145935579011019181760577593574407249942886835864266408730191810536666866528803494885684566369894984004785632524760835858282380706343153252413623247023219418059527297984982905549577187481574474532878444531617199923130567221318062677459383302934928928947148591559230901473440806624751347673793827122724415201258775814155321571989097693455465408963494605157986313989040381840681786483952285085593600272140552810245611267255989572747626240694075989770434402120942595563414342553074541561669502029373047488925424069024046412310449451871155584723975259349206091515968335063494315042034747649211186982012913941069890430163235244903332122347407161150476845831326848236020893486510197204440502688921289650855150861586510063283355657171163407471443616370498908253250840197668569613777286427537663011627465377397964901896450999762751476688431453042121401967425296874409076326623433741381446986426426058120432199033559894588874223424100125903037507287860022097031027524926357649214445105312292801213152546402422499571521232736462586767539788187092645782031345960503111147925593503039113482120907571827039098496258907389198429047596754563726433474482811681977798301777242413305075879519545524943399935988782491759065498192545100014920259595195094750266980619305502470356085004868616336439001940151343635799373525748684871440336640755849900217868107826843715691620145298569995469944608770395831622786481756750073349530276125261705346842373142378755083753869780477463311058220468314111121159762763330329412863617780657522507953682136427301452850507629233948094627973815706423603589185536317091018752224686405385054082908754927968620727502895864379766868552693221004187939503884265694704779390894496951371673484907949376218271531902899717162838148246938204381102359401627243658796594165240828458481686692422539438367652276738118679745590949255021944442859677924464620851444857304509271376202601427777052654750836702285826361757852455754564656505209037186555888886313016472719183068782021240479907810304753240079626108663463919209113106111255591229412545298363898070534609917475840246631237192447665068270166962273224661653802639155708487170121597884364065580908827822948019154623917666440177278796163386264212237791508176079746470150097078746768720935131717918866636495666978097683434082210903064133262611486006624424303003915426714466205168389690575663937487626592090294672663508187956388115089780975110649526740832059606501601221011414912960754447850701955011626614342827469015573377287611349765616896722308721843857097206187924508939685219006702257191706801750714845699078440389103564715074226814912683838565354692537248972634231945965469026640121171420365842436203405572092949489424734910308229530749772618537443079676393413520972455482340197316535088735227000614377050234093621378806372585022764806236890446371735711558509462558112482449205898954862478073804967716421219427601727103536380184469184123714444383408910731535609553118093513950296269607963741855235708650822205596948575088378876246295472560656952692100880080884620851356049432885100494417146146044054699214811518773058104563438769258809154220337605624867620491806420464944573077504689352003006715539478216232358831910293940311233373993798895898082192295851334859164763554642530168624868211423693581915965855506110433066560561169123193690417184975051875980772827959075530606627071050115525803429967992106832722521862804426359311260577207926447325478841418404606278574033836326228707462312309474728314361045351957980191902047859645396170371010338053375239081548104588137143882519007313492160857942124521960432619615776649253709802226119026263896845966020417441775970611170931505757432684611155468089772481132754786911832341131980027928349950706075925010259261445193378775926932296169082088742737354831412278203894300497836452346920571869873276845150859779024719750871044219993059223475373143557839231675638635800959525130945328400542196102294734589125450678410302548699490965738794793572921869982101337601581732701979343941947733018921666881651558657744767975989737458337827353389979712893813114798717267006946086182100480850395280155259719242247195262639983768405676638384149051942199642152881718202205031316737767246594144839680450524018564781939513118032504552538140133654489640840305758404384853265705981801527820541834780623331408459353296928964250327357735730274513644219500289906489256512353711107711986583790271853873029518565569003610706944430595696006261967962917692912880921909368240661287696406030035043925224977649131025252180971600712899203202075517238273542675179355392870185489377614480150482736837862372403103853749525637746724907453559648171569484072783744178652974500287246388595537752466098903776995264914667972314064881303673711662286828964754309412199444289178591754180977329791833542654341281747887899650199045477071194067045211348798167376769652145189354748884317825917191238251535524412468192506956204749621832454927354933476691030793741884286542819689257881452057884660503649733633121421214930978636529227978288082738355703767449402944974223737579756641249096454381208606243218883371964731574976610628806247255584928918586606113427976611613529745512014828091901636314235369961961967790139603380019103859065744781797085470245728233452388355650288541462615800951847933075350156941593798214745917616679630258364559506662496915410319530111778321224866845342868891116542638413976641676010149237636777728788382404242144423542391407883730200889607525952975196692867570456807595678416379752547012163458611628124124535328031775179589593468523239573050051772231813563288057442692198730312237198400631842753817376152681620274320846330699896031787961902560170859231383652304755056858760626602414404691680637977959441679000025546211977410924819832273703326170430775726381344013688498535065020737205290364272234432244445788290027417941595886427899512923473735664494512887212525260861111946954721340378055572879953792587063464776480130603135733820289668531791444289077949068298800509491590812970447718469121525157373983825216096203835323372648074237501391656384303386400379663019742491867037003426322339006590539048142265671300528336400379001521326159366369540823986092239350902240566503674741916098643226787408231484214884685506952252908445633351856535525438540455887523295684571050865348746506379262093953859018552634957841725130289802397320074145405663022123261756313282114629417529774160976044715167821223677717074195945717731356459267890579754142764912072002476474336332505388208746705966437875754541160232805238868914623454912773412441091715239413202685171758679393690022567474227685749304688840883668006280981236276446000698557639508243643875815151456940153984125582865692941999356571277246173698931430630114061614747493785898829784269548708760653043979166342919521308412553068128131893730588055320229561059028428073857828239038221575748449785441726591749152171889299354168437713642784625444352396903921674012221934012630310543115378749285239632687973284576155056605511834741245034693288077359720467883443683617499207303967801633614746556017311435787781530613509068995382504046995378335571842481730882751988568026081207651739899711437881435875078989392536738941080413602819273711717874800985737858244206894915019951169901933791869362032582727421761855913449121035618261951497761941884757941115340393629751297184681514113602320321579009054100564333196170881921820783518962607764124402005435359497918452416410631549330039630391694394812093928522965071864049435788516657830862129021741220965892242820780633475464755159590362454189049191515543119794376133659386003736971408115363267921079187922784785619939881795956219743173870719695413285361498302990333846501309503551173116506157467888582764512495335488845587304378921400844546922880797526538545964073080632736826813160317974848177929937450996149707475669844855564248149475944214990767093091753809146153652268590097021949552930809475184146826014798373090195874268567028514637006510224362310319336308513819054386326712385743980758304138393540434093064001786174413035567817213826168658814201390340757809806981715233228437341300949414817837347302133555533402713066771981988378643327887424746706149817240946317973466531231664174332612585814969734091069334773190663407268172868140109119305350578626707936806083732959644176531767975833646091519398081649192087202940989273168647682936998018059971761854814956612218562936749693146400855613941329939188564460118325704090481785117989917632789839037270253016992852734533631558953484971267181723642649903138794775984228823501750994976055940952611065706644675389042718615750545276144870810772756065553488960441916933442888891643475477671006875104219186516033384325956734975368963934489594951308604700502770547579124760108011224142796336158229325965938126041977110371738630519368097483289887138740847568331762866291274942317439836209753778380452976493164226778166058495343569939453659993223950525489544770932987622846622445196908283119111427061953330941248448434009558130016943124500526102521002363629156356462449530691045595994320385989514728151804275301950808600898946432356090111194765288354702180450158284679161709181027264934345654203559608094028564449230528971904643624763778438676989337828160753094279778399728011250634015160751709097836766235550728765011826245571560622440439154456221976294303862160840011990248069249866391209330183147383058563586034179475941083512828567612338867356168186617897066414246726163868556086729774859025365084341731645532148427784680599670146689539728128709016152565774499537285917838801100562577835593308963204244749101489326943969156024051668026172710039534149724370008584314978759347701775741145499191710275635965736657539506563447144629366645814989793763372926996823572067738048789374420849599291336836637408931133275063123723300790956143202368915132638233606017811328444210100869568135691856071479525846601368107782472227223541201631452646758259667781449446073531387940738124981053843791607258600682246577199138076162752345972014835292707778470656181165469074815602446062705617005700725101730861710361140872182835352868147047779229767310681836773537153681155205051133590733724079781710905652662889348796275826095958668499731639528171076371522974329295008182866570559502670107201480014280819749377409094720185243739471118390424079596862507407468043818305868517209516510027935521285495683356084403195268375898508302503914925588243093281286926126839253724484040967645396081103932547680353844412742511518999581351311169138442560361393906013634094694853895604565030321951541646964049653548689690468157143230892230732865120982228831236879399369493113059020556260143255293998380574673372590043240283862695283599124279677264935541033864486031882065003995260444768690633519139538978842959898973072145972913241803000059474090222837732604751914353218140334242817700997812095300831935967824625026143014595423444901780627093814226914545309135138819144437829363679709212748510134543702360452795075303856397731681483846217517545122080388399647837410150928925270386659597002278461276508084799989859026930064791705304866120937679820345808667254017496301252800107742537132620692059798520854614771716138795275762078870876813521790306990096016961177011706392739139430848610214261739012774258332480071133784752175604319137171769379775482051729058567780722124750654464971373340004051610387150093153975590425147736200120162485946047372397872456531553631575914345804934121947672887093492801878091487972734023269503594887680275813152372349190885640397241321734757181912219782311889348585020757924637725541286125387365788020968390021714355853896989210158772268389853284915058818840100841174763654308167329049239340286689292169343485386096810683832660190646647243577543367539248578594911189146322320691696300715794238790947165366291769563639458609571503879670604196058604476287419854473823434514878057725949196290613605710703855352446908272743465013441967674872940995766720116296506729113418825202094394195594380648507878991924027942958698881290543072456113002160079411785547722702248618019768534615406371514852258274025779552070205393596034089236362575270496054108101090224296039419651161082069687196047819824319125585903298548245850629301959786983010666217013825763121655200343649162542309213994487067727468542336601691487041129332257436509195026011786830265497245899531592464895198087054152009869161069278972450873541032945808277169977967519208762639319506254120447807129860864551152933670036773515789908813890885242302131203342802641942014294051491123237355742313278109650903449728985257519198641266036465778385131924771349639586148003884800637631849285318590317641312634633968658435526151494114747328199389079053001090133923640114248088601057564995642503667173454930839505465679893771048664956693762114493183033974780780538947817997007618466554594859939763082115627315562862279845373744961386804998359262951082540279074921683333656072020406021650865223098864417683782291635905851302984879161536677142704276742983165765114445495683953178739328453643595947187540140216110928515878780118284483782513354063167153775693377731643643541167807084628351048615491120736852994949997928411810597569287306102733943180437653452910424257858657067050118508310713452156618657236947711498894654358293367784335881401217039012570546634526078287237669777589972062229989677212855360247884060709266458872796966109341105500775276578145299910217818203380477664098625026793554112498347976542122851356311521256974499340377958501858470090385820158678980063072860444083181756742599025522431642123826046549694161403657459631850985107120493966519944338118932670134233772090539771007003598975074712115717653479899197321584638437961140675068883324431229810512027068172749729175819592153435489285242158268028405149106614720724611224691893156207195355593188370833002562736049791923739579755383246471755458701017605836451410417610400131281423519181153885957538998730030084018947262503622003828778131280165703588945615284166103769777670135796228895244382864134285478476886344874569740785677507683408837595684629796523952379447119889837826146981004230231424812192442345341601484300280844626919270036027320526516773378877303185210467824573139813434882714160229094561597408923576794600689335493331322750440369656832896281585839687797798527396541707554057498997939214786209012429290152221666419136774473463397909180248699621644932342011026398734927469303830172103604246307938432109201802567158377901863818848765756636087600883995784552666959566472594234565712582786134157728677667634469450380472059343036654822959986990320094245789695051808192590403733056956931617334169307240018916409332821595893157083740827475239050772284250451189575239314509011371769707116280444343233015272322176728886152799082451872276085899665212624622151032508925712920107856758832729484218570048174593808213387963273438784502561921823980388053199567870012154443734953673517396188047608330847202425396385597896320479048023062228469892536196403149438705852904769944669014358737217806143635986586317362682623572801186142879331750951903322596718041650423923142767241513024638908542750558583473994504830112081411118407309158108632519850102804546089367404444054859822692522670887574106087883106548413806181724877335225520033206286217017028103549004897677522457820325060825953506810756086018277295835621499997225018006184725967526611974748948543006463510543830795961712899596372297627991062317703540680327592790496677899097887346400733987295726260702991506768779300691925564081485401240077010471910475678076498182590683184634636375950306779561779494236375848271704111710804813662766845929486013188074779088572535217118427480057000102043871280082322841122621083645529776707646733372776728634792928106743369722224710606829308062898595597900498615076959153545952009513214634226468168299147131033235801748338671718423217214902371715669805854196162286571041528088753349098513686018185635056661860434160781729953250228485576826081257558079949187505102723442002233786862278873002836899276001097492482595165681177886335034366826041472761751398312757041473552089885095057920208946565556909292975254609044237004839125180355410642975154814817030668034033953867521449383918236586749819877553016470817743406705131769690423380699182692098948716751259821452829755073305863180492120544448863910993691443648897275213785028116697300911221528787925003460911262103486974015637611967548252035643384364452926236271084102353313575327410141047568247729305499106983980703532161763460354576406080293229982891201069162492121107965478682613542259323256740417691074658027664677450583325637355456846426466850808851050955020132014842854031163948883601940858032575458793442850605232369111008477822849092525089737883106617699750311273331585022627044379297259021024576961029839345000454765104120155891539444171333222236306457765222726792134777026670473136871460258683576674310177056227069347019090484962233252007800596698859055405645037095338456023252337113901165767868561705324155030738118656867076536804404492327038714911057335534828989394636085990911120769964241445993332013980935927478151589234672002660389201801170992360822992031323362402944880120436979169900830443505133915277529787003871454288620762003961890243205000799511538955926118471430489409718281729606883720525125719704646175087082538606351785526956407652159386082251759372980194657793056573189386483700014218356494066661877865261164483779574977961549405787087067890681374657311910452898193888617006552631889267690183631450887495183642451508062888214544813517806642889451517717685721393135896608935925460012320818618699112671417992263212760920384371527473032817862347663371968716177882754998764675425849663045893387365023332722900486635732786234004111885397708414689782583168779992320572966515080095378696817145149706987395108926668592463852393646917977772039918164734174087538950042008603228354150185268685866935754775969186141268039737861541801340475859838730992063405224978655400601922688265260002215305815796737449084492441711750532849960796878608865060807751301721563853719375404413879058260316035468827154940339278209608819357164343829770883956962881222396407999795577598564458458467355472557863124358178997719756355525395346908909640182394908512154102242799872839817893855280026844415123237167525125337687533644085127187357083989317476176820598251162285394914621139658527058229898034524593512125278292115884570330162625939825803150790200193604035331913764877022401477344516029911632532932986809584412418038721535586763524784989276675444817487380496143481302496495905846176082453287256984164786167840542404059639072059110278429988982644002385903246173862644548041285170665989143472372496085833332873731746071085107948232956048204187093164807573161700560015202302330333238530751613692530369508547601447061478063337919934022251077594532873175783900651070552882581506291920726769740238488116669561363439954791692092047261326024302461381111580901190905788695447872791066570507096966241033240440690729267359455368307639449749779662143908882509252163327772969917667969960937499038025943823605102031492550131802601999594750790130666569648242528239709362828693314991578958146632829689790650832425949380259395853230915044506546462951327848077480051789137989468150965660137096879603476474406056541213137451947366311416621449589502422710347682121518393813880776538311673628908326212932588726476016247203053659246389833217296992613347352909570279344756017951902441772817934505955037623313310872794612587363793859328332427845480704137390538431708275006511943072384014595623910260210265595142217709785326080344316469492262638741051948543720854596186127774215409003031515435509625867679855491960654889653922212808480612231113050365928765789097515325350913861350508382200987019130107110438874905964404545560365696845842173869090430527247609757222322800702883674058782849020454454279059297385674825854844409485059706287514754740704089742766626268957064948576490597889728067293188055498478049280153823098906820758676553566900397371176049661369583507228773667924432761303867768152403468449525774688123052561572416043533761424513961913527389690512781884114343773709047160272257566989314555966497890636483747954661020317087791060394971229656422635111568520909165618839963179950510303564077662204603088091038784886709419187855023282753172249450394744733554677209909351842856368606489815536354011386760097475182297164661728711876523000506672352205812555187202549196202910043026488025988415400701665573024941108213509160351147548302185556096804746815467391610030993844112511168301253444471681694749905897336020029070027058636743903837334036031819729992218563575445082196803600586064838885818141203660793079405881696067378803790312955474489443129243677939116193328900265498343827384089900050548430114169427008913078326333972031513916689684021690696640489455817053969669925249338717802436538360327296062111934663114843647557682232730853870865421823540950147813445319541656294099606986142333426926039404317240310736346579810380286979016719325369566185312895700124971807541582134085818405485214533282489580096009590812008293903703115658929446146488441136450640269531423016538670287175421182883003504542069093915485679078037711340495989745786537222181183820768531197414397603247270694275133907091554945111064813962899369403944260667737533809196913967642577869692870223567966068121307580158141349962003184091540527688393409693896828909964592864115379844023737596046047404900038072954659225681265758931294681531197953161858305540719368654970493589941008287682384984175767443725482985075748684867975766387818288457757309416258842889028188846395885927400940677043576785358165954954352316309374280178518417947884199288131482335265523211220810467846493157012894859143355929278615235520156762111242841274506731112465332643135171466477032652736201468960547897178937371741296568797975860073986009375232303001148580568306305343030643481309960612690277785793907564751725448568552516059595005503628267248717924587881363521151995926013611434788856753197026092337438501404963838341682273942310530317383338904622234883394694516962288656287166787882493636382053709270570229641269494422468749806420201328156889369432202501492345706211327262868086877102301959575586485775914648436249559179775696485283833861380029459524413566041237577480376856724332325150570536154844132434634119707456097151686312786593653199399662345166383524268116187878710198312676692086696971565133618023303449821269616781403494890001066814825849395043970172980831925216101861788022252779292112425937245348373919506078421377664358527147385999504538734822319210126039029485360382443014670212834695007635302996755658779509508093751373008429817385727138879855470027089936248496106997726729038854811993078014657664146138814974633517997287763749141235814378174996432422228375849099790267789605917668249462247489848708236384679920960040779650366825981664433237308090618965469079616173694806584777627050460818767932880543695043674426243814493580174739255490523106909187987739586509139317437555278861129955497088340200290284001185674062230992647660045391931935989231305053766273759307801039505450364087750094258159349222034198325994020011465580056283322654018608615648265535762634846122478624184277002508693652092783131679105798271269186077346890509967345919297603755876776753517989187924064774059788292287963357328547330234158729045545399123299694434644691353596789825129848155023401597681806077466536930458030394146009811799534458167450832207208684230714286190237511697670408868666127869604961474207467542976115983377346661513750684859581626514208557817830832355917212782763856989920707460504814354737764921907519740936558330086626102949420830606593646292201244852122126258310724048594586195762652415736344160873928064358061919233700506686723782675273824326951389554998130595732113467514277675717080636474656932016341673077617920274396843417778239208754202673301201704260356944233588444286454755332183917983857367017934063530010791333556482798866552029260701366612426013508316293625141809487635746094843415795444194773327302631912366579812219457782697028736620119151458254731627687594083017024688156994275924235726596345498863451772402634212378606152151233381750169844557086263494078933051881821245909316564574080238267438437308732689629158874705750567535636077454530380429471006954759530506698432516412340650165745187717629116082250291888458861960242353137593748431058536168752715732817995842147438308321217019397720894224289471087521047738564673858922924539540814686293157419814705100006384299908279670874520568301046508634283401775800308600492986073779363608990513342582716406654459488084370384819750054496831958911612034975246010032089025566599373118119534376178114353677703541835494339530528871813357225462245668972590259889770341058505378072020475404367454200497180870873360072397171685613192333702355121074272841784872371653173767789375762747470431381072196687795640174194666391382930457564827174285543599359016336104981211298666226110692159802171490644370570080313002264271837824835865277332901110822634049417522145236157801350666127342397377960018371256939727889610828330731815242508316705568124458734421744194594525632495106908795840705999773139890005097483999262060127965882391698880952305161232418556089538120756968543058601215994257724955340866576819169985964700327186832091689055036944363107599477383543524183351519576358033132801414696150609461728510552874594775309368043291879440318656747573854321827199431170250886329801157275536732146093493668435211332391198209196587913158096940572644756135140078558570501984154081967073066718814311792246188178194759862898441105028430785694936788973112941469687799084351497979252980195359489238761679389789050806264789485498910836263391007556910784051112902250178568921642862123590085384920000638421992891640004644358390356118755319523798673878476275938402124776031831118929771790691864526544454035882366844083353271746402666221983783550689958873438371127067373657924272927363173320634560905959135384588921479861145750781441156504782658454845562798240213807675466660270855853350704725697856987119959864118163191215122471588292336053312102142478034394884592380483253011895996148573386170781496842527311214081836293924434335831952490283672080275496857314982436836026618259294896803422441561373064803373003770389563690224591139291455398490314815503180580647143096569421344106776196575886514945555934053937850619794198758422180693961654464165136302647406585644781483310085347040000744681424177930587888034693696320055626461755752889871427935543704901789494593005214113859541062248759185275809118003475052093591150424744322793698097039457618783712375641804821814696462725808135310277512821484607747104115193416081277788874098859799844605305069986145488275267674938962514089323920378854706525924785812127469357851770837268701971364219023837725312282661622172176747532365217852832024270079861729925557580040788585515537881602527647142851429047756396902058369752125165372419285008740401286700684684183149046912244948650344934172112866926090728117292700675194824970468385661233860124473005269313814501604747059171602616857900224008566304036898815253210724177234359751213720372049568679693948181064525102636254477164219273585380602166600936675207159163333008108248752689774195390945186880607187115261333408005993711391666792707407999389901161127715872377929206561839902352956817699739335123167679122112610706981619090944187989207253908683240483432824946838220685035420292956321638557395239460425733056234293132590719468424234204935262025905493633124986189511675817114531767224047213245968610062512790545425682060359316342186655453090853402293601228150705947045025176933116894973933097362155432795210317131286168606504029942089875788866175219362495917829196182779069977341102084865242790421755895268055752159136385468768361429941504048101691212383850026772819965956062667056544036882584294046963967294132795877620617302827405260246839731595341157228986882351074217463354067453975621565379627227822415965898579550040459170660488418907955309468503626101081915870482506425588780676770163559123363863908292208462999704947518351312760632669976367760010811633790315069698776285448328471201828237342508049568226598898555227928659279081564077533396143385941326920971085361213777719023118688671055243119656824069741366803125192988275977378645294674113787508578457781494270250639129346680950565898048422028359098090244534580427866510749587015397386527054544580928354665170512552532821992303460925425413166886656974839721293863911415530951654615413227221213334800762754605616079959352924274781073197567013380392693060606595061103490552176471314250135645022471144292575219495175659712769941045515486663160070856216377793357878745146474674992847664099758851478560114757632112751671170195232729546932787990427557009132435186046967325249622527724752959641605862063572033942341931298637005488356358565221860687904261305265316084008355624067283922594024719046983338800596736019001744509511296984736912603120221661586177875300631156211042498869209515915113248720390467405284412064508833711720600331790022922770685015905384006640841916805003323582523817196665186105899228256872337231956974567557065549033417790982607620273961600222472736867851925459792016531625359460380775028675983539364627877631291211633677823264811158062629811150368189413343483418221457328731102411695387992814582375361496902528934378564298737314127847148197724466032753862927061039844454154976031830083221762710053383345590235886920544066434310360686240006940899363463887503831349969846296730852715478804509436943664886601735661485005964428084020821952964320778707373289538925546413043466360672848270054648249873458578631512516803676670903085032716715146437244534638458030556533979149680006559597409782549255687028266948632670206874625741113880957828401649113739678066152207560520256859545762821221466850174936950550292825961760218646516375072542341414979319249917255662511902077448969862283768077003260833759113824276547804091794874797207242028228784172491698233590980329016032369662313979286313877361381652708315271710409356613484425363880092602565758666521114483562618802299582452166334516151517451963390716755014818628024510736523051439741417263569612185740384651801986416026856495536651196640729857296055581306458378861588592945028444040624328315886102484294899706425261359484410882959362850293685251528813182217496314021762692611110841134722304648635983913392530653721812319793139003034034641806347594836847738719724562133547855502125520222258847431545692800318906816447007797736622108756136574389961333337565711205920497015401727392353972600442388519676592452674499097400288587346556122986383197341781869753641321452575810771770757495624069014864917502511325850480318106082248752745791723276386434127895199490139720272378471430702664442037352269000983705125685653304890528966218602524740486915551263689750750645174338754457116532372327894181700118618381998458157770283998754218042412146009601974746365473635171941095342887672053364419422269973379414484278375804686257676536251785823728605778030116808538548866752737211200258648420593760254793905658521709295501997589240592812064259436563818592882868448613349383023926039575556826964842614715395574722501191393304356937893771957849174980736398618657449238017550055596784939669457332261521214798386696972845192508541642898989605686113584417551092123720875370561750807184209572701144023808169917445422096222665662472954127698951083453113814532026257394402852449530573702405436784958406825249929395549993299507084144818696678185651380724344059169209404016366170419901103850487923620185148731012633479669293376347817373934550734760312384506394638562778933064269246479550859560590544506046691037889333596727468556603106339469259394808957875160401883242892957156195261343710163670091770343567062600063725024199569928783682204920184361275760039224861443546320522279260838210456742908599237407043068092025576002698618993374893806035922955807271243343818529332117933131940553097529457962997516706613937803149706194246672493942156937831975806031580794574286412909118250450259105567533709828971178926746710667425937354746310834271973297901143992657841163107447499985478521664747711018144131786868255058572373836352168149908001799713378819970124617498277578152954766694379559833917159174901586312677568238363685591950265355716685178743632517149727577371810154474538355811390400782587982101744286040653886325876090123848470215496990193071544806245364834180986708732075514476092263127019005951167461682750629781603826134579203383835749118147839873656189808015175653696686733387187689775208488131983814275801633668986976214656993171593304968478640654453696054351664562568126592527621862728767613816513099443837858124885047924208686017320943428017697548730661576547292029405064865684481377173370604113985332218186829575903887121130391723309065188294266133121616512694479234199767978460983842504647856556460100384307764434919352661436417735325768119868431832291858794854688946574667462732153500486292056722996475765621802607560593578298814562810835529300158879844170121463276352280082269759122365070914976652357008837248667174216629737620414350945346719974768447225533796693798784862343731837218722041753410257218757924636847522412407759078078909991392575055555469724517047466960759186622209398407545182314914600501725053514230218061842530302003125061214633367913292230998406355845297152306492752518575242249441834784634882397920953334201532029394166610352311757235894296633414468959740457747728982731110644212660910517954355614298171224873426139970985782503939538772844553867022381710362308349868347404081169673806838631727698342424513839558575912281449689504431962284782415105549377619717856825791678485441227508324984507032861865726308146807446119728789119480922663807556336493003818392313691113322023802856102122933030428678542806576052857490990216301447252916642374751748805409571514847726323450070834550115265784929202576905577657482492357514507505687916799085691499204359740928909717696476817613351494364877680315522674149318532004417307588921785854103703016093152955453018153177932978067752813635664586184840339273192348674691226264094237372913194211878442680294112114353992026967120004193720541083131480951597862478151828978356846245234201627457645410953303800750985791288136554126777138259235693176421547408897549455965974201922282717829234359622053646021003781554999911105539778761806719548368368021717213921407382401642718336334543025693236156225165248226224127794758978433046246548110362582661494729315218629766092940305458174086651945327487363805717749635355119659902783448661652183513396561665435672378344684647652650472998216976100385300622570814659471420709890715551323343670173404996791302508904404606188451231607672646678910802058314074659730979704034727953572620947008336767776774781006510419188361027320692767437419050729344659674441479223498853879019214984373952533594557730280727750741837222056730562055474261459186840513149995136728400273440102823125619544179093633787525481791865607083736644833004308195004950480562298672158800538019476194854952982012924612265449841265227131472281265298537322503400049746624206492323746494314426590665354566583575953743064819920976659809338214028845939623713459015052380472942878916866471534133258781563947495810457201956900193417380125304259157490780277675671529177624020167797079469007381790248673827057872382920635608543641302920247241656566553145590034780588419370990066230337602394650293787697222963092737533260773235700402027897514812839042252052296850785635400480825966188512660340148219732308361519343915985987268262058616485118903088110956824910188687604194385635127609365488469939574715286844807460390219914734407688807968867252802994769852132738779807490185604479943223807073172567090338731782813219879866427672060964324741604725537969127980645469614376617297457683080625419710390687614892131122813551344497101614491131527414848184291337182576302838067021599550335972634576666092385678312977648035700802221821428592230102737987707353624516403371485174862245673124801569836070924133409129385421824758375827478248940192651727715953165656089708519834872026666407977177773523467727681697565516459715448751611495709145486891594005802187186219830253440949881054112355880432322529884015634476887134546290061648119657413380196027406725280581394717877496440266817433675473796682252012144066850429492875345824171728723572380923281278307966140405135971672212466177221959437940541213677708792424314711984569969651859514467528156480109717395079831031820140946981501703194311817375314203383567444983586980190315209978899847225947873329056585341291367396549513082905077132035868509462862082737191212921790552717891505669726808136622316317411863434500988525484095029909061503812628603344189738347860999729313901418954729023381834601512255499784113820674898403863629117194079790730233557590142199761533675688769749945007097431933388608726699856244990258458047335502176544019814500891677454672960284731548050312348589582352748087035009037799004783398664578040971809160881327869397043036010969634373494302313639068578508579258893692536799548867901784973918576732286119273975893815473048168333033038999983338789164459089228579103575659343524379960610537847470317480478137912744345252136237289359649013528759063223927512124673562648281906277999561046190490974849179249377540605731988690174991131722911628468818032069302906773519058923704937372594480990573396198726721436503372874701745278014823488996355367359828653634934990905726905669865699328031593269266248166777839663432979487225352562004993100284919450241512875259860610522576806376200442161293220581875540869706221047300310092511355670761044579013762585327976272460300001625564272428464681896203195734020783772723411802110250243083313850896471244307815110055992247177038879021227580942684568840856070885707458627765707677454299058959153768167171051762568736498986216418019313461774505818505366839776486521849535948547325222709078716096824575999886950001955245401540070977983381704522048864874110711178639866366820781761636851970026444193446247745580617748135857457777662281256652382052620092278655299196752382839474417133536059468590654457128280795858922848720410910201584567971784719611842812406627883856838073620139906678130205734229379388927465226588388944915722577591651835830728233199195496160023082828256905192857291870557354163604930276486944378710972580045378700615810613644204744159829247306177788005336358284890230022093334596830942805711322999145573630842926456261441390516252157359076828935504274805869373185689357490636497489578630495109160102162677777876227717109305899445731195167935821716166542939684265959240958692268741960201998725426701684359128288618968541897541852873167942228440400303942525398429513912090059145007327572330150223105904971654511648306186641643067729147496229328633029357749717584845646794204038724613632915415370289147170022095930507332381379975994756062459563079995757171249727866529868797233586456935966087919316055396046942965263644273485896667790325336131077669323017333157008641722895000717128514119879740764007098495562738967363851440854358072633345449685413546397076211945653850543517925971132041417596876726669870467360276651313938186077955188744714312010789081562588051175405120052935267500153983030490844738189936175050113429917697932415953350483882385293347709443947267364105838729402757886811805213173998297033968473538690334749150610467787975843319509960382069367687832828629363341861614321233758075080080531744228363771438706979599255981566937438894186520016707249632564708657485560663171830073173810991955252032610104481957361446542239187641120144665800684177309857300613413550424912932029261183610506477864042026759687608412977506538380334578245611011738876000809561342036848844833573465821926664142191532460181040912499084446087572651432679373586089961865939526009468929783802148021982206014669272006509659020401871311889189614362421423307034560394025194108580122738007915808936589326230056920309670592239555537028720802447515704564745634198477510994681496833329395490431911721824804910770144114862872899079914245437869633917704550567318444540172340201240498280700738235273126405871430715017980282840934221810704401812200113422403870751942449616448003718970300746531778385255802393578758100399202978801733883524847209255401988368028498383216020024535381228669629940728879714023863346311787227519916291327169155449245362072194826306493883630524596624197866679903857170387493979697911357825651059064320445654914903366182948562294354264427197979732215960219056169353109656780698613108207104632892534541232487802944314088517732351381286555825580651000496168856062153329214521975332319473072937955654721181459972180152682410632945233380804502175330580847899639653811668760851906519862440248446528904557286892491761164523893395769305450114505437365486197503736370516356982112308918656777085452128049771538664176178199254587120040053748046397465772087861540956163216675864795939362602728859988854072980570281393679988423023779468136251721563563094889606820797907658548264759449386696288808876802091314392834174080184393883192970227879515923752617917943531179240642985594900740621534734715280684186397317488094869100405888800071793918384849126568675477143654779704350430281344522298706751667127103381041204011269925103557483057959563101111630609561798167544571523539641763557515645023086345740319221652249697939921601325155495738884495648011641062736134759859538133548117075894456877482143181991096335935978096698570842156749540459314903525483414632244237792698387531976709322062825409678818123848111268756444007197097127695696748206816825788611671713020788251409728927565698975737389786989643429548687388956418171920555999186451421825119779258546612477158606345743900919709462170252911590451237123187101974521313774129208991511759865764058261439297241768890177957191488313176357833453235733311949200323623255444644837856362503881544909027813894945343216866665552883606524795335062390265916097535116581258177946129363334572693832207056543381088242746062727748261109320854417865710736582584666426197530705711449374228138122024851966300291120608117869587277549766112970662846510968628810482555742819824528139669609349973060381343210850859661022672839422164948501082625936600328497713688426799158384683954410703965290012729794643636675804014456767664103805645294977941473466192493103063251682668793013828450828176434440560004390477345103240047338803675884846388693362053368148040454986413273709583889154629179893638514514218856453321460002468889066938102101877080020621940457941070251843214120412742064014508690789930504674624613748230859346650559357264290683005193654740175903199478781808499960582089495881406750876147266143680998284140170903541891708070171019908337641576271176662583342013404699495103818392789287377366560019772882119062281539567835463155404270190656899850161002268771642900847695602870361461084175666450624263781353090709513266934291767752769537537189109270846377540072941292567858872793598801314839553456044012158810643894412723324915567895582274304384114914520417315415023677029560385443644013169457558635403641655932636417208356205714845175783551414512294931199868431875793766343338520805366953771784407298315429906004250216819983441301996269766353461537626783016053085666516363003512114022885134015059988855262265192504539461329351295561233141387952700667619249901134263458836098374378074088702004573934983918206224381761691529408150185960836878918632043776684963141373994245789535335681417527531975257812589187254169783506250516495637458811403917381664000838024248218100311791234484731998919180297473598797415764964960495375437153022428811674888918747645929752569335456060384531883763152718953599981583383988247190553897281563937566747286669798670052823312539262362091580424398749267716935634963641018518041726810881319570290172764806747705475557953376956944343136539046404859252550208220147198276357431335126407447629531809455452217206916442486958584248182692721073679100216464774872074959154253959253082363238672467656818737443369534124977966353090031545040969407488216747008510961249796776781253166735573363731943167282579494183363870700123561403716262352063503171681257631702614222650229312083439946065737536456042041717008224652164406001838840549468946030383177253540528217839548879428326035487704988883191987575855968868421017857889529663438683191628299237321415044921967558585140328759738823820063566274397775807617370606358087490862089532883359700617799006271274240938154800365866626518849977186424568340927393699143835658182864165623320414001672359271979868183127685113711841864164363202247403498244814968522693242153749088344369329778631135399063904567931874663443185917705439143851745719711638738290625782985109172524091365446691911445435631611438305591182290472059321961129255547547304851880030493936676589818909694866004170588391536974209998115876598654091612575090272589789991174703550485990606082452358136554046180842271276760618163255879662816748699084961622769253146352790307459198099780498254378354145288562596515356404496922321242682042206815661770696981697019700387583360747239773300201753067036409402230122167032426402051585097299155623041347796110288508320332221759928918650842641973037268928560020634695243490482492328762135051442053382608534781416715143709936113845679977229413316069767626152166462795444186713098652414463828164645469588279904021608760446947056613228394867348153994329178966088781596704733471310224321508254290727930411106422908881870096192809575522608733847838908357426005935493804596862059282969963377712077328089356463255952576094940230176804876084223721754038349816873634616911220134116932444868767140770965096077185685620321089779907052506911697866078053942982536741790047423506701564942161914916152476337440815987777506160707912791898542215559209754446395794916692033036105490922284604649402067804216836785882449834417137652430894728319531832387214949103736190385040128285999233784227228043983050649559118006714757866727595703094097544247950699787146490988371673234346166792888550462421902401269071207451345477617938135916084853275040276886697849215203041190788017570918095643244139557114043127272989437464814340876258457502276119720725678076541031203844735689157645167252803810975833217185352435075898219945173584990264858400453489823967777240663780802321806403592147527843138555627257574450427731815210211384415400371513852235220923992460805173140741799037267139717539076014280308539043146929030944973319140081637481752268748828914021854666920129472588966894593546769624910259384556738315798802415017613003390905275382419949263016943657556318664288185023750947509323794837900125095624117033018358815940808144341559816878940135524952616996635310060406113779241818395003463099412729343788589024118908845900160406284670898322802231701961965067555300435621408237128221497560837286081196320932156938107642675840407862717363970330671419568463177026938431256337521539626037787314291041644508705133298757188158976925900390811282828834227784527108719898872020367339812341599623725131599308595849115199709888194274972569907904171834190989276103543906288309694370685040287937570454491704551672049445187797928608652090853189304815266976962297844625549480972170939990040782268637694566024071939281865599315191115980290921566394790199354492999162038689761751655416684345695378081299242271959342536532757414686871845151101390068668820116163710289215836291437692170261136315471597551455523437239455181093086263995042818457543504684937847223607141777636054164202750460377006539018031147763146893272752110881305773522071871341379314403316872966477733902835493829888133910060609056574378358362066526897844058935851644120453460517708992620729042516976014603563583835499781359097593649702928556570846721551876219266007682358714641609362349958599871295526538698529081855547457607064177962208501993044114659784586904228961625547275841778036882551868116943158608142775032961439645552380230819505038359863829793498918745039439795443254608724980803743772833333611497899056106376170303848572619842834353965869346819740792168199961389557654758809761019659126738449603936234529613847776643688616510243147685739733184361804202709971654827706675709637881420085322879381055147661227120892421216285545484495028114289154836659569228829749174633249768418017000081287941260985129645929183388682540936112679665393909019952379528516825390272758583541636585049413270054972153891999873899892456099989335208676435312320193535539517025137074592130547874562952354845061917316564920368722487953246748522365424726887137484936307537526773736338565372219671029628263334602974866819674739634451359702102285471918288101085851667026124732088720509253417814852739891541194496556374129169213857278068691551600064197300477112206627387409703414936338226775414942713294810358929911288413479130271803372149001877142531736178820327373276752906367881321988985451648194316309698863794057385414531359259084249367244283056087729026378779661747802347243023135644023755792837794213793814965252734539922075629644321695869552591967892842162888967439024637419418539001894112751089205022701583466323438788359432476573846887870619683054173357368535372604177974902260337834906781298140719657786994403842814552818651759976016655833043163206915558357768100118277562470186521118270650009314763948984732190604609487478041294006011475413725249144063900203291189487759858214795971472716035770541970104414112376106619694920975636664715342544232681259642219365429776210541542377214649381544658136060774625810411163148456908256434114969194142310925486371924254429453601542635763184354203563692109858635483574257783281388249406884266068102322942210344766525881490338153093392848801977961158668364463311096752744432974647462936837736936680480287279961888277068288657372880493099807264575846186476203355613094143977933150053039260254820763701893447491456452150387783548459646793607302215124436689499199698931585140043812758454257262710013641192137644838105930182455835379900337546485865360643624835677693864470220769744621067266960801754620073924501799767080746969154116835375675036747344079401259827636268415890385721869689622934237221479253794098576542097686208285380852585710816242662911179900828328444678532228825182552532320959389679738182334826278094773604862701891155295026198598971901811642160920696987488172509443412851981235894984151329334754931070530329494629140626089402040987242811466147265662755113164476534315324865518649939773139382261025701251395577271539027753595725561475132945242950737121539211588015094060861319345934448226198094542331106439735532982235688207618322535272781687597291648538155662196114453736564149632834241120540617279378374869684644246473656468547176532841248801448787536515592883220799226881828684999536141586568485235166881270006010200004607458982698731492746336243568303110630559930455496050528926659662594365772472899701560399815965086212599235538899439255790797102060329333690092499880129022658601398603574808334508554902397857744644007080268959872194731304291620382103849059860571951667133711087755285171410961909376782473241193449258746385896640932003656467914605709905769082069698761189062845592703310505734429317531966091066135403860684842396350713600647317014141851702231195758136506595292744053105711392174927184021235392264658947185092036644032922390977618478218712757719714361548546094863945661579572735112393559287243163287142158071183145964808808235494424399597428676134490133121937718496090984704718691116791881843154202751323986284052924659870620382777785526810352439895141849581879227690938195375650679591634218128949784676553402666201545487908888716843845830602867737828352216699468538177090718085872162001214117955537279638722646442187528939895452520319698589289795654184986963496847335736134646268173205276703669264245508975280912294871499341236398142744731163901530188914252373994451120338156363167313619633486959756153032284263635290564578159727363437719555659563252244151704446119265441614581768549771004497145186625029429623566593448132835726637461214412507913052108980520414894848404724971741895483423243754513326657245237968430402891441914911477478988526177635789230220676865894044569859039404983983105761620390435163732138939453988902138644628157804372901476192422959023759489316404175510963895881190802473176731556756457645588172866764908036806733099355313909103155702674884550136528797667418759546764327171542967621057105168969380158580139422665343658575204470048529443528562345577790417205684878486041574537394522066870938493423087354963982194776098193342752024880195924198400776173396483341617498530074136034705811795976781792174531229000632138131701143516197670210165366247719465220833696001842147721100861724406306072361811802332122204010486804241782882691989559598717243577892533931848865593422674756678506624095139112738495840528200250239555140857124645860730026944372713249959309387318153906710561038979840051231976088984648564716433953223002641234617403729199210907923147678810925722576446019615279593391081802488254455900433649768248328484174259561315676301799100761203586364694567923445804747577470099352520700599151570190661629954505173538409364161338871150187705053615082572648344502716389014473725261119466221082623602684917219407456950015719049012874261969675232841302926303356583914510799147625163127809179218234062029552111487557353859785946693483639635252047910049172383400944087526924921469403857607144058144830630030861686106408988259741734972889774652292764000872912874290143217474138469942516751122049015939441686734560099361577550697016766512719384164764656049262861417266373628798244779013708560693426493719498062455400831361661720185161069408561694351498370138546255132486149338838783546869836947505246216563608893254568652313353552212854541711494159819561749341272070521954612687999075418847431617046468211725273288430038572463466300339260451085030699360826863342070140120539404608430170147250913119808879832675466733302128274175755480468624516003656930467628844608633986805520744876590957058614679539581976322637326320265039135624340356977455347045073369214373276508021729589576437534418439333364277061461892304571989998723261325061604929519953080965896622632437644897828073584173898901365443060933018223433989812503418537898568925239189407149545359267049799172519854281514908769227361018531928271767828486106099650623929146626285795019819290678815094386469811342924828630291517886674086102323612557514704602458609647547891559151525381721813508267117201001743937533634366808678386878146383640872495060190514083557822465183972591825267064464236608768519178450848262704402445848912023462953088745736388894864156813887232377679368102353446719934036107331706865896267509049675129226107899462007022231537593206084924915782202522930810484165652899593079607833299881372706689922231787396975085102971125761982718999892974432609143993675302896747890331540611555080684061702625710258566878031275452363921930010764778876523236688909721853357088197097160858197816374285525060815115815634558760076078376043768842286372406696350050513488729549265296868342828106599539219662960527651562292067115471054981703195133924042495909835158882520383569202922317057787506946675517304973461202989797940961854927189820313948050985487091723410190705478437677824642679145812274469332114725816122257197271522576891886694377429854912584887781311316883269378834536211666870937515093872261254491922041394969652580165501265134440083006901692512873389147736501506380715897786460759040570428477611833569818197582163268013916485414877479461333498451826022389488231476312288643607349484982708974415842360932828730774965694743248519276508529953585434570191173292448695036731035268275716239291017750321911550133436746701321898740652572848536810892770751715114151199077712391214411716645046562344866204758956572315661153813355370315666728263311856649192018419659283147922834845696802296755531895735737187290661566140549104202947090310962446617778514718269329627036343723676358204039201337220684861582575533973160181955748837291853312913554479666451791064998051849536632915728595492323647166451237857013607152517996252234099504532284431654079700675387693420636484668714656014467111107386579984811985734381821757713975193997753343556645376126998976896692341009841977494986064608036207106518503682591313012730748373382814064480579560501829831006843855674395217603492815495770180993393120472420147994370714034165619300389381138466332985865881240935580970649717680918896635304211574004027205324013048753586679364151134498523862721339203250570386409776212312268329626428614241807770684777890980485196460975688714130989362457935220296968087206298227793417958496250960450660468958956007759485358757603879918312539539365930973626627191504852551886508743156405421852119835163950178451374349807526414833461900052783848821259169343474225626174259258934135178110846152096035297869001341691752227982414920923782387284383237631104170920429770678526077341541014773339124339499258288903692182547402036016969131337275451977107290615207231674353315739478924062977250761282849333751651478426640783917139176367212413715558965168812058549399983788337308621044196164648999956063034306737780772132545483578893926584406163797755842545953408551576102599192167668083083448118046596748305130943026407747607558089867190288539818536084629878080078131276537738243917642752420418676414286965200859937240448164873629305670253905751337562716481989991819098497809201527011729391179041286866080385224329058950787698482750238750090219672847125267604266569648830288466105919298123523483420839350509784204090646685039545183932504456346561810574162093217222368724982207771592706869503484788613781549399036408515911809550384764472685655660743198833132021491941839879503300635602585649881402548845873903001683303870264187821620192543132545988699772762071118090080236893661154869029824099126503820991213772858098643159810078317315365638267631375109118729924111443950803278392936608572487937961429051823275255762861531084424467066480039607625856906248109282640864747876894534272668100828695064989693515105181513491896515716905084986730980929630383791238695472418631161412902121183065205676843906340213098693505647729414392233471076704432748058000774830621013280631620775038772632785674886077619739886401445671410937171107888115659181671962594412723473724665585518126143427765346176934451260102608070677478325256971814124587812785250198172922811065068564019042539753606275024723728905902340130626427976416766739325132763047694898966174754020470729422897356962239676747398646442547767540365335513851487615521015263206453780661037939571816130456033379614837497044079405821621292610632994424723693026274568440148524817154578109436540153589007896730458555785622975809131432993903881392424615014197962026842691505323388796926447088197042749217282985043796201575081209880807526717326503260311872905311856673249684546891933870493403121659042216575273784141930213599490489679119417960585996009376928497926389071171070223887689992899745057258127594083696395924284635158315787014196168913470843232207171673795792301009463132201302830913353306155005164475370611916177629068468091833863886287934728563520139577784288743683286921197693976614673727410668788061491268613834535591418546783804323182300336675285375427813780631751414898733295601364506977923548751020271979001225180523652896827521590816052285779868520261726593521255493264686859484796464501142400545517833557262319456380933320777099200519913894817006908156938807429747207544586187214045285458897385218446410929327266713805044735269551245687048012668611306319673190726076426144697464158674061156127729559728525017119435463380058720644537466194369582990399890655627756604420617140578683774691021204754904210920543795058522828643444059315996713295079108518376361883666005290760127278641994514150814957749179702127751795699567120674402973462913039408910342848031943794782018486635016865339357475613874703368178935149801675785448949310393041985235358440195216884368145837909280485751153827516293769977821537772199960907862345609435740051976642429177461809723656789851714035606793856208876310843910969511773373946019326013489957224975075692674833119726236209280898588493612372953017535515313077753059489079122556317760069082226632852332345353289741597115493728955532093490437095142961389566305732161590904987452081928027159631662202652258532495870259102587070217730832011480258649815251391933009335664770227508492162681428184676618018445569997799124244379798910004776624822778909899399736849238700911654241478908920700165179825536583991165208851882705463897535966090366541305483149301305397464176374664689373913170229388201885412871325755845654542424533308541892041450470008184879712886296481685221696822156580370623656708823518430758831064133926162306949177843930010202158673189799521305304584484821797415457693182147700781409702309628122225978114849300636382758907211647480310784125686505549377324364887570334565954460156639393489547698184958471438875832821887059105615141046950521160869925522018451822974871955092280054183113742377377549838713892125866183856854256735985253983441477563749580757230856347821011882764968359744801796121182771553975001906179897215188632871082691147336623656293632101732881649363036252276582088650423343603163594725978429668098117983084512674576520589530387306852931377389257164982364191489603528116014791003923567145710797834307250749311086017138118404525355249632095309167783659794435322668961588866616689917995659095068345488314697777807116027756391296634843761271094985401362375644092729136135784515848316216029333839528350406567387905906381446209286447663676207300721192489730374182308784655012933892810382277489446412565360489701560685322045676406893522800123563228064354169507618479114618170704834460207433799601468113807109810126368322079727353784129656737473949477194890351121034750382061143096926327173625848828846702615147238906218337699315280066134247601128686726124111457619823974734177605206673980323214941555595646554015520955274186306665018178909178368715875621991865379381852486084549283594621200740857662397012138046478039082777481852763179200866230728759981621397264929791367681986009163957762945396453816991969889367599714029136007557281523059220541110836491304712083525267606256297285388239169187627388091386447965892497511614519061426092196595152505719405663379157325968664189528543856889770359460847724038347354534641028887102273008556009803900493269741248363500982180115484357077456088887689499872344305990529606944942124006765825578494125568030670903890221480244795283068093766774894807928427285433038284493723129309196696800362746575759469536548103241898216930687158204341175568948244644013980901915677417744491310758914823948714131987179965059335039908943824153003737500187004683427364245519805825227729428668735849368646443084315685010614610709125886373032037835206020484098476460374659905753583637681663459277741208182645153237819531233956549118443856280577185183669128929991533500659940423156466059133431340567854210819490144434868917028200323389246723703839239681623555868394125778487206391717324393978787579652988559958852487426810704261981757389458086099527030556664557573931234849634342615590079504114463240469732395527451433433568162696580536556551830687676695825805714121215938493168506297703902046914428700153190045908766684914640783089463000250408064529090204880697465795829262269663696891892068135875232686272940735154313815329326544517596432543715939854198142705203132178246964330900063824177182854267966044203424785358841504971571343321375672792310904555098455104646304212156789268638630770990299035603181453512719563069772105273254469933880035651360362135846009637058279392408468230606784694373153721105918166071998145835632420571514668217155983820614222706266690183949252260531230442440904592378153636431967133330399705737041635004591126129767042314862892280367401863004763604115608493814272794804582352764771135130387400698376587603059450575938127712414561844217685777909402114139395652717104084672018146300318819864688209987972301468856482493266502789969039176814356217411440521071857912735332646256568611367101362398896227821838427075963469440215626639175150704715247322441884949436077182282150708070844913551586711972278066449498017153665017844934709155678337856904432543667243206583197237602620453015933211584371686583395505736307254816191484598820013853862206129179451474805570807047001731872330063315853800744582320948257400315652792595782735920978600804248028048880931832399828577237019277059222133381190121664116062320881012602401080513013529808266524887426535593101042510472027951852230490465840784529047743379339536813932912909014781424678126475290766164039851520260362548004990693595183529511348566258066110349184980937846084653742430958329100276918111493232811977975365022516590169438470540107863502679264507717544138318532945751478392992094466178114201826893028448989551841795099350976735895384691105220845256059361742894343555918767614990923018572289731991288027908945877543162805583629243289802414488542133133520804019987710726393460290588069819522473142418632024625730091870187422588746757779339227431115523795480473334656566776006249342650207442177457807178496053366267927818375135702854351441682959710616263732986672634550663014715848096476628587679440009485245061596226138491947189781607459885074675426019759847919471547853922110383255539505577132047941807297841863714537576586617290736434498485495647983231257152031274991498646677851478850718501438276345293871445356450783940289566316942460120582111863833272191903552181966043520460066738245606785286409554444903337602697989229698662700065116536091817955891144465719090287324005282230119014866963648221256194819827487443771378171654894677433267564801098956644489408029183109400544806718870084516350011412685764931235622448783490777342770258412488334297890094939180362218469945066228615164711101039007989738807274232673505707124301194352392334245277125911499027021815778170701236573795504612137914596808432034366009324345768807776246605087235257704713797581691810990677182769502980612075066486890661616609747454570329883807131085386362826399811790079093001715702565880386983168879653603516737664382041450353970870246632493867669880513231522687757284790656473854473965060747623918972050472576678263998135994444813453275649133110566192529672956270412217807210781252361359835997125594277953074569713388122077815956653752234510402392899022720598621780313846993480922801860714649073550791585553315511137349850917340911381511388435556474174379124589133795429195411654130524545929642672711636074356358135970856785112257502423331578426316558210120572907621825790989730349816384108117158874176737258744959694204448692248836375154474915209966422605940465695866551772006671248571912932308497055241325016419737154232914742091107767302584814884816492484024475276166919988755286477132394168297159866574508305823208280469683067200735181792181769222941228840482845147155014953898383596649401444024170250141843733388853629039952277999025227863857125477117011508565339642524212048848347855627518295963476001197726535546588072529418934476880697769050796470653455913883260233386905800626691866377269228884560208768877580590644336993821736782444461038073190099953700610378761571518715999428641797035876272932476486172395179425782202153309970888499226659993319825976349823162049864540210388017552260911832283279169661118863852023134812277307786345449386400510472539217378268193274624653341618698910969120257718200386439407975274199672665720026251756680135913334436345195172407469996414204330084966796711938537704426312854304266139345217310949494337084565938305556854693038199008049158069658010974185368394854018297323366292071852334433653148975780495258552483657972658030091385420326472378780384682936708887046732171948921721300079878504606819607939449517028617192992683043458730381073625772681321406812407325509602341441779301841300289239418981121711339236073401289088123173656598470167969315487440852228145353527058213854423973813685646494564827179447426442845102573203787938764818731908445429360884885874060764185455153921456372961300953414596562334049202352572690271384909627865557813385028572990098170023835904290310470704508594951017065169896757970733074829660250819690177727951065216436434474788645717081196273538213240276752489925098357756666876551616538358989803020129801585478390261269819158380804948869366584391260940901603667784140416994164176034767706489455186443555292386141596557707504578845241991283104774262684320874724210652610637293468562366531998800050873458857001261467350273001690720604276494640997868892662430208340183904986164082547708009843783015389514269345589891772034619511877298845869756030173139029590896125374232760758767989355031187283283314539823139955056727113779655122134262986269801167536863173542953594900722313373842815320905966146656904269298781087264346921385685377085454387455677147837152273330137599784114281263078836947948411657987888745260320531953850698022379971108641421659555133906757406368693568521724501940731777742050884857841819443993581961397103785120938564948011923330100307929249086563698822971407458761633281990479867924975958441597129124109014279845563297555446055151536272539408391445999904617957954457548157282159578202323530008599629297850052937014485244795376058462725622767160678186475902718112441843494191786075134042432711934745968237191449407959589032080504371886503416954111033446391446792698384867182480955062433919234898912091439294925351291098782288960261509236932418606820905529762416695410025666811113230150910637148882487354082612292218562829018393625964327749029360065447618241448662814682085006364911548230216774188297449458906742868187770961430781896556018451644699179113216558700014885515397162338507800983849450952043757071920243291137807647433427579219880718558364709814530795692075999517575912618652511251377239731173455732485309366058978168983775662274337826275271675220453364173600240549005085718922163735928586617966354830831650392768320515504386897401770861473847167944482949383146615176406198722904463803020411903353220330965826028401205913994837601062816057552408235575070351125193528797562828091563238911049889883940568396181090189229084076765887203142336856303056994752397842728884797593982153169456561374114798607172487236961517167429341835792382177659904235572837884957309118693379564214148587967705253345498650674505046685742626160827241610671223983223155947556966795758068305524835817761941192527456987334485432710561764633066544575946542436604051731778714942638777514029580349127579426361861564088421730107174992211626058288392992088627550347237960517977510060187363584638814001731204362409904714051407577959267611741550172724309758224375098190200670191365855260401343864702091877862518794375355575063527331397976695322346258672731646945979968800772622324246436644781782479642912994313963316136005587833851844560953810966057911624579368292822819137953877409806196368166389582306952909388934496485287904710624776724314075023055325324342543273662725768485228074837432545987343842009228310178707137508301308869646348919516073577872498377854334341344623621050415498202886546935186595604142995172278610642049950625679148706227990610637335683421848011960119241903229117281598814377113978392270572539034310423340384377801629947361856952268689222327358363831125877716867572675157241876203533396161310807104881040656756997821056904247380980781865845806431603740723604484927499762174556057262213058238517050796371418039539662570916354467066162453869038869482139379341176241666903824789095437649121282922184455634929399666831356493238357423278483403646459783273411324087979454919143773359760562291866532048089213199624283813832759701549681320905175143279568551628420901502389918440032418526872771182579336474068366645362976597799898733425788834844079148685402655057444226246772593254152126560394645548247962182014103402440212353381265710203374605379506617752542526284719196359659959662569341002874981269925105084510682495657630290083919470413767746903354960385667435349240135650232686070346819247065845877726019511336318821702102005731200035462514880263148670679452718485860928432775473191084803879399734254069372623544176911342637600154154567789292850983316989863191707835866526241804972857940412631725723948995660491893717217538785595075427638417154032675612970341568581923741489262087745037981226001170748026575339930015385077567943770947576046870034098714413417272701930806803600869289647017764936267997766955250570098904964625557357849820086531089560334024315710593233545883988087666234674801602780915660412441552983150005240104080510055450310450917577089504188040291758615099997576943835990786416461451014567889812076766657458541329730855341506384447132386432405473733020684870214679594260479775441406357440478927640364232582969414704020305032734830638318187648076038302912847646783290409663092865216425968184455797398981501975083491422502205008337764960369634410166164448853277996833962894080566329667093040915467918319343492047569939285749185259601714590522365911442482377624335725698469559097545244897334436405781509863587959473065048506853118102497139761502972871459279344067135190551370531662163771456988443237221209041437306865730897720936357110785647330035398762615399542394322634370242370603408657573150703535943463050890201828146135333056594931969633736249562895573052350972811090211436751931517795305710573723579292377370016910496124033384284014629769329484301272445649877972776979066465550152470200000353265221345187511544831593163243519898775115174572137461017678175972441031266600421677110396253600689578465739255326572039958953479079041575158275111334819864540611438303321764662594011727883987501700888513268319258890812191856155474901066573782701210740605419595689528041944616070213089320841989449922858973041544210807354000072836144727883409241441963463980077913003906036167227311430785491828158315851228138311563132574182836021462469951071408048996714556974537814107569108789959160103664403703791951318307078438407226906779005341638743722792219160219155567110824708264955048852941233199075085673554939860466582826670411210804377474249556012067992723289919802533619247212565296627880294666872546956507018557316684684005854070259521055343113444622079029593604236520571055255000124842245628515050195570635638903642969756081182514558020330113480762269460806076961332278778169068301458138345892707051018153028473715301760511762007268755601683398332520721370702354030501138085784052436250950962409256035793160030849341550242536846129913976062845515112371289649137902684584562404088725696206272192475677283966054406038913291695702936695933594978924522128764212133895671541710792455313173165202780710534888838087969551825534377880145021184214079881101858351126593594745416573104408637094445943489629452948210833182085503094249926187355337485693432480957336971372406969657541709062404018274738516892534277422991239087818106303548813573719564391443600422452705930787201981699335990898921951900661259030292989919757707840739507474690188576820455197577737870140012317804289432013596404479278109955350177711171475967488618916560519031921987449720429566447607595973408919886551209265070974870756280036656887137311488821054440303263881074927425161452516686249688966316649762592445854767123649780038657740351234589856203163682946789160007849603373215433330015435112467994071832613450346776833224494199632843654533436653376192404759136028317543209735501417342986452351669627460163072052536917002728656797879290091938659451010404153665334706642186958634132801100167116252362969829552003118945509383141508423428839620138906047307860255928341014200285482276081735918294595432802771614812833225104297060301603279634749640687510299988823786310375100833493854631174459886947862902604692019372482193138440819221154179574231159660253663833305415670074278762599782678714654658064200853301556805755748406833044065052097265870995303762914495556589970279556592795893289129068575104353465087752197469424923518119964888746676939100069936065737718640968928085414831418364051494537429905453015122584154145405928425595689658551980270729756178299408536685339026740584215423899410363197280004027214163587393862523951257302223664837749929089052641412697631729801241109231276972720306002015876080772558880361015087968447400010494143449872137845852063441383372280487302133281018475353754887149464327047501386925549728935961793042914985967951970686209576116230444299089486841059959217766713029602697543898071583146783164363560512485390361441240758216820827782311369229556407042812325672637102030221241304466570678069655868593477711684166993069267461389218171511447929478674677752237841103704074597871980599960611770005068284435807679106408714087492680162709444204106458459246085321858218600738340567274073909901091211699109089831131640886172690372399388481186533287684561688269385482950890073214492646245499117313063147810741028159528493474444172539742655962259671797639702944192380609711627150184262736932848651305107937024958019073500395366516769446619661391410749487769673656853508499461468663472087910212449359190796758465361689418277083320927688932128355740113080309025178185719969679020569676661148496989445872022423086450468510265849324086142345705428070552827901535297621299109304545112944824425950943015208339047039032570007508457109014018479534768510386112070399319839745380881042534596621398954598552559241176903357343272505094942442655828054008206252934477385822068124636040510007310928441761707924322889037471847197990598991911853657275071546633804095619577383423899480592301252498059696710644156461526263130646763365414022720381360515532816156925465132921043428211455357768901855824330599415641828485318429013378704915927094377611139177827315635954065759245041737464935389699051730287889206206112478297437643094537999537141012514696903532717562749698575382520950996374603017800597292972917634268656244234654694058864795924426263211201914440438200475806624915812359236070604105185809840121386700867806776375862307653757426468143766603623588456866189425807724508180572145375277880452906204390176771584659598036888918922180907503971851109145447316894293606060589895722374379405319990776704526366663995312754656974488701543680206111884643714308651406097106537515875167011156191113404704750398232893838377420847201387200565329819555767438783921651858469568972726021362010578196366877571734916327050082902763626710208693016431599471167283091003514796705722699476444954205441069005352583794904879115521847721579974354248794555682539055076136094599832736693826179876957360839311317561119466674339520563357529149852312707868198596350690000271709837377227373769318316532199966736898470851251878506804383942592920848918542556159139493977465394716603232994622819201837465073009403287532792058368794463131802422171568321244151828877331142808521537337928942141697314709624362860584796914896410329370596844073046167417359984764737787317558619417577996484512207176251747493098362510141294756956643608506077405714502013295144431391609881000166449901410324476011730345643757880610510169656310970899360215295257367033358362145812974591371474655437244760078924353865477835481957450559891028649288864705510360170770853156283344388321388069804253566112032448220418923972318196878045687357347382469736911738875173990370755988784465891400520405686727402316939268603103748378508858030918167517488845591209933612971299552853388992299376573132561879528479754387122684851346415419919270426712859765646290253659007002168133241453995220344675852840770316256704177346812474117977130918945406986701999361884118356263538568991899521488633149499821802807490680881292318169403515343797947129979206316069133170357334740733381040930694829813514789686474553198259706027035787865682602629407147224029570150459865096551125287553628252590828662594992372829801847001243094372264922107780224156385795094295926431611742715483517733996126081285966649363153818251979204508215299832247404105903343000222140109854760027751715642733668979852545045536056192312462172698818131532560349895034573407767858424868143742856470610741920145614925578676691779008695343924292213557981096488001020206897524818657805991373463842119424812287713071927940133708118227933896161260280496945150531217641441892761630949335144623269665949258025691039014514635022373134586864554800425777088668973719773734709670850983840449372462905167063032585413490397016206443067330527225264280713545228470086199872721504024256991599580653669926658593073116636702099695603145606292990894966688551146326103490145937801030663861676848445363878581912534748602627504020965204466028102441039562264570371475733144911307021489065640305486006246669133790370590306838455340630113077209051975825176848478790093165719443791201968097586597303116678723901816124147191333234840489924457637441174210975496405938599327047657059200447862860949474538089983520829980267127222569103478697549430446911002899201603045618235870618965304814506525763633198410265391383289123561497182860121201018994298976241405515839183173716422533289240567012011460013680746514393660173585897273870078650296557447317443968481542996001417288777835200379106361966174901678726401521723667255189100286259342336886620040132918898532961724106318977720665956631613055122285519891978555252100683485755144174861479260916286705699606904618946300284562751373391310752846134570807486511038482195844944630471063804619033926915929429414297833143253948387103547297141728145799734005287549553830999492305730003142611724864159307135686628402751355772945981296357510575708150172329671697487627252459335401239505765800192450356994053330199517467035841531234387272801975162658855721888115553548247337527111719811644291690543583118281039728103476727563340742978047445304406245185633920863332758086623045108398674336359651860614594084379639143416928265292032928465981356252552665595730597547164635563480414619955123067853198794335218084574465600354611909307003619562433026240348506242301137562759194667814647327952061462022472899075270843008878641116055898105251236615848309631408075870802208379403252794508476146771714508320308888062599600560235078159936267569419733921034369183828378635410207169735753086619353289718516560108673596487217681879836116062992202577034801122830234736764951552574247856945817711246907683813645364941431518262821073502148658725516752947027849888629719966316012144599701826632737716614805291011963059553390648487131047652916190483021761402167363720440139851680896867232839298460303491670138365378306499167863393815142761635259671354633993659442538955275645009334453987143170306921994416430094703637242818965596978761390342277475641356615382360535596331695153966073910938000673941255790011772527187452200125678565081332018743869045929763456299833965700714191683509659216764603978804837078459658047251847296278536952087073082014598750152425737967128124087788899681432017061639050991808211434633137022105585613650551861420728140002245671739665227952296881978583785153124380278794015613775537327190329368293367428258707694973716465675396634039814809247320585015842760672448503764853766227634703575556908023645436076315818846579394380019507330694546417837438569512371349981216394780346488267352456110731402892991628565235628441040670719949219520864372910345719280525176853579444710718549124628899522202741568149967434599199276435511594718730957637248378833937175128630924980214741392059239304750191747464265827726334155848130700853486635500354301044535424353764576997905724783777631117273509608632273094436460003279345128218629566811896884419708417027471492158930994262542130189704095310762937895257431711504319677557439559668838577373316706935766453598050872137505964635591164387486235368698465691065556321447610768133709818664825238563164056898038339629677269832779223084017245200276884425013032714533677266171502232238216505516575448854045554126559047608142573307896159570687527719468835958788411064380896404739329845454995288752275404072449068808058639480491471444576951113184334519377042722921785338826507093381446276180855401898433479860782356841563137488738722469767686389976727261364001052827181936560596185673941035087205304093615291279636784932669096520558309218208945736645803582643812457309143843006515913853421624747814496210012199700913752795638740027924386749315406805677261392441055617801820506572857794003183383423019882200441309261105814183402195182880483888675596173153191398366644227229635416340145232360138403574327099360504646489891952032766288051919983682477339977254519673443087583311476484461941448095533451010267122080449733744567034844571250291769314082873864823743364016108453648229672218174185712473770226958259628410793497325262361003961568250900553181593986000516081394375424497107341543427578289384553110700467659379701914410355951113935491986688493159349767821445607793204122379019508647220080883624680998125298529012001874677231460975920125825776172316796284121332598388572683546682023213990887026147172010809588874141344000534353089348550632874340815450837241021493129987904621943686437349328698473945150502491485555892125764753038275514599729946094995947072749087238744315834654876357959367886298729955586167464007276740098203812843892183112887850689799311299086935178805068253133646175304151353054837062669409149870474112498125675622012031358800878612623033909121328524961636776137760267974033848652898052787457572575573819423550357875679774913163562825974824444200896171725129513561323362658880935760298507709434378530075978776387866879169953708948612707158018391549691341885728073875555969593603930055987135354838648678881085579922262115266429785641575481796460121532490598538469181466093051770331525044325563174933106935542859119643739517462533294158609408002633932629007040736440207472801680715797463471252394951667741167096247584217080467109536521156226726863310343248441506285639796273913011291139400395808392914419562559869027575539775246293941654387962164689394968038919426476756197261155288707323596966568198669588554820080855779494835091902835371413337186431406690205770300444124899955423100737345343902457640949254424314057573593991844056755959846038184849933789248986468513211931559945705335779367148058630386793813714739875850862853946249502879000840107135845966706149442426289860538752955063343717352922986740616297850423615765141955040951716853297434695638676880690079226489266555130709034051682063599259238106196824005411474316228723630323967919298691579210525710146069887374817390892429139213734580784730967851632429809451304017897182540951610562698554039525864865738165916588284364465118182010328798853081384394242947173685198925759963019575874719697644541222028949605477678563921288528449189145840636387523589162120953745662701092395715759818067563983828230464248231090429119647356803147636861944956613497974778810352740814081378903761033162595647058110515306650463586669438433678565056863911739267343335959403104053881809867616923314053007970475339340988008860290613081423884077407721722331123840068563565879382994842482380963696861546910981670043582342662568552326991868093825800849374228451550665139019942799841086366035807657379173420889258766602771272857186290589580898210751552438304580639963718363011700123825798341374024206418458935307991300840494281613831152003803128298098943996661559100633118455528665603008608885866904218404128606844394371275700483375979231490028708533108034879649076019418076922549103399994341678366727700091717023671699303515350487750786501785083171479566410472858134249627435219855988298114344897962884546545232714126977331589556081129165385031179402095539281523124625847592307926777932634665044939367553822013756844953932894541960835440388468307504254515181417110224665634219860852972293996413778012441374081373032103867614763724983584417815215100797354574837228873654035924654089994457750709288122301312167670180141593593623811358220988015963438974546371505923001659925729075800077435372412178488345949942018229393153610938636922137643017966800700875171739056999028961571273292501767998010208705996719710715139841353760955507593820164563748203816679476308284935572330679978297569670649200768580401210626674480127842601061066932082768222035159849927746889790858911647641446483996133265152728257197419780519258443953463626000630158667231108277242070358587722955506499854174453036349890233498850595988766600310613162506288392613814231068726590335236040648717895168159721165573432963449649495542417950985581561903094934034459104510893032611207448868456115792513044527075561374733350154062730625418626294119969979944817272432067057344789050725624130871629846734995640088819722772247029375518675056721930489820773316292544964540572004071548902988189993262785023853397873193134651975744973051450657865081823446402024150838690308607019344232981451080356486439156355301624719566356819154250368751490111100545353741732595612926772561309262150116069166650035574888980148701679146872001653571690484552826989095625628041344812296829599082985989091070320075718390204715154520990759668820338079125638811314896926908508501943986254783375176298957771367581926797782500505211878483097817159802326129552142230248768649794733524731488270799164752025797158444731256508124371294929294169182448579099047828939315952721448246764593334290639159293203322914053657253214969426042072704649879477646476518448887644573117457978084623834207885861372755499919453168179123989993828878509698956881384516213661352516112994000413315532881024530398799600657287482878629589338128129741051256866332996178153485585957820699047440723095175980602336842786964688210138243431153157288957865332420265542817285707540491024155063112792380614968695945223782200926962762090224564110833153149131096900546442311216711991824146902715173702783589924319834245581252056005998608738133569148268983449673684521673930719737034521378430853298235670037336625616277343514874962650573362927440992140054480534076739851398728511467926898668040003945226597389928673761151925008394804401715248256934843526665954139879818906800054018847501741768670259837432306378766659443885397786012215082353027102061097101044201277127494500378497806375146269513201613327765352211798439352866177344202987734256566256237803354765187254933307493581463625494916619891023318007521718215937326583003074945960817792692859172454554007598504952586670085342466481772693809314425891842497166560599101732476694743237125588981885438317300916506330683924715741417769845309313764597719639135497073941658737941009145134702457050086722180698991999714705077913358303422824428521604601514115023713417165861732904459474918580626161692497299265649561655857899503491843232170726197406035047804425621687845612686116852668696174906895793878179318303686841282759398897073854376146295464695410281586554419197406977468224150588813485992394423342410001481726063592851038490751808621191507937944848918775786179303023329850495778811310144846057973046312935138385882004344422181373953838162565066816174306348555752483290092450158163281682304982359453995970018920740345335391759645077822667219579305433721017411483589059440369649495981575630333570954611163174651189426883253480467833713996880893730157070948856901910048524705023723457744380708609382992643373674336021732988545766995076757848889785199024902841413257692915410929512542078598434323079885416275262993803694465416374307873330999282452467776162255693255313295693123624025581764700452173308222123236807734146685642299219980895300250373547806258183809103404239123515814859407106265846188198148480923992507164676872141385697874188481735807596355808259226071374743076573374216409276614858328466607694159234574142684001648680842943999681761152549629444893169384209698229155253564407378025572751921182041073616198733985301540063215160666960948431294467077015112225835014134268851331346533335625229687230477870582856931929957755446867118274813983266992706222910420025050618286207635184667660990063469685363740655556889520667856347888761464859739506136206960814305408646558389259191990401289432454881434015707738936414033257383937071382218245630106933068748843195643982263889420140861322109940464438293439815946446910259386548480573880218031492730901577323175352910931909274788448619460081697405397273518854776202094453232346401919716012142504345199376980571075246438300877757233722484255416023405369486575174902595012055915571055406089945305502016956874273570282145355276693694575261528109549323025567140700148104031686684894674631978378497821447360955227795349093565662766963828399544632045693846320871056632990396648890258998019387595919781269841050711454191510764635899904830145011494161502510794789220041198594153478203986837749939908929313837415378716915623185533186911950353262759108276439980604212226342299926929577972524166136691073581697433928066636909963632469818757943187408413395213482172097535635275135181757253994537637083781980139921132635338052166362245977500658271764053091359160970918598839351297698299022242860908047720929430344884244665772295351750034195995097995675358735138267186834387654990727150661838590701720734915786301393565147183684451960031021596167724209758532061054471950146465067132180767742945162053542422748863989739285817611744513268280126452677838797789400686770568372802745242586111217238653118742611996326300655501849708716529035143894847669007096430382226812729411963942092489146284504654708479524342237492092051270207395562247612021781507151734584388218701109338052977395729443196836049041377990231452273796687339311573506658793324209692653391205393903207905881981967023749446313982447079219717237572119243254848940175594028008507008217889145545435817818894093121539566189231422057341471115792911350338347828067669382183712566992517046787151283420002500308986145948832153129183710355421051282556842439926387616828217442380710367267157133342560295720649414198956859776550471543290695768331661786183366406903887094650835526559343500270856545207189756319010212249982357053936966818544353634202085594008246838501151626955655753664891246168604020287190579814295757459908734176494385111958120289071480648769675502860959459601568738010811749762639216030619608534828021718587605576143879246186682079633793317555183208824022033472185233425537815972384230336373195412597636946895031734217654082343349312662424617396472412237102111748675886058764914703360461843731250228005183109173462280646893161758098320008481133430723989654507928707311406975851343660325189533614793968632565996873277582310301192804624739436572001192025174484705750045172465902870948770884944394412162926255522156365807563256880262561007675169825701776134614316612226810993144520482383779047039409910467876820110397676317405753201097462545846086991087182512228259256676446500388264879193873261512192523438319486090973185561293796014989630055663281146559298608838461055776140590080535319329579636159258881609251377441775115225100709535682194068781155957464579507391391856004543039119849473664995501697036653623905564576803911411238630436251678527137358538870915533953920165864375079121065279940476377720937655045883055398507995675745658473759893958046743130812708674817559760181148315227955225186197797869919171740166498713060230918419428321138741497603002365177558581204695762991004272697278520070338791474184666498783389505855680554770933550181967650679826243618006017202311986065256105299722522755220901446649312168236192136857845295086985260611627640799633453486695871252982740798905188512547355950661568308121657462093823620654070130014015182839081608195400712131383871598507285572277232045766799461940589114097011193570908852219668341036094030510277988520913410201272323708885828034146026441915009951869870926503813673209456437442702450617981996628749723439005246251573943918105337920689238186039171166385011318141443345478123217706728660230110583226476140831146756842184212402551539978561924170810432232729302317654809133363215393802774434265662655812858599910104539721228182980835782922607884728473683100103889129232884602702632594911127779941409668524626944941070151654205233432500581835690023309702810308834954378546656215882176328996214429014975256067983358076472602131707534251872520921382648964665212488979690952623071815744576150053006124815228808086187160176677832207683869178191266517246974211204348830356195433451380982828557582858664849425297085754158126496736804662643403877382015128836221599152846374074149469797974951900897208383187126277298228327089497231963516591520118100300131331310348927004791030097385077574859754854710632717558888964602959993718029535756037407022045638426323920169916535240354943167286651117332416807283237626813430386966847698953526235283184964439109702674869122410898817127666088121279602411207469817455465046129971898539167922604656631171039849952099697986727129186649822470323038692418968206932046752852687507304671143936920321613661093283669461200514409919494805233025557943927646061714945821122426907530435939608624819867644852278386205723961163329685215674797205810002594263373295829283218520086019604528399384187557195516385150937265151216291330732282471731875783701186797163075311482985934517561971948748860822847681528731484587725591208965687335285164602370971370702162206548481760521708059131334715321930789699165205244827040752192426681091338225974297115198356810704024666344669501912720614076821121298272291734554426925218713656600399028286421011039402293078351772530865569877396175020139657335536992237177245825004963419872201421590330731153173184549413186129506172884657444287947670174934191355281037947513654602332854565509607289284675370807644408820630312425177047467524604995865965171691440864365928951454100242819027311854359208585959646910134172079869410094181787584939119527495424244882649771619591352527010126999699599068641344974485334390037592019554109372293098671375305130678360045376395071030725168072364738100252052905517335535886403740390426587152139824439652765098426491596621265329995590568098237442861325064150192035881065883904461021494139156078192056630339109907325190062345137989308286411906542476410482142485910991805822992720353712468527323375321228183571474768925749882660534987768784505082283277113852550860949577521307944454053493039272368330452595206996925817200135416577704184565724992952204152705454678570021744369521155346708404543245068887723242023973164934609526314021034147995072099157968587205121116972900497359338323202147554209954659382492770433779929257813347742005010240522292392586525568552513524121767466577970801494531009553060828170365263923831333041015384258581098193437032001499242913255804338724997910707481327740769449029794051953796535452904822108044200994468562917618680220454494430060755154745980907571312930362992592043312947250077730084137637732141349595932503870753547477323669961647711915408015076002822677774065993818598151071587484694019791949576751484131295960649775358198787918179613522456348700562350217530608396625605831513228319183325168278331050943722395784456570058160836236776601527579501833149450582602988351272780096154204000247480901735536785001196545414643698413797873403501774449385488671096102785106039742412316697547792202960899391079256511506313184545150823769580094343042592874985105650710145977257397271332423011915382574751513408344172244410098078049571274578348180470045156236005461314798507000213450353196308879962645004961654912095091309073047860029576408581961736015052823500212526848189214438067163284613198688332193830487017041007609967686077114885102568049257053373983365828360194636507232875412241498754383689660157715488348629781088523617317351873030862743891886471239570103912102566933848412457085572823477083928434912955384394008272976331977676222052593658421288360234880426573629571183021333379227295290720324168588139045792393467786277849118895361167574630982516868178957992173293561661943922939261287087529150353465344694603342218314745423329720728887218701850978119592709763993350353934417780235580667819991193008904206704051371933731414978883810222015859212398556947609199282107599432251911652287181625431876041357135823700247347410910110158347080396983544020015456705983223330107220911351937878772859349041718135409343830838427948344904074966160025329225030259172405242029106855474429011844111464423647365257552487217418995268736944009773894609233033858102344913712366544796722523845485066352313407365840052698844481335762028371976280610205749165161931920052876156324473345780662920346583247113816187257321821469505812990943908741231330005943703239146708545875339907142561175942940223875107583486904393461358675363717044685873808061695703736172841138158041771169194376124006609130611434816007336923628509586998384959601033940305922821564965764987994830463162074860352275457616035780992506315315338473423498412656993051102407950551133260498595699586086751573273012593227592108023451042504311974276982914151175591165972171510233629147010694770750271817821928636231878525174384501455648902095105758148696789394312541304233012478315470812281794937295495015914167650349710963998710900802306241782564288880416850233976961686727034729112262702620500018300612644130599178543400882271182134804952197331380906990654446696970581092621726843534499135628131977565232282623445674013171090747528005386205321716273724112023476444645682744221545863416146283401595194430175846016639699763192376782768791375502136487379578344822091111698476032636142197823337826565564750291402804649348552934371821531590787780072376719095772865198101477639105703542256900870359004165929637420092754643995878437230042940587631859659232556327380167571647601730762367023088711736097062927881379305514533021455302153298642073045504841397967235202557765891006140205766045758226723768812628319849499436528261116077167817440164953242548793530499519140225321778766255597344645031066991748604113032751121868373823520587561851144540024463139937930177421790239488152448474262855507796588740649311409848019963647262170903163267490546336587210619123408711898678564762942441371320880601652185597412895894066611350426526841443185870459844556225536150200715561405954757949443250642912912808835770141457329349950834830869009494164422110699065090364533815883415199534416978820652560233445081142020790829715193647441523588932362085070392338953370309492490570672595105834073449218362875732423904989813502864634557208218605347835363043426573927006835382546178558367814644580159479942661054804922886040325447060005377345204822143860944532207925141033256142424444106893343858070407029557122712927460905133370573069049887212676525644724865703376979965169626498723129711304846545543045758709091051404665887626521734586771749868506706755318863037668157856467045596739001340395260780135523472351898612205130422171403198342320759679021316129089223802745012340504705691871975338181905061327110044029408555109079060879678077104297148022886707212286263303762080073880856407091463576359532096081343374037446910964553510351019267619636047383852186755624834710579252199408679267579385959601577569806824433477771065816140335909625378306221621208895268749638716297506114807540675786810838142343366308277094574685996776076469703395253831487577503627983452866610846427556578551002765844017190795864349409862847933211683672386253861195047706100410758048020528386111758782654064569793902374748585972269901402557202394338325638204796378472890773996872523542884997379622956884324318456687805951631447918647967869668069221684856024250710250281132627909143183425017448186859040299300533053767394294610749062676168541167582843089057888002947509381704824309702853143086014123987155951354560442217970917508106841542672124628729389641468671840956610382911481697988111744277197289267535481390275483258150917891557906177320989576143218582362937893812309472404423859870507788850724225936676870313738287225200458873666814015588537969424107320536816113065941887141893620598373260938418465686778928571394828895404082407234722364658206456331197828437218268117292800080208211662715999562071569503081607446528696657759150943447020103221426347427172152244430557470588458072680253970094912254089206709903058277537793253973017457239402082286748934616635027172097542250475020963215284056608494417451386506074204401741100511735518978204279528505605223701389362907839296775952339679951384358586095005519616132254739213762529344237688126274431716811964117944021997570997687080069091434179238379987696074102118066482112717279647123405700792576124719326365585331389735119016128765371347359537564636742296771598759421748726501333232066760853004666425798764326913688175377368909685209172935959360166667172297027958795844484877427519787990355751184041831162381678598374709798853042280666360274891668840080028624740779721536923662335116541488628913272659532197947555927896784552571484652246047565328458516644615096034319811447027507429057307524656833911742061484801283957124042194369281849936582462415763147291308321167607142229058271522180586212463145098538593490180263480891601978435799053114295038072779470979390593875539792735586558599756456341733973647453094114352117916418351488018222403119488648039486292221400902248831931883182745952649617588558209924251708031907198084107910882038647131056478116786677397374860311319221293710189886206403278143106632208941294124058648610674474780486888053208118630018886666825042581024714886408776391414893805165695141363479769105393917478510305523965368217991093076458438121955583072816818823834725735794423856883107115386720911811025778167478783253383328606813718201526354534231572072578228064746730321652294180852798032769249216267836191096145901437228122288194101208443584572825701545318450845250560364722138685529192219272794148209015565896689084303683076897622025440881720068326956856526382862102495712347107686535464543856335345018169641490310162251345237449403236649317485458713455095978368161522073219276503046446507625390543037049744014074497149537499097632666593434882910012672525729282149879844688201345388623123687927270196869806123173030062075069397901075875880011328727459682433948307212291938861019530199633287666601123035878676201755687525667671428978694322343049253999436378050598456252920323968488061411336719777208558840176512122427186529971823374344469915192623149416064831750248417641945168517669639124728937283200725636524534741747044193070161479967727111920699069644665005472792466919424543716634128249099205709331369596719443343551078657336695867797090584891482503165343567467346305247179499959405681190868345377454165026338562360809242082480723982991224990014623245700605870265133888734991205328924031949529266019854198841572458938780798266982783257670887204981758299848675404567673594605321079580801788192045272280377279915004128391706503520801120032439372528617259488825869615255028502691569138228265400135885567963910610013568115317442126646567742851636139976609763243398298414627167918418984925865247162619116646431511344725503001647598809139314847283597754779110684116849648843697485024089263089499568986806134256343830560284298830616766433175515865843328879157545482072843241342157864959172339845719498690917434199810749373086201347661145881598157259543343434041425079943709328753623384544600311901788438103656741721441366191485242665693669986488459433615357876654370632848600627311932277062739933816555984759329734514120390681860770726706508928308271418999511775703343526515136167522656322501732406687323468270941255980550161166751613467673508883377922766535768036033699877743785718703017231383919260092380912388494006929881695204801751302573089683179787418688762424494364852708652079878011050833788256220813631986927438491943739632188698706845748164910540830652085425756527452335188822312757806046138069139524292753647836895954976689182494849561035298473595779994208913159740130196854348373473390083589367296249186981191174730549392156942971241578262413849802766466095635042826270871386692738369618401925606134815413548550948431490997506887685274205318855896596298920300025371788245636226852352521297133540029889823208759824232073296989449915865768609419522685748596662687322955315239705374735288776156208434051491481447921822770353617845202044060516410513154537511027513729133977325148577837305067363024841033697860574957441505993729986474982015967835053475107448589308148893459591023857575681398719414660812174224103709557910158518172204192368719635331628367058834721281097043542240730953136577905394321705633132438261947939117894009394706864762006124736655809067520539056086332770270884450148919062982913399856449709100525272214461824593047841501368494338194545839552866458972089486460480801593601225140320727646166577840948284609539351482735451048786191174194402372623943260453440619359955061008345215404278058843104247926451088960803161338227851043494361585483255094195377452155371411495663070676705218633376146150115252608264572844131287035327194797070004437628262870434244521349069713491321517007205608535508356797466111133625561559583533558349766188791193180200648400061209978692279489839025255879125488551931562387628319939143426869566887375690145276003016733167113967809327561280196973535459696898031390437936467366912583167634833316114934883271446830845385158971580770241189268045046766089828730012780316137951475928958929921380575658295115172342594781973788684188337960946382905805715736721657056186861146632442874633018898728042757950803183894189505978376224314017503415100154959170065231320647456334732362600105913152345932909643943384481162246354555870473090358601173396529197150787650080899227634415489678978649617502679454154981025773624465851777871078293383571934274475688665844476989403802932089088059396005202678339454327790499151186602507597812618800916349517895323425123874228921833928663631181587539062272904219329446208845478118437821310175294845462545152596477432573134521866031058926327251475046762328070243385625543770050204480678364179977299023634367056756975826844793375139464072154496354022961907787158052072170415110319943342935660147830757143068042522250847646893478882090963078231749056938089091203074867295706676417061127912808626719016646023030549785918448657851468386724734437267262534644570153469949603614665508056225940457355730934332449066937589940910017515335165522499081876716693618284361194258256032396901737365468190656494335375870436166900084857313005070858502826619791906122782467848923744796924122783922576267197474403599134310517114535338855992297169436113384381868851238537420172630482225175344397485338793219162410575985072101027465309796614918470284135206446791689305587094720096757934870009225534987383102874154446781482101934084359018361944345617496681595795504364946443733732851799556867842020396815450879447316862192607775641331578440438760309351328127784360007259421244249943893738040872802101207991845304966785537983651228146743940721280140156196022814606165459308274177569424654668106496590983365015672300115896350465969297320128072877248657591023368581673531621121839354933570706311134095337726233316082264624924098538316997798908987344164442643556289820714738794975867973708956880055328373056167092138407519447824832134598648415520747452127756487060597104431462817709477101907817856384692343220532202992427693660266414092237629230904564381475079423056445634279762188874701717700830043037765787087116785841342811359312797690816471347289294878099156959181149782524549291464797543996647274744868093909521102774464513965118353224282603438907762186555715805731576260183571508838018871611008594033576635271973148126256774167268963193896221929623563475882909941435080569241932829503298765465487732058435908305946585980721696748764981714616785547664545088970279980929823848614906540222851396931845173478052228436357996335497354738530408700343254894634007395357809650152152330428701919609759847241496094874377606684333362456353696465891328439566074993501998996468929922300332580578270642115054319459298152270625183020215930520312105841309146626365691607433935215718249539602954244591899658049748912207733050283153990533541987719627431045774082697541497511140867745595281036985610814398211220659705113419440456032510074406701757246168862294297539493452978365178814631967835254494718932384529968969366459795050907693079930113821159849149472252339674346125070678482068617332956871186583674551601564793133465710373314664064577778363114032911486337700119152329390093292748755674395764660937625574558634208900581581016930023761286530701004391281448429850070440920750659067558787299233918215559387447850514396289107171688176211274213727577161878582638945533929894060044875802680494367272007448689212493989155778496595756756543692703470708374382420101990903957428560995718218348258430751213125934881804968066804878926843936538244554251866755654837675509095560971148218434988345150736643445565277378908177458322967530988480422889859461082543321954308985155628779323851293788781642593451214731661097732645408452432478007362949225354290323234239939530087962725290257477740746126547105331811918908944847179294398867405932377851946065794449009908473349708189937398315611453273318948742777060274968331788474571751414328536392651409847656780863256667286182421503146804758064203981420612661407662478104335618583168659146923472787145909422495840879462695178113190026612579001597264835426886036100838448598946245911786317164817379192314366352247787139602678294486578243180015197632814951706622435976403624081107408904392251048100919553333445223173683353002070716047072014576172664856854469695838506481811022910851320822985651835942654435834952901843613742304604161707338701001771823374642116828604527695650536409703842277830722393529880854328038736562928960260809178493123162005138326202330814681829605933765704210907288758494827203459899857221295666442959494322004077222367293447439296159002696231576621709749843972345690214929101484664739571603560672820429549914897329859310313630516367973636865435583195066096537660499841458760339745656016186878830300887748994064695724580958090849632923350231561254561763288525419859551940815495001460392815630348308110969084521392435778608848207078316321094972073973737993693026311694502796756996694976152811795437695989446901048123977818801873295659881137264586332665769296470929488974257305548658499967893017132636993209199330401503117872961801553620575210992236785867671408522866578033071022069420084316086437400206163481341968771054287136012245652780183680600711594888042274205397001764759842626579108432454204501162846846336758873172890837749076824554755627578108614091907614432792035478547474913589235901189524002696752381355575962709773748799789449566355904794521199157377660536972662569199498046379189352631201416222230462904050973517487430073369519266524144976946939073246466340307481994929397297959535814613899372210384184012696495341133259624619995103136532424586973216469955158304708586060527170204477467079837130667873909400578081131291707402780241341262685304865291241390484506579853566366303112217780888973248687877402929667938836330599828601102089156462050417550935930201565024797613514253716474954230347852203513331956025950507596810171175575638654694003815726897896922921124066363346668879762498140905363012232716643288061426858884074163956789273333054977567961060161808673120509173046633058956483132836633082584961168869098902123566792015410714828703771793056482805131211607421282717064811053088777811515048269942549448902541364444223720725399082489927055285013097728936411018617335532369005317633385892773467282702459470012507339680304036691632646885847840986725795729228855023756144712715527725067138670465840760156350404420247061705714428709532998643315178977311954587941857093376643028869667736433972469530982907383913590149553977814558363599260590931576235057424010988043232804398672069413536261153500407191351917863822222403243818631257127561473905374807792814041392794363846007658032673397552072505071398375765105519004729282735130434265843057537414414263066140301456877826413890631629196300753431441753125075463212737719592575482341377417200423760001164092538114750124146956492215839094679470943803761644201216355803400749641411301347537470510437894999277341335599501608219167317238819389098036058890941990505705478189707167598339024047937400539000558440915065956507269719863812371065199590911202028783984391270463999122861360124405380292140369037652467449017295769287760168642618070131628870738634738360334291502437168074564714276398839103250271929511945934907929397975899966276124935113128908945389617993445905341932865804853408174088335925091176840097117408908574383212140949386397007248788297837356589713644631058367301006605532391050867227851331386154311808126777888611441166725537506885515536486596953983408509993754829690448408639158611148899856871191874482691232143769850486120200350156545240289707782635266574410429822188590084607656745705386058243843828806224869326507810128492171176620426145326720943995915578427961885242651233286133982039194379270995594092817494085590271392415616429496961432987134886187907366328090695997432156592677798860680830449573407151631449155301084898278925625958367955288196482126384278415662813806828012711018075101300530012172326184468829412953101429925506324486933997821000020803768843628532935359390000822000619164830195478390582435662780231015489820377997697057419073990098839509925094402643291978886142304562245472962244853884445312619658298582243366545817242959720333716983153485291010196233180872513468212632917895679634244600947640867572351557694186363099646537730417872358851651066535017983394680714350798619149674608448282376949026631554364462921794679095685621951679526673964630403846352254362642600558995543625419066075780166526964407036239157699928717837506795344216728990774392885279596633515712995417029013509986677850299118397853553739269081186159324590862606672896822324342679474727621217836153619766511202508126451667383886496584831530771216086815147100023882891185158141541463245115264855730180731424509107372552608804230244242442090032845284890473419320692881635641708233163351808686380176294366128098740370589708045423072589423407842444316128214051308693109732361102282120972883698078245432121209313385648890717291378299796846705175307244087967467606706402743889954074710525786677324011052964938819229425957549610672491395029824857452338867133642572870556059815977854457274913533945065349676723275585384823842178506567826704104048913787115765856580421272545362567238264321798212540887097688195534882895701242747506524262281918622222514790984214251353554761916925989298414757224046480128347063103465985450902717324993746389248728366215849357703944063538133528103155205161754100353368578545619479286655220723473095603617680191424682837600639168255968919433302347793340950215159263068350320795197672277440430604198248785475846497516709659065811925754881623732009063192856801604027194461288843213279898468369743716656643409968412975962458177919458352994483080387392025931372893920092043482076301990856644846411403577339937590648550893541280988448787485593123557394604557373255977532054199554561202446977472502656699214037457057318737957896695847433436553302266698967922352128311935945241408096461477987625613773722189266179212895961381721822221227327458830760319186603980054576041408072947714038874407389984485924366134876591344512456718231440104394944730067925613149835517429290005546561650945698115108738725011957456156457702685545368604590003658096959500686446440983457269780661282996015191076277001774942774036106986106523568252131871095217160985654425396746371101418781516767414921165502512017500852558848799753474913745291731872336107975945784690786078404657949330868814799614308791371149274504037807653035197441754515413335390468113569859886655373076536910648237814205445674413884942057391236802864256282150597563198335481916239009642959335880482184475454964551673085524221821595250894827466603527757381726938941803929533213750578805009856159263324968557193923743972791393455974636347347425323055551962584153338109684863187262793450203162064580135853853040615594803046301737058116219003455075829567229403002759345545193682292520445692284598619076791288256863361622338026469123674015681773567893235519720975007143295412920713956769965012311030155866185424562315315995303117773811546983035701138494896926690123268470622250853557250273684477708132303260657753853325382635185946862143944502642639131984367453169725249015292344484615339392195907675416836122323080495885882091041885590400900851495471034827790634468359202818599273797650328383024309922915689541109522347180783339834679230568017096263641369268719601856078192782690120255984076695931333906724297233940222165089859057170216562334868024591735501990565503961675629545576883461981506137223181080139506944667935790275505042055951817184342314506898844859571857781406152700172085524059080249627246745513346731150273046833707122782592754116963238700947596810698729365405678778942763191959048348332804400528581494886004905928381795955064384333798616101842088776339555947194292354584725750736743528276088163526687514562789648441403835989792101702592083007366521415999235987603195293254038001201274374500579168878046055477912390189840210140581958586443306568213072324063119463630673854152087850662847846635538231067325451184061882959928675844675806637611816082534748389389230635795361114113228160462398948512266123633202822055472954002436142863058542933010909015593541543047262839789876387667540820984272760200727398308533300095641812850874549768848777628268932960497361025997748866131305808476331492094506015912581010160529116996147189382701039174746513988005622007766443111482789412941516769178657858153288667270337419217192820811578751315801205048646772943367282300666402975323475903548780772275882652494081951545991916766172090419176490813070006997164996149133140594763463615092868225138619574911139808283069764318485205100172866119890036223635479777170032052858654142127825191486336418749784820908694107768287059100902565397538009052570824203400644808091797822079508657848721745474282907459101084168274669025536326073660745765279575158322884369031873665647360232700539003633185394669786346867985299203912875509961515808770763240716664015481763472591992321848675331590583772929515057387777558954264456798109065682853243059507302660464463525138353204075885360983353168173356157916644087607832103996401095914938457402882081898849190727756346759568427074901618478586810468407797886187423448535648008870103351144258600423054586306976237265497596839049315762683638925327543239780398259675148369893100729139524116912604056076304398374345909535706830982136646860562647185627909674329908015582306966213189886868200948376816381709172196308528929879352215373080242526979380049706250093225313602570292129843275515410479114406460360287522944923371638765038923847969232608785686546797516123175120382519142447225155710073372038042083599515686614058276689948153372102520234457456924961229908740513246355769418110189785785418535240277568561262788560266727328681822358525677905363708732520623162511849851463640313136091509211436907003185699662319892985982849768890289709946979120959565552741122891528602519268970415139383676319685571322391415214933455237004168856250992344595216440569032181900672410650929394597086457091374968577240628019418836934117378952526097097482701750638113637671043395843209961330048974838316761740288520543421786276504982973047248838541767504101369811081965546704589588379714294180629307161614412508404554070557381448257137436647716798066174108235680962478124726619538718762413019240927444038482811596882799576200949086569837789965169598541065244513280570152189020493264989227661389424242697304133665018786339188428436283803005313592994369625219355534309385401085756436895950794740216349524214302215923299558443629010632063529858657203850099165491260464440145487000989271494004408697443074753084674791045322181296541878777149298395877794143849567423092370376640208637258235393999794946516725638005026433703578398003281042595111555812940095183524346016620016138941085647384017050071901729950622777092168151631154173617387934491569190239555716437167094369324675485252759939882529449337371811228220717270783076337479022442989330067451226739152612880274329318776087836982099351457692878801720243146993541557623714123970423287961452616565577974709318920154206409129701976433833946132919552678069134837348680457245552499211400689930659096754458447848754716480585128503738242758528526766164252940478731117906424679559761820374026670741116722882827683079252672898844208237219702136177374256134093309876341913657622772225485079397729810138390666974805240833679706554840640445350397101451061871515914277466546521436729615695376225710550355366901763773423468388480404704894152422996234372829040360718299896006909620170970499147739014912989163903853323665307685928802716748466550548438525421606318310194710183922689811628214204353175058916232863556845378334890671062923336144428271730257049128702004890799613420975315107350514972644312206272610472449076330086205005224036388910916517494075644379327754113892554932872557437735679304840564919752144438842037612724850227190931923686325879856970403554690370756312646017105729461506463218014348269623033619742882527261976465443847901261763197972814353691548764502636349189948488762424740434716573479929620331125560142110156496563253685016038696989279366516538446295085649726123118210869485759468504973665818755232472116994488030032384591301447656259607781024885567245902867571821945191154963570198911448965246145374570120735931594012353566305487814581416045885733974529457848483777541878991832211104128892954828052333793322189060088751277413384044153849113932502235699500253960474193659743153456107171154423728019239255782916901123065722351624376707927713932772893696203898928150552477071780022176563328672864997454165144600278975625246707860760832116549744245831108016524956902238565430470059724314255252985133100355812811178006981764336071049359543984489306545879554685029407391831191052917189912817026734501126981512381006297094071753150404105600323613412555307148186668592158935878190067854113259816638955444814779081680799392358039306676894826550577028776978782458704091519269078626743154869341607936264614843607069806805569998670484787000692009025218840925922306837970988636614548742398986948492575966359047752492365224073012445529871483998252866804271913034776950610887169787732998927436390831535696489883768947072183252336194922021210253809473948049044342849452666676824124588197879061509173326302662142722848356845463716234569771351848801766041041466984823357598006391302296577361848594856100531690954990153092004251107731762885148396072978630382197715536552371987081161272385441931491761888127544419534561314671274342238235831650439601634790242847257389391149880968498415586670367968962472642853743745685482151396455257966240863308935210423628326690747126347543397848381757008185997305625822400793077289434063413857290138226118079270848920293311028268267086287617723687335810735073492283985735714532355338415177117508990775238496526458561770812115311803744098658766130477681824171508821556543461028468381215662482886433572362727486127284701527042892042068279403851295019794588305113841842201198500404017988055913208000490148129638701612993115860409004459857705480250941708727836058433680117025766364873568899016470942478329102635902348776269417629064612759452230563533243399655280687850454031204462227557247114155380125333730977822339172110885957712144339157804203126213504514307758727837161033654542657172407028271881632681288351412679343196880700257817483281544699399591582087051283677285147761396147607731004208647816076377454033859913114967168273100312488132863443545121056658789442344121253568884797740878374332965775053277920675252491511854244323861011509844066046634374210893662107272173792997230305904590112136802672519635230268163397151877086098612096135575408317393875481163110484083689486827464518435871174475261349597031903865578293074617508636689583086611932269218433548301492162855657974270541193600517479172732510412675798466924050976784071338103988832586719487722641322960796301715126957556827322769879617213871768868916666101534449915791101199301240488012865730570884110849615744619154124804373637628665150292019847140618874779593762083237368698586834606366661303363559251763300648708223800722847517412935907476524972292775027953770564059061514130750266777270144818312236761719326872807252534030954449040087621947906309036665760744239650149185229501778979251082986987685968377655052651849912820186247886536977226907225508659527750521992357690437188811365977500661874592643442693368253681283715923910105262801660430287372908017872788299708439383023498812216552853336657242178198480739058905383742081406692595976066261134273971159504871993690964112565109752961729531024131432501239829634343253929656409143484053430056063016858085568906004171335734779451758760314683474475843386863270681794227639229528833851690863420190119995642728104332778461348863224330879472587507058091687586635327257346116160682903952332194445177106478409975244122937625189940193997384871576103410119773913555333897128445606943355297406799814791554965414435674483950454052359723776645987469083086089695012276183685065709131312612987901729372871378011936569922704703445445160310471239886312133779934972613761544944664647615265576903502347728245898363235166796160201014543243263250903960177260487461830082983003060245916150402486407800273476819770501221489785621373202978253244141234133244414095286237457705529763613790782861361006004706056891614813287240182293986150569203523190075808168584902823362333390767438707096913903162193847301959376049424384761731351051709313573573164311322820632785869681861412289484053244685900479158604418845562666594088000454191667282916974590358490618891748462363092972248007124886443480260670034713165351222880697216439527256296579314730835334430564980832437293733370127598761590023649933148023890665059030744412551760634381203368327503158114013524434791010198215602813988150309762604159536519926787821168384744988786846871716469035285177549681727079773269220366594843451419677964990213182394502845979810872591575835759571230765927255008166167200166524520390681290271735346242318966552315267392440112485282680478415229977520516528299351744585143849991623910984662246767737334872731945537420801554125480963278653799155813113513732692475537809810493557039012153934746859522540177963504578608945564097355018235081597535854864967192062644551432980964906821625480332020976994416067437574684032826712419957995335057788934550884088575525594468404969950150254567826671963208243768279867406792057125883421860462736225525972883044391470278029149446790687258494038786912772360242702954765207246096790673991244978445278420848155363107163299345475949892870143800831945009763588983446793820658428192193080036348511494740014692400791798313524610126045510915410101075427547231481916352223787677621836741254540663065273346240923552673562715985306884619144924217366509209818642648246272355010536413788246458934792921300882294353022879929281864352020700078932004873655041353469346764743672511393433659774120342569587621498501488032104256924263221771721904118776347580018486861816025461057551538508224363225210727988813751360931261957124850778318761770613066494373764070738128479281358509453763804052853476057476314246266298344226707956222511184901565331393495991163401980421995506260772382781599278735076727854102552677271855831947149888413068524757144294942709072293966936796653913121420070135772286180794031741748614958096117394015941105907667865063759408967893914520670118665645367944947171624329685053958200732325833928716366759084130929942266257296947756778459460164533717397714451178549156381459861427730201953176554955815867867672542267228366545909475981384962683768060680298144869307761061672844998479841184262054774652994455958655505477413801946759893653014910952622346957972940333941646911890951296139591465071410645819017395753171874569025305459693478162288059388365161298716229715315402069577889657596742284183463876873224136982420217545979103547246660311533834570584557921394996763675600770804480792792813263747308646787542921072610120160183314501011397723378159625148698592808721404444769907313694718603116472911551148987469759938396927039759564096399594616339576555235879493333083740283064748646853718564679047146351740825021373410707647037495295121025416618361485291246390516039291415019124855671101161723644787436996733960071819787351077707823721664816011398939924863329646459840605819674580448291005879171339715207177367333845852930106581871773682081758027125060391457079287735091746269879171290455208269012163666406669185694618251489186044255889139228483358603932023918204989539273275516895593312307568972817077979696770116061605526730036244150070844621825794218497565656248779463389469166356899386496945921571735111151020952828666303709601877522378800004494724866918737897459279002456721901235518686034750153830981045470137728994408684166920535364811259955007877202115944943835067888790033635819508855725176331458726229023150977330423451827776388734978943332142071087201818242882590528506890273357915663935469290387412379111238491642564670642045968264561854415216802311592704260014424001158053867603375254110711287659830185722833577028627172564486474304786972961524172160092840486514108676184166603266265521086796207583095806457924749445081913989815714728725835705295094967656455240194130000224634092797878361764477120931021336107514642607599345047794939905894022194867374169607860672691961031674892351051444243522702114046801078635127624452795417192372159106860726547827033691460911550693842127550942798560927194271802625235855755572796574037390422788651946979114372271203504574431029140818275153266466568323517967270054070349589715920731136508696251377438982326388339781946123160690324229960493481598726387742007717233492545244229809265509264538646249718751134521839783545792982101801007564010276243026120931791340504197580273134160716231651335310511430111741282470470265954787708203963270952369594976279117638730623734263144214485728270413626605111536093929317626660116337446910710781067655634045225336587138902777316462159355581477431629969083370655259984626181547399232965673064480246696701826458232019846513476125308801340668803970304293023431416495084597039481268713054154847324030225610476091793647231970409204362216294271980888322017099247864448522376233740158565858917145913798348806985998887698563426781515903228114177791136610600873597696836731016095950530868438640877568951123778851904117030609393467356926982628783418390949672018864250459711853411897651589418585479551390579544080394559159328176759098328412722067534226034061404921296081599670099161346515581247126237111907401211420411778415078891094120387403183067435163752023341998294736956369730265931156110924826348597136979771718798221693477079724713270718681358216107138275764706365173655196750783790155718526153443819304907271210079810153762936082104881237900913306540845971439738550731699849843243064570108362746864188708509590181950490298767467635442387581660281371335730227875957617802624520569029907987220290667999266962246229632320155185776551491766010287971201532880190660563925948080489516077883207030551932420261507940143451183654905151300748537805699080185582670068155767399699260648681952325966381192873034492267887219510905272347148073155075353065748432101384085881522964599606281830256045594675276346333408242458095711782239885469970575896935583550108397704160669415561814049117204013379796368753604754086003015178834332945059900967692688885029595156451792127032015752301627182981141579825875933312971515672689862126042525655484317102124814934304586372566817431271682257608621189759696344836148384006788158084207169352866683268310143667053578438493013345953756153239942171119802335288280827555022317785600974212451566664930154282083575432631560104270096446788630564229279825772715477026661810942779175704537575400228957169411992240112594322694813099151381356861689037555004222465236868983150807360786773038560405477132680137833690280297031224226795058711009768572699157884895408948079361247838363344751573288317820020141100006623038134704970957688344611858203449709431415419741678681497849049700610981526047364910730258065882246953520412652593843702109807223197116576595434020069382833800691920434590196994265846712801067647404768858581123624465116641849463134397828914938292829552039487693743733406558348781083073380450965353456965889973425435230853175737906783239618219290311682405319060485918130750874907873310331070710125950068844987627736271554138162770552991875396080583296358471634301028858335794649471791262451740727340428612712813834250241888328156651255824068267277145258114860475487665212437778978462617868208219219212634915945854311436226031414128852992660604345366049954476810027344483947178080442174437814610593440047706963303154584441490825900203540595882443846896666491075148389071056689781819415600612789649473377131331530743152286650061120122337176579514402586486831055391609366921117185191687496502036836613785256965575500770749160546325319331599506300602548860331316400475804602150874093187439810315178531311952325192071404381019437827653140354920756418680415155816224781948644997944097295551904670844260126207459552752822541882273145053852052296217491738054427946953812331355946942302575524039076992977918625067053387262379486008672263123178570103492351172106574206702283969348322787321177389206098566207074771546551736645971930479630686760567852900966152283482370648710966104003081772104105918589347081968321416027708213762250425194483217347008645054882498500138686456718812978318010267592474827430392570442843415509139845126261396743077239813905608864747578837382937943780782578574729684054457295825603987563781749367157815097599178155588869734857467407159141707336072340914494791003636134521571617205547905096486139913988726411542481570400890507041855473172415232426639098977949895363585452408514132046440579869352737722856724283078572834113766435774944697673665182148087494710356030274788311079036577295092543895494687250208998734762733606801673299151046638645053454177763139402536114013570816511136309314214668699703384890000485462985258203799647259423536450740649520843975844907420804008190200293275308530431405377241544498640586667587600222756493749988416680680752236032397137724075039770089439757968909733598999100017526499421135997691959216840458872690222343078383112523618125628962750871618939103939184634018193311496800571298651371707133845719589212732877177719223928241524586525694621242745131251537064362990586850393339137609172646900166691154284954948252847762111991671826421006926182481686127332987561079910214681746858610560224176171305979097660571781440806087143505108906987348853599915009084557496224741246796479397825749687262463221934704975554127660024122651840199254117864698238007829093801591250923596734585354565460197393872957847045396742957081309536563045121576889839785899214440528325875409754535559076557399258599591781644329459595422431361656027797113543975271471880336191824317154674793060297006639702653184887561737839162250595571112124047588857019150796429422246868778070947000094571177433672736642574352851462121832000307264102966160574446517070496102707974767799908395329815843740727067836086129074883783175923633265146557684387194980425676839660666151452760766467078750325602004290089424063328472862971541967742144580012355638874069754799017641549239801676520557498561306512069314260881080452466673593587318263468170212858698768468421008120523704788194018188333889856777798006532453755915832982614900149065059553434506975482700091704276328162887228207454317181609613445262073093754671121662191179341041403823401400398741689081065335412148776814803373913227971786400244352283364434316927343685318101238429426553119156070583554868379028758141455323374704117640700883806274271883191298824255980775351632269432537674803680819856147336028341498458457326353786554840451387727900650822690941230239079753838236892390700684552982786921020047686966150302302709228345587063130259005752481691500483337794072152288061180950402626143302288019509358773469420486941572544008242268878260399697885717264422492922559950944057773041616630628267385568641435661523149567025400949633853026145356003538821319263536418828160548184691419973469393239894217735728309853961052270938096669687011680232703880607348547866942734147740087863581683376755810081728586455679327941322057954858439483258057475375076215167234540273032218827249483057383154185448745550485271521820397356142705093726065862856023985538396093392666750188111796911962796421738665275241874990688771502003418492407392741897066267545381585203158506313527822439514620763151386931325121454139793897834596966062656146362580150431420384351554938814904216119105158533783195198139375733129571213714033810497905225334564068931569060269963106651394783685415301395325191816182752030615898961691738142045527282853828377647969285222893084969884796488920783894697368538276627305964706878680635042874305818187615689285495384933161124961919234559932852616838817000377958217836608838760243277998794394063958396047704938814408273398751192199230361111969189634734652308681231409523239566065705031682808723374151851522640555189941298475483902890559868867620607720803036923078435677213467197848083969222042620920719213933894887652617836468864399912440088078255087420857883460570324294034023822428176660637747963790701463026368545683386288208435847979610509728117665058077084696913003132462028879379127595441450228902148015590188093819188377455259506564295987444257080869511834621249217532612708367553785967630555470229133005578495083178935027163353152889064371629519948821521081534111793161668713083958260764828301456498746216029239305934284332147065843559041737264666661837551691029651980575782430143296039111388036360647545422201233229106824948376333979967504590176113829143004542093551179474855306982925237733981662137286812588957670303100620604895508697763017572000330184312542080250774185100655335180319837866965942835262069520125757441479974466159984645442435367186793487044325442953855136208579667480323494916784628875992894560303586555950055605798804317323388278622961902262102973890071283937675397926530545501015981883173334735411447181497987907265990605867507773355768270035418701890264681919200584775077262266337940374544991314221218482896387821473794191122935818144685143867041288115331977273739587922531542223275977718305183519785973515349222437384924871374993346065795415165940555323016149668707950781177681379639260873920027318063026595885653979467328742977242559736769827056246224592143586372417211047833100373823867299634891383792172619458657556546829212475177883318293979418698355132962665960664054280470460987328023471336167172524572206209063982357714658355296529254909170902768742537869967390065069505291817477986701169869926118752086529959373396144175756900732933322658559895620738128339585716125816779728695802688850264968588862817734788606131038521696499868513693224994395814219940648473997974489123855959529711839926105282106814697194893842907016373522269445417129539314123147225599496036398747741068948161123194823004934510700590990192704920043454016338356994932308445274154913128109443787659502984269334093850811504978437921159467289000483154995889540260159812039059499083163627535880259575760268905857703981572076077963540906461284835287901155512782659494095183582571836650829406901654970108957102409815634591132411396741515905295879244853007893686413522826309659369923868039032318222844550934651483415658948345260143560831140286478745687531276042661004123288635981319579734014657231713789570318865736539167136433050282293982707745113302465711200390724960643183067802136443291236060710928889491132240914226300870809540573531037580941690785160668609655402821774933852129903672328015010152793540229105832375146168934503354410275628000033947638963433729180473795757129155246481490277895455821311666187145148702728259837647244981606931714274292631279643291452638659089221670943369121392827076283892716970001461231877073860341845045703477175282087314440043785912157199733106553832811257798119648769268892728933657552029386114464423800677519641525396816076637908450442046464813543648695375391644548302420266138559411740095255462368159288676443107004735822147782576460041977686218144650200518619479917621995564548674053793214399351910316115356393970358786597572633781699998331807111484478767416138822999517130175580438302749838949889544827475673545544009647599607387930370959237635361112637588791866839242568771115900361580369834736453524427542399986351079604266114256944511635340672393237906755799817642288236233265175290579313141174223166771887946606154211174218671408912725056069130259515993066284097386095437400308912708374282913264667188849864722221525043971987376863530101808035422497512523452650501031761070762456771124595153376928431958445125575127824076156599487068573067148209231241564797780178651510802454872359821142592040731745909434646318807533687543316868630649283087318493759142427543409881496445372670967252461875307423261149473803059944043653377332440868858688097284140534612950978245137754762516108846081427760378001885376340870361895397122227505378466768264857199030149126804827621807125747571058062949961332041095654008298570063378509765416318169245365216233959111652141915224020595622385180005239238737975179046213450802218477482313768711154653019559972763848004602677074220688226428714059381091295619222334057400263858040920991433342026681094819857253525126828511474007610930513845659136889553339196660961426017172615348060546311526131253185675435479890666001112627698016854646554667351257015231935526594269514354354817806795228761002177144047356227762543580020428029736105936269745546279208302207242822621222652580765614438030921426134655956356492274670435319916092110228674331485201156887118177920611689762341502528855818555867365497862818154629227507904467819464489713812258001911393820340907063101764072114654026585754838850057331926231228643299712183128675533669269914133055874641285000858626368852835657105195864557336095333756520604198018837158155195859250847918686042348762675564794090052436549570346888232394654473070591876143978862368651841812639666720523257410513604638990983615512885442707331242315354056413941695840540607489287759974907284502918748126093696227716017805990437901590380730934205811657780235444336290014004248803876428957554218898751228239391019278764869488023390499607949437676595013337254449257959869934710022096463810716755996132444085831290956040479852241248380392004440454111867921076593176149668337847814392394179031675563349111212246840492798826787670217228193567621348597617217052769904022628465557141872488155940531098984357902678023322890337086973569620934522967445582606889793050563786386217832550830118053077510990246836627018395852658466059557476858336947561821459040909456942064284541099389899931993768384735905710705305555219511993803895548751789060203944519478765026773457677170061197738097181460008692213500676739022007229467910106241563479094118718943539093545957275132839647359125225032098326675628294429355635793542776807631319240453947228759403121521142429579411634877422259598240124869678467047854503879876213105082526621149460085862998151080649452378554708109503537082931100758353094504353069749800128524945329199307740782181591266607989172636168056097734409556256191341526470547214491072393603636615064664371814364161556626947130667438691968652652053645727438115925760070221111182282052194884535001363561919483869146684555148284360369822544496061282128246720206321986208176427463470483369913642876039027227609438298276798407402196215967510358206137377847992975060320101526793910196843692442018265861988193049592100313263733186555325066223354853596958205259584642966322766426850684607560206935246075639061626872363660738565176183588747621872954382404986094269107978425628946647523235254822457028556989630754371203358687375320269093607186743288435037992243838967264623453679799743206230490053014450555576164985081254180501031997895204940937143985196854341212154685379869228975255333323155226284885064471884002666603120097736013560791834656145435107937420136566174060387257111323088584090538888856649457747395153339233647940304432748138241902487462026691343243523899544934157262161956859197986528486118722459145560596048768310064659951750181002288650705839609750836438973021433494696100376630458873034333168137842717447354534015853646938426815647387806646058311422977474951249619628973464704431782947076857118445789956801369063690000568995145783383027464433609572938458844033490022443607532966350411897489673556513366074985160494904412187028723232743403385619769907653145254069160298352114583891043441240924969958473203063315507960451272846923785058457085106655379371607665188625051419862683226783159071341193644845428001908010388084722604326695547583014198135524059517259387011328271236474321865289951027541083537037663319935726087170703217111974999732377704299630999740542200189000946728565540674713678040117963084839936517036827800257584126693678593997815379208330260064213551497417810950865577436656985934352396401025831739015032371417311965071879515238509241256971643175647254206608982817414746532907957596995851328156234918278199708487847901113811012959520017079004408273698978313277605913182451278996891156805951148334309100267756370860478417597495076812129709151506431728515003062041418110459350426583173117839886763546725296936748490512609165625026420587993546561985323295213220036396225736871538638990478154583527649818067803575653182331926592993949128306701676659678883447458714823347879867830980375846636661076210764001716151453858744253402595391375692995487529127754499078985399358235200973591678653187070155187233620785666653916663345358124908218707000608139927160269606388873098109355420906962006331551314136288425924141222815096556849598617047420930715250557447655028085308009516860116527135501140111424877816756076591551069030153543005275460384817660167298839738864472269939488475808087196961501645803142798704031137063766162780916362241107104766940810927544055691134350505041103500249115598161015584028958988696494079848742096015108034341570644259441658994240435143625185395463531170296481368260887505534830147242343204672308469854175046174048843262795761454812866074355642559273011880697268816497384299804182323277224087569907037168794468339724773592203527615420016845240707322470062397826935810468095875614619103759541354560649139891866096603468391246618547982306036286772343110602748673954303108100998192957407748179760264606188555492842559957329896544838971626497626509574418651204631741078266181376460089149740717292637976211822031411978776411863893182898513900823726147622213382879465566637620470152036770073924885277226912448349083624009062071874314323025250134419894064623736903603260560052635109202325135853010898845324444716832841607517926586617017511917826065466929473898942059052933143037987065030307838072309045836874913034338881132587274933414044089998678601064882649668671437753150986634205661710038310581355750405127380015808498782103876764749850474657254142627553694746274078347324999540442920852792210960522109270763339854379842038374466547091723864270335598965006982318559399007217104667179839957047546155503725229816734716376298303093768072556401439656651802302644818039661970465108702285533231624031778733495305481725490555084981240707407037185104390276063452804896531739439212127015837688548923719952094656753887825111974512437171307779886238233749921949132836256417531934890113909817710664236879041699487644945861811696697377824648456317895547546829826124355515679656510450558125736000826064128728788870393610675172906218030798847618974597176791791481389649574500230459992522010167037886319414451110240235167618791085108229010858718974506804375341471535985566280829551822827730311701187724079562838252309972542906887469344413117249633230978048301442747943236687015852594701384259635083670307962602423656847014359537302884251454684036606655515577168381709366579345028506018485168237010030234897153380488551548931087072615126093106942175567430459143772770270963191206956046601003399235949946273881368134298250582683862160915431787827968251092030124472631441740018064582064327023717356843727132538074790842847158254768590373815091980004816850130122967515814074563451872623392237518181439389135374773731643444978772123276199982776240866115111173639205026134568273592167628206941137022738059781040923999605706526723929210804805674358987797335571761911310874979970625619522690387293142400717106486683572438257384099356880539247330610992126888291838641641537423038562034534988160877038936341917739259853571140046723948366229128851313716823402338516370531695284470507229653520958530275766403862409842482498479565198953013164540950162605239826439700638936191077148794453258942056786691920169698619288995185295553070754896552832085228206031308756371860656439653797400922936458587091078083490054107615886359837242799089183052582291316644045056224394935031239310485347989658864022146101884484185407171826689186310772096974921686412384600544314132144099864345308315046160903648987626145030923904922030023367287832588480615891325553975802635627346440732521613524344046257066458374476769467737623724354200307787289972814462658790120360713162032242894437318509858935706199757659361634362018656951217221962502364606711349020118516823415042330692917022285436479574392276364287974467226067715395871125853853286983178633864514377159755808198455207712754682277315464060514026474303360008056901045636639247337013081924987773003442784044296397372377392199160342324108934427009813664446214892014607799277386304318316722006915108250334132632837157384141066273262766725553801291959647052531330112978179755371551687328865654719152083411036542609030376349359981521251489483347074102637013626571157571394864400228946344920411752565828304047503530116059883016973555257829396882460469559227598362806755369331763605400538906802065444645064886687737749091157104762982958787459221441864380918163581935197149262583619810861800639316578737734254603421618311924425343270325643348324061129958132759030850915546971711077354939564513570218921451671572262812002857581174152964544526673584091985704265989990308142746501716903320581898826936880430140632806548087282594851380706735573556837177310276683807798269564059044371315902303784642179839462336992911001736044869344931642784792680500224552429707535375987964931984621571623561589839408266099694396912205441652338706473920322203251675519696199269240261549424193119066740538637594830428209289898071381904071659306184624708678139354266848999184972441282543143137980227826208127776719440704835996675883436277169098451902734697706534359373316179251506652735571318591802365906228230425966597764283774981417118473110569950892074003954295348225180752829402526298113630885668943040507599668120732015174387339083656167619313849030950745299225482308227153628495645944521050729941164849276335094450868907444919377995317175907251928671178167173745325551959205839544660191247212340340066905306120367857639563311386727513138106589098826926929966211299374008985131921519394707794570529102094159977598025859713405727651026901565876908399162894765745369487330037111297946443023634387724556613846632400285491403266086270176807179751356660349642986462890386762301557756981789897057188112818627292546623055600806352654157094090540661049186165467957646464272861213522968943486633773363525670360981434246589838528518664048665094309564789312464092699628948804794456554737665724396883963936469200771502981187780475737158763451876971626679360197518884979785589931880288584450995814051506953426262535565929373089471214048794040405737433473066582163954180250099934485811005351736028224632283354749126644837344167218013163940367535639509374672673556643002149201653972148761160693675645347217886148833745743623216225542428274008700426772571970719308768029341123945937300419150911067904564590158208223219005252940981942272831399404090896409767678378078521909902955126613246077608197164523652404960937531017607701648617598200607272297601165550880480818301889648807932686135448662127093299272234855721148063982257208836784383147892728298545798441361654018988493708377845246383266937837636867889170249908818606831624666657995139757071658504201618865279111739299628608217578398268052351153352193616972566329571984672177608397132470977877782163272533391011850971826583220841219613387184287129394869631906373098719299270468220224138937780235686430782469016278336046698253003759530015119246220713515204247019900176859106160023214047393044032647134937883109048426847648610151104856915051275329860224869164942753662364901740051976350473933126217582316771445555490346619861781097099604968923347043071120184063143975888720313232642569088765795112606471088491080459485159137271009843982245042290431797128676214003672866212142690806528614372127529643317420110640899632834524124971360978703111733041614931714242505992421513365959371128399474479479657589220801455220028587197287813013447569121750183466819237844498293141168416259085015631049316512631619531997365403030782814659667661007546167197792896770204312765303981798559386119576531875663808716038933351714056164350504421215101659598946817986336221794487770758443076190502730361996502460095807342749557163676004609435567102955830743319606772556827276132204590417533058440647923909597342234912132885898226937895813275862916037038063018130459816848429138293294891252267189197912731793119663812932378433960655604396313856471361497895085281694678352087887272698894867209772643242283691480394603215244034670390883738049914495352349270591692061566037007138749492829051431577864457153473207853894072234571164724501429160145294547853582015102460087149872247344238941994486625737567985754474744269748734231331348710075558156901781190077187270671644679126285408993798790479063324782948413825210236505633553846019651144264716041040709126679289860779612397952096250716406571960278188014769279157047270670812374651559661490744363684052150221127495519147923252789839839991869205876632558073639995878407418605002208930221600888981445672761873599708394003379016589799492753850534135625612923847613165615990082130103592287211716049803895087750780077393824306171662772846114038914278407323592735680330342775561874235597786556102245191106755663382146695244411496190326169720669067959474991869008049920416939976344909788645718329274814198147937371562954991106198608217778697039830389371279150596993335872654579655173828108819657611980486049437344233088675256312016127972648667112596376895347009413271780630065930543522326334085089535309853409664376888961141140828454880580312473055775692986657982877482254997163055413446471768024461088620156138938186188149270570405203107959455118914890773891222284791769643881056293598117656220073629562214893507482260698690375630503611048749125149539396473172949023553486230745965834181112034643599934580703406383628074028588429997372548748733205511608209631698631380980306317395914449261011806338895522155886104701108695747260080070974857228833727492526464706409601480551368990192399218003236393974288182783453350016663297677549772865514407119726571013947135989466492485321856335651191559342897557791203826171375554125055352971678172821137239213347999431129499523532725778534882817410850626697324500128990489609495804539977755347033929916022484552002484370298642605476369287148412755227006328584386932757281416396719717470710481048829046313692731728336466407312458663768834356394825169135142341107054763334432769748840990112254164164333228774046003510652080493266689796405484968725463550744645076718268729878098834015916097215713256175262981802712242294438208311282088359708233833454281043433958238327390183290789543883314346228878462820967579101061947194264750992203436324011663323205608561497656330775204462987433291772604269738483090898159858382580632180740326889423544965800926804960262107052518173359722842979777941826539918114839988064636511744693221707462870844565495989605894048619705891668614297556019184374046069478892244046399077148883015232066237589712190348217298599145126653014410953048063212145674648714591723660583160993353175700364133162894472112507425835404766101080587006933649640241665327519015264466881693440558888472109964034903074068369253377895932009881434773909997392372164310631126577115319060526826642142580240548476019952802403956359879552879830153790041778579596651392331091045114269318678222393452067316301381652101144328201716101117615793165320153569333533654926392814769253457870981991195482328199636784998426019340476084965005359952523921736293284626912647195420171639212351996845605537305875578998396678689884090003461807996752987664503796123558464770408453673818588567131551075963617871067657002772232314847744487129895551451152063132734771656956087826928537626023902306201147336195445806412343309068486597835781417018131885975821153761480812696665202413235017812267717115489710589602397209719469045576791129630902978640760613874255305775095318683090165515786763409859071919526487210995640018460212813921216999545454393711210086194348391594394125338496752710874986066113598126260969077873476008449792187185248198527341965092263165784056643155384343009481493586427647171942633568263375841725094220013844675634840818493758742403319465235538801934694774848546942802462602928604169845044976464024422578912492241919126621806966147167470323901151439723637919888400783819977429759633380872788247559168692761972240287881330003003324203366712408686519048730708025014675264089836113022287003292162138437386268147650791621388729083456213405623663275389300986819004915859124723585868225154444704899770070049179830854054728956959026550988000246637848055146118106782348174626026158055685982634599981508136044219144520515659054277999851604184309763311379009487936297848080087854794641074407902366067557768661750154052556182219881377367052755663741254554869527016907747771491712520227236351265787250527423831684206651703628262411744455575401353044118430682851479088357263527879212702868867566665939664764649845218036455275345405668079249734864712908337906861932408596366516184217855188285210630064675836011124630805381385808406266427755145105256388299435547302201844651788043525684562009162586436288818478587917247117434177947136933121828616056454503631805425576444577688033676409188486104459984044043622699385097339940047173871289326642541013853130948736117762512701742917843591403522078501248245579412242675321090022289233356315674627535150792265040646799489054869139612407321644383243914399341039733937950900531760544873122728545754368880163230714225806844058403506020631004834164327323530880416240831252136561142023112594069497905809581701928332277567616066210338568701641041096759043334297262991126322695223361096110024778699113422335219174294739379653848076391498749561669562573478357899419081751243234152294599557965585212146812391064417245896332105909434542409779580688947705324275883487349714137481988497565460086988395822018351785290171778319127929435988802149710006755461946108993539920899270867822835517846415937625536385591086097562925592762690740694283254489366422163291035577031555570517479433457428867960217902641950812744815411201204104929999154481691347328306148359863505603181924471562762449211216694560487549469849665369228090198991743128651474865688746427669087753865576574957609589397531993893193224010326097940812511888769788157098693739890900947287851878958611410998857935981903972853107227040516697304386998723868583666205398719076584715490331045567030594101203053816233772525078857202942507883488443336532858129698520495894755751939248946197087523359828359924984332427181429728412877133552333887778287344943167499350243435589635842883595267447558802471201173958564250030536495266707458611170925201143767363830728193583488985582166303762346934938206279379680307915127721052564748190969406383688682918533990595586321449445928530478636661920923395810726541574533408610703874812098711245285303383240723777184888784973639874513108704155841701186640364180984678884234955557317500105418809396221835702613928179232423724121011393307756654187892538556377187908150139235308732688589173694902075282022707232945896411314915619828132684913921031459487421653772556784670009328880588873738995727844260320794530191100673339515956643966622969909318056381990917056253155090889684483384603161206941844276975574006142768122895953100185768867686056914430238969220346029229117741747904871061084544883845847905850918667628118995593123998158503294003071930633385796120581681249878667228466008591539306492000072172041409184987293587596592343137517784942387477076418805179032981728411800210518549897090285406940967258696694865313173973515069057717361251820252588452140774402161987066337691353303334485190856941347013072197488757493234948525222876290844607783298437226955938366896729451967615886609277171983886222886186969320897687951369072427598636833399062936948440923407743120575057037045455394636169858909399605141376421280992017069594403790304225367664766804217025977092569747644244013660046748241011492801355966447609096647046029487107089969834564550327077840050752801212705076165752755653175654079097257196941432663878841968475817715255788276394329619378923154550900886083089055759014832032296461123618325098280890281274954164133520427563855015204391142012791564066024791216798209750926227361689357178206537531937079647544203515245236267177177037459490340445825200314362963151971120002941328834017190041557758179067777819297956559453087243901218681830258296287663263606327903751786842549455640193828312708560776555901956994020401967150469999875233182954855243713510785808350714801829068254334147968331809897785429774314861650609060182984283211214831605534643520365482156017498773232197094916362462254714935788588531965563183928776334121130574737479096671776293257350490570275627085200422172009704524449104761702084252223006771133251962722453948267383216423149999016255510073890338274945101072450677415568765777076586119330915788383015734109966744548427865012720057958356980824543381584157607205256772360094164614120992419998802125266201990410246956618728529009265181897502296816897122847736872862962500700646376629036073145252276882655644518754234046341141410393129773846585352128336790314886753415074153075295229393096868340409124744092040372899932679649323180741194399269346223740264050252371525100431193126924088996363253934868941791160628683888640374219885803047850750686527980019388015930912230429695296669590943615089029148126656908285905509850621933901624763745097319557603340068229359023276865906034221201905446878946904617634066542194221031075759765240863805417685467806508588621757286960888627755244823586195365164812409904800751398171738116510122388771341347122817325951604013785463869508506088446184060597503522895796885716887300167044770764233135396893303013342150203093891864902239715347933145064349672103620335694214329125657108622967527303912076920747328480806054756599038219182307926290453163276317923131244881279647922438143253127346703827087333471265025451636551571579188384275590754764632118547517892621680970341850180417230533313149983315324146417264897131760987059085865639062894909299024346584717593026391237270359805169397445786552570838764625305612144502319137676009064019402192568066040475249426663351720769111046036079556692945728720348583708514891398163404037372571399102209360976119262067580600127958127652399994660388701665815296038724650110062541429306236472171681527547160994550717077362461850461820725333024466982279711804062833623309662171140896231623803033195075272906591857040639309334604526144922216433944317490886697083946449651653092885895636486582084097829603016459698673304676040507349166170674136245033155706362278883117107770406132749961126258009621242941563101248404857479362510235306834883891961383813194905386532464773276881952859287068471300465365230411717495361555897347981269376964647716141919289486867888450495839630123089019734139503124087645081698962842441246649456075968939201305343066100202782608543495203754700998967971439757094201695407970399890937673096999306120280495969468529098975011498070645508472226908812230562089620588950006518824343509979082388439797550734919480837965149429265730659468755831394278963056177657816855030478307542202135156834645103738342012845727064206789911398847594658759116707730535486180449497541885362365653079867541774081642856180624236558078719992649687883861182479284041369855167694670715174792299554217321511765764875311952371784999994842352741008357118447326635733339454428628286558476665324420345033848070528357970733717061940328376163720621417238785514566506214017209757882678779465418537027146497794225850608236619504342439175458009688566219988891711720780168259689404880624106651235945061310790315058851671336469734758529443439188387111100649036956986651317689231525000730669622371032507006168033254769848919547489252419009306134913426091402377352211758498600530371688688255286960421837361553250084809558342561725441387378328436795149415428105909827130117440515669436266586453633234946428380603672095096321106199558263355462483682954926445790640935822576167136701160114720767696338895304670475919386048718308326242904973262069762576358103656426767937067145695592151889637848088681117018853949382388478746080184573943443226204805689209714076099866696755156538780202407555244098117871081399169334588320664202735479146349178162420914558360286575774198638570642034495501330943267202313920189621113291280234422638874533246566535519992652023707616405586215837905812043084407971525227232129224230361832976996249748697798287139709489835405870056527908484538549265074016036719012581579028750884224489839437749286069794260527128733763562513434447746634583393597557342779906023477392806718756391471274460607619264891528884528044203105575277352857893053115986026114440666862984200885191430335955440466499341931722760921744946973981720712084654412076945487831500627911712921127047401895136805785654822135365113616550388715026157191942690799774932392395155338631239073531909287874891633171973245823655233871439110133689352048026035922289704600368568188064211202417692167841739863189667098075550795683621931344377257396237539986827834766522864092197392324423137064367327186046506396145267043865322440271421485813994409884890609104929113817999698679409241786582768711263245969886682124366391238660215737180133890451944235411354658490653162550127063860120831023485878265058118725594451239666637549750306048900728610695079758000256619878306458927461313928973801102584795506342094262348564608706505378050502122964710948251569284542104234954871037766146299755755019813363649548308512437073917483834250468162561682351538850836039477635083534395930468962636167242570042792864958130603648555651574562348433744383762840836338445088691492294424063675646956871341925609376575242028562497845884589426640007162686056451644893820102172168655673281946125630206508781033389854244333179752513245604388421746382924615908618983273380668988928397886762730558752692095148698327607443477964513892755154788471525137537416735236254519803912091391610845349212771688959291614263753066074936747417128861893662346338222794467168883551622107686792648667875393468013543850418283969672823999502966675666506196505737763914381329414551679410106584072985035227628453389754447071410941659838458540709430267548004468752603774730159290208161681536472911145359725096232775633920649445288001658428229431712608143512241859921512982898742056457139910540621349798277918839635364783967426927055113155957119289166599961099261181501356643205115762185522874144805597479326110794668090849011416210736639531804250453817249354773126932221989582382458813439459010280595394614948123217762977625428591407023626460529362741038340181866136136424436587004045799572850089397326102909197544906516045746788432194999676391931834970626855771931072529521223594729830331997905517795049840468284046221029723204713481428388849008278511293686842179683257493709549276744813104067996233286305915428716648351646596616219022778543590781554012485652032336935045215043647113144025109965728805357176915504329250109599790319730587664112370270980679424111507492368057324545923731501875319918650576304770092162491909325946760065974253953935351274589781511781921379075142587026929016353924932562934021939412465264147324576465613381798220650218322680364186562040742115084663478722683575115137473550971367682602671177344910482837601643501850730966694155071826743587241190804055052693428817211825474108040780810893584441477613180511957176069781601740033706190364477898854667080999496612265669162707274594884306457388126499552551440775090160223111997328962065007725297640162657179797568559569865755987812708547856392328589932880963985112452320277543803273132933255822964362059023172732977017289076848215856354725864731183753970745137854929731124066943707647308466391244890571200472876371346826635113301557633392553386071602314336280481877267586332816105765169562054488478395970161603855719678941190940932645458945567065951098841205934083547473907355881821741933412528808030885850836741206342482652763164040904439557162257717194567143331276983632354864720768442740222080984776684919822031534817649254034287559004332687879019681487769851979629260655837791949390628258156081152148413997666769764343005730735455500472670192992674628013570695680444583096412698127556995472987945446602460885908628106405109861751828215141272902274492008650117742662111052420890593307561496583213898617004183611750549007134188941747618387901478952125160987441828551323186985446196170249156688460299615177320434838697124788777055704397303434712035418012976173159511653055725557764927103866002899411205954427126536524651985743217058508336979861175037107563627623253004798727372876646903691005098378938006829382756601829423627103145922236867376690935046080862559761929328065477625881604369521431908169551071532579230353336169967411868692093924868659268871550849580843530316869188950361388093720673086090786010057434812280511389999206894393047911583422190368519210046273193430111110597435834178741059047371994689383629864298168668481616141172239077051955326535513658734231159211906725892174416713855507973572826418093578571724075715673037486184626022860023662757847260510570020575946467312179889132068278938235788666003108739338744860471889379205509963211872605777880215713248606394314741655898241256445483177678902037816720482100461070103394887457884243635343413548281776419664373940048575418161064375423905729964911799760957237808943392186404829503243321014527613398769823087346153202308145618540226639512273833760908026229523906067658145876555914233779882567156163686240066978711102301760379715501568938259175576471761633271249899199898656170843611525986693287709894313449854704621195875980168470141637775324251673606977455705278018407390896264898307297635677275222911532553968651231335101347046278107552298451403746395278447386737101823056192876894301966425506391991695938269448124806797596098755447756787050625983586537066753829316708600961203138355831778544846271553707611676630305129152026087239596003224530482632149254263548444594763614858141708254196372934926011047137404223224270640679927679599644304226758687927417024711777117510874013022580701724790802488386104002614412487417386819431281824886408666853545986130903154965948764757614109954265177717602855891634088430930600094739256063308356814605654701030325023883613345733963576926710076226693525233566452609668038545480707157658524154723358490783268451617878645603063490035988730436317495450848894644576160996949302553701798872814849196896865754821087314058645473621228362811361940791055002357823224053972216182541357095720077024933030822723124097126720636316355426046553453756469432770186141734591545287975177479498491262929568308145760662858047180724559727149804801531063556739511349848141674660179341028846927047709142759710037867063540614379908068997245768535289691014274042588767925216001561258324262634848749495332651124369601730522825240478763556736943229422836845033397896956808365352578970466271420230699857343168985377886203715705537046965307820809572889074056408665701661584868670175325151813426577499844829514129712912604667824124999310535909734772902215657169480621210456286254396575576869039848418731838577920340497804558631767793233007892946976004583974998729982178279758596547334871351338828003320189808528607770510990967487921005138970423130334152548413596342676584904862459106999144810198927524322867273931989108996326191807167685734126904534044950349485482222786674934777289121498590483254696506053305803064367053601665567915713763583741161329548581274719643158490797180063467718223494638408064155919751783333745509361634384043025151015404777343275178529875215013155710761548860120059078053140941932139844782149314253745035080305701656472729081677214045264309671944314634186229661764631223712882810079054290213289240033616031415503786666056292894377670372127237200970677685973500620643106359913924896070595379988741143250349166720164867873224439640823766375058342385826917399126837929933537001167313422624719987330103537856503975361942412182695487359446085001270093529599822743964847262274222414891956079768852482046872682697400455172571604214976452218490661202765956899532958080358767551326822464096569581162062990916134761317686979994227437269220683156166365348921844568398674865175507409316344704768893406046146880823412829457635286299838139379429092011291113487217752853853388257428410518587831237279402956441498058503041093223514406850749764254298843962527190785529131136652745664638314717355214701374605461750204684537490564164202804122181404018658719157006898147051624922108801016169970359440772760686439523952542007811376554651079063119185118056642259862277524592076696015821183507726852218711318697816037676805276561954894847755469068378601580857936254349318694416211759460224393199279644010275499983425892316864606639927981914464340027524080530875063343681481311758700965402874887576281337247931042683192546181260258203324704571858725600402335950901884583252312939062234466555816548207646094491313750055147761314447626567661192343269737706678962476878177332555066929175539026463002695396412903219421294786833572907765952780159351968064012285859876597202383096018346895498373997805396696400300430377779980788171459114797304143002240864023634284871760632929840095901211607596027806846143980620729964603135626451896582222624376534657431884142093543553132396304546604732813838387655929690414611283629557349269181021761196145048047990129215535407207241607479879431741346267211092055810043820850822055758567554753091073974370119621021654729362464247431298468454068348456907214395194424371894590921195773461247756019664469738172445612621766032066012907961609607261517231498636332671699238843290880769391751838537881505468912465173040981022282773743534361853265765814292395394312983678550079728121431443560924104780043030055227090132112101022096135925946025723229948860824993283394765859078490672264406521980766571455040404094421313348784993138684705401072473106123515010068793123933433367543739941837342844203531968058828245978202681180452959170794415325541322492183805301485787969563634331727493464457747254451396921250380992644595737188976173851394753326424605737408274325105808764955515893260209023037066825772974505194769954747840075169670029578614288530745452229092612774670955351890026680712045410634428638991748516217125349991081214072666435462364960208995428076272896868806225507507990968499655757944146631023684978927325716184033477979915087437268396406218033807377589594645485609046667967266637998880723350924467442770429758908411602928266037767775195772803159785883773086403365639981345853837718440519409629198336730479166111073496209045219975384399452383650212748782898646872835239447795919569896485962910947525716988796818529804853718910005864036499362769876881564359717993188858288097482852417491688474319225345379876051346575255950308551263584257734682108416363816012862745284937352066690123249559693720640362243402175499184617839324242211581129464619535739063740209196167096076509568835216979963264578793356941036729180274000517202971258844768436150733219239370458858230039638630281790033593095300450931765619887949722363846423716437336431697745885511489332455400164842829523491956072131008955150599752050142123581480188774741431190413738689177039653494422494057774439530506104441848035057306330872959122343193909513833139169304445332512244431978880263357307698395803166880029989629915341667235531549699119534617740913831507052555876876819043995383211643950505457490736702809971432947559160165871228219011920930959948315570188831593295381828237818341179815102303261030137592882900341506450539827006631480614585685205919102778274209061973972922780311395325399344838251434249025264785242433566888884552740173350261219655957701181759607794222551150852107151862218180101311028792797548341889312149072351307700323787681510454443712847535945833194784277414312086556724160713998773167834559817841332104368401225512859393621696238056609467987073695138422255631503367373473236140958780509964449384261547237464426953417524384025828082615802551675188227139776403117607646768303289816630725569979761755312050460235565568875371800689371578662266250773490429663660921964031570916900099602526847694802975899815872672756374019396202332946545916457425588090926967281369000460554456992485653661502047920534600206550594157679944515725992307557589758171065447784993060584468641627591290595381422802768765655198715426174429197661403053040024569520126571973150747889911986356697691529024452961356568325710413800686155717138348100627623891332157542287778087449443989145486330815225257319972873509455952976602397510489474437603950480435023319367285033729477141832932262686149048472306547400073293540181465276788956640408065006745095723790349642757718252010874479217365335368435376740752517208926445026700979985330150976609155536824146833464286827712117709571674113666098653642519917621716352982063406643919802080619745126902281111131085979097212608499271489358568596410032456171789419404109573861355654956961591130490759705333476404686744019710890538297671844457377148960099994339467870601147848820908128107588473911895860572188930856031338675255928941372495795517520194501002605708595740144008340517443691247237438288377746214098190298451788550808180113857490640621210455102521471751698558723609442107277683231788264536904312728538362306931800898539102446168690614877699877039114029851767870926434991842452848845041868837226831966261260290528561953875826806934941917831977703317741375840566869846930103471054485108408279309171158487232208279965128148575219321997899470197562810308395344721871816918896292879216900802667914023922638795578379672993218089724672925925742405928459037240201968279270664451091210626845426921023516993423757995199049295334927946401398697252039831842970474337282113024675753361494952291961864701324355908492551359094652800795572979183293135903703174184173776666295499242125114793088305445153384567717365427189393466175291469517865746810751353264173893692563150631068162400504246240005500376973230880235625739173884487894038188484993575317757872012166214707374644802928173900963180219368751807568057875066768466671494013705415027886311890605804672088038266935310922839692499073308316875611117639477444969257864167543557935584019191912502640617537433778141150192837797864621281914558282942407061780458127729972809206330305429313015940558720625081923562870650355835089449484870832964601743292832274003950680858164467586939224268547541110909357909945161537186230164001079256424107813842706858609603392767194753324664064311056658025848837128714910240384266367668955303580467997465062830652149177030186848639809572512738959246860906889100659184947213583529150954715738604596266062141155531192620888835383249880044069224208458632899133653653321363655985789054267025724907760883544912084856454286999670835706103135745055580690118544952901229542911748015577867852556943337567152045668526633944619237759300137252374015119087630735467196531839636065787491000946047308601753807081299894734284723393203797386578515736825595198695895989009030024415195761559955293571483561363692203412376311779149485844184197249566006978459002694524445688285341109530822813454648042047492761891195450404239978848073959272302896761139675029720641082316847357329753245608033426093657881317210441647249192811633945570187990535586984958163148878249980522342335894242932670891509204588559390133373812065230027987510800299876703404107196212211339261898666229888869308691027241401890976599498392899917022286225269653204070875325119975832283832570815288231158851131670068779473590015560096724117236991243034699679176700388997115423139111745489327579722987769150511669801218477246669364285543891638053246656618813639705822159728637489364876178258171848312195681281161937659163552250325796138031974459943674465123659589605058037443607256642049127312437295468148832791889674672660662289617496641885148900726138033183003706269834196425550263916469745892727946242441141987040586433955899917608544977836805129777885996789556348899870336586961686287029712301463663392467719151912003279802998169959497683755107378983880075244015726395267988352289458787436499704933020549991586346115715726038791986852783754285030094788406717151846981891379918727505755123248197008148522528128874134945429509051261264967472846741284003111805353036248781139663330465459315915459895896345562525664089569242090634946710350483104940058262225907802211273676261405511240989718222506796971003143313135621337122476144655906778739203625978167045579709168846921896470941303220288717826357019898071422701071845945019966310711388680557291165625633392140310269216321598518114639578545612151270791208623366163847847904024787079315089821397824051759503858651100155779627306927175903582575937062882402110758324681088098522041185542133763589167310581022811055371506089515121121290441788662196960730502990284123222284660165778948942753408015169211276854671231193675026946948690515532385861248773737271252449277954830151918049784232828570689304226643701342022046990677994043672798438640938251386401478338036840605747388794940998812595300808345709811121480720266212135892778296557724419341066144904391030774217449471861721842308680228534854768833008213227544786144044774546919656277418596546133463250007893315639594127139034618373672005095422072834722892365699230348647972955113249988933096710489091816339552560980356666459621271689282453817176468560966583772039514699288022613967371846378215051495667912535803986209745566504211375059323817224505402302766572835568079535607643959369906179440142754570803996414941562576384728633132255235641679575004392494308004125606005661049083072877070286991413693886102132709892658263312742047351174277891603930559680997201655897325291654376369700919851449779233635548495990708289547510400281242576737929370111110289526318339336324202449226706518563551316426467881179229364173313383473533349484605430983496783749617284100154901193297676031145008133834214929569202506029899136056503757947861901299937226015305208610239967046349074674619632874948457356767142072538135045836693308680132580611668530657365132586959886690190161457738304223324697053789274140789554464276453890333786017281263006980107396611272197400234518137357422512231439715934389549215465033750333356429153668271197218698333095649167348773366390700933451652338540004006074535773871415097199186328569934023270871753901249399681448889118604262805311544933045897176553697447315624793089792660888136695228996217687025409068163319023027420771994471864724541392346087856885953868498083204867946572063835517229908195899356033155541007653148876868499016210509659740824053115069559434322645234111230231377341139029722808990190806421835568677086195794639210073416127855051140629607608840707309366827413249099495573606897852053426157695588028156049195380543449653722282731414007566216405911075777200353705748762879997815847663422683571296156925580079165287749045258024982309421572363498877025520841128885169936365424553525244194107196340099082707846684404511540219900324121881309448030718979704577042864644100281745321662044316806687306455654484704051410749389227211005758338348309143225793644048956265872871348687947454317258566258279047924708542644937690566135083036115494932353982055004873574978790684930790627629722692039712590246546195467620889409921633828040691431721122888896984625911981208628518157394168571826763754482496049461901190207592902606543498386088749886198938163520580024311202792819423196761486685544304097355688853234458792534827719092353748231230418537757805107198520411791223356581266976644389724736766073401521325948172660589930983285850488153798098550866114193400789984968252685077182226580171450094953159254048270597349660909494585991058640992483128035767219793548837227313090922572081017621167309668308465404700488794271212387888228094676667192753139655591512594645974742177785887582218533719231850039779513751096222318024695803175310352737181648394537325980506342879693562355471333538721031126860310348650316474745777662629604120348288006577532611281390620403838133576309442490465079724078518975127948478274283976369393896625864588565431571181528218184512119941344856919531627180995136995841405313429511050978315828791294115396440000371903835072126412130662914837658425263755926682037295287927839885433583078249023553973482731414309508387560262187078200301772295820011280934476766237539420569631016587106142088136502475673349405701840437318811560085498369573446317334821238548991179020235322751251712798359006757858446078082344350042553284660553502018240157561315312787735316279267899390397733607829409680262833743395589759622261245039380130796565052683228663851839165487861861127972716091604578999195516323869655351254162103729762821006590714641283767401823098384512768952152598238382432091269217772718566819903539255244072136378605910718411515640116131665314363870843957538251249442193670224122208200316596450665588190162066972619054677825409347854363363812637147613510108823151058061438927851932547178525858195501671070264884703955800498155393996373387544425123217392263225838907183411315400721367579509126515404757710483344872875354422499903243747819201899019875204840708909888507517652121375088782480662824497031034117940765637664462746604348245501266950251359340433524615283371872348939266990264023131001082757674666151631456412028755632192625527494603345132529313733884099787970306037151663083914594139746440696598169120927404506616824304264793171058553348460039055530557588060360598993465091684392981199833985227878651440968994824644000017407019944581329272229163079841911668044067417230267853632047855621499668541761180102257993145896045950837522662095389993163800872243150408274933879035568104033643628721541935272559132769485180727823447442508079065677929946279413255247458356625516412062002991954188643225410163036398689396295221199607448268664181883096846694028677593266499511688195983902523311201222211653559208278015309601512655792418088817494067531380350616359439253473166120660379091338404953907504595061914240976374282291653458171624355564227126293296979150713838949554278997210753373693732238315694922646870563457210247371860315290143937389449608615454512249129602831192720928737853001401916514100625754571381430022221883196147833518478441305869727797767379950345075268927694004807120432667352592962067909108031326170599653892878012127131264981226796729712394266493415860402612414916227693385397966833445907974194029036084586469650772132248159204541302606477824749168670404968789853520091107179524906646063427222263753936541836182953509476275113374488243059616978747108688240801327498846250355975226318678956431523328027333849055849611659969679582877010125191809240017124159022522757881010051609218522692088420103777836411235720939791643775198995092821055199867904592398445202006061988612231410950173450031750071975533520359243095308471027221432578983292218231614065339558552784770929574697609789094149963256809727951992988332759863723538604539566766332003018144787317761795047387742846967345859608156013563032655795997552498375319945753174164516486361379473566676792532732691055751813844143193764536211690163843093928332102610989911213167393056838614316812664938901470866066654562995455923329427469751900454859761124293827394133141586250650492338146175023537863593721357623142446175042870763151031921935409150278509554214036547480506786492859863962134648474938751599708458392341006101852213971341573289869194556995718965626959821751376768258671108725004075468943399790321481686308743189426579307727454090269644146771174107041908509307534074146910689212232450146447211548482667498576851422774208515586923461505064041150061566131234688749569537989052106984121202965029843969219117607577844290302590005559564309767605678187077320529858881803359339207024163067681537503003889122031987524470562029965333707620340137352496093348220530160645102157227223550883113199257088644286542109682820661777468012750400338026695189327399310131092880254614628983190930191975127416916911465777643387246474791773247570189215770534679535148300466586243180772505286520445267181495948918867796338795892280039671828374070174901412128534229518559550168732543966265821372517440602285528467576835702016216684572786878875355127545753713242072496902458751913332027743731611955975331288783825464486484520972041433898905288019294905166472006667218932253816465506076853408582382665528971072330649658093794675702244407494380180139932328824807276166327331832332337510798975358013798118318313114609747404315809374643309821227206560663470336992174225942066112087171995685604409435376021684702068021762221742263720663523348581906004658478434939808054197152762301848273139537316738209976182500504698066469846521544706717079112824583163078770734108964872126788039290354576746909513664251303815418947165667652263755984111131454618232919459587960964045303441460577075786290796652781319393520797267849204204596436293675813615508915745713105764969300470070837476307211863145733641517910106615359935617132501089047786705013457357221420023420151840442390432792633143445158407828398287372295089126680056137068204819535217171834392865625639265353864132469272653250153885312939664012050397190835647717754288295843488017619310677682924892721955718173604185152574547124286304740547272729969951487178822020304033339785296254778840410179107240007127247217716121391208630122846060190015957813339348223327118754344453883689316631327101635705622288977335145777755202331313818517189877206063086529928120898327266223084529600061645434440166125308012967762906602441138075431971961043975909189987081996412605947585826500784253578492803023599240483757453246378042766006754733941828613361539797424963999686771626462006162290311738892074034771231113404404082949384566573931988417288133288847306632522478913968627538491669058510779180190416751948918640687714563505813510409215423648715829037109681420387213594986520678749378233740491471195902319252923634176755558143124802808721032212141943475526403210883693821479743613096768434350470253691163085491569942592575819802036358840846142284568126580614588733345801704003961551782690689874671794035531673051413498934892030086636235766267357031328990611672246247227509971059189078115186067069299670641891238016793366995889122557118554667914797469446903197653206283918300867157505050082364126545215605481951475958801320504030688395290791836447559791923977641406079861729937579545102437441637243014329117077542897177640690716980289323894532301810144845848866729741147957838136307399583490484014530852581562632793308715687007661102180533895356978968736440528495393069970004543060224808001218329724590386004547025223968792567452318675881479106542930914268690923632753329620052313797926214371349118457850506101328563791319396984958842711432763926960828418529969739054181288048580045694707808445283927739715820133541735490211985296815505109546843488284696528433424115669805443001440181553773988276634219777428992846499841852417252290943830736798596813709518525038268216244760665620422199747309212445101667627081706592618741572752790288949333882625769872207775097711724296193591112260180551652876890125379663785487483736915867453082814417993313853672199341042920939135464066398452020549070057607703024205474250215745092146581021255101927519606548500182374145831453283713059029344582469970291645982784749604465222424748122196903706295369729210553800349427543065111771862810369464865830391852210153742148713821253342919798126307557563912629730678646690815648594262100199825934980175281611837778574573831339320971423966664010651742842719349654188507129533802869972495298945016082521592488352325589891996159637018393691950117579629827406587371195302985170713706826084679115759531366428995231544419000277163800298004856765829891367480426212196054954464989634796937520173096302470139365927117848312094027623578628263409843904056194834698887094167842696169781411106707290456849307744282775766362815251011991714679073512253446317365705236413803834152410373049685608851967566955950354274333869702355162648484619770450004134564313531511278746602272472075299418384704544386235512453807118256057567280486976502785995569618853520884828638516955884802079083112306562752665135384724575568362654279830175561543577583926174453753931665019393340046560169562484133555859342918651804276694682077606265171086513237660340740037278652882859328999279881391271532215619719135609816825413557942828909673309277300632091071478400545047772548830124401619033141069869029361400611328415415856887807243286553332943728841688228078693339436040382206314959875257211499297888326862879279274281137610252225640198178105838817154306776474210389595040638783582913252369409167336491413406194346459688827474364894289548282885349731120458771463635576552092086292200210043140258004971646001379455637042731072909704534971718344199930071635807987294126146659313374479285677693346378353645685963543878724316430016490493366259083710359032307934022237977424491758207580077340121221519679772394373854589013131785460249876726142621423367676603760042743738782053235151352554849826055920906380950316068174467623923784418468435746398881155401056532178730351744754706034698347845564143396063881267113514146652165551792849352345296966950793607462524096399619467818455809573595233141394212066869295117215873974150296245721078331976401714209978156000820217875965298057599786126520108446783415778394272667026104626786392169456070143225453798482924314642895829263395275578794751345539144572379959723796891869774185778539944417523531415392290779552202129457484163748837114097418940504628023544967558185331270684514980559149140024469784323531047735543239212869492041572020795364719435225276126226705628765926322074675618701866433049344041989992485308785180719958643237416041449201780079895307741404037275402787498889122519471476631803486255454682095738762577380259898989774940740111672433564998140645874710025852415847419944922975675036564647883261764956990131024033798714222480291658057064381640703275123185400813283341758229730059172511953805433398678146753751583678149489905848691714172412858275056766391654578035723068462795993375413630124915454098963052024368558185770368704731854687013682773988994006307921820401797563019749694785198663832940623889708455870649356011111965351074842226723268212681788004180775001722705614932267415475507597533042326538397844818978568032108033911278470084080539011600435015291816990031486215692729089939975823048955109036270195219514826762118093235230176865692772404735915367574519663477314199550423860051363724758593608600014576826329324554881546294336035169106479431863149637161212064469491728692716360557061413111487158129205984868656325849274062573095509318128446332143380682374968457236694623552549175922479064092856252873814973752669625429018969938552695813757019359443211815108457767433632537045130375845993458368364456157721844231880086602831782076818130611570523066975250323259651467925983449184542501773414111490736864804443489008392391305325609572049840490360447430175747866513830064020610374125410118934388986396063748542493944243655498059677779908083425151054496957816621054619483272259777196732763476834319709744366169556895070016319399549370265311515347586595149632221655938330080438048052321619276717301095710671777113766493842499315469143462939157965739836931016888258802815193520878713329609050857790067932118108056766986981209533052532917800123612487501525610057835001387728194430252288327500889366425482741467950490870859458470118790111801538296182137146601643956415205618054261870992228351222378030811713917253212989860653659125269378188421165374729019738746053111853627458877156243297297074656437138918880149082809555707110587495807492066068352773680482028050874137165917816753133429133277814930627903091451775264117566575281631054563524224663231877400792847925422783124830421961282036844884082128106033843448512903851243918334602575797740039488254355433584129303682274006242780994072900206395197514280820550792081712053479630797728169845218603732338063856676113812649777128848202533857057397240071959758982092185864245194404970564004412131272146302522167027809462906688355009174465633908902663241427864767259522683634882887503668662022323320881417363869595873436835847816018533959179512955641419259173934521710925214807824937273331873168983091733375847606996150731425007456598374155186706080493414065373708391565110875591875835705148993821603139524911754470961753468268068416905770076422277822526988752093108441685683584318020959155088797308256555973582237023451402141154778652553339299566359158274608295151892168956355615093185354249887895390455517440571142681925102357751759486521996670714382130918070064693531858925340112222791254761569898511930016248597831208246949094713951417506672021639781688408211387799521621973349708720698832435389173550506428590115482511731976615353116381623894763538115103407656965856727906039108568612455780797535966665129111940514133722568446234788115178277458465419987945231517622506214077887585339364723489416581697892824063966937467409845883083947761120436451413535968334834980905109564859790757085774115257155671284348857264504724673592273726710609202401621381502221583676038764541432113905826054333591835119698266784109761071273962509640135569927054837725794391530260185046028580468359321803542964982892708425712349170593594305227989017296814126556121329041728513294147978487120622753364787651041570447817741310632906112216475807812015696697007058429335762619381640941436361318802464555917002721470765045090735192558559373255726334439311755574012646198771541942736188958164431745660082672186089860663832904523824082166228066825181144244918291083963903423493034674203733847628293947538482119817591368169759638759686186237295922423632439043908516592292000652348282136552770845008451626570209801723534207998364131617480784209189911271260779984630791585654346855137665616285438627327840616872739819344558689926842150149538959027025905133340474009538740250654770196575979461205804546209891514442265382651931849626156625099759679127138858646999798650485674846127792678288469165937215393679644375888643431809403490788028279394342165990369355280259624566267948842370037979806631861884904786175365963681510583438178685892956002845347554978997080667838075091016135508704801090170765617974155670801102473642984176225909634708438466357557615356141489286210833927833542959497658529247673207433290566902170805998278522911233102412743983206168127961265384519832740874145149428520588110340687541875143691164666446679739773435300532772977454615807422785557213455406965867438940481710702628048004578504573545782489598470603806758010643685000540359208576222880577943634483531599430151427663504073122848825138875335456570911621391432911581372174498240276250225845762173215077852225316125466080524687527584897701259991126967448496843171883272730067723624190443583043656254128251254103294647295420760702496893926646139784297586756454404686379714610031985293092905232610282694183634985994005149664641769810573683871562771795243471104486596157751126234407614420421678286791724609113670542829348461625158580735012757422576987734993684306421179505970640922663181001626013074785872142695051015469989398549112639835436595513239782875812278959811840950087258975798163774021542863774361021910931395134338353050348706503832433828045620719166629135081951203681223226179516198542488146425053175959312403822809999252766423061676879773611784312186448834418904263585294352916196275382934491282146370152007510842792653667008973988299886289231752865333618070331674681887152961768620781657272283256991227825169028204743677473953667374318633798886652769266154079996460892327963248999564694717440836157264901904068135173739185773867688118543063469400555766091761039533902433506362180828929501456316656401815007834152852809553394216609520159414319717264071825907810847580835336277240291203740002909731597944525717025337242281955662771683819813006391927098618809682372119128401551632575898836486893601090710116009692952699139853736655946067025489177226958454147734353754162741932061755910393866688083490014254258695319254217723300942287429503187737068195221509397639460917551178404289875763299150893338091863314638747962867221651906042276231075215391501441084430536954630843406732303509021297847814184743025235068937047976023164140628658436732321835963137186050708097573042129017723613031521309254863389978420490799315710821748423361928412277211681841282366880019551824827443597362660733670970213428371083553447159125784262957091033508304703841462694785654463533789206905498573609079006345776670505649216414829299677679864556619205646884476160780586175387145497750407778850523138935523100046654428019500005509595502232367698030925162902935713562403906801282590405310438235031717941274928354751563296198267736710954901696051120521775613125849668418367386924264075740640038108111064884811315304919747393512736503549610665568602748214693078297626672814874052968483261299307486080653189423143937266737714352186818482189944397912426230865084780868631182605712083218008227100530922024745522807310770687447537779647066121368982082419832962168565841287022102465756743654556078062264273947266923896044647730965151333622432604635985404166575709834513219067150960721900427886983158823771374822231620362156576968897641378791673598749036804614772668243318528050017576478544829636498856599187474233423278839322259479489543840048129415075786631776366337333693871322660526532144795464110142454383181976610793231230292783965927909196369966098120001543959867190815482908671699091299879722646157205812951679578242773172066446999893359754216455158198987890691437506838358481612594457563108635472403226976749308815907158895383542804902497819758425178387474782837542529218062391258263235340806495890734422975712969662135130338474306434415097832395986031273660108289719296788723509461023385827562987245177570289462526055935829189450062601924172989052770074953591882867573688368290114456596921244946149312520267950547311477147927150791898270691567053943532980655475335446354086934602566367767263067747510646972648719842275487348785087256685134908061472798004659780147850551215779495702956439025429433543205384439302558254031469903733158878793263235249675071390690793241330757387703896191747676306816913757729781795044063143835040838000088386707792793813717908650045563445222083475653723487520412509795806826212460958734764577529454098734681073185714989667208983598493325868489969942024310410566861446431795008501940101620060293399715675377311269203904456020451114857670648762263485898696687929304096876954256428311578715734460121472032209477369799080720985730850752888970896325569179403985128012005169136825375588003391489376781532149365476026606945594923422521482198037742565518772460536599349770990560466764935180544852250874170356671781465479422082655579292897839065600214946511545539510082282887820534299893076275049138876762558602907487923042588055466783637098125988540602805743432509311962139372793988351237832158851080070898288163401878803884860785070739666773043388467422693769397703206232658040641350820651097115195927994221671274195805326159196474403045176809572844167370083967490313428656422211532926542263677630999483236437927721771189630585735521253216237010089342113598498844533247033607946685790915700618175396287190486957662376572359983516929739177941979254158767145722815260395998772856069814358077255719634150080885743601718241320569651439426780860779322817974609176458366117567537597257079999886885793216330986192693042703751300558649069295524055807147701064101378113417194100771869534841098730593178654672278230811686976023753618177055463068985412424294189920717428002577323146238536863360151757884424899219207582023229668171615886634251611482916745683424186182134781680739444049184484764049789268432705597198823127412864747737292668023846185721966097433400260515351017039266627973453759437423539619452052252861295775147610082664278274756083476262567177330605631000837949253260700642176090477553585300041084032431810914512623157316632459419613638385310860386886233429432336183112468894136398139499094567719174907591274213418700083158519419573066925695424439908705562534049836121750590261034393274696606478990447697045731333554433945770917962005589377040036278740909201638810366943809143850719314182318729042215854980296075421824528664470840237802290995840093067473230944886335163556924622263971236117699112901856896090203865269095165986486595209528332555497670201870619368241962372880450555550277380744743407709678567856570214756215867349386699696804385223865646207246244740232855013775702555557029338592676191358300514315930740782634443472438755103702191178360948211578920181087904517813150434509280320565537209373811602277120742311804609205718989528407068502623607993820343115881610845242961710736456938429047069386272357444853726227842875585188142654791599779000498580573965265002943086988660384017275993422011239307351126668594409551173821699384268976490578670501383885187037868047211122408757265466301745496515181903741688355626154151991744061121325630448953114720730460666396174743332501339398618976291076139684383437817239082702606072783514106956403330996139112518244117210123369076686014089543069844051724041734022407724311934948452701934450758955395777602535920808675154929091356034652727865490537262957033059721855488664227647497523609742855709794748363544544806115431085683801347747119003044972491009311043713079013538434163047170018586410197388638009344774456300397530214539002395744999080320134473512020815904107213345576728267963078748112639630318477739843865505380430852837235564452654462791739818050252189346728940429243522945355390286824132903254274830033961898803214444176857287323892258794773950912845303444012189250846304121131933610104992381429814101260350291946111751340871929371809541264759836700291093485882691640274632597140652319391744295850632229487399109380549634771833058220677312827596682330888879067217936825998457560016388068886187964924482428408516311212216996897498411947628756074181625036254089631108327994508097219348106203534337960926562207534759126428326960343907784004342113718116269481406148453885481341006037656086349972069142163119562253966592644549431220208623557024484143100143779772474079282088913290905282736109191051233332800050371986634964807550364097312025605501715542059780807134483952753319321069692891680792300763431183165979918380778764210160043028382217468731006372564724307508464109989582452401308811562443513129346844699857961279883224106834993024883057155701400192446077241666795993216998320762466319140581123461559968651437418662974844693688381349983308269844778463012940186835938410992901462510021296233611106016499663799440320933364341110301515705336446685710545939916823909623764102167071708394854691956328741429231182326499505573652364045026295904508412233464623129961581738456946300767015425836785092308562504719088082615142287971183450326610123844721426103070752903249199322155728996565059204384969973017578405593353879998766359632442800127230549392386292651216005299415222148300869256790587929880107207118394871904885865648052920619376755746144324076972119191500532226464468665161250920347539028977360270477276689193141129455098409678703131527366965975216915444511599105279786984307372729492244775468954801039496603285754199487782410214926820192029800908603880993006124735518218390381269177659939794590736338789075683837925154629371199957321323854817722910508129410515879830818296047995163131270261906272751009867860001234923987555196559538427686748188934255021735754045551725444283892009407572714842556489726098627624322692442921830571142771488665831097264161035807215419727198396704648683592936668059649879825848406945469232604422336324718558245310249008105198808692770348231140643520731966999560909498090039528907143244155278118022271052312061269749639265777696748701616397076971337234565698656039018046359400541772810467266085328614244221562650803605024720561887770580102672084915027579026302000247923266667070547635890222723213660510836759579750171595051311582691747290455155677621832535827223876448820028498944983916577223049425825292489710445014859517512445499017281750572670414356455972376080364878517059780936751099691388895360848709433223401347547595656530703841485924496536293163425850621089558429691056856637147450522854607413746789766032305411727999526072447099180290717259982615489182784526164992191932319679008076579955064680280596717295971959156157527650099762925570267002759191103418314031142474773676895723697210645464221307900230442363235180554415916501162602478198654462396683625693788237317774687523156347607664970662392014916381450569340900995661407072926143217492296777997039904525436966048164258766992764600634170245711696001244290794783291805471438491261536428799974621434931061252891261933184527341664691741593301770919839072466269250002813301323371967725077019071245177870989902363737112647024368319424906365265919266699725933439423556651910380489207922154461874836115717302477310665933228975547172772397936067452836009155435932264645587758446481008124696305512335301349016526578803088493715036622929730092690112135007398969380167466754165988577841808969198393166596254645373672489629161685859812595696975023228560206927787394812031230656258457133610784742398245774302573613647490959813272026900449486411412553986561499065802899646878680630161470512549713594265760179198326714290480954994396018403073427109157738814623977098976908904210457753848931526320011804812804360030299637124332427693022180550807736947767092515523221139662086423078322342566349958942132306248083832266121085766241522175613707155436093043330795273647521278244522751804636738963721614853987291460055095551510967020496091353616103343993965401612733447888671712586352454423521481139237449329576944208651859698605063572910131900912138651202312495046920208899371369156461166333907861508421836152079928138324315668535255273720930120343406392931147610425436766413500678121724417618280320528307004479489918010346499029038043738980984217604486485510892078936242971820627650940245281165518116451367495137092043379128703382269255131179019108981216643892134873675196345892907507086859031139586655290815818462079260008786080757876392083300993173248203115794544579597694647127238518699225310430660631226141711272801074012116558993903326141550981776776071960216899192635251494115276035323368887565090771449165363201611868470212100334495736487457431475674430109187478124980189856916392113901206835655504892139358382752666031599574614627267038386210883196794786613824446983691384857556838210043072265803544536560002808891591112737373991943505502755098895401611411121945405100718795097474145175222474372050736610672214574252266307933595716764552663581707187596116681704902199535338976290547494225916668054652632250613828555426419888247408905128326993544327910708425098191323427538913491516427223669567149326534907817064071825664481348532415697059224977047283934513996214242453215269152453020242850170111440960887224211581898335797796216679553634734597870229896999651970511135244753455652095781273515972239510906577194943197827439177239012267499101519970108978064138467450450041919406431127219013801625464352043358170897330388177979445426685295377762455990615108638558702348865801061187083668121489982208844121922965916345042662836244742446547311278668323456145451708504679091770396826391205053601008313090185115112288155223885855826572455699458641124272428219281417586964935928495092963122078955817789267934501800585251482096622580687550548550213723699597856139488556741824573577144799191590408672506840979999553888875081214865182063242408949203802000919134337038490400121062743786837241300207193830144108457287946670816903022824449069591627485520151047979151669887261635418043904941451976990391493192209872336329439689633680673128341923837938851423483716236140363854786408400323796478554197076060292179244345606193966854153376029579490411198833852554072679838761516806611740510522045598369666700372880923249948669133100057267425976180158750984655849470054537169974868525084673617104251056958446756505957242927740999965500234677323938486189627184234223172951792332986127712110963925779099049555964672081565902836194383315320270728597326624805456002222894579022313618981667662459510135566467627517121243620362561703817360873328350246870215351627733451302494675394526078332205654816754019080833936465640319176825507772124656296600474921152839041306580576665206103932959929436933644778610684969175590840339385648096594322149353912234138939498704298454089167470630161039370962129513684649743096792868171462017102285612109777045602630797083278791832337085637646986331162337830692337533170524053521080892399104100519174050437861126525322852120892415006592260919259546858338535685463464485641761308350181649929652010056531466549126865094871989433675313089283998775555594478948454170068989685480379969037674763176717535049846131769999667033478849128141944226207338788116747896898909430691038304398843962521095403246741797584377559539529159218516439785346191853513021558395880956341888772277018258502163932871851632524489745688681471160862737160709992409765337026563646747843628029483241242947603732940310659689837198604886579632681827651111177124126308320861924839960463511589122893852136425687429195436058402161782582073260877923900430863053223483403764078613133502478369133108895321091205270603120630529272765411843147680093364668103230697403968829029459944491639438164352314456937450805625934661834377032062027056153528329724048186359095734565524306060555473846291988647230303386473475694964312263403197399761128991778120393029489450585578151201186422721546022049787849752991676827176966132024353125240038122711193368368276963273265030269761683128122076463515685516358939696670130582630473963594055189581581937368445718091074074583108872620600329919663781944081913677116638681094141438211027388830906727384132586194319206702310200024420832775237632466571373750594602302306859127965691287506390972151696275725152937866091881122789776785359376874139985901763958194379960647888129812360482419410296169628707804525862159000812167103621126694546122966743546951673390082176680136905056668665290808871736019235568847217502140621738110366823691947655119693274505876841979306323616246235458115481273490097546483986960766411968637094549252460972402749251609358946447012210913362358516799230876106481891494799270050827080929450960991791828531176601847764560981079749752353997174036788615111706611786209596319892707675499213035514853430293683849059697215229884780517128969672039965543919088562380404706486318254793358615765488337806267363775880580491202521383386911159252409437731192497608382957337443107140373822192947511929388334104580852583371447667099472758039922902769922088816546978995843949797333414106722619593466059454046161555164552981368771106240205191490230156113641441752978623326536553585879527342859076819981678885115064675840502711446629806914407371246643490874637316910810099163755935884060162928772264956313798631980953185710436756999757276153502593818036931263416061039578798093575853768348769988943073373529632920037861166857237957200751351766999668719918359968317808773051032684110606880771418952465191619535217498799565912403462567897130775995170491997816242684407765754318437552502866540254986640833533979536585614836398482606902360886618371970720472582994736579605069350057182230063014602222686316974243803061373506479018376858786275100501753317832155566525107184739049180916462412229809135629989983276603997754564918696815914348107631921708578060980494654263723649628616881582583467280781463794809501882589455641068184860194949177059202158317602077792172522986713367292138177961270553591100365846192126859177846034480432573209751846863571745076424444083662005683070370313412581444414187404092548940353601186116350410466280923462573854895175776676764950529303293225401183082485070905456038659191793584100674601110723967105805630002437276424149025247312816724905501774097458079834453975312473207079184609458347904081587446342252489829271376736308831864626391266207648754824455158138876697608632402339065493929672512502297277336253010794810210224479172648203878757336045549856832009253933701919742750758095154011582373223069673927140853026515540553522153676550591659012148522456830995633063106553002619683626752528198653605054097290935001236010119828922221637040969453878398798745967628566463342312345794968308150069226089926294838532682176301075224043383105485288274549913104713609297712873388756298035931191601460620988770417478231886235308636613690105467977059831292359900115350192381050363819895503381354931706737360662730517188114392544370454089647555158000788037455015442586253353427692656336646873440743249562396172510290683579566628669690037938560386439250909112571782330988971448760772422679055757644755446877682357366213240114215267657613782471241748141109927089300935481522194437159460890116453088384862123926924193254057137585040425879325472596721707071513913241406261825995786083734233093219323714276707650609211922386506525531774949507412835458774118924788436503603998367852149448808706263529314220009884207823670309322443052250066809551120669644514822728872676841777860290987995815874358857035270939983399661685182893015068440711642947379171497296203086132105112430350800999545485562475167705814484293540864447368386469669964647116943410334705037553072805854712610190396382985949421501650751143004333443280654524429103453493401034454314123869863570974842874157836210112357885455838313396778033250937391588262033917595650986622477276786275015209381123632588972891423976147918321928608433155101951324127049191755136870684695240823779852225383636847094758322180600662564828006265628926074637652282025940175871061501160829344594885377570935146098687176372243000683030745617483789025288390965263861477522696345126550639194889369057012336222804677278109023903398782597616796068769999087889044259671536209137206955350815969483240885960246485564684909853932767955410975057782224147521300675429601073137233116816095067584873044193151851117388721869197650271038871859963375272238291346854970257912869201866030429586747145753167528535411230241604261573760739048898600142797718515867433382837958986458487613670615501897757502192983056181476855935739208068314689157513344744904230447887396400015523248934003281586216554088420845736370062338281089691362836977080035320696665453358737966903873141597616513536891332299173548965723096744056741720318417621963795217574978977847606006727860339705825941504882027938863022360802687516341685022260818010335496469505242546696071923460018964494072639764896511722667016083834175250550444838479272731964654130495018838477749066560865395993202526719180890376097524207486394086618011686922029949063927826592871338832517390841368756520504139262873599062361610555623804250432935976676108636684418438739715655463243532724895541279108446167594454525666479567335584495008458798116569395523698731987481174211688698182127742851489081382174818535540164828780297582190954202922332918004923930778641763115676725981138241577034498208195036580252160094944635979442190303102151775257192991841170828417327509518921645269448549472876656956588855459900438808943549073297594388661434653950980113697917538303502811900319656288211071956878958164522759146944055608936403766373897452261256973023270169580935867177034909768158536910208812767392581275842887800818626513925717057334528717873197202684467292513039832168730072082111940216801474176813019298981578038039087610563863220609454670170404285897947326259825459212577317474512763793944459245313049111966053986037968765442018373993175603867541526824968318569942318450589386966759058747417259075497854297333582727574295755861884094074349097865016285510629864286006773684321820903151427213838993937465750727815240345519750040073816441402289944679285519200725438665949380776006884818004012870477121959915794061617510177645760791636470196678879932193565491229183187566981028521943545304886468717106043471449732368709837207945990757175876797454024751958831203340112035575316682277390879277582754418495289774785218420023723224398491605109957780849170340212469779113892499419549883580940995273134197653879067395017338900958327427552354748064296485161153057806382148024511017662765416468087052814263935272481462334197229216035993242853731008269836230349908797047533731966635353772892741091789884164579727420728535259370586522350409751413575962977393567570634437687563296583850229039706924651453544548101678062192971749566321198836875932294433318761363182568231415118165585362539195591986051823993634350181973755052794280937850374015573282243456185756683574011587196758623384714970074834071314913045559046524524735323165307806397656642993680758740627941832597405999066035970652230578740981644891898231225012347936738414175086202668755557876095074263739977309968986143014701641542282663746296345418985884773350682003859205383397027267380566397279457942113493436619648443066421828055464862763537263676320558613145413639162994998885028108458196708655127910775199527017008418418474696115830352363446644826468058753022316529778543501764049354683957574185344430005323362328570756861412241770578756623896721381149467829347875418746592590069882151696506333048239593570842152066006893067035988208993207189178147911491257135579761729014007282738898693857800436440190888296189563755490470297377108419673011231290960674748843102690837953637346327461244365482135749330297160055304206279391593991301333314164205465279060323522596539233999614103633539543533310775092451026615074611065061158245733774514761317261034423303535907074820204039343790034251543319269903503929487429071842151217757548876058468733995418835269074534563899577678486656411033196801795215330283023759968703585653280790499684209468771282950003026903046342019556839120480620386404255810715658122102823782462474912758939773314393283791437870117730357418089771971230725885505796356717267045361975651302319246087193688952849313564043614332656796159191852804163598784758159937769797852785895263575879857728814242078277459005967805080514926964957929094788907324656812215356111524747281018980286966869418646571932503694377775542278295663705800428511536391155156789697920841035333612689658024132465313760426139166605042700453956706759593880028910892708827223872339421380020785602219489839377418708895551517301302388554692701358442590990105111708773594389010714695379242422065897554433206073767142565093363729414753838046923360349965515905994478941452493431902886919418222447827644358658262365186424901348864020323794158360701583797239969383931078425531499472997644427610539446310924602875041052353975589876050395285102244942829370229932887800659326596936162179827075831776496437079886599705346127274981918168741284386085436952948422410241645791824558156921060353124143156560095485131022489157025405356154043057073282157976854764944697122804876181866019785575326415807550939880039337247656322170921217749326468309872722617156982789775644115108814546374268000693816428110142988532573321209235364240396838661024157920521983045524167826681833565142266354208061671872543216034421503504647278884293721307939609962995314446950349837562857710380570992437557087010616584635701688977780208075180300018762114091814297278473710805981882576250549958926112787270617886474778076752593048279348183710730430111218284065732396703024766707352301366406464740205379854961981716422667845464302034759519768768731636710682360719266238733313326923562415231658928965257025372105444414175011116054917447806259760169776428082465845443815412651748306459105072487860993454893798902015603322510414784259079933055591103896894693732063430525849151888840604940962484625476967690222320452417389404544465919492538250690746675325019436024609027898831969173463275857540041453326343618104053508482063898691496900829003671804092702532676679460484291361967673798036299068153502958081006550786101943013766163374871630978280567790673699493583109603640066412426079098786797485753807198951478797570362119068458562711299916939409131614558420547456880551086988121020478685676533629194974517501265039745592596546943269589567739528873501844647314583292604144318109217642515311313952210980031519814437982395542081954971630167945247931028871065831693207551250175747564098015110035123084850610097710369147486970330629059381066836714856401942985707331412323159066363586186943554863219889128963720640614107828215206449250413551988914227165651664293083389161334313339137357448284781128883324115865080604421103872505025494948032580089939408465534758077569363504216042121587286298486548284910136218454120767408145236146087637248699500126726875544339157281176239683841689414208337159928095652475886510661746559893326281124399871851625697466005920919482719051694662097012339543580947215110938357690087614402714938988550730869881244510154793569515944105062281548852214068596766632807123425634371749627128398457409130146082985598179179834419205343807219069139402723924221313974416201476790198508303658142795402604863723468070175396298031772247427689656292843566378089404626897471494358749703153678874849253741215451448067756969013455609566482382656806138243950433385691812677086899804795141659290711549277047289873006147674944542226439628896815968625605475230289445421869391894087561601249995670934891917024872869279090851450831971993652672025561078232211272331249497348310552134559447051912018791855722410117218372902560215605620395038427761996574316030430183741545665836945034670155326149764749354245606811852572303068851344153332153669940830678297057638847809025309016368327829914389253279287312710249504119224595289129274800310720946651272132525263333103584971842979265229442383161084313283963246238888887067137800696922219692685420844638679356884010103501714916464933251244237652666226087740655310763357363091785516937996251959007132171083821163208096996661446986109710628116839303547271097944446152794626443171271683648389840245023266457329434622012893074949356299255734733063289126548561466985899017732473606768455629013878390910464288440588007988306273493595342747304352416073889011681899726966655520042406929513693413343233001896929357698777184230139683728680120890066557302719181289562023007136550264669154629493611921299623055713441175561616103278689265102213405296637673518538612889775992113967727537383405071429952051333197707202597381344576431559017694008853722998846317342037256902057792851339206449378612568532939643551171724046483231612808363396494850228382478591686025299262669275949118998678380727940765122752879256554912111701688460739932596649941791396961255249364219900758800711110146372902897899002703874792239523213722282387892716160486513964455024252364430735609139419997202157634121866280935749446236938718227424017104693668171806961521429247295912394285357546865286157530292895612758914655228250105596644157382472358582481269573468617878569731221215852951632077088126967852959029669213152212445320084817351999283136686099582043934126089632670376509567530687385170004769089663209099260221585358701292497464875963703642326144014014891669508780363302086754141730062166889568655900198620371047563686810520461835232273594241183331843520340608509621767309253680501843651901031989426277247280555530632880044079193194440877225208157537292504629474978071325592462650462192804585081848726717574492742055599274985241996329773054295760091616894039313292599403017373291747656973072080346006003649218257292331485156055774552305607899394308492982571405751737567256630376893614224776037035309146199898292084339377142058119692186322259020154142394084446792590249462574577386242470751013056353269497492192540466698824734104822198323269611345309730081331648631142874195423425206123536650977569035632740472723970537649850203127751704761266004414780232754381378660270891937300561023012572382945603372937359833729311124899182615111374356997594521499554139340165355627078857545069424901353667739851411568573526200484291970922230591931923441004029163104288849639411060954115169355628398505005100906151224670825068885829515005009867527208993510203785083590685199964117238575957502992760865262342250189857198275357575493886696343120826921277621022912512318003862300682458947862420982902902048933026566564391610670523662878372257091802092667492282359861161002547440865540121170809161408591282581774043445896168894209029282172372492623355677573161671573702593043088338802030504859863901876827291795601921505461529454605246057586665192775691076830013807364752711751112742637923432517694818315622405550683124590920568637080673171797728836423640820106256159422640267373124647039259751145652787993492699104816461430892115319792771664597858858395074466813838451808334818621172409094276212711153169893085838079869197078279168865713995836764857034163081154628034123577272637241811830426307950567463565191631149217596293659966812962329839274167726396744029853064810340023247531082335556617906875601724315096926169869230062699701677055144105129364238098972279765471060208350906938542236773046700239374041476710145263066216848405610436401190014119787251830419717766877070730390133726164146980097528888377300158431695932080145586430017394140594589347252437426527299547275782479928601203528863908600928223560603586540817366308238009188959944548338416308422114467932676207526364440672467417951429660516875577170663896928146050660827261432827255469175868652791833548726737453166120285260025831606942474696580792123226538981273103633412979843838620069370736269643423990552687082595347324569499563732996320812377603448738080215523119668911449183575609227646908240111204387714137746384467648230007160347019176208508760762403890559830248252616644978271693301393748181685503900587341057181090871437768384545088238389175225333177843617387185876581832232890719811806266519709638515895985124385859804649997557865013237125130618250065244323796655696099876580632801914764330801749805605554648088290951232233974945699373393383303138467646812270919505225145751312651589616673894368838081684818415180891664009729554121633767841612966037065213227734162838284359598507232003157133892793499268842320949148197358396232905429848714566001211975069057276284392999545021459615549196593569322053879298970023959640169532519624166954772174483174268561861332467587688302437118233037876739606266398954889484895055251275412059413785411958975034299440963349916496030916995553861299155585897748555335692463447459062828282372748688357954928294454977602260766565044090715667526221207211632697704074435632715158982100553421908672716180339235119674818766737453383719870241285604464162685675113972884092447409175890788705727473269659951473750532783905543040288914816869940147036015394601942278502795099137053765759776973469932302361544566991075399808071402431318524690492207510295871865761443536288792715946473233369144536880348234203696269517678882421918679586614330482586585247266568167002756721228677527768321502117928578025646082527163879108792894263695152515003821847868917532843040265530269930450876886923124392271153196729069451807902975972188215693372770221959568428512936946130632413585163351095805098947276723536106412213919572722975305367283869804647108040062796553651921247700489043870698436582388228628612330422653109084860954599953219494518582559692023961940089389398633961310635189677264627000660939333932310061722752483689071997868051609330327369251045415996242986674907105450176488316033562604000182830751025543609608243432531464470470860325686968823793373251934427132215328049063425999044494294153786646186085371647481140513810556071515344047079915224427144499942255407501581091911890153348101714245198223535602033540509511499795901038292577690722342632489756306489854914063652383706927462430057947107583838652191677468969480029832363356944732399051856408045114534504818548524573721044802342885955932429534434529575371539351464011369938073701432982865317611088489496766734996869238989384893467484030020416722228235954767018191963291412932268918571510055661759346726134955076662277185437819294698671339280541833950832108497831634379345247204601465471514214818300643926407592759698034395365554475532422032698339828189433671218686458794873312178463202473351542858244117691371115978987767808738827915383818590361174657303271106451562989252979201819141787864670031050377042612200213811397327725151544692089465843298334627850990320053980419705438841809307894234716127719233236195020764738127623789162587778357830458112772626881592206889402633415855987107909739243156403811789720596228976439959167302632483519676350512704876388635465612867161788900289437469752931477721817158211588460794815631272971196577648712808159388436847743219511352352464635683965284342186337357172087169493133150427227272995931576865205978885940052155413036480302643338540631075713811150065691622843406454476953872307896190781002733915473510610653139084960658990616945988157556821679484740954285993945960541967847667610039338842186449176436207606387712659226817368346717505771046065374952539101462289958536195515167463655633276198041346911547012623018716088447255736830775264990177390618797576066632215470173574893887966745276597847304694321331721119067426306207073269739792712663861239601722648585329537608186984909008695950132282324750346523431679769267410110448641072492658765912526260228870731843040811845137023691552641583560965604995368140100164470130888961049983011412664555640514552908366779526204163671207006909563207029780654874465654574772291430013670400395213512457175655282916831872410166217046087774691725102648401987583864192300800270120162422207222758756672145668329351145737570134635440118347293335525039852572080768444630219062081308779623334329248187043683540508755261660164711075707972475821781538444121791236934478196653225910558548122017335779088141845790877527952881434911987111613897878684285352682127897658180025751984197913159322733763299178790919060280680426534698826910202608943353048484428283304344717209343980837960715018268664255029235441240429269931399179784739155426882180236605111170480821764628436696278577410645001651440101462635712133633367343876505898282010866607419966117845957097269942540618333946870005488283582847685103830589950344760046244817810930324381469107670808598808263835315023593412028543915576819085148008347543407050490680123863318739134344933915855468276128530078373864476921475127046243427242271202565610850932305163775915889380315545104695299047473999651735685968425232145307957623037644383841244165414374972854989145772481971690083928450319062611257221692978710329178934654665672755550167079765024741781469555446420339002493109324368510452093149800425278909085329349476460726885594482686360420598931017057802436154147726904678812946011770421927216012382215408912072039652629164979771272491775175727288112434480635403269740737354888079276293718421863974781651161789450320374645541490562499558091637543321096017401807374482746454988063442731429201327919131043420874579022141094945866015173373792582065474348071423642262594684791983036455148069281980714735212620437992309845450588343206245056984125880670452858320990373234986315779961717383271383678976851886977879205364139374283587038787321768763911599460873560109070968751499461518530934171412781349420674491410160180338252497712548590892582575249842511842106546671114877284365199122399181038622991965036121014495117934731286169591904918504917277634381001070703440772413743229867257062132842250690902137732268873174740190275225097245127806273200904469851694542597351146693537376512946397694138177081740854021774078960960691032454637361555461503052132768007234260432009185171302940075717689628163789009376399431616011654073551579531989995354391502375653514391479466021617572272301492623791704348573536765563802785369959469064607891113518521569275101814575849356871033685192333966492489723711243904822172321101032820718802084703274433133899120205057842997152423152162290377132224111652723786443737939026422805108950616915183977087587229718206223867784619350030216633034746284925272033088798109712547009451396823232747118500186644316269059424064833355367261677629739049725938224222940782294374692427233029217288640702616005955316844118374086389079437465155049742440776633651176585848830026556240625237321932724117584192420743229463580268327072674415090975446235614504351665825524392174390273117989429220166429262559467048279430810425708122157633932540007523994270919493968961636498902303889206752668031097999907621609832759279650267898856368297551308221384074321710897309917182717575969685905436042273034517162334240147083980057649033222640355940436273872148222714670078636609142587003362438935221396686328639172385860168645803991181497694359213003127952915382840157770804459057370528303163626730347621843268652569227344583904548911664109174384482404137045477464593091565332095801010995635354463077750834419799410967761116149462363324750887134592548039292535699001760195599474218931867909233340693517325370692138440790787164833483624369876976780293021621448277336880482534457945481931749265379743425616483948779869840569389288087719908436778665278242160665329270033977307915893591258396290875397560640149075754255398090967463381618012369210528263355192931049293933163275050276164492496313799005792804611707942716492049446077328916728615081842517760067415231395049582279962516611967389121449080494554999366542569874854147142044710512560752220904614487960526108262244811306281777285084248773052530303284449227362710435522557420254227659199501309716920018736669519981465269652050899083457225297405196077041085115668499239174194653309061209934598229562960745285411911552881553311169249483546472262606707597922514976472117524316703639256061977169002541244442111216981167668009789601156675595720990033293859519657770376791873001253190699183626676796327147799879205784794573466931741053815479090635341270528534295540456515191758506609611421893384779536775050139066118826491844103080873749737252576845875277918115213077834325295112848615630931007900877608461514525605106657062831511608330382097595394433977323948963921069766236922518643810369203908319534793370402490967286510161838580773453053557566439782549343588942529047371260241386084651031806498975880733370406011137749886593860265452805950347058575175609165750207360012316279676044686075879488537333784057906968932907037226625889252756258975705524012001550013585718102481950406981871041476052649399942529954074810874626528914886747617860721344561004861172788394592390368877865950120603794994263109227386552026624041579736245672592974558757553752668578967883671971196181354911312222488927656411336272707046883931197683307391827052550521169061044920921509123943034761663179224287872498168257037722926344637760227509904193674225015203752401734294893202162097718474651067598043370879093021116858120156616314960768588293938151230341861781512340165984489031174312684835954789274983661677293869139421890126176762952373123548083385347136743289461794465854870912154635890000355434242214424840263495506445686524233209069135829823490851691607301406410258670538404504939338691246763484457324942616851717887195279929473094200093322546788528054217373252686430444734481854693885915170524290184293904228345241443931600289846913720460609731017329843521589042824398631941083997483734556831216562539301668081464783267758158101321224430075862367853877048295535615165242675723927656815571005213630378962989586256856568090998312657133082703801096980870441568836797763662997821510514204933954590922027611603153702149440052855186131713976939390324635351706616773515989056227413948660900572151488880042972129227631145080286200681959350131583866528118041332388856019461170888963660975605910106396872658183831806523601807148565638235093748511292895904524015222384174379254306720614256550783337967049676935854697529110350177557682843039909163490237139228669217498301135476006238210947393770510722384640321647606314560433041664072825272880186202112562560157937390552615628938729356602530740622750930555233805481449563458433010969426047509230906924101493989523339915335523209255867248505352652095763335856253652678801703657732423509725641433234114302946557848980806033777736344493911572217525934875073142364573869418296851612731642807646269229781989153105929590462389278224434128719599247482852942437620855255603771896079703783814958810591774525488535838995711000973082960092521834339360144090489452387887571045198477984697888702371945929509677296766956573786961307228760468655235538351622518810679657850370950904559038753057291854211470530727898686959657292246163865444033196689274038053880439800524517287403062688837132512122906076067497924892997041137079612847147826306324961251089784111670115909916593971413383714542630839451374758495936944072512370083026808768026729770332331701143233156562247861255633953271366239946040340755886679101269657666682816974475871023028508300435319310520055537158920605003510812338035627592540905123011313754561904955216768829216049659203807916853393199075483931843549651196429612514232229655693364279032546418868504806491826823911773409918687421695303314726559135484634297191909870057207772183723235296387355204352950472807042921803307286698097595323464606703213393703093695718410577017385347746787264168353487557848822476912085722335193648897893879276065408064073093561831945925844617236122953832908751465075280908226222554557090141218334743030191653062755292318113852490204357176418941925003332234501590435885036205692456965800884475261930272353792129877266228855493775215384047528233170995866986499226965834368094011775092706529320207015544761401965880393586539819853583215663183440492709388193558839219067041681567223021065434686889408263101015249666621201466994311531823150539436565959009588847980975924718608288057991931937992906404203582845780811925743025276044100689047180979043358343041355711828273847455900084315391738807567215687722704042065724262577384918413692083513544302634416663955508579671498060337286863411830783092926268897583514270839478524578230007461872080797816975511922049733144183333733601669435318159846861800518407155815857169511550554454762669780071051842156200050282417689768055741397316842111327313322163371211519459347106083043481406509994745248170927755590123814120471683820131450152788054248774362784602774246862227751551027368603642039723271439249594302339985071224233769840806054877411986820395914654576463589284549761937861309749403456964331448432510863084809137624079704507915728924296443765977991758635201542566893281624678285393925072495225473994304289247611271860191031382399470179416754952780860158156452318314795473898206573265985710430884806566169213334860601777292642063985180015272415163981848991065672534035162222925520321445110141577521548758673544485863677310083546779365713928008928439577716964289695668371781561605670736466364808422918141668882439152495645348322877353991693133991886315933621026407703748679520461839884668656589407351694086594000388993466232303680845440640864712565951717542604892317235972620222262517744999339794401160997000030972850349425682581808490881498678303668227750639184719937119787640363085305535821387319333027359482077118680686447943646690457474998814707939709420296027177215943767725709622570748431861805779821660347362866783970801185196499792646040435116581675313418426307981746466812998321193882357123653225680032804495036823896246666225934414948505347555737588999548255687932547773932594371472037508476802555089713199409929558955461082140449419116906378070720911479909039173832250824704079707263010269464514526115210296720685488353782209095699191100825540843186579373092334060291428326467025912804529542042994315468623221869858181648772021924163172391457151441137330114829546357599358649738689710707756391780802509475942497766554707708159659976258714680213179666586616052042182218950542240820227773986062685014491550430538921540258542280377761810363391252065559809744188196057769376975554333439682267746917965688988677864934993911802922659881562605023443772878242000574638144308246227798593139061655282598681807270099457882089323727408820984193118288490038088515714064167218146303433861378023435547942231234913935858892303167950434187295708923577783716548425499231331502218205236721495464941973277287527526843052571131640331569640972602578460077356281930489406398291224657956477940209022887576045506948237026447864479732055011495568056247986170359349425590733806773172747263401860219360209642549048935747941730026511736256203502436524342619756402139971384318324545184095122554194688297210090120756635460307926698138841874104171909588288049367377601196507034746135398172918801485076199775930702188695414190974898194829052198731470000191345520473248073753898357143033247883962206104626102968561519721693388113109360735028984419983907873275745116891152037361205549719408957992470653650796954258735643383657533763024649787929698845959343853626888499917624746447249250286973863217711413319260655262358608902139957998321873200477843651879335399940934837946315641356910986704342257600603544410770551855280925036062965169205621062001627300676781156372212033284804305199000579271217581060701721725066699163366882283509719580185530787479363145171502658918911354317538891539245661267074364146135778784358634463282973477878826265161511473096008074644825507966799971803122868938712880163719897796862322216788964531703864996768334694532136898185909676747527560250000912464363162294239220526452506352157001167804824414791008031294532228738711627252404995145070369934216690467425478348023696052573013079332857420408439268848799618245682767812306909702953055511713087318517181128857630387153871123227776098852660885672251523174560527538842860961985141104982508897475156534891619724464151488419553679898136040799679912399166408041568551006607204198308693916489320341313398103100542123999548302542836559550618298732974007891035379732667015572651839668428364572110764470981323445983192569967843825384583338219786585289830341792989914365716384614186134128247247232937861571206235224480444441343734223310726940088677423668221642208280442188853277552921595825068388747410927193894645291791493847205268242128880971697219456028163842708776127860419869800989002555526907257689435550142193043208293724527783125543554993998717039733089103410831315612088677330974862340501307596596257852565644255570276584234363755948168166156125027593201592628298734090986573274496137651763502943468774789352890029793130141544753582907003057772251038305081420844370761175018674701028157409306308958102950825505220962814045509018606732527764762438962336310432221568583821156035918389784004682598581060344212374494973899688279880371943821367083110426921808786942985042357059393772293332915469344787831962835245437904031926092327908257158987849250451892526926263921063722123023245542916664040329410021836336518281792637980644539419218826716035149463064430667284787520428838362535743896593615849743885664590621067215980217324350435598911332472915903557460839360596495051728458744007264211130530771519026768929875695659218665086852047305545115314964985557504101622059457481560498825363350997691263031595076510210968921710948714087314826249741430560224000230153954742874190136766197393664476702517408035040524823646510785608774479469526081532209057797296896487016285956152608241940727785634453363129903560670033612775192170975781032135552876340833249349092009630329292229964960956884756935363835346662777659573080697982303123044498845804315716956857102563363426187450683033654218896050326038314061686213897110467446686062300370342721148232535882138728313961410535265231838159090966522503055013076855308880337312839784231845085686555521718371761316319784346107897231878339252966194938005859305585061037585329847360871690972717998743126348727296603973657662612581116262400994254708186816502528487388644427507102143442456141436787714406659830455711511231367569947825130754653795036965076974792393085465048025397059032067135550616848475677838384173568683312585848384340670962943157825787952572408919528493804877450444633812234935420652641527408554626419830439703480957413718356587783983713422149449392655114085299382686296114521096207111281896155739697598714339825668641390526768138577907368358698487140625535864755827674537272491243223274481081429489145190214821730707525191117087855657684403975661366079675564585980854770066466137771756899488917611321300061105746827079659887764026241961228860006052800994116228998130895819372913676271746479096144546418069750617730786775632130102819219923760496735742135020505294946652726034151249961345370805043029285999727716659082616085312414569690078323098471718948665187089289059133091186026930163020307741561182983413564199302199679874496448312356956411610408264991249036296814583000170446750827145560583296391819879911842723109158947147031328063016610902937782685692078989947267197275655035008704836322683050363443927383857331044278336016603203846649122824662616092486450200282030725827443445402525870500336622808091772627528054845798198794325661834549522240286215635072699873485041876759264324579144698271025858397695141184412541620344738408961716383091507749140508759358590319806704898213084690279528680522939243274295727685167192365193337107447095031406680440753347145152796705321107805587175057104780609367721823823811062931005495927016674499820131744454672159160601649588681574619293122898247276743849901931286167873390617923981336304543049190889476361887061783513211087078494004933344874876346269463031260358472914292918049359348620039416460918289362856829632430141023820735852585503986604344533266838777155966721212840166301755428291722123551088747680945352355639579562997424698673245612465450702551514873162325714203081499514953101884863412881613444553633470340069783190633469968229457257193183138528915446739873554233558637206652152401558153072350328307260608752681240364544531623003788210187577638287695426194574996913364350365375249905761244465041450101139967929347583294466604492492441746679291647543963917244802528977809688467031166014235036493446050193288079993555597706500122283429107729405703470446185955385237168298160515393131184073203570608626885082085850813053654457814221143990067977903020643278515479017632371335464509516037490942848416004721657191653882056606670679654582977716349703954340065304445779567279455310299603227927159318596802389168890516236347369975643393550783300510208713594384168380982960903492876238380927907240639258831238338565204650918622809030045621362796693696450225442781731165508769196285739783784595002209882072694722146161612905858792961802029565954224034695545882552013345851573217647323633858365974203870711643900584591077884359483440948528131009152196963345113132725369963523558366992184884186191477589209479723305649594089246853573696235939255124173034018594931694948111373957039043006791331190697599792721425394455708619756078726818798069006003426778493231234099445655918453882607967926900136569986252408770326719865774577029132235495015440600876306502174386784057113253591559465024751028385176785778383130092384114311553022435858162100488989572638296926886499999066333828582115988440469418060401579364306242099458487069683733798313016446059452938889848438297119032720218277584351620134446160225546631805068139977306771785071629000886520338881503659292135299478301541296159582479556297288058103631447022960833769704891708549859148982574592303770321840621601155353088845566836234623151672136501267971412878439193616399820332060061950263825198274689479115710773402089214598812600920796953626179872390559045284739914439706256454862000814121937771926230907500087590222695452210497243683812276305010564248102247274860021579400261554933752237463056778612486948551459851466192126457843841840610839632286528417141634675691770990109162618531151942502292412710562035827078206423367024848728588535022386284729660775127094360952144220234545759910069939055129815965848984418218362274921907925287295232085846613396768047373612598420492581687252040541098821313826220698470202517804811362395115871529194338309770261380554611594286363376132915142388174129925336883090242681218828130334579077916271429394690044183570458121502555437608046332079994099840181149519089637983418386898901667917256187219290683796077158617937794261270005135487499475974053661782629799276513314206124135035895948016319734187517787460849515192929550184020648928686478884236269204533440420115393663634918466679324304602221634931391182710732101702460487261713321853046442949687780851321711074875253766420539665479290980677376211673604857289103517258808933538094997028152297004917185443244985631812276733911789114846750740807131699008978460346391451305899779396518343755422475138193079983115565730829247749683354507517809768800149138913863052254776241691390389554022256503564431114395956555060786643647828300788182405429411443448181975084235886101706532022326953487472812562792107526353544551518852860306436357813152957653790169422449761608343554789276948989826085210705226751823075964401809766037325058653272587093413620622264009421406995797659663679934335892503647611149827158467511420090192769584228310679321761266223912360000210921056362627573469186193824501021995750550015841283590023018742097884717030487147253257673281417859503751505664597088656649165017046832579300859446342652658219319336807055799908434942148054377571133133089864508583356060515116511949262971032041161804411649172098572087871516228243016862802968898750317364806999332588451343157675749357726222724277187231423285873341653539467797530541973935895907430094835496920414473854757916304696357322949363165920282891004684757846881482421333879091312300892627521181715411952546528179712134411276555756439585752127907615641385827133834685832358659921330933649428411541001025843625720057029467990464032767679671443050581900400986601906294596222475228244518475854641550823376690766043054919746638654144085730604708147034715024368984986896904084878321090707260014899662169327555119323667896641837840749478204465395492531072803984779039259814097341402118274128115208955281411909727973560264198805089478881106274498620036288802370436030704501536708405381137386839454764974129620158316081200670444606619516751118294536438983109487021094367739960323531105180714625578695536491911574715080555987207009385228194936651357812398998710958160558423113540610324577190754635168999793491886256356171816314451548433848681543503855521208920292510614760432671949873006630834063769830891726574396757820382776149443593005428408558564154115971575402375913278624440296696408809072569898867014434749383025687650387754766021626318008529183887570645864085215720581259845017291871591883552856230901037290013102141846313360604377067540245887754624543567280318291648363016480521276521429253444394080476866665897485236966324244627447524830016451327060255065693393939236010503537139530982591836128858438451374563370655775042999548110130085763348075515476115703358683841485489959361781146657037162110094925952363720012778079916755237835665876156762237721935528944992971472159318899808672588686762463552700522958927505217572110391660815255636296462512462854434664512506180880807292614512652266421243242674469649459409849877056382153988963563662438436512686260683377742067311767750737986799106822695054756102272429814508207990511494330064308246417379258575917309913366070517919109033272631183591287797865921435913921887051236994311770817415147061157212774294041318922271977297279425965062303808467603330368814337548884183207888149165090037443778980084746800961642154922450296225205640371205836193183730102230293159862273798694392390388764294175275107656955534734853360155405536957329532225804088667039076359370443305156945354962611736042302581620611911589972896465258869808811120236534167974736501295884094972275849961759472296053142558868229023235265970339133784595989557190453294120367095880227078335415094906876470949419519938136281883838704795938959709607916183366551654741552457175539054487015833890478713444772251016742713579534208462426371615264970366331277031008096814112534832689830556070853759239967851716884160631690671357068392215721859244541989425891142754849055130936435723898894558948253094134531971377591016927542952749481499369953181296594680463238972487650923646809163336129199747391920896374663239591422998210560698764490758834303342689893822950466238800772295382205995730789030635049921430484995307530475246550916918743201845719553721846863025040972122141778300084429530637304694541562564122199345257057994207387509080804873378524376079356495155167835363068365249089639756880349847339727091275938521726109791769359249423862340657754608807242105387903058300967049960320101314377096492898424413150520436480326514859996353334697931868299243308080778467838988009696822542699157701035861676009450992814680424810603727049588457435288531255744584680320393905881526131427566205901459643837473140429095379450323903709653211768339704159684588323399392771498183372535996034006781023159846886383182607951959736534354725811038418577902412290508912222720966182931842555464164151030981564709913324765950770015527190431529648215907784552169863795234688182220960552393172106383302905616683747969178285510996031053894119284903336247819806891258249238691187695979838591171621565489802003590980682154743308580251494628628073629085344674861406320037807038915073653284425814752164007572490953334305831680995795767651396121490621635596399597376619317044755284017955648980965181320632713434554529714616007862109712537872676272479387424109580535174060815931378030214313989337232283539179178671128520729830375894258327121605842512333853753838034090850672189053578809468182445390271783973907458495373857304867861698663397719201679217739703298956328300027459471253015066562595379679000265189587669562663429041078580567190383187456976950249281478638632987132234656104167411417969226110711751539849793859915451923011663924486586191466187666723681322562248003090046718040767048299962006253094131957435561274197880919114066380261444244606282608157048213054428355967375175037761472664220909560872536766893985205475202084840270994970262614460312599366201185978593636074609754712718281534018476702197814434664850294052763068794534852899131085913363331851232197064557125635133219724753333749824040158047703783040927714135695678037852567798350547596825102013327104822577466153610744228259118151686933134260181371117781102200794505901645492642032535660241402283841390419463277940626106525257710279862540845062075652356233586147434932098906222967845501441259019637525133205297034982621219764865007247246100730412589896922332557678209241164202546548497670255540368604715673730716786612473508621643982751219365281637448045539180780911547204058180628348027263400837199596590775222007511534586392983318632098051989164661954831665556146933891925491087643616686579306644175750081520469759727805389585142153347956153717156474197246887539107935628285732086923219174787997285698956304508790784595285895042464622460957772638589193813223963391670653864099324034155020923325246997827722482680158812946285172013862253113487560996974766076632061734140908897087164336640261772398324167959341453733945305801088080972332429876014078274650128798766746525791992056816859944243687255578510867393880156267305330079608624369232503015779867939382195921551142585477891276741378918351278221227188697186965317457863116262383606818224204628623219257080873492475113192301862398564940499158560815592222746837819354014968809240660051105842808476835560338529054263723197539355565026241381686298516610788265882672585238625316858490229237564412026221350883397678934029156219697886640964834664379445161500605683545069744253759932403987530204302806273857565413879329524956816653853471759419469452961213064754194055947770450699587404048122882514463235926812143103375491173492507454743833746232802215014415889105657892485590005228734129986497132684880070561349603555837313414771549657494643356059133040623468120359523011903380100354698119391955186327232405616105496138244528596583538264755926082302855955230208651324855797090094062137240160622005160304877056438260874427392903655107751621024798157156427032814668846928826945392525391999262954125590584201097157898618152824980985998480573573222087730772464551859680928247149997599258724376017419481235280884726202788141519717707437112621522228326845552567430912120056057767548432975217866591287612216782607806112638794011791700828316291459338378379182350851607356575359586192955114334204297982320006724552315787635634567335769171461400056293303233918757385555631978761553841604838188946828232407799030149364010282815975476432093899255466407094588671283193286957987259025936639487650527570875569075044225484217123015171290364060357785888407426797490170642168502405397137602677678580624892980012410081054219371911573818291491450909214836457170422530089779620488399054709036050042278987806211973744944986385388509267632638206581324842410620339059882300615849308433245828903326542881797764076779350585385576135317986496667075597779810491283185870514046695674139439884593078885513195483119231410381542750121719601274019921174738544527083237410982250045232002509063855256820665905132171694854113451272027582247575672332936577929241482220619920043791555202546887302784778979986036968746089516279684084652798293808993118105876155593456581639638660506744991821097695744545375087604597199887032347162773542835893376153336194830861098667610813212439225691028862829620154685730921601370738025938907143515389255795197121585418160979493711787456866901182388647587855654365197766769878361936804405879544596498603657918174016502573344186126115745616009853945947473855832537675952037972679344962130192968229002051288430656033640313320432525343248607589026125131071517084150676818028064528024967702719171962956593744400401413958995762591893658699657003360813062837636370298518212853063120056800397132806246387406761517526926982171142604661153126952285790646578471673694812372049350601721225324717894013745250010615277809121934642423154463845437235873725369211447536711770565512918457442807890968426711659652631281248159860862207807571632101919166813972725861996020749636524365621447298783065939516335257468765565799757421498697062703832640622223731729102801670841396941771578728221132395621449250893485126781120394535089546523658097701130954898407688742206865107225491402277730575970176310301278810759352112878915094820984357662217125913475090378746241990554927214624937482631153560600788410690825328870534075474957933965237589402974772586015144198973523142563047057694984305994523026544293015808305289926750749571096661346224270721809979373036485713074334445126258637121229047623043164458580536718021946745645806705349266972825367247263799567647492850661425252468399456271432604973299852737480673477002778778328305561450859562734252048058064334201582843604255270867791148628631868870667657965966344914366115982708018277633289005947407564004035324040023800477959131486854734774147726057393627918787311605564791847416331287249229940819106663531554782938925515053974356113101218670882093590921926319180832028800544984611400949892601344369674485811905665329393718930626089139543100915711550694394802617931683262813846270489538067788379756262503378594534661822022575103177309052285826150967427462295627799418810853077726388352823949365584222890928653920752361531696404189712074246742801719062461111542903339905052995895020756628975505357329525973290487361980521176819065033477568975772212212603543360162585677328197202252376564771239612440217631217070509979308254002431464072022919232042053807186730612585855236042512277433740202570052361452545135335703937733164532659211706332048314432611865837232634380071583460573700656259709759401755346811300008105013728691820898162795234216782632285315438469755264807046097718428090439719054204774215705166415287405449651446446639965803815320120012767586671036457300535685245927406484736272947330474535991447926940898632134166202618286066426640093875308158779163169022524708017884292387712754262105898201751874719232380496625394440788415812482960371551929787573067705393950736776534198787887329409057660199967437124666770558224772787723242172210687296562734584172507008570347879403180244236223493325777739061690146836680104906887865911153659557936352929067925650680304399271102193492148581901727053544825485438976702227795024765307153957419300001456774102722759153643229883953326433100516216019252993428807361896631462123091421277711461467999372720175397261132921002842967521386014437171275518120048970985495121575127311153089393334880642718429218822806115363862792161741129055744264095787036388364081708512819645112796063520935709756919489380046093897867745987767999361100945367818702601588379297385913037561141056782233147660785212939879449455978265229201716269923645182647208908556863624730009756508596829392366543512350402476767385893179888403600585986587441993161688277449401810585936453934972230290441859654878021186555356027303434641301887050441579053690863761705712258111637025181525454888503984566714080604451820304992557963775910587017003222691053473792425559733816595170014982404222220473908226504955890731277150901955930603546509093646573791506009103337677117062236818991148087948073855554857368802074280693940959366536258653076869769961504413426391142911703676748031769707674062599771108870142586949374791118480490898897361803381232740683463917444293815966580761510062092645746851849166930627101253055094169600284223849979392437506091341957955176949903130430316070061825867330742701619617905429742799850424687076999939089882223057493643122632970902839675686786904479417658977215591377658360720856871942775273653532916282125107515955141626052793680150391084839812651681858674246398249442481621986586422931751309482075498477151152378490756558907736942744493788664985126671461194990941786286238937548639411788776140351936424170964326150140966466731391480650648520498874492151613764983615007271177181118777622156896703954519711044614441680056452254048073393367354759192382492973045171526131081419311898467993278068135819624610373212428947123466192780567083894896520193148070762725093680956928584378294881981191893051766285829412058401512686865805380330114725797931427800310081177816253490672441938467682231289628238394735445487017796602537245364484262379385905766826202263967018089680439997379900281217652716475894032635406293234313413687224985603358922513627390970732567944242365803827148210561451787521215641219416728193499433165328609988477083654084113770798541080559936254858288472599133513410029225060206231716820723800222010086551884959603052306602880905145788444414202843889185633967220146798126741236293568743677487808968840748979497309738089421023448938588689044054399971354463090599685147835607662557620499843263561118829034868564997609895997681354601908819816222717268591541704656323072937242327611683959899725366401191608723313475593029158264761296115528243117558714748381257907348928555009540200291946007391859265110735513840975493120829692347169713910211124785912377888046220173014118733048135271144825901875576130630724441191728487607792511990866839762382379427287478313249661441432387047339116884875103510049199568262089549989678376309685022857328467442538670515315430305175422963014224608645373391527443758918449275727800943146341451050893630624904151303730331496001767209660628107261160473646497562309349030395912014654181701011536259305401869096202096459697126937934962428837947682919703001583888150893407146314340316900187357251018179835103342498442030360411240894927223115342359946961521829445567918382076733552557998827545284807579388785642449672336889071080036540725963253192498926256147716928669331083978806411676353301207629108387898410457806965326369465550666120631044487337819466493657640043445910493632304267201125799709822758736141639144240347216443213757768783090774746705143042083325572783368528270876189297738838588162483707344782180342564824286429757792745710302052146202400463761802223900860015864385395852119396433114950008738817259463240240587450734449692541106075655447818177377425974024961394030967566795636021436559743259182220405341504673923988657003059606272100254548468618470133232866847747807177569803124459074327854378722610790290105473408392238235485956000781903244475966757489220829279181813202729359475399481221208983089297794408927627246341386494234232518066489029166006337444568904109648145085883761086655114700136872737878638747318078575207115459142648813029585188364270907508268010911421278643059123276643915964454507675193232568920057905361943395271389339693954399342610718415344754532327696528170151568994182266068730619132606877942015987292470637337525005997397387497863321749890284799010083511908042148194177251933326667222611731248874669181598983935431694133527008924670429459279777422569430144750486783106548949329658213044512975328712488783288967459288904091316697108342043581101868713595187830725189232097004871655255629524080436745680598900249888128077280601173117270490285926967119092171509717032819057707612104155244858022502557131526370975552578724713986369469848372901583867357128690668204356099628818769336603393025393697450310611929655549160638252434369993695460829506844601380151411949718802947961035401701306776293416983222898017715442009114955190482274595185176001141359492267084606346467517741065769017314654881272515931571612205095935136737202630570129621919466446410856297340923150889095262899389478319254103093758325074692127247111384509843950909535553963477976297023552508436742686406578481029295702775694458032828391290620530237429161839868314880671202528465487263147213920572715991454193909612071586633286170281551506471315190653945823857874013725187274667533931031756906028221893541406092684405544040656007820087029838508560749614521825220333301708243276031733069401467023671892910982355954721745635461325361700492776915463851089843823705186769260508294293140116022490032028182255471956301322388781186748186013584366152206097193136150478340160586324030905832355708318213868875627493597871141608643448285303046138000683448914992065242291048473010663094133627359354643045995287193147293087571275274172561826521305148458353712408201912848427359792392249715491752669927636672799708545812228826877497828369613034803075655412840356090336387509084305524767186364466159616278307778540852230067113471502744723550332692000275053960349123919738635923026605093449702639907728323264624201310398965006622838483573987801823215759398148241763737278888133495095791264854324434208217517556242914208010123773359495135265612402262195475255726973036650785024438992687179845630991068108712688839329594617580952697652489487815282452955650328398639710074344585370792138161957541972365578088242905367260725586688967247484352134544240924770917019011892104611675626996308749354264025857519760811308567659440924978291024986197481951057519521304349660319553876347993773798835583209987322765171909554047213406578757403259749453947151622771886054536737385263239158366743501841757190629861193238107978197561506647710982662830986604231506642720367629708844418118181918981667081312922947860962904741828278533261584608496501218205031467837953263047368065212977019377240279586835011958302575995391302925434753231482152928623455037422541931060463025655884710912392327505073012932735050826887398127603915393959244387467193665858556779077156381374326108242035255411282997695976536208296257243524655474824917016428242568013879335729802121490835243932122796258345212385327851708926284775891385145422550239654757449499944471122629716821014634920080279860090631314467963981819003580351642834991480698142336671827264659239083066496814464872286215094664080345304860724655326866239731982133659417191018190943725945193909657661858673612642239264361219044075741388210574265328630713887102936782921130441364875876730344726069482030010043654458200307294105598009582989166016641520475263734601235912200439214160785461906380742607930428466680681312021819832251934359749091377099827031575908085778311891414195179188304990833860744737961202387085259911957589562655640465574704136517874001567364588455983220522264390425330961245346368568979544730301826476765675759061648708869037362629569518441602506319905039091348857111834576904285466714696595240074722108389389457009113193127491767594931915656737924384971522821288783058488781308452431941979733782864344199990019328068408555289886579580287506527281809322788493797587433203448029204557310017246914680855686709172394613734509367976188612852335442058380220315605786924237773337439612266552778306499413218331192647427043128357123781621264657846303607405572083636469696952911484394600924558087480295725768234837389923957622029220662934300347244705457882057580905547010006261994294561327059948921898655999922350023755358226756113708521888882729999160700768419425379736642167905652952656318334985193754453980256188040168766519392498480833957855170836139909525140151860735759494170665455985376929991530832214638207782376340735707996204444831391027845768857185665107978208697182666054494231203022472191579570372815413874081969300801284869665969218223695509240876637129038392161250321913986633979398792895950064891463974170487494433824441568600148996483474497676680383742157708253785974441486631011137723858241259120652314583961854703051613906750259168742439536906379389802889202416182483355005617954246862489729763069070252253251427371006449575288879312367021411964132945714803276375149924520419439887488512307109073904220585074512855105465580795958696052536409157522763875251735383219392330081986841290952171292733257904297695925176625972660428953881951819311541722818512993147117138088485186370368858256531262096913729861583930997512428020626158708260186179239240583552385654928139757858987092649604580778738583937736765584745709909648061323268095553078932271972105908683518962976955769932219109986236837975145001959854964159730669104270473461404499471904204506975312871228343538326742203447394497222717850795977539667479214543470824209419751240624037900157466424725806768996310462344337864600197841240877310249186759253399859683058481358606958226041528008802128929617491502149124705984518385803324932307421108780369257292410279384946095219248111410326968363019112691424298267446985602658018921511847066743685109144219059589500860631357062666324994732345088273555926535546056256204215729617991869627075478855500990972959357600671275009657173317723468574631299239079453688090934564476220775424548845649440035851567840087853301156689259411989886137978568490335951595857620404162705999291012768336997984633843457793256102563000573632371083253760696048623084112663772743455102504842161030443385109705885174686666840465519641730286210964156812263127224084627481154430964466778369367262597477266831641015681098767705374021201414694082736773000675718735669126678880436725336694618673513330476377874232821180935216218490103449179924618873255343052431843521118681003809670722464926650423244449941927895241579342456482590744803569372031359137558435365383503594709110554405688497990999368455737032274999419080786635346731101679977933544080634993693156783425941954921728776534325312079209662574161535650778070413889586528052135051759901571322398022930064413589419409597251714207298840010685021023430950994347491291353591921525552648893882266691545407013013343034781742069662461339381980636698791304587062568561354253248399819639285989206225515380248502081682525086353536259083751086887648994432472836804698505636290886995706368005193952355446532503150911072623145503370627655581474497815081678688059827432335729108119692149654150567963635964759385426411347621279335853482820838951499658476081191867194587255015632629807040151024391781046546848690476407562213331081852343435071820717475368147722726093144119228057474001000560944014110606100270489411363905391157352233457453091414452459017108391416122344842781392172321096659262165059900112658974993816537404759265152968748505723422937619651232849630457764809241998929173567058383282330241512271643296284178241490160743141040542315658607789797788410444844507305349588911600330483113231894086245140116771210021761363384793875643485807098505246785459723696667136765627714161385280766770962761208738137670100195084870933582741248673999173640654920723957353433384794896097857753096308269652624821108141474624064535500546959157814183206004004205737376906123788508762850549148979902645060795928492963608904860054561398129008984104721908833705272402720349574335890643728437885480517075430792741481528414830466161304608962485747240963830248151837615568751548118438122813762523079692938660451246669387371600401635274360764950966439210867621398433383596357426355633818712299686738029183131842653312313899744465602211395556742598889894468482691498681242391734344831727414763821775861463621353234244319404341183083767872666717306813494143801099173874393630564500174463615903542711651025702858034156051329642273674039129654261643997380277864529514859376953586326758468544472499171916076081344363919507048806633716715832828033754497340255802053187903021818444646590076282660412319690080951147189090241536195009952337974856254530057152376688877914542873737944693124015573588785298892916903546187603231040669023631907457504026933073257563269776412139870795197940865170519979623691565813295880241301683529609209081994523404266402107761853910905220810405877638785940566778095814603814710075832899777265521237593623869315553845041197917788817056033549407680662389590802285198102634090474481319510684769224736075678192842286788743527102406808908488227100048119939595105613590912234656961897540622755106627705359603910957862048393748966655479173910864100545116639433432887559010409044715299635723989450306978448425353168699755920944730165281197075328983671312276605080729674850414975113606261576785639232524889144212614031361557730308060234391989037712566226134261253701305557944220782029972257760859947440828434029968545908421146146192679336752239424533845209863792812971193863015710061120267917254741938146747664279516292731832310109205854602347879445197120082092259242347028875298186105233523973013884041787114625400390445098132835463773127022065892665396950836192264289482835075683231168530979016248631122967644400789551663152647667182986895872223936397961339610183470493724564569520891156188187801310666824509328126050737449822712729411305602034961192215526717397062287672219995456890837560997441834748548932471464442161591065247983637590665835279102178137547238991629284268493154466889393567766836839201651260222959905034479303315819767750111789886636446260536479930501325212187220431452994163473073804083820388243658697357953582740366315132206321720262574057247138187348438385702509484899529500983926527773777762048453757031103704334781492505855082395097280794714199438427314433224572549535711315561095342646856614748443308028549434861190430397661135964307035940207647081695207622345663764916125786118768811602107176960274873600676853899076829384186180831888067756472832799986507599889959006644880894549836451183632923751371893689395686568591753287033241772186018103237993509786856184057240066649750545421434437178965034588336283743063778694916365947933783584126546963282402205282868378951163276626701885557834780839956507478070632905643105590500371065486949100465080908216883046039633175217917392171196048091057667447591907316218025514602330316135887584402182849390385280088883504130357483843913769990187231283719060031359937148672280277431771267889766928785718480964199115580104111694528647161047644829137563992320862306929511700103162859442606413776885493741294083757048288074050140935247835851977388464706946823062952698596925845602539783078492354184004814016397259896805598987273424720930496794922862669007844478091004591897151128889562819122245941089378204073696929395967295677510431514764169972319860876805449087911020271072307101979856306550357627819184037210835740124312114207747578339267766646707308570283904014260593001018626725003856040983782320860394727823771155443731094734401408432891821886417301186470370043525079552697256122071227642327474991964098429525948475591733485713871405198747123885220135696730931478221187243050012165793235288321508400340041573449108158665020866826721778666443437832382306039071231025414320850788956123423754663130146200583189632422026765946750187372252934166492371772172319295075248262367104984097271100934621955052741136280777258312905312616599498865622725467151896281944229958221447525366972785283926345786465758843776677297648116948649131995898371474174104158408203586402430781283558947271915784614278208365803663212539584626613839134921471836256761520981023323905871188442915984031916186272706674693390552316460894762386196056023894388611413870704230536611892082277364802435339422637436113659019599937072335723759955697224303504855597832995021443370775352919049689462632636900718866922572598453489555985865490283411720346935062786510245290615611586556619892556127299106163289673129299244457698308943046956636598703587898080387632690295173183473436793716656251351716734697868334958293843694231964787664857055299756665843394431582464618487599711196520902219669023097631275241728051825658123456570038887770026167236125145318247581076214482314801007774637804011408941838376637560121591529195691602497097139597225544608171384905438415645637753659521877434334410199339343243663998033049084828339624268007707449633161895706479034749560463265319090432503139381445123538725393088890968676413164172887628273118708048548709696154389660335344017984998501619608290118653535668736109054399009380831951540583013906410033375105513111491394279080093490167412879520777031117444364218502087016772759222041757272182833768681120680422071168362584514780862055877651442474219631250712309581514506133224569091707281167007708949367891408299325273050257549104133796600272995181353925715036901865516001171204337180832036609521522644251929772834377285144362650247744468661033045127441988720241268794668700981195443652531981022079118906855260127141130567465468667075426524370461665820047170245775480651711658083604169426847242215752586187912818302309892157847803990920790570980484175997901107594341882950121150514923646770765032387869387970631453328809738683647284336060331814469359232988945215541049336782273637111471388778665557966796470601596084478854127440484582774482738389875091883832925948025886062090290885020943417744692285490299600858000808338525254684082638134333562672033453734971007658929431765465730590001472677804335962453362268388435314008793460929770959074912237868378811093930784030580720322230677731423704346910642162963717146238416436942925235173129656219150194683707471516012444859237563328397165304254019952806665185598286791987661690994972956704964000539197269354699202226839510723427097844443870030665817993443225206868603858172678569231390151042702764415164420674604868352326690629362295141566797334947223760777249901702219573360437239144544180767181817052221527571853415525039481926728065616632329667653832208147796317662612764571205145415820283816407007528886785185219002675757600949766934670748243451138307975227907461578849086429818432319342173211808938596730430051595998386970243544345421576517721807164509620191205205839033862159950833303071272976444212677928057797515111107987611638560661929551982727683061190756865622296098106524820253787023132318048817222188714355980095073496106476001644853379809716332504747901831681645959984717916727507017813250975616559998151171974268168555609113561006105465335141839902428955306908332052006583293406989288826972507704547049729957082080869803585071237104703187194171993743547810170301999353800257259425534275633257920727928030624015888117132349883487596266134825651080491837096036118821642613352438640016663874983025035943295254997660976869954883537640662832182771553174686340380138007808849472733408918469714398771302956751138806754042200722470112303216098218108725393901295079172407332371801278664098297453356115946261489864554181019666795676434640799146770707743985443033619434770975906389250752061672538883321104211124595985116676781829174600536060751644625534999498618358686313309554969486059406174091006766656092421522826906109436883527850740131572623358455589335189136728526201046550862545993059759121220554141939123941867970242763929234009121933496830573625450380614859708135062088167152346602158966673461729730986050073680513288018867576855438626322034727733437874464260920750252651740699432938080331625466398171932248522954844629240082019793878139265524302534199049352359824041742950629686533933693468127629221980505102917199444402798844710467181715962304500123147312032261412191552182269593457660227447419149471653627423556196370652642501959899177794939989753241869672690192308717860912837673736603385765147161824167480459308146531506054934319214284319158997202103443656025352124029257959333903372009478755370775670588207309737406352231272437074873427399512940928015064122493751452436676299135109751973536034238083207881348587039589287160741685281767131076836902460694642186727746918142460417739980471171627961930936975244111174656267661621922847241240222891901612154581427819479321017705004800614898876844381907109244986342970892582554274136348543906671982493196769234825398601639150138591525450112374124154735318560146107082850560063742998517016705358526574369753087755527246180160081021773352765022606108589474613159575782306353220287851907382453437326057067734000262226412316289008660492664560432598180075779306470476645053521655190790499304926433011647855230932285362872585990537474485992749288129019001134944514686115798171316583789673292567062537813398471962483618012389308047571997659078891672690296523839979076752896560294533899135806194618156669429300389548136273188081884693265322620238102167455436256233119080739947009041831551555838885775572432991212053973405466158851845348344816924719057621267933735834097568474561606728693211322757028002150576115617117734848581247882882511010979507636398070991616210474097403639646672770649135691535003693114028270354428940269193269073372139635840775197558387682147531571673764957863602779174605402872703469519587575193059647359567359307989337720463939194661042006529738995190749386593415665421140158863292763956936985629117870391613356505511913385931540789884432714660417901837865280258464214287498606616401349254148803727595145568946955985790545679114588171869657929039569009680715337485146068975462411215194665302866614050282253868128876038839863171642575423297181422379099895537072067845997567551031967369980631732790015244409255316406086410167326871235139235400102888806127505013152635554635236745825592266022933051425301072030249307867482677017280314975265373064245429559992415672315545127857554020521787275516709510063017462105914203257587666456961805446296595832286060296341248997671719895560579771250924395147629650672563109508831363523097223971462295730636541897378827302456499158618481710410872764559729768678804725263969161637393289054120368916690764209198263201495326363968111397840230118317340891325534619669963828652480567753683550688292452859864650745880069542368778765113284915935890441787248068909960392276842480838132623260216129083341503002000006709174906601428852245063792862470860812896539199126404124702477969540010680629911960990766239868372530993864617137973855555215870341367496155008532942932198587738422874420793021607939389838956879710619498823534348868986923300094003097099593782253542939813734054842207610846059027588481133643252466897075605369186602001753969752222049405680928619303660955906378645175317828494820748266881147184022703859505038627239633304873136494758807277685110958593974019099426989778361417972900914752039904177910917153434641356391213378108140627698488526985853412275348957156766613476356332411117842167622951832196642923089776607556194239083023987631654453578614688515593343647248499046390535138330354837050088723466251591898700349330763747415676430046990112228382876715432166597173835053173703034279678659201159531282606138963220940550464774713375634694542659617158194784582783605060277282951058657263576334488712199801751825307515374711637779838035962147253569642803128552950906486801416310401784757962543217278596584419472689523427904762180592879783428711836662686476535256405435232271610178283163834039742789264218123201181133038708239188207174430180120646412764436747701232872322597152592256872349685761595412260325338697039572763523982095261847437223995013122793232750160966998555109595742571265526124451468429011911306172006860584439769824132200399364891535326553961641248577808071896005898683137512930779716146561616395922505616432935708117755348870271737959878391708836025047486027766658382694610693561798381768953133421761932776848262832423761435039868176714215323622797608073915399254213356005607739059036685388514201915635449435011398383962893745869298844699920109727180710682272137752810599479868256943999614863509536957439727186953667511714661114866747555377408967243970315624791747129964134862953496967282463104882854889661883361590291947783780236809309337035518854021443252944585137184862082672574484248924968667091969319009561074250176052103533309961376983504453753905491221537851196113697900430348769334541226366677545118714002661265689789839004338409717665830703029685301762515505744950515609216050471845605534619591397194091096229600651826524490956730233892912927150090607176767470733278791745872770094146106596353630839771979792110166068510393395272006537442920216887868281442966436316301833129865163164872208027277018835288075681605506575664515095993597877064707584695458080298400208744670554986808495021316185007882110922254905414805164094821398684793629511077213613973220029753950641494164494552775113389964777211608298809281436923364147432614000636149760343241434313202669750446217518422972364418114915751799350875487212772766184701802826848825853552702546736244844793997065642899340369547525905595968317368337708114236609896019036731409735831741054191123223508395203913196850348381474007469090225501757907026270733155957350885935619010116409301600127050424379791117204924937786587453476018981409976500872832794333121525783239147192127564535036222736327097640341406226117963165505954962538626452825306917279153717198127471295599369261523114267782921945062697016698519854542970085750794592720175193485373168315033644011007390023566833397240163388494144821763285633501686075288369290172046703889460106085153773578890596014786737209626309278456135759309288179387641146871935008810474670344984298188678074038576809696108458695262705385712844828598144955706195352450001634597700911568857317291646386660181062078223954197699853290432971482712565610916991326727729375621056713125397226841282394933031476581443302456880319693569024725290676515067050599824164607885054805004097848228635821435981136350604072209114787300529942173324586403488243585836036544457643646500855866218758890220255309577734345140891400870384879897262390679219639536683939093736440062307227006278682807427881936833095684415627787901050131453887369035659532404759541991722764448892545392572736674059740429578531239729438755745621121404138467976197935207647079204278373632373554634918005775892394019090633152919576767128208305962222731417220281799134255160866962653372248706343398149605993805131255786228723530388716939471125210334133068307836069185523633827175733736203557515502539241981989412582629468158955411763544327268202821687137340631719229645257069202220196062088575992110819434722911004964595997129857072254745101333740757368787211237466479515444154138946385298615665029172520888336623691240856956750471663879435306107902864993769399472109424995406146897899162217625473214195631383888203915406214638407798905391196747146033928434197067779018662147026759480962104766674396248549409113303429688210695214137516558931917192081190118961609632865129039645955061253653381123283846147109899129457284466136518105643965580451964869189812540630133483751903078801922486924053216441776282419205978593641925339054764257282348960632070334648346100793614489150961388911089540217176394867603195353026718330559134158437653761236407672854980884284523352109685439691609330175036335051204101063941877364801525500258397669101518678137086586591046327477196660172585176736298561060569343376156760927605839136399436763888932950094754867782243337087995484954008481807112023948533916774684566638083094868972193893533820289198548248747328051280685767244954030975230717607338769124762184575084036618277613480330480373309526283801072138274733821021951858991345311746399918547541000248149998772042050835462892692684537761370412817543201990387762819259982777145059409174310147336608370378853696828339565257177969165774248028859797412741576174876934678550481532418279122851117217695794291704514970673307419979912923899120158729915343803109164145283505619714612529951718121944019547776185199886992906646504502171593800687454094335625989763629289178236176056429805171778220892012621078069659880269265671648018695871749068649801638679453869513453500514000095188430472577433810813503112559630335383253697221995515367831973300897958514596398105070956782446167643148665439020797044142135337696984579973579335357914755391619187334292803443171949555419196702682026888202087805787048309396031729220266789243120267239228214022297592102729768566061596683056024787098838510686775698892806035769865543346068515049189036900459978587710941595265376445102251191561285891296930378607616627109927966779253019629874283246831523286308269213088255083769550632729381354892049983756350293208779694391027512001554333572853114008326916566560460644749159580681133800831318570518361324235050255872704675303654015720323973639923641901308754721841931385801664260575530495832905395693405080382315411485816595315244818345392260708674334462127511259486930540728370306930356092002822156003015225579736248632922672185616098564401238108232808882057812605419938415076855101986160241940934768046410735936930146494297425737611594002132243687542086066935495932590524210579943532193727106411100061177479439727587764056530071908804501449244707748677556942949085330124095181812848179125966930412878821019494717318454235472947967135430874200964743657008718186060898794301067081011323189512577085437289392761935503748559806193666660392652364091495483252419671761057897015484797164605952519264001561799819356582952342204002923789478252472785647673223675828858268664102705187070594693607208727154608709238825420115622653159455252329534534559454344927502554350981445545921585897237058184872478817964868096489337959751143431779990835174449363678289615908777921155126104560520973627136596821840781246143707422858880152303204106987212153947851100104744368495909601148517331579612357826375569557661730791060918577441040320474695667452635031481823362417926856419315102376003148215905469257526130766573506005548393472571712986006863619402252933792729810697209441272573548370055114456344284190812114057762343679508240696368791346226196186091244761590678960120992696839710121836265509391298347383175537508334143875055237318484803526299075980884226457169326382531983389712487095319636265042639649763188462128024716182698477230736582653756287415537595479268775398102900386169253204280246493239001600957140887524014518852906372437595772501160504477255531276217574116370805596683125705958382649700988535416255160882556540575487090660445180188537682930896550866848985150299458275841734869834362447325176126088776000553521444662958898888001486710433215846657859244099081537282257443031945412640255577074827986153238597763397523084012003866643831160094066669928623215982031616713165110348490990473715250634626245634850533725496996274789819129852866059365628348760776653448339954270914669893987423958431550021604270822552994871990066905548503646895421369911606462737367979245538766081318351023329732861127859520964609982974430040370409591375672376679193303778789158646754413947431633834418869198409405621432752339312163445282647853363266542482350752855628536590602367854045563870097250750791960009062060117747671711271592915020714086649871648811074659531522710966780635585419790794608963405903280313781495998340418243627958065892892315947505727837453560075392311722191001269610732387069733055178512691904092174719591481880967230336372163057890878510770549365304209612905285089066077148392360999044106871587010413135081969009262196749391673470940355482704655198329938265824322799845239321858935512939030798745439694854252511366455744338655199370021097507731431017806447389528067985526828445552726739841423741005396802350383157808084968192878078732242632721826580447541577395837384689818550861408678646649663544516457072648641824148152752989042595380738951616491333584479304606938803107426786007329586253342842000237642778311307671461865890675323792900830541224965857480900669443096851573792001023998245026039756379430271002397170579172003096792002056253832682753373526634419696875852718029125462585837006331204859051416439315072340170456591207835714092496039249299049373227381787668740925319916189105325348620619674153378924581005954576646300645759511643673888413106624744804306417373303289505451806825608617291519044398725659611825783360298558656440641839655017417208838527530033618878761130710617689279837744595774473262805153032975021730403188084824579803029349527176372589116815379938451685165287967714679458510229487282522686625859988873508303276181917474844472681888774971475539869321813480985439310260817021116107345056977793533509107062250149996044165574196563917268720025914147286165564157754769095251067141921323453285070611290869381525793865472661472875283586060025619864317978259447578172627779446039617728211868043155464064360975069039338086838590635591787535724306115751932499580504777913794162622465643911317757136126397976305686129546626306446856431575818233917817493116493815461218208541998101764300226176670464889601097032005831494145604631789814858451779555433548825522570535881825029471464429210852859819402842501135652691082870520730925805003124494953773424931724802833163649980789609525171139182492200508708838952263516156127608643089153484247271200519909857231103386314628806145252145845355318998359224681980026034556665613755263657128957964420963833719367812118330010754608947386373906391383445526351893315304079035691652017487886963503073352671304986639365359859489778878098030316164693429011375258007644445811170784685735410873023767958383120549238317335795760706314109241002645082254432161427059444123255092541709984223398608320944112736437389957955971906314450293478084865031284284471632635993388158887652625641869557969970268337786799496906830560258168004544663157088698864378410438308747027607699199465277645828898866837997415411123873854189399702628612735338437973823913992717197188658609982771875905614654996042196832552730297077221526008263195423116447144132163363177944365513610167838540270425442502804899751872029683841633232192694731328672126242074917766850326229500450776600789088362888736364234983514101816681718062927653453949775834758780563169397660843631497956308168000130630897547757424062433017340822846765040031947226786734140447819161326326050667736443567706219140204226619192702701469682548484388385333372955086550983447241594603071064168057253493276554059896829966164663037115491818377573421753820784790434334323896835739404104854671546001360191509989570331592846757931497181521197672201078041985953430677298189870770066828940741351986081338806457103087904636746455025286086440610199734004005314684315800229627652302352915284455792098957376771077622408157882692754373516328088634483193060360136080877153947959890030309375491907312668556944162505956622054375297436339145975998333025880272087545530570750122579159015752897059188132736565736788759749673945447959547368062450003969472256615972088051125132303581803564130112942313282802665714409544008405259299133604483715561724490139108709576258779663153597624066030286376657469299057457618543558959483971469862120704377609224766108877305559808605800943065492255281738682908436452356059034644167967425894415707641468282146356672427756576560747683091603395212409358843130039594081975880808778233824889438854969336321831420415017083988765631091881923207418468799299815676374656474091288459956753253486662612520728259333854629391532330715614653872320640263948949603594022651426103005228336158471948072715684115341013946976044486176589068182850956624948727304400037542484022296900099145197578955989177671636310170591725370330227628917960821323392443587345012788093203493839028327183387819201367423941418323096256881933810752536522342602810811491809233184226968109779769125249805229952500322423670366307733072324038842861149762654328470363175591793666516808822847333974007968329024684220818506270223957034642238983815904116081085510949440516692867087214860819159017581476065993583764683025068335499740792772070902080803347887890469557040086750679520022447733259963186758137486924392819509495229744039668217762602628293539123320233820417114389132292747339310496693208200838727182904978461427771177646133610965788190196691915340618819415477072400855296778970030629916949041574781057717948362631440988675317558276044953824777693754989245367018683876235325255833964423591714466333997587555896128004625196740278891654736291307476524198912728666434057615711907035112218016480449501995495369947702407380162019819718406878229839862395685746498598754472612584359329490623238692712782317834305239644051919754467555442090014902624498390926630992886826766812306875033682478311300280469482447414734485190767453890167336290836487614673994818414330099299911487548489313248920118154034525157781073136842718877755973124357508664512663398664373298234406513754021788584487348979089688161196673512307474197258790614948472210122553030869064324623409704450442050770909123406165182666972687253986073027187283865374272307697833351183552006093849156588357472509164688573355994176708374724325973790498340465752541950112142393221494006073408311444838779930822628291654065017833444560173421277544522693390373040219598287059148663466793630337183273708856417942947112775247338473404923930474341756085595050173212570400471248529769160059965452344208089478739496643524474454712595637184700387978179960218636634936591531967849668863731529382530613530058439149063124930357345691504944065456028261108445165595295590870957628422753433938555088346085755703246389020358260084743748088662086182692906095640732512435642954939578682477510357980505314077404352667616727234884602545193481717514370289757314117554741465957904858099346897904832746699205653492725667777539778640906951478243819919783138171401388148324470486638969233333048478310924845081690311443740628129109315137356844372519620424719553665827830339420039434246794295710439066822177338517156289986905542804745946442487815734565736266531852803880055929871608789683472040264600016616939326422862393020515735769469693778419724282413641413171988844787990337215972947725266961572160758220057539992221838765800123970869096175451692613327729578435560711824042938793517706692168687886569351134639283740283414783060239022690204632995801846924486391653140148444379901580256736574021536329719165440970382951070300246762383437545982795950688295914938325909141834588349790429657549136580737497734219028144029664636966182416887078589792231670370219525278379607892953452377920726061028751919736418727986458364256664518717773888316386545168294960451846311384892475390854367251221707562632180271445765053327432095447181134375442855237320370943297230915457596387555414648964944048618928454884688452565266304569579510659797902437534808849273789814068249501409026020313584508063282237676424407964783849661719086589067901972233114065901654437256557605781993417152306601844662129935827077793144843435753250107035514133430324068790020404482022086201879155489322885533447760662337298905675936412627174414442809520986475766460685224677249336262580179885550817122178702343491498319557501857957637213892251668613234670659409554528029295442030222117700374073349475858554722703918576537610152682933207625101102958577173512311874060261672642366022554212411852888037110386417198452374171169879166696308628289231233020098589472536268313168001953589707067387004548702823071131571685197692703943100881086578730490173972908024718231206173840386199950837533639294847052180183739132386864926007008907297812982400236872097356322295573937396750077413393543670816651864741383773291376428065141615851113886421624150401605237785371645567878471264648939997645865199326818219628674097932641693361445213470217003190644558243167717581540947379513492538716458296834977498675636513903599550233844368600963020604154684531626874982791132041235268109550478212343102211590810993456214720433409824802987645042417308972708097461725179376732905267839372830214808307342036352763018806005759885604375879882472865896055044556602506859289526793562481390664618462312811409660880085171808598253642305967311911289503011088692508062159622357867922456736802942187942338745512594527416701439133290581272058801047282295664949255478740933223836850021218353106429753514360061779205895879140010506096804865380926488415808573934779296357937306947929501229146612811282582519371005820174382605204858208283306050647127285345269517637355801783461749008720977921842158921564517540602469174889345558673317072610143893082797823130340915403529803493694101718084708804769513633108470298199587128237140799754957897761549334126247429408144627558230821939313870319456399888252148038122919207107617920360980377117901355606977709839830295710415373123167455574301059001765066378712222714071879933362349829468876840034307836293725317474544776109500397881321793556962605225248365161444951602079648880295390908444158083457333488282742793419511232291504262179236613451117066538733242108167939763860054930303877242715621728237179137381840100165575613229389246631139559491028400679996165053984431353410644107064767076383283561254740093318006565531337931789166992687516745771062952119166496264741860444833348439082352986752741061792899910045115694916094165203446916181381434295977948403187856969749412956066743483425405074908351853723150820767125568005498023482319099956827896308348968869896976583128584967696738160751114609558774578646611231678791343123654288838722537914038828361313050146979658868176461301290248460024576084300248422831805599513738287040274559085314969979523440392205153848308873429125242679972732983931786575822470009770955091836941359040798415052435175704147385652746142104711204846182365106738311912047911923222903987217383419440964219261329057214324667333637155652443505839439452250193644445129121136288334196392099561187677710416755017690502460934234044640297405348826274959779561570350091076024766313763519663848259404358960222077742720373682265070277146911792097231330705327746285003653976120055215510394668603473294990553072141581330223237483934604379908091801936418300856341790183907952247757435900426986882535790479307520802791711939590482452698742008068354592804486407987328934592752108527533958480908487733876372276310258539664795289164997510142000249499151057932137337889751626026285439084356115690684489358555104459139233144171622666267824745324057202918835887132528099391705902156939874293423056213479683683861110860897805354090917594407627290368424240929794950120802895424793931879346015760536972587192284221652461372640358014578855352693908399346140550154428556056434429066542539245891679083348444361234842396758520706632320347986028707916727978598535778845345174176132807084770120702013494545225280833075773838806265428093184489672368277132339857260918015900039787590631376523893497485737740787192429859033629531897092409382075724312539066642735904888683561101921240474548110152621928207400646022276359505177491738943700429907187921455751309944373664032749328072520231979827788667095396191439649308650846650839017152085609445873070075661319244909530182350291817228450170854497687291055920814881586277692879510716290752127751228982515342737767307778432947088269994647333393625434170512773588999959298152702036337445336325202466144456510459718182091066850863641825077039629484353395660464155872333052519665696283453842214259190318890823885735316444781483455891161836410442750304421735857026315989542061979948279331257799021547518511825372897713631437341941544628769733958942491613034508134217224684614379816662494838877649908789444518223252766832142237470222440774266374444817430434040052982678613538968750558228162708034394381067096659757716795652448510427511116460715626182052439929487801627404832459982443391332873790705937676697201676496844152775314037437373707372578107501068058872454249288815647736466737478387334736206673949808099613519553981132308882780132237129230867058511776703534880987639631534976549538519808908116633481899581647831497405517391952312007838368415932106056211736591132626650608023236196519112083090140611493330623747695763521200638587189886199056553200491681421939900276778078935476169340302743713612278098097248513083109477878778584738226680298767925259379355411185171634710275522603536352444864374686690095106308006442942865723753134134825122603056152809037293059034118583752975410708186860090824692970964080022915005382913348723828631543855414134015208503126762478863048225358087512165279927277965057595874333200987633494186540140915202277751888016430386383800001589771729602134059950814762898977964891364395148434160723316514593738971154728051430461144458784841558995277780609349320663949015982587703767259514731215486351214933294706744897102828147346576894933955967093720816952463833050329188060581444713620621273769459067803315567203840228038669440494322937053779411172121319253580044481285266755495393124047151932713912402739198092142643334641551705838837629777692217347138225324829067843323631376281093712278312081699475068831456761793295073249981899884911532708345869656088497629119186312204474584466961526211505713710648720559020072360347873606114534491356134471846307078031543600555979334861537372864642282638453248992448899839814062355069046526281447551368164533328522057727380292680212589778109501814980675786554648834616688495956230615553621928940075481876975516531124643738875752011850119940168413715237462898879245773518599234612385736429775879000147504233241530382030206033563389800347665016648282717158821717132114475472757394009836521752584140356618201256848654089741708452070239050205638729968845049742106842568894794864337346202893848640309481377024605928165178908887379934666052616553283055684543883946541610274385543168708254395089247762980341787980407142997209138447509205138566728841905845534832021886860907540158038128463015112332390655518540578040041543414433762736071140581623218063646969194499827085226894987124153126403944834121402505725598862665904327672371499677972052298845638575090766119990053137553084284436529165835287480866440219877200889272197675772269487734853279344550052363856759364050042759713935896009756196290205236311970720188243328603921973933272875505163223420049670351123887417694235642562999158965462039764750117914613994428063568653485896183803081046827303825246658717770360152121172324103039274978265011416771591447573057035128127099474777659723243167058933669603119537039478521487300295481416968112756070305996132910671789247317523696106845345864578715881236026976997842643220791699259982854103029832549609989149156086790306399455973159707284438113564481599910607268191259902577879167972704584656643317571592668729236499021370035517412237039892950767051206716612164601972843736987697221322944459629526231294428717223965226726225675590945617062614406720213242184092251170960777505605848493014348874033063050287691046860779343467449288830891005688948047986657764155657812809056163784255524662045215589033283959892605037859197731498681585881280985380439149302012845425192387869257352614584496701168337229806586920054200602768210655399504745534207331244396435872929724840964819859545058204371615070200647222386051125402429478873737854688833107983662776413337741587102366229066686343099970379425921460414228718807394709963131166142169653402689966376453001417935141811479121203329452567786277410550595601515970854334246712428446276109581782806987924987413399274623524663412233207233456338383978237502895700680317545958116338962565692655697164265652889032004429751198038124652484364931400542731210647203027794765899086494003903186259184536033338614047723327423209450669682152276940426264631179618236948895698238845374159408848013124171041838160222768797952024231224051000465951528179118228639092944168306245501157135088905296991457867448324504525229647730022647716826539347406657174866218339268572193953915987150405257543074616173765450508845127004996292090428450982436186428401348710765165064785297982855887720595771432359609616459653290339150445718301359052495912230909767048180514385164840949221774235282273769029055690769957456358766495294955167714557829634453551850954252811733344761883207675193720553612058614384057791674001657713677824157536812207971068662529634978884128129300650525530837905052325048807412688499198862607050491599764509286339933526994421228452961294785557348179437228331076617920074068221376991110579572236216796198452808206924627114970282572724012795944618411735837740205248530353837091466952770357381492947335668075672098338678184272145090103030299487044986591476143551988819773458431322311035761634418766606829697336708981277414269704632515073737044062688992606617331779348701812131208593252287589521086801525167024477972560535313912610306851771067493615397834131891455473201895693297314290430085243944010964636902233291327476735294770056396582561866804996125290133307156559674290518678711546991608546604427261095656806388600760354298758320596414549731743620100146856098488964014623329244479084962531703658926378536836549366464679380969341686593658523858924197254623213142014517073394146300737778364100752308791581477949984516237626197190475435263151455970823101002156330363542345474029421673695675506576042313141914329482552568856341935116304474271084676848352951430926812845002805369474266238481647049167295564099215964706738853249941297520747502670221841861581593965231311166594341588944840881528375524883066818386559407498235513593353083392320046704596799243938246949346471700919456836786120184897839524739294569260454213389875020101041079347945536928092653870145068794195325127184256395971492239995308657883370918856551087155379874677893263199545582933410902458472150974974731581686999142818953997896383901191887716955056373176754845666454784629574933326232184482937419267378458909898064595241631124964917808940655963346122896196510447011925929676063306734964468447767335879566624268121935617379378518986083096321178955727434651182170619821914828658542843283965378506610950453277611310310059361832285157868836839923090353711888426918306783752555854904218443951456352431508318459309431364831641004534287001142688737092197238590472211097918653087061322059574654744022918644639204974515393672551136399197938160061868215881942303542634170896927007149455460601573978484317426912515406714105186113206353712742034019088327748753037900080035809312940129030226589954772889487952318980710978237134170332971101441534411858012987822238495528911755609738166262672335624906970172489405114435594926968589364214136282769398192962278345921632210818122811660548518884194565216254825268048253308677497434859960929037135024686365137094008128006346591293952064674744699902890313303618523204440215988689614725868811660285796017660630403007901241207172621209796307528061285712249374356541258187430486028061177803238425334253205444284815936357152301260796330782594831578328953018892505367429508836904922827618558467730140056969332657928866095893470504831337816037733145006106191124018747188420196536663238049766540386188255903176261681482470528513649528041498596972249646290766237287409358131451212445435546930584454788472845865642144059390919068163242083053715026142770599508208272443122857494133898378371924834016058237484753962656910409866562198081397397536397785579128261561955150865392093331720077050202406710188934353040780150312870394653137141014510014457458078196610437214473100632887845057718557986746906347262507506255061621240915423873375420915227527379925975903159296104728648921779798671937440125951566496948907498016692890745747350502897615732476100694783217669316660552707555270528131591244163032845544242211606484018897352090382753675047713683005093873163015833656925597893705911455197232197202166834939848694402222451080215165248121872474373264636295135341654873625631383105424423531172707355489972290089684272998323953993385956834593291963741717662862084918979363721100527681253051835648963889157984868223113419844254366373969735437239270477962296613562594390996272377199827226325880062548901158405599423376929983725258219155834087012035179804537033179022815635694932560403913109938814226986827018626247791863231722406956672607130461547967490808601240253406396975190643154343593774634893318855755834575910584964466824520304653972523760534970628357867732764777687571391831539029036175835079778734602273212832189626015669530024077373537498433175900463279126990884149809219614479317044804737658683708122108334297633511231141929031998884067892308660617230346381259018293385225722868835136120732294331225264808464158667428425022267231142105439690310535171935483322607894917776168833252427745866904245469791906252167370769340033339862345617565700530122166740241411478893279603757533075980817674630095557815673468229691587828528643545723039174510381551844923426842775798904338051600851919444449850601418312947706821024506445345633193340475216855447488218844765478608314356340253877320482232145604666358307885704931902620076767237697651600805151871816250773800508526426412512587046267291717285975150635958032860221457836112008679889643789661099326586182585983523351474210190955053753438295738229792879251864815256456409745824141020331380879657461980117620157836946880121809621961466577757077775416303260821838337801874706080046580862725527663963042161716163907565745349212489768403330731615067870511053405647674476026338224084567621595123534133557813319628438291119619568960436667016939393803620856799749882372389953254948290129105225668379684957748841431217234312739784393344987926174028007104972644574320635167957583059814885629520998061426935988951810741753434345054719044472926855176867256016196740820327245162501618249170887377745945109274085274978816214739981329042855041176124134065321484394168517594975037657175715867439849760587005471525503707318574403842695456153068783077386060105281481004656537044739482472614894113186470475916594120566335360346205874195100717584946687515143906275900639198713641556240181375304672884498548803309783418919666772197954795946159325317401603979590573606072353762898005625420582351001269320447848474778951897293755069162732900331585568204043779192720006721209356713664843623310452491666148409428885830202469939697053652491068959150904479451941966214242047192380444193224352849770890602112913660384778562720934275797966028031724599799798470685021627608670754962321733063707980521791833108839823361355333257257040878979186655730148208456204130691320080687545628763515912668357831512778049449302424770379403636987521614978204111728580604316731663138380042936472764910132833608197136858670626343066911140421121620330183085722251467923880808398870239649536362172967404480426107874465106889933362584777178611180295241004831698934124771338548111749299136376013771097911787297896030213800733084557940949758896361005447115744632913486059035313898114178655672882112821463293231519982599712898766258163603924950177147868021191517556161256018129390261616928718948414228808554344095751998970227220314267611548514067678380336550539224957706819403092909692537535890422201631297313066290926042718721625805582648877162915026750646189257734968085118330511417864763986393857466182236011888639297075171899038624517871922834276287094645814046202471976498556843572276975318856948057571001510001188398670849619005764634064932494560661773002431924486302353595595527135213452647812721539657661285916687280391707573776828781324651051359505933440994979987608526015085553525457483987517961541523160279749709915031354662236316280039814602766662380227346704840314948272940180236167944033653041299286338963323258623346710309076645997681928950496623974703454240236500196318961054143444548510263855556691624058167602802444031460775503143987480940239649441921091919834387050971638308147953046913202332740777253736305640460370724720708889328650796594979101120212037741499630278214834700168247107468665348745439035244573548819391325015533194004634269778971157985415149075502616809935250603668754427020445475892253321762761617952354904137259324806158960797912418222981942186965441131744433413222950700641203700380779751482881930738813198992952110153905857036167480877137613084748569038726404292991230107623849285074051518142056100892533566999768407124191406449113565695948726236494735927651804988752527496821895286529679746090862603649522561543854080446828348146121577601476985534485399941802385343463295674263287243580669872656375664315980669378204568336587030734924168982418891744888957764181077149947537755554019663344168152825817938272054429496080524921796643757857093330439160875995576076506245637235606263461180690849406276440149115639702275634175191524234285534715381759902127778444143245749561529424457950515272397149551848049065706006900023521747537410996149787043334990472729772745626558713550996076912933113696601073129339029764515693010863909089096569507983938719879025430593849465436288706228610179438107460098656988101513148848534583414313132530031596555690297125339725594461759134974577634290746801927723350667801696105330712190996251998905039771998152833722361996715996111085701391503472523321473525418761165324991192263249621629120446455086305102842164655860413431901115192346289330377371936040033423133283760029340008624499140278168741769217112997558821818344817115568729636804745715497030130583673797757925586435968849419584653127341672926785589169391579221333575871756561333233619204081316099318278145786739402907390862378015789663520379778379328349829080296073992321382530243964844629131899607341282530898909045472380610101212008731157419935033903927792894920853064342292936518338193232469868362736867212444769509128931830347708201971766269369674750323295872241688178454777870456613928631984259711220634372649362930737482513701345344998058376943644329309620625403449738740754807637278868648910149092518113615427015475046181541765621095549102150174616983803180705331287342071609672112049785767115189833357926482605028641130293600871415619107693483443580726701767011057637626756441711239665558343804540201872221580624808161545827774349937085494181972066251082930583632984073146616971225534153839116858040762322234667116523833238053257645248343401690435178247437955319998510639305068734208021663197820548055068365997045678180862682613573173386270773406159129822092810533924223515518776190861044113576126383281399727419724153800766641624305881644426249940126703532502827780127225387869597106113985231818052678340533895065235722712984852677255843644094105218867640874951301012920470987697051932038677738257270655979770200083809194617965889627693035943001356790648836701782716617831024304111361446842468341306517300523296598623938117789567404419309745689214197687475071316889022824152958983285945685684023279800627506697940855986721819372307597465105156509841099959716558895154482195016513701943954632032978985400572217683924989393813538312512386160359683098939804572732742706822984328294979181638964536178869380575272795073243281244321036091410248413410124663569162116097026459481074801661125818032932501713817811423548289797979134327112983537056019847161640080411472937899795078750041383362642054630101229821020263994048936428512561064348889323483448040330362190960292287969794410737893067600792444409799085597587390040916626095411970197166785897638133507918373525487217006513707827205239089161900865681771493194816431792231068417439515602776670912954930911319453539598892739933645475924559137659859626424005144774650448395046957372122442557858562376066607385135042041211824836720263059839960714199757002488655163601118592843679532649038075121057299569554365732647188997004908604178924337669758942736823226268284693033950845270024507386706301686581894685656116922751456904170845679844309173424348617779830156601757306991260369237887966047928802083340171611783102805073114599969249916325168314740609028115388902000632023696218538681369324887143238585626138041709426330228646600611122634968005181935265142950240181050022462481912550446935926482441820285048229002287358556331324818469172692632782211567812248468054762103846873625338028214314505318860371142051655041889801281799213427065411693738873127824173002003014179553053690295272907638372319284194492813601766540637846843511640691173341664118694842262620492556845012075080159310882939673710944467876540281655031910989054982460025031933501165478103228997008314066078632604994518383695991974251185395434159268174027009541987240427475380923883528695259437613542610931620898491220675669380590230758943089609758002664875212046222190124594203064824171509871500934499793783325055077537254343940273032575465572392327342084186586485690200999573280656715830151288700007510858006395359577776971986519057217635262435073727047103539193248719112561843173612925522824486151450298857487484107773828912879026163199756308151362804193497927452266488580838779079649196498468472204069994450827570267308217804327937726306298211620377298349679998599352865098891546233313175582829710219452392003831188759598285144113372594276540380702441140465992936279945884235538276273106092572206194738689880206609998194625099678810783941297849018608389092191222556997718876525382703347692006264931612334468419688036279575579335097969303822019336183255415769366206668187994421050247548508714321903735463317441468652901341859887890556473816017272969645791220312573414101515250785219761551891875775698402793568085215989878123090778584482348316502359286868780394114600936073238413829762800339818451998730364093862764378857412470255257946981699225996834222703561733354240645218600627672797134462856368689424107261853330802157288664997330562522582047636256667266545343044707797963272561469109216011899306689504884722665383570868503127537017666996821919761438969336650449564684860058323817293734132901908240533613237529415363649050981047099948117694492303512180587245713991198793923282737377354705806593127987681834940159699329608750173421422293035218876100212238892211498492383597581287021435454158720149523921037198801792024517384106799800600112461069768943100723215728216907288199937847409998112465609536734548585142110755203480711270696502081106744466012380800863731743335751045513648584357506062004441856639603340077733449255357957988518197992010458741147074202858776576360195076080132992396652198065690458551303820741024119043221593360460326945415422072258727736877601442331418526868050200519302416809367616449363697169166970526897282962794827368832251517678686784988269261097056806552572250702077728289396301181005723893585589085644812412279982029381073790735988109491981003435424812247299074103637245478680974231563426115406097161772598453205018831850094032286516889788615204642434350616491442845603332364648028762372248011228873122052703209406152702699856584729697558714257290090514030202434113412404946276195856694212702447896665034146555354271263302712511596193185453866084498702077100490856225808274597941297308283067655136674422105323621379618821483532671556909987694386639563298282340865835688610800144344013570636439552188888878711232409698004561426844146060246291805449682815567004287251232273879530995311419447735811728186532351888729960875073058200051060665536438689819991176648238088991454945268440522898319677739355635501939642081511370604276219701601152800000841998556759952883624097870838581794286130022350193781342144723710890404718416903721970977384265098171553299666466547584375802075198164886880553750220621152209721260654086784321768686233964908595731983104767804813147692461047383192249571377448558842176520909927350404529959754836484241565986032264560712166975644657812373293609305085019435892461115228836610348936128945195216926022813633434532256836400691075843626178860736000242154133129625646268798698220569429963685965844906032455797500766572001588067154993876542062351624371949018541642987802856084424071482918756284659259221700109982107530198272366234370083969803157434712223441923330014133085972231244571419699963760483552247283291987859121613250026321300796513042989168831881133407006498357137332128315052826334234859539491200047231372813021788495475046118413904797601042347033662651760490370994647139829947795839278786269226124198660975525727075377626228346355193330424886406891279756182574669640792025233769206217257484396495297724215508187082872559490637818534996743694701960498819251380758845484707865843604770868382432751845769116556505559518130973315819583048319035292404393293906266128016156753995373098398640278644367992438691426650496500365080258994520244436071699149470739163540436209836121483024390637949849834256603631684620259563888442389131228738557058851033374472399632082065723652030797379181871758970672382455770303217128824980891894664623639703596324360115494624993680170639495126432096805538146179427632557552113153170267238515418107283999339760876971413235648647576843283527859744845686639972870448781619768057162293217744442152176860225529530315048803487489529780034529476292255263710522798664436801661271190867871916323734929761329140886217612340130016294078724993772754618168704120423550591015234221032420246328611402996298065596403711089712579874559581121245104772880188290223510609311868773060484265783329511820530722219346420348198624685570447320471701059098583102559571722501523367035957151169114837132194810416718293129436335824891479757409707459928359120001445386170900602387756675317625813014153700133764302790740889557278356665727500228958141932875430219617165156812572376324232364559254580349856724111640524983378230566712442709227429206010477334787264190309999600642957524840217427551014234789728193167792882495409689973419285952272837686010461757923967052455802315473502195990357908352270434669619051636710382392586304473667373948806522741647347292131180137304661462897555877055344851423324172212153850971846772152272727725416861904000317279388600317141835300145143713530194285579682507789270650205921868268905758346621030454235390855215642374033385842612939242124746998187260625709587099956345223756580389153391168439190809029223389453990554321301688990025266281558457584448823083977730140263550258696314656439088857364991928573062865536495766347999760453983213178858416014089150725354846950408765366326339115085263579145167621837065079931154966924514287920892553591285400968715328311614521174907555105213612868257542136530599180753385598259188700298900674043016706679876447073592436529623425405486254641228126774507073755759001381036105631132219589885563458416768150987396058186387587353020105209824299203103260621760917633687284751395562866362525366760681781224157013771233539339785484950000217196501076704905222792628243965621098707780988883757514917111877413695221071147312589164338879759533419225967083998829268443819500709061785794681016028387825418401622544134698805955840781171889096759546722563689735023282421723608833780010464330902898591343318411644327442423319358637432462172540255918777402087584910177364302420467822679948845572481238331997203503998067227340140330940435930937261608202495337231084471578135605802947065661110054069849462873149350695306321877694742166555184435871633350321098402617182363898684543915083790270692884012263444231022807786657424565981025202325724326457176440985252606205972271638183073331691341522258547233303412072373266590606698528716490402734056797292036860426407854407489392872844385848147727433745585089456659923178056270614163261682855362544951904729808438742190687582232989734802288971113512807120589372572176739285815045801318655234678232423431835319831600858360548675373621593470940068680924358977969497096286924760338161365257303142598110198320838685237259067557392734308244552707043501905913165569675039915863346962077008269738222047632328803367434242490377816733157882513907987355600988291452347916961931328878001939492835190291648316651622960364610599246440205823594130555931957741128152360643875585874742801020106686769739314635522583226284844647871976949475243765163200123478811887508279480140419648743259312878241264326748858315238969448491108808679156463775473901869154246362524853287741654338224150865586704416070029790060864714486717045522177285988856874725329785852732761158947636732713880723704556579383880724149986727282446232640763723592552922798748650839837392786793299909931669224150029919402019182106778373027458337828936273419805028722809183538769954877593036681551442641615080269744186372628094558634373864741292938401119030071560181297026759522170187824193303404692033212141352802369208159730539399868556499291108668236527223902283454020973793069502214937574953488795173780772744683688686067291584822775311426452508584988065017981663898699693667901886370564180011477803091602603002745948501911173742243713398596145640551154532149771725990333493204460957374534997835874261237623004460340222485962403390727417397650083126786024871577214025821038614746812497252309230679637930176168332987059245340330015948756183754291094096325807434761033879425738796549263397719214606225678126193479637818236646405980186932719158906262503501916282763153981985972683393168572825921732557661986872684441051739109666145019105937068304305867997482203391312317025664997687524163018899870418475756487429446718188409554451313172835282368298124390555561060510703155489489236317432430573220712046071698426670292321788234793604663407303396672931974594835943492658366134303067619706031946330264850677194586384903900086234245878202469868860039673738680708168086536320511461042875996294269287236751274852848008590412353516302838165477533174608677770981707393734257166442042614457852055379979437226127214425455229290520660536216563481547066240307198736200298870266713306101414289305347079142326909506955312474795149244335794010506293212419423234140112294076736059926085436837999149127803849850460172558451878579759982626584835801567024712401012496604469937123721241078243896058640523795358425515831823620822215030524195645050249528576518303838182626338466060976997184533393971731513368294000242820024021828124194548574945234439944841965388003929806098883913719063288388901077597132382897857950106718363171823275358816661057191519323191407113546460138203475178326690984297325487540566808458836021458961542564513230076978991533176359603368216947144583010960217146673222170738222502797725626853141347676544876636131198724824671887904793869086063630749043989325261838085853233986262843583268022630537961042042533793929767048267802962640209230517943266439412445137232630710490618494594808446179197912186352971213559819758920801992265023744490588301477664427980740223490256392151847115171974300239469923979289226782951110758765137694380990274716756362667976934146558966019928387235359225903870709987349639238349682430680026852699010373009762920266204241882474297028155776400915421550031165525520188010838781415928959006089466972304178448245909201340997139152840664637816656330270480439763868979266090130761113141696701578494743507935882718352604086589251753738060204265888477138343819367146130884696246391445236670128373814660626336739011477010553107494464708019988987575052513444912072149775447901162725217370940327030090284782805689576488399053236856026170508515858277130963474609234787951988846960198914440751740023348694922977223835462434430983637083958234126468280132432897465150677218089361381990898629542599069584641213850691210193795100214836413424700145090638627241622215771513115216274580836730749844909699293468599088858055823447683694522991708136067962380715654614016148774995483387616559435494234319556775180404533829315925787646195427280628802421140370040680017979733642498371788504261554750320370377103236445603411488332346633482667530048278863882381360078737148266003353804388805100733585097829707901361034336587652244690660834920790025452704916924641682623863327665889538899567141826853614055944509637276711863806651711844595470525039252116768766226226364876980586544151927665474833437889013806576281029416206588767274879787822846185519181734839837107662804750688068419202951903438087647893983673921163817864026613787009716620957427559104431352529553401779696306182577680212989064947592323107238279281970056664245634352597241542207376298761871851089296329925923830542428705865234957051169054897137982262632085508317922496102615834771686109626890661613827368550759449694173242665286632330950708402601074945283158714043907428517229002070736749294084374081370635048586879974373461398975756383398500592340931989544574488316012157906924345728102554237566541157680141180178045729534812039184964887285768145363400830088213887493029292956359196927880246051196298094686713995367598398736606634753160624934119522606402231940211219834480171100749731344087336080273369872620964401589587069105264704488151842068070204582995569512739169845956507235184156651896775538034107274005477000675325328659638247920508524976602785671680753495136703478415617989115117324764892408293321878697410144476849454098340000792302928280332611805721725495263679993385700919022597641802858788648666352723489935028013165957431872840075759701921161857750287102294926579527939875563560052822808797595487053543816200071156625603187329884641395305952609735822394996526260439729684430678140351528328396573092676358913136174150372724321584402995053373598205162837695766589482055129652383934747785830357914997505569673770033133182307658983794234185033334597670939081597416997098803997759595193822131152187067669982631875736493012537353284180089723847560696289419461255785944279806548169303330270999009159970794435557684117810318136869137368734138603151591983803140899760935701270137196444855789845622165560468461368905947389197158384277563382874490918152299061768033104446597290618120819912847013206196353627352387576456199562154171951856250068216261277706120036833875786292690718866573506112368379654710340663672289516893658002758329530473831441901543829168727680089952710067503864637001566052390374354271183664261180526505377597890522879654485383076590302574997740213912015428828519788073031641442101579045430095925072643352702851568315431577503477421318079040914815790835153471863484923538481592378250352769478999869473699789963547634064858492761328996969793613135519039110686685783612931880120853321885864894788209564983979066300239734196015943492138812703696067136924783019724691094873886369906686079957420202144074800199390019256166685424654205985876644831844960069186757778405418614595325630076220591742259215714232926921932618022235088160411542007852170969110641762187820190573543756890625980080934144880826251171708288833968990489458209581335353154963035391491661359087890913788264829518673506925939497052883353467153687700509177121050467119460025148168725946186530574787088278691608456328601020557929756044738617027319911430467108630980488109612564223345297477182996599741790902060637398250438923687579018144489891422914473425674000277823959479737955003116463814361876024764952765237173762189287452462812429841037511537911182702291160150313369313114290115255751997668673717319995606494704213298407385943365680974159698099046569820811233580070463329377817421628586935071253898615978907161381307938130773176016305980080154675437441896489575814175725233341978390912434027272033611174890670017812928627915466423023389599606986069093493533829921414505720772572294658728116628407539005433827866173440894357951853948661686574005307544109070736662170795604866546548041049598259686261663476065373339640593997086206164008545987181512766570793564858837808110512093089531249836602801248628600064748111738427407719456120607035849777603500893324319672996980850670923742219008520997495149538235299718924174143544678318316042209907051767358572914750453807087730364203240498049156993986852300518637377202385078933389669558124525944146079810003852986572287149999725797731587692070241526807902753516811386030666557948859950912663136286577947911315440237533008516480524105529848304703208944254881028533512478039054058674053611699860178093872334334776855170616468421223556863289820145680738684485274473637286089189205997720422564637620230397867992560869439437483508779939400089388262670258036846277929242244992674564863907396449959089023753150771880353455708290272462207576294726987305933100501863974733352790149333393107083832359552400042385377772574636481447580171707093606983032317960057182378728566288267951717091404307751176977505905404199637672039142902205189846095512342881230564409710877004394355700725664047615770095258417605935060641468002943726216181532185215985223020736273265795379049413949876158502814206767160982862762098530392005141014425957431866218705176692432161751913394371417143581904678023857438939015460459874301953446392333374024663799029019235276495789616881272233417588420440674874167541015895056191781868792095024337319314353338848191411165482533111558910318778005616195535441583809987681226506195208952284341692912970477056944657910143885810512702718644121765858988966149212996658845655499012472399423250698286174118047452399128733763517617884542896071984652041755008425955116111777323488305605270585812703478122760027020597969583363768067197326287552941509866640136422164276719846029506608853502223749026139688623020015136130200034603190647308812796668538703359344167156212441722011456309232789982541299093596829399176014153788161456484404331702204863345033785251359053936595446271752112824250268268872916904083451963951182680561386528818805251421301538743747446392792855797877721272856042006582565134845833699889982595912125410203064330400752761483014161475815394651268560957772237397447591067012060632422027597000348191037383197869816605793709582988446314368394285605679202831597302379417140944821311411474191765790901181837231147698638881053161377326821435985974756999379892989133444233546313635179758124400277927015157841372585589167916598156191948437537945759807061007199906609565135817053758028315929937732020408376286086817556241968354702491877150352406562764793704044318360432512473781953692683379294362936579690671275692674249864932339700809087650423576777236107066407037961631927132578532508114685677097101363135624078153853818072911216561472540794544603987635457176845647657056681077127455979079472138268546357855365472091953259742798460867205357378612376500922082368699570427840984499873072456484634218070107500171793675335908204533763194701351325535846363737455488149824400665885376341575866514617606268775898201532135316059544072532191169012269387045936876111974106718131939907348830607814395357901095350312136882931458560795703730849868881558468796418148993214871899613715668641174954038141703521871047004899054934391206801777709978710077938809539655290204189629424863827463450514745346019992696676948402486720568011846881368079152966037091012257428577951631572352089130931706374369666721698938987055024158219851367569938816900884048739451589872544667583123992564155276221982836465311029313100238308986608982188777096800570085884614471978611220414916776240366662684722687021373095629564743868930067857328892016613242171585359355140062821646616975026847491979308985015360609791188453719950805402537212811187628733036930351252507829018943126215767114141623741219679845804045817844127174912305398510337728001027451473619203334319705814147919384452370272954284000429341593026855375569493795552749620694098977531592686317104675490554491174429768036569670219122118624950250399725573845947825766501111079356431930031450134039232003396761040049391424475291905639301201884799229070383944644334062157747144443021643530350819216825389368246835561353288449159090662818444725022250200052543002988852278055874084473080894785413184435938409669826883494066356885424122141833921002370552754071433989073329587011657052212315924105062968140429847962907810016450593847916027559855046495939164984147578880205052535118879256324862976808672043596051016203536018695457139728473712347991815813556919176064759157013735436241868062419768967649004638543032994588395380679074756849062277400365819798075560214001361465002304657668049037015715934259063802308635973570011730153342428892883464793380741047772398908005582553202140476588188474668425887297830287239214324751597201565843028922759647277865596189626762043379138893025083634120908974474068916576207776291612339354597147616990787229985698475032769662095738054039776046527774161940265687044828132801186852304103964839680465710736209291832324856357448369633931170451096777942526394262084627871422764594430895233939172731747002080080606496447350212809576786898512529554096243491534876644530802660122998442543695242038707258477758604424904559626486601481867521461725438688499407803108415798508877054610409797370624133271559406698330977082074869130863676778132715292732779198999394884622144419854688520425619372860320037178050905207667792269728999373974984784937894055850245423014264302910371674015598377263498789039875785454556019772189946382392325129329907483548504608122429695442138415671328357992915052420378385072043831372520149285673962850649727552636639268648604114992288212117684564627282860269123611174799224279598122155465337460820086758393574030278919805118810474701048682151107408192656240959655306324153234146944345868927725089587708109970994091923577267957203066602298288087819837193975945378364158246685933090397829193783911469392939002058738905780120017693995721436391145307290166845536529795647035101205305665331605978640060803949715219178496519963517243007280628724103320880271404667903486790416127696620446552666456112865688695882440008571335742236347304352558202711385431393748701817485094236732528451483033429618745262415432071549664783919071391424279068246360287191048166152453437151100866595123459091359425011826145839775653002572529208761358640887640691574256741502561578285606076864183331517617358260814424739614824989540836765723543266935797231986152904870329337999331143372720670948495132340633109437212930024916705730780337461611611188189012019074497205157612475084353076530618224353541031499320736468538187917942147398844388094685946759657552250044528004152023428383593879572412936217527631402101129928146132949392144828969964814152795318791333596497735094411116102672879111922278415314451060159759827036540000397856331618242594984990098915456879479802696921900348315262694052444791704567823881842099906350383272909845163578608298372118075978579473586962000518445711039749566508611613817240780927320797702608079184003525933790076591318171302862306977459017179036233662205549442500237495126506570778718983585850176375811239018318390144640317520249372810322173172956913258397856940555037061650569806873073011465783551589286096587530442210554725388020544998413014247250355746573237400876794506105972601700242234138518099668822390509087363672522091057870945024680060429353678148070481696461351622738958383249714145064920180597448431659447220328845170713046121061063689226640523999570507083968809889976062886654922199736257843836783494877624026610990637634134975463885398727977273908367322006387822819584237374662983894812352186779821750191890328858978619379728459360593829215980652608872926572702291320495216580951660816482956110062089701144252846095193755615776816515605395458750905213316905846245223400073000166005490247216036681390000609303888563379819621849377247278879605911570697743828585803609198775437414485290427737983335653050473548938542240312250992772381971377195077992822083910840742465557949988897902198179402321132776541674046504703671722093446993711227462903910878716670535080309777530059312211345297981976310678158081219990481971925592512327389174494727260088295293720389066038126287735605159075603391353860066852624138098690941281474604310049832753174585822125307935995787924454148039031442003399260554650429963979711033907835073901365591281066647951753863191205660892805820845838693575673571349783531392648436030646890365092052569582393276061660521263794694859376326616802588155401597792198683713181028062799203384678878102015176346504108333098851388662554919990325164738973310064998504600562003285974421321432599085042795008432773462742265855050335278815988961190861997007696801045538041380118610046623701863563088121338512210959629629194255569180237010746838163630567500279744837354202547940729367355662933304793056961146489566158196095584841803703352563889072853721117415895045511959482577731113159119836443222576682723485716057743823721390780538849139595020544645077615368993920049282495368065778098471643967298473225225051855330578158225746482263673195776635595199549640326821653318743360838983095773259107031722265021128591839936239993664402653468167876217276369776440636012554715865120983405547501199529859690539281945457896487635384343386200872296764759975365994342453403100392226557939520804087364480076504883184949650161564920144358030554789104824228749794859051926168205750644625919450360643051445027870371301256186125640032949245507253950988332578973759821320104293029046282209543881888148360358276834456392500846208841965570852391517387623941948750696769531481524477475345737144988302409127380475037425421790865091163507139507449256048801276768514060336561706931466212830572163660035851714110000426579661453152090712925036746165511853220818160046839108355632705372206865032794560641997861682986005312567416022616343568759539391079481019970688287485133217554259017605795368876254223977475198070749963311704596037703652211265583057600322857573415200171478342989018589310826529375338649886119633979387940938334602169947700768934121489515470984105139377017430674345740467031552056703424650372565312076849449075546430409078751358669322076526437714427933526515408356455620129407163840200115016911990742792276923577459946771693396423152395792542241213895880371846081525552214575951831409504388223822859634985500561853271378466486148645358762901741753459748997393872582199188156114339847932593104445211725576337439859607339599824210629535637229226637527417897904243168635423092113269772478201844757020823506672768823615398741247728482295579656092664042359347105792075199831401937467401872635654259109864229712877271784497411501678108468083675077699972514442010853513020632677311951862962704287113145755823298044694730439402905248941988692742135838816703973506288935997816910466882701053163279857473158226039835228843243442456310142008201802597147878809473406140397569325685731809828486762446356026561199917904303063217958855231837005774366796954941462732707358981753537574001507213438015864077469874869314119518881740564651074315640004951451092054205885857533039289326898677355840705451984705447891630418700950498334659017344291765976081686070892159654004491989776090139763857372716268909988571481075420866581295919486895111246207278337069410928493527150329095654546899261355301963157291257498928369229051602320669119217357408144324208992634497673133295249517930557544272606573340750984768249305763752349557549619898344860849892250050878956963035807101620381149636476175556522074634637341067531128105292325550906838110246733050578158470974505783717919649332099025476602863643472441596463558769178117688823033903022250051448150086572110750122463013417523020806260574709384494078458818279982570323414539529338549894161367313074497442743286124974690856548861617473361170053337128623755651433871863747295023286499103760212882304129177383472012755716120296001932089414553662639347117112564072600463712583612938886465358492761785116098637861486974769812827162649537325768230619510177784600258135311132897647864573205797352677935173407981142583425090358181591926694848888547051427160029442871632343168270368852006053017870697344562071861143818605248545947858279478349172555363667684969034655411646118642480726383587265575292364933000690816906577728300634976445226215394703304768365328533649040345768560945109688122556296218924000752807514586143153418532288683814268580969159819444570351252594654070459205660092438850925084130738581698577043788082545893024705065275198213369089370427084708567671807211350350825018284951519160428910953145696662148071728046731844194266589257314185558342132375694520337009004597106722751935183985413077601694629336948365516230182133402443765506977182236818081286517522543084627677205939644848913099659578231579719448467566393817488719417163334917423166153986758538322718938337836997141252763856162738991238208002936802974328449905349668747413904935120635799117891923669225258758815390682174017230276599175474923583593876631363078086925271997393858183091981087485618407170285243127519792054177563057720835074864192283227944499334673878220218457147287749514565844683174279921045856597604341499166580582444266091630964598661974263169225154562937223023883485750005721323356652655874598502910485807451871133603365420670710395412377951237678082230172628807840431354617433002470261799193631787101116807976762388827062791309626816366836390529542201984523289056176595712858171510525353535045725017705794797737952074235175856314064702235965140421778762480113158569790281103168205094188056302351943844410947286172359337157069422496563227746045267490657303956406303041866000276306752259676638091705968495175051703064397565813471973819405761625057511377748034950248182728396028580387598973962853136927492698751056777086992810634581007435057320866206053187283597351658511308775373257606454538304105999068323805437046802606731981049472915215890359209340222600117029977589811036977377626981237704706315808985179809513299566177209154462361523062700455420499318755477832803966102449644581262128931154147022494759243188929596612721478964980475185720918824200654647769792893672648717639026940120129674690144945235368361361042399783135581858649369878642514503278979908002497191303323051942109466205615214705918945479343270966375602091261850721371506357997626611741286750353639240379219186979458978102199541061155622570464005534178731971190140745807098154158155658641553532815156814848562806469908613747538439126038932303870426736612007631594268520416042355134678517993432028224293736934727935082655800375166866478782862863106510943637186942649851266588602076753275317424231186832457339439124023555982425125264838824013151129838083947564004021026967243583503102201620162694235429739475921704866353431090479747450510082637059773776780624441521059058610353527217404298707607423410592054809537587612255634379836061536536911711549912391310759396500574859750784825148873732566668024906418586035303732646830777043154028101246005432184128518900962987704811750919057709925997790157517165442081348780899897740619808757895891147821553636816408451626220555015571736578390977950825234577449747370355659530095843007699439606185554648419266024558358484594619630267713460383799373798436858006226775271474116206994488028906743633958445278221610615445701315036259085444829826847929208635351349026392071386989934241036513198610285717089143064889912096884277820652229980549348372302701073431274843048087610896179865103200289238308674917465001426920248740927262556729352973302977499369946854321675496868403666339929157883467760613145914184749505621504829340540365199350404804815884658196861064979801366958688367205262018184975800423312845702620340217965985405775721054701177116768146241583224601261170531753278489676364861991012082145084592257460787132867891531170492853273620974446893288250374326174368321654890577249904023903949815112818262824171452687901095744193912629716435157814750948382656499094257474759539471468786694815223676886512553702323205736840049557655854679982050545439377500852761486885568633368873449810899080626142911967946862907074548380080465886982328537567397663285090177313368133520547363251676781319819323942575724274518582166881739075707364655712264679307331666868841448706675820702391270005338176833816416303662659827205191025760256598032798505322733090915615492990241304037539288614740374099861345540739907746743318971119191057676826358735124412692486415792975146971144820588656482684277699404783501080242215303346541131646717232114595230974852075672550061643152642924846737143124964152382350922003362197679546691684087043210518315663098347001054609805371986695348665143785512429866342066730659919811461357363463299937643910330375444256270557064895815947004574085970741183649491575462747347550394105138004570010216121391116825128329330172994210768618775684225690964267063410015287089811322907964341160019204652260879436439230745833812693925280597218521340135213058344481616256190362881085018708873394783241859172493844395441827638854702611939686550025908806868969569197383535620676283019615933311345934581517809478725278081639162453506989166125302086703798834521526972931353257592851176547535747676934155848785338261570845268025860165632762442978881196715586817519850421974641296650512557643139782663339653946016548451040899758155197066085013801547841561365731591187308069173389695937720458381750535671390960114041889768469873343806679234566505266846698344678325095138644472788866334453444563126945366906568399277100627594848634284677616373600890384636957452090947015674262536361320174542460842928636636546591148700355080264229351360318850864861349942071005673133263257817845303446061483252803991613401114794317006925131044046612683665892995722649857242344201386181755086821009342366944593910166043094228520609096193778780709750583074272086045954652849564346509144726815068156486508583283908717736354930622460674640847654079287630028631557431755304602226860378345367705363188914130945398728305550478388103849500827453225196880041615188845085314551718413992235037250964973231178585798589047728558584305080182552539510854440078502433087788022696415426547119925537078760924814235835360772899935139402358593243929632046539505873854538688948866787785022457403681997443744064966867822007824773966696843959785177024106142652293725999313499367834435245908657343339492446220863157988376826896082822638909467181307915066440062718318006592317836491027083166365493402688096917678126538556813714222527239788482434022850307935693787178299600004540982980928353533722829003044329640207176708999029825966696453005013932158649606566606644771600433616899772262882742588694502444790821282286209368932377426919959288265070591939282065034505233904498601447603926328290910157121176402927210991664902293095961184759026047682476297367078108150510943935607852326119477256461270886191492851979302317205125134956611862620131799739473493893421324015229217244997662037832726268533404024898520167026684199962845057899441997082363729754225457987388238655921914858038898385166105623340106872806829578434502445333407278729481212167395279091873879894828894789581244624597897667074164247099583787742653023656543219601533603708817896873538576838275074825620266569103880289002727686740104915474570769653254640091011301444463944181663911787385398715766799321131154982053218835199950373578657812371761319242714089214423882971116171330076246591250377177336623072797805062500370097955976213573079926703839021425876358448211368818293948659050497545933071058018228431940289301902455643715782712780887530021485032665552241306496324912569861896775919649113923447522021000652116377358112855729687351237257135820882267734418624610899863519642809315135590355930136854496281956332453520850481498148043206659755311286139833536324487983385250623804684434368212956762676594679544366405967812688751159992786769169768344342465910342048033772130355609521012600588144411389894216554684470339655286765023782707799828390151807201774112432813485197240245354592634583015271092807972321963672744565911866566627489289400583156393586201815745143759454990470629791899789421456298871419733414967805803912635534378141553360763028592775416440352012779014322458819610955157657070546341805746954961927131309400495705287212724904907155080046655571665336046912270011613360173249832315223424231387104314366184567564500510441090133480318156685051878128064622523618777660318994956229857244756226924257248258007769308988530764435107400565198409792966816153286684928440530391506078337059239018396314692313172803522534822367721035356087732562736760900841767899579029120045974881005120844624974534425749190839846074560430436378473107106251626408560715342699505784940566798706830267671346960895616294298138087215768281336802255243911537684377136361047262731367076584228215526208356826834899221703067601619514881836204017571464562858995117179609673395956006712466267570765004251645333943935190562866152411101195561631137994815432168420936140000466193657069963742067842218009293152061946179905239431581839858604074045366643493487924988250119727300574203143452086282109349961112102737979647163644907187536037343394379187421377508664058184393228483833257678844407905662882481889482738918904916625557587493017023229140264892352930382031077990298960913925659651949193490162158088298233912537760934688080640803086625188635928606158689092624030944572554365742922141746664616244517707978159003942139041011148707131543091600216782307995588513612543155582041036109922927787059542845947723182684316826701328295421231093776536215183843926748404738288473382393049710052997888935421533508934046739616888162474166231112092558464197360510167315803236493693230977931890572700136262252511824832522135531163096971631594912915830383729370001628975990614264445031173021542275139764054015612769645930513253530587214412714050018250942846228503049298104145042332882086784253719597516620860150744424982682718149702938706465123628276420575972953879980175216168618371087192510874752388744035496752813028121075002381852367676022333566503348753568068443044698647158336572501661068675755080766877028091870188497592094750512561974410003072850235238418275309298115410300032964558952055816292226452415561939074083559298592411565737667280223516239648354880029798277638555174807371610001871975154397403873712312877123203515460458703071016316565627074179862612884822248562314855292542601280231617177961499757311392800324815149630563252623149619349129508086372276462291980148039652223900348173257595628324024149051855836117368008750797793701235355238784552685070818171123191137842979605339969727155512670118841366668025198071632182722522638387338451727797263544348724441680248425060161140922622833977067208608325702170091077056029002597347744812444386903349603318902311900371850402077801234958803736826409624621857401781777969995371883843429654703226678539734905461402297853888226397245827448493752613142953626406395138791788685718097244434704239785498448132333460483839932315354069033584642728445744861600401032851759445085536132099943061947831473893189313776560778364065941193326052919066751144924209202531628791107113807698358201578143392310481276681648852799386856270658604668628698032243923977425333334073773473574889002377768862714542483416728885922277868875851931713654945530718062909301848359266121893941632901326556975770146024977348335992703292035906461426600993681840156185826258348810405452993512292479488999623873557619425257239369345487145563137042476288961585851570503883773720825205248078017799816913493734269287490344940873402116452072876032232388864307929286774784223090132037129212327646312645242130337898604831313880145815959667811262587602932336818428582174308840355331011698291572826369357917359463137572488603098424890703373545727504836831209556248083050611751075313819392315732272528891700463050112807808361463479226346178601122308319104987176194879444747107230078408834040996147433686639767557792276468158768752703060200637387090371947444323522849187932142185159360144585507495339685252276020263506237315960210409309860625314035222466341655436208997484216311508261072470849750042648855207901013235079409149049637825049217648685309321526437863314311501487447351583428625431927982489144854042001083470722539012414128855715298517748868252268722463219570817525320442802269831508604629751866562823018561446137062889853641210056416456637369309139662058191833551411520191098388075300564113544224953874233268526056141537258500982605442424565777917184454442579743719882290717934190527838551430619597875962693132837844403653787073531376197852410051514918846827547326175816790013207518017547128746838475879168263006397362875303450669352031124323766805357877767813630717368726715144495786081501249457798937211275709355881933145119267655207692497521421436186829360923868082684348867589049920357438976560680478628901681384149090399342447264781789406271457187334035800081110746748305888677899937594232235400569342812953701650300370128218097287551932000195994859470753491147677723960284036691298631297068363232115652777906382543202910643140208385475443178141044511504831006706082180561429176991895335536797377643335434485550531319808289545052454572430033528242831705365862786146723376013281566039230318410630500764603362424977581164224341761495312680433425970059425515672335540451646222405069626446091409119909261737582756034693488890804765263753454942459164571617380542079152566719080359541697796334782544454907311570247700928986537594371447131856046586333945488205556471994569067255437323476402830999424928051862698362168863500535336576794528199948523350465181472650194503152105869517271674547943814338765842963224534925197992349432479172443328593552814980006617555864409207900664425314639538049927026503805304137598958253239767899567887540735119095214527047766511411911171362785149131881014313837753173861988105183873138619543954702593220160229323333488423348565889417839623046362780886737951259390544358825926126440148847661622233163741599274510848185898769694403014353972381773265911996634756753949677722814242243509724941188645292602704252410245055176771062133429483775857927949100097980897591879135882478183596322698193693206141067441358324068876683987138148648369901333433936465662141114107431101507583584635987359744148845739292600090782272727702766832211907829838465417270918076378385116704725282559752942865004348713285807480751020311043376890183581066000570129568142485289884731852692579557912416611009883742275212309484708125530585591608028346048959831522351010289522042243002678748744575725253128803882145883886768409631369636644147305820995354061797163876619522342403203394322740982472651556384836087682496230754428216487413013489783973760656219050049140167525620087199914190904095622320058578948158072173543669679449896024078017929482662532710044568404894989511641310601656385516982469808390540840373164427130386882201983246358669941100374723150647800706283520430151203542351408742330965606799701840449474336603333364733134480727624946514252484697083281979613117851251048169211092401320017446607181226680118557912419739486151616883929130906586223734550066146154513046770276941255856293634992570124044690319365619080423307213095944150471906142441389546835010813753754338458178071619958302124272676303743992394885744044743746426872534114982849321681304115351230436160317679689752028557078811114967108338459688362564926898538353613062360515707258478232642342807687140654066692335623077018060704517741779506960588950546353258506865376989045811049468928664681640256181748264871093757797157959618973694270872886969108999380889430100194313504736728586836593733511252018188304452701872604169063889194566086709287556958169296123854668150371749446190724281109592317254068435254075382231253002319780326453980696690918187925055296994462285742239517401984261599488446544960429369202795952680920539695742143897373075675014822752244459250397950632331291287085229152521676811011935036553504776982481688892774328950071479838159287651669496942621414301869690030405958211631015742497619965314282559123059389228929726939492708131300727254854995039535579473876842397510981419778308980325682902102321164798829905745807484575874843101137355866118014688500850108263503581054382904656349869310727544189717985113794092854375123084732174831347951072284001097130594155681978167160709313207740383779450307911947391160114994791352993976562974633227366748420551314491365686496769360219727236011083369920169485012359081839493573756231138245876457810164152312250392744502119536088216604106649430558770486892147839864769327380303126107183747168697539811367486433683884093240219322253134717667802121746767237116575921368724053387022731806178656326035976298864257177355993331973134023921175592467414045992114175736542711932067467958411089521192149224705509397417430257000391101498400475423638066414913498045927200096711231436344366888024243670223653359738203289097330851703881234866187217081489432429523906071359301349910403478194008845216176511719235433636097748971381703728482645872969835337409187087324281002458276135938752762756835664012472366637349337438640503338748485958473412895242017341809452989232478255893207151746904464105436784190176181999374771894445112659862814854702634540269374388728741604722676466355588336624169933829297018088873679449839576979172308011793642159086575665531208294935129329513190187867916801974183338730807515827225148416244599873213995571742324320067938557110847542097582816833333850577023786766000242898663333996163750506121841623545395128700238227614247049772368276413420979577660882340852391451173687190019451005734586750180733036733542948724496531999485447770591684045576928499983428052075477819496985104170463921476782200021561645344462018743791668993457605520482412231674750615217702101012799782974344289196391590176104737107017823918265815277971594914730595236610930975388957863854058985163398128853757535414096466012214888956462550783002322358828000664646863107740113997296449376956606903285102160309417011890443537855103979748841942258038502959250940477041663443950840489781491221102167519142345087139859692492687184049968005286688310061598669433952237318761196576627618886051890124573982527225982045604906776813523362110895987112150024828603437265336849030501408443416511474863056274052605337150887196903098115713930718119515327848295184890611741041236382720614426807750949281780349913819804610918311187557951970309292740982118387842276113236377533687451007421281038597333670025267401765442844786797120307814968239258700353937869711595030557043886520393909426306957627270596303818257177375498867943154089182377853731653873845405862118909507179866528987175506233021255344775748185608321070564819635084393231400181213739054578368116898401434816554213494798427447719196757752649185207704535068220433919302988378697898356877256200466263994197155534983222891144726053930061259855689287188132944386630422499064449701048043885933789556167223379878690484142345213509878889746080015794395422635225459852507139726584905025159163029336860042197137523415651298527444089693256187091365811725730850356519888063353879514359170742538345218027236131636321992271421294220902381355374272975722600828872255204022234618481219191921674496686533973585873844637621601926877719372490040181185865661308459621597677180682531288039999854870261722394631695435491364359228585978591788617695069774280257928382840008624707350102558916571557746091888977343429133250431594510435080759977195644012555778533766904712807505898086611683289313413704601180263495455239019165264346821827579928864465486499122721468090927496969334570850760429301680323004485141810040739403834678604790843753316221412197902913021827481003629075797046063642225459918763493359695899011319410515122248523046483372758963495229552808169667919667154331508844092498030798669457907365783181142079587438890863662517282064922077337917316184889166409230284904774483872396631144014386907544216838622284727057297594977896206949986783654569355800215436089831452750534629649512741951267231021128086445867503375117796511163166501456397270147296980146395379541171088589533953246558051432283242481247892644185137362359506605240196881349422065444093245570806954043455860902982344423391609790267350993251972547944264269434816254001541578798022760828494509259271433704794588701154302936925179676055054962943953838650558870261382602810074480832009257466648075084783900046554594721754993792314245302065585351973980225799192493688396033159550229161500010749001414291640875611944788388180838932682929140135738422120834488402710160719229700720176737926779961138652524652192888212656417940501901427931872043180185330779219367108958164933524419880057333256621019036893221227458497745818623945393607340266117832219995433827456681486487848238630931406491961744624739679602607369179434613369641156973398865789401190491464139616656168836355269825601894130383856170500271299718562559741494875600777568163403795004580611279209401757030264059236863690570465091197039377236882170326277566811117236555776249195012280427417548853785635781577652653731603749326748548516032092681017251596403476089860392668436369741109196026677361807685782681959207785913229977598887683012772532262508695980333144555355929848620479910612494638767529407010277371701432366656559904538437047993611896110840219361903054963357228791519846861594998174327679712478546238799256660156825069519802605470233664416332121542222901172161903287140864280072521037581968675581940259514459223470761494981021956034974628814225024164788493822064959952101441355564746844965464095900616863666559487184564731024229191230837018572693690533997085722296358153475102540853446067830309768141646537137985394173129531505470163508039451522773597714675233393652262700876564383544151629825137121011144728257237186725263778333570694786450335579496075283737721513440719375388477596179439125024528833349568347327104432879321098547571172885247169114717926806206458434724670612674948501859776159612660637698601932926709869752432807281260285357028845828862184504897292103349137003912304907510377823059503977725098317411361636493063647821093741782154731232113978807549137016369934940842168220840698450919314250630354015321435210826958055557749999586565915234730933239812790265169875780259806177225154148783130137422728035808257316821100535630393711627506387158089717624372272188036524430911589327794056539827379326766754976812470178885290858417703134576121724167327975679669681312456782795914752751014752610990971872680793751405866503542657940486517421861108839204247299669916106393702256611060298898004494509788016634609775101937782978099875912486959468954849438262641755081024289704105772767594141942319282646148511335116179779662700771346063213485166956963488475511078436411392873911933277476278994538347710166799238482543151074552744113156892641590052007531987024612327797939981281597318028121556916242644241311325352812156024440863793411345935029553830001261302457778678742714644508080290388538655598194854259778651399547024746018919192483446677123988905227634761575120893088589821729993146314751817599470481652906880802151171010256446025108665014564771309284190990375530615801713966652310387434215307149506201792854040953347398025588522266237746045039824665197295824180490901570818585894248869684506008908939110285999457033265812478950944676484194416131184576680047298273314985700052206783074537542627399141524491585173612982047265537875133678175022262626184173582175693972106253781327967323995746690108870246916729826778278614868213544835133223789483277113457598525446376612532590556294742281138475246961775986041582384571739320586700051193682210465241581773267353721969671721740192897348207079591363826018150161319225344924070141039841377500895526561638956903032781575096058398543910557734859840926437913061410370188146068463614229411854680576866053104238644888327363349527635462305249059646015441549489275563017649549995814955183983136447454891745899131550472711203942315777249127545378005729548874625742902817096516145328052766979258255160460901101920217768567719437575195901180928313551940833861337533365344356850385076969432205053067504776557604643868634660767857681259935146492228271762549336657511713393246587669056917747520936354229787241125691553827256344972783257033662825656819363398480457983517713541940363983826578757703606772912941441073644587465459503868305144815873088641331737797143220504551760809368055719421980253718083721885833723716201238645036143637858790868629579087799672418007939782072060980731047006685578807626171866666344566105564574571548488381618405898885796513998800329167876599415247162211673010816588214776762326726754914771396128003625162796278217416484259823113051276241209610478900169744659761152470903227134835324967727207554396096975061009188765594812553884422134908578690602090942459753430487393094948802091154557214102622823337030487662464433145081476189938627780241000929883266865941985354120609496830786812384226327808017413483787779831249144739043733497272187595447482502929903549815212691451400381956724012924931604154688409450989900996248321328171019281181736772165379574401295488439251245399389187113906479487458717149506289120948308116742764560796807070223902701540185056677981621489449886796428084965079390331288253130309275537227491201002887246136460120212075803541767318239784326642511531193524563406789191184542407459092814485946782016563565130546124550786103272680721574697160688179150239474705262222343592673278453403706056703476368635436870105776667274165546658860191885964371094040668801965251739568650026913398024190532368595924276672784000696353959727710341235486745247376466786685297147957158628312493726627408668862681048852763881725659450571070503090373225081354181873174444858661806249180431870004775843663555900114026403786214899322345010375472895806004475090384685897086528123108980951920485853341916758432548096320243714160560322206155243266037346424868261331707814331801186874507035821932621483586669048165300145410219062560681309986710671790258795068064770907324482552249247118022286508542554365193429946277412060470754140553358717295695922495881720409359166899435282262174765103758129307553096767731291033115790323773146985889640895587919705058505741575371750391878649973921123057323484072938520280525801299440036572881450410371743199706135565005401501360795983675714685330133527460036070033681782854685294294611512213146280397629032452390516607105560470373336711499520199455550197696368912699092198820810210683352238511484114419548908420264811501379219446456183864344075899791792734569040674937754424662543971578211865409014113653566179872247677060531846355222780215416295888103431705999134880920868747481884821463155172146995653459016700139672871510012198688212697734258827736607938720696802939130431145768934310823899464095937285845689420841426648513835033584423330107743957870305856455427213548034939426975883499377924334156479077046259057992056606591245362744989062629827553024794215552405281060476311964285409217869965384012602872597348421221351378611342678626435035615089256045171979285740958277331524496711306088968006000553495094305633211857863121050079531177038426723232067698564530489566717276235876716466603695549361822460406724522354553109330069002108273758812644237649900178813783843232620774888119722021404882011831399608578036998879476929782717686577299183480172377512069368927724155770380876487933154153205767934701864167670552532847477536050740221506599141450683344381093879255595195606679893996169468115331021928233189154360404072459339291263800786803662512412104626820151636770625049993954194011795163372417195165276298309440512450173878391487865650561454943146082889117169132986436084729642892609614293487218816379534690123104550192070582005976974562063310349573446529008879110734728687281550118972375722373777845511920306135600023893287879962127733336028583585769027324056535763728321417611955488826855391712854030206199196092364678870901985189623393083405803608156275525968671146162650376316140430997358766404087954443511037348458335600310832605390828197036707823281193402110177951291956187236939568281032315171791524606227337925107645011852610628687122578203387871472246960797336408751947405501980230992947546737643341711874067300369304447228590312793499514852552906841292494045510754962140809027844612641430025787856007588439433592707506039794487581877954233631597920748102054043915747400288161269482623895520669977802199344237077723678267763661751405408660675964813214208934065340011947203632941508707426844838712295034232476057589185154946929269594170887786544477911461182657862787666389095715046630888605549447037844470733151871208613743134919330736624419507997408956355504415550773328877765145154821789784399414003659771033785819505706943348569841981879592871766501758204703771433733300304189692502347043845951853612815878097589606741148902015817211363309918172396919828302011828577762959699404400509855780034205695233061969911814103472323893222885157127406889047745871894576869037719428914489422507234261602624913495703144780117813717985119605338934958744343220838616071080059833425755777120351209501662478453100247679543762735791947362082773135040709636064771330699014537321468788019890904326423726674720461117133150752956209822462178124938499976876039379342120780659696149365476809937751400576454696069954170646486908278832340744591143926597231764568099579182081072939716595266087258589255639439298230288218357457836118702881513353358271185839437563276579163354930620986212715740178854620837386791077163402032999655392585013004698996964517942207794754333447202256623963922640153108607842199595546738868427644882085559816254113342299801335307074699940823639635138554668876760310978785856442818936307771031309817183351213518712312778494952011884896211729545751411234072966222186704742961643457467332374015766726866286715153224034076935100832067545222343430369557430266862164081898448124642095466373911145014052983950701750227034283628268238725769134242445932819588044145987393856545214746106100013227921297816175378135730013646108833200399603919953724485901415551513870238646031742107656055281123217073504445798207332152779122640807038778850838805131850333908471098482621400565059989366566531597751307351097400963303162825201985284915178532062393609070661597288104247487630851479703296142130964255340957916658859336092692782141661878539374811554001550280829804031218990342952614352209399322745691607624204849242078614650910479910738820105449702911831329976466937560863873649224804269854279106177502543928058484811563775223071516919195421835609713638003247567115004553620839171742904101179949065882777321206416625295073615770423478211506500749211094695896427438511751588054469229537802694552754529456935304863959140529969884270892539844463000495473180411068887711745553246468060963848673632666988246854684876673988162466177601682038277873883065918628754024634862012757371807036220782214430190099640380254945863206812932059332719183204120301347468492248569910397408219777357892874128598295341925048998441841927550663935661425437664935811278802047752690177540395201120134464765604065742005894756031221049649867820859359130335280377760229574800897842886146789558007699413969261290174480182645529371927087989233186225437185037111921715212147488311424122315104541666594757525498966063747184438663116724765290698158135590753317885824578902916726733914957289229272888191639787907479906671827220514307808291746106385418895233554877528791197678838605663727545238956087310146810958888616518647348087852765896097278110003502781830160867753071632109551310510680272316329883316526384684638229535869489698435086169435227238147030548708624519038459546606129641723055279295202616294129476197367651340048929627035739556522576937615126882345508347080052074205980772434059576378630890820653990502304328674063043474978798612000777529749961476227510428018418116520356739731220610899217984790769290733143937072543810285901183514536296623996648039522586414469412219511118891631554294506809655691677995771148727968602005286417258931600243885586243531407963153226659072666095911106668129161832616908508066744346923208527225486248173698427796494869854282223477978325549182459524434540732249379833123560513549879944716384085821479828084465765923686558380348933171058311820329715645655357886597069646157416512613528574103618439067682048414284182192546422546379041685954201313006088788911327581516252907738785020423485787155534019795620145175511366291648314936160156065797365661626358670501397758916616497838532565628817257625951404723570229745408605211809751717289758776151963522170420451663421529245086109998640639257472347078821365380729444308592941560275014858599986559951375273573665731238923699094390545679602153916887469759092018956491553461254635940650589071608320046059223846597965708388566218567507950689581630258700254438949779000231221069331140952631226012993568615649690967400171999821816876406013080670891270092126008381373683032000597744268724254547757024842151583190555199484738655834788509091102814210089934036766428962380543523419907588103701114198956285432578812316046881273825706938794528995682767368861727269173016008826332939014984345612498110857923130441093958857246973260630573333643605544801361125460395574370783241170125887048883936269723823594990010563839919969792055661583022137924209834167643908468892262742739405282840276924569236843247564319031375487128272441946454117856547676283340777781243050080016551852108901970182531781362304484851188691904244210559829309063516760177973612090184181739651081854626301904083482619425197375070654816495746422383149543750965487710865291971302545806834465845288343696373845162445806707536055536836884568221561563282867006664362552262924413638091291110139388807365761731368922444847993036532117463184734678188819295151590754461646649038711955615017390956319404741979809975434484638467686022619706298441805817934318692453149740868789301505598934776003226187560749857651781681556218517910708403024403169911220264311147718037196267189480806420044543248442034448419715464984148906685747828615249494224711952545131894004221879560904086259771912055469411438452152380720797578952763208370028517156225256518543650451181019979272046323359466684618011983550008105522829867519014685424105118128953899289093023799273210413506575196346854559983709880699488592307529006463664355903390111201262143828861574720759991098451626662368175856362437088779831840999617322242369610477788893257732291717453093178740065317579007419377699997732366138388662432429699210667477975998829999758064642776610008943169969311059802104880715265911890930447859282234090480451720089000251836278292920455367670629388405056027342056937838127855830344262578011255822811654661236349388868633379362861032377878282631854249465602880864007888075211941756137600011437191358361494234269423321612425462763051693144699912295929064181743597111448199404292641269529661936733752927488881722245489053471853997016012210284897407221638624904613979099459370381689045484202774618918778024715566738266581728634749634148132224536176487071959770155771246684963408454113517613399896753203204955768243077487462827678799516045490064620772294255837181182874892062063466399062276461223396260785779364777609847018807851348656387762957549086105888840632875492458354525482432146583752356772101927685300679419347456593142901631672222846861404849372206095467423439417529513123829835810096821110146515936141876177551879735978130724786174028871248963550046785343196736401099281912222261783923719435751837280459991521470188821374700025430093734501000941169739436508745061877777526809734101801110170731113389297492693015494309415851331783154423005697520699742360105277913524302512458532997195602774207753194965150506434137218859981143393488622880176513448871000320907622261100218781797914819060570171488631667592749290340568518209865773263254636615162069161706836424308566588344262022362508395313801547869386728396784971719670666366562905107713525339930075828289082714358633785084921763605540702210225812413326709614854860656698290788936648494268195207068295784401123004078466806357465408597073542983361760321232575893096149073343543248984083850498601164438549812677589577740489480832515439435906421024266273894914236326629194917773374532156519472600167658898678259797252722537519526424464019966039876599447081234473751822227289642443406426894676988381877251201754343159495369288345019729220343715893073104468696324725252981671267407106336143777006277845904769409756297697245618413252057887226600190567848629006451004528433921960080320887560990405601959970426285454732899969626944737190344177002625495769012666440016484097502881334349541669543082656627072275537677395469106130407099217854770819784258208241523058424532520273886938980800023440021284799120240997691773758418427875829915627677272237879691018184648732851704318939795776293773630430507552494114697252721998486364633396740525613610602824822070215177810449680814935580762945407491758731991320395837911753278520919126796351270872429647209758021634264850541216518111985852108164530479052659617477008384864837979052174278407867161919783323931873286717929614704269830319345849990079174235533831469907591909145615528111456983229317603845196776539630240554725453819218577414817782786894218314394743565821282453345866773805611610507956084038572645788802848441326049459138683727223594025667848449221784492955622991763136652794959971095162486463706805806358106479321158249959016768848716458701274878941818771241462463767285154245032486664352490993466060523516769786223172658951382907138823880072433159517986840625625122790606079258432466358410803189537662579443737379431248917373156105265212717134857336304236677479228336196255103725477678678238466696570875514352590745778106079576099874019009640765195320817570725330630475353632658783188957394374634054732330739765819880862144021392076251436544274982255946198241997076953343298957650915147229425088496382177307391806391072205561973028397423657456034938703465566543461649663868711870688567437341677278940432564673524296108805261376652461375927739377369577471147865070037917553676584496344607827627474879904033310618418908745128597058647747714946205024589340896374672825970080622152015400702954529063809174207349109547920873253040160148876889345327407334349338829441470149682021543251770218280301557347068210666605105280064752645569373079085707574380263518381221991632741060330632758496815278269269368237147264675161229317209385549479572735679214467015092425564720660859736207469519545357785687163259622983735749683637105482543307904166872848163095556395425830788007377037000068791514110893134402350262412985916619264393160962952023999272143285182575999662047055783637947205732903031857538078721506052973464808275465854226851461962786953022809020754280455356901761201718990690452421995734566949727712766219028516872109331260924974482414135836736921881512460186581616983523046460078031026264486767221965926008050701536413434368337797067785757434729144698734432873599658139280924712381062901309270748101298841000836594019271995550522615272250279894573474900288633738969341760048245933852346238017654043932487522452796194832029897069186703019954311558847551746377860130336066859037988026935143401491624942303255225114625468968317287040971518831125189245395664450085763874756078654930403549991403852065763024845443259640251005217571333873450138741755864773908465416858089580453893428790165182972478440237625933216457796711601372293749123385544560889387895326450194130728191866390502417957886721166842582118319571372977917319595078088513705415443753581481719138106188665946494726511179392837029900009121619013463873800251692966852390553358383122534719147405340057706891844240105453257387068480164644355894531179939860791506676290796207033778821504172737109380121892836461990520236680759457630776144769793238039802994339750702024571706472294659332215263475380339258629381159092437717503579929633978465288610667861940178933630609242285466158727286483963211753042172206145551547435742305641569998473123819835393851631387794422847526257992197427157090554810584175179981458391559733932301322048399951262825167551244958258672152692571448300296737793205943054947080619488830270278462106764259885378807716262503760194239811410258374607066016838770828397886230287134429923149455928116066757372962815050673822269492716732799174179717878641324420714037743157358171436765035399353081705094713829476310032864786093271238718405795150933054404254442980683469805807016076538102444259581589063696584353758461281819378916790514134874441159603071011690711806843464333981395273470752417418218058265963806273166112799607082903930517130143976911400790189016272959624127249073533487012264130022645277979806898117216021527544872884026890928067406103726574822202810959856615820682367902930426404164873815440825109639819721543476177051335340202025795134509303873026608113076683174663030278363442842073019363315499290453541831952392256735761635963717531745041202612890410776450002154744832353126222976732668203927663702390581918479196867906864154612047824511687013168916043284222398568479462005632684333320125173222662376530195927059063269881178058925282967163528642447349881286570142221671672641908503424707543034399047735255615709801537619582514210341321413626555108431087979374610644727960655618902618788438143087250392969911857277902341016085060724561069530528732230374747899890743661011815433669526698782876266211050349633457354806021715549500104657095062216729181812558162489727596262265615034542557688575187231774431253031823011410381731115175566948654249444305308527449192493452940450987323113085723651987979681360951489354778272078620771388978967391284400873095251119404938483980340478346326232793792412162334890193417746403574416861615812620045531879750349399443119323501897208423584156092237086785732890695214909224721460962435252074556305627539710512793004214469978812000040049159411201344793869183201651120780068414687513300828505403023750683060335424814185097995929991873630881050064204508765189850894634941233371844638389896400477700357082136262205832509599688650425652027885487114551241665527402424062688542546388849093691594327719104043496105999484048114215104431256905136872807279086922010050834236885723494486351184772346764678098432871617507286820627925580293839633041084323839679670569471954140820792049210370125855034910690295011339675403986537718450558684970398362598615245485984755999853387926484554290112788355109062546129128378715427906337737670097850405453882848154702290329236703009705032689491892606159637295599628892709426358235173521392150391661931000915980735427204607481868591591815474001316740417276624295347430482033820105504024285334417320070273883745399764731451995402265706694536464074923265059816923268037377912789281114874522505909541848824668182171633724561481870884760194499535349731684102560780637487195368330670640580854892212247178808778489219021609178630692756666927436168747079787230764363044674683651074747913168650392877431716413159731816973183891710650783748286646758823249347951545630827502513877782576889897184417046715626653941759959924085635711631818797966848915145492118798649026639568899257096624947451497155889331605180981612180061171283801738662660149146415912453134761666144382597554068442510904032236593179973652193851588638130042001903160991897036807497741655844664438267661960248572436335019036567207836735632468090782070418843325218999127294888833021865788303585019075300559065553925360909428826179975264289066295379671763091180504972642360186514252259812106584375689647529898121821686946007102796512745166714114112000373875939009752808982083049521130524029337491702250824138989243289338202427891089580767649111576305104274459238208084585481667388224288721231283868569857160652436166688738882212285360417660296783559374737197120994246386285761277575339028673991981001786775031514916782186284346640070009708839418463357221627951558742056163657408424195170945594190714865153770033745329542141488374721508081785077905505521847528382698134647153687253305169798857275178451435953405379233516662105192986013859001713188580873115926339564491955402109056578301254436866694842667625831779063902253983642447659792012831726928195275007533929755516155469230327653513418249268192468999703843748270588442703216434452220028499859750917299625345616453625496315089739726653322191180109354109993113926505089714624254355046667469354018809733067731509519123897334413279871875562951826568771175187334954005437124574149090447274231756722957270232749290069530629283078743589613117098909278945685868642076948862701237481915155088489286673819167566271867948189179189813973710088421455276432635859377215713225607506075136141146769551362190304078208618342669844869818730500012213260727047949743199960554340759961066984241030089058928902498361822207242200090481597341321471898988850843371730071635940205010461094096184191808666334675648012151773743987093682867110664979296611373603506566090131240342273596722393287458692587221572070046545212473228397390870089097102598006752355129796274181628308503765270216701200321719681340220029597689203909411481493220800519599260225065371799902033130411333479152829863971235465535733333393967274344442367584393209942106852992547639619896669247226847364002571486716629752440602821404823888580393512993720705887789777561361374283238159867970836036016338316086971978047677595641853072334760924845439529916046681113795016205404334491765561167920187608828456436825681893050205646896484128901316442412787191586005225402099979068672128971787597357042543233574210050192535181433397253935945532044318048353724506883504232295269352167262965293369144066095630914108526250298807663527954825079227103415519019617809822627228252021096169765586667116786608048259875260170686765732242386031654798040225251749598604504506055830655704730508453159821788105697728983111051483635545371453796084096556686214104220756554651634412170318128420724342727485109759798897935082901542266460027275998935082192311175195133336425797043678760997589991339316968882167675162365752917500297387396008814959584396058020196680396310454809644890396480817870829215907548172123948029645430762341198994497331631213098843765919658053327299257882651228655952592091059327161303005817409106054190205893053762932223987073797104456890211732789659299757525659756908371860910861576697966928879948745531462421575287781547854202064156059929246791320132005605597394057571485443202658244723035116994575173911164363163184365555210975481794864360880073404303214558754588953912336318009397135434714363029107788426951658285169015208335252733276585902414497164132165097326005475303758669140128091495666641247467176377601168754639375038850270799855926504429944361441006631843223785577614594091709462229909627743031482082075817942699288927829250421743312625943124199960578768638812633453739532535532345315767570511439331176830113114125244385494743287051600522166338140322190786912641450645449480060904299327945229796366376528407948942344779832765973268147294691793673184686853442361524013642734349372055920917097452831370259382884897581757559921682320384254102930688964577593606581628078146664791543771917817175425447326016446658592985786593011865542516565135818283115682409397133991247064402283492074660132102961671476166670048181901901598500250369544953131052754237944822134735622449227788091175273320064068523321624960559222391065008524874415764360411841056060226912561610588839065994726191224964397488958254809438475679026621683009658572786040049619256563778954908959283890004676719845042729223626456628636771510912723697423686450088057044397949028061374986093182332506016480362636552019293706137743871983428202682704221609570322817167529393725835456498737691317548609068396750288817202622210588220646067218757095453509238130264587486202556603641330492106590327678606915608314646908606155135221928295543143931342480830821559513311443442855626197516565190774836134317732368310039360697555559112856981712410997012800937040419130078194069702740533155622804846211860862381669952965106071734128531040512460460597615886747285820961954114533182645476272098299851563871236127070008579494243969042245665215018538349434881282675312475210146068800781526195348811837283980108495904158332412777346031366305431206856634172783495293271154777039534725374959599698204471327568957429639551863246668039493021680557207961750286939511937113530167345029829801645601265245617916984805318746780425440447018164251841488260533696721842790899608994623526390599030046807951147511656265134664098240643559778118058644325465325156442457585433934855315867376624201350651572137287098045129568654572123484124502943660630166352187898409005900990329211980978999982465717078911708159916949539523465788690038004489771038815071058195415848029000921993971111024161466746535146257073316148132804918925997172159980232138421707890881355396149477775270600772281015628215351042396790103940772937816840569607078414614125037786307986430114919658485839055607488073223481406761515902749141485977128401395649390684534796593617995708970890685756231276196188799526694278455564391030800443871901051647280457569384085500541381709957217328777484751819150422598932699041726400368788114328853750094282726010806887611964031246365296196649914037695959416692117378135212164444892108056644033169459613620923062926660141451042320019920864242776686193506983528529074515913044830398884509001512718808287920760541238770571784703842739307885316605262649984420732423591442777524548697380954148620429334833657266641368943776532494606947344398557349317810891964017004759347743681852267257776170463499535379429859169661791795243622475809744954303530759589126860577079037986804953253293018448985527100630921228905950584521458415945509387138728876355009014108195840730385613222457847920465760886202186362452846798557749992791279435671590777052168789388691805517005898348811811965322603895344865778922363188098134216952401626337723682230864153486657566362187546295038438227854992789873048834811570188853518012858693805758495502370377849752027365292539860087160484158369843630791058611012599941471246697006350078977821218980660006160334627836605902002444200173537839523712300651298261260564361589669511869343721338521572977506665484181308639254392907736975382735646521916288676741740686417253054589800558417629015752555049433696657714472210153351218080407094305408419943553652610703287608247975044636805680103937700821949937277200018354608953969090624215981091747554265762111657219014721270507939828856890306540381352522122664148073823396345665873326562785783809429999286830136401221622554356706373318235841951297166509252165829112225408959638538534427029895659938581842900665068620210305171759739811796439189786545391729246514417978299572702552990516085568959854508786742351323724294281455817165013920734919786959833799634217015747405336623539850096734136236584565705639198789434548382328440979429083317475270289266107750388840735798523489395822012859279585739876131938309974832332822077533798370210234442361965828745493964437850326217073653813007026451581629504089958470506877789972806739416227936719145949177142600149096419155533794256205322105581077163408742191013122354167343016350114486158228241726599661469567964176313087831679444744677293934418231644965482591907961474319307460311910601041136468613870812960620638958233687282057190491566867721132075491750090098677252701120268458984388404667036996806599325180946950162550218324058674149673052066453853523579129508952365667981928919390090788510487416531943745111807567654617691543518063652999268917314608283953242233502956820332070954150297586842470340459582206028219169706864799000790409614974216927028038809547287895815169211540821701814297756360948327030908501925078154332974880950393030825414804215146613556114595480339746324429511625747943603904021709172814721158043241004672742540509568776271446212911066807979440524605169607555899483077696931133864389461347481128584824254918523668426414790857955083048389451876865196231380712300264562231414733591481314159847602085605254878214989163520153064867655767322410237167415703363602440197357251329080245815003065948984926740082817926352058392247649957699392657205039193706574977354840230034000498989086741220641855007580497119721859346530283539800596432202916942246587483728429556559323129907446708521255707467271373546589919920897386932644395368937363185078226928573385936412819604869597940147428284480766378331922917064483832742556959067587295939456604862382045860353877854179874260377629061284048898857232430379625189517571152330635457804054018386213556739724465097757738945080887973008677383578356005266834060850862651422101297643002422615139307517828349212325547973595158312785959018606098216122528426210065399009210515627256178887259653153389026899020273931211366242253385092532816731163196240418191549939536474471897892763860965026500676469826941307328501218845894834368235141762202184698386497500470417870541683902266870509596812837547118818004781263398366991867911958539985298311427223193924107371712208896306934726485836896820942327362687457432471647898657677710165920608418594438212132423904552234887427116048447495742793351039177003435313061840889760669242585458824796153469541691547134821476218073025662858257539465866558727210841503066436504902595273842889743904716782533572277715569405567988044867867698567437924313075656484556988403321417682198181951810412492757141376872207462688191833181514083774430813064333412081502984643518265350373079728653481032342542870070933478269000281660296829913143515221144911306590022819230039389767200519964949282436198925931577179648958806997168883494378303906217895386411849738445847715274206931375486812122229225654832888895801318223504266646477982781354968226055753658805800943470395907277052999365105994309790517463396443134827327162229280103344418805135541329087584272904826059960536349546697246599045143700279857984351965354096876092898109081553189601088227477598826233377364390838082784074180341895352579313130395019444547203378235080987477193752336691934508864581928996737367880771881376615290893900905126046742968762390094004743968115231903180210311363429705551550827545321465473042278965218858641897244638486855353441423181385758296260879276461077153278913395750684489514281305460614824060587053710222538626540569108457900510792682248664250562454531266418487021290393252355376337877328670535252076827098770971065927401794371621117370177109681345967004047111160306160841548618182172326385139992355596548997313277777230964297627823173803980795256569932125945912617737810004942839713551472316108174917533392563466381199651578216603497022547939256594108873802968466104428652331433859108651380892361531772005161499337718348240822274283314939955876234088743450673422889106955247794911390264245699748016409228729556988556586560212072849710401074996632622389682228653116255700451779680079771402422101501190986866902641989058438542179966308753520135577654950890402140820510630251806367702508878175753761787658821378255151697852909575619374725600829648651568086235729965661836922737067704895783517950636509942441433676624521587847338533729202208249746106305800223654469513857731208419074439744222163293192626395885150517813274532941274749170357214267584792256746858852049560603553401343134680710904377674034356004464566521952473451070897207026746361542833304508112149171407561748702417979002091595486060399661690765826920224074071797761058712662904245434521912940267497791299560805146148453888773900871212152926611557872305253861061239360676628233898931995526264556961501903432503457050315482675506826681832078956291883939773777025021351343145380832069543045824956161835725015099570457995873770320758288874114662610027562019639502823012622294945243492599911209069304695451180955177857104328112282321278949753622071050677911339547696102099265883088312447568342693899974840376747368760790651988671859153586156763866722295625727866589650736528643780875344850522345793613191283432814499217128525733912944782124550372659699086686612752448249339120381044770151633696563953907346912126950314353264867278031064549313511155411710814244853613253136330933648855212082601560373054441075698567322507080340988172349163899782481960533199022852966382616169852325491951184405833981610435037354483718995411269159175552011429982319682891999948288234848765000136148469719859498437233270363889986680460250923542156663393029077775308405669623105546828406114062871692812407649897027935235204602508899731608429277029880600798028437498431337368969587936299500938346167601679552297903131403427674082263207764149306203805565403487449852925480938592043275666007939459007588988215158773056468368327117802235874669438291005818474910919226227782422857419699069915892593514622907365486094950887775547252752799500687177630537190648664065224508511787521742316474677932068579475923200746943598605645732050630498563511402619017160144181009241169106833852241800341590716215466177278836053469927754521888476236011949881515618649633431909912507846627214947558697746958742341433511567822293644212674400246116347197377919784382114933053328347793452850236513243956046188910446946902953449702795677685382037998370938356389375685432677205079890625929465887917291282605711769017660053381263762928049591839091104749019121232278724637906046140382256098427241417586734586530375474374235286564625524330296315767445681630105874928420911662988525941411742910034444457742803632590037935313779177238199457852798628586961111230322439850661310379308603891713298362748920732590861594210931529634802192845489041638688889227597173201180868596379422665796063326096067373120340145908949868223916789581212541811237380738925469939273983780169237441828217118356073825734110698121857859133225740680530879286358133331745968154777082939957997424021876560344820067100549233396100030444801586077039080720475494972835165598645038949766664248309139266752358111637197981034453943653474455717703159367932182231110873812516097261662367935091094233300152896563167731155327833952345354294511394420635889148641099588168890514299463479637924568277770981099203164572997136965241188809400068822235779345436530521909584746551788957270773554851395111441663034844747569759564647261016742111244749369764438422318216603074520035478088506843783424924222299734728119241081124290156407219978636865080654178301824140914658113825497070208835538926026598306840449308215527673609561433635875080743664445481747593658675924915393165108559388391588165936766438138691273265262510082328246609869303408058638480282087696350438178207323685824284073345589784830777343467837722575855866833836108021816584277000537597290510059696670162693364140671457106771352265285222345465474768610580834433089685567497289643550662219197301945326110305648245180790930685152189367174607438553087020413127868686511740448231376198710779004255891263001898193893135321605331169762406957466099116969976031778858176576412007209217968239541507930407693634730054399295712349008826070854270317945172778548383673146256540600136974962038193026572863834285580635642945783395497062726561027903403982114508160938954133957732287595811193562811738777251476490470826933400654460222704149317492829064829207118808921848128433119372005702609401885894685328432094392448363428786392787863883130369005625764230409366183053629595555543242619851449999884133098433047762072712913172040068389830050331732989380472047857582882355461519824767296040948282229282774688632814574070713343650892229160073070779846169428408947645469940771101743803467332057282817258028798465602958345556809428189217477458141727257292855039877689451641676773583053572527094223551599182468484760263443545430479712560661129636793697962291820924039030874945031282799495447661367868497298687984061672546622511957332224514705280015051596029380955477573987898440202561933033095483636734681480248586693766054571089005389280486740453856361801654596416094460460198234421675307326315576144127229192661438057612335491259293630976203285027826186881911127803771393055196232233669796874093689589248232802622426594074364593277166717844518844592279914380474892555767314409208340090902636911535850797498854037255341378655604434274018334104146344380938900893971281371598269661300825243972721595275998569524290753888378284676974786728721105077298272098366185950078082059821479208740521022021408971908350690857646531848626354026600198930152821215335909667000350232755506328086344952890074399663031782504873861323100924310364084858952400545424428239634369859626977057494853481912116614312883539392853544093890474704715146531007077704784828641644010138815739082198669048374046831794283926015240603575413653117139417799323346611818391444241082050543495469879014845267148460986903576793055293582581860022414347443831015848800881902844048129578285985496092103447765064229799519183599050958851792220867257866781563285070342433401901635039052832426973148643789826138618900925814920158732800407719341202850967007621547767276757696212687478858016340405754506675234843276051326668871688765388048063131316383686425830972984164061785742280091541573471661882448048013798962682598016811739296103892086610652463082621453656591429972503014406680255951928240301885163301958780775341422379108353382584761014045036941839087857592466588722162299554696145862758601737639108307230337734407053457928112278148590677910143297525551120032713000059238411430854756848736726131912729191352371444135927172547911443603763687754678074825469388342912587146348861581887449125972660379892652336467039724041578496591306153890749307507100911330794715889563793537016247358223595200963070640213425426169238409544817268402059104245353329949165269244170111813216038288580394229321247585561770542934142964152738622671090770691119194646034648999893434900025745067475301101867052344412020248598362437944444220848664942747768525706920847134876366984630135258300672362637334678529232460529265503476817977837023533882105129251723262345319244823550472157601068328426029114006079871102273990513833131341444780405618841878996913403876735239293288105882073166892788222394175079267061978291800853669178589715913401700101821060645511111294375250113281402979528011993920912233944001376450352187462456416570778598677263448133146177535098703346907333443552623620764286348606342615114674584557863007670308769862756516767164841377112515404214603824601920189548666475026502843557567359455019884596223933740091395254780772449093404282416348275300397146158716973207365920874306202828465946043856204823316630377246177326163114856162388346004029683701134669374112435423997226401236228256608027891459376547393233952610382446225513611815625866798089688041528521534561821245848466838044070000929055209205666134382915868013014618912751568754727643473383143661728179749689710226205559018181091547219926581568392895704039674525220808384929167991863581840893066547508888614464179361173820032048969024369947920671420100472209519106955842735702784930474416575569253989129309346602630583796524462813818207398792884738513981414541971604450215798751729099455431808405124139856729701681790292422985621455264374639316371913230689600084923458431429861386730959706913921987021954896111052320976978684220670400411656224391163238620407559919809391502483017374650223892311778225291386453979703755229553813573849426349223044371076759660715049792611368864080978396196877719302191618977314740158137934913867222980835978746082106074068584062210748410307466010815780192271890396524406718249933108946784472572433727771617366949028726455975995705931059805351757028337542931600245537163275249907457560336631890303423887625982330344774319297759437646015084141729799390162728525284424511586720704345095947424817471611144405785907145074087834123687554310924009230673056758129682174650610826548281812163892473200812683886990930585688643982216598051949138068651691491889950824833835029197205067979287714400445514274081308528873103413280410487444401387639589165831510936271723000367342452336467804124391732910685809004981356128981426318744183311736625516431473277853359177469857643746678187954303453814537724958141219130310833642049076556743753191806103490617079624288126401636905700346326279696098693089572099100152365614657145279153939180815321577166698959274652802676357658630238920747449563217477878988322393603276112302234414961200318878588407296913950934358877620648709114572539514107773309725903177278065482444440916432945345077784292956593247048504631022654644345334896002760440859958492668779886461514715032764814324414624248580372688120781668347526316140317393253049929973694982624696992200128099764841114931223904546887405986316418797254348472791439487985174757743747806778582011547027519095938936548407189460970426608727439288942707394493519393457797567199844897639260288797583000284832096547082061847418031006213815698952155934379506857759897295705621293689681055759004387168927967531347788768431668086355448740867323510565381218626546537732425234034583077217504163718935923038208793011012790271863142082680655285384973810227913058812427948179025356181559464917763117152693166850977190431576782971226011220420509922782178783125721478844066518873796177910866183554225182659200262023617572281053022869266936296144427755614870268732122103069073559802218522700059429666512152153478743138712410633045459841733118088189071414920149386182677207767822123212809090390485994940654563733260254452086534061291850791990389609217140603869370901509790160302918287098632056574475747510127451168538629166343089854908324508714472217479405146840180551408434312752071672433253731561855878528269224039431982524853273820771341841411138919710653281996690221134041398967013529871135021704349029379682781062124371006651931329642223685183287753396984481116098304313097133660849159942504769873715921378700416352490152294062022717038830039186578229434985502756888156320274030940480442570682727338309701816310619583481303616398420455548539016955782347116314456399341563526406986746665514808240366339967069753439086241611863224088955960272688121369198134982755547716142384548728485682373467001489645578424566632750495076838811466650755585258008026046931691502706540670174897439327179141782206291137902955786781551511126882175638249833035233176257226723160289556893032376962842588059319707022993727060587408515980202497287268336173918294319831488129142105917235826085060365033316402980899503611686395021812738613681191412909087068114588699655585729970270930844669446197007949748076903710410729751734220021956239757105209773243579457425093348361378819223736001843531430371956658013702924764366775629231725040469604563882956080867549658101788474813924329120369692665475564922545099498882010805104202772953474945110183895549607288909923049304108454892340082791554951169042117762885126463239747722048431114203163791168921794720479706342063806813710034374445512281593747920456013618157826276828326739647820871444658926204137753988807876939844756001489285656705324071405457140152697264929925509745970273576003648081555794229331485595915022780782678459835590553526089212592442060723245618931044433544460735618860047647770552101603794764306071438566917803661656087749015887168992955667170433205806030251126597785620294460826355475486360615906229153689636454283603131165181191201194096475557004411787454701095874632093357214177367218683353654096822592110506224492181134134208927254235495749477919993132614438878578429263812160868243855281949274551154677938519970830180782064676446227114097906840758122650158995883338096865177476008134535065966081468744763219976617125482810345075372524996212456922459249327728386551541496084749240236571271976845874816362930409523348873648840549982936508587475502436916731204105086094552607416025348784544918355994089768825167383202437567064571254617549037866866165993978950166184750608929332833606842654554947724868159741431140487865262013278219372077735691373696699029626971414347346138992334204885013137137446462760799436408546509884171544021147650841940212750648130198171012449363518261569049920545927930066865472966439281897422475632051919126792810550831567933583114409049029637994257899098334526741355510567688330803438437188076475653668811874760629015375272367814491570864094766638960359097582665191917821342063412169894531032828060507683338558525518450988814549037682086067442056285685851598897130517719203767617544231198690090491316852094778231173790417882781646878666446329608970236562845106287633093917833147929165525517740522553929439279845389203757387298397142048951298962140607255183014147576401201508197334117898975802017433997697890023597899443469604584595203236714361798984235105500445871892655957004906779353010298170837713527540666186987522738878277325238964233663339400781314078798685690264324031082883547320540702672207590412978438675592168011781767753241379381971179334399430788035797210361852685930110510597894132582585069506887864661808528407854191689511048433784066296442199090588983466964906369749324498728985090998356155381887678714444834224150569765576241212232564506752160417962271628716466745416256668187802446526882880076664422228007845908973411994685105124622310803239662666444966729520646180283782363634129234696664524467926978752185191823834042500740070631005122121590649380506584726820255087766693008370214883654025492342991184294930714727900207668767316406479348892890276544614048849219979548030547918624490481582590375446974632355665611054847213301701924916126145026874432369616477384335473046790042608512057253045239927236235947060383679607743407834687839359068575732046259860674496263369931292411006575377298934139451441046858196910371675109745325368919072522406464729895889045529410893128014142090514893620430054641407792588899313348598407881804605797185038096302876327242838742294556967650252127974506098112185452673550087151470720940953376052617129110224437375014775219111506289773501361382945939364746011022760426187531931834485958739282007293529009520988896757475156065288824592560536118394955144175958719347211991799750891971375156502070183916633452586606953906990123502030522547853749537774210883982870255695362558791642384183829419855432330513365202615913253897243163615305327466800916640452664006005926580902296407703424428786833199637378209433735611707232140415893009997485711063506077192919190075913097997176036909561344348595816050310622537256907296140670778192676973081640987884169049760954808573618653662223993921700551891211111829010651496364879323816758564021126366081144973534047961316967610534889230623297134033160523482166389948347090913738146456000976613675212183896014613741368326231046157071863014662367475169596207454829828028997406889645136508273216452753599013207339240272588807180176960912374601129353605450055075280744024345823351743721136024698305026834313849116453587109976363339429390992790632772656402869138025929890576620162685374751741026754874080705054110675836013744415435430276350373712186652795534529420397403725756415274969602818584463398208652615140945871052080148586743403104262421817192907144470798037706388439210756866010178259143393666957252215689068991826067256588331007806616331017888974396617464965770308044339009236557047943201413197376379613092182781863959478865560702098623829931140814936689823193322525958816932758665912613370911279914983616522924491387050802674485427587217579092765293436152932546003344517316068281982233393012554348813699303398889602983130479229376296475626710690617011392053737068771601111824575468473097849108470866335960797911044459996267518906211465290196249841062294261281176864488806991326867465209644126543719424895184528649146685117234303050869747391552748140919270234011245482844758045887308938954630955384289805103912335150200214633531108683706958852849884475355316749468051111566887873893256589849992183129771882541586890351577715338448812380325218940789069008287080361083958048278655629184688710298997112648771573182352166377602479044417344170093206513096515430351942194893290012373417322217580849075449323996057805386635066842834906041020008628967085046889347233918602133824397917596353183888682078033737468387541414027325936461082851390597050983634695722760014798747271075667141689317601136084792648055623513203037371048721353769157058008203526185874725688245884523931773351759191233155230124565796186748045571149627942275335732136197277497446200683523568110320283186660742894643946221877233472296991158952005803638199951334971003334149585116625189915417196450942435995259870288796671361574431435647050852864575042479903773320801185245027684181587048862041535087553290276395485066992422101850017379920885938911811623490632468583767876447995356273807171857365533106175853731363523183832265104512840182691231018759957756322954868042005307183737512571084223071031596128349649281846238035539180116207507717397953669176389934099885287679701770035491458526824007188356192823225880722295626058683447205623905597940709202082673212820692289482573601703256209860030763512538584143178379292010236570020601715650701578241210584084209376963275710501058087810985250257513232966920676931876706954620946819903242257610208003863965480381373995510956387760490562232812399888438137213312341442099496124011134860455339962268438916465626697917585802123690538341917056689100550743784818021435915986974407533509457322798802979338065140814146771465464202708248402271950307072235371896994893021536527163413381445642195415217910975243605637066974912552941141644900044266531756813225194190031325687866107200895484386363014024055595920985141992711166993370465129820421920860459862354905445843855395958425861978628924133453920212412617186282297369071243285775142707416630984918516649420379203837934800306865956251264889144132357891943158485317714086846039218439755639788807946580319738958708020636864169836298634073194765988712325692869553110869236699556510784989936439784897235105594202836354963102415549617963860239988533667499353958393745735939109368356966633883298230462626643835688269234969527405878635560330040664166685558676367242450491282040767786286282525268391523894678465650879942691789972893027157267017645590411071938509786712155517147224500589422720244919407499607453682958225485781221760811211148118548208049293407203631056243696983280059012081217021169157272586613318656140017774049810172317053943135256671811196909055535439172808637490714046399134245149955875673440512302373201582897715589575044920894273960397956986578699365090603205218306780245952395172960479922783297975940204940573640737363660380944900359773870200685025678433336155372824402448151531162627117790082919645524166797622168430028322832330819993572422630125481780296047295873863134605290994796946470007500097542660700148817767762487640420912278888008359470246466922144183140172322562904596824951723644455035471915766630252392318051376153922844545556635533404349419748134463296462417374614793496548681037961179907858312826655109768535809978916226949871683392285013414933439638023609862205069866358790226893933118831303197089335726191338377580595888174274736045580234377096228139160139575802406235019323390164108044890385100666362985641176800375371831496817555769923316654608631883834585805976956580307527965813104697715460880904940486754517124235539825659677265677885104833500652102754695861074671062869973489298060119479142289878472927173989961528320671575893386271220215561258892613089101036653227302010692993734481624254247455347240432616575162887322206623517006557235528759088411475096586151734847196590659875524209200375563833418477807059728323916022926727228230238109223470087371649152266735734099515129463122552945211420036280494529763926796708576923320529696969125689807019985809738348671254054553165084785757702083873066932784732381256702875750720528162619328144996599456727842593255354087618636929465265938851840775695336815656979415671592505792099987820504260036881798404069568962896730359986163105079862387863751759443497517896054681534827903154913221037735850336461159945787960620028173739820429493526159922098919157020768064595077339359854125956332829607985973528052224813490325267241049547741033421457949599528281348610778437307912937916037704285313245035296712406969447279480501471548798920648041114768261510104854913405259168746009957155676650243755467652632688546998232255869001063803647306979541039514919123394473064458684190007663823067927325234367964837707313959364657827862261042021364631097586148876210068685385802076727883726418824163055373681941800869551410497331500955525348770108814093427384154011070696310717558606672612719944916264425315614821938107041086690537330977551055252915261688256290052942215094835767209358914719715340935924409260563703151590357071009740767042111155919681288275100112990984346527379443224702767096132420891543724310236416710786058348824155859817096407174915571663313445596343830382323493231314713807860656424688968450070439908160790224227801451337642138913892713966317193132475900518365731487332328722471634944975084633910652533555799826150691447140981923570527150758726385539241671089946183075803038168541341334312032711781492387305609782547667443313321313877258687962117760638935583142563195605834458900610681710876357086367629673896229553342601551561397199434943574416978730573920134476083485187154775718020452608790770719324160028219245150070843952071326323673420482165974041675733115607375791694016359156293015244888810836427164616464802134869108254843570259065474556952791813317012611644400545770344299019984725505048190730138460447716487927002045626323613215856651090927866208814860841011876053819079778033132184101910275719521605851831605090912628262387445123572225862652165148591092747840827976337071754702040740689071167551172088941346162764727547119227764454330530501468284882146357977108629934486056480252641883007835845358686971073462068583621205076483789166563704083340610474180280313995258907973523528181901088840552767531015146352942374100383118749104020221439214737932970510711530023270303035041564688614795582351795925242567824888301378527438854936211124101045090456022244151524333898711694297760332739936007960550621207716310766025779353500932033397350441907702097257296284129603485031338186768665107728131901097162194278396730357234722427369916814641629338410619184711915129891344560116228534920520190260345470693854159371268888577934456733868355272732115935419498401959465843746369613278649294323203630078575225256203858028546369216017586206697124742401546386355472202230874479971665631843093384991433733086502574482571395483381610746615851740308136250742805350798776400207802019473552114508526773342284573150624691537749196175862464974980503637350228736784604575891703140124109198648022384129328702486120767295676547053116257905125859516685908098866440553319623745078461785555218053269334026471376606042351931809299873933849649138800290666571213999197018070409318875986664360671051399699581735925846193918319716602286374623984933043519812222165214654673271643153651706351342466784094121858693760353857820966393788147571802453105803792624307694901521895721278563450323012760613600657463918802499238223971839480285990722729323087184166518705144565791252953651664313162781748839727932662884036447447971511080417378560115699291314322321908616483219768373643276567474038163094786192361550129933348017754840487323343210755684556700749581668930745009356062665640522789957144308977383262002141085006293513933345616170349145847750276939687555656840533533995359011903426844470367216411130130686040144814143954061406092426745804866882446700929083405434882760742349174801826372929776110452493119535139537489404909981008527623988042115065441288263145763917838250129853340370002070355037971114325457518502254330268747693258918795946682249811093076534615098090934223297661450280302656376811136949398547877845329846813537399025266528772821591570852765224383785706175584953514972911537261779710212497502180728926264757495163080465718366332895547218935008775815720453525511536618466201127266328534374813058732192665639531766369194234638964185523352059770048967736922200810729106252048883780232580292761141535759220176208901457204234976266538672336125638147442736350713563655650184306330862456411506634894290611207609619953381006556262373628368536546638410759857850459806235293793909587540713041636682546595059609129810874358758127831725328765992180850404649803566884686165205287866723652604192659143357098055704675376789217982441615365405872070444063644143257404571397258332366061858435651111513728115204383256953006443799237423279876541951259114362139432691038036003866972885003211884577315242059324440527023249896108150481776954647527171455612016418479315369160129521904162774404686801005634332981079311869486816243429916377499280099500098068554159014108101556493276845804498481311683089931508858761800223640653008184807190944578757869070405942349188813862260490097896460421915720493262114245693742673176001917608163446031677878697978991739451940634015714100677375779664445629691209431023791082901458776228395828286045342109440016522306340241044567966397994225409680878799672538025664683985469999107392804581355952553142075792371081459478086561156774255726979279840753079973842871387875072830810178081322838785900698426187072304869154561308832673922360260202353442128784968448686058274534647549170424924883526593288033482993584375499137169508030717596629222732059267128130982298662396937646154192610219806224400103038057036966086014232185918035587628454704916563849871572196418825434205685707473447059573669639290960610225773018617044181761212363557171229318473539563162415683996092438702706972213821442350300566862828040967097410904583841501288596608127265776813966845676895704911340726671728214342658260086307088387936023997405714195882526195822197975885335173881283357810036260850328625077993157216991151057935894836387665291091905632128009146587378242227411657361610843949568627147361202727883934976816408706280745514987009110889701326729599883971591122488604779126106503468890672957022481279856051188643448330507173569232354041893666583886717925823650239158124273343037368952211795516686703479495464121177743704615815309979568519623612683024261186946564445258635365448703857118716131439418423632164444912178204826863294262672693376883112406522144817150776923028928751173915770351928043982097149972077126828904991164458105137960988031989261579076055033699368613214943045729016222531803189855657171565858705328724840916096163860406363474106967180231640889404640672030621514516361358349489943549029688970944255473493459092476547318017348077263446000713988624982104409628305594199446460308844938131139320791981161250503642220794309076888400747467066216217254580029766225616714591551040033745495931476699703079145328523412345915775092060085552494581272655415056119261545119813130172312852962406960720611479983938501405144294223660298163109727097610820261169228959975352962415549895370191482089129560095920754802689439706875776050027143684059553902440353289619811784968732772501556892537728747673667541525541912261793131313945559953629510031135078613782272244178299542337366894034221372077019471074243466248436614727809344677255005477866509219289472159688139359279383230439374883256778728711123057768208439731681993852429057179357273141717749086064296299991171252440889609228725064834328581369616564078722009122628954246054272349638730094782108915998068415048631531262835828515818060411061904410795052914108153414789052766059104717286833711772873103270548526956834178697108097230278644625351304186287783135358640668217605705252051129700719752641949477124250082960508485923886220771833965646009204242655821262417825209889642175316805753397543657755668502886000958342582354852070557597417172601466371381547076529915965109344965749193378651007183317328349139690424662379928352049732374138756921490795095732542507899852586134424516085086077216686842673429655005048459185719175095329182240706352304688468874868518319610039914005466665844382545793815457626677983133018291820236643031810220679852483106209087950391071759139353895304740982690004825183238450853581489829645365009067508771441596235114014721735573985751761290025830331389661150116181057821939659362898752575697521638080958031170769660833622750126582740347404193804581915177699038246927048018691125933181599506167578919774817929281421889527620737263100995176407146278220427203202792098883579956934954222750331045667360126558594584421899457194115705693462695928991210926853326040603682583785585857711302507246398906731767287104781384988365945345305191563935326005430636169001403765571577585058433199922144446875320445212736633856490699575418572341343765685140575270303116010435394881007961945641118214178727068397163667947954059374170620159706025740397318920950000676244779110141205804913767770340397434098845635120164775715614003359418862570858395796464318036468744098117204028931043943207177091123426055720517316576823660401963187945357081197218459159458780478292639382416168640506967018582961169686918669380226097536650709190707254064084130018098996881506653730637993260534790377591964455846653123095679210940960200812545169632242802903052974385223062700755994235756321932616815429563711078398166501423760672339921734845815997100976681352082763974344354083780104457281793097340928537355061457058032443660131220851908831074845606826449467943532332281130736487283612368152427182794824921760676713724511237266412980634808856801807771309565544687846227888192253854469779098327421614281846585640920495019773255564166615288979619969645533621682851614934306080552701083416245984545624261881132654373998508514712481615857132091241329527760693917749039335226770482349029207804816065995078771688307596586595339042050766037706401522524042219130066720993205267576119365188695323683788314378912452389706445671787027327332335720238417352570175468633032312093101736899831190501973446149243805968229780495424356765836856537492448359375619258652278048890889645592363023795391849194157968677258229714252037989618425468132449659074827148014091953306544399067176858989325451925283230559411098948962285075616976180788627668495943506035823983248948927886019659188311574312513434691593266281136987550995765720032309508654999265398014943628935010938181117763126548389405772164157938933753646296289037991786127327737691472184194252850069216955191540812474008966836491713136028141437441375750152850227262665997324118001342614063764752546302476046375302875478166127829873342944367332537020676909929945323137164652217221294964673134023942174476022981284231855813272271868155613492932056296556406113382769212999050721866243517112373879898647551071100379377361197153731899534438424289298376684725207908234343014216801620379316580852538907347043112697593270983755274955019450942809194293373737769324342642777734192948811332717635727223539711904734785378220781232529716001426111196535275239458021487699824139366876194731995226025554441601292879747645263688233264905247064629612609480885904481930937845885301396292104571685700247370679687573578524150833913817457733842323471776893131005593122481990320288600854973255545318863932729652596485868489032804599222362242826458308026527172093611558428016979104644050322964319122523483263831623974991509707017387386690016729976097230789696916368998301951319908735332087748929514274600257616926723745476676009521240023452038327046001664418587052454426101657312721236287539855631997729651533807269216000601606740435405766491547219439068116346713663180403082506353491352788419328756891365067003863164124119061531462359260966766209076980535237117936112076747255129068860971888740834229829943291762420348993587511487589054274649124461829368122225475315687269334750916964318588199415866209710059750656054694735158471608229364179793477950036718761230674259636962382645157480235176545767660517485341075747993531293703672990978325744971148516019740698420847868025160350671393763644259641461804982355845213795441184505963779255705755029615076891391354511170309829141829833237325864637790048361195410851720661994264084906695191215071066659992469407343002932420054179069292645232253522098371292248884660046789037400777976146061460287924418223967392255146559395169199097754140103782487151209412938713679628510976307420989478214559783333047463989893345924012856058344210785176086266789926678202838581908130940567697552523188269129026350880535971118218510651511945771468972044143562363024039916829030904454071657797187755199113906442445768940989155458727603421881410348075284555712176436800623921958033224388112705169214649799180099775080351058841022764253052517049692270809257890126654413475093058129958264335686675425379144674646927510238732712708017035415135920162933026249371233600255792829940615471700818606492258630606104350946597282210785837406110676320801240826122524659651026392771190140363366637900653828713539877067824467944614156587009672275123524018580132206634300413977160781828242111695842409282640515819088731147808935016525739926391177544040226870690619285394077371664017336129077140519643735262315152839989132307141925971488504259323380933530906111861551860138582422393800198320501387823695538924908495680966419186917433962299154334723663117302351164431943440637858438355561359082429040344566693815254779807404670009568848869874827595079288977507202964385248848601855684015246169060259901307558063813809035988888922659527989256223616799863184839182010291603275064704981781036625908561869027767179837983023850377372449264290527132119811443479730432572226424279500219248590790339123602716816313147032898788521019898820242221262814281307516121400685517269436327081351743774532645144408024004101877699529752810114538374855863720360084466454420240075725398346352485855354539814451945597428923194939959608430013773789294540359188087983093365001788028001024058705533880564270572395804356791806376468800518413494714349797217604976054119225673838133981971713578532593360648154106724751074764413390095754264975970506664389380401992619529174498383361516793147502681366573754530690489353174293741674914291340349372457298141353302703277041171087220108756661912646278361078917596377334762020896226448320159552334354995428244531067378918874463135429365947786399902379934318603847244077256655131418426668917358360228586738653378495532418644317359762874503229098497266127807788847500228649328129764331228628309575320931959581065431467094374687213363070578426197545809549489874978433012617796038200339106164598282404208923183294947881721929215550905432087106728548779893023289964681655617767289977728159221519342007120333913114934931683114971057339105359357241159987904305325966814582706456668304377954019713361030182764469454462980211607870526174819979399011378856864271592184092090772187243965695097913554727840987105414761559106256501844097875193053399789379498437568896256369881075638788295124990585098150899464655852581622999226133517816120225060233497587654608093386306626362694930398789022674851304025360259522145006228438072803735980207147737886377095717622001993907710224680161640734740211164174797385502882823785582070427803238837784089059220054861699941718505712344584755359172811996202266117214925110333416785095776366956886624120931460511012902783841125506643222777125432413399164170249767244618897329031032020573432898893726120568465707161363405117922623803883309171668813646297017376117160664340100412508981265772956123175652252515294054035823425661581414345350706884845309093027568551266222697530880955039224113711052348880662812828030013713524107781248453396650221347302205665880016714564405587928110573208291380564200613544086881889200495438076887599479274098749748036869819388841270264327602533737459153818546694768529212864998732243881415153494101218600360697628195736731758593356079782556326297491761491318953638872905982594802867188601646150691802724643205310242878524145239050681733140348716689219939157331511284569870996075662484443127661499212956677231380521535106210758394484198188716001720294359940826685354589750222211092230701947620851166364206764644210672390216578407746469839472238185353795305965607485425236192097411131398394827643965789974919651337911046501121284518200431496225410826483886860634256169959252757023939394524948370813986275648473938440500542237096645452819577473773621271495182514050905889728923567374313640352314388020522425627153310442908895736785097221497351155306308020591523710169055458004734066558965509316851225820307880914962048737430318556385473858360855625580764200624246992720210044480869107367509554690850169345270534142822074251727513974828149499420653132777531946987728100009259820980994295035597433882656269969403066563707653338100275032715259737577853192510124062499642237090871377206396752467329154619304503746501140612573581306907312809741036807846751193370040690397792490545772274974605607273540480942978531010618364789194870187722390930677900420145067055491633388099096548403999725527825455063059392515202734377242292577282682598811144175633296462821994919635981997040766381929196880852413200094357851646865518331577963124930522625828894096563972617775399459428267871330531958137731891539866192543121416298251194232329714813087982912765398850749222834579348454771163435783006841902898667307023222521374850625952625472953134372815747583863375812757873669992349934220816893107674958474001192672171258009872581628549037829651201424508301913363763547724215002201911729271813278537448425095403426749037516948491208276306203759910606212189348376394206882618360819025392572054904333246776843806835210464289860931309224834603706166198270340342416492299307290418583698590226765939885164095078774331822913164040864134155744468016778803172970454042028130224774459830178294064500542295994612687951940903595524391417111830774988964762870665447284297942030929459140214178558238219707153428271244458959378939273730777051591246062837878369696331625258896687991835623213961177220945487935715714254396768133394596501142431443118275291492965118029397635124901155191688645125972696854214370681027323717114620210643483392057676531115036072546127854288205026829591470895852221645820302012641591938111227634167670418363974738710102934685160434646080985101510800925173200623168179433183287381532853206636011854824078275366006726265254696841339542924299121926803489964752289644612239237986412918183720220414413751930414617945217293664246636732049544218517492345089709838795174320591658022406578659934784563057297821701060739077901083739572114617421050410678680921791842802322593148253864887575173303128638089173169004121754171923293930107747199835223223228287833389993774902953101258592197520670317724997056301702254982026883165444085610133858792457244877169807433333873403620522007276686299031532506110607009365401507428657933462383067289766284220713037476493767837921757771067358936474050870977200318415523168470055713122405499811172199951310512542499110099103405782751574832072866291511578664472161210872401840068221239782916354547364670812602267468254886219840692592577984100439398002545063386892772586310147699012500668884792894488957944656742189724065692302232857263455547591546280531965264445807821739316607089693420916945955829131561599654269856443684587961524333764126445667868973718008643451776034273410659821780511710555121570783483544185146845492450370772790354495248992548514152516208299404871853969754472874182662296823725359004408094123126956824097882535227192394106252446032735906818056881421882731022062740820780112756716815238558767507109130708840569347475439427690838219385064874716273477228458790083346771376424511745994081898497851215687746426102347559266084481549906123312625943958293167948587690989441938913737764727658369753919541751740244448344973449336292533355269881968784138908565540247488541583181293328372729336242018622370211416050538974643998820646574271944177072295717703082520575005449341715436255469171347512084188726934663823566552392553950711952894844572638020725729247577672073125540091922901713489986661818511855512512522389695318140688740577123362886957659786934020488243623662156745740630656356979598794626676900576740940509726905432761715382500479274652694455443436445941712775266716854302680239966860431604685790862936825012660139109163691275833711560735614025880092738952805466706823805516427310680060389817070151909304899152918219928009024681755607564877872512840712249869000230579113207087993579575651267893558100047320242107530319026298673083243265488410204093247504727968067493534703100515871867011415087619438196769348365578767383576155778580259153326684604152351263584439864445316249100591969549195974249888792145603791605654267585688062999649955618164911631292354835961036639358061938082662541123169227070227842612307579545580212351889457650868698973354421647217350379584972535183779298293974517527220518613024377055890450578075651497922989042811976527630830892639640687565180613453754444478975821797980828557252378217248438098528364004912342887319349645275123876812107928410344104080683550119283926524763742948942783600680971544918306166534628702327825744541696661095500118868965254989282294803026711173092592230863684648023841398901447886949407795368004432942785971448427204287706820280087448274133414884203539761038879909563719395455670204898597258042136364565356022034254461214306366140440471872073512339454856941209545968265291284707707703579830431603641796889666741202305782991157881898800159437673338677677736322647485438254777087739542164693719951379708136908723716493702097941880521377336066592343453682208082530172776484888105589577757064639911345905639611514231701389313051217637848674316924798431147364091027616911593724067735121771752079341113349277816831323872830789687416056109042708799299262659189406764133680287189160160315797134996309109874122319761035381459054925143532980334797656724784217549606151647678129677086943127046621372603786033000687545271959167268679684283556118084531838425435081817933797870493703952130532735640232203252427012351606123173729682682351443009947888831149698478128426848035993277668557072643719716569571409650936792817117176012745354912787420478741064031882389996904425314108031481702701622424567019692153636124868397662169861093509046724883343753730201641835609400431730047232735671026443828461018968661175082686468645295555124295599666419486290279550327852914704964308685853833109252899872479519376799455573965072441712440749971352861605901873715035877541851508116100554193668123136272710271119802671726803381684725025791363131250357591987003038289439938243913860155510455510687079795336562855136152421156656416693100580611063286467753568644844127745706946614633471003369417814299204347058298170036745309417819681687497287320820131625731956984048097249990829285805868417979923992909808671941680650605194942806721070460658721600180103921258187307362326885681982218356993856864971819081633917986379969303222679174395377523120922284202493540076687267251921900920371004012816966614642183375103657196717677799706716852097078979099086854787608005641579680235477464428522740178665648660636228000368395815355804977440657526664948776289637083850194528374376356838930520451400871723199093115135041857295710046795264806525231832230037187958084295639764097351406441561130736975658138841267679578730381052087413586574212872191341826467312863093688120900619487581294297337819567339339215587706087997605305611534758244135612966136616115626664652291397226900210989029670049550623113215117089730531445854974699305790295812634455269128683645847580833244444803024880081375163425624030654722470772380718418935083617085749340420226124414337964634977365639077014239888130234223607230217765005678968176919152072494236278193725882300059110093943814572643297553189468317794533996307521867263898976493737480305637327778556401724905599948296073385169649076343657296186702590232549161240026418507810898768366671847750077833766430418846479256420167800464836345589431542102780763892453026981033630679597374899595073848444360073772615164869147934455380463231620265883274110327972791849981807758877149542584662433267848567198692427712181658434060742036150489843517736102653274415634337074736538311076136014712553292080402500448904651118170467988078954382293079813748884621209496030855383946824408453810262630646774978087305826840500820085433484751759235159171052117337441835415996365209942995162898172373433494425865802805176122427563459781138213359891351866089383045520741928701158626388724721267442592028616919296094885428814980710636655341789501128868894623941316049054175191193354955473185083407996626344872549960364227948130341465404834876831733808446025999494376188692438337935118620017815082618931470168182644630806389040789055499946980589152081926344419538792976364248771720297240468726173012501231889711751684395288281941861180437658515822827308877084187406779684164945492884999732026601896238743704242644853280700666126727976961096593729814785117275074326582897357996141200224088823653466421438754984277480955163494444104656153243485992411821876170976055259435931501114165257183286240044753863996640608825470610822216265179024287108222087032616528207250876633944505916153367880927662294271112428983648128208964226632006437056283213840649453206209833392056184194917008996068377299217415902728224901977244964176116626597100040451918384189440244158245748352970261463411571189531233705177481780403944974371198463358506731782062554147225330566645085140635867055984595404459242141920032946836754061576504206357413575232786814215727031100485050083802691819874803562669870482571329002275135993569422382655384840704505667728435230033162591744541746201785609499991227139862696722403276329696468744605892516807243389868842618978758134035854771159501904644592899933572440990949293313630989306303961847585128237523079783676392382271731171569415830466075409591713702945453008876775963630362262738911270391847859867113246721709881159932098535755569974280786129607010863274564426127289102517815690234115406454115817306008976527522207285261483448655099832618444295560926661753944998567537258539167964564960967442947917983586192226124866497710734806935505279138796915191117773672513042624088288320245731121632454731999254589917587744541824122400322635236379931619342729148311027079303947192046723109976097735979435986317250519123767045587665050657524272453248080150977370051188794882955132682033441717590694995516998403290702199977672452928204507953655365509579405859720173706619875902850012183199480338066255013504503425459791696614589275772182950694140968541351199315342758856431977937179468194836056204749680495146173774700611203512958605420380072546643029827546628985939498699493148669490365477208679999445304863929504822836302517569289821654511468129465176299950300500123355388088620952826472237898622628441100134922555692452440268259674857322227098151836890737751531971561879418441084511995158805430117301189675053737587002472537074756822995976589731773684196259563152669795446891509856799652645685325488894998923819500897458781720005450861877982008563565171345073339089322240735346346649854271207012832787116548511667559404646540542673292458458080512236791668054122196016129699435282549118773887234908406491584589235152295080910680164960420170708729906115395307500645973039191617086485153074009439099990365535134458070708015042315295311047488835041481191406309588023467293248687464108125159411232633936777193333874056202175075070418467377903073540869023041031995890672846757387102026518200614918271329500092060313242752227594531538432629875981890839140241448471467410932723004522183879583471740529679563271649429859469353744326042373796272107062387373482382507780022132844792012018000557218418477078424828772224474931483553333277617269330280787707557493999816155988095849793497035933603031848179968602691914096485108874204566077156624423550602340117650163544179363549669811421280102930135510540547745980809460325705478445820221794387544024468776999980449243625840078809873784146640013264689566184198746168471215521650056713951602732108256301280441813790053587086247289793054964860993804970470753981905759361372805689856821309850918812691677956009605296353252664101801484986691891443105374618279036872910812109852922095877913983312822255079654977375732790817377268886582254139156984837333002479426325656653501940280267165128799784264967684195806996382290321390305430881442035490669285224367527539625666251294432123020729502258592078526903709532003338387045893266606400911798072380074665716850017490514199568958107034204325867685851433310473888284533896261558949182795137083508438779238688439027625860401729241030537380513524243598899250886840312812945616885289660827344251820220839848619029772468374588431866859790443628160663424733086548986642561009146212326325216801422610767700019603677811593959511466183827300946424290442079424263719521654870340859188303642072663540826599496070664073946134019230368732520059606669452167921121974769381747613801420123114536276791716062665112056990277811596161814412056627406988923936148561711321734163945438694203477667285861134318324795629041467541551193883039419220982086643870102520055815358208822511376992213774000279058526666693314900359882425176690360599033980008191846059533291099254277900815562989380918507445419743028376994940094903966249893040351148430761088215496855536395443788503245672796620487957050966019881747342105247386310333626800279126144938769017609510266830528903157763331775024183238037193426126866274555432903015810097766122196236738444236040914332000113733700693365720122118585367173509122107514963193396210675002996865112967629073533487793415789335751918988266937378154437590115632308261134583665969139139424100188805569266841366542956203542043314744541848484408016287229497000558004284585778733492734599324066337652823069211001428608200947918460070483296547287943589925782819351607418535077485303393679642674239266285726795498807068050058182410430593303608539774708023083969329943504349835371894090347510859742950743298116822778272288176784160917867485708988661631101766262925617297617285170302299034629729042520249662740995817766530029897511224086051161695331452711575798617430533353648616839576758518607789637741373830050109008273941082037416378090968924421743970652587997220519756585784455885479735311479927181944220465281396504715864356685243496220382296346672362813139166288973383283240992013694966148730737478032362894749695114661889797435351930690306268874368801950578392069420175815371042201466477441571687137762854261406531438122178915986631753797023716163762670341538748770506638578862950249424417635028134644405976488125775091465018188525768182908632488377734182786376473149543449880492935514877597238725480160304392025629208955073872216741478616809478804909442121825920956866176276242887044736555342579728567974682379875765174281583267559227704941302753835642024081587203069591733673235936799849787235501212278356672885694107573260987487297867069395485857764080296996393536120470488970965558717475972469996088819337322394913053317390016869888184873397464334538579486251916694714591383981385549090873142587703823044351438331868826929343452179592681022607676494057968707436587070274317464812437726242742692530626350004439077497752999434791481476298607081476799172912313727932965364086985320118558460664160088101729415078077170034389029684018726765709438626040940651708515269767991890330694585233557671344378253259528227437527348958663192532632677277505334902496842002190414376211242276547790675534469263563303531582681218653422974130037853006036422630971662885185288542926454837128913313326598487597139521504259473643713432132893788869339634110786394523358300072743787933240856475659355716163292919042918422467214929317774731684716753321006101622925509439410598426485769993389572893704154466752134581973900785109783104210161274301786447226250920409600610366165278573708317151785045131541511265886436454218320196331732325325763605994837803925549504525649332692787519675469237470369849263593533781676698558264090922335684622881541133399647581857603269800357764479610268333159972084785664731243780616027127432805094668148457282047604497966230625495846372516999613190799347743347676772108590722019567635709226608276440154210988506673719378762874937847930400491784787887014950346773052798850234566548187544486153999652015299796629395587287448155730089508881732897288667333368342789327238341920165015827312276394520120513965693551616389345549334289057593823319144353506002789523390142302715863857122460049318497431607684426340754642494455697523644882641493667879120294771402043714754023265477029484693708541742652264938759926976101560597947380798428693763350722492247272768188460708175656928540706475126542725750863033116352198960494800686519649396339143794565077131302928163101056574751876876524596246235557576241987390582273099652887293006566118453280038429718833864986086082871324439120093950631730613505709909116808007384632867596632374989785711963664316764620061899064382093529751474685750009402950975015574787224628666101869750848988109655495941737299846656441704270158029364780196728875741540006207445097751741387460481642512133080788030079353550081207046760007469025010969499404950274208568636742821333222878979361038840605630115611525892015713146592809119758216797683090898865152450974350484981532368250898628783475587651876337973078376858833169938779107165545623255053072961962176226553890979391962957794378345461064491457585871815734338133475043136911536356575826467755318540013247131364121785103753725439471261167511897186743060287010047636740015419766986358952128070665466550853270455068121305176984076952464316955048401387558779631727342460802538069131366136885235508305725143120283415868451223671732148550368197452750465286883816334603461259664221784387249228070481578547525650477371188271467180228394568075760197921724474984661518433202558350691872392182899583612447580485108910052550169890796767037761523065512958157622646134316751269852479327694672034863627621810172385863251500586365042963764953264063910485986669109818875410978259882343541201956802222510959668843664256309910783171016010283909652457243261994464912896930800460266760786260273672045348458077064272963666938072587541419649617774827159442960995318960826093213869135699613701618486801306730071254503348821583071133035384342479327453275539501418119262177593349536978729905163904652116637464948006394387200906130537692621285634617622478501417293788133828685436165702316714471343144163738189523274179985309056721752627251003664206979616439255214011257882583653066056008541467360542142119361381685232767802394924083367607406168942116180605915749652842693546173249503693132565743495574475028606748057075137098248751067179595363867051871191427339812557498096558582707656686084326409174932589151933466233703329399343123559395931009182932469560278812714719318668408574461121184398779105420346266326999162564497300053023888755653836600735621055841056936732690594846169410351218740258458521652508166515576895467944305119184862606887286966600866217381081384232894364397766937926550699349050876051102837269816386442440495844812018875703753331861279351713965971804066044478535250432119615434172047068462325107015529194007304479797969278173658101662544050038882447346662583572820603123378323734600919854729092097460326752825440822615294781394877298411455533730673669658812122547281722990342023854574456570593748383271551256851215676260617424025088408000894800861625317174150603653738351124266853851683065913589312053483086857497338494931543010836221874765173866757908243211242955506073042987643096817324668666137375643421653520364302144608839005967134998209907164309676612344889879884980393454548195778185200381517727160982604517760559469125473827660674026591847101247633217198298180202386791100139939511206185557742056465797903040170649418509524719513342430250012083452869583561320456847702349699143119431953740414698163535991695944694115820899347620817650760479217797655660502379872678692634425537541620157875802269426932607240233441613633086408698228427955379636875424311054900739786020015436935209262545642174409449141609533782711391758988465780453935964604633737122612059842267498495556113350054852111267973113229961445565681111484313500733832665412837817355185977625674618368367634616503999316341181675701347979409633868721776503314426332948567207577152260487388967486403645111585828130597964003617670646012714737264065784759532470048595716894149730978660792147028726504385253091395037492505317113693512134330753246322960372552833062981856891897870154880971783127383231392738454692869862382137968119404883286160456005638753656844482142658628626091179012303939021864263649567681195407429422193777192832945640204238369000661543147612638557580722509443294348577553278523649394782553281390078312222321340081328205844704382291276826129837951487490650181957443120249312141484584537181515716105193664526842759356616724778744470488835369761939341288234957245019494401850951952215667115512746762904025692386074175543890342576843962933637380949007375347104344617870173333234890937446367871160690325612864729413837874708125071976913733987432827695637838335127228917469015025521194788650375302703580594357305433197977748527989961610426780957052803112711930025859430041836474915200414130972681605158297856470326221761670663709539520896581987558071424809264525885192943469378127159007717002214121267916569626818246788658171778259826354079076472469448190164784777913745203819207897577423354965566485776138714543383056245083345931358667282578511108705419534473664482490288783515234068853260452677150936329870612383805088660898940136387473187645543536209438518103126983014665233503873908496441289244420201988624958714013267265326491655891946164508709608359322346212229161545666104690015642786691839487224249954763455720496697567268458835363560166473076688988435587601493307255249578171055832198565368742464434455058817084490538216093548117820546192191099178228397573359148357996150271503916282491640970300448002587704905775056135682416864696042884358936038552455691698570661859814347079686749339421122683964834465406738411596328418672702833622944105178302523502274549134263823316142296118848455689096946279598067389493748450031790114183802739493422202040611601135461582455217424365919479963961416592518349197505202961594668996843154662872827037078798573799086896199273861547296033196764771471586333062696321218187908699061960032692943135970265545425071155589831090501138248009748126953314873892124020801094021537047568150946217637917645646909575776512233100798979711904301708989471986598202816853441607242401405642236049614354961901068545187852731144715186480182538661621642279494746142969790063836346892509013246779625419286908776134305833580724043962761299588743372785898131117298733152303050122363519852867441812581204092934578214553178707841211043686800152208349329732188704852909955000262086051064109547847286264875161493844587472081565600752885050763415526501018351820009456240552040136470240723161468126100837499841277453552708774354416495772483919145702920896204243150584852879056516989545217717457034935783426732044995007316423587975600755567972990460469648467635753617582968351172543009724257966365283969216195224332819430289996113018772058492851181868577375557096310253894679312049681205490233480423917270716399105328182480954092869660143904958917083071434334661481914046287597603894281123836296206626915089011643931987648314542471743374391001484378457528230215870594060788511024739176536269606364850017185272840878509836268905638421909908798330854174065320145536400025854520887205596756948905921909892321744391140811215893608649789051511997959335214030278700713242714660512191094991937985570449268026356502439708139298946841702827112168131750055542490606086386000444700981206172914294409189698875971829579125451490493625420197805396112192070098620561564546688450398347101820331667223427137235034290674909098300208088400970556365406876668502475256131026727354066841181316624128242596424107893665040886909058103668141206700192771086733148523670404877187437845825374859569391286395862822863970426889495160199186355685387335391116336749710512031510805304624184427556581872496215882576091162457318512123582145625845817147553665832813131172931534103432907786385111603682487822467565202573392699952739097959274105480067011788846783503703905550132642903901567591853018993919735342056603904544192750865186177200665513072553574201957101308423867533490923004598864563419441715794578474330109240248578880807352861191861925116550086238845745043511285601177549255692994180055187560482320090801362446816595102889519486305266032576617590378566257868349545422362255077814897438193103148898577113849111057591178470480575038886561417867058143952321851164471356919056781388186560708625081138350406159218530838419323938469692577646259081511147333028991691728448792313711835551207287651578482044622954326078229462827205993749363190484759981469652902855984494471935307360787093819938979014447134558844096731652888060200980219786107642764755988299936553081055297090203460733069940943809078858648971450682796788649664399748353600498225577375532605923549075992275244376576708339492151934473984018957000786528084648441366956741374768169296764351282634675000424045916998332125965034528580742880272939182745371748939814126531141117910066453566686717785730672992338002852013257839237414001103889743506878733096012965441417048693099788807724211853730899396398285488692231220314419126850295377276601444446404807516904316602947575877842738563040676931671744086292727061592845024983536155864918041751229583299094303046260273828601793017302146645742903491515977060687640923223042622387749275956594883889754453961599515318313738494283754541994790247444742327282192746516334071706527770715839139278149816258851706403207263797122084678374994452795061091649905630982521982902774695037520608943283282572945401307826510771916856036402688955669304075856949705762517356621018500870791660322357062601168757197087176913543409738970014334397630258974220496853391499818817277395774028988574632786540141585684863668955863939354988579931025487609598620391224479267531567189167767070263352748837795338282381982095249832981994905282395181571297632951277852310318888983002444881544543390799910251171423718243912067095734863478427693285771450702348956352376959230851259950122488758533431522277893602360877795143986695677696576600293917840337647200111508554227883247085404666244444373936150362673796857308159479140691293146541418717474917670234874197143999819735548619242945310770488569882467021180262308373833186043403147320216997878334471363141872967971567973950204358124121632173067043164440657864517299652572428027239270033455482033408106036418425157401199888299093021894594318795113877748074916705748667563928080494086522506389510439857519030286860300187798404137009119123144845266676925017749278221476122546157200533926945651116241217068141096625427159383725200140463112110002414995068109835591706453810619119422995735512702833482681250981971655420745368047873048917943878849106177377052474771427364196721944211839162605231737316828275448748962775972970080770773687869050261953782326472738751634093848042256932003334402058282806066388490152170672952001023691818399335936468992477902484579739797637449043057981455290854938109724169536087846067806010730159605216523458815283220133508885440104206994987332894893933691457164009403065200001238380260120369324826228096536485065014377281512079458415932433287937421950359530216752558918899452378143601040993472955591077147245234587545030449767268108032011015851369478252901299180111886157215608204011077065362653826303051428435897743937958722730467442202001309972428480074410293827052891747701929219928721736898442773085965669150564388857322524242056909309975362400866054462618378079319626969640016168156388481210069038609567222608411412673484609459059656115747593869098234833135458410892983527807706205475336193119504409145239202905343361812633383467493731127785684738915087653225252224941527494261472476384421597746213534638160614451294167691881303605314428349878885050799232106460244429351626865663980975055387385116294760865943628301638506299730276112975547432657270026571907793885568631962073780665731510208797090645181116061979858694816361132087521253174257591705784031390990468499864617746652092892669969432071293461411818166030984972252700817603865277169770591776206725085017574932049804015743663428569332470666717676045132978708946367394184702123675257788870866836734459551471885668414343725358711128997897149481694304955243644759256758316344820494968307968038645021172236073948395780229051127086136130990184676430920849694616653916152207888838738282431062834390333926523620509070449933922079270514271286393203517166997006452337210901460461339170096870159760965047739692516780311926686326200388971016522307613713879681795573349572935689956526571217596831495406036479691119342694921124579811697340124948441909583274421957581227071304152391431468476360495294173775926750927226060691548676768420855113674809853432617938433630280870909731291184734628589974039589568800624259583186987382652449140965653870491552128367557406407975149051745589977613729003770791197319525976547634116853142644804006839199938259679094304060996500996246775358747425805504826143215109159866367196629448064211224332226909651159371679207064951743022137706764803678662818659603360250806754867216314957678165210711048040017911658485910209954270648066097296860173246570185425643299256029163081522883396235960771650151622511224153216386221328359779565175577780115543714585011394835694844117581964190526733182381036367893121708926917286741241894093918426073773649246704491483932142078379991630119409250859759833698557501721236943657894914802147120987540147661661010288147405164648349375842970416423667467617629880167903099092963502368095135776362888170069036116233674459620527009432349140935870488331527239930063209694999347931619383903528571188576177114595065913770308468182002553927519469036526052799308088053136359173271381837864530369452482741484618987355636584572613461448460311479807622436491654454091191287357826555188517454376869542894426729535581727905329160400556607560279130535663701251514140416865072921487922381572587606382172826663611606634079106508559644935938091191503204371086961743278202543867693009832805407125344631508600396751439350570742924088735814023628587344154494403951223176750355102334345386507442512352723544977463841682968706756307703014665613149601894217336878561111941075293837776198158701322151954290419954965084441322598200334980293479869891679357367718457065826600569683144335445425145063522693710848814805669885830196940052800161698995518111984182261823686449935006198865436900455657032859257662334780542331603574682735419205149554605790545165891773189849205561756022347178297921505030688937453042105746210172775738336680981826222732770801706754711315689361845791783579448356352865715585406411157014398649873195723859558152396880175381917966927881805914480367214312006821799179885665495877417567952137493369514197400441227567872853105672692803334202720139614632610272198951053700245274758414313057025304687335253621544592736901045159442800686312810239475061792579036880885016226973398904699795744944253124334168241470099646757776885749951705993866167677749666897746383068600723868196692524790625137144676072963113827975356789361953352343431821781595672095989079712648844335826576296794105451056864428929784618310635119724986353587176366093432334772837771504472538132084703007360118505441768420922534819171470239677308535753757666148528587426192307780588540181285096948120894179893774075661547524896208299236420527073797296447900123449177753388725717116770940698764983835660007726651904750686186742465897945545858094474176030337391473370798265252841101323907885107945115395600024128690227117817180279853141662834071013170353078391240182291845438664275930318313271161277507222032673448900196943437227154802528907804522640882312132098536690633865062064232609252862210281739148957368119655617994511697309470042404947176275515437551804043223758675022336808534370555006111399340989862204971814497486836562072855032022323091712496023445192577956792539636040929859526669025725907312014327514091964965271451836360737696929494086009159454008384556918627425987521453333764531379899115636447668793395515591785654199221079921218999771276892130648400229845234124357729786220932032617406469243395010798317301821527843423673734937616787816860385177256388184783126097568164161065834199710021360592480748747061382169172615845650568978546309579157146480404719134174946347926225751081415629960062033130529308554349539293931526550080100371479292959138064429600695503332334691498722820877142194947528607426748528161076973329567174184599156372898182676465240799552929773893572470488639330509792257472174280898388971014419760021865467970534054456313992796722808075673662332399727208237774629873722702402935745435164762509055712718115725757838211941795491174463486726934747515031508182573271052628151662527724014675967457010925213184252870772551610850581731209068108277034704759119849493303650304372625294442812318428145492387277562210861412579842582215358837937019988390700394522972823678821350301360383885860766310669321165209597528033805918981471500289368428653497148450932507236175323994554481771758789457049386108750502683823559351019835529764962022227355695292616459904894840859807999468189384087630194865640836116199717624778791083669809673448343048069235947959612378404446786427796964415192381639912904490361793531295967351515435794381131579193257166428572680458601167249415962302232189599705775770850884051775642836561532842330428384846920705773069053023730440618173448596486676596877575305371206438315803285460726837738744777620848585753185119785580079362741781643389221603527253318903707554334270431737550346073416059897514323978294498481305505120845313937672868695533670450082036947067367545029615265711196141837822376772143410511043116156105880517899294073060996491397465706213711537991422686716078747781955766389005884333704640910603932392991699360029379360338262806439215575276715439054567200633098916153183446976056556957476594349502211803257469272541521243637571891502669727073632626322058420374876225118631519957001377999452488653570605803310753631637695858989487919594541724844442835389911861176449621718391803151759644215627260233381201709895266382837632892527186904478194278241296613915708818995320253872982466854271430287694272507515124719875766591139416735134457988199721901142020456561492280852019041357932689059092796467879543395768416776382804802861498902166303137548865644998401777687993871802834776580307680369411557379350922191048282944311563590434081418421180026445373150253981679618697045602213220568423136239160609093613077040067916163085106782839582389623198765562820834928959655659029685834530713423770842253337419989762189937313958805018613927023785811001758663550246172980824488357084699386746531569366550665752578044893788811951065517835302620924232897200476261420633793901097513507694381680374460142313218048194190233515248890596772975194732558859532486996656824217458046989978595458442460568660593689838190131528240514153931391678979685007822354169796170063897576575386801321766640584477811731938299236403807437750571153113053967480066492084192264771452476918635116105492342543817979167880726407448698987550244188154830305724720986123940305852788615233226783780239740270070646337115025488582518216087194916668165358749924235470387540724393781388237062615883383092206677882787684704007524693901304019124129150521603835583359964409446173806281114727678786027197546937166952855463274664562995625610529586949266821268004964775579201214473986655373727217452402743376392887625434569009381263351066491241260598806801363472619773121253340743235219409628614236959651727033787617564762805184000954481263524179348013804886573756502543977991570488522685534481491699211245516386354367289548859380480512698021582945025728491037217733918189901896185769475548214661914144002474017677825454357205402494553013401547730285889144686304794640128612347226558997106035388528937349873732709779981626237078717732681584663593817145750709699441270499403246771166358432265866192586098687008105486612663403199073323360671655908314564426974880734927987302343722230643589998413261411431756833286689234451422631979787082068972860977979690718307688807838952759348909992167168293816429590767584140113048880772859729971838971185792366285043682200752978180992116103504188962871101449276437401931496152691451143667568624608017985551398958891966685045231627195912974956220969751453157221898436350839792314356853192789802004047160422559438203011167700195726888069793552843687874969195148018409319886922469305058567945930529585594600635960045965072823917883853146109665294374634188352336238224583881154265635477081065033776681577234858185825668896911770493642462225801441090659280855570402955188980810707305966531526459003104829601850313029534876357146916205169501706081575509017874254593852947794550045683094413829821438193616659341732145299778814484304255542581709890464564384588277805008855911175398959653021817427979040966559623531787386271549824477162885529624855899635916537018046931770400465479174819702567122755184678886468494546054786439255324609267208166015468869003719759628313777942856756638194476551496299836727582755089948085016851621119386859367933698239865688190889572929013797452288434855211651879134713956609245164210492540044848890983300027055304620802414171181264389259258029698937159942831841391252947574268466996507699374759232461388124409545437557126746901939479978540740292092835971791517260984403265239390774595565490301750591183699764455473475006533483221227892504494259019035304718417817665457615268883944844551412438149319325836441786333998030922473044570581689996138148601825955498194693753377110982671135487757002057040121097699205727931809817070474483188452595329367886685989289747992325569394894812564722422410582232995298435259847024742098146695983611252834306939177063198092858940299242099757070806705102887075412233980588644101162167615218566858273388971361980021322159606713248595453015201811512065722979970193670272880158404382982217239631125095680165146391802008031624300121707420806308510871061334696006371303224121657551707970342312854287533746620693598856114566851043216039958435805700527777175118407554332184294262871420826617014818949454462806735579853485985721358108822399045268415876145015428151045600189669452232692184985834491601459554861069182505968655746552126538168076119242386838575815960439953772216130995418683329971653472333711794447330762900676507107141879858883583864566509974856585781068098622265560542158951478230212071141500754974100045523653898666968967303338611065843496070859104568077294156512013922282704234111470289252464715498622521560418563180745438048380205159680246166646464483533441173932129845001718420915872843185834983340029088522961665266544772547311084762479708900454707616442336422849879162223264234892472150809789258463776778008690201062193456571782083437370924491280356531824323385499318289938712574524452197842611058913089882860063115856485804016392888966875188567884722801368709767764099989722569527520277114520155572282958408547248492082170646242621192299456006245695730179145844315893863236704415545584359166449661484425081535724943885381585053723143666465625663945071824771827445336888854049544171212689700662210927969992489322464897422343578245890408255655821692935110748268068527894354085573077209000426818953492574642971484207701727439181525438800467256867341448184810792214400766016541128488657955676544818358685849132471043741861193084508072034423186389901713043181793909735083317278720505629087756323206087608920000168916160161175380614714345727354608987832785981532453665994802866089129990978561669221530032235676109072670006563948180880560251477977923512710544291293308488677051212213855018316499309796881254081117508085382331304721514200746848463154923476495961812974063068803460154257836174466004344903179887181551237155580757536903038089740536158696974632269117502491388750162249046283794362682567282202255232610651650372869149658424378985267185240598068213299697269973915633508181777408765408208967566549346378608381950845825405438227999385074167432257534130405949600412633842113436927467324985305586962009582087506212638356332428841606092037308132810344363921544424055023109697491514757715867481509753994485360545714351266238643466890938533256533705256851614225829007520426509768984907969649757599323743136991164019424300212627709894520112771807235504921663243020945834104762705803522611707325096401206567515050161873750523588131158383307898423140649380965382869247184302537979084168842782366641868985385583371408562490950965296157855742324547480115709991576580778840237192284381924724073338430882586125844161056612389127665107040014715986347004834004891490631442305967924659167832546725640648086951463847035126453365636609131242043981171658969938365356430533887287117870589910228989830719109313711045575292882753075126604171002370350354384142758911482967193918264966983029655485867274105605630468306585400697357360778676656836035759393742486999862379195010672822999586350900033105407617282386619246936051572199675091534222583979414234808366872786313523342585919816465889088048801998415072518308022615751624588894310401095651435271905327981061855630196996677209208015357283727779441967023588304174245014150161780924022560534205977153764716815106773011561980096064352602108687163632040287379788601668341128235314875429969874595622286247401011970868736061894957537400771116428573161470307046078055197352498820826768933684829996897459621084762056836045798977355394513906330836414946583752260543598560764962160276970061676310641890413877145945345221739694002818281589153532384232428849747398792398503216721927208006640132801341996612049173158294951208486805308357050786127360101715265390133904315101591040774171913255138881258010380930414577480828426669436096116071540453707265673575557705457083601824113019171222146931265463079487920620601999615468277079055343575265571215479253141492433299383723429124289229785841739701572034917641022255913744464101931840839567655891256819215668430867285540265858043779147509879953328362840025195349865467734302262770859655465632057570132789020372211580222426236811036295999976510822927646371683913019137063592379599307128411310875555771544372879780027731903812310439044764670215381652178315799712781775827351987092829025508396112609351601208723006051741401271405070018317732923507830239608067921421435153671610461379180048989952559065489656707238740524843045524109242316622373642216686143034922750364468671642914614147482533595205528740869577381844931587924445839995100779245201099905160051697610689898901739676832441687636832776350254093089231578690452343262792176494364559261398721105333900045234890810495511274907005628933218878591009305506602054382933192932137533400577528473887978188065310935968098480861491926750345802347070201823591950573127619275403201265777344582749640178489810299771888950866325320889894536412973276711409603148200246225787510878625527701527045762553363231290134107575274651079754626514665483335237600638866957328317194537443294508449794754463015220872009285372636086796514914314653629406126061984080197917922584611170919018004343697001081678218798287068705479634842097733027127665304276961327421862267784768815708795419703518210548098086308130784351313670007536786269434620212029387028095561367014923175372480238183667696325247146651949828376753927868374205852320111249353267267404148090119083360605033366530582300826161873668501474426238851110311929885784450129509123382194288975219236170772154824141179032858559131638679539504128413707065605065115382013159235679126636871085784028683963892769030042752774188776162036278207278314750910937622103300351871949458378305285276906671275708716431879772621681197187904736307230704331377909229721780305873250374528455187741233497141569217761607406793928050999283913355614042572803569565311226393350461015886023583234707144489918914874947795046999187316665539333660913897672037736604845193948990171632883970443816535961702866143493553829662983939776215844557219052526984037484795019253160916823733304802417587988305069078209312685054657975516308384838237213948623888728864637228134571165937843519687074594312169778093525416388614755981489251678514864470440452478330468183386106508620269480574847616064193641034268826598614489648543753537517271545745084349268554539983720575058746834876067137519443860934684646839522172244829437098025067083717499917957141353635331793703406203952170371396632177700620944331989000215211439779567836010367890004330835740212364351060016407558137941740307198765582154742189383570198904934198061992206697931170612685198933987938282728219923853119840326745868906329535295780441269902950487738454898565300376059009823422083811452030504662822350607047289781183977025782559432540667646257876273441052887871674540089014219237617184642215498114790046715659946603257989756068848133054682007970578756998849595493707553544357928876577096728084874299852138969854949921210401935443079015880338943186992523197138078663306317274909128395407564252059755790962343317562348755354269059260172760337696169116212972975803367966485540721568971760123329688591702453463456432097951929881516573468854451482175703390556276737724723186588503223799058529912334862378414446747130631476890366413412227290307676487792360957340662053818699737799521921500021692618758717038470298392211931822307850964434747378379403202625262047435638192465590780648772471803316359633034471022628881732416313413667363166304472318635499861827474658500950138467569343166411581978278417793308706922088176146844444096948108519978007703900385636982161857214544544776731940791957188321748762396939249610442425572122273138176538916123620491589551692019811252358336249696391365334021031642093666500438825599738306631304893949162721214613887854664329244178940567991968177328297449852051498204705385016973988948352244490318836106956713545642763114057984019713133893047312685061022511709543375214502592008012450229227256945990472957433136528661972894434422602621397713406699163535693403050268477599371146174041204789100376121000467569166925643717597496057703439855795224796551333681200311860793427140149664904623434175243155602559116851178841229827635221037450024202974167536486443444306426968494743180574549802665252131010329988203868198290464731084991835893817715773945449193349888872804448535610379419958565992241418012031557643353261086409001349064645456932913306909418628934943066291703525585932507102260396271030876352967731661189004932221251445135189158741364525307474908698313269045584793151341835079738514584677218620730978610417666572092881391303292518993667601533410296702783413243602744971510280792881964904007204368397860239788062939111560472124197882045033968462321733954505034719618913561903532835625277759959285510313320269808205790667472774509476554487757007146677159272222137488383943620554870978175053919148142498661884780641331693417779988138898380463563411391568694180532671849174778022586147228989690751769801400248150113204050063685094166665128702529187664379199590946438908311256882750511530322908145153869557078425400464242746422430132303991918649776384831620000093723274151807117458118724097747444991185303523299965819408431058579058337601735558074344055003103677705770469535390177340749681309199379584180374409336294040118489674356603014230521596661720933968615689835981472959599457072820154033617797737913379914126456347389578868263936326627616822743394599523011789507244364708394876695624366216493005602258187168093990469449042222838072341909086900135689281660391149997923894615925712727192874011995103769554578642572158043371901281873391449194500029202601475411175204391115510652782218965093827347673662711366146282533640472616345612387988100366588792775427803917208891326713399057781846778282038673454497782051121787940575495734879084512434828660550397422168034141128430396794502786702859567628220328349486382968017195505778165297133136056920116020336736750679550282840907244140674502700916909483562710839780854499037622089388561418743116219592362538817575233526482861865216598011476095702655035341352261415940309750545374624333454546987959949891256299555851305489952304154615751570908168284720874284511795389141718334715640404561012888336719381910245006552647474343723918376761278093778379417968675611793344512730210540402612760188542236019159645654965682980179541238893019284447320604774763748974962151624558554136978060991322236841292583713171175354725591072929196210113422571899527981484358083004928070039765616859542013153209644069174876038312598982439007503128759634471615787080628399163226182648525822819422518555584505447814929459671808215384054150077056619472003278538675083347383347171539691945811342246864683738940911041416403295602819657785103490604568817993492246321549637901538035115881464118560100033521629536515877123278512284542067809236647707136619077200559503671437823641089096906661917337861146534327494190815840930883871217373835617703875733502349443605356493834258012125989847771809055953380723340939912088832852155847777156302332430943008790084339285624203363196176298610029407336480150397246462088531598293569461341223068850164615433404570430924966388803192855854915390557357074101501403503358722745920892159924298116496283959061647667005708393787851250607836133308616923150023197269396554591345696991448145060035174487681164662035451263019119531896869772766156022172884825127837881626190636368575349007547747082853855095082483181067175482683258965566262974764172901608777166181042008781885846833155091046372912458805708231175878255772026533836539186709286876890002812237314879225150941060594572209018332206554901456927465118250271559925119718621389152039014184975840657981035936446099532016476053544736195336672167520540466909159798115667361626299104130881702776843525426025017937319397130309501625613932799406699206270652098452694979966109586177539769459949884909308678841830008262032199138578519871139184213673453685990399146132394435671327593919115103982852653790641911470998800299494267753448358898107306676743754942786978769821422604888046991129267436812072415288687361835235027219266518368532641975909366316732311132323341679013789917587368533957816511182862010044100645995795534195278068186706276663110298364289903705581338351875284448685954478670308617519181952409047306002996242131563344271366772554657415274150519080723477624005118809440057765034735287291025980815061532196174290104295166911948638188990970145454941451641202052738259196224848046885902124036433887897147804328678836651083463693091838747408325316137861790476711995547086810072816408989709995108756619135957553713228837433847662137930979182838234955717695002515659256467274725648206063957904482626717349881980270375701928491970569149883071575807530155073354438227944883516586430426272423476266638474897537291900424214874336442083042288893687865531958211261220728745375226465610707298082640709569455902398761924112140387557038389045375208926797171684174836916887108006979985014130609056780206700549822469255417909117819680098940447154165776155453479673547555349177305701225434219810052505600785453178143202428469073128254939575995744469854600181274700416574997412312255537409967184958345407302940244088518845998572244446664886887615298108579967734075018094656388596577556402254152060815417097250874932131636919221571203443134256802904998104781209688676463461942856116218167160652057742343032887204178436555184120733168851916556217431979960271924387335078191504239404481697300213456020255655058992752575639642271614051354583204290394276673616516620515300459651126898807582521311764146913867999110492897880246267768201003515197900540933843602503280383918833569244713635299167984001450705594388173775530889211585218059782742202841297929507346463014427718255165463899754567228273310855903819294254249268008706622494790941363387053723211404637867596551868048608433499499939637080328170700273647087284688414938620757095170618768083251204473462184395045983824353449904515168591535288023500559217379820678706179463411241814456450400795560833099184368973197049397895797194226973804944720672333910885810552896313811215025149898869326161658936221838980504386490648686642255635592624760902930861793187288969542293500129385719974850812126734210858348494735916738198265166796785346648236000642671636080298251954734613105591379702253667598095248242281277470350550178179928930318291448518840660097555365669390566596547715166285697606888726189918820459099673429545944710690323367153135458637761201221788846037138810358831417398924868544779797083510010144853702210736879565983890399242322509906366949814654620217564835140054995538603808786528725229928795237826269788929374389097626268115387299881139040866202116528123232054047127507858595479965507701768177387049547278396070431875686493431924791028435574884834849524620467099193462409019527014080386249567051338132138160075624282164348711912789426666819461791291088412483057721156923780839527428876675265479852654382536121736532476972092734900317026369227742153543387109434851203650801375575752181060222326291769986646494881242773433155185396118454314963589991518194347781660321420906701381622726021714338092182604231818895401373300864231819057753008688252654033511696291584941419943196254295800892261430254907475479451251857131224772160155918917964840023150179539378409281442619469054418012673992800374453509061968040351580699603194440701618892346415941838172686431361095482821244325500924156258809732051642643445707664796107139629332303976498503029460935417260898649046752521779856155287309909507577074963636472543575545788814521710501652518977097638843438018644503208042653137486706212622935237438877779645888676941217131944214625987819175426444777205762026510140674012539806736462651717712707484755847069300979208949776118100783863825602230454126922271433873761015765531687461595447054263017877038119816230074198042046580556600484875079415302308551182888118985164435597300841165151562892904076888810792303287876115978030204392072264795847389501399386732667012721450455015872628889856648840401920801147446591849570578497811049389984926387858817822308772322604467080112941882479139507742991093591775806362748902783849249282209974081912801484408380687060824081476443653068146991439696300751281433972263152704384697511671209078003560760605475889358074438438064288629517965280966875386949581930405572561305762385291403767792275898501820830725141474859879030094147114692121857953968262221555913031778583151137660570494270511481292766185084289076504345013879924333845527501096418562448169327855280585667035149296686771275767766692492089557360809044236575935219662738865611260768496260128639669147128368581430055838753103417473658923680930793403194842737645527958727945853662607205896634404516360410859926745400354834997794757885239728696674791268357926663631443550284323428912124796876073771350887782538312461990098358820088818775944216211609248591167804559126063402920876728357128739614587199960266203919873460087226816202525934322169636571873708516651979642876407399604386345065541531213069514800318223885539206358101461519468775389248657587558060346969520818304069057003588972621267559416579827170040856774823978479012024601308375019154219900025028073117852473959201957886187987946993607344968464633708617491406756326258845239094609461723146188544524231511778771048948354925727346365217959680268455562863519186318762778601220393249482723837034432044624143230693233566755827030498194605674675390207096626696684785276474059917317326557881216826780431415924243538604199889693620255058276374155765531512936109035311141836871163444446873266729314351661369304619202791090452239500103213340962630726448510507991387444031590278114621254344412968626823814579420957059769996134078984192476929560347993871671729302394914220550540724429004341034996560194794792371280679821392288848405452830657351455292840310177288344000764566758880836770478526242816447184191940370685675450723663004799341483099358654367896517247439575593923905998420552789443123488888627075148736175426655849894817693389202624385518362165749915244786656175627454901026956571546172228042407680233948438479664332570265708629309918674075303492081884894270639155057597500555366020464364843340518840184869058742920800529009902652692450311105802892862822646968537113514984072674165652035105833984188417866442655452737810980708077037077941997129452249254846175444741135639128255095638060947386988031779363516584783946042535675449670519196114796787485219715645953872163451275612761748877140728743389889921859471900036602016723767085996626346067947417789440817475215851426868535656499012564832213996666106923587139239084760207286996441191556486283130954492172205012936989765347993198331992169311332529377329140603971374465465758737056388379921334613159286740949983682529271373777127585124784407187578250244402092578353123425552589930056223253580860080268544106729271508231206856021333532359942670144434769314108262343025805408378925687102674899083673175742412210264766514971411156478137662714918278328967724546084897929276276395680896641234340843946704514116568344779636962100507675734758203769840360424204952708415247852259449452784353969373719107960378656008974765726015116253646219311833794351442967325782233045624992341999445790240681648231573349496910741735634517723683773363806840989625027322307320885935190976974870112763511235054043541343790812208785349158902558846582260553425630322386770315344644976701959324494561723416687589573167458748212299616478630477668377089294665810192803182846510836764217626791922570175673793316954250802462569771231262931986046154700127579530064329927160590609228011954341834156079399482098875520139752839799816917558229596579580021895222074705324966749488727629027844209742520031436812926760851714102120058036026271850447273090859669676954746698780930819261768841505681612352950957078828088895864160841261436490909926249020641467865190009502667923844653514336011079559452265111207418362659707067543499903752501469530310462446121629213677910552842377420468599791504013454563868001678204774905732098765878045692454635835881149903973789459117573147373641673195031036434221403381879132093589718818181570754266794896360356657276222779897852710588676142038106193421080500922017098150912331038984392235818780934040200843728089911554616918993125583917094853221131793490129300753080811615613306290352578170031715406581304405733648369292252948134322913180566373425077811904689636069174740330753639275862310642376567409666175912795922667602702482663486387259400981936084488969307317697895607965537735312466657317864241910491291880763876157411531673100506375813923732972030068287380077862023169992776888117667556164557314579958239939847037299676285988846174213201246876881843587161557028528323907441647493188993615364032638468812047959400306079641223750888923585367521439434062727787218388253910314641090541763894767355542188581313294160297215002952892844999669120753629930515627421704547620712372937225711489387469914473389501540440494986882752727528700977286013102732356368145134787474764993245587512870439728727194346760064649989533346344205359102892603420237760709556366673104845861684220533797746267924851565536248681391599629920529939813696468546151464928419833068768100335994495420900787545772232738176859448996095709904305406791984691844887853479699147621030932640399431541497366348944258601829805666070329684351841591415377083687646984161680040601422835119102842147171709295810309067993221300258074103997624865973906404660327123686399232867302889551100396107563502348150208585509874501676214348866674423129032715799821208898488248249444474700147378601082610138365555032224728517770375565990455161099386112398583704136254522053050428202673470504294103450064117105114951636895792253707701016212622417939832176214661800146043583295093934360804401783592881693273381077105441409057625804936178975046294255239772602574354871526150325487109549997944497455767552114214014450767914942696927570857347797458386301282621474113324767308891823549897172130039829937248329934152765058412317731960901735722561573672489293277223784161980241171097956401299339760867685360082662273374809517732228280280718518267477260151015999173791253017948331620248381945492209462173220220220476432224317719368424499654385750010336246486815346338355674795387849734531072811931634712112953017421894085042177992547263975513002644296886669317745246498744729100613280820197370582539601699392441921142878136893485438006686422463038535184999511569416958202914795167706220391469549671691044547667571709864329250247346873113657909734568185742494312371389042166945027111467591671182485669475779473258604602274587107644707860404969610574589808556116155512299341800986914845321470574101079259077191823759417120180470020536604399061980026002214257978099280340891694983173733111774707022585188055389864846780116751396292750569665761589660469774813529195319445992768098239723359508974950793238577050827245565650996875126896709083757361027314620560133754537964468635430075880488466231167821800256210321279799639027714904436787368207740014552657626036892760673402582822618833667429915491372561578228812284585348600657029484678899836097613468871966064225711691611632045187749421350766011427730535637151169370642271984466235540337287364422978257496092286703332659872559897897977347306904065123255487500938739225592072499511666258786278042613691203649410691201540997369635271148826913685048485169114130970870408058220932349248195710850578464378837655265524354134603450049265895046294255777178415451521271836259617988203484564784289658965206201408421408349728015494743304777887220997111000233714624002488749179520412425728884704936653217274155869278849622241600440107875368190988083081319668998849284111862974173179947579607407215802178923959985610447090326721817317482623380631345531381530755899981083054132968783083325557845003140989856127539584278045834199643315522489999400162428315637099459543592485079788172085267231633910248551570744295304377526576256480056738774095468404321674358441252977650821766502266335316217621368794086236158496149269979420576388464896737156982365378989459557510172834588833561906028585677377247669323881454625318094334957465454880052783768966561478568078034414978662156902131220313928861621351104091243430010239289704459340305002142133452122904850790150117790010730797919825242443020890938557820503323266116693309237709738257148072041298089632320509261620557462898157687202795850623296660637458401577040277481344745032187037981098139385798331527930132051697590197918936189348730787508815533017018455665103073755527755482202351843330566774109381087803781183342263907584902628308091033975807820508518434706406073337009246614397661060294578876646449889357432902138385142872154789504097951720628401708349008606822549807940518539413973499173186369974584079523824732104195360765451301534657909893857195196912830203103062717052651975893194219622899190358212482272834691508930876541902234789227327478444928845141620446581968834791255321790384576876346106344325929744330190926189047833982074846154719036187262266684106683028593418475068892081990446422745811214552453228214108702948385627756938956233502473629404798095245348622672920605588526375019743502412547269175841014802826855162952582820197634200110727418572105743204590369882419756325111928043775305273114079734821692757320550554901981015417551302953660719577543215598424650923714400377641206960497911966329036019739227296772470484923561874126248357863178206463763898821996121437586508705040797944051122180714009522976457192771187306393368069165615832295971051379219325239353703632049074530311620600290264392459820772785581056884031787682761733338623500227566136384673833232561773684005531026577066261089054355345643512652607283176360410319831112709862272105003790236191346602638490623503680571424728042496895875776995620233298868827458012971797927764575649286748118267369696416952024883211659422306187786246226700736125760426940025999722258337569745503824072302896364171115363733372378423575631211730598191993873825219702509097023661070831785280924471345578850592267304156319100878945970671697940507043642866611144567164864352436522903121110150919412554918073032751801758258001045013351729061441390273400602149273244216495501964455993639434221914170972627567723332482912091278854531253014270051132729822739179665279687288206205709886210931750133152909486717590652717626549531546918536679548984089133864829481138624233304574279358262697136680915756666788779998955060722844683445016403650928181417598412671779912922264876072506393180627797304747273395320150890395079922238460391757265818293306945989478427019157080998425037909042496488105984331256353866652505842037536684663750854936636402573505657981211599577713951224217095923966583561265910262914466018578745033776580480494029304668912089180207779473233200984349394363940944538426362103850892063512032837074239196311907484849150396099873004174323526463192390378479512785327429004151688372160610765201617803467121592198753356469609085233655515625683216037333634691506529821172487749169999789244505356480756371444583899781527523973205782851523688106833176143850294101077601269685586321189710661921429852154228277139845741349982347802421337626493593376338851973158430938752342367753900916214385063991149063976357719382409156159343856477464511523113649586115365439069241974695666151211421410758706841626674118937409085248374033450097421869263609443861210286403523447989781616720323748970701048768229424045877247021677043177200879206976266234635657516520890606583501406393604034020960403208581050148526937679621603544155092429610701399925909407486176945505303141138269018584364156826820044997042574379533753368430152790577032383035979807023930742232900881953188041504291312814904514304858107604218816297023612527888221596682644275379662518259502140026978888058140164327265622060302791819980053413449114778654159760520320259997836466621182604407000916969660716050287464363857985123179859391236736731832857250728633497936999805580602342722498793217554870961474136108630587514539694269614035084126588581483102655408327220203056252989692844670310881460432563928883654735654603704077039878533249675669925406200906885477746685232300170069773841020890083497922860973831043017958847706593550424224927910258175756010698381833030157874332253405772363479584069046178338401538917412848178608296806745200210679336448205282672315216466165227401083814816500501334857209561778633745566817383650071563082934392142930993739800417003426348646796238173157170381388057663676380554838270320182047494035375145674610312443122892353386755450686961566776046117872198618035058957642484706706382583281315522625316309444158903869124228233913125109400470706058332397613282093677258808530544295435312676159299589874514392376870589962802220167989881195088219807721745920112820857021768453368983849444602884243697017847547874627917408678634905686512841234287004076211988427687749475544790810471356034380736859769528624836491289305051522157857054383615808715503940984270959696137303529044868845975924307559168941746154679234495616899989032946918340847470171141571565128840748683694333825227701838788589110109399098628527030125783531170148993923600664941550460572357581233301946443326280697791560238688036340142038038974179453708227294658959544238834595672690440968607846930095149112143931369654481113129663135119435759059977521431858231443654090402034991823637416871696409312561784381923014765366665727606505018693605948203269652921663719037380140324087930103531004979203250912916944985055683345948018753741712499048709604527952024891411106882671776007727763866604132536766555560715163474451182552079665673778200308720235975769652096863127717076785433590833531699630443744913300990913464469403558850230364114373328664260841798545327716486921727590275618559628528285721741940859805809880670781645300727527769568778899378110073053306651218417440687573169526301707489562958772098518410687738078969884353591143597788460153327717251950153397511449991125932432445226605071732807737677700595995592981732765132180306580129383812703004194523458609604940362081066315863977056240636882174126276257704966567569520745660488720590641296434617979149428605504067640229655692836746751180837355602330361368468385873185448026864343798556003808980098629870492599114610930261937768626501480509938367423813320553532951585218528316334915626478060671818058740423386235381055193117495929477820415063625538001037607732059860994221168757762690227984529474812588919482781271618645866438341934668131934554251624161871037818463590081401552767287233726031285905281520179613074406838048947202155046932179403041496880513926946743695078607853259172249549778321169085182686403971515124065550350334985782074884463464220370338125990948981112587858807257119050232250255766835206001485487983485433566505588295396656162097584503435647032105030122112101736872032130263835474193038603567309225337619772416617942825316188319676378411848367718351739547748898266950396636433597830339875314204258129287832263127545765681794935645137048457107064227882015936066862825551895356346779372964966823072317379034314261060872855128647673390178817874462561548944969446388892783136993311068067064615472323219224135689220095487032395668621478260915226866082190433630665904195361233510498721876685546975413943302630757491971930820655306272389158266841657196243989110026635485268247358213691534030033236767426263912855593297685985841682238180858702077322906099621113192559251896190580503498338637344961027656123603672332134181374589669378757065450623826184466499114689108159172147446062847300288185796864388289959591474645161663725018986358258423827071867373315624004214783541455642180330324102409082272335742022038214670212795623905851125586139298606417525554079884658002714061628293562887504176893544256585427730202714048371299172552616256267257369707187247276949381626285695783751187180305196394188466527899425579493120733117184862303942414064146025327571795249255119363277603094684470980396909606283311345956588651208060198108106930436796099047829316035076077383626274183687569496008198859829196173738259748692576520348615862669495814571081447366367209778720629978932908151548756699846570413552537487285927574860626108292954952185464606509524244982624534134503445150954541492204552208616982177723845308342260295847631005004888250905763811242284871325908117566657067168920877281765135125700749224343388540492430102953389372306285758600539646779490590379718942660756471536040869317427780477708355031143547283681009063806460938223139458993749458135396205412125775872546650852133494763129853311505138053800106697677969664426042929167385496057213542334742610851171162815281176829763149313139578577574571331751133856626018900008452774345192525463751604811651135309754483187081993319852121909493363311206727762311670426426996273058470802715811168711089346946288246828617409384669540265532839900206935437178017687511109978272917881158053041316050085196560598934506301495791759575500906359085716528119196356507293125020113960400959866340069348948545423203141057265014133101350537844444226992155485469117117023139532969932981031662073222474983938411486044498609364846061191145876390882102789738334519756076007126687921883444609698980116234965296702036936599602219500990215791145000767549207207084051010399833997034304803493541539818935119667064683659995185513802770600674963521669063708365063353337149992692779246991338069878447560437329731902821508666925809841948795808475691782325363202755484855275492566853041175828643650601723603074611728620746759896750154871187090549839261995379297874870302555184333825405646026426806981050741987840915751741777141082691553363840777625140004658488131037780325530622310601960096955458072746479654754045041136772906745801118029702129631468291238130159318628334702443337124550498686773732211165305461439951093832225543586580521774653279136527686347541372761710056297472520198369618641012253425898991127890651440036631541417630042324422524434233742590051169798848291546373137686904617522829540202399448164971654361135551002041982240383806166396768675766737871344313878875160716316507784406752495679910059164645613474181753670122783936768122491203438415891792259611120805533158666506903171681429628213722080486635500439726642407697161331679509877762247149715506611522155592973863509759791317445806440198892128078509848700355371988318034580727962493957398670355205555903688311937692095749482172890431397188134899422390518827691596820965114425410790453694926767513895662337170042858551249413531515595721032750101633957093349749206349665363373529206549756525222661014016813272078877130928410213499030639627350266983480489422511359612475862470564351922369097939319420586441564573686117565134793338932803452010835543171496219934013622109354505999039648187837000680132809804148449869708921895661863316762547079150625394089334325397571859589281401487882227976097988491185365584675511561762173147170996763191422130125120802510156154112282415124888526402206897548694051959491533398099197781189314158066297029936085161352680720786144186504326830540996618670331373808635363632639417828535157153351175997021771330083048682383212804695651313744214217282871542591538438277241411268925977663629442170058776327375574137405162372546932648212379582150088941303568172205795589875213157043182374033921673354945640937788690484378967708711822781370828598244339426023030504858348751462153340690402780510712756105576401664404159801495410529195984798152024409553132781549107361075946780151078235005024048934570781596722955586698053211293182528919178406178462716246831504656729313960148266954341138244186815806785893122470684394427614594133495413235270379991751985592103624687977567936944196577363110134700865645419162078501624304148396702226986493883518759592988951631305247997214346214789911911001506030242953995702653762876856426482215648409380045687844651640041389174106864123440411969630544524138739685815041158544115860054061091978354241856538660905803441441893093098551047369358680190036165333817883354671187771272924006678738674696280843040145062012680870757054507660292080890678449634020925633748301944221336631721542933208467433914363148670118191584600358983484758449229068945053495131380545059509380934564598235695363167128661363560139061770919501087911061229382672071456053234173040491182387675067097032240023358079784537203457447558599988944692273646719242830019737926077200240169334874524356880106853589315449910113153040785606738136071935521658912601739488775546338348875841810466962369976002882974424029600048561224890884615951224924421224306886750212920699456126120733478482243621458778266950419051778079987889044389265751270657183405660643862312603935719673367262277468009401996864901994042451246588635784983221198743903128816418241768971949595690457663328580727949651435276913112127642020505448985279759282174196977020959278316660802555412964718174330102713399916032841790701185674947692263351376488608055305576101762866789593938254225378670799454811089799097396051197564810714626582489891518211396042908613581820923170616901643747603048677256729527670853366222470169151365757148170159015917100500147115274999849058281699867398281890358440791246869273551155371050358544435695908032846861352419326038483737130855760966251364282757199381144466574273562669146823452994188972482665395206990047341286520816938319971071175836528604675354138318759990348344120876138962415484106935232097146762689990663005657808229401445908967233375293529318443986296044219429451978539503809411614058865813748763019365251807977291886687117224150321357140744081337704435606510223269339381145581687854370713008119211460646569764316395220382585782452360844850884281116080515527265040367043976844714460681504449060349165634935982186028670039517585274968372512685472118550768029408530554661023860299595650563519389326500855588215309008353038763216385950232127001979976653651500837621618927856200835337632221392515120051392059527566168890003957042048432273068444716238913948989503517349410156423266443859919374177369212183349220997232243874017493130015581632144900186821273987625233539767923554723606806042639314988478737353229521150864132571930721198333413055864638567583552236165314448024463246059835994535659831918269644392710745912724968497797147431211719540542503356513755062794818887992730188031646398579203812100824237597131547366882148961696945288250245118721915746541339673095608363085331525124278413556650703510937917772650844692690415604384508337013220470284723199428823598472569383571747890837159605885317024547878746178982624662966045228187060359687662925690195349907092118835467893650990815940117741818023830268455084241015267600221240585085693049440989342634107117953482523422768331251038595044266844449723185889147899395945376076035476815856936700681810696519667314524121361883315781833444482113022184661149723076157460139139047354054664100987387453008521536125990959382263052512236829339820993195666667348134936526366280604370269104845545181137128534031900350676321754285276872958554620481520692007674672295231289301956941236026609260523692183751315044972144085116118395125336079937317004371375591587362803459987873575455584746350091005044344058979391421423622988100458217688747940622073958335891824684213209950339483642842547849551261802534963602765807053487423065860423026786814976752648501734776074458516881880146072466567603479907542841297510010546888621683600290278585626959145965258983451452702427018650631454582403137925107274969685012484126727633618004464669861550276079626555909168151522991450282004216515706540466562884737133193653253126141954413916038305392599872726861344129050219586253102978702419637500489703879562737623725931003350845688229625928315276187655719574436931372371516142393391305944004197080051040324911248145873941742210564193743449543794039521109876100262712782591302518793861245745982999022595051058240266577862804150016416597138339936706213585268275650163042375580088168603682993400243708901259854599846409117559044751674141611704139759114666870752785949741638560091164018555180876022302795800970494540711578069102512273846593805925690920837781836819545488458013773650694653639161359853856657250748297205262065639087228997628608941254703555732735555653172992690651867226940544313249318011103815931617246984792167959039971149259086756991261123112655272292371208883006541491845229233908804644311459848851844560907692055047265928128704538923516607606208993024691357998948753027017303692798581980046705235781167328147151242855593939975979735590152618669132775476837908189054470585888356152339194401087387509447475187996956226609752188265263338178806352063879416862427089599906744399523579837849785999578863462838239871145038855451794229485311997321325706487129098189684351960467733734267236507105428491472190471126591583428365830294347568286552440444630657179547763201117339238607175102553336187947537640673960611635151471230672433278475045150506991414879275709373651686668045405667600401602252191811401363706653800576151530125517278476842394687836828300837096080272244738292178847550726948740946368851984712423978286613347706678714265656489618529185269885216741359760883506865282328360810627932415134393016489498378910040063613100213569845781881847960074253523755848234881730936652318825015363176140402588358970328547322642094015349158543673816695500078730887451649233904534698012464340562635728625614766346993400816735894423257363273681909906177118535047125884072413073902983627158633669695118158682588903800316752432171199910503285397679358643504034960618123524985327512579839287354952353231740420912837079058387473579072889178635556581311002362680487675738326630208985999982205058709374218977064914340325900987775079109833353560935000191410277673222923445264162642969552593499781393261165646969730034635139258626650147791278353245181368293125816448677515323035391169975762323751321035979430247137688237927497512724766070393992418520625658011029607845682124454659454979095390288820932935322301138819917220905462759477429228676420846128279435872454335654070116781564506277269297825218732247121170875892943726686279675690204588382008996845271359866989733031933502363886383653610124332520919512216676109362339475524119450774927758006831444972041048308935368715482999469143001292032341524028185414978736797948307312885425117805989495394879763199857328594961559478517628537666446316673723555812545318985044167655077373119925880776433081601024072554540578612509722022921753790482001912149298388046153960271582008725579316503605977522818939183560068477229838910066597301646638632309919364395166941636948951054324903489710114086912642211715763880659849286401535514563202796583870509011091257684659674264828208908882268015376849786780681458041383781098937104576397741001420815774458128552213779513266573282503607914276558940287684761356396485196879271412054818081480137269802223999387646997307753535162830033670471208584617013251663625652596775279688530183558355489129354042197332676785595418166114953725577705973206563020989624619248205795252706593717698324087202980525818853058925404559936162544699963177941052339762660612285150901233355049823711978250933436123502893977855199192234604934277539316638350791839467782651567166503053008014239697402772495516237917638787955644561027290377951130606025803241427808325892058400777308991979518696603674857199144585648897555661753991164143034484884735727059735257528428359022192286799506014259837981931155397275629353390308796392311801921885044568835659795283557822692009372070069277743242008248210968755460509847884757045005680239439316924750112164913362792852980163607257717507786590154101680504864903160254094430401058794429699904603091234624232400445490102992718512276247808218414723808870778289010717727842173790446437045616055617026539886957196980184804191130782887254066062525780330402878052833865376655414281472657719574417735557545177881415194506707742817349923652536197253448192658165737390462025790109391159605299398952717447661536563072420861400460446493522344018334835317869651102697492990659323452360192531127855520006611071835730994258794496946380372736534091236277202719171333506215183025757225613490647362656566895751637776612426979696649450015691859933943356248090728520025971363837604935377835462899491824778277863577972436590445518591848303468813015231540487622571499720672426168220336368113808269790867209045445353201723521375928203868352877137109684550580202199098737555232805157648749549915089654823273050909357816854123386710130950705511893453700915323775631198696560829115930426719293876274987952886650907575229417097999323552216095765122241909657156594655909723895216104287102826584442003167366070706904301048478155723952880664955371704999046209156692690155764164503943205474531546437029495411319780729137440806928823747703266926820849178133069528521763793977296886195561315139483254736088071651262046821417844314683984409556053054047571861176743458399452022643350955598734234289806879947193085699722086204894428784570249827557472932170716685074723932710949908092945420513369613144155193954633627222478076695634716432238331212299520685545030539275035015061013740399853930562168438731643818369679998573557965842721998431654890594823087041604484167467051511036996040984208119464147504736485397786014555843325436419646864547901498622516330106115985372673981907255228703867792637581615148702627095747158570759354145959661743884461435232998725381420554605163375850925453817076841481426785953949331116137035592182253866544881320258516924344558964227676812142372289343464819622805425088322330317983839528806269610091088682680993285399207423882675086697374584954625792289620864857720638804133944891595348843716951439259336108160577076017179096482028960381431821515153634718305163733936824071024578984286297127810642899371336704599688107928999869519653351068650126561522150190301949251020697448695232989230070721087327246141592101174151442556473487654822834501826728423838233551759039486099334218803368307301108212804385200540676684203757433327769440104653197777535766526981411348785387226449805366457797930472247534301066130302252972884543091042066571776818579000041350399434179762665866875436754933592681997744257123696327969079133774680242163683320003661325850356609589076962045961608399767479912373204937833407494349181857263419792220247270731773213142275249010813044584134540836124234064083800221455336320375214343587808865495162724597630623267156621543992627917272197108515891583610983907620960474123512671267819825578831695843865746144661853898896484443094716954845506114882881004220787057305081444088201629906403684991849147183099485919550567802878337027044661522523039278286928474297834570741957560994039735649332402968219046701466409208719210346255094313992524272735221903306408313637859952681378311531320286022342357779014591621303532410440719815355854590672247133702330360557309208254460223443930152571342178874444273117905202157547584073333523455662017205442030896183186302295534137711681505384274353659825720209817727219968255214262009744415490656080610653489152544332613804709033770133263257179672307378780556942063943679133484473972413466566359746101660354479600673999127476844746946739604773250176552465848754110218935802489350432089671372224925500816837274423541379056029233621403649115108891680774121080978452306514717386567900034990069403968223992658529442346166647763514024137907030619702096991387722307965636280849095918812599975998764282246359329692797996241386482752600808957569133675218263922871772888445657770695131954250077952742905585016422898984550499307965501046229773581878746043165415785412260000426157545373297776992022038558882562533106188702600988087790032958163837107079010012503422597539308199760708031323684845005214035545996517128525240299070832025607786353204985334447444498669327940877273469628612475512816671037170009667011326568843341789342607114218698130631234850703969046927206122841936182454341156401494811728069505398063276636438835833955770116855510816446156008431376226594075527716178178174037152775620559371633421975329895313532948668892595270755810725743694889784706719967642442953057974002505528256407543617123242381217670717320973886328319034600219018140063178673650798967491213767817641524051440084708369006563101222203949047756688894268143111757394517282334760089106942016597631436782667557131160839847428771608804436503389993726029346012344702398387412448871999136312552919550983913623356698313430128097856346077811069692914000077576239588522816476482878551966373821641828761275777675974238423028143463653986657265032621797877231495230125456495478698216058913004044829218594750774681408973399169195326691131088933574979077248311592786061528556091635058654798851346758744658560883602182969257313517405694449155110230413662894468853766980453063155081240495438410696324019638370435206081466980028902371427786075242283737186875591911590662114340037337990733368124167809732587915581238578197712096281539574340218634400261346362416222528840052774823463431650404881200741593745792675688802203859962550618486408309464752136664686981264002506126680283003049324530516440113111196172121314445450552990258538992045925132178271920286325611809433184057794012910491879338473184888542474496508550066238323809747500062371166052133812688603073406529917927173500144375120718621609637865387417844036536964704141777786096472616557370556711901665918106293214955452798982508011293035889583231478283712160616405593919876271992249650995763280245579411581882314962557377217769488940616990052845967351225822258110103959468971938474118357221550063200455606746221571654889395928842178527644600812122758868336923916704118456098979600229977538700939055778914979012517292582055662920715739940007533251803428282755932140674244066772330810920504757819478032441207715343093853516011278810759536642955590805109036679939873280312063920593200460080211058323840832436500529733734627323949914591566564078581148464117223221426797970099950869744847179662139317391269685747677451444290357035274317728087932203797536403871466258564307542038573863548187379310965499190136017880572075262234494888247898729899106169267857081527460058841854233653630029394244314283179997307767012670779939018124654111756948629125112121051439511899118774720962738947679780330885531251102865616581958781738426095096700501115322102347704802610662986370524332305288981767445821659263874263039587710963208612151696727008469254948599400174256221212706905080880840894092125939776621226838283923268261225132209391330247515809757616029426934676906122177969413874190459553795992903645348151089773954880070397661336668069486428786997046408658469202003203740029639853100502935377254233289133430063193636552491835419716410842416826830444524246083034675419814924322388804931268347165120455635258505447109749822708807951791143606357553708162586920324583539700692422651251092846174724179687207982469563296679251281905781301041612650289555430160913547858724487737845927207171424490969169446567368839895263217837177371113014263239478365135661679769009250654664258342460125610079924738981015684276443205529020988094624522990411549090295750838531968024806957724577385021892505197380086002350601674356424286895148291736365025317900851230997615454797191282075776248226490719140445181882747197584812523256692195534841547329393209767959593430592331749343686619494190496364073904264384041824990706456334852135867870231045647209944160038074287459658411770298032644159517330532833691940725822797345807310983776545051780489438660345236667319986664550171746866258899299533774417814290090035672365995623172946660672027312759762401951387767667873216392166553752030633534483276034889928250900308742314776446231575532538323702629392630604301530805938141952696625168440775272952157774253753831769366214834978311147362383878848071111418435258519958122988074459761908600725324657282359102950927462439204112529628659999116200614976254329027586400217415287355304770112514083636105373271668154986598624643507051419250052386671552427985321502284070383335080906448526199192736066055760578501606554178844580267352077283774929109526996708144665924444840492948032382638605338463811167772052362527293164065868809270652307639645800677072870356982945661084552744549304023059993363314061334404209785796735533368840461714797744044742478359945148075378552269266777616658484060730719437319654050678723465250534037640048903177052927351114379480274231883719194251507654398771781659619721138936660854509523823668456019097568650904280999047212926418400100310180134212209413184061572442541323371063228290493248789771800209718687043349639955300066724830852349327172737490005972042959625213491052399857826525129940680671708735901455970702282055336140104816650594224440894066960304057550771283955939836578953010530149716122814550843975249327405405099083457308730197600590043269596115908511858371296753208532474604373124486869886127437940433663671258776323877214089596016853826924848955762532082500068600144941955376437183877740725285695343349658109088353685778591003518971871162424389212717497113712490257231232391910316055248918991123516130360569525060811317173588869400521567533732765745479235978033719141170029606871037999288661745984570417179537699503891554416912550884785058527534909766151179124837252990935182716622432018496494776079596956760189608224941589654082616248602638831758596588528065762750334796564275718580703850961118574011154479773327988647317735146644951250802579120466480495347659061318148824228848493532720953733645578574705589226420745031972167903227236190425322976657146678345936612129749419857051232220894434842812654043956027033625935095323329388702259089584328248027345119616467135251493013652135864056750436203351553754760958059233581793272742827731967466635112145105206652308770599927525966856664646305396575616526497886736557109998684139195674820567780632632107716224903591791712304584815925080873443147468135272435933717402151488252782828111861595638418329084395411383905717177577853472947293625527173570012541083169084694475026292745995088404090927663677237810568724998558651152291619132530341522665785205065242778481851040159395272507959512059533444872825705192954253662248955320486058176166887017182907672542758669675762694978949932600017429560004759067685715647503699959863078378666258975578184682228055774870302173541305585031983445846699500947238640817162448329510076096867314113588873455830144557970724141928056756231528005601203553249527405624437586417744494545372251397213886256983587927668776332871173279029184810952054831374945497669466501091622888561650697472447656601630980330297495562027395965797020042031090450292852563815498552242570694910507991663398731166535807599490164549588761273409951372661054207864574610459351482661624723042220732147801752224638520936047921882980529187309695743296195367511788828523779893730940628007247802066173674802223691103675409730606373996943911867828761875489269863651851627251768525878581152640094765343206521168835499427637469398781583722961823563026014828761152822524342867620055057962566720203586809242635469818631048967835236532350241550337329178841550321349551704226318133776942508403334158191489990436363672992637672340609836849919725035082969772147966323014706177397442916140667288986717734454781606293397561467143952598716306685803091876893694016250908991477451522866880639829615632952650288584840838399934701190163900762888914281313020142588263615138966331295512880966637679209364875366067015821659547455667005941545143808179891101664324829556672161550119136031781369492499736777898341922589652520337987844520885035375675634732949992662268601654029987535176217241266384986687205702774998525627463000533121687193265860720316010861330733369868450761344430736187904586227670058518579079547726415565638970105124713675896435407378860299409650638502620781293215347321408721044794067370824429379734954763499024198144312212314967907432289641569814599652200600359573416571266670641225784220921419349247937030484641130128208706667770521363871042793703014708383080929454486084297316908031162591895496324057086441674807655066083586706522425221600602898504046636926201699262581046471657291588762816757760501221209405468842038859362946224846577047728030420988547737167749640122650624202254060689435167348425692636902497180213143021844462960188211064427602445194992998052549245588865055532679220400754698023681441418466014538554234952878501572333738991907384376502203702067055075622009969119571946446979837524562933960695567955784717860541861715680962847596751840876078300854094692931746537203280578992842348770009505356148702775792396590056935733202701503575012821787600397748645070693934251267776685548432322342912651654442699719131004044325837643562891638920867350272165942372227634987039619239168867819505355929038820973951922068277120655791716961124473166814468943948813781494667667828243365095331166595790843858703699309816928477067431190966531049328038469108279762773260171309944270685883426361640344299297687866870407188231693592992831939393133967571553792133339297218623150904462212425353574871269937541254158730723142445042750784484825028376107104699999872122297535044874831409096641275424416481205281175383288813018805127071736711164361360844099974260911540870357541352940110882252762449954957689460283419045025622073640172455922157394495102040161897495089240739459995188133676548171386291954662322771251066417213673992436272427945115332852067385585468544810941561013410800586065842379768673673908992040217765716094149143646026646033820116405629675085754454664686834740127604417627134554793699436348244306851937523070207797876806564997653250053318290718379441596250179417975773505714605329561983764529404009500924985539560005740982861724093125997222535811691431169274702506207610083319663863561361380273133325562573973049722689485025342347739391610571861650610437235797653605415943877515560584492076607700879291077656033596972233375825250946800428109663523269867989603736474105139756921021992527096099293898877943166240745117588252529253520027576027161154381277379292479772981949410455453436842778161404530330698396708617465845407032270470438594575364970203052125950197844179210535181821521703257938153340889049241104186584721377139999368776232762082624237746785412110050268711607258587581006389682574646748861963964293439791504696802459779662093102246027257974260575657220237214126469875533780389272793016344031743086100781947469196209034022572059329910582654449725548193943647134581512189915927882316100921919485004910429912263341151294898361153304441467620449213196475936016906356081445508583235070027111133628260813900718114680414447815886468664121878989512046265466299728956744779143987645914434136743315218544625903518066839005433375293092632465632362495940609838364832573805830079704530943594597837230639320265854239628287580216529884764032114516996331409947905446550872233885375907324891994098932565108513460160498912264018595659321429696509877791195605310904265382103242850816267335905805029337250056090692003504541579410698199006373339746054788737401664923811142289715967791593073322605771760097246004137753302587356956836170559662882474667616922561363695174356700194379720201293943852491128345023016525413348387504719159246612723266636827156628769395396952592145149770055592610686312805053861415426322080513548984880420389860189504984976063336882220291943761317686992968897371360160466360380634271106204254105985320544358345951788177851375063303589569085199964551572313727702443021229100351670842691370645149459486436466105169690050509762176135320904490461167571214373275822191109782094993375079227590335731145425390254406977482791174223172416389406812865361206875337354736219038153459017333055171903344336749722589534485559765966702147555732491364313169506884089863298214393611256235497421040895016418731918763603920834427444099727456773073471361535000293025322122349568598746412132563594094396722019552486679643627344515490886089750676192582841717581225894319646775660095222639796124431819338589194412883067101606587091319922118840987228180860361081866614579856475414312579589529580885722003774171579604604435920121911492474151394350774951482515529967679192535033090568772875218374022329483668538586205498903521428310918441723229237674072853181962339119032837487293622301499161465366528624149083688704678854718408308724178095833802421709885060892023236374490908062034086399871985638192293533881435178204250278932443223721868111170258282249412623692859076868023300004843898754038892887110374229917242584846692534489326792419381604120592522184139088910410501968893067842539609456598025136398418438677915916245874438701366394131225111111801570690556472336738588651091577781961833439677965957393041012943206948234566894567054835024172386857416547939729677919856069723680737688111925464699809769283848736745530659606358972464140100065632030003959222420332887741158322381329241715060032130132666279398689977103813713954089962794505405660434932357244491098503813750924510808753834482027105463925707654636160797846042998367434937561802180571526611069224864419262630013555081215690183083810136823160505147727770765755831212411499847345471462049549891878553801547538267329461838223848716207973738104075609312312819083752880233192695168204766136940647560848974174232405207667289660989501344778394712349810797697756065805916925896027036059808028506604345527072822773211679078567140871105844767405046089107103964245907076264797651517817194196607093380520489322635554642144879572578699557783819147880002018299009401164943495009418002213703707687953396112022069010394944983235490081709254722154656894684682120615891839705115651734616805572322308571883296887046958481730775655855603856203642508124240071955715523933441669615912927643588895814099501397415579118426928815934332280263546263195843689777213212790071855158169463109638387218330214646268429052156913280984294051675256593396906758825760692870045347961879744442479592448297349784414057214741685263595476039021012467532402234100559768118890924361594363289690711458182966994138885578223378183571474440250471618591456665610429832879125333638255134784338897143690300557986574074408573475682065128925458449716927040968867712768873694232925372743376327011399371242210659066096209030714019790551261042903238139460863210375773581638424834046382714821392254507407862619197276801659677168433761842318290667581910674831128345113983719324121494342708160074551098906592807039040150370855194802849900274901746246771581371199665554576078837971694269726698808332301340661976285408023601959948855683948660138386158372156196878537193844603274542173716626935919342212933134662126584762819156099652330934382523047971529735535222199649780570264972758061174066985720736122165196342382736339212050666862676351703467529024161735318816919612967771990776740289570119307574922226148011658110425484319303945384046755603155796931483995520720992187639189624625912606466344991846539187995244547447215685738425646144333506779431843948040697559981986733980809329955222655767789765487062261510198638903485203393755798351739678513950434302036508203011051273335484752979027297622719334733636417743919110642877910133957292180397498155156107820133509620974170769997555824944302285781597049942817192427871991362391589515175584385113102705385615996735330380866014784638447213009928255223259643570324690566322659539779530656459460558216923955048138914350163009761976129266682175056234392594436389004546731962250795309782119110631608384970393687487538974015007886812815675416171625018150703819788387374684970291211858160551474111094035195102970115086067891838077302988912060205039821312306969054685437503051574949038379021612209765732607101681557733195332535978488325986160297174807129469914201806524026146835062302317427239509973913752922024010875189057724369651152094457386819395247620184156956021775892190834554861771236681975511630021221639309951939115398568127088861320642378652686264593687754203930359067499768947077204324922344279747664200198439132188002646246434838895836670802280519238169851145448551979958411844610725329758603502900602385277352119483600527891711700938520420085009280193573241018235292434020226911668388728388907606993718406228295845040470984196135835077924352260827968169263854427641577025427226080124180758217864253705570445966092818880370640072545342781756157186860317473848990737767822850887554532008085179039388184369060207845931689202113459633673390658972002850797661807792941318735601739465629243467190442236562461280259160882425671044665114325606074395956430389888246284551503600012672338173240999431457400575957051861234881549718578442337060672305829275525992126788530939330721010577870920348361690505708779801728880397903803957539383388872065253860464443786011189633757300958955664429646668873317621058386169622541152299831804679387132773061960155383711586762664372663999724247447251697893356687440543116245991871791297004681616611582926809774064299634480327036227396695007886186463882648068024255234169418288940493765646629502356407977279788468339036996443702729972239009388086335988971833894048432346159293572369677974583593628701296527753783325762203245781696233200959640194163353154858987786817423490111421308358012770986372102423777177556953773605637185820289920752431298229839138787390889041490365180622765863249086337380391744950641036532479640562013059943085962325435870507267488244886015709083528229941135669346269470419492548282572803695970758031498793428723994214591120060575492170336005397243689675046216144012469074827230980994438892861371366062947233518673354054909908460147521457859282812705027413044453409466501338767818282340614618236822835737537125904394869264990557517664681728223050056468248243217945307493735918117141138196174120107945867408150185397854202388064238506212075930585587426627374907438334418158626995701882025027496217963031256628030737453854368883093541702569550534398140461315150904195915086833151300164104697755952618488542518826175658686922615394032200235332907302318067813905535680309078889507526830883434452540837427508451711940625398177403577925420141110616913153081390638062679991211092380564885053927143784279394015159519445030331408919515787643752766102258135341585399331086644272936458908645567236914090550513369777058123924364685078051626993510380803956644204883453219823603982870290975326255506704786463696631834165822264870128412590066342967544630580495381792368231865017520743964157459364961143718138410119372051278326980123099173451077401271386201674571750223648224676238946641038034412301801319565221828907783364855443690702467826606572019926559335328463801152640597630158504649702291001656832662749599978827742716727661559660558912544689364327729912373523218124370566890524994621152226001613507660304961105200734026235284413855999217180242511960857055128998607561675782810660888587108493130842107391977303485398443735215964392733929691311714866533326860686455600624139293308339090295715580043848208718301204395683576542301935000059674107978225082241933544770563435822933808975128816016598338522927714234538317637334640292588517736245443516754851838346420435003779124283975320356853531196705011365447297773084715175607418614586904800922041417927804485745949760916284783740190452396459740626872906003293639905127477297814039399416045495537647533968524348585462794949393035804260507908379269314377187195570911288273451887770404758750698233395010304256713069735326863475396940126772171791867641625090658427236628557667513063446611133473416260275529138743958112692757003865122487358620631992676526835815061656760422817186298831536136219001234908046413645602630614326786616769844344673955772150808634679170261229024179634853715778761703591270264479481214273450841189422796587542230817307987184376831173544523271862668016406214931020623961061221313566417782869169504547843122795687384606200674110327238162036419055659512390252716806281379147925397305982353026625517677818811551460134621405745704334356740121832132181138310872173553949696630668931096211361745522199366020600420006570031607466383898329753844634394672096794771531470690120455746525199144062291869002567388535354289232747945842842016376619491422115715293669322103188766094913833309035986570710033986395622565524596788323886102644698459902673385595018312132327797346411872085629240327262174738563922990305576530823044990407241232835577888585156653701912851767955641819506292005010783567597494223448932027348008053972356670376093090433911515701293982433839462475453078325529069589836021941530119188228714044677504904029855622156288873647953352018624132736613290595253548295150076731864140691587556054066753956516427924937442146432604812877079941848964024702060402737503275694389125766683889134358691960221918716261204248221502878850136912532974039530643576513818264178561052947247143000662109851297154460439911135380395027859610658709057292292993879975737680319519697950753520006438887570753903595413735591449984812386562558615626310279774035687709426356763470122694674426212078335629333953986160208071070142562573572972656560520615387606221742486343078407337012288772444367865349486849399956911871722468582478297257550105895256508369892538184029636280402597813569111397019057113711761341960835485384061581198702825732260303971799357305717829460596642255881097994908251283269047806623157416534928810892678373143510123570214930792643399746599468976409287333416048998155653575004065501086589045132815746161222858444300325849064279993228087936860857850596077848834332137247985530221368150375062353994138856165285786550122602135711113676331518897948903236316954567115178594939866552999834688166295101683940645728978424871825931994643472087485325064264301453731816107187925412283028616668883935524546581326737281103698897129079606225314081475010578404614666279591017667310562749799753550581429245362882553139537831178732185072134269031601684459677159185395919913462033121099631754401149383224190415737495633844555478881548543014579355634466989740988613236077707829982586486569014647107948451157627620746779412782280614257207699110554718657796774345936045674271596421122114779946210806397081146099004925627527512161328832530207210770243828063726401218461742363242152843010823913371442571689808184372207697354287905418667327568071702204180547395671538941761242796420539569675887346006738905248146763127580353517500894044547796717710487701113875868704040378843346524669600564426551766740938120819471448159407535396289822864114660312919332406186617381270437690419095261193575319880243296595377894580802351309104760815819371057879162420263678214087062607216753965658650105779297190433306956724618265620291402195560270596567107953175848690999853732619489854128587524184361933088938193897722038067050579676102099237473802406441002601279562420480777325273547039185901530089039247293046827483301942037391187715975426651042399381350445105993502945209855864407123094478579623095469955465238840916150826089593891813304953699923812300870450346608775766880592705698148005209260403941033861162867855545959431568374777221984287631098936388315668194306985102398333531452917385449023975789740278782330150229619937427502272307827633424728174103212481260364402573817878410652370709359000054148037411097875191439302348344670300321447766514079830211186857420062208981837834989002262131435268307266060842769511267877913445779254558438382392042632604352231606423856654022916145475578231798669145079478912639000520290009979806015892501406615304515607964274395322828764781061005546015889721334250040196728934846462390700145506957013112337264963488491949214884005225351591894179880578322360035697408822150937711400037371305200763395016631025866452040520704394742926616322938590418974307835239632807740143132070360133044193280639839082226382022143534922440817597085091779347587901038599854039609288037758544427458327444058293406185159998853080483832142632491102172699187389957483186981406424844196687293236024645537793002205598793896525790293621593649918247735291643523953829202363963176508657927900661133228112036703312814909582651518203727446657053680110504701655890044330549302353808101320888056116182833378866455647666245587937368866191628816396955220687458249868841977983602868152660038236941838647944398210679448919317506278119990606527539302958461539723681359351302672253108287908796265994212350750605706608857098025082057048335502444675997371340663117617587380310611946696989803775887244994280206693059860947846150036398556055811057585928186116688154358060011597069772518100683463314877585267333005726519303451071257037484019759462169576085738433549697626553052410059757672137507673361153891406550392470345929257893405778580946843324553418027210045277463020847868831537432873039034892039302474508836182123100652015326933508553719150485152105673575417680380243742343064429639258129038875861503751401363037983821928773894500643024092335996764640938761980304755682048669326654415282668049847652134694268870912757391967526448262567620683539600540128546893370434251238239190496642286793757120498417823671573964303851500058590936687118154751426936893169309996292921132089456369032313930752517701200642946322768609478543419089824566500247030624953579535861239069977329629992935848183968939063784881740076653812497430079564431912427107377096471032301048829515440843961323157707015427161000861194457681895399930441733085778256117892558223970335435228910504197809613013783177397996941449870979040560937135316060938785695316509791343196509210532431508971282479417354494140568963897702313020106438532660450811199438423014459059697794033858677164142864636864684513962004243785558063575785181908399352157103824443542055978727658731494520947398420489423013795302467556918683248220789377629711843179910746458123211543315651828474158808621539574673171293838503332143497323077153227154452389387920868484739251998538206156526250695147901069563204830481346841789444302975845987963979680911707119130281727408634979988510544819708754175624770446223583627334796950218912596790937119662308390484991743388218988157629501094108731657697196354372984206141196731357014403584961493881152878728860606035546664811769686003922201635096683922038026095701169339398771420693627950928058818259327623448776585945397726808446304705750403058233840422108720628134902844904855743826986046903838656857314607860400365712187561720199928022818036603152729919311414149016863359310454972893777067859694804286475383657174412211025663011621727962745105501077023175231288412886249219540954353879202725105205404237281413784134625078620267614968465896826800044492837861798178043725380374295657779834306838816769482716809617950006006614292683956496934441745967748201825836543957943221465918253244516199737284825099519189960514605506055201439802451069953728561878422416782609090015797465469348850908450759795091606142099885592183707888740340801050882394202558139838186869009066094620901574557122423301892215452557366329080811867773340542740321401928875629187073973511297668898107968718541394495647673877107859773382483540962694441842935935495740734465255799566322311110098375074048635107702485339379404861097596840702639730815646713814302603709181842888546164221053476278846505121993730103517373074008638808361729473781075559834766864007846997136779392692811338633821578776934904998643896494295253494281961396862624634487326155189267199513383901785982441815297694383643531230676746118915720867339603607450305415765200859479405232603006666086697955712113172045451686151571982730574609035079407767689913448443474794430264599728909494439500596893067816545777333203930736496617545811137065206466456587371263266736710517329851351450284423907972847989040060237581584656254865087498442925968738236408934865392234245454612752712266113178510597764654385294691040326402491131805897670681197930495075190539892183320337734003133495787946121634035049912853350948331499286983411274548014432132231885176090522387423626877989906221518230791559204115407686376874158607095923556510015714370259712880929176265282227127483802405966680291399602626390505556950047347827891056314587482432189060111671332243289552953488412187929730649581116894093560796851245183272544962661123366490427978580249617878789774956842659959493593598697343912547590942547870917617430482732949855944515653022933514014536701925942476215447148316300896234050884790770925427321440640066326435117262825942573360065848458769226572178086572092091580189736965743065025683797396369695512544173717386251279053648569332260236432641234167090818929812990962684371172881169789127603688586591966540510041790093296552488732755511005464481341661136302523753911050515314753447776970386480079680697078236685879429021108468761932921761855109189559844904769299398189582969140458898594364254448440980013679819236191324241409199208612258159642651561030577660392012052867866325586594661263159694411067642683015749884937723926804732525808277898884766100114624535555296559635695105942216266069411326392094220005882221393373969278182980356722620827560618833057415059525796494118753403138075812744515820420705642108701518709153922327075399895322200197577422555802303943303330920966519594361972743559030247612377629511133079612309889161236870784010901664376944054763677896510849901428090489893295127685196942908165846742554943966324150079833910805714977581583459628925547946892461787680774477298642544258444652929673219196350355823170569535835502246081295104737021205698608191273599178313855122448767795866206070812999256699287893757345053975351342598708420893661285073925966917413266240876128071142306599909464066585083491124342883912354455016019159414005706318095122249773922994878979929313800151041093429926638303473178899888788303480284896176675107908357557113765900957540416284368297673910129152191864809925187268259785281529799114450784260412961074720806011287012375300352124064851351262421270759553999811695022361876842164334580520627210321573075113552304124856560700916170998623637926121225002271151593587457352795259277554145925187972093125987304847927127733876684437269203126831676627289028304236684926161245027712827224517219951240581272520364184878067383193469640933882364596296908711949910453906437105209798649611377271676153937893004328436434537539603397787102662314198875515140515748100555946729179622361020459184392153899028364110634233256522374745944849890812352438960680903179334015785792700111905283239949613124813247182189763047529580788600050390161997633894060310945953773503009000672895058973072473913743098765559851815214944313399553158047512939354265125780947261302510592950298340204407875379844515871959710995682182372293741578481767021914026928633317333255548653994042697581813802641132276583969788805332865601903125324586347542889375448471438432041287174223789666518692511414971797419040519862262069963829192003027355084021838631872105572936063004926438666588623564271187743910000108125609798363049027417403751011327690140191649627766019586237968950723705936710430458340657519579941632830103068459798066903349424981912368155191799113852077572486617471331369347757175665463234018023433131350066525150741475321389057515716284028735559717242358969367088702074484149526108970411666104745324971334837317598085137437318149507616184117797550729866973905131477868192393134861336471199540618700579127581728736122692016148205897125973682495959924001886469291733029563028699635611291356630648850096304820157514793309815623789175965324804273675526776804196840022783372754213878515705035651348298063656644808201429940853352398614770199824386869021360741087985117672107506278068255830302635654718937956045335537776438835180410691653949496273973719778948372314034256508222813418505641888800558291149521811218360254341847067046455993395657016591744824213323410241943988577100631660453447935191715398733268312961535516234621015569821795491128088173712669143916211896542045125311844183210306338776751568853302537392937516583706145165520334956747462887709348651482071756312813390704363385096767422336882360466460272938936558592271246856143782506371791776147087552475231269278903017769991399352058810106643127336898774823320588194499044481139730852082573290386396343517105172298944260130695986243922399437017318402545969694544958733352969364399193342635040535724009161797970645639695866696922084401519836478970856959001929594258996135041941028808157772744523448939127195207984949726660712864254658937722986245372382470471112552272996704775451322935570151728981058633989515188844012883650485132896287241155198489338734497612790783932336198447417693573373482049517782443902639453289919670251099660900330415852750716578108842310769491481757526553553092393781368570331953451007897229565058054370583157737640734306350374356677759823668718586513197784338814048003607091823613762125774751740640388473351500118890886904741041781662362291614235474652420885116284687674045165952015850877730438567278235472301635435075124737277734020843809328799543555119850988166678890412638294368334608602577221245630917287495671538551015729136829581032204207379689342083427570739750193195059175178789808403001289591760390004159484136049637257913973731753060266595729571378239597587802361544044091931299113134190800249623470392929145731349317005252405672085068828498517174050425353558737719200448483709943568462187792267036739892307166447830945990697284128205978814569893013961181277523047670065096801029693120462873014076138848693146846245600382606951897309491946496982762498209280467732748396812907815444019826830270053783989382897402195278558619593423235529332890160486591298674278726868140872828286221395133880903222401183651558352404310433382053048799832275015080687569193607900462563818441619703460516831192410926863616279840625128107844149288390381398309499221982278486360910584269734899752759885578139974144258361377943338015113460811938431461738107924106253360208372957576937826273891651986362740568714420753259581350605455245436070687023417029598622561487139446614521203709888206060364507009810236348548017351234512101993265291841089420926992519128510615798332251901971435961375553081480571798621655134791213446738446932634200167000668695239812580553553355069993783595111332595892733096460230725855310477550689202218650937735353906500773194995906402119577970649120843920185584467316665550328758276435001342610202616123449741806243100140300001746031831098929918549500970948800555509421418337263190247498565252280439171478905035968954185410229862240626356671668815566895096838605071809907755145117880156284955777089168876130108464627079570364097840301848849713972736926715810119938145027089535885065651311303060234331758997503565083194708953684827309411983152674732590533839598745592836363078084941676855176035288097227114239044726473251833940786248964891331911580662310897875255163249280613251348375935452295412755508894495915477185000569327398130210392676660472861277343847437136094521758090704558501503418277517695146385962733898709824104781339317434742139923022212675554292514278261716948943861499575812756158732122778058876394848706601587843899748038802674177189668253004930289962981328372969381605047759793307736329674245980606960183597237425104364391268733796916854744768631013229598612689359945572726742167668520975444434144944532272680488513356297364767263481605692863351811610197658048023165260448165484828049683953280250568144848701095244660074218380674996924208419171968009567346012226353070708327243976087096462381381177158692776613299188993206603801852184325573882545772481563091581538910865262684203868498399204220324426757203555252608454055182518794002815596174154843626513535850457162729960623757793685885901161922256574392832568187634735876656508418996239658952092090523320899841693161108178963727479014000472265162306121235596426765549620345717229272642374476290138666991623575618527610826533749224408597936610235311596115506385094910162064765447808964857925455770224778186222290977112080182823810716160597536422997594061475397035309920944180184596436142986939067355895900934789853024948713857174991025561160648688640483905933615669625002590540647087306931731958591889478796227757804912709515958625934870481735227967605209389255150443488322542260967252901895647283703600498049426643110302787349601187851266130697378691384950225218360199855703549617653212662031778185512124614624866044568232549761043010782522652520874972708792839046723110697845200025811323941117975520862601750431054009522739377483494938872034767914941682881221100329519208729256310344125307498885292573720127514865132598696857837748144543207572495073374474178932987351657224035449741149625978774185925209986381797978244728216609775594884487908243883834704537227662174783412657447378742020633710906477058579606483905620180642944549113515770232653168251467083161916003553333646437424329931961998122043255762624248662312597205131747178371535380662172181209903615457714060245013444733274070689434969807437687717951451447335470028503714668675343773597940489867638760298956054002172381399924137478350838218661245846831391995651115891910156521705169959130919894255904706937700271651467169816921888286206011714614885746824500092149901656948705718534827688599370788719525685088423607954365881827928422833695852057766628345857540900099158994359307176179858595985129198844620697160485903453781093490857034625249804470862180358406284730523593983560679790941215740210859211931398327830351383643069649315175895625481281906413423662336206358253770375415221473029693191537809662230520516252175156884006659439846874906740194788344618589955704322186948147322358381116893119470492280135286995765091617347659157680623524408075343253965000795354348516308360078015079139743376702162441310043270005463570898789368762779039233267051267951911417412970559178639830844217307684876665541433094591929397333725398885629188744322474829329601659994717915731096585082022290072779055812091941166658414958693380927265934429428693271606061571343648496135250273636669951350830821234433860633786343801387751405798841056041516453531030243307356573611635267743737886702033553234737434851227556808591953382651549575400478428309692151416962714022104345801983818312980722721954335936708214586885666730703529150187507568903266809247044587192036551040517695928431696623419000819980304056559645595817138143312297032452175374390466261955741885457529907034295265001845379427670491209075317629336870209716776617714462887238534336392988905973119162435221179784213426390259168179624961725580700975448834693226544616234868007701588875061826525104372437967354050016918378638510338804112393521549329860492076181615350667242646736744886463860542054029630449188273286520547495257804705575277415243311912221732812470865969565227225822825496427274842598081535584191923148489929693837242675596277740018439303485996908015294997497080623157280215620430639922047160646819090837198690976722253415237575035108437737218585770133306737011992063753111111340085758140809212075958226481171114366972613479860109233701744037983049783240717662685847156736443324482856511631294795352109406260258603618160425574447481747951063644855123440179657385306735819939372005232986881460557022817274715464745836657373005422541305750946909331793782556552459489656282674434198013300580644454420617680291119026495547357748358393554101960934673609169304712209321153595400589693266249231399349489836009742362277617812101328010036272745241945304289145176206202611430769542851892480310557352634026354189133169959874699978702476073350319150988034268131949444979438920192523351629405098314331229163438910222610379086214419482919279898726016605812459248497084831071746657927876345036052027309084455666611167233330887708463627756343405374045901307053786856617815535432565035198270492443403568879441539345193243878257866922371109044634473100334347876230942984997602574443467871132853163733374005219843820346995030437859044003184520448206456365036647661725196993408230291696792420654113848987333508276650263552382168931849815626936304938922222007169947940529802937835320748765776845484692817214116320357409468115849450703544213667494529681899045401729362486265941288124541100315181761948875074762842239652731206338245687925134272765770921636445263606556914263098642808384859921660896710947074111314926281191614414296595944098780611798719894518027294386003344302584794442154819185866734563536371678648548515837864513415428484918511741056235624769438227323022771814431355655372066601538174997427246803285494188483284924995479645308070830335537269158968315937318076936125834653695052299131654823900107132487398745358137226085912704606674022583979913287333642674246072002057752570118191340622379976050008846214019588826217695712076185225158412818208897089945638913778617802534610630395434542056256441888451817723983059826410744816955831523260734413411202202849593740000144832476383024847230028553779800472144953381566347844547160476720445928838278970679436924012628288564490531075949661827213270866849289667978972405846566135510378243979370206827474485577577290947369159391867920732995873661584859709761217094465048374662630482814196448700366053007518370647725206224039491924914942896688019658239993853963879161620177834385205442096002770440416825127580051095802436561780594969687243428416280376082332487297260438936126348069438631028284656805733145141828573392707428076850306354883481654123632664428400846651635818871222129665907884868710259862327712141526213459469733206338191433880113459398520786411076663724912764516872983466818514808612638136209542039506548959093483425907417764949772490206367267615043532402789446586607810166208797923446330339106965568684690172427584301054767284343617760671662767064469007480694891776707033274008212486459179811040143957065545265249145574746503943537954370292253373304413632521733342737163878839932673608964562636271389707564102826124547050982857784701573527695765847584999340669762782304249855232458411886887168317280800209413870994456346594632011669102751685753211529220715346406002389899899032225726106724082025726670290743465390239066022815841832856628049391518341336826457821954676642039549582235127980792288177669356794118000487318168751043212126840394812149674711733531581758363098215045744367055541246231180140574977895894645530388586473297060948910931615742207505418722572246543126112056725215247336952884956702973109911534182242661956374773014213724323024317151147788824461365085112306786559695679614413878550824885162274712356708172201566427855760074952853933585621942483301047023697234054837571648300502738398782228843030397334141411375676884805543642897797345978580925765981007394513614911530515400427686666394921826301048779437842557792002284793740117262126401249837085247609325858753663178481466400369985761450593017218029727254528894102833538429090071881519393292495843910476201126940423321162699323511380871450301286087936932330435315457214943895967179413194586612184858962705284065030642403064303027322717320173753365074694209841390733353153088748745068246485797621050033368750641134335612219835683368598591516976355231751746006087166960036805293412400525769871099698226070745956339395303414481222950990445046202911613219903294673313294502130216079911944036558317778017904549077678178759083613097746011023788933206209978708636783573877601959770006642026465507670378572463349017554088200016531759527809353273934597061201309481641562247322835222650369274027423612464005085546516128988501616968234703938928477964432519129663395630124043568245296678930381417107079758379891001424067439187459054489334258408784133453697807284410908564639736232866917041579591013707390964332245875851526292852753553195130076413916866209355126466319206480487386466605368004186241842768289921164398173655423248502004431560188709083182051248965243380145107811347761115381310352320708958983509869992950163129238931641558469801315078053771038691520895020346916720788283548926902310558760520837691109385207349639813779629490072396082854333274029705848697840816911458622380390113600582370790907688454268175400767634405633052640247810478095350181274121016124796893259114425156577120299004084465691083031515562651811498578045674711832296712366013509954070916302435350067820207100859459883093149677530212858387803801395513266984807615667997937995191495294090851189910798124383879469936853912933457216227059487392515983063244845480995704576065759610699485589833068597926809256275478654698338696285237510639061462869613384452103483224479295380103377296453491812766585120808697101744329667394488714022121421761112508719112066638957279841088792943997515715834668992510898755189943766051635531288741030519507640336559586570472857547441792694069731422673436404034316441839247055946591059817941854130946705505011514829975588244671171488597494895794422117224954701480525610991893470836923445021364453658640749254549482166074331603957002803640665217080082034606999705956352817560909396993109666135718247639298668622969250309494303380361654942471390783393071913861561541282446033830079237340537217275637950307553029384933474086542775950493686557507043883587144142122512797678807823138502261098518753933526336621328119210674291380717183670514112741282869235253034364442612013138153084415691682122635336059708908527780273073387539374357812964179348466976928071798439121543546920930187101205367603715150431967403031259726288101593162623088533577919255649418858940785058844640691931400442551635634749919423459182460871875579408441804226769165451837382612629913700503285335337124184282869284710602598995464566578804594003233784380422113208211320078874691640234092964550557208124640508996452090770008110745026835153914453142932592378054416743039087836428177379569087417719183756987343736025224587636598630229503501648854453296769219237269446414331918831699223427588197838833605624448864368852641182006974136008757819871052090527108005150227541296427683464345990920584944762538361413209780947557981179565964822739706609584521559367763948057317883762739027897024546458048159817486635693738880584053822168428979989987450178340174767224302942850454657810023525522376718895708367450393588055928298880516621379307092702029066109084630409174886014711318526128053965660404482152897418562860766658164164009768796813149349323229712437927717874172716800206406720452923438727654248638268291404456535230424563847141346885030235235756306646471691539827466035632359079539575768046041830734674803365615712681714223009400142109858583152108413136854576220026993300924808010886685575951219699279926240375541498911337920504283025718132431547205948126269456847870472961092142274826589898781462513969432987655587923747982144438592626910889686923235498027285343999502960782167276932702772823135170498769872213263237777080827730895484956390950554850867817416856203440756814425661732393250809754268870867524927058463527359363928069950153368740887148384774356474864070541860387349768920600358938179945577357306397103011580676591231373123596435660704243643573072530900800802423049708685558210778358848846262578967913089242933496199623610729627932717902225662627375294575352516997804553176446877149202876173649593269093283277849497814012936076669767046378187332175153219116173547853685095591801214874338504805367031481997534648244344586187365437312253936609946090714052533764101503527796370065248488665608431961050366163601259283041147619223515968711130093325258939205671186451431741122243934684290104123872383444682114132697096928899790793465487390969187344150785175610168471130978183017885869559683189520828177716228556111700838014784909957194020899967361414639069677464022305723827162093162809766302977518110528862518285801986744933568481582482548694590929833059600229816438577514135084986538457880537306416308687466045991937204327591381941089102363829626082632835415729150823884070808172656609039396545591021702339488277773400286197308271162136558255401471431163494933788907037738876156138909973840122955875677577572416220964965610852836391988996847808559948609350689728676930015862139351013921153617789016207141918751677503231790020277896456309357652569804985504771446725881381553914193041591008125039160982088818566492691291522113879547065334049385282116259627191057844513848940130624225656966269750132706185836586425029773416614705831725813934610337797183404237748487961130615177755066988438526868545918448930552895406529577231780578212528834625689869834602402458745220154525296063695166700075274136727928137975852030778744446148399512986378189457057324964070873565197518696445333917606745156198171497301290225952028200785806714380472824641280135734918040944301487150459735280486266454560590197415119656541850381285021505128163328177902630845700734983486484046022133788252244512035760913981124828282349560224103125414668080654996855256160475829023571672704848034986117616893745723234001425247767715689815119671709197564571692635888207288330324998520731345599479671703841763004081108914817157548377299431689809073351546845158498040358713929293291411745689532402692566045674512289446001165880964247113619701015832458606529633320528118511809233870807832403956614271484014204806274117363433884529597558007881809970959216213326674200508753453291875026631357556794517867147811175499414239426832227919797105265239432390186707378038582209196103071336304700364852114469819270748880887513052410121823844619370068919134938883878415340219908715900779606127538815805789230058991524955871781153620782818484411841496847807932107371285908335422134489319865211388061434772458938067091563486899736173281002512001721217709993046304469117029049230468350561123640823257571220062849883399570970800966497949409569611513634098796367667588628665141501341485052122505321383688407824880147660419307566820740891705538794709412344072009638876301884368488633681801988863342185791287455396815196751498607524304112118300038912487439395220326549040292704362224631695410670229658637098864431626448878305942468974347519925224701597955628887396626808170208586072827501037544730866269254041125652605970488062188069633550191641859196127964507711587368945608554983455782948153271421470674362512510860878735936973449015245737218122450275785165187390641054242466999635696591434282168028913861970406425557772156055598312611353347518612476114711153047622732686090937416797429900918082984586864702910397999559297190259071800893694729978693232823984456947533771873991279217245692401118667556257409910679806689048176637147661389062365356447769998470547014038596756809661566809840716315503785257896811741735262341153014148207387836401865285535472768756468078387618411796409651644972644020250151510718999078361994296770380529576619368531131455633577701885070122593321310760308668636298521908941807297600618006820236638912509209154264686487717805348979109257687805007570872231904905865068016555933437248647015991697481634638669270763977192730705145240681822054674940359935947324582629303796673516657523690585159838817424121119652332870459587575147698370528174199743743178027411961214454730934017612042354588494805957159569942065208255270127268599451066691391909335851159903299242047424853831271633199342695306352004963376390300660177113811379965612256681413472980174967271407565529284944093051523736452790009216676161505927670081676298962649816406514187069866488912201032340778060210817544453549416724402677251515120127812580118317912344300050259123943622218461553966534085254482914213659644857382256313653064151082036677386564848058031618260796050112645429796371495094265333671886531012337322056432072228124655311245356562907022668997499972622607099380178031875580490141750100141813856910101339806374651750416419588507530672901624833320562930250744385821137961776247041937367957338277708541553797832063182676635618488744033095329708273134773014642126884505719397232922432953516412176052792024051059176924115879946217677675905519806665650922892308596261102984439530193943136448069820766782339582381946602116241403223436936910397204383557828624355764723036434200384962171985730637113223526028054930650074001301631614633052213581501541314447783881401888072878087526685699268328793793272107960009240634809168841336173396993685511316531737677282399683199513104090162978968301816033103047012870512410154769115862640184024319456945801858327144495644548184613100271858482879530810163984304890171144699750272621340712595573403687727414937459259137673119049170813227199381675861263143140637956783506065290978352465039844586099224555255825866330311065747991410534401189210247082640510545996281701439066483166317721794460049094299941184739012567205034868338583476831770812646569060890002884307952000872219569625296681913456581594913980883152775924334180063400568443929264933490546497520347011703383284322936377375384381036129516647096902979035412869096493989488563140028924169843484592483436811647374994015165081029608512268936729109522234754395861967883186945925432475336824490792945766214183134765791519846731207149171366423878864576537831274518503428616938056531511784976960207716525416749900875928338325667473608413442496952218577257081222973375753097598059539803524546088816239044761480639974276134822852003932769843649991708052703049880905452444561582897816002124225997754021916376367241311980703789188973060677164808820256283286338131781775805733477277921817726690681725460605322931962988724987331983358111453180698659315977576097691909086687948878691822888510073033725841161039247888101935455463542042671003758816619128390581006266190972282762092455365589984163075865246381328473685554001332800637794984401347620117871806514595395102618948985563010102137373901490008843942098837460058404721083720474176695621864324083138418348668984822616304889176004481368965494669030672258805288684319916518019194237246357618355970020612533863615427500520706707369477591227607876690698211906905662337072836437821233707648148474170151271665269903469939227141665605572713579563194287658528621888958880267714941724489871527750033455333786105615424080779319964931511878852029405297219678585871784456152383620927261971854531136742630156509462903706246732358834786033688814154763474920515340617148044699902745050438834001091843072264605904420684915448415786340843082215347777020537824442906341598154151383044788604995385940466126466872426202568724862104097921598907383680519866651152101408098839146111428435284795862292588442706032187648188024703849254789318977822982237797274147203637894613248054117952372504479462620404915201556779760267584839917758095057021052270026277264625929985116890641898352337249574852018995452203908100732830334744789940583453357921472532557983867864593231204136905709755810729761765458090374867245182352578172964175722627769934675463255681615133717460139508319987195223615334826065635486743240804375754026860973364133019468320575091141803703747386324934032681245338956572743538391072433673197673769421664982698750633039706729675737670936827822563014811637834936925981096284985553629826021067851138424333473976528164742170238555926326532476021885897810424824906271717457062328036868779085502603172260238565765209809430624136598117523300705948919611494615937175053599352785759414034897797862710922956819591697945047491722913476681101226649174575478104773374787946893042233937020227342461634948766444865278819233808158189653767706614833026553291147368758575645002741090007536579905970752215590327663701159594440017807705000537697536480765779804292847433044160808438273853826507801008825275235880423732852173138830437085599365578226275718921841774073139338387367219619027522204795643080276524313526872786800418788194310354251636533203331750677398138904820518010853079428221340213700365117330551566813207534329157098105602490641020189215973681782462478592431867268057623568830251062417876003256326608553600297027366041314784524143129188371161363826456558389812133769378692844162054886435312190978139228866912723874008115646207927426724820498771141927890224232021008681492587281858873304274514710977628145249037331400625970740337858184036866386548638735188861588852161670518404263013087210160815448202825448133381441857635079075235201631744644946227901037097997254078275210393907156850204444809674759376491496302279164689701892596993628608842963139154077683120991140645236751870229129372116012301952294467191355446123192375973021978979676809912058474332852614064256658532191313183842529366088218864351957964790813931676564604346846557840935215982969152766398911385428167229544024623579126083884126957682071255867391527368206195387201884700675730694796030476906346528441076668159544430221960855609493462597118464079159239482691888998797884647994940365447273810035108453084033099742499840331707058460332309236584521977001267824130874023815749649373390233914529933758706049462278806331583687132901598661694138847811021068883281449326294492222818835901988947817404141301220057611467135575035101598652510450618669431719967380666167012604400994762648058601226764691980868323681394558856173152845189446078227124376977239947339064831254789721524137635056466262841243833141684762348716053223606228348320221046525844151549671780335669287070931586601401923445486508521262306838375558640644841339898203613200345195747054305627145019090947769933019127634720039462175254401907843548741774393078373267917334736090607420583957457613308180147206924435106278202862152156135964227534597395233276474199312949191402066550631107340283137843365038705962477697118025002708479945126334324124076822792199188722649142280326980231887826025427678358804212495583234504803136009761413036747595347735297618727519698175343378364370850521631270860820306889942384603473092767860921429102352522220222411341797131798390660134113877401663829299497193839822735318591465118927419604395781413580327443227911202108604717019904573961297276455255313246328722278124267841802076084586573682934466203266339513492858593576043092775790807781498416817247860014744601675580965240235084638809185803742799235784395373984921353570858096877451775106491888867352819470748354484140593924023053414187894834681344898319605418944427438855152540848964027584066366363103793129950522386045453318019981138399505551374880491820939716745362952952561474680263701094606002285063627489850485669125644205257004389132716092477970795286336894667043306173716796618630100051841487548408227549947070459373228164676579786207252964682148732215613534328585599282762000026684679241063539184120156888738620586182601691106600769749544414389575479706218748446760207976144305101329965974811243646101702252153954349046914277442375303073020829183154018533936265883748488761369766282272468453713979254479936897950382690614214774536855717688291068573112404023358121009958465166677299624705637252376402822311969279914084382285253653330435492927950928364185394065515397195660327837018640430335009453140029511669095379723914742583190439938185140804197686825408924873514768145774985179766216776298107439110228187220949031293363573444157338087663167316536125141407791225473190664329260538867211373699222145815564183241702901502046956646521669619563685286825297916957952005174680995168639580518682358923404275859196343525852499495649386981250927499164578705283461163501669853058050940460898327563204983573453761540579287993846353972551631162694900577840872028189095150198654264062307425678086533550018793056693549774201215849113484167923536350486364515513582678870668669214969369209011322386830181113876570410922017240136069178795539237098953116493884233381291196738348413044492973975202400739131214735285199913955416319476087229187282624003142970023538366763403135634400529469769001370234813886458029817510244338592134405377524324891169579794907787397160532301140852672882474530205293282299511416735065267420842080744285336586235713175092107240113985387784570053349152204680215635157761578463804437301440383997664517171828258726181357848737769236103678644239716609755277871427894008270480038782820698709257702761887261437517572937504061033610141850911945080555996521435104693436283858690942657439983046581533466769824248212274744698123161630048751202021938982468423363718587598534675400772123772108761530687453802229804493351533254002131118383837435898881285553163852984100526532694592287075082433437852010493447866977582992166371917201948731781743674448934590773449326001084983865517258091296506375791772238905696718383567522383559167109710539770840087003465640840909701892922996416264132338309265757082533890657816260251713900549998376752794333750870901999465408428134310683774018879090634828355696599028407449348827619810233243498556187700920729521083240644888795392646852383108126458233934679654489922135142039944948510019858147689001696710288865663215434971214403260122574689679638223192613136981458757012795580688471715085811278794174145203371359542110661863501292717376688107320604502768965230417626913882219123052212638867253960017551677062153859213192777563937764361424055502130093087611082796218579061981122330009150285202759682407035920512722102808521922227383959273238220994029347894322682810218974353046851148587207693989440785451056862159190909556829308443765647034749319480192090934426455965654094972238595732909255974147891908967095401586295259196910646007017718130965632014325838005955225929846202426472783303359228170976097214718588431893157329134371242580902905002528136386389708034676167916441978590755710948472520231058397247234703785031639234866162366298393105320387180255874406450848275728290174048810253075594794137875308483584877509663636401875130456460045038825204071602561402826751842915788729413152856057141995578765626396224372624991725041535992646359763194029733508091538396360272107339280671047967620202043661039163725230603626299789890637804066454581850800379511584076428738869923606219093535982176714450609044038187338700914727210529323146385680629109639687316456753767816636884665858651487474920802843838471888128216720315229710114780781227280448672447200186335590537950319098173903809316763338852463643094131887006636963644145011918803320730632188721280106036040458884350552037206735030476516785325840512569797417826128687870861084694491487681242060154327587945389823568053828598041272622993157969962765250471013398481292235487544286070455249659149972868200715363444709770227792390814274684931584514204903896114018309837213544304262049677377597423669294002573887800615806305738143054451615302224396580972532680866318148461854064858230209947223966249982914346209929750345671004399558487689282992377011051897830117738176209807867416579863704550941583123273139464217400184816759992381681658465003945066477652343749464445200219925593307695622316505787521465121976757400235786754574760913141761589608515583149472910424840190426061098996980975833648579500775502846562636863835499854944896246333131779689695581576791913101530405494378657305072994630340039729952885745749398113940780888808550854210204407929820364278649557145417842960741206194636306349476799341789135698812977784017376716969578262753519697819465524319010111716179486530860503239462677277674946653990307175763509609146643726768425491062822379306127676772360535224139559273460673223553162105055599177696344979677854208617756171911883268031296649674271326988142340669934607859119112179217393154858554736871970939517500787074934379667790126203051946867028034314707226806938632232417772239792627852807412821738968598344112313715295936395591091897281818425611938897514445068827796659403445469167993115635259508123948928720469740864033185137096930087454796319417984307975230060676581361837383738315105509303520616066229615827189796226645737861666639458785116023854652388133768105310496219152213060987858632132231326010813895598414681659419001947043403360762928750291052575547726901908960715651700001723410441095075949011377619409176787417374939131505130095663427947008586012406087050543458340924507205897869617078154889318951226303600884642036340022632043488238168001530348522042815288141853310861596476580712902813182073716978697699558341525824553470642957919710099918506373249840099197115758041040674983309491501641225414490197753102746370866777965791065199403846850312125808976946900347813984903042371634697119126046820048576183263219316707999775290126447820321853459306372882189275731967930101022114179170438403270171461126485290911329008951273441659657394607547833830069741878849134439891396655902444638835012935132714046487723026084479886127388280565905690123544947498598170637943511283408330712895923122439173537747411054206554539300081586903459366648178349777624702937262021624273764485340186287856131476189953790529634051166224367559627716980006144774756278340936170703886910469030545517376638751548361256765457176477146123575092791590172884972600430225177506784785660022837164583896844483944817301476334138597158757980947152409359820487284956799698792290088560185149784959750386923092920858876950348764548906657603460564210267304583397439187764072406677516244278609855341306946975819483425831610087503613162008426276893693475399430775216044621825097961435788237790165219519767033135991172514733405890399782766687296668211822907382282490533691062210137698984445810086537739285278564925773925741694917074962461104872674176997437171056169164343953631130928439259150108593106936301360794678341041372969640906951480823675063038448257232030462651591066995669741804053786948891394859906519046751042202846111726577369547071599848327872607805772259941090063546344884294947523898054977048467117256533546722914432378996806047248631711735014876817571705108748499296016248809851576689125156602318050432607223711484604328086083378193876470723818043543733560613024061377998923594185013503299434408050200619513899531492020337067209429292693157332293151848382234272119619504842381338138248921111710715876378454672907650589039158958415640124738859317753690442335549591651261105884913541260895157167187100951429104229130433582178272533704271545172506202662446050333226159885238839466728874038031251316047517502138363578357107208790350356174125312137834204433084911033771166538043720140703213514689675654975822272165298805130146360403380895342352863055427852423747094989979340820598415965649816889522629220747651427112665295934731977516188174754693718924147781728963815881649770325195617511878083682158651794768386217080729046812503851939976754609732377291232697139440127755336522410719636755389368767684936348445959165595568566954785207844138453235294571837440784639669497308089079640919305904489914453399776952491276185172288723058120115765670555939231286823146652267548572273619480325433541922679708097090170469864585864781005536980070694636875985653222511271095250917109108634383940859264399083036688015083680089534691044455806843330653873747400771079612063453394324488281515068906840607635014856033552309415522011365108972177395513934087720809813835873173376065618615970246795813345988580163332993051100700432179135400447956865800930985690410504557425117454743025900067476388143222735403816734253555373592873873693948544773372619358019139344702143216414796641762640770319753110205859247717236462327075028749554590166689153315508608466990535321039843978689272021746310911748353749711880576867848446026824716042430248820318201882674392563303498593411926344585945483598330593754466955812549846146260607839270550185614829504722936019699996569114258280207517234340642545445680546238835162104957076413753687783256725622990562347103804081388779754077843358684498963341969477949871430526651522416771428683542746911041739755315002894045749305515049186257987072624215375095821016511206436870623234513181821204235569427282700697735102488089148897401596319246936338787126073482954415990929034361855809201004865722391739002965273981783281719162778280496107783717820128429955408561563896051984043667033475926437434598496942450845844244667244156073285468967470587477225230464919481882409104116978911806346427976915969601319603461546948926619421554108130854194320936457731922074592424874123102597831370654300612995409049717040344950509770132937657245986237556296560781704520575580086135696131875092212948191606632934202647419634217040343946756325989786281040828521559526817090075789428225012199526560377296337692613156099449060624064226859510776001191751184467948814318513408596055646563782549101147754501210752979429916081368068683676904680099011667398863458339826804269332272074227497258790646627314359382938693476308929756473140555512213280377792829549188804892719147458955364698275416062680934885410525270523560776615481432921172805004689808159022364878862289406080369373833699128156422580005470271863656744863158047596438856466434143407841046404382167652344030178868215714456773412167915949228861761642085077833844565027313799747135559813464959014742181978672286520234080714109284436168063327888365473536030583510376464626472676552996770467368768000137535307872318208519948026156950444377689851942182580655556053596887861192343178698467680792654134314927527559297708464581988107207335816187581921051444524425674257809820831825667959667323198990279855371041774780491295443102664704446155493520122524649197936293572064087181223025602417433153664431943075015641068764276328693181088362771768591400084047462801395949139351824715089710036123371959745093435388040445231083783257814714471481401586226052380252170059782345974003290145415899337081480201197866448949802198153122404884643432415117833199519621374041593573342495242181742549860333784547557501598034605568019951682166225187232909876163008829590025969765487406711518825744771139328846450103224650982336273992170409721885439889906085844024298737516519029862188692762051014447105135780440496395557669780595389038481983155250396350474959730411751893808699803360900186318391192912128466758208458945343441733955410966327019662577199637543042572919807807143017509003298566696921346203824120939588120378169571289685698429487451667407598257320509429631386466725059683141461383274608871981967841651143744170838960941068150470769075373139790695795492842037172433322422216976004507611039621101593792192473443428974243524650544623969558095497894002437229096870652284760631173448972493906624770416562504072214973579798730300011961847981690470937876544304565875657115025627414239799966401231911831200228964191433321197668360997905980804030299231073811884885138492496774950027882304382071091697548048792863538939930991212816648177940915898476058975210043069016994034608383281911060773711649061460526874348178257956732681987645289407715565474081211745895527367618355629127151454761659805746013552824024202383384385003537509803070294529627682602036768889057971635500189937209433595022858246601731489664643055456449450997441790303688920436589564724902985006865088326299932059813061507398501423324647539116046388827218092993648428430057158299637032383633254688986750103430837066376788914082063778088032803151194440607515570485943374002090896404983881516436578809836355435688354695379999595316593259288267777725783229558012742061677738771772168186551211402564193497616665340260552574611686590831001596867351052449229491839241211393181622074764243892381498711109892188538501265940588360405585551611200079262185018503011433251333960717941495563178412360925902638385707101089906242932674213609997427432278815424548929761885254368046753030354848076845389978952285639351303145303694792537116510466948183999833524325844022942902924081585457640787412360182328701984022779112639814727273472321926653975125483885106379443004030926662262117576581580294786411539488068297211503903271614949549387992652378892056638870996477294966223696959833519293899836517636712236429727547179219001243249695166999529093277068604221804723965847678180934201771131216697258549523645614733890866714451940931118203817595957427918653029128566217371050028250042873523601240043903691433994029748735950596572524714160209758608970187489121158512895548175550022959960193351783487156199129859727929189258119220875350333015222080052319674972208883743166873849546851822663065633925905732829584588110086379174456689887643700511149786447000794516795642779712386729234570776301026312128743420581524025716208910164988013497384132259632681474865329943920463408743979707202200688915854526432313524816475605162726275023796742176707222301318506428863917418216162050341343114369224849660470659459512422227984146206047777098435076382888141083078264167287405873201020616009382273200686515242998908972700923945819246241306633096761222897991771800291292895675981377543519630113607657104922611753920540165453789537203858153895685406130557238681057015165463868319749163012014851933930020680060461189655301870095562661898533193249402570641416363004667150956664027808983698171868938438524688853697459783451965444655267428374025698220983794202679893240073605677752373619117063607276288614777941112695896658803682614083293788678814458588858411477435355674919273536702251901237265779020645173660162708818529222155940481532179803042673361562086070762009632930901373859369214068429408266556595143983809824317987304323121368217985746851912336452851411087232949489167769729385761594826014934274839386535102607659689830304013383766918787167049740806806248267829951200327614024970103253041194457961180772733973938379544610384014846363350598137404603006641717543387156260125564351644528070237566402810210704447445794287632473443787922029195691202313152538274341676103119085868014325093444631054710356564662653292912371942088350170465067949495650605181803873928005357240638055597082045020481318477600653535233843445940276363839306356610862753928676879171097217973365069812803937262809554615303669636673671255470048374876911580005089231620889260377666410642200054870085812139683264849100151199351897701648039211955227422929182684037184544607668308099708340129032907748856293879381282829625915361441923461486570265768339707499129433547981548436938577323860634342029360838703850211877893807619256764355124779255001108960991780223349072092007575390212784814355502620659257000759088920814819815672016966710171512736799617146927260786968109250968755867999848539169629528382552815605570958217387376675246645080295332245712283536876974501893236807776527378348914806978354020097922314817331515070615581139487569828646689143833179530218733566903196292789044848016906262781376299910582671237239877061510973998365787796234715124952785137269542550614226690114292514838788529971206404732457513970869505184595843858862518061784247283536488988358044622981205512652353808486683934979499953514336312523937014498191639247171868296187541264629937501972245476906336056202472895034439924548596140179701624971065662312401206089253971055334192839957740230675988214723661535405866380866937164673568913752261072435132491728670521565544412772125305378509346589551444400216305386399236734014344635004184784315741822393023053366233961916820021603911242255854000185602867516558367073951639898000232693989352861270936184901275635336847309181805785456985945083039426241294897011123369760759771048851445757565862995727149636167174451098368357701095099210326091255155187976669705609166940818475385791230620932033966914609928941646069717974033763087052723282476674117885041318416323190687370242337735923153153312399065069446134272565505832355390165270535234354730346753886996020223415273002148398605930620282783351093846429422684458508123819161135527949564790986906609750217776956318378232542341260349254182990971650389282107485557214947354049817878786786497055936056236018378340976284702300584530978745792024184469838987160577433551141517885442179252663367103543438019589515471183071295811495164943909620996424020539663738684973352143897791003859783310780515915472643240463682495849342735847746426838845748679449588900979403912108334066296398851318160272721417184793481480845278846006734755583527282878527992059665220527193604780578690403580001343482735993296665310720110147146699565894312885231570408779162839241683426277961560828622998354523723076969337668554746523465882510096927709214748918576515444730533277869890493058685042484026460111988790985750644895744558928965483622801319805364183027531293716318214297930667345497429607141932290049576963423010883826494584333412056839679865397894095899361856451042313099350337188792916129114385637413501867047295583722298653189328665619091933924528880906444735621697377582643379205197027748689897683951700085352553443805491152954750883638484355033381383710925350548568796652880831292212244138399872361113077601279549370019937882888406713950793568370978238592616964730851243315580607590903928744255083495066070646889759789513475257280642104303981952565949631981652317197608340134105299451571196651221812380892500250116253596870862722209812413817729991212699083653461618280338496892651709809923191879649155978817282216518939637970541196267139657287693238968764231958456304979397596545433688021981234136588612733557237503829553495691025919987268276497269558040265493286889044847036155268050181939735025416252011471735287217029784268207228485185627668283823168598419437416498901878927221526090778642795018920235239528335987525165525037553945182849464622340307876472628402178498616604410342995082449626897889080891094451038803868421828624086887344987474873939837967231030216305304184820069232333859771811003598676073381243571938085633616889758758257295200040202129207704807949446169390970463606955680105899669872571006518727733017525168152041041538884508032906167291660054668525631222081977716772883660721112356375432590310429734105622085983517247771943357550208673306796357648807916731530649371158055833886605105869878866782690901003624131819291951426915657908231707887549609168632029681077093088716652193015230700209602112232772203335051198063099562310259249414822447422392977548409648475044439352379744252972333879283909797259343308572277927383591575356597851388791138591218125478362421219839080792257498631544922877062795828223112780786659831683758616797512352475143427318157920465248871498646019452485149800945851732580519402356875961657583349040274896049843006092106627260820490966369183743593292339920028653047290799032396814465062556244572109892332673744450987245487502290363407552491381922332645999613687064899623235432542418406893217032357064090340141366342429012092283993264567278873934934287657706964760530989246626653050521634324735889440867779678201839297708818763864410977561483737459131681087278190721362863594736802929187036907849419651790008169957199923055878395062514090382339682053216654732349982623581004618139700744618432633457078641793764533682959175053515681622516252254317015560828134801780179547305954212850943453536612354815500109061695761089591180933237282634141452989004751647118455939314838305976255271906131838585021397710125421927681472811235427313620290301233987881758540026703639304252864709221536747350956666047343975881902975763250354651234508833171732519830056564264904551511986670943251619494459197471334955005300386461191571353511739307145246784829663005228840002368897649420564792345011419936151754130349107270706205194197589333923908698701862802658239885338440310864306196483585514020786890417606319863899146232117652217663991269927286912499137531653436409720155092059641537242698283088965540617670873692425313231380284259905875623240356094048727458471654597592743225908222509021255874298280231368737211227313469993542653594211535152464570586605902603271195406145558746109361066476197924389809556639375601593493703804089333236297268569474690831853305277709750769957171683743215966494850411623768298312364285224941942104393632898761966241447886678921298032549086142418511114223571598712888493391926841588163939929984876296767534229754251634741876998315837552623168192113546298306989185832017191475519201067202989892519843191950482702906424738026706424802287528188651542686745119520537871687164131251619568047163361535300182521971573252806722199417694502823669203224966262778411106399394238095737613932845954530571904038133743583866186947697813753610943853706857145184451350730299696999078712418951626258017600628237051019037797124431135271657617165173087147111075998518090995943181730876008410198548781027214089364985111308576259329756759190150924092037924707206357120822824985826074719016332698419148172335512324082629664910838123001803968604372313185245028971101232648848852958935045558269136937978979611177629058301007513565108058475524498383963518968412530228748836367148155525808504395571343970164517570269978073658905480840065854975849393348092428800560826462540650322008555596438052225272332194044230855691185166972443508939629729555803417735746270155240150064705975865296781253431125357995437732027304823965233203137256893188812675921435093254031061212088995023920511762748939148401755956071931398744380757122597296899736190642026166725292236921423430011582031157089045543229033756348831824740803405197277865552691970679952268559340920977446397709726499536821961240210120476531600821824739359040205741476249829296802559273708961230237441833729997988134347035222046397945024376160930113093242344816094960718150315799703353407548168586623318281887483400660077690904881284167591708492666587477859608998643151630622618932204918784611655486983488141124650493257392487247622049839595986903849737240265398801071025199321853122316547006115375124380166123853428995631270048794846294673118718007879590574585995236562541907852493395670808372486037454969396996239740360471903257199044722631195807793227673990111260703666633567479365058179690475257246565204089914117390462812277679547554244929461488410346983728167778639499406212575744793447204607848169485224229734624136146862614040637659958430283563864100627027936423155669590958723723536181669150055043339655281091915935134713287565684249170727584749209873229070894223906373359885404259585907813056879628286717216960754334432543599678307575241873939355953833718585819842833558599255600183032593582537246350762061354884858965636838380073933544845872688724292419106222353825364310003644347072529661089742708754728374300246488248542545020112897104514790856717229408785482386707829682950703831840982704450376392596359781462810081276180283694893066115268978760002592132820996222863852768962011885539538892586648027426573001287041299997641504684594385727457018057185155728169977552049128976305939857852733821142696830931162560140350096847811402670698111533498980241481692649866898769946772622600390948855485352607537865761552790237407087115360440755859602411524142055424876315918269774397198566290087228790657567832897438352291866920818003271345063987025628859446457852560183194226525921402230064308118152049821818192882109825660128354415239355683025279902070975314970985686209886744543528065059879861127172387175611680965629914163918006808435392203277478505859105386391918396768737786122647066214703408427305104045992746023855759765911109456978447181504202819253197547835485614364588630754022430011009922118718637602654038707142719368518551717102925824868874278525567760627806082803567068743511189749176250003107828320522531383543316720637539714637649296158173854963372185273165879422720932933545192998871364564689485044868177800397035509628650291273960715758869288731561843635927249800508194088053409430193891830476227219217352859716311173052775600073100771549905492587302594738248567579975993787826350043508399112945417740652845489912313544771660980922392568247334236972290146889078370726226113894761414345949449853197955576013472733119109678331881002827349449242525386295175812017344162200238968470007321326611354218063217282131605606657242546176415962858716366787487817935967246988059841033260625762063167867113383367817403075929031731251934762965785123069703644844876175491163906433681742600825078252483485446633075422005615140051714443960765825909346878817918947703156961587710435615372420920921737388899328384321604532104989510574468519116669828427403042583895688666983726625221206529990046292863510757899816914723725850183035092961157257495689733318305115725096973387003431965043381463658440908890019169507985831252679199632194866481573551689940178841052645601522324162611252943309374724549546005327957959105136243483748217974140714278361316734815901772980235504478325477888560910495482359328418335734177911087202046604008377981875442461098486028783438082188467477189480796918792326828648553403018768628314649067806170708628591767186370118450220431749449078654905794232389410137793097589630815212940388603288921650573796726937281515874641193978498970465844022468555352906551472041202279458320601794349789236328016774580538002740917613648250123828894152609155126930259212745613613664880708570389683179362926360645087092769527377174923688608572794682023055254367936304023381026223562782399216265285986708870185320045594798557822486360832505306777931954825341779967524754805410951592992898844578047845629213313142748930581916371089502001029814901031182736513409794704991948484577545730650658084152797188979802779234385155310667863708974853359900331374849669052571538537955190161477056782655348968845606013139656231404107662923957123263996125022997610336044617210570048481594212199157732708940821224538132226467362604474246176558463932383798799549552412139580186752857664766784357367785787033804819614273600833630778055586162254786685533040556621363812245716423958246051513911830056605555956801823015997444953617149536360946115299238087079364874330753328333584024230554622494771981260565565041606492217594850904530900988019031348362184082787850639599428243079987307647864865968287577284635548890223883601362291233109550655442294963158537402505003756415180569086654512076809502688447943316178328231071188180066627109269238601146475438114226751992161465161655750170311332477144482542591076674829865119862215364342107666580822955727812111877564843594180607660441932357326568744831040007664098096246746885869018201072706246704731657193581076372970949260794577986586973676387524490221474264270757571879595148991114026249956740061401141256130674909735716026721088713920233193511746890353319495666047274329024267459344152340653260312853324520203086384078840084571821994081523026691610346756801404046952668406583772115234592217851248387476732354418997952665490769997167404776676178461749543671381058027682599398312868215962097038984130264397209894109027392115569275914399637588263442654925232817691401987425476662309816572261028015988511355676801933390732437732541865100251212698090801421509725560277246599733637525609042747449623555735416267955168181955653316369562764530732482433171461039457649751815908548817218879132651204741143516864448779568275190414042985991291207970423415083757833909392688238096972718606484555211548749939011279542673777778650315002835658017423392248039893776729578075360594248691797927476618298321280114541811276635626121411565380868256214139924986824235038104306334303305277974031632355885736647188528655594573702662481229882795163825108808146149928293921593304930903956755870842347146433083055465150338026888430668140007913525577927375809472329180138478531281889879618565843076873297226914265232330281235739836118826345169047593986191288225835697764599814811017648070099643714680579420875079796910601525599882070606522293874643901078857678697389717753918242091889955969180128453506752439146242106287238486592706373819754735651823404959809426727360111183025323119486347063931754400090166441252190338666582424273921262571958040340692413116093363094297440534281312093644760856539068337100642066610057579671888226852294778158231165454695730344021826906899805383203846142292128143608642339892985147775319658025670209858728406683389179600638468290838976902586095736359388470120139792616340879190484618663871749216863760259640746877242414408079987996555693489679089425832949018057212350590241722250462920244106975923331742547953593061821826305856947975281922640204793189186354136440036229340350637618464446894184967415864978575704126392532505192890023194945731108014396656414417844010881309407587570091655181419429205579837230539942820952085758940356845894556108237403836225633000357913184846538092980453347494384269618738443341012769319134028130515060334941232366096188751395753232560528803347935984741940514816256664863038879848069321975126987892308249532349339337037940328572863303793446033053902717201709786958703182147379591368701080937311601776854836844887501349378136457389230677181747781196536115122955136700927995931257585553592984164585213176400126587935993004858401299313385144118714603588645015142180490467377300169394756639310189749960306726638633028493660960947183409505057785481094494712391200193984758223768254249485851796013076111532696944066806581382559563671376585418639552447751197002726031286756523180559434742580402163621370655131204312838557857990143535716506014806939712948335341620281820942417309573431306690704977766176020399048036598952365845177003971351057257022670214980240686564318477647513821685592230590702660993149662779233720336755979662689313434323144720050604816390837214760855316965528114748315746198188163308662982810235594576674724262583720580741783897024425201995892788767152587597105650908261153098193955134227575411750563768353579271904943155574337458784762453028315442177674095233771519657536790390012097943567500013883291001687373364743522919216367986368213724513992485005763726543117548999587738766111567492854975696294387387376880993776101422227690774369128808542240089774952711674838097053248176758703352427067128588793861386922521927844205333750124135740957140461119477547403761146309908765118540755859124748414266456570996360266082600975348937821022330175998311733894570239595612871538143328916271143538371558813171119659541040999706029742888248940136018703250924554597036650509290662070209574446363011859776697169622534226532186328168934148012258559654073154867435238484037820099846602125219512792464519921382567458967612501833139116687074514299153066159731502843659295001871916468717330311060379541696835543909659089025094387808820587911056104630275334866690441512971291341681908809865327500875434257918892101910272163894605241050979772193744860963725527128029183854116604111581891958073943872877239273125312115159404391023674517396311854004802368682528026428856053550117301471338243338702625586615662981535531513874528302810408054869343870589053305177461813674331390302686622166151957117005558669933467116659672716542419354766503474807170386070431597156308151525896837275553795831795895383133863036449901587017923218976711596360156107793247372808783620454898498845659966686795042877050801829124579436037273829289324640329456334037149735649418721161810390341758532113445134229252894894278626166285408487208628206320741597927103721754373383793736775480887740765079001617669917248594873024999865584522984553356402061749996734151136237306731369681065960631779793153134768910695187478547758305969916843609698797066959124731261004993532263892614335388008318813010860050182137324124458697897553751809701741254115760748190830381812723244330923559873725586350555230945577183489929707762945623248664127072589976577319804322604506729301846101688265005197025776715234058657931912366953695909864670318695736124187691381600345352588791565050806288919529759145449061163197750203976846524175208573048762006838899477586829021323581275571207244597397069414783135804158142427050733763893666821435502585263456955664900416631442376505402401902751948505391565458501006491017576672989260468242648376836560794966321914920831997246712059913419666524907479180626256092956393256506739177347977613706720480999507617866527167498917485590632801680627689778006352094211256192781334848704659745737921730641924297173449786509196201316847862682840197600195905578211204960534511394819444962673230892516891945662320215931160006441578800944367809540232885763069278617716331559692515419264562211054479778457344374297884959612861771339678291193705096816286068381730081938347103284828407544785629307211289361595061492360317632832564162464453610604772820698835927568370133497652580122042454301081419924604497158563516208202194229695163651358595986575160213681486503931507829133567114124022975963960393367380870945233415998309015715711014334257608468139106675283184375673401509313568165499474861547753494796920311650548437531504867267950999132131068485244167957965438381588999044868602369631639813540129767928241435889657490079581750933426208559053014937007591133211629221182683844452178077780859099735496280503277979328309568820602839426376630643203172281128782278976631080346018351166327264121642831254237770970974238504302623202760099566529584863648273382522733154796549471858963590370233038628665328896175590846520820827204987801492740491962689401664833147932034443190131154608231467912742567629704104393590595393585613699953076414099685963401852461770992747819031420110822411818184141751645974142804072967569721576624578652957914355369733834869198570654967174417952197811615204525301634098865951463909322453248500857169335715375452516007927601275579406581047038373724363269955940692278886331580126225868106058837903193557111726607636546023770863176223704703987383613430123188210413446145282436628842181880717106146389530825357236333687989947432246580304979267521858282502245798639555105137409572763369856856056961037986093085983402907618918540587889831624015280793974661469127279170044458143214508820053254560619488138371181688968074399627605958081134587199270007140429096880515826791310252440528756950720893603582351646099586629808517667537889164000032778846035333815395329084761639735896692626263902448074561339226431367688938729382322098304056955414382395828878669286748297316734969345862490587921374450583115475168412236388968579843640569460284161135223077500236327886877627694369018295961932195843832754480844715211406987653074209566694827356284278161553469556714595850520929364966985639655906910050757094305341298903692281451622986397220845754262484377993435018115406535252473813100132783109983054187847857932747218494868628769188824633103510359790799362516617352120190211462363404182271312280486384328553762727379884690172888301712361235339419977564246625773500777854643840305065453372253344939242522187226884178694811705138620746945700215176813259154615962192977943035481969488472975239917873601654741780421731154107972143221805225319487423038214936604941646469623293189704153103006544074272152716978223373201014558798138176440503766830936875448421021875823227046566688390787538484612861931203602324904989510730220643423878115298143381991780115008489328591323060120147792446374729397579648533594039924006069222053504928860902659289798806690016008115702161589730322228352764678150969863632667172398047039215971340976495331439058968347932629245693516086020645292802301606378563724805223923853203417893790698670158712447139015363200714872185838952597822224793333806413743892127416507248924753278302196042299282416846227375162386308198606662539518069076001823881289294502708764921078164541532949486746015116967953318329572723248369464387771749648608142772006409368641352412718185128565728640526149373716062700126913273631256726550047973196669149727265746138235302227931263513621701572483294623839716290763942701612069596284363389736556415217702578199052209449495047571763669876325247618080822441071893910616205228160972724827229436211231501045822362627943810519240184834972219523605851287191015452207659108773497910239348423744494624216132121469427235539900892451097258418908674389991373230344226360971814963863025982360729185490825110823108601173190040598127948636657905542080305357599315773087912850150188996398549227956165990968777349801987057555782375902263345327333418257196663049775391470511050852019992025254086136008966341003761782156505466444634687912781603002326061937736301044015589183965635251646591016199124755583646912263724193024666461645354029908473086259308905763933097295696503609576237665357062104930556300436471758672563865805431236170187955454216650183477610691089978136360868362361136749259453876273616277740820882791605617239944906498334590364392476001930688484198388378898811718703351485553328759292099163738403807164441758798864065186758252585345280288745130088864713000515570301396882926215161472400970743795794475160885990502769515734780070212950202634961881767042207172720362204087144877333487690807183521378727877742557928625246973947935433290620702597526358044633006646920005938714320693273505887874721501327431702489453177271302068035495096525027887307026745055578401294548583715583740076720722538634257056983859889054395726945905374198523799736464789175699117405862766297712060391004967056823620469514843413943132475826623069050367150629187842375197473665469355372476606486705421297025462176712897854561377505308425893446340421637253525126819848363017990126774519452723579783546956971884087547089216100649767459391891860250526468400163634672958848663017485171812024044076513323164057839290930581106456284309888452227313633284195599300278882597655283867511360594420865072305696623390008130314727597992162431604244961054029208950139415404422005324119518474931534293335870224005017833945867118723833187904101897228731783520242246896477910547444364643398754776100247308358211880593070119463123292613531609718648644126585887561303387727222921328934646766893558635091555228794705039174745055791296749706876023411009165041166881728602725385842839792678913997311570571352931156370578327853106181870824992701785062006124040665919076181086161818131788652587770968734559397740286785060269108483448572912949264132713925425163203530916149883751474488239044900172411663162068688736639618288496495189276756977007521893782201250281998714495084129815576846035012407650423145244003429745199417340424337248841488344281626876322745669438382860869325543794390356106459287246493588063712696795324756355629319674094775674786539221754438986693737711646695313338832098964818906339197659303916327804812229891771968937273596752354316675255293183807992779552930629322655400416309700083856962958473078490597455057907368475582181420092736261138536024275472496833903155934966942236506813625736302753032836067206000171185772537698615491724140845537096136646352565564684383146819311500905721203634507440370943219758885406023382627799700257863974721148638257196130958675043906235547064781350234365318493619938333453170745844703858169716687082836353148183853746805774115561198863816227035238751550505425372393276637139401212977197168765305282625209822884542146015803030889077800402523123063997489441345633715898559571963798664838281846539015802522868042987553554943191445105682105560505776784093351496121529127464176072282163357967848720041168035745540809635229690636346682435763526766317532006160598777895972719249303110244431844830969607357127398544230110067431144473053594244571855337267661171294785054848262891086541504262272032673819057861118049244870504579863144799736741178835023169464203880433950059957100555266674012332384856220982698718829436864461878977245949567105149337699508835957868179750840860643068834138777763727300697758664671958266762596394494711561275510399425091649856302005581678590494889483937871217454569317185422385426140645797959310641366234379235496885379765518967521749310340113150914183081016209573381303352670244131447517521292037949999923688787942218650171088650500238369436895511531997512246294937017895758151305757529156156839950919119813181863448329732906827014360044595248181240199093459905571696286656247551575037555463078529578057796003626303286521176983879268192249863747754756231606031144441590382631315020944814234720840308383394281269116207685417831772494936118566349924841159259085944193259332448464609254852569318101116608682980172314861684820369312662083964502022311896269230382359062234290670230403513024498746152285313600499603829879524914198124466998073491490148213133064413381283939410087839168570006584848513777238133380925780633304930712488542820466775689049531008168442879790685224318376164482975669730930049600145030577614847202110139180074235639391921586518122446166139331960891854661933600522498615105059731268881285588309705636853551027011064365887146151984794721608340768835779264830091945258218377804991716545257862128244962405206603164195581605892911581843684482382340677146171375000677661597751790269488688659955717768698687316011417678714049234919831269305176036114151350555074950693625478922439167555442259683232110008447643869947903725972635337358493955493320520268106423437430983619392985447680055402824416200310195559796658607294152032334867761494308480382519356366838187565163540970752000401719591183731898511087568461639078230724480173682907839430959110322516403714984183870187375289260008711797956407112447519960710274906014091496285781124060435881847671257462806935986476075746920068594710462570098791547451516540761333590985175464598040118219582910057513349289862753257937666342796743774820357633341444401685841036211093538823674333092207220713902254260120190595434835486967907359542482851125844393768297017506201416940503059216975136886445964724381962340778220425196360567972041953517962754632114058499556395463824553305577666117170749263980202069968998197456073977709579664107143724218132886139931312274120855003700694720445056747279974634849711624057265454411158738798450972413529530621192570176166746451084530384899599441632630992871984565487031495712994842238162101670986965853934013693748915779900687615789706474188651467251679063787559250284549527709437539342809152028610936709701891274464092476742033247520044928056054895574408589302397276404122957296513826663837265713295341768871916846044383920478349937314288009063513757152879764658980590060215710085493642709361469750412564078813344803248326433061876793379980216515510247782880798605415218509719846425093803963902870587487501915660056724799328094779522976358631639610318540000613212853213209169802190366956670730138712621652725478700706562657253006822366747447087074631949962669701116379558971168482223102454057654704543044946567570803967032046270532437189546206069525904223639204367959929829821862530350369212728784766966131341212891600969213862698132799399522029812674631154898662683909906598709024394593609827170569138173833297102826333746008264342932986687293612903953947546711652212541498507494220313211554233843718373097246427461762875996924442225730009848665572899042047121064971177853514578446352079161429492240252835873368573358132050470677908301589812433328237341301708023617018807493054018513637449977765116184345104376175890221576088986002955660171349013595925300857681339555266202722229204000811242168630411071858576246762338506038337569730114799767729032473128800593166343076479182388035031000250232036839407463079677135279191152314430399144016690303640194146906465477363284215837993272212646516537946605739980695814812460876009891588503967154640038291785352284638923739029743076366082829409460560480789240292686939399933591379007066707479446366973286516022244420738553428993943811017249895879353286313268552637403204060623514431557778210340479461207348886026520953120891595392050138885075257194244553482699476298619997116801959871996300901374161125626769036637358286026437138651052711950514073583583752178920192184090020483189786793867840868384231365828287223026453163204922509108495782362348384823198661313858298926466845614086756778316040453851814181738540196016297231219892617666398520185231321138321270594318136781282089269256010662386515135067312712313171687643772751367604125629702866194597454842635538518101575654003414609241214649117174643172217267413728975223389783434822966328347688874467505297471766516723263794798204917923399361585823378752514512039118431067374295122015909522433391475922393060302530043701896271097334968772898341102684016725234031702531173613288083898519805519896544609385414141212188867297786439620377946647850556372038382419768450381900838439426980867778379385490596285637062505227995948424588312644833803459449286872360337552606241826020860066963779582538325323420129532531752782240463754997758539036422010053982290189479466022205117391650048204063502581885543121896683511161628225813023978143478969993157285569810525270716405803843058751838715778053642032992637288156748571709841443587100816088883090452504065924615059350149338768906524593028917460938242760707820564138515051971808167586356100282165800298499932585264550340423712734133985159249445563411358377096352991071412758023663062586474884280525286336229964695585030529697144511176970325236475827411407927060982947821111238395640789659940522046193406742974301914343829980957552648341105878143552019676080700248833699151240101716606652173531712886351282905565030891503392327565904225291559170795579988258511239293383669481425280054391675780454949813648985724057366463288956513144317073418748684289940243032390684703915518225082311847240414979834891589789989793535308789722188800409117529887583598269973427033248323592534722382161629013834952752083908058564280601940841511350987498133823090068877421357380386225374258635683885341459024553540924561910760956531431768808464897513525811169109831374529238138287945728899328725801641767883914575846420173138444032406552191111664645163717487476521662303275908917262632137073513281090653038461537144207454127747093088601653309298913240782189837163344571133488981581196148168199853568324769111138484040686119725274813677132227399253546307259516648087024666946869321454059209854009921429371637211063452043581632520176561724492965295900631552811557703085949814335794670854370812951081747748491716642316799507343152025736715102446510516889263435486725786833326628912973392866812895354351680698646758413450087344258380249199412284956055558942245815759315141292940438847656221702293481210985081700346551066694119703773475100528209379318020692334848733200000774235586517174038477658066537110828075257104866653836831565793585287072582106369568587632607675209306744875677600719465222317264685752613984059247761702243892118826470374485271716201124282602798134997818519786310398594338734272982394965640267867006607453090337767725498245073397971145427075586431893201486606746536461574133388466382194894067194443190892979855652470975199162996602662058142610902679545551820302415543191379109927614981908308463063485826844106967363023737569873741254438694552059544269177805638264501813112943524464535472692912855632641080198617047305617953212221756541123669959147660015695188824502739135512536833887381525312005601590683986297804000619477136925814905479443764539824541458626845579926643307242650235427702393893204387946193274207197422919051013232934070631345241604594636697644397329502568185309346257716861786349646988482120867748419117073514034741445574952659061674775495796139378557876365419303717781421278487850221479897529077569388610028720793024724216076832360621045317845936098476541226087732301398664038918169174205359150344280078940318784610112357928138773670163333308449402858139461920508748566980032156258988374103629938194330602978387274144044521240546017749310814175590461743834650887942695618643560193781981607059813377358489684190728668963734346751834708960503509664830047967806995103820789292948367286866793636773250609321372988388886809364687713544198788989366776283911215880898126878164434773137068434399630294741340430283986662997689501121273923640283152041454679549677937947629935514722662272573955333583602089286750486326903737487053821800875951254854736587947221075629072136676229661240309631072372856598574582931498788761873094806551665635438039579301784088144876849821970009788065307016025509422341273117794422379436684634664404767214553007011348918519794355051464255207714556909786011720314935177277820661749088612873773842017478901934791956878618690309652207348855738284755223237373787167540001253305104916345955347281302723067865910781402318331886123691223242881216709210112039617057354692874268485806357966737399062278086108544605425780490052656015547271326810006277666608924927205647775323469825852998523526168800716786289748056108432976169486762326309057129125003157322592474681299199051392152681982943012379540444931677033832509571926421967503631095086609148730097170315923883521337247006246045595231474887856757074619083153495783114376007588523784039204429279479442644767570745335671728671977032800362397907583564863723650558853326910703862419163939170564673414954250642650387872569510442677454358443540837705193789593095368566129243670072112583012726660105005780654865378362999445800643846069190677577501696142554519923247611882117061902391435536541655627779618590506051855962685417090414413021328826230037913330669647243521510142780110352985740726716210779770290639609140981667378955715598022602379268633807906925124677435557225167714705301259326408945479283588788341765266388974030256551521003121959688182501993952423826516525986095610190358513462602672534212506919550370231859954180018513140558708882368169592105557836248988007845948782320380964355788742386814861513913323696860171000530727205175151460106417029092872052857651812608908120169172045488404436169981020517108341795625586824365806307530685450058331163171585943640469921887804987149266014585042546657675598711934255131618237893969003153182184965552340037584452391269483724448887476613256707623161825306386265787469993822124018927240161064197779958456976430439460395696580746940301637728587116204872163475390539917399285543230562096584201105725648685466690440765394845128419750270276047497483067024983493579187926686916338186081799029084271659137604527012511710492704258335671717828388496471767079323413115744883770763922341183099898254922098916160915695758815690227367417236725418545347089532671592392525263577496057783117470078775141037075779301826747278070729066929046217505770901715453325659595910203843223948612237061643858209889305021944040371494211571153882888910295541599386082721691065952225140278620057306027262957341264995380172449934246783536300836305028915227682022098219497389895117189125261320899386577974892250279791774995663058217805240176238226979048747432122574716924273924244088615414241655598848456423916993105063373130446873594353093546051789147883969144704643742429645040704819187892788239084023006102629208967954687451655156666885224881093847654265240611373917153178345865199157930021900917479387291338273650729837653059565665952378129862309805611181865528934281222414275089582864536911000935694136117864526763461251273831784633145124642510215692207598678653492149267485750518509164371464803934097770290555123368934735372216568632291323222196778233610977790860323509293104624823173305037499431555418409614874988883900530044309924482938867163545368675154474854747053828657208360354469862393877606723859558147870640756075085836114503460458116611528128692172899289462460890899354399882313972972122884195440832802906689654059812177037526189274870743279361426756856028715399999140111412983045853396814694866610702486906299286924417559019545668078670465001635218538568977343982060127260773087047809465975084259481640920331548124905293321132691250208140717462982195602448325638294326942329296668468324538709470083755758477192513265612074852416639883856264017454743426326796406860368800602953368728859433356948398670198528970892786358314521030052602758278357231335612467458173919937103794110824622437822352421910567260498667576091338856905688042792139400768456303451382255612568032985156533985466996671227652818309071623624890476715619088404791966914926615972244793585255262794450556598121707943991936768746048021289355976044356852030246732044608639293545325945868720879807404439975117550497968384177939578471182489170311203335950377840272513356697817274207138902208156036995071310790413798262032052394330104077679184710525820023524023124984921749866699963591269953260435724119118863671958453939920397592193603776686567144673959719097041289024713889770046846502332551518004750080846510921720754890569762297470433704836051126365125928992819852508823439927725192595764799165030057624220557662549165428790700503603919115878568687625200300963378140462420977119801198753182758578965416204124232176478360538340439825793538241639360557025550890033362558981234262982859226555325736905431086476398105995369726629568262409390916535857391271680597317089579032482823222670022133257786407264987607550920089329026683710986957113331842994547081375346541523852193937465608362932378248983472188748291535495939066809938329217647273004310939413745646806990101996575161850754041105531209018568714633180043032274435106593676705591090177223485613955635481277571581297444188015238273767586369914704971063684458797819436775771933754788582307325069889768460868923916727812499141538093635148933117357955923642748466098103616407522388863755668485203128182306421239804722675746769706481098718137659783774707929316148403540962794337302840728081844600964486038292205550177604147063754943710907416374761877078855407269724345012002258792605841344845813626281128197323072606156954149051546205408460335896823721626006140002023866804595257527922082558341901767338630070852733868162754313866978521881004345399065721831427460024917905353773568801549190512273028265758777485321871497173693893107032064273373789908824125478144710435680410332023633763812000955500607690873983846353102904854892859561322020010097864920582692776195412536204401589891794840500233648693143872270154043292715630908404954720603126019234588571309874294528725236186931436385699833923628004898471926743937684033014073731608307042097434366527651423577685067779669755382629593456101235260114597065890184763189409257560025087026763750051750995462379032199088340871135167966541328918166940682448146254998239672506335614675988474011328587223811309322398547237823256916981152862858067878917156926874501249139318040929089122102052527206240831804837680523440831566693399319924919158542435029031556026678218022004782282869864276040706540905848143017671388281297681346368312158046519539738901156513375181927868013463319228752331714006168114243550842294649899401497838543881088145641399117523913973441003759110294353501945522619141732852247248342382308010557560230613135870919647647689779989816941012531207331948305919747521877995764867998545534887538160230205192704151100417459996134184945590347990285952771049838686664834275331059160363300860731180293380172569347209142814536412600094379280886341397589708108957688677041038444284210462469803332182586785449557386532560866771206398711023713907256238131329381635224651913456546126610455500484445480109142621330367809791339594599374944818632567626032413601402623565671701086501769679366650914013987710257933048785074927066387242814055293564153100018153847248251412735538357182760191041966564207382551979426310194669277510767536728170314714111666186341869298571615889605692342181379546861360832450356908892209052756351214238081377466693960108352522503686548163463646455789344693065158219776325034969138349627976707923668579771361814003577946417290293102046398581216906360411201940004329387297867286335542243959131654279918208031398600877433001565898969539486562294028605910908071470538784841410217137675431379537648610560055789085346463687515275787223343793747783180822831305480249413001457142167979648928727353305630695352596089646552793475189904024151072342744284439737747024729652034271988772078374186532504951685944774253707814888917378168336192231642719104480393633265829942483925616377362826927710814247599513441373817325178101805293221019049471718293614027147234572942138252580385275503025065547470614147267777224871903676908596427453016795010304398564450128584378722491846674628510934538146678634996528575940291414623744360322626978851750691043503046577060990385777627343187890831540807605378756281246388901789512353219265406642540487194056089767531108774794327217724843424627188709926138273878107557409063982927345985645413487507317778219260951653113261536856558831557678185748440620315227987537761192623178755762278502910065736227481081149111328401706047039635336408271340115692763375878037081271072385670731064047144302794348416232166254489908760728854714894319361317831987498420067479334177250193035051184120347371567502632254913216313219502302152464536110755115782987180045938293924967753036136669305247018658418693103440876648105014380440619219894789291298609701895544606725418447489721527491857874021790821652608067058279124062706284003575268324246299480860866602517718004775716634603374212215773288890828979610389704820016708301112856426211959531280462767170246950601211874727418785838045699525485577527052784796826146935655799890399888725701129751749267296140088272199749216719824524761037935083908927938148701194474193753372340950221499029145754215603303377835599518000162115263739406437794391422984217060985983283492169792687060123781872991624273593015557619325406166515831072670926004900940189583281427383243677917985076977161155169192784930185734809158680299452344929040021439804623269970134331709796765829476420594708632066905344505769562839988366687110833692948866724531477560178829650811866803978772794878871621633825726562306687412182810180735202258913744050230833905188609508403209411481850319365477043543555419183267303306708501789505893594018555095827111335041926139628359122081851666761863090173924550245232054163507973146787771030258201878923629000051308821381691676375781812872291950371251886478055101234123006044653038610974520904612438292739807781052001422273869795873161955821303378942377251569491976129787835752638391576675136045019070187516741611814457220651013319589285339041675076480890157121282812065132892159332434338874410203089698347723374131687484873855564804637942422284269113074737064627995021644705719292473345938060108984495752063934086683682177842319043757221357280886406453552277227710232039742028275826335400075038178893346372130105679490298980548806096835349963715660423575268980551735221342443729859593904484060942072143574289437953079733673059488123194595528857103160002497485307950638271471329036202494844037672837032919804508791782634065627380415905504747333279673062766220588902703114788964181984898626931939355405451793335414911158662696412088619364093486997357000914211882714663543354113858330282312768588306331823966092104451393085914892995697236040596921953759129332552527466287882182918026191480807943401290921030221661285944093324596580921380268929159015611996177579961656479875291355043855148190373591081903544132882405083170266867126121281595849955474046023942852917428702018402349202636635255974604017841610664259282390767249395983638379893005861082856768595152128065315246209940186895577683389480948708956097939963404284413419541534156577871062944396089915614655216961285410719152247608419996162775073841121968211699012846499498785673871176286164039276576969772079395337189821939462402538638662534401225539420784543084967584781952309740739768313329222095625184643833859404175594059537898736758969306840425381065777073752453778745315969969318695407641685713952653171770958070378119222636425446539050948486364977100754958376517711310501809946996242349133196571469370599340986358091353981189258945152263341073949935270226465126116507066866469499454004372744225146296581373105908887353669405703496195700202931928348632506247807764055811298410246586523130451426942497478565883596499037328067601673034512989281982878109550066691562040353699339074380663331669843279345816201876335906040700571704333842789848264071941265665287879408431790460855979840109962908354127647414434324926943490857386132975654455782584002982237855640595410915414657563889286345575287902743716007311437548756609388226920098790169297417262782254302711918851931102227958546997853520121821017090517085729130707167496813698827037739455128526831548755872348917858521548308495882630114247154290051310436478314181308912505772511366901509778734303081646778969891955457702982163494662453447836529697076796239901861197428973382503123634998159479787803010320007792307837647443834387714256788886967793381467899679110223249225595472889931818209379953750028007860878800289453041225296695188958842226737329753334821300030623824773445714342646769726629887305276964280978553138088964446648943917027231320267734902386521814595808482203619512133954492541219741938733438644434207497063536354279442289285756879409285516457076358335508068590252979936241779956323404327394052821055912712713356920864783607934393096047953704012904128772367385817423120078641305873059289307728825894481704456091431181651154722118732173345487359809580686194547944294238076991178865047599268984376525533646624303361398738188137447624302949249529819602421554610273083886824166378083409033442628194925278408258430617059142762000302522401436657696096804145034820816351021852884632230218666941223990075548022695367392175039896126995466052554457786876894811450351410942352363680758445845047121992614357251049620151446579039977852449920544783046996873463471159277089946188421887136418190793025502368362317247138664729926955484563695513022287058479690367390950193011731998153512047254769253358959895799967895762086833563174795464432711675129792479424718251523184174733907285581463806857458755661673389197703535514790941508475187508994544448301940266722387222778007530539370677902377245670411105853411233088071485650357605562499756633559191780887730644857649004024923904484754901415033549350240866034248687605306952480612897796618543673550350068287520018598018348477926082371375643971710764816588676258640522713883340417509016427462388287274809669672262676594027981373513669653250244749908963656725739710222812979990593363542942301812816035224548785054708894933255904015619208647338706451118347785594152092083298701588004144189571623493291976488382054848617440815417186437766520875387276104526207068645007042863004471148447072424696878653585245718871589664858870778580095478910792258333415298588743543560757870663132165296331684130516948299684262355303780923667790130935086597602613381290842562770808721085106717614032538796582447676009909592840912129067909168417203673751921156900372481174024717360849538740415995272327973466916260558196419988701511912617987969437322017989140860809069914302813260532156602845245998591164921761682302372902284306542879359855173575500333288968981645297724429635127778847336263326461961063299667438030225765561274271112190956932136733140681718780608191217289471529387621202542812183201259244366114741801768148791502445527079618988807730719706059402786886572877503778704933472034259337956481179284944372238962021767203798669095151684011111960200840980665317230347443858685999564431248093322429846233096261536203829689878395761903494039076416953482331344573060098435114577172769798262457321801464962473992740755916263774400009101764633858654223627817440675950883431000707698769999699010181564679511077770547192436334623979828589600728442413654538946628612378845420872154790937922317928791849021292066283172539737654871570092956748540906786100732395767956389497486352583527682278561492859316632699922375003527205381226983831532673258409033996572926824386413359632911794399474661329447114496169084720639947033596312643637558059634540669512707589418597187121032929502923299053496144881659272957604800490551116733683479318318019657262876190256743282257791596837752218831811565055564061214260743302468995191471194524989353321831447771561643182399747048196271421650859496759601505566726914804789726893184705595728667987470482914501417673329212947358204978385748500484645377568979748272737203322452380354993749247633398416319349562458492716523491693760471791221897011819113625477573273472962006781324570860321119960480391284054972665093059486736150416307743999184136787337139711913000506594612834155699360737666443008515598497751608614904013378797704772574292414573886118375390848730798265359713078119352100014212685243777214080681952998472196038861954584933745952599712280340208802586842516560145758127839903600995616340444813959247870826683426565907376625683289721375826562769375242577994674101585979845345496161603304784023828464040697680371438760233650088091574208511626084018017027757929683899303454801040286189863918271588908676232128108847175677311886417221002327060974964958412359113981388788371606247007296938033033667888804254797042928826866048069230746284781319125548196964053232461783749696710460211168169580095053291609210190132529012829630512211626688418832663612085049604730856855058304117499691707414081393711964853896701260896672975408411168918512258274888872458810901051766414164008341820237471771038001419333101487474023250624878919726959633241170500084894195672767913832304246541058458409310128277191589943099543938788683572487515034472775179080416785445940669267585571182137308631041311237735860287030487542786419744233244758260794667986776306685490750567862340429082631468292037098798051661021148254959387450188565194210856279956042288013631735495166604955475117297140277490013600274829722609165929922490765263016829916824703878892168766392127430091477875596247292933240878814132151135639882884606230374731265375671763364580649541956832079426068480230674580872460842052409015971637170852652872876053698627235887366127823931006535270817603088147312583054969825307868924820206436963835575159081954646039471874098144770146787092089137414801922925491909997896974281838092700009732438261979987313949089397744278091666107103550988755843565819421454498325420431006192688096050782490986428247100116009600284322032101084347144255127540851070863244585237100719775415805497114852992610493717158648936652018465283870380033032594571550682133706769794902844949789462560276767831892660712505745309364396905035487560930284822526311694039718475530173468981016578459900498144423818143961859381389956890591508105191606968060358570827448685263669109840767844666557273685645476766383011021799345938048843062354325943074505868017870130487031178774330948261985155996817625742469750507522369370178854618126537255200654159429285565470598570980946449248458505531990485377668130715937505852737024414609868201057210924373677848616981852640365731149865015096608517341252801749578443428639586137709236703496110008815794847882441614982162884039176043044620061713882447550808610848191199422064897724453260089450263988113196889964045976646964156046646789025557522913242869721671007581666002437124094572809062864069645406856104714636042156444329446819332228830736963860608846485994434930337361476483214856237501213699446152199765541423635809807991011312464063944522008541522049418195064040215372484292624394061798046774884043684021345221863150524443322013490584054053633864471537022576718198910560181566877946697621605028973043720919686970720080513456296869958366243969482635583910731490059610911601783703363598119369133593797381542654985293465344976481129786488866462862439018634832901831470989926864353942116909293447446186858769956611338212792036641554611882586941366636804227677240753296211388797235438895785163433450664188643842943835094809177055480871283099628544893353567266168214070317356430274818950117433869338394196507175168954470216014217520921273847412860396856399946784722933141944059845075178418715080730125115457262176959394441955719595126765438779986097062197815936125363264235016770701210307684618808387011184734263175504016558725609761218065861168942781674493219602439219964996379435474696597295271795916113510702615554537380119838058496918697985375849972812116430816934645805620798196615245235300884777256869134418066628575292961785344227433079359706266789214114727979594575187709696380842387002955375327474582850564248507706229824713684971398024125114070846712042231929496983501624088195036359728220041691611951116805349204606500915773711251733443011831861804574131696560113151629012762843086112945549875960972040733199181622692582454696964333498758661284112523695110507414202586673111174146269901878471881427603585692737426767159301543758413441711624024209629535846278052272754175884216612022517467155773582772088488795383137296905954603734423378672644800325839246056897719649495911446197645114081243847575613338610562625359490864566907036971345421341653553672797305553191380511126062020332682185491336826548879883096438028805638995080173989686273734787350914275855202489322611092997219728545591856598989158820872515100755578177142880673623605065134121244692919985254355697202209823565812366920250257394986911973176608296200451338089415486387104297102513730172053319979323456333774953489562732612370925726556167455665901965797757744732783113947566693226638368835741593345738168080717487814823201112350142744692249192486950121780534433839442558849607376241691730463874226384545510125134627100769484738331329072251067840931887735420651384506159528462448747482556217531694094527030018292770845710730900979763274093325439038201851119425600727281747084183312247156434686424041298635714975457739386358060657522118247597405071094830524707235900571309550232268492971204144790683515555171799073419752426736034485214333730715118225475914491929874843381859635489185643785542134076575678876769187623633816664696992458278895597670791626693452461464211444943677024537881193231054828720171000901219006500451321610933621714926141674322185925981711883637037492062760928250738706706714556922195569208161878328056366728652957282318880320400158672738810339029111805838368271346268662757188431804585757694893868156085775227766793840926798298975968113636812343195512604291710463676818436931562993548259983550542458415157113098384257463989190527260951014760955295010862381470380258213533829384564114728690782139572441128219202940420818773341340690695224153597746551939542931758633977671535125174345105924780651960148625484984070955198855582870362709538766647725079860805969816462106058306531035821788551238452055430921668067587415292026740662276135119471255696097197061776284098794517230106855728169946330012446808330596877201334666270071851133456698047938579444706976284318257907058893512825163346720669911686825295635935483951918479867651798356471126087362420181625980191260372287672473232247564613700747370502009612046008005031496535752237294582229718280514915179936746204411833751306897405149360287555081367955340519970047646205179968557878150792974396567638444452272216558232219256387422954166900845177009677887948261164397929778383581719505756398559939391698584954862541802978695159474437101445591147053119356860586051042863916828588930465863336200415353750961873377782768047984937728022728622615556057002054305847447503256585619554618585042926531807548140755653077943804686405868007197661012630788244635269216012280217519502230011295700421612486255393440456322545528336722900573230415388677720147012373565657122491262084360412347540709762772708919839166251227361900365875012168552692198449265295309757101617575921111724879077047265005080173103686781615264367650644832273959726882410552838779301985733678914063100613054829606858698492236541039792220721201446035838635055137955493357335173064070076203134911518384269074260966977597931984280387830169268791396976078916383342802002434872697665938749586867181626197979383728638020600535324499331882620788279741009038058184197999561890267949985500279491177695039836902713851610409764942144018190182777306379583107634915355717346678655066673981207083135738741805211486080469421452872285335278758101654148366625819350495821533627321978667426717022524473647928971776883426556107907250820960876350809421708600173826240057243766893034804761731613197020707078618504098559380401678335998014377399324887928850153774631462821391167015718426932794320144862771812543505354119669682696531582163365755425823233453072057101835305097152428853610287726572116928737870285653068572182160099565550321547833830774433538052711199828988147546648885988779718365706283159644966582877731840440176948597870279908789889596892559494557040575143109418977281287767796379817044347274785835976673474630047913924357674929633826945364390054774689137399488000327977620489874625059850004649885729902835575931529622986147584385495064915616310426271960945161894583737066110394232441199909391072461512095193498159731973525037609431303682490864783880087428672420444180973846430775855422076662630237632308700075029058082551406286728914935961227063883003588147342355790701648182777046329023856821871368551687737325952249766669115378067843957072778279777898460316213831430959133058991604471542694628559712781132060679059067699806686749620375516926030348360829197545762827964496946642086720205541134228775505137419881767775971903791910584130192199673150385665668572652712997494519531992686599840963960143744651495404406829417280428220107797449818390923110083611124186584700179267031454173186641031642537992735826266658230833535765484760058523669459560805987444561254654022948815037756105336895096132849990892934165243112781995865076051854790485230938256469329814373579820052014019441688603544371479644952719267678356096607123214857196711694345847055779781303327743875198209465795746582961368013119824249545169069130139989923752802930315918561793292422394597806898032050268218534811972125175867299576346051590623418290792130713283252866912897324200697617025627799901365029833861813148480827054155720674365278736561749069977941138952909535670594374409389071905962556385741997740082287590028957832019104669266930722529369289384040202598687496123903928069243489792914229396702756004051786415074528121282235471882480822998229778462441887646054284795135459126761876516810704681797698017340421653387297583339838285939541398892188839115509388156829845333849063388736324465315712317853722333068030665121291009109790664780135349704914809790406412988216141733855743100217406265813260507517287828031555013669167039732379406804047295780973520796554424231357504022318382488496440363180335294193840084406244103876165923724929890261336480786810713888589744382054477201989289629063038993440300779428954397203479872911564073848673227720822239499126104722184160478379878742944912249119600473443793376088794024454742431138100551382096882246341526766238222548509678201973889665098972583792511267543146453871174651854629850780960323876878502974837866461018449656690088862110678002434307944592170755484538235718990508155658798353137775335045146152917270757616944329228938450853683546436451429162641773597503042971017325985222122529128576572303680540735158378229427035237050489145109028291029217562109232965321473600075489411922025856296475582692825098989720817699852790683480734731071465378650664850825389574714636125975594565091585989680237592214272318963016320523675213962801162526297677678207941532787519941294094861990436693294505900237975293763233254388118333273456596746952976579314808266196372866277846239100230199594558717676224480388186352944849893644542143906679807184863242476080560742466275237108414365520490446455387403308929127587320385757797683257521760441666294771601319701754038480389186975106381287700265352162329356707806001039621106654311080467955407198822336525275347796722093311223812853016298427740255803896134825427730838679659712416426514127603946999131498956978988768003805922846686238211013228675863977139370828855387293298897997516045434085031947402029517761489259170214413129254127405783696334093433837484029051610829848840505122866179680974562382453539366286213100499451823413807251432484660327010228784009109390208939116211537703562063488514861456971478006699277043478121516674835312337991401074684006859400048440597323693797522863155721453097794096517756841675496294812065309793534598420859353952282961823444686637189944824581072522409121326141008632240536848025241621398071578233771314569516833075929230796896634202416692397581069811197910834732977524055440166685785648984785096466895521485123912311088570763215244383748228298030010511192819228000708921596534913589471248376043727691016948118732263301681622225619102372692358649642748515522501314916929876974080370511700827014899421513969794573103825304326236433230474157042884425335678686907455240394992981020480441360878845164675450867361299513273341501702425686990375199250694594367385985231396566239462807630822158492472146499802328056025196178168610206887453679474089454259863532924773261056982145214776400262965389401291198584569571757796287062964464516429946575133642889994789368817685776443010263955187866422682892989112284252566909846586825717877002600978326815417077913940675247393304548409314623528782313847166662516658258021892678988354118677540752150217609316836526064987240697873083090873711941393486643902233342555759053608160507160110730691421587856825214155500140184270356693118485969287689091648435336781208809554731605708080092739153354325162606693946520947597111627263763633460366425622559021350539061050154632343199165017546318826824731765444446549173745251912599544735767352729191109584181740728303054633562988331809761656764464779983114925629103327487402285408925966494305282493214625969085651365394642197493965366277348196623130417780416447224053086532769574358845193793197118677861536056370855511109493065107994604133173701945664651305765037802852386684748321765818953798124379459964594485583155915804262084060452095346814812150972650695386150954714768353731624537841009722525509333042421925691612181091269953853197106732221811816650212321777858960377532621706102817105947665685057269463222263366424458643797683628417293792647415564992387129004125881632929135195177196820219711267863179729836632577059279348297536407408666980516227550134912299091345545335543037476011574265842322041800967718384627089986199419361694960216222283774108225343204959333792003197450468382433018493428061483034418566758502393886653594614060078181086536347911587423858621344415103476371677678516138454104724782867557840972007375339661398813348076940733508587996901071229535794566424368461141219978654865820764316760307199791987855316636317930066060306247394147001952705003796308996090562650939663221259481263553019826621551401335869595267778906535582585788304087597872382691374668224458831798532889817565534885539793852969714135016241340470714471052913846111437582531874681977634856800082280347712865895079663412954930140853733101361973825755444319138425490667457943715329990513528713773163366477527358706884000095492834395970359437669042394652261682648473129168108092124123510849686763718556865720553056834593734142039645535138141512235826034252782137655795996136215245385073707229415690524352772574050249743220548753587022957193398846783785924083161962022453095393497663669883650449679157762436595136076913798101288251458983214431429792123433218693319175454030721667290492743483311013361457629775547822278603596088194348178830752983428273223054740230796471292053569504586825506558228875885405255882928158708449070548093129978345004476145218488072275553062891090113061112988305773657208455275943229347510534469364393500415987114362490801884895272111453332342377819723562945647735009011643337025776217487250157584661648954751617263476410963762215526490169128682800456845441421268685180113854676089549675663153941544937033839477282873783798081609231015678764266023174739289624054893763602075889680277072045484007901255261716879628843953998473655183673307295815288572028885787202773602898532598571657019266348543725089698249633904242477072513259899375424956115362413683473569781473035786719768461650941013597348390883819753878569568599083337052718682857121233887034547281430380650445531782281541780750689585638268792290961326449579028180330520194715723323403339394184851652656727325758046461085940543706977488040334432622163164415322941632402089878740179268422112369727563420631116924418486332560136810686886810438282996245377631150616388499939316230164922567125186622735549686715478927642214987135659745471908184910225037066557738624307097008986923531229755257020659196322330773105147076055782940645092150839700668349677304175108255990989830685225043427855558226720547493051178790860102783468711426793452520662214645617923609989076757975125605086806501775477825477917616898136480760203926196736559087309099806789552863857667181840601953115502998760847986752267920343975677115803778423602679040817559617231923180675461184924103052508253099804673007959481730716504728486412312929077972505631974543402076408949137859408840745843095645152171231939241536717362887315261133279076036708656340979041026755047436408852183964108072919700469868915632259169424618818283185652887616829231152205839219315978320672537861313864455075366845000946926124871611377734469215404638559644030769348521863788954541850394659082587167144791783846871620531092404696422881122443584441086154092004573143265626439767338339946357017545116492816724092951437176762185062252103031761803948975850304318305602714960089435544377384547439401159022778445477550504632002560946063765032079307791225459586808291807916847478676962578546488772384820406323486744235406404085836195402002539593773118394562710092202810847240844283647000748089188505808419408251040377975069980928743564847610351040585899772802181475486837303075296520290307064080339377567905399601055733826351814276738869856483967023245439413164280677261838006038809836891766157532310573528425766790980329089201349068959732421995343810359993816667502506740041260786637287170844635439499131749728132698602842489956036049953560303051633097010778798220915853934537728176359449828797155515344441856828550194358324733839737714808932817489447686436558078015209593287902836931005295223389488546571969512411699106452795836032398887488414711437381315980372057989171343862819318514829536290197000745145528564927637124504235807718223750195144694252155717249758744468162848966117977490300279513613653362747867786895368881328876639004339297043163415896453114542209636620425090207078481236155418134239002468066484037425148787089258033315913083941838447444409600461120203426512227507304226319318285570289548762869688906701472998780374637729357678386217495178566623815228248794915374222706409355900465887898661632476854194986411007491589163234438806697639409462181120663109085984840814711080860820719579275551345948789529150220522945676223531411346512630920127219618221708643020413353284533613836720961622594649079637157614122392035550381793353648478091715236550329514463930567216944837987989494540482083378441602644090458800696290445006367726646757357276751787928824313827497331202234452290074987145895043382858079654546891917386720705397843136764447429420261864748889619845275137868993155930460930046310188017105610452663878620938159194221556722590713239289799879300522699609355865357669599821518255084698353375531589105608083866427098882380768679052630157745138282218191255711678539849246790785714467108818333954677064858650577730743110106191065988734194626046318961410667602255252567188421197067822504608065692172037484758280516601088620692836262277843847074771403612224310486000089366189740575087179014585977490730548017529273613257809924235236360584163171087203264620474300034164480651146391824099907936109581481192447662608643952488484817294915034665381574889622758851945714716395678254900082601199517011714872878826677209527539656065891796116093906944667118652438899841850829834249146521575600871014004019854660236529292901356433728492978972393544712457636517179979371782976243355158988996982602431175186912624064299298308264308240432250746970659572556728654215901166775949485993143692614507673567715784939130663205669716674795172371091355814539827154474800370499337857278369177401793905082378107139837864820539451289756656180975762221563563914944314977826628590134091362832566670718562201573663216591075110497652346675116313589852619491541856914228361411290452429319763678140404812771251575939921589109047040030280407092758330794888397743813128437307760365735174416789407091209501881222055200106443902100224241482919596800095492693468522524246669774804005922733406865544914885066190023162032767562832851908493328070902962906529537994743782938735900851526865262176495813449763888371355885655542707521882010529994716458428621774055629171549255109673907911520701668168343406971228354422696810858460985255586159366968844619031862604969025372869098755282283123857185727864203509583936864125490987211089559011136246708193612404164967394869395447137009736177921279375802389249090500022219276229967137652810983531432309227153611844073350364941461424728315350841883067500285532180399483643324807800402044882934982919212581227679896986262838224041584959459202548565924959201416628290479916381318942465586758743409032464536269100149228659094791124699933824536106906200715197153490255278236849448382511976486127349499471857263017376643354530286344336455011083140011954451334107769668764351053212544185585443465249890670722408561042295493722228281062126959065040163722170089175270396853518399755771391543202138590569998072054300031339481182605782716650504260703562043540445183135494517950563275142803379514490858217149173448876705695622553693838942669509030284423160246160853140084844356369644405843119112248253093890685154312519979218767122307696798888075298331804307763859205984506187807517398015498804592268991797415133242277309132325314116815379586765593480631190075941274059611952121800076370227445682491760477649792414269410755413978277834739473997086412047590479431331139169097327314474751339910722098068770250650852172630283693193337387152645041361182735903005222480971054797985688735906192221858029213256022791982694370858213595989632477730241341613435534398214935418956022698396065441421203923923363178206612616795809496162082023396541677066281106741558551370361194700388112098419296028510330653917778294066630145653681499556559877164187144806715937996507777131974676672702489917212248323677166136087552753629159014954646224066017676608177220796175105631031497332798400539306694205328785935023108968277309623328975092290525044905365631220689871287143490933022461891628184049987492020858802270349121531180548404143259757387244394466755020157677202789816477028125833632074558596696977941262705154481422134061476093301716799829537830303957381807022024171097452663262768052479775845938800009016563903660221909436246973790721931260905158560894081999259595421380752653658239860385446336955963386517688278657118592589349701590291795001793363763200409650093197207031347936724414840588587591010846624763992956818316537504298135654002413165462157247132912772409280713389804855751761569327554310149140642832164158620718991021404567353668360614018714231895979545137354075554770522269255830511669200527909683372111529475137561879987801723535062632671840863123976789475195196260433103237150852291552703651527959377957559848218165811995346465307887606267894142399146947233399713210568368670251706505110244609788710533091734137068539456390342129530014073532056833398987474475011426138519260862200558217410268101593313048185044486132100592499041356111172437100912149934442080325139739186670621540666315661232346564760940159763967785716398641596978506233207813259282541318699397017803778357273450507315091243494986212721602001462901413568723185250495395802040662643507688213891065325190257741712993358149359516239915336757207864592529436474199806157737933226528269995555400814521418718222112130129870887532913077646442540431718057034131890795660181403625797031414964478461927061596304480585491378015313529745809457515885048964683249450585248241744704312500088758490367465744972518443041835616733756367713679705574212165059174889765228844964065559190323610144738730300564723886621724838947120057435486453524610851979904360906701250265817988098867636792339583704902154978521045756099999695713734492262982323646518611549617971495987391083323018718579054918111317682654755182995763479482096691814664578605293393354912574241678009703527298380496308146548903373655193827802304064752789305939600276386438059974413402844413941207857556567150493415234960622429337075766585982980554636982993719974418993085267769937541961474239561078401709073512293371958059636239081140320782021975138270397192501275059044485698382747850851085777728082177715924079162890891681762262570017342786581341658013916221947889869161603587482044456585492437569265524515381670510712070698839168644338817436040796993129255557943134771724754032729621226623584108481990664439497293095179328470303573407049123925927072563648571482990908528882046744276584359332820339265335871945079700303305249689512482242290346144725436300969489401579396168106374345134425845244474336975757994482824809458172044809004522999970139967745066544148362822057516793079868531214074066941236648137823192040403451810074351758908632319055772566956287687609722376239267124238403740194150358062357601519535360310021079413774929814672563695020209163584808155903930980292250076452274524347051698133208185492489977511012959931822393278307327812218402237621520150504658159350654156495837862397773837021667747654066646611705121915457939965189871685096953255195296071888105200454927919198489930374348476332587318835977774423326340442385617075550832026015069263094441460386603504079218102657713735068844640224396095695130076556570939792264270341035571374392813884360932823809895794912971472143834421796927814444255527086383549602161386131986089857873491376798952379133445245700291368493352908787512617519110234872557415620442005602848377487648465403862477473168685005691378076925852000104089774780003757413680280690030977266427351100207307566913258358818707090842744778038464876820832631986623488031016222548605693297099021061721574965923590973805712276214981019499215395030837829010600671219424224378643357277080960073399008274991952423170397253080271887284814221504837492598338143066197827892065938193107838933044970012602352258081853228615755271162582889801290670700992114111056992897415738576814224733874827355839793042869182430273284331350874790633466531859092736645349949232357321839511699974611618831141069265883838617793495028873205436824487142008325204029303368830096088500735029992664735773916789197498909170515756088678666106335055946108967020247898640662415875648645388207536660688546695208467732323746211145218041822883825716954662075103645784091604961242652246553069413231049353980946960822410582446542303551462956272845435476108749767592879714586233735332613765065124005574379089817272508511413003006454932348808265764630967652310055066557059595906938314407017658340521355087564403816576834762701680879733719795119281139504601697887173764710053189838012980496730885272415669890401126527758192109453813133549873533994376604302642666988180550491940678225355746158546605435813156043259708808575906851597774412747041927981914824961599513833489727461701218114759812859373669857447732671768007135409145214793580113910006581109354670393336946710775337052184727170756103344265322915779242210290756385726723316867608995459591569844303309378164178309923847317233233783286445758909364708651533708692979595305089247313040063994183361452708712882277441841704359037130293088423236772622204998681037317436367218148657549134048791455962405854392312912002913773003291403106743541460165976456405069699008548054326007015649943221783982993496844423906032978240513868621430287915591260631007420045479073735265095250728526940497047543882312982688397649180833333970641030243142956901122374177465208512520507412500017246896155245320008186798257468074287759640019910737851730095170518663500230908045257921898478817095809605018773326768906968054505835520958374156145145712324365832999417373321639075668687927499448864838617539307772966765757331450944943355746848129316851906997234496557925078395891999375911338787390089605960101415987718651213903482684359094375603137442898379376811179309656317200941392945401969116265225339927811319617342702074688505300148506860563331667719935370192284260217105827202575648526741613946586461150034860896180027310250493108954521791941323664843491366757154646457305836797421376304209107210945663037682039657290163935246788519108371573976698297835362756758200623255531188220198835500718163472883636081721570746012622744585388418563044350920023948534694487546286404486464303933559654673202788006264677828122905305236080482871680697127220786904901014868405587906762038210055267809603558571491590004991140151376203468060687069827894330636525898617789585681147435397636161789143111551239371204277119044319726102596661153716146085929304621600504137999203089602875920412185827767228056340535281258619479158872198637067010114577092478400479895552665219294998769651954274425301298940868726500359298177829153051097139062021961584800071455472332161696418551895266519118523510528998069537164551217631147201268345820059445853596911381681765873566631854390755642540140372446036331600502369509298294313843817201907336564445958288433186041386619669221798771516746925985146911039750320526479454011476529861859079111512562949639289100817675151792895120689629767835031150886236823746318009115370757352134450791121484957104082502047330859221041159400862014675068532581098603393843782664250893458545860058334274583156947143628985768483382589023049371934741161837614107236941428751402007992324168313095458915763906060763622809327688509524907635456632838800174771742882036973500844309324557667015600907584045772597292486060071215036823338382854803326419282426260075027841639819664032532623131029106881295355459201325794814751231933243700239414022043757698618385287339722535526644300768176853545943716705306239003165274697594790193033625372168932766373056154681417428891649926681403205815784086096023026885595403098798006048508339267862997459556549392676763638054108507216953077664946130531425481823062554490662819725178883451781674076269863529117738517745622510010924927644082292137582204625002535213630941199104008972977269872820358092872895098337452665316456290404909509241202796834026250695674525720391527295312942812699401347124031402821016423605866452916876340364189453385977177240132577319926398151397728667886957587808369833728907213875257761715709100824007682082986951218084235221970941253887601985133230818672905648311003409235738525376970147168462526889584482400854657732847559995215614322870363263444344624108236743260429063010966428745598372499199315701858417306684302522785640905326424263974094271216687698243695741279257134808690610884954880365158392489637617695879150275572975432884550641562511285459815614842282019337189748570023910838913171529904731240043535097692306117503648624159011944610375598044619796361659822929788319784490312715498540323055832029984698905652423010337410156282037051976276182545407301071070712046212991997607705407004985025833475783477645117664620553188773966003059394976809852464066360128933989678147196723401806780748540977989065463591904187131882460005075498526466952390884696516313976708502654326108542851944409513800876843788403528234821297930019253077754805804127550422729914452457619379836064002913216800690885612496834888335644549463773722789338977643805920281951799397865169137258893614328394761055429277200854776618678920771045928484903152081023345172376768543108531631405957540199748654041144620537393887036495611988065418190513012754481327526385724859795358630418631604497477796318782127204586367653945493089268449812567379198547389863005821416393964727579512566114847415871683395978550058351167644341777957245338708218884276630360569356936630878769058438067245520173498364407825102401971661398815094757091546006813418604456034824032913946714532118250796328314233062252767249525545051267435659587838166848370351372345202938151833195635552317913536970189934508169254000732556826675317876742200564895650829837712951073065347095354267358065929317417633795798685290739496642335977934606555156279687197747114513928631033573596140165848071497293401724503936680440770836926505282982283406480944408989573820623612317221625000792327316350005540064861191063055405428483019822925029178469816778621529000890959869657403200725322636025579605863542541363938006000659453823821297705144194986390064680665165677955030511698983960918545211850042761641787475501981423853891754632921220015528160023961143075872649590954223130846696294705055328704943481142962637236914486987713327695387815049003006561640160763204756596372159429278699988797545825844568784165679714539314979595494039552003456322395979666609916148800799023093182098018380457736868264308525579091014318222300711615877081994244103162728077293639203934496896909100950081040830960899882373826164530877333395449778419780254257544734794073783536697598690460389350050464468324698009594236279931886441602519111987888061593831029529078833068749110869847635715465899307761120600569291700832047970128749868108067882091064296511518028274339716699257053291548735395323822471738710429680415865252488123949294340018179371830520301166876236925148391928211692316895068727383054805995138834007419345238578664683368127269430455847517083752733326154224346839594592329634179516824966842374050306443766996523421972514756749839492425330744321673240590325312265388598832285267113961233378961000418121822182272432676808888848255503781988668219057736782918408146605228280782666503173769656998379562848071163825081394702348948845320785362948473855155528390356851991164276724726513398354305523957729605860099741900118878276085282740556057776616825612203712141403105719538959836076362839961159204765564899916791980993161718423075314223831930096604746345405420571322757143707507321282159052511078812473495810026658517417627603294201071845494990704762211440147101677541352957774401538312869148942397981539370443661650277471840438334342611915761513303264864564969381575087553222093708211499665171656668260197603571814837304618104082454479666924255886094890661586839529684565567797517320400481482475138510927021575185462111278730599947261411312210604987113736873318107401438861392467511047943787285619598404660376055369416127579076958321945184582101880727274438372107812893731343043325724828171023358831433970358304806260957377642771791212272608872844406324138654731571565229047964810686838118861118300332444571508698180267789065355529077125919855132779071505912060621541899228651989023008775139019370263097897467730120903083367789612982892923910011197725498718325441188318417876850185212173097573205929018033174696038719644054442877381826121408723076929049282554242940179627190759338189528384137452283142374142790503102382911289203843176012043467372902230109515081109784893710518367962990107539347398499116812202541568681469361823734734911877856121652047356157051435290149765279714687093759797562005374686892059468695709370814540999016134048007064124659533330402271435141359965133127408902498612585883274226163529432318756064377668511206987827834193202031488013034273182403333418905470931167863530443058664986146048906447434703766068036781514304583341004237241649838125013679719140758071206663867182821182044771307103217864766434386826670579552636237619118365562880726193269637721466210590390462685526983463873890299850406276215974717585661946811441169818238260634948047731060511355765808328237967734009365339288411355798811857007794364400890349657506125382485695548570265348668020766527372389541965695027962894138212238311515905679762686281729711158494124048741079917534360987378378770718542151674444887606641153596720742643018950880626686872412540262672658434338691449204334973414841758937349697689003205960401176059383427664987258717967517814787470767963691982628998286176844205752775533436959014907188413386353314939132379251931963684795159927152728710749819806311383475928391604625659572766878657827906988149116703121924241161791531145709040967838334926574879200320862680687922404726861729274791234378495462004373929688260103203753809559124306565186779497388463111760419438882215895035818615595189947054202258626944260789706656573179707920676537447420343741470901666323865865486773444015061546187740746079885160092782254409389737728134737827982903744471365386909645725492567408265926794437952535261294863662930805102561464935058528242633367548668669494120317567100079185280398591457600601160442781589191831146073602155685575101705690635433735232144675515090090974201098570437957022438678829710370379417255495110878552658636490926331732304115092004343730562513116451340886695304105054715444963380345969848531506638045877356921286432950883501521229740138637156809718167902164024692327780572494759246450409896006337361068609777804238983800207681397276156367753779239274048884961024112203804195183216541272918955551804925401446739188956500890995046308322422410524471387201544852030830296104824603511322072217592894444306797193727163046286355773739575229358626738367416424662210736712820974671833963604353470270842706012826325906882098300803382518142656473357674660004017790036099575317463478957114837486977115253611034469600553576338646627033057924492409976271091517529965271079741384323309227001200231617338598060501628374609261254373735013935632736547850695655952319887186743324495858469838866225403063772311551648723949824559465932107058969391139567757148798410822958319366844854991209452973188462005196177460792517295810027241382930734608797152756287049161446025502169216206091596288585709288192076954222766626137648043172430978834753330402554412378429271759278945460500385486058304002094552574935260029021407109415636092227477461239787743648617194955239195146145729594710415717775250559207025328180644302396841651265529020437005386816664046217185978311971329926957825018550637724303079084600655415558634177379874118396530323820270224697679921977631597095438385770498957359759049046500022611494474485726440356489736804903293393645756940288640932894364246809890113390372070515418169286127331647973752356804397475640807654576613145381236127166700014551937965477335420620785072533385002922147153665948785196387474223727104728541919417987115815726093951609931861638264249719989376411581833368960022187515781429683390664526647886672186057541844359028774249110076352868027208203022811872166469912972284033234565192931125663765740250477487351118099379412650913783135265337645744887532625565024669110511495848965456079315626598528255868613831358849885565581096220256077251054584234040794692041183623253181881748616823172008699538810422705156342898132650988529950022849864592795937139174225128701169337939071500260246105323364160885129652651123446384429628326656273601008594484342190968863019034160548907595830444538473522578179533201779971317855068612019541258175679156241445038656575240101150738086928507175322080846743860162422829667472644559593637125686297131926261048373594063593556785978959625215691314652799388318673260289702885635697940118698483220623782421585577064671513381857869947561564587374964679529438554788912854684731328337510616758167334030578832489899152350506454318473669655882020677552264079195665493163546565083875225653476494939517614306813646227321773523732742263431684415490160180731940242617160384234425566011827087682930126301246686611947650157661651833786968022897536420766117910172103109503869861982839096236118731874993434947718146218863012027523689131966160526420467202546855353933780264206187821407187688186039391493937054668852711248338922141290531775407370929344436432843980982009183626215112380121381091132027570009662563932427269386847326261897894503515189989752043418113938440773610002916939433255681272832296485642367564543438578159476389413589013152602212795397628657256670916931524592891820259623951330178726983513799187007622485515959899247796586619954200223972717698504945205771730437901055530480938041553173051182068035079771391761058960420039897440948506385587925595227425470142442926954871286464240046693904271003055882326401191218721523918573275657578373879795400247133175787845775193168389061936613871418568880754911698413283520894792111065868638573779952954708503298250377644232718603642101873545499234636551980739772213758500908553681026955347087822661698265763017523591616072837739792068593063435845592860448391367713658545123921741592284633124390742308069305160800286195961609623446729295614168716550536295559314310897445741747345675255770366849704191939131651804421297569312442861704618397949621869379669143715621562583526441821100069086852605487610532965484092514165447004538299301373639829538835874558249694561927371283953195794932206033075609433716138464285539656508237163947746598654913727572369286070092316781757582113335173512657384348449389403598886354642797351136952158907723647544514973507866279752356720223991280139259277513342925209785976021436688823422718557366566232119267873271091038547836334997291821307182850123645223870047312143420180646952910678028560694040382473261342231990253231480001113027755414862716680366685651770074949025057015058750204597816725209419075912216288457436632014693595372786802862934001113955005589988492673479955010269086098185975223416123706853876720049049728235266080217128334721636560072912640159184297055139872942857024893440296119144357515641466064551505447242946992293396217995619177692259206966123591078840620773144909074574149351051727906764999151429500121713025912258993017113023249723343439980761300086713111883357354623842917440901330814364497802263649701728266233126043790401672978234037182153172280572703406366580507672956464622648273932219081497640536468950172058716205898669229933715599658263947626165433650562403814682206659083380475230258542169455869812033869655742471822729129985825019400048388003007788367411673343661369821038048220042257513780658339968898180709026675576253636691332257322905248152538719477209119254240371998666425026880561870725088932097110508565388260394590172147985793847591183336228569057999172932758954586528269409855191363908610007036604333159575945104949496243617225532830894552612891216289734010196617841444908292454718398669552268079161069698906653804982213903374924465351612860508692664057940110854819154323448875357976396723896647394578679559827314759350536746331529991689145889273597003365259224862617421166341912765346384713306528371576086966253336002407595862637897514532786454816013304710175178140377976625739357261602540856322549448961870765290012917996642234578646333193971029286272803035424278985861366389547435266085508505747185589514160485971145051740984229569170330194442671800386524427451258625499937943496066642296733862817323920224135556255038539959134432436540503355364498968806193053776739640727838286637292856966749333741984654973320148177416532505577751425345270277358385108860649846010904141544140652685361126968892407035042518514730842573792425020396899636411189140657925976918939753396277289128864658118767357811524309840012465246201951062257736003637616527422869765293474725446832749305724042026726203013876713773858235219363983934177777761449716511386779927356422663880538376654057531890505210153389126643456311572493841814664841790879351803005869067363914561331078860658191910119863459829632599389833520150540935533855353501920235068275391076107044860948242601551573673497219642801719079114096525440752552358356723081123113539962115615877592628861007347091019923531471869692658817176484915355890202571321653507038588027729271549125890046246754093358037496869048841112695333293843627421997388319722785512520431775520623871932934146819700295822953115145476616881582301331955957370366825746969388185381842504089814630736000892151374540980478804013916692619933981244165618813318966187567083891629255058850410040345430649737728688196235515324628970892066396571177292002960979979620012340024160770389483142879151489506333622471502849737979310752028522944357979600650071833689519276590180326930379973740128556914437220597216356217475046051552808884502751956572606613535625265831026660413503960631112761181706888352763860124016786559281397413997587177345818637581538400341677715821666903864065338188827651981904113887665327678914814436595558852381061945259537664486057162107432652774822226679532262357845810862521168596537495961010790988481220655466053910754862431529906765862777068298267934049700837809516315238005972062827665828081091399110548821330260960678363808911022403806435313975641317015121308516441950477143234004044429053079745447616621062283478851980758936732518385580019929436782864842250233922088090606102569217333727093080842004539509811412088928583586859899979145924844709948407988943922461900608901241061669340023979332722529698077414603043548713096836033330362741368369416654819700523433163323240997976229136997942545838809102222281068013749849306387538962437176626756228390411355009514319333697885720546400786951053862986555632970354797965644844769741759908489943867746881954591515813326349617306991952114597354872200713872362412094472610608874035755673165342930296495400664339823673479776500306206348384643873805729726719681290641320003705079099222756632760635000310407793417898873871163964038583412684711230200079451243261491539433144782401707730060273515720016220906209585132230523109245604352290604316902781437312989152335058630837798508820908933386194960703288191195803586235853034872291077447494230132491582187228709514212190915259202584298835793544325899298125180094612528588314133432010552673012722786103771629732801273573443262910291707931351149362676844908642178982441657586671836047388068638835763391909766867591566624289504463761284214983560318383048811782225619356975551743509968385140976495742835950160961374874368857747946271862122927555906285924885454199594379188838801440832184147467883012527055349826572820545648890005704597520096812011319538006546265745954796020507710789642753652871370745887310063106567649092548272637234267739475102078173101497222822063123579486979447736816892047593199354410002380153501198810751926915468583060138901765904642333814905598613209751013935791754211827604649767517512007797076402807185318441096690816230958346831724706253839061331500912068123468446732312361960407755083198190853121227131727360547083991320105737442603122732486803633535645388745782837426722930923864889488184259292714597120173669737875243166819516430785395831584767209618271465177753780743330308087957519469480357772270942592710612033983676602854263637037359440244077609469996308485603051833815862500346232604870521570618240536150555158260397670152709667280055108774995784917187305160664006519676943212860132049643467079880342316844445892215258734604612637486031842907749230563485219220892386900179479566617784047800045196902004759015236239150680397752840122371102054223871036423500234962642182214591204691355023970106154036881090076662248376813774040883558007020585360345686813474061360147259381610705457851850122040397416726916483829286651793886177358512428301620599993473702569477305375152330769081660725695083873432628935701066787868182051458936320027151770633763879875596541640318129634901763936951316720630068581218867898262836895840583985132181057617068205664152346896412732977876167857707381067818062750546657533724717860540835107466807119454754090910163391428537469053077356786480088849094765296438487823124156786525102163202234985896772615519479428803797875031688070615970994401117264046392690278542422376684316543660094074872842254096322931483893298433069512219746906857956675601469863885866715039132853446095720362799160110413729090373512094243970692508322881306944519161912869727741376985347949498221805047256581797566169123621205963506412999707277621218270400005358701656095775010546307012017272569765424959394754735495601582808455816570920743636451364757572797417912337172986164181224706239038303246657548603247689427491489587073543321165080483963951280101377498545999383940580423975057512937572147374112306408616209151823957568700134358104478159981824408821728648921577503413438880688551132673808002011274750774937264307630544197403766488580893466286330849189298436135578262055183045951045199347702413711635956056764967478196400252800590099372059989510541074220776946840392500438896722390196845004783583665384210010550199475785988507847509220779578984673895724877278602581813572990390649042976497420883905597749784956285629970393997218877974834643935095641541374959608218634679206523010045888828425984833718784965947892296293387503178299497952578411098050862900783913247313231065684102718089608132514190509579707961503100433529994436393985080166918973259179931654485268567254509491152795199524684635604102099769760487986341002361403921378828588644069622289990118216091211511673341548412712360822086903153854664765529093785709760505813968532074276159803078489565899878504890080300029682797864997243020422142736296573120094728511214590442106573350658584832533152399227524344452689732017406734928375883707625881723148729533704327727667385575953663789070634722906946421727241616898115450772723011721214548957288231323755977222081999766758724924560745821982451316970288146512046372691466058213638030937475657105467444864382896003567636026524811219480554488794804106824110404926041516837769359276839622996581349546246021895489825912314484930964445589977598045066879259605891509765406172874055145696575356253923836500723015010542584364801021748215324901310560818119018855869251867336367868016467264841506381190008068760119652735059611549236732920748428409716339668905972163629656091223707599766009300019323969033159576797142879932057201378913269390560228487082211453662882710817915818536455921549524992922656945480210512305188722682649079965606666662220064936508512383279609698265032170793469272436068700398001671933479245195461939038203472053564137888261967516855433983505037874886509528067265211090046709698867718086629954493066093816221957174199935021077476283041707864284942557170734893835409063724337492774418025766071579220561490399731642435887879446819361072275790946528194025589567697622256468808073605959030114638639395498413363953644156640361758906778217432973777569492129513170611956548148180168512639089835997103592877988816013452311208229869351120072291388204517565746227479688448135137110060703307293483352545282421501182533182656063537248572812714131601053962271971126268915911276249055733823488719968122048697364996620986397065709763152641463217463178928820652663737238149733304352088446343466088025219345852919114616336162583632625888027148794898851043284692195739207133998187810646086295545548047951903960298234288565287760773407715741512412529467833980859509674552377402641798649917441364447633493596489281818724538009298571363636655269517156495678321843092631493900186359296350218967750548889471625385490123973548832471206677236842398443133556423237526478323719049650875622863027873342350097371104857314441642051500610342787904900811629129824213736170535186465301341166590807883121161388998621330942774754111067326177203238789334982689045045409697414291323862791336054604185515130952258704320625556521453244787903199441620837126669576183138718871701014899632120379437599156713541516035799613481805065293115905792608237178593560544029265583585071659400655572496313310802431979951886144027763270892253941237922352545897808997475998831387566761037964557957052907778513563727053488194521803054528744459997854774408262943283548483991511909521042511749562823665631286377865638673317034553728070844785513003426636439849232310095799309944960789412813315245486660726679158742869958052569149824218915582851921547726485595903474883226494565604894964233117004259811893712125728748916289074693652170307964297020324953579101523100424013337309063978332619851859846949754829986738824489078399772962048345561387080743543324982009595445673661351195371147562144244840288266635737642851296926863646489605298989828261542376428700021522496270800447169099445831675879389266996835632414825168949287988381656083330482686724801855209655818725770805339998804274327994030042846334161671155991330805330153371459166671007953338179907124096362296163866316935695382272826727972887853682324996181549685511862390644507346432136518533702585737682630178270057213837373338512651470551636235173280902280366985225831714790759639756248291030650822481486349201692295474356898867041217860820344384500408726816866802653487933537477597848786689338857162918504543077937099450716353128811167022223993054760895776314476459810836726086344012069269343834843529138895900924957469584763921470025622793184442075204717245774755476252651942268236720238463497855316332482502784055200968239037835224696135846744726080086393007023044320062356400693906635500223305382673693338288697526050206971156534922248318241742612448096405257778326282595992653326730666465489528418304584305274354904954838109850044264751761128982821872199096359357723785447696605446262425982089833372856148622004950083375189127048128713953690179356640259122450826374429366626289317978445247551014705747924523533187961288179570522263663669321260719020248095922064356463324123434112357434008548603720352068763688159684276175657282341983223089745887298238635862743943549919161004887230141792236792878090071094451797333882903720453191182230570766678450742441904232472654190840086764343891034013139099504432171360970001016243357171920956924434934575848154730724598173730063508454588546279422635200304465178150168784651615397699942384316281604736632739211301561705099557288672328807689674546693977774647261960373202251155029503467485114189636036532877771661900417672671956237662082845489079720244461628429104370248132801055938258827794698503188099800040699004646259164777418804607483043608363685401335136586595337263460028410078362420347821313112070461617319061331976053363916081795132203677176723385611139266032557906042934285099579742413175173981663991719754199732264431931714016746805017613624527816255201658563278224575303903473081905348365644983522284675844351977037043110352031841979566390096428646678794018414015413109261315951740382520008822800865287963451273910885969232245382971400272202100754121924590698647099628128364321393105851156883811827443003340083398643152574234556721457690350315791702849608993831301492761466365788083025857520633944493086033228530205369062878731922885158562292728477439187473635637774199430404494311128403939035711778343198163814994046503920974250116549761981957187539829302299031099897019022410334035746203706216734963425477822196045412621568323753898380732098733808290755418630899610793780535826606176749894722513952660142535024342754636882202388357553982033132448393713734047316181209790462366096676802609168242227177927775054369767356490216907428947495278338019796201775707328540202636066505941669063502694593605235620419624217438887441243751136777332969929352252702710269837176537944774791892627609714505322703452838349381188188263984334753799964840940998564025904622035243105444101559520622112932554528896485059197825599887583708577952904546940619936431191771775795695937941953743446006456487323108894978452577996786915583044798271117387788330213957471252365729150001617022687929547126428763755893609625339631862924564150280451534990682526050096594249508453956662940448827419973113667754475064842408620500968778688568715089281271470850106998752385150905685275100149557750601216247945444852920386612927450431659341952961485529357042528298755192476362918434339857998697803526792162243222936203492920586033079677391313420526408707661872714078280625415810230221128653896466367774052929758924602593188167963924634734668911415640748462145596368285071582467705968316356625095125549343484369942868183124948386092304677619191967686381708914184503143645969880939819256000835830208941091491135880576392975955338534267656396800597920469040900934461759392651072317811229078086400638800312650315146484848962586610389540568849503267897651549515257011613034236678956579313708316252571305920376565474111528258317992676383029402411359279827851139708569819119448385569732754017877900394124875694671404029379254429709823074100757767612162157242836909834663890820530459636218080152135385420947046659385889821478757583286181408212822714987801167074797342751793881320561825636725137462766529864510951537127417653302993547772329107625939451075454939937295383550968208275734445517218790011192096925013223349137966996697391223777679640407724578860515113779207694258209877037569911668618747651286798929756209300521737800179222984641519388733768126025037887423297660925702210629398993192043679999468943019882782391167456301509245563073952373157119477430554198773853266568194694392817301429865864454333278629447882934369054342039024136509642320568829222478422917121872551936802431514165163596269188011320529643022923320190702037053204525013469594680442349407454322403304385577147630381315796808104461970971354447941146174782316272106617075273125991271931836379803032659214218405577241208795536038751399017769701801048814059858812681043463620991190074164017367825090592680170109031070676495653432247569087649156471799971845583341184558434831984286805740761937280005586345545435073808600362115222513099838582461642821754945930132367309024126279544990704201078332834971801057339680588309836926600768933073107681497853226625100401833499950131284099560213402093665777037046194910900932115769394574891019786185896394925707814913146422647929503892447107744621732733669708121302594313818870101436354037174353723819126735445373515292006571768352782414228202385908988561063747256301278768264597316369705692939608670593664252277617426102238740550746647667050399749024334659168525533580161696421416303777101755278000218923956343405090955357625084630929322061105721571966033978795226996247726716473054885334932336737136929364833756640006207765740635262973931970625460139882783513829092641579130974552399026787345693725340805894775364688246501638821476761839485228770594791756467957088540687704539452569459513979380460820571754861239330723965203440799182382724281211256049836566216591237934050058792697543836414589000737384958737804580385148948663213639244846829495798228966589459163977270589931751274604276300877041069531684737212835173936589137357553958352239089896845937209652449061516320995580570113870156696888839889564433064148439256616821490568629984650438660867843686712642138003214837637161013213413909998908667572233671039678856128111578989475271901789058811341763584207992191808557384626078347713328047483583993137616801385538763181402098688731942101325166519610024902562773290751468856844672243758982241193714498305889011941691674732898232054017359886206144005034241026287069525701884287908732824105821930901880782340481321763218900636689857975072611533019822075668143826954764324092371269133773055750654071080641272172508947689827014806977737094008728695853247427863453599569687496267613352464869317464386876526349402965917417995960853654963026983821853502812424655100472915919606417647516906812032126692217185529463717964743823181017724985607300280453791957793332719054273606895878736173193787957749647319640714860001403768134398649289687371329588318633693253715018071089811885445442175181182568870292587687476791643969202076216554374204862103400021546560875905020094010456001218781891520995563675642372826609146222668810389470764422957810770264372499773508247038768035575002000977322051238205587867696904372883306862396176276969687135013030282136560743017754303220180039006762891768393278382825889322704955919834257281242581453264525355266301222385760116242447326736882097145463488773380147812982984710925473281819506299639147131707204353810253790446669606583621806753985602425035651845364532271449230849059886981863617723987285873121287984176415314817521054885758593239880939016714465933060903615637859402862494052500832002144623149917313081557935644162146390515913099480304319988693016317648499178945787746634346013764585703534155874756190746919553011936953459807896540544755805294067784721097355921310459424955709415210021846651136880289715141728762903624619630490163120076767924499403569789934701385787228341800184742501738467205798088405761112930177021543549066978643868117251823318341348350761498452471506732144160556587704218981529527407105804484377305935248411206703837056473662233533845250834309214293886583150393863460551313001571935248300587109233122114571986620092278405139651747118788185334897709167602147257436266212077181193556422253496152211119161675107482197969800082370702757336055802099442468040064018392857309909674076744998676936535115357056428465001043448775890513676388303249035474639040370889147695708665733547753771205919682040844603833559576406496821022356706694518611644591791342199875612688418961561496649561844822755125017708712066290721936053578315850053054567892255946077649553269741213456098869279089127727655508084522561085299186852716423877740473055280035788815366370376998153286753644258891742254437141956899239150790870403687478613687520749716368108688647794878748168611342727190970337921907026239986825211400625861677391959488269899507507382094257109444171231776181457689570646328434557359462917387716239299375116879577978431156063018829098563176411977039871486043035550100763580965754395108307758190768304768927044304663675354806298771170468707853807177915429891920631033057369917937477822599030488893396688562618754482815227360887357571048452317974571557665568434813715407151948938439227773939715991558438157331853379274914480530469107286082593804780770382468303993458468447174493154316460378018699940904876836634979711801209259725923132159893482570115466660747609944899690971663623050503698007203556630638427264416703024635072071407415290360581964947912583406174452446011114222848633338936886735437161055860790384535325912882074780750257941924871915693307371904653393709423495706493372053790979922029246919830764216881483914013754448720837424843590416767369752211089642189457602340894610179204764389272594597755902688490548765245620252543307034215207670723961820715940514615379483829253350872650681895925385322154409498350407357139460435695170538084323240042140364014992858477472680672595538058300344275368564437210973740633611672597958798445394167974540578969884845512673635398599592725811247197427312955258830837588692176960669722576938277367311840255263385768528891860843484891830843400877907353250339014226313716948520144146185252804108858509456688358499611895414332609776169341024285976441113098235993996943737723035600391491784942881961077785086880366488944463394431569352169307992754242206308586996619506774466158582004367212141885179261348312586149804569589059897136435452593505594255928434150894690918232721091487406492101519059580352144726323938478639135352524149391219272828476915200812819764621315705287856386454559671158495060238232404033350663047054933874889767204349579216384886583270309907694987068239640859813583349204281235195907502935868628478309474244148878393082312132175293343176901607643555103816971158358051006839192413486141917545146272282900597906771715162547930105429912619086249551404862680056013324570576852456382868303050574183430694591168840247095453648960070151466374058114675249713567745455932278540494536584578600285311048803539651027163291066305261127222818602587616208443465552965051225131813688442926736112724987388086501408639397670576235145508919215203937673677645325153636445498559007924591074313334588467401001102161848769140757204365529313799721882624513999560672537296870571766633270747777212464422224485252231060459669094536657972886968980071663686406741271214373650920471079178934432135393534229115332378943188338744683535570757754150607930533503483843109425086284310418240181484939787109152345675976734696045739498663511100291326891076046144684438159534371507726263518311762479346449307561550348796993378480193315919842853888704383583285681672813987445609674544237003188858885650939438783551231139241442076918529639344575459784653827403677244217242577332696122857475088123414971998129813646888899039392710018109514545868065189360477876477949064077425023054326052901698424126865939377831191481168462057451651022008278864777601897212550844955268886162692963155335928309960269676488380848553763484129603051965238493620877492674974980630276441854992019107865762568299517191010144790308705364715689467257871619382876676733656912842627102445396161762109892434942648813427423359264898550832506666861424997933379774217801716685126129121159363000645909716078410403794592223344384589978786971498488379842781973561235393664178956888192152513855624564587559582727274566300990237572642848699888216771629909821299659855514911240303980209599824498019764559911916382032456647472991603781844967432314398881955747429690774534136574154310105915829061344697296205590078682077002159241130416294103822799289382245757121263720602828947071341065606012594748703410477459079269898491672290226448497178672508444215091148960611181669174847941826201039935704293886009990631571139297792598793663941419472346231783452578728792174283408230132094888130946914162312165948149370557919557370952412015156301028697160041826747932550797067474758268293301860873283617441831879677749357023708161376608525911731950495895113729505932378547852864296818805833264757483390701765278718325847376380931887284511560137808977997537314809176501670396052760735770733818322846437426156167310779196080438302356158481801465840761956566734675491772049509861875588334483058999445034268855862134087987065233049389390166151512872358745204114529716549749476641935639494849262238326017546375133237286112227094345171775566994505776861470498303855465335393207378714279321537147461317726685897292540275454231898021139589130135082328485999984085854227833758134548149797024771701800651361948410653805748091995943636257962775487086033672975254254569387512165383823973375918021038263812617117324607798555164930176988380071986356927620515574132288490987259530857115643297183348201966940627946034864016725680981922247270188984886166021563611205903451341422560425105428206474336252477254761499595475367132810841608448675888045339395702000422629503135176022370807401012374966786459114846742609029082729329393670560272824903471230759266420661611001476027577971356689365334251296862009426929318781784438181125416206574476018892429777858293233046954714626772479394473522959177325417112024786981765800841713234318695397536246197792671361121648762878333042442657961807622647450225856915418607601149755265309879872864067055520283138303128969213781665959219365241378959747452778764230449272955854643548242396347758909547911045293390439535936560468197289189048227976928929066108230579677293755714285225778513562625024811698838416550703552516024070024416842094166348381494752973012815961016731404680178149519744611509168207395290780874531167628532414436346308615679868785179706854432086354688374448482856520490870252032651713768282344473504545307667597468421476722239652316302333327040105873678767581000045330258457488058672695078660571769611290566705129134887577279901127814105510269636345848010964401534175375651813974390639271905312451597279009753300846250145481097417981467273465893099306550476211566974983600839609599055327818967317223958694419081206039555630621885688836894999838487368879712923742413058960560978089038805172377733941551316291777520012768590852027695311344109491676555079374987021631309289002165958320737197669161765952236086329851462093524012141273028239201108312460250911828103757913862306345084659961299106058293081530301276116813599750425527366787109685756324981828932607749117476878885948086947703285024951532702359087614992796984120816371492683017476159865062640052460905183335386528158516116472044740837994528613997234054654854336202673021878707227183112385620789825825072937839799586880521219065855769520607429462658846716654021112605046500705947341355263853644459887023657954003745057411949050353330719649611968290986975514789881808517303165203533913015131787046563026263719348821869649342523377074473960943559866774527043029016578413087510870301006295598182780753749536387914053656063072761200863189263881498998297859140245199841927423246677852901381192975968591885659351141674295634304516537307400435320024481774712971571522547459241966670244090037557148254900053963231736760044158463594950536215208010070779374612091470575458841713590498009905990051528595114037267490544907324442121912332905007552642694969629093525758320439058862519948163476031887280812854754494384993011506149473271934679627107664136554041317008549860423824650473947880190560897448004654570219224370959739500214747195672424904159892171169826761890759562079924182142489114366906499782619728362977967511527442208314425474614808282131765691906385469731797018999860912998455911113916593971034189661411346653199886468638003668927655874516327539908643134718876145846483338857220786383520664782611619268512609442146144886124634297016671660605408043581730411386259725837657969949677408988756435659142619129554447805296267939878625746093790032925472608235749602514325398712814619935563522800489023616634443530580101946028809977616535693570574243240202727006827286239480482428912356503547873404152218460037136864376097738320894366957798505427341622456766798342662769215664036727049373371688865530397824174104194415644940987694734908070332115553695207324328694362917306493454301481529058923199466992242607023626820425154866931081445729245732556316479677313904907697758664529026590376720893382021839085224075225526486011347677323036650708287985616521523859754119806299306203223651669233123283342815615664012856422254945723972427600359598231276964351208107535666263943092163828103662310171001006223066130960152064347337519521437300837201256191934037919388555945978079475645569848370577758177876695646746076203732768817975242341318160182730250752428258413427597766012945699325652134061619507866811985580926327297054939084572620277455357693222227156360580323723435030965051959784125819517714401320036155849560738397742434291650070480686086650916511118019738166342609053285840047924875048945035324465436044184055226267312535686358759352965129248451514947312289730460140067838622982651541043348437504967574912328797792522000259239571815808061544233609581142093040525074332251750002667048981365386114301017222546255406279171695133374610099127933230796607119616380655358082274089193445534279207032464245847843416144720896511192716726285268636507012474896630453248555679105006945463895793899186715321583508458873049653745718802306263399115198598349043715078602846141998133157611434898845912123659626492191401827524049718553777693530686423254172412845611882610018344837346341540931245553915835165620504874176928359167146815050813851583899288995726150327439147142263800378331015174722797888489828479001258153800456520996144003440181928897309482352076600600871366619238791980995213671559121846079240419883448209712102277623989348327772924744704968122569810273171153452925556962027169637619438081040237250960407917147493825462649272031190834319151466803853418141409382722270897086263977152213191123277385757390598866778043823910132646248476887838563328741022427224253658506716514382196302533069203538601003571074319979256254715067020798675033971752826031223123938139760132869761340167258298332207671701739725999939795717274708548394696791758295334073676564544041787611014730421833007670590812742566362020642907948215854432916232394004891773942795831209510150122954680592847260594465967163324113547096080991330717273990291741939763888587067363612871450214923710952046654394538395938695785533860411624672203394218873213243207053195808243881461383843121782836699802080013728443922826980883750592336643583904062851344531469973432838195397406825391831358537593111129032765949961369759194004784734502384810889453101829852555078298303974196538021001574382868582985270231278410828108528759487510234068140881426062186088512629684487377665532785619594451199851770297656040312074174722930543745394752572172430048950842676403780603179907659828773773360971396564276162853060673237873016473469063456179142825806128747327200699646505895549117985983158619507463027410198406492376170969394932535079988471477860414044000355966029258619040636309135610436826899030246344367422916342712032634676854929700816840688567718535890985993683465733966833775535058148837771079892645941567671563127500246726864999423315061770148451784028633411957914816984535654316704359635859649460158677209614178879915237136379054116050214758433633224627636991460096973668969622965688784390393034602994008547077241875735253051021727533154829439581839452922005268012410902798095228621780108899090633344174005197977249435901857407947715799180910229418860614014859282808169044802872443675925462096282130275444240270698848814579034230964672578727548808196097420052173112234842601370995641866584161773056822744439470940108807307929141090421440750401372566987640528342814152849308965984232234484110569270384895368989732207055005951156421122822503275951268311075358003207192881471611186036468540627082683876755976790179381766034214137033993158720565195945966087119245225175586688519684859850015598038996535195505358162857069774151878697660293184311914190634055893312258412940941573502954795469255522274346845797243621800910151041212374688175581489279641590632875549477370088784062139471667298958247056777209052406098736120061427978515901423731892742362661755808476222088677997420511239516940800418651236005252672399481903056379752039224224786900803000334966915663612253368889359564294012504239136530193903739321542359907129616278613757222689278109477922160260511059090648958937097533897934004358073073663460227018513896230629264487505943710704884232906447978836440037235735332184488098239452539171878711237229078781711577819280518901390905846193712432443603490315357033952042119088912020479683917015503050023012262387599823014046020739298560176651815778340821057366225427709520073373997776039286443065373417829427508472822737698576602295291486958302364016445314053301638568940208926061671658364385313700835706469438474410400661420938099469676763718833237067539130658848023612316443842761456208339662619813589387908462765387224340325865525916949765521949456350282739910439715336021544267522626553433544403239694131425790897619691890593263151401941042037385739690558989045033149278251406388914855663201986315449768882116201026499726335454063631206980129418720199452457438027359671055011577190830787036095247863598407739236895381619256210002815060011772124008039391105429191773682070058204469168939758380537615512295055620250544154539826898046622113090640139806092247216598560074114128681528115648563246165487185962126114847514490860660516036619793975454155775971727767031783459503171813020169889517374527389082660838634837512478536678419181090726723309391521087249281413336744464236456166263289749824836156909164591540947701375903096625664560612582197458092848844525559561740736092948672182847149884964633467104662170549179877892185542279605185908466842117586248807702474599898543040330185807348122460511944675782567449160557609860166695109060417383300231481620602787234060172422279694226240522111510475570831754344216411360172822190244937478807872520280100239007298378768359718174112128515586445020533837690624465034180091469243307451126838582259439191955235445662854792483840920918632432066450082772386316990113482297570247022438946858604147009769819668752895629009931189078990572661574298794195588853157230497308274817558535699237424520183827937172656396498420987185280256998397940217409847829628779858535658696652364985210003347337387648210289982818491364798942655381670064878971724032078701301555850438737781778824691964180708503138789268743912700794177258520594401555498500411992974355367716811661688867669457570849764883642295222635375796343736098907508494029232623141036332535124138534041889490437555998007462083938191457047040314086348572898921748871925574979884183218461265550400710585311623545860744814047264688540832048442906166490065797165640672700050485773135747710206998695804167478206395498857315606930376219530910811439329392755585608206323550709927603055503946681509863659800957508383811337911922456069185203365563431702354735416236647128807979678300275791815945341021703253392278042474096574176349599588804237008003624985448981781089666817987635618958353782896785050244984551163457488354509455301744133002616262173224052220933693664649826718785777717633376741251484527267549041404468649142987493651472177908656549931194481117969031762930585882721876649844080581970775043653513151352748148676567156199836148354023015788550640295863422543679079098988619684516259410116230652190292207668255541448191237731962010929821619533183112086558825831461616688017287799179559448188957067317238047776757850016504417394436122166515741587722393348714570286465082279428447129513282444344529705268409753362318014388345229267349180798288723911886080097249261125910665734073184300694364723782430589025413453855907039699663684191927212574266246698290256684087700776204373114627613835675206327147804933195172519226107702664700908246152797327610353762792587036707517377942074961925051787532010453512180044891922369267090349253504811912957602520228854813181912770607206023427306464715948333251570625455222355015402777178551480378260423812353451612879976909914553185245269891578014440257750176028891342409559461478524768143035384515864642960419709209768926855076950154919903338767964135998543295327955160217699327027643144764143941642519446559510369983585167369914412786837000235175532154299917101494143499831145297385836930846487882461880766064187254898681873346719472364781361552857621869947980096708204894438595093890854080025820736209805891527400226827230535582028167246793241915909643451972265052127208633376384713189129243595341019490000710575548095172030785058225044070159907049856280790939100546470513906478373301638398041907265352141228530973872310960310437019797629741044684801595989752534915415965295944265502291356544788987707544553449640813049978141083316925867006133455175699534213020180326012443485046231968559198941157616276774433267671632939526480454612361364426357951529016098697444285610298429635298924282786881370044068201029356660049696975663084148029997324179036015181785773315098072997607299366046014950850483864079233792543061491266011970556188016834423929534754763017938889634226506536917808222824386674243510026919325525263581600592993694801918400158386250288682021172589356333222396556976048279711426664722495827804039588622908918105675353325206652052486962353258543039547222950881783185496218353855726680170636532481110570332469259883440134266828520829777237497989661924003900706517127243253439806796135123733542280172915460832035911964206032592043618440807309384080398248628688742429132000710514761311537644131456357851522725214807928351708617893818980362427517450914374316662650672176873152765343501789768567391043049820917982344985185004182739937290823408484870659673653063849597374858865741676539232869201815122191517672602119288303090474249166060623387724338558618493688178890271007512691115351472379506155390692927566328063238768125788016396759763163490630137201255976436052712814723929052458083475444004424866032122865494039516623606043305614791624806791605671848761456377987422827503388611273701327322886919398885352684260187488698402187749040450899375552120974730485374580633013865595896482861597511155212407183962617497305727340455350553325739578416326878351064152312754764346897517573295156671608481034353060486871330089862061307836086015824526228053884877934812715351465810001291706838992608724837946633980256312851360976657965227353693733736025433792203158589019787322202024024463977803474213478051145419261366524611918035596298705461795676489144930565299698644387813227566435452608987480937266281502235148158609108033702180865178179417880367675225046502053275324380655227635042561535671925431907641442865220301875571476936958132879158734041776503965184532977455402052735622457359031656422013361852370533524294996735816841573975097805105381929022487206802053211384701452459080974530271092393134775205411241178998103042791673819617132268997516030518696915858013571211610414315424281977451176016212204688045459753228431256584567863774998166850341321352609674692397232815631590464853365494555594482335989637389713861338776597162867882517954403284613988124262649646999828055184522672368099829023244877885131496019938034426668749323127325875753304467122629503421769275163767543453510120182214255355625938142834764570515167247185175262654796259904955394263913580020865480950749763947234156354493212496707809895850385695847882883304324906554152144138696957584570834118674194970706592919735444645090862682335814826387410243630280174966219345850298179508683583893479359989118240738560451030016439565707782216515089731913993912553864237643827619179331785026700296252612496631040077888470184303326582663017540868481735239680427374491562084296771803467312000326502670659357502308421567941680207513142050065759682114669633675408509995409599790969859959042547976795487998936487687785014620032379154555085510635033829680508489428462475361633248669204171522561038792305082465280262529054974644209389660965570065915743677654630331370123506228994599125231550015801913058108325235616625988459477052597185607342947730236571897759796835273565015154331404552970352101676420000143714303698353842381742510807240005511990022567644397125024035402783427843965290913312308492203215718915079777518106203372333812896541137893397932516889449722808843797237255022767617895199788290538002939136915524366624919349559005826227956965982278384053694837669186629058590621790643620327212287275720163310336335084639822838649762567174689056041634897410371532254833198913688897561704034228564764105215004878053086062600277730683735750659338931437107344777468233956718649692093878571198571725137345283229276301641631000090485462451511604402156373848774181213592937197953236741284530416979096739663124723708132328627571340667709613454986467229779557830971319733545976506806668558170393393832596439710275789196633924301448855299665745636246738049633064233819970300118538411755060055174583260224014203411967767709379639328377970277510298697730520397582668236497012485846369724930729892877972608686315251019523874309638813579140220834051620117813988361499776797981365986429642784802635248365433885159120469931132579066713420869076321979705940620647766289279245082343079268449046203225981840110649923958549055710279019531638683042816127727351081675797754948971122249093491283463852174599591048831733693540058073978108033741234170616858912464771415013406163661300392493201811640894838149879397336975297075032357415960193043259546823320501794686387916919361999903003789651228448565225360211732703940773076269958780457648941179102767750542332659516783298701067533008484000454145461369496488344229006314240930699917760402332905937351912949094814255281629266236047493829241900509216970641720539745500943375761773546288931710750749830528113862107438641264559938866903671331590721040394973213789196972474534548956505615093406831313788520952099304677281840434036242052914360301739635463668170625488174673476256719244660079061437496836285011586846507322212104450467411405765629228552684841275828135378098041236751644194130132895510407033253187691178462588055376275544852137473104402196690985086887892546124747184274919395721040378109208041341866410700280611396866058805709428531528753941194609767972664607259413655034219727461045712579959619675599553216903070421192082566111788034092863571659586098785614194329365461249291649836302114716306843246249730112840214003028282828596394222605679092366043790399144571121176848234384649295023056173475603531582018314043500889240415194740141123841409098279295889966865947112892215552023709605924547397992614443709551923410828446877715998972521640543048023315697537851112221007426392054620051642721318416677940271682710173222600151894234659599469448638457870279836147118390953594432944869670600000720882093769958783680742183565216089205445215470038743054980345883591347168475300036356756542205227145924760869324254849461392788381445252088653189284455892315919192368006965161502195143239498272925467633790874651693801129196290917860393320549455493580100010431857505642164140327473827703550515317500204576597910517359394174131257798601497709752037430196590958513463556809129812030790673750003788913497662854520227701220326948340604076712306596785319512154686121150493548516904205322384393983662943223789266404673968711420944953119122774321469305307131738745696342855375653556259083261223810813245068263400032188328822445187793946114355922175081883166883368901230718540042590617425915829979323888974697713392371357434134699732606026098235663181125816302497320779589048641916462678731202113127573716126628327212890337967047827340136992366080084054169140785218880465372336166648793610234695915668135624660255546610896916796814256351826994364960978899826320177530915042758133635029806199980854841143537709420558480797011095529134181220483985624459073404345693699193521933522079878359099947208920036457471392323193472311497347966978916044515126199554209150885927082422957261279750483030120618262564917187838989971224234590133141640317409604741355203473536096291250431777680460519018868853315161375744903192563579729195960067444151525902376305250414238833812263439545248277981292641809784709629426971722070750626155056351214531240233786412871177981055632122156972259692255899081459476572146336001083344504311956095524026973326991450720791386267444652336295403106544206840693384878452345501182158583962358741186257634440366587277584977281003494208751231952196445122910030698980891425836393092088401448969707888251180384249172918893135108117790773991722009146770713181731539399020208749307047631613169996785723785910187210545092031753407360767029334202589189528339245909223992807470438446127619708740282233491935305120193524266603104886448323998794090008244708496958784816052396960958425663986983431477617755718438986743495963045726016463904664902729680814830221013423199117441840256713627915951519519048371177491490366000760400722844933394285885249473250743197358747551772180685971739951652256548244705325822363384011627646413331873224707449103580663359958559657088301932438918428356292076608750315694465567339740620137671373355767443687894346497145783912800175630464760611022327058779726311260464236711926846177276159142400588241500518329770356114956789165993061685130081467508551759195689436724395490059164222133550695135953262249665925443283073985369463271418324552510362581703460715550074862169239123555331543366116489496927546057859914487229636368981276274147329897162292976901837428132285866934442644077491505581809476205900566815080893816088434621666781457227457476741723773324710779717706742547042231457617959992621790584442309172048636817516378272012887711747728740175312034905184851720484136730153355636862324963774765793729337512529008130356197300794256883964728914161692834250762212242264843595909246996359226028202418326711833313564369153673585694629487021900443049178722880027585647118500407130415757349423531734807422957280227717061712863979894327938316264496820097513557838976027815232916630769140511723998196642708537945742076124360358997972199538812321680836853823639777779655166467004206088097833232780159970772980458105442083658662239428486142132378261093339255035666193650050446850601417688157740869970783551648030306203012981706579844589896192368078987900525353831902746982963794875935906228057470889726394891925219105707978686330522805558578635800780169335751806872522684372258087966868678715225657337136052512719921283939662069970255273794133365993281843107019850986611834013300033460754061254138158222280770713858668645429318546924171030983552927493280124611662803873145528316429375846883112878522213402195365083284319858333241214502225483741742446703206948916512735210003271172693220313102129234450962322960552277923200262187903115880450738167783851692002967503396791766325596986472714989963902238817744005058900025956451520150489687380642971201202926782922128388251806048715624377064539582482948969674034810826853324371632401085838398300018882620951961527966107259097273237034306988477149965619040130373936357419501745452757535221071312736651432063389696737091621049706903389914271891901925001358303878318676231113226897405897768954506112235748248034437027175283541749539026837789792979419395412269483409256286762080741694521298611815189958273935474237137581103635504486103215228249126985776684699005295283838800042087460396591383405561531839488083672366865579018966147997401493869376379723726890146259893885168680455223845298651514291669398515142599906767668997949369750340140430628560433016376894083837816948964470594137543240110832602219612912370558065261909698494025011502152202979655501189086948859211828987449432635464677539967098872209068668660527023172474632911759553686083875748244091072317852108949607722159676238269994430748365339695777495064583424228229782815131161959199574486759785132232396079519084083371597080468238924417636661107240421537324314281707201754438128626188706571731131676127214760510284927762934625355633446945830215739602727158264653983000208227377954925361382646567841260602364506011462398928907901019706510781559983946017829540321048329320026560102640223432059502762618432333230811988928702078591014557405799433218499052754628549423929340899397437891341574908924474566403394665010722069563022473631658558294214438992324385535421003140634267559102264204591499842866961957580360263789026366354858332083122518052302654876519281126133684024730494035359846019744279726378079299644301240964289297520977765527643832322738334186686442295714680993775148529756590297976173184358356955703104977884442131372538244370260735887945376843770398997964785560318056319962062739416985701220136248873437031281078401996742961898253957994850320269314627568243110722531222581562427765368096328272967206336309526966521572796989819672810773951463370372419357394593679502326848453647635594977962557728461530522359146791319176682039432318836732392376784509526956310492190145682022150759686838806649855390168282637636373779449787083949927081971434654498522509087445697136556765256779828724863230487726570202750574868326234908441402075563724920644539002525960231000923882543527995740582842409449745604348597177763391571504820993835505166637909243366830181019078027763929733293758265223868178683897015733774030898639888007595746562360234792628993202157716746384377941726146483240056286947278245634595906548596610084991698000576709026700557171431558244978128095654404801723318463641393508315332603342377103572357935842741609070743333491773168217114629327879440982085943848007365976619628001654384766039189463157273637767458848095484326903443880691416116718680888606381313559796426986310035393402183605768371606170790275768331632649923510531184600931396831187620988241180693558311621037710248569548127466845600225376523221139152596411355293658940069512069115493135202308394184141964223245081205824139099590083234592225495099111638171731236662643195222261740666218124703712203518056902006826184164706239345303992477667058294344781821828005904028387003552473692950800186812041515618573225147532109524625061515216282498153120483754967441076900158867533876821889720985943861870395827840571701206453324619337739171337004901956978915984722120366538188108533097585402493570599175867319721738581018062751340734391669419725734035534107092177158632688270952928362384001811783380060092361568673972444424638934788271121915291148380908036086124644312033577310086354499483085548590692594128889898588978350695662527581858548738622903745889164069481979434910227363593361178087895399153716903695425869365053835644284258372907565620842841236174795389219148391985687433375494431392800114017996576186292463629187209434808708935619134190329279809836226697455746970564550779337163890308846063796712373205902561454518137800135874474679161055408300528519019470135932938579659685590172289334543779143542021748625450982856593933020533818720459019947883698571568729565433464181127103088605173714851105770161411073428720153009235533569814994116335198928579459992561958597572282764765887569580616826035053199231886032553732885724438977634138238030941830951115509615950045349961380570246551227651514657015271383837140129102538725534461566326199852736393077144148704013506860237549272606551484135864890899531471098043764876703803956392449657001283236231131485667545365085070513415359199427233282460052701972871303073255306496662147576717583149563903526354713405337482093003021926109656331923267926527135192803072364176492926088248406935594184790566332001295984552830100493165061950800763914758607586401335462163893703327444775009527239489683814878014938271803219613857234388152822507821411036342244968389223124187374599851764989558221990910668988058320409280508472964181905955739645262343891882756396052880766405048979578251211773909949136714280436249338723452638472548324843158687265445266193656659750330479828277750140605920917630260473230309179675528887010131384807288907257701264210734686077051223955608844969434460362527490618228226658406153057506686104924210022644168541955740191223898827211095898904228383315139162110391572443489617738640766256572087919439790896512549142044475778383791516948332930242116167041000924328169377253326824888801767584296722417094627139415198040694807405624385247395924477756417316430318028864499344765266918421888511748412415142991260773800764355207328281975231737142530899693224025607717910939457173567055453687919443606708204705352768302831626578926466624209261356778807382270090648554117441101752485491807036051644033799183505497626208442501426245427793653659400915821343526497126150280166190728551566455437308006932161955981246341151189647843663652064601857937195011675519408864674779774103669010596837187435658777788460587388473668889581281165753775707770426787528254572232738802428633500993415100730628944504473551395248754264311198352569098540648236468027192939694186488357308496390085952032518355056582502480815666735342485128814171521002392570091050431273995868853156653068303521425162526903111448869310868996287775801629158015457194060352258866147680375488350795867025814720049332795173006791366578287385872275173911175576052852732846380546361760959351524701004783198422901424527814434418118502593572689415595809633127929267352747092770885800905565095824373131559955767286256612418140225481636307465081902633069658329375462181331057771303397088399575211411447330198343039816691650452078462294971893569904937473172500785206111957897820461963650125091952295857469355796993170966912642415344594110636199927394483829283080654986767790326529799576385264662890316187846458300258545290617281751605547372783360349757481004209247772510040003995390377059897411368875206016519646119305402387877534215035599065517738029328911685882946151303170748200920108730634555493789864299013613425867325915053565796980824702345967939123807472908609170290172505455255069339164004815076080971954202983794585189611834309853745260151117757331919826056898755162969430631282377730803334006982355636841723578602431605224591372688292636839485768588488051962481793027104407822568584515513449257490692486658659481399934776640220440787507040255233211421119383293551021124021912539649080372735330304470736133063815637026063658374037418879038964548222261645574866999189687417321952240481816767082318274210973254173555929643012709429673961896781020166627824987391166089610184465704147472735475189511634704300185304173799360823398902779436505422035580774131573920231440139678447389500227771257928242559871912407236094654445497915132160484179317890885764422708371510907344581484658371677002259790824930799208390601813917277395099101290334416927467541356864375355186381193026801714007869339905544767998134448090114535363031239255343317780461003329518104601920562071704444498766819222486326244117619785914583986244917288901905305000127019006551861892220860678906119252551987281296938823667253712553831294472981966794248841311511243101513408333917136781931684641995877401849760673913710478194816172979225990540231206560626222652210539269849766583758522565849141699219030586541303341583447905895278436633558455802239380375479551902869289305241865352029219322813468878025442496465761965780060778227142382950066602741128463824671376221555820994763979289299740202777882405279661967878305244264049052184348802527310744111772249305330447690531050080703655054648999800897031512244291200160094592244373653618079843429256254862263920561212116683316331663615304737630801231916429579246257306796233120074625619262688526793991804727538121488671217253425526444821265163198304469126914857262881028338692303495886387905630040442399984449024056533001971837135245091151584636661149172357110407337003392776025641377915401378215781964318212542032027952527012214546090784732183315938431807789361870202958391005644832770635490692259162411604120403470957013117072764553526966913576347135764872917650089823114070096248354796414895969369328383068479706572862311139868775232809082127935072244037112201052470858727818766815031165112642888126616537104376009849925922332724885264332991757534032405528582472364914890621815910107544628296218547509573381907986846061695484394058189533772777856049248214258455557265554852540689346417819768917750397289709934622351163757967022507106900089731968923659364145476876393271759889510126229618177796541976545610406854848172592025212487739590794891909748782271370906835247744206399677813233207893718510290840462159551254457164086834135506423115127006936006006352865164233807274128584198486845222262078829498071587292142833166980505493148923353667956650344110163220301814009931978640089011324011493326811505245641727959101023268831233701192499666722957445017220317901724671527921313103602805441223368648113604591060834323562526326326783117348911742173501636090773146122797199916941081807187333778475489834618314293468844878139070982372734402774995857649579704768099196336092560839275202456437069183270140307717987922213808040694229418157718100779978478544821922978214047421859159930662953764016219622331592049713656405890977261668832177820867817894412931801750670737792213989006900746282719340310870293429069600746564207149158104959683508052951961943976961997507121764950475028182159984375819801981351625952680469886117833041553909806764181182876757088138753012589482755741851696786938085234134348076025276588476910863264533863423276639361056257947627155288867492572801682393254778207552247570149101572251173998621756306390959005242280279669025660730950290263135532216893007614269624645163738234983283460953856525677658757703900763677631098772189067840564694962900906200789549454938291460994812057665473715739146355212142899340529902612861056920373275086742227651381784626459881075109902058353824926425871327597080530169228057048638148751494452200203161143214621434001881468021927956186139675443692366807807876471653057613380869949952346657628053476726971328550173153335175947148426227681317717090053562471456542206576989754053515692979777093981793842769405548895378795506051490937951471527583011498332061660671930250627286386505825559847888630672310593419953547791295741645474304056692777790330997238579922113089021596997685245655440672880286295842416245514352521351889362008954912420270944795799752910867583246244955523358457029565056959516096232291417501677915155309793889701943211514995538695033470840972356522943171438692313928131640895788718029696454934438714767527327261442435602837325684789269704110650526293104237570973616699697706970577042854820000194208489041865235799943779112435852939472247662057826415840248812604939539674341641195502125176332675189168888507821441580052239266267535257773386841366893358710954534263533321670087217905644744082024781862505342232908148168246299037101574585066770690232804286007606610902761770104970230374798832193581240559838155816374052681322806562245074152674431522980589613069350814590317879538104306969924448162506841812821932188290363346785241724602095366627042616495463303688913453671313291263913443566301622506745555180276898912915255249040128951878196871831304186215890826434823261860701847790293879452678220944641487540524476289686690363271259048192209166974756376497274921502546153737651693930660525844991641289622407043756437482355044597793782709158355303674548892037197980178682443873210787228428625506077793371250768381003715211221753158533433228133939387753003059279545737105376932947499714289458233337087332669866182690555247285147114201509270966377750572472966276281799107072418741090767784638261600950429899982854629008109853312997925725859822607821446929994873521362265343572316092009362399363542997506624178310743740449566437545725932688908788824045834805995828870181313818698604557389888057034179924648472808525514568919712652147818356337753615286138944599481047533015313751743829620972888495289134913336276781940079759901484148038180653077096901789687884965440554505430176301465968408545109173907348952212750799980258150867107640626969824425052671806526295064166154180351482035992795126429963531772472482229091107713887938796030572881489443105452132249098936329800342212829956084316963467922384675526028667987703757508411009556230512604452831941558020126390393579427216527866127675136376755142607713760163320782137170405435411212493525426169494787436597789164881374426584028276815591176169848149637758932469267720386302853126628419046821242024233714572791300993156635009630388689477741691001708360493839940553677818663273001005591728221159845021172320503797836000668405425443451794192088211189472661454272547137093676504642385124906928806628516852045657581369681023347893568690270064973965442412276518040748514225030687822930720275724019748445377899451628017879829480249093964774646520377786687642435230401518811831396919931428801200631918180901828113340458225301692915011021996682560056574739576825991270581559190075850355168209786652259030148040799255688686296311806200760746200681819951669014432132995242358514053094378090046688332595882785101396504665119559091353000294890356880372148336451543728460439502834577923797630334363452687733148096862889708648900436569974026975871141872791525582728860859428104077599546931423343803828871736015452128576263968970456350869759612617047346537630747885314106448289544728971472216254039342721173624389435192474725016173126118653098159316383972425135868243878925802063021265340254408014350610600709200495145240085881257849948723963999404286472502544695408584183707305226928160281930545918874863419850665876821001217422054826232987951241930235099012709897205080082988493666778408189793443095722395619095837108853294976819787958084990091215263661207685040925021626960922374635468143833080413765386714850799694669635694770039439755911674583123370521773518798939962356759718318778598721749297534535647420906832489164419788328689599926172610635931927832083238870894683465022314440694463408222048548485818835402021532889739178548050255713849752602452696111006565935457726150665703997345795993250315279683619782422200967764230406237507756912182114700437806734657158856411654232348296050931401677506558871682672609851583598454327300841290903981424528030172797093028475316315860248455047661434802130187070355143931536803365922267256580393096536951998270706470668549720014218657773275428510122278956556055996403339869765124675999359661108747662019066293146847067085429438366268307976875204007659143286131232996961850321214686573432299142053080423720954914692696434108470821363563389763350444802421328561902560573952228725340522733385490964869577406522815232925279190416678163922506244707759690688417590639704632000097639492524716068871198105133480911385957572188096506145617395047333391480097403704888988641455266474352575720968802906860636302958247981412553651689349888932226996957024336426610664783880952002718358220331875396536161389860010011389095342262938059121999117213475683758322879172504547924537698066356410245998449435675812733890348839425527285695783736169284339684135339751558477965086435639028858452906694238081363762279809093491677329635976167085426897534654935117199933636142591821486356716792085709631587416831035909440525032154710113421988409919615252391224304522545237969782433293435474252317864583316113018580795065477647608443527929878557692213948015246243801874719849037131571741737088708496602024859674580698908105890257699193386600683101910432902830627751396925097578201947019050776459567700631011696959511192168626609635001709257174259476857638091760821061573816514594946617551270436012002119599732540847729278673750559207538668509024835960580947068317589741849056354009409507367619495671296706078778619192964452869403457287565456359181787725328769190305869721574378346295776016632620147508697534171040816767508531756236642502262851180357782727947027427269170956454709193518520242337627102270587876084058757637147089849381077721496551461194846347332542995114783214649526863466676653612682152601746717956026827951306209026004211265600629154881878988789503104087902590508603613023921408250250126524441228674189849544760426019039687713777648343937982911750890081905272791230291388960853104831953088861185277862102278330634545692385133282259054908503507433488803848512885507711014965893471562711219009312924715549682395956556806636302846130970436157955916674376207071904250281585230411040970665309660932582379525511772592020695981948070032281751122332079330881260566471624025499355714620207794906402611925740828800717368452727176285881462508063374238633712860942460827112050273264293426822968296517353536065458901407185521299258994752098492277875273023335384459121618986023949341061448922562904374756279683652076030461687370960825936161807572408312989668470467617685241868072038339540611658802628370049286671565551383653195282413420075146460122972455984450015002013874272533757275946375329714441711225616808590427380403192890631381361870565715089018135542047820430755383758736523310701397924735215014796223334633324740789171237109840342044795220983893853483167953462852492289979334760757966522790476132076923888418572264458135877197304412367122939492178746099800057829329294970653024066472960428599078045506136880904918167528537537378142018217891795227393846849890757060370863673113792998114717051619542224805857625999459034414006793857381282083326947359379814690112477113965643076947362391898886345002405987758312182253258318056834790509561632243894586347371913138140657985874376454910616834400430361977317227104999794955860437183153958730377426433118562337813438989009968374934820740371740487130267593008266120423748152837111411120288577182720722447808245331259385515322682188361869926906880247719830861644021962753814230384378021646451050841464879339349592813911873313327021716838241165333217756679641242557354159926350094319622012254676025231747934600658067098099963230327039666458054031326101417409587072562678693782094422489107857423132067472296843253929623009093159851267395161532185673969376971030939640342134903956157898295381513625950166217794030591242219472783381928154912825671455637024904959816991147502944932322884968953790097411953286098207886496160254487937069285553785374380430530531714480654333356186439842576632788078883148859657889436477839697131727965978048280227737058148393369827714980582981287835837250104668982770454095267187220699384517050848549237291620524188369470453183073056974334734975841397096704349128969480411711467107512870453057185487450799467980775080054447186801768797829888471293068844586034111178543718183916337831827608286130989730712636222931592833706415213504843496513803348633912870428490879606477575762070169557983370470344308837119956696214808191616128167621233590646933357595886240013765093015027326692230376283624844876875915504150455490833159960489203421052179979838027314767368987474589269849738260207023913715570725099031848873951228850856817892060262756196900078276552177241430419252145739414415219476188355823454023990028166666072694393607802369534801034377160604904660277655310280028966723786013046463487146007448878497334637650975548811017581287880786500734090200989094811151235160326247302693179972953818662205487970463384201954631875439254610549373231208202360613694696917339530680743386782780143668650923692986422226778968191477475832140798495761671860939495061693199120787845416048072730051436048837879916983411534637775001396784202649446254334403907901013246438170734516339977841513530948426106502596308494810518959904069887839790948312476439082661084912936556303604820701228577527341661566529960781612744148467448857493063612194900441102057321825321359972732362821931013057864262088188149303183743566975617197188862487117522323979438013035293172475928370448600943522277096210561155650476148098271888255733541618107174172137232284171272526752117852097485716253265640870302341488757312776925326817300277073846555692902436185710436526753906900984248437204522946360406949220148457174728049287319381915265957347422716131948609718805153354803417484307860395432386686266671031106342901730977303497612989535203919098640842310410664957220665535830913123276345836148809040681704273198369330924578349365681441680498843062136135078057377647095105450446794835731369651295335871573582518658528645282786505963866726546518432710101385998315186097405754727177448683874641421463529042530561585395780721558752150766544538350575976879509555099971041419838573271967816696869685978004016512360554259312376436501990097830084876489995862693829515026327413841463430161051033851850359699827382604824800347607549397650393376083019007455800089435400449141159463074373003867129148314508065347945456161563503620887101004672731774316902690347894895228165376772362209282141823554827527782521207630141320930445309842382499425395510371176129690170029396011352726699459468881996283324285220226725998976736077290004146853753958968221400040003794217970707576212309606871316746244757041843380459083162581391354864347277684949362993219043034305619804951963748704593086749152606485111400289283545129509616805389576410808589441264326852094475612972828480529264814458800261982321231347653100159577010925863669972598910341255325701869373923401542613508998656137562152982272889489775169406362372116587755152486154421582943451988566504415044433340445638007548815418769661000027070720327786665207381709300747681172512982694303474581772529054704265622167718071867970621334786709179883308223512499404848651454140718427748787042503114960426981148087391053527153962729469482182506459010095967389255417353112615932991734507332849346898648628025042621167849553057035453586972941411315995238940928903632093157112064002247961998906539243579240383285315059732754296753287281403443052635442850007613063005976066735003575768684416497644615506119011796968765260198914834548794315366874971522042570351669514932709951879348009611088758925465749918170848318943698775721973028937897827410986646153953312085675589692865637939624104729239186318540519564297344499514599203098288335903253195497898884120716007713571138880921627800659493327766454793327224459648412950091487398672341492258667246863008716111562076548099529433650546439143560784030292330825200656485416052603365960157814503345469745824703084469781777182098251997149220986793473205372062976797546770966129930023079123115384320752449597670550952088025117608009306192807133452024636562169788245700747138645103015937559148202832113485150438176872958620221175697332921662739477300282394943229279560821579175848471719565520489546819256478866488488010460943226702818955128815468988503020631098876433668396475197092115802740128023747014825965859256854289839807647119634068827186607701771877970940480851120959727960626493591804180869250459090941786379406328600710127060885073037800761587431222971618644656107642322916513031106020411159620650848698956874215716062466259768803966485403313627802353174754893563165210368963435008882020947845004201760007349700658519518284044720211737240944665533316702147190035875934469157133830758631177123745061014480646113753416400630580771879535020244872992619608131566905261973233572286110482867867523824493155132187921374973931776741431731540262567463762173492229638747034209797499242151442810792262123606963662309615374420665933693165073333034577448914695377039601326305112681301007793756028985831045265986699017005104693644492160052946378682564902669499720741191400601376365913202584059318981887139887796113426273328496228433324531527707263987664287019283559640526571594056085448020589325678258396490142123366019385553361866280519180822051224843397428652282389519209117107564683218232483973227096925246248833462211474776166134917405377512626524217560494157740731399337349215671972683125540456937869524997842256224426719354189979478918178103289207646702854548303566716215933063268773201462692536360951246822281618374803749412010012804235103339851468598299378448345115384957335071256726819558064323488601482513892009195721301171207494919671769636064353317544353130903957039204824525469009519942372642729349599949013285537476463832121161695259164975505078768665616620593116036724557412867379551896941081517712595325463430366861190897509822184105579879950632766045302907346741966962271059975043783433284993866962025616703501786040111735070655108732320183531012187031006273625311803671021516211652329616384101499279516427212290880805697835086973212907990849793340732067650047889298219069123491418790602608879310976022295601922128037923797504823121052340720911131549150327250564483260311441568523659623455049192368268074983676879639861726675234869964667803902907442167509456042590900669606536102660502126500219366564682632357947935513709375674695138489182599991979684496114265454526095622697010068970154060430357038081571662410444974335129716579104753936985343834753121139315486000496426019258197252142117048450319961383759589084627409037746065678494588242180574789177378076074689607134340895677052291534923374304636257211088791160162773714828926102843928247691551298888137981212834045734635428803547998517121387174004686300898746562347935265304249271299733971459332295052291543368731004824424562474007200223058571692284306819606786053331914131313767319210702098226417269320921977356016921931285953202813798851434168843602725515976795038001530473195850526455212586008013280502825575250308745659452368758892932583481799121909731238618983620238541574110546299127758322471512143996314679953308489205361824054132699061852799395605127637217082582959119057346394261441820714527898749197944847010938317839119631479315498053959853496600412540562026531672879238893395743416043872544124607949406628604258117720450294467091012858091062127376751870179725443923606831129734216802589532846532606782180140790388384081973911298523387914634065646471918940264892116275145893738887015262748057516919015423372176979786047957214586030046802859623247269028242520915117239520211074160225670442141697262450689296335061860792702401218555227545113957906197717038013512845975061855711399183652379128148742902485053178315153364591480733423297036635472422782341802433220417665570496176194736977890696686899643377515602780763198146057277836093320340168695535036181982774129267086078545129654962137123414338689928580741962241582114490191035866923308301097159506649243097240670350152508727734926988414209262101280039181946244348097741150336437218610895485670707753381538527867645590542878652880890889624181161546877548266319640345786418558396573968142941229218948689780358954225272719613326491153353271173785197790375046205023860089790410700877824994741286323331768505139342306270894611909605300110023175031739056883258816274710549098739691535569005917651314812600877434943767683640196208850890722826766129011315275248764364418343634622646092354190333115657318890179654147426471233736033289543736433528791269728558320472512485353633891494246269825172289901300060863945605975789498111077452345090851925566025681080941419745931306258647102031671634489528482228151724428733317421968812409871619030079106444914516804110904731747089518870674750884926045709433788061985464892717506096408213344054336828705901441115999845838027818880163249601923671613766593955704779354279917413864365377654042826685007063180986738456504873095800364607792342250403875817821160460529974791834999661031460136910510106287371755859921639534684133572398853747555612866010205698583218025960563031525861450544547848570326436806880356779944403306494586083805686988270609338891263436734553992106188692566883104966962426064167045859156390209946358654724091597860583381246909129928824963735264827895305669497404013082700052682498318037600535775147212831808517817641685892076652631969735841931353723626549996950481972932387339763040940320455068894708390605384195939548242409774691883578228134766282737345130838262096568594100291646809432860744774069454359255393995489507620711609885368553279117350082111531352213066185275782339283062481760552577742754773817073545750787117087758800634982835282589106461911690391377293388664420709764474229747085570635617239049297059989643663497500385609828647341056041996948632179546135346802627251648964991569057334046910833518146293600250689202244027451661827479656470224218741348948709591955181826149220155226519429962870090382147844175165350076075566312735713394279336215550803117420587763955407798211990788867245591106979508737877317186721919384000393689959058785968503546841684418408641394329442411578457483608016367484353385573549023626460113064223485120771461171635213839693674140302532256872598547724330035221952253529809786550162361304816439302420759179585826724795798585341269662497565049357368115983079361408379769846945494509106394703354318732037457846272483031645196709384574776772679390246714273635042035865594566745782073283947242801235919959873054521893454044569865196724437361998852105951518522041722656103844085439025867827652560134722263000362807584589181230591574043451220737774233071860857713720623436532814432263519061092428806450792401770375729227638050225099081743171428092117211452002511655242121885429652319009342945611367887466215844656805099749691681992011768830185674902720751217550449196719861496410448069759304682982390131991320793818359640038393471338287880718749153586871682019609746979953594395543057098586312355122630560076942555688863513229639382331204147000643591844452137582689715903094052626566698643807053857159353362820304267729610331054430276741538029668636556287527790212804595452125506064503934914798834572318496586754615580449474086768016043914179274355742131920799156683788913579663856679860985545576381353823040258354070637383882438402398190685307658905203586165831674821256208431103336048938583205329646039927547555835852631865689710126463854860708139625100162936595748512718906205339933469623127613175001721981765459911039807395880997194744780752145575916749774560616718840094804274846002752743554963136923953486749872622275950316310410015657344349456701842162458144134861908705320044519169432666752428150926165719009900455049283692595992372048818758148051457334246858477950162871074363177161899166788214998032338889741211951762653945385770369677840002846077053708289538171599516439427052159357241602939161928964338440790580376351795296767636876883079010483309554797904687910532273684135730849921024421003297945678841164694365967912065012310421248865204026386346799515136663654704923442718194024181912092636798421347768973767161277830308232396756680568098597939782541254100374257507242754931784975338995429050642806586355262888321489335361265101664928580640437239374320528239590588033115520440110229641941979322171496384794957739830915430726923641418083403101957758948660490154002181586405283947451450799938376731686628165741577555369746689480991892404973414538839722030041550937673878549735811775564641266586732341134476857777951362726352437994397749424186754908142947952727893905979181572474245506533930500715433923494120538908144729556714341197992614565525086555981013787329063694149453805565324534224705579759375273473832986274855886303456953838670878015258472941459973376670314959191995815170990252368304622149906710053503814380152702350261960582512532164802200029958135700886888545099317703527167133754220504120778271064684838401991547738000862913542041683344349283214373778896142668172932459412432729063744847587472624337973620894013541816369382323226258641651964185544820871914212998926282665630794837630528045102986742353202455466409691299901065395801785865249247335665273234126267294287723842941096784951932970646103491883883374678702825197100857136531804599238868944460036969024877857439726504436242721794703525947451858327330154800089548207695745949915368309902092672751061545283300710738279731562079595622878149648404160605574912027186965859152334338253850142425135894384625204082613470213270561222463596677629057178508888160571786356488741567425018589263604100211865376202180706957286377407134556149172706812900546012129639604101052875983868513668998116125730443517238762087254054771700681876780931721152496438519040966990550680242878621827400925419530590986947261997232537930505264476449471643024797774666324053346968562298418062571374899572723750865811112523057983997155827144665209512544013162963455054477246163418067878165350105395927005363055230501461351079926793463579808310576634425327129904113638956170771200450021625911239490165586121504153129867069143967941896551149665990313815333367988512557147025715960398559554921695241102204167514719791047287955768579173902031865975353259106007514823812760373296407468514258912637065571653152451549817401223549932859180588337018352598020325398164069630209494234805465552502906656696985871323113561726741826429997984131902514788131369177903441281771674486122172426225113342158934396228097130430842819436802526314223719844976982692140799788833032884805276343043505543705543359134334729774023939398391137392746887971189117188746510373043107613087191695544049109173748264083102881104248639889887291134191237831228823246334262790577751585648633748851322189057704207788294770195777716686740832474797802692180662334326415550263013386858056890537718257029611350374352610984513817060892939355109263738263518925259414284085144998599497337079342524528015048517292943740861145027142004758662359822505471743777951387493250956461994104086414511329687455766647297823059018431710320280220929810566196715646691028730490298797871533926457454599722636759545577993048262907662886632119144228067547500390185124711439783150281480746288977524591727957621138207352059796746941222655481324503865057250754861495851486586225001522884493000031782641336110445213090276560774426050633153466182356406328157602381020220313428407913209479149052753676953811885046584412324466698988746084417983005097238992675789388615711885448626884694895525708168739882641441745538552168858359497952892811633392082747703452004093220863995384967583451337891275290927479850773606829827302280279751215340420188426450961818783944305791708983437431842941947114285463869124469782950187400556492552872361934093694422229288284175426854779817188386453380771003737203155167298938822726869994227585645541957647210381258869240799907626504422229518454603763863020254356382207629189921175498901683121849950026457809499974277375568550204177268884835734732035536657160886457219720227212252368615844877419931005166696288422872336677463151387333367657408180989668377535707533435737450830585568775591030521389626860879718409473418965639639105381869685447523329264836963573472984394495255181550608448812336159188079099560088499443589153505587072486607234540905971516950616325396836625426833874069528904452299635427883473027050353813925294163846074249233831203324973194883524056469730958133067428023696294706679185482397595354785212481466670702201806815023024566078830473691701268296460923801865570274829859296995709804117139099150040919806775311524150682166504155798741226817244834589333026073786605948091139545532492506065645385882458830102218030435710406026610156106110215619331968072945508141080272162437670580966434313568625286503105740724162204268817302382321588706968902605065699455996123353469481192182384118967947401875969220084280882266729684594116318721949800286426491850314570825217582315310190846190860069706917943469751166921307201229857529539805328711260664869316713763899056947735117242942867092879821319896508725185573491753020771288689239250590950418064407975306872085766659303509611445895058750191413479216407161686133374145622812189095020062130747676767297536736434261168778088357432727126401355785723712567037982540085772857396919559922926079022477783797148499059066708552797138663129779087538290968313069136058061011163193568616286244729018705091071684078498416621708647359237753022970523705906707816817456648690313508630672014330900664209549444957475725778108523756250053684638577511776943663238948269603694375701848874034333972186355709448511773871069816526954394112070773968104778348253656264798233463237822082528165022650172480240809398888814816993953171220937305614906973032620777790192634244235622125747968125388736663739133241718606156785985854635331550567274793336386410024631812377584438916073601030701451845159628220702275364927160330335431935343242405619030797859925691084304103031511311767591899510611450140420964862213170679645727552597003429128848628473436080214948578675785340711370945517446385373286787197843358599552478745030840774605449242616177974170956243182040209470952271061858739149679082411163937112235049938063323430036912363234606084061603404617808302564614364346093437512549606960762857678644311956951717233485756433959705089065357010893286460739439990657552520312727202306598231678966434415208086175177098849374824809368848493628079642341294122431560876442947974393971567430546512132942691050421235465377285220416139224502333285740406729034653724042128328840551753196449910283320924136451920245173427387354797271822011964484771143600024763696216443562474196415441252422216545213633943178628507128349256304945035657063331184036051388272581461516738695840223179477300119596588747961399996363808755914868428989324907185080297679310478046760900445068426098804090031501077397858186390503585848924892489410976399007366425824348590079237699320426211482476669089324332610950153762555509663785068361224580095163443353286606950514488840621701898948790806653389517694005415020344690319481190391380222079712009991381252032926013206291811780347756129995201139613286630576029593657216024618892668030055087384571069597377848878636266502049877133059833233700523541189925593428776986747388274170709841267346468526427988904056808573376127960167954302149134797193285692473691840567429290836393981067184601995622322082561068156161013460452475384225531802860252643662777815394506675331273678888560028830248640662411258754826202356733437435631842066223062245364655648705036662902784796684406764402358414980129049655489849036010181445066316867944857175918903012923419436276814067360504676079114812999933756418206080634011366018791906790890372529162355938558921804099828566980115021904387486274458920041818335020562199728769610189177800082213555701574911941745143011783064428297633638909009546281429461752774537859631552239729117437255316909355215811671399152743105508780381811539061388401816880425619776964265527974984811558457652094305864243282709801635953885755987996200893050629635721132275683550695782865734541464080759430638581826388489240934281472237958167739146458360898693887746486726619080920267889844748303996422091012469927610585543613712303828735800474016175202359179357797517149209672213844385608628900912962323811609595021194474067419622714113229436246999466085360190531955061435989212864317370515616374425412234100983880633757236351516023415570364719768919301171952021226155660631430803848745822339838882946777427795308985829721257405278544613807945315343360899480579285449047140273597843076208251234024837025774230763480180369626782310131436701299303392589266174053027877653849295686789351862856531961700675116481590698883536105596400039154677178505265416619692614010423842066221110682433730688415361870217450488823025269369550813888891701364793906588625841485300558631550454811441257548714749651263435284923617956149857123389940390391826783223741228454834360694797922342822469019672066127443835411009631324403999350967894144529905453027956423128690439857582199587786226613524844826509228015805412639642084539339956733870776307564040723976783366106977625646811860980213311966575682073421726320798585875432564916350588860366736935730229841614911762403320373546744754051385208145330995730339737521133673227564241275019406074571867532700565006897686398136175472700137708891420084007218371091199407134436765769301136941746699011432915973819306639153862957186647358724379492511874418535290058953376947882877742687970906896470159265263655688277632925237187820433805160936715710033759188513695442902348728682360269691887766170190270694863346641715067050923125605995527476598979144650836330025616305576971044231597962834399620165863754303415434656775672764560967218447491126911053407409085455279463917878937782168741757762748608046231795279744267911840844607090683760534323154339047015386562492090748476603592880471537924469279573897702020952129701016887447681278504995262744247195548492931507838604272071886621899670690405259726593911790645991938213914165934555103233273176523088274527863460913478805965652696078162282775051291133394746716057481797994243197661283685821452300649195064449231287769006298697527066703504755038180107391637683235204876804096388866059797794783474718788441774491807905870473135670715458110174549592548028036587605309962993503319294678182617430840110556149170716547884306294342262242452390730875905994771973668575740599023569459334251478369828850448072138151338224395005242116196011365292007423530010844194247493218915149439060782791339057336040424926261595277886222165946435389453614242040878856224735057369076913464290296221183480781689536359687012588582036774383899424378481730086413533254859507132993575427929976113822009722681808233298095240564429463747859546623267321125829146696414105862081649230139044697021334123531919987592536251591466178144224973145892858414588934794530527052578776408664615941853629568326095791228397169239505294521881239943916825534859719075476777352292143105912197843558708602638102219283696604931051694920238460394826996483689117744331410658627823687012566551137375489454897529332678928403620054121268208298023557326851741174913918921733617851493748239471143131031701843141513007471032190868865151363104270217234333884606871064159434201738237010825179104711947647782319503561578505869477430698358901255792485795019284392589492992918336635513714324139403287825863267157245923030121063315708481364263009532403289479902899063048872784712689521695667219349904889621818732690175659349800613922169994044460207792307633668994711270847966173037578099321982640127184048894284253123287223325038612739649202061673841499096123389015476248552288112436352274715379949199932704373462802722652864654230805074438596940758862257558264980156789187614867951367392284033004577876237296532854359842992794741557117218541824647126902259741096568790047359555525584866932365038716882318527099833669927158793377669817220567737199030795147341253116448251038258454393649744988974336785484628340392467733143872794989402421280906287404331082163775093547332748032303027453256076357615132660181446113156271940398524017806772631469769842641214178522615080238396157353765033029795772427008247319513769637661621244443646372389781607991355635335674090841072563291804991279158070611302510566951669504444502049576408907023876951646043975731983673357486621692585279502932259526996925124374535067790355239266885581016383871119244065350826180383308951053131628865258731715734120252763570779857578892782735622617572409175047593113016823695091408383666128735366241006760328727848375513846868496183141432272362293855440655459883713034735369337448108992391508965680841957238494099424104861747705362562050863347486455740474691821593040173336362082998376898048462498878752712054752850982362171342629933443787204149037003394491738022096944276668929250518608182565085349645031396708146438032662130045233884423515095501897414705372083605050619364254277728046860951907513287339544467248094460089098455825694883266668267304363406080531164772324710202867064311764655019362332135501191703477780216900158740470218406437472336523033492659503243842315183640865368236184724090766564605690449989141987374291738292291546648235988571977769477623491502478525409739848584033393868944016964834720336717252554734291991075538798167821096562266481859901655179360968294837038243668434074796695202636195705568720165132119474411502920928534180606418488241020434580244950383914066595465682118951921009341717365774527598601975800158392585645021329725449690187930726415965417849876335752079053082188652475621892464493411725711745953917399497527070783987354528140696558000430906675744368480466804866693593912639274011900225589746871812898929067008124897608981198366353446783798451631622441659707016177346803381627973464580281765537669160051605577340448493928676842884322573050036790363483456959773428407630816333011662240561368386282862204804491253708585412069181657800904532625484467448733868059648922987342799744649928059103014820636462968644339135583614192883148980198836981853298999204454528848361383929216051166031873647722477893638379645412125287710511143938301047260516418674857973649377450539320043809369549097138079224409966314866393485161172586724929941085689280459445974256716936544995890347279928801215799078852347637293689990926690073725614699417441812289992183009461211147569456864141006479809723030822162487722455040620636741219026530519549509038829024175576810910315460721585881012100830540554905661327618082371863214065266518669455066875337558595369002516116072360044026452900427190520674431274494454907974735918882372093077587728391350032878424210268218885039513269734806938388069824366157898465779747777284525753288649336368359742831293913798241577444236636936188721450673030513415461346383064790587434462828669398900896648802082985263030797132247234907996449307491853865366095481163347722600955164256615804541362343006416316682107842265285242350215627857542625707857454987725475706242232244805878299369989993091286994393511758084586381574064824120251147477844790037402555751372730268250037593848357865232975191175265805847383115653391773320816005468613796997438916200280816812369247924748373259495844142437647641532609955276553522393687212431190198956583557691510043172462789144072625299926845433401977577451528691358530597979472063450081604879504658804140918923741359470030251808103862693871504387138103349381021329221466636504439647922530490541172342829624725050014697300863979999894400947234020440146375084551771507546529146273349681219190957399894560021323954110314788106708395039137885489171404236100387735986889102344215885233034363630713458034805494411440576293443450657976814099904872663183976533102048762075896544771892763134146778257497616282963924450552006498343510794020828743046365320331881058343296709926872078745870430876527130554844183138883189763303180821385311923918337821551685643898974749240375581742497253643489968312840430471873178898664522058857250793016453492045688363359460794599680655815977796650045455226596800181178166045129910660958369867000443004283949083483732534314195679242547803770171752832440581589481590333292693467302842759559743430594012931911248759810526331408241984191977966754466574000764132371323450490431653925567472700532490264911099035410553637881856697547218519542749102346099554422968594660547652616592618594510596638973720850419820229174669934710408195779705312496636867431129407873143699112168188905522360959694501957375662526490464631925001878606674250490680312921337984182603284843928297546167125874856480534029755147388842686892080679770270977945322363798912759916536813532982128016701308827590004720546961372272420623139810895473103884109106223709579639334240647064345978413831916811400521635003360512162552643055368758978570722259380290678009217761390764730559074351549509440692202320107334179720036286656708532740534360584274742668391301365491091214878182638384662408210194641524995288167518091936635770488339928100716026453934000409622755412536321646270822726769079280532263033878407383775894778691736085932285060633305129742548769925282461923222134750414163106807179419909962026745508657589897119842795661395743573686667525923549626788854402445467915855963135344227567764297962990265057775430123753911108668622429154272436938815637052331048209077254517691772376806235136520984380689717205929090681617362661013965549939462533052168188893559372595822706916853633329063562019228484173892552294236158264439646754208061373070514313029592063795629700021590972204137502677707316518027669964306100574233953467214705297144873571146461998095001649058692985735405543932941756650166481738539284083063432545227064686811278404944871043859462755951840913327954528524912489900141645669458223117712423359067778091058080810624525119093857672106138889347134299180349986472684572997643984882592272725167147016010408216049636346452490264615694024045999867877054602528277449772298879042329132267821415433839312844342577143401477237892873570823931044711415183507452050963397033136058125680215741487338222929727487082119241464915613984645435317459334553999429164482471943485730602553664554699568666338989701236808558375501615305813323862773263522061183654410971925715442591368651900455461099359301547884263361263963026658848932009025521074688086053070429739070594401005190082151127158375138723843611458118889196533012926078638050907564533755507546386084923621458397694433958126060304071343585234007011538573070998250186257107472565926881997296298434640507518879956039591012818137127718811325046779899088661705540597014376013731639940359982264257194378305362067688543409477134456284539663008264590694295296605997027188116163270990031893123425639555733331461494670439820572141127731352526768867289136411190838880145389728316903335103048128572421113111886330106363041618063245456299846831114531705602521454930212852377844275928627192874927798977734669664856094247169776313645519328655330838718396226097212049764927469055649093079659099077112773290458815327016122073039646158306391636006695617781059847732243518603092708022677858927100154202331614855373856076622257861910980108052684217530271974738302503414026376748934475298593687259731511688079354242104446734029830161680304691630223644590396125103060533445592087263309064020116314875244975509138526556576625665488366300484534171134615499199278559848015932689670543971701880361223396742011419330829948401244520199368708757344624440892944954288525605086922127320805405553780622132350037527066199731486715122672693833091783019534107646480630805863447254592185093940442173235899110993498171991197069035803198050477010818768601351154232849561298627217081038833423813044330594130074521654369948917546799336305126355480385536120111450186781325915575222919976727893240961649151475346428316058847977781392651865763535791015044353950049474756169881765164490700693665546482929631187728838602827610311074723037828717330961676050722405917724824841220590966175862885998860556960890944329651104824243654294762137794843178262335479624732974564157798738401496354960966089879137497360029206080763065012557545231365763871095291808239628679774112288545032796637973690767971690050490653630672813379022766956212622663128083420843490712976555958993561127548840840168943007294701861164949792556784239038797823053947995302836231694349026785285899342292204134964601205495957742471170563154912557463449541864287585910578858044237219013591155033680961024070770487918318220238988036883725451621154466853708947242119242320871656457152098435948161671058652597041995892965348002222120657721614907297467338444922542112843702106874821945740976276885322277937337835386650261201655642299638274902937089274977460747331074143623756848642683633676753829658155161810202713929635013333448088975878969492244246794859618932620615915131213243564939092637294635714101554588007009532541245825150042988348322530279898390632247922547322189576055815173461408193820302913570940513411699352923068390402312147731167253340096019275563125725610952734014400682879672273548776823918608426434481675887471327530680808893254616538516069148180684231407030851825730459233342022998615888853116861304385246135339041115889825714231125809239972088855147164260221954648742106514404055363015992032317786741323825557879816979556830665360703639801239162734282835415811942066423620894992727766302398466638946475238420805841435955637120927372393254065449307989527080836403255252837971473935914997429352852405473152079624183061533682899217513775144998979897432254831507668604363181802148687130366073235027962822572101280188030938289583717367447895804918904756748824794518371217403204159609968125424670379733557624046592309171244403690978031326443814186862972696390409018659256982111496469580562035640983798698263500226227484986434975267832954719749643420874947366649054840901726848125282106556323675267509611643397603696012374381217539291361660153618824986580977685676403240444510532306586450927151494476337954474045668606428569957772566114813798785961047323710007520964346090469788967867324544382427974413580778901162335946691035199277172557782299997517469209663403438636340895538710527582133947978970227378072125476321730296993742851420500172029626298125755962889469141518683211483134915697722024010528863137778793142361556508673712360047315252701739617871177620131509496555959252443543693427204437572112558986921959295014405640010901322053203433188914876721665757057884878757938746843087083298477611964436173464685691353718781792697460215875762310079138621608978345262547978430834293866619689932684730588002620417363298188611441267011089032825238336344879663878896359029766013535041474014563962210367330114105717944412565917690328585532395801297526706885847992325896551899011730729285964644353296494614100216181358388978811513774900670126497885881615284262434962511775295636261338461688618775466464981162267075444062032620164754955335585742639322392821080758055646596770964528553489680913514059933045025772640306092743017713863345824920728254006072782273472352886670343916965013572105635852717670870237552065190848068698341849081754076283948298610876611690665747220887245476199622493548119700955018669934606681328081019618644612660745098841758977553197494853144871940851177234040939296133706306419328079310042773630564161285803614341421226001762047841877747471023194315146614345023564629330584490592995432801553532499206180421258304586604492231384195310639955282403988303739890255496413463288276513979369655864847365853820703279430439615723505816041125714338233118386731941792484460532443298344915666203217054712610478085734397004613592528894283714313035744403376355806652231466784483692791850852778133681497994331321948375785069642419901256928323732266112568105944151186476536492294855955098309082627002865523297227585726932886124742603480179990918319687602179850073183850876063933558447148668396695885193916145474257615432076551968870591371633687697697251234587658164429256275054507102273705174020254180357385308105570909210662124119297821915197016448762353506242144927770781429691860388984815125468735202257320553555013780702996697022613344078611069553904692516097394841977564599546781564010765379615235858636236134138924646904970262230395235403811080785968577744456705653121071876163798710650004857877160719897098727293743139288270589880969015047475633422492207968876063440021264405133753303396255113123293351505187522809686704352701942749728166044083172443882687540183940877883521620881379820277877320607401594258594350671858687369216468484464973021520958866932799451902604543890107734827732858421486143854103938175389409832868453490359374970600639916671866804235417213418851822048370897261037797823549943467398094233654128853422535654300777242943716077902983640914442713333035680023620321326329071784985158659638110518377383460226178915367901023540325100018149500520582860675234453278177674399902090438987728565367755972608870704033678308793663272512380740848788547127152374068554759552071004750390947744858101723660743448957705152077104167780470092988026119728134687182999812294113047529218253811634802322691746449916732727861247860772805973517218286876732733177738781132867751902870866161277706135786210357192210631715904865300181019739519846440766359806490940678906212018308465858824138178812701993235908825286568975620090101284244794572619212317823873981929650214685098471758598672697653119914252582854199263448375464968085545526924557417778658641912473817960602791902703678285780385609823069749432665132670864004774918292517619845074963511510756721243314992625142567409002014895715154891697588621929283628348640415086187332035731722921428750766260832864889701374170680991231833685339335699578273916936800224721813372008380098137242066217334131911237747736335712416597081454656478181097043768192215740633693944921758784645607632024954092163376472487706532339982800526865413354499199042358551763931086675022667905078022550169527734221172423364591616670749155346266885258822702958317555662892051497956524005901549292112025680791449667817799482068684888058782612991817527881461461511984493444914106087178028776228041108877900496334972969995774919054989421828386738625944076494288048285387894311925508421777287970757482622102765037046839085360797167799232213397042589378152595178778392243141267835271019519003935707512216413448355014832800024758034390589909345535867056191347278109189635007340401028121782567635711411866659816130842156173792901001942129420513668562271739112876040268055121334950096460020354991252495541906383288882951733812605634155217776912902178865302817274046525590245141990069805923962329161628369508468120444894653422489162681202460815310396278002568354415273170433331859295346083666883742106751805641750740672094606883456126594340577760416866328759241466998403464454319010777600355806134513636260071571371131937785803359512585032883983740764401723210353585730425528236152984700201400012203888723018537909802291678095170500130350501922244720683518170910455130383914233828481907041190546616287793463602322978807089139622567060352223586042497020402588046913789612498897914669323389279936531033341300606991615594730736270951997019947945730224980355193482090440506385462444740111669566988206086880567562521128939039532276666641440033697194491815426970563483129048335724182879852171277588347181947423837439770908597340407685170765686141520528016523343648866122680487336510168342022553460348687751876323659485971873054086926979625185914778524689474439505466717518689358778453977864521863262471221361655343329667061216898630065757870139933213936593855639069227065203086661467701337599706202377025049626031540617308070385242948159513710360437717010155495723042044682188969398945293722740061880926811316528351798154264158881647235387271650562222007965503136423409587658728292316010178511589709397551981220107003471027961138525043577757589829851101082697414869861343783839671049959003980272299844963613529478290791013806846748437078537907237144361087953798167648086600929970663695301855942061801983642693048435199375236452171583773019925356525861170860176216738914904933082196319841612326589486741382516328805793462399513680402641505198647801587152690528983820294876867572378706796238691885749510342463672816607392712783984484983037664460327322177643797861368542239628131201867335593650407453893272948290213033655091277287665245301698070847506121252970492190845297378502569188591449328703026813445563911839361013419847676107609473589295325570162541218623719259250573325158785983215891704836922514539880841195066314141215389693484322268742013256354354910199776828636877894618602461197512538770262145975038357357827391688610360113841188880666847804787214012359296177245610902090510523507991432220102111510127340417731119526551289745128303197246774861052247966888748838204545527766716054909693907316369516330162219777406683880874982828163957375208763902590689045064560508792579231508802080319106818471930871689357434468184803021974914117806815716183585574982139889163502536487212676770646568476862085869198940883892769662609597903146124453880455400456195651500194745522664218894183923976081418925756829336884301106133587946670803321796444810915055062623993541977646099519289886303109517202120023146573196330163015642152899371725280692785306602034370133305870166570545900861526549726870422971965499986537001249732863473564109991020035871488376467515271148811541184145489363384084867261726718643676593574015132635274670926849380988859088437323247449006828021006847943259064517858834798478967977033061405141955024625886834657414116638527984573424481425921539165299655611221187951013719650644512494326090665028696763070265637205164984343319730194490444051445573953317912159787804639568952794369182786541722713959871062569157080273704163232569339740471409973850379430894624819795440146943195001467863690889160271988080276268225261264628660229842213533584912682022398385154435818638032075047832247803301023497409712177457104496786347473497586719237975945734140194249497710252197376448240417002154796161961079166459070816562551035295653037539973013876371344768900558645937222980949271965806915396702316340139597427673216266866766010877714757685306330290551867313141405072880157020744667017959602187311352860654574795557769770373907977488400885789292791039115552238978797224792202767542893907118036759826527853471704837739241604104868289314756564049931173729010851525904064905535066847301415730064891230993257962731352714848909160736873505250870674589634454902875263844042660221917673126464553957875416498869051620039115123269377686907203128780618891516628472289736794611517977082524555112993406393770886541468038069886313642667906663922235361022160946220414551330830111249953009569283279538217227520601865817807429910072348751829301595992041993260277797218872752858466429008748825952460654764467143215559285977113982023941500793698632806867541899092767816066176426944602175261659377183693938135956480175802276679845963908285074741404589396948190806703515862669181509269481334485326005774465309913548693238668409116882577028804800487269049560357715471975504460889853004832486164129372534488987396966047310828563776720279665171689252412475960000790345276339629239671169933913490342511852850495505552332717088037170486504342386493239516480832843563617566102959214659871163630864631092018474469155716832126347690967103015493731169200570014449477856572505970259702560602981468414468522426696689635727755901288304298089344460344462156073728186503583668818760093952264987972019609574964564282521408221605647441670603692718382413075095066484516421076678560915150630698444061663194298830605517058754207838006018282586951028957479026340741573596131103110244877956487841772175866517252706484582512379392801113037286794748040144182002460964588460051353190251791248217396272536375625832788117778799175979387251755846739429899659117405524035343698793874181328304723068900730191473144971606476896350196955000191891866284305021750487150904622227102581552868578798038369249065980923595068970730230355105855064544744979913535290546301940617520640891019153440373608157997297979156605163368736157614132704860351711151714211897080185578037799642492921164092312895113646161995093499476976379104279797921923202751747572998735837359508580656730973235616895156026914974952949804596691165210854686465048528671793818697451806537529892998250382069515332733512709395740803478891646181116485416140367858544960793634722219811706211119412096600070420964171323772616147385955302888892096962165936266891755140310175634929688256928781682247610608437901178428419153707777548588892136191268077620183626898727960582325007104397022660763784246693280857826052900664522220768637898365307073071057436367645982682965427553241497338457190053217545857768917258300479148516707047807091097105855559095028280557224129008499139086489379478108243829077914533283871884195271332444221498597026026536801820883414446274656025353447440671750430664578157776946929566251446236047327896483482797019785859414761783437852862042446842054440780263757136589244106900721008035958744823390207540692948754798726374281583992440345639302247494087169796702492522144265427220122613696610218727854286663467340950047139139803590486560528547972655721529851080333728357225342635412000929089311754439753825596811295706038212591220211519960603260386885905123423499363564425491438581668725928436880496273214350059987522904654421601083261902558654258905786033955583175335458401735238789957255492629428435378410962646608728798941711186178999566146321916617022900324450976163435282580310680397478107302910434909281776734197409090408818255037219620390088793648386277051806475179567501131595111789544674899693621157928864979157048904572997261093349529842927059992115206389464857258838787552613938220532342178447442735329120141639141932975978154622578956907182908725512528168990698005685659068481881504259398984389243884597130204674665131192876765095710303498877020229354101885044778227165436623638124412698710026282180459308231242895562330903295406450507946460928147318585006844360075081431571361158695175724255857056173277224488420213233750169136032522592421862140198011280642633831179162241784580523810636849796290075617339951271577241301551649119613859955288568615217612336248402212704447757664822572024256303880357153248555577962546176898457552448466313242964584226614044904291469579725919200420313679348419842563132539004446660480032948220952845579377006541008660149127034016386581801581492860242053060631101239130623159466302801128066408397631932509391988550341102744976286574618898362551421570364619121028818093294922212519240221844022965599977716829811104105678001512690680883503382103481621977009079854556093064185577557999109337588716237967897273186569240981089303184342439245636630013592867009987627873513444256090732848173440819227314692065762796034029238956953325627014848222434571787552327972127013532597273634229579885076058767924981144336018064695845926682461401111345569547168048097815252425663113907278233640705852999014104810036767217661619837482946820775287578999000953601635679061537794428347311518727266679020898339752174139946236621853548895757922361762986944853440478182977505598704887872137697313568461965492496683509134120443629512105171180087264116065268502699750086177022852861442605373730246764146724842867252404243644599686828478172169900702857689988474111448608232325951769167183525326440021880483831441516897931359578858358607156561119172371835274797143943196913675644159589211030044874614269197255997720743735550713032626091935707585203901839986799598612792872648985371728205238638073023853145117359868073241056229704807555080686343041402566304274809616966647202977698640755426145567852256948461228997019581150670493944047666290065511466175208916554036885329856119222482582478182010546816587978237575704708083577940880480935686257104094696663510320159230017283798716809127310327934551573204620947891187602331316397055865551438129155830079906224290756763446511582050012362163926087240084720209229293064571265255295308712409040988321286793868716505809707045868303764190244249225385309431294119096285583653889996405256051864045673497138801541896116988571256572807981049376907039661283842437121852526780822992399064673018933335555465046800260979749850026375720045059259343943882739908403379543921560692953353849362876483260651478747257884283125770057847618930406913949357604185046451010386680463073535749846245734741286922369494969452318901269095977552909369521767823687276052176853805113184546179015436447138706510122681342409113277925293227531411044076479557258729581359760591361879796929956790684393661502256480590380415703365592362032349188421080474205528425248389750664666960774674885123106382563257046412894972551637027104582274166233344450081975153128700991425102068959203830686684375256319311671290339182240897457686300223871664098775587179590158021383071487128649704206000644520093259333581610371098273004167487523762760153574806170283504914572561551822217216730683139050754650504359546214536813230494893447628792553210503284942510512024506643568362165030232754541253818684931667296333086385960501000909462978373672074880400814146663638676586267551035091268112086444314932094867539012141732076213346243666211238915026233898969179964412245385276301480188912560939789802992308270984016167424099090998365735570838387180614135936959656831259117149196174625494234986654468460346888454941337831584387258617690225221075981666175687941323547522752320128885072672504184714875679754089055648286834192909657513324509067126474080887541632150668281789738172553491993099067892875628300270201500336558186210102654314906335056226462815314208086936366199140165394128366606971044941351940277804074187565544515293186542608273715858424024710293676905098687917911305221182502925328784923284124371661715177673848665269940852495318790659171386714388127252780256794578564990479208545431814138862660234923820995233587251430607781059559600099757301661293752223961882568647348016779637351174213047262019581730351571823373024738734521624599967169695438509213205137981207047609775749678928653725677930973895009340088404542355337116757932250347792082350441679993092814370973661305841151805772559684069950521314127681981330893018184382929227078117359179778943254860503658353693305034729744445617182524957492377869557351736979866217795137042961848793277510211298827514788975527550807722896976581331839855605489976658382513942724116682652763777289946279185569491416822600899121750163387694617209045931805017969199262568459714097358811250886025243690648036298527828676606728503783605183930317195823995976723904080415215785543630047810355506606364650798654486424450142350816783727372626386058229823937159133680823399675324142643775969582617907936969360136468966448057200201491956505110646640038305120927003436182972224867371827934127388439210639517110419164527869686235705616115533385742645958381215200325151133986014381898673319442517219481070333782890102495425665324585485021731132074966584321630254233117370570306304857571289428540025951254540011102103504533164708582547895388750592892235951560452313943537049845037303822945706317794275692992574770303673713482146976935509214224689681951290790566443870118645184579072874997048656556217043973730502566220171945597575219571527398302827332057853178337318682765879909294312772204717880213085532390387690945189436010958952844122359542132693503259840324424799437178606672267393236103818544185775972057939151411571940153410712704936758288789145101766940584363001054388546535261550596397682383670982891678320733524717554327100575278082300813862365569538404616926468110096779054796394633940921217080042270029113934107534882203288308778066808028109616756791311746673517273148263287686165115057793288758144623390947690014623471991598253860126245562988621912584218664756271790771029298404657307424362498766464265620210725291669242490593333220786778724462532635655249174636362325218562356722587041589558492074010970574196995976470771382042943297233545211049648329763703681804551653845596088617789080652293092600084025718563276158961141277086508229210492854224562204393000100371267157670251546916211473227839685459256834211730360575429844538455893296121859273515262210310291925174422304016134268954596856731724524273004565836197689704191234707619318239486492118794860773297488472177646479732228509837524499910003820460602716143930591752934775592322953552076567933531223676701252920306810738464204681900315081110986695520844393503715954626615215620041429139719148980663236583883780245009310106522232420315627367654460412735720364499663989752593337899827390643923151370940620433730695849115757765161300412821390693724127022453373079761985352671067925717436382981125097529812423371606181531105992639382650641279876539213000447439914134513257199005244357892413815171812866782458711487840408923092716561362012017761426447905808449591471620518123448063912001676464585272190668038645581023829282309192734023136197391013383457497361668795690017833379077483377669017558227249268724692499081859931147493030454067226079871712187859224045580863834668520696330400781915320850246085835596336427693523725177922310678854102528696653415846417412632936370746799040139979885432065435337142177637288848127003405835256557802294110407846590869373826649629220608981761412532194176721238482537721381183270436780391403522256016870786106681427327994168821598774426247206733917478744436976752085665777683161566068228202489945143093377870754270994493125488275656401344981435245696241584093588224622772242585432763957520924691988286219696331000822922137437176193070846278439685736854439335807238925262045650814736291997930713099852994776077211755811711401788886407882716873049232029988305701929509980294767102811157650159243242386206586758855452178743992081591638624000916210077117273709901457467441950643784013539382762393095117332951554521839416309654639740014959625573432381870411271569759788510185597295907592532461529416468087842011719531304735475668265048390476486203150007086801755917575917585587970760636185194775601027024122731503337779645894364678395351829784249133904495251111568176320333274656033782414263701321100354765289944516925811761369473252844116741449855330575706405468027921287821944053851466546986678081366275256491024782275459759698247816787756799147818594798057715850270948624647522745723244658297492085417109613046752429101243003365524114042726473044222606660190217547604939088577786118623142631977074870121109809745564262118169609791878712778857148965325715209909810333374253412216224167511579356527713247857678137797981833365314906730352444739608979138772053389153324139176562658100691296133666507559537310801340275040374411153857403889606262002321164566432220331793871734870373865631274651096447128745561330748668549028191192129908917092259678423550188066164474817412876143769262938240691297895723434461184109063119961998994688386956228872161068973629130094630813779918564984647682572771002553392842539877433480192045476260133604001533772928066981211236316928852102754330771393116896997352973638278470272609708265223172885952453913094409452887642475415459259746121351698592271476548360645859023436103839845544709485380253771243776474681173650918706368168611459572830880171858884782792997605346249412502167696327106535107901827497436781393397611593771928383166018239413449993771188339810807946438676845301933048616300360087923231213678359594359366727212220921452253040774416656779806062095684268930235987570847025847894241682667055323843578570723706425816007346590499628670951783069805328120988002865783459296394525540262265102330192089885164999762313661990902390915921291659687290017861476669311919138161086766656137871525164970265246624416041325327931838270291117511919680029047153290031739540367781044548717951520945615612506537153514079568730920247919552503558217940127827132150871711233916887456916385245401955376791431556642474238035146134404949832068448040659684353666354277507016464427818463128164697100081447553256946563239640651032440939003550359284300731527089639505365046394903599375471193757905478949688942476757973153191949061176433412601349043157565008055793419543576274103042382688685521484138285897529736669898149040436511444377507466721351711611019426880562206015508916862654560579013084772997595325854722081737033072323220771581332255910933790899341010424108082938058920757141431410869997188018413762750531824598314054685098352623145322737192531742088385409810844312416104091165280619397584414109754538742643214782815825044784846986373023565293318544770359302851827868817799605623692555067577971980886427301270224756298661455300346131881677178659712517637282521832590256967678181753469546945559894768589668791841557041880344926572611436120478576369982704992912202560816496637283458159234213366689726212108392033025863103016024843427689300862387867720072653963422319313659840915643468867450820232928145224718679558598237452097977069022419780768996372716757553445733389159996054620409378690676163580405986171367176340108858711282453801056292803404646743762914585514280855194051269971681752842378691961455854002248881486277834017784243886889325130161286312997372517688366767991083582442515553926648588022565469320963006210661272047342324089793740809188712877996214773360386530372281712036813980003301450009697989651078613079561019135821460116892450184642865924735871670328679936983869545266675829690349675350609358420823572183891510650995778314839173581852972855665179246554948798710193356187621818476659928441543013212400020099896848397703019704116362367445841135194987599237533204864632877552599199066101355460240054156019503024903215742147713872901683111745128955701905109645543163076876487006360276133973896949949790668598150751443176442163001745222882077660957799720202835900408169756027791625103807636915410221319084138345402085248796233033807965041593228464054500902775459673502013461443008343995245949033225047165235911487569980359665165387551801169637905145682218463775586047731275393014465741903922910512477495253420646280264403576669799428804939060801362940437597521598873377684628976794442760829720067014651233262379024060699816462419790806480456887823628288597165539856137465222853096979873498574447787702657584062826504994475449267613143625314004275166223677625313840007018862271134329098435933103085504930387646442669896303438639740478913928646554527372003053432173344142437949260524278180902071032892216105643790122584194353432884006722768751643441055258685092038784958043681101159999954754639691400823646760398467605460779836844772539518429300182267184709698955024809773691093517846357703388919330127963146692018864045232569421200292033494752585464873424607051054769154017445499863409856130464725850080092400740763227130894484096466632021348252553771613536802724571948791282105005078911725080245086328995897273287002037625262371823272989261732094498560824381274402425614587276311581025490801367640026093142037618512474947552884490748694255436697722555745736707424289771055535446650495925686644891027593875576506766119342942460064118214495333019966353276297242580814009564852090518085535929348370231135532332683677721837199278972290453854694041602417032047932467000295284592601652792547627531096399925019524147729718147122854193750901574061851871062882399111219029711222878016802190867623720370002018113246805137877123983075611362979892885340205547539193569988549148853452738749890110503160891545438817354953612189393529079690191395110733495078271692827292585176199769291693513786778332197135636319848841568649783312326736870760464830193481159045965340944650484543940878420051895805336473521216965713287383476526984793978955262839537660339431672384011559460104291086638276157905393045433824503358853341269513080038370307535687330608890655328451923323299415087497043611943814519939553573205491409304006736466405070510044728198075843621439020492580176598347538209592216133281467071435486870344130037722239025491193815870228749098072628685640222252496081387313748632813234533081471039499978806243144385907239901949116897900281346929485043150863977610868974684399095788434140508067390759520554692522623304630057718457104736349467177711676882920069544952135610852977581451762817141625436397777249431142093785482827560077865680490095361766601254522602957077112066397732440296192930813832908073183668168192899053752436105552501309649685207255463587293840207416614038660301326466019994833258567918430544997350997765688532186756808656343128175094782589539788544530130810361330637736929129849441896786665589814930991374121334237718153403907636702573998651014421213434915010131580114242622164695755285329289945429311020969192895910275110098435591948747430148497488705160376844608307750463498605966139604824385562820562807716252887287784212609174292884135818735335089362805133390835061330610787748845257943286705859871972392952235130538024031007459719922986258605822634372860450822121102696186218399183401957353649778301158050249557194413699985766117046797545529370247828513892813726174487925866758161385041999106445165678924175010937323613541443444689323859843854512354045454146893680250830597087431213373252198902054718133596635400820676760410660529487670523310794338552466160597999725366178104822221378347704218063722966268241584399877633615736466109530115197496906350751338977438268364983301806676929328503308358255758143048486251701554980363431015671160319803502565910171764577354468761291854681637522235650672133404442704163121813579963143669774302147279910899908476983288303482846468262767647125653584781107548051434814550499283900663452224505132007991169579629565830858768743432961872757373997299133427249534660829906754613733697097198014449898982584825300522542422749258182192245225640766720236948921515668373567633035254010654925514534180140804582302713264378438776071849364632141396806657719763507107706733074242549103319047536250107054379059402168819051933891519822701321006516066403312965041800462500732944347123053583867079199622136724034854750130290541041095584800303643336064927447865479640942016481704925362121509622189106980556620648579381099753361696901917957559898850225076545568690751853412206614687368251774010313634758163165388264479990519513399619340182115564873779545132766558677412197947657257620039897402564616431210566871142040056684685356484562553118446869904751785615274545827306957103355665229157425583561427158199772136209029377645101750413580904867019951249232766231067760262511195135932817439126601853715853536701904302407859151510023585886132514971784982568707127749855517278235532541292739416005951192712076281591496298691821748477568852667341405946861125297985921584808210503300226444213051870799637151752633088934563807374024415596142405508786232098151458590681918434217876115802389700149927902291566583995413516978914397954767326168353036147243260748916752303113742704187728124454518933315924865310317208810940518296516988690328521916497952816847418175501333599103450640456786149023962920991092952732214776994251332338090195454917085334893327816248916820177970678635045295690904679371470220041131721793255297916347785185712905411435529194789008238135248953235624557186113654919124215729694979150280258789802478299920971470397504944210008303598390989595220273148150684922146785758974663179711541058779522393653917569004595193333261984674809793395721058125586954957345463374422736335029235579860405084431411746982491532478709509354083882097091883778789014798957829268125842160170216684592413765296365318052555748837946236876004919957239374841958786850837616449942913885359536460795254187995405086925805594586984881168275543212497134361732446807890737738535062007239746077016457488704786561912738439667334783450956441326466373262362233101972958924694510384856989729543286466011085019688017006408125613929714155064931913098187868522216894181084792806024932632050787541826838629398132074475221046511763978041978568252303579813252258247039423170862036034339229449960465202789340309278016468600978096708796436692718126982190099214361188105867934727396620467055349637865613686153398516980580378251792981122512373861490280292078059762618896826799347575059677026037248349882883455514028134590806586270514875427964458753314226566658739761771160169895432630872236121504382481623296660212624082536266934278410927882794677576413258858342594221190352076064697061964135573577155863622804903123231063095733858781325706838807075478862244124012472635077671505023667754900550817375731267482150564800453128708558406606829189690677431178387687058907943574016834650131402088321676629280373493212703872634870973356654085553323990254868897647850512048555094126158118577441802214918647195352953506185423525025419671982582032772265904067744379706818274435727506867685090703335722967852877602243959169525687941116125889245662074933673620021774339149335521328019461540228299124946747829102422107982740475662125378362887519983392363328894686419984629548733150252382027185213436202912712447051220538907165030735421256483646712888808106245134422874438850705927676777938356831161298845345357549408810613841031201452034253663332443045261110036854063347619266666795590988769433999765021812702260532653412227816108323766687914814469535973364185756714075814591267060951243679825267638286884504366322722446896645568895960463772024908923640353754898080365190628877965410116371222337233098577899548035395410466773322815924353888538591834649608143958903628109821821417129872054692038331632631061710366926675377202741928051673173968630379577087132053022484566863990120921530485649040313432898381242884931363073874603075510713742510623836319157265163265066901648487995963750401446813292290641153329955686142950050672958316751908461419593962977095890107808547052252201736241573796007432484837047516660248513264428390947021626852154747317739892768361059725282480983682060564144240681976844332148265095562498819365743231546331794269782743394906487005292176136449226140495244020608954550201781042263254544292802675844023869545892321074764831367840609357082513267126242121855294854407280321205502010797568761528213316206784599423646665442047681389206644366146556617935953205893027348548534891766031139408494245398673312364146631657323126004101124190560973516220851341944831583004967929451353053946478497069349112334807004914693220688419429112037206364145265752460005267314008030403367674504871135924420973830636976398835104415391403864924290268525427567915099034870436738967927357184761166175359593282580576002934165684179998853526022973044092396048563466605968128253049271682228039986251347055282837363982823916973323389471430262428999401837574687765623457995995926637001255237844043847893257378475231327456896600075324586828165735936169086906286410627529238811898827404869355857632442971538797925172898584362622749661346844934402490662563602578204854926212827025198374382935543169838274034956108999678071156329327287955671238861032961789486387506142009124892173947218954040773398783551485084878938932955636487320154058103256279743643900878770891159912559963069747239860498632131010999472849907496058007530147039409832510651345348897425748406938753444857997671157776840699242021156008588401853325866785990157341724642637611896431391675020234682084162472713163792045878892232792288137055211453105773717117243607369277360111805954885510078146999880635959373773634704707564262835149007323614351743162316705073158720899912822498986579628199798682436688668027813781549752115519466086392724240437945062584355362697816920428819113462863698245236685971556254433406576739905523874999720371006185182432686153698162125067709789229889882878457133606409159434462076452328269216934524443421395555875757249776208949619066518796507478617128278137480117716367161022080454360983210512894432088597216930124247314910520245641096193425693293906582718636787308922215471809556189150376673498077606366006342145844384116436058052592301780442124164698861234066048030460397794735196616953214422390320272340918135609499846867849969007383463467418417245303242041163495232244607641005336198774547233039041959244792482703172772060638703120474225985164370601487213337042963837477049381239172375189883150295703333061190939797863193318961464228639453363398873123107000907598521949800399569165336103279253867298451547800630206332160426488331225187474409744238426848187939875547658548973249082318246449094176349517715497628857239379827825875501483462857787811310746408854068204174810783776405309850304289924529371462178498565464327451498248293289849293571512410347783017760197193160807830317463244254845291016460926253915639737015340381928725682039546631393104959384999630848954157252918169706805755566499854946666412993182569081761287247507696596520813539674155095957121126511007376824474710986201653363011752569623502560365726095396188489587923450520341634159662854986820226478228007932548692456089153368536815044431910902733573812390269628697821765357507719414055643950357083306833780755013249996475920805764416233538375532067481022506721539316402795210769135828725576660294476380905943739124637880842543283316996760902767929341723864484667365863234157283849531738680477173023200875686679871984753167518127844654943284690178439674106312241117529189537226113343148820968043233760754471973980487991587744919218043871176373510284407575213814962854745378119410015816621712309117481997215115159755902918546001036389226107993797564160378491297349793366543409538677045105914121920460082705438899665352520944031833241542958654758943103578914215293946012451501336447306222163006228417901726811962014833806089919686280079728883722098671408350613674511941469894435584809874763752751846578740857681609608069136473175590725117797494362612958699812850812297468427536757207681475979481542709036998968560446425272581156442185918835158312202176912591287255469344845266233665908931855620376186451250391881968436496413050420697999527287252332127629399063334347377997038613736670845318773666547764740509324192006405546247830843612967964228389330751491459355138944166113197050750969910588870066250005601440650555528127555822550310431392056276291975907105094584769138605961413115184382411066275896616896346761210224655656485894525731721701440336383533202372918981387298231486107781606180772610271541946403436085838067671925197787790199234775429583935550433195116433042466811389090717277981792496240193964031472666393762747856549606749293720692969118076610817419751728229370151804075016291571297051868966667925200033097155600387539621897438619973938941687189327134124017012430767900248846356184376581257472213486423398425183808873382067092826706855261203372954189474112620086647047454272834148482905455912640019902586638065003244021142591022990775369693597337867514205175248869487882203146999972287367959553382221426715830091686994705800593695647751440793951841775488654566971016765335154200193117918397483364708545228091942616307406159109922667065239098797671535530043760626411522638959145110121424987463805988366886438481314217183014482218507315921968123723678133906582005168430460887498212663250349885557496753371459000052833408277704009568111601276492277908680331331750035362865871816889407090812128714814666736231394891853499280668537371973658375075880572716279802116676222132429920083454825039900906524975911476267277366241549954741902130989911861473462123774371753894628564653131005520373140770368016081563301858450520272954161114558970636503726473653604345332196281615766818534173253572876987149984095722318561151666900158656544147872935982695132620900035376199460224036414738628388021481865037885760027285688358484721689569676236049320340768622945729353201172049673709791183576658192645538466661088341531335446340770290495851927281403342736347343686992220905667549452379082653199299925645037960776860951299877190922248353105660687439044933607174455565458251856174989332654444681589263825571937840615646091491750994730369005286102132074407869783654860672692969268004950527689947379870765327049274404424368778583120074538029840504235161674515693588143694739058995626889320256237412322059871784378018874166404789776351086559239509003521399542694477483726054110373890440695787677764345534046075893185893039885986194142765157114161212260477283659367846117018815498631684053689081864967621165669356568921973927649783620735826865677093890431210576095661017062461738300926878435986612936502022483485579675247104687406818156492216169299555228640555297904207990147077679946902035319489571200937311091079240887865324824004881691617529084342928386237912230255374941192273507523004550417209168240392422442540188995382421792744140578571112098707689173849249099935676661326772440836942473678030377134267354585455842485263152704839628460518911000805615806290641915698487944043466623000865072802111421458421108050285020240782783239464916969817803180435959123402505923575095689602425194147321043905702734964871301946049859349058528266008826501277848703196336711400625336638914208107226533116160598924440155889284819240243573492170659783383186535745884150910763144493114972322449227086169061335063181235185825340410598850488997928341055068986490332042247946878552558844209437328816546959021186610640788210117596264958624720984824375207454401983567888969647511758378773973496654515225660129163641119858245365022629539341148188876805836480254462290582847849245979409103237704549024233649804315032795000523652331845219425759354252558751093137213759143719820252436139672807775319351313352822929057019188445725971162941688641323023559989967006922099132597978818576184625172652716880843563299139280115877015733124168622559684717302208543915082388070653716513464091408033530381012995420139815262685120225683295660452311353891579132998772831141251721941993232801396120808331139560139948829476798867799895009544372394688545027447115414000631949854490193834803685900626106554077730455316670883119286005506544448436785417115549288356589611034882567606104076514424258348490960614776843601489053660052672393802602780257685832251590586652354201022357605351606415549906322418699508981090098008764847220666037736608211182203426782545174580448190899693361871525883602944748784564733847261494798526456483649186264994241957203713454744760591090900548441448014676193671678083343146923806484627217397733780776819114218257708740491444125491837526529769044822943367140661221964754636295130417387217117360570266952969237322609531670233374106766655243015346788917814182838440822670723712889767911098513443576552534904032134065358168742685492383534118282555703344325391017706336508736560156597616082588256699883269317933662868484696608408662357809225927487375024715311599980648237065426372412492903861649957622751467963443297601014876685171548596913595719246389072489323676562375054100402766652176849061313501545511626751624259913619289571829562466146222366193573413351953099754156711705675024757782852105280626821435586465233160212530155437171568194806484427433096308745332661233098936788501712257296379914985219403608064078208420537759553973192244161811663786262406666927011345500691541621710493209354221542540457367586084102741409929189364316716390060932527403715009324256621505985392985722674252623465368284440595928407924493507504929782056328224160998920840505209111877000639506593971844219832955157007371920974340057308279974960570406249266770630228706865341680546741627145838829489775489574455595430516613532616105387778620056909752041138344119243205740204215971719311152972022642487524868221849285833163560290953415950585154818401787560790315592612195010471651918004811992643290412301397997845974336157892409478406862419075937787667321971218863192005409429537026707262648147210274677300782689701062086667507566730457447350658462181984129290703026984448644850953640823993891254066093720010303220760413673029444147139314213348058765466867010845868610493992945220244993070584560840374810783213309185312965842543811559429706131481434092486164085358637020071891390587212300409889617119201548153258103977454756529587688886616845392293818605888447573334250071673085769413741722256538258756606825139396572445223583211567188036711830390041477687648473984226622488521331034524659566367255869302803909420800830073432018032878846917797019336381176555803976331208377519520537449235184918006251795944768130221510135569002838700013535271536665975389500813703579425703004374702095663206098548518474763596287771124417637951057201074004523172854361613715152544541961598657728133294759167679393704115813409758010591693357743998931689004075071910800066827891731565426222108837234929551246235039491060930803771926496994212697250940028676051295454700822678037273727979641537003113615323992887018858406502247740179070851088458127351193075077107637857844713731066426849779511098459451896617312232367696576302734860505395331587934476749345831754808806992041440578454997340368101107001617264643774377051367786676078536511996203022309535088360572163908076621837947616313846255747347547405080375931889358613855022750440990503372840276403751519107974546612491118241326987913111379320809506829791254118693840388477348743905370296467683076785665624798565101015400955235579434555485925282419985035611983742032929010171593843343344435301903061792327955086841578783815454354843514540789133298901153008468668261686346098988299843643331660764151398855183294266283323117097894769564050466315497714526094421415282050874893808931700064548144911261873228023971302014676737542565948579890717599231190374337119240973665860355136090076053181225832215793494077762095197141415225591192693800275827537434128677597599531455226880495505787455873704150345736937432302024445698382059144208375741964428717826489344865124198299437956966253770061780319531037877637928719397444350040978576012372627399089074063365952683824408775294058916731065525401967621825235026477859637681825995658505607382118602703462374764690665373672622970599766697421336860575326187165448477015520983795331379023108053956491259412119402095696248885830311516053525176915112861403070962082502618388233347154129238933922129067588748374566328607514929192654282799317168172973101448926409783459515537985751862782674533988875736952869768249782426298900214618774450817665424534816620682724000803381138671120538738335723878237634868767760571071015531093661699227484439133749802031180063729759796322206541410784426020320081993491974211065180539228141464672365029437216335835678969509328506673099094995144096153030225208666280953943030096038986675438151868058278514216311236914798561243489131395376290229506163269477390407230867284588083715233889563696299347013491891076791720859193916839565653713704552483238290698239820405287601411610845791808666351047956630322064988130543548623335277311865453734733119868954870398631028301453561843640418584469785312440626883515517614377173324762405857510729870353589368028818914914864657759844810661877801996116527575090971105146348993199183349256287553636409913551872580676819299204479183105130933007307056462094807319838560401693331660036899637686594840428355159376843103439641518862950118857895612367496010693120584465077538488478472506580351646239874970693825363063146089100820741138117525952216153345490813328371230817688670121305965631659158171389578037141601353037159554261220297685402188362698390475592337900535281852698317713103796273361446080812152121978783153949974674520513727181184637263434462532132208329254819219985018765433957123751593198906120822326863164613862373282407794781062273955785219703488314881996422220838429520444075359135073238938415391112070640198332548102008550986242170231328302407573830155307577578019758112807434558918735129187563344112995608918093700746860701342617808605418948496146527949287021525896582687205625087016764289592687564746678568301526612707972286418183593831884754427197249498160562737760313396608231884013578281552907358484471689045041940347618505351557742872827472259576723193630273385785778718707567922277150500780509660191255836591652959939221381856022235483472592977669728900703020544316308879645277795928848003016463232449098691412586233115973931847482336023060077146007587346333648793431668756111899933782316683936098890233163168144913291207486910022370908942798044534675898532455946042333100076483290343132212039845290930387987978227214529950300269463571224090368659643427953103907519249532392800672274221456908321253394645483732838428129018614379079171083798486406241379773853360945870025338449517679008058358201883202829210049830941439342968015519597842752893521859574575457870171020252663505809344725115658686695334492820248867323418781431820991780907328306472351225169649774953842999655828191047131857435595844071494402403332458373826422133570427457004040722038618869285684405545544005230809506450467818523390403983555805527125213835785466605060472975599584642258185196393964547049315202457297341401401071656509980682487478065393815541180101742645074492591427495132109468644180373490342626713333162234632573094668378160339381807303093974974888054685480091045971608235791849097310226276854865367318006571987141326487857987158581608519286938716383350417823299944987078027933090071250859466657189003182484163003191424741906672277044038550461643867627086664315184621702537367000701483703840984716230307313891880211614738344987108949998092664338050969884329482661862341441606612768148733637180399243027496918557111187729601355498828622265595217835172388304699470201326797297360333225943812105922962285412368160374687909643753690938144261757943497214705498206126950392751293939548598077334416553052101860322569942041031974405138286302020782498154527033992636500799063275543328608369011875801397988371070054284267929544407854993607903086932125274260135300943302308373934736897512951497553031389731036736159196497800854346450498620428191866109106097878836251896449708991900457841131225000848154834182429995565422759873383970190181501721353028184914387256136174358957388584084278559496137322575903586661850846238679752531834401637863260436685429512701821508191708222928479311709303158671426269013543514797929931118608776342018132595405188307552342613589855833831775333831228451840170598246243224288092669097687918112163850224123336688428524151803500981261532257682885906420471478411994753869787177548145103516264884740789224536270581865961830871292427345730884377313615105448035514943688312747894217724309325850182842836830794162739471685999446014672081636721623548391106024190775711962123937765657047644354554319549580689029517223673216329863637967297638451393859471201036187456208828680933274462253879759964941253666974874462638533757282063820419292168667572470110935148084323619076481576924577881284567804381067715127322493500573232878514159440580694133055063513480410370579055245422422816570900489434723885647619813440137181437730107037886622452625376083154096126724481950243670417334059888498919248078531035469213736391512284478020763527042042930246611806400177087318455916164679337661950339527424662525313918368875382327079006510063644474712722257170615420147801777495555805098400408825086262700129942898753691937075108445221209132408706953489256602783906550314602911586048449519040622318816551373321488384991622217366635172730987652935980478456160863338203211221170398640426125847437995854298791011515604509248331603720549784904279944176589081172304662526299438232318673958930158233755338168847003241193389775637745125790809783718572198462682762676092396545874467864433571052607365219337232033277513300375715941474378737664123011096784307943496638407474197370930178859035694983861768836377110887349804704138560221720135269603213356606451461059233990440756417724407936340257368584764765774309420858729550661306146755389760512442435007091553614302301860859641960415163271433455514834413736003025582388017891585091309832691547883300592026439746573485837975496884107736937522820465718778329910038067307003709433262590587389375717837957463443218917924821107728803304243478651517452406476888388729228435440948094606046521065669204321389943882836773318500950615440266744987165653450190683270219143415088668989078151155982168558917578903365283021318976594708673850331646468256041069372739091555002774391104369321189921314286271091188750127758722350496723360485835177445423745675575474409476763819752267326456916800368326393862389615444842209786036287017152670154015793386051424887130269907833181378701284221926727589379912272476568751248341439845539369057417302418550888712694246403337653345134115179594395307983482999109488838014675912528461772528229135272238336783038564785167038470045610999949926581253688579508606136360839100591369463347128104810182395475950058032708450635468582157613479773224738956532143840889641892725638633664016485423618710505820477911495782542635439098863613693655845693596546855522139093211686005002658952236760409395869131884740792386742506724862182044254827660001738796430060351974365274220175729988779603502367346154519378038893192796614955639993887896048886527326596958967011732004100648030743673672895994601967964954078504886184895152557552004484759294242864377150240358368108126301621432305639325583758993405235004593533211836226962446063570068336030829777684862508978299744813293781152050919045961014185910456206696093666197989630452280598889584755989068651890902027630144972713779277510145483425521135569341669276670593560249381133201813680660570110785002315512630159017593835950017278882140035744807490019448522111817701638797360057001340640539023724635780567777590692659618298944377671965708971915320323395153622864688288526050975243078688458900180280010874001481631564636363995589404299105848148699300767890720761119114746491187096880365506480188617597560979435136638898173458270147440097095476064586655199365177595918285887946562943766278905641666444759275739548032161141875574601458589318922988311575400494282703500650806876240544512061866544960002412642893850253960927907046870664965781747936243891600213439602123628975440345233214048892816073216302108459110794101993703302920090945121713421238869004507224889124843641439479365420254211280239564845824089012306393220781875502411117894307708422434101997513243800100797653192881523020349409207562958672933220579649002535050844094138154242287109198739894570010316241959118008064362916973721557606881444544020957082083434037582230678540691342991782141929705189259950993942404768872575930966443616712500621333990483030447006845540567837338848395851551422706496509825503466690799218002599466775119412821938294909255514936491728519864061971340079048120443022062748643911698125096431713476720763985838811159616325608807542743606658666629322866691113155533945145381250260053641969575605545271444710681194149068922673003777161205987645520052081618708588518374984748816046875814880882946854957394418580056761878443332747054709175896571915723802053220645488324117310323403302469178133517284918527512434449262329115810287906946179352876808567482532597851612528569559484193731128811956075671708639612127864629214314793274204436713815043883682961851523392765726000645809479327546887538453114092691795029157316849368809844139919055952681483869434698688425786173900907807261320984561203378402629759648897620102882870322892702088118461484169403221238078853786920459238200677780918561031855796431261310848515755907283911230431655996024486515649558635653331232118436974252058326056532112463862132172327200183213038864489380011103230959962656223297515328401532862835890131171487960200706142954956189629457473569034445057054953084475141042966596293176529680347013906937859751457490676020434221463128372530227078252354515191253272989400997589762036892374336913564556862682248964734301143438214485328343924598421936081384107537079876970631302331884352315161970515772166921172030672928244533395372944689890467871452945116927248571327930026328326774664767068551048625924771743676180828369461439771503392924847674163892788510053503208989821653538856279060610534597440638113243096049351801666818402566723542068927883675601621719900524059120149613353192041811839895942607124399515501205695451024430937555624106051403603783761328398181821839202327838000389981246815138431230671292789643101672518275303799776763358043510843007148122834413274412791169457182846733801594117032439822673903371936120096456969398635098106359343041762499812202527663288603629254681063325684340312354468307986439218272971094830952816915306409607788149112722123784018410998911806527561548033434988555595732880957146239275468109035755986190863916074562603430483531818249080313042290579606865450782541884969571200801103740014522461834599238215850491684203691196462178185426337436760810319389151716960761545618822822373058832373407636171659100900895294029330800892493380451960463393653032333243484450359218293904235622885082064406735985867911189936252972664841424107211208396301205307544077804910786377921429381687876050076790602614834286149926947766588734020578088678865484870864579951300029435387501944982517641682020452085271287957285910633651848748124828079940079927340374977795887560365046925826389501268225622993719009132107124240766922529466963713657924003561333560391619470907822968742334369562353446498834173273517812310465112389945285563557645037809402084758694123985962371292374156218978533406197990064941777209120213826223771423626953639065133786128311596011602837575420408146522095857925082513632896173094557013864028323616222173716205380963128326366535204304589796812114350292026842343872773767334685763865728562011919781449020258164078365464714592251600783673946444666898981369701153530600007020034365164608687317603553637502127061502731453019891156326110083209274523571884719385543106903720055948069309450713995151514473266554855232960702750021301144858171061012056289633960706362067281325197004925739398987062850127646500999417603098356025643287857955901882396130095701270872116921768394429763146099163650289893963342194674390450438111889044750601440720762627100247752646072375556116270605110184138344661133457199910353212228810029701874230417168794005853922617458602021303054944250728362362921014302915305147673966148265522289671725175042635991447678297025194913695310232947128310422671096860686855623321572787573953802873451739837031091335213732824882522000257602788843182861743020938458168075856235317322370769754087405605870628798986865870619857124344043877987104867272019492280174523229204722814069512943901300212523447335529428951812266185834427670720600473232353185750860081285744550517565328170641200601188944009994399627233758154821622583545863301254382139225927796624868817725744580062893623842414036613747866259960438584714836475742019349408096387271345606126351833569243512853628723141933673761859976942933353884900906864489974315315032949147283858174685113258553053636637546103406339429528338645676902476905346144917611158604397776435210773748532210137552886965765199873817803393016132069448392675036464644738976389733223884758202947959040164730888980244142153100622322531441682829055323800977114545283865929876727168770142475230936576126210552200483056773264108524750656560021090306094229699642162528305278384083328924650812482583586246162763412055593472668136178702597742301934265888783973547400112239153913041233199105372598697234398459615896043932541577772780521237843017674165743047545451204359346287370583500106113258524902701750419389729720747916912377268388106047024503972496610175912213320408318572209472988637726386698693983972475920377951368124266064979416671504897900952060264180757238851665053234047881091091683141035931902988043542267621422000253207320914523875130168293466708034115782680322652969569182154435437543952180752926036986402258144134473284129919850931410495148019788683755799337070640384003503526666459116603963557766866214597734351119716160489534651090334317182405167886866531077800125708070548045928634107935031874656780673200122173822041731904093370836975193125956311644796738578909804997655976205140796922901555499899379579037325828346556068301140484662599826419367209883276883722105933932413632745455617753006591241838160460132137233116378229426595603012115119428438195297070290873173438181589111476798659121489378692097474844879594798952591294643494390249569819652940691444906938688763382501126671361407988227787317597093979292119052664891888700459159962027629894294220859687274787066031098056348316154090847359037051929863770889707766744665030718181989697892037989136219461287015241003190080776236435935308865065110435385741327651864802988209446230563982234260833400388048031957887362515828950659707781781360797484766897100345798652849063856361631336409403224362266591862303384167336104087680901931179101322091165504659399668773597057390558303327883892900763383961650150600410901286251856484745090205576907322181608663715349801928806384212476716212246194723579793886598277551346511904054599026552866360687154491097746545245641766793829235727494633099518842001602082629034575221791241977716905813516870103990627549759963503956754752340258546959638801988260204978683914375163473572212692904231648529262279604318515083029131703112269678579443589929509177675524380654520995200339333006247807414701768327162941627008738897287122909484784023428163877272467401139253036429920433622311315721634865103787236281730333327059317759994562485660880024668465573605179094794312282444981843472126373392886408369933916037700574748030847681599474959215684769834717008210479773018549928558618581294121238168564807947490978190535473071257872465806018975830117306539940704430053705251243564377450214939099357409391616117474379745405021544479952222927598746860888279750377765226093077462562107110612858920365316494944978860549959611861533035954994009690301833212050671461691769996285416201837827848473587528262389841327113011625072138935266977402768661743374114427544162557460541512919943825268879094431362638541514630276733016159188108391468778429094469215220659873231208447940397006552079594043778625188356747743518371862060493900633322575733962760816055198571612715623464931035605962359380809078653696556108392681544126424335533216488561328743556372241107414624344980873266647703368879406439157212382355928426952023931704038991536920808742261008343496658944385783461161454426998073376187470665696223440298676771312451691587953876670467121708300330573615033606979411913184690688577475139376088421158655958617004422667077119438709167477991759868516386187890482059080280033746869159972984164900011217973654878024006819329737956052417634627798833022328824057475981789803676263469942713748519978818163347382373899807613544842477704445783896681352421675462250066358984130965684092752305512703015179177755550432052330667339117958357624534605363151730623445304206934842893634973845218114554955467706857372578189026117236959148040305349514669563136869397125124956612464465244580058169560200162123878612109543931896035734263145526728379821481791994179912521155133423215534304630821631829066872859685702720981423554849035423834952070083227444464919087852013266518276531692749646214254746530803607373034051460827592941172644568660002051932955286241726093541641339559937387914691584542805834676025586490970832484799353500213219166070993800965181155749535726391300332349309912050613630078129580691965954900502857859438360116283659625747132727273531878314419524000386956475129195772158003222187024230779492587244527200297764777013908154828636848882882822508371164747214020146948602073020048360081114804533183364196531173759929993697020881468934914705563509623541561132844548207696666980912020262728441732754542608167447276163178772614077635233918158115218630798458270358553945923390355140886968594050598635564873765805137347489307173699887329367232347462089889737658135455591843251612646979609733223413919716025704762425357340888346793681115448894917363901004530894418169623828007202415764153090422065888907609002514618425166867822780232782683718751698946857718838056277035522197195370743269327325192202041790603371411986186979398786868101938112624343074496864855060986128717755186276683250870371690681682346852351122265050446896399388975274184701141183240611795396280671406647083839099626586621076495288566594503500969287896025739209006514902873063466572390816681622823489404544535894049000505790537039675834853965168877414460652173584400067114201779686579505017930512270738410186691110870354394915249090555428263124560229500239432395310735719381514248821335945568441047170224099109694341212284118811962063474868477036156362943992065262689505972226124083553110062101236415398944729097097998532949527152085364216335396362553742525265343507762984543715115752257767222774858661302428771173128236582311930759776982950074047333820554505566982095289493192626455565104314697984675545117445591296117591713033545175630070744081030943082223740422855852405121646021411493456163590871954789696751950276153394571093239385113987014025685581355750906739738459105512554543394945429704929360337236145574472425995367131215855153880155218605905749435766760572531721704662769509275896285828038813979516952633238723705486295978098572375373298960230813356153988934040529346275671565048125534485688970460043790148846411531397553210960347038034175187796259899285578210955682238978315875312800894170396801049006952720617938624369639918452920481150539654180996037782568142271352988046671010553330965962762733389920780131883847533775473972612925322275615429414364670563037905846306068576594275507190934485114874375187198205937785638543008251105962895032631900611414898112047839182602878699051231461467510714561814646699783005487088505731828158598295930627871897632085697245192039438114258189996818921160523863607038853846208398988456618806760084671368545212375800443387447588697694955849267178011519360342713889824314003658631385611787490280482721581431888299693266181452920488150417291161951326464324589343742801353351006247625710164902219832795624366716335861811736869733052429924565793955286532150912774875194338538049620244207017415842521427873282470402444548909079561282939801082443620400081390619038579549795947163617060628494912984329901630755303862303655632079212176439358187360108634406845109594980245295965357857239808311979071680771460107881468948153273045476541255041476923895544040843702947849890593038575330660825033390225143013260253660851273624047995230747616441971967855967661642096657028732896771649277414111341038515740280596180761818632740424186924429912922043329778105496535708769681029264457091644569482792050934031394509012842339800466363088562848129366543754103168608608122553007153927744266504061174764940051843462832437449716710827112890043116785212935139034466931509491629850116055440672221005866125302932879993073317932938147661177336553066713703296935679274204800873120999470595678965884319714235715889915576000296823107801037269284237726197245305302265728798907425722281839287770938040962435697298688553957379967790281431248333367523064273325886061231110791332698072614923223909407503978576446496851035250789421916819370907116339618957668519294866693171431605677550823075885140200011305629273605512412845742555109342112382309318695270597535594434759600758408281252309827826804530942680148553207753517068703574629056223009923735355075289585755132907951205307428833309326832661939341214449266553480325480378050870006494733034356982713480897116789013048586445224610955913405131835622841775577474927215210092591854053201442471630211637293715965326735115558173675420493684039044273084161782625331293040418698319965258887641848868516587557438963166667662597748808168406319975588896444449651983056140584223828535090744432483878952685398569776640849131259310520033895323456306463828959180719413975756089971670113924469854253794344354878293066241596381449861286506337662118638836512771918511548541051020200155039057385460347042302466379129106920558039194590292516822159063461481928803519400483835967514735310791719763695299910165964817057557861340560270351023691629284071943366320859726175923438669704016116134432698618915596559015979597923490816447383794822511858924600944032393021381281185213370765168143554311284847930328607827388634007105998894077648539299269947043129238444836016661161420376437345192664637955138926019096996829049135642342160217819680896342093022470405534705361446085415658635309847132027139694167596659327497597902683743484947676111466088579128324929776207269586488639044124610003648468035294979329665799977383605890209442224877302925241182367252642923176076910535648954147273510061582069073273427961883340234101563201461600250624991016159233981564548496398815450540565258304223079742885830534299430578519851298417242923888917972493554683173700913259913502800472025935699295934984382324046953398382543346622252430749456938421140821429535194342252196438623882664159032985234368304630643279087029320858411982839621725499168348305979243752559997699801262453110052129651517022489749185603018548342770864918911190899009235352038167077931613793778757497025698538860419765195666907734300635432292061532017631819012763387068563864934115284045792436395653709281696401181008587821226550351735402867490209778789217388865704824222925784745579111803849734419144886116499845088524574607133182517046377514415194828286671521783284983264750763694783223191213806115925544241087990914674981797695914257314007005849319250693501017740508468856788258687760635379343763455614118449168173895067825641070061719665049067538993020352994466333180691026862109454762876859255877131409882676582534445010731109604878112468550714436793774433393228494247852186890631903326928872134275915766353352468135392287476868932604195753747883158557130899757771546927525684216647274509638918079936522875431640069010767169569962774545630000258444373302048369994889300729687200771298666776552401761147874633090358066105235542411400092444148466669378121517197854034232680126618211895823547474920192153650926921222732617395401701283564720204221684265646911632203427844594640376409806966890722823277217170604678434691245821878115066258701006354186062009869707640460808945475064062268401075383747232815333973920812451341858387499908859999005822458010136923531509574159899127131281429123199309856338234662340023512844693928995164831115453996742695681254587239727011502071271344090121071820243076357748739225839783162964499161744983275074551666985685378831506991955292387607279602512096895667441014936599282001817278585376296467365762088473172124957731423552880671734317581159425288112798920805286165580555803531614196582882614896119859839673769838033693133586175760987256151399315885441749862957047076016566251774753729127123933808026310547916623600779022286820114334076025261247425098168643633333391316860217848823094231341102291241556980581749997517853846758103587552293444309685195757773679611753716055435334591114891961182506539323600169028763370259564065520539155893112116179610431731198792619017254302164706411914728936056285798485618818608998234855032276191468143071390803627009429559058946180368174864199586395325220260030767823738998449320130604710790051256201579349725803388936115948781741191535188067256929867908674510517852062618292339464388720168796842815153425656708736918192713209736952073642356624615549670012023952137288836809673664028686852847959133936153961854149799404890545584779074189457912493626277978327980927066092631435125071612690707363911089704823218080315776904283964545205986883309400629374356529415004211562237469847279937099151821590536075728762903029583938495525130502151760733807051648684943784032080478021034400997054313980986085744052299060449749080900848674714312520561505530689470785282150233912249185417368815952472295145271223294332579956904888930427595065932822783090494354429170072549864953533476360200071455893167285374401757913172181563744937241059266852643253060852368685935601948526489689536076916904466139242839983194754973219941110679120607448611065566800184231725413562861922022475901685378289962953921691346123168896727381448111111489627939768391773897079659981446765271904022160608695901336983698736084261478388111039944852749591545204807181905849138791372602339226655639078091955242613730794370977815917411533064345992161367789924395732116581843163546001444563374911348157312761869957754441722518446975862281733785139017227366853650611196724216704264067518638056412557773838346853331432731057711172706318308616561825971105867529560157094577270371307583041375614670995442204948353144130692910717333088634308688854102159547168153810726682680318599664365518901588725241445430321038876194056328304663138420019917401672165689769930451251000384905845936550462382028229061457728747980813913358004259889126894484630378210643786798725310766159506821766451746209180565332190713000335988162377404916575296438425210866488955406451605423634934356045254038317404397586599108623062197997898355072774297499192235678332495075276006710884663293984911872579448591709025239332023868476701772962155757674758838937695432289241632839024467811502072828137160820930659378157291672791234564158329133392026906601198592954534649642735249025584901259823848375421472649357024357279630514047374488118791513066502015203151501396274165054574965052270584280763734537909723348577667501423056045573907693591752068074986684711639670696998276842083082295677141989798658182100739205938812594568988356910612319700991972513833735250317847800512723174947673562299876727543378279498567024737023558215995055017822193197281009763104615639312151962242083448456594271290788304247023936780575763818117522242923970441721176729824715947679697634548009210199812689329526748738824669261394459913163267532501877386313428359572281956637739288866312888223446195915950205501072467693319818339435129289063536142036836095448239766219493630726043551418116674770421585905135405095592902686390584297599249221022504187861723932898717726104604772482385075666462517660009719386603578775632506780854009638069521850337616024197425634812836363559731928265547277625004535524591731079285633418909589458409157359162089024275983355237598526874030905361186383388927519042870883381743439339667514629802846284114328623171940855500542339704039207215893142176148848056602621861841712908309966938935287904509262991543071210106448697873439067384026685976007567755243707124854367644068589225741042390261530744895430639422731163106121374734987462351055169386310672324047998488896884605160200264729443626699563155944034174086928601514119425544996740526254286587860794598237019013567187804705707960027909601336820896315839342663199714294461940645571179188483167929015833274870874910347698965032430802580328728894064000122426494468314229626998454707363038869535301958580476165840816865069494063029650674425424072360138598566584700634249692443381983092174014990163818146141383794440098311611409437844885632504953491080646617236759738034798805677282432543746938833969621503168928728883121951920190940681761629430250495282334538016329929228872574666898510127095251648913036361314356592342020369956078618140220301781791635770514204224652186774910881934386930014884910329502307275263096983922244485480695291403031608042252277931767632541817644781887624422503844646663008812102856557506123613867838653723859394172843853608174499652805780223567084873036981995873451165851193692456744994481748966071168182623252792269301439307715112393138107206171698182729578765854167338972347109414284198815858643965449645481381068727172822537840529567563742662341423227284659001484288844742447715913449817818275893572181797492887106715361205178382109833251799595859262299833840546770069508188852073236623968237392567919774572890479375784641647360722612730592434504737887467445121263190994006302057675422200978629294101128145888100976668153446495620398878733193478355259709026381434881736766377498219917347587034924053961912449165900422778450029291144395667249390351622635643662487300814383811925539870612353075882389777048572814169494332324139122412969503434420473516508444078880949415073834291581224257408055429497014141609648322552171893489171653487033547491434437163432584600450232015632047059151449341299241326232336841960851812393373033872030084969604374091372902489622984511640603779350533469607775801058704596493843041583508158704369605400081129878155598564951902467385045547919261005955669084024166116585212366394924172129917595679537259730097861767658588540782538185767217248266583176829950070978562895772196867678823988843105460047588766430033152570518798128278644129839704272392668231467196570784516876392200590848357902333463079800296413261982806298093088903388742218561889663492779789408890431508308483800517327678356866699791464957280444678986173055548714792026968550100921566067248689110119200252796475529335281833066369257399756715681342804425811244920284371637947548833173853788162222714982318809747730415047968794586538910541297569682453469965258964417860822209305395653867314718971580407340384807948558086559732215622698554394429274741489062453042786962157987056412827641818369229755024464070075467593504270526554101075064170322823362282868787820039330393342587489555198194336729486547530249664218886834954531453327440718822099760197201701077666375125580959942294375280085183558017172155063979861254938095627750968942909378162190685654504013432801630343993741741353584796594044621322183137285596977051660014469724815619377054448554475990910772623385542468853155767686175286317884103446164912536644776532463780460794563908410027261200732241848044742126098318414923629121106629418581774213562370835485560436332581437849022632156345971053391455584983322958797363719264442164195133292828796050508612251012843765381640193454044014293340949324829135585980120486352748774021311050359601834497548509382430280153933714585868294134489187846008574639957795532744656402249192954805662508431794861341905931693787157753439072030232405804904268314304501065771817322481155760793617346284368036799525389823410779243548176860310235667760018233806487427571474282019974996534704592215395097986068904930376720855878528451094565045744295603438158698314326464288783168871481177819775561524004702079298180369825589772202342286109621497173961707789828972947396298177787811033318206105891491818311906533853150940233816187105962850813142719994796377558611795830644300761736181484627841099708026044169906441729312222544439204332499315578064294772463320473442196675872100613913557588339197498745449044179164539136420504402250259857669622576109974356652886200192679588641782016287187400971075851712265557171682988840834293228698276335491837672659412740032482174698883075975109428994653897670278539217418748104567588434567416637832262452546576018100928803021983318753513552189103153967810035918025920880448361422893909717012385976027692189199944966613084991404969032477537481427238867631827461064234263132048380086143087826250181015057580960416941753126524945413814623077084689713561596196469726344339958051237018009544560026916798191216723709965499643373606512014100819798751764372891204815518725550864360173669999331921259129626817793086236686403087627522978340758972653178460700927587603270261593713140164898406420340689915040057402745306413521562647330019037486959487749580327988459027479910381925356221510226668572001712505847320891552197169901399060767593429123337855474756967450844590915038049950953644455339586279931859820108217300827859885040115147182506728126696862188408731770934480865774098126562325053077681665795259647081111224817881401421385240044690708497499581839722232459163608356989026063643497300457581886717130202259289282967155528953611656862780326125881308953512100372637157506441695130774828672765672403771194776135110880037129151678488062081673241137315664764980170440628316855653534992516332629867915338508135868936903187670759055855483303475066705218538473163034792768465432200654066131160108128844262138447383020189666756107852023685948101109516674447752918598370991275211896291603195078697443182987804619442537775011964528787223040880490781333500751791919983585780941253739648738380496480955499669314953747241841844104346428114635098918838323575268880146466840536629825747331113176995319757749086252647356457145365964248355149763423458486567530885291206828411133483928565732789732850174767395569547934373479830506647082756809684949422643042006553115557028854271577221262152529097543432756901583008030171612375685528661642792172294276149309541398466912436320616613537248733016676078907349629921563532657879495102209542147218416463634949557339670190324811352893505571839611135905143961020085976885353224419589679596826825230372505678695853862098683767319686190344851316510168173727031218236996073353157295253480900269087773417617072206317889960994236764537625040154733483112471787712991275590892416008418389924920959731088360251907493318834716499683206151766016285125267069106717604832467580307618080291281037790159364293426524977417515725415714267502117482502754515435954617597484632689823346037159990140882010114848196314406344165448285282880332822612003436336195959505700457581409593646678258293554302464549282770064039596733597229864478689952555382481773539876639192989826809284537503213656840453746904510352740634440099820522568676429769185610552569790732086270659052224262902304017273016136976673242629665018681659009810041211718327671811759348560183079244923794274601008548311283424293475202540457183672585440065657140511738919789459017401445304967600062760859404034234978736072632913357975368253354184577278692878899697927677006569894043404539289288681288169653322310368305647149053614919731285580007440435400756950877525560440763028509212885892249771832693320014845344627247755954931675800362227698040862856550268792412981142026874090759110067968366131378402376099715476123901379227843732017481854645656556204974474774512925012525758990974486648566352833431093281017559639362230573218991346478695575062992329521395373149196673565679675590262018477915754698110767183152487360049811965079539618454929751207110457408106982182455224957812241549473329370267942043753011600385748027321478561977218645342732544929558953733766877353279120558235052643719260187627744446873841284504752224433230976719522286711266932517984515097642317983422269540178489528982366086111324295337966165656023661121209636075936924578541125049678829740695217722366872163254759558187751997966054532200943557193034848888384754371693181088949833344435733439758445252803028646044702825536112875636881103408969295560139870850184894874909765642063256512422576184569181978825080617575428577195322696986419363009960316351819521923357570333887429305796945847505677954796908231520147994371416097913406185959814801775203277864993060975406968774355250672035221193256468429063476974227360850011436694454158331154488294748719868307016494662240448396294616643321950485717828492971684845498652383306282157686848992772806273644669792520462295757506434505456952124424089673241607277716824843316826926854523352963274968988832077063679704327772430521338272305114441972900977925958346373458593844992437480829219687325948357317290944473487294780935021137583936501505294102698906963309928044961415129328994349283137038807160331289510496846590104551923797402165010305245190979248633510906485065882238245176521847706322435076703541495291545029153264952504249321016007976081228766406924219975286018012575052644806610382562385742393043585468572610364496197310337398392240384610857968274837592754339511032197631851217840546457364121306962651685922110260488459982897926082797170066669242283951338065894716647013570923969416363508656409573694770970937145277763626314606897639634718175361895733836104627569209806704289254963430498695195212440534103883143407182144510308783643329962078231160645497509631316291871837653170427038161521361586130070634795011625890371744290766296462152009350715211274853288866762831739084926222195356247512112395134207933151629283415391238027350090757937244637916756004538884249587145307168879970939878129513239603781878412969570085698901853266014602492716436245578160805979189228249367175409532522623275324920207879465170363764582830097629218654864909961297496270017980883836321703488912437563226505022588191232596516349199419267867933365551181650011713021857701523149338195712380838935848574778031377893561187813600263451247579140290081355720034390325219403010880623352671461956113918409598911295843853553718367796504556194665535170750992431382839664441058076393109999648199141143161334098613450862421313703501173503042140235969278525128231246950462541412702306667017126393260219999911756669477740863040007119928740038986832586484482730398284471391265893427570595790878953835585111970012352567870798713568980460968022250112521775798475391910391045835080030154447266108103193774174227404392239390539333340969615033323247744454839083937936039841905489235180971331557738330662644943885441876155840224938084655603708351120111420291044361955983949945938193824008565933910454709680164917013787590275479023697395977700247050685963575897311670931939125180777090036408212795625664454999702134692867492770816276733148268079841100593763624541941005563485283674816460984583082960585854724436587658482406841878163241494225989086707470722142080161526123248732119337020236555059179329548216549939637595657627829024689392594179903489873350954625842830493934640401267470850331999038285355137817023720071194481895162783017751057492963333144658555527018271637616558670582545411766724043908913066934840202960591645529254149785834529790043590750527955734450775632167379873027646027501170667733334488422257467153922884628632806964025913148723405936866573055001452435566857084168907329898245021217089698398835682309752089194287213532047579340317755709392975710289407597360193633079738677262852723481180524322404034750633693066822989749489526667308856146023703953796620334951035434908039200578330523565088258609022183994810321996331375697817826811332615117084535770438895534975465631439659174615033631645512965468303937580652635531568228712505603794131175440714382955781627121678643085040393940393970836753052180317409722659327286490402217465365874473578916399158616426806687887828509810579095078937325883534845312306949434421495755572591527342693049031208680518909295998228803062218593111352203970394979923866922914052837668256011820872290845326663170389255029739264342568724344672372775249216519499215016724179079847588682842555591997947050496608427718796269554574719719133076378731635241874489754143277476765327104610735103363508583783439553369085321476858806179910698816479317355758291648515118028553726889813229143779168080080387536766819945574170414321360801167668727903511061407565373286658180741663899004353825505329271355924913060710417499244730665490947361959560713625803267075861302350655293749695740524735695427120171768163054325647905261990033332620376951094090792403855357405747195638497574684374287364161314164161781159496801130517144993334020722747402359282514240975453893986936305941590160468168577339067936737180302334651061168611806315307038355497922155643246490345738740538269656834354418224378592159617581730688808686447145921566026044421386098149280907123105376998605716034265607385111661214196691887590019337538532994731943085049454198717293440007476157677973186241599524573866694800456179611929360795724812423710823050300865252560773186265186540762600636123254521730845573953433988315156533243149016262724363035424042707998907860103902404779604554312874196094873241109653203155424935167652144871386238230744563411423377220483850951005447541186305014258365184116602761150354347784099546914122539085588004798383154443269375373736239067366273473976323460684074481068866021876416496714339744665791596566093696137174212394086028906896104836250635735462274277838569415583279130369003879595962194510164339137879066551751876284552320888962729621907218291891996406459922720934889093720094221213395553410057089537132085581747345322484794418605001499470898157869810605780680756623905278864983411450910803930799118624098615303800021573682849180673687068394925878442894663449109015686255792427842132390639219818403626073939187554735499983736704691302823304558581873637175504971943856712673717558443278500153048542479097233837593371435043124595984811373877721904267065429002794032271141316999821680030431896531934136348285572927194175697642450666234011967350047936203537882430819278171148059399593949754508395914390229338714036436235414780549855769607651445889032572895104633318588121395925505793975445025555284666895168374168634730029145952983459431959630949240158972031841293953848374917581403900683154385301171139556566978070577611875262867927378051601926304854562510328168419126499177730447185215022722644247225684637448715295087680183246803463714319844948678485310745597037427216728022895578331608299883483834990146931529050257169981721403861641022566761920910427345349171934645016152891827868595535163376527973312148742488623913824878180094009098172943795395739045042599081876068263820868999560186227281220898696390022650135578950257895090602073479292243341725904188855523000038451384780406298073029905621115820621496974330231194289263548931177857001616364874742537384555800084483284225758413125139176700830801119070145595393396792922507767303834805704639321892040520299815072658210624661185499214057841475306858127865923050168578346159567983751139103808971968681390628030637951012296955503510419239665952794357239308517915692409349787423262669262461613330019660447022583649543135061178714981115019965509514106923183890155341875622935261651880136323474924490321380257492987460121404083288309433941222030476753053511301368857188014300165036146201678276800257353227336588877920851383672439254189362261380509483128947221231012211425434409086228027881124779946184188470341016684199088631448071411938812528121531592419507323767425098022055543350107663869879768841085860688456623755586202286703560826055443732931528810263424574327764546537313606441379849691186685614822044756558484820953242776583017739099198418711550698028307321219617232992292598114396464099766678259031721560241868393754610408441120008095479610144836658356835632216796859622546555625226313678789264430396102807012749503488359083008262779357532734366120432976535516682266532937793866491076902894128115992981095035734059361260239392182337757309263710995233791406092786544275650963580476468713393021907875356760461320210025103175466179498199919732535239334565968163435143879923434323508600290707867583076226526356300615614106322471792339477281254787746065479535047673111942924590492246141104195881312630147430812911438689096629535794239805212359535146192793313406993054953576873432460391139144528281859427515606288546364435012152236691838267814500737831809931483849173051941768233445276790579431358123732753401017145425432593275242812776037307785810362599452492457506937650599890312573467326207556549819245917672831295021004702922920788720082661103121425044541676132213174495661032608376737021824897011001749617689741451564424881105526603478604308780095665957945601327084558482027631920029617073678220179243031510112345357716738692861380884941156775467384469379636843550476443749021064463506831792487268948248763182995495562561300301234342760754853563242972215706939712768503943970197142751599401703638480306168900997269066859589828882357559811145232542493460855789729584664637794398499109581681232281708210870032152982679289290465137912794781290480914443284415424320573757865372287258397571452252466857844742372731054735001957160455086097118867915220345390412204581421446098850577197370614260156999686767530273494820536851709991355506463537490356379488477588572013591916518736462101590558836359455603239787050561895228813042218916384123298062218752191846368286775558747349721811948729898008350130872623346264798281390810132367031173805478867072948090304530181767075555945646664590753891963979632960101660563577278889307335742606376890548996828124143735147322125421403673114650976250601810081739536276279379837066656438882978966178509842504860725421076053952867672065386530499376136918021302231378677098035031621928669622011775019709756815458425272195758742839773848770875850257631136068720377099521019785574223340995028423884634330967210387779546856537188740610772745552289029304441552436567284753030798011297331251735301895161022154465468653583804721069872236700017949065912285518596711889357648585067303123018654367890740593423266283114026069356139814607372929440871531144398712238593406250737661085672843955856998471384159471352678169103956240840445891351838653706262653900104053155512289069927415951487182594611587002448203642593408433481982128819125568125422370171701041238590532389990464736687809551663791925484163757777686331093864563865052523964234363591014459239672978602341078929492401174465618574499969960418356996641633152859662667907168117609565441695270262416531847859162165315985236183563977676662816812937408321016107586667013445407782760131284421195133883302962705588518903733540371337072501648878950192589483496424904176157047676697158237333023933754970448707900179432950081812474939380132448983734060295095147318821133307780261538715623628690652141628692922090676040837875163285674953795257731535285704610522805880322810766557853056002369301957781040292360039045759779241603597186600198938835036203614603491714079781934517271306384351122598301296506853140787062320778573485621346595668723307983154268678769465580816893957958209530110394513821126069740394151599459975797237637257455441386239750279301518633843904339151478866339087889754598306315764093192461611693876004902147290572598423165421510632549577037246405441931848562479700054484873265525460826885628284418750873213888669549721873922893672702295684693686847563414560602310324233635606771528200262876411459440956121973328271046069582638508593663069190713179683827317697858301177936080518225423653488352583926280147315386129248128938941369430634334311346797839444645834499194232559463987496733558290442138387742884645827567185712585907156196973228317062495126257253850041739924099835123295328491651115369961767221760443002446721101974663719463774515218147809044978770454833059219036490688786747761092371397652376122270893253797353486265610140953413070747004914964179633917104898407112540912590358698006990066855435917439103119179624518526094076561975778098869233430254238413574268570320614354273925150702475550340780157583411466321761550368980168178631532576690459520403131259400654733785393628889012301151429631874942505520745157755995432289550032726674578183880126899453820782845738571760913339776170078282372068531359682211923999829903937526078270787787301068434196854347842111047387286902002559891056096894279722938241390539970081524097510692243953311149111284293455471719034594338093264308984712780548120196045947798220221398386957827307093338962295207114763228682285934844294717356454090169974329489672731880642499931335464418575188903046329884086653816483640718894824494083704001546724586055357339542453859204387153492666864002584627109476373334447773571857891621825432310309845833191135198503704479044251149814519823177241405558396485546777635831364009624663601645103890948577594203072937854009800249475745872210999666421058841234943451596893717510464464704210798412246102034618095040254840655364855297100652947300093537912977031807228305749123226946478513950616203748966174990711474232687848207131846381119898096628127809613406124329250143358856649709847753863321847345995107482770141186062966396812353988391584698392972362952254862499227732887408234186951197484482343008160928094771257945696558819053044217314141148037636726282270112060775708172128250588078703820123223781969162299804221748055124039247422000947471746604611849431656741523235801946462326852059244697394006936009358140292119226605044395714462660058431280276643128506264939157107316136561709838623260666830488270657107787869711274413664649944707052032027313261083871137449464623064012768842008174209128425295051400432917298377779313027496396994043187231942917928605674727718638410115543423368803746776661377547371280251307238892475653806721650492391708301955616223811368843100669663314735274782372827839689034138254623185440903579217666813822137227895247685475542275022006158927358182149562362074199898655454576494180954523585174782215342238988241155159860258406969803551644600631782358798255987696991406745469162294919877181624747921753251467063322478118696010789686346441859000306679280960943675864683343904266479281132722038716709414498770511118180509131058271585528430163120020174704970845837337254115674564127034881238205790254003837906586559435658280262285394265036736605124853805874132553128258315059442209827083891047767050484337479202577464838613334622289487285785833875963654432379456801092422002862810759111553046852797685577677898067330527653469483587907297507717931790139238305162210108802212215678326907965608812319692636866836189689873371403912236017059812881002616261685090237685151373173337360776062545353466988455442094999011142987720152893577462770846847907346426219020529843013884625968534067598883592422111624695623798915860240389492883831444473783370481884160990450396997294591143922501567499112556218956735791342412171692308878571981314219577556759808336153130608992856323134783782223109332703942128910233050508497501522599044300012928577937944889365424709920739383741591100456211306033138228404080132509246570074196951335110576663637172538818732515938380760533255770067661127610564782056892417056753065389944157742557070815225232324907522195354798260808221480993779659492194987122915980828778210799480132809890139412422096053313220014802112996401910845392772423337014947256538209241125907773698134271014764387223263005385244163291217384284293896880244764184308855164190503730975624846724932488678990365161515488708684243567139323897974062182143565836404363577189063797295632084211732865509008429969899615502830348882534606074234494680648242045141047883326857221468698018732121972076504437827802135548164372460195654886871579971570971126655854639798897033828897624693079678482412649125509057838816348274360359553317503897965826939299510345091575613782782082359492474323063217984873489896625734987559556884768876831345151053596890563842545773275624466209299477275904883092888604559925963590561774823613167955639753172205671438276474388277447489545867948333239117544465898056710454522763750207901224246126734771087705884127749799025038229864496186197272018581098195987125351383507935964634319709201053086581046159990938775681721824503316907384293297140925917391979983146311632183558698570342154620494172373525361948320939428545225993105553982982866490042812594933064000077941975156321680672525808181671898541587803223074701018335660020887390269798012975693613316727002436688896072167555501268897229786394043880625426900544845857119785276278750891428089627143027597123440783277173633662495837055095200526041740593483085749176575859782235351122481189469784762473352835180100038877108644364962109680881379515774320294351275411683448990772310935829686849269020697110826599822319631335586238728267764842907795844604745219441743503880746023574579542254851684315763282976526927800872420280174206322980657314845785572536916941825387880627533792061864381599638150005916533495508158865729575493513725236088882652265511571024944012581260964477864385397511200735910551605653866551601016635554980064930306035399107971239234133866314575315084100392704160426233833368625950363416349081851703994165132534262036989743490106874367683783490926672982444821108714536749977297287108878082517618481775819245461533057681855130217596854064337107671216131257848996100827149455179873093416998690761272536994128549911094501156130815887188468124366856365459774936833513651106042002053707053170432158423535225865461420168622766124359995475423385528298231522389296588859254428036868214532439722561884386247094875399811972849959301298290161217486979805629623728629828974759197752829794397688476607838823125409996695295261053788797007241656691724990925953702799473335450404668190771469773241455932911184534815709022377699490769264896344482922883964732767379056980383360082272565211220671156014892192950608354589630803311187742580363829409207400143630666931660675102667714601054942344876632145014072768933055517520549213190116724959273772500834712210799543716029001808719487442127528798541335973784635531583583602534804213547204880448323732653071482860980599232938407158963335327990644131630841724271296259222951729125792018234060297266428363412951911370740486351022433332888116295932804139079775597490622312880669593771139590290448916822962246350173870528053320287177631390426470049010469251738759921880140785273930958515983110223824235758623578705765909284477261910072551026934617360555279820512713039979325972033348152513086182303556564589315398243880929956969442646522181414075212981846689534656952223279115158292986491513395582479869943836232015572842990555343842057844319938704199067989065941418616722813652134630570099907309439775383162214560385919327266440502873150639160462000928245703922703426109868864021026437322069624795345791013045086581772059099594475284608479631360365398436874162909930760240578265906831279333821489344577478876570428070001832236977863654665114040114793367238572586515964655334919998509764163281847801291858727297111654664459250311108447917934373871072560640286005863369043766258483820947059035530792884758959707204653362577064919183551232861676838088992379459344695064687898572275528658021695147796993115497967639418740577682729648929637815269058376843613430849101461265854980547591696057610124708290408456026196593039045314349126680363807290977856802475878906047990899713069384287166021780969340273407304613699726514580671334821603421012434590361528476861070815253828957833623750893741002241593297545376486156098024389840793798742455875721499160405684665657562467048156485332013719878096480161823739228435733842701761576574908797214186053837105983357902324561403641982361489459718038586183166705309593194476242807850336212998421173348877281446954973056755190825982817455092536117138629129290857282088346082979204657951234907257875802515842946604701386742696298941490937739192928206775704858886675322226864951827794263777870139993107804672400176285135676178137945493790021066604960806748061380265829527549000740724820060625239505372074206159885638424013172642453219152201088056155331711592421302966426233695607431817340243954249878777256156654574280818343491601612583083774127427436404803233923755000291268321371100330902886220507785338893704271303708346073094149409156744358295469071424455801085553451649436247669071255857752616189470274128538087682297609927788974783601020916039116972380579009023479499593542689977560561739530765622427803219024043028239366737116683607768116841095673540024969045915291988712262105061437502435036267775706115143891772482490117389205773774941970949258119011992681955133066520049392345824086853263359695617276430161269507402509859135789208086985111404158543426176158773809786201453463408647794593847543430169251389896931455194817830179153290614546470236604818960203102288253174177439097669026423862245265397610323155427795991938339438773484072823971507905941564652541049273912397920286084603287261810619363433250083575034602586985898763798065201875784740312580262557210531106502789288034609955952288543022553702294866062227801330863239973813826915517780733701616245172365245514073366737323853899854352719276861882672232283155179323351771649697233410477212917749771743009635463668558820244696115678263506938799175718784684343018428176512963603678607426676032364976085833884645518619174920432274265683976345015231178561835636498492193516761355129175695720738459530194900703644245395445636656321555116858122451845615538276809597416529682096880107289284436910576664960800721375666084595584867386858843787510197860783889111658262557961971099697119024987325508639783657828174702836566817673228320777861486441889406926085775416618267600358106412371938906335762484590508887444223674811706586953874066247353545216418858323416092014207956438531462524230427786802410693857356777910809643997961767811692097119631378361632901190358037870623233381647773203914873789046034643669432296175119617384754798863548592742304360468296346185223566262455898684814259551623530505504148599138638232111667265733436926636166442870760509272899284830875164579367531512306966759535483331161902970621132351871116642798232488534527034071738925675223778638155347427296303938014745237964926474428275964320557727857466855053791333248802799607136495472693354993466861973805108982893237665641490875299309132101745375763372762353688726821751037410440829342453710151871889267730854682887637276356545750494467477274159672873123012972289261184582408893678436130989432697580941000416467025638171593708465429319756717004851125131196452837789774143837583549011533855143288368148569589682138897560874152698966166170750040549523987853300165542341061056024957042071656530160073220076379955373037100069214490944240335120853247440543916078986163515870392049286702913829152833910982484865888450337110437723795524042937899701537966658703239201102960559716495134288675558214198490249955854236495874248123372596941447276873770699788151143149330075862121376853826005013969470446954557831151096677783239558677005323772060768017872274247889188287345721702556901367229070839079733618978778385870714843983313180862152537899236333341975444305961096011505331166012632183797717016152920280194486119670820016656113782885776150246425095228861309999838142015781590031060830808487298676552187748649377477638543353954162444320707351692185859657667582747544118456159552103929894400925582212064491864287073523531218121591403680981443152254081224425381357833464762490271513216297745352752074753871577568566461691678352754220677433872859405363517266146723199659264648264770364079969444383514688996733077536140215146847635047561991261455095702823786369988407903056241398309513762114812087397230848219373795510270104569438675446622567300341277793064862057018364327429422109882378412010132623868798315804009486306809019377373697833975949844689827456767054019593551534638669872332355160926695067044143355681310343356800947569161641003998110365771271765005564662086340751166268613009520646499699017380903881649930824542531075767508751430123776139038427405540966404663197127953752557971483774514021416645170805881169120771945657068438427738939892130298808492713193674375003687489500014894596908299871074742618632325900444438177333829703168342635924838150037217647251953348636404745497370805516039535602336686862893176472861114936435220834091341854591608644047648388647059999653744319619662490066545627287301682584005153960934313119046329648855966291306420015973822564439913920700825737625075561335984810337379912477320057872569320036632184005304084575249268632294416661199543347268703342516838427003840342348681701114531839889409959217113387362181936650043526993845097202887439447993914035300055043295072615287982057138553780881465803455161974685117324399222145184980507235715659722616564690403389448831397489100238424965655570717938730352778179392939597226307287925457872240030873649062765890642952140352672494778468064808402899062610517449703858994049367316704482583273274466694574066772065871563874093986227407303890580363358307660589297868544229162097655485965792550015671742478021274853240103781556847555996162413983540317269634203765051869109390642227634619395604424106161848393159659015176955494107599836849168330720592976967298305527063309666023531840192248649264260261156677802624726117327191477484252961422274876371162382744574085822883052540327845348123619198441879478292786987361045550285159314472909382727397747075233148422931638493833881006109882104122448077482317438183654289176493976901670595700062030221886285389741507960241293244037440496376359955279213463060022483584835243135353413022949361652107010500368580336132091897370154777165729293372721486563509694584738906349798768239194414254806407506251021463334336519392717143379979575845636260637758866497659667177355090639268667258693040377543441421684737887722229675949273012119090756666976704005899567685088920002812139710913861021929500934342683994859288265307576279824819282574460998172880418261444035131770166592422551797066078223838824688047596031323596194473666997330655727214171048671689794817562004660563056492564301634217531604337863894508311339296174431309651458414452466869659007727910592835813398447802916159643079731112874422336048279466139961588437674067406412794233152899862344774272409184678019941687074615048710280394587209370171627223275947108755596548880648913661087468386290145037052312209288806415251656562702380366546546612579175491696453022669825537223586278910677481816369765918676651659407097621766210200575035893400721229939748611389398276321248046795581023976141989074079268074314012629106706611494764628096743982961199727181788163595624802903536120126825811413407742366190813848740818695288924120542017769367561477124219891253220034776368266072882136699577611873148435713593299253439080752821610621560982629175294424340020615278423709135575666793982752123732884938755062881790245596555180246207035304266814949383720328284110478413107331646354909081493280587747270939798708076961179828257446758019453073375553735039239543538429822412922520696947142173453260527904061399498116678490225687742897842635155925536260509647486291980805179463862927132837269771707722224350056932568921248673094773026159661306819060542097716368980932660174786996445682859589159517467194764332829206939844344193551785043169323576182352846017680196582246142662473546630658456059311048983755822196559590328202091617119831961234540631618238656100190062199267124695021971808624184333201621881622300421882530456846515470843535450733425198707254624719736440352313161416092229263439989425046002393100290055699671093936978676629696595667889915642640465634515998858206647626842470584567545449708718253270208884505955416490163095539701354780398827688748871220727309701712645197781097612561153947928921078608395902090686716856956012810025470454883134776453077660155545297096782427713054708097232542100292765180074285998014918776037111193412093963089241411505050417242149932271483352225565845368140750817807267295839000722061242706708211205917083555280792417888721361733591842783027997772534003512559516506272640069529550725393872071957194255030977268052297732906563004130071917946050637004631146666949239037384008892009522604499032676844601248791422622354960971908541856074142897482355105533903533723385300699101966440703894625495098720580483980298538389304001391575539988814780525749806848382602806705408237772347027779393331168015406938318259904282031757674189806697088334239561384527821557764529219789245194230780371332544276299599417876531870045228396983262914355015850297092303586966540328265367041859798310160274018304695912251811464082497334561276952992312811857259768106039956275618888824763618583907522762175743504099362926703143992094120336409280874589950629746743146980305459086586479016520956408983865436899113029250146924700637429291350796730275108905234161638674958927602018429004057469526625670838656995473184902493503438900808307666768460043443283157227294908810941808395480880074272182186061270159331842577227792427228592449858179533696327923980889594137854292481233115086292529258359996226561291084563879005542677516622498434940874596204895730474584000526226344880302493851337345837296740721082606804751628837885469148638120995747586569096624718241389973115474782484752104897091633004523905381642657464387498969283467900739621048385089533069604634122780608982136564589839238497283470453718093319688018981875183667485335188517579708837578106357421077455589910106907145088131940303684195191953289954336308069845699845022201540535605076590460691794943992480460203300100723274608691507600737741538709510810948235716396860156471341339881597413224364455468605073604962488978224580569800635960455855117169514482110233361783636869265057967916739817055325635191027360340303448491477949359168315417237228170874396719649235766619797152275422429627196735142545032299178479763343948808671978004573961526709611651267325349348807144111001642918580991813159143577830115624772959525580833746609003457232552987783496343055517022790051805522293508729077727922553697657911264939674720167838404306445828277765160238376744163709674912310953740323579426807791575256732060330421166802931542096594316258741170870615198875336326011131037233729691020462783266514881277807403784908498839483088193987005298986894171365841578405474280574420021028821303866331473582044535673146992174844248588057019305324544949529261766821099965954986731380850071621065585219390656946050769483949302945399635452498665564523815264812261343935278828560695993658210004637782590002846655814862737199730655968876204565899738152467803361350056449539609370117846966408616148397137034800813897109464372848844102309178794926515531022677209782484176228371804446304600457594875008749425690362594515886605191877894986790750041715579832761615316407798176160217481341395148550073833386230192342465407853166080992009080883167588911854311776935035543820616228043880869004824594430681377747785939204952974866646225706485654168641832678301846390133441207897254776134845119506874514778494554600857608577808655791036816970876858377072383116834847492197907742948344005590739484753283929268126482916001838865928834089014608292425846975314386542793568298667556499825095794832227219790236201496318697450960643538754280665244762112195083595558787015824494458085005229986886209225054146274906984302163844585198204490908434093855792513744355548995506826815451881626699106676647976756081964226023381801993070204183351982930354794607128431220487435914165644374067295976701953820509490090942935492041563862396411075381817077752437093922805653504041817888653235643060134973463650378117998636182389544219831016945734401167778883419247989339738221287571731622831481003771455132690526929720603093092356343319911846835291554715966782549474831823076722746598112443053206466982581324064302040463203080368363240983884338665220416284870140735019769378101241299427147661940628317114372586572438841206949478414419555050392442329894463876022434705743362975716496597767443966539387026909294919359412346247288911663306425713146510561515647849500481836064747416624764042282991517956617602884841425322235852017197437123841718518885337736051049072558014233594843893982008495463124185360636030393166503058288522207550696083931936933413355580457659920324926875152669338338345594741586352628706711771511971611487198144137974354577082819941163463126612359037312608921650217296771806371700476644144496994736309988174598871773060776866977847720810219314264412217004595047603696618715864426161555880515931303650951531678459324415956129814377297645059670673662127374718802749405000879002215340706167087025539141658557858170971506871860326937983281449526762565529703926048001600139663856282435962216637302589871722315446842004253018653360731548510648577669752050949361841352929127761202303481648248365848902346145626103419005839291095370851488880507750750004601275608931626171239083199844213542742648882014133815379764328818808048887177018995239802264415847390634856443290734971030996781564691497404036641137420180844541714173737349114516510585529605704723103878182669769112605031328988787351114793641230241575800861486802557008745404244489032526997694173293245762960075298574689522567479320104571828867207060952676439968345352908460082480709078865891690453270258765771524177317855830776426636808639188642639548989971937763159601335829325723767218495085993146110056248441006473981766454333508069684890730308900051681581943664491675060792672218934751517721800854966264503221385059091512044036764443990249835731472289469639164969157434265425733212830343780319276009485532104327631058630632270347728545556204106435363048971133538990177203926936100491788520710852299183739270822911227058987259931948782370141973476528876524084379422438177609591763129059663458529584127806072600693785618721193680402873099741922776339947694851438917558736638588845646446670860162925002149224364846547792445192473156696760650679409939532862411746071543974189908229654784596952084899595104885753596682635670601513592221909226248436526523147913949798341297824717114006408824409718398203393202245422387781376070860881933746681505227464323585495488579469273436628822614333119283139566284615418545160396755495313043256218690403329009689275222239397261470419320039545551791674451934714312840141844641821047216096568245198711484569319757226363301406120927194147011594971884849045458914324845114434714147756848378680885725515153837250493932087473530609755932912180949939499045570804909858541056902162219680532993696428099169871850013297289096009583924132689262456285652498956664650764407936610193605596144929431464609903667537017671115979855075900305381681699402416550921696271716371454277225395987118983189006060541662046208267997039233025502336657744853714297189342329253428291286777961341234989353712231541795127873868377729942673017342662904917867648064366521140749036992657700470906217943806146830476946786289775462946677189241116273414624691627189787838838788274787453456797237566704204652072059396956336759475311940842949440716370746338933129227822324902116827913273335453353862381280984406980662488162928946270886480530087703618652893564008934510241250774456808371424704086704653453718992576160033824452979915106273426639104537462681428844417975389640206473092971987893426018188445835387108015555819056337366518696025727894225444871152996725461081593355252442162428923680148470289179927308569985405882104551219773465838330435077173161563528292190573683968432659063189468225461061282466030557579632333585165331269938749652441703371365329391917105263072029030216305764693745649002692450413872852213227395403894136014201594796135560268404878321496672110250422721742882915307460680435937523132413977892905602091612252735505917108073256945954713674952210806696958430264567597831112772717597833544134671709846901198993972778926822490636174746209274073094315624844527280391468394284899099142687699841198128543886634668600616313992006950478967611459340764256994765446417742669386374049145462643580626122503789430355821881105655157528883044214170298897379425859421141311536846295471555549528556606784485693514173201727294189638807362240912530310796707551225317777895607215540180455512389467210197267720082971971682850938456758251733465623670143732912833133517498425246159787171534147962725986236904829460559797710138528061455876605072527698560870869717969751551193225557381242428709818999114952939248575738665460877121598781168683846806867900011232993339829941447915894365223961513218025304105738771682773538910977494972088944166757780836224281245307427456836161375834514923006009136140324984739628933605937767227537723734975288981354538404841762989912746740905128836116273553466819861873255537591682530668743031258142209487523827667403606653616855842562064182888046183170952054138553444761803578899022993273573656622694656161507285820369315610276028284495729025735357183641880412303730225212309291167411979334050571558706742334667990732945549515710588884918916034250359414896296908494255553803801390176069124336825650967592873297229281354962668518970165212446406007326902352914079049873350306546810870735523443523635390636826839472892748720930752931197442757218428170965393034023894838925879991336526066740570557846687426030867065072066237660714955547364071606425815155298264695622174097249987309006553674899197983838814418241024388312524852339622965793284329643000930262516801008973904750449825742467676890456795235112396705923238417908781878445475531031668411573931503168350398649666852908015842320808394486854990995836229339015354479215329130437094424995529589963998355223008065333440207263700395996398779246329384400983451835462301594117008114877857209574851389681269298260630796408230478160044385786556707237387238866039933200483779844457842512519474602839142298012252252424850374291102600370615338545434298559087757930377502905530471881929627712498163684567896640253610700749039467638674636432576644780519122898116273846063220287753983511907582378465192915916525667910605486056904556565103340874258771347970058272799333841540371284114968563984699433208989957708281931652771373574799003123387843756780860368109089389481606539780663760998874021605019517253055131338465117042870271629288737921453878759167993447504413386986667518471419386658828865011901702752104798129728284028886076781206689490509945694498948507002009480280091030557439183301875568813338135300974826874343611990078161032960163733271266440444268048031920250500635462294521709061749457917306900424912862335580554610135393685365818180304481080722170700145994060537747677685822378324664529723822309448721288238679286935924566980689050727743526161233037485867308398215606013060703830753011205277225455556708473037301509491567126473705913960050721364758985669067845094165582254506956441878868201228116993297612480811870239968138060590108714187954005994553869741803255947403232599570622289830684734421412603748646549914782147230870538570605305491957490245913360919721277163210228298183734701264882525341777836319887506403367846019471101701432617146489879298109814498028216833455622017512154434307912027668254764361467477270184280327403832517485785167728229619770000113482808344655978877259777125514413645247836105353641243851935606456730372411469585274730204600005698370326736428540303286153060287400688675084278973247126048716996389655760187581379636008007305306164686903509463793076203604207493066795952179793027662992248732489545524641742709284699583798852301452829420428950623094183426512601079810158755801044194252165771816121500686105067381888695214971660849084083851956790206715855793216464688451899858185467331710694521121003955079811628556720636733315717810769049937838793777329318165357304977819277308262084899734405119474479871947078463038527033321935685893935707051526294779075699196259604013568796419713415744325499145334461390516407578263443115490841083081192740985200046541885734705978158735402260653368315959597821890884621984133152735387199419267008699156116858560887645198256582510404040917972414402932511116220505382261747747615486310554728248115459867030143268721826899691280269697713106371456059672621309972984739012428468498571418277757544273871515529062348085710480288802846202367074235467414370818041376117884365706723431828248009759442711280306067521920248697825991051907668022663532580272536237660539270744070847324422568635507326636996998445071727981077507004220095608329198896789605192156692087037142522287423287821663615870198473196025536681203403442362796562083058423355346883777570148844355230206214019533868277800984578174398447295448883722649760541593667300752055401026586481620186640498901425284424192927408136289175926487313312911466557652365530696800805765715919710865614804593198901465711963104818246176925010932234683895782628069909089835438802337588881485423496411816572384262039315404540389683996888688166537961499890430837750030179447024822974578553830204768363706753288340080250288445605320286870759894477088341138868596121960245093484860298458948870858004651493937794741387532757209806980499128982164605984626131464651390911600509824606328280444994320070095414621462217298767201995586060705061021448755778156242000080681144369696826278348390145305873251522115732716741485875456763190624692974661294284906965613462593396007928087422445430035679837998923228246719509321700710022671413781919755294562324885028672680045204213410769914609205517731225349681284287089952247713200264283704977103748750613767621200372898277462684155918424905221509526537195673197092484483680848310767117900127280580366212655385809545156711968935335271097783631997244344540866324269159047282542495890971028050799594914516273300545324953947288190691494878199542838360295673674277235461305537421130072022715284117395574407782291146419107076290018275294831137740877446237275406698562219385612950491368704362555990816250931554944722623569118793993371693239949710088248728497784971045514560520574911273263086945960538692434851215689083887218030808875071289986530399152638878276913372776406176590398032499349687661104171220451633489984847647644664985177442505414605919256315662057117843224966333669093166232328210099465185312924882664184823988770874634152268626290013016094478872809229518517949282806716823173061153321100009457712792187721273760223257980260954348059555009160438116870709701884597669338339041792193550605172332503255293229265514553995315291798903565709480733562533042606606867037575785104335220731843022236430044291931135549906537028225035582332686157471976593151828533003389793175490351268390436003205554113428222769264636632446004979367061810568520919604038794507756841038304099995902892904668510906235524330652415117805418316378529757673716937631564447828300499474066527081020079877983970788782917200700211089949565628529653497326453235859139139070078808192179657496524190194546975168609930556358036452043445546137659176660151942438559747551320499950627773250584126248503350826816012418489907576678326361204932564927114262676708021073523086278187983882650106465367389331419588574353846619510264963397567933222393626825278946334282649623429681406176736133639688713420870015160060200705413159063412056979162488668194098521202571278631229062266862690574094318207510700816907152887539172089931881176951351957069985211002856343336234975500403295805858915396829235546458246913068730092960735147127371673932912102347210951668069925928033072111167524398235087018174168475134407151495074529952120033704155326488880203056877249732789829764063436725765143585479839330550617799913414646082572508235268824702875672964154106760099736090846146130467654650595991801648168989339676983266826884620812053831600743228269067094026162569400162714193387748634101980969006456232733037942410016058805273746821430239538634813380857437907112989050734646073521438975618739827682434364022902588916114934979438232956301831958672943040959238655850228578708331692090925979557605087185129340476377228318395833389286002668860722828227804910809561068602509768182224786482051076468211121941462463294570711848251440383196662351711693545494068178602257673111809888220992348602638756306182725950013099762232869605136256143264773211460593671850942455154826773855439351527475960368668215291808791389242071138129210939788373767239485971202309952075603853732695417881636134890013428101366199941786957027563452307548975565549264130442522407126742483527505731363547718471308404979688223362265202453884808172588108624583855425931158070581657899218606290826186032639435857088584108955941014300813278629538179191811366082508443260138482370259690024922461807411892721656285991106109733723698651242555633658754432858351548372272663340592546137780731651524143137940481870474080803689000345321055314795271498993945121652893896717583675221303545834358864109235343438894858174365973591662414279622722669730729551092621533004518535881534190735310261790308747938074798166685334906406733763516750639245270487761146007335540082709372064235739076022137932160437799821221401363004120708229454669244812467588889337468427348090010939691449865515794025360501558916234358462740844484435476499163983514608122015509144570222000002636741342973843436964832113598775922160000897726717851526885876638777220243415806952837730929654762065829713818213006105293758973684536576959896980151680938468864753015863732109597340664529561600387296941661384856751182833952051754754041475338382858964870736822255505057842233454006758554886572341988030229759182549807129346996583571413684508109463912917945082794790911881202723999740894241479275245952454717252908870920449515487547015619989138913177254702674917741101274747549381860200047074993372491470894397754180425526207247851657124899249271724234517615677353132639110579407635173853190778615221198921146115506197989237246098660562163557277644815876286862124354722149006076611290753963883187677673721747548548918188862509628768389284615109403832272454976877606377082921237950753950345047639019697663554077188924067124278040179808883470743514946017549891872191981013501756249459365177466799177869906051195086704103921850527302151661163135079670242677402570792742180669574429175518290013231706426648475009684599294189323273259653027689817715539178896910542060854368661799118916460500710762240581549642112324427069305902583336334330767242037213867165689706495742193965712224288876779902320788284342392353157618148065622492037111023221837422502480509762138195746120239436238309442949702334230645323300048592630800098761296799642120477956827199326189282205728989106779242961040545491725043837868580725259072746809656978284367307206237419449961094589811573539900462441620750592304038159177086231237701398607994460604579641999724838865496466919101552610269002793943131603245300123321518061193123394024853000117617721529100788963016268078567527718792847522692840221609469295948207978625814931992769257050350917022077164167704433895949328947968353973469495400636735193514882020310333163573749671318411529179453853644454332060142556956196247033049818875429520794606758805701135390519723878661913310232420024810731810313450268659201022092307116252721899350188530611833874031424452010784983258121447705980486142466005302806790926963103436144986294919738170341826271644874555601450023293865574269276662710068406592953041298337786283999605521983608627700982967521244187244182445062520851185990805994930819335839661337183937104015965963478734772170781237780612324134388184925280470177890552223528837119183686025351388885413814062918986364759272635083122897960399441957564806207067001150538281659478196273726256589679003145399382180728704271318651456825735669663464705388282786950684046194762623269705200860632357403950241012683582790663022545400750130750873721910600619845693175814317154182872418849886258538105667942936387264947851594125777319860065412993863111448724362555279570359388508160861635360605399869532574621403053826273428271764959112744543286048305060265128993642247590316358294995182794613794819684144611012594787016802560667270539361762823711061069302920778421270567911885708912105910840648148652959033207678088998307037831163539193533505651027109386651002274586044778946249919581970156773967825521719600554554274147885332568365389308906430253950834659088640595966243667429239014303285997583556935612035178203772258802852326262738755970422303997365447903077810838286271794205185919190577610232594528422701757938009584285965880872175567290865238556592696613828982034625340900861080967404256514069038251636276554341537350948044028327759476427182252438229132467483047726575676839119787000957845983962129341176145180325012157163541694336787280136342921427244071619156243773056482524891306344923520585247398598431465046673326351211905655430937200792267647148978228298295016201514435025840280344636460909275565196903961594015888040416951871660552624896290737937848156820229549296515685859552636797333175949337907869985592442265305076918070166682591119135177284774894922602787348453687314740732662112748070351334341961896015784799038417795208476665357422166431348237487927304992197158687829479772224416256542503359713891812749781390425125956641260209342867568800158485609871775463799959517648197492208174895492763108947007653256228808500441099618416810368351664116095145576650589470046630352928352042861344529101860828380865524193818358297877021502234015957982389620707644250800048329710744439149909810166163103203398781083752845458877920935496838201055650672380232511973730100892806924159461560180298923971903939541897360956290967773877827634229557017052024467061073167253075352518724070606031365035146173947724395384710625444530164354509371247957318394713006700751816593495449986937135262195877489813498958471439484036300034745789570608716264179352190645072842791201335109334561343718863421099838240183298344374448197003823283440658191113481230432468094452118064333027989882472226352314379380406012073247436060593900103833141546796484711943381520924274647518337281000430573147709394574529863805668457033691183890725393478726757036001255040747216402596764647852389103652051897027723101281362728034121639427091959471428455713666210321452900373763486160298125237339818656413448731441646435805409950019448677713525638904044000512234973422698644539589905455178560301719374706668916804184703181135299956501488445526957207145943999536244511329850483690839248638083215484532585775462805959325485791346979265275476120759187510743399493041829860625157957157708735171530530164626890412179779636269514432423702063632144999765913583795203754470850249917452380013504065684610275861981152315734034610075925181347530521442383798956668807846207678810271270966778613635281869454807303968560160447417056958022206936327253762466472150455619441971557058209922824264720426339768233772253663847670281539472478232944804238505337927973779858895372846046085092685402342840762161739943324266622472642263175556035417082478873679608485374312023483192164501911009792393096722360697102710101235109583910868980825045313641070113987120362023550099274937059158777019467505797040954312474704672837108460673534994835183670829405158476579213962223042467964448801254870694584551142667686332010975895831833673675468242443705912281207401105169843496264870778304255298599185874675107315145401374628025927492868394948154461285402324426021316121662437348962265411531114000645819807002436585471780722887560433312905371324940793906834276085641445625273642799790484223862727617023683949422768010387714400294261442918929927891789477120240333225556363292798735359130682798589300913218251640228238348019459621263862509359959164117845518219023790388549082147366719854889270045123057076304646647773255690131680271955095689185797851974972326955291496277740091121984402152704949566379489534905630893870390330009874792627871450852161795148758930714639147300698502772272320396659268718084873106885596424015795246623270416194905702323989783162336583183817187097268883592167853280889549003141613410369986006817082738318916582861802190859200769204854902204860297226234733612181584501231540509962202091638056893452472242135022744626800519985990365099349968733440716253301280637886333239449628095879364719773651495172331789859863526382999376410730806987817920316258386121120282472696615153665017228824529162731351013849851173608600987726308039127256630162532035669474043638342396791177318269388195234559771084409883114120956455514894218397801104029777395568930269472427093419898156614617770037096984969150801646641932580386207195012131852975799949098950291948281740421562347412808545750439619589468496878235996293257378109984437938508339814866552825527496187144666431721013300013107428923420358599157756287506088269549394120275792817944615445287589769809216321741886662990909232720699667484688493681074732221230961153774088713051040288998900121009801344942234763644120722114192450188570935245345342468242795838319344953407303759354319573533054871060398394833317249558561623881705454425017178566892267432980800866782039739727583636787800068573673603510120446037509637045961587662136444056857461480547476845105374438170789167550538259453930813640188063505987408194519859643912463347004171533141493645130436337628055335538809324758579665068463465757765844052708592414729779005642144913031944593707981337239455286482632485143893210743165249250528063531986048761240154289420606801807666718799287515027318423614888797981351720408874632566179713746942874564423510976240680862766553351538520036518813904206688507011775808884072883733254365813366616458095977939772973423082498475085102802786511487928094430925062191041314275914119732889813251770116319447905515188164319181536591719706331497521197313263365983284829819073624040223144547656628312373530652724821412763522032020585030075301949581736581759736809730927601883142741425236776454669724926325273998261432812719054660495127686884911791485845205704501677041517237765053572006598486198897317142558939897422776814265328337881692168327434284184922339433796653019395855669998963211065939340803599997354157318313299929593237827256752231555720486882008988939625854504451631460953732375751416861284170234565057734352012121195881739787420707981747897480006908562063232089615086643466291956066755912498497514678441694630333553830760925163238961642561886178527635371513913974756270093984187163361937595404394146111964600394209781939170048702269136275703112270271075109829637344583100316671199723416819240638309559330763231019973296207230696570674073646753474090490878456155631542038053026934462871017965973387935297471755899707198019035767165462335089426528219838703193186708966507112918833918899281961706946134082983356525926629180351719869927908498889142817133899189647600929611490034319356170003017031140355549030212292513462937456288470374097683916667367056528433269917186302600901733001590948309277917392054040547535392740720914791718842128128916013108939873830678987181251490123586995875952207465373168708771085737671722636045907422446066304196483974044502918451269171077047711823527208101036233343653308167604789707666104303603234819386993024236925217285582808176888353800629716405236776101351109444897115115112723011083772898299811655690061435118331032128462347450049741257806758409284533808940281977702895781696543256259053158476996191395930274351150942479549824118694355022835296064672507021736315254301738997393757695278059415224957730423498681077520755314659896478086551313174718025367581966554463249940142347469935438471816791603602172233301849837831961508038806014612535650997525716756548407223396341224095383113329703712177513472313885290520936756063468599695860667145619084113385590376342666882016497782648951622543432486206739526514020433808120700060567065987035517861637149450944870665905063407609465806025847187573747145318423570218243409349097034409136490693853631454291011171842318347847803201055878780078854934185395088833983933700057542106493913214806567813343260384609119729266703038545162965492022012050127039477978347040301985419307520957964995154473930795159190062602747941644401632433132643615338891968912094045859093316785480549715992168476851859712269469301609637980363773674374047498112512206882965526141242512018125331597126113513241368440318065705040658529641900852297648046859737166107620992964074320293790142979687053403344428397307139019880347023715138011679348575438204467835578627856427635997940380688647061283657989551345460585558138410565946651573125636332667884887797914191338488351097248315734543092562935083156734204574832838110388194287567625271550280225101064778990397450591310386035014748623972763053459381596040222117397029890498528217728503460057235307230894902766646858101973701278104324267083690441127349055650754604111420832996954865149063138646613140552983823529982604984903814011489052928881768844617705620763916831853559576255190405956652611776911626128158642260184981954273974889069231190630634925143377428450848123523481454012078130965725464754020936916318349059052182384015037518357828663640677567762339628397967259745619355225490694389747763040804810222751505186903005733216933748605091364975286798382521298245196450289358128582562044728013082732570536552449272859643766192367969387346577253316534850675355726352784338005474047618791550513837491697396325118889504833358996894914686608747336846586486851345483982126853250052952274679676615594499380196942144675056939810804754097626235879987543397072005091550916477413368036909733568041551956885963431046605054231119939577400149038021783810796861099707267112469834442495647631726093507744369195509746211314379531447897475593004255369757601617055407596870723437270062678200628739706996551920695734984823619058501433808704003877940446668026247602295077612461297083897081559987465316502739923276305874867952899635928935735003277351946343612023117693627641432110690044323799032878637545275539058242344990347367559374097447417718785221572503169250824551675697517311056799791821445732507352740174491336751905399222192646496969745243945759140211876721532119298729870687619606356341515779851612491988245091930859096983113518832606004827429682039685948506433423157491420076080721131257326941678271924698810686858282448119233170426522292688596345844519422278061990326772128311415828772268204233579734230715036505158025478087990236191242961076259890480378636974820657506716981692373504762004880100992537618265760232223612074465602063434908886456388209783665747819835295871948558216748391519182348445953947537847494933630227520689663911208294215524382915038065389528561402138207668336460775597487550332775824972566589683067562453583246887738984832310202926260336766398117040304617043924128907800778534697625786224503648490583716120321208008516792849650046484648757683643755087573018002143229219683550219303080040238444066674160341257056178970889270348364872309540066222491897652315395554421878355836477138933506224832913784460132805393218437904622116833069556209278298794031499476163363753440018695659631553677104972163019381278548704271789757042860768820452800637118131994826120367974302003494017675681515924212318308214204054044359650418028788223213897607175828740899622198952403010947961036931876305867693272499977930603222517586883691405111401099338439207966468441224708077991303745847179326872266850548228760365498439620683483503274399343101246478014433227290389135281164986957508523600360353963673924100203833700427925799976202419566010239477229574805870415179663481328905966634081342568344948059837283840612470897469067610236953430942949113303913140703021724508508587601548941292555503290180824397653253713946854287882015567175231889613614667516031408564949015613560690701002292032010028738399545173729867013264922333032509841733501507378966542620065363832200230827110417717775593465358203663743678970669698433748827774960316765385765022080836455890532739916783838319010687808241933518663635881186521503726491765601371270465187491213092456168526273374078034482001300178963741199675055066008000845874338457719177531504649202358832027382587106849452168352162617515511113535580455099757691343872201718388637612294115458045502501217272240101908402735085717104126724941060561111740445215885062995515957715410407893196320350583327804616130590153526071183501530535781287047345279952952453719111368470726782830898929175912807997131426584520630241035981979709278511393490338148643101773958938906130530845630768957750114695943907546555374877418474432487709254851152857399172263643897513187749244654238052057200340436957323920471861627585536926748451447537473389741475110624623455387698210200468054038336319788061391506788331812223539271160177534238512973552527368783607076219504519224404984336625301911842710198556873271297156346150938471162330848232381490217282054018712650478158306179331989683299715048995741265436926194323285365833700225500731841119856462704350630539542878032784957566920539379733806847654724196010327544855285671280145486705512243393192774644845556872167189818092559139513745908026472740996550376529138866373582628549060592641727408644816201692616741856252788131273691178552343189246990988571424012717585331357127798312280001482581617795265533894922947952299553190941930565479221266867966088762775929132228016571929958424568935244827152495724624898839791952232096905532345461181030337067497046131183897326431043619103065548083717431440404099089801205461604345695225515023117282858386439777800745283992297376644498510607352801138566012253923290256490010382988473510968988434366040004198981609923692794759702902321090302052402756035155861065432980969265902346465408603309148745515100396581412960751402049027218649532738165045273786843061052159592493406559820898234636705228487327540071885454002829175817028146190350404346776480264474930659518133968496451659553396685555230535825962691139803637064018449794832061357025412017105047645900960131023247670824244056506421263961082635066012018761231980297493160993002813299213796699101226776958620934505290314167019908096623815353833021774491444012097851869576470797761442410556167869837726934976868756800281536183470446033607301264514556479846599646652170150276283292884480427188036568046656331397891176832685792927753254818930912414181518765096784472890188657390389912730909634624989487156191924139966270878718990035002767525298902430391072538215116939531028135811847374655995131887622524350371063792953742690883677013295778219400893673100602894517892068807988377983176900230357473052990645048638577031849968002117528686820522434023116796228099880291688167110139483360395965372169234479470329201331646364184404862757280852584284659415615540847221332410875505325644287556714463755508698348627523723976030269621436572031818759682080612817468426141789380994765902127504475595685986384827973044006811827744711042185401495255489298026924771241987574586888075739278491654902149449660540915373947624392043321027320951842790210180655256221728473516689715148619120398639781961855801828882123618150811708585960487048767714027323450412087720937028306098942041501621485796580327294637967503865737978198906054322811467681087254797972090709019484081546028894463107145828771978717764767339700932816837206946587116852332563640958530212281298841566997498488530869166337090389540442104172151453668758876692612979374548144347053012300208811432566582322053147331632856619530443538707217087694467527870897228650904147584014939523347447653356356897822334038358635318690893347564919051993737526095029213846452474863291805120046793749869475631608043078249655018205614581973796097579004706119998449247227971819940515048797308749241157923432095194889073243719129932281002440882759581648711252491280941745186805062702788854180219479981816552681867923173222339422232305536316484975651733638386489824857809574917226217591507787751450524725079849354192264523208085091241850087482240574894859822909664508530147015778900870007726789746975638992480883156046665502656300876498083058781985232781645749559345947920966386006613015445866262897547881394610306161758135644877291645364519761678696474523916311769409953700703907780418285355504655455761347404143623677077486007898833965728825119451658706869022931794863794117252832236395573193375040980279427007690551272128535414959264821030167290585789376145055578202045777794247351244371240520372609422393525281494638312513127949481195614882911970616840724239647363625174800297847732694861607901693920268638448478248713003367342453110377356796605481105804671909240015820025474621296997511694358221428731660619949930740014437293882326902809515223586957806194510504743047752635786843938158931926957763830166488143753296671547747326548080175865872044786167991029667302860266697263837017517835334198916897226408719611022347982305244031903094252175033253249640169013685175360071660150438659054138961973509429411658798425205955215273300546314105861611924727683690267243235952182601623454905501039467874324789455176483240524513653432391471319018272336429813934910587162056925751313596432026178378669983781241187156597209526749005790168204423832822168211613233113450808173307581726281558792664200211903040478456560898201041571399959209057473891575674535705590015572411477750531902574092759486447802810597955251062044707771372463254321460312458992999767208093584857936034986722548725021200935540468564611162750593087833644084868564200821304250680049993008143926460462030992925096510671593709162180348536081381597829412449251334024767924792679101862275477149143800858463534798094784147155543817345428816014554174028505372831428311568878146731255270768837373048760175646757594315046642511753374983396417023866186918701362144133561073973180422784334117340954286561754561132275653045621990504403775472493083905039640594373630086872281718434847258656216974428894462433430953185130835079101698927918331202710723663481182074275697992551538155320089801965500772759340943038541806424751126458105757743833083895195100110943353172087853862890915589787309648829519390048805663761932969054403744795670088335867401512425823558389610819678250352489363431843960817196232513586721280874880092635716337168248270612947357829364322123663065715173735363468409808768547927169246379541402434758502083250085677143594020338914399272988738706676898320882016842704475394083134693732469812694698368248225802883866882994683702593272493258614125662337195194663846515377927154129138626272839538947650990150370104440976886351420509874383606405723181882795841720172940778380787027299144369483433830361636956976447560338885091466199085662879662595152261284298326066042737186651964879993663512137813666139345314114406229176870506654129611150245535162153638047659636231979377619884888857786803485148899369101005740570180672938616755169688764078137636671467472878858319341461892593572443194754518136728594851528571363464248674847312278226279830251738030483596798494711241622724690831255730640373972366796794165657152036710462311008219361544146196356653159008522152041453659245363474864144679596070815745390595059418662929176461174985541292974726906499913282999620798503287941042143821994138655138115103079434649510901365548090713031504362048056509326502757779699741216192593291385054452581190070147700055793515100169984002201490571539408932163695137504540436467415086995443091606884085306989799282260457281004928873417594731761860651061354496567666109687675427485770188566468170995832557723639221084487991813088391785069324386589207862703252220158152724116619886293107953425511356946534321185538610755395851056938748448735763241263718761889917752434590644950824731495491195553095095370654490807685493095538948728889512030122326578001565942886848589643252301751495451073966313482897288619063982454232871733274119918346670600001684795248216388995574789035012875102260607826610441935251055274996126331240526950584194684747694289089408738212913338302302109574611094312030764547386613778753652099713142207660099243931299131368492400778274047349398228511509934501965124303290790372357514561390796187331827315297183644918829530433023990066562890755444126541162801554394421129968725026582317732462566992124733274295212415959907152271399045127788753623146689886280638037705730258995602879247605082870391826055266956125242032955774238464809604894524602176313697749375706187705811562418778819591457668282014312792087739972830385282124307546208948816482952754190200672407624096071206421843960137568164728005765781263230879732017584927631671688147975299278198497720167079344570994929215762711655540136158717659176879990990140125347775595470775355903760289627963687960872804884518890907551209879055468196293145169377361262539374953126179128871412028273357582145002593413407942717947453510807091579353558183268521609503991766047985357058457020328685895161055488555531552535558360631384941992875824417364833620187053301758275794913330493244130250177425758451395416266589340512386543786072495004944499175140733760135824545737786467936486158030453578304506330270151825192147234226585503067601397292777847553117965926200487021027189228125993318957613256065224810754777632660869932858410763295077718506972265526545172095582589422756668019686139086325322004945671429106600085134931836200843310370122458229465877711422242091100330415776489672015237822324803913123599943247388755294213245049563971767884039150859232992505351272714603007266142344054442082884663445049039442209207251083475064402549884473889888912933787159274963204646121320625291590365430636945470434173407370765094087686494046471840990168943147794895740707042952707148208615882303206530896965773044970665437073434440749873393876563159645030407314528306350935361073352343882713966639355793599776211684637557447250049009629285059520537590643135670516275832027152423144764498328587358665057528788392629457293600250582005670917732284964025500035425151634296498640914233656326239463501435513747609682610361632231870199559988302293498381250142575946723205071499263012886414736043888575247831354647880309616032969444802648641067285296906191072793704495315146121010465837568216759979131467980074567053283336715235055110340510404098422265257782477247059040967672961912825765588767239580561836964518612279236364971601949229488078766910228919369346503604036810680014620510553445022553642472183703939661563078902133153714988711334188786470363935851274653102179218739314694462795218798811373104296644270789003767248417683435495331777326383311433036952323955914070705075542187042468290229881622523534769801802868804830023591319172688730526494663404098593431872376629992323957198896609803885500450472729091468615650782891201315158162102425625424892529721929749402606169608322163580535469361649615866714789028117476236534925246422760043952405690377467801893709688091888653870926783344300926406770702647907577657192553056554362893007378577496608555282235653251612456317092085154304979502793937285051475343935703827388390723868179652822729330023394023940999995344947614108275930141523966587176085593011907856116118041571420766208891406392653999948098736388724487015512642144049052554012537243068996000380255705497749725536577094864360286381226120525673367937289111595712380454187851269569645092625550267055287130034206649234220201426322213658862846632384519000358584202649527907019174364360312614651396728430361622668409118528766446252310404330938578591302920481528911014810644004251320335494597599739480477570429758814470469431660102390742734118570411946617613259071717214719036246227229726134119319718154134465923633537041781259577875344476272884611600069422358560235893317062694365514356310576551269960229058229003615745030066282200035376909926018856331125186580580693636724376089568559546920069255023947420789203888701890865487370251032121694225489109825792201866931317838651605615696031816864420215287589411823353638306720226004495141041290687109504820688832411786338283419365353882791449025535587888917128688471663719472321017259058974613414329055040269815207883878927282067159652819671110311465761968306984316984265096737494138998400167408352087464198600236141618328877935189471149577659458172384000144714553685053089567946421926837331105682291204617450519647311389498294897253354696349802413971667037933084973749103392386496521482047174575108328180907920084343792041393859639147743862298158364095744981209592632175106111530118601147030386482946266927661967224275707050944364811186383658496590939781785823602078422055608651266523645601084764429238919114581642586436200983887744704711601493016454000784050652564814204851863192292610254051185861009574349615247577849956092933384728465557108002309119261931589391040334433173226319349916300002176755232628683600693378962403283983096108945051053525672776227511882515251322969996898044377389982442183497769226492389059099856732921895051112562120229687858837830643739051532627533122803635200757652508153510432028818771664101020310047292296546520257209764574602316293924166274712543631776163635959665089236272806209174449089990130529680053503653451482132862879349706636405032348599827992371583817845068921646390297665889100379740342055198009028228774354919702140540884745977758605084404063328323017432395762505118451964328962768456894711258873684292383503413267240183807509355949928760659398547516683398736464673652763988219369497209127298425857997993862339403576021303791208595039846918384546571896084618649057460391878367137076090483148596335233942838492420584520347705246455107802473177968518191151284995564861229503219983695942966719068381677949813285479381107094068895964803072768341238681914099839794452970777200706970504804896558051191610777350483560846635801807505179598085131869104769107878405926838568374513010740944455240566795456305896637708185155638328324102090300954722396378715969128647313736399536907867191607422994305976179520388386716206291886474061067184213077926668616737817737087543972363312426649869062092702198152186263105133270835087636875595900864160647403752659185145480189545771157395547333894154751950032481574437824873439412268066259935499142913802970055455827890058207799710506106772308825830305376708184961940730675480915725535038480482174688136486429294395905666158640664519636382860105754819562969011374611144750535815649955278112495959634010426210376940768693871750641023119172273681462915963206850766425766643118361689160106015211097758126449055414187746155252906850289091496620270717018070548733993375776456769274930013466878108770224202928319009276617172818784899800168177332305448766641209797685959486742612356991281755551649322082526341950471190094956845757754091663880190638210348928116042740963656841449814743978746866147934381998667296628341899513390141208987232272106356672256314534340097222151498278277058947531230710200505744807477734775358112898738744920430807863040661943921565237285583728340535594111174672636506484435355653406017515155476017737868262009278415409134918397050085718517341157703359464532888878968503567824855665915670015767648846020881254773713252757057741680508569496929794152572474216067411175332515475496540324008545174882036642259161569262090386181346040815536391170944830785319409252634154600373120628324959346532151948738529872364948769399790430763117968770776051784337039323886645702339349943428260986860331706388992765164693938637306354152626310301328354155140314212734376937371294807867587921315721890084070352637660320883198552297294060113004517843743306019465333601665520656190771708135891114106888246995800912676961926588190645839534984890817420794906311697431102693787637494566320261131804644548594042436982045478878815611843249929193948944470167914054969843196467051045963967314197822484387894753405909407658227925726621131603194892149653626714881654905430756810464635631190645214123398466441941591133718811757563388812717514972981166516064217589047764330738482602148588970424575595131490852914075364414774401264626250696664408785322826390373909974358795447586827139846352005899996916703390073340319361447059105051896666265982658941973711789032550758604361273849672830536535714905331200987256404308011036370515492308440819429266587258102419233913539097940596557547480826605753896980412025936143035127795604486403461979677690262870296901397582859756765580498802319810308433358135091979394372167178440041518835303305595705197799560303912475736718992633056986946394188892233534415779633978468653413611373687747248447981739092468137594308098998812234538212312267541241996016167291900981809532669098715468304949814521111294840167574236716137187999580597531960514882476182325592033315718144146635692972310666294823878103121157466068853148100423234378905131985928354610940829467701679952109931744474241231731974656942623256667706913437329492040903471688316385876779486122329007795138453936025382469858402930018274104838316429274083873908338373074511507481871989011439007527996820591050904810778763079849484549371564599350440454687174858174043758200531824297116291243390977035713845559864032074454439688813167179034486475703673470262658762263838031053349806746896787836593544999874485109427561421530329477973382072011885378147925544049818760372197655384238604621779621245368404548551189533309595582025550983494982713422104215255333616572734068559224306621477250454699396077598104899323414791953219663572443025308191572418564857607448469290561454153667594863297039654115880993038606090752542352065745712584537763661955790020023253702802510822126538229782725801913755481957567896516890159556784820367303067524901724572414812609933345212954171497844485950062514814448075287928416976979548969462568121869114898433944511904339389384903033877425450476055511629666514075537157502935603135104176167659116468800237112482977233563217172615168337106411279556074281663895348901189501788291531571238194807500952054194479975817918173696928867199137288792045590170015398957678867449850304907370349164059041047428660093078424557970767023240474334603639776597206052986565183565106490244293320847942859336558052704133630298060749594008914140320904528305215107170628597637884415157117111071487418590766282708059378197100713558719508371033703012693321090470890317456679281678378227125863476770997338854560339891327555187130827494621452156240606657537277446381794776678169477788162460913972544439288808378052228657153227100454999191608406774674919879597802500850145802807722954277692486315778408194171509342067725733512603870201799321729618295294075190216724190060818208233508894040857965617934486589796275326951627378046648944857564200937200532808920548275218784011762216043900675718072578233996084874940627958950090095776074217426775008896739700442270471679087936820252178024685432112838252112990222342520603858847409928809561690342326841489165575400711683754543072194701497102971287663001041363220796874112225435620466004063474108178294762662367723290879254849411827917060986008805285685436522126394899102087342585059506660199472073828365768826231563477552540144857621159710060316769739518344342499529063291096063393427723327921749790836598165825098514845182619278990854286132199602917836098305327213687447279633642867353501809764062658581600400863979227524003299261128844089826481186074558890254426833888700664785807192593074548498041956641844258226081687794309627213581774586781515649727345864234424056726053238100373060723503759979546911997560389469033321627743881029718179298535485473818737624215394139196658091362780650270228355977911669190407252023185663060951907193374666881796343846982411675441695494042588147578083190880538795075807039932214798710696495245253280796101267430459813487810660352900721681300012341254639422106675869966071786682481065601046482277308426950868090565585710066722751596792845884225310015636006115351569751508881962218563079772528417473833464783927367413546425227774765442703365325820264010735381840368727730007284571858858030565378835091353856527259133712806920041535619173689987273536236259085099631840806348589964662592082510055897826426732109003519430764247243590440322869468710926337556645701286581871208354277069327124238487823437165107230092021380853950418102178120724274003369398761385241108740603966486235231761686207939749035800487056081229913245680905560363541713515034742142562354235856980077892053782589328387805259653269966439022354261108733189947240615481324210410914265712224941389703821080840866619325421600053565272829814538740363704862066110224838814716182577543738859015553224532279248208111872557561606100510527125475065009039741279124567767820192350731255570861681287586932153774660158679072924247251490851838919636603025701477779347718608443562332644307485101814324336589484800652079873466721884948576519394443356094333286385889049933715776777108517054785657169677832695703143179406567312739738402215620170340256266072595198765571038740158239321831420507491294927559851978847160090432636208238927573916733087242824116107006419325058411411054730201399249294552559398314700578038908532166932280924469422109409637039089103335548013664053318798467783364030916994877979745382169665166920061736284583915388842836347487079973878136316814097054681756761108073499266597930496660186347582222165923734308928589977925146743423098450419215093319221389022362231962223765521271627048731929586270279798478032695152781174288224401878441488739941347753023185342928955103292918932403647187835598136488485547148115825301793333651862406433972690302649524876413262868864003631851541681054216720501642332368713828533286564122627852176419575938595418095573099793630941702218562410963351155859002347219108047574419679497172497133625224213205472018821731817832234862698960386328919476217174872150890276816043700734623061376754018375176700524461950656270836805674210905600454517800342320834236192223711119199852480524996428160059940136784309719266947260945289902076242475882680061316637534178036708044512101405539810885426599557341079972141517068872082078798807797444576300911655831905242962139238187730786469395961764760115905163911755194934885467290103425362383890195084544718074433346789366360478116355025801406755344967496225733003447167890355799673330866629020416080538440175887461879827474111652082970946853377490932244779745007319430855756049798526659668344495297470325734273423705281039017190358488581940504593199813754374655048201375181792364794359826562563345339374557747141930244756997127420063573493778247798514835412408143466278578092263997918594242332799370368419183299895926716470777817935465482128434441450489367765786238847196056238760661550688561118024106334790446922360880823500832933541327024935860022192371768578486057445296154378981068319042216821954971689085469036873415186838492321915115399129087585561267519449221385130741156892244106170576706664441146969496863913717649570126712209730698098898735385173678452755330935714574936642861932646753826080352835011530745301082928107713450710309591011963776451434964718784541125638617917304835494881719356609261085448775569254273925720216698058081406771824220745243837209347301001179450632761746828711136363711205526052633605262420873959949878281292397962449287290342807740612818126730010002765968916864399992480952830246585973260739311600701910074774544984564517922486411384724268900732280076668220844811718806129630429007199155261232132117485958415683847562234261480512625852213002622637847696214033913302396103326051255396403876169590136655296992360990471911473622061851668223169837128165815468042839178961405270252259277366248360051751947607548223162703975721857722499362312900465537011684681526122852682218560204199101366458575160726559029365117676457065273667780903385527482527802431541173004698030063004837160724332359989018065087529590931222812963779797547599691048685009982100666637138944889342359668581562915872047338088470571944791805384114295671628315122403923696309889021471248659018423648803369125376437626480949984701535554204049131344816069956010432687440441406889123657959315338538738851427468241195053492303470817616601171732632595553123791181261829684268234779538620040190638684492767750526761870165828286355189354873004120469758387864995188362695684792687294042967966531809237219951751928224698587275562541009301762049000441029276362687609079954823011640764471495001894145363134177615192600093217460000273952973517856521202254014678407927327762124685810531355557081299859623866561368818433265533922910571212893859966014023650026015921737057841227563489385912643763952176106688047614800139810668674534361258510219866061805484411452005849156812942290145583906008973621400698920999926691951761446384331617385979878143366969317570909800261302692177264000999129223859828523961099206036124449210509817741830852247552644796459588511261865132890186735266740337123576628721479807736483521441714721603913255316175967021643557199350401287749792093127645481711783565082473428044026378062629141583921302119993549210751377378724162203045615733106198548178531326616393279282893682088600423260710634337775462996627397513723162308715542092619709411064566037250737045890543922442532327400376506450731411753584057167070591735642901952029663281051773337472818496561891305878572351305909717654820206211193829785025445769957398098837910971380126048177524788715587347988823527929637559071520028158498293088578466989606556657981969231022599782770587927190524070431634047436681069822192155331677201510067618050154941628810782830205038254471165948282837879865345017050367758003337840870168465738712220304559519540412926103870468414628566835648234436094599802817713505164744433973041196108413457024176575730329720842150796745618306293694062929749762826866866601664398481496837573715676945473122411517264764026953595354803439108158188008634421414813212659935246251410023355747081303538045756766904189039728600921121160974322315809937190899132046180080629822796557073556153317419183663862993401871430946487255413842876029943341224559239469104135528419730127183769419115405570773809159716887184693927833708859487116981957096078400375579871914561547654466436383054812651920507691952358334369584302953272565015602559293781982369695367310725783390954830087853720351236609539917229457282648674064264724947946725369736956110297628494370981239147742979809141390714766803661194135165180123632718237897426323631124940488416739020004436553991923424580547423377539745685185149216696496645469601218930365399296609006923532910052456398038625123643930080868330287041842685143410176277755063266883632067029139452400675992615026254323554506278564508170798806304274151537794902215772609857436090076253204602519617899423332378801090477509296099710199389515907265752698006077439862153266328954254523445080685725727978247031140430507147016586095611165840102393793896776226794737593190966456355961672359926355152224884554518308643524006898118333740781234149923431829794914834160002390943150658396910507756930090246546880347264867100373742335830921937209642735843657007418682663249284589859247918895045521045796632425272615565502085871957956374771598930567589873740294999132154084448250751296783775971262555999236316138777174939490818653866074243912653182711416863769396233753933609465402698853539407640911778655587231892234195167262216411361360865609718548543280836980996678676586459644962180223723990739270631073833709764282341334718688656475245463119493463612730869552911876739206863942985590555423090528198526600348838296956983901411902872860885499315695832955519177616462212464151540327281801037977045698323745644331618937109328260301073772339253522082130656172533979797740820901672542883920292839756751589038729391646140772474755005314737633340780467012853106917890621692132554898981295598020857490633855481130426643271484013403718846262624266100229090413448243716115903637236293546527389863751747184024324124587805487647147566037342166596600540325415030854313773159418486080143566778462393497952355209507602969355451365848474013786884314026747843186718592354602270103451774213561377249176176946254195759420144944295981982406110162136047222896740968239089691000286629720865937892646215451198830039674758054937442524798310007640545494931957188770762805517756219006200871185281205397859220766887213604710407652989358519907682797048771487079858494160152385676974551344527453431498966549554971818868682216000392797636791900161554103558858376450973102444041890581572417331628992275273002533548839633919527981428913844773219211800059184860797633407430670262919224927081857049294100418901169441606603454958812112164500120316481825467531792879676310057347192490681521916051640975365834055637655922018614925646738585245846650345210787253688028108889222068014293742014930761084780531181839718346927471197209114737409564538291387578937441006401299574084266311572466229847533498317701159365517014681845371695409080022690980188364075260476067221456214808056815828640595067919060699140551796258243250705140205691328519227793088777285381220770111142508673273807326953547470963786694333876226304238219634201628150929489845790090740818980347446585720503384464342728534984992135180298743478162420100988657220440644576549800443311472364866181573244378652215631653578916584682419316109442690880582667485011720084898506605863221010828165685107898934588472264116625525096435984404396772582878309033864636299482792630454340759749608184117403322315425645938480882754335440236190187802090483983377328215654934061823193914750025241175575069020069257225313598326500523719708968706088674991870088348613542197505257446107243614363837891895400319708742615968468355139416553346297961871753809334061336316530382890127201963964977857021233982065631760938174095786473888543958292742323622648045795319454095368726704593957972898424998080529147182350941455285558350714086454061866375210386022616125598852982933658881324007010026726872468497300685742807913954271384678079305284167959633474352867514001751691245383579565220526350107226181957572104999871176871612141898933035883208541410498908652682233083299885498420064265711710554467789996513681239350123639934814866022609165447037463828490061139710089738418158540281703006554615737415467755470637571873481669401527175945715154837893546095901959294664154267016253916592408235483061090947768520710964015606764353896751745773602280449639779812160429594516939845215197944697197443205834858990330977917534706883582319112252806992290618480318204004983460567015326799230368919501147218415178209749503349500572095189470526415496368306054129167698836149580833976342396128434131797112154476094482762019072586158163429357074157138611645916829416439203016570717479705259811099550899334815428126418909535469102136808884329420005011092489454739293089574253359172282410290411404891249418481502495581063569627996171998485980045483054755968007869787636378204625478710160638866726232810997526915972086924341842560834164663882873538286670761742673602873141922555168037092351545292858580315173921363350340560975881587828814718945876263466557492535284696997365798425833453017806988025905856009320401057993456241581102884888068375617479337782159964614077453931684819540586702011186075099231576158721876964156439873983888825505241804178180383922073597385504580954633591335552565074689591485619096584237072139075215428653040803889135334030684917010028598611414290993091973942259998966480507930726828326129954188808557041350846620252975722577187369855462534876754051443946889349016305283030068577558235795509077898266985705252030000865612053893593529789972966672662898461260228815304766445257966492340960999879402808474208722881949740262657198555999314624841789472009111622823888377319778854073478578076655236552140105180470849463173676266000721381594957661189532095144949188037926419997354235394613273929667927922182249567153154352914702566377812688644681602354993075740993176380017286879815004103416400041933595717380248185528693289933331930896801088392174751533389435419637904615424900869519164319392599923645762992902505315111716847915937338816809324487120968873633775291527400437603610297246409687844200660761525373930815356190802961908578526102034708416096289660325871442245342759501958465450663878345169871696760932781058994519449429800342160180665252358134489127537702901714348683659372929585166868180652984589553128320210100374737695043851777456501238281666973552268097840338010729197241292648736880566696423547158546945655980336402605162430176681880783574607374030087710809332583741669165631728945456625658616832505788379380940936646327131423339971118774567595157879353974580053573695167100824137648806945678793456977224675391914741530001008960313905119286410988846741076912312863685262293063891728774050154388177035231617867693352798362748502849124770907421618559013426209562817019669066508650979815223217262706337143526321831030146468678338713073216962387293424391889385166336732003711099313529192114826583893139018916650007324728870981919021579910614704543489103641131388867663203459958970973974261112214450098475675887957219949513120759094720829890779618584531842763394352425988077325479105758300960481154419035677395762618259172134309618635804980807719127431842898466826275797677863703335160241088083975136611484808959279678455813467697759564464969981148712837564167885577795972564818078041092408503017420243790975501742233299671874363685523705008963711381576911038873425387416336463062513848923751950705746302833767085251275610415204431215796448708585010765061686949673869094324267914056860467888740459878670650024921505738678381486515082832796792796864028656402801346935858230798003732094397768050614905157759034476706936498987055498147667023279393979319383196643955045508793022292066007201837149350538458905491688559778771123161607490236453142277800478480008651959769684111603416752706880024195275141725761013501847344266237672399799823884761043465954408038646687353653427386889063493238940789534179361640683213274817918255364567851180727322660645429949454903830306189750131028691938680727722461611685901481752996359479600997164337663248215535204884231988764608385265931542750285599070360250582163648797490982339927473226192290483478880620458119496144113648689279898785435481856854946857682060511310667843260260456367461469653278198491835376292000799874604023516259139755827509074188661483534831035672267075492648103132842679645834442778260850965339295843316914643157398466252974991164764254600065310408104056212862117274531763057062755526499101808398223957963611357569701608756608403620054352550976222263379797330403963213846853069003058533508354953068711401736381940486927919627694117966929515346352812833995844302431934291143167720650655706162068161654303278470058524105245512966018417672385882043432873118331906249552558885193791869503608551278368899939774954570181949253294998578864226693552255012743209940710091521400675463518240786614915504584409597764506306063080819170521220378259566457034218674008870986165086470832693913477658108295465701728892606879521520999248402144122262165859732092055593545400057076941398223374812944232905345457162539491136769707891177603285204024683711229946614037533202588363849185987062603031305335147941626410285564195929309208459195669507365500321125075017460920174928799421116489411073075142617843429239710371891559317503411708803663308837522879299859427878141375882634919113600194545410043013842228524254618265646437378939581632125260198773082923632386352285197608223177529878081346421942026150248551320655961018035153929766744034317829762193380460472704522882068773484116764722118101312871712491034688712595853220347505356870861524892933848502367062222515127317841852806831459071198926862916709866450486516075745665633499048530942581521420483667734742247086737029569856713891881370217992341611159922593847907189806984750507261451271542711639704272980149942379856787691440363335087995809957182729705025375316415904749632623718640377289244371404719906601603555748817940228241185642844856267077871057754767677570813560138754059023281081299568320895128262359077727868259792199692356644072859548692515256560339383777425163464186186415473721234401464584960305393767331710183433286523123127561381659973307973705156199479327891705951303266357156741854409588591386065387225800098372170190294994777826653612671864452381088397991674719631006329409957631446205569331697196118550328753885424395696937419148994906089854213837849928766183244271608547720260647430837864233139576173784079065327123471157059887292206112628581391735494668846838178635754565567548113102063551345692517080850848538805322171895040706498136787249042932783394252365340939235524507402650450044491643605775016514104066727212326194508932714286163564410491466523342736313978514880698955003430751891406648066368885100663198204171235285671138920386064683921821063393406358027912025125841441329189405379765175255573226637547818638229490311448524459987299146981488944337363805332967161222919167622914807777598767227724669074977275516271018788740611406735608960339543289231810973358016506702425116898679252165776776389383337681458771629615138679583872550541422497970040080645601816584123640009956093042443026524838320994785407798920960849477860718192247436382834417019332300334168723086391403440496013118154337654133774245796222588409071570985784773564849390270549701108733349849280168098871666354634155721066141089853976517877342522600551379962067098681852172077544039483124681294885935908328593663583630196536978263048898590710577121439629545229728933933069215343768429795433113078897771068986284969440251452050083352762783566924677892247855141108641861504965546819811065898016500426314717080012866650961560171421302586713590232219248012929188774968142952651794136534911640074506832659101083040271091635257684492513195840671695237550189956732563967793532032519600033186112852203603971352837236634675755031087194835761129785182077153229049684032215086962629581028881837792767172295058264941141789382602163721022172391362642423895551623905835035564337716845770436964129904335661226296730011451230190038878545999591671596918799497822368799606480278030261177185120407770644820813037258993028085804837357401438682719640870752699390666053960019846683468351530791907478973436169105609259487038744116682176875226621996023959791234901529757907486081245281945775644365279077091231913249874166853940225171379014586153311524368470843218984760870220445793750474948701628890586682093302523727532623849026802416181659964496922101317453178485256721118565108967595533438116887170223428509390268433403708166627642818597371091868840299519119155100406006655562740723736162583336713468975477995048081302465107044915622116622378359132859807280332709429147980299536789658385279743180821040622235473758838108616507549050829834272586077906752667599596929497487691200740657137756997516823818034692108349090910827293783738294577086298839864909844469332128402370931868275057245477531630946583561715955868355255323749233258127319061212558100214510423760367949836065116366401020535947895451431210236699715820922187221769993032509714400841364708758727930218807793572071512878289503818813045081965826720506706258800138871922842486391237962091782521247332921724937027558342671578201025773889380985377997589116849135365785283790305072322887276838506574559979911149359531618575149371612177984693131866591779758853931449059808684640969950485766337317227164088524511686118130305696212458944408129012773812238031252720115382572798351882597080375415260881029716522310881779597985448819056586097782638450256892056185952170280203092043045546985773867167897231396957380519566708711567255619353269463024271789521536612040612851378224107103729447321743339763043708791515985078577698844392820029664383493190129610263044530871602954502273362401016352436593109728961433099651498678419324231417234302234578051689660478807528806487712009252369263911246687925015545423418219148462012028520844801173836282115742188321391002117633464481509725729830409052107547479194917721765005409800001472746539306502542107817201773126719417005730616186348767691228849387467243575366946969909613120858549539214784133082386172072537552305105390291726630926611268640352853572084229897185885088484555385283110576714763218201486174295677439603724739418228026133814934315797277310196802805849384261916942093274826230537541930405432672094877790284316665878248271043634756887109946354781686527397656639495233944415310373248763484495171488301420528162219866818758468378618944973208417182963683845288001397065700449321377216891415643489800461003631024676581980583095949108639471053625524448589588162873942725171010276836712126013986617212955251469646849818248258273959725459044379533461066663025698301721651885858742137277943425335234444485276508220094907198628048543426512828467753350441899772121287223940864574016836661504693532932409171509007869790563309722375794172587342808933981664391670544386292539019695977865342985155373073509064857111047697260958946161422930892637112841388074466387373309214391662302219224019635979200271869634360911933659270696802977604930760899014011618953758864468758440396344629299402538961934150098201071627746874525024926936389630702079802489774611173616332644837567052508964932913522052707649343971145542957597347051905506695391738024912015204712314875213195485985500437704768268423861817252612379248929410083924623205227275850828308911497463955358610058825734988868213858857984028209167869147678652598409678100594428988500804102683913676671819462306144950900512469147473853741670221759615765989124493523136027302392843071389586359065849540730910830768544404661898642753161401504319844809735662455558628378943160235300981548950458158536361952794554511873450055716265190247637029257826554830848426251962824937602714529949887906640815547767920167473884473078109347694057994289406300891392252021748346987592014069039871430674914921194388221078824800026653394975054224083536601203413447751345376121338513845563767975261616679763640162783693631642019072793677247223101430694738312065650126944569652659460399701662758871177498266306055901574301879770921809283491227004674474631545613732193064830639533606721704325296603072485516435630602890157853453041590355083745495830361210497627261049308320570381627740030552250493193010598427089658187979364986498488922870399303266374325387340450725275008866222563336642492437350854642705960936350068263857453374526535927562189284357395684257331857026645020346676795632448364864193176486910067602313901890750281670455247477385661217948386000057786671853723869923962739884429448716735905218420970984787419665961472848562289986847472085120644699100124355295830276360284615396731946357110360871144917603009543419681375858845988247948055774383921813439905302258249208410198574124379596678023456107937134153002374425978705863819434818734742898881792964442063686653016445961557263368512866842793031536880172991648691889071280190753676928266042380570141321764711691694131794609424449228666959923911039503130895718738656741718769455189481371908531505824265298748165243765248941937914975311312447105309888233326961712140318455236977804253770643460041678862940752249907619037283231184437626399026181167760950253210444353721375800380191008919939588499943280208700210900430492060542738513756404799525810938512990565391159927988335422530021204492777924307850457057016930813590898229500898704487237363913027106232007486473644632714817194244782179466182173181898411617315252996092160071476770587011919879457640925490626826329622569074616587632958572259773673689974543307066779923257960347883509045070286855962516635450893483977366841399915572626091343434210431111271209899909799096392577409933768993629599156803517677970373407573989211324136516637232533788776618268149678817271049022243871076018118768129380956169066256921369334944159835555087319610928651979775587477707305081185733046882149668643099937502994942239388690479704516873796017424812509513117210565968984345478587730554564774560721220460133030183454193994438133326341278878509212342888517040961749024393185331897645380931018735643974802594870014578190474082665610932322005903181680963260751035373769951286058155350708195602097612626881374932336110100732223340456837699465748595713578779879852026457882783551515656658062783621647287866350735466248535895657521674721718932263523553479588598319714390904931191486430399318974268234142073654197869173399264907580352381239649352686804063197016388657393475698739550736354794613807436635945661754769332501058641874116655622541719018011165588251928172085345979314014071453446522113311331006769843733802517802466641346053226956646691820721972988228088149734565045035516706477639904224535725288322404983704800773734810324062254257430353701083045476333523814464435403048148357279120733314641441628093068061532085999216942427035552963864103116155325702958135858981941271288595319724878816673846381441798155924689733205419982689049280365917501292616901894510044284087620962079634525049928019682041708991404105808712206216701174112051358309316203550659405404970875961991150308678105976632215251993283497589061201489737280596720165950161302911790721931261942647617091429793679400654858050887844203297533638910125389749337014939476764059351167201735810551183086258791115326803519978803769049761268066750535412899471010212658464249668830663776925855374800358881594022357950749782078359758864175526294138798639184194516661128834554313310657433796492326974680760214326624571867835434694352741372009624906494732554240251949877607814588895214850914928410457347074078658806591443472340320698690699829424900759955031278227189225270468484793431886611483767651637318428431545593175435875704161511836505894298451696133862956428972247845386887148499369514590460570231409025882081979924162491270544760426902947159953075611302856081253505672884211000593153553318611171009727398353211803898134477454284595108409392474498862611379035568402893575153057683907001684791540270750516301864293403719196003309474126787696128549290279960615406331892454943084067714991600065797615886604540238475141839991522162285858635126908635616537258838027934828688104078068079556462138256079212952536883912800779776112355904115231697301706359853757174984449937668756636191791135376502540213044133482265842095652569460280869290430408733086853078385193173589097067150894165080887117575826261009837211376837451032534372831160337687429597273721676348362900528287101580038713515525704578809402934708929550181306481463150297787673928332511550015027186053464335547047474745604441654757156393296739250425910662625597721165807261223194504188485397435495890765388378939382156861382650280500381203327226963270798119369292311480879575792475560262545982445068642477014014324122162017049521682791422767539700881681945360502261811601900578794035712532361249826271195914399514771529882797200401732063044507407692000849642184274139865808590705164832003316308750944258184819509087519787826080918471050369561362335380406407707971462954608932914504401935946587636749102690566285197989257482185537691538455313135915435990268311372944145369200104266129485518684825236046008668602753056105891987992734808682867115668752093138785443854683691559593082235384358589662748043845571415632615909375069483873410290409992541230284521359288171606484315550711606041267615537262832458643786717573443187039069735315681316391848289671925045560495531948908177548107955935941465106183958991046471370307444008188613253480213145026234986058746403029431555941620168618607416688039197537472991380431646808027265315821887256915140672501330238060166581926592227187103959776597731695089952635993807800065288450994587968263063390772410570232206826281668772669497975197213110986837304745486059979063404720636881240647449954740342035351365751574002474500730357424988259762255099849952870921861693940280650300993131208322560242674373533881055185333439596499581989978717241446843818393243873552585833272815445432706541429245713249126891794659447401244788442147503415808184016600166021281453808961098310391603524506850256315008119206564245810271393565830387940179735326327258755007617248929894128624652047007993571229075140993632984275139855562222507452751763034297782732524968990375191744217261713765323452596940161450298586273537117434354998888715396283560724536766409266578963256213782840569533252814628011074761978863199387393420965383165258779958138963737902546205943720758837818399936402576636138326136487025333396901894916444018455629524852881119370855748730456044799621301277166884420483163644643096324980888523023852568207642327988250874744316395000339576586869794600492705746069379611366817818564383681000300451797590978313105467058792220225998830764724928849570220967739626037813757859128376527956926573978765258467649899113618935197216221477562494501293258318802095966770097495269230007394372671463883725130847063451585294765771793789887924645861386456679054119760648996971126408398787246022152206776445851658661693898754089703559059745235924752240239649884185769905046706236161135889134325263808693622838567964543531781292747456873694159034925297349814278289466905700710492623063661392826424069626086436615500566383901466871629473406098799906749315382299377086994175651214533844289314417806843680311040114017621347145028576218768356464904204923103212656257495419889337240493697663692459265451881843177076742642342575137715679735264685163180653722868501791172720078536677133216842333276824156726332332553681752767425734972233799361787375365845210632710037939839257412756192359050842999403785127502752337030222667915927235308776396062454211997515287064827873553071921473789865916954713976028861541448084621763965571116647511164873986538587104264003827930547543664210835617978947109419821176435362290943723528498746284152836987476223704811509136538107493363962022030035887272444467335769877306816113522949261808272205061927098027458787973089987452551789491004108435646813436185977189574074890174925202688525803266341123465603291791706104590484386951491081745390881481284825745067397936169342412863166884508503878734222539857748504350888493455788510096354215469279597618629609643159509194221542279695155715957398792772313439845391404237050613537545627741673306682592246217720828325162190404206859726744449851969652709414675505896963084158088441879714062618585527739614706732600464406496649996145589340050018876840236738197983278288522193681671731188345164849464656220506054207565859602982046468359906254467408891394478786333281503049250846809621734191052795637549745062832946729425666592678244894043547238956968157788667091754050043362872068065870619948555449079847666628658425146029551746904330050686777115781142713089185471514095504807556128108076157775617333284402811805606487342496553862784749158064761305467218657827995589483128644136146315704181254591976434827216934393259029070497008312713380398876583588483067300128967567976327832055916233418732006252597465473179427734719522720172333983423590247307494975729656283467470742167461476875024839446223417222339461650837230747613395132937027932081374946383438338223451019091370549835092384104068194968713866676897356653563125097187693154777186361764168541447955424636799307999927953298760041436845908691976373877904472277216359309504715955223639685178950592922260101946554381030600185190412862781328446486817202520652432532168705907579711127402699974635976884595078970104990535008941768915078715014442117817426538177641431700742712136873524527330232191784315585146418250244656714067224732526139731717429054470482186177055250737626163666286239777597505468916880729907057682403937719454937750564883697088199531323108683604195319669268497860640005869210396435446073602366205597368569851497231931701213795348557168579902466447664188660392578910652150863222916867089389594523731357315947472373364933369652758143249528382822691060431959991851747749946067263148673848088416521150002495583003401030146015260928294971742448256833237558511680863749078167963624370693958321895746203527961072835658298657464214636013159665617402447825780172867444809982045840949833679478034014310711950092990389027885196189320628128232717485580502338520137990100403507461037488184774849631145203273800174586218572545621186712036115345455421166607236539629963616000521946841854907521187230070454425756339500856207970137120956754205857159683692619090982530179816961166704144629801641348898297076468184249334614911383603797536023357288823769210424054085064948284490756376557448664709918690399975397965630825492624211796073125938240438199131107728324767802560492428159975849252656593275453348170719257099350889249972946000246850123075246908920170130562484037503785578167146612808992467415298480201165573538376201810178126987806774030568758836740210034139119355221030930376727127827017745561938372082070245540849017611197222491284724192864998104604218451736029042902109107310956176374739836294072155761695249588404402043976102340816464398627417939048054528764423423390312352246177340652894333335708264611951697140459887921677031532848128209567611205178749167977541764159064064712327439001496844619632994123129066764445225135954388789933775021620268244043747338469146934691215237876193057364867909607894345358781604013195698516579483852933024554847225476780770511060964322971039548818758070566697026202773383406608927136222578532357252943984816366315996490992628447475436237992629003800143776182498711117348356135619912409539822395685534861052516613153051492694005106022489143999929386473295618153959657602171054754737740075655715691802998124959945387062794041304533837857907544496184893223686757697071839300814392734615536831604760718715009254586073820812411688491204965982993092270353066683210284758467475490224202406900543978838272475647769551162926524067353095491238673109013231990439708959277001062386997182312628575928620254909591829093693934890162159709603789913320652812330815530949212972713752287216719384323344116418503720629901307389118398812224812524854743325416417321327453822781186944922723306420800015105840215425629638683097770051980672616654596438770086826340966974306802640317337388581811942645068035731779818969912862066615963932185185180831125546752179381459432520837609664955790320269604418198947840339864856404481678636533560330960179980184002513045068640774926608790234365911981648289865616386352882345036262280966225174320525954490087184065754208300114572222604126788985396457047527947615507524138122767723818807826397161831630934103072891585916559759369088309978149759129852000245350734585939094928346310149506304585004559338058215495883022438115183793587045965569494950536258328101899567899176472782489469138857248661715252954748769199811064366717631165897257798772486759671685645223028009942129760456675361255347846490358095688389951402061088949887969114211752578846256183705675765168114470285421852120205679383487839666651347710949446171305943021532484522737462860289987255365932430961856074372206622043895340161298411701453258196419515066483826027352542346130407703849579274455347042183042247919814225657447230395830841969548382892386492458975669121846577923306296365199982284955424296015225408132475712999442809672443324476406321061613219702248903866099979429326713881853320320184454527927514426557465187925053365551479407009968987419082871405809915357697827653335472734415686534705807226659913163402071439952148101715559082928947164128314309458747291796123465768123839747450095118574086217792079189412093590767193504645421329156409162753731141947946390360670584900407590705084249243848532459240073195212423670315763713159186584005485106758236043015115445070546742036212920602681549770275394090350279718225157703868968371095051434526103962429054580889043246913572171129675411388200982281946449871847758567141240270277369759182982750071879762736760002077005910169921928906572579354213009737943355167412499297970246970390736998548318343039586385142523615351049117659679822359792213531474246118303064431732309282981616605441215423301531143531632943123149006672639988875185110023980455972967356810429009271597051439158547184831100057788177017338397050075648274409600014771066441328670975050270838571672109588599519421602650877882345511545547949286876670635702878974297131670546534478288666804816597096887955235934248391624155634678151001529790299506881016498639033329628757367967689702259814976424545558507470601776102571038518575645046364930351731134652859348881548983128318774495679102128184775375545032635161129823415250900507454054400292146944082192472258381984593519980306580836635486404051415439059568423436803102374759094606303127061603042612275821714197714419557078593635971537532185299703558641585128038989126775900926962769928936849478154551323781007296909624258309862687966860378412418830804680648765485398290085118794563587950005539260486017086626477516238076227526610823672554755207825457605473664905899868983964634889294857632629906138560781841303419624562186874483772589418135820471855954056032673539622903476208881157238146609767739795629993929589465538099484102108702128763261883730435899297396353480644898009937001408371754807771873507458420987917552497730545681433833766613759999545560018311633119817067459293619847695835963831249498827723044149590097270646224312377103883658507552914878048463664837085464384798447943488251174160155472445581377928711326071143393922805341624918027304116109358404111348347561962851654299298043350303722957879269770304125614844304216968488578133656686699701512121320812752372898986652332540388874194894857421110868702801301925984391800624852795096587939532442126554369467644127157031753288099686863257232117867277194334665453698625599145744579099749551533858186300765465447415702882507075086765546615402938236665674617528462024120133887448281708771673035112559319593233268583451647793119701013224224660355557782814684258009621030696693141636258094397140273677217019296844877826450977274347090375368406197242612238995769762191605851507604447808928945606203558438251538117134537596060866145290238478881323041531173303018598881673843540284603497554848706270446183212149998645158007537864043443403990934492693565071807566206920326720010735369728885489546111381042663817690711479915832070217335471948948320968349956628690646527152548688847382990647245892179425311118818168167931223746553104935199755150469167487352237177891271792468950272483008075613419009341819214592179771797637595202781273768366447960231153670572405036281198496639621934901378673343470071892886099278213080077168870576827300268291301982140034924323544503228809564612086666184304148357700742606321401135810467481836233943046952545688179502490036923796323053151645256350133095250233701416674297713477455729491527483290045459466348366471892799498650166521012490682551243069181574776150312974397403842151702191227995294093622645517631290323635638571805548039013772762619835966524246268606095230041527928621567125371719295433125079245192312102746860360728293907568948685266065382735453841092040323437676698744202099505959894556065214550494422934145019635649517848556538192807985813239778978358547321291050610658260171073839286716035006940688291329468103533450272713238401234293191822418410770048285469615744388233827048968916505645282178766367316965062506209935540843507671166333663495535120328227638019262855231145394966292717767198850734196179609319299422085885785616688538566368700505178098883779658349849329361910795787679130838650442147992847868457412043699763946155881191758954185041368458966929624532298818409354722357947253111047499134694980338162953834788441458453828149367526364367035459132268855180502518381775174147419639654306978645893333503605873750655464632554781235996278788088382186562089833584905804991537222164805192347572720672250620939818632707992195506478985895675883323839415053794807612757943216669476911739689002854875942021106884855534240204033355600178258939238580980706782245260637907444079835037117442485134925045191901614085147503157721788826880768648325681700556388808492946548620764379582714833806054969853089410871411502371841969485830856481461315908850997206093595614075599636858778156188110688320721637250674275713521446654955490582859040769536358539788923727693149957140105448209073929360487886899527683374885341247153909459276467948126120028330845251225005281991588912264044214372159672535844872100900401740926235855585149201866571500746521588739193272773319262132356527841732672492046021762809106964071997647537870798383965075166923871968226104813166635213685913766672912483687788383537064799982408857438507918298517091623225569025173551731707935988566354957867880719031978327751268143442125082199037582801786505865128951870391215336579912508899794727915318068885336928274858741797196911471701068119528556787143923623702969158293086842147898440027356098353381897950216806809572121941835684788327294037355268369735459943725605406489738947991923891160656575040293405203785693150237013713656028176115625349968369844833682882353942667037816540213844812441583909276920849506273219815984445619919709738522591379275445700867761673510872000440962853562269694727180219166227774915217377981722960909092120448386359709747565303810909924680129086183694573795980037961941383425231768020580979262037389106682958544269098088890167414370368710900769670370115933231220416692295475689909702948020891412049049975293992105679850984239529240426124109504721006126364418594331846384265794655131132173851445905052781928406530175354466285906411367162210238065824377450083026985216373923938609598216492982114745264136397144043879932646183122408077161494917200057836068240321014523904907286409481958371335557681451957417546480100411800135243277752296452627399855094488604696276662073500644345671366872431416445502513522237262051824693208461505048073359012008544109159089835366513641782034736690792389677992467314060029283056080372340024744284803591005888361683608885070187893035539542020296227198088665238580881688441584469010043388702981002824178933663875429516041929013372975578528488860342061642979744567693868167396947947199923207279123674374137865578592014171134483922777050285216953381665542017278414403363850400651961886802300159923808563995458170095676202994196828676221277860468135804167247083369562177838266830916912437400826486610862523230955976579993372032195891392155143443634334360880553069841193908789799163356809066166354684819393858832722352587290971494191482386051842088039532115380279913907223482877699914808715187372233862896526605394618294862280145727478475186750890021310149510460230753678576303247448491122246069244860281725128714598167965465944790781569054922292157669683927301945175953051740157257948740609993708951833765492674882742925229136987585255047502880802762404775090068943805595015427748105342372765178976803158994043924514731627091168452437399587226380037778452267271192638678818558404128806843288354455542981192779453593823956013681733232343048900795623259451359880880848212438753639006943333853543883891176438772479779721891983147406600646193542436034405056125031365671386941127559316835218023345645158471931315476975171487849800124499488437349878158015362444034782736385633838102451086603049943330191285695275857816592527999366022812562479480754300535572307549755818406878130170661073795335079813683451024665788506166317784739112057970340409772138217933879214826623028271227265315846555717399805983991504864611890754068360072061226287442865042368342965549018417775262030268105250150724453626218439104733614237398684131320313196308405840927025751585326830514780568698732555853193935352830015957784462750174221774340705861777272644549058465900478887208444847260229017644916271561414909645461469990930051468944097357104046526578640065588669329282033834110936020452404727253627665442391518582622891690327683900832438183160173734185880017864945970900295835643983479209246904316061447709516822803235206730333594081640012717567465068150633648220553385484878279163189784092396523329747630715908717318994234821915058481155473167702846005801506262600620103399862839249717889352260438072836457171821142071158766835109266113054372011149737056562594673930523220808240454073835083209285486375918120096814296410967150554673298856435023779313006139141678134287928907161046682025248587836617839755789408012677494190775877219764064094934979520145694364487341831003982391916612094217357646645666809461099473330121930843408072900361388824959260798676277670693905383058059275414364181425402782038597434004026780632484573054279996458350236268266491769642920300155274133774745240493725063888115171952215563673917524193956955527583557509933396768900705109209271144349306358233582501298467911800026112536257697803433816726092985125997320165937055712152468977044435470651044774997563011240527668674008582173835432110647316775424156798132577227259735409785606831827587021393623372107339639724016530542921302519173402901491197504091319705979849323826356061858232845437061111855221690151470558155715478054538808737749919525898071287505559754074876263896690523538808350069245510545090636652637352316104110458728251444057546762186165548867513137332206312196146820990046286035501334675513609806154889914729053457967682049182851899192755029122728975018091370488954374177319404443142860212328122139461358959981768718469538067939144402969006215146242449947486099617405955866127783308094285466643263184460273630303848332346497309841085433794450803634615209037168985153505957405823393015499218168106820083353967875315260964837195878196893016699755509827953388697886422081976484143185162924954853602452777376600209439410145955298451861760643030922600982791835853350159889809771760644471102042324848728170728264693376897458978485915844364912229684684145879468183960459020811414834309870214087046681451862281823838166542763165803335286239707666929914778196423854969713696641517313103998095802952438067007447864663471578520411939216003858544879254734921515806589522454604778538479635730426183625698889202701796538278307492360820259810559608977467845675209540969170683039613792361862723747785827920363804420419855033943408719544687563835045115338199663408749985912421232569418365118779985825432457336447438494574836366250823315391067708257651074474601221755904810542389828136342365183918025514387804053414775287465232264541253983315205450524080988344042637421103026330616532131146696447836766866514019926108393961581912531606167416088681959770744306677727892867880731040956339709802739940937426513614131291843395864101107646788288820514779018823998234651092953931152893158121890588362186855672207177793759300272991838573146864991923659021927730513574129024220921222756712733548743902437541690005472883019711716565078305922437887616376728070335669246036742547409672355834562370500821913724180106595836748890896227844922046068458629074673183005912100603257809935587238559918128380363390620346796496151161099720196152563081109737808055153964071989120889351692945323812152022472143649730649277916212908209837389129658870746641869075920987992369759596779521914287703684940131479864268989963680234094091328337266506727976526222594022522503492050248378814575796331716206132015396478085966939506607394117203776534388417086255633334832282034331686802953556454559853336099075187520902543243971185495606061554616977110275701303163842803954267808246383933103809329624815152651949320154931820162835422667314749195443363179143384165961607973641336319795359988117085264432408159923167743797208788585532601342197706250377965134905678353654429905056485136047005618957467576628956494695399160587285583983988018915289607184834041062603276583666001016907094137019635234182520941377488885598721955018485069063540910816738320908611570583846250899017115441056369449980758975108148493852581866944680379101273929688597711442776332458902678572519285468947746090710606434711536873563528423356788938809360373869962543241413010341760793515448966038439202924989393171820115990630486063741391339319227566202312540065105354436380426440015665244171661513747490358389800033787847272847217223197717283809985796333463568085805482436583678457713156463530186694509258189090861668538500031660471804435247578450395481056210209454932715339820545818250304659641699988273303785020627160548583632743261101730334937748299761053631259568144845514511146388529354532500509688648747210411993591611341892929572292781176751551476991104097770690428505714578672614792820120148038676742767157785578280323831123764292890417716935189187588646913176999800705347473163577437638690686972179069018228375632915236011267020839370325602488124433207894321689283986326773704750734859091411992864904946334368478701067904258317507678085395847115073191452732011155065746324399236764739301092034723791959070481047540353969578523069876585895260169735141412488862617582781863321798180074750345912064956150598893918061869668772493651851087202914567000201083876927346578707903837741710517724897673475409191093822508844606215949604523192670001048675773717826536536478653482938309216300276494935854480823933441239974740481695952649133330810351409905593925362258147597187052684108725878108298330038175654509802549825237477584456487260919116112824901284217136813864932762179686920628810502968939489812759558162594898400796836152420307456789850092931581232369532718038417934157746523811725713744481482194281298617655048438527582226171397907992429076925051336351543190421577548205964277855043603051972233355013687370181244060341657770853339628641063556914217343614329179635663263691826960121720786896191106195258990166594659223433233642333551398347640036075693889901017774497241182971212308536346840360782153415711131690249463875822645904516305120437792189655108234855019271139182074319114392366035983261722310710503765750109712735177383627682870900608330917975799037950556207578716291134073621517219327919938379616224016517064350909698275554787707183423766027444315343188953038317855104131256289317947781077580357031186739412413258034321566790903755343180730430969414134599472766846311046062421118957695805167739286188933836812944626163151062016908166487166294090895620052292909346299706482357313408229848423167381309052543029892648562842745036217449160745472460633450799697202696636963305793510239712844460630472382149842262047378768358061585889012128803201891854135834370916473915065695011187109846389190791552110315178583518514385008724981561035960037652071007556727275390707315567736583815304223695039346178560541470596397222163546767196098562132411691847859932428719692838498342243459312285594991240299866629771178702770193166742075016036429952659735809308289751644070475681029656636733616669839940504615689046474400146940533543757704129963996709268100475995891688942580908218755489805429766268830677046735991767349903022720897707611246212924040095153804627117902991703452008698021802601597622677652908067683983489157324984954585901984321943164592187809708953911834277775717828218533582816668262828139371896562356279521544015721190641235113259213762664809082269501935135946717358619782464657314439814799237084443722972875358693264838672717404274564296746266526482029876819918756816475229458260906585820542191313815996690485711949032008807583067159854756926129688961762252688563441124736636760881007614374787922754921968008220518215244763815118374923350260690466700038613628394037553173041515021433733917512388731523707201570575888334837532670532077557500358922808514663454890321810374611871143630255196629867608214081303812842499020970072644660479416450275760230792802577144483989057085625105917265305681396681706213272973168708750424195232295341558304751244228805718729841336550166282529506108187673959697999071372029824840910453354195828215604794979058766824213499157678588790565554724513362676170930116253314529662240121249632307787529810393576449702994780527453117556391538018698780070518852330404471330477475696740038998429796037628942422164002810718673345340886867087140040071720586767114888566053448773250418242758492012463598498514819314776733769965626538057660010273818982866743454976080742072814877062130840130779727910086196107954895637373094429088664551102704595972818712541602707140533207798873955381196602100039183826739319108582000228015604853072097776277175996923322855743340196125040352064660807755753104011671930084321253302062096670285316339373681651306327257292511560941654299164902591219147565120548362963461064201576647304455226053755649132385880135996122320288973413975345661862943862384109805234858441039286311781475244893546624049752805241448738557035621574696061925738077855583620100208141663960281649122790716280002371601952761700244117035354595904741453301469889925973702250649699332400267541269832067562070850055295538517093960249611937002429221222614761528929182142446317614621952361900265379059024600492722425081510618859117506388174484644541723864228630267232841633054104974070460455132723411456495073565625890111062612858799253374375809679947080719067812165680583986647732988756904457092977533392636731519615235639890087048802302260362061810481068031307628619657931753011202536068200021582296686891684707996134331932720088345960954705458928656900820420107812056920363997228128359201860870433087181342074461938546947467765776414013827317963466989280816262824444559893058618007201521478760788742732962872750115775439784425690439795682496669800382263230069084919521967855485409519916123358547956426831355434696083293803935538468407596061347925625957695093615484928154380969528230930996594012494994783474205302543507415977826250320817267169357312695552687082750085790598828393723171338611582542605232783261100085078239482149447115776290041421899074479177660324393298028167008786924800247846916953954566278389197681311923915090832212939738022787165583501290685521644357055836947206013249252013518253991437028298604876120158485488680478930989896657373454511839295195443645075280567536923235760219826187078272485658473498625824562020709368540174438239947446742482472875849864897485785093686239088226490214677250356881186467564265621176191133504608043320123428961264052554202615443354714588249543552673902554117814293024261452323183303199211444714613639428740179619398911416409279931255942747001013961687102050094044795883362385570862136761950002176606065880249362381940645987965694066797952618185958120640251829709249784103607479920035248618850169550087999341163168015602733545963147283629620647077348760646150705755165736554426148717603052378513724433260868927017448422934068567884124262980542535020728207031358205404697205816980368483302539197728049279003513435617363229200498937098104714382819581783370180853328321753817639163641844335945752330023464651252892793272496173682394237885561739747366272321630026961151539236468314659126092219019488582173754077948522831734166740223050645528355643408212104728814410250088114984850081648824503950069462227088313993920142347266374249574443451435397181474695884354616564364325237801388086475658285555923635922671868035502028167255280560200004489043709314301288761185665145896301367212497684123300667700380205037175350130471887856412200491465763160065737878836939013997703145999329625922221694568529312180571767979626838014595979104306840624809287142225481438443666652003489236156471323668277368603894702369378978019177192224933072037397753495148164656070853454858287685145035065425335535855459350966495255773016856476231545501332439401948780458048194218485747751269259331718265076774765970259837655294726340561444118768311461068546898139657628556584703520582913169959099460271527083374927841697444178411962629040347452022583943498600095659908354470874963628164408465895912301956130596703760795673300175422193222327111238610810288877109972774653042590848508626302280533391922709784837490441449567854032180583767412288731264225904910110125652176591850798850585590500196706030211669142330071296698098482787905093937098562562960575587594861121027543335559937550983075905461464592467179716907158118352188504783024229466111390860505830166570782581089622594080787719468178938866872633637565968827864593213654416491581123712041402281577614284391682068318099744448928554050036779569748287636546107512937187141668740448797207679943979649430560111172592292911671177968219818454594849661504886329895008623304474290608720894362960270917420218227915124796098049570144730000636296023406742108250465766530042373120583119057291366032167572418419832493056534769240037621472108276723866037737729595788764809679362931434009067949937097896588180519658925147959514599844322139772761537396859604564015200773898924901747405210495150688298060497228605452745827798010867478679032845774186245177077523626209112197422597986884602676278849962068986238987522803981692527085539755685391830121262101206043476410190894962430222767757600270490220711904976812001555896408909491405437971667125423366063801388847328860915474753415963191081869870252742616864191398684064010055708533258135773683836341130361673080490673141996308795612019783983763379772074737963406753565816853316185323558061070537503129939487488170550541350926089680409027748795158107782814210648265847074375111592500340681438464114765803534315727478793192441882466207765263611616906855815088480727284156376763689841994135012662656179609718022823385451076448250632208627727672448625283554981940655306902868372071047701908158113438111363246228890222007594100610358447601664995853366981593357968431196124203053972684523430335904566411650083570380295051050956327849616549587061021275559192134983903843905346427273028342233873848950355090898329362776718801842836978568355673231282020403372850026826394012921822009503639472322311420939178702622895718486417146255779903066954470956350052332164776736612733136463445085167543833208003013140243934749599962452663544440597470634820832422837459510692805551963066805273194146973079946785132055611244257501884504722095982360449838975161095375863995353579510485433599445194259177137399954399760261542291878691445371477066158708260680811150154038014312897606218830414647980880966306572876056229391636925403180997406298457088124085860544593351810600020575657421269905425358858382038761969431320719202458922838222665426810511914154111112340057828895252822059275792697352779132031073906145683557604036184749166392058796648208982008904268808494954077723670346255960149183943797787427753643113467686808174766440810374348976430493941230989968291595723555851853720865635516292810150832045292779014563266494686389852141679130709744232064241573745284360853033392424301263840053764441776690941044311603946495127992617181948868646132304471122547114207790468143726598378082043025547817700765994243288194111371234473592252523835510051431153713195180083531982323921461800512017478971523023524304010991497564115841997119631755830172763280831925745059567443931096010842226977558755613696392569237385168361483718229463703242160244588532339443709129986444091827774044482957307829280667582895176478321245732194158749879418901321698569665906485927058915518001577185825926416217740254527580867003397852590562727000124780918315714203523685906234360084631361674723583254577090022271841418160380994568139950295461822149589906730817320954305440352194805750660572320457280379263118185865637648660252905454502155199339046828253210956315217394992214880907445297966282110437441957609271046249241188932372284586755219861654097315790234690409584539641969940177311567831643966314454985648801536708649671350384379528263914430348215939243023092621729162852150505893460734999016921135725899503497188514781201646836406943508492561970233846045100286718105322486821309994885545139783165198556404029628635212474641671865131931238757042859204202116487355116153464601989073729200275801005214266090166516655496449251742513135893887609983902805064051876678090075449723162401837562738488881903994386570532961981159970660479645132014443313630262043687612647328479818910470008861246380787283301010724696598716268871689714754070698781312240232195006995314481124217939839651082283365555368108227661618665461124540545769696208397707898289714420848068021751824120147402998889770517565927848856559190926407766273653623750750229468807230359507582439473101094031231938379714241183610733786193935515425403837421461442557661737968005709634963220576066763065282311121293744506591558668883731291466556317728167161763470771103087443364019797165716543195538398817424348129181276645817625757291149059021803841064838028148253718447411591950952457003910822974523359957977362240424195094290856702344672889235936631438150182582056762117688386712617605481127067595466582513975620551087904002526849922240962098754752478537123161872553849075924001603766750043514790013670646031916949877296781829451128192130798937416429599424544202791059160928470655329390556212601667043368350786853322947393153857497610572120171109305496051060073208137644529070424147278969826079559484470579859246577197563247592656082721849603119305562594305567603987075778992509690748171968798638821526606739080175589076242252026647952814599283723394908349109478848411061998997859152928957470755209839478358657118633517376169860171032844649943163050278628466857100358507630490583465608315707853940354444648488381324647507421001358551634356059647179071951413119782687564136819381558835531259931158729684086854917922245822281293996910981786451084377444062658693072920141504788266055725777188991022383970717381141052158589590708028526916827427289883991334344925580120472392102090625777917043610872676826552838225029865552726201189549955680780429966113126428402291812926944399252134097883870432282804324004484706855120512881317758972179457399008982994560303950607588412998096820071625672399263546272773800984843907794380027494805925226633034014823279370068754963944591586538710276853781679843918689357552332165047027052692419189056388564220962881867077526260954521668958838287823256614313714241103917327944098905013306329645050798386957946849056568750117901104940174900735087595400802443719694242959475766551532649598320280774005356300931791583492084477493921327447426598553216280247434106955548229257366030275511344907589173739508093319205614516677743837089587375673982560206739976796482578460760278037521310457273099700612325519563088647275003758477210645771413331685129625355619809155400802299220249999200159711734431006854311446766188391537370168917519330126202035462481496680845075058505670748469618755512862159044653357121544366801245983319296649436530345558560565454743851191168712136257825639526896915126749246040505110615179843597451687237544206223880265764206198669569782880547387383123427689399967302453382358566651490831915568070850502174410231745375395768561360870661762120191026304364211929965882055752623867730461323312106414622698098705916700852129604104644092474455371416524088353829406189775252436970069383659785184810619467445125745596311746716945881449159239822489676660944019306811916248314665426287521688006467292808120923491522001039239931336756460878326035226866425712561449730431597178780930211074345953855125878921686083250261736798730817688672206171698270266662556365054399312993545258799073812046974420363913937249886976229662223200377567887496922570554208984152326191858295156463885678913761556123731653751038326892428913167116401068713661057914937233297686107989100453260499006290304157583740355301740638491185059709851843691785555990725804781973692565439346706070595078845525748059127442343766977224823982731789492958480488608980189312972454468501414500114599265006101621719040429928215078962414007836404551842669036010276297933619731827624095929519354913200461511207105547668208561259546493224298390909186461723871649433722441508773897139140038542423219345316902780492051768455873250437132837919769625021482859956746705518705250702498925494532954203060998563763249513886779001954944058963113036627387961111485394526961281831291843249471140215170498234930930051901202337836904940646741108993589572892105841751142713681534287441928293916309749184383818288830525636236506872793332983973981802394157311473109888986121212034982200947564816780771329361374979982434901563777209158320286164914566651303857385970415399398803979234353333623986758032782834425624180853065716615508093145028609658860520612184112780132224930085399730052805856357854840939555305906893050670053144297243576850624809730294786409744155244574094022354749752898502907589913197522625072803486508025906809194376263664118330070670723548370531800195621850591378250637734992122286984999529228136037860265895023911865118196318269594428720820903435832800818815446068930510562395316259009929741093624644413009829882772600654494755860493925040343960526552939615357181834413965190966176547089428924408315585067390455398510051834538989124472025888827150934820105518563164958227427050492910208185190175247854307610621785577929972097239006162394429278401365085074616253905251087024750936481036272757863265282022337911904477789257050900694833585348198796775690246232774951626829950285858008629281779783690286771232618043066424891720567801299227161554454989410165518867425923790066002541473252006416981399234385341007213387181365129823360442882070825557806600782650017028191145430750650861330575849706620215294117910720246671258431961950711641889583161563326655240878257768229978871821806335780623328368921776640828147028137139497504946049673163498903747005794655426477895353523702906535865851797812124807712311320085700733541337721942395411381339482035258007852431489282563914185550366988093461480721839883079877982280534878093692958628643757000423857802245852801290305941473943298700670601558511643978507504869888405310347637205077371990256111680969875633779889524527207988329922358403067457152443833967564917419571304786557295331014442318677771168453797867025028031853143581238138012851940764491023733618550062237426254986306536699614318856612059481835668489193544380578122731759958861166046068490026658314325219352703368919805241950077565685708304387664139707043539246635430739412528077945522008261511599468747170893389773644341155660428610978992122425594742504553310499615454595919607638375801459287229635501630492769896057363094853902810450646192903655172846453847249551184049809295785546918561340079832227924515287850746702248987037655275617615024894280460551789813613795279737743946854907726322078198868575219410460798182493496525428712041992707704805316306723584505092231453760791726788917672292297536312590400406393701404613570801351582365459266350134743550694637128242940693651515784307228264237008631371528201061143034415478599660527159993856477120511467511264247380344164592703517595423364790538978813801080291681911080592575788411044263679769935771283097292335329863536077522745818495378184117753959768481758367239659207866052813132030961014982369519625314023006544552449345767541195574705482719445662006295174583816689856401112341857574136384877947142187639958842034123177170755513694499709153684048779554720368933306072881909060185898386076417366414536438299947422953917815247430536710861496810268281443230418978196756763113693778425531282402529151556480337519843655723299150025216338215315217038699954743249275901796636422231673804744957755484037735520184500544473517982893850507528435578030904051448244170421244618472814026048369926028661381113290946733339819274403993249521664631954625838653300672604336963869357782198578395899375609880351202069062656343452814603343880596072929454043274770807072427627637435801687210168789484840325921997981696560010301745310678668439939845206344105349673502922126740305004597756437842618265369150407558048637187454648520632667262088486815577246923084276945802377895285867861478978128684173001603512303509097574854840724765087450440396478659568916080683586979436377335958601243508591515678666674268857705421861858552703731065197050193083586083081002577548753781937096839553645270686963589677237015943750694304359753555644141674003778868850828158354235095765869844900343042046247999125790492445609458517387161192025046282573755972786459582095311009851581525175087287178135292975443577679007149307073682197497980280457762555469041103982199069684731575965979671023948410474481654172628113757984364691784728744426505583845585832861922493654839580782918255712513747006130520479508799827184394145963515711085612181183198254631338301163511823525067974321336672384772835038431839541835764473011008443069983146747188062136544129169243025542160041786069382910023214262883028844971769057370139675376647762898148118542471903127313211682044515375199852307754621532007903124572724742272440752606230612662472503291358277857456506344900517704950335164925859203885369135718153300454007277110047141510615572059006384904965546561484671272840048496437487769891549321713171847715552205391250742506315744814256751338745582278873459082472405678030547989252502217796829960982334469262679563112366042473150740729405199559498231863968106748128841588197908680797184574933040233187208276636172240400310707470292192594539687115009593964424528526872737179964717513271764456931120472871336549529437885982896227929530952172041498651332490957507795918082910596545860194401394456704450539163049377587397743992837963926399947931191872823234076589893919863926535447237571033119091925957785339489550449627460348216365219029416713863042648984513491029556820040958562256417618723846009097882222839869783914890790153952071952481188026052909055751454698378184052628329314008503644777577643963540102875173953182749358634906698527072100387011110516489259340638877190982347242668130328331220999325460737034664796600292351527395569365348816651015900918720605603628519297856820731662575959987516455700183958462792455153443819009742749267928868562815134696856121899063696857264027276808581015231812299836311052232217680200013308613296716455126991327813895469749899701103398449634847771914755798815391505596949364583175325520443924394858958919777985285212524317192853882028127613746692125701593754433371073952055675318625836075504188117208436912589126198905675929418631012844618095992384962257944022912520436961029664385696302494696129845562115977807635371526786821567575895591697077875807601912824630407402842586543193414059666344984854605292609383498511728187874485658059572486195593323105281031082429746189729671248601560919714987862100037708944018974159039405139281297815008025096650295537154753744631290519553937965711432434520987015343898464521582358887362991661377973511722020444323156043332222957905268664393071050007732390485630935231893194839925431558076194833025816837616804409592348041839663231677840962447354641538041644535827325883362087317037115361840256794869655445473280306853683663945732652890896384266904273320097066270041882720088138505094011537202053345188697841742052071573879845659932773934408373646806529563504174467935381559426844022463535089522037774227370813511576942355494747670470244253440235611104350543496160317331766134783108684215600735328247228309900653331486375904198875335333966682269361785034934987769399575484612882074140345849684225912959978833237188601489344888568719501330003448105034424335189438793728999129226004161285590312112648741603849648628916579428238931224447196133057165300951916213302182238386070546619497375087411629075153074257014601262607214685945734834595568754994833796244882566054395822881286867733184929375285353793729843673350212421269145242667824293442184652681369167656334354799735886693338251682387988225552976445051528594074823429281142764564435026115349161966195760221595628849808554731056232957518116009134215134060791589311468943372435440772602523674169631840259431329565557488485740591504264794695163858605193398526792217598762325634714385071434681344739279059720210857523326986457465480667839960447112522830261774572587076423520947609326220473309623868415985126712858601114157570357605382812827161954166375144862166517094888804891196826953776321542926622264920706438796932695002380261232759730719747098342153897776836463993102870963596815224232130455845111103103533044875133636335079360754086539000063335243162938876419197172890017418981344744569506896976437051216782633215292492777697041213383963917696195603219484753190171163406837320685386821756443288040862574680821341896172260589545466762129816216864815579947852861862755002098740915223361778319463222545571512421544097910515143226658987909335077567745811035655224092200013651082338420340706276513603020546034091505795813252883802845176880795132758288167736624554333491538154741841872776931098534340639727776455741383873463254798464978078983984803403122057852899887072117978704975236930951538816431381166727556769362459760271289535826680240112555650728492141421632506372028954296860651124720685321958096571878010890271769921140874130342143955188972319554182583177299945563683940870321577607818574539002018594404046571343239785571993263902294310055661508855590060058220397104878821793378055911005365863694536727600510313721587377837570739072286818389321280407139088958088073501259573703908434195523536559822562877210416356032963276359683725989994604679663846350366286282221412261574778229815877027155016753047907087633793737211242482004103412874487458096941529487389641995243720584564064324426582445453276166290450342428683532030410880284809965170572873886167102782171691508771845644237202121776942894878557382531871821282660849988249156981046457438229310461875214049610698026237282535431004176003248359050485498237658468961753238735151184698878656483701704125472071668659852165283386598216108076246442293668851789649248648045472660810187936211255433257991708088256739823367446683624974589209091959529022431882636758170900184448977378206747871962808613735080272714462890269759095472873249662019737121416966832721491070569632204359727759340763082069721916633320689274307245760842512560471723178595400084841780114364460905486337857878189169837427921680725151248021462514085406082882847042105288343515460246897096440581658272221895281441733809339390148259925424330189213140397344076855786456552554133866776584852689767012198512934407987921725174128848645023184781227300761287371231877330178652826022275580792780061170125188360860583234202024772677574929189342357743560984813611647783580297616741712890985283244340315075922948728489791172523043900140054942806894286441221159745011568032085951859385803558917736998248634600626648792192237220716999958595232155243763279865806936645024128359401124947193307727525670507501285940905759402399600904915455848714192786498276969467089038230069960839796804970588587512789126534639506233476103482474595997054592340582160459678483444531990462586067187748958918230047204834961093854282535139641325785021493326961432911258617610589907959841525747796031476746104777680910616920409102080592942169502169106609565904100993931518397212873533698746063496771236818159701173728439315352045804327004407465896930352831654103340994137302987080211783236174713279878320792952408829742857814896008200849647919213381478373078996676597370741987918523590556100037209422619759965842661311567848880551922820286859731553942972631210160747026177737313737187038660956220942817687677917284360313684474743864818532350003135274793258926558974365778372178074323896787936868264029600556218462639926946934196029081800837579803980190677672081820348732716596067512369576137359071186276205320742044956833416541494663913778854435540284960716873720092900416847339585811344036208766757748979875821811071870067459308534303654366905877794134650127371773961306510122487139336556595242973798834079113220708706633235223267536763898985320635517480268195599579517750312140551974779657696861544898871838171495119341438241049619670903802313627082722757561951446062984650953478862223031747070047004644458647352203234978555217530795749716743939542890083794717587025746424188759958211923662120608434948293685170008873293715253519068052082038550163840546872151904346507023550859269654354355330243801460484142017231275747740791695465168887642596446241180149854992561996675345175211463720117233469780271573850045929447298741712883959388417054727135148943117744294202578916526014919303228609518444022582538257509392647271514768099131014786550141261075977108709291303357892976973501793288897522363882752502407097655874218801593831698314506857217044449101999614327942476245489926934724547325035994504124122527122106266932248294436006863517796863633889383846542318526036246022450479260318764399669274351377362602209098710187506190127071916492435847268161711551066889867426374041120265000027626506999367306853876761120056797475238428588034208199348972260402911255972964098809414888680501025026072156256062609138767290188471233751991252156810032273425088419812122373603581864675524362091883090837277491937727044995343239810991859589459197010456930816424844935329554809923095315699493430220245402282431602820646832273205372853004587615797073912679775474928915949281821180743430651010909527529683146984222689507926296844523198233920360507078244925692143778467978168033219600395155081557898586383041696505855214403184250644576096466185648347786418055764976062386593545401587455782118647029180025241177903100448242718775468172295177851051801859233177574586620555939365920467680060973191051247113589872655755485055261902058751675784161235532222087563615159102428096167414256260870004982509046213101060321709080574367227085488141215778944001067906762146324486110264124531006058713895702768349052730408032859951109032273942153774461406087535236561874959166799424994711250087882247263275786909251556201454811995391256600263311512514735933494569410133894598029959032091724118857099821155678748667297314790956485522616285904175707212850650340474416897223793893898042149577900194138036024747378908093074185957624970312340144213607357625388550683905763085212956127527177371727525979558169093333586048808349825177862501675229754138741916601120767835330782022459146526718560243135584411411261790333367122272952353105936731097176490729664691913576658966105619265351715499032247877503218477320399451952914151310495541562303382808197915645011963932855643803912966452831255021918501125989591483116456210096735866101219339670732143741599454365379869229968098193514228481252189965782362144980578692631661644324500776942283710626822495271953674886501511415492902659473331162431794598894957544977136423979616631431215687542587795834885208350465950319169161022789092652411234780284722473023830169688403668335082119661499401053228486739982049321176393124952263317537916800757601710337760478366651488108237232890407688487671038896262802234459425853565834076149330151840237181264297486763945638211724029777695756131415402805718211180060353107161338225163110924157212553447238869200875752646148383371828110645685447766098795024845243185993583719737775251663625215983603854019168475423453829829781426419186324680912167658503197795544841840334366875464484984631142354074619464219617808611574239053069497989589316059944906555253357749299184450893302124816245394531686299600515218533096112379106842987313857321053566251115033336484286930226450146572132227099030171553870915802274280989016117293944762172332051202086433850730150734816734789207314068718162245800588199136631934247310737329133250254148143235971044617071047949900502773421082692751497962314148554979497934659947968824912635952798415003227188712652659293048255876236686572225108640709812388226232692800145769969758388511898558199300151509443811661391278218255501521075663285194949002286634734495729878116604875198284596646999729649861116345201960653050887224877860542294106103201824373581078941904050148925020768198670194795549934999523175087106038924961779736704876894559913365309985514836007098712376984116548368207979560317954812497701578447050744373103127446522190478141184350202801344135279921096610353180613635216980892135336055595385319774851191315328642054158632592182661284139486653483107287320370484474142913029443597742506654489230691682271511322462960163933805103435069382050854332689675065994279206412871825848244877405246888878280845153613465385199846465292201162775963723091701149444790224912374599791817891091788030135858319004032591545291607789460253496180604744519951553070331506883189895252636076770502336535758257287524488474474522417376754044185487447059976162518623341170502993598901758774090239426419639351053106677572657477299934720589404740861979988893223515219926362131064289633172849571618242698535022651191779410530913423687061561402633500335496029266157171717683452611077631402933700213107584664334271992942855817525758862564081646550322120717162244893517260878603671151289622143852608251027811534097581498281881759040603063066251206218596615395092892754398660065257889716182388475787813761321330113269406697464805291858344790092345808487621753084091557494514214313965804742575836925810649652296555725985389435294102174758379359494752427408410366175693618331327721217375679976618203833381827248200021124997475088883286174013425135958778124452462771606863532603268213984970795945280620857811443382314674172424877235905409773487204496594107281466528974149525481762916286123838426687538099211027539788901554291049771998217938169697643221630306547405432103481106667127388117850392354524175226422544326183581407002002219488822821874895599788546211171399109217602178751268722985648764801229436001813029041021262262043292080403125663589753830797265029126206420425315846494967144617833518087951694478196286152679504052379950780817657696387459827830837965802782285422485182051363619759609018604495409695193910626041162246760165316784338221819995530253018749945429423526606124626958595234636882489556731520867393582377203441870066715402757850687305348813038933178494830306943675504583780164185062436333427753982475654653636162277575402407400263107535480365842087806215581635541744610150322605164511925988942034382994721056930006945830694750985600184098474830800522865795387058355126673267970428788417802549321369578940006132890391565057731932310324063818171938994032398134641951067101849221476993610390527880730288391552087137571573203270190593238458383425180976891805135676165183209771753795717523132900961918593511866697657728103418088550084507870120319502195880727017173807723396166757584239606425675531848609987686553294799065084297851546598848557755837248065647906002529086995377861162291662381074005446424215984138058794342114087213227690301611146277287638718108085026557036553755128983748864371627371195175801314252380987145019154660027754207694055526197017564619786900052071764576262927781865125794600575522955591031169065292199357030898869686046467566608796559370740614714524288931779104575068393101609406559010489972408967933298589003212188808666026676063399577738663419252407477381558847635451471108753893841097869695229768685544882450571661880710473405168149960017357788412267408472559550608274833103499308283544282520710145441489543512454151977635690853538631853909730645017603333802571598010724277498138865195136363123100214854841489635073304227217942050163637559675182337149196051063319194011097477532210300386531813979407019914581312311354389498968888448178210967237097431865098566630879623174644402932108872152201893008166231583492547965919283627601197709635902234126339185873725596512683157602121020837412651113456073362666392395032998487646682699864719649540225754087167121096622706859617347032735569521491143999038526211594561664858055168538298185953847249417831409380856728796494801040456876821180215613373701453958149732110069770321199917999165709109983865030769930204084551170099325334042043848029429825616084414722594713026295442444828442380779252247074334036180170366104092419173062517700000737319015177448832033584987699685998752611806332166102319974303724516732831071164382270373569479368305754738356886396363586241543684603963255499161941951026806950380125576094018439967188526319916768652886702324795692143766206302012749438553749612895532400123841634033267248929983846943382956352367995901445493546822712046948431883039474359712282113133748797386489917943116067683801718900567857123105238928075744691635233777028875798973527757950667862180001391134666285010249430836561116800955848360475464898315040698430229314433654572270917592416517779556658398259459015763495269926247018070456218720319734784977872556847525629387427658007732421540704377495185476930968054119953267289558255917063652803383248856774650867710854770508973296427062715570963643225865770614607471672956269325512951475714868620132971337365364190622062784505693765594722458696866048559842879196344518457669143317965673592188251731334624383116499460288886634136438015123881493921864570579223866692430388656089299404818329022820075180963025925217033282059474429468274093756340115341292597202844853894576819359388381450258821136961096197050912099284261298631519942495086184672346967352981266460137050601113744544409340572387687776624777186968775588345390398825064895676380102061498133267972935311315924537502846228420857243129169907746221527494481021331950789201978246826692581020734802538463196358752540300742679240399195746064603363072332854583546711163196360534466926232536279867544847095056824827571665353827874952562483862898147697186381170074851415646981838176542293184309896340114743904925028042841980970289676914850464012096638293828238373299065154724262769989608198447610991961749056849907733612041558502704371830104807345255444674570150891107050752857271803448475574520232744506385235656411845481223790810708495261042914819250548525019818492703521932505555643280835851011697867114878758861783816047465897660623503774999018843511288127861805825808564277308619312393993203985704529799306735387949498790012221235245058461832737412781514702221132405064829211617520638921946815766647164351504648381745687326553907217088039055561473828118292620543927034361977416044898223751067708772871990315765031945785256344805921461755342022291937344940876985418604875626329990946712359543139826361808982038353628837655425978213104849679891159840254636898262759082544880413448957584393927901502861586460719293946626621833947070226281225807550527196303817469589727103873678857897939952909878811830918901816113298602784509943844004998085014376569664464866695689338532127111684697537692991171832100416724134036248004579538704773149846219213455582672624309177750295974999719940069569986354429449804632838236884548222467497029938069219083603216120104946885208804024653780704867375445428629181873180172148449039230588211327332466721904659598795549909897294576868974242820801588512266691740731049370536261834985525499082342268642093456507542345012143644913295122498788262473220751738426086717213641335835505396734463392124490275950968558342904103641285933978771031107519282332158011519267839602556365368076428506293161178703884971361723157251642333587081184925777055679571511222109392933771714481232753175904781590075011542304472020187570399429129337361421929525230988497501668576995928458090666639210572850553344075387355138168688323729443062433732384736706076420357581452122225469239729655503494403193232813805133326981083528887460797245529873035159342824141584759851335880502524418749864958218111511145366632612453180533357749133525759310989674852283977892928589850736948468733425087221031168429023238846010201009063691599707659683024074266068993811822560445140832568847342347401474284297471778061152347537257988875069446248790637697145786794808318894529799487007049947688849806527079263781194293315892292581518706285292046045921677451261582687298271284287129586555986065116175861245387325017771523815216419170383842420803394965715048106400112947523846581891845607904218689043479080382721249108987762881312414709722607476720096471150004677854043652042029980246299019149367822882399916296095330174173199912834563198674328571887755509461457327437202657848125466669749584284179343469510894349537764714601259817268600668362270467253774726725585444158308153361561471902797873589080934406056689890824108532971473477926573288667165468242104785981861219519501563760445176561839943274003993318512653080960172470262961644977633204090062595894258331790388570077678549458818327072273745362854891522309294851493951219476951323981404301532818474097194943478820972798007065342170870483880875124905944507284651734666305736727246975319005837040419211962075606748704277112998653867906746003924288137587691859327396070715282131761660153431913429312668715748422104334953019732917671286879555027905049277667452097847565604413094562067440176462396186902056832826254196518911878294491595974587729174400796675528176957043844811022303541214057511537916281961408894907199613057158719603903679927574414426004065585710543608413965895995288462423809013052046604369261542423182566128992868906454429780071089838524666179307341300346361379053887192926914346994388248637561459635488387576068292406917982838354620055866422926504842569952670757649999168343679568571293268668879879400503651489696957706943367040206795162142178527228230122847978477895502985289175532229165589488253598712966643150545699769639794662933314400350494733583587059062354612976776013636891091701887861843081160176423858838632348312922285987174721290780231258730036083772151599516609768565125746713177156637152033157396568258072357925800769365557070169401654130037596273043098966385971424241595994740118424297453649757660432940313941218457057056961487583624451694821151083688000681289611436264144778874249599804511038957432461908152553431011606049525160235050854517853976347362782165499201155450339445836429366152461209970201496379482779054851046215492885745864541499423676635027052722064120984982262018621287872271844177363375582328444072285517799486220357035634408078244785839466728141053242674834662282192056659640690966832517363613141043365538548360848603238396746845409057914214741384974274775267013240006969095200143921878933604377484589061823437780171754636688799972475888399073433720646849884158315675594889365096284476707859690088309354391726945280673120118863606653176869974924740037570085466497895068444223551486590930660433403706184683428977084376385562866247810101944600630015371549923209767373988261149241954965302848600966704402747205850214797399598635273487805811647097437046174485261865803249797251006179562317240204045473895249596059151972764083656050459814986032626487337019632998773537251235325818563646138164727005790399478276355821478460558542413801814107696406257936998279738807751029620928410100047556327914011028488551087567925383798424026615296443029999196135527297454776212657625399437676147186126870113627536804370656084298429771150047011170545905327938362837324424760077838186772510372768424567682794438051710213227834848677045098738474402724007050353614235764740859407482014307186351469301326188600322216776634492167141607159123427003352533464160871277233872544091079935332552548912915942200608498372008174670803715414430337582152667206755371497629386853989621408270069863416809745155652359789868752362566269612984086468973370710145168210202879072326329200801368222709341766738042281961582954483405120001399518116911652973394218364295850761565256784521284119388437716624283542691571999101714821174185674140774762032185843911651533995804651603040094679434106586302870743451809240777842625892266953805948587107996342109281118770521566233885670386795032917712860876079221837932997365315201936254179474355030039826395394420610960798229037727891982964510816132309967975213595358351811395245772688753891223712816534971522070456827986995633043625886898644592511338462654272485525073796830176925773890444680499389637353119320544049348995780251974752384983286269613088889900657670918186784805262625182837233509448333889403376405492675293179678871659555505045789640221424348516388670746728337202690332004854725257712833649179350168755359045161993927422399806758474696892776838117037912704158204916915510902947998950963199719928666915187329548755178124627439510017139600357952583701373704121874322362597481893425899834656706040284842576877214786593848975914251265569341975725352445624952082400356731206191840731937032912823837261745998758214531454697364656203963515049654601228887473749869353937251307171153563716184828395919663727221705013312138869095834677883603570112052245030812477940555020450771447366614239577004722176168738610431872476955067916850182340634572653652708037387697290613816884877999261965237387846321862275162902979861254042998443054651771383744776583108882710642872605958347339931905698296143361428171807599251611860000622224045054722638962737314326623195204253884754623153365922781530184017228724896565489308730660579677787047464394109985550647283041787870487450912595923414183360109257007172890245151935129375562248943561497679075068690062413264402754996232549884699486136450080613314348682523987594475580766386522084929427441378226617763328907583689667860928761005807868629647852103374347218159798673158552874777796681643021561287894901938404515358901277680063927935414391164832860738568623282543253898379472236208513101310668976937866801914328934344479507920228971292422278782214073009778933806628334974719122447075265216037944067976466006115395826790554806326266913745786411388576756999634059345139162431033366763382694116087899820458325732258715381631332217287744296605943686439634212723214954578313034360470731757676225457321338751115534053935061280780306322868590435612224874513590095685559819445638312710165089538463903737186025626163458047171609689451788023972843458918723670676432560710444209049876597439163865709565101117639674473996767972700333266215269248463236143979293993375551597453218151379659592200225411154910930741488135644157747350035003524433085908164198236395623282328138468635246895074188178020177994543706318384650786725293348266059230975843012873929774950140889853793019187146233683470749220135003720691586678493131197609673674672566554998279337677450732876698940444522525615333407038948291195365007675768509348703460760247803229453462222091324404302505773384287426513301296513175775664728115377346136808125920366348923833677264939236995830016276028342134890888000369724156744383717952868315237464425713412505470993917361068972660682382512709422512073605755299912318444984026100573985051859916041245394791602327492293402953211251647940315745722316391653407860665232444453686671498159902638515276424526878835453993801954808397077740434974703845566985354608659425760618089158431443143550938543811792753542179138401719103566124211873719530482775548102433257537336246241021835849793734779454638190576827896069145241666778952914569461626653006842425720911341476498124217002036845385060491565232661355599811446392061229065580412804795723598517639433056669829881191395220562696393558414068425182559551075921481486782630311082555567411947255051546336514084621661218348156624799770197809776370266362470746957028384499165784195260280639960040197332072630569888937475441318555004740142969147570029134748170755874863821657860809631545682417005125973655380313487241317542386398647791050826346453457883219842485990753752311092327642344166024123704982058739243216653540631315237673215153027030753774821041738135294339315862854711178860631895731260380675830931644308663966604499574369534465904600366798432554620528224019096645103091509129221278968689330338390209184165522598809984286929727667985949874155021137513182203380366894602950468795459129181425738064128020181926737646544557056717288134461498379609382110308968981510140353578856192890905153646188777278069701201021278001733388778798756927778676528844035218299140331811401936845947300261598011197456567727145423772612426900594231646029434754457185569379317166966662258636613549891965588177095527564511113487539912086014587153154374379514331060118648799802311660052110855919031762131848743964083420343554569581407925370568665905815424329860640323449921510716099264494364797273537596009060937337549636866348303326335327684733128554640313242453396456119750323260893741005702542632896940994288900723442009658798221284124546405175417411247149689868724616872767291671834046336977592154636082444782387873972695663935741208618121292972079618450184643637771960391341839888832981876887157013481139604115134314387875664309210883493706258456574080986136086931303863862569084587256331416917300893154870862507859549401195333568613599125810317856763579393371631437835642955451206805961003533581581423929162007156251255893359578858179748974434180776204276996293652064763534667177085375338835143208214494300520462968509836454510521277854967381769724340581423821049068164963095330442805264282496718848191600777206614924900276773115067458054936951226677992967586421969644277814820779909404059322714550958987825545324685976696969547524185098422785256738264239083601936611193132105261779782539741909369656988470420128724615992219322327124875931713523080964316839407448466216710109471176972044695494510417603511661555438223195660165998561215558234823044546434901823894751532198976902763427015810309234832848808014582447194402730160314356892045525532988944834670940886872393762569712672935142522966193689437525306291707255679171038050053901008254465496495761399207126821744297762512901406978480353480692985975190386973381535083536670506708501241065511194413890750358958504512623979481726366497454536385363949601863500601859434890758936815998117938595145046479451166255844231814177566400703501121528982898203122616392531508954155203805173479921698439565828348856763131702589863284335895755680631267223695217126227388375520888023635471473609508634786255575157562672597451260202579073816054428877352111154150491527740492815854836539205992323176359679680116304526101389101855750044543400105168870498187231403293071862070850940823733774134135377685261010742101756497517995525286130318932679742831604218580219515154657130455708224460575447793507282888480087105134772677376796482531086827405489037937695658718544924791726460792472870728634992678560455193377944163682041433903356170990790808047069344779612309537799437080999894935327570595970767363145675345052659417945413514754578513211855813557863082935071086812657295971398711936165640991444635362040430931291933469547147074146788027396008000211266297250142367884119151197539898295792459608430586980815406214074551382172115703338577000676491500426859303470013544121975591046007544895368789305848717802963750870388888079501981103303132480556908082882910071344332516000917670137373781982196788644517777356767120996792798491438927972666271665554488838848513976961593748336484006083233795603285858839425574429594876523124431314536871963106959186078444896712905865603373751886443152001890130547451679918039149797189116736656205378648619440662543400960722819289982682022899389397638738953363353512484071048021996687350600039559935876324059650778122574163194262126125312950234187405294556519933462435046454113910876952731036360685126146321046850674326178023223931588075146642185609152954387089239923838835955522081864212350491800607390933051039515627659615765772040865627248680576799084833773772235191539307314777328604331210691190460146274406437289502567835299120108128489012448193322137577981063549213263898862896107997837110690013343936661454959087110982115245641431829475465871015187504393881268967220463823685688130865207148436760115490052216940336346970325015688783692770535362604935848837552209990540618455118756544369494573770941998997410701185694238027068378497474575800983593772220460536594819593701078000854964635356391375596364227077862719688810617250270315106138848208317409983679823025888629683113613618343909793939374519588234255782578133111037733499934716336912116727797471839208206634161379441064789623281322438034268716417987136544332184028030278032456065520281929462450290671832705552951314902208449240416159276181041900877233697327944759565468795326248323192243348866730784170489454996800858452753901997990986135774840871497674033279176177022157647602201137521458007146448595127076146967876855421498304025654984857878926497988477882743275182338095640569282612827185832027733263432808528617225397573365706761101448791992730221272348870008911535553123298339446522238077231292881545499042114554817991805346172619359003781805233759996779836645275622466828262387551188406776517121290754572753852128707816244458604769925562751564194625109301113370607717657561549598803917081400726052385901549685901983152352573826721994645788889003238196015804397307542331052686574254440354551701830942490578986875718988043572863933205510655308414344514454159831305802939896755507020450871305946291141836683069620292090000462037699157922083080134374140586793274233003462325755446027074032077108340844239697383341613591380951670302372297853089043430302836138826343448285176220811524276244797197739649979662402931525973708101161214031908581060943125888742736101934984144463951373188601605758970362637636233245311567459033850846346230604981990355474245556604684949999291859938413039486241454230699382449914936469878256816098780129022672460452647742541972046875205176103686869764873256976065481814643125482660532235501893828642916513216431989559806929517661462804427820686944466123008205284595596888922268859085497305683237418525339997347384573163821596195805520205010004213530915925012881223086441038803208304695433738945141250259931352620828211479559907648465487176496895956008502648726200333998018060625719861594496230754836931151446194395158385251531976187791757087067836438404671568041568865485194669845941615745861183111536556132077096446631111256405355867865444398710539206081372568063556342473298878551225085668868088646767027811298665208729025619370333410258412380368326811480964335731794212937920580057083136673907266537162323130901990022656713174964007394577331623794643045185572854583878306099834872864830317188329912771301870504613548202109633884265424465536464667068013275317510195254483159460912433990498222221275744128459079972808468269791015768235263661452976584269231028905121896633731261188290228523987488747367368037003527217701018585420523038493781875222339863464234845761111815052053527069699076955086234186287454616902674036283980420827556194612783005447735344997664233410851394418796356379620913387813975056210795054351885939670016368764367089250112041676350523434971451398540411014181346777976483102666610430371464223296157295559997160707179347900133447576992486877861583289537429367204251926910920011648267125515350941141965571511164455803367139368839576197286851258443246915334140441243397507579125515979620677238087528048862705114102832158621963865585368355868444604017131526534236795480659251825500728858295290084018498778574861824897008931593801409262691668509857850088687883880191365946487672196935061188169724509039866686882814808475425226951835089891692942607511098403193951796594188100826376681686552303832865917692195397427881683845714748111596297042983209509733560926691684924532731738126912196255860884706530446058152308230268104325479681905133519678671456114611725280494369118256519190875715559083185859830923224352955800992287904035788557537350417646672805301526372765737740625346549122725269717233690327516921352166223772499809408310249207866067018871722867668041446753849068879160379880626559665678446717690510816856952990122265579751811871092138552071331217883317998500921940503313898021167771697351020233664202018235567707062926768714421059182671213919192613059946996660022048107981249094985740873375458992924841545635424167549884915103511598426743226321782321843455799869596791002101865050572593965077916556969912960069050491533433925825532485585671551217385637187001588004296498360085218291971102385679851580806770762944777239373309060086882014994613298494622992109881164864449581361957241027062653059708630906633797744383501465824461726096015610387609304629517859584691035532608701242562141929135158973824449125243073396819781927669428707530777605956125741342780994216758424516102056069522251476298681711299441419867255192582999022334976810061577197452243420957915271570563009155444000946236833377309938878542792896975341979499739299882545964623040659104403268779264141168795151674349802141991068952122833418710960224748936348898195716235255498885145315751151263230831909896301072267142486102768947980262480291546426794987155788148277248820375418633671489312621453412080102713602103438008058990751787308916198969703487900664703692080087630850436725248312494375207227749958439172733603513022054000576650268921662526841580894189415168530066122732186026010445083938485953231773858477564565253813419949797111997563995378813396852110297557159002035390225371497001549212689874658866593946866207091897112519311049757338520419445920831280937891122331976932134510167398137464492458047741873793934771214685253294988695862179299981320999610694314823497424846500707693078431980837916041306326834530811989207006630745205820353364434083610819280629838498574560451620327401832879739116783843090711701766953895840517761162100026955466459319267164574147941635143930624269909137194113944847019473538816800471028370367023336003792763898355300113741872533484663232092504727030018384464959417071776503097937911618491618476436526719722314186979447681598856987599283860223847322016388136132642401119621805183336409922331927924344016267853938155317574381655485949415799646473274625721281707988161327176899975563300594614635492387117628388238576294855941032964915942976633495301425333567668875551608525601179920392994391887225001329175264372342122898370033330042312822756151510710655245710755396234636693619973612225761458374965491036893232005004236113708657622491473261795015693220059253558716607448508570299382438570677568778964190708926776741131957038177842575982123878271633538201005477344539165586094904557741213967800098140732049503907090626365779227376709569020310905839282904638740918240053295670920483079507939024723526369216735824579319805567820364006141843216724098400359190564235115867169015979500798470694318578879426646189981583829507804492598316181672700677966367567781504725715532739629464843696516913457034764351371873981768584534568402571782891399819449803520373688940035792677693116615028720352395872440204132195723901707985880627761774640604854272407602096145985287282654350805405282667798103902908095054111161891116803131031749526203656789201479304240919584279215206940304348200442717322399727357977466572792535535284290102267103353015021745260549161072972743031172099279916075173213503140001812160906993583426425954681341488169650756056453836210853087553542452156034964664566612294985300251408174747017748365256084597440170295759521824794112083914334783501141841311651138314622847267657754274942923765638980621900097622059111424756892975253362217205004290216238634051035560941477593693739612316737327215684679774293650780262259957616443522758642519551905026070915027514424526639173182185288951049351111650251913932394912621723268778645111354187717807749920949935506898754494683963562075248105183905909290141151864055113231264285814780915228226639395104311322481696803491528944861929809212152709398656482664040755541350482594455238148007703145722609079060168050247881788924988159403461026676163821693311460479153849820306070508793443308159617810271392493102382765419322751539332149987503601914692960518682989339115931006968018517565056381313654810352281128948013666258035737541948610127400129223572654230853051896209183670038969563594107895884168710823628790369198473237689120126732368651268178786359919753148374222060885177355817212794708806245730925708781739713182938267317754751963718791939923947049999016109352942593842617902924481081542716614307456549085936959170925743783542222116217727182200386183800899296219346271159147407697404901853140542051098599354935091092701024050756033524352453090340448994133212347653173485036371635877213338984497216612469464438951317652406442607727880179785906771510149806946331456615617608926112907384048540815143705792641371162935239207241236336087969654196572986003441449445110493331437897194676380901838057597063130462480112872467038246728042517906377805135929268259152422541394150351588222944441899804803629005589166738636661329081852670043247805508447823576221212750512802079783617484400308316482500213195797347359898255362741642629285620361370038503277819336346739849415169533886551346425802023703919462393589179934828293934955356497759594619239302568509689027923849992239636644489172030273225751729308012327838960499606378633718889338337647914951829766763405918772764157138872518090475481658733374745603553013764784136385368720902684557216245794826103110418538979964968770265142585365025626746621172032887016725467236480466175662210915645407139173866897185053747051736254899917934266907998304033317793035579105367790903327448294391869094771360281603363382572533223416824790829718205769589409788278177191389009004670737686719875759948433909283896719455311267021175919048800677984592505778896608130575607657206587315988827561784483591181518010257713616851969232367607892180087440885864983715734682746999519707092683774667510289098001585528046290902456643467581526123922362791049847579608384212952972557499791306676633146438577772371300971289781431922468390733291928771125473501428235672525547981112168479004745071722952570437079684582533573594421709941356053860804694330656905627424133954375597983083964943097199235332323569926960018513872696548956261576930405475344949054081420811375596765073210693862313910793873548558910774051226137273010961290902741214562038497531979875407905555957642075359835640738954149433189404322201228646492475826446874272724714269982668628569776179848962552519163867815345155310974054398210744729275326521321970329433906348022444827564429682376724812748984750114930485741139306408699479083832121336418913672930671358496279800228067891242854493419771810062510862200724629749580553406353352356980268214942109175616945694498378857085404169447902676051349362728615285012189543045639927803836001911752680826325015599189413598117276763818484044913358604169789617384621057974377578130581017479960823124800098278927084205472011417171210027836970779518202166685549703489861621630866621035712492881758316982655110800867653135047809352484648275582986650042780768080610294812700477758609208829604839229523508204148557371563327405335218164554761559261418301702120652617319678102021565822622654054266255618577799556362740703749183691120617865775455458976034531152420483640355443185457558662605365811532570107674036686056488003552754495404077981762926898169070954501038131248566398699113622123566813683532232157127344797904607477032382780831986507932888482642876203454958827540592147998621282956313532701959040552950565473302525583581119322739590667480520598408226769880869910610104693504556333675070062696695860406972381821808369852652272043489388435411014015233915303867120389161150825598500896213936304956448758049031367092625653375857202551119128306664289533731226281091077942637922436692852340716828056141887172179590133961231201914488752937049093240314457727406636680009310075108764240163758688583756579534687773561540925308885202003978339900152164021820342152090163820938110157616802401537733577685602777309991548289495038361094529870268158406362076644798415632465169640125231980772186319283332257532816185917734530445768843178257836762289988663459555588885639253206393992794287773146237152707318568488163726694887543883332361744016034775945039603849472406160395876575121772911168114782949394018690735461284686019910475797304553671997828722872580149766942236536291387974027564079615300491098541743483810249051252373134246702801001141295805637688118759294634406470120051703904218307598288289972830439803628605594270632208766941859301454412253739516266312936491442154151010238152808403992009339787579010817877967109005999972273747819487883091640180056874349145902695832368697819650528489013286293352159097685315084546282297751744383870262714892694263320320618642661418102760953128761416980789016298286285480132955944932995843789760857489163472668359741785246214373483633624611667989715489038098536652952681227296459875759285239647010857649087379752069082166280827914121910512901688982184583324484518378441887885580126573413305293116452794553977696304933339116235957039649671277957687376986220030907065281956112212217573117460766302828882632990852063274881728035791219617084044466272640636726697913533522010197851635408331879998810787049544562679501949085334096791610827930734015282103656188619685662848881737110220074353423745690897917267907057068705413968644541274160563577604492919159684856360299409570420692215807489306038095604466792463560993330815311423086495591084058659298955161822650389259222172472310617183283312207748371426975609241634549158686374766553625350998335431979985711849743838713763373176780110808354113512914218009625873278631590732726498530566902795044742484062915655480761674902150257234731246511667820034385746069324593395629325877152702338944814182622811982452271705464664256191473768135611922309598962225879011947929120859285299885890501249540290047595118587802733688196365562702954535654187154930000363766124465725090778331915859242411439841472464339159467616058041851008310245702593761331617447569727259468660297073514386018201718587990269562192566724258743308847345415287802914062861621157677181613540564259814414420649516553511394316530859982326681395627956092622241238485187566380562746218155799556855025307726126294168925202865429073099961289638707444816505092940914532741704302105456343741381119685582757272402449239200523313045518251618936536367252832308256905061393398939779559382341904407824834184772938515867108364078988182705744862162975961067370645881170852079716481192656802157767476754833395330817235091592481197907901625513658416387029160569422539963900570361001456759431767510133869461463305552696872422069704979366435253861987153254438836158653979282954880352759244023295561748751045129881323292801053925624358015452703050748598325702989369601301484595179023591676483868772086786423510816843847265830933929165009688364850205277589032133832123845812308118030814811603648747733307181443647595203966764104423546990729885719374116757268553493165343363653469809779378913403366479121892672696386025223984535603678629382643014758013157072980095088003628622856233555162712891243921478302116115116703833295598426606137288071550412044186253236936445683513506905543705361619374642066595673977328930548407826604999387750314859468851432232855716092374423225791814916472942056645538095141218554219520145711391030732943587159758436180842058702609927441176655970345861389567200359196208522282503491123443062650166331434422050904956586167127108313228304163256019030815280626323185710814180734485092844849800279911390335602179256896284868818108815510447948349454620464606602424396315990502748538303702439289653806542362398058676456064963015040945976772437760008444430741208770234971939341796362967976274469803942299157959530376765027925654663872251226589527767184045948353848205659810707245132156734065969699800654782032777265219272296864318672456239822256821466860459809261419899926578436725006153878700997158767861944670035840210363406818430246772947291912395450192196028294696108484078298765275612309782374401538969587210388033806557241291465694765488585884831073500144452172225328322342026080546784013725431577123116186364026614230906239473235187126523854852967428746867814079760832197253802225237289771565634861688814299742742833464107709193244656542689416119151219982174343993630629380390037502708198086123376716917015404759781954101095750668023891277216358693896812546368850713119715591687625875554174541443342008945040575864342363037296145354934486522238068242573956846441816620069710034100820097717787971091404637052272591472374237848997412672264933547214946521506692943400634646503963800008724951645122375881491867111521669691047443297989077393282166872387631869525846314864395138372989360906013214130437430769480046447104632394832053100115585720003438480685351637667542114486281721946352418621039488072711325634934884411039862384254837369058510784739074289198284977854897579012395009305325760776927285091258608406781087787223347223741564602207139881805875467246135491861577180568736518942815346050165498884994665748140366962601270344048850676286417585395983184910833023315559281968294274955406661029156056147244309441739667048363530308149301896928733398811295799393954878094209091468081161442158302718166283703548980690025277615038569351493663634505617286853180136855936553786171836894781655410826194918431186386809426037006798459515704909184740996476741825604001453599425993606245354530799275666511988481133729450131686973478634338750003940242056541626431663623865500418883205249026548154303965463783389396725725170239335420776455023372540089408900543845050217956187666915511035236499903157288252398322282305458701413599534062279890820118072894199082664996469401846196878058380572693789092811531405066375529395447025146724781248120922269044772424491675986663402041402098322393848848578293121275727807180980166320742680059532061964265810088432141013959105491134326135500659916341548977870110985318032156948584888654694569190780808399104061120190429972951269924501781853544884289630863818887971463543724414104578575022926002541318525095232813501697836004978532336319043060296805408325637122660112786380563298632015702030311345377539166758768935523895619539252919093612608564305046786400491021804118392114072726610180994394916576918624280264991213517059085964077934023177868531898710020086365259654143221868357088522980700610092354686876532196772792893503189947551139310619386081193597586325888102078279571785391593816657959271859625940069241755865972448011346139089882208254545885483069399571117527502281478949782508772182495689672913440879370560697185516556198518759702982236898940054195785324591209748563394101522729519289049890678412017232015463414253965363215648877962227579029153947353889733216805840438705551545533755845245998155087759610162184413878213582814395650417798890526054147991303416394114270988236889468792036180885601406078337232802743347583430076077155248227806941410404574722644048283676140581690754689445658744565499116610741033080747968866638292868343458909697073529857786695540956894935216150279892720975685561069179456136841449264530248706681724454098874955211381728863831591763948314594393710859570046080119649925100616628027944550854759671832138661632722578735198367584638562270889967802987070847474968478481559009712496377337608043018074720311438610337318637648887337685941802787787951042785278168200767383308446976416959157586374647678313357890835822134231087387240434946918747279515508277514817746695848525873413527361197957070564667728252941816236528015888896147848560505399076058378774415371207359230542345475661871861846083242308834871970662818545263546091344668422952033124529025172511851976703190149856676470937372837216013558848362636600967576062905059821403095014723949122938699308865511667584953858419992496749832100075043803009485026373869369261043112013536670253734014378169608734839381620250063927880001144299683150302751723048200166152612086486678558915907064662896863672750732717962425563947601795203738312655438981087419781113330814991288796826792840752902779508228764503656420569348544721364242712646998305855992087667914529318285022110234086599886557000799849153797704224375554316293617374553305918006053535308285967410067269410261536161683846280947931176789668359377595860870695758380859059630354872172891070099807222578921200980288567595328472354007904987195285699571750562503409278801547446010414064957601986742839602254723581046740132994241345120642236642880121972577314251172279383215621300881247759958101994464366169050601670713404904658885628921055223814239808286737838611343318334084193042135135440840174640305240166149233054132896974255553342284447728173795519173360680473633516458171757092269254445323520929530825271761211624430004270886281152909187470580680191566674587662633902997258330264190243023447947955215190874859770491337491293409581303295000047441327996652311882621046794911365148706135861317850849826565153681881721641024077123759722484884073102936219713688606430194001287439473813769915240020973982449359239300433635598661401641532580856467894553536576483782071102938500652713699232777622600265724946557530104846637710518016139889551147406267666254973991854012017519108388784919597495758070695610872379638230367082450702685064610587232493000204649297121007030339491820024604818498030491315239405989259026548414914157150633000727440449145026476240373250560981464417319895042004779475111368704856407353683417250208448291548868668138695954436913579194284419991837263804937297714330361717648203784035244546516225921240171362184208151213064675792107815506398041318917221444988154014153629243661611116967726158600132364795092970533800686574179142338977627189813494866554720758091130857631994681534817715407200230592651721934998663027343373400990983825030295106522876706771945884407719713229395735649047559834342998949555153228002806147804263157559525539293905284636208492932902184723165530024520363262251534722752500665609304168045132305316905612868354782610502100360428187536517586107254105219532753593526931878849192326692922918415095308225793389380074864505566145352318335599275306291178572775951117632099065013401192963529235845113270601466199114595002056768561231344326503907571344573966193946517437561909638700513529411669982345163997265170606627038797489929202656304107045616464449707130973511230892271240455482906266775028034493145319999747980366687739681288574676508036620223446884767341713511765788660736222381503375823938103594578746766441905835411927139463150840873493222671122334408663513217173622576182358309655135246036815072571857646538908757538862924734165714363234399865122308842166749151359809516230850658982898825203484038841077146602747155156891829645034343693846925285192500067775193917269823306100173450517099872580994503765181008945274358543812906370732905561849977154705565772370547247309521035072412276904267285037414704962251490273867705417515308842782090610165569713906695654396795277168558350986161245828437499312107654937998392386414713697378044880896425427706375218440501538680433998708131966102250941147500800835443641618956764627513409945929159499678105335287274818344385555571517838690326875384450806619991053358468755799196195456336344757593248393459787042175704421610962184778198947380695898188958667146259442697219408658198011774794216797313397321947307400019020728863276271097012679281332599293402729522045985275061117584925291699247676976850954186922496786917414887743976022700189613665635282166896728131745060687042682734290854083979825156601325796853493306522522637779246311961080313944872593277427821294443065342612978009171694217132698452889510174925973009718985473680466120297794701234846235353329148882457691161848755113854770025575015512526147239967216389996857648221615203720195807272789215800937239797407192004059019865673434596944182483466729019564661340457765063200991166309588089711602487621862046293853119583402969466275651943322269524108170538309287936186512565653185499781510496640643210118881576443113609376813703815727855801361906681521929052283855876703199641613719839304039984207822705304172613722358398864441986412541091351030317999094245865363469878058948419077697498728442641197841099706389694427061319183093225591486585669103854357268813740203853473771315605031505493528215560558473537113729008008563400488013839308913989085556072574558337321665600535344675422962264975080512628198080824651231226839809896513264730464718022335224910633842394705204558450394660952689826548167958446206344773233644738339343854957013648579905308086993822353764202632209435915464120675538952827023066843097700189504125342595455682615102293748717872337232968016068517157186464788218729521898170931313600029903025768952631734644063464076478879279659303064111920602294584363511549541265099342600069369409072854080001181437909650770234382779080452197813668627884039305710715916413931664944838694992935636614234273659941687192044488952589597209994594768416437886309670745650031159410378235323763750249310783614662942308794408709968108371382875248972118113400629762319032506162739855279548852092943805649528140585746453185026872390432213245714668482882674844805177032528123480453383378768378883493349081798967187171843415451262340274358854475842443956635631680993759192838928692057854226326243967334176588848179568236388490555207405583884725804207308596332035659713416006053653701197385689945112956600336796021304148558064349562305629612987178028662683163596502222429053048886526980558562450001464303504857389833072219235200225140544638461375297407460392506603888421932121989431503046099999490725403148101359239220614525178139419673401889294402074371977212708462084573764018040885960249872920404390921311894124321962228662833379644693233494139080245422528064034906539604761165395048643344067654548658522025617350352994072197307284247974008286634917764225562105451700472251260639354290305025899116772939908198413073724274889099462341153191113160380311334669484334489851215280092728063497576744294412484553172495521951938509561050598432107403969093583917015836808437103337449228987437738675426913787917989655542020139174267699675893317022763619175969525203962859900002051323048653341781920846810147954615377759822063504210484289148916681163171543022145545767171806420838390494625840003373553709435019736788614929315042806972110677303426024598285428624735097324486117565994777667865087549245493315771471294907019722086834781738775862191092706455420052755282613952080565559473384787577943271461783402795138358461463073045720934173421522053237310129074288672243053022754082409551652599686433606805455894279981719976102433664064980537620835494709244407905226825132619026108951130353441739937241838438480987278142564157329697760640104939927133776943331535445838974705400403818151442725233282811852775547402939660881118848373701785729837086568635579073371108116310627433889406391876593714244942532807644697494249335178961783989492223414075835715718099045654686694769024110527152441224906023160062417297194771156355772419302947953222954901549379317446892496666586487466054868905719488881946284601530736671170963439008940626028777767655860252971117416566973478534741815891897115413521623209726784755967639186398104236003861868766648141579714123611659112880950344028292506507910901042661800118041412300913549051645781644455719218690140843584368786894886987285048505720744010059215779938117267567328179267468348288304234566887920416280288943451660307215312580572340030564872074089772812396302123209127834951735927151030326762346765703974548669767506377212712988067160588964499810877848370756848249394210302733926598089947828446620940258884239611506081724042501267311390892495065972730117787950957224254211013510510516153272001041236461497395311400154889840220322858584193428940522658517949697500386815250730469819630976453960948877509179805113109579569643263911950867737429110573745155544568560102389559166111728660105796127092483989549999917372093059291912538752768900357683790264386024671018447772022650462735696689958507452698823892252173691649684943550870532181321889444849685100962404635736939704900057076433467528894039801593450241068756384278553658641432535954336058157929550736788209589008441312121250979003238195724311730158368386012016876011412709775880399206338724322612290059325036333661299068917315124726093940786120410073002118549737023110411124123037728066866291551663297504480720049239944815217635592450538572001433282238374179212610855304834029201915491585340625609289722043115392531999032114928878285047421176704297470210034732573346798034307561943103036458191692382645838176702706258062101200156640222820147134837265948104493668654347356303436883206951202603733432784373377045586312678545551956384290048376973998898020751016288618093747819876712517163817105696639976453301588566115638991160214772988018554093129722886283681462543374521368854538366784519863617416019375087820327442763440573857679588060686539675272186426861350597813715631878369369282679621171260899047985828916545096017031995777235066609252223735766154638104325827676066170192775139939962033989372897922092285212086966928402870492099965130551269198420341306747420832127311396031327059503052041210636731266229329507786764487049262786845256778865556590718383535438080384281232607503401724678270618158903156224619222211521894488088776641986487929897048758556287696568545866301552869611002385878724961211106754689202324143616776139944446964636434878029688285219962720569503589964815706381901031500234281650765033158434522764809621257952013169146298663538379106947242787553830942984625890742487413963642713705305052525053189360675512697490999004749988313872943003056299697278308975956112615180188573288955242579262795075203355837893912141914608541604143838967042514440790354365022113056053820866429705309225135312706942829945608921354174706943696514056343220742841149132809390710457658817736833418473144609376584194056448164482811626903869685938368534679857009289503525054596635388786162322183873171846158911505848075436159412074801945936462807704082085767680062614369497676812577247743579257578667159872937858827134909433362420687744111848570360842460035345225121426565642128647418252670556987207745756294068912545332934949184682985633265406461136074260355166140228897135941905001880618322127779322161589329287465728963712538429601939887611111856521088715775086203791243099793154664249903062549301277598966621583228473935053001253197403281557795773962878894634494875258198594390749911276091529894569432488764807495042415782469434767111964254250130894672639582091422296212759965632661547789828174798311108008115455614666182367704660573356242114069381943343024821163725033820559694320805844844588041566043188321642047547905421070377738353884104867108766289643123553035060747158412468808628068443124253419580437626593911829334679035252712703076670530377149745880303771368245631017945521746333244448809707469341655094708395819624929591345280264795279997499568520907969382248790830623389238852010214234427582532180062698868477452717621631601680561656749224718834234846509958301326853010014680648738154771033486068344638626798963226964046851483483917650622484026401633507640511450473351307665712983522245543459659104590299482715262334623086948138735257178425012351647841143026961321456410699473325751870462975216877601831892156235577613963373407096980113641686054499137288777919400745289260810562734959509239301607448512331832474512463328833250155755286873479679076468918283820337871558552268154005872426277385413612047391661190008856362272675194301962791393173684815241408754411559529944242610128408623610810880912247631837734880079294062169492339041011278892746986700947104476588748647678038238900654104904829252690176680090810367665373279299284209159800687376203499610940764744899952322037277324850307028265836162501442422207294310664049462763543218930503653404454725136415774783051607877485812004091720579871058547732821873294156038021268828632779913863918789497255497445326698709726606234006822290449327071693109747002520994825520420375224594357100523947955028991174910597568872203786698357599052829746024017152739516816264822019869733703770516812123459576567823577017685001442591899835634315022025680789276067470666639590334739476194775407934895224367623625644300023497278431705134112213460457587753968735571350771966199252728227459334991026921195871290722634699644617496275636729980964083377805741323598077968941985680690868786517503889003320522883469275799723554292732754847028923000584533219965960378653472786126814295589905121797275563934539015109838728965260712097457161377199221415041052735281665120537374642661416056139204778851681109835886487120844005425942099614050179342424395760653756621145752308295055717026328276112996098616871178490042518534913354720097712915960235809338892523673538151502339487983580764142731293709915507347984989856268934595452947065564755439932220502344384482949380793136658766794100497310447956873614356792850782609550308667392384795100953943672746356136089462028038373032250432409341255407048010772763138018832658226747341778718043394391812144062778780603001427237630477865300916224731397607805742035930521100109557742844512793617521802011665480290974434036625170931266665062693532493245692271732303951029595427394825820716957849617311941133571897289310081410480657741487529643736160500018847296754902474176526555460449095197683420030586310272588201435621679013394356644938470819642234597071327773190962591280575406805060207181783154574865361164580591520968311494545401983489395532048676831146313890049410425200256541894264005922371791978309664761125554118077956529746334469897949161991481485457882081439186476848528365960070483889411740809964249970611448287476125993099020682473240069652438730239791499339740292333472903314296304185166956393579448933392252824484660803049974157814402907879564697161584259238320374686176437616485872970506416987480550252595263419243411851345147144958104429635228239803495789511598645384710244344580896180153937114875265908991927460622475556180630979449593904942738191185670642882515502991091939600532397058369663504356824643434278143885409754020951867712240063452113113762261390632427596196096525480839725956356813107098008664558985929991406284260785950743524345553318039701120852912674085530192678812522863668150231459452778186484729648212581011478613129576991609941239991136983180376250717262872513529021530155540016412249327353693840960005437601773759223155872240067328638938558229039156765549433487235253809023477390796276276686908186417469313208428234208126351944089753551338342729125202090728070082514917303121063469629203381143174287834847536073997037179641934898038411147368089902325784092409157221349551966110908885123971541212881909268629899571747607677350133624465632513287927206000564788207126244914310298073947174798594970838162401584761606244934486878418000449082407076802047727735043289514444712055747748220141566291023127234909456044322341254909035317073920776431877733031537301210200837545853727861446395064259421212492469581948642087848987826275436963762404867478453580766133130422570849141579887675226854226857585286139983658577786027175037490448026884269282024953676582250037475238731519180402887461325673199463716331625530125060440933175324653225465692609159649403102370591319617311398291374649305565122074560550606798131614103328292949185647545274386263311745040099817146276091746161505840669898528969167157724173931912014807014948128011933765169689706889069011131929596029313243891253066275881227763552243759084248888591895520286439047788018300085225497390364820552650332505014369483646323856650433799870471150596236700410665813559399483797443631510597594159769030249560887530658041270029704313607349198220529222087390298038077030135813517613789694261991926110942445195768463738434746715671609758644936031153158846246195508099406090393172018798025459086693984131303364998619786541408461448986313177553807871210544693120020818290901754145870132520801580327632825045538258898004810937548351147182314049709734342968111350253089842161460105591637625393054451308839104941044146332984859764585136746335458744471646664793449559066549438413897830412203406532686983540648178446640656238978764454818501331287448395368062525237316410695693949245535812201183629176896405634171499521981987459203229226792291059538481724498660766910380197152153002900246393120063077437202840394369521364894111359087855865984759683774317840763133114043501257053255690769898737013045767491263742131414084132004676384182777151191272543273116329634825332334306505641562190469998298675388376583882419083007933469504529853723092239248359072100562349980047402363122472696239041847092202987969668988417628549383754746173163815920527180872223236431213165565646031423269555692614492750658187336462832712383702932649698989608685434604641628506966554602303168136692877057056433956835216996013492765900490096920958726462421592870296341133964062355067844465167791035098119906467503700293341410780799406046630360467424849045790598402203404939593815315214909407023410586555879746616553834644407805110201466986135811693349995568826699197203252907951325985532285617251800604687624695805830623993827361250040769090053495650838569553572163711760098244079940721742749594020759371627286517588473835054143500355948372356607455169004983515699693762646254030481928082806494749919127018875287515996948820837089414139240813068251633624209317554371663527670213486553099527278556204604614218105763688021167935138633409740909414499279538881793372645398671659527003752171438250721529622635811137488582162580275732078803393856753671638194185463580873673187245666431622624734510564059243612957270167322797300586333217249307387679394167793867056356869922490369755057280332355933518727463019120702173782668388612970017250244310660521903971517569193940304205811983123598030244330620031032663744014384906288324454430798138126576639644056506444834157832272973316794348487425972447594904303931494634930811756615506021575720652314755702698371083542612545981340063897861816910917337002333293857801226284271614853665259889623538733429520279795370753363670661352217401561403710612842725133808939337983451730778635082098044338857427975090175938485561941894115993834958171799485341618641638773345813862656739619094939132141758761979179032223105018789766386813906747484570266032632873947923160793652098024225190686353694807674357310962773640337115819444007602723987723557304719487796817697400172035597772950341490943402735225025783527340004630772857736459872210940857988078734400524379040231156030810641318969704890373001743257695794403154240733722949490436307374744236866497456702382818133978117398541387120478701758262275092972579332418101374606943237231230636971374623315720665741478076828993687884002983436945955176953716749068343770749928962327141415705367200456706519091378593774252932933844692025674170939719294743910728580280463894725334289462769551802649083382707672582338703103582001566528156358028161253867353539078120829386389756817610994071587107512109048036304166555181600574177531785611370917219724271131767581710647019409133907535880865934950164092175045607340396079715690707907510143803038425232275646014296761596040236387646439739615480477079424745687899497715877123195697764124541554045933162071718539423405395110598566156145553094151996468537089765348202988667831777469761464452539663674118908406540936935636981881445299301833958372690845295204425312651021458219598591781495731468085251730913379920980133214698879594984725991230176960516202880068725915208084733499283416772651308519811363008863716998954688103411826277218161523990079527174817854346585289033284636212457716734793372905648086591748742392560269830820395294170972348130078850703312461060368652928483878049741847964598562112935334984597181556767548605717846282289617862086144807530933660609327371579664568146617467003003369545354012409431379221097634583074078632812277598483428510369648091961022505569697265365593670576097584545484601134684105184052668065012302019447112385739068672228911360843228659742244622089783578779457279603519847383344517471531543258972975819390757544379050298000027476054428328692489130520958327955353962813196479648260023143365811367192145892322344409174003938252342404274235543625365540647566930657918116713433774776065378382486351073351899361140119909019148586875268008027231491312318883936551764644563206368952625706050891549390002893987762719163437577420629584170725486173200773480953723927351566161070910729403916364574495003134215711000298601648904173912845092858998108387819183049333023740484530003215572828328669805996521872586415670955089024210992389093411570859474008100509011842239847369006349478605252951450448519550802574442512450254267337513719983427085763286540771361842006560698110033158865084567078391084851528184536126713073213849765254117407046477769693883954641465646918913756181204238323271463776330699244763153819258551743031827238997975996735103141874891720125106804413469981422996473153430895002700643911596625544961184431976385828853491768248138675936936755574057197347545461170195779801361606919332172346705154511254192401004959035458039687118159683751993283009148720970346164726368987897869116081510279196032161636959049418283001236359374072164623200304192614276573315522201464996781122688380669732780192819284133448997857884974238764954518596312521504984035288131959485519534833267333642061847575543803837598648034122795862078404515951662671881441740320811101742861797535706661803460965668988132008344551632620727892762548666157052441184801499882823020286977415387894446307287454538847852002967574645097186841639767614503446232892586602537186304037482921104785812148724194172259239360656427386095965317523436965807533528791177603437513046321429329320994860015419420127653988079392637578510393611678146558212932734039005619862740140172224812657705880083791959293681260384339231643850170458020685300585716901786284138566240402252700925786487500862935319899218407436442973910572676642246622434093288269031173432660100720044000825601195495557165874908847459362331220264269713948029497458498953488841294494165407613656754052339210561025768684297115473731670445669882482570313097641439695077820279061432067318819662459438155259132373871141565189793072607609718283611410978698611977903324087843839526720554157603680866621667464727774310679269282488951806034079601081583136184546701981065821924947436342265076179543441140510585912248256011422592699315668976043651883592960505320323725372622880669162030144615078270158215583772673581626065447501623831505140854665646663033503820249632056793006980580473358100632114414858149332761405329519701124609042639957714191066635851335302978159625412528471036114502454211056668819075654929425026647842949882202667243497169148427185158786275573583947154977217629073193458719418535338295286452119725192507540963680125458360983143946458059477919876676237123027941605156019047951261148686587150676384969029805208050725209941307855772755252248903185352682457398781722493958340065114271386481484958775710366478528111136360959597647589817339963008760346071335787257580919598581390085164813166411294862273934501582443974422618234199719773692059428163647323123926878073087549160083167823563240821365588821999806741215193411020764771620485320383419974451040904076370323064420159475629262749675816402606979945485096784107682647835017133009209423073262881300781342766144002807304705498176312157599784206693627552545793067709087145332111925551099490501195090386363073826445692967560086911640910826996191267069038014115902195063700580436031422684098720227012146476185853729732130580233309561010632789023482001166340720894739957844816704892931348568340231495662862870705729570409505338072249730458371044101178242409372859712584939068095316693370313158978661566286055814251766268126990854224824616844968993598932980852900127735833435932423407998630060111911173376815773865222283058690767992235830406310571764851984616938104629901664191263097379174322058861461796345382673329877914938639196143180037674791082954144001622968822350975971479850074478581334816542762887792109480335561793567460297473699391185090191707399401692529326838533230438524647389358593281963311951073359524202353073276819204377101528574652797412258276153251476977576272050998234512991312265176143306845587676082764332044114434784013833523546410846584535527919590029247093543423651645336012006152358954633090441108816685263170530749867843894414033062069583994724078809925722880402648278563604891139725944716416312752504432118623457613331798332889762860347332191891023541158340445592468884437069142565767377284889574931102158375579322454847738798454724608441949107927513000988530545184710786495669316917463121805844659137142196300002323030151208290555773088089331327139334209872434780409672199041103132594568826033157741010435472342126713333483166334816550992564936199751794500073106650564171175469537834487886722771777999985541821363288993069016323497408924440075434907940454246107580006729966629960206471576091073468846251215250325446495863821155304926953660570135314469483422954986942397132666879938458865648630209180199862033885717696947203484996385953465444264433598444396544865608791198076489973876189782794042544605397334237683663650942656124097299939857374288659696037783709280630945577324551304225449900365913358747656538289284276514416824902288309156909686659494616298394564912835113721351493699085696698501794723892274049851748899480623257417626861905599339249373453217124550472173206122712154637399494486180984256929476083618823028394216502376621465081164992247716497681664748164496752470694863903635120706171420821810594304324452569074675208367131513915623969093704789959032671341720795905183752442582341600086910650967739230735542699699823581918443708336388963863388212986774856756682353687487056511219180862409503964914127236325922749458363543717250937564800524720548323067940111764232426778711014915730345503222921918764907124371068776129405628979373520328014821832240693211022811156962493660439683858575320619868279221236255836543309702325058959647919294575586809181111084234088402461203648770644065776765391080932348708557843889805804766433534040883163470227919823812249174887993680929472208424888657549838699790034781590582026160748838388750890516802047055007016632840146312886785610535783018524218132778573507694094135181697430804473034299493457065457674447465835904416269277275533857823124114295112478648640917279250767305615712034792753972634400108045687776677010151206882802929248080977748436162278015561322632555434922373556991062389773092460495532647571628252454220229301701912999736312677055062616252198648883017636695513666902502394879493147724145773507682182887422157461945162913048424136758097605345442173256435812908634768145002728188153663219973786358723553416215200346041753394147702605761292294730761054806096927118137365878738243605964659913652618928232532148888406094990916229474284299448663089963932741375412721930877681282724158730311303066590807215382624339559692395102762968469520461471807948758279951005850085334182871177152363885940744291557876821017550812934362123393403474390772991841990065749632997663796461530321984005479556007325552749711568859727540245364323895231280531497393036083519422601958196136192468375243303928135400681500542023181667329173704158018825229384631249269843356460536901027854629366429208562307296714068263701243542369319920667571753809871600145425379059539298789818370953181263922743914540793564326091646407490073660980190537796954937346735309622654342079741666247330695043506532461047893060097877429410765045374586038080163035101230486590518421793617987851398352614226558869318225919803168187639793366545502541279447843348766546183231683422239919839329123858078493584222604611727799305373574306104167388932865359033222958907009878990881576610399208045878893275035235362788496597173948850426486135787768520091716231149335580104758127265181805899763811007220683824877892656931891312406668637400749847189051769498895874704889185833469488452590889232928011010352203321551247945691992492526571658897793372765642850037156625336704630846502802147097417685376635932501008119761400916294987713200089744732056407259022142910373637042863414434279509746116203661603471289151881393581186996014148930149196629611418201489181984694298219717068951384429788930003158017894018948227193351546793130692008654164008816009350073770170703985696728773653774146532971646858692509668542926852586556471573201359306056649697293228484365374120598160755824269202829583671994474018821702693728079389964650288383477304215204649558414481359906201531951757595278130051066392438872484825089780365828304921573890289934737160315657445571645795772903448173885169036362791007062151903139289836792521040961362101064727874709899280703209986193098899245661288024187057262590898397529848577511913252333038156382068762479035843533962712089417906180880055963989787719265670532699718709464927128083744914981428330106481790385285817445627056355332619540230460605495777121735078011908167964485961983008402365193839004035685988919055492896508766648807279692649274842489175715534855103915916180279860112444906971951611945449438299843028699350742539425464000782332822872053333764290037747355904900913710467910732892883661422900554209600104156110140738471647930228489714808063630079944003666088790865230932611359118983881986272411329481031333962265022878645970284599600398996274060730262241314300228411716050094688388624089981803303918071131082779603943799403490140225692931705664237145869610574030851385944219369853714396400013007650424128004919363752601685091384848052561549690517419882319697868443137462288099168844796605815022553774724952607420119792640649601497912475876618380490640555337690687164995427505505777120045725296165900126997639124059088882423041189724977111000638467241206754359776198946319741642818884423178235875511122175147054509029600186787100597333020395647452249103005604219704609975276708368935222260205665752773207168260661271057855960936008886801457684459021870190125309332250251167263096405044762742930524773329382813432325559994865044025970421430680168240312146826800618644622337362847456029208850832610170053716347338861245095770079022626180223107778089017806016797806078556372562533111312691003758455553657448558000563780956520347050293697670674432506358317050040140243696816219516532447347820617489690578461968244422879206073790585501680532567033593551257315917306441924508066640753757410154570874662131992642180917792016449919491776855713818480302389531048232696752655680061652733242181638382608066783069921890865628351317466662661588161867521029553962868477980033802544982683342417773227437550800473392049110504734342534651576400762010987313907495819176291234630892722849036017971829989540726799961914589323746296786962881208192605275129668368560122456245913664405989181453811589330847080131853115171454838605206681151660128908787655892820902543149458428524916592619237964168445809833012167734990076028506025276069624628053045395621751057525760542531790035607886825156432280370082455919302772450732396954962760501435850518117693833662581170057842119817097068150481651884821697241836046255973550563623688105572743588156699176075737398275156576431894855122534245859113064196762160765817562599421803217554369118867606475806057086656478831386483027486547214354060256388840764720394283946594202238360693566269775129331262378850608555773098811430128002237673334718182533936734276968865589896400697523257672703960371669014500011459771671015921251251046634282468620689495254303887622806474191164709674960241891811813166642340776349648316593288017187563092957996626180167813721992530397195302914150070628388647071081815502457777060273879350301454635896591589270718538236390391960021135946725438543362892137768227152983087013705334199248444383795459248611517808290402089024906236572052606833159597752327588747150989721007007691877877495602557640285788953036265337676667767685532135908202435552956690670731810093338620108627309420177782128367281495647271707748810451699951763453766761463318706733540236027047349371383840188626445100505851289395959547733376327355341549428608312749251490818041695519952446278568305329467105740410288180052971716516142423569931477992817593654082590169012144269617159174852830920872238646478881822882173179883968236676772428620882709822436304131665688642133976064677678339005560931247648744603295635268861336336742159631922437132379780721173913341392057242702480247650512118341064943067551271195217322952218126692247450461930112432209965536218197093226764146374448151776269682396283856494849506356716076090625285089993525335397960178168245949970038656949323449198557208072333355604677561075174433046219029431876261409494086730988141698468843760175222605102986008654123081776009761144474153914556642723203043084818769939382805738688196923426083186125816780986390259534459091446960593915394838967567037603038670271872208034850276789138981775468193796559067317333780621027392684682639920213081489466171296690017135521845093454879257110311233040953494298106167678613866264051226956952780831588839395870063936729086427797431675306614258367126751734752893174293867933067963029186324334228275859477894829368594284478290590817378702752859597489787205489487603824926230086477589021263940562122831469170398292671695137770930300095791326416342247020381899605890209623610355344980864665103099761673765853524750542302552884083103857530204424859406518638527564422481785374724467014965951285133680850088576126093545471555945730253026630510731203982602877136561588312316599756626054776250984175582544017196544947453653431977204010877134014526980059332205638726405485070337304658845011826029044903667294077718942988650235807394665258435989486134184432740040079137428741636381391893731194485500993675195944723237016618460386524740643846167730055323569592435242370009011704592051623924135565328904300601492097134765328585105324371498484242111781030854914119925498661310481063213399249918963124196937689579221135538169191676419406519071517977544311388753242816708513067500217576976686680701884983889593852231738464786146973286527247394896364414428316714936883328737007755832803979470001835215951188721498814411803986090914008578707292012354154799205263381162782787366852588980093571139026381558833590142043718443447098440344106618863453116861786412677262902758524946222366032274706630693019458247560851552435879736771676786846394356798329886366510911523222539588603921231853544017302778080361259943225764488717331583439017331231084476401703069135932965799944201541027112037894894837045851294383084307509681394624945170254637340750654079454960352829338903102126808995096526775579895702847377067424798281497594252608624299625707169626232913561038845073776544043572905376170608655749364906027962433406119127488219982779857567241055362678469585301186153666324566523247755370897185122624232021481703908399965730900165985440525862499233515721643690108733926661763477812949474305600116817311658430379648780956903911805574837661292299273591737301390361718094431320719678780231592498392397163849834022517161146699635986865128650434909132358670320409308484064604353684064226173088012533261405355208379895174877266490215076873326555637262828823442002833364115272763190719861653636808068010101411938056926964715346625148129625801178973349732263021617741978806308477276712874794405503616798815606050349373891552127262371645048129835991120035315247341251309370266588953553758900885121766505219486126104004986475718724541196824129338003285545941551645112873674846708356615930762349617578486769178641622538914135595774382707133746096111994814087377014133251787979251734641277315277642289587361518099024075382653296425556472226480372338712251717128490242625742523371465195542661129213261587866211711172038882292906889562065867936696191083505384095897927259062551997215375075008351521404701087368204343926342084186165004658505514385023061085137342244892225694844905105407653208104132498287703490465184503316095598826947852914132845786008989620201201175230324281357381513393476329641449415338118302301786543717179519293766803941655952617833287303114813036442067516024311244897400769525060095691817284209340139694009999762452848160039212571513989541893200345295111958245554178433362023332472550533583753205147949862897833409929236375256981393001267938736999978326184554785450589396986353737848533682301190510315887352238184447260317023041071818507583913460563506144233515472431434741914665618074621360232154381169493936612017731916925462274117081954956074549597201042119793633766805403438622262691700119293069034507133956291622556566699276261425283654504848392777939307662776584609377496087869248874249095837705335426864120934888253177730931101033252366233546020665069332332516760965038379892687770742330710395930151489906831599116454800587273799985545750367232085223386910577713849782244551247704619325009988215990211628131629598180605760350104782439799201021715936698679164532597954149975001366037289611295192097328036600822641635336657506523713866511581710066343001433681689392475703916517393369814427676337609481570525254645179653275681732784574639604949295156104296659505172882079003343517117855762427394091004530933618285359022733685463067874668281093649587477952797487500419601098861598037173394626544460100913161196242082001464489530273794386481570804028417696287866311389481799414114240369999835007803258024057548976197649018155714632387400594694336231204765845894287981502906295118993555997952838064101167305040171251481055960145734474166856847682928949553131115001615877187847846585257882166395046815206492108937021633913842500732908053752611937876052741528665618900955131784800271016423543906565284685138452783443756381815305462612221926472847132406278073494853307826363227599322017955820971650981926217916389286690321273333681828331724660261487284396282863234579061164787984543593336403947451998487664142096457213785117698982704798350057108763792856497131403791233078551773972396957677048530368846749902609758000028968666168175982468855818207513612339661419566382168462263767138924995960945117163092769963993985786662352532086211163871813306692239604979105320496852962840739108131183811946691199432940118349308599545415163820284218969048888255666141596179896131358869109834612334088802497536162683977948539577823099863166408937019075389106436442918535208070492238490310531937828784946567705533736252886556472021982578009056875319235167897458222654640427320786046599564757523221362774472951565868275773057666571877078680087273784453684575268012463028073200535790567529673422678070733630683370396135587771358970204320898415396191110591656801363788791580690511753109837634675494764240347012257992239880928814385319940281076425963367702784257590952788292578498142458039276040991777763286090499445501420373444669116804359683379700329317263846922535627328417117683550920096888518250631080076661126415726562946951780713447666998340137379771961620805004688814392195677475086733889426814564846027624018962909200389964036371166305582061354223573163030246947753570060396274586185069106234158879185788839513937727178295212185643549477571028622697620789484599597325133277359993920643023005216547885796053397301714291032615358112494532170432010064603721970448427719584276170400676556559141033776165131315922186512499723880441357486359671324762107184604470405974655383732818398685615854461276014226456534553852152647748203821129877563122118219615314273977470367891236701270530520288272662384790244174541475163039948413594158772935991670042381731629505841970198063673914475327288911974967486646785970419926449445992199655699587023168078567384837786603974770385697862495171627761431414414671084254629524596709554999670976909790415781523546128428102718117621199663210873181558270953322291955563475714690451643159514634264337995552247741247340257528088501177421097702504223061866316949220329923532495758198401433061706782784629730283560982651991325312309431233745592584900913032616206093902860816602539751025544964021281124615274614432554867141392883998795839034294969546686957076735711754409532460094855758116885598762798964605294438583241736905104666438863749289216311942796615368415841334503008440714128787057905572506387002536429845298835023958984111615757355518977992241057563026003529438708087689878701015389524248032350360216760863367041064943860121001787730329016135797774087217083904871115948665790813611471318634945980790903893442866067262720246758056771246214569959345782163054571016682678260734561973604591841737902641907235213015704654483914867904876411846018021916048537960716897249230359017807101368219804827703855058102701436218006365392215979995608603852509673544546186480729528414607436274084105025019103758584345103511093105716178930990108109704308773497724350095834677420677163930461937538418254629512354187540373526029446270221101281258107996554614365901759928905615366915098052758554097711539183384655927695120496907567819354484226000825662976459268523038673190908199827880086402273139891482642256239269423883277593296254154164703772980695265464181808750497684628897903167261169207616459889507661065096488634888950700707627687453492661129188336887194211112513250255346278174256655437230299260431875258114366199894714123739418561464271829362469304763629401219812872894128099043058965675821826829127867716339218442195858510890859017346922996818199740403843551999680435379296461558259252087223225167914649035113526809220137609637765465930023680865723355303713620562075792600180122217866931115865961744241177651241316145172071385117223588521179364198759365984930985774336071222644260484610027783587614588103999201220260187896123434904206285490934726625655308675045580568183858394654633486235293407048598842634297571025422559144094170093152178089163970808952963565374918863732175575496241615066174034750237599508720611274568132106798212770404623991174885384598606427337227121616190777789380892837299886517029827203234938925919831907685854413687153477222961671654620083981448029674051456731613642966064031904441365174066110372126324938961986543713521227375295427577006773601295826128871754806201047592224153996094816983234874834144168550379142847951699945039394009132045587795804702125652835998192239604520533987237665124329294759114648842754178573844709380062517594140956191491139589067245847189958829913382191215051833145883366903724464798081677633160444787387810211576597268764850145312883363943238947890598605983107739820322375097178672333020216932667845273706132894907350238067276097470197211988706555794480299433637238747486520170566687842161392973457601459724412650824265904798701858535443468990116354554227628405683914521350951058882131566008396404214430818144946247644598366952159441368393576195083590391345690543229246989256912791297167715205716785324252820018253098539911155859762833000534135580994500800873635433440938684914902453458767271283634428222283120449393317923106848070742698042232336797225939926029692442597678819906939141400105050405056741530118720375996908282998401735643595507296064019299717615969171553087266590065403231536000941513917930162009672997154409789775971698787379886698412823682497479079708047445143358122797734289013462125007771482075664957700993528700256066732060389059845438109123770567254433158071441669391837289409740166262977968608176799167231543665578705575910451160862805511365899778973521765298718568038254044376808332030434066334721884937264454059446209135326221039084674276097672446947708378610347531168630191477415711965035625199958537726323843605095427172369266082790884455827810866701445784236826569903425217241788334521951223138136848205419438353943012656679022338720657173351794141369578036782320858617532295498321786447648263613283173845643884255307145824431251264829035040085402716375204960955754691201034184220039409533419273895785206974256721843792067914734981423079298956466612305183728987424517791024867534232295876597830655878528438665238500203200125566350321970060426962805700637845578106175534211715719779605140396791887889927535399165199676136311149160236920827606157026210407859440565446105180001514785338739397786183219681863842315724103679243028679392608072237227134547927967555597416543138623255430957258068053619869736219703911929335038436141770092120153670243813919240569677128547867919942675695706827062471047166189459782453077482251819507106330803691204977264860507921342363634574029916822125852010368390262769091065372500348869293013882269892770283260187978093583230456833467075721723219611159140293560679014745051650802668379316585105744240230504207813779030730252928587071999148414804107766553350191211892673404885525604383626620787023470039489800671891111502123853212675477123274492039379949853070922448246759631665112399251554237702364065639965898010119862115353490566536591440755805391146402346314774245645623036482753004931013912671045307764439459595156639871558489481301479693211231346777539714432407379687632896800058492207064041420549244000774824177304053941495371066507004741590494527828848217550177759689994359936815573770260332219964293870068321912820480715926227691177830838170714030161542313378835452685147564588434362524137137863883406292742936063234000255666917389602309950013812647793986396945067141075066437953881445217210601615055918662550605168362030015302780971228436179808921197224490754149043770738111743180902167156486780776789159587994035721164168663162047573571632380982763964975547805524815030100531617695429811228315099363881917116769003860864787816718999810741506662443411865543565232594256917778094443603916884267216246637603004640188300442488842157560311200580743761785664361473462208298593518568017813397824270630207341218350097701344698055231699436463118933919676511541935321137773289037917037539899390118557776399175111360226746654787389488821280194787590914926388389060724521670982884209163775466500288501627415951064735376168384309292753864228813390841273930868479721198753565375091681307017319553883191262817427901995600142859358168496513039322165606909132279649143325535266886194444684351014543836118382087271647558147201664910220083455546282304516846590508924861298928915756298110780568276428594897670862076719713829613531142040052167706236025173194193666815457570792404127932572123915952494475096765593280036843502091613384903335053987608349413950357685337724139428604229539876977387228736592454395096836306276199357559870689606929477803803063174262116015744275674535907952166389923677683525708659337392696470712732564734020666947103837554228178636436456686229969741727203494591197780051876334515132946919517550129188349489777631157960554788780817769622636929410896340479199587529145427090917076491351504584225091210533789129067610968111980233309535520792772405698673447931298134001181507983434061727775717182742963448732516119254564144026000905756624110419354750179816083939435237848641539333787526916341499767109289495730363600206904319666289345133590262281983240590667457088850134895419524489544435927725179157487401303246895317487690987246628579680294229593377196833731907533636690945509294690970506967130426163565804743141270696170287533942992721410147259207551721831678124967218647421176191018477165381600960149959110874353848257854458519159964983012074450540054352305404611063336123291323840208094015785295314115719655232142872910618117630277055397127796100198389428565081856997341402583745999173543524607973536282889331583182578053042475554309059620414710755297480244575349739250604931397255387408005494054214098864169318342567986325930524529951367936131752243546299753806886410944013148241891464137393689686461149174114525993465953024428755203396337974892788836429099469188432491167611336682328249431002459784923979696437093194971660107060626274638435755282320198681987390430154464374316664429101012342773566025417169109864384115994835106714402202571468931573522462812867181262250617941612536541884243040497631374520789617808920989075465878625615513385105388823994579781221624531673621077285838737232392238652486343297354401463596271435999303591044163080844010623305155954046897288762315001095293256738005364551791476928943661229622301306619950880854604264311285038290369250788807840033991649643803104367825358428280573555979815370070429483508812825495958184226895278904341770105277979160947315168433911286418697251492297431262916894316396370900021375786100111492291666607312105810370214015165899871859495466792008251753869933343044808496626112257743495997038474769633350039460514943108616336675765697187611911170971499325967470333765961015295914492433958477588079284919833462826719994596075598932596429803177910564810565046770438662630255271539241319276734594129967025493148647854225438777795399873446815285025768793404294943202178202137055937730688142681313934905516759594453324203127106419748727190101709243317525152333940396023637920075840450978020334100459064732961461268537096308250808386127139854858318138125618995724207000062503465980261053338961152755779066354708880328529068047408309352462335164470177852611865802570481769645566588888502981828188262178647680068953137814651023232622882398633862819094168604509389065922950684502756315051708250020947620409405264907271814345231008859175675261471581615525121752785687260246585823159907364185870635528845688701528444661749268018230262746447906395222058674861445695619206334605472163578708130318795987925148107569015693479015269582583663185245466501581055950010137881214880028075003694370455278901815834553776376234810833815869050660313159226470867124787354195934297155097088804796563375911430440172927430103932146951107080823461765782866334519725968651996191592207995286781845231108474329650586345981734155713218033897327735983670559567165326789651971256781305704180651726057922378640565213700176514719230509782874252759160260646615384614877395325979157984704908966996552853483491275086314579399016335736109933888722640572837622705788366210509541948575845077167325678794592166355401688828482100142854365109074675698937928303812263298446427416726770449750647251858366446013497232448181538320810479365092196453655763338865221505296624554188077740747589470618427665196332828650273875126763855244141763016565124519419008535124441598328186717240495207409962699525038952171942404060825070639281157837651892587030739272914139308799379121931385958659887795689697457232157114134847674992441034463543143571669304549762104929052050544728416446501822683180448498714044048398945588512608851867910633914061547359356707878527469748896573167572674912788814425713572171005202100030707200132704331625019017264213675748535433506962046552757867904984433157487877433498922545022574029096683389327801905917988321157795937616958865235998500380733022223202992818766489178481451144918750446285620015097597263280967031720558580449155557493785291893729688032414026497419703271466430075855941321542188380072701220283518626920601734049853724926353250554705167361893206468364534052727134277479333954784849775385898328402074438049867351207394907213556996404264304787985807149078427999983588359773658844927631713465166673547044375811846239157168707076772978066576157283163179837012265726720991971889368910760106895207539595756293380909497462083435487504019418144652963114816272549479638882175504875716611809785865871871802784290401835615074672376395748869394208613164264383323720752292720116505558119132667899101143704959486184473346173654996344975292641539625955486396727129184266732971824968341275792887877539664510342790503435930277652705931128221424194016293189795426034817741626416872856346201528751492818377972870559601494484344444978606362001214937523629175236895840989216293537629550166074260418521431192492376158974880108906103892263700486091488743705200195040280355525475462094226376368623350927964331032761924309965137387620971063973520964072979214879654323022917204021832773634203201541166277774524368360614464487780143454508676255786903374141872802437264547936505405567617012232344991571867661326073389944544584359694402837058393260820164692696360293171802001163199755790926445060236615976831504394086495682391128215468391057377784746845572995406083005945131867609135933919219209083889771662838652920802940169528722727915608767591971793822737217781228784016813305491020409380649014823491487447810107213544277621100451143266186516123427740721205189147083134908276751288439919985266414889133408452881538897374906015310158881004651269018530102897239586760162349155119200894725721811356816351030503894391944586697898148351517293095561537480230690548896804532827302585965890908703918388714940165946279725135183954091577557572709896682758000668369482061310687976185137420819118809934716325700357890631884300478089284674482901998706283288380377263459692795951572472312683837057614313245855640864252852178840405201220972613097022449026567809607960159517055649979995941452789740128414375227941565957058455940396509945711996042202011502415765478003439938489576740553197488994709762774749428460307760303617520046506385678478925500398750894459067032058081546048058249304467630952528924578497153674743852801025148399667593792658136089269479657363880173333593418553890421491416663752752971518233867476341615683724602834908434858742981610070253919281495450927217953215510475850585698839774070352688996276100473528086848697606031278103463239327579341405282949420170846594850139292301976726987057137471875613520573764222232999517992370200086092723219162656383119876190424448702179588901142412495073784516231816731103523462646258086524579316215868956598255962439806128640876880372122986787528328901676540709996998576882371912792991225881515509412810474609060195309553171037002557228036397606828293350902701578326576182287560575195540507709678331268693859478953977737140597049822847249972580681751455993094526292110177400440823105943625028695920244073856029709715032563026417434872446998338190457228490668509609147012246817594384284917005747757783248779145547345888186304161468061815311108451208774220356387714748829631334884758125764656782774004064224706041329177698488673742370369816142789288194209368542296121978308653485604930829201868154886566796360271318327855426518717353376745352051754533982560050696946723142676846754350647612028954109981643129574166604185282455242212702365108102971921891338287218790677784043432435201529591389063077547850821691120416911460342899798733641215695843501195229926374452434735389931385338727501446945062045200014210746189332566828496463716599175417291144726632934904570165812194892194455118994710721800485503284566041834394231832179553902256241319110637617718594299543864087714173942520390054747383702569306746702516049611946889774277873266195131966024851057882942603665700923631091235665509003100900802831842506215365598800695073253170373232913745146764208525445462462480179753719843102066262598838388691298841040036934790709766205146054026642701835211237795602520050775717285269922546596835190258289510684000119961596864777414124261344219803092757215744521187484530970493811961736567525775346006682415784654870778537342841579173237178675124738969961046403555700235038417891094372781495666196003994326080180017590602535106330964863941601654035080897206293590585912217444417112364506672107292442137869330567123464896437781792857629442469321036714457191066648028539197412157427692363181681813427221863366907396765149327226067646473587885875394011143460490793884735280073925040847043800425340324099706421939085019754586428988327929333081298829868233099524278490713110232808231617759481130696151356598505182309360999833744863539477100090092811692018508370525640570990528622183795892186037474776448720749386225866080517676793263305411306125704250979673746203616659106626185625607867855844284608495819779137318142646809075017813905801180154000132222710992814567734704625187500452036663947485515172991973806310637916000925746079236822703736372232299812791763174063380402486585944704185756254480243759299809492225672764153257696440422920200345707770089288906142899611157008340137774975415989347703196612745484799319366016289428381120011488301273262149874292874163217861806110499775175305159191558209389349128137277951335175492457603844178472929148447861275401024143855310474917518132555040180941925798586057325262047751812285271333600293645083952243014894350214022699952758150206555212194115136551717552546509498595592139358412652748169102396063609262396771356231332386462835487862989210883248600438875382040667240639399428818319317521678862774010915670782488186607542036477492109189333421658380343493595956217344662910519684849280373728258978239192278766162988710564516101204946329419290152266136316376580944524672314370988515244281060050709430444656403491064838056343521030513625563883111735208777290892624574426612369273978182462504362348975870348194206292850523882985899334797931437127692564312392866325470475095332615092654995523704504320969850907478720145918244414384546818613778773766003328619441166469611679549260671457275765378871181548163274929317527568493000620034923688943843648356305950146974469841231740512142255717257970945892079643054532454269016953025871185126044335727965845571262630567979723063560085967281261636172356381340118894467070082776990391525983895820350330944711019974998942520703811320861851343730366928410801394179702182610233003293101004361054109947177556238582122840186680687452391309389546078987980132707470697861671859520569575389042690369416953175396684058817579293694266709679641830544940816390310916314421023389715135826736104476176889591808909152509772616757924039735578813421652851816383226239997243602812999707373910636362723204235518012863252634252428062234711041343946861259051007863869035899075198731739220299531560383513800357058719453057454544226776882576272466888276775737189188265017875046936901500624753280349735775888130562739076188159474869808165963640198659978437848902614248026984070568889792703587229667159460315518067643066763729282825058961826893159774336975776602140247479651991763838152515261163701621949107772855468071348118083465494931086398725732103184236067106634409532237217328381489664038524425229228452631326526412366009015287590436220665181944404089538928397717957135814941610752708416623395645178507601280002209290299421736806009289990337644911164238631069732976962392635683215829419342094435036477048390690014658110717862388104514425586843258157229319176194010430662133135782244156725561781894925353410810394955677978408879605536145258666600017836232376262928968538646937275953217111079670618405523885643330915424870432279535831179578918275078130227584203056695386416388780734982086153475604338157592293493602325865181206071453902899667809552316515755612042183404980001851307258639890171775822051738997465323877804213285580023060544023079130042313509008158283229714009164620608533264180079222314457452285419976731242936743253289586546463312503522140759689018698289759973327798420281354366648472543868521811560897723695190941668011567730814479840270379308574647958690465884833301277369780678470656013281887741486691738194655997311169128292847983885437909941587043735166069392916973039240023180597798269294780548706444602892511658233043920816278127196806928654725493905354407418210463208548965852310926635533871274864331151947861470733719749400568836851989140354330509184479044482682337487949416432716792430609458953961462125862281242851682305764527324295460595456923822099791342828400042054225179375480638679090923439953177146870543448364498061728695744915007957453717598011424789797273570175606615787662656242996834175957576786114769328378076155740105260578170176756707397602075727346226283837959631735997335932355999021389559501763626383539218614908996993881270602007103014757171206696637092954828700878161348236715993307714143942825686572485263636869994107645700074718791127136922773747431636020623385427472299624957586665838534598945093423522033503196391502325730675763798173151857957889969818513951802700050053353843499697641477994778642227446357190588311100037518914027257914156938319815632958167446802550728792139045718730934607924852975158421004937599691974620512284224351532980620075624215022918356062126969346571241837646402890678367398587022197630610317928251523139120997247640441660732776683692006187613465792327898260333916790996348974577500365768716064516994341692518831673592664960946185539691680313364428246805352114266214785068838241604715858709734051622619311991571620248157838815520163796781339636940209704409330651636450802731353562242851118439472003809341582513913657456622627446069535082151388552474775316175519114820745875546898129040039191049588808118820445200369008293528459285358435092515820115961478486803260832113875582979800225657826794219928371823943137629546630220717743442333870156135460227740106350259661791523824585165015502437124725068984367993918241742809522035623120660004354363770498792368114705141546040396930339866295360104083559034913236951752725736415155646059631209534770113276225600499931902317734020662031531077848342143000980193930349022323484163528806884418318647693599621563471316528471958948986177839915779241242621323772804260187797212346568320094806040293099674222858958338079812249475726428899564272454970507017384716885559863985896532630272761167479884715427845283034085810133250368147558410019438171980862929284151201109827618368876927197226439685542289537832103608081537567603345514208307850735972932580381380146388708893436445109780227837783470197395493057700922910040649671715214313666117446421801009468524266115644101143657460677049013799007566702591545808486747339339039896173872203911230368273126235341520434843355984639628863703138139422522854517072534851865985737461428944108948235353244478553378038055377247183477724531363575738044232724265209231993115952598041353401253685584771403493787236811758567320285541974446992009460330682371007512778013596716779058205869043838273256192024803037206691471542679996324495186119129757805991178084524682787457676523842666153866956340714282468238536384725196447219194239395989661029720294548883189565466526567350429071629434788481477601919651556047257968155717874907762428946898506122357434535379901721305445502826607275741528176727975407912410965590638458903203223618549634464115993940966713316900602758683371244331022759041943847086614870435502674605664013932205684693209954220224538268343316004397979304821960386724503475922022692722129828159093895852490070122147149672067940412626877029480427368876208664622948861420298293732978429732720051203514232534018774451115239650256470804806271053982217382827633926597108143992172361425446585226233860062389644455597018010970492527423255414412563306669472933804451217084392726678207251088880940115443434670687828653547795113864461532770975171139375029691546697745645172470689582393748774966944456569775432983146735523406948263534266178348825763381011741575109999445373431879931523502129309962285638821544025010493913349066834880277994451872278294898856159694448895904256741911679194126684338663784184853150692495113315427993430814631509565807714448495750315126888094855965409197839919082933805037919658925967431428546253300176335324292420497790224070549283695224417992482373260684369535126131981561047498424826763187581794315090241433407321558669586327647042177159073763737150621470233013342182157867619944061097445428426354128914339689784937177628722994051580076006379452251629377635178230944022478268237048585362046973410040072726986193667617556761530037983049036716966507246140106434179488615804611258767471582767206703207884953166105060912824461369133438468820791962898116306790886163441256005012069276592075967878519374495867042391407065109754987482132135059180080165088034257452717714630027873808773788217312528295836400988397687876140713332720482122719454133154032546051155636219309658437664448504852049087572697429383962390703479380378239959348064978856286161879703140636956096462980051718520121973005214315721064119764684432918284311861831765006616293752855829189477910619439166441656135719377441178879234556494641887774571222224447512948585574445952869048009271410842103513051230406793597524048970436205050588762322984686339740405477648623068531546855998316254146052398486692133608570988540321046615864072746915685630715304455045781503265113659324448392761007248116504625157264670613260820780012961895345364749328540435217674759481406254770827911392392629884740858080171372119101621883952084531790722011630646284748707882284235090759107217885531542141443539420513700487167136503751861574750360682190037030725925761783511421452371113572593110882262351908998000186925325714621217639720031495599700771922360938469568999463263131747138432967217678331159079118019125823028762002700820574456222441005874582876320639054162439304284898281165850924232054838873680663994942755582519288580939439996238865505005792866224246684357325772883006560173982939761547593164989836038029757355551916605226126289866389425714009760916657411303990030408502036132522862170838476690108567210895083121703105769535545485399212852047811129452406679895979140213129193650525911548923076844629638198145433032966097927536527759472382060681249547533658729876371806659626571640254178318604503973835152672342186368442639717577656887841152222122978364048940705188014894465028002157531210469714431521714343558707038229352189200273964244667714739487864949434733489356235000919127313120851110133443034356497667122383219270701660930989832966000281359666962133873686463011794756937241268247548834609517187454766699877505031078166893864334018906098669663611943854098918510427428816938146915155521783049932548821853449021985820792367846839394510512910880512379526217946984341202484433135182168425332885538855828168372820822002072709268968276726236519519276228602138741018924141022013302801894369797938945422827661822773225140502814976404435639494872563312045381502151351169696619684949342927365922918203547697550612570761880243598629280223710907295637507750336790826756886763769343258680362207819207295969755816532528414151071182163673957297697344854559597410514899221069820509646926099310521692827491050894163121809396872460442415445547300285743209809260022872064444038037050474917390013464276947871297813535881295526113051717446953393431077340559891997212642241111097002974027720217362575454719445020796128891296898261137277180603432318217269672611419124420574711543843733492000081420410707093356323494022978347126690391586870669438703872562365267314658207287149844918980185709078525959781954413663619438107049970428110915530929958574886033407869146956916238710338551177656734954800927459065669180438518355858033756904102764311669854789808203680443136699007408058181560983509020016207925080435679046151594785837006235175739571811941228176464843263411500111346300299321356923277119377261150934492992507456174614127222222214080667293980993879153888503479670153211210969962355633951144063554769313559670580565702203692757641214787385958633179577281875326312871490287613475446616399838744690189563007896014132516633992163749211945452642008333218457858491907352695834532047931323448379486893047643290850428468611078574290657061912475656670464104161593613248281294780354829445399825572300620604347252257551233613665310772440350778326803834289969655726405184873453616345009756315527990860139510929786165389988211553744297663450471631283072201774494745279494191219780731522564711617867335996070316310383982053769925855154463895785026742835472576337508970845868482550888796341616059035722662693152245507858304362344347752862570201885451158565099568921317793462584370640360513997338530065726376117389261037249938639632809722292628195364574736832449769770522838552932966431878487779778804233825497865812806047219637207319332546456546857063504313596687817267016442995043335537601613890791789687723064884463100917952171837898479852875272568519718855013740247732619925305997779042084963397195254997236500338297697180388542832880723247670192708127493065506347214600431665797091115848876339590765409474615077955264533444864813681033937689922675287031647741538834453301956261363027080788903549433116145323500490085556326323399190879816084283953962109863483365414416801110349882332947305951112042757560514828223300378365790956885540179709133154973054449649443458644850909781345660890464308984594144120807046866459018917137391578050495147520329355140010988746223540634532074275814545948159562225915183968760216064603767501323061292144364713650740213447511095657413108315447653722665263646921548166797182194904937767268780426778512076128296904033179195620261560501872921566583979068007056092567627537406889574104041049981901036785480471962249018091605056607966655940235912615250832696095649839259861034755970561222340515128850157465504640766716821344885968399510884485414365806201375701681717802413367799300365028715756619413123471091845115054494276896599581035186856902665484580454171026340040685890658742620341821602677983688645715303097626297913071839425116506963843573110283507515843077715641620552785167129915454491381833519417727819530182268084205572014317074795135372824074518899793466183632027516302343928490539549839923054897440483569662733702468371758324672742469488287034171586120730406762653794618842112846684194526989051877484405464519932777256197057299681844712811578126726500016264433984036523924946005041068932758618765930736619323572666149127362935995670160655725894500930744918718119655301691062805605544815999679096511602316437602943104841977112198214394003744619026266570713039555723877775426207108696295559302286413052664902324280236013454406029730989665935326702406979031761554408210614465874286462683662422979361368414362040479501899475009977358488643950980637821795523765876901875821039977480025857359964064224677798011565463308024785203550069823981652570982635033975134103329900294975675198652969822732878125832782580663906502445810461658135997191836852865751665837753579146516211706095533864043438551798101702202487963084743810417533226636320099686853852562455839059875292922881999607468335140854088254280419972362049223774011102409073365603099370010036658496345399952704795457423467292404544189774995143400062685391008943655344367693290385530156754256318531534419879088513051425908127186757539579679412634310757807252636950387580802022430675195362269094190579524929960926668280600631142520012430436935758048479783799066390160285614419288486218581658349691968127330983673571142197314523058812493494543572871552380491847474298145690728829612614913954161018230506037272706403250233287188247651395206326017077208610533780013543285068566325021374608264367755661395238761824134683291480234438014453260383409457390008779848001351806250575588496624134048159245911895286318120815433382052848313173887546737147389599388577406605251193952118146506016565638170448003877426150035773427697807708932666553208512401792009525520300494611579894688668264001848166780771834166619034652396414795008184160233744398066446188077955818020868846432677400190994638389120144316251534204873281828520723748197017654279505517529526480596900106559383233233052062274716336006366985109242066109476200728398795768734482631600952903831031510151114498853353941295029467189358093164122889667285320525757160578455465608145673296626570638297379932733472827667225651263244275358993838270827052829070598195492671300409803039704057691231454831260430251810816918092477271005108199170245194901184529881195487783179193258630830614062717838932401982821200801904251346513331313792473641236291060346214434106453569861880759500886226202546059432499687724277575034404415477442883597937502126057588863762398628495479654328444631401814629416178552983908841788646586705339098001018989627418866095992079117933608418521462677641864659446242038953300441963601750923956057577471299680598173508888894371715182149092895992551217631392759783846692670075317309188135953639062656728769224243305988867994691744477237434800691234421320302841327927416258309585469853546722492048421882029586365670518475907189757999782138565367361975229454147984888853983182224117849488821253519759806320330359079738419146779046934174272538384423433133764547677654710576743504017187481633220144527053607377504192417573687733141423785417951506325976014307455284196483858258757360270284769655099998603563830873168386792295173987044534270813491048239969494954024080054562485973478810396019483021141590666231982387465762028196631850179970542857208261349061602539339499432783559737384590274495294436952248340264732423062301371217702347282995992511948814553972874696215262670320742858295238028400723650030115046208565390732559640036476598997878691472326550868301346340947251009126086711135717390203500313562837234454332071503407041242189311638493881727282778457753235209944475917068398941508294705219804778082822644956581711330010495745611288045008212256319072069448361688567102095845736926712201827786826591923925484102220900735510455133669074310176054378230518195582085497500524803672507366293442316580450230666220892993080248198774189043148229703460609842937846507725658493638542633064113198442551860916228170369324585119831838635988043331223922293033256973223686153235808162107175549323732879074948965692460588609115941719957577372661242831369823034264461789228735480407679017952290989558942107251372738087572947883755460047589805561679600409901759908072991866235264647545064269185504495047743358743998006495342757610418691326196396455006346713979375966070691177355466746227000695442698580066555288614882632125285624189068977663515726355797020300620963724912545451424006710224175301027184158256180398263753378322157389899118357237470866061925355300621251378408400680533945591355289265717717522596937814119388166446688042053595480155993089709259371012763993006061905705724125932807365878778420595228352822633449383752087475311345441357987793330311572265789222534345164613038111882016272922605240348344915147786055309912945828209718202811131622081769508201133690101085613847264089878638728591473567784822296647030269498293452662130548341832750354594561321843982115247535528236140741986176145887166567435773083756057463291025940463438458548897433433586020850472328082647018135378811811421851100660487989084174263128925614547355754685868424145105652630336083561046440787280865475757904686332064883939223531310758269893431499046676727067282074387953484210126256268446328501667452977227416122847010430405508452266978296307149764907141306260489581848355649299211064429586446351728431809522326818884463290182029989389843821154059257924819367872834313800377037202116527866653854644922922322806084922359880847148971751183913407012232639397481228716113144178722534345501274673079980633368996441186901418859477362234243383243064158307722710978249736112653066724061856712388437220831619216014629035067822034311468908861882196582925183987512370844176405768066108198047330441263524855059694393197273637490951023690341526185848145815860851727928829532472175320341002672198136152480122278756454102438633315528551807448796996243421881494111839968215734978041365385169684869859111015858581436856440308010349704468152117902208937079997806304182094390003022471656722772536391203744508179047317207721388314453591921178602148200476120514959072549194728027748457060821911499768987738919152704777908516117165960786688467284857675510338604003835057765220650982673903303548865643530934365883278439228059513920864466834401350778132028632631615202170380262461954050989586788984696307624262381000160021383332830124023746602765059098224332529974184710862790244286576408866608027005458606832061799400739676893054561979356104249749950534247318687462563012318969803159763828292610509616663428351958878136963202006042189986083383816894232914686580619326619797622326784321974880776393666650466763155156576519317123824916002528257783752150087437759076242392754132654621421790723768641527466475346666105307494250193534050260849215919107697173939711250523615844765288865751703364349322481804335430076981233229088964695283266630377448066237743758929499878743504090181758957827595909789998999434157961541826265342469372177755791591976838766485357222852000318851842646091073403296752960857595406670215245099821609436143714628440132405663255997767260037440289280673182708497664150500670541795517766067646613835253779589244160674818876569788181583458825411546022858061265696423244043929560898039814266345881100696441436987346563411146355384373728132327093121797798290085602174053704045021660962448548877803213402344665986190108442020649955652552599754630962070427990322775147332273334032165423740832811685541164390385471619261311931987758875291803744317715892264538915124031024699253218520350948541736655414067629109346436954088723799553510884908839814612787286110271696269913105482868107946912422318937477387335763949089212147322856603538823258872478696394283705625366244153990146974575848626208881902843650953706507553266054671184211319680590676567421925736184045514837928543498785430306048157608864460204189009180666041925063396994599845655594256861998028923533133959809769823829134721991231640684720385355978170900308862095965107098526725540411724502758032162330647386428037330843123055105027354593387943206408942154594710839807661697109616228639047734346390898887386015772237416574735904076508561592098156578737530705476434354306883346319227591092323287938315858467756936060631400679989609083904754967586968148104379247379465151203929038330899483918399912548991558659636967557247911980650059440914198184224831545764729257317743636872387092392562631871353078797244862455372573175209657016220367543269537406268719364392508462225725272164164161304836574431369133408492896165851968413631693931959267523852151441236576050218761962001375217718898451876925332518322045699867812032347103779293826329466574623766434627060049568136445790426690581326195199532514118562158078879820382805359805174786330474068025007869008131798581010391309819024678270219966086875888608535070677632954570339898813461178367598845357918667813591321125599862660742270589171459823932339339155789775343832971163543846681148729194750690216961058230265632648719809998209400131494462534711846900288752223279964582248888990177977085065404910893922477533676351071134321381525212619424802130109817441324937820484413961585539927126784436261417008424527668130079582976242417826039648973755307071456675475435138837492910635329570615819277098396242900750999722884174040424595620522073162920159490290040468785609634979885375946924865951633648907537210408322639934754303523657397372769401811365653091223513599246478779953937950292962057118522366580793322190815965386896777223285064589907254406470039681098506962211196680902156212487961224462962855153209834772316818952957924040777336297639739712121548063620477499341153217504621939828031066257935120731725430078364573626037208017215490876004687795068698086809688693764759933354140645601906683671154850750418643325660672311633573731798253037479446860836946598065281355967162382394299045083318016776886918779113509132579353091812922137714242290197454134986326216755304782962171324441250125414859075415397795644767043047461071668493291631416774844548804360605559088793009397863212637037089074012168475575391438926870198458706277228850548490586977442221921355594650022697777124998277385188370649328141327564636532123381426056018934209201629371092840612696985113525155897294094551822267852101707606450444069026224986080462681522592643837403294247499172818979329908598060649762388415771032483284470025239776304791442429665185728871414935637643590793276282361831288389061459512709754119663600986186881857726434259223377998432469902481891764463868044129832934791654680097963747760770553842058271249161599189681729013270746380153290494727117689263818263448329533508683790745250118070284395199851606096388592529552469802301488871490910779806762465092508764077619120631533318463502827923037503202582601625291131369820227957420577432644371790110600562240964365981565187554329552334584144236081362188666469483051218641397290418959208988165829226806240492029522321363144932400930902987736752065369405066890815364930547924969483897993554996739578164205392073382546210080580459681351953601753560184058162511158695303425931702570939571858062933258046076042754014030171398532220426142911876644224016454522722541415446053298997985349964307029871951905017484345508851965529638200707319426590024488104018914917066794315527641733862356447497015909599030339071293174812026716508151845723765421503128699535022277867677719117130804852703853279776526073328654860860050047745773729462206697864671670931359533179454255286296793054478962284429171385001097705802612553098225165716790512061865436711850090830852043896037459772925989996171739901241952475642495508818223584237295576230896470585730861201260654714938839237574732661065219292360987177958352122012177625260979545399939173294902469404133711415830619923551868714326124441168578089242189403622153255211348645216335570182587994161407847538389293040250779224035217989108925528484487322612711991473271076294146338624352435298396940747720885322736156206226014607402697629013745528958145494016854196063225060758648746997175938846461567687155868662895736896013934110567107599410587047220747713531617095819317337279536062506057139302417242936768369242768485986037975619974610408562339083953587406739793729378510354116973427170178602285832975484167147518627284055198937327218101253753246797677297622315578315938469233461693633649095888978361967713851339830983876668233571024758360743225984182510048269625430290996476933140567877042249806481361640511697083058773484291359142935392378408124655193614210362689199758359075481123233656188331771966199965765749393968236531576016066900631320861954258518566497492406832059761023537949256883429906346992809836318651748342206286622261158678783391732783534987195864794337322958972839198683557803797392486356501582393596306900402473235562200660532922384005061303557065810446929457582822453399534641122604325445749268055168749446443565230136846746491928379526085523795277287349076064814292252154394934675606251749606401587392083913817737370642226256198492224822176769399596607730518194778706275819391986675529722774426975901921553362317443321829588263603613853263482412307842516367021642389205891992042866447895105384671723808288104910082906619166119943487967655753489504384893943556587031258267668292571992368053651038391490457320657145258684647168758613733642207652232011833414187226242185393262062697446503412063764585195739711335720745264649740699619140137200296485768269718381711722163213582251610542250854947538180956191490847232096396256120543721927332462790558579586941011920917192672966853022868358554932546333214984989466899800489935509792271116181626624137448384278839789721383888897452734069719791574887350630918144514030175112628609408361509138100623963265044944124439054525463581679603611484571326689376233127399756686281946886797679587996059757245727228069688856069515427062177590303936301738462572584100138309609603650239732507408744891285058031242749581854112446776000344809868148606664288677529417740750931469976624806014593992868113822428495805087073942078917426053320358017354362945241993232432081060050696799382448873817931046176319645962034917223790845130086309394601094193084855953239905433180947633434844891016473795998435256794771874022980120928194614675751822565124584875309830241308134089312399987456236025097218154676602248117571629427483722403923656980249204794012737193562122789665435571928627237676706342654500648113967214005699325612757348280568703860278770714750950103450736750360702574798553100696638587628884421917493964651404961352084172400970203343971305951784963742187479513120320439058222553714300419778035702469025301455661669650166630255940771932604473145985578519615954907600326826641923393309057407862684550057051621754228439761504100545660878280642889610673871678201385569822860963827915615836016059940632378002332465745688663232100813707381159765961140418573534551782480438097917238617174959540781103974978835920487080448359177523341820202828595295573698370816522043548557773776290980242529630210627884240977366993938224899940195258775940246882714943058444401830134735925132696328790914752917334503352202303770818625941454951928698737473630240544944850031352138936707042791941961067980354440949023716128745393149846504705071298857784995532842402885497003126755816776358524591727126823013223898427750783957772902595897932585465145521518892842848725176829074894404442940656585699159575594595521954603710709626584618471435796620205230568845291488239681248127888974483691726936060804101460063199761421451668078878787166793635243344630558678938928363642748698498956558568397297835179931622505151674554382965255161279381588897350270903211120120963700149829234667444335442083359581883061972089798879538482477809344828926730485632231630832358738005317186797038206915831392086610613876894515977835748870602458018337052701684468719077808105726717415038865152433203450532653682628936275602744429353961818543648610423827571478506571016480231547485587850067518638374839000492475233899321711665314867471326119689648222832305557096847630604849411586080495698595631630801684602673582631119886641101307473406715013675286671876676639803290387090817859917106228305627379080704719181760242084978348677256949046238601344149877702436564430633410688818578470249261060085166771758567703439961887134140180097788013171479296165918595844007616516943089627847494906562164753888434732867586359597722993902752040538172173840805022224237287745364209364363363117148464483665739544939082740295922705735009869239200985007731496278938549594988014434721202651719631687147574734079644610634573819524056202773904937742665972354728626402899842151067603045666048173449337699427432739306371462761486330882368401476121265337467909877741134573134111765376042850979761090246046767449766619964298133590403942684182385620466463244313399525545965888042522156604391650289587716403232557841636339488693425909311788710718620197350094500006802481087116703283576257263930291390136045046757963195865140001681361094027509124886114754649019150885506583984690113179688678673813589261843606620284039465063212645683153664694596974037893436975751003508799502994229430591542919398844118537294701533640993745440899804934780807795983398512714969224969893912294714797718668633354835202054665239205382542933284487036128809604811216110877982743095838639594560386145361307270135342748139235062996133923687104462142761404511100805076199118546748097913917637159949661299473836837553924434400144850266218205660682769066013754386766305417696252641949022683949134579675673999137269872955846720426057907252721747666179687891086503181500819962763236429848134882933140938687268921102813359124114855556213636621512314789031980568919168840036238484834831427246155159632007507422193520464976361719341974078825994713028497810369019156806373176685797854774651737378819021393770315275392653425418217778676940125433259400598808263068333983332281406081004520641289765667999067223830836771807475620621765354154361797032218234252534192933597106837948200909692457317161942192319894476219654359906390960183793570830195063572962772880601232696497401598218104749496520372834588614362453781519158427601816972546737002007003921437000333985032639428208657560630293451189402860291618017266378091285239536605184378580177036782452870634332908104141079047255185010804415080066882606745524947635050478510490118086296322852065005328884833267796590385896315986532249812056031644596464354377969371033202887433048817300258938791632152214521824364311108108506841213450007622216287058188878589397444192353818509583248544262879478216451879632250537990615484078154534142858936839342168642101320550800874318552434058326210702654316779278978243484592646672623687823653683834069376038502251632805493123419044758350323781830840411029264313561934922189348441279527218382283415980324369974348612306754050365400017511236633814663903640261366089462952143740271284717924404872574531700142008350388296953344103430744585181986140153357339487727153210592924280935214751277275100057094129620587896896448496478685647471674388582571143007852492870637380582656202648609171407314306130236812475264908374210118985318527291290793532754056997754614201882219878089100974557175394264103117521987290879273079768211863787086146287357642357035360571634262943143750911395272979763016341506285031616780064187604151322936820547861646782477649962785033102721530005248316221467548286772430748235356209039958614234863666729567345179999100227736408279254285568488208005321803172137289196186064670889772455372128356496419839421183731697227970712408873895409947035934771408986772301385286763817425414539192502652464656704005952680566083122749354401426392557801690489469096775573040041713260594919456696149832089362162109694016254882188832569829746718334472318287271444658297928931141890441722980829376223347468239348303194853431125294675118279169629598569247971674206165314396308910468088270994978805701212747415611804830666414748759288408715318073973265052364058942776152687162628505209833455456271513771418580444659429390470412334975806190650056648111346690965449240469951874119526792387990653818925073331442408303072381753764091144405417283034557196241767071692762766862146158830048099168865569017255887928662467728267316703780087707320902317286000548986553292212602522267442238018278469184468159673856114742960393134243246943842910946394271055535135070876421786063481623535927298272830953837668821334038867917292909549694732571117783154335274730972028537779344518844833363582677300518561916640672892308219910467940617494416262127723494292411681009688632497228580658328073877100921013736941265578261159542171284343955474836809695692641591668499303590564124268022158563681754759628194570991699430622693638347063241516256867450034086902292611371929574875572909566754994820721098113761850989316166865662518938971218130960862347977416130502877374738316431753095964736518010082769025715548081240962316616761415339307910907262235181722460458685252637022357255691446054530309260772683294988305501309371344566982414692905697592801366851609488953851041968098320444379522912497722435554689935456247709615872995953093975199457350608847140466423564025604955676375371281472358865327652263198710966306737058430181907278422491370973020109286083757142513623513913782265373704848907597399585120565538197281415367648500875005650599683450731827642934592333003902459623032908359150068778758594331278689070224327976431718705724398566997620758407718895691448926981277313083603624165912280516149341431076244136658186670515527059193771241308331799202326306265795597943540866734777474249329575954876583651456484753054759748835988709354964838307243185214325098314373087720115010815911946361468324154872229257451328145997640672411792759958698866466594532857861734729367884838669573776759006042778951915489317074532988157214807332663631290182662281296589501200854266741974430655113040379805740893091543421608054350589814095682930741963147713438418537648450754465768232316977031368775010132359449755006373313136429653053116800296645198628409052704026698869179923765068528597579982029834890186424281599691660596230801140247801500384914118596217256804442453628990797949993315736780301973217822679558124267740327836137896904333335214652455906592088623875134067047450686652876971453717856658036578021165576164787556536427890672837681703739540611487724342515998779058852760620231082896560862042631230172868872355015679192777154987803946897326048052418497926723724578742543287421274079896646218583372878889797742765185631818615440032063269089914153272181139371806251378785838249878620996034459543839596530236379319642522708016572419303005079914407884813433728573794681261464793261917381216600352853610864404389902416671375623531770692030464009565600567047270609622094314474663517082957460245362059462032646438711056532278781720019294434617351948537421945112402479101542929139480870409487856034686157263487552657027457149097944535113631850483218364249007662633707877523472483239787927571622000970425147474141802628056103031228615626989812919042007773940549825844744203754060734671089564844261503809917852925135289635160946471574674137788173333878087203693275708787632762852327309467301220720471925615117822974048023076136907545779011416234093832049878019233712387027873962676766481036114618865809402584446112050070944476562197635413111044427161990912467855981648247608342423187386425097017716465328959001961944872385167120678546574810321953144538945050865243205422569740508503455992921062437381545731826270974520295797075942248960575081783395489309823441923603935003241957752224977269074706267944346689624839740489771563027179669756913379478581701568349369443540913869894056129271818078967527534016044063926673691191017825610788814169142159946689931917665953377876048987261812547799271275670142624575955534327678079038533479619243418636102213897790419265933862592462172931512334606836358650216974114581802456003506184186185936946670904360935467618145567191575037737915606322001276563411446543180441355653766624713870000782669468380500004518474870618548423810747853008684586387652958172159016937748102929617278219655614527114644474972787806956532194871920978971498055019578200622129762626475713086023269509562780329646443953452069377310553614631217624981417858468702617866148608193694393885760377018522963787344867834030856277651639211144108882309688414327415443350849454199349896107209897694550455517415226691772020687996072549228986614973721693045269307825432634914248801479415718830459531292084563064438871994049470798778931103089483491529766519073249415456296046221275351373498539505444304410595081996464483512268625288467291277392346799608970576971569183403407359241488551961982877524701776502812657649606068152610323681311450404961017617404626435840488657070835581695320541742372838036114306834807195847672879800567240121982581036917511728562885080230460573952040793833962525867202344912888266953927923353555800806050560008786542930658682957953811017407834853088500482830299191174078448898361573794132030473286385085668244042707086451058423048661242183856568560146789005691685821492109958659930057946735366798481034855243058512849640770838659228357231192255926759932784790780833436072847408601345063156676567944243469825541471745431329687336439123902840597756964532413330310372556450392466264943216514724507112025715845449289654817034181846995384161302180984935522552509092561478398507786929692225807707433232939806226558045525776632893494350393638442162104898389650666642734920606310599323615723667717638676017789570934514272300389212888514374804421653019210729672652100023266363085456530704800102319310170633495979007927618048322204571391333587168347646220543419414777894537697935700395027019023248472223798759742111607562444079551380425459287373199919229250360101995249353856891490694101208431623140233835439681048367713684706332256861374912938244397783228234656963212313883902839623312750880008626887988735006553535520853413705270958452060484161378647473051113201872468506409314092067047500017830842599085946528891704870421549756383618914333387632136314612275665401770828203046858102701985261043783385382853716436774444867821614195287754890915929893962703874676328052584521490660840999424518604916315446124493720639135800705156801267086097247567931441612352348237663016588762051384940970962062516299340324728186306197397385653088553893618702018113244437044364779713807836558452849447650887695735120970193477048515309432991562395676890440129788457910083452960214388736473465947597272274465636477792135820293711293686884065368867898889900216355113991964367212638949064858496424725728556584716195730030029528347318779085779588731464670403589950898894314595114173449421837752297122487512889715992112147643786899519481136733173307906818685665238776579521130573696616908277277936809255821557530077914618731866583531861938768124873422933392539013574212382981249229525533258424584812320711293524014588410170902173303430042845982253061434745892478393876498766815923991178588696716558035299460655275025900201595423192731679792774607620225438736777011127745883482738056723838204203821358358175833639227123016146905731065936836866639799822402342536066831512043883409441192884115310374838380128990606564731867668251026077990686378556433044180058278871551182910121152370702256262867211594249991034333871239573989581780391925476240885333146962215896308941190406702569898211524359389651574375297425422474008124467671766365165248308066385220022998896930161245908904917236406298374946682641175499746028575784711701308835883979275232301016992669314773986067679175717447760379482643333026402892550322973579980594871741024647215471663783336173783823822620636588239832423887274642301854649254288003956736427560988513551329589869357990681107524857172349561271383052813001403888229397665909349233421358207975529000645877481766378918459287687079631190012727970649881602323637151944611998224428110851126938731075942440407883892522340334888230547116691035219330645673878206587083543752995048433196123126177272693862803827178320073218836157234179140287435434177650896428860229070331814382669502845737399706358087970032881635256077854705902908237502287125728653167629847447676549790332104689074350054527948119578627618827116647083319485869031741853134395659831433673770925349893448912814135149321832418200303554329769272233403303058015267127749239500389591752773874676823482095302654513901178650090667292287745594869196400737151061309402887226335496519353488466989170377395739513050197707067640792661758486840694223724765822698852814315885786099856981330573947054838480390713767762124181034629746812608099397667420508522305422370052946502859761606371233727882332630388419577398188768611484556289951543897782663971913697302879348764735362425846797147680078687162343880734571014938093192775862962854316558847795678966916960183320176756738243884540266559971822505840232068646027578408136816206655012847113501126278073659387558429035430827818399269343549524327607713103875730463147973616272497393150693602349186375418270721608096887430139535028980843446928230108862718375156492817691095837795227212631736191335399569234361969454325681612100154061974419489945197710939721895883352112778667902096724601956281383858355465755703914758803344276813987936775018590804085962762885919178177318349867357189011538898527784847362864452169284676609482384377989092721426364103638674681806276660614035819243564095917488600815352075333104256449652775170942804607809713400851824314719762692868975812155430300295161512221842486028685550623269511097709799470846376328081332756371026078879726429327995021002355615893718966949745710323880228228523723373034757673888485243303039075270037793449305343036428123369494728388158501575872273653737792892662428342714581816580166188008144798456040540093742216573742198918257972956052811516994966070499197638311726813282514562053126217124495165905094475879567569725584504671032076138725327554102203468498575740383312883421139285587871595886658898332163158261573613666365869959698780044508899315133211174228948227511088432090882296830782258587926813780423556650070952073803529007919050139631835342741933640588908703554139121038221602202056863225470255610345116597435999511487219094783452554118740764363639575475337026733877995394112421127360729889913672079049609392725978873736000595903970632382403974550595314358138958090264145354972229559087403890780568582106706460374045378116866719805013286289535148755456122131848729889933132559380119081255538266700020709252108285068072843337287957395422027580758338707874000424639263683110508577963673947640936820047367924849602330609383185597684825333173388852698162630669233222793098005462525107957029540617718453199446982517101322915904874444608506245213275412342559863955793760512392227058519185638903864661877346004507270526732931684050165016943540712569900401268403489864279997369831673104086174899561413779543734685032407873554532291929633682336270430546949929946887644783767484147397103711041508086860418608789428815966631626798039887836144242506699981838885354809882769021453641746140458443424041938551270515060706708011684172894761404200892419004389300062071386764598555930659022225278185111416654186718536003806885193244621835513042768734254008788604060192187375805540808224990784161313776434654787255883481033379090981630479050210738517781104031674555975945290393594821828002207848430769268312468293126056328376078574544930167967515477473700063521768486389855700074294815923485854363413745222844962287281284144309422710483935094611608194311589553276920457970731631840344692930822269063491618650688522169261056769149695212743283489371152313484089792440705738281392833198295496662346488055960505238349705244781655902628713444638980011383522483588099957304630963110082602299749649984237072518963650745184634629122049208012846058644730483143549807266258388260169889199471867425283131410740160805444391249859776426876578156799266672304810581400103849880492944822983097631816393737868819384747855725845879150462429407134771489863068607421874515249035503644925739897585927778816935834367819862379280929634326712626243691264075519225031294565410972830861610420113232331609958237176309172981273808532756693872185573874773415400768270907282066120196663147265423166237687338202352439767268113632586146407812237928056058349064644396851905238901743751085514891420605600313057343133613318309457550757498748353937185279041630713574410095692021122803148650005761863699415137486678163012552895875294735858833253835411102042604740330354976154191157936538516185136778601252787292934721178765009656823662705051050342303502754954027192127479955171890156360052602821730526203253968595849945770190286777527856813765319717473960214609585152925326990326157610596513978292223960025693558200562677440788521473954098539947047314161319168967591109233020392851349631561700406251781808977066176394182387591316596488191479354123316160653561608702001270208029312419165310518065027067805673374103985096806135890694051111487107857014635386332437546037994704076031593717492241277674796085722383439521445489828872830672986801117622840439734063477270227510962555908682765783641593664817449799681277991653092753608627229908290257198960698000749086120319996227546046260269958619518639693788020902274692881013836940300824339489925762011876408392774301928393581901019612500675308032775567725598724972062094990549531852587568589214844939404702550615014797426027591393281041568665008563231563470095768569242263764819282266425506698445753599684995830556305691386801651413990316308254068870369169401452160235749211311030544220864284059431380712603828906998430342160881491243067949355519443514915993571805843549440660807929512796080453583644375659481137047946382310189356533454688462309322244278651327173171523320688797865611537117765398292130237830876401242758785219469501100278095178102751841822504054452444349260465501854575140211271607730145456337833262755194471926223568209773536278762165827418904146078465139384841734391182824490950803102574236410423059589988464359544372461530210366953431623881891357278133410802832359638889016999440378825891665177977955770782072494637122696971284075148074150391830835806186190077209303708702895744152356066985902301771710630525161533204684505644240841494714266799705465425281205243375538476861242405240984852018499543625231278999251867367334362985696272924949346197821079975713468210681557173308736653914170121763220485248762926734823761480449824750447548767260531538108589700230745630894785102125551042849922171745161986362929897981964529334867309123320629861475125736203278743799028073258130008421263578246712737506595619782971846805695794220946478893543540337302736194579100243892674994223148477366391667458881802369346096181915468097883110016299846823523185744248589230750817022020203570163634166621297123337340124697285444381323127122063523138611211279170341573953711885262029135580840039415467083885391187985066468111273779706731531193784055467253111265143873805396162987630156333097075055946000701271227673036023303505351578792881035982958824540708792280877561929755937310707163577822822755477308823542357707681348382102994112151000958503374356359472654594499385352184355080411329498724399905397810137639028577758931878794219886473142944817388881985327840791256145105187426251387961391491831288004873602784119617179604677578000327027530236193111446465217017103131939880283266815384124461320929588604318896212334194801256803147104182959139936796002723388905681868875725476552950711011130694598564225468812386063671469666910637841849615672000833226680682508792180307288300084898978948099194471159786579826770280255714512647507340305057974177114874224730507191518533511353504375095948685460859533585456214068170246984806880126660642245634593922494290905790533727639532774153536062612175849389004668169973650058766507175716817157783493389821660142333846689605767690720082764515671940562471586533059665351420884419463316546742932498985962968880770054375876662169242302389904122940203824603602609565728105248837260292750666722646856958421524674444939996957395233045151214050875126712669052675525304377018247141797410749183794773032991778362544175742754969162827683861495053317080063440728667481562787219266765023259679096972091180852558445345645405550026765781739384736257673606137385850889982041245763876444413247347045153711526056301768030869169408641745557697548476728089193709477563906840084337995537794530908590333341887023432256722126354349674183543233740655591047619080882128304471673209644936303195987291175094676164254648494945217664860283792749440680964027337218176701551224836613949868231039719335651713865204198251956168541095649334565899281810672016351333451192463911626135741581594512974588991962725208731353050256622164992705513724541031231152641955597585469496241277046289241337078719116003273080345886793674870736412598022105251553064649891414995008397836965037731674654104570934712817900454602715287008325682092705802897274349019284079864053411582866504783148872557731981853302399192329869238049314431702103810442292128999607879384871573164560094716847839575155707026827368070183012927551921489777168054117195096623138943912861137180531711560435020814149078457686195766735420935132484667775542294335664212452309219648896645979739969532353580559186680235101802889251876641724808491799482655561711396229532742928549698774574622436305137978385505568858834419208434517198376551547904518703471470723661290051563344421617645300009203771322795010415786085395344322914510247758597662825223110471627319519993008122923532043052503586992067045726451211970183881996284189382329119516366496944425119041510038741263459657040074427991186751321332470421696472019411374615443166608428380984365038186497017912312547086841283945467785922692943581659199895833013905501661214880235266410905227067957840957855320366719835955318928629416417178576658696940978360394322147226373241861780754673219903100379340375029856453071924807314201965358910092771569084363155290085195543160511540872957000126486129739455369054091810518880348343984130109546877151615657125425715805249970794551404678900487830267974317048341750398994357909893259991502452181297225722489034926838651816912113127263593576602565338101711635830300236585648085295152762310451680465968853026436759701330432647382708809270910494942959015581693943401336283218788511075811361623316205160944998215704452921845053392707603636920401128198346661895647020158809960698302973032975688570376370886083589744873640943990372446032141153310077754950238321899226389286732723183184416564426068060583990649875764118629226058681176494140495609242836513584129700530756176314602417281668288028689514322176593188797210804635177756187352237441788570975734308447268804980848186029522323703113055330102847678922826712430268295163422621141165685680533878809728901599537890807490132054795612502411851903417572947054281946810200519099900978253248364807373798874506682820332652786746842895756869700816999375119996961296396312123497057149044078608584189554261454056556592884962943493354758227206470566986793688351341294989688900243834702991004127151420470235928094712570612135080082224889715567752793777479989075456511981300316134104890457804919025704138257416024404087750425797272795425715655949784968792217950272330026092646896050887198831229055393369178450884019577563791359162052904537132223898650717597504561628079018301812168410554988111871374918927047255200355348728838827122758510537762241730356748380786924445558757736153000179987249880959122436544514450279320663795126515571814445201428171842111081583152357651650548271618655887468954968347742387149726782244329938060312314707469482038502409923177770521952338325668260786657845765663582067405699286296636344206701915883596407963940547636528995783061471908350146996735745443613674959250287622925656636947106456933249344235618977114722040637098298042270907667802278058268488535668927898759094398400268527536909481166533961264933376144490716635784505548339105018434354525063175306394719530477868947719211332279126280474331861719029200361902782750989729722375622650186017278648245136171965349154183766820113137699918808709652496257597071219404817869007700531516835375734553997094196164779481124902819994527120133839678126218100581045667141822113731649388797405724888979278524498669662248640654542029214537450807228201091401714338772950470118770235344645876286339739792325017288273402541046605655047494326425326845661609818563879068723701787857422633321057621782033725601106581679714166577846563253918477344737417251922129322903140773087724417044249123095276979236792752124366776302350426063596425306687270706092318247564388633742076615394049481499550018077661297791560768147581988245100033539349400357149336181888604538568289372862787242468283406342436878381926079233460643520706290246593589037989934786690659178598242895193174299497844087060942955647678228787890198110654829304840499163404239882884509044170250517066205364567880453643904063209320770890975727518758091901159155972684749252727473235439639198180233516748630299108959476009781665917737068977628490357601639576234567899501137162238249303808686679018241834211069460680844310540504305654593491474048580415625661514452757379131929886402076825006722261434307661026212416341568558253298180364847998070535347648076509875415928564542379099943930760478082190837270423703905287325167779631725680119049204924014512825056667641496481917170716904329244171670300630695184446632835817086861063463848492348475815813433642053828046707185297988704101644139547346297241977722860692551150847331017226155970865179270226019444456401003613333163493672558077843302572213042897417699927107659251357863703103984576311856640634375540447177511035106017683199964434222058495295148976007496140466990356043299111771805513130866009568170118695961044868849965102552544736850914384467785346636135250031926552433194304563088190152856735477130019817785860101260492230583703413982097695077791643616555269346983572484790769893784700503949649304439402063151907043287029832372345489751108087584015093575956318488941739844304222842997112321964582765795099083727788563138280179642351696062979612666346321798424521304023613218736854953408101878425544204478930897783518424240908414040422876164277727420847443905426615925500219966236048594514915986218165814464338168046525797065876988215443028043257007213777176800248693088859852513274314585902638734675114602113232216686120719728351753258807464452398985795565833348566649118435996583547970101851513519981240419371514009253665872670117121270302049636986663187164804918449598241125095224352389906615035400383870524337603340075993628906956678157563534436779665696988759692111896188861341621653120439970604471446410700425519333003285032701283583782610805034027260947223584174638570532396530356913645627337948402791163766069064272880500128571928900039047933974667316583490901226355994538329908117375721512213524295029153652000463989821877315080740444972352123843107834324933908827717563049746883590124983934189652937204322388225127698786326808816396983195322577516005673709832767360631623458718071192112639805060446029529845716768769241772775265855960176253041733399430279522034951220852752173683797883960659207880808028122982230414604202704235028378134776208968928292479701453805306104054604057876269410908075402251914099350749830805279138869990774839980706241409853462756137546156444472857136840862970553987125892089856045976938345425111710562638048624593040702507333643456580860952459679425971215553654303010107241358311106154207787249601558263961001510612606521100912085778632677065702589687878826048363670660471716377892247767841082556129340910034763475952356295359763275256386201659027842244542484338695878978051095965083468878260730378728034014047572387976191420773937351359136895953874993330465901744131388886145295156169680210239056759126587234259652464467338583847173710254715592811724026663337787760070171172203041612287411715756384894993962136114624598617739469455188624032879748680902058564983130591271370287620304070354829784381234097828032080750424275604783536720617757379003993602959496495672954512238948697413450774156090039654235858604938393639889981973915727970736883242382214843833874291507663418260476839401703676644002138383257602464828318341537116255515607072462990848944539777406479436864240462762013093758594167448749866475898093845537310854802041791315930548330175258579196798593570320981473210423325801863448621486324653447188840657948686437586169388951436757630763632436113308959011011525743502863840192343326560236718068714979692745764724017114334333263225384158191855243899309978322618509667962098055877958674902966997935261782963389380915891207887318783214367419386385604114445346494788100183282333098795386296441198904428009949902677590941780524878291338578619278203314295932727482630395769955690748160996456795127369199544391693824805225244148564140721068212601570192077559072417713544326540752354246343016228322591304377524999791865083065883703565304958996699643398033448037932066229987860913841012077368271101184792024665745904981172224837849884104762495773102994451586142425573809335667262683403977795366402095114372203605280946467097837045786194790025935726930324838546159856171512957849470461268852546015652726468202244504908139656699609897704840444516711706684229314553070025030418102437754254567677840341072426819954097923247501345085816888716692989868011321050131558745366354984784566534832246346477001053077536494632499488899104703973244041738081605114609700033496682563977284623523669259455494307547629195690768615965978988269718416283798081250023882363287344655015462286358999447031914423571776527020501131890194702710692145482497460067067237121612490352403223874275004430273955013759461304203077180348112081112064552493694995799259882481232538843661643096279402391231239013327817333701333004351290428643030577158713106427144288768372223162417046932933883085933207441752354165542659747603317885494502729468980827960083949919656459897042246633803319529958931798911893225874968227828055447296447774060967979459454464287859026650874754025264346163407877583628787790600832476574195149116297731778328744933438740196989683285546961233402211028922787111190665823661658710239811419229593798294834362713749304186336269709067800135367895331340153100078888520898895964455079858975451627191231167207959114642778401108766225768943664664238988441523952218384063699901905690330056717388800110221444394350638187846328439441965532932549896686959503789156547744545880932638034853502707752285520899694372585044634934118909445959505535842837931484872372726863656204701358564836469398820501986967598332331800849397748268511939398603723537211414366812378141020217406130794604608198608480706288851626396339592319800425318125787458471379056378604179274015810585998258124249787277885396501075238873023912765329638439006422201998534923504767514917653579103801445975718421671398187587803104075855131996038789114867519150213829282291648922949719000684785529947486841280506234682801030213802427399849710339450999267672516359041452726401889474611928120330217428088092381455932865580527544277654654057700530149734491290172939598721059244727503877513123490245033969442832504573252550059897407813316309757633111174051695640544245856643156744159139536254938436112101459117232361152280658203389724069829061641901759707563071835448794048630360253447573204016675775856637023140294365901743452422121976500962275651917555763787893733535403732172132060185975270104064394594710519784016639180898266466177706560318258554385553080609617173257098276440489168708651851619535080027657314022263106022402830878892347757655986770247695910038819750764073520618800192614993855213771547191218426215366037518591166221502852871030881957601015020203008427126069124761858343565616749469088575859276728446418546872850814330599441740375458291549761934564978591646647103375765570797003550860258491992037472049220788331439380707253538795515797462202548345179182567897000784131226028899906636886602635745502734623537635143349613857547486530076461599628235494110298227516264423723226606875102613749982522606211630953305925258019325176621430250903793926961026228600873124116582358554242749780777312100596680907108785976432392663295347945724949599009222992369830066893608058990684822300400480003114512371922640481857251629551936532547936663683956715462766483465843596035043645022578205092958362729219812287736684282055194630729213981753524332025704564743551177248241050646181048600341791015832506368908448486152416925227465428999376097199248064467486558272349605210464220436107327647172397855864145818269738371067565223597555700844030734952584594110247393683968761373022561911873553995500689338288794793218462389129235365368435267573955940881771743457674589749373152012521179076148504583244490230875640690267608416143355944117188944741945028335156740238049946609272855477041761373522401391860035748798952620284882175262885738610617597951841731686460902256403702179257230203454706511207519449817892366140690880818074407228818449709805537174076426514634036036468017899439504225603744106740910955906411244476920849062547382685740154517498980942890842715254565417958210478195572695704270938570600552904820127279486583228016381715562240010212630129335507765140964799442972979893569589720392508932652651458689559742210376696827890729761561646606202248264231846972033921157946186589077482882397249562404022276646135568819295428026902430240301853236872844522494669499320790000875150837195555209789910276535010191377091415184264799553829994990219850283090615525267522096774772599166753569972172341185365696027081343693303184212276632919268826863178740105611171082403458913010250045033415204154196249823892641858629166220815736594794514106354559429789678444063823563696647403968334983964838607847356771703603057662240966515179200254496826932969954800205085795507453762603840795110815859437826228997458242569392642282952515024238638906709502812182670390636069741559058720832329503629462375959091521081896227715687300149718780262925235661552081932077567562535811725234542057670036643089363334300153898411791438745812411308770738514893849632714332743825476572135631158791958467287297066632143202286506113710251527509398418831992543311573590295427678298141878805797135307421900344360915814092871884844564852337178985948684757562006181870197089455984557822292187527810807622316554988248588110290169295821503291668932799998240040141456214597009279021248223015703212567795288478767982039145631080580662046343233623858332792770627847546605381136090361437475098541022209885843862742401596859532265918398709957018618845760916143558377818652980371252664169442088864900727662445528739360948585595776535827005490346897865208268437388955721312340917051079566807538703452614635857478911377323380142406178245601115971862458173944566401393159596855330949153704653116228303683897562831704080049660128096354801119245299202403538391978077712871486773977494213234370069802934919657997925428179301296706508201748335151302836961418772807928005337977766827335734160730000460448361229515097577566854873830680466919721593329546507459280662875838744400615972984565125616148098599631800787657701098689722637072914074163993933472368394098697975164802638964523106113414141062062930645172278247038006577991324890181177672270314692873264337625457686164109845374504342354332552376079739969897026020133560437598295582119448615387621182641024910022059240113402130871746724872469340630352490189988425701592663044625727256353650205236480041212819326607277212530195780861802271286798964901808316515319780535134685417364266193564864246298946923658316066668711812549886558151746418227653948901119543140031255421583105577333297662804619637122151167945604766347986066413683103473606325777183193024971247137816506656382289576528155528881033645798403335277333920654415315983583789375002532163873025521175294834923254011763188054215914201557396965602456439827792992163668087485389805864194180607411777528552888717587431346948260707688765941432524638132520610092748311072051560474464813648363761446340759588935704832902569305983514241672743068675156347558142776006187431888533175297044439304762122899623162736477723181103887606054715351017310967291018736918754411083780515948973402178000589992429286694385273200397723372069183427949721633545310175728182310807425225663615498636037894441078052398292249153551363742952972605759864121473810708517212189632686438470506958087697154230109631539313245646728052758844688519442185575718692595201414839515790920459984679152830641894706091099624085148011104940141883213718937654124966342513305979158394162313078796906140072245261194803793042775539398043966390319186350090747511175301795449003158468625459491318160863342514528119367686837941917880264866795144161510877282372968154925315497210237689118782864575229568231082910582593001671253286540222372414347238533693564226424663025142743382756460893184452223674492179326152851892096523969631408726254357166505648654100251285081139872765178500402629725037642367507524521191670475732982197764087225257106402849616538406196846993574020871503856648346579235024058074180006031585569482914841561028594147596360068122383969048509641737921181419699465629799548586576889799078707489869552495675553344450500081641371461167094833057208743773286633265636366138721478178422544088390593705844633257108272404328226038045304744877586245455850121930929050776005496672703374365503138776072347548768045565704662571752384165953434382940950994431147650266749659401421730462080705465398735592374140422146128715831760906587575827358294587237472896600484337530422375431202883309510574315208742085008848543150782774616415706843863402568729702444451252202695053840485588605562458095875054795861087413712430523100347078371870946232688321928805901612990966244075616781496712674456593725082528385740832121431923846820131481100993202689789518869450136518220585294231721898526953943249298759278681750709216782785707210808708396738728709995980242345505706158536880780946127990432827382410582692810133327416020937754469854359606711878681018511019022772908931113111395021949267621849479893999377718674018777304571456370354406380398504513478856372776872031934546423543268981101057889815323989836320949077078686664563817537500799894207974991834020901693424193539790538082467281054538541315290075063180199768359893964710645767267971948262464778117638222259474135581448273793258691302947862308477822380152618636106263984450539422319397692507413462017776743139314963256392657401754886655536727357875553795526799407315048434400762466157102367304769249376895535949295898828008444146427684022560546593439199780493640740044517716254435294272384545158180186120246286927447723345974305016753955974433238862843728984667699834919465717737213883408081464234278707188576695114055142052936562850323777258705950550802326852928423720322128384854300370972818254700767446385784734172388965911437398230308405947318202206594887998160510437866834524094832616970904038021746218854827301590695727480670621725106413283231469908917558953387026995645967228960438485761662489465442466241588507560999599103462813426539521650082621298808386064212514228482685133288613130565276488137349388391111042628536590991752750004534457123282298626546665774108520368222440360456219380958317371265650124677866223220861364357673671272485921596117537087024143073570139015890140328032545419856486917864641336458677924866493723342024172680940199992343781840524877666262159433671623081655321778267716279533795030306066327415097003538548487367770879826277269655929634739844817387588626710924824780590994224140027655165529090913160132148939631745658082731401629762551880011244039364719467276207259477796253887955385487137700869606532890936315440720703074318833933172196175993176850635098841730408049588609959480200147741993456505065463823670726365987162444910861628085762003367474671032720683676078499358147195588479023768110452168323278415606555000827612344225585471061627037872734250874048737966238102944013166733076087820603917712003832781750255331539755765670577207381620819640467079507666094533861870093358338761661298693953005583418201345907133929811704810578047369801388776312407909737987915348050494860697130048345396171941586094682314999217896257934270117318406525473233732581905197335609284369840819643797800196562135718893533255817628803052060903774458016539788096306212955037594155115017613928325943610009556627498910989769522543791370769591348482044666488433693001242286763800754510370947845453164510460304554200343250750224453160303979284214709717768433360318607852319846116567576050916160674821263626165549180328157025175304878812619779788747149100026724309119942119219264331622841602987368494073124027364556469295147517133462546543770947896794988394690110928694883223901338587890921928496018746716763644504705286692074652484017063873362807028282462935798830413607140017286621471948544094388356418357787448405005915249752994743123093482996678430195888046397225376466520168291378297401028245028866551766906723575040063559673062994973896411804193036153194816729074412631982979143795393287549235718839367797326780384219934402227717151139062456082199359936569643171053423274381382346323543837705458534390039470272809777350801100994054833204553781904105947930289227231956125488791422578259112977036621908101167811148234225264717383624912498324560397179302466504848017803449205307512188153036086277807346337703305533048967351599036334189892739035318564418250633379946716081643195508228281435192521800731990442766123800608136303489677254131797170059781130545601025163946428873948361079734727765711342075243762584725516182415138161036010156027718253909949852730062970007866164783514204378134375170041166359908782127227481267620995731644612950494045195472302099658414734687046578615118210908672986800327813383307791001041146754690038455583159182850356164588676244051873723442599275735063559697241681961204450916549047249346661506592579988499000378298727888436930124028399527081907090421489234118807447720541785345002051278824169452748052870858786801637347807187418257397912352054394779784809201111008260035339523111077564001735325214824543708306360621695390512299155874093822494132546246086364448784390964015763870514463865901051129333501606262200910305231881307770313967492987127640133664848951012133106111246019206621504733696016748433498099927917545087797163272764138101469059044805518142326072074664243020105660667115044417208544380341046487228520252758537263076180339652465042990646999504112827073525448021597378573262980732750904462052233644190335177087111350118917660295401654419576085581751052522267628122989196279941123389334185155583014682404376187742157468628488773149924370050506084984108286265990787717061265256364802694466929095826411246263583377618141398861036541948972018739532983274630260184407468839207198673075698533392774248725425000231878898290448194942731440801993600578512738331816455281178034540234322772893837439294818638174237353549710195097923269354570453585956250121653070379453757281822047777990841567952525827681701172563407331144799562759411014518228297617025419089925386800286502167749045083266923803192429998466777985358789123536408332492333512570805661567473542408577219604457948482777597223106835985618444664209091786008926055234027195478454690169838021841175623629070508383485009061634012259474397803550972177635030790014150558753753143348885287463849477868014504331516025517672677028843672185453281030410082744387095264339758918252214987188488288736312770020676689936414069967619150118730947019243103826158242222228504967590681097056259646024333878888185181261384743772817681567841061713876992704094816438944084169614518578995543169986704947528715005534357319187055037429432957355651411258900205471907730617318688306025359681559666181260337362178904770254041141645819795861625219376762357284697094885748760061295006221700183327252021138108972596961706179104312028689438957447190041364821160930075858729207833048392666866516744535437031355721706925898595416616575750608888248192669513097338149873192622138614137197382328154570858369343332539371885931196247826957093695629341865196163591335610014000349280914741684825266320485996006471416021772531181390576437159553983036096279878325047959578216633338784496321273617723878205388293233230884659265810374389411062405488576425910951073970203263661046903931271507463640266756220291402785367283808635874435028011940319979699355634811404602524290051753420000222056650874147305788859289718115684410310020174276648901570112612806974674107654397197292990718204528126811291963122683937679568862119190287249748226137885282272877026793941255889714310703969604792114603331586778376478653574627750024113919727448435159952547077087541746129280053756165233786375766253265056320948072447002766746352052052037312314169671332656588315401908533919517007571270828927499799010606246416113274919328135753117445319405287363231135534182230063952370327453150618321954107964806461710602457908212112662211114294273073033956292340695217154472385552777163367459521782535940918063954417383220582440737604254015951294300645757559584495500525964878704771561157413115509448300264314802777152554841313436209451638697065737384478525565715724760704040657809168354973266299383445562983921702962818461758794211060276068915676707486138214929952793735316303201124864174384289686181788400244341378997654868143341906219057428638174443304212534085005011167350051925212630236427678167252500735857743909435808013351280526586084786878316463377872356628560989165488108325402299609948509910956520324977273328294102988121777438249992040287201800276690943795161584871739622453138641758280235562196568894706178969464107490933446644131494308765373536232991109668216433098571163631511195892607064347997596132251461499447019445097749764672962562502610243476047970114689131140273623408805271011552447323292444320840266328762080497635151527941053810050152079899738024890201953728232097898942795917496206431667789842663910349069750559467334634649003512143016758670399507257027434142406479495931691236862377318763298821519579163096708321242311100017630972709903024374461114180196632633749279647687288167669401548135925908186065669426042183288447242231913730186373597796569945067555820502204847204864131279771582189648221979242486452620580095908890605970218455121865334028861235627580284225591819159742014203071684066847079889916241720882844896788669386878656913227468498109859930599278148784609379744986104396228623376998675932107825896346384620928403016121897621093416792637202932690980249619306878924147995813356457703619755815086908422143723073969589503444324914818093382296821962952971936830886694082272853116815062191780572805938908727715710578671615722607616569430731414625819368604640488915946715250088581169436576348800572780175277258567700541161035387416312236027981048360072858199047024787294870978724607988181708424966960935978706042541705507549592473275249871689215669492423437214966864594002299027941522135847093083180729087801982005307156080050918257254763403099864871665730526614671398174800741952074782563586117225728126751561225921584970381534038370249434086428995286033315380231285588036844306699072385119887532010455295358168171734775104720836785539352085920245913061487964372187332946227674803525534695399352316762853088194615453647078733439492599023648235602128790564316427377821751480980353040837061560059703133688568932849660093808983206847826326985475664339406778490370725466213748025741583793677715489271129789624757261642584676529832130567178039738847162765158681649276274585331450748608306103798190178594688974513123883788294520833204534585195238055471154490716003235861661682912337520828966942925616083743835423414323440108681137729922322191991579007464941110435755840205963030412815357756427001980148408622214038517443501585347652482898572504942092387020403100666654091930118160220782180041018028191277434286225510552028046813489386788574326077964196185658703126782190422223666861537454109197919950849475470091956446276013567764986337949285011296603447764287341120080583181883633090437008092690983035061675570159390059707631031292310619105469526798158896752191692720317131134876806147771297437212841987233754874050034966816100053373373513887129863122354247836097193396997154880554418097367305953078422645082007078723597975560446444083835748747393858226555814854752992541345671824462135722085841819225074648078464903228699515905449705637906991711211943211974741027373447943793537806241903157924542895817789677800227677763256660432408798486604608988102568753903593139484468778914202644760505012610168737547174585965309495188691043808645667968874732951816014979543776339432840025322217250108716715760498266787985019434852663451386855998691607765344270284703881181303960746552976360258479162397861861958704296229116758975257578136448958846835580933979810308927665143974619771602341335886588332709006643647322000093664801198429081576996358564667021284641714019758989899180248109025178906764475124512921727566745910424188676721436108587267460496240874214213139444932105950092484613643396945736693110460679522827612001895991614720737702970512200409187652981221146826712883767843749587874592624111425687730515748115027966731323156577409793068328709810676232268945877193840623293836057981317912324309469418044675662483456367786221057440679844159422581646924541711819733978107241247117681561616352053317233475931376401908862402408874769955262413856809583113526206535742366258265986020735434658349828783861082672322316869892249713525700319573604481363297816263324042786953612328763421305906393429410939650805031398680331864499903680404894154135850603242792083793942878540370376201651089020736355952692663081372555857516808586368393643897412419073670360509442200737216521726733472129354218646636096076464378698918666852531359319588659449428165865027566726958961456393901087766981623132877083114122654144698019748468192127004623114566284046907439403505458754404496787687265103572340202519101575133067161713104555832260020948508880735261624221782504561786094308909398652669011258333425310830679415010246883983759423304100363167878129015210744219835305214834546451508390657384187410833152207291257511145584890502296746870553335766031594665942169032505946289465231015541263940029800866291882951536760529061413129768001841554333072905311282905532578886182338559791923564140391534704391849354549702513620017667545213155675594705482393300648073846396584059284748557029069386848728638338397146386455824345843035969913755724974700960396357445743756800771112040066016334262058800551990549129967428569118230090179349014494668825716603906104728116830288126864623996528762603883995631727607589776504702673201652666664942779853809298036407796279276826188714068149492632610282379412130950933586725870166819989849090907111388628254084086822037986796233508556732999342052153458191925419598954433206653941593283047570248587014624274849468351751739925388014911896369471844115151339277625991059643628345197556419430740554080680545882731450105876866742656330390659173722224324783603392018886137764651698279819760487964540952504499160459669326446568168980540225550382899309145400078481378595272484875732248687605574628364377657558213184806437507792547745745481899871452969141343125762074350916107463281806220154858048768527795110257046256679225579943898191478354204474486585775142923269235221688117510058331273136315418866026972208329704481738601116536321767592349173862268343961417138383956709423571394611206209934351869565870178728192099922347967734560184837099479523124472449371321483555329130826831163289907554236245568103570892544508877459490866542524525790430141751355356792345179674101335795695352776100607273771338580856767743012084932164959130410888866132004263775484307017855717094225777263243019571144026705392643815701125752735119977866287816717004471769934384285436628788613920178814844736316719782629862499506028506719201972627043436205889159948154659148296656631257569932414377376706578548580267072563466502112851650181482218913547556232688920621183836201100602737201098752722794552004138048295306396920495939794732055119710725267857455645443047144244425485220552969841570608655021256484999375232110277263655486591779310234472135575133353940355035391461863536038028051227041851741190386638424212357111019756184243379285615649171454786964340808455226549136068952629248761631767814130927318583012972214574691026452937041490211656328396142525636574945543697281908247319194430807134131385943820216706110157063430116062814463650122866030512755271568046948565421445123382169326351780119633151488689025166385907163405336177400260547053357100757035088106286963338283295776085908103246535130248820494450421057511278427114524396655648937325244590891310401686565846491724686126784327231796944108929560811793165955043141868013946459735487708919884183661251936795018968870130698868799226375071510328106769123391869563075804422107018663663445778995508388284967517617869697537682201807610135231565367178335673611418904684988552577016444314624901648710912086426768761449565946951527946266346893446719073457664185918893924768219018198188419882948527164819858888327308150484231528743643718014433220910420043253709850832507948616337977438551743084448564783950350264934659586364705776427267761934857577250028546992293105731293828469358446932754952909220186931193022621013442262651672212274550983352271290879345042757588918611713894545886903036760173788647863298050971713751245758526053419493032020227304658376065470687960072813692520831939999019567231510455460185726565260260264688829540615641454197503192995582293572552449812508627976526824384002506557065436808483061744391462504829855373467695981013298738906138622200041948439934543673960061380472606056073018712186294892119201023665011707757530541397684514628532319241230218539346125867915404487377770040173028704665569989316627420215805157072208128181811404346774124874332440830292594427696829994843961653177992881257789253814128783979612515018588081080764126083740735041817321804410361365220814006221656847597567974825059196385543718747316402790970763734634149117418895698099369242120897803512594246604482729858952643401602473027998469734181132031908716429897548545153905985493556708755356070472930326223309066480546639792467350712467399191831890934008621266295586845064205128675712126108375896250196624517126040446982749982743924278931874008382417986068939436829859114474819127740169910880328465556595465395555318761398447978591718531962013041534837228983179908857194657513001567770539375277016472893012274692215408653915594099993082493908395642898815424602861942253438428972906929800165098679806360141890143582746134412495971103295366379656969244844537819328005835036736198791030466175859421184869127059954542869469419398887271803920872545148935996643577290374960989061471208849632381152463539843398221928044219940577199930091671853995945072289599686048066135876743210782388104092003134897521117631923585877976403451524159418214652921673156378574253929326672747009563748109486499592214225987108380395701798565856966593953074024722970196162752239552023802364281818415344625356012716291223796500586646178177100169253202103036459767516133854759959511645628175567372611408194654423366757835585649647197823809517216044637545633764246271337804476226865536173725222514208184455780089266619476274943194972395842690243687952574613632036690279497390812560490123212531064173430678546689519486030203827725797269689470878981897681940931438651755327415782089109116557679385051896310533765993990745171653596077910697460816479382055470458573465099740315038363847345683013130472455686633694905961734700661459713540491893160126422038733367463943664490945520830562751079241108462594808258650365796113665782967316328259814396285977579578904001070548901868527205015471085004303666194327083331466596670561112322297655099883003395307338449905654871163465203185900008999005926832711442105030987225422930710462679300885973472816124463304648340094979331682526325657681961953056216091518030581833614621943841640787733505079074981922901872982831760712660068140751964739844490774087289686600620601474073352231780790590451107030231801068232341584246217029854994706804826418311068959325856969349535208893393894035625854469633862334784637727813891609787617299206863353531223864102011377494365808649222592162320394012319905666517809434935465022050879877249202975755242369157136470093884830131131964703051733897837983846078231832261542198838444834106384650081734481573414971207456284972424276427964732439648966008068367392463338858144010925800022687616036216382034795467227634071394419492248519588157341819959506095131793178003115906443868885574530596024358173535033348071306008538143363132186082964629785199297610907489033577415293054240519581822627653649343506252149704624632670576665115008912488364599447061203503909448780080872475539045011081546275654974165023141334670203394444586387465306522211681953315481442502312006849087558600658435299980156814990118214195413572478742201081666783284072927308030830202995842431039891005014495384983188120086062683929439622988058157804179180151124263787750453570532805134799911514377711579539235868126625415722691908958672470322203107493424726359696141252402693942429576963344209962743358106648331212165278426973383179460793691627981503810207124321637033909583140026530812243516634392143280544974399387972658926166209611616834823849279356240760420646785236966132673501811983305350809948942788517964735395227332925112268655576422410553715851176144939697292366322698263821969442817032370390059099454266726107581593686798320194275420955867025430421014343347067591194705395859064030764201430668239756405216722589713768948959651548453488359877970318078158397035796399701826315336693363008236393393973144934667385505356323552915415040019881726199096470264801433951317312446541545768812423336647104736444871740448622564305083676504823390580211664012801768979159170842371302456335180119769592277079414532964650019782289945745306978396080156094668235192890669518197983968965381353346255283034191119425682612545846928185580893672799941403595859468630976900394418308234279896372479421575989303247218395480268557858664634872318158670702903613140365349940487374784323079762092976892984140948281468516471042528750375726331380462113737688665854748923584531169244332763617294723836068325734124453023749934150969341945067657048083521132409083263796538964187102194933233009520676498964747875596300191174971973660584134470116824146892405797283544961967908161731997682446861055846230944030186788776125178886139935236554297117321010478886156196262615563460128106294874298814035457616915356488777959184195510652068507147809914075259995959890812300355604128071338707655176291802883892288177784114540106226649069058626592238313544059503170560334487873447769596529922933910002758961533146918243559876395464079708982531546735136033694292380916552978587106429947508459886754911923272921178628321553317776888972209775862734885675514929840998018776905187662914898886071555036047826631378375657298193146482459369295896337906180815448526489542435257068214093843340151903810559739670248342191713269850540377681378673465312888351010495719740645569439419343497364208876064431839779314673193655016858512481333362207106420801391766632443179204313751482387648550658248321048685188068474934512099447370840982766123778381714474279937046782294726252692876679223018165893201405354045079503376650063685389873094604916100145668678515462050027085439228615078495415714610666757000638984554992233682390557000235097383599636994205328431415731454683680987322903294930339022216895209951594564410835789166749059847702006947674520356139614954835412018528622901449437608807206228491287742382633758021407704966523482896913525732280142964715957352642704963975067488886445932718341210732449547860607738322222986218317784938903773699024577270459527750636667253712699441972491038922515259526849512906261045410583116654486728147250918921095207251439296177813114852761812331475994235322609412909562706133243922792368755256676270498051116516634945607912441921242751067015941693983919404465051102173020133797374813377211529014631703125201951549839521797520799441797526254149690585838112223364812062374164094645873374093598096391674641489769474042349694365607418681611435981733296233325710914616103673717307046418923875676718332175037481085109466101244307149443777014241905311456107684795607540603003163207041041854552229919934356549978402330834083780247520227419181035426102721764256808984286515233163422291705253425029648099015921714317168916531209499662622081859743889885657666602276189601920999529692330124650640752959765233550739536037255252133423000963002724815620862643581812931411187309976202444901003092544817372721992975139188193166498966482829524010867881462369104238548161942521529428144392900535059964766207484353155495347185547870916847126913999088944423704571390054977507087382387802808241991824909322002562843504410563253296979995815992012857022122127636456308701126814816991780780110040611899104541434247249242905611752064592523988300607552200094345894853915597220177106256088469995406769734140063477736463242798011872680420843148634005548290315816458730797353173028001268788667808877881838248346913142428897562923952152135496057912146557867327419905902187997515968376350119754106032914256874395215052209822662982947650074446508647246065179008348271909771131591499685234316257479880920149912411483294626105951398661393644072069481497852271157207153678653407981206696367089329856762433094920035521981229903565759565176503752400562954855317528874447354553634266638716950864617328356805386721843479092721010334700432379225911912087255655702834092655094332421251928138072546214875316489929642257436177214174500570185676454830339910475895730997721643964495227911612216322384208091903607053893501466441194606504489084565210379019295012301117118198104160430866650304325666593541351401639553399496832172792862414919708063672832134190869249384852333892544681164862929703798373457923847365814192620481104442543316146926301339703862679060822050772079188357325069940460187988239144433655540934588943047166275195340923129237902372091350478209255893046119230027201856974856307051902226047030811882242680158632856878798734183801393060345384133542163959479313262976878637531432746479338404142801993890929950885801915860683382507593014696593378431208288423134745310798225655760327451497410768393078778882675756628776967631037519284312820678402358922476837072953584532963346843843228042651470177609753994189288448544032852533169952239896982186687288815557384154378129214654553215942019573658065524907594155424915315507932166817757220069571282114427009712673895722860397122693501026787160079274660261334102110957656592282183299528483658784624235892542354871971414985411336949308216024715177365838741582380476680357211331888971789430238532356225104030410871518622811873817452193881851030012391892176586198475027315844378446943267979338145906277436756716205505883594779608255445149600833715905956596485977387068702148276973539002047820883965181301158883646082395824580776070150407423891326369665535417178262934696757202414269559613849431353932060276614880259536577794670550746251646036528611532313549154908107268466625623148131109676945030308290617206905878784688632794859395651341453597357545500307243257114537168329077134054058157590321254769678080464697787800386520190863598199895064063548759680765121020779323051136819090229505273627854776508296413278327044700172320862296290319140884534411121550159373709248457512584852273318359287195931183624853834607498693903602016628935811808949090054742521652740154827055572445872559579304044880143094601997848925222546161100411931464328334590991859489017991359352014605459752282283308764275812617111853225886261614159006746032629795108601394625929311420115313471620085793445401560437576162162325792521900805464275992522603905743020562930893267937998177269125036791784173422994866170201425029955905741455703796217917599850867187965675151831141795973397450893514448340322198707664013979155909354204432529827291509315230174377909284286653645474993554111368072969540571490166996606630058538119938647615026924266936717411938580047035408793766234240338081992091562760074957573234725895759772654038607568800673077829558661304639229554036265233056845350469616464186939025990370668219620821832916167932149615255555226421820731527623341480239196904797125769638008996230184129061517278632154840644036928786497454344574083473380914554164706207023068104114804080709204643584792157537552875877178475091209698342899851394235932809036772497253980780988368971113199701790041684897442901542575899271826887580396518925023094993506694565019636644374412253472545129116706606277421855839850173265655080843597882986023202442112455886755580335650024603807560475897883495733283796201871380621607708083413102954692594460551234365874929094204027024159030910263228103537478076266305224638514803942316044782246658362191569212440524778836978029155283729693047604590183395075373913683151206021639250640045336368310634888438210461314119812231263880261553133591213442147168948120288706789504857682865851066878391330860927632009660605605685463532349708336636955390678579451020989205652460288795884282701816539382647658120419977103588804132695904680293557209532551250451383720322786985142968323449841630922189742753577737309717098486924482405567519223172225464244739319929420764436755025143030790590737796104449310663711123090805455941132450369702151498889436533571343961587948672350730623671925892412044144289525274744771531609596216562677185154807681088989681711246505518500133419754797967459325458196980738485835080324655208060616611821841153682355317602772383793566598785804791488326603395208417512305627665538623070849826216081491494395509837226671943467323670648605870210787070400194583118317042345077349730439474344823807442706138400315313379103945235585380423262091082033820932991528560805011136496705905511796726002991208767587335707405974310479079472095054374721667935588157989128868278957742090514329104229113388001932723692627299609557963883068249958580995757837122942180365848578574845520749808107962803360471471261843456792334651875804933085923207270611065079387223866592696466354806000239441198798071130686650152598596302419228594004460621790039700433004931643387070704705049837145524337060995661390989876335044689098297010590177207000469962398077695719208860960016583300630672951065456285971949476371624889901362481816726239548347980948238938266530891616309677971679622874069747839967572731314526661922443776392921975698563308653001653270842943383578486872761418327620085991410772575955899242259013885042556226025002777693646822879147577938931348998813124160494727481459780110040538391504314382137469463016133865461321728806828095229940276614682054165649331110907562479976917902356117034816519408065729729682165026918454201281205662072276030991129143054042198836487699247833003259016994837137964225750559872852767655394325938104909964319598979486644025776148150890202660832107223055860804769414983688004675111631313584330267538776786098597744323593963435364464376227119615969780360479875160785686861694910361196457209267776743050090414177475951604526146210032267489567430610868399845161132679001768018992434196857469093183307259387564270141369956140701271715304982845967675415436805556531317824591496010176917041001144419127019301238322694957944516252468174295568688890455585076134847616866523779355411306439364743296078869667662612429086627230743552534023120721681942216816268477451583742553060184170839454863275232711870140542339034690866317064527035496322900123283228022726212141188156436806289323842216024833844414185388093396357764356908122070724174613977183164142748593826091746353403552198705968828167389794744110185002089506496867090131205736132411585177513707730548903088270152506774288661054767897112512398606699070348109308079392636410408662292044933069325128683359659747115617171340725992541510873204149230823972573026620570955227643501276835422630122575004250302385351154249018938435988708710835267137000455306470278879723761824694923432863407394412467693751948884663981311220889847931818642113718825341319178435189975111363003355563085547598445018927322637680444593358601221195916378438692195482708689795727078346737695799602909166186244691136190619985087986676993273025802715344806452785253368903203024608739630911512573468515983152927305987373534617730038173679597064426186430588023745545539517460570322274084385394154039789423759575960394028430003201691290751527542192549604900495323480109685238347754822821947662021008019098969686181094347458551598124740195036089069960958795254582488778498918646936704180880737818532353409595155576731767007094674663657347416579066415796456751957515345013693420100830124294394034865710928054402211254830300065817040936974315321560364993334157967983331260440203567100105884843412039598382146040745687222814865335378436635437302463568855607562415008575217222231756526143198541289570134569074163088081147849813535226065894238888571641501496947852505203414113411303019765403157503756087546142736169060880397142628081902780891040656436079797917106735880934065268701003251531155833646385431698649117770465587081516876627819619445506745649694584686504638615037784048542228578300448507401735463308654017483819883565636929150750014386363582221002680510928743996480214448396311698743158000799982207881896764463986764205187573759701005368644084901586503067183986563750659330685671317696215328307559132818461728137220620954748565738596798572520469472697370526174050459058075055018953348022511602915418281711742240743085159698828789286104110190115385668240841313173028143623631470141478131501418341931854993328379523350807817186296878470076886500225211138757030035339991729284643984414311100488728791247982252175325513284989873125422548716948217700480769936086611595277380861993657465696308906459368881278548801073609318790783732095236333941114664387687224750257970099740959323007362114954127789858776418549278348782335335798439980154206445143646546668687831997954904002656217289097800093361246229225107022077277908385009815760650100972656707770685296675849817545968127991957498090942873783329872630411157406571300569044811242979991329823390770021681063759996241638347009913746766791571487043764647529526942998012018103813273300795455894090834542421722845598094382411246445322023996154316500731996893161204882518076097041573910505826755231508031048866800742404762594530087840281546460647099221496335914704104096738821780300984796912517409349915064941849626915864275767704772824356112547729408324255581832731197591364074477246524312627680330507941668017522311227260582457066496728997431847816985585855646532945026581543043431568814439819954491685298771324432266640941090127365617060181643652799124481577082149997493869634132893563654034737580183151332890703502289293170204285383826981544963569991615991612982025689377042436898313701563251276328316237443901955873062823912134992857148944650618149069025736643843265189600627975656486757783706062843959212511898368907020891018045440707713711000951365070715110701880405238510985237958490373016042217887870286768833389142891549702873934648225299070356156401246348772364661431448768266073938729820314106568515047769098976448641349252987895020289751558503039949772142192944253244730740154280304703313423713498862775526155316577357778802816235502391286834938641089291187288479134712480262239938795442085308026166417932212225308000240561879424191909186932481789368876931322513219726281415426619061712064185013648794499663127305776105545680206812023101305344839968519636607822926990289268553975289949957844168916057324588779961187758730457403639320080105221354608698597095006446409898509906082035196098502579910305531217524026868519528461670062941917357344235533932705053861876978720628831323746324418906609779765714387269363405382817366838240701530310356286857628434225431901551053234761951936163175457165500160999373406790773213749029316903816501743123986887467568312301331681688640282483923472442437231964808427738833284502692797920638679552423289077437872423301677142048237764983195092033935343883922226232747658327810072383997485793898452380785298142456542592201614202038787730402977919780155357732314286259035535852946900143861203039172132575314071032725465370656229271775612846889905840919425629076592579838646538838947203708873904249552303864149197274661389311917994521029611959306922509216353627224668683292922322675915772564492281298603541224755320829767621247200716816600556876231128852043767857836152625729021334422093060024283877622837690349918231122076799733367698809974051078655887357188413554842785581454349878613745685837950934966765290560248462473871187789132768099156761988845089647993036532982653148239287904904220899828917280761240144849910526374582495131049699849737322605792046564378180714080336617994195936605572243040121528253884455193707580343384661635391123955393820862951220901238365972031527504495680547354727823816714202368480906996441379521099604353715489643662879217212235941326996598725290783869222001595427280858038755707529254252650720943140133198750593237548690125621540648534984541770304222876321992750671671396879977063389040636779389145114718390417371054899477903281063958706866233108086848455118572110892774106476749977476879756068951868598484319734227206273159061439845497572857373364127744205986255006828231079601217610681404272675216900813520968043112896336901842872037366200717288226889057374315382748310970171590486741046336450209708947503023304113709870405273683626092722228680137941287850400892664439743543926748900705305084748072413611299739783417620296160865587033501208367974592193747195017148150668087504457155208902497850774872306521017762343612620854662721291444889416545323937810680043238929751513062747505812208094651671444738801836575740436711178949112482414970822494533049406153691138282368585421071314380807483590620306359192789998234551281789857509128163047461953284125601199764323109785980353992842535684642378591711806148040363920512177270295150446829667280310403242492152637150700217025171635918682014477218668227650412665578483037152146638966010936787422657003886698990978569119620728164126583707499610919233618051369562090347697630929007791044319894975399854788089830857942118848361462966566533752774974921392071202652409510488056463374829260701615175540375047819297581652611924207285855893618566411487699623845292103523296658496065640817506708169547402407976627810541562428802260750038481401958726080700150777112493775138342245049946117204214870583377287852565523207872294239578105410697142715037755313424434134283975633601960595556977388931115895404941374706673342612497258459289355791148251966314857260815218310979936440416594152642372819097893890269390248131013715753353419125192658473303263961596409116941439046279890569951594781329029429274747237451250043811251522553603987799804222798321000010955492623933685654605917194622524747124691828617570582186333718045098031718200190782051382421467471393882132541465658603156631743692463041734819520584842741022164239590633263885712825871327295472388186027789354699627446322847218770640686451213375767818143465728983932887550988287783071477444773269636203770801990280553585424109906616219765949210885603791958150952940396518253904830131575941252060419118290972813401103100516594072722921903896022727044900874345115791118031639488977139420170562783866493572343144475879129233763754423036680751005093369692220534368987500186089446477088664219156729036584007724504215636569735173060245237774954092704367115526859616073875355224868446270733209272576123447368326084462586023810951231970928079725980843047759830385842414289285422377050357049928675879588758112369540514441003749907061020883829046786397552738855438495454359067888659645319236772755998984225723164879458041601144917070465831180808236891651452488566164572783570891334917347170603561763244056779835756933070853826193703847555167805080641957817060037590490450861569497916090712714501411770473437353754416070807134402500771163276567513939305097864708477775015062527714162177894670805368528752744798109945692380626014534154600204895963707450715194780717295874748317097347834830585461238588270008214211141447897224780030453536598633290330846076931900387128242574593069612264657537149988738026372358496107069488773237740512825172400189459460350897273170797700309444492132580105885343002610402356970386308247122824303961249030874528594192683704039847527449221878449728313663256323795763752023422880063743529332324882250362816876567980325096780361237563885720987528307017897503846170358086426355107537732522457512773197945414448494623468736644958096417424822442907005277150230568406197859453767706435218756166299275719878783297825497165458352658731450866994201829062400755263274629635435015168423184376064157762426289708316931063449032720028030097241160434787900050946446975271218505478843680633960436420703177143340634405498746480683708108497884268798387010927484352652486356957679946525936402394186029891400785991982911231349966587166960813747447136868640736943229707087708137093931842624283474767611379260247521630060575879316063259406559098319280543520104996278290666605252508992509130367093140700550631969956790585529764435902488925025922409411216924999409277475115055898981520848650056811498110960531683984860168750235221404814198405852740700378990589687720321444693913874360060676064226240281038452304230038269213393540068886511587143640988771762016550664632404292345442193491145737782909140366633509643992603271168991290999348698674607446475545241685673677408746987152022421265777199981112132630163591465256210750478068661923244276998450455446146330995078529781469619505969746914870198119542829048337292462854133044674144175204643470866826728564849273208488721768369477368676135493918077308562096575392588269592253830044240267641842396564805296311681016814781194224607729848850038132800994373421788136973352691496803778377758829335063498648485311648961232435342878100742408167196013707276449209206261683833917472647426311803551359308657097204241644330301454035868938301406540273894925889179756328011681719737125524609972683237443855331595651442587389971783420425852688070138713517530158646615354187814390744990547675026984963039914584619484462288204755300879088930616510966625019733960183140000068308864937054623304077473258400165825424674864467579947448767921704332157905475577225479008677537785568030940129126802514815546238029603696329574748941469573968911102109153851286321760751793340625809977608807611887695474027756032248589551006422207312738162416225637736753517020184522522329328770600881876489637519015230770514097022628184028779195799644228619350334910098489607185701938202292539043253744534885482413711968367840663947205597786397746572861591136041580929456899827695951304207307381897074272738288369102813202905508581486439796460144832378089438490030084543824395949523822787485795279548820075696210984264390991566087324977283847925020214170837283555525344541798894312533665853234175083238156599779611671582717890193508150990145391319623150804168353414681546875336443647361916071301264929110776155851837470509133845457897555110746481423435314333205687778195520744669181542101038073827340197235024150577589216073672260536060554339042249826575471650359989292343317292403620099829831148074400878832029726929868820794533171511059930894285762120752459491777642549318949224582471967585676565815252184155024900428896460269881676959418513841244959216827587732425622266144891375675525792793768872094203861416488197416580789978697800446214849812549062199355989462380987653281295634467432858962948509593091468558738415536031764363710511584881786132650836474333246183352888455683958908004588642528419334526280365598764189844508592632195315696951387662948557360607691610954838623076882802640660978491543492306597430120660314057144661300558438519602091508547018662656572491928157176610533311557868544851570151368104492869403888493344115505307759256862539283131715743260064268337342985088569015569106301467709624915785598520490495193263135583437157351286279489895434944782380143944972757046856226837670609915058812974347000547270816212840649518340884872159674338709758391025266607671586840867745492612597756783417874399390621179319492162896000032128831156318428434347732530214429454629301510996759307079774065494792531317968429503982497155396559663462161325382293393869715953649288805480141609411286679150974357723773885953063331812442214749245426702879616411230498802213409508781481560722227641533413243858315994633423807769787584221592546587302605225917538817688714744372356869810476472027835395077408904948629209505117956465112052817639754046403404912458682984982235113540982128125823061101952023949649462790048548264445795812839069946186169146152997127345915384040477593592733865343600596135144010388806152712599481158760215758123378858822994430118472602630695502718805422924147412351021548192346434994480361728077098552837257615198144232717780561883049994620964502154292306699360357951259702355761722207704961662427514345763901678863447619323926279354462099160505792627799080111727145598117710748877178842335957704071010300731611697131141831022451825748645819321824193230043653837063087868397999437374735266907346937301726819030217381111076760674373429163333819506219724942225698578300272984010681170910831639058094955561545693150960778003377099591954101062715019481661006439037686678141549114172718353225827914688911232815149274403952590023519670698741963033414343259806547658347592084520158553672237934484119375856216194822372564698000957554020197578429351884067680398908342601788834127065346406191475395991629002294878391828990974041740404993863773181144470154785864399623578248130042259599702071432623750414027055525415166975835050311859082621167386975160764061076653621234537713978655032766261831765910428529582333867206864179459859160108944279764960361213509388013312080530173921606338583271324021708551445024043714166888731791250417571621642615172754806004528094144505172020136429261596864112091899618995785254674739979099336263111364030363307064139600443259502406080493646029958359087958950722135780208272378273898737851088425668144606631915807207192190027881924665083722841535616842593908555186607849453848405332048487503125134496703085439774062177802602538771376739674643539851855370956586158118382753589000931399359218811904560162314535409145669479209948121617860106579092508881279453978910194493219432426323646714382351133326032496305816895335730335315230742007978758154735605583202628181780954794281009682020823711738020473829232170039168372643221047340599985244295872284384777855437008038965686155338527157720860115445090208308403710402380639267401938547213162905137286402735644822704976007055624679118071624121558052687882064587837108362276959816840657757128779692805485823792406767575684035328968129582157749844424074202349987274884633128587003614110165344448657282044962586175223214455229613150885949866414648580838111537034515395513718141385106880526139882238620761044028067028157279646303461401023703656466828081453623753349959541541765110249069070446528137670305209918724330803988675874053244558414924747803818397388449713367812550165317244324855588491628186865102513544052834144376074716228722701214014619177116877880980956750476464098885248049178645583469527294011957505748500080668142178530665546332814595378880301177945259764248654519616716037654671956024089024352357871790215003587320802880478568626144931314699117884776560774668772189853989554228106744493536174670384034882332278819710561738603262544623191954000255389583430945709929479054312846386538231988944834733790680653573588243011381530796050525132732973673738722032202018322375384499598766013169709349562828461100905119160284645960442859700825854519135413317071961146400750841956860711594095673412800135726125364449412004784614934851335011646224045360595011017494130334730478850519817429466756439775981847676673281789455949709213587589474338829707841186793875439664792658343688174364632769632301971736308028656800180879266484947709644727933977219422651376599539912486008195384012871842811574601193805641651678204983187313820663744709463110057773280221301933667973174350221080523924911670389250596236865444189837233687035000422751232655697449864309901081714317241795112819093055117920167156247830061182121855820378579580439692508281952445945826519828583136871113599745317369548886808713937648381269804981935445481795462457668451175000630766624439006419920059058242890687196145105876577461158632993837754477965022090753177548137210069802757442613236867868152504281706742459873891751109572046245493342370039493787580550804790572082659340995129288322231453463836811012147260710987944423287081706258562076237740174243643449450833454543573751594622891598779338251512665592724323307688602045335697233519555690474648540127773008571374735090153164814527495682646363726633494799026264599208553225789228068493427296286079580288914843030688497788884553659028069898753061022601684137160337081634027972087941162120756544686529873565328324266691402429636267080014245433128879257922673120082914747117427928711002266716264660533508116613701698547055592990475707600844478928769816168796366728823300104073731922599861612774845750166884406604340628242220639116089044000107428053993346967268528167673998308906681700789503097447918348287755893118745431252690395386211266673867738248237517418430153051698876544064327312584417488986006066301680023581720750455372507323374381496768968936281101969369562241087441100919986635004488143562353934752505411944732232054257142761714731823500455048547313883674119831382010415513743079717481633144725418529316831097541917346024704634050725671347878946767750697507195849277029832297134380915153110236199311765056403854791128273014578688957542604150471051644057328093507645889923223772154894103848234877838136600274733470495839106001022676777807869491129510491619528029225259245465371627114611342361443358887424429906672501395686739987636653089228880317302732562184407028749350925028782336096550273211742464026079134981641900238810446114439189665791554102940003221713150458698871142700535562292440026261988819857169722501683020696801452127022699729436123235728856564169491803704066096305219659252929346530793966679205896662116136852104433501924454050462201176877891585582588879543305283898145900922216823509465188500172568634610148293226347340314128079064857850577864147773704677142146921386983833794584763450846807853445255335622799724908885028656046301031806932373058239940947745427270261105509001738216466967273171557958362173575585263874464798787383213297738454194578773018677866318582054932597670028814086397804854319200214609241523301823468375322963742579048963586817306869690140201817237298175172060833553440061021788203251475887209207027277645700407974445559111294520624540908136214037624878151179559714054901082751716340631874586286015814117646843729499985656020575647179202158472548229372422978641683971964837530699013993113721625506989294677483576334638068227457164692401230448335934926950044077810355007208519856555080572552495309269237401686734436748589916921335527096971165325320210441832780744474033575181256546705720652481704590750026034652508066942721286276352850899814273860137106422673291351346704242627933085338645373102948448865576078473994567375396533324595340709920833607007347022882970160589346585208438498205825945101364938956092074358604323078017242990841595421995902131935395352358450757152764277117158629930625981637017747809421069630010901382596329897420642597595009675075180011789012250412861153946325866508934519132124228960177532563880466650495750446414513700797720949527336622469628864049175909482752445774574868099666339997267180846569005924381838751546944704383175100565917824030920678857309574783992786573186187755345947097722693896749921054281247868478639684986567519868692423860926676533671965011284185914933831200087960881187615302595335615064681673280931043932160681549856051836608918229280779012124507459929686025033137456900863637169051138579344043160872398098051877919648749788413028101869503041000881502679391200660808255542777346332188352863552197412666465223522527563048959566829670452706279715298912382302402359682802295928622478171073038143376348996324652296063958743688908426148926692506038569049711862243433144932005105601370764277128594430917028633845366876878230368189488507444168969027726353926795060625685378502392647453458745512222245443272123202333417550484946441440148297064898935815046365616451559140421596012928854310986996832334540054934242505066233833018858348756646876442043283573348626813350242909920606050888058256724755705830397420730688796276294214063684914227740611331658980298673916828307707708492420734070976319969818090652348599695301133012737516622140296634579270135178224199546398755983810421005862593312488608369336329366732847472491407962822176887215219368877834547669440892793047148571797209242251841349611039898191307071352770635746850819195030615156528648341706723286295620415582288486540561940627120666817793271788103687366295911547373336536010875072837338525648188494676722540755559441404916149236780809635794939873357732451445901157693082377996320179826713532791625502978641728398710602419851739025054688935144846398570507315625194679699246161046320679216416000195992961307884460355689157158002020026310900766206143807008330740965245322910081447343210190212379214129189513378974026100659669289362943594658694894464689063844151575041297753947489687593059529754435871883629123499231758915423352937203998522776485270947602604906832157696072950204530963917250910022009853687519554224345947811100872880965301255670675190449551104259715415115395136807353703525378227158634884824882573054339581774788245667520050057578820505725042729513111546761426281902174273199757927409103690604278216214670804737627097200190457821590944420689963937543227350685521830368187535029320837849927385235698589575206485320507425465724726062564186287098175250705523529891597645394197410427420159727684170493817459308815712891813569923682098039982342946195124845925972648821762019605563825473976358824779038479221370309266999758128808542341928534626723369742473815630359876246813249244339823999913717239355526917904693790409363468675713818603011131198036667295769276383873613591184662101564003379449507980326976290570123923147546116404118599271597862346567110098835540026118219061627420684009306764845914020225408391223761355775568615426552895255346337165734723871633072178348774093026929584939023428993677711763358369644317570723340834860815092660004554671093642761140942022305964248605301700442975991757005807927469819598408100762527176025054053046089620636861303173818885558386852876144510280462509160874874449739617094609674000744683260157848818625544805946232323658036809664870279740503078238630606799499039893962864695200852712248161483360427530898799917172777762214680466130724012043484884538205101144663996769767763591950433032615638067729437093448162207830628278980300511912923857554399914720045264961014112890137830467720070980066606719249595913539229113605739575953768741671316632406795697544876427405499397018231745750761112398957395413797120533818602475828356215389700171086885725292437279789109220694005954966606898575646599500254900744805508278321811169630589197716140012778428506977473048004805354420006313012411167513475635599647079141492443974248007350646578194326194164092255300372086303024580955637514413147118515025507622699931753995765759969472815288028127685071796874857563144937411711887489535713376055212322855791882535102881354105604083740517558682986182779240415525524408943138955205488210569302155938062776808168607150857120565055277109706345506423172440116195127498446276947011389579971399212226771532081960004926814086932232977335151315657864964470197424021970181433179244174678183625060207065680061446689358550289341008290232784961518165870712631890272415488279444043631389450982681201910517684585844367999158511266164650589694431659913866892434067648405565626301496658756114010849632528040766532799884306024358029560001734381085314764994615934931083901733115663181138763825868536819932811599389775575932303518856132589339919185287895832678557311525902530486793327623660059249921024492464291082983625082769803773762070056897868604554356710298794593208606255052954385975278628545803853405269530050061126859193254103589059214925053050868583418937884696466693293954665236666590027142385244729186083387539240376317200810205800115799102249865213368954086836785276087423999822449934071138502507444776721165820723697853266289910806412606680274347070591125055766606566880252788196352639134784333710673965037338768837131602188826625223745517907908298574277450964437977478621060519984921323115655342483941395498748672244446942101590113708055567050393441612093586026077244141198107746634060443889516236699062357068323934423459010989147699294449395864008664768653571880661162627167446023244608161177191619009884187394089815421115640640764283136116483326497730965130112335678524643548610439393691519537561694493994947093300584123701490139625998093568973868889315869380469716119782053638530513407748523706220944634778167168667370808894899874397351856618012926078161875420178527943966325395285267004701225326771950361009393407570766938791111442822215116336808274137828549006217949748913766714220743760308091528447977198609810790970842207655945532693496271528170396038027101096618460316693780869128665720819069601035414974516951482444506650257924208037423226734481272254242776786455315735695222786402570746565113441985378138903554070733306283934002360469747019470015958640554124420522651437385178689627184914587719828106182099108014498009085445529252394282925018839679270984002546302012016641135148963755616189432485071597729396432264839411092273298007290090968777549019462153766102110484946584430957822280756951558785622441877539121863498541146233212101260996169536726498210082164450015472852074104000889795507610625530879071584571742571550519247722326750881072996699438156930725334874023148763235032163821420134959056911578496664806800287203117415382938509196237512593530872729882255886707159147218253446411780729413390293290929196981108511104686005067419537133916199259406637830799888700702928773040561845156845324987872053844892243057582587625824656033889011744987242455513165780344380006196188483074747869914112494964093484376370371857241931556471352985858512218088147612229130937251751369044873661647871957720365557250283442284526854031656013595196113391120669169368053781528999104495556810145104104771448401464285599181557672732266578017398636151221885126632290855610236929774901176773540232120726582777620243364020077974723586145794095135683584654936725943887447906661610503155741258459679248589754099081324313850730544664029390330966155274575512946704917675869722132937285579575825166681437835719281773671261689750911767261340803923878119788223503903542376784090630244457934396103038779495786259659374913063707042888749712559021435547263546351881153014971673929412138067452011634783972452362204877486007817711759264505628602653727651914403895654964883484655511502960764470331243878846539497371702797936819328218054791088330241364993072135581092614373068404120597433927020810376866085028415866831090941304017156823778315308832215854426831590241439153792792560372372861537176886467304745151559771476558583337315637378007206188568483812280082788670312264793957771015165819381710285230691345045622667592975473432707235638506456856149100781409387891653652526975471111669783010844191710030649732600352430745946255578780387558869559520615709273286391946571699635399277845630401679729773438904772914379840903326592363370630153826025278720827890340622786689842342938722108237161392522944364203618399521096271640569637955609277634758356397879725786718682263754725201508325065823983734143464768134139250935633291333485033600785167573528959457557337491885761821067637140185727257667355239303914292595850726557278140488207017256458800570912232398435064544710923285416907997557547756819502881629707158642092058249226937951347266548578600490728237716213748571052578478735231036704990394718199387551146516631163461542856353635246612101608315139985505056205322829354958975439146639746521424023144657906070373584299877582820401290778700167373525097231553977264691625921623340238506083615418980904814231083980387432268152731901094118117200758846651949895806443700213386283264382163552368968014625473079968485388541736212916413478354467777008540966247083833868871862106870416142166358506268395098895940530262329364875172789952352588537055542864537730200344499934207245663965643354014056146382632181386620091223272082186155190392132591081993584157608322207819630526085885616299702466928771558910225039490564074272409399023385661027250547054522199623463712437278301048381249180487896916897591766695368310167529345927356974012624521374254912563925369268267959317282986493539484455491031349333535875589737460682656811383939538402450655660786747339872833900956298289762319479707311005788775431352422573782406359091318166562812676378800303703828111047266224337331752677023535716934956123268126970987188254422316278511430731267271343543837919186330634546064083693691698755748756320159598755787154655723167142713519657547085124371168089313707728945030182775143351282906193630029255816455903314128000225385465704127277880740706684304209643501055290455297602006463479345369750501055633072219178910707452033902792436803180325528568309979001172824430571953818732386578296347333272150105763678336064404337702630980248594928926194442880911180477657015831844811522381258131016997896929556986547050234797968275268763915450824456457053670265048932576406175714280957143126751009364736662525571879808916234103414787669008686689585331661101304686751540036625611536604453745252153687902119547329012721152354271687768380598770769951881207537494088883509693290436864473112509445499391833423361117828699284475222543267530897058593248075833943528251066878500127886800903948775305465299118316354290762511065161194553121272721266378957781388206362244979508064953750688562062505275231712276183143333538640517542825200052793934346708244505177386020253515742210644319872421559366027706518000455404604405083601760250526643743292643171408445334239395006664529949778876335058995585782433422444203633132002646963522598310552185511360359279962091322340436136694706910001649219619098257306472487627561959332651472669748928954935808973057719061432216670146967229989472750949967549887249236371143272315840153094902064185460273102782378791434642470338341983236391810205147750759014728724870393507114484281522059956023245506924193167626463033469365633352166341533550871844830649167328805211498373961671906072141074408975973179597096761590148950108117889360307366757857514861268677754713506820857670930757962656852422809435885085702344866615731925799769184361636669650758183613806351715977084915687342114165618907141121107799444807520384096660543459643383127468498721842029057576691513272883885237144082836660101129747061647091792152710807215190098849237865000859551736404146157902329768463863910933071711950764611064316176145150969742135189589251768280799685198402052255552864546674977342470309632317538156461985747784821578516775162350502109313966202030606043945485667436654763546040907731632734957004657082935091035319049512590685459872229713913557209478331974701642356015797122241077214389940931898720481715910875883476490602451059547004276173296119362730644645247808368654119527608314254864661166789019621050545076040203182115968043788659360010869991577793325296131514030651613600037510886458353981621500275034153045012796429658847256600133424721113138296470288016615585097522984199700816026709062623655514488953909557160626421153189447770409251416852514091878231179131044471844292127871155077414627433489988635049395431834982576223976028530478207390290052237916127600592456149363477861253566272859203244948130505342125026615693967923274845773833212703538897917895061714782310427524317992005331168576808226926594430305703205849350334529093598872551963086471985372960582618686203361248144565777027932837308484046844730050634687351543380549633228377874558670966689738500500126753094054073585552747826632647774294999995735134807707885199898477607575410222191637455757845603747696899057254791298526744353540120309318154639564224797953513500097634621172312073771371861592624877573478569053951320901460066497067185082375949514542789079582734880686420917389769153055647594773471927453492472767042615267661134504463140370541159015839384301856081356218888686886849189216270568035294720821144883007151505632655744706389991984885593778948527669535486124307000494593746497000415932150570195157085743649744493093303047366901859118608619389076157974531236787079077233252017618158236752235695956569627489016678849946962557683127352738124468492788451830263142738976770187589877551751076346067706375367038535520493935908817483731346257139368287711285603049652063529565354486649553493501878435272202684497815722173827752807853087726552857449859987069048722787394238374225046685070298756694998798800097947722142337022288537199658214194558405708077163444206745661996499937815609465121185595644709379084954507866244009755521222998073485529333813816004726325425864527699336675513559685733489692672663496483737446310441391176977795789713379464147607517205083063985273996203076598923968066437319252799408263490430327314920582284998827978078191145626911184966786972722532248432479389851997583391935391210099409841351641403011131606371114318561905216778839912741458800417241561861315956917103689867397244933846672198175897038477456153277406386607798568956744867588788889111750484382500138696871125292691729483526065494251406933097020717946222565843415226247891317997555839429896860308419560326809930748151533167631184849105061201143210791613917454120589380896681340180813254118754994891376047410235802650703222780222418321983821684134166790221833828495487642409051732889929439841653097910696605675805419997582874643583558221769538442396634192452795508456787488725697804262654707998725638976829804222556870857141151168618474231261002648246258437772735622216218798792212216969660797529548316180745576389153537163286586214508608921178761337661229604472412526268974910093016618081270859581729068820171225744871007754862064263801544310260351661680030093830063162897061377045702910123934988685547535527558670591285852866163969485404313691128818710369702478160822361069347972971991295018261133370472996481894049676130968127188097315970868121392677856083645359622960246277118455599592537029119670682943863717713591563129037422370034397440024092452975143198668730811908884552604495909052220873120630032504095791654045117714220942621233738640854023053646154971591873198766595885526117165535561408440572317499536016849687127415794339033105153464636058109294288618521732313340546706341170080737076778888289190229269713878398490908040768336150371686629362829907055167673137963798831266404115868270461700162544360100005807685971798593396629612091239684908677195959782061781227110220312671799545282815780096263637387752495851251739199580218704630347595991176121845494299731189627220787224941999435726996675857130430913157124397574706687223424880189736171885020164605324904421988204985406773280569624655447146185025889144706014672584626752413459937740737540975891451127295245440098665178120557480591398930444917910120446303852596282961383869149384408356892168614613707982515804878625910162188981131520064335601644088810726419244223804248734820220373250758638550212860203964946414529219326401787585941654349249643003438727751116339230931367893229674151752197886937836376591149274027074608746237770455657226687057280155335439531820217130343769160172514484147061585514601640310189469008686842697331282650943678458011313414785096985331686174602372921210410021012835535219815129505706385912164700919001047516890662367838741079040173974181636033382302808369959652573626995112006863717240868375743292206574828289466213389994759706376152051066357714433872178507836629688106796594156560650572591261209018189794581838186304314484777357287864795133948972405653956297717904877408068910578058897493255606607742058450533800731844240007640388304977050483695560113426083839296403986845654971862834196228006424841163973142852438942888219276279968575267691315653918866765091122098869039620308369618869258965367921292715783980457640207951386396917971952857064372424599429469622832706331053046750810589248674758129411107241937802622824920652013130672264011540128797823591916793491811550083254085348979152579868308870486390937512032059414695537525989259104767291854394945983432769297562972204427323828380017891165024003593745689286337842013199721151424718867875352076859430765039567987150139332025595125442208938404652515396500253992373810606642655751042866299549182946377140511874775246363137103929650321712044143883641037766579883249949853087676492726428812054299407357688979521321511554474600602952937355440734124207258191417230802112506412969022612243126752793211829383223975126937408108209790294022835615429699998504538759014031835253442512211454000572756550238161990419369906042940047697513130101054236449004299638091138367448107178976384379780294449475688807386595853746927099014159452687025508930080931783791748485679612397299465365912642136312110722637689268063921285707881024126011220023827454471418968497854183748157821336044489239377370989342400508408243911931582512167239656983019869700191935556989678679576504349999283924429941781261275992887044852366548964116594069523186458020551896426769618613229915228608859632112416790531286078237380621085293520207656855592652321836350098146361685330671202360739349027119062395739820492512233384882946524736760057219056287039846578635503503519247614669683789732213115156708987508566878094856518334278037157535978333269142910610901036713451282804158437088322558216777948317318422267115565562619325889434852077353427149615524312006036628641555326042060668462330843429088781253083354109233499613238955752145405361466675379970453582298055394582577271350204685998711400724688191349347846993762299232530284344059681867924772330204303695017880729568842363721719461820269591634020249379402994352679413894126749642876432833285888672056423745252116847380461755486949754270157624177002317110967708089885000309633283212784904387159877380996031834443614954498766892073711863389737185132397544373935828453039165620455696467077096236036168114754692152566642490234771366395396905617427019154848385185551118674547756634413886951637720453013329448013780825202722137930781108636506744443246258540841296206690923385257640764769542088636481848270258178773538118578635431559715690405992901064649471053888203176735403972328470654243057866690058839326141264299463766484096070653886376624613947875667919708789316714322000722665539631867903415192676029777366347466838993033364767179064859288227813557104855471069408435971230102052065444782536790703818649203476555396092640777843228751760645457577721768856014237933734772281341281583899184443779797105035445382761322876425567725143908965036213554371497985228003019367767955270916138730895366709651542732480191224660364024912927289794972078494027985250279949309047054965888889820237668464608487032693338153170241116661245677706443946728276708709746824508924400583829912831977942844024719371113584413634086315804817026174274010924448620403902976185978354232247685450637907843217434320921478866809838420467836055780051759855322408521417417863412795511605629914903457202252274792550221593168920722178190618087072196594983657977205430286139036667106740224872773623742344997133443407087146867404604486896086550154939656473713654821685583012348412617909137305555113042390985003576406796645516455728910995515052281189439386961842119626867215687201353011812342637695858703912679462922803940354956347231372927898646531120272897519774636633377079558425765482778162346206710173680683400810816727648492694278746974598018711451445704403289699563532048781238395583470280446789325120723982490279049402827395525968351959543711182214381662384669816561237334190858634843154417983937597053793656368008036064840197116424490157538581315223255463115603493512875445630314879340851992983207009493792574028793088783768955831016477889110079501543822586491686451027895381526387588122999536125520312132444843498323693887745084726285890435779835675646637427130505807741057077887420824975926089763865157294197243657518873107357503518473833706981931262230311634990077301455338169282171733245957213717865630484928464284539330673256120455176816249502613913211953943307551560096918405509815199007870509472277728600123568786056104997347275438540187608442869443145270513068030517526724678777739899461769343861889127821390712171552099170936233712223612692713027164875504213431516294798332537379354139679203627774280461793458921582514585170018252082428916677252897076995727696978573030064264110463110590842952731189073965796769080164605750104203946930579426523748307514783711459189370036615152207425094022412137885402203020026981510434922167134311340381699519520914315369517138524879176926374852445037717827669936567580077558816130365735485567776981415340379034767546329921907234783954555109471874929799324724870908627473974275693988030061098460277903369890367010034891966231553303657450498721361407652730065264364751756473033523208446576805452865425464965745113140265331591443687411246887224512138523298446628599772085260501019460906718183408687076747096503879273229481219141067078016125495501489532199213504974996113160323175158300538712663843655441219791609514811757049357927885773228418474731529338030662749893343594185223201698554568853884347153069875779171170088310595716400249873611848707558133578564752399904515982659274132077684537103053844841429816675101625200899595783623109055708093542251620265800193464313955908683956093430569417326390028152974560173078357035452577366307797890397127597153730883929431742110716522915693772529491597497826525242974265351380239396972947371683722754692648966026815835360095191536285483261441127948468502463450706755304006176848064514899236928770534557593975695447515962677285444814947163362047000424569123881251859678635704254169592607858008439781917935298933277029951042546537526020231992374175256385182810510264935472095116605624906712392194283606619155071552614063604746019116043346290077994341777382090151499977267670465177705910430679689405515898735600741900415638978822351589292029458037674011349197757602786830368679063719296875846436221512742978287101692711114653512481866758451764786476207034940482276072059411896210257753005851770357664384174368765230007718596535940554680992450683233475444814121813122653737422517510201571960420205915056402027452608606036048897170636662123015121747221141610492653758845774223986265142785317875851818232927893660180989273684874810324804172744458807809928512602287458007352994570755269668686588444795734760500955391158138402636060343633476899270234522410839581943367379187266384784822260673349401232510486748267448503453693068044108804855805854481746270285033751191017209333506667315146812711851643533576768511102575892214514630164509675501941470916744013421316244585798779417556168900698236208043822269480159970575194878449670547371909525656515629280789861703140010779028604487425209586959330159595639294654152420317042222017265063640942176211234647506078854965114095067933369692066112895580421430184372748669166769402397749830831131964626569324350593340901029475137573305328251287079093859828813391062813187638188407248517106964401786973157146357873574790826469941718284123066669424588327960673270654543600345320388983457592071733596334875743423393392600326038002407957280208867549776859877680103105036610987148324092298366751636770559363529470614402534426825317642191871547680650198317790013574064807677364405844834253190765062310192709593008674636032088859982290868093715242087293802350565509402214854106690252109537459710662629854447962508462719989547356333486749550425265749599055779611867994277221526513931537232908141339344394832041865883730071280239047920009103409343491343072512391387963923152441122479963365560744254533808461828375659011679280375974141631476405745672490375526531274196328650896472710677673030670220164672565275368861248662510095601995333524671460232853792837296747548703680399409467657100701038842564122312684415313742919276633020023562502186872477685551871911762930503420582717714358457063882271962028643128993512547667175939167541476134799570468466496565234525514384014517899697506553348510181348274653478096566296809653832214759474290565537790141018445727596118516444564723500328774078956126406331024427977275743922141072638039511190413813984002074603818787709989254751956930566100374192856417613373680833640617398928810992216361481039630918809931984847436769766542491712286445350084464006537374440797185828811462294163193444460244309774921017244649058821429016287574612892501227470288403670437899282096675060776288174460373238604071649644592360471123666403295754305610079216991437090998320961341706400767824828692165121196291561562708266064542562601027669706094083579572992139701634128199269932262208637019332833431447856299961474877047757360281628330781378773275640000321665339203901898324990757656406854461377037489270749916143673509680201175443786559625560257269842823329592774248352094685569364400367467824350422040244222117158047492358394958931354113876381737174403943489269797577327995890600327539827272382519429754952147359669014456998784073741433888999843767420001460947511640096291781699813393148806450152513273314075043986447830452885362654976001826162513124260562407919575659177839585250385147963227547246428948473018347931852575215052507944114686566415941278146061239495205414721760696735378179886326959831609333768131917929786813170340877261300629408926297875965456244099820409448968349681117011694550809883014954551797610525543311189129958070196582957613441195816353483536696353667752430090042610602137151725391539697434044555055615586657141163219788027112988577841941711521208984605386597286583778205614358024630037164455348843953776553917313510685759727781005166887803882642731841195408683714452396928333911178110553933156756422293369518897466138455320450580490703825411736702456134303888488240148266290678465623078960242473732460319716703835840777678418148263655715926180670377126020282677980608503599439449852872109554330032705141697410592398874206213296886151313587968013786278887780564716913650293484609324155965097309312314204708183660765548540366177989497574775847331373392961281354974411540546955776255259314953534841865556029687518605538274293673769738430710013158496346147352403988007566559063524441205160247839261459272015084350595866056111818470567288997031109331003865274127435674064525293712712477126384855471577986800187299985081034395049082986153137926453411262713903272626433002322954095457368285573535009100922961574860413643684429547702765335970110828498671641258837115394392116690958985598169111534836031601758804219448875032625587052996075947310058769959113110861032206823518318824746305990001507992408902131094635166505429013192067853908627830158920524485804758821705613573496208026413774142106261619634014680069113796030797849070895012313307724596773614309765403404150098754207118390875506087708971107454532565847624831623954740407598885098242587534914049739559356175838163815928483018068048248999384121053743382294846679524194823896355070997154737395470175431210901081498994546747208255678268460432510337871112272359192815173130083894188361355989449522366309952498607707983251949616835757967150462850994056786333964696633204114968268846556925762625041702692740774177320919213775513754024650074161452744894256886845477759190653167903128552441879732601544400480363923182764284726551804972447574962453110556158315471636659736453549040734782656236127475287000148381579434590397456023681662346493347292673845920154143234333180615655595658113371440438220091246750519364419922767830502076859369693604173227046760530187424299530151291453232937496095867894016986483850639216966911095981845562304312578413964313084740164226826435028877433106051515117373652719749672654506346341836228576250554971335983592937995297615960583079412651393087834836809485105025315296372750398807486356806197682085581002767156907635934691722169096774214039707557662054552308782870838589558708347435457397164629300638197404713159169202729158539265913025853439656621506215462886554114755272944548173831086790821726932061713720087966622097714959070639073172551230805276164455185676985783510956524170729352888870170234680525356205721347469682932439679002562291723255139621750456004608010670845362548819412517849604890824867367716218097210257994050467761218349341940155700035842187331961354958682259476161140591506559101773908180427685874756696765130812927829448219023512262679986560758361051290976075806623858460187330471412833448262925291366653665469774380096590559835705071434293760716458577701091436955914550153565306311874371662151979229639938598906805718131006967012013094114435384265820457640362769609327153550884496404879905310823673598780811925207000654519190370108600737458626660792594700775040860856544222135427529299282900764156799136716832971093961874763145312000267082898365248986135387796596322397283919969735696619181783235465148944880096755427511354540200543591771517766075014428931038181647576786626125201062742001983897439258448660361670607069515754543833235074193633013396312815407602989242783738083454943694026739154805774839705046794222090357099922572222757857994193454982753352031995755289129721680639376117301524018301106132848134921642777064456879242354202413624183629469168065222120324557171410572099890910469147711347461959242343242480992901162901189963963149247385367034443854167000478934618774143662398940178892178997628683610855631078193955588609674896194650859707825822283028028677152914384206540778019171168974179627220491833385176291395378686591095168169375790193780847430649990219153014806200427648295138963454087809992872775581818603151016548219130571584318135073281913853635329907488948840581794059504920311968483972023540975037130289325206271219571953367484982969075947470633772681803392376900035481954797826035272086193466805991503106868178851705970536757302020942056991651511232311061992399949820418132502679657797160587890842137346152229111926735329043558470231283854064938985949137460351239701930921888372474933751738427806478958636028701235842602745265938618939436393914277777900734323888191747868273829177380198602774924043848359451222143553114837253966495584234973124558784454835990630976176283738302507406757580616480571973435019155842078242125161239730134502110220326077870095935304849291107549866199485606505273592274229126675733054759828336140737926567936114589195042093928339214452557906872573588850586282628915753103491798336570522045092049104356273014187546397466682109775755650427360075541961426428044711527356717160353165645300324916365861950007870559665893873836114916235444235482846841632530050138292710793434129550888793991286588191041130355476193401588230544873489573421497210539579765433206245638134694045760748317741809930650383009650260960621521787064541845347348023325191297499460690151167374027676584514606238024868305217109538251318878236272839398816232015886482365215154960812750705378147674829893373129886482831217093342305366354626061635273071301756673845446125790247628442752044579516627008898179447307744058081949635177681298705092676771261377396826242725850775493382834992929359947478823239970328500407774066116872430773079277937325234803826245035173944811087997866082360656940272352722038651056093945437954647093971637457822273085960548494244238616732941598701809911989179891339389417604095998762401054665897776874405755258137963356024006244791018200961277881606137553086941883925556064198454158894025617218972955228544730200902169217249785723020910225633348071520016893911064622726351315047447460487889478827555307393839258002437925293528491356456406996340492336253462243927466981050353758609672578340315190012342315919760810882185295655754043063314806017297732584335881110482427387835976023795487778557164599530570055429645254880795443214955461462793123195195204885413809389127006133933434431198934012298607383723284584098585002478224300431187629655824894895479879497191700291698340998840893029732624744434603282288506030141156410289361314892999892253222911893922776891032701296803055209975167703707219909475205675648221337288984569104830611774921258446432519136496530539759603397197827189549353458067045212203631658324907407423616726355244205501905049343310030894458765312178887830793549699622881062764584704581635028513812663893600605782322859152106259042786891537739804745209227083058266731903082604194181507679182914589206534586693709643154632730802647362723705988860491944082831489676242270605459173168086477951275119224459905321382842250552795874368418561132562440564136057021611721008298938544988353896849187258372707004924148186090177360060747186021732594252668932321406282045371845212585142929161079431144968234803536477967534086383098653566373484269280467133304208208291165398235222095325630875352540539297202285542140289012830755342533833056690261678830924180036259547445165348531401837505869992707459937677594918329870412640221954880656307926026910241473046457795124808748182728787870468879986387412969744503621781893671321334036564088790350457893392489034921297489153833585511476933302635053119673139876882051690042559506056514580568682849741432857165329208466067628744964244996865182545322031189258777443282234644771181009955264056220845657434578959448860826227169172851216937986158006607596202876760897643087446147295604815277101000355407123973888800117678658151269318685830724521749990170847565844507448933979792414721959036462200140110455564589198242363701397452234007329614337861650030982256959833231376318045270509431631653355424906525986442285557900143710644852402832607054159263269511640542081552039531683701103484086550742759307494088372937709183970606808870460933888895100618923580088369041243994022250238949675083840671900717985013128581147046700034152090953368349544545284645029442101806762043459576059629493951694441581398345424736827573153977712404915583824709246619201144350863976872456323086970650435692410418331739546838853641069294652767161206687962784970705471785164163693014673916276100475123423799613436108071392882850197254417134552918262563256030785005666948323851477137671926790881611503507550526680460657999048322674528440479805244750943861600431406768548672251563701498362356911288496871490458783934684950166938982918956004974807569013362702992816320540929284283508509703474451318732515958140179977136040298456754418937883658407799343139554128683382499195301818689468946003583353262234742785301454569015869086643765249704083702989322739763186073241463870662113741101919838502525011552232700807215334875062547248903225935722243514699750428644470494690276265602951509222658296485283395552465689051333815194631240539226969756230664387629198353849904128650741943564742476465736855637994591935573980224921061593879031372004109652332209290756947226658684377900445705106866101080614076905020686404961679252094011593191077151881007334131392989220040328117500206739596334546239481046406029574108741767401612358762656338827700313873541314238133883463471616778926746512705920507855172655637473364555017499668391334396525012632487670004467332190894460929739993027529200408895658375083974444523321383612221239564381631647010489951586778074957218648870275542287728021438029961632495253030354968815784990225233293900011574986936269996030349640097924098529640964500001661045287856305157973602384586356348061656870018298790895045867787991851576176172374085555980556511979508865600144600429574771328433532470023731699588731283364858469438670477645567669799385628007461394822831727299474356632914438500769494836300229086169871003204407107396850739406520566748753826230393194504336931119382599592653377870924233716360484578958726970626529745493566984624361233858976930483034201102751167003503386032329561250281316842331494203996742749726842582180349024093460351159823700336146598009220949195097651191713881131296773462718260301560386124399217985152525428315595710597149661829915313357757259002586094546122063224542060992158524564498088186692807646433557943205043511875725058066885123672211691737610961064563302573509702787442114994390349487284478726945580081284685403177579285058770813912601183176163100668629990690836678170829904056683376428117065135813040542579806102768167180852581607597342831773408983649284228793749023405342835030197341318591186229122177207245956634803907554201038926032158430563197136571130558317103096129269151661430891553660585233997961949321870506754248552525439546460413589718970013723320144913424047881672480874149993523323457164591928952029641720331139996712129433929989829657942359475475002894776132690413701112243002691784370567489072383327350805043238953893135424692571051873812529928617380534051163367692341254423138128206379121565283644291274912849454490806185972803735399788883430880717671641077865767765424985721002412128199496410856784652985747897301491107988516889444820528447581289150108477692171687699370543999779354807057096325741344928777851114619964167724585908232759646925913436930610841490525149020943606573423504681934172458680220868840356123639557910177006674766445940937711584249348896594596504207510502601980357916315431335711755958586285526407262704226646004448355712215354504825752631653199207867094527932041384813875286140611305981109501404415149616586616299516609067075853793679774378554073083736721383529163643840315910944164971858787413993511175355206629859241183267640827558134068222134100373755671620186412653001833642514105287859716891839685922752799752785992296222036024717402886330840044035278494672131592467308271107500302145353045379324248577820307631504346179887657996092155452772678900041623601685714355022967944589120124182868259127280572050399404489968095904977871852284777035828257060471909289728769319659669980799567327748562204480572169364153442161645806489471976631276992426093831411386067851279636524683394603163909829710567987384935742299280914197479360876420355779359995761470391548978267422229664915986971520976618975018681077374835858430580568276754186417825015358395250061251338318148331011173773639166681401674223128058350492486102108077061591177595585632586830833478833300829586444302360560908609409127651304993594042222317457932290501788108075420576769384441307071107448329137776587269235429106052502443946202496145554988035239810040627563462790367982973164340018464986652956869865151331029039649978628472959550601044135990990897929029968958293733802821532126965369925588220876902199172089824760108954275148776386787273307432022566033760237954886311579779649772895522893975784255170139899789655142166925193753418984796039594623555643953894258705957029329790657057750205256282666375808813561865807777478878630248435083074483023800440953358772447619043550888695053043799513904992709055577162925320089938573076643845658022403283147036784155311421057073444194992321657861290809460700613644363465290577180471143135829787722083113980577582885767356155934742263195291541613489755753305454742744172082424277015747170772970176185535103514309715902945295901806571863696016619746616598703267683371355946332855681764764421345720105537859580863988518329114288657931927396123230790473788961979890236673287404288289105316271848512744745704940274355360606763394964747993014647667132904302666832772996363568964125135682314040047206219665972268268621251380443426841950540768283173813503435581580949554082463731264205887312431206642801166797933372336714062832425332733246429401579134336785039534667978567623129326530800383260208608975313914938070028965714353243093337098739182422008494149075559672177495799941151711658758600966224537372739834961267855512791675460063829749460998709255407712454117238249062023428396140040876167223334912557871819702960160776226572002366198799224290996514850646078084593726350158279514443901076381278402759306291686287148334801828094991405247521253136155404655509955789954770885437033427357553677706908491079088250089603619830329467189279913650915467613430135500145901339860417374483531922125428053178009977103948549422692927093126467004190123546851270304334580919736273367695288593183760678223218485181558615479097987762102936966488587053517941942326811705899226302348162511050316497780745206818848098442218337855727331360733569079076097657830037646497851175999808971796215060778223896065203421355825280004844981432683825336636162599270722755007717921192510723720126345505393284590648893708148383314172483252046855535559314927042591181698039475844479560617729507666115518242404827581852930239342605916334049380796378157849811395534073030933029862819378616751737008364673510524007248480017411122333728014479834408251288492643601885027941201576759944443959577959541395498941195757680061954257258577740931928088614530605171999421595649178734399950515752173030003894716087629819669038370571041865294650071103601360444917324153749537319916633559620996922215084363781837575953572697735615374696503247075852062113997894299730414160256410288161613594530216726059021149655369574903247933586919808873701902054479625646768694854044413314246682390797804209214948270635909219616307606117543693201206289062455144629214855352796124013878972469901918865925048055154323959893346006322595071314836422903314665021623855331617262821591508093165475884132495771509670139873929655628657710006170348289241740898325069817992594246444544247878397699845858453528356130515558508792365160230777400708614475889973176531260597674770773485841598291152069495091803693452904772293664166370438704324406862373749025404725963434238025695852078834025047411657700286008183007343502646217169412816232221093229565254904503620590622305869778519226000978240015133283284143436773915055305137576736674515848476576523442700640107440274446684756782071573592995353370745098034091101607022736922394709172788980058604585761512436892840126585894606550050301739657638061228847748364007841692024900768925011034829963997199939130987217283194629459287368866374183704699394778684776110904559163227950095797219425843201411749258571968413972810436894814455491663494931816784127524712582129625282422502207590175406372858891908588043734444506755729806162018950815498845273314261140517211540174407322328255214492311972377068940030770950623837539674357639128731057612667652025774405688641076324674601182723408971289319342899067762645140850759985493310842223163360251304379207766115727956354883580614764787989435913889318878150732961215665164204393807456548488011590348503557737240692439074684061538061311718894483689231393498668152591862425294994182240966763986107005412832162490608778589429020177166724351483303867132123821253225345632619510560014353773588839990830684460060497465666163109909009753940056302726069822044479093553492115858193299988661645919924016756875642624670380118831388391031150067989975844772669268484593980100365557754651081519928602215920971176996530548335220254206283327304199572951731538630933215502672598607178067830758063808308207787364028151447638698388913896117567472178309223914807912130177388250724737690257255268052896206251421407186185308703095922667002398815479662069097293510344937515766484448861521266249942319183222823726432602990624124716907000312754613435517532001679940021156587255260928138782718163901057927360455012902968318425224238885806819346118802584496950390146424226798731379141020899337019318472863298515309940526366793629955631643970872322672967437503603229769995438493254902751591568088278242296447752591873619453697193648401428239897719599234317211963943294291181198670734392597314724765014343781981006538378396601158884455433333009641744712029507281687306903756862351258927919818706293099915939210498562810031199706177415236165435532723537311601311241980469316651534241614119076423176572235237522821775138787322414860552457065884058447271596708064936309479400306777225165002716029117220021537072024410302450008064851708891223705805247088103133931895384517033054718380518884189900610371638546585796323056411206410608755301510898235054071626278417299437868932922404202922506371727972887940541827658595466353096943011192902959762729653839276175986781426079941291253238211310519995051400851431775047325298614038460727699797868958700914415364666132978453970292740090184270918466224419290080540655422255426717968326544235895982569421655260607534954198611506885226618683111718378233764651763806376295485849658660961900925135686210556777543400994195629186429481036759232400025504140224103842787584246963027183325531960458889226729141434444244570507770839866637560859740982660910023629908343313362162211760001552578133268146327809680523804265353537546009671992038861704595912720957465678284809586699384702095841705140262931060327548977094091117433059820506383233566851295298827175054688977358182609894373316099384235255923000186224772425654579590101471553309520664310220567638706057783103536312402817946268883170803787564559656528473810728236046525711887588556220299701222254922613611639582169613622897694578161277452608414123686269711983804915255576987687485167332189383461094754751078797790708373511473263824622141418748011772972937172326257394011893523064301659812107129881043399894122446719225731154001259843623542191740544175131209210245139979994455352586921593522960442458182947725108277719126929336449407124153681040011000125232948794592161500861626243805925918998443709990920173845970019966331366075179249066772304804463930099595096487348385387269938174295050223479599849816467104397935223203445778410951104627942497148611600932113672612205204154758722356377139616326769806957970492013030560530932482749218947167205766953808876775867990015324460435764317760891029230015029139137574138347558461118770194687224406898816545797091386338416858458977664024406700770701853023149536934770146323018120369551158227390471816594045292682787774620811478706349322537456560465686059989031746820508214277800563377936107055151810362974784550417299305462894301290797791630622424537016103499687375127596638805124375053059444009290285211149652877453440804397058844401864385333824088800847621020776482464876989475751016604331452787207441428481394379598842634296284934565933517106908540765404638188912769534965587780041856249684997971381961562586037514114685692680726512541842468852026918541111457741439345500858294071710397804119676313907181353732032829717375763373158624467425068642721847231443547038690393587285638685394686909122444615281554788211756852417730987430074631591432077118495391395119220256196352292487813244406813162781255625279639821666559584729694753616480241552689729513065345014363887466154847747563262286147409766597648312715594150873355927717317517977927880625441463142448469529917124387554390752677179676559478838464841655391960905851114571848402772567209551290536399688070022063352565995405167416269324073844162477155048306498294008574795266155706893781182259108176001227876779762035782087116105882357324032214541547353321662139636676219611875550404241872731483576557295061098109612431934119406346596712742931940933432718910678027302895758396214113899617928510854096197128937436666559681963927555118598399467329935869209542119948501953800261538173867752144157990537291869650126171316145746480805263886608464966163073842933338466603328409296218744453481410051595860976203431092753248705127524993786028490545400998911981355328412171267194703886838146316553375296050627041367283085139840913909816133042824455670625475862059946676794004635343035436187330662961026608025070144792053716025019702514770368588054198963560494302099793486143417667877278474080708218982905822656847218846917255995864805422978370081043949369994044911401081958007866677361243466008891866947522795960398130456934483555284622743443634234238915758876206419803002315231652180315817937886555418374006172882148396407963610085290912302904579211210298572993384237469137641035253852753258317901604480661469133906302808749169015389778848420473257194204467035342960441414986561475859439038061226808732725868076600193852968627659519834051191768180232327791230382174937570326617367559095272267410461246750480547692764808516525829001002373609405834353783495840362642858973005834584772388535571472121981584656380257226749357817147910102611183469259356662972726742867095906748976217859609948073567395002872422651974952376886879974838749517795152657520357384541078758835168133718124610851350389892273660245678534753651664657596018700403435299114168847472672491475272419008160183729919912816204961366033241149312567247819801949591308528039354809544216435155227257064518202360442674649653347010760537737112650077086977795780863112743398845736086483732475854601977392893403645314027405502378991191364685072804556891299530106165919478558296440323992218986694676136571557757698850329199118314343081552622921850189861817218619597759099842013368208737356719630150021968556499417315502084291057553572295673449973087693312807515921653820508228382081413720963717896759360919696837725165518157449542538166734081388716876603294218629350074418259622945101342198660049574769801727130007211135705402297746257020143151298222504995241197900795654958415474987660693550464327882820091884425382557850342073800916330403013660273078969531473782422006421484698750895684305572055703153239024435779737918528186254855743017705740365304774318502301206733107863399882736643084324990048896627644216127370554111504838414906111096810851895238399133670710869343582681091555984968493668484156450756844031899088448100980009731469042459586486855622385029620714425080986634492574895607777098168335905875567419582109437686729679189098585358499711251992378251088819127497940685662594004003238165036734540535783144782601509008593650793575930726074424002067592464269350761758999404753330020560843049648898304201191323533616689498585256771198945476345287894076679538817820116325091118316274937421304209061915771417440777449296129517243113244567367725107867768741662316362782890665840313847551601526227712320462166685085861723627437245768744171313077440237256238020933829916825773369915839387312170048370604790020908876130131645694467564940438408982781094948861645713649923014893061834619849415471431012422192188834438941216364120832366080464875757971899867299714667156292821753462670768726706672891983924960494493852617430882776485726426037491211455595666085416248080122028341908253896838477477719250290379188380046536473390695846535710494254858089928183062101612252801603054322056698097880880887429688761438891592963007733736371441762539405299703582525753059991058588083663642520332383181009831975389079292076223117750422343906422429451824126360346172456899113801247755093878234321004869126470787415648511778357491663113605339314362185609007165173147669931828191982433075856423598628744520407073484772304706378931720881544826095937124831536262468578480354280915636685754166602721900395571556430785737001486678149643809925556008551302837954186700354569155291026329002002133026709612223263370503319539662096487749445186971525270253596129451500690442868315930397236312900395714799275062247315316883536766984950883427128299410916408979486000190513742221349165020317304726878481813547751359323706656752198326071332260114472030943403808602459421905135354492650370591194878471248566133949182082658193228829838866459042698973386328949068222840111662193095978327969163012540855579793088324601263531322816361051454892595618072458869639155649358352950498129540395415177625444990634541499695626027655427740333188005893888753824093143316320665198397227540737579135048568533352301390028652007460162469532851628146335195029410060661685002129700493403390571243123493150601630795500638380822300994445600698014686429373226489797896371712589862144660642862703194597516581931775031049540592582258783724843573718347808449401819911045635978337563683651745757208175383465111031411133796883935562844753201169548162411857506184063214818954986434916243752874349784021754309168135223565702557899630926540127965278918890596723312458968999881148859582281013562399308713222958328701980496773948150541589484903582192195816653480585783932279554721226042802021120040912973001608033162347554430181046981062207963033509875260369928730291764120811407496278371156866882495839108788251489162642500510457177939119251391451341146582031247855233159665349392662769519870746468577756519688884371178219063717882539430419087778369939398151066806289790163729664947358953909279711219093558315829682526129685983212102537151526902730146518010528130910206203298408193445715259071548451257466176547500228869706481528190065854988178577155160257349517736845531829759622783234761267386470371124435861400252574224620167618964585438885067208873319522405452723974034446071665501475842175709017947961037093213642884706467886201592960869428885238291002166439671358342137122618615202687712339848601955179911013704182623631170925236345019600465515365290059222576055957412200539040367518736176182344026475045439003016322723377706834591579629317287769296108686702551445300833467457183914273000820630285251429375967175993632134915488932472263853608341236789918397267016029705616958019866946957497836204785825013168349818498053500759363075076125050889263569962278117813609056936583312218003113636543576189310311990274162800892301216663278941651911557059473205945657622808210558545020914618316430091868122017281584753323941781097396283233206068882393742204131356974484591651845126965539590321701376960170845511264132230540217819066010160827475154733370254712920907647160045274444217801731408444904331816041985666421173879811597245487157806199311819916179664850871864137823499132700567517716736309016413528252120074709779978677952359742491377019941256525667629579509999070612763020213899472174752539563910890501767310202250528638819678488529794671408929705290041440925118949514518651081147435885725386005777024207642582000803492197859984153669674219474016398940701823197390037321861565873142049611244985545569161982654981655450809049990374856691304986076661338759943607438444930736108401327928073966114214176831202535095135537254685709061595913033800836239972224761857425682917240633406843176576255038321604068872251623352360617086478825569103408743617526672629348569456791045493749636729495546220308900501763458560780438878262224353905703970537437531133557130774145504588338541316946766425013240961227823106171880056916760031340762680000266044692145664296339477023102005133171727150510383397230122308084141830252334120039135341380374039529369802570756790846348346696584179525029791433021160817251521425432207654248351238163073084741929606293155337457186406247883155183566191606834357067940333563998218278014353542049010783407034474453869838190939465738820382971061845724660755077725706041905317016393596991252064054891698606998591498381170055908287311549410025305887682722103573002191082631172417497978214524965786979365414895951250860277993177524893941866522564608608518331305767349427157031015404506524084637776355260534296724496313403172759819428455871120525963051755521924813809293508951139630110112726799238636350851711429959883110172000337082790089398777918315771205386959730216210502628419092762082191775252593069751126869258914968208949984475388844724882185099576093766664121564968719893955034936299976283669307763291938436098796069301144684166934052917584451920194988185793624290257566524810899817412823118544324439887626988503971120699182879964622205172708688343443491907168285423631154517470764714530251711773117864475219832826490622022100039144702490147124130899475148707426714565743420204797521602616080584508166435109917388329629801239992709010818278031258097794066170754887224721493385228703803914258557322818133459905340101298550239139176432535962443375722082471968814803391891866802726995313889669501309108255640679401764627039247750280069509679347271109605277188817485827973680090598609821198432065312258687296344042032539867622225008231660914907297437893140581388640100513297709889301759245534717218230443996493263519056604110581231203548027316973546268143576125684967157080500943514777012718808983217579906828367650988390916102186406206065668595258772578025811066237624183779241731691487246048624284116399316168385331800516547034404568515615782466533625997958462930847036731504490843075289150226160671138479937098251343705307570750743594105721569903880507277616334292801560178736513255526881418812754038173507560966846612239048638834024579953471117315306692340225398139161091843033414350780970108461408938014368006556714285646271580361258358192927017462877978690402677294038183548569721629403450560995266604078161303811785771589498176507216089516712810673564180791826835778225346818539723707548762167532259278623690255990574040557091872908153653040043771367654283257492389446929928739021674436169158178775246168646181531422086745779264684512763191012214952578202518778721305529619678841798049753165587737656136144826987313632646805445106502878144432924280272370358163340878674161545300047747335699053918077486972430509926015810202900974129059396013835542878768096271879202325714620426768570015004842156487877456412379140575583229671937217285393824466318369331065216128667716221971590501619112298061164279482572563927670105461719638919073934534763326527316858897070976861953689247645081821524513330039654975963592908375265533844695579316657334024859133229169443049666408095500734966846754566580064078532221535226859339445388830621778323341257299984002177845874640894736348740262475096501104424466163868548179480968946184861996062325166090758555551137964496414493717318308817623992212706239435953791485956705081031885150739568731480910974253634488289157692824784076969888268031330520884140606669650307455369396149249510673884012601943821488810833475989744909732356030490087276344139871668893079236236827682053022569351190085974996533445054321696346690194391262686439975103978120516725367183698949425442054931419992174513922790498488012604432904857477260259496239835575512194164559993677238128806100163666452435769788298547334118344874169736212597987863741586015770004464583245325939981457076757900628368692325558534430690407528877059636742278039454514303796967232748300806294623162836104699471045813566197149993337951037453353349706206931421368636264222642905711999313001900885740564738660329954915601427251713533531824624435243408124823158838345483892184835145795080111551420495729890272143918128095802021417214942877684143721375901019100921923757734208804414889017720511117990215841056688507396789850982059889861146267756835346559905273263362464066638635168604218549470819032732837081147271965021984824267002055080599680309351636507920950952004628283829153448426601084785825421268921572772395694248842446321574763119224638160414594678012420325954508681920508999018764931274024685907676131210821311901731568374483798716226457157256463047505767155450273143834507210003137640237742166587963203159488304943047470095932417520751816690270499652505053820892212150293158610296808296343526505800618674334955779963852780620218092668257885145674137362586538726441236752054200500337614595917528382627400346604781561748282212078209393420157065956945732124144844605332776232657781502566746451327753365084705310698557045416186571673739436232142273253704903198141600130981034387221659285275604755881331941736378241658616929148485835324902757568070906025962617253552115470558114056426985818963062511844961761958185389239998040269301993003080806176236466328996900983035030956998971429376837330476781596948080545367788018288467987328568370479914112188263294560766920843913234291870856064424281370144217467694553183062959131701645415223331169342881428975186744829525635858138795362702057222545986812034742400552816626769984909586705881369871824490541172429226305358146118473694776553123440590134436122749967965706276346793523406227791132889252221164490854708592065185864229339362723916426553727965496725041602003541631240180572310847324931808050391116908282959668568043943545115120448937939833291868011640340631345754771801718319705445234106691201333708429981527889942166035765498386111068669130452776875225417849579143779638093336105392292998372499415878639448613723279448226488148437247535388211074397541878241525513985505505333617568836269979778653981233674925914693109335742073047604395115522708236077639236049518993760857979508139233426808937048108119976695829665581541844984139639249203776870611974337549997942512532073389879431035461224865205167611469772427137063472305167294890256873565055887615704120249311995219681392075010972533268645511787999535673633425271815883061584311985362677294063253743823071077284111342240338797129661881221318786283482534490832191320457782889061902691416357084040551056129055103635169094347046225263396673288703815890416767447020052420526747234449832369293167238047152241185756271543553697278963655080149965946423598518549455270849416061621089397998914311088819515405206448226955897822905787180800598389557024322215933158403347212229877467575267075811775003719013528493099190051398572346789215055752346451024286591719269022432526482652312822047073616769060615488365101397248346826869853304650261754157148671549521973706921443789298647876461674516567291471313226590519211216886423284562592109566251854936974207879324674372010461222578796688548512109935325160403584903117831229480959074418270223342816519357335222697313292907520625276939183177458510804620640540074248228372828847748727359419542642594797728337831203819477894117869408396447253376584386701803230433625283734428090392010193971109029481561877622926975436061513360653781780980091861830033247896112544992518516116267467336101281766826572244621910216874617777033160631439663672401869743700028108119481184900441651507956566272977394098339051006077832754981164594478178624847104284393447152617862414065486424123479057719977548211722720293131126409930701995935950563629475015817092426146940227254110609410577022056782597704008454976852492683431023677195028957109739203642844486629065258706327915594618859741044181895859741077869036079381955632047091396247064655910281713578200836271917901298372090848341354356892751925192801102332342292287104197403093220721125700489556001035747812853080608542690152951027681866877178831320156503343434380879506385838924622223559861471124004099036181030859476676023560483479103743046074604297200820332412783120608541964492769689666005655023193830560886766258849597676598092544786130572305336046324601940933788406678307493801765118585392441311517703769362525861649160978440359914836536072137955039697140887016399324414807212255968640953007179244027764604478914115708741129588467921111400202998009199751623353589642194992076161035449188126149566508606572996256178114189062960639943453134285724854279768876908334057238102773386869163628422583055445050118250249638346644707225307437190991041901004489743874008050798880174836028880812930115585909818964563607316414002234877858683252369725384573319349934982681473865651623141278346187078179523708979473136260121495643760771065494913053896548476288046210574472316054770022891757108795755764332183221754888036647380734146361441156589179800279184556387181125633471526975261908439173834558224782964562752509501159924165415538458919026465655559101815303032637789488407195787935630894599728498986808839888144558865152150884457006300586667475160778139658072308338896696624272499349946408878778951556306192571815059524816529068726747647472145422170363580972595998933598620220381466006683841370369421815168119510677892437439909376246116801433192128180505915343957526666304613772808011085515612475071636432038514823412188424366642001991528329623878316626173428406145145646013096496020031528803150817121829292326048269683619094164555211747454392673705357054256399773702878635467760737322625764591051887443505032829105504573270836479482814886139013003872920057001754787045228219784783758637692462352046231906220180029128335535749378303242690108051950974227912807696203371557118910688545529002903110030881788135690197616940536742049207891331187562162776012803511270894568100328994074802128363521118985291269492264889729576022531260977056253736670305297688714913206131204692304454122962988337155640832934813494087967180575265117675473574147883960553234223452222006332582682178081917597896250907347305538341651631217336629280953257337143213738933609994357770966443073003169605040367016875338226606694784863135708683597840379676693783955069343902039316677862103627385373828283513275943938553868623186212834247497857932303094136932185319074420628591433757504663391811215672349294346367468841928153431363372795119793132575459752240985571545329034043292913926200048957651905184694581490349302780346153667102593440316219561089338746808308325722707339997588877102305473556328711916385436131082702049974999494941038819370058061451144318382208037408311748664911774580798214819411416800565339313745855611972965513706248461299548456037771350079644052174390135697854894376981056283008064642663940311526916794869659825016182554730861754034264737786790127375565216162549648661420232886736025343167302826726669296930755170913553617554785923443402530577243165921657599382261727537164621596447939495447643515501194957840680812565087878989167151700953922884062748014527860624486349486064082422103831708218565788789973773424731328649855274570550850218471252033983880159934093138075686291873406032141739675575858627412468469253652366876079341526253044097625241639872519426523694892873430586599594270427116318074585734526463327528694513636342491146014125880530224159397873107160592322867208068877539381034405901866727434856001829651838036699402049435235874555675339621745439431160043530883998204809645654673895962776708385493301151606377112087897828385891294817371819413820986997940707161504404810622176621228561861547801839456412253381384357586653622969851408806068237536970329317981640544206069816560656309196129573444418383788351572783443826170909805770786460340674774486918757697716078340593312230331930456987034788104104078709794453305232382649028730615528187600254755812436946428603452663444362146123171126122546731760105409742953527448752572875535557682304218184346985843089356970121217254183849277019472801874970959781671999384359186586182819990889863921236187293726820569751075449724966992877833287586402822706748938682726758209857756695981414430132870302333433566273890419910510168638770097824711008867888319298790339353189870518709743280406314006736796338303566249401384587874051720029473765499616151901492096901259386027533570731814318292475739599594130141499209849314983743442231886577924984336851355862914532400358841993254414793431059091058365032931293704406247206795531957919339461879832197917212021144260332164248475384150346839503502284502066186192881382137391810586433214314600829013613497281536193191926234232383603342851186166455379165484759156432567090146489595880316777629934995720213150124049239672403826310478078381517157440281745534330357120842748630492969858704328290990799760948196703807772608837032572970860616184966272915910689422653373147875000463647333207784825908614621103229197673815658739360433015239594591986047570816266329973959991529896008346975225456699895925400432589279766563795941280117123276088848656711257934572511902532064440199679744992688639251557391225848942927571086856444592971650025410467629881759182631672077334115392295970152219708469172148305535373332481156851519308599636678157057928284677263879848833360040458144055284644660919533906443378481553305092909258726090108467786374222328446533927717137736420766762856673931396152248086515495964484128090633828785840648627627504483009570116117776759763871380264930819516415917595493131447280387311206272139084542580564494531288078131283387562614856940123122736862686696125089075826848223819818879083038238278175304225096887402008080949332035118321264813189785369300448994408682571321757481228205036701726171152934791383029515272394943675454796410332554376673755568811574386222374446385609517361681869119792051208153039783244205637812990722705251139520282097611603308973435585465577138874489095040680517561354178947692091313819874336466016452536432340841588529343587863595533949028270929889467036252887093176143703210657071876125539054818950203931812268807332206551363237866630310225317808438716101879267279353561147948667900300026779817113198179306427143438135355458964888773683900084169829860366033357857198372613614668228567279207407242434295254421422814367660455675133264480332461476708947908947843411459637635877866149572609690310701275825723424838195276806881390207490526031606493962695448212341212932613289857006752026077840367257368496730799527813280978844056221963344508909957728951782592219221988999719669843069298359771522208233917168451477334305963151895233854383880482182995730484457853629047394440380660097532921910935792518035973748261033690945657952093281469532718257665526586338209857560485064415557696808370525114708753632529607450805416305878538841037234030080183733377594304688592168739166172810686765019756989538976365646944843491309642312322879386122743564910212023510777015724666078272917741883395438431132326746170316080899117888807784942658996971035367291576360288121167571295132734613104815083170667732870967822601492762671852370749434083834163118779954350691354290217208478114324512608115967312217859682512263086702695059098701172605017850984767289712340989226674329288440566886325858817580323732492907612364269799970154032725653405959570597728198919880306053327643837870043732346598958116254249873191810573242630488654217623787309683517589156157070147104984805537270467859348373753849330803458142502996254275391557453246333588805309108677699423888101349171781524195265546538581836961132455659970073479191604588148867856773194737668038645093807702868553088385440749397900359251084379768396836111359796574188745764268167772897443675331975681391568784971424969142096159886796526607428388521224813241672208768593377098380264096220212886219456710362879747413423773455733645722591350662762244265253386277856515079466115218337105918516125519877220350817271688507311527075577540077611765166247737998894926949460583632067215980732158679663441456090865409112345958972516084574922435290985688490773053030501777393512727663040060736188023745259626054569478406106547725606280575584187215794411611228159451764110099912494048932031894962032795088404069301063172331397794234954087844631046581627460382711304665805437390435916524823741085470526465884773941759223066763463964368439908858615936187588152300120271917586993855679153879921781140203213373560760720091804233309532659518480027183086784382256990676277781376035789899613902620378534654355953215470340842718127686401682941529455036318035073158011493385139595629301882749827931667951035372960046035927206198017300857619319116036843764799583091642207238763367957981880625214391736570889871150649939495168979823079158521738146658840722317877861001353426769581105864140420850563540550790159243303371063864748138605198488573580315196776057741826857730669443944798189335467011638042284150540004384232260204582985869423997517069248323322208089377979259195792475591044417898541082276037475474814955167145846299805165294004244371102569005219048005630644869789178227295801897449065139114397169257351235680379278877617315806197892854136159115970262637874503643311320401813178139987792705884576559505611663716376857152531307492155819162157088801376126346448389513450754396876529956642780663511344773807442644061780563687079754149201116245242295205064309492007069551253817416932005108678389478955343462824412759804845256395860826243571739651685790805330198952136143674748716809846682238783223299021407217558071833699910840419413133398310858832289133805462410232272623638203110663436229153567624686909261677386006025652497055060464389617030848472432481859745097199500105601936723292780165694162150711732054218621029002634736556778022732278390288640062601049753144314181476798785099442237048931197019226531925547595038485905759334503244778553862150974279672985435939967780016211410231704670646506556789684195205948454415951593356951515161994112952586524654889018574439408632619810546508204255313405977291350046518085048307588698941849264342645275279377754429986394739578487064962704541852580023989557738154384811108554898116364782834242625106942067546852028262579685762105350325927186547159115737253049708080711387853077004366072077453320518551844443157322649926514876757423159670249233538606832373980780771205564962207154680329103883918809385401327350539501010356055536624780961324827879512362080071128512511908108692867326358115340541233807211716416128984288061645133586149022285798524517138114896216718177589268654985239425550171863134073064843052944770157048956278992946805404349085192474638852322144193460773715777061111700069574872772081302693407384061005688645604723768093863020406863714239069870249196455347218575292828068964960658924008584123201339384133744067310297043360030376186310522693938517805058367120076228626309105874369887252712932167056209911086404670737046729727263056177210796408285311302916780472891311081020117338199166130193766307969137888356629025989537152508575604158785008798349593395081145149704919629931259861983888870771905948330381764068385332932246150212874058335201121715733415303922289694435562563586314240608942528538481103537293286488662281454109429055001428022235482962602241856888125180572185308395022010352897761022479538530381603835613835000517255360614829389614678611886413075765082686048562816031172385260093145405786218980804287455799441608006861951366618074320981290174584980421991660230834553889521282619341186778567385776224525321409605364064222715692912519935228509847971838480390243026866297999508426670237777549751114990915063208296821318800290318331971679541827910822415744566656942004613904849829744808066102646830002531764433236119987286307517122253970618459390527354142164595920740484935256251152895052717061872373041801911117362124944782326218856671859018122908906485187944949455525259503688277655770149781086827128898214676393789585282530920584590274127854687514011433815540882382285639967622037566479879595042511657317781689588098784830806715301201788984893053996982446197331773821502223788720035158154845272762083621252705891412975438790005526871362374335515328398905715394603268633616140444295823630999645041903972791469974743334695702921894550012336079592634553878944082883902267223715382794234008898737855054779117573749744720972106703219781589333356889942682099389842869914597464262534015691072848071882894894152941615408290181947586719046184208064570458591578713056103238376880860042910074648525432665467807219954966675755971696163260783157201364485020709007081232487958798441184956345086859361999104462572137255370680636563650374117647769074123987809403704064964251706502555617811176687909923205151515193114544912836160887808914502174210997515315037396040863664282040805958173475405902354631859931589148273367742530673367668456347772106093498443963245115714289922229697210458632706033758635317166008841514361150988215321690487456459565317411919425961798391479253029655742973860024350582601837581457780713552668690984218014875881909978706327884145594693177270233530979263522759429769242451443069126919187352281466612225105944628470715538369379796261692058608615026885045363483135329494736287977084595688272711311196454140008624797284966446267514106432433082521958006532934051728752203237278143709796645928772618620431063546767161165475983603227497134657185906205992486710914221595947593296702780984473922060186542195736413474018847705963573770344329460502336039886441935112440577468039240361440308743756261495729881515877389853117603137086780379697907559587660926347498643650908150728998328675506923969261137498569978856331661292772598138359881251518723559812420806298527248156858679020090986129151839649190662211294354637383362157397235669452818961034838060219512041198259032050308518250135014332621756995797276894322434035454643962959651143377220421815842319462578917447970523705232953771066597650831876182213475526151422601192235221027451434904348908415562463712997567651662578334612088864837500821335808461361030968017045068398369203840744275566192162708397518816532957490002857610460892876705597465545764863908531555516958028599779198897451992540068204140632036806757661118200479324136388748904127415927630562189144767790531502445675226276699611588001832494896460251533872443853133205832402077834971489461964930382884421064125923857645942644506580846807820505612617139030556023043693613465092792199342791314170415731169319355429782512754057916213172613188368443577302098808153449220368518434137930418703731527641158973651093949289105485768498732200495077109975108914489086797371114283922768841916658783182243431872317977812999861290548712348528443603142772570208492603067596087303220094786014486654648435371679857762180314479701542347476615664417258018372178066409517697372805782372729107026979099709376460570798225734779354764152510672247438732296436233708112488957400451552557740594170666369591467374607978244113718837922444922852943954823577842199971297887713776201313845751305738133731255168653011161759896822623322429614181434518613424769820790402657588319024265680846959193373658419464570242031478875604678214244645899791746737692631514555469427382892282198188893905007743629846371375318975488565239545180892152624101404607938167625476051401558776031727045359817246699289288319197112593736219423516125482640897174753834242476804612987803354184321121760160598126671411702407330182452314696116903082674299862711742864010340125551478776019259633513617682045991214677704775112998781547200091859700111926563759117500036409727262632947566956045314469914829349680893090812010767572187721528061586989681088096188629474119564578270500128911513478779093384627846948425567315095486006897400715535010203971046987912594650284523529778953008628401966556360490877330709308246181794001268429851827844588386124759265965838552276262654678891237974229509010650635844855472367358071055357890121527387946804635198109428079266373300593966540290777636033523281876556973097336651186242415583227622153904654491223525926699310527646388412231119259872922429747267587936159724549774898137811529044785871846673609265655238600743762010263772713217643074228420713015302681294516545688877058714000442564635125201863692033409683325071889304135140067314491866411142598488431670756321395094111193579125601928688746894858084316353154892996463398507090689876635884250466500089628153616552402496690143806656318134302773561165762816851894415508570932608070922354866571476430231577097210493418514689768513905141649333026024884884061813923643463350040106785981616795790885829198007696658734408130916863314105221177674998747695323326618602066204550108491281255800482904930609232322987009659761928668655261023613354535577149100988793692664031216264818084292842686417260405036672277047163978489071442453045913235711918887300761453067270208502288851943635612230924708718606062361719514041896273269254222394561130963219337808853508552134485581430846645567325474038831299661610245498708025400483920855892943921902102629391875508290139711048791324704334489197644716348533500419653692933932791795456682423296751228940314091656500372676281157245558219355727165483187238052549332601483667201601830404090892759032168357199680390243930530202602180774398213638988084302304643086593503891928637204752845915180735180849900884048545901179052570122297243417543932714434368814061669870039553403678899710802697020513245036846751027990367813923319258076009324234650408030278895957236188596714967329490865181775502801005536163312256011904105070820047484027693553832192224505172294698013050284364479130006826113895920249393665591743465299635642483172599901980779846308769126950021060053240048920659350341657913691561592352584609830369576035339545040473338844855311233062384026615575755170074573717316173079664430178191628598384992693524864902675493075806199193233531248356642794976645731781033765502509483408887742921417258504997152337601316070758018793557079490920681773546336248878943653987243982534793524646155679256326260214579470488830589922304325169692348951184149659036425082832203820450068143141975362468323561567311096108202000749498748249482088918402438497634928757126098813608514697139660175098674718479382137874170468078814127245119369594848807059788680979112358904189116077150108917094628781920807015918570528615858148628480903440895294581399731498003900511362463400013785250523937840051728522857859090939892921420615448419525206905895582080155682359886111802549081209555103208358002257118814155334582278649767775526907802050557650379254100023835672833105906726207504844658937533653992301197382347395782372227182595678970683712228064789165243498859594723417221219737980141994042744909546416734289868470116825044658358456411038964144003006854207409593273159881557909689992568855243585741739030338989815988512404480038531123557303596990340424243069180991384822361705572019967615423132792106203222776303442003064062862473937845531659518929531620491643256965685196404109751510628622903905900621338827897753619348410530102576893254514925346700042687445079496505522581903258413779674460830735072203288197102849452606465264507434455672886682859056057550663864450225189337764707077388736184016359317382793094980067255788586757392011495325647644829711040454854557242733876162260597672096868709459169106539568042249872210162584718526605966359413375006207284973899765928643826010067264417253222653802501364889607577028786250471262623057854657798898670864070341336708263564163150260172696297729104143684821561863465593861632936944607606975533439520451753703712350664028302825693220816420836853803554303646985366167624147104874712039143751209573798070748569882171116718040075991374550480473196364534928418788127436048871619366407639607666051721363873053033353280471581082032378843547722623229477494803136531349589320584321420385054207616943169438233251760714300235084669236542502147928091828264915344908290353289837365247614138160488833460303687963048414819876649131386741958675138270061799721967240266813761348074252555239320768559135642198764768134830040268264068153173776849465323283985382971374898064231504181938556641153562171819283395216186971835020618729432189995940950265343239077995961901033063688486926192752757460919677884438020155618965846994538422572003285196817647616939178567632865215188190611512982345604097490195906722399525250205282949402873222359063944973935250664664520820154084047704290863658066251219158254727512918538484965353796184241199297281373082532705405116321708307468060753200284454030869878800302212072507085638976446631831766714253050645014283964481553338894823230871993693534200296608530562556112413771560747425062383277307716445065473305981161975534931004427992790346746020320356059760315416480824937228956960127893218541369442522491110054146572537905813854126522115908461796127692623777490078654325098651039176951419923133893769669980126364669676381788759683458240732512492690838019793353920975078579121811067692368140821416659286496739851734305122939038073856932970877360745073102894045643759679354949380775655711028298480629281522012413062873336617033968628368205875090820797313510698619763649244911319520574546230959653229802517926346523342999423333928942348709198721751884057218280954503860778174074203821866622099769340974412410067464030852120672518110696597949649438684833787241747589169568464108793394018715703253215328141471531978268462715394768911731958727910574847456225459029032724243292351246514596963367491915477608369085348675415136666229930438120596178928884868231873348941481998508239681340627769528950918892997661084285750195985539361905475802960703044526601197534680265942979280242208402962124267660521459485836557989887851916379210214678225799749114976381553372076476466720485219462243890848352744230039644759929331773581467019298199416038032924489784838213715680489137864284990112703527915095734167666845855390215413732057948914320184669267069440145871455669261775887073174877887812949699911656182773249724377071874563883213328406750022026265554693566345200218763464520973559492378554300854477374232239529761017538235546469000499810017992489560266870309401571759455716820947615219640904986841745540481470053782298065610730357911695777434337980993850585652886556929053374129739955959399833492800532797775691672297255794727891877749460348568065042497820742741177044842599332766934135663700834039224295071660052400661367605252073076349759413991334740682101833746306454316104303666724055180473634410754474832436819902303370539667124898090499005374389228641189134710060040269632353440586018960294677673386732884400432450360670288816909603569161003520227057627050103954244587944559399156342907438877515202897955979800289500718901886400703385013093335747666242541404055736191050482481862544809871563552610921362848286820338119665604368176815405350042408519904749840499754305374641872586901817367679601464550393196374787508319517855142144508795911502038817093547196727147498069132577560414690312235161052622506437160858520589676142381411233099052303025944863718011860397936543407722460367288110217539785361142879384753675135518133820134865512687681368383549255438804052305880422570066994926242517820303754382307976235983231765752312784754937581374480331839486420950189732762847758745658347703283181239183502782981463289903251714230114918142983712851638887432328014931850344456080026902943466982542351672631580148907927951548559521693169753845848487017047611258461925060775980346426726870490599266174114708797827506919389046447894830866217879189544262713899569024024091159608628698085834215284789870861935630691259749665890079185134476226940207548611360188159186537046713979235831747474288107687964382055015720694027550478959169049151922711944804620888358359160668831314336912877944547047380373407448767175469159644484771365290552529679852994383722224248731031807593591478700632474083593085667620885435845080024710719607113029188576508898615024388707796264709167404607666826899451522235608379702548928231669282982833214134218878842865960666649060706776691897189913907772952950162444970344979524609815477180747639590538044521462774523447851241736698939476275574656401330323619504597212994719246522188239755417876032289537358383371890077716186393834892010198752352785856605788117034890080258689554981698035168584895867095380493391587575969967635735309974274674964460855241295401753269951209496160495746161650553615249511460882593115899866909093805394058708114034900704734252769777578184744088309224429502422819202446980712919088301800090948166571935505719075996193772875043386988057791926939275302280343246919782930349577248006165978758149711425132683767871059455930247086545231218083651280806204085343877436716687639319653077767117897281847416052244014633185698596555835688797782501509648127716693573308111873903865677712725295987323067312589881861352126965913019864771036741976914453037119728944780248922853406215392819059215386748834198153783021374518947413711893875504301500652952557324878864362755485430927681185541369968653610157543530573883767374055401503389724835948649217683047952630116715304115134819071358471269279787801077644434487513841559440524147519717285655968646950864952680329956891268020573378998052196339906242938418569222316894698716737117903655538275166025640708746730649869849931846953905985270380830976306554228327757813428024030757394458495070866592964909007581966609282534422313388283850343029342219534473760623794737886624793046507341274760199264140775001062684245057316666162996530607182923256957352823498100517210527468660624795264009583238939618353290380953299890872568494444927916302670959511974650642654429129522623022543136647824562550108292661320240246010268981915638096797703641413579904308458306497559249577739056884136252461452496983001988176464694116551071659847942958865080467527511285490495334283370259710152429990273555501628427258506605315412948997832663172904348033887783021379170363265396546035321067255546783049638590672648487497962654853551941475899182888621629631543564664948657581395965255395692653104534913369238126635374449772122122135113856192250695417501038574169266394299294101323923535378065423510281926093236974175037075296035034819145551783986339863464573875065335621428099820572655632604612590651793513460255749835750028172730327317670999791473310354108577904967657678082247464992366208734364819778260550858755232419070850202347886953915967562023129190179182555489050680618601050367420835443717237531498866787655789151551727781572695926768397658467442398449105563625694114702418068411301709201543689415831392747610640029584617320709890369886655582765538932856364616661314357867365741971747210449700912185963579321415478052654906413472125727138366935774014151155618149857188339721083471338762394952539890574069555610380719365658358171128623941171161244338693988100135030058363545772679478828766229334857425035720626737180667954564763323206397783322570201225719722619507134297161570338982482407236880349666845526205498619713789947343366254844646138749304862998341838435965137875908304870144349663660463246251252947453535328227031755587755737426498381923318198587338617579689543583312246328214773269209722095477865940229690438078748163994867228135384992968938287683025431694298257308966056233844837362493528383278935729447995329544530357039033433372362914060306634499180400252068515762358675897788478894475400053949579899975822349252282604233407521068435876440023018202840274645314473393325367285393258432437313009326349681113161213584282231612164716816626900870503618043448399779301529152078154836833667287119596060929476486783808949643611278686352982949770184265744317132566028767707478713428207706396052819684052223921695593378034455766545910060681539812944854203331203643358712382857418670293294440616858143925792860609577809797239240369222430280630095695432823721375829900133068948278868639683789054514066641234221684985517853816899744346044671063936698759719052782330723584012310476390936207797668414473169946866072986971496145733013904661050645502358139111344268939619367201985369429909911027155507178438343937785880853127651639801624754532829930947445776461043004248232587405793813675943595110241123663608706708912777823350885026109824113755473457311923955357558713360925488481068678874750667272197634690787317325677004937560534503582970862162323111425857992490320677083182069258864205527483442764696776166452887581950053880412390058938735090067455695214283336316366274710227442108051941278013783872271334668639373416394627891709316221064805624319332563682690304203811190047864741847311843310087880359343097227292018647174364113776003966194235516820037615092026676092441839048203407239148218191844961648718432168302019233501100544858909125759498056641521976624749341914953429916565264636371098278250876518600923293008008049247247916345435840777650629426999284485327022131360814105578567924876662279212551052891863704234963851588091004327584313978653543136987279362066399615288459258277665442666308958506679086753185830242601042437719540407449445243086222791015120504853909743541985502794352739933781693227847196453736684084551669417802342917283450766910830386111915294737439277741066385835746996005069135406761212608716347218941145834802519322773635316643524906697208185399769492405736435465151906032711339350656971850950839534779484641410524732695036519186007821793256004271786966200867368267506288745958409768134966147047772500617473685582087683232280142139295181132839069178969571433123780060771713254256360464735087057289725533429723701862804035715597371554933064052073932756473031249579800036383468000100570274597475598699223880622525273259633917417069017204189049440479741832517514260705281116797985997058714962688705558339021905911245013773300923941454309572764281306267625907627450681421310878075160829674310803883099475947021663812076008080230846758724385781484238646839779541382042512279161086508250810286268116687499419327512087886846029479505896333571936042394814483860813315855423020098707342459178118877699073157415157145171839971753787339023738589890714638607396590331036976540643871276598042594299230523231676076205957028197836615156347858518011241499517462079659686143844619452040654783053545236573894721133393005553139871131767693959531735235999474915755954545609914906085410889742933047240234562111457267438160391006963011001993286425895455146211445377245393750567497079752783171318643219262221740730717500706222432382628292637456731585322427743651354589347677944091150170721601471365449551193970057154716313271728684866968256208667342042049488867244997536674563430744623694957485278968378396175190594306924447040837952465976885701563107085002832644154341474620528315725086079935360474266634008569351197257452560353388749269493528060187039943701905091435997228458206001013471277091536629062426304605111990879751512758149418093862881003495506538905360170391501280505473155344462703426049033843409974245178599782002279924205297083179526813303832284026262561094762877910749291368623432707172685965816005538327915825290288514726663073624543746069617932769231462222120574211153200599400232777917522001945365751056851323869160238934634913373545591006942669220523588048163576388321416627013378755130870076824483473731115148177458106298378278764886059840427212182927671659054266023164302008049179585447988892722454109737399070587352407271321981281955437408595708556908928657020075979324638370217682190777406218564805616813992884241450603649051692984867817101316934416240028839201973664016266205045366397835128783468596191717634947932609952262761162261866823969332301369485390943002607839784073080013929591228454335256170020187499995089500510538360201423947642138220197993880372393580666473975343897456529227838545048548003560131785119022614983513210653118899911184807784924523054131268645128800158062971502200475690431427648708372195602249958953653380499331220896075044266073620060244149718720301363948482264466166672204379589283865111298599704744548002012367863436448715061766121103238019948625203742918080420817574308432924354992803973065175259255217910076328830361579050214891729794825869766488969513668222457749756107780558691915286259036928467148822645998065172214788533932350436875991174003881168009465362246126780840550229516032420311082852679248254313979192895913601433537754174448652977230639301125788318419233820457990405920532476964467669074614585064156539670769382838974923845026826323992431859084452537888667500151626653365236951977326530821201036901449558514325164115411756775848440842162837192017701303475119990197298636032513205358757352966160168419200604783982147861764459725367494975015281551102954465218082201841706508221236792673611906972004966108063576566277537273665766848070672120237653513322460530316189985135999053060971554734149453471188898430288367827923664096962738539025918678878711501412605644181053037820860151521887121854107960208883444478823770885256232056472497974941653105404110661416967616664918189944335503160261627696969487147953269884800708852647458728714165684798289987979801066159660176312703916042507958266806792357917261568193838743739358741991373595700601653430144903872452122341719428624101514528351596082032526292424965378548289398032877237458720553623253396009875210477578563771048401648933314614670554239422662010155224345124590607264150215416438775060769469938416711269806566952435863390973966320115973103684798211558210813601352058931823073733243342542683845599544459943287835637204579844737809654795559779048944158488297138631890205756203025196572334659894248043950237126004980520027149682130509753677356191866813724436551618806793766876829873530200419763215531885912686723923605180434689561561900663085592800138755963247853467779973063330993939146580696185370502409304089042930162540225624396073484967796213643417391598045121466065151084041971845856512887677005795430856024750957019228364771543301796182506337422099319415992670609122821437914434720750106746745147071703768775286359998927989688408562758209356852374586368331968826097557004305427938354570555096624126105669590375624773338257444963473215180243749854762465946148257178339491645429314972164561313810861682889543007862903782332635612092466451399449477832516805056187562696810800363229581294922799005236050923165852373760727990196849069310027610240816054895736669017686134344345819332706612663356839426832760293064353368727829213305524025751626358736159828395733314052418792592351711801201097139098059222849281056485239908907502009306041986641060367227122322093700912660063344017158840138814415306458822577857457609089708069049845151340201988762804086460591936518577306510523666708284388564676295964546372275317276183358559017729395274056198625567425994817477528700662163259823397520251898330791667338659940956371612157880722718279632416172508435991536916661159822533576593329903993084261881893324870160513350140651108024697285772677912245141290452231747434965768844558153668963239062233922076699959037555543196690421970092472390820991188056237454445041646998221943175949696520010743783195393339502211275237272599068184134852194071976793405931151936239792604113608772045701471846886569911395598645483895341594442132780910735218318027953705820069728205739147375513640715870848345404789663653147407587514409996775388347962478179803542897831252726942841479863613147771295071497932415929404671216471092214724274811792497843352984299350104095032445405510737446838055675419815974064367559839222193787905698333612247188910449746595135001275398123744892795834021921025004317796476854252551780661224395383473365435399854788209993934152198426203471758454300796478872175123496501621131598828843633113713735382703525311563449098658367464385550048960417570293519427182855447236655070304292855644707629092983345429713530708761998250899921866385819495180011179798567216140984311373009557677662913534713559295423056056631456560293379108736876339506927550746324058014868394037789768972718443231479619916128745653404416232490233102785737362145997360516511338067237213233494533784248392897493574855360856852208691790755827974597931122828080204791931409813456037745499549006603784318394634334433146282391703896548382425900765121444256719473891076510052842637749580620090526015223117202741291807963889546268009175357610514982336662643801063926898452765840675964103363136855573290852404286604033098290922310377642696526608423228831855551682534654863710022193602147442611089812894066554400963404719541904795964378129107913422171437276093225257101770304128709372945418569582519631209468398835666568585051315930915592033779097192713837769206397754208465737258517533779259509670458579438922713065434910462541151951791576652793699529288499197599198494588409368710443207760696399564997019781292641288063670012722916155505405276928483355222716141560556013682629831186488617953630586466769235144338027722722169689206565872996460045871426996654253015321586802462878328336214779694651462096726192167562320421007623628296001100279139388608416757106037175476856301853976782393021538207532754936037572776094047926491575932439136449512158544332500724614070572434790930477332066464122802241386924035964489806701602529871636064489104619650235161033087581072769742816546372104838054753198621366154053014096283344337770017894457501506639509987610039672824997872697546121005069138133878627536657941948016979028348208404414604486624846418435162139844580777837225301685561670962834340729463283431735083881339122990977081184870924790103524327009484599439519079605007183932684477421018043528576481094213808530061966184677994247031138884959201416236236531828681725526086260951832549872619420530881664157764646885075414232889452228429285348334817577809769911750070033253928576567928810908244928495047977211327225161234314533878158199046762711949852842020454647171617064293323144344388446026697353180476844061615337825009802493450977769204952204768165293445668443999328680523967471833664591514535442243493760454083784942427360790572392383592517077844695124054884765624040093863981768063239587124528767529954860941146386821586018697601118605702700772881771052196063732923380915483687939040584905774262864454983117937752764694276548364179434757569669621201685579104693848430645538242577579395665222425195639439007209082161408156383187239948053969777789370852332048539880353590717083454436974960602838438814265534267200668009321909613109054623297374249908497157543652589630769445999767944814297820227058567926936165131180448565293323011151493382142960917816226079579160460081957743717534833309759456054313487968967571515863520482578138898530282840146500748156083968319973399681866346839893878395403654007865824312604075832914545018960233497358210946532284059878165080763259726277983119505130553271092903252544707051697559082480302357985773842566123044614749864036808482568250660727764824574112857522957309528507684506974857885259454449551539730018173424981380978513861149496262638999561181108722100339496195246014861684169724536474396054111762052769237170470075152481944094673081731725424544150753412059644797614391055343718745827649331075181698363864393863638707539788389835199909053929684841913910081050153303242923032560704869877865349242092351091331694998357460576777684331690322308824511245108562750862085920973113859205155502078049344259051449017000372271540815332130863831327407467653009556330657650661840662213064655762117702382475469487118977001879695423009329967065977983292362346069332373054143824679799363781225859114502620234754635336600890337276358634617545609089950455111179059339717104606596231680151087371346982641208515196204826750959381356997014565867112479927688923298954951014674755857778120970240295538229012200109012900548780705158929215580409969813678436639260045601043420939868714708843725711360783916796700592956470688587181200392145123221800157218631291204462138685593833511297487334789515569193093004186102050849713744816224421323147205993422573369133352592172723362837887258561093887925807585253084868962564448081220225155731391377787679826919456460808164877216739618333603042842113112857169316059252080215792616635321667539419748892102513701880537915274640154988698487131876067825911263900256887811032106142368025426612407958879533116599727169047092474480756403280368419231570025753936400665408664291885645619662727000274215483195619643861313459164713453100769899010626216413955987010284375188226389531702828529147673676666778366486865438409220574012849412708322342131206962130169418134081152426134903909655163578686562465322620719226338579251953027706783620284988302196029959611722707420258428070177824870609118303058093817952396941965309677019407164218949020119603753546617782183349713471157590124193295802167741374113680208262491226261496888762620132251601337993129697919517158058138242980256976111903682849686088322600492859737470057269563703792694106728759397736048955873733750242864955811612389362380068353405922182402620170655974360021022663389294883162012324866156449411307736370486623748528467511775411361157725388374072160516029334859908616938248622432740716226005941093083234497132470491458387295032287786765570393683111707036648274705789252082907311278867583923444058174953945370211729356302860556850670936598935367580447971546902208646212987547776160857096903881495407678892713288153097506371851101561619839975450236296057234145835812293070755672496978921073746912342290548508270126403312029010681070349247261850870635812588189449896625448106321353418333543557861863634652281504628564898028234265865220628157374486449083350024211795586834105198542899172522123684856492333661914877304260381270218513351074191179069644790772141154227814413721056103726718528778661994699064631382794308700225354386411459356665732850204283611786952755732434875972654095909156954030989878025619955031487320564637491308033705438513338368731798050756774081338446709129706209194891859107667013911210560514028943708122944527500149866735283346765248899949792235831667957469991235927096318561116914837786485695642843502354316059245129712853975193826948831916807835218083596320410027422954527884290811260697311912257021132473917789114719461619541426157007850271245576579479134555291429311939800719444730057489021542605714633884968949123873663465728548629687135451302138983014210064579415136221948225377507111019159336223846894642653844960352868107330842546224397919037083706916540968502167966451925878973740206179955003521851732574743991290465413659893464921998277188348920322572642122186441284562023247631012789566756310610123596750753201194741541794186536723936490280324119361995667888786312290298117276627229775612214457724844319951685924071503933623738160487191937611758060697088648143804631501974202388746150521458424661246528874875344463042911226469316960875645788743036679037967249899587522286576336950830857561110832100424750593644423186905617550543816264519113035972887429017797392684740613569490121842965148250890285845327151469887357795870937067456938229800524943945331964083433438229732446823677469385216902226330164588915838736397565951645606610019587418676518317420811719385439948572404006023102627014563079547140593208528985795760233537908795394181022220109311272012617509216334267062012109025330103940122985049487579596994349748946432866575525959047644187448515668180351606368499453396560348427899635808435036868228586213897005789885545140366984282635212833471056699667044528099214744598487406244642004289969145879225392109866315074569856055294650504451447155327988973988531757299962677892130059257325065086598158584910567329459200659156019993662883813251274942173788312184940638265107347473864553685413048448466549317740377436712695648085767382497288865849120983853150925396035589871461637784520927104017948370691451430441290092207102610663416729220896440643556731140833525960764431780489951409477353522148738737815305888518996014525981371280924088244373531224738749038673479775269106362717446089200477727799722881517895920472722650364014124465322308119899578247417078146195744659305145339712488281626129293056275151574493530493315470365261547304995925638105905210059433916037630446643793158815821170927801983205398892321111758130486481915633646711422478407882761920370151255982992995329330079437686924142203202020307112065645034058628612304750829672217836185219047350537535152094004644292359080496816640255414505865550110954481424727517568357218445558233618009280640162817691194600195200286853753209617000898891432630587744619000461767535027468098784560447632768716603955833298234375882793937156604145340012447341202625404191186700900210941500446103022568928985201381433532182061269936769282489195758621991236241607953905513200670796633826427345988458231719760470138977983806663495044209452948653186861014069592116181679514576392521244521559841727616990782070468754999806837396938802361605661005621442956438991614793515600817677432310744009248827792079123335712515439597652149765912161390913212458380304585348805441448900258241500232779114284037679420450225581860181244033520272792433531038322801021608440864351116178435084190961866554796679911572841789976298028554874498563640937749151554494243491237642545494169406125459381055748819737437677837838571748901435403692515215881462114731764842758411561934644027362226643961851404677980529243087942925283151964284325877970296148781456575591683374505653543303722698071113198774226904331825081552576544717135559299159575916583760507024603815604033601252606313831707000984653864618908302277082070342062424677149744829820973849618966376604695040325932716845721729502392840893564661252924210244153128958589564712189069430522346739586417206006686557588233139740871300261069370503636428721764018983640419342274253984175007555276606214565735209955138106790146188205408214450465688783060531673428448892100424487090114477424366461045768067398116302133411829563368375736996451110555279241184858223246642420224212968317902381064902813880991705198929620994404410761251834183507727898829044412234716057024151453020060897504050393368815782430684976132775260539853052432009760237498102789749810074581478645202485315787602900894929727608919426456705424229679914508935247979633217646402826850292683854725856443542912707305157229556819514969960239965960788172476373952624019991706449301516329047135690932969094556822986201217814420166259155968437388613827779073009990568093354244327770836590511637531816142926099544302883928002918484392154681573466311352424867070638897374571714764301496828204433872557204774381503445825845269577576100035192017011214481097478710585672361936195055260808633467556307224163755631244034663946105562581204692277682672419370610597620626725973881194454944826064716000842168566793309106899711961713227948036321568588127986760503842831954965571505075143304048577729592195153394137969261498562475461272679529300733819968879598080836477594016949213173482165166249639246333552167580736509845505928805267560971236802736424908293225251353345805859607294259290321753976188301163743449686764443169790396664476772170988180606203368308322164182578058669219095036584624247043900882213667253565379624508953002670851984893045163071433498598090835376463775169796171670572150508846313014710463930136882513609686370592147303547349936184530824588083179370877755361461435235602056299709842604900994229735780523933111534730767786192146152127577361706820879221156864057681471793675554974088231146014283225939744553466421827642501618688297341915132411272119678372763968671140750071906381244429292495492503059377181727525002972939782459863274817255655868173181845532483605461216938050051671133316390145528521832282415276507988931609107371124376576528939569284396413222727886170659064930196515321876724925201833178775670166901200593388123213305812422582117027694036904657445047373101209427043759752604564031099528848222628419459775906109140516286862989204091858771715160686724732443371270011144855177766659205944327299000436642588427261562732743111609105096152881789457327313491505728474140790802237441093847388730062530983061096154227151994374123836024607626072406815876394143888516314766147360907306543955819152104747448589730321041385028238640507034004546454784160555536771959266293891373025419879272775695548905770522817418825332856122598745570650423152761300153347020113308531882202582448506083288741538449072650594116998928033169089001661687533854439252891806989333205848525664340325245615096993804941550382915913195494846955914706602589083756100199820653327152191065792985605124903741080057015349642894519378244089662759265036707869042798606079116298864440322311251379159370178242587883819766848346606207358458131433873521034926782251066274031598805447630853116953311943119978480904272733178881955576848198774466384509699457158924043374774045572245712223086041598041289609937968781020047331209734440115016167078432180082531840949295013700354844541857244770400184648544026345840371419965691588173235716942409809051960075557602771598745705562187997056771638396233612543436033566426251658765897513202011224206171975278068976502142788272657103053031295535174831031192984638162818761810926732618955519788784978440295764150687608254323468876066412132886997264354344708196764350555045777310719722737342078588733353095978504095102749183260713362388790004259858687799839974835226469875942645172667919520673586229354203280243702514437041801167943077682767188573066523791797144992314542213717151234429425800203500172486872380394742360147233961508017493294254896531881504374452780003587179509257448452090583009013739002751935509110328153451248452892937856927994877541415927666816682501512712580252695830201519828599134628696773591738135110924108493066750682933510825025449731799836131830552782415497717432229830875914109114108462418358219701979826063539575775293091664007084604113850948040412200868635837625372152155109881712221169106212918478149534220031361372991444823246283641875049031945330833508838562320380510204952238511550598125807191232971012846466954647572948889709690399917275375498397609941922838142166382610092530557279603825119205316186570123651181841431593154327992855527732713193169634331893659093754718205385570653013070432990630395670840084589976834239936687451259598956666031206885372845769302800805495580841575442384227310539124620557143077589808199155216077462381683309635198811512708842909773818945877915279300247484323152455864425273887418024708677085076308984951925368448296918796458589887825292214936800387091658263337037843349311139169736786124626010208627640575474906285623503213218301151928748968321579049975152190454187487175512002011671217690856768809505166606593701367848261815706867333083823643901286394492465333641479317751177612390187147612800690456087490977211978476619272729273625299508250183075781267412392568657728807508153399300523370074138747005426653718051166908052699081710985289334795853398069381566307873591105195376702254498138057757192667032284995370327374378808533205438690912108936967104900359754466371916911540280824022153682459897299135554706337108685750354326850611592971580824082091720168819057980568839271630166536180995780769215874094580037421362207739343936301120736963228363948847300835214815865717303556806929315294618364223210289973943787161432539696733054534597100044300188741090752577947591335332653444560964679847401633942819002450629367107333390185235124024806182155586808802219604876836053570590740357027068274503593125437174617773991553559101622803034298855151218911476473543114896401463114636733479337768577795180957943040524892681558732465527805767175683209988748413186429238477324525151938675640337973613365626606768533511494847420084687412304168931333824177574262958523847042236188583264387944429258069544240867019447159745309303248982682489890122127725831787062708884168971206349737729016487871698687539179381565208748750926589084294776717393546101875246000902771075463379448574358608994509851981067638856070816798531129357494424668464739128116772748638260574684402552070013838255681343756566325428030979907913883841425213091283197937606583283489165884478996181163238915704730429394970018766804969160397001832691730422121301672867690606630258074903203725027350355192180573910088884763391113961061362782534636724973841660503624948451944812496379466444773126506437077077397349638107642174165323887315143910533619212437988547521785167014594749826604112278536322673416866017917100945257539351219005965560781979832489528918361444251017232231309954498594853537279606881413889501785257341583343356332215889299767604054287473108793421295278670665316746670876208916737053375445298995198363596067606351459491686691094306401593073058559773448148462821220489152576485200484289110990323564063768415121049306973246281115197662832542613934689044556914882130057538854598622036471509733513376272558583921974872208872896494609307404851151590162390490821654266936708682004243405243336004676426253084460140406200187542099103971894671061866103124204935384896208808735066913393188030233804399266451964262439194366020532251238641364341787672182569084908919460411654391146559474941333113744279314286253286460725437810130396703079009360639640239506303200857749824413425769402436677509082298509474823915900359017500175466083088638338991435637128664617342121112058695301272035460308641253712376145044117092171604428103018400531414453755715382000196804820050602177295876003522234444432601676668036871496394203663924615602400170366169011456382687056093472637874584885425688316913171670352664264423502008100778807906714776136073804130406926043189450216993953910657257333101218871744879105858171577746942614335298737204149789389596862596258612437692143187948055529298774341753174488967425272527097841915175615791865928184731464755873894786592092486065016585179301464589348481048857812269613378256083980613234976067250510561823380200597668743635537551215721086726633518283280156521511206296834163366272845079129110840167724692214967358010204782498867801606664186444837421229320296035189339445336770581885961741769711134551434360158276938415693108517531600061519064184235204629241522968346475080799851901028039427277797373889784980017650435145999899402585396881233185732505656452113596697671779894953557845047890166484372307179726575715821388310219395468538272410305376060311251855809280844135197838697891678633929401992151202893559436101200199068998254193155639896213362974248964383527143529882849658469017620370521739013106157009180588889569421895901841593561671027629155128068839728515084207073485868317142289574676412025494057263076445727783924658471748010761805248938317607369062966174634325653692206732651353697145610697072349717786490473997728971712873950784607351418481886850987716663172427358342500972550846911409760989792244979002361229607222225937008910850809827883917194016002749343777513004841203363288086396707538523232300314359127925053388881604018531491917909969731112926478373123398447815944562247439864272557673717764965849624848401772802596467657340266533231220772163924867445695562283210260363563295504812036330348575636809622146919649695014390246966461381388794163470225706506642992279363867969973992646842092424171438963760657383733333996380409895202100360971731205064723569524420663444133055687400977383100557848855272277780313054048526485954935996395145331862862127267214325276051527720499620955470006360388399038192610726405966305639203428695952425065494264483973300562871471312342180877436235902965290798966011097158350721615157783068669666657302234062805319892019684635028932133456960072046755365735746561396600630887782011290268943232546431619752289861900585486866874419994452650339863489866441486073342659587198924041366234613449340382409698356779031648114949106723571447482028844791118418734064307272640280594334662279421172359530314376770594246517100523766312183219564708529593668077052039845349900852113807924250903978635571762385173370224757281022615441199516770411974745359596812916157462454998184339517131798195649885876292264490436158067204877253247228512781482399192852814456550013191882581514278344217332216112402989671995010778857869326861616961611141013969191284108721523650533601538532744070515361690025127266734285573247425023957612556445238412832406634116389140438501472866226157311650486445939008420774179264578749094626638342279856067438719048850576118102292644115933880609780815137020707841352018725953223109278003750049558324180672655053577130411068229086592560058959910447375181452178430660256456734399958842457253868198149015355360580336585182723311202424439015310062846953860967920282781159765311348994911880614773589966604155402076259005335374785119588383469032670537645287872223293580200360079095806813212010162358930069932899651717287345478682868540497906624269209163584375339626593690264310233754111577691540941995090145323248869406035357666983891135784194034276999788462129416103692304020503235560743929192724448954663464186581932675609488696716648275474126029818843262189338775109100990961544250771657696688319488111212022622342130201073910643701523495542728320882094072181888605164719080753345882232545893757425297596959213972383806691749191126799459359501744592198320583128154334716611513844041476653419013989553732214161623151552482411673632175186344138037406613750716368733015876363791454614103557071079158017452295285397143314105641655069655147949620302943925176933123873562049046963911582733326609222511357925547578278031684374362125297622676523168128944132259595243981464040802414518888807838761375797639948827331443405719924528604375298111817965455140016172639337788340537432877646557981217679594590786519403790629714271948576295849523690095834961269871823393495108439925540440159016226103392469032891489812677490462047187215437297172592404234629501307576627193767309191924625939868525829553947001829355192914386449251223707285378325784773409856318569338814724564692680089588240243099005206143653510807137083864559469045564520065698304249334633245418358745307755629846732363599833717398130941553532414534200369055685417235166022745521351004754288789303981484235701578808035254600639347546716940715612580420841862669047804274869493903691825841006363096867365771364662218213426854577202650981840864249068151171544286853300391162152377549671844208401417221861763662741313744600017241768731974909791398882921828628236811611069384585611859100810823624971615439931958767197843736265011107993592760888963260596689366376278120319264409231701988442650825165954600673227911614073048427112214676962108903926452168490159762827107359243413645662776567708031958483768894505167072795932233236292253766381655825947515050279099942813644766164252245153791778081462044747711996281397803209656182291917080439999082170872374156312482317789139832951462779909991376273905683820956939978320685801991851035945805331420705802308632416299200125670266972524211966141828680945247284991617273845348060178120625623977888093458927307776966675792957337468228581769310138351005688234025507518649454634403646743597557604927394190766899720203230815862466458467459316050461733050545638653846330409807410190707165931333809907886485732113958594935404392953892821498649810505989627103614095803044307730783645640121629795336147758768271232231862301992611301006098379274645072758059612216567095432045040063117954164023478156438317971758580659737373916569475515777151469274690463129573249253060146862892781976232181339177112590979431190842101468651444431596328336938299265517092791593792636503387345462637930436010259372869413230529113345904684228632405902621053437331874928100289338950533139930150841943756460599897000835964252263026180540597592043996969824274686621963157354610626563689194231047847732775589922075719960078084343964464742550430793290771614979370532711397347633657570759402898663987633105606773615212717746332179347441625081073490373953442760371283775833300932549791752991157531685480192640780083468207106050206860994793707252083797901935126438527979014499397531352997153770806596464924226104234023023852827697208909108871537205173694558457767037235253733756039138370274416998536223559357349368841350392827632861734133877011893204785808154420725602466816134773235619057415902195835527249057752722750086138040040411993371066827440032664604459093853059313261612039406539671243757765241530190588151997759381608515123556588619677502837677256718022892623764291323139926866455528840134496952931001818018394561541394805302184851640228772932848617752454491945497698679804166472835081228864928248029398941789435558625124005379732589393185868292248502659165544250398791029448362779826598155846302215052806948163482310551875259728837584674806706111634717913597711088235944334760391409929553640228761652547849115347952019913213007079892798953374554840578236862555611281741318419931460290906238539340650110828548069012801632184089578186822898868202300568004412411825139985365637206707403452112433593964139368933953160312536000102659693232755975279280519616396355491287737964756755102613291476950534218782666308038617932409642280814996371718696209363539342466132869622825031689676127368356990509132255502145381475207406551323003185389449841015660933727913276547750182247622129835076292276605239648842636500730851788237769677295286771033701358069313867799378101598474536990642403420327442116534354763727170453037990388482233318009145714739417709039002310719294393854933567122147748619440685670386280653934294746062308978048787477167445614299099458615298684677892158807413076236812722838849646868285045566536050079742534732826926270831000010208334694886585528066444745581810434872473020047350578693925381806851656835286974390498279681333314795010995455535044407163370133486088762575733848893371735112092369455630813927706356133427079675352189402894457554992563389954975430766962658079766830169944195216895540778276276431138201649687096181318243702718249210555376289747850553573967718778839869204779641259903658483744210228145765951048907426520595073566034357448203481506724674977248789991121141283796944424081262931807933310129921492546012254788926713122396956373619970729813130505506384891712747171790714004902862230852137816087197742743184040143751489276339556494770028282381883698120952715911951114525864543031774208675480629755520197448852040967743809895050533756148325723276627953672717140506561870358313454466998868644883014338454183728824531042900408817739791475338062003545719357794294874064275380832188383692410868801992387796961937491161152596733658503858643810809768455771167169352256428138085051366676107397286446495257939326705874257587839874085567211296043702905211849204026491743460064757605720527919717239537001922210820527133204020209616538612123360736964730337389618737058476819381595591868744760339514297171778927382814105746652538635680089609162483524770971864875152317932359754543665049754954105043197330813618232965554382127189335476422775056011828365738286441118103500124730099431559065034846381282160907322857580543296286153299106810120248885785414012416239929262830429793974236977622402496012415064486902823207167518710319173897793005855594016164191567710730150818379664630624285908509228250531648049487046251017460799193596184038684731435219295321800688044583243072921843015866619680235884178225460950773316347091118477720320210696332627014070081777456573289743056453713685371073866467451948428107380756689937466381842686214624335213514185445122168847836340117279800632770754285797558578796487047725386883556077122412371897905583270994720991916264433301706799283176950380599342303633311398864312628715772764727701688844806889953962994897897008685005019455568069520514515841855196231290713367402635795149476322847205117688615894545571613305861632832317538323419575303668858056323607752652466806591450768736344018929176410929740938735664434092467581566805154693658231243186768792845320714174555906337239572491049182073060140300254877553261454734773242417415012435757500274410247838933406975504539736622032690816628264391583130663236375168938146727887686720342160834124375891808820891034701106626148910024089531604399772221997151747312828916739908393268837748442683828417941826950388603638738269937612242620684436060101990956446298245776287975108409690664557067419279970867111856520957510829691141263430658106442682483079572972246364809478912194617117825450194782882697733749145780460075929747229211577232021165465913317725318417117095227944057922847843547325853566040975213924424096146555343305872674875096875246387590121519021898180252843711761067894520489951759871085662187204636405358901294912174386419474972430873479917175018367181023071518756923779171058176034848326527439328195180540710155471443531098563387821218853148571325100714384960118716992202082901456693854693746153692235142425435217699468162387903167803138450223976356214274081973520796564089867578861919585904789020371641276499696767114486619415131143432259307172318394747594756067757104524683681353797011317043863889645937963452964116786168317500013728310815082823125012466393893549788639463297404108680124025084689950374383631077425189792933823280979570908442174713332767965131139233131274489369425190990424800234683559691592595316522934262242771735561814730266193281625496990870503405825344668721643334851127229082860711111161870005465345612687730741743029356524766240204480286234868880801456487297040152974433866279018493662325077055442589320918989065346074892849167424513369481475870207131312585844516923142430077878055265022283190791120937688365877352694837365728772175881206633412558315588356935709708448777678567196706895069848934291978696801075971971888523652144986539559221886395408303901319134777282000157274490659004935594323919840392498804931240580827532546501281749731533405529539892084111713095948989633001945486099843326895009527290637099606767418684191421072081101222854907932331481526509411871726816157391845404030961347690807115039707540293594106742481299609166798530106944002632312560219108962118671286318213249337532697324269836606179312467852718686694559399736344430893370299028268051792419965055037283070028982622474916050303029055476671631549701261847414987121735732500148841483353566234518780914309831211155708688419905912112245047595692103665153104448486585121198640690455237222422935885528793458351181074296663367182985080779349485066887882546587582929592487920241650026003465080864914974309942461118746563290749677065147921426389285886012399836945144536709384000990224577664131718071122493577685318852206205964447797058396933038039645918548497466788698489014166138832147949056772352677125887471290006958600466730070190382953763816649852557843500754721763335832558924232087130498291494966113748861410022158591454351247466776542284253633399778403159805821767970790191578613908803430302402781420768282324012272311093689476762410163628000836850425080135901673093938029786361902622235366660775982761304823028373373035105111639173687930071330293855840441008705896311670195624266413501854809407027025797006755963529184429757661487263435724699985885601005202900007338531738957183139069714641540353839404040699323361717873182934884408743349468436236790880808395308369523729203346460064139939044433323231804581892676932135360632714886656759168394510364175618850751073195718764684050882023427432345892743240419945629515640455805245812233866838121501940447909773308394526304689445950372236411973698437457082083025724134569117351481431307502595668080886750644386868836724768136549120633887679861784030080488841693220148156386092037902792468583341011731703590619925310930613624097530246645461535816284277536998166196072828116044903900839812250214696934372653206300804829016626849327095782189094220218525953206913702560154995154776208421889992310518236178347736545155537519373281969504416009044832481044446682277836691230139003475524763891111803759444468133990029062423216134176209582835970128776018525315992061920040526536607904827900250577032255724025090408590604450240820260540291488305801300168434275809401875589791385783344831222982123825083121060532453149713537722910801912627525400303812198245187942034186665612340907172783086822980944400260681974256188462690045549851674495695488519120589036628159213732975090403591841183599204957808441686863828585056734263708385257020805370468130728529676077203555853779472450734954314704696310376659257968908450998674789467477487602929697239213211352580731767868686241058740480114437702167355461886438852466875941132125037538124902141681933407532157215728739169373317292612126515244617120412325180764624278938535974776196169127872232435642424668652367807247476936044854375054902038320860041699826956747713947154612322694512837274992550505358087334805206616688510054739101778646702088868906273698533375686641977961898215365611793816430739865264390121145363688236204089734231448986005493140824519541207378752717571168155126906277562205991522300697378493118344084778878929116748433837634621008993669583095816735282237456019572171471566215260584354207613469390812267967636787483310733660847875433299054801310223751746578010384794440992114521948830085743177694010855107522471861657478686912156994231306986204004104969269401917944760474517267701240060864588350877704347226297272361145986827005622887700308317658621930645080493360230315755150883233002478389548834138001937261301241787725491518095334659465189124345590938239708109041796891874495058074300673679600680019526970411247198944867591380651245226028700717467996834260981395134891706970768921491568214322469620964094000576378501093527342739195165627509566422419265266266942974576061241890671317717271591733408447350616821132326952417493469754735330802078029326084276008231898621701464089667860852944656773535187280869546200396601498300600446820315287099444471720186973443849911113496650505224375009584089302767549337994898592729241757213483292861905545387207838425084056127706081180669127880186206806763779051862287300203590173817482138354447307312917235188711016093124089835964535364887511736724988118668257746933751736651456360132713978218616514664774839605060155479642959293265114339221570401802101157944871762639421066745943689265979625588025254685235337032658555760642859068561734857984641881981288041851944737159559827835721335625363509650010514488148506892851574129932062170286153936743386240027922290112911641839746196323639139695200003813414306497371082211693290274898447690931087628924788166412110401969471093058757694982027035721360411844866250696834626632607877679964528987391942642506146726338289372591126858163788050996257102660924113799115913973203673237028265670276441894693730262259663200924107442446283744173492127589042090185454058261171538137832238119483104971956289007222359597113278772274205839505377531993873120091183487164564826706994984187305571076413214624521522247582395491800645154483795575084528595785165723924555097710454908599185349805467630062627581943089565500314411740453173982357151469818379983561350025253594295035484738508249746250743992014616846718372198886676766948884909323562799180682004836329605444573618697385443833095163037209553631151812653680428583375504334933490031023167419545606076021718557280037460786700778834409450473839697003094664978596712432784979867512511281836482173357850859335572503634731275399957739149747403823708087017171573702095461020442785947450259015661564297314948135827898305935119176139404496257109440958781082117386609018397956384555896110964641968294977878839279693468636374963847978946866003665118377454982276020951633682496722012029346347555301451035355431530705623055313711588798051110325751071109489183021913935101344663717324586237229709561759698487221743107005112345491260819148807027236095328418991450993391599694622570394440822185169504935030818229940000078632858757827255818225321775150231310634754691967752645780333181808106290271890731279428410461572209661743624690288174934423907953332607257531111761707080763076950130524884137653278906068501901035885973862574756107077789305956756604564313269444499760881801387031244678705004272356458082843346359407879238531354887855253811278631378026033163713736959206277871957373039190868835394111635049664445022258308029860225926551172253855406163515799971775588401472048360993687640013066249678041909261304300377783561529175590581594119659431359687523488830694970702815573578746152068133207058753596796836471521327888063052427032483549331129813052586914024644827040628149281110016907305913867971715149139357209896606640592287179562774485681358672529013083782294867319103643552660061354503325780862617388000315325545122663247193575120690046288904225559796353131798393017486509070659895334458479606702663661026735785969806813752612269068825046057384844555171633741057353223386680959761690942081418245826865143425060879050312870904756676427618004064347249396435635566158100513155606239162790591109364632954893071342805430990576392709407610890814110322858427311990733260208340616915356469736437953473982882322199603090151852089562080928866653159006939772257239418244775745960869568880844015758587253606817628676796446212825198787846031320642270229903073388776940705818692327351664742149608602162029612746468712086667909208093096097630640888542623640096377721557729209231919673433923492752533197171589386937297205039301253494482162805738929292841005515761923971939210851592773126513433898365451400504547562187059520703702130077707597076573613888454900838604399014632470718252176085823856759590008066106067989649806729235553115692820941614014122216250827865355199091607790226636810014722579034902917383380507735709300645972074014394439209800746802474591222061665759872649182379742120752070135817869257126347156295406811629132797483020147609166890643295035183955670679245636444606299264706296096401851645287841436643790411477486342869188468028142570896803320530024144764836797706820097927210575064057869877099424106319163506463641366864660662579295446885312984808428442816837909391481624948176389180567183965469944132559556875714536416642411932588957601308985633034870109041612189883829143936011695716115733372900515840335958680475631615766107190483331100963075450878608833501538081560216312832335900102552926465918582604123795320496535996504129239133972937575162380357090709493016205278035044692593625080005783803404074266917114097018573890741161055557327079963348731870408280759237120510721014728985140321246190776940030055408770087745507785554676923818588368351308653882441496855576282845441077669491365349683808908231893295641199733165776320404121906918097092738277162941136179640641370728178987190063868320452144036095838636853127362655816301993562962943537979549053718309916696442879283294507116822967677330400650563729244783176917768761175969279941387109217295842517716488336992564648108788009273218646534760008340508937200091351669515905012651348559553634588948320208563485054482196543585787759420109381344735499724283735254164888730378439454953291954985898037364893618013783043949258216254020642948083183882893666428056716311159303187016807883048822118145989664318960946126431588571406580569329927437139980154153485769042694697564599795612394377297078606427825916992163848469654318511536836445524421473959394839198556188033440135093870813969237492061856372367860461595428255635564182713266742048568835204911417481013948775393131811386486429984000850198206939015488337241681303705019806377209202326780038296822624572906273818010690033080642558156089798737348574843518420617591493893163591771645366082270501326388768728124853124569758554446454394495309844724776233948033966088369486672784952192519300764309551508390335911650498357040597524304526625522597979289129012082263240089138895085658489351479135007751569328703336194241826342570587450686632635607967339091826763325774401132768538497716047010252744110281579658329088756507319619111134320066211107296252514644399417680492830018480634763918665955960069381535126549415203503722745985931795320451914388238455161749820327427907308084293863221432341272687149043218298443975758407302624900094293099809349675394703889746341544616398025847080976241963053492980501260149852272632509736707209131803806076956177051121353466210609736868383133903948627282102283583713458603525814109618640142792188864322886612474056983113842985685447425777319251264579423970065620264769797109874182966352630103068512323142336188619917622459309733050170820215793636335807295887981990616928748711553263358338566078770100645683008190765999654530352501114117744678025570586980227163330297745640533476703424796378188756898797396828688585871677901260679328483941433650691206914519186759451307798532454351558599119773819047844730266344613939690851967819366103046785738796455381055697036768986187022954974346703105886345897850097368156442425812976074314792371921286694238426844931244800245052572944556473797000098541246740993139482415644047073234092239522077899774986218506337438936997032847081731372206337375869554917606195319020886235234409640741380703331792534280769560719246441143468057505840623404774446358194661315014062448877986290737254337428858220053540798438221387058809992053076371854337337187627913326337126001975520096009972028977462680035399793269158600397663019588060927956212462839261518817969573405907081691351746779239536294162626568614159920941929742765206711863008195684402073630657253349002445838746727569970783800299424996321037793150371683391796592537637649395591311270172783339921435216137991813395320211846198848499227445093047015626189171640546196536160940783946604654829216187555128634092041041327928451734459864632334429769365852317743300453569170470872556655061648255468319363574790823586608440401306152847668839081232371472895501260369982373046871992577673874647527908011318471365637177430688994728182500279886106187917198247915295833216756776106306175638346814122081195402807921709887271881211831296168493414585673328995813955593543860944090401369081074877258878145331903940934935357098755646224289936699268943537261062687189129378237920342422037094492573980279908901222030012073751831709020086142528835689771519556159742806364689220633192903313664020885865054034069141782200009129297468678185463460878025741604495149377197076301154952249838005268170758626529197660851061694337359850802738564478685707727524467963549393823112964253917204473043113461783725060742677835736580641608612439338917441314123840475376780384239467717422274973147776046691341283275705639343552759798439449329551664306970013585934405253575668750089470845074948359768879741985843265476521917139642750032726602356886782758877666044101237718555785215368934220989707581221493104037505578825252016900593801791073415775234285055701465381849628714870369222041523041179330436816094080085436578490610803153411380910661477172219330915784672343145839352597317587314826988895764420639745071972373083065313493743220823866072142450399905294672943609003733368284936254590121325361290969436877597166820809609336968688378235059410930850007924467610339198274290196337940435159709202089994701459590633098099739646351003189598637245423084899643579281558265180421508153261577431795795649497587204413298410697949334567012463551379578592798048744694813967961619366638704320687457877971075599313849539080354558609439935218533438192734890333825420369955525807511723502978388906650646602218175902127293203442239565277886791124878355014330456906201865611218440321986614130593190237186622413885999116511323028004174688238871602478884558272550684350050724293215318173455646691395209939054440689435756036900436203626486170933036482071024582026932805659471137023776984917304695316332294577251585775804282914350037750035593874744927376564259677899543999756207521523124889914374583296335554037786519416896802701866712079660712321019905768324144442020682238371353800665059152292776535645916988885762211902863187857903678083822838710965805176749005415443295296914809747346640815822844332225120859639790532177993378747082026355446338379576981445986218761100077022198709421614103196080579126866602685375299539096036888151455132033372087397904173574944616108302625353246677443061190468391803569972263162414965909164933688901602189313716490841879195016039349942629976043759911562493780904951623296392238914803599155526151265657263215397878310339227983342513412784810748015328438010415024302160038830876975772049470860861582606600266130252914316288818634761663401527125590499593557723781211120192206981094984637507069527652613494083376108920598100136402956015071115438647598969185788859596905298636134963757285950412260763557057306118256917700103659265744848545514079415309079436305755792731253834224971971411468429281751233827152178444557392054028453278425232645356713947164224286064846851712911310823344113670211975817673028542749273145694554423034983149396986564356993641551636144505045244237608230625464010675532803844384190096777048816653299623534771095020966615275742096519103592810504813881615384525177399167715693411293269503103572935764231207743621101403382120023039544591546970617703096143878606173830767015845958077097127878810170544515881321781169895233631489789524231349163217607889191815373711446940044941469662067087792203859484136729726606801843008063785508377775894975282536271291377939048746635452103241536678185634148302589442572725992107793995319013795773848452390903953793234999706863341963881766168268992418205861130269456163793414187980359298622439448753888817183311792044003051558738958541714820303357509962577005589287300638175068415746767202082057271324454050994046927461324468488137326213606237704513635302519681282527858101476556285202255239396629009587505212975142938513192913049134315847892356152987599194697256269089821226062127321066585211840597448952512651618705432742437672645975610583021898306699949586923094781748553074889468225489714702493282135752181447777772176696753065571462892025765655843209566045707783041165856946064737979939226000495898535941259291532072583195951815368034147676067287175467137106243598890336979321441183801249413159565590864011082102297392811187249824303978780545900481196807595724722136666620254185231858181011881936323415755280626264160753777029786745129915022544194090441182675141291549871986959478635453281101274489850073267052053234963618810290264465050272478475321946507103821223785238295647509693462745881624499047832077352280451094291155643876168757215202469021248453782625252915113282262081859784931864508434120171588119477258872084744853582249936152747577780601943102263480085978696773250838109793267686501714811376855218606688960233111472591792760211554384304822765192729975035674819542127997365813088528704524824953309214849616513514594928721413009850484034842615311652395369527706212633344431518077684591934659970947854142464341579620887006170564816475831222768901299835568321160977476451420569943837416992616731240706688315723702431807928368308033667404490653140488725965423867381007099594081163819525186331189754876013168047828706330816856043314126597738208091714145964130963261806046169616278878819644264556778310641057969413283509154546091299033897160480016416462773967259142281412760719028855870970390702935141256293820181608703625186218722493732078265921392850306746747606919391618985163601520308350033908961646254895613928226469633970723489999355522570545360670293398774681264025307574651689633844619607628659915749980800961179607372655372488196393540544518278724170182307176264662316354153337151406090929365338270557616806178760164983808807289212886784671365454932295809563305544947280978571509202501978461040062101863003589463536543067722576761875298041005847887710842297652647204963718823569516211742175482753884076289634939619517604521214778028973517641765430620974691192192241169994064326677762367947014577358052916065495297098958240230460877058755256145144913227001098078103599917361350091210017496581567057847602418057063896351586704433729862284105840966193098061071514215080489168124519291919834344807468169058914021957476493024480532799101186426132990744847297399520345221031689037878024610635522957479709782701818757441553694828916278519838800331254231961599344549198934591477742233633167363253233607384757910558713056651452519161842586501569335594186210119238553715055767146962043996453947135522578787823319701142444893863341102443140706637023758435075465282678782473811330360589148639849476095413012770475019474410669041164522155379163048296687656195743426016231899080137108910372433090755943907387438246117905751377917558720872292685594205111978543277513690360849448182633788303047038584209437864969862491001730047653555819426620736180960356608408303813810469532174771974599907810849102721763895282070128139163364914295376268377633820132805403986414948782292413161084849222926721381568742646788608193171346794570996050571707768171120904897638153992895377466444862332372695001434910159844435483064403786992554952066386638460888243001831036577110409227696069065205200404363545402727643454010745245347838795853464289302644588427554595025202328573425688037666126208814238988213134177488453953526312866559750294085440752747481072784245238409949306347986050526760066261372991526546732582841610705950288443185559734633284530602619972737497304913914107015845391425252026434788439846883227765084475586392901192862893442940463575359123756497579887371678577190423698951783850466825157612773207309529210416202511486511663769395531563525642715966471294721715688279819428913692348530727140379008467762990317641901652626622151987550735385748149867046417147586734552893099273829522573867711630514295770423056735934185000634711464464860007319878740079601531479441325831161197042432858113354139650087777471546688583280921648337668598291833263852309175921141404552555630773363055962005028464825887898381946806953294451333234492979977229954785634816276870699430022453036270100181105329799141514351861124381503725881673494339511286060420116202375069705140235818521885191572173703570185663102870034800943241710596788525237009482399235000304457208482838508021931301272169921547517462995048763647295913636892572426491264601136969001267167228706898448763682350294371636212181602822696360785771032892042521710997229663041936759439965988960693985009420860527581088239524448137103447847116726139500001656494282675365902373936406892501933906244162573491199322211047213425246502179878625897174251726009742670538461877247543778118711566213191244709765437387875007037730959737207701528404852021034752038399312537839185028311318863243225427862360785930908912519448902501434556729734371665947037440117029121214507851646512205129711318616908629976796698372025234315762519695353151964858127436270943856961003086441427271180596562910493516587685920432071996361606369248888066602585394061677916602219005798364889200571720214208884003726682788307040147898582184262628497977998848104052508517326590455313663318856660997817771451495806572566795443263776972979466401984482466675842974938280033959103047629042029342419154230449634545916051601406171482148179708594958066920953946466798580179938117461809321705311274091760907568451348741241319350680908224113345022713801759707197290627026846964345961870000935260713125689267851235139031167696265286997526478236910479361824712293612577066790049126148399755713183276840875544801145450696095941171695495781028802249051004656998565238145860660266379966932667331293884778773534676460037814800386588846549369587206766811641981201835495348598010398060423990755492440174756969965232111283854877340704794539581045725253199291685229159451316093427586202498109510390672833929712049039531417026297407942425441532859257306517619352333720472544803493312443510776937352671832625871241751129023078872545439259357131676487057518901626890995189614196093091478339350218197901024270479254014660532538351200382238402822370300463310217309590640305532207083257259892870904552866447211201753417176042447298288645656367942624621493543303920416011546365306404443782140481101402753159151965960994941051658095250017836030426213959597139538781959649298378830700549576185645595126611195301299510643193960363300795971209173305025312150364930673712615214865314174132046508908746959236214929604639218869700910139623954605624170015714529061897412579541624939865056700072557396131214184896499846609084938815448206414915272476579092340798243496456563565096725070416563806608186391377244060060781884228751895861753748128067834013991416510154304175843126335433748145373051222042967937166031595342028648955800908889515154365380208628835723414273311425560566886996669824462420693117028440689185207088875356846378111417862223563113010174730295694867408431192303106597815506540989986781153995058549352179582062931709025752372143336882648137947983309357808650313011751237289453022521022212966157577919790360963053087366967782291347578190321353390565497121434689174743498471894375976307805226236756584434058755528583495645280828198468728255909265538735418494271903957301942470427946845657852223151824683263551927464261652401309956895675287291969981209275967962992099994777326220774478855890166892891071942968293000562966366048592273949808401489094537129595554421649641696482515892862590275096230822476913002230604099593777053565466924647974416147696050854868989324931031697567251721846893308151426995779824903387489606520573346862133828118051734381765865260880556251855567187997042295896356968533532897685355818795213271057979709774732359267254895801259074509583325818130535283634235004561355025885187916809369969056144111550009406071898894257005728148816510828049162879952440161283074399611283350448928349234119096489108130969962374706221879235474601076405830066318296517347155891059124106873114935367087538717026048237356958753974468691302884458868729546459974735854642240295555473231622886761427906733354313122339881082864710061139847686481426732722889752353075358847150591724978002732169073672330189603261858495419933244476105214457448408597126851778028192077440704837720947700914778308736493389897463909467878459405030494396450216986297999199719624389926771870596393361208731290443593299898502169566188952075080713612702602965736778219900247516333705871897046177778735013736878592236606523240229821033746431770299716311731701592181941513201330710809154913353497874044686873594767907337902241104880998175152622640686023967931181900841932268807874124438124446255197418143011227962243730286908655988147309104864597080995955372225216343009207765166995344229462527911152687456740712020057273349879007530702922881413311030241170621605687030518474363067624967942069474596343746441839149807339230985116370528963792538789890130043230700676007347509981215472016530089688944169768063470152998768164093570876393163877979261034528661569482899540584135138497434349983805138405937448884488065450388409923500703750224451011782057208704764025292559661261169950468793639787175582778308492521700851837219375123331406436568600147999555746158990926145497710009521656560573704686323728659105003865806563594758530262168452492053536996701286407747593698494531116099081107367462085613436090646015434811255733672041111340132133773812811204701112434096130497846310500156736786853428535108640631615924831793323136300460296145331428234983381008454402481548869473762293234531067585545018344152724248604276860399358549386258923387022680291837091067173968165504702720596315017848836814585235226730973606700454255639950113607447299812235550689110525281567982034245565187820545204150671551042271107115121669899504534841401786159836307943662456394066740220465051484319937051899918506365828772394639780757588814042176414122216929823225301893865392244497712741040711431185490955971721147222629440051206045220867449305062139179023737809310900359091419237119075433957152013449501928575408623179910000965186482387566215709254164504332142052906205728663718147464133487376808966062276803027963046927524198749662077484385918720484557107709064747747878502282353429723196119755455467040282859282068687703655202817199534637394139430527320967104650230309238562515117941859437172516169346786447053217158491666067972007880008323520553501377147648743877276905517677903240663229478781199672905397820338227019823323481452733768265115139269471824423418460739718975129712866510541436335396479386566319394139422388960855485713939413531087010423930063771735034465221071634304408800466614518453801275374572145743449097529742673585951878559321956551644009464389960653168896252214164004043357266360260894130403631420503716388235590349808734567478046549289256762149416047444181952626772319184921655647064053524529612970676098079604252257598652851652605742703941130635716345904172267878202385658539159561679314486881649523029193937162213087203859595472152407035565093984690535038196037645940197940602667847500641209766710013822218696177105737336151439619123764466028272328183715405366936701789691117073723526478361692914568711078483298641262774606913906294508382558587675079005603818644047659792531506747279826045269387676642443898537960453150358727225933525247100869365346740726115224269768952293102336494814396077542000630715276193461557400919123327553863510430323910324192374935555053659690952229914834416484454945925060624641871860691670306106306048479849014546219513689062114086639976120687834728978516431828470541043464543464520498344200385717765460562263962180219794168909163550143491744370580195579149457975523422962224531036982268436365245820646806914558652697788861136626114976882004893739918285340442870846057315764590476640329508542055363543853621936952194775059715476352873743819065189037813543041721502801300737967698084441067278705744113502841627936569107053937536558181785328760775115806125901990748563081049616714074238656030523509063943498715767430258308962509068969150486160666020699914122062527524423694537310065517996370219436512421539550243927272137910800331372714221500620292301001082217352828229908609480158083299475085538941447682426359427395897216657762787937963994069826173851450678393186999044926821075519210949236402637676391630613904349368897605968513386105254299171153344718526524254186473209868465241673151353329923477175824147323090744840242565368333672056949311961235754308504421220784145850954836018740038274570825293892972081496499829108293108192575530144347224555890864858782386500032160772977895900023825558002225286881525085279316826890030328670272955052330123659113996881948719631416148970044709654226980833044332417233933550367384849047297187794647118576956009344503287255963494242209366475854823309188252387148875299565782923844127054683561022403888933721924294042832380500495825901149861507224679716477032296263167248408808361295674422003602888777620508347115909499000227299155747948583335408309924692359082529995552513149243032326161797720157653991783366638557608042164322751978436697739334071987490106026985637571242525299967051409902866044563995069108922997916311361662221607456704883694721908450371063032844655675317967161517683501839709665527651524952516061339916641500483035554927918094686014601814290253755237541512275322705590709741440549402146958877569309665192210830123599639371724111295789368585743384973908900211136013342307134436935888117120153394212760640046606731850990144808221219687778826358857029352489346626778490980794667868210718211423010444297517047193695696666558691196523014189158714769091347550983221524642031187911292737304055931771669208462523426144099650354365948447668807330260365637218193022300284876274068999348842708369200833922357693264051690881772437111036009145474518524383752063866903806259837961671045305454454290571568967035006038010741540494588883921021782955019638429429230400067745568887725974272400362635800711461819580381730658818220176948456164407869621857704514926291532526905397747066884625515699024852546093549106982704481439580156512302815440315160921366309730196431882747646550163869847563699610841583392406379675432937092841497531742073595652613549782301351156183554059910897876405912236715037588975275155262903817965546358019990820840524149893760423679136914206016137358689280140557614817386519757942456774938794753492923708807946667292736749812164788554161906919366592653483793788554224435944541563176196172028123739586201150348959061483123627925564394850891551901451154689260854515175422384353791080212064610385500265892075877171146605015015390285859617516156860196632837449607766610855249852028694530747605592400460261703057842707030999918539123612028375596751294486816617098765378584763708978115932771201794562316178982615004767234337948266300976713888091919150791850011643020816120580968886987320168860178354674198896783052148502268040606822504247653240193516368369046552103984805659901858112392431930340324053597907034663850805220186906538286356175999751845492577736493612604269574122327455653256769936937944266631379522035716906930211200042905374262181945172141722803125617058872529936845846429772499421759301624151683227354199594622122022411101270317186015511202173187917985457311297551057201658193597854779764927127886276779064057764109754893183003285304108474998567460316924590246111097604053206726937384235703679929103916445633773034119352193609135818420499190644234642706594392891586648916286821955314483254565036907855872029551969363078574829856738323083329614929839504087204049132462686635374020215741264261694361874757064593311930381407161007850126124147875545966013015911921371997703510293624399247610157494566302137504835025710977797692760496589020277689045170007334735491535350800402458871808886127554142305354672268003960179957105558049554500064373903237283613047871591276820790399364071133985142871375190166187496004171365129950296226191229012682427384498089724908881479105183442490068580044150671398394150546835907927136644518063217162923158966107486442462627315646383835379946502240028505055864989988516562600556247494437266875911928328809883583775514310700771190521185615007970642470982360984672253025615943049002655011864460771995951340439430640434108311539879112585224677534654964105285778808964739266260365430053200175977676193723619656483556740699589821850525306382918575954298549074346124051307546467514802501320979565208859755856294914238288701708447379089507433199883115111532309097598899093883948523649492744033899959780518430036287588231830382777298632411658004392743131585857700559536401310716523534425807189929410755916012841561271375917016026772438595850992040869196890198385649104711249490588078489076628996394772072965854318837121015360231958835697661717418822220208164716250707748849393022840422856334892460608024461187665007508651270880321634760021012744520908357916183370945535106991774320180767252341079577569966070977211361376282062692417686442518697492395186896638060970525673682569488473424817137057499872459380674445078870729427184280162858477363915230570697865091634701911837251137343572196915530770765215952066624162900270693824056379320565923900130553641500568258599253840274583781973300364157045162144612948067681185759801487286855897300105392274358326818014679089399809700474716077087864356641180701366149950513130665886013948368902930722753555802141838341776321351055067091206296862734983269128972815531640178364639620325192801925790332852898152897787327011933727968334244118150322945225034229097218070055300638058080607176611970035734521465135942267791703115189309755202856690641036485975007162873177289230829371718811902288898628683253240749247234711871335246380485146731457820251441211763278316023470017381900639667895045906971466427614374469892618479159724544549480171738693475793514348081528898061758208154364210913359617933938161509511107238995559777871673455458226986675321654885827401826907598687356551399383958799189873062968209140065881896363556650503822686001050588188920710960356973442443152551404465398096518302017480707154650314550583314586940098060602870718726077737244959882228270023257321539220454678433084177061968724144752846017655591152942242500985656025533646834990223558978083535749022747627575913295369506121353211881073112730259910106702902479232272703129252517999116194667902825892995632926897222439607895857381353495432611150233916290834912387097926965298168348762568488012471902457535849375662498435273405161153337515906112861129336141895498673328068290194184282566980936619424722790305397207977420247742366956097834986450755933927060514383602089675486277683014371732432559054128929993655366537494040532254825081662061425031906810753700542029443669760970866972456442194930464972551772904823402643722199727897714081564572517088070969676801644600308010616570909271582024976459816357691222844387943227533862750742876693820275231117537424046649173004440841355002821260785847926573283353204916125883717375167645425483074909255984737181396209848920406376925891713206233565618573501362110732302512942351385349465835694833658251382992723857836033098897649568113768512909673485905380114539407263751074483730390650484831130707459257207236052223497809843340371494401444385465097693721193081715577873030568088115181093036656237363437570050912357983036865471791490034984070749026163078674455552006294566396363023986175199115855105854708599635850034014427904310438418050810119637276982742654616524653487398447462698431744820765281482844838564653075266084274488778094066477890067103271088866062556902689426782394829997524765203832551916191973509911351156354196958991344517507974626733632055022367419012898662049479153167748361936679353093454523863964976902537774121361175571519377608148308344315918352936211868876662037623335243839160247551780488229854660082896957092370757196325696309640621781603116772455477327470625536911384397701509806766574218884731130980708912104655634834247868137177822699091419850759825990172921173990220284311690535793710243194874095105965540492787996945202346261939767287485419280656208583484892060919692730652780562083569457397635675487121230573060930826067507403532609064327364060033624778925584091474931420024049960339243546910835584778444182946783720437666736657231626481635238415399910622573715464837943980098191080462046185560285565009501530648367363374504677279456650472008806210478491224078880715758369841498025795193820518366362906571662634375276208729636942255354254423615940090861382180163628679443346681765460698952237403946437684420997014887211890122627834402795680248895619710785429959565288286934302760360283099961527558016745032485079777214787483129634719690591097699132109156276489065775185962728953582604115236358303021329349561785752332887047793607034283688841869773455382621109215436891064374936483078220105335274408165918437037295591203489442260090497512928212435056646726492153677217323828200024983370411750644330522168260161909369395223778208982829220113932756139601693493418075814426917199576687022368008153114091864819886724222512206059410633105132310040159495517320989387591199214159416698458597583400971874982241106392966691621573144312228777014280273214092022548591710634189663039672733060595748134002420850011445144969707868028381585222462354924023867639685456310472137373419141544167280707030815253632770734396007263530152730327158488415783830787947611872159314381133451894750367881774545815148297891977384062577495567470352777585673756111643554564681989097548402075771527387037551372467603515212027282272264163566046145761126133991344141610556768161378444501845964446091657857565966242372882288422106853249738208457539133283584071520670197891428689937754644065060161727481517772165293747728013777716858058381640952922372149942678485162977416757969696334920954318155882276038237616608946904454751180947602842796668780532725840108924190437016994087418120931662420734416145498759911400774373852956495089291258575932598457121182157821145826492811253674228885757657961824184669096900163685633968456542836507789495340978519926593266899835673117600099574125246611017890043686455446962096847136508625841841542538336850085355733104119562921333925837885763850918078917313375528361900485753350879908925693897748408926556442801426182797259600157351813686880821093574518194867737487746069100900661354419154019547027184684700802268172298217624072513483337770815793835318254712711167362667509266247352815078408886465294547102775119896296946349277514323118258811986908876467439828722248639971131169861235671854209971703312278061017860850518475922169499767754348371276292003656927232803425335378208633321867569293072361827618275669421886034227906169191726350243232673650629715101765870782505688895851428952081852691100009900060306035421843330811315697324073511901615088360863260553034237799608657004826684982960278662609135812148783912229354483299340179466575997556672070155624453353058350055643103211287980868595395481278744938927832740755028319205595579953652158902255739234609401445409467273001164915922974770497469445152438361113202658501369209228346426391681889762365327776549059811196558056259362447105904768668062918281157368329988376436965966604629822217625217759497388843453848919649652082305894599623357808063717678152061949822625772275685523812024656158858081132040620653946004032663861495088981337376205731070094575618354249766389445851969357854080309709494207245714082079859837289220167597416396388765069681590162659995189608637510406467024314257840421299665885856649771695643569393627047933053767528304945182599044677459372800224814996235593890648565853755138417748779728569275869496062706742631175152759277877915066413204048945254622715488079465879493586005859521937217839257145379277159897637210953980989652798440016328490034510119812934623619799308591187370826446869359160392147565650451342625092793974782708569352462428400939098525499453588480402795917883388742041640315543439566171985952813784594308556489075935709183397899418284737338740070434146706472479646699217358381983903459999586727491259627682347031059972591380473112907328983691761824603505509589232692278260548561852750356138637961470402792329623899253496201989983139133030916832280469545622969311588634326008579810687860673699170645173273153518592261390178170390754833811484259525053655076014290088888970354020653214048220355498542546070096708446153537740406941309783774232129352267949782963883562550632387668402551580193628004083566277076265149160605540552598273287336359455415710771329831706407075711972359533452452631395522279556827398917209143091984793765023099380612920906944306993166485865493228994665206507741115842566675563965800735966030261247618162666628282466542418308352970688864715706805971975971064695337485885392158609975962139376442524457735003989259278767851518342750150649098253675915254754474399394696432048608205371863816521905894169929429228980719622476583784535342513281822203784082029120308799896122136695299835958454006938984998804903173160694398255791406030184142483733812884571972757666662206746193780557311004030844492320797848024578815260194088271735004697112396244774003830754614156965588705881368415904359521434310212473129263587547219865087104333655828397243664050169651515037635131548075680063656622867641559405673749277254739327999119280033232236265123501958719566188955912551245565151273047288777970203667052364765305545512453011322081783180114732771123990341483434394212160907700179391826750110134627171480912361814646059022147866073027098350398945208067533651358259868717061137291543130165124504278952355603770556362208690850375299748194808608623116821491122171820256833870897325743145265060413484894058009202299347946743726156435374457496636550335171743250073155523305086029200712311936972967634399884891993397657496875393719365724099756480052658518669489562651209558929551625065833955587184791324277587030847576245621989148896160140222141748327789244208116694247222357514280555924233475644562315295299966381970936081541083938171177606825699533898303637004653039761423946063900376054945089554817156607001595777733295969256920778065244006400312102145036444635289654807416975684585307010657772932003599484030904841534454431095065372937706796979106520136466070080958614791297376604244961873630654403227359893862102622790433974754846874483743314782608738481264256338796475130362784803747724357785510328817963665427704269079861725715663338609527440425941131718569377054511907036304735558795117806046450160164012903907600936914193944702170499052982746772187618742481473161024973373484191101084712273936024695132312223384223637694546167472022629774211075817187124902919201287626396025211381685577962978945222551018822182346236539674138686980814406920152465376410166125467949238915712869897047275130755290722553003924544069378347297450989246627015657424147219029940366599069124106665141724923954835371805243383244608402142674647286164779950125819560110895539987357631188384244677597823337484212067324474884403186204679411118388234255100942698358053368206032661910023076933568575060964085117941028414643413446139345399771404077814948356904408826348944695413172304183257730607430352650634998867309173125053444538858299693354841387712283627900604487491344300911112752492806675159890130480735203599308423151206065661643308191547921489650385465913476622218633992758718219105859738840894993959531345192436073367791084244337982159665426158591738354383721440256231979635109321871946076909103309225010272808283712079839962812279160513362513914587678504753622993476590299309318741430794431453179616219085284111947221373291109564768224292321501913861706918558006828713542831593410440130692807010940774823800480009502479095735977507027789126874939283174493616218536394062894376819358266805819766710733804984765967018354758157031118015543139098878707539521878555110911621768744545719956816305038338637835119000011535629346549384730679904397496796758809810586057637976297937818266623795097170400262471839973599642073521306703863408981538418657812155801942967711125179738447864511549701033676061589867583466271543208993713922253019391267147702379249136127575102337864473594897659367986972871447637198602613729275466755342395560354730229353083436215232988328856354173621281315215953192829685965630970303440180896887191763260777618887138203115822643434033937895170601949414374511491085383828663571329041831389667670175782392001080976475548263588205668746927804744774603810081503269224367412767105046239226701869325646882220056968256973697575425657456041220299184971150095981685093660373077477859612918492397560364613213409324751522132523704350236354089854346120150198575291116464998179028430011012450468380317930315110705803957563045164673370011331517696032981602889734929674333704329408043148916867130689364835980982344005998012738710459007577663871768375124875388660477194749481598772385301772963079173816172589080323276224816892958901293326866017793230801632366734720714367113696002137643966565826943128906005451197747304997164462218143034845568008483684233761562445995760821440781309878307574669155951102639343724620409721444630400634045455485967815262616358262853140186119254383362977887685520483006552012595542477805064223563302467757087289879241735361323525397203583505468124667261012561526708180372908320000666841417575849962231510092431861687722004753793109494149033914705065388239860372725325150996595799948766919332018261247951858127163654651230325424842614910424840136957244155566658828855312995282612912465936296702256586406230383083549317178398586214733580520640556411898883876295337293801200306924167028009488558122558740578328527826790729876467526553935823344223830675111538684384160278288174147079571027278623338330484455967463400709106637819518583182619593310776832099926545206372453508617675646243091163482989205914295813142306292754782886709813510144126071022680613265217071486436751143975778115959132299800120188503891756888503167915313790062053805973805687208689845130911047744753636017927064989117800322078290994333027652959900414680963372975516293679866262442109698576189293372483286774830876421554220993643219335378299457728939083170091577558157303033764434815835486484676856167657667003209507608824527988662961039399774197534184138852540801263791497910874944315592970150554626852135961988426718895246279956120925439260120906697486973195509905938298699176393430710607657198192540288004050669818731655033686708790975681470410869068836532563012466865681254556760956272132034383124802828287077476379244323603458386667914050124433173896873475247297564325360156386449253104181816513282363789895807174765647413357357178468087751811078287049218946749984825069881177174334054190552060957203525497940824533456276367331030391918740962172951098134879746642398720086316192631085827325951054149749260613581016587732282834305823316922760841920836129302698615675862040855645070174345391741339464169558730314931272727751928578058728460858214721701247847693653827554019282220270572016317554764052870023378634350786441345158074251110784902191101789566756550937829749253611153701687709507145617751371964232533114798688514371874419292063846956572184457552954344973356439243098110876333439760670876392708767275290177748301174171419562759930667193615224680018120696183798422810883272781643483937487619394429315609519016913158321284785947853610403787229406367469326817586354482333192332035321601704064274553262423027129368297549394480592571605707558886429739160924200360041310301939070652698602255810884983216669523139539785961708964748617694987546195970486176425243865785067424307860303107024975815975299509301261995802225599909764204224269621095127227507320233325979725661559108515385659823847322298815152646248590933189994067001017374518119772513916645572406997444901777123681846664088857532147193988172146928734414055797367372908764063633144342969030786101715511294974810685345625040680679113038905030671914654774987042390603720391140997586381487182885827357986370985421160826987356055292570265253554500667379585769525839113067444653766686067797471700731913219201126789487466519516931060666186593301377796525579184077671119624780663617119301138617757432479735750263251258298220138180522340620061329562452404438986189685964846878729174198481514642483965358853992436979218514546557517030318539293608345152109758525923015664636489207736532315524178015578271172545974047845357439338300805820999466255103740538037040881632135746995587510795650020643532092678207260001079862287942148773573624470221495301572835451688201172188550336701471628057098247498496150063143405625041437357531239963164087907406783640294869979179325766448624829665501945136919575954548074179609060659694572291862022037329602514569042162617608143932122594387750190013844846320875916033694594021199372650704379067885835465141061517089770272061143145264737521274529786466561267240718511036982176531569242903243154655653606656540867694548859496028961079045806622835607412849456411721858385906905645369321584687941162284815396879792133643308477485221755802605136159999084653096586570723486745536622614449521580702545811095335169765494708541056988777293301703029446660995854388386901963674798579013640350805580122365793823850244195641147105853195114193484472111894502399316484065413268489730351506625756200752787933184548037113048014991358999622070787557659008110747635199181772003835769106742841530841240504981639449669250376999076609167420432002668209457705876767297555359212275139660270803513000827672865283000648775102118891350037723319553507310490545262357787385228993116758652687869161878389102715830167227869208072242227595719422289541681740454279146769372103677964119511220729414524242702124297412239563936613272301981403459023508231450106147781154981011503817322347017948721470647973753732270462666421638213851645215631537510766101069331316155638323178101114603322349712142713555403678308480632849133635669402579034318364033370823543258235057939985055209426927370670946204220041431578710685720651941110923350567285677620194994524035436714634611047619781496117354219196825301930116539829343463974100440923641527301015837576579603551154954480247827043382297758863547118910662779556124808043119556768893775217854737728661999326911702244256786758523836269821489310268778336727985687034515493907896295868989993152555749781716026759470218036103729903226357336733233083643404594773579490894789332813800269085900747328041211481107139874992693069540341014674123865515775809513891574745751367805367448359391388126725508398120340475266220870955718510639504418675750989437581850766106109495728344151230210100994482962354985967028523014330122493422329023352844001392326157424390414267949019445073981520426245112417287239194093248361997117529221492395279190237788788030027480885883938632183113147691258840031115196130193189536154741311351376533882832389425940948285879030411210415173596627302201009106136819400521774220459902014347958063267410317832913595916968880692629230829624719454825140609633277442760653751562847816584815668172910154787740970769457129624209704267381882578384158147666285738787391577748289167318088089236399456932939252785800845594678347390343929918436960938051543177619590592975830075071349498274727360325826809729421955714469287364579337133815100735119105152781610779366539536944513730197621044549913907524608033868666020067551875716768123524172786142276329886134168708358701521592795168720839557415922586742409323901223799603639859211388398135378896294042409741023545012715382104860752343329148486590998125580271874797340314858819144865197719623685360404823831603312180286764635976080129792315095637980182083170144061969679505822736289829911408030351150298234028842528052973828538926750884893119582873170540449762948882303897006713562332729139467325866501158970277910624334314632927413102054775665828821044318000307036819637380800476556728997118284948116713154164288449424141053648713557470838916630246629732452001646905337865181007660229033301401620275909917261083137628558442458331532832231478947278752089424176810762538623878629851583458304726445120007597152154524063409197596150403021004096031202325785759402997296019879153767466682696832266359362196208364279342985208894379504469790118245045174431322715676774497295363930795328250726563858629994529142273903410233666186950923830364638359503553167335916342227498005798615672157882339465504326644233246519441163489821011181333487570140661080936024099660939971963823872370929841714609990243729278564390637221640463197876073509603058164471262116111723214150857790914718318500181432744326591635331826188105050476654178429064127189510062610852323141203378777743017851883294041441379872032891400845317688728525674331047082039197489835429143653398326387236590413734962230192668960663634340049801794283104815933931104627229996608437229454767389362121307825697679497198931984643557695839233976704213630552191368761482340996653290995912848927959405564211626950166130610889336392421573806898836174692198558062253001819407003682869434257345071605827867427432044233708170245224872632345682476057651209594853920165156986736016284868931578884144317859139674770767376510692618466622026808338684376546037009396543037046988888403672003963093284655476747745940003284598437901351374610367227562720858443665500758726938586463267972750873076436979863462183019927716003694711156784368728073617287010768312973673158317736706417648672243187433860020562972123913242921719448620046043574496511397891395918956847502443714183472495042783027247464727144929562440870502807169519644419961524027753629234729594284104445878314570737345432457093794093165773971066805136795264436733675499218348784487892821765566996035715792931935340899971475426260732351666144596363311769816168780707130824204553083051475289876694170642553693553427088538758111155003245833986384805229640593739050772794749262673514509224932044159734316160035009946378138812267241063459583199121159037745848822882404984954596593855579112673183723020587811797419723572397243249615550599595969514993944137311496763507628272918042435568394753846543874849778863444537866071906038503675249898425735622839978814433737533566437072583306841644665316595701429734497379559320616532167996534885793963273379014684965218318597057233816329253619231479590981597586570704480718310898143875937665429196420047404270174743992804306375287225194199684119463782888891368489671983994459267230211294736569773501156440690258272433067699502370426093321609636064129520243771853051973556613918019326319357220725497584789924564564840854880931004180014027971285699363866763859999534074430420286618304331516983786159968466752721446057744730889067660018594410213604876006861949994197567296628877722004864215601695027546695808181591768238626912138271134969805146681879354087665424157596840231455393294594328894882435710770317142360698549765448406177167918951723464144327467062031798695536852006995432713237075771975124856407990913526227828620500641344280794417858371425297489729248816072491716805682995480397166128690919562626746446503098414937117869801436951058384980590160649960328606002539412518818671978445767107430654250851545661493905660878776603821473961323260905136715121444120010258231259368219587657684477482882024394414570158594915599502219533838447154628088692466192044938377795666209922048882449186817894950380322966099557510548858189531788982625638500975566615522898104505200720440219817287722588103916873935224801973093523700114025027806250798763232003004230144530719114646580747496710213430629463489761417677293657808476576792821159310387515682200452694394070208344599350540897991625981911688200939316739135681230648734988171176031777078853836409478446217508737285141427598734810638599096654103180457416336581197118535615417716733004006814503223631243016794290015132448344855469494843377110567456953416530360851446545393392101119564216115263968836571781099003044426070305660130540877807865747583013359035006149831142695887295552625340625778673227405098670149720707608537793150936879338672326867978717415131841174010390042398205684675277709337776981794692551958299511623348830424254094497646324781296865162034586774974596975409591193645457375479605133149876579047586918294145004998643000177004731101444189260683291520173579367289534985902561770468414410868030189062818139684039993802935881230470149720377218590643561696482907574593614820607215232960250378872600190408409427322230262166143943702174008904515927004356732618977898837466484090523554490794507582850564905593191358842286131300301324300956589951454149350309382631154436711703963618029733245913588799745288247323228118950188333677914830816368508647484940080804745987237857835013649772897166338642858588331555616264351609918661950631628360750079796104349168496237751928101298141952514350327833392327890195522386538520131073016936388000177763241405245243614979517324049228686262835538485701579290473059682301692039449287943809459581748196007282693750080413820793901687287790688697000078405803029833009749811416582720401077513979477179752772813729248156860157734222008948843340983452207308071495024502396356502922654080491512420744662278230601560140624107830362147000042803065895569716914192672072653586846283626321075545679316510005133882625693486733438788393060320730902203063258731794304503945605753316935983300191092275527139494878062217341406621091879185650482802592805061029779137336922791621829027118416382211578379046545861308179723548866591020983684748075442241253836734508857080373345742579848875689301030091036312779779438040253239737416014435995555631043187862768185273993087010142770396791356719268395810811687355355717197191832584471787068028992393370499151008934023555340535271401596423841050083541545499797061691550399692675643202403790388030827715114865154132522839242516235638182817389877575146183845910214777600316247396134671310647735644181428036343183081285643678308087015387832462125588680715381159597839426447334108485214825266301906848390389322404476659811710669356954370606903620788635832237025719990111035170135906040406749899199748750481160319171344994365384176311406201876145931108946242625866083987027190078206278405478752580733363536949953945611713823638409487064918385794170719987277145005158297570351841822829470284287140756365215453730309914127213854804994468777230505973513931536795114378526632963957993408263735721791629107809749118183084562359587797460939071294799764610633423102703664594392560847784554431079218797805935109159402641111582560207397012388351513286773383157665711315642262321385365976485113805494691752088833343869335380643988070778999456912525365541648252226611120802401148283611510745971493069210034267393304919500119465988712250420066365465574095769298944953104746203245942846787471048096333969713864787598125048732325244000719325799604720957777307551926715970664859496121449787097453678042673894261416680557402640454956573829844275998810691151579676803982706067357581494104560383042864077649694322786096774936781771571377689285052421257409212431959802223611919262505467868612161365398601499702272373240500911436568099907131658126826248457092559474175964528583812897218604100575944137693923335206336864877403919451037575945405985068804642157027526348008671088270365037916321214819450484819420369401915705440867348415793987567741761924581225060464884910020789633293683706445306780475994225006408531305697222934660527848884933023314059929785796274097167357935812483836280415345594083210201971058074261692005103929946736899803247221147423043274311716212337796732076354464080405588137453004041899586983971847188135743217832658039477726755157061391302656279894007538164254998060366565130358839915039877423449338104127237974606822526657352024636782231071576152577350234065157464812028401466550989123133994385052965321921927450711609424446373465039121954488841296876330814842755822952161511446623860242953816639619183528022285493862504267358669212477519083413268068769262388741823233095411676164162041619090117078036091884663819706379243543453528273335948397560967269778054246954761849100032962048991060065575702802966688117162146753780083224601233513393974013609771800834640352698615228982317398942322103930987474370467016184564991828501445895222556374464607916546712129700913133520196785897198612607018916336944602704149447382427671941674076740278751676418825976756801199838297048763701427008306094402011892651065676058866817597626078640861768202887694448832737384358072581749596903184867603268417795378274031480462086336581098871521800138678551666420849685375215338745881960013685491986637363424216213886738215480577379377803646085990111052173840410676360883740322305902983683454732202568965708268976712831621005049097691943764257200667560203268849273396133110287804758380930455489338787428572142677465894091556299754466708320127249867485439789795231805933297818996566052828316535616026534858297448780540834258042776350870260671935862882181826563599572356485668699012980240785324149279090104846162806484183071506537781323292750641582788226643091390039626433194805088478022247498215277459520871587592816586289042255401310099731402054997209158324955623373681204279504409995013704553909130490182100825818325105459069261322176218502386856356732357350969788591203925695800022461840022053084560685419039162603502659209592484687389921151138311039871908472766519915048587396897584813084098284758083429027351297790951661466755718443460381596067823895548768366778710628611765475281699060852118401555492161127308889452107870209108027483490282049087210514535912759572669308346198786279923941243504496776847285910673395735907474057086444848020269605337147850241989885467254448430308141919776781526489317950147685574667276517861134463886240404146808405261020960953524304469781486867867082298070599979148865054481271154952538126491964052020507603484918674640171483674974815587986389807577712918985318014016051227751614580632806919578827139219508922556398461321764610460137835024365764023187008986214040476326693395824759404319523153477217324384171792638677060147424428399219714743958537480435414053017452870767124500597398321862227902287364016681719051604963184955270558500664489188587116707785680173421485747734231005899713090129089844679886763661090302698334017787027222884016776249120439577776485324732037055672912152813507431869101902915374508033607040713690250202436643825375897071563956159078567669631739853834167315474452920040938805088472478835957284984362995947695401722869450324013771817317182708221346187839632858618409537491174413377928999145521940985570737837300641198100456931088829105731579062295033771853136932656142126090557477445573483456597087242010828616999341365079534080533215746061440042905550632128200212826398449301716903909377321186305483449494271886941377143376489272872206360183235700902443338860362243706397126917183468417430541468382011894033551082189557206812318075600004590923634206215953791765926739647706943515284441250255405167743525688939471180287591515854027858558589047299677387056316766162868816802076797036894534503618832560781850033794567308550742455754261040532473994084000884275331983867145211586696929396968905123366689960476757056275097783099930128555207364572434822086249133866067706696443452894238684283190013596843529793334703701586385243459068107723094411043080465717964708061719433561911536058574978985225580621310186222133224628442625343884133023724775990389001289248434839931782807305504095953793692147782722090147646051285547984869508470199751065964609131234771540271711744877349275099909169600661973719960973274684914719708235258888667117663858959772431016525513035440830738883095834058844783728588431037957106170181583337079660237208028711590825240357597824950625893024036605785071532733558799415771771085655902203826356726657297179482403429359916763024611521739998908924673359574353797642053819505197946851114088738896721646729267845724408889293750800243722206148812919538779350921983935270605094491814878816505962808646725955265014786940559621944178712012091431278845840612989528256408483312117059686716422654979506342237094520831165867535315854149492846839074191377773046931256494531307826917078132167431983369273776689771188445703169380128771447036784279301706673585546734120978354466226241774149438016950084887755321460313492404789742856986617249729929723628888713021758552876502639272386609255812436239981311775455146979393317333005225126114348854648681942966138737187544426055938356538855017631399900677486416598036138777426564583942551023114404572840841355225990973293335063861184118668765830528567345274432393104044470597794713662728069167137032560934999371281421823916354256201165916972221232449007629584126579260205508501886629401672846877115784921175299006949149784094279284033963726241228717208543865026975540562383124056955726309064808876538918426667252742787150752885534013117780081016913340412407047077959666243432925007877500709396736027553596660806429895254423573253871588006367517917533854745785738007734775600617850048102555526576559161891162226724363735230917132358428972516180612970676277362368358650452638183393077662905549548417902081137532499584479266097468129422971391198283369091128795931928781148401888794877606181484607373952149895149035643679376219196912053498736540573874271643239845345449251589759345446353688414864696316092032594129022640071764001846655571939458596586993067148078385850962798605620021238124147021923509265160274582023258593143912954309909168881123470939883410880267589188292580095470847357540699364542853381274083432211726672581229547893297966478315882828901616878904135149565176483991943171221422042923314444286993008382555112278904665955596242302239077006807728788701654875043287425819947009307477435090654766854553475600008524161123473387058153409715364845824848385282163406524233700911098968050872249796485871059469964669751755678735032852009526616129670683351104838765559303521229016242325513193155164862590386837245887576096646443027447083925131442036241812598880448643920735588385371146502237249781855809697114495332748665543475811711085453905691519417848660224168102438549346479514511124218084192057539106883424871395679253195547754343073461428360127501251181728199921980057490390408328320388568317985800776332925674183977785233838841567643857730541673315532156573888355425846627218560101647549526161565397512211926523385211080891410391242985761363749461362523327890077216943103233481865176339494868273114882199104867413125048985819906998787650458698625464091241518744449908070455603950756565996631153545387317298630542395326541119957800415490924779734189433370927954582215528548844470786144644408714127151532690412530880581272097343389580876656563549209631293012762639180547378700378855855642230406929261614200975801106765437765312307727948787531334314496214059144016351479088157363373897001502349415983548868670218283764461615668828713874597045004801449598346098518527389215527605270576678458662805566178049576002072080447803962001938182147707434576267573286585127577634053433341158167954187770438259526774207947992510696658335685152156613326357407920508004669556689394615726394854959951683354309622742377134968303220531567741927067141589301169518360726534561339961422958637587412710656660884507359625332160972418285254928684359136774581915108635903092414594964137092157312804737673545176677723778850614500855035361617241764092827004857198287716050778596431753785158293162347215537462136603783137483665763806337585961728020580228141201987956093732665382366316359542745389323185462600225187077449465568999530138502487486719845631626055924667840189816769125657408323120262766063088157935036256386977547438116108766443351509713933597052906634599499385082953277093128591445393145800537733504224377329191471151829371577038905704588509039168105381266745352705181872216506736867795502326259976226714564734944713135968982471870131453498411466977553336873380172552270809202725072219580608900140258497133047623452160902053767327221708804089318805008579507029609528334483947802454605000324268871254748803693228081910756571119598508028862940802752597977584667841869535166367375679292260815031035850146194542796915461335239951183497773500985633056516607013103110173848209768040053346421081686937770379654580528618058967783115674873869567806241458639927899109736482306006079367823625215473639515847483446169154090025013100257672370656222717026736388334742661605895938832150285660947426010236860793441156263040577943214025820200621595738537338745467352595494753415986580319216499718464480248114111339654364664102470030367605047777004293678276842859835769890145288938437327155930450646505518669175036851300867285284423828892722282152952648718297226340471297883650191268654783305460814707190001199547511484873810643104686248731621233201997008155192411346598462112341227804347950006209683966655012856653644251726296319403868034720340866493111675539807771520882147239251868113318325232030479329668069240166565215870854429173444460336805726529321048431602608469184196828048554463600858777203613963954038483797690705066361205655488321304523494892650692232033495651503302781548660397250008598376090858534063697512409343502947835556280323618734212790295267934708089484327299656000381805403185714564510815333378127880153714647985629467186181299508733621686574802624751994132716780787003845114439628612587222788176655366072453261727469104710931366490455122132840058372908951068284383023696849208037874553697800530550358613554493306198234791133785107435220064468649676581392203336664205155463017840097620610839315706907749938861123813012468372697922950689443814189064359166489213464535869461721845814050343428875509517179191520243694281300287394554183560493431030714134346693022997198025322361595029201627012424774762342973158726192937925840814641409885996732725861498156194374887641878757704013424167507702005545737878312665231529611971414658240673002736962373788081734410512063365615679472389529767041227392067610774214970601392233943588898663674661680555891700372096208249388922974366660844351691652230817784203894633170464174087620359151408949995059823468934617429749898916466148603669323306008738900129461167107019748342357134645431044143239644980305866982993469090001836068000284111032206274358536684051282484351643608888285672462683769424284040835130324553310471297838040052567076379789428570230567095691411894792575355212796738366999171400291432635414171222431403976486047351561760243277986164769021165199271845361050156738358039302265894096873148155888480380739699149295244169880422857494652827434950606795924416018400978052535910204133553005021584505002484911339788311576725082818301504838605894728221977963855867690168445966055029480370054529029936812657950625587705295444849364994615480196451171229057361152972368765865194906457169567684747930167779099585970869220261625602795197627100010349108550807426073397438100085381309763686563634100632809201752810366636684287387014971148572670652079117636518034500686198069129048960113797898183061251085837804018396912278754555327068103727952965791596448888201055278883718852253492595410919472598025718596718069598583018349339717346477950479822127461556736864141613188477535949741176407605746806656126975539698708480375940946367932710494807815466571501100883527041421424888940286801457437372141349894952483905090329224896560671011546731390202902781106942760190746570626572980716415081574378731603225354584463953115538689280787731896566890980411936626693316544436486503723718004237005163747854612522695471341321204330108733282251512633154387728836611012680141165152944264071144670268835669140378619392457910263409171666681764029694941082820235252734124666370750702956739546567236819188052842152016153556959481339040749684407731255513080711422327799095284817186446794091204116826244891198417475648750800073647736866447101334333006123923227732332307424935661906992991434333885866896157686545803033731258225722014687421005973711082841879107529354286932546007345520501598991210747528258325003892268513872072697419550079773973094427243918643466420135979702779050006372096113842014154904414201448602855831095953681872357941507810017731502319212615672152510237058977123606273361587994315678273571022600535429823273164993199131903201027173491766400249102686554776240175432407325310252036404741067880926827764907368236467508295512027516879006699881019913980017471046671206861872315303795242750539260649934086766730809812732923454262971692291692666372438735591539544975249817446366642198579936636755770377235985379602884012471182887044205142834461302130206510139336756471822706324967034564518221745623146355266285442683439742913013603346960325505854183992072845854589224772319401560889663494626630113818611451139443764933660208546852322876036683966461461545531147319704342025471009038446655475946559971419340034966627125660071065365674132805543569522663022582012913901519781476392207004492176424921459653694113182459769025836450928693895108441376382573819811470768063029512965729547125937728199552611431123971546418278173289402369457828390165415636561870984163933796106433437903005291894216413105301027935326302687730999487430207161166253131833847592593707476743165686011387748847227861026874830727786724003945785461387147387434676118379183606662940629530344834559415331277042421520576035727357779086817599242513290501978769949570831963726369293622637652005794938306805125924851463700798291351739816287208319496495939775263573199644617183288682386046830127818609149512283273387031357747661022174695412625162938332077896102490826663666486783375027932480603881730472013992389340129086668982741844657483210130664812599829192421838273406973941196751678636540304467136417892521523712753300049637434025730786423184926331526455687175538315999150846710080544586717846968206364181686079420852124644571898202528187116964794515598003710233020894521052346429853782666180402892740767997920845099392382410226172813655984896818231559869744520906604503861301914663965978166869350338406298690833222165669088677122155133185946396680492444213214252674993572089758430323155681497021644896152508181663289654562568202689332748420019641482467331979511621267970489094323039039403289416979125963824116657689062321867614374393030514352920846787013190729209318748221890288940070285024667108056208871264366944181872518706247320526894068103653069781091086628632779652766367940925393856883243408701262757759441600298144976221967159496583373612825859543250709946902252757380201344739073195071899846017153033411014851782275555679103074592112262255829312358606412798029351216996413762438024337093717183449672634364843521123813455070025074382469804697826733917575576425251579569796147955197329694625626347878570722901285212804290449473792757711264231539631131238845987718757553749942911721438711380657803671310475024784635312751244658121412449476057880448148639516117128981119726038379197141011434042102325163211866430856448337481897738752706186089847582588422135167698359534489690198891584551557613005078108164460510194376149589815951494103075449176122987994735800505195112034708576734699671533582040510617097973439575196164495104339947333664804842063993416263536020597652429835897900544488296257465926058250788996737267274492941450545613960413023989959180086335296530021394373832807235286060938179542728329368772207358009175668157598209838821619065256686638863185789404608015223150327519160068645587494061703417472752138731509300618797863194356965127748059243143931413384351136319976024172796238360887913880772252211116116137360183002517239657216774304892917876461314104459873990730598448361352216475612464909876938293942891365955638469848326471057654497498167633548012175946842737591391336985904074007702069788201335027927507695622027118140645541112297628608516641435454123009502981040634003367817606223289075263855700825782472978132032044612354165619787234424270073483361354489846314896136587899034770961744187198215416370162812661046586987251731043997189962457370402638282478333693084924615081196816960796571267579467934534516171056179330623687438360816416947584662206894376992937984237445917983987477745177140025082293165133477296738924271167357121730630093228444487373133514026391225417446947923454318558518230874187574110179143811075195520237128963457341473548081906321059766206649178069640722774023881410900734193513223404110255778765276011053214521542638811855940599037571060254132044669170867138405194893500393092756588673887194769278858498685971013598978027460125237798768580364014198394383255375052050184920721230542963746018734646179767758740666902841916079889966515734293826185206924684659036643556532070873455132964271524863625433935285929089095333249194755105016602929086277806989717335405492702644081642838564547757310924066374710646168196398064654303283750629361775730691694499862394285731173189871684390237502395468540651536359798845405181923510075017303298886791337071513177355044405513179546604785663620318838046507808254985626129422152016845770892796208384148927573089894937855031147727841639349526436096028116326940125605246235046901775759621704703801217840799293202687408130925227633299964050858268570857598641067949759566044833976105115435582513030429367194888728308483566500210240307715648627124550032659954511774538343085203971749238063002142359492616358355395491385923593267275938207822678108968050033686300009088493534600944311196602472528033703464351618045329286187799678808380400615869434215622800701913207903349934726659344231584171467084428821599350075268077650129796921661507018155270527880058955147893300493847240771732604079854658526186287698857599808589471190976095722022627281696329403809236049105723245675295843967319339678453956055458226409594671834081525052045880406027020569143233560251415771787905967465550358236022922941809996377263571857274427685696403847545913811208425386709206503714385242916677649951904822744532096525201305236942342618210349057351102894616279714885892464787829514936112961648458650052972459441961898683514405196856170653320078303248924641845377776960032370956393196840455114630471809210984814147114606303876252653245492610158405647319062790996063690284655922675895390208173810933858522453691420246259348662741293041611428785407265894311813180482373500930214230401593728973354230444724698035307280699568577372703653507152961690599972135796321826729425748058865233784621793225882187601462720971575208245457059984070488745207255042389239878647488767054652835591313767881710635828351384838064208168010327228473999475540055494586827312503896215865588310711768156369190622229269683757292296651973180317306224922279108466897324718289240656595553638210988836896421650224752252054141254837700068097889524093879714823946806531741817933353562375325056672570827116166525163419790286865328393412746663142777433118813706733981207811145215942742527427196077670831501281134838856289492325300915873056594502309045698863599902054763000714219409966005015648917651392512935001734077306978259981489617473183250414508567528810424754880248564784126823842901050337971182290663230146721296776890812988777722170759949186628625053547223743804928794694858123738168912124104637930301551398080679658514146910258452687162609716226656140544832326316284508032268887757160140756547594434786083855859634479947294280262751192262796773078023642580015352113863201158927392043836580534026329608290763015989081832513190273182664170332507069185683966838938189948776381382291537727482502671344916581181023778082814098460451269856005300940778123082446236191831100553960950701250097557916649029228038151973688299824860260095347909266670454727871421150314599218810055824842835191318505558922021685684661814647348299155915921321314980236383057023529167889317532272398196270378178510483389598965286242069693850863538917110218382668904460908969470910046203388925064493164329827725977551166725742323586061624679621614854449605900436241305629870579497923797336755164739600638141814652667715572409447610138176603777305960317002133556395649415162521750912443323392008500741243893008251702135793541489932942397280004973141182598842375225452594651830793159808938758317716454131298950047116474849703782461093232973593646302528390650019445853820017828193664411095051030741284191702250422913582645361033735916317388285346717040559552782489650986860906974726539489396491837821331443904817402796979066527226176196663304535055335091784887007126518031604837885357293284993180278973150962980909027926433309783007664457519639206799410107180717240019646160744695815683574532440107688633515920547349509632788740879240113681207810936226254065522224770507660250415797385396757771102066206958403833079237995096654092655684200758141454965663643210716069762205264826185559024944186713245372554251540698273410947944137106823009345521476058377133918312915497281773810022154878940856609603848662825158493159345593406926061265467245075511020567920879614479337073867629333651334507414092993724054915309222398964950532987355688603306938203705075370427009131955620548341539236254577171262921853327160505343219374039214344909991148869613793325925483616169593361925676655332180917988554326680783086540139615113188519991092772970923068103367535297533198434403262940237989735103709256665796735831429406547632840063894506964109484858918348581802096282759288347124367278417062224096800468479105314074373918967795323824450205512766462584733811783126112817660390351632803503335103860747642174041864704219357720557881491465859422281041058081690302850110010288219345592381255355582328712300076198877001810858308834183585820651854583147083429559500807899672152655965266439990126684316408821892993486483512561721964915857836653791951469285787445893088322029488102268334263811340480718055880338610577731628944868623937192495150118683752533350551918234908450709607158898819460386880134934274665931302836634427866263318433625605414134414718946443746983995583646320432673881881199386716540097712527118458595535321363277226159497198510233753236025539149221010851687239469242004398076979370151493458574566189041006969043872880303157868116471386196237068666151863077262064698492578367506496743522207493728931681678309467021674874888042389504719252793565962834590375462772198933927590733749162328457012840988860716399901812184342362177473505527529808689974865377957057253962152487894822370572656225834629733329518539009798190312976641956121486749614545883295161238564863331201203100931528585557956256833523034590424634303435181816529007350675595966131312603679380689072020834422543097593176470361978703582579473548656556287725849113392613871093084799866648598202805823403741914585152914806166232697762756893415251319639354831903458480690456619732088040388806838752224387216209597056803290336910930401709093934722016989233273825986962433579893046025751699761211366270545120029505244273160848490150571094498160926395983685723627474133847916114958297770230427146702134695138840850658656985180629410439841184578189182052188309934770945958034030826887696069618924493990089261388784660482730110013496842709965818142112328533671194456814705117381830958422456803705120608026119382617363967624614134269917741253234179544084906400723377297720574671437832717075439566045722214436995971468290456419009028748725205242090781619433950710676460151329470062485016863666245359655468099869394712756911012139125149522818330894831619789053296620263690042945987743654358849725862116566346748660588914198904716741196663579473205919019459772585119006857089782244293381415934605593778099787961190540017347011745960414348780840140293991958776095178009456010520094545467387521505050661864462097183655184744300011692333794533174812182577116740232315942382082568217545049839186138362149688684745159301988656070759067719157744200243739706428643958495791498676711135815708596203895761613686433911640175847921598540831687402474584839160558173702254436044988105682790506157395831394289900440315114832669864653642710372844818139872340219112401212024908909945423283592868603743418548411017817638830591901322734039102617663395666633316892133992237977677300007682335468052147202411297663100684073433447107635251739105512974734964570097412404305531547133973871627102152135206447582268320838979114960767281450551913904191904747090311070491692938142842817438252403417220609119606117108647406839590670690753122398877643679796452379895631322413085941464468132737848920540331968916234375705092764835000679190989239771318634795655675769616685914744739300812793528963409412100332749114349210641209194903369201744391515651851647993584521641397105806426372387151690432217010687609475686727899201878446376562361098286056137143445449559612625057820808629513386131638508061200227059267747602383593213664847520010934890812822584693625414832379215826390141595522587775262812107029833922562305782739731680467891448432975448774699907335489508776223930250081169252813204269905588273705382585438782321486208636008973486990307357678654499112450138874571241283139663553470990615138377896033708956361607112611241361620455931196233922158730395591009954980449103180531733461432676121449090026069405473892764795965084760471655242979994942753228107253154436305556675695936781245349727819761076809644551114296898828774494538263944362763673170683453281958003918304567284670963820269026053527845642731376179649195691908972749287301753092065860358811446491917406908700275089413884971497336297522645580201881055461760544125451412453677631873965261386159870464843041993113542854033476204075106787405082498195974392726844909131476549954458089802875050460764261722092299547894792700338763211510954517538734548829715650022825246903913758463867230091126570937956778303560356814253268096041529403140697384052159174475532379130594136008067977571893173831912527427826533765191408797251439269473705075391392777377632395923391527487662111699932757133294192030577726765412611944704942200361987073711492741594771635028001028151382770812052766640690713050159585936032772523549368528528031358243029822585092873108163255208306419486527661877356637487932040233267313281062959949960806386324139513502695631387753654073948376564342725121750984158068046235354701977026492048983741808212122942954855527227458475312037648103812377024632128524059867244324706760631859062204795450180223016492934639125625596988680351973115302145346822728558351430982185200751124763313456568174087397924520809301328731932940637865833188993118502429621340227290601276036415026843462955291131084846450642115155681728206741859912535586023456478117781243905199239177331558340715050571615353634171526154138030483516618564628191291888321331572603238701340725228646144779168414427210632938985774108850414473163448688343947103814801108102076356405377737222074888106341966532201307654261808273179606140187454213537155986297590246362208987616829625625424560722328717463880851697175044671254198117794994611530231504930320420836473722958411009220548707192938268747257646177565809382270877576491103252630089553062758922464833662747369308757405225598490823772056138714075920994475914634646510675891792703480244707895731383274769616452663004233184356181562187659679611209298034505526760158330757856908121469203888769138430697545876882099863085377551463875316061522312727595492313084068410852842361486183027794292456666102810156641587302717195543565653567086510012012765267635365802692274549347841152066167640178657814697564139832891353096983560405146101221999495350848951149657367468011049673528091797567782722849643161687030838463145400810797331536506545572207038227988685651387705965752292712733126268564137072528883170837394338440413406801176262604896793019638184937506217313749235223838245087667133558498126159312596175653846145389994166101098184890862194423787277989955942608336929239906859704153328230969872406010414850791988039044599232953084164109834749317526688938379880373765916138117786982967213607370923502206351042359085344232161909451666596841408233388314424460218811614807481681550833177573443579028534422731171917833514055418815161848472021419120443277543562038531904033832386469064796833297372486929978751709832269263342771392301214190899599864041315771631816733792518152345672879960989301735957531034441447998135942769491736799605840452384855612705319536204474747675963990925667801401080471832243250757820516296318546341555555582024707403222943954167780074424497749672151631398273497899749418985587641188891021082620881874450642968313768021895835036856816704672547361842544552823726881263103774568812833795496029850874162088707022178677234675533148601733966039865795304329600370467213118672479040264667359872240664678615190505519481822158717165897097354553287852539554732413586028137217707102337601478518230646865591177494337635054119371007236020986297556398332105759492659746269631235763750443225002699517821593518279973375765311416879544946523552098971018570135575891588896686035254048380962055682997807886349789608388960096348423367925443876196000887170332647787273508015948257606084312131325408909735879691428469858079297757291303010894894832214587292794432579314834599799489079596947503666655864961178166853341657543372999816054259274883329074181782372607117913009537203507824741961478752303114581852270653436381071698446794782899892672323277984873169290013195758123484082771701001166806298366951425926340653633288564473188331677998547794036117677499343316936261088501339858229635765937175593208391058101137662365960124284238391483242584159784947474172716930548824569000518097634023771237777064721884818018597431454970656186875664395258154746293805569212300729105286652929815094585369219768583185257164594069592691130317231255983758487469755287031584893245484588292656862171036721285425563524779378903702764256083417943081184351927471034183755825845844828888544123001990609201738632195062809892159814978084716672199311387706027910261291798326988095262395214293110552069085586459600619578072203193580039693080761497593506826150678018262215255956676561263269501083935867791674821166689035400584841672784564703895484396744242802380148163678871991278729930356319504438290576327610139386020761508937851659589968139153665308422819134373527237171061458020361469122816638512321148031434794689960461076753930784181968131978801799195511265184639058212072317000739313198560541993671705936625001759162865657136222456802313277146037366865375277962769535732638950713826742886362800798763014316207162874446695231819558877131072707898118457991463225988464646886990938341212475924956437093606815788843909318019429071002605100661333545573673813800809113697503863055917806044986253197984915586719720122386322272958644409149127128583672819480794194474528338150179687554679638984927099279603056013032513569676567114235013168131405452836364522037035647568830118956348402325979447614296702448462648720483042130182565344048389493004061671667056257264665965942990655652220559604036303707152479695581481736143758942663080886432320662390922780885209001640617223472763841863421194103312124917621456058013722941590951092301830633312841745844740044623167316773417927120083091750005921960581734023067386753927477125197529472138841324855380084861831487148443983158536350104644485069519746896492882743439240854092687772202919650444394629003545267849085348100821812595901459401934038820362801827536601281823851565231300586910958483983544749001583077337388828899485798370507061067427157098560598460965476491021420881360901410458226703986004536596690507741990830338923250430070846234886346037719991429487168754003965581793340173767217700986889973107881572285086726606801237229210105843922923678022566103545562393052051378247422734902593508160693255675117069168927612189793009307765412780434893289972748465135995027528097985112317642293259522148198112417964033339368662068517540760260654230432247370544261827388948458515330131041001647185974119785240606587206541914019933853742592685650530741208197720910380517661863558878476070321195349447491300056304001830261516950799201711812534260386215363248441358693519222980765505458534434798456306686391011928611740823623167217672203417623857840377747272188669153979320315873260087610548041772186171250977765872505818081431232285475935479140563236789689193824046453381224232646738554497672291639516317642556217068523776792638180079415250857878367973608984639470475437957333649489560290675555512121984303559523369632045832580196844460232561960584607099890568510200545700476189025248392112896375806544578212141794928541177470537348195007537111232891946440032777790801959934482513429884854695067061160191278137890767266030927941212504084783358175001370698508286859581861033019582225466860566035673724829523528593036939582767470811954324762932414101622343862548333952284298799856517680769531196582822758812912319853322081068904644201004239357124822841586087279112242071112225053183184078252198417170186325471777666458159304286725337386442657381092581833155255284981324464494265216500720336240775647361206006315181514784620676579613862631577351048247358889364207892378844945659023878286844411226410513527966186496906204144086667074382392625356080383139915810151524453569846368184018733654695947497122391643108243580782773841624256530449786964715065715305161840149755742072546319349688412274023883100730052945554155865367116556847649790270416429698054809428601565428341520448734136305551516298222512624010368565067658038172385530038404047651344530385323494466546218679071150660384649052399732634962365516904537642675067722902597761372405791870638112249642281408114317424724338347899095100037636740156709756584015487917608158442247514064638822170322164737562110191743803890969418169828932355173109881104823941844867403778214090161771333209205107737998677777601982330013967981910759965093219455885606397903337356818516622293152986527907398393244450896978064985598607034335259021554252108956668383481912788119767603650114366969401758545130714251730243806986908578382236694426274046541938619102508742158383599985595403777874107084297457262634982939154641744656792080713680441976610481018735393970208965086017667467020481951309725507572478590941191834029860788115249494902104608510341825305567356458279392394874647784459997183289162413149337659752194162634177556026529217606140084453873582443824196961276893047506525724693911294683963892655659481792024570668501979618047642204842445075664015953072927096016941936366036969870057423718288343358140555712110057436644581865789621422284905088928581278164335603057233452328058325325397762092479370389438932098701787186810250027032761787829502885632801965279366916898147143460873575979853468655724301868432907150872580627471317811608097293211426275017955339444797069371683927145985664945268312471126878664794728461619072075035305924987972514009495749242650957601765256770404918752975232859795641649450847072199652784907045217074342813019393025429534468362268669712531651762640508818006749015646890577654609367889634679569274774157000440411432479789801043607575028443250291157033738342541704307404992027431146898921679284553717554144694625346717437412101354764520798305521200635229860414743810062583542768352196891404542658027556499840888084705339654514876594150296920520160464280164864131931561840650824500343873056669873483896944803222180001433732551078775194169865186107359287989126550489601521934371501121626088576964083117369694511439077185724845382590726471494968658706924376707870255599283411141576960774133308999882713537450369845036677958816358342036697649068230825379688548215433044393279498609861559583270096484831940550833458170332437538782302875772215709154030389114420552091716241596262533370408063192406023666041517705212207452365220113809575525253428724324278440819260561385329893450664771403051388797527354674973272310194989048255167810152500641558025701673409089030603397007180476585974706335309828941418973783039642815710655988924423454527129269340815136050833817821653684281066965170310809278460392702768896020645402930349583834076629471264655543009677119995850897808293276210513094570917555636752667000478627544320929370853469747520399478062321388406841825157258567158617636265212205287149780097829322999030625184008318277700591197017573795707604648410968519380568332054918870802277795196897957259269312445611428194129098371664616879611957815318683179673531014684021407521737150304772348040066431067443925072880609206583051188160897280345121986868212170032938185187699175150515110478283730489163380646615773857393865527044025404257036292344488632649602291663297317476763003897675909872308435358590054718043232991464561303944315676905353824460194552654959096835319200380189753959071745247546076180851302223897702087162289645416649732176935109058144629029598787606403400666823155414675210967178854062570475647838364570293937818261589031306552992699279259239465942796180415844719306417268539234765781376330484231291497220464940286907537084953117790922551778089705258815090343935888841102408108730268009231001222440209419659243480430316203533484094759407328324391115461077512317657510893022418204553532296223748423632604439644256918269108176460526637483610094694312140018271402446361370563595000398989972440605315061788430748206464649992410868933967028615574905363974512605383864090227631930636304193479740704663183245750551911531345275255460102210980409271222887194154503061424137005003961525298023130160342969352094377352674942860424295072963181465978136896893963452502727832965514583870400569848541051905311760480830302894931522080856248269159909455911106426676762546162839009864522481700262603514148266181320455657182072421156012417542494303013883163629527060021823861208087010557496938225078957831296175279407968669455200326862591831580058567774963692722270915966614617231631063312965050414291151965239569856711674936057357572495298259019552036430882233190804433643049679082733614346928682734710813332503730678043450802498539169916699683319214431180217245264036589574889763966865090978893550106070030884896557915924529025486935735826396241537088270897948686723963441517063687685314553052219401346595351838349160177146743260634552115825512567124974522682872738999103518229707208459585778573437411084536975914663190415284499242271393584238752027649361031399856574588652132510222678381044301973350553184881770545385820736820007024957139268478945699069672512618355982593390632712346441570231108825277011474511628465966741392957914883877656294235201924624943957308568121078340742349632193095754420528038267048820184300587023812267695016445966952578329240300954525286828310954159027067914611563944510639639587534570695826454692353314694023983707050547769647560505705450876331686000386831929832984804451723963990243027205978272825184003916949125329959243447687926418742694072716166068999132487899628438350455660675374718502003714952803713238570289478551971435525778319528516964389472233603721995620565041617021458355643528042850500370672865665576846554034675037384050651408041014403501826418480696303164566003795945941092516804016339603915910389556336024844896152693363344210178263995207210628455950350487877156323392550301249749801885415336390607350524061662178480471291930646099292602938090440309203537033639004303705002261983048495134597557886152016579306318198514245129428912122140600057948737547359198954450990402993935011003597662393001901579638633831146727365780710185362750531755765638082219056197378014711543705734077618630166729765975641015051111638135697544541198388276204603283239509900390795015810810714119079200094334501175822911368129397619378320238239833607855300334958608812343057329715114604676740608014401681780154294209641130237798702147799606743082072253748278282437204285245650416107284073882487885298551737502887597629784295039159221537936252194831131171882275411951652315008447280680779835017591630731413020698569787540023358159005046533785630117808836745430702491830506906345861147776346534423655648787782619822856073216901081008249243448271575797024056257379934819109272842251181188941973473253300910949090239921139746787495170681453775475061456786937767887247014204651105659496154985633506080370605757045673028682045986325247808265301885259328918576198100203138112711209756966094798401207836944649603071145064484683827614502263538663894519203173711835570571264716301119942903297818984040560860897086028797127043305828403738713358213104314987568709684245245627811487901360765812389029274412016854533468277344005214004661410946449213176910625649976548045551562988814764347996119125027978800388989541229517497572699425343842966016056824866870234500793943633370650190435642952079011208597288130671405475179454575254097579595815606795975867989785553987521999559646002688087067680082395015805959234359895389404497984918579969810800120744631803663849021564129405198193480007536699981689322452554544819779001854390740758286966925457666040706325612356458452415353206787923922674189875351316012839111925377481736450191187040281558023943982493611234462673654357392695358697772201257923080259624094944675150747427481334349482253534350583559601325213168737362327007066943488958374637834075022110312899107123245502253565442495712726090553353683524407996335102426447327526896294183530106438728776613618971574861430789364698448389719003487465674828177981344474982859929456138633408670632876754305927500660631391140179602739583406802490714008426060410856946803603213299380882054781617729006053214962212257581619216456677377096994866290235836424444150136060647918833670142746489010968700289494652457857530458380650806303039221084994641617232905280634422485591024187986716518021736038775627162719010449679910201610550153805585580465199822570003993580858352765221599317416066093306753324710846938333718138877736509205527607416110243213737145790622593268246971334839864887350099570505059399645779752641404650873264486914536937492139793301548206655279232048894390351185456648478619990836940456246380156433655715017825422548492371654212480816498378877221369105040682360979003376737771601847026490129032778644909260773902923042381614595578913638864453095764927036692344683432161689694059276067951439973878073509502914290971986870311731068673855895590053027010472212634078778235097258105013787444418393087109358701559379228398953203338206094198416744515344679436923845899900201219412154487417771390607690536935180375483313072087838848253585502342372473893993336564729238964788159595315336497148910147141596991876312078832229084355914539566603428280455904931922073429734284085187932499493416192281111658613260885789020607999953979845861943979173639195869299571879962874993529980358424051113409244893947888526761899124059765361127309748004092610459813641743081728671168686336066925642040963110963024938085109655636788709066312072373348709408748421287759084786875341889314442355302965073453206556361160643269497722513670825067551757786072518708702240492495749613386115264150896031018047175878654254590596430902298790954662077334753763754741820410919553027687765952893039601726806238973840743455026290183672955115437181211352629579823416064982974385968718725701096385458778046552790372001885224882201540615487462572687419006707107410555534912033371753722611168995911746992539565386304242292944230606845174034384628832899817574875121513721551668332262688528823375852998959151273954368662693876718638744325732168180843189422664071038378791385562981513287869387542526735153511887975561132537678534114875044760650496878824353709510358365800209958845717271189268085977259366039882438740827615226727145761622674737817465463457299439473140296438713319300486455030323003017439083289457085318216969274317563437102590181326256196781560120987207003420869385744247907261415547765168132089828553513375357858106984987479436961069491901988979777935957458504741369750436847023613273344562467722664628739701135380887332729046249846286313686757428447809815158359437512484326229113337051397328377125686412747619334371239009830214959054867661253355050138345479453887921551693293650819375734894987908256332307381349636432599249464358272285395450073740929492079711385097138341126275809372253860858468545304853204892595616479056965532135920286325428374397928436705955259247458733450810426782062048246167674431255520508726314293791703401896071399348062762138756544463705763878990795169247331448799254131148245261489878100088327836263089162342475984689111879545036771085462921353078822473572954568305238185988957357744143639048771531369690555464963886701225389253479120010911348029333394004077642611899948508475906290819599928474984825319536770738266457234326034936916023673011395349908753811806197716550617645193219150078582440801958169608626987244568764396829331602008497983611500882160771644194645118335197394064274174824034476605911286007050228323499551507394448491916615188186613794410465225290607789852467828346979258318824441827075556907349391632420967094641665481950045366980729732845001302019705728100163264011252412326259266270980939265519187060022881805547171636294768383996795969294995072496630622689006988067729284432517304409652343932750276113560797438288516989965992428455649071499847621437500685083220426320934868684107846379951440538895781944177316768180447379741069530273752800127143446329320112668140066352894878363983435709751746191175564047056129882859441877761947175457638735652516302270782848800757561468965122183565359493217684339223408403405542985016966728751945824466197735134928164872287370316454746060821505645427744690578501261914439001293098544400180724646301222792643473554717238792119105193450201574105696563460897657494630405191934158042758587457554680061182310407159705723200946950986990248910456869945869236743989068816894754332744277503356028899924557632832343847024756790153541798186055595632725953986043993273082697175648927493357374281399432143434176346187037328047684372637060980862601727307124148376831800076510776876863320392953671235866981373119602547748032170961917820876600104302409750563873244462976881662623837068030230995470789654327731989265548720350498069038706235731631303455339448433577848777053017572960548324129380940999275896935741254135967543789219659592376638933468092255578748373738742395502620002436909795884382211460775232410071362683426869881177601425571046618268541257043670649711374873634989880741368564239972628668517184614558481546419642851406670209739360583712898236754644505392747554845718458151217928196876777294490216686118668881141379162710187934288783787894250535205379016979311434116739936041945414151219638295653402978697059229297125336443550562630843395971201045349515597794026247533896699867618158646733290522913839018651114198696997202834336694477409190794965773468053806248362443288158972918427233490107510792393549008968202600398809784860070972324816419320260001636627398528074557772223150753752505576083033569341838035744565983863260780992346893994561591641955870569362338977105077547261486865776882053646317493627791437398309967737019265441587195317046515178046998125171058394883384423007093537320134847417069413175184406443373893534882046065225056780585171903513091436641340744271251960271530944943065791650827837288068157619634716035751875650957552505116605469084900698546686129876876171413466771085868604123180289914270115835419557147966122342713628711656449597592011745104881703943347300224009024944573009286696792039417048693667222580985230474738303027179548555784552371893536188562519369931041259665364908190208082395153498803080391174703940727640549943617605553491166671482462104196430737818105297358573645867156862787332301247473547566544128042116154036362634515581936857634283599675691430402273949440225363777529716181071416495639647618515317236424111613002875697600336259029431653773505079235142979216027458848307642165183384649908381727770258229098850352841225710100264673655892442084829154462957447733543302203065544291245117271987415970936192126958725722079821307308665161593014222185384465617698661367277204459446494232772201003674161343049876622786001954822166769881306863781542738080477551125688466541750211460870868899354452334972393068537740351097673921447987633154911421234598018843840937639564824127694808281877005252190840146458795956794832906601530985108603213528180408009158173955469912145141328399559834111660967165243962184521913056474948248725639285273638172062754521635546492962165664964591193635865893568620204093999742037059556678378386866065783749254000125514390548969697850032576240486293803461520267709192853740237703634537660785991781963247401737560050447755882349918112144033083637287291079105118381083189171495514430249248703322548063614449601179864099630073345362759479021863224356385789491318612775817343373002938250890453094923289691106345828598248680816902475130774801501209459352417705754046469874510722964529183609660462606748364718199933495379807315040018332858253650897577451713880722809164668238588638309779824351100103430982019037354796735482054942917895414138239148951881902627645133522416681295950609229466821159406980594222048015633163972930369425221355946381231235082100910950983127843675510079409476304899910698393541558722696812602288772384808337198563187925689207957606170973422836532681050282609711978939452172439060199455105726258523072545419219403917479174443628416189572359790398392193819516173564461097082891535441565266795541516872424756712645838163486767010900239900470040811401786813270567443930776513747873865073109679575135544054681325847947647966585589559351983380696945946431982337181665854736315164876012536367839746039171958256648157168273214788153137001214418344985211260021901284911038320754101561425203768269915221008241891914036635401892445544073870584761582732147633121569742201826722158187915089817141793705212113375274899743040188528348287512363961679556608456012108794801113870404321715991805291386823139654969279428245902836721077697504060598830380320508213833547063471892248277788505437570154155855433234770574940492402497814494583830685884030108753977626196249531331383374948315848325383038329152729213777675824911066052039387388888342755060310560847785836567075547335001193648967698060805991480972119786298360095337807417530843213675769498158031173488689215740671760604331542148835069209704501861887070547108065978681627882040763041946986631836714258157866016385955384017102318655608391427654390811124900667987128569318040053637322935345572635893849701482790106656807116340520568639078366774898499742043338814555197222095066966814964123095994036968787231694159755145698794273638067539165345762130516858000170224772687812190782052874986695630403343073437360666379276131447568179036067360546722000663331744061266458987199847753949175799068789335351157778537174966521902020949871042434933149579874555234480795108584690682725237742500735611777097688640802328588818111092862281468280087061154791684240000619679246118010449452538126347817515646467461841739799790517213441504278987074026964392076724502846661641243966071821837248042807042193122460616924896720601415382757860711979724787816709940642928117002547060310468605221925058206229865915387998708453277112389668274843076745689853565324344563854225736174042504836420431785475060199048923306839099099964964463705251026870932267047780107883625039699023893440051312167234724185937373188728554546302280286656163587410423019180008416657772904914826551426984050084673024532903583176851881329389308307775300885142582337490585594243472190173746757445598154226340726114074516192285481026458935311395803504743149636699874103118106698925424084639365000126272498686253021268734391715296495008918833149643584102263428857237590370125361489090526037066040935642080665394142473056756990436805864036123595350475807561723996265706519518316738348512020060695230774315194141211527685434659200216101461772969153425398300628951384118480367568546694560636812036449614938190761202840609778825443551280951788652727908904439886044316291507720884261222062265249809329638724952211290960068988313431192897464294089132302530763022919700497392139127807944756540489745295596359095409514042843696111310799743924211140021800070971010748865408822839857180909853789526335877294943961400260174934105913115264125447030379694840617733121149041315568677032655299218181109870859903054204706593393585563933959014865725808097057251221992138426797026949971266757262711669041727625646192586725342133152707860425587967016809140821123660103033526115685571580001647278463064661625595116338626690078241490860855496645765003069759698984822331699543288570313003979996343315800396505689987011582782795820085727124087724625396317357366312848637585626740317961880033432924409967657400507177665645598565357298477676635572552535776195691946727815797821300792120124477726194034264190749357961957418567951485032445599276008993747970042718524839601497394139177947945050803872178939272078423479730478940863987071196372546839246482900021590396114600358787932376147185476393318899716159846485484112996951016268884280940679503766003889103359178100764539856369759062113775806732611007927928214366643760669591657131460464821476961662378871427362664048908783716559788350436275842086966203339033387205363574568736688103735559650475951095044085644905755677570315887528446315369863943451337188173668510656561267351646781518602109571101278343233617321695788382592407268375276262258534072777394159463444777954866797471980006802077056973423784494533754795198955565870188415931601216006211613547324917798692531230963281382962956699849089063714198470851407411036096995711133634262314634112533938590498254794297704237005100335029191069380632449340301238198362166059668833695966885409014480030865996900517121828616719033604425955109874710667649789137268784668664231663754401447018977868371999583071722014789938882974189901768741338786588753561719471375284628266384680193665425174675396460928242237819388089987442955513982973471782805851118514876210101037766577041992351163640741188343808497914955056904610749440317660884647158766610142704579906329838363609462621346978169628228481711727267228788874439331448992056562563416018204336124676256133222465473629221225853353736601749622648269669294513026026322659738353589235650176738932810577479992272816437586556043882662411172343278304656177732865154683643323121227345047326325222813522815205099299462670247754659401871767567112217825084283186131779147633503401802418501679749443438199683145101802868722921606020201400647456416546671826252730221445766612643515332078418995710945101190950079567955553332172779746702655295096788146569778866639844058592481402241812366708253398630618792634261122354527079188316124136565549441940958291640905250860571635531457653885033583890074497908172174757714571011753395433685311394984038124833405471447864039795570956865609772250954076021569876694516121434870827641276156849801298789598208908158858576884839026674004014390420957621114341208877507620496130794057369075252383966581532129229831127679958623843869521246871139217180012643465122902567464303283940742824922744408968435664541497041099522248893395553241760673786439148304903867639704321274368187316475773096383326856152990887371855530457368184906588160941659859481053276057922742777010813224123051919085571691813690297981218711162063906436694133867235628177814565954687124455695169229624770081620249811170009594348587061944414530469418734654116612921942744711120319823682144352407006224291963018317303508593559665352280587402418271428411669917801135417802566252971457798193189824595977102343715690961048088576265843717011959187953290072123573749327173496638560588805636754316137027536716683048520184374130480660201792799830427909000383571182422656890055829944084367046477277901860281861977063447066431376407598372614660793006880532092171868409976192807975534516995305920442239061486474122053199949869684663714839390044342973901966089360948864104191477854365610003987633637305060753417177029904244462468962528858119133168555421448229997112690126467378772641788179586472489240933677075826761615373791285682429347493058885750504129290208050598740240377225912822543537830961394442636197425605496312470186191332317592475798068453397417040681008548208710525933881413644356023105239757986202449864660921598727251935495853888006348209141206642116513612498976439652687069786355943876699891686673116721045207414876993943926497874272084337909480292812068408765081801023739363661969348801605959241598271100349326714590022059408564987581577872048099536245542510789092183580101299108716929762773897231071709657916691506525143783928402529232609618296284243897398937893446210191722909487905931922559944858110910282113399943236345181030316641650360504047631611296910466599326355405107238040022892684857893762439222586403905569931718446190333226495547024110952325093960724953965750756476894169771675904006943740286693672364211817075753415450307825864281085005565603989924187144935663614599875636029531287329077835621343881997343625927969205415146266681476736466635972814105009830426800597751627706347570489146004612818217729168364212527238430699100283077231114998467617841294529279390011869353978431908814352918014219221504433599587694863245267327981765274442272231356421098716977572325578857909558500455489571118803701423350150722450394777062185822220683486485332683410609440256408647450230803288890154982658521134102320537492895053846597584006862563659028953269188120107382604950018492728680279926280385794840049719145932692500385698168345558027242572774431721532329308289621453082273605350609497502720902305282788236557765228367356698304551840935010563648669236383798577710369826567217326562893682272466812792507132042229589717603434060784703205671651756506990147943350308709504359959216700900337400357425684519486966031962037729996017103497435293727965173282849828591013197695813402277122716138522142256322714850631123952003042812812620514664864886590815738751420466283845151433814796566583046134531162767483565634877263952792343745967269784772060764319017804462564937957125111528773427281151489620970317305223528255795802662739642686768023080027488979127097559880705987489927222610628809345527172815005184640760726561728473645067810761543306537465557503263724693539781730996087377387217407790009244457883152250314822649877350403359544020481025695033298660714466263807808627558514977478509518800371599927349386672012574917134808557663695181079640303025879278488662470214145406433050710572870895675541624819560343528016334980091270961631382416934237370537925538313624611863389792317138489922880962735542142384696205611997538666284027379516603871970459366811976589431818220408219943742776418296480343216540994553936531058903372276403587138411286330103634330003903004720327424429678703224462482552342784827275607244546049727942786197029644777840160664535055853172692289637797294011976826407553585930757786581018112442161698817694362984619134339537535245285701485787661034976808180820010547452843187643383470018556247504923967227723169258790550117980944369708681621349176313650695597509698324304474127964052839666988704836618418084634793504181851820432291892345377495120226386044800352862696897345782623539117679302155950255833959998415409582968754143644373530438899028245981174911159337863661791791474709168515167349136211977988335410130348824874087177391649929546354748507862100129936008553303276108826605344036425334762055629463367097504993662563436920268043362739063380605035065387561745932918245990119053105494661544538908102838763427735942461992144790582823419873936860680286564542056395672104589392183429227573414301508561549781990299571714058305484462176555604498048975460376745231571991170417012064150688815080920439243293882424003688910457619303155057635969317908308458924307422838281760302529488819165415032668299551053754977141666890536034167226108733550072696071340308976496838506414400551384849171635096921070543228546186169821179065253200255840064820656621458458198656927737335238011265106475677054581388813787334523936728615689880220790382301150796472758882886875805042905073956882587473435777911862351849863629250918610655247592767068708605770975610103190604091354970072262470696828489488348896562860092356494741565483402988988945071622040204254166348301090736939854300126744005630933003080680155059818272257870440028092036119971999524203291715656065088537819642125290747025885515793878916383442137455557964039126518713095910907313413549241555666369160565809254327017778113365114526058531717001484383990690414624501569771159474258149080963457059953268660208225135286989096863040543609054403776024155726587308408145252530363973128292370050589707428948112183635845941728638079985261366282691830952190005552920516298200834412508829202977220905653527534811247130647797746600570255461175271222117198490314929250889689333889146595792802660959531750291804553470152270104459078016427115679591199346294227851436381467566702074110062927938846955573134057037630560965071597451951253249474323263683878703297616021873094736889243060590681208416782251057589479277437944305920893157315472041847950187138852755290888845374710777656040187375813734256627063039681548550477919761338905308061953004502768623974738705146975410032021189364694753125543081440037054784778400600398598593541060497076055563513202597776007252068490282922139545392184156827057495625260662838239372323918688061202623924705505643108848896190872612489732364136385748439437926868241835072994039123926397276915875546206413470973474482558932239188242525190233776646220815573342819394438844439308975584083323898612799192595375951030912071644801286932065455108542776460342014782068917229800030670475434410419006834065607980891943690908852619113535229447471889827336730814548891501026332122887828805551575236035196352791270078186784722815651299150489505332005221738459401055027762997933375507720691162384652260146293796501046354339373913339876029039416211373602593227086043343274448488584137640072288872664602567993623545410827636134135445909730132289079761746915211515521631509852774496049366037297370102020977889048933258256911198081564512419065320771567486094663807565818034955099012236066933478632998863517420794749340864423218865279630702069754188681711501615021791505783385070552039573332258124925951157079083543460736752579327134149356752802988179729026507016241245617876442775745074477522318360417798878645213981594429956268054086931771186726039022511414850767166253734602946954088699646805717058975512311942482273343605814147944544106402869944967955533089867523312581722258708760097434534906584950192293319651565727503976707473047629352413480072259184747046663052730168384984644797327034741714948082679281045175987468424844861817895861995419164299272368860619234348634573762680323426798595105546531003006615061113917435190747788208720113416442517069116459199504995446166730427523181053232914977575269684845785503101601519480223360678782469146049184432521230363159186776594185576664205891044726497447420746622417876672945724028403734429256878664610205508355419951890367879815835932408290823146290227242694875481021918213175943809511661708021649724511221897866554424309889906046730973440336851235350497567034326898040233210912569712224440307047168961375364496041117268219555998901634036832949466330410962896862407669235550035168819381182038581919888515069331184081322348165570910331469877499419783695408958184980119220832732171715207701274906194407026342228320202783680561258681663613587353425029670925759395088681947678505448756891946749707025455462861979311147006286645782502099648847304209053056481631756319597641070441118843717699039799148310351209454284316258106783012748401632382539803693314919123738670272482612605872915054280535252089670152806138089687316774247158470337530003809996980483899931085069560799790804747260073377407258883560919297777754137949213937712127503212989955903296969743362304023678326346323800793163792380342816822702432082665426912214777330366961821728621811074795482643870181568881801972771631612278160548812398656812331868158117710138441845514875862121824656577095610078831959619427183039723529042060891939358082298384120181671548564363424504151673758151397080283501673510920234557337014337192846815182012494792379294874521328417274557039678735468226420732219351444813626438420182291476338473915913974265975374504395887387738556718962221300576440831802758120293857022200879680355958539497739837397294542529107110743366965059300648243626166413075249364111184769485263537764857445929620618709132504081783488385543003362444172502152551786785276506019002694600895060325711105718904943173597467958391380390120724746484259556308716918512180801477821870641405183132962212014286680974391165204585101064090049955509248506809509025027017674196714749202449136017396184185074753907394219019380211656677783441874335803080818949243292555263048954657225442243909988713735282062417302916366846637082365619877195964812273647158701269220193647723838431784023482344679808411360708876594301499605412576927713421040809458556469715149691514140837211921677138345004743266668528701793166274152579229868642966508625491110225642105862299212089582821440937454523389561007942959533429075679106761858473332653752306124814493138939078028058903144977293767723146233471309794240624470010642459666424119354594385279623548714880385625924216831271845018350735266582674636404500127652871478346524154729837233652422714822601553306130184366212963852368113521437620788421777228026293053941492395729562406072390335934571158749751984890640265602577156893402868725496805106621694526696354418865954851512516728980124116135629740432459154672714899155560566276201924578284141695993143406105819134073946093287854736967873397532631440393224371699018510455329809299246453709433845625175948006080645579738989570131939702814259189765820632928696135853473202325437041240087597636210544715489494690424016710570928007873446325855126305174288000484429412286818345400198408157750849719269314116202735146919023198914361115359993749317218790879218674478921580948278408782163278048209987498128034108449969988995469816209365116014850295833423202899922108637767003731634252662868881053863336159742403892617669714236192049830772281031282150697449394944369681801135422153899581280630462306505783312170355769385835521597751065236564230658790596196956743703870753191446559919781818288005294737950519115425339350401440541423545376228186883609686911986384786155303032013888533380104138440462259720095383318397890331327853294674433646958201917088132505868365363491611911581385966473344807725744713959022949765153639705810342024029740948113843659210631618598989312044024848991932711917951356601566876241201595842543854004883894992829512812347193906384682370857892978064806884403710037426451053048292026851018491372114704607398713109484380427726227413992467676090725501237984026259780471651842535334533833337685892995631459129507900496136016480112590019590190843676105714600725454969380039401671563169520342261354262461082668171535253330959276102344540425528798815283348195507777416445411042212148306285410457299492506912689541510464085546008187009508261996557055682327481581690544777856275023621427105033679509138575105949053782119068064764438994896217288593515874264236468731727289767365139540309001103650968376495627121944259423042245353779777273126371401723151442534944031028942058996852387821743857079100802658210083759409065186170239579770105939126551852438286712050174996516156705806086745934302171295686856051621541437783453081367809222365243604188952647423967754222539389048687786374709651850644124872715920290045357125317035814447896763496458192444757465930874105893467866210102057519462572476467572235730463646923231017081877967277584035893283108206735710994278892241657375705181072914905047438968302970088927419208745245050342643678811924232071391181090921425802743753995696002675426055537053517642106027703629509415765433191691459532641536989201001250500614062326336993433699412212876611637202916277870437713994031599523359317786811697733173538890812482076817380372530524744204481267348216174326935719776935536740220251501572393421606421807238952898877879999416942641552679616220575413189333428193412802383160067713607483591677472377445342260456537837546932968558204256377940417388906720037880180657651959982739617380638999028435018486026728227685386994463612228814947658093532774007849629237639602192601147455457991285893101308381075520274535265666203647220165445074865559886500228513029306277332629501127508045775226848024278039219304493993939957060932172568380095889510931438792002281762203709233961627198377019186037362370179586878801739861699365887069966066145843029160874438735671261541622305702253794058680481786485157147616646334733289519351187778991386184688555274362306017768007184955327758061453482886948460007003695475577809206069248600782000840630766574317628332761131724102523112156606099135767386564335673074034684777128935897914706594657982793655306316851419518196777421227754567934198730587101648319462927338446786443977407348061054861343554404093569685423270985062459122191876858417115300929837596989278335788362195260391894119389855022920428721343194310108880999687925825730960415604414945333419884976269296830760686436468287414073528980442333124028840030594722728735690079319095540500261120982543160924752727185510796546983171641400095242186496475795560041908242515994920303561647834865296366341841515165247097687611282810657687721589406792453742144230357142440447527677764498997060329068626095593131025684181067380902132552445640278172342839198113652155136734220742875841745525079100879872894206650514847133183283146401178343023278573484485100839797399834512462561271559847530725092890446281904636032966331965385164725632271494858301831520705682787959171743649058245212707621712461915216780469071166967446751388211291279315554040504472268862370973378200791463726598340633267356107691936781937330117109358102429957903263294409691887841893921046697255710229855358472816676510406164815339136893070066716317718166415133640404929207560622929759182766788486011120715723700923001097375535904596182657226587364952003640504909531815557583388565752448117819581096428104570954299439479745460703405876121499214256710540358056844813299809633441864138390895882345634277049990942792653829837497445078467608925378153395929118282011529941256872462791569859323565076292956144657015661669659554703695452724215244900875754506548420960924971717652425169246402268163026040580732099784863373217734437449451721701431204270325518574189814250248094572850791473180588356449313704312450961182983502231760960211517104233525241531286423555422130962569630380700001810670304149768349568093407721604275312735720690883678627478369333212909462277615807704184712299589621115377459544085734395576701940685435922289969204115980528908964522051153412224362971685542064140562624547417987669916936309791337498273587093308884244890856497546022530762648768233694889465231561702648967469077006740777944157971682401638230635590020230444523322242775873388920311825507528317407251587718526228726526143356772943766646400572078879883413969636797307570388801092237112343471714171798779688696053201275031667059716547113720593633123020476694274147446623642848637469147993988390634047186428947271482252682924665414510956651399592022682739673169825184867376149101643141220914980488901199968884721806075011004055446571767072411740981627546971518825714196926865007670110404909712442315483790651619983722838520771849715621312463115406816453664481884619229369183406775876898316834887845507455972817501064362490835052249910893108800275912588710955005219220217043188371770903476122720778256720053873775103348725799748603008556116509024468965916279038787815191683827339507367873653803055432500447236278244987930068131497641815750947757637946692926927070412617536265021332159882986849246716966514227425000563729399567399697754286978792790501267066470565320973061374079358688042321704347988904096702007230468367180567566827582150186701634906041002268304713570404789561925590091914261974752051012094731669642050557628264948465144005984203356361650067077797898795440691691493548518244169459755550469781826648770846997545130245489541505694641205273182582679724767451056089905805045747356940243423461509921547848574447915238518095037592622481534753862708830616026006748380865921193999756645835086224899412525928241014940178575380759777946718502119262501494974678746465373649254750556940846218045480597990170467850243823708685445359690729893391341305048824685775885530064788451355057090623745444742558119283873569348442583513032089927605282586723729547119453122360400419354725262320411298119988863998647624641989632960193050440229939715617210144611486085636026053153534815773517993052178944432288120437703707720960778424151828744642584040683755352525021942958942263457730487026860484687327592296732479355148283796947773192401333125742470512306682389517662396237851881877023451760203689315386671530951360158612049275335187447527024983853925419428378206421518838523950466261813030750754539282576819523746865694380537431262710877735989047108857119235498639956079794625553749733376914687877560088060130969580190662548697892314604988326493966262037139544495820846827779274355879892188917920985528309524526511272170455263319041964435670903377286534127302189234597289116745744685770744300936133286792714726158925945295492089081081483543232751428590615911264724673163289569720221745618183042523276970311680695629911984445056757774411120561733257281644829345389862668634646847897644744023947229075645870635511549019847598590467842094668698597311791661324359214821843529562884807625105943106963844277766753788989989700655248146262485046547443114620854052798594238295026542950826637514059903100199398515274486243545565895625355035270501547568396574701784918696382659655419073234712266129442400931490040573602923887730854037911682507928840579294443187070783271812352267017885263628770993042527410147531668392247566901908149735309262922855762379454329106193964854516180327310197850235290561213195757207211197215741276907445228756098436479819104081752928610529838131826414384152647122871908697666573337624422792699121352824176253839096673471250628415908000998585850155008226995025051883054366202700616814880006658691148884705491323489629441488291905254972361297490758286611321594678081165170643790061545194822641866470785206501033927759954632509875424332508098070092641354925260857958439201531782298467925600362064704843091203570996821049908886688101147198428784387998455281587944990944090328246599095766283340497081384910185500617342656196036416776296028187371274294149730129067418662463643307024687805021990947075083817919505140074349589728693840839740681619585688826558990808252189705907432724001517213174903733207178881240023528477050441069890299036788173552771100600605887241694635525622341039640813608422006283855513124205343829002104070594906091895165436843114550992309510658489998731716823405710630277453608139726813314934321244796158095414284541915569768035099977215461153393275197549651530492303340870465544444288934373151318024783325944333012951798195737948000516902078021285318978282675982628053592062985861459874977622588896120914339055411958376068999653791125006248352139026714092526078040103988371416481866615977480726048054483911914369527815023859220914184531702090381391829069285576451750268258597305969037722980838456759421922520971234116454738555003660536733278974078603751933793428401646893019238351749165708726514080338445720003345259726766645880697509376638252543085112470237356945437024183272666202783836533366280818139954631589781790866179188797458326766274882123066904412424939547681875662068669056565799448712461896867363178634271217718763820953572467342595225421723853662237801729786980741112842792581485853463214715571322816716164708540999189636678200792243506707224238177018785766441732322688225079401376246839640777461473801801961672802368252221594078292226860093947321069112915018247817433244695940038092923630274643988886587483763768594111097600462989988280397521261312412433312521322604085256544811436241655555453895575313389100457268916104404574699332238311341647361804137818473137946076824326362922159108772865606996570918306875119901148292202381980272851808040528855283997160428775518170522367300344049672367663078305000128693271951022493545313769595785727705351084908768934265190660225069676723443360727240923416189015113544347397446513211947996506601630355702467629803502119109577107116344450706707781944436183859621130106951583363744154311549448169731717024447283273999427705167668757938259181039226032917553945405699450337300318548995872395570730019151352099497851012671385646934860635112787140196290593756430051324896719271399093136781028599853488056233901780635235793099040434308212351828787949008894693755071993758206534342747333468146184886788614246523192619836938621070737068739005799571793015513857984907141019444181696110647457355438057574229793488921473123720233873799841300580566460623729150124297135595403179891528320407298392524767828435296441260740778430253288356334638298562682362353694913981077841454057095095885997902699586804056353504625454535900522408501545728688979465140211183525480523262111249873400643503533246487884204093274332462721861873161063464055294121578544457232450667701005907994920811125060635580793488396736396469995149924691703196353763468072155333140323368271695514588593801974340672072467249338098457901997145479408081314618239797934772355665554777744040821075037033446306628492549487499439455937705635820424213991389984178256020134445878035718888735812644760149887758080723182897782459009539515623687630545012915323576554209374679658403139667945687449063358786934056504081639260917398086170684294279832364586524600494695005267594123489147313128623779873314619934190199073720794711882774829757713229570925443383786471923225911794968814801402713221890731876790022586218360606070793498763485354772983115184208856848662439686052124612091172739201148251072118587267173918357429069726042972847931935199738115091897563268829342771869388307735390615326500659951264802994040873388249779175455373906996850007612696660068314550108383248642206182796158529158631233530541154059749501558758048470640976911190793785552859481854624208869052989112586793334745567341132065668095494326124483410737316462971457579838877300944520147910449605059818169130430296820269237568455602920954958723747138705955634067854601970665370849703966849457105179540946417343390329828176211616798712201321262636835324981516546480226822703465920700368230657325959316472758474105205139635319934929572935075638847605819845872951121339961319191146988561453367503996222223606570847840901607260586497527942990043941617542948556625015102228439215307478035800587650489606055407133199488905724500887198454794867817064526787627688033623841578960269560633931220112635345524702646546091362272086367835412773885328428745816719347085518067183538983738984324285809051338537619882703783174056509875017236008925093795023622932748622965387988662656652205759475746604393402274195088344491372805663928561970154995859530870506279972351133783651579658513641638563403385032077722509433790221780362098264512745353796470080109307509275539225020962708647376231612098702241116528726204107396448800352024745026311377923780340052118325168365880951313665371058809123094651706294271275382927550749032952709466817930802493621406569396944736441792776273523936204498696875318666683119644127638911653570783942686139422853131226623697409299415427385386192986762456164601132665380645128620983554973745408367507677135195861974610569269460285580759041813577339325861696378793593203404575930040188698040418813242628461943677293591456586920787189045308214353291110046145427268075237590162211714482747069393950931592413366316405670848462420084343400230577876757116789623591581263074658560910041224767030174280415803563769514157484860082828794452133224186650510828265595836626062837562444586901562265544517051685195486327761725672125598872757055213791246075503727302539603052250705737553486516613518750900578014140547200264846316499207175103866186093143530698633153276796544129024793422962713978556790591387586580472050453368686849027637915207432672438875075886414531199240774397371430185173058678495395018098042478066960136973759436110113942468810927419174168231172847018348946348944829877132722839733466441735618087786574259061946977854854087893688309090732230692521502660653450988168628069309991418030351064402526527976782318598717823816631695077654381889764525790384285866774112879932812099243816744109633460348037950086080993247032482974338382381172384043829968451857632548153148386728283631622956190994881488296382974626247004692749282540143178086390194274205217148125745185650132339243238808488325048974065803314465178859000751342135019641185570943489780580852143129758370623939265351862412052059455271235168083272605872604712737759371397996804246688082051651224982935510253317787101520037558051130063345075684392812251620999559284587801081987622655331652020395582033479873508722606055447835987302411167799993400657844474203080144728298786038056131906234908294829549477105661353679658868727152769681999781565113807404053578794587600268589984497620801669003592101261543890326236054200883463611026726704778147752548478893468570672161371801340354685166702612041482309563756936071569517140905413115847609680895775203595353434634428383355431820686363700723986405396891922705604106800792682015771975698780660697038943254207522544446513206052859365821770043677819858214371353120043994746544670725260672062420874520649110375955525746357772671483937395690398923297229615859361262791339521061866696437714445325452650308409387228913827547849670602182707265461641724739944846739351185453728956465212435503500984132360711863898568638454797752872635822991784760489353074468373309378062828948282081250697353245605714411853218753527859409700991850735811739614438072071995173825048834448687520983911175436232428769438328614653975871815434630225789464403711318204377740822062325163877767326468269382140704867603945073447497456743425363267396894487012466473921923201446001994533095509300024030856475574788486054983176501491733744685424416771453730710991338989210098456011143473143990504436253329730187014249468947220393272276147232625367276043483751768083679874783384465899190790585759551292070683259023340755300651420476086836983285023272700567517543818265222330875263047577501906178484946334748355706596960820263346558543865429492619908549388040515029756993477483832661357876725038727589882962609643872619933296816498108132967191664400924932393957680471872902875953553800279473513229752950033631161371489890942904367910770285975215613041994817307536576019731594611487511620512417762563735079013790348576214753280179557552793956652630101283656619464892366726760665311827462002899155945970247423470737581048911090943068490574645147554969235792737149385523448715712983597745948335286897921401119706701230076422864314109434211399326485388122239042171331142331222773587128463301387913383758573793480863809499812947246637370507569315963966672041143046932633921448682635098064027130983782133485394079080632800448602208529975954245263031883865158473809900405830453663028684153854676811768555656833192002973672117886906922988623588169601359276389177968613573329299156045514206392287082012785884671573693444664184223598809600079188975734995394198329810121513365655124671089290464731007326726995133190111281170153676021158374982520213891979430238021322716988838143623096964741506360465455072438078219060304501127990605605735434135178078524211270289774316172862263802919004093964731078850930621211633295042832239138936374455560269367629184621416273060762611843014638164866825430457497348457792744478011474583852770717244053131389245141944171912003911226085952402930264686707248748427700379087944294619970749290980568569994281619180872597172555966700307610326007546077850766170360776294521415569298222840104186663801238635939985777909260779698965533757235852707113595147502046373633111028537594287089642729663375807667683967797815619339755624497244925182046610512208851489961589383083911416510481989193226281008983644407475524790819710030445784343646412508325187204669082680344409847531535677109927810605918288058525212084041289256877153073134060983432689145711516638742735969725550013718172521164443333756780736317971213391231354319816422666517854218553117608163982924718870649972935657606603177438833020816009274111531269367554653607586383146276900002942819059748462621813474669294699666271117365352335386807481919713543613931107491773598544060910347305471636664240999011195924019070759177681050241289271644339325061767993496651642770853755711399009920048023973879287402869773470308955692481574870736718716087685025771065032487784010985865208124612122608904137387494058501745621757611833711038169529698854319854111067182185045981464758592272132171290768499463317274745983472575884965521572401952848879242796825308674552672877853516885752831164867284749050104982012923349999816857480095868921573474260614137160410201064425107218536027049650039260753617490026347349340689783802049852947014584626486491315837811855030435421461500342960903960274691281349798418791442147053475902562471320919713984410644351741983892261567371512484450691668362130384804583974179891889158175989615005260616377962014407161753408051764451333351502014247845188012329006841541081683155357742834620572390128579173507291820371026841742524102529075075442282139836531187338217249618295803935313298330473952661603530754710182260512867738540705882959657648545678254715626758293986455874018229930967049044737632885931954453660205699692505760820347475376136392905049056935933090708803298090143515485752200982317335910047592383722463560276591512078753137336380477169646499297526953370418915578927981583794753044034892109926019330157711655850125582036538841774529520299900288725434772943285672351205303402391468766528191673337578849995323780736818873437971811721712326821024045971767371927679075501698709829817018671152974202187574099524084099801719268582670317877645643475688898514782242726460429716084974402867627653009116853935706235927409963542561378921942894750563410758505232388193614932116816607220580339547881292815121079294284244074071924050580222488088552834171446798398251345167821826778521911594844989502100879741025583063069225668625404139623300388612923812728715604407337585994094379512760055258637660692454044989758301933368393474136892477569937414124255518993785168391558054783020357150708928388605029738776438918775555099706865500471981593966270397441673672182270938727455811113512236849138143728161512106084696244451317996869954793651916716106352588474078330091632741709577906824191424858464770095707002441891646228204431520949836633082902273751550432489619070109949748476780358757727465734070052570881423012560243169237606253041359639168328378257401524747458899178560415185726403769223847711168400035041813894913380277435868952919486175704892028184099024150516154767135260789518521637490110449216057381404002754133864669209604240863399588609155247979889762707210824386428424792259510377969750191633411686405407229827021991006595328366361154868187658250394132307541609295010615767495181261424525655939001069049256526055276498688326710031847047890472850411397187256568493480497624691617590482660271107815192377693635323006794785357289602430022193785891930356689006950744505836187745410666178679216698272179258030637953755373233550534756776761746850372034677588840796996446950671681942261484451027918381499925983414108013187123588564778177250162587603214511352545393754981448803098246369062370841132511974171405842803634423348272658083372356057248846598222326315794483794806872210990868607275301625163556311021650620351682422027707456629276978030507235167552889569555318204050058466796617898447280222415377667255058484229257395114735265875788759513943229094320689393723417089720679844624296579393660515821662579618630192503733751893589342418435013161226351547608641969486850275758143273907079260744831090900966821993701135643579462130211632868386719070872896235205641698134073521279511068104209916473286673423505354603753621346978838654540731371912546264976969273743486597262127690440606604606146791133330533269278527648807667417921683464255312086999321060032633270674989404009323368151253464469575812686199111533333196237940602251747760433068862114626653730755466136874842732892340743811892309971616185689562470698915068956942044687131358187849359497043856567200271715931227076234869546903859716543619432388343483921995248232564444992832371740627755570976774205190576426801865585077966000838971670547617417861183468185710622472495682552630339300533003320027083356125252877767331050503851536250524285366425709878014216503822912011036687995280293304686753498433865082327003937265290394992812853433127196396146260726086482639437274014593037450519353746100212101413165101956526045878412952940484852250284864433084835451401646576508395052167141109855995351715131858255451030598767700388653347383231781026236360282242959086451419534578512836473931600469355077386090524544296338988890657840760466585926769889071040737610369052003435946413922531448756411998434934294153669546241342612061402269937861899775653232585386553548035023785361056901149826495028620302171406705573140774352511518671663688355408951867689009086810163879053913594439417052491698439506016571364383084617877623911832974994309533448606139479588934704222783524232123214811533284634424511193850252256330349280917118533056773335696911621171819595354123981109035293280782014367271934113276889593737788514269519920724498364348732163284094015141581752985061241157409518683977905561143409265684154040882864078848584591807361591124545996461767741678044027106165644902995346968811936840669808301653148938092957235849493632623652687675425664932404441105421008980803780411031561073230392498663584129621564672598857323928449264517779533956835770983621967617059229763112215439220981459207709435656783108417505179661016324552851790908200243615628783072361724359331248212342387588359398994612449158283331364413027383437103713463521873425364016614369397935212758127605583902431734317308140094806123246643409115655880697956151683628742710937648171150439624133540007705149108907896638753619918494235658597808365532437474185949719686977016666618978149638332296807826167510882631150311141372448778781370426626662957655172626494467002008652957013427978704317830515275758455198450152844119187789534475993836545968563774555735179455447687896175693620007688736033699636543964674159344070596514253891215641355439882638794487665582160339006022992522571221595316345483163730620138352021087182722023811304077995973114218520990447723629806915392923809717724956592868824574683975877649583688970711486202740746683792028344228610551266662875776080391022132416670002211797912555697846924805612314656195615974145801994688470635427308191289829170435410821925063262837407336870366585709833432392201192719421764261387138341011328639205413169818169759243482887869956077048163640107518209706703868838579174511290103575506186145456188641526734848165307468222206721493271981565827476750483090394199470385124665964677673470872964528084671157366010995757094309904690126966957860663809607099148237967051813777259500817611242131141842027248883020845412759876035476438543328744905215692736864983325207817397680398306998334633904647550425279211711170936351055117466955637424965699122418111443610482963131208513301349490964125347558858730425791110254455786969324462585661939617991270460551246525213057382464665551176178140911455189744895721326564578759050838100982715053395836291716250161820153402906351896567719516753574979197188533100928243840631275089741578223581671373674391121363536370196620326034985983616048176403893763718680231599168926636559831975036015116208659196257409218223657809002599943968292809892740325178427978889309170619598247695580397966708243625943909025070363676641416342171601141508021631413630394518276937939237934021982111202562839723989041398387210162439602750899804170425010702236421526605540166648555672721145499791197783489820402994538128594506500268056049426527029395007660931374725150907826315973579009125545908038323591218515957828503242850655826957543313352903215978150989710962062553213620547759460135856711004582828424636340097733586711055849631478053121638493977173066611198134448400289631349888932569980728553085666244794070571766287150784886648703196559479704857223569152694826274936355927426134319182491870070404069579184207337521067269588163858023194490221975220799622920352090633005878507250950860956295785254017499967670131290456862096953241776441039287499613713144589551167173774330137246138594885006670547948401126679971599327998639244456330507336943314213889822382138741914979309076585211707091975842874075426138577048314699253607893834753083383187564599374617956099741074285674189536091244991803435148687379891528904102725198333431345612339287389580430876006407862920405256508277044861596168137762186864465156076369581066383662754121924326878960117047398544706068210589141366353692702850068132236889962172378386095184128890398499606371447497470294216041292883945655614474822394048322630684261679434470510363453530941436230023654808912889523679263789343758928955137492925633202087423680585864997612018821010666866817872079497788912596197439138039152767073909078032891378090833276797772149851342476289735489245678377915062317512690736796867989930561908650482905657647237436217047339508386518012122339508914460663091947425457428861029698713349351654789453746626911313710056817039342572090497105957296823379118136090589338098731798453050836009284245767366032834591990423451397831176736995736515102669468872649957561550763252813067609320482415828951506588549248180122190265152175854132579903805867861881066307539105905134506097169628640209020541388154391398323854565723437000681719498445341987949219908311355008099613436702915140914618047199174509544604057468883229405579394348216710351864493891860287674001655549175790817761693330880977838974301338677098651722812290557253088630165412100665948845371748103188854184709292279583647511186181415315485439937081881207705807201606544466027981104641669978056700408666955512297650873101083297791447636884602146311876553740012458382885058366403783069366621639619466287848453201385246572197445186928129343539331794338857519424773308353601012682300878629696697811257942676450437498892271692342472401840958927089807796371389700540259430122091241295858243182864374025220932608637349710487265017530280699999905406128571184243934835386109162804352180792378325678729557978698252210750811372509946476311263212355303357879071473089626187509547108541613011697164601155964406295933784391128964431538917243266087849368381568987219023128827615669071110105954369640966604487228187948776412745202190999248198084470068456057384052249634371978818616451823042503590125166459413079302655202875786347597632867558388815727757167944803528667560684371526082189479631596583985527268072575669934334108501383159171269038585494572874054665612777029986363964511650274026099102297833590007541327348712565826758286960592578235169028605082352040024313081588398453231902272989699679342168861883451829070576951103735460936241684896004335726699285779292869809938750677184777205169718658421121517701692855304063106512238635828374367275348563551906488199298188138905339480098759321672855538819219811701627974938730150124277662873461637230225528253103965090402298878484734496987062813376340305212931214065586048796694120898881994368194927972346448680025392630055250057065256976518578929093463551160613385254587576700179413358419177129611337614211268388410954941535101942765425472112616277779855010801454144386251819165549371777243169256283780332006443356565485589290005575816306087450515585219667799374580278903794622105774962655299627237630311231616818110936431786049212400758993888062568940002074434927094097164027353772184175872055089559926573292595234500052050268216219160603526898146939861583873177630556101946526785505284370776536941244144905662000800039218570874570836078931066369374735683058273257848607690021996084659883401130169823123217705502307532115393680721109753605537098983497519688521520033768952620216989679294242874122418874730807166075648023833067691855411914670239983184559304199758411879048173494777256448405148673017869239198094499043925727804778404252660884800348984405295961654365850501447266512700562572249971734595179474466949035462937553545687388589197803693562838548580269663267880679061258011456898220414276600421594445268664690322425421161634092475182276451584798890412558160160982823918714994038508366336769378823694288194398678633939992534907693160052269009388273584183046795416309465664487755909273348720887887328711717588801189929595508432360681005287118882412384551777539401077979220659794184998625706708430558986365930546348301087104118273828325745198368453370531548839249880097576070441171317512849047843209265419002012785217016764012724691037057706793203967216115289666201248390731842949490787984968461617132420498794725825489585932931166695631971024560009720190852930381566733605852156343650424479777191172780302450492058733974400452972046259988362365769458650998478109168298237832690511298794056300941195908069402691660156356753292930205607376597278481156964934834945486014317861027865614072161620436198515044589810867615688610745880850749259667809332470125794823140923970887300347744842433251063824762956801127674387236964084464581660343292809652740778983563549225970254978228264160364502841664335862408160867536787702857642341491812223107222576417096848541414862807289810164681897310511448769696494082241225372383970367999105583179030478136563595302336225105384204017004589941102356563956671128700460315579692258659040891743505495667935730474106977617175410543684902065398246699455632022563137548789249548386790345479344448678162976812851407233779380972087389102905551307027825407320417837432647776437479587928407991314438726609862791485955980202117955968909700182965372396660998184659875418038456411325475860158390680440625424998266581376719389869390573367967345397120046542634206912462536001680851612068508067281108070821816202817121053921056237769958258283076328884819402512143681933024398173344033371107667697043745549526413982037523561879591682822937401180904412750171840578622642923875882672938622153179127821512653442221298315933305153516390554873733219764744825808680298941064256079766682073723167483719618614897921685338643069016505145550702878200401339710129368932636684704346822241774851839217653783757931960934797367629415624832172570880432172788566634872423438456291895749727205336582319842826039842997035081742246537952074807902891769301629409141433503900635433169956431160399285232007623776306434174356113566609606125381889627177624320736165821359777670277991503600601171357344467203627279283004423199083279874486863113927233348001488786228695470229283150643941193292587585027441660859043333539314271555011961452002023803132488422841341064250344162825446520440315176503143669975330885977782072780518281867630674537878598219233457616613114894909151302683827395857262807246919525515924492845087685500061975604908363370369860044987834089048844854700353483382392067528297501101487496482303440007384625326689142216885747681210107222699954943472468237161958479201613533795013850404280315007856478549324922207866717637642444307247148481251245072480005725996194729965649395733642928335898429014792572655430099329494105576452920542245325351717523882356384800728267625665567683803271127846343678194002564503652744067530705320547471734131697310087866803946431948155331011077830047542104507058371019384845820350081256271683646549425800797143548796686556048734860070356279910143171043493987113231587357922037902005693812535247771169748122860882285180422655393442502728800282545271598016658111967941745344139958053456090236465638980702438491354746024123852552986322300472942575312791823683283197434702997590907383430926779365902479321573812426681031124037107327790997578458199204795923052592580974662129853676992810963625104678330668926181850853798428860472131957343897071711881003772493624253466047192144133977098616364884989613225263110589828437911938523332099157299246959288073095417114315478849731812392256092701411135273045200471008086689151798611826788658077093163949427783375926295902527400038993880773300404558622216813479338646327264383464914244331751228635977697259335952439620029472823617939174995116667945424799962096480624618135437624352773666066534767088621535610885961685130563645619790852857978250771236059067128093742334730373266780947073005228198799970052141745728740292441574703970142156305585201317892831936766602509356440421459688072273207671754022085414820965685189546231012576540785938026978746796011401272329723810877787417477251679791909077484772379632415775065703435979783766699526789627769647423845041782168764973617305421717918290569823016436573111116665001927495270428995519369826026153132225195168777121695991040280153054395766217364904905617370101906781771012097309470662958452878742966858830890960245192814443802395966369049728677271618794346908392465817837299861768883888295427782154125422940345839515048385919306064667890515990051192553348839379395584534666506589186275002307932607578530878056430040048803703144924924655333545223793360235965067048922973593731707571019690695884006515071012526204532022660419842860784956746640706643240613273304559217986626514043594176039750321011713516359007244998308272087873392908734515667874037108476318139372543051976080112286083001206693058274459931063730600940537872242228073419005462608178908840013498032086490753757433647597493860502297902409238134367462714852268233943776503387776216858506235509821649744560769093778772770269187454161703174590816295281070527679578945884110415839832543471012261933516662648771613222039643102313626590388076988699394599189796080227923713201346805571388650373642100513426412680505058781871407997984549567518486387288341064683629631513834132966339051971455418417813758401948599432255647343491899827656103103826238743060141988248424929524608436678133982205606670765512060467456286195551652456157000970161617993493278557772344972787596177718270234706197706680340522938634214516952090910693083319604503354098055554835904129349951456334890977777169832698803353445929631787674556158150557391652446380941668499430081090164907467569412894410748226218409197541008524940225359894859117693638621125814411168428244159162749186107700377950556662876332439023714259256907575559283872277192064970901652164098963304375408691793136218524424307675160663182516128264732090319753778030078603129880842432874441284167239953033860931020266797829480216564666084903522825851798899003273371204677582859103952651366253370014640554759227806567674191590942133137667947015636865008967926875041721170278226633766953952936365479225047461854970469548531281675149558271202508759478839799986560072423719080275632886772852469259993028704380443461921771749982512219370471233040524286373853017200135244673076729719279530822011512473448784169082516261687635769645109910631801683639125605775841281793178805526326466393440177710485962072303752176855522361808965872958829297023312891101120111152236084834130420965129939099310365718988571548757403967853791037587059187188605550330163323436760013478157017580980616987604237971732121762161566495482997587715841118021355859052191692194770241035414501163412393567251540291598984996707988110126596674839028758811110194910325764518318344322023016933901723841118273484693886423728112354047130838886265924122447243203240715057490243220564858069652530418779792809048467364724976324563513412755884558658148943586243336661135260264414155147442334029971271046354894222615081588197786152105652755770929877160223481302581393025496903217455444234927334663952186616904368738833735826893083422302336082489199111765535130688531363824986647639599126158110195862502654501537798532569128371811035553336349794818107231203713452988164848036621337623947821311900836136830660909799432024818620842515015266621140816367943953128811331047462289359514217230709621786529650725146498877415370302611300870680330302345215837596373093157932553616319744905371200705987214475562420658069867423058589360687043316804415963758178710932380939876882288034253855768803594465300223702542641439178600331273520781772678847316575835109519634618918316105005892860970539869762372914099379918241903544955932728129087337205581364493806821212872026668731963632593388707352012758618334779204373247220198572611554974053125637424303964939913565719070273166571489945339924499947961284847715868067536574391054260162641181669156110056693515564953330910327362725268944331909902809988509960126967754793377556847413328629422226442874106730663911061650703118264384462696963265996154678350408178042928527052648228821960081376657865783061935131014835914038035461416975671858868644507869220683059687138513041921843687905839842256567361281418017060262738172582813271978182205328291560259601194891728872702039561116842312178817441171593484737260651173700090351314803774662495197653198909223091972614034566998688351153487747434163370524930788113814941421968765793390684553491515459033709857459041920557088069926996373481287239282874824140772293602141176122959545037990521445887546929760289837550873144078869565905057929374764550330592141060695524521862038622278847837320162318793140787487736551525046860313187575113603380163940129152163065489583234798126674912590016167969220890705738334661190635416192460659542204964721767844321848428383063631585458800918249812586004786623223729195251260325272673779395880193462344461972504541480393495302539574187479057210137358606580135291008298132059020914181803527271584019238654488806635626766104028861368935790667808881115868311701284077849251823313345817046957164739456827419773057542600853824110705296860240905992686613312762212877452360021290596527858082051089969022366830686248102931870861717781841978538272775653243666642147223272748562881237868348232425593992522020129551485839605005244793529744410308014857286241751302049647791759121187585813870303817393594656264738023247685300626474428647532883948537415920221301481962976891966720395894426062044609607758469297032084220643858503101596051638060318935034535666921026504274181066899672959926145400658173981748025558747700788590676025290187942069017211381255786397333017695391276325762406762416929200231043721196791154867016249359919689449942481448414376768437673583987756981973233614624545488868974314877512173389157975404196907264322124540433064540703091888008696185510853254873967465088677758950661345310929801307981261804931853363829853086379492505660679751408564964228618389155422468331472412838235547578836463570714625115553200725272022656089388888870030541284007938545954702692199495623178916303036112313584112179661271711765424891843074239709131882855922669517929999231176313926319560656325464921030134234825048549483051075954936305159600766594455918564313264846169033390786978223300399117252785086198198611464817853402354073568562985624245088492380563522553057448115289640743905132868422137367381540656579709064550157535765336017076705624136916760758525801793649864946475662205101171509389066344540137456397106318577891205132694039627631698359884247843334905356801696108186531804731289984727981166135793358808267238387706414710754535320986949370474115999660709076492268575626505790983436857751836085199137198332840261599798141363239786669252233680661037989855101420529947930561248100278515648506997369652888258099671021797936397305730905470866044959790107183612549673970591085806713889887602016659850393584074116670637555068469760512117118451425800017910977136022438461866718702752730060097692947507402597804315873591570535196850313536789991462023235259483899780306774735124960336660048004358683307250332773750091215632298027609007863785863766240848776189631857038759883345898690725217529311557985504292312905127916475863701385889866991639510281044922863515116913531091084318477063182703204568760459728470911703956295910254669533031830414596756395495487390618933025420137139554736059241263760000771940476856995192352303707910128149666528214474380687122659833719210111528222067775447460399635769974415314694960619533279354693698031194317809976402669588558944669206313758591199843303128715700951407493655922074031976576190584917841189853237575769540644783621983621962389447821019526407396720513761037002671519018940988412474732381809517221598604943218608500043585446977444381747775054427663385976225153307783771354911821176594607582920915628721843156918377198578465531932143777945849354649577375079817716277713344205320208109467328605108581266180294643331461563739961497026213814563115927951150758863382043071938624473627647821865374212872618296822638195511897024089992743451430164954600109201504813025466082922059202426510622258108439329236545483099357389715052198803136773244774361324650737179067263924957063709391659478712291177499434476529381398924231398371450797536775521107706619261704912454267006232714371388220827540932337535998982936631201336328242438506479027858673942578245294600688902858190464289025728283260159957486306279347241250169832763870030956179123758872924951644825493193511851501306785286209071400962357342222896713464664027527448198153982086557884947545367253109021859941445430254241011572171362141760905666814465120567893636203936194667450615563101200820192848509295252237594642557579638725245757806771742256213308736759228108298742687958091220486046910375858812258346933348554190276157233234561777468522422907078741572799456478404774605491845508269294543576722276124198975426235749448065217380557216029212914649285781197270661310335575016238500839301790147183116340193695036286912099569622746091546029782813841512057493913417689706270894430438383003417982018537805017275392908740185550133435681193599972366113443628091800470277679561139341130842281331774983841620889438006843275333428542114588086031624851961625262938194288169624919929217205664962145187471627560581291196869474474729321186469144637028062554204991262038160223203865943335648289180539967914153542884566547821929972356318970295139442869956149700787329922825740822566184528367498545758466012356505456056869724002952676990849340728750361036273705274063359020124559329919351133904687242222998728576529776767389249570599303381195810156198452834740063442577609668142010267606671344550191153028269322370470728782332625360409799310930244850984893706788843530652764526617774390251486637459070157092649607978102501037784023204031836424853780659878139079386910531759804121929350083987294615405243593922103496567318077232725566397344935843606081232395718074149067329947179490881426881477660613912597088222298746978134316937357267124333545846275074545724985705910217265471242993973153159680887604071326429907681396406188887578366885098190699210622969413994485613256133874768365172994770025292749436717475996896931123028793155812982930249861563763038923052230356088333083101455403236872463889656797680026859037920995197023673269389700945768887620658443811973374827666072273616116751359426880221789123157285446119966737094246824721910051273508153912055830356429331309126949272023276348776003244709080294138899245343215316458839851589884842301057451587500964636670470260106335339363545110632927233706386233262940804723855935087664269741811523786445553501790930661656894721538939619628171593568453050021816197615362930685524302121001783069967238899065795163744262251105708219079562412117288287778455359539818315655196533972087930297298830731142977606272550592427941675179296783393739283123241106768408388833450644338742509327479796573836905532944296866775261233334841363500225561714196568144133915476798665449123664334464290169422712492459901351588849939980647308552408887745200903829140777086121445554652993506018922620937189660804752657617781870004348663886456341170152408214568666251863469060220095338763092038670715071663014884233108808367430994440257387123590977664689982046469347745387395539386339663474249552904432683695467974055742484200025029642043912814491286748959433441928340328072532471883488657230992258392624900208706305616439097687160230332726308164063519836245301358791056361386986129814807507095734689544070812672536141802553107689697661214474107002509786720255995683467604912671925929893872945796147999878286799457999207526874749891360428446175943916378483242108044865924220481333084116525276983134127948032291581575129649762851863186054153931438578320976681847361749290688913053043278793002421348324307459546231425577078413788084828846162971033237825869023575914820155562622973578472797837897164619803079967593152854663607278047464216020951088103272318548105889310191296520745848528981628486005878499341223185394575997198338086573331925236531972649448567262191030968051617758828119288100034765724792700147246008117779233612484472025997071918328275010254596640726366464994764926512966174165633265033506720063744033153771014316485872802104760081022509622942492037790465962788974370522092619321406220388845687428965006116671829392622760302313730427237490183870001039263277311490771351054526815520813324610413337646842821534601591549194388165417868069398489183957186293585597203245204404953061573308383553519305712299029674520604261728232853481692051904098572610352678147082066288180635371496709392887511803598235431086524843678355405845401478447978339984094267459980088235829311089436404740922099976254366657539161775748514364126542878238748696872556929017672777297732635935417086249443883974729496808239880612072799699489611015453429954276357717259909097139024998995520241966012535954335122092193095884165618765119444991160684424893013122217567361226999429746630396104717932039080192974156043681964326004461921631994344719426018456951320431163239037636551962830172408279394212805756686882713152391336044122059795771176661958990160391939936180363733925692352989500572034018345334962032237794273808118051169283944355954742401806900178811084637212974723670563213337613952754322230990279555793145582507714840959206806923171412462261907076347874810013983054493455861282281482055839333165970371053662820068746797080913015162106371058778624144501268178218057740731381514157575201065279551904483118017704978948844743858589204947051933268525512698956326777675036297643074564954170134442590251815918142195943057699397380192945206593240444537511848961367621052537972411424631285833458077568501808981115427322697444300642002557789340395872455515661452717244173924813364545593935931085975618666598621502292411951018965231203364440013020663474911793861662276798219808274521403800651686530283739594490105970145847423403979706589486591342535466775608340353970528520196693329208678785508426724647143177323452116109918136461043312926427086106197815941129668568836707881193722750902529321310671872003132479287558453884865132314998784862793002121266381255999393749515914294268880709702786064378450080052355541871310489611161874549702610548605581964225045539733007984990149742339736525924020300455853041568044680466141567872898521645816150175336569314842970716948464054745731994948688734899305911117676422597774315883092725632474733417759712911377271050978782445509843951941864863350152159433553226814992674770140574032621479993977181383277000227286282772932973774982465853936384004174081061790269532430404803296105491818543761128234088043422068527999183002696682823756352217552807560203640863664439134006675726177349340181624248221030095858430168996694445778623459363697121484502375036797228631503947389305368633588904296696878073063296301195319808420375159662288719035657882237055186073912449083135704262802419054713566159526980397474191898322584742369387666802428538499908720256860263218147168762916824243601249624780322488016271613008583056929331293036850100393461975822801427931685780833409543086080908634736516788404566353357319804658619473122208463029336584585610303566012243307361835606762305562868277420809238701842038861866932959599001695886536676677922322666110615424346327416140763794214399792386756706697220551041334263227300145500670670377054717604633227331300633401458977961701295730920735052464170126803985254739185784051687483953945187988289812726146707184446605698446674411313395561918245880367603737078786362931191390248482332529913262464579777613576959231138805009850102433621256748663599723070430175221963191702809962670637304110507377486715726358098052787496971624980442009506919011584876203941743458016435529041814290402840030614794957083844788682291436696427743936568141413922266544360361256319014471442637464990463144671215618376583104644994009133032559083831714667227099629266320802500302134269616970068774646100226815077999278399884290131498329263023575123950909159161408382559346628094868301585568070341560650686236948498439075862507735160255632526983437688113252010927769448283740506214713857143097574462205458476639938793009903641256494439340304083289304873459024243743609565801597188940433702641210358416686104599023186433740085286796786238382878304611790982527560848166257810908853390576944357938751084885430776249810831121826247905566709270128370236929075859136508483015041028187861159097644183209758454650929110628414039362116662246378581245732855581141639311098822564440482450463359523670589565523992539326780644384237359202133094500991781135424245493414100028443310692647203422655486149162460248307279721938218890652751713757525314203295891980392120927261336701306645655363758583511634923055254587583660070211481468141900455704654547076248576565954801632845190118111906149933692161476124785667587307583838769646956332541309939961485530452096657255331405828293981300952838792772370701555411078839672895493880025152616531258135706049707907620000499806344657679165115932214275625024720520906207837314316548397415552733865983611647305741722868019997666078686371075184215961528890270580251971793545035425640703383286653531145067600530213725940146760473777058958209630157052796674888007608755402695076917220173962934564183282923454507015208398604558717137066708492197754486991411769244982099826570579674129137631259167678789604940979192115568310555163345113446387018986010410993875378850155926980310882469571802713445019597090590933368233815821555885643045081621907880492315519252666316729501852473294820092159277773786924963246133915786979057634451270822736144735544740167469850476977554592257683466102631291517630304323346146378343381006194764527474690937994501685161050200202956634931812622690555525537284448978182291348953186410995878918734901675040395795976705029542106980539071857813201769204143223330120713015976826169183811584599887168973954994084168648104336264320823064355231187473108381581709818118230068989522605902418424384120371556789109018405756450880307477841747025549724932655184375503808459476849493169864179047622471072374773331075388919265120409750244670979143217347085623078984358190290525400796716083058806333624258603611274558517047401622562102693393744084447806440969260881732359036700228562102360794236030519214019602025504772136251263706185297052492664620020151823383921971800549385706513735085787519654375927623226178821992033761450445055349195577390352189629337480266512481055038937747864694032327549795785816486337545112241765114932261720788930300120386592964257830004695309082844707457337348248079343329347860637155230297601904587916273031548254672553179582061325113667670404221022578044962130307673805307397922160060717446775008594474768504650326051449142150095032942770666736961177476268107375780564582210475915838519920593172205530244299958822057123359806582345844988038093085415433154593385613165650064065659548127830234549382373399620120998070553691516348387415115819855572016156832926875161440127044204536874592290080617177711095992971521570662960732930640678994573631751195732093236500415844255634567741416380387440322649144368131491018976777506405090739416612989322682922993105200958894396542086950094661129349148368206997408848545040230529508108656216749279945000879108522103140130562846976910849846711866470186164096867553893274116452452019055057190108999254907234847526646902937556700764370514876043821112301649991992667627965892485847411128809621505623658023116258524715362646741341035466283821441514888630061266146430581165514672909001107561308375229505875666556538980817159448772609283126372313870700773421220719158098319272608451429229337846981846039840305642144122581423041298600008072970245988170324710456029373623590155522003075770448775109883788600816280347487955336639916568994205807332556612981608662729341218854705791668399443104035214339558507600655807979583002428302779782059210956322481358585927006397704029102746412601458226063871535361668705848791560374009127883130637336937029995663933814350292659961494678491375621637572680126589589699289669376280303651399373020931637462923126174160967183171597113626042699351023768228665154269088261762122169240389489857469874989791798553233165529248267566157847851011739178038222785698981437334837447239252686655309501428292146587045935594947409173831005410293241809099369310252170103508037568491896833257189499340949230162255817509900998077726992097651992209461960839602414014084064536194444579754430283651295604489570212996064317190071889917832284607650136644413908603529249441112423105009377283308019294117759846783569737001501564908397535737324049081889880876287261576400361945786650627756428771273178960108736215016728702619017952502335654338383832087368386585981620989205373543127667956903427030368165331081096760810946395175156953360838811362177966787674296429586935492681219097825627192279966988233753021529528088858498127836816004338585814003223508961700125757182368990037895922690609729479577819407826779751731786475092574425307756575293551810735001711655787549261212342425463494614078263030322312901245931430614708273215255297097055228807752853083985925913758880212382968046054233829418619318496270559630646490359928396254170304289498612999154457549655215817050048870287010354250807690029455270132462092111520082236081826431517636876968407378003855735254191323229902996286616637003016393808575283604750724305798941595687678485348926884881485943888786283580519567159954385094904693003679066165349976697954881235815424527452586717280911494687424004213317012347438852593306760192025747506589702519909532640974689297508882378556615100787482048663768550313097401851275026469069125270295708799722389747147344404586168064991725868427926695909401981064338739062411458221947642087175302347916380705353982552382080721876709870349116029390770426772172780320499779339519806656040809195472720630741497156638954995794299694917411285293974509900707987487030255598689026450639310479773609396355151393953199927424962102493177556366576834648390768244322638491792794905574389176138623776310820741106636976887578106128687898026216893786551988569389836366581730369186151724177032667056758440242963722526907566621141530072865696593035392932391014276675554733252786952124086414455508019007270923779276431841192016153992197657773654341520948855761988510601413535098610428854776753322302509181565824831195384424217902673599238420631214110473372520818885386267075148397592828563896462568193966295716522007633076480160082981789865987874348693638874176431968924972571021002367885803767727172032323074728251421722969282875951604959559234897737245903126245995920298198661007818209249020169175036040707967301934276167614195987858608301019744190366775228829376344883108113944722521328601085345464078060771734930583604156643816003308359816397823234789211687591245991114808955101165507023243602719674524790089095246158155137316020013321686126712464122247540580096025769576555427573697707299765557991982158559758229860032187238476694610415891450665317417895054819781665408237099183363301886915921906209270310053508626393587982104503456223191164564387911863269143135464015116203154894662698742255461271623334134076159902207587706962589472811494721337872028206179196463507206079335778025282681075258739701111256337570151457634977447900576551543826517144791284641281072058049251016445939057263363494405296387796472193937779481823341649149155381449231552294113111877189681597704829209351552545267598381236170082525451994855001919820766675662418890374451244156669575357638288745741804578136993999169848490082140779269930259443603112770558616312247405856257963384985159749713901309970685751189538987206327148060041607764869036197068757415965609151206139246799407128684043025872953640614979889272924263639443504236952204711946745269774660024258533003277982606114618740611313740614991437208617187622801179650333832809734838483630008544151580025909541020717014311451734789768409078521665217398215892347695221929091278769221251443374017359572540109971950208779276007341639018751873477016902643619957966756720771409184994993826415860943283148362386684059966668051351888637089687112589350089161754405758690224943164406315830276436797062616122221267996810946307033857141613233249589664578785050378569835802416914495877891020750849522372218387637099997919964372765482881709506674083115166328538661211878557019904978245005644900965963622030962232155732697536099888697276697840959181691359110554609027205962960225388959897255887915673326162744927883525011154085381239314732574606837444469903257515167021129650767054496668924938938806006463830765363241942216391163985751308150723636586045878698017143086625225416129090525612697699564133487585467749382663241094735654953583014266240008585854960040101436914972832467305367540726225400870751303125575454068573825795630684762618048376540004015477172719008859786760578870310984444180034817615561305516781642598232681925249663935934752131523448601689314195402935101521717004471007876541523110227559834272604853980775793247217678547517283853866313352856592487919968487524515442331434340250311789983328723377065920537618280407211094421737872380937787818468574934194979539113594184186717616469644860705311321907984871616453667037335003482969974969846902693358729344353536891885344578904130186384438327683589515144322896153338085970123563892966750977222179139612403977755677007763385454350691732207470251689869634972897884813823462296875891353927268245269328674485873344912447650164776833810801742916074999637798552113277721338566289089218031476830303271577491301282231097103751890522445180623420646440533057413170505792503177370144277598413489557754131423905851465407991138909851856052745936081559887399129260099757188921333475159107188984453233104259276431968588915055071557207513881392749700577333500925898956070599917227394455131188829896530322202030169613609000530458783331542450190602031894466704870368971832391333087779761278955742305239803871720588697048125439070863432479183231443385678593625219027492848792402995340750702603681615820706535791674863859098627854299783274582061959473987608140830387455775100204258785844467081735323912874699932601267309478153933355162518023506960106843714053217136534289929370749598033255591009635637174031997336611707565660747827948026113574925122870107112179843940263438150379167785349155699552103746368216572702444986305708787765227341756517537602640592130818122996988532452465924253560804361968299508077162399342936772412262990895003521022615048549806056066483594765747593821241077313311817012346903423818938812702456118941432359967339470738525038831533115904306197976416236984836839408685786866844964372537666350168785616981278650639198754518296493703459084931135382281973860656475912034512190565048601211558444389817370315422949485815486757204640247249010090356774406752014415362615937129284161413741161329888146614785550889238366722872514298251293667322726551001732623724716065850345638472468400987708598504629580877566010397175954703363528577770933527635650841362691968690899581396355602999786706683936603164352069617195444232749126462360053605328633296760417881117869023404216246093953296602466129593452786300470925975546568648502270225951903277702002900871951086311091721192295022952490816430139556140128555938724956920330330314601708852542143234470328845299846645298351764669801303095626436056881802735575190814380758109012121380443076629724381932187074613699812714424001172310844105272631238169388544405414744974891694020623337241746696390743761879811133041644736250751495611049753566075026903599785583256228798706300560245904547642670742274214632960017702131511587407277640190236874298802967032308157932739471474787177426556209737177299871355433236694842508786117998764101571627202918254884945899550847620589270701263544640950393332281769636660403790546740895170970745057331650963634656952636085177150302610001725325918621119220974123490022067923266769847908695503314530718262724696204532508361859432439604567591142297229799168335864712920979938575964275129301116405291452037459817256022543390901956576776711113000128360973211012252134345022179020802971275377787042311415121232960146282415167100662363993116888758893757046863939552280724673798805754215259751903647543995562284240104670663046994293461414405406337107860905213232441676439259797568095665213912593942901506971926448105790886090119224458323387240461245319110188890029009650349564771982277885225203247367875560627937323621199028639465087123672545719701144401649006625225672483172306378720741704499204944538716054029133462554401051728238052383894326254001541508817601650753171401519412103414635475582762120014011558130443961887488972223810912657846687238003949818729648379785685364903287898843393863911051277185593250244098139394752575512165409316181833334168570263746128695388894125539019572903613322056872679834161487136794875820785820127345001329301758623748927863752711035475416949474798311014366330655374283008859319667877875805195460770332724904387356984576622513453750653708771693262282763124336734815595024305734527132610026615181467041557496998199009236228616871185932450129530546505422798404745150840615785717341694368277121354917904102576466680531602892211952955347042376330440489543471935274775687676161506379272023153368614188658701194299178089787545577264904168179027250974989436194874620885125924907755570520370680435711585935198694123419937582072568241894392450670806512904882278724878184752117154413564197900352227846662303367864289515563570856754197883047098196968400678602248344555118153709239822952889354782268573028326059329195237698187565946856547758750737292040891117776847914446499970228248924161965017249031760497404292114960832996103393551096636666613998389007918423296689612799810946750497728740978314856595598013434655985269758779012352540806523800211656625579769247668823894508441929293435632138814339242834203407323325938836573130598398818608146905448799507262198456946427891141819595160505205565074391247881688049849227776273440017784396375968593838749297407950969784567400179061475431890915708872303062407486623455450613519000531886999473207473169504040822887400929342754905416358694426702335887613741729945690778441392003001765838334907851388179250347637702220676338251949381219447253235616341553140399337713174830315588803298045980644400267436506614016922775341668676937367129580708995087697769484396572425045285733412353619755704825076936359799546087888417335336986685225031031862615748332717131232492103217433820588070533808820982325804579288752873782894570896867302437950601387952369305752765555423323643563249870676604973047081864649961704181227500047188574946952445562049704832350467591780741349757746724053100177849478449340329124056179807595756107295810402178740744035455649187128955919939036319115175419879903422230133994212477289772138496830775781900676181963787737731348270886739767301390821479342358949834892518510860248804916513769391348721202590506504762414238748877865841728824956566334924116385469244528511513538914491015344350086448473979596186765850921603005318782167318252472530720214397001720798392729954131031477545122193291174158375776947921878309918368575431414017149005002941226677601010259850425077180633927625036235621282962725506254632196155797320154381283958658519669069567161050048471475317822068837062772966439899347593871940693572103809526534288578012456891504971915302085661181044029894824162476280117010452764376941620535115400792322231212412780886710844753706675784649751121727604795771115756159514240314897261339484163817891766196259918455114703541291582746471308783378083989839716570627787445974824044914822229111731080361081114191355576999764918438657544668917937357266430332153843906477006501772720777790411627148325880533844966024424215361311417287708556806109808903920834244441470977513450784150525619118245055219289340727906015584130048739411281270209162735834304137702531421281385390885961031144589367521988046964201186071187258931444502257443026994087867103117492092838370978079580709483631394919846767449535948432180741568100271514204256449561021598212087124023341149788495561092500240592948960631435354481778706142363809132581176581387544247384489369188737945770182159980166885893545901814980020292975994423541312350152810117501733928438322543040065361183234838265580305690926044743464620184163402011276531608283342258858806294972349262449791421070565270969850192297133491356535514368676488843234768281245486749764892666951523245445694800765098953254140737210473509323557632126687725763075434082859917907998763714193269459212567455580653077212627306516522317880662753191100450824838022970334367569151307295867115133119908894449529503696873499051326260947477741945004238196173232261978285795884632755997266403569133277935374958994972874003370546748571979112110676953781979111896372118600896279633215300221634109067789201654885726159112637463898593837930006164556022083757979219576079980168025430667772170432804850243695479783987962453525011343744714646372280168304237113947297349705025772564501058209678427923710185792332353801708957464165030881447776997299552181650784090936914627717859461143693510241220675955887372979864680780441867732500140914931334113443414837781069983809971623590984903345665930774990504825432544114547969127583863060449829084001374735490990700238074881318323899340213365877136820434484135669943526385834657016463712027676306469561090675944712297290407866487121571190075574900605359531619212697750762715202995497883244044284755259709991969650742041004203402286850572807854718255775492097748860718758762135033233058385162591535698197928629085621577261466498712183077027474473316740853625777991851736117615324799800538430180925321421619934666697956211212056784597261822454489577535626810328973997981087240544635927864106530654810144492193911303697002358925516976826970598477657744618482491671832673001978683345070123075537372541154382764352747573972397488406693289686145396726836278677414450540396024777860548650202247027093243467368931133950033684784136089261497418026456798012446279113430787792243132692295272062821436226852202366183701681917943223412418104137895916975416390819716519768175671688878381507052477086765885062087652200735596004890764970186245061847967797969970915673592115727583306898580615781506491971091389872184167927843788240574583923261421435653038997608320400679358373119422196244033014044522737617058402580241482815261045074847456903006260077541077888167036496536203507432817896938091418702419451999210129355629779264821122417464275298874382005044321115701544712455419133249267200653933785787965634712990805207477013798336909530969464178784558106064442218506258670715719793571433586085346525451537192504769592919422199102288453273173702283515864757272859253713026173304172604978509183939484539714093876629501601210902937480375065817285934678850472502182749558281989454951760794283977028835021621687664370466030787096434627701499140644117821032534152117147883705328615423973878684307692418818846016801630549809762303032049737476035812129752277439396031061200826297723434939098669913392864994354866427284549708147029509388236230066155338364519600195421029925695863618854417050230590994550603698572955108486053471010823037328055481615050146506918577993983928745707604580601424374746099579701186028133350235528685584129114970988789126026105049385055161925071868714719512062843315548952579119349998494164518454045972093439462236390157236091286998388695397032387562784949163734418987482089233134573677897703127328313230195094835465113047075565418263160237842662794375763295240984172132047558564586202313272168303865836850719346037705366563407263424069437192836651355129367007079276750568806001471524582457538642376995827655189971084092216392527931429791407939995286093045093518403856700222831700394831374888628985217943895137585159854679503189180515645391295671369206810647660476179947163255981939755801465101936103831829213976771301635040593313283478417475834870473128408091348617357812102450394507920671404516428914599266382655419504722736451130086759255545036560163824234903136330393753278021704597569723478391338328949689257490213220252623863530604981569503764792523176326478214378695475519953688579148517312528503629771915206453554929738518393660054732513150761154865340782552007011934460524367655441192240260373920881786609725827643051712637363440990329384589132529994909730036595572456661354474307990204538687520031173297121418945270196620043225444804402261363449270429174230416030791036157323095867269936403116121337807301559951897330180070736320451752693127590564143844426920409868790970994490991981691934374251543828605942783068120088793152020046258429808476066178065874840292082387151022274441048922279124185654324400818120797616251217912347299240779370142596100134764963546677121611259821937737790487363234213886264452626459133942328848446628095480214213167943335671267522862195636622710337125777375557958601301923189909646717472870047733152678143392260238302240984102528207034019308862093231033586834746402930788130233202850989701830701859345994430287669091920468514996329928329207651722414190625435955945207286938209517928215113871754811671782742027347143176555622771715248292492817126404063266914067077234591492046751770051082749976079748283586281532181418835072926833270112684219178280035643439070247119725905386989938745854931904532540299081927999388882926149959210445273747228459731309133741041551932131654447415969469100279621970347518268697169606374436214112366718585259334623988606009785030011635459317887980281313173415794641960220734141871856344841755351479588557684768539955636214149353634456706422016721159282920232043727658476297242079023107759196506686919398786102893273631997299614204446292748201747904427461860540569626583438738871148788193770981679336308302988253742246371052913453676601857488037843765454127783120155100267614650990150144294182869705107427294341796463930987176006919121545713742003458584717755180991266308775741492920127688625795987424031413838651557819904216190673043405762922199359154278951494347129586009792604997356474131615274778277565531864913756719336298044007746433000626164715922936922195809118323409740329023363076068676132228550759196257483328052300492232812326642990942484807180904921192255549085836886650320748222483174718128290751751914963578573769596667999534507568653877344315457908166586807086016191040248050793677222983599734875929260115085753644039305663395842938386584841102691956345482853167287789800712397811267407976737336430152208542775814096526793988096521246732429009266315996019536704965299101015205409866973502523684157124511816726034147415578301118539219139129894756371828561478092735769518648078040133153446439613582465512197948993012560418783934966503350330389146603474470553619292367270363205271802919314999094358300667892126603198317003872376930282785310941373063403120795814020589607642509421500471915697480723545396255166145036051150468945627690525465669572793542493696451900733310394255104427507758704646209669374481859683603265516211535783118950489776951628035273466285040284933074247013570023528419488760914920092289152927099544655707188296929303320137951910734114321916422259607875352708153167953157862722997207103399464128433483115216909022155284537910041230632175715118545875482083453398500913216334204101636406939974598153587196516078675480189408817263478257537286674249970281045197755824850723204469196824521714054254030040257767291780356661999261716243053867956245970011751385786426889300245161519545726272767286180274832671964911782968722551571840330051679270773437141614137722630189472378742960112871572917695284570684833960840792275387995092850282043956442716062421672591780406949356609598124585133153093766673502700104187505321094598612714703696098198074318890580381696367336925984181206776105207303992159375338336919438409127832576934093155482312846605530140505852105296913892604734042025952162510627110521237597106055990849929363977048805086827560748209944180990344106815150255197629162410154771639392116997829310118162895439860176841391236901538053306449111671989675231942722103024871349229043048011050674973659586517976606032541014312958434297996393580150515219611375630155787159860150861710124021714043747994869665868912863635222590513747608380039278345362225506752785922727430931762439308611389479994610012397962463197977944422306418700633304604307519967796621931779895387033850101385974988770774418996607257063747668525186732313431060215473038364643964966093341626517956824737446203340707370141803398231975382517143487491054968953860915786835878538794233840389579022073411175914552080885517904301500256258715141770778912858581311814563059715183808256335302438935123315647572290350571022132389193394103332773514558710818823746593957730311951318590290371267021658868831431614641735215492845287303708304348977385579897882373648533731166189487301437591077774822036717987147216476992260598520339154711287051568199034124641571799991774463258929672089833469017575164825356806538389162816918178398544795222497442244901008007434454748853816050352756899926647446693025393124074258454990773222239165419720061017929206810999374682532699175740501943711017012695774052171826640585140532163797567568723455344136223890354283368843901678109886771968303621334919647137553440748755339233331588407054989273147181024614004112453182079474143109236977757430433940016707021258280978866634501137762397875723358774604982739643988199583196707179494455271353147687485381925123403804450268783419184682259658361979211820065651053766845294372475483165760569037051004675110050730978067193994558934822350204897608278642202632025330079686711093060280722433439800120980843466025499981552586964525425630552773243226244613901781689096237501358436321253737544017161854973759880926307803288141845440711032544366718493490968733041829863545985280025169888109219699626641498190346937908227606536948835008638132613815096698773045260647792010545420516376706363582425790569524040334894740148314637709136928234709472675789424364343055531341496923363220601514157223064368016561134783303455920675162886972685125919696653005792476401886313430487876061579696920873987223863089151616890182417271524325819090528230175583798666956977285785170895690062250691312113299224856580136745358223294690755265153084816846984781248038622637641391710549272811307623664041841090890267736273781107348570550683569003176051804154943595465118714304694134171705560131763101068922059800007789048013219979249306838462349938980318758306826872039718261879772449475582649216475980553163455455379071753992168785251065259965215618452515411225773626736577303354810021826272523979101486083599840714596988832845028681331808732539035790365662689928711872428687305522304210804971813876071510354436195055342803338245186929090986602718743824309949733666320192717527564913725445009756958481453620896417561125527485789585716312277793759495244208831090704981443260314413868206851057304285432533434203403017391497050752973519369126553604695924261059095355404227865438858451759971521354455304326520494268749506837107793343064081698329335404857475710609403304103567766200231956487130496603049236943542130571442679637219485887808418742893618428967139660647012729387269354128489247884979065426053581025219862980971868865094755107330933631987160607614062426660541382474395947234406412320919748956322399082117793193106438870199854684508835389950455800995388064323697215339526854762501328821160808781929116683464678347856333771079786444984996205278243247822569460318965392337933716119819513271718943194511198947609297135638353294079193082359362479686514812367306867045335340495618511018573363880841526779485023788918486409989547964640570471726417079256237892153332557420339362013015371345663595958363139664515319035819815789557164881662918438101087935656429521219979798089426142781101461713384401202683282955121558626900105638008381540662257589598723006029554298255610598467190977984323196969431949032658989975890880845939377985257088310148235383125928453019588930100423013029723304643908078667943550657496364069734159814616702413844629690446514886463861169483102806610562548582012418027544177408624435658440664751203757718712835596540491501357068086256791769838225075258421038032615067332470322295887958189237923218220038161207042784162241469374209749453965150816096438601939060640114776217422466572488411950300419719240108820758702705725463297362849487324791651996293674178199239828232504306909380758263418858881793285956384728219036425637995800790368039159574724483005116575499117649825587131855223172522725288650358590326326000164349779447110990892358996834094274716206598638191884705741285332530374813000313465679599007624466697778871548263692686417984295859547015401336242909503682936286112397154475080555353781334034485330975064531249292225786254715502477834810712880682504038657555594005334848590137847238741205570763228778091092841869958679702169561795521052090946567806289389965691677839478194897426691515725178907688814039025572278664742226103393017722213742920629072260159017937916117240427575425232905886111159866318680948630936621923248413583725088693014590287289717900405539446303088800966090186178184848663107071037766960903086552282025913469886677007479304366952716769990405695475666092230370300148832456857791681023115930883052098294207062326860995829829360694221027522594363872449753016250846472765267011722014286530019908418463131062008737085964010637473629359948727991180457739829827614452131874866366220698117779349490929698826220906019158514916296320529112914976792803042219259131800209890757108874343420572625333208447165009304537916755254091687193392106596152639288011451293036631905638965522780297719523643632262674785343626945312242310702045354681569127290938117075016080801015113050746570616368162502150479294014227634110831917674846104524101760521363848133767681941557856252342252886796971482163050862147736917365068099833215580369022143902851362775220790740969806481752688717163999119773327225142095801797812187108176027689789038860636707039753248921456327229032746754158642158692149193549879320642270407622172620218112479097475709492421066414925108801338082668025561880317420093875564217691326431047690292345261966145624859193188507582406248506663725456715817990626613997890173082785060716167589791365931209822783012096525070868547930929197984147348849615893928837372372490036746035340881315584423087263046439877661063168019849366270067184454522064262946798362685709903697230135013027171217994342130410000655024036048493336692045353510266278122373916166979984930799825517293453436787319111210848541047351631982594801100502356058785136094282127283500872784397167849850328454345136832171487992101348387144878554063847265454353827830605216504927475110124971716006854647791677312644092933127007003259309690136579811554509954086030355927691281082194342344623986810964206929698584068745725253441682261289349280740883079137591790740778658317186382348664119488157445565442677173512606121838971318624712515288711576977469695216686066357891464073060143034522669003321331021454981114110801524949187598320353029923660575130405856929142655745167977956314099562570185581977024408842207159481512397904540800676922249332426680481233199396059209390537690017001505933452704918402185309411139470925520111588555341954077550222162930304606121129789322190483833334507654429885469653034362442016535257320772175632629340399275858125946073827372697033390915393403756188248106019909445209451960088841152729462488212627710734066802145016566817169565752554566954343972131888689925561172798684159409544871799264968693990968681507850595882107812554349374580950654890725965698354038826137046742973710403672609730254563717093344988622355480072997718369105262455965763852688325516842286509730771791629578272482515800816814383151017777217627526083975834719916209706734294125710881954649954826794946527874735504522189684719426681322242941440995649761680263814335960242195047303265687701947642720284476913960285921278898295780047413931813502509367973536803402351928828162241834456838783848832525481004485499483297634693545288601747034116372869929351807852183258354897735492977928012373752697358185924100474836101676100263717674403331230338269561972766038929289525617959017682691566052281054184788544724560617799122820992174670801632710046184040263374439876054401328913202176091515310044352244819870616741055159086354938314589298112891423972205810905062134426028880538226340620978782319991927293715187262298592060519615460811956459455354321722652681482945414320777445417214961582273388358047435902359118612596624914123334592979678766674030013207515006312869099862510085933567892923080150123638903565442069925363624321520741665342229021038724276975939182289947889480802667882853802900698442952334547863101548114524275179144389379937449317507031282140075885404801542801414961882475380294577654728613278907935541175467860132284328682500572469526099335685188722429938331207043784599852808294513148692380347310639051498577600926970421579397231231189957450817204250631121675863003235912201727666591433740690957502112838620506260259654824624948470662996943592507065436202977707360467266105452637576488690331704426211232689801459585901241484962891852264748115225592214586574032944701235653842761615331727732927031638442696684093698628732975875783586255199041134803520794431004497931648411076862367900141275265561323803547569304942684833380034539822877063538197783715759448137588745924562087593964602107320378247693071708802515639374828722422251283764450172734214901653155983023019263265274872698552590577544591726874751533425515685155357639190211960417327142546397588287034557128378426096858676536137076918136004352033765077367020330862157141355924397922160136931604687206921885118191591125945963360982220415782157998463376882209867523846218553157484040104625631072435661218213803645165316915087479329882329075812423658670151042692142751787573979072409990925247690896134411959248302032670843809354142827296675208310799304949443083001012668515924645903681530954193429467426775119416553130578217094758649658240335306327816232764303304353816545122957468269053012138230121475429326259395829837388638705616167567492552718804062415701440457274652026526260781832085186783121027263231164404244691956121943366110600720241893559366348183709731201010440396789623652175232681433518834157265063926190252030110375153057908643341521049638560721775636856169916044680980841977837094717877510903329187140841088859035594916373307231775416215488793401381286080863459344694729415830446302979138445501587886098264742298277773038297756980900521599587253542077474926979673967741193414309439299717893995385694369497880688416104411238129965947629367357740814422967320535366831652954615298184314221944057679987586427250812687446412076253496646469620223745750183561530491560831693635259453161552998130944190935104363581910449533173209088441880814471096605618861336486568230783826875445244667161065182221527242476423218564379698228017935113996181394458034637058003804573871153416867924551642880783750802946292211577870787870478112383019995117290856248236061464934822172523973668588087314004713559333368250350607563349555868119015852759728555731179779924524373854920209340102270709801772636992254238214905874636406710069970150688565024858663609640256043790681764071903841784684298312104731465504062305064098915157000185910201050412844880473194300933261979496378331599143954201244317383271746407323474429123977837522675197547175096317693664167924608173685737852946018394097088244352396561936542430078840337482098382689684993989558156985306294860773776845538845630221973967639222577511847285752579681922380342171447154888357705452143403409895852311229341381818651001537959500561272999146554711701736588415466146697550174172727508546830775712138293251170363135068177616462023585401005099252737258661585090188823243350531875840801393143102444315937994317404740211688106101277341633318283864670046533421974663615116868856988354084461860252160001243406602329153875628009136521226919010401919497305799377926358793450733521173222069202261596780657111164069420137365849147930218086257351344383784675969788292480012960394097836986521117239279357317141136852805874514689421452425191202347870243837954618706707883867738576466219128272692793767876026731147929319386451080131058041080489097949037139078067709570743203869116225547730792401920112037478598927867619068981622852553745664470387650689726381781850452691945832118736403382189928735915325154252728754908940542097272275661013553853501101535868979246496933620988597016529352804431199027981611574858979442413933058908234901408010114884176258706540441750949326809147914074352574647980863281007407603918914161677080313697607065856671662998524400033863008492918918975496586499896661531028394818989774325764740096046762761038683952621558100990247480795426881613309414806233488675656109314474376749805124393146214280911517050556623635625188723671910208444534748079529526212975477350129227367931901598333238523760052198741990724160227198304153697818696548531340240044058203441196247315487864569640119444274287112906189406208862314139643233491721121001075647648051063297909176471335837189364028058668205953725135006315992490147299288490257435194743996656053112673480789250893968433556424348569164797485902234829506411105308808939372493806376542697890931745948596112830746843236166042197799405239104269918553385832753492947770353566377271565416488909595499942385494171577049421239122865289940838173442950802181224519116050443496824867621411058363963001731157327828363981117020761436616780036768002857584338755594282338057314681311936881840312942232009344106371860611407951417240035394063626769931251787878370542076909290734700929731392447514824762253534449767782240710866738107704477254653171036164157721184680793308571573257064938754817856743190857251232668478589810288366906708889591691037323906893061373317857080774810731331541223305656961154368778967392174764822902709168871356595746599582017065367896246625413848611705121965755404283622482097542438234806744500957936411795287647757205189701310023930299612961914751160956548928480490589756633178430354360045742782109645253736430166086836006541748121317965280448405841025478869856305116277707519862497211619090227182922887619023102457253205839288101224961764825182233113982708772611857427983575652654779519058089155289737979950329063358556091481415925604395308018709747491165383728421188408534342318044558166213615493914463362976007119376582224681804855034091843854077734505741084514853814528163250244034703441354361278673933812421097494223497127563380574774879857772040564169538325195842262238011714367410671594926436646757035453859991257846589322051232801014999528491056367758842704076210265305022738679684925702212596016991823937951547947404017911282039568129455822237927377965576335424355797733739689938614040794460510787861539460939545288747236720870279257653822437268845242267430844609964002134877576317927946820370778165414612445063100411288695578442840459437336467696580635005864357984628500933695283471111803617443021434562430980628952321229326490728549188996460474997335307843922868572032581011926798815865921633051045181465663963772653500324970117720534061544596038963917206699303866748807356430161473618681811677397439715451521353457749094082752483425757515435593905668280366932635788363084499160265646678571962478113228290008855668149974640022523035486032870990196623318158470882128437300535608064564315319231761079228414724767515795724511337365366567163017468011624174811888766532760579322791123160122822255509998755116691824159555410404207557509499959203242858959724836164916580755830518694845011089778446305014121204370810203125147531724422675425524633000443982221832447602513576259357831151233233855421069498660289832531396922561192352936361761548914311786884248340636692531312011133983652239670043202952404209003947743533032159729135263404243825137275255773284324325655364849163959597723318461785359144302391684401372778022047896112001830424189956687281467413439100963764831760439743174080593595094950072984263024633646194843970016463258279212963912876899022153925875979442008873402369210003251439453004461371076385202488701380418170630967640856066199365536353886990686036416551674706887435704946215283534122105331998249954365140016432693238195981360947206591275247309085638602431409070457246308985874293033141626882053637743553069238207726800383204087808980784372306562752683176938218874511957239091760742962550250995028905227470200576318735392892448208594212552486412252018261912950962874665731944925112257206350732906098307215532497149713933509706893507662049529275266757904490349679448528911247660746837706235943141501963482005017023169936747979906723734717026873718606193133685959570001876010146247584904585456345507391924261940054230748910490268774472207807232984427500336932405993021760788494407584174235139785186863435087086843997419283112969388516786035169070688739916030066002352976918208733970683817241089133175367757174487601539978398193240345120013065637704633552898692188178126418352771930580768260582090240759389854319130632656905611666239909976056182591659644324472961238026656476288655777629627825247218563308032280308661505109661349062449628607759803369726754517639452219214416742514651298554081009500243578389683772785830726246536983059242721345377971573521810907027863844086730482498791044715395712470652502532016883818051958363428625641566252894641395841480233078468219202986525085548508121143715562913171694751557453461168352727421720888414386820817177333979836553492953816606956270715268881292339011054999866190211836710157395068073091931041604021729382465038896199707303170143135654104928826256078876310416478378303042543858629726720723194351627029542553859391011888948060254574469061863805421999216492690042937921525784931976420526813600222811651501278215104275818148674430154478851281428357868281609590578446029732794422061815526110930902184143421068312900196446858672414137752002348585032957847888003955936187624446241532230859960187580495542485772332799825293793213663513624919548387534767696575884698252103664997238563477509062632838548759440092338817283523478811513983461193786159923672885097027509328888109658296680840610771400122337291951809165401097746922051943291739054930215463206718153048595408246523586465867732333035941880928846268009391403252142419330789132942357583764563344067758830536687684545525403597759622307361240088959688800825462035125396769658419075903677862676946669744678231712251666330667096260448502503900387982555894784964772954707900219120686779773591229955801113458377070790695439986488709481999598255337238984761162470281221420865133027412435804597073605221466778520597103713896601211923330485164602101573755408465525604362985699337006684465660167582245215865472807024207666549210289613633026559847001465504706126860589066075622893937909683925616007826223372248125935401080665245907691800638294993962343052168444063089352154003372614440632656705684251257829747225144466354573523760145279012238103400681977312516122838411937374424644224098140186953000011637241493926460665712851820006074639201362750593432992979157483644247962220041142246153500931278255391601827758831040212667260373492720975923881006085010338258472116534985428213883256645919563960022046369963325555532634988054594281833665256021428739419534740835043858487580467584561605247017140243525632079075191133342117684844353691374320746282200086767678321614799145685960340330047141371361707972871272838298114641523747069591468914415913149556771511572169839743028775344249098073032124127227721627798518109360543481373400401997771090262080392916055813484522762008872560268725630002694449789478754361905156003540838661324990957853569437893126528282460190649177890207141060092661788849072864597696955118377835098383829863988595268932162491910278400263878641709102939002734288179393525148035680631173573889182142272163029299794075866323515268071425431973583934051708544863284170882432216897800314228385589572568748382268198023922553007111867837208391014224950282580189472868149042080433111433665038410657278146320566572800482610745995068569553420148250192519482181694016350514945709716704891696008899354659500442020473578473933881630703049974469639895353449493934978791528935405067962951672588931941563569062613714120164878156233864708680103336472973926715955028053957085002370499527285862275445552505191711398070428177739020719576117059103426963409917515490237027437701230534163406048252451715665686951929861137172833979164231174275810036985029953132610209215006317896475217299743189430398373531110565204289566207372341352805989174899724604279819205028888280368023403540650910374528190802270897389528335216691389634810540986723591711125110350800762235357222468267553978245405025624200723265475454505926234658490883469399049758777453665333936724266339903600694468613163882119881368139877705532115980986686368357826908625708559914686022055101648910741445502422457677381311963091928400418176443701377837888432198969395297061487232622648410312198171927604281119272562567316961163799100041069383182324622317326968449383959288948431707032338318089275014477148135653672487001059814949649821701561389646089999636720237710935877147475915078585117577631460749908436595022915260163993616510118644313952777125462277106952993129597317582962819352177140393056410455154518362584464622417578510148209631667127627711226510469012761351687815377727906339688619074711669774940932678375778751022728843140176341815263439532314196098852681611902482593802849906092134736733574998576390028910887167250002620984893024248026358089162862916799087770257942172651255355665434626526236257472265051167564508456204156038427712468323820692743222911092924193879206343989756874300778388312360918283864663649329145111430046868965996302116362221758062700657266440213392181829487988305767022793503434232700740460546140576280101990502667430490795900856022231544887225693267908955227784917921429859601953923877747962985440400416553297768239509613924934995174919681294017642739651293632666902481168855392597683083100581026713626124398682267752240282173747642146065419772675892100633232663416273803895040179483757490289578746671065673942014635908368178018170489406503050596072940741527710800930415440990825230620679839696311306373430280843866192913455099003469758950281422004632754132511207205757918725061681387828766196524842916164405128136292046626243082170858461366515502703225060537349039471321599861989802038208710405261545533563909929039043718408219390496443528524126867722372165603754266506839111253288233331177564739043542054414391126507840668076922852447049186263746349746326670133649010272517586550174340871274464617281157277483238701666175452855788643541147449536708329993788334802578088934649421963097720650896768338134889593518447221773122513777372475226641755860585799816376071050083000067165137221833090586030151492981738739617682771867660808220850485987763746969948112640349088358022644714440690948647376803680390472257753650522052094954780088507250764119448680562210926714030083265804675950361393208781105719652217519537569252761475803419122010756089432357272071943492794681294656053585239532474968433846283871824668000998982316876360944538930824928178964479893683464134489614953421592255130458647586547939411957166256354647853190147554455146376185022449377418727406522556473479564424043664384730734382997685153571685279389531016158086633004736867006052318597975607470835408419546673524932520270722932713728555630713380595916157332082591371351596728183370155996762451777477585100468284129105024024807178149064493471335279725745908306239379991634206444788471919026459317883018435154099689455691857531681409272420135047008746766690137783822412692813160499404686795431619394764972869161821809203226205361352944089537799475390946048985951719235737301211559360923193139206937843977192815485389611552378556567707681271024223307898668285776818160928111415353214056270451454882460231227378418890775341426075591966645960279450095154055431119118520045212336529539477118326423868760947061710192878057639190126925955182839821103226424196519905212003230448452692653137182205370238009840325786516758782781710866745188245811102448370690132659163253391520188202566178909072469153669758911761288402271485239113639646142291998381042086844790142142364452160964541874752004249721547974501124538441590147963946314512946691703833990685457516154280720798390058188523752275678376408692136488527552191768415746543291872450267548579483572675203711303467201301689793098883673394816495795753045625956859908019999688286341633234189615981843643587202184536152060111439162003125833624393076169736337115388619526939736192825930356652336803799087163396774455719865211692597180537330498009579607760089846814516336843323454414423087956066790493463440188680109641134368775372477192558587200373033826426187854611177049069001514714961848981252235782720007759518662146134396844984286908785160480489113811269514512103152219192457974728504440277414165977401260660432188915935519523669324865520809228808818062687972438174627283187059861869515827370347911719170776922161071965768751580414134301447482626259232900971910842731704130805273136974478951491492306739816466870055769303018471042737244519804393403416007577988651721608882596492321772577146924705344268282886042263759318528177764987738992744142651798473982205282085640819632215861960323042869100469838007654459210154433559395862956122462192682196813127281702823582711679668310765274466082217031794457229117037200284213368125372303092648945669085368497588307653875180557704121249770444554714535012335444767895127086896285548371929820704424343653016785016581272980417368704404995205720327350994903547418437281212977940873862833282087289561674280475888329191812132544047196564683123008462881061629586151272129905050219510093349893805830296782527562025458758751886183187682294056696524717716950251154657131141622225133453863457496572356041984676331594144983106723840236618833376311819035713518184117839467188989419136159764836022119229304584772715020902330687147291539785125995147488048434623429526123375575685590256167817508795478417769212994480950992466794737140731295750228769106016564366030754338239266632741200594683098216337680911714598072952212932996617692757952365336904257414493918777825274363129330138078736862440906034177069381898619855900880568737459177506801651071182139233833842691359276646972586600395027341821322576842791594399907649198640863259198947834683930722346939118134937917195469068281199375483261780427963801723050456083484323468869246552929656472954717763407791256465758745797323228019849482573430346691394003215610737048100743693637899823477523130550565066845243811106247101361222189545193190287980512865695451656116134605056608801748206893217092904589184637648776720328666301488873771663591166800532193889190636388479033151534741420858427250400597869954471631147763784259265715887486795521113149644218365160187841454460600307161393255466407853440750516188523528536421993443613472127014564485676220206899860138697688650493015612398899672445858014409014635547228580321297581909986402455697958222560875175313222656004472767124240696315114349211979342904182835182894486881654288472060740958394150745174180853789018778286620003149269015251879935307449508137600526428983927010020492079348287437473160400356499931027116787370010710009246101034935030791406247660225677435544611531415553632030897284103616900269608689155088461227850299532478270072293311150946717168553388074912490087423934870525159742740984585554185626251899841348294572295815033705564092803553516174904996673976228230691017646741520009668208774731875908421106892156686340307370659018564583720763367612971324791101568387821764784687021146256569222487623430984654901428415908923326767636591483503358523919658750056642772877214335850094781438535227823893801706560318740357215473780894904129429152698955203597509965714512613918094507604949749785070253632116932386778006284780230473047316469546746093776619689503917074290134757485204397693019952515361851916253746585369822400636405000808698988155157216612104976008183888063298287133775029334542617641092162694753212974400494872247326168048476837282235839501292919765811473286803059399725178760825271152029456185145102285458884727836955776167270390320699884347902431137741946503386422655322655627422993461150526091277175025841527152440749940018085258564941723616101935506455698417979297923422699133268452568506704872727531555014549060866421803678128617100807037684882015491201661561747205985079271656998942417107549209367943928311418075866732644710226367090723125088901074162109063685586895168002413098140169960383462860934885662550648701015017110222641399993161656811325104004009466568402872377919232392175597644087590862913680959779899931811963612300589859927782707633105759702914957588461517106147021762037539907559762574828567589006239470656409411601192487842167203113232067289022601777624556897894518407435103876877099452342598258888017913775454221920446696324300123395739268742565611226738747240605399984349365329119007219971540277362579301337465691999968705804638063509888814975861133117440491768915032416251448859250125819368504215783923896771446185059067745208633574905593206005443287795880209095664976804959714018098763306960384879245108085285028560270415952758787608840720907148281580806245273999377163649193740575867844874312243494564790983884993856356533896866572181784575620045788322787336255696318900238724421866366010185871343363167662043619264608108513406060912419333008719281534851884691471869645827208306990941662905133858232949139679176876937817992433228863022938714473133276755739208799091711893291331978852771222124899345617774424693784948137968297114466578703312944552138123732951188578665141080391927269217200149871680807493321666899916906445087230289262018749948048320621595203889652944170305876756215767635816501445435810664718911058234282440026495095811819997492684100903643318462545816564665948047528837686400104937706396253346589238275432687356571950265100326130454915410130564588164342133447878279200390861390911686621072318399821497190859686662787587111999698362754635842117322889409821840867961169068807953870350213511871826625059987534723364890570995282501893612648317458353587169892460856690195546322390453437128326053916395460352463351053545278813341218775410566303951865973350213723274514227242649534101229349404149095213908193041226431484860653295953649828552660001279260846890744718130926721521572187673376867264599115201849362368346946044541905912315860863724112394309861180532423812783625719546001865607716139130146077917142916080516210451923414111706292385069904200885656706015742142102461979257601206966680886855018873547580512066266473446644418933793678501778509729605135461018153282095705576616103666913971407554457285060534121035030118595260294746069227522679778181258266999724572492707854525140616391873259381810541627955370800947690699492257131018549610956215804897363304475644237111305881675711381623800413355380938759491778608845566617178141740059412841717393571534427662674343083203227269602233247614696523495136969756555872993324415022395064050220795775333805898553670105908722749767720918447738452838609083418505618478493705634614835920168838619963477924585654556938753002202492157090594581159798719953719459853666007372333443293792849723915258419927357632337344761900557913614422560181372596931353722327189541921929155820873423275562868971832844366103808305446249786484434638713620454892626667421852185366327007797656521425433411807155133745691506234504244672233152610056057525735872625936987236495695950913168995315868039925426244151244506753384745699988452935332994316533209371122649439858914444122083253552658456448613928232971199810745936375416959453087413040424792549137585081550152978190191026919368681670520274228551140124069305860165657535957747608682664923174087906922984096799495637315299929395680347869027800250751488721150091046362562240339322162028442533796995275413206716330636213946781094491717158335058541156776231477194838164481641141646434781012715789682031554499431705088684658873026198163242009750398407060029908891502775286963180888334214775340109395596309414918420740886323555762007804230273679031059796586953491189044531247551525107409999126596428398496389202973720247801303397173088640846801613224846753624648577993265406397387686548215008483417902244629014043037846249845610045040818291684584981457288391296859220108008926818637726241601939636451005251096490901686453959341404128448361235999692568103038467773544678445793133790388398511054377131397531338346122958983219276360084783785539987337943683953808844958455741196822676973564816527565210239677047412936936961106410368914769180692299562173846829256485941548308467994787316134822299884138335677165125307007041256558639386315587532381228951251929848214546202468583867980220905902386614101153301990057443224164489397128130322724254086444341866849394844281488779067251090237616904461005061240767558418810376499909052543877396313822522210351747643650201862557155853737059505043467415978952512347350518344451225127026562267235977624187895427640173222461439084935625850057892866439248695542681341474949717816502782482667849362017706493985684997527356747015603337499947341752209821671750403722744233842035425936991571979272449287772174725036000226640904500248605754092724869453399829166520847256030928444768931360013604108851897624462539169709316551290170488708828201927482970984544945814349490362701206479643350703083953665581489550960874207685686645527230476808967256551939958848634015774294441306246752393143990550143868007443494119760476722700854072306076507765429019462973758299234475342875297328474268536519525903804018782353411660672962632863249018248754514024169077324687641539717158531125884812756404253554787865477401074653800704850931083528001225570357586327907668989278039697246283895837953745388292290600576817490554452186306717845054557858121379360759860812709858259303916166262443747826843833626771751792407147822724724874336327335322431887406445733198846750054291399461208770351911625399677662794380998357715099036206621225795282435999695295376734445918064748846722529472128056333916044062753760106637690615161138384512796553033692324283462578277831981644946792336617418093865189071697053409367880856932272700945066381317970069700239861571438281839786891960647289985943680377344290620291626828259445197914143555244788086759042156160744917511385997651114749741900418364930652478240195641706937502335928107823514006265443045496218545251811515201416450957355467797718610300299702122461225025298842903435441233670800771407824776723915010446350483977974490909557067787330372486594682211674824469996835480030772005914842696704881247332779300306819759211157409726799693886543357134385555054342608078623666978830751384556375947991421658440574469118339142992657511683233923355286357556815054862671347857286420006000598256477396636704253682659966947778527633216154471531256432173885099992065239448085833006155934819994962230036352660173842110538018631712476114425760976792470803154813646301689475349789737747353079350696535161112676744730564404258612110040502039420250701487199830722335433783488297133166550996445780777418264807650879165057688578137056447640197337900633542886970737965627578123687597721941918333638189331260407437405066666095407329701657843728907221574541899835984621459087095752134854403247228504867933276211786265522914875826406385303683356457224303905353811838501489801497869792970809954429631740970951637142924486623569116778504076867995662974761944823876394688996527416952779068362454018017731462570702381548299126268125640713452565808645021587271016616388140936731085124570491005724964936597984440586795153204615947831367146915671877713193177883588799510605854593175471956174822530795274867616683156110120088126579496378167371201604349623541684217191162329039053874670373220881740058588731983267134414080047785095271772457680409917557254798802736690102346572575894775372494397078465932247568120701936741036772021239897523660088903180962749911641222790968331313882816493885472019117790207711439322288067899464178627994589464445795762264698547856524456760624582217495802844192512572978623030452683932768055868022090597739089792987058669092655619301314517445734384828926276612226060440320647496473245927742731536731189893917497267236458056817822233500041023985760722311222586775387682036187555762893896939894818374813512948481564291683081477174392979138050781852317146845248838646758307925062149317604294982898895848751696165383622464748611816570534788114305976414616941415572252279554599421997017100494153905283292837557381448631993621682094480741167445632818253088292896441702354006218041573617673414553173031739753877035084501732024239419928190227080238893621500783027889624920129830809147702780109210064075100877273779605617040657665318111906822652110909682821623666015651846036559582794673562335543061356630615069603499580536084067162926041648303363947110559457640290816773187803509797077366944596457822498060966010718329890458669586526274070459792153396207248615046677310389438050252479344111442091454458410070222226569765761952580283637602333440955656992704496354784102906991469748095119059604396438169684533274023533308261848552991312402796577317799372051794878474554202355430226509192804429459211038659694200673915399474436883935401374057209508213982628681789167211874234280446648101931474777553600690087086304665070338220232457429941760920587783737918949575796074564738530434435030974228932289329030420223006104782106004694880305345711958218346241568563625518059920309913112626254799535321863038256256831904580713195952220099042570494391965201136811708646263731833049689291475149106700687935201561378211974859593996930080258145777348670898134431880342847934495931374923635561262531987549075173133722285652418602664264669047377430492695933326902646145882826135849434296672402406335788590239051187258329364105710397824036248127950461891754938359303794872152181887141145643404967377134565216055857216408291106113521606879448660182313362414054393760887637526037836590676460570362625234953021626973258875393214029015569104913508564817311144808203312829729262944195689715292404096054467675624213457085562551818063244685485696099250091949995872284232120166458281246733657928687233475072989824431072646529258991546277331189315749917533266329031967868543482163211970834920620638026760331003000678073781112543373783213303824076654138894566155582116348291086004728010749823084709964128766737464311619875599379934120664683892702079293204661256406743223671991077542598892230471695571631130531293519084983224662033725107960510086621742320705378166845615546813904324328223597153054615712304447936770484449655874619848274428537917066864951399110846232665392974670871288233627303138857419491052837506794810365278619608382557367224115949433409767860186056197777650004666787693436323296489859031055317123020174574532994285339022723062667542613570096584542426233889987802769290010493943916017164186220533074088165610589598134836162113912553322400588594806778227483793021231086948457436814775046711266244143447336373931150686717540573625440600926601610590007905258257708715088457021462332594176162388224781898175874349251341315232205407285307108215905985676943131890229321218406638617935649853814683769255276057734722118264138319107483482215485263123151154645395703602232052506832132600981221223481523685563204588793695563753293479232250190099415863157267955994402133962154804135132343116050351929319750001066533780724121768099562468490548155160503259935302297542078607689180455838233418629926363113258859391668518899326636198068180849421040561329670804462239908380393843447392880297173193671130305098561774383201179091768793707225553801407533797385420355320875047045512859639664285302723206792039323722656807660569470266133563021851138294993372525643386767750326257430226142974677447094194341232275602802115602778788561405774736665194685193607035864181174717170546392692844676509998107635092720140213853611270426397533902835628517049034550874163327475476143232322676912027677589083603080042444704684142739213517563297860969778914606215774722549594393682291010385585695459168206654494044334072052253565882350538141003144388626359428205940969263307252687876970091916060858428267216698699929740237398486093961820783992483659336567127429217783834891618377258608818867945404272957957500611217842330550618110553302469322633256289659930475669429449634759953253289863269511519636705323527095987748489978368538198370778105949648467933943759106959338477907919936212203725796922468812809119866368614359591801523910146598493166898725144804782720309591989767403264222904668507380779130041068172945318196702899323126385336557084763002127799609888232642222005673063445870558125401843452761232688649033898241501026790005201559191864276677484266576919384711826477279158061580338992274768722667934585584958370756741299961187378937987904367905165389323937706294857735485511448817360875484615137094254839815672629310949461454207628291406489495850498490956898165053236222521302872300247444742060040453569749644672247699427851624956025626464495690192437253866185704460330284553721368855671521038617844498556490112766984142839864674174436517810365039234018866710176055418507872007581855790144922631547921747573601282903219666377642876796499458482452144451447289515634651445242468141585905851891200958995092340371066953518602683008031572218585604085324537829696082143944567827729471189058187784722334121510378233094733243480709482830863107001047223797710909388444476487769562814220532248989285857983931207672340553081592337909410711888135497391990556475935402638202305735447260404169205718270271545862462059778825736946843210464398579033413260738027075416701638539226238497457593688764001118872757671993217213890119735709825519951836070908203467992366708705044430804453450137921621959891302092270028093150431531047501874862916888741513644585564612105509734655660899820571724989342374352808490276836804625174853183019391576724146643413378823054459221606228321318380684536708574020120100502262956778625176426468946764230865392686995198452333436182375328310077063309485496750796698419552193124168335034421774635643350974373352083934052799195340239337721518322033173607488614606388105406079425060075754346171158683272892089091440156382291413840625397752886297798779472521496635036589939402162915302927559409025693434366446545964152305544061589521240573148667273704796408174380826615838889386458311781003464056168649370848305575224332670157423035982561706489972959672767510740835003609484349851778448175116531045513033044585812932051160059512148757863970402890074382024037734422521945869173121407405076079823307196910314571611517310253508624440309655098394235791876417027594786571793422093864181813394428047795006811352202946168966343643757614843618589450801804376839359206939171760035635591769662432461265024571206101606558630499917447374457504556546456751559865999434948888140617042501178289281482656254239189161953791595555008025932663530699033932393714948643140819784833393730913898100655873044649509753149773426637697797969653892431904160723930086743490653586109154905153954110678946736873192811296693201406868693468182267224729381294956726146336930958742132585631741627209283363685240394466308471953917982003495532644079469949641844992846681013544503315314657043080912608777677063163297717825322502743333182115742305209348510979662743242404683707849345628067649353005261449178573508268192281118904717378941737405640907000658554957064940988379103396192665981157699406058102498518156535304158795785960131579516445863960045753645264197528913256997040627445926229228658641284105942980407931652563678732387229721474056134372043174376368860416335526322856243812113543400980659461785769208215125610931857198904549461316283168240804368951769431478075834403302948283240472249356389515619966621341572881750626636177050498095976495715572585210828156879360967445168701660247166501847030250144713527446520734000175071872801889381706025055444934020125442241444940617598986462727939259454076393796613398624218072391101953843114209825694874323373349085932489427306325492934703831610667745798767400639924103300309221269457297487486325278439635489097473417696979521457559648394051971634525986028791672637197923281176119757220381377542628492973207542802592790953284120573956410743881758199667099287707986231270328858334605741147420480868709887673864531312366029388932685936329978646821509457146002739811181610600507264246276437089401205575276847424883360763557906463605919578909272318768358338483729421137308853823190728847763892080814327148570841265049360462500614140383041508604594654739269298327742066447698048881996452628292883653448624829130477071054801773099544487579769569871231293277247565872214919048285384294288102811422041436611270115423648713731830214263101717630518777751695030023712837186139257602103474007140274983360047524435804699914826457676590512145308103199211497133879891354270315959887535252461031544834284505191972107782486236588353763880408643652954535567886547788886441152228096705220353244725622254944782451838441208998368189772262658443517448861780748397665305311571215207598070113850161287129622647736916983520628220280095314173080248994532112786229328873622978968905106394385760461631893614640810890831893433821832595457415217172118519648349375615510327588331183325177654162552276645826342765401057143785361511260267236273099600553691334021093492241553453018760191473817702256183365572555322292260508317348165212550451096879778410265547319969776266565307440550416834776278947350095640279089114508811717368194001213669367485836734968258984774820235356746630469394965477730977073245770198851778316241434179588438536705402319848397839500167167566004135372221213801127310916555915309604425510720778616989091879541216216819146279479295083120128951879684675437423405271249461123672480262683266575193207135038475468320835943032855369635458723895149465483657326469328947803788984828227777910870372032854145471634247710087806771281458511384456299478843980899433234297284249090928438040531886171706599319518957449660853796628083006268452535063862897308671999511981705892684684490049814406386104266500822166080350418179806555401037420157884848305393658205787023432445322769884290512036466306244292514783887655393695827952370410239662217740116497172227070679229347110140878251625828253932656269435109851008419434378685839594117232345124579701626746918298873959028716557199122515481494461081144605844535176293954172723591758760635312913357525144061865138668151660215333483961783717035869928348685201740709697410783620223873905401112537297183477976449260749430738759391127958183134267878468972277665436948257550232249064120030641674211108413191212215786326317643750540467329958482220717348490839354787582731727305570827427593838488760839880609803237284731289144141649121058852159622293639969913055009726698028356076517269149746048572375601506657457438849513525279894362271670582877064225866092978460414694055612007256391062234825153262250531532931641040736653223596214010906871757488997611130690043775302005826392160124029354436785182197608935963913119141603017433156167483405438120957815184700861229480560212659759929279569035559743054193383652267644965645247907664642965749968712750980819917805029598347647978267962334425419952610091627925353622183429843835736394727999480265813078570992188084707114172014729045320512937099220952405806370663768788012662860616270637939926265265842673036449330653772777998228394491164687824486135235822315230039236315783091948471729149256126881958915009261495316969358653805376759709558832289639944668061665332891373497218775890543604436832919552306611438541291482585788414572123475766134252657372665814332213312658673747001060828261783009296938193175512044796576407974322677608418556582754696217739402129409760200610099329720822921871599994500846306638282701465696029588995246953271361800694334472352413093016854199704930399133969226485301982187569299442546782694566004208324674745252780937433436007831347218093470446193822056176213214726964913410594777409529079467697159854454544419385527789511425030555681643837012055994853914511265794756418717516152989645296383595415151111206604920221846441619011797564726952886111865532296457016356424294824821839083044740331505397475363235921749194027631104163760528087027484037616432241150324145271373302251410288753242929761031401414022412610985971493127471139596144473605849053824979797457985301262749625530151581819089548832283442339546849612520970925962042410043445930685786980300090784546258997188815787812896809971356138601376449979589510788331920162214928260336420398134298265487892246127331988326576651838334206249272360320573944658679330418003360486931132850732745575654958677513502344739170529297955348659671545789899600730566616359448822536481469143466398941567138337700102404759218454579065403100718399143468232507815274225992906133371391592682722804962298807943288325836000208876264539509400116545905500349906131120043339789692460671728949049182699705162452756287470577614945112328137636636085958522841104099311397455416180749790203270200628005077596439249023257684777714896909127634645494439467049926387984524044194767110108827094419826111245448582486370567383531556971619782736990684376504870626229713772319717227653387356680968429703405106459125867155040355983199170482565338840369497581371598418068997245286482963321370981981782026712616436489987274914506819348209523391687919099290515455818274052755126921150697172944109923642379685751988426890705944715792917354672460712481001039413754305962971849770145284020241642356494534205710578104272322277335135449680335410182894852963552627592244484299621400669180977058482047707123532626010034596484161532545509243226610152129899968307522760948164760507318123237709876396778204632352713421359330452112872732446214936687910496865301953040939119220015781365363143582475403609139190276298366044513837703280678877718830504566954095250034120302316305354919920828538938632528448056687326165588545457831981974177989174224481761623385089042120509973524762930522796658281551498335367891767701805384159184899392100648348838347415219987457250905041003721636428658594099836284523796977339413758774519386070476097533392036389971632698056364582720020016038866210172103843424423986524137106237684329227048025347142122751316967335521532588409014085355674478891401693380006313422951138012149027684534891950336612739966261449609845921007706356981444008270925943777577605029679221712197765349261935731964563072581992813682498981095851587101933162248545902064277589576946768982807423917543315306390940634369346987872616113585375084226185561724926882093146355524403084754813317626587051606293756091388771493049094793418692491221834800087724231534532161150142869616781577410812788763145208469559338987280652593240993122591645827595072246939093667759735690631882130893741675840233551384898816324348865292875791035048690641882816436136966528714079943751167183115685880316185131223875259607271881027996208644967489755271762768880451361142244402388215676498763853697668503949668132682251882689481838142685363069307902899866679081729906836151863082392085341331619961991844687034303026919199639212521741023066441266791504740320376157993855005067012404882347572464509547982162860064309535097337518700985094427773897278872913935876529104792260476540906328680377046633403717612883379025461934183557187645054424718547769767837255257285836636342758755527805579809553797831860106439119394549550337534740692546980646145018618389603652713488992939872094136341192718506286456041956131010214696670713217932760575796792604951281105932078593880726107442302358713470527387131999287121732487609007158488374662152622316425569003757747762311278468523521276304226102901331646956014860218123147679209978080578898212867847992669152958194929736220632031871523835256085299737379102034056421024749331406495271501142967177749683477246790555674671514387682009119370714166196975510761054715963885176218207633539730527813411483019108558177825869681065986823187433107542959348049692848910652516597293551540692690554326170567626845969963481208564107247960207358751318721917294420160571958136911064658824510266083143227384047849432872781815750069781345901679421981536193797270119272456275312996163922340894673476410179078330443015502820377470411820490164692626618821042358494089720361619013183405880254491649466053331943848947948662495248707347026734042184872820173029230870659170973581576207650846028831603671040413851235761882748293439675789779508305722992361818264145300108323027157645151325454349131735121326723338660396930473859695882548262665703331438822696528661784474399710489206806202600005071285672067839933731653352801155645596944695193965659891469486536213046661602179231957020831788016485867259868950803013377497915590540066886920771580946324409823702033676471308506136932203282756056220716468173351466386839544722790781724574393061398380790752395021763376164820626279459404616951573495318815002225616243835382062904698005586562658179372388713467738184787003454358617325231717627556470468009289641372391441096532404422060056898267418032285471983665659082828168234677679878656402767401049337186484785855704951704496691691866671217355656000660034586518410997306775647956754821351289648914679725266314409588966799524408120742690507068625523206368574282352113065848998943365160135365766754502636222250082469844310668057435836726923747691980390907963916536577259822107587188674078834211141039353137759664879862625526120181717884218908872188424139147073527257049264012476855416176229032201388012838440989138608524388375039447363008375989723408679153777221006884436899575943419182988625447624599394980878597409008777338113875225219699422454098603941947558701546077372151383051850039494150650388266784193227701136804371566087296052840619326213993806188770157348942412504734207454010785476516097258467466210983845414660192921236642756201584510375007066833669633112332835403285880703418191367791560713736055647323507620201181359539419477646985977076170514381465599246037905656493481491825513981682040019494459325710137599772426410055135380582621414728950931022460888167393415827724234701823840877652767241247719899764045539942430134661788118624201658955171716536919790806491926463659148800083612381375392757188600946512553515006949448794068550057019536217856619605596973025849646158705195918874271137837676967507243320851726108710799142660623428772541555017448653010058661402549594837436958972616168241730205648713373346590206614170974562997877422791365040887347868250372601996666012486166779440590019495690312009393666840146775312659449503970576515913784038239462240550041906184368742895301996803626640210878897865005132973897048751377904958651823329578491748685474954229126057331115497576605730719925555058081095425884936519557043390244043587859155308539961393230385308599633082247054452180074322591745871096892334349051359123431852894001639643067490866065533594152542282443865617813661774284364403282959097190970310724636826114767416238715554522604716156719969079991386227653344787732293737809043066013865837109038896451198755968510585851438717882561262259709413210551208826774477451752904148519487780756771366800784961527548338721636918720510497904658524126270721941794858887885658409485687556488876930925496959309026602373813920929058762725659212824938035017488790352528028333839033802043605905060230735595797346485527941969997361260858575845846131996526356687374910759838171981464236018063958217140974985343672274046263701792645791868727285855364100007304358763725882914811042592086277523589050465887516003257727267402534144014395236506542159272962615970192019985068058523292146944863609811516612825862938507460354856765862220175745669871424749534386895345618800662566642482004915100439067644299274732478688447161567426513929500012638739885119339677153950467950669428975874344611379888566158079048674469966483061774620960330744222393286632035226276669694233828997910203455515273638514804782844022356479920440393177185545091599477781018978265641431969018965991980558452316623156220642238505285449823573850709089013737126276759575264469624583742009464006685634218885996350405588046290236814774167749177050650737007758780752096780126299540632889620353000250568691757494756375460154241522777275735170186221252414526890786256535450197093801385045147843451167151499703783093125800070580764313975731177198310423980835040973548871974379717709975985500589081482221646880745435723106534038885673264465964982944247905907405503466971327005363867755696882366788582156839281873546070625218304958222279106107381399966553246623344269489072934800069000482289152776594541014255771334842114791648562786267266309801167358668423755504467802623179268660020166177644095979935910238789302170598560673316454695408941689301129830570279906689073527154366962027689173711535333516862575864960312134263891672283465596514400885362509876231324252191434869845122127308264724004521556457367472554141693623243225496047200073946249990388770270625104303452788947602571959820761607664681123535033220621789813458856011057993931786266144961062783970128904565757543314793325813962050153074642837569399991448101460062899028079636387893978736507675753927003645261888962125316632491702920280654856468850137993740539439057815029129287659361986508226909790372551420729937005369332837296702247138040957212633753813482716921515184083893694038691013899817822458377286151178186666644208430360351999251794150651533216723148137799062758211820354226455457327014994773049269211478391299349441517268462814152807105185400140207634809143260535710930056262397039205468790829579489941110721750373385825819517708147315580100707286767465140042418655714443857559012804194211560080298944464097647935581492706950687902703862667042548421844219200975000031736644723303231420751521625233187923573508674166100426417429699066635960799113046613200179101165797735414133157004778842656957697404551590560705210725645091286495892694028056583718929535323884282854471451427268847380102321331698974754480736331647995041549323462448740537229320026734465885336033393491988738893215841645640697784991856340108881699278627454431309638175984288644413963089960518046347088361737158730379902419531747278626621927199933473416047639541750655504207248285882961836289871844105959634873894796137019822064131634147903672226926773204057700441856128281535410964846467433116597450132877878545143514648787022956097221573595556786117457580765091249209797033690255073985013186513186868723913112579101449273609203218063330463315258026693849814231556434830254193057723485307172286803730697511472445538318585226598916320234231914027401849352380420186368436211521995157720175405732913209086426427439630779994684983140716665904523070059756967603780355103284876862505247880485964980796864717177914806479240530359051051568327508990825253062816053744632117459886509204316435136534693742440137362286404285650589551480930533923111211074886756477216682332063415243854143242561386745425040756515952833468167908105093609258214494014696868598600999849210440251922079829374303754540076639460577884544512463192663524637403820407839871338162973996360802757621599374147350748122270411711205296869704359702416340160683020682667042664631949561931089399214934997935369116086831208314974527882328047670116911396441834966950734875563572355530895867806348134376708766078842528380851090106891042949079091061797110646195255354637743382135034246785866301891408709930082643345309302241804737738102813682797538597389882745416621616472120990538104988171574795296264358857883421555554460537470338572263230892108234948954737098174076799776309295620885137867881962683635309448301041157491658160268109709204365675921544265634100504585352721435615555482831698657853884076101415278078747347422335120288877913384892148054133332694845071337385664352069859125840239345457873897049644708074207100216646731665468813202937363772565856105840304089368393261614497693303128169156489648837420105280559497854108867113320262124005345798121929659160122675647582958647206606903091874649527969119633633290586806851084382715661534733081479795609053251705236661495394576383792417154483737139544697613133589283387785276399210903156418171569309817063728348103077296958201637956114117806163017927319077571095479807539277673101771475902643037081148864026014962812609115365692060518188919384557782194555397017474880986216568724033352660549682146671341572350848700680904092009339074100172161745199989576009490845579851359691813566090778572327632947420836413132696527845662198097004595266542128647043432274021380460456935162382329345889490320182367676587232057258513892466882468469327070855794839075699411976740805098472315102462663377762163260574518741145166482702994807959766385086017681485180327118772129099989402803426162223711675148289969670540683004611625454701043101418240311409407159154712529972283229027414046552539479334858854972918987095472561734304187369846533672261018502948469608316231967698364275457081545646340384516887871596468049225093155059282419404723370255462369189413255643100189555352184090150254929103165834456944051758871500669787050645810316563247255863651733488960620886628909003198341491002612272094136057615204243904620800831503605312778516957525902366939611332634209942010921984074616828564132277944527744069940308511157763763525695972426566616115947268387114552008958206843405412028634576227550197402205277118991140358759149092447045202752681828761245947087422435013948027415965237296653878541806644812429660222315787867720906190068189818596960945931422642968737837159136197315082303909678794898749668250600034580094288491089975026502639980228993395778008322038380742893861791855521248568276003796488737013139666640705578665799721723272690673043749269650309530979598424196584180198388740333365892585924459506216576817668130946762692340939837240254533671221066839816887023786932788470356793154339760860230863079171708304500473507763636107088125003183549797601410953584510107856092610366404362031654703137175511618230942380896985616846962965694359920341213102402581993416711553393870618790461636288214632037966464556005871546181890981156482504595796845273500343837489024049046010349099549043484354014405333637267685139320434601070305874620166253229205348604615832750833285361882804579543807109848989737117152484092528253541075307992480183810807566364656724106309440260567072314530392813102688431528636385961333214914744866692680270544424384448943223283953253056824432034115385122359715313131262154926026718545318797309548442381157205885835009390731041955723692590009127047061544755992078256343668292288928061043313423937249742450735461122445720111736889703143532102536221281301507534809925927027495585570262195865501260268316875884825440234081957720863980553586061348207003895459487266706534380364163673089498529865142942566919775509635642580274126492441917532853580348087573542231764987287007744738770187270903981033310960550892562295156841310943900604507493211677280298681591329972514967417115022178380533459597067575963416980017207529527930906881851192515283739488094259564215756505028233496717034751905718829664293596697001643309817231916651684757566415765400475689931502580875970664328975242970886591317888190918594384927879962247787186680830504638464609509061463990120776193391004822752018636231533400663858116739684638772206446904700355198322009252750988079320949973678421191137219263890878734484626102923148812237555499154842013876239916071047290619870707185488395770205433887747522568401911766133885523119554212107750831560529002016649246675683046539966957645805611072119423925017773382265386223720275107832950232190952288443290470683737883194212316401102803353788395159424101312617533907515398034510199625969478068559113300778150167257187212338229739979368703136924883156360842089346595488858312316897372635380566059073112192079101701812858596139813020180411033636001221643989320378544121414091914240636733327614628331089445999027800871570210995277109085098510979573108564103007208336069564819806165513460389070182635041679268475702343025600430181415718821119024350227122636287466532603298681359677284885375873229082672509301884370096663173755340541169435107147497225132788852660550684378293967584395959889366991665673060714508849105370297045858775785977565365590693214393619369358228349697399596422417887161787159930390061911191001429708218964030966122921978797771812177492017497309901589558148526644645847754353985948354631333721120734006909477904295574854923698406447090523794407792660967517892215850120176227568281674701340140192039583542674786712365100142133958499901599814271108265764916844021434942301146839427149563135334683586984249948081152298093406183754689191293884804886927867972711719572654679402797052060874752671583457239133416488616056663675308977112389897327018543437806319591877802108899036967202962380644082777321807281093831087212228296789148158134351936264928083957196710312718748011079295240946623203892933042331810492272153920018121239040639427285269762861274751893479523802849441661156023296035495300901116228355077691554612825957474354633517987368161229713690904970313677746925750904807781436332889437942581304213517775667657500853549776939644687870852654034022537682798661553259611585554924289613657679270014649721331949494091550068020465797079490318744039824135690707419517122474308881073494616061732057790701187809382995968696718662242492407796435984361537614446940792642727247149796997417346293318908467519987584544927012391561083579329479090627880469976425579438433064441154829038714185276831275444147929263086854430871058804181669498210444494061076628031658991107241975501814629694848423629789545420218247797414463441313638432863774621819920218016470080387693512892750642256867334208901087373837635651871328490513638591423172622423574726851561348312582288280229583652140984719280175192990121706934215759278669188977210188461650262308570864871123424848173544327462030573398746405110279003508725680554356023976685667620846821546154590364661364967036719744964896320278234890099465311136568395829880769334588535751445600976590322325409416805247243513168206365585603559826748685061614625263088523383823226739050733581626185298452127473924983505819165947447810815927292934054422003258936832463619579243907936622094840474939195958117910429305378642339399153078787178644358165105345619120211868158633531702561500761157450269196659037892143801194362376707699359166813098044317119050527807527181523261443956472586110530742542821254924239928142604902261494355350212013773444428434863266739814574106069918798841639462532942527836389965485475726537206347664283838081071712264241039276542663547540342290468583048251039757533830465865346255635069281269508026353382655861204913186550200799325821575218758224750361974191158558485244435474646288306108830352578890617301229070084016098283488355749576549914814302455792484001898642744027969826677757412718669993039771384136067336726307604407494347826387000634977246238038271866177117840742182410095526485644891466399268552056170976958613095996077153030597147506576267548522198349727784819501260353383833939598513091601907460620505596672501271918313190394978705399159081378724863239849717931362722689090657117797889090915465633119109261440446894083122781043468140255482919685400874971999421858506171049866089162807624226883626190744062365773386746832016317418194033627763537129769168722818566678326373296585128134985897615795630525937837712575344037243383359322437869138433324180735159777222556865856728148737654093465897616358160758828945138650566420304630762638626287873988233163428671032347342204976888309247543717019071585016080528617572076398513619774295792810527740426734104590091744021937512644005917871844913037733901318413091863925640728412054645655570823088921983467962957944208306588609195947450162230176515226966295541279076429989006022522788947783794735932633084493104213550850614610045729851813568257496967613555657286388128792905386758520432845695502924633478461029626031878557494833786284586329399864443913925896675014114430631325804784286113687081543250910692422160270285858898229538803203979809059690088003106273144741968923723184034012579238778702962410243544768406680078872320478507372012506872035360625937419402502298072862056753031387950902069075275221516782696826809548443667341640012800422248066780005617428173788765208920868991195777910270045978656051393450060170690851930884059311073027693695566076608723615906166539297205936695121930290209900686613249918519495650050303044441656618169630517090905944771886667525790393855047257261593764911880334619195693635373223137703485931674628724309994011620812053788101073539245115811290617426029759637361564379406743629374358501528254328103874433735942000617748693233255511867711690595349196959680610533602900202940030150282568353208484133154524798576203369825341816034565500621439651335515428380684821062794991779487506459860324352072196269213961011889230436813141645707935780660208705185986000509925290008163135747591235567339329021289413813948783885359152515280441310939959686532761281796106607488640652195387446312233690766757101802215436376013951037915432024025803866030841953280092654621989139476281505564444855564604340627776700640738810009422444010279255554298205433190741073186502479682227551160692143233510488961835542258938040917524234356751387202891140958555976738906979277170043944128550543261436760672973647627347377571892485856198451427916999943274503498844698528316933929554108517934614387538714093206101890770679205211722101382321284293704942235839048878139262108532038544045148814432593784630661446432526198217842870220662940688023767522840129379104238523455174040172041256842639140311474737522478666174250820453982058026240193358194946071638787406797559196498089910095465881697564260695325218092526033528912349145991464203495425017009896640342614602072771094433663168392000598889533763172400977611628886499370372684701932357882078228686122777549146115404790793343130848766793201441426340512203203405651659520205580029204120837438921381688815580140097881894795776801108121881343361483739023126080376827802655137454179758902900189792794413577067410172069393426893826534928562830671076137055328179185429012996493155342858264714884355760848645964764687295102738718331109197517801426188638609969539244120312278213362210351657193867908653916972868881527315076465924525110127526083055899318314653764080053773467162080294337586186566680326560958217490878427229956112680092515103304226988267308179088600340317138593962356781094061061597851348760787988002621360314120922419249131558642178153127875726454331374142242558446280279515947481529151453346123041488961227833737960819868650581111857578460118076980639154243435558917825429811025389883539211093583421143306632652573116726363940499341582701831537638170755068663422147687905925263693325637113812852974660538692664128448903296858987351126505219709604095782694341013555377355413432629796254092048460943229302416923923330510927126321491036059788949112280531842599472057572115237929039059057491937792278573794311660566448683856989690614671584268158781612031525494413813109847720082822352429811974559704650660103283979924825608483181952183843170267842845065570285034884851161591101753855058450641184031334616709263607090053230230357118345106858290365428052535267468326968631296409828162057937212231950112986182773817801461283694345503727954394785832046547113553895852638074267705338104868825964286945951420181636633487203739926138829089397852342523132208638357418333919852729235870071691435692280346346153731831389233893001997151353480256527461458731758690784208721533585412793271675783504537129349126283682424009096487508052728300443650536277086217399471755347569612328385172178915244710870120773194814082912154608115882406898894569604016171904106153629524138034443214337186410617067326406840247295277893416206333025742868398515037672013164984346068377977963207446055163708929798595534061319344666789688222011091464707495058082521869151609555513838494537958357947558750606303307029752588986533193540519720193723411992934418372868385223296629369258829200566471075952445654078117046265774682496693212846795974406042623238566036696368577577936694297157560597864226694857260165185661217674218135983654728274009837581654652549428039376247032723906167583701824826928288915249489557522569823053252567964905363538327009051361375114285128662973892370661663300510992478061328687321988071693948086984052141554892365525284135937242749467966414361565854455197261994555610897427613443490008951802137384206580148891924987831560124710022557518378051736345384984144880259406129984017372811693874072139770030183733607807404881670720011612575549429549027786056435453201607676790358745172284695355502091955039332157052043758504797728526492746306000101795676432550564684237634385389900296946162677306232845108706500737820628370752541756383566268771719008832175675332101358966191903060108377864778085623326091676395140534991422827551910066420238674572115630726772707736198273887486778868285515181114346919903895545792133735554801896622741770976610239349418411671328697077667873066094391555493569988979807751378038474169636946432658803228933455052448588519578546759789174984882053620341825235787950230899802528825409769600178549123402386213937031113072221213762254079772347359162442604523106372357126165241298111074060111026213108964520988646397550490564871312917458312033798493682475647877483449463635106274692589905723847801329951393793263972391812525456748767276125668805101772549338688004770972757240743807845591089128335544719487840469300661877685199106423988061554991275621510883737638115581997958799740356111216240075005225461157831739478450847114483035992873603800327628839027244774824810065602240071866585245339576808201309430906911270167984398254749526107402198455133987906626436915747579607661441421669567886533762897621731096057109963813678842527100501501046169901646186628360919966631288557230522678492252668342075803457127505754164935276975966169780819811729058636683067114648415648554583780510918902245555180214802853247385641021729891811817050346507173850683279790917195359609158031690953249727997893840663542093353608990842882809382366639542761917927745202603751358861624062029657230619570757326482555913919853447488995012012675969760648514414545413448546840650592793658951628719214378914117968416513930752893688213609029753656927101473876906335134636623870883933137549129639039062403863369195037321736167706974815353503852689147940325690803170785379297968054568734068225317256595189345425203745466161341767579994722245692456783703029432468057040590192510366615753845140258495077095055367297013201034208560217477029769084271790676331589847097925005051114479548327658131899778206844394076634852382592487816912764294401505613885139672018967275875881875782032335772794287194491959307469192488597113694927729451250705596868025575107458836584625339575939234473242622071733664259476785363396112174342325854299924721539032594908373235919054257363623678508893330427952216359928720557069216451697858062623854664972547658651823989218341394269985378505440128182328567998496572386699450900055510121373427543887435786663253194414057252213633525392248996819782459653395819230196900458611399017891409976681511095630612846459190958142560282253938310618174441934097364929638342526101671488752470268579786488563149843917605429845349761273141535220868455420635769316784836043206777913237190217449218115229356831554827782394770457065674522963671234618867845756970183388751337608783045627476360031787388329117222473212242401246890604869975099189566027346240862516553267325831207428280132559692605342199204736758770492665445727236224881415669857406886046814686944996677885030651494242911676439341625765556929534045773534364788623553907288522805956408775195155838149349244655937293504753490014974672494652507555669993694201753924675637768801675392979196133489331439528257320659545569685719956795743355722962708125677583770174297890539891059321780951445400008370019034378601727591223781994265489289793710011550971664256366431636772850302913865129079496742869198520245251208588340122055761880779456940542903755528694472742599298748638663481627613138902041313196468344983623261688919450497173867982611535145565636002505309443352994539806724803347035843364092469837944677551143525508808648832869708018349280938891676096878042865621006377618864599082165482136279220934425160344073185322036878538916922155973802487267523684226470129937063871416859575946404315311973667545973898510405511895496600595296065367010283551683388516624858870142468325763723195843043743823354243928149508888633202873421093201428168406065213767456715072331726691082964909536421260286131153714154041895771329863945727020531002144706120626637639854707017576520665771691483686467386463017277643135476093718342649533077689906555622556654833821879523221027590373734357851958141675765621563307127797877784738027484640147642454898661843720036091610159791013866081103508488958186424222602765953430475735652161107335015456885341408337403070796980633737320622102726144172010769327696622969750413091672965774159091464414237747436678181789145885295950549215711834083511441389383944328242895629904752515146904195629562067754601889144441504513367842795799255687371985258011654047365913831912882476540364078381020440738873484942511071522688493559224742898424165493301092378494010687527831466271064158604739881987574038750485289732459530515299425656977390864519638186946154704620565619972495022062664794861255361307191643507668680498218268704769231621285880700126744509855905721043176253757546473276886790592131603376114749665109177092105469055844206861173110815458555869055014534284131479979663528992753508393240918664989659857280008017182225166878654751770512141809772281119682455635925199487697073841412908324087043990306935214314519111596719015774529808102594017907843086378676613542020407489662192477959874769924926251483931616780356956597020517856875235993776787465505866874803364394049272939674636251479483076732043572374977671009322256230777424824006175155481356195007834015435306161188951222852164198833001154737529481546146337156667772638847502769292631046608575177863882629242760383401234461096025944312729492164599697429350039759706600080047177986626587135190545439757833317989015137110673134957904620594709151216659084200519272910339391623957862583795401790895289654451876864494099422326374162309922621499691448184004243960593467762778288852723046605627510319310094582585322528847911675903795698467507862888379942422485739031424656901146872242233176422345457049183984746967143071775093874920528358107071062430879992196959065442365334586485153023265968780723314678151040814345695724188272316318786661374510904234194858164281627214549621571693809724017765810781514755059954586404893533451631968423425516026518757596687130416250871749118774269850886052636627936419576220799986555190045654989873974977282528560771890230933818316650702678363182544085909768133240397309874362159524819091509136168670237783499371169649897700830976518123748289505513103463886891346491134560906406468758385001084307783406232313456915647133295749564134091677841107100065763504822516459661773792923337806850848257033357389366808821977707446093875524120615937851100902867914627930175974822857758604534086599284495137829054678034825979964263025731806614874928941421493224854990555909525301903481613927438812974175783505860629578831483909188693815458903929223090160807790667068134063226830580491910686795055716923663035372782701758349593130738966180515852195779603456751161680507992965798552885615141252667334996719481256014327342539842771443858882300091439016644853804418466707902215172401865133336755512682332151060271954778676403359235855478243501958081436579660517335583143419046618409223494911512043273276419802319230280565565907879052345762517889838755364122708680989042293428797706628171514231296996924624244062377792100360941215593888268898131329663246800893533398751590459722101155737919431534982116417621093112653096981387792252452381932481604083679685098531870240147199930846314572151480422057362793321559785661224148688370719152056457818844652723412203520465150064243685712405668147618178320741529492362401387522478651461548930672456928454821953460762787940125471421247734380152557454263750083117167439459407965184682073057783492388573269147393540201383580573882004208460540506454328415088762228181271099189575921707067336721274287832594045557419912047937674673121760973626562736246830751480341603856002271191267012787988540228106833886949367911006220245795230489450127292471996127054259720209890039464215991066912345698805421539054253755918867463464917374831919290264898687058751629746755712753752442055431776573617783942640820700749179764795115545559065496601469707085856055638399962620278516781542450945575796803319502620030513972292505083197225277000296291684382308640083893183049064258240867961290023508852625111880269406165131808116994549666797405260311251015570523351955029472653536545233028028482909567699067660712564510082066478443497585013750037247451500190983724602310221086265195400790001578993373165925985401208388981841981939805211939375156790984774467960695473643156031301537061899440033348107073971281289282004629456926782215505791062025518120818530284268454235840129300073354927987916168719852493883017129377582382528164468985560728224055941714521659274651432096435332648867525154937579639562908653984860488742040626950768338222779578254012933233771673584182941254603288716927490746423436842599824190683962343396906888481979529173969190484548414566886406475012276907523404376995885982053641615761580665741046698176685817576838865755739702807660221143104319112431723034358219387435112242916207198353509850942399325654003421899989984363422433773514585063194224485345453115197142188994688722409412171712957309847029963231119022529682977426774803544069856485855609535303517724691294403128170311916612616836044883528184188496648839351765220819697767333134035390087805009721486337255120523630513163743529968873467737025631322583687239126550016060996843836071104395511149997187945869690354034856117875624736211172813704820752481459228934425642140501138630001414747609004884561275583634273764322431144112431108342163197077166871300544061458456684133006759944144856187014435164245652154927948526845507790538698008608094958444949323044451630406629690928951213821746938832732361900161620276205224547847852655707905532318381297271841247970675292223360038240958767210847283178385683764804874549181889908993351582381441339248913092517822246832855005054734845352967423175066243988337458618484560583614934988774141664505100475347915596946071225968618318078623916541803518298610831616832521809750290134327439860878446951003355602782910691015419894809462321994800571777325687532589497584922966402397151062746859257061813919744613720706945764161960494092127622987693757712518917877169964142148836191352664760287650420766144954863974313322522583518246724795384339690475865355809153149720795343004715157375504320642524698071282792369157427721942064935504985477366027287346807562097524853312731438811316131466976477600659103740799980719931343195104213018663350757037035561894867178266877080789205357778732586747557617260022001213942876657328988357763766182152306139980051977973393872570965189610033163865260013683879113541479791660884326094049461992980312820251584975751229496200925193090736030626094066728541655025722377405325053608594114511182752745815907372073730204007926253530010266304206791287470503713512053174762498363198739445911560693428357060975568599797903092349838608140417875762647946438281325696990051259523404989677680025348952921613136514698208640193189351063875421127958193359826000216607481923966905443791484141062422757840023820831422147128513636406187770764468822895045803272904144895546423804177676209132479120130027592702366948943398026217478294248732360178376932807315265853955799498408965656447364960870859013542180074239618058548970934259680382010750924432300335830098940218323889003008962476963304631455261647997944783652443056898482774968106142091664421267069401078592360965907571701735709888949224939277330204259759432046087209124782782486325136096281662954084766418887475755206253879104243219800372497357864079173524000650098681670797293203917437523447891802611586991375704676830402439650043797454038291697089264947775669339368328192651906148218933767120696372981577058735757138117303727971732281787569905200434092427820306558012637355091029529827877258031272590477994461591353146637339571382961362190483005992324235228674710061047899708389219028666624214564427022226492150427621876211338251887331437384862022272310696799327729576792383976111718406295320939763682299178889574366407728765345871139739840115196975027432058789616314033027639449920134763717147744475132541770670793878067960679393842830934516488316865366481570426503390935627984607743610181371944659112549114420536627336272214014356498861387236604602457983796280774672091762989186304121286020865290342220009656017882732256290724886651933143976413270573659281842996536293461235929295534662222718058769803658111948655672481198531642119596069347227227432321794034454149791723314427480152051605942864550308430679288545929882002746487208107943774723364732919195854208378065732614786760140740961315857444367957149147888046506845617670774176674541215571492399230987210929958122329102725562081812717243242021082748302850907876634255454123709794876449871246043879077678598436266888414155649907932490994799730845888757745815178046084223385361345399348027838710397224612657950544393516225088059313922664498111684016444436738700555713146128108039422639209017482243812978741286332920028460254171315240274982865741349113080656761375387512795422357239986417869147346051195468026149597659688785768016445548322357639126001467540826862230607165102637746149693415005992939704072651788310952055136019509063742872902836738749995234956373177356184696359211308436766664856792467932061165977504157745540708626856234297047030722446087619874777816499263638996692830961600962235210600154288047350344687843879530588633899990121094926015274339087909626401502864754159854426959861934632081609741553511162686780165639443533008983537177208651381622276426005756456704845180382728708923936912098193035410695873334245605318073972605834510482751511172954996024317639056002040329178756285956283397338214293911141384523291508569769290355832194489897954370257009520160757624013258493697473532938431984416256958211235665911449271709948628198502206198585432701271341085506773474506040034050835866375220490077763728486776756057406963642206158605450729195823264318474962406519565424034192768097388738118745434088343508826388193674422783205580390574089577331559556593370752576254007996624117456615529160192632147302361824959939233976398993027712184361411003443013940407830006344621963067654962111695118572216297560934355761913917512240870371270961510463949252531462760809885429122038405407716960218653635033698958006038345341517187176672228578517996113269241759995736998916829545382990496758373581367851006956116193277256249772142269169562662341193412052359843198739119989841307585674542307023698030197599308255067918136123229804008530595937002575092622685581655035659508625627122882262471273525856214586942741554145160007197471690314519555457091011392209818499762337690717724823666594777564280992290606931431554022595044791570145422223978556687609982789046262112686679700557179733102724985505412354376641655567956817927088574375996581833255249931643499499278029045534888812603577062700816539032545304515484051754716995937749325426479410014735213976314509891377196083202551308560271412617296960223963358101934440696021309457649646400136596727376562870818747963440680196173167572793365169373874205370032728963548477883300125818713899822531711304902353669028549275561791993129089308019713074173245318679638823758324123850524108395651217508093714120886631099998818045276594151106342229081866520434784819405235746063219153241398275745136962260680901402314310300589307931784462733627394152518366580221726984050149377993797997282223263363065824160562759616269333369965330539918120841938128959163570178964736420718878631472181367451939210702550047390828296048276703796014571826530436349285695155865535308752650493480541771593206399718355103248915013875648000313767134062769017151454147509110016636865652769983916928077697227209989887251943309481380370447578886810309820148981206025597405163713911168137959319325600725165337531554958655843662701112162977488964701135242788668194105471911707239130343047427292830475998369897068554421921473239172140516523559963477697826982108451667936802130134530269883551299544960017315528403052096545105905892133960119695403201025292930438624046190767680906631479466640841196001551672927791898480556172730237397236675901128814264098764717967931777432064624785105176304258341517630297538499166713274056463200522781503676303955377821688355458802697755073720252146952669017557360852660230898833225680992179869516048388135902439861972863021644875254482036186298010457716760476800719619105734577783669536853837775212636960673766339700787459943750741461513111093289684403419983493161507179298315483515852517479453376741104069316662903950826337845308420868205617106915385704507605648454084126166919632888019916518320167378620911509455907008852392641666163684139076735732230505388363676397864764979031557111546474406573392374520185250124274163670605697437584969198115508482275081194295255835964424823198683819550610053165778620751259152650312083204016232480442549108084366594175936371587651151339790958107684948973002515419498243004319186554328346424862850044958057175418046216725888777480818926924093389610382006090111953912614049533001486155859292181861317204414077167103585480456264139451123488805047777740625389874431333067337339524724251533671409545189096599453666731281813218091107570636069469240506046510675863143690757987644835578696996351291322899413235685178772337378634978982294549503057297684533058926217685384145488042094857633695952366117911714571349186966220325863813152160591852679538963169467530851949795663799645968366310329338698815668365597328879774074031525711457446034869957888897754681792237008858215209952747288756993270918174702722824268460291293998001681696969109832919772757944833678854857825626438447677593623258586706125445530659367705024891632432823897981158663323189237037890694625386556117873907138736473088816251733814208565781799927633379843887650332845173567531393472627323471149353176862057585042086805065683551041850985795736232697916059637072966985400352638027931320619151134881649632868281512422303592965271397377389592794480330416091308208634814002204945168560316587344762500990660126799577532230986029426773744758184007009681865125090645674946867617281464469672359427064887272367235383073121466171414135995732771082925246643042116635487121198854453895946100447404347357476072060583707205981208569495921325416828069066992549145887189320543695454687463319933836214151420174471111528126999351540761353739110429546692990085973438869787128675675049609877287571622926828983235229547073950638026358905608305157774328906197838958788159013656849220301079265852092035134331676532183129132431128042206898886647111527912223388601419515340482081444627427336888973951857728249767431588598428129215745015500356958944527444183630052030173418604848477334335385161810528661423813068054012297961929142737154770157422200595512935884151757687060839030415419759560966779261394479491126854406300312735709218282803215588722528306771334889895006227313025627581454597557615500814409358492404324154417770097667536294089511402582139813498844608772504769717226941671624345764230483285729193658000598230007705122461531401934404182480252663192432672514683420271558469756186126055556451079852032923453029877143450751790183223455137327297658749738004859386275142621521305748910823854080189193548968186959467729135098838248992385759113956056919415423505589062904578757798924208411432000964864837522594069448919145712357973730522640218851534020421415789705866686180626469990954272192431166203731913940064675693932745677184419010536874268514883324086889821432442859712536005159777533611092546834539890783950493956311699687463281292031836217067364953575149596093257212372170250467704575709159266806237669691934129765588394770442705314571652965632691609312444088524170667113871001733043723954190087050728252030964127578111750999330046492103331257713615562991928571914069704017534049109694787933907386705110044589780849872348990517419888817147138149760348369829857540725852853772471946156511826163363771655620182632155341870871092616314085475083225132958059687309022187623944431549282091372417619489946586037523221475018740180961249973401060066730753048082016526893494536715405128802187214186930318803132165596392436050966211400632765420666497591563948909360189472823192846480489183321575399489828784145323668020999842183665409091195580734271005242998379361283073473707252094302905061370935812427806061271893236571696566878992608495704375920220186085009098238078756680010787244539865450824287229132871222934006556844737066200765213346885161225304948998303621682922572290417402443894413944503936615618066067973281452307704195567423642244331753336115223049455047516669631783837333607449980517030035022015795363000360151817397102549005339771786853913884534536714818974523223710661311730415899974731164961102089835624835351605565929315017954305802058439618976858297398598945449741690052868913607854739873742631144600118400668153216377279110298591746960369921127317164678916378661436979659055167600808288699234850757905558884937895964420644342813359461817846269648726378965363694722612609447747666127050562549784931779983522138213637032875478985018000390847726862936295777533064527721954914925850489411365921529505547921915008395601682250522695585089959476627340560199732864328646582349653528560736374258382495460717734509256594929540416376289625363979572154083377780548845367408760621556648129557044204737569716568604944222136558120361455073990265274261323096478099683387204389035536331070191865518459199609793986696945740565762175900869777346289232203163665431262146363203828068522829666646937252279673598654326223026367045971679585164438005992021337462603495117296974899198218819507512878850287147490757660983290629633478104281962441610525373898563104811499678923230529641301918013253354491619228717164087975243062666103304693697027615446554531209816205949341557789040217848461042182876262941556891222759605857421922279753061930335338505544556673436808601223830684848083810915296302129048136359814535569379394823081987973814950059500399803291330054676067335485647537732589291559283798278890176013844650161485303966850503814089037940673219245118160889716964504943007503038862536789978658853746740473789762883208246566308861113785883667142324127188470226937153692560650371541137925721387548738732019112006788485830420648842566464259188642128033845628399869978252155755557828769433569391650112015964583197548092636516522680288188428951515679588735347820399479835089503853740473065081882361971007541024746269493579739508577062655476959360957766087176962322588571034841395274224005049138048567442011643034165292196028486150617852290415113557861863893441484015954858201691409354694254128680174014067488835600692657776122376972831980615803350437386951782371478879604697106394540617269493677715977811288148709912809968204220405236688689726139818620419652646964813072622144243297521203374600921755562969940625824009214235870028354063108625641620775629643294076417412216655769574941584725794795961029017191228613618555421997704361762223037639028614400306345468635569351803133320788235808621606318804834234124004723420380314778690251273243598613567777591802998272196050055739998881492597407922079075290203117640181077118400071947799955211036002969450423823869848048696824885858979057044254651338163886438616623050953108375685804778104340185587046486584551381707413784990368008855183581990961038488436502810902818950630925472276168071506703992268103965843215528863723805869989334759173875915789541438709978521386991943755849858671372559116384758625480273426311650240841788621415915527736480711273132034588136341345174354645922052770708202023110376352225375672345519008732036818238776056128200348206658343851700461335125779227152568144212598232606800138475037818069577347320374780564255518423185385219233188743881171090046771650761580144468835055531489950084858137726512195035706252213675988971907558080995717446055384487240777491298419166390335579468994805126113837579781952479603256784497674043637251698526037710989972817012608564103154513292918026524921588570608553881255589004013279231394267672147114967401518077911473119932264606896677999320863507163880254000867660113482966465373716725216301482201658643872173541626024248619285781706581359536400335394690852725031439516169906570924586828187071771416570855949992514717299670979279407344732988975957851651545804674540522898763109435162821331310463300205642543532570464527470628818610608183473209943946310199183360453897169992543537092573695594323921492120440154714029229315213579745499691170863395143456191200499273997821925517374019052938702139816323621437359962291470887280960494327130497871603393907746122815045711313678363144356086858240646661353908117421222121516019813564539723465686720486223063792799359376930105636513585580074528607934027471586357407311987963944750681309984890112480777288991228229045338953610498784860567067925724397689004312186367719114194417846326796873007062985192590925722037126239295001903402090815588665894220815590352407992703756174404489437038231674914740164172845596885961928043687331309861603715393375746697093709581821454609245104345726544037283403799924641320172781911988610605777498629478253550684938416273557664631871649642629267750179090902227638983171936897568917519990252745577566230843629785284542331490640543298945703557315408107932492484464274646723008759528432267437171703352217575269347396652605159587300486673111307012615353999271414323579133129252609719568961663896878240857582970991585875236778976980486043346753201308597428115695709992333478007609224644123519516225479574573702767943008164912830154099625516989791515842690720117436611516728414540787110426274738440102963160121390217674133294378697045318094799718143394809032378473164689132585828633918834376372012509579799325432853378987828980753419999099349006255003910607732873871104633274895373306583683490288601955428108253575738784018680242031872971623941383345133123885126001761061289853721311750093611204149682523369044611728181209498746552032777438782363294397745527193496041858823346903483092773882488594069916362170490054223366454696442278823904365163605450103108657656074698550750933273306626211920161141909813964266115593052679706170501370605734184963314378175695355539970507100182898857244974597668583403435222534654015017827948607908713373732919266571627735377062390890511381213407260994424369896656149414446484848576150139600938591767344061362624612159825469580672865761719084472604033981437381776952046287285327148353994419960568612869944884779153277022823420534464118662497414629555210231543126940029951786899764580549009272266763103413669175182088477596668050241521869738128534916759164487394552160796193083273535116791394184527155111811187761336150018423755540880682367283888775283100919836622967421294731069356206267156824614666955447406219549766345772029901303632584063829914856532461524449675090352294502259533228684990556050198777733252265767055211636108585325513289220154391787133413010194666041917571678935329219438772804722250101629946211559606577596113117498076597181745854084243246253546455474542075747328989686843466712081688564922364344573972487754461824054726140922459907581645841135117775456215333719680610436387374470249207467584856681435683853232084605388419219352246612221455542380508863503100145226993077494501781557998175672094669613282147298796454771314600773184448865884100700614366611755482792911772481454004178539905886981598257257427032641484729119633569161410898458720831212920194134747011052532750604695631040816958012108856157499032889461570294392720764266539405190147359252114259529142832482582688033898624794287889006233580385698073008746071527015084220966401377634264580303127361981020605973387729250332299784524376709433358478011763456193305602341391154681356054685775122443180367665136207823030433151067975927470038300181784982256063679526542005295327460645454018595037252429915089029676977164275579529837189468805801070371029214868928665215925137769029772129150704922955994633466408066304768577378256514442749025368095540084551928379650475097524880512336999588383792198386758420134040072775612259415577916854497912539399390289104191156251890743236171532600849152653903118476503323144872741984566193745300516998734083340893900237608916404884571185922577240277050185008894477709495729920574121878739942855043799724369030501479094180781937080588727953805946352813489073221978059745692948822104074341617556322682658035001462326762823431419310593253098761358484463855929178173211043538710987017645721161192633051966318692533005577980220272825958349072490100866220364210162957869829110175090834897782919965986730740657384147979544200827212249313019452265559329399511336358233342199875027994374442415460754793830033924930972323883989219189704863441315409666707260274895452953692221216127068488105551390087990789567807711968419415186426705974923809559846901085234779180607624124046473212952914924411236830434089360363182434450147152281502312878794364967402890409701018201311510087139746738039454633576362535671048194325145592264410968366549152471664667765054866528808899861406658597744782058293810239968638707411802960811830512393038493579885177914774589206411450744837266665968113974788355072597984323610294508604295099218396484525381878382443979907838332221829812794569059744814029730877115775076666411129162729294304352681367554633082468998339150248766473024831306034192626910532499527345056929554399723323902813355482325794415524968903287272264658672054111531226073432848782514892599504253504790982526456509232542207318658979577512320595094582132944886404125595462257184519498115479439452043680836459189142096978578039050816805194425221012082190070570298346329610207553767151641574058089795377439621207154102905720410127750572082968509952858522391579648796942780536686133620822331098042806888624954398472229035253764678538081488836628611560709575753761669607566937183297379850856395392516553803777442542231657778079564801163298777291170209237656362039237121203163566311799267831606400478184325149360433095618585579288462490253590107041034938222807936723438524182277905711576657650199731008527103413084529889897130657005332635198462716009701373308786656910201770043882227242735090565139290688015348843837124691232038442938622636418855132429434895459810663793678697849529484764147697391122430584532489059011995294514607834446578206202204313103030250445669335612456045670174474879415436767548590523135251497785503579866513891948376670752101325603520119768747397702975399733952438438784533244255531235111561490015630836550864564813000521443580572610925631483521618197325216125760568148005068091958411906049769367857318385754354453540317735318877621559748196471518024630749662448042438396692991902897762645888996367981236174661031334460116060476810562256175169009927643178860396228987314180547352137513031123720751475486819119721901429035988568301851735694563073119465655756986129426877372728194691060068520386247388864528243968722249096314379000945445909537770919511905615846736973179004020093756700915541536265041185273719181305112701205066500361132115546175681990379990386802234428200262982727513978577318600986341599033076189385189299837711845357197899256566631502634858990258119099234288556569960868824847978615797836229002480383900462392939755383284728548728038267748070326978829430516155615959428341762229294552270859474235303218451890866995987209691299712934330554847680114591321766560081715866452074698063177093218627342108846058363934350304902781217781228275476857927493805214647183889681272758575597209154516391968116106087894497834598239234486465327089828700093876987875867190486245061040294308103455205110465520639105596950602727529585390973848267870752224520463964411996604392364267477316913798601564127129746420960264700127580527966748826354732706282567943030338273705217763058072335132611579911119951505956129540518314096194050253061605586855090661034298370365397721238380778043396918750072065570743460597612085204865264155280932673482428257919290080934680918251713590480292754838072256941916350037906519016684348822590782383267412116355745274857631762248425233286053357331005929278875547380460485519951757919081486426550134901005149138944719534089007793974154662105133332771130737322093302401392232105846972963790929368439273111259406677049939713201587473588521399056265951314468126347697321267194075831802246432088121790432647339013419821347239220655234735547588396872381995236199655339363668398667958230876968884995498759220021535937208777607813662512270976723147611512005946754347912944044977484236671598280048571476816012214790978550850289858008195737039825036472653391245881922809449036241750090752220039438690554446453956413148510776932908935903105423479949858961203002307609891380868893695919022769711982418081586773362434252897424319581853012749013347647908034006485181435652139432002320859902026777386357464026361176451618365378935914130208183059116214010557413870062630223651848025255957442886458818972545991510413810916503769797776895535511540707604866348108500962716335708826778296260648492578271364174203108045795487128547106744992895149950653358838962228520675940240748701728480988019495754858283766565434326826628654851718662737939458054710270193978055551820917459800030353752595734720771113235116920575501538372699799833129344687656617917232398557205946236700503349177012004557059620356815735404003185138218223978050442418398131104409088312516596887940356424857003559403271677110527015770469089363914396571035947308784214107255707720983680165870186169487945807651123929826051537047335871247346741122546050439874613192895573965728137825670277938006831135778109543296093888977448668976554755598555520057357667739201322708264428657771002845869827695585731979294577241588788523761417822979758511681918872831328041011694908410459515585062298055829258007644609142028276953874157057101224262216685082804182485050394121163875309724587690086681818204877339014980336847308770325110895815983071431406806902257589475013804556698784295051354935907992176204580549246320348624224134899393608755269504151315686168337972477865428553132846461257825267680062125224332926384075421250395185706207323696149738971508225936697986996233023405371514597283273315841386443007948886324757531346489796850131176859271469321622966635154977458996414307643576170997095682374671894938896005449317023058120876116343947154219466612082905816587246382627868326214767385154571245036665151267424185630582344740442258510969030288837666148578146093928417257713332434244806366131979395361677564892085478624293496282012709196759420943370565756244340797936428156887417040795511265909638866536945443325640676121135295082418467685648490750648153267101293839411936234620865983107998888710835935165530898565619063507906702255519322918447957875790248382327134836405098185009365326520946005089915748537787385384048365617386258031243104679414972472710771505462341182965540011721711305781900446636104271239608765670165821759449185025799831157975801900924384974442374413511103298995694340538819860644535928057739854963181859995457648602140080156715246760244629401092059179386014036510748224985921234801421950705911462964618515423410540557705907982760991161736226345199696394868827404774581568712585096960822579363252887647357543062266306963236797706372577300931473006644335473493793761702040249365603684639021694776934181139436803307362983380405969956184146089375353081798196855538376149588020666768298414096911088642618657857002357576600834110957680341630272083258834271985882341898803714582837562419828587487153309433139521525785631429070555652237789884690301148858291268901032108523106179186998583722652031651880853925333670548648266985386302834311986513100197392289835569590450575479351665191405013714078259905405515327853221857550631126055522209968386102637744091723458300763781201469850553293185618617831268835273528121810958354407611293336981349636113037882399645982419229460096603715029922057715777636340016607581475624202683620237321929660953919608906612720691254610081222409399658640362010636861581156600099411125341417252178960076244383899759246984068528246471144506738698039420633128337126010729921388702687011754003393948987055701605807700901727782120697765229114632808877781811398197994448228697666566024120502614118172107828192803029384111448606843256704265044603916111257813795116178861079476663841229047708507999270570120937439480183628086329716880511285313363309379578996126358354109077822533246502955954431148205315264826274011322499425051166150234725728865828675119055162704400531101550606832189362623741180517940903079922912272325465779650518585116206189549394566531664713416693784437850246324534507709118514355602047959159140896668118273565158664950055622907478410616029540248666465656756026974785290969910570174551016130981132043168942186931120758489593327422531202769316990523296265971679365170021915413024911260339305426982818747022245890431680637972141981939497275174823871411768159359949976857819034001035733767668876486328289311515216620510480313016115436071346370723065983216684138700602591728705211478071381472969231147827850130552381230459279185145470986880070348246032169814087994297524596733849370778258542900960342315090668247995452621380520298818652452980404988972288316949882398356613277209242142059536539685170713490315585956079060172363101944989527903454223753743345888741541374275664904683675535592857786390697578518111680821181876722422852433950595068505010529927624894701341359467143921674872153953937135407478111765981440634155338099533986904347285568939684478540100741363308331260569647933520165807249422696665850095957115737892369308421237549103335103791423649903613879196707840211210270084044561918701018716621260479338763609052425144850852679441043831626562498644331577816273271214821118242597476796756257230737346516862750420828994126870192080906955419328240165513991131795145278866545609326248929232128584412902063159550487877702165377420826652201426918547905347820254839969705751930937241704429987923701918194388193978653004556223944844818067853562337419308751963763811489967349773120083684395675748429727628470398459308801394279896369418944745290606369320092053233101527124377312517483746818763588749548055790802476775967931648952602780436907441672853549160038019019064508604944894025546302788212325711936086278351498927457454035600646751976768864501712668168692415101363072491511707850309020072646124910107033188137784457622393825260221700930091169651206433338895619611441352154409949948977144769724558411471953423769749910437872112364682178115309201640620488541663843025280913542578172343926236665003931090110370654214264206268374487669052930294190516209229104070480903271536975348022579331394748407050229202860555285912250129456633809726538569473595847389896269948978903946265390384228510522690827137402652166457046268378298055720253170715140669691015323192545345913980914221916157805032619981479042254573164146869260834120965092806267859225066251231063603558615273005290294223568299696306588680290854975698517883947349156088987540067683449089581161785740231464678547556950768407380293808254290282454750250749005995798301191767417179131450180037397949267239523109563134033747806562162143935584585889701276858510050246396942113333159924156971617191015579888023891303910160778044391465015870854645083534588655243211550722255133603293179458971517237436359213000180020609828284807439888002152903040429884006945924753278908627621481241745955576807689602590775132752857670367008687660838159196172109241685742921107311825181284786860071263405687449045480508673535745633708626419054614021242215515970846517548244442077379425842811437699531886560204643971956014435729386818095065383459054861240852639872653253905882303591653741933218901811827241823664601041442712783086212748185993567956090115815743009524164433552656700193016589944103485015177797490700966565493458315590765456876181381949263530862305481678612195549851103373326782607017831936190516581829543709093501602166276104693728087119874020543635680197089710438463761578259379775337019562400374176085343177085339933058760978624189950849703877875523258583061840478125081078571088679688843263572167664529002222969140339078026735229749803450724920718676824196096244411051437659651969345647936513534677453492195107656736055969024897206813491517641079538946368907850964495234334801962406065329686487787989284266444914907543329041118240321244460087344443983845411265934448136927229855501494569512837226164678782107314967690235669713685872788752468735638820518965690316492871970738537053724919980471953056518343051957448369599247336773798503678673091430509579029517809973419408176272419250180689585000522214800701892331826441508643005250817187951230825802298229171224054866781893747945722517598572773810656883000690746383384844900263675802044153560625795713538811276857503782028647475580473162150979490816710058448939889040512475237275361050912584813412277404535273861930047981079368184347365744018631321284118977885648110935204327171020859200559244961660691590782645483320234680185642168796845772498356833187090011731188390482527240220365838237358276607889464212552098623649710535374131562892890849739221377976335901586817445614844246224544422460255891688168510121994279845340261784229628600584073528593046516031001179850021516076903855368642307021949705331019633727029968280912573814647433718300516603815923809405988000189343617901795575869534498011641484873224931135456378263927452254578682162323240693361767409763963010733299035911127663304175040045357736693404251168991784914972689342025842346781894298696424604145832083565115789287663457232216422650970872303049745721918297289448660027233027633199920658337100366630735032800614126559188805233898819560951892003713531177309010171457736436034261634270959368089371311836615985423176103708079389834772658571947276566165535415812037742902514900153205007176279676339083343178927315723497121627797957130370451234487858617445360209694336203156537382799969065747926923125870431060264129710113423822803266642407650078401132468693526639700993267711762676239474664909625324443254472103048819547916575640669945935525806691499442313259921549399740387190840798951086465257930306699116621364128797089749011643268667100083394840794799338096091976740256018883389620384645804702861386889195502008924993309851602071269988734749821377122557846279846369690879892681810356769549694767223648608519647539875542339710157943988425068870224030168596146353431925603309089654276143684470101809298423059215447226766149255001768441798997586384423288480575914027488028110864741501122904775263399626845457930999356026384331771314772027669224476677561533049564310189981568598713413835198975342669784055638212406998103673276647835994957884215330822834325616465064085795535503918791829167435523938142633558155596859009812531306300289860660663047922020981445943713943368254135593055795021764794169260732000203918321662355279950366324561903187881963398994573313111657710331239415780995229675341592866002298756349811733465875109057574841131061984410673410027550469256049779757625998508064042640560379877214087854107213482618092061301264610746117092350449471416465616482385336365769680130150127822552581342565000543760692638918876782678152366188696199066175008575125893388407937821424083066582809787469811978406937771239242053030880603282386058945827861805101881893675319618868017761751124953943006470363794598564075853829731893128299286545915145452511235233089133992858836884733804371930841424596289990751344297320117803984402133427848501140041944073742696012131341352933323139515172617256718245943951713919586449345643173935676771858429568068835312906372887744502139761109501245232394625848827409148482339920087844580166534266937162451788703611977779357453335667707422477318097416380886316416862325581858885145874089440563181671269444480438798572238225107645114742327568146154538091500928170454821221361760200248697547334810419349984733025971051143369814711891977225837622504484278133143946612903907407219465846533566847535215132403633346834438392471834602809093825607791089173537088154075810015402953691500473971193138415600641576145508094097853044569253050016022119074184796629234334648874123654434803260498868611806428771656840844394139256290806918431828183510225702876955346794238108661726776112081799105129134453413769845024014368104109792142548009632757616222879500197657899284250938160013750486003683977782486695943267618215137761109172119024244037065511973275401032281109371947204715459031374344841627122885941999639668720839572539710130606942165027867363437343576682378869304880484577567096600403771781745488234065775848959479834444221182105155374287100142966479307354736225066409881421866654585137177106024503358351039146901964014384559142919590426040834655534448075605328583942482920644549602459441413384653764207646684533789776144876159584607858012328021906713792168977583791549993266693956894027259485070255802699136918726227154101940636397875926984081360519014088432944100803776639114296445778497147155101049524977899744026587625493309659207492532007115683858412272620844636597044236184444296082032625925455606921300243279311568513015389255879507684894653755484772765999022048659883127539262617638203786777640245045944331629589162892470019832581514231336674142856963084940415162743634587057978431315475147514887732697525108812252191741792552185175459138892928673999783242439101553577676447438761961979012859785322741948576526654753659036880083967456377290773758000085324654892419788770263641899593766133844623977063046183874815761838060563027363233351220406458874382500606025657297807685832366641117756822796581829417306473250489483700344182936154850607348811869900124457064583678590276260299832367052302965524604729177537385524630171186833371098404080724521437944249775892485937556414437100353573689390947297333762923294213956151091297869738606617387696979085017253819316370735522887300245703493182051836903480710506820030662355209582091900181934369222093944143520859948055803981121971116205352967806954039745997609452414508809357297756320751795401768915190075756687027899863870668922969497120606340824111690153233047199539618332288302729449676550848181224291240523022823075045062738181348099598468619692777879022918078218614415906411726107498805354221367265844778088562155463701243837762408338585061411633325563265754670223548710579400627539879666563215279298491656819961268394405788160352188944400720885703841314979403006702426872795421449227324613695002317450078032502470667047213594055709946430643395512523525164499198758391943161442203314212558532698078844430927517687940622743584395134982570243144893494801823059076901232541679461848821004658658958414163968549749832108022413790660658911885243363004975317848313437194989450314413800043680378241224908265039814438290969634402034226498737997465800601996125110421185182231632908243914990071632675565169087388783566858818830847172620356090866787135267733516059130540884939277518896799779111018677228877134961107019691373324493471103169921645043586687145044739328586162729100202185062259540648435149120553094055855386081872244094857292239335495016596885046990014856442557719099148457043808906789287209832439783594134213851164313863347380132302447713186555625234117794832285542574428033867575345091375203980295244825637387455220014234681612950750349968725734119584935616926402457086972766807066123176297748854504713824721785228074887164308541044405275938593502024941073905911268978900701349887689458152050754357916766517132202120920714370719176590861047369008593704013911231435007396729522659755542691405901474806420394858110389213585963275040088259654696225756171867563214250520059630163126613347675555630002889837431514525337271889874051527037204193656055265982402295443981794596910875880301384051372774284196668024633173042655226528352988529783940921628408734042879548787541933224547262125574901509173723122676289688772294528925254810777684216321776695622944304104491344033135996770077605435643914147405719743308432259565251313123846382341763050838881167211921065798214392988240732295232721192980166964749773830115150828518254359922428758258340192967201445110110882467052148183183009103150951882517389803069500598210897605715842061710040482941370677992167346579526288809423880298732926182082540940868842599091899398692510370686500922787571800337217093656777247190618882322079177284399265132953420782889772134120281318301914527335119523402831352383236652493783065018656355313880189913399272684832423617896938831243028603097378989831537620325633220482612319558111435310737451961000742970647877747114740531536604868438464138795383176114470273108702606382067796345309123658166977432232987587750970913338469758417802091434954847833962806239269022990566091010195812099257129417905936480307106136344250738499653484196226212799667609708261938202549440472638705630980085440604046465213999512765925722642762869324778594991516605464387025494712661062871427487104932883577708631569574577731252247308943020572568484443246167850536088273162358146949669289576892507456345077001418569956803018315735592465296584200830391558852161425759871077526687610789862591549703580983173814722566533358028218155873537033865780073347706157471595783110648309081293705029389417652008326687799838212268667220662925898306709717182392451831921741770083818090885663226104180278233390451383306555704512212597242809125324972310802509514800519370657685766776484487987610354106119386423254147566706537981968295474702312173540560770890705881181285543021579068771421267655042446631791537350584459350715306844001640750497775264692237032665095198908746017412218608390705612804195425654937474956891103412468984329906062142949189917040665405392259979912538051571247143886090456174363884500130909421544761035445147226546150531063704991112341890006234199484722037866262263381633472322652514093678074929646820609248409322084338673421950032367769601981811273421104770624714686699252582879388909113193493640322674640411309051076020847546602999756428863945934971944454545013891889550084526328990098634696493234635970568024409948258833787096717143226634368881637366938479892094354528933326693995507509416005832203589572276364911661522173391587796669266598702246371410919642359664293471107175110910165549013714023572943079937667102036439169558096472838894105248470883914581080903380779003059098095074708081282421390095241970817517413221262337337258562948054317738443818160755304364991676950787489989544919754743300861441096003264259617323649309057155226266537311663910918644636163264319634206300290176770994814558543585316696755985306606624479355102279536925790668547905583611463583299889552163209091482496175698046158833362750036716238948112212867583225869613290481662509571748617552221594086932622220272056150644211601077703827333884981779863437445767366937136875735377335605863527146942524522267500532996271069409075526141392470814988461194949409503940639820062950235487883593751886906510516952564048635042804597285841292562129650327351605010214043763796284903406545558533353814239835744748040278369121484224620079783541577282683710273253719158046449719301271265585994094733103056395000518703199572214898754771432104245914781232100440733154003444708684768782318359257825635461085026959032399125977814641517958314268339599866395774797592214356998422594971641967343353883036852688925093887886504637395647215325635983838462174881584059766095063423663630639269098329151064149833220324983562740330244105157843761231668548419649627005651418346807856683374341818865345177405636036045315694618962528690827642139188846806309012908249739402858335555534579542344696383534866605380671751590459028986056904636214479536807935983797055135963611032433994902481788433187485846213930001566074669536969061903315043480027001576412726332644132506123880932277100124124554137719856307458706826506202301575564781563756481236202725309674841599988893416794897664909242824583961169936572569223920760636710006778134287240201906773976561238976952721433593781084450987503572251049867691110515952514940962963673910128792726498800657118119198858484585470195129506325934191210012726347371513369834030029213875425010972420784970371792872529583636624471189608129901045722278163265652354200548023290428810918448531295826742583300135990002857722232777570507570135817552981441817434626825341657655814292868670692353281195908005349112164041783880867119795049701240799517229054843361499287885295154775301095683539721266504816135038050389813634420019353271478932526769622142850875695141501903782079200678323773836282301067384533661253029877706675492229423685512661492081938049149719552434849279059473691136733953614606696017383062070708726699917062499003007133358571410753385700335645690496302694653768863490110981518588565196675999075695307707069462300537320726287415422328415557760124732484128771545213805455616226817200127488393422631234959462885092752895370352716628252625051529062316409169940351197078274351650549690404583932132244426247272757831081295057303165751401750917126561872072846774357612505677678075109679674514975521692062648405777455627884436132781829751024481885110929480576956346662805564671686507050599013757698254321882081785034120117687041930231900344578630055735010364763711160121653015221949790450550196167951024841907884074736740267108320631741564856336789333040717899243728505936665428797841583102171230108193509361922495836156684030350064080801540032560959328382345968097590024035450274284504040902959295983091996272815687586797234699717018116673052088614583323373901871235995782806401919953284664667010057417844809456256211808250326409698133777398922717647823794634144496352386642285591539294314328222893645435592719975970643561060714982198587522159416044070094629175261422020934529304063376149113910595792324001204440462630288581274010866606237650300333849393922487978069329175854477777344732744498521188183139162931222614729048989640239876074113596954806980896727406191519931431964017821184273953811601224566387426513744312898848872877349900131070612826939418278208219662265067472464335555607384645640170950947716768725219822736503077914966833702415729756909442936228956928051074752636524848967144569323472571654176550319390496672461600707350093649427952041609369601504954994953868625169157504394030668162048273900782603090752418947945819142934912152523498463880788479760683839341997214761606411828268249999880764248287904598602025120518555241239375326950901087113577836419764639850775914738638239565365521086191384783213026844708292708295068791688302232934516210707653523665701283949022474811689536449197737860289299174000319785025348991319361845579465881616752576619468667095531504295970361945615784943350623792991160321044649185593254883769615990003727290785982901724218663941538485692530728506259025333057107588938591053062184414269736129114116741770660451288119025376517916712930007509883174686562603342802374074883568351652705729974299814919385553533069020441239741853436411107453011840252311791063097111269423113740542421040506325632976595618741628557311540101353586963712850996941772341545134205273163300349007607272829354129903713382552000876719481076772071483380585227994679707302156478757794442181722833989765904049650870866530747870577796215360529946510049101844367293390901554131381810720453446413522527014911616302554098602551430135455979784242463144591086031284648973124863544663935766264974982903225434676304667536334783928148964024060948181613605342347823606552603928013949731733986973038431957636875053210304358244547173438767603069205615564757958810474314654930087188037718627144836361250704530555636969622969886418019424559552978671926866970490670720579072901255806675565565507882331938931621430359419745113882241471832452205679472728574390171017835222956864197769890938753237827814215431405255255884283717160241225073181234552191633979037238321015163682207493826407377019164189607156272326262830804984441613776380970452646222190792596756722719710490884489266130857625174635763592828869134506308628683287035077168050840786675338936664309253665199705699756123958409835289014072577720762738559413796287908861611508825716376729967246341242022664096433083472994263850591197972598542268723021054833543163406467464639938341026206658855822228235997086781369402919995516267268339781820078383765754766715961786628353263625517849187361387587035423218162852354249665207725184148238098028900300672007270433813805434507307394177162865931786439377922417371749306585778137587133293985492240204839296985208945310053323436713167099924780142171906340320551196516009168861495161650128123750499211092890173094981851294797258334834610336286864767965816107146837370006901250553684980784280178456883396726468009377533480300480827040300466268368508233688536162498503700723915976475328535329689019807609752382080576741615114352419113003549928113549666098141417121994021295207009576437549469800855171196553826613310060683797876331178241211406613311981875092034462219013232173522359693540194854610691436941225300327532498369413855908770118458746500301598407689651798688316224988385582963503023749480418691159577549117105241942335937304263060836177598175572065316212945166043630057822003517372677297499122516030459624873477688472351122311909715589178007093429906610645624651540530614025822618101738062605233894607335338756471852851754666341865576074108787144857012092912829975498082110625217708119560628505085508915771824284915480205959144524137514039514948161017378123908496192399196999476689030096828996479110900604686680818142253010900020269990578930184989053038699792102580237357214788077802124106642191575172546720107589802855135949844534986146335615810894196181312605652728561088011277142442254171759447642868693723694931745866460538870182949410451706678422234327755497927456490450515984861438787813273611914427875788631323042694122201389804607352445578056259106562230145091198002518027899236282180304694911597666513407461390724941304869828387618667480560605645576213693909986629927699561350259933963256401766850212345380827682982461870079839877283516230052608912780438732221385712325388546249136869655013143160552805508109275763380765138690131305364060567962157403732183124715077736171846783704513369062850125444940971774566884671165896053559764605192741124036345604006952538917615263611227872041436342669908447960053447728876589121154885299208418457198805363576029163281388490456935808161745875572897241649267324247732000464893300978234348156809476454222075629552977742483035710144490562542947020513001605735152975209788175488100857501727407156987362706478598775756137097736846890321861392102474331293470777278671581569538573539796949804386173533494256877764371488885306944013307943272853763420025203278195347180634345869115283803062867693020569670907139742999509741938900394126573124228250473128073374748924272170081183108641076016396593614715722457246177678574326021820204601160196900834310580263526379343890885978248771833746900940424604704858765358674957068404781748994361799215258762819069765097192916339820203232295981429902366566238923069874885151303277294957576551128072458049029061759331058805120669567459307438199870041160575882435220087341569352255424101546075045530734040145428682393372766571105139457211080918145163724853579149935767504700893267385623844897469274191739412191601982048695334962114448935503371232325943782548948340957229395503709981597451242468442466232794052864626164451811930534760239730172991011875600963413358164116911161185915524047577754627921146077739854799879242664610517550895428012353948811004974885999551541172169473824981944106822299997145744217773042987436883910938208608753728417225092045110311385234785515764725733890422502778713668006012897704296980669354501846191804553984043847768868792778396621861289138472281352154204531810471335132901133783582265397918579762888411748198624803725357746867659606542010062747698982791957795140255657900718017744506956349778950095191238581882901968335864459641302908217443749731552799075251468760925708002951716772779595019769687232997236567048534487795019211674336066769279211737375711712107527934634219279581372011146808369300821983439846078844969672871241480122969303860821101218192561817975154425566459712417445702925917259529278624779011360250266908383468231288689416447859616839692437350744858608999550590543151800904664513644492339826512570236528059515264258305492575863776143183840360257564841039565978537941946335463026305220485869763864493353604700994257804499044593931467765513232187884412801716424752023066230955948475798983997548476231075394639677709540020094981144016574082406135831548725197211621375961605506938952972235218006551378070678187512842042804394711410542769984023819563601503912165441752736119585884112147510215814910508546186202683176623983991523880415797342860474475788480590112871365269073451243395783974799566393361364852947324628474750381545763187803167336985151796885391022735029551317339709411615169621598763756387639756601569682865889862913407778265724813581592117074059649037344705279162168179389493943628482423505197674319377567662046783452722084774368632163515401899731855044568151784066044722474133775154864557142380400109173229096925798053055526295753465272095156680836998824263787463750830209288258881847669595141662382040995907515999423179416332707092845032457751058421259124834440971246504208804937366800426391690050536755183809088270258653536524404800617923375894553871293000641449337201654013898633755412463127271672032535135015384240546184977594259744583788433889424662112277742668190746865194277247496565768888301253645931290988577572724997999870550996743784569052966205008325364893776354774395962365030560216050516413510346350307054696233721769845252549583040663827412740124665986615646162680230297009596315420056405340638591156191212786618182865211488174526610208761730086676778101084403449141533603576143621727678137079851435178841639103559078466534511907409422530822408687634412159727717658302536020218418468163397917800265102290932373854978382176225012976796399338732568094599630844375594539086106825571126136194941693031229383708839130640626400460392928242500151316395449973815468117526720472666398966155899766303871394748419449648432497407127907595049045065254517832539617424205665206969520813861120032296894770281258900361834130219017845897195232649963754022182640960959856359768582594036027138017825848560194670392964712924717006512510098511067987694816632219520125181426358741003031429004713745570846317321998155424654281643341724703502748762997325496191412665726162308604384595330250766906015855214648686851788211755552728188507851060073097943093202815904444399762742865098687885189181697728255947067945359622884185694502655422322893405841792649518767811603501737702491393220172777722004080577847500219827004595684567783871531908285580723755316119510259167808104151069003991042016652107514458933662267025398820624432929798733673446459927700143483602775589173317662862289960250859956438651004135666123567863285268477621105429515388648682951665632983873703758788967980670493415418620838086636118501304586768409282472392001130518034271703130462520127835139642276922490545967737611341717680419728948715063048675277620138031011100305170098817733356027451469391930783306416632674374917925600495471085393954973629965157007831228556872541129479360307783528576533067875227417720682712746045765000141293879918932119118379796111680604808660848642069728493294821319635376429856965966100436904215194176888939364373255931955820675978272325041898260301990507980186213657094515815367762395086731813171948292568425450993439101090359860325909243938539247650400808058614484958262814453665557953281123132536054592920035957260634078697874626933420941322260587453631709080504314283183731498933849026332168955741006596493008957741503590526803024099818169606655616458908729667090606708132323834543781026237409991332295112105532050336786872073433359492559128040102390731730895678566657649669675822682056203899743582262738841530418782579185787856141567015864075528606117268640928780473315837548952165128789996373051750220684386086127421038231233958995662136735320959428737303507650799649572980166596423588512456455988592031812442723369522493397627224230138744939446725756805859015584602999833494972891220525585867181561607139639537967928706129696485130852058609190867017578932150783704484192432019996142406636998189525637174102624973213629864984756844441507814427141582893024481097705883880031107206415510862324709390826669230185812559654505240555112576257478028598168609774418746032353281685291491290776748755551963772982466227886507101935845004870797112719717504172267445550981312057110911095044368499522061591765559940183179689148430047795763872112655280092875084282582119675027082062723217336798501641227003268031197544255669420305531438325317730810612073209584376307882035852594209957873370012336440097743725903621248725985423192906227833540133891543009177045535967539524170855776351252347372590693453737490423016482941066671229969097399949217569549597735607410349277390291250094286852696669602352011494181698217630293615533708550965072885117735887267839802042554163569922843273185955168265079665675671231999876632070426797517368431371146710020904589653640397205680822400205334877794761495183165807239470511807409845025910376060288708196543669668744152500935008580240863719586032610018151625558049602548543921922990667625927654976360686016635733448113357369295158292832968061773411692439396161490910466800969115000535475435045948717199725391323754613982297100843022728681851834673652804399988328325284089619043599751800909373088074371754016424693474523908426026425334055118171632738679449823234403947203249720008944782155855040329313592196875291738304068079337200930425591877785251962637035713877808477876865121501705810479157104403728745377851740856682521670536822586144427139358533652196592007280569175604758058833976942152396682960213157000239656348129334843491068774333396052983066534830153946737246169939605106662031128205751553256913517863427858536705606788662971407923010851170287023910360110192546242083557796213235154066609859983922169607313658828305147616034767406748604940288965729068408253377471788851662380599665202059624958359472021595002529214012855616827142829513389484640182903621854786869587498814711267434104340494309348096446358104883058869029052416718983277351878862964498195847824476062646417774013151987523855722270290967173885510835850881996676489568448491807143441817261130353568702777377133414567652980549032132899885901567334196425656771546096353007109060737494240590285420878863414235317117928587354178651518393955651761181439492610376914277350535787118071583508764065172145477640650813817996220597177738473667816811531678998338556607989932186035001729438839149231222296086818926792535146968264000959059363052611302948149069406976899747437308541230627373451349405862177748797190236931466125923227575784246797214051440832963166721133905517087796784995762599133483247593445037164331963054221642003126746840137873958911082026964694733101720587864784449249288316912377138834395221445067588137691860901864884832201060743703545893220099933863344819682629194923595057579165722282726886935961038777047925830528682464400864512729656839832457852046843359098081083900166905477092038149313568474869481954500511754589030675808761099826500189302433153191429484215050576188081738806311238590214786467012112295436965844671432578512307583313374428693180454784711268968368300047810290648634720315737390611052619488028737108526406348944780561425740545752631207756383662006809078429529903047435661712017710334380833053701933887978580576804917072834560441941810767161159639012762902973873004142064281531974229419591221163743733985877567541253730130454048988958643306690505295965899169688248977591410991424373257877939369801593167213326191725904518641045518820531575846023547066803497250550583682834611113036322001058347508051543448376595290564377125297359999575327787320007503045602540635797390753978252693674853582837458256286748571833419136984044732854671299939611927804170356830426083817045167527994088322541248462833332762332253778483705821983662963597961672109800302140553813896777399780783041729032542298911311672675625175297945400368081601776410909497299558085536614166135509952255218019267527333679532793741401152700020343376613030006661612351515618945582781530484127941136839819698246753641457843185358231074421513613914674957874858874196559150262375093681579770832009769869907473673907554344624308471028516636356565257288954066020188553379366696034108596343339824257535337475998568618218958426905634471892878066162968006058704348506923691697145205619606887273107375167687095607696045185081054683133548092201828847069960776530264895817770718778352250489453791227157857542640605569782518570402954395965191862281685976560271436557307645640626011747923744916362157368594975606101215032951575567321110945824668551620350782727663265888647457136388249887058942360567176654064534298629487710914110290793056285694279919404405331514129463349915086701828441005624310200343989749053398497947094925183840568971003400000694615585689630869421338180353189262640063493027314063263969158719675068425166152168863047993442760963543273509598128297290860639239197107054029330030603127718051308490072638699853384942398232827554842249581275493360813818678190706919512514846024465011727250004094717920509414296118441886661234602721749025886518149025781754776451013188115403407147395869288913606767515853267153442158462637613931825391895289913762973014356513732241075734745903559045518304251911185801185504755755877855077602436634037211981401048961839700608687015460836961224597766586166278845437361349052678321216720139041452887405823828859624082417653419330868669724820269006366589024443035151558317065712000563481758521648875490999716535728483499611775968811339461965154988606367362923583336793280031229233719904120647063865852596003675971705701656138398109290843834472967321278592299529047326145140085805962022341594659082222840237710698349424074094664319243599657694106898640691503535148285844510552835199343207752691088284922580760556916489053616221471833428873301894174042516042133926206551145260705754405009958995536698084694439283673672609196462250512125496819799418831391000268044367474621792525921539556933195840151706662700093605963923763249327080979476874591264019108884739051998652170814461453425859019830916921637805088105725177577828120386460460585211128627283162902862193988682890901710782774357542655787456087512748453406039709393640429577975009487661612136252475055808710752914492042698730179074313218859918136367463593792812918857794089003150047892241371927204084967912807809519400860146375878511345193363829419106527211184179076101817395140656319014216610097466177745010583290796747370389241324479076745316057652932686055722616180452676201927797609078101521740095179841943871047478100368160055676182927587449639544451330862072989796846358324982216848932592344288221074455717735987966247857811721831619251942136632722752151720885355500037286186698245189118755832177048291723577211213581801867183083526790068148010381941599453883140800477954764601566841341869842418032231550055573944916308492835325447548335583278594948610002863358348398639268978101837223030496648455061251014808058551812916532830988150670818310074426591979465028386650388994500458112809575441790597044987944633157101666456930865118957894279015910455696079904811581019547610120393781787622303189930247016456132925390979793228337467830054346687453269110729572323198400713893670506919767038451922290375587870390402367711273016117528937738836355162751139846877059162446485770600326006500285870755392237555150654989743483277039495503374342991414298608693125947151211770513858621292566069799256443762984749113265323382633755323258569556880546007054241878837132713828351419966305570954139844519723545164655645015746613728261362094605904172676748048676424986475827579511791939501550951215820193205389923945593676548965486677413288982138250750569948202994884796403119854869143647051287323531709134438102571477972371777616056247300356987027224092001108851780691479900957914839323089128404047388312739433415202626171919222829080582377524217139178151226252621773763747080329244621644639079521002926167802637936700943206447024303995788181813723057319312187437106507077668476291451414472139389914325999831808700028985794010230580757347532264931966874361475096079629056276218545787771916948904100460623469820920193590176996139270863515568371978067753633832765950113145997658453483315380465832358393725314889849504692183940227410455599957616974164021765465181007623604854110721841240494656089004330432752316665883711955547574261249895297416662840343957458166483168803136318692492942794918490709278521355980906077401040487221885004471632106487753374109004455216619867604907874705210621291679121237865149028901406603654949534755186860005836701356345417432986175129588312543282622516538061777360812504694535961326227383252100498758084845919755341930479878108354737916989864013988040388232344163165860822959699165642284849343505258391188748534375067722708008168266327682587671714949248140658689427927276182828817608409948550417633973120252993097990293625500260512731752645424639776541294212738431627014659575270124473331781484593000553196463678927563037400113206137594968718023583965830900832591356405896077102769292306110067075080063306899172208696114500147841080432385688204661533800813304507350970276538430034643513258684589903557969794237892280970870710637864290941138824319618248210000429227029648563438713730833040685058287623160951042681921368377268759516291365206593450575481263330435480988197208548454421515361205149393791025504221603573593343136357724040463491277401940155216917157951814802663312261389208587282278765691816479426250814179650874619769827235200668520234890404852408746603317060318323956080251695598072130193282300056672323101706853746379465680815485643255462919626702718899371005287529425963750395874047223983466836668464927305632981357425600323729610952330479700115925142514313483596909260210272553946118834673318281023461511018795950467148771845741196801112576343197501343827071520188485577111915992768705852487714606307420218066836492270526501586129974650789473800169997429031514223702724607597088300930474193363184297922207397854382270272511596756643468131327716040008568163647526752404064846033145067690948440793573051165974598393751586800272716193860976465846790503424536979281675850676445758266241536610612176308146123777734385549308228149708950113801941987341203348565708859321870234061638611672204593011995219249034021342831823490483326386596487300420689823868973248710362048928291436907003613671517182111855355697173141678602510082677915964475101314416158794679835382137481221589298885980355467844679974944760084440598517652492922374444252752723304672301060702712039119281513154690234146853046062722043509713408209523929632643835616114167608006341518057487179346177492823360364382691236676767124006174081592599535369133076551964129612510923713386982487246864443319181895680890156515411858353173442603359387434422524576134602684741821621313833808120792607509518091588432403929215325817254587937700660505924124784015102847046901919462491473344539090843909990544791504140830199763385456802652731082449099243244514331294954225138505167305534244693100917469575440192718566374450339686619654221438440236080447325685165659317280326406836573770809704287195514845809013008828471833406953557327473028640645733485751178085485367325199453284247812032818863476942487102004016995304611662030487530355460589153600491098059489396702618049836520982984364405774661470562263939047339126536335435191803353049820963008563467960985200779697824983546562090275920567372361187419181090960631239328248871627812027349334940465451051906494510053672049008845589516643411327026709334976788480630091693934506505883553408630227910249671080633998113137568129917952040931411084074322934330026365473674174868171310992717317274117801476228988196362042991642247519055709105247036854235933502640408615774943072700348009499077254654517078787494084646681497552924014712518399189892378869146177780455403685800531263327324370570724399132418116196508617690166113057003634991068257476132227008682413867962751957721379223480557109706939110461822525454356356124699500067605824189798850734212184036360246043197517347052048426504947837268617902395879358399511590426840334867676840448318666927423281838621322383509759893937491097893786239504097496709997999688375315146407431135695623206950249287511456011311051294129577066975386847693783606527931393352018795044892987046749174958132933918082373591811732889189992894859862857930847266398181146355478477023720993696214820850374816608855082343399647013754023780486211621891559215838650749975199920395003351434656913561361197347579589804942437599483102972791295485528973190262482011731022781116557682810342587994193495871394093593592240275852696777511585385412811771390845382915310476352167484253344105817803905943792998662037359761668746482243232864656298871332659131870446026968048410711350840515217469610556626777182973280983229178042828103530429683474738917809465247230885796232930417365155438266659043715804095128469219285750156087061159857132435411041929464467351798239280483728573953829260926544007922482052846706335511575868199086248797036083649514313824973681416244743697290467569517979563850042212791110560173541496041807069055588353120559357370309629880614507580827584380725536174296472754658851913848673885121196845475006692019457752031894038923902714252037528487933335425234383372054249060125368407926624805495174872897400348017289576169051361850835814065016777737246903754359154236309159083258756981521695023790138563420560557185803344507437771506712847281958908704799996096960722170020702574470605925458902621734603606969233976561032219301409781634776218996263399892713075481086213824192742343780272052810288400004410429490567454287690583980999833156655250439804948574386650641981906746772377327617899534206675870345011736796306088877985693483399902113682935718161257960242512820388999907576108132310196497309118160051158883659586145282208211086709962061900406860640028521878693133400891930345115943551105863325204001011540753810802306367334564739278723123984708924035015525977225020069527315225042420286923741555734113097103492951832758112941644785492273246716225871183390191723955020458983860569225349919127146994460225069395109057751212308241193416396313694951032870300031472264203068445180911768509224038640512882275137927814530738036019406670657069309805094024097510543695107598779086408184312823431260542512012073356053391722992446059720147858059358245693802139467735355520975589802039369134366422038929771905928210490455671802113607480803671204081211816022649243159545674267559109419723517579426537696619190664168443103539268182692281006211057151006664054100785606787312348632655165211050166489495574241397708151245813706859227025244279269322260664373756519569909847749342111331057576276016381623581605934176039470938669496251527772751269787875239832052953869533483117484130819630094386526254778608152812109747570412318777984554763368665597493686836181267977541081824274982751686700675296117131089499844658814612066156735847162125526096165165264457047479193180079666550960344914563417634477712848058707392428011025286045559789851004773920569188695732177065162529531319018998366217155452997727244283246457746691699060568187920644881090271919581542483283407339968235264510570105300417030265160180498054944927039456656642954177751506555870613014903818048358832922661456905307388070279611230952518483370972946935812689029303542451656529840719004599593784179908654892444912334561511646300165807823316580097341611433303584028409673461106747547918347280198073656139991046495808918794158587242438146809335300220451779640969325850673987979959206884099508155053064294888579031448057462867328641769172235830222758797481625839818816824671877585365046407431781562987963322930817563586803916834392635517073675555437229909568366402781945030286082750778177497222399934819653008257426581671199377823047394403704136879962427283129248033804040229182707339218844613825935804185641738753208222499420761641636557217620373771934451503024640353889636358994243753019852479635306441601259527956818532504795298068001149523717269369904602073574337951577292374029873032273033952471575753390688447425302647592741511286718942531772918926885092789312735365428647573883265987484757654522409437899322882669672819975129338609064148924720776833345296525248911371903280573150547876225373074335006088940371153126148292915130308473976152541754658119786872056229859444511562891561382500359162282469366551827564901758840059546459359936538799909649883821306468912309056607448248809531068201046129346919778554455910527362175051273973658102675877826224265724996591847864778449422486033004114036911405396030396248413938786234917068968770070076676124791365458855502900473634908852407154837998388439001493853291966565175592034353098809383237672805468740376959396235397971441207486936987072294440027029890004011215427190273721103962966990948966144845004235110009120372072451829178414252982606038247855074032566464374053185887930605817497389943962379786421635886600003267664236083891878738409623220557444567556672247775445467391787989741619448642756604955823627025249242890907069605420925218658592291799469716554599004971797734596020700881615507456459766785028711429238898081734867490549239941992649988609667992812180471964892619867680983900134303707550454389077365284394167465149336976431603980364835037058907606896806431930112425542801348543383420744815323555801688242395041705851359467622873879364670761724937922993173735117377901945708164363720796485842397570634555212274925495277548424225371130284668957662826481278053228962370725937695027141084959448989687466270577993244485570432498815000635375970748380214343998998640649580592773732087715147135885656731240021097895741656387093259792498847022497185129834546669650166640487434278089080173103687675919232859684989814843658562057944616011381772155677634391987136719611551672307946244687604396087401755096955983107902178693881480876680768862690431811186696158916896256646265324047766026385150153723500371463382837382153996530451748894986165277684197280891734546138598744168557719898899321099074837518495206125794626309268237082976963572282301566763326628972119336189363514669824364490665803368104301730588472142126179783756583111799466552782107592356590671358633976267469747829714664345611512071623095323579570726848042444782065657548925056487641412220907117523965869853820312248961799158468584220912264486719827615746522862374613306519743545737068795444007421666720865876585326567296914232033197951884346901887115259599567536312258505149701364950894957462324766215373546971232838566726847100403574502492608052637030990670946498670077949725746422457031356634826129870092096105475766536835624915909037388556301105520999985720792209396146993961367785383279184045583819042564284443073913281881868379752534774591642740432949089697073494355506892664662472065765768629096407655792887267097615290283167655110942011530719823472309237265316394426383997653989076659795274273372916827107985876998775586175247359673703373478585204720167479717261495616013974162398992191420490261239256581899882605057119731777907307718714039818419650586545082807927386775524713543929609164215856412465785596064711756064026115088830016991296334396244356472645601757359524937275318615459913201645579780990304230530066462267945687804457955706739332093792817459600401714538756115016492059839466394948032329460185792534141973187651322788911306143002355073625482266940413269697450757544193021790125308797017552080740922568548284889987332041081203936076872088215327985753630788117878349483472215250642213404856098802311129024406146458523759050271830795164800844724165703964263018814305536475722251202908361024725492438315794718413487900329535558002202850709849009051147649188571399426170987628519317404332899588366388447056206643654891791284004982563124639764778937128788864962551060118418754552758808660125370164998858742307432212755606002848721578366434426123559452165300510557676503472870138507250397824474560404763160926365531461047527025229506952957635790127857205084364201574832342653952745049166892166731436518681451739205825913178787518408848903932064881032804422705079111975249719071043525161838300311709491602525669832475787368258792804928567261731988102285991213973622610082254261801100380049611216555800761356555298996527182359290518858661216989837938526519815548447554362944471157219373571818649664869999301892277930529958725599890466902888352198535150372770400448906045231982897803527083209669017009894418826330100273112156901358732662066740820588225478037625999784965320817665694220192161438132845456407640978960547117979490126117068399124027563488488179129233733913665489137605072849862025210299795333758450644319942528671756408068050553073327519927240344332781540871841454173196823021868562416059091345288015033147227235283563865072518865241353012735740647519444882492198602713636821472185763200142523032374302791361498449959634518237908204140673457423025327781726374551690523550022514881064379636230896851689310470878853064149083804051163562693281657330892408278361943448635631331092288306353968400363449215388738600631031661056660047924327876530167809976046823870173896972062593765727360195370968858128700025150036533601032322578182002946238292537749220089380564719460609990414483518775236201289329540240942507052497099861581627132716705990048271402745913686967665506094643817378225778320576030697196372602486647962249068527538923118214128956666560414251641682409047513603239420118118237278018567905057623303160285765818832393576792717429518949359025011232533957287659032347886879936092562634392346963156968443747032495277309105589971845448840062625235091803815182458092566730232300433422418608553029744168931489784933408133842415815357293807549973791046876730515915502955933267520790365365055659272350733160822089438879038556564250552442577380697004490271048939324657802066507919356390450933008374682984314800220992589125668484917337144166060042518915744686138566470553854640216792938194537811159122355916612346584572410198839919792796368360165753247407531926095469068387094115225046627976715455171100037677687791865614516013294901690711417682577522790772347690559779731022976387264626743549433884885613764962798494323473805514264742068929173907633880300019358295936508857727143210171679844936676729914420097129071283568947368252184990502157946798112112194711205546917012295009823425566857430896990146417535184895154415367584492230037905259932972928882430477009610335618515139854061625207691496492461665231804847679951112002254860389731854694771629888467857953765114880141185190743045003977311626797803172840298036210225983525805411090654067480932470011463886992001534561417062249524445613419796879398820014692437547466468521645905580980826202863111837582466363021270148109276548652705557329721992299688815969033124452842504848810637866694154356882244848681967123011257351046053930639729232876745136295033838159151051149591861198002970976876980326901402127204421492720994739149283561801476337711573582422068443930589639919023834227457355774675071107409311861966945541385330076795513992670523511353097353547831516916434207497222500825326273466936007094883952655550413322538269136875064409388346972244578600742352830117923659438213198232390139093974890012451403102337393215206275206846339992490376976090555086982485468282291910021409386296140968834685003834851489144042962308272861626968610718793051901919740761887100439240976856698009589921219894868327459161841476766366189255866284671122420205484317139813055019827429646560547894215274451528792179202803741240702380144672028391840512844578918854419567088107941118481569523080285183436916976084561354002823572975008985223230714774833165774300515760932288468126563047154576716698952497629567760685899260218107728514057115080513933730066741174652491025840831631541613322066563066473190433116993306422927527892805954069519958978078585418490774734729876093517711983431439188524350986628086262565596637004948354484948598236482630538065674362239525451371875124146648247987763795008073949752389394709584219687135448879890451648964561778666920237224089910065753898943115459792311021871440933723917680324539887381903040471352527347331175908776254426208684964988322982493241080017035440378012826995969998009536346146476820990089583207621025490684704827058729789365230964360671341695416297414224578236846760162554171710796416238874904776331233345911292748887971638381709851500070046804783529829157678548495723323767498602285054382261629073750008467549238650782859204898603259795186224898136315021313474659516462933182097032080915964329159914402531212444264000118244992974261441638809726468574190496624579202472011755346250672805840419291563572869447403206745227071182278486858216472639651613217900625489935756558503283633862024768331763457461862923884129197466653729416174607959383821886768774038780450837489147978623649256503404506031133375077145344592286743615040020236863987341194163366851400662977348287576507383105297983842445534460889880675266012140647447023440457016539917197442872271566924641735816477228765296464852354897937168319067732611163859483253738183840341605705209025456497039788333693523977524856282383109323180467681932881763798717271176902676510322376606195494102485596603749573850200723035616844186586078848787197307873519551058079362526399564087233575209974040836630345404751347959854604931319889386985197451594449520567668282226484086685950316730414954473501198618466630915449290502811239393568154616057835746798650706621764008668040796481406049399427879455233062604193692421040911241369841992680307543261474091077174218072076357386852794774269987045744858253777480550923751121065249493567993343917382133320962162171256904908396622587608948354312292112560586541457038521096295634534045746362021224639324406842675449295284427209412110123155279074370535084628026675640549416006503602405737955173813778505982525050556935284421003671183449223825033682155163157281158084858672059743861248754238449826835802703869020331769015584952488343332707275755855886515389581194508284950111840512695672383692936017796285588611875470107500210370082837482321332339584361921230227189446830636877775266389445849844612608557103808544602218608950663609359436170365742124297667183187248339209202879288820148702716944453812772390715634237223306011895212221402608695635932589108406448572699577614852045976517019159558856113346883951427016912065164622922886646092981594145261409098953955747046908898159949056984422922717055126877430749380429537655356871109636956555818892803841157538778827604135793967524468388337113932765826568986888134611174984189048609206385765705792934566928549208887884502433863440356382988865219353182779227801696264143629072249871018975379332893193681112804496687111490260680085157769794218623099076455922953737225960433683342723074686159895960558069525802666419989401471117337954110770840808737526523809879264723859836080951136462458155323143433883310211474869273429546565059493117044880056666297346039658158981860156774532008222740035570840262830427267086947537884844161573944777445291924260234774905431162083225917406862695304802987805330168093476180472795767239071778759112583749393981337458860064136761973702414285851811018525769965540181478904519340403021692905332256137695385074850893312111969834740352917701131208334403167316990524530511830464884143688689693044402812033316840745987642670956926312025947406608191868895244334376619782575603436722085979146802259108923009163363073404302309954117116950082676861990061650258194141497021410462899215302929497195815277924683693962246654200046767205365772711705032705851733051553237207455308569407696266831737255474171192452623470190008976791768038132202167663219871459550252155504516720192015370649393846665035655360850818864424472630796505182850911580407754850552454334373286168685882167834848892370949809198058325078542532339212852203429936442457749448620658339305384549424522233762087598987698618780009260296476875622761267384633036598367275644835625022460137147863277838921227030775971023543604738238389978190724623466629946015851454234598233412611441464807770476002011786885736559786472462676438120967289654688070128535999471691266161238449174805683196368742674135939774001435439024633313747186106710989583153211729146391052905220484001580716224463010582759861372135639790273109845723221544907316399106517682865539508013162563304034742490185046718007197203681003408504890857027607003332335571363278705809254274040281056261588416865147928703047779280185010348545206458884701340366914681379935689977867293694833338667417989804879436048318061639637808037038525887374231829121830914698231348969386014718292068607988814802443939942051922008500352809355315429628104787643596870919567461711566607872482460874828481689149779413500055988027187353906139190377874180203213495773706500180357586243948789008139445593559915453484335710654715061198153171138147927592867958792652930353545936552728643569613151966490978530804606288032881518436904392011982253339532741978877197771033813256461907472046880585385953385521581069109399582235815050152617554868873262942829780036579622325588554314054386338415940350971680408748726125616973826740618061595228523005509162924290916839691787041288108605487483136110163809601467363548260375331170911133780479751607013737141490731678650906454564205566697725590403706788616298345328982382268025677573363391340544548917820557966194126333329390698790249972474253648871277162463469082453496274293254175335440472467903170886185160283554070883188934442183488313022279563291066185421280531269062461757605740010930056596010120624428370006661097547581323188837221694595453374784808974899121253132675689321394734616142257469171548656838256477530643368196015549486004759533777294964047300407033077679135599662336248611722915246953439704139082850179202456333640340652630406630397365983488377122951673405265765143775198373485005047534988359156345010604829712474223425854149720674584164713208857702118993395893271857959942241096921356418338139422863175736627978672279987731461881386910899712718137779397812756052145302113605483793595071234326867144437243109548055257873657071047856919283694528421520492482413442078568328667730886627304635188583946236214592241253535026471601947415232131620976077039571369600887624802552802476545432429886002539972696169761472028408477482829687548867005534606813330209144051133826665949792746232333702969946099946469158984107637954108107269488185313191391225243558385146746177625126718260426025366570806009513365228020531770665959041188813439242471165182009816986953591879680170318641838028911226398631395236934127951950991864915701148827578842364701372970950715642375988081762940378071254715241682081422349645952831704686289473238318579199072180004047738560561807835244475513615107826903420961013433766477149498284852126650368204319873387803327979087612475825228639990167697811966149358641230322847683067840105305472698441719766295025116035323903760501977417196781583568780596525764494222040006483831365068612047558106443677358466139394208808586634527579153793795513509262834066966599418032581477963203890742163258355168575766154256059705188101377285453757923038200871762681200268145363780569560460682201900378628468832015293566569808346271617306230751432220363498352802941567542743238550941299535535849806329642063392874396957404345767009381232770804358862443923850768446624390448063017538792811829636985794058614391227498546150774344107090163405758556940644670649611426245986517003566892359570723690295574606042641988141215549865307822404746876800079247145055527008691020696269439248286527516337550448468849945402785406791722830310571946510547047341023380656080924306617399255497296806871612166954984507635509906947922148713242553687233128856198991049366044947094258888563695026389994427272074163076993225553308702791085748162636925423111473727345926813829306481478896533101690591568618822164713847078690083807057177836095715032052641277303267687186856094082336538812566462971610629681826466954255192460440464548502854741461286851920815950467763419155160205775749402521342100528680139689522780840381545947874700355268574259762123920494853332611429918544668495670636153638651838307251557645512506888396884434795945355199367801245214127258916046972836888700563584968841762612427579953457155420237168851879246808644312866590491851439389150400930698883982149077191057244155659020482872089390063782619194761857294426162575795844241285700973140252337071800093164136768649769526298126961337619187453472177227515407271699490780264275273671348936181670458646927583737123738732067580603811488337195564097425145941002515147256905387341444675518207133739908339875361192935588984054363984405948693942485985304509549327652767238243453321775832114121722482325912313270318007247827665218325433909815526920876500743170431260155536974844551612494093551742349958381208682486299710449521776368078914713278149023255576165130733455108298746139797512865608352010651877527433513072736492889534569982100905801963250441464558587846092943084988550229788124101407573287598574330554843474970690069518070642716826421440790929033166658781411133241611889457596445303333446643177923155393585744015036211688075543264135718663722695158589119549342635987331195304648513605323524169334794713507821770976355508900675656009067444878371130321536776407624646155175378977071032000704498686197292526102266283058715522065757051063910782690304698250659317190103552631142173438208887908919355188980373730379930093702843344816762596377065871650058515047698792547717426434822083176467111993665780300004440817672949874555102215858498994371462083967245295678812251517413100858202817172813183348162065157206789611453535517618675767708140675767756129649273112383908050893076051240373169691596515751253144600123525604988947095772524121466526689595491233529954808654558358949471344031305589905477574463681210569346122988335134332846192552701579890129796184038351192119083005397740856892212298946461464425846170302260176111557207798440077913769863827771866032009463297431641847369132110514983765939026439587102504040357693220811299808637361660458313186007211465509040660653991831295768331752931680534304162360229249662561418811853293048397533673489778712276128208018711572926985531563443340906754891990972619493560228002068834351975063377236203641248200777191240964979027567195812123576009887308266670196161974147771471809532981492224873959517992740608495352283467718572925282135823947967284000841055054311489720053826852832756429161311285560753628307211863766362559890533996410399912569038972533093102943367418187379240540491870382028325235674782071842480580783402749321392525345204874564093621693804015353206630027269428125902155855493158932226295735794978117223181996000661295270261903295228643285432893920520578810911756711127303175217255550843288861488324818216649058409875200173588789274840659318509305295701506861797095071564519154964241105001819024808579897439381089799764160152291362343189722289512501940741038828196361624502759069839436716112949190780330919648843686702054570905984908070287450588771186904953954593887472195184686617265527332638892509399800824599729916885205875710399586507263647843081074799120241633951592253235686920066290119995392228908641543057339710164231934144810712258783288084135409515164536675886908628415939992940678388981335828647269510367330807002443256673708679420704085658367497805379420184373491180383202010977767355004902396669910426157851433697542256148444475248137009367601146772462486519931264297645493986714029873251473538571129348035222241810437112994565481518157756259281322491877263325260242027876141716244543511770472923016399068552221172747044593530504990784074669433065853310553943454117917683780724365574352242029610813420286210576114819038058478608504781287167225033217893342889095535114006890433931368451175775943460010541650396850344250170645446534059205864535279157566735448991494022064390930677172103105046821895840415191660088945553029324493152973783764996582332099003334928868770808986963414604751011321193900298622626826333838616330783832525550291948534238901218141651019556202797600140325992694822623608910778799484102104617638611052451816165142786510930718918347496321619561116419951986450007698898245750266397716484977078018415609773734905499496716410229384025041782467383046873457734960373601754773579935239912831589606898003290066186775301740938068540357242950162169235710221332812938650613181518782952188908668640399001939691426154879033741611167727191176814248619021184826287652985456836135039823582989532542519333805119381835522374789006629947700916754043675872121970118537282855021276472879437819874677040541425081609059190119787303341508133433934441116017057754687378791294919374387745390766152869842859521712591417249622883228261767145150685872308062338669299192376537253482929358969354837400577108599646318521517540760265133285688967361633667750641660096812981145383016042333301353079904924336141033201768413753260563131978605166014302840500424379230393375340825525180322148026111161724758679216425442343474546703265996343803792112475883688166196942146702411869781356425732315396916233283159520024215138439262341212016794786984809713985789831531568838490051870070624610007133282202003414839648481332842152241756291820695710509350414767630027912464134484223973567826802469819689612098643582110434273194603273992211543694453809789284776537492980221485880439736508707372792046527661261728613705276753542192142491502696389970798767203242575405779118227649952148638799997218515381897370270062304461799473053578766065978131185179639383513750772362955329500296056197047249833099504768211373116595557087797516666676152105579368082325308240316186746430861299492277507069450885407606863218492608422991738812239522264640679726158303889310802023277152470866646419187595659234945535733551311466647878945551235749592446274846742285351127715559686653739184412319351530115199158108146695042805470381741680827815154687598903111047671850211206422879084869094498886902603658671036346652044482429639003760636011928655345816774807406730169461797166329194019878450452030009806257501064382787078446474823766080306156779510781271601893212511205438316323138013414015046584877442418321252483484716895387879191533958472728856330698725285502461868865741265946281439758160695319594092815090752543929432341973359877761891239370735411071782563559529758730731162289664603719838535428154820367303978763061716560990201259209607408132265338118364210426125132973114020043708897172169390714825209518785539677013764615152882099835754250200356739547649152816612947111291996694172480450393700631715178470948701779779599922134211961976162172456556586127213917037268917187015604710096712503110507202052126549564437921801641708661453723943711773927220383215286383996659848696596705397616160638271345106808773691098535259164088458584863006327493134484340567588003125851103838025829101476864197417274724988607674098852097787802370761152633533794750171107581740911699481761362902689031607186806274719662021796754618828791098447214510253602621001439983914546606774576621665971351986147581999927597518212271930581604419945312863016169757691871067748834969355417144219926621280685869077964582035582658277058664702431246213578334010593553998698821517643908970594292044633947432116346918272645727203826554780932475517782213405240893823959366029524026921397090488355085498817030910717379800914004157163889961444206046228135616094913788957895544457645927049001173467544734928135946574208649669099780211121400290538284884724973359828555241969325511391771619256777406625388009499425556501782828487812111415845073057495731192069748717896537566661377754531060699710636896543035466365209894008332532339407702784044362551839449128312888568163710083462460138627368376721344073314866234339597213061126239649439403551292159680540903701317379956977813237874375578680598567103464974340081760968173155067302829268921024218370355555872333970723376125873349666617962496485832808234616418921622048161014274316216428724934308364447005328155343962989602309300287561707584310718130830624425841810309600197466665266214470728477976652520555559382945414584663965750055364505917770220717795052185209305020451350250023397264921000173962298765108991684268305756537454169619797659211403716213489414841146044570906829311562706775889312404110264778867240610146060519931217779874119720216979323891812967466529138649041114602230857243862832524448409206209948230152203292097850158867823970385916806516112398989096176795543151999880848821783214859519735477990247101236084108540166932215961195661387319890938807334709691392328667312382265973134932390781105050992242452446902460871644341654916863190577373573241776813397080094023312257530612255008550254038194506068671749603804906242201488160867430051720530511597925773427819987100391794753660492123270315679473054325510496947170294084631995348946840592356169413051683456008112845724424159914762107705893806629094784584610803542357026264116662987922869745693328898099673540505481449323445451982905415541875862560520202639123133672893607625798581197685964239282112437976850840188437866713100026861149474993649260940802446831596115552087917621320689183425986444943571966238153663078088493581692063618246277441784102709411515631773253487198431257006120033285132142414374826660186473871379921132369851261894147866406103549526672090038830122076548165463337369066627536265896959139387967421400420238292868552209192942908420491667183274597263830080657089187753848178971896792990436449541178249028315946353534215749892038849592559750073268131064280105682629859623317247105233451043369025469575937716114786937629090030700522721712548912304993298355866972947188699811667171474579064132049791030762011902850431823375343811657238154886210021156624940059817720371498289070114721900239550366200119964417607754594806424379503819111990031367451352330099226524865554856852322260091295111420324066097656473981232212289366356840793995244471012949333759354645248102947649702547958183309143361100558870308479146429787899651945893652279679221576910105928533212933925418790229961360368613349707154986766896907346126923880278013674981746889924932982184473078535058666167483883319081785254511622439756933283672333190989026568169203039601001846068157928154087455854817089907498501142684926858637295329589622819571010898752116191826065878508277551621982967212553313833126920595550728424202691658282839251136468500837380130024420271128571381130810267743597968616422500630875641228705684826799109257362924099654394030867299852984156316144133203496665841065283108528997493857180865263423738745815604760318851777414010720855583526171096250712068118044335150060661159106082743718035726040636028242964301830184174710785540132730315535743596161543581689351911981170288875898314365201148467916533732385057078049949512850117955216290101618368838808482623484391759409180302439158392456033221128789025278380644103332775224897261549899061903660332752370177828736468668473445146880446286163326185291380333533957633360262905103985204674038385539937779615601499446226620450770300880670840220949124277233469305907226373884898509069859984179235725350233646606372177167265658182553486345864395458757258177612518184686787968616469069076148698769239705445321676065154644911987813336649438027298131822034059266811216453089534811031879542467367753314779004161646663033737482062220408851917682970655339434006063368747756756780428249061700011255276985359025008986537307197506018799993767813669360109142474228393080228613442777100568263961595354623344471210597284798349082535609744252645380195332961901977645032696306300616383575492993683919180457838532502455580880104339381213094370832337766739224922111360455529847918953445970547011880059066148030123784581500644861901263912443065198678962022670677197846697963637357165428491650363084472611184180359805050014777515403761375058090972707475245138801737132514939388984491371446780084511008288576322413929329101906889571655509793977622315430417002272661126696884087192376277212876735498257447808349986108213209670220682567917745435261556946875396386615952128002098499543278594311590468183773372300364291651332483377590821375887318166099345900581268911900264376551189979219199948796345598051151564735195204720995087614456774019528083172786291632464475987167154813169620552598164115978843740965851543993919453990108123001577043045164787189516645711442560423480710749552495918838163145743751475802413300208524014652403610720646576666492571667966707423623287795075159749938436114825820573322858823063452948305218199168209147014993716651005746217125133361416237257727972785614185275607785515905841117431641182842635008837576121264838602786753673050195841941050677001297558602357938891405293944825139079333249976010515676365078897990612996523038289808990230190547113923712487568463960585854409587402683089869636248654008031881023047932244462925699088454119880190553951631850401916999796396251218121104384051709283981333860928719010998509419542960644779033992357255602676970806331460351968084215077558951246583048148889003122705221515496048476417510274242708802716204670333933963560765931778462570754376815037977403979579793702361461884689419043387482386480073722823716374436978127689821625677789741616500376622072608669508600512150150944349877487467743743624870133530925524304138078388219077022675753777550148974211704799169890159553156949974022998125525905684820131762826011214370536781467697269500647942483012423291320550205900336632798819651218843168139235632679685652203805418549984872785634550847409131641373545170213351433102628657668953250896903290537749831022944640358526340769951455086079033941793968818617722091396002349549320011142880788916827972273576584425296446414311748726791302717971669063305729380912201305035001569805828711994455178558103194436419757111400969590460699135522393083587261599893902529095577339812513202946275505545818471708232820582108673091327071422080440964800318507822399111804460912493910273301953733766870252372356743132710087895320444837438875534823565878644123566846002436466250828699209436692258638967381786349129446978053334750197569414064601821638875691442602161289215322626645108384162498991957125420199132243419074023448119759444704076088721699561080836523052058963404561288554180808306282354116570426398867559452667058532516460817969823115735935250881739774257885365301903978515166142721502306426538250335998058646064678104543213019027016872271229101377337293132766321447861277617339563269176002318687596850388360471009116001628260630137569268359998958407626708426885547405303558694946484035514384185794697000842915864660062859288622913377919521610988968137757862713193652352443362969992274743633529317619327220172356090141342126693925984280073309897174604867228805569581604317120869403233088136633596351071401199129561414376619435830307218580641448077520608468279691563506809123828426554970675587194444451315734135183196664812374532846144669352198446323383878517724717828160483735066336283265904592960998108032255599666714433399211571140154843139799312115063590632900636610341269217760164859830676490454092225230539834489202844007250789330082067121811553309443699424310345121906059161595334930238780667902624872285272862287109436317770435302353106912568930047022690086093034575368519580578727216654673942072278544948594713169890454491096573536345947131514004969473928083932297539959994588193551110942117061625753229204784549788697631462315908709100121437970742520481466193417480238207370501738137846132014570287715771485706270376599149172662746300327772494563578626714250215095123859780405194017001911199915953759827527867951901091399030123030327890212564106907359271896751263044356655427393002677045627726645652372512980153689333707440546210023170904225587575790868745349127847329449465010572979007535830185033372883243975197191547151192975379668169822119179828415293346386152525733081845942918230748878666133967192064275505257244364360084236304716164968308126322334203871509302141953903395904350228969544186959624140074860690329998234497319067977621533506980064467546299295182837229840971523766726265993009402792300209646445930291550723606538940477546388171442973777004195237994538051796407672105667719898987737435069616474339551646390200397393711038006426001788110296348416673751041144489162563848281355545548331548787301860929800426256996152014205548247111240589908101698255985976131128426948937545929866212832330041548784809343983949500393946842231502943273371556426864224125779963359356959575918029997018002981193691956921558730459861342820715467600554838267749802810567312012301353121865166261069710686742277861674302849983546045264897443288269709308723965384733965177509645729515749012956504672676710257832160817244142646507481349689836026387582125782556514615615682509443695248537949184999899288713691341911579971180172379109387046887117408456374530834817295771915629026791583809490726633050168020356497762763921365163919203078158439096356020573235901864085578576658080525329600924677895819913748787549787090943561219390384799461243867417063651443521455251728478760642729825106190249315522378715250367085525646882461821253426006510055155299641571673810023188460774599053461413545583491616644658737099146872794845167817302266632699492015167904045924869165473768971413844659951910929563414154809023377784663316306667218076523535269024807134927052596794429003424432912589705975480781153852927052462344943496355432860734777994980683947694619102265375356868305451893763016080956387741703184557236966971996862046871036759705983532525143429123118680187260790870039875280790935506231266996300572530245185959553103129472029126516719523917616414014752442019576039165556422834262712275372481363290797304251863812577739265177694277560366157582293653728786692851493418100901850097211780292484141794833413034112667601206858452665885498388187860030581134314086087877025663696179117947928924768314070727335704404174399143617651115995119552891867632519861635975375339628945053971402070618051461387820898277691486491634116705894960567394258693077798889628453980450262392401157205709268716226567261369807492424328403691987250210660734476102386850831749387893288862771834565895159100113848535270511228683085710922042136373482733999725488851162991197603105905625421542898053313336729022830656614057068172003713896713852083714084300748521166413315624076003535183876211918333546156800278899445929983244171712739018894820180137531251906624606469102076177080093377512775004094228609037940399501957751109146394000820160674305193888062984963178997576913485406826058276614578420145426995973717000933894946846345034365271459458849965609489289839258427525171897567576635196715647638448766320356329147943483411172369648313971314066693358884111116779745663211741345383777882767952900550989635750303218036582545784227689105112925028107927199971338065389744151308724993683188098476283057918079452423689825801037941249926860253212351704191777839541466879460051445989881876379830608783248100149686762304140441900500154946172923267490744082484782223840779734135390275355904035838259686320724659557563869775558080249730402815423399548907028034467309856918787353768471078564593744312688958257194873796883658427107300214524143090551127101442685606606031480005867236938840972107127877702824563532183517376080646179482334542028923968522811866532970765324770868520788162775689217771866887022386217071242823010901687296437290877073369266063896852856379370870098351833622254956622892814055673030834335949358187458293181659789311160533837934284812034453982959639266705081352181526462424901481718422491984642115628446988635056782091381962967223032034124241604849705113206053958587388645451261408969360597842117031529861428853527844203186601527298474229941348978859747328782179314841914498284310582099205291144605409868964972758468615555903469591803152557179037430440546408826959334095657112643946481231847685350864919690366968096076869377056444954342801791022963516550104724243566773903285847949524549163614156327551329043935726524517441161140194195348156785181615139358657368057778921904670040318438296709276993418725096413376785361246472786754281134039876140701238949656884879825321665442046785036858041754765738874818902625593867421791566533997294561527623860054857950172531123539271769803763804034023492129014177151615739617377521693045004230273631439889087478009727640297031795653179714038981826572043427596303102706043519432575750788787478310215715274968341691169844232384252582263500672699808454545881353864515260602434391623300667753577165248707906183798324260461107151553071084950282811039406825003679814092975759518015794776801487148231080690577227898097647967890210282296654108452534347114420250111637878567060978288574053287916590302101899822119115495764180871671414132155101536637690634756636107802379489769035398933868263374899781814936843851740261315865295257474566288069938628455251693037020675073849142267238746489149107398081146275185019206464523398479186410480272854545247246303716058592399531791443997968986385012500394975108860276100039394253485148682809486345586997980455322529387083527518782887103991367489521935379489047498989045707941147547966602079400780447994136065162565265299084319794226608013493285213298423333881302914064539118797208179174846798470465611023995670395279151814552665460149190521041995675862677556978910548833255878198068140006919828512863895077473892371134666389674185241039362740239648275777695581212311431433439370744989558997483323799271177224897930132343151446308856381018428064334793006836102738560045541173740119705470432347899437822008380966834599898846739785663320734145266526673227102264449404820623326218428515138572087618039567623716663645994774012618786841175922949426040462646981600511608403172048088983708661397600748931096584586364452140652690315659289188602427189763082743029869168337387434929813732450558734339138211697623409269066953736309814882262479068927786278067184395735494240947656792471884332419693844232422029953167003912318995613780649584793040787219945475785299502624212702025735972889404363210297436564845227199300693170069697426871475523830224094543113072334000027577018508738647298259131782208460477293132679552119998920152741903412567462482292669004755503384058290287589023041457892556387599169866934884261098612569533161021027757556624724380812290366328756267753155032162723690544771327663703249955452208907505080366010893500415300376156939095851203114588918458493026216735659177173962809046550326803240447343206503086700557242995760478635466502700220735529632351223299980219349187178897534543780670717437046587916115526566028444954217977181577822569329267185254785664727169032137103803174074591051040028436586552616418365658326940855039834680893233365477191730351369431307461710989096874979448940711556800822136514716138092636329784980283095395224167696672996396682812052116887147788005950622525420340200378985910171260870090501839689673573988795370010670049954938459687449449463230612381812397071190278414624347217211683887391065939377495196081273329513030702945580488335514415800886942291928507320024136470204714869022809138450338123910989431108679512118076100478620191928314849300904459278152705312373113041912005406290832240692666890128193571757734161699342465137566491257139303954252955931598421182750147916215624514702995592438352628983424541277720706311506615444780125552426781465432802977232028262992360527334389402016827077969771618671027775957595285536553496746278729935820384509199551263774944889268409057547882211622718917491502586416330775907301950692606607641528570332315346532907834016910458582689318517415857699054125948674892512298974347336541249128354537048195569914544064804111951081244330300425277356733699272833382070663806430203457708272349167295084684556563222250603930617524060761193278012080486720540781743740885510447805264309793375762395196904917336353972814653964844089472541395106948597702585939869149982356874492255620498141920754995298299564903775023149329262251451824318897621256567109306402990047656791000817064687731296829423882259407734594788019068297782644819895525815080512294561887610824303501100817657840885359565506712961560321425358812548502424583860258125887874309768401760451327553028316849576767148832785730969855744810978863335831028852906766986716866315914158613537011922388362034722634958929092014589135536322641175719282385074691778817050230974340224208007094091206914459655456339770553642223697491206453847923828887922028668852858573555269850950178412271057714191520365837515631002359744154650761513881071285189712479105268751246498496506945006750886299815946517868694899344879124293343774721249392283830633563352681512504594474951250301463080302803269260739501359189757633340825700123376854625066594116897960778696282760524013176289162465980249562847745403138378840689913716763223634770159742191517464257407972411875265823798167615471484529714187449963777939912232159157222740189775900377864574481058615506703210180356648558316540171033454871889526153016892786084957469808780661499082417101893074568724302145182343868657134021762375641091965551448282398287730405372056003075737862182286640020999441199776971983644728606774558578861199510490863624702565337279707062438505263290372935840932303473073130512638112856269103154246323974157463445682314959622836679327293576771883560612720740092031400561812764689785839512675751991927686735933075376178511596596118168764894435391534694002206160598152698398117728323384912724293797410228538040018181032086402251522540918640800023199473357127388541129609301697970208895978857687964001422146651098762309918738831023540490279464416667309631877859488757589414984587322239115950119355832222109194324417698799803936167100559426757655677403708750766982357411779571755688848022095203033656060548650206666703810871151545844903358143436583651727906886439350694228961227707964569547138171508077741110022063758399704226819783092144699178948199781447349085832860396985691088033763591925160948109780010828016356421014452718267386344129011257249171244952815006319982397285301838316331813096579659086605816766800447113028336182094930445751801229787455211054463319385046783335231313824544719955173541773165369095490725815572865235442210286402567896630349357827060927325294221608401312463315790256339656278329512046581376557517115157102536903181836098033174257723515286540940420962064625102641194656190211023421597882858843997272202521840951804819639405379712115267535644024839237526582239481500072775104714555818675577128263333230142196881869368032524732634559108194451206891996459871008552158622747430449463315143691926151002804942707417279748966132735403795394003109626163039677112015701599949835948815294801407529777229846748277087983373510627882302844886555866890973541822378487044270261876602864692536202103276147135462277949071722885602023239308044865595674155343925586999671747465974252300774823516795186810776152120442568249961091755795802356862263663927629055631477083398940329071025598457971734720539291971902929577336494720517643705669409721949067160557891775719691626753418478249871167704423475303378129628773204178809234775806043261475148705022296157635352261507164440158924275903292598174485026326822037838393007726229510216968053106158186658527007973704875818886914554223518080505924944625182417523070808786441630452364318116800404241299757765657083610038844847308029591614092999005623768145000414644539089817602691598566535317113712537215318604593125578693651169904471581065542591381508239696223924161750593067764928681035912890545353740363294154824644380117724448648826872137626386943445978918411769209825559373240658743603790482190699662016282577074196910553342255407492437707345572851237790579405371228342201584787981820746693961363342879091775341422545841718159103964640649686229863037969550794897192151556699890899697238967070317661180888859416427504351149599802721702935530102226731582615408046571820723197802576358471103939709670586899804690523967367704313881592831975929240140722314663121748224386090352485260147089443179836862394656595344798902115853856561608471424756808160014612117864019526494839841466787530514174396267485557151570193565615702820968697489452374511426538876662413064429323481109410376481008038913476301820570247395598312354877781549805583223087317114631570071604251847331183858547073192051642278637305004093354526797542567157133755659178230122278131249857119152484530188980662967600763025038984426900048382130040426430131595188021569672766596727539347196721629214267870489480171496728588957441370425077505364956099395157921388153595140722679491377033712561118428412231661478401715249031859017456474262764904180256468844503002266469679420781622680073795053603467960875831138109785015517434515923829935592176428412941525155818218207300003120299370245132897902491766133884179274336663824673744200577521896434375278264286130803524339755340816261623695274945084111392787941607092090541574468057604666037380435338747658751395974742088991463850752750908994247715254510717692248339405475691515697437687454196400028246363294087864633936151796863551289960509650444812347469456861769726857582604605595898343576416889129439609149685094450689721769347987641292965362593416062125632015405533175005283530337936520226781117689215692696727708205518409037852059865190380760198465784466014892597318950281184630452962739238217556722415404327682009580241634340971246202353195590333692879730630128679028765218676124617593696430779035977953683001468752289972653038881182153765934463241721312712194205346336899995001618714678305424944494267462358310004872023054203971226404704391814878245453275174144544980732029383709206635675194083866123943697121832996438677933192326536192283713016876319122879427300498547485793317151267141092717116353879111550125110848730943300653932728148213632544318139533609131014287077411549611252207219671168741800616307817511794375307347897932209977809389539436109458464473225123123009701773094010536088593942374114126568137632140799327859923691863977773596858791048886111912910548941901427382753717505950423984529230888185542418587028129537752411713987354208966135553174300089963408090117258245091990650631829688306312895690459883685710254344610986198009483434343759265116075378870404862068215926685934841473528892668295935782477386260521645143322605354126696869794155440177458638286680953789747798987118842004718614772704323443925549727748002793272029353668511418341852610302135875274927055657033155963214253694332346097095456401310552383018204980434999893303291546042855645369385458084914222634743981446891913344624372863652223238883459717537360897665955303992336683184406424090007376861017205237440881857564782950730652747260752415074288681580162877759346351631759029892291745945751956506039237324067450764489509531399281569692657686052702964964051947789537596621488354887463476978352493632951650672745905691635103825001358949838776531168587701907759103320625229648798733412450237959882205303990799425511572695317049461169674801253296506323498754996345760335162672653888042749255370255009135685759139783564333797723391971728240911569831326756946774808123882847610887440904296946115621914413948830708450140815267354210864659678972091151469473168096407116966019017987816512983570815806354062704700628797427014553751744428534835611634761816735820839593974478228705647201050244591473798362375987165056947304808657578910083602652741189155533140635833457663424362812956212445404508989860441023737376104414360272135344925709064377018862899355869529179506446586051226335691591139250090448012268323981568045773047613980665730261265386930407263854411027614213149075740074352544494538696059721476170167861738046510131783174454504195302400395959279650815779392809109390748223201373381884114538095153846006362325269780891845139736436529775172827173216580558768750837608468931280891492025899639237307521722734658333349614766702214691633209673760368924320599489176565147803275686864417291862681881544541972656457674096703896827076472741874244788706158689259283463458953877708026498945234876292529539988914205441277384576919185206391341448260216904241261381592133115565299919130986773024231863379062671228195090141193222929396439442224917993620343400582462559852177918050326756224979750375817866524501853980880268623997432813484176085291056911955031020935500150638800808432468414265534040703286275384047499316859786190670410316859969189822399747870372508740123419820583327646564554028801083443821514842115354719585026633363527161948029103277594866556665297391519220385491879820092717233141597573581831471015831100544987911804785250378508375541462632557289234379270038856692825253266443930046141704265829731287838418662080137343175425813484343682797758915107106158324032739193142729138752976608318347954565583605284929990528054163857303383443374958745250206831442690953709629420262791053197757525613347809019412579563816808266938453834736760166562610299917275349601259042768793868837298611718142878880177631711183778576862875597624565486433267064667514497892684129592380712003138944901186382370259459102316828672295571327809655759916889222607376513040839198941797640110415818440601461529084171439948475004753653163930177906050442101171956580328463945489383528087254870722786707350778769103142336425656944567277006070003768957709000837465367974195387170856666488035818948163708477640317914528827994413898713639423285178997810104977092644839111807047373202157304694583083039144787247151614391979585397974190851199212679295706253229522754941969961325845921242041424809708543005873555347913881768450931728294089136664140763088990609817112264854960280341269793324522164113492450282800192715543479218259994801899869731128699027248672466131679584641153921504946012497954412720631233935882243762738417080561445500241582608571224632167342273307892787514874245647024667285799153762208288168321141233515585205656473448215144041611661333668174871676839177116515522421571486263430538428793587488258126084765661752854997931544414215123886349953485002351101290408178835084080741990208769967827448745329244238153441922524169994995281190123333659573664090107163943338859761714207811208072518227558671397711434316044017393228230295856272582077526485823003298597681801287446348856220525338542615279733257697429744421872491548580521137496371417622515884200165784670873472056113043340894877914943759272899504201922854256009196080765421218086541165263746502090125042775226341377187734422986190473835512511690987776897533001131113802962564323406245718647656161366056725776835811876505232559076358487370158922286019884301542375112627020841868116356245531960610547249455642636230671937675115116262993248929011904394135990056409322958365824743837858026045022838649585394134341721810276472559158683976362169274511633583419210701607634410059375668079845233731182536444437745811374438767875675901012471260500533750227731017655570452699566226896833376824090798710493638630045989311811142387568064229900967928779502544138159818180148432648326911230539101925206616109663571899837390049834464345593024603520810098058728807932960447653675166280486961016490345350529185195102958497600006948421535685866022231314632079150821980478831710397896019564701603619532742499735466861644864236956625210820272376258069091503548705641090044199851272549651204195693395655651136702527611449228618523734136943086664470623570847218356478741012025952591104198130751802180571270515629481904916507070986143338338908551510846916134822243737232344246643205439574725793960683562807445071966979919614846862668971864977320244667566466712455113658789772181237359813487563148319418520288511937327352543387797794108611813698805326645166780463517359656802561368815967875616271839035607615865993819824459182384424229200334424473195590134245342767735128685607922668253651643706987634503557809683399603683852338091811144343519810984186340478156518957956903625250094140885721915129958594987828711952244476800142179350465430761483332118483531798863103061915632340298856103588003804301247795559690353251201979820984372439104140391766047835331233506393788761769589865767819121114708540326279548786251205066062205575545486113143662966305713100836425543429009829996279758230754339391062229547791749792201428325793824345204361353698694790558372395633495131920002888723363422407175680177118120857041015459326326560618534654778351724711591493607553331998289540034716225565906985428884803158528477870410770620098096621695503473074325105872951917640605168040012002023122422406455653809325017753097503504999025711561734038767446623588002115210539865986108167426042272871218649606040695620467964729914939542251775765338696022709558783419686711899793009021327095081432697943067201049557251413879637895638840066440155438298050328072956969410256777367000998663905049064437031509315913527551909724577855852819623415064426447796548629766641851509737251330123334238432098196897469962538208165273780510128399465569117298758527556421874179909346923803087892890374986443476649493516345926515219166212687854896919296257668118609597680896069788028595429014353364886126221641113619655786418026200751631531038300696798980716733944872734301219824120877711238441576711117352210662277176286244967671035384336262706865960064143488375221814377021043644891132884634953748524179460307233346503701097206798300025686939636058777298837584475364094482677281878226083857435304189192214068005015208124868353334396251893335010815948176985625080599619250351335692003089755481809387252336667714168193914966239782344955145313486966926769593325349385688206636107497937175815581503266187821129866881765624855487904677853638224910832704446037472242634695895390562243990345469162228318682437708179804903703575551466623207866033660035561963958346737423029748625442052813979309323944082294444529666736511567364498425589697341829729339208364735103086017514169260281218791110369083349145453516859966779972705398123370044747894956447075886593069407155346801676840964053979420351538887926727554505185080816372849526616125276577884775761151694206944248283948335700937943604610410542380658099027398673035972120434039857783158804292102442135577596245212185206925973986767522895479115299177894808214500194662754188658515217164007121098571979021291917094923052330647794312948967922165484655908522364195147355966963592640016353214067656228768832365393515142127248435380184476759278303977193181794726047823573181727771861636328758209476536082219588193965644070372860962034591485790540269590543584243512156444836156162001798977761149581301919165300754015440409777989650442824782862158604019805451822408297716571733674368707871716128681053740847150982444361617624247696709325069767468676170838887447037977058578449735419098766607137071517953491000831819216486712973521803953440802764901822010719694404991410491125129010705468478812563323095467021248861794726971679154593909011038064758743449421865598468644940379371213694991735676576503349043911334637670018656705562662699374589845088067118163554243630889103658124181277515039781170395326126864550573678226829313472912023328482131186886143665052272167716194878632719142150895454292282254168951697233312109961194517460406856848742203034734533707135388420194551613774511627381353503923542474434805049934191756350010374654444530738447679858139974767317714116422069514647972871081337973890585487827595481077126289843854717240797878191008980598781677275492223420233064596812767962395072007007278768524747717480933224005608471446541389438254004398463800175365825743119253646367262356914724569395496894806122030413952039038507726639231402930117331762007666746608910270558667389938732791988057522756329278053963616724704527343405490257302599086042680730704824255286356403479638583574365812569816688797026511091801171801177362469403074285218203390786918588617216783891556252918669352032884643380747531667662998436781285800311042911138655126150442186587257146415447075902527988739074474639187453161253297712814604148968172002965265198258396387881452584239467746364425981006666967771619650045453304711317600857235002398358445153800932359030488767876422585295887128109269983407986716773007056123750763442397946679915054911813868110856669793564440403069380663989043244850676521206725868343675688353479052761026379465877874371175272793723057031823904584026877629762830895576297943240763654527861477188855916535510887395443191415552839693428150384572475516082103498026685954654102405189208230155628099301181988354863513693214082696367407941607020633448733737373852916808519738819923190617510488421668728559510753489124943003264702115097087716340088971441757775738175167938873776151123108589499033740567719739634828120435721221184164998251493389905853336262533408043370962962728210802070073467875425851302407477214025592037050249470085554340455510847775456656584588187605235391395333832563563582909253798436065907055514057086866213590851335453617219541682845467315834123724273840081548303144065124533038247109366551824261209122895469597125772278211464747407817181746730386240161159358814359340306691812840206577081073161605144094295692897496203376797076773417212379517469922487769032920522916666279985516839091496613868592647833546642304242727930764322017416356141327752383412011429347175194576768763715558403030003312888026204729147300797498468608447221288770061098941168168003875577773964416555836072493735175544116857606083294527445259895184709090513264035123922264709346964274053002789366263786784063354309039564398571828864488208964112673945902603981921137928396624402613464172494251961247261781878267886170484723417464793844105321724111252748019565831678548898207980369685743831424188047397522692615646989712432377142661298349454878556276774185922956953582663871477691314684214778807603282705594176960241818375218381970590199301196726334778600099684804476275057596621874155868004497256672535597129959886513125748290660260270697442428505283250518350887687924876666663506144143945553272969560542513987822300045525965682422270294947261301818107509208719180522293567996877667454153410628149696080254194954992556618124162608425304191568675981951686864730656828518916866893100311484639558421863722060065658801859070728392456050673257630688651074930496731555061707047336870993804152059001445570536251339145305608922772464744879489756125341035380154744066936356818618862781301599337774813592154552184753530652896053266728079839773823831825976140717671494092898724729743145092520018372863816128739194877132791580825509289796332400139085724225953559007753766485260222007664065711294994466963095202021307025513436223896819588624552452998445035531935392431747785120142588211267828586209255925031443911247202952090406905768885324778349524351580654005952349104208793689524484124324339141938765231367487691567581670436826661661668316675457041356672324629278926751440592712191859858593807483554111223240342479638825450618007474962373875003200040250206324738685405774560700690399146576295638588541487007102653723654283737256929216925827264081092860447787455004129307322797686056804664087913844996484723039296632818411404186072309203722482921412832372579215286025990561876439455883720216701012143636648605793758658183508834100554539275485678022730667184764303468542474809194778087341314190859224418014947025434183043718962551363508421592580747628970406053226049319040664673444286901496684431397255981639572875963863124790488158203708479197926218705411858669334185383058789142462092635219876838716805261815822211796624308996083510463582679686805147685132170363367733204773545539656230237941020975202880783621049270685385975068910401887561107380321024889731185074138428849224648654148279440351072065451921411642510918151214751366747048240125620770637206879114560218464726171381744400579119727630329244582165402770958390150655246408671717903077666191809363745296386659215066048446037869711962645508430615245519656297389501809303171811551614398654968208196625662249084302554745672946058725174464597619079649654916040835683522422666358266959962524665467861716971999685757432248110536461487644500306475071952534723393578553437329147413850074734658502568938585057316145398406272337786117422025905915480174587465077611413408774299187767158629878802465385181657149749059139188097168179761094183152391788849924764710597227576986658621314443894388472169584414053595050024626861062134909469125350538446849872736711059721075639230140221220247143062498614536354791638557927421389737271792410713466741345402732152333460377772661350226548323929359938592948575135587614622516333821966177332052868766180235384801664267556134462107042198811516300362023115504162066180065016071948171563579860874735830466610207340539352706066025503526262082294747024564358530195878373552608660473266601938597567085319443758715771561185505510853335609168756591295581484574987235107161418945585945056685663905330220186129552432149124006374697469804743235205977488653263645195043157058915340858661345939631647419644537800270651900998490592401774353669725422900984395182787689915496563818568811771270859429896537389624987341784429513017997090447290646405883997437446288870832133250009864628101951505310600329448485017996995518910636411786272242390699637473322263621432232781053481574453588014275096833475001707281361940622726389124611435174951741582712486716712007693387182551138939158885823956548452680240905319987062685479996885483729424383178571083377968785761866036314729052001055946266027666269977257564096362106550039019059774990589696425315065611789310963944523650350061415289009023120078400441725467688318881362196173389583911427362674583866117470350193281579912184677807295964916987495991058214539412805606934440226759442071933526189371519685840671546087483577863849802497414954521756354225746565320789587879888768187856572267768419491133029299864812983663005186673917702969420918344634729859881809795265591376237159617297889442030341572296215012926064508436833131960611220988224204087130992194657625757934339534773858654324768261483540863922869191150415986192640557514229950864927714899031685787556625252210666345575123751317337206014762820060262853355987892989663053430255954830536589151315286201762903572842152310901623782781588577860785631655535555582094588545953082617553604498657629889802949890524888420555697164939793572462381156843408079109221910582935399344393780271242374707537377227143024453712269987899492109990479537161118597337172071086818698779657907261401119196986710007353345345942046901230580449081869465209472348879648234671723878794454072603956246678739929251888704947504429985862012359640807078892083482600122159086802950475547527879312393215863774305688971809274003789860726353299373716112359982225429758314576839508054059309783517380058506711474298688474336101319819120582207091080419949727310317844837294495240428491865019993040448526643164128193251132800517745885748361146060731421784824556270029285103821380067056157330007389503938014069616267360622168794717171239845387236236553536857012574317388360062415241070095100944292851980295336023946583028244966425635864634956500794623711171061277407763335378593279000854859549900348637978646579101489230327352680248427572275011354268593074387379304027947957743581201293093560954768764681211879415198490730878183341084345390224807804803458890375689367896227248061797651229046759724042338539874268381416218240809849676377134135205042657410161450652419898819063448382385092378650023855579498974572384231443543506945417334489334636363963135602509442489534612730534358353503374653521664515801074055353643275069282010029037229721967626533439039695628837280531369970250186062037221408475717847572366123004784740862297889573218022308881957237915174673181517288623004589939876430238242237738370348075793027145900017491473048891540309276585754077889154149389444453627998036088910841178818198429232921118916352055346060816126569893337011409663850133161166513672193463549811629313727223615147868408946618238077632131712452012431616038008449691995777401574666817246458544441965671751469405299387094207948671494594876178720114257263896170688468600327569044801336881220322083620631945004662276028759214628229486171553321889170910557824139984179842331876673609926605535328120642432832449946804220940006664713884642052351945745718266662652335238797737580756890447503916520295314345839095343108630906395784602799264129286130786318815506986980870451589640860628141473785038227817979268213747010664666127599453816582385261488178697213379121628127125558130820293982350223285225366317457981917839786749374108138208921730786195993845783494824357601267392705121221080000137321669383835397112388322216757697394701361637789887837959152304468381920543596999594822636977632382904604314943252011603455677999397755419147036355046626197287093779172392823375060626966404999149666100492399208185081215637761908905873907156290265906728998320738255027276525406053351462239254174624352734423281375621620637744361411482466083191324856141977949743480295410603566466929795526920878797865660623625632953238650257321866223570290668312041666338987439056215082734914576109431583010744745789443556283000235396900404510242758979548603746134598084484179310529460545419183352451144794367182136282071439334585832779903977667051716529429646496141136565755577646466374412331183925562978726075549806706650459087877511903689333186432045478467519870064674315188980635361560125618482938466112008027843623556101720399251104875015657308698156755836557650563759841773458086920967557212435151929261203731721098077292183036740136111030804597028468806742272125386205336337795174253659590321970799831177615350564302336318062060953258472697430519233842358369638303642620346189132273097666558372102723751421063934487445644581322760031754427899927238795415587680183669724074385226754386460439165740522825240543658503979650016968682208073838479580595855657555573625033461941804500446833566069574915238001855684746168152989656352793906735802131045232330383566991700514069668914393496359948319669188730300619831206579114209244785135713631944458840781567094404385181246920600862182491083747268955438305289564186966399251566221387223553214572738214070192999935728722038428257148236950995509608475321619811801032295775128185234366015839620577709346178018058690875122096829075143608165546107182883009952560935483322949160134677794912273407659667597441651767241794695763735434398684650129983614592317811872750976577352703233874419022040991033796402547519721822689383822190432510720258332235913831083570617890094113495987777914886355098884057688779611424530998867421490178473236640612182797544311567895132759490163686904935512652379177561279850702849706420349963994539305277624679751329611708288626046957445330977327324794304249958908317972126306669108258220012231507612324254432563619956095657149462974127582332216541404832502510310381495980341131565672826851854119290980361739681915367178825711799263252416101363030981516025128443288411988444366747382536081086655803033366335140188227998795592311418155577661271455404252442661393733926594587499998523877802655707653652472528609519460636437341700107645467769518553151524884925975498872158866306568240348189464659938968516623441267703731832221348688774061069957242156120117875380158444553317490247909612566113099264097189420859645375250005607967394642296623529421134987954670705545269794033354473116375761313834068338809193471165293666612807587696960985028367764027873113477062948585228465089424058355227901866282097503288188075472804226696732174583516711075604004352024418409201991131515859915164359756970630852467916224918162431309358517232870665587354076330566534435718028450439847142065415855240862089177228916526466072330181713627480728980052124783296403299374808195102537006654775201115845324970018075242919885905571093214692959124796495224627745444442372541634370474017919754930585650695919390275748377403062595995446504687136034420566205565388022125351780492677321773586697118827896546915027983268455666694733865179831973448797661607115706996557170622381695774814859734350745420854022573477754251924503257219628232943559624974832809911551380358681805810692485877521992890904404808352113314606049222074918733560459215069837239282116250584677114644046440295523696851741001706701858653998865968476869429693840096069044241293985178839224995335620809695838845453636021940894315743121799203272655958098001256861430577182347237594372368268236828035465408214201569027816370554169457020588262681585665921149317790928055857864965854444711647619931332214635302493749795322728316477612521115689693557057072161257467238284504901386593829351442364398866976084712082428553405305025060489921667818024331339031417251964094365892624178704138421730185393307056205045333584151568823119722503566157232523929251989246542130888894025302423435159317753145552346280108537466429962788215105072717597188273619531800673908031869325557875386717280057015509601971936965211008984940734518795526840851423768084680494994438186495100378028310682745925858628323922461634180929625039017674081221180942573977209166740241302451677044736233882313191451260703186545333149443434096198296703076066708529691668087217785971460181053943147960996255586791551198061012102241381420410132551263717350971636922128021015928192492436746785745626614365737386028148923059613995923901526788589176340499508032939308527476619270409749143558008946667434838754548289177543511169485110307383761730167159466167471648244361929093095494273755914225716609473905247755299962652097496282155474112842655171130307039919959987817241883183236551538181700786067916650160042989513212299336331809107193731464218875835528588599782120469836488830947980867189249020195381689828856530487982583099579613999686626011300041260419730673307110557909519534758298159102021541139146831360971045686760906966280392143950743091578439045173874967868319184172325342401801312506653753458685351948873774513441851279575305214289364126742577803641329576475015315691336423306451420316975099435494085814633503519429047862963467894344720632243813291446680107450315708380309514282495200981088517988661845668985913062975656505466382176520101172950780846532522090399121727632006211196524857905048309689530164312071579028172797867412477306084746526827656596222235331558450254579939091450526008515488233431796591345361987744737648945159841743212727713773375745116542661697178115549419832476283068367209959291184792644425797607569637838865867772580614173683488425688707147035841366392259715075869079579155534983988423609528062030509012237001869025296205408644163945752875171733612585796381948330690992670589898661548851373590877571403320090917170932251070881568179212805381662137894470392724656991134568422631309146949836493132864925284030634796969607644256803170884640422604721378410058323083127986067492719119170961101915294269172182887400470666553973625141216230641815114594660168391654456971273034779471675397460616968693657663040451905657418604224989135024288512209255703686873035539300033036536019725417261670652224097301640054734952089900264826629790961228820885495506463185352598059854899138301808145071448170029442948753317767366862931229419964963303072166802931749079049278277928206824557308022944540242956843206954663614987094975192879600695624949460600712378234839936542941256977852520867667372670531210995453830197609059637706454522985352903058625999361890817141655568233510175828237840343428026296074083419631280520988839500562835863700045538666880579922271092725881561498355208438427326535417937026314485384825325229508061913909721962390175050833682144497781342304823459618846561029387785970514817713711071991076897713966006454852632412450184913544758692307709732483847411459587772226647911446984304963358438721199493975280119768628211046948666971152076451806727853743305569167235784826924444847143630290559947097596662867818985447502626958844218876259618935771191990041357384795702423448617327870807268196552310355255090284323885050472175209146025616535550733901331383748177576988334402564091764786289314358169547583937926434803834490943191290315045640154617074958843587196578797032406256667153153446394426430245632979520498634205457451891016490054817957661871557477312063200223219176434066178900212927073167744872637171373525871450970911802306438579795183017041087587162124274298024811406868553095040048548691441364327722543065344179598815162641882271054581775996952748623502903121782104443872784664147207413231705267201446318153243351232377129193599000668181728939980802991597134349744339575356579043485447841603615613366599676992819165108966129135891460920117377793162626395230660963691669206116978405475931866455688151866115961712840978458929893775181616908171394203299305238710177845630376396700478029022562945232361890708976168989693488391461169915636776268392411435335190313221199546900038335838492656486066017338195190188666713758073748815926818313873393052017998616594587815384424587524201241092010904128768291521906958794137447987181322455458828102617902737179536524251935925944011404453486168110532746513717174933232965289386468126758044522792637812277871518925653258140322263466549176610978850540897108259959598030226544907053691685153240129667509072889892864085964958729488805444820896291443228898039291772953564384324487350153845382813474045893703726029298889047043096588323992557769822825267829546089368562913794550505983241035303662850466559161605899644177228660086021147094504828397853864643361389120696624663700074807835906999696135154607284400831177597204419272500604624758200480244944314460558638097324542293976696202097278889364099488454604802373211839996718749448865079960846523963276268865244200066534976359798492576107159061628153366210900887888588983705125604669742303836438348956679971920142794792182534774694301519082425923850999535037265630275905010650356448344736661630409606027085935521751078895493917598578761508081629364851480950562113106921279177041336234088703819335587204246247373487049380504951859106043751838611969300113043668503293531896694493263513691184003230044169124483279275087763092534098313215143243931899949071504352682222529183875804764642230402205719437094340955625933641975839289578775232584234838031691002460621760578157359859157949851389632393779288291401273024776515676736683749428621825462719326243642098541487986835364174792706099365814107471161767034522102964703503717151714048713285043861057315852650811410583087244596273925757585457956679755941161050205382310952710561120578368918004893680041814653586745663524264817589880965258295486018914598432915577030593446643983033413385319878100846266172201646134405814816960774163297471070298385544891768209561702557018408618632304736333242594676129118042317370336959308332126174273626612871309882195296914753303939501726200255750136839822925830926850458512412494810229784311249899118513883589736715653788118223253249755339773452441659730837072598496515727441205878914966539032604139701218977102984157810453875490676752292381464859544259968072467521279042604381116740077300870996726747596849709886318656235638104112675039943785838601423679622478657404963698239186642172438225143923751120663075794530523182515134732542079549948183631154034907151816282650360822211999731390663153301552534682008359166641298527712597493601349852054219034611657501319877505394266672471187773748406177043162311180965020762063838131144943054598675815942756560467361287850604333909193310330515667561185307670887578760310161437824263684177462233035789605488742924957843864920236929730792761628271779631076100337850637092418457114600676028764554901869540097134200197461286351378976597752293737635173800058736752785001905000017173266239361854260942750170975916858263794627621300905936818314812456998948295269111672344456107654636599254055230640345202062476246808760509453142851706944140531419784061947650566876392330766928988809095131201372192021437622446940146410457993184730986633556591259451867026308034158216358712504792230503657923426176122673507327578311279748164295739048018909198718157664868848558490981880529146075716685647031837743700989988058974793202387495483391476337311205716606046870993669270490234073421690434121396010760049684070987434014238779092000355435749910341296209397884266228691958561382787936036896184154984618167668314946754296741497317584504141650767847814648942233882999230450658253055428459761499382795867225137453182567770248107238601928673950556109111696015701165586261488309842987000857164764916408616297931921156898123955065630727737462188134873047601238426226134165620954146226539365422524246012359112596121559362584530139935771920202670235347078785856528910215363524996358243873832171293034416904660813175539159822421678992566314388414871814773458868321439923942799325464294902575116775121680761711369966653602821493899449023264236588943677857605379953341211527851598678113566578771291723828910398950173460932422573441350875671468269218876310918001703260007274062010500031707229796313982188823431290770314767303707296263947288745289671636334318300956082965376130524372610877670006587169703109061033838983901580060778458090879158017701040926127645859299927218451447617178416328209685346145772395701849458457823125572601247557454565528821905785161152439276768169281825558043099823184645561535081564861071788850641626889444687148708749509408916292032702737732528088203171393784191296031371185910010292016119819699323352149110491251571070072414482942852176808005044435498267930533888579454165743668086528787021879713841452152065207597097676974509002526676436119077503665436979327302705209735625642400035925774443864114762777388714511690285895167622776387250644361565962432264896701779446933909828048516486441284111220970595163587332470186616407314200632379586997117675872194353350997056787669441232401804187663869620661031706591494657780714429698343911899200452901425433025310817394775842739885710257596737043664849289471248902920415461057710870439348915669206249149649239657294780257467521785634198110644076203297862069758961768704917765176166838016460538290639300205918431981141124317797686763938587550426535031789791765646696957483912845393801767224510859444830913485433696073666025958445656259354547366043667062984548816897624149679452705435477947930841901089363230769141780025317603727456964844152629486342651589115894092726554305779976409919205579978033622991919992206843603795405740096707580318750926141664861609704425354228025333402490932085943774127125428994025397850296136381901730610133866559005312313206514650990386880225144851583885122173554198081876606104696834702248829672824733761550646118352624451853178677792255823033892835903645354952282549940136582985711605819895616090920948943797926557891502716355449219401430085604711227204988971867920904011107792007789833188012023587635513292066805277845832383573640928267734083308985471311204632084162797402377622499484135629759695981710001491143740834592928896650039484647339401759537426246736263716152627137790917652586949580656398426870841113926510466838313567018022146058646638395152628169057274151447628749556457300724080951119422433996082576799216592028382340610516101542204474612880177153510070003077989569880168151875500002650459279153870235919056215764613186075119564128044099676078124564983603560576092676175369796716854196727912031752470519115902314926726614435565289332122872164964287545849744253501534087323418813863844467423580270443520259256412085348872738049050866347711902297517674424491182163871285294945867874978055344011573075277474944686495493395320160786867227894614773857494296653816544565138455342034550238176649894570532888013255758283585579893622672256800529675684089662137280475296599544715189634300682467059125673412178119410553296673523435229901692861428582204864994216765831095472611285573104414509609703854107540898334084017713046140894772998334419403046844536525969732949713940725021905748606717960190048661823264600831864259404083439307684457336714856751873327848843772364043619887439908631932220312796790130622359746964671064213023255349204478397704318666618730230032081983662787411046258377941295213013288896810241681609764110087005965849044013702697494256060869823711784648975959215501371082530158202375492415283063038022388623546491942344322242976296894997801631197611427725289821889581596306149458787076681754375089810071388920561117992238650703319374715280396012288513130035659492881409819461521849805005150951106940838232789046291439560666900520750823146864508703948231074156680156110242273520836265414242418095678332491708420946632047044417182696538101557878257599113102680462739126531424525915331911417134839579994969121505157621503286284243806216282476183791780798847157940830294144526342687068049742286013068296205412178851411652400619873912894445010822530310794867125333224235027622940905700365836997938501553513543917888625930342128039166108137439109711985156343254450453968428234332725388336585273284245273742599190893792386985340921513482173819487392605966094964185793673387888142522152768071794850058725963195962372251950947670584111209014191681009273468085740499978440380994669519624204959896032026545097752669472118412978814881416757648618737117182288907903569639616295470308307716771531793755309667509844339353882467994291878084571694558985824442251953000661177849448025223786565305667621651901931066176752226039996215615710092050615932513734608019333928103107936260369396699973000253978158854300802806451644062083589461477094958903674121206338937851745724896927442985584556879068220625237228519662006049279002912151065404850418756730909427691082385980877859488024787806010323659669373947659204706604579664868684550649021341722094766185527329653500696537138116279040506318727780030144106130620751693807010555243686264935023586980338418870799278355410422916826696349040069256327006590953046100537263686239125930205421033701905588924452953870656519371025140107726291890560531642176033901423160577521088709088277782457540213658301512985399157270329279457641900247963290011643429155566551974359029568819865951997560733055761514864235023581830168286192105076457317366380266517965611862167061418094907070735012416682079438846933056351188859721107652115007982908082519198585553700937799451429975774876393212754396034639105751512010156828158003286950706090237663433252046871474485773301992630587554149170843655724396371706878251384101513565107192132439270494887131345632142446079106969757308797570059309902238242359204573548050501065746628937107161835074058712946941237938547032411916697520343507445731065378024241685914979983468016686595200886051036897590412251811645123682556237143481188447596284901684962081903320871405092485997922780352623958709815961040541888512853925702222344190884590914321706154178693842385919427717718762969233327095397512716511374840211798892745127083359968069198643934316444141589906509691503812419161024041046821288959766280338349218557991205246025337624115023605867556181005025156162728265065884698603050792367427551648888740216228854254690317922531764252864544099623111713587995830185612509541477675829130126248496574739527508244638946384293137649329984626940932404423831373052713830917683368416578551846354111330667922639410712843432068536492526350617498316144661811428732742964208096422336250039328010864045395298496848787691816790068800318478322566550586549448746693685544034317788047015167594579094077413019222522804220057435348717537128260766951439057569839568437418077910715451430181735576074365877254781796550794246558401697739159677891965226208992805846151683653791133098034667072673424563615763640118063317380410764094289988196118345115875825819782379294863361317527656148019328507977613406431225605731683494007310694474799883750544550768792787003205260441509639794037204063514467220112272242871351254317998501266302134215295362083907245509514318580903634583157715309713516840877664634204287977813172977156276766445638617359485482689747430126097937774723037429541622729394186850105670032594302053006308948785596821077816232239693517264071963897101371808879954279578054373934334968795281507535660589294981923693373919164943582846358472366447848350434109092514639907181840529143863609077292574614874760952763190985352563443706434484278841464158200589239403431993701719386121355228369828510522584261006403620474157889147139148539408620598336058835331466513831776551646036534447162324007203803538881417308666375452979057223996216289987090465984200222677901426235003086180345670031268189708366520204053914373948443863641154348498062224642470028965492984456264052390010537032050402018555703869722306279735479350288439812768777661868764561661281920458246212447442050356779996399893322033181136143293080360812845252734617578043382584637543620648905627199832413307484566772387862122895833055977476470910412177757482984347468073524766955069451083287837172224358591395043478552775278126514425488600533976528576885753175138762332854559606365522895280108434275243823819059718990497495032803820041755539456422488987191338817161211966523571286431544623005272717536389875801821305276842170591726511053571803795502732394364430533325885087812666716852648501037506900377231343602157301292504267761298729858913014037303231727927597189472780217579071334897900776845385306027693697844861092158949010573292310246754119541331315104908402363693473987148568902016382792543972843258119168386582556846945349201758479073875927687161082345086530919036466556541670171896686912390767126037811903893434994092011945586358466094320151362697420020719290349950402944102738526436942145405907116288186531286893764451440424133038048995279572006343162123264022280170779391632285447340101488118795948543713860709240321642622233171624845154812470975887163664571165203882325318113711693358415871375976494990781025811576389985845432435287365213647085415112094355465354535500358516075803975502219578081479619347099816399599314816118425419825176922053239116694496146268500864295906453233649887400579478728031640607071416502568006573462509806908156201499938938496227740840467147145849639325020523400122861742518213930712563650548008888778738396214243557890095364706686060177075348991770542989961634189955792283370357401105508474100102079969260702914743159754763468759735725058922554782222488849698977430253101224866814716933768869498215586142148467462505376897233800362546014545255174420524778496730581230352204732115356431075473241252284256635326437860332661650396225031488047473577524234758569366508817416880069250976172076964818533600577983035384530759335152016986378733521603935910419802489187316861808073468952356068511727903609709083933582367602334037780909097479828098052594350836166694885599673828119935810121564001816638519418255619739850346183345845826363583311906330835506671356638829051100150959218947143782765140174340011679390314345645004787015985330738694762369540323231258677713054872863464391688542741396200312765097220272586813342372836205198673190088264228542203828976664059667746809938942973804989542960535377660078615525305614047276172439712524494690162673332495054163895105050901387257545464368078685718200061082329128216060445862404303428895671418402026974307415088403065874713114844487863141329678138210072891771595317827633268458198890503595219945799156429020859956550688020752344108330124514697969041803590275728701785782646366298394867690594475430301226609832893897869825754134955664646150705714784498782666326099491761492443834001608690139664600472007074791981432620944027948450339631145099021851054811738679683631219891066110852722234676800880697713691329328793242802169612885730486458946537516374046470869484832884120877841019977649657086669930583211620638889005351472890304113595220109494770898122240891265991014790871724985125245860199672877675870055026664063807399137507784388907537162219439956656247127691912403917719650208379108856840721767130415510074744633014421411165678476121900304615809029777415799745731859926916931880007394456680173143811342630119075115813780644366708784691137827506427666706052898259291692252908951663131298626159461574476784062040731300274253153440771268835025496172969073246561552865268227259202598640522869083121818900708869113748730369747693193869462568716967039259997505149802655842507335716009435801564712606984149772728092175355759684111541172322775740844212819415258180177693416349481949137085768870025201733287689476996805768826167265103654375193460510404744179336756729978827291014950163902811436316159280424884724216216121713161935729176716920263437928209820388546029235843812290205829164871568568374837450581141348065931675571929999844150288478522962980536631842920609803476285508511199375360795156374637896546320231433491217435748377558932584110971327679801737532233257043950523600689094148538049007721516739231154815614449348550541342816056346567793313278049337261309409935874355498545860262774776342209745044989157444869528581605556764053470481781163620159943538875313400060714088658746407907757044311654398248046803087771975318422223799892891789504127649238624711595679034434588130935185368559227600164692356002632539791245095771494679606289091141851928507515946526904483380234970640967899132890795406324040076983830460780116847453249762105047988572304078723048261363210611657810803593609052522680609370067326892979485820587464242841345977663943743836114558682418857633299592720098631424314061743100108709103790472404057080143409942323031775318457447757845371950325163118201996231657416608998710874425916338576511685384827763930454908462921914424343203828666085482087578439377547300267468266829423714199364846933339774228887585937648922242814408727848066740884256804898246869886445463521435467309324031626719795710683493803182644125285311461842301597600542417373813308979769103781137195137855287626595273728108881153201141314333688058392611228464137924510423784852011962642509306563188409211620818333442334973371110246328277091332337846002279912242150077313872641344030056839202962499219641478996352084073585711226179465334273941372960932006261091105768139827326748816745756191696664691299809373596463196620703900867125916852599207990080307844847597173779962498259476306898741331652202787089965903148335644530984962344091942918389307582440396976082943814184148053996866296590629008503909337542996290731620480778796975326468399415607936584859239225457425409711398185645868164397602275365862424900690366510205376752509484124558006217792725362216354646860481194643233707782798275890286910687921922300579878031077004217037252768797218190623754111363550242989147508602847323986124460128358881040973924602754033722821048473313282995056490443899862216279277437427941162935183615115288722408440605073717827483809506233307569252124028773712074136506767772635586940232642610926676194208446052416718242986554327660354593759103280395335059252484760709151288108603281691873103148971435715540767423628309894821193194196915350108468538578106496594384478193629599127621889126960052593720728219995943035303832050285801873470739454639356480242532703220523973875912101078318667083382809923254953952967231033754532626851176332370350743415105259757553885495723318687466658744166206294722206468144107957962923708681715207831910886038018120102183078698083326175258452709661148416474014975308746132018605273519034145431895862895634109341286262962470701379042496394323590235349837011094544932226687301750693856694603922642833255456993795994350395238561990895501843955237360163622159896107505535318451575689216873522716945702109941738591191151076433152612225601321790243398808878204128204624910701419759121383595210319946985119515251409603232163185634043350192095039396981143679576423603848931484204106664598765456187277304377457978953613332639756625108018957712864262129846970161019572299272218200291445545698025755331104337950785992146393485935244298206410783267743880415539876230558697065383598052548940926306563059956411496832349505347090292613491816065297242413370576939083617974265288941067221947143271068031506341673499282680654831078530773331544283425866926673871988288758305753230839995395188253550686369760959633599721410780159223439799258337315463936899045472775251915364149267859997640830599005197150948138398504382478014621934439987151616888736751740542519170677043743036998586888710188246839543489533758514903747296087694166763367272924198095818382636033018710422791220937264198020439104079925812147058724061836503819195750699737629635468535934975285519868421745347857654713727860069245815818020832933375113303031540386085073632683962971633443393826675879931597193592370519538821182375537477444255496013857382764306588073063676886239921194468246156978030052971125931046429585031578562226082264568572540591371223203011580217081668346944131143578563013441285413554046061824253577247565259080158689254458160858213080830501725580019336641942146910966444506324465450857252317128271092702273150501023421867153149657965568099682847715618079153569369845903160087324051952022891783497387939227734980125020125979809924990178724599021798236461380948954363694017842352688386676226509926330459142801581040420739325759476630494642142647352924913134084506158391791543450606890560922369879602415862413210378668779552502825225410522809810142753716696934042742400517461823737471771982054710904905920116972223786768650091748012546539701351602584835950775609872720968587770995308514507119609814060646725494324562972484831557920491922940390505843720173418192138896970376238270720197782603662968697794288919378405238277554268889335519570324648174075490153782639176488365006599517505211034512108969994346869176871956293413187181333650085255211401511517958810440245279674061445526884014988143489320202418620450185146638689431346609767521873168643620558723592119880559795671881261363037119039945293645885194223451827465031618245495990037565411035779137682208609336239611169434935231925798290574231433107667090084091879515414321865599424422493999039563380782734591335481523616247959511938925885387760287189529938534690064221258756125433467526044208182861680584918629541435412183796385449937819856325892098972817433008584902440489991549047920801380931900709098935076150009311525653932073362922573539359733007213885305884921823448928541564547884803534427952987389789718342377228817904814870793545347879973332363158701633108187734148165056275873575789172068044928289856935402233403053584428239985191870835796267932767461356769937843686815378660733216005706516560841591391513474771686594090405085950145195845974984420123122060812430910296869724387172831543553229961776819310637991431294432049897639968978522070604462641581950079650385932615644702799951195122814289454766432416133754071793126303163872553438551022528409455891532075533709055817462440918575369399293455622619229191663092120190218020975284302547925778311564571617246621133890539050862063542058733658728935620729854246611821792735237844638481862233143030833978494450006519162411817472946849073034363015820482111986419075663535072283547010546285323091844133330995502199078810812415987838253310346132519052112272156273358141781438578468463518247677655560715313580372990894830809243149950616005709038186678904833106466457079297896934753570727533347416463219486070861831739927071756532639034903409756124546459405803524877883602336095998909578389227048857857127706227259495519040192579970284543079057360662027940315475933133343445253919306480423154274193918436216926255504972309755499760290422376400509735836218636195393371115600194299937728734601204532429520658227494058415322702525713834664968428786850759123329457973097680404637653238191411650619724484935537559434810541370969899157456358678740972047872878328491580307223006926484049470700434451426508465697198864747007992323801919569501654176347322886069887935259296678980664921224998614525562441654023617386627298367084387020730890071138012612157191493792995487625378091927883245643942131206350617611559083585157135937720470080941676422891055353166725848466893846002120208272355527760570592803068378948167055908252332042264826854529250504644494258222300790627267888827332405969610765810142922179922962229030605755628225649572268805386164684719510452263040139310490597453319210281355798430489796588479126902620205327587387698196350798353345386200878390252253034989711103994734576889533638291265122114253614468133777753698367371109146755529902960484582699014266235537381382694303890687519886332362180004644156494639593524233169113597211021780755257743988493145433622718538902153794462035510385205487703225347320261886271286637204314123884880428397417495928415740508227579061735930434187815616993769117701577820415809739285843732101906104100115039674627670427030040459688858388773201794361029359433689149156105151199280098734666477154868875766328014550005008430632470279234505181127692160873541789247960922307212772281400825373403415428395527774387225359557972102921401325660030136433897715142252208376143621031232197434243581109221123559172180218026371743423788052209862161469893498358738295814917695357879306143946122322034867226366421078638511739216350509347894548651026352329704667918753814645646383357848266584847635712378404241829268489116946980977788137553334368649508657713429026678708444720009803141214921487881672195926345083575313131460536585105176774107823169112408486000157812333718518097931317686332741669361555629240509015466375028211918223749483192001743194814060377797465558287362046529799522567254499607556426060271023571533304021697488637590585432225631907106506898089317337114349887686216818507529792732361545052175372247491894480652856552386579574183045556363275639423545327610755438913368099092099624756746483968668345102654623214929999989446858118793866483412731112087706629319187473101895494773185510656964764085120551544905689293877100263298772606990497461610971485873445959680277826683457108331191402104690821403442024758066634072986219818431906390127297173075974872217122040036857552723584896060211915854779796681229011245742496929403522522056830834186831657259318870369290433036720955401806658998531028701175860712805489158591885727153144822347644344813085224263959350650686209138046390708960533878522120714831023893615360095385806259762739650010813926063473298576356378471067001649668604236516108251864997984676809796529108985020398264062945415821937929615707145910498131172736826369427240406045586695303406247555280563706199152925732324302362041399229672001817450301853704251727263398596020693825570545416367340573403823991091789206298944375600291636106305581136288911344222438747722862794302023752472932439479372698182160456540959725602191899894677805943418882095977170478044759739385904783048208103080707918614499820747313182036757100380399577315500019403714253217111844623387231410694530779768721627668449923577283674402426642503324258039657604044964257970976264529821939010545179269426576257015740701893627561939454210414149355404849948042179400707889474826193854720522990178346913799784840936976087049132197798882966325418154821358140190536333692330012267117018000152749770937999538652944167987530275641907079004839724606969673096966828109715823885788014683653387278952433525173935362445692531639949086962271333492996794725325321941586433234245708294119664875478092581222249123416136058440866528642367807604114796504995276774969884684578063095034914722620934081986977342634379546278640088415851951509224952632872110517857200996238617452547894188378677831985051679224716271392664125267892499793863855274627620366676690172757587391877413669299381784870486956072605144356873166819791689485723019604480661759836861498276358700124845335129963470126474348858616916574593709826962401457295131345402312358735664563505834160526715350880787632306883567666871232292668999273471524225142572385451438751946001652777659386870758641061153775800914795138331689221646311231695127165138540255558180958519141771985045109751424681226210990842856879307268173038938742133438457730226712985350022677979821951868266764192890422711559357118050382799635587353383530313900099525552344033304474177590115825258173570319795935894232688565598619997852793245836655658490788059551228813841759864029381729312913478868039674614563132367975173097088561524260770423901726069030144797972902813921219978293399950238859748484894848286216856447515254728642955835882197121324524982688308949305670506634267258477635083173392225093605271548281043097776249563088058554220974188618392027485975997981282452412744414747882652691863583561572001044838765009477595477347728842948967151067159206350386642753710236836737975817724095661488328314067610189258866678226615181584194073027267443676999840589087803444767094787407017024893646097881271993132325815966442746358597950189037359884893967897868030538471082521397109122242713885942373613555859145072831277513254651552485573296603077986442836013740459762198653510713990468418577171531365510747973598093525636419094081478502571402250547101425529604004309597894333292016070904525581389920710638971809725918018290629827221928100638441375114974788120883588985387460945813111209864334912575023055638901130189571438182565226721835055994183270770749780140791284944257439155362602743863166498634029411665447980923879870348709436304510743332088017929741976804409068087197929110340645714241717906226463173855142482699201933788489446260649555205495969740793481845943113088010515244202161089492120063050807990790187962019965670212537246660134751485547211308404283783437684833980376051266657822955715620304533837020047057877471491363668959919671535585895239067860963012405883724223960958941091722941287002177541452019747542380705582387513430087884546672486159824486393979861571546792312246111209543002907124964318856718328054638655188984761345744858502950741847435573688757392886635968590567303940620580344791754252509066944713280374821639710530441048696846337238517049639908242545377997042999524611517046649546006956692692174465275730547467611737584755456840996646590162666392852580722580983628039357368101329283390856324817150432041159402783615925609677569361706178089699269929307061583647895228191175775290407693919177544719796920297291251813261808747884250730896259144908174506755899874938253217633772000610058251531010348484825047615300572665505635620661436377227523394278340630963421481495161186922566480233940013780651910276452004267447837341636451154765449623623903359254211825270528876744563889144575353164053041702477958904492664907590730169965518393588627589896014335125767798154722578778147902329149896323655971089959123335426534232162531345241273367966966159637488653185276199997307766606556906571829682034195267164113694104147689330625254996616185299545810333657187160501586279666695232728638227177291080950259377906208493869970816799954355810383627879614279256188472377411103625968542523472718367292663880223691045300296755141961755581567609009901598361693746954547227582102730460676969745150275520156495026597177496237962626904183947728594530861503850811855986407677112225151209943385153547336321168940869725210863455347296841308020551508139860194373716341223247233943408569382872779575998944666863974744744237604325361723384104222374231988604789990715235830758100079814481770161782071610399138965540021517975157569492620601159325596587237100073407967202012031733620811020585481879320872117493414191478368077125714266418079704347517968369004862909499581573696977258548252451436099543484780826837176226520943160231086432931948512598499038889606228195833059406099063254113865258588078643131252766043275883011617635643943666526536339351507324463256527118523680885741807748435416549352400951187044780499035133872071252738178841141762752276451180652904791901240284689654244889997845109703842772216769067592760042470513910621744853619948571471517050216465897680107005165909423890924692786017057916329643132482450021616045890224103846389804430175229016965724381963482086844767715553233889274265450181104723116497986306259097270544267818091858882697035710688755103641528477526631175767980882082953465064616446758027493209588964059135088600427696144743728121357676523918658021680732601053044842801511582792643057138427637262980983767735035580451355149882144415360012694776727931549982397355412218072102447444851887087251595880531139562626814991475286933368661726816811032803058320939707508043629465328406223683400222411282027952918191111161999972061424680339032134867550583143809020559270761780782842229350733600909230700049713121972811203589382729153899197643699638347824393805020693816453661330504511909908307470139313262307325453697215727733878191592262526138768839669477624926331625278398523817581469134580084416132385748721844707978760476191228221712662580573573638231604177272545427579400282850792894428989737424634605280785407186040545352650297623351866791450053376641076344722706266652346742854844488333143083851444136230804073056579294915662728719322037610520521117494638292149746373533526426655970790571770938353903365040527506727225255849205712905402828046447506272750902846223730734783442968614459450267624690010830928853889205367180461249898006082148000185763271234395817797232754463995533519483848403941774316296415768269834087375998614663637897543929369831521433264965046308797538491668945641914934816950018451740512784626940783414562208796148348679067118881030765622130589577952007532171162711070677467660048644530056908278514383081675499182842796224679186416624813690267866080883576249498729589470590709917059108224317591927618507220682685880135653277628558602887149472039178637647711676733587624622080568153297822849444411100401058900734014354487132791079866718083618197102156897955157070699998808342105076586739787823861090664554413512782214523424276427824133508017776782309181804372521921247073932091590101707418231743983311079425206130352471539780409291197831371313467896693068046499353197046777885199081791626009297728081896609790474859317721166626605885221689666384822013634559143744969534316977418450467025810067840651625383258504014863627082616942169832952421351935089609036717542355928420712401274367761149036540602363496079774519374841610313905346735070689703261581581658454799618386263619865778380321750374344428559045966052774490334616713784531046310308959760926517897256654578786559372385765607967103570953360312327540116978536938327868598810042789372264529993125475915506192217242780599944908623561959792902746978892300061841699941730214373882974489010076277079090517031960051458745043900062160279166556073248419594363896148594657889715345027029921533148360881895411206236513512560396570482974927629713012201834289189811862158243380924019040889027791190856252278791863765560855771687761622600503568046397081144956947406556768503640403428643124249105554600332598846450492784780641917789449589120504685353779485776818003759124813434380619527497398226826085623549097683451683348112631143137234476066892986072906287823317484000839940600813882271591747924711924517019605442906796057843565457346538250835165379571814998861611084998737064255876076857416208596182887305691383249659811048261372079476137602051473748607203285771861676171859654629945133368759769620309917247407119772221370259105984732247012856628156073435957808618201849976274639834422337806581139064520925465161029696923061447700258481544524780793110302302973361249511372005379842161482261805036666986769754377167280585601602739288959809999680767989287618105775320763431547011919944983882391154327975801170867177163077442591505023953155103740011390718726274603310056858416507355865460507396973434486458537048001786248234500652987202835548954556414696290697171620164757051758028720966809398248997071739021387007134040786341211629859354931352142894194290105813608339932920149490397209193496867638425487380181690159449378969843221071193664748369762557344030187634891147655932734653864189322571656272270649009805182894620261104485418888059859316463374352741713278413374482455707703965472359468485562796982939785242806458398565157048228483805693811274135948618597470272425609675516591325725798559661891745405958432272555046210112333133263663739848312835532502005179093389794223396655137213780617199227425704204858832149366573962475163916167169317276122074968087287219281817936454111555247935287079627282033978419949340421748355629353244038176163147895517197646977349034246157445822372572854054553462479970563448298340809289703228531870800872857232196913657962992509648258915149189750153902310112122316397423473690793525387262856167613609005132709683911003429657858092036108117950841675639473521362014604260951428080736485597048659333651003588173845974940778265826297042438496963430157281964618704624472939881778032214028677881129883065526569146930266207155874401155869553821388395337386993309131380520408582529319426030262606160005782987236862832542471575995042950569202070569442333291336023681491625016715516131608758976670947198861033889442819919913999395477797083140767008906719936137951944900763628693866948708315935009595787573033114804371218293061621516937689792945733008959573479863833558853874014105663582451053687158656747860690028410964703551123523372063626117021851883619122589363116070235350848479504627487424362990384305190366868431397721660524668428719734216818271751977283132630125769427951794647283714238134102818502351713730755367511654940488898617116784047022285087239274144680239330678757574445183430187549294224651642115177266876197749577439834542570298540297881066544666087875132709945572598370099149971072801325550183521157241905095531567438431535290076004276907066564952328568159811735652662068805487003666292534663195864962481607176153047068873555179881005311135066923348653313502422192758034529511102579065486576918700894480800462063467328024911210646547342515808982820121630059579914349187712916698483002465554708148141556732841674479794658444185115481542644224883993200044520636825538333798046612829054355878923682354034386002539740440581001569766433067972550002007752654345621720901064108296003978878567298017241713465655906506445707155287251201349812056101857649887488667927449013884332126004954812123773738502493234744144687583110984286633994756347432640425746822659561161381081826678095910214778124964710222423254189620739754598331299045836854012198525432261221866346214088361836159308327254093829997733967764045367943434986660962937882532283778966440944162400979467613543797977918506317068960083819061696910021376429054436487036038059662012601310408222520499682609391758650887345822042840257873794697633006897704347768480502103072531057144040580116107503121381330841795683954841432907618615078881164076736097959708159026432271519009081037998267339039436829895095319766068849559590199909032270244320044608224778278028664051397877559152383876447911433970087048388653293918398013200355799490871188656382616486277929763529376638644058431322681898301899028067112534699320789890850100872949066425324898888337529427942277042419205501164668604089837129286197022122511126475652626010040677951252982580755905582525968883649963683778149957099610899507969611659463204417893176731224421004194799353349410450656368194260874454141502570031385447469141070803045738058471358793797956400433758929530334189665816041031822646675613787470616153765108272809481703480770840459180565089097949437953936459166576669191771309472809216910762096012163368133967106994994658940128974761527024688951889641713432547233125482321708199533699951552611015410991848051960981628195569775903110273408219134490445799858365261050029539227171370300681902729065844300967398334546822591800648680215621041195300590380708189935835605407821959308887084728073291617289745246903291652709326924735055852629170054617875991436925106368226867511693543960341204981225452013070203710554654769291538845212715940001564871509715417836104320985685782381416308651183596150390889840391284795967353472447628035827171458000054735350187943061355729840400704384628505160802840366171694833096796852886606824998957042880157666414992224999750917302230321378880269181808815638759175045323915366351170421450716080574697920064000983425272451358200594580589613226377962712321375115822695261308645724285220174425927014175071863339044268854644267396040262503046923575218780249150297677521394549425248432871902641700052901545434685400712998289641994985130463966880671684165498643502936933805238868445874134703960547716384097400547285249769759655986157912579069040991682309739067961314446823236670993479918540969336598108090667255866132391859529289454652744017672351964102626189735110654265850070380745904198385137246672096592497247168202054025941091354351933506902143618289989422527935877218096682865261003391953854437688512207764048048575063359423121002628364805305405836778685517458301327773344193706113271791262795928552600573453399767654250791050071464706728896999833814507005405678603442832547118908466247926405875090602870159288720381722083042220729635457668074110007094053509781116932863643036352485594241518426020931071405959732541935691907259409580675575285610100926620605864825602272326874885993090902869385936824844492494897070457795324853627906240307325633546016799565581163257642903481981193524390049800627893492319446989466081597382479923295718518727537937467170432667898660128772778775003967893285753491098287126237825544653497380834753362210354613132093971118427138183913715957174959872977344597970804545178989610926969726678556454438515653840212889784310294594405304390853542297677998125886329425982544863178088589894898745056823470103068379162402497157949913543468436849845151810250100447068866376123496965283526446416206121175926768222630936060023280761592486950697874347287386371345275722193458462526424298400513910802843999968099808021483004787926895612350357732066788210019781733263352342234732210108077254377410807289607523706227588594135104805293467719212033640936249068831041889908594985595609532784338363816752364192279021708171237693587402483039690764768460713610758815833409431468715294466968962759258565449029540971590937758607429646805976392664261478158434496784587588664487781279266790723193862026755126016775753720285019756162653500326286378684535812177519726196222155936360566795339160497175506322442143184392638138111469847413204917940821324924091479813876886499285297840286452154125433666479580231090648843630518961795908580419322406297506017699266634540162778365755778637403316030081147716892556241493153512336087926157038725629664300741204071350979463888357515172248930889363829776626086029476003226668291033482692580549529362590273818565441402826434756505233259060528322355556434353612933744789889915569561742419147715439194394726366493085587009875168314618382256185660898814315386082771857595175985815938421102651369209400799303439855984162861762120859450876390741707723719338673645145882358860839338901186315406090361058491997697181342978703788483879209957710712881055634055923969547008610950996095703675329636179078133087959413932509287565610793361966053367863306997105290134818952866968699318201264482978110702901849348755825539349789290318271905191293600976990796308964856383588911958116754157690388678564753996489302870715146685825555157739855914697116151516422441675566848498629372730910271286332414686454649360094989058560244259575373030803128590452771915017543815872088389020672316266202117983718127309654446752044523447043295288042324230602685987171316947721531733459753817441707536506904944929698712469206193108740612453929828314623046479016136869699870724798079995475042596586891325043215672965871573558550473718199440588451697017058637558261148284856024216902459622302410895938252516584058352395999953635557207021732768291015721597684620965054602851354295483358286408141978440734916935057160193428589449150382144879925867741107780168535428006314922571303899289746940147438441572735483524014385236413112310475598393492574147341535893977333122852808263667340990196540786783137694693166125744043881172824338026220930941896023181673427545962307317692459868250750333410223034514608796552548904313731354263557700850912349115785040061675202200645726965715717791727162682799083396778046645204938738324793968936552782529997436675241421918273686222998298549969485069729623217507395648568995302643328404532352023210185893767515599653677723678533120756668973120862478831374708904616679276783073204772740464492267656031205579259033774090199553284353088700410203226332389842073084456711184798762087192140553104572478701968729716298038415309746557974787340014515265674721166554647965033618435577185783494210074904041088137889451428988859055628790721309158167939867524295523829814430601935990973667101057482397444703696598081365964001691091457508057026576423695557163474307833893585582835819293474255186843203808107360257970602607588914002699613830964059260665784073326029988688486244597115325123645249019013153911023505545865364294635935645859528593406870708312676418222080027334210225937016116105715759431573449288512858515036202008876006783346814025166214000390021802277996305514476869169963528927342222650819948935832572734744744934329414374027626595979155525295538763710093437629573266185703372684847823996656324536595982062294697272153162621816123949259810446816056514719462335044646690795788803254374375152753700393446099169051986738010095195594604757281351357542714560817317077385724296009641907782111529561859117065453463473400064547210807061410697886698852656342018782204050191359811329558608945332987567627519291811718331806611332920758638908020923526654001615368221299754150380115724831698525461421005082415260373459732398268318526361441550831244441916380268461386211752446730297774550081355271220828672492427146549164481730908178041579569762289011844167465990344020844018950563421450095664033898514321761070567703439750937056299803325151413744233727299945910669497620275456932409753748558001790277161772526066450377667832015770580899278354654014231192361151583033885679595856554431997727268969111986813003448263015765741457593913355487976617416521052879922561295606787703395803242358056267952198469470727209551609126561428330440312994150594813831461774139993348058907777652298763935922207353390576022139590621729427031392767795765187338390584147754562307625443122848623015687227493572584097081479618551189766932372298491937979564242063170838503854169999692784600141925506501201262032231638881303618667302895499649585984950490376320077054668728084986645961094653596835873034582189436258086461530674872405464934418285592211976193986466432801510916203626256951409816272362143467876641335379188180100375293888328903286891130322327243585671235694212457070914246491292135917956605186199034132274575977458626977761786724428114339541408417970554583871732023477587814574757296106403300894852853824236670004693930909785684949718971507072420182944174970263192275097247678967932265445694661273706904230613797852063791138746604475434722494672721133911106409322885499689317929210266679303239570310063839631369329429351361421235705226491354649822002572950819106945354287718374291263477523664010408690277692857581265548876316508005488732259876803804113013470422641761774863024490267338078597886281808997902947999181537558542468693763071967158991116934090879123171317957982851590660218030534905785101701801928291129223319344497247584921573461814446035744218737148851893168474427992594338144546939317311664168352619282374141569860717258491587712701810655145540958201443328126238948618378456823510873427768203316257218693654748585457809913594311225111686547912514609515155480652551732322310812229346552629593558400087707338720132474702997664280436536519753811328130640638405760795547225842386338505287900159141144136818717232639002632814038505493739813211733201864318976385767198941325193299544163886390723739956338803973889635281376619274093159800633851237567366014592310411757997904240588441596544916441340372078776142779889442469161197519788296854286665760459135230469255458583982869925760348258082529329013786909770468205083633603759658599608343186969259689317424392010288890801501005535383444659920794256877712585185794820717852807702447395211493499830167229721576700496770007694070790236203406735417571444039258573666190008847213593086977611622079348364446719507078697354412591116312704160914682953678733523581386986948390234830676587127265549361155422184841407716569975162598150890171095304698981154184674521495624953309856866663848613802696140351572171445624546045221772657454632028120695189125735046524464817690879542290435901763727130201217335679611841329502068096301671035327440155626495947835887296897814440821730287443274140049954688727036110086199775108182226396863583217586196414590748726159190043676409764379717443193279767962173046065202222692845347668935975060959889786704721635541218806162089394108254126339698115911738310701790428026519723477745523492253674272952969920639871516830426943509054006543020836419373176913592396433340322812390300918810180716910536911173395346339039649259526189967318879880071170281629592957829496687222521238526087781988803288910204238221289820549044975864880663074802520218177483777498574793248421082328020439945509278895428168818454812982078446308753064908857251872402633314804636841769071334921006215475149939777868130244279541455188912635545175216905515285675955265211403105493144515244687784099908304302042923775226396547187116287631070642539187172719414003727754332179639471283735002966782347117269853289983134238412151210450156455294547855063280768085770023754614343376471789721671641164109428244238333315926392412859877332640001591171427158389043827745504095392855958049548416528023718368153669062492933562015082422946686427314303296820642823252233807864353158484928915490650686448945069725128303794899027207406168328920560690114862738381434246405271338770400210662629903125068678186358920345493624545276228756708948706498337703218046117572466803903861752157697558470912197604845834096993315485182154155411183396296372350688130396643584135996990374271990281446026631997015617148149239902849300353179267333484202264651278680790277863252853271720665489799468740956022517010048921434852519546762204160849408131968936955454036023727290549391480364945729760575308526029814486814825103615353603633634950244271330062730013366185345140280796886237404123416165248202630360806981926726838476138141100104489421291114049035055795492290578278645513167519764066542032333480467945627893175302463261781442075310375408137764413608232666798208915021334894501261984018374557362771327842898406184559660821721636990641703850289959216158406998424752252087235684698376254803248583502321472134751317276483177122076284507529282707907895466280220262357466039189709486514917571727752425244136232020936912698538397590328193675432925291148833047774006838716294553440699262927433941768403957662374824459702098601629739690902600558624793569792743377885540056027517743336149195502611127782381961707819574460007340294323967700658636748234821938460597343283549100296726225613401746357712247931420713586506690256685714211093288948971444948126707401820576166355781955558953568120501518012539357949743753295022468187966453670982971618326007827469134784871360587862988511508094173557078575462785481139725011335494510509366927594718088935861085699351281120502673934078906409203038888928161015296355133482192120185857328573694534073463474983216262469307558521657369864749525500751658892894950370699288044485207808004428608888891784612599468921305908314355353734800254443296578139088388014767203738081952416411789991561207447583320852073634541964767816614121603408663262266584812078242730361442102440419618295268319632842300211670868466825254945166656696145482988921283899642920390469993590638402492658537763590748262607500797421893939149249598113501821497968459310316464538888783420984994686690723208026063363936792559762684568916231106496578487145662835242534600079939619757075041365889480604290646558495436639616865681163897076380508850222108000094748372033343856735799715373378559570281578314114360667422040827064656450639113716814970558081272288230954906854730236475434091528080546126202766105348916479021765696409600588218969732978326286072650656891845013270964584599183410430902529415794965483448061532151974726325895715274351231175772005997980361005766261278726477266094302303192590616749664084723755852671550200050423619507782015975060120363086985851843832619734778864678087605017572073389823602197898690425683168488572389240360572226133389764555822332420831086612192552289811223266501976081929028851054509893563399304067540588858396739319301515583738684968595185729692631556897258021591773752052732628417268332472310543994444605421160286887444169899713229951591293296214069397534937884223170006755864188885537734615378007757411734878438898268586914955645461657636590092628819343346388422816301120449862114099708870501923736598885825419140283074509915528120501241674924558490321877926466304552100904207881180045869484956233546667800868485184743776415356251706438799941625934852306135213231476945291210417754315368769776140785938996539243271498029638593848741450208611640778756037063885531373892769169844799012600072543838602441007363410183565598931454218024025243597425061685814782295231159893661869926914653832200286656680992563979464964215204304503840309282654250231938047462267392522349928709571211712593767354363068387748198863554038082289807439501939510538042395400628161071646843895110952531127625047437261114491273542310693588410871109070826142554902002991837451718880127840844718083122222858533503636765639953861076743180133835194761829154565676431638426585665331811287389959365298567119358145663114135425792251274871280956306766729232256246168213346309028872456799657298922292810690986572404925170381026966257279838788916280582573133604536275773658911288483318295487203176106370975967421240612397355618611425814179033646121432364823488569270860135839419338586299906083757896979557944039039954328076753627673424036570053645639902674571021900805300581609476838050064744976941501836490829225682904994112891847130121527419504588122011757282759799469452754223966287934650718183677785687422953652897390042572397953381923041779362780318181409323177178977820610432410256725312492039258809752691072432348352664907605246790908175268549179291918442225280139400239850310674351266211543516958975481154643763969698738144569135330959420391711803004634717454898026555593965026949896239979930521920018320462017797212004511209234983897447260262895759528766282996923551856471272793745865221907767668364372890179469855490442647161777652346160975471466110327234040593374283063003372096920552477637040900238470017682321180881304370497660639108539628420405322332400117289924687109381024968740904670152609249479642760083159353176770092953015365463057574892511735153700259304642538955272589034963049036497542761750868279905026545875780783415228869985876481821528002238639232846669483012544654531498582408164542027895195350501115944750851585309493698897117039734202515758041400987676352927291767085071821281893711974924599901799046113372855169588491486139102534684039223430482469365984889486442349320503287687607205139970834910080161459695295224963711988682531849803742607692385437579211709349582679731683504943970244753579174421044276430466942114683997873967129217242274211816369177777861811880169826471837173315349770126191123041999253729448606055232936170213999156688629099045449742619075275240126561197412011693467730715449793692598929110209255306163674791189335974543080153838559717961871388992636040936982913954314109964608942803969060558807964276282889588314313501839959241925723087621845086874316609385675733020983347874611995867618795279111229522088509434075244455074485599106134736648903917322326019433842451619538860882801382670042639640078198166201849063035660168108614373734377115196040755146899602281553833986000857834339832675854980481178080997501785571602605476473598694220726477120699725618734011402362304948715836538205332733729186006878725515165697256111480516413738139554552085863566836559396517483510842388832858833617060934939588715437848754603672464756022353929893752565425735223726836281864325802107438353963118123870959309025326420255619749643313989628517428429452910510294303703121226656511916822502429768564993351908894526784407923776196596403354731846080485361670120440029996612624147146220312011035373335438785794835623949808803537927425894335562436487569925254133157975162185656614963991372963553749082146957893004144814041263477454608454800548071815438018240398410092150226775619106537742487848392956671925886269315639171646320565189975667778800333104171672316027723357637735608645702703800273392008946978585634577750188310955968415799586081118686661813557788973528286616302869020608782851636449646266949617734062442329480297434708081175334642744155122543413296913414582472903721177358585846029830527993312001472267380555572114964723504246401638618633140458976267766147176431610550597208311867673512139787389043509563084759393707145372863309640269506471398166193942077798852194640698418480626813723633172296346168012904371160519752080388563464056196879541873117365907848704569278722124867898968443666743563660499549664543756404806118483706112603008548867446200488257148320064479964076878888660179281655954581391809492304676441431533300439477013153290741793256544503133857571641193712580439424249231630913609399793711558612257948613270195021936283823133006887018836890091298900005726073112569418279503920164854245469244017331645102668902804825303145249977896768296935945185318850918825978150717102680094852745060747961868312260212296893916027188308785148882070433193986321747322418789524411130230820473804717342047203141265313955396178275197184280247973580033699808918405932808453811664510258294432324065518614251998815108461735236828834743444591881188613431337430260514291104952972829661003614966363901611961336907681701490883757086739691611325067863412349031774583436426714470102387624972050535862982086585968932796175507425551387916974987852146785957270969027948527553036542434743744114414220128368155860199218105893816249547444793303125221266039701017789261542598396658730259946917604715803669619842817052036648238197242663055818016865655553904972190656845741038152341347316339443331507687100490822720170371813741902567162967299649775951424332364647610938175658031107024438756794581639291728948620838626172603686735707180574315268933046155477668271922017382815361606002438171200918887654109936551875120724324744221380525309218511698318641887720580012807074227232850063846034378895218542685342215104370634621100588724296863049527921514499370485032960393069275931628509067077574397489248102007785365022786968855283705130675775950036552860677863018415940512218033155958958916343076307736005918876321523701963482914968427647720197857463224000799442925482313446836155954156356799032507510491990123646244704135966758912602813638170221307967575159077245411122003723024995421018449170975151700923245609751597029949948435212175076150796450832389522309007723409957177357029344989501047683692756098515627349642315744957437097510878604524020895466776792772551180447669077602192295762466731566861761982832364068895584935413178482216040838063872429510057032794852995453930098341747813292145896166274664974808390784797646731649389699284472553371341090805944308104960715607663586048358969231904269146182389938134799310587815499578229076661115108210743587296218796892770393313133565135354394818697993780148186227218486157950015845650736042080948581699936837027230656439594409845624884890920767847076674722649467185420048568595253581457491746987003510978806878658479525306064131605911868192772409240882179831544076831413071216176693520952784689062369630534382067526741298413769385391181910748338091313992928414044649080305762335609520688714724649195302125468188166346755394220391291623348820963453323264959719780831091822575539135293342951642374711112381201652213145489314261167639355528751919219033750548724153174280000865290020452793403054034591971380831507166331162937254196295831485133359402413276839011244435518071752251182699136759020368855008049386553558782597846563955001185695524588491849820480397087746929630570646878974793528208702890943229390020282183189303386320620412208883214456619727306159351262859103799114506347278338254420385056766662668364628519492604169781996580123279376676938063768443423347311194836839776328707893402697638067264443374280276093100966857224625256014089500858696786050337990995943764059904974172639411996191150580762109924734912047377670604396934005489411466661125422539837001477208135855804761434220457149808132001700331585331057131264339804162464961181278242016322840058698827417883517079302908112593191580790708657340248665085985639897057908431741654157323569283629737458085765710338506569199840328768283052145823516854062522108254378696215455740731498726838225069325024741548056848318225014434411207844457195730282151578387548235033931384137529078812812165788806619179394421529607361756087688270731043010448260728609351092650694580886918637617138122147457907226032327151479022265257548161707180064268096748095799857646577716884264348603682569316368537280781025203324817539028854091348530971603505955004198090470645246110344170611169675104913662478469887497234213331699833627745024795171997930163914262256082204242395821182206471167587270036921288836924214612499863759624246699347432565854170986517737342142583880974014661107836366721154715576955937825810957663492533083563212859216807401458685116550669221025733819290251316008909854300997654940381275892788613070251545137131808922518146694209482622055884976022981701743479200813025105324041962677110347068288763692542470132211530884685142872948490156481235981385991834376468408420784982463829264262121409630934538593680207780157791554462393598359373304822054486849639717439518845614994355440222589137284790982697555156525243463797552069521467103441568107315415105028774473281690240583256663647588251960653052780511107978700929572086365501865735009614242904731311368159066539514694898507378721912527699782610018201439168029870216629588392294807296273270164075538458902607175552101881101387107619960906082587885407835691806596459766888580919425758616756644239979384422321172241499985766944455312671618636428470468724686489914031227084572208042931901171671636100054550378373546429935434361544313577822981386710162630926429578047368319820633551760646758071924553093831884625261077284707724231816557502512315557059271101351964846534469323748898507091152525114900735655928005565165486882629007946147423385451833441594469127219923062237060168665225855847908299406912273421082460833579515648772656326573407211931804311045763671863310007671217700408414236685979112644008211231290929582465457884222002784790898052740329809980196866400326921091751160993083773177555289775977105356914595781295696818529278988290767678391971450351910508878966177636770527430375019270787489111299582774369805832858395615758603051030437427316261584436218752245114123560806089699219505237706712328029514900763288535857571684711411438687210537746933745150435353256119041131156955371987311682381825096625847209180346764291780752110158117286178353660993807740673458508477620634224514104622699138781437650324338487634609226180355150894277395373649666305573633290355091747716542610148599841605479155009708771922658211092349458987008716059503759358094147024336212461476728960859098902132631702276842109957156995990286794725794973529666530218074498487478557260323859005154506203174308005108938563007029839611135470306610698335016303206823955066905644977058410582800336060919310305075557123450027674552432270772597046978823873747842548548741605041593854478138747468830393330456749132845962781840830882131217563874893224504390364795322664015275247811424641946133872001252142411054536807051679648505678030856520159291617535680174482531463346350140608410936153286433959933665513873119413178364499868476705986317543674788344635723500125034380662952718625997362933921162178156599194469797886840316258429253662895736056031570057823935837902954920363191180697148960439986909565837817928831758324334045553887316143605452805459212503707171205699433591870674915643433425504394120745651181387432857060889342980478414512330174504415815845699202862752990618262769349492326223393443495913326739385663357137210791464676761208827164540016483584885927502168119060043761937023028882873617557592091028420869291308525957950245516492486727713021902398996050521653766491894219194091029254714862135395711378313783346486058121115369265706931682327017589582367148276413191536053140287053282604494095640605659851047361181756404159257467594049123579844240638412874737854920924211222886878380895430270412640972537299705180882702058484762760052487712830755704221934584051939762624865236015698718537979961279271470066529371999701702769101346830845511772927445698322087736794750251487147710094869325148000294899004917403544987164947716445743611846252188651074186321501537318993192009803585692050442458457643125998274678073816089721174134062400876084757896596918790143069799208938857499275651870825491228500694634665030365145961013542311361576609193130001352872616264320791658258422998221529755078033166906118640641706017311773768033169909171353872852674360401608478755846378383445525194222179793628625445614189659573397431581486849799673849802851197839019245446268291172857562516538671621191326488480756737426465553691703710753539632137035966449180577282416070619743952391754972301365283831428895730376350402041286801982976822552293340260804687983085960040429498283616528832255407245930906060802453536550698496873752125644617502588858003728051860940488172942947170145374677943339593581653587593079375162188298643386071720571935557217731616167951563787550690119402437602253559483977836808220431099268329278389001421839836160696618089372806507960086561091490281728346873054126100054856448141097801398431480816001624820268808289186665874112814349892373238239807593922415800374755212402347061004412605162888521967813924654410677849396811864376340448441104562714704470372046171081005664898231074142873928877179414326552441934189662651699668250330190094730405443522178512889075355405070932897551694637572622259473731496631401470568923178882261040311062782056664199718729434366774048384609681686260246732571607044170914646471560097815095474856661119855390440482940503037056859488412283172729664640454240353893903812074276475555597311349445632104357442209873523789708735752987783130251991445352735761793861976502652187063203209896617495594253247149402946821200311663556307460091976096745408495141568955918414237251432797950806534174493477736214453626618093260851978534368533011217107788893439342690045338373350213267572063993875511798319647585441577532058342461867868243785354449093617613182446340301924865542038858345345230754198168202108389781558134522527158027111864857450421125754927250439631211362169744863659458930177278457391602204626372442121540743079795353792876678058083144861653650152165674555918296010748420673347990985916450495431852974432668473926866152566195627514307615735972166453542980913650133089072116651787116369080481375320392316910255300196598687558092264740909629010651885928831251345620637465176585361969612277857524296379309361035384121411013225435611691347175460669670016915647287351089113055237818661707907199209472988574707373431614585340401078283815393186101119835344848731189335955300396578344747559340837969200456885783696627639652124819926831857247585534128354619677708416443394429158046124195225851527326354903231749316500687381762130934029030311370655100368033888392663056422055448706548525381152505203176151471342554892752703713692473052403122991951177260371175990942949802722339978853222702079020534180327698598800792448936116990967336493089464150979059052129354228663099817101045600527208762310200348999869224759519917830092345764315118771249264798792669998542869602994446379763171526992177133593962055556153577513963293552128319485654113843631974695354703719007927729991362386268876600089238883991157314293364055714724242424328936521336721127558148089884646010632655922503554842832253474706264746379313714439151039875879640902541902527147482621332068813502367656686061342477643317708954285557541607273474042308143317235263649062497961489972923861381876802549359250938215248358024422381548871060266733397589254419934957573334246881260495719769672489345552917463575244219832166098093481521995167875324740164146972527737783872204917782917076961103785363823825595811511357228269557931048237245727854818805068532853104963430942786708372195359695796460201877699651869568175132924578359740320925197949853798472957768283915644461007792308520442690546046880022627557593615201286121571441062355293424768360584719012113821608348722731258763477670578479009385522886717186608224533298908422816188980313400042091159041274729032122522619146564939552190447869693543497747278741482568177640532807254922527839494914578717923763299653488821227704065125479738338955349669441985116083467971798050467362306060438115515059733011128057576580701533941121382455381948657665520593397069560840109107134615742708342852622511654933335323688416031976765881682131084377764442935916810606254369628020355711658031386416374763560361368479386228898168854202959687109934336505375412914844502504220545527126035742304315956862668356686584631819168525297339470441140558141590611782946297476247298439903546308249366996371631380452329456040414657431773486446315127352616870720765896239449063100330416909993693875295838592315285994603346817501339179596695814184423198273703670251267508526944366938148051543150133096348479922855493601950835113731672248973862154227029127261480936680477679050406938367961763893623955022509476541420435885781733938165566251648515746691959042286974009904058424162551035164308191006327643273318219196044016184091456340552455380718041296782913886142075943021827339978554777653705202980079558042285786913026391638588530670931295284383905835809679374061231712335206273635049947651429672657031501717932564651031455275578109169587988229435389309249143434381287407264513694178020891392514212512612968194441693179409369400290297559745124075639772863844241318225419255761724293413057778778308217145448204148276700927340560630768142709578957783245225467587634891918759242475963545649154279601488774936589136783115161376529542829909367803586161014646755413973844717031509307619522026021749734572879522537441905972257295927400483763653907753288499515160376002472929094774656176019892942037160484438999177781666892444172426428964845688082663212552145020212616844162525251276114320604484051002705449266906905269520278876238509258862334477241279556168671670293776197438431501831157801642905657262606773249680940223041463729407275130226694024980008610582019478404125062082922156156145136453072990767068721532720699264561504691483860564044150374940451966282030395453989014083253920685283918953269816617093255799615753974089754252132426112356221750683018908472557452624454541866500592908627586895263457002823067499348442865559552853514617324281773454631838251332048568584846229621126697819842059357554264237854198655304391824558423078096930911709665953493593089403738346807474987973900775383388483052921889568993653946848422297879410992583271217186456646507732418906596189160190480466881584139974696598008817087738011364487481719460905959977179560205286801211940473720628351955856094160213349802450637065671150359309562521630443862279397898289843320351806434149232841281000988026263790425746665444899947182374144936111709799378721518736885115277071898502769082519467663915446623638120717194164230504027097186535667556077251832069790920529933064349052782544671983404539441628219387549338087298479044429905229496696185737343537243277617424211670065427643473275863656562439672810546944975269731591283235157352970618318543754428142505630763804514666528335936164690551171373683386826868901578843965069813894704443928852451620033214485541626407860950966579555866054036914062591313996226070676391547435771673310013304251662771816162218841306243202922631621323022488732781718235026445001427276924661215128316714355014079144644585809060183305302213776016779257137826529632541361781384673105176968301668145699056102665093494666122097888837774325603918822628629703338783135955248831584337748390910658447753238284724909128293795055717896409301118727895555698313892835172836996259329110953588764140147757129310633279848532672276227579672590098838544575089950292194036634038271921509230557090646949612111129898960179224569477402198557466232015169105306731656694534987027227790160952031467706564921265888271537010871632692374519190693691599505598298890201931482096179062101627510616665892659147792528951681899556785870871481855400332856393927687788653252360330579611804698947436109124881221881088622077352772111109017936023487597816444395424478877234162976932670876928725540025800731354315962061450349042616648867097719843129305042602832110483650843584209798266537875915896022047393797819031986986486582320138017270707084400883036068137433658598952897508282380515621741463785102386705449058998899632253609238554491684118083080784109735811408561931593311700901522036039924910183542457590432207231356924643510116073441253410751826684661136792158188656457674916259485581404806524018439889106124893523956978572394069163522380773972079572727385699485831408271337255861024275050750727254000283859530985027150516541440868479782036369319377380101375658709630134541145366873518490442956673809608717192817839991246687178001163280062323439145385510068270425834333566146095271515871225568317280735866619507447810938870818907786356161142086911999166634446768086235114367997499687101254578550106387201196477204668199051677359816821073250258750805731127372217064134076552730001633332254934202857488109089713699109242061976662517949610777194910860309368152702793989634834415316408231067267368485762712274464259189186188538798033129441515619134323274296943871998042335723010672339447171073229542834392410527045196428625324361123227465440946932203541980149480016436478435313656712981825951298035100778829406793510293438433467917939020162422936260009133809716279092149154438339581172715462260061780862857982683304913203470386960039152462410986136815369178507703395996851803691135430838163041102354432096864531950888248697378253660737194668357525218371113850364947910893014882160928614630741890390285092639645319455052700503443084206477297506319822218633329174932098238330901211927797464664955282292801709110480911553356349097409493045179250462451227597244849426305083781013318417443471245215886742485865607406244208575414062298283719887094257492473485881595721974627242258196416791511743673483392096557930011312627209904052060027314332669904611626383665085555628399423225275411540401030462672113437126588262587919570210213111942644945424074259248810503619274679433098535928168616876406996412151016611573849212803287460724200914088943197036500141111428682067785026741466534471382372109118365243052606664982632172056244835347354513594652804082905799429223228284284092410240949169665822547314877860933574887813956410903581148182100142755975322923528724367938463449937498186231836578685911930215471895959861786791806969912556578849193853299099283980434795076238556878169479653694744107515409378377519292047048004533199153161024917040420029498793819676370695259083630761697713929738595655356492905404666828459196040533680130266447452764552880034690889710607444158096167463368652819339150927958341632594380463975344504566729524459844960163233825670991377580860998139079568873713723624322544561408504558958688364020601834311563888216389589038961045509411012796160489633629142925116597438538870112740710372155417618390645820782790675622973261829080576809972041077857317039666681597648546027981525886616031021984068335728761858207730179782258967342155468079078387864320851265448640272464559022568120799322488195568660825096659045779913731453146172928990743331372686565989049249858875627706689473075442165220124879502637640150359873822011922368610929409547230063227107858741718792919536288090385095104452113455876506361790516190697086195410152554034841107643854351058595108870034879200073597706213847816150223515280771083313844951702152405675480552438988953882029795013185160302223410401160353060262046448391175115058539415859795245475216034813677381931630633676675540009377563546656179948927737634144966158521912509616247998760971040450474228850654474993140668616423470172657716427117192081970442380992648275449322546956474580351957530054302882506160145633887895148452188523786112136194904659088092294865728504355475188848036870369572098642918345048967472456366852755670074445776229098867723629093806011230948863091901894342324274452405167007835455296487549235150924109400585796891281629829696382032797349394670019369766886969179490107081514498261364797996195238733310076284150680919250565774588098965460704201925421595037394580587658479242823690444192123771294495594198374565180061337109967639740220763423168785255800962842160087740391471856773162446120173166168595927190811331013231603958677705397243259238318790585637590586522492069737055391560370075435461469168730914743540927821920982451048973164971370023673787324306966864344681317264729791900473603516896762196259757918544556285685463261294858810555088375895094818451811509364887199773645111568663121060468188982440062103123423760817575216325941430362362464830418054729976853598731893155701487671677864996841790286363135514097928412532103979861176852745934130721910101171037665210527807822634119403160292383289935879317068198766398302985016400653887817417571018620655215516895842279567475208620723823431168931739593603156999412364424794208674886720132245416513886991844434046795621602861821958616128163791594314463648825295869295389099148264714620707344874938195530169407045900592200128205444512706158898462588169596667456537839587500969870384991273487785248781796943109791433119539204646106159174368796970137210324128943396438132914581526454262750830971418938991829496584083978907531070255370977312871213246037363258259040697487219586048922940409734173132680681893883948361077307440986827880165194276175647502854484987988383367954756246143869038833292091186508241976408142362365517345622563438305436299380591734814470429095756215510668891347489824648007748852436873970486497469198758482459435316453363543409999376510566029352630676671481533510279650489151116959310237804743118447745462807814018653597805552175950333329875066982342368193835095580509521041841403155395632418813815144587253724209302867600879574224340164131200380883766997027828897374430100139150428727798200324861282512560287725333373358642909344510187384652963266776123404040808951235034933257856190017437815786020032944681181618073317271312277022273572483829002764901239970641022077661887077128500175935473678627501191553807244168324908919229057346010269324453858839033606296169528383378931266101902688194913368569334710827882313984439964486449228638133722581523602470690009966501178784853269024170573883620959318691418628192852352620028987185303434860085683289266034331987529469465053193356245011435311680073527113454702323125215326822988112498488574552441659388625698460538150426121614333692513187490628788113919331776754227383697339375855670759883948390847859980313114020852257305536919280802983005555171815308548971311882512994078672667267513650180201933583257157853799590451786473064038417320271916865482988628147990425105429718949581081663030345964695055090821332266822449474290415265208364682720785046606147698209296659802356425562194880431309330879595301324847070830555842483652991591000387741267947675669421966903768954268905722258319568154453650867481557972213006706886987295200148656918824515933130216330253716335441689174382166944313132501421783001773131434203271996181191931633914472575478010553031118255674044637210293164948449897504497777803492361500549834911046522188648470481541579171884803288427732773567462820909619391051535210886772154773064020529482309029889642640261161760842447123197469492725525786900316338793880235557543661271609748460187987132588382695190647654073986631161424277085965996099049507782124281193801898782522205699282194585219549373399957389423808150619694327325337682865049705655290958814096568587092624321721983262876694417356309667977924505831646926316959492784992624525686486035325680223648086843665611789097864171864055577452153079121643876087755089985839915141228403376221813148455442045503076575748158945762427759909779952901723766794701651637631153237390156458739093542477546163827604546349348187055878922044498705040955964813328079316002760609496090866798223085865578055525505426112113642161488953526467282219714596629337143306694378548299548557172972336190836561336762694918265828130046590354079119386831388358242892498670202752052616256842562902623720204800131064758545087446502507222871615887885818630402924501125214338303857997099656852099717576507947834975200579597729156360975630051071761500215680529514312681404954421596678677199919051690271788457166602902774249411132025126990667549108219359594947723491738935527160324607052604482636973958033743029909603449868242663045801105813440747139293385334137735332841526842858841967566557677795507450632878677413084483400215453128320231835742342805143459716340938353022120483639007586791526304275544710391026853182979876606713312090458092190557442264412888209099933320950080604153756080914091539760587714975376832679042433975883646342013039535866640661140290270804287623406578763413019143713217172368363371882430575350521867948269431436671196120638299964717454945151648296861922120552750890044059584774149627596234254260148362959643664588087601208385104713126476284671279893867157232360590077517846294311075886585278583271406820998718437784090921392904987563364836125500560403435857478818796812778314370479157567494263243595884586933859341926806114795277764320014098383104033557026130642234303316849485655434292345211965922484684272770021453455166335651745544836861556695559593593820696533004241182303534474554969321523531175153250974187136529307063947794485298740011578360736335150728996707768948122335041160654503617187527388681680848117412972971397321840885046843594530340134146949371869205968860547907880227018408462411690173116227337379069259423975683677309836486826692776051689606514031410391717317904078692100228238181975986535149157538075402159581364201953689491229691130391507939317084804015196701299497767635850548891087640925044182479029343575761734224004503092228184168788933305595521853115077928757852941324798014265628162966883112825385456144691874851882756978864219108456543348042763071493227488840245309723649883941785874003378819816153749191870170325472767109874831265088596903891189407747227258192045227391013161253160104270802558439550736648221411647868034201498451952486252936647408082974647956897734019833698130429314285433981525707719756658581025477854730380214801817845797317076599079920269589917243078259356547975592057678988872204251532921535601322691193534021349420533082067541984931543467370639499265558203787296503338206209182000379932266323940692884035985755984298001911782562742036218778188446299306950265016649248011422933515653813296509234921820969259811671596963125894640685429407006590011428278492581085962559824809716591119396710939424883529202030630422386505831927674980503389522218867000449396654824125504504493244663999880498427066318843091356993865060080603866623384477710334550933182194447015018090057162061095365591949717683431725083987498362580858610649512607281723666038444734417814163763225051743278361811002351662295655680822742431658832403884531497394150944249505658846722993273035493584320852153667400103610622025184330186307980931476433491153405386587279530333039752023936990155881237441606452452258408101097411466079102002104399210462285273623884313337607987815802705566763994511611884892891056898615401500378951503567195999407592234319815132851328889796715895781526872408625914137709387607115077856276387395653992782302409060546009252742672107756917077293738193810156851617597134945509929720919166577899357159380237822548921766069860229330513942376003946257126917390590691333420963061751440086550187398462177188044221237380729305184234032291451170289297571216194033598678534617397187327849812071055775085386237661031869552014401668237475812325923674685128505408904797885997661895534036442329865234958599948942840184993460397723846686434623181608925542002020752469493950113079709793166293116838707101594181134820573499420358512542543977073723891339164735924338473368465997026392300253273305449483723188509075038537011390357179062531805212602437459952774049507669188580220874045026006213527309521635604767491920763204137586652516819741063867710669803669859473684444308739603254405323384328656160027982639423536583936482679306333143249181840217702789130356154857964077982099490123514023971874084701124669506703274749088116235980442204867872787539089815955807600582275734549548061625481661861729408213763722988315460765391002491353118867790318981663899767166448321711127947953541096058847261394708039681202873608151757180606524724028189843911841619980840305905848642296053036822413747785486438518568762186672466987507708406940478328389970609740144086665730129271828718462782024102846060047375470880434098590438628895606556360335299927553177059587848464398616223995131358793790810419488449355694402196551449514761081730344551014562842915199809803474137293584795951164357704631327073415653283844488183166727309301755360017718568816094079118935120557130448235694584261827149907844586533486315891725498209736601571902220551885190980031633929917605031388942115468777545035025293797325700685992071076690950866160117364623753148859761681568959747501678313555069003225164439662916617521948307691401637375505220160033568350437492242136883638960532394955448704228467835853190607268546401027320764365352045633461653115708807724935222231707241533560918006919190379211585333126558877189157344076174736394583292921210810510344332350926612774822968049572792127194703506508181702282383843002088674821659045106913614552564475993123091216907461471646860930599398821345236808694394453678214593290577185263406197694521335657745228500144980491760103300803237810569414327039406459086129216329796041175361423157724187393605518269801938620649417916109119216490361552048564331652872184230278911413741985234434000951125733046222136899751768602741012659018808469798000265006478791445841913435880287789612043942502943652783595147210439096160556310599923989440460640262058272068491020881522126737088118347788736848953632292221098220461282386357275291745998782625035129801605320441545428218486139590928068423220761011333252457866408736799744469901622804249729590258564350442506220475834603636924766811188216421357465107115685583884619427919234528246237163303200252383949022290462044684038207287022081103883614616817163033613123429783878389383960788676913930087546492489484224964028614447082500151100276677192119876289333361355734455768463452640516866497973195153277417797359809480065354555291666936251718990123652106319233623045374586175344155454816625193296952531225374748305746575284958595460835140958102656575454341637030692040748593427696675832419797455424751293415570712358707349704566276438512118600425424887888026508939812765615056789592279683166774902287607345638715322219766421250500950707298993271938459103505784451274178504603629581460773048466358676720325816401587712011328632428570303869636737601449140612299452168905904216589930853979802467048593897124236498407138066863428491840089448603191582168783162267873573617544908936047317151536752710677834514290263141065168691341666633706408091495368998516444042778312204790789707407239241624410949732505809341468627999620011939695885077597568588272278283930146927714239834526464628720655327211084254871320932306361140852118206834903611822349662546807699969311322692932747161851966222034190579848866569757384803583574504559361275628334993623337818918960179151858426816677481044997966862289529681527423205253058162221831705993810990228354398948095004206117662443097118869685363741040289198683184772810329152149875651593246991438320927535920819205257541134652327274727735370644290767870678246019114582152927992894540612452182769130039885815130544006034221470836124693222363043923154247785235983763597042668597343395296867742143988208832139393920868335619685972637402203097367602275248226058626402591443354111806008814520750603956379818472815001342345912889211832392639689221595479882269630110379981538051281726474131662043444713189799659099683029075814232629829232676325436879297606163239978399980689651900593306819108802400282175205830895765000845406435546485538305103717678755817512970438379976993217117881447701790447809499192839974122318879436930944296718408747623647288095430153676727474432208943995255905618783044584616651455518511770367291544550230901326231563279564978964791960163063831934724152877172429178758378724160174194721865751962251933428262433994307174318520033768616338373809540017754383455858204522355124339580748039340805668614383666042145472179725148031351387250570014657520278435733198746765900469517539356013639042327525228586950476443527501360001324876018795292299313897427466125141979351828162679569871948823883420915340272262291716166684663268384106699181004021628763366922431456581580222205071556999066420458708499753444862758397186431467515952087919864147930880158167684637230201617146805367010852314800644214424491932399241580422129921276799110242183557037599396396195165757443483141796532226803014565289696448192385068591215449686829340096152557454471841498756021451310849567251053494891652120559245842942968670941109904201982500456516040927813909954835369725113612018508721774070301233032809413610313317918603785248882261807356481718673997627114933881531732047801387427817195629155890584038098398684998586687214130193108344043846044946941326914006639755442272410520176270544319603851059099341053423713520251751866827927548238909617061328878579722979699160576212575056714028405741256606749404708892914421123468393099470872429319861937225691137261862946394917374300440125613462940637569640965498548554630301811020298203979867996350584484604451559747461993386914763399912237102675487132321143852102048888186426760168360133385258215215057823929933972281783505223031786666058505735714981207577366174753286029557323146439567666568293748213977268457573487175178850249748666285816334638988736775295695459624345170894156690435963532106231967971708835453808135346897586521743704694442128413288567427938752397084783139988212985356051461023825168498463737853030000888990806253983764945375081046488149370758830796446117045014327927947780212017400062704141520088164740502632395270875221851830957011344277986695611731406989393795432979062664158486257896303793835062964591294747141171180107214432460561708221663551649129287364825417022448148264678222157683144136530201433593125225287271177817126285007814749476065944361341676239613913683295649831859878608112543741329594350630886094192583208805431027911954870085647669377002377479470214042093824785477863815649921425250123496481488455619227008454960919607253779754386686450114225079882569609559587961625816310972584359109162684539498062926073318292225535554444841295039714438244870652786877618474067534666424101520107840037922924125972101132504079200450695587680001541211715310627701003608472588801323844684921692862408670921794870922410096654611746751597480399532742495308829892905666643501535629946608702760437120056298040743146124059982855936603595293522177089647266903871222635237880727070480538175878131124799252374457453548423981890849302556531760160765908719786278619890602483047517405554997588074248285180657288146115491310256958372735191039113968777554830220909025886738533442789316777409237007365588759183223124554706706292776270005938416719819722772412199589577735299497199010309855129978875159875521210500968902982734284465113771278076302909360711349417016664405865340784816988822613257773457599750233882121356012828776511362454211167761204237773745136054391936583505155167159341737833295384107825532272721808807960009412023857442349371985135890235121315965381262319554237326265738824872686311935890352763032566249710323777941017329233491038803625111955399212088904220187964725089944856214740465001799646913273079929336921177979939507182929668704230329551198013359391349570314643178264979720389190978322011760250255664568158496525250565953406027775653864096449508906737444324757534183168352392580461604496667190391769615694753266520046451869582044371256646203144267859592035556699523846129422625491233110111672932665963697868758210813737037262589878740572156021411817035328896575989684770332004568322815024796188229938253114857814859459264987261141503587042701425927035815895222949935963803061254768198077500311741893669249056312680153298820985421604442295954341417036182140378893535656578391917553859453446364924403549152635917144988658942487850846537303095595082887388008815280840467402608364232103645170976982142231864633907869674735041549577562293198198771911814067574469874234826900849999929911223235028064102789779570152844634349445093354642553335019187584523142472407068365714629943695181599803897878705020202509020637792776340167235657272225554623399520481814950385174077037955079955257120915919918196412991848674920741749829330640207507337820193323270611746399852525557138250541475006446675263667026097924714775606622474112464059005724840007927284042272050773334163647370681307355394531328614342201433809739768706571294689481894692530319103510340472940745767973736074542744571135071319789295913646838935706046340200302014591061970340067564587967388239382165687992151368951231274318690597263145677739214404531817168739712145515223606869177675321500554271617204388355945713656293891188120175293784655453780874252521563033799818565195984634125453071674642728584755589116165714648491851789741503948285170548802794700978172608572785061509813173232694101537822985500234623750393308242056559771834202213987671362269333829589236523692914594165467486325545497530944134148815153001973918201166133839361387476614076016560064530714097453951954420314850595337786025361388635967528467163059780495881277582542176982575173960566238294857605153206065819773974761092979516283802978077624193965467717998039457129929889151506019653721466069228012988914535895416222395397420768797370324176197296573198598656633550261112259427143557448724657569984048011322913529538064959258155856832311935239727218992399242536162487504094171555853469011174982158563767792666345160663857474065556100607404241394129300234159880353023693241513473501262703600303437583074645165542951864480841141814527769670097500068824134059155741121782882953661493311187556908907696864002059779442333712818727661321771356547073750412614528235043131829542962480942225303412114888507368850542763740230604758079740417091345058340525377597934055459215929434440367434404994847321091870134774806093084740565600527104842155137753659219553152033911678510573354570362340235880722819030774688002389564212636429372513520255135307082068637444150702089979910858114874565383216990834300544488173731543129806396650513096236588506557445983386996360243836231933234449899131628620705855314983900741291070962895312680011143296101854933342891241428677481209363896250877853509046472062689611516072270368740199079575093495833323906138713356922947931920158434470154861630548454679944512632510779144773151042718926375243210241296912478525512995247257576386219384155904009736795961399736276802172875091863819176321430910864603575097928265575242428596888837226841192429150391801649498468118914538058026456392388386987344782473524504384208696207188499825884674235440912835283919648963911899889008993746835509478532941140962672745282131052263181139521042000308226880753326913400181705559734319162278974601149620704719235614600962548332115452884567676023434570040727127804078534517380600645514036366255055545302460436614784550233050884623612607916665873086052130527053892391544827389397902756603717869322569325340913396135997861773569966049706360190891393743255915762840931803285751402484477591541356443564773881867838775617696424181341737288311902814475250418444353908459494430542492613671537886975070593532080566724007796659326809189228443787265796433855473957237629698514194993374575479647600055684938642081418415262977967789432389243561702285008769247024512165117421737623181104034077669563892314106719518649483625811037646425434697072495618832585649622180137201707441204988310591627481832761384946264152218878179518192960256953877710557056925676837304432515679392926841414303566998504539160724928275560513258720938737881168654830167122941902487310408792830305782250514740712922991813956315945579626376990676389835269797408594770849071267072880101853685529191726511761527363493645188997942554356368534812266430191971279992145144488290092500875070627452331015502771928054740131911164995058233381953515742855561986743002834463313461220385532359186381278179572503921838416005744375171018308225723623815046499698573128200832704579198472838208106842632989113546509343395577523749590268277438998769913859494236849520758663446896608137894650231741346774443061845818656802496176142577742094498490708866577355643825256969347799344826682871968572766678761445549513960533851912225892089767264435276943785925183052752510203525013442291324698018875594970478100093674300320660346783474958647244931330995564224638806400306522006263044187331538517452622828564249004035399120550290919039303682809329860766402509204378755329634098114567854752861597040998740724949387446742933542558729389708617107098088617903620830386794661315414043980094744509171998410709343415079324133151194424528588297743364947955494511284976941287733359739427298420237482478007636009513196114694733375449469950960583035492886659609465361454497889246600459248989079011525021063428917285817815875669076503273509803391390902282883108299842763437636662814102909223133791138076953600084793078809213843665323876102013330161451082959230141514703029327807107348035373965015707965758565923448511464446600312082516976008145290708065407482347839113818373951427599936577221196239602723789191555835653154506708062521971792823711823453380186338873982323441099370023321666914026715454607282648257923639507495250651341632400325698710419168254660601974415151304089530528413087638050009125970084756764408136203716880591861307331605396126021318658795256599769078491584766252769665037254576436352011892368082522921998162274001306629985416728621840582564539059457428976362792207689638845949997210832913165399878889089337034834555852404811758417138801171128407783517634804918304787372227087583310102172192460455213330750811640497582752236297417158266435089048892386167570621085721735714346125419155090826526400109359937440449957398591676298479003226059945065411365637880249428336059447019071608757499402944081343510685243674904792893404069121251321644298634857563574305887017998007404502098428975654995549045699051760255036375544378012982721044333008071653627507967866612576798746905619947326561821119938459388699987709571150919968046348486362060307540520914842633448723692411346076936999575874827465480844899043892306710710745375681864555591857258423119391526610599881990342500233732613603462728296926492362377590956145994271724007665547278059464453658881439390187683985986358606146398848967250740624048270350848054558476054971333746895099035609562541617217180458054519295909379176870433770838956240501797999821493686037792678484974986660145383094389696503495401748214378815731594270301592360449125091658919459281255170869656436518989549632947638113063507631444224487018497220398139864362336910789730916019979158788513798206972716846209058516718989392853193568361152783302910962740675765365906756782557920345436826192362505883040438122412460415783179344295012615581507689728372261012664190313339011957166425645766126366085440200108858802202868224420380949282262385477861529012365584032239607883187151255940136250262505978430701792249781736200456172574385575285995057812303032358840876088970521566292247422474977053015918508352816070785897214997107898520536809978083458716159820360502600085854394038783724604182283267030269568355023473131294857780811294251317440912010647007310268412922191047119986272979291683315998827781541410201173874018172522677285687550102400659921674265054453899298955043820069260778071017061754980686579625740595444779412910838917812886125259008982948974302360243490804495193943723987106364349251710289155218596658344482243195774290238562585463079512422866981426496208996848177783477662428886180185408078209381034017275827983592759014919713691263058744616661571859082367641654096272790870836641159699103010193025742818219314955183771725373348327146958981226144369019909651501126145382691172726785751208244303173457953681299800428403836974286767423567679592713806825667143526365128406578539581477100158080474435295399874204394981089280503559988041530969090299260383141118684938183381343428970611037337855514670021489429209344209877039995265622275586653352213881249205929019335705449596831567872626969019892938205587832708638513381324215362316267636825030373729714662100715906259633072753247140581919469876313288172803217286114888091669840966062471764371831716100139753542042112437041867379815930360814222930371677703480513749223132667582838019426878390869542533367081583873292161133331814300412936116751738239401426256039194052004297933570375992475411776383741383686342993394190535784682916405181036192559743026474104820068644079187858806915928796135839602528019068736544785473656868530559146639284012706530730922089401833349592868212242623827850230384415864565197395335611849572667729572639795396597114626833521806271114418488835403296857254960652638563256688058113886682803363408733142204782208235817420086868027648514412220713614939863484127329769082565801665599036199790909060297866847615894518090222753465490152986639856081340470878684006329685510155000215833330440295030428961752953232996356481216523133537314450021786523855913499112072680770784722024167352293813661138624915942641410640446148760895314786406746224917478115983341182241749310809967522688967206925398969794134694833583497252784417523331419024460463278376635699137025575812263101840406322755476506448380837486692209193270604943853517804079182519956046852914862082479785725864020423396505987061417337729409030840327413373277249925641978242427945931358801247708756944101954045517826075107215156587235797957546275004708846695055291899624229399597109973983544823187673059476589272222882479780971794427897342603269146927321040110895450474615298177564412349269850441571851369859079620784709708809753680789011001607938210568908316461467955733227886116620359105291026254189493207229739133191596412206302772314524572706773347965965531985660880253827700675113041991397103240454917404392819950148196422084782083135259809451749036977241960606040513507877293616607417313931630209569849959958889641068925419070217087255953146545979247603630938656387601862406188902983642726935390379613240966441195819193894380876089766201624075810871910896634043532808642457944585445905650787476297512237779771713940212027240803010311197154878175481685883539269577569831556431496514812891052745106929611109106546162501187979943839991742378548976654389547144647607408757164235604945516176342600304554085704622310797270313004742813981718269511640162907413783315069106588899004545905883015849266669869281969801039773712564119664987216221874567550302917076412715137822167700424024835657032872516941955752476067400687473805002483196927601899532029902314422052741415392980896230483412218494138974704711173755539984762014361616905422409997718263857494663103849587617842020575437573092731045539065171683602794100425710079585482823421739848203491865023988874007692894353942547608080534930090709277405334600318005822423886027969819398070243746596514821752796908762447738789080959416477401827399930676970170262707769101377991925549842189676729377469383002723831612818008187666892085453572959647488367843083183030973079476462804523119255853529212462169676622951702080671149405432072458688310671850870158479099208572287316575556896209733056683472874788678258946698664430178819302840484791011489193919653475652945626978040050585619299316570676616456491533631585795707704710377712955434089015353693111094449346965552889639585387366812518038240054997729609726931884979980456876984319443432424217883409678113616632755950501807220397384533333935243697019185791502191120489914692970664177151316384538622634347629727885332702114087905479255515471794103704295625171545161649996863664043121841866817224754450833866801077977418867027977064365571009143631936374209477981451575628178659095000503661955661950788075667556876182017575474032178835010839831520630427539245886381512282811604570458688171114920102491733371055651955770643662094170369336369136439082489571807627267881875018650947339888343773844107459517893163955147679152690200801994505908919149511056805377621520897897622688212953857516270418307424782369627710160023324332707876834952757306038373253555406027234095287769067861907097605608564437499585901042528137377072682718771124740047141075535056141643893885574521798584322558039891859581956830600077704452752293937559901579267379164939750593824262910843130741831277993700805464122052027386866685860264833682221115844313383445878767844339184681470180055557819776537223949368714354707699683908699994524128553880889199546007003093824135900580236709816446388705798244678060529711359634149365897668327811213523756152306952670187332092266212072026622313006782222148921954321084233346327423762074585441169352796074461952139512082043478507900915316924735118258619076221320140878978003658321827077898665269837340293798085295550060498290857792492938002731529172407158842452193056910375494744947507669988418539241843430896242401669975058205164130445434533368749555184882208999855501934747967045121206035255843787837438120595056060235304140379364986466164864485292551892441987829063479394745873648897625732023992508913203406538302506543490451284786237965178654658989475885438222722036693914760077433277307981541787233082541394371447897152933180219865872279128947294660294806329553418241773112390390962153532083456767749347492260486993902130481992211707476091457818137584278789345550623322954330074398174434336813655789257757098925832629521809128133191239833732388286768802068949645869664439198744446981949005617481013354455793506691891776279184497412685503648200337585189710846250810322492100573664169617809266957718464012128414653505032823573626397841100298480681969647895870326363643584455027355763350300784270475189693183716583952264721935639748235932928898135544242332307863574530710456749080820363610852956321432333020479958513840300530203993031853651818383702579889966642631523327305724842976216814001162680477185727255517117061889202333372869187298498123433533526291459865201476302923347989986995578241236693346887836818210992126745771152751627362909352031754298457450752506956246404765880145749250383794426006061558780707424470776468336417533299905868447737601050424011478352026432411218973937217006618412149119540756571891019580716646584027913280783802568154405972539762109941238249993631951716187963780323080307965086211932150554143882746968987244205162060852267475153660820883185751563683434581336113700620912905528896864945684877645382784480053224226222333265605097568088107014012164801795165209428580049049627799253222186981572295604092110770809286982148628330624960450960854491025045281589903860148076640466066057945397537627898916272461025745265089347037762444084656525938986878165034970464414836723347193109625969659461890101577752516026998317534084456423183651769907115460522015585930943037792207817401429066375492992791859529672272206247327153993373768589475569206759811096647991474284618017317630501271955932893821283561574478859936800076569924843134349749413910654956780744996841469933454281230872278479581926469542129563515615408010166266713558741245658162639300652636532008746383233536951147996314202041953893373263253340616840178527967811887081930819169671105940659414421298093805244704530614868756051577278694972278759871802298396295592800573973393170749031786725686881424635693494481149529897576002471020136296804139362942658248950781353115483974959185300841048625044567355857756839969817521557215188121569013238587381489531041498218896593672780166863176059042547474308406975639471137857569180176790959678766387778396636774928034170643629481022565838776241396267145553658827388263333764543678160797807718403275416369171262966377911622227137316280847143157895179190771564741448224006847818092275146259088029013849056371610918848644832213038546804369543716881802924476984250679619527789288668408308750071430500915992527484476120375148884232026447259273366243176650969191106441490439437719000501109058369528024873915634902545561146043157002734631027913374157539010381249964210161068236357243951904326854979640583287991028732238842616764169442533482329960718625819088160334157940020038007471255061549432977505668958568563544976227723308595284763894071655322170245811293277649029191436824696267085210046297521520774320931229379750185576212506823711625518157380947330713324726404809137375365986425690102079443824915968284473794769499398076517777126404000373146468682945486784927593321946734436363840044523017296141762461088229989197406772428755747848652000819980952769918514925737328807344458904542817740785583503341655888909947638250251143711391943826331058032452783999500490153160817487790095479793047316991462487475555251425592137510247063422921739177686153314869708755568480204537452657918772127603625295273716988621664594443856955485895389700879892531231278960295053158080532940667639294667216806959049534635663475668915746028868924730172158529807076005003918436980862749105393208820049787333306750398378630432241771834834135062877126854543084758934940819082583742996869063525831072960323191896385997530895482751434642252674760957761278187434207164065269991183215166277406588898908172205656036103229731080950316956293649495235012774718618627884696754638156792980666473175736911970075992036839373088288063218395925512265435693500027304797014839891379753677541721180653172796333850667404389773401395125904948947875376374111717406835217371231431121895289890991847742136155631067049714146496327337144254449240610696297404117465505967480462325649037452724607158126971998253872338298382720713528912931637883711088208261084086760236692648706603583687449170053419916605563194816904956121351605104584367435348431906105434436791102436200507621632018952034388934107118601990204889579194182451539842842942725280358056770345929376513278824035837214108380301717108772992786879457624757704712453018870911879962345074560422679493724160938550469494775312195371983555898047431452289893472794272733873228765583827899806353241083276604288835711344479456764728454179662731153740349060472464795584856939475089016919147829445170617574305722845158084971103721604757125435416976592524491259658888442350285603943218635577087520937260960371814104152626499379530060990649554143532737247888621781344591656865661166654309030240564946528144437970260664258515590231162263631589510445846819661408330595525863020222436059299755377365561421047088458615340106408144252179213505592259964357722606990207866928263350642207843878744198705433271607124139211078562062160602627397445160747341005556739050731008377751062846003869381809931518290864609273132649455090513353963134580460124938081668669963711377875686754724406424504309174784090342696976812114007237007030029761603715792041283928294005590476608056004190345742801512769550559610079206218089106160881890049268488369036377498730575341795054596802122010303990133740689490532196258701103782058611095123118677949417594634127764146775755755618001847884507526996616815058292512833206625575202659728562833833161584757868522184723328579335286585155182152109610681490129401423765941023788502923101844872137313756233504113028583908260285367271498054145657981391165817079775133664276645271534839919510316314721223384094447980276944889261089333735997309510966959430940362269578847332547929801022060031483994474009366011977143399214160640825491362164936618133836993351698695507381703696770675622732988899181108048075950415085415384319466048078696687676917350766634067930505123150687399157004134476148394095098566975075828334536959564007343278069265430969148261262674905354569707558414827823488145730314621239372406002058143190574510433222510566887066058959105404678334257133623720862589640080247421730068629021772045441977616306638350734543612147165507219085618941198136243605953886638490111761330948226375202084960459810210498387616083945176097598353511967148669346421933961484003627838439888331795877028510188397496883171898739528276145521125398561553952495212020889315566011648653305328778207655512616314042250880359899866647601848013807938035769305674727636273083282468380322524052609852911232207722050384095549541407078582670433786565828882640964955247800067786674344480498195731543479007555666194669002367395469876891692362205749404337994649977841224938794106585176864980704999055307508793216354840694770152785494525641102387405020225560633594210765923140253468357634875381168507006372145528536480709978046331738205444559884801219307336372237338594721285280337266015827572401964816773978317457298049592260290717424969891114486459070570394578537383060153708126270926599294125888327234194272626046212148370796329746949801667502499179823628268299226017374233300190510887710562346831385878168538153527115546225105057322176966883303787629930087705034403287670773477746370412041349273474040003338221501065222031930970271625211439219001943094967124500698336989559439868607100868729142421237808835196780034809834087727424258176892027580238529923594650644967282097624981703882567385563903417723055985306179741440629204721066814192788980780059731228091338091194730877261632498977605804958257273017207165731809580400667030765315771549176760490830700625196337537678075230742523673876708167955929691947083783843004461773855737885350247983224581202597342629630402086347334740982756775890335352414556781541990483096629497607750121098647482292221186976854592252991704928091188163215181889923069473688946272427008791241845799624455808271883655804796121005361135267156682849436342623536255053948515623351599303211329582312090591241667316001832321724007245125482291341145830368829960197802045968137158605013098232954046079033025549483272318999113412089807966413003093317607215199883443378323510094245368310608668100995099849904841929709198906863439156516030883220001076414532831918468656711913915825612299502227114516777396193120646112268247189390873375769125732448173254480416440672841258509427833484283160478572355129630431862154702211753713978243561128891375866180016552292461652686158631127644308004718977631944029113904532386504849016935603429369846633502273525628916574992427925515308454821393496916525710168507249110227021823115684564917474146997202781811637171439731327738757329983139005061067800503786842528319499476711892872009756747693604097332888418076180843041376138132064210843353683345504972649275938837937556085411559067527931896550275438518571040544859746849777745451371723844612583786913721597317403168115428415689954177031331466649272197047779992008777636018706753400365949559350472008717331017904087169818839487528335535640521091869084113191458904744764847415139463321136695907899150616024078355074963270027531443147334748632116499286158975341113362774613923980841369626361819140123666778186363112341718013797102967694918346847863298629016401469219770701680160935744001813724787959117234154768659333688867477482321094906062316737484523482741843256332992308375584571759370983763391633552113720845761954685272896389113015100495366860085652676480872956258024982030684294657092917494073930985020170284995385492468023441240426616316815788978404398634911366974095458353296868121794203475361077718696007234303159994113843171334161286748641205797051126225146259651886170533852570221463335286035789344086173963805081752603619242823294045781678253030299686422811203350915304664632137150238405597647948312518209526964855558460449317846649460004013444882011340689437254096203332292423348806184228010574221922887361429219287235248567127468083774677095609098514040237980424701770292270509462512411039086492684418838059629439046080140574045917537199485243493203866776939163408173906909570936921641678327431834244942492146486207351726979396159654125335796063575529784573063374204420070108292578410750586585665614259143530268242049658396541952376691857402781175772199687972383433052364070477024294256722508039940765473797757003176259422698865104403531798201471358744813152486130650015799379588130769278729696066940216995227230862307777775324775292889542127880052560289500296220867796034193124326686474568132644480862900492431429526207496257081638446992267545879841666624454895476169775975635215507654361963874388383848060821707071701927463456364990832487878712915215465925479670444510452095279472939701721085408833003860024346935228551986558370253063929028542835859428552793007188043042932887952015012098043412834722540914516081672833593440447081195193925066923818648353276437686355052128958931072405156367812978066062625588572535543305926718388900633425325556870930780610423144236540772845296936322861571584651079414574760422050159176226752315369795433894718777002772795183702306227431258627415805034455029137855716344758951153350352153381547217199552101342156530437128732469475497420459813369169920737869807365755344634012530360512595287149374538911504370221394261656706751960830944056701655654841133577841522557438492445323122778356256265778535662535947175955788258139708350976047390756808952575089490345268124194840253102624352685449393260791213203847424808661451034793346543995535925517141256596070346433573244771681171754893371224099532463675118268179595342513208546532921718631949199968364345943225552213025161988350902593346309723156736727822532131208453542650720913329728582107368590492550938206910931633517423252389869768319399305521264622596245545174472940697295258741983309927619658580427062464203745671192224220971250483864130856935014215455436528687239072064808684846418615126612090065256723837988491939454372381962584057260286150687529253749994175561485029417615740004615730545437848779878704399054619150106525625871940440784390970785287745707672804904141728267584688775863649114389267402756343560645418968885695081820165703376555143483208549328315956316126250432829338473262847975207343355356475545788984989064541194370166817435901425097413304757501092064937824111549908598302545360412466040529792986033577003017563294862371848478112761684840179395231761852987079546602680400642324140267955794393730764899647656183780337462702843395168176761597964939794378509215790799169367953437065991254988654995385406164859835858132787361432704145687946005271953685752988238006447263124221155524056173522091577719332385775170483141470263752765329476708044493641996303116841536831656319845051402072926747160222063006930672329015701864361383648043186577829374454330607042021125363138966911647230301673186279905743095786578361504067411899144181735040521418550857149086364485880081712785823816155969175792813330290378073152839227218269205253203543984319518282282205329211115981989981724963399241709346919005500881972106143311440945120482768120878654759275634928701176280196407152630720047629199959710492806659532439516306040828329643804424165056639166905813964743091811085476506264710838106076639356709379270201849422445913721237722417542910936403591807682785759301039361590661185806949788317165371833924695308025453502374222858394626133060446529701664507396882784563828185669831636449282622161008067960608591004765321442830679546337827234453366234611301104608346036928262302708251702526981410333053259568306889279166249204606835457285989364322709784589941587975453644071640589888512239450151069419549424331400899044374502616418566413173631104827560764589168941017746147049205896170397955914415375402693322529406762718751883005272578104983612028763839594894452979480755067313115446990392994005910915287503808898638343320011135248792559225129694464339980251609846334256537925028611201966283828483556261788962575649574329655945054332165171185172023164668013324971134522750188792428303620301472182741019350004673916403309591997372973758720398628155193199927064420638704999298031622225138604335712630071727155414609853532390431815836683094212791219311809662660361410877964744209914069645849145241891034065081091694143443417016012278455265956744191803436991924105306008502947028466539133089546407538519261420859397231349763009397137107542079549161136159324905269229767354608338219545277235362988811595872617444091529168701089375361138037125802757731207545241461275248448197152817743928302587974306418212206699939298498974557255234566703180717544486920673934262388377453658862466264550897749378645618078658849124348225941981580430159700193564075007453000327887884728513405250407352118121201648006179748178098859573744980442121538156212614204833781104996442211785328795529876758377020448977206253823884285506379428612716901435811016162403272528410259062515684634917671854521355132276122800900021018741189845033127764278644575729938737529387028671935081410811465842105615105598145512902545267153980990564531197493924994201946034016833875370910957905506760878246762232885103553688621606231938496563695766543042661170770503792816061490140603783032672408667797969625923557188756113673841133855264518844471310111255788395854841014510877082731474877460877802454021682396971855798950951853393354244467424572988426753557808743523795802348778142352723730922283250244404687504791540493979520215619146792438091920757369624656234727891066112993723982515216474968058793095726821689096144189356326760699350375667437769086518454721050937403765208200292065642003393828365666215542124435847247493058918320258461120828014534023796910669777081426279736618473421789495997071510614350565057427553478971178069347507863755239355001508037156797412595749490602311452556250307723214466389723019904312694444530560615400323305795789517077191011489761697273347886079661947738765643870703799030621652452769784347792291803062023096961704170899428977809540294718223328781854544389474110002502972666211060379619908442478596965384905791315210545143469866905012830756172911400014949840291980277092533642652309895306542744635789013593623753404200750823952936775551994452321332434218031224539739681735897070230552687342769570427167581508437443683102117349384568662718884911079391732820857875744565663147959485400664906012081939623211285483594603306280135801506954534440752063808039979384519248903439643568862682663606442139485282338814960938264308352709164908827808557865781416460338988159359106611662697354691723164941730755241290795421152010353286644571749354900896551520443422431631551959174333288290147270599813808591874745869601864957367209700814117352296111427290336043858129675482823494002599525758115576016889175832870367034749983487826860143916423829439064643710179500842226766072375254361174756547165055216247932426700950521810472046757996949509209353106099063475432453910541142918687798043271813465956982792031714753678278134068141259038826723660454987766486790573263059167546530431782956298837558333901212795898787683983371049722694456155362538649803608650698985587691676702931335075308952570669872801214950545010542498228027488583383731158696505221392848797338536382154695710426928920125774346290328307095447219062684257290156029556363658939757590327515156470450819057959646680266157444775811211752219981989308246984394800534228472743099205939474451555845381499336337568677946221727303909394370536248535918795743823665338641537024354650837640115104826844852509492747687078755926104796058672189642822138572578377567959545929117466775184247737201622917623817524027543453837967121908237440748972536705895604695805068465527290701061434364344043517617496252624233630939552055013399752701316463634048585633994190943352408739869961993031910254993026050144861985106856811966192035133224178226592706013452177292094528689289806484900442937297607379467077107787042572719243321794232389261978897794138345932574006472811200687138279543259692222921964201039393183121139679735945565872571773837425367772843139275207780573678888495445236724918223801237300229036458375812336097600143700456364751750605106107610257950277549408404685292895417666742068966783372232882599929192472558317028257224534247225277987725707160102903537102353802633038561121544406249941946290989703260792921722384340018322939047371576486745505471750173586604813406512241120345730577756944640769539053916123964434190381127522011375686954964527292816141645759336872003926491055376793071843118409536596896559815354678663269328850776725007611876322586629134339290517403347123384126021795423898964751782607367024511106829664458426017351544131755240859857104358593136300279078622121737781493195994273441574711111940379654095916424989403544401244110854789917842785467755487908139225731789106002171491721829075486999225692594699066002829241430617371665200676304566192090774840737509355239279908879887810367143064387391869898495907936949622850576897018849508469931465718619097145242984298811945940310010527711476281827217866196451338714371077874407824248838512625796539425387185710137449544692184120447972955813372947723775975701865051359492329051130949049876659767791430517482259868034479549432787778792244950192368453066287975155165725347472428502533609815071502374593896715226424794803217495558207145725310086352597066473354619967375711652167393949283554065154956883917689988374528924612052558542701749596657123667983077868445310241315234347510938605588657330083321940608418603156544947375988489551327475963323968296131625806226373464709662569117801230480732433885818573781572335073718623246058691522561684584982705344876246394453312500811042689737994625072894516999623805669022635168467572605096534772231247927835410840627968500816868545379851821742434221976783023149180616555829788827104762483564926683562228006888269677179519419948306646281003801856544287504570804522159406417991415763866162393748906913747370563864177745994047016662821662485151904299972627510727081627355793580629405458829872899199838746425377753079723946213298011951446581613707777800798067109724701978861323602258646578558473062561859826627596819021132355102845526932059783230010893322529925274018242824353745710235959357559730420023551397132630655137253701143458422684120978302479536145463586101389062902415897016456109715824383835982334734694427788281874258376747064333336007591271081135914469268264146493010354356099034969462142747010861298671698162825816410914455801352913234339926950100006037558016290325547286501526561346258225211162170544244065989261552601814389460707687860915090618555682582423355859055735574146006734340203707163204893889742358896104860581820033633956347149073808388408296080947184561153032823820402929843283093278865036955052266363673372480940027913996426062977718378804661135529158528131665654567452849988899630111352689557701387302677057739222133496425139590081149505642788566376803590525109461274473935196721272110817185171868930125086344304127600859463796002191448623891308402958685885139194693427420318822727502808263974211327522372669392613137046996026174109448387035499565927329323913041985918994918177368472460488631536674272727765046820037969478104554542001198594113889047661451445973629195742095104226006420553873651241680943251713919650823421578586522638433289302768443766050743518717439187346145426109135154255374454603667392000194724743678229448327972535819063053715251646973869486635006550430693345651237546569306562168225487712267609743295285805745806204127244799555684994431232962500549032282744659911702822922848082790566823305421013078568568244153473828509998164525666242435812389798521880447152091994491895713504425448111042314647683970839949235064923202407473763702841644207516557772043352320461385885570679212827565620371497568314555289478765403700100768186580678975313343232461649520880577451926920315478866799227158338121902837388465387113217087929464110410420084827384988998761009725104359085330055394599547850871258815574129261011743257964789374004738199163801874474743108571756584320360993866635653964737689914509849107439561067305459276308453751102982961218460874225746687562724599506260029266464654997193830784524683991651095638459012957681474686174684219206380429875225104499344913559872246963400025026583434082812638810450299754231787294331805441047725389675587200509908952669965880519506912549485134916695294084400448383830082698113571606372229763745900631963888314353795130986325551804566000808747080651656943028890449314533188750677538743580849513267391073139524299976243175343168965577597767553852896464060439308390971574983291975716224911215332450102805942945148364808109146743632334964977017901505697566154601704613554732243551063833375061773737390115488992534605684764472726271954784121202791859192149893512408625431200443954273861489310276968908857990113612862900237160301805632164816786206302229995811367458341756919605804645299930126583066300061977889464929703373557173142521792633175277477044545901810443460334218822491742454608873025113748158968074562604006136887894613693311358990477889530974417112118400589074882737425434190719272480881342884345653505196047505048696374339325154788467350590791549319593262924879746686174287967729458987428980982038975693181121627168420726391913318901296429456539268464460761601855458921706702497327445258054331435225511225468949458050821220081903756552494642462562445937807217514479888428577186614923957250172654618204881571015187413465341823199908747587762241966725163458769355285884414199225566198308535427876154971934122411155243076363791141179049889912888507853055325479852385572457224520246004831705692147251727231239639307745615235710438768561248649757003387612000304542931540477866886028038560365483073218968563513412293796093077398820509261424193685877291905240776434471699215101827718231371081446481801356335806829267576797154178318271737848842241096065783290515465421398291639701265711770962929745754558937074893189666401259870067360072084822406259625432763241952612086454819558758828109451284894591143675126415879068512781963623185728754489526909445665355580969543379193108666067386340593937609454324046094034859607344043870854036880662055024947794239807481799946957306700608515550638516996444367147409828257399534951489277748909933189450916545097004577304828141319151256069043242933392799028282932431201690438071138560768603588170571891825508206542535922101331773943270720088207294614969582712813428260187372877149074326957188416389796124605924434736533334017384849152693558631847059594384811959228673138872719587015809596913278548594631756035208515702120151485794051026972757069496483567652075352427253290778894351621837933653048028327400163485647564282076472738268080229120974376356847380887715897412967103395727778348229524688244424411375867184582864179326877156653785535236335333045871875532648385064006784238745747386269932940159152363651727138984114515596847277627547838420988318623395532222053256471003167399296658841718340123429385547701638305377430911215687113895347228715837016279268984436538564276596879038767081002367521051801222459568792570405556390817608637067899342687327966274178520800330420981700032176870145298812690821488715096414996862147148899290960915097506705248900441269672455290193886577049093224297868416632884396100232569668525369316675025419785593018186134247689258403391349481990876319786139252897329618715157340746930101553264264687957147978936367905738473818854238991748571192393946624938853993619662130943474533118513389398575131694300115052057624323148377725765048432467353858339213052354072544439090375000106838737034333117064370056985974460039924951041766333489635771361347876099458472509668968365174371365231986249930381460010932665082677075206272963349265761867126212564275414357738785175809928237898152740985836338240210141083997030331397612634249941473885848286349463656767356988703430216274583017334553232272121872574528734328361977771671147249799517434366043643273087192417512353617985535735527723524143985485076623558937142522542034189205389629168468305937467365023387532876388783204555821344280433150858895145141529035904492961168306419325216316516439935131080398900502269986520806568256357729768742505443060381266974228450548315136017423550344299868569114466794323809373668724033350436111174082787738604292810913492496631343281805226937265105881486799353688647374955149218362412254007684674086457919134012438131779154441864625074270596092040369057619851269886046096276615569478324408325922997693466875072731043258809732804672521614868302109705477958850204636086555350196259967536209378660240116274421842493699833150089763190058922685319283016830210457626870458013283103732608342723568981809025492994690140552575506932356337995745420566715310747694676818261837078655383063139248184008199250183376444012523025787516217155263589924214486625325583185780578108352292382188872675269534208735008723517368657459604883605553800070617620719393089167034609822640222285073365087526454422580194262498500519241257710842196535327671603800911629760584702476380210967664381694126093512902806508102795093481552923719519241335724682341040540015558841417896082545398680187132651320446810712367048292855418129246857394164135808557581538517610866457200845208486479853162554614332626759561349550337684654558615840465359641041805244963655242809436774420311228570137261136062832627254121962233025872937336307251322416509117666089446834100543494592485760594818227512122520673101615110734058559530367661289855514646273410389358234548204938114111645767339672292030627324838450812958561592637379755682979889883865030356322298048470582989737915945041709670648121858581671200197325950252793790985906473202107409315351187789501059861611201228848091429936079896657304163889768499334923119123524538083044870366111306210685024605088609567923002156629207368165436370010673437113265599327381308073630798367177448023942696417647029231329587439647510954136384056113518913424064257302344936355344016188208588489805647003024408528843340615549070013021532792345932293267565746311154808615350565552443680862488545669730076041946849934190208284214436041299777110979638927247859303487857132272825965428723898581252689207047883553579697415892862708082256204995350377798690907739823018565676936515229644128257059216514192428522507300182302685455003406599604849949540039631939143262006216196254397882064197019659533993530330313534704489370999482520362022111439812331967581311329957866227722700098559125834309385648813567737591247719823378103990116180010478125097333852851625747874562714828341758642941046370332423799486474545262070433081399905048529491414047435252850338629243858215540688402755013584661947328015343800237099568350279193559406956195534761399254276828557457596981623636942039558915065666626520454543244912639630203424426082745843834540273691155281841272828130622083281254498164518017465694238541364711551114106655932162520998700856248853636146867638455981292767059372869934912516899699509632654748586262281158505068350955049311145446170882909264460836475032666912196853294791669020890236613629486597180044880892270565115915604644131341971916034855708774676136526698661266167481485183369026349783084919076273265562083130841169203283727870488344448538454011071326510800546141324402982638208081921585973254331246000441292974203714429853259720106498998452049540115136570724030657511061891697236952890239604178370841885883328742076299946391042456124877197059360560674516036618352878219062177084723977493263932712982281632312417246481823144069087014738906786347291368778013586071163988781079217607977738547915598598465855222303538960673663819759339370797754612115314801107051905854207903005504242602869454384864105803262872670736733789364109729435343642399008288930079049852648947968642347474326707243259982761626766083266737082636008045195115775926630425516038046183785863807210008079014623364282057204024978846348231092311750929970801578917252092532075256787607436843869615906618836800493325078112774327399294369331994562704643240089702114726336394785411612440724328998835946481120581752015537590787634726914930416872015493373620773249338350383823402972300576518493616782233149192001324074136710241589838357033488522441095569100634260057404396278339954850282623223589680831641960219839429153544014975688464201322066886014440423078584914308547835149989069388693248038472087166140985650622642509592174300944000168402855504731176432572121761794510965756266425867461817411153917378541891345536879359569738979156724373653458596569837464403920603621380544072610122001286885694546708482134521567933582825623245114119654904069402119424318265193518597456975574713031191080213052193034331125805858063059230126893808292014437946143161388369841179310878163218352321564142560788616293777565682661786683027489959487353736748608881278883672490688134267917776180817254530137082582625225572716610409561367863819807600532582394673418546348459413662057255145066140046627311781048807852439237732226290703259879204258636464778939325542317652669657290647492890983874640685122470448955162276173254314098681260466092342366495329879693520728729630238233403572330600581318238182994280137600708331635260222328546144412235882290084870569536291860199172759417486020045347415670546876115808931975227572632073859393592084977895177286997830159215476023340037188901424841189300217335767850600010219864601481706353133936324332702401224882490542223529629361797457913463684679327241709000809011918718303208486516148316428000259399070955486628638781600213306942604394762079366062931273443990837359601865912289550349322413838830538886398928628067141201143689635597239391908538775816388324084341494135406639139333942708671915924065829761841238462739698525216265694828369835511835343832626025673118587502941919043561706576355322436934526392782129444257444627284988367723409923326043917068034425374410874904996791411523244345736907697883479562354048243212243643817277815410243584047020534515846820878175511182540401178048996946142914389204074327062481309338681085381814037976972714806936207455241780821751266949025910132115321861999258142888158744520236955049274424647319439101076108349805065274778483536443481572330265888916315867413242648568790062623738043347772536951835411098952669549252633473343183020382582348973938689336125929639354834466189604644777700867113228967483950683855922519748874686377147135137481204073685276578380395262922923932850974021106410297745208349206760667502375666220641611432336181686523821590316073664883234919640269602785115230084087885915853380621850945476233693158754607696396241227992085499313480957623605771386590302140362091350799823194190406520097624247758168307833625146328756803202602073130622010043633933055436497419515198293741709780052632837523187920100110153566465746770471586543770053960727978281203600759808670470897618562221566964528659689098819561112986545891466247951253158858734899074655189121438294077206966380836966055251415526292350462468925710462770541738724671481807278324923713959428088494837704824610475729124547065126240938694448419704705950902449150791764352976100273316810761140133016520534805318562865015733991511344224812393557403261323958997973251692217283305641015677043890873000147933073054554013586136133054300755503394024097810528246785227652180712378726896634824761044722950884675999591612129684566023545886862310463364202371420888555260835258731600707992758499227978862530382840146113240143924482344234908414057274212197100910553107697275614068881140155292305775174986413937090013425761131681633897797515756394721040405896990620845002265972509976372722632903527322796122002720540200983301304971495082061902843794517758324964310957925406144212149847767071178709378740641768126604115454060173759413356146328784471875402552521503634781563606886455011881796266550548446077772111258310948203870426510006318581225655636429162449271392277545670587786117334879009049830516475093054281900313701750970289446679490254882808174891764878080378222323276246290022697567275862656975787764680181292175252398006390603820757205753786018473847895340043116695488732507540040367938392089734398743934545153850156015262334972998580846886084751671387866700254323619415635506723844078047279242846303751027831010108626080053936728278704045616623545034949717300577528792215698596503162545941859984566020706342862224972295171816167060684398547892621162557667283947347007062503058260977975757313042226244228235728346078702023299475818683422821495936485526904041964016028699338423484939485368781872498837398385642464545417485176156869579637922455267252312982887529283899772473155804912442271321080592893962254516620415578920743941439204480828182274932238442385296696892784422904182730821149000600698933826406830758733669067553531483607767957368033647203113599532914055397129265191542115638406080346745174243687438232104831130269114159912764453889348424189790298468570250509623132106147292745187246131669733965164732871228099627137748369533356716130973708027922647174129927224160948257403973339516403789648231009689338823363038804738224683435443790732600982593597177806399314453010801437338021670349535606899321797133689786723004513695760336345091726644600926003348013335873722256183659159200122742810256190679655159222698895454417570313338587737438030510884939474743578662511359752754090538053851911802956790035229739079207988436128252176255335090766958396820487907017586385677650740305149080149867311237349913437653390106890732489690539858315346016650558770488751698596017863178890366294109113185782932226027365964924804702876473971556388197082112996096608297115604664794708805068018021874004723741942933943245403605355969739730001598066769010570179650442959382760468983626712028165800809684162357628503563184473494065755057784941465664920497174006415831009449718713695246463002576253492693441282245309986535070687833624485619703388159721762582246053094801330045344310690830177356857986122447607612943495528983796979666828288926555789806040553386373574342458124669012102680891233288845561934888019709736358755639890450611273452744122183688208860530833053059058956609756941463865272886001001352579979380396139196104636762673426688836593759741860460247596229129292128520026097933062772790505085351784146522066919862622629920390550069641107624635204850415315072172552618434042710727803522672554103698600921211319775070364530927387274736011252804979532632992608546687306575786356023948432327986869331400030588597122553387848501959229936203392800822323027613712223992712211020808991368717044265902456608667631625681740948476389928829668597175177233098291805299396530772184871711497674506147982260049142739506914657778464427234109864144025664132869915417612814950126474563408142367002672389454647132524081883204772415609844367387946928037109388718688316403933283091155873685921442451060495085902196386650885591697726877706961404057348609791759229140525451630956560957554244932068823657139993897805230166054238842618950243342722098037409314019306407566820175730787047192966853242578140800795571789614242034617269200634855275003139991890960526437380277531555576128834760359855373211442948508143867609181640542415372823570765962401223389958873168694825697100557563940620393871976380057935988560714678584706894599090267833509702275445633783230085215178567789184182733048987078234043942456798874653760699623568505128943932944780472186785238024702013598685315354627128724116308428700983221280166640877423573032017111449254816139618322247513973665207598170157648790333629387758467184778101306222271331367892609507485512751044354973198347593188613331794042481350628415633213120913589874393675168333479946939210185258829053934430996202322911200624991706494961485849304527865730264544300913194691095676040216621877974917728434956372026262512108533192431802213907658119177767914882481795125492285344113829858443825662910766016766985393329434924250390214958997045320316515552463570402879220470852669707977879947306809029026279687189389333149301654881049101691068499820683923734698251830083292535791615616440408318392483600001952373878345935037668475474271777438202809354463584676107979229000723583192794211724704585979803296639318308009580026225554632352476997963360481787692708771684294435262088767134840542653139161426828350117080195830821319448106480910834144649044799854144621426102349266405668587127735789470060422857280098571258332677147629271115782350845207301385065304774373573663056494343522499164783123870104365146625989136626087172577403556269856265690902194284483559561719846841775570075997195601268787234192737048705154006401968101362989257650566548726736883410669378562129766196622583472188513737414077954879110453583744051713243107816980951420604394077360227990945642171272368254534184699673378356762484442218730087171377598794716235887550592185900086108396069650419576179746232579576759598349766830095435702219203867790293130152794138117855718349368448210922241403020223116699594026975773947185964442561758275182265749118410435479192793431047428691042439391188509907646831186329657295737642284456212821479015038221104660969532562494689635467655980069275201355972786709993514464633069837856876210571533174089769146704604227019377134618305323897350094885480755153393949998805941973782607616593725668519101068474476343552863826784872971364177705998159166232170055794035722335037659566173495728326003541381922283064882386250551746726386194056768829278754693588782462802498567354519276912774027551274170879635485062748625054133744973580962249657819669233271966459771406447275112364107161831873369767179838679932474325749963870054684280861632587112792786341398169754200598086511761398033120366517220662764805946492002736617472343722652088349572446453615734625209663340012025187304165082083035703813775788078875471260362499680503363921255274140436108334941049180361244727134471182718945216581445774751098009820794408044135387205972543945240790927125166912194880219421633836362570492967906028832326099130679620412610634050089384084399701472226676857990105877382184407278280399428520552785076935043939610130311482223665868777588537966466952549618051053175026765848469390204364571246166518719886400470019141237543439198091860149877838524224249110346840248028013491943748253135114771187950376991142457738091170624396270141220205802736383171998521267439365544529567815327115351539630851840359353239305349911026418498010991283010628815890937120247061298615123708174865117889755450072222995624462102342744777958678993252244448067013210322888847810309451567358023636078533895782254383200291439564264030039508882319504567280939821749412371824554095536513160972457949829330595928322139597186642833469047102057705168906885056817058875070702850082346278188715259958942734986606551036527906539291502127142980556050035169897304235866759310605018968585108759342466746967901124512244163943937064832683051799568418401322763741586485724294451573443641676316353523787629762819405487952091764886970411218407909858236816214173987075242695891274138408631946473817609692403461149629851875891194137543540387239418647568886401233738178216509388697839199168723003105452184973493427469795658954107885543430998066825598955295818027348536963746362910329429302575383216269631129626493797037790381400800627523590280300886576031006375872005161756113956524299563292203733649402056288780903906676047585431396822884161308443732083858359303012784577520014416984395423060929945948281682149589683546037123077834841669694620348622558007097968648125217283951008531414298330440112261630953989807369094842289541664486042658917202731038947399244411856479458925677426422332551894232085854483963937574282624145177390850821876940050375971014316145048859573206234427840004094341641518180024787645268027247537125339111040517798455537813223874907317322130314793170335117591081808820563620084875559833734721397113078696225069165845966903126630966442734593230951454451578171400836720979658397866712190250756818516786784907448074541568167030429921188468914214205506904191318429977744330097120282465234876423538415101318253102116285107335723411415266744687717237826337135494653124873468200590659570992610294245315208026085201506184820186045263467093034571161188983732282865681457430047235357169836265671444177815699676516493655604836713509714770338303029135697512498758477185602270022090084832856794202708501019721883127140592277062849039200304169799987026391949578475604215950592228156287973052218374057661984229727380853644829476528851501051995511720934597755281281596264183187086029128192430969050862492302713247509262043570762958694414107035755501974180282621340622082515091476379019133748095339340215562097773530412345793686773881183401510652193160472740547785568372458758919800363858206195412122584929808591479891200958421091247825996025287784593811042360825978242558323730625457919373863644391048854346349980484400703885314517721176201050938074647330083683919206255668711418591535146310947293631126193412934598145130310117189742206537541980344540406294063794919076005441749616527389642449696095270237199779334022810395726336360450162480969758533891700231775103583197029581804310975186542830562674229109441942825586168647918062019270763396137035565243153586911429823704065885813236276208131573728349693720676785815164098553850160500611214102164300090799668166888206323173438352036905938631569342675752226937733010943587621323715386312734329363857932545463604847471143994917723086426013521795364635531575920189221366707510155991748814984722181209342962933501170518331307047409173888795338953686803735192461574348387324663599292562201158205644987446209275405882429833476814417800721122413626219684183614505281233749841819438871878121628431679798903880367767646880620783588150769556423158205036547282810197545262008597881818602120007482747195853346862432212102995777947283465077269293200105201621708815597778345030856944394199275345658293080860487096470314845185179016417908369303467364009977933407246305304015651170471033256966267029100276530240371657820303592096727114340625612477952796538753513865296640384293141087651226855704548026736995507285434643540464738705013683849204345924338195807638296475621772312407589888904266830992349070965481567193621729443824649529928964817675219070809229487498623767048378950514580118994934128851167555852994679560888250747281801738700372172132121379282319774870443804228531557215419561321226593253294777530602917613325906860978236373799361277726075938834085168901332126874576495283753852725574716961770365025518389496125594718861544078397711215301406782140735224745192010045021112268774697905507813982195864173802866452682121044138974564687937246095475652682090195759781122791544304996360949524458261598275653401970621017214671945514842326847033229115181186978545106265959888179093488864198011073206896661546199681201641941508427230348046938193677143966890203880036825236934702615974528559213056874647196876648735435397037949155224263318513522976942291324963424540133582989975657136932256689495967087274468464512189857855471700984773735871182480465516977492115832805739319318403206411783262550747677175776607808470329426731187379967748230977811506976615582958227664510439834280798003939788228379313495480735415609942159593777447296607848498954324664574497305875683902436872773298600716906602372392450376033954281854961085696000813065928899797598395744717918245953796947557023293233227337627544458586954643106536456506775625501415442460016284600818591233187818082939715722426666221266957309103670542858959053202168350390730655103335791518197228668572322716762262533542532560189973225798633412945987872989608443720516656013780224368398229444314158175493819452969844074402898180933392564089899145918685236885126444613354893831937765206983612008911116859906663019033001596601410960392662111287507838173424261816852709581359173659072792786822055201210863069088299616366231436136187941354608196386409841457256051686754623665985154491665648008829303803347749996567872323089931668972692547864958182556608164536232955656524201874787630724679003188617919844923885470717268838272558079632974019479600387554000253272305946876831787975661020015526898471426150912934309220960010200810239130358691924326934266194393932559528820454248494075647695242377863543047327666767378488024536958301393195655069177241175488276044775543083378150144254926320306592814686901031356430369809301661776032393653375497308222042020442293967881362504568942054654651216159597648865117753252649437520052562292371251348187090646271712995312447417172835258725619528033004378903751578873912580643555993415746894375053244549214798579377681713759522014001070379250793625181539352960727543618189858684930807568116650316156625487789339260324081334138531891911892603884632253758745607043044255869604584820080458296027496552963506181862654194758485351676839245604137835590108211262734805487625623013408066391383564212686036549689472770025865060460614376742250063623463763049885622058375220011570281791631448418689226095182531392886349588790391883195488413731400920937138065967439573014633516561968198324925125527741433332633290232306714014888718044744990195788763910044164957124433834959861053563761626608813808941835149196167430670860833800828741311736851085519357878464126389775525714080603568168805662003945669771126115162452408025718033396037138898390930960402692673531965172837284319643077680188460463972916516835789404057974579656462574444968169508022297520848344222125041495941215562392841505326528664458308677848684791153804369351517146921223569768422965586305338666173410985322839724923974277795537816837774400690200300150914647299821364706942610049847172103074366349311895868170645399389048465291395578462039130480358777417263054491723133216603354664057342371329230752988023516982784299724892727459002189210778440271353005231126133181273042271279595360267902576771595836947552003210937822126212893812029448449600105580301330022566719862056490027935272598675566429123097710430098790062944532137213124488401375236494203527513330632136687881354461430357021984825798359984092228850947277545978310321685154263271274989679537059162989763256959310891691464944027974873573361070406707719081787210361150577408901175754228094553817980853982300020217823118461413959248513675917491068193793592460148516156106374351481717716397088775664913718283296749043079732536539530874343537724208868358110712680230961211485605054502427135167913130380717619277061158847738980650972687496657470452850239126794909255790971399014239762741554134317606459670343701065775494449238335881523457650828478301850105717214659039097385024915490199286898547804578258092678572797550384134081763657197105695981505439972401736494433012244864748814497597023103996106743186890494045251362060868245659893508515029046857355851176542240823678013445522380662081486296245256879998125371404682330748769136208606755879286792734664267534305002196915142320807968442505302660983009730605706237836508815713910452929341501833276726591329944161728399011953952109001227138027285002835379494398379746968381584496826271727704312409602847352694903242029065173875013401505794436639797388651245656796129584446722163473363085631006351060759038915760644754720411838687108365391318576466124969386666185658156090283511506567233384895835145503519678586804301798382646366450968649028274345584258817947206474224538025336367096744497993591421084442414113760100912570176887918256984627411895524792273475769769817590949993377885771753389198340096232197545297582937648021303427858052634266701926234966701425580108992926803280787287058911408910275706150457572891609382215371884637452725071963457226816282529409602447573886390688713489638946594195987223442318806946334360821128216083886359339376703223908683611997663151112340952940189597158945985567236913098554833722405742483319278097996832142204208293681589739079177528213107946580290529431287377300773467794685190638713184992099585499100935005429880528216486112537284941889127807098043347232390316260405507389453553175991528762574208800699965939459085289452054391630628066518059832537463702239201898682522772978815839589262111512734290432878185245532316928720878724193639299868733903751034084309174242532516878793216191618466510257146407388367873494426997205441189379181799968310783874233540358258816949858274722012422755303573474624005328677084898547012968013220113522114864686994090404342778447356154773473565263578674455231338570388213700498886884178067294802740492854242128694717323157302906028696653581216183337663956613642792824850280975516824325627626033842433432439434722420404202553246872652066283144772268317072642723083076889665773742787546094329935157386809243306984002959369801695071752407060565244171681563724428519495124753424211197850628560281356892450330548435427986257529759461917346611926209194264528260786473850588356536722350541789059391448378928635742675316519442087393872564046707195413888902511283016958689640115474413556327984321906596416131293202237266174109228574252819568733018189616307938020750109141361398439093834359765059575420359307059649380083508118653648699677185721082573622972463113782243833716129812673092411409523647957577634045174206962813867011017720989809951678971400371592721997367979723261857534003876443900902605242527587321370326486363397284876233739187275130151270450584862716756297918607877073069026031162152316693402511264595588160315272023093921354097805507047801244631285643983020716942382080106779066312555730236763966889888944462350844387895961092398029698633078143249470995164045715508554081757335524252120558086117165645964055669072151463619998403468250881554703649918491235940257850638947057439888786977577257472321008848184863996495897899411675338051398485331620268843236499841879731734110513933870228479982642681392112933023743405533569971591073110918780219440408450013649067620280682661038131723655739384073546561314033831812143596613442660374262651950208142508889324199130501169629805899467732538157952163592749006448647291525770585097672878505626782325385605252161175202047652504431954780744710503092244034095498752433108411956867415023033010602846526224483628628470129846955570937406170249164236509698443629576477505604878466136233858767704552476421412587690587832869003233153784208759317954467889862229511340033084593462544473418708041675792700875504163214350107619750702487562208319791066770993822842424913193396476491547030253343473480406951961252733941574630871928439058893708971524720350880116561192180973351474762630612744404597945572929040939783222984609768651952530395894771400280228581241837413337691013004106283333692356413406561647901629710851258846204641143584443110905991908083543215336696781835770405903146270054126617615389760447023453263070895077772091531853651237106237468822422961481345917055740166975033384162502680636217284476066668363462049449276821388163851568630300636964637396207381573252112832398208995153890153796813087196404167454326148108199388745627008055964108882830488577792805691047599274471472335649118926713493511681836678397984966771555319149063041808549444514385118076510306707290121529123611461734685087974484735278578490877961128379278127431302055929687688310631606039080808802809977878114336387478038729491877009638910766681830734831955940519888360449163447807024258463483179048830396512198689427279758280006019555596231134646423924791102199850212944183775001909683297288868457683070232433387632266160974222561877994777782608260517643109566631116574966267426596530055996521567862582011345395014552299785040335895545511825205956294258701802880688230550160752562152421994691255095096828270727498270688099688469389255822121039637475230409973702698218510822468368700217674336700554293428155692401368692179073626926871049491784392639751454283494326488928173800833681820826681821452465462128267300427027958805916989516348235946462201585192828791812257531537099069650371899547728167104823934144332166970961499224213718812097484143400394655133453645567036846341685019209857565451604022971808334707827118612810023414508739317371919750702609352537358528635240982144147621418719982023202030375928528017846025408337943298083904157336781896712671701471888169427706119747658366149723227412045241008785292084135750880669325496556508835770207589525980904253389990432525003258872817457481421692602167294787106500935342140105194339304729757310075268474638515807060267386282857370860351812469597729131630147730070024987350700757139998751134894053777436542820158576665613938936065854636401549770327540089625579417873285231302518857656261475692667028567406431843676182376726895615118643704678850777925711228600708181862864770856282354934060106411870227218800779391933440631394873628576959371398212169233392486158450678627865151337397194816983865021023911803179381177639140786203065129544375039412171870696309173897540791484404361579822280747116250304506565093917073279164034716607909637898224500090451416219891562795372983603199594347019384852609945128212525979347488186888685587581993921772613745168998618396109672693152310257300198759065233361667283978046862681585543734965172397522323637244998766509949370856208176418759157123503131036823338025301793175301694472590296425240041140771604016452285496711621550883650437243499137932471332348232731672055797428654092013150926725645905164270617160098189912442950578809756737024027437358609788171314826232440128409514489050366734122960286293805294658204601861202076352357609363558829515118862539353790432798087066668220827460739538020355471162361542045539766212658689608683018337602358339571861020088400522166043664414879782543921313820116774835123461352832923660100088130469746042679727461657127317842909518040075866595770901427857291608012478474143740792445069799131578577204397873089610289828619710610604819823504198886476999354047060307350253262308997750557726922775000196237518120271290865863469154554748251091981041251106039922071991074976526664498718367167644979198883754367540922187271668646962466861148272447146786690679575657660426774115467843248633443279887240103193891383771596298649758652449943992225958476445694012059740403565234851206058688999347263377764730103292676249399324286821312100452122091291154804772731025854400042621208725258225840369081798804636441832069925590386042555715822222273052135720874474939351540633687641092175581632609368812640038763834780499840018643193301542579148054439194173690007335592650181192297891028192923279535971009693002414505700546612661271769501806992077296166222951219604833607977636838486848620780853752362008411377943303520141306861667129557644240625444819831208226891496586209035892007859623075120999937134284290554153914503348702970482863814604846802175442948686519542796321060828461931048482993864044390551158738644225537457908180996514665392477588000946139875778200071572544893319546506419019636628583797174405885675332243912319199463867989719646226880827727470440789089998899047508460253040184575977678911936544495371652340752930932616356955316036691927724032121451811908312864078510291743135626864808980113537266390385813693826183294021417378275089677781644085948074405040322528943452033622397720556845465099875070294648795107567776302685545721416669258812652507530165846905101099807209193432089838424351592939697118159448414331064566724382710094632192898982893730013985727984280486733688551880775428702261105597119484571252960523377515291781177845362990084877318135803467938413507690640847735426671329395847847960260224971760649187551380159777631795245903532002549463660453247474140043039442797684537659367540471417930415210190060406736646375082882267288517708949984641563265817430716346410029668845515495422565966889133341532210820485153050050548008516503469273552758486798623506070871081195142285300676328836975561282152816572390327736973608834115937382501058187794895239429125872976771219617831319197834445854937977091015255585266727180110326586593781132171489648966934854400155347794924073416576714759871112166816476779814638591536371631945919220571461021681398594625656627396592689642349032018029847872720597061559891652220810415988531337289537752508522384771366017727506366183454267847304511918300283186455118704597863806400842182289298159481873756353272748175493668752305555019197224877477518263127828757622401927567154134631152915616646749923655764746005573512796293192108147010422561038266671984985503925777143135849390007800090663384831198293912891072834578517701004777805511678454961512468877033417827662866489458295919471320679745266018205802394223209459534386079632488908150080161195983425984713068680393372113988460214796753407857300139768780757536939436736208469585457229743025680527469344303541602502497433047198129891103619954478339488916729197845621250011104599345834407555076668056539807451327488215500097029719051138610749945722832301630146253983040923062342504616108763240749546801290990915428928549103859880094192274177699284385729620254693987237001795032341579241151314904273496742822012401663006929021255626292922216499254358713734849163578995128598796509035023816905863581765032000434606141496132905665730047641356022820939801189113146447028941723792900991037585146978351477895210759614237421497755349286364122266582667314311890744629274816158833893900899972916366953619701675754944057875199652197131412514826697047989725612077039382892800941351682148013113009140715503259872627498448707328282105073193446907700906674585633920694265073107283080046926495360944822690458744980121020527039066149162799637650500481650231065015605160320807875122951558394466165378076709537197225722598344561863246539549009348387022106846716468235105189274769810208142767717758006379577526103436413409249955620529713180069974968758217792853710038672946340589515201689398256113570215826965992403002083936348270577566975252258251486545153540500328692649669581795701938171043644557429553354728323116446723255777067175070037672405031253717356902045848807827955555925096955387536928729974917695906671872547977016228597225991110402712958136897339485347664998552748701025287248159898393121577452154451516680062708829267277330568778354299373718032019254728628800851104802085865940065405729194010505458993451818001727573144758817457390861986495852108061803616318381024182687191063801369138903028346338577610315420664100019953983996559062922685136238326097267881151576209950545417644729377412951253230996926505552754217386393219649017146764961537356934659357518538339508556150417783270722495371211015390820234371215042673299109577809540252891872191211480517960659094189977049973450512443571541227876490634522860127909031386214345865850501020795785760829810290975650039373117499255873991159043222849089279593393676576776767511553031810727436193655911022034405269115378222425919034533395371475501786130156960564566700434708259243060370021322875387706736766841652934387690971277012457710799471212237284453603963682983392174182425677267694013335646016486088400836988018597820578871107772856661741406751164974705980329372137819904694325667537802795115488371168066254348980109675164431670808893550087096306384069347706053893884916066669368431876877490327096443538739178486716719316348306564642511021179487814022837941487930022334982662118331524975347527674919587622883940319152490295645482385496707337180670760872041990494666813002773172317938265196308518786937845025372057692687882480777634397528605416694918008846678813952661320502919954686086115764956445360747926950286135393393851130110687325120995705473771704078878369853956847169905786525498055365565929181164789863550463957208697214416055232794698640277423157701844428173118715515098012444934058200185344199842113577483390304513285000779554746397155529254509478160226565274974487901152106617619914103639257956033831912806106756663998620269500538250995824666574666598299306772627725997153380427522262853991735686476679466738116254830086649968284163740425482124025027122960781685205837146185292386717068427144502607823780936361034506818963518550761260265215671363718621396644137746563741825986935438405279252721984594136045828150795426104823725373925093238910860773837499565744963562310079532325282404465174476691593311027820574060349767525115057128307740656308829670476851644966714493784291117807674448888699292716735404685972323399226402570053416763786437886156530199644832346871405874673894542471822814133309994656417029646143620711719458524790961386262421131564728579805238355918483366053025401275372915597987223912036690337778866306379144310801084396993376277725237888719962190730973135501946992514957972481713294332798675802297435997156945305490390633629908122083211018912380876372800056079901516988116326654464461909730200288100084973369013937204538994007514072239042666258739857501419533880262217164435498325163082544215063163519886214945102920001612459174710190980693280191232236043362071399638388816394975080401433467179989883458617986858577917833216543844108070143048944343437461451900939204086488612572571971186893788257738521509776915373204558371798832231648205773511915815294955375084770902226057844185112015677112472592960734808466580776334783133404220108770918400541408882467237109179097901101288094307862364456580388298214408385647880084501384367759118653610191148569545192649852291015391344951322250784034502601961996242328297330308169311177848122934982170823883429257652947664282921698800706077520158836871574909470931838061572881157433073002760894257460976166025761706799061178177176104221903438602951677917093122525249520449623933098867490424267610257583301995904127900319934196131210452886020654000607814799469512543269563809542410826858747978727585133815235236857023797436791575615641581360559682363678960119966991032673868484091440652448964659686113662741887776033074646768145761291146167663266760423447564752277666238516198157373864586241682456839480882096313188772473219607396480728861546896627944678161965227293499685814513931881674382050115739466744267829340955433331786881160424005059704971283344186565866851549605343159126584986800746464718700564308069662918257377430643188296336308043358485498949529323254451989564537909500700639323015507166738956571876548069682080039760558140911686485989361816337672494106085015309132927876651112141027314585212242156317611809312611114910484290180854305036859647176619754169024448405795536322307499371767940831196429067668461778310757371578088765303452084798940537979590854904570659793660705128760852496174259823726006556138136428691038867332853839594225899793779283085881435729570447625758181280499156186757896253693429222376638953813660361213991729358535054474180349156396325739384310540481266319467314737973643464244381158433948134759055378098020219592510354868633976828270076177499699679134294924870489420804834383749975528620501586824952133630628507808078796554009789795991510353977904524537236305087424605084088037455187320901812027351024993962371815548710251704167099196923979633787803743726394750426134079295640927969438780175736766706348441707934363371494578024157511444758083531055609807097235951623567076814412448769898948421701164956848646369939901867833013995542869407163763814899772838829113921404628152749172496575516975353777125650665620532905848636523155148659605062509487181429600973237700402604266593150906481333353994035713997146443443686087932350659847155567146694715765177497515707444653017744109389923013366452124198280773003253708692870835258621033607386548722425992447594074029048491836222984807736379644639814657129613117359601267047328232962669363726912176979951309198128583360254097235786326812587630446470427520575009250204938426404208781462326195451379279375775837425443440677391743021546325726505835922323362654578752651998055594523813728778623113338158949563068356577716210127894851109745480373013810877360586999093367820580796132135745473879491745758941962971947620321792558618178367982032914343993783925792474300696356995288068506298679675007115564089226244383084314713262685776017752674427235937464186905164445744608789920111662089315677383167120861506983720000455610713805999710216085793076449392963123396091904658843578316094029605920192126973309957209744740091242442765571161527123535920161551909642335938587698385398119374010638161243193300591799805040847211321317196291405726959134113781567413356690555417173481479499775408300786298285756803742972273355416751075165383623301064533954825143912008981711118286619953583185481490871117706946160560168074067876672355319775440132742483449273335300137056471702490111626204699721853219236378554008001550508440097608037682774334111337261137037278393938870255849096673622402234107500485834959126427374357510876817848840366006895340568942251069246729393012747788236462251362289351352112488085081961601597398458555191812802753802438456837474743443096547784595921424108028262027322993612212117076140530258441391033823218876005028909815834563064330430277227976747892982728526925348154215304015867381263534394526735919286696871449945561144904879336014508725050056530551417732439967737123810659017308083879485720900278846333314265516910253413735093648836674264821396869299753204981650960925880341721136960222202527936677315159661058503989155344560692157680341993891829361306037785154377199065391857057534965287102926478776444350479031771330725492393905827881573398045918313632875820883383865344090677025028486738144602160422237666878893246696036417347130256113678720161246211798010690330456030669867652422460730258586374735824736930940639752685411854405044821437791010549393631967838598613947115139144358745873605960438093004376135001653421849706221952964625279267828515189419201510474132006208869174015601849687567910442223672439872051413176443808276774818859643746173868979487838515011029424079385167999791339859283995699268982550808755838308338635759026423302022290147247205012095066473147599579560509688825052911683511442606981181687585669545329993418158772753673097561570778192786477167111429633642553751600108066399361324429074277701283545877858531134160991539994562255221293708706606544106643742122700587018054007195071109613405209507418492978390311055555947933029772155344893102852960147216987323395824088035228519253866090089776349352043239857357203884255452129408354691895403564846695941765846397797252681700067181702945594641653987530564825455682331256523375482101143423418062231835555132783977932221698053929809345517092760244692072531559360220409920062747923102280259367149186500313572222275703004410634929336196789412643436557895493943119240495030223884647717650403461584836105955958057176025026475336482732990150908346866797435456211730169347637621421791591024402900589341032097233250938981024773165694887007744176251218039152747810318621937706693997495661624874480245371268343653818665282811207956682619702468585768423941595672234045276707525015296414728365574276330389209531518670579063000214174268699606708727374548407136109370405301818968988736057178968163052702460371876576094601943248362784217403341687572795113075980678186564361702939222216184392766520553386878302613421686074604434494555746509973511163657955235578034521685234156215814630342056328380771848946788059345378136429925275947196035848213630034615776910711671300719155794904590414682667945746125687820722527626695176727510770104158740419872374082548554554656120426161148206011657628312032880316677609577156782158769275344350961668850936873445627972580034028564295640641782544852708532460283624080612495800946977287989384874459285662542330483744359055871565017155727699016609108750964736533099551500583274601651987885307592435458933169003558557294795167529735527678889617395725040273874176574224008165085514580185108367570982149519375571872743349643411517063465255119514712003002217744224666408459795939377564282298565299914571775157940234892385126166626545086172888207216407546443200325375896053811165235112147454775259564686934812138290707048425884855651838978397766775942468408213738138941017318487851911008751830869133526532593129290177605530556081418248065011416670265116719883197522948619624813510019628852530719180895114676635446638660247241093440036746810664664070615135129943873388594703382778096189637215373077471256212678701816960063458002040432271690784376380520865910213382283432093940506587223011805207273633616885767172040040821128043958797113486040530685181500652188036306892322618967589228574272762618761489846205841791835709199933755092229541790007725790702679325240440781088388438662237388847406525684132183530156400804515209908300519879588940717753268919024805303096192340164927317413151779870776076867402320565613243418983581189365727352479179734545235349939037004745363965567867619882499856984032710482551063994926100523316292014474874401865029061713951094383919707829332365555499019924484266632533852551396745896435083845305640153749816194488473857329937782562085703525235947566595516974097595350198069635002168743422201600078671661128743000057315044747299314210448365512815002577149785309185006366167103050583246432211800066857773623424650347962093558668723770649858666021190728485402144218601357217218623242779722640769284480689656721160477785959802901787655179397714856635859523876463363936250535024126142868475129977345180331723217813430671158325975912639291248130344491095589336773875618483506095432855066139453150608385314655193920598509720169197159500355767737266581379987018185135352853540403855760468047982793698781767510946855773939887343745787823354483230056868828525034713934233846486727483592405549822810010599974634104712546018668159796501467393238930417353852056669727906240631905987613664433673682477902689419483488343211737417758921916992953849385943815765263307523623428020255336155951521187692643811418954442208945457006202929458462156667484449196377049070679664976158265825087466124179921046705761686898980498882848368272380679484263731793853730799213886672970038578731610938481694618322360690533323370171843661044684753115693249700189350608882461851503675889112510154638730235173343537621765200586349862010419695234613689132695501857722642496120828617465438694197861524402055095980112651811696285948707795159765566991038245985551889682881235105628758683861248467866913859215882637940126749730952451466171166579956896272337982429786911943105494000627692356568287167869947274156063164791244395263172227594485323692196159137440586150149305705371967154290920811378910881201484388526474672394027141956064608602524552218535184213872999884644860631162956425310330641993006702779126836125905996900199366852628729209812449550333551639637556783225270625271650119550690781519738623935882821932202413007432824581464908800944878549946119899136580420141168832413764964463477059146407617476466388531851316133431929307908468971912777528657286868057023481658111821236521248374309823641935471204607864036663707217027445619996807699375965490671617782242042721381496006581432036665617058545904646077342787994949670306899565435508508413634139773509848379849964080189808424916648733824685165572964439162217158692127973410610893743129343657018671003960353622842454140747512787533166297502825455562637224856979846088318883079540899579472927660826042361064734471761804727139924274328016731431595202409887490898152689067923343577486778344636549524336304898691104973255928388566210183783656234907663445320091322190657709448975754888841712800436648513003247487388887612701441442646828278226807324075517176968483353989368622402425152157006402652243769429050080633981217276023655607287474424635320167572252050331806824994484905202472871762183591824816298485375380948201670861954492948279279072175517585979374079072074190776219578000299216829780656927850288803725865917675184052990975692057901815718613658363234499043244240599208924119887546343995840287955151503717721159597981560598863304006264802160277883807560935157212903721893775727577751820890065051541045117194637863319585603319665388205659696770803588917102625487899378774160074957049931719912587725623315671196238746826814210090713436298915281829337238948941740363499628495651265856223448437540366339743628503693381833098262608691848679275366887946693723490706536755229974749192926291887094399976690883037345552910746889642902344549890913165829144333385205412062036183343740877452022101253856844763461634134091672497839262676777419123133273620477349975606835493387411681210751752216078389606284697433703726628077887871999325879285649803242350115052452738633080110505700736477558298239368133521697951711634361598149843822229813827650107060638352696540130915985858256829513010280888465892375500844710971738194727397656652880725131649917271031436186222687100333026407742064118215000792853036573386361174602136382111433214503628927495774030898783384059689624909143994031935248753532834308342283150663598999307598118640949930898390546086361517195926264252495371958780303540857193611236637726045069480423843369083044229888660138427538347486137052048393821580974619447130165361522530877271091824417032674544059092381067083419252923622496864263356175194380779693040015835995657402167304689740012234091313058581527983721533430477007659145354672828841180664943117822912274216837971715309146676883053972443549758156528764632185443185354485484040857645496998442266972016885752821696745109358220208090562054629184481312443292076541101185707380868224525469750895950067669652307457785156058080090978965055339103755221976209960173662897362081261603171216876783545504936424107773052752444889919114045608989598425748494736137926907827037267642068062335799150307600304933341507618375576426294988266184099794314089346842023916626044554396138233390487726017738346772525583833434167125416825114809329199387258219650156106063526247776269295270389098092754942178973525198653022002853936512675924368001132890908725725915533169570135260059740473924744992680736306127639891127801102614031191311628596247659705282150116607127229218387424918574977634333816463149732696913807822815574257981446834822964664133267380101047989580589288432629894334130209915942831941237558620155998356861762586283786910655293561189796495348880391589024019863208726286404533318123100529816605327058712475450114380832046052541663222804914914126424170060642018607420697441998311921261468281168816115497934027778862731487685529316361049690744125969874491025286483267088269272727572369643529518926625933474364049981487688415433337230545208790462743857988631765699677744592458970680440089597262894607221228114376426483735283041086271422585575219854203956350787591298520784115356576658198362354259178161869235388227730190483786527295550077736876707717462939560799036054571286992826023794949780225855461254992458257528914811706211371426504011898317340678404846652955103523744972420465074750722271410733532275340258725992354125442548774503106480250848723512840947657596770011484289517893992390756283259946846237261569394735356883943245302236113740632699633660156136063169207368566033448559812275718665986865973853370210881175538990187070878910385655092263306343170844525436141513473303993681186769984410850233250639083942881527787338165798922945088085014973959670693111775461518418066379868997252250863984651306896156408322094252348058911896350672731513620913094451554477888780016250956664255826160873743521875304000354634773031689035280750973915980838940501522893146358489011563769856245324941442789817649619679728192795304872689664652752154667295274782297153702731149871029948210655372171699586944510035917764558309060263396397961880726147580272991025064383198204124647637806581037564111590840811604103399716439217110922286710701962478632981251672430292041657115784844389180571169157313666472597202300305654301428727597736537949313935865219002723003934715854505673196866758467615041738264992786853681926195779267273536145029634100886719833987629922328616970867899615085635014693367889138461487986195247276596534879777233413251376244602590560530708292883362119170313320336338326509647058835112662738737761026835698258375159135139648267957645217236474040788901508029474688031021888843256656371978353909940148098006077221570296579647145027390485893829031281388721756716993102917255782667938268945121593368000709340282052790881912234090487667869177495143894466780439618616483664147966389086310800776461817173492249908319372186520300216682631207182892902419617934292684949716822142861783066038613991657008843145519115166931235102902447246913991064064577542882654560766000029009799109396777242183124276152568996338643290186110427126566489403418670113276438734375783150984635784344914570619224588554532069658578498392211008210786553615795886628569761446435314454416639411344373523660549955111344705279824991733552716506976940096683445019636870763428705923551370701925507957010067162299962859511476461660549401404506914913787797908280395522810475727455805732101378574250603614346108484551286442063654118911143481175596973264090674361058845529401461072589368826370063868745593456797280330086799267085003370368747861572185882776045142374133291425518943057411493980341580312752637973882829515490821116680219773878479005695116096377400706643781085535480092012151896236081604364588418159309757571307801870789264437427561139989849222191147407494486518924741676154878683335013964708243898124683414310253653900908939425910436150867044317661358740851138401498134092276171382591984934309052679229137637101654000962402864216719029870892805242847860778652318417338299627432128628816363898772909781320539241070150951400119319123279600201168195757018244465973946807312445719523397035974972890557961718260603249139580110546303808994826233580374231203902896790623604142637443303293349924326279977001864275228663103563704246976444287192846352781025689253614806500706967499146510791473127413312176978412577614951605646179808442527618231923261950292851212109760119534591199977350825706745426137429752340825656698849316985016095440401002475665180579534169004236119418861018783985478175216583403457161550644148150175664941049649974174020404277611642349595124238373290914276805876025564007753122422624741593853093710324434216303882828326104042996672081400217975003282115182493435240097186270810676862900221916667139939445767844755966116977407640070052348076497423579523781842664447774800831043497799129245170966756702851578697649214474494778202913931515590304234698924422064588254098987792082572802061200831742944565836385982158765838879099359170153843301721533185799067569769865304997554212179221281850719996566388695901943914790113178996737239867348945676018622373659240565658253632519959557221350592113225016860016067834006804013870448716332186151650285962798953965556344555031959430271459601648931877445532423324599388593578792120103602096286544692938812382983925258867550941375543695655580152593767389561321429782416481113902433833269037420556979449736904244989087961219770877670502423757705462896671405750421973383999461764610250018443201831170640687490452501659600183705186724250921561081943668974229246340977549254109834754410439204527445092007180718449076794988452480262407297927665609518060780792532059204855996145412915277780067562688812810982103201519715750133657275885042036869281536837507084016803338673052737678240120658948624944268682719119145963579891865285908348247466118443123706704129187944113960066301942370270776589916695523828141134461712746495106603886531621573311506237559483603868858139251310164549995315111161365204391456535500369611184466876106689644768719957189188091763468970875855689927071343824296134530070207635935111075111113605782824070966287132419524697533877440601414206227728097258579415710251556957863607640800423298533154495236302096420129324180755920426090416778292803241779855678855036844472920583192795535116488292888699287602538725620164414732037679993445795724430037646965491353780943420992830634029686898753769733733523794763239970812401764646423173706372532051464638295495377991781988198076544675568619313669149398905937848552351853209969701322597476119604454977849581435682135877734952168605265617795150622371691633784718632968407113971361006609863560911608099390190185512806940810536096368000456115020540719789056346270583727111916070088370228237088394124537286839768180869768313851172831344543989768930103322155635575668741895532795768339347468013049790192833900498393502290256266614783685097475605233240715636855113395209161406620062520766431762137831505295773917010359275048369136654404753809722474523689580710938637387837827619508113175102087958130307362151076880042435793584514094479085735088959333965769659226179852466970396698791055726770755514134420799040420500181195118280094483271149675900611211898362201198205205544471213627252207779431739256986158061214833881147078163332076049102506471096006662921133906312789701628786279793946549336241514289830000984333552783811561646752027548841440480495323071348536278003032632906668977743519254973841501505495031923854481863985601285042536476146071221843914616220460694571183280736829834712664179074152757855468915899023971389276930402062873785126374496504664050936243808598893962645923158244379110735503510000459741794264445782296977354147958493053457086603634015578299848593943994391670631913641709445886307868009468940136651420260688541338528103498500031679503023957185387763156178009108642702633749390105243106514854813703764624456038642486918548478606609830578683943475492035540687387238433575633366916155530294566176704256473667653044574886036961513483784720664120894168398440172973512361853054595575779244750440577198488663335539630464523696760389551480376780786006493471588961579712971376566571469448465037320648962768296028741773248579670690829688382389378881971518593433541130851469956761611077545603864591031424268340913044152248473369230328559288998053966538942762332259461622082455496730557471041711583831021581864813659794626207577966010802252612132715249624630695299592836034629089836272655053490917527295824844732347694344454644691364029223148519759934230777857509391665076426254566135421088520181364261696856387892761531069414027789093809895677260033278861300892827050576478282748711182707017247724392135994194280032114106504845957711131467365000896538081070775745381788414852347194973121569625536933126872569339256568022288109386590995056294447674383132469914363945779805234681539557390532700008937097339266355380551768951362462178544181558785700529358292621008238306786889613604223536897137871754117861914092342839967946139935936660810830340126202220810239989711027336814741164719769691979103814674133411616666708656470627816152630982137064920770806233019714434463792361663878727837669866175975892684358491864749571842356962541339322013221283138037388858303417079156368784128061049687020497713875365018563457510307377215880122604066716204006226595833039578172850713429850831643592428311820142293618537444782531137713676463222621473017800975428091838270916741851571433905016395744425209826760790621347333235594995562091579171259214444103724933042555002920973124682849654678401766456233310467547749262219833960908907947739722565443050656000790544875727754808218548206385878671228144090755418702809032835530723642218619202301555037525725509267342057290174846091022102123068947442653938628837758471892916510594507750706919624726534971490197882113422228001566195942172048645144896208831782764969458754183911849072416987745052912936041952174866210308905222032407012432495981451751364815951952517686127872425629622370395913930397150369585800449011900050198712078374527637949409521355104409113117939635424188003950575143913104507105713344362667792551380174032394706105457487200588200764074272141863882137711466401315531125592156669685137236757966272084924147691940154179764532574133915032029929379630861271668949540007064984351321061270821729626748890097782683626105943987057248742840213022840606896854723567396421678988478143563978610975256083999807392326199265788388088426993858557254663665557290473857018639997975216958749223948464028591128202693620115297466232210302372584043696798252736185768222036450891545280550875696685782063027577563885953398034921825193666719910107931024941509405723801394264128953235989444947522863417563675362121029434170321234764512813523058127056253158600874407826961506377937570946796051812033363658791402522835329365837487034638009370496650280494320665147849329700799958078443120385353755608628622419140487252135655207284166864973772277190496609319110332573180191094004210692068489393417995960865116733533161035691612957261862487490994896224110059140169976581769439247057781084858044780930168863460585705413123171051291626412592633550266176493455035785468065835654253548973875097672869305570726434069318590725722002435346343921762698655498851887383422001057987472148495099158759451331800177618654343336603177288174973488138847030913538400408923827473063417844178389772358840042873047502489549266570855161660908841304799969647835051462251099007905491945265219758708253540291231585952987873303991235912815557870152067863439336416870664867113732027278929016599975167288989111905815044395102215222187882297069808903388463745995276366050387433980078747673084836693336947629760185141253575731805549301556789438092848995111828997917782697452218730260089979544060367213213050116230721675726434272142443291250414786061894042517681656561188122268350137938356195548612079396928826103688201818820678297434209827591916585872929405276104540979171624474191849726909819641119748076961131351410245746447617113250614788695324899248130245705979426685314682045829691224263574921195502079343887277138120316544219626218802172712411384806532422491149018933637768365642468173417629394255072285391485487627555125589804379828418161293128165538149808908670152399416030071234535813625172047903881516943324003686176485272548585729892922334260286936997356245819334609045025235193813702219820656308979766865550351868885038992680217982946907787136404990758669100657384594629678154374680183188470107787614859530650313453769558355568590543316265018838807309988851753369347057613722434466739008012408903452307665942413344266439353528355841900686893630776252377997590614051484786976418299689575748851751678118030104051505336462072765701359397263068409764487119099597708459097411712257701749038543873219196796429028701220003167029053406537656052656443608022945728106460752716707109962217354957846887681586626584492320040405842976744986421310845576870526181358410768212508317809321854369425189370105126040602476307958787479295526469951074261144717588665961449570821259198363195440554235114380975227780417074232020214078814304023943660085450093148656930619570942120911010930904392496872183948978180213360182712167914690048135763881867460504856543486437518343379972634043202389465679646427221808668159321842115135210261885285279494200991137024882772146454036222208299169326127682059852620519801641068078598563102962535635164076027943663087313536881952460725361880687404909977672323894335669040578491410385157210056177809136667371343674139902949745914661948799385794076907257525964090308097831598313501776367879161537575803864345783161181889527237737171575790714000940402146464389638122590916198162607674550291405059516882227268212146220820626478481074816794378285478636190369336126805084018473922576773999564048473337418766331964891405685575849382040079857275956505450307882174393652032411711887162423335218369311340152062497051267482940930382565426735692185009986096381521707967289150475631127474908996336078177899103081942658536840481533274651994329225497174292223221851645237742139298524136326116705802662422409224192566207630541613225764173343651723306640653961204557749275457132554562812303491496628799331776360684103243368302361105791286788643363662641966411780682924263088932915918020202463268103196047498830984626594037561747666218721784848257072091741170012527084133707196357542822206875877392731994836007000043745942423764846893043056650612857823575710227497788561852545647176363595405002569335929088096485318501559037776053288868327721693063106140031566708725281043411270143640111249386900156711084014105982626601429523506485938052354110436209137748624663454077666794670393738314902985176500372998054777377207192001390386037583886361392243026780295959195659803389403537285386960056349709813999368242378197875163986028215004663372058021525298887598657936649510301238779113479727072481024713467571981227111808640102675532641355739665693902842923325303092474821636583959840766159473606007677365074637773291788631582762555740881759543718864278765834021220523751482796680978738101593078585310176164830063219436776404601906505338829187785837393999870863236445263538491863813635571720356558968266257471115708468792332135350135494168673680835268802711981247400131688496426757937786013677641532688621412056036520071427416639542108291703392479657967293708508980948510215307449367577101456293785362934774461835637946927089928914637549113890489520139972209507753853224718468696521929475713654932527451447569098063124509164387304010762569068634110731747281711068020009862370040329728031506421887681874836320036011136836175200642231209249270999335478787629701138690009436647620776810584295867903265320617715953749634366252420266544302741001067752262593494894612306706091552368511190236379615742164540961885433643280401795799360623354435918795430917104843723090875216653513477639342511924829882383733887101585420430742817845013887059687040578197836730496408576340835001532603709434471763056077143864140861875034015522641898297647780340326255227187945373823650399735915698927088431691012436287529842686093666818125100587886024079456763115563826192672799824795687956978960366424958258550757328131244852857612052255880771580581534443926530704777139617465053472395799667326347485410474188105379085194249782990474866553412024882773453158599589500824875751930129518533169232616567166755022989196829707721287582190779554245282346818284530691947062084578381090603612663596314436329549840201273046446915609583309117662448018510157837676034223884939290294839393930066749918602298093894889199469947941514372654593375939376444461546491500574456232250606506661351901798111567701509832127002991049591223076240098161868788570831960138487295556760210740416761302864772116621008782263890337322089491091957352784660099010116211934890932496215536795753871878511242927878041229562907959100803521026609147896511485404387471631683318887058638650221372342940390350885412823825641637304530100960586371166558922116948967903135536061338084341314513680403939719972782182858549476855548097471129654348604849528432747005319084061426868846599235895749775004514450677803807022562168037528262542755095368431100478706380828706957376019017907479706967366944938509325340169145079191105148346571014079835821570293572627230945688212999290701957251922639856587581403751594469019266817403288511863113335302311442902414414659853281283136680147006175176453881222360427783604383538395836545834379331040349472149406306333143203654239095956090794890427194487418153487015731610812334552936932754992499112125947914003699658540530746064420535893955311886435533129452180493407800816506982681540097141852838130706901893506715899320307209211160944764253793548369817616524726893323515001188922983000170286979502183339757283969072597461542752522995587733090397467399350827565433736588899934576758426701681028376242516007400770459779288488210067289763120420849057797216810117796831919903139068088960886247129088043930461940728402769622633648810951457396914530442002522164517390794397235715539490600171676046583303570374927883350997629685438074225383622676048515001498309916798954151989188001409534699831134829013088199470977536779367818445038999821304561599843658342095757472476657617037162498054066219958721341691207580604232061904093060075422074547519807247887979231332944232110089544018883584020738132988807218177324895051774881681239838624889218724554254404794609930005090469685585797833881608497397053186549187866803437833928339115787127593383169235251020987879870996827145164332914093521315031712605629275994504761399538091083695001748573891997099246028956055901667566406593398921188382510412558263178746585853682551099944094829734124074398290875855654493020751679160001881643357710099784092501700754708224063410963378532079317506690963604677284016031689660188067738471967303659638168108354414934637436313326091974418849638798647570308318222147842841708474441844895587621531176752298719772471297251623558449528940619688580598099415017036695334405887298908615161750262397242879918558417893736406539809429008877234948888098223672822727554783528518328117279515675628898167623216288053117416282146623820822184242090203998018289612665497068086932825631493565958891132927811159873570410692478911952750491377732015606782137212805067095422987540392395722356364330081791950255938655020105487680221424128207258362678080984356164309957508514009605372046413955640267620269119644624842622821148511990992013757763081921184425799310314915190448425395578090717807243788286406649555948212239852183008269141056429567004920297076480777108715879288581859024040501553825368624549746784253280040035245089261786809504122937196427424471097083153709495947413799535095747041938008786214152719106577305452488912076578747199520508326480395957108395662585439096117279086801907129742884702446769211743486939169871823069879751064047348079673507129814905427848692345381964978137161070061033568601887607276883892601071583344061229568314634045537784638766429462349705665567693346603872751027465921272117983406443232276011030328652880499628860174289055023594845470398026833551476066638864283707706909852849063686803640070328131776642430852311491743784648927769285005042787641402184615990619802513869454256857586683165637589901892400245523413628308233557424834750276585259466365848421573624426343171596561662311797611760734276276709655125795912772343557910803796870113965800507571231337690950161951168236367285409749641229998969714800646125366251574703514201947018468665447729677409154830625191461397398693937274938349024695167264093225930825341185403052367089597244525287203111009614083734306436910140350784623028855140827012926795108046809789841288053893087263451874881433184413296465783152884694185240350406689166336710612292335350845801309813839836834879112400647423334724625689007386313029767009877070794024534195298681037556415001331010145143157155884785994733795766979650036326188181045586671956567630639314797682645011053409293880992649298455176848089818507673596537976167505247950191000061425528093652672419094210107961486683005734386744347032990102971555938959307925739403067865161272482626436799241359038973699631556844417262656840660956514986304031071616082907490595701773360780580342698624882730108317356896120051976555733853359572063199630811806291133053339273789599251507133519375645846341218708203481186402740986036008427811293693369612606219417988653816258332407906024095146808829611509816616368434154391942855506038059617423714045295512457551154353802488748987163197315669558730696287728615781359822055422720116141197236854930521364588583997120883372619969581294879334548017156187316918544751189649051324971080329768335510729459507981180779114730297685054299197529198589911016688030908539603465349825398566686843942974019183122959427151944269023296594204521487994793550925810162719252316177425398758277317787725390512935198434171651397983425485046580794131762081575578578161410613096877413256225817568616965439499806081898773515993292585275073595461725916369407510062969064761009074305744059472633914762361534036472321586674381856381307170940497408440536922344745085078579072285849958981894058572678057409166934949752504105946828787767942909990093091765462855224692225430712097684921368553548429871344942092445307736382090877766964949576988012024893950321833370243411503872261821426418557067363147553851731781850604009150860203685104639446700664371981745394739883975051079180372976078713837736894075018561715193678244631156992822901745061781853666822659817968728334735791755246954794599980904956672854413399640736815488152220761259125228226499015654562881345549999552716087659996232157927266023153646714820346745706394873650204361559583613109914860908375088694793894018310068172380470056010763118751082916938391317642170241042071298700236041613595933143329809072237591698406323131341391711303441067684379263167335938704669715287583996286077448385717951804564276554532656595613549723016936269357803841386474606579953268200711598865500475300156832553901585746458678672316183626853544300145394850294666296940329539540061867896608491183590019747187338575432926634835779533739324724222000680506607527960504087770977118791932346437094709924381193705788368814364133246607426627072316493451246104399252675245624866459991362849470933529532346983900226044891112468938681690894303921509853770107688489432313907079927720606282213742933826505471910220498463257160140216902846830782862934713456307686630500522012514680089345006963716511278760029264886733823282673084438200862354954220749441277334102414210239277830693095514378315136099484696882664303259185013451533169521776534992308119894853740684225003757933686225659187041578263891254280019591747162991709382253931090598305716558091225540183755426078958666844541314003708259369123121527131520164919639389011930272364114919299989792231237330062257618203416352124403019897429325612401127579811766970944948132058689794303700266301683792031275785836923370207983392744628134046102890165549668228357892698521952377918346192592367760957943070242414738525305392294640214167531550459837027815510679271308504565767866335912116207726149000780477738821624958665012050813913003848616227972460720238370823044844009706834022870129026202934710100520408202669815824615176889407260630958369655521839434351645518795028647778835229204240279701120439590652205425706732602024360843079335090575343008023262045510227820196112637445362182569143864570721271627597828868322314838088962722014879992546772743291201886304439706760999419796230793923595579378065557676514452423786634253419325389074690943565625105434533832614481525787161953334646601960765534549740030361527233244119484328054564980880061258294250283438533492592419634246443153230151424845040491052076606821841255725559610953576531584348399868653631647483959831187202273895855079658523770752804855001756724777555401355010843538784895682902136539661835526841348932506635799770135672087329667041994851513351838014609872151408467547165212711277520960305138086963900050678514841441065698095950946694831654464834831998986804268539419308020538324499845867847699369244845758742673110612280460515105294843770834871953945319581123354409685997679864325579550598378104742691124541390963043360905994871042817427618730270604115676301048595781395310769418985650971399828298406946368956635498975965859953476605520732663349241243524960939132012127644663293514395259341878788093297549051029390707498854081609593281645081463926528206616649453603609607855498498521843209305976739403817234315227839026970310543595349517643981534265771582672718379429447468122311368002134779382577111684840748546106404949742235142751724604344924104043708453528895571092780815005252614840827518256489526151803127981136979213477740185368653733641207261091574036098545657234949871526024424125644222463112099693761981792423182013061225808154471578932054593676617934201500321947441612045257995949956342469630523906293327044390811604159142905718150744714733671630136255723589063532080122456733575260631015854115390418877831231431964145459811654114566379288519553399728365154361588574800296740913416089597883272183735630367075983412843298940856707653886404048429114200012099621732578160250047391675406288696568760130649158655122835326854866617023516610340674782099196486606209908031149326960242857014643568666608553787391334230640062076038504240396775242363471277784136868850614250720231387307800882888205901032365442594783591098418225874161443729795603918109558832454520706616239394052150669123873527603631570964685461561513040780371650509278070801454177617565952711419753999809959694035612115488681062158912321639171145111198106006775798214327812042593428981498634855086420633657951815208848763774056894143354010847993368447073299413448580142247044095938333256150186098905011076169107571529021112163330461779795396958785983281251255373405888904831917017528713603656796840468836208029726956004475304749763314631378768714860874826597862738322137104314100179979456040057015952001419833125965830206235252108296384280591229697281854602026700900778536311108245122433154962762922819812290036673195653325353144329429839778537588305839319841125889117289136072107085748188180093936157067652104944037968172215361011012277010942335183835456231009227601763397890443916988152461245876575630666884688302955655383753557857945783620654396442601377497778664366946487533828992310055005216967030620393286490350386242107968192369994105965045082360956337606455352631864549343606238707135839471719839621671904561988853638992657358871953302550094977625339980044254945826322816608625450731777500747950710596100629399382908825377563212432963260636606746994686556579768754881760024688528611224613091424111661680552059358066393176941749639680619486608468385781368715481624840072834309232325327731652542174548564281235952180926215626317103304041436801587161810263693154344050305116388706721480627777654031203822559908840947477349577697398435745747365688509752482641469078045352742409743983146974078347387266965372407647320916498779009220493996175557483987519618776310326664709834223355712046884299881898586899946936687991711773494756705565918123473524775830889311403150973341535124570624997847198830998825853185093064369164614721132097578871329030395226432973891068969787567689352115858664758467870971761636462494037257105388621827379672355819359815054841629833707546924333608913920384080283166416038361846823420415360798591301978441200786519407947552080392450956413314464577829180708822912109337023514701333101628061239500007617129990533474221747614895634328950684023895458094798384125165669665065878549355519651075270799280696306464120638323182444442635277847069001101521383504776650052964293645450222472727397979768568170742957620059395076267490035652998825280263064898352001024158233047114679001259516678240216524601676884570829403568811207912469153429790691585327376027053718435154110385302938067433585357789395085800322532366650130858989733348490363150334012012592999239377550400550649949876354083926620410974284998465945025744440178796139888609510578836857736829934270365217763708179923460166439895941635513253715185666255893083353521724479216992192113903136913906567193406904736864174910450638509188671563692401333529485364178421661766961931649543310550984287554346537969994863362998813998469245633483328291597855310955526591731318119549783003197492816380557093195056424057874204405062630042646986805027381480222989501768140956512407804502414611529579014523316675854806727009628116174702466041388853296546166588709551243300342744330380454995646391044707630837310914735906066667990481010816614389692404187405414873030244104068845155867330862042063202388139565984975156403439760546469541601001866682771086383347378322612030505372955675109528133616461943832562420755959310743196385836217120581903359692587627486734514043166357536017421304771484611622813813032811691850973852801231415473167254328723123255385757051666104943503681787615372375081379514522798005753305301033854084632270802920986305997888423013743702996584685484702616311017717076979028249700552894281469063908244497740504622594965998991647599600630490980034271438276249034438395225466286676898264364959555387025994124746272026152427127546672307143024122360550972782070493709947245560779053324057128938916716561914765093503943544731483014387174324111419575497395080786937130414847775766167216250462212066272993842291889627135084576768940427691592024058170001568563417671662505346860341242169486637301329700976459661071480331013059781460202835183219623645097312450985900108836119401488130075345473541373461354404714840783769390374580210937237956516898393169369436934920850858678094724703238281371908499080364014991087999771107555639160849062206384319767813917922902304545471147599613536074404484842130911786141978567375997829378931426524198354024439986727485417845435214747407531575210336303066094074504439299346643637468550020435322797760436871120941123515178514573195829663121658870273788003234506042335765874730264028985948269289496406235741398703444831453422290416192253087132298194354153902543474869760512761657113814853173024456411752244838571656006899212101017797009769451962456573353506960104055136127419642002784615904226045470333942371314803091774532373401562139205141459676524365804396332671403000743561782087683820141235468089393060695520000955902143366423163080830482944999103659296533532077057070928119359097806525274659458657051936954059207167452011641676796212634580119116935467247483196737927433503326701230714001084107997461011139893005860061901297996802311485336624074848756880979240935075302490222863799143803261906084630457332325484344222524856502001907386236267794921865669038763621460022472251724095266064589363874694021924547032001051874898546946682060172982181054644535007774721150849387707804040042005170809042960957169115483410364285911133018173825438819902871568608668952114502981371505360439685329238215358354326343348175920579144640875750108390178198141263105790813695817358080233065730628910839118608546445122296969639165921799933361105661631893629146771865504638971392214478575591445761941254133572548315648365540525300132976944051766714126171359387498823905967448888718036028159972621011708414787405495017917661690506041002357636772431087286448701809757758889396294725763378998783563793127267201795480356815307009421760990757123825418092402075280231860893529194409036048325640697224146851455152797855110575018018738066934308261827557965231964642473141650771593636479281268694701161777050063523857275103606651491289103206947116829234604808647860003509938498879078991803532749799619706700102659661821147543431737392396457803746065544800263809859156668832990412814526065229343128824787726815073662010654634554006745573175607274429605207994741842594594697721187938802309789141420229844361913207599158760369876973915021731576676175950211757525601320218499312117971764027854309992697753509816384276223018693979017859895589091162895379481477944185384748396862411881508878596604282372672816161739351594025370744390103508685485800335723027394630218653278116028051040175199124771328581153044599427177453349268782208386006043311872284159136851378027405154350732934753556917129144503362434777287674315851804523417485867387647810823305375827005286708812854826946328740319708879625769087374807134976068005658751063091393678711806994153170169021307706368061746555239874735928915826155355925506879765163591143130535169404505033549200058241920027337469626372504715584337932166496715574479020630516954685508213388601971950283968745375270998631734539983964996534084186403115672252338411994781370693944571241663194214164029499094316716200955058606705490194944944683136317588465131321008305123960967712981432574934264060059564479626522660232464480090654315020142617777338460871732776254703157687134949914489478114799539060422792724018074290123060033277677145824061274396000320368604781657111041791019900026239765206161559510106578779110225718702456782369689132285290402183201376234014065977086457451943756165761546182028022919628330441168387913728221157222011707908226580517390104872442903506973778328281301593926945233198527849447342044022912603822686857848673059243088458387357846318331744709662042306651013088685863062050539130928120775643299528718978322985816754690971794711387894083109973459415537540112550264886377336745682037973930909088293949415062231154077439183108996454522738754150022050520690984925231636085803799905596797827346809447449343644150871061700048510657122397719979029110357078478276980024369444794957752868909497697902254290516579170065492757303854287508703609422939696440987217740945091371627273431749075561042386094384219449809712374985348215799180649960848719176682386069861315456718863179605666959268775809413809783829669118265781593180684819984294606109032425028752736754931659483334725361254811607134850748481090755486949290662308409824438823861937649902136136243420693708658615578636788677529077387518871079102036059369047044223043627169204495100738189886734756544005190316406539828453194655191682608717811330401878546604417530065620570620924059748930314670563180215931818379400934198196269380341091286196408661221095540251796417887402725049022465131102247712102435057966519146635749257792786659652930780988243687435231319801943206325267400380265986302229754236964151351261704304784429198018996816577616904429198625789636642650111796158359269514389922896843644550333354848539884560137311697049043174654729207903915571999534242080858762692083024648182813485376536895083589003267921635230657802396551540766211339439597816754858353098933253582993452404161451929993028129593956699552534074823388302549057891585437794767711848925239770325032285593654445755644613762648104421552331866150757267958472858008331420491552172638497139405649717640892217645620403167191087978552227687967208542254199652674414399038591161338265808938399211776811923547424974635838342163147283389750013234756595479156946219043438697242382879636957112614154185114080775605847077757932448696382291629119156867114990178164070252632816911881766881881881565958605808218102219291465535107802853421826851102899610306548960952728755396034389123217116273824822892150301118987280748530944069591423170484839562178837040661277992899253899504302648016189812387464973115400716642623468757441259770380054043455733025339036387052856386130797515551538102244802657724512376723234288746147753143023721518887160264430280872229842856267367849604179916784147332799099906033578929009632469604791161853802292239196607894771387307191438699041467831830551877153031067448764729182109714217329603416425169818741001699202143568386855952790305290322650328451584363863281276599686623667429148393619694559793312130466902802344986981554568203753523575346211249154017825007143460776692721839165758225284976916468280254484593727412740570005301221881756894453132526415205141601072694310268908550515366367865080396861447778237966626819724363507182658331412361254020608411945417324602191158339833400955865477884520819326506102722330092122831187833392943167865649179628768003036542220871008401008288786425298320049180635528187937924227204958635716901374524506099826224999126656300750371311989064291432968337293919192592673567094294651750742547728031651230973980606241254355764009049412519161114068362817771784216710446202745538386667177398488643563461559319479970678191034536675223016800702687765071928958597058950050786425723318526713899641281551135676030809872123463841806447357297510953288407681754337040675828533461311771215296996813739790651582932776978484125626261764827641913217560996001651902999914117273992542757267558507859478056150106265033502397588454157548197191329658785012976175588231345404618601789499535794269133796479037886883105630988645084475297456657834751653712824803542653222400219251634723019834281996497627931665843146268877258079259170667463451019592940788319603740898482343553690990137482482373140917743779954210715033351155372908153535185995828198411682087981217347577180103650850954709228918892327160526280823465893992392069196590881980069727954503792548466644108514968905719252541701416188799693363461541006145588394069653468719017646807823164312674816859187452170894172818605379792995663938167686436003846940621447417460940567706238890512722331607718830351596485646910604368270360512109358216117236645714860735333773717632823964062819475758296042266310569275173617042749724564141510100935203980206752415428439590483457389828187665216659675756897039020870096493609892490377234720787075335910880504301301333497029747074372504222317571965655666297895652821198436297388273083207536546308670523850585196363661318718357200997711579795284469321224840239288011244812090727502508801228844381889133024762449793528105889136953583028432205244333732546913607782653747605290637342597641531028475181667240467105743855133307074215687018550408056727376012232964370813600176298339215751182826919463655871721100131863997427323859875036557825395932533395528215817625057269463906039487187769114718950213570244193229061214245332485846900016928790368933923286034065182317692875944890775022238507925892291331001516432806149454701687883430314978755880332191960465841725907362657004462054888282678486936562349003682996595509647939937758237527593373974361746268311716933751554825271983416096301828831679495918666158430877281118748429775775845073197143335710934712641317406178516944620026196071265327208967413786658630467549794280224906373548540125344931208125920188208856533842496404889032594486212900523488557009948502973456984199713133800555556284345513212461063230787550874032286603326653807356112294198372805066968815147130817578148888551174171331986861997659218422305833309849964434688737798130540328658609041274760416072958569662731610906556281943107678600214948626042433388850806445413810659034844369418975554053813546223950183808281820344280770115268863304354285944946767087158699779720417558946248909349009350464360906480397013863884893786400710775281667472395551897101654432379780028114357962344262331252524082482950762776080629608387509559796286129928479631074626488298623101300115220749577113203131727993762942360758047961964725749420845566094621671452349981506790891786567497753596088846290975595531360576273832417888747788617282793035368691069435141859247162581000500913506439514042080472322861570339384003495590825690848789727696168090006337637620230339837069349161183288225012024527003025470855979030539039183596410072486760523724906488557830644294460931874702590467189115751671479444950976906129949868778254081115384714153752323202194626181214750927427757602354665156082930221466664359897584871697018748973283080930662181147883864983088133811484203274962018531323553984995734333124905256961316879844621459841303481057796463824383035502953686891127965043151946092735609123115639316292775949307742394490923094932292458139226016916727928808429465522620458081580172558257786270431506645112879865684196333411963409533352064051203653849622344144621485402263895165745904612758120587115022268332777910984160447418912885746397769498871014945189435637306474727212783386748003577085764661125071538082209763719627024690430407487858312061834240371715587138412271264622849132165315076078859469424865841849256324092520694992392746043003450804896055113398183702473305571023768832058590110564244849084452558495595044238843278646978459781063545812935544442750043105526060020222477921067737126354512165810813169606587386733562385738254652437906555403125905477302625949735084077536910450902175238948755498918512322727767705531165168980449600095125735872776567589202788460188362917762732922366904645429885857183121157789584557479681048970232395770977254240959037705348971017121863521026047635303245917781856069906729829572666683816460904418786678316045875594725550042707213289603457145241195937395025921894450094826140390893494689132787882204254779650149123432923713329928647114360944120674771264887360818061196242103767140298757588973129148793253164906180931949091920200314079996474781370465432935481016209925612031686540536313362859411603138599324704855605353423888276632987437111462403869496219193617866821041422338947484881504020246209006243348548306926232392310596169379244619339128523475307025849974701166085931260253572104972716896026841017950246268262221245746702791272499974611704803458422600240242659393496245456980265258463672172623037608213604191529200440414272219698124520562349561389308557505959494523331450659204394737263193381325322792417750842380651691381278331821398724346310287663345411787351878405392972474515575526595787785592573002730911958400008324950428330814678329004379625900765138766277665902699362365763072189442531341292911791795480607341234572936440400291943554441546034726707778296575282746426411169987631378483783455849660300545631798073685683549357156626027358986427666851736099790149502547047645354381731762583529017426896201783053342287033756413525459731678707494624662502370880178564558959299313796420000007322143808216550977607704614182816468898278453769836657537261947677479275418998992237705263715410652049964108893266404017832632432576371492857755241697299794238283676693540155049040639830438184245493037283457365029951405278115049273858339534276488771507945104043606771087456518779648162057674807472992811869742412048204332002262462186224293351629049065711887556772211653835267564848585080380353875450785713185068366755005325377793791954738560726392713106071992452956100591774024871534048869036963809882126282383241458615168545740852139710129213249202856690333585325049204553268213193672679825432489807527703370603651400966251605172371892388746287042575223066617144501539163528840605701331648226447376060313205485585578320880973616895270899455589823658670271889254229129532474238547101860591742161422578835257719995393642255562102556633948656154852173973485069136593100811299915956165718907407609052716722177012204694205474940878632986949377984516796960373425447629029075148944604757633322409890781904527057808309700299348818896686129249137011354212415332703324075072261157690503187437514739385578856498119371347689096967805883749760069546083206551232243308491836118873270037401956562174502940506531640484399631818391394912495437909872772788876942623452120333649687144260299393605871110965537571682311598480902455299932349140590922612354133994281855157602291955006322708572616686389826813969170388163923358475107107709006007571046959816839278418654176843547535325253697531055243646782085800058532777738597693067464340590294297308896292784253293584867111132405159871970136290356175698532677178034828912800174068349700257192736518280809745449640114272516678977896988482412205203183674458985274459866574391035768806114509974955838999044865812965801428121065840265630236456280722561183508718062496567159960472158797286105424345723733127872469416834951330725859201800603907213736195454784517244511740770922060808801906204203680007181062919256665725147177252394716867929144051283219903726595032107915775619636147929703888825346848354854798258648112198475982782769607081757270104160494082312411698356451787602736760278106758926579121362772687432431691120249788377276981134344435725083255205509706028024077167174081857914319795188827353574268437612515777836988934391342584206620334688656429071279156168915219787730553515183972873674555256465961281212783931724472501537997885237108077275587927371479920341231400947896756857629718005639717825037487978079574886839684679529432907214499121654845059658934894373280202263607814127630801771674044444254393805601640119177170582227588919545597923052913318051398843471046990613610833245020133842166009788165247197300682978593042719166516765934222008544444491315940085454803654854824856066655946726437036704986608478391123430006134989932144002705561062068439274458310801757412260537830647398661953611345976913002477690972614272082250672292781497655730036441963650005846254577527009315539580709039420952392483643721737752082210437119716104239255101435065408936450236299234795796584971277637482322357502604569472009507007001595111384030017557822663023352391359186511515123300726879507126639607433697849023232001576695984593895625676685469787978608138424344737988416944431227728186556597907169613464742317626790271010329656936579420550192357396063596790591454560031628799247764112429702116757644034597331618061153281819634842303536068319597127978897640298220355256439431144052405222708701972956962916539322818301389330757870641637069839741164813378915670251067770127800897731005206077364660226796645860830961271702724462186954854617438103536125560973801826671534217298195432922600081535542990807815605421361739857782170558973561808832436244865835072884246077907039656619809801849113948378539208658929956923352860064345684002250403857194361962454536768403198988285124271481730548354909467622587965412080478871508475039368722723965927679692993737877776557569628519058089726739821037020348147369418985300636272652604464841605518857138651977552274967026962090262109554599934533831111889287985631125206369305368234210110708095370171133781845796927107945529809681108296015761999385265204734155628345555531631859475665889944948541884733014706918460625948881332146546610725265808480184875170741041531255548031239067451243219734813492586917408986589551100425586649279118733982179746034725558956957011046196444830913454260175587245069223909791080420193860150190036573429914472100068655613959020621636673561055044468844874117646491068707223220643642242825861091172500470503849743257390520079142600852503793191343858199762019143783015692968826576515142944989379830241917742868480446116429359424833638512284725605858480209676000970254097180585246633896358059029607473762139997783633217302365161507824389627797089449420887922028961727784611284635874275552964600891878203520794743886065675125219735864746504270184657656505674080528006580955050877777964946987868237673370498557680854763822252608938720832040278448860664834110788061003164037030348763785597336343774450939496894272693589430394962998069222576330358591304797580148662487600671526360687228182752679785522483217787322022698514390363426669767023457243367518185727223182653588164173537176990548131576540837757203851109496382552536158945372744482829859506131355520826101893921780221408068042650655074794116260262376526359959170091824056361449476430415092766054125497365433071355309200566672034082522986084876321873618201811703097325289316774131020674627219953330886154576144419989908030824541197310891907267427086006496731605957247566166338429696272935075618315363944173466197823954973344575192533169931638373933621283274257408527124943371153222310549291485851008187102261425288865443841362944416206696556914260359654417691026893422645192488384842157443248506579525576949594413723109955388114685752120601527863438738417601987965267550174012847499487023701876515703735071809061630863325243475813101588342389529619833960273802339875138334079852792621590456794227529239221674705155719939006559745577753492914337193633525712368955529323891321611036795976178676024083026076601015672692783223943656420092599992487386592426291921075792037352454989944267524485692225916061761890454216488425672047392636893984155955347454537172464168517291478582804742449479576956564523075412061572067285116449613742258497309486594705478854964772883156661544705648159600529128798249863849643640968402823861962764951870171600760623182175481815366862477640896846404997391699298940699813978226288344937220432783130504323075403208202507658438380432584521923169996872137600367100739534031354397785837069821016011545419219248222734459249297234640851951220602626255837898835582463718580547575561754429212822659719651602222544960371026486955832392678212672800139816989513431089192701435349996271991058317203485912120606976097585808736727316387705789380487398546958021358469054258996480895644383024319519621271257587432637463137716130125637536620988815206622019397800201262484109493941999489856073232554987471391667932257021370340548236780360916992419736980204893123600601506098859710202626805900973642833121046050217786356380529804063455688767336949606460372060287288624027972448722935140084406062673328409009377765895892540007051742510283005588760246574554064333297541174029574442777152198186975036289910268089091078072368208702018205967881305212146577253234399752092718316877756424588103231037331058802498294771507623475839569339617916508058194165607199791176096962285947891752000223361033762125609529670359358995606298271477362181646715728955427434666664615367817753094559686169034123593048790128669597614467037927055831126665839199771150479600362806426119339782784915888393516411717786454747410876073407415113669850446759035381470921369067436639313912169632684778694726245937168212189111405390938128284249309766344234247655038147358806259294139695793287378937918341079368878875660103923699129653103163999754215559504937542356584634895337270835459966746180824361203794234279467412673672023067661367187072329393103450306006631874664295098297513341025069314161381994408616308559156760629017232547203235319941194530459017770379431516466272086800327902855516003882123105135677038201069609020652410749549223528298694570512874295860575903732475858999785330912463120692340819554993790783194161590827447335848799669541644520168654611255799111833643887266352125417589437033791473098325524621216622780609152632687916767472654972330504144847651466730724672641116953666801250205772538461210474837699814932027117934697356876238740050137898879437969552947128321017481768445324798820215915778193392984598254920490686143992713985979566126717629560219986433466171150515605876150884583714980611803248465816724355473103695990421398920990891099593258774151159049037479783881014379206625715729572961850864554413696204636738746423178731143668956710977226523746778900834440727074399140207225776159993078249948159345526314915854642088623676362017875019666480929645602571546278579563923508908106509537277693815502834277222175846798147787535274805591483120732612849958650484368598970913762891474544129690427425197166986000923255542580517344985803179239366726833137620283206787054059936029958195839010205648380958976358498778213895229293267558057380303704095095198140964240433808254706426783490911569988981645493063439434712503925027527288633343380792944472645679514731238349243504688241817301433601802661825859917509897450851678206222474389201442350287168528411435537802063603964564131735418127344885752490350728505240633692608143222759641399920921724522392218764836903083795313749507183149020338831560249540137088740850002241914211347357695746677126869444698187670705879785239684540708664703999060529060967203932672794815164366770158844677148172441325971142982350839324733652097560888602436244963343394238467344842600759996636285806470614376345490291477278631821593648308769621308312698181187065644293866564911977976322016467054898497121731923982706637829280124306823420234870662549545666594373673156864779555963708605685831012078714838323330097993306629650452623017199707434523101045581965643607685563663551396147818715006479237233593309296480775296223916993177688338818202826016068094795956296528799409747707668471218447880066692634290374570076026389087139059366936272038532655922734357945276632587702898175422421462873952441584759114023154486055801008774145333128527035835325714136964993912685274507545324142560086366239463939956316230348896497891550416717961369752691308610000995056482875373616684091233369186756713381820044646400028070133926357021975284135263141566163937074385456592151906440619083740043048744224530741080433771446773225765162487980683203564523794952529192611793896923944275619415098597680935457691062188732445760142178342014557662316479619977128169851550560629490128458627529420586099572152114822199070911658682242041830547535693826861285261863168232738951811395930623911311064178643821071208557247238102536457961372592260540585479017415087242616633364625116001841001597692450212277578553983530837356640368779614114955295181599352280032588662316771521075605141396429149599578117650315918901944873737449885364779489520347671708584334822913670481787614243510492636286753546681033262298860303386441938051487719054244092580525694318316239072036424406594514110704467685595374155934247381022263780952009829358515869151093095700888373737188432465700830768715362476659716304503511383749935032574306093297076879072253381238706288253587525297963781838374353091716033775675406397340756485763999739860593829677751378940581841598225865180967755500851327188334686940943337310838132855012704024676722711714931136555741595438469058970061339406298692420239199245664172638696767160962271292040374894205097280850541028538289391668834372526954409098750876022519946576143107588056091900812554470365107612837426173399310604353729376735368545277907420866026088588777214531984742870297621254310832173445160627173011146621148307769471335679496221836990103051648338746337386976289779606834322913607615308718396493885692481613944616870777020505488364660150836391541641867477134804851427913988179108188579513060068703367019893935097975297201591124611491782629951236122189939683030877199181462848101270187181625259542877089750216516764783751146233491684896969994494975145798187313058961694213958174034733451442646738811612696148718303596964895143318944140425698055046110308292146502735349501904346391200707379175240690369832081342592360239212722223683779188039362979766982480762009046832249053777770598601092509227845583036281589274670898539589443553999821048452223599907068862090745477481238115559258991366015658342099457418552796708523147008356400443300116427646186068552558749631003409654950065397440975686138334182638777346500362656288359701616578023315957970829446736905559864252247830745885804350717605555444764799991326709603082446034919173553550660109356996485767260582442230453239585030308557959879571083283014970114396411687363659993843301190203305196714518800442993750032469717192137612119282248641718841962079614017021854052989654677645102285560390616183080318660860041728802767495215047656974440746479625200257030383053070549309729482344204739515451633766682237260422003200334134026927132818748353326227763079677952003643113249595843977342711413740482415428312730491840853730607447911162985068157125411185894427528841015492282949411900999860811911407924576930875871369453324955131522800699110441061173452111197258397012152589171635159913035432851852882551274605250846978365681359945187707674135497613790188776539742846186052689869942032424476177746920599740917910339431669067474574900405677153433803213957386021878153403512571654645139276072914122288087246086175998499663036115299596614877072713127956939159006480156579490608325557853524850328990936265569955665987015639309678530869762629964935765389976151050568470781026199048925442593344045401128123565133842632698971435068345630215363049475071704709526871490943533467283089087473467543721648906309057098114765236163622811588500446538840503993880591253456524345372846193549236089199254723930039699583882220413875555975125303349979385536830093047831059738841271873294054638590897603189072871426577002467113510155544649013542468180196053070273003016795252315996056196569528553800597270475256551912739857529769360928641639709771871203528721217406077810455943416833531200720711429554670602504700290729479168452563993525899293794479899508183493910786894365663675915945587661154831436875669272945304391468020750531841504712173137766731582917009101584594340035157305073548465555702951483445411812194285518409214613232951817667478233980267649967596319760243710978674904609196538981433110178947016665507328253223368597550308724990146575148684052927806662971851945733213342873566505347952705775477818268454251472722402007362028154086379697628680073871623158640235853230234160830327651838428984103683639235897793498776167246067564665557605259131034245200144850372812739813271597862589763129480384789493672608414371809909464455885508879405734988584042497157961095625501070335785112184709450848890200566802123069834477246201085031179071678156474823289703881686927542856998801430712807682800689264061572663180362527655549291016636449458063661798435062155890854579832587533551279170432116094109610546874637326232224104337303669264954987202199502172044149301518553135212295351576106256144228922662203055452780402114717824340393103235987381623288599517285998020651971397162109160654314841259062570704233784619916049874507621372512144587427382448704608800220069919037978177134516937217802818871776142785077489655497693624720332694292228004751786233755579535908679879468442879217805394214850877863306460062426230602924241630291733587155213309580407514083300725207008568050545514688560781965671570574895087213211035509919946521752527743050272993577734475433350235333082752360883902595538557766655802898342971914386676301345374547477016551443287350452082830991181307905589010358695667037135978252271560528301289471313877519699364497620041480554288635280824673045063667871244261967146707074733066278624893986817043119145773887880378848859866930563699816641286311721779392203618321159000478746470802439789481293826506532155096743823810353329354880028435116034295570862138154106385320766045295774457940637321848564590280051758919525759754879670899638022857356643332263221299377815094676608891184349537091076620897175649173649958139128852454564726828727598413178234160217261022759170549826524741513114503188304118427951813807308937718772182863408116582574112728619417143833327851640424543864486872642053891722778778201278653839375207773194106279273990955762750922347356001309919084512771114423151756589760865320651759351612395772199626761887298788163786193482558919802574559169121392222777081192568161548257161629696550109642620699701847583365092277905502372547722891298539309207782418536019304498269117333271530784628670915326070618070001369507962691803338624254745400792106669232350928374994799543840296431494409280578878888806783515299285968807153567472078259150957228888899659999120847527578629311765885276293794579206949738614635468582422680208975073166821816071016861050141417582686350023221047891509312093403166981990661823960310431096735215963798476467413929570523343538316301066927559301068469833349658344890491012594781383507125971928614794800312977862518816426620533781378193345813631869880137408507177187344550874145642657372107742051530958457272758887117703638367301537843761085251707077907194451282078935937060112656075457435117928591894872859527642621037823748173822798280109820899301215402910085938324851354284958997919795708210335407205868414408534951516567665651057944079176399756699418547904048737831179833659821419156182798192987444789453544313445076036734009148827437157288791234471491830336088106922977319497489640446203874760680141122030168115659568252153902787479282616703435717319677410511563610118900382880926387847124043658398725669752580034753528849650656732119089429918052291274143299829294237264082683600619117624890306441956632859458008096225710478962024032852398281115582955596240607131859627748187804125518743231979360959026083833876127554669791097783564759960949422999366006531086304649851008952005319606028259362211973056864827277631623525257598575610366889777139117766084635426858831604872133732112261416742947303446959443653414347150519192277620236021962120147132018765559531819275278152013096358485108096302014541573860682617542272238103736778625730481494140583609898495958668682978529757108413596254749077966721519078475997644025501837113508791214359545391166532997185800799568649395762094860262251077606645843313135059714816991885865543274115202703752796377252708009191525607047499509227393707606123300553688194560242023456951048733557848229455703733448244875680236688859676525757984648772170303075839549806392656156146716776815094093475957422527193993010883241473450421524105600685944647427064138499187902786551651438327956072419342327937715975520786331142647339057554635210151585822610592632363248900357653687922200055642605689198761459568336784648325324452018921820317702882875322009762247361826243589873659039171045349603857101499065556377876241911828140376672050638447618657551923305100608924717290733512223484922051797085320392990437271328703004726995111888412132205269945777186957565679763890403951311067580391139299916429226824315358552053423922899443442424411277676429557455554309337283724483928523323277380344073221133042115661944899363273932375801336770293982910808241373696351077858703618531117874570630064169513256161631751275022502021142837823794082504215231981227912108424881352820730624644863328802872442206321045626521243576300757376129328171153703365527156450665879541556953258660434399071792229270863205835337823233830916932918359548641881504940152707370170224579498737377013390505700400632577587822088325582910316276108277652350617209423498797532950983411811078097459718998124060221893752034058232684515745279392940718399584041862551996604874341156284930419982480230224648287935884877627198498476715235688744491759618034063146839608096162361494507154978670749184975417585816175944463258988262761005991016870909498998919790319588931589173608568228947608367170530329529518302504108069226769450921473161053309019091551149919458938450313365977752908815866747899982310173536033125821979422532955588249745522596428441439893990505700948349822015885698002775526194912816948302844292284496510206141406111607540992353925275524385430027673201411439402720793048020415691732522886346668983869444757344939788436838616728516595679972198667248357638911008026406696534248179694812744115429581895680496642232986805179360896783982560340343197843174909415880183264609209096352532996184859945144265910729703476846385604855585756985533571100836373532574742689590534316871561378432090002598115240946187471787532164510338681462166206639305913920612901482124339786990435078147073757962956598447816628477322824243146308383387368338768948962712449823240490017387803543694955433588317662575949670553284759776134792881949474170516806072064551205120498523416578474916895198476961657850691071116533227515897946394535546583774790161147963605342868161926966699867273315296305140999044706167357828258733080587254100712013161378914071020992698109639950135012862071656011207452866531157304770888968877413003552968930070944027126728103690689171437789776601980035765953018971508935562251272208829508358108567209520429076654113006958467076059120079463910314314978957974497191245385074305359263105079488052439219950725511571448966934643184334041946867703647895485443602901879991771371270880735123279590994590998486153994907756862304013183953499451137410104574757916079079005593027063478303562815921212464174720177998365976060489578822264618396423897403098503223815139573291931826772391095728753299006877746161037713376882542566493904975337772362457698470943178069694003440685442593049815023260544251279419603528026279497442865695470847737419256769825428911113542658797611199072533451416625347302238989487265002137043159733927016779954822594746728297647574045971899238397278506150671141302866327815744486276244531379984500021331403925413682580702200398005507796062813633750790534063344386636512792679150222602348797647120284310116221926941592948604760695698660414371093118459098421516844974987182048507081430286145308801314176766017939880184644352897687303105747593784349581840981864629314995281495005826386857967603957431843766314819025074164534291329744312989232295475713508269355112852367652615772070849483215938629586659228778038608966127050943792521259537124861342742789883241444634671194050959150817464122018747886185909107366947535763281719468555429626912935920228986348220070158536663332024549384495470843916193166136371788834042335823322007038356996548770399986195898994586308154072677127776799574640056171357790200806356897566892261560723543586569447486079291912229372214649642589131569887063280866792327476737825442381080768307233238144327350897922789430087952359620075317183719869870733070469929645178809077224997793877193707172351992331200926947334124093024736460618837662063391154804912253669727272025165571176703453429766956082811023399031434603264584252109255292405598460298939774506929402380696634734806220623168599152612688009572196361135840926976184616509851189326836230513395087630371094647459928337507497396835006537367548239644646999158915555665683804508720662626058452579502616248402807747869954556302536356560238673961964546848084456661939324179840599224064866487515071771513753349574735977499482217266689715731609668486905839574214190322983136010932501128688439190294100222655918166417322960371845675009801087638189094013938836540926294350362021009002590190660164884797372649549875511363330630202087100358991641620713043161503081847845304656483875397236058576799692705748948382842379855056810630520755972512217845703390408630333902713667661687005401354918901950899632965891232047582428090908360125381549747450547846146228714271740926439737373521209548391708554478581781343467322293607539292136157157016895270745112985460641842977561862993340076982277576226031922483871764852525046881089062573552395721789927819807931963412032504829306481374187480820574868784878276851796107268891530327120397024578251838756994571262869704625633519618025404225571731714104110511937981482562871460083971755685016034593723168634429796323415078026976826555453515979282456341272944324054812385108592915657458288901339440080188261554084025400342011970498808189544913194704231128478534275530197056631257433047118673519377119501696615388029096546364113079064615123811850679095933494637298605944983160120792603878525838990515830255493554410311667865601162991569450370063824557482564467864648687071772290157412821812099911038350593468623446906118831697070054654318305007027921859089826858278290321604484489336110502740586909834375684719358083377371236285061682259784169940404742463051796563662687323717369517811715623516335375084928954213956309323240404417626689287984166344101968056460834723375811579808761789018637686468481776000043626233037113910213762038932407536208561762655293014296522040083142829662179960249365123407623359938096290710585152238880179525785693442082389108770340854715514857058297474525087713394602281889619394897506133530353603062344659364421109696661905670694699122774719741538964617180453608946458895755985376670573177305389694314146283604680973745036951198566138694618896851486071447956602989343534999070235303216482263892447637318090609190366048381331541081667972072134137355599637243337650879236812307533531076574768322152067211646545995782580274421859968850290427849025224604718142027604495704352750678919422961825806346060987522788041203244048926745785765459211624258160955482487397919949746861244167292499859241366374137921090980132500217322287378692809501066608682914242098955727232483444024560479739658820994663719384009090072636008692902579801785594611079676279809886096389153123647262026325978278526120012505212958067189650227350799782190847105103462452921099350789773808524706039097609627456852837445023754348488249895742901204837062155525627218869871062195687193321300471570312685605138769348888896816817680458630620397827141426138992270281908401629727612487740062794444866982938136462338588720061258998231123508233776560318072869279262337834433912829504871419087366131945492563363344091485559470945674347240889865510746680985102365457832749605770132694672733043167178607028082579185966346688347950002026423065161825360493234373924209216374613802736101074812238375817121831319079109257347823901048631733370786224431370443579677921900826036395898517605895742910984533449814250451925110762091951208669900193599283868695753264074105894580525742219093951454019980752958232510416656155769529801521749870361530572367368831647028953452198417299914707625417947017879293883156038854957460637723627637277466676317726205689372529854271830113151798784138697971585901438693901497574454960104867088554975515335635190528932187181207897560603727604776059828372569186613881872351738803870941820987845478532376030662358400057572426496143706457640910199023600612352974422679753967346816334212921597004129479210549446832459818001779111420382130392167954345652809922064058626366171157696076651962078201923335371620862354895649210624883444736895325017466149242527089959273799575400296952515810800558928745466510734211450396094971069893616510107132577497536425025052627253694294312149598873330895264932231303867047475750668489882869799373653655661232052741526553262403872891751210672380687698648272092222435011811818687152514390526509590061680297206954497487726707357179953381001441612263484973179903899395818216497293869488947254641165488767298298513482624933463719674875212545363944447300912763223330069272573534690264512760237188211180822368795941573907283450741695229840306841339840927482933861802107631913044928402695160573207200285178296152597777871014498561866120595084083425766687093064939790222988521717541759837996315944166758541174950463810292237489003750173990737249170580974869406020601847810608192778023637979973534680050487162681538759565251686208613919454548783151368125371478719071114073742044979148354979962547878664239858490084709266249139996570172670310517923033694876058345324084113100185628074084983880962092458271480823460281816949015716127547587070090431813074388755916897870902455526893583504040851142852364069964058632713589557257317540014655652184941810894361951696355333490091311291046874734690158028536759960509475394964164874796239570296742677171163927979942654647627069197500208326902846668106348854552808620849355228607868151329702904553846356956876585103948881409056637503829807117906371102403457502182716178297252380717758380083694765768525029200562935296092910030422457655349098335346804960922612231018016112211614381095868381293949928345534946429058555870155025179548437112335972990251989775795340491390342876158486135212935781909626907880743397786420919520941553366222763721368726005473103969998757424324009785982717762923230168141404332096908166693197405641573936541685517515206083170080838301606222860851283506930215976304981536942265758896051384012538456148415172100027532642974127720069906427412240007010109493091498574012367947158955300156801223417099855858680584587016272623541598364298144052499382917780365300830638732729249129286325666024577226661624128478620905913867574560126941371638908999481491869649393835705580982868187780659610720847083371956359430280355322668834477286203049724833495792038710876096592005447390120447721636590660817119515373539806190473250409348234042455927908714158876021613962775714605179218725041779888621680800332903165536246014576924535438645867240818674088626569439263425044146383971974952859497915423529742825202893758637193831611225859149512267563705607678466471595199557455024264685041494009044411694523227612263631707386857971965848675622894619255118455091519717445069853914259217988388890249226755054087931428940811969033849774240178178656112225614740392853057216971104880918617791234527545829874056872655751426115665375636040380626418296146029172063063480591380749074033504136271347309195115615850263282644371443928859952778532396605319774477004655441794125037534077568500859979432977043291848049859530370861991331682005740221768745565078435225830046829666134543375922113201853698478923760938155465355919519579393135088543031071611973561300014481171313781319783451466593865562750755960951468528289031031209233970480038672951992864104792377858845531879966455098283655242910426931481587904182333868386056934543875294196826847655589712154940295562378110830714137262418302055361979557362923051158014731228582437177687840299014439929606033264702459645640661628450606493483095676522250274504448365725231537251449547507509436444990081762698699012223446687312263174543591114699769076554986730684572736962786695284607670584476082645270782037736309944740257367868992375385263173256529105178093509799858023896980992799880082320487451440565872366764863134494245335156946645511070733118626328485366323215713071187680673662450451516848154614152930037962722755604984814826187538992151565164843086965526786743668905261417498614614543077085399590338579180026271238643756709097051136725510852080654348580530660515807908832033288383438385913089289356474633325302842615955083117694479108331266069163454952840615565681354523631886557385659810741321446437826526057000713747586343847989707741240655931000336982082240547499640161206604154048046580485093600251612636491038678894232160643834385473189966105416253510866677570739978832254529374966072403383786102472640832021954277337781883976341284755227388969071671569233488994993730121145627596454274627640895393325934478075363723111743920722171809527349277532562208773604902533640107070633499650354769247512063954756508563622220781653795119893732192358874952518832093605942473002015364365174176716671934492278980506354428820278604561977627978040072410270901638360343980007552903437626050717901348514646652126549044773229243963937985999101852596531282663274731497918930472217295785274336242800874919061332920804245265585719871143093131481886282224397032621414311183686890667135964001624792220777240446188417070111754370006419635613977039728416775160565066217905747138340788352687649323309038445596318419609415551866278939633217425330603573282323940049113204962175967199759626636418573839663531980489757886722442833942547416432293742532451544957012183835253674697715847648350953819323237867687491381357498240648504254706076390960760757564643923521383951219943707340090177985542057645803166277567724707011829437039142238175751133007691517269519331918044806579270824241276622284732808146369462179151596385771188188978306367741389351399068104940122250215250622969621611292745721772150809496993942622612267990253094155690645312746550445382998816113153014735143421287043450701739493287460757334866026877308154858479032187113986564051810279467995478350353081362107166619736538598283031557401401248417556532781923456474832305141093032440227724636803483130233811863007010467852616423741994578069620042810446437425071121970872060165990532815214920667410107513901953674124029443102126491267877515117561831437755434558929354811404491761824528294377273050233389532494420832721805010254111375320142041304949573852735120992113330273797648096554690408362869488181180012164956582444566136444351609077973655406134070163983186310879843276239921934456429488018422730967883212207686412414983904419919262919132723199067187953082030049825360120290341101961315608847895877267195680701671898156920999859626094541921635860999728906517772429028604521527675884175057246560001928017055505906155612538597748107282193590815342513679342018247770267705991192704477416476223724062769405600831859313332449819619623937809451869498073735367731479820248155368437722687275216835477263689177752768927983962249658269663266746164647649397316926009409930158543688118426933732436010544515454535871287336645049778791102067972952520557886847468230262597949780203169627488709552865421697358688288545375468948729682864799614995495257396025053020551395042584784544322095728172554397197097791571762269445637816870329774045485345136476182510027776703849538780816718217344488132355556367665644417227526276369316606500905439936467969962615787351465321686755112740429289920524718648397334386593265614528434699546394317769006858351921962345935171757101677449420528451957185288438719038080778528755097248772869142844641196116877869248777117670259162382367350310952036023368774572414246175605741853371479864195449523263589371781082134852309584730081849599355437951636614140789925140650912280103252038663722491420934750743842664910339316425508090554650725520610957312148561446726297300869059650265855371239428526669259628558139521563046317458606165925923026683145045108979450627946401317821053999244717152828592764759887729336942901250147168297421175220368425853255571895022001263911166005865767541201619620757250849680887116861879250003442608255131418486823106145116102037352659233459076642803823230242914396093111990919278457157397447199694758492090490948880613762980903320174164849369833301600995697172117582253273171464392289853289624338734905448884661587736380138369811267879774741789892478998019710357595078322267869116416049129291701949998078861281122249964632381606200477392930845184794257610130385905326338236371231519029764360293279402890816498490359325205809368207745443533876414386794721665380637783135071935502190933267877613694470594013007423491348088978722486501974178432546657086266534657604260089749831552650340860445702191920787453472480109571051073715608630109469216726612790238499817909914259742788082047656076870414299298053432305135599964660160135962982858591845171856543485026650116087410900835220031463786539861982032788251488256605966151134587841920507478987984703201985117806481547638206016157868727779702574774666725446189493037116979585958151374005324542594847005742239390313702324953239738411722249465298243928513561456781333995526156106819362497157999141474751859844620854252579880634858094037874273953968690872487621687809725739643369684906547547715653402056317017256516939538783543118508288262218391173801039010112782313640597874885219171222011493077153761437770815699140471924463278147161498184579927288270097309765571902979762215746157363828067207122220915476099827080637419479952508818855650886105981482262370621742063290319367069996304556844212885781636375977515608042595200065901006580896796707210340155145458085087021245043910397481390415803713526285030809911404937516569784677163010149479263269970646511397857140105947673819482954542678905591405957778114066909937265271625834218088576866158514196962915286957066213771403967897243685787741785574583620635506685177827335542044770833747939512002029419973219851397398044052372502957928067077983012503317523889823565071143422167206384082567344697066684887444426013890897466280778321663186140527853496410653127181918751287313420281574778049479265578772823443195985610075898107836769220074913973252505747436141240487691714497003053001046733415057918832451117815518967525744235649065665309315080103299914041973494871708584722995721046634203802095876233772354846206029116682086666498944696209919741149428289563026929828794748326310382227723818834472389799451240343118998978653634779441772010623768365753197086966599946347822423518486631993327592201728938764988933671320764049740515786406271879684793328244939109867833691473292836461405284210439867860615354880020290440946298333361506813504764074116257205629394310912516516614778896603149791378366597670809234380033627514141685334268198157954769208421447904865131352344540685312527344184741903394282066384917523841751761691792492454789509026557691123131100290469900853959808664793786665850298286672716847105222009358987300764148940832322772663414180970984872590552974804300799238825537393776576695300418856995134406457883743627901722759135545686424112723652962577958252377893737433294504742203555692982821609255388153736984822240642713739102887190426636197469099461998485722615996195667313840543583473383242438594113278840433981783284496460359607882999874853250758353353949691763206714055274968847790912073302969034923698832707917915707825891238239848171418326562051367334874447837480319591796855373994364762339673258441879603892519661212656538055292282640925861777810025902770737193947617417328018484376822234755987115097304344372403108249688941290119744525746935809162364723270082726912836460390579229570769079009382816791863140723861591140166861169552088937165248671947901095319095256701896908036818027741865418915498049497315381751603724016829214515162395112807868724856564390503818058793283089035401963161393780411813491279671085517274882973805737859373682004769037242322204052502686155078427382730647090259138459860229931026042649201198259791804749676857375620971921625141803345412968572038616002097376232704437942136557090712350575794343516272690396106980025463235374548563796233980476246213833922930638702706655300296265382447586229858158308342694257734472007136921724755870537902975404906639192750446798478903034078652598305912680680779746008406342525779380816256801764184933998842924256682024137833544079708847713752242809730470045802907677893749149960970175963223126370677269310976673767432676001168066469066155553041112102676685502994925299390762854492708812935857812783955956471161131115551445861413197116126471769387066717812830667075655329212226542144630317516138672125818743284574392732332590115770690420823751729795554950980914238742319611310263129360202936058808153209856310378938032086885777979764336547543402638366161278180869875169773921142090880183059758681276556198492010284081476853626479649853594791425183238939365379669014564246330064520596855565998678225645209517145492055921385012304138310149724407048381324121112491715713799861371043773915935081849988951200263722229528302533473916151312668970383524809862203947565171289198287310713156230724652502365531549151398409334395627489374118990779874533818648649309875982400707370068772025896828843643395709879894590939661360015753145170361189156217554396950209202392947513266529951413083085782567066654275754796741193254534829448243674949311153944328478877237529711131431099213306759923160168734448025322952330042897541398548746240704160614962904376739011576679362087338600433866709916363738420413318934056370637760069924846962690767414553307424082437793498529219190453287672171339092808397260771877369829039011691187188508844405043628175716823674792071172818034638830719078741411054006207976686296328928013716323415210096026258480261426989735512782222672683547681265984742165058103787711369811591319035873956237205274214169431162695508939118393615423135120992883988452314116371314947178015770866771512593671628724158282663647673629350703817462430739476573441492990135359288511736257610813724519879716665423140392451870406495908064904794775514978634119659315681306071002355987365388545250870395027983784886610087182780850475128413675455027894334354585011162280720725362634170400523595997630290984949027906322046213835115247127857641420280949468905559579150740442812276464634446166528273213940050975859612101850593256196823032671660337675335168795772581275290554730016595983123716066601415087148551511076381582446874652156736396999134669523049423709669246411980204241453062258039097268400528685790798608144349728022013950653089337902876255963441328546930004085763909981056177273956322870086248425298893755734856985283896989089605390007889832181905900153999634513549783842781247992403892163506813560161095028852700764170019633335185084290802388063956904076941881758689185299511367520152648128926416889251439333397941894878100645986528037448516007983113155847022337470614695477146035579334851820260411802725678988624934709443512753299871122591400869761230964184363249856857260260466744227851575026654164960485838157218849904844237446747726792687383819676075681097474778806809488192937451318329192840073859949206321933949656562386283057689748565578801966675281661049459993395437750934571735081933119717138556196716255719989629877352420357508336708849652842161200918238127067378774185296349973841522360652779106076123480356445985579378897623032426880658200859658408551743158294177407746496075265474929996925635115653878995512826285808224951337348079523013766936654410339706042599193131057738623737022902317109013191881398241159362083268864466898961235315321726214201437565655835985458928790903567206668537070453318296232518093870345734632271683255699918856300185690113922305198450052550938107907278231078776546094693407593754275101390764298793371447396364209988633834801521036500262152800779016403196050664794960827063668872114570372022925130054068748345199115678739920024639883372793133826759239068725019955548661772178304618424079311639922584184281723607233794495731982589926252163960999575288242904065232957344653100793341819781144967383643564634617891065174045181352252434052684927869713153439236973251176274714537518283134074092933032095145638305136232238120240870711062243907485681026431202359756386671509764691406536708809270829521112967142673608750583951672359544052966700289586661545940643597177217870789685789740346970557135535772479886044734623165964899594115099801126583167344360698538445912369428692323972905877276755737092766236720157355635517302355515276215594067214186037560247384366211932981299313787816720292301944284231009701357590172646494660833667807207760046698201542241559339339344257997367197690872650901136890043757216078785387686951667182005254600507554621020812131318801263757249901975333056412505016074045934433284087492569625487271468502411980477527135908361028216647361944875737444984609355837588275927021529229494412625247384793030310508940855632448012580754555073340184363472204980302551378510834224337644487697456842686987349386043611767622110186729971859745343943702961055869016515552768158711564400318757955548602948189816268704873324537698097445635714760653291909028022345103353073137761264056266207521817536518232280847957273862060164444974494534016885777929926042520377600588302906862421883368298200294349171388937127923969959462770691524573805337997630852872225015185110137933225174428855305762317902361176952977291297168133844276311853294769046203689924195085072026002301714388861673006459789156864293261886068619062734016009897758826889085478267119070711151086937026831385138520505593612636931896541927208763483775916483576295340886223995896316057617178411473753203374645125274775438775439483187044843052106080339284440772860864937444610552395386595465208176171172710909886326409535734263679945313222573631353941537997423569452438558436284843129989262686587114019768536920847573426416240764390088363796249961074072706466313863515581765158800978766517126483770846231090151375955906851194084826577413094882682454235831484417074646548533660987878049334206832266634792815057967167895682620774482479274386804761515884272525924787570547312713518635190916787062302607333209474236974011821871849752035432725410682522836866043752948489701510453613724336176543340979994704976797490388316913831480262127617048678399560864881536885354275755689366611744042511118648995850406129946015903034999047044185918595152185306938868959435726403802886917528086429237788042435544406219009322073110518840708200176440098246375636279340682838638330375902894463262421763468389656445289701884377577272153744014430444372172798271844173582884135832699328726526383260190852641469699949116361958329407460532709953011729669893652113293289968836474695443939249645089351193184400414658628128812246373513670459893620099768156168142989169558611069480866234764167539663664696693540148913599953898590500216135732556201196511372442248148947230813302520420075573748883576200157824704962229588187237349901694622220688304133025723970769786041135947469147775240601148327503870460483537663698284826461719726288116802723567612097413058843914601902954186572695663384774632977504343637898177331671163910081371667641900710198848363928146047568893953297790287037298902183308011180229863543041909413709044114476771338056574104147116640779771460333564349774629736865016777458377146430640851703110199823339796498189204547244230448132594714202575236015626783173459247487500112806210469309958843315471201665675177244706021660635995165260016300354078241134521886340568849928401743131550847252523969536947545908909894077539751330738245722005443091492425931355386311599046345083693274546394296513422298290009212822306648106587488848712207735116894781501051470376504474751615601845401628481014908656287083930771283206965856828751310866520148218959566148630683620017845171908687515755572466319834343028227220620635628895198237776405141942522780456486853390759869022805228017516356219388940435405638232748219510209844121566348953189377369500068316652105518713720938905360341613727196847177793761033137133627846621485132064941991678534178153438202155798286646383205870574165066384581954925297806988270919306126807990620346740367495677959879019065426069137911413798768136014253586544086330446592279533225166386802248101713192056242558030135953967880969358643182694641644180350702886195004468659295585939362665847727215709643731112320629621658633120452998608374867706980621074164438234160224409875510223669549258955249380796529618619120891719151958102541302388336185715541066758992582633787069228545635247956792015147179004881488090593251392337039949124834713549345282092416404273544619411145068394721350370623828727085842838645497653456568601622174199727706414352563752702434007121622146497112912039663277520451884395080150018032930278950143933513104312116631167673074516564466048241547759163773858242963764072404965160234943160447226924890019255662781858450092479631692593259660819652146285084097713931999546890526850618260168771878474956915511854433467436588476563955948469148099339590342486848242697736464092621271212332404128394015064215332641601369908590794234994388812149265074238674071781642457072831402974310699357592908378387313117391164796480661213028821722653786201713514731734948615972102505087920777912835231682143103276143451153952011241010323087861037427384379942187768422921993999235341797128831986103255921798427257592114881640317852093014274658741042942429994576726463823532661032469753345736410371161573134652477750079868889976129883346631644299683774888633305208285368676846687437845054773764872199751661766578076159247757716011662066902753326498910687097002133520096705253470641150942650583302890616828382357349685881625679799754591421062372111903608539629176867856502103971207328463358837691239257071612932119887428369981291955450787869719237329803913223713982437320948241806157167612171430744114981957002001156293569079113296238817982786142568182195956214271026369364220280934691142781886746205307713413609591101486006285923756992627842587424414952105424588275773743443676484644314158671065660314268848428228302750734940900126086336717747114128995039068642491630615127368136744552862935607418607518505848145668772018024690940278816557601855883270321807704333180809931690723103470781947291916207585258317904041368512304899369694301671438092553597027992246530362665712291960970915801198734323650624217594189756150153293114234630364795282465809349271016385702831291297716182342551865291185252872740419851090386593342667309773452759866262040124970348617571030266936465421447475747637381207733384284862587746546243468669925956920435354129742886694974416037028731090285423145094251322038368202236297532421543061364420856605201416397760986266244160189903210415556484673090003612410977943762154449045896982177087966522690421153800790789447501311089390912207806249853772808516125475936064391867437752511355592249378396858362723788878612465112597893197930362209881535695201728858007412384380154590367570492279702370506345836784156207350893777359361463193636182628486088925434150462978243186586170832514979293417471276366118653397577055803822219867100126506143443648112685156098846382798176703791743980706367455144033626532030191290993481935828893441474813641327586334677013984806752521726558503789218513752859051478121124470908075862870733264513470559130028553455745571560661130885647924126370612525811242185930037676363939784102254589186326726274083516074025565858341770524184180722323442329270430613134365325878358363889162726539943993145602378526458383943234858461303427782567170667664021667573032842108252774523116513319250588614217556905488076051668384778611149258568577290332868695714863508865242111742578983072465804821372553851067052391908547838056810775680602535730913927425651793620433857194620257922197256686818986328494180713691014792974789700539748402158488034226246325545568741913816426520675163553896415804712656085400967091328977974053029623320755184832648412621251290093872189560242603462787565921898400430386637025873566798745643174984419199197965435569762366199052731934342482341752336013078325389841726883570123866503212446456149777008728570920211964422885408278957784007027237924128236480684232503952976735969041022144217589800661880143992566193105949891520789741750385509025185882549206995295366089499422127413401227248804036613929552954341579000143655791990684658713222456741684779613425111175835086850699289981637392452324831374998207010366417693068343912454261403792089620593153602038476617002749074267527336106806628210828384454789429597419642128106820671793069428066105014588881383584262201685929432760699840007354373208650410041748490540887220626469402672396866030901924027390640770575869439874536750688618208319712754330384084545676450607623012588279450798733167332899837773850762952891524006150552387982999679589068616162102646282777642775678623062128681420061876018519396481354575938768092094481794744082339278728778326879246397775427865362477249884439150081483465274271613681962268445534733565262284655135920362575441042832598221781954029726362734634512947686893160808225371514143821300147044367498362141175971055638687317913510191132953755560544671832614995175825464723851913805253432091337468724366934585867171882145915546918898233946162456731211560217234796376448232708371719288375684133413183020357762026839573966138025972147725196207040561054972346601800354394802693731941859882396974149595315904357813041065362686372785054526239267627903546897150088467718285161808875235096893296045529571794306283737097664635655110257041053429286734174261302735861930881798123965424375756662120814182079280046403058360597462030981143528774214086117142026150360398875743187600970121344814590392145337107666071951123355138432141906980686110886582962079530761172875749506002446722145154694631959130079084360551054319984684951089840787105946318484201830442791588729860243145826269857951879294073900099822125785384666804882482189329644372952944076918921083869874081979821904087890379550395297200634203612421303444355765360269915407852067239745395463943930213132862126137455764862026591013704401390993743863169297977921580705559644778959707006628467135474146428897989258073791502782140426107934414078456640709379294822247770297244395186853793650444331688959632305700567041265438202672973618641725855403023900909542973217712526727855689834001344193966844907748383724769231589184628764508389045711946427184678626621967664412732669776413645927794545921037981331404717569026488528030005136138097749518167637085987753435759167948190214957459667956094584000190042754444258028749104530931140357016997041563656495841613722089784920804947363021012588837830286019321045095204868499626703883307370879335528669094254202998099231514261373183941748310831625698116427513858931632287855212783473509628249633813928094465657025793948917570483831291476386833513807004224811498382777892547485085851135754250585168261777926283312549815755813686896148767164968800406930114829387887613630157450525184238271672308426364076626693711335463677556371857658110733756530130285251363408196230346702011495035288161140413527382431070509478913324802803068269514110595928069123983976828856403252074675351777419747272983467642480733864441083197668981642516430880703886889787246459726735603968136934593883308803343438409514758521694813031439337336022745441204599726282919216211500343425687115516773172061995469426668255870248972193184422554597849462748059655381129190466485959358142476110198264413308805781762211484144479742713090477654768686582330582377755961685479408800246527198191438644017971184456613470027921290681758753093418758611750339568733632896192240916030508807009926291726611814962310433792188152045249163956048629886981981773895173687028405733307547074517250074851909935353405573533105824555375693371062133992582762335789445344760531941037243573606989545453706604685879579130632894404849801481747569315070609304270065179625468192591458821588170951222836158794905895330441371544919751571372021108440792960055470663394162749201552631559100230702866541583079076925796588961532584666427927683790140828175824054589561217615241706799061884200458940518261690362155531019298898499429443114276731231134590339363075310163224121608857652331061919043427997426117017994008439945230865119182122695841847165980317810102971237413114074971837160852070109227223960481246871722929956303907048634756011591752627220555857309099191547148375558993332611903711605487598532422510303529800693473304942204052494216540932473385193237846761876073360315164168387654170692915790949375101058591994104532452413953887948247399006866357571149677445864284002880225696988738028745225495425124005128247869106683968297225783343557929935374935208629261800155652375925247581644611363800206239783684628118686824511110109377441969313705220758304495444883445880288130676469443944011794594813987533122474026360511313682207155758658436746958487396260643800645533009655642502270820206521436035348269449451338679509192766271865676647152077539526888675845821104930141753713421232498772060487794241228476196441121040077779380461043198565437298678869369265369283860182436941944790262958494430080992917603185359549258067572031688508623895631535176203470265793968276620085912121660468426021557372193102474589762829569863926612759970088122162500193209936563376482953127591502906205402531858336143375664190473405719719410587011553838033760291134977286131721250270597902845705513354622463995121946637041474781839000020990705206493595658717342119868946849886638860127108765690621881852293890364106352056262796817215985546551140589112602062284572731141242222974296177349595772591752626634506429674209216435188185469223452984900942395561330917815799976250732904412702612264277929927773593675251267061371840363688927931372293425246681200628596944202268568833315169455978640966024278143193437838425016494009017327209701229162213576153537258946601664645834713112214588899309018599905545377793275834337795881967399086905636281773899952139901549833931384704772179614697226420393740135085600406799957414499040469921426852126096758230386286938740909831660568147627092061667520643827280167607437342891021269367208455813069484448284959780555090475010254860293089665704279775468363676685311726838537918373087818845195297570315525427456335461666145538591065197817375065455909932799796012947390761724708446320604835781770031517521916524980829193823914510826501018325547688648258131522688227688141570357732484513047992144802349115677041707407667567707979433158095722460346585844357699881173842928302047625106335221785865653006051435517757177266679033155541719070481753530771024298611810718907104249155363798251557569844405863906330782421762628014109053976749075100323293215175965661353929828535559227012459113108524404493093443218567589699241581746236697115101616304793354748503589711620344298938740019917198048088909559050297771430055171405062876830446548323200825974856447332371236244656682891826462417158291567561568943355928899366849526416018676358140893961818907305114516619807314443303112619048763887596258905531929737966163127057332041574116028535115537696783731769025807744593585105271013570297528025563742951723125104299946560780047846248110420311707247741366352260419843216127249079522394373294875410191923198941065343083271154298295807492929414617357440880702578576164335300348398727062373523325499676608511987775921078717990072955228505157463297679415395202754044414541371504465096956730856415907413465296845553341749636809393455380771266113371181798969691478738918228290620817972698957800789277315944645019680873104153488996597283716994280146753386293331853164191173600665325532885229024881827225379582962651967797535015418307588832025663426200188963155200179728788911674949972037897043737250424894821322902329744892610786980958982243210453092270837236077194013769381361050905458084400372045451821296648295568352971400325744063441595894830035447981244275683463043510683005582502982456287544823602766334974859911712453308928884182888172658231753072479153395843579406913728596749675639414597295650642170559320253006272098444979250862009679559429692671710840542779251624657956886824494999770721760735093120338818343727075999547954491503690725872772026039820088466609303288205229240269939546528325042834349903940243197103970030915639068499464361938048907702845508451930538906651468316704422189256252383216662847658822593088982994208514851568768824644291362977415890490527316658602456048730461356457563193196314522611281213870795172552013901253706143414413922875202632492941244434044124604036554790950863155028797938814080290142055869758498224207088804219735237587740098665888645830207669703975579627015664101761760311198601198986228484327439085236847578256577391905673181830460200700791371814104006960623420021888953231677046064416177476744518974947459976816934679825305652748164974362004514510512616638104943738682927756299100543603693642840542458165768989083481376696571004846841093515025075304185373207679805039789559305779536545145711561225596232453004900435566119000435140298959520429178202431202579014126913595283926325144633221820968398138921066763588313590200092916716968602083335321301340100016169310886913297519014596679317861396945267970303629531301599996197656325912165746497716890173456780939408397345962677578804981343217687159378918586479891383997452265547450856142059717159646787284119395221482711334450086312647747935604069772738635693196983677501250135240659914945371751500811345431390397554136222186259240219974140952009940380484197746861839768206795683044272495659037605575087422363260767479038217148330497529026414132208202958676985474484323465058979768472065422376149416853096132708170338100142277666528596621517696139738716500264821476661111157348845799845241755157815292215480241018339869347726871796026440731622513291879763312784671115923379550303425628170561404468604716118773924373445169681607508228774871629025063472000038428973505458078564172541805818488876593437409609940377856399712175392855636148614713858002182385210557827253692175355444859210850461006221816214163694925837674667515320870964428039174321595454847653303248749305558305737883848914987475556141366147797231926450984155101152491877097332202716937488470616950528859323372111590094112894288488048995088274867377047009668759739073200824457703606236634316824703783683398508055241067013276421939432399539285694263327929442454540025122632223987470510529984639220880104725404016987652386189868685731057091490735003858908842270416347933755584080462095479623444394395745621307622855647544436922116853233115101631124319013103117445423105214205587878318362747882019304468313262334928256146701408034183058388196760431581083366620758819186887695705653478934307793741329584932236760605492931100886720189661723221495077139728773153427874719152872289213045230767599486217540791327686508921211399811545652164236629226620610765347081926634202431831580029913964185744816807225864136961708528469747820806327110066239322919316076699458619767533392352096091129349064812434824097243680070227600073143813338343475285484898917301039129069187602946277735010032978543044613210811390878180190486886667276260608143662851189227953327923520634426540810314745465741722934388855835216222230469837257170437789146696163700102267374894383520939399038018988788671026381924712010851303427540080093470477790158374134417632776795627225481794989441590469877552600338498016534374434543330618234689754857704132838552059647927255486779102629342807386237804066618257519965021500140787666552198764232228688666653396470024017505936357995860823640109321759183006881723910732862553835083451685317804740381329583388277461933667483216367088719286571971294811782627155789753652360603406846486704461694586059317583064826643978105756291189014661742764300755839324528833958986368360976017596451072674327644814956828468912541941744184727318859485684839144561675741741847294239289325014498358775745418497503156656756612628341106077660453899684914646802039801915264790402041159845850277146276686476023320820288870399858937378348678687482241854074445708945810015486639715856883129785421338988888368454359420388274858729575792203044036370385688918196183504332888064721064220928141832203346450130019498153168049578222445606852120345790934079435515015330765021132836681334043016772325926458725743767698990642688215019301405142294587242332811912999770941961218426543365415741845137836365215580905331455007692527574723519459062854383197148047913547132003575271894633532743515490341311781588775796704714563990905209503893381070352701146309241522464225343057096353558234177100462251036320054934209873042092532222965578141181928407907089898517927760246927333219834724613207230232198819302318247528482429123303605994662177264044756584170436109870930002163871420290186884805416800003700376821368870500355275345323922542626188436521551977803665985176949366358917616659370021137765977898568092332506165744815165101725398853840308780212409616723215914170264837889815061649053886008677488661504144215225354649063221361485501771144279526750977440708878222157759702331315385149306091591576890885571426049663281673842289621644040636907279588141699659876474622172362044812757026412293876634250506810815423055975612954806053431401797480932392787781755747959060181155880648318124707477313190561006563729969149322981721598927061487964076060359053326127230547004444122699075849363024310487447632278960195183483838358545748897349723227053712746011344756029125991341910556071070857189656162246164868941751407292120480916087442582829145569238127585528545883711440762572395782070176236543024711359353652686288710513374027985537957368384781744342062012884119721353110008003141738091268845749845584866063958970155406993284098389707820574059247166459650964386934887348309094346650433421719324382522295454010316129895477614255990638023448308106351663166852452234268440880004030021794403650015580967598260665395533717478027638733001893004930903340795205219722746455751707155126530993155673356354540058765150058549552560007125636654558848809876865086937186877544874591376347939559508317446019106748656611994380735530170786341777785274570848603000292553736757468576141246309971002342298759969551352594794551420653439794383830813792567945351512736143875368763497549520742049809030880290213830077722183492672523495086234660373565857803823083018878203916092119934573322209877031199483695161205181636542214753406438801313073709019223960032467700464300372849992617393335224732213668144291974084604558204049945958447759264467128051879919867731670832181263829459871024675655585278376389690373117857666240510213222377178711477295551092229749838632449515182093253527889759968447068482453821775008294597253311894964882650081666097404665632066456640304984115971187229219107997274156065595672646538811991884075073987742180104684389167448292487928214114550399043992795165704222320594131623916228360805071930775048895988546298512089905421917683459617534366820853753983380076210396916427372916948254478561530889903817366394784511487327269550131097641662010504237118699150268990946821561098878073677598219302716899674357224679043105156874788870457471164122787992185994359049753352875752642235674119633800916912406912150793308137355583048315612214961865515442155355580170600626057057150301107140495117246193873597882556860969750340742998377460417410669311693792552038114326185119718598536499117108831017026769681865901116195079449811165472642425597871464003511313221396071924813445565047012637844630213114985103853214839071832221427502915222390011582494146078014039118214879091584582108608007362155335803600439185503958328985028048663913319206028494297206994787621450644220546081420157128216825837003206153142526419985537532575765872340049981934230252462304737576698280876887597103446988325834504243223697712376711056484532462570099871535314373607362940174578525745279269689838423753888412405223228907860743106951512247093147770597066734771365757119040349611649993931732979520042957363373270237777913573990729513692784199574253337186189163216223022600044681062688056524353036489741647488955922479173687071086697151201650223769844154547771530260685043520491881926900514134211756282910132170602261681991333767955118287444161635549499572714269031033380658368079803283207939221397176117265178392647748336004016454757493929540673096841063996831673005639800919630776219839710872265512695911004553802171175877861843280469734075345748055568426684583071158669919153889049193422802313250902136931926997417865398943508104299463446407380758383981605666266123793751803994352690932479055406873278608536749310785139957093908627110016669560775600903742267337751750737913340685130496227571401584041800360053813544132517608441573868752560656638405522973370320644962674671451276749057322736207904311321909101464167428960435841988439092856100166706896499723981016702633378215537910944351993732338021936762822775653106158517150344645219998962471513657150619948537848153920823571905329978885802232797291402624927671014143562857059978181541649048951283007422443517597350260402866876349572445759729195083794566548845282480867525673561460251548904001293376874690713338420312680838433354056999343223348405841817789275587964421159431356791234519925507962762002155411395086156458029917212164081432990473845549491651395414105029790329669377207600710452460555353117412252414419983640394535383093273346147005510889373302445325867133913765099366108346625564872713560313960213486366682573248116455071784869097821446998826874861929166810359231533161977987542268158985490987665911978237374051392018512059774499769163757657533071503466680189752100971310370470642663469810405722555915064751582954025822427443577966512859017871764449620433213522313677355331145869163394546099572793056845394265054495504576796118961432143125483080143321019157780893482956726992587115701122562463548934542511930372601046467210905316838455617279425029489755689389586015130963636350490858863106197870202976580896497531267998981578306461419323004043700077200628454195060604960936055157479610758446706228704053573613235659506292454946521870022374333679960224813664038767140019338332028045912955445170826602962156981935693487179523898138279971147070153944782097134189141344158717922949029540294663097298163680116004329548246520966913970839126689477296494869248270331464852192054979843810640300558037173547436836687751701446898083131158910212435554578767887835682009676953554741021623007332240978274476585224292176117965129219112311517262270482821120033421043563947925949502037507789367660871762340841125285656436076639061992145809729110060201778407514703937277328646731308058254781522891793840008947338427897864461461461947911433775224020667268816465302325436063706847035797859598724297891490832571926033333121883432933716544220433173859039685288441762487216639696759794677299918038523865112784660631572859744033962813114300055402711336219869152345511324526676351065210753979609240235301241181455460870704916275708030565839989723855734131344233997498849136613754858897545563483399659984787374941775421573001582490109291827501420839578479895670533477894937435090487643752472053850157961606594677979170544616827392125371347864133629192438679521764803555827311223054494768941691931267984540401292147087610968960939675248922203322769315421317398291649071153956487714408918995935557360438089628748452826046881670502770365060874317198061215127986266952954640098824767451918731706239790883124147127284231095181760164671466284532540741095861058759411719363050924945552249610224279263308544170371094264187296648681427956179126565556078808018529160526412844620712488740312944862285556135740246047160259636563453456835713409347610162743991651185507402996078007069166213675177614499934164022293486311390069802443872285859827850263766674301111505502668787809385398384774793519780446493611431524719995834890524544855458100718525212347462831884004772690027343999160787313236395430573989019715746204913988631009048282155623332277817719354367338686929857504590923053336606789150211917788971837409414415206083708636877473028892940924373461097603114241108968362989410095583138095894856794410716445474658287113983017270980020617957859504683855683138704137522516692986189720298101148233078588372907454967804799680447052880928245431629940398732850129875364903898343187697475522298758772980822864677324766897982825762031434016576455087047128731226797709354759182184242762415658331373385157213926840338157801099816739189952122399862237979979785285583886546712644349537030096809206186495839799539433338490908247646161158890092300375417332340771572274026253959423814674212688292505860000851780759272345025565686358280671112114091160787062802884931937488447228232532205479280067274082323048426454279160012841707079914962333322674701663758800644717574299068321625731262088656142472428073222788870734730295661365068928221165215156080204580472608320090026596477998989044431832396880779750519778241219677422155828353406895016283782842951292494781606330837405451997742669155491834217471907386275080083438893832760571818033011462935658657385050107667640205172795970623023547074017900175517851840330472314912660040001857173200748782930328423261653717440647087576962617423866041226018722085977190067460220067252558582431408802122157448081490763671511664914892419079711227983111937621196814660366514674517159682787481352121563887613657207159919466579818735437921570247118911906502241632450744745133475022014178447945448039952717481791761203559569275519352969902816827255193498777219526398127367447666186134515470200870137005608188947322799010289428245389026355981576498526148600207449560234308142621672981288023940153702356975085365442200161865322265619274579869149597583687185868408746619973444254803910928831144058767859949369143466497015098618596481340168704735386041089875622352962670199835204772666100531733185536504675024976646472510056427124332956215549334442991645495517064600726050858058811147912318274099834457554284416309145622968942591359318656815823089549114297878396320173360915387937097329867963318293564504331588840335547482700361729916683488956264092829800533383341118148473220432660167149373734708543380572275221573672870634561175319740598944884788550582218295589165985577369483698481648722492974548578360013787483085482684067056731542229666047666555221782095362244082886747355938134578278897822302486552341306423927781853951690874374437892302952550780756878820164047535099885373973495450800905097168913890134194164504748874705369442066824967542164106995161947089408416998162659749744524856732493454413127983183333332686576536500709935524435356794815768578294060605045387320851212642449975746488054127866811967112702940095370479266495746277178319012778928818500598188055445586992989399299338651227431208197007776758547484346811619956351283519978331745657398312808610752881581959511184226010469880957287846209915836565980998765136330037513515027041001421131280028878957177300782786409913602046850708913805896251499266384676743726095768850909213815600665397742372192072491714621708334211156335594722286290473865337883925162093582076689807691287646347639748880407356546967577165647676699881124600847665481551322709160612386802184455585883437926507213062618495829271597568067230616741001924314870468175586832800319646184402293870471645469536242166266742395716104459199829078259406998371158576260343919951105048317181515144928012088036306520340293541170600904400702817260432660177118533340791630443737018077367033039052172390799108935729697158949492838847696901030092854401001630861361986322467698052971685349844617143418941582479944121254709945081164033888766678574065361987015409661899770503035726349204262221330648899374685355318390193031149987786470781603415900352368651759270225029422298397476626188472910743237148255293019197860247913429330829230526718035523845292105842898132928491030326772559679365664754862016155620024703491078898214739685791979753685204251182315590846127107431824365507250388137500922417973213865462687284192777116865288709902263266451699650705018219939921097473191883131716882463660269564419513085091593246422332416845529128923061281763794339190831462414091581412005717936634613684587371293770422044406178977146086460406261629875818083383785218479265089484244490624989297950999530334393017868453360328545061457150917114455533001432291020929068445326088299052141066467252482064153080806468380028037968331674109268974192546377472508425418182987892620154810690580349669353212288480320928138351132634986804711703822796241808469334025668808984320927137884557257697455253768924665187226925655737975931143693138050784470864235134493047038792856402729834813329890604981762148545211874187567618186729297739011159598174788015775565457476293433041751425079929994938519861468742349022637268519630076669023607921298590611691848883052572980096957013349296225241455702128742194263499073619101837842706242279464648203096865347029798571210779905782262361452658674135597886601811590802611043622538155179249931646282878878300296946190879514800230309718218187031235874993170738279336862209658401949660851270939596248386241214828717965048879386692205467655763624651174947666508108205658063219104863057562700959551010217201873722670898335654902162157117785381735882557258745745008967778047318757821428299213417537997966186426283488870705747532328308041788464277753354138605203856300500203609483862073495572472766894506031091560506333859411590837879944428753111905842660727458733232208290231893734205406502227752338174203131479248703719732787514537456087438450050993669646919794853314277374923776385162471679937577038113029333029097407345953075426681644480225116848487325090541202813688611045943524889553632704207958245572550446908973818725161504689130968930662971592754164789584809969871079057476540555962335257892876215519944866950490387600059767278891489230739157116308393004875577798121842420374461705834584866393597818831566588637290689504878710057406650687445036077212253353135396160573692523792348745236252129050457206783478756692451489931573800332847349984145531718504044206083486140150996409624996081923781800953642733067410643257904293382990257186273424366857267454077402068927052775661341325714653146498462790977806335543594150045657149580954570950064957411653873254650448016035541269474207943338609178727655129158375683568659181345317067572637770925739633889796856844296992750409641342011017324958523260119489622366435572715787114395415697329004027121340341328969142255024674437359509832962995880907474241137846871170591165091048950334519893868043782519296049859101066687435416224192918123077176981136691951164824778134233639292891229861682585327279229743778420516169192281864797079744807493838184725118474948569550333760580637200265976515045614407565025160727174245173721255937743701617788409343675250342171238113367187619870179338474376175622514049248620268966293348931083555670776689445751593431786326892418992431593056176642587885679768275346796992821066534715935617743811248582464032509594057187125884786945019033888254251565836152628055484355521585565941352729881313845175359859613882745861217695909823790323185631234908701913559342448670584960885204960842713025813741011455467819383021876297280048963566973185615807895522411718811357274130011146883714896352797200285008443043588009119207907061641215509650125364204611252451401758186291587596576914160160923899083830736819932771532374990548444459384115758685989123662154336489397806865103443153534744472877521954764255103527251376461736949995765446239261826316993190640431516002455409024479005552969079392914930462044489983826369712782458642534710764516485210627098273837627078934873664820423914274539330224154310507508293492110851031679508467414236704894203760076302119788654357829129291118700994759351353403653365078504991239702517983405521429355211399398633446608838439724325407237574285977467680777038615671107307377560931766799941577454596815690361813511434774570639103817392658604355129425695019228341284871099925269402428806614858500821988596736995396321610304058955282598599497616001237547587093320382995635418172737870256485304007004672975857701274655467811468630755420131474659336090924699890741710859653119934193196597646973592741138964966169771043988370277848424326502658624966605220554075434629100540852933585499762060465507402960935355613877871249207967081388875257497910435477009175413219751057763263630224382405449275216377094993606430268714341493836759073256426094491456986292580798980393783523323820509139875018703093218175716473568898290994751283069473803833158441905973718206018162585125929151502587068510360255257598751800225070868239518049496263171270635368338904359062580095087913051266169653523111768203927264406918701688244016903262503229117320333313638935265092465182883862208642676873785867691294402489824440259850677389464719426889534312600611361136358893761357092066396847991159645907217438213190752526141598030783303951167598861739454678376058104096241225370699771495456121918358915766563696440822310141391572906117357547243308501697465027552620230239432387396077837794385004998381286538487312027987912273289666839508640464064147535890590319351985984710291168363781739730883316291704508457296083121580521322603938521490756562286536233821347822338988605094647111402394073699875303546664677803085657180319109288852915196032989146330718042359800633916778409657928051726192932961096456888589806667633459691890365264699751555533610836796822370900725977193497430282826280549390349556922803961051856192242520344774763119427905080077281586372765516132462231151782013442051906725780217111893255377580158727562374141375075066317684649712019991830207616377060784133167654179148146596060214897209398378540095718126816306266878204108523589342061598634884160931126830011870231431030010711202174057283499432787625322619481009487280150049662482984881291581844808899721337896018751183662294014997768705741398768626522903308725242021948629482417914826245243955657633540583718611742395785451847108843619407092884768310729391154056284756049135078910135406828575587645921709292855587521738218143136135114954889314547142761171990140210077333996135723715943095016676490917345212299780998430010817420156332039617777124390360113160195423163839001688492897092419604163410174653053902856843431473779062408500031011016755321511604856309980125051867817173743006134815974914095954105748841486320820625923968870134039186352879656783271210234362251988950223996695361878738671487837901437453844620326156987496384945172130117939382828430342466782071189995907497618603046994117216294093965342545802485947279732177072401699349452108582812355553069692954128415862526508469062271861844758006246697712039497800511710731416651803136155682127491715667533577800633477643357582283110641139236171622596731568564533176516035186902512627495102639619888852668429444844854791616211514191914558665828971932365714273895363011066354766865097908012301322495492121571350631245535980383792747834077926896354020919363344762535602758298711688567736907866682874420901115189198048308282568753287224043060348638831532959752300896288362933968923401576003275328887585855167670106016417202306998765728714020914153350808929819736615207994739038517000225506445240483139499743904437390881454229234407301614008050933020206687298239207506953589257086618565253430545726689005504252658287429743813595165946227583031763124718593693723142611157394400607186175151183284410407680872179299808816498539874804828791105155010919198504998588059297110177185760152902441196930092965173751859233941131675745155237694456374381031264855938222157252324176226459482180010871592813579975486180775749086074144822307401278023596521276412331241268248111549546750228111805835564147770745288647769454590501394174283764340761616410881134664687447353562036941734985169009896162425076748267134393024052906581628025084427806444245427040614664543228993068581994143274545061555567637027973717189395538146166056796717743809585862818298869681021313274056966136590544617223049797498962993443634291923961452019295564303750046364746770528487366338072476255492969543623228952550009605189137674976251033598390963042508907218051729972760912750096651907237510381274282686910222995601961976729230975331632511547502159154970671257795859695810609862149805153988394365961527566612121882938928078939638733925674631202392158370649717588096984693585081578527505216768288121024230015511811876232086006145345251827650365882386316573133332162769612874942771286310320552146488859401372845617611364065935465942162780199259441454333711161059924546078044988988531869330950269988172450754189122948161985826633185087332166537419978197745019252418884777006820857590070569278588500926062035477724564993967740370761215960115734758747908843135271299018620611466237610321716405790268401827958210336400766305446636160654877382319664943091255586765333345755215995425381814878892534406109827829053495047873522847886378403072779756607392182450364921120932287304119137037868039297811276094700251443037062573044884101840617218607032294957895755338103574128367787640876499525329456985640330388073561948979677504465248281317598322641286179462005074434321516671531773071945297256374725871121121186034769942085134647389323013804876382713153281041853302961438137828433776549540271323345694133595157099700062418971742805917796619558264012796556270603414756896314980774126705466920437547531833565304287798556744771879288864961606108258929072845181835762511163390706076087006638549876414968690465142985685216965517132182846754541468781824988816004976958501515243321389253016463663054136276318232226209730242149785072287031964558840057878934629464732148510133879580840089596492970386041024877922951869867472153974746386306717204725252772070764297817967661991173720737457060354365954225181101907878967183398867076159817842243247549322167084601594667638568810913464747949257384887326385875911899383099258801916170411890429707961496857386741106332874367057724613269344551665701633084060581595001729845587595054998880034271326605762440173560477205554122873640880938166907423307935862141044254230348937929404869301511073517103809633887521563432300537147510304159180227675971115638509508745731901624732968631169965432518474671528617465832979472180343376910427237702382371623189458123509628580651937071384559948528922660017592833266957017636033166341383479553207557649445697670267655029815376001456239185349051494710277375115623876231420043468347838898307037996364182371999710419669985608080068384903492360693420310485279510482188945695323318310086439513278746158572289283377353332045663756266076709804175728965972568881098295525783535793286329091587156288121830664644011682429443766924452166314498528579866834928983612648966865652959427193698032788367867289123996219911421989015711775714366318076439301563188095160860675011839923924264948359579528444428519818262486082969695965424529060058369601485272967523297216954095595578994948283849725065299063772786773690629639349159665252094906784783340112354315052100495468885465929236724274771074032820462085365566438948816645816581558257975110539507501152339804317454719704654716397746157132148895319156748077901076514449786121269476134753877575966722624412538110848137696967365579714836372659209041161496272272464549154893527013305699012364470772399954684576421158737597053400236313472507767697450241130653911478177881010938078559552751604972909763692342380022361636318090238904519324129764628705935171444150612455158046485652815566193729776030458834977255978766326801339254646013803752928507428611638692971903530725986684641880603222435561845763627731835673330688869491736217362634784736325732306740576337625782898571080839463274007711175334806771521183669191187967093316320859193454275475168850498618490605933305835685339890862767310638776797888932966081148511836495523267940081363561807126896672288197072163940855725017599349228264930726096334392400220646995803210023310848655674101534602939635271888177178086493146966848238163597668837096677486122655723222464779263622229302892383538881174598037997485863848830387687010424970965166642080173088811528428532668370698909017597903656881487884383433506588154341077803346300179283351328187513282350343466234396403900013437218454466559328600579441757443358997898106288816134770499125047345341351850103241456095418927460930004907202349800806756241120774134611548424312240372318469801429653902388960029473238593293365378659253879700663987599285853079438343666569346666811338159251242279399460694525007798125506941360281376780677910972866865758822637415571967112349945516386677012287258128592504506750663961961313103905249325654994280750178069659088525572224176368386677797455236558880820398923651571604065498217333434806303555498615850757101556013445722771200362154042446639674395683420378544158964005241664920291305743435220400890509572070619234001698463565878617970829063331533052466326605989210858713107980858520521164513576345399312663662684841117513247177283646637523390331677342212682165846941028373984972709231153136437459974245929855517228427413429981484814996300085200795179880935273078725850768675409745548096620693878626500463946045490703387642096784321342906963084166920352878186386253634602409382579857805272128087383208838808383012096949409312142494288927812023411741774550650343266681135555335087795942222653803586363991321552478881144642315409211979533942533851746467291472011078363880959120707424956223561927380033942827849432616462444109677668966696431728475473546706649137353380867229520451454041955164924241935405102439296886412736153338535935076576727216740648422480194220176234829761659846108051673308452606552039323617568026458915873772033477599782584133468644111859008026824603586238227995328635208198962411649671722983617994244020614647313459542175564157662814517103365396740393709280610069070459116204035155724260375480791871183269501805250279999855832066650823408130815108556730599201698162601192633699452013459534616027001955136583300718741581235124190380465893061434306618742409045229527815208147593345011005669209935061821893727442771468576191147994480798347139425558098953174875879151516713274508229477624935706090353599826468962862072652778137408388204061453138320413800641784842729697168411790021160370738222910341527388974821652558220053496390898342621295690182679248077192536598967837334998049141395634277979737098154267326709804099341279868985961825169563995139747004254936160457236710082804942233585490957931003682595257190635118509678820623091618608027967495029471038373240665989580958018640817419237666222700559182976040525143653722968827058451856583842060973268939820639467664376310355156844667734732443477274847829368608041368960933989818663544602409861512426357569307231423496932639213108486272423565469825648555197479456336878798873401389420310681383993617108544619568392462427646854497518327867650267274586547021973967931341408293566947632814990660238131556613225957461278003889039727259795897676542505150623136443905388787820206526038621344594107913936608421630273741533626981497488896654538908138152495810712546215076469264922141384384953781232082144505691826162335336058610708800352134656561322248543346195129394482677259149564659396837604826369985885049336002556688611001708888507271026243507984409808979197984253059126644480285031266292053781390365830362442690166544802029364428833714944417439894656938244116141717475076133369123619921136837990633301985382371079030591243080931631052622436811566540850043088048860637010365270969679805268454638976449684872273149351435067213302531987369069136163879251937242979159852192539761798381471593783539346737400255367206841435656676896375262130300175396586712670573096326980866534222110907213163032791931956803821026278534149838802995311786232288487795797212276700661034180848655874812421813994080704595363335929567933629345734943264202362657087191035766204401173162474255237859783279241542522819022890590385685850616173761309471426729017623577523691644629173757180728997357980086946524948418533601740974422659050778406450750532224086459768976964646991091760286321391585495909329573120172582246827619663306737872726668607483623855755512747215137448471680425256370631278982014387578322796809473314672094594530484884073918105255198247603968501856520052791503164746015631523183411058242731160609232448790602857203137238575500809709458234979609914704159970140187158413244354377425550709902853054094295918186143046215071831895662094252347837093962493902080310920808235957209709862296836618363167484124648330833601504898468710072373028704355393094023843989694198479785959071861191731793640855614981053159540056978143517091616558114626564415716811958838145992588986571719933588374534252356659446688567450698924700593890716602728557052066152889045778138442796843424311038460371166038807281146360636201415545029742714772635366136899585319141991711792548258310796592207307767084604909332627005228058361731004479930629272863083106082135741015269359717409422971373316594099978280876931368151309992045635530511897270354783027127205950453128922299627479188281474168166281751956986869877033387858533978664912116848503004238091125430950833927235756256848701254650470849315970357155942955141293323889884444176293418783837165580140099007910704883174854098252800550242427870496564114691364754580914116780942119183749341915379207846745673460746298289054191556333519279579327397708469547731778014542987803696233388257182979499650212462657101924019367213630540053670160729575523664900730829677943076540670433793095892613070711729237729970439893808420135694672459495351828699532159204044193907174313250840360183064638370327348642935059943537173839866689301346262735768655412536639143933857488971664535550877692141394141847912183625908374575263983001059335537087720219898361479419071379489821220508807687280062940047094219376365899185095627997140784659317456883176920675619612627336697172960384912669464261525720393907236584462115354129632060098360960644031872453556584271907430694666907093301824756999790742375236884123818228365690923910800181014036459188165924727901818020982114384542340298457419997208685826528142612889927272991216200698449957115350558720941018338554212484482143060729514787826873756378461604995114833468636558896819569256246760008679648822322328323411778997880304240998653053376091550367387987248193491806082532542120153070989794583586609394591471871748131705484251840731790180071347056546211363412264421181450857485445825967361043301456903579836603830612665207928877853697505148292899415735076271717154858397554036709839251572666979121192882703172596241299233901259227635775357934307625109268928376363320776354385153450660353079717200077875663325127868238120491616330797010413356610209304666006150931649469620574167018359175884456620783037305393542808235458941099785790779481654791535929713249857611189081725515371278554602461718562266431771343855334782308639712923207014895444694364788637034796079669728404282193445800127861057084995642942582867328810048871517873334427240865979785832921500000450878200550048944536001519880781730442390775935100417809385797490187938552875468832341205410224490333291321109024931876761489542640600631543378907598481341480894626631832801423826500845587004304218664160867998278884931048714361245642427526149602325796642872058530067507190405324802359010808283196818681036169009071218358401791519028147220391986722921195701296068577287185132946502225118800173085171207213246903077736111662975463223064606736960564692543507834180819861085764984422802129661083200447721338275930853690728389829525465145139028449205764668426125084426821587448956234856322148340172902227181469877235769890076375625024742889127986166258734954245732369913025029642607189272513575680391063343525061900088576779656115391291245274641503098476812664408889461382801684882031962815031777818542124243347631948956647062476822542581693708355229468175972545564686947631188804943978177199892305407025088383235245772096742310041135160566923897506284620816129296136851800123859300408406385998009584381218751866194528695678620511998211294676534955468802429763843806310628268964661639104749446675412824950826639170971900310099127389945229825448621419964387727077735196038087321085615413504967056845744693797607552983910727356139500776845395605339715272103421814422670488997137552592605901311897024310867845223144455579815111705237526330003153551152499697592966186907998902771663981088900514816973966216400278472661630338694584967768498879410808001889664938544836955724299838988476151644376074477046453429076896446853847815869717605727858981005761582097378410256286014051337566130121643124949169580653211065781769007937758859655890814807587313441036250727088376792299893735901936574686654175246085086869687807279120247993604702441054183685258794609058719623496023393153836568540057018160227960959242491885426489064194292973985692479821000810132940737519864284712017213742739190507169917279407730698630746960816504523461578679863163928104170686988823024232399984663400270143743002820972649765179644283056503993559102263965060524778603085354039251239042277846425608823001922415184044112285510564667062433154318516293590564429447290119271701363766868183833346972250333443095457101110891101628021050207018380807461155463105769610786156060052049658402296425912343991469788882672142051425079803005772405200055025169874966075589299219473800573283537847446338595657371627157274335825216866228068542548723144073153312396635405816430888624916328357785729390806461094282166710019542790989573180823179507775099889689127676898240990475097077693520449357675562379446888325120239016440297193878416633350709902497120983047495207518970761911850161132677463743400082428161595948054332360339059482370909888844418249405916574035742696867390157050026269029786105561898350827538103430328769589284134275312025697304136309033357720195700341489904091214647527644118050067579730114736289713023367244583501405921340110139983380838389595399292388612094755284446966885540496909117466719936363177766474856849523853996757511430924158950952331255019149216028824508441448550194040793985149077332694039034180345366769888178300765797236764350446258712922598897524261828745238092182426597143592498870386087855798597408625805529324742384102814407540088184338948972872522453681361755913917425519407457288001924385428154116753892748783306170753391466305333385634787661060723111278396054746824174650043332519331400644354962232811888471811238035400212508421053364901570061420907429667138243259546074091500186721726017683620976810169020979338379532292971851324121656512864247167435030855499821635868503306425050190516993304085008893139220158809163204463015962831480885136642008332678864890842820375973492602705696149037213849833964539856738343502652007685739897505711333941633751076670844839503879635131632546664058931901968634670519157968673360190543669618514090271828714667795512956816587118092324612782252119903555990070537312509669790209847706426549436009381073970468519080552217366004488643992554768916859164233393804479383713966842023959396516555268986270326651671127056565990877897338035311823709101105517231059768577435000547789564716836831013495730720967564070448335231952488237016190867691144455496404708730802028596644847659612247060867919224950550789476563930052256180056693690602943141770789873498583321484910873628802659459177255736405330355237917712811378672811892712497581427943055798070906747511649250966874351969833522253690087694962555900766059777580292945072329382010154882379616081457104041629899220636441709255611165075967126815505588598472646980923036390829868238799175529838350376480622602063745808369775017076531344733019964452923449322797116946816908571576336794005974988384807028073405854871639694134663575841824099635774797190325507208439601645369513898170418995273599823627379005261699143078965672219596982020002256958858078936853724016742494223732506331886830853656589475262488520423436362753524053906966638984201490862056482738422952815892589370230973222930543703011351017188107903267269255140217878657526462750447304432432102659414662641046558889642306029180089190154464198900197828420816986689359566533848962321751751140260221669618348646537083944919177744364172441295320862581138322155265094620494032293020614790418864376149506209787511964550824202192238357489329645088585874030485135418720163024672542854293222524993934754999533624846718892441839328654872114728680456446143410178017475400998221793300904768767393879130179341487616581023692623364194726744850743393707989990787221337634632964449276678096203359385165316254911737955142300150064253883284692136660893820149804444498874409668366566580470446908654148280586312224563432516111318923019049526609023855588902381815104125691226342138876247627597552185289953206843927320798618576154976932892943007654699403098914726588331059107387158936436047051963943760094551018188561279474320131624527617278326269948214967546081836976258844904275180498817186907402367692657065166398902386954294448731332508356400660163618802685666714054665556579643535896185598823096188278042857671435559401842907012017333082161935764376443691561699514833097058996826454805749292267349985872951973477283286608094118211236346974979809216389932231295891749975841697527657039534124301142399665184043491370035777322131161370329573138759238749180397566305287881591800524624196475079416949386670205638721329963396178539684759414561716251597898385331776075506048390086115863187482947681074909276827269793896134995285868579584395121529826250084807440190570425383028138143796712964144884028619618119436809410316041949575111351225598434143011417119702732356413968884867917211194318432384930122455813595395807685654514696938439084476853432785396862306194611656157510721998593220311148174605790777475615767240731487774151880706884344494712349273207227519754208846105568174416663852649135788202215608279924735179637590200551341613095272559768376650786673696297799467030821982813251567598660610891006822396782562435725132447875290541716538325730550293228201968779442613699136197459001187945538438568879369724998160429102765878103405199319712287898801514778924184844336401242490224349815073431666690183195830501499919858825343585143537077510540469326149654356308365930129253367228613935771775526294706673887396458926810684257051774833318219476646564889414496269329141077976602790308034579181611244623903531679303838770918271287766604280099875193447987166612766880348833801701482650209885096806102569278068964485663070789243004807823225158030590626050669198723059247609084455246498043782116469455554043874486474933978080185261347220439913525560017069619359404811253406635362125376701741864094825786282463399747888062031251033001484176269205822791360983537470411276839771161342509918236885764837652792047780013774923999463009052837648666088928804978698568255656379281866711101669398016501574551299753985434961748955144308877646605337495260779429267134405715121868499000395213468489406451958893461463962997112482296660876116457919438799593252151081055556860734230518823245718211274488107683031291523303447059395015984141715872115096476376749778790298223228571592440901469108169524736593049340921818564835700785774269395533381396610568268827526860986910330980312391170547104943959301673219321768575786468420450844338108738185671228633382026188283479804527957845124389912386813990897741782667840491735512318323228941431347491731785703087074023513071436315930034210426090438558781179846953059005220116018459794212594938269847194575895580511689086549550468749142156256150430951934404858220682645244141683201748798312034337375747405168952179060807776406936656578123364565652516882062977209425762012259901061444151893535743001967211661646524082351001721383847247585476183827171760463237624078788750457672465899648844309860452314033591059229596205979045430109483950296510168027932503908072795899522824650113144492174440555810288863582907458153353415989756502679517350450258342333206601889174579434161950256044554660938312791769147248703121782495024417171263040391956929978530026317635831355995922061374033558746122416473021069707734468998398484090474012941352697087114067427988520561010889765552031912832327990321822122919216296404482408890244456899404703885335477160211037712343625757835656197299182468245084375675016602353819454685341246694729807232194456135046280777226782326931201390043177767713487791997140832654662186011656050629425334349069217099492356898950527336213686508691070339313753692635671972117383970590318157504267788679818031579066675844347140093115321658891332617314454297838832125132419627405884993366302367180731102788241112826311930389687023032405085635820319356273560167284444978335885349012417387457636764641515590682897106313899134121033587814558144959859071608229029426642012552311685851427587682357961188223368689158304192426288752181924308504032581240002067454596478754131961029862735715210577539780107912456552433707564564202839343144620960338210609664010265750021561798542324862104761831976846268175429596536421790901847778341667144556693169021169103021020433354416122641553322490838996036864741533891554921124656709632747235692531908317455291472140711418878316941273428115530527175389794577247442029765990136214411751593238442613008140156558036402900924939198816204078315673618730218186587878678688445604052219077851231955007628119995110842862854244110354844445910535996905881528529852173607081589602295946643489788049945432724576676259473814849524342986704986007571201615575276087313821054798104464757957050761388235630354884119835981983763834883772731596208095213873684701329560042614084468382922098040548677506809199240704016438018500271952583078401003182535656345605079317611940320117931729767848154903399355325576960114390684759724473542577439047327447819700845490063737554889074663217698252430627458493593186833570633720549654740237547776350379642251990034979487115841856793593708568433365784538781986728302711131261835114585627318203943223629126920412201747423206449184572409673290915134948267412753441258093209853955349731354477611160292093929506868426978530436781921619641826555788428773484932830151622490590641040181220374015151626253016700831789786935157867339945851445989298537279986334435894879246954359474035597009409865031360647535044395055873871973660539964940241864311377931671379317193097554964242020273124298844396485002391296593302408646323543791773633344984259581684989894959961920386742239412397170244841277489733452342079862407434031636980209742215231221564665071476911165355913751140672291890462162365902590195096656798413964641762827044942322298749691275500378651040596520451325019269862871219437294505164634123867320703587814236186645188693848194658343921233957798127724761328665934728707436943546540399996993048546416415101867172917410781815034347892259614668598263455565458640029049544859484768167413766086973483382965396540409832686665785303884116256917891232280201560653526020999460819230742618378337225811549823493530037371042286008772237685948538271834367424278131627293981964571356169593238173861836371180243216252213223002444391148462813727670902736944179168346985799868289416425269411709702685782996006989869733005990148206944001761871011420617491890738602686348723909830458090794478288154539119464478262834957421123113488379577460175726766429956812782222627188001416867997491604299501834494126310441316847236466709155719359675112530961686950496151477874274918429054953617102466949812865458792248046844040664089468211922995365088307007681098679370663043466335610584504984263202014960842565453553966203680581970594778190830750619132862473577296998101650136880366695904497228540623804778331517853528758355227603656876757969630102253590437569731479496981579434838634540938415867468996727658871995044019253010119432906755080048430675732003202284423499096977094370454938104003308239705759256466778517475554789250460683852942399086321944563602316923090611965868028072222687060253168518995862542612936510346958569191104115937325654920359676656913200340109382794783887882194897682745626852247469539082406158817869188353525867441399445007067661957139888132250624213058205301588949012143047355156210408187520725497481386106342210942283758480249280889336479669934323640194166258056310041848296937735125716646393625324638690695256350063046990178343983951985059466397863048419620476837323740836726544408344943233726225767758195505826061223874816375916323011249386393407890964259291855461199639020728977466519656538787377574739962847565441446441824572982854878571246844172238045571646401371218897040108412488547862473935157124678517747158940494512207345713735633692033344072271782720271943080206670692749072771417125162156196091639806770553417694682338734034261226432844535706814728590286567711132371174972403297951701247892352466892282086705245443754641135181381311611458812676423441149696637951237374947369199641226396097839386286968800149596169147942970508578631329462549873929591024450565993957926858169199955330907973520468600848135881393494069656450878842287415853642331766011814749616742236809901060165466292990920507196673113122913258146300389773323687202418745990438942060478615833832632091687160383284124293288392220075984994619441010371437666952961766862265110534496315310700052333493462463494878401097108132692896149162777303335631279002447249909777731422358014063879631814563330923373817418791561304806262131416839304154118884642867761752474423211260404538218256038817272024879500936501959131983486546091903760213848956287971805230869749689792832899231770814858068264002609229146209171981820621890339743749172598476597638682927563685190105669169611646311089744740268090429915216143367479879239921044148498005622338403291081702848408122779211525507162605724200236947812798303797698604583434267649472853004981543105444330024751989034477315082391303706106228862895620106860308357549856130575744920753922840910566364477007191202540440826089847172976316321017428202562021731792522002791521637165329745230582079839022846416038246949154724951472187229319997308565344590861993689258465448175109022682303043986128547582910903587790943547345713688548508315629068299165482601942356105472151409333551873149633306873985565099868598599993172666289854894647632388036905355713086845987041643245083033272118421198579623464362613981769083465865807098562812414064618455942933269062169914831964449685771118247972684936668825284913660491055925233137632950134990529452019742838042376491522887885313643184850103304594964994174324425759242914814183618846115565964494254852869157661023345825065562053534747492908329395371149525212709594328283458578966008875643767438532432512665493291250912591682500253255802884245922544932511167992056152310389658908483670148128347471965442875627617408582931603004554181914809260158475215095962525418003872816272323436548685751283680455633650556453193299504131796851353625824269123541088235482889918515328486587964264781845761747878576876086929230098066773611207269598577167995853004332694498348850360966359498135869506612840399911584547705104387332660028477074689155200894865355835949955671887799773994230899872783646057900674400698939562205504666116584719612247821919675762849479501931209722347902742704821416535738964697005099435945380476168916396017451144904275798918487691222158025437565939301971895040056224772680525667695223682886381044659046269898054836519074291974965444129133312852211005912379250611168109595724347934619291914370967608459695347557723149803857150649432408457855581972404255783885547847134846600452409462117920921116425036967860641318627724701987332742590785423773304971628660002913815278553196797824307727646665621813607455434294971462932559332851433180266114377858340742930954784330916796925516979625478419054863054375569273283978076770789418456749899348224646418994403507338062503822161130422328460619759644983458852265591244363589636132220967217466323007366879651302293154625883109509735293144447399537477941569649848507821921094532116401875911962923712148845209577342973474511432805954188899846043373488275139489587437138905108748450515467283764551204211277448869471674320530769778948628238439761120571290602365878714232474991613979686569465342474502328280146956941766881405694506828773749751201292056336434985936698194202641349005188599805978315756048859931676134947463210148934814051943455508670413953639334032454604411531453183308869616240005845607853292047557284879078039296839758682860184668498823675351190813361842754311530304047777733796924411080069940538932559639039253402669609696837474421384703770866309793526587237328438953559497141586930380633399436667329242241807887779079257014443890277574888048035272129416830650528570052186352402375483690944955654487519731977818957207089978843380347041037876265053605647420534263537680711642177190691853506052247240434857532596564759008423410545942137838750634060013475430520390183985941098194915395298420539279821616171687692666083255280858041827220440283734273345964174141004751517251227740297462470707438510637854429240711571684422434246500360507787452030912501239477204357377819574005258291003943446150787565777770980536273822727054551646684663548780562663772410954337031120075943975021218537529336076399274503261735783647659403361252984087254299865465211489395208642427762645952475043361354160117731868415462855648829650082347641844557227791391469664113953759117940397434776140361384201622702138290539535089673569354271745610226793905490752913331791590341314830807339062739526822826892341102783494545270962279870246727771420045931307580839576815632956532881899358959219554170012207243197718644390678623918779653343247462289086174296613830786419923033163007354882995447627355294658997013029917268574753811182496824285556794427307646311630357794400651866780806154098856743444517262957735425333485168513931813579597160087956507689319001813721799255145098920714837414402435289584509143455038404645606546229298281381641501272516316918854341040657516277160240098896636678943772042807647834404866400165809457606087794431359113048938758144286970422614058020964933336408619324988488907768502978008536892843821619118776696177855012503613899866871045930258447851824234565418002666054023052893794622274270857159302674424882764318144378584815422647437193163340385205034949391980689550789560718560035693440813676238969558332625569642256899133718844625457694815835237314933094005904208114628730331098664337022555326312712990265530560184083534662266277437282672183940336498311720138054085808984072024244891848383529486167510913901132259350626590247201904077851580405009843016991125773433109340666955959307349397916197771080540774635760111863618030711729353035491579404561332999829055172150520556626690232773449814612661100422616388580817884681544191431434299802045434918714526126558189237506518059213791910110427483923623471204230296908837705857244995832453644152846683517023117020182952244565684784415297977106560712016928994667409947316285061421599183541328637049090490517211249290230324752121724203667482939547549754032703489353101674457425030094118082638838853395736215227496430300499332982058706434509251790709818620693463341785116784439369790167354755145631218934827788463397500045586847273085307357615227199562840274186809199145160748441342838942702076071861552726603471272156899571479454758363429001597811403389435381142600829041288779318195055789055323559116297036783012400719497513744129760605551565565331439303539345975661190494501447516354291416786743425354387294216237670566494943693880054562903695132174400571473659274658068159641904694313094903115584201603128526350991117196810366573290712391282898337939213724039890653100202767944932869763472046015060320107621092785016556587833426063204946507355610321697846514009066986982958710166428926091305075665638184679947987947095580421699465425329761974227126521011721033156604215360838999039214918710526954038604019060742522261149022138273074148402287204024562027326269040581532602345017216233237749325808643015162342621227084578733203502019403472696728898986917212450317330376489122845725988676392726430470187717724617158031734363550245961259143715175725847145942646153969425030372791089584290920428555183368727019456608135628264398678533587277697466545162527641946205443712468784832176852541785836676962769542172361511202075539823092753812917929715673494422015551457265578007271139311918167732664892391166758686777784920433698846492120749721641661659649991192002964752236839726572788363377204848252654192127541744264701855866298567996896300930107956241841895008395590614019823475432398695181878691123446612867114284449111145695548050375050288384350437794388201783186713518585014545217994724536352476704201691415163287149588488893288654965371896632656623664720749656658805437506240667669225119162384846572084918870634101445275867600626382082327014646958257930219060913349673994065596183140619253796782279749525238045184973454724661439485841247610523255963753066220871463912222320474155234840733564298984929561799686539360970525070379581031972143632684808573665268963954459404970418537476111956684048747399153607613029943818739052228726758872007530858144118882454220644592608110178046500665026511423516510596948837674611768106058298161860269549462259949751097810747940932530733939298670632806546709044656712860582950830926388752957486000125968122842980922269334446839116691289772216327853516826069371006745699416853327405398101152419000070489075772460372453234706923471034050930161290578072779943554522570318848593348366448230150128011421022619888925076152646574128696096666075467897079697444568284660519492477917362774161332621146393358498647036628171600980390340781750088640373762241271204955292953823330707042724067940514496458533619829234698614355613249100259777731879114613273487428299692312353193205476279393111433483716363468761006374198713524473614863145834887522246869778337988500654072654182602982419975142962054129902230775436233522556290039111342719480138253130580791594076953402949027641478295885499767315747032347208570831696684104396996630399441806881656917133056522983366264728320649758681658629781397811151081041887121541141003993504546019422346220789885319138555722771123134082996680027333623154812169211505907411025720900036115485581187614187355474800524865763225297571787328415448568728213927427504351909427461260529568187169331659418518392885870819238164505729331954462025969687975535095473060360054772572496764719855670216445369352880906330794983839305320093071389124143287347520773016945937048697350600891540357743520920018001895539260841190696441305223816818140865047083292100072712627087346030973345451895711261705379242837695438290082438289381265995106647792013944635236659238187383963986467060911894846057247469796836947778248726164863048294785104925905764226792039917026899445991600116106374853997399169672555089432972072589839735298772211686856451308449451594178060393591125209988288721536620776950438775918248927807549497227939342143545490662911854807978033993295832064221176639590520108902294483089561360952224338995941480587860022151200523919527806734756257341439677160765849531101123846677600784107319862938448418813332258724268742261904696841898489327523056660878219824217486570709042673587158229510482771913998560418565689251223129055727455030761459712861171762925903300259403641505472119172695278400441553028862295429284204635687274405921976632259516878582334435738296415892947248062979701903597481789025306154710971455139175776977973058762538643017449098763140573062336081457743115375214134598690819475496649472843207016490233985715379395841335417475682323023682520257653484787066294091830334685855236761485952789538544876495386426873831586753881067757033683313078928727860711069846816404182288488705359188273991147940534258901445646110753432237831358656880383765123260214542059872568528383513435384367177590608359316301931000022349888608339561938607947797907884506888384005730654671262266345356287094088548697570788424473384812380181303532884631190264830487868826942532314281943180880042028566108510650752512447076328193291910808215337396005571518318952374023365250665273614158665797516288264369120816397567866594446580126945107038973727256125381093208171918934254549464440755262855547135172360633074531081856267855246944314327329246301863159171672882619606046314306999335659176914065102711845543224558592345516434609346157540267878457184593387090298795500096642014594157755189025329906143796165068321599428854792805039516366317980836654891597465605051832615363012213729242817779688560777192992126443888091332981829601161738177891025544425614549539438958339508592049367069279489025107532993564046785395463815409437453358148058092659283577488869076799027939685117076776773124915506024481975787821586038831470597958576736873176936760366471261917183921746236611108950192710778343337162610964549268616012061417321485315537327306787118252123066819997193011832113603327872288358378367569632866829936338135863306724495373063196739104111325694767388342524356807385410528286848925127616913100582814254704755833370335564829436254326101498396877910506068379306581415917307811644375154012476174836392611736767123743529131873464329835449567268435420814835010385910062111115538678298351549167506848967408465781355253716035434139625144885393831690209701170990763843920072125787467396772953136108459823747230472918124211650678590003586882090824456942303770549308135896193208313082427546263255159404468153834158291752720165097204043543704393678934763848564079918281876616446265946862123325300310367528402450429173400610084657598668463744052702614001125382146581020282647678306457852337099579755705245761137122250672115756209233948452695192267846719851502690503237636613579292733973722740392897965203413552878794426383221841267940144590071574696465901094808946155502952014900162090065424331457085649653885273345215685462835603324608828552413345286096761668852877730008659406189015265785958172638898884487973021017497439281360817386438048125225442203588218983747396479383545645929320510636590323299998426894466932805382623871867218070112123993251940906768549149810619863540018100678117921307398413350727087574224268237124419854232952347515828042920112942434747614659312111547743949681515230816797074844379750261318829410488692914550219319991577206646729382586337453377508287205973107409463881547229247600772216359815619277706200835353198353526566984979101144456841498657780510686893783748371577943935864574562033421479450345722348236592815542066031685179288813866325305569585922372866658149355547200777928500825756217000856438435627346507534271670274791540246016177335920191443959155182583789223302146013366432464406393631397813164366448412560596440221594740652620720046545172985543291739642008319050021915303162639342370610379650859659896845059368896899063396720867707960622589465800962252100868447813680389459805022646621425323946811666020823685696120001620740636616469960667007925917251687931524326533511149697473478941764509087968714081715039613410958573316585875363488863755145364587729771944130970781187478419048429242821911766423554808869926271495129339797448782209677955161345807248679761057826920449241416707749832506201082558415738249228282248066997999683571702470933736330116438990571883306660865384358607769676573794640081885103208232165340813745891081629771562370055471319174910737111814641126302352589887055615320374843104889042733212092299085915966000643330464032787990622057339226383306147784648981305541035319201242797656261624329211877549651969585695727963501392828477071442089780221892510701896720280590807442125964829351848724914489729499054118092194642336205202436547738734020744698770878868471841231196661636391587477236651437477855162862459172950866279431371471432415989398418098362329195248609262355857195369373194601069591345618770387493378904957195073532742194697291931620362505619281197992716809567859922504073923614194534235587273863244806174334061859842933347366316262748865811110193661414697468918363475629505253260254505546503895256009578953883373642945581976460947922012821029477281227978426926382614256344240547027190821847484342758864797678329733435268732116977391459508669766537768473277892943054544139814985731793091868739675788617188563520599863834277121665529111057122853840582200953096094504649080299698318373754624942541769635049063990955930862800158269925549124238415350025131996220320102773469666248551208102493703076648016091173004535042046048872913356410053293806869523924834972748589338338149149179314985010205866631603755760072749180327429397956332132198308928941386990841707939558938060008718414300577655119104654680923133002579548883291291649602027104813994008878194377811800694652827828861016845431800881979096598222445276659021883531329968036806736166816994807022738762337073118852609559973646108581829698524983800964817790522539615573728250495286284393432464954587950581691144215374694218625368245964661904017149732245023394681928501304464119957958984729273305186604003510542641418641059456418740109418600896492221687903248187295577642135324283976407789711116366170833867173900976903809270142749224444934886867002949992399970195985288066641800602627697685968491420472244357836536552981401439159081656285688991917342914452011807925370630180356536461649595291971695936419367685707614797452829001914024331199346156834859620071097457623202090640171393168687250879275583166579304423552467931933041233377132034477416095176540055866652632906432332125354794459583634944921237010569251784247513676340279739988222153757611608478097530804149942204641516808031403912294036524258825678033891218917898399076585536682422649014003600317038362649090457132573383846932520924826015762872279277184935817434158109119830360113708818556011608936416121318974720401955634536236528846479483613900612211159023675746921194714175824755595152142420851106390737413931771961460720665063189749407051636303271356810301367331340235201026462187462061525422742912329600068053243161940681572727108532117717809355771086793608481752127903796288360770081242300883000848501605987463511602540423921958535461863586429098648391796929892511047898127413042775738810049712067781465233228693272831332874711771205412657933702729952569779411361979604817030920933738127838004626846604352998877518417684406863868228594938203492816347396376492557770709796438404235772904320627783036939370621878581573880459560385458321260557272648400694620651413700155064875980741598042099433122207927262924280664860611333675683687260025081324489764223735228839602870933822249256114798346840548327624183289566380731233550164342417553536595828602354123011145665360245241379172301983897290037824594755627178074995379854960627160486711085629197859929882204953963278866729286558455422939156805249978807949329877802388683353459600053738647262988040586753984812479642596067352558669733159587284449481896216198135921195224701850856834732337772080177374380747396085897914939231010214147388164124860317239616212001495054758139026002729011282962869000288526753749409454896622506528785723039766375515954084978184258420915858033793487177085707906706388225447656110015449292864046877570058909787467369624608121948516701304074240946164946767801368988657709928063720948126987655582527645761603560570594958576938838122414383236431702952779641388973743982211095226936526210858280490468085276236994660206962985077728936398668105087335351423767636215817165882524348199815808760670497355762111518220058267526154479897262495881014370528671471117026206504143385084683173608539004921561031004653545702328330695244795145045926698585567965002154847992576999977408666344238407930886614977070848350164507980098035653533888948157344583766711623268407220100387323677409133604929186480375861685463218984649884724332366966097467121887322771403798726752747485464588166055728362887018221540649333560910387708501952567098057880104041806361611825840981411236696722781340241814612474259196604180725455046489508406189689848630908981793017590504278535004897159728907742024731508591830939850528060107569938343713597841839316413765481831909103405034383571695604957266602923075666072139322465849782241631120763629194347558904784618332779424110267272881591552626045146350396399082183375098562855517892457682398220899535710369060954841323262536319387608293161247358548452672790972779481497874435607213736113965245994110995853226876512733917551142889700879378191616034713423955116647151360526223695486309435877513173293948570075054783677469383221073561568357029452748496621213379403412121656366467972207465515484596902991667887224851062254748625359199409064638418653020114718794177791078115042886333481657672686912354590780635061033164923880394185291447772851938984218983443026424589920500555339191905786087593121527761915830652438643824093481349942918447546801510875930137466260929687481429278012254681795605303775986092077962072902983414860240951309974730315063381306605630779627865401711133735727812933759576395587293652060183671901548562569422498524373248548527427622649703193578025244122259284204412354961861545455937814389441876372846272185942859103765731458850697163572498594332835581175198663242289206402641250667248502088426299525638298230989202839511995803099763134825722337748673717246754653861448763028062008988581568057739304489434866531074483570883710888061521133501782218390395093761109656450886990369822569515931659269988236476961459268678029961021952865716076494225002445627185655532521019006831085311239581540144459024070445411739077017153376147266641287433976362476414473175824381793745357097568485391049963957420074110538177615990421740919278815731552124592724817084848978852915268140376684875655556897814573752900200102523674142824841147679670980987718004822499057542192270803953459360919354932352260439068864893706065973969572754054006615345376483246589467567634730858402020160191676726347868521459769290532279577750896470010592490742671350955964893800411878165488337176663911392625216222540348095047428119302943380615270811309388094095865090098023351372048105438003088201806862960307723530279516043900862079719391916134687164287766358449928898260449144061540285853100284197097590497076999151610668259903754960421471790087831425646547157510572705068632855412770447548946626320801816681822577330789884618705253678124164768186937603239123155308551988102540986599983226999723355870611991490555729865628994238665184439468571063127042803868665282321889955983726907553635486042343542911205262478110597551932411017912348450553177654559321792105565858475931590300214426909498529901877145808711037775818051868151292260842539624050222142071365007644801555779246858144434412245807856697556983098069508681748099527157970170960249245941559680071060512945993774764678860622127651504821842806275098309259337711460013443864270434712643025448408940120623490636383066440446548433012775425046276641709440076899802039419134099183405629060857791463583224143807332718782383605499615364007335371205606693941322588380641259783881084673988525252159672486064395114746604736014257180396370914583686417217226485471285996027037258997083229763979645475375850174601063997269213459245871195206656930710267700880170223186812487060092013456399330205081631388893676567840419028180380127218764849501466332206039799916814446845310603605554348788557708907461287589427908227825636630440569603913894206551633874500957596747559627360613023146158499058701434767338134236724108945129881025987402406273736810852020038334325563323138739533517749386275906687910859073227000192866189400068292696643481102475238436934192338096335233838614883734307525690609709500187717583018093714259602593228537388001603995614927610238493732583634628754660668372804986653776080636362777672336792733452005105801280946318403993609923605769970103433144944786038220953418049443964546270325386749155745693399578245468040385458456907606723238931041289785887718603129154994511309788359876201454775411689232852850084718129288161143585076018798165769017020234444091728487176536900988650897083018780248050274699143320508850583575036439365498220128615222616295619034187239978546485139177109340706747036690438099502935135058166919120655262537315804330490739890411318080699697446090341535927933948351915493704820315853168347231989365920196694687088275636143430751041992799316978010649287082421084994044225564917364098468140110861835301825412746040287409423326079269143662381218526155802820893250634870305330915295316379705983922683683406717500627817292028245247492924168236838665373021070487437592111553786281841743819398067632740391379294136452361237472781513422583562373593171579294653072658370397909466773438402822639939482632608799855316660827268706351263319525330605253153250752920738171439023496599436056693914685103652078667961413676055554669247802526409240858698016795825448567598351023941948823384098507623891443977043410788611508822018524305094890138849760904603419464320392718478006545624471848300199151331629651687269682448069385791380707434070318507412710849648331864596179318547360759461109137003343856603775142557288514633599535069021780736958512950084127468595609185172621210448390433542794122287519705208045239578472298856207259859858273586748155474794687769297531571197423017124142381896960028483014360657107512526930459437553004652965278546796167298337143752625603135750626187240818362010269197877823413606889440006122763039873734732625954813807320455119335361836049022992979386284125782605142021639790414213742325569113088359554293011811363248419502677407249975892919019118233208588335570525978184349165409073412796349662584689848734839398255201747042798739856744299104150168440509392012155563364216978650744798016604907038193038931070156127771942188971027014689837044228292005607262523720664125084674951990522844007331667807892414098840728887588639503880455121515141056675228148165554484114975991941677846528005836722718675521058038441768302369251035466682711418856233460988065851136319318944908363221679882297065240285263625928589356718179545908772670670816267557580575614337797307464218082914044242428955320671828903723586650425828742848273118279161868466053156951979556044881238031881634889593239565062394728338900698515852030017876419757320254476866918131161542270453937384227421439857809478595671398920594800886090656329892967955049773442383879563209092402626452611900503085565253160845975981461407737332268894238760115417792129482133106335955717531550756922674669657339828454728216317842301865277048038129823137214992251681696252633972863260845672051037577778440144839170029028126023229095821223942140401615103959853695712074556172281906188103417086627937522315585859587634345070439419734277012888364131662904922273912077632664921797682441904334014925335960629932107538140897142782290430091964027907629181714915965242418908596679392987363994654321341005713638304933256806215095163013907181338937168432746152823088710713678524780436210127462587336678632394941029337182449323981713593779003182277850432463378637388842552184820000774640283196500321477954810818880753499533849243075383900467740876169559341885025250800859086902701656850865291540044787038573609276512367336420682154477800062269058736484240235864238825874824519916368724873375536026810463358600653546459566460855094895097800472278632263667107754334824082745035575986650623817734886407749938544305722874526596394617410324256981000529369049539820299516067631126531971820971456493682389330034926259030904197403761859622570425186682533492317809368880831522366508810795881618429563065656798860646098878205987664511144714199864783450508961476244198295182637878548353546906787042090653554687114601625257245319813929147923246642573688942546043715412917372112527386075918315580048672187589356307081516814353150369056377643454947840111172694876958341268181370408676769622296941669677662020607769713247179810011511901448975290509378850807149821397164664865298164538888942743637680767089588113413286051705037180163427132079266706336723082808311088254943607691837266551954281417964706475296666640144218465130751837841628376746820443759999391562144202938280047810600785437382496449303528434490037278450194651564511743408256438431044829621980824370752770541300804161475339405256936946960426621859564930413343380943875131224290911071373062477564173479772611077595916236866512562799214570718197987106590005323456329516662886414274839306763575681132598440966866961496039734747997353284505650478465754490176432576598456669020037929358991226492296382095719020608243344967795856269506172936688320982506341223848284038873928629026051790973623404448837718823662835816939546103009852124226370379128358970033267123229469409349427657614223619512146891432575382266603318055451423659674832321997691319726597712090306839426854034647543060115162837970741104453055378517656472890707495666398737048873851066291711699342113972883857166909056183560878477846533081484466190759565161550862256943791116253926780294302689037128772675101498302334700957647563961607981813454832696451528647254906317851970464543263966811514734105764375876926740846650620378628071811975564223719448876137160402005779398693074320362387993980923027163141733970032508505291597510597984874370581166428601029036226753918713333507598374488140124174234549328758867520140622495069012657345158028461695243849507437304051873123190175985127737342273417413887302037328441498943609537489569410005463253129231537104377403630709173392379359155600624652354268029071040446057166876233701486207314520865463718551170143905534950502467306662551726600262801937043918217808312898266939351978881075700905643128580226642754672989050134711230643238426741967308639971926956997933519276547903497851692731250270592007646504542577362228625965121242547509900171152131154343143542132010465037104023730242594879926555489445757179454211315249239743219224128224810770092724888061866662714305814126196425086727630377895672643123170853237002696491700303333374377443960254039878972962008911638045966772186080045524896998261886382454415862249842947739197020824594586307195289142175223459750655703403867659173486588591727480409488189920169585917561220839289321952943568102970669950177822303990703121536916326195436714755066148428217258806126851750773813597423537220814163650222889699624319479324700379092720219777088891256577259381375846978132908134816209889650500747364047297682425822370600370145032057124919868543127725882320796037439695009626565750850199042749503754873314696942857616296225106992545323985860091572347922422842289961528254960135494885318646504047035247429978255991343837427824174146617529059816300778523268168714683746164948641302548674558811135873471841989276586993428503493321657817041317957564241419019824395294253724114364587740268406469331323164087701728662012942918201183736072257709634133720271255568811883731242375281055599087646267347230079791445125261871482133488747099030816990669601494066898813141023379850224577411338440820415571666642825568646391647657775090137483889155921977016348169891037756878506258005576555115950825502953799587741596706178703091743052108498608111473320761816347551213743697684691799458234703612758628294060442313549939956980771553369360530205817115219908035850832514073843176592768763043958897396317120832949291172356111727668589978024645369350552787378912166842220478600280852700911148105433082170164359076668313851865913461084244960838818418844307558814670508886257739230019901808875448599452383844405721788373025787200933793235145496718500441745487127621319310178502714276020373925034009966193654852020135563153402265600009797392621718654944582908181223419792847650745205580008513180489925269163330908118053400447283821493317947486058160409440811307228940548781752105311173633090115621252600076395555892987453328796584608356399678497977395874189689413033575051217214980359822375567825815098147919071050752157621187396620001488587569584859401369388181783708130881870888196223351093384792557050759515850796006048436366516381198392209304547154284249000274853620463921300715601679551577436303514787222494691878231679745038737407280438921455737086783969390884218006186735074107551750231984348200304467766069553441703132897799686314453635909806153613240137140216340129133619788635187606627543600085384698193050046647225141792760176407731391628733836891329342704984316990025086671306549532086153466723774116699060532743126894009060442452890403677489258788724787082912301491669756122266261260283308708189533481038936752830400088790261536730327661477847834293276510147584700789424687017928184432452436982949173774582737827273033708732319685678024678421251443547296215480571088752013522195234238115993155317554956458812318315154429414816933728224129533636755865830228746233322937209573939044484668722767235552273720660975343202480045849784368428321835839763883515673392401629947416322918944127433216814503698354841884699285229039201561762219150184058854682289109927626890903405037660526842958688456117046848885791726996555794408232391188515025541664879775394365492367567573528103668654247754539675670293729940481094604982010713854245516281110474653792297855131006555092035701874156134476828665651131173230971140022496645659783460622124373621866768196184130959817124109684115070927242228317507418904177517588724889275058505956723657783786749079079521811194889262798705215277240307147568098754476426165254088588548597599835064322623589190503562572976626431592751532277296355773964232225363309486559313183284647548808236424111764646479297044652016722518831412833729723253835346064427263226981667185578929263403813450446272491723651504979676374082943909272900302667270263075816917385999095625873538449536999976806527021617848411470265113218158719219752105218235692400102144809809085859618043072173179192358093969877290515141119706523394736040807097727672109527170276954891633706662408542451406716609967174929626238784155896393338198172650985960606582172242773332641143206000356318933233516511397591884538884953614724293491437228894182192542264975442172521964955420155244367727702725078818521852267343256654073321382839891724990165569070846966307248717370199321646654739263079415905425014296043366968006412224971705223956916847781667344627806934495240507043061507075211897011905685506467169945454027924391562148627412252756741265802464230544918386837081653722185176466859617648401021087470264920379318478261838723203540549821905857758159027351756920615306708890702215617837401572658066049204301885590533887324062247389258142163958299765237290316470914526047268823654960611912496093120549627225288672642078838768082515643036652191060400614890765397625439116810294970903787295652963621430996314310433429465959209186107249968801508355385260579515798495017065030643948011310271199498949853742870179271280584084870153166166050530691549371562544861486734594517775665461189108388152769730383229144876498150999085488881038643036098028392218487631755388874608971622572769848936417186784806210334304417579211955437654572578452782507929212717590453749970459875993730684932977793254595601203428053953685122354955011057529976390453643426850119809127864882361759587398197910958276425934363341460129737382690841896724345353235626566852152040288353647162311317965084052650130015787823410196701784418440766730504220246521978920779883884151604662515574610115585403373628099163551205597765162702614726617695618326368578443036933352245047722110718718465897199438966766810419584918421221436134389498504508582440893929493462043068837244506245420854288756609039987876193327229109932023344673776698508468805121929911904154149242433400189442146741434751927026051695581342697882189898177497057200730882178224994613514217145206126705733786406019590201024965011606302961787770236960259946841041685882735804912000692599064434054185458902806070110099963155149551991944077652260167771399019102980425063216771609886658678915848298991517990163187718709514681078352857808567322611532851873567216543754452378026322121728492246399038942294591973912230858992963731903987370282239888628513445787053961816150956291501366900626746838959950067028315721206385665456928347472620845818903811400604639586751387318804439480838937427887835445622282890878432344828639931266374525544146434517390638686780956813542913951879252388077117955502245994202358413403373225743415125629390569568898631125947913535196332453671306845700439772990284567482112310232393728570504793005937172180040305440037670214278155943014933672520158431710815991404423504132060175366665450348792299765414569351263960297273233916438620252182649069527616902101681346991164375013674385467240407150437748297966180928368115058858468941994292470217865356738351980235136240510275729073200896358967080224481025858674556526109816940341513462980200888473722820980294490010148309742842501975885726760280478557587709691015581591217889659849793311718940993484954526482135043306631101846752855292459104987624003040596899419799036774945774310895731854538548006652563522663241612095894413838205599872051306065342546383122377981793207611010111164636147233171135724148758779483862467163031067582592239971546775764128400629401122678346963666061757001382385444594647920667502140099447142260625860978853348526978421006411073683574118825846435038747282977956603794497098877038543194407404815499433103679415448203889560441745584748176461687423632731936721380235441992369012775266659659585459614116355415945412469805989211790438422265452776829154630038125468791742678161204697158358823954261845506135544880193284215940192907094272100962080447552298012620598448798220514780471866148394457655002435664082454715300482684025878530226395063787921630303093199462942963620407987776447751120330769280653230467286594772784134391749891045792194324658976951610869919201420914431006824725324598435842229285192330725322901388414735896476842468189123903021794125713150327305677610010558709844430360459061576628261043191493938931523029350168248835753857598452521880548165739984440813746956989194424416613563321281402354680828342052413094501246243946360175944963292992921405036107801422518566201185152913305461209218275090118721151204286198904765164288221625659578559340088763795186166780733665008655636071347045460794029076217048659478242951446714486868702253921086809198199690331910693287351634305919292857928853386105707620886880509281862721020545731128217756566413522920657589386276957617392685863963431122595451119698757558439223022094127937377883715213778902938024687821373489304254714121269109511678368341834463595912437961743748811586571511901220109405511325792237439996200752635172137187235884534197149307366509800679528929691625280836470978453103332280818726169682729029745867576106934508164007459221099185219271713983133804773607752791046201218067987447763888781687740034042504011200008079486865708268605745719693861624231412119889624539098667440769805699141414250393245715778687652495623085691448779443210984279043314546164377188013134071504921993782983009660568385166788118843758588006178817943409362572982078034144572395476716977510806549184815256585029641170402445254521956238040381267853428253824245331339184188005315296976140786269364073003568546413155112276666380868303287915195951992821000735629107801119742782762433927848557576165206643192800249613031564510484989039050196066241437167812499214162621380542670041180847603319670138553893832515486114052894505193649250057513338223697805162078919919319658588907446939104832212768887754409580048674597106541682982340761049247416008429580739134257021206330850330524550971074485541518573048206044108919530468612125692746229973602053976488435258974115947016628367663038074131343733020395394641293936994261909417006240863725689884221305710290838349488711126684482530043123204259876662043513864886162062569609494791915557362937997774168157088259493286680680973179524598813314542997595665754592187508370423115805362943878640784634801920577699343465045893540687548221353522189603288699538334137598856698637348810310839791409409765358813108678738110247967244904556492441826593471547303350435028213934374010327109799916033704241964367461176895256059350990721591555383981177736168339750319997430404772384602478824274735883940244383061265915792570604961324107309550174502877490382862690717775598740668261382404968804663634241141375382728737136388898703642003969590794464141459022184490937818351153063904829675586488780221868333863942776127765595562265144248819163468649835540986799298865767897339150636283394462856402695665016170654822746207480979482332072916515665393484937886642318907882792152387142582994085617326779998245131470882954381465238187948408902084838810128478662893384705925445227098999222459556103707238356960466931243475847013026410718319589143582356489614136565821900995507038627930875985153644157164263685848742778292757813410965546039905934109142484802771653404890284131031219747651676925138732653981999191696087499170073412789859416532166299901439633899240009702160568809574297449048115756200820003145855650394090152864650349876066851059280532481744016239962167253284491815830715415197079307850369272260967648526686492862777199915653814455977591863937535982825732589307541758167369242185168766375582536712724468234634847737072811728641367743497943855919043532338101467254321343422353399973571525832745680125603778442985407197728896439417332490066308059887050204704448586776997037266098224781001379766230265746231890854354255005179203516761914311776790959265369598314560278190913596002595014336623022382657563404496753393043395604552972838067126825889057034744756315689032202445582314710468104206337455701881153809509107974193853641626394559725892105984511870795430590257348730756595990864970304073824285969215504264462206259488829220465642270395696231682394710285888973680836405696135706973092900859419391464455761456802416114819739051021109285201203221524088169255114543730800532922419194233444001268808501879610055106716648305203978962914849672727238745251191040086085922459450596873467389035557637057122843910485435886262015104985226506451155201244002354162975162837920351248229126940512882096897349178715393192240465045402901436750965358442260587568321148066734810468083895103226058735462728303760541892293885860350106788766314404654969932150768478641705941632555684364474385186009309512686708125590436438592096590118948423254374333332355744454126296281293261945498492495805085668077225013858024501984278122766415102132147587630492324392339147447637988131512058000786047751209065638809289893328103699456007430425341633101292452306349971814899872623105574203639220310600749830448538181997511541860854902675948499657432131491028153722895410525875294926345674123641031845207073492445984766572251574921293875246717353581320316407528309515605287700461865802720144644195350701096073210295392675005131523933347697516191258698717188511134025433160095027585703518947593713049903180996538935180375072838493049937595309055671743681674960822630964490179665192387272918401242870692351961664953042310799819634464836603004743798825293628353778990799300205145091620221954813311692355489442085350284463829786781609708782723120370921341383845337282298463559903952687261285598068787039510462124182710762485021582770762648882119788038713860421087537780567348843858671724135754963958985699333294837473372664305665971432957990233738507675527223741390056395497508611159089143274589391746243328737692868831276113467890787317752279813356923951380141199834180038939398334418889520506473738332700004293885095240155985398386955700730057842719998740177567572161783557043685756826938447697402341634545730450410497190687647238574948711872139174430850184013721955405247692300884501431547206059259206287566855098578172063442317111497679841833232327892345862914598321983486077783727590934611698264978395681030169596712872649377859279280218952650428627927564056251837510554016043057127411352372424455087065717803227212097930055409982008800568932341154029069719248786050474921601988921551223983055717973863884211340022541276299659860565605407937198534239073418852139796477710933003897314405703208722434283280522528329032340566107552749926101885509151155667151036795923073811046696099103985963442282133705751196090974412738231894309435476787132178683196706046938248452852843900871178047015999180163389051425792403185285480759705706026354317059117292242304721150380647872460977464120060151866434324795298267020378052598726339126638011950978103602174819503046975376188805048382168403130466129598616369500826950087738315500531394133731057165960477966759547076695694656938051859486008828202958454657406617743749717615265339413786783396773235591786893977707296072999606716248139730188725032858133530528596118296480504500260140302097584338202311258049190894653026852612704426689669943516330523607648834662773325383118085429391886394079574689845924729649825035648295861917536537463528867082640926858606189780669738125897606739875094631168803739561325707143223948423309136711382117100704908532736810008882174481282455636697397575175580539887628822981902237186132893229054345359505279381544364995979721755339023952757930021521897259990724970965965769854125474286359009391820817892870996429375599872862037139042090639943755003803285588981011117938088004524048595000970324165562162634524450035715988989016773597010201598081182003161558449909553428154359597001931738775295473772653092547337621372134226756368663989549131098601178581142255646946324047114667521393327424565327379182745504309811345728793763812845333633812293591514173219497550785439857432174222385966437451976202507165785631465143550082183475497440054761647181478002447278859605598754917942207779003065044869156615860483819201444499059157078680085007742862948423872347587805377414158741933660624209935288306176088900866137922006835031037996684141405260632989611542568488356988347009144463039728650068715427326597994096506473328510530228185536641753775395949676388584267609752317471916412686552036637226682678294889227526033066650308034927336167428556232247309811777337881786673177852539472910947802199523537504246067920893789915296226438354160667157925788480020513998384503628048297055666883853591493165314657196335297174183156477943315147705524599243876987772054688255570095251196944675165706355501263530530989072863691497674615153839030883436553253916282677428158771488531709123082678085629996272527750003870520877287600363876124492566322634434857457264616923783086534692800283762434521715287508009595504921874774926911464002663850352415178869791569817648845739385871915290469332815244477033235483413704189475679724126582661663239540212316307608639972829392369875660579648477965974133701019814456699196525775140573360094252113260604430008114570850610347888306727575006607744071434638592862488357342614420827958936970088105554754747298914938907711029942838249863585622348505256547134285378904445321656147419896396325056934348620275554512523538404785412574739347056211107471179161609582567778555939144191270540244848857181816342242333274752884558882003128639853257379874056996520688252860861715045494927498176804967353010212575564845496281074515772802974995273195476425383269513916944635161898617080251090130144223834922627805269424168892561688425404415528757636056131640572494611434448160430812050699265269996453195913240757220658709784724828908852427984231318141880442761163245343543656117630370477157749034997624630081803241739923171241479220760427472451591959928531393814917721091944190559931024669302939628061331703624224394125055617965961807282779491538303970077812450017463102945005734336667236187082176387301243227015171777074433913745291117818259096691908846820498319287905996374815852544178154606770231766545909592080699381050783187319835921721827466773132183448952057054601480264903079504605104183075213635505156006715541149467136824889554517889373433348132870489902617202028314774979444770893568986327006835386689534792050532211004686264583123324968513011716973799827673399857135850161906272314713478522002991146959557349545237630117961307639732924186045814565207063310572057331242536714640195789538996536276159070861807129068234572446205726373189534922417006816533217790742522930213333508337131572603262345574018890212921116941281364657047634374643293754716852563760610211394007905695293879234807314318447722900478708015485443943920081269561545071310012092947246087585457516511062136194764617374907421094781868321308474333396337471090080342466173681484882933600261509791123610044415417974737723502651281665023249217113792003423250215930924615121085773725124148695384078768369087304558856514850952096159040102328793439299763703092456185071290857428561980297741659347312372273054560894050248529244463232139403540040754058343770371869659344535724959134215199946936658979763633167979783167115669081336095146740344238797064500559269362018381194143182331974448416538510936407357529535158342381546027917753519337228225737528481108026745662753531127652911230119230857486881523668245015725552385531606307669023858335873855576295164328877185002601115616615449466786470087311386301632338614612773231812299058940989617651098606558108092749558989248236134715862840720086473676733844351820016874512134840579222951723568842714894222776875135776940424892839562446274372392520533237815149165801391431493899515593063031607533643634361423142219983016136235740684369753393813839192251115800047725456695325779366194269076629766906698992586028549011340122652972740039795371028413838128530464978216007630126047427908267175824382111815400986612580059646501060913871543764761797279612578657582536189649666742921446812981557860858620874661061208136218937284091249598358711299542971005627093622433172150078326724618752411086366970890945273915596151657182785497937767448576999669014820609960308270252450338278359988209070516736597855584856763566494715635381433515936855102438678210892289356202594028891377760623608388628756167012098310408072541980159339831587091149025146931299726241870107184712294331612416243128676231618498235210120225876458147656135684490724358827399910495159832645050037129330340613435711487852614908661898185347580886873748456186555976938630756261030271400470860110320537256308805030179848879442474078048977942524653322153499273221926245888119493470854953135213838483840342082056927223086133197271181366958752554231742313938136085748861691445372248860288952315900694491855583506451624306992407171413683188537508572732078023720606189343570394448983644893145085218025403410061208588552088443228492395748800835204380895753560025387920719563105408308672220065483893247347621413295800521129156208630605605087262557976123389170531876285629813835891255961047887449277583022584972104468946165209620813416259960259760422622065685591167258190257787831533797123971805632244218234861691622204286413123474594733102649490530072331235412229692246668802795720559617698715690732936165795977839901564121829303276002646517908501749310407020627445229698564615140774162947713599968350109293046599330693103339686825561359887241332942055106991163562486119728319592637777704886160960652815110108189844834490651591016976357071154169510165459062970259737579886329188244683756749839037913745796971503739821868154225830228330098905555370293552176729757660015213481499995546909391865008714847226832588338141001678343066649847109134772235974569630507799054631463368046576963827106225618813403806542075595032537345633493184523451656167851015416222961176836752195657056139638404732620571431396052791479762158350000851126698827242072794738329400971232859335846363954102770809157400638072894593348122833011204018839193358881118916994752364419234015925284486670596174763163152507147411974569333474514094731618093268408127831518149601756301004571175568216905144354023690928322654913701673199546079393459612768002270038610661660104533473445014804011293101707602966190519715707923718998397451929104311139678681844041620139723394981745230663344472552715835672302694545102740119960873829591772942688003835614577286092091413781253954570852992942952214195450627288474235971973317694225252300043732929471918945035484347244560774332338587678918676610435075858229642472397744700394954562152437045733168658574627527481745925785421603157254844772427380050845815043997103226350822774584470599663097327188828842166553165688545908075495877830587057011682307988827242786811329587834136300530163380393780862077571113271310172864832917899477627615994367583875198994467342331575680675981229537493425389233877551857712964283525180537266348287265625751078194663467531006429772952496547121304150124104715498449070347702215817881028008183444313968389925300878236990238764820140163379880904475922896998325596569985934466364427650625328756609115512545417342139650877991802226579822744588846942997313928774255511686229383993057227236267435899394987344860274241255246090014023300137632335631865576452894660794121275071534303781866739203447875249933195709789300742638199496500084782148740011023589540832391260913115845230800582663059691491277108536773652398210816871917996800279654383052029621989590025678936852094343490476294096076594109514854106210782306012815869135508828198979301526039047610169035634066613438292573220248945568931445565293065824711613400714872132006714172583608410181927680910062434679896238805680519611006926135120213328484458893936958265702609527490639766782932852795251772297077515547596852818415677110484591728735891423504841998707674323901876193309148762129239511300986529238213465771546438840667382259716185540368615054446359054913462784385096944905668504228938059394410954892020165120490878777073130322794265035846384046418507030719396809722130531585586535500048729218481407598150844566239657197593685736556222611298288998272578649288764735585439951375803617879030310522413648844498295393879937643305100790483054581186241623591683290807655046994660875178592796060574126909472206131594456835788734733319487222217169562501280832921785755201402938756546224766747652126064626524501302798263497541916107604456648169740249282969695948383660884705115132087008704983393629584515205001221109921196479524046024613561949343240582046342997842851576518433016848738327307288146511854495460749946495775122868251461767355918620059808064924296754626853655951814592516466355336177888720098238713045676816408252681821922165307934358598492678072988769884345318096872588022766087924729091757889954795664549629525779099214132686518754798345542754015374855336796103709479602444599698053619353494920735790190826628535687573924863467888919075400225408324041648416078773575537229569202820724989775044980377970554749048800052798253991038500646852165626028135257420657572586198627069400640267347734289509669148620257900638531665636212006836655427477989439327055754710337704787717690564066681879798457112608618181030775169593153123020742774647479670393669269735813579120422064971643419488635504225513074527734150276372253704135473775132892442799053261959032619179432657283705740365457285371127719707329180830564784038316960175479521335465532173644498032189390123841198778595629921014883463715110370966723236111291193135583717570526924648471713807689299559164272823498941617393350447747058065425974332989846213775908275915446441467722938378350127302154350280248684896100479598179938448138691628083693006851736229891224803332345141169374926328665683188318085777708206767296996271053889226035332122343385063090932633817250093087446745362850063016929329984762199537245465807906595011927502736086890160763164698755577164817903135387325899217328362427019564735814932543514253384300933309319803866508125943949255259676439234295320535753030931604607931315417588460205555357764451760257148236012907702413898503066768441653308032114722382259595898513108373568375152743657131830064933808844190705288951836475649812932171271786939531641024291110634565921681452275465381780113601922871266962453322165280992370434086797764847871009029466465310397832624708484406165072695319602253374731662045732358750844021229559824385215785647126886272304980385141025087140400325008770830869352805966655971881809472115493838964187151816416383799402984972443934636917156752418397275929012028994265904670204336976564608158479456190861415747097701773626980575559536355707371337565386061159569473099336358438935604455999065392332680837631236043549436784696283019566143624326120738255190982827450417963198061400717683392367741150271505297451703730201738345813552479703616378617409188242539266861588214413386723103695635284636860130685884718684228908105223165199896254166763012538040136445875260703357002653051876329469504092207735865616267474716695798218304039981450291680667807839312311050085446950188411146003916555046706521644187287216394932264456292131608771780664246548116804088922824266122595326726516832165462240142596070793508164007195663599393734308111038589668847855336006699117484210922765074988539739918911774745354755461921115278285871683693254691509629688071288060055590744737322831899574226410581508425450536207567403022756902436782238793888110033769681473179752267396292530031823594209328745035030299410561951325560392273411029796237667078739601543204773672702237247180953541066274434942983913354386037496721385586465695712518138666056593355238831253803623385025035274291781414367381188857170500060049874867396247703911577226614675817579329961261930792721065383704615436448158004671750547432979253537657601953511371999307992957686170323738611110698261169585046362640477039351158844928569860761032225907938174881689924580036477092774725825284349854898463951047683510446093918228656610136710204189470360758083458926605035392691445729403100394652213403709855413258650241509359185731027184379804539935411443985120887685142759745135857068922120674592000867457128509713424990434397517106789965215554466433725651169097765313291336632634837120974797720506117640425833535440226397029151886333394053745968585083923440032053976310103689068392195676381237962443995511816485872374152347999998843224492365134747498767086622283005147120849825202679387259719585790100546731578525500323810125235469963545661463830560583931070816652874411538022454834900616032070212926600784886373953853317010718317484307098804617314048238975194387465486375232015826406655303534628846188379475492261452875566989047167217657573568998195375155500003741282212290260173582863868093091696196794419487863883093164651853066647802426878084008165713408609099076121175340057136977874994690472795604930487135708189232206749163299020017928871815964051834811620173694821815173568836735775270816833497100475169624477037172723454798611935586557561010337723761063005740744355344885784450215250350667761454982336771449471396522262493652471112919706980803236143095307809019381788171446961508910744953687205607416671243931972668502702964738866190377466571548745096055977245516402088687832450656380374665487279493013410332320440752137323375184649130018621724156677853337192559937554039252081636328008298614508054936115002213617241472027042105248841953614220209948052961577812224009578105563835266710730993193346508485784983863604179305219320697211701539732337409160297139721526463465464849227891453303006605954490489727415685627786626900586281527926308550853701545477835027751278466882416937434699431255405304071443631277142130073574677172802720115474015665556948069594451965522209356761562101795464072129307560094302414638521328282418280776844605411360352120244558762286531306141062396373627244608966572145570745090923005355978030153638577514148006319822554174070000039687621309087736598637964766454139725446175664384238253161448369881095211779612000465872902987360935101480454176256659574224357186007394865768940557394827385472226429387583347184221768416106742255936937247333406605330648080410537042345297987621314047991473158142848758317536584670528475123497378723327360410403317809221668911887621912347433221747016229138995398199169969993149889088995195122403081220650219402248066724939117096454205017119158727407269815458866845961570545586287786455617538296154713738969221503249391036245075375235687128880694283250545667726595628327793301766365931070942552885507112565850805666242623136157254115176030417407026943193459742247700562373401835847664459759792917715617194571173381898819955985077148441031034656999151874294215992548332488932067527305043460602870673779761732622018153354077669249069233091409392559240461749136006996013043279517228601568598849485408145045954745458144141636799102994253229545371448745500043277026538474044119797298299788861381849182025562230054316410882347866126667915045035673061500343339157474290138258690924538263768929493893552709984789104505271349875546992218990990564540445407441106293709818477203729537096330735268365244173589364382719570525439851190657972523137080602869352299958361621583021113288515662039333597861383377556603099729620854153137517874522672153910372433000477280319741556445835987507040821144505132483411263993918386176801546687929063939999678310598917152282824739937082878050369390044707849474233249671232508642705135452867203490094856947258724699500516435462119171185498868211285144531122686885598833692825551294508726319865948588132642214788335868876059058340282124173428432006479385365713504222990895833111303690583932806006368108886191843124234530284863860930906529823726793970786703445162841873260763896749881441334349189073840964529480501744840285806005131924073536329134565372805838991264320096971028984731025756402547277701399788129005270082351264938410743975082521125289615535317594510001543283105477073888425028882502257655260344645074471276322502361808087995719500516828063740313908913705549560716786493034855539317388217326159184437371170162436191913930492230789513796714249757864935812920315639498801112629826199803142871187147719218216110260504277407805247179790915099676552313816526164441567823904186598064726255967906065388130800145595993072624317442735249926936853697646706807202931912447380629863071802995132405477058924053752325758715479360482914341504011780348487305628933326011527725513460923939836827933962762469878562367474514881290852292737889351888630015089940379847510494287141059767444883868120717202434632142607432383781132244296182270135086933737553363581644413385902346973960236060316909277060743572443863083582934925758637016802764629148154529652126267789965977123324080950588262662498715660564769693709675455726858717317667171675109169447208736060496490293909164569805079619367204411115012542773600001246179532138865450176058058750152340668937466077820187577691743921545753981390931649556647901312889336183334078574513753694336681731746446289986293454895746897349091113682590486794783674988353737986407302127326096774369084557017126355736835492731889218389036268047755561330932495070439908420255355832101920097832052837749009437554492373296119876668296816296641080577185839377903156893754722829992571709433548890517556800609252134167652455848358226834672581877254614285339978872346903535597679938275247469219916015926782602321212756189130563970940503612002858131726249113771088207810514160082472970749847337449711114505416453996249716025116831159141246607531911304554130376388288576369600509900287173087896365354703765487437129293582353436762099703739776944379043764804967304191670551319185263085532953021391797613096198597543221736885835598080079932762973469556070846291960782344676232863533778910989582639651219276603681209826617415503370037721029313612362802334261544274836329763980954387804397082708652885200446972004774135420529870015946531450723890487141834598714373067382830608446223120109465648476899015163187506508815071542679469381773090346661882622870762960187071525889303531099766166999917257342611159087598492989570232696585330539679994409667516693550630917052784094044947375135188577213703507669522173956923135779757068717633935282809335058188082551607291995618205471297470732519129492206774042301259480719429047567043737107003912324816074351963630389869783459131600059875240167920962879646518451656489795233784315380399507406860687679372069470549157888694992204908617802320438588296953367418439878492711098312648334055729047909103236318382428159402225794797923907398620945510776033253771036205356064580098175406830002331909006755398500168965048051709230562574131339880570485833830395995180537322702490439814389663243887546114649861617804143773937310318509484293171631346565102835337444398223968620902708989740776151454253508564683581000673508911499432948818767159988448600392438891327250989446331719002244275795446073005183230302211920628779145366966433784115680103853518905763979568389897504496592679318271700514658107769679009198338384828024143908340493982789473574633468977898608850259465530389042297555411808775504353391690084785344628919819789108104542524744370218099583639407635426937073647167899896608647746513389414367554636700418883921076326555680062743039783258262315406446277805340795659843687440698775002423550433870126789697093536930853242792648828603707076232293433803454455612113820183661935979553660305239328159435446762235553801486395578986501053284188266852801200479030605884161292131293678733603276528615829953018945470523722352181942520543259736795207804579516478899116353195788200016744946241736313859534232698021295716627497182375109871301569663448491678078389110302730399756779498027819522140983193182355017590891326942264542020170697971674821569862408279876027693381986750551240431114357778299794197485372288785221730136382075352330758995523898959743904016570665000538329114998971025842842520127821712495574913425453432275717726031107118572962456996440713438319296836644406313912842838696452612956867289498542075264045155508631383799500007084879640178389973483910247651350831222421872640801543883001951160827632805600270594419528086132463342606863861329052593118904933339006678623557358542572596028110241522348255838562806751678573306245218733725401616399300775749360247142808726882776298629760635524075114403133495880870681698008537645001981827163335977989876840671253340044563338914018898275252237372519309376883355905970841607192384541882481323128182247719581981343130098497803262740756763424936330124938008335405881874611040972207148701084708642303302180298426394072608864169351036457042900460190304388054906893850554283835723720854996718947962332048952098034582137419500358403319076558389926380548075159041980306276610449624052328776486365535929877247848860201360988210840703490635143224955869234394483484771769092649672519275200679318327166513730955603721600258247160487892463659059023317445719396020381112084930760119423302275867819301178291983434048417962621411204748098599507630987395527590206247856817867907466167803060802001337661823639920916408256238742322952538210175727090838919795554636579126972840929828314725580339624430058150610923042814680757419035967397532126614651137697491614161034122122603314975038643416475174587431417261693930878552822353322937200807103630811964506691737710297186617562611527013079174854625831673556279765348976218276971766459395805427061149138185790226106040520561267148191243725913523040209325573113654010170215330054565511089155239581633905749027969347623270431788531275949445788442522660163479141801274568547386417479509557205431294895976475793115748549408387161560393955130537306558558149578831545677577924265340789973244019146837596045002337352127097821074281027835997231014747860674106341031626523214065120365331786200371800331457106858063824504838164381065097672444480894404827940794254292017971941488844757384915414782757467985223192136627708890287894514794490086612099936742645530209517442969728785148267518669202232451446731045803431822147506640094661661508333892629856872055065717643837634268292183852247264883745456539803360355957668905952513644865280919271900299166473429128675088746174512675235464081729612346544523674073961613033455424827274690581281146004644182410627105321476107588463416875205883390358386432421105513250506773815258076764260586597456333696940875523012455125604014103047931092185225636539658855735539446667645651029342757267355366557423719984583773281674001033412619103016362728382085056100385247660759306619322463111781045010065021334787354391387486367323146676302757165580364173767040604443138234207648195775640196780570421740821479439058896916792630291030904018458018327807246778320294860820870303224505957565089972805071689613346696071314601856410210210969832039628675820481991247578611096640951898288695773081884525103688170030412421469158315953287200725825689751456630436314534384887996475933442615366405101396766419187585344747129958737063471305903333053576906585590324119290137202749537965741964666197801953021316209608572917484517733438919545626858966874738684916360085009164140490314521910923862391548021466041916951401827326244507660416998538651491787288426537268429243448713999978073293153253466100885800362272010287559200984722411615159331392556224955789845470221550320581503240390897677869973361802439298585362658162025921176706067234240772598177310277622804200718163876730172491828930223357563371212369111898515840098979188069473423917482122887544776901051693739695979474441570510168826901207521740530341339683198608126506256188774444641656394071028303842117577559285837116304218865769071191992431001467954411604031536161221959769139086855820184914462560842752669665099379790211819331956310126160997301882479392941055599730823881650003205950181593734782425214603384564297297167154191289825716713811320912984656330291982505181840683629217502984646686007367208004050425858030976935814346870961943832294069172390448040814282088520378637809845374672854756646077559465459768674094972119847821720486764526851494167899669691063988943860372554528938620674592926648469749486344647590074163527768813814473624204475254757750492906440956131394568369675420262391764099491982452208171832166502368427688354933889255431333570845198441479172091498237446649231186110304417310661780222280568955913935543066848865510757254657916591010270182539337775976793698129474349474508064138574008236037101362225904010897417309698455960773945752792216787135408949210285215509141985379172746846932641379165728148415381965387538706008198619274819224151874731497377369071537675918297545533071874306439733993825363914393592214102959429808263378169047982971234460713830408340681659058120064124471090540266166208366171430695172485455090686678429587621982864965621357895802200749201527492852421809606376086714134297023170587696705891272010496427416080103485130419326002622544207049183396772606392268307132776952639687052072256507659900624032598030994668390705921602292787058476605040655552810697007747117595259046010889745937329913228151273005078758341146774477667382945524510500271764687714126495813961839416189553028513700500129362765178976843989339368030938348010383522362946860191125510355573517119691746307363218773448246578217544200443586562168794752218149705564265631896693667465282581790407176083047823663411746926957030530403616177171261126996720794767186501895318172460984598101001803063296514712026423031426749158676002917273333966666503362119599244161065433694215204166099819243071594770403254135235512628898343351061579018513682909629869194533838213909303370805834315070090690564650335414558099840291774533150945627179233427611428858739995849877631291813809298993942790403599738870878005404237038834893260190357018805704985329513235821405112889438655236137447065398249721656390413100865191893944392812270411435282428936116466959593242152274083993327994134757736715503485328463700791814277790836905939611851848017796204244100569479495223211976557073716401253105448640106231086166418189484074993550905965660687075261712469919173599591003454094670332863803279106850927339204365687143830357171663916575042137606784543502654585483315037124320091619868604637696625232267137815823860316913970155303112091287454326946879741312586642714168763107749460802154756095220852047909813482409542749234459041542232447247301308533065075071152319078152898343792420964074610874191941721264410220400014192026561565674629555503772318831733970160333786066144875204104767065273845789339884408209432294187892119905333486841189428657981249601281915843894693489525273465778278617379707441060200981087326141263111463000225380293771153554730305460801874410840791344338576786754713349736696225363884874154088691935007056859293264491125488591065656898838592128812296656833530332640784463240588856119885875941512841735185972571622914327336159066861807452263541739026097015988015349807709472036596648762234507797933059754682997136092134679735404269811716949689821110907907556595228623695091100297348394135731424023067572480745600453125019578751168178710513973194053241387879817344088829049027407727283559987608358977352305050420733106959090243688332960655567701657522700843840496982835122484871551060871502944132631143843521616603323332745843343229372685409837696851298267795047913850421146420087088337629822056673345671634685131555550619309626786569346947845721019117926967015281989643998434743479320828850860877935345247060631627547430043577621476269032834275960472156825533649898573804875635285717727106196124185555948454137965960043585943207178457338939554678067278879295189431864752555057556474915635026549902230979782248260173094191114402046310780413100446692461962344853359135903543180370660757540568062343628887335689085737626699402181573497817361874252841687202242538399358254121369778996792345653858778173841796699316529793786164058781646040386122567831929758501042706895070925313302405240736043620715225817192663924974666349263197820455493826581561003141126285666574452892641343928116015995396033081328888754946346995225845023415674115913055147024249777796650035364839468716937163777846398531178983513357239100453731986402833324208406416482744384589584428845074019884723382769586212235692129480662524770256885070999477993770932238325470488663292406561638662613117979168993908973975460879511178431116934119768508673893928806776198077690687336708245574705715325971902670441823261928598421436971786453671715834247226031603130474237098356998562406180723217959780639150328216165289467843266750884243768762699369275364683481475275177516205625707335493114261024548230384178982024306248197298067057336351143162710284339891176703096487277217750105984409740929667231877049158006240853885181465622429663144954257515459301365943923401785479369849084760541175803681877185377726865107332236020752956709997667518855952303766841295011066947231859924824088368908724765571643609659880862770282083577672588686971940416898569797787172042464747890267673417431295293643643852820892111096949829373748363017132483914708278727425419638481350541607678592324377531636518513208557673392044408428662892014535709838968340374315944628510358773912857618504064018322261685582305285422260575254629367440063234738514211275713025856338860471938803119895575654831946529242635121865598006219843946146982640224803086937033348804170654471628962117985306142063937304523055210125239250358067201986672628611253700912650572480143210537210234697786034124207939020230674043667748380036760706574004124492341865162203904516726708121823531712009338621190223487955242039206762074890695865422886117620150243871047388517930464730865059633632691850374048037148061474956854932154027621369304709000578583798820517856509083210591583814685353802859094657781522536713750252010391666550255358041389586117407074244457366026318095235580402441586135912311304425953908784357948282377605431431864462425161047340239604920063503311967885850660937325353779868935698452796376707238507440320523830041595457106322769126542089166495553470149958826499154148164113806963937008365897556031098209301462041760013754727724087390765153306424201949479710902935045540801969985393997187179085596374638892791097717941287700345632955526897914330305796619509347218250713229702807050434271209697681263371728111537254366947522601586305508521869918180085967383303968983472596838162269871298022301391006723496860402245025869906145426066085095872571105601122716056461487804084824345375427099627309673307369843483888847120179966057143276659847510409834036169437002805104188701108855005038924294444212953168743771345263499990513145657446183518512321026430352186501996834484954354936793845207892827323451732259024250036818092669934061885424904152920533337728212047401832064438560332190402093613788805902735554659768759099602063064107450268699295003840529942036188225104203783375960811575669293282001044327743487491983847529343576394478767573256412200970762327437192122446521671392821610987888894966993384272489020012289564058840968160807585476396869343567694985492605240892825868593582849376992796419320362275896187593252840476655173567135616070607385966903361705423896864246009865212922703608612240273480906970451054862740154413699847296884678740875518372867783709860858060194735203185663524604792141491274078297782255342296399554163595238116597300798369423974796071131578171193690271865856068143808700097502558134948906362647499805405962115632922132095907943774472430039115066759014931871187040988252827265208268167637641326483070582722802453807363538278157876890950911776878995234590090301013466914493889323383685138453803302002555482337555803621332688661633484430364599778969724470700064056892788346817452484061614881410613106763177312803717010844668790719855593195675176531785137708264581473019015044059042334358204412828746982311292755993214362799577734336792909447822101551514500073203432510709778508440223627477198603265832812016884269681851412418418759817825248089577050817752018174692037550653162526551865117892898126684429657237770596118396072527347248454471315792686374791374584524120777487757705993301907990896292856845511753457789834033233266591801305238657547304713795398829969148282108588113407859411363063696272630077267206808822738844789270668889878139384744218808090809734077695412940122678406390692020865296488782895193037898516317256657285994618788345455702864022350042741885462585332231260395428911285627438194735637549443020424945804919942488344786583367546706104930987262507850601122401018505251644128572645379162199418207454042350669641124303317739013446327232567178936592542160762886484640656479588302294837532018059564044869108015248243965546551790240664279822071113249327187232009806670314029531914876835867925782053197357790197714702901595330321769937730492967591536257005668299266781317598559170456089787742990576050283717116017895127381190677078001700673020566097909498124464063072451756536613493943062986236775352120882183604667181698875641711932050481512419404645304281223345276654135275574634709608385619882210907361765047584678227417755380399945098559178580964568514845696186915387113121510637262873098297672501459445619188691376648272741594434791276373307289677406866360922585784002853006052583293731801155200952524923345946414514418891470385836958381245938654107212462478573257554547907309076078623965436611644660332331081066783142161597880555775582626366949704506760572353235212353978381836388327121971650581892568226862281512127231130678404749195887833691330886818783142922207404715800242136676437328249407406505322134541186163831894498162291041379849545708331219522067227539716677909966418428663960400512327256326257406931804210217838933131880732867169350843951363535631975404109299212672871197634973969770942360025495126975949346843285450179974912158056265919292718319477420798922125881135876213303927596006592044003517715144592182128050989763501170049796137398777015911246302680466374837299328694894143210603962733377938486902301928107922978410300869989377025733818606770632135778889469396525797806061069872946988901467170679903085450716663844629437800715955018760900862175205330899621351946605030786213637627949689634837906826321803769487571322057514403186944068751382435048012413121724699933091855053838597091977596273105462870472598220353193442318623106995948071611868719741214480681112890241166027346457690210648081678153730287884866921195572856671370507953584959786450071645993261563070523047089852242942742172229079796655611437603568079861927445649154277051202639195041342319793421414991925981061818267829724288402654061338959551831841947334081568064859621273611256933106079634066920632107248581884663280888618024068864660468330835583887061229227071939167620066512187373707436763232929467542523559172270828260832991735061086112325820410205372195958717910003354275575978762186467658403866222812301473994230406084656357237919347884687944362964662649751961286214743289797927784027875254237294792518656879623065460724796191926066443802010833062029415114482965027439391082428091094115508416566976530795314260352892254969215954152399514443589026779205878016342071463149682257089921039147466309389708845236569763979137929774446538437997187008354042186460556797725265266617026203377742212180028172480189078141161668120367896968134448582134145063135518215951285646757383977275348825006079949252889404727272742946488567302337287697590271013290185100616931257973895996524435507978402104121946667531127162797965730471218923917869551917417515481265534301096432509940730048257177957554634319280625797749972234613558938995415871992478711414036591181516023037907840031301380557978959591932390993200983278618460642867019729333418379270812211264823830000874613714392858355431651322093527309393077214259836277893139041500502378677991358748566057926126624119422432495206176819795526662326965676329046433455647684315369229643631841192361643268077274705676713366112420925113921925052787552476913206971273092412964052597046242970881925684336276844765181902834882130531035164865785722525129719435621757797527017449402623115633886936053874705997275121954661247340879981429121054329612925332131557735482189783610627958414342148036231563538146788975994848160324088870049341634610801393956282657516191959459450710712512479116913284621463537593110231468923494036569810040559469600032083354505979564606110827882807308899460975727007451897695340553246779475600077586602446535781698480926599139013285883596545966065827945792029814252047670420573175652345984639631286386833119899757222396710683603735526926887898880858464797093990316991961755856918571000966076326786672609648441059062644878245162932932599722180075842392720578117266095891871695399573066321629233840118065343729346364947864179519674084008642453843397957820574863584895835490987412111605321406394622768295862992648138951934236770323827859499013044456536275783675963535085573393729695438500351812828959831881310907320397414283210420961026614055585380884052948885974529008976213689863005622989290982718538741512101058319014370449771637420084142341318776140659157095729531342270618598868448981560414958657549996400834957334885441786363364764841563843111276595575657796849424238702949741271743438362143304289872333007226089697240858830041367861333645988809816789270082425670642434637705137208566391723155120786817752067363073340129237285632769886559144665583868687098702670905223931079324014641491816800689684711097683663186665660541420206808633768412447553712533861936262771666365553368604820933082833174197443675834211636926683379072771415235272171207466103638032125060918517615865837461534855058228064801353993700978614038745060283880251884282045077502636372938565756450915893673602998475205064302114683611663130280655692247753340239881295138870418278637723069716513795568213840280851861392769466314908874694532391330137340260689282016108464327382705555480096873535111976683907026382802129323383438863699473069073859464454065995257843825602703196730599114103198005377138041470856404212774540579210937284947357432879393371112956990373868920500721366000546020766253313286777037291606077820396914523895224681561274320452263497557778324333546125436193855931227561515457138638336880146620846888126629451634133135577863977438779548523699068992310193090186186579386000987198661116403514069897861658125665663015214820309840059261080437964285096628295565231729122028937546491236622109343637433600138216736620943265289975774680673826693114945844825148959682020998841717732630370965186484790928434447790624976966678189788084132601395048764271568692505213386038769073591026758116178383217974488243991806045328850699275926050360703055425078314627277821290726048454292247930624611446415412915467118854355383292590862587122110434070076005942026147222395702537228681156628614548850844183096489574377860565775819257342068565974260988133278135361697710655375425754717395783492271792979550837246367452176830417302609724695336764487487815355477065273824403103139187601429330152578312865104949675279740669282029813223762438047489227932634063240533526856072328550153179320358392881220649184455060045725813782990593018863172338133403821103094334470021745257990722462476303593550346804871099804259458088216911982605421400717492441904114622838186869974577113987784595612523345923604818228334655119415893276286298592286539562603780594782696725748130157305334667839234298303993108307945333405640700421448449776305842301687998869099648382803672011482418155685344286052962347572865603049139078132857534918975981207821644634826502170643702093237464097215954319354387439790136954943813102282777486356085777781183209794211549188117338040546918663782584836947958484994358482819437035326251119180763397474992256505359813061202540835205371296935844660221137581939515154343286090413412366325231485534376789559919110572417058812139287413346628898506316874033479049756553976930071232079391362910573996354995092289005482304783559424393472568586100854152967210144686530981196957699880148718457459191016597298957177425486022524011090694063711052804474345145707419240703358809060522398453590674692204079086822529064812110055343317689207931141255397673227120064022195959120514058978210619282863304826963322972604916712386984860477275228289516443600900371382901612676923116836815530301372790426307195805565926246161202741167549725143615398913370354246366359369757062985332528837562662634933649479011473853523143667625273071777575969089042142413783026478555816641498659682533636286365480690809823616036658944142280679408177141120692323722216289458273395716887353797802979106604098597576632156641020023757425579334335558146721317158060487164528728690335394998166300484364501129372194229733026410809670904935515767457272713163287260870527844210155067432054023030763174288561926025544364896379599503057650348819085803593555933992483497965999761921681836342292432955701581037745159242369857539373926643758293652418264629007549872504016145626459607647964991183573466299923505480645575468010628641228491760759320791592638907695991966936459095807693075725736701572665257215944508113321900775669786313004360682287170321024450610770619882676800589096515489617963959926316995368919350191598822341037298839172450715879229677679088170939489324784582390482110703568755950204614341157914712181709193086821935504338218897983839728930801010335448285001656756004996919360676560176385879906628185897170642258416275745025492202635542809800020762626399272602204187059300760312060376924673100984571538588041406266291493917252268952188246876972096474428457425341873679209641450636069517378625173777785205254309045926415878007854368298107351726771352483040228154670711821493344299284505054341852273189060906886144715158135235533370575234016617187841508667345332377640104368793191053765508434587836562010885309048442137356042193138836917622165200536868036506445109737890301718097537418182908236729259492120600486055710978064276838743259583817789133788566287132524141919635565176313363315316338092666392599940010249917040532526767021093204519788290203356216128223480055419634298605805144717857149153996773231259092632601757126375670874683697327720203467670111578357583669927518093226367245044091677684610428746561862954014427701044389603802938454069745338280747274577159141399162666488679335171838529657747550532660037470456373222266783617603377943941637209596359349552718875174574473015364981544309768543340237981851467108921822187218288894631531695302268195814966038617890391172468506006834389982558416875172191453063881066711993790618636619283239006551252468363247225230393249153797504815888635297441896972846140612459044546473812611810405351554451521996925345428285276551053856790846519242822456113195962455508348827131945806921479882403276877586333507598729811449175858336741863870341465136624758725633284099598398621118006153690397535498553902630828352270013764280361627332335618038197566904979772010635279118451100273308260485484965948659607324546879713384906648800638730405251841507628142278803893281618353582176115313861507755622405081817932824311203684251198502584399793523988668119621321651598811685581169924292585316782728020279123067959686895770851402317284804044383144779342641640172356010465875648909984558985521252209165340158617388395166609182816058536661730884908834932061146062463523131860669442473825364328345626023891511653982655476915412339437730861426548675185827965726889034215199747323452141442789804204004512599962895793561791435523904980538929487668842206083021677905003484734458409388852461790466438658317164091334305985634438845321366182609508619950308805548925593727794453594547146935936514630423910526065622376591648277374210313928852434305973505386026156336404627711977898292368455822686689204976079955054546609509184108743474490863283810484490911932629593471266675390508232875425465215505277697118245586881298556987513019381865670691313105047095899426480293908502923832972775210800459943233333038657904920509642005563106866339680878706488066760140547310976906430959588008178853678082352822282206354125521310778382439903255626418498836915739635243919117206557466453614669720044290165576746467193876826178650093890594515050495687101009816236975856812039197642020682102201882031653544421560003600032908017678798201703076419019399656171481290014625216247886547327684236294204098531388279011174045621481208815454623527837967228984473841814199311074837064086687943994381031272352075905227350633546927670431490699639374253824901521865822520985108979944726937449587665427631159227901530889062906467531281012810943700477692405691708926721491261354240456331131570044319503757590870156741283563118743502999012697481278044177514717332620346930447897513119889280689902557761877553769052245722368786096956758550035208411784466475112718432086557204985513685524881475685950908969287712452941997740005446284893480207536240624248973834103385445293534817209277394847152828178204562265786641290619266529056703877002766930187221784925344447680182512187168739712067665643407481358903595704417040575016179005909852401477207795238938787899381714454733680034412474048634935216225465549459261428268365466141093223461770316717939364918647749566323571484769964143652449212609675104175555825435776677858202087168658536725334850500195027561159673160690819995903503175378386387875271622684661988511912109051704090514287105001433673206326204773133932746620740295948657070900314303117104945710857662255331270016353311717487969725033807448976275420299800284983015042211266576341457815386031770925753560427483758799786033205130899973193763836638968412493016087721152818257950196909150869222948128036799912662410252677411154436560441931296747408210949629014649252688367953027949377124468822351852100458258284246087816306054571489278700921562645249422053941582605840874560256169955027191056099733968877333430251641383155156541197434386927360830400381805411619705703120198371891970212374283787632388359786075839140876192623122568855391702472799622452387524020316786057298089910220981800411414778564101201156126520433867609101289021937691905925307827460614336313299582022394679086423546698852093728488093762032622978206745141102255336607808606748990603210277837052100722412242209104456025938634350041780913554205634643210356874597692293679731527801019685604105298233815610603210364458585590386692859607979318450754849829530303459686325240775929455904604548942803765401685741841342634360726789465751901615360982087491882025361644985267681233016265309142516010226593572900477090778251845857319016844713796215313691062055163980665652105620652173638555926844678224092386506510186729750474346537398439448141976835997045239547582420536509953625572914255169574848388528363090594337631638117048391931976916816836070567417410321543133464632794592149031176502088977317902488993970439694000684176287670489868042434213502564465612283247749032761724445705579505288643890075031811143625011204961304603955350233262251292160080474820961313042085310842817676989146328704415346465023267662209986667555168383417985501988795332206123857149953544419566604318732515423647900510517294212627634692625709679784831609379151766711184079490793811163136300110704916755976368666790612078705587257325811788324529801400708692129383723778316895076897192343812876400853018800786218608061115037870312011610288427938114179298389452792536509998599373875913839094309044392400543299358625788601906703492064125394040384769626824954279225554503576197111708958405701217041784398850014869255315460683823334048831421047097926279554700696980496207452656702301365707370370443148393274532338064956893914943632794518819164548748815417519054153811351875636112613325852968887956587104282034839080153044868493562908041430153404791037019540696766051764960752741454354783888801345917942885534151649459868842250127340024998549287539022196750188816383748358758681705871960428591868127825554789889213335687359704860060503517727934121466377475362646751890107333202436612759147580186433867666214117407657871313322773944993354404431749745600581388029022856658723624837946221277011959501699957109168140291001477012578467974895398925421878377962971002822238753251936524640067837875154554938949595347251142116228049254019953817395071953187883700199879896681570373450964647063028734420016907050235781728419320799324272233683941032858963884909758838423961697812872393229051235957926540765884063600834690515192900775746846933044212480222042258894401077553618139805184009453982850611213030026867620255522772140580423995976554208485472605534015636214954922803748728210616057825722516743325191738955350318597872131539612429749160571865588427035059277016858045389328676703224322257282910592234549496018834632036933397816955386822329014169934187732593574290495759252484159796177216862637106250894430939730849996200266348003369924073883714072393973173934410174541775238534584840592395133117152035351671889278438237367469347040007891499060562902069348153019409017248764267745437856463567747169230750751829767110188236385494703548733683571324382298017375694264054413879265814981847908268498822659304160054427051879228497329669663670757227339689090242528792854334988137504528951703646822048215055816508367088612672155189090070523488596032965772971909886117226700524418938551145219587847030314669884480533447499042600037340229239722609141754947042736572976927818746284182535670270329345508435358390598215057065341259984322186906009255332648615961214363092545725313777248177654540764754068099057583701598009862886244924619662812502056636129877181266498515221030069442814273903620749279249810489555287336933903234645814968286138559653278448372865509120284868405843678526363263358299648986187695310482396148934974231428776022244197891477113156593437026687161012324153011940260086019649214877528629485312442778492071377731146482676390675633735816196690410960263318170416955504033063077597971876945723438738636666732747498583966460071026194804683580978266933086499090209111030457667913352604836235785871009733206488323921814302777551025079279824725170636157321912365412352472789716476949293029773016690939400860209924398986807357503864932373769849782503409538458893317558051981712691861949639055173174651108941473117207148091767157387448017498235183553160013836170594441814251028241870196886918553675324142861168010760830928651050625880003337421490694947148447997367293660624743619521973769313505017999838414641267701147081489063872847099626155838263234153370048921271664931473698565727339825173344765375202583192328983299934233426042180457847966464473863889811013767320916890979139551470805294012825150901021071754890211075595489971541685531560862866573769479273993381180402591256903031727575720004497667123624269361874217344863853359859499095559569032146174413184921220242486207719442087954341226100684277640514700198116752225891880793483263851778494125279622920149498419514483078792305484094415733635784640097057122444562731539951537998094253132205675722355349826699733653739372935626600316215471951706666214317623734421459596176525084370374680980878763108077905041869064570526767693322803729444710907022922708275704550232315656814971257160485886717742959399815875124699907474791434275961804431449926396615885667339112280478717503127289876377614180456764407793644640585743865606752018412607089282135743062809612046709060180220165150989557689864465037184872519766189971261619335987771490157335701227959218602754574313847690889856891198561754996727506083004922618887309955127002044266962551565653238784786645933003222030754815927005827886958179052178193446687153071095698425621123107882910913722624955313425995344046940228801072508016914228940989622692805975789419967004299616988696700123348026691881506257067969165626571868352517264395150302219890291912341319577336719112578894770210695409787714345174698158157182317610790841524444766895079663181335851535640489484564118058290688711804425622178371675914409688583998116866820630836992049386317784328210393279589316500674291823522882648175230378781130184291811963033950903230411474928865488961436602063517060489950834023139615401865660655745599650178392012791213510378535883826138413325886331691618898085421675287734483550118327450607562924169970513660375102437364904100505611147832656085912447249567137767588053052632770270097896278969344225561711283086598108727427223312383459954628287181325863073648887330045671916766354250298902636863332249419576416623011922522997118449805824450102250451038516635656932867329584570609570136434094184377039403385862293390081783042977013724919748524258516155680650940262233059586847352448883939940910310743060317272571849998719658682513288729677222690568738832951692584356155827355615866283561224171680201819711250540753336579684727939279401927136480326043469120052971066944067984356095834528705506655177603850367027042048511863414093739818841214578409837016055984258157625059775898292363382026949401744710679342780057490982803033132429671823768953623686950938844772275163130789871045602628902103109045437478394148928151932184780436580535835269425167752465995883937867527159117345704150232032215858500411462710285157824462947997722365145729822403315027447441666152333807806999508672313327872196284861391212340073283051356137988497981963286782232874587594900947986272331706619651975883103368860907697809334130709693178946465235526547894561922507960387810074316993851433185041589111290464026666451683229851294931787839173900658138276406525583754474847152673800890671144923051222898891607738273246429260598081664270445971785103840945870347234605437324796318899415794304215946417513333939905056090612212403122603555483636021821524356261808752481889332995566110139313308939099116517175578258448863215946978684663091103938220921372796598972120009127643608581693248837372690285704105398766144968571543849547064550099063512840835247528868925786470113358784838652507219778767950934957277289477056272321914090164560398112129618403753404010391900781453917097972531649348245518528213770795710105266566797956435388715273283448605696338207562644023864823271201500676512167133630876913130414402466168693234570904419273416861232532400932214169676943094089665930580062719357429994359855942985608000453343902799527140981185058583633082726034722805321416981859239932073963129081171736481982283127820275578520635008231257744871830355052769853298614614733048022955213373925343236614881838808279146816618924968931960208805579958694042270586688035263460685734140975015051604667409215559036890711818106475309788560888572432972319913250354705866928850427322122941161772114593396521160950117700640678567760180150932694035889287888965926737627680886883712986382532679863999319255075633360564608129138159081999386425638004320111446992930035096932882116697483367486183610611064970107931047999017783951858776182967535442691940922807235099723739087844320739096864638310264407941088841237210257223293475924596107284200046214890494423468145985662009135157486096914533382862543651642577577854557939112949581710218567292309748221192089773263737424007064266905553878627928944848921060772503235562932725020922424355378665182815254050653180577344429116602751284227480790730327449472409266320913476244938254694205641138567651572644253146337429847548306059005096258201583349204045526928088801629730340107181787403141408739335933865727302821836334018648557992561327121458381311115726596020616650811701215424609342548955136309647433282506950021626440894711819176097257784970466203917392136774174041261424526741768043868549483020396092385598864910316777483436036584551579846615520280312089374922414038273830048036908738688169174119600238046283030756416661880797013836518500368263656308977785647655605232747361493609799597407154399032328795095557659163310978115804554160154774943408551802297222723432549348780990545347704972601306350722862419708404020721804755568318435749518330085708254606045185870539346597533931062943690635835936119398750902815989541170716704569815699846030948550302404435560484212323046784841779093674219123843162124801437990096187283070144756347540271445090523904366197246120969481596425806953599985779472428201409473775439823573945935922347776918895324443306450843488845189054206825728009361557779523670067768505040776655890352415343741073080449355912050018305911287667184222172635774059447954803119764600874247073816006563458109294356077082523158764312036583795128151216758794267383247543357818300281897375423339003426146490298730873511088559026864791317821948087060978909133098911039997459427822532798164187513820947012416835376717435116927062316336257078197226511548448723702356569338469270981278370448660646540506903965301529914684183509405817743964606810691501475443704435874248613577133669751802786102270534438014747041644825361910385338689750281144354495755378299480049977379920629705413192228198322979439216336898202253111152649920502529851171618824914309882157442158912307972966437004223739940013114800856265022647447829311190955450024724738146699751390734628562946882322433800512662131879812785468300176671455047321804930828274177622706835517929770416669985728268270493433013418593465488343169193221395854855290793314048605970873155056831618907781116848400686495384149868420610022702033885587112504151102498422164528169545316618710593468314756212983800948749071288657849241293485068310997773612653641730088177381662349774487224736367939154868571437527429628148341407124612686635592395224256889140502814658779533431025975143250214497833997875286054608117607664045925008782964837039935479841109586521057343401792970609887344836655181166177060139216399044340121589012274147998122368919724714844997997669195799558115854864007929959688906549010395608023934291566464670477499693219170680287561313565618199361957719077595449702106698848755830551339598123125522801544913040451761751765685937986240805320702284146438236737666652155934013013755294955914603313649920027025369617152715566586708027235954526868473480502568109626277941095627344378574646553190723997026340377017422870980717238944811638260261513433304587945291827046153785485146816573911338516891041607292150681473661242507645864753856555441500862193324684766100185082801213087812017829210399203221245921549634669911432392489452645554505551695961950418366838320731153969770266464532356343529742490109031779420123703671557837348963730683523993536416843129138011252068332754947125076206986872201290787608247727591640801733639947635254859316889091813994027809604929273927830070542997142981074737902932482020122336647412955270415096041183249691046900976494654330872813320570976401959364783219314978453978728598263009137140036207431593739156046100322141942535885598018225572143066160974347315527988798966377613368252434633433303824716517417781154034084911683503619377550162322921907797924311970238695002733535233901514699731652845215524483338323908992756210025327309189466936136236975912745959066260944881319826375844773005172740775907133812185871051812174553082448046823829377892875316409060274238463824361374160856799923556796044244892707878691729220102741395577631398764347715762621192279650783076001199905952613868255955691891586084516740994225788104225907190153154160066043767110286554610687609556798692477387202047591200825302976288600697080764565740571125330020294855823382030901473830273928481224441686536410031457502513275057259379950027320896725129734944118488592671768177542834810237750658398124630918886716949882721592361394757093593754785956744854574605709333533044883206063023908404556616356125012047110627008280273057003304092080243576897428273887537856777086467748751439212211422971642254826377804502889325985228885840443472345325110992806377037748907776957256605100096923902065384756593977006905846579888435311681144104247270305942176717534262584895024075406279242137960294104711239317001075223495407988790258275343661093205590215816405597799855269971725981415571122632224876789497105303463110776416985234126258385155186841970004717268198439733547329772928889021998046579825528009953613305525911465164489192492759430312805734613164378352676386062724217218437637764527207733583997233820584658593619148662271891340830343095257884189422194047111132649491916443165000105598091368411876271567047986475672356019128587909164805680218835532453522307107639432879306025469706145541944166669151757783565269423522459124501655306265485442557542742472078423691272195763576643446285476275899204767659542043016780668869905891003176354261839176133700567664117465816921209801123506986669180901700669508211710807402536273083003274241774554875014552106357594369881059884321089662007094548920561613677931846540066489965584338959261652615068605998299179733749616135327167239936876700814187970599736708721523809471745346322102682376593584679065335176340712684958363410943170893838321666976044553223162931365181946172430275755404796852890184121839194462393519671203057635062040727887003473897096973216761817526269729034187985878621192070638516563230474972572117099160632556048437103510312149107483002794297380639159897208877184989487647797328867183958982410761800314306534981806017847217375413868424431795805211768626875186306720834501148394921253229804724486688138619231279012314856500627072357989131209604657140306088178716596501369723709350699341517414477547068146126305252215898497722228370551423854314243293945157414185021865736797287407334029056383676187897964526200765347487438383435815840367868781202955052121723527263646733625911160983459416242291021029978753564801480145128612789960895923106960727905470464340762437390909939212328808893857688866616676451290408820803977800133717890641726867090875506435107846602382395453590514801941530491605188813979871238154684559864619157209985286709433962361165276628562616103302210816093456666258337577051193173264782850538105023857431235164006421988218606737387482924716945596041151239743420118073588169815463740352518820780056018942831539238600705013978781329227880889171340040113721836125879640123313127121588349717895052196554361301602337297827962338790207360008769333843400734433744440858638738510275616120271509541626208543872469653264315310702724044302785244509272949255372100192359390172416351198119877297002616509446068405808272762187738797538042034772117712479870069520689460523190330630534124158459009016856426678117532743366548155247991373960829307839620862581848447798807723207099679108021334713057847993571996776016385427504012660168940149325517416519870362579156544552269511515188000363096746501958365053192394549769918375182537929518686389237924021916265500849380881143597415946888355419177072724540746490594764695548797229969167030576128652147527640216205185639375554543119112972408571892460394831743795040343180052731628976690115211160760371954571452829274343033825040192436846040049677884045861506473870187520138149339434778980291066600467954276753649334122434985762423575834416923486425673184353541099470162533003603873305467667011536070647405111416093132215519111238221319150774084821833525133234505999966740639322523305731187163015011016264848435977373932225915377560311190857169963193967424480677947242971384691328002290781818530760615158379517478490781485451428552676070665113546694512413320714554869228940938700391822290241113212158831099991706314402580888231928825036763619646441579183237306333861664532125722226965127782725649886481436540361017356088051493022423703344791431912325955992262719189849767975994176120503252602621949817345877344933255760646113169521873812957066640703942520260994870284742809173706240358298559390373394335403149357158603532158200833199074777539202722762927835133190509095515448413373211762553463753229405173444734154635333470838784596943175685036868664331955155678212875430338834808995048605558961879629971982042050143150384210554603096206587945235943709227302039298313696717201187202544989823390771733431882068960982684924831748912903129133828035621521123019496178020223632224516779498773961505448906409459684559766146550311390217391434997665796491898693891050743088252709607978712346021139763941708758926707131934793737498867787274805798914790160332944673232762548155646137445079976820025361951635722894105012997301684796582226785688544644307752691227804802993221857724981470935494434686441247693045018660312199566866403081712813367532593856231404102048688935225401752228352627846069155758351213720509772069834494651603359957276880415566695367694570301692600904598459997718911252009476906968109506571532460112001113942742034088068169323153857850333070883920474451630138764050780195864423773480273446655359072858984466979174619633337764609413917508805880609288663539667099620814347122770118130964876347095417010874225751372775666308464546630214168715172002205695977854475561430504951515603547386112209102983644023661982428429739885071713185195463917364402636864807114216364301366397816128222844420389017972369642301024648462737545784323375410575109209608540284944507870546585461286779724552665997300430263873264124137733606032895648675202736990863255802443488434069460651923158305632864139579515518087605605388863053441253425729463829513729496786718194941392497256352183532596743590865567315022252391501697072315263076035507586643044398533212968033826317462138593431074836399621931629596799597541413823565868706570146709041479960875563656192402929992412995197969441236796309313910615517357353996539726460716442128444489095749768854259734476409030372993297134432158878672747965977292910850452798785619004004095298989740186404340486206300776058285176283338450534659331951391978103286391330321824093032462820980545908234620394363102468704460302213704151458630974970442290790083023069494476129838071257892762801300604766743433922870036756313653794657914097125467746635663982817291197078278613603860894903255978640662474631574750299741328466802543936265920293501957212485660512996254741609931807541960630943423702586366108694863695116330503238492802391176943027514296124865378120454338609892365037133064385102461065415551546997062303866775598411717394077200172340383677760713699947827666491430292834335913596196468300004808154130072177258802070781143394650002533076772896187507354372511134870277684984487756509459028909552834571668189952242397259302193341854157370934115280744519804914579458308395737185189022562337418314469915867939258244758054979681608796727079329223542348795641727827110464141625173936195383772891210843528133358764217706116843553319533399668135491271287853273488907381331969579004801239407936920941922316158894028642480808223702490141919407031562141263272959813222746620241743016713856154018930713685137953987393693231069724624615452073128391335299882325142734210483029512352633819038979282628107341700418070529494983194567464854550504333370613584709650767787983003950108495665992067504846128624261495073731595824433825247589822984062772681711195198230809471683739279679319683166959674232599392494692735384193109705796332881575072467505518217210295313725627080379293074000302896618252748359603796933410672988271013905855597009525267659547359579548761879474447731852467224216212316171271158793022844498306092915171989276386285994523712915345785237445011939324886125318310565376730942893362513159879265754230755179208975328279250402628088087018263769722503780398828468786412167151506302691659649663184541808336253839140408819885470533217221278475125897009365461987136271524144834295272898329368013043770093246449023426523947815115534388401582999356647661294622745332100962608494788210560387840373266590590491632658428394940412010833365341816406007158809695379002372633311985672412164056180138772682041731784925264466960700475169102094084450505304862487475147468230735369399105790473175456913400072836773703804020378051238873672908330811489944962273041344264833424065359654306606893483155454671168608929358987081186795014165855696680386382731279180945251956725335593769648570683404555899974419778912715832999078144161695876562917572391085545974250952143602110404279338329192487269430226836915444762484570838180166893271878680888433851547719558408344939492543208613567405028332638277782020952564339945025927302786444376500853261808426077522804421226590418503899792953568553126881638665115607659458370597737043469612523272032252268007585728402053662707135321364369362017913678861866009824846622267541562213441895603715894438946561176068734197853794757312678306424725379810974380623694135363363146177913328215402117053816399719574704065739913625577738447316779748281651400945922464077925152989572494409330110432547676118623346047825128010950562280227126128777756663361378586473517323138812188429493620437095170428522442257378221114023181181169035729990897008552872784390212265927066287567314059563669015906370829420811804065640646968275519789646123836713736805250054112096126620207386286174388040668188568612736382543056763036999527324809294223142277869978638211479922769056215496498642159160543681292043039806511443337937554589362328235265458863954171381119485242759547896337157376253909343296784290661724054465670390878259181570697596021044723952900499037437401418702977700797024132088844372590829449632531693455524001450948327689084748310726364171700127261409257603819773119725810748232052071841217556791595534217008846331544929686301548325725420580269543312321824452271763479216589687811789556068703401646925413706134511709209343243604229835798091176212367137636506799316718262503756559124593984115397670975977923728992882523743290697354545214670987620979595089537798242706396592298820031914199351014259978454903451684015878789255456250188641702873627974895450707910682131072708489258920095053974683451600689312129161372606146736709227860372095795575957506989688341369129424820211498774486914073592708510575163089232618332970625409970449866725912368312196188522328023944430841514967545917275538109918971969113778658051598035105414914917069421823196061769408271468799013896166953495763037249944796312889447904875940390492399920436071572608356943773418139734524545438605177805794066707082866960635039152821999136876831891515675655944074756331449001976474850168572537490180606315129885862092346413720482211257342862821525029410203727101679940540507397822961544880035496408298650796381145809296373595976501503382727762958705120747482971960954281484716705759418334147449383397057532674558117610954580678996352417193179032690884539451249346866077496112924197420981576327613079094837652436473531877637332869423653973814727814249521859895941991897483384710349066976455674490206909515995384045166432192967188914885961170546710156971132947082834723699268133286060603142997630957824367128137401609152347345670376619289774430013579522178983140355325892401657283164708903189221573448812535426880784509742446116005486855106663160764259804050983941704419561127883568641415177860178210992190531791843022678459128616122769246559631303990946998620523331821277203207392947260679901561487367978125770627158046375566215069235391937060338730035621700979064579158577911795130773417312367132557318087209589408895749834093049553695744101650255695192689348213495871718095701376598409761044962266832835228747790165045857734028742403181104185651782832779674801854975136708255856636614630273350736322292634655970627409178954661474139769790892400633286417155370709630794570965389485553045879350432779824190543672773586015112334162333499096639138437480970594873531783371910272619392402904021383775354668164563509529418946730045410808238457739704630721027273090899380528044841212298446595340143608207042986356295299453502941139211040276959239852771525934295997383798540856843280144290716936436320834344639011686835424584336939139678649594631417342713497110079459983089121960327353111907002186984680874119254256319587060267544551622031265217494606900221182533860733540153293770741082946801454908946855632513303670761721706401762029915039957443956861976075486023558259897732807113228972829864821294237733576024030693274368980782289036533995181551030689131319940602505551822462416320472399759711515327566370139897293641580664346901129341513849710713189344247341505658902723671666469627360619110165956759397372633390624231924706460245307730739110964660314615875715782012369188204637278348698144578981506698012144057396033703909307498085738973228495366693199871424696194563423952145370921716687745907871515091324481211401787663277184412507610467092511990760565611936567297539012098861308927057286071257983932048626237437677626814740670632819335872209739741738059294420149889730167147561373622882073310255165101085439634257747679186531190193015615733971171344086031525868949429800148593222799224366554749853346704087229563153687868335287644858248369189739380471987000845444845600255148770610297133277586669329034801756343002973899959665248330783453808283943161788073700059507997399505952463044577868373791752503846864242519150941146510244434637766065920962351800400954505981206024327993410159762225092007451610600445889396353843421657781545389459716691743857783767100649933346860016737459124507643890564298634152057346923655872399046234166654675717759112868474297923984239397446068282030410082167764610415905915760659919141033997692297189355288668460059368879156329681877127345831208267749834213312801922916777621287631861699224776399579903142332279549326966081050141647684961350356211615217062175985277378981623917088838189304067572030129266141160657234352706266312763087718167131268489813423786463305604684834360980033097394492784317869248111721058610847284049080113303007420974661054920062276262960781088209808703799307428085585790771717023188162126005844413948787685202330267034113449339486488520839644130238846825243806856746253480411939790700404486598839314742284081513938675204763355233889631250329462675932091581439870835642626479629351767155690455056267847431964320724339118077780562535520602174905190297523965311269450132652419986881058160303459696653487861745191909441086432745831326212811804743457904514894063472203646217190269693270044755723043024021411086386749250541299398892839183871855058985517459683938883860106704431904388695083909115887762678456850360573425716950546695958473764929741235917028980364255222246365482036298551029151163637856451604393605392839743695589931939239739201895589405594392347791449807314601447095826856390307609532023898445320583071653781067459321871524648378189502070327028684175838261477257246849007787723288150445360474752854642242330499505650103763929323888164032493972557242648179383055183395694140687035420641628005335933597549642879285414242660883669830882170705837061102605201309944008387994523555781218403925240213525078189777358442916980557547539901068601320833791055613661748443419382239928677373500489590567518115181842111478753923893343532316757988919623565862222945081380180969349917109726432319196298373564007526440664217831246568366738661237586091483475376335427909860648639418988251381351947080830159099135894223872795278010099690155799380252155303414116379199795569450847089132386217429879985593292643734415441957248618931758683527817428635997991840297040727455590638147284804533244841325873837264656567032905365369610141232480170540653728899667386505495628872244134789474674063906628692196457110517796222029453417682164856731816111544370215203684527554704048081047259502395294152012854980957335325604837080700776978027746679023566619977323183807343873682522583738032479254250904920413337217323992926253818758614383814000982164289597421968382688970306940238970324075702046359856620846640409381184118435052747569777270260034598931950582319812562192049468813257964848000900204310629043548653876122724828691579531838350597979014204872080819833689665702162633586911394559125104737211818673801226704997648586369239898327721644679906440741763847565467938402852494757575151423872532729754414252729990820818247841606290852223522638957600804953402428541530397297065518753388735866727692754446028173464139701133687366658723159585162245341655909307604635499445052373748824944650012911032670609040376405059848280211814646202721940764253236253344243121603236668122086659265703438134995260187007033669183555171839348729630996525838219508640633475415702615306068040949893033244256722521880706142980735140407078616914721727907609040132668736397299727719460497123146671137525386082802703854189673724181749249516252897866821156673494007252358042343847112067631416040522591327205354865866074930271601550228635112124831482585575987512407995187750036113369744549079933227517152436544708577478993397955133220665165895681667179427305505672827074926123193013095054493249525675722403129943525611419215411559173050357138003116242832286081215380290625470224555118404193410768985490975128837205556748256298565131112768294827135610475051599957370326802155413566501175431422921710337223621719685394273918050107682624856089391119791280973095371964282138812862535513059281146890404271479193984289307473263733421602747533218820859881502127710483204081092575189249623614801204806231006511596258416963431249907735772494960857891402614400155809287960608664454409029284940227802915455638519138505498297755307106464287416890098868065610948114817939550280918165368012711662718550037292205803241651233273648301496921106029983627623395358168053085754063773896864928250867968996596005433548770516788987777883526392388694997692416532985245068627058426048167299282795382677582737125396913513055555971400163673507509037082887373823915827821603327937367308782688997099234109232799539305823061010013527360016999634933170116908439475850219541153265850387242650800594157224213978612690147938907254184262244739992120227294900942648129853652463429162586389139963397268252527735136653364643772111853956178590911987843951439999192034378724449863397422110972994206032864117036209073772728299699183471060231088502430633042508293051439932894711186695384439833977410227525096806376465388744730655727316933589989695625480342280549404789889414330003657262923951416920057834258927498790975773035911655377170483442268266608923548808367003030345998652787476834707916635159810855891399871866039862744222808961810026241794180004623493111287598995343917051296848049121031016180857867840874995020542963062853673881668831730166558763270749941167977937326673702711610684685340903561262914189626178324874216264727094338328623091886278145338047198238978178571267769595338992420790134656806857198747472866699244277452466357655984518125804568513539031826369918365347004858314532495950255379932768604270074357106324443748167849621185767501829938348780177154340373848041351119423208569813018282830179806839046075915865209424171004226686649646141821560700877544491463760598350827558637193388254887221987884468499573594762917263961008366010890169601455380120742434743214513494835222348703540332179139285187163444314613193427719693939509425713300916046174648974184826830010802055016662507618113103875657116353306845235918276417702268859828058898855804972114852679537407276180852632396475718544628391575984121809768691702061477380187067689730597020896919658763189102659606409805528182410212600873490190053211559550980857689418028191001254024845722714623986258228554693158818755493174776706229312330283651919404286020539434542404891045885995615640011157645265448920890143078606670602320735605781997044543055974006180375746530153805830313337588933367374859617501926339216403490732009122827682166632787755367085544826579409487279418400894929908614858616542116105776924119612535630245406314082355190176158467347265187172905378649879919568975731223721361246551353754899339926403116356013403199080295669211157494810418333394513082780724182825755645217775567082012575958626048939676058548094707165708615907613381619469503927273580244754977614528118588359604716481967301212758416795367470227445048033236240923260370692875645250089690912938955942188748679644085342967819159377626934342674355274096217155634040966818610278646998169380556817064162358994322849551818026347858159758781906233566964035045888781052238917437424348593726439133651022068384680477475059898271488912239781932140702165041419062668944263471856283350498279618444229172379297179810511180213816102451797664316290667408761554164000298117490094653570920579373661688057649765921053302602287170562655762143091726339931993743075015419271827094657570637337000197936232402951374533186750953792117222650055732458853901667426001505820805870637227929140535917043940597586607486223188767428362156640736888502381891190703573012677810143245200935035722606023020063535410257907406467046688446757384424969759778468456560864017503521987886056464397046818263199292723853396526014601863523137118617043998810000875291729453179145693521511926103695017265332705090446775484958487939429165187090341297947718930136148952038048654013354506185713385670887477237963819938224611500166499347884042597383513299486840060359182647321075330490258429624019881406087757488640314079158858313900401232916216904943589088329949143756204875611824563626123013135611767646247695500641654590699369736066171844681053957449119197425752824333282161428316410330233260621696402814803824508932446036762342239874265995827730123402866262821277263871469678275178775822664710313037281102267116032425828023537596235320293046147359341047090281060544898210173937761006080354639431400334625832289925860921174476130799915911848225237990775437332102092231716590469046520317207935372269630099673262771467660658337217840542674411855971199338885915651968850234518138198737130794897272123998178401122302245560708128925442302692657679622802276374253970082129963749071979660123672106886609849719174969183122378485121532676839321334168786646781842146585599393081692403714281927915701384028432932882868264379510834614963469333467330692820854790185077232716668499367369351936543972512553980905851464637264668953785443113025904318982276113460128148605976221045166116679372002566537761533685815435408297141110128272938040629050867583816034997453741160472189096643924742982314910299424775765312723218578051621176010547604219228221008395008093308657922826797224991818989937899446938415475165762405098815825691631629056685871893956612086694669072789096083674068422827296383738029920675618919360505411456796026031754001330920458583144540290932529080109811193521652018143257670818005005605909968446024449171941781718923407385005408661685851653362095952931726658047226037592619900967753077251743686389706924992704649343811180957188722845181636480679967679671530383359812326302638013349532457280490498492853272265375497609088345810363124458384872647899473877391012995991853293644206322965640142939849420381321152285976709204639237050374779939135446755582792930271065853836563902447406925638829225831738238136638028180875985820218606130984586609470196766316978548052793530543852112043606724952502403906256070615288002024523770245634039979970687719441295741459233405524786035146352388331373699990820652327678550796552628938035093095566698823783373937281315611180728920130803730183364385239651263316780858574395545294861873413261206768702720243431450726382206212533678280164568341321974267298322666116633583002507030897772529135603247018250939002944482978916291217040789725306105020420421374479018410598940786150869793370632170577607287265811359748095905046306961446269719321029049014033157425947269337531198565867885466738541252672583665193651689164338850784759762322233656581595436344154078399946181295611198114506099198385572129037379345249841138841832293903306378823924110659887719105574936130496976808453861851998528680559727112174126979023034490872021768345302050920701316874940728603740102447369965410545366383594166254831621915677262387432518306957920804497595340165341735418842302776825664613547062715040742125000329843624757377716986687797687367442003795028554306258373046293837749734506431901266130017714540986425426009861751393490904960763324146543702870880581395426363461146629649944166227579624598325981357134022362625255277822825916486949720874216286909233699132330718280215799331500488446399447934185429283362405497627886611917780778364390206662219876097639135231245875445195939187643544211592144332525769511996458301625543650730387402863929602278762463662014076107775991153873087972136162221122026808657923551930493035379231829331640205723241638356395139140142898740420629645203535345605700747719521742515700823450042410175706901606558394421082816746503355227298419058014936532405686623305357523442705718950005438227961300856871371718731695403520465806087662981053199907711356025922865595049308752932925178537073825382134887321150730024267672462822035279680454598315113333342851680589380614734128074773260046675374969975907502111236100415662174154218631051914534149962669079409322375134191163137458906034186047849426465884200134932710948766226904235351181373357562794976194198991196913590242494169565309260855663668560382147673717591337161816659235579772442579052145382392056392829405159468354681963782479525192653398229563287105786277970340378056397873128042681700243258660687224960550748595352570131368480450513643069068882707466485155308601320968892922431399698770190321245483874881853097433096433774165341765725103459014467751377206507609773461631615869997780621553885055146019633485069763541630445665631487117844195579953357535507317895682048187217343978760148266870416665434128464830859544250417813167668669327306389711624170691258681175558476825735317020890829004621960167564239953782270707207253214814019014262207766343724063093194606476612203850591846253813042607330785929261909123768742197805255666716065171908183397673552814910455975429632229815827984764540267495845771063232779752624147130697959639517349229971415247872845287697034691783757587236590390880295180790382017818027700624841176213020284416089618464290723865848602136629914171691262437861412932420360524501649275912018362523189988277081965154591238202343150060371372845953457080008839988594948901486008140946054755234522364319381299087055675515593509488836676463259456602386211962652119952532956122502632470669878451720456261447563422501719180170983531791364598641367849899332809464994756346786560386036617682156646377155360907356310603788375097838350101806506476109474088351294126942581221033929460779698181957126645994311085046454789899037112187846224684485754630774574872708992579095634893453898077090423099082366764392484899533118741471589013560380737840418316893848222676327638815948176862099206881542782847020054141637204656177795312078105699031073934999702857433874210194258055116544336735297753277430134517415274603674494045922095928354675880680661958655082843121462102445168244868420019595216728684887386856231936520664015680971665437785196462220346142172881814999638209909550086431708857887947913234926298264850032531016820725051143164419073791502500111394919262417680430492014184104774080862935814276435018980319564642830963433817225465810693169933101614777643997053308870809512289660453389756912413577775362008131515776279998133949086691418940688405229017866505546176234298541200501116550084890097822453139365617839298541273051072400728864737651483899845078385846290830700953694657315272451991326156710682894769303026772635439455652716548017075477692173284529726009294592796796100285827925955298521775644385276278151389707225775041156710531134733419828124044461513621765995234171131503906182852424155355408305071148342629728643606436904421129609886129100647861362270511442466113563595298701442780064731186150250237061652738046603586855031538010615631024708981843332687957934853710365277408670154930803251768486392781630355941641978190505763923486868104249133302041938083087856055609390296915333125273034647605932283805673956247396063769945020442493327380843825985471007854999364653247185637785616509868678419606760638277394354964628497383552551721903659423766798284891588145626594479023686442589779823395536271109434219222841364822633516098701025669682294915477532557402472454837345112074070908900534334115880458375878882423854364320127994447975873371869204585934613524793171765983666152964561470910872925220877858234304593706041116754922248822448907206744606380240477763837683190811977343790640580729662425007370723438219379521024842831413540916922049047706399854216428515144298707324630758942535497189320123857049978214764628449472683933002317325953491891637558516025940664352696297643093395045823695230509464283118787908427013561406562076222693934986669770272490157222588571621043156717550814631810582532577168966528304469346870798062279434635807076254831926017070869949161460980089174801400908074855181470782747631867492539215661196967932067550821630928341692087943462891548229914553261428255575806219611497570845212769400826380219492640213979031577019073159315446291451957314181447657550036208952598608870590836579214740437486534303758578140711187743129224787260885602450071278735371676042056533069520415775252665926787873249880595274017355248875273938804022273672046359173015251316301831949526929811136178070476586463503820456786215775277804975895705863523958904337087475195365776006233521226707380416876145815887386062657355380499816673896324349092637189848723132007287200071238944618729940410657557880950258512566367529350497666201578542396604492015759462831604051123133351336666181643689378867865239407099014660071649098002805751142966479680760630020278778605003549600990092803134058656775170613734072258475577940976370434819081409329687755879649751858089824845051634695755214705136102188146561600170307393115224674442998546263154159324784349099612040185961869013465191844019710374314568593521734655843696255833034472495838800127182565621133053763878230022998672578902314720696738886582056170382170143143707810260730029369999636341977263185662957218021236504024680275560809972176006778509525327320542995056906203787227190288246518636768337455742681244101599691591527013001948276457219969569180290153778508796473061803742520383349482847140253562242232261242487549608455684659234188718576443400260919498517161523113972035144366190123704958920186237037839113975836820175573219502775994160112379427587584258904982903987902525630677485829348848096885975351782855213955450100501452319101099157432313958740716896839967149899210783190020081002937606925390398497822112291778116614282717852567076921059515050960420812573679305948622781046334667586946391756457941091269355987896157805286945136010950104829211844970640575272772850563198369765417036570022375313078606629776551174593560795697281063442638260776696648833154737185751696753488959184180088833796409305691633362920782019709175663472825425663960943019627044086493379509510977206853384159394051330127177041743239742211201718426033644710195758057885428751675630832058287700599973541951184891694170476897325664402310063894735320230264835352718244592081727194483877993728046033309263625320471860105719467058625153313061609977026560329159223282329868976185190041255648229438230308618233954797813038894309397091223281422615185763231245511051696790763363832251735583223198934182587162894923192692261453997274845120578007108119871999633906601466899717432018686804665552203036483101602052596206431259276776443455449813973139226388445943276859416775676750953091949466613627668982607654502631633297769230502886426047171773181637785761014240887511137315420773659594130696510296301932386103912804718551048798050213054687842440644858548519517917287634804920638964933816928890049178917560818669889055899552056468060837324726361694078216822358780630829226799228629038521096430549695116230090847551510238044243690759239846371770776408418759845682456075187558864490989095852345399236394371920171617109581937265989775979678278817719796119823230921775333730491717557315115613026416204591426464229690474484393217946243597948008544618573364175042482654971781147955528812763971028933140723656739863456082753937597267076855908228365453188909155355232602752001077744849902208325596802362849157633966997281393654027959506118809749222831028386332053463827200834804966625449155523927772367058471179483576820810609386258805759244147034500877288944782708099824204132205665398480791795403051280897060500273489230886394632743221185907225147061486525928494718389548029776384660815752543757567158550970894920424501912431683546201504534616588145351542042907250037136618079882827729818670674198547368121625923369495716307312914946595116857375302717547664103834610661807349325672858379689853032796536702132181187494046632869606532847348188463770922449616554591560656447341434209902779532258930221929680822009236268268563756583234591801971250751676394026094199839948030539641431937195344298645491004864278133645485381672725792953851119917359075242622714098539763157995211658643390497806843052498687976010489268937213520820542498445355943412945655615491053529778552436709935881907700684139947609672847062309470710572023574363196487034449112588943177255861014731202974949360890713071240216036699197730635677207685894107143772777141716664420573545071151582803866332547219861827884525930451110778292550444129001936506084099456296563625421813690419804304978199355576871758336103505730446896309925334228277039349207788521489371838279472883460353723651515642728336016887301489699767690309834361005979825902538585211689487052524495738335012908703818358380813729944166760307934398956739146790581157724383419664719754558754599645291453445773901354673499743904771636192371830025011773272097598957989834113953471126759058103458433283906871801916350361164273678663038097415740899925257162491574106548693462070381443908575889587603770369589891831485374687627208913742872387795841802549813460659307081464860901681315157281421061418980918920767612436283181957641018678346954363634907451414747603687341135449956734063430504573792274111689351728077129971063132250647003087767399686571026294300127964708070352990263334302192258073026769841920425040932231097625023358800273994378023581615887933809939623704885134760643425103114691577455058636820130857382939514570612337782883092643955969997311127530684477682493900626492594268924774554204795121779086268462966916242789837733365424787642013379041206483886945914872422105349969112095306841327603591106340794640979558674143020720090012694986716541962232131212996699126869995839475206605230384978411925998250155728355895133343376544798987811808006629663136445330984369008520840005840622437785591766566892214841237663756808879952480304572671238887333424825527436524108819760374816167404592965630580109970020821041699331497841628270212447462342872201543820645581634754521471662812487302068725684404317738713586704523702380579172660627711562811299469160600785650787423436684215987401820850439158924356599577252290802263824820384375539154108454532849679748524728048880149195139700774440732297100189218440229762812358936806283719796130769209071467970982248011748683047460380688202813095907396129776922920527129432962616657818618217793210463668996637977570148161269036265993148047271700029425181417263165962702305907573988905282989657494296712027440402170151293009958091141673327335801683277889135417817233985214339790711534957536376400152283217158374439787221716094999936996181148019512708059145805624695120260828971013698991305344212333951454485263864031812890164410257401204073707633576113501009062350476784750361759036980657619573893586909343827792825534992400640244911431735658933548085798336838811844870188709141037779506661308974211610026622978331926108279864745212909433109367111973890375181500846423590863837943222063787973632639623950369104855324989658150117757805981514998054766273131131934680770275598892186845528081828738252139897678012396912582661435704356856806748701996205972648737836125293094875202295945224973290094702682427315169676757265248265236561370043769776059959741591676843533209433008235173668743164231473822774586691443870687960967943848383151786060682082410328814059446262662548911123497863254613731052598557142401951594841267378007098716932816896194257301615486024276118743120193783894120487500635810090430356515064406975151635706793092325726800025613259485527531792848664889720774455866356234035875922077559145807492776980979635386753373104671467607291344556561367771603897451668391958219512822233868217349185870761698366324152306703409891705355088687387461649619797210624182840454457270611589403089947511075226035947964717393435348858644471282590640266744054590644600320198731192915653637417388253796664366932293311051688117514786831004249602764566725481931564448422518655978765679320834658796649983753095803167325131341341504165935229276073320974378963703053461064651545417242821450041687055300113848604266883624591199924050010123516708067325728200457296047005067878364723206737882227624583801158986698587095667831066663646759850510722933397390915078021276734050278186012567913855378014408793471267256048451466154082013431486515427731682955867064591913490591790891893048348865665641153065841773101767478365939504370587949644438578362120118369096165655958462898026562787373864079471268949052427468034573428888527140950928035769773331441653695660979157370660193080833672728643217286413003471173197564924938797116247778787827196665135494885721525285755914065554177263627761025083213258894458958832114453301639818298798977981950626440408795115778634399445217782207021935948244250847501535779869183234073071454230957378717255360793372690476398882007709872958798181343760391865834666087566413322323674151571654178788875190902301775611860540113410513781126572079758560900434529722001710843999402708090859035729861567228201838591850447979571775902625135897459422315954601965217533420495015487702955851887393688910030192672107724813845962253387511664017502592157851436566681948203377786997941112162222201749171874320991172811169690008096528813648684653819850783554406261673789148384375944761241593296809630011057531713142319248151788859701035728592818782062626381381953061807892667739481669216118441442294143979628155989420131977169800411729906326791261760424706697580551301953926215209164891697954842593540598260199475906265939631366802806244447943940601752856012726570134375867262562474373582637465687409797640809590140633298776394824958999396917249499190439865511111751779480307332300508876260562085281477423507693862048740875579958272042927929629923944925071340124073029671371128656036425831052080208362720519717619342049324149863310708428054782605340585195625811541296587705870528204096889759766732603959813287558614039558874294769262148635245430962517413553969641929466096618898925277154912976068000266112063998845613273260304093994812865804272511166543966565574657014217210134150729510778664016807167150246755122639909791565693765335772740141201726607525221822454226879313123038526982260218762524034579693639059585688117487238226972348440044995594291547515354505135994378199773119811896588125293668992401190147785635168787238215546182892408636052520116106969168543292405387086489951301475780127093158160218959877910804039199282122963617841091853928590584176774898617306278629025032573878689554023798682645175067594210333830152785937240729669980505423967078837775310141411516577058141028631760756735107477463317725947064713061498545767457926545983193127607699356515893224465439949838918081082085251869372240155800126685697547661453852677216017054340463100771443659659033557103111327452306479285827363821251374484469190416692300063474386807377612321583732877133809247353155468624191761865823446844940166207673850080246612117538958931992989428874412026703442676427037474597558069613929431346563292799694771158637848260109850259349022252930019324200495467624958970250411804730853763775696122604695081789325381585287947114690032497422861675655933586064501224112622062809761664930768236297044049180869907719953425351806951290783140628416830466473779327412732127515773985795823935902283226545708046946775705455206992162735988842469376460957508698567396556448176799420417754449497318681689240957494040716052521761860072739887062239072661714566897894448196878219160330869481868105575591125542828564155951200799939238348608485575608604342626737273297502255233293574637646002097796137694896600216566094192168638222499243248360022014059224430495930880092275404503305043109957541451545960032693041166971475935003818091223851436805481847732238907581168871617306177116363279522915386015945945950282895051503875713438669522259986474627522460863250259391660521326686288518908583740876242915595561122042804811649746672148285876767692391266546670840752766375871141844021806574040808965301747389107899280256119745317926122758464113565313265782436654916277189508974893086139420616836360954751942090403388220876951995285333749407715955034657361032204421365378481294931334572776639860295271774904490795751729590968276182668477293799043200664869326281883547737960598362421048965608780492895719668000937805510153859575082417306817649775466935232984541135124990705621944065885622879845274900949618991445867957636697723500119347311986143321075002156566316059944777594722437985093748946094005784075450660344512460456692288920517917884962450953379039243693183128921601447542849681215170977860012189729779750612549022111095637417951970388588742750394021717505248012122631262694243315474099961314508626719339852308120056132465504237050069183684636447278551072764194784293013030086735483924111782525473781436800634392059845193388029766008599927728337881063749933346467691712191858116434096377343405145024206269160818327186742038353353984281504454684712121244796856261975391840880526714862003074694848026355245122205140142402392780676400609657834087580935924898140810868068091944691191656824611183739468820935033301155086048718230893824660592786649229290778961638135011130227327282499615917252902308833329000399739911898575023928178639113964295733932890119080651497973590651720944801317514846900214448121251780549566840144602387018040537460031647927925828492814774388101199631048299981666678444661900635424488215898085674863475916368706820144666401805209819695761338672817663460313816051309025581985914998206160782853704644022876865364465193585607261784853005509570592383324396263699903850104194200464984685577579637305497344072356492991718084595950526671422354661326785360224391960456392756302792155074746086723218380965197099009227573481289579591952716399046165722369820643901629179921841824351749596241797712084038230050105062063808214819887317356035063216898868553190448181094153495947496798351063244406633958951688196347199553913553116905999751052429420281217323319079440873099376562438691989943117489322273170951057406711351181068487332283750334886819842879070911218991649588520388377885273935504228251817050168374824972120843541838308286983747886214144151507432536468301192782059905917872246414972328227386482403489121598656442789001388722684901961611731159728978316236649572510188479885720409308912682942886739851272064866543540423561125323306248662685014354583040880137954741484877726525841080706788451622676765577460237124787962237827894247080638612207545803089654882571311994723711157707941027093500006687567052882619344030177979361795980017808600317719827495617060900957473599724641453383059180933848114281372554465355983473058611181754140642659854512514194696896943329148413781687627655960764652364154922847357712134240287271528520544424897092591999056617621009234064658193061989062876680837883185268390340245697485726455614359890919225570629571314437453082883115620358151156983476900712247818641978028298785892203880076071663165686924758332903374392053971033154060375639599503028038392513684134344562201055200080256603018360632600356323375362043071682341130236058874671580309353103658896849326075904023491771966277081287519771116197607471758657656666235718226782908919581996518291125035614830175618339489087825672651468583302180152789340985210387026357690435791372999715847350135987972393305732467291136727186995015671174291994725941283093410722686767717625686452202264225372977132230709958228226252001727858495208801655748741359764768697722343007385937136377026345754163204058815567276488625701364031761045399963624160514763324832648438988869919587172812663075027151372154637250498698272395533827245017815925411110632691117708302776524764273409348007016258624689339187679586287010433455338864595208587458935665149068900474881129419200432080764385380726201446724729509624839274414017176604325253744520154023988223516840147126842918218099876181305071968493063454292309190423466001507730183085851093400073616750894624939287375559479308191998624541153984721780081979383258544732791694652626653422794424146752134392643962069186305756468026688323845164886347757036798884246468280432426224883705718073323726781875671527003731860508298746102884624485170239936662782840476891551472531398933458850045402255806802496172284887323624265915750882896171522181244375761118444036051335454869231906286556033760977551165539019726408458243391849447595416858593052925171230904654801820802144460614885987286647412977093811707058862091369423690091037129024471370433273857608846149021900379737151156747434713681246164092685750250288489585719101875239501249654609900906184369533162832915370923399729181576217768652268991597594330659228291164433005069758669832689982290450173009877086484067715049006577326491193806501505803674951923618788009676599427548031802685941182321271718954906464280103119389707058345413067460430800421223008857172307108486615785621740527462666912850218450931466430738588845885622722077215558112333494494719677507422992418888865127151897671456627670988920830461858390895633755310925638955756607030661516853335822225215396126974774837047167032256352877958121172611980065700697517945109979117747384877238362364692890890150326291135574485041684846364505878458064593136693873580520520893677969561927123316510303862512631557288201581036277764757275497953558195399982058374353856366492320503126539491014628183223550473645323977799198265463911591177715140655763338322324677554488078210448361215053766579526074064157831338973306294910180179379306578092847051712874389110704692145360494385375103932482396192849817332805478517463752169067207660096490313083520377959462021709363853631729548483602402926190327012552487744559524851815265432855815883563282583724426370271411508515144152665832814420465684437096678984167144997788957197135581537974471220238162416618652203696252615127604997041509499385792867594236386592263830098696814572562177002076583587050901488139332483566119980420429594375557417835212074527075542836154019096518375246213453320932222404337168476177165036916000638650109415194624541012454407227303239378502111901222426988275591353541993802751177612154433804978068578900740190676987699450166556064144371793056665573128028527353071291416124951777171586292638862338290195513683251757614410252519533782023377375623818821622646916979293551199095663680200957975165562797249401709949968700320408151674380306522280283383305999464999592373308890126594371200964178473116055270467130003200514553288290988015512372076357471567659633874512233644664704524043696361663458764426492020186326868068761662748935220798263082306689872301756185546136187158920383735323614766088188786128768691570340550179618923532357018186412670073105235346992237483866194079344748605981696808517665554036820627169127611804411944525829841107698812121613145670808543720778033934579855901074824940514626440989887951433962800259138807305732422011577185881184750927204921796206011367929489937156403169730043635896578009973110923243474536164785121508589806292407535051561411952975895831846724765959596168745479189758026677762037527653033319949963405065113043077342350966161370393093464087229799722753847093951447225888988822552870417931846982403159082766587344110460342180621208160696640458212008339715059450432647060528116504825048057425779951899093547882759250517899176365110807085631656454631070437325400776576239923014804897357013760275105423333209723859833742246596800270747992614064651542479945603053755220426023097741477151791972057129161416768073342514613029557049233765908403814941177932409241318709975859828553378344105933325843459337577241713051656478220958547094759794201341747808571312178667634320683465300298007284333271391928253541688938213767665698016068474072522713337735932631592784627027220199085272465056702419981958284634532689504480999029912379642345493415224529787405441388261347566298437616691114876173487254929211391956839185414015378463969433637641682226125699924388222782488495712527429155135861967405152400519518381686621872803845391355798619092506113852815494524824366838413379384198177961076343864372520336392658072766446916812695562283568227430896208526275828049960623549031876492477002183748694131509657656680871348490801689401724749487524064850463083547342896442103957313374827317443947084504068872018547533308661286644346026650947802193680520361284649444926434748578186084743689374978553374104235242704255009688902146614456184416427087517544468811133752677574238385725017760970269500062422052687040966671085934378845282242036130847073701816501188742081315887367851145744557969779326362198568229087582044100039076762832443631399051623275708539522807186551445493770250239536228061499923197606666877920574769226137297953946249636863052449137377969541387155711456811063016234392709356984829310975280513569863022536144822354077663822992630372375427384839543007382465257167590246231650443705370541037497356397677870610144107492026445998984587963148971295364202443863251154210372904166678433797303755118161753175637172355098112858218681277731799780193079615916347355054381066236469842562825333881730698674619512946758482120369071248778297228729415221496945791502114156208024616877075946658758820492640107022588920386073594604225407716177744550177415315549427918134181579646626030096758040408518580470841369722965683868731070171765881896461469713911010567607851744219905316789656234281310786204333025652116169333020372894696095437675820189104885892311915458111914359536034652926235790448619750296650588054238457409598121278287207405477718996699748599730595255042764663842543558213313529968007343840687601697737011015505732795346438263569206465332469839093563457364429114734205592788582242264708687950690323123554965861311972192618869288643646033932483829233902866703719208411364906010330131941054162576397601942740455911438141597842253421749887736382603399286056548240984743013918087444067434543005594969117253393854089155168396637516323526543525157148933620782221023995326475685514234739026963997453168224925409302129101156421878681838498375015461318379401157555738595084178067709659403174475650399110722508560963222109070113367742974491857396285809543786135620561401749685098930130043583047239549253339610620962794617439735275960227646556058336596822012584032805304491563031928013593974336925228129389767130213221662993082000231571870742110218196623823721678065594645330287742841279698881154756792247266105802242558359337410603447636698931250331153894987122538413503695113838982949024847408226260519824613509018129823285001936924770824265382503018542804223871582481794629599403996544731929740433458438993184369263075569914914832897986003762548161773341627957276502848850837029353100496810282347887601189994775388380134228035827070043800520151603224762545917616613538860448176315880114239882894279417259818738429358315577314981378266606347623308234423882707321437710683142649625380387526255778927605531518754298316122124134245708222672542921547053959757238247311967567594933837454717969394175546733260766633681767969950797284681466930098031673917688258370386847576544883055466811313087110927657944195908059929256947484127040504339932497300614217105330376657173501524765813456383038357969889357869610691672993288445960540526957513278265201096257373506072449528753754255741170305254851590198987335526503973606541403940689213837516329529833174545357980217515213276014009085721531852349537911817168530694584113815589231276115809201596008134651682396437851725990556588015993455195049937311196005594490492165181481694491251521124351386803045218270325184355327004256319849271241536348890020705662245739461594955407362329835747150001165247369140943907975826998723653847662856950471959978670029029819941564285289134197962521017477525907557611640620504834227262593275043235761925931277914980628020126595821978766093648922476293326639107649530571494208772318133162172036023778240079127018593512553340866480545641981886065544504948211120457367571538103579894708502124446168115201476267121046336120002473902471624620193003705015570102550051915591651380948926960498717784493901792732209495002881632391213072568354726500604622663589221375425813863380530468774785079095488967646914387283197574819628538928580456229638350796280835455279486971287340021393240384456090294846880363071619319660349993490487009623697733259597615982500078694360588749571079128168062347775890892530101410823217973364626261106652937643703701642823394551898908144737923001571209513340157649047514109840299947778649216831004026766645091665828982139446017317398238269936056843645399861977442233018038751252257673614613911637210031694380298281882262487186802379726910440997791371626302187891149875303514554374080860195148195932906329504284032319694263026562852108914264832615809522294899737363630807888761378785007591290297033302990824584536958732857864828138304508225861947271410324519686531499424947913226396577769732531904160375924072768044342771328077845642836455622694860135122561011568406790987344410561402834716546019613644268287540454813067558356531915881735351504172525264138488686218750735181368868742130494890118617449730113632482249648601092188975216211304330032784473611063817112442108402491247726959488963668893690381847445067293833877744116658590620428948676095393423637874595710531729846807826428574903231570072838562054997343018261953387793589093470622861733765924001715256590746689933959752891314937243332669692282865037581442809699633483623720714242271079374062893063540356872810552866348909904176397989576233083177108830535570982921602324166920586906654711596842759773161789731395344076703294405658344821596471649886607091635503897588543337718940572475350593108401329453105082180305344659170906725367177982383837323811472139273361302715308125316556566119287281002716007277993022038307576638201338215374609723025662171560176807429570405551223844264532736776364868867997187954736414975654340630475510663043947170471321958246945653558253017691800596445072114951148231991888175466640840337115058397927204326793226108817917913978453351457591664886938485097447227900700498829250495657962382959450773920983159729877960450556954763493078160720698621210130844922184764936923547475509391570106568075234192042841415499763538484855911946338738311095484980371067818819844486878694246309652816759706155035114920291716916824572911498208950295620863150977245031002038175999336487698043717890984476194034026636140564642514505100868243419802832655445444952155680279321409460722015095855109661471276613265014110893663891642348240957262778462409798021383452767441957582513482093282891866063228987273102032483685901407870806980102548138811157075300181187891154226112420000752133510536029781039757104651047801708614058012802911753571180566036596737516149752367687308894282536962246436709691406973584696299771443625116044758023544155884368710197833944191751974397557074656353578196020033286018358513085986438247906637536979673125848272127481508555795190493661510171404486533232151264810262990245568324075248173229644722431426383957062135578585500164121966662248076099836739875892204991514812083629355044272269477470368533136662689721896279680724959508603269726586841265740541850692897728364334847483281448317496194652646024158265693812194427611129637287952380483156888487528071307403046079941834748516285069322259990758242791793936774097495754871860945071672966798692549366091570919169929980600988733714220082149120334311542496973012349470669962591060565024188654696544932403610248030792332420900777414117872106512056569694728904198271390969147509402082578830813696463195415814580287422228844798902691451654606425624270482036409193580192027334759960357003880776174778670320489200451451704319180918941545165933155103862633192008527673101189197767856295627813822659185017385993218874991040475453954421557005174859665107436481324873021823943452999757404396875201911521895818393954171162057732722521683314690170023802945756822635278033427902414214185887921570510796948845779739094543878664931722039167453511626473973807844875984444434865538736689079828512835537399561607420489021245914524227788564177552739788101657664881041178837292178086823982690947352408442875507904847220902062363427331863852876072695897795018949333605527442994690864850622390280211689670008513229208227613187692063800997003312482048137200543921796144763754604847640077816744767902790323705059979815042127102759061850008358226346737329401986061508610082109725490894080337029756869895837897949343365731405332877436632240497086183062799974954375723054309571552923487457452114265446980547678506443369620416139565567249030607733591385104067585878193563990054747061764941469133883859105791639466457399637855141195575924305902829459381373331944903712795873944830150409025100744860978276004217895447340497764615640647043048772969738119522901630459226857419476940820728335172776205902513089346741125171022837112326800948886706258811648828507059013685985016244130052834973165669847889323621860003558004951634635423928750082650241159290135577915364071801963438353734690540670295224894206299035687622508788879507352293888837122419786630828428348888352542108838398105732594161036314511369160636836332984249122460065657869182526846934725427480083382101022317553241947453138741476324880080709455262053595952804361016754663650149227521748203198866879343082199523089600367614924856831100704529423143833018107173441541233635545711852872304274707201295167787138104937611825918081075922374120095386081791537885871236247091727168417333998191317775107505075616153830572944462390914494346415507436772579775797059370220761582624271771350884238124102539779668424432794383062201058813490792880413730485038679018697862419489629287015588366923174105990998165472093537015851879339589991281142645114056616016872983305457578780553333262351109711061923276480314501846473740730939679664372710861382079478790275186178649269558854481247335599553419825800977117523418891054981432477420206794591769321169520105634885672643491954926674002427734976347134144444431562976396080489989400814101692063569916869342160267204056507220766667321802332337242111929282412318362169385476884034628362921846826989713105504784485023187172112805411716699960543138265693446171061344074069469490552697841220643526606746246156532422523640137818849727081785231127080462937424714842323051287235024784489699435732652248402304122776536675759239741368614296784351742178945028564233588728028038711294045567199105946898417563435509965608499136623351440069080207539062842196063362278704579580813766587382293872465500633289956995579978912378925577163267485202153174111877607302720878816519997048153726938464567109302518776670700126699977220831556856787955845824532156230471150830003731088062117858297641617032948256942099165078662709781808535078577722789228406807942479713516598463486563182511887587556053642344135847446421228518800325370404899479435005257361206426033596993466594180826879892440748646489146365216308761385942194634393242757075305889796051684961113003683986579505608586450214641705775631231292770681460378306508441474778794844194749690704564379148396072783780156969453023506744949676371428181620199131783936222354937988322955900594076920237409469195712871047776671250953191993642298139235790668828058812997632560914078937816236502522359363124259007050052474201281251962433400041631066851781509548559658150565072604003180977480606830514395622136696831350368794164701799431533974880307069071499498189676855455139197314178105389455298157271970276261877022354538941944182781612351212890252069811112780716309451653624389614786006944538670436414288422876219177328923695239833964201394643164964901379812913623251898586394152973123328038507160823971772380397653920861010133306661675846022133993709316603395722300430579367379165381934586362848313101266654242354431388809314559412886606482301919026702073865972298596407758297304609078913684426945591134415363748229048384866662831699844555914970819467639741815199253567164832915918677114054050043155705032018928007954170179148054657048130547513207108274599274282527362070371226313970915674084197860840660647282577764813954471094699513285234127459166258610473229429336328199627955451357293163007944731167717848359471950339977565302820532704324264470167031603644718942440555353934242961417569357664621257506464211599753779806514484827205385518819176126758644034983785059510553310947413778252884396095188045312617709572079440967450984577967369457209071669980008912432217066376410842384516747699818382920503227006538891406296224936328315787831665880450253151566042515756029099171667847735658463173685015708754580758394173715783165598968076820847813239580578174384972108156803820827672161397585077222848441139166605851495385177204639594217629861327930151929195175315941277617194615093866052013076065818957659920613377750355851699987439557802574255603885277555659907085836671913666443152531916866558020936210193077040143500339999173061295723238561592273416473041301791756222183910232567711166861190212893900658282447864394811278552921120801415470720791371730604350665329684582909341712864369872193927431919870828998364198633838645338776520103377187971845635700794112163170902245277847089589218585313837324176678836086248184548487327158839020827301681279235383084461042063019624710464722873630709144183199002494221059422672478525791813099086513375009151745160848920047460176335244539522447664165776315918465817371914577730160137376250541785039362763848783891269672103797211154758754374470444889226700753300018447610163929027296354328308387210215836875051376348466085223454140094476367824153659765775685727260022853125550819496042721358767279982467992856479255041000699096633920714258472141614819589848228438619998118268014261751269470156659514577584769621820788731793255691141656803009684481443257970185650656857035472198899465915625086309322170021084554225280644037047841996054413295858680159833230045573748237032832757735685200754580552179363294254934407480461396999459703251846932991494201432077271972983268185514882871649416167603501472519054324269047612353163595105297042908396453597988232957083527421011259038307039587220129078194438125392397197551005032525652280501428124345531854836462273689665932589609301019297771783269419637228944814711410320928893304339516979210989929411208646495628053328454057972331539292646234022911593786957801557719850081978879850498719766511126408269855255809046950200061841364716625447258000663946110189249136521737428330202151683357343030794700351834577817887592405814383821129446010958452343843669410912307565660622691093099724296894787629067277014293532569800537040781402506893352222979444967275210931787175312733008540622110105131664443002716777913007846088648007996760876960241155934606402209082852018264109763704575273345818110795726026432027921156829844313647191685491116845359109686261528548049432405565811256937694275788740812512778432848180037657932181534214248659540346880052507767430458483117647529209116109571356551327766888964502833545667208180829297287629327404268833163052440330130514372541514256163782267128767287058813536177828981671082189378709558572711816590830413399311806030533936103553923970129544405655344933812294351079955086116279149289987894370838691633906767294773835712359424691628671044809803399118815987036755321104672009694056427581326924726595907443893337932465593524802095135181949498218176766476183628875209264302548983503584138105534664995637567416612895172578901101380924216836466238339437857691099552545031014664311509890626096353430258897205412598998512365993583688361610345893562244929247594532303954216452818159730831216541315740941749395936011692652269860566086931568671374696063792135638607943116457717589082890108133138201686714614159765847287031738886733559965367573592555469549384246695109137673674731918967209057477885062438927764103519266802193873243372108184207582068641470023996999434533553420531726294638834671457233620879439850318632177109770591819761527975266399232007124829844303138880439740390556305471971546661260070940051542070775082103355304584688658777474902591145528343186914779727799687502372243685854424982307722545542217217803359088762815469303159985811265406690256109690571087792176020232841303205991753119161849558760600006392194282371034013331629876781861362306420125200956073099399044526458414585361524757106940522512234671290632874230965855021407501733553947445585562374874579751663987845420457860157550781363147842662551232675643788791531547611882574704442828291892158907009269283319158711762922375077937903677651586477170660892250343050887934261317007944417149636118009826758589319633562885223042301002535355612733221771749729313843197755610683382832597424909314981476867722828382793079302258220955142480681823324954976197305744612498257749712766756024464952616360166497856933807602141340346586765466790184424752585264717318834515354484199026222981160985261760959630893381807803429494942327240929444952036775780746268461443408469178782273923999869335785657062959995871253759581467732942118915482542128482491452819879935154853799226468570598789262959100826386996875691020287277197429735392135603186746869373768545284547198646785566258918682027453851673166870408694596502921952341084763643961022043572965955635939704723262185225510880466837397577940841331901781098136080754536430825781659696712620686458388270124055500787827964624946120618017773567621143074529903771129458230647533701805837721792345125455003114268958601668846165888971239301920158578382468749583918982721108709833359599584113063033745595734358485567033823617358316441693607366100595362207986180129544613673690857317260673339135573846628231900383663032670450929112503997072410940759755993474568298257423706762279703995227354125349408778701693093550670572513677104652874338589188387597545037531964319334254528109362464323485173433821381270801234787732258186405542571871891100556318707000953393303622251798988083605937934279580236726040586663222913903925718994744788018317443071338072972215478429759978035928949603542719547656612271222786577917660973850388256746455368017357783576413094297884257215116203328678172733184890053025814666847968928164112868410212199384582369801340880071415616561497931593581192362754896396452406188414513913868777628246838460478862126322698054728580054233186026001634127524498037861174994978847005635150784826805303692292208508911610482261390702254701455825625072844547039448632883790605884161515272144906764893597559233210033454234449115636146934301445904082516035185850959953236858035137910908625623432708023176873717674579912127629239932515449163103335896597026448747084946859727398955003265450307648478837989985569038844528493921510794263908018389174937956615102706746366945105151262186802336592996984850309793015579309163482123978063815074764548050265890707080341377688002266482835512541732415344146438969905828183131043492364696355937901008490708703148983287246126275685160861975317769832116452883913279777902048004939647196514110134854632969320801149517270240096141820845168487513234069820319405011953784984878879324385993419671300770721675137693843704654188354591459707412268145711722153176678645320291184188779293410834707444196782548131281584617566474303620095747313184609825838695749027516048489569288324693664373708443741061350813552014576404430030900920942677160765052222672122333013531614597753838320507371725535468228943498802835595356285344983541428876519290949924607948898634092400196046346592292040978990194557986683826788955761109338081377370516540058855493699937999553870405900566150597222245037045678491491774781005073734087474495527803464160780167259616896084092532663929504082023070766236787929629610911597915003658302786847260750006298555431914548745754471426267383668169823182238208075301140501493230932855959067109377644703613421175563122410265546214307355832438427150477623242589930950122930010575937090281459069834994026560962920101488075528252224777377327807901963302081618117763218395330751342760875447335592170621140074463555117140589374794807760086879134379585955123713754462249546712123096133245350502357856062628173696259455504314868111008200526737864911723640052693845796103575185410387285675088095111694411293838265477411717859380230701622259401852025830289872210323267018022066261284327200051668682647414879721473338840685096933546905525578078591695970979353586976455848424145552373594057449803165291520934226191046403701897663436567566499848652056909490518310957277959625612327590306216037542328551104960085121783556741146249605502329205907055589890387283242572612099192684889597115236137564258597957108816126333297070502125849458452231787057538996368142107226618796316281081025622049888096811595893947298701828491902678138425207887012805592715318699101725080041763821854844689193429010192078480810897122610185144676146343029410878748616668459048664946609917322890688259244127198510995347749768630808911726238624110097904058194507783459523848840285671968468430872619410141251676862502917612148296073301849784341148455252089534200871938179976912435755186705476405361725311229117614101624762653480649380396928426433187412537033920804689411186195048240805729713415433387516263310960364959732692514434757531176087695102331292986478661855417170358347832364561695429881082885599171262351956637449641844485680368599381992370577918483593332734640450658548655622009992104965121433583117882331464708264221351525693444493027931377556180703202630005943152112275308120408010191924619301336220505568342603612729327085592778575249820287219852297755533632557150911830402636864377628960956213413081434086152744406868580926493844760460911595188225848226639493473917321846653269789804568274596775374441658280161036981867963015616592126580565813914507330833373661470452569400631118609874421686326963595939273075205355225909266492332343745219927877805448854472315297788282940794895485011313726712792639005447043274856972737410460373479998593879564664894012799080313327595965192404895306750118260244288021196687554881993391650106722909920624186355830651697333711953545413366225701896843729124488973654861243652537400573884231940141234997983945786923036628262011401285057254960415492163652108371413797818402371764093171251274743880807762166242550047423643935283030834485489327651451450478913103887520621114328742169308252486381844788745503943650236451023879608861925422443501798015989920750331128132920643664059948737111651912978578620335451775810097598363518237351490969684920897718145996072877199617584635208626405089151485456815472805950401813561064179903298591628982914934243200276884290053057789110491925185089916999918863798606813747808413253993662170517282802213010171880896458010706110744053623907682011710922037989788356190458083300884134917524859702667323390460129771108410921028362028657122935187588130446636628434855868319511750843322780847160266279588799092233351342634764788709822825046350647497746193009293074962926157099941301433038324972271976331524206116597706019751276913854027705610475809841955043789399522542733206849533045105754899923446417128948796835156788508341428825094249660643371913743292629867535844215289738770359901715346198143654322857071327603270228518496127964930992493360862743108259157215849391988060797647144580806161239797654518994423855424661462421906960127406672467661333749987587037516116635757611743745723670574516328091028414837429082007109312336075156485249597413618844413964459386728265839594458372071669845522595931210525113035986284527082868707019503438769648062657066910463011150050856220088835079059119784131557160368602133467274306421002852839150868906771236546723821224818388167210951932142228515454686862415212153500727407017577671281022512409815140835892220730478287117313992003722592014370938691225707018105038291713205504971589240722400606900833563353634781143213053202720801006727579912035712236165159760791800844238141628526433629833612431258582705013900565073955892383897429914554161950839075513337101513913397511681034371958125180530936688395648536873407995422490633313811214845382194411008089833565623286942590780020829396523911568378621813820829635290698111968735552529031010454735863597585813626713476769646875830055181124045678280851806356434664712196688880604934243454624260756607139698776347463667703614740120268909452033473812401298785886386598004540189393770000633320236194271793644718074684495905458370690569890738144328071837577248108938685910353123072184223957771547804791570893694585178757842099403159693960646696454939003677370100346903866317549388847359699739275971204233119132546832810730768565816460358964990669246860323497534563954984045213787725430662890933847420919694926665460883081451324439672123040703709529896009378343030546085443454720787023686377318583958335098116863302750640614476785359480296046895563389640697501398399499640454754285481224788099551989657787721809178975835045093759419454412043701668204368883137953651817979460325278429481700441621981903570179535011402258081245769757627397511925308408755298378678738804881017454185168116196577971584636827922234353786448711794776508638300664169564718720969199853585590025818189068541986381657369319765746318656191107491587745872237321308352853019720429101930740033939314026143641432043518123798286278867760054572273318877949665888085508795151544492388080664687630058081355109876101171587022987952128026275636531774384004361802340281281053841649840682359052534176297683170022747083864405535177366273525030162339322312270031580458284417210568842352797008344609591900601833710582492304222569884467431081208505845275264333118469914574009295698112624661457893013555365620621274608273597720397534038337119590810432877673058906299831052815230961104589263322333484043503716548070043770394370819841278887025914823247820270810099775688228069103803459330464993338817950431351324736909471950000120995492683634741309240306461393405503825808567578493975760900417142631726011528116088161453868538274671677650135361921527390092375149546954075878846418126566590980660081051771361341817399655453877858868363655183195706995035611814926842627604845741395235771365452246121607478024327332100838070983471517246851235477544461511637537475711934886677376270905754687796788317749276776760735275826862513508570168512047633955222475435969566804149807416482629036643493243733390582470461263154032115643065369038588244490872385975754649226453221029241021194366033832144104854656828570263095164138740462474677638293793910784694930256522411754130199137765139623175336969725768753550622069206331371217920338178556502987983355043326150005624310885630744987684858202525325851977023693528054291316167649516780002582053347621598277382238546978916554850913281171324939162880523469129058157076475619463139200078655818161683033203593010352839213920937102610230009678822558125544081484172895140732115076700376617239824513124317412246343710198011836612531224270474689521401667753010138288745935939983920805597779825547596763489968037595477065483953662494650180597800562708154558815743666396378138682343727496620211368577910715687411685798329438930444533643080787963245905098176250427219975642097574873730752379608032882220969097361703831161090627562359429496164344788378124341284105524239264964432406939356857351962760848345172891856269745896997983969188259877700749537978348509456324246394771114185573102963188498667454162684333779155017360187632230923749054285873954900602643872778917820471879238255382853938425955939969967690471851673623060493719380249996015902542873023295571179319607027706591698765410479261776205659607792042142953597020751094492693756581227859554130175049073051509024953219411407992009796027156423481385287318865474188147309566199165429759712948980732239518839701074644246471143349860302561746260469093287824246704403195125084011230368413543379128867192702073877751260219949320901204452209386472635287138026898867425935646564531497569311114632921170191011213911014806033786818783548594833493951987525916944654675912091774783790302385968549369208544491468687471946854487071398697350199251604758483307751656970416110333896648525561828937979851157184037459098167063898620314619949905978766958198732169698736977384774014859680068631862013467834740536561333928687726510301892432559432239143151693647286377503971632832311407856927078011261281211610696461750754004771328192434355888481983787355146444067661934455594464795173673436568481922388779666855384869058115849701809347273002541691962753073830982850176459612710194617506265378320830841601564102679122830746518663041176183584211529717501705915564761926644121882434005895368006580799290766956197189561923858067966469044094161638929596358015650426406864887085362140047732090488676649202974286230496896337011637101668782934535975973691703132317026809053814507720304001755966868401826849657545479620949258260434717112398811814476541315157262686712862226719175928813056824528709707295146931505678198448955565831175637560685734790769364742355347156536783306305426456146507221385362747377776794818209758178808813115014613166418088207859336445984307649199118176954311526517744765000876200908068335077416007625175491098040351221618944016592872278232214701387918779654684151317538041332722254643094598170817445345745267865972692777045938307034940068696730404804413879431681209047584242429405081154820837377228951836173427302817988452164023756675024772729833970305055225977640086432797313988562042863585133660475984164135555799233414356415156919552315544045962000812514563527859309731573402293755725444749070819525503590022805226792061344190023455218950559164138561595117444694580499730881266112499123185163130689511296222468987727138261047585794783759457258090604265358567986897772757918987526238649279626439501190408105688725009895431431158418653986468718795004695069593616750339209985335464942327114414116136990541176632123426811729245587375456811755546491253865070352365221570497462346832464875985261972824326484172770980837188431885630168207568181490198141152273124084817453586064205211649126746034523587913529764363396346919011138593394118651175917287906403243851381680594308690540110001848032538593251429530912603189710465346532222033026206317343824819709998513298265069786381422909057594210903043528192602002281586593767866891434226370446038833390867047189210130965148475413021504159175194167575848553060358627379783191004027398543283050663548053540612564623080072234452276128925394638767204816338136191912795054867567565806596849121067969513751422761626497649551778983924443505242788575947553102812516320148899416611570658089201994676986998749309588723506147795645336699667121983423756448745311439739991181629448492502570714686217278071581775774801131881169995855607005853272123747047497316274056614520066211482745628249669844087103555862546035999266600135126446509568706796330847682263735430624853396447754575556283598341136602274603369984435603644636534156136704080754657446474237505395326857298022964599180050223112991610570182625025210653244494355727358191384898432606228196939576796919086940340913953032465850410451140700687857744282857999665459299001717478371455362584693347505973853467897974943783967082144854312378368476577195985776649976148903423624307085881624468161517522448264967633391506739772931219450992569761511500158087290497815198648990303571172138995339689347556901198163273770278011207510248242356511309066089107843325604624420074806606721046227375025649653006399216462029082850378925988537334243448263345669174709763912524313276056023067685126387980334062170524002185918821217295086951168010270798703415512426920552707531801272416742527222446804117882547624307731005465309122708004389187888534907586195702209667863739613688590132692949076795560515653503221173253937416706682270830831933027709557335367080703315248920389947003711243642988932071790326009029598468300999279428120159905923141042043766454998224337780641647067618169585261624721608137564401306295234397239458322412704526141028334772290682035335421967449488583587599856808272720114859137292389129222454401021724765634084592661355390244635012821318490146433728071823588436833876277070601330471732840070505458477294396514847054562179693409450929750861685624006389018817621567797243467247972101195145172134662153056827510656805970091318518534519445269508247922566756678693882577660202130843950420077072345547859354422980029634375583589197682064596359674821939295042161846576785599328050121870183697476019809592353708458357799920216422588872985479606036668866117333780491629445229876309266094392970409656336010877632024117993809002554603041997563181181053645972410599010812289243514598626105585815752673104982569233943366336220512927536452306562259063555810485353110753084690896298954370228338295637488245463938397345666085430003656516968306760585874229109923292397636182986022037288761482377205342920548244154171319413611077866825671360656415799177964247605210920904570345997709729492369062988729326164812644371895001170644432133200061871285434556793858270349158770324844817264854344176057770926830291809978059508942746397288675113341134815074086697253277122984370618510682538149161153405684968908232474780890567426612840371892553929033485820921904755187055271760597144267346037552565554980195090670704041172022469607611397669260960295011065175215570811564425846517917067120576520041980028888982544655963730985240549293830706303468508290114042989678314378567078468145269398215753823569722151009247003234683513365060074991079624297088564599278833100977333999877799374496705487676711813262831887235495094522284972556231770828416143546241578515404380188605808276507221273803994422171342673925750399231978928571149879600977284680680196783264481219800409308257985575155252562623601019356972479088927369238190140861826282744125009174241360025160408198777100763547467025589927298241875868742088460171036327750458528683551609967080956620060038415073887439761182268319503595332615515832113926337859981805457682956020767634829006866253450551031278801494662371132626419112356814065386005765499216548227352169790423196432656816007379462571546414528136093587905523231480538546596832796394027137703541384067336185687950391285764789739940492432546919921737624080109574420547986569340365841681038486460137484353195809118522270177269161870448881127316441031145885817162935489862317032618327292730394372145966934690736277467618593313217348783910736571934532458340252870355341446395993532479782061067202748222135756488511413062030863582096461433243996072344177741241565634008161207544570183322707564446516820708810752281350257429196554804225843306459377231552516510084430042689465575813028651456028091091124613657965436391419358803094247142249296964487772993012024296524110661280699132732773239604536985015425351183160550216391178833297483222008967511787141876987835506826630653307114457782433353341694195968037819530533849980312424951559231195171410234056710376106769449067476562200124119323012938431664299069379076470747957841806646144183608363873415906496145327966107884253678082918335905395214389462852391971155108944497085688688378495620970221880617428588043284575177857966302269610570888577510351618502460552481523313634544193483619149396629214123031416754921106130787153224577030329340543981265576636135995291805207908526974040965348794612726739492987852161334693101062152375563599435824065763642374299788360803899421082796997676130992051317073256721982469867655612381473856873232383355199161881171702046656635319027198496638381760901654470935233510719334989867752644871496407420568794625415424180742351426475926228630179129339397176484553885165206436385132944363986873691325950495969380124858797519519685365574861871285512954185596770191714388371121487054467071225090842196378180351857925113351286422811545045146004862279996945922300071241793601304264346817868466070991904028509209792503050559476077042067551399409079248597152524328569579077107863796841384736659324655023122399117700069704557635179699186436441904627224566310788722530461842225242635851085164031978937211231743026502647402024969652744136985575841257661491749836287091032243332826345852334532319583319560181102753955957547769054546186647524987725568942367586920322673705091620946926541835252978000676423493247978185592612382654793662830546436693049965047023135287250133087789361654614837544574826893008696516297716985902116733852153415402887109788175679288691836657835160145279239095625647509343408872779288029478695529312722103097048139584672069217501076542665116728836826992742437677776687597682766139315784659071790736861515556736711090461687309191758198489690578943292259525902270496081606159626346560273296135542126099693535186548388486923655726824236700750591402487609442772113013167180221699125074344422544022392790988587686138423585318997482645700182488827789012579515981449538688263823044908416819911728027072963249796155630861009376759348335262380067318402175135356605013871280613941097972955738635507598237133241567605440452123153009465247661347535110746690387725437453128412740084948771452480619342595006654055828853473818443154274940907018265390402832931026717693056307532788479570006553366998702937658694724671637917879838226818777899570935776106418628690136509606802564193794817117230835549389415017165193411358072093777756891993217230803284932639894200577672688171690992617634238509054861502152875123239420522436384513293927594789372479248533469870114652506480739259071325261136339272251991029919457912617387849480594522002771643398915365643993430895159887200162215007649552757454818424356719737487276561214904562785183096405206528669797173857368694615359972558624841961309153032395279200861537961229301450995865347439453334662328593079212038931378813323832434369182754564933359443787763031706213935031342352597168893628590689259978412704449042644341093891172703739977518171035289007819090030482273770777753017707939726333771774141034899541268042147195974920537173411916417174176684778223591947327584886854038660347263523948487514307573077665471963553699274632056844593786826976396067121296245062377621744908302754770279550369541743089161043200854024287363505814557503928339727375789708063634971628794783048903369210624756449400052612781321592744797525296408928220589295165462686395896674635775429039408763130597950649178645497543469771204915842726585039237566095790708705422626764041179544188017320978141118159595439431481919417632017830498311795625103722465612240661614101865741788740344831833636320120028319963520114723213573939801183934126733805330589686143200339072840194724005570641221803684549503857245124111887652440481624418455600965139675041813078953407452397931373305697958637060088595651408186136357193922251164013558842403475079521270964792070206922326380345234616056298094454473968690107436173189203316268922036731950485957602735129973444891982164068453707151788058403504364785053156634624273385873796020498398972851322531114188509832075945250851606992238967956517046982853504252053880876745579938129632685029656116849557486525880388612038969680488981145090762689286412738757660462189755952383808301121508486692764942409719884022532254955683520267409175117037144873615578283760714678344934909647239052855263951314935085889950879068413064338653082267497925169933101613462306276861652643546487483369930545706404542991357661889803849031678053322726151910603146947892203746633452321618355978024000069192768471595650452168923394101267086619305192337497714054908192403048399014597937599837480227613028497582375783403567112862511012960957957908973862806258836838288922187960493293227570264447963157173474399599182900379660035677962146729639219173456143190099580002457466073042993216958636489865623481340635120351168194567822012796781986990394676753996845504197959433218511274875563202983429164416950345255839569148192453144121199601924210361882678609612438040711937160532345170333665054695482596187334096670347008723425951484293065593685427806931358128594243831245473424105567932441839079111197776853954293367257723649929532468964072357868946141865254484400540530237047520473966162726818119951743562105103173176810125558186656462657209312917468574235958244835697330459359760292372419241343112036254585647552311343256556524802151515113863865699790333419444401417563670060456743216838010231203322739648155910150644448412309324116956832428694650148221334311034892214806723560161078917684066636378119532469558364823400843951711366563940201829694464182975797368408421330088655580994625896031818908786498031614509540314755285643917338634178530626934161081100124105206191755653167690770936945299119731973589296364800472020636946515182218134652147974609573004769956977757470724690766376977421087390030004979614119893833070167470753107354145033399473347352355744955855264741806164539833969023086280165101526662183711263571620575027536997415382006481923558560179675318641805692298896802534756521546600946540722468215422438066549592943301757522187083785318092327823277967307949206548903325180680192175090398620498490738564532368818153109511908605132662350130251503535543280477014652378542205441668632176003702003088489260389725621073897791050977539073434983141719115754961779078644058811006826551660072089241293015029499851329657394178347024125792747519295009862127237059641196070930577430579130051875303863602090279859093414114033566262488422369785350747432572699430143435228498565916762102678941331139313006207282333592300595466752045312955650425717348753407463960481116865284940575292256447447600390444183487719977989826905501814174102431180639629269944952950946660984875519837546633398913689958726243014084274848434140682883374669626358113779616473225029684007924395084237609143853398654998876966118851376356042977240778214768992501249260136450149740146174853297199941554345338281588315368027566592476104828906167117254674632279251336472454534325241469506620402912661030059748434681001790728674395899134208617044848531843849574770334380044943554061851152480819551831670754454965332286556722297495863083923539155219490986369295721987695744796777248417555953356995682498799553478172020513620102506984212200864491599410431346777271098229051606115792270014550732678498482049404620235802197301653215358785425401982866071225505459561302752750011014696745061217711652068692230154203794085138212761972832647538852649476629582121085016529188692223126479644803437819143249808461323553314928283887874003939339797921697102671931689061857237022075185573404714741535489802063560021875814517367450884147114595933109208859853458029149563565704971092762473408496460052791225613757645636674769718637308370812743559349426259194295930519963805125674300695592864028352683121430834379973047545341671273080090489836313425329116105441630277512535750048237835644906206272918887585525738057116974945804707389477902522989493606327153662031813334327997745903701720227595209596374527001953721123078632000355308550555370332182779937810461502478966669252453421371147343802998936567813925726415916780404776219096454493370393069273377825250179221178207815225873056537620518855623657836045686874751264942965774756796568191170407639024530662577150389646436099293420102693410609549637515357693998290605223844212883366091900920335845242326182295555191171137091816078669635323073158140166277116997101206815874551912396369710384405382653030918237468949216316494317847770675968523282881736873310475944247087183057679594334637255646431934875903739886561858162643892670169931260719408586117539500031631344862099196953614493478886759667572818809928314895680023520320387103854020506402072886541707262580749315293904369075149481916100457048508565053121804795674549232072747457453210861714629334629630887720036662159806087536986623246031449320394246807752933270908543477643868035820967428458960198641653443218813249733915305705028803441899143506300564509990233130249702892080909190205580100825134998342051001038481725546332757615703324415366646263317807354824883944087460237747004747675926189848135864888113419912660098665112161021271716191279749235658449720678872539475428170124331767607547979747688205018928324709969518219057751756017288980195384154764947332336983741286510061808901624145214612276884805745111538019467131739890519683006739190031011462444367923458367566309365167799435176907988992219402645068471361190411512346930188844485749412531435648076645960689098142805445205962851790530787363453183315061564416032874385293645884221701567022733054724972495809767458841573650715300234475882255594679198376671746869773027789204890647280924303709694894354445191810530093366228982988683885975730541424684878436298261594180528624972274321722518721764288101047859449545774674821000778452514409621266174441828465260999603246525376175956498876184595286711020393434667913080480738304391040384768638855719607089312925931644953384479235465281935773325595695762598579623177915936392029832576866098691280357414267605811693611334365021294858514950942636986165305139180203285222917655227453230793284509584970692928583937667964324730101300422105234942385949509288632668159473605973254119451634502761707091836519079507676387100599297640112469204942586182273495049842403789688601740260059427390283781472308924800114321330737011553369512337548247543036839318402267556432509131207908269483496486580273741498207216656621677473919782686084255578862669655607091919298986960281727985343954188477450444423673643574589043744093278606846509792988348721392654336769631380057624975671253900220346373994910255634788894730100135997167624411263646721632489633057900149243343480405316537004836086093644030937851195040280754367745861114636722087061847456327990463537627387729967703609719671135812316020343423662698915414541183217735079862244025123704625670016316329532174325251812921161358189523154155132138130570633423222424960765008090318993842079108631687269749434599437146697485532042647672695340663405024765060045656846631141298152027951029975510956808709423910833055389590018999194913251711987811410736431942953611779745094474289944621025753538143714950223616402133678975273481050995517059453166514070011470850585314113983507158121291809019336892130114926409931701845891872414052184591098076548280319282132559094181083896700608750256330565701454209470511972091547738326792492553799533769396907820912791751146451248953261946611892724202173912611969748018662213283974430321180660796102509506305309549049873296901589042775253902323311692435875112036883668796457965735029986277772735089402712146374679583862253205853042887183519005987360627464397237148096323723775358235592426035029743294821047247125408808806227023475425574012962356247185135969868234405217713545552609458291065027938375742048529836794038424299888638920165952923593693103250619346795451029121728536817298057594786770144248399782496809158582915334045798483700685859416479881594301757897068272094667579706065939326257894008347216357215721518677306578938340153591045221065908901949532196762456127660988646097953620836371240760437444622617028983620114052684972335711010770623230141120548768721570930037893013030994825407058013429287779579520292583219836116798267789933748557150471710653629271705272253725047402541144990543726843806309666091848926087657862873362945429464567223673305838093505187504669322212928388624054554488948553291677204195377187785027339537796446945922321676790277008305440322100698218987899712752708203391685530276735218189892401260590879454830252887816566913270245624492371802390238792099809021336827143097481383720703303001975058176540232023955358418320146455221564179556927402045166258170795707243391571755283952731724853770072698248281020769431770974121585361828209945861244783139095081185067459382168907776402179841176621756181106597349289251875575015825928888797506642119263864938845109752114780520218358333860841997107952201022588008464409890257177346506773615680002863668906129632715913458642978613849326269518068128076368559291956623456699735042368691443503348080318993375411921690689219671708929532466804123864469316128933910438121648027131294979878273776607767933668062394251854540351220683894651317197234278840057134897558171105512055745924547540878080606263338309326671814701539673862091949099165091826034289713504358324594881157893905099928795404440227638143748110511129027178116401994872509856419873123057823988084671061624197501314085233362099776065937249572127374794875030142967940618186429933649672417163794089019534623661529951056124549207635796170419564666720663320727090611246694510234027546381058563610426649124096867569042444832515533670966572401937739419274310422673612115428226197845358649175004555169494823337680616412334707930726289123263667523250911733986194006589176978607252923121316937299373086500974202848135390575434531191632505684896767281258946932999693787387737036010866963802211593355687024185371104439264772417835235899567365191903694063547951591548321920323785149824152798196393010281459876437172034074830300908633360796314351569109861283758356015570689278328673548355715097319350908684586222319244217091916722401415511729299470700166675982377229433385324868497867884970733263632414725391928933510348857344721158318392726240284917220848602376982393554528959389600712516607432693651154944081386979737846635154280543251169284139805060979141870551061846247168404395531166984576724784202406378834986128199204182898060227761955623914776814391933504827849613051803639354784326988160726214881324765210250366603734651104646473306425278579753864499415980055857790431087492318626432163358749888746657763856112215869292576597567990838819337295529095911933795783229254558023997987901823764856623145999870703330021132039390797977869348152099128808165564669593679429974555310752562297704362874578858817782097522421331683517856830179784777226960301156427403623336455550427614571743291769036305484392062039739803637423800143903062727665348677680657682983127040246394256167455415411259654839685963168021153586766202541825994824010554491861903683571946544198870161659770201187098279255790642159994427394192068100366826654837227272461045587089872314606273339539549517972433147886598759837933678626209080523058948758815832551403125091446696006405715121681264298011536852957355550273921042092780155147226666645932829056466081872261374361600999523640903800094789707112310329336774338898802387553284244023231015410715937476790605368234030254998305653675457831133807274678587788726046770439177336923339027791239826410331049537839827385291164964513872474724524778653490020430382538118962498869033501840118192888205892047792502660406967501375369093663741006801717093341944812919519141523035696439583029133482090350252442687846354955277430493908938844399905054218139297575822276891637932741912792358517858441544782103483565777821720261565993583125940820463967469192302492505805886921520485062635418805075814816664959852486919010145340014988901865903427319317465603459126074879254816036774637378684137440025292423119147817515105976671523745503817788810756647970944850722147156210199907402563487122241826264328335300946453015579917669062613179578437148545365999913054390714625228579604531783492764354502793126248458690932120558156744046313572000208074277419950810147631487456037463304671212627421197532206745854698973336225961443424446138754137339753848712572751849640586110718590447714854713750580817628265469172705970052674647378592509500701357682670458975813709281029265193118196496549861556981239006270390725445702811459067172945544769843470093530219682735246698895131889930161755369054594455121296856480017498652003938174318118393153127633432217754780162000340301883479896027336304477073987180187577900419898355836940469344917003393476578777572508786437263703514003295881164976913040482576562687192431650991895835096091071024371917808996256848055060946620246364393469819334214955935547378314364935844647794181347599451399414251167365530825886498332232790085036822283430351394080029377328699626031356350779281182914466300474599020503104397778656408464654258015150406123308295196045674901821446775580304266865914522880539802542472574693651849528023177206622593557659933992064533137566635310104751814030545624362891475124573157405452403558569490770234126942683347207574331931890125924127315216446629985753358376650600666795063050590880495082098739977727287298351307235771579182498042168708523577431726855806166795414797932007479936311618435419974589754706967098060805478039206259201342353958108223348832546508278525109259842094417169685475972142909891182901020070916024682576253955680485971755200360126697255803405919326961618851329755068378308669839329518888185929315782879365321714131045905138494506470671691980129809893976587902510721646215617728069885036794919211841304973992031995317603404946037359844915605180539068656072706788878696390555369353456236625079390681790440937526959433858062866047697442806498291727631515439822341589639555671299495335941617665133688970222071893014567103289152319974023878472308889103770103557054303013429406184649131569651208514065862793780622224916062956935732524507256999617215206524367108869001473101019992921063933053807417796303888936061242425913024099174597861222763339365525553153956602764109426902140966427648821673187097855148801931753908343825054987121785093197299553491089676998708479294944367084835161477761621282944425205308341381185092224808261503078323222091494632032725388913224842688149334848227673447614667022857403328626009383238216566378756267113048629104860731327347977786832452986582162870339632474240928746906584201285111471060806444498420084478549461427782987539223752733445989185498609846396819134443068445123426731110362954133943422338185538211194153707989517354226540439521392968625586320392584440553846208998042270745853285981074250934995340447406462311357140931586827574792263965682545313548384625960512101134316097680916343728729989242408182162962111453349877483002253841895142185369613533900907212221194903887691447284024713385407913536141848610008953277830255456621113637845204941598855236578194857997755890248590582209948240430536416262906174688162150816641608179776516095158585206761770067102154089274243621123949316964092308565889328063613135641698806735734728240426666727426668941337050228262826298774454463400770760460946556196078135977464885038337776702748697862413588248226427898415754656165697140212204013848243071533338616950726316942696725835571611793047412325359494274399762892161230026230833467256423953029818347769372556472154719918460784735973066709506556568188134563853579622373745825752507301585717714073786509014250183390970160576289911432333470880704012881206973071257028086667070650883241390982182089701307120782156341142922373412492610601215789295532397481370940451579685861243300195787946288183319021795723767761773238655214274269064354230782990474685837867621979996174684949578521913939944135203007674303028632298327725254337110630331097658066114860895575952492421888495093150353688448454942635612280351150529396338643760558572880193040583812201137107827834277790077736714554241245804591465250188062811627837887735791508907286463728701438607848413710779483132623038363971222104119051953139095075174968429857887880339180907929184665585604358383418773889436145907798119194882713753244035242328463559166482264542672586779468372217508383201433520556001347322201643921131146177526980305249992425776353148631448828048390249896001182505424872257383016693396846670336368786416368301890658553499237147207742767849596985138290219022565069150120928474035200157968052501376123894698182482467778684361232850545304873928801543418485793142182330299070285956937881983378434616701376365982708519784296614498449118524049527238983621308611018106849977952071804189804676444553139951738625262801040574455554193984013292135650507821397010222498496053386087677951171475972981848971291300536504704579554231972098288476353795317416227003543903099543026662460987485163400194260010426892103593536093665939082834065049537441886054836007616785267825063761610895442881955027238041650586657802604442188808069162585537566385081887127099872546264117897196876153671025313804897662589626440533745735293426473278269114836528498503661309357669258976154708710000290452177365028866270860722032556977422638615091427913748937133967207187397005379470489253285121369755323549579730403450994478910459320330662638329845636757350191589174119240726577280221874665232351028052351792008589001342409755759035785726402193754598456311299521581789422032905683761992017834899706624066182997477773938443857331756516970933641727203792768353849974625020726827261449503947592640044065600317475567394747857827150317163499656969507310345051565034768429034528791502937047773472524375783500151887435236712284292865684919317107408675457461764041398318240832001615321450759484561290161366746354071347795232222179542838106339177789630187351235131802806465156591839239427161941692194018022234286484923728764230820408354305901777235572863708595100101797317871630028675623031392748957507228428119881000838507167461148479420050983895477585284294433191810116692474981847006677083762978164862381915044223678860843355978719037844296943058509583003308219540117466770423893494158570660069783348677273125289920038288751606702705903378842345310672185175545148829770561475048574674980493524089923973909524759719601174540832625185212775617383925841321396292928278494243339854419429741386049995477808574956295034048366852150883848776525239313242370540436348115923097455887118979157119859712664317134758486053177021627250829531306773304934459242991149754674293912800045681793051135547299201145676610176078350746828900115147012895808686296894232115672218770195725918194389357537663609580054753171745480413492987438347197972860887813671989709919533252122801382884459089394800943223208814672936958503271023994110928262489523199009010157881465793881903412797547043767960569934753312308179621369627244533362503131140888895756192836392794597063724279432679281605394839531523251863439857247654170537102229527937446648730734514802364479555431301361599557528169461289209688529982929372779297563732155383668756240420356643774048419910368821241322284357566730240286618270533295943607813892002458587296185165344297888923059955608492106309143735545165423287247183485071481889656244485237793004930544426310358789500132904285852114515988955728829655831144213097572349320506989086212703272487160381608117326616964275235057180938954248032142145261904787378213355686546408463725082997066597429156936035819948621382160673461641131913013009573484421374422351918643545691761423750281437833193894596032208021285598696112474609970259269699783843849277491667553686700710844823752486988175518230517604878086060740611118718270304243922028800148999481027775486892582533661995864130615614000662052300558408449060361648680840219214609697674990000042362182119415772107567650832716165310235917894884339521432466813665688464454451038267758249245313756059786448189651993621436084317532696834453973698556475405842821438389450921306966328659119358365436338556216959241480413682958458189700668300871618889888219809336224931296593374259278864544734722233075990689036553990569268393672917450741596802762467095427870049827581044595603391142966464967722534424291285258540125526302843835797994496586076208734449800179911714165238377784212517688672071915822934163450017001315331042680856796730244036209731393498227658971177939233822627594850210612265651009900089161938829461943851638663562895064402171791777087489427348198926655322471410560177973548620264733688131575021551590264335541409997777127234834196418373214501641505646966805229186691570896515468830299301375424158020981660189384827786920536428461231781655718144679917002616213988068919765661065055395069259496393137787156984658072312462355928271342606535346706503062516405741816579441045847431609929982675510640553187430299070198999478113914847829776904554864769261842789910306504454943338455525418281122171275637298224499119424340910072637331937050740298090484149802256877439292309058695625230246893901480828977496320916465054709976014658349656397295691807040469510211537212803370015210561352729750728460482184506890791336391006710056344497332230553515417831026141513991369036879026417729893044189720228621764149955466439161310740242079964762878554563010004004105962501126056463883282876558140868962432373585492262561662210062780774187222256123669791117677678581332841482390162864959929349380419713359619098233589675635584901889550547757243825261388684391791103942604197359513563081890658129583951501560282907430980511452238944555344699504267642010743727727366298142902686231063103313704123576041782515042595817229564865770766701475104323997452269203278805271703069544039154108628280453568095355620300757077443868109473602018798382166868170064576957436102148223841442514744207436548342776215257807057999328962413141831395803736403254477496415161710230042517266040453391971418934468464837999307000215073160487477298834230619128270272117788747250183612118575116257875486665264450299131227583514392622955238396967877487994487159423428988950970530132485563093213701460945272025703894965379628672080016925208542252619056033187866527575694029450307939077342586615518467852567457721227767399642335043516963819920310270116036089205529202332953318564292708716889808504847375680562827101390299612256566800725769866518275297040138294189751452964612334463945477287576234437758257314225491083679121036362697758882790987065528269282809834474849957285177182312448297091163094310703807121321354490250015244575166795255021753445165247592837391272351004766991425401972076999911054081552309725185876856086320878413659171006746919173739303751845934435648712143421506146617750497653636015603942772645630692628772717724236282665424322440488968960532089993695428044248355358828519802128205414816246067478166078178019130464906567991299096004751918712598249616954195423982480583548610724682657080777648398527557066702115220668638057977819663755336507826621654941321136679154776636486563159592988357071617610104366345632243384270428213403926596187120364937786212345840230357287590231038651297136462999879933918541905039849732040470206562121856290219647475608240454554607840431834006332757220821237898410538543798257300791398041214170822141286685138052399157528412537794729828598481625639763096807539093467483011684723896971644549798123797227657207012118185925265159527561484039575338436230857790293655036712474572305033359456754704141576840938433164557441607128250979464041074338605378238714657753311966623193318834720690904142284453093359697046539538602434912301981785650404376251742929480453666598292479519037925818181945148977736889307752317209609582142646403948478555027222475746669097336767594588835514243695331868620530157039113317819654630590044882933146524770610064668551055936011614413188033868091665396202188470843938284832098256043023831042171121636450427873537522951564370109895748158253935121179283807052557539945806736704198279763999571638049595482410137626722973042514190407756018495772355942751566540335378415406926770520323151390230214603673191241077130091804416800789677261217272836902639128666398995062321629652578239422606462666561345377916692214490436151776432821543460624553790518843609052346023273560815301157737930161357476000147123837866954934130216886037765919676095648488491069101331217380171611851480681632572373901108909278973331326090651535237446300354341788821345361576526683069797342228941930314106982314528669687432634300879891894143313004647797440731942924155011346861701444475098010726226673105534060711674470729754478572963845047914566183976523534153004291825297285713207761288583906944057724526059767657570604226321016801568925888083084224951417861227296623490161644962023164430480449713801097649336906933520703487490592597419801786958737289249746856253174995056190669192187302337780898688409870997402288904123673560567574757126409154483414199172255480708534665678749093382810849796763475352547259228682321412220551366803914323255870449430360917766960393432943798001794337211077539716558834818467216969100594994964997344876281941434763036556769188025424354144644575721358683039091545188470169654302477977091549092393243675969505390530770543105892230306184218165785127212140146167672992792880755213895747807659169011726399277492665780598566172822587840890591461350256757233541687140896917595537178116718606456257932507853912190083998796485819182904604414846756343140727381371388475949636478792685480832185059575405322221776870666727866762942460957294205842175875748160324460502270808397345003276356521684374674627057636942222522459684002516256549922278145663159794691817198426008587796572257881252925395259190256034993475996406518155873130210923604344693458149457223701600267824453511475481181640297621506849561756398643000743275078578827109218762280276447681014408190866336798209021416142788781016907045210139664249625736405702514191718173679784986683430525159823947808542828473766593338586681185284838871338555998700302950173693998465627439501313308940963758781504528843980545517755506618918328561102755439345334931978216894647609252578783280251510074564818084275856752486845313229095719384952337373036116083809910865802795613485233671828463774498500721609349662256885723273465532859561514005612239862843537568360813445225917645183140930142670616157744042509023665662209237698436470774560440419117046653111950335860935263754466785988073663516789834232287186616397178750366240967870069471057932266175724262531249330038079876602567169481498946115030726008870357581087730723189810566053773570518186554689232284353547738665809571916522983946109123377434374662555684499957993786342120530338972148579426426350775071597508217807784914407028865902122712284100970297595279896983802487416052083258483287016107999589385399148289760289280937951315632874104365531212520822907094567987462518122219332870994865646328688698065827457128514677818872222611823172010747029413050311008557848136178786003677685020203433823900968136683121311134359713837875596577646899605803585012322205217873599588662916539442845374286822296214555394019159622889440250016616837896372329255578376769408089679006243560787291900029686414823349104217844659602088325249978376994477898353014855184806279408402636928528043690563158921018808251311689949655363988968799387322463358712467640413262527796224378454226274635875391448178463285963753151898716433895922366957185617147731124579664688574443642846474454610357203265695707607596923789190308566220352022563037487253885442245433474825198408214356236493919992402965259780244660294096129327555154026853464786133549377686404249985653311742533992784925708650251774016594359309529531866845227522162809510817287347359328623966024447435562577544601699742113858799058843904572309899591656245389677782081158111264767186949882229319715026280096473398951762263257506127497786197152175666287562319432700199404688780857157437799364803011733427030061941198893495158834795007007569441579419859693343578446423694338163236237236457905946676217617628337830344073493033461855705349910531408202553330545139974355837337229211670005251101893535576352059904628831864482437673775028494667276533101924049786014372034627789085068428411703372693613281966471914048966069675308535281831145425069863464456151961061539957922465609782277776270467930033047156527858768193271972079261759456635289849402914635433607564524831024929697591228992894904450737168868842684793931218937891319349635934335272799900551903851345412031466593859246209828352646186026302520820864028816517716973420430181567229817561900352134617359728524929736374824610233630165905925173780695442774981711111424233587469006426872165257788089683134619689412079327275820499883470190502659215603276213019965794416373881570986619773480630920039781202415699878585370168797550856158212873659160338758277655366594875922429212641377109701322880460759794561821873023302016156407146360241268171164354830395897545950550782135924778965865732274974242105953676039537048067906842041214679774641847231827989442883713183500015187060182570281074490848833379755962136337892050934000714320990061111303161707270042490913612926468729794109411077097428013626133679369139145931731220377124049120032735424071278386227400675628199990271032344084057919269917169290279921400557029938019966130675491772077477034407576249100549479314153385450295371775372474943143640370247506143441576222213787139576808923276544639504372675117493129420267609136895813398057953379638596872968800052383621645962706566693125126348972744587542310203271799128241285295440526114705096801812409746193906613271855540396958137059725283564512370322865789885997000859532647074229492346494597506986195580971280070816492542876798778726295303783396280976970412983945370318640553591642991340679556442854253145855013710043522727606538412846815997225792425516855078522574892044523500334656137398321019845388475504124881382937363937957829291108925733806055120067814807752533549834589126126806697327552078423749128494504271176975470575045512479214879442689605923675478012983864827905954390189173215668007819768549255735884286592351330012003323697144028119087785229876472156654541607749997699254022204786172235910079770115349867388342673133926424795478396969254198194196463827487136896624264001778796204467694036705777532746861314697336797541167185829798884559510491930100450284100819240195133068566118272990296565781585576258440477172860989449733610548519316889851207602109870130431530082743910860469960974267602684009391198294663506534241219139101023932511782864953701353496964718475760693652918564471342092320257318736721256353400314091750155676408682232917383572205032123596093136316362362221270049209273196686315790431199575912108378378240249359272859713335196318143555507454367085306156149870347674454640799836339873279147416057144848280135484539145230612901110109259739825414755729270244655558257711892917034194735898324414220774046658264158802957147906466285983474185371018732751278252261567959840566985340678269191086075214163205903552954614563424381349590283568584509917708731822053846518096394876752115614296826816386885846515745679766884509882391473672442110546913845668495468755346980233445987564745998996002809168526631185727053336269988990701001197457652221297430212110725853939248420098885942437438269018019294793153130923454106140774525693281681846394220873539688827115318305809616409505009707046248477636286449519277283971472515490944896994934476768322781966448638291644091817496102735103322365224054194140906072390677242248487861435552552567687427699325944894254684026563203724455368459990047322710994356817369781580635687842716156168157313440426363841477561236193169744234170084392296482664222809497427222304525417860538289504492849791581903344815403325710616181957466498468171354365868551923807930433409497135608668277132658674275936888431928763147703778441732289046858340083084335814764009421989111400283293664993916281573818540193679515312912400170286766012967836636754685011015870586523445306540546815412821090511195300449585067752879183450594704400121290973592781412838619163705069697474476534170070877948924401155884466926017425694902990304586570822211449367923610621396249907748384773368153991262697099531032346899780392730301700504728167353462060432299714913415447266385271989202438182997617942972209604512631917397032102948769756720142235271746021236879726860981054734723681128349989886889937096579866722538943408703658630380460219485004510569131997305007788290586490903227192925302287563609247896218188253698142208763140037602283770758660563976432823913667080970819914902017853798462186744187389329754664611800137931654883728633241853404399901171891256082279391153163112235597962551142558591521104162400368090929265908672001893509147337281982608981007032193947318752338366756717426810695031350574743135801270870353358096720061158338290785626479836637195611274354868480860042180027492796809152246568653157305841628219294369251665169883226117710367323135130301010323309579656414214544612597076964080128272616316422055095440803379928241450403637042075833446755924862405674497341377406462042719911983036423328263463599533982796883857239575426524840050503797978701871081958991178534715586974773229907535891958620795866867721327976256294994777960725714286876847603801634447186276068694007428607211027258749463627582396926960998824884064234531917377118920809100994415056714324853048903196000249978571320177544703259169711761273911644787149301550137840166567108999136654204670386001707128157201836989087640204770975841484344990823193632576977072909173149689544513111514271150077636715170564437380817788422105961275457312995911451467508052486147137383799979736155921767768195512105063099730199700429633490947267451884190837329121235518749940131885238148157546771885931698835739773025093677077784616521270251390996649794773504046933728809703751793457552724728931045106649085059817848907891236923379474476784526792409073610005760682801445268323576055010760995981746196151610479285263198479220887066497640238040901514730991314687597391909106147475855588070828001682018829260195928506900096591097793221563553348057532380601731308320353572227476065795756438951777146738262667533545021272327663248288979862220150792527527168411348284724942054747772089931897381411651273676202682794955619738491897612079268982850575755985962790783081874837396352319983044558780760776247187860199889172427002674103114154153356719199189022487406636915538812492905798524581847777290624596271503993447996929959724994678749581495798745831909002493654574360959496952550589712300539373831260761158932097334969677001738140794111712138957122716236819375426534997606962607336708283801296106983136631731450309349990634708664652375046361175087878652625231259115293864251973548548227332240037151863615287667324825593581636151229330817822167935726341141825729540730749330933343847205719420672981447955077599151297406708402800219693785794423164773794762292391310997258312886946066005652481926799199266268143749964129915970097259746062707294814986038775579306229588122045228705349915494339237759511611689383815350219788619640977289448591034791544637957876914509798156868819923298381904293343659072047214539215237779115776239226168655383119004744925264708096111488945668836498769255768864815940750942849253289653671038430347908216569441823217180935766775421271965727132191408277118683497237166918412542316246611850175641942189272789060674229286440899067818127354641121536108663365040935127262921308279675235274852583489930930780488418879460377469106868230741228571247025909839018738587412486781833439215454885667299989450357020502336572083553571400453981863513304403433800963184946700015694464629529749639586017572690369765118159841606640634285878969182096945167129493576514920031641041458922968426715539296051717466196592302905128373836942879565563551848743794020182618065320980167804353580415626053125445553759231069387694681648417958665699148535138083745132870753347115980445098496285469514015817169355516411542087018766773757012258033058365734156601812249198444380131745952395398964309323256641870361944713613429326043408048975430351932185641773772190654463956711956498943314419303097883625589142433296181735204176640709720067655355127556038422203633023383295680996664008629219700650529628341193925625030844031776720794251083502154031690834292764018970564773115406181191519217147150025386134098584549651083951344406775403325884861131142255571224135231903745939026780487838438727825511211877374383362435865985943964742169423971812431385872937532382464338704552555016339815892582448695849247966164751433412648847084851299731553679488075714121446267329218203939714520492950563875026484072902472987479319229651361736370642442338057646130729362226844837434409451711900524447111389329310539583670896525202304109998067467270143839655520784174452495104390890932214889712873672593922797235159429544998862392299161976433847991713273280919399072095648233254722149368716947919217098191935080878017551355114259033177627486948033360163130595987289158652903526793813912931310659753818795682312370573434680569211675583913989538197588353982300484713854694921391380993318785577552674105631110727347973141897625228151528707368681436537847276227027358382739059740998079424515670818185778044857052866680742443191507102029611276384792425198878929646790331218489866460207033838048230887220951918115104017091579113788576303386084217798812053326968303159276710367672124630778447599331826727245105221057462268015763289192439257837664490166507427951500007335959670149290373425621876083254631411421000046114597450422678943115710679047018188111309303774647725548285836757507103119584449492433858683928035821667941423055923771594867568513935009655475083388329752554701386745415432337722956025553566487813662855001297196145729332130192190473639947454708826549918926766406602747449793379837240296566127784299716376876007850316902244853409163582934537323054788341735739171864921553444081389569696925247196966125427522643127680048751464367649144940060228654402576742119296607575276862077253524412582605553926543016884279520911685014811087875439999636164113369588797156438419802114508878886216135666370358876302123962771403369512096449988087088431415461909405592852938964958983043186943027724233998622386020284271902396573897400454866260101638144418278765005294661427075889486630018597823364473916048804088881891209220595960412293914406600589882163194186094276507612992597987743229952470245810489889873610474692868985346861842057028780447934996188237584093900641031917562397962531174497972934216085703092389739153132222677855141407720331501681008364134852105319077011928400068897476051620467495575037291056123980852490599177698175676274902767111200742024087371305593424049869106368877188268374063020508702977162314003440004841911334983273661214698432769441669013002141984278348959958098325524616886182215710524018152309955771561279535303540140087300082539280062930010449552585182881043170148501670025919069574188114062352551335246133345029457097210481474714291580290690476205250181916852258312164409474536764170210184504538110176777346802799513301490939967706708592875157199935139524011250668165639022901427394988610445307231410325882671833609040637942862642003338777865193372516028280007124196791747846457188715919420410545015925843913722213516510210545807061671457909757145005094672245053280910701733775535071034598685598590390008655103827502514331005144596944879839556100798699925691934232970712403481066495223915248320415112643156960687352524487480403793325968837481653523418611860978035110005775850955416760381879295195464663517400340765061946614705774847219012526969028942879403143314931323915949055706603805856632153407651812179280578145559951358952827318453455525468401900196504018479928913348340993515650990804375342564239029907154494664178387007333014796430660197753847169144374380504061347029015999189219698304028752443189708789343370355137533493718126417248499147427034223913582406840063241720768944716191149258374922635362606809607027337031794687017326126135715755645704612621277459716615590409301739496566678613875514532516177772739641620881912673685131196785125631219173618381210273163389860223084208672851516512116102030454194437856869777178750477128236654906982901762047464231184667025528657961892867572732734278453886153422116752718683166557726525108853435477199465263167523985510704623418761157426690418029486002098593392478966819108833253204776183661395439889041532809336555213844879736518431213306390206124206782368971268056358406694010081199506429328700466850765442659871836106332606816681370398220813946740633572315750920465494600242187037498006007614006227731701436492727656349811603541955428992442104608648508808368793813090725622641024393980794654647018851641536092403809181434521054492131973402266688925056716814376445832163483365041809702820510262823742466128807623224267421366577741006481232339827034189338561034813400726640689436429537595445040083709612090526328598407193583184176126838120719377076237571214071241420485825889737601555956948365663277695234832510480809177330726347868359254296168017420948935448158338281954501493559428756748605537707129988127870013643419608183885682119461203743422817853915329155538068687167273834901800729074251234224601987885586412455131779426801747719864306790654994094580961949162801721709685902419461803336521428875830756281503080756585847329030270627623507144385542066187779358249996726083638559817074758023180758365924041293170050976101304604525124627419188908493188286388927980548251489412020006940448034708152656081848150174369822552957100250828987935461554457446140447931690211595748486101268901609324450558059583906303789414421999636079510802251359334064209918101176112585064284357792618013977782514330133307608056262259518223577147977106421015503244570432144911346687654704762148558078721848634231595166765221452890958463667224463275659505125104471067074034840687669957688847331423615948348317036675356478448682238728904763689910892075188174751012297207597499202263240883531445576559995923460219762891856303628501268072543624803251113282631230615886687329200554083868299501653537495806896402254018443780146388935619023252778881148922785929548718828640388093682561353252727037520831280774852922544368247822283441400762033001149542390861763936308179681795172741351725331040493800791289549284815808160821641949586766261106614815580055859372867805520194278558921155178641715398355332935143047831992568751368668233663794231754053266313059844154129105956429454659638149618840523586341532122429948034782023652314298152401779630502961617308298015587086950535629253962506248123520143142310599714767481644867306796605766469223601853966167845792676552051032982737315801767534248978083170448169866985990674426286813599771909149678594890430010279302514106292740574211807065766381845959082636377608692182152306904198548193816997337197541799565718480414695583335368670776911964632755011949478193223471446023261543389681825788209005564705645669697233813719064039989049521240576040480684270406264636895896752937126080231056189198834461001131920147474483157346609302130740787846296809840230122838722857130066415962713302144054292217224390667430456635038362508508238134751085447715859383035403756945016144548585464680163776133107739456102529373708180432901452785215070325303819475445427225451486357430623217626182932769071318291744551261350701696383732823477029424880467438307703143583316389206293341435712071556642542026973079424247933836505926567595856022992728901493689307256201258977652635485972824160703512179152298711341478411714725601889473890789757594967060917299863505643615501762422076234417483178094997983013155696513198006636223498033672802598897927110574742522667132946416347011287116095448015092680100077869560595587242085303082704913055597063796802301362529007022873415199180643183752529148873764373363051448483269250136191389315022056723075979817836514257070808978914329605838584362163185923962374951653577395597317333570689783526585402256566075628839159013839869187959857917937797668848494011832391063376206320542856070680237665541231039781910334227766274301856682935640581336075303843010513010815860578002867815348822867826812225881227309489870478475251508493292823019663313943748334051445203412638819070088283871668556257671699885806166855316553856620822765470637667916160671435713943697981778774649024067769165135002246275030703599734195627059297723797741909501659768183863157611920370031630386521719717363491917633170629900601967681562037882408010273776679596871570271098656885708085993826214256101652343159279706653515493788551017835000734462166650724407604645290009432705764763726843263807840065444501224883977778506490257923579673633017997510403203822457869522831749485916705276489969279274032190395725063900180622584853495409339035828859873464111217305010568124098602333633993633501157822245868606661574406550767765352261814499553269415577061737531047528153303381905101016227492082936012922375376773463778414756276791815264641754432803268017502782342850876266631464020744109749655014968774850307390051051420422332850011084853281583724015974680514731648248120403348010581279206913391616008176645162461518255776319448633481959179349715525019119686137797343437580301140078812366849787112891177130959316762118529603687779276916372276124133604661240355302914818492037344298284808680470711216477706206837110786629143769886748683387793626061209893341894114872159758509508363750208120571071905041042310651371199797672031957352983978432174675976759978860613650130879288916754720094052341683661149528579328631832885694413194810307460774208056075959571162936563706187692687769621473306774013924245654062707778461352128297609823058340479440568861651952147790780904676698537102423268186017063177649466633115488515521201144805926181572254234784385539031993864426240541014333554001534271273427938515432931262639222392192592158259703313022682892595771129276770918805286833159380397757338751930522522114646873048018209442735515500090783772358635695134390894605128348341756753270079129895152980740592739496023888851020697286144223832604511559624167044059850037042564941219210318271003822216043599667172791193710916388050616192876937313322783265357380408589332047812994248558334543757250391219081374150845490807049769373442722331373697973852551297668835082519781269330158315408835097109244755772082050346336306794466880353233397946734642491334181873001944670572962445611581473872134674733590284689881155983790320431268130537459162320174373509090309861603372985131898073266970994841040777344463332374197891056638265243272611251246950936096760197495094879182841229999366402441535669168345110853102680747471998396336218124897242406362951164637435003591096464754907434184622255210080898629858767462991055666576852215467654030522930039079431329344859340167417497482374935688659123349250941392421379280246480468311303825970405112784217520658860964686585638060643077471697154059265501401941327262879678550926598137284160575501651200335414014176195002485153035245146157151415941356753574292589712742872776343680921316595990209187915311027626705931346464504556797422675107383088239831062123967043126912322722083360872460428805523225585359656493064103281911903781678694568802554878117533154325882403780752998453244476541130732921102310547907790349352608305820619120484158366699641761059338093211238216497131899840217506902853752354884626369016070064345559542593252934745164967750626771926475611148051724831527092597017526014652325509207364538629741629402114493163277939282150086530869745936549950906536398823195763780003269721288694384073045869896830245663267142835285954418509266459362667175173206859348835742919841029654947990445475712916097325053523606585979991466914717568081911743061716182496020419366431832390558324366622555425261733222832081889451661292664929658272729723996820781771156101717557418393679649985437298968777176326918202471770583533301846953705958029671698361572495836688193226939512111531299043251640105588526029874264868880383189437335741923614826386727209131812750420213338938626824557750772323247839149485509665342101191125405298956706278014953242665791824307216334873853840573290947647459018723431734995835034005478791717716238091005081006198887040463692035540047728733623532878078996793326420097614884037204466652819634891568872198694460940652576762692537914006681195882839843441269985810542940731375083831764077764446748131111375378053542699006919967147540813725152517976599091600808513027704418780370728536977832962140457281820336249031782798084904273583032319478018043312496086725377845773594565681336764196545460786429494800379674309038021577931266261761642699487316631919912799646310779466468324262808542271471434734878594997444010200755016167580264758518933214070567701713339668514541066340864765370977739991137427268455857158165582285836598560790817481945645817108602904927818052247279911607401564732281846618428056846849965277281786126335375594207367369297109879510941196107892678478207996707892337986354058606087773651836334002617107595399068208357123243251967510552606015369792191446366118319307862886788982145168925315881296419138959397094880328111163332880056959522673836805983168130685032521180865553880650045480358985421579955811792383006908481607989877868796228751713382126355002612742419808674345788094725505249518811539294792638447903723039580751507142424969320460938164450837334374257920446608621239666041228505321105243727294383073398602630779799255678416123284154500801658174362797119946761567885549325285825989504486497422070833887362484702452128336390252429808481661584809119112154615580664762190327203010696362896648557807909942079906480981682442480380171492971235879669347523614882391376604272396828586996250344359194549900532627958625032981562345088386149670082542956360569616743509310601217376991261250982426717535870430369603492982297111075368003661174349978846029101724383916458414460109167112120276589564204486630245094402479110357916954643986593908972171529065426208014469961991681475838081156591120104706662940812156145157011071456835367799821572667449771644863395695716104228809915847142089609260480416875556519919708202155878566037408110745965680267769711158852889554781759797394752568526332530635026698529531574132680298628202843824817308802924697851841985592431912095161424405792154719363130530239795516870159188839256049143154314479210985734615992780459061622706620600369945313700492607218795693421217474205446767384844374263067834925374052270967616419333448010733045032491544097229487713013011881031239522037238402975782709987927220125603406958892857865506466988802005272332220021657931612897958074940706447135186209329729005461690815544156781473165539855982832971570939295343359111975920305653808755442015161961842780699593069841216642865071488462492489157122748366435253764351264133911342482140449763288300327770628737396555009795265554140667664911700139662443508106007397732439503291620426607420073261082398196613129557321829203204163602344485867202697472327317528495806343311138594824326126189364518468484134734549071926916080489167983869763167947262480982085053046431919234610755563712486693249262937782498844525323582203098647048777360947711700060366568858300754971676606740813245851633178389141209676747074928741751917171276460200415966626997620452885728150688886924916973517168912094335208868304927319816277927111746405429593349177547284981725694306871974183128125697750281994346426645069355668089692131056750510445408156101578522428511318529152449074381995414188682214104246841224357038252464511412093490380986150665557720345474963913354453252158800944944869325153641020189594570826419213006482083969387315923205671062774549774168179641186224330941074760258461979169255913932855166944234649394961206243349592263552921641321026211067498480152602980500687487332800445742532588437457776706468913834198815975387718066988400905380314220027437181273364174204989706419715661395312536948884329821222045605992530735456046769527850254341520525091578010908856835557847735482476825758444441918409354826633210259089409699226111985019313691446532795679565577352189604562632070748235542813381154425014750240557355767693971123645926173672054213860140241526088794540135080082980205608616902672713042123230217416450067649502031191664338810153908096266078081426934815920962135156538107251437463220612853055499737573959030882110337779817438206385622357483449198955588157638076593348750751342369021455457194552358731042369124956833450309625690838975317315586188949122931941544156822546302862173684427729778816978387803021849352247059861238114551193286847940258730063268906425158712824234189525124666447436913887855689294197113030254414198175620845680260493541362801470095628400901431830817866786728867955868831040346644688021750733485917605891225438162270783725531304158878073286610154792578102539937274709030846276927206366591746066853768728635066330364583879611456288042615293436251496619012785358114206212801265191797338582962317536685325384947410061589557568020894023675855022561564514812670041060090578375823879392640261391734455790539786723487456516295401688770732293989344376276292380566766617408872250383097453080881647763439498450379759214981673058988209312106016915386745059334952332526425956198915242247253553933798644926023972246024365124497553004435993594845085973595870781834146549938568166919793699472319716816348203711554581928620480138434651330413560225623050473090564727676161740306080892271956402013548309566327535957164692754178532933698971366463073335118563965583636565436314286162499056108164611736817390774375581315400264188764246307241740491503699757253166718078779759903563405461872828956185635510156873553730159961736768954790437072246687602147726231603675248189529297145282797579515323556613900524078635227666201576617433993233744498010185008076953313255801794346521781635306828116431122872265919276356810063936489313962325655258990683758993138703066606091112350895411346779966704401663851946729867999989134045111901870216437902103562769815768630307633162430684895800175865498606204530555544300889527001031364153812174062255059424887632122360182268647175698723235151403738902365239793715077971607468098788152336334768969996134007546296801004165961450867414620435007886521953969832801924790644614180872165426974031289670844704182649099347400431629010282839889085212341728007335217193119708279088310926565659324640124278097765947633847236146479696295276722454388207110142966525312260708808466122543841112667118576705913604814611274820099678366457443769472607525623497496780655696848880719327081763900534394420657108732560607404572964350394552692160753725541454237812589305105111145774418163237403913335502935692543833540640540496573135746632876125543081334867967602187952464605870782055070642537929128325262274079607656319931429770835774447139636051639694685382714664778813162130674841949363667715484354096074348313309311325969230597094010617559547995576035190962960897965383741554229043670138380143149292243228495079499786028178568319664228438306306966623449857507445714983687476163443229407227316095080781426987200588151648178613645825331257065597155945325359285462293323406268471708827706664242776639634049935479691054702049438002160477766959696688554794691628256290432210766041057532701134477425759471549284882611188834866578208619558593845050419711637606183769928876075686413926430429880697160306277171420773161137437703954694100270100935410777142475975136187465433849063826594818917603170477375814727415946611300382529460145657059327106476876942766910346034733375096203514990476986490891463797854618082411296537695790775313886150731964519471374933040186408427328467582287521412937948445038076868824691696064025267410302705269810983048660613187364123098587279598455071910495772072055846357275043511744231916727316998551581982710009031082987827511154275490348835857789830392194402127192196886078358925500048147730159182302868627564013022171588462332350609874756399600991213082909514512377127590788932393541691325603978673092333293671871229298760228340857854098890199765019926110036118421702506961904124829467731173986204312230674703730195129444501383840252011820125617993967690563510912969506525180346769041540420474849267827463216865797461175252651571511177502010931991706709753118898763039082365016978147868246057713404040250825524823336057143872058314268145476444263620192773286749323054520993524345530657112272535489578452373724437973139296241009891998645236177975973183830378057644381932577312922600641321920465864719277845093097403846479284515292605647952043803297836313431425301850027184422060905920563905598436005329067597045877567970174163363305583581734358617600406439504900410261192842505816706137038071553548063984950703104402816410202915682072424552745240685264852727346573436421671060656651180156062401069743820989512141100416491671683053786349477325756794446348337057250297713572489485247656668051078988830220641839070354441608997758127411672247870220460613447838503383941200024937037584347146485298181393754523503206728194363356348068716101654503065815635978762027966531749260243748544084573380898204765562676293972572007311679503337353529633468377178308281146119702358135712159110705062035181651756689409794843262075710932398472779691886560218857834469639379153504383778602804511457039955293476170281324654040070100826644494015852439137903658413557097825345088482577268063748679716239446174917626936214066024741208082799131222454844505500181872158469643666849301830926382937676728597799087394681642552607293857382890361193444901958829858719921436872666505978537941445682007861577653448399138368383787400956323780036492292234121919973679607235494391217654407398722046123077345630801199165600542096632871482697301800018878519129644572066190188313395225174523704593867247891171015724508019557780292009379475478555012878965756219073949661136567732593287902663229881268944104655027075251009285932761018978025144359003613220407268889942210910119256022713186853959652079140461914084769125305927906907613196994959608744618626110505327728966249585458611618363015310487262969297403919516376355182343879375593921238265338893569262090670675883999538065408009968077327791668779884717904816396653382583208156167040605436730498784466824846949588931022962858988016046742493206038816733560762896256322388017977286730766548206229904346322923487774142220531758454173479807073339056757419710865218687963225010713491018160987612487585103003367021877935264906762569566988643313109803777423070938240282153665678707341711623810396710565797553228824715428219046601678474849913085322568531960970714007252595343551274469196372204505147933809018997346259043734248967735415576385029521821125400810639943181574016650895178582356378643363939947198958644845929556514463378900057169429130063287343570654043745900204048051031470297693802404182033038311985927509814965270939519011956779517322302641762142775870392706965201963777334461715031474616680272538708127837214792782638132913309331100406665655797152737520007376560391996489263082991479342954945160579177761640972156568888000665716285597205371302345146295793912216844765249906661268561224992382591852925527291448648263758595049756499770377910235737451194411081451631847561225911808646105091834949380173240185842268289335783774054273262812434786179556913540460312486396754977182839366609681814294734317732654307646981946561343654014034176496306630950673672379222097090592340409154184886643612323854053950470803952412613757015321062436696067981488112873005939192814899530090101865041084140981459017183016110930970895567538197466489332605021964039657538332141849214695271165980712769826338180214787443813001485922858540512962062248392740750553074994427445036112993201352371865455967716551020511980296910177430600700330465382489230238995717960555067550878322995994253117135111613231615481720947508254956237320611425598058374684103196055659753405159620942611039332190780141268901324623631160216666111746546493266804587191828217108499271439892635873305517969028941355566869186779680960711965066882199050306946240998293850539079609717156123301304212919281240528251841674614679501126240621743924406055206009281196514248734566066927350823581886721529707826358719715758820765916316571926127580293870827482781376055188891557584041529465582710111684352239492779673844374218219205196635834451943374173244011589354581614886121895821182969622909959651011398858903517710119958901540229678083135489159418824926495670057808217048869058385017108877401897896242810471070016109757906560943066671574241121202092807297593036181311678168159284951855288200714209003283785211879284911714835070503939344001569071203304699670085615568047764066583437710279759970219920179328666809656069976977065471615402899226425880719020069113162582639008984915658870831038660697224958971905362315709042593137512317130015356428434801671164154108840849246510405967972279363045044109969037858979028919870558246295410539939997164025549863446849701589096705503203956091834429440902547629505133541185831583263885961989054368884952213875682644659258171776520163440419116300754697613907882433833893966278554837876355103917944754477923021473720507758260713519793213132305307046116928910258688935567385062826605148798813413706654095495798450143563386068319093044842928749295496481807920819311942360783367619910405304150078739133533538799555707127884871694848108788466371710380349047416197948301895865830143663966947437534551960167370016561997402689825240531092441368367780235914820096423370986630509902503963567046315787539296397395917292882780892284251565489488622320266591412944325900540779108918056089766363191652702260206921255447645595076217001776916965523133274086167915860422216218994850994309918438448115679046703167499187185042832951230687288932363283678419047777624117721296182258223784828108414803359415227113893207153430549515746710473311159043539511305062449694381589014693909367130152108563628096227253866951285597460868906790876974301232573359894219204523737239483277082471182071403200328624410810989441246486327165379257171907560079895108126960516376666504052026394417383918756434214192969401679304275836687731484557436479167413392909211482417347499306114600563852765231653563470473837152174475538164324432388913692615498950454400469756902961365268777506680610425163584741615630422754289295361392182065384080956148496193161178643960333215119739215013376680688263953041656615871133955534696809008332574247195333136250535657480253027533040562237008034842640250242176144915077921803835142516019848343864127342262642555256423431491046407540598212005970256740818189162050296618057541397792414004030836749313045544439048159283503984892669572886052895820920740634815895941599366931286215573488613397047748725457807805681617629864973473229690388795148696222666502441589626415170622328725429246925640367595638075489403312540856580918374095162492146634635190230621476794630105076305893850500721318077344298636730219410306779851907951111851797598414651036813380663227416874504349648718145846528227372537294558970480312163976551883141750623577831464555052472403612339345505294443439169655345622211458475409324072024805516286062756392952567932362717156365625628922606959970315668205165981809664036970352003827635254255909458674215710719520281225573099408846582567699473993910645424885056931190991472319391384443236853549007011075485225776258891142463646360090834494678088876081263887205679751244544341565092584106796803780674996089574929786665099237456002171553233467168405381419483982801250551786056253970444014822470623759569867711302171148866034980780055693527199670125003965618074435817886451857533860516040113137155866928143525590675430189058591938485718166173631384434704543918237435266245006477558475734788927573205244127669924366052657104638742923695865650921612221122855884979393705344885064783556490201272495853101752333568528192989103099751910204150306549924004542855526143054034027466766501645006921979218872338095286580173656275331993731738307499851137751211022617865403948972738832057381844675041720871898715328344460221691357311198343556972579095441323405820187001075687880195660357550888385111491581341073860634643521682235356244991667393274112243561470094719282556721966925032081329176504650220809582891232970522303707557615004481089212725198942547911875851255324673995232045704766471746133588049326100917838624900685817033193158684882054871933883098458108132540994152101875445679894273160003903742016218298215553227475501053398599133856395849224129995655731514239181658563578340436765036360970075487901582483213774820896713813127423810601387508146287586032393034370179719853948250301785239723649262087632394828184335971271589209466132912032081583391647727012220853958394000070690021528068485162564869531481464300719654357356892352738201031698297647349796986807864093516772997014503244065538563585578338485347377727830250902978517289750853885805285631643256373954073275692643369929021172267344069748017456662488669341423538692734243335033065199342737766398351365797879031899795170555521487206531785912689549960428427066038214587034745558241190455770852454625074836322601599826506765537897085542093410517110462606117356371802503694021843618183720098485610539565819320567983787832747054622819319609682687683043912580741803341820241029882328944034648189439401024388373469435110332344549972564815205305781449804403921511934410700401977259355637777308069263006797014859284962140030200059107231142736327145778661039521773111936110435538019215461650737507662803047303651259399735086103613301439631614284804200323366248193483885745828421723879470575888909030171613535147736534419685103564037596688258515224534818963434854571119409493229441683908243368084416435332609002026055396132648797011317696117447576868089275410409194661675318347892125935833178785615178152489494949186130668421727984908514220956836045030691347531246999611803154206425853969099695448431176422360017508095443148827069615835798426586323328018152828804766863040963431261642265714172511706119193956754659683405427663476755766760869742245495338549670417766716280573405275154992063118335808413371692616973241327694267259641651186765544881707740130128424408839186521678779948557840928407420649366635071250528828939746207924578744224317269314344274196247557909952911644458115104053301323964248643739088657529469710076878415416767511520140396230197379556380372961342551470512902897316636351221654207180794293520423052949346480771900444655039995249370366916750693658306575972857710129833957038439237808219475396893665123451362550678116060455535548317854800587462528836583137843070795257123398034874920496517653601806036202140486546625404620060509910457807028811151814443712202413618062424311804894631568058281878344578877969215599863026171624395348561703872521211292907259673743448626062888581770422452163096858255679450610575646246784148067595767665476590571343112318510411969879607125899077707086335181073290169906769084170146600705539219909822273493621903835103276594073442575260655574379788540737764732400517037626943469061408797842326245718070389065711323495974201864561723980715514935527102377474129706756740113166482103947153655754680698428307107176165428179096804185060953122045721339816475623265907730834128256468823895499773431764671377156809861485890275075014076482831565975918783775812167164059405104760607729112175038964255327578121354432787011296031374775497302084362274935305366688072218933994493927941521428532646450633319674216619020571497006440855418164918989758049450856916917477894016665432619177790448918697581120337521263990603083608960952063432318777673614132564024320823439318451319441519563129368941697602347569532548886422702413672326571572037521494629269311289146371960848902059630413951146919614908551359657018340014133910322667719903126378709930810600375343767914475027408905199615153433778941573564711092124435241841510912700758743615437461111514859838779962576004237118988302336305869457099343438642266506328653703216175232454134056791636537621536444721586901574426019822973819066913442837399386203267858569376813833558601848428383530640634473890748943508592458214923774421633293138008938056967216931638753564409127817512955023573531156008315934706874529511203481280331340430017656763765836643573675737621612816580293019657595501819382386434993525665948038489605766423586670661526191851350374258133347220442364552368646369208283231672681798297517511598444572393385589601990776864220718632666282801472135322317728381572870621908870940492943914602811419609267627172223967032335790032267765049444130488171621158913998675643340633562016668341556530839084753080643614239735264574428768918447997687417821632580588230575314029880066447485139347030592660484776872340182647787516233829931385755543833018952828563680514477144461906269494511641200765710357221919247854653337648752619238592858696976496996502055063871186496077422830832405803758124911833189858251035972357560021943980969595269784026008903293395235033706606373866225243657000526587556855563836678946791492543224975046304276448440156313221786165064472492293797511921456637290207294791701246908021155165861792507024871750679275791771374678265375810375598335082945337504139344335979751420725012955326187132808695238554651786619723096540826591412861959463125454501573959980139376895849643120889971823222785428141952850549034282159495138399942931300632640360511826922855182457213433176922097424738475167428703880841028680614552228914986263006354415130463320500038643432750260406206178053197990009357444241922616985254549954913795875191237625763331651465121325206391815293223327519280256781775463543407824997096873152265301682352009146123583764687750361727396883380089985986386694655997213271431038947157875250564220664270134374665251704302695592912605316770348947413356892708107363459681079529352462159652039764789088044442788389175018660975519720499973282123138951756959084802067878445071888981720073339443377245102481453409197404669776020626561656110378709353570716459876346280529420462098591182350355267375814773570921039128069129125699666744139699257849278198582597102779871255497435873186734829095893504757349601545849804113429701806391188649004314362986664316908154517148398928282723443530123548371785865616617970687595439076207556160317756933809498558151375926541898810470594839822376379269972456101265865146172140225908703681336000765414979652921441754171862309228704712803441736945229601086053629545575724969302105756761315728130490170175669371713268387701044650659873905728389899143354559938590892218490811621654396853448309779511764539700638000963422662526058277073267473151851784786987353836832019304778351520288002311969784694461909452301743875508669925398078430020763449429182068539345281200366003784102611079369035968716087702268765135321191884506753376408987226169641680430920231718141082266197264259918265241010894203974182433449661837133693641387492022101881511773185685606693587347676095805731788770794855017368531266832318062254254156363245636690979288071570787025309374259395436569996416171393591854881764926997474286653463816787870787694535787496323877579332867051628461345567197268945154176076112525254336122486735897663212629764663990145563536306861572988222503821447521339807650537424407166730567337736204988915769297480116420417323434309242599096450550588950549081142848176338629948410118845424188919571971902050207006768198850635598191905907027882255238115929527552981214243902751743921786169676326567934792087913336047900890692663880371722859770748953411692443729538998917458655801065593913670043315385244686458783050324032591880226036641392007954451223741480371320669948056087240895167014450135907192749187481851363331181837925098954680081150365831817541565477421251011686677373864388819786821970320727186105264060441912035803291187686281184090998117320624187531413033255867956951492211781477766188936422238098145372865419784103495386807501948681003808969018286755550254942245356387906302590017405442684798540426107721829197487554893346896058475304167767891224007903143571225015786437803164410478469815920171449371653091328711407226188105711472114860129880337679913300086977799153257227913903901233538976726611414113449493895576820477289382340564865375557231564726811234597204985850276035572032035617753904259361605560670422916906599510080460397693920494804846216780381820363166855931891641961114973575509913448625380568205988882864832317943538744663527851941010107712252013360010209092200569668488820483140780773197330542721052234312531367692164841004712910677997768266886994652959859874510072622713625523318709878520497853171500647522329903165323710494844341911120856560716214006743530552952947894041938218037550963024904556353213876546424305360713103267005680617205734738609360635205446101126853268095832963262342558303951320235413709999551658556969117850669352273459140983360739757835355451641740601214991341822375866250860548933732105025503524824713788766317587045053210304988500008769573691968740008371760877081083472840974965594614550262525689693860004724740379542925269298833358914706220644562246921650231008006167576931312455113304517458586845764312352151982236793845591633051565188416698906014676786884874609431015907301870557550567399302357632302167201324883775852397955893721585553152175120012925812800101743317621796285983141574481782588718397921456227360195579620300521203197994809210509635450223203518797593805265183687242833806822233827189627678321624594469686450926264950459220816734963609356712988176687325470024655445858100576765972537872565569026703057400062264593880759562341945481774573203163820946758772568336627253490306488959164338938651315573043087509705854578425745634634229666868981425821113859217867471319000969384205517209940543706932650690122681552635304917265173544255166536249884444534679250655037272721143680041668809090739105889324890576919483932090879503499957205587455645983828431671856445202279532800998581122123307083790438887888567956402179341362925574285267908551240284750992104939241682445094240552166961915098014964748149470246447913905196833175654817527317515062537689389758467754383872812116480600630122865981798954994687660152028908600184129368531439593735482627418865548130591508491975710979271902462048793875051155227648238364766442174830536444048999611570875102742323418243343972337158952380525210895281292657972330309519224137872596302979408469580688667296948544746161600769766501323752788285693553968130368814623588412511524886670302551693304873355624385828925902104287663218593706964841274785937254108062862774318623487777088422227489545264219911377100240189644737137340972987159922482198289886994378684919035366815635136973909370136254247466291864567875246863816280235144726524206391583338869960706616890085375020583523487118316793217127575914130090519456426359297904155060464744457559513536812990036381018457530501960207508058977448756521260245903435025789379854962899127898901922094862929276447518543995223846854862087658002788397509012077296088575923422724574372598614750438283178520505000245815433655753608954838551054082594940219175430156321793143206351646014955915949377008733675047474680198711372719085499492836229087031198438338068530195130891535395774049844571381907498455033869484048631455134170849130160202058228416626686111965402504955155700228450701126162396758929561277369050587699659322454143333616613298948448733053946076917942000092897988493454996842438472430444972517277764077326394917328560701676327816819505995339137957740493215801792915180934233709145991923542174029344535348495282922939732364941843684913572509530952935900737879992544590767274589549098696434297453404063841873155201745354301548381164710065904315875909554791941190274900060141608522730745105085021893000682866155949382463749576728860215195904301839142680164549548978923654394173670179480102447369502169247376495065090172200618263089491437864539079396490392096095440434789238200192897730690685345131562661331674218352041523766769552640993834384012885320210646761653268289402152587740527647298773581868798403317726181321464274821494876178481629797773322872716238897647958660920267632716199045187472103240782145583170118266686854080802976582260702317933769120111967653126247875330761456916643676692302259148228540489202675689433224745733244159315829952766642831650794417386406343276381670879148462109227650686110570435512413985801677030600852642380685128846087132187087615872178669776553159301509119521197400226776566040279697728290663548300692664110717773873098666236160996279888285069799925206867482145773766296064426463266325786568605161602494350159944203080963826721338792534127113222368974063926576481019524555469108472783611363081149653143300203839465928089720265603886214686241780595174444827926593065025603468727973753458627823482408896829274515710483292883708126853701647009816547175515685299669776704808490343072513027907831564525116545821644297579646863455843148994554118414347162490115988465439492365655742221581835030334729623504922781286213871236053383646168166074216173575497768310420720278557879341285321166694017409867102894380931465243568396125149831813180818041761779507990881188612155234888508395387189416908224943037456535209846990076350627390913859848156134405980284202506753106652246249997284730252228962854612972800173073184666094529081330176807926896293988191909173647745827669465229442045511432854500686661635121664945071565325199375712586866152608042999512133548884836599626060409558472985594149261915561469228168945631441451661311677311913908256113717333918981987821526833105076599895421347712068086363187167260641503524108605656970252270803045439471111158906783341575134395112209962133986792903479051179751594253110676007434741871365518721057780364762056115345136025297994350781147851696133651957800586803126808562495551157088658665548676668258414708200786037564979575474226032381966907931343247683152518686884495534269175927418776075995975378903176228943300646279653505650380719324934458715613207917333441774194038405596513258631088575044004673502946092295804330989338063893802050268322345184643549362964218572865206433017317414045788620542959114620233062636425176269612759126022560147613538280318743188572195135377772171763717060742671654982853379060856535486817353176441586683984183282759603195179738418237348603186506895850803496612375773108386466043553242892717236807536257858118690329762551172633184559715308834443075779935972737899133925751545065603477350802936681933761264773159752368419542942563258108252717214765436305335566974040393423517901705699704070853818238278196387526989761993107597017289945364456006209383552939966555067831662872100686066445522612051881738911290973543806474598670050702465100020660016486636851085485360678114009306438837912606626560652038923843671150995824583998068649043544699722887281358535948924705139415283346111762015013221025838193246121314509451550063029163876760337701700987056894697947477410599414615254657427274686499883343174354767913268214596753754532734398950133368627388326105566077424642460211716951402873834460297618609606918056907335567664638477144077464679474223238965758635730541034785208023441879869303751866439550110759198652736527889384648814195996177543634452034137900631591588745030463354773992978083294263582184175888878881687818849271569786227515691379918613936456676701822416641520287296931951945498390254898975555099438046113374449566978245753593886165841628571341812783426729436299332227843860861043565505972287277179907137472676275750484668834782037056466438192572497106685971459489242181044262476221810123658667661256453176974143429256054137387684570869471628649722317648601768494561575756371947152065003656585678597709574601330537355699102503848537640518337427568021806168724337038589062849523322177618097205606912504469873095390570047009856826394574671134149271805418089300669132054431637188549593990694670353871113477266953042468473371984643136151516769887143228612687198341718742462958606216969718838673836633951289149816025087785944381603372875617921188609247700169104332259188715070760797660220548224336716655379294089511500788753222301597601095732668679845477942741755356838589888287799232706443638389503795292108380580166782832540153130971013991258386365467495255595396239570723008898682141015969233436828625938094564636045917676146974538007602001376713666540212158942984251246052377560175589828972576214684502568535996347867313209663144087971376821418554740915837821479633345808810342400610250891640750145111149788738022282676340985054803234405059951758162221837054649903037645370985322403512627920313557281051856745382333561845575446810546016175210890044368296154160551045502015029651089267587397058303258922853783413431073354133309397138881271447300828130600704389107848363886345095077142588464442959201757503137798233422108836571978805082799563836152015223495814409420349284671017305500882140079471227123385007999919073724218186185600728596898428349319292961719408359736987950613933227741833212670112051560016917619352079903043869452695031312684493184047763841834665983987681335659066730799769204810505586989945530728941670769129827878272020251126785462803618730831843467288684154261131501245124849766625829493526486655261502881164242844715376312550024294031602779074002360845631791020139580077340080466079263954555652924258926838509435474457341037682569495825709090320090135000380398828673847188657964410509324846589172612693011786140793579663354982413850341490523031146441345370164736964624539366069587552555378974694203048445359251033715236665228731807620145533464626402092512174375844102375573669515114592172086789555548411229587797789530711994767711518822761476220986182321474761822572784314878629588647847304423023228655214767212055542526686335947106430110261742919349685457455579093126220096589093091552066184309579308267292052486359524114489020068684212509321441493572005446269217285510423041059136784573195830696789629471415148150973408093401791972180832369469656608932302486064663493168882026049247644467841738278656838826878126484219334180692727602652076690423730867013533636512660159685197795238101088194806921921829356197062722691181026408008804384033925756818669011640557018372465151388295773788577107287198080451013316694044319131791573435221841476423965813441443942573717629393133192135457236232435206997377843164651950180024856406403005778323680390003447741929004785023403891708041574216683463422402053116604851957648200010532317864687625458406754867794720727315644915193184918548019541372877481945414260079678509521279342358323030452563068393473330217981518035667344770537700354027890420538665592069658274463579512994523988787971468853382240149346725331478921594900043782589774591926314978402921370071340649188300748935529485797327452448259520680101147958094749470424025733920864898911328714391668062566008008977165248486347040360182332357601957668620823201317175972868110711448974691234507255152914588720188022847774029398407876248801311885875875253604492577588474040848951338748760335994713447536514705257038949584942905239020065213103387119926295938720730233692555403021826993647085482911853138401300553798873160518509202485041546241178263598132190937721879320935946353918924775165681585590037020542613963158949122797419153531277971588968806647549530108624026594833403844050615640564846034445545461594852094239504445061335657565721513626820006118624547543399589217841869001801627289866336378987391648740081774381069924942254424158877745718400916224339442883260176794052468667531466025269766834605508670537444236820712833917452504936569024019439421183568982088257186700647942590050708836611029318974187896088560366513635159180563819542471866679755293996196112925329633428694974787035796583773765934984159452247027328516891119255006724238709809384702123897874921595153095118369435621336413951003153716756158733902847490206733029758230002937358465107676052915662930034199596014907131912702982467032063007647967525196905954069113619368463922551280102970364647263539228914916801914821656625310915043667720429573539077522374477457510972913751928364197730823877840966862191526586523787656202937163007345986936491837863617008130285128194583423254183773752861036896389460376936017952930652601407135370450838963712279791108009917664080174232587748194141389754797334572702801117364440645416459985733323863064175590932592955867548314158453612755279126263236109041661915985399420315815640654877879235139787659912762857026950876861189485384001899923124401548297317549851819266423959003320156267374286723649679533916080034839333462765932631974972381837197829373215569247403173316082407396296797965226027165898760302952012626304233073356701689434764187386915420767154113871051757874361509978292265910968492401133252196872241488589268621247714638464246305046490024459985746996901146954206444340980263727816156787513734971978036793340660226773182195379631831640322299657559417290600585014850562583243185281818760428415229564506949129706818145242652612416179357917744613425656738733140615484798288049712750159468742898730857471662615367989193517750457459878420734709922635537804720063099074822121199027876584676036286519226810174012954800924493832744670473803677357631468097513277378687364491810142935849336948292460499699652543858782548778669453873629787277519464479247979839080030598866309264195135043294918783122998690299470850815767450136563531877188525730041159542364425734025807871467747408714526538454689701355123923722323456800891321554329060812217272342199546545257021358513461463111707756800621660355575147614185282028677432976394356980759987582338353400404237069755809101246707461873794436899269036608214081489134359338491205669292520566613143936025872478943982008567586674612917298463144692051616588052182092781045140300674224628311602800978494644722812170872148969911692082866654959467944725179973081227574000167360464682716024380181610965826778803324166346591679687089954366374717839222350007854212180497456541907055076975073517094639398486868278379867192842281587206285222390021074386933352343015082809639086658976159519931491726748453407515978912091858142976375211520188770745387798122253934077066961779170415655214175694299257819336674156010247263838835082691874003129151194969296585959540110804434422006975350905460196542191912099247067575871927719287709479469323377815053167487619553240438371712149069876430606051950314463211323850292355021738686311367400516108205436111270294945236430234913855562494289456441072708588253178906348704233485795537945327355698423997378507577272916415371552320570298990890401674019221260767095890413873870349361805367816257037938131175174928467842890391559035948229915802570418653794215011679274801044287629847802743946342529689417447105127349985555075928937881649095003050873239166482629273829740012550913218380959796754211275599878166780179634648678102609400928784464655650405764925519026760271744459435943263203298853200817473123062745333177170108190406601194895569601106094281594805112465296428391400691318335809509872360347516654117928034021419134767471553005345614977901656594012866415433590345696016736384922242457681897460703112977202579552165860843292929529371289124168807085635082722495815665007683046253534989273340971542305678020651751932688089686425380786679201214844149632881921318206404875390704285475945639009121605195271381904462566680130278235060546626417235804245271728445591343571864810352417697400284602486416744192693295502651999220191786809169993955993811178668388275317311134684914043267306747110040033701127325521928418944124174032413097723049098507795669661077353938005818297015321136915598310447928487918724052407128281702517620278175131155982147838482988917377476990247059072544220985919706239504603872894458915662952897997831476203348797381520788445529339210748343008773386821561586565819462627424068419583409446089524817222254976237459075869772711760113609796131751854617163014381275874068173398091545117854925902737322949891434627762191605765909470138385328738454239885143674377802227105770797744830845215522170705777663446962194985596716938194239194754040597292557075532373604379266134933657158750203017663236000166302441356603169793116900463369699106472164710936642608209600268541798386623269758015111141308207721205235459306707531119592062974266214489874730822169587240406726845750273225884559676694125783586544973757929030126118187722576749732192997776456477616429871212394012440048667513819271073529469417894710549488567646515378626890138172072436358116558340480578498916713891016814965121556686081762292092830710385471165404474724533650829479531791156477013151209978274145411966682458206257990420735832680881223627501595363771227276198275085194820480260736731575558248318258523989837974966356350536700887187742121298008232222787213156884725329559023515269036742224202800712071113699588088033481282220343486491654363900844753257580013764074314735159751262890698831562345552160167223681118600481450430136742656811122827991963484973940327224100360763644241489286087777651602601738138674599708389940824743642598425333394551557658878157596277353047582885826488639248962787374509973728361538779333328011890452641471744529032763513000995928887409948120104433313914021888983391374331812966314860191206024377273467496393439392711728051006246048452019056960688023229121975103017433050321701644285826012142408850930593259493518342993642737708643752843308975550747861638350393834947661876186522828538841920382856009537483036166333235823175020283700869102648577103021189287725038056501480864811857612232009511382558457434573756288732855083574282122739687203100390627864576882471838168863820027244329920973326005682025307182371779180809190287189400367510580509925769158695531938055416536242482327281422461553105174355745672181671837032885891632849060070832147878844051231564715366518068817205043137508742301487512689064513736337262373328388854787861420996312903404483949257119864325138467317189170816688062218096964526118855315294447116228165683474547258221730743752752673641331589801857575561782259404290659450687469108311620877874641028645175856943636062972431861785724025672287522485316658442667034968770233988951654650976269188589529459230039429077725243311616463184907566296177452500427717750882116267505489834685571040941533181412021210256885089468292639368973056272116958304255022817508791022159806855595835531876995041889939427647211151039211795089668695510440019102253470202334887906708447388856789252752731825960192783654975094652053975325732732806958705672869187505715611161174848685594526603374492429339929033382322599184827317329139060590164202878788443390009002492472337653318622253857165042364945947781061712824067774887215653317188620232698171117835461741108309335854991246000018997234613076762896892474764751988352542656155417934204335874051580216403166749294347156225364550683910758273704587428335427500777872446840575208270354363327536959564191390264994485694732478431694090067333729897466408882814188879252742105009696799901701349320375880813841609594824663480603143176350817339897785118926984203124700075305219356971032949360446109186843450354562592408519603406938773678130591742800923348784737357366351967999755070016145189186333276928658559472454616875827016922131932096778080830248248458544684637520166135660002041027716121903888244671265818413794747394827172927590151662179736372917777249844460625075811112905423149252833215662538300753729736462587695022097932732636549957727899333369521750504133249330313930268578044377044172507151440579465738629062023906869662474922524844177909255284161243193732381033763906361956765538043036885151695388455224464628084446186185124639014658223294764266692498087494057963007371666372967292667728561215888973567887981142578861675661111363680118384587620718422762972661069830609534464813822850944765850544160018054301589208898848217930163119199686750753369426271367388801710008098831396981403268185239138825764827134258614574662417201158003273585787371056681188296774574676500422705520851371888300416246563121364357907606501569198564200313548786180845021506579330270868617900525202106000526792836988548110596755341491344419118133166023325745810688343025461152690943033593482783762395445486134066742185635586828006382369124003451270443597246796090621959093627433366850848970552423973527934346103776651254112955180178857902735123896188486589656025494060795642206231868619273241731313736000235716871942196345959541942523081232265960731479570940317764151396457383674302275108976268106964931227623007041537921097000727915628782289734096625843548418504413924283119122583253945576608564287136022784585247497568929015132453567157064112306959389216903196466118291751433142755592171088731334501130282258862706485633516505116088982497867012199861958274306978881036430464041509388467056061819671840130681595441082897803203337340167093003016814385624193329704285625472499861643357606883143643142119666642443705238656221479166009482562996119835891846623331650834365882573224937474823447598148898842079491868939424244898581710761774012357010003953003760371378936116437064126844922535718083452550803175277078899794474642430439410912322367888497830664113654966321096044721057934222287549369647997183531628413860001073454943222260066647650327424617958172509218921629795479221023556290964981022171137031636113553575130312710494529824345065788773770291962430418255479498567449584218016151530622834527408773474539768502729766544166475231036020056380589121779604006136887305403304111756420456867108441007087236114510233330614319637903712154829493892088755788267685751414922498621034408321083547144315242807725124983372767078988417523899874225516927070856554231363365443372317224049414954625088891370906157590261602286261734348174384727118529960723013716448868145285525337347732473465672016663794000860203825110095864212883965982117430815682789019684621437916287324137410748171802828944340211708977953866919096148550699506878872067415478783610839421964086246145078464541383871224721336839654507003477964359083658885892101910641359948679454202165611781560514640291528003674915663594832996359390013735005541392664939221891340016477983976125325636446557949258222703199185571463194578379020480831274221820422485089477008616896981123548396443362477984795482937545574910509439258980680324919364794393185249929247274965535828876212255744804207603490626493826054443693385700164290980987664873941691871429816576900553331490242783221400536153804410674872003199570176540541635792215154465760809855594573804612585139759426692243688267526863710413602092529715662948739620011343201031409486213079390534609251457804581239497406810603570316327375651005614267009296095065072238654527237323626841325355999082198595430628771104238135765433279605375501034355351641904384628750066250093807477560738590299319848384988857346285904198036569861786024471177237155203113842227122303236098490404750405680512191515215104108483426731718912153332582478975101903986473857006169238473934391147188005873657510050652328937231729152834741172242959947690607775804668951629859365020395610383550852068678837460640425875886766655871250990467645089039307523125205261680724276325045991041185454476646324072461604634121133994060645573315588487934234979491045611048867715157573425472037303515115524297564017667208371753005023845289403973088991665238710046734379705924323624312661511935045485116128850709630956870923404097305631287770056999712951483547995093746990947574241720783841882009869488247678871818445616440715352361544363775930525254007510898920540162709901203501238874057972036154209386217578244362418629394739242492821918727302140894113704334152483541071799085493004614133585520008264658674189578000105244760051565843058842203196706592427790131244492329709363361534828890126573454729043182489748039751771420242018353423599184172577977594872963597678685547248027019188035329416874730813550813788458639756207309103801487337987554609950123905205636206918877586584327136068363396460709189289090340171204650404140266401245686952411794444775333063147529718972304353380378502027595764335957865010729839179102480355156303854074364106350308230787061846212353286892240590933579170061978810879684977487978936195390282330695551445676010444667215244676582656990957392721681534815495531227161378215885426003503100074151816796676617659562184160450605580968825454131946871151498796075102447801529049131309346815776143306249503144497564957384434762450261098546763758220181194567553050132235262180846507319250686628002070176608656503995051323722281228418789212239148469230385122667502916487093029918827745152317891532641898076624622694274189545517253349452246991671375080460233469171635935540049054658407530839125907878399480452308308185248159757634087130728377474100149463940852495891481857075680125422117119084060550539724389321696980232585550523713283256742701128343237202024631028731033045193796851050765529090388903243800676497523463489571932758186569314829153852408214562892555870360128265532896820943064653510402772136535208679706173442861320318689494595542296276581211202251155690779459576113667715504583322371745687583466806326985786235417852640262929818545343566640040157765551935016996206090942862182735447180615562477926635461703029272198002217374098378606299769680374133076796673407392919358835668410287659906906168396518044695602447195193447916280046101384683895345243202804684723964307037560067735599454149444227389381970076754241627631533827925280920427111331770975671596446876948342281998931769483820164694909822053801877165915568791318318066945425835840489766130207360568504130642017744432189168694711188594729075091117902499339141745573237067571386409261225741812858967980654419639423619498768565958303923494521265879436379313978954678356693760315544470451194709723927121423703918022372107220780386189224561214302905658835067383460410480582747572119734714828262691191647072317697635203583671584139637512051486917849519142902395066228163952135909227753994027114447766019865186799024589671867045116748221138099694475826728420348877577583606255324547676708554099720822066392901161119099522898646536290079080340512067325966462523359343486490872873560956102601809384008452295080540378713046260304800064444659874467792429731215393726698344706853357458519878160570963164276107848647108617062514846652091567425999407352945316620389192072838777764974799141047777394948465549260673584319985284732596932853119162590983064723689049162881471295618683219006681842866343104317877418623174185446584247946693560366697929977278886561351125365968380661099336847708082920432072072315013330951153649741297144265619146206625318746434609117875747654410156751160966914713471734091710910851890117430161230496324012510297246944613476530234645421272355759004216807339975329424323118885002105978236792440117688013658950199293317161915051893218173166197401847703110087876295641538918797782804875299010644885486521195664018253390758226173332805470864048784248789600043244018242932671132268559842948075178618214002989610652832771845561981467250879397300252651921774421638232632939377498520254615549386755717466322949352197742712096242359229808504725446127673516190369674330560486367727775145775125102835934233725050412893097222718608704633890214507019950541616338827717691017127493337301818168365998717777632085631888858860926825971803184243004021904949839581575440124161868089061800536640322462585221715337584559533422793027881746499528869974777081267769573914261393233845253089541641861356322615807173307961629599988299328772084431190369307926047052878379989585760077577288395425705868166961108925489027276878522086964017388194254538117027885764363868574003609827118010058178040661224680024952235854038593106578686486300569137409579780796445296232784982625409027539600982577752285470558339699434734266987660044189917572801748407431324053799781675081389614818511812657965053310120505422548931815780048117467770233828629758305702617945410187848411467721424140974711834434487322704461843380069701797686401249075043056436793633250781583925148681983204661563776485639318562983104923160345615823843854711980625337932004186714773775486025256122481043620559984588989194454403929018079379615667272055944437320818016128085222911504895409554380112780071840057953478011924105788334047021291958522181739628657628524064874937159243093832156823317010645341000158965300486308061375154749980485808709757162651966970693860980866774180281264113786278378098299372283558757579656119385301082996261926250621451498656410227516606020977175830166806195061970879987860919679093003607132590985431882034549237237915141600333583034353341475700213085769407204995983907303102992223841314020714105957300170653133433631536383214825144450215228401098082845905979563749045524901598530597711411928257660241279105746037054600643357472479412394036248396918945358402417164379264534539690814677235569403998836792552092792110922659353213053779803351221943044631823213822977836761620877293907068653639150326236648038203261082700310081975174114295886037134758740574138932009361207539246993769508726469071533103691665194701214259559514352093840278360561697005725824461178620747802007402153783242143196164954179803517083833405186302173425175888476453804920025806520457304652603892045005188354528811995150954397489228602758986155022984286941765810522164809387410757284572022096169579057313822844298694010729539227119988568771509087822879420305676880825338092556815318169973144724348895197597342955976638800682908693037885671702546268139884876244787428416143760129093615182593178033469197178365135122973362678762221821330507992975259062858191090403569967639127582443884289571891892592219426497744572506958053310315913979142579777996204121351019184796918142250731989268549916888948121408446662854223866099222440847193761718260326417017930115257530244374988058554471072351882479541755583157075137269617764976583206936505598218426725998147984100951120653448959087101300687712670299328180884187891161791143547107411862752320583134301477853394587626133905502507159167330583842310689928039736913477392810295324416072633443922455582134166584489514913565482275176689200675649161627987072376372162094605835363986731707254400291572960540990562845529324726331998314801490195344316223029765159649889581942168480050036080363813234908286391912635374739290667403119949158050908571019243346847650568573343318764358501701375949268320257108211863497131995967594487630339663981709974120479077024716319018968093540770110638475122233198226843136559557433749941250927090936374026479152489594873794476222941108682879754039227149132088580879140801871241067139442015546540239289062539205691850614956450602122027594404687382630098897119516721400814481550876399182249075345863567397342882118067590239144526411578309254175318601134461199227426910435107246729261360733217177614379826887583817022369924272611685305923578345084918111699760794687175330514296919055918278949725982550595987470457066414309885616768404121090844401433034937921551180529389566909299433422726070033677713502701205642169830013738786045050590018240644240446427277447881146116167230399037099013435226283226671922625453944502018615201492923309108351449002570312462482167762600656864113977759021243019158980639734243544918101666908141688523369336069485154204284229454860404217560979363445247426691349860597983772644505575353573993360269959612004937328074454039364358021906966844475508878920616426598902141812903910572562471529714193996448386511233046799153122453731441237931686377114687228350827407490327810772745626902673463088269173659633123515240786908471115189547569505441946822643975955973815653687776837454130434229798524233682309355795347780106331278935524543389048441900463646534038410370922483562110789481112748696900636745596842685979834547448724621531605956430559429363920278980341047049113701651651720303328069299585981919024362696150454295082461589396927542461607088293616114270709815711640399732792292500024943692295840814352948219921548965098986425743286453919146402299822031653363495733342701512781519155039195714573275231802548103111565102579460047620078804885712506881492831155669484741682578133926524773209326624208534037873150335888107774240227838732367409515922341571890587120155354100733754557963469450042626588028494004927869873923219417614135934723550043667233684608376848176964323168859147216255042977858664512749084690522909607235215918488296810778381815602804589942345092028045191634103504510758756643777453904909199385665241899724754758603195884771738118090938384174176163690273101835685874399073924434945069709481081135926251719550557366852371513576761000236683073641344503166197337628709169923326712831596619930481165811710207694301155326126257838549557191477504896667773760691100008927594009162005537485918664156515779242324047317983700349521525940624970412781665818422868875655798190309517692914842439792038962855600191841744252282265754810387614382174668165028047358504876244983504211720715690273398990436110990780032413105732414905452446375519096637883024175976595882214688392721166181464379678408025140472214481155591951972257061713432621063575910051261774400393240349234581628005378524476744533034634958096536985352044976787856175622790671819460905171359705172872230647477093931379677149830800701862797387132490041697102792376009622973112043724482373780260241149953464011460198310457757251831710298935149360743887148893742056328025758253519331190963226491091354932533787091307717486766657575770558547096294304067815740436466900777292291613329006652681877273902221770663216631326463430753033160964598582704911851501893332832562133243879090848750673554742255414146573104172407828794717342384667190648069432559251350704723147669377112253158670131396160249626629929186452471797529088113492918488212168164497700758015946227350832569330770397692221584580464225077328420658895181481780135877333523445709561388486641406999242202813289105971497177870722137146669135758202346769896351862628048776978720531151541093741211667201529438350441342762605402455781200120749848267639645901362645306712900790247339393415357117808741561773202278206704422114417855229009057690125615255928249565679596247061328364922175541389007044792575422460382822776076375249562503630107074292397716573012312920478681533589509207486750524372539486826187801657117750909272449476386869244127791294812557344470414578978351986086033932967425911716212243017201200409523248510711455611537514482112243016173957423715497290758477252520425543387747556827492705048892672457498291585506380930427551421634820967039807739205188068659583253097559577081729638188845398004841982955350898421278112970608392872739903164024493689167241462480617054234131206575084972526092131295889789247956775262754375869911646579800624394097907094979985788504296170099394976579746139246242145438533298663367330459487613073226264971398363233123693627329610089877546895069184531042924504246859404119016634246607295249723234971718318393367099905214784048294989727247239811263404774105152658961459266353323255440446409390105854888915846131609258158238792819205784961330922978707799212336920776761001149932820450154655006978648337994363468386886192857941753815711797686335514953029417027417883967262147188791258889806761119277114908735075587775028060027142771708366017084385245503391555861611918173147285781959329175283479889237309289673770267329679601134290107559007907976060534251017563156093569198645617942229285220720116226207690916697213988978924861987295725111864286592850789107242036524911547359472755295042668146078003761418862253789442599113364120517440383543054114846695924062305007623260338362710270932765289989548233514105683262488552630571244109346607736943874449858745655510417993679523387806608724268514241584590618217530545580676945319933629240919508189438856870777669302519794227325054178258500846908135524291533008394818949047532094153696816602758199869056467337995605374153609723065245897622399848593592037467074685819163615133313936179692972408055115494635888980798091981884497999971800967189105883247998453610768867469832559272111829373351663951401090217683771503268532728719658646830381200025573607371794329922221657708143995462457139646084061029334846094085188778707748779237965079077128717130120270306017472668507441223107840786745394839094316081375689288043068327489081063087815903968676700496033735818142432322463064516258635387265224520189596312540152393164420472339126141991088397911029600870808888823803560537303341244117463409161548928906215273617197286414289195073551008929106582379231346040504147531366518980328539126484413350088720549247945238722269495350425574027263729802400390046359423629490281143448504972907159941103303827032899639644030924132727445677530796566271348373567700462183312960146078483224651157046333249748246893903514670697770838694762613679257903466855395290199368303261647384016750169930534488926429074843658080867021319169271800458016207011261289141765052961726007438502299052089932795993960051901299991096856692881288845194472187644035685765849070081104136612096794155272564994770319209699697249366597988940430289850277162732810698960161063499647904149797663845592194628403270752568898215351977499034083509401956713596976544364457130573846841387003715452923420636587185755125890923301205474712973296817819295331515986104444836677924269778863497775339841529754743107428990993852238335119713470706035310071210048532228984738370499929243695933221869393487545837432705658595021673957973078223224540421271913020963404884138733289349736541870433593146662945175735677961441232069984984224434279389020493293180418705354389223527655806497861919837703503494182960955128582500001437030124661684943913161558956512975280865694624733406859466702275073665650466794197830879384567231004811358964802431494074410480177182581969952444830810091033525757470806000805791402353686405938673884866637039787986681425419931135598201386918320789199642844841910736875838510323111896380370645701591210814340778662174857600341372835205076980180218648018333943370046818725064628543957421677711442869298598929074185164099687969853087187244619083160716036765939846552143647814739842325499816801904517088696808288884230362718587888121346916630541786211559339359848668692188010189048148750498764893649853751115022712244921497750699989281037410685385537988694609638021712254283880642807052031324330358354298197157225355270680953738831917928923724786784145678323484447302647061884427414931120165090594012654751207903701283793839148729557934865922155592005130318531221593960489977045378104007753192436846411230487724749989871173749778080289230524836038546990698438883234666631015844286511906892370388991483223459938302338538601589310803999293753941224848155498231712035067864783924167013718956999622019919363036204025874162593547070590933765426825543219763777408678769201497331995700971521101717861056953488408580708148218443201830310660235304592735215799392604375014930945332462943428823995540036173540582659952344899638957199616434657243631105651635143318281630737384545863440930583784741414205639826774487812005296160916592912881994311757180145608065784564201747857196807243212392175037507069680896051258718437382546739048089516660677281676824715784742621950919603737457367532318164442533196264118755975515363355266167821730946036638984112226775778034060929729661407156075922654003846711260999186093167975213552411924705334435788158962229170570346826159059099768258680939436494906199059852406153248457007889456866314291635980078184067707232077437241771774141812394480856662378650406540083253275136395578211053229220175715765218282228683818464833105578641086134534980562470464344362730543722959084969127988058651627456229270050161451005227681180604753662902458146154748864999242685524521128430958929054378566744161244388333677795766482769829903693441634401094301818858636129605449358528068610328841964073212920438570275420243727400124793800900401106290159607885442545316258051169132042781857693363812910821197476457256653002471312952043373380087975732466805774797745491534130339014009338221604356949099520907482600549725134979746832247884138312876494069407305841103893038040245478099196899698364170377947555927624428065041744189302659967097759603243896861536800238841509122252669936747745010215463650213829930546887791348272699451871273849666865164603611353564507574684514098857354692944348111797993800964724583461994775054485128262966529327263840599569668679258671989738458110178259785094888738061143197620333814866763387781826591596030705179631197268396969051858763819519555883315887455862578560833403994630359121709347108063947400485467118418474755328601642326766334886261114719285418792735164066183307327158979315393023894305108565696631967614330364433247916805100222111571956442546536679547893826528877753564737333123090673935691615642350415199665467738653300565811207631063127809835361288733340897773365278449781860121619817878121858347430173002013015311575605467637380654034532406795443344107843198463321917713972048960821215626781017674565383667470374726774870028856435700039331344791090934267635385861791177692194324125524967652217692383588359527373365416351114155874336964275819757727239065193462803220942578387046266751577480813942005546709767227625903602130359035902919636903479578856307364105305961864936016844305587982586279325059786666972954464653001723754314436845870878292201676341601914849296029587370291703432772219174868445441213693890515580813510723102891214609758354607409708031919396121503985043982541654792880480194007417601599490915619864759099909950219520608555055852108675214286008487027884254013227770024840781314559659646786810368943584902000145316889146564183087001686997998027957801771276880337653410761801336514251113196200980026947877569177728373936062960555368944317221578311680517416274519445855371414615061380454666831500283040339847462396761385282654277140009173615794941130086497146110479361187403614987374641153430151418795322645396598740025835281100788616837206403369160051503755558634624306812279636657223185554200204025139410515002454633424119171562658249990318626069919584399125515522164984157986957598398731057742407979755254655008701986519833091222425441389661130637785112918557813328824320120423019384869049287777645363904812654748028738604840875547978624741125463801434848741229327259069436413823908913883509321964473991622839228758041392928511975541080672269025681995623206785399548859428502905406841823234282750648404927404429011157865042910840366056430918180524568370986493924097141761638938820108974728078518623080852778079082297457907019013414047543320467999601448658564998815024725099159535215004816881915446694075617860261751879796012792244981954419068396315789989828349646434886665766839328571664644985071692254049802758901647409857669625781252342322189911972281866728695321098714877322216743626500430003850677930017883777465577788329877909378010368608084646330310452872378390037827323011366475901769517261041108511129907192385900911085537658854353360421524097824203645702724030571605831930683418161362278865418705241746133000662419302738411255181588555139941783819958753435762443796002745687986754865542418524187342066752974496102278599654188935650228552596949843063894549948738023809338652737805399374934305230426957372172579776162710864098022457837878882070131694661253096162628913865401703468704335578572278221326545815735893217073479173172093866338050002513920508647802390801446274351408294048024271001195417622227282000747459668300108825522869432979756218142272765642021323792400504290960295982540281242869266702483741668171060314484293060725033310634294771099697783411176300354017170365645302197897060318979744179288661287060250069050981365267883379889786733847083666376411599427453551279979855700109570746218805328580262992065244844069481568951923477338988947582883675643243596103300376878822278064381369528878933929411394615100332468790532312431103928472482514295632492864955323819063674645880018638729525998682456714088066464363644411444457182466613762752336041941711623375499854870381024127742525626313532573844004409654396025819320614022032176249300976514131611430330941194123784162911025270743956826964344588145430260660413272002346914561371790208630991191365241972941877596916270128059386800044352909438498714167510612317730234199764589504766528468377169796624070713993088314470507326239153641403809656090320426352720656132138525046810203790492521846281983523760577473184580436220867547801633184274699368569811847702313611974262338645706938942888071539036487162843835625642479578524606698892615075418756222676468598703945684822070538058406174495638426851437969597119058869117203944115769060953113745682229892992456019881689966832480230674980805369370197989211944645870917680489796324627122099623000099780958471978111334058079886961956962959076526005073680601369600229102583702293586594172583343050820516720152343237775779030449985247916458576593595176592478141847815370567944897002652402494163482948161609078428280626075848913660007994092779144398766965086040073578725665302958227592999821269217028483241358051871063445377209298814753666092248740498829649023469150011179435420740470590412316487639454723380386468846536273161677380484937066434571295188434831614529009556241120251659217362918602156478034044013708778102245256160306547545497254013633167504130859531362478538046630998903116186598484086480285976283204805394872796051580328069729380341873507755413956058170131531505410451698493758294336195305413160059255331253666729912103953592910509302386641186180999599006414357550415347084368653008845656739387285800783633391161226411150670645899532723883442490961478182779964408440983323505311647031190459572992101095974143382885359226950554444179036192085259208581714296265571740374146424750469991233682070227484308391422856631326043216805602461146614291470035321642140734239841252289518595445799368327958291868631194432329473672405040487106117605613388737914801488437119209401973413303232063931909213638462064992675949352827744847302701472825840275607583451954388699748980986738495492815831873904825374047342764857104887219386959768941070883675981014134122664273957313452379044557162360785028372300665047477173526827454692709092382356527368762719853272002268407462058282057694138586561759703934319386150144235660992118208020885019567793360714000626787618978985318229434578810703576726692853804925893007308119872113395523985999686665450267128669757309924660633213135758971452797913140185331750723812026942502292393764241438935194411681776073263691960683843333371120635894286854074322051587009495629698337112970609459211803036554587867812387663767071203684458384102942555119089649102996720500800936925240986612122465677639346825355579183248991858382072267837310072541810725421828313060426807126173998149079280727113708820148428682947995936669232726612731759335483091188767397169502445069115059277388876706236207590904921421262506073106490375626047327316989944582422968104867718996163359889742066530842616646068361733995902362784700632985267194957740134169731357009229607508598741437536308341009643163730693149680248310341906068908333043478584599606966496125897554276488321051862481047532592275498751793761715448353581844843878007654167709825057546725576789912074302913055201753630578084213579515933434990535459675264735505533961819062174407553647993888291300821390818394566830384047485710571164242936181855394661626178301094614298770192363625739336174637291715525768087049712443957106420842068321744130118060022506037478007644583053198179327119327909328536514456865857374896010682282335362739507693262133844548578504833070509856003203514423149499947028243341519228344510971927925540851936231978599319615572868766712571454922256818033385231706744016778813117528252635138689327883852109693923871492651299392082549433598357548030238180911400457284230023791345100958862786648432190121181172373010149875915974952891013695746800293445515079645565850753643635740076724243415623057584810437760112726669310913179632902750080567607887184083735203686772320057172570111503227577720519947998563138090389757582320092934955124906029482262147659154191799972882625259305579616035118448521543443023200584201624478578895021788477921992799512056963225237593175885692991811424974643876379645263040518218172714825494718014777173861298070758147770515003101090062975056346856281689114321300939632943844868302497107061716876942856990546653341982507324798949400106759545970649542137055061109583526216953621569648000372537812130262336139435902951338052283963899272231940968401045001795879696404424776683028209364880869375057098896869690939305514753540967845696744872981235978861215434827862504273615752475980165537068302975996063295819613734588015945243721648097181641359760909544512840580992966389132077416075620778960811356775232433825371728943155293851406579834381624033422901476310258969080957585599836115622828222226157290888405564410476338354769477331865861704503600514485915582476891687375531168865836693656273786211636803848885186627389770063171030434784948495409530447179149230546149017891479391618123154594862770838308146792878360775567933998135400280072649202609947152218780318600259279147475498066763735667039203212867202671133348235811006074413815944569616514985426544764050421203247004617196032685686631048071485611355650619642666548483564724413138650040639673834994241953520395333105002458858144654914456904638560971004857883632725774688357351470668887260166666620739511917701149270857709906672943573056954939066156054157304573986043429736817632458003559782262425509752301103313644507097149550606914237388165906434746410494304335904017402259926451454089847654624095078952135499911678461212666509779136224800530662467729708978828199989616857631618337870625126790766443764244921930937640736693898064969453343645636874442852701803680599362784108185115451872055080176335319826784564279341555484776236632787117621518423660792756626553203954894936689066449797050330765140524569632602056198440170437552053060065455494929845063671351445353190360931081136739546213614350985174624203609629251352823338170526879731243912917745384343809896663233765290946746390072298419897936037082232592641942395209289134627138201683682081950745122868323681360496257238542815849661278606438273429377943764128917297145751916605991989080263913578009969950327261007646069409745266287052493224029845586018608194769325851689208476300747094965526069189957430994644593522767549178236493597940870125853089828921568816556361299655901117538385896542160039941029819397939522435459149562883601941050916098612717506905284334237852326849502268382976056846384695888623689383361709927879480491204963695522757003345683409750916089234034020215534654910082791045515776458573750379499660803036650392811001026991461369390229948646432601695913844551055617868420600785697959825126771777653046737622975102274708727218861543535134523586647012605578479681026724291339429688445585673264418121654754584735145367014347037400389350709735548213932192604065136069848050332427359069221528933031632845699947545947211083093694654849042825274307412864076223435801493241702104241548042816083232852713612551978842713518818435908910825998157400919896379889706525268536012946910713244257294635760618339827178755122455327075197972702394595495639874905212510832539191685982113077183432399328041576176872894608598918187221936941716680485287266071118403336507646663774474310812772346808997126622376773985861099362276442254232189154232625093665854520938499569175293462122656333425830143932368963280306050441387401452491763907169586292129999761755012578405447063259113569075763443443362430097720434675330295319205809875881710401655913363397101582190418395852038552584012331550898942953764142828138512267276080326820657043550711241962489813770392124044800407395909029927155897540000248906034307375965525727632793060345752918413320939425107937049554870177862775338949832168106579939085524727947477454512023196970458989927561424461601274334225831212896680774069526236407422995885738579135279383426605849536457818255709566850750591513849079030516943144483635374282203893277605675814687518127055301245765869302550749475217377964009728996934518096291580856472406839704759094606654489437199971853543193595337760175413448572821291644824685781111319329073525399847924365581383735985424396931884562583576681297509623477316418073491827479499819837216112086931333772098591262918338978732024797375374567805525094912493634376739088136334690383267023670222450233335234282566163079593097399916359615748780986929579747399023185436226617712683460716674776408062971671183175019144630867076059028606790134729778761069185799485900064953907352482643114413069593796863661311867573009339742801671269299709461868514817774132170102271230082460180628776287218418184698600064694511422409432115718299876142699324770416162298899223570963719740686680315800577717098152277355440091055928173747298008780084676154076999081699445663074589619918650367542153122834046215636789985932451194272676741182768695749033342528393877184228284499395305389708271919594657718750522343371221455646258639165405606297488329174526029569774772959180111944837940097846590632162477371645689934867289073094497968368473457452882808660210933788524724492025961881067982899410090184724971854883365437878023894996120567452156719122271075777915259495362835238989576867940945365949741248130849631183245469804258391477875625113480814907370221998675686096750307766457672486399801910827595374568940751008356011212566090218897245559325943576814059856127835573704924671847164136488463777534778325117827035850419532209055248075245157582436657870626047470104282786524829019930778987775579200659970535014464717733144736990323420466768019989250815595272019371288449460614400377121131987542183386881636103312029844703795486119872621982508282234975195741757372371606258428175323635076126340790107894728831129631466847597984129989710074258165724272740679340311947888392687708093568770083517718449288552585882773667842640805220723061647946206953981800004987032168285128086319627778815051996148636940235252640904972161655899410100938356527937788297783822164957097247500234924202468573225271279187371553923804625141747584484960482536582033630829279555146106186919588128258342733441040273471386482302483757995309689587092303226552197406971346058060632124201196128860322856710933415676957994227667171188042267250116784431222641391866475430844914006929822669612226972657258038791787139621497631233228903175850778168649888992119117707075758209485945049988077550520732340638169304163679753541006180557560811029243559981110846460026551742628810315363617270890305167358941377520779129781054523666169872944357172008614036119594117409622502355477886658614918443732209042370688218405346728146426481345563865315757966304110015014632688181563123748459139100688284233076351797620188266455741183054864323181042041770854934911761168831485484170596179025399516227600721357906800721854353714276762154788939345649762601720698624521665556079318476498195416094595556765444785325836238912677639412908895667961145400572538011789529621305329575297954441309363715483775591644504444961781717113758869006484900973164804100212047608337788158304865242720916055948828132259798934044517418257745661901132559378112970374086436798145915355454843293929282351989856636849648903871820154266165114090302288272881865279019974612906106767561511460583794548833630875684338592689926072354170305885642614585616759859077022572211010610013762341302664347719602657540299344045091507578988680262708338178057394315767571857539744266244789539574476984608170057003544260437601657526001006846889746921776388569253712663190158182590561807425235912040087716274329859245954548743912203593242666545175750622375532574177537082870585698271743196477607697166452192889677605896139497650734434539853595730005504007294751364255254455629527029874610582633414219002316393356166548495008227732329328415820961363206872173809130796397324547314611893373276235006329757944163614047771752229418270406468997809539485543009166042391162235674997635611920988011588969526456567540364065885707633110157708859228654508528127779457375591294401997548450848780988617692868639875025360139310248211988230566938818177699609948043085597769293975909730771434846781455667128810414015150504915513262059128153875286952490259611184765403667054910863191735512999882079146324946090234605291382120572733166780222650644502280607902112062240934386235632462945778935473238571935980335350996243332204355072929947288670817067659196692239442616403806050386045253306143579762745149628368886993709420904398791317336247415756888425440717171971253856566635536176583595263280472523609318422410838127706868055922924377630742277035973531172023077878940247873174045421860677195233499491702266520998318881989838598467540721797766102803317061028435132236730759571727003245267487230282389124323585690666866262493104109426304933275527947063122166892604022714781989300810589702369698809494236555391772889863417721418816827840660508033904316865164009786496681989816963095751794814583075860875942800990853774749915197909402655380242716599687728270056556452350601218670276161861505794482123115309733776522368309900650807742253538851999898931388673988641427023631568876789837981741006146628751694435032450175377053300716188570284288979824469661006621512428643988456323473427805132796105637407650638451536782749452537380742770532959231793861504176274713701333618686940279835207405228765791587149306840715341653820068538914995288389164342997753352749069768709363842625601463973178586450068216333272195963486990681734017014160386063784499267139015938309493087110330151326290165956102279634708984773334849523103947355953761445696521630027445879141412423437837608676661907424519929775542148438546286230871141541882908151923029187673801459749184644599081175074859298590241406858653656280382505252095602948249237058162336448866258957215446645326311809752849768238599852700037703957433566912365344373406942182125850110512977980918484898497953050542315728654223452075362585542773480446990073870846479836318678129761667318316504645688622847340568380166098311656394038738925524482036456275045399924023043471976853871311875733954296741675820248767553876358287962927408938863472976062873292934275217471702643442883489199709238441339712399427060960723704225809662707220611206572471636769951107354780499700920113250961366950699998071163337981881120562925232736767876603260202777283443846595733331826120107112590801497736519875006463410460047968177588663509113636185956253271075171306127296147081409337753805368759008758910990249574594812035091251140124965611326454838825720716186977515743979640237742018048091652208040359603585785416326111964223172594580852425775690874388640561194117210528268465435068302015183444570618669351292043848667391515232123187189381322598080028297133915229713549614209870872853539647706327151558091135954993382776006341543353322889824766309235056567922173683305335718817143990366195485212407214627123217503806044493186841521856142913095612326567972704512610697613702413883649547881606328174534787219682092501667417691088774456581921756610882136004494956586205201584990213074705909487964465002538639972925263152950438245145606975394119616795913940203991350047498093893968100173340631721866702964807747777882592258516146367639494458562702378039755578843522028150938865684443898275106592408099479936590072915312451450816552729609919428189124093509352256482603365336942255337695809405858528230683454017895504132863249547064244030205961587855009176839232620939300985124279757997614478465454003548925409325401634656221727729315635068543295555453831029172955819643698802132100261875021127048073088628882203190329805500528689252244320285581079907044429267394426039621070496790828718846176393566019145428493323568219677514778987703977672779280115758742837082505699437926699228503977905684298090910218577051211076662829054131942981013577759371329379570491972998156514174124529668564153734000382383230493737757579929072553182822142413468921291481392815846205871574528655012908380809154422167712262572494512116887443992471776331048147740500178943191440830725848663399109388168694338075167690312531366300323820523295501436387466962637945952766963466112006134866103718756252203132777579376060965745770329823863782912702812566986546378154022459086902501616369747487698661484268050258995416846949873369776763133025356470742842187499301769932849125820634251183314940712283147500238366172933722875363261215145566131802941663858681300678849085611048393665176624791099188991723247287826359189864513703518548427806624734176185006473673488298696819066121999798487833581431157493390454173914394432248905791523224897912654294805572913336742347740186804571934284901037974950783973296507115037140970656960214680370912570997469963908839880930614996946946265614609152955369035513832970156159338528641237492296450924973499060452196050233105994490205162621795344404862313972395055421236386846240298927625853717955023546192452468650438867122775566332876582521366868800940180623608732838061840093135511294355062414534093835524736146012795236507626575322250627379864231367575393092724825657712055117928008059944736749646707987842023470319690501826767134042585244755431271076140157933082692554170961736630005593146148481830089671299434328438769792230489141534061208183208434242595797604408301680515914282533174815377488662105852540607432666422448210484132526591755864550630129317016849062955825675594322287479468873589418674367321864449660252452594076339298707032673827154348777469167167891226647949830495314693355352370232751753389731720896538672725013199372019731764021514448234106251784180315077132255408459828220353219363977896745449617789940647776115898853145529393252725309730405615949333938736617362562382148817485765700925575178288117903433576847213593750735151993536484306952985816806135852250637984930841417818441639985938086898607286958307987801659071551181802753573311215694464502152426824042805876173649377848475607874785110818292147824457839846143866893993301220817596211027106396701505706120187979928727367102350553271009347947324409145291504998857818933420574790729151319762004508482415106092581702718378739909628250371781404508333970237364497944058205902106366658231501942709127206281953948416920059596109252541616383108211787215746207551438391383676595869148491360440192976331072206378593492989346031378656186588264196262486145449927902271475171889069689031639044338197635534897746727586530786234848479896728168159338162318484646840699918385078494024389076580618500402916603664813708109864877484169668290094263707116808155130464791193867906076236537335749625307825672661945785414696749263321166123850307773954937765669173565375263294040682818987690124522537631864415792801058676381070715062342711301721089609986030928765016069173713167137478387120654515161913430453377347251765177328431462255147490654844104567912118539061187425627933801496258884936360788535315421428528070197995522161349658726452056900883435545729075868900503148280204494779374062074011162139221347761935182036465218581311505630539596619660915822276958815740170688322185989254073481269395299095711290107042005711209708139885419025004231883316061931276665907236156935536638771993185930701341251563087807283860712974176079671886461809118920956896259509429897475192515768511551943715861459854118188676261570663815798901053596085555255411112809849443769408701879304739935561256153514993051868687948385116374386550743949387661698783354301143614298190250923333931154038173384351937008710262367167837188246066076380637168809269952291959686339165362669060615825171726986754063688713206021833816611945612486838806498869158654497334298139863585277665520187343943071646844089551631187240335796703135176318777806574211297586813956320825604712919015549135746663050098029223939777011311865902182977477337872152298246990998558422433584796417982018639076599382946033395882047095901428339334465930211189676081349246956305811553922415498644747377809604441177269959397770424725849757378677055924588336116368702113321279006878101655776847176112840655742025738753220503179439561322984297268293664179029119108049399646480712287201357081015243443418591816417229341819694301050636025465854286046238697619445245969419698291400200409247818287857111512291813623835628615865361679650437443571588352154878435922965279341533862646616876979357348127440619300800156643875955029511185264172258342759237173342713806384816161615632482139306331931707890675186617852079267428140836520196360031895126376594508824010286363728905319725592694297274228047724766131661399887430048326531570845340269066809396949961472100840597909218010450146195796679420734732412770759360480254116080950977427795208542040254159630788676057930747087629945691645783915094746936868617389866533350388838913978581389090465876764143290470587321322028381784521537020419945851359825834413223960068218813688644139001185541322533282531073550879054288505055237357124381709427998288574255802129140471080355815671656461836240765367052080239372130517424808141040905638834960627779667263848916249330123900383006548306483034084961213156958349006659903176215520540396810866111377780383727751147630529856568471596347038383755791308809697744104500149609287430520891130528776691870511226394215590429733803213031210257088399074676446396813362515417933141665226425579389400541438668748048404203581941096431461886867306162951654997074265360892130817430121590408791541433757428119248046529999568334006466251387209782568219097216930223403974270767297900071251274459490681536181896109236515404760240719169600453276290760589222675382389635073426182483426493169052047069922600031393829919073360322296327085698753888812743376655078530590084757332373088083253692505967441342403279539922824126765183543991085989113470371528606413056329085873066490069344283369425053797861850217307462381046426749559825513768876875518794532887659788069264176353194773255092388065148851868588931781170549593129281491229111695514078887078577170601069306743298586250932947124224312649026995194816847436464661707559429484512967506108376138897504497384518354764461055697866975523990485633649058579809472539871824624452476421319965451837034094403412753798759017494415579915162541590122611496195726238774054006072656691211064582134850056220630558864093349596270531627142139661223457969371124312652249252802803172822394470006263077147790609024699343630818300578420095788854519202009743868299216075703103490542839548008190888942085979983580951208387532064596326660506259204076606668104091962779129213223349014337641832602562348097033958123373867880222528875170467832824149514997920627200789133547165070080861919730916676507880397846451768851078195874707975253005521645731502410986445346970072853256147245103229808748474704304850715194387039966384820844952239455877222030646013219445277516897746545980246686211089654079078177229838345353275335475872492252040430093816503020549124393289756706142998474223666267388864659093128165617503329483773134363491086952669982057538997277831090720298543671967915335217823265722491064188798026578371362341891794522647620200839410886812433925854152700460109549630845188065908358194082343525509592183016667106330919264662072536340896436568271784581214677533804959020296701208977210558827663048946375550961142742731577822807983608472696115057537056052704666498275549914959724902723864934165408233136016618017746871209720929740149041185833733740742822934102707767229321648161821703223093956695621879009842616212125156756810874535250062392490499584127533462011301252532323395283175759327758482948278250812712170919869805128813418897689524207083579500475468507306525586628653935591208018799346426798836072253837285308466395313052625310584272757398636011295235285986342637864749155922243827975697185007571669629399984958047292782426739784899948647581527790616763201281866969327080266568583366809590981607291084408757689379770008365444367846101773675036986540267603654972161508053048715714792764252845369160834198463101131537642810114324528716035116177957654082234104358588839665232579388785929467294580640069981142289133643706777501512441161067295731023731043018640414676632077040913023432560916354845413395875597979463023143251156350245632259344721604881111558456324892786923238808976110477233530234564009461709380900296729919452785040183124289381784326774785044482528565110057689651165402158326327680456609821316582028348458924573672370171009144803522073032581647590440698453688205457684598348968060511272919458340426701652560975673706333980797086452308973083368303469580678203770869545280852015949761366650741790767607051323757779177165275887144588056056783514285443732046652183990327823270002549393831422589606669726372757341383271149865040352995530338110250897560641024889937371866907295015968417764655101571528443413078475750208228290362341345327606379015705458728316549410267511186113158107577788591821757739437488450081014982505908926523397048250225301562791673248407468589426674553278176753533789462042795498063340479007541203046151645513464340456119681194380950314193192131371039765533563189578909537149182730590906810599942537209380565316204918935819611190815558484897272622441370896668343388487357070024312404419505648351861000374005435194056552719333949091713977823367536595513206933885791681943256262628030192580484278172125494235201163835340985679731755945751103860520069179253636412131956946667262637875810024234439048501549999248509164556213256145361293699799907834739841811226515662415787007908413781315706770460477377645575466937600556215801056692882689081149214355268673499524668579422850088642569125970932963899037210071029948416928518280407111133826830385604131318010448218146294559966160010372914680293498584997357601066703762147427638793248244257875659966116016222262434439480471881710647381685543675731906698678665379853159331698513180668271666650638708624419015356401054707731684439624455427661002791126768497996396141572883509987653272747808883890020546366395209869594238801351636384469873475049125069233737073109278051317123709888674274847455326762620753429857758214000844817314435162173994709008229348073890115852174522312840121315817338020238381872927186050726941388961756388494718726944098905266073545876957872676480308772896709958981834045760441854060537253284233664427041839974865685022830619664109800145873199059906132692598693138881943986064923295570189080038273149599030800196851247466735709612422548124218444857727408025885589927262597141480043325842171893848267266359625683944316545624893128156738629124943675630408351267307917473081331547875603288127460064041693947673404382050116498626960282538351740640704361736733077569615568864926007111378099674717107329205676543053305375328450932984156108395256512216223763657672728093467469187989125029782282446658725263112167636057549881682621733331978014185206078807865013333874247694700037648091735685386929862672184076644773675028469792950733590697314461579647623836164508780232660820450357174125883416632356398422612800304002318831121942163388192359109105062171383211464046874559386172268630381075280732150159485298706801727182522389137586559537565504948421372447274968814663653335282337236224803859679551206211206535993953739238074171550253447408440700010237810369137851885716433741361122081230914852297691361401621492603941543825069933632611138892840878616465365393658823690366058104951753404748355058492104627000962229697296464366201996453357451157333978445615458752529044017214856241501190204338870787542484877273375230806656292100651031677431590209736480497455843274994109435029419793907979218674245698583492086368543358922279709178931370804398042967438624665492450212911555181952239071943640040847642690319145159596235931743951997420977881893903318417198288959599365056376002923314157502003170902716960592438128988317833328228032799305318232543211697722094182064856555641855073618265270594737620040044044324880153406147096490761493546115634162843137274504887118751063503948880866530947148865915104895914019609933337539173321957916619265154674508321596806230050299346800370714787546257105519327016747896234049307413936231197699419579035510496225014988349774040033322493488650740045574664699871224987632550757473171483837648079285539976407089757627447465943597109479872271136562610891663903572540586033954942206316668308302896950931743531110138546809172586521360276252391999371274923980197838096608416222128591712442287535099009268153508560365577279172705309974435305842565633747085143352782161252221556186849950835200246358460427253249219657116489784063510104879881822573622540254518848934159311774170868899323457388243365392233353678625670791773900887460023779200581817523460940143935587399352840189404652143237334990668551547077384595289118402305303690808823972859528242144202672709038697998489488556934314669186275966552706670585882297115322540833245136336466708806204240953786038276514753541305381739352157744071435265336330263013708906346878033695479648285462851668971657691634816524373273494800957077803648305282593601470841248027318924381864280079576631600803990983099195895894510674976036481122644808191085903419513882072802844544173088945464539547080632090916794669216954986061527787212384138085930605403859802392033061238239285136374613252880731780687945747188456804730295636887879774058172587941342715115141228613589654929433668810888544584339445519047524870896246466131876249156771757404400453687024086271856266713086018008940485627730970524529726683819501387234198365032091897920642270537007355486978657281608964219997873209206233081052199790274647820167659787156031627285213367446343200436048223949400952721816615970822268384917234368894848275948053908037531020319808699566427214169146620053705747329615633143831569382104449571275335331475812415022371216098392319187719645475742440248247999937418547154514738019025427673207785905549190853706675173125822412092244044380056328204686185071436760470574332736135322880955310637387386735508043309753629508738580783322387173963708397572640639811378160452819089125092576801714061776507950070724414017018743148618863579436260203772902585397046855960258665079649768861893565478825732637525456376038205005870232937309308248069742528678191200423218209937405704559675950801188973381333478329092133756233229747363048900833010064560029632105031549519398881386751797765186279484603776118339301274439787272217263056095597460241749177989077175632212577144118774249767140954506960007712793854550466733850979677492503903897114212864152009528872759968786071743378035652260256876507228067040336268412751049967318761578153043057518551286757301492279500188013122309589189418046709536205268415082258772341634260822893112939509499194150827213984147475851892710521741172862604624617726184779888306560019161350398535932265879969791818320648642438800711477068386153464150172901676026840837842702910709323807525541574476739663889521147708536359806430450607492510497384537788932870140737907716524860682262592512317668789188779842140960717709544009522807276521040263254145511851171249938880535247403483666868029074024630405241803361182352889567609981214902655378257329399962021063928155823810044920437261779142053523771753036359978535507809411415458106462295862182583710523037987370239082065787919405554866811150737468548819392178862765727342505354976274206834062583072488412414624912980428056123829765574251084584124568071112296481884570209736786868720328558158009663421801067910089777587012974544070016601725489896388570233331133205274521128952187224635051989605508236317336752654673561373139492949525610382899936502169247510952337379123577809892966072326866879095480313455618325058698865251684309194373886086694697673951588664718886893478833259018772397575958586810409736665586597544248430035151713705187906868745033060095606546464988963353754277323098361596819991489447089509882513802633041723912244183432422470300573371161655724528456236624718490279927162182796422685777186467060959480607844807044833116898934860579188505735410258887346875849700862894631664107271094858736747435551124423844545699835261842905205854571689050402100975875089350744566265526202292445202109668508040114486593098714719241320631368019852955538005388091666573891308464041582859555683475225591975639928291456792559742720381270578300859288450543804292082196681424096553374999608931478745302195339621484030281082557399047852039577107757297719530645392627633388467181654676745856051911470246188143198737888146494322231804836963809619381156827232565519053994062499012874296496408754210869234157951177011109932150423344246301456705306180828086751707279464146103371991061746857225467555005313877920657931485532427400586392707393428195658089396226807583441014381605117837033294625643975193602517506954290617375185310693692001035583194380382517831858739227227183061985348444570801753502967671285292843775836304468891109507211141630306505018622415957558017857252409182564032650571959204009375393145553462089150534106012598385444177246281288898415447943384500371345307098496088426044277239693994995017802762438433825427058195847525402582413615063147485161197299703077979395701161346247736552627383955452843931328097492079120560365419215791839422191581329988889482634841966527270889018908794600935065953572552690568411683861439553167925298799909113191686747484130594952065393539649097318761060315384955998170664861283933041214629542792933161256286216533143788782343099833796997111418441124183550256405200813392446941189284095432409384093225184452448986815025374681535561278052701447561585193154055085479399179064804111935798564621958479884664624470097452426018222944136639417934553610554795609937607103374905922493011812259703772317812973535842785062248602874828236419077202795241909559500015215339896877191995578959269608532057550804595127486284930742409557329086711884819720231730070287083360805791586701351032177201814691029622577368260660621901719058742618754540738654782399864432822530613153689763078573298410433237875096155887907302916880099109183397096920650064325777555132029716208080078842646338218637276067428791888821387248326131824324502438146947336780789380757020872917237275112181703504027160856557786963816117199757032377467929900189252726760809043622425660288352993265390788066699603540610721070830763378087008581638790971547463369926460939279778896495721596279605226072921580768576185960427977938792867849490618616853595438492205822441041865117059469716459022847176763407272695166409808423277762533969064890520608240443007018880653350119617322501104236193833235559696530233227109730229540406047596331174089044082251921700701551050966799209192973099614093930751526117810502221051247055879811315053919210354057063666568806999754152265615177156801905615519906517739213392600698030470323875816260933434465639005506303498305438606904627550870281505570845260230137284917056417219524040546030296985023362086559176740364295348612145097463112863564681280741037051996397081784593376627706458883314703493928833532906658819837242358929000398222549723978467076878008311503123501057099413913548815706991742496032887657472752611524002415651420379140543667735631615043954115297458934645901813602872608460520741871514091032152555822166303751871985315264281508833401235740891807783372127214056054749043780547926548894334630380059019882239210411495083865250978373871378550454721383970164423968618772012715055101495304518274395713544825940109834025699779373382644791397960950274847966632562163227162644035263579661600697631915489676727070382296699876493183197650671691425838790192577696891672864177397177380868843358236306101545020570912825129802358804923205732066851749093016815977469097178652913364316595678378533762854390301954754558007197114354258779817474286374157474941913785553496715628857618109033589212438374536387445434660101079319143514302349440802191587459092132504490427753938053150402481180874785038683221116291061138781261356640700421360717143729390540778772290396835127033406289042995536380895819659525189638385696779641296323213504676360038672207871295751050070410512994176001926287466082478713779043559189993576774938645772738868746631653164036026401964092831472098868018945174729853512198971081287144263385999680338976641588706571319941190731996128077285821004023156058483693493534304459948972347354521547534609296019543226782058294855059377617702616616250194953422001421660534080466248116160173575182391266507776778954361196141605984835702417580427861929937113345243378428352488166368262825764845936020112030664225241400814982375417431155357636528170618259083700525554393384145782137811486393161480932141970349599155767987708081848408860546400086166420426138589043625527925113812053963421364606457119563810277265858119219280726392376567769846211362149585806151203041020306794893804790296859717007158409866430615500133317164134658915205875610106764882576567054081785034187184443010178842877379895346998648661406248190433528246651168675452073607508569881620083906409935248037862845012080296714724451433969179915122626988988908915593380320273146063381654562851878991758919937125649637001402053387674460365127826993417144740569337190668979297235449766320713408572089822730287698479239507418893097916711978987721707975228132500352697036596607976156207779734392394566652084280671433523313922619453413452412240038896376533696951195528474891026297171748518376343433457248031628005501401306123270240176794737374098371160252119122163396382669372601442053082284417242059359751206925248225825883464509042407870105239434611380816141720891806256867194992280701109077998948219540127465547427101000558434702689135586190168524264072551495690280200395608592096161915044736743706783188546385459784275501168224005304405163507615951411560181037102654547320508879033769322495720159962566164441652077504970538875046432835690613908012444300408627322192677162290363755571162521946214550874528312802189348661764825630728869130841851195935184677818236532939034980759808888562915403974116676973239561532669018858425830363181043489202354884594785253217123116043730529123810810503106197001916680725506051862660240143249697613948871850364956278585573809247631612543683921112814194915592764116704306270393815819187937315721003295428364990991927100504311981778962263914764510555154174945811218809257458940084503279045855547817789547454534724332682686967789349857328828853110138222074087811065442469410621740523431918200394148076583484129857293241674957033943117006784615501688624898924070338996279767233985101138687679044417961103989571942456348497297420044320903956878558143085067965676522295738539808717754817619822438932957326061669568980743574651371462961968289315062580671585986829623371809057514480060757354566671531021820797207930905600485576684748924680136053049391577186282715651912761290179089286372100127987659486227000176229978964502393771290004030731424066967227611218367117401229084799098350496272080556486609848457993504154228661551181076605115700665473608404201602945362483648693203243808242818316569058527774599114336095122833239847370198694013174059099965539391791160600178429239381168172958014528283366943582428561513871161567542459746300254028309202323286489901786946289146960400938155057632636038060634302070211075067122158117517199576660155045871329433171119706378235891228094833437232491251869993125922226653307555110509731143323789740588592517960425579118708669928916009618669491072455450134859554127499322552605185285768574041223814529969780000346232102635836188108756838140301961065251644073534072944376413664264171476996042106190320835321609309336451914684485154032361425808271721345925557881011574664813844750874972861080955648856349559506848546946074639543007274233211262536527319239315910797190955171400523943466387625722449551631330563100468113777940464907323569558783629430773761758874436228890371434735372350795291099833503408854600628187672779155474851554152379198498009193818945349698197992940166391810553715862404770328911136120344872492747768810522198635399227873668072952599212113971601594431654826977103019070187504119331385664568331253087333812199145307434161545847281829398442427585076511825361074821662999960673324020496838997163389779779664803083794163614210390390123984170061595958786384055778917557163765607299913385921814133399433220936252380300883017840814242888443341165257081587872213164725959393625112686365567173443518486974571220323171888041965341017995769460298447008903655941292523425829182045410417698917978610562920419259308462382522721604168567432762701692009554835394103965894792250612358101723650516223916881172253399175995346717973925629785293038927203209747929924165958401377401391864548930342242010571329786559055580290556604849726694216101693986155859763390891682215302866062650525682768572041753330856580404194221954481374601908483024738451221193274526553558501419164048234364033213001529298954748390924282248132922120303633498290965249097134972490273858587723223671305157212739976285643515946212768922315908641788508658527079477945256339213945730751359108117291845507163414521455076226230373383007020954253415010407351925725619126579248941207271665216321032374233919040109724802545984099300948741117112391503526469754778555227395326715453653901647307992185593967956671365775239157100471793987584619499826643713151722766417796639220508165459496119823185027588650530420087500750214782299063745433271027591662270440042402670383784334669109965654560967574347227053266276912106366677152068663036478541450304223211309840647983389092809381575560005736658588301869862200336156046679731491666562102173316020527396554023728466147795845800112252690432376729664379971343676631485120309115436190835185183934256082909854049344359099517403509490117196975423716500283049355806483833001369150344330801318289787838936714353544760622344511477269065727402160636037548982812834436505935672834041323038725926410583017466070217588356923185819014726083513547932839446022016466490217322941069980104210924465255249259710070616815228714782005160578855513648489145433194793241551870455419753842304152840919091282918385697258584303208162068431446665526641192242118504766569244522866710830874506830285626853124802943081877788622258050301985577006773146785008253631935461128883170998834761725370416787364520163302458748569846014317728472984238174229067523337337840877833418278904011157378925209694877170423207424282062408050083638935749877074964540878794583495666625607016023119933423164204963001703927656140930641875554711813376680692862682925719938606638087190302674053324659116215977824264153484366872549993132830209130377649791399630283375318235589145646636793709997781164043552282349738341581343363639372832879628031108439623553540163630624927145042792761203841305510507842598618594031161603245417715125097791927690148043164088078237060533591274593650679019881358039653133013080769538225971707508173802678373177364192744441023258358750674031405112882774689636095853779490575126736370996313819593491616489475242802384204135681408237643547702619312399343122440804620596140894082650458096297565235585099705162798492524005401445537970810751699922953470847641022158810000687418477442100422605705662069343899649346032689289493358225850203986078672441545123075910812293338806009565635636824539680588661292570189721246069526963097489131930127330506215936264289728851741936311912443761295653989129997062500255130073423494156659429711367206923558719438056245130586733265635630100591110510111848947491869559696354195381405588305797477028248508948326922376410170304100088732541970673199479960989716669983958316250122469118884780771831833291969823086832977154254827580215233535404704351039133704628087231035201768149422616800827006872035306203056149100615833134430317253159795343578683787406534078037590139786765013998093785828329536384433006571004720724602449838665275819231449468021108099487397329926701213018291496046409903925626444220653666522911669150221453613215096603523034107465844667262449988909779619344603804408973993412482906941135328543728314910037260152311541149322321764016823930378948244227830281930358628662114513970863476271390309583876750259613031185328995745938313017155279534948381735837613648733504311633404561259049663255356218266525320243773787370402741934351089130731012309425312763596734726247113890046691201475512702060121345868249914581243674031640283688358662569252694578895142255294543667938894060927574286507906856422309322349693320878388781369919096565023221555386544991929116096962066371456381749045531884996376292533842387265214414905397070292449901655374465198017185753103440133636591412275797465387283915435278803113394667673445346250344709716426426184874398408497512518846891269784924788905891257613946750951598265061286678929784862241687601341990613190653600348866184663778289456526854997997858998000732449117818018001038641608534137579972335474967524599758668977623175769611730530110861146099153552183629625390375908214983627025052036024497832992575441914393052295291635498495160226065901151867870006756070239499913725949744786249754285143055360487280602585999560451128548971564017966087453403112646456726212681239053362794276677084763086361779606771607420967008512240880609523548562407663335172751506316302902263544778357589221117440407041940781442903472834223398887407653344625809502723622108309110800810531538682034728291369731844945906824813674079852250017591927852193010280264539493548054335078250215604554719534338874109411957027603628095973935275676394618166532349641707342079235883321963167819858639312577081622777157647315951447598686809815046863037898061763750254165030474927081857584818933821276482015040754774360255267582072797568180440947497889939889512130700728250521102995159918370670690523558760847049034926095568390125901007896780887324604673620789429498333054879605941260140776467551321153126217012720547645912872521868894579001664136964545868160048830499883520847517859051166240208945207600273377307454172887491100441324531344809034202764072217096671658682767280887528226446453714964291434839683437399079686231623514264437032958486467283953109501033799895514492642217644746815549372213885096696393803903765111232211346416111341572058715129241508684756558443496750279663931300558861637161242638881109033721849770767996354842206788107965064274377360003804842766321378308324909766862705031571345413649741380370362039601558349944579883561493848325001887446974410917136158867421102862297446152964397183181760192002879848006380569936808331989095365009504223382987517402083917959343768242532215326774412173235263683339170170616409914871696488357097761403380337856546506696235618055760996676000473686776592776416909116649836377500942881051090265798675531329351105358930896462774022102712411803168993639027193723498308109557353236273266526788288606347626981957611047807392276359555179218988267364858525527274620385589809574643993738030646602840207434475674892398312611658163846811088191718154339559209334487634092827193307505819604955255708845082339638891432699043710342443971050335421030107872761511194186201287034971425490433789642498470293045882786847832338314721272656149005207136376444709392425478760534516069674806525686692377040438070017705144278684240897569839643003045504672898498835419403879472522016991001067615100047090184829822643503754381773705348278922420241896014120657301413296372758965087713539701008729129247618109629165982261868610475930377696992548363538712053244448062420846229149986457316764909657651616964609797030070840847705190999560195607592920030354622676665651037739272652608612415612549877053141272347995083732783847978679628077227140899962702049745073081666192206492391113247395464404204375544400371524072873713833705226319025390255499072993321744772821694108148300808106395043496477099256365620469771439196080529440102986439086282452726324110950177513958474561053722622645189108895640543880472849224636435414041173441965538060402471910085062180591269472177283100069505472284936851742450127551692936100795288448920857365805509004885433393639571238989193989052402856043146028093204653014152406821918480205858409825459091233560165997716392717307531732699696041866188246367873154548082262708617814409408553232724886167801009263189997111324637745294376518419864273673380236442748825024483477022033078997305510444789275525167710319060453499348549854721123596084376460769915199470568721330886777011969500856490529588534974126654125230789888734262883099172054443671721111319589755359357062280584858624803327003458941103117329066254602168858087536582649667221336722138728305556065888833862921947838257857318188016283557261619091326015548512292425612993436682094501332866907630953979586170427422484083091354527930857570653958426346925750900034264905471792684619322160602095574427056909932557787444985209528622370875917985439440834024884030760247857556009394657324350287412771603955258575304689193054660671581220570499302620405514178956571437650585420932391540350123797536228749190227368546350548891360340814452382672826431925352991777499015107005414968211115028073792062070939499283994525464385612244931603844447477882667529429884637989498171312662185475162232240151790736117699367589638456585290261484772989953640544267043741427978147178796351831643596674453022812773696908010857318961211114256687530713275579736462860340034993406714513583476344627150145759162426448799281818486733485098123144048315197872554240892900162881856016567933177160967329294237523253421661981882607815758151282946293581234717058704891168464461640497183564276737497186782558220731708691169271766522253013660966428485404269680701807719293891043971214532310958695999541947467143362483275741531848119941363365360797192021865055349488851895466356030828151160181146248168305009095593769528208268492393658189348126390490420359234263410925629233504415966256326963561306847326159805357453132228805527806291881601842019218342026902557551704197259624007534324411738114752868480208707556714441360445606380616795598872177072111227739932249943875542168413913900193598818175079107456869041095993325314566318988056494340476074011126151816906360247303450014965091938758482071062147553626594247618031501528906786341944596842719998694168439241638052120506763296690711277810546556722251433912907164603501211470201138360343685161086979269058888465861284984665312944644139486882616865950597216194282359310027192001627373199884179355798655076717508366025561329524340485835479768126530633650165239726535467355029171078629428269581261488822385734024653042269864302192734469550294287352458274962543118815267936535356290650592875049539438536140738485839555272465484425067960582209439704058555947874450370160698542497914414372506791393712667910440647391034627247728478013352616465349124200453906067478664389220409472448720488432581217374642763653717935480764576755049993639613369152067526648832049685205634342819123627433858070832116281369408569789672008305064764522566868893167330959602516621672676344019049131904198114866661094317464237479898129387938331220445472071353503591951593012329418365410252367054633227470258279631108576924714854063693926396003706734064052796557706434769041903984279682828803302669290145227214316746172165288354432088844533137208411288317770456624782483436944684489203528316922828066010557601007072429358852984608082706605167740075568894247418139211696946241695034758016297304681324285000565034069770273782739686474438868999351940878872240065648983531340908570761639205188152663546689823698899007217295338634073772649279082104496527809248893626194541462287593443399868007763630695236082250597522833817934996555880303192220802990391607269780363046752829034032848938605556607578401801312494020306371705714204173615864803675520796685174258218120822060673256609231018883544712769789673642276269206171330513992475964011696863660618162263073575881521139557077653564019630926002468479656480655821462209805590106262958563778500081734739091118122577733876647907336047718798203464685836996054772621163770604775696627836010540913945837583267219471738240085821004770386898096523027722775974188794040833682603389489323575324154809355159433943067101865729417772307231289626497117898235712490963460726958795573108580635417142171465241273993298075865694750831958067267767414206075772976250924361179684912258318638645161185786697866451523993381047050023467569319766299645256992561003046688286465620738032707399979883830077965638351239535996328855414325946707648634655539029021797622882688942747422819010052981185806104995005413981398060771709182317906001283320979610170334050059085689587993492037844029891694024362698903231969198723470827655986206761582879040434150627393989555782705950737957158520807403632947559861969130121594616200782844411248033670325245497523533680991028057389846512625618506597651620235322511807102039782483042875303647286736534510410514536279554642564465648570702588328858420948145835495407915045634891511692578659134745705058016686540218666472281761411591633414976075935798382734362530635482912615905006033782832986745723961010493567073451972649744433778230335025952429735481122633597596449417380752058858285434399406899277300075480650744287059077848029514442839636481037254351396645304655412181513714437212744814938708098895105864536798356203494294916340409957712457709505639804169079623985246859275859197760759304807512366421673263725876523896329514796433912076715849547697792167304821383930353347719752568362345329411494626415636807019667152372876488100446022313786989699693738790107548157228047740706451130457529507703642755191967643010750352463385735588351341047289559279402768981702591165044632215178309579282323184837579445716326006013136163537708472433861416653590884515991938956310051224089234783592553445536448961350558057014211091441142046658099852112218702885644522685571558826807730916099237715301072988514959915827498803977490234382749052461154712940119244752683452168334891974631262661790106004950448796126314285181043140189303589241292566684160444326347918682908069540151472640504468867533424183804793100266451943605963355404079855411327643042714506020104141172040976885360128168526929943476933333978603986639499679451837411232079683203858294960481606264239627529566813927567867920957804000091505137956831638104329394330807741590300757269001036947326280583082332429332427857642872724593644812825911526505551460556785975512548463348678224472627139341170000839880237114398187000850050997541310716233439821504846415211697594235022916571706284474558187427860060477144861183689900604849906387791429870421547617299412260123496225493655426293418296581304358020480124558561093333968095140341426696191205374990291851577127670884595023105473479843979270446041447715285224040687942775267453171658663289757175191961644215510615199379782757939496193583545418152376441555901875745650299686225599327384974260863472182429803571845897379889362491702878184223783415247871880302563930231285880957140785547522634574599327882140924189833808736882703941046276045088978025617762920402317998085387475397764418846375290548720388817370925584633402254559802863323322519482523366357119530609502830343478289648108000542955135568483878383227599085408643024606309397358897796172768808727663232524060490583719095234681907749002438939666161560292732616533625205221050787442581016550798595281535007021843953336512863182871203318946911596333292942424872737287003965455453080983671514277420448369408461870606229380840420739391645848944807902616063126824617278917336068470968036374776511977106339252089137588239103127311185235530347806257680631870840662239470294293725794476603308906868233546079468702122912798326456654633106453815274938345066438191325592340120761029399870138907544813798655301192155465716234501155672622542618979670319303613750401659536641425321656939112024046579311273193422501638946053867737502011415996222424880961112679088404785061511664840870609573406637918563189296472964059963278381183761696148199673022981336925829217920030610420905780520308253215025055839223555093485187493940713976818573568324901050572214995254013859773537202048022318770416971079504995765328221167121774905702884821833938958945004696501917041940229230890545769976631547010709183428858769216840345533239582877157681775145288373804536703379737771812998454004946987529724658236147601997925804880616359645115109170667724169978654111867016171773738850292976025200276587902387062637573302083558291363653463454082235529730481261247579508154925621351531389930856104476364720848882608496675833444955497503788640263448871290898892799446667239762766433635344916803547729435344573792774315758897862079493556065578373386707009387217842345105863700654670646782343649280613786127734313930264644752089756184620340493862594636831210680125720285482795213380239644126522804673919642390554747498814145519712440159186420611875551260797100127144485140157448395948055821210031084745564207352879611942217072402483319624006554427081763459205933843234051551655638283566376639685840524916790183211829511601977091044879729133911832042209653207868774598574729276618152396205804951442139096166011577113211136417177792670085915736656640103027742450042260630653912843509524971800216446884474749346087843836579501824702846267950479315661398847144828822504641291435269806154461824719825862021927817860979395191358363149298124776686112556506090094523030595483223502457671689642939367242532601983596216394372432225401287189172175725730761519576225318887145255138667327019910763752982810517441190739225009603168751880373607473578239577857415752899544258402272141237056455645055909792836280061068906588871593633137724516283222386105192250938268963007180933819938386371354067909730529082126217058473220582816349317478241607494446921664823347357420621468422128685730099797934453083131940072102697801595544303104784615507000485579366115117718653414329549418629955253648295193428759968613489917483419994941045686624701254064292357649357339395106469365807031796291619780193177941205877101494110909107639331701647397652986955296475026073995059994855621851639927452571965516133456172550252675796486201569021815357941126918350531799810103132333387319503570092855493698026710210509787661307922528692083192098353952868504133775716400383471414896325885951852867234656213042526963202032011139362698393011547719700509217314186299745512674512561471611888952702063147071013556025395389944320827785323359251069358114898184538584636270783959425599653502453036348778391586300752149922196076151487536062515703680869029954326594662831691892763832734460312312974386789623175631626494718671331110621080840763459966431402865057833640655248084130503927635274452674969612021915870056003285982260978727637434627950668996343548104150660217456878887570138780701372916148813981340296234868634085013408156894618896632035004940081523803223897467392962859802902049210565462316150899547588364658598454909987254715587475823509224702229118447151177243153917199249300313455132480408687105713521754969015542287000425507082405973860688433575457037159193453021973426320240655973050843705938448466350364643807262708481206802444803976450773494163411787217663412580830551560900156773276672565951398421570500588749693012842172169509438268843905413648305517059175545415639581446335695387492036510301896865163385494371523208765391283984837246669456893940687392487829871527692272169914076859180616820583602460837704215308834800246165828436953711677449196525251504749411005344324115964033636011047532637832959990776570763224143259843881583887926839319647686262959627926023592404702123014200702129297601736905576343264488719230130975726499447229801030520132290274281008616426544991196747033319842355187413464219807122611013724105861464625066271000114124522669242751256297382669030617597708900567260556699428374114045725257700150829021658978873046275991177585248531542975007967698474184474898507288175676814230742292987959570936451259574786025194491809837813539525577120814459544093901719210878866929850430680388347006330942894701991864109262525168037808746565049472725836443970767131132956420472335948828894268588648960857031601184835724040861375420039854238800447109096416832215181433861985036924379754949185567954302853935592028216791976402713310258224005472922211476430416652663261297701399066649052431623411119237068080481521032379152318063503541758476554136784712765586446754765055773411930701060661263228122063574184672495423910557345336333048469574857503370815045978609898574426103437039218402061820571701062093499768866564362612164422052829472365384636809122184427034366567510294290501511353877446176496006482784671842302997244379315399423088633621876406676886686706858807255181554302474398924075177324078443350197123676003402486453608841784742865032904093689354701160965915875485586974311740317379863494801629991594388623048642025241849713831562545162575868989456770946644196861458039218094417254359986310155335247091208250144183460242164862946911264551338476433078372232575569450207864688245947193535816470012611399448519939650669802663139688903418824188865948360546140693430012970686543674232926000452536254313592934986983706983280714221358944930493815190425587278797129214656811576851684366692627292641498309813500370855582411741351902759377614687806990766246321237947672984447083449252112748075006955628923519363724797158941329964628026513774599357161894171463824731591631079698079334347561238861322360705046891984341068838848949002423793057553023587619410914055480841883925861055431048882647664530751140690791274335733943486487423517001263054520919422914045408046748672434655428799099661147290577566983208339170660259904377395123447926853556957372247042911341860604996921638459662995845111276161600454208020563904816208773994460418567801048904678453064436102735571440594674475164711284198480348330796464589159577553393641583404552407788066299718135486411745601248887540126239387046838044526576162534955263528693300559583807286954128233791955078707978024601082503047378203320134754051462386902528699239096026253235664299900382554147628228842562668788470208826002049126668731463580413795623003477236408929414154895309706740355170109581723571323508476594893905926307504418518452186218134117317667862461247969241277674982424012550262419430646570377593730447980023187705068300451385411758299702552425745250939035408776055586501193471164725945578967773452883242221272897689476579421749544465164245009637465338284398572852982034331741162684957823793677838217505776801054264773228288428602523366603193432088113406345740624324109208189689803428823351289271298854762630603942138326111144093440646726138702341239597394113523268016390012115454177832551111552312221920873759462990839076997718517709184740462087880549313481727011071776984335732323521639865619222976538478491722206472407531414803265047015940302076618789667903340106015510915082284298121689391117185816986332913475283646250601630470145965541107588432227325841208173775336659732072985633258166067182875117168896720372726935360328331547109120297101005583132414279650599100122884856515578346740658554407621305804308917753403700974558198358373517029610157294815231792586162868953965486477925823621941669206485422313152964146063609294762165500098136534893114890587070419958746141815302735895265697493806737768811615260549395715347857248261939227455609610323506137182697194398724020861905959043150927465046064140048554554904257454161728633359146602620785032346265894212131852104234116662606784878586800517727117151821366666464907658458406999183542964841337677201513915471078988295794663554835081016427900449771869226130461543464267887036327551597335255121930913644561051818277024423272088648626181880448138998049241443272706691313359830991624649970316904042555334243097542666300452442948185065177198857604918147210055704515937109296481144673089957363168220305421750421954122211771268918162300983406166958162897299436704364008525679393412360912763205623526098103976060301558313022935051586938125053441213858841728280762584252383939609660792895712429157747893679396151619420855123796094762124517060843252256952068826803350519527634552358850505972828591669096395284779781051567911738871557725772693197364872820289957526350122305498654840347853788943386537574265745755461562830935719779457454687920211727198017689592444014331849709123862568388643196619888953545631958081938520073653915643114316232047552975761005025478581430737950862395492952563904240963293998730305580336090638983048398074763700405318254066238215163843413579563317753423618486851210989154642479107258335188928815589079468127789634433485485262535689491900143000088446403246352090381763650909072446115673979734985231401818909336324462286949129132478552008040668793023276596235737399755276557678910850392525104152380462318020442949283882268443248802967493370103372043500084460436029100734611788883655275941429655962791196816866438344433927645417971437946743972075085928566677833713689723006217326298146857200500903223013035905451209845694708342298387928085756581469402718560642811342266547358152201237049448740400295775927281361392668065125194609357428831993965065339522891030569544303126218852673941142038113249457320811296180087607593157934326801753947288764360120959633651867468553757241650027032164084054768529081134861926103278550614618374979801589776097683956197530548260217970382915664774082093521244259516088199579071604070125232865627688086569753456636336245240293108847809416026712752604355373507925455430547721502475802319962007939736311267216209130752422562643767449624714350944010264788666516815416659371796658699586683834277511583680034716224815228920320729324402250188335493591950884596577742377305396190390846570401940537301874538200952949389668113437878882793902915513675850810093435296729710553855799312678164416125305162165878620645376734821047913722760315007040820174472016285933448351929686172022196903286412538252889270719597540341328515630372913423599565224618527597456662977079843603624887154328152979124563240905710922519322956964187002237103054857127073365881056204611066803015489907141966428395207062645059261564801681654148094242820170312762528890668417888143887189073503695159776047533885867224847130943926146064075061103383709602991068019957957213276504128603857339898380970768311869170078686539407371842619907449561699561627451602161705516538548749335066707718326047146058207298972769291673168667280999893874652626055033943126249028110058490458865578311962769388345358588503111421919397829663577827754907219937958692513586434262601721988635622549105739313075936535461682019153356603992941408436249175139400274022153245896139299946820367221183818733261776440366160391043809626734377856704930317506120647536369058715552860459022735186382485717806835454423981147087382359352043540921706577778826109916488600232812876510956863516123932178216720058495016756237518059017215671414388580997234795978037505943438630485667022672085717535584023445681853604233516959417270798802446835023991783734968779326798768332845806837493899572523214755375605143329089366028905141337285908670987926879779797847039980294986845012911923896896472048052688572538131316030124104155336048737649404298469563360144751368397140600205149481289528134294789032701293553848050371549778745659771684861666317744584789907215265939465824385986419142151726709384036447185886683773290862837174561870649047988680578377753875499165455770343989988670288164378286614070830546618644082069524823867016154249146025652871219765522873249522038973846493698487081570641113828090694791608563258438098783661140892727301749848526428806152982186151330447442890286991249256566403124268172500216556096388657764028751699130945742624082214009771646015841900696586378021955048297611787206206928425032072155023919363809659738364598781085794168818727734392816490852489042651449529156414402792976464313314248809906187582481494375012082549503275732454615750689815925082857809260673869940424802716384467607051428739682871227744774029366192312242380683909409964445359908642091707912868662456060524607042895600774537988468473260811165978846282310672192968378059650022227402435850417293928876051118487500414854856398676691636282112303400617645269731245195624831871611686646657383505474259157411180834877618732715052636799596943511614422865896997933016915112641459817851856748655834401316361145031161803629181000285143548991469389561118753203998204493040495831787868141204403060788848958413355908214969111940367999230195953048841952041181913673044407929619912033121323125103243113905876118916950509385576818005047295276970711113237420161212958430890252328901754726873366559010741359826283661444368020426500749691162677675398416635847805505268998554518393046785191566146541590416765672009506622504089735443657231318136424558222543739629957572347751728700647001991475281651190560903175160613194868890671812976631007971375152628732365714448276854612506156407499315942419943373657386999575793313874150092302743615780167719227704529642803254047047581983304420243114499521723288445611768514092270291465930653497713426420422172016530570342374197736790552958526515696030849411333458490911799586330047903243356926525050809537104180080933504313512842720622892427234541110673024571274256358490348720032932069707945404818548920306506314269611564621850316123220429751528473562595310170601175739434385617154446570641104070912807499278017574148516628159066077051183118860868571560923810441995468757968008720132775602800194894049677313375275020504116584552985913856508801992504032212519964525389328136503442854609871286537046214531434219418047904196463122524970587909481972887287274240412831867446538946593064900985654417611448572133422591866601043738762949532646491158190121878035295702938717594633927729785777713968156168181617593071812129198451495315823427411873125706371682996413656062115683368147745949798687570434468892724174325267557291943086218577989908288623699304283781249264952327644388438075296558922240529986738433126643209625533312515505978006284091754802743829305819059125086946002960665671804108866775805288606801990577218020206469840180007248740077013842509994760460324301136915391071211482295877425786265148402586833039888713456457565389554961860342831422143364268651119844508071181018771644225130690891506429888079910878426979791873616022012936627784260257346803155887618951209900039097473695154883689121631113991842989256242219484704502822996998974866435578365878062332020800481682244481521149005815527920192252218055298449059500764448665273268339703047542713553444978366132133316985376418501634784114255239881250478874763236460271475562940827565861061405310370574030353737813689956750222128257625601060621784147005310384044960155322360270887881433728609767498766598033679154656011529680673000371820313699654343450462500696691557849050976703149472616210442530880693303327137483803241776150518122889507480357947978426207033620981392538938275121209744980813355986553061886686315083217391043966370392701184839572710080533620740468526338625679511373613062659583389168538051604805876770896500987338934626815060021115061626707920869272242480175842177758549213580330242617869012551545680663127713157432742066095774198877930400129747813276837407246430585825633761523787788398611098291505278824832991751268426770260294191548909377879517393169746098520009522132518360364949598788922877072953409332263521185052414708430710480930977085650053913803331428384393807611874566044064279448108222487829680013890487566656400765965065370003921602495492945885282431126437228639215888591742830926690096688207085179409963237975387729116248944061832212385779762618795876268875832694767224339880444250832909596587257382232982685908436076481232828595262115116913906354005561272111108329521994484628534766927271500094702728069421410778125878337458318724630961227051042548008974481607958211262331447555716343903295965156500266598877189578723972918194586011056054055733663398929777248790652119124998540164967049663159768262210442311771686543267097501791340543974888900920026834732815930560369150230575501342827733331174232937086546873414462901952005100125712301131247231773713970656772955490694506080422957705420533349220763923174097501467620525032467061862277570003718596665536628165514143202013336976616126085461380752899906412838529329733230263619900538438213234668175593415033105891485503302835754047981479239813786259307141725138653325965939496256886510345131007667560564724210270948795313208497408424673660062819083075114761134963684719428108461883262446850543440055756449989216554690683230232585718972694999363056710259511130104373108256832695291008821603643095634606168573866701619639277339046447965340040260212986508130493368709848213167219461247689984284380746978494943331543225433962144894306209138864248925817407065954141546289058236668000228087231900141247188867207789015236362757399922561134450519683503794761504830750314957411622825648359165828760957282943293045962731178874747449773091043013850642250253957157633021387628824261565434207596173143113437549243910611410643957391691561710745100844801471045589702327453364339792281392715847092731254721838719321038816391991191558460573602378261482807863109282867000932762523068348864116602837369556818223186563137950112777604150151325684745625569708754123947983878236698256514401128137244742274191913488386751120768397621769722911926428276028918710622252318207491677885530953441737605403439414891847437504033012684798981271710317128781748753803591072182928907752795051934746950629237857213549435749104788530224867038586068594853361235988010773550108815960159904056647450320301180049986218666482078275751370733414973380990643586224526656692617009135398749229835759372229098238297426716461142881322252239382791917960534708528584393583904873386955906422525530058709895378302002918429802527429625929384377177636593783894231552007885708506395980094102753960622356889717735987004379569964909719765853629355675381606916831825085443773881505812641060522791314659631884966144924106500313566100617271232463006636108303212661955916982898943520156664603628867723333450097885780668335557959046863542785319165334540829686751500193970642418975545207984551542256404820801150125347098521184514564575080855769214608059449514891144602152998236018065983639956100054047544512716886508120784377696890379495142734759195894334413743887074789112922762220326707529543605404769300042219383119832575429031213359250039280444662723320472262361403137338990055233465584714016291801149377551035744403353845655204068181598942607003445443313545718811434443998161727171861887783074752910845101992091076870207217583128234780985880024561504488551493718821098867450397335750556170950540355440225403244720564952851299621863914662468918312684322292150924288792059181474523073969759367111981778407487987711631578315380951669570086019236765156915877332670259753979821231213530727130584283446622966361016810573515343217671055039317269619521443034463345791860600765612876216921049004281339886666776748771431549971647601331728090204654718513073204607669262852012206170603525477410210850388423760963542321882172839939219241957738687117800591770447807178137888513843981020703916668216021980698814300822623537584126093888422261616142404879368828836383676519773130368371847832666335976378119434561302226849194909456478848004658956886952369081338812290644587658945000714068260435203587156072259021153584716784396054536499748928103629425979354722214548724885819890593395994773597100597573174324669615172100692933837532249741602100471742759194573571981929044094598319162474673082588513444219855122418891317801444666480100437249022938987963604708413971974511551053862788838100294132046856615480651170524746020894780037107440586484248313765674972990177011490773258661962940136864206141229108002558148285499187038716070353583541792080444513258963249043411446634382205419427003098887298250419021764597913081534759272474019868923270960824230420582565588583457202905870137460937157503452362845260094689579010669229215273706062753876324903884807216750946086744804366140901066745904824528065823368678967829121542111212268841042861734241018066439583639331559116431351454078433138639388882048581586928664025448828849046284009966377358802318225412674328932914990774687731810342243593650775343221194755933450749027577256543695563015534917566761647918971851032346612661403258630168419759402854273070729131579900785922900881719449444964345848897700070227718490191559042929400786863062359703126568969742299574958796401776559693198498124272534824471989906211805115950189926658452011860946118690766312599348492245577870572200714633014191833607795984509083695998490218229047047375364841046642083401643173592891872932456465946421198402135156919965805130767033201312575493871012307881933651664980915167765280161490206707399318895043542810248197521182598361765062392101718134694070995724952158861402603513868570556275757093387873810840936293906373343114021892077336430689658907392745471256795201630267736663494310058181101384674477752509183451581125754529373186964001812273446539021787510394855966677039141578412627011341898796034395308921888789348261974943992767092835652106904662917941003427897962035903991978511684991472731654052247074244106919932738761216779717808404062932755167651659524050274154335144307115768516885287631634221602507535127386057957047284226437021810342702388342071878205449516610686579545532455481009237614794486895720251318539089179671032816886558495890196755967806779822329268390557071776787283490405012312033800853240330155770951936804761448623958057876230245606501206685107681142130909445765367751233948962473762821085573300131745937549870523189437120159430066111062176253238509454247867101682251075425881214382363233438996529163537727748937657803433026660937106396470617282618053529310513847811416625745203063079025737271569771875451821838012379790229948708273891421116144352788015204236426663182337612720821212795064165915791700899010210291417832437940972953151912492401691683691616848755049423907906806205099685817543656325279937283755866779164063560953190567042275057599938342454044188236470455771965538954520458443901714833256562218677523500736689750056734136968470495893799458852963590921687680051551265629507389040179145232777132455187937521477034584770322735315944601843226104552244040900494206430131661871214361189143687784792545617571278283795533978831543926188711548406936496172656938496800180440139306196888150249779992192581817629794326284399821417331363820455602718278382741106107679291563875983220210831287910283789969100828572905450470648320772709588422244690403114449527835912439226102386588394135946495972436992436270463635448023728756217097376948402084635299665144336297622365141663660012063225117464682435796923052944211907034346333661885301531141628664915220916715150916912368455067691083773743870960396712420395949260240090077815116540250535985458287548596555730474065858256871979212889214832306510817823803590332379822304150819661862198631371476494842697403979987614950084356642345092062517036227156358350876384736309906745643321061741151276812856784993902498907013808082575350499920927034342193939993931649609814107587488154013159067987960825345356814842393763320517619977652285246895576255579268828307400694398097683722260346464419113187646261410884418681144059257713107254664806132867902081764791212664365687048286007583290122011730486962417926849772471774645018309378950342984182191503512540269362582147531476711293085746124691805264838412058125433878527603286901836447024512130182943782233955221532457294533117167821888030617869807142640703066577978521889850213773355526838316667449348827653751346466711712448589829133595241387837543376677303413710366178403475672625728226173669360153189290521660687986610463964376379130073040347262569233520487608263130883927462991721638421552950620821496623478103544608769603030152086510607366782481355101411868386721462891881236903197402767671742308583248588022902294843771079133598905183146148947826261799732210822453587145987933097742646906241686595417204349042127989990203074525089739354699438013309480949337194195588087383616437806283216045285762574652871521866875095684244825627154331313473845105232259334825968391536598252783975657954232507063955636562968443956494455628810613678876908398022802771110046938999962602062693080016198144821457647374665085297885301082198546676251958716187302630878213624570685162585014538624600891270066598738293001782714962647064432842224708554015813247773774313869322115221336397023673651110901955009964300478338663219767305089967850880207890352312605778392185262844480824362246914647451108896246344574568295729132657275014846188752261861815461214027473111727532688375295887193866180069010107985296154158062772051909306673664079597856484582563649055555801873758816482830356100961965896558242507296784952362200221597175119665873256117142633457300678941228835025453635530676032231389857205762036583206108556004119995135420304531729594447149782202280216852260326868606425025046403850669358977899622279936969016544492309139960934318218019984936283378255109222115892845479185086077808177804387223765967507169010624166499936037070366131223679131438462612405904160905855719771777012813519872581545846652746372142549869215982475896073810907030366236645404006696184845657798832271778772601273050365922186745004074717863124109993340658126925347281096193912498463947262633228482514380203628938923383300679104822603641215371530030774788567835822151303566391779189817940018318641436884569434898697408463688163842382724853880355539176053069064740648825756298014505785803531959817185246460728089500670696694167963830236399178147211850724574011539728517161333661798728561070305830543654224135376669519962837272391180525093241909017461978144161917605800619030088832779865806970032870758170062957501202740663096071888550727831120598634331154842496675783822205486818940091700457885569786371907971375047082364005606329364805007894160469242241523324529231433767016688305657022447912442809530931970244414988454469340502825852893267389677260199312205187477454975045925665217332948940937601649625530984625057100204569415035043901057152111362641538399556176649493313734133020052659523503495672483462286792045577810054768033099733725611701869386327985567093972273591734742775230798476463367871690400518492996746696767554931004939854049958710170006084201164282507721666949621320521005777498644040401922841671108536741898878220834418441864460813711160347623238880732590033001231049533941155719738334450020035710805710309545607625310850651303359643441145092788995041543619537926975787895427116390140275091310308440388111649099174507897808497167512834179596674877456645046507454718403808174856749757047624139649560022471772854893101556244781586692688293033924076866986108133485172698790301586489873299258851736189130663747547310497247566364453014140792244736869327899844499137679384056502714565954959893992167249028822080768417890719430898615353910659198176888620348777562044948284059970598923082359446862725935095319680215567470734686112437026891987207688130376483365076913676173344630646194892390372988156037500501376755643299443981308240668566159001405468350497232453376206467487015541737759333377035662667318736698313220917736836492074291872799621992398286279404560789050987701499298063811984525756151409948384168163135259665485603201744890761704139981663931972610056768431010647176276949376505114818238346933128983588943476190865778075430721986695744289696044591768435784491523420161709208406783054108874202614123834034392022805325251792369846458597226738057442564023449291981490795101790171175197188540105236252889567689638364721997110144590871491664128406730559345318711924733488087676090262414296851331838970259641229889515794779353609318282465931304162954814002320035324973943752010572142245979677722335145185696925719047695391903580172515190751880572313693553145688080024157438246534534243992016997002499541022155723112654519833167614381268584051387988640111693767266740978368415358431181968693534208152721537258634057499539825525254282391102934539782995015829289141648055996681744758033116025350035977531678325217494138365836167187318751098870340088534623666500525797518449016837391844156588786856961173956771998118775016429323476202781950897937014197138648215057540779364445720075229263015469080735017444395733951238064480862628245336905924829426514197772345891521384640540821081854498033126140233690064631350984747324225510366000227055912253530302162573899589799881293591102505855057224970484009240095892888013799784736079293870161230230297249887069241846341891532864577606703835342052466665738699358261031299092402526309797814162025757670189277126057796845401532210033086727508560061518889199381897908985091228203825146994891412147953317004963024261882631958209959667675507996793228062692142685380022781717241662768683704542042345732658656395356358134937034688199459315577602520720967930895081228209353073330572463703334410495022299988615335682794393030821311781921542532170825762464695460790635917154386365424797965930807951045027355262259033149874683290205562865037642252737312911536114606925616425594929253332762295103422508217708909624631934381412660319463535414426440986254895385835975980857660409419894501891502308915860665168161031805615865520502566620863148523136859841093993985091908578301468550740577274210859918029986055118065648226869738549859302655385946827699836856561540032544612977695112060176908924810407664028329782093943781685481155366174003390568664393889303986355485385977042095530311791838869519561140285897000099082538969487222680588890640137325757414184728089475037926890373890186948785178038990992245216280542296892418958512578112023887429330248416369529794140066912708535673561663113534441239178683079308366317090051929795903256884563962823003435484814435176979781010902867929620274890293231242376449740917794733480215036899878763195376779904238401268859537838397200716046251123501880233939768299802346786950838525184143707241695817056264346115989100857016774438225576577962997917398585247492069919563545897350314401209727035251077060562376791933693843294912530015919273892478883797793733550865562006425463714854020598591463458948312021950586001294318229642079250814292265521175693836834925837149884162768825477102457098396240596212868785825069018175068958233368721941767686624762626549593201801846289742800633792011061894262009795396606975463209313040730632863513527172187124747767090969876142769168473548387199873578036370918405087651605575080375752033248563884120596424923947374893611414547801873879174651732273475270999899069756312638510912502783297414238948636031775849370349069617642488761538293877901458453937973453027828374955919867420916110655691130244387032496400171479338209936469413580166468084574326176044930458619545710894703103853591123754658250382091023753789773849506745294995364830128798173470904159412535392257037915193906722592469832431828292868250859447311877566154217247238780458340215455986256962030556061176252389803708396248451258268583903095976520047246286621560326977286355408782074397746898488956795791495018892479281173543266127070270852962385948749464475012322197032547932171172338116330315703980241954673918787504161165324965268322827421158640484627424401885924371909469973505076461243189648521950970258854937426936772476267672389249038349645159221692043509022532399192181042042832060534647279950535453059551425583737657236676069226867226917883960613057397940567018679901087470565039139937557520545323376748680476345622102715437384474248498289956470902972268448733733185541587512801901056060182278642775993546862414180139500127404335672844414641006933588449268549051999189172473280453069413638074094594108226010493359587070861765480071210607793455071757053703482403861037038881907367110860378784348117880621397455099589227547054582480538630906233457666293048178121028433991330959079912947370159754053811017913183257482845925580770531793566934740343935373144323229953131475604782868934748060647320439515072357458032967990571977565614707107808547023741203055890295426472262454243951601741578277413284682418811036260563013160288868911691275588631029098325588418941981790614879451397813063876048272334675324439844907070618497091008523640563477078400669994050316819333887084694109605870453167672827321459577313586578515973204792691997415721148584159523625625689059645196557212146668773077817953239637563576847724422443635671878171793383573535178175253485002428343759944511959284900148325430576040423724682030639854487224646910191885534186531546364786653724143631205741824412190652958047542010871767554348245380204068126640625517698873462137438880865041711411093272893259928632735603318867104085894685257359739745463721741723031409910287447017478411311865901364607623273915606570950859489982875072808083943967144012447764927755829539003517752809499260390232910340528830885294843155838793340721396112722992236928797806646319508663363184182435676842609751756961173061569144151660212745238397457996518041325805745003959611295183203743184580225821129480851406927399854530759899500937276618053996298791136755259810892197063453149775419039814545703795142257868499640194554758458974902380026241566196407257689172193868329315979754109431105381972809482394638410336336393377060089291594371175276375930835134671213215067760761534013578545532522901287644915584438019917051422065723368640212413651216634113363493110020147260598063933247995399993175286045733710833238652658388029440499523961340251753990356066316586197222614577273873902043318550569687068687457705966476816067050405975815013672828488137956457964167976673115758340833741923929594367401455686776513877954640878117313688407278624893544551858352650664030670723700581602949518830119151644450906819044990251249342586843043348796242752536888408377837464233911087436323452982565094353159517552436013294722984602547303772692456854686709699652641546894924834949906036036887123562342199634382560859936988822379263166309444957561656020680597615743084399250374690106062674978727140609184773933524077162875525412837782762909945118760625982717939693914645978347665530499237484994862688982906393619112472847669139594629635048380598141282729513635395704171695725396685419229904580563546457579122012665136019351412470373062212824462626633282287358593471438614660502577550444490754837673140297855254143053327227331468895690476114512043473659425554663814537431884079372089790691446647198431867589109273855881746561295423989726441377563240923009019291500085380622668977007508674692206547739686163940428357969416371934552688486855487007105043794014743211719986103437585224070818792742694261842800253522869843776716616907867664259024881401107988408769085684005701216100314855052998050772338966376356486016999524840820313727416075212060763869887023061765566153101330255482478978421977326672492786792762327423386171891386293441293269645083908518515480075750668820772135662987695923469022601163221699382256305128649354295286918507764307916076288534759012431113866224989398139054943074870364429512393960186620300766447586495044441814486405640459320121427709422307420590867824213052592659153389436055794577084701489270664846321985384895968320744458185271240686236724202836506347407513654208664428490527252045594940658947274958982575376862746262133966573058946008293608142799178956877599891450822272822598597643784736066038569468009286119373375439553981550071997984089585408055381169067582311272381331592597679651057765360302855877618236759375265339658876349824119348157386757284574743976344115096733526310925389158048817277381565646736187990877433857883907327334694034290293128745159970817782553993238497427947791077190558298462287115750042389077628034443183178984502501510629755506394282800352644774167548466326371230000877342426396628550627592243976061004356562694559792822019648314327008017917140778728781889073267049762237740958911655048977714732448840502396460650154539172741207033804594884622651102533301312623130384349702631535377349574754098494460039591499834697262057772437534441820945233946296481158477383757836880594840738712013344820032733057116721418201571798425939466014167063793245311571765516747996206015179336280464949000932312826235427266123469571930188143077474556819423358105627695177318211143291256917937129668162788262134100948298432542003563634318022811709018086782300813108260413965182448412106580503416330215225635745347705926404750905761049435207533203173847720235378253127272240736425556794655492287878323790215301489076695235041057536460914742169561991172221330412125524014216647082122129236794700060540382638074358229751601558358211681681704724929262730156106215763818480992030808108745477068134312412324176626464285169536729637783807423299377013140359660645962090430360113837769880429158201385161028793501655194026719603221371460436312901254892049785847399337130274780966230159875946377322891154703129907124301889122698720780116113018390048011324136820758448585503811497115582938024705325092166257143568635146475611707198727022032511673683248563666820333404064894760283871983885032689628026265134749816582751145630535935585755960672864416840072475277227821757421220311073764265665951859101277622605776984100372012093079299297276440547190677626409038140303680713744717675731991776044611962563572867050567940876990443436008924747250719878791918858347468972710147099590701171822349774469276562484801854690406165277619218152672955747080683763591653245773215370866589441604993442802101879847288481788155879032078456430300822687799943906348527107943920847424107313133526004073163741827489742260945687825478841537901448199040873095590720033669155798668939000853175658176522556428009846799170597068857897655757501010957896324180757582013085815364144990632437951531185764497681051710580625032856171069049572490062047680119665704455103109977237172572716697250733405884170162606616612371896106559235609787755173153189325370790410025571023124635025318857127407864750220511049989869313285144716844839532428133419222621931389675433408711299066823717093254924005454110979272351338456009245672191889618950256286563669452392624620676735189974076344369092023969402876295200528278196299197290663636316868367552808434426023657951987472054079672139469361815915101569943685387221842258606761348026248419299741445592853859182585197691827293967902740554603363876604900167153680436513659327425734583760018195013733036171486224075193026818354699020405624233757396762424923137062950857650432189232344136636582310836821528050608400011970804713394891658194326720867881149933023638441403895732623757792673819921471081228388064878339647815825581079622660184966135744142590669603535877612822754230282065472742672789475376428731218547497861628564024653544111350986761933974577090211573537373833858533345959738099369890749325796684903049379704445990238127297667223831649568523706792140164653393702210695526921855402258096997984271660974876017186432287244108952931950697755796917804812421688206861501036871613684440554042628469906847216785808758388655729246119117052053927537863972739088069843318070095446361999865124021923326173485340100719220975718643558532393354383032604940859528855027163816464915592716192800908242295716193863196601279429965733839223469444114334774987459035667432946630660933015958382521699652161085390705952207524173690739075350196267961205202007148257798991737343359218093228837418938865611463070877846378111888321645348695404233300044254355700228151728820135788453699427726095737361196766080607085019459882173975360047638823284071018176238679478172538818957053492310554051872451934593720959864715234005497399178553751322480235892130076528610602257655092786793825404197672665780066425322023741835501128964112229122694645966480122630151169036531804259973310275666804003885313103479898856239766385066080127946985961446431904043796596526605813259190123887319266389884469528579538394831405604803939172707740802583237359720149066461138243680720581023982097764768359988722986102558944291199628749875475363973589627260665145856930728417000170528864518184534239132818117528541304028679742187940151084558989219685842715240219516814045772058126202078112820246758640890260324527841680989011604684730301933279177520548822313933203734864159518463265282638858883105038488661492898867910716087218445244179136036525484855805280224048973078140860958322042266752850273104404079662740881869228341395824875263412122959914146671935471960365741743362673925556916860554561461776190531676883569947236252922487590015089263272094900077865748216520320919974760041583641874517625278004205478169147914249962457882178389941877695658836274294768566120728387500746405251133570086854855286894411003051733295203479718012758724149871984372389168501684236044977123005818768807876792041116859202321868778044142753558061839115602802774312995453025634240978648856872158817034320549281114441850429543673885146315091719597973677164487814681512858338187615785750237452816235500325263681614659232581200181238380414429131398027995611231996299213992492173226306843312967832387994439297035162958546673228578969850600007768003418709084151061226924407739655863839334523682160750424528534033473315376557631119866925384069502534926571209499784334855736718757432621822399114015128001718501845018849421135105214989346664993807609132251158148413057229761376649689430665960921211623550143047957439173789874399785089923070135338844636002547807138048096080834642078017103899998864889977968403804057753596561833471359294248535918460471413998547281362476760127082751117748666644049087209494840650041426590348361277769084633412544261300803873027273104189744229745778026845054468732806962884410485813229641361157564108393656404141690500052373072995604538875000666318207139731181908212555583498137399484777960269172919336090254182246342946379384187372722167186262766157219613521437152452352533249686730511971091477598241218659343096345303506697634278457348360658399539443881914375975055908290155576374752729284527209300162944471683428660088528575643481302608542455063523358862335724769029392628313861816492674883888519086599917610515417481661695638281704733242336756651673349214427028591472042621842688491275392729816155412677627497510799452377804215517679528317119432463100058425030113869760721017666876525124153728504837342539456965857126604361811246065852246597113363000084010889476949462433153932348321089303515967782981146712010929516831183893541116621669337072650893536809738204994304465680528491676421276987231714533412639901304349674742894282329158439867459598404865095076148778568318927671207983940500262986998196340401945707633786622747391650689738574420170671369347215113910443650311175753312507089323038206444036054792041673171831893367706006014745809915043935773927095353278857886978343381680627856993675705454654976258168147644940456083123475312806817218443213821907160834060432833611835909324514261455012703352712062201989110252944225222114039609100341197257248639983548274365281716212762590239347132291786305172427972400835311505933309732409179999938769838737178496149464106013734561545239209923098828864705266789860072872889426556878382457947268434966029947064641650787075835303814972048690614827768968730183066155304537276791230448903541687643798100509522914369484465785973769757753779374215449990376704772903809052735368607000505582387210713105923072957147892037184081045897277057568613114413132095436920909479171152233192100739369712341511137445506353335084634846647868495990686479900973972001657037515762657121162310054617411488488259110356379525057912409797567637299630657800170027199441728573662223606043060029557288456989100216457891214303929291024641336239752547448072671640624154478306139552701948696850628390114856598133200720709818736336123805319430572399119321451580815431338783119690865859993952611338695823537598955343821152173860565805755651906920955815092574196182320089270567457638220914556145980046811434093614162396643776618362283102393636810786831746226111233316362103275643797445990124320583041295298382984317100372100407110904221790500426152426381091917232222013403082817401671626452679610916460526588451832501209968726383312988476255087099760765889750510640841453931547909176857413575401643663994375804472709765094717906824594165615623041168059716574343181587845727737116639051189752041650628777352532767697140375930564076584961166124628874306891828086718482224338652998114090084681133670348133998338302747199660259598217117219850926858847649633627374184284282224428219323945564437627621916978630229143450293990305176949889378075239840231069490294922959424143977422656294899517909314118493191823976814867003570556855853904474280572710740397200016705455731401700896120005323430283448877307997396671222123566254326892804408199858600891875805265196448629756327209405288137092753611019709705871401306045466411722188581909851112966310320409223934898596276389109298079261268299872698550236539364796143696436882826598315812782446993994412338529836048999612935807525997187518603769724624377502930376100028086456573202245005088860573988781779358841817598517060141662991440672346282730830656664585085768154638278982456389840743323744047922185392604543930960318197886826565356973665334837989219473861964274282534788576986053774183594207500349343828854598807967390999732968987092589577771647281027406693722061123116076256441534300084158645856137289768379444804223684440540254648871844484209278496685920585635528316309546454040835682669292676408698293639357544036482897636571171430206498454892550872501248518519678528992067196711519555030360704489813282125414141725025921541222056004514245693603555092094788112021331492764926135442501294203583012177100638661496579587546367879631243003317746558664186861444055228893677196260969860416393020027016875654585762990988220419983193936427137819569567584006708454960027406999884159315628436250865591932749795413324202164942812463105998843672736183890479050510480274346280703337451577061453070214641679112769959188767664468687755804278106948015513720354426027530071881494777294850466540446188743554479692126162254287539987334338303481372942174845456420541511848245739302096419329748030225170805577205010682043063259803465049766223607771122664883566317460612166646077936867908620039996304863248043473605855334206849832305146793238144056226214717688021662207244731757010617453440223125765679140493414704752764171333779451134190445595567429257085561810481821855823183769375277711604075045464463957258188651427646862513930545974979665542006618018194342439483433039600075767760497043327878022989824317196369414202256914300069384422996045566611906483551035664425204271868025640978048758777164471617736491973368575115367450966120938313183636734260549332754535446786402942697167204855916984937219117272650645869884687737099626953803481019692868579725042291662467842774982780860709920969655953073725895402050966351909189311389646857056789076557731300362224576978226989174908024960548249399180398737158531382007805598116245934551989352542241187977843305098481869070680337009059809062059716593905946451612383850911437432168751272472316872903725476481156669935005442910141825788273890730162121357151694126664877258325352662429810718807437280300739403979904569370079675954384650193367519154862792958439989378250505252312859585360237958962267435247188061628991087003792870887912732597976798758162118281293855290165241410988200693377281368130167344465607141617713083432719228809432962300642513666539759481718583049635464201378600065148740490636270176573993667323557134577692349916513867329024207473751170687320362272363976011512220557326272046148730824211433239261206744679796678376297536224268291633538024239785499514416996619993747412326987355804107221369999335139538745223088553192785897522632681683453296072316234525135677555883279251705366334055465543373543328917572276663197190638650571258578790485932514209933174501104573872003945596182941975744522618605590624526746991421482369693280327811084838955416608171791576403586729022319794056586070463334478459500830142842883334858437355550991739717620775345532597435115799235131164528596535530035102105866058494907457170509393854037455933404036295556986712377999374896564849229973222680784499204346234107846626582940364658839930208940094683603093327841647984595967028917204550417060046921700148835321423955288118048351510472464649214692461140881918538945366003126274419768094380143604665710882629294805112273419675115963663150400100854776230412754401092192620713318823635083588282446506405905844029748192446002650557486755326885501842179217495830000394482074797491286466261835309013449035316489926125382197076922702668053223852786552074049232218986860973807926923529697558724105459634865281259547742245719421847767049777287513599715775433861945289459087118222569542578605877263189194182026134269816618104473543663618339016960362054762639514105941933076772276207850000433797098142666328065296153963265306650577032474144309328814273165626893132083197420656246177528396023344366611365968977955266785024744920016421136519769720495437807794547295877330365123115190125683978137742550117280859693188221206295852378551899627673407272980000349732391121057958567279378201801610880889543180988292632334357211451858073170390735013410985295308394981205385009142601345674815795318090848285483357949190816963832214644141949617778290189491822839272510827244120834805430302480550182970541197938362999481177048801701430869328277185927378388783902395017561019607158605530657412194739959055610228492831467003363004702561280034858790240849527567888845546478703423714174762441700292107865976676013560893210000406870243127783041064553029634886961388157135812799457314099546702673005608073709965719241959128665567662234345110087049891323842087824605285548177499605198142046962980652687374468733051684816398890834231747590461693468899592973952569026561422176166964300591376146829497618602711847695667064282468638226588138568733525563327571818794129092160736387773982956332147688321356542560240064921415194195192537080170087585192996448571960252986310984792787364146263010957185579402339770198391234004393083639022263151660003825738633659685832054074808588125222379562372310800737466227750444655388916737904786174553939595665158020069862248278087673713523708318768226828275147501046931136914038271539353860038273530831835910466579872875553004389569164744744855818012136292225120943817715914342139447655458700748959051293840004780838614729897254079850042089622963217547854459610156242460951918392009522108295243442777869943062695418608195396025398256674585024594365859227458423402231390670942200673854618243472780733698619740847218047995362500406882415386605161034487306647531859890174082040562893287624002411027440318572831800941624826528158770397211094858516786086662501307437077569360504004974620192587975870464810382304375291087539675014124156340112754099449686666835975581802943144896419074938510919110865520081422347812905924561782362646354902182346463252177768803726081679242939765635577252756701865038492015998212922523963459466366556310558165080537402314219763257222406033016412087045958115984666916507460264724730647392167195949284636500760975222167071692803766826964981574023749713460373938655344490639678402054374159526957800560498205645301332060268931310852378954567870689156754772777683228253799381923282309101013525368946642466421883464709338169045210190025187598780145828573063906340033933242492300611930164830317191133039957923922631765932276174736214930478782629414581138501725869717243481260565727791843166646679922464396199017024585110271549422729593097173232287135469892689222909310640711975724640065704085395120184484965901212276498837649054826784534129495120821518863846965636102177972388070517072923596623010600305984957182016798198057941137581640850317725409412872230366295634073514854291173454169633209512016273392213801032968710972576554345673842089113455221787232810581960265992843067061699198237169819385925581509601637394201234729852587999999969561490431423634500141563981477801244690489708133008710261503706348400610223661546605704057555299191669525932611236451033866771013377617128380941981145029138944375828977105794143007388487547367880029561419083880165732467387244077176879103852234145311403935601015194155617305116525959071753331459700836000572031313952201119378228063249942914104659626411369028994980207136467379962215079901016336558866487824423478515307354329457509168873892403068068573483851749545047182438232652732021443530183872335747316402056173386419419206701126437595064622234280294905114849545192021777343030030407846780206446118390944628638816744636160799137738156910362888754818621757754153679862980313063395193990691559100331966107692785935226751154433122281072501632128134604607001495361281363009953409936746451332817749872777334968610379577998712555883245285973538465495734217939324744396607218664146556346440218404924188949221016674007504823930957277165560357873621944601318349414250319882472174798321804910921245164240821759741179615705021249395506150455252088440049925332911006122936761578414647065734753235335556339166147319455837010293890091826738123853265762974504002249864276553303358383073363689212466731379047679666932838496073819529095233940226720006267717637001214495338462908486066284604687844453244703670883269811015805494190594690124934083034337865747011746041159297305097862840562573769159859928188849581097608083311354741460931719447578656980916032507392712448835988375609887157558714028578061550575532931778408306625996960462196221393289611398336470328102699797515644032356755616640796760436622116661991751840213734982119593173851697671234577516621445512802857848198190701332110155578560240824210938608513686842726709294834969505304767667118674439331855045951164582670532699753763471467328414259113955801175642353425811407981417346217221099449834992573945694750330314066111839715457659035437210688707244674433863643666446843590164086373515168749138301642451022785159237775012465739391848973795587525425173947653764630765975219922708777202645323327896363254885228144542929191046127591647490420376641124948153838472840603016846015740815183433988499376419671849181789369176256069936485717324050713918872853479818521591502418894242619477881902647458811443578038759260131737683266155458214297719400110667068320879546234817245849297666151353149329079214903304458695855599090052513039985205813430531104967118325223278710135997747637463080166774608257126767274186895978559089202149280350598838721707660969932582555158875855938857187891261055987822539555931288315679784925133066807806644902084063992719887077798424705070675991624774890941661686375272676120616487153840058925226641789679133663740180996829527271227166711705638123255844213269532102171786061872791843564977090491696053605136562116113518604470793784177977590858752216882963739715899127057841206840671615143063913797768753325974445933566338624076345041008247926474687331615383654440858201142823149665303738571550186159878151599225919881548347296297304379481227620147498531869988653731127169002357645786807043777898587676122928089649937482310851395743759291939544474971426140209842585704066328153059418790618417812354928946421137930243331412583494143608428708734049921385972328159477872674863538581395068448898865445269798844624548765947839732541698831453811786895805198755585131371461760239581077896451733899396707273442505723943685425314328767277105200545184326300871343472712551154466333256696548607227990132225330455402308188325046705473272344931575315122606089331855512577592121318219711749546871212875617281927164162335929466298417975474910700923903868085639184287901043804021228315277401939233371186541575977225826783407478943286427731220411758061137179204752251333435593769696064821727330186579241241131360115633579083693370066407577012361416002285765649434537564448057997269086480983537043594176262460957882375814252956648113943307940409064914818134759229661956090794103649387500406586824187490782754740490230829042603066712026511958773393404747561732862911105143283909036561957583891527970847341498575638873431448232001202670166443319907681709664370579671921247080698949236024162038625598862406663029015433958077163884925221373139656594139383998254224869580652438610094948826270259280733566979378351722953130628814888430865591646817499845660577681136302210612918617700981188298367556250550398056990439039747734688399395962855694388901916995705585932611086880715506007630148636692359470091584341020734533614028333144081561458467309510281415136117734945302703766641695594348800035690112161450130039149071841813735829937738045154620073046118307731787013154560083436129328281233116534806263176612359443445880089878835516890893354794075566146804719676968646066904031122745452947583511808588570819013327039883421599751136404901734139973410959869679982420924668413318662317031759461927819225184984205895955033810297691244394251007701581043482765358382268810725953810557533581034749616373936028436862243414512640515181870700529624816358827277554962465874850490759233007995726525011348563276950505224650760430871627920129500513317775518041810876766990953166484125172379846303757922786064417473802531709869432580901886208913848900167429132448979684253018575236915916700464799092465576282968827856687974377166412900761191727668038572149105877030431641834880285838411336141097856719741768496939916233503157212333548672960192129982387162268145983918272943638324230269307159512450184695806461151284899887018328952383098477105062050603324503131033279643952310344185631890401093186292267493283687537348155466767864170960550785551738380131003648192784702713777547639100275471215472210903069448259536463194741947585457198605491837254461693792557773489788384118974273951660862509032474807502083947768684895074053851032951575998057636325603030463008763197445962265057133635784886959935749476449020026593341930652913441521343760959968976200400970461601699853890265979752621372309406836946544141049388296596746042151228711380000990412383670711860662871882638154903345252930708590161495025139215685719581275768562901171152930196036235986656005205161480639540405682879357613343607118463627360591301259591944185161530664785291562250324040072669166303602782792350601127234285114006987767017340588740506343407233856757389116728981982160349006758157708514054288348660701610746598822702035973212752533758122386835842911550051333339987882080561643149744125145529937562330636951770944350896059516565347740632250008496664847532797024593039144696321571105310190168765496848380004319977960514639798336028153615999718460070452562013899521116422363023101963459841618965462175768766257748460168633944405758250302384619589627818088312780230336399745826127032804370968845977037678467825613040571375761261792841926100920894708593159157695635410878004479230023502627420031578430657698086459723207828800396416263937416192439270783812682168963954110252063260543295852524252928046840556573746141852531075360177870929299589222140438649494109218555901061775195371446078318172897051407485553192437366434632222855587173950484460161895268687045549478853326370338534312508627752887562087937288179931138154268317278725830060879398567186984576653652304326135409958255717952804548326863332301186520613380659135039195881208722410329171249210899812372303557262319531973717228859839235929126511910419415533529801284784216043667460695025665297037469508785674681508142638270530447148951060439291047270069159433039445918221274620245749404410024526625347420760756660068023974050871519341628262797628130742649601185689301161031814265555407744588662983534481920395444949101421347570021837203883263235214711302277198660228934330409556954431071970759828072678775695962267944261979314286015023966034388764071667363657434773605266251836257252463837103034516466013031564424092909861284823226975566108153293880264206784806878223951257867638117534701782737821178063684214082942662444697081938909462779326943169870131722950332553617194088502386991223234419595425146878302660351244535620263101496419555041997995334285043277780539601660300310770406360753092610220728682441737089775934527554829440369127809821244521770476787571640256167243061321754556272734496762232867995903815971098191906329584455082556984513432703162822879049360140562888136207384843032702756718284558028754364394457505732893259095377110906334477655935490120877174519838672010017435245006438183512119474152031975202397858619184179869534463292604751768290088534327135873288841643327525651817495372202639669583751611750227965754566005946996777013320941513397636810026331023444949865090388936025342961117438530917922921462205004954630628245320042206448596729638102603726642124066080224789349834778453701196193109612633041933483627273255007306154802092236677203357581286666085139307723491578842723515608737851907098177250036685185038889555392220601303574486859091598020579218135122855124293440117965618495270435011392812043254435729417922937282927165697891944021726209426119896692854172841272462193415623867556511072885368979179230804675280566101366270911952143218736925865776805632831941741250521257328700101915958562598757162497573221980370000559977307628404664107611957864853677311364772543734630861759586372452445403765336900538738417102504538212167745632674199767297075243093564182394722469346725688096870003070257702996862571331712876592053556774154443113989830961486613804551870898317622785192586013682421409224995072773019757925855624053345737208167838345035080251098862363520318706283030803392565250846144160403683665802177736912287651799987889716808892867526377785479622440949074937740032483242453172009511727375519624225833410442741475088298545025239198632091043024627638262109091650585560709699107751713738652742216552187393102092432362676537836795760898909865263155839097213896833316872744645970497874320363070191811399006959947155199255672078530092038636188518389441781196767411937097237633015316808671338147619728598253240175978534602162586609763483620617939469092028616043505628529146616597147051785157664498060016424144652870071507815078347162905383629018287749438972081831040872889301800324835964862423354913200386362643345633138253997841457868078630603071501095232166718111253877537496989132025762777377200118457149337812361323200478859900242549918528915486822691442652835190238513011643746723781633897309746882406249598661289130314975532202727678595070417795393568557289650231369313699757451379358018244728989499904013203591244304178513413415833755360789676583055502011017302051945162941345631366254302927360467989213592493239324519529890065766025832244247221868907106511945105744675130314971946631650743689567542577273983287087466920036274063593828673279921831557493934827398488774378023827574101929934368856295327780003931248408966628402520271822562492201793404914810216362220775939154578576583136402028086277426381937558494545075450541683029472754859821183490579891852276271829683862140518068963069926299765710032087326005106979819639270522373857821580131023927669936232559719101893093063925855522938933333998167255823486337055074440473500417874728959003802543138298731072475424996328315154310499146544940295460173278554572585389065085071184349245639645553579594335358874212508458642150774407065722234231286588710612063493491733694462927350056767823192927992411409539947336995340104069021141489442812462829061774581169005027999460670808704264498977368656318071008653763491222432234039213671678876951069646464628720226365517204639338704382021961992280932728209171978044329864786834676257412581026107678336420352948661353000565582854395122056532030142051333135166183221109713780613566301712644772617838623232453177989447931404097413390780015838509687973453215980161713743909597890037313323744099141398502591125268316006536694122922037340676255235467672301538246474352986476337371964320940136170832819332883354567148234473223071216672950833925800049673904959249316439140234655053380181117207779861816208163195693182611525660896479428965611542004270268459881613539618274874361571155119944187516344708644189091530413128016446001619931620614672193310666343064989154596202717856709120031886153954045154773612761090573663680477247958544308630298199618261941566364607754135653621052224344599835926512643541911612132201235984944148811934732453749566222701665795646702329864399221371257400167548134796728240779375030942832630664082354744765711273550172800806601898476077673365076724431663181473181868123056043157095227864273701068902216132404340744229481192641075205088182006322910130323380174076905414756877525135070103626118878100019664788991874914555479176397266479682278959787416651417072823309501259990607243807409429460163618224171011504122559859664267119477219412877611415828270547244516842720097754373257137716025711621075088845227716752884045149271273349313032540230945775111238315858084707282477797013265479998886049793244061756907465202077885478143000689541219776161826213794958432397386577270329360706173212817695247242843757367277874684645836560579879289564803636230783646597846007072249860110898365476526360212824792189795671065618456390606019395686824459771196477858349243766323341249350322175974150826377038658412322989941666785248191846036733678103537531506768206991502539959415046575519828086768378969535095756880643040764560821175428164397598943088262096049249754577221316685330854678533310935887045833027360134549163948652455388683395692352452901634665574461830468583760629679986656025181419885544281813886661390619146887301313608018713894627124214651837979166266735438019528971121240074708798433435739266937459123317898068833448440730966900739119495391302574118098699789315313215855768974011385499618072215927425314524068724404600474947777039513287587076772708390227334629222313754840213946385276100519023856256857434689972442578384337064263581958245574366607849303908010190430482432529440851566657738627061378672560433464631722343086781618841656873157102786512737977383470522000918821297309559163399757467617609849989583678731133585440211838363273402657405495091949271737024612172538338603249176695812484231972043838926532085602102802005882372094609800297437063631365581822375482023864813819255665473844207644308037478179330802668715352090422035132117663083516551359283534685677403903120445906332007234716391878251509781711662991658489119634747197174942891811928276837616438288445777753341096405161993474167396378030727050315167469150037845394885129807101800055357452497000617417814889043773372698820910260729081634726716873943423595115417456032477697442563692239918075042180842922045584336089518870588042913222724303310436651308991802897212765405776928453497183169042849217848371170247211138296037353472051232373775065811079805817263813671940539939429262757319448063429566933136253886153013849607415452878395917277530998630885697771245153766761483428307113155591323446642838574621562526822908847628534434000300478041618257230800734814183580657736307290452255072416678790607442265032670493164963847963269293263281126741929372577349074889762234082066320617332498363531971589542127660248774097353299577859110810162565132605504005338002878275809053687675981011862964076133519938722559447362025681646220747769117429165982244452740261203518934133646529244170411847620535107899003542357978195890343063490146555490194341073622552070322521848734911040842598452118360736408293796428851582295996491642464382280643953792318274385541363837692416428548157016943106751820262990824190983542164915284196380600818616323916708341293453284911615827095009204905330458546455261763826304831845430941288793049603367829867109837107563136071242408337304115832587782555314744058116465456584853425069042359210406164307367509720850480910783903056763936105294139158613410521578782503561689898940990994701671186158246198757339047594529205610411773187057959009028529808567208881280420372106214093163739534816221736330442397297032218135043256816740671484762369411791773403736024174215296105354260064532374684896248069987453083086479884447155093315529769897062093438760061653956724327094418326482422458112949746657406393467272388940488351574951647549574575971836163455410816859811911682218521740130978172907812813621104715492448764089996493515801018597280667666258849903122663867286653287628662897958847704625986062803896636387045207940826283742225898995665207196517541654645533236817874317836284578135947075669167874021662726720622377920395524988828782419634157882634587762808391724084313630082024627141260588361446546868997411542300738668789723166269012234626149357083653446178466239923839209266875703131543283620874808206135741478369899113223510613744625675063267291538161357743175548280578449152485322488839225567524355691237587638458117965223219922221342828468083900825654091468141957925864364432832793934358962952929012528182930572085813011360085471674438631069732967892622512936553616563498695143182032559492345055603182582942314277126161449380475448568017479969814924106914169783854408994445149408264752416211544509071141620784613604845951137752947113853814346197328811712974326664001001976510121384215010380009570612458518428672589140170860161766884129020001909050743822926249922008803698797845184193919282136335372457665019709046456748090576725872198152712597695674465508615762668416281857422917782289387125866131681095810706616219394628154120527208209152490115660362127188052723950679074072681382961812915602664033419920891008813222973628182699562286921724643154559158008398386122391783793604327326056663147361446266029188473320609149287796043611189772687543188566658021392013107774936836919084872357446284156462077685881386334052558253810642861020395842083043598232306200245080475984418620294935939335960067616828944070248599715398813381440840550624715689625825866079729313563735870675430591337254582253645354119756688210673949178415995377556483244110178506973696245285602827368612155042804493438062302869598708735922741179870687364417590316763407200447146512561131080296824915599459581761889357288951053046851735318333851600075123802824272390060574974181580510562380017354557703183929431221243701688175968685916934727361596268278228618689746994463888564000468580456045963085316806853406230070798743330805260585785294080023635741683801497000471472971478908374344583361769112768522816214902727423539395869497595478197681255013007126978575305196876192571748578523263700155579985251553140116300656138085895143887326844830299865160161622741532211369717942978049488722816807138486075974656914794069084124997706902079847611834383130730306603769104863657348290032231620201569214844927629119081579969380127216409170858691787392163863943776303799835031542804032260315430133031442827929521365196018306664077251277183931076091590448064344409803480193926335961821850294369733765792567749812305467866419860733804526283104782803192815348047405935642047558057278720931529577256102171758263155864263237824805195935577072168750671530262516573999018305807168695629218355353152921845081392243066788862741224385954986223347115710445158941807669171142328031037763955780746161534451940858527468643202675209145705852520329160361301020910623454186557792745279195716640064673724294621956824164792434391682404875942051648746964380322259546618162618176342462719204957167234738804697832490573973913543574770753436896893092786451532848842230787296447635633800176497814222944419364413624249912432268949204968113039571766375151180139431823901366197632174718821124899698579863099957782935097698624547138633645591129942220362954258862563020889216924062333938776876620643903556039106608858879169024338429557473139284840059123575186028444985230174982524842543643733031196115875016397413609044469625127771840492493101306037388659364568715693818736099465356655206942441741146671978797635360003273957834185550452848782302879463028348802353428746628022335790474167335133931716617729765878545489885754322313737203503738294057862662501371491170169538699330160059756242107732498071869993193126607906411801471637424020930078007156950342196625308397162738631018677788337687991663625763823282400281274105388925619904277637641491852420809269388159614674241923715590378101023083221770368689779781012787430365599165854652147084663462279662520051053857856212481343392946426262426544593706366474892952148433864843987729734753400197032122965092060490280090754474862126299131438646477251659923767445162861594802154554655961522100490802166929676523722388132235767655984344579387381101722798705563373542735206775791363445467591094515343506087934756446687585928408698299309218786429106454273000522989108874485290624651305937934093054888774342315617656015198001031989095034154143647064159339018891278250502537016367684808661970737531284704416214436685225928315922082305004743068238417882460803089037673896467781837094288581587786758232781773497731731626160690989117400606633848829450715852085351729728596091004844642613720779344345292559029891943329679717491735119929539151997687929492062648212008652906730741271507731954813592307714410184579770991334299457140750130973973737536234052842894627529553849368733733602064915428938627488361541082335223260521264694181991933698711794203643308229204836861691347975465691812644652299260318540187698703793733240979292142865059118997757855382446639576506967742589398528348709182472126060948338913775036262861680132621948217840731883747080741988145193758404230507147865987204077579880640736267288041635094431898870766476319088794206305985831930531075922886424484073975285830530800872686414703556348935895630576678589880987510853559603425627873220917344882296895898160782751013425255085503484427545473872675208768596278657270268198601190260943319019889676344586080182409599368479836163665375129645104285539348333496200276284531291792769588403810491159516593230558295603269312742118829366678401221192258741867297255317683042918609770308981411907655782474134078093031241221274788690653508862286872330753876290157301710763860984795898533011518800285280488544609843904459190610478592759075845599653760471762496031699566737322779634169005540865186158643885007931934914400364522662050093817520891645479698527944677928757625861390096666069226157452296950345710150836631404673710872973245257441126920247312925623348503074796206525986526115417986682107176991376036021637952171785851628009584465836513247194961211749319804435650720585840492244849404582794617418140028748522093273852104674264513605417645171864286886290535822577258520610001777704918440404348855092784697844927081795531994999018238331324952015612022451823380483373090830108082387259759836348118481671162145369471854196384941063648922851826183222577752662851022440843842636556780492048300738117548435179693744602988991292329591918042415132931273839854472420440288444250869108814314790232602172609688741444353204414505894663681176306957140734471534206448907020564408145152216195242229859452389293186441774262504100715881482652279460452454955832763044523473832159363070191707305534991969933750851310520842110763671821850280231087414724916456076132794637875287739370277820297021489545806904538332170011687633991448183573973838531085006432436436247530272455936039753179067082971256148772651272106198521440733407228809597384920661956567636416214261453886273396185889998511677321906043005231140159269161766634660222744500070499555731813141577631192767561162315816812876733717375386818302742050396182676605206449167937512552884827889928532059324523434445765766172355047010992627938577777997856790522464331737441747617564075542411807540560721852216359609614426367943937018457912725008273581164565959668955143523356781589908606735794953925617873877603987427962750947489410692444383777414090109397667384116927041867796234634208452443299681597588268375192949430314738564452765661463973850429074954168187149682541721307520702584354306259694096638974945920228197377232610156823415541259752269613399915832383342597116962931754965103465466039788832099771633327635371270946087181357880218484184780813813177457769807131085801991915427208173658671609631574295110356250400004960259244602506731174378664024372138188044201960751579921301162046144151517994085232179949944353547842515484410027552735433583978345743203905284413951136012388313118924654822842737065619202597150066167810920718723693985936041826479823901903521998321901532194819003498874686390424730530640060154554548440071559980347167618955294333848466985431580150376674195046330092858619962670531987554154428865224012016018400409236993973231097903808707963755207316062003009283742859540493905839033165203412374853402902686091413367819031779066954889097816760078558549758113908550284177385014683421950110330545322353698898599464288592172246813018901730337940446424514508282433748752589605016272589546481413308163885485698458300709564341195217388703513569966958152280742079216745880293264611894850164740382369207583680148405932351350251304430627762795628819467819794682044534042397320209419772191266017174880917213725578331292041703149814480632354291711014380399013497046128275851963919176400195027720685262727038026532708818753747068759619868647428264521572407080614360967797097310425458900341619385310139870700820923180508130929350416987874476886003429484278700084744944727950749245914481680348965055392438318032903983675873038351953446378802241578326225316925935064131908341500109746429693695277478886350130268443430081297013060336454435429070172820770016839462452528855699529481572464846129214226338715325746847278260868448606932391866241299483768663266865336672567058145109883834194936878713224608051433278047932350893314468672960795755899112484027485892961100630628122926318411667933491074412263466608019151700862123083205589411789345899797837011616321029713581973443660931041270280768769469886562576138627405073564875382440195930521265698293334298411488632888962160536245032794306977311405515129502833460781349004668597838511436635073247316462883671094799639831530936666513692754988965645894374891734654615602144544278053815341978185885290888249105640093310724503040396195848950277888171625908753808082193373084278537351696173495560135216119640126542567015516955589163212736312656556577524320830715495561471316399481829764917561463446839875640480221331340776070139882691934330581861237173947663855434930388264732384640401804993579432550339453613020915247773316785519910006034486142872930867512181319590229549239146885977801250286731774993901423678591604681927632397277546154672896690696182254648408563464635966173344193462804945673978767175442343687620107543708063450750102989478387436028627775214754527011910490443802854281512193705820028384379370253566738502974424626511512400020839059373152267777152886287603797411698642859365876242387949897951770489027337785691777394105500262221022017167846578536532070389621250017146156015686825191135932167407850315279320298826922059505462169696056093982016319021608629933340138967397047741958670906061556532779511819612134021839811994566869361529021742127386131553062942561195703223088555622341027981501154220123528720597758433170796199333304096738671061540666191047080800214376829506663290056072303706477868513677924774215374744227746891026209248193087000264593721523294736379790560172837799025090276334343806930206645317958831434657178885153450977992909354926590203255685263290405782413036219812445188935040631443698579488755334273328037880748341542524159689619801447231207892084975756027070070214725048004972581789346643281286790776875317418419507822767176360845141372719351631899354238382417165520002581586476428061988683879750865985326680446530974144733856178564431963391700192710917788397964371507806541764983866293249421021672198186376051724942286540191999519198973563016080530578295550179491321750169540441379200248129922175690244145929423955402285470854800422904844855543305161880107959117472204245974725783166057303258295356470825702719028853948235370934712647946554981545608119231073747939060930093907460795947959672772726573568706953093045768459225374496168742722155483471785818365336294557051303112080543221737760501958622475124556041277700640383733985032687401801492603415269619833975813777097423295468838158599759963803609917374866617430911783935505966168453893548424332632378079069591168706529266123748237322887259584031760501598848665923391084522253503084474716196850940552188948566118589524012679126125097494357275149900204501083341361412787126478201223101722554916284387163761166332460760011945377016297784504009023540138302648786932761552482457811918249900019303601320816363434707555618220648444701465069530405884747395887683755822178562374829746957191313426829468815598413030928513470624009114187046468384360046637305296736234224825169551987353646283501146062335833638639606382567126818255158657935927578456314548268580263843584705632859170951047380933624275259577120864529335740836904977834661257382679342538911213954989941641908175063963511551794668600795192693586958030849120834429024061085915841183671961317265060823123647842255170989988469489851877842342770203808087531515636700300027065859688997317009519413402257884421915979881813477120275730838775980589310697992834814716646578972514877119752612934848195812469124239582030972702941616258116243158525479366917957476460492438060441059496808468596398271724148433467902089397703429923833105588924009361552175472858535414009393329137598099559854596024654966755421531760174438179730965922051854431731214793330214111503146133885807973456336040783196141764981305924804285230454936475442093215629893184294388194392857020768028301937646555695782828228022834330083255264574709735153419675001503800643694204891232202821493988142218625089715749902505957334842185313979413662892825568351568448627230251405115210652985920774337051820124898636426413273482970243319839047056042089580173759412071351320214694104338375272820499474521262702893019186815759983559967039341680587397869695366244942701336315690583193578868364324175349301461238845956966303655759387191865150735172289250306976106290198303206536751462537845804966354693548610457092035577892028731520459764538629176904526541537795977869296010207586935108707842168804976983552846838986442240851341965958620151718371903989138471691935069922871512975755661463010261470730635329401120628470874531136307985410534736945663931438151847628061735513351613170746839250713776792644242431051406858329138691672421997349640297424887881868375043533199443869778542275666988121752162722197481131621085648014930321087980554371269669109591262892682126106004148126356727110176411379818415783425768624906150355929588966535428538534298910305584309224167275713784978528595963322335370818801515530340624355839835484914318512879113091786848957242494326613164254271638489319134482963954640262426194832974012443120321476216878034947485105586596282650662028033878638376227575991563030333076049580643703922822020851841573113191873323367009477358653843517556505105835564262694223849359057103163932741026229311212041653120817001332655291166317253099289203715401485082780103962369901645970309726037044898984973605832881068265020525714405923977617638784927804946539826234764483984218919966796798513878974557344151201769620489853458233977109308598999418863864817444088024714165926171463115570426470350886981331276202159359327911920370814124203810831229595664426782652011850552453899741288403863955436920932772824254455655515646843772606150602033044420440662046116630707623825646511828207338751741368533902474719874162084782669262617505537998279976857921209900856373225005479633504398234786753612704431519895792695845398652523769197404668771499693277758977930836727716323138079551044676149669860410952670906580072094632972598667850366703052304604319563517967585962177786311708283852751401064059592217032858281746316666343979512339975256048871001937813504797487517929853746462358721677623066698708164885105978271690439843485454833928187082627537672534673363774396386372616775846254652763250686208205670000269059663467043406744314501922780333779055326457348145481836328278102348023367544528643931663810578980510865416844196106436590965114056990309528578523070334948634938931921212825912762860133847719704956748932416318879437516018727400316821313496404783505170416665497832096258479328088136451371027452158348632356012025816247483286357900268479637023826187933923025559051040886949416322868209487402034181338741804722633937885909529124349284802775124828736813374082315721098410934435293235730532215318017732560347301028075874349312360091634167568956714041066809341318388191972636961078602639911568651056520422501242893328602479264933153410216583589115280790143017776427006146348363482651718813669342625951713186613442928695929771390380842871335786771030053857414217923281992607750668048587591374665711527098788158444411836101397769170883939207958824604049044710406154241042190930881774041889894512077852520643783334596020212636711114507959159181856201059082603979332529538724317135926662728380289256907384563551455006960256302900952483677159701204891151305148997566458025914618179678686697337302266363690643954097441467304946631351788533170553084782806093720757317071609057307526305890425091548241232035182184237675258612902467379961063998525360743142609299440977770759413242104438067609499522446860039853487769869503856820393146716002540901338900874885449718669973444378160137393701807760920484214928623228772382017396615179512260708494052440733469427367812827767587304241221866416209750520971274513083351479711462702918859213288655398180523634156967363558907554624200427122105639500185466911695140817816550664004113207936499990749702694366932932815139735467775456217461167207138369631020496264880044119580022850369216533614745992399241855416893254954585377123557351629639457774987667075177202261070505372423705629413702802954856542513427431464924455186514252257341980159071595289483120100362930723022531694208020788956781372844501291435926480206792030088301929988089670034377285939791182574535399694871789956259433939455596592153749209825684108276282579035858171614622283942170160582901458155278464020514082597286321814084173801691894828891388240190310361015972412256905152183068406278798271204963061279938306163571826480242264957540822675024563599837742920491158476226428039165725674344646688372309473100844548415675077767367423560997068112993065057724226346499978179845734331321435759830398512848617822984086624142661833642109328952361961489200797552222552166095774439796015282861310016830862780209696056416839029983865978007387408417455357881222690041991231652692194251186917074561143021421522425889643974546483485789870155515844554014025719342988325879703911234215134395966036184835947728971970354192647677439996192384378919192315888534057302443564272070036791487399072192207373501348565771187224460892131012151712150978319954576702022143772871844443684770106126206587028207983322576106778213443302762616254939809432722805293347419172252095820173896338190398688127223638039347712210672215148215958587247523738091693320426864992806897617998788073118611315887001579510958702604656147662349496569342471344164543751415245893653782084382206572470402951306803297132426094477012291587936232202798279349458226003376530403760761896668369536999240555556460260721567351856864245061919965314253899375084089786729136414593841115029872273690764115997669049105793652940362033895786911608091695504186196948778655840639604889885085183689934441609658140662964668669446816607916149521325418926679492783650601593371259743547077487398534933633093717946496546631536899192137912926113906954187075002585846064188557581025009672958471309992211176368185950753170711032741431629132983912293181663265058236884070589569884451139392908382889789136222983182398660316715214754536094922888832529389890914518436192766260725930920650534460086434844685300162914053853380206090232349517399939289557271319484141810927090183198470359360207106173348196671393651958209418092007274699502222531461008029477008342720486565010796318189221714321573373216233767898505505303858767000523613750088389754824048365719803650527661255511466742598203712760465103544020878573874860018118684642396567276973523583389823170473438762893037152821559108479133548834271752463126972926605431631034613817832876657519741713371589008568909838138635511726402203509710485392282191548385663440196567794973911601960483452265623620029006497985415580453321819330841018571487247516228487527052439814693152225264459501569253536982817375771750828682751003899577225987359502935185822624881061564188993652550971126560872221035579122015895389398350625561544520571601544183878834934842405326271236030303581640287157117974614344638795063768775776084519379427368576407131475901091904480501238625570957209970282221807441800736971246304198760411060287020022182018017788796539300588736787348834526165797557110827867035453709650888841251959136694832530648839870961819630065434167334828389757880145073342466608377301493647174946540249162735491694203688924270460582654115945025990493322971316500780373448699252157128591549140888937052866298207407962877218798132500052925614150960415229680687481869192077004725632708918496329355824483837633390754446112681091696905960954426022707324227935302926933633827317918457340160344478112163649797015916633316562102814002399158323069415430237784467744518520868900313325099498058063258207036193218832021585545533866670281314005412680605749111513095166108315148798153904996602100051572261990270595255236773389227738299728902186908188024008678087219378457266498051003709251544914244659159842225084045095034410896169439517802548277800114505873128377535070771013549688728366439399467527437078653460640592755571455700710364231268676958984274671364503331524463796251631897078152383948337705230318356757648928139400290371816214007353227984094242260134685207852658124130937978395295455529278430027038349763781950739695463762949245982995552777413850536762344312709920952478704807271762180496446091208406431236860361837011753399954792487146673138993862254665820689730047276463356514849865183917664433994339598344636591382465732668598401587771803901578237671725199801111510031712023507400493568280164811546907211331451668339507827031705535916023260655164430234448099745228633670629310180352289098415940229920445415892232350879537764965567465095184208161239627385190402756664665383861594623377001491383926504776004221886671289067089954657028569706379476259840766033464801124781521637119089878816108738423894635984381783399192548804994898665302863538615314759966045425927253072753439075103594538540475699499296035677542507208658619092194424832532974916871962244814002210184229831729805359847180249893721938525322521215533442745967588332497269735542899350548085408086863240209909182437482596054113316256370340102806342528275928190461829261692229226261070994601748201113014036895561069646088887111961972023607411023250541307715482414315421047345816730068900311235355454343119858181606652238272865546944152182299121854737987840991442646194347769597175268062650901692428905377576184561955254389992719433181434541024649462263529697492191151362789207802672333089334924458212477511476503572798711076940444178598429070526555945418964566377405131806289403724971715611177615332293399317625020390382402481051924331117062700253669896932319573383180665489825835142539603743081984686997817347948957480321771247483852585615121870404249548972289152095427443882434935930764716405121167366337202125058760053589200443838438150821259886472999064459883851390729389882882637761885052344588135637496415176426039802161112155981134794143655279178056421662430729268259232193247384280801783560757128284732079891455047529303990790202940390919067936615260316481253532521935220871906037269619999198337523598319290553865660923343008059232874534257185343364705553201734452682822804651743188452548105010388273974314767257902052142907901656745236399744221866305803423447574680313684264542100469824693257965796224258583439180938436254850933245449277033346136670676875516106553843760813048204973347931000880364309312283567677241717703681647784062157760792376942588760718354605098497856020235224637198671034376063113380966354053768804755714988345139617503167434465233805571105897259719120117291226775368148371547330755563920237842239175083061101142041846314123605927698786796553717708212929609492513809809186477078549635936726509991546956067009403554003864865536624211048148989587832790238941939431614798299244667962941475907599932554244920725579392803211518251534195862929803390650539697316845232080436743066785966413015794443372914352411177084328429278089143161458146200985649522409145394143405114318263354509779488685515362703190775330425120965921108285490242802692351125484116358364183133921158240874425764907548484915856991175107929194738249118529277817277296174328551788817892111445010564018489604008664679650392098606226827965441142599298170325416902399210867650590162477367616444942430469027721249133609634149538758033316578825192669773147973288670840139214009747285456977433587554794207341818036139101450989248435359063072190816370007502526702148477644839126309601658026759311636005503684193519611555671800521282151711565861253556748590632352436509251921591985670656934641365024136668871771080138107710341255257158337838997509034631825140697593854483429561131041476912740540051504251538587381875916504496017560783983508814625278768781169110816981164252418734019150722013680897424531992462577366546931015469352641488644099220438599689679370218497373198189954724211188415354141247018956010336723288549273053068898222704951898121496484280824684428376001042060664737276342374682576712922450903336262333640277815023723449460477947424025353138165610455989775345768886195752427890928621882048450948221166321897469178748414848903084263642704631181993467793769202238978201540857773436372212849576421756568841929302850909658469327097178085564501104725916281279084405161239741531833379900655461442847132129739246190550861605203139361729304367269952012099971147764752915800230988004319116849593837158278396414731981720897203659487669226173136963634738687455583693664992497495696595873792465288783051346303943384050693944442590184321032933907711767176240436249698343399888451423015188391525788974145595537987636261531469881807433576739468466037983959744409389034256215418130639614344116658422906442828263183775481747475040970739541625851848160297263732589443291116758287022573524939689725744706743528462949876955292664098174889027354084133416356267134241189448516931621798496660952157411947010298546001901536949930969934231461300810666544781336453934468640806613786922474554667854202080235728914767484628538450675073680149564236976367162336101861304566590951533037857227719886134035785935351047642336247484688081039827449348724456653659202891971545092555261071642632956704814889618040239631367849624073472747403570657867058245333255747620733941118298953607027517890112946296192181384251573794951344965140318719453415599592455834601782166075072847947035734225944076775181592988354133691019730853463722996277995006383877738794474857790923176792335712344030185251483007936133562090289066628942680757514734299857847713817630631800146222621503456484728452800511198683815058256172318653589199858561271824287769337476244791316153656129251275227724142460160599736771423839012112712372845354237345774920000413510998223531645336968330314952541121014654462529942735022146225488552490358261763006568948918788277331837630494865865597338515930554262647858607976796423024689031574587035865326678859690784588491676251221929308497271193055524972795143083971014066033736071016194564050574720721337217436739010298122126540077603524162103532403709408785204497988997710882127721204609098317566294498124372329288874731879612044095536389998704790461293637088564610319478226223242744915711461536792068589719768519527417078157660972640341489420643000289667788120488238104974780864828207878067193765985080973417381822672053644348398317175273366592894976015812128830633221226962900989672081517328581506084490449604724378716775730106827729594562906420202287885718422477981719599026177292898122163000127066867562394472016318223863122275853415351988949946913892972227991304569563041688044079961832860714096117782357257542737943974306609628707306472957227877352324779726217447620942371415643569990417195873769807841551365135732460992209242639112289147572635806207484272628648195004832728531950904476116379791446753119573105899197611609142093940660174269372540580257580622214995969523419966600539933257180110096031619673905067953713333177284107059576713598754212822503837889609673614627822127815012029634409847458202682920438707493046356079671875656293225202396648684204442600009533244759409581999669976580134436953289000734442652501921521523823876648617160062001979349558516345494013009523908256565724885898722143213815534184922591978314825760344416233000907901460555402190016547297460192592531593744397676606904040477491394864302375649235183605759289003596000044315994468717148478135840031730574319988634579304768983627285918614144010323335915816413622980805727833246718957978970380328801201955662026417953642273483622099094741202933258822676066096135604088165965533945011764105447750053956711485661794473685589586850704630045916233716666198717722509113301430448885475813289420132903754584960819965237691238864056940884269439775261225718694705053546953388377973502421712220425236508672955300961226533770791482627745666665046550543274406423607798544645263748274261580093551042223645525719816191185655555264246289026754883827062646682507351317276939057452292835911706360034616496379133571082338069014617989819192732709448584456905575307209955489709316947624238891896323512164762678452045701069600699239342871577492334704045265092555544170921848524989427289057177382096846253833306578162436945468930814119465540921651685142327425262643357307303094960358600176177612351774922835739133364177598293336515613276442794193449125327993539104677187194633650197095398487231057797060670116905062051882775894583688003034969801930579506724713762167651702063428543121461535092412227808894695976397435697687704706481780778956837584225907417556138204934039285841671818075106205941392601692541978764881989285276645654742250373953890593134744345234483475916197774874129793452552136129132195000473842717247761655121047608884532303823468419376553499155173192590755732639932907039381928125630819479963052881362035744360085763048280264723182077982219227663474745227631095607646733028066935492255517010791837834194514329188764551215689325118644760129474572914014358196256079284535334094530157462635431813339747975981882620771789656336912021332674033439275566372447532621798168816929328487903774359186859745793676085116338406278598815642409848017625642777033922991722470240184275247090572426155251792951554064242975132742385285383565746931485910273170611875932969523827813398809241409013075008474774710629149557661360203121689172536871094266980096428577789271372632179664813503487118674891061162209607449188051349790821325562790216432704889564470863677766370464472963817893585745745067522148567271985776225859672406761655321826097490682256789688990679119932306036055672803876978245634723506238966278229626546724029669387662171023825587437904458600429483572687025240853484719204263296556912130043329379694617984212331457160816294439048848221859764026534861527598117290054541332134334205566795089548288734652988914586527308263154413833935756817447356374911802791756856598173901784124643397290688817286254953295736291918097801361977509158212275429251681518583732965356590124293336110887661311591893275190584576895279966454606814071926942039929320256610246334843444381330417318688688126818656745690683027766242810042855912469149076329195321346858848461150337997014130012257992512558921762271355630041811829468541251117402476657297019899178282577248367795144984344189526686218777036330489411376727555908579105517325966135305163826113894385140168368320653688922887190440858376772279748074756677719873991312397682949576808857234401502983206621262673760325046871345548622317247304320281505630578513768767548097580965724556843699242071243760428461489360627731245398714391574507049550559697246898714089407539606552363371412965602085944551420958897779120830537145106512586193000726058456004589442918781802526235038957049692058274944268319807458499336942200155223695441722751634812256191522173547486032856367465488495245483593239633028397396639705290439425633859327407312953442147429006765665657737214030218735612639746843027503947567574754015697690146079457630654991688712239610276363734299946891454907208503259920051595388535820752418167814720341014700269591892127407397150090238598995491580018148775466591716659582362163779662271274064860844539271275797521243808551268300792432913190694141567149876605450455328672682636065812334771645343518145079664256452358229245758177735312058213442613371243232904589369882036240596539034102708199845740377136037492759780795606930749104922246614628898129468295911190344629256678078283698559843522863830998419036947030132955463001352020004093227668032471741865446363609845709657998898165816135813284301574263657758595959978008641152154792342858534037036223603498945552443814554717313017267994873462102377016015962325573828849568876182305137347796608965896642790356402020032734275940147863652816207021119250030018447208947701960742447757603800367201795306829229759514444973177764892373337067583927129507603821642910689573719731672473244698990821077466327368875968699870155408665865687401985886749452121658991540483577757102946657277002736532661766452360597251907144353265691050458985073178059347899270462930607707529814267905768563368314034490012201719954274954805271361272523636091274449258988523383694920016931480789982500051454479199415047276527423732316516370045057856528081716069448081530281402175061596406336685548696842857331141991982298198621373996698741132955076439217068305187915612823823162138452787846776404165263141600400456502089391448071845652975161404606150549229767413469831761208920198937130897607508777255298690608521941954131926823431229284060925730331177100057236099290683924008416378801321429104684745396713756885416504147229581436006441505010702851993767270292966889317835968068114477254085409800522944506089852898728281292055228108082111681493430771106555247091457269090661021715985652533825615192685877703823825769927696550960747553278459519033809189089638385854967857330571155246109983364490584124295593167026406614534916123019361428768128181493701209960694220751574161463802009115061437428630125731551915564433416127231441091990200015069456845829780008622123185858556900506132516737717852856677369061411733739676474507796038987597082849023019610862843122136549736159351133622277616398848323448735875534326245859015535485073296035711758053770037611680631664494495147562254942533168507677012461768392822128780056821055706804621535219882286108598705765353473428436670749693525816956606767562934981130355593480573366931087523424141752057227483929524622226416636271279071884351137528444757313181254090256192317646027334666231624734563571722739075853114105103251616349285018253460227508741650868696468367846129582763145925065121260531240877997117767468386545562747137014493630796364011457618346226502079973915050743463748785399347904565891158058126940404640605686482403339512847037928281003240972770326674597773246088393653084300780794023773904408916681706049837368254472638516374689342132348916897925589293928985292927692542488974865526161650157733858121389323550664878296156029833906294905838890569327849348920834728796018621762292913925185956869752340140951299928960789102011086063607264635428091795430501822479662541127619651029728911267524005269497975974984166271655682660351919823991790997103796885203374901039260261028318563508616075607566035331745339247572337231904885935719862917375177518569170098416678420961605413722294008898587200140801983952654613344301807668764954281049321296208489294459311136438735340482391169742447473720569629114121214126203264795799534171645052418529691443790062555088230058589426470399910393431091617108774641148559405621011657374491955809741324998381493428933390236357022128736232498447778877073291024732298020129444849285661898273707723792046398468916593378235539181606823495277424011419174344240594026315501848853232486810316411208861366315815352771642160141291534361970224219075761832199818578607386502222098722132905983672534255168567232951574410005184884439996064792262838534237090021809584828553511368308718344812177235170982057305017659093915605560768114333472758257136770596641992469850408979006048599334086285578824359877130704934704492495401398337662813713374305676939682816617104219948612622355763787483711344008322600871792014925077811543703572117899928654581699885655753855926297296694876367204511819082838566881130833083966286699837496827581170136527984385568871256477109588949060380208566187559932558619684210912103162487590959089795589074730486662152474317152502526171861473694901071942411788498642253744623307413416428292316661794091766349040511392191761793596427611050063916544523705185006096249692306477953252774727259891594495764393015927377289904971171447157827121200915211996334342284159843538111259069846145185115631067333920438505738514299231454954042282053947500104011993830951869557012671198489205539919498072887610660713640399814597719731204294750256397571895706208341226570793478061467268238627837392797939937149935935989692984951911378573234963150100753250375597212444247284949007718850300325322947279688532815128645940579284207985615849570383748318177936339104464851489123209042752264361602599351042633024556024788845461070199551589759180140244531700329806221195750281754618790499512464501986183591999764621204098369571864181498072605693739610346456892030397517009610904242329576511782910773668535762215658291527149255486700000173842709342886257784336028964857522242434484801097571402476098311266955644510522493987995016268902431359457935844321183781719820457770301152753348431174221509319555509788208510357464626508650224688395723817623731498934945888335902437788546935596438493145077273282971901405527595305140015920224790743550948502424639996653116045018394925941889634243238334584176557740509687687959325784555385089624837231493503074744321659274557723565257639726018623860241424019179061701014269626755257423854719021275631529079900566160497011156659741463498676055090945831704550634631550267035343108988110491273767786724351144088350078981077047748192497278059312052137113067318337613789210095940662644270721639174625248706411875460763666126595509183302267946615979240858831113588806991267271432184316653056585621250131869887863168894384843251876244205269148074042381329340381826006394038562158276469957336891151767980512044953013564416700772207762247797312606128129775311128631610960735394838881444277781613065202295858215642696263308819204866064604466312623087350948756408723876210662150959218311243071474705425837744997052892910462396610230187703375567148040333700449965867341659577613567831673257287425040267060982867967026873024097762739543772622463448994212613953985018510386656010948108985260277175567875996070529906933480914751491407605513310377767069766365264778425746420055900026464220262938550337890358222932112147940594941032693527145287586301959497066979110411271091664596661614474233698112056737143555119273382348681899261938409162280718186127260790029598059439643090381334967038303438945464844504538160158026423508851475768101309439120368219593763652536994946406460961527303636533997182382969974969148591270738185951282147697296308477282665548018121075460572150486396607954808322015227272908534939223407153442520258071189899183321976986176972011831883654406897189627565483182129875503091381002603752319211972731546881202464953459248852262107554596744990058020917976758705821647226101647475706847057458341281086353402814208010516700494033429748429232952328882393589062049943184593824834508600987507631282778716561205918366900989436978901456876491486571448816906249623668004161823474668195387382888968132934307817955926957018707309562089366353364669796987812252130008512569096467723476977417388313028273426555908599014037487699064882589808360323638929753329788510706309864907117795364789011799930381834713128799887431935281626737821574155185072251863615320942286574851945272938006086690253445637543974296067787833369485097191829613878635617425228434823809933521638095290478869031302871652571786246571108061662127910470508791422369313998379702076893821494033523717229846615952522236387053046749085813589596925037892448179150710718132042629539451781224358444918622803837601845094609039304732645905055853606584219364167776765723642210634482952919337293344986589345004372646389235444514593279841774398381553132274529789557136133702079228474487877939532680329394770959117849384532535807094642936045816958023848564803567218990005487344831450525437346470516276080299625404440699287887107303054155559548206720060077657947351609762614824042509593895788264014962579798775714653910137356479065520998446215051702687811124479489431262942093880579411432989190357259752926898330865594236758398296051741108212122241889916629131284323057582113975824536139184902691003233888790046414996226861992677166590158649441389839009715146288183752094338966948513539870610949534811175746568667964036622083864563889369892938106199904862074476062166380332468207777643315636991527371718148355017164834235499121270876716951887705586972368065578018574276555764152239244275650498986765811021346676204801441200838717077846085090780912449580715565859945999688186113274087364379264238473693565819581546405984145217528853275707512165711397803982322087544497612672374186236764994078654875787449861401821045395838931148987343509301392152576599902173390957758556795986831355626782934235590435921420296077450891367100208263830441266360200282379264311362037379269020317414677850797669837950017533644536421948029478719754385017008249612270037103149972935720159546377528204174712342239993468717053737514477131057109345602143983814505616669785941178326191512911718094217502025050612807691889529422814183348647017952723009758045035858019183653119911434064437199967635245632170184980781716035347301062688355670686476334806095530007035331163106132745094609382468307193134453743617420369693970992152656272428170702729582065629103440611206955925384464481135140549425502309742479671668754792246163034105248223064859825061254974719694025684939340107343964379492241757416699741900406278678410964717732652903848183346853041017720829159670709802715698672712559822994531453722913185530078346367045982664535556733588901308431510070924011867940826205960882413678286653860825399836931125443343179737272893442695543191564397518542505575392321296021395367451613712048520771297896227171820106597931681295926732920124892666060794474615549574873844499887083820305277614541987418003991278652847539237687691184024534665137476495038555570959965507782889378705408403679615267031774087436121348894903133993179269442610719371916912083178734596278814968495792329250943794405710932452925866544236985812970524681050530517079506429923391935871833739973855387179159924674450573117308252521614167927828459464653753313699360692666499366206385242291969400093614508337671778703168447330918239848103243417380075109413899511521526489318385101117593517633665150392841984652877356824120469870252197600097603766910784694843032768533683971095837765857608559250472193995693648885748704779027026005548349554060216992823751517090677067290095290988365973244580729104310223458236185467086838822656682851105159598573635590764533171668018289774977683912221010431207855589028451387034239082454560389282061677636658382047570699930406358299393712135065342327815961989864768669341427632693221553051613743245959967894941067987603629251620404968521173710282412147156671228192672307014799091770116128541100799004516962523250154507898387419937480668038761492623382300419986619198996087171078950101440414545390364679180256706279916593955863513456402498437443504099930353946470044809177975020778485865134111215123654484868762432699440171797536868494307466276909137794852889176696284886682799970861821269226896933679923837459938032897994969702013711149988406112209379865145246596194436681189656876243477942279808888763128176693304049139287009417514120040766176550789791730931984338969159852243506783113922090910297151954901761462471933665081867327057068182237259018586049918152902847722551512911070618161000709387099024523147909101749188875176534629040268170621745914165964376760155443853550151823112994606661867570081104660347909146641206927110057572603850756542105043626918080836295101000171508648902439712640023672675609722129776778137731236872534053188546037134699499753512888763102345669731027718493005879826536914301142126898966142029755570435706910521381657616735274169986063796689059717466449061292912622271558082643994528304160278101948881877556900899134066994620447011975774099223107227594992312211405227004573457065580339087884596771152039873992882754307751330975597598619729965918877707710016961499772613820609778328226150332519841481905438084650624813097328237118756101391924666489884620001402579405580863052226138821012352889731049803919325952393784565496647825847602258821014436115331295365689341372470796300028731078080863555421464046454815615725408413078177053758511618859115458445042775331756529534579446356493353230808819226543193050271121075518638032213684830471547910175295539391078459236966801908498300715857910690746497073036379471743173122775510933928613579895626766997634787817669941371454794470909445732446815755562541324828428734052872124554869602636750863921409142286027992588821308872290357874480482958330472417397360894368935574827435027316167188747168315061496463087397417503466939658598580431858100120263121519677446487186464118169315033851178642971583211249229802923146301714445591686205940461589759115192061984299630920694570270152655820571512150631453899363788134587054701170146165720990452202266289001044221553383213541769959122254053496181299878415047614814876108100712564938601183535502320046165404651238226232787296075827297703772542303646157451413498413717776654182457618293941777195649209499421447065701907436382260750194808928826746930241746008425710889198903294118632354240170300399285965552693700261182738776941742603080007945596854115245882136850839316274381473201360622017904892097678203687520574117494523074975976313459785901414594583442771859010616143752688390513586719004155071582213902098050517348859342440582751017672666240300056664522777213373946556876033653880756172684023797705614256015157977848811170728514153537727314577196695678128771129421874696088180114082198848369375514247529021010386759057789336063803491996591014676091002354704440623838477362995828924624474957098607281817488898562277434520537332673713602110261875334315044324574328654610932682470780421524689021358815129532203140864009898831398733854769327561959116306449126331165998304443529309170899386793354436976594462872152698610565045684300215218032418203173471616488321821863205535820688552990851608459810272707235624548587739228935123015975197329997897592967524878629826863850229135179863606826202969739902226822801491130886248408334945215663268794484003448881354949656092375970983576592725799408679293161622340109512920862662786874462133416133223973519982348176677124417533712056975044038665267447610099737981142751427878539286062166572920231581557535796269327051758188782927222135491201406234168361320977828271486007636404608655768460530985794855754849141194476645201145357144477891376414536658587793029693845119733847356382838667048559682863236812048884515215808396495347499871333898962636062028028673914783164711486861571343704617866020567815544115752957666539038540525288509001746925452976714398986237065220378281540968299233026046631850840135137566262008929821361379612102215544623410868655031020125750362197194963180758524919002243546047881338512316684958381212974704370881530734654486993739451655195572050332477845141917488179845992898008146276377023344005453579649809462036057394072839777720020995626707563208224769441290484868144878432781678139997475539644373389640359664995746100279230829667148527166072262278449838028376806919983355408070860919848110700189150941151588725247360037817734560113115355373427104814467197532395339257619717173559372848812417406220606288526351998750137980036498235813719877475537582039469619653351545150263242666786437626064688073283208369446323079347364269769439429315450090068826715504910576930303836842910168139956631680624693901006121512251998890365327975064714744697776715716201284668662598644072686382791299841197286063884850768039377970902481437273779619358580734062021265653506504969122565535155050128503924301206190449843852777001197332102194892654148443643563449569936525855865789232225103983617186133919933359221345228004846338623961086044017510832971580300970625171436622615143190643005346484266216071644308557212051507493168524157910103392465970720942652483217504955882698556266668146777329644800794974712019265675593424717292514702385915737860855810658019850414513187464364972710514874253855953760473638184093353575737827206517817357641572875672761631489779769487294820480239206299534728143709275545110665068851950560648667206137166701757941504811379750068359144215562470395184026070756197636674649656599410871191578522184008938161178499285923753220740859844238607626596273859048649422330841925787794304330324247567930232202174540542492188599667125347341125297393165306808839477715702506257908207208302635480595630186993529355239707144390699249969636687735774773337675825943650431711186955426259024724197217877505225736053725124050154806255284044956520049973187366896496853344614085043240966011689694085200742955016278562453328855930186203206132962121797939695625894718986959843174322406959247346824797617894529639603874276666602539420060706517461207586053155050186257505381378096808660882079567300798030960303460439478432728458011119585735687428669764487285730744812269980198585568062196555122389164987857369154244034320768801128217955752558407033943408714869783118671591752684707958948564259698702484931502290518679715863629456612539459743186776918399174519355200926980652111951669950052530768510935751744961604582899044879334487200695848188200971095196732000892568063067367196694276859930480524343392005772467897350425957074131802943566336091873598549932666162571255897109075833184617949536842461921016912149853578338329569567558876838281952413677731307384853476881659447916201471292780101932078909607666581371270976059847600801658384349351535253353071874224696992548867461878909018280963970640574113296936502217531325673920149655521055194347554724471842017220049661491152540683696918689382445255833216499181448289465779487918668058253663534415771488729352432032234786837837736232677354026745658039482916527472131138090893121893485990843461132599425145396455848466759682718456964913785237125753684403581763185973967692014003961295258897931630419968323747653153677144556082946278409042105620154853223884524414980461060317188970274512751848282955518888725577982274047282292960068466919669682549562023324298486605399074617198542834245281373748418622671664293946158322267736492495951026159387418100146175291097094871978034086073736397630264720458972038585787339328113691782114228863215696001053584951673701165765809815777828202474525200408390736409516750269222004191087364714932156994503008238382077474948494338485029139236476286748481522954782515224904259333280973160702160073251262025413177439146971902979468005728039707498827368565862069332726583056958938231650058920534007238380481540419021845846771787372462766490953038312814765927002261517442394048601422883221315873103817238009151960141078731895735920397619782333103774361500269154550755195819424069287803064432549747077406184388598412036685770546219571155391054852759398488735634380060037221659157219611521138111947427402813271233132636093810599164648212183923670052666264833257521235340108812944987718363866372616105474061500300693149179360190799581208039309272345680616593960839994295567092824673144543705497008553780184133490376129567132799898271381963991568867435066078296847278935720116758999816500947165401664760464475662836914634559829286643746007232478386574476582597036560516297966374954053742416594884241450954204040461314785351244093988117595353451789205080893822541479584129096937043619939847040564331655826167878587421718238116678064990536347389892039911370848882631167420987346093595327183087344856584277611470678737422206352732156650565627238722428927679504613766743180350091376022474503542428360906388662510587337858530751021349710368215750292311609555738169875167862894127797135866184318775096653436489090010095727197096881978896320910224863326967480521487692545789013351723416709339540991661573290130967770926550627172191903674821101834143925879706737138688698367275175044296660897539682787861679660825368425869390171855591051299303428490098529528357763662899353451374501528198234083278751959199002294929014563398005206572319167956314536027338547654683215486275767167642101536866824593995629634749112565041492495419321525283646763081219598285544829395630391378938231006442778855373778904826708605915909320829261116458274384103795207758157599651094662251221117626629218975871839793536952119164807287501468182738423716116227323643465206930767965806849411075173591657612082021226546091804627970701377301071383825310745163926085908726069156850557242393643768412084424572649204281113920639476489796333078404366480156664168810606742256967108102286325554042964622262455591369530287906793026041009984438475102645969110999988773128626796145582772330546120146944159125831368161079658297704673823910732679742338007310869999843895138385390513263620821897986142287454622366035276524819553934286583625173719516721661333587082631550582054264578989084278823497413255334166468487924083337085223145459053862537035147658972717700865109896111090332803013342798651397744197504182280245015217268231202933253973391516061974829562725553248433472712713820962686518196378341033495718022894347872824300770760585892019855027860050352519901444821203201373024287853561680359345026845026130738880214189540548289004428929550281630426863644519645214309691634518461308506029506725353275128168720773690457398374416708388139379006779097507159708142346079594596003311883357233899464931110496297841738832734477208660169985646698353084684217834659948924700918323724689803163504434343522143299668040730099422771205018222321127784548639691404611952154611329545361597785544952903694236861013965151295913926721682482885272053250068697694136421401918694981893608971007490215921115911733799699660348642040094213246287441352358420721522694838048993271602409319541864305203528898909849481712296206258649706417065475528192409922962468581940021841099631438901673251791277220237675717597025735847173796252388041627471035646836975891607059537596245001897437153459369379026078914051352763838677799590207305168328612143211285715958534722671243674363360039362235530539426238893689697530754793850651609787151181454730544813072383821091698923187328313021894256721281591518090257340200616797409511290724315176263111915793535893592150955312653649204811959695884635884316391038625522945029218053974044821701924697392565335998820413529163646330608911206193111402839307428957587428475516214574066525075067504857698867368063001178763186989288857592116946846943153860438842885208842254377997882592260779848244124777548253692852227767440701737490331760155846245594395966572640064261346420399275406490286719899459411152003258042723768968672652625465608234444101253027050365511212507586016991707426994343810056909729123778359620089024266124344580469156759047672122039126866583665654768038474366697830678485043719945785423843226851500093421576897665773974848174640128727748562185275689654264639369975990125834679304950965255790943148134422790007025453314187366278832572123710286267030292575491265132544417295918588671298064609030555729101395133371031223646495334510921658451878940091007580088304817671700201471944885944867258121546643114073148888247141839938330166374514965577353922720733796477717604704349078720977073330929545580292693981601794438652763835793382758884988408101222741963841903950736196714722233456054418743744911401573479626111639417198998499963060527855816451692026794823958667124046444524345957007613071650411032017434334284565744711945917742382473653445688135916850499862680459960705249981740555253396938753417875401366555396352442079682659784119283367858567636696367189286401183864907319994623084116661857207245482446540685855410993380663400735123814533753952040817810750921061082439562394983057259086250077950419464622269725501567679946057479652032002075109330762829782085360710318248042520948996011493988818298838897666749845165716727199210665425631172810245175976682907429249157121687209181183043302361800659978502123432850503386348703652652733360580988460036228141709837814525950368967093491634182465145525221986977248039622224113834996282026465976334491722005727421411235345842058432927614997633905942434177919561117554973561116173779289520488327302161680383258874808984003290215761875190688591431616568721264180371555225347706133674465575449337266930858384079653332561943828214382056938225565223178671622767260323575345946297181472266182674197143672816881842181620317285514940447910514496939296451185388727765938865801752144814200112284608602463274803303390508797278978782777044147764409902649524022132083151562205837681153800521778312922953578262758834508569611351781385986213481408609780985588419725731187816184752836787105637486851289685873360960946337455663372054654442577396227056930882606635021339455980129209561353164317843401285406307380684521529051396520321503116142913079435303413674803588426270526930759690404907321314230977950098754279098029481700757061642382562247207426840627945045780767032850460098945350435631282642092220203802728069929847216934045201211314676337143986402588957064044182224263288162286558722029556356647782689609908489719146421615944235569048387600715138412611192905267786921920889536745737838987157889160271757097851464071497983609894350882106344695149136592147908899747784968319611864019849624950103314129768486862873057263599231465263764941418513562336280734971578022891583274235678998303613655496814305422826424520663617120327080434971687775557235036050800495164453667233628850562896050280631820100500124202263077864823203998541955308383040640581644249027713296006816659204007357153234080164853749039219510515438846653580222196496543361999878071841372364726309569003048241419528072712468410675906585970409134086686691157697755141416156276898532905394759302174294438059891168032724959119264030050460474914638822687159677370401709676320415164434183748680065660219176893475269303089168315283044422057046848986021132855722911834685876899264635477625768193357920820221618243311925547997738582901993641998831370191744160300580343683674762571109122937649637732046544758682297932897835605528651521167046196630510095687692218395814839284327245319746687448184602976385016743905903014708596396287326787152497791939901051009532678767540482565323201173305143057574815408394647787272312363661943832460670555521830024142781128945175991849051236686959925648484755029353962999747626759131382571833534056073790950646755020483633938589618745177545478822617610693143638947769569313580038099115659186411699711451748664151557180128495679359456822158498373453525050976999171192558315223331889182114426446559454738331338819117339973807162897339624505321800656874693533886193988973656013139542915841221585556244321831308204767209073977247489273208641430493291201933710010851853788174139011000232004503053231058391279854837351049511873421515849801247355332108711574672950077855073387410463482934535831123794439722700498323379943242657601011050049839032648382873112256028684270663651297132684955513954520605499685232580991003079562533832593975037311002148725333195049357857385372703684087114524523594318335512739572825156110809340080522702523359716615595536731306400344573533475885100188534086318729190083576984060898465772081595199888846645474748674428627491732636239377070558878069329281918936699121208078080477410860230434437521674841784440132977922350752412216938288195649484313787666934940930300732249773264004168972084423727021524646471724924989027885971794164739175906086442147466532566373453529587228844467456415148684826227570758650353871963053610561606608803979583891441678142664353820802523951387105649980383919590640868743545573780890726847281255525795565720545259007474106048170762680365138390100552325006948570215464466074229444455509632103980168618262857381999582884545864175261483739509761353457583313457421685257601221228726038414714969209226253464705075326552944359369766703402287141190092828072137474855248875305230929985832024547252812421362596653024543282188744391289435354635565436074158352434927123304274156903728602602611078144218745954753035829206166931393431314356140451535824124285052091421669140241016875990567801970294017740696292436031291743084592664794535250544628806566616974961786570169382671429258035025022140748217255169827536672127156867298854321437725614004524445632565769184271344862442195963936539140054609754714638281157016267765078214332435467561144732346922798875153464224808615888102744779547140586011838427496873879451205568471491088913259625953591400285554610344147986136001058840858510463428464736864328078616524893731946699033384524223610799868432940215979552078345555108415049287521727346645721761494494114955196882942614906798238666472128119924810683987210079747317420054245809247149845984643537658124840319386476965337707498099352471658289424338452558714100063392302664534009477368433538587893240837586788817870864284743386428575320251673313298357885082803821469782978622730644184053210787635257541042314866930438799435359934769884738011332222522093941745683464994125413838993437102601657354055459368127040372256663061677840379333558985589246198556471307592916976501276978155535433632029196611261257902426346845111238300797631848790918986447994026609502526729520825190735212617094233529828323669766940023575818266890776715503486148106683727877573552381036337936714888228683834780359572417158863154680750864047955757896964990277328764223453430556411420908001078814704236261249028232044945127647649416674174046423511750875379317389149712782599541001067597987927171074537896788387402145597582582640545571936958288550977308644966468403517141062388237166618286148680349525790620078816423102814749417327229861018106024111280496623700727192622531820441364801570436530836051425227057086982987316540663216617009099469676753091236410241035635677679948344377114889588005598227496333839505630786091301611354112635877188529685153777492278201158332675066934772216355906533083096337759143344778782798969114438538622811871900535832178961295639356796792248893837958029527738279382687504661942440851486540343311148853727408972780372477191486290615759393805270402465744749656111635622997033714510477604985268007282173318820909469584647966750892208061181456716171716517837547585548770737672896460477932924121774169568388412054623124821364347908381044404011072673025242809413149337437205915835014993634383491800451358815040986421045750174416319166449964921370830035724482802572073952047317914204045198188124743386490680937440443034576916229369081405293349527067451285158622965509190586556378542410945251983689924371523542429496885825363972563484858376469773138810397495341883164983845216782952781951268759491842693765129336522095185061966714299815044289032485730615726514289505996211896924636357193477551745296700457323221084939293636980913807164176515973333869355380430337849466344849722551785788209701956946359925130020656705952730497888422627627495416259076510718750484419400353599611400396225496672021458699091438885021325095165760690075361766370941175725451910108498768508467635177254816139519917543454638785786827642145465547441434814428717220289264962869174969328272804780569734002588978793924301453638836620825049587255809070122699990527222578239366250961949657283179699599400727016754214296736545803887245510352727369004023801434764099095383944420971178201119320581852343938923339451469345809700375981654053980234751661386100866030704890134137014670523272985101733494020674262821915032266188418095854661258087778288188985881537194881115759049225505898371270793591180568471139038017936846051811320112811202096849583440080446223283993451685633428452870767866505550012778984216366361542324086233684825283553405969161676100217322586156453947447952237299986571475044455281695977187790220375232115843141968088239991609088719194810846372042015792429850112211744240699642107377871748293600970829000139974164016942686068004954888731522937148216544111304346080086681618201053240894916894000014116254508977527531129636760699507040385648589186362576150623371898163406474006105285374344500013708759343734652177710996479932051173180091925742711732192487812210666115591588735988780333081814606724895686687405125066874022988171976316504385488875662874723875597370802217663953902402989830044734746903153155862251303774293893634789464089811485746778540748337059977627262171424952889718261764088878933945152738548903315894249099349830376642922175709614831593212781710536489819970144096460023187318592519218020837487013027616822619426157643159074438529671289794474350921211239887846544193471769044108440954951625838726818428376734669865807593921673694996742459957591729274994655938646890345648774288866627186158288091579164449689426843054030773320267289866723926913611954894383974287762940647961127586899576015377854537450260661791903748940213882248528491919381451136837482493158580535677102245964481412389285249060611009163895227647976289440925850433601918503604314410092081763023276038774179082116065643977576016673893948507802579100078135066085449820603529712059321233016279866286456479769016814424679206712973018601860877227665635089252471527829564782492891745853729694473773928383470496774614329802653853805095168350972704143857813374042221797033937909012877234947870878829696911763569976406734855539997974123155645375797525436014919426864995616923927959310877867160303996215349409950431408963075674266279627902965871682634408609863069658479930277410434673535925278829910022113113487017720485026846244826760208183256000418585524222532659702382062068504550770830390995586873948670069380969862789507835781732452242026641466988367648088161392839337705719550759433335496660564602063168673093703640987679856461242656855403778718039574441103202119453709449015796430015028966436402254972749214657758137714078311914137689254622772998692160255059500372074290562558119169537485410343044217736495525500662834174785640988953451246555347343888106356895616723954101704982029188958976723468422580220149665220057390041513256445734634683609870464627286153131373165684991670860564566803591329582833958208735570790186229824625136404619344892039637805534944335165947753254745688490753327065974625365964552815688906500327954699009504131622572538662746223413761269618619322249438942905410337680300501725788155360819232864623257688484333576179703480702681418251271050135058803576329942575032664225970083084063269564149044566732611059984792213461084951886534926030409165554069963982604828742550910311171765336632590623148863645836085687628630100744401519430730491387409248615407427138628574767032714200498853348240556405467292264701140261239000822008804155623567241329237373970461025755534675776278321920231353876920976167366781341906613509541040687815252241445526496252111900602057303176011150190493711812409780405461599246704599328453731038842928601352671279803443641120693985767902823787830046924377200607273096254655133558629388810819116095506039418641940816127951672877630302413913114038749225452389976558059385802834979314368615542741450973854697685911150732312789639184140828405857458549492947363738155658913551421863706690042960012593615191682855943849923875883507329224692679543958852689541245955757434197867792656227860975078567096009207725446491054609780070493751505004778685312096349424943636897566597382120203108763465664885224994641727710244022019190867586303641827382369598079193873245655115809554264317807417612247862787900925024416015557485546809249221160275089360336528839855201787379234187375049586392371880242877353383274834878685714621563542888941247433445497115808289702706085547784895491905485018839414754562272326532934351125017359861969280888502304970072754816912429370769255748846145845494264215299413733710187960421073725354142300162583046225792947234879097781984208008442995906447728659886180972601054990173762282925316471994901492771536350360615287264180071017517372748625815255166131907905859181269406916343301325644024040561109345291425472979279322038364922037208960322145673889981871363898551855727450873890312548416205500830331816575379196293159549309626193227860055985428757116203204080572493395209770113348731652635534945412012821133111010315675363842560015271464805585463248589370114093372932280076510005437952655528516967340453793377574549528031346048812136082196965049560831667299858862210435390835566353904284745269229001066067077808479170235843459825954276659154327822939914313701905499156171746217866325558835393900620865996789589404485783346123392086575102198606084401234405050357136625358022190233576275889046761110233786439625595868458420578988966472545022363820195910097988303564278079529446452340261851800929141801324684114238228022886882172938900768557139858600892868431568781448210256360289191530604427064027517557159357697827403580136359904424649025374084987338776078253303082029079541196524996180422413946855706855668967034212816380262168062930425694655667430079516619639803480759406969743829044839331095049023448166599387248646810946178495443398354076537673171239614560839328834405029649666662240573290696463236066749761569115382607304033167315629995578826271857660227276458863420110309171530277598920273102538534836811399073329562047148990288203143192764037996574597039318714437345709869346973829993082518859471125243202791960619416019659404975641454947444838432396829356695985775827199248894975711300317327147523067460702537761242950890984947358751637702906335035060531318048946634921168760299664859984018854537217911895983089026136819774149108422674826312517071333553150239850068006784107453386312111992422741237478568466995980761771268147541807655202042109104727709807075650984632609300626918359793180243561420432381533821971699068703805299341160668975363011338785756595677697536468367114960007131643380442067271297224023083699983561383564020118113625085370673509200052119139088575874799832595900919969368009793925320424567028994518495437241093356932675287527976861028056948318723615748235805587395000194327307930396218198660660224028966461047463282419843601693920052923081776299565728923754355869173850245654454163631138398329316777665455539701347155160637955858562966320362360885860247955886988079185549686431285472301628903419235527161479459726828500219068558617274160240823966407171590931466714443010738953108234817292153080593079758538730417318990919765046592927449983409032855611519685333965639760255781263787107170437489019447797426737515738393969119099160090728791703740644764752764435217268029196866286400814015616794855927301095332268944736697116507170295880705912457680031924145784943519782370271699594253017377463606352256850266027170115410852170877198623736329161918609640909944229342351177645917124674451415457236087832545179437409835220923624733750021232054967739035614911025304956370919150002280374758225421905814088585426701416050543522829329784623509861070683443584096239137904120925214171894963210469081728429083570190820160933305803837652158497772722009952218651139920373437433072187875802110793471509722093528937345082426842807054083695481796979421078455756890502053262610913938618929305414714646600161553331198932502183897569852911537393824950444853139465500794230010263264023621330112093856320049084084261741722155400128191055820362719870004873271888724707044050011720512122847286355947254127009825025004424907454282816643986819821195985015140396123218565184779396508507976423895544612946168217515601774310991788039337599599446525298252607478276886570088344800958838826225581788560162975694060748955831225566332325672098159207956870147494861033788815450783218886488836833138743177667059851760605290289463817443884865986763094836445778505233508561446209190357865500141808284753459785189065445338344715126461495665400904911419616204437593951099310925178658416581422092494687462836554765197117400427875714636999402060466716917936480072514786127565744493843000151459194899516568428857420715552277839721571908135784411228249647175070190548174743251647510144596568917366333556789673379235833864037998477749116396934481084006278099520398943655816657727102836648696296260843907572777948399504039849843817519545184628889433262297361757874051265320856656763582725254712090411773350536115996715451290420884487047445720245131626868679247004458878429126024848203433641003127847900506564345106950356513147887059914645664129197818192019625024158354093823725541776056955353502694446961556456730819754215327063975410713608195838390935774175977051111725772796553047800999233496334150278371475366700249884037516377979724324769378644946743522249861417287430292347664292961732205941857261910289054399807317831461039093081834107048844602958821344071680145767939957518326950003126705225177640356777836727368715229406750058878786524974996317016176371124182728280875207162600394932920400212193302471504432968757510347266180675664863828389734094375029302097274277563029985860092992416208241519746343092458102003923594467531315914679128074633685210050830301630193533569711919226897617113277821577564475489334632014649866415449882036651143557322450947117762079502015216473666683759837649637755059927665019902350784480265664650518848208428922163318948048396517291884932601432277161332246681335199113330662434341732850700593477713369398321590786966534185934823305314615150551700411275812508403301117026812514414499455676357691682618644534464342544829929271559608185834688680302149022303172233024125918218673567162486941935132373646992770701712889929354109782857857666412632894814380809011428515515970449285883905839772310953868395547228002559105837631427247075306134767891721225984942696417405258264482368653744512999634187435259655156821407354324391963417918959618582629353735063878937706278982059550808153017186669733747541689834010229096265361399795663535428278704982755253711885336204187420799066893717979626761423186557202295685772748058324590085659394486974743130351301055722001173293546952468287105284030049328908713725241067389719549796351973377552372417760975795392017398678552387896575688960764506675514165570986277688169670166644342342051299984856998048631562801825960132850457556568533029815470367923826467128611807632376614536934838623495422231550161425253641376500925090797745895814761992848416094486630209680880866733918872090945012272843413075960530907226111667531544896078319703878417158497519024712736928384104765383012908622190921942798163180597436724257903581156175268055730647223390781184064686952668966933823949952712178407446908781028665195621507144762795684854065108012922647921254238227859405791229580960871064728051777776528392565941679867820227787637597215991365660420224768046087492515148386398886695608692523198308693787054870615069042134958076795002003277068584320280325826185575402530995749431370716438518683267402398650459046799639343412115881114226791910601014641668680320754391931888956099000923703511648921462305965258670189855816354396759269818276777609464810022290388627763930469102128332799193596230787638256389417673218754960223604408097602840886930482081807376678426435339011923318953205210725346397888081654053777500987757375830491294655442764046003784515214181561267533612486054247463264889586284637501872758543867964643213475821204507132650177755055605018727067206335551959581667359923040647205762299941047958363218008528186221669886563460326652346222900577722804055756498187967067130254739434396887353511142892192538829876735947498620134050051338053241323146284618107086834683107860303233782533043978681423227728490029620843942870411227220399819410271046936233597995486423806350280920684791057859274152806284363401678294247147530927428284441128289706728085395588011077355846293982332315301798818333870899764251578344094973173054922375490421976675975587806834787572126104696217136656265309939619738355825107627762808191842574261011349808680951968106585004629237676075569710074493868334988496649228204605894750121820953295256772434849162068237129292195117255819630954351674203910629898243604329635067854267123368427723225442413538514525671375592001274252283131855402378940358137527401502139521355170839592863665744834501435864767433846867827532288836137260592668564519026785367456564756045975593254530749942706143114248466473416212637209896013363380512096212234578226648566368492099608450764553077835937739017030339358799563450947157513505769094629089452724585088978580971577550008298277502463980563497608751344045456153132788107705591066771528570139725044239113879782751771109313556024254557895425684733765812726607620057138441085514001765825895279518248535201893560828842787300476254691626503779866839691557160772327746347570992617229397938170825077294787666954775415637247159209639715257956607658211188253101410615363542266701915604581947097678956632464014545037692037131017726636514698013089870218854296026338202117936492499047088993916701074090470673929426775791838022543596347786674466154843595609642712184786624069916379252187431714941744598951810465399731032883323232159113531665614601386540131745267566784868923006710215066807453959974917453892330478761024746879976481875038077929229488829183269477042643331229670135718680187383160558768530349151477849525397202289743743276957067138707830734567765413125419620529952799923643599911330667159192522200047943748257445766086425609390813759280143247409472038882745103805770874712877128561959464833302044169215279335262459380477043725913521999646108950036999429636716580332749129162961648153517535858068815282165236338035514565588138066609774265896128305892366038323925024395404594719127972656849120326834688272384990408452711434342806112661328022614492473532526449479002276450654358244741359810781395638137816575630359910532113459931453605108836696270232676259818855171066391200552091305991003034703931537680778685900235092677069697662386992445833897813839069723377267740642188504501068294654613021015998330062567460961429670292351745599981236071167904117405890453177777228261045549238562545564136016046758977697142861871376897236591840358508986900082354815654810636465624638682158148589467305809426714811309806394746748524359926636821858985760928264966316574946444844936025007515641331803441368444852399030737754981617544548512551593799463036758618164320486926479277649436700192148980348092602542417329870777381995070468170204408373961314233305943297816106963316975781772628374051200411811615654452928811016375149180159191167710730953545518291031835971071794561956717360005252463859488339470670833266076987056015020158848920133958558470334526989037599806296120656864242782801669792459245574859591681983509350989801281814865691259864111891870160437380829071516952425561446932125267010096578135905520617072084565269123460199673253515834018033029159021534713227508038845263931626862539991522558281010371014648686156741791307438617847031438246170478299803037701635180636759480878548130444593670988096489245183521416497442590815564167007503801739624349191753543930631228641459147273156310991840347605254338632424608372708343602400254143216642467847265502780776715830427856996675122895987315986801261556872224585077831927390046662886176646909082961858178771306652270282017211510926027624550992564484640503223982537063480857275048550323758357446316590690327640347164922607081709808545445158641372673632197839667501646709688745394738574252269787846000092516022415520432281896899237311251748404771913200222795641059873644254534508011303558511649181926649560409304932557616408183329294975579115122528249335052570679387837177527955156087974248002720709436516836964707383647693021964820575492988879389781923864536212554684434705338135286067804426945376431140405734333005607140999647358639451086931332795286846449476601871649874297192216690740063531437314011966899573181546804006863471561544694705871429598630993048720284439975092485402560045098339621457370813630226479599707720191935603331035458707670110597835403330865082003053578872047976059303980598997737330913331513849150007745019168766913168440811946178890478724163702078884183731056762434358841404025018568857520948544483933345690062979224946518747994703654843340470181296426335152827675072993349742188555547826789579958089353168914822623110772285708079750463893576673127948744542864119691626824603476811555031851198727245813442196108334233293590387211908763835796687758778614224809010669774194720888832259574885673309687184452924307179078696281079147543109377856152195515740145357475841158306322926042453672573249790413088213487024996722279059289685986830145815798474961319476382572670516576459401669311385855967179741267838915016149882233265398898819519681638401464696124569284540124179394810605987592046173637628701898539610344821668590581393624747277201529174117475982371042497271887792215051659640476411342721383357810935117987735463715323328872537381110774842928008017036526128364473716432849354434590230012562171893099995842378937784579036304842210088499862664328171867538665523410795905786403185755103885370385361156541625608334270028493179154694734003575412710963009073542984068430919486385395996632544305885936213876026811604827214811867974187266897561086828064558487833577757479808444078737255576090915649014145645897427411645278729450146334331953117904367475755892930922118709423469716992768442653139581220687030563976056733775818368847527502232687562093069961669012403052641852282177007327393182211936288519939240956076166258688524859491105408854542645104690078390374357032010242749468158467856599281386763570126966549928603469237967208920855112594929903044371948087068967681167117402839349627409535784249546894259079762834139911348750330356185889718378271328313969451625686506439647996565790757572525970480754908100062495396321093630917429783832452606713263632822099104196853693393656924309448962007623258107104856494151605255505039949638832977843041061011603024911149139578858241875771199540884431065229939957676926066087425276401523975839917874101626935377536805287929529222586560373258575557203232449517824648574746390186326511123350785582983209702668080311728643695050637792300968727315143805507694849152584328109986519405374868693634903936359443706367032143356530784804411666767622837447717013173681340603545590973299645996176477787421252312011933232402999391819559130310181218949975731700248240231224162611292290129957274026777383773899779587989373066734859052407747692407373431987161260163743425405667450489908660280539928640013767725591141797719735352100494099563285206374556879606107632055571145038651420496749606004877231138911348498873139936829163172846848194167297572753965794772801929615138585036018673976523345105812148935982866715354884872588500890692640601766321428950719623459975313221392179274047003287305821123157508484005436899507778895612209673218877259034816845936372301820707324289475121851424775100661492234428087127044845443828212375826927087497367172160358388260487294396349507270581709052087087557103597837246035243702990126129892215370469877178994371060089941454802581884828841432507935548209430085835280641652258158958932282635327449886071813936408620486372952260016861958426434415843208028573281551962702868660314786449659349444715077578979013324424492505461983897149008711745947665550579279600663551731035337997217832159454045806058797940678059871243499279465015548403377745767147006005389219801184016744947068968012808430723030411490691948831909699222779540181541664081126822616074625803091491427922259349027115712892267441168937709544744200699783848901933183962986549525613199021140004613228319404191519138906436807794874373972425787731220354627996007166781128115598105772038410273048203195042321205057813629658197995131842679907578346197323006501382207949736010914247188125297938343868521341090226184984906041283008100108180356730615559842087082964930808835700080491202032951984898277308791552632880022838935278428402933808832707184188235182530629924916846275869404532075218472359997170073793738720929963005449755474581380203510278574840702392939785312898014240618173269601347250269081008574094378461691732539905190820001879422130061470747962751889199841902885685264852625643202939047844445407538267118541478409760189493657129879095824058645529786888413458167954515042847480386941573999323395516998361723256459174704086496503961876180889389569301756132928630512849008772159090329117052310665226675826529231892347373642896584554815689088563501231951202346056383126391391539876697769108271412596459970344798379841927002410010687175931299697883215066112980833606717044585376747746849618268233232967763081413035428932282624167447232133718296895354328036924161844386618520760436315417296491189152864675958286562482840100963680847852998877754869113660936004207814908883665941676019349900978341834771742177362968426506580102765600343486383487986609551090220387410215595877478881421648255289635307921521222136295645630068356313395426949642188847021578404348060459696728751854570737343892185727145636593425437031060524756553063681440145021317912202127592779720132610240776948500182275087315803010145203678767106813288331456883990212108389017118831642627200856779910835041058326552031598121164892695017303199951564761075456909789664730372211453684066971656465050228994619955487613211616637691295156851160921163394224546821663914154440744052478182104837165362668094459265805664364191529972797118485894064827941149802278722002205058210984899172695931160890009758356716029559443002427003464824313925116536953667654202301683684263326041275943145858393289107760218768334583460650309853559341990106673956077816106609481242567150449247189319233091437539242989625315514275509967756853257393721680990072760317139779008836870797709352520547724751791369396893360426498589980836411847283953721162795821413596180361794915207150370257336414713519431667726484470424506829170884091919322431643815317912704636867750144945672513885291763363492932513790474292397601181528168984233859521317830253511393735550057053658143465065291597765424408053329486484543430835811845323741082440002462389813549034749476792224006582243310128251548627894624159596592082257148359519896133532319384874261336905716964086372615146522413084008743265986167571866300635456805297275878294606439844987852155821041554214415988232493919983438368252304575583858307901082500577317172049938317559736304046545741414077797737455901569878712835806927239671412340231089116123996811556964314991652841738992926181580503523300805670320209087265247156365247425361559867765253315855515101415389419158962281833570371115526775953886337744504693078670802519225456292147723860333574442771159051530847338590574062287581766510809542156243858817321086205197666923787249809950196291832181548884728067744860755568641355921140214238325911731728679318175191413105752935103451532764146456445272418729849253761768043004939478637729989749971980503751389251341563742256203238290913601564574808074407294744587118737661789895076068797221615246215443793967740374511672975549174183798681722402948610411377954219970968184481131807319181965967027178674616943699771119530649797497505941581707979502134163441647253663624705008394209924786693131958073760822663135806417398568200538479721836985960481481958249223884210125244424865264618977200974114779518039174650371444414885925230467470861295471446040628303385713018765820986175205294271657695919304196717164085808572901071175408312452633438983388350623586803844996842588242739145553102877124236267531851717846781624058321185530156511312131594568527332217505915029464976294983282424549098842879572740542134508243805223025217689443483993747760259451119442853807747693278635154895382105593725793268862159849059763370316792705573096403264844864074410724455355806725145995573926322841580385756249882489085584813658519819602746167565612066153788201857155015617820932489980862346772365528410618884598661931710365819615139796868974152544856854876623122689031376778498037472801672206712194362257747105652573612218880158005412990327660081232604995142151708012302114274751255071053455603520467512770031545694335637013239560973316643898125253839244357302770953841635607500589720798832431841110606953777754450611489462631944996514459061162358335374852056702969447877156960222812069704063291801871583949891650295034576458565402688910577930401762118640803700951895884181990473215440459905135259712090355084844320324013572784199939853933180848773590538599691919640709059788160408791780989760923286956643943186458253269205420537229653277851120277266833766961918101130184281098958261383135115988593732790484337416544697411453979738960165833225276300614032346763544865365835642300263407002797410581288691254436470496520216809915638745224039879442153315217560963153373885468405688835018912575857501059189771577790327029533400899356046931564401679645328885817007149677826572104977033049716024448002874374947933377686322177719924282534469493197870248917513642046312308975266256437201350888383789198581047842014966236861433367266550453295771904044673852738439629512995240119498996223103092178133979367232127372021894340014688826275235997523709623660453085274186697848758574883588171638623082198235305028589984208508198533899727479938931507363627356007903074650566179076834343113529601746645282636691575290867262617603032010133696010772211012049313365730996450385819731123872878774249557982544598908818019251089278405836475173283979918186212724213903585657870864813231234012269151194833117448270536882375549839677606105437370844371963988449921080611705427293126546249598532483988153346778228772019219615052439021872223893170905227486114469465731795284124030133530710906446740499041727394866480916676371764246879324485087160151804712562946344259191102157271603070916751439239913168298395291489325574783896247936937914230369687232824764336930299037831904498887364545047782413152570487136885553489529240548262801819926172274378370310669990770356339171536924594146433537030214805563576804441179206019190463657256715867743428304540145987595582313701691121516634632756599441626819816797323249865382852469251665425272937356150310451398238424986401765554315334294420784001835365432092738542276086508589053066517030811541528400916330669783047606324028541613170743724042592017613559437962356167260408718491564929870407180563323073381919777881652123550263930149109327738031680945685337703199960157097350840412781495533995643414155711592800981148437888531782208412272708710593366403531263370476391013631265507333024491964523163454362843830418281325335469762447820061284273250237983836767967298931979327651897382808941934327110821677045731371166797053182433308710984148609588690244863513827826718756621560094483427686924746708439768790917076552450855514811304887657502394622771416713930568489406499818662617982720824070940746010650133147483954300964833710650188365696002147303362708160418096284987293391553553695843082860607530012939714259982812717613592852763904298003552430217398824709316244914664515899779014460710786146630048758343095322635036339667760858923657643134235920269251354119809143091338405692468170837269534485607361757579286363625666592515633443582485569201684504527335175675859276718987990793160288077272580147994018161341543116537946412157766548677927711567781807785025827587909008337113573288578700869894653614187376222022970421675953801826957522860119337628648703896621492251422466286543357015641751945266232552382415111249515339564744353723780445372709082040329135565385047173273511292251242270964220496741955674623716378277853994167951501094599158432690081733350789119989561081339874167835782131744001238603387295199079184118477687120328820522201427229214303206022275099926566103631933295227541293820644026457653242871113622833501947566858183534529071418869832746700985643143951073658161162881936901040157037178168197516321761344187139968489034474567167291046131209638785783456331439113759918785958886691155909119952558102656777489590037162002267504842982323761640440534550706655072308309927665906842311966643111553317527893938547931653774942167201031184383866257812505314796579441406197283492205624085284863296712622288101597579582290086975768641812417463312446590690079359452645035923412368717235446159605946456321301944694916293638847578544022167761506889306938665054502259935416367775849662959477768279176554955438217521175397531812660396233288770521757464948079566827054780670903021766308086440650639930816454319253190771113523200926445167893333380741547839305523445844079593184620668819383134704236198601752141867185079266361586071004986376102328436522235574161311260534146198911472377562416391750365853663305975457133401978942492498330065090125990532057774578252394419108874523716623437293086976418260122928242499286054167581462720349586566121279614482409024919786997635045339724903127711428738649243963041188917735880292889836595557240754274794896982357793348270648760169153350744702486750158011693432415169607852306864064489564630989300617252736266333230771043028374367097915289779356032872415687358917762533642695057289944767616810361366752030528398286173134458209720425424873542935749852510837161380722444840797246238242450296125465653646463691530960657862760453817847199467312331811434359587957685428871315048812231079773601709660541407455311625683544749352631006199689992228935979113704077065659988767976404552993664152375466152780047123347768192347946819265032183128386103474946565961614524234406751098813122468723588264004190650281004045008653224345257874953043536508914178583679483492588993840411228516426116055453488498844855168923065437534266205979747679047842949669624395317643831704814463862582555187580379580666979303811601892318419750445662712731707811638141704104109658439448367123135036827220246719290601653179128044192164036898119204517051952657544761449473280889273160258377304040987749627148783788011056924125556277425175867845541694861029390497090983418613735459316932002341093590100083537768411706186573187293226068098728375759686895634613889795473701947514965429519191101877365514697889453231886474084794611671941215387627750820239691208863879630708762267334967743920323440928412917483550713591111554751127469180448774058545169407876603793915667699015247613263850122628187511893697549092393515931207565665125644802688433315868107518505736073121357581571068323328038128116017395566351063556796354070566482120348142762194392917011775220926651006259948307513107926406819784723145481250767567349691684847369111572004771182474450064128929078618294293212144480323450969188218439786048633747501984028760063099573458502730420506195587998859047053624778552110556186565237658545401826329278961064453540384484299091081725446771041263938652069710615863951838219018327555553761198792259645183007930014684177399357637905214498848101125721163903060041137293430504987284650372998568503521676129274083405758872898935752701898651965488002182764997444739267806786976656274644942981287137087785486874280580931444541988187901502813805990627714481002181270859804658380000378861827668165165240350178306841001099503633156714994160314549583255660386907906262151324844866820494003932905752522388662277227469936793137807104629203836220135151186989428648963115735047357585773692657114508123462600134552036969272578133349615810863568069469420139307407979157664755353291546088596588131750456978228448838782416583419926673390117114217197034141458987479678269568571493559685294486394738962019159553829020338278340337386522304629543184983803566543286310509048212500925113881785977219284454845405260103457955953610265430982139385724147659820639092339005901348620630510216521615258107953815179067735868430030870257133291424520637036290723164339443349537828140194442732143287291036189756403218066194210369698676019736527974651016043020305261381443819511247756845709800829429558801638458235984678795345434505845643816696038029055706082063408158231460008960166695671328064274139279419846553917335260580276705643008499375619690779499654211060773886738171257653455290121566946103435989868314340476205654702366715872953516269119334042226262683990035251133463481654137294002418129812093340401895937010779083883623419627658155911438807774226518781648033018201105668971409054059484389031870215221889115479200412284067046461117457015425322926141607392447173823123622087287216902467219559274553666498316567238187359004365453911132950793386463500183259363618220328898628667961617349411334436508123161684905447844448540506747592250284524503424238746410170471112698528701480995111210519679997430878452837844085980386037215301106018019657638848185597064211513330367973424244013113339314788211175366405014305841765466365841116330894906421055386065605405389268759107979461181506121431771052418562445752670686429060936965014797451391114396375986943852878182383323840008039115152588346226050893425609302759741738408111471424612641169605552235534235737921120914990689598232676896043357536712526898374390140727058395485988710652020789198372704688515324164249217661202323338418238254921956018935242382019395824886660181953820218286472818288296546107312091644581482289666762670167150389847469027487139043384137930818506846764324805153543801292156923522782987743757964565329686464962958362251732830260398955690805888288427397702773252943817197923131144298705304295532618428180926420224048953611854674809582319142609570051262313615529929376980001767526799551177689492753503339954709161882485333435573954675447097663734030865140864834623452817055545101398197415226704321617102254009468466298107837657637086305398309163851883704008326210511796756240245422499153774915477116423841099227844053555978790979051723116015072809347824390882819154531030847252362894288683002286654284687289869459307252126707917413064497435203317448671354314568635955696114625701113536463742557824625956371474177103325711170232157162794555056483961670866952480333720139637348974427148411437894046187856282286285217210575078325471828492700198274107949293139478156998082661069599626867738511421084947940904380802928337475246464373673431817586895693108527396836835343434278124619181806869866694059504988646002627114347620363557041776597512019963931294571866949157038635699809091849658745110636513647653560821953812449729280777830240931665856405711259154322139836266078561128938696445331705692601751506087266915161673480275470252044502367429041989591814570623914108916310206145437790486674940809701627085399231764871111454034688248500651254362993294634831555826800601922012136288753103646662830114854051209302965132242852454703106964215438421387231207965626121734356986458232657753793159794712443867153981622579802947242843685792394840798519951913901378015906682979578603380845882574316468800754821588400589858514146695378232844042649549722757555280176157584298469805854253060147157331391074576867390588708149024020726785981665743541929733164167316997894189790186974221410093760839290238924672646458230961122608304589517748289506512028451365939728169643606789268811711663088553766412945849488970567050359793307782658331074946525514298921586619530983242736183587115230602032422865900153262611850614505758175551035957279865589028597574258124489246153728234911467373954522067380638730183382577792162746353882233251823890541146607130432452720823534244902966133361966260224976035381452933518175728873160311094069521346334345982597496722020454524191430600481847756242725659506196325549110752600310648608022412952339624454747161866279397512487570945397446530601535384017415252060081767836582534729197609058571653159762894156220353633263286015279466723793500733022786045355249579269514072517650128838847916048059085887796168084456049315491391118358767837377231934746856040332573448383316575709489997651913910883062507982392143608614689687126031293646295704054160498616423239234801384161912709061157603833991722102121575374039604414857240216128884022985767987212184187972711147760942464209902571950525390494647536478171005291112853606208933769851751345699088011375793844863097600157903173132675547828937381852513651648065555218517003200228794806712249903236286907504386974961136136573424292082798944868968406183484883081321794805434617457799484365006909554574721012323062771765912709713939526855869703632283600201103241089826992836302348887427377017224199456545850624028757310686022847355143672535279713815553357741532532417530956309234246728735215793478533372436241241698686236968680552383698933805219252794654386155360692611047486196295747552458939408423227599029929880752675932891547123501079421432544941498807713734634016180747536614488244936493366677531860197398848886002699911670467257151766398877882455188323864451783756569893782323785414106463391267560841651356794905804275431006969177401325803987091295369218570198386207414992268354227574072827585386015759304298245121689450368125699659150765903358582554358362004162382729005021493864267381508460046275758688868245642746524370995544864234803054944017729021591993045264585476743673938873656310267022870069037385049152111036146108946028317778338511305233891584108754011510696904125602525289176169057472408783305359748062896843915393147199674347958155399858041695511534675365973876013956858529127475170419617146502126675854146071308562376446128163896670136028464806852087500760571426085820458188254282435449971280819116996640508112117250961413757335777719446588804334278223928490519009997415003713962997160986861236889599159846555423539306781520934955773511180533937124860067121735910698400495458087474517055853193135361138777013878429065041037700751492874910557998042678547239340191050748486923668840215019977367239606670851692769054135872946183347608053228783430698068481932934684947034782575502803781128105376261168285928577438530379467588106360889766185992877149298306526446396454731783899984042684189985803157508157429771998827356457492218198978437381275591187941878478329211024051627362014084433932167346603408794948769507604510922319895541478621631813013434464905486232344981636031582007185750141826701902634294303952051561212796597966813044205269006035068374941995616784689445286839371721410333722976452947546721820875287741736226691775894692340153602886640939536965232125274710543518002406378949980011262350278504110215420487707155946250237133582515447622497416899570616058858824044430430899672477461411561706681282826896210961015866996518854607912593479376582053129234941937711735537183981996226438281450744561738584733808108754254090125899528869312703450952123505147397753409225631628619760649112760653383948481530243193582301181909688117581048010071138267738701485502091777773519252277898559137241587348592536406028058988543679634405569024654022133592122865164708060893475693931817810327724708720682289705156723180324220931696872593023703120474664847176937815524548711638074382603404203423633436601703467587988899581773448173274298657231748248060303218609071343451227869868532650383911053480511649173147679579742718146529225108198174151614342191502829605013173124548824577633301842574463474377804629542764278354115691255789134524124489390406087503269188043654709948212208275539198074637074822810480240677266019436827722903202765125688270524877599815327933802877609671593460401566583609991355344835464770684949568953957349701107937376315167189631849480351817958511600173297914650649960952137215033237498172669787988365754851291383524849824945185335555298854844371743907572463736876636928396981633673643449307082288932091958333918683528485796802082010569990736290891643467023363438586409384385921236139017287392215580297717728767786942025203887855988339807141932666543639847571391993165878424857019840843431399616716108024165304597599257406287486841742127283725894051952667884353582550135277318378158704476192828568209906581124140076452725830362629174642944157250001092159587551993385299873288051265879555135925723986260837548620696222860494893485480271883477348939958052026396041715907620092872522587841288431714884406563897886082795438728557133323360168754382783618486193838740034347115760609150367583093665211760115637410393940150770149000672618782050837864984568467076480249224662291352312853815395056137861726595888309702625643914025972790029842757983330839625508740335080700753257508791766790921032223552796113483518107260317591543180128024971181663203373788491731734713407170409996401659040183453896026638432607695403147641179176772380478959764386982791235003429433747772001742626983521103638192265365756105038718116909838030585870240078414390668677783429468341576142686235682392783029962108143480482457495163498230049811882724677237706497001769152978502912399499404149970064032536300365930132133096482989877157581282775858253922825580686926435476670070899992937255376497599017318064843685681739549563411403564613041492312349920792506631804934014438051470494363170159169539144870315405595616113280996371094846601689011774903854641087967319141943802616930297539201741266880999851416544198758671835096930120644811269265609007526387866103831793024130073744331740132721384366664976355641860273837199421884417991650042731832915519106092036232695099157147119807636296864482226050128042728564525535853596473003452903225243283100690762798480105843934418632417118362686801989082203943807593650111081695360585300447761254760760269826152333657108880499311045561148901495677683632203036659362780567781082130057262831973604094081854921978766060732567650374190224072000764140659002878116950681974430439431300844142502047687769167852416125476632885298592126716913489165374091386953527106066661409142934890301951014709841332555791492959472083304000105104991612004638338194042094838953441816064284864497064612937513036722074012640106673099251169890693183073600648937715578869851049257540690624498583063333929407222915769543941558695079728184948640319627901289869133473129281460519338557710687057271841100519634734358398432441552921160917297880904802051232507264138383968513998953936354669699217204048460634618553017897855890341700391459811452615339618720010200105951033857101471279061662907887630812154912596000150118940972950976240574627179483215167726758027001383167756959541533925473180318808729508716638521301307846952238153281691540049212360996732414142799388965416128922624284749224667659223581609520753670278179180735835173439996268154929658422193860115957133302305451309470309264770782528613267159363376910878942519719167017924447001986224566325786054198602810933997069713788361565378652902943845969594864991624906347683047461756334189557002031825110364916432641048553775434440859923064318512109169554727234028236331677710428283849310675304868147194336342791859407940532010935240473977540005710198058999157293082283000795785702883079759388658770986279307838374970483316457279536329563373075114620292399436132943652401723294700429688737266239894795659812795781353016047451434180042556894347078771047479343771004096014271492294282305563689094901602254015918470665668114418033258747827165668856600800383945526913670397946356087582998474431223797734460488718798610782337544842255010754264520413286328473588061897414230677394431855669576131246738608474277008815018868462438255996579557830548755270098977367304002431887500742447062544599558625578699050616236314839689603629073940335561265192719919972149444225268119397974593539480486119799553364381423645973697063724618938396049475738593314281069394153874114835037160501088601861466570118559966471276081340918784244092675323681695807371674580862234550798185623349840350790088471295662468328305579655929101124489253292463353168588539397179742406795379330923030739242160944594758609627767184987144011149043537922867318455287450817874200288934787656524750212122534645781621509009086458741962953856105758191897487018679203015864623623459867195924907902355925955724061109547991410929038597185370449269832400274800809490681042106304011255065691845982275547261149870766727568369419648167121875819906700886736585081961072719508774811753060596372826211142177486831068416667086938729219858002509287702945230355335628795190713442200472179738662643419664219796161725045984609741662656138177333872904096424258121664430652890569248668481640984734243903197201101624442563261748814659982563588950219310179287474608824749298522807953633849009174518624633734415310694042745572613393952027830699741768212783472678949349107114155239678926006004887144356847496724972271646972370581314302473093702200905662070728168506210290645515740734258803717006446113261051853208596298795750846129961547476414997312340674835548014636521368743445905394252236277958773877121643354969503269716924374005308673793937865026860434021035421262873639181915937545781390140651485548374931898282360172454139989638416717102143736201592123652674267813618818437519042491146630415655128652025841588019587122987447233229326345540667916085373229796018130805344492975931838151225151618458562573297008036297555515056884545507320734980161336750667128124685092998403142459469189191617022835331450564437475009313156679048320907765293895304707342410136502500316802211799246859156492595993751156827504531683799924176452971254720783088207333101634836802670294604810729549490523025440740777079583767543670978644770682428059125140298946716752191505797027786877503871687798172348984719671841214833258032158769596302429059193982738306597942767509822775585272988939961925875248334320672021066558395236068925119193864415803971486299797258215994539381468140233697501996211998431589514462987593542719094458210600186130339772694338931121221090403315923161024687994252090356092400364602928818977242688132281263927163054742270180928997196929105267006523167757212214740039450030845755088592733354455067522088714483576860222446048122525665533064443242008424020834888250398189687354955256729602648792734430527172114664730450351171554928295590627576394552425932908505358221896092110116160858156404073084095716655248823003216125214175854038882364637341168021892060437394858254269110030734700235600587332257779316033927573674845352197908991076523106588505405246705595306604768649138420759423665205462856171015727062369624066098865198150302271733036596802300838981711652628397816923768886819962537563468285398632924830653521159622508214325879989084656379376536680004491428264309055299822687774221947502057760416589334952769449489831117025365767433655332225457495607366916530775770800378613062331839984587032971537058715628989312502503343830810748800640356055155801196525904073829781181999352991695996534000324984230180230323797856202115095794220608037589548561765731269982787399549339908747734023860719558747439530719244698849822089686386295124588668630053928353922370288958936511028404550011851739098591066713869878765767886334406066738163742596168615880178413900676519407049178664966719851758303814841303689114936012903039712221938399787384529776246432112767557949759675205985546870736626527303002689707826612629262106425965924989518794617270388151810216508491395357210045678796652591706652271393997183078665679184616434959258497434381123397678819783962698187699322373163384247085671685661694962626096169245511103659317696451417571928801820011498705235462283062622971667307504706731305530587394566415140566620430060570477568648244733137717556193635145251355772249987623799219699146784559316593959935530843095473985565961769562045151787013566502768702697041010333805684585412828575156017773662909720460662187895759345954212895982613189360260644612391543711470943102072149512771092857866390610333079855816141870402201034203007170384828230972117206531570128952045231909411149420274709703542464860936250861318217453919686776803109079595581982154899243287844321821586269814537556860539817494781409531707351508558292474044836689121150014376188275450801643034057885659725111936895252806030118339328887801260760709415805351910823230561821080854710666332737362584230179461318248160775005556798285896389231448545093952346100781544217062341164794382500654235910188392759004161844080751611433412557657395319779649817850138195595968651572312959336646101459196666954859568542346285170309275170024348984190579247999897174911638668557645760482082771764907706243523960806546995976760927894316339188322881103048628019607555309935584564393469329569304727526772942589364429433260544729602541452770282700957774527913386226487772487521677033804201228519671091996825888741216770517436345359678358489542904997636599260001011406318959611809576945085981152261290183279451831206985891355888342968897593536471386688101590387450185500630017948905260124460631171170651853406020520353837850287483401144547969136762386529683449606410839660833008412114203063662778692017614982236329103093326680061241298735604156251275821528941156998450403489139471808289053176451817018121924656855358423731460117605673452422885744381625645167359398693393847307005774066352195421807390168151926460006405912093097915654237654736221787014413395791967572703628243506125558868198000910585308533003744746311204988543013110470385540333471045276760692350179066106178215269464319013073032192969377782514250263119799980056103488469742939372884171968219983246388488094429844489451168097863159585144469768884219992584080892549172930742977678836444486527425413096517053400392268773207395947524951861457757454605002003392594801150893522985485806636358393266473327006061204897624681404194344728290249839296102742082941442199099041264787643809674233413496184514689844552786141915319854068714955045891454226129141160397468598230640863579990653630506740578528488970339429817462918253890890163875612968497613332035624898561454774151741276051744164420774611206782183337840650490660752294643146504102134082677912503828133635776054854312164952936299652342748737555633258939929085324326927295425298847698460475271360464281561562062422176518039577341071213696904315090178926033467888425534981406469782739001361226952803977668164990686643513939603583975835141689249111164874128409515379151617951944709271962033407422889713472890672584317189271187698754148194413108277700396358300855972980935177478529465711445032536071265429745652651538230500134791553143923176156284850365695486200619925183944229480462263771388489204354583056867843350155891720892234183785325181810203339990997512254892859743449090079083468685558512632249121819002034990186067533815477701119621091879684627788260885385623120177393611244388124942771392524170630712423722625813753845531074136176907189576194835803595776575454792560621450428534891299806898174475249971026952766857414178430938945216175889618250593089185162974750099396410670534070302770590434993593783264822168660161934343407420967892748513331547208572147805774894463680973960678474061187347818318980434824294648845684365352771181140869319926332838143268298631446298248795473060006419691884211650375053547034816805777649635555005580673624005260539390738933632053040289729182263861618270294106177314048904575279795868760249567440858131478684333148255003111143141439924025273684502380538820158621375973484809297001958591621334512696915444910380909226042935160523305849403750668792461187139917571752780508407014819840946598839195048211227428699091643424091057284865113406635289475700878688875410289405117086245460607511267606379157786388103143259012372047979506237708127656477144670291865951254946773203764497933706179347798802589386640620425008620369696364343470128075358605106824599946316473038696107303489890928825384421904731623955407718619770094575049920730037300140846249383721898813275517652464941255510305123937309771061811739023862374795404922916803251185056613523166774234204997922126826515599480168448797931050276102074575112924009348091587843718567010818022597133554743271154617039818573182093704485026915740235130702340384231212827738946369995122527134541743383042589669777520014613679060686479415337952451298000623257170970786166967330237680089865257728458598673931441362292221631025708744901596090122341785742064437785372751451787054446386625939362744752332167028810774813982240600324865891694707204332884824089563861879006616105948840759543425119391091096996873973490723094683660405098675194805155413718129317203165689837962083724620455544996313558175458811349345178303026447383169238043924617956919435284067150363535189233901565376548727489502525974744368951879566068656944540462142329643437356462393510319900478327859241182915378610697349727151611638342950627432539751362509095967232205694804621774937004620062357809522476963809909582205902842792370798047290703027782334289876522772318992546988110033769011662983547599562512168469492419709530551674143410938811545835281842003789970520063082142790508127224277733372940242595931317813365440238759943833884631012141207014807698404594754344726033546060755061147708305926619570551740601763433570619747711362132558116079499252893631075864024344928343004076592825102110830179046727046006743098646990162307379062092002278004628320202621652949345802474273521498946114401843215894273112069107785811004980397439034418298283276959574909758356070354296372103206104584566400917144072306503883410846122768380642351156762970426695733053737798467786652213757483076209034068351753686801061175685541711785857464119484001606824224889841851258940188772652276591324576817836535567787812993275106447741227442265754449188442003417837761230209711440957630665921549881288404573421438886238501999411792167860802729225003861119239517542760688626350736116308586664310329254688734691875489147690456922090834416402053351941190920900553648610714703194178939986995985321389376096373537834394737160808636939777003620445604369438722866904540140752695526821839139785836200878450802060401535107520275947838583267887898465267356221830597981994961188055014512279948952208854497021734278389743970287365181118044620038849677587356657432822650499663825177604011546779876978730913682019050111814912177986430649972485078853980492072346835954074011670741582926516405145821588573882911013186909251166339820096429818734298257633782690669971256450378193511670160671639447734555306972162424663417471858280058419542609290697615280408524736680024199752146505726613011536035985401398519721455572681136450433373477751233454431187538540437723174370820255691534778791141575227517206426331390092362762114311332462195936729606016218122431238519006032994283890009689198075604916213811362946153635928251371999713367229201422746267244883083067819608191308333278496009321069020557552150661285942874102919775420150907782718191447001733377306777084468295654520320316866183781499216734808561546183194847381205987400640403985524747059579957437023516568672781941027215141597283720164497967616801306603568574156593469868505474303255434782218820140011257762570226163162785360523313757500519953582548860096535017644863061954745172733070922941557470543547869676576399034224192435292333275181139995497964547777118179967694957646312039233357511207832104030709499412553991848163626501656858515010895598696221236405962240033500818808459159590199323499965498393100582125308688439412001046632686063441040518157640081523077165536681044611193284545521433557745636821819291527025789286828122118354550096952284846800177958953147125472447028528568849028866506666432400107857328860191997211257164557388222512582279434524635319695416388696149118284950737677506968362491932830982974951560293903198714610339218401665222172098448692191419035364105445795374645307589434309967302446259113716075054995045369141264273318390641534623444427361911681678248532011325970050283489831383271333885234842151305724011415169486525414137047927166517339268617946477791750496956966969585850299359642255633459954290828293932163950398470497319129326093182721026155238282272878525618719759092726074225682289112331903041900436962593242844906190761586646725100211090370127173536602798903047325072455484422989416255389277361497010164551403132177734645069920864887745730466591793755305936898540460350121689526756233893514965981034691344531117277115223639976576709965468192103177788138653551132730789462823471100860257758759568439109070056078787846312225517233933836047563109949852843068249978973289292074016032478613774025909933345439418693173311721545802957173585008875265021004744582862129804139812748062344961927632234770200586587477958890533103694129714197343389641330550140534023407633019038616748888583839011418787803032547060025190215755268568859227547724322495969820596119410484093746913120491895925720795285500715521030736343182170306429930097001060554945569585966909136969598707161153563672826461961671478580069880393903057529973590188077620227737840300736655952222479192647822418612586658006198418168026420110493528624635825743896895516604100388090225016551990720946516206511499448669004291855928321076484208413766198296270985217819197588135304526464396427951824149325577576774971576091444644594800077449141943004319225353908733087624657026986261849293912849597283043505392284140442520826323408460572049558021587732163298949278937351628616238409100646788740766617701528339927972171741711725962922038915772183828403551055828915983204699368677943230595702335145124161412143353005607361725534737576657940573580170108820578392094366564900809098239191553365341674984946262468700159133993257349785840629412766630678476483377300845071592180306483424603754216730586032566386364588478936372357571539588653984461890289726236984180433851248099266713128145780477328907522139363713235664225612615208744006080745513692401147262309119506406948216031455328737395843729009407532927766721100299297374737965113604275077927932789772036963455374827771789553452114186684375425535161166942382583746350080813668150655733082888562124993151675843475843116942181266914390834090672101146336150785643878934491977797496564257647528013668814165508418911608801727845087702800784670028913014538300847483343140305792990218533569463663852152438270099585999380842062600390481206958354646211460589846101090663022970613425262421700404712932634841918073916234145093775396682820272693785511558250585246100741167664430016666681770175847670353986567523782087134361515806454755384589712758637202622091772386204902253949589048556277716754684780408742928341770591167887401060346741299092923347391648008972844650050416662709483334810881240555076460305000764925696751920621726537111403079528405769698024131164151142760165047029819133151851799974493343477336144099662748340390471807746350974539426675803472447348059790626007717101484941934191877228437333792078418355757683324769965039801744239272770843276543596146676807256154878808653051501750225489433956149869712824182274231544077824998605219104942610209976085937910708237903597060983847566830223055394341991622737540419063971344169383678331347062104771257214844715685454719764171959433279448431114296288341033800588091644632163463525754261676382170342957192097416348430380586088580997315179586608905748383479387410500963583895418044498779532599966686591500436060111753281239963343907729984765364368939157503332162110935998481651790553872426956780269140388851526111578283461278987462366963155472435228170493581916194883198071694957113509079666439520889913489822084462627869424143763253344405122061699778935426878326718310301551966808290582473759472781754304094272204544132000369896765051687120730254439202774173778595988457305793047760760993984121056244918354981420582815101365550287653101850735477644209871499212553663594696874662399181744314868401932966621906149366920684405653851099564446733595131101888186983939852235225536059347258151204981931430432908576752717967215131092299866775681362646719990196460373132568063629245997113999826635883901629192229558742242783214350542944433055193877269073811296520799598363649063596599004996866354432662548909925089693357284254140106123253275870527976820553088677787451174796657644380736121460859073079874958455072529392175533690929649462298493886805785009101028818627370280272261616895843235688077483836662851015904816384926905491863148873070910470559769594665836995748156829350470876432228857825300363335775452556029818778621875249424792489368379611573639617355461520812337184735121163521488306463555686692456149228996015781152327289800020733706700918538547798629791714952623899092197521516308922489290015849469376710894649792855870380964482184518257199916050321024982966220174313957862260882416289843881431805973634271445630560266667071433047405969737411510941131531182159805665592711427446809623116589284251036444944240352148344495858487468614317316671774617845083312756516302703241298968440590261192498470661558642256083440382736274374153577891093453371851099943857205579232539919519994924155774320634371920849643245604062792015998347975675750530863475527322053507008293172190419420808324103576020631384974678892585744116489496135107893287284297637453351987526451904818658510418664472941111733407262747803668294263381187865305985847056864122506431483827438268401862371368970369444358510078035122623098000926648127789462102346151143327868031484620616814214716274116633263803473660743160255809772080636674221096105571356828900775202463786659120146254725839243109676849337908952580236882648195473623297900867804486560025985398007196932795275105359743204856020588481572964406249569271264067865473579805780923157725909697949165267836291192994593742695209474811233370556201766268152993293937863192321734039875971066077337224808881631725673584276926930224946522753630892394129582490697773816840188048635504822417496596664980110447754847412759376547865847525225644799932952078144615036123459013231401082140858503221715383329351832746542757708018255440569003131651865781636541601478747472533192213936087540593056957073992948093639173651600725349809655111802501142736925347700248586968634675140650552007263200580675497424407194974731028902125653789909746397676833881489104630794169849210517030484789380017449166306828428619802784087483361568425709164550622711114638862802694724114483441426394459127856444153710926558932253782573630733773572097655205889098044648245014871733769594273251981538991657596527342441882711829616748723642767322475488835368479948785401843277709245955964713287476454408559176359875476870711554173839951440093423203040886739695105315823093536252415813422751520077914178707800122151496581383591099719461316400009963066825605052122184069606395312642250283118324613604612171993434114742900657084740755626951361937886799652090133992501427906029275921930183103584384575922908258746320482503067844098278992067172887487102571451027513430772177728371745457262148443418455891000712802463466568807452177368232407363627762646345583260809513271213082553509471088663090569615257561896972169869488537372745803855185198421769352224765512330612579181423609268692822516024749254224140946648567800274954404708925467579468885035055866223271090847913940881142903833012931784052974334034357485208650170972830432652754790579389031605851648325644624411751469627275574463596553179568988637639696754247665116199379976168325918056534796805640077926376440618917432393491948967367390173640076554729590124923296218105076333282103777452197998865501256634601228114361209133338669232235872200379049692764429468352718487454602463694871354414814968324001399479706849358658628524801891045915398616276729360802145471439525042266415407236272997987799700142930030397319717405572355585067026146705292738147897395854352293800676878731548183936849953380864740037614516835581562200968367713657888617661423988255261001407416367454907568137335239743925010928937379727477113723903052211213737160611714130696085385404711111315483903267043875057985651588223118835057663127104577082410773746188558935705737886234161903697965239937677103005450401014920854356513604948517641326432934528125526329739718598737133565391687241690903298367480999644557218195783325097485252270605956789492181255950740347946504859203951675056571313906162918362630304456331892988065188578490706029819065327942301165456743739493673894035733338301423159973354718104294218504228082335561213063296582963660300178690425651349690353803807639083684803588117097445232711768480526439896191065570169933538190988106657732031808428314744014101411311723247085070686355710733562100394985049250226634049617652385320754542289276008493844632711596070862472533169410868625189223076916923158696832045166217809018878367462174450330905286638130623244739278201154749485517773619034740765957068256649353689971581955080487088222781273581695990713212095960290559441092797780955637847659605083727594518886057073088786049198927498993467502626669732708693759313735141745178431789387520388995214967409627511365384034022802870163525032353858890298748557577132087634197674284257133244242706559588881681614607494554506753115584331622691294480296699274087735907238029819906658184287932873286439807505523461933667880692358764804268215873720885344197394094034979056584988617161517371033088993079105907416971781854285654110821820057317813369222489444644263755335069345850694753548071694314676789728809015127267931617446929096607584380086234958695848632255495967999265904133438873601521606828825411846498854283850576448583597932343006754377863815884133506933737803665263361439906510892934436349738365794721822684935531992030723032107277582427411530763894488568999693615555351151892113623197150723881141931389242207168682746701477387887434108592181832171889837224835255390798783896327472524805466479704009946438374396386367290891656824910854389585619248204096340744921484844181041720672985078673668651851312134488037016055291872019151429371013022739332816302647592329447225308720673808090078650216387028950698062999336661698789045774839068621051563392624930979649196070465190408417583263220512099745612324899937618106969782110402845664734172591133483553645326124282300250471232686180075483732048498376327054694396876574143705961045817860865476414646454203325787375265394171425163243160034563007962662662285966576586072762480062213266978551520679932372839839808461754741165403359117729235752254383171907755775638294496113081490866902642292221316591718638133373733531182493628605610551888824202836000737194500246141832333708998834505478741310601116272238827585651556813193706676396163864326539279168181217834069331876844254634979605592174766379976108620238111170176000967438050973034090868203317058815188667018180770179184656343670881202924571034347864476312615656058709543230019083775057417607245071256393502379871136000108942774415081608645837946670753298864338307456967694344686697034528038874521680042474507045957761202969871633106934104990941765146953237931130949401947714771999876928364278984140228132423708488573218362608670843925929350466154403253228144142557780719366879492577191107282252673787888357479014700337095737075996472452941740374145298468598633211003907458314235651846848451051316151400466663380493032489619728773680450851328212976657162398939040786783850765645622446778829593078999913395111585589960857840887401075374772831273452170774519362314716037694155457866779013945631414945371762752387737225703847945632373107120725828644476133227822559912097060032603689584737609809137474755016679702618866393954325755506791954350206321724657932547052321616961882544081275844944042992068208195261852876036235944964262666858510788832081846227648139579727437590595635831210017412932380872009239664864925930520966004997062105770314616887730263789052808053145917951822357354289878398188519587284777610642476333506410063946207796764781103012065690053718252989904188015119880247671502575929056995580157930670076916983694281439454521641156213611414121537736248088697636199757287523065738277539626445927067887841181183633858655823890094729589784804878563917790949175920539714547960367889922938738711391220528406154519475940074172589473886102224158820230088133064433535376415275864108828685612978063130589643276217519819214248853674618138445786576512693157167293321041667061027683199114879678895020913019464899111327320932346754374250048177787194553559924463330291121795343560837040944931450546091299338929107060147258638943468484644281684341876978570629186302486444200203914341827861822804645568676179746421887598606491571982236755501127888522728947754249747279160465123004363585834209532135034933315893640885856128646291889479297908914457876806015929663020216253485296975107181074944439153292401480386458027226223545673296793091585472616509129654383129770392607648716469912269141279629954656476562090010473285681961390198262494894453189973137374637662124778213093098433964130211060095935886544576020845881430801779827503962249385453486407737910926658188440958526888895813235232973186692131646445442630529522213120936059378799171392215898808942687118588238740244204129088598101724135753402984796007540528551845520879567641294450930951737312060856651037587504355120438998737681421173983217728425417128345513140558190785496175105823710706932775024718263025380823598360147189747355435288157996219160484140533590900425926330596433791110760563476792374809046068991796966142537899274201842439529192115892175889401165380456479345846971856570165638308924043325874291541717710291905173226675677281125695240649605183898117516047723362383854790717628675458047442400916199044327931384717691370060872801852805690218298240655962099380852217076282093634182654406797164931067670265123746481454393581011689434526978848788814998957865167670639465652659729518322017483820652398267629227815744021069455935501396729364939668435934921246821290415628485114434162063965173093375341942772734391142049352317486901966183478104543106606650392845083463135207291151260446082156509044157444305291211701647958315192904121289915331922101474059219236688617121511074076285881372305597928937866298453805886009482210515449698957428081806067106486610945796163706169566245951349078738645196122389622617319694042279550364900214664029328646965006447494346662369875135500524333046760100449877555802573014064494287182264862851266333544193179644868413560665775087583564049877220603287679298717456238502616694227793680905094940571975531620139939011745029040807249695638201383618494098262323603392362999731503964551949036831728199227208010741467904636214494947412254871452108115403990755211039261361415483583322188539574310697102978511482888287877522294773234721971567719436589649166532595923172063968658129657965590787942875780451141217800733741475286066913963293371258948179789917641068009334148223224186564000195298208070145567165363827636118863335112208065770500586816833594114713843243266097618734440024106061165077372349093710053680293314697513879725304656854585998575992264662287192615489733342321818643855757430873648843650657719300350548652915582727672136886734465094121690273282616465960083586334737807728147461994454713633654570881044943344645062448770918394773919340882107097352839376344959031024228803228992026543879236859165133014754306202503782112187093730463264922966265846760018456425925582206128566529200771152295847800522475038140172996670355935931400176342061774009032127992121955292366776139577270940402792005897045937270834751307027253744716602953334861464387684737872393977662071381198882548028137554539021313553400921447908804204170044291059812255986031390133286052829257545869692607121534748272736899067195072954642095473916020813906174282285739478909420261744244537360764097780445139239953793662433498701244536230831230720426143720609836028469493000122051111387949100387596001116896361063297580144800651904724859410947577446664811777490089062555182088610204123472721158505319332229921170962062574470259398348831166786997929143617842082155723048734084073441946208515900830981526612380520717346039458649914694250319016153922062769269726715912477605889460762530773631042883359027102733103804761558605422278096250921986019533896430676065259256133224083792802972375194917964687144557965975312104859015317945071683598119335231348833120927095066825584293419993615143789855653888731664431698515743403185813417797548090905568363531319933339148331326733947173714564506684172170887118751217220070751108828955582194730799377245504499923705173923620961747212161436675733921122303871120385512316908677604847031608307392722939191400473154452472913638427610957746918096091615825239248292098251545272605581295569210123521037412707142591863095642357514010810633816762748775500549689180745120733846589150820053505307342835121666217156167760306729078693331844538968179414084358139232918478416096655529746294785853772231497794563320176437382947172427079723213346258485373850434975686878896716407693560888611837244116224634337545109568680120957766715530187890044434173814555370803210645477077469843637217788984944549278694211452595716414271611377992719564633045616308543092657207437486696239597717280782752738002906180847823400246926300483186187332182940994925435064426953332111990850907801192980766286102531041990517328666650288991196137181713474196395032660157970707082066119558141200557257540064458480264296111181740176757172134509210444774636680723473671040504672915744879583449746019674616384837297863666146523923706174131355304438425859020702719077049268602565029405362569434411597131203206116108438770041491775843794881936548315463972943158934891767513153926129297516574594709852667464146753206610259538964305696342731947321575896878629815894033500897052647877307104639426874302741941642092526623165778308217450581263676188490813472585179696257969789158364164063488458780219673842987028959001474774249218687685022691099901617757253904588675952095129422608553271408622873576327691174628326793754000982536458187217397694044906908530742679966600428980644378025181486361600967574824715552598879492624509811134537719826073460639190130015293178137937957784626457197402357125928146933968594631200865164795768544269539598904306007343633475044971288691528442742776879402440623914061226640182059190096491934674026666362700148699798570820760514126429478640139444373707910241336433300844281837834123756617786352860691309031592054906683926597857625303077982999805480897549919194796721499188707348721197070972235565811510419397543079839664382242168430611158505306477968841991842646267587135098190292013556488035650875506194098681529723009218789930379137789596323627875048588670442178669396736205473518726024483067795180751347666263775084831891531670757364994996849438959854141853028904402078409534770581276097612703720352554591986167987914000758747505100953692246691274778723255585994728653147755123753414095132001383777394658018128562039882533443168534982717234632111321552614344401059460496709776413545256081865207033392901152885109281910995409310795239998073260353355737782408570726302201289233135479590099398118904042702336713902256067502836319856360187302100628753493348250534176959560027288323487177777777929954739486193370286517313349917375576801554547738128583972929882645738293860885228406985668146621215597332745110437836950871853970602084188627983060428253797714791751738503250488937325004419739517014081565999004593423289057346364591972732845430198277776907693694768136058812828238890691694863251583431120669943920298350168803911733413013956972685868328393623475999489373346726574715806482616572413846851231160281345465410936652326592451111752478075120166479457786981941235856209539321295535564672534150852578376435248805462955835096860939842285397588289036140423934758838538239919546173420668005736834952087517214098925214715435671668023658011371441976502385963403200932953328191918360996335436411195872073459739310477916560551490972635631247774568379352664912219688591951042975594169060820279044060601414383435585143270534052634993469729264168626269117733012779926518019932592926606918645102366446581564711650889650870852459310842500986635823049264731244748174013468850265684545691975320563142191722738462179974991819641569891306411044736392870808447483096092076291333138102673137796890401690740017707081551214748646892836942887279964916227391166483780353130361256576545664272737680142598470626117793788170813850542104871739187672941340596208099027789348557661919128454307590858528204492862150563344349285278008349551899451071921949569436616035317223533318594948113247764739426535952256208917269509342351260550245446544041557612769050830188940218057689268812488031260012931343041785113011729626095959442308622196766195474211730765528578520644069126887630741470790560851312712624245553344884920165119083846569890867240767666538573478931888931267372574257040553004397693131962527728830406976327901688865986859986756361516494530070712345163782606765928885031319328160382888940077976836273207185081267542291409294771705208649907400887687278047206105284272081944576277768913732920286049779867826403150140134794283355767619252000066956269778850969673002685944889517512566551397648163697554294359054461308801381760958879741215850904290132903070856640222831849824211707752169820294985983410049857319196069061482081619294888208233126752136561753972393824656763675498464392727849195566433196107740629845881309932807225006126547888753301800039153445848276694415274125611442789959848182222901633634338179084054750018324918232511842764178425725817946663093284335091214637780675430048856053676362420220579403072608537037482762939731212378302937069320642109562390075524430043575987918909663494572241647968580860594570660881085454351273105891028764807608137013460663398384109509583722197179090938218353537544437767545865134218152322332705584570199580813302997042975424829260839910411135110433499591117621181819936910586729534206042927208095013314058911479866109363549335363332491567615477502386818580421870852667101583727652707233769994212623114852629207591461525511486998778561345592522847293841060173449344796946017906817940440582444389769722754011984020510211746258858346906588834359650112190696076485767391118985913709962572993663832525578282975673223822770188157946596424196955039737051882081250864732643364800853361353627232620751969097457800037430596094216078717810447289463333102732944041159945588194754987587363215052391392355962899959537304811293576867860665686099211649982297334041007807261755899505344196472040721450243114828903267601968270613163144950031224477895440827082297615318477677217710889609347609530018186197703092471168864437591041339166416344068288595790732642851987332446315842678946816309797703758132281007857702107289938062365634185517611464612280743611073225513545225088209223385948268397517002970722579811400813372587595399802105603917065125197504251224857989187950181308207981873051556141088490903621341540159724017772999422700747585033425433914040583864788101240293201140299815369201392307955918265359746196167764067334131786426155965854864414563344671332190954263592357253888683478623090309508241949570538141894753077498963215353918372917556930854450037860883270263539047235621993554420065272508397725353673950127539293686199269479830704142168794047285626318506255225815313707188970275277576126920412213192908486513254915379964800019032687381868768573631579130075045030719009394107363650322079189219450368863547280477745750763050433782841740050537871116397373975553578371875923360570781589576574543931441593571129057593240421596862064268109136675591177812362508679715584151816305222768989601363564751570212736511935935495982867563932141425704681971506007678350237389296818734916415872561720191783736832620620617522953877687455019826931513469624612329754000717053557401172931604261882238715108513856801378760952161211614095164988958459292989645912442223443143623242361973843122006286576109805300520262456729279114391940879599244477210757677433680614807052926337009792359538342189600675558458307589007704798473461778192124471798621342060077944392913207165574352949466960751146131565268028859632178928637447415264089544584901774452684709227200588922407437863620961485223298253509696004053036072812936887737716719843688245375135602214905653225509521336366532794751318110918204554794362365080980478842769248234297522683449429483572049312078975886440965991202259757487898662600902464643914014969656797266560762326338971858956094111452604205415486662100211446761979381265683003447568246103509520920693416241151750454430087031723749307811420956343169142395227624744470002983438815180665921735637013794204528319881205417979968733901245504989517087941397106018825793694067004994306289244063505643153778164980937521023369719557464865410244310684881847938157517926991187928228479786535028195243203587976498048429393529711145693546158341239033960658690141979733996295066870582912258647598364756620904327263318417753853027753104333736646394007043160486095251946797131075796633274710866311217096854965730836652634872343581027374798341531840795056097609590885609136955343379003909395324185596063148044787706947268561834961780058478145411913588480380654995874828345072175054818057171210503404294538531469001222225961075345084336622572520877782418524130715103284966326152249139146328262351479252634306832976694085443196402667634840327169042624849061630850831836518592571168132206520104508931942565525414143386294011401300740599351979282050682722221096054409318949686244352388602718682601569023425816152183456437336627731711200182527691775057777741153372959193490697422229398766852247700611652661752006579658523239143904977648355714037571124463131107336425336167817995189023940326703746947460548127577917417992231371049396427131321239500076328016586917661833973679362951325636367629008882325931062412405840996510526246570111421064191645408915315188651266845346448471438038932900346743924674067700619720018257874150884318420320004859797979334088211984469395557212622127501598578682788038476410799117204432203071161794245375440247407783744445892105517188560289514708986860633849705172612609761968698584530579538066570547845701629961349861153464715038387075857123597913720349731475707497114368486034193921647098944220872263038718126288749591738682897316713310355647551810134224747502136370946292292470415073093295910500253143442787666597682611413012366020474550230378184479528941838055060651074523757875251849333812659683441077803315751346417506211307786222793874231028517807871612939717009228407906034916595777968987408421455676745206350620694953565266234235469333893870780382388920643963491178309357361765355251782444667681982571271932777037729240611904759832409074804596375784870275269728938412795752197116005564209647955304789092112778369224587288754954000097665957777314210060099674834660591102586761019669689245537400811558515339391029629643171759871856912279367044058869987886613265363774192058309582957475483671710282261334412115204730570518691349233660608598614129565149345965316119919834492002408436615930788503959541323954116966994581087667486999160136120709181031722440083375938962659190455895825527386611940822507208860788937103895464244270502811752881842702591576077495698733842515366292317355728988747685402689227493656889065444974274859344678428324532152729285434550766393390401525528420924814260585191318554965496191101495411956282881316729678397900315039399582038954878813492100547079672779559281621696482192876740257030862949362092413838051839896636885039366048762411833766597926311267255977429639689976784181239367633932300231558840931595698649633789352837622533407550182979706174247226947103569144224279301116728506847198188637803800456381773631567530416644306415983824654659214003485056753528037713860558231994957688475966961502099200561019239781358953172111324069169605486366621571966792694033171501489228106435136407717292385806639002080845043735785246296340422181316093610947482590609392867318312230819786672130433763379905180746330083203216845618343742674667651827104700914594743853171737147472371369050497916763490298883200170321454668589505806988663140863654639805795535465319222250062651193143971556890261524406127942628410675795000800275269764320205553688488351537352305899270949512359125733323274434786668062901961677062943624594200128776475119810770824041531028618433155733470142322003890093813715642643256297149015393361492654210944106715814116435770243339653767534528424824576287648504146351526636779536583500625058115510077285893548771186575943664414689548635351817105086292532235641619232196105655788647523158697897391453887739943082706787926231548212588947986349676064724743126057332494165358928543240476914576369375536322049580101821124340895538736411952224524298536204636463678111717634875348031557328089431466945329565177741041130413515848563137646288550512436563098706559706347140442624453877258123125821388771300944723824333892493013652725123094681252608944853960020112499041153837679640203336847918992942657586889060610621169584720127086021755243816294200898931744847624235925026572524608891805895745139332502075815253486866492753533788006022080208617978924851268670085344130953845198886000602182585317520608319830829289667345728263614708816076955504069053636334870501928207824467716040702899371693056677224501236031203013223698564795812801309065318694860584487021175216188926574052236699665939610060774916157903438180102604452239165498879234105936150798135801722172716092575631207322002203339405139118163722750545956215131895205367757968903643881976494590723661845616922933606357742879564403528802383105754190750614209494195672596789620752838686908125363794873541836296121672820656937456918393679786376522190920819068246685720354017567808221926920854019125521154588604822237059210075157382452015245009477960686740884632552186770759769074907401798018359206660624966390409751958362721154214770464293711477672698239905476486237360324627397211606843855618686290980136113305176580711049632441030999266424761249283051926054666394107550250263586281724925857484467025090547974626032992699424503865710727164797816022185496928805616212838825785688957408033585172668793703306729219883191964441413644973718008453425856406483931468944625183209260166880595467384215170059293681542031461372822615736460233133309522469425747936212104225522971925281023257457580262293552127096444572986070017067889914435856625367398811188907124239729871607411247503477939323619025323251902622850190969615562098379100816678762237339553887690766574933368829269697386044651222368594854336429180279278121380648425572349686772205593505930884464876120013352045228286219450838416342529865450903265939724915401761330661687456558543581244187694907697079318953530154655588943325161646560897188480454066232815086389775326642223820720300219470520420680734532036359746347484378329119976882073090239252701696170941672699760152200445927999119986568924451508704790930555508362906048889906507394337258668957453106490601136000971251980259846383246409506297458805965722158744833372520914781487914056467271877257122775861355499575944073663869760274550160052878870215902294577769488346707989898113066621018931563279814241448253009838038450847932120819084491994953746117564269951438667995638707955961798936960338421941469779579050227381958447690130061543387202847015080629684346643398299592670125882595082520439952939086871319467158537015569746349986767219844858510628751313900036007345487350069951264039740839333830703546283554499792809604772222313905826622114893507789380330960702466311813921336735076421718031539829105368897816709621071554759366860046082815714896278197831317603345970146518233611598343553498881085208883638095964206684242973356838704089614286717400694679172225068147813964916941117615834867372535137852816287736868233062695583443248421854834975723041211273287869262736238738963825015781040181137870751672064240393065989455618294225687117271351936543975068268672250055830366920274816055867080916503040430587736494070020324260661272762350867517396048341001993747999891859213968572254115713832188362453658613669595672905851268902186550394999167027717004480253126934103528230632784115689212140763213015571398434411430571158600263120984427414874496262405491994233424085470123773278506993447665564271128411243424026261879471847447416332660726960787607999598464903161633471252309864846278995275795329550347068361820443351787452637511875323931574229409952062509882661383048083760001977883484722314350084354913418320176804613928572932606697315828151059262737611575335009525421380386753435150118087389950435077394501063162735580541525079637470614860770700916175758716042142608070217582223866839729432313543539353339181702084365117698050108788756635364534196547563088017553718151248606837160196286448797993867251899440288102487684452588381542056607311531516571524608830833507348690128405489844989069480991281739616477596794092303744200859293818462736432701434290391153635560683011808203159679361535097644329788246612596912375167919285685009489283370357160859507354805866833174825950162348386010717919294267850465319858842304025357980825030202389243125338516656649129973124843747594355950170844140801261481089294235369561534574480877632560462376083699846609233234926108487381296251640520220067597542694816965349964659515451081547848022208328491060277526004633912973932577027264041806188427013241474793241423002156235015131130895030059284193768888297797524979588695291890407059241582271406042195853225391184673909790227962844565803495152275450264234513542477120838246071961564468194860829482767726855753873927055863535882102279079140466713584230474729524698601479811544716975556000105559332928722770106498355072981194503809639328673356597804212398839210339460629915934277010441262360561122876997493133866422857047327490757722232854757755888744488431364779132448850137372750956022416833490273139760392036616542505697487014634942454207626624391366860545275922234346074956448880090642649362019705273375677202330670448174130064953983394039889691506921455685780011728712238776259827458644816939691882514065815523108317589502771181237835504213630193305245631916164958345504450594238549338866094834722764889934111355511777448779754121908430063808858528918514072253048280636605805506763706279395066272302137137992483085151239326204361703593400872711710822237260446236123658320718514831786041849161026067036906632753635590396029088275756848055816414715387930216917566525845883464433573729462432029938599954358440818158909945163869132338831148068966256517070533373898479832438151884558978073266044738705454722961778201791872747673463583383857224553288590307576933649270761490789632751557219724943271820124408375380659908070171644755590467942740113461644100828809443465984205591257887935179739263234993260793063662885559932949317672508053600322028832354678517112979308773605249184117398111883911156644857085375269930960630007293540937984285877926345728081704375658449733666509142298073499495229362327341540792722203193029563514818414973849803549998459390945591711295191047900997907472385383997462686364740525674544490798524473269438081644906264354952617548487225554155786869295694465487160215988991473675611090280157698649728915927937293785139341173273561633097461489060587058155748092529681084842778779990330251841154186676117467052188990573159187442624417071865799074051104184210096681339849331062121343741854143321305455577395047267307561601257973873915212106931387595156836034835339670186423827251928289136372249105058888480393179864085859468211303668809238932892657131622937199207144011748118342335133981948742444083947336250604086644634459830135356126488859966776290912183471701148916888255238215801612709285360865468618692074428662019176867744774139169155506004649132005428112685864827614597082288643006872813481295377231804241479222785578919998840089284536576733306967115749992521307735240882663622888516011775237489397235485510680656576448292205694245360680963813795327182535659811116189132965551315627407853362413588329738279382185733522971725231435991765934164464913298432057612904386340523350444119883556779270763346786664880745401393752820354393616531627656580298267079953579467131096820069198351341681463950521146385530808322142629216955897894678847354005976185331492215738744677417132613036377590262855659618506369712272399942179907440279716630625084990076245437988347262854383066909501442342817902969950777943686444849025062551897347141644087224538292530990549888240434020767452820336040306079326353610858053385900735787080831964915263566860200868211985580922377831118481774430747267661315749314183965340522756349132221038590246693244922692438689528046492952496877357670119955824256985354775417632181274293984568914136574927411377728524870982638994074856441460833253420853620404965589692145829548038548023327782102977536215185154050757080749669107359143978765422162796838763824474169974552860493165084519547531242448562334398895111910771965139780948434728528067001348885906887520136793822713966412086100621401242193130411491386954473813418020941664718177085061708293371069083771728324184254052632023057545215860211323414882891664629787885816158958828458996229187388894577599609172424625796393416513691676191386711649174781983766683623850034949732449476732687487312846340949630562119858899430826786253779977286498415069380706678085715233422894101541610431243049234131498481124255153637040770872133554698660571237750605391985787847063523195883799985075132234246154243899956300498736791920473827450899653742195316933919834994738419056413998642344388589962424462677048400248177760249851297366885082977609724762122736241450233426615019426204897902109466064065927128250120982414734621950293897780327124323794898171814849073064407490974874602585488905952374539156243144290057932539821840198182673678824840105969683236736257905181806243659627664199945037593170686367475795831655558796897103538786615581017445866248497054808806071798831228733107056278092814891709047904057634792878328411573751123057234941685424925130446453908737748219391769115656592031855729412145169758824433417769372273368700472712166363075450584982464466643074682104267371942443076469080944752841594620319801742525958320072447998743371864408878850908740155758118726498119529158836966849829811732071993542328324534151096819548453451395424780887353478825231810340078329564426932628639651775796545392930801956863334425754230307752723717801238199588733076828398296751499032383800366268218710874221706706294526711959124061352214454260668919493802736927692818241772410561124979472921030750193684391229788449960083273683802677965860424397131994657014699715426058269128483855147429147138679957270556299209189573300821046647034206812575196828250309565252303257916574555606564743373881973028306754384679983201338617098910877771613476247674383606335921422233239091453327092884055407965872535877641545470306249087383815650398988281348795121080376235252384340246612624116086206727575112585425124077993263450486084708983509191088409043800079224199257665448955649434991176115878517962259365670328924711978055682260448117433780285191953526744412883100219647470380793497918925255747040752558815870523789958556482752214209759359461350140237637792568695119892823358007509048014613943723895138033260619596824154206774072854374279098378975125202052955797769545407646338478230989714960458703371005308478050432341162101029878277298335749030288919947401368955426442722050990175804697793488108086436029283854756924649905081034921245998308445963352897026230785716241962282822035208653128242408317164637631189168807814728070625152392675212259431009988008041276356587641017428777639112772654444943690254338156020224835844441847528291464947414965243159021191906391160858516147511442719628544582553192664136036270831080397672066799412413602248496479350479530792360237443039394076473204101347407788003545328660163874669410171299745218519992850740907575070827797509829781327790108717966394026654913849769514931852857760367303490600803592745131743478082141141747027980128623278384201759604989358420077161943519421770449780366589071993639178004460978522394155331623869551887527810721589525899234203202773536768901142091689572946589600055448948975500226718135636661766727765281484900425282934132345619565933628427222957184070264951869097717609980003473135851029737704483171968879239664152948031471495007514403250116574013781683879910276699913019255797359710113199526969074664751847148473347217991442724664047326359732238185103748882408860292117046314807091953049322775142359930267772188051336325557197930634018589630899111624796021489862047808790148421835485129658204491297143033191288021265506021258674330682068624280928242579684569663781859243913136378150193687802665302738466646166030174157880510724058318360846284679768868578779928039345425303474389111198989439162605124544415572192572927693756256140935820219084514834432810190695369284642131935767201775037127659175315967460536666977957671344121472088045759433792333130286292153164086033853099805761519176413565367684545574638174443267338156752742165000366480750223297205530878595106686615628068311915670268642232823412806992847456317414030596792096255442463591184217649123849093299742648517844184697868909310084667693995177060513835414971429519243199187577235600474076270387504245193459665291457552956915107520668954405014917487451203556403432178027169412913968553713831661288080526284414408750339903065003796939111478379014551272269295384569423269984418610549227767609471516160381774550238902209939229686996181910321435739519251896305919316264535982397115493534244881958357515569023761373945812152895193585965375223975989657711118881762179910898109308577362144581236924185246923355223584648983130626027087705782771637513943574715671239119626860118909439882007423877665877175162227435473430696795764562504919097093857162745853751422786275019162745711111800209026498809056262497314365334166423375855690698485656680546712661171963016999591183095678614946377693230580964206042383904643599495933710627370659193961914631242960828480749840560423383374644124141034160511316057903947596582168621859175815986430150797832320472402244597084077074036022252738516719837285093161047119057452300878139346378333479474980484282274103268403964567024073668896510436044642827054269433586664080239634771983379069637904696518060140911212180536778857891238312208125206662957596852575943797539246624434358021750929203196334725254621043284259405467241793092628453501919585221614282847264862239680942711746498198913510262795451613828955347799719969897142284442953236371449847746952739146678912488419175813401403416878880203569736595236551533943401380196906387712023607666317084362960260733528139875356062829177137632442839016911141811430807869852388321086850122881318899080212349200536982372698094996589504054368939698855578407741477027938928112832159557170392315910409058308992486362000094715866610571538476406180127961760579210819977788555185360647862249826932555885152042675013986001665697654635485178572720121692978229734162696330306961757805296288340360913623551017006738121460273217397261550528873587145324039167895785106275243346946086189114479226277823035670369756252919172081207535004913361733866674360712294009221622183810135270002286727218830416500132196655443716279825447903258845056285505200061555320973912530633655079760366996985004931878164423486887822075398442773208674246255787215484785803888753890190920912893615002382702699103718315206023916166993126808966897350142265813702744767905022210827531070599725567098723964594040372592249107133245854039074139027872529377045450648765432445819990327451018380139644147802225612925140104885527225118293326320641692779840799982423950051809336290648898043144790073579673480936540516629014292828561940279083387560062281961787591256396118812819963850408067152084024788447295095843771900177104039209216675668138862526559575418555137230839893440676807702403972596063250254482842934056511871481159577817436492861987589307660800416130609956145844407383579052287345718892274582787234842800023368302553235335530893866687833805779626054434016539981186069759877348576757157877812188730559978413591157445537675329561388252515142450102896573202304562375937625762244610862452069048927741688836027981582345869244212472862252826268489389599256238110899494140099668526009720181063064537761337405510650653205056500249846960236246789525319657103155568781870298436099941328998047125858364032333188998963213154407147396396576960648693817378886914927618700224964683723511302456057040990246281866565427067460647268281411062433013962967986789808963446992851034010458796951239970271150144208712861223870558599624752114678882530599660299938329097822864462238043312971142279941686499308309817628555638320389632178110560267069175462679012573602330419661772801293372257635066119348191203888863350877352846207884827240904273826688675613782421936592992068596524596761911395834306710804912169749334982952425541519274727657940790540659104177744493005657463948028877050700000482102993344970940431970491652103553613059434923612813689249132511424691801626942283108558351074292113821953428575226305604925079497106941792535760482121247989269757272625586696442290795303390889980527750491269267947745658513326363422403381791692879261180751435044982874456634456242397846822625585506445857940813693887311942039287823366123706025390094318807335280347536533435492460111307640148620978185824128070241465494177135794740591100293396155966412591811667929026048091346485668402147185518285131736151148948274022046878488177780712370673565733614316142493954222142359838659038074231801010600134228634728203272603131347032411737112166106209767679641549087966478140279902523415075140140889529113877021239805718662118950532019210631063551969749804483670906800632210282431068857604632836995349963997920283119207290847542208610484034007257967516264416158528316649243653898603711945177487617266050045389274317050235353770702633164076173340023561639945735823334506969533725196319183501511319317001886070467515346578516081586996913849742197324063067011331653013438009180424083632539908908145729807205025144174809364014723911885611672740558027876474050394061064766409344272827100516394573251906538560909727832839415143112459415171467357018384186255057252753309542949223400675482581796839731579015193233497319927961868401327904277092034540174881076424128394337672047523565376132576176088831161031400646679231738970840688097384503353353639228260945177225331844451997647619789255972260574028488720548810279688498958818153362880415493974531872743694176552323314978852894614428823237244865269958524722437722678908547758184243393287361148063990887670252062984271174432393933479795512227632223178066525052105626882019587510706025295531021800628046451032956162470168862875048888323909689273798214506137277276583831045175120018739042768952166456795046690806221553222356104946376937826837441200700560489990972299564017640213687852902138256624107447971862098274399826609876111427846621474346274281535431196112740934581900020848912265461782895088039683927267723183392248760034987618860083598391950131540477355042663898692300827451746935725836012708697583841315722871231275779555005742519690024718568382885664187542010913456512043108404155135179482685015769048392496293591773075442525441313990115844373516817095367103701857707637294999892026785525138305846552354576640028337012138519013691891317548877978191143108125879807966797733019779561070738375193790497771923993587428244034373518249935641348743647791761956945664052209384526269949646283471601343244727073879256352808144456768193807262177241093723010916307345538754558919259003686859502044973256846435134602982966176939634366813703957243063695019448304553055314688424270794905389150878005650585991152092534878092517717728827381950983628959785663698996057743470751532426379434592714021498992019813790964499676590859539040459386826693339864788951617080364497937640763216960699046836250041555610448549670257574174168130276048853397380954752683825785401938646572971344396805463037992925097078131501492909299526013412528183675688237487561521313550895427231478321576557689074161991125935731255855390471455378945599709617805629839592960697228556822157170858777201522872210922220767067952404366402601617141628983081202043799111805742215761925871952068000952831904680334270182503556106376961136544055281452398065973204043722981171100459558200697681265195210283632948386521600258687147337251621623729327195292310029143707308303611397920539395266424660868913339862249170140776793619844656838483083078417611905587599999254304301794106925474950683704547753093354331710969235898738735541986413952381148447018575390752281135912420672658638095680153212198399817268027735989603394505097290448310481560508074610281369005123137138133684175756639847276701727900953069124051111133268503495685586393902836075943765302004201070906873735652921145220256347583882000183357572249828473853417045482701399613797449601471921838885627581117015821352155861051321568807401418664130855081930823605746987118554281769588772558206417641119893751035450660685933409263691226539611475557051815720714839294407668337129948599732532785237340986053010094425563263069841023895938417035486672373696047367021015928672553233413602570626702698492286440065228184555570991358013129472219965936663976827206748850022958715860220050683365269281904825998183788533889532201557932778996605639660419224898501320489147519563182577315026736052031514451430102856114555658655344755321510121967133269182634708531451290141080087971327748539690149049667202709135405716408499058864271572482036897041158663817938136362925804293491320295877292751808580570418328623748460424422205886216699633148820928352968546952001853685887930699491711657390606280317130244780489721699964701914560342827132815854226610129808435227725782051655802094167334579391495028989621966464240840275163351186287400693043016378999801377161068023411571159688068137463471702090551435259047898772806053299346882635585650643362056456319971180340152247426502443564966178106247472774687295901087890946741953524059790890340971356261089492504249168291958095502527056135043860287281299276123060059724903344419824038650701453395472648325366030869688649519820742947419774763781080221833666313978090519468814403793113814437980534620028414945575173858573282891381783758653019677303826742104189572788645445715728361214880818959105917271168835655267249617011189088801342294908392924172704697955046578974880512301219715561983919598956254438804332836693135801200184075092728255577332625546434781994251204414342202760705837963134348317367698851710257143502743592219511513580857274084805317143494789428179847558819280643131007624023032285741435363246051673009498590518891418916668719244925791568563841493634836197575930581644284745528590551124667049839442816474658117649468278502588319537937468044831236063827401285422550970532959745067794201010334211986670707072466324424042686868922330119789304326509490803841131957215581023609713094727907180853524291224896634854394700245924888755254308439522739134988727964323373357327671928144024872306333889975277014576054301956279848793911433644468768043319689159015602980089661475277006682062803333500632168657640505752377252541205282013496470610079273724105468560283308105356694904928576327829486747988349960262077697281323573387849344526055418589340696284451666144550917869528876338577885501416155336146128483115058734487942265962557371046861443214439757742523039337346351325418633129280386594720421696038092587926332971114822093693826209903221329213317571946645820950482453074615769797491881783149753433392729216650839710629338584610156854218774455805445694383242586937491758245957840272938214194513902988711742417390435063315183222593356944545772565874465701042571774394127848324054480104038693184292512859737914117259846983921023578020945403427638404610405271187994515205314065658146297794759761765671574984657555621416806675857346203614749253743347831387120974517845866464870865112029373530418512909591192835772840392546252650969721375724227023724677449875926946986226298079080589130092941401939592448434326002336549776535361748601745643317385037292308053468600653458183739769924826776051517570619560766028870551380150937760154616299641104970687107015962926295203681509846180513605636998830369235680686914882234913683271745014068371738512416912578747564680984683395366709167511142588131613580408321740027450463051445493623210912126268231819883684956837495314889353268836122189635095895825785537467381609409497821895050992720335416243295507452145197101022630143220913497741876890258328272719637592421931810530194339311182833972212713649473454301731105866523170439036296142010332077860445261223253364274964567375765289538915404661743699968914524885650513595753822080613602379899995154318063804012915688581562901230231411490956396404516290358651850897788741519192867141828024304942404053173479663220947459504125782737001152726610870492435490750506146483326189079285749158833848261584179827215408505726122028039326725145907878023777544387579395841605572496954044408097251527516486992728183857039655368607896878237754659733963609179927687348996861779477967545864272317038637036748281001846561157690372276761674854702119284031256644937188292283848104516472618254748672125762068346510032425002441341965876394762776079045349446534945118536290408327292228958900328000960810170252921036603239948269508848202596227289400482100441015922836173705323426257188174845905014120843986051352319357103200693171460957266349046565418513804121431524413028031426294468166855302402887029971240219992462867132646451138562882159969970798791515334092322209562618353669919910844553375989857303847682904967824199753250206018083784692734572513892851383205711417538906605277360825548309940774719393287698788084834218757197729739938473770691608919382676097907304514262708974846435008342213175362618280887424175437150233200077201025001234512270121888055421503471006630114282105710014384850418421653517688818907027518066595753105608943631575269673618444819557927308021300242918555842024581828036561984202234396343604898576671079131800936433600289734234303713314877502751926552442647308317775701113888966039418445026244293463293595994895117116707951779628149265950033979533971690616996679863883444841080316375638490894472015706589880827642225308865517732227042555059656332331819773868689697839949730380986809383369928229743887108576352116793874357743114159630798143597271431386601967776192679886089791422838900294150225796878832546858711137820783773652866253008733541620329171410499851222997671983359080737735661807620882388817744414895878648720137174769464360408863929102619531836750684045402327669651111847765574081527618720123466758983930035190716002851202986778492701781984309631206963738278045644810145341869861744067369535736983560691875624910492543591687095034477650518064756419411008918551142981880606518475410377681100298192245177234273138744846192060094595504560749524481922650173700055973620938545336442743187474980935161352327009507090481738977784837994534971707506691272583780447328828164841501016369201770609620345100887540762655328109760228600515827017111363742171012663608200710838473918157072317995554346134274751679133963871698781363527382872283997724274735605566381150409837588838020150824278946835404248453543347923547481441003194394067909511136880257436668597068758299440987957159029025095317335545810415129079135071949288640717584336676048475944023889819709163883371422997842285037955765854091425920281598730196612887475989881042042186664007608459606423670474666576269783470991296004083480649477099724891409647766171745220449333005296854495086428981901639238628163886025273749713916013120326546697621238394488947595070758515101218605846555380140127167866030750123999502258036562697069118036049876476550942561661027712969937692825013898831526865473713471446433280570086056591070629720273346904087803204723740527382645275852678557542877414564727129090419624049466472432440411584722178673184027944779704244502822278396907305932952156163026744479278532586489900316883424023798508628011307416734591081817562424334958245978529690211610076950606392423840989872357847311652891076892080389100812108893578716158280736270283011415656187446557972279290649515883729398957670675061669628950799950266243259243487822898696413617963757549888463530854957666333754445425387213402119126564876472327866661312412153071170399836043758903565078905517229418278178632975291881132014283283740449460727159852640823306238660565618361054526317191231031555142622261325523784588372300026638198968055256441683165067455172472815643851885040954784202169373599439370884442649549728689347706031470147848774368256739996068131141705224468469086445894240581647626759652650302798475700389959975679871847946494993312830960316561409864483151653560025974299386602229884318387527109134158264400320693357938955821343578242641237700233062816824144922839327936291968106416630346600355783648881654818057104426591764038723713827462690152631059509724234447542890058954974647685886623650645830834725095864105945627794952040746477448182740247186840021565808168962147742630583594030512595130898772793753918695742945204571129858551436511926582584744567655245089000602478188042255175533431250234714248352343735316189174169014856549876262963651496431194555841792490413560291119514994244702068587460220315446097340317350784960021542459227183289337309882500204509711324792492778095772145642037426091602559999555961761838341166133347388276660899230516987414229874033686477647581760067856294792614737304770489648174223096066727606958687513888532192137133420215670593037825325199376869244028099831312571385623415012576793873737867045945901685986526713470312691104011093536863605793952209096548626845160561586700546612055208260559083881983144498579139339469280304554854986422315541007451581715058747930268425424913007193784259948529694087992448056792812242649236232258916714471883051098256311468809127180683101787228374787728384934553403428508986187744876260660596779663974435318434424963155179585687647072936586118215441070251101511522207197313054677347123785251104530674298323338851333311752920274148768787254638909729682121519726210448908182953222003056313084257921223606518976011728933653343426908771926790127814297730519553685097648655981250941299770871428491625335013221620192217349978849398006562698461793830929969138986604565168674439562498097510798756564429536756044079923843711982088748862891756256834207041075011033064678642839904518146077795373760025125866128131305673542820059035591656795452964377264830553257841557507057365758240165549329081299843968280202772910557690887124491664541147857398170668319562316747711248090712048610673231238798226786648924912182539017414877041981567538909233121409416610528168976879660094595485580279410824013370289882276742056334793613366889100776664039493805859489689208592196618361916438364483663125874528079732401861992712606178317683309316165918748902349806337842358204709050028166432095358648407582723190950945705128201560843326469376203843738792998629620876995044551258204076398600409266724435700815476104364664443060548978794765689318994555411928485685450442315692433409150299656163035401641547734156696837008900440241630439112375695214463481008733747475016461287909333437905705856835771574913536107673758610875350350823952129163503559438657540075725293270720369514117680096519488669773834671793430537484010954662230316296334638021152154338315161487350572203764743035731435947129301991993543734804994944185254290868411367149819791633063187114663504027769986844222690534966118750002443052226271497334635004240040612526575690248841778942946304722634939032439045913197830350468632335585152569962626715950809544198268418441674185177012678277654318311488985621657038072677700740548454130309850629391465197601649066633050106319609662158654395239063097054550847565165699552020012777160961690981363149996701665277820798105963365548023766555229100322279513953897528313142837228212040167834364990764495772733490997895040893516626633286910997276870154005592069761525929079716740643080534189659748713065797595752525916076259100983219627748448169178890099506394883340557765973891761064512193007400380701753873159468469862631833005925022684667885828983917694937277807145661746710994113884244319925957167389268123989855011943852323267255427481531719173534273045064086317595601536549429479970106947033949557320868809835801739920177863074555879795163945331796663701707075926005327197926854472938817244617330496077114591325658978637805913555895508246931273805582554290509497840449262851470199653220414972115922268836169032423722895125195540906465686603214525277141110722695641300224394794369066884816902421380227372208087946079415530719164684812101302837720440895241633405254523737860350381658166240368259896746837360940930111670351025945466934658456204263599046964281075699773438153402423435886733683060133180904869714120727465687910391441409635758039384908328219765153081655072926453326064315672096881387657712590759290032494575780668498940547542756491435833563932688742599770684490469494492915103896107592737671284892964118993881554898547084681270984138129087599094534769883204333322955515549085327325067531316256204204470068713174113004595956125451501486631855082766713491235008037330189042447447331403174851129493349998605425455328143438483133323113921316128357376499918216254475156133366062704951374366637231784064955830757293987132440375772800358159027002038258285223748333062578328735933530149434029015931719646648420245857009104239744837313983193074200483864111838596886248324295553401684363246087709177198853181188471846736101844389338989902953054023506850753316277944525854989028260598502234127719323773460642440509300949404369570496413407658152424485977251676218522597454248833144068042363323799880466393056689447032922308071349894878354603204775820399101739154025815949002138040415052350978389010124760436166059575098188603536039665488911649281770118471094689611664044088489415265682006958028906589986736491820081666827265679591379453657144543872396420347160596054845349604406855269397681101418178471705436183605689691579758996501034578500407408023502921555241817756848739617872461172149385700067980808663473703177201856426858406426744177496422384133861735683180320555113305974350697949539266723241941651845711920472225288163700146979374800885269487180689828166699645330273785490970937184423240319876224870754001242724057325423456881669758916435943828173787306359528282345939074269138602660017470762790542750105556832672277949156290988680781801654707220777191410449848201763973101134472745269485011708006711881436292887425769718585053382264709811986639309809876881631557070091361449056351430876720685601141009126751513052264522743921795458131793068243834415925157297724158812688773326088739695682830500156178485079895177302469539647250489935233361913192617745340362560026983282809434518972730914971706756451546239567303933356267417001590174330271937806820961800309690794786314748308211893538158478678660866463276347987227969843910244838686285182433850388607902769224737760227556259659266647598073995272892520266163446130897012122175625926137206557353186844192034334085132379277853010885278927412345074439972043134034892549237966551054249769420273909269585994766775545433958057370660134889622269984451608702843562961586164084345392034439393733585441760319694342976942334306950723402817811254705968299071916490891004668919834212223195214005884337768134278176650042508374385058121383847698255719917943255025419904765009750566766691419058193463008917386745952240195638725365717366032892501500736416040584746767035322360776596139385478119603017146984815419707142524140044917112375470664573478722023785455355207037312804497953771628615544344978251122691845819377997935443354852946155761676853058942214602739707092732524719949994765448388079186743385364365684091631478184703950296967179028442715401453481292553598621746094806398665260534148324473263804148430953185306999315669808505430109529402998170282661863024066360351771257867042549386648029243111723277976864195490735379929220279305389270891609873438045348591869236381260013106808038769669794225514780534764220727535188363519509025701190907833733331572441960465028354099449376738508481023814166179908566278753727769481533580781211804602302737779726245742202497932449093959270939725091467002833661768714801617255091211840671730201079013965673835686269831753276277647504359006175042291281160226390716292471548499192107957910672883538807215330442169937513446994918231430759565912918305200022889809433134440274888182574297131790302496826960528252125300491103503094196274822685064238011773065055886009833311409182968089400023135913788984521500105047862472293985039756084017904409344400473996856855675068196775691144672684574446236880194218965318019321601913386115296181209665206360618886233360389403703977614998982018787078019433521864920187807300149234251373998279609037329491557980773300655941515195455263588717218374180544409656601081781393133461465012911190548851693470071666009986948003223477456683661423114244049198475631227014711111779441447205907159534907885516553624070731162219153615933838614582944815994067293841819772182366172440875034684821841756326486510246419983672477746741123639408952454945402196950870869783345387887733130551687152335029071407961952470187678500898126618971529915286997353377594162656661119473065158246374692425388547878496649186370182188013830384835684684985863117482922591725979046691535225987091028292583256137362007951719677993339383454514178659414459762343406670662839046823959193845975216173601512357530627732400927592010254979713867291490313415376176248229112665191439347991795010182255826886689805881212120797938109392596992588210768762237711402939308804435190937772863975344323296486369699024327613066447786359636225341737741943717462150016029467083398814901566927048021037031736163143559907871805302488601265268397501297118435214581661288443731800051676648748948787986426503900105888562256646295048439931368369651675897262112733998297381414266380266203129830645628785447213127892598692498072465554330345626105691694985840931630289603165995465756436656335159342817923548889594000487520315514110494811826889255639900060474821142437800338548063662367262243587091669864067095986081923136102216563488803418888441487027957123755837770556696256243877727980329754669796991031657892134593204357591365756196622346787275988910341544668122681535057944126569406675544137891251644857862984276364373325558992722498327403809060709862652262097506909305564596545976732883242501981343076912952630881997782070687666235693552687020873395799073645785365597041901571420327536375471988347977756138884576074195615125298815192393208150364074492592518367098929248626969695056788113977152642132794874104371746244367703470821468522794430369334736693077084104170932033650914602117003538464778485612376800721244282998471888399474799224818876377406205546681845356411217721299639633522975707725542134848270458543353067800356637718693558012399895512276086687307758976962736670369832154435876296065924189775730105037683007494089216085368582106648076648284837263514190020718460929890009204190398448555793875226866452557634584424088618889109003421587236297535817357700336256940001902666933837195566365287248615336500773004250906056074692567083405914221239567243090672950026090203261153025998698743015731399402578693196776101889143971479386443814116117193608723563185499023357885876526634666501721939214480205151753914629911752194598730918210583063141687988182165188715482096344568508318015663040583254932654816049438818569144958442161141033141695441286795627185749342894275553546630920435986112002894718102443138398953224814792346887926112215702463889061806842930492318584134795131622374987920910406445846828197871305896004846967678081847148891403523931735063115408599031513399533343469548220279850425786248332438455469424416650822165005690916024671662722085859535708141728930131852068900860493546114312475519444912178995215083858430019124997767804880881380780130755081725555411027258597437811085193037265479870808865548003554287205022727836817585288350626331057503042271114800931022228155045039818967465594151443823292886221818818433982833129578647272546567713515565659636693190727220056084762920404450637448406686020467748754484369532389990367268047528175264855236301358570598753682401295592922908912856273836772774482362449507730248735426722457241817707029591143285491372785524431917348592466709437918150484244176708933308068707738167239911679167322185838046884473958662074837099620720904497298670515188896532412419951462741548094495815885476801234336276320586933414324721540408679867375469000076171578226042025309155678528816763274564379649714759083444150438971378261851710135111975258328435651009308640913093226312856059304179034564335853927584138383713598046886495697891658121338949955353504115991406456640229537903967601387280062048020902865433299241313344372402907971611813665084227110717239952241896594763306170261955546748400418420190141436191401340661300922493532063645139888786376316606110323028057260601177546623175105712576076681485118121850069271942901759764394116433566722600155142481568475349037823245419605573143325280320574952777315674379035792797678797720751668118050369644670188528382902681813019164926754464709425443028564709187978198414761323775940032957217705493419416424377522560642077999054673748157772825723953856521448431775420843044020484857010825393098188740779371975128183093499837213677407308966291586896095213973711276505017608109860129578515584531516280941538322180763704783653584393463073049551800237546788596803711493983359075758843886434877215629830389688070279686723773598388383879510615906350213130334032174666529649915105575555328854076463146267311978164468152494417798684905434667433349485472542994457125938212116688420187895563885888395099881985345899618553962485626624479454942025811176113847990909893432547826353688272385478226158079965426424681396629243921136302526530007759326361709288386520303205771418304363562121913565554899994719888383933495567273215077557404157207974426520786188174525895623855063899732428744773857963452991084564187194376142579386090871737468055016210446799103059794528944461085520737420941965259394645645447650084198716488334731169439489938788868709777206437925620165974090535058999747188911488593793684687742348563820648583873672975876639126689583510109263878152414607375831839718756695590380832954377517511768720181848189149550956343666750971593901497268696898628555373477006670732607787999598773073053120375685755590583445633406000231545945881623614081795965617579691581478994695319067971526476801838486947233112416407764700095710466665811724165148258193227409324706673342222547972855050917726251171930775489887485084226472263637022605520370539271748492558460637073354151424973183364160100873654337697200697947419424752844564725511528376958667365697719800999928585735863832530691875219295657917651619129894341153757708839326575706558954650902791582084757619039985477747149065327410930389841651216735478679090655750758816938523664749020030202706869992117017288986165306643167519179410950792748236159394956596132254707313108050289423650839469737113984219621649077808089771499970277890320647630789714171225079077445520360558745457520911059406332523692537745613338372498065945906292825212522294158496723925448845703788974800572346657298923319909889459368756429276231708447252028003465812550475885833469878064658543951429159806581256038094882893821686635428532831109974783708023260253662019172733868644245042324273921112616134031369914611887529122249013162957840675254316912738319769342246747889242274248299221083623922895090288107804973243549693047949160088020831213773522485810860148615702923506204791577098595103630535066229690501835349087736059912196842761033605682513936620234316678766615334462540952485943337596209147151524109747839956245566252711803421857761192144481410845162184411809383460710285608327456898984893458472115608998767438562061219913382961578312315579159095924854705670863565934219543659309672269711494016932771408445793465329190041204792049595942726974673558684621477995339366284491477942192952225241914330093902486796608431585504597992708715642116825686878644663391468748574660001103845185238233221600634367329911509279432453224402221826101996854188192992034084817839218401606530786018915839697087056062509223996529085369299542036796659402476048554617078928495308031884616145125640256505790846648697888688155807681029919361464350647895340281284421744798562123501723804872178904557718478798318633239562792852722604714048980244823340055934689188840607169324765099040580046443093150387973762370482571866160612247946793348110898471704851247587097027372057127972482094780253610812877646520138531511031760361832106473014965876893342767876091722603022378755654485375871749660048214619830112731902981924013986999438519061288508862210643707128364985160338809379658840939646414873860651482122643457368351148048369449023967071406518133168434827908429596097337109463049861313462012821042913021103825045515099797158591328997528882481927078759441228984658551908110598464156560046689078667562833950275250333757669855309016787793669770045122189768002713195155392515697887717576863333199649309388912985076383410121427448318249825377759358401634257192664003436450127061911234970225539066475506628728049887256061703726862600521566912712441416074792764863550141278478982819729590420060732724394176474611036081795480729906159520104122199603353885966384647842573029990355405310951754430847537496567166888573885809805961177491895890546400270687212159029604829810504457928320784371670656384603156461303050829224064296618736061755058456648806691102800004519938265395483261698529019882904783168680828810543915071007033094115114441548636058626397414529022394071615047685235324567031216780368595482889143950507249842970741766219359828245072071397024724063164062955962064055360198495652245930633873302214548687228413622314175128901032297051159110408654169712205307793484669083990066960417032518523230927731722422142193307666156318446070737963219094647749004167819412539658109121888421622567115935329366687007669168025127839275177361984247842617786077375815218886292898338933309538167607034394875999537046807624253199829999847561427606653207888396314146381352637600573447446994646621871401179729963867100063553165867392750696708628235224600162122597387142920210237084894687872514393760890768250058034405236655489485768505991155389744733363986111801909597436867449948963599178725111627741604559308904581142736680155207233587144657154181493148499394894503733933628325872546935014301773682584414033160216690212224701486840331733255197928683388761443745799827999637732909090636542008891867527943887800513610299619098802214414034777067543663176828269652574807554368560461712948727638093010818525120275702896629654313858808969092724781563235027172383141360886243893658831174169788193979251731058611331115404603833173696976901248566744901191760605088096689498454442605273776669049556513964782413214572881539806786936166301572123432008146320325895845666569325301544482710541711786792087503737859066568544063755468619564538936429259844198982227352306424485688162222702101085627176212831678021084504560793240923021340029369603987779678839169911999844941117470771661783848640851349846560844293640702364751228115220018730769482189783778055901194953129382600615985209107644629042867492515146613816314667986258125825662467645620137659140428221084807158470570292101174561275292020286819827540958770357798560143397786114547344706343304653487712518369348943041029575788548361636180979342353634792219409942070693232523075598322216978660460402903540415286482769683432319967923023171613832380769917019646702177356921668869155843516092031984939822732779119763901771521266716039214969332306091941161367235611246360863480623361993002871690911725192688003241920188129183924291048684432200438981610839414846139029006876348097123091676563589823982698201364581653941554273649556948048462907232849749645922580521251164685596143668365471005157744786150370552072246894233747335332509614813311563117504069580476909029926903818875600959926756530137842317114644341277146112675604806704830390346818305912271006791876028733505086665257941323326611533769521575845491463865364457469458418049883678482844276712266492653244375204593228869420356584459600816740344122035464051266006028977497158930031654007543330766278869729726129554142791130370207770993079074539961606660772324345757486801637657459592860274814603530739636435270230549568131950184529121767214282477432730114943342601567421921047322629064591019991873191570509420611153471398978713484338924360492033951772672346121813065328485563731030943872589408222027284559337782818355117811031408689205628309527193291603187729695861812224881694592219521969857944970407701320245009102478795161611508233621848503546145752150748562601728208633002850429176311570324461262833169555322928038185726929649859363537660423045969873880066603634031090955570420976138295508752640563841628763057157782568072832556363029778005211558683744187279817341732999817233460176971905844320672054360665878423112571134922582269286291037783759102184864839045043593080243232326703344708308886373934967138566251672731337069947202729975259532927141511675189537838282497605562719719918877713494775514025265542233655598150010037388423568908340868665947966938236729167062020416948238960747862519671339549815494603056064398609935961298427663164698945043080907469503618627260047718357232133696142091790151172417348080899251905721607230709753964628475505290208197626147168431205376540731430226689341143524278060647320006444896222960429209687304529322271687068832904652233415175180761625308421256675169612464702734680630444638186974033754310574902294911943622344450289449451644201243030495365594703972834597084924033550479130717463653283194749018342496734447234191841058854027823045266789784940232884510755989365953214936850012471867629265968942500055698760318031435737326380662305551664909073507746345351661129952795261154091897433641979697333734443757590352915782982465584538368688677717775820452105567597022260250779969630835171619269384685426003845253282389760726000436348429025963755395824628611537326415346035374151505805506669892241891769644528680586847251936554831290040370065835719463381325128140347435519474801651111721958277378656396078709628496137595311508473636982294356740249370377327227244020535839934158236968821443994063313081302504469733411049388473825868784169006391573450659852694464129665650392563562916711113179729179573910205031460313185766839455119621098872045736981261769504113107430562059525035636105336529230559070375454562093137614077436720521398376559594421049092893686649855601990557573688176133140991450948605273581574723603826598873866514289888041278415572836815876190099785862187683060168715234966031056416665223385187505616728504482788589383243154127001329981463876800955178864097132145095000442036714218296504278283677997518582549564019830994427990009741106491768241879661477852517375063964803874114793559856433527484623369222518624400822466439106892900402880230508460048088765245608746077658765681207740787860842523458344270929750991898181932948787382471687951941763935235519302321175226061387254533210556126633122347196620702124880244693286586303119668540023469084456770311389182828560464110109652177289828692944313788602504133388860458917364578832060367423353558486957322546229116981016007899291046224521392923190195589706197320008881876539488454862909672720312857611360543294532545105395398302830746988034451534317458201721030388106450843376687349587277966470916583620995575100849143443682239003482202008232134355941557725224448387741297354598448532537480485190251358037881166992401318946503547470314882616154853985281844367477414192250253141427897580075308158390088237852920238160267830884038286055863402196687840259848206555140771395829885024193425529860782453818543795731382550596871837071125430658216107273615920068620179354492999266785125470634926801178446997913509777196014149666940252387435687412736173596298571974566701651391691734368642365183873446953910846074251266843948823797130241138335225177608373781581197421600770289756808749574494161694026954101055528858183479983210222899793349969673345456648576397879590398444409073628430003259108374081081976732774898689088841343726037450317416167074785679634793552456151240725189725611829044131387907730459227441579812459482303843604767521995958176875313497892146372851093967657038904104037740520374482474289855172620508578121014351144822844811482824069694208188537325110965380840393917101515382224511060245159132949333025018451027848447203663419333219563707584157422393081376084109675892384565177376498595904611534934246525136982262848254468272783977265033009507863827729838009301981421040136272623580744297916511215134417009623356763404646101571480677573848971780361934950103132326053797760715268317012668345830969346122476055624517245906091245752942194279567831497668905956342924988974888451326700701335331975825156426370241712653858967376579033643090946976835247600665772033928425613031516047453861086564186088235233967825215776918968179684465082377746984719266373171828800587532572568797593131465080311406154762700901237561815210113286947548178932592362733551626983772182455314460784613730594868518611346203813515609239879924345361151629223859474821602618284955671273734844615119018421879970531692027740472414778609314209549795545365873159140050550973270474713312592836294452420809585865114540632848141068373027392035350420946046564417402720786721781266807786458889660040455230818778465502281370639031887506917003041454209825128452131439491931837923338932417524529246771006691965913790277793052774174563333749686883698555199649974900869573679285810707880514464057555607150418048755608427852000577552126546219647707691683876319093938592134970982165097196622830347496627288202326573882356129525584695655134436311295424135571394070237549130228825808991600357304253107744457149369855755123113477599782633429013729326088893997156951933077898806153340465996732874215565691174637951937694633844689429835825186899032899778192519130001843830641857296103710130899770646992166647940511856781575935649011779132769917272621293046875657311751320140450988217568959730986353898122544367297536695075931321075810188734563877309392064572940539467906910778237210918346845810735962678827867979555808823493223874864198129755159705993206643506975240435379760632087415611244907283546851137907231887046027788157221043498395104347714142464508741584995669134180047880933824683808149338343800609882406960179578005410099577487776496324315706504857565880914518589707305903533910067240695225640040675247010041913532625478241663335919464902509086671804475630717028472691253616150949681876905949682579193529735287756353198377906437661638518234768942956217602200752607844327673760541876201597978881624551083395254832930330468905159788073832198453633012241028562641296990924340950250864479283283294878495460259318725064023816525983757020547426063512769602621703705251313485018002029272703407605981666929728817592381081233252593841047728086102961043324527903308352809902877531021238125416581838340746750352415842719457748138476369883735425688827146677468481663757910976930395721250513570785025970262252260216932206834398736378998153144411701008658955528298389733604353620429335836138478004996177080484849745621720614224356725344589937368981762266662217340045951864145507692562350144162817445767741388112922178880593176683748303694695541037797181000445451883100804848447897900127946653193780211744532647645989716113155218234394549718053416717198499936359685982497387573318768612940475710790778873021500822296968944978706411082187757983978512638970824350840515071721812560291869138476351420872094860251667207934956106894587872822395852484058920873559085717457097424642229057588627257728694045067589115023393808003701601117800657064442962290458147093265774171149036001322504557901061466411553052703724484949581949900321341359235308056320154707170822825366078169183097861017300332301637068321514351982644041566689555664706714543205494070065793030025812423117857272976044704493760917549436604546352079226635133088104059762445390369526636496243513930792860519670356066202512022599062896978813567041027347716166130870201463681225039813890548056751134304386329724558071522661297236243113080384745104972081699273819059465228309226962923898668287765748953203113729016695931238648914747324333447830220715525605622173742541927826511868828694320509009006877376355469101114895444634516020349933001415434213694396431480782638236158261307360926100418130719699406124611076265201751239617300563019361728048728913166328846990780680916494100426518418463219276278198348466075705094571983735522907872029639149103871084102879098264131182767233503269324580752355525954292381090598111689924719252585177730990019935649641093568834712296876515754400059649985453302495021481906482905040411739820088646395408184124539387395015273624000065404278850142677075798121164381737543920564870373125398791076248271434403937097534564871142999627422413296518986465085480403593179580704284377334339386684317431229745381619140113476191855381436471391788955560970070588722067603216421407988803001018163949881025719133535152043091731238028813915525803512502402295766505149864520598873911187245781767180758771872402857380081585532417490474797699571641693707474614634966896422334115061617638942006362921201302919767754395840969998095879545968258202907641593754141683186259586956006184714100952837527338373230073324187970800195586699825641729302569446394291273812140710044502923867742979195993546660113448988718609929451567001426860330623872733111369184506007924001748808424637420664866556492264708516609216117304798393817700554301731431386596612274971946462558169771288821128687761191512098441415633026598020944367608445113745338497348773509538785613245383570884241375937398581340536559852282769646493314291804038043802035834842422936258515616774489944276759071461298155407765811121844986980262903623386923427076958774893132861888783371272846087588707510695240909249751816337751462183963554174253617481067542146280574397504683600446276729729299378673956338596345721404795758797404279527610797718542061511545298052908156297823848323296432066830079793920712137312166928911964553380242351546327143790462138143130448860228796517165613734347424071752728087607260517501979422157022017646231015499988648670998457069940072804421659709788819289133049480334799910720634060564417041864675135804373955994962863798252099846959977256723229862597480061382950281113565517570427394178884575581891003256048791077913829957069109652298935502193535586551561139612192639620246079790909937130024777758170829745664747303878242346869777649070320467086386184795385683268995670384261399940170630833724784266707701495736337215042403178285856105458341055273152800693429761678991697392079798190068346754348968510150209231602621591841883950303716836510014358355959532161152723192372797925022472187372201273491642602154208370349856813690195269156882449134338166763023998070253114177116502837185902575158861481569137639462581420309368531399596550736799654388009511062766967639319254760948976215005324125270950835073340665552891737701651561383981226884600784001755112343803999948994806534689653133808792208698196660791985024817978969079815487991065914518304439119890513882846797062752990949694493218219576595577479077406535624353298612319074218189015527232652469419254809592667237617087848065097640728050759704605078535155751708626643920718796357973000266699756407045414037431062701428017020850654310954919557050861248346444712659444243381300350226526533576248083984388847048151817269900980290008430960396509315222684190532417138701886587259728071264703204739058650671205340418928015756366081088771373163047563137031940519525020078821101661628534764622661589886671235476188991966074544441072914198606962395503757754406976507269759803010690719344897134722144428525037767812985766690546048804465121689445504786516529800476943952891052612056111928951357954941477421162307973139575456482401109045935304641814576127145079111423553749893626577186998495128157899854223267680478749171543056339760995641009895564811880855351938267912420002336224785188046849552851667949462298792883587118651676944795794072014866260757721652481217237081492019841751196799118442092226026275950132924022085109912338337779643977585257556991682040000743366005600154884789207380415681436424938254448953277624971651247801686509718290811700069971827178852755143814822249009331871915359769339601719882879650619946549286653847013311908864322642021335791775152097376646883114369957948066808722800890194601911690730925692650441725542492891761879111584572400109747898220269168955562427619631812732288026611551033697399308381375482537997679043995991873031725418445639178519835356226724091017133484054550677146082660509531988814982727198717922150352846730969306010465544119778018179988002323486383879586281537383304582244548919867160392400371517047324668083338032348526344577055193384273210470704243267348624991901608908555392543389975659369366024707473404239116044585142010466709963332389031554101087215030059113593320099954729444536650187306261167877874350952972359606169803739353971845919811434291458092083669156768870119154271363886202419977206558830436237701761484045446976001141513496003292113220051446060502424009862739749178281708395020955105527819114895104454339371961288241452364507236093704318543492990837299520383997837725734336884676898789736139786365999884202335794201949447974491196828344453664517337089152986722582749618017256780371588266919774608013644782748170258401942030354221098212360601001865585552119815303967095605562792253982895325569708063548239185842239494592320877480396359450879260351309356832789809720742475603962067524337339255361126911100696909561731822909512362583246610477521454391576153467701084776034288089444895125222521066652336984029982548652196872630160798787317493160818131335727639477754249998573032267833705310038356807359007770793317200423829234017954131759454879321777938270506904380961987341580897674266003067847086306264334040477730940512883750797288793933519124071871700317945060788138570789120734864805838259593649998841566688590101593727520915504022265393372177334341071846625650581377707762836201515733606853220605091196676083278231561959884540713637157933424803676441564533534034259426551890124667116374843098655090757159349638531767687214847243054855789584034607028341977023467676194810084645460693775226239266767771166884059501823802643129252448698167673399615974170186036199078166716807711173710116102468852401705878008197355736823122751401523644274759770372039543363225350702537927037503204908990314525565942862643056577975811339154684472117529101337268731199337969597131928923158690183779334998926657872264353689259974335262672553052751420043164525526915614647776780332245344153646646792955713094934607091575131240107420435855161886520413774124336636742014070697306842372833481218585444089636192284563961794488698179310880943322023357004515458268563804803356372907718040772084651193172354258321349031345183492745776266740548896179807226687530674544220893072362305577814735693870485319957721034181772458026038229748558645845692231262426373098876089265681410887453709034694088896414403547477359742099514697091178196486369264800851463029050417082919100165284597486531472858246933442607528051061216162090338975180870958336052859156191685129711188944624223188503428468816029842940540186046077041312223891684206387926288930878092548369510297121450954034082169797913036927758926681105655106154550307049934634068220587743033458011232270468919927792216118985187079232176218559144317323775188142258368461061199687287269425877999783131396145524022547534223887313151562720566813459940739509403744391405514604698954149917808174641352458748167307167536583388314627759684664154507597860859911179104819215827789627763360039576506459123251365718494336154047265421125620105234939056711154769124176213880157202741615561983547373031340994942691067671202762441260464552448930267708631162045950234338436356206564148948947276804835334479995758099407502419292783903459471883815100552259819977993601753139962419396969260884467420459430382771688793104620013776184493166132495380723027992711719374074327911379682743489618505651988620818545829053603560757498185984277811011808537996850946020890252194361320546334730910742862498694758221415459478341025065019911944456188258193048666140110648758327785400687751068008639809754078017662727141558460209373344232037644775843168691087138342321918962113175834564673859224386313252630349506429833928163405677633622180380550132754209529121776081915131789135419171502127800465928175290723135021137427326035432651577690905114548298058953374333537444830669234259579715055984381623397159966715194284365754435474950518949950644126873234170161703535459214676996424228949360344956264136358086585608871264584720392560681683896976774219792151273806249193912218314413823089977024330071260817269562377394406756061671474950756913768377364054874163748458955813813679871622064537693783264555485042843199054976246852830743079645290245409819613811344777199621742067255224082102263840751468816865328042458791907674693377107449135610632562968846679616833813344419880162368174434438666092779747835845449081057075097642131247745788785862988787512555373616895414339666474960762534736793460375723860299956417290840723169233217390630314337422303442877529939548486004090379578079765833271022691398683337109285420540294632540734842711342580538808159435124035596106936590264495712086941260586813992877272421345624749175237312300388828402731412779820452180272254799352189577555711967236552376997726266086584728956691255944469413154135381295141152253495055728050954374143709349999588959648488531082367392962639153912723998881281105604116325044288316386613719464237635915210009062579340697398806786711754375996394334407602524926282844155249043703013162883729894814558120333910710741540358238233791670104202223908939925575751225635427266427147663988380438270599260301316992539191163954537840034260272767608460883787347599196030384714081920319344638045311225747911816275729904625852162158713906581031057263563684115436371204853194886849521409161168322227032797722872985919026799654308532992467280439938363857900611971975524284326630438096403782851079378121811769641600055407589736542325191145269122217491277968050896276138218696525600597874596054925707932028429324874765552635634367516273389724924871006512943966549603282554855973921228229606495567719253495574768814569374109344444478182730319659612080104279411240542039214488426917845765246552030595609497036158198039692694431859018269656225472651939190478507083583207246812294041252286056521547893351804295159114164449580178651943910710232083705521380764175006905456325871291391684248978052070166934087427927566831818634630029639994331075919526855507178097295084833899114976895217618906158406917896195738491616133049508271648049638658847063342014107915979474590470075693851693892553027187803741135548477628869959027961025660427553866293605896000634167744600011388350094270240838527083395213972528715382134718770840640371420163392846482908400993600827966567359300163572547363446013213730771880101479553554306302424904021920375473057534030385641677520317813351039400084387953051783086746293178962471801186568023896769512588035350758548199977848549450248369582186625276090475648370197064700564581888898014489238659576850698709679909310507255529797890338647025265747784862863757940138003799579813578438829698949748967283782456499669275148209996142979075458627353793020763105850365352213538783927600666058875028124184179617442736926746142064904729144813201234529950863742877771572963520001976895542261576614299130289058643929304527675632205330733682378717853512220823106474610803120729425856972012377567569575278362417646467418801113083352513425772112852990830407021392039469857139285269945113937729434897801365954172587816707498434809091823264644877184476615319701596126238094950437640381379421241356310009560293595683724292968878477860745517760535354591848016616211417453277786386806875167914488912833674385572863031940954300714031272439899162870362495246494073029355351855981195373556226157357000592061427363942493724346989512225489962409720956955485354281534995582915017369464495396418838094692350054454793232011727715452642309550692806837592303376756535705979518263477176188960790345117053779911543533590118924913017305486265171208515458453409535510135442348715732670211479927498469258412681774413392181029523877240682387871740200551460808487881415429059302852534352590652391938941177847430901402530973076747932439778561008082277379164412403991599584139421186118276363022908832820045809136930451003340330441882870025557699682814987138938565660589452874260932041324261323149787925560256301508657320386558995837892998779655869198608414923542860031488773683618488203741384173501446973674161621538268259578341772023569676895015666983932838113469652569292508926579555329901269535033138379260867647312106294622047764579810928163527652480450863233286030192695624991628991228079261398100375679038150701923493774700536743709667971524168474784604620838615905705841071724187553569682762125232199971655232373395769490828216906858413594421890273168586245422076069203681119319584040121937588375251961078559813409342801547950425377259319114157543461365300936259796909768193043734222978987480732216396098557522263252262433969765124679979276788769600149924972726594987753623034235949247315854260200838558044650385876296834876845682084409370043399759945588346839953421662650220068988918758089286727002965654929630688741027336401471129067166884258323122814765343136218103408091884938021001972730365359865392255613655867488869326942147359079766687521645112365717154855910035877846957494803709432250992141254902389595035379743854903128392353068975498358495315427621169259487720976960153548481028389608806729993810395337942806789078058412816432451324090854002778291416433955819258606936154815218554672273965239965251289129215860441702258375312401149606018098778893406023601558562815545959330794047706504265797926891808963375538107673152473884323596602137640085606396784292592512712836847212839658036074503180387318474838910183373032537212680916156095410581686428438231570959318457098518715648756672607157291723230250143901072889211825104040585037606154794548888738109259418376821040763587774252920338776254389743125577050301892247691305661578893043226435257532065514206148654512235059019165256418367551429749967954425596183712732109806935356790620935376679101620635598377068329584747472281307595216528232753171832202132529605934573611671327296254480246277623947829558203566367229238571297505940659890095168799460056916775456759447344288836440285294905521981371302334203561162270137802230350613411414465179874155746165334953864603906644405969573766446466423292851511965930687665249808662200019702726964462442572711811729390491364300375287011418204951710904934928505574653843003958176993601407945661327249365327236345306531887221637074967151011898502190466283699488888312759064027329826309507912345647435827377689964345596361366677560864731192133020044813612322761647684273891116855889505944200728005711691773727397137019392891215547418931499132601182742397390700108148316638842889778028959508994672558943766418745175932229468093187702234294632250496722887307335200994421414278657616810840197379354236685928167668105323568202272265741909022803933672395541170198256076003835552683552607174612208722563385829839915403006345725185407296730187831152472613564599402402242901771363577690609474638180507997608693812019199458870732409193867572429941777053696136765732965172301984868456016483145110354396429127263352089776729216122090253543243257799876207460753086265355329440757980502785512746916626308464563180616311891097438490880433154847590194134544116988073586552550053659677135873991687259199225932972849452502202532823883704635853517616953494644317101797398818177796340615344413852088025008420085164037835289718923996306743373342330110697936006444985810489160273150783250849567354134625651625357703739009588894992692183240229780440267420983735006856313030095497765141282538120286302499018787552849897823552621759135827164340127667622393245344347787024906622910432317565219481734368773970570914507343787810665259552226331263510738538894036160324992581768514042589330961970923100026427627625394242256541512568659976181882053891785934125249777138728471724282268354914613923770498522610555133978802078059361086136848352559094829287321315814929185935545640088449990804443590022000649903026039048804803346084918492084596156033002793718671405118973780745187147203870609593906562421079241464156036639880500744402646254722673124301772440551463389865540326170732048345855414099398923471214403265312765066884445587894864562394875788034882482166409578178981248420583078313032257763166740380678984449215686743524481162770346794499494278788592159123401683183734846191335766512935371353993244231960783787069056854981293939467179613253117321551167820398984082455169714115111694634264044147232881876720403452997286857966017555603940460030969154211402019673081214027501599865633029801753875316661190335884429858921050975711035412551626589036330374084246384931390534549852209151378389049098061148847940657426901119081015457228553597734657830985855917295243902886347260697963938357257782227746269066468868602172657589088468171444895438610409316844094923222388471926146963589809446761461363833012754527671880784416003783583523675909762328568296327411160753504963766273806294986867974497928353058062790998607022415065082343539679015330066916227582193243249256502956520620460918344980143741963021811763374270481318483408692981696369117284961429508896277027427560052206390517315614897723145793283391899570761604787865902172808163942496702974660560747670646551002669241905739823257378541261499220316026847953406422211931119681603940275223674302519479815768142200907033313810177966511350193701620225883403497436590138973206324370481767746574983990649436369963957655638952138034442635116061442301097891201319648848963084998407606945833853318165345846875850204144582215817293177636892543177468153512201089343092662452555370687700253344359081470166588878876196595340118696940861634965386364341958991642534729622861041667588753937149095628680571136780863691424646498804505963420263104721520304858338900405367891028653359566336516204924412833765557876185740556263227507109528670903242311769360400387548250108602682050175550097604527829296649765805555900905945308510978936699641527057104005800917296289319027785551976028591987287123535855004200756909899925873943411198491293447154683435842299688755182645535818572069900900984160644295758018067354939531452152124713060295001773622141084981516339209895588215875174835712048350698862398453563357262332952590100407728362161477995367725110249963839594913886566498642734402660725026292105914723453225517452597496616315232352231744299936109966526372433134196409920677170070556305646991210610786664851894072543336143789547004296623938850471506837156877609080739014757889088895780564749933360175327300406599600170648942780326574703744398781713954061357951245235978945880655993047476738090879965318244122475794477057110403915204439538649318643177264920294099905965787231666610629973842758565814105245727329311983902414667158317545951637844333533587704027314350293240269484519460725308249900703528289699120187975449439291429394868220542521812790233212576835643395443449396561881497611682699432386949413330046684721445382625304824576673918039013411369759977855033175954743911727112642739393982181280793441005567071322148843876150539708255638145080711418673156226934904988616352122638161021205581379644743722729890810026817433516209482805971150627685697341461015330438671100841334567029845314139427092549349202710439093885580579911993276495953819693073244844814204250181523522957386349545579610107315856868485213217268615073045515500977182157913127184102262215991822331838541211034882753661216152759285565643438837047425674033206408107495635537712245309586222878479798426467230979356905904004180825107454722909162675792906388601763343320602831194872988946150934534116596110140594109472391129183007015810861645042427949373522226657193739898294148607846395463764700233916846682799611816780987518411165761016946651706550319375083215488520675354135633027385572655765250833191741759007884648149563511221194367780286976673636683692537430628612449358677466836667713192484357443647828512344273218163533711667199166695507639824439138773457570147101466540911078715156108180366101404603990556988793487937614022976409794163764858794443027737297978055063661647035113346637921588945245002766215685639682940151305724044927942397721681701169921888832405424477840310372341503863083246555226532010353596420337805837070490369147011246906826553079412936725335800181805300243459565239915295275452285441790170989708611668007704750906912599531503257910963867217847112158813618333510933140518060529676464287491908934757202655184566073216877102314696104745927873949877814595005941144569848181117280594337687459680880778209159867251101873227465841473164432556786314914647225514971129081254865580248266592212559100691751698101604488007046191387244596309713543626100284210042423391327458675255051159052633722819599441540493929959644282956087951270683359546380439662001018435211728061068581664813393037300727425551325009996766444135589060746319471134969173234167816051737913565177717494119468007380284968247141385058492439161886544461617105161932086067005675174612953925297043889721460098733796941747186199960773877687839277162495093013919853324585980209793249725974346690056933235086958323563567943488956854419226744983519654931987410111076118904107205868120182346098834192119804109508206151210665041187872968136988338924259567180937999560143507534615137344761645102331784847889889678853260171611359350679599369847154142886921753162536956052173937264549165100943352420006460549662061854656867650804779528681842922900258011252648543060964345994218209622920337817077848506771970452662826072120406113302840097998383656745997699949075336136798767726397798838716833931613042062569189036844476263867290836617032549666281230388144638139561730628741615557355831390024300568318029429074150190986339494688392255171786847181655952308268653669685402131852548672438882744133543697108582658874290313314034391104535284748467015687028173064815990449451493405793488544077294710027201690140718450383365172612041656103941391606663140270786836844236763902552017752830103046518698462715086458988417183689317912790770115241075666622654105008181860566264426434006474454962906960205101075817663469630958616090411409332247408479845775773012231478415852715213456219860149523996432467985118824487766375650417506389395362378734842626698825903165447018822451980264271899202585966066005323536224604358766263609997913726352567391022831186935611195638674568650999290638194100140343781151312809052564533850902896166416720792859962168022521630124100735406497744751911827127058537863085222783889317330876074031570828374234908229926390393235391563879044617283058837278913024670256651522249442004498696367941239038473760491896690355319276730623696284552611442614728196303684346532323456564774944806764491535066517457939927448881340774016188989894833944724363025268558073984430710833190416129969644943645593593848775251927742827051069759547306369821077895521065949581741094315601279838914467610819037305276191722672221310166711643686153682362442408445069489730555342832482741605979303432489606972129141792403683856393230248270664319209728326161113269993977392993260548672582631431221525760975035951175333381839893715105292266766472302537289712987635084260445442053598120552823322508600217293663924086519089119866718168760943153045094849658901550835953852458427036927819398933830556538298150727669963996479877943899506934072528205785625992303163175529840003184729107799944984862876996928083105846802430729450180700550293620939589829239763641997211512183190917424851175845408691140129100882978165303889694547113559575990868762238949609927022711755048748909125452926213672405789408382025547696655880380283220259047984551411895791990339707697845681358805711689598054804696009055984561875041119974278218029086662758172045242250238062817451012135563555651107357695897698015866219265313914176459088829854600252185225460099129820892745063434386234570249184402119703379850749741421872857058004834864885934282377914231999072667942565357106152613776031835762162967573881407644743685564122416936795378393450234948917488537461080798195666393080975125845096244925775947644422296596697916047249928813345547071395693039687729746253993358604896487793313598365153493209523970405003427758505003052956000298555484363024756721212577310202080129833754698332358902800647240220800601830991312344576680586334094032773762809941616312612311902350684731366586458753376701962813286163209173720050031314143045478013160016740336919548688328693898659182317591663446721116209098854314794518992299818739540055849648559529232493079127239110026946633554942449633188170145013902621781941726392282789847726739310513034532017666660319004433698383676196094287825735428090904364807737952568597548022337549148144753469831595065153077836207353409131234818919964282002504535477162703218551708516415474839052750982659403809285407543489969846014414731610049535582547668359485552914592206344432408447545308418290738597494636554355824438961895142768259287671762516581356005540500099835932351545669079076181076881324487027864625378446540918999744289718075248697489203519833660955904925279694486038200595979981390671781578821027970998472141111215620138046440077564906217501428342388900357671932729001746341062197243848165852342467630627166632781878527999140633305894299311669881423590922920771604207532744471868882097863978054666041887349648899602069388801170469887260077329882769789103970644245190816266711604167358711011347901292388505449577075020618170340511577789728565292453616112979001471165246515343214715004942956480041561926583275372313460387384593129406354627395530722175997034759862508791571342975971893633737077644718004976657133112499680666286484447985461498675037578538847538699643938625883303566555998263886036316008487131306957434815277659804659744238811053554284617711171381835541383264597406781240183042536059053186304029858379762143066047769506952615231676099506901382688620626329100103293127858256289763510387306385649130294019332430304121757559753163636285409382162698485831195168296772466066563457030544245797252565850667297416982634574798031818183577956023303628382894748116544115054417418347100897555810435618638474724666172818518192828371470403502558026861815083416613729663220621487022648786574294281420895190968805044043749305217171458835913170792827717774192581402589114816031021252160645342760152680159669951030389481860493892153469230552355340718752694855614222013851983184173602757878813570178852579293038574546954007479760518966160520035132686885984192229303215283671032678472004933437765562923742210557520302250961358421919025254973669698670945936236870617327519403196666015166367993786592377734048871363154611599871838269188021065622436725511335683290560120835199128770216141801949711943634456427646457834191322888218246114721052081976695264045709184972675623251747734857544334816229386575594199869144994658498278946241618634276544198362345236475332983993567289357113273086415539829725683692658387904941737729994625723102535151417392436215871337760866290367425734490410970159313639610404168954064658268904707957899333548684685351756712121826258981472951921267912182080061310801130549682926429674576869981232917503130507474761694606412610851934035655136576416437089692385926074709090932353603754318061514594572953681209907998569318101452874521415216046913104368215629744930271180829251261434363082599703521852245853779039236912758593319487471269820747426362685812853260913713543775801601477278574547686595161647095617793539034256454594434678516577302412483963857613807143851171760637582775866026534076970494718455038940498307947061226504181309366470968022234900864449033753194286580000108309227984848769653497804773258166621469155882824941653468153430540705152731381011781238241662615198351518618731780321800242798123424894910788893223908990779444202591741901072787571984430173754783776006390631132273717864275314256522895659847522366177535722283146147652827180814184711148810175598502172893268499430493470257495866406338190338812332253517123209556833074894326239565927159159961653140780686104476853745554433783833348688183470509766118626715816903182333172640077994249463296163462159951941514636226284567180173055825888989926226389348227949638947073718643067985447183702576126338776740105746806616748887381688490054858087016623638227807258512337905497563191991833021023885958525414396027376561323711648225457543967355902148900526882533627435144100276995749202914786519832637909270642184098776838517508057813745772593154727946319546688337845122874361850949517057419821710288400467261080062035736306894812642514309261459351747367907485794164897759153701629848501392930523853468941072070128497055001562859064528111568669131219190797284174432311445757320708744250857159989824230042887422463847472185488124179659276816905272153704685570493308085474557274317030261602838230900781734316092780223962319658640095388919356836227612230590764014841078494497945359536105045383092548552029674707391103036054326908424164460151658920383861141566515148545716549646832862634311354601196995909912861108389178645859275526723183432956855551863329066022359797168671456946203111400331321904470986458686785543478360843260929653165083570909419027114387753800156627835941887142566764758642430819591389061615496315889315155185868078053272678479002209967343001863660349197111500765725220530546602672509483913076176455977671077218668557399022917729562313277849247366187028633063128394044066627046121324039027778598369127889145108584362943034520865715714296075239594886188246833455804394659069282218010952438190577129375108273161900943105424810200519599268933759133534667452044396070953189224730676066552714936605593570398188606822380808494166847140567336011375084911953019407734593924237263172493894001150799829327524819107200664503513646567067583058877288404511947102796790532682518021057813714657956010667173149443017101826954172783565655980573819900966716230991792560981662297834340306634624563172179783822830801947323885111394507540533568256646255163112515875449414460349641239117195065631008975043568887623600740640198872991056682992963414039164596357789162923373912411380607830498978876871321795807209743350707533824646730148379258006357787810426213778378092637971985027555503882715084859310035093327824563207886041187454266883316017888772405586718147083435106049740393140230954772274745190129753497366456479726638738355397402888405420032133511563632198236159731447575822596692959134702027108305000320459020282455086245833070158632127745460205036137503486027933588123112422727722584067733706172570767618516997688750107641076726070969487476591284360633277914730860488216283682795466569752530948307914743143996282088643958565708761739580942437233457139686979308435562809495646264528437400351958050311164203914232704486089439658017942835549677324884903224104262350030935295188813590503823779135337094195559359910071151032058822579497765593790470162170564579007188509763274394690954177872872313998635316487520726685818132358653382957087189522603061347162240299171045386301753440730757904543014133980084291805771729538538129619274193171425102393285251741581818958496150388211933799238838711471163789082637121014763355180561701796040373983393712538585217657553014008962671129470060641509220425649346039444890714837196276483320047733296464797789074628470297738002375535132368001762439871651761833566214983759253614949373604248136448094933853179188584921781511588192175113163232108529997130599559672906502565769064546253466103295873001787039756877231857184584855199020930038544632215213643426022559751999077136734460913142056763482297941947525446699382954258252269595658678431457672658763525408059298363676669271209436811867808839231921983218790079663276383905001857857207028582352692005924683726588399353788705896703896607476637689002818524573824514796497765859726857019179576951801376066986082953088465900623953103687521159730531068701261650456736959704768667183635715729851134941507105203399085856036871994905186698175196698360217269585967597372254237134365998415293104272170589891354727285132974949609395065232419077566347632900205146225583658908209621196363715670363218805979823114117636042555391745290185242466324324683093235131096302479977951247341815408868886531775860407472496699148462154231643347988614701289095713521656646218181857015224011455560180151682644853288367100369147566339623236436096470783692452947782569939250297725709696856055891532064460742836192471030341073466623943834325612559823039636092823083899538339079007255213726977696926284957481685469596900974086669066939721423757962009474350667294278843913592548636816912155970021901909133839927005956531754353115401757631401304826427302477156187728244232778581093915703489491020627314118439157567826161734342128104492220470462373874302015824226667699017203876059952556784131547631136016423517790485148311006956154717506365099639645874253831491747998263629649217755928948074582801747041015453159555265497177220359037117423422683385152206824316957561436234810100535159066727698110250687409529882752819851108947685399945045589958976726022084832186308147413736975446289936268177397948854318553559275888485496120755191313246551186897725762683893850573644385577013264986865240906300068836038054515574554609774981704403364481320042015347517151662472427406850900632290667259212550341172908634466187149688299551499432567166518277954540454532336398339112363458646424389406164870002607799534418306457806348415911738442384703746058624803370399001969722297927463978013683189555351159451960499650557376923309243666647211834540406851873954941188857589427604699991177432486698293263276018551105036473793117696187453319269654927866011523468684072532360531262322922960652505441797728142508705498746052848801016277118048010750634648139757361065141116711322242567502134795239955552875220556765118169270013294656947349652059730703832585259564589646832042435556817196455329864279787107387473735254908432010087516418200559553504257230433285062375776253530154399617031020488008848959268352073663093781040818550006634128249521931432910749416385427218697124818872059047929675877473323744753557034237030604022046660622143457827786456167411988881658619710029546604235008386610139674431096755228320019064813400159584074135215004340226926620451016284345772984389714096562003583790490606349659080273275189407628216817326623406832089018797823437154818598348333141167098104146952858198965942686788652785627542912287665693856309502715955350588895167190678853308946192941960423823633885235346148124545737705167751931621021604748433188457243507726060990153939082672821926994116089383025638777586665122510774655691211681790515704201301503885907878416527863078156779914778520358630284360154003292314529927687310283650514871284043865316691132466025967964173176576297867244929942856068857662785826682350333458899136637188092919496167913975218825119594679107372174533642959430397228515626026196561876973702927978147102223682619761341499838868007211672749907751971260300851322868870093813784756990800417610637927868257537811571303030440725542801045578756417632573628173436942017168682106560526581306402530520840664350611976176758114897630926315242526097256682364568704077198521455714377893670277043176011341417640539570168542639746789796353290158260225804745551815294067771091916878528271486886285321115796197578615750239856669625081486409301001397455344613786125977202107125457097076914393709259392417588800022083524123408760562890379364233578742007594579361380143735558142504478737141748457225586761955623841593264406917252071932925461025061706196003530515500111899643678820583725062131915341554152988687755189776767856499810346309010746414010863943821503884762620098434133172884985140538976664177145047279971685188938755175000507649909508283361188394543192397138637587411753847080553397816826924096256286329212627405621766739453259517967371130522347146039885003713656684158783363032320136840710327092608385914958121008794560273931371387892932479001327264828733459512291507158904513306528463929940605415070148133660507251237450631564553935716202885831125358019984957446754619250805401032833657386302440826469842305904123597039128492006856314759678113170143033752868903304033142837846125384130807123398273526341997928731326462792206432272353934624239546381691751548972760983535080917925770754738347416753100184257799130464059284473954710388094466934023586711656896404633041599702040852926898091358347193214861283119729703070707606111367724405438372543890060005924285572199351923203762859422121066587587910999682928699865850097662186955274410228638754343825362978769575307894136462715640684067448008920527380689876172101505772368686802245679419049950972451845128478596954443260120993021873423029810963249957988622622395312275031621981614861510396037021334597722461938931063481491771520658834496435908170042116526693255851304634427289633499461011289794219260085689136885572660330733249251988579515268831984836527666811869723507033713810349848131069307961378978187285016734036560201736212002773754257534098393912340521727425036168196050513363534606796494770909432935604630719518937731610448845526763998107123858468415842562540427237605190655793980807867813431439991390446049060898214888424019905250853544187036175543204706489157848741265374408524051599221436891138322546534756897618451674736235153515066342002545117114378215817270120425547218549559765287088499217951587399026453053404708908805119156933393152392928685529362041724423145179274743406245273138759998687066193402540064696829963553207967160053547914934577767237524025146862511950082076014009546280429055501101182276442563019211673178782931490552903561379849460315184334592171992027990815893161542928608534757495234451746821256036677837614636623493198461590029759665884237543733064022875106223522547209199931546403319051567603924558545477807606959572687018064200797448452763773427020835473461939846809522668304580213220749156045661529689041318862286816958183661804965706115487171575924853308766295109271422864826932092463289406929062928399192918670221426696722732545218795711870469473771484011532767103402241803927548852009214788033992204978646246970916650154333198164319460736448160830470059568739446778015570121245458455936604918854937776787357222947063169747119640582475579310628182583822387442757398138477535369319960793764119531962667681767617723142097443998371546755714796597555296500824036884975742468486830984202954990586728388501426144185582733945120765796958845401228789436946398028214918180825431449589418973038935650302995614730046759894300860897875327526705640725746227583475095670812718086421205548838093337036948426684088325280208724656724261108106563779185827181987230223739029337046024319556033737083163804473141731112378052680206391438716261241181214321767388180476786992942816480531904471492631715824254069712489795426566956080809673850688573755340686415899331845409591274724043457590699110264712920948174798617519333188754080042407439851644376030213055437881423263099233936632167466684340836259878802339796331773854467185975432551692191669900219606671286988508984115084351255244535857006174238755761852656591999251640356722860522519758469553424075428815373362716513061506949576891365017528171735188580064545086579842545311955212625128283659665483579374567025546073617919202488131933019322741631760079912190158249936617672991187754946538220243356576642643342807761365148882726495293887282891890820997777866501471541656395170439469735785132953519026294321058146339800683768738527622633690147927753210941208356011760054843114937640152697606247065539785338654955685152129769247008757807853987473259865663510715425230134934857377874753078454634532117817491382190560503433006258550952371060700957669678741046864550408400805786348300238966606874771094229121989486554029088125587506985150174115202866738787373085071137218706787225598069308240223430887388188087240523848623659389199894316559952618702850895221108100642872682019999674269878222377710130635812717441720139535673852800417944290299408976100085061988363985937709136726514489051880515844067909788535816707538214518454217098337104557066504972453646354144703123494390974651287369113176803889340076147363574932356770575429277772141235838541727725323374283636669813353046363708998409905436008547610659126628064747427156240496540235628289149353015581298901097591293137465405998793894638902052988388231733969042344968491346542453561537823067964056236890234902883323242907433110946001333998345682180947192924001043330030697106073819733271770230396976625691195027939092043600519446580195345539190485281341704490246077097261704156618707064106188543476383966535421216465402861768051620849776676987986802365307139297654309519266258922960797174709497559637178228415172201363886332617678922654114328561559215375177987329242347503956208942102632422958099951766542554052644286345590080172910579335964857890132741379275912490859875106450961047635585862430476547773970839808587651656288558952789749918178027206131989112054346212956204012623257616803010535364399273192846066907970969624226872543741402796577144345700821875863276010680068367445571400542201909882976096185762599136661528400351983588343189648173248609214328306338653319720330044655878003462500885588661770728802846161219077415934526678077621768592545515293703342557772654048295779411694720555977630904894771613426021341513299996189369805367487407583174727426740257525051855793766768912276646028176770507182211719126116492157796576711206346582675224503229973236642031281111809814021413282608426922649363742928342791777845704069005445641541713094581495840227639176681549737494741437890388454218129659126033607656128105267087065669019125782916854620875719818596270376199801192686952436591557966200782900787281046666315388787180924313393863477240373835270463046962510035380813983381853671212363541540843756409945601401035786634085622407013724906011851397284377018418642631059537236837146006600645975702795582962584230958206218225038499179811081304210248250268816660434942154696165109599044693124130051199636447967856372679434287351108161196242029716271813700231746402952288555193144681551739425807122411485795410553805908487875126443504666119491515191961526247274416754904631707444026396122988165634362163164254234457670997724077120069026782925514131199412024048723413719203110712461022608643228607084578737658913834539861606630280194094648871466607594303364506947078228793525680786054579260948966751934467041109482465246517619046016678885885955427289229087256213875792668456699568712881504556282437280072523984101034701313050014853879988543631031297253735711318794194154774163658260818654755378267865635747191658172516213545916404407824896946974499341099535927924177484342561373330726218194555535881099106095180132451790669800424241824265148237041727628181810890080551951651470108430722708047110457120205617731456820111409864759709097561604857861645662152838390938424993422220761164079033426545607516636803005863548578080349320863446782961114273104878132021941371697961014682460879477389788081451160014452239372760418457359789371006713178831631495286249277293400694079222611053357865126339272869005582801834533814902150600337773556967410502540841917583965432124502674192645085303279864625500111461368032884724038856350137256893711642580789814964703291598605240756238150577750304827976326032415836370850568108649866852698094897490489172519118583607168211631319704320291819331280552917328755861222131165097651204709357993642403521478931133565810922625995904898909001221603848331001729508047086733679634729043206484012509339722523681847196668281780810288742647745381298030094319827949093612807755663686065822303934098029571344005433845833900499082516173585894530035447077018996393487021389542890649172693830366578509567590695991220743150785946967233040753446837303572604380910678282096598273377200539159730430672135915254313680779269552255834316456897582992839418282286336396233539039160482005050105806084077951215247802816758265454931875588299417847749023454257995180453996299263192418750722627941049236671197159263816208079381001835356406364271114003004119078338191408108924421357597472686593579474882192119929443647840503713060800087236084216053514496258925803591964683009933870688959457080059985881574901329758298888825435623199230454752504837797886353979901802253282747314292557051093403894909956963228885964759350447830362613488426639625568684310013584667465307798336841281402247841772320455539584864898866174053331925654373603094112120869220880442884818704904774692856616529223334024693609201503163613822348422834684944089744613150980362922126780930318076122870800069452413905926922217664922002731228425738284847361140575965188982795257238669930402891200252058368028173967049437933069111836332501831490314902896405706455644160916754416220721061343958689466300689136356324048989991809483644567623880747199105310512169063393256277007052624556663112578434773802383836442769555391905439596415777858675320605637388972396981608037014532761562899872062275664124281355674453538211912025151830346136479612507341259947024306098399964798163100056111397993804502001726241477496685301501481848267986675362283348231451124941589759463162419966980867758545942167311596783814704859755150400335804855188432599148847948511265329891965341116374650185477644649556085542525557510874647093786730146771438197970528089230095469019085404553178961241856735911793548004699712802749802482890613144634416592022659752081111792699545527055492767970110036015813464603943252220563019735572920513353237473957720533171421115584924199266664944343859211564938913507568500419650879864144946217248550617655392665645179274700393092319205217876798180003026256410264368944831809295445201556483419444459444612098781900871691040546830624339726027112297174559882913780329781932351111818165679521204122881987841358842431332967309402879563578967419476132934693135480602863523415971795357376471932048810560801341278666533129219213067733316492549500061867127091153645835862814119096937311379099125397678406025452675067987874760666054937605669377141920812810170698137640399926466737250281969785072125531757183472006832852462667757249098876465025248597212023996567993397930374144030365363023410262688248548304936404281804152827844925282209050227021820506743397274127613058911892741510799308137866684638307034175640358764133159817207019070650337813621926232587784024490408296459491864501157658251365053824490528727092445746962338254956913646967436859381843438151910817875494276463904171275688043510284733313959683160238546924799564000672699115115893036866673808501112421294469937423764613128594631312562993717853629909878546222589419411209470417657894210679260586137162108491336835625677783695776401318944843556640133557473413611142887829629883693678572860895481861415931317403814531983913613023984327455666594816434883204487230200918366178202431995773836115646559956714824946675577199876113694077514278060133468838052460622954476150731806496995681004251898976359470632644930982816422669104334362864860038111172316703533487440679353478236789965942760561711357693374282289256649128475566629220385260117005404876810831039971812593259515372240771969740343145952081417231745930103477177538374862848378978568714211262039315137991720959148245087578747613834556481278451019880202561567159527350543670956350919663266591608263734422358208535492571088480463542060317446655468924573739559414575604648704023472166525089580810935732198425620069071499871993430157845638998421925843719152220422740194454715301130755951416163696625006639211374547474014966725470295651670521486833086690833778708564778959986335901439560457114333451493108270729378974411611732355303207972537764490251490903606140207222394994660868537933473804786660742019140561661959118726654468304736662074535828032766295290338578459192949885416451461555503788488840346725220460861400121347095575884738618904904462570876892477939065631619993699811233212269614570439841509586372295695937220366243489910709035199014005521884637237646836828294889895258489082925222137564132809572266030291465176992630049819630913571866425922356692399051716078492337235785797421975077214022899477767588743440688327112130175555919961229451602201126079585263097795154840357452700131643733719330338590110229603596680089292852096657699557685698273382090134591294270899989733815050607021364700844197072249171514694878259780029470174764072887762767687397323154922393510491515977412384015463479969355571303619768444028027016392928479846372531007926153295694983339117649358704692076181942937746106883818927327808747524687436860101429988504307847092462960967968600797497821072628845354070126423383776026851047686712363177308232041303582542094353730845660500472959789425705519196785078750540751597494885684714158071348174607676685577731378567064892940271675842937290488264426820046025144882503177870502678080953216524969286991298898219618139535836918033222596874139785925432063362298963329764824820264765574551085301043583657476712405718152306295741737335166261717197947578425131085357830496434924522371922516019538984738643795966144998175195694716101269690774104177466476649053137893322604887167062128974915240710979888011439882756108805767542978886767527177351137809040207873539081409345027525509992737571457274895375068908898220722574507017766846522933269109304323724435152853916689334069208417662710824903656985238425278337374971591247671587077016446261866703073392999265891428432038290155631404179015490483427169195885982432398796280938249235260077182965483687845325836479433969432828039298819291996926153764876388237005558470762168179967314169813444999831533868470550349930714017052651742395414735049929328747380906319815359030613222049661402777558723950171534561405668490611163240257222577122026630289689896247797928105444032643385549819262952495023297622483859158255405914984678761100469032640553744353671776069460764190259414262345689342473906123274865187012963708836672382674327898480563214390512384083894792065535738147897573890070114726411430040967872447333032408248129061584912451090119730142233762014523798420379206355778579919294733040188700803028489862559452680506949435591117619840655785103504815881735068487364890939697102694143957534496182847353151033984728344030740997006533319762085764456582568452308980785486943868418085588127522096977951366217784565061019338495313087832471022405304542769695604396931835137834044712463928470276335969085353252264946857788717644568195362382942495950957016225943659818761626475077994502287593281327712766159157409246425531023816315183446682573358056210322248810047018754935281090185358031562274893987989911940252720901174069701348722270870264427889270135105561862519033060343386058752673220879607551663372687443066494841288777954532078146970073673891643521840083481824620533181950286646591473435403147703320529711253290387301827188920168926831525296819623460522730771478561595338666471833979210858471523554081369337486447459502725942910738351929786810391944677079988068926854322729547700679708456464462354703343860768618469194531406380484354882163844559067232652129017669125311049201318478209144012032891800431742733125819859906356999827618459721754682904331416016475799380362362597050847851052008236699446977324501777631922194977687777010411902758399084706924940494309867594531046571190744279495108871081397690334184940682264605276031353799466838883533066307190366705830632312788942456094175810516218059521840825643104678992645431278091387778526421849495931909810058876078977611575784895271915602958645536862206433816696623386083612283133824556493060384175281795634435961589675931453068283811601701616048390397957879467853375010932664706226584290429842800265014610789003245502852893731085562377039895045527683358086644597668291616294641649611869834738521401544842372357925151732273098228301573040149124855644775112464884237133347632830155413922308862657692069281318423514331404122490620164260445043210097520531899072239407234381827598682444732137415323193512875840205491422578936809666675037418118486712852025229517248460446519923079451564923551263620770576457866025486700768828466287970362282928123549184234683042951952367844158293256477381088428096097332835391989059090523587809755713869187399666744256549004384174870749415245854341924243548955966995506109201477316490178734929513692783273688700496301511860228103643488170040148020879921632868177961859789420344751671965831086021202143794305258821711161241405318248014235391918944388987966917143874407875735911845315183254201485325241986187701558171699019414650093326689858464654764009015545739449814938514732493189152276535447900712986843345109665546745087612523630029367669226682032776330029944486239968445322985924456643308546305683890685922598646295104326767889320958542216655455520766206687203221020498025136962129634189264160350498925775722891275102861511587775172293243693609977257091684062821418182640808938481698370419692179274695466992649404229315872206135448325472247499441993684036773639526387672051845511311118536528576028384374071550196844655243624940889296786212488647798480591698399622698087433126059437567637422914391124701943720537948339193283261160913421616670538181782650705366299318479655760088159467039725835192776079777703559592596752343619862703532184572527788960792502694442426179319768983573969815807500653347426062629579673370733693560520497508318451764164951705589709893222799373016854444687988461551878225435944591928409408586322063913873783827211562047809430398868533252116224539131087665837083202052203782154243138556755027820453335431204921730014673316368031184881969668714662166319440578485535883995813389104040043980936318010408525526453422206144393277926435253072236854577149162503232903418563917933844378097671489492080583652329492776660122603432107521696697634727243777497842680146370402079828297660125090326470837581858048378126113285612983526713080294184133215620857625723425677688311324393258190150126761639166700910825592810150079384830516311875016505692423549157400035358265011055063965425604860933885577759117473163641754081578051702232974512105874257829031880416788804529545136680387442237622231803744222456775705679667119162783623560981683256622956313210376419173258130802950743673902555567867817940718306058289692943316155271186778128090826839009648190969855377610170073168469396393517929071266695941478120242626681470756466714060682565145889770392294812192297467268421130602884689196269757278687604451096212418537321777009531846558425200315507930944031947209803093516861569435655620079504701443006559195349368013933834785612244501483291696743523126737702051701943960204018136087010741480997067582657396993371394210611771947810355473841724190758758771152568385357115016231832070774963911179357893011076825121662020148883002496560695301180718899238948667110423572324856601532608004351413479988093131830863269173761320763668344431758882894768715396872423431590615513651055259460046472338299658896715150329508985501729624621370892013589315616369597953312331236804082263901510053191167625956784566957336783412748319895785755948068875568904905544959396898034001160289032521817709834771198867945907811387932307924852924869150464249567542167009810974744704477310308080152983671191089255830062609083973308715702736315032135164095177335745843329438434436189897266939996196715734975423400088745815209082410767403531700017742672001950423154870713825035579807814806638303706377369641113643964912564635784109395665804999341211418343373098267847741354253053070604133459627491234297961681416073257541905165802420558834030007686792084632880158739198247893594111126575888704661887683831465260610748700793622871007702451700157532297803956898011382033268665729078483339895691453603819344033917454791579237478664898647659126953420235732610796106602714431180126526596981723280759938613407748236653416379655185539063169758338824980116227944632747096737387454299760011205893469318544252770928744456422742758494546813264773959787241230549610060392795854357910648074176297686195071442873041289027944060794807572762867330126488089254877036419947723115536414150448330178557520781229733971583712611438061845119780788252571226907765181493600373008346202022974594684462803511648996743973713735732565643649718921408128857580627360865143127962290863952892529055736921792832195760714623898531082216206751101184300616092367703624105828157531749702776304076569296594543720930784122864450556539020549657885686400380742600185579176205962621951515819743237023719182991046486781807535993700363569370647600414223592196115811397419030155409997559925660744653157262475594546269242493121973076064009716003880071445534732947526596822663609931058418919892603207456583954976727279720045566549724651117462020942997828973202973081705223684796175847001242274918535557755307383605001523469213576237383471974201999772823478665188681706823967562571277199776601508417000529344289067918707112621082702224780358864844786642451817868281815798270634414203360603160750038813559801796917760834446901199982706769999969367653702305560145250390210761747797407390313394994323036442776946718687604982752924289097347096679894545332571230496457611811183627290638839297348130813265289361084934862480745575268436007890967076768486143781491299467746762615838301094559259128176460775581470843682276221101455873661331410724484968375026453310739593391209151573814280258801013869397357667633989988930446457242881768165417393329315024723263223224576036152909745723187044861903769107734545521718794878275007603539378415180127139036248320274692067876767193767974747479882687554223556159541948407933278733040406655329575577136886388388299270028244626880769245159913965844740970610632105716390022345569438714872157719314712938309271076386864841685757898834237612350210575990883777665641283212640873058898429226683344926069211340836913408254990882633968740023591523387592817657875939828573342799601563808244987253921849676774571008644341764500348964627579217297956485200638156126602957719377924870804480639554466689483374646393453592200717746449756040283663245235506123701440778151695374984112941544299862245654212534080989877667107639421736135855448265278788883975642473368346123564127653897984223708354515668838172674088629225677296640727795335510457642981603827923329457305090099502601228002458769064777221183551752327299962788463795780588903496663826991827934608283735962936753812040079586244796162227272407500705051418107155482270660464360509948957313542559012116623168553862367377428672175179302833785294935178974923620298860988019920264458331786018044053326341737475624712886434708375983757590669778587439464133865252821220176405453109731597715192849504852291794477478661858945547337960409903829301286196161845201066944590213746148190278362917218052221664700797328714170393883065932912459864683193214576616613532846000201415782140230688073639419184344828188448327558269274516636988242612107458127804741638702476054273231177250776908688183470497831161065377847975445862768835071044384450758461646691407345627044971962041120841095986574075499383094968163377943285105093690789335608792307508610899137544973266572593866896630682294245039313339668701434872359338327093750410978480086041764405238264046942681674328524568373452210123536334200841715507161479320035971075250565034264317953410050913664475709538725882142124210160792552136922060887439451696124670112106976547144001317562441487702828127046327602737646324546540832807180107175238869912703746559371924428880098998100786030401476462680932641373842970434611543764014971672965928334896918786911040526998277594513502643392363418684424422516643808634586594837032266857301862280810903100424919116436381618133904714082065065188010844083227289795452545094349740356622201769683571819573261155038822180849151824092436249041659169979311814164039766186856277936969796330517912156760438742173050517669394738417619438394528119197406370430545718964157763071338291272542694694974863251509604024201098163927175675493595154876268629163573532821491444861157013282266285409287745181413220666483022958002685577389167037973812627244746053818507309757374040759020786792641027753808313626502737061710496743975390167042564147008376807488572855946931063835374365094877460805997101893928519859231020687547984668449823548197463629255232384626252994648415249944869072729480158414289924401871789869453603843241071903583336888221710057359548188841227055985702955531842029126676896231128237322598962187152090261650965875775124809618242123174597421531328422885048141712486266444150245635527892737291386116539639159026572860776176431707836965042315303191582273394257942803015493943292068205411599702149992035760770742871137425903536247424515405220689624070899519219531514200925857316240905863816727519945934574275671386648772973785340038184179492128908562618667487201382775101007551859074103949215623630200572986499251181901830095643309483547563340736999160692659158810476918045507413543794118445577085161945105041960899724628825859859962502568063591609259673280626187519683951833727971385850739039639165814242365788451980159662011887121769763066229979346264889282708306282502666016412719593487871454440465540737959036756177470005976596443894337747487435565271484111634666115848329043339824439931681838686550665294603213000485888457183939001398502614632575422092464105872331559184576011958375205247976178986030313521713219428774060473403898303442142113710738764815800285724750096426258522561897507677764258087532595871568044593362895786386720880544050799167500895567390164921697160261332226405785261154932211982011713724394793745467693795184374749240814356491148924534058226878204067461678682886503010280565618547590075331222192664138877177275706868548796840377443775252638051466947108975593141689164454763742536714042083492385710513685476911792877918005998853872557380264700272345365257726292882174237178287910488614578766349284968368369510076065288842840514198177204309814351615933599469069805582602975941891859403231886707351271481431761744798533991822370671909440598117187170089754781569684593528116170145781776130255248365052181338641424692710549063848310740482489376555517759186478934806391454864682120612866222592958008924707954372676327599583338299074229420722894772463764629364613896935493415820940510733600608981410114998249728409082402742000741115283079852940006148406891269875910351991985226980834105491073744323952071723154079764993180276711471395457593122080002373353815193492281646490421136517025777991990549599900091820934303539836140783361535773090702316149848963955165945007550634302135899122519900400632153411599585009239339894956262366466345464038119796750328488183857395129652333679974146217424183648404796881674146984179366754412090714452991011082747325428844128394102759796537781407647927841813199820361116113500946920464622854102741680252763206822318653442636054322871957436643854131128572472147471994029401994875007612615908340874585397687558279135023897479121958991777769441062774829469484044326496341237093470426526690693188987980294503994807324128290439886521846910269838020492466546748171560343445004528639180823220256273492046502994617933455634591391211572583113856996738829818568303649646209371587627730775505735627812876725479107892257924091467530192445476617213679612912867126087566863191600536454508475449146062513154625763828135552931491547816722063116742920433282985168338004822579634417330468284093893029564836217604375330183856389457381194440433634968865074479687387440131238143492854646740762833801480961708246709864951363544138590890771688060122722032606759586919707337818031741775931131711019519105679966860609138141529064558946151296959314486449345027611375752321740537894572265004242717471289145322415818802060047634778848971317784156331358695928942583536316529082967426276456835795067000549899580589322982024256661463621915013221870274972141341370057295492652618024784368875185730987647710855840249132731931147086164048812588288838423100174037837970520921466920064939573217052225524968669711093269294621618285175002178681437995806552978291909212944981046499541175042631180274949321192622176485576411304733817540354715017111451212687293827440299990241524709204136360629795330615128131846714975881761311172527196180817486868808747617182637323798464151852017606524537200332742511723057532721333639426097977196755363588174038784522372433713162477669440738509983098439747504414114163912972375405094524198202671303237175654459984198671139116835682971266123682069546673614810975194164099926058609416854324699056523070692265512279316555259053729619773159585466659901233262053656816865255072966742585274982005591583495079528020063925137598308468708613787866836343860901207922936137537052580802762470236006439704616373673350878380288111881703108592078191012060314207170712693086368952049680600748043755979116444556782800342753877330025665481900662689422181487982745579955757418771462327932240825916150579435723718965377484499471090496394342470295723676130652526195221299970167266554448928959354789464792126780816790604522521434702517885107506992150381931522042026669366139140015904632898124871380367208322848862955572902256375784340379499724097647229267035865941934897674092573533077592035289378569681385192783756538560400524831715476787559312544782315416251535608084977146330290189078384362127067019362950885200662552130558146203111020060105387176486044814625977632240291038405801250588251628232484674799974967358323265097448550339882580759220424956058461648748470418685480083141535507158207892160278368883892044934344686910693566719015852130563243685008234748585883949619383579783560746938630546321909856281900645222019897055489189709711603839576920046436119301035698637990511171781858483828586716250104968055483943584778930914266000960295234162351401951591617324190666578824252934830940810285382457350979371793280376169416031885801872256486273707927040236399949453478853060175895442711176157946167750536868793679606104946918333205946048847622098156568844379336948710525256822361648953501545523209134202937503277643478684163030648553788819058977411553902376017992110027846421791993971455973258274656102674852848835547189181311218837050543509460285222218157582416688373634038123748323123605937031808698266244102140670293536142453736911213382362689449614249928491625279849972092254215985945314281638856289181700194781887603634463449988091930036630560613404499466180267951384954972786812578311582788048486629375253995751890699861336337666768970646544442458612265584634747216475660037958840284010302747149652279905618457554530733679768334907389219348314854766683198446253242588183333699277083790004665532035442816375552173987496257417692383411262929186113221468735238449790257500993244838120133278317478586650192815231961272804112512902468162576036872612815344404131646633407623573075219049549948420784498922738341402919621573147286760170726901966675539600281755875215324732548321059211746358633799217550021347056523867394300292875843759031516167341707767477584061593047965407044513728014770601869823756261228599714493767534683836302598371982410307055601102309134693352914902501798191083580806844166085427295446281222648653516618552356425593532826561289075597016861361472347488041263903541626163044599837459700615545619678239188623499008130300078343208356888598774769238544591251363220680685043591329744028520590306446812753882303149589459812602659614248839408208082099034036133566734628807707453637222647212119705254763207267578021864783232625324829027884648849301848407581243722179177003098161885316768396567126965795774008917681120690109276177404377583114790501494504261217042270221908156844412472020325474138217870813867698892070618379883525844247756978519642650997685394245741630695944344513579150385317424377574663077235677905719334421680453740425852692683442032380629041995972843392615101288334978730861294490557539322324719081700153265014906259491636520760860524833090440547802352038055924577302201799221506936367662008429820338537526886858998004317043340988431403180933503929680697585747163165349984465114532049885866151618166311377788015157436515043123825332724994980333100864312247978999611688078772988552051889252382151512841918981632795143789609639275164758764169106378302360777836303404440256031618359462501183546137690180205893186817708717527662189092212897412717774158411446197019126878206933851087328808583651765595546317483273875716692648559593605636784532589519938314493570922517130544194248957143409262833991741962564698734489887554857120411445834478783637185772959208540214152615507199344210249781291106053282169273157826043471975925666713042842767383680802229411350101668065515817198396674889140199214858256383390845088566305242205583472454476366046419537361099468172039668915159697423377136794293345953058890808181185968102690087640107166786157067816635154463616563664356608994872683858824722805080562438845857977899654222200760794889881511196230552370534257409618758100973846713169769315763877275193161592437731474152932345254058684307026397100539823976685678387600014661926707244366483762504801800652716417089002505284760234944048163696605356556057762808855067405976107244791028334152109291355909369824570820212692990310480751726658255622530276878706318133015597847142290682576016627319143819423328251502641104415423648041587771993138078457361002043771541267980059210105987835375881025544021731151530202033884937030180577826088740328259575628720279244847048446213712940391157616835650049757445383988432079380597164298715293029927904258849332666804078456431896804469279393968873643774767892738893405720811266395915992407613424233808837545595689276077142424118440384723404287811070371198899257213053158391124951334301396667333994873766032064142122886644569375325067382899093424978056784664678405849252855314581759596055737398043801533024572930896453361887348841330979465073328798401156617183093352631130235475939392529587154893973844374090758646981644547102451219944095863776389269033003337220104789587684763460123797879405830627988232792880742786717936281752956240593759855477334250135781590065311259895208774609968545151223500590286254624477152678896632994309093201064817782942723085353288457100341721053638857291129001535543474152274766553734034854639549307738914005209327216021115522764088735498422494143077890850802007199540359037262738721779339801642793423240350443931802188310709713627388697821397082732378440655662620869868472466951123387935521496410840761630429715026812909463818998462668800633326867549082256775872244513873158050561391116611438994024475565971776085905889984859947683493182257807969427506658177379906586501822355382782424439899680843486917219496019422731124598112950309810389520038529990143521603645702606027649337628874692932781797800595714434036393236517793311925707745205665029352870622318418702913892836880928140005853687352504106926160160032191954032819692548330461215267831947838251612038122033926626340857431947402455545770384713285717623519310000443582249496694347605628916491949365976771817429280256940477653284768857564788550944886066482700065328910665715153151640737959418840546238166647146105166274879986508324453214431658922513634401128291184512750675630162088531539262418087022819231223365384197368759616956108765025758258133106503692825636969953141481373329602030294084190175995812976479209981224363181339002370289430018502496171423277149711080054148916364816616554442229474453547315929697350697896340801001238387013748460201165686420612106732432341963900455496633214927138673251309172817440613427240974969496803330624458003424284162946863019973539004543738254761670823957653341682468044815783859576904270618959676799051345175271698027621398134119793064609499386828303615921009847239033338884359398642798139002464486912506941145917782674538704981146286961614473151952532313223420250526902495202174178645393805821111408768178214732192527693264869771088394432149095636971475662262116656124771432831512990289634915848398276209001310999188777864981223571688221553042397147130964392470809914476192880787642153854403730586764703911869700958564587717529076666113272489886184760086186101565654635161498880644356519124974672877013786396782398105702124537375835188520270345334881726463618769912080905521580907272762568146693336420032671940040936295081603162877036770877279126700575956722183055810108610436744174192955976664799881171619684508508513397500588117331711497435726006557753142910348520881627077783296449627230661319541195969774767192356200926984289734710026732045494676644766350707261032712070602049024806620557484607572406214425120433859292166930775250311407694273218318774930775680147971553752783277565872708184818070966419736309124715428628630545159803577140331094553725695800332569583588844721991967380647062895577753436220559232493415744022544327894353953736682207218511301251415151277078391014804886943900458210821337975500456854822594753231591416931052938614968121426995020263100700046982192368406541988281084282608572182060251568073307867643222522223831150377652860338830571466872485613275679143731884529512611470473656132924877868901244112577885025901577532169167987452103082145543784446381289936294072753046938450292976548878817515779800640830252296262816328025662449408307352604693189045996097773042612274943884880491526076256609920168412360146262791741689398036717289506158053983780719223544074255378235332157845970863979201693434156380897225067638622113407963589621946752977774273445296680981570601879749414717382428232131718226321538689038950214640000881340968825929444336831588272890581688292508717615450267163798793083790699777608661789242182489499199720907511566934842800889794590398375842980816284080169185803633450653894754146595678389449683892262964434894166862071646761419887674605743705590813288983039929655937236365170709519852429722729495663966490243048104502610475029854611082525355765589981785640974191472268768852893221438264559291491313264497375149082765617258147489333554511780361871698591189003315666880636409429876678934099689313402297243448922398670428215163281028282215934951493423310441089804753583094795984565025810379019883515693147378544510351593286392052095616845826690531795647196003711051291148296235369600054612397248470861565015062051611975406849517812122190194092229404747660052453838692391324611997233419513720912364813869656278175051958106354486939307055582815625122213736709932304602284368927256841881103329807246055246671021665471257492815552608566371565994532982887164541687386359584007663507936914395946087765987856430646386608028279919324524419192246852984353531171030716819156605268687950466788848588395021565278507824922726964986346001828347011546011093582491745344117872208281410302505847983819639862448306073494889837203835947784460720799004772988731220186785064493341365152555676454622353356508871869157732767950654913839962098163198507036044932514252597939610220464222245752626950159680402766431387839417326492535441698010334532762427578400460262407689276804519784025178018187257578413601265431521223034171013076527050414841495189397825728825492055749378119114984704085042999097201364434662942600074628857979589142197639011001935167395979023219170900415762089074131104298500790352998946434697043486652443674363468029034985935410323340022755079347285353089755104797791239651775613057519938415566946193613770290955836131165416121360718527508991777645748791016946625314275754484466428594470350345777189304910144967753030679866172630585673135424995155334048183968899202931475617015521450426316126074523435318297758256982814849942900858582770561297646268079736147995209843513869727057793771559665270658063918487447834131217513366961870276854104466982116230987099528339990746694435022845718392347096922711838513471072863779411709318671255120156334717360246027093112996449131251321970259613961547151964286008160806747876214570406391336230316584237713026439346745065564462618395812619397147633037991014101994594152037925726336620884631658435867386979572817178168760555376448145666926540780462239632206635350634771204212599213027863313764174944091191632058752309685166719523502015127687787249462620923029529868043005194366274634205992808302403366673552053114927380235907204470847000636718523894653021290914351623319341242621276496757941788733009346949600602566602351479534455524393347513965624448360906930492882282284156165792586946057527996000233705828024068157022210250847710413240546121096428030997312568750154420435873117629577770979999862321216165839167657741230193141122017816426184795218571673455204508522473703073127966963622494103565071763067738194949181248464434566424065909920285018537096728316312056045686486689947449212618832998387309098640827267203461995303413518497780686622729526184885373813317446324797633878095792955074591355152871571338368367888259331880413842634791333911431681216744936860736060839240235432272749809086612424524121068622376241329986574621664419375417759902509065519972070129467356253008910666930300183467360786719565043422484312468556186561292966346277668073181406736297543477009566078513476905909698066520932011160179036632610246111196093661615831658642169323954460870220320863573086763196486143544197285821145958978939337039165657694433394010732401917178505475318084747015418113641000373832909029593543516654688511308811826442261806800948492715339555533482895759226570376946381311419852091192460161438859885459692374390521631562228455469769297659908680505261480778216126097594945389942429286522312321128360687139865530641298245510918402015061633434962196395961292404230123870717047121067820021302140541086375932384093037829935343744038883269480179872668741992461955679375528779279534694255618971959792850450174222713709641843261327678623216432610531925120356119882752732243412048999260900027632228030098003166049762322295564655551444073628336967759947682464921388169766583840909600537297426327850269490114210022910196071015762347629194805926092819000353599294990519209345258248817077444229113413069990665927346813106646308912748482610126813719009429876962556719613000367466139964043712566689514241899631828122168058983484256604285491085432863860442711438747956329777762705070483370053726771530461315451388622413839366749671125951182057108499113585363676837836617251328400731186100507482854971974487315670218140848795139161682933479865933502051453736338453200429054321536877332125558568117636179410642108192915196400907954521224902109922153658920714062355983544876789686121835170657754324805827194423419082568134661885619135983072000077046525496769812673510170020880333661072133848969634076613648199611473833161386259933200987995904736098945608022121850351481061728501346280255461565088983612255054341415149829627957072321275869047921321739227038075063669989732122332756181858931165251840590022820525297015296206384489150771128999078761608816810497339100879939460252847741899737299792804990949817192978891323971835171276351561341635281402140729458053070739096556198471005975494537713138109853514219831229135093578046955527121648686432987925994787437745304476251354522797596626814088446148405167590805013255644075562217412891297077284417987041244081385392157356113629708702113319712264862702307892275651323741802017556300377150424339407714767245893321454671505521226249320993911666758585861200712313541874965143425075482138920591163449684219752174243112991074284616892116747414728428133520162693283310772873058270504152415648582472775237043495716817125143758650823775764491532497744984350799697507307964095476003800526379606029319494491168022893047802857403969319645352219866546861419973514477137179310618737679223571337550831328241683937595981693936447930166034411175210972360302304562363035233979025988440280849008759387863790512632925713159976767908751247009490007022222198032797724548878410048942310546882615906000636899109891906029847419575436913975083696589253629141070772836438619426576381990073065602126713824581716920750070672845464663360599167736853165979981040818821527553538652595715713086064966061166506619170777308743920238470813979753106297069215185762215568260097354828531047503351878428656047029595952446601926060719677075979534046901727579301814002068652124892062905475741226620283279459551969739316040550217323382081511695181159271025515623280602494407958692071003720176043674475760407572702291018248211998273557452270585308182570935029943134376834789284604968206017147840808596426143765194168331463343816447247979928629813844843690250933360914701878657457326758861072979191824353214529422290885530669178943086775495223613525991373332447954506818892174251760146832117307233964414569333043127578958842806303588922944832578671417135864829132986068780009034747895517486689350575304678832807311552590916169965317137106454269217371257928509131574465385613589043365169192745948367224895579982148610702782440702990069815288461464877897329273824292310749992769276305035605163969342365089614613450731912505345902318848492802732804617118895932848934138194097512459675072971985967490438240681435750370812890213914275682829179902883108210896934334960175468893834886901600235089977484244238227000518004419750574453448558862434310163899619228632621214868873707646958835210366749826951171851937760605331901095847994041507705238669013458499655042811778463268137797156417307632362045210056637977254128434877023427986615432805788909870998938190267210191253407674771353887756073877186863780833400577765332801132861125031300768197057934411112762956445126785914130502139677681920526954281184827895378850412585321154641447706303321007196445542539107745207531572599880190477703776455965410547085965118842104787888877335977805299960572299023957649335845104091269445877824427797705800151533225948683848361788736652747681701822355284628078823533808725515341708485838189906953522472009959607514613809493618788855502095368685752021648541444311715717203799668508290103481690521356747288333896679625187226021955355817120537167138795973844246212602739115544337017693844039319525192949196866705859107663264211797923570126350381579077840549686158975480932147360309014780323632358966674225572370825255349408335437210781937120166574812342560093772598082495561240923073726567674061174315510373447091689985582697342718086062415294135148949550587651973655191424024324543246938397164165487630213466124936548030695756925001648012293541367371385150974579946869082725813732183444483574637836160039540376120284239158004302609138613849463582477156871308686570635260486023771042775045890710796709872182874749695083398366136543053668353145374809469690863124772548091007206348599353113761750195659067465363558835444960518835429819084957940207762117506002218461849758547782956188751756289094977970836457791267090356150155334601520638249288715003269799410339979752676568313029427876538147806318350961071971450244326736783491646642718420895234374118627862339416998618215478113888391406998521063105221197205080794448721523400619512678979970129161371627878436785388125547531327831999109008762264548180836544024977496989735625598548096771447666878646456284231991677367609575411440960991142043602750716555576292463438473119345913020670914024261973244038614030804668248445581338668197422659219566990782630066872681668083386361813593963239218988395509089698677157516097880756147679903333041060658763898777583045013795001136979104855490241415752729028711280456895479019849590080656597663190661965200614735229780456120841153281180462678040032993735836299114878572682076669596702734953930696460756843937315626334822023611679375794436692004226121518492964289105891678920144949694076275399047688110423096391568214317087188842927601939286123579481176142389732853372246833358345627316600697334733610765229133779337150866351203391831922615292921293493948350401767870725179304124895760597646210417572605954715940222152099658683910434735648908444762757039949953262704330510639558076805305568864856680935649995577070409984332328995777241687830860617438358696913563971296739863115797705544201496352954440624673349763623658518582785124690514826971309879249291420943299489333472206599759623329755213198142933415909842588726269235644188973297683936374137197583342122542888712238367440995329375270286182355645086269546172117632389175843444548475333000369633383236943977613105960589998496079097611723511444361291509559295110068321994727374248525015205057694458280726194125022446883476820405633475972235449357637283094246990069019465067462873587403101714262876990701761746811144884158355121085918239791129979007955964764123228848181367003525861520699184002435865119479110538299968402281684464698094783946377706123135766719333763875084460833217083979856198542379074330063657037641706102050388461394903500331483328004695760863568497364040810149024477988404645549741469232815162259166640754653237925177217220925309388277413744720433526893688304539193941409757264105761606772473269974167627241833280736115147534771745583307544420753777886515948962515145329907528140717252146759626524838271242063451226146760790587272819718203743019446625753234417753324737675272124388244231765077684240035622237686769578230117048741988938654033851072393535298838210823181802319470265946677699747593185711977823010692837493828033059373338359405939137468580692853438460709351012229953730157244367466401858533079095923836265299217476808282914147242825703127204780751873380514603184717477713963735706597740699205603867639718061419571802445827356983128416650128976333563902172848950863616873844932378712294536607704036620190003374543423012512239445021469482587187617880554079919029397621226245885322214706726669460592256179410562483149485027470102431738312311421092880462463901926603735566316092916745853821944551887978098039295882264440019653159251810485340451252046970601613641381717381737741461644840016872360182364343042870157407295567141782554874381672121606663149385288225758944423846457478490927252911924049987385861218399768378065838874504841129696872657052252295581144979573494601071199663827773519369621317834412744440805986425398036537341878491534103145287455935254611929648280174312145233847015983348497328787922466285938796188985444318961554177144190719469793564652913596054796356488252921596876922209051739621135304414570376560515541293949057918644075894996113559039726041549011912111892174568556544937809253157708230660126954510618071237561577190367418897444345622385779158406058836109545545750895343319864773673826124052568645016029121459684367711930295979488989621515377039389591475563001613327576969883513726403183338499494345402378255479954679587335115709849016941886990501094403919669997822281664504796362547933636824140898478053100323507506874107516830985815651071779760099589275142536162603475931492116981081791838391856653519640342997334453409776249627675617989116572009800024304292917418794196969851514907574193671426842158683009125286361057198199710892731810628240291943996578262133716823770348606028744842633156212621496285385405244145118995606236635470604768657231132104368224423339566335207663571240303302385845800360871527278126183368088889397707749714039199338868811619695160575711004973699367842185813038632253691334547648345445813990720187960789380620635953161802010705573894466673097186183524080568738123694577837583199851655010836409166620751946444573077711234053727833293706965115202913521274097439033062305162114395958433416253950736101370526598509672704253220613603077451780938259386487903859861827451381156486249962506345080980945019252156465474061915889644023489822720326018670782773552119160630917490738906962062631837701292960380614690142774272246040715408808276500045621025327229271872328087623831186593543409053005493135066125665318158699365015548183852399080720798688300156848945361092545687643130425101039198165006556007632782477531061942451302576545559205316841124642004450153254216804063737929715858310201358406503217491490002263359460674973608061646630658725499799094354048765661744698407517278282769750166157029187966404964789580933388087799320383551861857023583436524630742572329252914310653687857406371740255391098798942214255022272590406893892011350755240678253042450740462826214725208039447264845925485632140947010726722830963193592686185323366306622536956030325898783814920503940418408884267849015205190876829540038456540620960749027447741082086313316662416409619116314829251401671576673228418745802090447907310818832733396582125189111998561750472509374327473351572237863723300866224214833858130885291029712562825452732107942170464787547495404846860132671633931931225187700324357182161757388959794086889205111833310588732244565234798797664629999664194799018078775792908535224527884133974021072288259430238013234860787129694833841501272830264553109500351141423601972874739649340823677948133672030468734598173626782701220700920914724932896488462191577815420419661312977009271931221742349650560815218628861145399682065236425820812584083224771366724772369451084038856754677612505736798802434659425029639345014161856919053095082227506141645496467505908905319890058331063438474353314023354463682021709828844591469416911441410418474722570360362437754887281921586049987188030170164907579823075371336065584417549594533829471324097319363863834647959083899294964894154000729178519913470619447529358584134821025358314110112296256890258499690422309128156663233895772234278301405694571530334278069916559747093227403670762906005934165690852057040542419930595215553248100912008952896003163485098195700729197782927676095838493943349364141118654432589235101591658422097055882810226352917248306974611277828365287953525907235617460796344308691224626095137778260416384537608036038087460308076295037272462600148948394898071629078511795649900762956150100588575382946163869480912913577333759422294786172484606775465691826853459799435348608568994176571446228772272263446588499535877446851556962135017727157053029885994536968153393678017795429339016804956442946512313499894475995748903346147744802814275226152488161993226864410900003995471825439343765974884283276173958942767244391427632233700984674653317604875244815813991715656886638622214317011876550039482933314179323280920632378356502512028338445218560313024109565303767074006719207318071199001216884469224454492004697560932269667814846104201301704473035394715385632342406385486239092372537716240955679961903872864858278472242150940583326995589537467760171639580843274488908439842163727796002715312791348897638571754182634360957501597758424551504474190683109120627872239632674486577337956791007304908918482615796937303282475244139924535598417547139027523120892152362948294028838931051537948590401316990637884696604510970284957213290658397800221268020082042006056816543797402692465736109464460101115751670790050376186142236133733671892631305977726729661106854504115903343884527239665593168435561211621909753842491425448437125655037805877016583275669795742150722487134635126381943365038491513266280917817134181708338504902539490671118672449428706902224861987640604029515148367410691810211942350905084805588899438462338238409343946165849032643002749568580886955665410630127273633157558043504093278637956255405837427331585686854502859940120942875906610927834641349427418408133725219346860769200200979736087581761611490062243396763842287622616525245588799364615333191847511654041160304937887346269753065138171321079184324223854071384561841054597736197794670078362826255274074468621646385460795483337452057279958193861038826721857295522244691765204774420499894963736085468664654061690771142637881417325407444296007635197222828644349425868698780808236427671865942351306528939446862289282436170365491034952058006619873556966866611189034509123055394204284253145904000590757050471554788197804106029308689382675499709152853095892170502569149236931118896273368450774577501499105907548604142875016251608741128738288921505781983374544458790745007777399653626288918876762911053263577067866712405631918784172864586417160365586459253262247263801452142377590699729820233377813695434000488316032048929778516896934030155065913533017784880338031582801768450016191470950954838727887845624073664722820201394230740337148115213369838537204172267319724759166768024620970211603472247151809821871692821655211447155098294195802794629741874517262147051907025026345074331147583964020066362598807551790873796048364893587104996025439237381180789731511079175769682363752369834513808299986400736108972737744635975893599887092318775506996334335114125586182803251622595630477559799093193253749844436004868868138125041865973773752971230156730854049561937718342304339244361890754178743051513989281223692580965354040956547806085193425934948788908964923179378178139090740355078609386884919968155089860053357769388543511907966709255360918507887573633249175477424272599548913460251117231995727994534810356226852361279737651850960323944337456073537871935068399086510298110312879259791417557619475160486274776698057335544106637792544553591780323567932884113529693590332123585111524885803890262850549432891637417861237845358162988283328370128377743000353928498461162901154227457510550270513146296602271312630063363008563377889597010745083061548473845118826188727608711386123847395210182650320972546943554747112030246639717988550030241906369351894213549615278442392924439408237469925239154862260191882643102474135984728511265505986909926131225040708638205662599782588414270130904180095170636871666525185983935759825764684579223389356449803046706220082659990535397159263546644471016404248663600986940494777781974073586388782621486445192825063461247440501416977718315058104739262361198181720931502317928002613702595678415475780260341847974880269416701227378576623576373303882008746563958514184297532124096215347477186005038275892685957337707470838938421259465399730593786448276816703921450213439734314421527193921302424533249201063057326693794296470218034038754645348622261565538554146008027527285231878021491925946764016257879175620129252829829441621736696355864865783471898683047814814592418242294901091493265760737642401899657086325818393654844669460484234236247263387271646322661145802036429096095235241541905454791601649945247479783566650563802533507464045173865543617253362810104573796610559899448679826131186083068903141680367190259086642103148230904440769962023377353069013433772930547738011733853634504524595359479903043424084126368177228910251097112502196006188032736657650216176684831754966179099559837442119417206600924964360334279984366497134132503656230084450360587546097793954391045001612354490286491613911391654359046312014920198543920045223739726779919316792257953349407089578397297795420271186196208207851149550346341701827824960325214780542149750954765715278396269804932592000970048204446317182413915535199567016936462709989085547278754837804054343767253148065569049314131733601717696860934355504281450521128117167242475914564681277471908434401879496820635854866927523563147952677064141463430074433197577371814430419409165982598642967046403034862495505533906374349779695381175598261448251315163517889535249533395942838699771231055302984561123364442923238730946178965082279623411090617814669038692884632320932850017055978614210865215657957343457905888612587507356142940391808212633549024571394434776547354533686262606143186613557632154049370693570134934918541252092725750452841753232238903682272055200920319728790190453013524907636625217260260735890829318538340353233594945957599014690095508393534766385363749491912975570645386600834598445884288862436235243503768216092832206462103741435182190171927649654653374066959892193999121222304191403264675289647743449694155973221190051287588765062314086349320724176553851074321544918990983566512682005607099722755688994980658374397416962505605381140444824666587688595703617756488593290910720383068566461522556480174816769098765436048442749576145909516323241679485919188017028331305889802646169010101806881778319203297734468433983593104617324983498076371133358872090674642348531992144751532653315164054832730952111118008921439000787763060232973038874219746084795531999500294373312213635954358828184749961643066310810752554822494887923408903165537956012657106409196506514002367375281065500244136393888848895421286401420926684070070705393441972362613085717933429681884086354056375135177812831288594726827426900594248873932048590683161862130350930953169031869348440320266611370946436064123208454679813123168210404939908397462936073157369269150970043221588160155421733653959066722209015375158003630288219794414557757364180523617880643214497835551598559592488111845640811436235785506410063724136086952976614413522718390110851613307509444875328373381134570940816764501845275207033381470179762057780461022242514012119294781423741457174086805503087355790185295817575642234060926446115296955776949311454194707116841886407322793600677082667693227249866050959193110681417262141025977457031574212418730991909140935858013972993280643066064686796924076679808535475593665497222341151652053077933322796473495781417269032906741559984870026711016231768684062076187552217088767306469559717710363980777942464146689261782175069626717433235939963215627732215576673874073332009668766501133362456842650619239292679727438392046014903085793828116094927772893146396714504363523091146108970859269220294937546864349285047415730236698780998187309066698300957142406745713480451080434328239890915441162173342313647602300490556124420221158442185083051277592556021590893019895937970394272211264961852018754459644311395412166717859857060434246486045006367686837741921296637282861417950604685009069402850199669349526477885641018669729826523704973035134529423927512904463055028482598106888937108409037940249548487788842860777023654900564449881306881269672180228096862090605131246448023786057763015528903783973712834860581376930073593208663182883389269693166426104655475472652562393199496516400697434661708422115797129343336911501456220197953139738257972901585570126066672235766279219112985605145135498392088067542194299451131176093020600230537742072709100077441228050468259927639246877297491881550424782230199232531144003938071963066694946569099142392491340184287706375544813669809200484609228387251282574548953418434612651552668663794740847668226370758504095456962435572191006796145718177317905111062720358358639821002318785801763925898772260932295444059916932761681212835185855340283751616513462371091962154733340471638827405416100227179525439129414453302214402435243755656368685195172461577010614155983370491972656911736998211671320226866571171801651174051681309061673699185631315651254169546388153276728780367022792591939464962077653766558460820171523755705786609958310334251082889594896887426463818759700559417388875871292250373818419403964351307939899022562470801158844380162845868929588351110685322123232223942285989781423754466162564756623410505870972046809882353587930963547315275931028510623771481734665957093422592452063732473371684733890338761307445288012270502844979548608562292749387263078209009516100949613137888499619404835699388556654084922660259229841955116203425703780515204013878472434400243723114696333804995157321407308632658546645027072662487770595759998194008249219128638574967307663774575437509744889212678297619472442199143137763976111786603353073752288448973478822423474519577800974072556981780649608051265659882262207243374178590611721032120401890045410276021866337379359404003781188786120446962642483062209408482067470958594816022299101523213661218221484060758438808997458043599589941777177155919091071419207552167924055275640226323209382767285446650571700718896235217062754897956693017485346742695113972540112073783794927380772089831576400975038564472744743022003736366577649134233071848735168290904299509732390358011942270739974151692010667255225762046176375567052995879146223382868546425517301433918994873549727220129745151146130596989879252002641671184116377818924185770180765741898047412538496115358947594040857982322302341230432564449216457256862822814607434881364364967834576148644680892109327985981695623707103067122661095175093162225875051820882941042416309749541962195273878927258788596123115500765823863564191891207094034939075795678535827498492996457140521454235706562389900396279926245360050278517924361083751907472734484301209456845890493070312351105282519846264831513113488414216825102158898238517715036031056274123117388056172139689933623526048002708662322150398504884291846602762489680671264842582604192396672712195456620125948495366856602611174525547784864533518484229109723201069227689295639146474381220442619379555390208610262941895962330634089491956944355437467809901073161736158474869674850808969928488158430243251277805618495552502148814942874023679450531236364968025916520638945433892840205161209355171219808453640104274748863417225046750368885404309347272697003570965396670096243461065240091020493488875312241084638512222714210614624643875931870353836793005475855206547382371330281659608810585706889565712232440471776121819623395601552255640967698582466499871693074101370771284598625329336513185029660030234860929236526249356544835268617571917509613724673537151523887987177056259137091321426150975318394463489922236366242526233079457481437196708331165637173284566958109577321524712446999054951472151060667118240074161349245803630408692282537750722578165585159522342414386994778831754807968966096243524287236504445734345393263300853302845853707647319470740921155374493447526134758934245168666103956147562436452921841444916282190354659612775462129091208730632546831019856665420680306678933368346829011422031080628812805293496778614982622643928067416854374284175849741577383160086462122384591146442538167759043209562218720808773202738538467136425094790120054014967658168365335587476406947390939038222148223809966284251053531736955059745492750863099113148285265466775730817213789902027530477783530358697860561225274810554495652394102209484077240795403311626296322216807093243695571738807954276049150482601304733662018835276553472841569312799554354527406455178877954376532156646914559849569655113409715008116212334435617854145029439688053121811306669708486876547936118909007296608614390149932404373694351824543532961934324796614798820125989764393115177492427900482613897136718895192543388952929470324368590375530659765257876217205453247773421630852495177205318894524969756458319885997988175683771581284888122049823773464267910223775420220845257097343974103813478973991715842624575159668051688204119208363533709586146529935166077554077361260026142320868862204933951099009852048872257157482775689811966209501982770095556347125816415652684759940290926162299855755602572441736852289492971944455907954349085826394923267834181340012734716081919885512163351952865457957392086451988286725764847970917041518552648387601616080296844780538064122583130143573718169789266664947850081966640600023149609884032619559533726838468786557119390089903841963212272199968343778484661982557459979047347659950906819265359240196684236310300959856066957667999390334697814695105788399652302545213331747008107330059865726574057832134693124003771190957415258883582043093362248770882290565932374361458049007800366890601072848440524131529933777078985249879160948837409720357047189438611402641921634767772617422379181034630805858283701943968376533143705277133143344925798764025669264229676215490568975307284915033701027260130628008587917987886210259525175694134321011631856351461614649641926041291701210782436486227062948510283556543138128754854612837260384948670451865954616639722978296224690976273162134045162996108794450141448813576659053073822939773557703900055328215511972325302288634860929830661464845871419620763030885583116890819585067141596099844963029833524065915684220453612746900568525065888995130844765579918491497069244999541305945659526258815593724922561333127849785529584743836840815246702563183924588821125256558276670067176948571457956643519623970703898458266055683421259722033322264027848851982901664473911376776257404446205256728596990258072344370147898170529240035778791130147220117188038592743209103118121102894838483388358726495524727389973840409580462852927743183258689902608603024977819735541227843980480880212109223118917961913026475488796909130493730625258655210768384087812618164539724029433398839993868014385972809725454385065015880691506616545113667819816178385437771876057925607117441115096534337130984882684527096377983189093312044888947246843039234240574697151958666085536971249368078784359645543130002662736529828625464554500202500663948824469397421186156238275770176432973742820566498377260510337773760813835262788696228071939312003954979338819042279410619009899115723260090197666413714235741418620594143680018697365618291885652424651070501763159021457852524998474447844871695919407296292121004943218034411732424509983849180687364496473795135432364058672697309786404676402148565726791187468749688457341111349149465109604979429386529633604937287986865583369627373436105762452567568076458514900948048557454194729786427666003138477074695464486725177933844337770233433155657329471319221472697274331176459113019577779703022680207083736652165498547258301949869549198325853375418042126848782471965169477071600019997797284265020151538434830006561373428342349871325915708163033881759445623228939864005771657395064239446811654262244831212096724962623941836237987241233171298273442709239161243215630130074820170703452645228940993045386782749270771387413362630044432415806904733267682757068990140336583724975198351852138146565813558739039796952302749691515293781779409933436779534477752830081874969155381399100972568444971096949991010106681347966915900809493153011319182194229282570144523554108417934946826555924760838875828220250558694295364324382791163902194846251744661279418092692102090188326981671572745048056792871775870286687998051544686047473692496848192755287176390866804721645844125501498817979998039847158925025765479780332355595699605047556551687523381338047870856879256131951328878184114940489310078366539147671453331765041126415689540023037827864832417925518790689227182665533590647533388056016179246459621724589016504295385127817786629114323736694903820658324644051572814751533311427429797237297519997358303444387607285417746936618709928296088552702470376005546853382232452059723103759354895281730257786784392332664097371933101535704618018401564297877021820052962510012139610077546983768998038583046280710576036169280320810456918930319954215602240154682432783726881730694191497264273388899913827783488240120483951632909698980424169214413974270234474430111959399620423498054495864586513339769359772847653433902792605958621502815435102779464931442247932062257472970076321317758120084374405747022255245730742936107575383694584673961022190912038941003449834716013921987410752716180519528906413119419924407784386575735429396492743318566069077719004031558611565201717615758232337878835719937028076910112048290823368088510255159243241430902290643966246288884572200862846725572794490008198639382789459664190288318746055438340818141476612833722377269767693663908678871402738104969466485499509565671275573835561175634830990654481175300720197064416299486286099656229226165236972504006640574494160020118923849271415607876977251557540159961453751642993318583480905345172004159446687737370112670500175812746357542212443363835872850923070460294592796191815551781581018061294592613356338842543518586636238034026018991713420726445850740183571750511441693766171651197119991589331233938614809232865319275498914779178796759298501739291066164579487439163040275132687578518810029368485143019429497324812510973320824350832004696375125092380328549437168668106807583779952456351402331998477845290031999504177111992013875823923374873073524002934439870284997978413622808750325643379095540534518712569515756879552703529736108188373057076086908504030195908994318305429331173783841765819024060182673763630001647551280485116015158870407040259692939000481595235069481511655310356238418210453282945322772989410443884093743183605217822556191950056512616275993109121593723198017158566294765820851146948853045879854203036116025110551172386881598182496192659307657512826525062650081431721252983366571982663241425659140849403185960334692042934839610126371706910491500591972385026188099876723953592888291582817241582812420024091808861260110198004207460430955842497702875026741828789281194697696782669452538571696435560825691841512836628807410328255340946656597940731006047283853215045674753206613645538670089583357550687793670774908336176460399549978021135704810813940024093092200500336427612438608639505390621635300869713704007167333971321557334436560296135133317038867596058793329468062322937443689117000051784570287241962333374157232785468454188721143787673745401793328435319154811685828323333811178848185616866153507109338523562688306375004840668984600410501514017485024938162872464032973661214829607497032509392145320055983625140870001054574269270874169506000198917975377727250332269710637984282015280870679149306456546984976774126573572239375996191802225575405355280262392763324400340824732094766709159931928831303437842767980884148983101072169539139901855891404511752264986403689093076535079969295981572073568248371701948880672281781448704241467047546452727119764371640171858706865210390438820242025800991527551046037182965766069268196798058383614338184395151305205773178115223655261326691913291501342590309256151725529232423530790093253129833222437801949595511778790715398800514858376243287821091613946155366250896127876775245365369755380398880634961639302068366347483190026547218907615845502868929872808592650834772156583798360692528175637991089058590651393877426583822348554096792474236518097329039298026018576417957489199559517211920349289670932221872834648194152639264560364263045851679091177007681391212201068501204981707686061635789433082391414171686083376218358681665435332756669595768095526087471475296856907406067745736802119907275871809396805586263603993185250985626823155619154982850485514537309074375296729567794605245782567105477763036338488903143103009310603164522258043340356399970234998311201157884510925773034556666431297920408286221319353396196926034328676257790841953330968502657457889415596545712799576352591300445509602719076118111772324404989453162016740967563496711329708242745762981910843418605756965045474420105647441868970432863019270097301766584975168902475009584535366895663408920696453172975231361220827191027999067818830917647072656109029031833431771227805291852655406211031399356664759925489800138438502825925662459438082063916375466921819486920746063639135420480962238963077229215908065251067648886522610604217574795946766203981759781029556941904370816861698679094098136354750599323150473171480425117388888602066867901614219005103636195648356800335274451501946939996548984874166738151200058547966296414154194342735601844036823021473829151024261274025452660774288205118690406007905985939517051693909124893334171638063031266683321690392429266024080919710136946071792070514209321520672383694909663844551797457517395915949618558478674561207446313130215233656424125225737019843207186729441461907336442788907907062108761401721929597757473562286490333865600761201363641637586853747754817745006283363780152412943049133666780770004436022600064004509130737360032020419175007160651072527324242057476014895094274840462969312013484726433603593742711167908069939963441069985012117562640762313986436910148770869177516667209617563692308974820160310472210159868450522001629722499100865496938100350462630477575890772180398348042591413783606645703017277226033810782348215935843517089801685298334178290904997239034929292660756385141547277282315603740993208799231004685881608756689800618959479550576270797049732914304810247003710308114709107572971692628409848869837049575844711955828456263049525954547108275220656309823575071767122900598859261695215368695287113922199958846664234278900742541953987946869532580727846417279749524024896191436631306985776101504877536848349142468714872900276480221417525579210784156753101714236104529978258928339812891769732770471102764904301079981765831075992371854530440891692052295519186756955342396222994628176249534803590920432154647214125936845502320016056525372541207817180299609370091830210024686199626597250679134951487577622686559458071511658456712277180657119799873547778575442426281737255525822834189323914855067769402773477244078639259825492069174543225069213205324126444059336408091281074356993825497525044066722314704009789207955451970969492452884352601058845543842044527268342234083787376196919849095605018469245135611740619318600340255218222648159673031315626430174455832008702146402150486076409053083963300462284427906485963790504711751751983300092109127563114008458325747438598271997560452262394474077346115215437361757868305993747694270993312290880352725062539996024239140387813182917519035724434031213852491742270286460544820713052829270888356078601548405917254308447945875138261883313980141839477229147813854590468115161298886987907050264406732571397861936749901893197307820244252329250228836704513257344282173329808708574476203445577648488772694351002163900812076557469686453005144663877146992995931925343024452018195265628889356906569090089558391152229983151669558266955195900617240141597205045400418693880048290247375156040760096956878012681791911465073385143639127334665360367814480477257049596220811783721915139387777882842036326740772230080335671086712409650727607355945758600272272462038329166134856381002785298318581452635050205208815732668808374293533819868631262854899649531451178676327333703285057243475645779676903994572056393479375563869379206459190840621634436307738668557182086985690906589395699578631098387609449779894838372889334082442453208454186800621418873761581495359214790571905244364698500468028664782772959892398371393841782861566567045006495198601638739865251279116103694597620701540745251667867444542406422749454257026173634332615936856566731583650383251654987057005463013725171217995427600812778806180162847925342866295540509480880755345079793526952690872328910599278364076286133464122530779188654461043454043090476910160005372005867993967082032320861030865200930091594233356275442694663152967669945269473432859099556179399390673396333074643064690057137510121795981744931845867755303059577241678674781344414239224861990806044817417507376081910035493960909774553566212905806125431490356741408138861570010761901465604935372613350855507944334344529792727660414948168234409348381962606261513890170988086089371621326898354420696133160547381051075034767931810863667185411989607198844486791662401426781978906286910563544427530613995079855072591747515632335533176792038194785698706973923355169219258171242217136160037868958118422293318693340661070345575615352105170475338832132006055894852306391244736978817334348310722046927532358780113841952722867258363548760529172360528826325581243816557517461109360861137089374149284075566366259279203757817140277065677498746119730123373159276165830928312998908949120305298646053292797297156498715138970847975769340739699669049734132626435868339409375032611628678521545905009062294885204654693071579804989629122296807282645880544231247704676806490582767630125673514428882634360060098895776536820019995627602163758959510650626405356704620390086966216039599017854211588032519037576252084550915415305497536204140606384938730797584877486026209799907617528023126677442356527412924864052803008657146709173886317466336690560572765372502614567759752339074849296485723329642558295487955135589435280595818276910776208771149927594780845304801214484396703680317132305618557026476648439723416415494977979066438679766544445960030786938088804425793166225700744418753107450253829597484042157970187038297636402592034710334329797498552455320699650157717315934215601187219401334684000802040678358041747878465004314115792634835719937463351322759013673965249501448285573173493185349595999984256848638835113532352915328419234424597484040371753301675188589099919598887298477511808020193399979347640016031705634200771564069409219564043725221383364191065150720407672353534842248896950954536392054444074719203215891335373490074654251948971513462561617420159857706873855693345408833892578774118910480244633338770727927702401985326118348073116913111196007881609633260647681524439880209033919339798538051360837398184511605504157236693872324472011174819801152265925343061289326884861009404744229629504826356839439165570087503573820567661308226768049263749107169151322718083436634149810840903843109159753394210088337991547277456472458826226267766867322239315092466749728641949840921016514094310885469744628713127165405785866122138895653847042263242336050464330966901358269033105989762483474151827209905423050688451990979971789807637828566759350956788469315979654292374288331987703467700315293127324279175306162295436243217961058761476189650917362894116453940499439066752531331189140029240184134428438545811590474291296534628295701064065401341735354266903064664510284319093078284131378064229264138811194162991516752580969176231424855746560756564209451655284275126830832972554692162008272218828818725370439706262735785243002922016925155724615731535485171825892937488677858630220286562119610820606867091374387434334347792976392026608359669949735738659822743260282607286277304037544372718410429164652108396924672315907637105041492694997737279204050579759050903988243312885216574259264663872550770935277195996853144837310213463423497193219755017775143188984051620933865554342913857424188247503353934841050060256648328357932269054332166111427653002862127111733579298831119929623469034781048006054062696231604616059781181211039725842412670815228949063904823271437109454482774710612980392615642486392220277177681669326736377246687872960485442099113672854919748172658649595568350085101855008494357014539675162376419281656194642051732113593127288412709692018861000932473327107910966725081391169736613605302550145427566979050318458823260031238734469816633072188219374886791972281676487160862095084715054435755442176577766455837598777124891217833072744689573709122367250207243155482764322019544812923795142849351402878315516307451339519714554067787410621593746533199999822437985717876714567299483230597569867498737726079419932424492293181772665399827376533372247503993932430056975595828219898319575955738492579747443599695205438051761172875263113651733413847543865035391127820953496630377214813757366047035821772357703589608005624164010900960910438884389599082863188850307314163341032169597325524288936268557647344574239395591506822077728916324072111744875524922104485219514083388978106720249216555979230818252427393076394675836170417663346938971834349690180475117912408376220414525490820486691202023198768984841009114289213418313881523019371021096614089863241112816464930167175446631460342965741276984132864589170366760998027401801796926081133956433184720822005010381481610932309712326881811330727577833687417894070372858072978910538090423406164560685175500045526128310092019467673393254045198915744163259329887688714539203025168678970228853166472626614274421538802807584075264516126927664352704866347699409101310516799313383254706366989985071900689368223170186991213843590348729505374412909201011533778613585112723326194775014886505845449635006586686578042149381219342703832326610996765324995427100813165005614321781909047066329673548039076595607352572867566813214264339649915210870256207512416680979597207978873677062454341477387173450403814107703386665208264462052874585811603989903033030658167019186974681476822575568951707889825837136229179016458100472607015547926834687594066971602095841322618290190813331491172915336338522233825545966447530979111129032875029418907085466527982350241369945970123611771158081104274015740699164259638699520068220560900237371773171293792396787958856186089745869997844761249933148605771594042822384520941684673900316825903933651338200911996232755810398888622283992537464828984548789645028811572456270249725911453688257286361561571568700682853955983834545216923928362595579675585863192318670172879541800840192215403736415259847194902798499601109661873840578026236212678499978820903963115312333096077070367428370492195687402377133115570022959049888676707092118482219631368756826742212339714350224382029254124266631446131921035608933378959515257124695326092349629357879542409794973663683937021100478517549154915459481041168559079726749568751005683293525309357147896918966654247724889478236270935441792949883939598930522602975909588034183463758443037223905794060786485787517654833968347110334091146783536000803156145126013631140112812622011426271467408132772862345941979701355307443188412681217131908585886519562052582336534229788062483118708968770598529700602430099817290076770085055538104722096036035837305179940288297201078963833085695159333533706811509969342533575303877740587928155505945402064534696915812613263957073413049305043065365223933332539758650699891587521543800820166765661018046470756065316745314456309566531140809565540320287320881064666137486056327309062480485627586842456244693051661541172337783415414029179327696733531037271168705622217387977837108298944376988305349380039837267587163813847548094866061474958207925890831402040902657800764767973161291758653538536970962231156541573483720337345305300061196368995172822578913289672531069017603580055625766567484898159324868778237817395959606919447089101766640158676379248501215247331741214367995979713811875935114541147268083601070588253619040865562259863297191743515844524408516680052889720814723400442857543605507971663429643715488169872517547524502471249314519086624817283881362961250502189594274500655387558759508324754430331720470337578167964144877200299336294470743802527554021460759767028430015728467902109351471355001098683397582856565225971549591457531349396053982570611142574698505767386900258276822043991044314618537078842643759443785638926714373670083694025812880816971870421740024013467778276757039541692224339619662663924674137783007104118001070514402089695693256156571241118099189874044159616395895595822393656473346209496726588848778917078604567105268552916564979081001840190627404634121498270295430103369526531091127786999130142797594082942729030305008550078639267870105824979794902406681578343246024326793043815021941576996761586381713601694290484428191181701239787793662998023094993458529755140037565456766346337779299324271993915373639886558578933723569914461693746092604938635552677871748757993456149783276709315773145680724965965028130823773336539802729136282850950403901016195108967890370643150694225859195388570297615336291957740727124315205221950320516577804112428350142214338856288045354830536914642215533213775413887908894749601988922231321887980530471338550020039828795160691985658523866075115626518503535082988785210178895557873819862325626542870107292158832380420119873223267791245266531303860856152635169000177840364434056531839049002881524505918371170122194165869606275028930513509503394310790084425417608329262268910947529444992715600395987042295622486694975658795490801891648963970617064659789428959956394285085868125678979379010191186607109940654044787412058831764750542100773795715861400656290795790793310596086457247550588234678305987148361663954285900160811096595089085526972869300752005171810626663391624385301299813377656618892069672816392517556839929696085963862270762191673913540879846627458153924308624188092509885458605838892133841838874082531985929762070069442358360205549159721192345311885702667762844897601542810440107745549828579688655816874764811697708124283935938577542420441226465737016819588813910618610617991793840802099294951254435169622803572846193377394275400660918125021932951604048620203659825435687160296645144372513740176918443553779311013052410253918794663250767111229532038973074288869608884136174748367220589592680530529769324651752965983872817058718402447039260728158274720886482884337887979293714244288136499297079473186615253661165386981229455508281156512017766189361848401587176164130512990958022304360013313808945774083618734536138530676980233196122623916675986641914287909451421702894289534371536210756594868616165443650623504931338649684468277065525224654806021467335223894902403336975722779434349183134210019177879066170244772860639274661557317092376295419964422880637194182861768254347029460284746686991884110173439892663246716929462352679564403852296277057840866391629748900194367673811453931847981357637272428595638864436904274350295806791261614480355990649649359248190923786427015175086292845854377578068315333617402279179343657956508213362314316579918431738188403452491016041815088050805893535086208381213989838486697886828049086103216672359088545608854930753251178037931148931209548986800704244526123145091338994632908664720800002367952010466705751700662407414319214539029933018185625056538790916665182180352013821215478553061969876693906778575068177998087258886702668178855918229816158763186239025707022157907152877972678584896816779038344484941224840641822416534272340642629337873727967371752738570267626216895489984188929764426097910583145499063944498065924543387783624008372149885089814998330777967718371287666574152187406404814851021717149225554226105822377331147438574192356204108837956650295871418337741003085640113011605960753352621716691229610837181034879655520372280506628928240717042261884377885859886413072233672952174267943673982877249009803484495327569950094706387612424406827742679340299653379417909922627974907703574462947143358497480111295867722665006267963517431718613782221603973256137858198110461146704346437675184621912688421242958606165205958504832989847533558654792855835701964994282838069113048179186866156083152357016100412417186301617358695288704047855967077025385459096774508516813019608934228751894143118442737588819460258947624944247623998596571530570527374729904236332137229444908386669634976432895672703997014880945643670052238188646751829436078292532688641730280810134916976857812550338578242430414615359696259172789829915974349618895211304249577196099947547749451578639396197517849093187835883576819317748332233791568266440958299247629613936795102308323855613495070540272121918986819041292864167300570406736261829505004504220407916817962820183089840823034749380365574913986611220061383002177611200881687876379731488024112458921282573725083437206128335399832183348787231175275024579342425221773993725058351352877417916334919407923385542583995728200606238589863588645586722943969548038119444455859086458426399264110902779701467868733968925814710283128028538499979771826732790746190381886011646227009935428934067736970996832331667518390715015946931955877949659609663139308668895309407217918979845476126922934853275047127902137235154879448310543631118483183069906758647417064033689747397275793882649626528106176908298776035537786705600826491288088960330190611842901629515579739843431034930466345541739942000252122291336550200611862336341568314519432160301676932602553758645663017378123118092837641860400779934747321801387496514210418380293523915842779811419341604374634165268446549587431133691933479350855427831824843409052325320150361123307640338420645644043596172780197299316541088526882803936507618675936947035682278656892028341112421506375133631217490080654370235751993938695477788992352337951371234112874295453871603474432063361362357665344536610739500845016353257763949132080353130885301240301193692452556451497065653893934209255114616814248681080671553599976555283254150874018530551589228807302326819895036110925996750349595007272640374161677445531558002150764933738185100669267178540957504287819105813751108412045748634856757146051987350072177333217007582573173509383951757324549561908984059860993267318513549666538564455955307805902480546806439645103434514187270750852405079275800212949772291967811164003477472701255823408565484612069435598042052233334115731037566997571976110132299419037794023415153437300345401513866989470460172913110195210428456800951565775895680369251890615874671702425062457523045526692828263156048454068650116862064592084607298126163086217691199290866770046202571337812203484346347670848110649338254022573915178911278633322806306611894669475088740941684404623713229144256565710025229084556147400103499998149552296524919700474067329525015218397708107948255481705130126327244537382520563512683236383672832187479498013188657576359012247155883894819916613520001613446009301431351515176628572421018633505286450458998313414290837319711267809158265263624218608870901864141757446015214130078513592272646609455815376402807961389906815408110271475755448261067127999072498643357888278115926140034393173385589374693029972652103530119775772068258683631724388780783959343808301185019671417631201471279017253053533215267657905440919250955989747016304630323370156821556274489415073130730139725105010439411464807845499328667554841431368705288608816009711739813425214086062923780431480386783166017256863965586726372850762541384277157541357235636332225514478714986452391130265189730624815926195340108351465350846051140193110279433729988815203214434049284304110606992938569416684738481518343950443372799296181346984534245398722953897077850833176654278100818052668507849628895562853943967005551570242361236293041752422551038089416588107366661582083883530648441189032798872798156172791049305639739110758292161662358796806913538150492699134141260994265748785657071004966857912629129873700913111363009115396129233478358153471760656271798714963695393291164775348052904315349458578395094788258676580179545442964046383438302957383886858170127319401810215031733474288557899388825641409631329223860741780731731240200348986888600104633450580774998658620504889296169280255712834233833403793921874921442636463029658133700276260096932230504976410887932261991889862227505276042468039738007169927336003382370426043712323006742613146180203810921011274702777970194539053093801796688560212295880052975881053109406397052825413920574600295940332311065469708820941031614609754815339223487429014519842393396613610131629157070882452246727986863420850056184755518257823176147874203705549513878209904257937543937967672453931443544419020389691557698954240394706651394256359180199724690698536942455188907403430266915617555617401657154088221290259466245508761875937807862852009805140322923755214647512822067928943182122451527423860895866899373744226713259282647247603229986412378006165859604700966343997834319060457014251129392002084341336354653585393310277890306841782819210371057756965155575401497059371283785744765760158885293850998286906608950089575531260623376622342872191305194835500751973650659424509822078173611693966657565115951680350286854511134932952208418286920782447643694074736756297274974431136224116666074288189786879057766703876745940128003065843165859770683258467818566941646485973148460762096402621873672586091981862815681581915922512901220724493603181523464919725202679943895753010412016093820446758241573976585921232598537839036823188330089024243135045974739530063616963446508092138226942907673273438116105628653741751762752689549308597726196252073308064159982007153333708607846795978539292601231308026180333297155501013402876613269944982432434729883070187115720118743658816288688228294723547866861574893628129546865514691917386551158236034653966273525058830528783639379128648471650707459426617788883509084734543145352789888530595624325924705003548727006461757843262459456808685965673066702986749671665993729088186208005697176245040549706572071162536000687623644580738390617244160848030629477281211968298735171669205672661928702029907939596059034589055605011382997824582409421335673388622782972335898542724360011142904976687645011443491499447463131498824690919715810801789509010235637700085312030299671747850572280696316153563241425119968189495402566255856816510049513674301950528845882640373905255970860815733130029680095468766400631455107000295323962592799942199939417617517330113840556388653589190189182830190726500800697228635866707505233719286137410879658261612554905260699267399159292254975246241828814927372290609199795282055677546858936965784026810682289194992552172958412905533017255607370066643280010139313787291986497092672532207198818846416493096324491602384651114686419111046987276686701395385864825137200507378953086056618449811202793051884880676424071806899980866702375838185227471103439769377191175861173598755013383631893430250202794709904639249579338896292036023774903281486192768543717881850389095440809182685787599307201863841219558007291727511934479884782975865487243662619047724173890357889468579579607609001493287356248337516656070145324467494005651387747671955569060054766227767435881591163724271123532780501008910651882906084567597743305321884999301492625332098115018905253548635836124333491649255722839106984679348196591222994997994197750544328668699384122172474921525251241369521184682056393021595588344057444510743578519653593220855142630089283202119553983891105437017343769374507471684389388244357396336897946954964310162840524126743249834229306128115525562250530663182797824704132008462878103075749098384159139993310744099467315578716377246824137828922849082888743432184916198962815677031937143980865042825752769754620512159346076723913203377647613791766328460609435986668868738617251738933170962612027662620402311709737582718106158267248880688025019766397355751067421803271795155542185590217340432221929959852469779139644340528650835583241978649944167002156420435188387863978515092566972859393187838157351044737312700832311525731605568930076062123962695376094356371727194946600966468269965675410119250400033749612060920363265421963736869332950880457272606539577610542227782477645452743542387607873233797113519537104644814981297925563999126661034749572635672686858052617254116031797698501671216120280350295282225355897915386724199940145320927831937227950943960063844889895784484149434029448488173947868739287616782169647189243133273198698193559391501759284100772094492559183548227002106269159707898182287331843339193620356912374994051573594058623751619522324497063362580167876566761226304113999203657241469552499092246973162441071504336846288380308783970876190802228281021041802040554742678585114004964599992047510028659087091204487107177179881070474675453461324412725531445183313198983625290835051289415374245546076099163787313229109824102345917041085172711138373875063909296801290689633322822859393995421596957579716647445493931197557755609372781318988968835108963361466570681705007302259355332305099154803539778498337772915083480578565418961194216284210655257270426150601254540810779665871933073687670314679143992507566601530312315180809878027619751012059950781028282107323472738197164719868957675576966769421415377603442112874678396207193400565791267555850896084711868424116014134435406752458666615958826532393375064340853682489305658574329931793556478224995464189872266447164543768526829977168184004132935137015684929085354853038439173226764696535824357560837935901747486781105902959783172877879034369167428596967247711289929748532663635587060773794285906526165141075406828110933369956465492507450300778703800539889189403730300191480615087952196562464421427040951298278789661426429641003934881972700436332802701951795978562149697157931326160731032301540625362732448584690967895272344420607479630798662497205443994039128782469533806088779758884100108839221287142768041253637544491836630609752747990906964676886489166396305730366470437317596429897009370883035077252283213011554558277095385144488025162991313209272099937280512392427089536245592689391215649313893229175249358375377080256011452023632217672743280792726838527331308564894353981219211875003144390344726124465246861575173765869914572251097195156954394730473117947970737526357842665013487530043870479471820366958330147079918342594582603717954057547199767283039580435254343477576011966822046440937410161294694629662138054767587708577367427452116172368560532842106221321015203003397348476417290920315714780907781706533757372266017034276934858034118780120170377507938861975297597710407416012423948241745880449424541431893430029524763038073153545242448693143367144815581427588603452594933764169471221713501609341737122409512456750419885247054431578717674369660061523981262883326656800695500683578486273711844582179050699767651307379541532625465566683813766541280339111353871419529917632758001358531565010708109403156050294974883004834902589593825643373281586376573064268550108811246608340781105897337157638552780998905010457124737489007693787590269363472627203217270352264839632291724686262324956182381717698689434930775198200464961993022398958175553769198831145139962183550677386686373443661539763216915904655257328224268180321349801447238497821884620836194545582071309180073043737246314910357193177821322601989003626939708951690514825693097119051478436474383266198478090532872480817180414423555057896203425134734523115141625038211338997078616637761098752706332231915949285526889524286327010777480704362148995861111951911926654199425062294929961647266345353815659505878384626983646058236507573254790057707691003772076983729135181851019741908191862048431890158738667534756468078130699289778821746852085883907175429976038240002984657902424981065320961074398830801909629722369288480011011977776681202793464102523737940603438223595193099217422731245744380385042268584782097074565138237434343805349527787352820358947216359144338951900529813348006866668403098299189666274824989595088572266642405515765805713311541756893238135496790129141752709243273316163186524886073564211114955087069239449973554300516212127438429293013092887601165843133613360869333155942780426598847585545961883576900269815115786634730883399373907084980110412448181918767563733270700388811930717634145653551471811483419773278988661725402611340575432754254324151733596629305704352637216639946557439316770409968998053132041276075943644412820322239087506718433256206889014722695475598894619519955000116063489756953451215179689628112380683772920329349592252140918632551796341964769763930401240082559294312443673486937178659898151324389026849572258051324152028944657063574060730731590823835187887625205497174915627498323500612268713634773452446975955675864853140182828354259434865283269374743182344999446659509741084201521119086284776131859909163467470551399061979318080886196184810096306513356007736122545945162924093346599316763601433292312870056758074489318245888095005016006019490201305273078398124003955765992408890272483317649403246189216990627646049071104095312483581004671216729487385619118236381289527532218078397697950331005646222262544272996874369903544698515644546797920538350996038538162692063128903279881088329172355081268212842287547566780824986253466160534097598662117534900630522226157934575712710024138151798656437918541446020707664309515230241403948827921193794390631871420303826681319878813082312490931108359399349338530408477064574027443346283557031176233699172996589020506265979973698770671518428679615477835705505793427770094799309981730415452619992444104402063452537398877052956601502637351400518348343967874245087575139355450170894620971141635833053811638452559004738486062040460751587994461192078077734199635157259100473283953491125357225098488522282288925519401739862157021844695711009055953454472934874474510950849307969669762564756010396084732714972843919150092173134130522652966737345571621120018926582909494411400000897507704037819411094198753255900368420288733788668470117462291717977578695714875583865262599739326834339573094404999735938953716513395976247372785812991514803224423593058839029098024241364608180943460919063751214998754958921148613651646541460806297301099847583823465133160146717964043653759112647240218364597044075244674991322479572751599368277495424994901442633357504765990793694712081577572110549574666911002559350522846888081424584125786963462565891184097608785113181196859725470213216135626469730938972662368151412837879448490886602853736872743999888743997909868104603472531162442785485006585947901069588886339367137855765298588765474150767352704685309409256163316877822641327555400042837226619446893539495333586891354448842476351718217563800533947357151522978399823061322492440281484588863434507226515647314883615061026656377702343357670661191604748123536261626939569597418546731490847670077563699986232574701790726526231924040263607884588431876276304817370175702098289896639580805344384885795672870372555608378664597648896048308473004900812042283770494873462278125165651339255030085331203917140159597141379424339069572021603131652606885440462143870381898355707893984627758606770937341155453060684258879593666997921602844766343348368609558974888911583555937100487068248169301092368469883722189831775729261993424581075746493012911498927040586154941122363258053793440897889079592117325386659498011348427487969375387221641641874590755384230034737534901512497121834676981010707918327894361461669177319052848606525260840793613226947003983377915651122615248205732346221995935734737245246655165247402629260704550775645614268598280797995660552222292767408310736872372242832917052089906185463662380267766997329774118700009113448229857598724282411730198130074297460238784653721478701117919401686262659087682557699321210729522543828038135909039695441646522725928428446006894044814360985554393922030378138951971622570220267831741556472524914925692883294790072605156408694141377775569847958734372631597160914910969118371611747815557613269889557626852621759472921176291117769192919079646665557326746872970322005105788063132075936788792181471232047417312872880614835320142294877368761979851774797530740798871413256082500109460933193739578177085311968737523269640274153351344430871609673536280678600744517541531323428158604949472494597436174626033693986525332981946220325172999448782496571397892363018862007017946821133039679256336329563676403050566161290058135378540396894684127172594358413951582038166723310368396859544854626016205167827160943205200704440349818463867445327109074332861214667162549524790368542486171850436408595771040774041600449605557828792286721548290580297321160558708999613032140915861923712943942390287990506252535821811051876191313491185036860987930641806934851510020591770538481945592411121448358698577444099022518037403664234450428270964537411922965141470160547249508665251660392908335250379427988129725836735167703359682575097134517372964398221049268110548876751571381432216944612901153740004909230408027859816687669039542093427780514077440710792187307954011632085786321864557681818175586951187174510571162236552133241093743586017632206170508641214725993097608532266312538574679892036886878644220315885422898686638580805251237547253718201540384482290631627952325296040674950825253173562060437742704736372153975799166325256364297064244330906783139783021059192224954805357296286647954372505993721868702760306376640206567570190862655180028299637545397388935295626888882643002987271852029969431991724538939879432202874525008960404822263320832371707112053464946196885966832727470570636966929228422852404871518277697013246227757973422643008142394734519572228918384663606517195189903357568636635196823023371062408501287208133198845074124490883438275630366260459246231919942439272363930746885195341385766003695774848742172070853335457092667942165883240582843661019020101854925143721490392708433196369850119071754621125664129173612331347076849517098685135595419906540845089516090677524498449001050119425724228305064940179233930573615675444231921799180135615213299762865333531353124410179810719415099377358000344249053953866841624957940914961505050299887205415687487282598404150706355538650537259476635160981417148926216690770460663946952776321392447187772925775411051849525874582205934966019292578979868699607942574180236339425199735643546663132530004728514391970757893969581321712761718970596120310499622698358180072470399843654762337987549792794591775085996672624176350215829877701968535978467515080297214012031169576746560635545592894443768348242836968827067526751137809160049142653085039347169471530987463657153382433498421642018978384663998164609933577654450823911156061585274870405351530245409736349313006007292269690285159581664267815868306390431968205735801100797827176275590066424275001537465581106192145815706423888710348944319305127758660390186128180636486902710502814713552087964023992965666811066503319763109988290083135913097971909285666155768888840928399599518660658256756379812769915717353173573035532949683069286191252569688092881099547787101143400421412967685735092281781671042758459902092576198022025876501426742936252780083048711612311975981888849286190465492672704388293723683528714811031125739015458364241413066935870632750085089643790115756522521640055909717344566382610666926498182689415962248180426215037612209432002147482683506005129354347088179858428273183135360571744137034348509140646980960752487445855150836028392041899995765623528873923585676930186863916255046501776250739645572243268715140576638465127921887546817890109633447177213303391170881732820422925672179424766174971843425687457005936369981253908019361980625918763542986216065912088104885801813803109714562090355845505692875730689911969883942288432645227351538578004899547206015013574934858138205599536585728242940833226628618166688997919154369730428135935421127877771128363426602952696476770986412445134484187383723943741689658047968260244033593905301372996920204801568965916230202726887271520278372497508625884274224151616357107242334016909618933056996460923289797540070039793413172889741299738678990050408372832568862580629246136817465369698630347787209916663623150774953886006622345894863927683689335265502948281502346257398268190542758852163050549007625345061021571604897076246752308438294992844925862260180715293243659532935428811020618956088059488331419322342871080087123194601574867246531998721940499472369266050591037655513803507224631654841310814664944251626364520250538265634257033645231787058831162025867255237245455536441301508844524546550842144275227337194106571805552516970194161459457905765575421593404540426569089408090458536489507552482412483643463807306862379027110879476906628071069984607137526683683823094508499917890245781280780364655848689018987141152602751004526175876189400343727191241443574335357390436377466938877229861237817283838031284158554867529451866215666383427550456107368130631767934876103654557185820411103643214596729515827720670442511066394670927622655132514714011785620975519791269523688036005085111610143197179714678959051815909177332230657100562865069952427068444176610878103076871918353326627145803635650918358634105038581904523732038643805987854938928635134534851924192904665645064984312256760668411346656854655533130430580751085688110513755667533394565426079831309440566856648477357776004510157525046087329051440518536639279129545566547037366090144562475643976604877036827030910887889770928196887789842476075970795118668226730448598635626721420077074860797565142962927413498909582510692314376532600785391243086071920075100423414651010377509151258589669078505776760801492514345042006426560182223455345701626172819974450766006093747367138926023155361065335209640680160950929696415348187035038700520337775555902518902862783625311760324271726307384876405121751263193419245566892055233806845061126775387637681702038273899523136442761088435772732132502507786361779202016233344494159632619547781703210346919357847648181339882169971072434374443994033658140855216624785238827245241491649099325841375624526752034688631155056905240753132676857241391493979822091278105166195791245907289534271207246827679964763531207566051348670899860133024793228588374911736176273606101402740046997200662167265091881365761994000702957597164324767015549758068349313773563331508835269662975909731162353830704268516896346978165460707087992928356104812540131733703157260101485273250087137405183935009046354972503662100256656207313587359296960162527043528890049374347107662827570823618047109210026843081112398201663427246186520543563978157721241058971890408445439648542922889097658726483861200588385834934137558466685789113110165690259912215096016315246507413072964931821021416797871238913986195071862118184957400026202752962926202521763555500347994100250171844701451212968521583961940280138359270849559547383308732508336596107234909015520342146385544608389931386553440029237302213421541963392787907170210505369272063801215848380742109674433142429859827987618859494392738888346392943447929080973067455505550466778665980028688109097967882513566242824202197043769061943557764392325890313061569585627178058991422957312295163982471957581329643766705668632958286248888926882571211717324713432302071588806283027670487698016925551342754689311823294901224349384752223434729212934735656560105720015746423980883901861208438805450408621214270342767399026079654784459151799723585231437236646676544438820784563785603117160730712282394133624296332010947259732920275966185633486034302960060530051024322585153624767248018218163254112147131285781272338981407165912635808900488924374892261900058302777908116610023444872001067671559911301095722510792879044555277202526414746103969187378347518180275967420263374924827407204426744298864347693006531812300855575704567037339455956216595722215731797904179128415861434033632308201883204046035982398152096002555481472843713207815281056288780883424946512099033069572825815917671606414127762135927389977608189135438469623579496866352329644754294349107951375663229685009877400549780112971896144161450446526976629332344849626216782361452423430965302222089419850494617280267808914617543766746200112567790507915574015920514795857116899735594018802075061039990370572812425824008081919358242648978460505221024625692395119566527709186100133048580980967498028931478589649811264904727327071020122067405931838505540954641858180598266868988361598300081504146131283370630522227026244935527799101213908886303406591389921542487288006266688019871971421034849302343958082823314274612777222335169147407855538476718807424437370847275613813368397911271199559679188595740245547383330759055472278659016562172756607616077228563657256972629893122777111320491063174145839872903935458339657919550230385453470390060438491308540973119816085677740776039584782376025291055054941728370348732268315604586294615550333382360467509708962615771891252248885996794697011147329965068458911869489159780617825355267513352882560072666416435466876011017529631345420832935603071000906249554815620807767651341351687358461953424269796113494012423725582114698716690813599102383379645627249192262098419018492110072260365150095654813793919863258910433608927275553928923622715219901515218516084983778906623641986348151210943541279312929878275540559719733058595144354904480370833871372230708876840636245380012595995364214588890253919315976670498039370548571731214279165385756687140949150715025818302997433955174758954836532872521757357427890904114840150118852321519374192400530326064921391648424511324452539847409827358308219076234106665209497624196144917040096807804107675554186535010433632569658372959811779340371465716118178468618667034982328005793529274487495658833681329058554778593751140100169964339378482940825988483995074030013120196759338023371530444317808927824433086025559525235789549699827289031688259346476488314516717750976706468074643281111484775865461218246054550516544472620092721319500328322943201973019576630844063462478359054562669237896923832701696847790142772312455406570239190836827524255393564881535226912506504612444700393061035811770144720521550773108570574432167576736963567863058102152348997928886520589115213065207497493895019171521356135828248627830887985731287460275673035063396386607007511578743303541273164050179856132406559641618881473961050046704445191550254669771784026547397278154481449625064502220524015359265935220715716313698607413646093547595567406078440561249481594193421546242459394310628460110391604486671171303711934490098912468344148439980380268662132338931634295268641937908674300933876635174755303445683889827425584964274935508781982994921367903492156986598240042591814250884130094018745197701016253440937837492740556008106494373018738750566105837770606608800422683297729480505544454212546303478591482033329439567380088316290806254032045794906781156655400391307292702914846856535982486344370891953752887962521156089945962941567120423785452788446313154506702652888662005573820030968395751257357083440859500658067269133236323747846872408964870737351225648910565068459234748070802518986173946404511662050920413681130451070849208576407866709829430559656459415094348546389762852571804423818011241957581087122614469186017659343147321701297555446092317697444101671179207178668603686966781271197292268371724181346011214332900546514922726123851238670709527011644379814194111074831274362357708126840484299578703578787614891553398158868908603466906869079150435815398685065914438082264549326885267725219573725317070428097658769495604345863788576151075796305541453232955209296153608253513109890696502042393143035731201731903292707386350867819341123842605801995820423571166021160479997805116804591171011506038006783091375552423437819630087654823705561269553654183930494602647212383106486023290930092126400699898623941581890125006093886350024534118544388658709077482033063707236206436996377080721282654561071060810213454769610164039956512694888894150780198103598986306967163640191901314446528502948666629746465213031667924947176260355296598133543144843473159463311710385178752263223140430545421771168361347049697225226132439650307978103087564440626572080455691134397121528571831881784886362979763671756071483272542770741038006382390147719263826312549910552388192664202054456525590780153593479716164914901359847089664815776942632737511251084344595789369979005111355577522585600811158614576587517368045411852940741237683626343513610398758150931257276941340297018829972295203230974557969217119474300887610829622778330300729333722507113491634242413330603008115369372908026311692597702666689651983220992765797886865380542905582277340220397036466968769472503892280516645303981972279890864764374981721770394390433452404141768489535886748265520683201676655180103964435202778390113289363392999177570835171871415214244832048641825470986796670256216260636332117754805302263652668338967110597169207455900854178680930232214370698214902903890384469759343757577788883688701478447607235953978479129099448815752094638927147393595566937263554001282676472977484244775013122367015580715416767990710351375954523314916902381964168595332181468903941609519529473036632331465008813509732786114255712412153886605935223443535964150345585810459408825276801739211880120749741239266078211331396020953764107080902508804356420436400140233966324753260956397039569331568396269468465684106089652400784247249986351203010492782827721479167390103428086057313765794695470953928739897068617234222026922306313176010483005326067667919994582135760927116823508429051649912251591844153339463849006748396364246747295339076513724736181218237723328842754875145535074539172164923145756409848881083313103495553077224699975723680169529584810934114087793737235799309960519329580210346756472572964851456838941173593330283598694204798162566987931307447431802760731047150399737299098743367442445649978302431860519654016321153852911754086994731114141981829043831438943268516796466288865193940070085676310331929205006688593698438571586055783786314994957423291563933381392657232304550837020388467462084263790163540437157423944532068973585708601486170009022966000473276043251230478486131193869991220977574969589158031016012474007488323525682576634289314501385683652000808494136918200328167671842068608278230899109626505964843591312528369388415301478560844937033412441580804663715599213545081478631068566757988462455838547783718411681627175820958291898941749711382146558689172882265259080099110329764338985458644480172218638375717095418403887270702556267697891943551787575636203798885906250963024538000853011525103655383820235046958480098225857418840701058749754986418803243623461335051169999772093508082738912117423092388713436095898962280164738484214022326439194200182702455306848071921213458770867990144065520147430387679028750790957725409971498188389916908403018887078301867527620703625566950041396098341411734394351047170416672450881992369041878956036865801046569044452120606869550168954521714599251044897944440719689919316544319421610806310758183773688868833344432453182149959474496073076901440258486008888963712998184912194499725908100863469664093250673407949093213266992170877611021103485334129974949931101373402949626933904539823649423417955886000701039213178983830509999365180347717424818575834047122063300469017621673594433635364185829797838599549110790193823664387179907990801780676590607232882494641015675898167198382244214877955711742321329327343821461975658156499410664127505460712205424516100717272710258676267271131333541252940174493711453642906325785866590219432125275802119041178328265451043387316637480566312341135793251364323936212641295862090201691071838989991340086365459256821982622782679809806094018597410034749356326199372365815835277605492395378115241179905061013453564309995253074608464895712984660992562060659995943507525912250314709821845778894185071142180681328008651335273537277921037084293229510902523674337461717214770449399140919298086868397115082511813602480192484697777999778895403398960917653244748290380473899763421394946965852994955845579529902169386692432770085829276786916737404074523999762765203555320428829409260336941033002553052357752967920091840500130324877096376251311145439973184382649413423561019280258274342521607440623874990068470165404635829396756348844560488821485949896915741145048447886187511200992129199503018885280130954023603431903229021797422243725238663004286602644257677480513447011211973160439741442609149320814320552856109576423073523265113875822715688051867204337843440537431637298082218956718398260176510341208661021086399710601155180320000059254436927538815839573406252636391988321485527878038104452001870666387847211530754465607979309531998052333249608828856993906231408702762361708605781411772742012535462602040396847095649692102515542662156964030069923644413107132802740779105147307463154131669563868570454669693257151201293132172426382427908466656881445605948467427168320411302178073523066846449598215429975834107005963433024291420915320530683912735565372472148967947959921643945613147480048365658993260107239112776261849629367875985245131720838078548641383152183534815469804159097187302569845851761232264425132873820836660061232831214684234718515765467390998488085086036622584554538066656362569004392198383389649583579013363811310135121325197577216340538226965509995927842103407973147667674334012662067834390767429244640940291762647676912171130475548026321207596690834159859862545865633615321308790607309541797970654565197219864889551770370346949782760898069062547857875160525197287397004646015484436242438723598442988122865136809848313321879941939133213547083969190902841206817109999130685104024096409684773161299755701877252486898627628233328838822284864893725244476089805723454695357518468300155880058184541921124967999783112416496251164731311079116802133647067283609750083486622192043236037836085471277337915335028046672013723899681621762205370901195297601060896077398462183280187560996186913553781345531606532948693303953605342906657140580455944204424902461483543608554216504867118621298815102205017553203895791564802050554850778088749900749434148006994205086284476155161942839192245593748828038765571398192675457723944657393313416742728213275833257567345159022773825250774503935290023064398412349231924868294908784078169903256056428471718697420595258429962625902235371447733355841149720824234348115564097701059425420052139984898611107213591210817213402764138593876629438121276302611375895188339079976021231180014511490236571339894877564617727285410012712422836020371912749170152703015261211443778301775821036568091794986714641585318571785067846675874088689110440294080847178722656393370197548966830472789127807765742336804508808302482390130686389397249094914861041057489867565332446518142049713411680029370627796227176265884706090519961305241398645090186846888119017602220292578520184366859168039555503092479922532539701778304517773419571885120566518736658975424783994775478047685835156469344437395854448471541601778381833795175108093774960047037077053938362390044860038300770169535398023619683247195666792997034891699657164703795979829560890136494330148752579830179464206459664835402538665141792216510513320703136867060376050076178738481228030568430424921104618849311720128259620896020900208935804606785153313166371756320349287589684979341041574667836553574384939831305938408186192435043252242629677417679878738197491056127732146188307033920947329912810309621065724288203787376309219017311285442226795434418053735064407990278490294917386384709638084885206044471734045237925797570951433871285137923531044537738841907881094878787094670916378682988369385660508233382329592996493472719821316203660274077483902040643941212746569111934378576139442994632014329209385127698165532117116072491134168692852852535624449358024016219998745271934384583827804640673521018658953210380349116527911923728960652497959366817517358954635108035167397890137589784270567586340938603570171347202395820665717492816327838627194437556781475683677464401734544790618830845692137952266662393771773915194233784221802348294300954405579988168162321535630825230073377766049508257897374075451109514071945090563805792580533778302024623894711841320629970437764712255737537070548197217558644537075185627991161990717630180821544827568363891655863760044350708854744854909317847735724794689950346305923533883534737918082399492411023968486601498373397837527794486337620922902150445745096281725205857291285353240430135865433190143690359161796164903110130035251292952903450319527491574624405756074774608558740114612171461790054435795853639191153914571645167291483404739267127333573648561541471694776788273765928068269597035207539449691248673150797811793076362415440591566514506280024153852505343638955376860256770937018283594431306625916894005944802403917180640246775304802926194589409925333984503762256881176800797638735787512075670728570817028692939313923029098067379435170330216638955379679984494623537087259854317936491126378771050203854989279782206771133433671728605313165549886926692846362190304321908728959065065880830458096290869620771230587533235834778734316701672595240091781632763748750555501502995420978964797287468210255603488894660332738407167684285025818947969475967835854419533347509275160788446363520347895874799104662353778171067170591279306974272923543040931140891499542915233208520932406866485431047786331810986530431289722180493500532768733368300051299333446292909059014227984974976597796192512009501967572176742286840624307872307067567726278830712447574061673888770468667821284040267238398696508446080561761875962269703912513058234031510756530441943086584277486366617760396540603775421175799492191270121540098969089281292439815640430737556992042540388663455027049925215587387996209826277486279162511020150716142081079957618692387671256831694951204715151097982982680111977963225295385980090860709662043057815476579264145470694158344836445286722365193301841202490635355805550227003265425274690343626438538390140299847483610972003241984487241921916722563762580709226320467526438546350785930661127451401924399982951924020931972702145845382947265376995005898066934461053945470512587749414358506978714803211624157287063192386161608556703466733586678575918997309597148991249878856024742893630855455235568098426332230254704425510344549551061868378470420067736108147695324288842839348907633818684211487990761352968696368198472974376175331237123268837811784369124701210112638559195552396953464221464889035315473360446791900532173281668132395834233624387491130546406756485577678143474304809663797588573297671411157205638731272758537481051003762770362878606614413126998882678091134569606808078292094835078182712734382936504267436353980418434041780597436440494725025259072946690078411048261598493093528235511739217896873176961425611015648840188117406686425041190985077998424976573456142131130430038833636809337869996207812071916019122634970400539480898808052346168489923224103170719982189737237341992955703465068035277718255529174545877202433460548342311590864836100475639331280633188727048322121319856234899085352821550358594628225194049195914215789185382161261670763856474434868767165263881027302292664810177175462143006830529412153789948697992812813125863894515807087487354929237935195084388681555827635931598191849044653389482896013927874885760725119272006301296198044457116005894641703847544039687194961998812942732643656725969638905649706792520506439457709429214994900026649939860105188595445263746475658377443546206119579443822763820264630279194578688391616680962813023578771579391714083344424025517212731043320264261447494446940112785960527369709665649714483586916643107675252973894542969194927114096865119501188122953713856392775989694942734635461240650172661497919130845523430238547227577789763073578978852297156173703128207101366855717780396814415379252673524267459632287405963846873676590894981069173870089729510084310254433846057814968847401750962485066063382676198048775380589072104198408509267794757460425344587789916043689313909294595595168237228925705529023262722545190178087511663418699206736180076547044483505755834591017211266639061225599462180394594429200008496165722551135846996755547604498394997525908300720457335751288533485492671531980454207914741941597393435357588681638032693259435768233889708768006495756430481011711113169691608430229107865300896784499909560190605799130436907652372088545181804143359465767171255887357686699789414462044899408909241569872270605912774836374926511795276668447868948169824879129551767104056004317455957055676872559567805505470421724478470851306219778614822846425280981008343326239813655805086772130702384161768469284251244648763716654806027819328651351629901689128929153722318303096217622830524365735747551449880896724806553289638508185239360013047547452672315204174747080629477206825071384226233617812511816015077547233069249768151284314356510978285798320658814300525026269490383758492870335788644328952683189928553952541759922506919091894095131865137558244162348824968872246082685959651380702890281873098352251529767257348683683656126516931126981797414942489302985268110810941448754770928175300986900997399509804154905392481131102014594391314620997796752646434341225160941251145503164468580559649319415165266561556552159763128478246088196747849885578665385639477859108038560757857555355346369417958179214862162534765824288824845647655832232370785252468921542353010664574105481439915352720895353944283230467294872682467500051890683975288289099175564151415114890175121868006324372161825218639343389557280068330964869088647126244158949754388111965925428748789591828366364451486296772537067191652299106280868866755180735462460583122979287931894656975041657247715248565405745801127730498080542090949966472109495843322914668893774926623543548159209702832745771171908410639467133005482088161681803119125511608882746495136750322191189163634947139081591705395945633700678494813370670313281365158394887381374388972254229608702069511623781344806030438180554335580169370558383483398453509945880463802324176096995959244646130325494759055954345855938512461511506228091662883063979702827766759072582255050630576789541293060955400807656600080873705256007855998837398441275274414057469906042633817516898985270465588329792031422693646501370851506569192296488437040271324363711731634230697905749032583953868528219476064097506415541757214397741139665680733627772864399521067181158307868139896621579615007972205927175901829332169958761817031317289373494882586137207547793954341864481565450971420165590107939384017583531240525132978780314060715691725144232790753944123670742664273193348679798310542198533609996136692159070523562108130677833120010254032015244588877512029929448305681947063886876980782793693520060800748918431416451240748873144619686248776332926396257320086439106875447019204262126689346030796919279000632669126624807756825596224919077310781357595023266311109176789100968021176929115471414533173341573527352602869862625406492739041728867147464033037767876923527442797615452168813916627316917071616299250455185761681712304807543031816564068814499661149716895043309874894367277356238401068422896057661206040354133152465573890891237513305477790785029227112037575578008488379098620549571680128938801735612506800742764497535034674121161234359128021995165917861279180132760265281837197148989978581391673194085541660470585543463036226044160947275433287671417857120207254828296129349845296629956749129067919223265689848299455381977256734746766047463343742366422563191285259521484004146791977767487064900450501892923145402913266291774725552558815695375170158915888698341599802848506114033456775768663387644200560175122793272978224195407909843375655486037937544092691473057790627626900249325557620790729729825311450894183243678512491964235968352913153741535546244688095173533335633224118137819522643910082989831827640902581282874834431423475781819611057905126188762105211780900168912806364579106188161561928891848736957106543379743155597119104600908767664911676905198019042318698850084175835217321935244381945316795599506324903447687550165035084920830384519214351114192096936994270080087510660385004257831742568596665940459360940069723210116553904707592301104447501337747592405748149509729424013691739923243671897735103865433344393609353113444211278850249842133498162807226952298645007822368639732208108405545285387721747474212572959347555682391558451029440469313893894063753967763252614819880125453388520039576348176185512356712437381900847966312748007431088615557332732637419178740336485955244592392437902507410000911966019613177672894222503159277908410467779641061461840555140594449753946385264903024782283831546082184866952618007605684219401347602188580863003252840771674748690947471908994168338403132522887100856727352589080464461066120442217537518495019038877546298354708388313061187328910308590657592199812014490731383098155991750800122566649447177485826608368366315720198354936022628015290304483642077416093629937721969909956733556302071342016046818739617912201442858375567518548938508744654822375118271891445778471369193968386168702219079143239952472045260072455263539427446995128554119957546560149138727751980381319716612954541259186534494473401762648139658545215533917449873833813166183694895820622338347375617785113372338038114633350307644032172009151180797603167077137896168564857417962553355513413132589583553731560863715820891189519120248559773647288849548847330646053750629446551057977429165025459571016354741335299565232908488083426766613363892509128361116458685842043789225590825315137097768214831444698680278715775195936160193978719860408679287107921537080582432264204209399528462245335171491243613186987424259255715226007531584707487840665627505686427730621523474581793638843769266055908708704227907867969306664584377315882174903405208618230481584022433376876528517898050846761221644469732326735364411754671102369380079774742601572800514066354032593087792679113443806925318519916612311883877349159558201952230195560394345923721013976501003063457444564135003026607428843377388407833772422590463453060081923622310471273843319844724374911439419264189834394984619105219065530312611444697403492922268985594209909439221823489175931564864621281544092040213420367236587072376368351849592838831002140716356537403823283615509063554094478206075638302801662077010877533425862428829773174806663882075811354235482119104511326389595013864784241328964761759635890037711535198455371820595879778459948491871742770804967169075462838801838810526770507663600064004042838901696116130989171765753571243523502839578061084610352082931181761817302339352878880590960734716058844817110007114930900302813961995606872482597077569113652287603709746947309375554868253267481565638932174059080847575093875172024687247867578082185703275702353792642308803998831119726285322137887603636262109662222193494568671797598919201805018478513037038152417234650515052522331321704786641773359825607070443592834058895784721341471533050123691599112837208036270816118939373329089860459177020402825361237534631855030267739881672134500915829086626140289789618687909197877157043408690968966246988391038845332746667444502107079135492704757762423517360715716251513582071236690242532085790219662872756410424852453383824149070564879601132614851355642805569286457396109065592173573561783199217142614297182218458619917856989635347323788243274404018734519670860077328594778818524935873781601203706578234311895944526768420415885736305919787536840865162493339026384094988830298950203396342791900279967079664370666115318385861489039027540499906783849859230744997012374747852265217892215383799272513999897515562036063845840639461282897541411630717799071194854614398956980273490059070645726840236976493088836950453003838294214878950804672705661537011518919996515367645721228476614722733745821734218782776375390774618700998058364219547475871914422433530751229484870532205790151120102042365041761974581481761845185157710531183838971062399662831601093678575505145235397080720824269243753547594473996807144509751755127840076225249044917237251604897357095415363101784182625289326384906617394255213973655505461039276394411661911275031293707343874924517353723147193593204534662449191824947607961415099470130571087810309526652896687858638556075020607236785121638714799469088501496707511111098222760773733832596923448168001723312842002423435656352851556439905595049154831573353555090449228032709856744519774858384023693997849405402902462088801062604866551737528732908523215152830434894265101997673567294788856636858801230326732659781051632218867873220269332775173360801468440104387071357663194617722211784163022342281211649172209269826962808396383320122415334494525924471780321528881717583630616438892936199699890401874465831040277908885659570716130459221488041789775738320207868891252339097786945636917533141641697100673948913827989527707124164997201494285893038453025341135749641605307696165568455897431964375431741366752129756864893909881094238809777160481501797299709825976638427620998269280831984963245867726725368600754987133275507688622247058866728995447342813232039783473973977021117941822065793848918867490341146529288083427027831151001796795723323496016584169022378641118063467654589376725228116068480874438088256114389802165731260216917157568741191925966430608485010233877251616839765978710523291322501812193090180214609027142094702711358919701254606294112691673025888247354135205850023763416309501681403227687442603788046537325491740490674832960987612951156404404903806388571325007749881854963424049413296373929825761001512392407520589084579744593900452808907795473399223048064767485363765083576388371379146423203825648187166417991148810801312340646649010319358841201992921999227690381038841187120336956592297276745725723816347341465968129297641776339603938301267523215508122180794388599937877711565278511122169927981313513914969089973715440033726930773396836866389746068586499181451744442606226554622091224129542130817324864673816644787164989519593323493600688796245240420547242976420425155432464018735771589130684447531855088807370065840043717386168046516811319248116200467625626906639085527642808773521812024123105310244797236598944432082259735579425004267694051133195757088343883131353409466799280129953422585991231059410930897928135114153369505261155168962444513879481943062074515899243392565966097362614954378331950599572167486526247262869993133850270505181667384675411129574494972711821429805621332403092373453347939938680903590311634593797700575558038491748458621926788552830834585426581561000191172977813655662352729619719984664183673105053435654404091346038753700115351593205174954056245978940478092670489184231722209002813495030273191175166042451035491665389964329276593065655007792704041209136751382636968879426400931549737120688184452359805375198751943291354187587891253936780739905470684494322912608625462794131713087897021695426849920402757735095690144804499917118169284374511265464898096933450971827552237833869434721459709634098725720321372079641065755170314762530190046599812105260802182219413188219866811435446717116789961918469923199618583284575836382233645381418165445510758887802716859919219632249373576372844475989928183197123923337563404241189370867808545122535383998317008339303797516402774140648169250865287785439744094703320118227031725644719548122540473917977194879516754323346806307185922393323726220619992084740322799431530743040232317185774314995975422858893775240223721679627635953640492806978329087698705292707510088783546135100364905841911571821735707996959954510126486810842344414759641622885055817829489453867126332431942883694165689988981859819054797609773592438698631520693456984513367479660983176030282436243711736179758117524924702915602538291017130263145463479557400839717236119749902080164585543343911156732098323641639792004313580721706747416922930793534921248941788139045250164890290922867180416941322806352726051591644303264599201093786196426051018379693725056564516089773397272143016012600826253569573721433273410901087731708072457444602665736530590014553887319138548458103036836308238405709529783140866001218545414421940032403198486913516345768941748778701354258580715511742391023114618743486961333990853675117987808993265759172861984569712160387453623622778597055486553199687279800726538322618490216818536255371564082528988806628215201133361780185745760351577094186068515823044230513301886050914675995399305751716947063602162848600427063224299498826864826391169716268157780689191124850045834342138352116586930193992188687209666125510741492318934538587236995510266415905275631083990247273867279510882711037331478680079654917113446441142809553359432625944364212040328850450990064955748278849418734564044172718509488417234140546501122525454582948993208668744868054772823424909847229617405439993252572853718355843216826293767700692355171224333551426410324082046346327128816579009284242579159722564719027299080775924140608952203828498149917167803169175176215857818184943380355325706360551241422288491082498158082666417023003051959456557388732760598320720632187798358872081523640046034662676720329645183711758785174708706185800778565151600587286165335357230632209803249275696065492053595101679712893864292688808534235943339131137001068469043882153533125156834171097107956516372608818473707594827563760319511979055787603698320381932103342442846207837705540446789844396295897774439246366340005218708551097474182739670553151438190675202326639287211391580290247453356762944491728547619395581349232147684650300089989854701269400992747878017524183691463504778371491921990599035358790457133890270261196525856868191306791189402783855568741456051830897043206411716264835380901899267946187912035782622301450867406646584879261820336075063670870259001087822147712092234136146881760507794934936592298975753787671034142568625125746517878013011313108070990952535475235259423461705716839027781780483808588444547859371738955161633662800358627655326821153083147254288112212340768786997421202684819865766863585590695496543339360939681352227773810723146792612245190970213727058567033250469157900493993850026849282814875945768210302224915277546144033150193083971467435809528227218433085219055439940371396494599924724136761888046611154140011338822064977624567371101940034328208933138513817068881978772217167303295736575319030104288142964938793808894810292346279816446000106425405135059423735824873214304085350019209481399660569287909323049578364380587090407614289583867857624936558823056290108492758087567366464752472415930113485795929352722422420441948799827091751667040087059400936642711365244980734212515047583187183670707142058035788023444761201322093285912081510575780638688815425518810867100927298988834397884921650370541281019111533793795310619894918264699626365849913261091600934021268852879117010503733687044970744310657012604788912130745183938531169021905363710415316700701090708705812327892028308463833863343357989695770418298859035459521570885559990584372735175631957605291081388232931960971409276091490758475949453974365438863573325298748934797318645447506412660502882385509883802860421119953656312598060868600990133363016699704097632382429114972706507598206473975366358476589022203504625107078177849412793764490999536896586822886407394153093029888457193897179801918518471432960730282835998673064776524406839340258819221565721059813638299233742129518237508299605566260430858581335337407316487161271388655543763610288374823457228285597540270890964285511825354421905545112215812251956371138079714012381778732836249201573957607466696745041748476389485827752166055618253779859677899299687785697185233497778014522154352429400016769122787282571467772502981044035456890628732346854215628940114022561924454598076016803616721253444422743153966340591399885982272287702888110608330289779935380236103752598276335932451540507186597086661085153492614984863212630572903313947157528710197040755653835049811291591208447212938063181421723345855846617271325429147433657699492662439871850975246281354723656799819530132891330908531495261776444780989012296103959559530488884562068985667104431736618678674515712373893590059458973670154198763384424686521583515061611519556047280977968804096581928808354545578735243355028298362575781657142971559822404200692674017514481486754581934888241937743865357387356068696838710561163655262773506692523650730713847771937600874463202766070713540494848077200388489955423060274954662014053972142575972173494292812118597875348073420781810063811579187207873535290500618160708998744245525839521264473855095623842386912149291639416464718482700179547005123921400524142321854897071692130913911292621879642086469916606348570029047350524942595765093418146261494688255935719301177790245308568874578747489358700585118935477231734625443652814995085503531211900671959888578727374009154401215330478631683482197594689273870596158006528849534180583965501381289999112420430411215374558816254715628178796615426186024005512339773255384095306822402566818585539325083003946820960776117040572254115485217355928506575282986509506236868727976342064918120844818958329220006433916540084641317105562960924669974174177028173936402137759690187161669667774263639412575513760282963427560740555119044435064769545487882246672866956084048364195038446850452152116665906458962137089651665213551171657991900889592178586558853663202772268539805470281516244928642235131090348095412423296084842750327586466800244955170188887733170883254423876970742674699573310576161862867448166626332612253140740900960568353896869235030334228949606461838514146310674092345663419668240677406662865039536873636640867344978615269273520918964983823270437089904828399572707424451068220161992305492781058251758054620502427509002047493770942137719208224594957865013538953782110373131689854060051124736912823343397708919769721298682475120315218754196673723308411591252463963718308417250745308200389108119582758902622418544241117558323861999612063118145706593707061121802350573901208201978756686421255851337373982283743316866459222801922955650229661774432457729772389213499616743720315994859510283991091754346294475343177675581902852972181096965141869067505026579566759422253953122931237223102052872823048772969727970392537218685197228779485783977891365389693205566575646702535130440976652698174488008992305426457103654933680595351743121842626184597876841443353499856775293156101036350475539416513095579869249679407770973318468432400030092832204160405840694282941246109773640184117833858435985403656759707162985140201627188135208606889765104267513508579829365717315683818793133083993558228487287506307492159841737667701442451905792724830350008108408067833629714010013303617140996817265793774676570278939021999923130195760273570185502172707141092316578024666489651476932847476749050219353066138383618106625905486130215308539226789607603406170107298452410739548077928150563254662245705577289278372853758816984697709537752925610305125490237181749403801656171555509743351264423475481860927801423699715323703461798364229333145307717332644694616774033488541790865667036049259513757000650919192549119276888836533526832588440541061715597778556189331067027864907940208923547348119555708162366121842143202280891051923022325285908121458384543102680072412061318560636781810893142953692976186507241760163544349332542003133315498476674283559284108480518096086014893604967807248837944058183194325224986016764674017726472988424594665225352819334634259081713348030557239942962117216258096462657956872277166009454692478730408197697162791413627756655559824998840710390173588739017961912596897898415871466049438886008748337659020588021233372614210402143701906375855406817392659765688826710999688703758311566278140130875673881272934799954746631001752583137852961126593052384004314881041215361643752689047025058062077022856665138925568374147137234231592841334336832921255663064541167235676638606908990846993595282559551007663896092289376722157944010388070935347149672365097502158950558349524982491053031047028993777995528355813116626885741292582767912852766464473540563392984691979632092200914246261691479712483880200534474037340710866062261621721711670431797388156279181921107474379671806116190745797552730001397906588344863993958530097183217313793312466342273309271162373909877863985905103791599886891821400516929629727666578244859314906386301651353083978006225391542275354360855611115881694822959203832870506858700398643258420392303169712152854697859965686082420670137893219204152210962459951498219556254864231091475725428721504126444843652395753371669855592615515571336234598820463352515663364568636315200870364553927515232404456943628750779779422301387695766477239112273058652525055146925472403860467059596623473163158591005717295072034920282354654812507025959480482273977134262904973282801220273660769626195321364292581276316593797922588912723185179958891933541192568999918444769261425526309977839880939102914576992474503595378605173020872511580966792414194497724704932493408365527817297581717839055647679011501549799366402641697842606005634441228797420726592797375915027675042559785924647035275612685954230849627112897294319242963821317007652003308560375499698207925995405967701123781389162626747688360608456574255323775171459808107020923500884727899189653174846367482094278085147548950950640725120206150167221203023160598242472274829157953310521044418386584784536411371257328566910967987560635829697565589016906634022851290447590909054278148078864818649816233151246278326929707678926325989187509262289877013853366110946094642449367147312026431741308552388118152541238926628667600321129783715636102182865103332380591911270022715543740578730401618954389803285925086351290020126581123251279430187184697588164417444901652547693851834867475214185630232707068310176085260793713145536666175987207800114082940973653448747011814185221963285621966511592870769190592389158710497994069876744282353225379624351133593045926617586706617086662686901528316445078770409313116821503731088895441352580823037053906873061423439242345544361601635055697740974503933504919846626269953165325399201315606992356311616774825002926499075103105435049808950709469802354086832430436900221212165367519913356624012349539715092394222152638663985938731129029855979236016102150367832617827799832296237492147281680131185472535259998019286759885550833786580689536755598739878852096453995622691504795716661905111861792141563526526409361896117784473980524261139583174610359927512607844771615910557678303967155747657992123413229784253612852359660501156976115673974382736439427802597656709831121246384277994130164811249173466744741191750901327551535942934261953290499723984498348744268987682112393366816694911337733190399763413419145075119500468659587530721921632276166436393275710868290208746898335642299721018330041976810670130445797357632270975629897439816541115372446306394701695512638681526591229942561864046306099885445114182623786814411487603483176855979932038822479127438250273906363083026530125915558898340886623473557844245817533614038674723417164097070243272073348557285203725823726846077120186694540410853845540234635614220513248105806162951878752963642485214155323463043317685221230662629189543039251330012734490339457022350717749495464632518727502263131576657938138364103654172564091166274171062053806160926256650820787771930238650223675092848819751971506651389647703407321937064942349771789509079882029859821304755352165346326088202555506811543370100368035944681951995948486928638178105557143528052382668173005203576105340287928557232408379223166773641289612279438053216679622724002539010956487962640510341291098880923957585596353155673507755792490608240862096744888102192706787703551321037238243752438349634828050814096290806410689959217712298241098701116486963672043497536301364578899459751533954690349916524203694362502871505366227952744649147145621892697326703231190065428359125821448412725900615937928173909820022535605831768269970079300954689252625293591487077299630341298825794574215481830819345783395397760933107245499511756648245497508825121756010686192792697795411321113682820496504545566414659109394726711483082055743281755692876366127782593394120997212456401630633210878079821613165325519965601929437338383980617116366393813914388435368879891755158880119039477995414378716369083374405380852167472793591066445419168297709361424774686500361317591540740706785611682187066336251619768314150382278319140971123550237272928243790823912529202141180548371138161457131948423089376651538286759715236724805985092073081502782383592049062266817414064073979202922543143039927643020587137246800083859947481533266000609616411399934018065791150566710884127177211817002779475521845792011135595757917003561885584361945463086140261644083474597991413397120693180555820109826863071923490188941332389189283444026803625595720310075239992081489381207904722750478580724412515902281267824200868803831865749011455326214229982093249031649575889317800359501086892301753067541911948461282860106699633652039332579886182804604012856729300925142040756358101304921484497124093319726204619069408572155791504910410072961178039353276706076569342219270485019404250757584012408698868607041674941961143906872940882325100052140600454049604547044782564021464927056145284647617699772110139714799140906675180899874606474254862804152038942180609137851565127085730563401774230849585407020563465085454179401803016958961344796396596847754214368101660004680157339419599546239801185770139671401452014011533908622620698164495186637555958570168652764906169727008949133790061144186402011029554236702830813322007509089353770700199247937467710429960321723183868019555841897596530886280046518884739482107413550650864687602709676087650267112748979862697732211903742433801291825518048263243055961803951703920415166693660904491243918950534897283522027656818112581396809476273906361209633246430206618030041896740854763082762726502727034737121618393071127847068438475008800878792341102466685561795165725635010134221123935467456908708050794298887469209531635354325678045899573813841103178577088524064845087724957313350157347410770874657060638906644696411046423204656573529981895838310518528951139134975903563844660110170011296038071040778096455403134527727577126321545719924433657467600918023917905848101734143233001615626617366877883067964748154231458483500538661003415811047779539490201163236249101587178330606631852155818778496303026372387102707210825062134332576396522405902253045534076469959658042104613366604641716998302703728141941437891048341619487981972585942397816629400331540570459435786161978406274289658025560176797373268742873652172942657769053862538595684299812891139554134202477746731611904564165723027879162805763720791576232782184330290077849070968162478822955257995121606414073098822255512301106174511916519955828551582618764051412760324409646574177388654268984697217801503881163755321502262181955450686732863271802354494094458670046646732311093144017912298985677211945255692066414897398965266969408949768636488453082499384421270991032625237569682975784440403730093729418681219354430502413551452694705389648072427892038098721148285505032746837800756709673651697750039624084121063854783078382713500888667429339275545763271103177400411548762552318267515815869403764423790239935135437490700336976313805091542792283844437274454695884205694344467587543487003038221330002362339538095571804965839270129474897814386633075679901669512196217619981253111060984971394047451822065493934998507756803663032216366455938076282282097963775402972656528914706672789938622339737005687956499079015232484637825971767591796693497223576081020639889174032356755132236759228829759591402421617628472181816035662641636469155159157869443380741368198152830779445236795301394555414087979360957943136995144793628112574836203325079814856617727663512605755400642340518914213470101773839479198383278047327646559595280396157596765705096730577972177050578770422826132701748539111229609173937717626553081208125029575225888181129446197683551027533045024033146718924522816385841287083403771566450501260861150181296518537494202501005614772047924302289701343636853373402106431742653895469655172869381771728431894816356357735305805085841377012194657185063981743361341162481550176829666625526926578347784017368302882990145385318849866113545437036071441724461276472388910410376086835579875541430821813248366435793445358283609465356317101713112704877249403034623310914350007803962659250425516312155178802343996587590601538154304523349553559476424839650589811426715181832988717833967392685079615655767886431580181235675618756734268110492053926473505846744254730780674602361431348765565377609465885881955612844820537588091944823094046382396643547750567958609592192729102263120518521329317268582919571689742357485663362406606481662533572645082109276933492772559729454008115895004353051527643559643660446413372748518018713055648849151690804084723932464385614753582581240677013257958070180304432904028326208748496268378857426296469558024868172934597295725496521432673528736703810319585514769243602346576602137832916177877172888794347022823043998930277881040314106320421861304956896176815271839564496147055272756798941928362836866171317171962914340976530017345180880327624374635828758282355175457494744635979109845458119224091392119677551200090070995926312255788083554470268032211463526364464709714275787561595633284339091694810971224745609762977074456544732097225933030686046940845897613708460786711705736910599094856404619235884056703000434925014123835124199311989855397259024272549841058949952843726968393104857845201907049749130372677299121552927622545932573933989012075388599170655591523627378343760754836774531661262005766118773680950171083337434973857709556440285317836381483049401635167196676704908836452202077991896772202920724082139631976063293221834437427038852728596012756618577231522397525399329884577082766408872949433421546908857540917467432430040669565438659896058175452439976013746118363069925792245489046670286178096117030637366161958316334532025661181610229632918808051037611648808221050219651571960687646576118393350181042077813934068505173372503677839006574721101799199377551578556110657522570332957369827598680269347139351099591751990052583473213113850905538066999525298179410577206498363791941328128862360887868367595389457275159677809620528642299892444942319890876967571586176357670628546771194300443098812468011549314211528190280571377071284353987816875199734167395804484478340071444078741193656122197169763531322737523263503816597747375753290130289483335619445259539246162731168820112966745820200655584468877032070172594866675310153912728753348427874505211274869633325807468511047146976593999909668829222216333907392266632247728348342151750565314614640129630711534705129036100622364783944660795278662194587301294646995867159860499791145666876560446503105503615318591700514742816350279956467411477384057606428434535155987170613506895878656985670835484189416118758773050151856849795321153326061576217099260034606976366688692702701538750660125591374041737745464915566924517236112518488122770716588496322728758447067217209930177695151521138591193536025954067465422690464830462715916355851883119034483214646179398945619162373317003174830771386862961796408646158765463737415744082347615616760999353605782101944633065059175855437998619478540911917187500348759827806094002251998875280347908461241011887613148516638594236269321321355172826348471269092845161278064503834759544978843783081108325704476418261568178567283884160640458325691875458255790864331538241999854394787575125651312035899856588474026228330195873698939210597176174379337494917263397877437242290346191704600573906751113551343165954458856652915210878420743589336979465875378057863835830012111180017134318024457228733071381167257839069309322571518164307191943122241909084969054419645325831745200062284386162872315304320734585938240794576113187024521050429176153048378194900557393170535591008177281822018732625971943447047318810468089324081439795204613209995509735399870037004968916150354863713728806701113726928654866396370723162467787568038571474030591267446550298924595486363213734075240488986091724335735656778175329756911430309307393255610205535350808348235770587036848143520638416475009851327468686886167771096321795943465758570474618566729167524067297715456411398245144605483668488359080231746879659555804244399723820717715116432071346467166231393910516491776288723719357755877717566027986893930712171099112257552203457477678903796417878620947801958900202595408173766964435713931744457183307475812668307886643710147829919972918893024957466413778639613123288193641844710981125817532400075482298418426905375257433970986834095759240936701440581375512109427175231604847371392314794814894174013935557191832671723623360541473799505099056499208053268150542571637940344890511609124779371734664751290232784743183910132278575646369310910742774230151772940001097611698378803413561591285738432556631557882280652513276913827145852921210578881603548502145501654134258873434913629554115727927027556117394957091079839628750971524453898305385284747371652279043703608458416717635629097263540162202325182908520188569348939125754433509677840983347786478767886865802542159844584729246044170509115696455306183073860026399629160892149633463039779251094745206852830696180370576648867340553602205543452813651499439837375575522742813387057408597262085533411694802692724425883389549409592313232150327696372719946570166541894952052419744295136888816620760720330667158104291437170508471186227394880803279695081438064813507769823427707315270780229917201415640285821832056479661744809594274226190450629194431710862231380356232110433953075865377183678488773429546448719052192804799219326146002129903121635939566697860061165394984719142970002674495452708785779545771593042666202570989986643469349976125196731886091596629586198757522214803809327128665574717393027316883289438545447869395664621550630677295462376685732589699729778954335341241832526379528685654519588755197828845296244305963749041775470325286790659928150958701422059950656275591035566192731513205243689035535068390819142356447155731634375084283367912880341991112559376712059830642317406971175141277582479295786658816929399161791419652353064161606305375045602666013237274576096668567379981479816255311857046957017695985992047710365283803603484875333580979672431633700992112235912135604063358041810671142206495425609624094174855139214199114287438108140698991627670670925513931521286137908712659380580807299140272703256555520238759346265491507809321568592633090709812783060650127708641664205148495200706563669212547242860167197125134480111370774425247467765718267687811848328742842443505439966084705251504227049704774598335569747916164108630856215112497504100457132303103697169093778871231472435380566501193317639745113746064977186483492937016072015050706743858936109765547414019473633501010930615157666117718501984603844140725086472517144595618216187676878569240527160917950484357879464857465573635125748721596629798442100293909424146110760762142089166845273473469540012171576512242102462551032700036883766476453119529533408299903100323132308533906024689630375504313357996174649577515163635805054010501181904190002306235829715740904384739038247467758693494965969811186125014146385283602834100500126853037024320318386940772921889388304302459742215815091659027508211499342079428030471815072014275779243235968923991006107358978051223858744586724512590344051666501788438230248199699192166753085090926124390440230101143224515419730920479392258841225753352148113423453131610950985453267749552264903589334812593256633031500568743454587724517458776966119303670266621724898745509980719557657454138251164985206432307143897005807369244104186384413966775483512865743053005963550625293949721397995492675563110741529853951949663406873113707895094522061362630194817332627785303770912926893312966642679302569331323137314149115884892457064639854954672280127682700437510888391477876662484598783338335137104039684137073772118606009649591767042082879610107790662720470499393126558094216524276064938605990560742410577911922244189295889642564792720556501591444946079750179418458570393081349383042894438994228561378290598074780769515828844285601773740862036215625894029447706808924964658442028745476305430881718208821343733580465130721865584554504634620976482072278739567636674006331888178960528383790976464489889293051431108818519950641757771722237466128450770746707310029471798350692972889994123925463471679536663340017566437758152313527495971129902965905591671285158843738416959805458969218952735250475889517436605160024737634035560728928095795438187065494221571038069872921173942340067695798518633688299782015299775218982839866028741035152335309599459820181761049892547391801771369400464112333193585337601630472689710895289037558596597242327712411372011873227602345058381891646615822892298767898592795096233899786485695836048628887017226195942088932758878140809093625998335789369877980996607417119925453557978936137361304048224625931139451458969817748151225097761383696123183322507456702599899191736985308299277497734882496663309897108284863976012605297513268931092180605588061749763485029925581355380270826420191368987354300481223973690853204830901922187066234800593260331478175677244967802208280775792901459268262649639220521157661175712134070240295756594956377377899007691635633486547735247861983822991396849868162140451910452264287088084993258336385983448200873195971608531431816490034242456593386183258740443909538508391142212540282959440721783648567744189637024497301600080695813662039568528414580153833921092832713158413242560263796555175126790725170065477099861965078768791257206452920563264552115890317852806706224076652893338960043308811607093543173280909685887422359522612448188897078692591726205411595563296199240342363933763174170957840490142363648251772769291169882512614995167061054013457996956647656245404422278133976386613504009845934117166233550267036985201206079470766378904512070306622570997732766969156267830705669418935252376693156096862609628534794885465378030291395295162094213558519202714435575259980165846417089235314223985487964964321649450440182448455931357689364017075621384062874398243694691451402544364591022217991380290536165310046764208882267365099258055566543570525544403868075521920333993153049107882618070315410265313031241179182189172469489630214870892992288790684988148125402103785869579964666075305210813574811056995695624117564169172089604303919088583285062847549257833902614721393600104069996217814587775640798003776276265816628487433767279412384186592922667484092138559504957303104505899986963610116556253126077148105328420043199959510979203533425239669005521028012656221564867472915999330758370787494373707296163756636108703532056636770760020249450433995689413808082061585242398723799097657195624390272769046044614375314171434602829575017085467689395760449821002520825065046945024290166784144569926580699542714577996012474747169263963258183523816479717512003522683127468075934252913186976515207557626722356530889126259875338640150144854649813213028242322389320781650854702488797130353401069112283438315999656817323688362201828473462479957475115342883991979107062079464034109255799666644029562861917542519409716010921013257832246321411844708816842440758239802790810900903660831414433113751916377452926483278486412580703726396152078215167489047901029053421945997814566169246816193885337228334122882959769750372848126349725377977509511428180608193597635540346775200943448253243073179019426115655899516324858434967592277880888043793273440602934434683846125063418745973613534191156357396363075934175789645323603654327442773320306215743894277313219405629996831459172453818509234706064510961504041237583540078193537600579778195756169099429357888689821267820048204113390424119519382618969929819137061447368225274774068417188676313196217555475870808853814120578090652362074848856545301281920078977171156970811205353943729740248249721081125900682695600345194181011480951014697155392683686590202687465654378604723962687835810387471107689352965124432852563725828019346278443673351262620743255392818862272636547397200030500146191725154985940594930849377831316330433155395410748553207621524937848199284071124449035065918593629078097573032601801798959931123152133008860238997519938448229703354789765782849984111543002276752843701257859630685492941211125267299791787930786778283001981899117958488674856093581386866391901362886312495875627178822151445612968188864809273864251932273299267389385557957717536720397816729820198804054686850266936956462374825412807640006930790991057519376468849751950382107043802621787905380872412564245157622658251604301952294693948118743246802435921259207672973291563786044011103126633741041546980903438404554782409625790936180474889143968643704601525068811546146284917427633683177463872331867153766436533743375063887841657908502535095174240920972132850572797984390801573152706820765831700326015239237330561910694174217691083971869870462645027151981984773222538992708332735921553474917157469208291495069562453390770773360082826292978417124311798005745829242653310295979030449543424331131126630087161994254712130460107034319088309293269085671792227405192521386393302069913864918686102835829759192281142897322029467778092111926546857180922319081891337968345156817487961993651160063293593474021749533050985891154337577227525548737312722295530275631365171881647143577612585760432340922873609136203185324406683355311131165850939357776659454216250954861254950419669054194900888299901015362544238338410156397003664575719108664400044907861463001527247952568836237795811849197436347064126266866450413217633639534362927242302956342493871191813830759143539114173481132297756416940288020608340483078608209797590747066781170937613767090311001940264807538452258629219089664597265777910055206622722840265279583812764025411546530798970627350572428087772109478312222056907140738957369104294386222122219165117828299437326288251570872682732905357554514948305512214440874619075542576567474158076646789212422269928965014661389137014173306211093599803431093181547760410512813337213334708088698213274244722362044626675041029607843721545510543228724050312330810577787128113747934836347874317898659518701734001900034867211543578448599197084262396910638787109722229770629516953215982622476092537270592609139737773540986607905037987297290082795476293718911443823720216352591226700163940168744752094149980134936661021018870104609471768266288373709152000198554467072220035031719946349366664706884125168653902436847167451812361811269750631647572488911006254449859453938169068308436780450799435184682305679785954598674159980328510218642566742737065908436495118634416463981526157454415580942514520873068113555706887085225086667840349837802838003835348611966874151425919691001894798785199096432765019325893089232355674539597986243013120726315673870788569718151023377998832435140346840336862714542466057968204083395995162386733555068652007356373215216221773030139152662128335866277023566683092976440299176584649621753167192156827873844579248394266720707446952611688564777502549435791029231390302198058606744341145800762137340058093083782860521584095468395317640508122800900974793532999018116733464713469480170665734086133352519874828587994637130568537529579173511112808137934847519563220985607085131662675704462217513204585609563967359418373869549135889216743135549763607945415703390246538910086742905467677128486264300425939406164913688277173861772071272457467467026185743918134660429621295663023544187882897216919087532263515690646241025653562380548587822314310148378554763657330714038370126931764068048112491017308296684656661868062010755084199209112477367508113402371671198766217725662545077735714989619157162772294285016704207429302073703333793078057316846265271675102990346726104613250223354548377638024685628026641395539255039628368718363559925233246941620996747224834895716651098363734237154980904104618865529473983233755624379395955018297360699699735357854797467092866580439012253087071085291163574130045751959874400806672727487353985279625696374886397630446201240946177240503913564344984444646847851548704547884470429955762604494452078830124981044449526214703459443615950426976770583145424974353087650893687354149900982503252748107975537120616788278987044735964418203771085600455295839214543929488608801257600685822261020379639603279105299877142047642045988434593903945571110872442936141121045235546643959886264592689058380979872228938499052944488725260874521184094340718743324990814915745765988320300243110328466730915389509355013168503931977288691958686218440589454204840896043077333590997099592755441317373691055032536114697773637441383659403941484593298217102577284078110708071552117207987559159606564542111777139310346866836390071800654489571430364814492902763022582565890180075138150820659454344049936053085388982612152286515244234732986575386371907866907626938106614888202475401776114485606768267717082725812316452952658814720380321741060652168204319427235531791772166406075543642988362419608319372374537881920196207302412800765703688624743627011777780890167547042797079589078737038672838452889129877822411784220155781208900500683442903752933011034663344038425037375393470729999779942303195071017802403108470989290381124371083922043034914353657713479785509988352130473345160018997427908225885697301794338298665046362913329907131093442525720497996682819236333577756349456962592574613946403466191797100491447585768644535079000298381270993440591170562361187859147703865422929733778802306065970619434452682365401546530305926350230337994459105884775746972233316429993714782361652463636266244504706421001855959763984308097765439413689173995753899460988630007382384700940871517452054263579145688934252200290953374187110884900868708215614511893128408648716199570274452241295197142208702141263487447453854049195466171037804860081089962690613553277818177458644418835704503224120227991757216475257076817574463112621249074321115306021814088391050502219710162510242524708357450957087183383623833750432712412643099457230824974736165371690787814795525443813852521164861599088257381641107158877859714708062372923083151001872606872006358467724451955936547892109611007833152408640959903506701882483502018659719896527035746257281005523416596652889306322581810837642119986916637612764867237299737865231527584278303387118040543245792157714999571389451368002550023624772342734363140355656092385604828438590853294542210373205078925812323740067796317503910251014215505325481945067821735610193676459358078599621963294703612428972788588651640132704691948784102265096387434301848530753250279056333177574987424291316389316878651645156621704224439748347455009693357819234379545186902345801469630989265407942472964171421763719261378610379579740802666559082684114209977468508799764728614461830870511323503708090306723744498031013000715255257468348790106495575251537538540475856126759698889322401087503830968643872868926715584389725957952107468608422224651501434635734387990200434579283470082778181709412255266391254956590793625996558177303737894026215723196308121437172142150538222626396602829822269916543217979747014518162753855480166035477842081516351818876206356169948684958735559325189365382670726430548503042998827423883923839509389683890377129535029903760788162857513129137376431253162212177693656445496509371785815009992158933653408808795344235309039924485807619401028584252948326917526628136363643748403942168854341702305839319473115669271733566121268106258659805662423937009817447233554752383747228921004455301208723784637316020804352928220767397611563843087633498381026351418789834093979148977297766232247431840701784262959845033041492847144897633351582921502638642755386539202175373581806731207517920060900381712397713358529568194054771536135588390991919380709855567649578256966906886346438208812445503780968662969681537067047697174048791493169902639459485539477660101578914836760857723148157800135465504005041816789049681156559632057853578140404906144694403275118921607580778953042428740684595421369361935278673108542687936996462287641268481349068123586439632220164967200115462408273488086641326620437121195891248454975885660838506572610669576121037713970180308495258469456322287973051978433731563470311486526338969802118289250468390277863442317933394662455284463791848614037256639086418869922921001016158845589349168820980110885997300484835615766732043635977377325325068856331125085569227463902076385774502814773610442723814526192445061440265361878753296958379716505930462996802915341787321237410561970034126786155708863809751929022964029424771523615781553098087928557362092777931228491806608324798983782690230242826443920677980030397127316027471903846399026771457990379597940785051592352873047929394052144505469713710164915019646013759957871930117305486189687994478799128034720720457978617364681785726678993690731641718533028487790776798143676019561124873946978447376620079759750311254857404422165838568387105310395604479678836318403892146428808030067927987656209515750910631449137977600360108744261206666512798925509738361025654650876824614973124497311688587757839835027029355498765692209526225264161003152965849856406710868065662770399324641194799498804850190591994398937558482907919652784750533203860711086211764536901862161203447282944913779921347503264011020604537489440139771467544749173349872356211808459660190655779955431566162210272610914273232484855156524687584122995447318364007723891434924412925759831577748673098930244497931568008127657814823844852918153716830154929890959095857302351502277084743959811833182105822932096031366270232165918408528292047664446632858579550366029156070587620895497143685014491767252802804867039699002781944949326055146573261247549886601071997032187194316263749310645843551174358550210807976011656049537028461400309258683503374893275718828334736961331896369899349199849620074015175445849006532912897309332410077424135593151348138602241612869322215628858384596232864737565095955247007849096050970489402650265719605964363367301406111844173443422683432061107999525054374921726366088349347371877157645854907083431401631305465314261452003275618995998425556084681448222846765375849705043074324129058262959941394230124166507226514452747467655177276991299102220270037474726667765635008111378197701922391611344943323141360070991339281308254868228148925671890091408981869959046066552498979761219144732589946582207672257850840616503276409997145717848369454384920169795193555723370566161655975369139463354759525281060600192434903367699995389820059368266190754283329012989845776109669663913887178231273142081638766843339894343973399629646918628395205220938759862704333576623724168710965396323211802486954265934144372725533331692359835119439808892072927556687804128702852565490779800895509786404485239759781319424714314965987119774165038155050244967782299893071510970074583213060476597869682848409885382371972118162559481447053867253737457037823368433129873508436836765166149609038016182279567367777907660466956789139972564282348104159268598874721467675755503494145546978881147429705728928289744532968012955318472850570625171612466640230260106492116050511403945480702485914911409791373528843693898037087125574093011524715644477041413264917492480699716047623402226299559459792930857004145889619645530165070123092785485351998357544704290209635592762024002122156110838395046581221273676333909850442195632024184497948359867528594305929590648516907918761839060632146718770863642923379959200992368477608459002565435414047883511223983136285385252161460183614122480410583367391257710763095742245311303908551153336848780709490740334062900723991819880445447166247183404461300029857889197154005935002071939319539882375827933375380548555007476519586049546077237024180978472068864311205277605371141906222612543363828223049729680801040407306331572498978442158053003186250422520499693480030850333648232739105493161625032875499057124670431449444915527390403231887036093978556427429032403814717318026592960059980454234616273362789710661869326820629852352212005693645171734152299562443888763802969990086894789525340417036745232446266946008153387755792353510160054661538994577229887357682092309276409198857845074366287614587918537986840271099323397142257940690740606931696471686547239541523190214317724912665808545567820539715707160882325758466027643371667236775679667410216451805627420953455624802791090059407811333414905261340639761425365221027856989031231559368946131668770495072905189222752701930626165270851486592488527451586901957289480154243452538828820582286301770573087054215943754098010493840987749221434910153574981114604428100699495100580150460904833869397414871049743286485763389768978848732831156738427056333675870091683078080882700756765449923186480442020751465493910981809356140686668908337113901128310786494687976042022560958494179205359410845684361836980794722642006765717515984847926301644644797194150199814089983491346747521874175776881871828054970443070493328106647057300129690193740579083586637896791169036613104517288406461655457001594132739762033818488041587826472934387150611173204499303092376312774176331418851078662201440053133423772307227198784646254812440930731263342649152613685128859975844216743770160051649696399514477788361645507222604114381808560575206767823866550335699293225814393723798511740333438796813033343171157016485074352142113919955460230329899188354821675924477867464698480825980934529023478618891430636717065571778213621765403638900237814809396136055793216098710026324764223762829010555072681622447111326445539820803716485096281928718382468709451871140922965998732537031847793077857738996628938426626467011637133119357489297744964026524852992189100004467091282140487936268077157284828725168771696400217136639299801224987792812496600324608005174938372117560495599566342677319962459599007722136959891412019916609106502691161587074791809987761630501013640612973575958518376454648118040750015701905241463008893238238405476248733922770666755363843651387837234667674292232582870619946097019414467438622092562519685300804515717861757875066877973242639610871581971980727023969293996078401130051098759285929907034386925511361818969262615455400282452921672160447074698677540702492726802980893301357534535384781601364399911980132522422847075758811678969235368069016075391543303775187234071730432484609049313850068707831508561139072131889145678433647951210873170638199868538210644341481988278726075332040312887803715559610189972484166042334592010367594187395518035950507171244971100802524406766480353977408920839349117261352617416201684614889982700256418679043336191494499908379944719548856166635905026791990169329528972329069893232026220233923243602976372541646806114629110273233216511825473666859630189775420411495082272727889695995179982831610751112473108291961365639155500748343140729316866340305990524173919981010564329242867366009107916037092435048496633490636969375141496118886210783807359236091061657595118012403440950266384437867849548266358871112503057887924988804355518740840126587940531172537639071497324527801805402553431041791476552756295164727283295079694650716666069028048104058137164441229001969552195506174614962321288791114977383357992766703472265968158599392434523874039490562128000879716660709538516755048830988342520536902373023642156839651362485822689731025470839432721061217942858264507078926932125569737502674280314786615641338258151307199735467362906309944457557976025763947097110280293663343675779744659842042344054997598697064864425812461432807109397852527558794600332466421906850846913389645808620939348378362489090790129345144417040268878244345344343746753062320574278229723351961425102284497581185830559045356777146631301149947312852388772378377289956150601310271416600021308988266455105192373193982332255974258323385838493260653793546948895832961023931984620660918317912872850424276865271697982806388515121909664886131708961259927354821940105047634466060634497783266771033451693479465337059017229571380358082017290456939519821522375192675501633262843336581211205876116139244087924796604687206447103554808800002866662871928637593855149886347240758866921719362455969558915432378074981180398331566665155361587356235212241667835414681198320133383565227618066334134146403198409430820481752975148933382292976099474241359944681098899739156655836561118947817606325473442167168617219921914559885438938531222969285184049097730419563482607359881240155328794002548341269514650538638285963204253388793039886964259736836620868732520344823942158662655712689188932119113621904492185648931582223048470332487888539958616954903312577390793019456045317394000052703484621148196876054592402805815480733437929856498561111857946176698816801700574477301699192809385939360112927789013752302045979722007224223285071276430562947280694031957233720836604626958852831001283240313475382265196874764956873278363500024726111064615769495532333617656063158730000300261939531195993584534475322783181813672641323790071259534136552568555603479035584131223740750388042242499739231734207126562103564714186323593715297221909292492099204669338755567537021573590819426140803841282695733179650396324666076107245735116693162424821255706384483908042965983364999452878893795206304617118027516291304931381216935640418233652823466215123574260306747612896778063630947349627553202446671746702343302034965772640050635141311998189106150104502464233778724752059682592926296022170000531500376219096004997177198248764880304157309276441377684106674670514419144787022029364452166675723515365813592803500830225413562616122401752725516519181349568610065636864065802626087293756962329955989750545283131428830279435666623056929685167047896848665997240519755186258834141980851679529065276674047795790920453623528766251232714740230483342136768242359738632478072370220903139480680088885339449856013209426711223994119862824297360061330575397893977260619648039075834409416524329226295096207372016744687725248157818939548544971908104530212217268687043370236339763684681707657585982260660779434504518227532384874758421671558901036209295420306946316225218724255007686452694601426700958818621804978101559337586506051658514698019594144524254152408201194831303508898288449508843401844174748660595912011303662136903778568827404898980360933570731134316663992122501133094678928916164696807345206197572369963391306521517345786291544523250040887232739927946748806971478696943444916145453864836993043494883425461335158494747528886707521912276747090112189436146587285419021090873014875294813114939450773852442059426154793572450436100080339999381051433321373655459267967320950132249796237343058799779029218335748559131590329022006452863350882087133183321485786826451999516737830544497632258779765598108977771720358196689686649371393932250628310512161861859151010735141048987993384026390837841344405516619088254648724767472048243153644170889873336335625224931075122179992621622771040145989069002884334929147776024816878155814260178885089265585420866456188966890187893591259893225839852939534036290730478413290935046318591732088223940534648256334178757353248780747346343386201502796735466991675288797466208138482100007711585589311431400133137930574177840601955799763902340729301485129278676807070453124858865089477207473855826300553465431315177729341060315229269868291047037801140422432511798736669318425041723146848210301374420110073702137429120385194163163794037342132243463083644349662905886039924919034249627308705008468384341835446308484506145859808335751402686845064913846914253049087747643993276368314237172153839861029548003522769949417774554385878039238891018403818006855508773973515135928442930550776100339295039302675637247963602028263479948949482156208314365780936812675697177019508784050846793353114677662892764485525781180042922685994750665438416382272508499482774617222104875357917754590028007132018844508448231994673160594400628110927817849168670351047435543445630427059544044379906613986399592806233007439779443295844915133666198685051643548238378773795715273347058574107918075641570919188009260258740937657967529053546985912131816076457392534609593895362182149547539537872299363310367707123545557076851636770621071677206419815258019982116826665961928615669082006728418481740285595824587919238257400914403665609807631009903240127895942836593905709607020205738978315156645032647067054225039637178052508912500421476923375127998364842326168810274962312252076486024320410806400412329988279103358746597158433281338148607899981717707944410857964094213132635060136601010917155170218185836411506086120794377220367457988476825664817502817806056635828512371993141635042229570068809828694157506353295422069180456796836640339718196323828101575638603323444811249396818121109058841653807832764993690047239044285787499204498046451574977529447827828856316527327090866352804957452512540676427790293387771340704589648451993295897224401976686076770464964994058866728674631303259626137362033608144297261436111324421761813584314553779940477157031733755626629594147310494515774590077040080167068932324759825182142418143044060380025245678766602819545189845306137567615639851128725216983330866037540177116874576771009182733963443021039388880496350894441224635558903384761299903388741193321406542173830372172375803523236814433258465436812089344343864545299347091934880425946368274286327910486956018835618568332627705254645817252684505354553004386667023641478365961164360920439470940567553194881480681671325731977528167657626309434293355645456450917060564514956107563999156219476391229313051938110695818406770935417112992031757039818247974983956095968998807678405289458666392321792329383351543000656266094475360624423498403419732623857713192040463977379103709310520619854678784979370986040501525235643597672074105959429839898831184189643369797664993962163881319910915832642435674860811176791048025573470605417123551228483981993233064947076588053609360924713647020239754779193179765221712692281876156276405565484520239380586726877256944200141608902297969802002005135674270104499809681928602183261992401644755957493531579491520117146839341006810369257874039529575446355355675593826298523999322673737343194184818957481547512592522319806654568736907140375843316594808029479318026513838780788035975517553434740087642721438813180219056859500641363267967248053167096235527814027249935075966813278556454345288634895424647842929267529072606131790228940419368219275248102030820386815677857172862891902242872797223358484916709725437833697447263214672818478199811920253815612860457437590687600178255141307697003233096256840755121292526731863876298195399950815683080903270588151791808313416846320728722164368010467711501501125384040971321882307311852934086823820310037264017051176180271516484253393283852149808840155914267952546456572499508246506448739598113380366340359591591618577596024801856069616258482186937469953445314954770601750166846478316606589024700971093453472102470870158164359659030077783066897508479237928519395120864808526371585440426392476257206214544681268129795943067567995669447696085260290179196871088467247402314295825480122255623582658525414519524314414754506899011101133594975383834359700013727752472765811617769072197559359230779423557733765147268534224559098366511514006733207076835946034485984432966489243237620179332255596162061722365440492483113583012261645626783972664747235503268529861660972865150314964272962166001859778767875956948393823261265025946677414482798525301998312953230802317361900567447023299395262838930351201399877346445595140564071080147365901700735682572934646360760840495147217070933793619767981401798134225522660096880613982939179313128360483933427872804336107256122545480155940276327176506657777309311898691075546926535590824513969058072187809279766681135866429676427895157378458828244003286436553143321308832583787642490837483338550116407358415541178296634298503062578206964706721787793114055453077294903847207006380982106178387922399753299965758132712419380768952469469070533943476383403790468454089817833543603204528175030741552134876222164899824352497914892645387543958908514689154968743781864557836786417569422715589314092874066824821908115472778682552994719873808061837080887998843595507680044160558073934905009538945004668862815270855642886786272472004392815358491278920199682828557934417637821601042343195119145666437773307102948126162919994586190167573543567851616631238885424264922674964014642235123151760498276989608731708485207273785277815647388131378734592186341820987482003780303210041352346896440892584788879275637223566561588716421268647365600665336143473650946374839005727053937381604585298632437596875232472137096896960145327904446200221033368115554394610778463840665150199253250652324494180193800493176343767731633294520113179437462093552348258279719072617522346835403355813714039019788167768686411247818763741708519490695945152467041565991605559336912253130863265558148043751511563684190356205697342163518279455968123775165338820473494082679356153765639773778255054515016604942445119901256105180292166611814915703278801095719458541969455887300857050666482065654150036473650001262929519358162413949074374922410605546374795686099013485266592539201830998996979971664878126447835507056776766527331503651164309689131027385992475210893555646168268257583856200580315790941445843743660266226039292934776750821408570202776866813816190980931391498921215809899202499076121895758798670635912123961646208413097206649234610629762183911482422959440812732469584303762118591156514551617743279860237809713371315749981288290905303451979306752540349519531222157189508531029443781100385763914810775244694781954382855944153824222825694778757033755458093490854676077977893843162118160951437389119291295287136889980644875281723063774901713986567353113641683397708385570542535061663813677346466401985714764109072716266716438213441080984357406795927682022906765596273085983712279916530688587541139946392508384832740197484316257821890083533325282796572922825489999132996005960786222189967385328138803660837251924638559683204210890312055239227726769317055390651715892238933168762333506288527682909854016640872555576219592729751331182018719787135995718747568237872134307481825791678278287539131054657272795540330398249166152148233179872530901662174018485123557041341168947795215178645078942167716846919692818184719886609033314008886249474130260017949548842708094010545042769726651728498141380915120782388906472280338147249824679880933999038436534145654243825339274841971612425305749817423608243500144265902833303729029607798214710334883041082207561107964403290748272366230171668691092759157039081553229176835236585826841261284948842234571842739255554193403824688373911254569488415713515514828118110955776716745443896907122842526223913257873510051270274488930216567725918334925486438650189631985952733535175383325939673325263705054091826403792950424187916092458865439399695894702193466910232762585122214429684648974925927844018032278454309075512676584955375325702604421015506759376385804420779500913636102684571315077468192504012599137781013068429198808026464933719851688953897342947941711911021233147534901915828514901606268518537933953776051709634209496316197921954448946279209853831006079472809465469659726462403592170000902922831860727752732071612149837426620501655698503505427972078525894480923620818573067260144991339988954287352854124527925246031538950336582140887967087744239199261026875566796424745669021834790655985328289261808177338295395595566869194250487307112384866452032125587110629264137598911399960679517913828477212773898819429583298338903745369207087788159891735094657627622356852330611191756131947284281807324661319362472169270827853683924904780788925228117486059944379221895867314794941490429072660781033803157090568623575526809716671451148076541397909183108237264376240345224549695000620558373167922815818600757928015375324782890648565611074464034530821129158385676763921124498162018520025156223967446477439139685643198631923252309091245232991807022114565882725241091289181894455851160778879119281546979075112802961041446684116003247349322577648938878835271823252140975818851986864132842776635064062244952843248612993271349121205672551983061942358607621413318338022284604664541229937221957454658365429149048772012815835835954735085146555099805574673705350575374949376435229065696435003865498625308130766998635482224286177742870902070868533949605507415485824585044283079847386925972505998442583161892128802985801733397450550589413699976634048124077770983772748280108858762312817564711656659347960705352957950276500932404174500197791302632722661290537823877387300900887939857474117850369156540442170412539550300485575776115556764099193617118713123127660325531825944248930142526044607503599806980088687649926408590815611994899728835085860572006855575602943116098304223788662943614740296317707606399883792425346690570137326888846024966420730735615701011001405624888807082887369716269053310835588493142369906937603102082352314839398286118345759770557629316389205368927815787734800786080216968848743581040042261137213995534965966220151372642140325386363174773923439316592675534366420134837852374233215302316818129924014833983908942574053465915815051137824427936221650466849505518027121198714719909951449917615230593327321433205074803341469105354248223679394159229427977119962175038750719047492719998817326360123915169784456525469004762861870813751996617156728585812787543330968978306279678223534114728818262368707699291213212309474492533287147867063493178113507738639294655124501983822527081898237770299225438003263164243455061000864243083868448348063952751867181804103834756599652836766891473548919949776701646594246954061857636378565946425269189972764802511758637825853700780353978347940517490851867267746061821608075575238879710074754133855141395391662489473656559390720996250659309602538806220181885456022728831198035082141184747724282212252852461931548203524313707863617298828237789591717689202431635267626927612271058765923793223662097892085970037317047378438084172506941339415229259082984976945025733260961067853865986368082966581547886137713219853044775428735496576842210640759265613745362340086879263921245037893619701461861173243404573284829664553664139160773238451916699265289293366326425142902335771575369641703592779741461017647998021065578467813996844980512795632162593176935542723006350341558301901635698968575638845077085714120951379667280898361511790817710678051334914171251025490052930532764007040381119034591887232736993688023459682287075795507318138270429197853865397900921586012169430449170736267702345061786469500196236754996614812336366638988776362170963153141106308995020801313178426870767244293229841484751356944778176100455098712518179254087958234571764506622514992475862434099927921088995858097470823054784666262897988696255320959295141808951550025292074750070409503704052394407752893414024940618422479061431530698732044438797275277554936432896099680439479339381681749826943011024912799668719599634820467893135368771131300599113715128394592297703415171873281323383883342751778595281912706867545291758863272720161334391435053853287998982210107046574270205723110459433450280085533754507866893279051749687934782826705781482703589400183013661221167446799375796599675547707003827710865832659218001702293483649016726278807066599859555227296541659838940754565739798334452198233228602390093824502202569396361524835359153295400671539233334126295374195976304510482016866590392028511545539668867292232447218429425517820723953265372845871475536739695400922322604817957133306760614673599150762028299822217644655162372432207964380808076354689760921435094414457087021086924446619085859875740689725655963925585150398294272985137037052623912567044742768995176268743839666254744535640111675843402095862355077036966841458747045825188242897472532478098513943958815271889674372292569015263168495699345222172628593147852851004342497407178556257008896164856058207454465543036776366332309651260107258424626289001478935020789884032580185436519398319121092874051343051007672807484653900548217760953543511947207841786949409992669155105188081964586778007677741216046334039758418541284254910631178255408242963837873441966205255055852086348814486465226969404389695263582994613017126045710339845069031649147996992695005161499935579797454558143034790632826554745687137452109294909482124778175155752281858125757285514521931585504446567170874301137898545256920804301711339375516203125129866669914039614249012256657431318114869839274915666037041512132293913010274828061162985576537682478712184816701539796787088668929689039090744780049101170028532723859266356247767041050332532170151240439801366021785698417527679985586174367028371457818224515286341733698436249458854419687919566155223283204833811495460496616894866863094044404746427987806521310413117945431581572362234470823288111891070024717930963173442536563665152928081055061453752437797557379133517775283654186729210547324379639769667084508742979468100403374826737642681951611411622168134958768739363566094835279788705082690203127120342326210014163884389973531594740786956989044534284693387567598554206805668338903799076315515449076881100040984626650622539603267586035620180459437907820002986272762862367314535238402394731324831652157095966997692092522218900206659609207775739992665834318592301445720429996652266699538234027120334778890160683502963042057758520680175086243844292274828081357505057355299174042427411431575102807256219442189102364721675832708083582713594810215773911231618398241996135119058992836181650534567005324543222962871266884624550937213852892811362303963242672617193875678899715472211208864094280777803323181737153138733329138120646355791307029159829933051400726908371174095673243430714383398702739382522885671952931868915327190153047470825069013355957729745017517619508329560399455846841095630470973913432109399148885793026967912854137638484686060304634223901564062270763127689958271172830557835324364193723576265865171676033755807185899308931470011616714684723861484591664346183418279767071480860231913799639596355818341648467572416345536216305641708538602595508915606469756198384786668554736585125121472501090511436362465336880314260304301443353433834688606499222912370174296104399639347532360980421431904595474237578529621709501758160682434951899995525327382862620874687294584733531903941822692384969085161036315359452168595016062682468340854889758482125516031693815914711903747095936812218973129769349172974827899823562553283128885177813868489737781333517952691009241220934637522522626473163377719770166574474636471851857892649818048007724326360452115276442083726647327824607954021706191876873183397676324714427270662998748447510766053497534218194632110439978377610055943618836853349705302202958922548185314676729931895780213537586897700325550924781156928495259248142708388733365589103160567231855021130546272351251699653756505085865048690511916488248471804730660799793322814508101586840830444137360313293373229994507873237654113569935925905978212065351101606288141758623372512160325580628816759737501428984046613771257884090757446414110728954496203158286336656324589916772430309727387994269407641012650461766403565554584580950942285163841741134599399916907776086878968166340367092914297320832562821948871349069915391419892301527266918456387498166124208552491351447496108919579607218643934547891794116885714212640921306112494807056727854750219474798125246437603156982924250745539011681335296434309843239250351507435164882404009992267456308725323642844459626434325552524535946994305624634338616907696126818314125603294186605779688115035678941512064367300717494215136641612640215114365108970689465655683409839802677223512846323128618148456077553392070162248372102394742902224616164085041776873760411685118341484384545759936143240947787955315534810371969248800085171027993501807346520676883557676256467843380120440875448585869672988730830658056335256470020316770053993578792159583921923672571338551485628563017939581852774943020310046122264765351090841104488770046512628336777083595841219446800001351878856855180019908230872890389354029854348010251584981048894295611954754909771163756120720937692621865379339881449054861525263033681077778429284206571516587229753412861744182078335134578284938286032071144663009775032262788625849692222086595572727770091864276295146224367979556413799458494800709295594973823687184992382702500808490995641309926546770654222785728825753011763243221317335343244983627909230734540774119323191803382076607338421202053915353311395460432294389514525558690594552993724906651397493460501685895005883376880495814345684881727111492858830262468223076269792146845491637798810445324096255309140077883463574555394537825613339927835191737994927012157448745996269031945975677620123590326733781592917449605005650394027192564305247521689690921821039730642758051241916777581309792188871644943458082121375143633052723839630793782258851590451224005494387846879020780780357524765037108341692225941557267725029999604990385499861419305117287239136120695128143865737385964637931978032310944450526217883669962269610067916341303960328716323777388085659114789200699370327967171870400263247771833260134643205770379743857492725032527276317215169722590836756427671161119132416646643907387549855388833615726864710347640206369677704072089770497569253624559660298646872018457439133017919379370715844561756925807020095461354432042138217821618339719400167833233639357981407792250127207873399964216308707628668897544845017843753095058147079929805195710607113773677763513172589573638882359319548316664035217663350068431787658500552488404223796793176869924437972485328227018484639038055482649138246010615115428627437735537544508466966755471748451417969082787665162850414309094977344410455689777735664811421939662646690478235843408374865275992989255774389711321906275139390029892857559185931828176134586760172412528978889557113138963662489109201611427949995769458153187466863200259295431416180423272298270010037860753200885975782887493882201909261689729447567528891726480117278414520952703922872442790300916548563272019759021451061630879768541923443609475289890879801130741232102184796629998019179022368187102215064213045513773369929915064301355178297510141885318594758404898107826109406130087799632612026078937037362718964467015380602555983850399977942985876712896447894808365623284065724114930916316687432596451480366778610302542642452600267853335902562264217873416380665451024913269508922927535503691597523433975430314839585902663476837486964928981968591771366777737822238936841182768666274309195544545089378715067539606972913603933565104679335043547315930045532102784727837176606310995838803088201828873174190057528220585707256176430581432996587335950177699703130051066709445879477131264229829664455386979970721501908190538708279287888097945591787471643682525579599292981606980320207308839837501077417101251921036202835276070557877872574804843311895567842995982175474987717354684957306158293146017547009236867019336641198926485760126082731536817377806294016396224234623392242647431502304592610926752761381024160100223682074722007971196055159504833835881626072374660245904830355891626494630175123053574282885354106184017909111324199217452548090031727009343105673229440225849043838082916237304264823686655408092636128510309884605346341987157086405095244668976788194193521387192956698084441034481786218258762132499548291547016787206449350378130630779553861529077936072836722552608791977381791385410983660434234505982175785597470771850013518134505787973835047248503414320512072840878649059354576061460484745496164567564832669438909377557150078145932495794720452792119257755949741744524977388768228685742032919031724131084267532877075141951820947766459010565572186980961794741768685323876416963780472869580067036042517324605751394916010889311423132785220182118626591351370904523159799624897233629456212005200342917787018209515763061952587081973726258712013532332548223705182567052357885221960115758327464868977962252750627754097257120155951889326821267797380725828660276816845660045495585193563405593032866022368717231534166551948029569274736924495486640303761221484873256136134238523860500015756989335666805173619220496523470167526407871389227446097125504064133550027216906257878656170251400599594374845593826481514817544159721806625615157256188393632444406349658144724081423844288944813187109503837858671691333284613403518895920869724863632294162533432204389362255648800460480222713976910261172684628619066715273715182619683466722452026874700609285493236649780515165728142549534268764158064743860635365354327652843767995540283275168396522201414471209987240086748220763496252220041669114629157047541378006718171776872794011271162227256577811165689825094614122644673714640872189864683650801167630515513546365860815055893200431062352398908823453678024292707739576290120918848417023335842584205516188869216121498764093616788218824259259579851052863168101426458610280981344094408680719583468205501937415410192531371299622408031999617834419041292475102827332585691603981538699321815416358249686072272698802256601129480576837312470577521378682370501424904298382342956759302495454936606892768300042614514703347148577148864063716449842494046452517823890922909793881486816416252788454376568431485194219192129969219210373178951741875780915338165650737499515006564941595479158239595625354319868634230761496381620792798656758645141246380254603089478369776826846415831958276218236330679805421115904675598857069129990928495606627241683859855205336281766076080689218373197487833210494442018166656704223925310539552897196346336513619390503159841344339169067734743412909603627781168150723146522163076642002572771212523177982025564307397550576230149366737660464009758338753577564338451544511675482435864283797979394517470321844814463062035395131707386824105354964655982818084559454828121374846475301759034138417701559674471174889850038515583656429991771068378179948319696139020701024831547471034983933921531275615377107338457929272267590837773150124233216180148062481079043367499288225883489847690757711231695641002076507916684361026036489387898580753398972327914045233974354330629905399339820574391620215390626989828941826743708979403336629053335909115326826627495199482828408706102190385005937274895467863943154919992030488413730449684071663742974726815868325538566392162760525551448228810697766747291263771366257826729884941425931646975635388236316998055447695291275656479281325290872619712539462784138527269659610401576713432999324816263547965644962734559320392086925051092379027739109816145016125110400948991891467647216540337169653020123667087148057094228653772734046778244813865275852761525983706883448487263435120909054923503233274996416188203213002057233255950951700930208968946454601765804450901349914360196844691803213381689534553956314997250468373500429184637960850667671166996341160354231423596313098903992818392092016623734745826646778449787223571646007507170523774155252694309201309787868920211891754074015562893068011009625785547600423431720790052912368929642057793470206025548808400954370839445460878242465184854236211214773384954672778161102148403499591310368887142642878597467491296126480882064118029749625897953727762332756274226540420572050061534989949122874423791600918705966786716066224383354233868120405757954648481273150718724001860315645320733993526382403336365025966730770993452627038800167622408318957875786385486866587805321977186704686959375961400213288429453331685052642555308556462001147919556527901881356809841423373404112386529313220509144033852528733104572172827251312172968535044444714915857175720496240442639004786336605339753601097261951862486804012418397547383264486764357328799476982045778071821505500189836345037614639684848127936093477172839033021584714088703048767341377787632338181549087520615406643675493100783095013460219207214237671075804312801122861851582736533972884515790721134071458864195212908260309424992035137917957973602608054669852759292064864125701328843671269404917720395452370995452131553769037333156071078157885110988465404322391144587572374359065721710681297847226446029554521738096475443989306266390644434594629830260588108691003444001006147406478246218127695359109231699090150978518822069277661435701990608839956774077871102317591533979502761910731833484124038087160671348065871558560087854949550725748139768666132398428985573679117164584291408159080255446959903330354145049923664919303008799840628905420019042929473881962418944613419673461193769935301216432694604252930556452795342548110539005640842473713053330072770047675789606277780313481604681672899098559475086757025041767153070671764047751289050256443559133584218120583876618606582697241555699287273114449918980002141394433102555936598849952323185853325462790707246152766558388757468449948072544270409500381847062259125737857881286096205881160878000617984003178864302873194361932607917752952225478859280282720757560992722195143891040282228456331129159902205439822291525722864886309642741514017009700912134740122410052445810836692624029771181457633343571641920705058962807751257433140063780899077571185181329641375264671977595122382148436175189355321812309376112444334839222983863329849356574717056849303210522099833892529999853699849919252737303203020475926057449968503012477157731319641729849291356448724155513494045577866697833250110017739500777315563343675052052345781644400167366240168917333113995158800357543110856681586059233253509527851902828634573175658906888426437594445734177682119661702452304729926590246937402925919820387714313904027692108009847501828568749711220902026552955322734375807939789675709960376753511650322979661196307907175346005601565316617952789619761567331805847874926002745267806498403801455924918581437888973162660720473419774956600174242894898629924104751323069497080639705244875765183071853515234576936906471495765070952799664619362942115360551315131162294075774899240508251229688756639234916480313399161613555378355880567989718801046982949203570385708919450094239011485327832777915031325524026539918026783997093706308595622246681774711183083064375546764038056844780723272468222033017153337814779012787122672937609823783683073268276041040930107907054408403584843581048217998659493254394414344028624677484346058514635245102396292839567505205527664455643085288345039949245739798498548621698370705802046074647399011649483521440432097415185069965059490614558382252831953993272263095018060521914473646953649976321202478812313825907674099599385133722640170399608392349669198479151765572660998638734206198244316880878517957469789683761838729166878201234029448841775985074523755787194731632299338373772282602333105430301416386196720032305701927567187951613614625758405169223715820785240851436329512638936809100547391745627877710425046804997910666190124382021958799669270572799893062381196478634825155355022495572999314604150770944542609763921848495956199009829988428061611037458843277250137833557358150398139766829563464266855522542730615374455582769297511290301918375718343564653595204795581844661897873666849413899605883973732592310874003108139460035930090961618265805797769022987832517131949155407681057128913049370924227071671542809276446415058996171432497456140124952026442313150319729442636574786451053005865336976880806705998639553107224105443646494448324599874466997543979220453609065434729652037709799423126682213907810145544423148182174360089826441566655759817912779067519730847060654452026950428922423533642660688866923449875311464554173885462522394319506567822741344968595379802317512465267652221269050940283039605018226848188269498010789461072275916994774815633071351433647338504641119301797341950295351205196822290563719996681267493650141650282627843393855867942776644152720391627976549553385818236315722645293938509898354430580280419508187820375835454652735357413340549295893717310838647203020537011624463967000058598710298471474057691595955785574048572684369024282603048400471878244682712347132483572384775645978508956723793105919161212239214827967371608027499434805819766134637880670833988728423455036873346705845332972765564664626503011832854972385999855015584726490326059231510004826336321067094743905804663372484865584297438511835856138944288408759094894613874362993214773731680917795930035478330593045595629790816151654810712266035481312905821758505291295191529147745279282707461321323605872374765042754189135406727151433775380651976180837741296609561844271673112031387808970447586161488334883971207846925580819230178969214587363808186662432745583544903930204382351398875979369276508003627684912502241039057693667946275133600958183051613849959402950429564290645380265108207688598580826844049786497326629962597577287246749884979517140453616807391766453960954227731727713007439617078475957497643470825325314026158819095915073901893191174157169742876159260712639816925837569444889945028476551893209004555845654087171773761846838009877615250000474252408014328270733645735686872806494784022363795066691456976608545471388767711590003045692154104842129742251708124613417251508405465642140296490066488632076112890066500212009215264449623129223845145438143852303446014916450755550645914325910419803084039238140842193745961776489166478662874864591457702791207416145378858245099635603027423914832768703847915007337216787595675575459212396330802979202302404224374845529590809851231499733881522546560914725658215193203104744053752325673265104550082515100433720509005788564265707123686499938865851263649573821533820211313315819999329094085241571903678529965506810033590198828930354386750470108635855360968263575480176237845083776678089211539220924221148334338399986813658746519820286613393694490809222793643962712504135057485852143386004278315478273563144450078494340654999890838772409597514699683177861243446784498497779517270301414405372263222922902746211855813588742043152617658757412605933677995841646174854490091981099736439101179577535969312495492625975189834633629246398250446768083803617899555794252546987562056903495920693145170801196048360393368527325047020004245040172432928494538700502866409101712678331998182699134848846528490441934517236985334521625450756162927221666318010678297321069137782773004436077201210001144439819072664787751134481869329991253116631848541348651629309898976044173508010624127769964852872700738116025444352004194742338508654448531673059166288340815591448997652311083449059229039020047477985568992663964709350466610702178452663577713258833862858922635026227821168960006191077271077139433682207410417295221396836017549681269036414429638498428544749295417501878650117760376570702560674072199968785721873695978069204128903210842500026638829499590043938309922302393043521318687586485828085207876643944891789473170284730441666301700350709600796593318181400633545945270215757408673463392665331092840893563162634583551568374557496871773391160725785116092300887597627633328176744183233539733802467826964958395620693212329718172183246781399037176531824558348817255206994344518257634509655234296955210093701455632346838780005083520788821314220237820226239857770894943511479923711051087170280342606684554851285502765638648575057076358185091240460891858394410991479389098239138537702989758776833520492631749116367060852813990545362044513169033874262082024524506069985566422906169468278273866500699446510074584318685742042471010969383044841709151440251851420373661201374404265057411106354478766440077253387239278849457514612768137008874801931461641257488435849982693895603214853567259350044025449657902694565735424458459134769477847092845963829806629220800345051494650133033487750800361748123318951025454854543868235120424612116499830400650880143135038084627609518790729024332244578335283751017274950458128306274163760456601430686508930453239163284533006060015574425721829051303189611629375555021088318159905526788243766265345983386269146850024051911329407474942269852742491842783464136655427927192018714318465864716517520185679773396761060248978522592177201047639498366706133028492234988194240625036519417074928857489110400770126136289425667605301195815618632877663208815029780104681755643333645956571350518570159999315289095204300184473130658786695409734282209206914229449423165051359939407940077224277204256343106897813588294619230217686446111223448602022415269889579849009091223025797679384900200641481184530732971155977870323849535164889045279723757402981257511786624280512757080997215027677129817216927960099953052153534710544567206997582189534637430409341066854400148788384887596882503367687878058669686861175988098782646334608163342360406183550587818530263402960768488078357334107294920684677163101210400931632454703692462338273191227579223106777392357172577100688975318726965329609659921403374594170231363193468490249702090378405318474521442696625436375144126058014808073178306163746533813073887077961230752345927225762659411246108356760030270176891278046045950878184858814625231776260331307619904169799031480171135376778001602318917643820425811569309238852491776985766475033291340728836881123676986714593550002269088784039156462262340896548728343972983718963044170237744732324261009625021394914278430143420304681205712140943136389395006469194311627990929659529211739591732417418048981959996963849711697800666328831467467092769170986375545955191727318155617788120753471788661487870574829598782707331619567134099584880471162742678970613798078291355168797463068061437696857157377253765952040268881146556596109690202353788043467152019233465460083517170441527759913040324391318550125830722736618066602256083704551030609442427123594528849003324632104451612202426877216928553811525482685085026003092631124614606059725385749266397055888856633566164506578901020912994396731657498096193399609358209699742272340979131226212602096594057684058352612814850805971046288459560973360314512292853940638579932119935590125852850257587985622946210129810418619698451835948807850852381382319904222887863677454609721734450720483667747706991173819191791127220981156176155982738579163217106921156235383457787672276394614367926996157304671726730360590535154378155488509041188646462299524246994900345546439394550608101686728469103644380697062771714617999720767436890534294288875651009261560574753228364082261938248723965305985664446795739601619321121267738558467714982026843278673111261706862311788135101882523889677465911452736792023395526466020473852138345753271096686252747901725420270461186158904596514633635993967131906453083147483825744473963258012241564080190187680085876143396860309651306211891713684816232685591497430536236576741503202004217867540429613833647304501155704075601362478693138443018707664579607305481459275643767836210131478383750839259227760217144902193179437556215211582765159719698467734199770825935576479894135789641139693891721109363918787192710461620486277405133083524596703184312345536136694649011246554257332134226410312360358305725385878074782806869423117940280124507901705098735752372962326159058874991673502489165923507888736586947841691494516888189566195603755844788107896609723595089551560108167220986277725165534719524862553429375521844423528530185374909738611350886355383398382047766594828802781327736901926852959141276832421052095787638718422775237334249092078236369312678793163471417929472140823616788884054070427653765556682003624075421244482168919796519928490925924573653267847883697317155766339023013577253636199485099523501304625376308039355276360974046039347151024802274571537408337835728337039087979612364155833169183305822245777942592358346154116698145988158319613020392666038302407516734604922534722778009729303977698932369081976097378269169904833255857418704103087529500046832173925808449763805228660167325652455175593423708898394070078901065549779501766721482376457602992469657906368862083810403033921170582886631876804602416794435625415131492042014069161224944409757192437953566880970831407647407818568626227865037546304112128248570784489184775796966266040856903916263863822445770812201979519393106155186474732238947178444353423813531632637604692680408275450829675063539590030541515878666197884320860734407569574452059301266715800420907796831988858000538989634210917611928468029663437831134397420299647978097357453144510862347107477966692645694568899676364901058626428811693788621188383615752506272582926863687527840506525045780010737802832726983713109847242020137008287027970622533703577281868360217809270521959562489671778485504214435067977625282875016283020329393351101148042479629750496873028377324381866421277283761092698944230773015808036598954437788983477711872610381872477661941946229734906201170886231508411949510547661087849795913393881915364307107848449034427249067120396361825034650304610273728917337212718517787810874981777143756238776490185233369351146470623648748057508414880684221480061508125963272852700344950833771666668178740631350248690028970713429463566815176121398960434374781990290170817438095885275906487442158645633156849815578919103131898327273099879148611134613703006550455828864238620725594340623234797766857213182974652270115951276288085275247921063041749585361377117633663079256924909091922762368305829567556314184364315319747148882624696231469379339235419360392176425234258901608525054902094605955150043618392837417316239122908451912561830777614796626767343460033841606400751965035846438195736910954193423644822138603190582433024139958126665457038338943649558070782079005273165452644630421474324203333846403932016305428365350214848457881240955430445406753200194633450689386094348127837636736696277736316992888223347354513682437397982871173678809564667329682580240466265916062819202033741128137058809452533205471959469164978713460218166254966409591309956909798800136669842236247349341839754747588849900966880178952975599318784989903870139925576370196462512652502591376999942715666806927742469596501371302746974532399036322469485123674993456001401051462700417813999458095867672673707838732173207366140474536473511180770690635548983204684101144822560094038326708668229350542158799146221107601219761882692819150476189483354931328087102249262771950327874165880783980384099654437374200883645099152548002548150184798301117498867017906764109786888920261062753332528153188117495014709491579294718683995975384426787930426184210774699207589185103709387309137837548116551761482280392673553147080238294021681609504471071542163294377028544535807584586426968416344919061774584886342307101052280700446049925158434755668370372380666404185041392789985435967953595172571988436976049106832099182959585612881696419324762332218647333000259351261632102738401782652533759485804333063711404311561035269014462068855849968108410587333393570922864298890755147462121186585366260204936522250245481237876423696175198584777456501740887469725046618837373941365628390012374320312148927085402259895134954240291352282332847760120629820838664484954654891255640934468309667208511971735221916281096417830729735646797962546238750434847207000342715465708422179272380479883412107948294740179225271495509254459349269345382870058321525440668077796683567757786192146667269576436163801921702520841405833492447835787803588619837147665252966970627951250417245977559114042146541010525578117741801961354807696337447349732783859515352558775313091105490339127290293403802870456019562699344064766899205326759070924406153848142002498042932201446296763635328123476060831167589580545179373045136383053299033892377780753069372448149111634228429954118901820755136213502861097809635883570341257103542452976686077093607404888008605041225963008953976536492231634810572827990708672259589086738277132554224416373711331361487751220155291717745105991466758688072359829129950801238516594507996433814065124061735698687418842308381700109363141310106667331755688271711730952142552207787933908730024125767604095408287414369310175426956430420887283251096421821394956936467466292534017212869764609613318731569621349262859158767375227539801981541841229911547859580225370819813566729722718689298927953428271831006863391573129909953449888706100528171358738983064684382898779113174930830506563631077827829578353162749774157425616306684423623043490226628916071598412363870627787163366134518178966970033219467772145922790577910959790020845035192754388209325947401149459731434580604804284044601790484493148254961065067009734482686097085549903347441214034125834928578183072545313209335350040717041659378161698698565451105269998163369164378303588299216105812757556782913772236957369701301083557146063248763005445474741588332625107898416540505147001625888171687969921173624449103193323449740439455166547654383813834442993754929442821921407407403753698262886218004430052774713771061053766156510278429722749448889271920222956853564052701314502505215160099862622598383528757925821099207440825673882231690170028297351825349379487819462466092126396498290519482414048718617515705176176505792588250105059514288642530159865175858065872223456643947613925209435932339185210173945515175343653977155875168158371351448068663900936637044872714154942183845231816480428122501507997071387127952912236318929760985524996319987516952137142900204709765738460249617092459392030718235260182955295430768765618396543070827960590779705031810496818531559572111362894427483475153551408825661130287077908414723097922457371611088228348206671845140094468775519848209595234965092639381986601695942215229813537860852790411167418928345659525403377559306308661867575490878766357970005090494058909567760256067176240387467371243010843246543228629302321632266404627021620613750263212283579889391227768395115598140131486539469453586678296361178251299769136105823269013597669774437148857898891355980331408245071030663201630143726967230961611895305901970614754172054219263522928145480882507254986446903837692182263822852980899334354108453841334328763128490066481452473348084341536230453926690114873065537316631226858080032451731393313764314977930728686629685428514349306069310140633866816785381892477914231421400149326528022649909014042826283648456713591363146874142995699055892291737843038869980271319233234066231721179711496476486308455216719135253907041870639374812106042224327362938620811289712450509357182127387038721150335499554392498745166651138656961317125897182209647242158435778718217309339248981084899705714582085498145396724303382305944892658717370067681926608704574388585215741730064404893899598267391937946471285047449440627844917788877201636617615047241073894968741633364867675351850884740339269626857363444721758334252490080300447932157039198505956653479173203408395496464110681838206005870157221061087527013411049359966728664056207988191028021267515824733779446284542850293972646681830674063172226870059379169837963424052838409906286090804059115185189010650611326279730175046986267395058318026340064936471443832135064951185351651800002170903492300054540216149284181087110933812212829203118796019923897045701269151413673286332038710096771747259008976927019564605012416532202107810064963800362242741346954509187723418136973494399226596783507260954502898095331365701165480552220010039334996542152594066607315685270227086721109336079004968361585397191431324898264529924719754382166441214902145006493762953911641898368180182097139452437168015899476203123710767440701025332991066273174389092456943767979000288025229348289065698796446940782870545178656978785487657805000737002560015170651102134813490100837075299656757583352811501925783704141209118892421314197561685213297502628051351103101061164890313877030858822052649350982506416326894253821855320939774721643317982931938992908049093270882732384878655791195231783695708219837823252302198204804897431684203543138983029959874594621435155831061400381260804918495432811933783644715876232813724291749162943980216708670243686167739290121363229802155584575496207993202596307075448730104255365245721793877415604490181814376557161563220545867070357409999674672312311649377910116375736319551204608566899797034188832146032692691785551500851433869157232803460519561893838247681197270015485018714250710878450509836935637111614831313540005247185711529715413139365157873990637105793912218339274658557561681806180452057138296816669486314606804213283734701054692356695125068392599767138900403324006547652973222831943410525155048411363957809656716126401490102151539878183443985267823475665395361441685279943968845112776269830174358121286573141321651291856784588464305352869757877252579523520077509934033641604965298325118535795541247232280225379828713130832861638370031827727183067265370865917309540104152036228124383266770568713906604900732649004534987245411220437678803072229751497965794458018327590340074845566836958867616831122564226408880211865604085991921858640791624563315102229999808366373622881021107604333577186485980320418663506261910437416477362207295307037059812650114314532675110720304058578217318438218261722456602204731069249956174540626656105880170583886413883615781100687194183264890383836869467640862698028252037507337482314679156599736784291616924833349125570401366461687151669065707870117949639785350401022660407803076026711642607584074489678267711955382792776780065912111307640779341455322193243746135791752242100954808874316097210478174697311336476013264730602694684637321969176423633796158616385666606719280346704738885040001662325519703975521831213767642660798551325554472289107100662492236136211222296856692811052702993729478017876765605045671884556419521232308628488596716719069875896073804231282942841168364294295332907913182173498182034578225796636703204136035350104351746570902834604785162647016088087982254388207504410537942449307159214335313016057028712322355899727873960639895600984635503128531499646625921165357914269124611382578310899063594332740082087523947545221546730631805578460614352588449964486024038209946370125342717737325505072667605038471083926636174008921199484302004440892616475101269541782046915187403834162140262277717412573409892956763033387490411339776320421414795728601760622804888223729786922863662648297629679875637544075665022838945245107335604845144996693594237521349032066180872023091076090180219826259183843114292465541818070466052026618796195707498049506189233319978213283663580305227132362159681592542670443277086409341929149864619962637047626308051514738943766659270732057700175940542743090872833002909141832823340000057529750073990385970358608333947321456122830639693992844693960802809613843992186150570521260334556035000597803015479929230380074421646120794136531490852840323051907764787912402915518348116605529540208025065202592206956344385111292823501492127336806049222458836479931525447971960760905434217308327248285467684756848093690666632070104331762999599042813282617853504105362971019092601612710501968475895333501572071284986560012754646670623121031607566559331448441750762682451690399322162077297479733387977895155735006962533825490357976790727096713405142013948981740141682152462892476007047223783901258284272829110193672274052596805000311952742985976221123510138480742496712598967055389732216210346297216530685494460171607692031510971618251370854198139747772271539525994412796020366784608695647220766213575235569262781976597965181699625384109534616580242002449256805045911176827893509075894053101185071263909423186838948559756491014241844006060003532131300341351199468611530644035640496572948388336616450007890834276081158561146774909485263662765614660394798573150851574565437038872385171661992601828503759694821028673961104267011696056408822972024837138730009776328419864892453131848136735721864039833376391831352456645107064404006377498088205838719305838017343455126325416830114515246046567688079785579270056895912777260248556830866055062785425283124815174198344989123077030523013079483270474347668329800463527194200852916113314533380216186632247939414936436990969133491682027701119775321366753201799898057775539360789995947542081682225342235402970745374268042997671973468143527508438868363399744351066788074369368629759559931421746866379750854769778147538619615655522936866273245289733652761379572659396193782250543883234241463554392539585369269096303548189851403122597414521192100522339878709840154477265364812145887100222246518619617291535877459201813868193335053767386701725729032070691073077108149694248787449992017805132082839533760516939639312438761292824860753693898495717053220888850022800998745067932475987645164084052865022800271893337579651620543297292221002196295429344319451807924211475220293002642943100564976112823936237344961382143620974312377659888366303059125033152975967137231721389941610852505466220813680016804061528889109134947910264406063724226499126015327320864582498530729304778042810818168122460288738587599903487561123775311780065980373651741030749877633321747096408383202852681681409364063515321162170063423920899855925895166256042924608328336559138590825343163280949853527232353265174603073721523220245948892741687023805956133435732646086788558512274198154175364863578493831790975810120276835018076983234151789935800376350240478825720599857285328776183941389630679582021759346808112258973573242246258739494486092290411772100022179943680707276529614387464786151942805168079347843320095132438749799759495745581740289360094920707883387670190250599573965333949134309673037878370163754965884263983672308156078436064583145038140324581782444320388305514713986937027161572029902204918875344000070159781802271685045063503238496773376389929187745104990138932955071886915018095541818542696800294312575768528518300249210663052320754914998977862978311328946221482689125415129135611974295845243512553813487918779365856898655920209434274904946008628781655055178420485375324856951824404262490695047352216741025288670772596545609766465716038620224478965773779513714802995696150953411871254031765598827880749308969476080147462823560023543349487110881506545923663035921193336061011303428516016503507685000806529287116351937894168685299323483002833722142738969166754095220109329209956568906410221800707133237222553845346601360290775715982310221644748814468745958011387329730339109008605405430700966214612395134733796254658270444455159755342848933640629174143316903380085214020368334435086231380830160569780606476789683958465037506969033964226182222098025445103147739578672860344880366914997849886466335371259086143495616870974199699490689251981696969286247106888931898762242077826955171758294055388145783306523284526260433093983124572498370949744186098173009139609058419741433167326748359986806380924386861873524728225221051055465533826088604156960431449366676697427594687744073481629415587786989452709879535930492393735724681629839559610298371639702523751770116962396401164510281522495501845195108119824571421918399006441418273011705220122452074198242331734974230099261857201469666402949270684140283437032236663338577359989996077681137890965402374714410073252155805452001451836083655567148843100759473324198788528377788987157954560506899906962075546512626579181813109500122432427806267817528162471690412163414952452953879462444192959060351278449645835692854459532273284067103882781318489830819939232160870858539140530104481286050926138450619719851744939383998070894177025641106499742230529243237211780996356439630491313477932863744366172279467074981071049681929258380921233664615142045034831626943893809450019596738441193859642769104944145017917819009699736698398359837605404279730519630404758583321592709276065610109611199375854352496628299630180490829326739160551143053318538466200100864645066080144054487349568913853352962197288763164988654292014819444220242564291891957034796548360973799241573180250854980114968671219548100067038085535159856856529817962173235712129583632480489045639318340678074696873113063444565451735805090280376045101711620358912561352094930397753270899076934685546310618646542208897791437598121258329393810775559193290534557824801789176874091694603256892981803667534353802823735608660824848134420816337721618206407303021664210192260238405334298951819024185715871704605113049690013642694388616125119866559144697568091508519293278644627817789586524874408153585493218760647260678055565019475847490645484612937018891216165438555719724764303711379354390647988637297052820669049982811248973837686719953561839846213403022036834943402554614368662827669007350089092197441449576125583666281638638283539987125903692884119819411160903991994520034896192930252701887148557887929724061336596637882733398832130876407655929834662090227591830772069296178210350682787497141880008265910714583513906121504361814184616293586454573087103135316719517641466914950917264074803239559177202646020342533247751737608651736752960124739090648901600216202772196991015201314525966767624316475830889757268523826301547743656788716756962528575935376167489587298903653484177184759131900164568439256770257178171783476583966957144754113094978372974891582802575257540214421433129715791363247734656974082402112284517458035816854248718588296810684210066808003821173616267249550383033282268225598237804729451842414103658041758207895700822444642845871785474525319016713342879745945220165539270775894365435517361610371441905377224521973936783814570112314738914945008781603592062770537857997092597654905634234893965755038018589835984073054975138744933346727043692400204476714818277399825400500019812977575286070394524907336353130365134696009628266478068306307335441965029546914202964045791285180498474666898253408401851316251974069538090250471031798613911424595940940239938881677921920506836462380548941733708039459676787953976148268568118420147374577449426025340788638912677947437626756395080136721387317550606603866488799699880020910871856392054971533668306582484764659422074285758201583630165084927191914228493481804458958188528459473866676035785026862461136001334804412296387308436492518550885336044652161296232925951948607557872184912640619684121075248515911562910593047576258928636148543508717014081660647297974488978599372113739481352137252034826698341559613770401955319158416792090227450667289561525014801715533319540335487770217932600337183381436703307845420016034755857187871460766379062740736523727879796409410988827337954201837098800591609227502127967965546108808470975303180734669539008952119430394123684616894313238582049823872419379489303076547291349880260563360568888535066976928228774998104377652579270794446656417214473217141882539864310509135054265112223335621037077428169533927434572117087010522378633421783270912970462414480892045962811535190580686875259868315321777017367879341592761072284238444002427536899199362549470892057288126346102738892194232598992865546632271623519011888104539538542215474856141595641348966707781975232507721226722515743453493117637409066500101257401729070647210418280500330197817115247043016664742544476849515841586787343242159861376503864245217887333383562364617986306656587831961025852903966465806975423439987752856662035442577764491736040072901741202310607843379571974199715424293552966349511434841225312263976759934060626663142384930254166718189484786313007754695099960945805205412543139419923328893552631101319388655263899271615348094000730305618336645047707249489455587406855428706248561934991855336690378672647589114292867399237609584965007175833625090260641060745430469439662188769978599336501139258918588014165194341748517741517190695411586373705471549746515568350956876468961354305606780158724904064414640500189523490855955754471202995796612905697675304980435801384070500211269438967893855050581992505164339074460231768455227505856313752390311279163855139561170648109685986669852051490414299316143789259973070500845369146729118991702546049815972831851258646370888607009640303817625802675040730267085062340931143402039599118282010332194025327860504329783422199479967978137110563994007880635460544009399096189121345820361801239051114692554218001655099467099624443443896949359607442847943343041708340713716553981317576892506718038716109287522455441134534547157979991558124060242917183628769851274662118479217619895212737610223972198296492310845047448964735030115987811338905296348962246848881825992442381515249381196257621596157060073611665552697324671965628724023867761183351923839048598148638356410779526969229951009707463600486464626441330701324884757424483473904762652324864016303702822690278908061629711732601750053676840564937921189370556197349131233475875209371592040105987605666833353971892489037899479509773638965295144140370543398084583345463398199315978490096221403296064054442756441249918675773115037138963856138764067661619268478133840227302993290191321293939290649831985232794021315371518698720427246040337991154765069397916307430326741279290169593244794141011440974046751442693097367849784282440264907987597580112564314259731714286342050994365666502513859103071289923175667105490059061189387503821530302352455069453690003496227182964342107915421860359561196868998421836732215545371401012785502015145651066157421671872010535257365664037046857068944943616669690535848544469633090057478493944510139747346489273119053250143446270014597605803947617540856951650459769466726743613904682918156043151796924021701371567203461224254407661618463569684779254885299785910554993578797858309790620021473727755880734703207753829412160455357439724854246794255480350063705000814787700191182168979405297691438572322300111212659244987184201901422867364490202587396237546750641790004671381038117922222766296897325405134334986477134360663057756735332329936396409417112033408731972253480214411622389987299469693442714551594712826773067999287042933070574459699224371622871171507570038315949940039141056163646146042933582951124615167742040822461816996862304126771006549998956813833159765051247833477160660369458994074874150121021795391959450034572593345365380135719872965482211046191573763344999666837903233938220214877598325993225591723770940869928670421102155265075183428082207668572806427610853158921402907244794471185972871786865619605158045198047157169829529046665521491452630326009872341589061561049438282022859360070535659551774006139268485420298195874085026043615084076853979307726150031212633199007366874205127782010023591963591833065807360449752789708812319457181837206441422236938622516435191415760822036694656980883832659858068737068434050790526470816093305048358990268194402400259136279486598890786123152170644571554056059217762879029816650443405942799130587843500722356977761326362186230415779404598529859551196648947933519802191058072509696881084798110577881215567128242463545061197125433798533656712150977448748033345696206288599008712189421770501462693343478297005337118618007505891049079230044431775243248681112242159883926315789886790764595813743718070812841948741218260789338377224624887952427781782646135656983441349773705006721596987926743898978158390936185295696651760895306899273195221960492519472767075270353140777457854847456083031578286479431169981583786121297069189500456149082730479290619650170039625664703973476496164375413870893393215495189257226907432180713163515344366779478362852049580783914067546216966123876517649904399351397806415478635715597584738647288670019111405084823186580284356457027027968227834476042938839595794745252020175442446906168203693859584779650171843789212083819266436705332793538031116234000574880142562449173616587659087187981533571671970643000395680623202023601633241672304133169963374568704743396330367822493480885885521961878369504298536436622053603703859969289610399325518945310486220180568884632013010112349506700668328571522798000681647873159494780328376423025485313068451545546347142721404704966914999766829639006130702654754103115021794727183047150828963180102105475005572307053238034158411144981824725434116862848499974969981515989870434264523981243803568255979934093823515821048707642451104247019744312655113315228051496244130656330320117008827129467640768915198985679571241273810400628534416852663703798499524117083015748863986016794408410080323276173693328612062245460592998341439201900662519256021829856841195909865345044901350920007644591341279260804971363960671733597443381616619947569521712323243031088717150277992944821063103007931907647625746434163341440678758112926298948228108274478003148528205160799821457352663939668223488797840124124965447009597282356764860688610829604876364000050248567171754680256373967476626892478860537915821151267286915284445590870737762698579040749137562447954762101532665128066138937769755056555222400603801817755066099458987093046097185570563248250036848859008881475739141896082962165003028784435288966645377518310727106583019659402575915039833774364448282818899601758958800429245945722087639847384301332479143287882470361650268643837739498649499126270705384193687496590836202029184715905583823384708287622122134218525649588237631293829526841322216066531851029991536017408877781565304262445737776327049981196439418670596831327381283683737525153157018788109295190902658249440182134287702107086755975442150362692720654338768886492111941414256369756548596717815380769793724518992135283622377968281318384618298524507996717547854308846282610104514666078338160149318429130294344598371692340891166425539164604522873213209129354706099808597461054661531584955569830198593805708010260172878561720838925983997788227573992319282050910853256293691085841203232881654129945999518957842093887397033275655510445910271968000799488427342631228349349722116919082787860698364149146061195778352388384863813177232464520508057397373260738643857864510261726423079882123805811843313822322603668444232162310442701123426436684999325888138860060583925065441845543471010447443899772198101497571017819909168429935042025113796607320794100563121143592733632426179962983931661780211737726443150236151644138278476310744713211379073877582130122490611544961032739486762913247750435472700165980475405240853126092840237698702420089213570466491888708727569620919982674749026572403505032736270273381690406092656544187955007352637609613819730459017435055064965608388780538419338692975038007991352086604325288372468774069000429672175514620614035042989414674020305877775849606240612732937951901920431109839956039124283784522089373434300251699376844977197715654037101704825743061553107883474646270695798593793782456485883560868210763823900961506050974488451841942512819366453321557051644797096745165147104824611747596736552230342983211835398988846387171962046097075142488567167878590515318722453212364678069509608366558066018305994195345122065967110179435094301361509727106530225623015063501680652863198052912038741608709986211611303288722714248869018110170726011772537214686680873210307119027860673669493914021902044446965173179941656546480354812476002968173602525037219113717572532320870109616318370067899150732397970753040679091080782026262317595532411666082984035330709419045465028425096344333012114699084695276004704988849416956891736341895479279864012501230809657906941445876078102173308830666363958778598866573062477334411767134566002688753463817904477824113560045399289490811722909759688420938877168965251419513716980201471650821230521353366793941348215687187017184781014610842219958524089035176265971178518399157366716516965495471594262271110287970290126572960513369647855820044485795149829412272046059677984134475601550651455831628408246389614151157508767800000447725339410491591658820818011861896319052052944098699347342330561495999256371220855379116441067659531087491309567434452865962403948963724385688930622352637447510222882606023511756828845725350148626860457497762852382938323344588197641958537081667218164863019014231662544394674995235474120453753141001787092840586052165281546299816576492270116181914774747419760068894193852118685139554248998290565357734115911751855335672967922042277829433768145903704434363654207282197478001089196599376868959052421336101393737155612701934239576902292394385688441885872175615578970503843896827488268590811891800912495785941687165233733891210993142039973891422766253730176494014682854469756563659020063648449057348346632646797357801327993664463324816775068761675507457794220009795275527081764272019004238585900025866024106031713826880803734587172316663701860959703935953805334910012014923763727108459549051377751694771504906997075513853815976923791631506629532083344687732752703349039287915311382073883318425932237999957569401761199726626416094794963990454180979702458265632343944266722477960045326216946593575680226967128802883850875025990761094482684162046549718308491241435516055544883716695984918314688677243531434176912430443699308965124272813007105819933344387664310858194184066771928432421388069062716027383600397994628486802499687338795230053614893176122179464094120488976097310123585811086017478694300190204078376242052081816720954796406313979572067470429643201237191416886398181668508815847271963555760366694917925941698655766419576323982742894896578523017707217583650129832246541409595070705833769014214494816880700391695906118004016525871844098028642520484199506256822869401415087914045859455530158709815211571037819412130465412527150262279156196349007700149022547193775184912629999625388359275501336242728645406782249291156830519047923254664786979947253498558439012318346486233299445740402967601368885387267734274891740225159727231922522678923766333535758445215487076407192898260219994562682166433091507386867897384217747955875446292273169525671958717730439989821621560811966617836246464403333795151338858637328556020089926070050153064803430998880260271254989833143066866266745821938701095619406547823971708361641461479787769675176493092186656637118365167591283732311823831745152347292765080732398294620702476404758990235391952957244070318616715061979581004719330743434857254330864962486927449407591127424238763611992326459144217207581481079012709512710498715755512275999436706027530582177769336717094564895719364268531773528196610941846005634866699662020130932601498513433030868164584802925744891928828567253972459787623366346354952062790841384359510698374856351383426153501713668267696845379532301017936025374152813145238054753411786106357681345121459188862227442884104504312221198328631450781969001113913544899719678303210800596883766416785250617548035080233676132953387420971765445490548126378830406358861157125129435338475695958288198654615699319458492867051274869101525102218947615322888193263529693695374927387381443413064869631165880483512279854465122747781928463001654631795253084052600734820221072434375481681573543725757050923558870541318707015760095544590143245482507358049022030976222526102906667158870913004845772859677552766097045645860394764737856372190972598978031512169670346379704335421896463819682438086457478425041899377916172515573601079526155202192457265466528022687785680535214159065064463796596665996945751347805752419895152892298812185697297093482522715142979353198196784863646960342052885415734862246944018529867804069841196121502649132610794021131039207870930516284055081609547633970852223444566904732216839238020822567511413581407586295857079801230142998630204517506448797448245625057636955839628989252005184745484408967602890004356256262765373166173176742706329378984281252597451070227761942379886088575694962949186929194196967365594665719625346657606579674618380561052893475453166903152151561377156875202666049031544182785301233334498893363177008001795807256049110478752795453894480699769843071320471927720527599355301847941715842664323021817709785544002569660801958278828036083291774901031810069882164350647023660855730405155779957186339541588707043295008723065885174900774949420333478826175539799596614856917703085909509161728422675865400774516443789590403737676675909122276923585719028970903483739475160823672506838551368407988300646840391663270505429940382884288463628901061764810010692371079428268517916831515939999871208855846547741636730351303281496562454125437079466984683366688122959971045809272254292843887677128180054669923151868514403980879177531345645292193308423687563498294322312210267505983551804065065224128755471900308673274391821459841910439027690104312508897392180830326343671850717292266485873674271806205662136522505978738491551873857915777842039443110211678293642166457993331319455030950299204904413890058466944717728050447502024405209316268381337423138745637683924234966611494874735229659464822963046023887177142157092807260655824021876139401984926074234752996445910046715562861551797952334616818083494497201059054666332014027309229111295862515829089034447906446426839405217359077073934270071442772223915916400367219278905564265188822809727419720685068099367057586493611533328138784216317194953608794806440391768530219035995900019437894357470465343609784266468898152787527926917317203005687917569031663277706479109351811987345883843350067107575619611901448881677153779103326437489448007091207287763014820229966895922818953015933301660893957527765411193347676613652467624750197581550818707897271041215689058791002694311930881055187117476214500720952726209527179544901364770153573852988680679273387897945209528032169820912278711261179674337604621632135604523804397852887564113880554137195983440220560191156294885615584411324595850959115418301380156516462667800627038176818531945403187636985086964702265661984760958118460017859294379551631999316107006364015584093938922326372664952091008971783635005315221686736053423533205020578544585855368768425689791179480174194699511657275791187238927854187406510127877864072239411770416773387260152366124271489465175179096293110754234536131167649494434573244155194716975834095819978911280790787932103138231191044610226147074539026686924476834255914417833717363162984670516768972183981957380872461143823449247512034747157489522790595376612475038006513074648108175260934674888916221706483442172169732684889596127819949798653668418513517008867070187360871819888210783790803955221419349179473269869418706263679513898138100242522235096703646280938545752969069201762578050740796602501480540285974490809057742223025829982721847987956368312906977241912263165452860173367846678952621184370608879683523677993507685177013556034247204861369059347460330900932600756466333591455351338357872671614299121032046099151929892437272763855546473432709882504748012685674431753550925803498328622828944598327655262412931412564800431019318381713540027388170738276172480987984111979879614087749743912018165877421971330006809415662208598024827261475555108231885765684973587969473203285628862589457805505267756759713028322405527828497075245622480433191756346249156721036391279375693680645038368287150826784414192573247298730320837277223296341612121573395864829500803655402069603489395932978408730003112388484905504350908510358304498236074259914601485274814141540839923000194300674068068411689577103124836000021665696430998960535045439531558429975020036779938503956127173561524793202683926312521251170295697618310088838189385392027572808021639907882744173194841107165387993697695134251770090282230896926322943313083661557101123544784736425090941288124318957823731877176664990500418227648336523130521411376123657008967776726603484603923692941954315235569339180423090072266373746661187753152231870971051224799193015214114875571071731830326238876638452066833893058003766070944319897853564328997836591104503868516732404035841220865984181249151658786696526249204996458895779330093699000267693392298714966082282523665803229317203980687361772757310061060703080133938231541433639875596445929745885156401027797299976657653351171428278100047551969168277994451236165583709137611379521469860083246459300586997773398052180615803682647371991543413240117391411530836207122383652939752553588990199630069538323772817877012509678815352749602060758803117705498399219360266835763891729045373130955506952089639376769097867872092156332517637660722832510878680163211099103784645126316057433210305707251785432018300941221928938471706326226277082490386199926542827828894717559491366645765048445897617873463759792238493409760342403243653288482041568471998675189317023330766520686299370229874963405692629526875592273736902096902257472978961248337567237123833157547925691812556471698964039900218882199005708589367744024256216498414424401959673992604215355590615885798065997240460850620361022539127133531359915795279315677834771130277291266431107933046428229842179275037973279197732002013137731071589960689979849983334511187520675505790666880797305402420475953822079581518612530959443087563771843141461849639453689008509691471856392118441980678701326075348059364514430308032901702685844700776604969049679914566540238264484978152947639798372820860248070213327776900867559717374925950370151282909305051835830790512861354299705526553674250573347066589736173957707994267200693835521633622553059407606729914239966216788025182611223725344486042393629584610134054921410712738697777201707614536476813773927021002673888441625834252635063913323316784001836175125753676132375136923235415153152570840631473430813363841080188870232108331500615473239159060865662219854995361990149589553796216312417449651621885174474910484029866562766022428668038530806531432741469886576995180479323984268829338579748583539944605482708755897758908000076643827360435730265141495902205195769593604085799843465844783338273036870784633654543086984779749277900457634796672473426003734960364211910004116953723647936066412066240737474835846578941069222546412867566857234290289317906505409421705922745304014935197982360662646399547760515534545076470539624337083545030678565644115958097019312139909846885264050996801177214643992167916427483764027591265701954826207714179816962464464024620845696194294294713456457570227754515141500333560167873530900025099383274544187212947459362346758638305977522059121702844167112940638738935018537800306729914818807637922259054452864510532533916864292577941314196342152017344166491215087420350441756828758494425494005089351045328829630501912008301927108923801528201956938198749416437170197536010317889821082498416279916383893540105494765818153421384372116732711114432872759552031451533865078794803001528082328665112708789340976005336792503619124216035639681294289823312869990370440845357458688261959471937986974820559312794776620188847342701508765247028885762818696498802116681203413466973662637084217609734439212917874632798439411149141560080462032869804205852391340749143602724376422337017277542073682170944056554106873400067399045257394082543060713824361704866175263810421393633890056972591532614962009908890897725342525310920678325874576651847004896809215501643587796949607062979292894682163617300919084963946915722125365535777257981215229185489343522589947150395624077722669464492220088963749909205869041664733891645309639549047602960590851529470472953309879461334973160734305106257789846911692212005330918087924030932086804332104857653219355151858086822024490921908026055740393790565958144200518570009448502794336258035615118122396085217199588733471228491944406018497810325038362443801792771778506520625066881908869088442475800729119556239052708675465993000400211170155346699333271678050691032833807075549863798128549592858080171497715619422571124690061556406859072670923108812527562054151420040910866763530110927234704748253358890347807201691517537511219290966938168394319643467389177377375799953534667924292891639811293355179185215343655357525199515163442406267064704721461218013025792248606213311683249201726611384890872657934092141632580946941803758944825423323287316136376150448657838161405239407369601423439663396746319493260352282060661550496935456586404738925239767174012929774679490675443552782122584842692601793335526308442454634939950208013728225341249082361387409229717582015592689691245882844886302383232299407137527936167795367627636880519575452889987192595748965966403427031673440290873073816944525226754440413065775585916719782252625915494928030279354370037807446490492641524739369417338443764240061921276245975512219909674205971370059237632332816656274614145556599984521074063166032620893994495094826143064720329979293742234567447375486137190873274756362911254452625436951997362969454674763513483533722365394640327129909492404425536900353110580923176810874064410953078450700671350942153619967291598459418025119054985653080065207783197884465590502923395912398682537310638751018605188733056025443993129107729394252485380992399476250323977165247087328181848397221658091340439274106860332816653471085804548371986508113300694054474493247786019198445339909423616113425882976215230384555146742682746303323705666058339446228109339135524983790262034527590928908249504306076494670794401868971326509613450428635303675205334572711215358100972950818260686102647362571250802820169444972568831638959976002158729695279195456408919124899018771964982082434205578386100971869101472605829486574453642490935744398667720244778497418374430281661065378813287517866302454061661519035410572220371785061717935209153888307368598491039632302305974720721905951858843538606878944865961620489990701405172951478411487685494177253734368175802247383704773957844497383740268653515472497906963610426270093919143043584209903396511031902307596590257989061855442032813227721432297776500139864307793710433838716897453851057053475701165227651773425661205539736637929129468376201865742326971455714934053308877213489541014334062289364912294574375897302296832140743240484087240428862901832792976137054930923716496459139035017341876054698649711769417135481555316913695233221566061822705960119023438892504616365752836949147018742056224018785992408673405169111895616943202929082100468321868340190114165268571595804875925093908954842940647889344505672905127571060100310733451736762508398967567480100690915406982560676007407663975218804211769690590694812579187531673435080401187802910157566253765479687001682647054103416882301397900927414528604755328190118779378138027593367369337117624884606813744780502953529502090487550369363171502624930831174488323064758540334008670183607252600172686595091143793947329836264641523466654526464242229689122918964423366212065046854677229150236580511219399885566815611325310066313112999925942495170468275103845621112321876457437034838113502485560844215879326950371132869358907584979534778093146814057876051908684579128252502335286568295036067898833829839054691961064244625959498448479238835981431798146890749467323495441149301028115647222286255615072379285363439444304542882277426872528758152954639281293672649865639668578929002164125851870447812133670886515860633426804994143049993363805734851699386977368175240817475621478599863679382476250588130049910903377459983979064102997436205826104923751279173815135025225956976325316435968057895406711730930879141813037487407575831335532900776495451856148383432624293677645963480874395713143289210853950997453466098184608861861557388043295402573456331498133435723636946491529928602199899134507390079977615952273710414349437804752742400083431786973918138857998862481848971482739525152102204658729986472206982514373148499788638955914170871909338282560518382070695783821149073258921204959559314169937131359385959117387101744578541858171674114105070328733756106080210696477558938399605807561720560639884886893297405273226802312274436411112391712295709527789323263042490054754825181278819951208333075662917476171388520526182760968858595531284673568934002001947504527066193724332339328796080206136693716636958391924762281033116650761959943257994210424446591688733143213953282523805582158302809372099506807049042015614206830890671959627007653750678289612499549134448142127730039439835230571957488520802206781855670307149533327970860232428209063249650868642355806610393491662034934564466195629160462522251637870928264631190334256531410044733383417920651334571322471125396605806068534887915992802695973566983260212232528102956389394562271656864469178260472732622097667877789198328215163525593474070269545175316491664502947898390521549669477909524563509717917316833767264120279322949412927151806352574101233781880518422500553962901864956538783745031607823818873667483614173510337185986906178603877565759727525106695417823033878335853008386445801063630314987584941772277727493083218763766234649280867827751726679479753491836397621309290024889352986284895225149168195988837057284004391366281520898443720798601067380609677809023654704916601418254488754086532091570979428130331714552138160841005978580897092928551899763043852126842458636553536117389204865339424124274710799182991423827690108082411981268447406989374578370928704253287262687561361143265884928672134799840607198738530600370425473620832968871799678462246982653578387997713314858914311507343895640703877148004184252255871929748257390560107492708384955419409738677875502403413439544394979619078280339528212909313542025108701588326510580028546791858136863033160382217108970202982383290241381280399570712688169157852186408110398860474520920595969691391232263720741377526875390449226281388724889929871734227592524833011156168191902994190684556031973568717361105404326972428346881730140954475676859567575082342688495841966074224609395696999656334026912925917521282778932587282566124742013889566225017332108218139000983888861533524352571587402736694374069489861004250533044606601878399935705418073919072006329905491742176011529049258024332905347079829478126143172066469264845775833292388194455890461028808928112040943672226792272482852975363057389498635686262224929721573820078858823826939378002716606091948237191980585448069323676420963844008412074002380095984954498540559403689654307527197416114638707950510524529226319563852110125473391515673407527905842548262274272918547141389760142195039971756800926961010335163426300676434133757134988566725007770024143585196274033581829203052296830442275745393340095656057669920066105062455938402639219266568491144867714936414692038713367110455398037957911121488109573419199415697616926247197377968285620923920320429996658232969119730095644390743090112181928532215373224085988384161472012434669318947614643559276782707871772027988290910240642943324671658041893063593541871063934299089547583039223937756685864150329830200173989972565258710022615859027929328867987846667568475597129017284028715374253416146642838034262796051715359662694509272674271329090950756615368322436124613050919993770339550931505246417649703463972090736725060103491476668606470675684484068411257006915226775510783548866638570102302737594689643736876276564723761619664961593749654007314249859233911514520494911172681750438926190859617163952765392238093727955006863355568513850156180755700008604656119599897932415980588034305009656165731227672132787510064304102723174082071978254325305355351008417453794409606008903285331007768408918852307269006752817069487457943256088135750996903713691558062743960303613532034285312273616663354667447820209993241662288575613114159687708593262616155201993064614825386518436346269458636483038901053102289019871716498366879469427195764903840439811663497944053431163945310651159035422958873504256146248220636325920082373015024537316254207951956831010075687736754969302311467258969055337759448930271437001191894357495275557327141790884430432285711879862216924886468971476190764718007673670256394587499702021080904955532765668025024157691649531378388959801256043960753846540390409614311368921998614630758555350547009257403789709531523799921901421867597565513506661492611249154082380230749911581698598443473696473138519881576409877510572470382520233566513717218212835769437290425899351047349157110491125533175192000258845819585917041945456046577470324869389839207392388830883334582133825270797873419173837085702895527548883646870962324321224285652283430469681804394823386663945310250263439092613480029111204766059556872831361424563031233879319182931507088409553914018695930834332581842961182157226505172803753884317987633974547681389684309461076001126184687530984483727425842865910980039818445568276927796049073235511449806085943622771467898547633877145620198118805735314519290715117233348061045445093390874526373586369243886689822145995374538211979595603318980231493021056448071839767740678031161891841171588519128197373444232182909937810660215842009890079626184957131931444997318458005056676930380785499313064329439599549731798595559236039456606296212679014213525384026201058739302586466621703341382043003103337277124487049661199096139741281458277268470938532119575424333208601530697373733449449739488725446606064294116500386046350505315947995583931649117367777626938481684552188309579624211564284180463757450258602370965566793038586355918646496737781128762540753777615180473219521610251563819977460459359241198674004821856660901238650206093983090703970831945036459790231509817167070928739210350019144549110451275966306239456772674070088275298421958116130780009884600182243397269816111468648566794412882321384083538493376091413598590766409992850183542280200971242575767302742043025614364712609751524468792327241525906475335267252444115254001849548911598189918493711663336836954472278244464349127942917325310882871119275822664251479245773882026538251124471878780185540223470865125988561878208307278112728746732462363869312491158818255708251039903724324641639766062620175705322072455258921551549836648397903199104149620091025159275688064716333990521351971335148592715940388048220902442328374428978569307415088196525718275754669183379707822513070551650632661813634000827095861309093473787349292240309605711096606020196316999436058021077132340391275597502768096894383803800065189635518560001735341848480435461537231169659757884204800599475764311717560148267644172952895070039172851975833517037553393071732989432725202603559412281917644804821006790771700396476261332479772506709695227880905994870580662878812282571235877417348710631022774816931083700967507205788041516161637651417467228530296338370823525563800167982643889872629927108560131212489243614143778742694687626928685003660066059774344625112175772372169691562792682862792003349821626031641062969952599532348395424535346352890929586713525096453222614110924667832319351614212989534218462640578492691329662076736855984138862052559869238997907260962527712547749682480236234656904556305559549748921450785270438312953666438450473672851009193215964093433121960521514518363731259189314680787294637855496461321959566844214956848745977640523113251733156659584587733266607475606926564614327088420434841287544368552053647523051153922643808659623236618584391954023833307663404963459972950882727117997042654397619770284850305355073139949904502094472884532497581118457892256024858424273413460299679058583287776162816518827069780433476701493434919762644243500930242958890666972725225429877424118333914522731214622666109583921786364903076211418916518221981863552568627425975010235432228026268659599003086527853111102076200933796979428620869158326486355545372394959587537652841317237697781818538007558253551820920332326587490967646004988155396286569630018883061630470364866206708496318398875801168414649068105605437866729169984024757248289136705247174409522628272381899834932365742140962428733403301965964309927715090684154453900480378764402454451715310835160530058571899396950197337499077714806700127872303498874343049457315529218771506566713756912340563404407715479010712857904152687406219516712621567630760863196855674924724617731132556272084193015347625232344563673262976894927275392025745951041790078963648777958841680624807200486136974513760879971102411162832118052153801802822578685092487560377125727428837969395571341901511705090125436491098090556687499946612352890383970566129019750420460337574342457297160936244585886545926633378456572870312602561115453414201894801186934052961454601563052509375833348556719927095529803631120504708295826428980860791691311291124791243644067527624378601178442969321696914074827642654797105414409170806384631888503646627327972066413473879163829313405684295407736845726906595195922487399590647568573918452696570400059373237269270128954534203540018118648276695682715120508362054437918635365402362950659464308153546863564379855833910794610110671715952994353801662856627485934499389874217210587268879902513200033065677681962867881017785138426519300554711793493083172389822954256240433759520006759633189525375126405025133339773626053584197673844163705516477524856010684735870583772538933325870547093109359116370641088309840662625785540666424750421367922120117306376582090692221734226774611909065230419076979999883320328854805024377998554230419631694000241834865400646358135464408977315055400809314824456212762423937566884283685291142171497508367755881455492072949820269683324015939525178481917403359760718029853990015443971429945906667422698934313334140224360748057803460527442870642770959351215373403878150174894403074006117642376249188177103111139896902779103728583353142773719773624250070057086211803149763266007239789016642198387686053985230095502596781799177660880056123733323196319594058338808210895746515484217999568665987761609877794705877360128907484692320848153005599933281729482482903057180202767029115511760001089153305704070399902933040498028520645147616026054161202879449554907809191866047301983212623841926809744785861194288085749988488268619205277765053651053127623277283355912884456037088374890790105790278709904589769625975592536819465087480839860274290636195008930766900344458270297072025862605551742877181767435281509271208929098660349633161545026394998490134041374490680029002124357473194794797885006949570159948883998375175068163663710725663811777839275950963096779634350355365819412457558030894468093289096072936693754933805302189187229497233222809511675591176674355109381188344055111937870862119470350249702027656300725606355861909785849607014438072142960856130545649652086237129972329153273122100292209945382483125374817621839921684871223881476047656755657572580476479065281106967040843216429836554128526164210578823133744654052876635248609375001393881951824698778405170468790294074468674432873606523644794367005546395545992757192123865842675934879323014206540150343086954736905996576468902780723563986511919481770974753368365471818627509582192610939324703833564283586310143251969554936392499103367766033392041197626207563319420882660936750074940977642194043291721372237721248702116467586304287477537959666550882366984042435379193756247316539315090669962588022698078481766030455891895172727490787931183560649552767757265102587365378355837107903710996672113970857745448427703282087810131941652578541687399177450333485435611700372720094474538646435264015448136046002680612890198253719443726002620734575594722731641561129103071073771489055307930195884160481423305622089071581173423154932818289051831211596118555922196568277906732600358765640834440425966767131700800693802023816175745103700658084558554567549622199249666373665573238596485253547985147016732105853068693986636822572847765982187078268459101886620227830977958050474559669902031657827426800168001584718440589363592333120508926412384943478969549802683151201919534680135670187087027393357770314126087198700762260411855648729712567198183109668577762936563033987858738697179089774227714380725383696672504913571468512726308064746817280906545898613756332115376744957825596348760813312667490858624320103043692201021645076062821261908198515160294731890274253987854532138099936756217322053377665519975158870560475928469167316101071375596614709555278050869684948389393674932356165818316023136784139264679525849990595569026813669220916452505388061582087158674360910559980393450941285992783018123096597758483205128450590330245683212827200467040660813384539991064065442606348474148075849600185537108328973273789795745328752572782487558438083750381355670786348819015000483499823718765531417953305376769122423595254503580797925078390662122426881928326972191314617729701811622438723196049046528576354172272724592793366146811053214594864298699332942413349269682255368147910156415779875333247068333470638162388817986555273738032120740979877135505095224750162208237583794642046307047677163541395928529333447536083825721086670048109124195988924667211816233630223883166924430882961974266574084150028906823198543671864629810724412509789790426315895351185328462100715428776944504429104845727384450839324017886050711658207557251989641905397092709650050181958352466740909799806880715390422918108123068364114227754716948269233499104130612353677282903903690704685412880249060601769198718333388224151499192888114848667070579671452093599321517057046605027661813300852383641367699055876633471621375671937809768707501296620216034477683621777398253439137500852414245845141627640581016341007169389053286462199198976124800118078322508258340991672227964913836253312530170296450689748692612707732338454757991782372753943799947378031562499768529583414784672319461873265593159606639610341616129027166870836960272873545501824542213578720575543929400385233670910817327525545271245534626380488882119908404316377250653091379871243461215290219649281874158928301131000591884373427138923189633185985147637410424035991975484992846728529596381225791084148201639027076902149541958567055552601389383911185113116927055183620040000576923241061660751844206075833091608336489770077833121197409180594268667991358120496630091777978428054844709242033706544170375419848357394523738006777960076843208167063012064097321224410246793375148830282573247951595852667491003717478653309301272674293028516753946326771390710510060946564529277230978252584741550592524269688650417206307342776238982659688035340693759993911617348340015553542591244417455663382878406577640428100760287690516187208030035530574415135527416680176791931307919485258787352591784145325186039334058678024373733288600437539391379028986109958273713261697901000309089767223413375540854296644152940350923395153563454652127067991576481335610805732930717971327219150650243615287846292257184899204164293951058595355880852548722807764566704231097332188893539491707810136466718971468162733255517812528893347601529939746862422735060233823159900104870227816254291248915246391538191664292938391915132638144569007349773376762235541233256096146432699477905157558194860312006786759608093839001799797070113464032268201425481852510959087988583501964774930960023554281739577628991561847752016723360514972328111928081199897675669913956631961594317482681926587991292104341686108318378114936593836182548058194506353625930428694515735393962674047503995265394116162826750884117591289708063880157132119814616442115921652547592091581439738659160622756328595561405081358077485391335221701949614512750848202380325231107179962543848293714843055688375841340259363405266432540095338078356900285649756439871441304861944000886417321411166972460688860978828552221342103938373637257944875844303390665986031404409903937817627401568610033702233200080053914716567278885549873485273157565090209337438365541918719062195073334071818013713849575752291961711500129463140121248565327079584446656443976309263442331040601814601756835387789447448796860148813975064306214438467392015684971051507684062458907830329857679488490825576369326847830268966151800094227835683466002685892542415631042252966406843367087403181010050383806753599169487131680421950143143418385328859999702461269118212963551693572995894727252121807088863614691263169485737139186420434276563363959981662256504150398427406916044423963178256135063102635518199262003164399389312655715525940938972638631783182199709668190158036803191225996923677475696703371706293711245971212732743795755062815075996024878302208984530737256567097939795745074627041248783597431090690825285681748319034346017344851990414689830344436558090837374096560998900894898710772907482287915177671775530961205905062024893328330218071371507372638747873587614191719201182910578497443354861294292402742358473915072915658564624339170250292432086415369378830043189521911545560440243134095413856091079492429742109431806592575446427556677334622037023511507805888331204795792216128572946081353771882478472272626864860515106637538791888904428304767502385322738918902236809826375795695363756078605631397420825752622611152295730653506832269604044928905019207861320435144796481657933919623092613279083261881815310021076871812232283241755442323912662496146609969002763863003093148446673648067047107895726396199145005701620905131659313004432328856339732017619220871608831513999391001304594535960352561238644270427904283145166181034745086343865985026118214028622888259408866917656752610766641123984927742653514890194480301395397295140985293141732427883517509570144634872540858390633100042613414777731811038223641997256270163170577523006240316976282920307095278161210950442545163898135380791577221080262791524663532419721981923349251697301256045193659674741177519535928881313859699298864495023690525248132488714837075306081269197333372793979275923037670410908551982333915829985555912004206306829887514822849094289980468128161231752151496848077165223741780653217566967713398384397839404306429265664504043700463276514878980051377469230919657420363603264965509716632001816810093284918514238550932629278350705746253771285770542760441707286755700258787574978647130529563560307339639467117395334923500133354685767523295896195626704486949158750181908145776632314657166360321583117605907060777442345590802088269010460369269497965369651471639022603766055193368913846077544635116742529801412227300744528192961789811871492893152138069091333164535406202220434244224945285325596151671860700109968487613429443599177927222384324811512093412124369868774580974842063236860615819375929777702994544536767426022660158891048169084457334914448986367738794263219365507218902741459288829581015675994777945864582980106175759030181732132328200047212269870415516124658486071529286820404584181525564635375298464376816137407744634610445381526264025635054195820030965577996473663216631000536000957502359888206100695167141893247304769274749440108905968679515020192531039298308978905105625479086903102086489123592746409743966347085452220662847187566331970173251053951637879562054120759702604622548876507551923660157367093789339410665141480574919242555268420418193811501489672683347514130856679222890439115760073186422872847438428491073430833515554938281743471995584355281514072444504259161895446113548147462224891290135087881105567169179978975137799076689256550113921199547127414559733143880357619665046235343120430806826016696778681778233677182625093795855285038400587848238867105867296755384267052363964988979624918039558966293680874389282858949455260187573412681151966600335038722132260798421028556192380239414706160402496291823567410223559179237603053420213375324765372042222736518934504932810672853915565272327084988063663274467879298853216140511314079620828092061513003589583213461562893498293149462652971129373692759823168170934333827056034459350517796658509608728663165157384909886844033636934238528770967697010277976200137141992727342148726919854970644007632247281299535384339999428362418387494443141683566154733325439584053979744834770233055027431290256208286732550280481186774633095147482764147756758244868262135465280225631811307260128718713806473085731219020284766313745698243244734150215577488559995085556642832770530529316832837158178782120737238892244551356039937747935932190919736695145491776215381195844508694864118977656879111992702791354617484409326092041031698218182910841490058646320808093443988275455095231748972410829858707341529614146264659359845319537984399331723058129854198833714557715666443792242605063386041914807976894671755567903053360999891412860858828402000564912691839019980461517556431804721643641020348326274625426374799945858967821846489105782548306926825084010797204224390719587898279294790000587638271324298907997555489767925411942777386601098425567161427181329131755748288925979038959008845738303128899366175689367436550818495154404370524539547894072812645105749186671294372795704695786606705120974191518848753221077507032647298648659067747789691592735824469558238804482781697933032103707576162847270197586908213846154013908446314039497630991862281506837939838435539492779654801633991528812281841888143075569039427904665225655447117182544258880836673458378870236385472861243639862326483910100198456297603006994502970985281402671352424184108246561871710090465011330633011267683373359228143900160429873875714935917357047248925484485956539145488145194963183933093149703255281006591458098411307092044870530858831700843696230074238581616979657904147572860920119685116719396292567597977198960080903086201324151650503459014923872451331246719401602138755477689482797376390325461589848427431776953072911347931157966471938512989661711376281071078223512604513667964356403878258272962700098451891866477678479358213930318924734711584990749247812271116587212977036231538515427638557281722232341796678205301512603866974066324241822896660903555820900969202773371905368461324547256901082301925570473156849170289427481424194430991057920312914846753035705589190992165556826465168648012524162468994059468666296975717542334986228599542293063868934650635218521952098051258739070654566380162874054277321088500027081174510366605163691188549724385340376655270083114909974983000742274923529649837205706515149390850115672487174023630880039631980321520418712077203056519699153566569024099072317466564982252209973531870162286034201909950297452666365226256650793882687225027411524556333995913667281516460198685793315559376024260761339060343666077138967746741750158813050792605673641074407819000049027591571917847546368810092036294417559115038432901190095867001147403301152109546689039491421789125442198176107827316745712439354636889807406891681375764171112350686090201498699153077893468680721212840473556282101599572794799750545778254987928531660760020207052794374896166014171794862537683238245622341466922029165241886821204601971766754312213853350370517591550093287473551716723816050603248425777677756014594770747096174478200641103755740497826378272642667686886570699133457648910227861041033845132114292541361733615810875164384304994068368295601283322842861091379946519262398311221316043456303063028157628308396570856777129407336255951893600734737201901932788384025603072898130418722104922674042169232621156763850440945272937179298803308916170467023655708139508580647148877208803859638942155113117917126789658339228628890530584438638316163023714957798063302837574377176703498491359725006836072156418019542722405265671347010436467223529227441603619086202653904963227820042429169462964785911460102862669239424483201437771760813901744255754323447638585711691699252086152133646885619441757275214061152001481821391108158105843177845610549705699093262714604033094671780905485314622099038429406164853604251383658089323837631938353584905620667521777407585923301787728979633283954628894410684393515073908816218280094845512812063528534837430895676782553809604879239173369887388476764106768847863896177554453762591923933982561338884771807167536267112656210884481035274122689998985841799287175542103266107421904205515943721540303738625803795454918807568570265884282136304167029159472159206738309882292540124142944584837757884354531225823726000296298483462644815179482181495157217245845706037945759177232354189400948493835861757250878616464164178939020540703223358579134948960808057360412252124450182247248430269378987272799195667559397578489591814852911684300910139894452264789273772459976343645535486665185425039441925192316352368148894048746467079276048480072533044205507832046620038512871767391458337627967915326010580901854224886520465724886175799280269894429024793170351596373335893587389332763550562732333862717746868501100683131022027126177252337939328702807103117853616521400596435036315132040180265300293565718668835971348551564395640404636979103565014437070838953676961160360972106306848885759312932501911410243803530014955011174946848760041062867471276112663274689975673479164931545879420626703191585704542545627195860083620719445989272463160196042491673228295736274192286882965495567971865252735352584990973119132408311913581779949941607369105618684880995103788598960750979418238292430634111101636475533757132499231130695482514220276966488722381888873766907377484947248846005374293175613722172423283556813399653392996929692268607533948003100337556210589310367217896112628249849719080402743578872788478435959184472003303175053975293241382872478284463800870433138599441986592149478205726803435371658738469944686522371792598681840915746807044527232344824191534377425213735882988532530164636257950646280625692108514408021795472416156408609980408951781870179192012544691488746292222838576824814369915609859551043063841619458806773858529951029079609162245286953198418520098700877319478830940084406463205568635132367030248605399860084876019391616870510766457530448505698295302319312916441799923266009049308885938893842139740361664036109389990126057063446544710270086271842539343694274595339861718239687083867177907958120820380075461833654669120607482301824111061348819775292565366655876947218116313680973359214374441802017865956168323368289647786815694743123813431888069651088390643807540216766327183557983752329863588456553179736173193075419941287623626316147162928444518513891618834748615793885481318996639634468682570556220519822644217031941283058634016198154777104119118739015880968638872282489179006433316634495604080570909960934608128641381373160710617051617248518289995032409015905939281893174400072101802138124185444877614478985174199813302753181502511466817942372043465021312444250023101152013950276804901534640818634960092229350378928908646431017096675083556628348411863622885122329488562517499211014347471013829374846678997985322783234949906713839317725219662291464656937412813405954831737456304886656618666625603717376933608061400088151404739580791550698639816665431470614092085935448758295216793948591526641981787374592781454795129967087348090115985745712742166275768858380942473459490116602382822967417156334772767996321559120530423377436889405323090932395934099251725179575043069228678047690555949889950421908100079231349352513216424505542049547004973710822315463370497882738168405043645334831289002556048495728316556127920712448122549920844164299330800024833694275462698444847157529078080776107715152216733358614802216084929747904372394838651000972384040550743749755121007565077266118166864186854278100610625796273887011511604597235369624575973429579199921051055248263889796033383112301400926428131968369607592858888685195057053808000522900046387260117990297529499723464761132348696030689271411256581335681531107548445570773384798572382613829897976509749081754952451869434712051780364010532773823649747600661219861564701195601315276092311053617352316443932825725610882438561548049655264679339331105498117156868649895450362212505880858120115335048912207590809692649626951769330320218811297742140159328584805769521592897242351269511493491284394426865375206448224770777052666015271459796537652658511210063971675642209789610465311983615841886196603863509556042818606574048113879379325718102615679343392358330072759151074980988721079294609809985193390647274007634197682521273751252562598499808331171268381988587073684805700764111321023832457736171377281787183043985059757641311781353664196413310534198891948358988403164609738281393463124616284434587617693218757338172694875307865285199800587421243896354959066101927399351388052273036333623413940282461339422522489503748746979484094051295361644573459553916896312952616626433086574895404786904371820688667828275683131998774598865853139446702642243221288052455041375573220780402460479079616277063723651504388412554182972289127209824979296149944750639701879270742218128013504680834236034069274203661237326384624098266126736253934402852283971761190377227407979136863692950413351687994738214344202268827065985495345730096377130650188891254593636384360130510912993326993511297886815522918708799931677642701218200018684351002162313409818103276097832268766130507187670739567355226353816535097303162521282375680382008065151773310483882021363206977817354157245318441035949611848378031740957387951035065759737488894764127157664825803428303665161658112471772924898056226666725902871226926524247097726671718289847528261150568755774760339085446604828519195214817988703930746884075591093896972937901725517152600209528245959040275774424478856149153750182469414328808205686161418082334210978066588212067879198047069859449506986483140623521211397515683068982208630413031725697931501792736154888447196247874696262733639850472567289850689888145422684367531133614513233594113870506998775541575773951727953470900362570220155305961781735845101225010512879225987687319502409089669077892672996612650630844669423028297036470013658308705795809597398818503020999679341969765376754085859888063121586838533071727521666399305007275680027469497983464652267462896397814918458605881622801340357391078557013660632207757033954229308866796857551845327943476875562597569704941723687226115108649423863564131800192734955407713237130407642801626448871365592967180630652544937901198810863176653500971208714173238474332337894336838263288192402924616211187733717333150901405320814760408488802691146077902630027206674217490269148843210625941684843069766679991006847179356614964284752451095122713131075915114467702454309743526817081116628010292393662759040521361382518259653622239896865321431965528216218066830181368295137536172135993151461001799272515435098128285164527991055060159722858551179864577281670091776362860285059737362969495981295002930098676236377376999057753828531963812469012936779684233845205005823595199147937133964569535389922112343816140291017329359558074847980268853744852230807826819745155915492456684751395965252485197119090527744543114501030196411661237275215577961219477794911642469153416235430467123308902789578791056436400023942459387716154031028906277090488191925482106972661053176993780800209996446020401920803904748773930285650613744439061829975325454485858152002983359205622999563160219088633873008865908582530780913106805935985388666690227435007120119184649974598884129927815423826981948050477709750533414503203742866082867065982145379705317092578754046511828854019912074874768107784362612387257643420834095604992336965422610865620269834069796277693105425437577510867708555682687653109214550807047193990557895410956431268383200666595717739225876665019914087979743802382033080444030892552538571490536268728132809878939679430606834715857510733406710809366163662304321291217233673516852264994341560645744927614456350607830987554226241960811314331929925169359825283741166747490539525526230380770040469992665053823358929404612327876341576739869880568628688022352368858324917468335504980508957733340658609061229477803538871987382463317661648464926350406871273434353110326998970871272027061836680453114862988434484458460439526866006009995623369431748197578447240794304971902388155087807272766227898428692691858696674017133863756122335795350568599496574624180042201441830732946703897104337610627165375120133317403130482138856502414542223236011980938227564308010572000257371998048433791004778140263129739512687614814372259017624472952330867474605709066038036779691940362664771973908695214727663133816437406421852756341137631990975941865694919244027222356713628720243577125920047220214965925617966929069592867831531476111956427401692873749978862033977517382100892802548119596184261673578186091550222815616077078047855659778117878990247753688258762228326611951021106613628362849098525060967176019334185479023983747150794942077124296119667037838370504819449423020396439868120853015844750260769777229074293372958120092670793903716415148903371240229576520402926743949365397435954575324724656460733964833452623759908777912142780672865490043018757391836738606015990813411658419070839931167665678104660744858252166744546443370586430182179301027272432651805026593250160101221097110204106937750395951233218250865851189717999735211852239410032337311945304463777168425243655913021325395898953815872996690813159643270298545223918785271239110346358058640059763763921558009928344313886350400130899343821077280073119412537715099032833407431341048557514573796457133991489801893950254627117088435443120208068021476445415807434065870327253125044732961122540418841656896691745327358241642739842863441053143920012805325200353540103180076231675291220280093549107139682898574198151136922994209309203883871109821077712546483427685145689361938643383671318696161119527092733171154478951919040538680056201204042565029719539499963108962479105833246894095191837471148744740047683473459832706832712553296328926041778287942126705423881131034566338182326529644396212410686884911072995502959017742290309890869595138738738473826522781661678715705311175023404153442006987356960219010753395262115376210389797045064748828232631339268767255774540404692078249814514653199439499197574908050193832813206323978102411672392914240114581441577778072259140484748947782875246328988476072964162168778379053310467240261855151826973440304997432948874680160614640335206640436911746011930849954851738650465974731557543443714815472877101490027394268501790892746895753207384029759384269158516740097098711310444098445841325068844480050165625407485902745822398496525648177312334357493621271009493682937702065895543348911911706228657974866989377919765048619180410123205575979799597984657106464171703724406244538450548251745639800055388188300793563791307285051994315089556870094361023728249192789361551809161501068386317202007683159328206205338475020006528135998181462770433836016867630855681550434277483771029917758090276456581887255288327523875174208398640726821001881641497450416057752408904305227751913808408127818847117572167518866619567983272145433814530902676359203905430391912088587443014215400712696658490066943583684108435566041373510102889775012077695733222566992120823127430170574055960805055451566497887872904346752786973350485601031194971882715424610218559229515152308955348734610671193510828528638066133244845665978734638834152155135194393221602921524139147951633269693534058661698260029613007648190506312524575965334384556821708393727766600448726226180186685104866878548242710403526792182080579219605328046623544539205010821775598761267777403050859281668202975470667661591649713714993357628359091608641763956927868346718209771922545053089647415845170116102651880761290667863958248361770942837439792629769158002261765603082789416599535290806064935376284788046430510335580426665411385788442259052866003962856126585860509050628924899702451888619913990171660355952190652035961650592482822558465671728457655100434305140077106788061423696201677738324757421811371738927717948550534798184838163413469154713954285426834000739338987241266338192592229012370890567070163351307664437766515526098525715502737183189595526551570765543895515317204560439096655462128830194222224402761647117242167883559106974637192548654117773654512269251047562985330817077628594179864751270878541176342015315237242143596227281360704077808134790393585363532732239910866710173458745186678136386791292620264808941730094030275144058246272115996365660801430100449645566766928704515102922112251205218109160989886413692890235564800224734416073274121917873145484489049783941792030918547727136066676012314495773944030119559502899549606840943910708250965996298894352301955429121415843695785482501351010802046939205627003043498713460086070641555291204272139654614712425942863466098851332817587055244665195967470109211133238647969157881134637732447493526572818225017129897505713294624445381202266514828361436048237440967574260961529461681349478856718007221405460389921044128834042273974881797511169313630319943580198869798479830406125164006406051907222789254984143603365960429323620067539615531386230765439774646252617006251862609759967521707956945180740565873016619349926597200045094592599676154343484810509651231767019376643303811417255344909688475147314481807424709719188392691441069380014107742933839632104077523807912319284522858371791379323543366732326309967628296285196461414923413201675773268742998837121572890840101051944741691098956225589205909566311556087301623885072639791363674232298388714603506989010354759335038107629150855585976465535486644144181206836865120479211784079268525930374923146492065575306920866930971971040490349973346078670813264452930464314857915881118638851033302760180853490580959135446161599102329449095827988114120828451028874974594463574480924779368030947615105167579412329634019041810229581144823122674799950023478393573144022075913854215815923505746916601066376181553544315986596212240362627071454594104880262919974054004957189971613261082036376985955319836123602619903606995915099376555006096687351838897112695604272860865103882934033588365907941612783019287222167637446177705917258040947855298547497472367104120337464094627635039095579757521786787771804909135797733156124017359541269156295166610007365218221865968589211579358235002202482457140140337315729266841794693837953440379750587644302732678264905267635352559036969305472995941067532595693364599807059468690588424651675594010865369582764179076481816807113029236111372027448043834542649526608892369462265389301643400941631598640672404615696254025956842424314344466656867052400462389651830394030367516221038033960085308412225360055012941711477012225417694205649838401254328943515712814608485358144825266151184648680767628657199276783476733384723409420324382565875227357139490161706980461554695275716511320264845002991180794771436962605931881849947788590786102662999504002648407996655362301754742574331525751841752918133041784746454086206619843209569550757556011756713996812183261870323494574137517886142027866264300897549640502224983052164477853748348165914319104622588330761226799908930993274575057481995160031232426553762913650715198700073970675568349186022551288486025023492572453286348860864286562599360472247195478318992556751180742485401829873283869030354174536022747731865565531371364653106438655875888476408950443292452775633872107815615421309672584833055751035384112921131489176076214865533211071405548870319859374123227763772591673713416291249001874270612644662574847066554073887301704634847041735036868915643997973033833817834506972229238755057276650531608881101370201494100772882241554321183260069405338448739256922344861634923383770328949070642069829014515185746186687250835695396081027246156490478352200709300325727648208714154158271179268966551972570571197378843802268660962695284546015743918932686752723807870268610975139465230099799171070321748468515750428272269569031735795034987553690592593949097829803517190275471565165682576103244905355006173941734875294563672729565539123978991857652578047982405411677764374876724865217147096628558845679606029131275612964404007662979086728088213282255219801669612338991366498026345917645939614097533891874746583827002000908823657595040222701970579115598315062756970908473081784744389311056356528244959322230595961560534870901757931962379700230672492974147690557238046166329556053690709156941761453461288446284966953754459228003486285243160332139402016104510231146139122205167012073336311725118761385191339488470413146339120156602372078660096830764709128893947680958527272917856746406513572650599913170339532292337508423026837219496566369372946663455764797573038961931825502330814033733858283668893474512079152428659095823643878299856640005079614999349165910833611361760805794828157771025894473209005167815949187003591132576908795566825147135409567281713934102182032303149548096262714106911597385131301792965000412292041546240281959722733905516259538857439204889686697655028999438961192175808214692495541472902378722045453074492638181715483555686705354324021501040744813416988393414520274911505686139645215220013176600653639925194465587471603033679805206857718682508670262019262296142588030064427017016949831227623709245814106782297363050700966141565473513660857383382676757271910659060712525311554416340628349468808366865840181616916431419159410391131750001332916593752354724727617220785670919283001734345003709710024834749799909870205353920203765981421552933314126559953686004624865398161906799015363356312401836054379736048661110164505165886618335321788328209079934075070927239510913237845298076403241841615580538663517175523558754716608407095173219199422684929484736655296510751234605054986765505240455184369426416101705894100160051239682939477610910090624471192271171936292991352267382161305169083003391814412922912221314754558296690312069667578000404608195618264435793364226985991683943012745651117052539460906663167648797770418029387124004783857760016259263420159283435338644793928274499091887674474147224757340796051327124614961995083382203786723184460293808082807594835952517105198626776933795680838277639785069179015281148092805654791063955087084982812240065280731350458256115698509514407189980448772463695059600159067194093305751654231579523152497594192191452160242466985854280799511801158295419225043786290563125840622223252637816343672908362140034091315625418856804635000910539718133563918303273444230237843583192904014633560490199155679644906653048844058057948879672395549478699355266889714325814998764714299776120099012087899706129695717471463523501997379279840503940908261673690860156992251123495342567211024478300090956770896254140124584531031158625095909192761549151995536958451488221140597296736513588711645372287400105748393879785366909169250345856239349394533764141323175974572660255913444364848380085582259789853391148237083224635493212457932151282119939302213348194509781589126523740137179716323341068373494433008723276112037877197201995745954990020400581014814360205395177783080181452752026166767833892244497130953280587932818844135279522976985901489185894808343697522414167386050238116345665613626266005708508310890121576020921442819310323573125722166926016186521760833701618575438365084203348924345766266905175157604005165881244749514032690952549229104529424592471313975743923159849071921009668514064553983228806052208423719270931963413880044266827751871142737031163859061125708182001096221377667205843154588371992227655101174838091861107536895399273009327194877120469245502936024333540935620622650659160347796745230570574386047120858081791603639565391300857308112900823953705347490437945057726926120927188672375184333082882347749206756735371078631287987073048067606947080285128970337340061203844958027899427877898667436611385883210102916808516439869139277504713201595454021436306410421719809462684940012018942585603316296272319637658596823653700127205748942932611447080778616887255314996580226520861681619737477217949449961893737208725142148794247419218859164519616810094593005825007564128947918733706529767204425904903523269566403205275690175120848541602214265233597473484039435636596655206260446857982184375456615194659445726135826355443073906681278941291457664386731864997661520797364409457351661030267728238323823353558676276777428287446290107937455331126467250329631149904095631261767725516321166639229914272783157290341380009013169961973339061080808455697307543418508052628528170700449426508116337666819440962424677848748279532791248773963220796021022622685081142079212649895421572148920037486902082425518410638354929882551912654727742051107833245153961782783937089301847114998894114361866994136426364785037447427838149768497922464645829865482062761023801412236397645527716110425597668032958205529618028336339538285617787411030024367556459031538554687785296783902260557465062092311130738238290042446040633810291499005004867146979370524968873232990262121447026910353981528026057391482609326855096816161093581199607377515009143568891379986091299470276654501601920712674465220060423870119784563575079320230079365124501377300061839195501118429698779637342000879677807201733147197476727541834297274594861455352817892904355561527965090916706763699063747309912291328500737174664814407588165793661469635748712500092963956987983088354076970553841006721321723845303111634935548798230114320303906801646399315664123119495836775901324282324889403222545012073563238046527712921883259537057365116358893811285093487678365073542260057178733605617454099982789540693739064904554159244339167675340665719982862922458474850907307559394686062654843800136249926037222034509595360007744147533812583899915014386120571616825748219517593561711286856534894635274306162900088768694242525355169715430982862662321587945063954174528122593111377586597603067003499115279947473753101339636231426861262275514683494717614220370976704922982756642475517191219329402184757850925895152208320897621792695654770598637514905760932199643202212811597819633225399627305517556543537065603230803904581886320712021143594462903094947242983308838580646704431275822810546823833938894384792758511561217353624527763499174414963152459106148519203091490143099705193867692197608555971790630530925301903532555268523603596992614364279665189947313677938734762277493528673778587687772773796794930807858346731441650332871255832268758070416427178343066076169482561357357502186998544954245410840613132695011831873276324382773800859152019795043501083250679575213435939198876505013749195828391690993976290591319796670956834156091031883608124574625797302458740218398602464255930780087139379237675901662734047784741716676525933393960027016026734595375009956492350727635681121152703839912128787062015290125695540084307221363627031979794854704261382838596590665181302330285097561472978868507915152672364953851056395329062617009179898231683183868028060317271448247182729139708379690321869662792123236692805510425719319535757245008182826940451865172755326865844297683130669862519516036077397083884026931169499013263025890069297865925042032718694604795133547519278107183305587293313337333226341533929033742456717109559579441377912166552685847387420423391237845605358829334947397290433827633180859087055795808048196841176405426641858210764781296947384413410481009443182618959204331073630930779999434177672893470016219798816618667974959208411963841364404206775263788770164979744314470382643702967208196705869376386597246839045978812768171610004664838961485362876189404237217806752442356857258358358816330581103418877858427926245306628402463969988092328381869321638011753948939284301958566185509166607762722924282618970305639006892325007988139937530926234002938503844151967538115300008091220606378565807933681169344455903526559617041906563710818506525374813926857556743039228082241326329533219309479030603732275634654030106912979819010226875738599009636254332888381881836472159913492876637777440459231047582367356779728189774225946070537115132971411358667563558951767730623267993022671492965889104937446044026580648014869884838590717132080707257119035045648963163063445540508971112031590819107648800472915860360985436728110959537668183613158572957234041887472362138135095426830221420373071780860619073111041973193577250545801376766117573710664865369725130920206402859341362473204618713671903039955151087538524083723248328322130697335575134196609671776529002564217670166813770504519020137259927505890171844335243167992210884079720156191023761000531177765770802104622431750571873630737854945368056370970082782437232508616427769693651466254672365901304891295657415290669963768940618955740356171156938846814626406844367062909138675078574691227654507076908925691295878569659379823881151334616673733084057574708461368700637390523659747886232794862498592785866164748115726926985415649505120673602333874663433483858166766473445519466099030863507055370499379842177106360209224938449153531337819499118762340162034658423059882177278023062970840283379293603596148824633029605393227842906249377178872442306626456833132671610472930555868336827396876348631896424458648003406994937850848310084066909072192010727839202143853055296053191909198953904938445381645754683421863450341294192761565464678862332966307964864599295006731569535105523703041827650742957927701090513065099406072075706606504391909111140560205311669229784040205471029574347511317601328933746053324219799353760508279831533564210652266653814252925571934737972478192936367187037851907186672686636362116991096983552647037055180136639615046099895974772884324123976340380463449056145194325898757767605415417085887462319624792903073932425257628028190814004818692730363986139167719045939077064838913328267417332296535047971602928455557524090693241674982527209643787719996536575326000004294974082379514563110266837124869646337441932891245899630431030902102458135836346514012201360727746160438539632223283236264421300179869921776599728120971803781645690464274937593748548663753285638598643192267727025860744410195229164449497744898678182533712038234059394300422986534445628084428294379607511086132404438959494317456348565424397436913052480536117355228168682424468784881168515859329135438898762964119686123294859499776892802771268989909354482540035980279127107118158646422215457204038994139016028650222981524624960714747791913825434574683344240477979019514170069927252052869367825246323135604669327435887070100783419281629689647062642836609830335103016979437346313682799673849035253053725922310823681744180563673987130680674898744364026197008429672772320117537707442667565538703091529040350708538058226631769975968113547119742970369239209559922152124357826848806384845788564424172397502595269878496881328210783641598161582897263291449093051548173485396279867810188971274687149265837668220644403371674783441581590055287828963148901088723717997992920660892167722250940253396729784512027039009588137584971715246584274900749882071576909251121642328105706485225665269237343356880295205848874009180212438132348953555522611835859837199205925894837733533748587833438950674545234981337970646215329704375268845899585555599081182381047954815185414718810790378387561191443166940458911657141516348131345066195492632859565194051455320091634576790996421549842802140941840422291397785260592660970145185489397346079149602542779205899003580304346728111930650063292879904187584907085929669825645603676588553754571719674340974651392011099190627519935406482193204010840621712034943129819124931971283018666166237543791910294776809860877509022083818063983861279243096605657018749685128561541194641408590539227238424458388708471687253497227543083727046440769596359686606383634713740151903052539000823264310129887962838976990025563730604765435398787511013418089410494760902608578682420159590289332990093463435487276430983473416543800103585015022559387591747386488077366404176887978905152043607652565193303447051077641502788385900370727771550659789900205152860407354830245506577379703059132324504376399270880541028307091796687447542448023931348116987852868064512731029206846066909727707581108243030020161789596827522311571230667965766581895985305395828917108179002213244897136247211775034705690786828667201164269805274995690342014506260725541607314748577333544147595785933850057950236088908134496824508390309918184679611328663627952787027632517285659387685939361656241913580292166178167210976729137682528670508220237165763267072064501368748722091638481599229896049242984079004565236509219726722482893370860154068301955311541612870475045664079168526422919250231782608416539872110874526995041766690397132167992605858467683782969392055574277483217496726620347979939255773557335979465369258920448233251227269798551623834694163939445541266695798918495646068484556254313332616631548186078842298030105931321818537032784246122786791479394468197567475800864481172555591433916490788818179522132405199306614054890620318463045829393702554437969867568076107840743979078505430239196557556081080409640482100156242643708917997772397111262321160811909865662545479971382380359069097440612848125802976938715828524432307070191559056817570540019370875069726579181562207857981899214539950275602199945902953765274931504601139187191412716771990364974047162020768432583585869619628204733799821567864279129239132727594948593652925928728482766989496401007362456773714349370847594585032804311398823133795319792998674093301262609291170009579549149575319278857386875469166982814028122539416662839124720811326288265841822585477866182451625961496222582948669316964372085399506819579163190148824675058972427464085759651935988389185432729078502744948842956065445339445943592763558571261638235207014201779109369813297481098059714700971480010396781531226127436689857817583739937355030258841883835169548950642746612014195908558360746932690918691872092881316250959212278485126984808237513291282492710765063115660382750465015769820487158880227549966472178972802654755126554598251910032730542343089770784545287439833722547337102912812346567791129660223058146622564593786605861913609527748433286235276523411883513173774819463824443823381049136257398088843350059506364404471626186012314667608199409342860071894063331556366293393585750632543065504889294761947948787185544219190686124178762695110658997294191554765590031238089497321165859971548225061310393214559705767647584960802124565818345107829652711417748069454219838745082874630739095531350410117244833289148853070740435476003831611393618562287478499558145819023148951946575527164031510729814424577739488993487254576871446794085075216740537829429817821844884026667778496575907500048236317260093996606874110039289821046691560656794875228687737527396820101468529637183745534589246704318961480557977680295287543872007331075830595511596370837348984887593310125917078150127270509368063237940708109808332981154657054137450485376702859045489106636849243735087222966140594194477839919450944807831708038157057093714390645635072436369238644368379058047101950684808053585328260103787171698445960620546877267493829761561063278035889707498501815651913044344586382434836876881089702855675307979100734367587609905781992743139294419997779720412469356021333771982300817081328713778434841705956643940828928232767514098851978309656556713073768848919060061695029981944750767764221831689637010107256930066241096871022633145890727641598964587901686612912165588714177773297893822062594003800645835743833279484728036803314769157512227453404377648738949245745191842797958162587360518842925717479225753243706456164088963419646053204664175618715550590427121005868034043744439183982422070496887952749271959229462811195879269589071208602563910052376225108143550479598853391082469022124126960979676901938161572812235593472071687420612329042552291455122516391272193960673157636613800549639060515142439009668805305079833339450174977992905312656332147942782650817238477650716136639950380300551569618924517596204471265637081872813826263778650132754030498303213870048512872321930875148083181213051555076643747569949050057586844901304710318007369587219607975879386300208470890373024369687837929335517390245397899253930860478675419029111025168744567954332043763481535766532660307965986816151814900132341839506987425630404718783618524531019858200209857563175320914744617281835916320934283497476464331878694789588251361610149692563210989332030873205221803666767181616473828547338336627232894797197740351573185299206614159763348127966803342370926271444867281851565926506776707935146186752117973003663832554768694648401893220775507618897429382949728407371054409319423492412851868224622543390199737905561005738721883752942763276405702144595919267469299312814379645145033561892953341939684921869806057714945155290668255876965568045132904276138345121573819555808809224644938804768423128750700321862750887517997227218027621462928793250754423839187493628345176791078176617512967885209560115575648788812609734175842024673148195344962745443213597316003061920132910289708842969792684529178209016292055316870258084680390553177218979558680905971295128330212092093914531493709963635111592884350670053713552074125810444596996594926123597658679926107346695349379776285845839271982738314022833703608561939797660604048891224291805404902021860866516147404526829530188203115926507439667184710734691817427111173478151993881939415397096449760098534979822449548141103777838858795492755746655722360511681098753852404808085150056750631925409080207132255210354255139602733582084782318694233835556567907212774235276737122934725973403442536677183310381045913939981233807745328521420040009520386056887799428088470903330535116031498751732088444928069906172404828554206066766574272670711919861321263844940167649160973732968368748119550541202107537625489157434946733002975639799630560240942378759410195609440602927799021676574631128441816333708671246180023007885908589037784137773958678946900585448517281609870173268771580899844147706875425715629441580136853990624109999168039434183203649874422630335163045597755797302486422381095210020316731703872471554841055649957893108523218815955204310196075104885201977693162180940944429013396805009539329946251515153280136774754643396183184609098884227726474340378488084982187934417997622076634619377663618250258698889442270203985806144917654636455011039477160598497688656308632392645071284992743149542584497467518936801251809371947476825044464556785855487779006237637689647574281748058142179813287462755867039413606100436335930261874024618154550041020824510345842176919088560652128943117705153315201616390264529837367511195433707721166141385315950015010303139692400895353843303993539257672638885608742848458874998460657678988077757081289822416867984070069856095786594985926443797543950962609671713890153209437395256641476160560712024320014264873375445438018283421236119919565327015649621272996828452764968380697440192015658410842790889551883734173834026015428480811792264839743925440723986622185136547604214773032843859442033637276341739437648723678626989031440323251976769493980616419341662854697299623493921277293476906707375642825724822383894567843138734526004940098942773465471666761573523839140143240440498176661524101558143544029636916562999418232442355274755432034140710666995778518380227495620146140838785817919946699608707452860295523318984601609153357632469964699651851280801291013395947617424207944509006837387859210092917010217500805284570628284025778770341310211987164906286785340134615433284598410741268594964986712544891185790277173697726498556500878363316788343488696193051849153304054154129014306813049254806622337219202084206703265984815390138712703330084382678974108362810839315504987612510284023244014669610011731265923979017462694096594192097673213582361295010218780732625268883335625838641236337814774953534560029209585307362806938453302140210491374628704726124020175829354006782272221888498598717969538906741695033131025244871177074214987957368730505372511795651051000885408792897609722285972054394567341272244940771376965705916197555134011473646141843800575873254898594743587109963054704161848062716099788328424491769109225778543063986693098488979445141404007201228658301052495238891423822227557794919264391345473863695212292753615085078603256854949678204075386404190277797609582705345058583549054153879271294134191602859280775554092112834452808349099315693945425363391798322500999210925803619988521519536082562960652898595329237141558987097230697406795363308050734704144073862098051148300693479143325632619671405187339987967097199787979087543150689127527355846296195273577303508612268206041293714879539547755454399711985646583692863522279382578849304991107047384424022593671009732431253220388294905866248991470538242591484342655261923228970803399374737537717396180958159841146083675145350187245953601285513792997085101921540304990123419391305851742963780792721212474916925877086167780740701770372548984220759330742983717710885889102094671945686443833714379846930510780862381649560984742940910191811557859786574313057383963116792070193936463977515513213533573489352577774624932783910986927479143784656210227950960802654689263699591732526406851563711151233718693082644522364767525716230577914413884879513709284165421452146176123181698350707862699137625922231550617150497487497058962937255706300235865512267873482276155941594085136819814154722808091166673229723587606547800598264136880924116778855291164683274800968905122611442879630442048894347263685516319698827033250918190982720433656783241629585358243596040501398378912153959982030941094918302621292383994570367931222391171309062926918480581585743078737931154399300372075182222910794667441664331024257939459228322950241003538276250637359747270800627409639110405176300631812412443230721682540410185299197659325294178226622523810722525875942054707625733681405786094644830548141829049139037354183293377360448464488860795484277057629266098791411836766988329782942482486518492487128742902328403822338534897289545638623144931365583480561701480049708675880736501060101222998602372458799508189126167751448672864746339381678340717224439261979534067235639260331207919839827656737825518137373211783880679171868207064316430057173469464148534088239840522331791519096538594688468591366020280127719995530931150946869527072760239394287291833127233361834516542252716667851177275784166424440573437584331435263036565305261200680052434324368674487816001925550314870036692364173496598413049104418787201321002392718791061077412320772472975609073955476292038178720327334534218034459838266057780767160077759243998571028673306963328659080092213071224446135789819430816854995225502758719172213604251425424345706133930277494510404253979753466973683230236907840873614945225664102024049825417807604476588472478608021767985362479846022759225980241916225777339927533541851274696781601626965090458048278882853351864492334862492170952268888780700151775601615691388109635576178108256900532101523169192590688594808323718190249079766944118921396813129428929393037227272483729755165296926333715080714553208749648950239562214929339617451052452619164033960723709796818397176499577279447795313709044259805221990771201134856183213139541429940272365346270757246004545281257867834390896661163789929131124385918215613793700221811254131458637269264127134529833576098470920417348083551859971489570689447986747450216627632270674902368204232421824803456123306932394127786449356803985832636732646139811271906870965012032480986565760566744392846685554579582420941807041875843461156303615109185586884967481765845584728059664108703264441286256601491171874065331332750614668507018376152950183846189328107297639661033618235511056759446657966417386026664582273530984118559868439582927210222756514973068437879330914240223895770457075530563803070121714153444324298013230015977082463692218410631016602162877810974771861462440496754611887472325789129118079447725314782903789920653054099124555410888111357478764509226812574796603234265826191540750084385642182080260994436952931503193928670337789954163340861344150339104253562603616941649628590991612999246990326345297153447234224542092966550509181687724287604753763135461038875989128593329970354425413733608676246872852914783869873269826127727007962656596799067180684130457944253720682754093582182301631060295935664370911735760192557774368611471658120901803550181845436266253105492331734902851204588185443826188131971909985241619522603798337347230288918173337686453305397071105001455637247339010239291963125220341645561450509477175474711567821570831885233826859245699225217947179545981882008075100444028624987522854690775484468105267866344310546424394751477336826487278411262327707251505639311804626548250909079627759152211137386435770349204355684735042914078600307401596922815956397476614139395397317343391048671498697025163196843620978182435665671727250482798835494609159239423830824430723197302478027901444802541637902707097434814568829770577621098937009614535395305463569478024021130916919702281935906211642875568366418728906497064921342246441582518399120486944902026176852851465457977719493666304986090220433818824447902225358718863320647300068350680713453268383112160967118282919416949239197928767875481393457251253013625746270728051224907225467194311348764812250796151484816624380849493097145138133038011437423355638369360739583963407384507639709752767867287310654035402813278364220063137392323583692928463760044804780756000737901825278658658516976715592107161053613210002568450169067022574830485160661016927203616238571203922172767866378768916885684585291400257428993140204894951833780619629244723770816112218760052358619634704277974474948697958324550217122406295640804327638165469734227548143872568502047211739225788291265915048723953313341180812735377976138498057823229744548353363559337528297320796018943179395582455135416298218819019653436871300797293890109176562490896032128751939290113412278885693532424278484383679459757149223052498133798109971733614139442464390294779810942253815623762804803486610413958340805720905855947041634029117389836591786393022025656071276062880218086730531661346454326854835582523471911774752619665921765023719713734664535429256111691717966478816096748820281887633410821241983122930475072053005930035622580316979469335439172263355158500066598231521674155255277983142914613230448309495556637914261590375439993364521272736776698620389999800832483231648543096290030237357192115854380484059953275356970116262146702421951280197710643173383341353059100207870356431498985508734792244162722953384227489605779377937752779203383092087771289159927355617978699973593434919814207317479420533344188001635580364336850436925072867601609574175702436362686847204218655944300902001471673878284528670130617849439151438008502386785257141951764920660511981924690283782553722974876174533409064593760301259192372310417157605391387731339498136296815190147346020292582135589683213220399902410399810115560725695536898780236265035156232068627303227783606548986440127979036295118588267256958607722823117383131830011674866856411053133600945759958846430642419064202439915438289145268945085624423504302306446551691805604221750650340553703467195327120789104746587579720159301976369397447090143751368820899309464858603530094513553459200991688166265857884724905094708430622387108847462111441803371971675136118386974257971370534055840436430233144150527171691206639697812332765294389294704171129830621832460163179404215663944843987278260688703698889784800414069179942052038502357954774480378113207091825735515104715808499983174302129001193005684073152387260004888861731046629742213347909522479344090997923281506734962257217628213858247089459766768469720098993761822314176516632404920460265708099017071208359930202553899855038634409846847662354981323156373159887382836931034179665212201883469524372092690115253262695591600234339948809752387959771165608345507811521711710700539243373651067904238624097395327046689595469986550868921226889664859292124081571707269018933381935316271959110995024101051255141474639577843248571201773671710629056850435042710997249871632021224296780232822461571706321726152467240192582102983385195080047180265660801279423915601898060005583371066068392628267850812601690523198137542237729346471170881155139069738309798466898779516055284362171467684409557953508670644239949239373807187089944438270570215635509946710636238020620529583855461277987323905133624095468723946934484036942859365019012563810704515901589451241746549710504995996210978238017523878628234319501166382802556441750707086465384472488204130892895533492346555157859481458725959429056173231607881906878980116637252393823190182157246860720470981820168056869523354174978946638812808918970581695299368774378339031253273773428563160036013992145397792232144696112965305786641948258632486827149913158954588892444273893263503830274428358991389629998382916918311811992988293180210647926540486934118133013267355401949583452023994004493562844443268641565221218296222103645010388572990411386520518414135478019498465888925948639838322504248502491898004381832841361959582209844867169370418890016606993348845271837183616106533711426357032268804023780575540040648194711324620683672649964302985943965870445603903094314786910154249499505951485339730495515220863979152531299275947748608569261893008828458536815514636631743918791667719611671290818065375108806245343303002965128802746617892648558133664987268641328640253045383982668918013216578982539371989538932025412310297203420834391294810682548186030294851102700125910578136105322710613068252226394212258323511974763945544706343263548484206349868493888198108671192457588875336594636447849000837871544701650755950358421409713431692827883007823833577162688318622680371911631411201073201764783536957051361378530235560304638383373882372864004857286019658342042836617898758880072341388374012360949966701889120329302491950978735251158866302770285236505790644241100835201122204944634067022786923157173897291652371551967036192342954998671012519785216168845782694002638587016057122592704375413924970059731950354768469361704464120936913086080544246324986309414783382242175288194597531689387372072349604740571483928670767244244442282020630485315119657714128745722497842051597845964892922058222189566978618757905605757748459837909485585735353010232827038468124118631882379691679807068870452833751627307393047191727906684995366089862548415635867538022768627888593888363477311498211197019862810119472626166969698880493409868641382306407197340472819680207026656158898993616774612287085743297416742195881446522485868283054291121663453706535990360726649942083607242651676767269988331623895086357017068644924702225868202149560757792557483320207684499347613459647689094257393040127684358272637304245135270239977430185763036394002159552737591168749423562825673009658037225397103775776705681785399080758114626609435090439792435320827305930478281198748415817331192079071161581538013498824059163819875185836339945138849616515081934584367623490111315844084783115403373333892342568440077392117356360643058451947285319963581317711280925907471847458854757735554519051716489274742035003270929883271273301571593073532323744731035185314249202032404540040196457660754278969418753759389670315685850581957677391383790212220959657792695303894397995837891482340319696786499354616969280842659242314333160482174888696448567551275369495887165518998009306643544934227702368660219226331837278926294988192458859830876494506657862691714947768720931500377651645049440232730280990866865044442149555806025836624636701921402025743975268086817348214030935473022898113351845177123115514307753067761213111161255142657744328634733398741280493904172389647204330101204174712840339023446863678197046225559808492351387164906265584399229804823661199039061012249561013181709902828748939953551676786913756059234897670055586727330421503954536684677621624741888501472668880416922678562762507191499060417144624187671539639837731018728961193704588019548159624569144560190517714173791358406261167384181322543486328523536936730848918603497442155445486238240405842023001529599875474462911799478593515205841792603417968416854198729452031256606897065323709718838714210326934982485944572176736126936132514823432166924887310230263441539803678160588508897898358441332335394229125838778370917773391011908251931911434581329952420502072375109421754221669914186077661508319490922907392315164715806167365490877104794473316548408146919141450331470979331363579856627600912611925351822961760814362263944172768324132142417765163548564242335024779282607822915525951286029018839256067450886450485243645277009250875443064892117708386320785492405562218552789648155235173766223007389671839547956094688850082768115127145209561339931130329906180156603899289688581149817806545392513715435297826581147508217571402832552250074512799148642779727913461780168369500140100441812972436862505020467064975421512060492125737511782632524186804745711185574882491390414276159382193913210358522421359000537490656353340605062564142155094650680982259172491822882689495969170173168255050253469167330635268172530840634999675123446783880822763122955968630939959753823371551889366023547283405685682605280005342739873418832528154985585712328374591786800833031947188280479877871567753837038665731401650233629295961662301405264149037764052286690148594611570945102125237347346736562858854717301341997072060965936680044918163435211030346922218161494254423309444116293521162161174949956865498331419346370908619873985733845543479660039051299390324618899373191219181450318338547087953152323870320876584030375177645163462456218009210247895695415608370369212370164041086678616501459458285552090405602199596421625696576007611383988188694616973056105380538102602759067569072287194171496185407076115844123102677984535399557943086095052176635831937781469715413031312572183113832556207899254934610923265238620893293913198563311332979923252399160650166173125070648901031792764468575098563935944546074324303774392465106100158249783053756808674481857698035479349252116536918557465453085338300471468235469567202524056400671738721505633578753772517129986149213120983795017808185057723705062940623072620461553465400695966534293963997393431844172647441131714263215276324782886310051931255842466139340159880910703257518406456176587870954580590204124422012163124284517285917474020227653425210312483075647947867998681615314419997566019823337718618928358083056861472816977284501440792576391769056762198978907046822073792545131931165544364091179197196191807692163504523010376077907532849794544546009648464527633429458683463967318065206644359052621795995573861354602014999668523699312804941747748345798060885925026216446758690635785127750684634865197209828662427841374847921123036130859659027798656731950885653379436072993706179058159756299294981250812295363124891439677803275719318987574513236719121711013758376598098382176093698549758310734320227495053895305936920508761312017327735722474874216318096494386613733108338277110553675822729545591984236609342525299245919002970731087838883673133081374009772250981317114173788134219917851271297185822302939560511550133082882042502475637232214419664356706696004784220789899625569896256354167313357286662826554815166577193674230987917757728066191586302008037402537605247427428130318331686095081351595850731457355331488654599452779298842942436164700194525764634710649101323059603742359768722646315914702428578259175176850987932261357830214948147676390364982332259977366256229107182142129344132943557464228589179387838790158847186620191083064668143905140452195837219805381432969405070331671244526666846848855797288288488047425360239132434776829845250115799500046148017832339725022158516101942629772866862373991374075179465601239235895322158251591844637547533143152586961356799510368530255011318278267612342409098647694484310834534371123374540524511453654118226765546191323734296430175310544872963874486725409334365098321448854420597840804743141538190112644614828345271026740494890813968775466271086902091643773342670245142693540472366537998200692355919662100561469807012170406292441428793388977185771954698392292817051635088012841177809155686617871309937246455676441530676901133706806269006972329529504023665139315267073647164262740098699878011280313126707592506205041301198282177965076707876842584016233348481052495554549879537439718886835254625336470765256611791674462854753228106317133123427387719887235849399527570462235861284079864635299509975795289660437810785783064334434620597635265982094430661598469858748854752228321686707802435003678635034107162920630660900513887415294815962413640649432345692096532179285876750423954322452791467823021015456954018984140947343196206995897043167871447464028468603842946554347610491233778100728862646646471239172663869387276316515780387024058177536934957816778302826576532692293041503012502479070455381072761052815059024400652560852003538385534672762922559257619275877710308408756833356238695294032217160205969648876427001958850990744096949943291978621263463721878861837861133656584442787818695190991671614373846049515650771978325291098080162931223002875004520135058325351511962859424789866306867237991197989024869061733317824345098537377755132146669579062519792103785676581054574071845312360184960237640543815723214359870411464389026066019822863141395591037828810070626688186300884789324094327858287027829975816835068939968568299061144002279276617235258779638100440447768803319137911562131487706204396785993745752503729761254165301109928984108715976683208929330474956084140103220365231033676120837823402875018146833867825101337103689875310936249898403659447102399208937608397909425633157893443466415376803775536446901731676878719595486086646216549151194015525481309944691053742295729909740497353579038264964337876324739258193022116848670859871233519239193012323715373724446516925250660629087596894355799054052955539576998531094466454823567114138182804228295633410560384254748659929141825226462129076606017389260718480385161147732295950768273804476856269918559045211935455798498733828702723210936266111701435991245293514711766416228990229742509322421392306672991213197725377010430168891107978543727422409032451761546392705174724666852893588938961897522762499965091160762089115456461064412364217387490212159752910367923596868161721774234937836100876018237561403396794445631513372927472321135322442239757525938150693841769421934525728031444075107742756143326386363530427073260668879916321789719919235918068509412652873246121785908847713045256843333791085334498179385105071141891499266862000658172116959116968346359666346110650623237507504848427637638588628276591833356942389215607264051890018051737706972666273319108167279129170769510054059295489451934874198515105458750555958150218565505346816399432387309292834437517742506089990306664237309289921496830938699814128022096448280197520110027860690453203180056249850282431609747098611515744292792175048383616941549496692040990934135546198995331500367643429296873638502242516280396301883650090033808687368285172733827481175228043347920756201567604903782190716352621706566899150432059549353237879931566637850263481846886051368440525199228349897384976734763431006209169171949177365694966815855733129891049951102505091430671522065346499213291143000052498034239258067407521221208013885022198682620957776458033199128260064974610759802826129598638865616842529126176862862542600615061512540191838905363488176874788845471749723276940827749621832303862921973499028764220481635118460427934108627279416689268868769493966021746315003584893984391259763248269302559921408511910883935225571421990054508705219635629529818561287217147924902503760520195319333958281525151500352945428566753482230420875695793374525976209424174134204807750984930342165220521722869130674233178022272313016109910824312354674085870398795040033792484996728714977753953855083813515486130903242267676261912239516434683821761848116010068509971970275784474645187528391240273803626734739445823634750830234113010300093726690696390207710848789737198366395084693472338961212338940209735088746003675989159836196308892370233645160178907920906827055997876246172807114697959364773455160082832844525388027413487906732771802151981355222080482834956932261610593992428611924905140635255442048849947600526000728473074835088797490943843360822616240390868270255070656870770636329495197068941230275845179734698114706872211459513728337287709927183361126894898307367675029753159280443559778742168688928589273763341732243552751374171235790786794838906798464551047845030642914648193579525326891850182505309286480060616225195446658487861398573584968872132277511526563001989912963059622038063951528171127355582500116577350813293097388319090399564098456992703736986077540927767652317645724944332553792989813719768448392077842423954797574045597428265128831929185280677452147442108006424273396901997244597321504411115906155202965695240809527705239395082248847885646918133417969497106948617539919275398578720723942192680406668344085864971937632244780872262667554326971069817938191831056921522352557229996023435282964882727458927880162506975387686914482602508239689764321716004362225716213485304945304554371941215528575848473190169163532613065978149906257696945233363985812772936700642456773551814425691621667431499304646841516539896549163082944483935582448040287043957330313721293711859494201907832560354820356728593325116750592978683213417328224605854374214110946839751065608446445620760610858138315714865696125840864419286868317474880272564928415129519272843769131967756402592193776675650742455117703771608020895007679602320934691847870854286954364898689728482646265100450657808418770218571185049829034889394838439934329654926976251771414856446003376248643090549197746806401494122278380230241717267046628193295866453567667630298193787470477632482272592206326110694379924763078756149648910061983707913810773627968136751573965729206151818796916826251668681301873563832092060869979290941826266274302172525298191626624462327644105668149877308709888873154597927009953433460717892125823359242635931864341343969994330974887306463660631832443424724703929134948059969468167877209525823015063806557028482278072820450353325781890822908627204611784102772960804698714777043290451793172639603684242854193130640599984928687268053104078018169168689410444938457080979978405113199581492504510220074285523066465858044082274115079093959084131300813715123132667239598565689592886080128090390302916094239048764207062450387679273014307330608972075117301223406215771489312718066054037152749896938108715622010200054473378753273581777945401753143726102496891606661466810456228527169464496411857754574401181524959808037933245368035984653970342913964053284524980359638303584318759146698982573907182665186620021135424023127579766665870330551082431260874421962205336357490027191689896917120041391590816648998430788290640904898874815959961510085683020808148433618330487536679721061391679058036382620580955156924427374765213175694357013970104658834672497464512956599664722708876950516226146472715617950664768742135198885865398993651420578461489761395887250732240250091220296942420135190573701645674149133090117406275571458827432692673393266901944327985117987373105411045161565691575784653808042933374464657280798455420512506901210203554523589648131672965540120620511989350668706004987090028799755418178661707105795401051250292622218121126103774660109761413555753128412653826157830930955872769179675864916035363658673063616767007710429559698128650977512410960350774431640259785285436955926217208387142776735333626854609189807036763482281981758893869971473770178336227558343754964634184525890351447086405976591510515272908632797724495823720136409775576934447148304360554023344367847540811808741759612050151829142216980997948781720634739135494079684787384803062941347923292073432972318276851856824350236288292126509499855295192916616939802251113195595218622049104592376690858454057764261295385396253070967325136782199045917710439649979804830624564280716370340127628038402372443748379610764704713904279901969411046015924648272795997030507662803516412889552197913095880062281792804356554040907583332104730150641648955443091925226095498043603461342715965993639435358804744782665597462297389141649211306517702760991973099091592876446948631229473458866779148445171511664848889262198839431236053795354244469222761326213342215867124668197473651178209860702177795855673470132528093671303111166971934285904800559766015811246565307056860435115062468267449976711850666267312427591254588057751755559937681216671758541868475191478206816597650359039812513883003529366938426324902043195311325979478212203155282960999624683484887010753053856060503427348634322245280846017831768954596136495822241125024654480588526364907103395159389001184523951611359132562134260654071609926386733078791723652350398584385806390051780536001861557170672168787602643550743710648529910711651307690848967485788032187817320056386533039746436561610808389242645816456873841262953930017720176595456838285216584955966964736814606367368522063598509790147688943995569515289055095289551431833866297704837593742812415359582278468557168236086910545605358569769783036913324781239843780782966725838058357445922794835408329752203600208181820672661116170236786380433896760982195630035492704677750459657720198987019648549186644047076152141687904120217028487379605306463662225546812071674261677526630846174269661298810880906912411719419813305503410959976807184923575771656833933485860994260645001962041397154221292694488603125074012371607475047070705003000351395782111168263215165897591778457619382691592476352366971124620995430830134926057392829937512045036929032706421554540800125175831419810561589516088303984791431996620356591051543282824978515232201878114026236945731253836382064790174542518686001175779758944477104058940399340167692771502158998337472528126404656351273781847383689712902660496133523422396183404308726806764715361330524164996848432834710533962386743481188214720636073570611319707258878341402332048270202367884597792570342652516500127928234914549035704167811335823834759845198212012330816743276975382037172746170493806478967458693120175617031852765823171222021962760807426376746687670061590779095731817722733945591944523622043835433967946723298047125037229671235329434695629654522868452837073805237628455510739891181045552229481293816905886993933306667875674782506293498434952091190722249875349619035673854657923465824533709089182106260249006782914238185625235482525682062262062153609561673678231485064793545416171140210186776968889616719643535727181071508715850112561368668018608581683277932235379768271033610278406309533055753822203639358011508863147368658190758155994346252661777296600983282689586891320476756506420625286501911334270408353457540307677908630458625358218494704656922222952685581256452570088698602864495226315944425765529753626535075088896535087454122494302043389389826982562906602974547736735755861438857167156361184939549308050017968219229198619528492620280943198784967290479254081947713294860410586038760288127125415202120248181985588313488675579753372012716118968836148916540013608819760581295256168412232881549375430570333439430603977324238496444381343210662026234634729713179665733515944229253816709999452876961900883307391705045728398507248003024852186857593416664473943463511502581074898024039690987480605597424898097613891084834985046480939948212463823309186900355076549972029108943192275664814470479161239152102689473907599394861128168771626735942647187972161740456392747968725142492770577025366069443011973893078162111097553405554363667765200046275436438516765735095039577237074046107125172618094606567099319563015990618861993590503868055923039086796151829507960331904273547775595624286651150062386769939845253957339886678394868875054100894002900910916590499133984103001217927877561650248888887279895598622711927773246292531723332301410390906043099862074625437365200088877950451954928542266503451030309325958805094501694683325296221825405490075328764173652565192134396012303422600685857712553801203004763963517339507907946931091706922880981656832648631265099073832646980824422519035247757066799116870599118271764499895853679435075172089989117830586920870995120098533084960008053428351547731211006322234265670623720255162475894009395721606104820834354422408008977097638680087832845972332797968953031545768761031783269917811222959566552675657804441132701914368395262483196393594823904596984888204247397178235894415082072268330825335031192021948980217381191170936381812807388877094653391329173592544572999595911019166380642255852459809847690027785816478782096909658658031580706822090262975495747959711894839141049294887018249602303553479256813833703117262295887257354015163258226374283848040914930355175102718377436747157333834284796561963686999204736332344110604011954416726783276661317582559506202785144499266332355637765494276962970412154674879177290236706628137903032046055791370127652818528069990211546342304211244999198517443470476519108920992518744562606985699202324205096469804528949240988575494281898774320356488775983474711013001858942130145055249277117468507091235450204435309938253963509712635337621216370526456513123520443915856662106391496777210425499874109467056394063596414097678292294962455414849607204128521642538666987964248009716813956727363086159729406319617299578132074280550174497598119980118445182898703665399535751762609264521297694047481202593094204297466199614564405654609538484672506593830017230669056530328531045968337665576615765610500303973559972137151962395726151916038410713090028393300675983167867366464452110243275022179794345832852749490701680059609401553070845628268388969693549346393171867859153191934580863353442211770353699080275532821399063757741774514658138093637431658476926340020777551985702089321686789864527242810817437968880679195278433444811605574194370215431858142537268092665358826867824218855984043096410430116562745601010775324040442779980507646210534086158494715028246978341880264830747350197505278436526659908360505373625514625918204182858353731121153722733157757237827964554664327594985414827959183941935874817398979196442803695340697702636077393882311715943716025981347514884402773364267006874935342797368606990607050390049655698321931391341658290483593235503250021755009537236362419788783618490073395639048991821316972060706898621631621224950689950645406740555214383384947563063965217795115041997082891584534478925989149019696508470893261728937165301942816990905300122810074888233550950990392092710421893545079198291141927449725744932597184665346304820104696684842197690638296389391733642659350511100916667117636156832573707015804706651212417567189418050909362823439762086529320628012508590140911693723972624031655024983447781959160973054732667062060417155336095962620020982877606591276981219777709636486727449603651814002888581627103025658622640022485675770631266719212912974563613109723777493304407427482902656389129131031047351318645372084601621099754200936600752472836564244368451606769655390528180837787867022233382292405838837467824601630397677369282549118984686270155700520523480217326006665677192086700311968930038643228618257079325989827270526854192802030140131406704494997126556439749783360053535914744469561826782666449794317380387261988449457743137307783265397591411234886133096289310748116330380735846795460313980852362436490378969478449388107786712641954146746636289232816487243716448782910076018520913325540215105472568694876406312272948013578372739402128329691309492941783983561010502534100198047181676918550809966621821152491882009654210644758734678918475657541787538909726851730782133127592202249615083275022768477770488841450535087793635041040936611013309445181528978020072644682285890496089186706191404858946517865092105336071104556816966589933304299187360786355487593625616702619914833165178032285496886933512266510359344972805987004281027877465993272931825867372824932427742907368054804572761795797155334220325293738455501056248207141619181455109311156919191148548464373361561310143783681008034316046356524294134258647937461854099767369256696793021637342300502071997032952434146648560301517560536664793986748852919422809542440213100423758907693236844041667136251149330764907375868242036277961591570429710795586364703511307949048516624907954175818461011908419643229233971867183857324430190960537326949573281479028681910701209859276071554563339585021021775229207170399031926846974202199237113123787102489906170009370512558511459183876557936781695852474994035341025509238267771240910539399144717607157143572377925336876988405555822803675422973478244935328315280492978434119756078042848051586619306358690627435855741070612527692999225189901939172364104807389167752398514945632334062673019244754842536262761641391523886951714255745027019583248914649317706174822855517063264097076264220932287418269476878700010047070264531933550272399254573601985813543675522087879466490262425727093761571302327018511126108574589377188064225547631733482413959012634211653906392963525484053904012654077886806499668947530000531388570024890099331027787564850089188426955672277428679175675893793048712970016026953003681976282853389881349727485326823188050750539249973244695107789404121303283054343239247659388021075709944932441877779839375913201116754587926828016587384156616467296454845957570938271671806852148814885994558717724437668797521016053640623789058196328341051627766285186097959280555894803286185114916044121301438345925882973456228350839688304729506391500652205284550353153158794228870370437171763773408572230361668652662028865897304719550319111854883198199478445633565707935819257840922988623551521721047247578906422568616668105510400616153692360026676256764494994339734661472851884668986416120186707917240239822398774815222689048516147084471910482309743654534260125598062526552543446299102182320324593748050003004041642806122472970941625059544058625465842404760174639475642755050204134606083147675255637280617826656905910173386793640522280141811670426383264810719191213344387423801080220724605709721517689174020567696382338401581738983856083431380549082809998198100808418279376232768353486671796311359882356052238554969442066740117288391219628184776124830208886746967937044938041246559495507927059416777062154914020434352655126041004243052330801355639554147869028749220448733699820129221964768390182141732190504508956972267652120693516320684892903723979226172897067910286856087296867003058033813721257298865954057529456236846783902829967686318325808068627416258854023634929096914573510397229004688864915210476501826519952146992615558808886179625361675129691034859113492039436178373331283920575225154085551398265680983491236517651537363923626468393483223434706482162329604613193426147896531590502361365812751910278569541664769145533068239914661010446487499716186375545157246444982203237038937943316414016136488977988132190654456879102654490974668637995623045784661771214580974006103911652487688731520067546073705251845823594559994999570388203936958310233082600894991807637777445127629141153594681011438992447500646508517862159083067759967183731091489703617288299239237342031219607495848139245914729228762498267544571912856665875026335327052977562344826163591236854694305435661178348856891896451848585490547410630810354294649233483543800300526610178133201172814583821727815159054555491916213656364189105106519227276342579619130886993470061652985239353760286353871632372890530574375392652135559374075799257424212337261060216324321215185168616801692795208287944265655758434524681320741420661196910517987194721755632601822008369520294056416271633343681361268626929609046013630516725485948306282978367655510816870928762941180202610714511579271511227239266045276814322143352693636671959891304748206489672088440789049076947382675551597620899167560893995564987328904195551985623219646492927468227030904824884676034577473912782450084851092340914310857080857707043014893026639153186478403138002483113058622205569338887929025873667716587888260077003384147071995246187651144585286750189725200397719751209901578497344167976871331789438016286280027616048915543564282356743598574504144700198971233405911173082868624568732306262038476145657857046544028504499771324012033937791240198950637554275991328832601933347306485591114798082806510369945502997201328956082400193848000686633086410758092041471831786940378917266400415312687069574153864883084358747668158407191509492079238645203319572245607541986420245503164953780370739318046884810401633486630739804814676266330668136549578373849279005293644987878928265089672025591254470176803948770914444862847302988736952352004590814414028721358324124558116682076002334198196011238005111322994485483303886608235060794474381558843158119032559782260791213187448696958227455440326236229041340665844686701237005893274274355398130640356520776557549485075535046307622941698368402948349562645276658811549621707422665123312113952498139714874334448671331820109590872994196465905897708051719819264922973138375885523869520539808157312477900547828229336162188103316451631564510259356429869897677821293962092717078482264771915909053597063741587434978860456155844467173486083852260401819110464462888611425899826066894949014471233169504698954140497608530439899194045927957567020066485538257028012489935317371393999949466619217870118369463106310977467715288792886619859792587989151797166604256915173385725551847975192525563387997914593887691076023513394907678513754707703947498803830620443696157674309414810286519040723683149463981992272293308664902923384644333771892352675876827588264786259148603577324754684828874122753433340742894262087876993530647358713342568281695820683798633291248683644228300723163337411918008622134380864883701579260487613058122768580411591729581029752257717874101019010645242823537607767189584847851532748196908857849363413959219406747505480067966596832378836016973276568441661197839501038311839847790248602125494485975439621799023985669668009109797597074346473413263406365162120258254674446089964337618180640949936135498526697107152175125606479320481329356900315102662087427651385208139750560228941394345365875052867944650116255164144236170264765354515798428189170135782973705868626362776754662127787781890221827584253493137812694993007090218600348095320049356819081104074425972579276783773103215773770204694898987278587517991257123290097494771988078836845203269512797857505278064648060330110287682358769520197282037138101434112274513613710459390237650118370342618899257054617641995214966962549882354783893044950763555066335455068796139618525446163118120258857430742328117717157331680769935312522478925067027954334176501191377797941173137786775688230531221747457966137524982710646658354706366552364044489492365087842700132653688582482839715637751503284940188028050962283416823724156564406052809986520732123856526953107304936368762661371123397305979632983256097933415694873379718096714167326744331313118517614749108713466948183901240453450268272328165211608271283938290964600059498106289009485671590063948738812812033185682944938359072235214055631529242725629355688614398936976618095647261696612760769111765314422396406261638412058108595855092579912695305229821208124298015106719001365627589253414901591557096135117939279770546236176561368881266969489757320596106720269269352883058232612354500729355133302131541219442793894785495869172186089445004049048492280518236737174619929067288357973617089640779292952282978721498251217056007231933868078052227857205226530407856555109273029731254906300525673697440966534111816489772009488055075836058934006574680710552778582288226283320849263279026165566848765438481197075566591577226016238392402858562945177336892036572247334738871189137787822198775491574091076570103192333392441548317900298164945706551520207127156775397223280251515196168330481686069026896910480010700729317267842511013900191264022397353885235174176451719152097744388630467141781862461712842091618313964815716168114787718518200015239925645015461417682711594029331541611978188029851808459369161417025502050363531346295834289060078445892705628682639201082667698208559357891583710099467658107588119513219117657048291899983982096272114208572731128729835559537276771570569550570348652820151761619384636127430621557615195948747710935449161492751176472073958295774524567683606701751365201478232987260136220988403198445349783080667083227488038402676538804923328279856573822936858515231109870782557845678607144382265383129427402708039149967577894952769827319599776193152304684362598361257078761291708395595414245126655056520021135653177658107389588049487441456309964734061847809158520870882940401191242958939952183822276980468588506968434737892474965862100467564051681786467837259491068484606051513989063497451584059845494751912414305117361854576329520287532262344388135415991186200146343980392701131877667638465051532071306648532663659604716138629561801671952612036679347687288071116843087975972018273378948041392714251413157253786967970283375693758217047350270307011093384374716142639080298998850885820474081517876366898222200447207758467709015586227796414816627272967016652579759009924465399751672628258328890689944179181387724851884362199698729907552118519571463306879676237379626542526705819451414639349713707057329240463604066590584923451445238996408467634619345316859932154361161614644614842016624719311769769247380177349229755080992459124264295196303947169916958147577492796326896178471086140190785599675145448151011294579742958344689073132713502530466013632024855840577726668384991657136085714809569565019095245473602470846347384651383801145538441108604192863755573784241951781358075574941407711626909525750058115325616633870945691558730387947639479024751739191428325807434060637041007768924148116149784581266348819735355242926148974049330920388719545614685298967833865055778901302712303345146886831086870619256164908276265655953688769231144663205739407168386904839047642006462356835792620870741629868689217086981287343109943687689877880001847480684098547485898420724032993329082896865172044911250213320021643337934035562065374248752657292707042690778573318906236996458579983640100102741477627763697459354896617176731577453785858689474092780261248898360833094626369901137278428161275711149512201304046030534130017877874920252619252966656975380120360105095704221959794182395512813562014862356380776797170906376121124418054894592760781669709361657236960254484078545701819183236152277075209643650106144233625496886758937574898834057703436249072317911100647267884990430408944561984732026872313683516278039015699228951416565638770658338343301060020871581233205238202319081062777234546880000207634885869972586990136298051459881562310401778454227006037824903183385359305419369231343269096136180416506429174612408923132295221341658100320006114069843918369442395817555303277661055657086636827924245718735556021325123884485634009580728654052722247455172781926948940360110491266192378667029612336744343118682392598000611594904102473309927126603644155428432716092386113570695235183841925585031376579441362177444261356696342812644490171487630335044755204293788324781041107194939521486208803025406467110828474236234299882317411111633147562414501320092748703426005247513441311016435878425471805234091702070828214918205123462644879840437242880997586741724172846570988884362854395336247839385097551072456922227376366628806282070018414645722417545850310266408271343823537295470189893227685930824848414668055182091564924299593194002937151693907263242195330729539527724412134957637332631247437047355288359382978976942814159904316686089722343611899008758176803721592391138823020242457737956210012337662533658353617491515984634897041105894422431098560367458890441225159894645696188122663800202816732271008121917487598904065645823280706293783400406814783246310283109445093186941936632009169059261707186755714843909124861980843099592952899886707686361640204531965741703028264521394918390405071246294032336073967474400659089041560676662393827717760019452770386242508858346320128074755686936001572941341727376033680680590134666496470872748999032752362750996707514118423863062123404909255858531300525739674612259451554336180680834333496428400213445157764772369968815462407625341650675956609864043363485677390688123651519316182133003484678743001669880208775411032098138743896816686483459599457048958536905018179839169556290197200465339772728228505249535826168408847324788636409664471274658364256269768601949596165479069155070823497711874779085023882546899590410704782358511756444196086951354720100901060635615770188200908086840291108273284147722541847716221078924200898847076641743873310578305615667571527720099705235761385064959895964758579291654103181640207066931406193927614131028387282033979266505036764253752281929528142818381150477344508528409418228748310677141248878556568254240659484491041866459478540064775678132017912020594505021482399621016556916562938282630477720447258815140127340145482092670027799597576052882940981104631755113173123311789682381368863498213012414615861380199590291976730867947190943276054967321111734875957201900722492546180793267179371962903113169735426500437226914403133342951345414551834919689647573989457870711725073464153070969308871713276552286165115295976239349057312045220328194391220157218295823366146268023933105089227610974345989117603199889639727049325494701599607593510117526228223951837622666403935508563736771150742211738360158328735588363528710632156765908940179895428768641566809971893371526772160597563515208091742096995958500280900880253433433800129059015792294494058831427303860014564178861262487466944307201460922339053787150378721832142321994275730221770914068854526204646455132655609845781872150697313865728898408239054353544726780124176415737256260003905007054219211133205255277355532637063928349018426703504992693302465747414710603414443230251983068227914604531919470538607726036961539937464043683760030569005312433138080768873991251482467277421889147780416893093369009421935519305038068609058042563952875260363459991149390797306162194976111088201222865015255919383839763579278966940216384826338064830866219983786611734570403827626392102606390663106050455071849065083688164881487425437881381106895465476466096355711034890444609451828389136331615118796336609277498037792326934869033362171689916557668578726517654519827781884418289845045378465806431087241803032354647419837198839941798939913972480012444808341545356644780549546605387178981076884558541503516948571923605336705465489624077146081544663316858110287677134170345431327069024905688689544757774944226687571525261522663397614484637849147139847784839491720164995017684224304983373892404786448549004033470176684613771070400859652177754727807150470894799890314140484810707651883031131692357190936386074780044530636615030532526294265573547385403715242298428606504117677179804937471300422206194347912219727689582185097351156842491283606159526522257640539120583742307188034742833629744099268412801299681061261313026161084315085497892189881857761989348636494435807439292600210279754507131299421369735076272903964815386894019569913559195862370747156857082086014605570747702306425686832981769090811944109720674308080477716599790863306719850828037150582220394135255197638505811319796810658397590697892965812766084407890297248819975727979147840028295633668638187043312413064733379544066977320389642214339511902440171853201596870154019392372826818552083570178554098823257432461156761490000120872558682702093926762641566811619644686669787575550147803618104307122382499205363245801774024731322769565061489711636531125261411000804940130218286573638660867400331396440349524724685893645964108121346513649770441027099576257125604123690612486429252712074272673135503185709988389859834560621501166982660804114840654121703382502619829416856916297597406633806839158235601320161797917658192967119604413241748584784019847500082636984533807796959298572286501637906694925441640185431309145038088944516290784422182931598572641947917966287280505973022881154547448092947788225535470736690911060984696247243501400755837805282983948051111112769941646360239975670206533890311908440090726363938791537715256535055751262261032485774155713670235461146941362757223913797675823174980864032210137941949349168584553619485409274577395354386830340983378984812187583731522343773521241830901634384457926636618710988544593166265370060119769658982391233071730516128499361888030427358807114477851574339122741288486330118748349988227841299267632554325395944329684359152056921105664342124919219178863174045829784710727479686200966207774911826511325994041303997869429460558730023251827849374555162473081401516467328886178800888650181021317135997467107266123546076499175339055457972427173904375912044443531260963915639980330953291042824561678112825926212288040693632988061632443077685158120056302159488717227566091133404357298440589765140134321864573686556688932866712646561012551101331019547384933313942805497795985051973336568948167908054473489733379811431889247541888664523029986139126409123248789109075284205094261113865685629934160147909601281074178217128190056388776212166976753419258891147691277978846669094110816200384795560280200089551210746303681662574007972434534352882672483994540799765876967108219304419364367904752257043471231926068629247230976803397055973877221329252746168195299109019410246416914987336273736773977759290651408076737341599161783462810412924017344026972884669581781847633100246992206368900980191245820811098803026246805718073731406083977016182745371593086327485368215137959919050837756185316178365355408726349267226799605647192733716015091724128485331670708471296881039497165455345060194440059179412263765622961108875513229063322137289181442569483685960529732714963968422347727409705566714910481271698075407224267665518606462719168394490919703367848465547378769720723521035594189866689236095769604978356327642883577572090449773921025944918878289865132384921387364202596634652782093070218042318319823157000900665731748449127706089899507152099468902161264239319151125318322261540115758752727788481185265849387802921342921296127502361481231094317030902089911534866549053738398945771722630634863721831870575509935038799007653900596713954040545403371068594574547695804852470117541245947226977627639348650394122970427634731220792945399620351170189330532273872788009734574883052482809965298793032976703715140413676061980098507510028817518624341575305432006656678449788532442850906149195016252659359409086637314436264988235485138386013840273766234431421334371907775298397455396996812502844834193138612157390171394937537178266964657604978689688877216923173677996244970357544604899880876957362680225075085125527116826508005142144595770694236673143976694331932987334200653817965361643736229539392170889305395596491497693824878889651056703753730480500693568520111440788273924746942197029425115948510801931507525015770649071261351189939654372273974193449439899704364249036766363712856113220020321048035790265480553338557533732568924642890030388811003844809524279859948536217601467587153999226714826670766424513016167431935744115452057521129210973371975777545911009691581411935939409076912084690664778039596960140379342542457891849570856417346763758744812063060394565315913138947407842647422171989377130093517417817725867562866473581104068313537860263972713681752557828002993179933838160006373136107582878693241111073546091395670338032171078060150880424431802068041044449692120065178635354512504566610883040048388569025439165844323336102515726352775673031175659612497168998410417022765019158865268268833679386005865012986462938958447890587940350484336812028329059225843032000585050337076083292236735655525941567811866604438850766035405326478436481273202256883534219152647027749698738970696565651142621259992797418825582773801338200451816840685353073841737621979306442926053075945552988322917552585555296907525985272107148442860343255280803429696134237560697916784061302234922930976947243480480443100441246235931279757706303416813405607854709023375962005969242929724922000085221861063919326425063372681402870946474457257842732712494968414196004339298708534698946307853619302255165797007545125772701875335702050046691444549968073684855676354734796371791301543545599908355226673263080784373136852948537319958682140517372927453145489441782154790667806743599535842401943632791919653761507419528814674667107431272580479226579067281856274461851239797458236083126180325722044942821722670009760825170627064945644262892795847288847681909644290245460979190846371532513479763825430968577705546317500832297494865267082216934941541622425272804791867904660220725324554886051700943798454535877318626131588034075777384846234857013835037393850121250088078333740663529755229808253807800180360409434732347397621961047505971060467133082825598760336863281342835411362500093527480813860665701426638987519544981574610081286796153663669517960484440915121847479970663239669375472919889635663929590669024998442327392837643368084801297047016234142941719506887239287836940945410504793349724086250538162652871850074445164602870862146138219944223987741569303977041618087463291422938142043128845311306469355661824749507855307649916979951517106117669066578865796204552838745032564377876236890375036729003568958177673969996430176799996820315781524244673922008541668717941244499868907148782317849479506273335650280498726164809310573448723955279945637411805687014730922994005749805773831281423886407446837204524212445217046974138431283813959972472879035606780054466425075236515726872810548680633811366655685132923457330556442416750433553596999833342044861056226472582019413470293198466572876776892887125385774492611033620800107159619814490039827897990887498557194580302054057581153844929831896556112672680507360406309398303588974598525922638501692122835711797730715158549462392180215990918494413986162025948939800215621117085704004735357587575941241718526701548912100687304902219433978346288368094859780426464824157049066000611135961589201069215079135843844617040777653134221305471119855119276495237458053600977178739123748532563189203064727120788242158643069575882217131299482128222267227518045090304659787357839427142132397527506435037517102049839806938653824588865370491940512735013503767689362522319878764782715212127072039047428572314400699030616448774451044307090870346431348597952900414054266450099428704594931930131296227370007198669353947028484025715051957596237436145705165961691026346436403594246630727775090554434477929828399556841258608973094655720763994163845163052711775212656181505049470293703830134272005419833579127857291080755618630774525951247220902945254055685685504762845727679730314094805207929418784561423250297964024075556558896035648051972949475836588576828509445088697025552977494428390053763494080118897112341745591300812170957121951537621311736840310907798877255851823980976454359190503844128171063166019247608408799856077505137393319331345193850827306674591770638430664829522251254477896034365655801233243539554149440054712253260694411907584503621360478175301876261369502159260159069094791314314502999180729217453114584072145884054526342855199241271446787318580104544834907329586667720196780670036275389129497014172903528857393160970506287532266024798751968901931070338365533214797261368791233515821609910959318609440443975490500376818277978476034095828387456670084027980484620140836058980985344554003039492637223299766074444234906181684447154591302371523670860532626442706232834902692312579854153991209564657233277841839614893640988054647077369652460158292162995137926501404730465099260922593682910685935105315556451480672341408564605128744099695151883661963779280233083535251390205085373122582012825176333756758536400555732158017152392892300559950597913766332853926752582835296306064832395610722221294930044855516961810276212216316901825764829493523745403222405719276803196308997606677001097285985833886477273377195763414331394565138876619775692134784293311203707736910933341202041646500984526695421731062625486275693903715911641469855260667652828396363115997251381181166973867249836538012149523261849916826536307131233080687401402818820541271862464976758533849217723654359232319480725802356831014900770315391429881827382774810402876005387295592350132376221187716188223946279909068966241799885556822451313279028260616347949989530169570920048103077139767439572389678823137772508074934592642115022209699521840599627866315736531142347862790711787716174870865947854877878021050083762281681460889889112965287519472812218433270439921358676586802843555976663696591809450305100548199632625583577013866736763077430983821420280068954054781313611262467874116342930714526389474531410550166911206424540292890228891461106963199579773351916900867651295913874743768776687361165673139761565566410012768277309565183891323857990981186979375137470310237051488982424980571224957425198210605887151868845949130795171181611136351628499063216136239264825497508539885324809918216732152704398770804985846114246382862268677853722612914342036026818712751441170589680326033628249664157697511042684930194441964007847741693413565840112920757129421040021625476821339540662188554793749527084627609052503804604473267457223241703205161629059609128955444213972871638674699402833725422207777605746497937964774251228595538418805306469833031894666597215518758429996760994937159412431852748079590113873143476088223892920815659232587440661155017226275092760150790432707108869266175837496386248143444641338910925067687150439293646409624380988100088243199905200043321636796262305107744129669489688204810429789452566964655377637371955255668334209662947665821578267556768173810059356013661180272620407486397041313754760415357098688800191680123863482930943475733228210243969598919308000364937304191387647372319401603125256939507461591289293813652226968539209591164866982746848750455185494176682637073000772430002174747424924055535631973770569016931216703768542478425516125451520660556427094936240494619760831815491106778643631159433670946032586096332291056953297417602358024526596472051459497522458049281361571838581997798167911754782828734166208757072915028101018858983384779155777018310392846081440570016793742018770820342438882084152275634805695636996737069152615709337867805423239494506979249972206909310116650139145161720724936997341074287155323265084882380815938871755675742002792349489281954283174061772616832951133708344932300425583543475480321916538544039178492554121994814739881266157420160798479882751391518804810917802581545482904497987230647102287326140056337565863506087752583375183868769604345920716869152503777454307114925674682250294915888191412922505447917814925218801776766883921491920194857653284167900482038102878608226879110300655192672972435004129865623583567788958103351706506504264403526737579796705219523731730791953870126437722844956744000410194520641460608518251474136223323939719586762688955359263224393336070200986531698040746997913943680853481894212992797072795322834338135045357256088512983505664734729674820831012831065468041719049565630496029187549557712396085611176086431050594488700482654106795367874460115288078915710942362082489269737672455003255280539570571852866077939254309586735475029194362623243297836568984236482211389995455241777008348638100347322182307646509889294987564442186614311700357046992204092765968541511195554110179188107703174974126705934170444257831329314852542395784291757778508054808353907142929912861642236676863980466020352677703513492344222766884173157049757498408950429564832830781601681496209294397278818225747763352548979117760403504981182196779935501933522168454609234374492269170854201359772807207698987293691339064486687131036467656348633300426705843502641792928371223855285776790569508191582576087031120961585383101641486003410299724248997924676850604874570159860262680682610314727808225037981975990647212800256761784345316845313409301924668100111771191683911127670418746008841298760334387994222223222510263290911473424564970401308787113676863465201276360982107826052375385735551719960586325963800436971824247401530345214876681154971876124682540420705621950242707734804099958132778441181469183520075017987294351078186365117057758824169569501739152351010046422891044451396295567908094017915350170484999713968967900450998526071192073530325205362991811280376065433485636638071739400777044759670611996192862176380260990620730613476855608137526249565564144557483985898166537321693379851615202539096157002236235700142729693710783710970823613327969241642910769690740577521004008340170457474072497870644165759358646057248391931597171184656724183012630148949224104953940279250358178998078758315075931516162595408151957785721634030404957184244523540106691486493697145443637912792677081052462244802646818685254180148087985037026409009058419678873884577042550941154592871802428203897754467316009786606115346028873219986148200367244967556130664589866115128170748677800592275540836881260850038673930940024427878885235108243138814056649048920859537389477664423753983339504957122007614427741096950790360338442247061528740011137346583198091755330568609155282295359726867184769893989334288553942835847689193782113078661532193579483228902458232305568046897351104427112368699343233610443893763456176839525499199907057642341223173589686714807470321207566293381861512061229774441817343396417041164153964981250839865930054477028798852887804300747699727877267615805474241812273703592809819169447141639979536433861502302841158331842329659630623822146050370040243678415509831269914854225797382475363676155810397710703452324182870838980376456339361692807519404428030090766558917634415930556683617017743747507036935981808264876361490189188529249869279946515459858637874182420966467315841372209737437041283682338739252475179937058171007867965375317683008420031414468030142354689016194820501338400000867849565994525736708743440659049272061435690770502969427289622015880207004395048426540477184485732292024024392653616764269964290575191607870744786900362454260346537748093600914267374763774541554454998554791566614414795770815334597662546477300744907229071353753787130548933351871813088963423585303182689761867426587049714965587734438736441861119006597745823774347462226809255498309284113108989805994573444095796007287319418868304060832336448015564327513345113902416590228500053013867463126015332388755153556781748461672773306517262199834325284949442869087815968559256372179275434621289910732149998503540470184281778187101913805909950512256828948230272999721682900202380208429564822528692717639887473456190027082273856381973665797783622343466104668392898436106419920099173501641500941024518667388754256584052274707305917613083736861290247636670636811617963081407800590554610873058077170368698627542635305121549581653453061720492706128512216333646155614856632797191387435601342534075264846499768927955619435055677888237690756586845563033018814700018241352944876673738392092389311464089569837815842248800324968725307840618234345079107690070293775437204262258054054118463527970373691175620543325044830872603440984816451591428832374454314775199706814488906867956514362903122684634530294541664647638730082784170209169491825622129258318781234679499087480357235416478466261334320066834403368085866039784706903143985036162032900668775206063477056144066938437857221222904833264674621855385987616477812748321908818221293265103000718679145989889423648670902258585702717195303092058643831083358529259963650726668061410586358911127162272592045663860036086882746171367359330834073524354397923166365347214480712831139990142650103936801821953375976901042243007637505533920186574699127268300815364159011542258032713335065655169840097448550173615215780148464210758760130019576732027689368697516450116308039293775978771728680753605478347557638975850825135207935038113079187445121770893403321252201917880895601213886597887271369938435455426851875330740885395875165745809102273208802082308992666157631845150736708684239955658687640683604517078748183315382681646594653419046842565142002157914448233650560975514953488534292975503930080048312391158738258527639856473821288637550332359748894467242101493382422279438556240356499434417511353144061690354575659526733274016618710503555294005480816546200802370999369650831000152538754014075354372905289724735818976826479540458404567537301692872605789305932929375010289107704515945485453840835581985301441527778366300990050229805470884341795162608335297979251920367623452856383202618671363981682248001117456818034484125127392960406661659489189923007431912401395898241819513892827735862468825444375062830897088834696873358230977162040589773692755651857908623628956303601841331436908049247316898610703025725760257857046350625486813867801285705457381672754076502672035730829934506578717889027342554622516325425790198863206602493789224660558839078247923936065600933925569546869994632338683172149880086059737284152183950869167933772889403666400602378131526399140424938278105407271093901430440062451604652984257206156914628466297305123907167622646771987700323177365440697986202253685890811061349900506034279494377889440901999399355904909436789222390572323054855092535543664654293843199267418761151358005402607654989008086204824717842459916759955474366946811062299551803414184963341521865648875735086288135500554066742289358620101835928176087725310179366945164867329490418390602259534615383169503823986172700030377684966537582111192408952624142855485026797660264495739980133123684047582452032852142575307955883728607824055377611874742335038957559002400043729419144133375255748190690971130022077817875140494958110535381412628398676430687468776863223582940284458871134492178176220066402780099471994708807161169399952892641716211655264773835242363868306199367446637677828664395277266803290607721002273228643248697140269032059738805134935673133242822552599646112298048036619398011434551035572488684433231845832226109660703743858763572346487765503110010893319969582253019629880209323418254864146030329438574014198742612672829382802043990625000988101304808232389482215283521643378717115007159086444180225826631791396323349001258121870190587013102019113369996289623356542182887828931004691369800808503433312240019369472157335647474252894559412308341608659169916155891899482315222587682149282482486470471753214685871426822115970876751182821583375595057921783317948792356399456090653669316658649234141616261037240175632177420047965168940031039234979677248159166782177353249492423516759152951198724500843834169843806356765639662382299629165051347548377848097874772729802690414957157619232083982393131622869526906352806577026398060018245735389560319351720002096580737470059024446974247214283866751585935265484751412440318824098392058652425723953554621595629841373112118515045743387940460897906422012878573587873407895999026139435255958143080517503306410205789467463248554011783112875204985221254756763540744765006136229224622849124716342178456228412872238946561056888519126772512409660107070310935029166557743054111995584443098461523183814893721162833596650004053155356846616517670959713470721357422879089181191316636088744163478858100742577209861869847655752071255197849075021750923154256113141264961183785346225140067903711153727494240664275736281328843471241907984222272019697236066277809481134469762339555182367053880283816801960183950891231216386744187446428641013217657876451878535472582183106653580165406438756252964186267488869492669654886447793482142346325599848179798890220541894961597569694213098814459882400918512379671995806370985791871643672935243982767734128983810507528516273034625478835285030708934186988423953512177805965217851251138330717006787071865140615366004553671255256175521677151545790875344227795747372162628063176245292457916771356706079890469771079410884107113876112092395380456640996023413800506723467640862589481391805317283218806494290571386905498181126658671112778919834211217483342439402302255148203063817474959286270469889127898491709981822277635904136241778020398111238020310174174641135018434401068635060010924926443623678844579076642826949572940911546944018045697031711924554833625117707716791461340206429851909054633536987900184735866880217812498586553902918675399789861108841025646671955909063928390636603070484046269714027892693087257989149292022322762078961416837848140925878410417292528559323698836217146229837304352128901012567878912608184543533116177735252429839082474929914728468544032717946663771230633272244203192037519977734560036825114223700120489998891912458380977512059235736235348431641850141971512119822370580193040625363566881536092789885618442261756077336638582927903856113096690684962372117659079626882912636423644881869711253475008957777176382468515907755070456367537608112087148405501645545940181290251978333206781524146595250997337506225855214312438735455612861304027394241953125229745534870016449817516504625115688907330408278355241092462186860669274322610417559672082357884433828321245681137288569210969449424340281310222835056640277612351929920333060150473203894807879585004242307342994300917923021549457705578054310680695059207227517657970352013700902237526609872471723982317795558807920141227077873969661920043700710715563422735826658219089226451685187687894125895378393926956696549322446565791273927358813505026652728407299845400295370375908469567963110763817327000749692076952106376866113537349594798479370771328127473004081686904071409065540144949609835440118456741448414300316758653457404813730421227427781025908679045934656723941335949242752346340644022337268961583654689265772518720433228723459493015661634347708673921057914261439718806713331677158931829304203822117077029085599155313255075626253928069743486587269331169020332192027635918865212483482572259733051860936720299085550862738870241833062606484861307517702633404175824743526378436141941290889419974444211619946970267639852453745851147843608579401356704327952794855645488303508734825401949847603853468892893955306432441600602281552301127727302198077556223164788366512618677206676361793820618445876640252242512667780668504313978119593476292998597045058547888522903576726509019788559280287234274179255650385040619243339438045274306460078778735001624424548944092443047124628487561892902735146049902778079171860697150753791271258622305071684618827245153324827605167101121737176624332828082976573260461385724447721887008659657611797795203960308501363311622413754056864336951949747028492870947692436027519336904982305755749282850481568503887960719556645487921932899194381118335755704708471015648961219313201418228461041692082176951758320040607199891469863276144368641143499511190978773505676271570877883253022283304905943524269419125470790525413435365967342744601321562596135118204609257016113413717096092317220195832483893429810298446561420137530651695577034735633461366405334804036669792838903632509049905773783061903385633991634227234102516296020237414132066419205089539816747327430304449023879517922870042261714293373865714422014005837447791344536297969900604580741122932697397716477684117133978205174187320653043899069557490272021826204750596220504493196009727143551250639587943025607635860325814951453626394611553571030068263221720326390378197013560153472967345440664910330450846738613189534209268406041427166421847225614784552305861542969404156483763360403447239519501114271059039353260319395788450237507542257327786477152861697671580198805763484878798191878829306621566166378822389036531526031390625275234624315467380913079080264857363627571061158026159762508638749451572053751947185222889343697213683673203440614658273597827040157200972478385920228122541913949201562216993587089419542228225388626439537568088212600821031592952728369633750325953531386837472275241226320022963782180718640970496695490584665404413567609247550417963514133271269920355545882612177146840544869526435488013261724520026268655959778803991028744940132964628159973372231120037646220327821616478723508935562832474610569098852015637980358161164931880924265434846556162844334725456185678962279614749724913346331422949916369362752270731675418943877740403972225146665735191095428715949051129743462432172787915978672628236388503773859779808834794248132080126959385018641112667325575222530098087248524653363658614368574834047386435276622086441554535634790991533598989971048680171710126164510814767246098082113691328707558824713416833471959997449158885732293679248475628427579880371409942552850440644211981554954266870376202437177282580595012550770539504933724945919472132197997319189587091651566841319699738877869325604552696570675230229274928197187950456845723230577529663276960156988058610591054432219624381257057544180500322167356245685284344854298866579482534198063806836745013484052465200563879794996149746828243586915024456982829627214489069762856301102823327570028462884247837695947971916146011747678814138692199134443097849213962142558591978111250984816714751335464807812572649247176292494926793528162001539892699906163701929609130837374336321226129640550322140395306492394241342588842684052179845447727769875838979068947836359928209239940401136162817292390442451555746208867581901454045536006188669750999334874991393114699627989937373917694837948410395074092322338171712483089669515350599299534551965638238953565233302664855847843977232158927373637591041718657522708005471359553391661327159290020114911956109936925445260789904979284706112226632391059080986557585342499401823221964272947403381919780099064115347908680841027887200582248133633159053334616049192546894118464467851326193926445692945637826573133113231851468238490785514375769482455497464978022135484939980734156625685163947250303753068685527183660963010625441663720857044972485421696483886574697152693681878369373762078808634843416397023673049775078551538510065201116901966174997142063001323070423167345442381792299786685993841755412548554722048692104568483701913225916389106101414371384158148133483067215347085297000601633740111777917278906261009703762906285495925471920516887922042105388249391799548831597261331224774585122697890524709417282550878172212223764019507889533702461866489426090848361325785818844654406005365869168681806735779578604922284687170217634731052782129137455767796639940514848307436592707899968791551648710656624853565550410558339404149141305596448761320191973286204327120967484933550269168048841034165187594852318285595722233945144306641761630508169293095624880686675560682955513088118680043173996924990974033282258320436261648155436312336741183850329507194228196438804734397478602970171438855798862154363935458089421913186836735248902463001851566229725925081972241402942784251193313217983304001296222812072894110289669849625302995503366799046559139727906441323890059736271252735424070682995270932310608881702825487523399666562259314136740778758516661571205812733304867417474354148448921300448840972949801477691012927483124818383691481221517226048457232660471532492263101002996196678003770363158451449616131208881934898157478745263217083703064083601541740342269860137610112067501045766882971599770093725916679463042605294742151623508396582499313598569764997548391442838571520489353266873353493864815162519242991010827043026304876222681059109591076219068023793908245487876979369208462810805673952809778804972372854867568687576265408522823370325913820777280045042941202550656352009878291611969053816489193350515796164256998427698856075036893406771177440823919287208768840226916761782014457105764600884757964388970619196824251631144686228996664472505037779845329233346016846973187304639733944963904028511451749936937611408453858542582084969082215406600475435092047328640743089934901566258087291565116378548135970410100737304937758606261355102765487227396358446239316688707753589789617903444360628538759890023275679832265647277161924397810234510634000114347556983734685287672963105474749379704442413846662038107043289358363816418566561969568901148092152086555854868417339969896127342153609807479718527601906011983280501421983525383747479643986411154749253585026650981419375967182222320124745994808231292962900066249174613185533912168837889769400012356887400735492289701315470190586373843035660821956178653195750178605936574759900157726937038850479198741787786150857407870047471415171206483367440487726556578013710415596174325033915493119597416978490502519907625367017236573094626607092962163755833578537705775042758651376797689617005339707870604566730991185650829368231369319620721133327431797962443782439650086564916414627711781155959278321156610543755360996803730834128920041800204011678317301883400449408570841944690907308631595315325220473817007734429827070964528283966320163013732678209788305801474828649519824649933130550581420129404561537755989240127852845173678212852190434427479405757609294511415571507808691022380354458854790881835402136993818396163731603081900214152870700859975763284730667200926827667443705556164623766871460225520883279751799986773066325486404039097688948390347297788865746271647782026042425962128158415278516875554145558030727281410465314828926748438013266568594296647815840226273819700548824555834797366297996519167917937106344168326953561849660682460785383271728865924754640432353511029589864885332488728930745626454650994599869080477382534746437728312415183368181295773485948353584666935693541247403084687293222726082735859799684858676764218626151437983161883947658721438456238363586885003168687670351762412018256006222573408181547846343259238999722659898132209409381783742740046576173185345474984762342298491493947222818874003752934358890811910992000508070368110110213942675041434025032196375125991788214339885272072501590864163076982650498449698002394231660710280978792922916412985985820490987920689941987134369115445979197372062382535540221977003825417624439801019443799948102321724339911455579151408813993083523934967741131979204806530375478430828921895155886566339898223394498342280979983777771664128375776789202206177470963768326694485909866185032793281122004917773232029720773008600216582355359647794644330405464403600358962721247441509614348722764804608621575913776666121850140641844218834406157668016397841671826710141199975547316971323698772171116183356803623942111568267315829767518538547929180385139431873284428742706737254955295513089360603053903481562519235738007326052655216493211799387283694711217396971751372367450071368342550890386940059837940862563217235650236063190283936195881943266400695825505975703442734603319853499569687509681762133696884675418901663237464768159810355070889102519473784361221339439429703614333416820643232192001326190576183158228934794110008218495532254663268676818744013630375997028640691651876390051847382331974223460887402921797820150932139080303705117851785172241954935289574900038746975084651497548446379031239753140020576244924294897522392001411679785228325781059686005075951267988250557265096023913312939469471831137298897720190104919128968224263831013098716039649296069295205507925664516658023139391519806907207641251492652356114052362964013160826987316029303249125186554948892063832551983992907687750684722536125215415748878382896335063577194118129740164891364870896154299933463155221692567993488525699320694177951483988986936817755222509072941245299934311661914178672616499813333014947192636989691619361368665833805538757125705455391499561771205103913799432028344304230895930726563298556753051165807340864967756407540296282872787831224849263283130627060290340214940587902053045013186120572951334260736049722983243958194339394830711668764102227518598564780282255917247301430822419130865054094030610870370384887365277697164415460692234964426114529207824081837603489185402250368113084156141800020428977393557695488273428263288628103716326000798391206466850483022320648182268884748136614217940379540128311158877968301854599515669339554441008829569390893314617907733286224872400590976588250099245506899148034211233188756158447322613719837270711428062687447780314447870105529175622209224996642622818727638596461309708710323779398475694772303972730174197688324828136502208289116581365111417369238026284317752928844083517150239130310401923385738521058164167522212516190564122712448954497547904862864005308227603265556675345040598802249928896501698974090378706133088990945588012325228435911144395263844233438360895627127525002741696137037012404054097080443109572090309413747281543385831219389040346001639742232303175387976674684623399772609349985486046268103901989121580773950093078005548492061676658555372061780679979070214082666371799510666255956058840050984650292061358257054641245898631658744495167346776871824159355242433898584646225912573714343781198641197810741507129521426116781688017972392955447533198711722458943136272745476392039495474378309227921634228001233283423554063388928925652931850695452975366729694873869765881771367851002775858946778042708394270306230695274257943515935585089074959061821747304351302987565217518976219624577242672472937798204968060431051768133943335957264936662380918613431770579708601544032122839142972997100384268504179443045627240516011707455958308174598826718231324452915371928213827130726474754342291142642099371258827021301564300502201554512401547036289948098950442378431763730553394738858739774474815621775308414306697924193604102924186251007865147586185160685507290936793096473500306933707816591480766783193687653091384425504644710981376967754630939132224469162102272318785242855997767318397543889435385252536758931478476146561737968462686457051812087104763953614204312799061215790523935481981658149012587435389019376959474300784639950978295237550825961301325523502774799073961913028401584502381585124930453788597703491310142735234056573590530671257780665865961573579540206848108370033418820694749430007675196869655036923709352788879176186072150736333666485596007286722144236741082592290927977811155783227342560850965427225711213898357808161036334033559542484058558091868079032176658953894319481501073651810950191240665552732401308281966935035235942562414206528922376070374236616080398542950351350875522776085886889778941711957120163831114379083258519925741049558934527244217798567550391403834145506179197942592741048250955707948776275518550559986038429575467289970189291755893141972525322626811408209234515285072641507220972959376424241573097695730963955188874288881090455683816751326361269533716089709333331994731334463706561186287890078729593828757920063245492511869481517435215878803261300171848855059967843584827564226758796302873787907174970261968194351369174348670903895156122994154098872276506707933957234733269388120048884765141063369337023659439868207053582674286251273196807623652531655556401560104831750803778077498396512377927011695372981077190980527660764718902419625999247194221745027268493386207517738900717198825075622139765751289059137509112170782893024533044357624358640520317639389871173020002033395463397703685415402779311029683757679707390777577105872217222735608605374544696563686406101241864287303568041539182620489516853204150179751733094956415792301220126632282184275103417352358228401898696106357057788646916270169496593778636665719267833602126862932856254694030249140064100698714319256802372669979790742427626047920162282055681038023847363093386370292465184034724629517199700014082723930007800387982774833158787970626827879659766475370538302962200909330759008742186339305275149656004286777750676950322723000994785606395231918216967827885972873498966984037966977896671145326206840722626776407073606321823405527844454908015280253100339122156213561956193391642646451754736316613080537553573804825029949770134157820196047297402149898419965970308092925385525753817821235361537258521784698429683043053083342938782053352100438210480317900327195474915731306972682515161228255167308731929014354389157830899474311818056493496826442400348340205114710009234090899004279874493960003862815039009324319155136803074213294067708586169701870300696605048159399083353911515786853245358155028555249286949645021318483130822529625820596388920967626964328108947290036073221544266419926723669848085961130483599653345924765377809607268084336031592892501142655561751048473440204154590420803799741390445195418337318525668914579490275258784914623156081571755473304080312461214222244512116305482871892473220988690266450627016917228386483526876308600458433308089088937883711222872612490166627528032632985647677126065673892398776902709576808263392498332810283851096008232293996282420618459368512541463251668221782484829553224904834945353863774927451745424185349079409092848922860092219473620871490502001038410508030266266917960064497551825327940645084252239978707711195626102400388098198878944920973532965708455705719089418068985025994534694986662576984469912867289266101089446161247807044831509402449793562416977434807856506913279636439168888423546329294564058629717120369587888984602767411454189229781804412862296750997326834888787842479115831697515150442676643313962569492115263436532405296391660340623625072127692430153523194241677650822117545123501109054629010992284203515419959121707391601942074589567118009189466621220322430244801523796462674888359954643886636944409807044328127991459079653889159252314011752445564931849401472903230920724187989559900321034627045373585103931363911188908443417565785881591381982896423063307671981833674276097767410563866527706808005529442923549786230907471775203614249154757984025333975965091217537498707096267042836154368896441528551770220384831640906182187604355516191154936172182445121534327996313961147316789793247895232522305206255151518334388466371638997981952808511755434669354061154056944327769454505008051412394369900867043322977506660507921556543996403002084397771023007318964724593416036008320129611098734290625254359680904831061433791366852769324830213541446749934539799919375985778477536641268836204791593317325196920114538688094392790684656063948392362462997351536605608055353694407834531480928200974532473656328764808222129498374008587074575547240261941490260360183206826418005270867053154920517200517561148072950803214072128483280883418277666459671130647065497962823595999109874167107005201845931764908482941238467571960193639731966095486078660436422862820924375053012570077972967927198309861296573809463638112700568276045808797316888263312398290750525905669026930033241180050559633426277023202486886774522332743063109964481390050631113059124010469466911449130403997105447254958663507661402254508180968200911190035891125743147461599448799341551533690437193899671244459232085121457380347435207963302813180738557195683828507067876199587694889763169889530002299071216119316031185556340191727205051541631103717711709824564640743507637065916244394980936630204014492053602622183233604770569498021664749934931357171217532447736243155286626205302450230274838294126317007712728575594916318581485163740130614102608578299072103546542367976199932152952256240924195264375755024631133210226877890833159783583720064808243102829632102758859809995398756189973488920821997814971459832260790337284984355382379235801593916655438058691139255308765946156087414327567644942251816812983725263075237875758692544366189371305051744973508768578585419530965908104613381173898171868744536087689291863357026656142900240521955587815820676742837879554625404695294712598682511591705791394705899683011468475858218235082056069575250938350895299087801309266180783480507977007775024842135554677030090542613985372775910414337044411434021318172028959211783238292714626375944878135880597634877952260565927657586044605857133019355346976382889256920696203590014210335804032546927456859734390982118369795831574138338312936979056812349333269380335971426073282764507786575565376978335310016953558116157274166798013642594128553200073079542288315873334371007673675376114881834102331172745839113592914883289363174672379938244252738658606853347311192509921572126367123366861297472417286142715212023685131718522714706303350392631398377523848768549777427075516866100196965010136547473811372637742656019787969445919754737116568230269884415076997663148496345496170471213325532208442939291534281111503321815860971019879523119743834038494000241260769411165547217697214658419258133460765757445813401276504047267655346003699276460303675599333670894276360614600091825663941785940127057707400629508056433673945555805938052743421807852873209916382147633842677089460158825202743124665810646146225356969325465216351018401266659833932898472419493304434278155229875930187669176720934664995971413678607158424445079946000744778206437294875768492271660305420796892312690153453694437741652200540548616348587481515584888666651804960191528897533156608505687845966332258452347596549155427457272588376393744856527916211173579011468386284278892000871945924149727535652440604283611986192536909529792998998283594545917396700410819375553779868495923121024907605021138202498962962299268091889893540119907435323312867146548287817190782688005570232894566436558112709878305846328172190980793734272960719581883451833663785463165344118618139451929231237101565825170893709086047748607606349963472482710402792271448446289616756227750157511657289284079377760295184501968351984150854639097378063171014295995708359814531262353516857906467824140921215424953700886937213300264395427961963951432194122435938841224336374353890763424052942987683109342929044552782428205206657907572916456050871781587115179574784430341354073858674687943285433115482825564142423995916393912448617441029294010117474430335333820624028616916084658383210024691505897821240722461586655653321565377318018108753909816916417595739510361140421013641455978847156447316057902662939859093049144612384844582333105749174685360336347280059752763639178126664026940939826201510336094769881242822517947708219289569502476471095687264589669497811269514499063215123703475180576146553190949856116815249962534990407147287237626648511585432690991749324596186976269507441686251177176141965225523898658450950479619137198830659189395561459088470658955209783744864578512054947168688686711650209404519062286558091798714702668458556099683989919183706001227503339134327220126431951390600362416612393960052834099893022116842222154031642404190832587568196274013072893750891417211571601307906311797066630956508950667703775225404057549840392467098600102457730441081203651894594095289463212184439265456831490123469719480704232938856345441569600996173583220848875858263734116616270247420809178246999158928292534348412883316812702187484017011142538064406797006320213494331837277549213445299104203803535728125863783831750076409230551066225767234769699005625619713952654670512299110305002544487112686223516964902501405734046263461129226868158025719790503235659695659961910968196963841688905316420563200627683314397056669019454406411226135705870025029192101122174671535032396873157824602151154396190634362326012326733623626452356367298710940052794335652192147762826935896830126931723363967135544221181044272101346753375518872991304961774809648944058996048851627507803276095143837108326764242767171626557554735687991984950758643469630177734492263303554453713882023439500496079009194670930680552722963675995899205079152045214665390437828286400597836991773233264079899054871593907511488251004011403387723311923756207786129364945933446961450717733105841677178098941318484561008035530427638080240032949682180263540275163607260751421558026501269596965430983233586358844603737777927464404096200057846030403085401679649104517359831302907670586205153344744391811724503507852810609163831521199013934391441992226088588233335713353686516212793060501307557135821331319687736424343734273016576286332153889338132627932534679483329030286266569146561756679101551004660000993548479028701541342591228079227924071556787766012136228628892842954870956560582359367885278249613539603000905503280063468533081374892797512509296923880122554596255369600767087178187311690907311636678397222016478061026941768635594656341312383128068956311289413601733358724736608085460291022121757303970299180405329743195574151526369875775491690073209672188634163500952269298266056634485109776507496569972504770615123539847065376218633936060416414977840247126270485485540387995930641251805178387230893379619666832891869347434686200698439162837564872687860452079639155860946322409911585707444410426095482622650890753702919223905728124473928275943307429179076735275708677204109696655826207053982234178823085407524812284554349508922457921707003767744321961763018160844957924284304589456301410412261613937513693544551523048190025616259851814437962606630959038197417789848672589588416564697803036399954346573768224217834515872120600471400011461455107101337155689765721694617683290848556171397409469554992196715999406613774130207656045585493347856827449507595008789506320711929342815482009162358095505955377024859664181181142593406831348315018468406536621433707619816685824670168695937364751090133829072217344846702795935111356240529016448145501668671242000088749494466442219621831253237604015749436212865593136479359903450959974320383606524842454805080098280408357125074490007578966006089580473505652286793185711126318962320239562339615863127799022778906260038328811215780132771115807320021305983866100823996136720957626572725513832296488426775230489637832756899998476115903088860893934342991340140371969234986011775023553942630282502153391169667116462446697996480998777669370129406431684664969414084461554537216644471324385862786091030431152145217357002791646294016657378019372296504882834291134389275369810883419824641957606011852162567293792243149348137936289941720889791510559783496624703487872582663760398920316095894226323957664898384708512302878772983845740052585237049348899666508559789706642532341259740269798091124004776991747333645259663129376014423431064021374830501029852561695419991934818754242580233655398085931450494404766131235041659314345893478961554638126629772475319224188456473506963460356154629284590202537288617091797588352878482814846428908671237545707793186412041670646260273806074343526494254637666199304075116945345185907363742545078846805455933751395234724693757785452444485610116149104694031494668807273737984758471593838074603581366039167617000227293984590447197200525839388994076084949195488429184235237870815615595623686395670525556134826931813797060528284312438721880175454506797375912565294973941083066165469093274256512711832602363678576179784619933707342263788382536011584945300756012692494935184485436645661592232825867067745583282120477369653774875094377361726655772136660943161761329524254475522175118832766823454440766545387727117083441133958188511958187829846722673004510467322712154160750344349646415897275694778301391590236637731540408720530765432144394230610856577200176072264433681196706651246877835170416923799875287318200514424003525957782078304143862092801968824990969060543307160629289903780040642459503509091482910378852762083033821779941794439805998983279694475890037257199763599628897316172964114163511933748625282486344418586500235185006732202351348325007602820204826419855940864708669847518607763093819904798857229738037432102027344042367603288247531905880795969989101458976417278449144868206810175938333466743967951697030106423556827473033687573066329861568020631178689860322416245850576993042789050919818293916728146520510034950352973032691444760256100255761332760395353221181149866807329254045140000383938676318605254182817499348916782929150580193317047772332017082180267989952016976058465132011515737744232562243638951518471467314243859811105549410118401400140793296963458567582992931894125108167768470362271603554375386450749482572507510628631280980808218141241906949108984245928477159149036475222557321723677589929238494857872567923150151861501514215522619694509848354047122607939333293164818576175426593022649269749898766225472877268276659681488414419903449567363849512151087180591753013537350336283807459986669149621669921445113622125359978810629625031261384164066026122333546975272543826016986475101113481898054582851262574180321694129057480690496081007516858277472994966882751563472715066154177950742732032231867053036164488903742892370852048675172966559976186592236532723485568613989286474297729218125570238255413163353002656336384942252325475819940909323475826987567456270840189545571422989624510237905005100674612231203040131455825168521096024758105285542371839303784126692842906622460061244665404494740025099245940852602074920322881993067958557105242792981561783735241696830642405539023755063376172068385986987262695469659673363335241410901454492898251652907690569896782855553649189805872226911767451958890389340986582377628965688677858191374946687416741188853933151189568512896570806644750170871744779605078524173043267066367106694594615427291059085491322647647702845981521350557925338295970490609233015582753357354697591399298297516729895212725707155471378719819468051291382687591263738966370997233965667782754419036067030049716174353869300640213625850691137272960252931111924709341990101449539483998840813672985544623075517632179248666900329240404944891781865480248975519617608242106495581911515996408861784912557613839696146918294886183073640064912377510086866946510179552242983963778151056564839534056264433925892019370265640867672348694414947087610179029724587458879902448510509080551854526416575227705980856170752289912508680271623324317738743054372746233512121670890272988429430200586384638622806059041470350166546692029397903736195828512621403227526557764594109756655074167326718913018935798137157296164070021719187587060873751938303509715396809997074625637082958360496560840292849220226197511156040704867645258997705313875081607305216278740594322302922542486837822109936919784347119110312018984673012981768894335056531264752346767721235955030416748642064981693002445558905098119394882536057436777055649645268361438505373540727123496530963222904136475207100889318927076727371666887420460852036279181096658280277706080422597668498552292376397393310899269776195922682980219527675115805014561081186843012613156826660758552619891872109944667532411469655683366953474492156326354346699493404957386272210767533254616016639749068617997980546055716638538484858716391171965739801986840036565198181283494764781920519579551099065808235946203205543776629869079841639659815991580558694388854977407316463593533944406226196765108495926049711225789384125897717295400233658811831637859998350415704340415669249488892998179470840216222290340219660514867068972408518711748320022339634806915361608377006093764983544639729198408217052002039958411878042122915256682858595710934133424966265794067524022899114915461330968688642696928328029379344827278846022068392410584623226628233371785808462759110106580858982309922962685814468380073190043820472464413044871594500109837690101032733890688432687156636106209024855140030294077017171342230072911743042776619655161218514150529786921958166817267000461606519636426347575275967863818476467138504455080578670606629432665667563183236436513944927527449924128714530165362716119248332621103314907880388277141998232550256586757048659579171259087869865136528148298493066260147693422113473548681008091172219868569242185915327221745592788688267706485479920857553333572897040155553363446986309406583032882630716039341589996433027103952553171389204902621869920096792816913569771578649170926359770838229801321196649960999584804961476513537727429953937815839449187189061415617485302454272439142985015086805526877262610869893132860751628841130623261842070013917322147835684889605195194106265877930826391379230441704317442102091599714992845510273880435153409998726712544637384403752780824156340892018078341152797088494244780970119209278297722164056195585525998235581590299002517433045639877949561123744725134276442731748209359518115648479149426772051776466076238761836881263678400813144299189106031995435892621399924699440681304889371133841332525523768302015990479286045828915012926075923989618397895763176989766810610613060817950762005851762175299026251449727489173002453631750529226288249440376596631356244121371971851435000497047920095969509927611547730897380780114891587576279984533414313306099413406615237334374680616163912196375393765189025468825249641772954842381500437816884677215477356067511948704501722352208524246261873984877747369777353607018042718408078622778233756903532135555714846636030395050726167161525216222025688756036848977256931240331032358839539756315437044688018370455100024345735622042053785664671419651359918922249626185490127310731398476484611241179053538609747292257138364729208760103264612768945020169522123900546806202411738335045518798734892644467609951113039557489842015412884537195790890982044559357874958597099456883934154104142698343890951856542462339093998985641043689930689555249515778233504761812864302441697094115622099421377366116037532942880111883552752400970187125899604795078763560318358038930881331199611548989956759766257592471896662068448019447524822161403489888845942074864205789701259033115837310642747085947551737498441478368997399433211748747364705694822107057501449228001591234326739693952939849254298758363125811632031350624083466453069884984201552535050066218937646366575494231655029987298774827959185712036638833978456081238150539727502277922246618713194290748561225124211443415471273242736283455214308510474525358414257625425518347758731119134055264663939985883528367522543545651651308884168729564669363627338728673274533461252103379705812919065961697409364955495015753054857321890551398997454987052498835013028236713012800592922683012164745311304934289578128223267189795259226065285121287512874958065264551779469040410699940319467083880429706772469014930916533388343194449575873458259190713580852066213700079420275559691556305648802196653454964516782414879268536742839693212340822058260983971396533604853855220447676425166103207391875106911214432985705236877706585749209984112570375117523523923378868477872594841946083254626818336027751652920958015383837441358667400429516664592570512814180105036248099696390066544356006409465655957902522142469132832805818762056868934548341407796859197860134337047258871651835051116406616116076234156609557369210091981546925985446686012869837897559350902751060252901435936411416305637338548033548291237852361908345081800618943696402591187620891579060159731188590208620084088585543597582687382554780877836178748009401102512448419927721408848005549772714746566462235543482257998376294834944945174759767065065451587997468298433159836845789098468981390339523439032654766674201013625190868326375721180140124195825414221872518086501381189443025984193448058337798189426120960789007446067843228918299014428946746145803144773154327485097630216119484531009686123202801140530468510327779930834784341778096667074370113541188108537143652956033455093131654992441157500324861447126659927484582535114757074230859631574932282478079220316708313721656741432898289846847356882840671902766074568726090427941086028320758439366714669457923823022233421928959210171909218928984022138180531849350135898166386567291921240441233464019433493377581853305078995450671164797527731594836036039925584045554835447074722177650315401303041855172362488223313186388245290025625828853365595528167275379853670503886432197748677383941550413287259468018117890807296780922656092229884903139235033459989235706361945163694501904762981993378814025457958224263401635685442159081178600358538568246500291001644493647374806260261024174466718975883692952241483487943711410490221583891353805486900486703059163731069729601385281002621187510939852428215385464987194802229810425200830141439602092002816820209805934403261329428692234364910397569945789435732170586412954769151054914493436173289916531464553958571357316982780342039578947256298602987226702342741196199893961570892472319840977509048773742842181831435477488790288962203905723152443071660295667024731649606088141159820201776333820970190479162803013712162542794078944096892091574818492136493084904701512830039046675568151188148919690261634958340599478226651670561368198198530207361881878999669585699056774663128907423230615126761180356244373496203264742128994203732580566621313058218572054841017887457799204091734574083575775579194398855183214497981790293192145334439078456622161031345822344354086894902254570664009949857405580582044397261000068062026954374477086508710393278936502562915585381461107102941068260906492865073331032374472044849058936260902758907766012298549051689233421235718511220945737312942803444618748026823728149423576960530864003826858127602352358667568760675875201567621592871770928552136834019987112379565989351392472309466262660536046858290716467752914943383466846883126574949001923848194289167093443669123746851512415218080441992509564730917639895936011257473705329191074501886690000280568841503576598905841640681085385105961889891612118207147211837084781351648805092833961083551929310043286399257508804666317753611451402591911408008817248371221907806033537833020520321140148104521888069165588908175670247354450758419870275039063261851647045745299025562847484927602813383464064421609718005358692068754809904121631365929580934769736833229903775695382018629335397300984187606875345753100550597280107328065073408226307724007436040064338502211542894910174584477934181954816801604507486786041583067069692406181828677571910117284705822530212397728919494122111076698023874629556905055775129140698677988197410544857184880071255042850089006567206199866848854646652364261488875875100040948350337373825467531138657607046283359009535832054318827759649682834289582610495777360406751543382606396365752366837951638695562007437659796626428453035161858649512132760452297884346833516441413835447486232277616449476926025083855981905974136050215318840531364577037519417570423534838879547963406205688674099057705438619255281061181660950020662900233064211395103400983048390264706986817704482454856556459604288564757367916690234575292351503443621282227644821112726783235053565588745950208156243257490241567547916426187540515143036557475025120065862865680728397473486921355689698489144257105250303160608416267994147281276978237294819012636471046461499838314607365749681249658599818422777119938428939610407946426705400469784856496792757759383207310609641010271845819717400757772800452017819886685337140752472641154945078761396769750231158482751851615870875095970731767112961147901231972507945616999413041760343486804982570386910736875596914564260170811691436644022434162747577398022589427195533540137408418258481905347206499771396222703119599140438836057188576173428606645162489261506502522131393076972931743733046972865720818370479083434763184168951726756046836216896939453717742330983694002082748331967232954477218332840104851781478926801892773525262189139788190603983214931811125868738990774952167067072582591789129012657786017593738919466174328915321984874476569666649624659166698808177983801948229628275268526693847859564979875499792700330429179802892331644288007515424384210306264740295919148064941566622469269493794577416702727319557828599249760507449109510830710295607534802209002437037151073287684753386574785913466969447832140406755124705993184920734408824513802204351089680526635671731709747575306509722066266756421254810884733342366237559242117135365658877528322751064837830509048675333628036765818160335754591639365017216229299491666342125212156671850179633626600171874682806370901949399799091801528669544017190945545644672170623640947885994360671195916163887884027053958756707899832172622557445242145084997685791086403734442414891353813726786860071280093987476462204329246969893523820024040631862758070992837735828464409015879191184344629668668718817646004874199878792316251457290019450650250096922441100979065120063356142925540007038536656375929064413182986676657549172209023656926895376862803788755124636540390326204113760095307700088736444111318924584232227933913898096924528627767341739440213140644629461611877815328613014104436681525230630107722164832333261819004517236747818943664863859848192492901101967835680797786296871895064111487563902385682411449458721169888745451833783803957756057926820238444421908756211700418644029960168368506444462405320024233081619781686059171295072157046691376317058423585864489277835876319158894822886894616390548767095691548708883490440904023771595956860013628939969854055305637161256062880944118065127362176199255071461444971382372462040143463154874379057062404156284549243813337069167749210017553891682646064097167471301690649549123731179363893965603312019014705444946518544796765050950943568511699188790481884831318702854379423582250708535672397648074390960680363034250710594015385492869669485001267576436500771539156703042430830116830813961356693772037331155671135577114221128857160518623490431006897982086517772050555540653884582718307664321165267354775611517996365244439224166718467585178118604167125834493728294442794519670244441461815750910933953299382032325231070008077131881913362773689794702407964425278693548292994651732852203090703254119836640168004981927717563570065436513091446633706501968573133757009231442710586148576771242963015778708785657553573442554981882620402471525255223163904190123225049876052599489732919181402051907701084785295797313621823316340809182017961490374091980151480815395238034724009657491295275129898780793032383791323054149381388474244617628226561014978441254904441661466259030619698876821251917031741288839969985078738767697935989981051828374140406315517565728905703088913202203652824983454345925877427387995579429034444090387036245595877525446177108630271159667712561658525941115460574996970359857724462561928168626323707761651702789999665585355348545263435094052618551749896854372269361083090339069793880533294467490647091267857512116858299017117502872585322576393163984714113788617605532353994866919892380541763984947650989385998731597426250404191296968385574264653157906781306541282745764919732935347033114885502250309135284769199490120992960866393040678604415013607843522306572546829655686131220617567825195927291707677117593405517899640657581042699540281977991217191118453810682653398040287414078110548445758095883150729108244158622523858242269413596855785396359495788496890374888325759974931750885368768602128828111449332461227085296845627857799713410586302704367992715178336098725724819204343429943245794434651036175577819935189548654629464322511761499460618888808838287067886954241472720907436069453509249230213264878875285955746146191786406724228882254469979292084556894871147295509661931245054453622561552439277241734849539504800587814968709909370327930361649604223821904517349339386619677483290862452672385129803390594337163641937503930389367492398491187740150710258849394471954754773354039898053052310468228635942918521920874650086080695395379840980279508908551015333916268475775998369425220068358317871249210153165764394373277000454296829608988321602124368785468057895663131879713395937524041636428627332057189740205377869889274361432052726446651977306508144400094442892328782386569188107741163617537803053390529271465352406453112518636296168547705040179181648258326970555152107197878655328208552212789247237029360171648626319113247798029885800368823411334714419233511253789268287897068664039616179370204103317624135619717618744441106610640563298559409106952281400779342517103687325559092700735942613762208232869900400832483476486218146982567798003605049326170736500862982333481572246077427927053106357418928388056578900824618359968168049692819238455518801029037337977541266482060800268194499997646241393424700645786180073067723149456774563761783390479254568219100287955059438224234137981245685551897233153520881303263854650882249776982177933950759608846205609923511295187057882580328330249644528433589042466645747599211581795481805236649394362302241790981542141691781349388134907993334217522578560331753781037280618897557668405681992732121915663159226405748988595456686854252195902833203294154435535273873070896854956047196434400732768022879402990651633535363203800996528842347846207643141974012544518184107419311146588535004267993216897697610652491008509037100520145903335377685875871095204401483008112435441910800335605605647091562686018050475474095523150236785833031594697777324819121739167628208435519693860058533999001834169110008290814069539256224583663948824589375808783346309388681188723115097733305417874670962161005534737187936085172260755705017109229644689614870831590524673123555016655540721604459906137748914586689729470183950686079425072562013152807298968355579196398455318065207064530613701545332458895407823461347547754119952515403755660807155135345891456554088948176933105845134403165238552711714437940766782456930265761380720492306279380623387485011923081644420847222893088855750570066553047739393446626019058580318869651347385035667603254565461398269099237153302647904967651937126711636292047447762497917780736363056967793435822940790128414670212969542106139030771132587428630245414035974103938371193571122205042673157848976475160053128345276739977384509729895066155165663028494942044642881666691228507656577707231306224072723353908331134673541851362618933470130794930459782232883855089038151793076603797225497507583420667113939512017448387850931760445826243983427629253499662909843596468604392377995523997092994349668114953798379417888723482316601376449777874946224257057739590073858818670617716206132105863937490478776106333093204799965317153828595292502953587632494984075902389068622513082730528379950728510124027253196027819601767127826111563701466472384389222161235003577231981405016846004303054581708673227642401728348143255580285985437802761930677160195968364499480018258209889538088117092985040615061741818119103296952323915901474520275463134502660426944890059533530113688983944204947926098447756457593261842823427454000042064172678610955087251615718495339736313920581481809028990337406411527873639504494023701360028483423149121938274430127510213644023513701006259177565584379105595898445569396180147496084426693750961437843864470263983230599444620345271173065038923116015463674643229148798056085188537655777867427653659311039011351690030091451948695010382204362409354819990711727295550034706913812989411151524219893621163421426986801491931679295789216383017450498127441442370518411780428683152747654292556361785826848967528103251094999714995847999864849822865403469778882265689055509182676876524391677992559278235321901667474234763890736773017120661850941625231220441590441311577176849001738605001519439621567554415792777089288899788099180397791387637424049195811569675049092793673629155849267790219068948478661310831606453270030544538807347415044907880506601038076650379316179675134935783549816052917800067138711186110381638774811608983313601707128928739615876942458602342221218896530982025504751575443625326510195500920244080291376833735037489860153896808129400290145350094879507096353599511497839223035827099865062715188440442508016068888670385381141726431687417521811511535361841281361264155279355034304751277420662962239229646872166033100128098039258816244923572704410770515475961692800786851361203039786017130416614262889201579842475845647601218586821150285033829429192732280107806479583310932408030486026749874938743096852464095859108233927127649473736461365141273049681908501075261602625833110852535803451822737931094336627846321598441965266343214273186302754299298351537263257563286215929289738889584298132323673196205048929984246889296110499977055650948075786047896365125244579444269709432763975561206820163951885815891776838597398263286087004555913904120275072253148441941430847893588243719340429331516576462105872255313667790162130671334199676306282848735284983868201656302915207153250290825020940409410519466871248217597720874112314460051714217662270501932532175560375535103071630326728803931769233198154524963786618821743633388532565184616831359915607976115051760429324130783898694734678849448328398998056576344771166867970251169494463000298488871996080336626870583776394411866266224185318079827221243766618581725211130328218818472762735212298954573232444217380482762439212018785287462455323824030187707143206602683957625246250700144657686737872637204202317143890866503929831298889352627244587303987722519538586330228935102658776755357522020321247847980978585332205372521419985569455230209284625703171502364847918117185842785759653764356887395250347036087768029697570367093955951548359476446014846911233025668208809838865344526894220551926265346179570300614583965318488509934239159509151124903841059529960652286420656184174244154760618408350900818966204362966165697366657335960086270509078155683532528569930227888567890528764057016858477331847870813253627251139527101322154469568523387010634393696052027531179673961848135023292494419187645568949075614181226206161037945975931440395685376029550127276275752707661064448856912194990097211333094316196278446787565090885474941575332359583663467955032229842850329716852728263458927830930481022219304457312137267065367513126193154399649823355590304998362825057715454525575444699440303404749693063987563228301702261850946452952075139294157164026865484314049246264779167468956858275420085120751627937207036167619664340631388533081084912712542715520992781089015928473352579720357861347645348414438321817118870326504610194714164016580767385089478718510685778958735980740339641970944694354499171224747274656488421230338021422722065979282107846586712870311947219917297194307898449099957329132373995870215633405892550999197214063377227207761738652028971881461406988313550583259569127728560615392021155377351306620232142663525412705000574427986355932666701256513630349603588190823326760177219359780616926368803462532443395234012969797211426697589744418518574185642550810157175720895037843751916802126442540172295700816530752315688352321338374579090720134149722284072556334521747026365553943337807347974280572225346764058122055143391120987604773880352334728101484950254503469864879439529587782222625367178626632891243595824891456050210388841331101059373213715079725453500902534756468015338633369283637719445296334585019190353216185558553606761193237346991567152785978454235108318798277110174510649478854599043715215856135125750405623219637267189749103701846762211437942431235589538932417559105729745599976122651762611110239344123962919726960988478127761373088697516216432315232856183627189224929530194907474031169562096887155609880466010938760324929020080763980162078824242986309877617927838014324470602758133857275458254054922768661442923861870740227831324701794730172750168069071773106926286116802123112440288109314339501641572775435459606833869185201710781434893408445433193707255389562126481332660200362056122455206355944854037581389952777106642755663759873537483739643747789262536016887161966362951743019289376339842813406389422429049996995445065467176570156702342904732746567608590880468895819327710234394175267164633616895610874452046215309386834750747259947461179938244172788906484748535918915282572713009540249488398325142406854274466312842784538045025214683878671557331357452347865091357046146858246135416716655835240511385768711001887993032749161893251765241339256545318658910233417693815786989877248458074998349378421318116825553807638218162047758867969791809186551158051972974033716835786967366513056465844364511216519089168977448654800274574850568966126561640600032201281320443828016700302757353279570873807428729820499576453596203755058074565682824682827610693077786183216146248935583295926611043587683309786936263467512762725143196006503307595157370376842849154648738257741483708092681904391169862546222766929765448382819326140203205193424631229997257506822673745926251126429303992127377318980006492015669215881380952866436985826709486195333148110676817581342223069170634106951327619516080077695142348864748104259739763543887245001308928814538985380486173595521046903703891848961089503911358201298942657623812778263861667972812892241980341645375052688910370673707268413847508358750746565248460939083573058744184707697629130750741575678825217801391687477020226484863214838270774604642950031902047494050255277166092725755928349688492949420723168237674174764703876175759064698426861880363557997533830575743347430408858414765555143644038554918584890746951545295241856513894486743774774717586410260303517780201959391779008609996817153439292734673028582662471110170607043723120238022534991328739694400638872197648528537216051626449076621597858514037459508164230083471713710454758716633285473468532740525234095654728572478931132002319688642600966914172099065306639341391891345424293211450402890710657046662737756512045249808579997787025880724356298977322034086756826258365734057904392798860078853812488394912493929520821310796448299767840854693293933524774406176061145527115972949224415299014361053632897685926546399949178431540502278183243655545027847301529516335299467818543235871862276301223528793135645419809437007207026353956091993534968786036592826217112534610314564110340265522068925783635110851096274718612889450972570354102509410311595133427380185275638424522823391099241862737446946715418384701735854452294269797920429399480321927197895010002909529076354627239458761207920507746907713254178309468022404644770177554644655507974413717115964075391483757421737659375065586298859955193451629236453696017036627506305721253557604742511574572689101737667480176802469281742558727372547260603841403575872138738923342544785837602975074299644026767082589939794479016585478507409834661424399291394747698728271689730461714676605172759933377742654141047855123794936469050735401419264885527103274042144826567802296352584703171575169437627477602608165968836018417964152492427477055066445367989152977927517259518917528519368142188025858150842675946941930249036073257707420770228439858732085404032498575536738647202619269665410498709233345939563997385290039581980596381454081798956952470504368633356996451579000639533529334493225290412706203883561598696380939563716078395173976696994812862076120583853072490209036802932354101866176922335215619937801541977475009025986186344459273321654808319536197534608928888862797445791796380358492066886552293430974759361477654770447982716010285666756952656059873557328313226081703730353955788136604061832065914981440987312842788603822799359649291105840627198482774645805176947801796853509213584963587078170435141765168312223592260711658710323911849454465400043447610638549025154294568541663231606998270414434115450055033527006377408526940591990736472700479544216028626868239551340448941190308328229097780962018946872037228159660733317994336774054611484167338834014743715483911365089370365546539110509323514353860608092692475146943739343932594166467000281864292846855654093584815394026722196773297722911784266932668153525538391754197298392406299134524344535934919345965536265222432507624777797912780627546535116205060835585950712555876020108362614425515138830503988128760025274205697171268752181298740780972152090021859754869163662019799635567790432378801540130084278369482096056556497404455740537492722548289223061489789337533249696978197574479355499876508982129307464628011292211711010355800343297405054759120880723493065997354722999724212012849602785776987625580169622674851865730093864738992538189655034157728763844460368252547889223098257856537173216833657044663046180723953914805329755735946592118846251307071314670266249262051248987440480347631110458372975054469200497997491444710498098878541504727085064163566346921657243043392139091595478712217156194070261560635746330906904135258210113458151696078434622937828693141281234167321718290148081592273938885038429145081966824291819185395297445540457565781334789462121066623879545225947320224048467297535091722320814858294393246123908819378604027207028411295747468308153089005015157606356105326533232722567618071967526453151240514539721122542006703288803797355705338148307731261565992109117334891862125916320270471001585758358891175433940894845239519659282365719762280692347851195790532326520132537425968027866898011102938488971813056377791232736888277657409586665820388525503505927567305441413467024238105522365974422965278914506014693651532760975267617019486729520288389840546959649467084934919804369355018657363201707554788401499360374916351848245649327524073701106365467571021248573938061885838832997620426794981584543330457872923961222177588435365968267770554995312217384304182163412986309409218133103203013939161340875367577183921584219851917869325039747866239766185970473119576392329286939102675986769174359458038771014977270390817812309483934944715563159249736245324151019460146549471305452500247045476741786066612991704089385015881526285799771230660530581908720463176272188865322773800182970425059213369986901422131266862278114058874562854226337765700250657785824072272665813037984394016906603130751549171183707873380349132723791517768411016614971707986996337107863463698470796206892644864836178790140236177125465951824668621813952653264626206916138468196118463277243039849054637501968569899844780843731977863954904765652948427518954630105057763039455314025415304567788647185674604463564165830838167919622272334381337093580841795375953557837464910240968175069210058446317444830525069568032186283762473571254574821912973414161071820458407386147709441634379523849646966720778473549323183371860496765577492842511229241873218442774915190450474252831365920945922792577251277882959127325330539041919235954017130824692917035374844746968798864022173477184827116427903537044723281623499713788868934517967861806094420742771125352999827292082067598342124493123617649089705089842116208273959541457761229535077233007470868906747034886296600360610924139483269065066918957007900147616211248763827444299920155440004879361769273906849695675363888934074794337890133037584123080573402776221050292790669000563061126293929233133703480365740089112175609429008422854806228507207366456742469653793377458038314531427232871202715934681604498803444622222222314028467724266625836970687294311040630479202580283753703808798111703684459838886764935907561844887000424876009628956873352515951373308857214650311788918876806826580280683866134306398805360964465067572945512823397319547604770374904022567169908533322363940838990712677968018616025504262991058332338259872722178496666979723808702679505826514699823856603547430576334365904321441567391803146120572106916650170638763872716200931968412885903259428586696982272926228373081799255693718226779876950099352031461036685852531887969887928770029785273700552943577762983896775402327563418016001638223490801180293601439805897717603023954732923232478327795667892709708440804745992961081028648722094026105712222813393283208921230999061032932338135475836288688072736189494005375532997311492893448631655819236161101813317043548775021089857160328581297997903498240362870324550768506198286014754996921933567449318170836515860573287438621358259709088609570144959060340401811550633493560076798412760587569592306795220343565446569533222097195551199210790823114760581876459036247798540594218871746849073991082290085732622892677455928343052084985247947496319837347916071823872560540524081176888925034249124455949031319240715873945958700583301914578205596705813820361870717668507081271108325722260003813427879354823355740538212026382140026314523071115256749772960031251400900627918298814300678594547092302317247760317636598120125005307485082091572922137222524967080581602098427943051364960297840818309800550093901741204846226091252330981403811630302910527725070329500049062776718643323913851941589351717819921731719818086863283647012232720278663391511673402398046277001303616391973154088900915676721269869377058485125848552093998818851269663225730726067888716917810984177697213891618763623850434957207232470793123964528679907097975311283214800024706793863012772504975521780128705198867316892086382253403417826430384563159038973621195990832660315683572699532169482138362588862947082057828427826875594868623462839413775735737021180988038547464089235294778771904883047536983098423554930623174379123609631349630236330586466568627735272737438169758554307328846922946726782099240852649344775085789528522227925295350991333617840341946654302727091260567892198677905537011801776989360605579505807227175702508128876736180501544341761613701236512200866755866091726596504143107971262351279399157195751244469071255466229762298235645741754587046401066776088925651840826604593360426118713713987352730950076438954986115931235149883178091756025763730141881098982224365130462964870727804259433149861918136539010056918911744324244579463048135585240184668751933564744509288286131823719140877370789964798576260230213175431512689559733629228483061435686828479324765637981190433297739986954318972890981620241420077499116481708439746030116580011863692948829838627189051661459323216027768759916553682920934204530702819680200332555178813229202572133099692680009505658800840329459897687122869574073882189614504103003038788907465992660992030099809763794303672631304386595729046766092256288565163456428480431674120236230936306359493818381089226672734818330206534233803373598900725999024968811680247758600998506326177182365560590265279661089755131193124580409103719143513471164657401029181650520441646421362309552094584347808204463679390977045566151472073773020243168345871577150010132565090604585148503366502103790879649804940115714380552830863887791010605844547424475762467943923714891061033469600820636889096040243212666763530811821716284577263288983447854144054636783869143717430953312594434604377901598947055884954875377275589895624121966889279269050653987108402940068738724408670901797768880061993004393529068565087886188748569848387742741158138214182788709598815468186821646419614993014370567918138437627724199125653390985850465872282547306238941204933790831251320506901085353492407221680661343247125544859742147714205748320216137179670563398192838068479445770846794742023136322956971508295564917720564403256273600829950948623364845416145217573993112847130186179481355511144516439563542277877557671693614898260516636653880568994658061218508972368718974056837606387621260121382392060978632876118428909423351011441177691003831880764748139452801283848775618921474534742195374028880047633368776611023612983510845069774182691074743054818790797795912555984415480453577767959406786983493591548249923418255798684121510375808962399841993659253968688169704470772540932533633340541112971757339821511413267969604600203595692717934928607310377645789459743816030979055456959629795658640619503763390079840623210988876730899559190853322908777065407309750568665934181242268049321189769416937043260408955328414703395038083183041871953605265634610705317829539625056479649990663208090848844710369416034005550436894940563065292554714632038601640048257900794764792348435358451096404887752393587711222382537773533565721503071019112044824047992434681407796585457087276771392768548146340192592790324781334146427366464784639400179509303276915654570392141163103811394830512377248558427235015521284151910285581225573308068296722696072254379492850752475944327664964887904877583054585908679398982703414357280537109796919302796474064190059045930785772252711648176529682858010421967734571931731206931502663833188373276230120064385627926047650710264113017927818504176969307027270135645081406819299389742052493175198276874196127179733448488431017443625116017416840173134848883424589626557730299296184515303994619466117553250285434626999542345242142729527199983352481623943903969365894910962971689852977099878132510916821638132659395188521062566348705693963659139656825011910460529155653470826611006661144872173711133551656544968658956571827139590020180486734038641302244636750828150420565519213431296215571155564000023209616002379817749794450128549347016877032674791456994649129861541794559378666713404430810912374500260313474495334555807310673189558430086695626380256765438593920963983929894005001407363729032357812372556412998767912829023041406525525523545486581308442448199381813745612204898249296357542947054971819204451365481867253368550901534919822081556287424996391644149120204625186062441369951518787679539424970999782983566633914701680769434738874439380388740390597968262803997717181119889610422581451053644782659348670035843833778620407321222916522718370517133681006737603518083143125991878926066422231664091516068521155189324202137259405213280287142321266212997469807639930935773315221094733573206539881832925507545036339616518077222548943192264253440795585861058200055211066662095656757583498932092405721683548472103455549119673290560690210606301847480629717585806545234738561532457111107402602327524757230105879864749265859788254630966610659845848679822989964673069533924442686993247458438374091577993574231516344414705989707085067932010287750711770884488798419855533228772065165319643838600270737318223643738106143996619382211508536236015371932427267129941874322446975490909358966217832615644964644499632580120857548719078386181385704722381910296187875161377655969895880806773030849612108271928648957768564266241672992894103752264547799307769201292908506042673560979637683056360576977849491656240021297375060062081222445333066615551788295141678669491353653781040750027837025272010188525349704389754688569836759918490281799706138817089254211990941028555987634700159076355265486916244423707743221930281119988798499030674502200373883702996343810932000271992782196221171489721162026022934462096336520096787339682357048771210790449116887154098634142114331115454177938413591620624249039735096591068984851642208719527826433992184273670419961806609261802100184071705659189775200619410338037813802321010560083518611805862663673517178942168540119095016299630341650014400313756795819573416356564941365153687222658361308624381799929115635970815476556808416399630333619448144856420641749512017605721773063798561891171733489967470234220725924802069677248065656434861018008216119837635421614881667657864437617926915637628679007965599118125513708761058528882955115893292457719925823072158638555786870289744300800969629988941512151695236401903862745484095974831606672211624841995212976327419403496817909445049918326294280431512235896695072809748443111383157269229660226791354889074866413521574478231133720542247153148012230946469734597724888944878621113199783104649520437699363943056046048344861256733345252509224321296282825909279450388945000221946645242749073334842390939043648363694025299223413118723035298122472024518477146975924488674688814431713725241485273993743530089062670219699842873529648321018639467309643101196502954381510201516589374664831857276962149614627366189443133462376344291627984490671639830889799748741501674411784264223266247442347391574805214385363550262510171637827906626031821121620360615613388017111603480933245509492805079475530667124737348178960816337569622916770381031681189901588791163264922760557021372578862059645852768655711018653233455392569314754959813989024777499537317109526125045997011090497256021510126695272879490275280012080082606823271491604057405570100590578417651382785530626345886478606823640829078194886825230344318841717796920255191131456117901231546018646773081869951803327791624543157808333273932096275710498422696583110609939879839313035137962764515554982682533536707244521045757685232628095046612531258902910308720195109606736661363957117710752274340059742192761898375016817484803248256227732971408168293094434592778666609235379450308893402022815329109400160192930992234189827068904721467880972305116564795275858306781973724096799010201790712118202111907860974443661178229470143966527935215255262965022992570632786550266151549022159708626447150146069852597034054381957161762579575445565348842098084267794458564589298233956155940260371941093170987426562581680108071040265680870548212803377026076186167715918761017939085736917752493276505255166909342875818507659949069644115066320078739995804319972818519982107468599475992454976462603968833262303134404326720168059293960846466903711974733243374472018911629763000056339207517600526526442788685637874404548836190027938118939307400415659831391201820038312105190454697605595668990141165477124822137004075393054438850467749850980846971728248619403423068367541690540691295764401722758609082145960637405570054238035324287302896897114184264853926511824211304256731878504255850862818582574762055195166654707453415170639599539313629889166746699814741028658758759296763351880408880512551026760467116033764399160690242185833446382308389638113429504568385466591461121333650008237726575140606381298830094516925368288987232041557005252978463297844049768859109885622613762791663752870017927438992074870042343951605862850268572031939276359043532843127318854197559452717281898847487525356277570234499788529085943089985421013024311587779725454379228779707621082141562870301651756945161188529047453193824844934103147310291585583893720799383150016186581916176302082709738172897453136088349556700320140312480456647345102677428722793387856269137919884439344794140122908383951278332918517430474765667671790271452380655130894595160683077868807856861130153980593609913291301336927592771950243551640266596718579911281718792553583368622052476895534052896764617526669350662516454407398061111312862057892112496950940615494659662815239305054009870702252477895776430578400516389512752602568187923888218212379399692636964366826207117521562666623406142055469640862940334927380911092183280893068290949138349747885332893434042368871964280209712758919183497144670902706485773864451590666943294608788826636555687672004571601073662729181970430744116463148679169545606534593539785437555210556384335994354423151905542255532086419235614822197265700296022639514985003091553909987342482976682723667274399607344987336123328625002093540518696749241073344175118934541753518477686122655550001693786843681304917363931734273027683620864945652012609356874946070292540449489166349442320050676736721088990388290401281756500220660121634463060906892970355159479705092175929116597248164981983571912752069846369267578787975919708952249640237560230450715138696862164116612037193232697498007725726872688733437197293184690508350534900002589434309077663215090878299352168119576589061836831929641765234214622723297589682753661144471259112682025727625490636700376008613262099705051621103870327028002181615914545418215672705331955241035579412931553598071295430289869625264772731439367940542711987146675701039422984063668029201673064571437391050440163881253884721805363466802615983794485645420195224275919053908434680413102462465870427993140611934607259920312822569862863914307071441447444463630297442010929219370460835311257628447248574516674413604797376921722628961202902880106659280098814096951826408425886207815285561062132176906752093080391468336244978984938483964810087691552919399718673666262965737367949612693832061576807109522866923870483321036342835116381607194451145345538351129286289542773265728715978674336406358135925904162154927606702671359062791977009028629384588656856251611734884629393646660206888251491284106806719437352965889000787291902899802080457300724575690507586728383589129430184761390678831439282950739169323851254860078712004303817567597052892710691366455704845260946519261944559179596654773445648891666621080931425395632939236863384340965228895679541189090907382602371838668260084615243025645180700029688982870208423888897249643902706506445672963140910623271419386339165966738371248722621343717608133724620964324481802569620383270233037805448235942625923954870111045461438628806390010340715999819600163708594713825772961629909412173500913051729404653130486801604359137311789337689725440131179485712479614595550573731039880493291768224185414092730700835724472028243835652674888075159048559187468821389563292448247469576060012015621784416281932416025667519573128615911473794874619405377854061777595547107635819464555277579627907516146179620004174662446834539845373492255286616179030681153630431959266502936616294792295186938516603832426777723045891769230234761084495394313961353315155054398706822864449525837446309022812599643946971317732389355187988967659784287240055790510852229734073021328203769504361275634597564006103647190986372563283974296830628483459578234702687001601101637012970037137240837719670673238844892982177569278322293444327045869114225420360325760204157365218541023469457710015628416007668109115697188119885463954282327234274723405411603523877807996990120292952069218465817535245147279349635440033921850827682519862108419615556682393052454672353327519515260934212581848455727104070839612736638563594079630890152204696247800001148428800365140432934828631530629631081716060494698021945286972067072245227841978741154937947045197225252462887104821405199400571272068666656169013644646218332499653777165738220588514641721924959665887501082776123265182532190689146707987989017436330103857949643398313466983015409922239560217617895873934815990205361717731125760871549830511036566928255761584078869730467497723711202395091285654391158190132097171470458114473501449238039216008092403090434956725378127915517405741264195615600316435342091460088443918433862944489577520325579850140022473452993954272993651909427092451903659649999489878856822045777237446841608287132246341256702836800014975560959623879542338201371953433870337081615842387730133888624823137407080627804454095371863229196945067556968788478711747320749800984608555600144237102344211699414560484851250853601821081656418585929558660749209821957359560275375543725375501232350518015333509998728079073730736497150131134864804128718460803063828765232679770068983138973777456936253890737619074791198897976028575787633643027852818364036922810067125491911053325468110284131887152540400528949556425763427462499617739403770084296224627195702776769843215389237987101942121809293169077991092991748993087974203271464785500859205039336567803908504222461780352446369225460730460401226810090898432363560357256844717554660702544888088069598527639570933542490244713487950525209881021166048071588177406243674803208997797308586038341980539939382049812869254593376373547589795877642719710230813691625222063631608381368728907135880018556450861928514116795523794504095387827069746149796823617809949819421068906639205171582470465897106834789535950269833141333324769664029887346572073511423146379644546947890407730163700879721891035530416779321456213827577430048125367502361053054326885457119239074103173336921094184337414750780053843371459087091350444580550319793390588555770468486387321430595127377304511567924149233315295603214616220807546030563189002529781174704669679770205745696324447705058723734559445302028101418303990623584883045577873525282304894916594289266709751736581893882867853019390699438190939985529502088550911607777577095083197427628102563028289611062684040114105355594065052613038442731151215632602647054483195474132361820843939536928904654431940509084054636162903222387050141687989877886407008470444901590739032075839926730800024138413604530566364649672443717150833089065933066291734579412495629487945480112258680423782068758947927915398138823913673437402007906521312615719532088416519282306370422200134667860118932745091833378519302437338997456070446162310717626544433070301989189377101729576104341741234820137703976775048253966743438132713987329391192325577318175354136389354846333548497244207121545576148750304296777076402722948949799947384754382687386530155730302637847594549816893831305979772129557800051141385967264490933792933037988653791106464369352934298226667401785874946182407956126542834750344059356533925998947531577268158310891942876317349966474221645340481639203859577711906197716206427592690000071497392003162909108668762101148165594287128636136533363466472534850155508744473842677982060290997788128724809016666654505041900245876259425414291503517799154629421762198361806266669475982060733101400271279958866040023194493747880716900381825680786491201840970599187381170593890160181516756744810612043637473253729079608682992927685944826831749536088213289399325872810467025165889435845677327584782041056059342818452631577588141758558163941135745171277658074863896632694979215741973995105609063943963220719897289027474793984691410795509040643898115273988194686889770772599496923552279575792293886978240909798977083911433034679073286467665782456786638773335545299901752510479279779199783702166054353107845892436217249333063439006737048031164514769750270983034481965069902967965842872182795926399203623854570569864701988545457684769692728003965598978276191400764791071406068655224211393784868474843433948415737724885244972107164345716322293655234986742131885454488984664195449546323584892858852266476827192797179072728267546071329612985240532211380118735105110124086284950975855868402764998568112295075484205454854550646242871562270322200291543150288049474219952650331736856646814726571972330394659348506731281625499171371273890634394301830517484812409849122934415849499198941939751526720389799215925129071647189234780548758926257904726441583306618167872017084729190880332063351091550041835367646602827510629662027325883500727535040555042464268459431667225233143096343523247691256569550178660244230757751702023686410389439109881540930113430898578913924850104416796253400517123896483201134901391604826579889124190733834254085999428512699012522534617076911422850110083672691176817408820587984147543922190157390740977581015788654414438091708790128183347914497161385706456706362366291340410419259822872847512942727917602427358657413138854837423350576191977474564642637712278080606435264001423008094640300049669623250730638335909235863609544539995759573007316729256793975923492963823861951571707593300226683599338327091540466466090597103540980755232202710186503871773377175330337606247804548764928429137108769598556970934182272578576441163718648828039030031959716231324218108441194773636733292655939445893875270737979739607135774863016678667928392226554970269600194610363158304097348236494942268425527957701591731441531929918706037614183724962100300217508190852405782771666502631192779935285657694513349485207418352815950636862270140779157546194313357190420835338377461391937431779561916149916044149358741987375673115524235499307801242330254381519134742315172246812598535582660457526505336106907774834573502266173931413290420841521654365434393116119110328904632480694175827051610515411712252955231688169868131690729961946554652407028229432471213342573062654320363295100552447926227837572077740890037083206342626941532181285426360572884234621164588644156438232484131153807108592493714587889681019786170136726536717141245922480654779040033592049763766130257126733008285715479445020420776211255231968636817678471236570713532448414842249320280774055657146149988237322568134164861537471826775041439933207783737036926158937181136104505443873908104660618189409328939981689247956069699028518109191112679193415751437073252765348074883872420781087220996993168070315571242045653711237151801500975490852763137083117443645277316646642573799244517815050942946388219745981278581153080589271795925983247396622841227814525683239546743277060898133532526945085387201146633946525453930276140353069490049051208576050984208465118324043965586895647807162226503840751531357288763423545889021514951560199577719311888040764387353133220880977785386830111732958876603926840220467892258169764280199169306181592395994664800944208908938280670830485364604430272795546275666022917058411547614452860606403397784436369378876173484936696890204789693723771047062076154415430403047980043090096925893864826491183633293319797529118176719013995690664310088771055466385616525446878026527209579755003141182135608909654304697099415024410942067291477711249566575053859201166583639198710572016050502524988701871899679721316478820320305685857136661166475571082333333061931415603384342587560412193828595927812097636905145777043688242528963944008745983014870891382527658865725905577797440045828549033764193535622930594074122600941710531725893309402394698920584686028135610862381284898808977846511387308617426271140774261164414831751500401884354838657730737024587608860636963224476938552038591315684427828249425235628181472201165319516273648744060904103810835070887758015132212189041317175551697225165606148318132427408670401839892934796925649063397099088482046294240120794586327534970074641430602621225803400505559622916682066486314084196720625854079221001485310736818153514744028129113525704690663900643583460677739960964562999691736956063129984264193159434623610249100173642392819685074463214241839668955310165287996853264189670408522749650642387048036265639424228196098224589455441368831098777883653444636506619593271986641715889201378149586226130877411441545156554817848178297671816791080689049004696011691364754115386308584491693107854682382505874436665863202185809668991290536757366208166785533865400567050826057881641979184832474591929698711635769846887059080659019094484224545334182237414200413810454458104632711153932705626582521435918117587581493981238813322206619319706572203829163503773544416913416909653061268293934907367983679585615896766277998642362478165088525763879419152695202281406521223852627513244880712538406074070913991800400529273016246263599294600284211862531623076103866420816593405045672703969008784674148200975407915288735364022345066535449775325399776327253692129881525046772734630023681590416565578796922835724905884984683394317304756137797984423873995926025411257805284334852513636467095708833548468040986420500407057202743952336765528886293520850015801654490125817319482406688605396768267917821456687097587341450544046109165474394087032135816161093108571427169121226070482474879400848580735198132593545511624134193052388423815753658688315350875474705165608378790697029712027345409011460736803062892868656770244294666623211854874434952253590003339182846682503061134736653360891841724083446559706371261440094435669351328080475763294923180306481296628602137132205072002450899643154436592443352790280134730066588108855114337799533532533033744884340392507616928706628681073689409817761738906388044709783914906058633309194049305629835540559366784653376272175991208066273578871553450954979191865447570749054899532211997296685370243557206230471284864453190785797123547982370205181721074173969089047468471871674097461918607594544279340167864792945824948387784136400670189296466307983381238208854438191007490130059799848143735234542963101439472638550572635008546372196477367490268768956769219462133720736353721336008343304042361384069548647841508459340970917457662178984194495974558712970750949093833542055713015730648288671735930551607208447611878144317983207439421553147456652059771050145036577272955316426524421914480459358345400265075867395746446723674787003985381493390627031327096032773657769126928559371048771510731455587109200920581412621005679876649688714295992745394199986846284885933992934453279384826689607215120086726356334495622588323211425765167908915981855779143850301160859488794710292503700794976760849301095541578801708851176729091344450865352615148112234401258122469571819753157900412648751509059099141238908354281537940487682686346329774318731322704174020775750823110995552444563728561283171867227458892847996513208412635494312613229801189271518012946771884097598462768679158171364323878408366480949858720368138343309300504505279708671061323673099877429409195603707123650003735930090782164830791726832492792770819790232315142384777635102962616590024660988358712095800998149206815348173591061029305936730154380029144586298101486563779215391414308949719420875123742546820789475966486279498997742204362495547318493896662439188059286986127738365293911990617411394598652828279650688169161468941880488786244647096131353855845399056586304484936062150517404937505744514548766473367088155748818667693560314329352026653973471893124484163591079089589681273643221025725473340860080687157851333067056446486359025568719948536910312093173888212022502073592083165181348062387841830423141580585615598367307105252544084663266134711321331456621930038947460888723824233273920151444026795493302065969577719143068669527697571092339086364383593088752783823119298451091679821347467874099212833705763574574317180973893994205108170364548131335546188992593127203423395220490251341711334196754905736948802276254680168723405738597973758413890004185517301544492551447649711856371885356259427230667343888520827686995723063205780245214832184619251579396478431426081577864246703931134933825675067192093945184983024615797328757932120876870401335631650711294714435937943883408441546042857393125534053728853520426137125972007558395119573225283456430888837595740486181789836107377077779035379629170876366856973213404724806266996131279226307869758472612900048622317092031172438975035577184376795321951382113191435495610746058059465673793733767640664517393240738148137004355245648350347679917449517545470015651008268357317294625758884558580970533781278589792260552467777745166943669224029930598756008480074017249910785403947364645887585130037204554661213772203660192138732753860154736127166196803498115772691364546716290098203969192231997098992534386421948068090249800913218063381240981387015095045620247951078340077152179442919068438185006241340449495899166644966854878042746347794868507177027642405065370231630834571948379827429706027249639027082774577492014786175129983153267588104100674574958590389982210935744115731151807507459806180622015547448426723494674315754340971366135544428355509193333959116167308251714351063089801985365277016472040622900028438347505904005853171963232672610771743933428119699193939530379173186998141110822603185820923789995691054234277345335540411303165668530408715197568953382242625549121757755520660390607423196286552845126493597262769795933922559922532562754288403096195200175761129640665705367854174565304311709055474803649329422127772436104873833086871505373238608440635685675161200317217102959673768562504495792460254579669644561324002633944058532837451043095599984583797788236889526950640119696818773945010532743933202512892164990432008213190132633269847248742309384963967937645237011426851636702373093257632211142045282734390453090429400135670354873291329878695523337921790995919348653710731945078508200118696136754478800353200528983238399626026059117762529989057806199756011584258413675438429092284474876607825319278821184959572098416415519064362837289156398653461127581485776840248736758160681725408392468025319953862894402135226323363881350554981345160777038506457404117260399957182654102873409002643657703785240938262582489105163796563436081131676107148277487448041903920509311263108329059451828235116548264344576542750533217991949690940343284668031818586888992745887152596154697506392525523046551393490176732741730447376293940785026277871746874934661702616279022455186238076860202696479833138047073749513470447181248956392125671616388726888116348252784903751975413926880456514425329243651347975240875129490153222991842939142380580930871928543623427388028897088256326029336354098171055314505431369142323206409193482571734787885312391563411313607866047334398314971423651343829855504160032258334381161979327177127193410683762160078563666148573132908181078525546702811871612722259793763561903179650296598685292347078142979876992482963716873626540977868343469199543981757118762393356002785847884645974507793790418896398234509775495121316347884057616771539400067678994381542791318041838304162460030380922178169614405341199874875429559705975778626211689315817801798592301542648573218444253419478841477025571181678941785146105327142186189910230427407061865094322169321517105701153602686076242238075185221420037730052386443029089371858173540084103063703649745173962452803031575538021013374144599927466976055557326157188031142725844835973848139198866512348060111458709711651394349266057414715391134016714028685065358010870991012971193598274170524335049567785296882018392323222906932687653197664718860021925852652832432907012562436071302138349282953297797135963474294857208722483091707880068161335869242524384538328523567928568720424560447890371930444082368886648004606247093421522474474766679894180302987478024275440746738475369574535374059832598309781346428921710405807898680772148812388523130903905405018410268681215050330462137786316634145412957355645923421073028704742844931937079270261860128199035612083491709916798566799601953023055193338993631537252746681261123650577933600877763514701634509023322361192719801948751868293411371199899170602701800754901079492920150781028644153681015028175348117863121636760428268635369579156305743565323596409830774805870113729501860113935000179382270258832085209609097186183528144864098494350967105153348119972436637982960652319723024469373328057865142146788151297762457941972376158331369934531739000217371608289909316204026420227001832710713753677313693885221135793792186132829623470083946267368077523817746391450810640257093936051648980316846207948397862696455682322863287518006081181596241325373544250080026727774313731860716153799560339765692828958711444883728226855207933605513295332834670083431751303615981681126330417482052218893822623080954290565602745064185837129036563200802743368726642596452558525596901013214171953476609194966146869837945335302462195025982785000677037673199714971263436258423947335427329831572947056228179264199329378607031788206841762577399935504117851700772398296555522331412459011690021242581057269738871333339320205742344513534168424263328564966356596136243589117028609067507190664075969325037254669757929030948419566681609884709710229477277824658256070595765703653551083628792877653189955683014850376997619238109836234490030061728930714139982999690174581446854549755459108585978734788243154435307175576460553545600764104143273073045865332817695944910497659117487515922434321658958255315093853936397746225153696062667070506348902170741737504918041203254314383193579643646180245471733950058072170656116080981897991501391521949773501388160519613848800222406495142210436968462192522083046741287928470451988869814592720387662382572180245332378708810086945425721826199935832648029291548769000923762900730279130098193082370135830160449281442069517995198034471203148270911826236081785336887246589377709479322554919278177899445239184335530927329648996775935728700237212139735810172841725312483061276702149322988674290201701323117977289429115288153873387797233185829235197879145202435173017550372933451190549858850806968210026640336680287925924753398704569484332674077764966222917502363191048959788404124214395944297362098123448004818064811986325116385634550977413663379212216010326985924455047118905405253115293319955253851542714962235352699971547506786746870681288921663114172056041119331529799793360314175879813949432209026350876091902806630970576045804455336702271875338523175018867004413185919388815289370567839473273213459339257972769559716287835178538916784280693872858890683709242316526175449375988820382847937123567400051072724188246243905746989579950239078948573279209175530936823991351905856167273355476739095202518536449453916179836341927576416434515322576744226143514437593217327099712655718001624300966261123708055829130603005175460231634540344650237535069339749451878018306242134006316854239926125206873023864186449560488054742000867485379700791091114919636584580029844351120496830088567039006573958499280802936094554476744227901999150908796218396567172035442974308139480446691031686221219409453535192548034195229351774723597828736379159992632235303968711672310852957879814170599541825752556965503240860003959265328132059814887451374896760423027812820267380032779938154952845849402331041068993060070282850822493425426930935254614205407728744731182162711546067748140482709165182679729337844526052227789275870080462660607653051464205255472652098990214512781286495705035387291383161117270108483126428725081310101283833065768987980432976637664400597109254605573084397129578810996870028771159250142239387369512265039796967214652865288462963340628666040800053920131016748659922112650913752735339427940910989055874638412968514230956345206424475032933757612152848657276385679815564116682823918599648354021834410157709767335690888590414957963195489675895508225207600097008046828173011400370888463835034285748845567706931775789165826447079112941156749658320754156898942976049024348600794419118828908487563284166955179318089490265377650390196489885627196415716643670691298883641227109639829734434926235382946005288883570363636472370945316924533584043809709125902612930744818512087197762142107534960715540067171858955591938160643078406066129280037083301020101467616850802471409912307937651740238567977693737028543382003597170108098222108418810977357144550787907083743296244479471542288922290912183298925812246063535652789628791589323797226831197311503172910751136689779550106877848613770557663986720075758528892686505533022407053520511000702414842366998929842998472703699841985572424467879461112767021382345154107285696548209456240455775993743516818010916991315883507706344011545907053066567419325372721471174853304773948393247752216561850199835115878941424691310489864452620966359940017273305888674895664896122811716911406617275953050077923065466129561656137833296582107705504052509900259882331952426663850519581797245896432225555235054224386910339068531835409674352571612369643544622154958450760261216990670334893797091457317570271207192332706834786668756807879220404227600009916655444217873966690942394289911493664343118066816617338350510211510511411133537106366274913109008598433718331011512520098182318079683425050081221456006906512042404004742288946823596247414489497220427193007693604261208202481944545519372321105337414751278964111524942698791591459431582580481468516608056796358498909493084946632651339813267522662956628316747559520921399045615693782921060266253534250784254371498401271656814246057041128973551959158750391444433507474023399909917831915354232906108267938996010410208596278072859695362214123989530017933301897608415243360138500178281677829746756980662782356905244115853060715582227398935081907943556016985485329784221384449849764733943625798410914351982443347889552549636250898908862535969271231236263676050494041867450532884764730671392181074023486451330816419386582927428475585289692217386362709567738029410869891270284906421229144752689531520179765503571074335847739414657727634322219823195889075643167252481408590256474163267839442345494248789881682810255512128406570976607612128114778446795486159867662828171177006329647941538291082997676425585915066020430791231957018096104633819473316078968221191542906660185217442890120994601886016551139772895906162007281538034811030188011860032999930341322236267596713052079886338761380610692313012755597989436934071002851786316903424561477560957650427043413917865100330407657422205536124743724075624038351390949010825752666554242165221665098401416522418995988650867345878897908225769386227130011707219153311401496123967804912757402129444898320431429191425326809054368487767357974396382790088811866357148314778403287179055772355207827860447296866736600057644368714871807956476969406844238053070172288432039505950869687136096054055840507970029145391990410935823879555123013794789292256993318402089090445383996530848982407873873706669212261957412208549518472661041450450408174048361373597353461427718085363441965608988315247126610667340187277611985479424100340395383323315330136504681850157897343085251764494241051033956306314833966318516435697732347610856014123781590033922611786838241054398059144056331265185752988672097958759440825010701995653087473549176165607311100128849344830466256307934340425339103224594020915888657156973514777928369732479238685113503322891648645595878194221543187605529730828935821131797046314723631680858192779647066433632152696970520211811655691637272833852577580295129459576690178220238373468479230260482835775396421133577450033634418838925085467090638500240080257065479937066196275443288190263917682709666647087355632765816987392342021242892679847600734427355467014819947996403013617822079535400723774852847572092053370586738617725536385061123507935696150303168558328064146498807714067291579589960014002978512196914678926661017505503505290296213142127712554632013279575357508147521502468264482727867451646010774950231481555798029269608343709973982309945355118095322194606812832493516766389357067595551101690595035091881835611003142943976992723624678010927862573706564947355291481544999592271433184333555001857555920410518312603510930097265946168334592468067107219095748771635009057331796420836993782871240163210351983309195182593802480424050859706762158381699234547991483845743533854886473395980007688058642652198340587024837771139763525863477029897557638905761943133782405257945848867580132718865596873153873093465829864838797556811591790626522665875747396067575507065807558032008655738860889970570572180546536030666644564171723197519803982351971361908158117660943214078444400776955133704047592790380419130631258116370522386786949639118836114552044166946542680314218461969961313461427684701224370087359087599104038399670966736531677125353005329629415057004939009878860688796581681510261388905469921618639983704314998350054765235748465580475462086005394550004852799692940931228512901231163448314471206961117561777585319314764889381256338801479690904533727076742733638300330702096853786300742067844530173562503688653996872839397446977386310206580334503084683342394348009817466587472991520576683483388156816816835363368129965167439385796893114940741051342306879687165031325381875062016903290870254931245028183202026060753300166618921106807138946550076928547319938273690053061678138969585042055813075345805222764023469639097296014167988300560570998521092589928461789562450846068725141856169706569982520989474361860199609914002641287472021009716793110645798172337286961126821493295079837564996348640714177367071706901365690441040917321180898333385201086655275272068799767685605847105278977483816467937232079082770658068043676496505695590083963146324207633529266920603058235729052536426387099560090003389400053358805358579385643179828303011319349816099596758865387986178558422728539227138076727729552164950351896776704737553219891018752295515720919258859992401407310496824882768636577538228815400539420129417250708943371536120638753461592676740821087485118346301995572573773636144702330117214255749826155504727685961726169898740050260213106815260576066370156124639827917616043333216684762934592738477319811258934774663791780596939652785758120547679645517009216290724629486608107930357239159737469879368951995021240636317331177844936173163639738647780268984556951247874878927256246126814085454880019405695925478080541015041413068958363119564532411996277360795315053914093763967534103954511279332286922100361845724395731977942434696297297434992688476804291523039357925346314599257403906190598388495445679726966270840464375464779140586959436598022950328625333614388968601863371877244758456464401407004115617188465417373232411739073906447528886241154874792993684638141112915860828991825742775591588643183354057350778570939066776673901055663259509181139082439352126105665254238107843208174211117159230546857116832739964588700023333637834113011987067995235029526577875927747372778652811447303105399224936523963984025786487345949151077312595593657749957899859919145846938219756543433833057311083011808272603179491469836589171666898922635026909257007828827321049911216539166641285132189885206547157608548857653300099248775577388060887568704139839532595194147948424058413187500343988235341483892973761052537202477771815826245445708639817877411736436598731979985097474994544066814588022246069104548408606274848980100916502152596642765966342894285378459680863263834172820342836973084449456009198888989502574487274477120725305257866439334381238429446163558935679150815618936746718935138681561748104454988037291230090037796149424159820014825802563220568916295616305494181148155360818947487649137939742054803477195172340674628872847558655739554468208809239052467823255602197190345767141450236022092161418960882306969243880198327879855303885533401969512407360610039265046438601466121456204186862657385634874654422531544857011681243463934556070732294045400511412291773627694164678018279933135608228030014581239028170738822222475486207188103991319829585826817927495102780577181880909898449840344531598932899951933115191414870100131352464144383422177824876171196486880046757899270954171799459630000301892550924745215650399457224181171490671464911845751070468194960887343926885879213570887459695287069190414274138651119509734990839950309512229497091833352337430257990850509288039753599894309686059277380323367589766333127069579619216511339216188236265141850282371708379552614359732545035138282935938406502248581693079800554386028150581272354395098389124276577933393168443858038832238293344082709925671617520962233935935120138989505940032129675310762544374369188720848376570213500798784001873914386326738484658585811863951060618042996080636592083414875128595551713793546349667866380967902202749264703302757728404563233862838332407434912648126644463467001827217356715429452302065617295813379326746037249742887447270579848920044792632764570580092994804638147214671361804583558217413811414320637201131323304576966799111943038860565021429035666542360354637537574221916566002091504831416160987256045947900504124320747977510598060112236502689722067365905535607032112962305249128881305455681455824536470982678989562513843220708705648264841523702258266533981968380569918499563987278336506926999057737369954712413659896677078664034012573013032901103576883662909832490065199075991280291917583113686803399641467887188949891856831096255739523190353418121771865904594081995313434364641947057305331466480870373179668328848633526966061487705774221420028023518789015695352967093495536235193582692226704109178342138326610574918987311751214637604523812608705954985949369190452728953810380322532574301551546368262271573206896014345673430316340743377559515507550756705064940194067901702486684912787135151071942297717677754678307431538077057951126127507819301404486835653364055722986029229950140361190988478783113833613405401495537018757714743126842851295732673306626979609593662080151586563148980738915449524784998417933239633650582940522160525619389656379546101597756482218853547159354336338469854270922677991965927369420136240006974751023916544767516374024963615146670202042684413041689142751161915619321915797296935879614184102330932002808579327917623880047420172379759052413436095663237665072352458359132152293490775092004693839681147219556471114655564284499689887597951539620985320929366390442442817318763011420807104657382572904805849150727472999415992788628334456372642961308313623209537839321276163902421599628342518687887984239088848742286382196300125526965573257114433311514916760707946182560384557131468919916134386155855751308030304764884858856459954105717273900110190136110678815001711408083395794277585587692137629642936270323689257360892212901653870903564814219472141425277297912399940209191860100249598162176379058180650803084543927464316793539417934573955235639985607329210688508810038600725133920669667418239337533626478543709697854054670648539052933274321627925831376538601652884621625471106764087127614681348592512809692875753924208404684393005295484424156215680027788815761278605271015269382599336264525006956600515111195679003757309114476272623380955955194116471048637907664004282003639109233267057345634534857292761072478315443663728204649726157899948776505439353434962488396627446547476509644624989307080910174661058981636210798213980394329705292922683322177039576786768783263936521321291918991302439929783732890079437298897168216100216629986435652108880240731562250002008640944662507484308903428913219653023517775825317126102069194145293667612926193669585720480823573145941357824469043383150795367663367732656040877915156246812327939518910278809636884757689899016530527256227471630904379735031496122817847775234676306034691875056246675145005519812215012370567428998722975272791140776665226109124011909092389197679941879978332877380951071849527843526318582838280929958495148202924058602663202519546218574176362451885736498689665902489156386602229782214419098625367043432816145526624775876167832670330558903299986334008043448661975040849368305639542671388425182065051660498216935815901614176145186372528901867989226810539893773780921851395363478023832493751707412674215618220093660111081215743444811575178383519690083378019839351531538533526059661218662042945828851821583195957503083299879856578356309224486113490561567577104822503349285452406562479047304875189666642996600106559555362219582130684569807739974145312841913704485296492199781412583877400992928231981754302944272464901680658047160814606624152014869330117806373981406374123634525327273129134537404583477021251970371590236169204614318761557608555613662321666060106104719016834420343290521739154688068802560775425647782485533343210656069859255738427416410429057890229625958086248051372629888350715541724971228722367326480033354881253879263078129261954913573374696753372300653737482103292708086435682383039173172359398565704163123058732761995216855599927029453789803797988069153100235737050353230268318669983895678347631983421300780773526403269625542912075377072015518488688453172663936600799646877991338588128832846817850422523921558287120734462637946004771454414304290141362592738202005145465699162028167888846767476872555629680807027731616032428854910533112508825076502448513913789297418522810091157032504696234189386446272036134570956813559522205192528679052129927575625289969631546992524165328558592350898256863241331573559828746749098230983543718743579122826802122502774985118652513117308042767062799407540521036685295725643028254341971051887752117505212665811934293127319175480023877677197572819289045836285786862167134800520769240622337117943517870764211871463878852232566778844346188037209445286842878390340416502848059646229138904025201982912280027695310123807914884778856268687836330592373910515082776571940976214038555222113079717111493891036632638247184597533612356390760568658717900959808394657225038586719321772161601204251974602084007772954534919785221522495608752658281584598470037211868241398351849287811770014382192227460492920998852890209728719201778665961448268194489101296041126151936762696977412935048797493325213616820418813548572442751432057230080176866657545703205684626840020100111026584551381249563384386567594180991980530912421467214905282358638310891735332724250500464007737899736942897155293556037904398748832923870877232556554154145598184455150251829086594535004580330147458667588989524636145520075053482450786454559328121464369376028237020917074763530100133216456016138183201075718535436304804760710230418413722299627500761049540136654912740710378836803989763650343162963999062219219446774388862027477304613943075407585905736185789508985207829609565611717671466007338708979862123318228356970487553331991879263427523633809134365250307242686380574179787656261976034279169220345728513449130701382688378122418386872195321174164670587769901592158019952470950024633232055483849235122673826879100548532338789880534236404578483632259603947229086399298739949033363415715128039888700687702855607394796251815615597829281522487047841930014354270785035724031417619721201122800455726934023469309534769328235330379287623550358580496780362500408378210393462060072319035983091495652924452410455325858231537997095965278462616910927959720231685406956383771769056337316212020339706462623832871663001276289277080885004067877906856784620383265578327439608509949093932348586178259708574032819596998204907939789327680289140220845865282674308359947758835735887233767499226775164656545460008101185985423891023189743445531722059085022729894188145072080937507596771662935332303871373084810872289004497101066944980805501627221441851050543573874178487539687737498039311551042734345629571120948692419980880834515022550926862659318601952557002543842733052152004999430511901483988720955164678337839704485400048212957694507202859719110449791207777795961797800985060517608263565502698011228980041335858696907613919878057211047346608798666773617296929943349858679273808537670571666777477973790399821445892253587476965375502803014334540425888583130810338715960017321408292381167219902714162072242733755753295825484470985313094116681273596336637218957016626136583530426830536698810820077637906319862533117676353898357753461710855736704746440033392724214911308950413499993827944132494371161672541711354795114711474074711218130050709451392122315066286233491254379321817690487427402785132888133032300528038164351025812181368938780600076549176573052377909769478754424944805994070744171171466572039703237472306741671154353199257333891629131953085644508790416486993953743599701825055890335114985383708836790915339568653120950604058178395388618930212805054177207124307638455971275234774088152057642755647613975582271782245893803758646629178481839715475789909713197672471687936692648149601710787767739738806942699465950640877718656834973515264021245061149868093855484513654015320610612988507952419303825744130512955414506264996626838158955531442876228734135240427551651819588934087927607117961398701954322899363060055301362290610395008186249614190856189409061290246589434896638166183922318865574083553030040728001087828462170315295771974275436701861231613245523823414649611221550521620204521583472387469182446263314615150592009010385139815060718487352337616475595618119187899270577227575202014449219553150222698529027190010035775642187569583053588128218307660062768929737803396011643992872442685422306323542118842228285985930461494571568078694873080336273308098475878457792008356249364198232060032790084427805627618628249131748697199346718973527352088196188026819745398947477425101361014825376632094770517392458901646912863254262664869159125010650726765399981880610946165668292794009849622376667018587151300325493885902945139293230339532560928149169375558614530184428761949513925044123754515770817962054446348144120352374052332589730810595030361394336051652819614798222451367524787125315588649528221822121348521915683366285051078428326585656729136687461016972770055578996854693034331996628617931307948189509385359279156527666747236520768123587751811006715812111955412463774650863434150707312494833279547852475695171942731940801371009622297137164456716478645927088283065859507635183981491811671966273701029526788553337658078127258545939625102203580623972525859007894851969876727492612398119264862397537166375819030170053606207590241882414978131118269008448614874496901262018333833275962898860790210854913926411431096306625131873764850385551402140657715145190891700848643231074787384738011644696392740111879236476230240828424216167128668494337249434746144582873752713025705722497666776792491366900742924046678855079160415185698451645694644562769113971849295078737345971733740858773192865678168837678518205351538496256364525697341535567226907834227692432934582201129425293846300414458041431366734085612494713712689922206224785802410264624659863626580025177978092716711486945333418281226008348583637468506592359035927891216745253893322735968314535682141514507821901128287555098493591027549477802785046010787078738686710107587177400043891267692809017080739144651706637298369887608657972588214644989169987117803745580246547725889110403126766666559029829674748535419647152049455196541991252855710132516731058441670880152421119503671877875496304439002168308918150544528470990832405976266397506956047318575554982449184021904919972104002009714790000373028613753856988876567867800851504768284975083962813897435682291832259354093481254409947818909805422010539101060168035427738472380886001638107701672091646757975275242250477749623147279376153843661005316186709550384254334544807623468689857446593574620832974345289758054790953864839019617003105526273498605125833005073017604518442945496834553373362671074774877656927605846010638425160100129892866705536474836499584913328391370743694006408587075622091815290892981790813788874779071062145511550820208725756572755489731777987087782333017790706700234041978656410599639797150711466126349225417387840681080688918389632589957807783567804001038004817404191961800974216961620468551678647591422508619088731870603138339486797979066491663120356612473948782785554505769640457755812913827246572032648318263956319624441966249313358786629332713876809101735068547611544432463974390957379513128551653999962354951127330635918046535084770252291118791400876936291029975678667812964978863732262287255834742359096673365035012049115982421228322313084477081751781911236101126762711078516725992057834406666444162511219818195997363431113203271091769417784799418863866014482907152758165351504895244829254291981344214079335115906376664138054410887059246824478824668780826326356766701179686535608687658968744493139638431725117764001306727135561116939228623480417535955354144116316177050904185601737098304633042742323818118279859929362365143463480577298437554242020520664264116603472107163063051795779182800223697858391725626089110861001404123855364107273441615343985371567012438058567037738620711558496757032960231207809309414550250900163074418297618897600258010563459786191818699637850086989030803367597881334870114543208168374169248742219081228407406452738509364845327645805100566269821541912167212329694363842683924804361834986236081756402315887571610537102345879231950269189900746737346679218915452906197505926657083198771363931030635184509218912552365306004391285327118263191938387632039285351051585987519238991632785985108136674070306893275060165351642651039965096255423067959659042750211798854538383990664373601535423165744640263992057621214173882571959924843742934565433521126734455344859819855744500811788124739207096968164524671355820782562554359002665335514286070502034926089005355713112707709231345445752012326618783875752286942465642796139203151643807317578500725283850697858269503762639847176922450819782171614287102825710849401238942301356452701116118711523521940938304779739859133082008504070394992749678929681299256957582994253319010033500643661571984882657729416368896052596509474114414968704945964515193098870820987272039980626173793116309633343527940323832870373929583711816063719884130832867171829509307702550780290857912274090680336374272563275996037878570327486163616710595191426683908073758164208726561629164073747123575826761496084307069718686462972279389557533268159188126944665014420615952573681078913144793731515251625889028747021200538040650808844021563006820462495564420368286240564835352843695686369270515234382761123150828998301249721600559239874297397275313256810757904007585028071560427243704925234899689144049548886857929304918481299856699633467605436699051266504544375699284743747040929186733183589079575848011449990790157228650444336817080225905780085697462488810450143774811893694632848111117716738713003403890127417947202298709327835548819216491362356504628211150271447706299469765156345147821024299962718550996609995741198621767394567177246122445987073705768525369253931495926363461314253512715626193938644909229027542904069743623125668770532725871229073507063984391435547933002285534397668632312499158271848937530519465930763005423394243798390553519932658488988556108704050481601899373555133116108466697404970432624670687044638773944635067015284644700244923258384063442895545194818558311029627908667805339243596190835129484447399321931023167621246539176727844758936487969824668315301081486582059176919032993486543774159804902682605366932035250899427567529797822515335212984628896220475227870978781661366325775287943346739219923164461304377727611161342649864043502681312134564151745218128306473909804957799723771013440803880281920663013203828231823924216322564978780893516900255747731728989793985948191061531420135065092682329537596085608524500612292550811175449224604279950574112730790748250094069794484032255249274126506007080989620197394204104194990348483994869624437407890820685340928440089255890610982587608194447954437164652412483738610459736088344190282183059451049619903142114933429741034069659743612744819507523168785993255289504834218476521597851566463534740463333298364426962560275668249884957828103466926530035689030773307874220421298754010719689821146947336331797001221748827263687597614402715350499374054734444674604401716102661425764699984483489116934729233182164919808087088676060692615880735435026267638823393118666694639999999273094507455720132323972455531447954471855558712224967977314519070220479679297249574270333224808352830925389185082800776987310360300432406621249222260417916036372749133990492552633169388508098856259430235286146740653291451012259204469110566437873444237347632475078417402593360024597258838837908093621381350865352041968034331466546852688805018650185227215455115054993769287934019581181338999713248583992956979559471979179012377037938859096142996312926589340741806424042543804766781465274302415791642711530180220426444934041625874775046050175418622644159712323606252355528539265627912350287298432837807837688620772187843431227207911765733842065427045229611001711777842860568895031194437065127780660980095633160114913282524505178646738713715362079386327082751285052835150118939838215402925488360454167243810782388912616692071822769312394966909419204006925142154215280467322757239740276907259862692908076210732836458233454749007883684529127917479765404511115596077447148991634916310367548258700782374646840291156662887534232288063303312138302960498479409014899832010464071992710460057203407325139196478062128662056014379675916289824554039143649239779492615396230981678030167311948438934206820396165095767829316998375909290304733270196309133564686262809082208837925739804025034105970448148823656966317000306545689400181957583143583545444725803688308964494473011340494029202171390600243662900232839745225175544974166423707071023576049718076419747759050929042935551078561944592786667432737874727054880255542319804158888802830588758725680750514328811427769060481859910476439962022992242965642508980204742174139290782436897317843872974443909590386037452027951860425345972642116309273649275414199376020381548583386859225406082458193424988976126394054293268542853902808123404217530725401829413913734962751820239045665473111805544421136394655784142820851724065976853183655433129282493685352836297700500398029182407076494898975585294745138415200754655388931564287747848335814383448517730902975623763976954842088985247019783706767721714623454724030079580177411564561934630745250910326339528533365788472884792053563500570758740584397726288720249395984019798694346093450120489062299579389738150435345347088354354715671407270634719748288314575850763752346096988627307474873507690882139275166460127840402500748244176639575028514211745298929920112728868412235783951773574884893088537898914906051205280721122363136321156071689484760157064967796021516032613595121008286598130869182821105338991623723029290221892261072543544655279485207958923340477761165673691925621986020625730765732169811033425005070727427604289390707929395330887732037687222162983988993422635446125193604469154853608240300945922800696677320292334398952131165740379178912932476385036394709985028415811713916637411042167106127355821953740676695168713859236676768830347213313630195616712066548870523734320457938964607400832963752806041946786130443027808117523334681093917401907378095402781027602047095116961689133421985085460278171011167133323439160603668414318424237772779508362166064730363178200328411238008910312579442316682718128137857238199114041395400090125190280518710424350050757640869265715922504733923002677016382116043373677405515042151113506421704787060729028323437803471719925990798908037900695942096138511071922782542223324023826513696483627268410741784208883098765149613310821771683477314853446336789306857607414534423414103010591532789647981529746439600684229684192835644547312019182186395285820164923322843084797925896204133227206482985557304667973782119105078381318561463668090492430168764039125663035758163224592337560184480517532407402843891825079693290181187302307274414678819187870351329281141004749250888021438177650551036030261188936877489592747867298789991829418185022624237788073825002116300672911777668702751642866362693778494177521291290684839382930032984610496119509592129859786644355629978340071210003205215946017870918312142485183767274600735135757203904255807935426799453038832870863401261433153041978890538138310182357536091096148398818641173455033312088653386438990567446625789520016228710021320959090943691488777392671212332009947439929242927354457396481417677667608931372758784375419469148322066553624349820194011327451006907511651973034183142669817916604992451833787275322873875692334234778593060847034287857944222711011767921688814847910406705854057440443185723020401399703474166151081789469905627688544727771663827633259831103504112397329589577469882161701341697990238352197614833434360582187597480183017650261196919991000197987123995925409265802269765973404342122434911534186119559600074873755700498848681550562621895043029082894843061563061765925008114889291859290776973208372278765569712885428592865153611167524163047608059239835083173660953980052730487782042256692239947386062789840827723624706885740505363079393533790610413245780490552064702250513839622274345507125021263884905037803457039222329948703791331232558338101289835401874411847757626372717111421328677143499448891245484165714048854426920148541719447027715710041908557763073990789229628902461897751599778334879306645105676803484094531733305246813881255840566164036314226714279080563234797847506762372022468350786992639205728951589519942404513087139852819780657691511815885359065827768631851501343945883585316701103429978001731299180656664528943334979214457274265912531371922673535799871710541208948112532217365362870565149608388327571125042144705351425940087232812670316299125914168807970184072109567701126362931025370804702008998859198896100002231176995430939627322773207503737692088471032718703835071770046260765500501582931168322041990252442748687390007638603540801666923003048396803842819897150721778767611694350713910648010196941613324080843893915381694666901578524144656645037081755616686193284492051136874297240993823787908328738527741996486769360504048835834169982601434706311707641867151233124573705478442943885228439858007384607127549949908368184033656830617909255474388530841335266522991134588678786079436965431548746770536846304010382585236521366777217057592191478797631177165964301762953078285952439217885440200967683677491324489696916949651108108793227324751291079525136837706500279468398566108094578293344181375689836981650058984143902467605585091437177064880527074142665710364133184091800704376326237214787903681889468984556492708906471446925851364939247810551690297292429658702686093599270506272578180398430023964248642652552784060159934126181246568636359020813274609807587916338229771173057191127480996242225470983759013913828825820486627478831746094480255833301863709364359349714553428412095107272960602038131218944293573083157402143204820654808360119856904665183955048140065360871157618650390374945251506553208607357598313052493234367362257406110573997675050644884444800885239779249665167767537043601260558869953441701875363872189210355359802170780184859589727822004906551772144485994020671059432280251319863290855998804229649922452500448939530248033530861092725553763910430461915001167600809214527839066774105932047605172526859163148628186393430459579571498704414004550605629203740917228384067475945641790289655020251102719639991246305264406063846674478376969693636027014779145104239725537418992839022242944202051262965168028037490741466310663436979848164521184848489614426446374465838239947696533157634393606287560402610741370537168870804834831594297901375670469620192175883943035187812295475432022191004931429799582570747343502565595132269747652849540891662399337587093294451856773491913216816585606400401035590678222819766140798498832504768290522086534091904256435835232268267895796166067578557933744381462782897778378631923622069698572878720448775662581242674547272285423706501580477905686511452818662819174551240022802297610243901211935127024887666644358607675975862924463361450094488739143290257608832893860153630333841597072995350938000556317447206638388363549763439826330651751516501493187271990285974918932237364365852423538257713419204142736998324402818640029990022256321217551338912012616596298832598136657525581276965762365947361581845936591825145312804016341439580570803731120671449298138587604358624225975841247322425007174558739070559666822626629708472574257226336972811083232529474164969769260454562752243843598452206452637853203751565048964138901162599812269431596536870688945727771380926039369021266861862915760689652015493883997336270808810046841021650348197482574249760684489660759802031542441955373540060066772376075511670353483490445871963615111041969874823425229697595372970157474261722594403260067942962786544514378266569675678208481160930774128733339183163025800363282589333661399748643348673185279704336844467595876622489850366828869755837721006151302205727446549575173659380000229278349977543216781510978832504708910918975981531426778899719838878990755523495000986104917550469044399150396086012435777062983870514563146937767521882980559383090778961261116195543651389710016059950785830384675672085112382821078656926656679198495751816884801216702415487013030240518712875091927077939204067124793517129420924226028301376092644177720817219810081971388854987772989853064186314077409525637664315121828656533534380603345677644156217814587268880893835505453978754325279744636723281651130012191140735259370742165601032651354087267124916078095719565750781105421750726723546665663653776836214158473670507086285449118686225964063644611270496574819543200773678967325422467986196618438171440177011033611501719990728424020427006669033643304486763530708351873998186395046659819747594525077049564901074106960277243857812343921220211108527475552654883926966865947230946389948980775844895237659807953961666441256801181595416090557531936073508674329834377779332452394285154109694062935786846794488627878233015806725924138370487708728335226676858567413707901445509765983799003991429964389071341193010004404696203775210694251361179355607604456661370573818084396006800751493178226643757587937163481485709007381346958095932960920982344070586947589349722444703042519772432427303050843518041205804359196492439259425179140828260775337226037296579146180404275160479028144225911077384923127501475634563381767039745203839405752571812686206069776295920312466155544370663375525926144288845923669506057197380607549474803283544683668342593990466752110989238271209164928424326090076051525971154113046134301465663142187291163508378608572223869509420041926535883514599397570288952836728433327585149483332145964044308259002371795107146406625903706731154375941308047626770407214282413749940333394938703734114633926758068818105510583704444906777922350577361169994407489615321217245319725424427609467336317403373038440279657981883359202822484522902513153511258761232716364702288856428202107369378908699154281656284961556762261681109072400641738955924973067393233859678176786403020692764511891291080532594934717276151743512045069249439638443326253153906011818288677553363931741894440466601030577443588827001650424875224571179853732825678268629980109816485504491189334090784747339739219540687077152216370749500581659137115520741686810534081441191929798506894819351913449623219179536849144294197994570167595186582193493188974615737567818688528708348379041199195145585096552239359272473638892224784127355619472269891586745900612177517485507653759474806514258914101611409773493044290703827953071495370697099651308092269331304007364333215709617305549204102797792653570168544695845517201186762437133090145948899261863840230951031145379145292202611431625785381577855901734874254839519599006926271466043231818310341576794557394988034725104977644185958686028104881255227679725323731437225412820443096664907424868200522608254860377503022180091151796148717958547891600860029552035719735715711474571203604016271741822968278678957769650298385867922375873881875431596425909771340407353234709461015076677993222098296218696960497654469748514900539709581627556245405109720931304431858118481031769030872192061159945959209435927765364278276304977784200571884985271353514590746867274159472362904121270601434183576885599879441369125451645588156962348939898472989823743105366595893617345124580969481004657727938225102621088742227139776825499947750875234725722570136717441234951894630965176568004559705457576993243336579552862254185872618954394224789353409514872576690401614357410105451126181798142430741014774003918426321021369348148901367343661222644558445496433980734647064599754287747196915377846266539282223195625700622844756411649199221922390589259804831173883971681327332710681015669492743467620898238913997263798651727943685623976404751341926045701669153429387422605958988422651371097667675715964697507655381617540278675500635401943821462722713831880472272836878705906958981953418200659558912831938933275898251867833187792212615596114140393073410215244459606264427054911093572198312589887155672388895221387428693336373307135451494233840277294528926821826834826560741102162565594921428471141664002079448290347209847487808646161639516568324975678075047300237773027872148653799173815520128761821879345962912937748415932680375236160726187027808457586670363794177045066461969187675288839612986808905921218924338322130116049956443341104886963320810119837123355408591989531448894044121957065828296993761519429272976473404450205889901931473224902847340086589179746674290784885425739178884517639783359888834280838593244156992878815121744914351804219201046346753952879262417291849149692461297450366605205002299476763245482851767721127428247043553342124040275449978766459419613813783362276741080760279411142185381373116669000588111419228291294495640555311598461605992547522076624388105486371368411955922374139129737938901953369725211360053124202757713712316299152330930734657474758849217833600078718474245103586616416046545364308033666677713260003923632652189165969879444848605725946357369352441293851181532250054845131536872711285971409906306986052122807555830567326065930617867335628276437136156429546784583078362905107710143760721704171384234987094454143547914116590928002657842429404893007472778858752018445570905642558185017732988160158623841271587153018430626542575470268902922033119572586455737507793954745183314722514575325299112756131397207118802547871092847477722356283652829808247762651115368653159078675162693401798318768034613982983072077272391464084462145933337267413574604309154538002381157103596843816745070945609300593754463627313928596920462446904050657851108584377986882299988377489127365343970846842361387922635859950974803112220574190510881467913624210874570106630377905224648302416294596883401419262560553800212064642641758267766533947871601561261753800530593393425195347954141709810312681734159787923164011463228858260865253548269619367724914827974192891015337548995890978575361662812532570983107485843839394105215404481685725403166625003812309623229516240484137540949170696160113645423557802751060623018545364806298455206650404576951816960005178989077473832635136780051476371212463301047234306030539602208641753913653315044463288427696609349002265642861484017463036982505797988945712106762560586842470668838362899401302162600682869963964725979797258914994305834637926080475545359734654660458961131412457374818650014948731720272196576901936107735654342345574855218512274891408771115728293418884409799083652613021592040746000806801405748504589258744028650352875158437921948670651284698605766901159708543252130912981053820972295937300624455577479394985942628325384784652491216911323800888869364470869076648924515142321035879840352737386241744451508869645228190706265743134062819774016267477294318634309223937634794187102493800416584622802234976982099311524607543150333926801604659330841521344203390210656562079291806881600913498432297472407838025091796776829322499573851859974715323151620584803052515413195200488555488567350198760830691843295933794700091792980425560829035901653437297458863122808571381992679371699589195427254321969388050213251822517080953107362641699844944747513827576536136401073696289193359793066925997512774694687534077412724680724338321658207768848021470085993530177229736809921228918685902847090167968046550467283515071848370080109908212822774768506256049049750369723043942445483256907744588495327457221760864836663729694132201857857322041825066008460354997137063500603148646218263967572365391788537631273451735896854238746982648036272603103430643431281909016294732628727189364425346521974783233488940483228738845172939128698871011143504833343834028411353919614559573719335199136008961163012952126563049490257959792588039937477343655589701044851633386811602106199268466544127552458594338658352648228884099899463533750997593953961259589527332368074540711626285290201238731329873920377642278790928140752269862137482916114765187087590788518788936141243028500902568167797866812517939311432465472073101962975520271917257431874178638586196635720423966872003094609649337905664319184392596968906256457849911416637100721946394196741825946214665975088395108484195694127594825796382297437188495448388377237665673483542090272471078678740906676969545939497799190608064224191405938594320190963365355052754489621278228333631714943033686250219664331425193460383964838760381347066107074931925210984371652164328829656615163687145820686737614024832714872861280388262538161680889368480166619274918082228471724905267665842570439081583387841815483216927923279760631745568061513567135265388321916424990753362934051874713982848720159115001498747841550979978726790461861864011749220552423672985549241793592771758304464958969234926326948862981122549825696345924179663004908898441997742561624675938238971790494158033530840100492933537123785122324803904506510267072554119074385554540810837052643044047142124978683772222132291310840754755236451708108274964570301193280078125702836478655822055154121805913361361560627679040036523161555584684398215528928509428836747439094070363432158321482592854920397386755945374389089428687866395615412675099811343562505139244084788342124832553396776663788545860596010852424314571039014356835981347159767632070645234243259029251087062301022468729087474571704386845943995684708995943907909453517496098882777814264556862980961316778648614953222107271210508873960097739513021108982214813239330798788726846572504820933184653827317393656966051810330549767348727958489801234991984621504347479820047878704166098746514834549309745094166626140544974611453612382921345157450162794628712303490796830328936611572930706474670104593007971756965368909810568170121992709626190750160235713967382438220420949604461709743235222124911898172838349815982075665146273450904409760516704564123022602844049376875140206129064780489539207430984008783241435540301963583277498631440714682816113408086051467739896572668510112448413536088170797293279772545923121654430184020705581418432058288301896572307702699412728545703479312526677742175618924704783081491764864594948000023143023427232700810563919461293133572981985751725144709459700943466189621398149672568949887685251186842796540027608497504320516592091680180979623079324818054139059763220850324865859450720360242315670313944258726093690381640513437770967496115133949570890986280443203994572438314805351314568337045166450297460624714692401134038348158108325155869428754678823324721095368832842184795813120099480305386908224833587283748599658364550350182535355019129652856013156354966908437039214023185384524448308246407111645440510221054965275487895095353513341188679924917179962267157896321641624993425521997621209282701844063086905829565281348646195006603353926816625303809846476963842535445980364379683394858105791421924949621606522726998234264507877183699295447007414811486737474124622398172508184083926532030148449511580106795896089439935111695690599328457768877542147631363997490907593172740283074261947829149464373531079663030597552196972699475068978303565106625683979785320563834905666752813640675326632490874179954383083546147821794413061864456121910538721600046623037990472073445045809400943062361495872013077942375319451452604707003534710289225143022828347934251262288373111433794955800075434451353145340079443435595452925819783821811803455671176969737580568266021052069591915617201915378320939530376002601110521883834745004252066169660274835645307000051910168959971339248829432781209488767470443323899961270217410783852516413773853756836474304253788936158039143176455771129008582947344370411607798618898093261906805005853151541488623322618834196068626621314505270530459236221532219759936087959048040437373195618260158384735626599521732763128468346819097776808864412054180839923131468335819255663509267826872137775935546182548415274073854057580250745914352781818171323177277456607721423615898067585744057117219791224735314116246307100281867067890547300086335904813699758022548797832511411636777794370424324683405185230602437848547555917564542097279879907001872893593658552243334917958555672109028951820042575475074684649023028619972920332598904588779520561209529440611307247613153299290392849308858851395643289906911961417890716198742876373096410234970352520111384964534354134247067187424062587990813451294751998598088074607947129350082673765075867601401191524145499894688061896641593468887867749773592935257536672747167348404721768133996165886034359701704396934736759310318429346943172459588400235349337803366041997543873273648584001310016386281427985935258675133988955559723706609967444844760544083362180228913953414717410741982102277570116775292317360080254296799166261412041184214954855822312287749446553244323590989182939555501781605310666289271876531679404509839218279054480687131447850356976281972143811809776604376046838329243208081221115283668930285298519044772633430710661104565738291766351089129827540275360464127440192306112355032517544777007604638244604055353188815954877542270819935076650794976547951510428899392019066941010220558214165868459614983581131167385062006550943663555320099893918975436360907538452529324267807457549772626644264962464954563853233806645226626726728511074383165038129482377047949154358864432093009117078477926093548034057753277692750069997722652297121653689464816100395954982897712607377934824297572460986030023330550448219859634970525448326161746873503630868978518505276411755632516362156594459713542449712303581877406793742951468270212600017124804029199993271940939377089287803879718620835336905307913344183169397337964493805207322936269552026467677427637594900365311526666396989063019020806048955627175297967043309727592425087105328808791654558386694188463169706398027524275209166803428566280899576989747091601767552883570827575058620949741631587037274632945345348618803865554891525911195914612112585164052548158794974981190405094781601494371932009540728087595825138011807833937226662682228923095793025801217219080697029509624429940974398173799891672763033868535526362598953135701241611992018017517168746553175284610868756795167350511118246455067160203310333370787714206711189469432272970340087976954523792705248825412605723881952665525910765012254062650637643453777215558055021819215187778868510297691267683641766939758674393309954426066361238056553036292147848796247055448029218746964130278223314985217342661633003606693740522763275401122319103118428968549725726713741707604572014659984249219006004197542418572413207286556533692805245744143840264175520662652750359271040123347538112066756185213668698833909589212162221910864917857249743743272908608876075452959627006380528982905644275614188191581911619283686323022721768966692198300562546104999735538238241042460664493627083503284456349386578710966402905143845857683271568694396994078712856404888335771854505140911350212765371220036525038961736806444229851751287463905373104314172399557467932605153972229686512426323775052786158358312367754261353835928992906355940823473476972432795535461067852844483555950119093266241551554008943748253426209395628569603513132741741236374972611871401286755491256456729084871423544144286553423409916465383017317640580741701774574473062042902325676767704237751395189564580263646615364263480721307464018728657197786229915448567646470817419133375066868498874807088249956760527041172000290123455408435310658968289095570516492094271355160610144292331057279827291478485224318708345393932891533912402733782160369114538261261441730174901226481482121331311948762145220060585598461601374739085076388776865166082756934990612647541611118328375076731194394626746696313357517044599555390443849828559135953731480315746741848556030539464035675122271933460785188348082909225550516720899152987999483436699301385134785270397925651900830113555860765313465541147760928835982101994810208889546571325344852297852770257286978004062386223001803293719834986743745399602797569981758906004124307954827124577308454285961029431039088069454230983325000339906400553877493296997889602088150062376515082869688882738453207776150676385719929728580528526364578802362143801054127524092792148522334931397700392348899949005050482502429076065380447937737856524070517494158015450726190530456600638791633212621128470578004701684479180890344315987302977631295523385796505740392378978746660084160360413876442169508682899854717210265768371389677340704182163573722805980862132037266354266015677634754780904667646627564689401470065645763227134043576761743171677012226254602940128376913972175662083716345114261838678080228877937815281821393804894382100147632814013191252652517334546821633018094736927434114773083819670137291428638342231738675699919106321940143133592767150982034411959861007287303286046096956742300031466759723804678756803025056347701314288902285451440694742559082809096860864472199730615024059619135080468804066030228205004288815811502446104717243941668742032101502531139870478659850116920559935377614333214532038425452359759948258973387529675510353498960423552025395218533944767683498058997352592921402074732744326430321756649335734333600632681316215731416610139932330413047861846832784331576807265912763811001938147254596612330399620450441969667695155020721496829213886034845256316230277000400446827120116729787566048643081028909182917846820747520335510319658878580631782539581321685386726795391168234250115518807788287725149760648168106339023628930712802802075036292850282782262843004739842882694507152054088185488586398521961630143144291357452292025332393723231858960088753625058048821938584460530110264085990163308977686430729376395711879698714235239096824939901397540104635789160972780414652360705395905546860729155163117039717469000952884580923933948945000324347149745110110718063762928417225570292978526847145105028329707537985613485432142224893250740326281435093433632717182690955409267860582057657442125031631108682709556205799824764092607356767032006200052541919939312417983383138788737606782823165183104690634846185199771812397842704471077587310121197463078484646871725998901739646964489702087493343521776309250221963518108226394565250860129664819832169409838749934870958850013324942570961953659961418494348034548776296786066646447514327227417395897380259829789554302293231483075961335355773394303385562631655336665656879243160456006483398357455275361121006878216474115894820257886970845911431166074999543015936094489760845331527986073202393702373204150588536116102267053212691022650055142706131779712747454940362569609519724896291778192451713149450351608526971341429007136097633630884279248407317466370837340693471398034219315941881118214310233289337155086511470076557598396190544452642122807727199059989535062323390598975308611261432908066574769037512422785628749486072130906602433991402198957754467357188248498019679805717227583588542661536926454580434571273444257348203712260582683642112201416488024290641022692788562196647266906711305657477944020656276221664406786083481286828563902331926535059265915173372041350307124583411379793570045005259204934062330773642201012706472326080025937180439308317699892212996542609430238355809195022784588722883923414001447959321299396631036761712468644610048908822294223224818839128519038850760449093207327490895235833307568261619832809420057719207002441244668339782928978854113960400691306644164037925392762017656524205561422387213704224826820348601859015171381290743091245602332970143806789876710845200466966723488942693730198690970461628816731256532900321140689501998283204079249423194607958999062901023186965497198547588948909594413094593191262088542547848605987938430870300392481110648947289278632633568151042978033645046165932692838752771769133478652740647026129669057898196114980241947014714656476772731089638502229648974544095862109434979248263784130010431640493497820120636394342885562800660855559194396617754858533175185866421539084642119866795618927732475855203056799728104705196327218251613541362342452925312904043173901490123599369055653922534410523796942276715167525960925860820429760889240414339309417705975289934836351574501093597958228872994292519740344043893757304157819838340199106265069889062241282071710594971583527968320051066905012416630360454948813201558587895484741724818772373845051664742255061072460841434323458035940263755527388368085279709894299013018370906070842777723338241238035900980839868952283282323535738279674706452531148237585060848726558020179524446608810372916222784804832363847181289149459856005146274400822615303032393788217211415419704965968533757360826931025550277809048243018901498190186454072231700159998535110880059962391862577812898738862694457029383169389453514606383057317693449664194614275241141722260433288017929079359813444702120567311686635381568708093713673320725868061222225227554728633803716259392972970456873693838252574667518570345551267202503747997827615959437855176368742974451857518517146239346707797834266483538032449009978641578234974783003692976495709570973935948943700601001246477790706470218835068217715895917924100750025081274082793145133732403611965123046421147907966202181624092115377804551392216868910309525925096759843497634386812464113754200736217661092460564061708850396666330216276875430817163110174065090339760922157349194136514824193041252732793535770057311706192958282242790841076233723441050851645204240928206253202702336430031421216241996446053841624364554381931187567053629773273684496420983330149575357519164959521731405848437905739985174556605668114994727893549502527924478011745066377668484766891078216914063547120076980732769423593130837895392843381018018890598929129628811759279838088622590991127235909742678562122802744372284935026281994401263343325470741670576124307199099850286145168073042253234691114560716202826263885602931821175849408925931208651255660159148858690551396347287880354016916310066325895588082693681284185111580050292631875429260141866504943084041007244979710462940332079150397882961400776322561986360754771046431718033032338424051247456810679253945111197336388015818742219382337139174587542665686603434043027230396107379838482681974984144045831134199730573658420406491725615105528266869579165683412177717832282993140632900596096949892597014658896428722124808056620526282684575510718101070662337297926938364491798561754957311361775933866095707710348144487796191201894851055657047565783409170702725915278640885766325787874748840442806010332280881468543539789828727894954994803722308245383061291853228980438644832142012167623623319163609643907432324450996773618916231638439339374437161610990110247314278548671798987846801665745633286692700229116997786240858500844032272375027915100882523677558099665457164258861743061623198424432561451032117353572218702562145084767196846624142468979320992169211961457701777476407536188630992649391520475516325954909716426569934958629376784596556705554891636683543329931017051501177288212732684706825795854204718986976236295576605812939106744662937066768388951309081631718812636483662350961980509791123202552163461992651833735175366448841533049003708755322985613234298529692695728241591531334834942067528963771329957562895607857092010789852050247511645612313894696978122549178283961568298523330842345270194311370722401965809787115941505827208421788170732829111718350624946935120449094263619448736377803893863714007277610209382902650387349582831009817936314860993200808576981521384016683213920392208174128630307351286828429485946827653023637389821378964675883990813429908442699782257884006555286528816313358902850817718684636026100701906401711729771935078798231955847704110683211039288327695402656950954192619693119334453670941581245526816388002120440266150986664821527400866065316368265131155636540635193903211076019184177476973674702840066980880422077402218246715316676945687843048241758533387616274974817889139001837422618837379257066439632306612166824013945815604488148612852228929484843646077008163875307464943022931085834859824287075331478839416049958395404307652623613592143124810729087787657235206529161157332944139135511875336369925185460693198475814446263297273557529187247868695711607847294913116291310986793882322906424647435279331695857824249829352413316118409539680225593043535566137044216469648485716350917525024445111841330685123948508477074766361325367179695247829116698294004132364285841835370799473901700913579313678278371947509744970474147418497293753907457279155656691873905908164504236688453095971460985078736399518317107270365950994187673457036398920248802268575529988670933831475720054697234083564383761915747099552577902015148650429605550060940561325698435988490467969339048308592034071701763984506612042572452479098805527112299005046737645960823470302078279393298990279973248017939366901120133379550241564087771114079401177566447949315870638806738366714052764129249114585934542222060252677904888757048421536846196264635373934497829976469939216211847358162046935192991395250715785633680718061138503197415883434179318322346515834657232576278719427218223146921938161451756348274828428770558545827010289204746234722634053205030112978976433579608337211085571364113490450674946404880378504790797962692698792800138534129292067810687567797532956224741572902199589924451941470452855053601889885515513366002079032354283800280477587320261770235083700103403260270383003566303800252787026669396497030211003554359160451204014430185661939089618933323893373874642491476952495045918606664321773926916024671576201888192323894214065640279274027561991861321565046739548367048612711448854960322602411342502792732881174685349077219210626522308877265170873186429880486012339289243046043274629796958193537222483374401610312250448311070466040110092953975403461668705996078188955710174087182882832794419689448965027071226733604732998905291138576921164319758865484683503052304306761159779125283948695028739600877946140234752526058177607389230048702427856163762834607235766411092879519992630321758922176767956811394633318523204737149743248975718483412822734589341164891362112534880190291147320158014766100399929197283608375065853938668377807252394323959319879482126788245143461184265852753146277548205669338850670433269307637701702907716342991092962901973234825814279112360375369336753782238420587828115165522712699801092241939760762469162728117527937638574378131597430417792285647498810523398789509137286708002946766901426979131426712279180806394020725386905017700250566355658682933890384799905522108258051171096974617584833325139746589125808232292011407613896165623484763101552303269866417787113664778763113245776733432182063652480126403542453812256741621360972869626695297639406117000534913904312662565031755589470674514829196293175403723913598187502381901604919272897065631872361721931517300269275340730549184333760678985351595655067559826769858243344381328357677733934491427921237837230419669448636282130525524077067058783741327952168040190988564953608162722771613134641178902443769808011190551516827140819188318345336125935391347228952386901809063043145934954980744425510760245692167841128651777348456749884078451709396229461390815542201259432958616871813252753013026747893717009862826087874153678151846817398871799580887361709609155000647846896874365519400783239534342869482712845564368442223560161642004786677280866355958858115556015192492312641046766945404197139170452400321741497883293066224718689368855245854091204147847695967379358835059714577810581287516584534525737823336163266707681958580268972660222443834704568513357314794936193852396663171676517905796240280840504108805318255291199955247609064229417112920549542074103581459994863267287068342407825305761212822613773149008472643420788633698462271879835053768713460223768666332927687178318918278366229496027477646874624510750657642636793532694642878676355846672472812546566179806053119654352598688187292562989468993497750551982639039379154758525274216578545315117507323597593303293212240027677205318454773157391625672917451780837302720267955888651725230507154765341545005960574371671590857892996072606962544752432915817412295409181230622744844366387702988612172285304627851426936577889902532373887188951894582686919579916245583351084939611017137035180941363225950337081835532568551777148075605766994161755120341492994369981998951428153161052560507351484353300447104347222669761720277242112557355252941000866918523292916793925150627750182627422875457920653045224756767036945188392800297629216260068411522201040892030616519531771842901187721136370250864978504897116898623431272532313450952261835034167120060573856778898349983362384583922446805452134842197261326117862315169493100790946403693045023322904451654674734608471270104527653250090318580401339286157264148447815964798370046784515603353744196082827488501483213272271282376097445334021964143934062958641427636130337330540319401382301078639559152887011953972662217133926044549496202623295048081519016668349522836047537827080078188638909657658745438317542288651671490011137655056746397431457090124102554345289166992739303907216337740856019806148241079483287308662950218705506674149855382687959253603277642058750607160253803493717337141757479091148902641372852740873972955886087847366022517571579711453744440602420362429663405800106086595143566797542856185227179126704223331001070094973124352745578655069404201378368225839344343549527013545470046065717270826960103257210417105057424731255762405108739463230862728585961533296938244303100445559267189687574833086970255063635846525298778161127662117744890082101385540770858352184111901296489403753385755245541151748845443369173988148118900129216049749907811293757050050297458292221672799818352333916677256034217330916206674004249184285675851049425761816592273896076026569515006517467735931161107137394524951803125689190675794673395237466094030190966996749815879740649251473853669477510604608246184798259059691948236753156320954536953683950046085365496735639441882371067883008072303594626667842809136844146708132889305101638301995609508198915270016370004749467850504153610802429723603281705122561455444143131431058215079371810404410936805274706819724973700020561984883356594531540503773882281216906536537808866898107928604842914625145444814060427651379309029243667422463578344078758060842752080002452634554386952180038763928519094664281796585890211064551965348566836289599519156627905328767504696485147007772795594475594901634754984312243155510380701889463225431603381031103351896691566712322944926785247712195185843305957076601822661988091900573526832230033105334060362109637636541958093695109063411628469064352740186860411954296078606160185834010543575149584568226578642025233664994066942187892425048457194730125866464728462196724083611488534589109802780137362560342861717040629058635565288017453119910040143035282315691462448197406070562278933118094155509615480436923653329347134198680900863684613234678518933766614698772033887143461750887785321029872484467089038214583591795068412422657305954254003032180630351233383715126339747427221126606370993403714417851339493956869042699139402285498903752781597853274369498183590815808574869759433489961286560682503339586850834286028729601021520546200514385043202924229761755748954513709332246615345398152243223789762239875817460447763299839597489787399538308763965107512500558095843532989063429279026617274165741703880679185664075244131402052790152367032558769447003190504090466820239387211931679835570707863097546133684474300959647860046942004531466042473972661727478002631952063153019967693556862596093811549781168089886834894170832779679977157241240366179824443037243793295378022064367988134919472297720389789617911777685605517647437801201979085677526870408096776732028805894410002269212613771911654637099154358231295689701489516494811602654523738628959566654981375434773904937877210946559273403726787419255315162378673907355720885538517765193550612499107265598455886443144025335401539726697319889942729600968774666125713861295465502686186665074596782655041862580374523932719869670127850004994720562904059432737994287494299848733191422333390425287368584837233559863869496216734056855950262327225458002994358904082944276950263323698858719928496349824841925074512761597540629414582761440014124604545752601872188442818458566458077671258462183726308475566342172212784770250461167659155190760543611923269317953427273059285306491545576473362507270827099092295560152527847883499403242091863619458540152521472449951334697469045159949415342634514480525822812416347796289715867959407627796768129138933355127151729312219447544067740864135871673071408384193296865430041866757263526549517851254177497310404632025645488206684150213029139960083592750872794121746293416812718952567209032023055434716851238074548315238842481961888959039574157777127617407412561175506876822123531857805829847593151224549970374402961795877845313650500014592732965687129915370721479933071496595108736122533313510482107941953692366453855203710283622866627179715516948457936574249850106395760948719134544632701420225976928370382353971636183221245133364540981927550840788941156460996446343243952218808553969635904902963924637908150045785536641207081226642780034561864271322962045705355989828778433825264187797377288843334312925147768684527551244944943971363588156561382448563046271181962123561616102199270427351669461248559415362568168977834099055120335182564874012177110705659817986744955783800686807335014501290617895725231243573322796167016378416081361679413709840550956631855537318741340713188574157314355515950152820301209372615736101137537420835593982912570065410756442804329496819297980249812798145191807257638260608549941259209844133260188261089470709555654009075919982669139919301896323506675120666649468047985853670079769130576539725263969254180252135812672390742118544625938010119234260760773092368112972527549832481031482311146190797621423009377196951685013739561570089930483378614270058872083698144064150402580090388694422671393596898827359953931615390768644211287431636746159467329627598727736913857098578258633350337707416040486823462968215467254970755686972062513309475348496201152072642313263952410558621951075679814014052101871319515487099134169338793628812541291846360437060178609670047171639606916364030856467832282092784156339520715805342120079214699582430764537287761747915315949469225355364700751942896242921480209144206169411320762861954702454324001154289257372153592948345136732213023031544729254136402271712766712330070566863687942893135479678500087059915922393182293559377353699691839829950231711699791563054825223818376642383276914664704613089619970225253267594570170203939988297526915881829405980629398440376884086907641636502713360584289770706218395280109749490018927339760312680316449169384585653241316723257049557452446202454161505213864452718442713697943739252278643165248674040394930649094655683936364271663850514109852504778681631482253138712136787803665068809574939397246756598076925477206672957244605739630390417334688667575246912548459591990451600060921988890165461689396035304127285601840369434432823495979972656837334856380806532356431933895047367267468956225818659758010612322613680930192337615068833720325293280707606345095858145318223883003108678355724628756515395867790774290418412024336981102303601672510595245639278036492633213512451366341593358543177162816917652564359694143038612609748220982486567858655240399998401729135175858815025754821436319157353712845288953461781611193569195480300891078928191576963411299159233670067098813921641672353752501249985382783695368181741459529869722246290654276136760399874261794934056882919061482798922510274715531710517841000620529886632274696731700526562294524872093142083772717540076644186482165816269022665887035180111119900575130758857665612799319244154725569289400291842337942529820442823714495087423031245513776050041323748802307883803541202174620895748209136470912762975651643550739147604837320994706102274905577505938857271588973152552891046332485991211257953701798532675981583276049002080663524492269930595627112549967810661172044370388389298080203298171552862747697425343051611733972451622633066987429832259145540867524879537946692482508478357719627049542344305518795527153791987704591365295247506874198505758542278613617196607207900565957701763498274450820698013127928146151741941022150233900454855265381452393850721086040973709558047419126213782166547493833743568194766659439559990474117744850246438573128041298346978121385408058866197519896408450098696942942064211579207200820144929776354303240829010693796737250583794775958277947406799675370989759329927604705103196055808323220209093606424378106398355284990866914884622748246041021806972243749136057661764380668584104460224261870512265281761351385645772638327235975487020009857617129959735772434422968828296332000027256811866008269797183723431396796387533041497091602933073465432569303911477446968790888699191201138848427710509412467478192826954426515356784196799330627620203008168566742645171922708560107298889636174490693637839986619431105539082190385795517366384472862479410942949764441126260007506752181609225114734691766180952723729588724089405186268641173719522709019349007488993627783385534489814880407332892786481632145734241175049406624882141296286585398640797406389058249935156554670033852185064675756419802854866770579891444934978526044256113495817042116236960431556256598555336984743785252495156284274697077387443532311903347312597559275854284940882252094675108688473155486984797986702588889174934457775425716590959500508156804912844410042401047707872445410351911028719387932784882434930156918722872515074776055416963933140293569155990787795740640506311078783143365948674909733735341100371229836517129840043619594805975526858732513588576125789803643678380547859862242409273648542548987427571112477033664473784467505190352797098074921183762473548015320917825641463444899307372633356557862795574024676201152994906817198433220369477615962049424158974789360761367657040716391936119020472203401265025697497474882184821079425224195960006862621342128452356401871659112149557835562303348284799719001376240967344611241901559386221759231773842502044701779291267427093239793526661203334221212544467248138685724054305883684246885295148269860898134430032413762068746877316350900015328214539026222105722277351415008841092276776503231643420100579674291051329648748365884639812759307912964602750081730558108190006022460795861059102931444802756139008149019073906162811310760230214792491560903797564457955445288563679951492915791560829051355035195330105707688734945693944868832362128471648381410934158459379445457089905443908032282407674945061887788082873676281709177380066723609102867150988487321952376364186277717283897835062783094083338385252387793675365432004143299468864439164067013056200937793799407442548832178939788935737342907838280124349094148025724654247934937666832020501817155472404572937712854174956614883364827680395549600927906982834392008612321113947350786458976855967174132242598002233422114878565751874868940755008717975685163308169067033350024372574967230407843083016489891094397568482467283029094343895172798113283831645582970339601258047768359049104968218228146105357059973802802652707960791485431476254677926620855427197216717139918782398143066394789211255509664955650351002695057675931156498441063204235213798596081821308648423910676194254379716672857006274379158581302772441997747453277235591815960327453185139951538037858689142091209132614309956116167581349360113705646267841981853466511498956233768041692026691439397061917626947191335109203863834785060679859499981789411479976070006651985198796760815895195630465820596444961199176870128475279444380384535685663726412422176787020852890249190029150495485024798894073422843010506803630437201513416630509655106756736637496163835330069623058694469632236839562070498033007943632859504775660954981446172448336217998428222857926856496291577165460806024036522323267902064986159965864725956895508838852346124772524904025665494663587628762477120840933940323195912562494284995935366513988553220182878770652617494015740458800870238455521101677713372263024449231705217695995739986523177826848020745469606229544228100269640587386185584215770033069512507151026260444397946372668115086403959899557186953790899535811335349101444126680602321364221423982576362585574921853024089306546966647256641454016293773541572092575646701568477359266586932027903849496620416481345967849247970023381052640866380539983872355068731273122358038647755302046953215693955933724710768790897821546619957781962900117327691687992726188855291055430415940644373086451276873426452490646936583333867777301706208303847438255439617421214198675968170250906347963460659011452033915554792178002877863337526413778369532667127769640332176338938181309863307858077590329027911136016324877377911782062282292558141660145623076806372302465078075761474063567867964263732612812277196460424498348170547208645773350668314702609681743435786679627043972867304797381246813425418993814225046744734018528182530295061848778086830919874465322026687629124754895674103029775968626485839684975390049568329476926071695987950321186607055590757250289416643102826500195766687276000198611724448439967580831911069105813636795908731399783531256406459575860176580440166365364539732023341914015648712685485807202344601494943691704063501313417451955720301751422482653615210697894185234708571923578620519104002570683153025737225998259099887441117751510158693955409841364402332441020947259307814741801774730828744137600496061940953994552093772520016740426731500479476844419323498642624163404023878510404595937344674788735958300577799424457211200817217812236339498111299223460629130316896520369885133371988491935450519691310655979199622721369603078267768730518091087086363278747239814385645230494923551144712808256278029998503781992379752232972529228412839009626429183174221762241830048934504050463705961048575440909097707305341005342980633477189502520151222570743729229824171856711735568184900424173158271614178574083730099281803364493048549238893256786488868008700108776910272064580936917748983425307369723388996133799257270618869103561923582818865882336010963305548687085033747729812866211346041025281730849359797056374830828016227968586495923585040892566334710318544310804778789816258189585834393744348373038728675018530803846137229232959581919950300929569980015723121309810257804539020778952224477096449666866835952645161783857636919803346968086053456711615092004570188132256879117993522796717900721754232545177696432242564546652812388639556022121501238322765992472181596649043267562440330636418778317369386099509743116385191354958992807138826176927442055595452206438305570248773424239412099115778900835093344167287712355520545198353282207485363288299040079432111863589009264394462037004132879111652950626074644239678333540427469998755742892826694221326936268979972362213756789611175019780730469648011916044669356432845237390470745001678656778636743113672930084357682348613383806701045896764031091756573124435455874375559463414250414299107161766355936498964364157573796272234350311912361281086497510765001762118435559224015501872786401833424023531951682529453888292833719175413025410748388624771917677100927987528838868873188259921207493549472643512973204319071119928843030084256879666799715390848676112669596991830500908750945368199299066235907762024254960525395334835846217087622349283782776897801819796524847931052970482091723703655322024882586055947670955679805952857334578122850329873591936884028286942155561173377069882996293787452066996115127910660488543599862343552951647896090947813533350474679525321468809426559485601616788375253446252966655246495502368527587928298056391358176415279779021854587748983371064257962749874812204581295782344459711982674756923985934516740518267724444309998835961107741759760954996017155811501566448250726825859189996101990346692963828653639504399342647170449081432148352199226489336261602320671459074817970242244311698205016702420504680485650898853099144358592632773034463604814214829099268569047245007314985933949914701129644866239184127238625206531823484189168225553186898013757775565185972970397368813998197196979973453230223560157287527364846832881445021107232285690450579968286596582473939126141908826233102116171539442432608879792431635824105707822598089581945775486768687878791552485396730378372697099464025445305438957742092606401155616671803102811959611156699310336015630721080541029602593810715306698953226895823791701535233732423713635083379889537108900560685533454960265397522471680241962345409610389343133206501559483562962232496625282493400274849885279065271932774253129547116758797913860697446164279431611843615847524972751226247617618481706499309640789992593080370317557862017799792101249090820796277929100832122587113832709470258349237882001367484265414075704049560636804121678373171685643593340475476118135690072701625699699220651975903514056727057316271360982684965379704470242844584560722734326801624955249144059795309906893673726549772536849424574715932838699899311557797135064608389249587288292854662910019150028048846047202015999835905775728483783140244370412745147967680636311242362476727887699142535377410106014377979881658582828231792310373904156353954316225968019963632001586285445182792130826893861504512964012280881533413312658295410037598781773216772451215152415752155946935500034537829178770218399121300615933763920626281412169831777333856934856673974087736324370469694156494984825947824833629326470518360424536211548757949035592166958307778644102577136370007564705856942061208822562492547834288881408521914287259583993134420362957791245437848192317596099405677646163675898128286474528976150463239607855830369977028823177598995029693396254065479907421960611953298564912854078672817809117018771629921376054358521175076002600048887438884717202176290128316058900096598204490429690879993563165185279182504851780610308185148843117382183986885361173360079472491958814001946096736357603505425825951449057092562788407333970115413508115676361212542569031345474056646588191194799861873567427909278383494563217389669389259822295290947824461158749977734409173785091311038827291798137148570654601938228449780633922656666051303561373307293352948291043322836891981875764957396005229292487686734541222767373102362014935654166883408864028572669741266389397469009179951409539888338675466325777439044213487966033852352868896173164800343320717743821444792344682663141052388569998759596696793345861416791437696367027258963037589334565389473047563992461291209157056662502496817530839183082477706275762026337484641014301807004548554507558519377672399090506144551448046808486299988638402826903187823633041569367805230852490342006270049398428947439628601530133006661858958094265716614361725646598652793146123241362337559474845358069744395917717704926436300854667942160381469116987294924848203754543297067964777702279821391787918511858270923422406013132597460257653593082409536540834832246541736695376302054101641507121740265563240753556148038043365699711713690482198308966695113030495518106725695145897559875136470380010576384756677208581235524825970867143686235656558350953145098085525568245784315595543705195142065121174848276554117096564838087856427119411266381443143881728547587172922617570918797376946344927224367057463543524551302678753599147475376266272146532785192764010677188515155029230101338785930930409279001364495580581642315898180769139961079434301222487250995929196933555677905381020399877239817177922188599940825212988679685984616791883064579722302633603626739733016361445693172202648952258342888381347969873703600438265349630357820635440118551556395326917963734934565838694319492153118452786956653447962081264359593425804580186191795633802401678336304489350056869714786662961200610316869874574742756800800910801155716787675802086418458951530503112068126076986040858102308204688355968110420459210702647343655350170516381741772532522736004235579887594658683368299974048822715846217115711831010851126379657219465227221805958080439112906100821717841593262422901907498997435869076764430429290789497864308481242980579049890479597836651688701055281436661393336865968793278626549494117318962332317963649990242060833645375619661514602345257994722885628969173844179693288749251575157546109200255692785353364827102001383721201368445262935604254607038652943850223248240346641027890094584149600234389711700105303316190897480530384416581880985216635845676943610586447733489786708244979837383060953079536219409298546221210280213593337346223025472147252917654386848384314369103399538461536624567753956476900316027200681004243278686608113715651082858532357369481114289146173892426278443832185287191852249253621463117626781546843123715504958987480699775736066413382382393204832564444713873523575315209308256993713087289222188802814782272834759402738890512923950840595777244621784897097521084619410155300135816747314290781059556770302669472647836262949858347784742350858944528459983097593012864305550201827587021280446967420186288335285021813658338146500803104377193421971278540393601769316757707908937157694775441539591305838324706028983355324072609267760629099914159466984021385706427219643416596564690992133495776033297765205328594479011481820706940248225925426473009736919627093917127242249004674670855011146546128306773950292371024099735734826386897264412119678692645047927725530004923703231475865866308355420924902798284273414090679934608155485294142598026871116300990554073905392638738951341179622879400577348730368455884689684440125377015328327854775262926471542437547815270976057538605938701997696299703198068716318417231425253917396515746085150117000993068644207819815536573910869704646503980334883205422698861733894444434931458592139430596078596552424734337803632445751452759202609702734324894621777164344740019328393089484356584738732879153064842083074113120837188093965924890955408297038628227492333673274786646182715714325239536910654576110260226284450340229884935826946950243748354243066059352472399897382049233662400357169919402306997013971739991120225677875667741314662488519568481845174078754040352565000676644880045395992311017359532258295063587679592404593307481108719956052801772264548132529195938472163395121600545157016594671182718603662784574838134433436730325737778989386624825246397960012559962626802599536842729954642579669991384701673396151460498555155008779879669749217339785517154309165698118728823633066453572256827806808548139016495738079527313814891910664532239373041084334804182183416745260991303586589648795916695013139861293013393605766372695570113832510761003590616800884006199964175091747069293405486624387492602732726187346000374469228698693375004378042613800441697290315856780881598862593465890142643187386969728075031113983601129535159035458210238968296385792889789310932716060705940370492266892636050056772580304837401771802896961924612418401666648636464704790890728789011008430027896958752266421613209419883931310174938855195101887025168652610561238657736283112052840421724030058816457837118080917616367198681509478474080476042747653225025669487893843206237145684119459615080211653868995165726553964425865630383687845079177563553632955302526097826089199520975886954875098820028786236437087928008370777079765001970524852185617640563547611937377203533520507060495569312009412306639679005318663322990063772594672788268031148725802091949546824350666519105572974230654808158995628250027231073775101029053197296719723976847595848512428947711311908085143704318117363137092893842697553335485491424751685826300273634584277194640482535549990078424133158473380205630546563494184601611968416778538951718172266323052925607835294754050920560059443473473339706474232313697250612409981034143459413827114913262259569484411112340829389175011181822186209903796970353331501800503356577004901040301282421768659689463765629670352194678825083170225615114535020965504581983428236688974635685920559329914583811283054053693364969535113172720687139815469616820354533754414889514826823336844863162666824644412503000113541367349982606074419093581076554230265907076792218801871691615307019757247570607205062658919237531793393317333582757853486726576291641707496200811374728236099850156917251449947626141699979459816033545648670809224648315865291634151276830842732445827970447284581375035917115175602496572796591189187987748183427819806894765401440435000368455803673463360192609068133346662578693679468575253505515052535788337641879952576137445997157132836822426813854474598099089534664125109694212508687694454535838420623048746144739683713901996082201839339848860521789330387071599801070468806267917782478821150450225483159172327959834358166978620657446912215013107806754205038448878654183055172202159081586223620804150942898207623155080813842829317145557534843332851675786555085537785054402722719718579609548273850508575510774336604440255328474780003761979284342372513691375633129964861786632980601711334179862037634446517880513520757811753387962503144877742188020855872100636589043439200497922758593015385849590501261431516970422624101832923916471569313704249011452041580795470083336181678432223216429034294239052499098497186626739094961235063670242711712801737941239694325975566847167251164816899724552305877535089597007033890244200629655080488732074702297000491087665211570914073435326189758374337069999090918265066385638429390839775040138143953349858961846217808236019299769239620018528930652666835629875936017188870155623231811238807863681809729350104564997042337191068243374095705139923683363578113308729675919030042624253173601268789703857349202905137156453031213990190075479392190953016115230620477247952327613562494943403033932130362407112397050268786231049812011932235897730432302870051785126145957602785820016545846992139668615957927857219597988992599014556411057477066339757094038969719540222894953319651196808733266005425264063627786788303278857151656352600448441157321948134824943415503691849666258216833594813164078062317263907190400775325727690398014197473346808007449560379864567769565130963883245639080572399606300937758037503362800444303192110077366191622850424366343327890632485185167509827572856384552702442496791744216195561563806916144300670322551722131769182743933676500870166363197285005439243661313144054740670726498629294401152527155120921922022940463284161733820457151433406120762110720120829916370245825244118542678979546976256216400468812375805371604310312543278898002385138238152585840813950100949266732604439749549839298537361463593085907909268191338198852573901328169866482049510804048211927538253039675253313915349429211030705341430801166292126294746544706069939670905494889931050054186704407499425939635361450153076326951825490561267900073450591679575576645542420282157069965545899081936310875825959870583786337818316648921646377433297083899300923137150853138078403693585868806200876938148825621889273690377722304562210888252855350513511434627291532457821982786915033626139036781972445550142318911104127325145241459874262705673781638237399806541579635193574455364210267749521978113513363234382815730117809095280840488663670590966556447026309760800030515802589209281652016327511010748203428820785652741696405447565868414864263519974779501857547507911798387777916389349570346584791172727248556379504274932987721386044571350830026557018937044755532757902243139969964970035798011341723978452351120162798443525123455551800115234896882691923552240666646770670176129438077750366729865076004952165032406832262162454852934858005653462198470758685282199990332184462718850581507485933974550310003316284556498666656065597562549436065647315600323086779316021613777691119542547256024964460343706561383265195371053830887445139250891809104995741977975066666676331751287748083143834534356121033538652756254959254666337267311303761820581048466841245429029163416116283901207561207423700659513880095044663920864648365901464662143569768398379180157097767531248492458223670643747234500387325605665155060609224412421684747995682111469946749220862711452875604563107537810597034410989545160416699931927586878919970085025130275624279811024423993653284988256390061241115267251371294644873250084994649926191993620758468858710728083587019315312758976017836967756712238909005448024075783892834175297513556523853788149252313242627678835024769332316982420756097386173803832366991312618419458287086552169741576723611590444055757887541332416706560243041081727859456766658331933246153489704800407501080294198923734259879994912904081837037134906742780840784846009166253794248894692805180034526295634465097749286288265131417224922076145828603153150448654823741624594333933043020190322682495167976704646037806565069495174497079173099761163175292224223003736278097286640168771196042308911864296185932248336996174992702626583233440759798656244803126205635911392704960883675216745979342291979213444977421280343831873395794684349539970607415274831737366518616024330242625317494956209793633275582004165177976728955487317278348499836252863193366738970164412742798186093709589513396941977192534367765770446643002810304289662964945965674349641769998904021884175574396206877512802585803285797516868593578935813336240248934181299717518053462616990751005077951838053952741380173514801498250783790985611837034892838773736990937136463145371539950116445539101161675166196908035158970609143711147643753879915963826514000178847539961382053315917226026878409946951636605710138085015589157884213580381911969685182709405776044519802692903546791121231560996954814057918026123865220897010734128796968674963056642250408318829088222795982378218488017619255118224191828222958401818404128906692796457529974899349051264766305757863809705654668226946594210732521504169030340324710774435243446837676818940840460198287863596307301429630473367207756806679598474725705952208322049602253452692440389636769725069168106596381653890073556681772133872485797706930838232494876929133143282252555048941353683825745355807049159729111331470631010969873121748137825640197505519928076688015284295759919118645242749208668727381226938459624878200936141721737906625630470971493953128881011589077355052020437161743507488986813502015820949533043107637677469900489133223644386962681454352076858674575372446506465798344892478089629014829986471257936710922178955986484794793052700210965660106816898281253933651521170865191301831678847274288386334917682421909969170678320319456254170620511801488506239079723965735864990409551399820118060569004626786481064950682275903087079804865487471733136011979828972069426684244070126309873356496086236861617381992645957290271828780361539296069729811824807714946480369769620563585802727782232684536894667328749560483553146833065946507129025153254701679294690079972764573906796722704203392927995907976170057521011844664085543688458714871752754007039065321490774760674017897652149549137429336143331626295383328992638993880799455816303495931055054917848235576534444080351590792076025977489861137396566037108529261755309281592891584006646891397631351987934810909877747342052407863570475419657599860125949907986681934161383173515773462856939321956779209040440923762198236561878153509032774486761013498823031090692253342431402315149587644017571571961737053323285679469847611494626701425280956465459009315047895001148849311210129024094174733859553884058911542611224511788909582052286777492718512128902854380637115214194928365997372530604321162346750572652531072229775301982154217850702613634099396008591074489867380504117013293042606738772577445921134429324456474844619400803609860564015872728241993136042625195266498352187443392868147834568883660516761026874771095331401542339332896952770762804812518138061204257475095379163641138839750994786135253320008050287266251443196465546905605787765654662247287764201777206998883069838935029289963217956665235066047919147016558082657134199645277317587652247635545554943284464347904888530254084809581311587231640782508320315975623455700377965766740544310671686494288533170925987220212422095097180026343017043599865526231298153969425016720613364768270721890601447679456737236630514454465906490990193835611832583839705223343824185510624234379691088302600545127949919991130714991545161517643114467850666519419067540930357832835854785356435447954515973740265389668852613484328545775389306203394157265936426199751625604013219209472881921351968185393372341261908037734103718871495801612080490533915045640051437707858412953586115749154641433639089126146588767784241437205728103521153022308784161719253133072628495943077304973317802963708972690266973446401148442150706637303717320180430087232853132821766570785958502531187801251596326865582089470165905001183502651899963316669994058014242511982950422774677412828362211931030747275321150545819199727267139806382348489925164918836957525125910097156972915629504353761737319958575603804178759346030198510297246070325293820590343470470858443454571055830353648065760338016006713892121407652926560887076735889469412293886017334655284476115893725694057223749196839966167335856153991352037222090850494684810967395889600114729925838981089870022084044104969972822000754007318313660502173511244445018485307222905050804093350808100433138890123697762614320819625082773219715832013264315137091535762271303792584183431037867449596197860504257637026859184583620605876018654179176845756243523019122532013784447764964678741686694040557164139986050653740685593273336567465503622400618052603243383237240676710711719282825711702384676918201026549275776650259060083543776103111708519448688555921940379478795167750304205486238937614383728774161568759837364533710879959024918003344243620106056488879390828799981379347980452677092424926895442482304655605430014371918822326558886134113969830322948058887503971837098314103917479255139283194484665066299425615576588800263238906699562476643990885618964991992465288551230974787690725815717198325441265738461164140216825084245052920122829553553363355433841524135947161345262335423505915678361794253461520066916745939214024182679415553922078057157341181434024002479518662523470438490955683391694355915872390091023572284830351666210188994388587368311058660198039228965084240337397989173109537421751248551550663690706283355139526910070239592522144491876186238114686789845134688303338389419015837916913712741404622064703436905360901800873093362117715279847039109554356562143018590444970730263605532361547937545054403802067339324064421048692891628742024952133797592232477671132690431250145280132528467700027027937136069073290686893762495778598313595308107884123732557969104388588764548754502564536971723853245658439778030523776984508230283084220868181823901337964976804613164339975938431465388056463360845145859403693024621238867087130094596577726668838384908787166840893041618992571610511024006177269665047459668253964523992688819162042022435043221307112420815650002520794853010068214325064328482398185945502853435972466650189263870076933306524717585325245046948305575645930948193655771946615206463012166979327856950871152526312941049241748496292382327464695550996944157358175530301614932950982605337026281356861990183881801953163311629455518143669158988576089695406150580640304931918330374600839819920232253469377747233595929541626664907772830810308017363097177138176195944756141971466414086237962540624124973723200103590921459283784780299757604912428838269211873399777625996928496104508546293332071289597730823528851573186624098107943817756623432399876420142267001736751866049448849044552424860309431354416354131240415671237170166853330023194342459393600583031259021261967394424467455140316605808218974020008102384642173682412579556894077836360158912948102258913282594749743287066369133229865792607131692974000324142470725760200670551227526722299439634381751070979392892283416426068508128921305729849898534888742191395736822858541699741479744947376038467410867820936013391306680215244410567338090868562288162127132477411381500723569027562712320882087399085637207076026814111857694968068079730744817236326804133687097025133325435337424866318426860099355164722187112337838341503112321821654725322532120579621739702852120691759922523899325786624854532690948066208782183725730690769093308779276697262127777020020028296411223012440386179742582232815599607770344155055205205728677351209657641333750151333640521219141538964115101170462289197816604837047776727472405033813442611131509366351153653470380636052352257535930468285471806933959548557999036058909884415188597513004077211435017355424668408655814138183124300093009547456771877189500945471314714039534944119243029460548016845667402129139062080181148255635934257201539198134548428007039303747860582263762604049296008382584093043434667720582703995827477361467386080217934769981909803410783230086756474997687238632502098395108221721974802916605271222522649939397289096279796252783592462194022375611288878056296642691360981224550768724581490719799418797959733851305520478955371492559710747141352850023054204949297019668672812144386106742053926935322593454578987079931131374314002072453506135623891565426136992955451650031680823826644508452586954029272786970605059192846562296721628986262654500350732184461091838445655126445202276496006528524380115331640983306312092267667904522071087568210425356162671874820296288431505275087306821319732716826428864519681971522055304782327384797321182189462177359885747987934151118569665113375789254214341642772036990526440702688439711673304596490452868561161939073448114436049962619777632469752458896995538245098215762286861217630467447380939846826987861794072412575130854528302395768813536637158588055819443436082477931004350024621716184465626342112810408629499435952930724600868492510309504639485486591508627291237411681176595578727180689409295449496121795655027312417368246554639515780225834620404714983109816102817152064954173079885755562213562058818075630309150028099850906780791537969131604830505655949130429002873639929494703244539990516986131206243304314395931249023377973595242559722279038446072576270325301341413549526330712732875149558597283806233737689240530436800747844758786557920248970630768796008323799145535599543936804886635317044464708827686913877127152417907744569806104425636021907993795385952611633082996383650139784150095068514080816627430945075611613325628082833090875214382745778469185759518368172536378409193514723755177663537898365518860567918752173184285187425437004656360136432258118345290765849197585021596813921530076506737887480041165570680970696591063675506753235012956715265114783942176535327581269470058337396436398633110488613814382586504833183210299205381485568847040716224261584928703481629346349048905316775133644119361084866527398559059601420158520151258792255214983347867221393245107589612742263466393322836138620461573895186823723707353618619271449225758863188167934179319353901738393269858232798654701018892111172972923346437962814118938023445389235921529528838929894172273458417120942108722029621881452782533354971796246741707651889665058331751943296073126440072480625337852551732249518059574222298687519423139422940267021180774055498587574405114868224245726587768722476231628603778082450136633846635722520742046011232752106270475951533671154611583344675684073351242607794845458790103699582073442221194661989198977819074774926029615722921456238640216807682126704712816152586839695722061018947329996869265789578709752254775613850529473483498607301991436491428702313564877180535573052131637810415822298438675485815957546186691100776478730285914163934898637794004995194657121819848814117057540706761912815106378871744843900572658738193368447720391244818398837982328036878733368763568059185697194392519494293094733010305553415478042668365990586788135660898864854762469573557974437463780482405529546556744800586244679058731896746459922420600259425933967464518678432899306446159577474213233129952090853769487015542446926869250024267643219066272384153259654192017151314479553744127203318215422226316505541831503039707409612651440511663444690119287016909721259869530710190721158020641642632105906945232479637034082417887334090852976103761717372870052768697303093353115205048278650805152746195734750993064237921216147954627443886327973421397492399992503627115609082156341314217676302057448379240082463806980915863596505785094744832768635386957589396315890637701872946909841133252923780707872819351484834863952724549905733623181312721468342635322843535481455577901833320316738424562694249933362319608997354118970161551605467412579025267832757145863495263751251758603021452692774762469150873337419018491648907688320884683121471453854834135707918479778029578819010170427977086407241337262707577203285142557554959410263473121446587945577129807629745317739138293012297677775485472865746499918615860345884154546543468557662193005262528712823455479586256082423262150129962250992232373489641875864828921541308722147651170217001232141181110333988687887206219180699710118246473389223642004933666956568252473870470106563492509268352744134129333720390130071800221350635976982767542912014301970367655953652932643166541151297985339535901045787554374397632732008609941470643815881599626280432279622472750183449087778389138887270244100708350968970738495774282968100499196218320738966503393012189539794097893310755117098708437256210462545708881896929362229287448208885847916400704715804807617853731417766274327304741855636596756425236098368779399255862929950441792669317560759191294264586078954076737361889831744615702645265808315422335787556975098730705348735747589779392880799351984931389879863521220800431869434767030736628579527315957976357546456064963429341167065341156827325006101501678215734625964426359860574875494245749748418983406141850975190887613272497355110491312719932022612480300977180670407223521180064564297828846761947560176549124686233533005253523657322030348140225586303841332971279898721089867112617281600198639084686719630371807426960290158621547037054101366674759233044550632878420324748594267070823397117443673673957000663558585195526873878049171759946276454133903984491908528276148502218255313452197474965444946504712594258682639076165005264561796880724758722289750686944922788741064595054650635461935102787450426733142212111944763948146969336502909509184444706480229425999313988135827386872764436993746211113942233736573109854125489838368713896396295895491327352626133706370116443228573862350867977694966044443574355342325259241069646537363045213817027871443271239663594489302399267202511188957877378140231532995759227323979414417972190119118136726810095343486483958335609138434994907448751965653192223872322240718414902049064844843832190415306576473271714334090132027930064168976260917733211057392288543258716957829070468310779515104545609953422004146272620528912715375972418146932461690668467784366892224023801502668139794691939193393071413913390225105044196911182782692833813513104181745707451673319433069896295385985555360798629763280096063194046645890372086343610108207952105240505086101828372714544077123229847862894916104353951071430459034632546963672089405238810940378408484103063414468739560608035885031396006756242863522779191616426519365587650647385065711137340771640896580100338621423501408856880723140047689851061260322180803019399110713450276071358030083375810235182386461276592789165054846110389485085755195402302223537856512697491503532273476279008023052645108128231561665216854381401972322698200344306767772103256852110295477699832104855182048657446519092852665937800375066041295044365336411952545414529912762581220494285119240156537066344518245456469012953454084052427775562934578016612084189305307436232472740677318455327462790347335012036211152749313985068719155090633467770890190176643302143412755795045655165597727592205183197297494720198356367303235648212872128416547687598223357143284623861924981593803299419803795624658823372522168507365621727144291283149718445830737874410413710571174573735175086241817087289157421839424026385234337024314840583064176409590570422787322565409293684899561357870077279754189531929563775783182681180658083669630207359729505579376002660358034505319036464578675033721408251484568910793581340686377904193067608634640893608783049229704226692286689979333961617048065233006340095267636147109670245563740533948052367786844331391309326009135852061731500760380869257922555381458718666921841354605769871388417898998529844076901999449586624959735040112221691279765585507500846237185842624207257619863127232366214221310792600263625339940416856343073321202735773106192829622971443946934667685418904239811339390232601812423692756791613157211606020140723654803148960960986159342217688213805352504422851470831940803353867539749150127798361592663345639975531508231384540404599641499951503554287746378263887675003183060861961162909665925045243627964403724188921203196649478370903562728309762967195358008681993780140588251026254258974584405957548230150446259037052794067043580972734351014621731514979597915954615376830169372610006414225448935383783668207907504956569770818466005241727587465209802772344685407142012270092864389201487907625034280411889073297616548443930397437196078782761468366232862847461914245937864845029713814321404530003541348617724279038361886661012972670286323757764712103379992925399058053165641961392655542221000018598173513060320322682921546545306093514954208693977594555280945911098384211789955532609908589161385527885799295907795542135893957818811535877715010062190127523041609879130533605972348648382621377998764124169813994235903737222618814922726183376122950891456509960822163435306484260614137810119224064063080923931931029245591765685509134093145385516019980100346574012384742925068294286076422421014049169012464923104731062767346260453957815510790838740470058002068178164575729854813368031375651302497117173990902420166825067904410584890104454834357295722889018651744541363579447117546879202271613018341237862009514133340440895122564120887490268305742938130988250610387799431903312645804853855535292885055056231104177902208864669019958457876840281475513556405221333379431350791294320095051381642471951174256343082661286140308322603607824968602864318676889007124685343669320177035707107852825420914326305614871607078113149799364957676146647773086847128027214652290756851441526048887647903869860342509255528919910581379663843580825475122077892771476247968161613804623073380155075963662769540196757564803077748264821415658911015222157153522361300874658371984692718140447285209781971334814529288945244494628532767583385255855452731379730332191047460343516988198390522411484731866167005084734486516104398613231897679073590994980725301761032890893689979617162412667054443157382420424447623686021275761365009535197267186668577343497748172308470721818318151923086482451497788152711400228403649285225903604222181860512003686131577875115247202807104128455465356267255520823473907892301296254285996240332767583923937215302421847960114739577268071756476150846786971258419283045018757827543524939636806322531029834133160016065996324153015063497946744677441780016861073776834333168110074319921896335759967004856001460689957776925158437537910138925254156691970620262191099957983238943025544934755701405981542341405447645635532014213246638291151398867745265236696685006066024278466561316460944620072190003592401042086519309520611418641615236098703745922903917210740113412648864152025127023508190598759826886693212095412883116795750137923459074240268361629782426057943804915424488451275040681404510698777913888157846534769001936451457976893973456688001553607543030181797067037656991268678164009406095175241134627993945907053569293813345337376138419558129718284812440028464073904023770367770328389600908267792172241916347377611354014710568979378238490519593156387930284155526404840291612782256765431753508662299774323511257220849185434882623989859867389715676895397671894417844918784306301710634086817055471711187371324585065973839192223683105533107145659109315541960715893899412303451551329739306258210056102573375952668662710759218955575032122492506796692369295259877395733185026033155258622810752246265663467792390539191845572927379496409912162470127533117454179825656737084607815067136248673131026341174285451943521710719395361816310978080676816285717871173331005108222635057033118996380879044468194334990815153459645581297829138163212988990638943181249661903671980300706074640814004580680021092764365637717135823561312380157695888813048421441799491893922008622353835463295376423843879006314212033502709596938976979434898600793862313360870511480060033330748581955671871575688046691309411013696610928187768828151115753059752606333155391389007231701156781024862869739854365325793893471826172802066698336469202046194380781591020695801564178762718106402416550458366464756066847077188226858210271466589242063690024401924181764333476196548678140189818434878703627436869910734858075560856603303117095458246039625541035379782684222323195005302287828664976832101507042326437557009108371433334034264288053064943797336907179996252580350266229695919639540151651973648637122116629506131742373535873696096910044274331078235572907448549491557363664921855206066603897333574670836208410362016724558932351377032718392144474054301662525060476803632959080502812219117467834915395989088840229286224757035997341294138561695359317585286588408804137983125432064634435206009847007818369727559992954302194183472606023465460500254979266271919470236350893997809441951767718852568712203292864187580754429748062366408562644189794356813081278363325825282384771357986956104022043140486663345624444250158679684709481565532481833088148630703772426305733178872374409255106171847509535038572303156385965046941335761486792745855307132563641449994815400094289499940869256264891899033565239795992134247209412455212297858601690706194000488050928281980029626199453862865417632866890288469530114935129229602551660236516817831984377912629682493050361462320255291149682904620243687412700684832814017526893205068303071093964411526716572111568438173878326505020123537306358623616467726780376687152130038516662247773646708414256043590918794843547779462262733619027771188022570149221247745734174190867939333975392467046829853750293282323917198220098675352717174322109991888686469049363445923637920342761058574759206996798377285781650356201208602624898722975711262340978211697022726444047982591323063363339668162053321898492687774452276304290945116854827342222996351175699026610681922991530365385884141331998552156826243220436729347103216418231112234686058910992141723416889674046393961526711881844457651900471566140824896010140163176045869626925171031287796983161312051644065000612135288941507591057702459862926005257992205226465245683518048759206317464890568392422365972092335804309760481492158884333904182346119143422972642720498389613719079419963253623937492199686057590533618467823802562773348036311510544722311252932476868388908127241035859810454174214700430763988347343763221344133395602928907388520896663768470729387688119210146987716316575762187654825250679764063919957944726944292619792978895466858056113494460249531985551700743336360484176196007569080171137070944913026472714668249841803380586482870974308140707100851810533010164419095917796122499147098924582341926209672686887773022324231525334742786273158900513365004375810791059900876331670562834966665108333105952943891010725062944452428629044457840434825251961393548100348656025158202639057253297410075192909910702191458897444501490434084130628882856088717467708385707591666149822334771007941651833862028150933150387746112131857255416957449527817315395687397155538674646616606253345016241918758753460002113865300148353517332895754864927005064723694194299626127698626341519498964812447085274707418709365263332271487643972180197938422372571746813233266832939489691121999404365996948159435826736370557026628427192852664462356479296042397942832859859854612964710846872774459528461728880334161904732829953015469586336286201918634188922243909748747619673899604831581310070268854994403797381911609214512751480650811192746320725989757659654232459492415043205213476660624749794899204474029950833753860058778328746593544975957000340887869828346427835376433940433035644835108250077782114961740197474719399295357174261085919328834943083512551223059135902942383334761897283920460940215520082097333840912815739028021016013738569357264277174403290318534124300893620730811195206120778609732574184056857105122019142977569261108106050992238162580153689278098903285702579530692197539695826284533240575128003148434963350046054589131431650033097270268342951882386786378399336887438046843149156824254366087509734400850681523161513445450757529326715518685171416517644940215551941313056397641918766626743522220091915962910136902479184436568149381758106919389504191781496287746765845387131766934159554990295259175153780432894123241036997614062371710624439722274327658989029528514921467901243835481320512577377902646531980016602323220601840255883923836076475776619173015247719913335341517397099857397645410132659380788897219110566990635704084652661303483220329721582697265701063975573096421839660701902801728973328829150394215893950787193294237735730988410404515881061506915188684860103815259020553069436022502792193503891745892614000803749347243808887478185257304298044559543070691673895942251514150447854304573288565377605848279953900716294043358901612236990755569787178846859059614188571586850320432711306847010238657112418397754125580728111914036044147171693707096918458258936984122910936945138990128759131149942098205837057428376286960902583457504164455521631772121419011920345984962031358426524488879434528112655005097695797866550096308750869417914522330450544775954815616114706712561943238778032872931314079705441236350207508555030451877666559652993072173400407006326396463480393754845469870394501884090050658567217904154605916816161126825066405104162361057122076974437821149635930921737058189422268327814367556937354258137417903441256466029156469097351201819045345479725791431902959277653524482656924642661934713625986486101642636541588007845811158500797213855481720288024218103848181393703917235030462622258923241138834514879263054108366203974247302717754614369444080548963827512198407704569085978635098043060723243511689029236380319587172092334855067593175666995916890652907406068604140081904183484719879721544023320780069891978190613613127576129705235471496687495715564990364776696155886618887375829857607262662947745254630986417277255112680522031184026063195627988684487084595072438869409497085384234123928998125645377176482435522105099380482100387955062606007018772509276568549229610956081026516632457601922866384164290665984153042156949518959806597682702146848399274357572424713855883606846700834843839221598139394013245419699591303267283079958823830472602653286400763163341136818112423209628997576300696154137277278880967299012390307729030304957588554095507260427548754075095270175046991453060873928413877528273352551742165926613826103372841343098883513581373818590066068396845282696886502243729554199674710308091374852756477023553198845391524919389506390224563717763061237432351554149316805298169101726763519223977694536050836621737892524661317724565124077396679476313627930220905883751459506655397744860956739244430387039670198211316124882764028937540475598380648051829480947914824635638333094073698862558972209291353581993378194950548556797291284993392727982658468825410427074344729436732407430622273066271408371320014192190540760279174751811259038470096535856750521711763021218165535164091984319286229254174866070309803230419501316254219478821746528008955063713446821806063261543322033743596928592136567203463130576572635395239580020146159996060047462446432070246324165379206196459365484764864855608876852977337127698478745953389895805469324985001024270982636587751701440689224070529458924250087163966592707195709559716615006192115973091000101248235879340606303442725176146202813935432837521474168702662856449513411403946780260473975174319215128927088206404016374056105534444140487103916569523508324023144468209283940541067839271128870791439842756643661804910957079815901904187089090827079070633910142588502134958096880192238575370538663618521777082720843985994547488786652314705954620496185256134179710208050814057476622515924397574378601309839568751193828492634112242192959897773606295826783686027995346563681455723730513274902763185199276007466147459321883958738576618918672257977246829078869953515902653595968086817573047681123380098023352502255153712491376333176352960615071157299975880601849557191691460382473697425130509197672752864339434903930311666171614366201431967809081337092980799908330503077053682802826770583664872958896212399597594213798393936082082262084499160514694084830750066056594613593243741585898428004048755654337660479322101863672700162127346654581810952453749831120382310266588933679294063013864064202149783018880498263086868797713843901471827546590925208701608566717424754942962676428034494324228953456758130482684149155197759348527739928741552758759678996894377561123272718589244376820282888467479905669424662168759103263904190938510060707803063057850545290743022362326935158616506991627494552330543407229047766964133961139572647135278417497145030730614624636743319718802813784428112002239694931335743865580074151012410420273854057711580774464726628442886831165888311968758258675351461435584290403067236392544017985849246802149579697881694404478229676434088313507657763404575600069730346207945278079126667409911258220546598674598061721870760206212290557743750140642961834291995859373719550911655020737591959664351118688070794156064616379116661128381354359504936920896314907433475584693750127518345380087477897408646657586442364963990512462275357851593982873584582615362181145208947321299922618310011934466504716364277845268287896437701802612909425186830279211940713400705645836104388573715683895600959245844616782245589794648113657172917723181899428133841458661269370672364175272232309260515058776734022548348461476732137065340671296985524909334628506877529375510464020407633271505894243728664016668782162485326014069978110380124614725426763955653963574346471798488374479247618200210360159783455784574660407549552090499098304483691409413492961862658629200697576413759062922757777125988961495361519576777071507546637812615244959178155343562517446469539126852484971769741405127954104885943289513115624311230117636786646936670601887150373393198908491800449937692340760361769674476861552476240773195449169062637348354450740770645625847526907067889749124243346113443371690724201057627879967686628731258354992073772575463300865579966475826848358001539476364610036519021499383929613806007151084215491343780909312993065886154917954808196848051953517684268457823351793074827265162333757890912776186807719728794464032196938544632769599244980009201736311160443795329154549047101503748567365128749399584602100240706589110416246228199667111396148959954367913064600732089612482760089762928603823599512160999953107395944203605816122778155673826416780907281625467214033924622583183437236002539534131527199373652048734553669945179324626073628727241470342068482175208759795808480519732572099246132240244943315904041501688683681181469572774688008565308212833745962690046976992071565978488627629273833747265370584099580711366080355622520487714518510373536572898182414762127331610683609586138169203378857344416187532915975067137581292933460123017675285883160873235812494036049167606640453496056679170924019969326532332936051915055340369902111361365728124524301785959897840125038415165567901255693923436720779039706395188654625415351251564452092597658946997305009445336037308031546349842977484662733608160603382439561105890999128556871634680467740223107350695943954692387059353641597933022653510188823278969848012732910579200059356819995042747192771621332331498644237187221941034952339962327891440816257976666111231869026845919004336583419632370738899538849001604439234751055595387067877484607995900998135456623071928958008909436713340844005654476191691146777422439778308689228226308310104796611420341928840732927663736035387822055798802946064895744776518880941201293249310418172567478903931360685126922783156060489988546704735901705044012949729396058140291627750774769412753088018965336402324409836433959664917191986207672629422713298622523589222524968341210795349793410794452797525916174712712755316917282131865293555700426633949395536913150975234211009415847869607114164619964715142855358694743644250223011362392840333802909881060201550717027875203270026561746560942632459057023270478658515252465599299960111761601102059079274354707497272947175454170860475472490927298289006379553155727959571803844339424532369902552678122088835524199151536170833022932442306706749218782537720056733715939165375016149496580854246508370023476438130734334483943918674397135641797440454371598825079500074950870871808387215143204992744858012800644604262089765044062764603583800320403635502011528342459600090574023776601036808153356235099763675802290075551222911855379727435591528180454684532676754452817225203310080336004830865625273244036808436134964737120752965238238998692492239956268654577964571342002424571611733468744774304996999765169652183881035043286391831754247467505197601224338053673167121634399322816674420991309234794866293580796983722733667745217139500542074774365211616898042235448994478404294766507168764289686078558880162444207084291782979116805797237672557182966645987594046096888075944811382605272185353497826276224368320615202401047520601683988437066906809010385113505613723867623280123428043423226080365284608309103888174662799879726503184134744301092319390781719047209761204171736690835813907045361514200500905723525914914210545060076239710618240647201321610762365542399494855174141218668962045769180384017916240768968327754190078827225615332976544524347231214874170134078808515032205048970480596831294044857057813963523484791855029739401696593325494963524390383617721526142629057548372411137179096430144692566289945097217038902255859815166432797811144795473368069020224153824101197401429970687518698407550307749184296855506137493635351020416182880521139859374601589242545849455956702208884751605908350318337977770611329346000017004876404945737450057441130515733264220881188599897135210219228273405814647152289788291203258741933236859839237168090974725259602638109311785372263913647001851399451425310060838516924350319025326968580459197980283887755874986961308333301389592199965091379262396190892982086492390919843470389887702546210750303462602002594367055880393499190099039781718014100710602385982791633095592513442330877952452007571015690220950983980617798596147267719457907582526399776545371847851210218635044706458855232628984091138320429502575092694758535537150742146613971801626107120938822689882632023410555556726759567305715084947158168584658289530905632617066899571371690057540960911320965271880282348084627614541474427753346851085555973238861495302396832049019687915796034996145658009205942140120137151298485753751234254093258678260410067681703647215295315251482086391982247923372189668894561747652419972270968183349300283511656045212528545500096392727673670436214887310041953392381112084973370926503228777229493664119626292400546406869565239824688511736515386678031665426501885864579269032993490525070894572946129195856628919924069899893015319093276443289841666480602665269140731512210974135887005904343233770937105166600825004280606657340750573559357502999914381747461936408295972256037330891971553128985696470815213828248023404547159636238978662127473040177578284523375929023476059038193571463541385562138316718838608163725769036538123836169244868548711683676223859482501785604464936329999412378249854959439266513526716155582812773196049627915836662667553585467885229010768732287913289983671731818595005521516004601067233396518260786211957703134761331337463205345996647058573951033415399371589778374538132716054303367810168613897581073956918629982960043715317379738615701371318142623548303476417164086841291852666058789705425216409441377342374779409838827927120396868897440691317148988247140755088952924562304557820667681365478849307221240739070706247609203413531786986028079067318660882728425037236669922719641804393917975527697702935571781792100147569233206771823087437772389117237419352680724167217168139847642843608837206684461324132524367334352323235561836722155673833333860659345523734958949851327414070377355504388736736458476992742905850148676358146155128793420438478211179528428136784894699012984337894536734673838125685634961401710820962401923004853804018029787517776147669345593752158297253226789748298833824905856420524543753905121882244951508317559206252909299912598238444473289329761441608696831125023883149823665667533239836797908956196216694786313321742510367763901625006806320583313594732487598427838257713019462963122860426758298526247896343251021497593848667587352028844044356221638518879341676050853613208468198141939472271402939051040502510156669129525881224886027301411837079369955792849637653806863786934709579587528577896481056200547456013557831979821440577815999038601048059417444126155186228464030201534655043298387923398339737825177658722008195356332125179395276475403989919437639821136301841656048152114193293935712389684606977315586258814781022459595719752440458226741673147764634357008566867160594134439008086926938904064525726688054465541116587529865830005676919309639340807243421524613905470683167344597735519939054781249516729281498408651134129344404171403418633660262004633681596772371631522889274848747929331101313729538305683279159097753842186858267610705647599723706812535294730006957712645973332834149639889529562950764273973104808379812362220723715706149582066477447893277778531281995725259599402762761158796051566508770374822240779037946629029718833769224934367619339930116024130110088625582334206855740581566421386832865552434486044316934101164711791711118203216561100138036915463287328307424087222400339868969279568600718768112894618630997014331342442734751366225419212481631469946136791999650245581994062201624793027118234846722489287923464669874154968545184305968570431320798813455418788835026394548390031610673168664236167872899288720492658479498744038270254110763953247997077772479752632461700452540489547253605291004764591455412358395473081853751094266560058923081817156555843708732472108830500056786408128511889253850307795801279031984467260269970472211461505086780037234084003794759833930374696709693693157759636487311121238389570580705412980389406755993635210963023630347808113128367607356099117415560974737533096579716324647143793636375125559269365719069720791249409758971132745723129574655014389267296956784898845350845680276420323563510240432781618595903686949204991778876575166453053929657681290309305288414971618073654747592815722417423062457998263476513145431343348569876736023840115994630823090839761782121734419385908995724201561230447193771063603234792611926097005301802369939273191203769676220120568609523097565802578853946712860717464684103643662793472585108290213701970377794643368138251770225056876774172208718273124736885527286262272328033160194928078595880756155672938782178272692208454251020869405867339237662776675648943683307151953084076715378627432235612989839173605858580144206552507537725238370819472176973482307296150398343328767676794200266920674004570132348057054479303700713749187380319799517146304539713815787827764362380576694574706921533073979743023660913546036886583532085899329108329086405567580811082732105206440885511658690369602838045791141209853101371434351388389767721970372622046863781491980898119931661512045970444933742369143805668604767110965024216885974756152443703173047021060670970854416326114853757662315981283876505956248639925000354482158221872967873513630976871520291208173425689945838426639018278124771329065828958970581365527046984944103508285221679639687197990750214349831746770196469999907479046936517935475045356332650749658122212534654398561800101593475533245102634042820121164251290174535036463458187028423179331967140297181191186548740275022554757714799722426698334393857054145863915632037849053329408032820543629842002669731096025762403483561612765027698967214214902582763006422496739540737495963804523568491146822821369626361105767752064649357099098740551415739015871475819564221666271029772557467111849709798542920836510296549508915779621793337273981465684188280547148558622397766149050666448178809192779160057504759325317740554708593304681262853346768815370767265726187656825935744073205875223232979622424901631529143308777811370879586337664197216219800436796496713152740208899230618115752900632438032237943011096591906990161743347342966403232984400915077338383872132195808655169640788814996282531356047327406551501537003732961842437253009692287875656451809290128455233302028613993402915684390685964610843825971888359770002641000814276435809269778925126255748493594065711213863425577045028347302810897392217265276286822681687756606581013339109630818247468573576211286172214221245985388873799308640742884272479772324359370302851256496763371987246576240734131644024378633217870993614915518149128382929743841447122364443096530508094354423707364705442854900385945434645423181177855689346577446030545216877155414031258706118705596438863930297911580006767739989464948215334657777160403900419127122598395009509100576386551553306865163496933211078225084746148122209490705561376580856263213730528386279404371785346812604936596132107973019559605417184785819433198208356217397046398085023768692032589509112231064435300210813268669002567990277124388905334304842144509482032660076979813546608554996705978793704001781487029553833318598224586885429229390681647176072518995130538685647055299970772075058991152098102971098294635495257348685600873026236229789863451212860102091051669357643753353647752247137314318632248920219135304663666167094940081064752324265984836725219774244221966662190931081818223796209937134918983506790120052625306764771507148546189975879566608024102429777124160487111093176640008501869535963046142099978034443336267974431471495673366350236587455501823555752839321448525603564417139354544930599906520748697233365006254962390866979983282154869890051044080344389526720018055487373691885283799201914208433242731499649187146272767663561817717933855626279503959271294396826593516391726283471976509916628215703008726211834975266069146761521299465537223589306473242231915060052118388099864213729114216234933785661725704769337734561652010091325985384860582011969201494509469634837922036582137893975200547492148479200618429789063803123369023218734375534551410521481260401191821772572598618349128100107639760206107872556727921781335837915701677162807722781630250829619916151917858418117330275407364079632447615131040349633893409007244548474586442662754198473870523236090004637018052718302361346130177319243177838838870797194881390597189682023350352332679107176185752287845026376257692849470439962802543663803468741461914737749758506008502810503768032876124219427799904658272978249758152158105693534327161129464152918487878296987670223056902483912233306400101452239975449841386112848813971465132546895881369355393047525782893011852029798046776349020542921463790762564148004260576255322610926314263350462077601962479837837204206841414225089723667703362853014388301510215029308037621590659010173540979039306174555822357664349120496528545907563322150925945217274357466073519732473606286809494198412327261541557716121712888850735890979874988615846275842602382698152459564392981909779119021509326621838598113570013837487413588847095471815102102726624184572203667396037122004720092009149442552478940896120188242426131424138914197204618118411929398666568849354153405066028838446261830611652119742215814265480630033826254231569486840363362265353765674279077309451436542166203683704102548103796579758578981121625050758129179742703965016421529180345368671045570849610759637745172352155452496528880559963580889290951377358948482518087285731741814973789366359621236934553036552275890276201221066249236953189697864280314811400606924385515102143199472602254363475779020936451240518083341457345087291635807144654004656388556719595907686305775320438484035435993108164707477635410334746034845755726680642659736961974556052074947898487888295873329827577678834075882872999226502622771092165773211665006550318954461250369336626395317110916536482293546749523647505026659810475906378503038753149063966432421814840286102309157021858042643993891726694037699879171217365397074502430415963389203119595478876930588801182705876570382963099912411294238336324997453347713844447661066567739784828078881061573921919353130175483948405779630536011506401023210071319368405781249980783256586450213432111849242645149701235053642996364281927858034101954233604090053638798293935484265856194313773201932519205231034630312319107841758019246596239481642138789135971183238055663913920463885628516218040817192947342514083645978975169510784628093078939415155566995110301881362328689853207887457772738765775672078996140474656352381058511352180939979790534495098423597916064097514697480913765485300296779503935057617605364046732814758277167625812359513571107709981642630421521428779762718142946086664176128067547640557922999963725477572489286257074927342448142660263943931450279811139390892448677029160794346260026455336275047097321223613215771885033676184017527539893214181655656118782907793421642092325790420362075539637716930541847603441395754490101949021211736901553361497171524397754721600222523252729449798198272992803080010153561162124267482150210252919857635376627749661999376542573448219149192750241237727752770884010131538278204023896501327440760902529975622911007777980612854511596898283042494688486291415077075497771961331178842815795438538480202073860109008153363623911555849753206869271835721151740866204008098440802589334011200327755717637158206035191822007866308950421892110142414805379828401267805016900144290114115253147105970042783763190840037295456661456561104195239777541352220810136609203957891311663672237503617451650274462450481092319883326230962713966073862479723189101221180602170623678159159253961547178562872556847225199973268642166166735062074425334408075732197753201814424936937549202477491470895166706118591089621270176920456216589304645923128295858821616229380683653055825994501031581502120838768399060943971822521271745713200756224010749647114542154984000119011691735770659614323968316236501199882791595439729139255124114073334085444868843769392610570900190593908942326757591887011111459017838769448533098225167023901306690721151405228190787953793979679025529683975069514615307351666581094138119968131955257658311457889189650523147048615438402063474764758964105914993852113853809460272317329117374852611508578955149463094354318754123566140549213231570214764794935516807064030487167304746508920240435054556653296429689912586779623315002204824802168519542967748803685996836643854590209436495405881601621744144360264199515698099416827761504101986334917441984249873699670012301341656104150121446402435469796381377134026852269215002322176741347986140101785051776136653148512924088740338615360303635542918135290747710635196573578945928060712237265294469536459666430089035981742794019946034542518544083892000369087755401596786180402227119818569828969655424902122899442457144178682610176624586228069737114047803237306924754345729393683087739681495259276929000222497184543080032751077300384092081306674712261783041702795413282305503358038167830341518462727253581858259424051805566638991314343086734720573099463237559050740005354549234667514233394813836561082143014902005661726758769527253969124187874103315080747995562849800574465104044266389359023488899853298770156112318899500620371196329973304854518818913939908544199739350036231353325366231234840911486775308193950124432918675391943798148911943543748825095579964954049191304799915725629077408946186877193722462150598777191590021623682497025368029096891796120433919529067358510752661092428071029696899410563654344446748931114130689030527150532273657327211232342318210272279990742247729489149865820263818792485742093189748480784141977447703079230049710313054277936263597297591090281461671966991021607178880073481549603688366694746621397264276092163535532459717718237262710311857996495308937578839359442757997402547043165640540301169548388217709523539695282188740727459033138871420872659010762687506520930462106781917559911639493576471310165798709248739944054224725853393764658915790757499223833406648746253802499686114498106047833407950281164182045123673205984334165587654260588851145005887269220867122639530623803600724491019805727071294534349351767929590468605746398055438702164661061115282824839956138948575701047441716868203988277780449167890959841861566072369939383170554099495367131580047682594893537806173769015861871498829713547008803468321857925512631057123878343804730797064195270207029095008235737810831203351001782130496086474324902885080489361683633846221098278297081834445787787396439856400261851240204166965790519076404757440849816243682023915401268788086217480547459821437573177461172167959400507774996380067635928966866199774445822266126615261042060688688791547383824256230856581669798118529120065452595535115915875753541723202272158089457104426546446046663912702114417618348033336970516621335068644195241848055892588001062605020230706160553626384134836322660341255197745630303034975756552089944054661416623370640833115078336256942048497157868641745273891360049853592347974893540330159045995525291152971909319819292537551075105528733482416897624778876153701872359711630058288776792647489127294767915100825695204291647270989129859059560031226461523139361845483116811000193328782792723517888718920404717992773874632843577351278343870546829053716929941226440314434156820226343633253995127212220764059120947054371559403728864975888282463901440412542854503222316286830285423978885318750927117300296469639783775193683399292378703560002338930421510147743592082851384076960894916399531646166995292910055486199493705522486597424465416438079368810607404679435884499293656326728394080614253498338448145051495236521293743873553609182720359689442847755686403609753252132037685596544258131268601175044478097698134745399834611396917246808293773197445906532625184180448420340330754654854155040659628792025482818160217435106473176083916092057274807451421090311744760894516920659036442822799864976753112647600148798733822311791187633454602118659564388473286650432689878395350086928566818361207665273972370629026115027219784981785196958957823868319913045362541741561284705520151053422323242032766760871090317060892196742451451341897016093068781138609312417667290477951596220631283422349490527016597434098441870741306682490484570395935219150422704686113159391953140295493412768504612937986725010061911324261878965689063427529915551706545813603519528656478079891334809084180606020540231703798155963077284711646896065318063298240283158763577963048039108436110941947971397011715671266761659246853904281128838299863505352627928942704807170872006660270596042505985995739200230388542630824545414517761354245237471478140792492019487345991258156529995806212514514795791155684575109832392105782303882925326909477569427557275576495072979876078610743787541323357872832385736260214884764901786594032926057087314403406932488335587165638087288728989555356469485598427634334450200402724825838360788223934829953550489604442414035652985448173024234971971111023230118772242234999472495563434275601980881815989239685748743267201550437455769220778456884336677130324232396051894570090327445383656806318173460891595684912341634970149186739780251377301382282172873512189704085880577908085558101812032794793849639048941277978473924702253958899479675592189707192719537274517690381824076368251905793581924879904844621221720115695878796672762310664328220666045601735257812553441892480751772241456639313086934628101883590576151832596779385690281447187565866599400453684691842487405691562727763584876128780011949564061359900928527749784937938209037142546796534847778809917291208134550750883413824321132079117136711361886941332786033711268335892997028978002428877310580522028942569289420609299584331914260812597828558554349880036520894482996674009641366667956294795278295861590790640753258563716328256387053033819196486480479252842233297570132953709209590064950592694830073922319345257497188801071910044120991524178639931879464610746516981303700810552977734174982537445411627925029314321648968015096270151488019190537694865530774245385607444336189440544570754084370704364187865312096582917571698852428553068694301545224181877414975631631810750574163475158840729214736007271637075159701168505544971473956189928736823570278206321291990600573148650046164868291459626526404417967333615077146709363565490384660451342386258853416471944423316650434247483509695875526049225951869682585175424911768124974991597269770507224091027018467437999450345846330436192919476893646484489221833343590111523163516563620877939055133776908717563461436192501018200538213551457874295033814905142011983228313837418376916800371712809681755132721042903294858514796109015058372190470610667898372383923309742564525225531168939832536353823587613248741124180884143703495944818490726137591491267280250797246761179648835389411436354331861035211330018928818482143554106031571252662753031897874856555019990531050940842755100466008952513887818714205133730145774681435501140692063170727203764206159458770483409352689059905606962324870909766935576228387799514657048384107852192047986840694130580419678483719152856658859839903737428621407589905874088981636212498786116301254440607315208937390627675197223852265366475964184839813748669326425042307527225081897271008974747917667317646921138221895539396398921797646248047884437059026712055269823858152062635219495381578443298953420131457825065323606782320890290560906781074252865239531149146424440510607227765198708484792705880811132841857623541172171067017618653583662949725064763653620512181581378457490952768109256286100035383905562441742026218513789630456379118398563399668122620841877374542415350243583087475035734682570116679011855752021992171130327567091777854852804949667115988561494280897435473427721020105566121964650892378200458519805003266400867772524903074198425271294624389389479277035635632115742101615081526732956859477066180058386470606717770651964291837784327062469844154948139110691286488228549130808475247261844407087978730700453852800199514514375018854124801435368467344391580605373186834903988165651043048456563925775578209006375352920870556652532042475366255360559197778337858363574073656842926567663247284618086776169298914896958136397838565405193499164345126968808615432104245524800548590381534475099921305734549325021678020473184602411797192519226721246316524802588745020205949855020250448750370734208742653493530510103720966196516492321176375583631257528770792887909417267903170517857888335342445563768470617274912836606558602341297393715504446603221724706645744958211517963162516184028426105723112863740850325212492107999489784163434871839434703714408310539433757992398436826130298837771468418607451782921573543980710615723813861909317673847250828286681008759657757202397280665052564986069602664223546043020122186504277903803066502154320298371169565032370341406131934626065561513019744834159205580803133889564005112591906515956247010941842394120144537878051348274808158301462785107288015396898479054999165312908805034494768098388267855425451015422884934165372279309435711429955293153967997281376417749472879198029553300635311531551732444167055642974150047355497368658537487752424767198008228855762717643313080437024005354084426554821139906777558077903077122181489520839560896466199357831302199599970118006444720975487254956926204074890284717288545105506705472034074970151804321417032037543623817864323002979325405393589176386511462892763234771290005427679127777728884903439308492965347259029782293892787650962709665749128533410528034380718713683516298240573043188886990375849932792265172830809588399459544154302454369815558619280261845438590212510097470074324714664416380239770141579627750215752208262248352454128489562126788589408756730655396906815124789902443363137616573684196130380601879571414906800818865229620124694280577070749345681756761357178191217586533924611116466010927955623723350627603003082849817129485188972656904706833262522890716361801079932413619649706025734169688142522901722606630325456892190619267709642652314925416261174864341283911623772787361084410731279498802735880662722642016195870671123291072331895066065434603924343859239582406910222643338761224207797686869860810984802292390828777333922127419479228795794058267393797482058273895140278635391180066552922454392998360383619215097622872286601242594095741430102752850442031636907392133922683211932511126464031478310530805352872836164841295363718494018551469435418636190566167313125871121962773069582726182643614687399225601046885095182710805117962412231944812157956192935443759876313240467463553174212775174384056353695535208711316900698519338071060617270838919780505709409371713361151227562160326632034057251068782740898864633812285169471874359368285343218896264369241348949041880384188742805909169575101098356065850334511950499539504007979543528673208841133147522650863998917624181106378159186780664997205025248169809631845133825767683892911362131047776765567099347151731189413884493318383629259390962290694152368987748231784896075870210931529795358093820379576536410029272242764610178800084327564908770250560225623510781689779944542554932711609421440496901740406371959641246848534856082356157052764734779653834558344657999910657451609105256579628891835718028942517511205145239972328491741901703248679804662842090230556306851697243305799671986914602020177677277765400851051560006963526850536144744787144792507873861573051039506334561334458752242781978058812669209423021637683906907078643245107559537305938499292796799692041001703579619830082300369981191221160231396149403537326928848980821502436380779581302169523930234673056862843179617749150956270627974844045969032769809166019534911423233014036112963599938589264685186526532641940914706459024655267250370831714375206923191360862483423209309447657206997823938758030218244839181078880110764547625157079014598227148636935975892550812059657675134525816411555429171830519017069481025239384379452049855333965696458451324508400786472021591760627822979192386766157679782284269098562673379160925789999939222969399495599351057160916164664853194586504496691193381216196028927428400648155797974975574639463052194011007681082911235078398955522777726685195197852636922784925859482131678138175627104412388063640348633509857875606871686641567622018704904997608562756259914789769412387529673985160092184890655738028472941901920341629103413949591480280167801550885096526187136743460798487620868568306296151817747526078945969123194295396219424053380873045671698493203142132603469065265018901987018546335939114726503520387270038651796534837118144122245892395219174979293214566077425735038742714425760349246086149360861511716131058818565067633729029436342573871951652178941343229381138387017436061378808706906855701354155999339777010287581171325006021941148590169534494498952979333096165500959048835480877655146172990367362069121297238587718216030746738326470578823512154967073706452119294196822775321854890076144554417199109207707528728112542826058789823435082177365593104052596821792094277812131086760545863435962122128969917238279381733686655195687933515401154135050394107386406032713257721190693063087269689479663875487648457829699849407348369234671923920338189682398041877017149388981267023508467345291832828943558070665057216932615150977248107229072718405488848056383225954671025195513519482226279806124509733452864691245644047920727396256610738802008333968621025573703273274087738073106594772185727659138644731730650200349873218558937320590662202972880350406050514958792904199540209238214598697676613123076222191423646163649334263394074601907088372049051651861624388503252612386153075092710123267585241607186092337628371572361791479218685459982009606532163102873011772570619842838209412785305010445469940755917070862425245289276564125335241957732466386257163980501872947669217064566495482709968997170128459201987167196586617663867414354661973031319806432510247637369507016689877038633769437062244815420542356828509213531416610371692664715735874830321975532112575565775755616804636468675712839384565688379372900881597402886411936685115502865463935354269946570274271047937470791187036746745426164105750173453759889185240887165612485568156099828879670672882742755202874577996635524559279301980862859835843482595860937495627446168909601885433550660580359158831143103423742742507815835978680737772409211088454669083647809354664773524085773038939502486182858519383038346383546999582587561069486330017386971036515301210511338087307199496546400411153640748264937761793675696089306149292082426979489933309185703423824016356386259430268755300181440281072154966421906660544582379838966780145757967603954738280645043702194596218687166066267821594781578237606747571433260093797268980694228553058411097253429308346949976191181332361079888638366671133638915575702822486303903704601923403132325727593523208145072466832556615330855072404443028412935349074217125757889486179817852100451141438609556235483868175791672315966368442003426036777435012911000298999667126340424184123566332295327672852442599360539714341401814781253467131743084733290693335099258193437150719522817827197820071381709696537173405750794633276621176033051091967487640253632998478011165337714029247469378376479087346530630058130022979451173866533433483604982150566344006899240774366382153530974718268699059189029365828468054706878524268154175786331493993181931932851212802894991993655931740627030908390996068494963398483428637968325957373441117813452900508797885582716969105022914916217347028317327027505413717109632068253097364815815105196094351524133107355302276299236613321932503926780474254528867016409246990821933852119613198755141084926209149699562587662487326631458506468060092743012238744806786873838471208517022818626318827908203564008767015748331646626242507238219070850196014257799855091399101231679010382282199289029271158000309306581234520196118501493265662734990346170572270525954287344915338918104453835281312775935014743239565335539014540144363318984689608406077219904490502347752182686533769975827044007760107965308133874102260473498533976276380236587789451836088027326006919421382143969355603857442314109172035723566271914189093617948941872066964039867571272119326858070090293292967720698572113193632876711830501336736030406550307342849386643690824212475099814433315392255451801350458793940443316052714327500802898121678759517755980507730894649874848438286962521191714616372168821851311638036768616859834465212433453673832845065878030346624047410753792420556130238446145841177564684747621230224855592294264886000119635919123711722313948032123765920582658299868810062256243242920823800815936981378068615141702473399469756655716636478832531225503421120165657763973106062515098734961732603373052386199721126466403254977455981695329491611431727380971741231845179233919504387457197216487291583874145263881886060742655388136654446385218742509891760203038623662158949440004879783704453618490130626979840187264770985829672855657181097843158380897907383629280038698500700631022119877143352428821727825358865205415761502261662534700612443322438254153745075760620678145246105698725749632523541952358643162343953007580693172257134655695393373623670969417840142245375434037108705674402039454604678467457755217159491695650623452501869208168333479821397508692753052502698641290248562184368316457893820714393855030359534213780373207979328247794622134419757543246796940291090159610054690173408447572529858886265106336512813206492352222537474686978609886486811555427128374591645753765696623866814192235747638507246313510556928787762672880798347556761056549087822657625665486504468446065808801108547743044165012857954962434951376029908186078755586388214498956977891246397096221497464839007569608479840244001386487800204211045276593726558834226835239084208687708649121014747609030111361794243534268084053276577517799952189317826939845503033505856174966224528462344702346609609459754091408490108736524327770381247009638041421527450219133722142408387685099136623848945383748494539712776176877114832981554301532591261437617268670195286856419776009294349030096887064007948443256082107739558907515890844064669634737860707584012804506082805103112902173717254528382560739606646824137523524595476983617136555526143600197715100976120454987086062717282969644869840827395640348723070297423452932984363113253550797116034325830984812171291231110491914587705759824412541186603432513444858491635958406605672136071459119993158358929673371408504207615157718208550518000726427884905378421283512039485290759426448211538131852410180892268775694707993168539096473523434115982094259653712862252501234272751285665918261870892122304707777487032439380522303427891791578438084463456564021316935605339928315273945117350147381603747609656886030788942899248196356981065368766202657892008277784846407460878306569861274927749984873720113381885224050114178604872600338100763313027307333603250563528338373988044590712856567146437781740641426603244768661662743389558446570634270975278896377990764098024424009196024131862291200241625091107046225933668073367324663879896392892187399518041335484146666075309022740628671096786457264288924570647751025467178946730000025028111425612741258245753360969335991764810682778372569404468814504423017157905839792655123644151637247296719242684167329011624015077959502403263565267492223744853654921967449204237489594997810526880472363891569972212522258974523987511709863590314372127417011649391248544381646934581417686395754646556068979073105153328561198950910279689426400882790949060822130337093768677071860427508985248546009649991276874847941138793401211265202414791720251752365183301820133801804788928732690973072034397525557886144205031488306564161437745554767927942440559127290523262600322349636737376529757502489172743135236119463595325398496373074968944028382277225806879406341457090342731065445608182576448902142842348632518659345222038248934248359848357322188949936462044465565919860503833252487747821492663306636610224824761322849057049761371638703639765643452500353452176443780336682628098545957607181788227010286834138902174429441122295755896817718754175061465528396408597793361007766633482636860446276638436032204076987560629904309234522777051137587002607505442109386920312444268882021792736812196122491330150992683181863554246615398225967797885786307248344309933778266551369197559902194120563355030037563887936210480928032623226610144556525759398181005845426861010047277457854600308355195345830075953192493250401605232740815685384124405121220198990425480330933960212737461088941971317022081880111432472159231977289527502436688854492602769870209556869304843742956267833546865553407264321915070047773214242695516087244895140256946122697063704335812173824053580073886130503574814864426624794540972124070155493688987440644235367046510551946526393767539124411420235340580613384331786765586372767463110255551342918567881313747517442276753869953250832345959977209837775346607617378052250359273267228316016420610162974927697162381533070684645696841741307543346495818782296083800803693963997474283237143535251432826982723266949461662860640771134095834698355153202746937183794198506701925622097813794061216985345364564068861301122869311981748079549241070030702380717596591152010082491396821794824059653806053174566000216035298009760414737003884827163352432872305510236371617123658732945483079235828799802788892749794132920085998113372907934835590191865818215313164125035871050167659946351732747473699826841421238793229136693867520361929426940914453501001265935441592117840056609728868521299701724135144819370790097379638717417257383460619142432682322388906355474699559549462984336297823444223672269892468659596934725117766972355917486915271902618633177600165737350013503334323710557243931734059212297230701349391543466564736151490993769924659725461185050936134152853660190299261761482205630175898213332861307834711837796202347784716287523722664942846910302828211738020566210999715824926794115834199261857770208479016291964889677244517722209732761036837383152678281390655330464015294245951167126377423710749733826919682492387838474653057505829703952536975139332182460971900256907908727298644370569543581989050994813639120801242621546492729528664848867735280792967352814318946721719073790170794501238077081648500335461799704471564667842025770198582464446817285797419373760061049254582983789468834613461637366669925503292691496387608014679733009623960286821089458706322022759831990871716233197434819235971598127421126013440757852367346739974289985460560058525011046491019168261126420304823387182153161295772841615578729666324394941599145383881358524634944589538643760456419769042231298643083351781279703235590217233841533939903579390124779082049996759657880052568325111245091926822654739951887332688003881484541371898616527114877204343781064773630116392249924564028398566418830130832380415056115646035342884619223627643144956004680666762464054037613843842890161316343503867109381025389826478020752907177037475285348559612649138268903062489237485563906748439751836043743240931411812674526962261471278897703157392448983037372627142912607228705478575060161531307016067868558843697857318971858113252948633393622505555933869898044107819238388094765488988425342398443627166501547539234591352936002847096726887153525700236070828394066029031348642094076748011206960910285893991904287918024968110570114954554894523699113147934634024356190938579961875968050569279570630142655115131932916735360699918681475473614342596262278791854893424640651593707982833304968266356554191901186224359351821094580712840098675758468393403158244254744515359154384682195130158983124700360132780530307663351901367766807291896895253574313305747663993357326355775491773624952812429286598354404183245176072629834317592519922270914463328355143252562664656973171590850543916393680587165326214854209337109098823562398048419514919129369529858126965824717291135555466406362239449664865621484255776503333293354497965302809383244907688532769962616311205813551086047160568659001235488323579732392966482118591086808231427979062952190315334616582895125914113358127669765919462884340475977500501372462100651001750984124170361377594240164597897318086245899102862684210654010982933851914475128838402945746070641407612573438763823429507883313602409469763303118692201325076032337334225992011650170975442822596235203578082897754555265198347367075212231176808631541455056171277038810811009465449648002349090331543539561388083188609959056666827967513870477828318110540917787610785110164364727913130317675377552524351290224977760208133422196089811365947306050291591388649459598949589508774926183412851124139959068330942953861804069411257122706816313245488856916129975145359134667529034238844022422276054332005093876306028216130829341950525442509623684067432211945755186863744376701084413672200819738139020687221969966866456795438759479838713977925074590145685946278914923982233486335117223098689964691757597090311399148715182763123975556187535911329529515794545588605958031310192088860085471388957111252718251828374931201244401242547000558788360046744335553087924809305280622059030013063073965444581683930985121768296442831610915020303348683629600260786782732509523626511139874975256101738315403496430158570699168491336540676578280926894858742995574478554671332103693235399929767855914940751339438058067635153835071236840943403975952287032946626488212912962537152549172122649144844036018377524391923627788331313334200142663490062288267753503411069974360304620040102065865402526918425468160316350063727719349607862800010472537852431374334849287028339709915659574602771638748007871384956024119893703469272796113332056447834083466306237449636196224178832411564146115486306022378075287227680996602987176916327247276295951325028021587028322008021629649225659819027929137875411859648120127260507959121319638302667229726805650644083298099242819513945788182067024569587170312996109897023950667523786960227387214296717204360248942286446540812517898345516593904440604855373842231422067625305829345403809681269922322795735798469739628628297849831682541710827523122523685136788369145386681821087498215882313371518050716178264084583404462062959052225546907206658114939665700913939274479632596950181559706837023235223818621698625605533475543025453692891170941860641250808643181879882105033369626667748318992511243886945053305956675864830569910031802811857275259917698149104179992395708270502138868814956295857050138287927365946996172775769545990619530229540291222004502935545907066719705233577244517766271159377212052383967713981397649110815560254726361982271221809559482524812354589666749708283450489644380963885408066656412656332006392677516132066216991199442759953252320596987356495788528305861639342967180979038909788821090459879989291153060645549377329083116280396957735058989977544403965898220952013147284639513778409010620321974586203307981643124586092909914432174264969965868048945060736251220564623750587331806937993694767372722646021329092776119404368298751688158961727000739296093671565470088259476625296652492177384338233307950042995291018894802621295119810495125110382576339086934499372197603421997568011427199848712509637088764126949147545819335770715785191439557380815586235045928017136371419788691097010371082803846178835589592527000466238159587622403557877964401316471579901979509641994825958596579266679903685095685382758722867896908029255807265450529651499209004302025846766204363032022611097757517828339545566478944087980734387279179312877399733082154263106211032462845468426450983529815551781921784904666774551068400803605326265519668426665561079599235485298083990697146033866365015536302256830680951062943746368904517566243794419685547051720305383732269043293792118721616526301052923319222027069822701641411938712968568141279031691263970785171150467869416723035991997811958526142525968761503838255141701551617132839737245644702003379105379669049472637153940248084648665674344049295855301303134149956017082928572135979258825887053780597169346100870547603324528135469053391754351967557567714578650132469326449787686488093032060089466574175476661158257217501148062004325138996642782224004233909789669457409453765737202808484237778985366245657265239441157433998009583530734104163751952367008258224155482071788821741165924641659535537927091666945953508161631676914255164031338442076535885970752242724999627089321930033760758974713083123147675786990252878155099210067294007191885901324193871078939050678575736944010008863207465064096070801596232250034543473940915787830375360024250816974213319328519077808700365134403627327815087684274859321216206704771985791973009687985333167677511067642869997543354593733857824218725922067954025808671022019853176094698719833568352615254598267459701871047035597663504644963754088028696561311532547310748309470731734811381926959765499088702501972085789410376498856478213993695507279512506763316355454843412121715587204668645644123377157192304053980095627354769473874717526347459513506236778489665801478664155395685924126552297296894995928042607918776947754964363025859892375129694000583144272505920910093017270641155682499272814521276033444254925335108904060360877288890094650439203580497494446037728690103786465367000235199605276764998148123980223612404292584488212265436704684379449428844659888500928062984508510650457285285462866404907981382473550317473013469198036034661363230457109266179554352343459784978068721523172219061069439291489266087084912732648423815050195601276965752838160932679780314662646791119178276713708831584281215188104777873084709730445241804145267852531646704710054552536240202725067173892120531277796989115734263576632776689632370128530509298542132973355992926847833562200176833474382027434333644422798904524200217482167800068055357474710656141928349038254475491022258036071951335142298964487523679271115176293366987730658231000878423861531715127236660389725469889973254398635533082512296349289868258331685398973957280392955555034801012397601622009606816060642981478261530174370147211009682115965851504209922257227421155383654316177410474584566370135036830362793968219173917880267715443071243589403765179447070402034500676117997896560932977136430455337877840630852929996525757479942815721754599644918913884609204179494389433559049194218328006512816451264052762203553443361019676968735855913033183409676880991527204709794234023075797950379647086662688343337350494040341014051546321316317779376624462952895757593244673687431221015625085282567834680441415068709542797771264633414941510221424021926134991769937014273667659661044744402700697560540404140338719187423471176834084694788074797215883107641820414824201932351141684707260578136541091195712498358267511447688896959256998799199696188307719260072927852570595472357897354011719356897798139499521939887504098259820054914060634145782377156250974101851621695071863180489662357864710203827649025962984957626192461964321627514218500840043726221725049858320058619014685916019858609588686363617096123733951983453498457400935256187423249258695107860395781807863653856061767685480408297296125435063520101433733982842688486790370584814215863524701958091709409508363300656208191480862250318574593109250726751349470572953003107124155403188761755513046161228587535879370754366076392824600587486148189087617106075859417951103916417531109392296079485052467534688564340676105273128318157825753403988551057802834782283149202258624970327631883918917423723641065004791621484307397559223255514227794305344698336853497410724339584920921245634288420016375950229084569410089884244079993235659783177047932190528467403691786124873798341902651223458621334198581340110581709445785037866573360343343088778369556365759067232447799465109409790791375929510138559501957492869933036132781876342119927227315594543201378359260234195736047409751454368083834465964535537687845756970851103805633397157138600278339626118997281457581649422790073654472648090584788630997936226340262687059739813863814354665042408121997417957550145290927249929671283827570751021006355689087369898282596628763621367571526325322898112434934782166073352630015234958830418625028842915213436131667871049641277921572199512692843913085260994831296489730249660706428414502526153592010653711152803293141764307153202068898897906768730957397290653303519751925994818942577794962079403039256053040689879287157023582493319713735564773212131443323307640879737989602603751976756255606515888973151039225462491777850089276838878935772849150583038160036656827462492426683479949192211467629614113003125016979702586079960519652065317751994545567897976057831504565525064948895150883728263044008972137504569946462206305605147815241685713202952940090661173278612617371175973786569629320273320546513740889842221873050179356273939761478035506881621725607725289298239208136130341342825870884619824582498618274495291662435253953745495481822632805446361094559833664894338094239201401932216694514273620548298755294964775868250485451543251928548801731327099471466888852685429901538020168613217048337054937261717927390108270984568725855992930106623651711735806636570884572658515936187820049011420170427549033162906840639974741419408743614185045606830429935936340863147015215759243971881534981823353281198473110777424313746867569253947930921649941692375788408034569134131700778951616317590508416951117292786736456753131569553822691866099734609514056853267978670716853598092633922199208150810429479290670565848489845421997055232975726320476563011854147161215902407843284507942766399375419141846217197709515373415075060543242453437841700948664265326600016225202121937072897987755272028826297580773731549247774399160054941573169278008969186198103538275671518163416621675552536540429495360070817574429535693137887749044175462224371521865762989804317652159525204358375035929696149894110935308762153188852315745573928153568048077382998959411062581446125442887621548008897098637596026437357144878468101817506402522545786908928542402524174351932403973424341811730677646900314243855723601877759154946538712025816706124604345535668624570673846016379997490288021942230070926386897392155676728117885740172563922491081336803046199756832683906079996405886984856789132807710626979665432715377718643267816154942035455810729211097172941877589665890987485324134812795613423262105492780877513316001614666360880289684107146467617551807061139647185123571594493147348290418229824117257409520532992294494490484219295065755971062824311317539245774795672617785103865482621051586119614100622635669225806686851233438358422415307477091462324451080030546124518377833854041254778795713543206579169223771063805771130945520946635403595744400651191942199821579791147016647455964938609837596601489114327126189529897958135821034439669367697494552554168847541883588599214742519247462272057746328183472322459984589554038063743258967956450185152212864730266470920117908990726975365364456010099988662220920862415384594149937110140450986626451404974389242498235301824039324452604608609806013112789524447574266296127800312096131685605953600211751627035465453781614683874951315673297753765436123694438245285450452833157867282199317781385087104612093159583760486408788585694812943546142618369786903373297037301817832781067361149726873555500768242548833341527328067796682308022149898299689397536632298371266327222914445624441488441255527656967854240109639884881429345307074481269570565755937755237875410699564160201148990957405374825650149753952276284968144500532219922039494468389290620110694689344143833399005736815197555898360908402171518278671953172092209574738233800667982240087440416517690579033078407732497242749332158733168517602749413042919467100890833288629341400894072254411533080513047540413791370774806764813799468747162836982155757358984165585297066701876708132819532301898177882734872507635381343027542446010682249473626954253380720331735207369605501723412163621495154225696325033007588845947796513169630288827115093091453949607178195851098011341755230371734976362347646198935400926943574652325135815834797538678356707158756727228866445923541650703879389824316825427695543555173641477252937529115424598105279329665742663372264835460252686369496538664279702685291525287348779185677415753783176319833182498743452901739106400120632412594313387669141510790824345581101170415743788370464362050902505509132122003823637613513977901941944566981721212478114066946757872765064669393363842193180117995912667910824999100675794582626420926451286037099080894590427456713306944653647152845124702243681406863461896773323562803087354376304394237119365013310975369277512320136481373177044749352743541487277809410155527591441382285945589482484738133984713694556794383661410060656301135377005762039612577149431196682471808958001922894189618558070359911222543226590746695093647673749624867924643107996996281275520328875066611900644491103082278098785083968392527777812353224324763228348493927708798070204545690374031094043093192307542399754027510429195407938844040329305104616919881477946294947348735517371211036923156713332708220860641600036840494344879766388523296542279372397895172361741808789678871681119756534660689382446765913802285959380166999568329273691086549847481815668367414690009556271468427461338262674245261111942839385429158027924930911459692623488988983651756585162031539422322884682324496099942940460672167309546878167725185140863747952769388774401187359576604701303025897010687651196097100592717859905720356471208178556095038013776922257486348632119191052970360141357705204195539119724551481724823361093287675233425876245719219916537327577927902151384715397624558850177063405859111176832846275401351843875095260100513023200761557824392852111465969451673230625115760515365978523017476835252694820688709214365430759403218317846961861424212540922974324956586437245510803375707634228138218725412987701539868717657957598892805572171248043813673422855416575885604308873740793175836284336196475196008957441688866817727584486501874130680309553038382584048218423957680934578077111250177456437894390313853733981347229128873454983611921202173045716821084682092435720732317553965292409067020464991061921793308331614840468642913079365306221651829035011648024546793360310372589771187874244685302086392364869272900513064944716811425336802101689093801889700803247155817966839738409811881558842558497374936591948575094458902709967649670943799531348899018295026181152758351341394455477803161452827950888957107616952764669098770868790197509161300514461738813748029264970943645057734005603756205979439318992192179385436373387356863018520915610689417124641875076662195216149074712207433386858601099830139258471885602511549737286546354072239835755060872122226295252456759182523788515281811247994680730874922318900388997989635969909208491550429761116124576915294686868988595857865815979825458385423820365468951993269159296294184628737325237899225516555597133368104895471108694845060167351973816790653966025824988525610806245724232332968418164818979691754150970396946049176848568652032058994377359587944569921056970372185820861452459131288648756835132601412306514734440183806664451760860761361469299329558072795450132581254702772107822395019057590074752047590821749424115482955722189554827667888202233820838523053166286543010095488289488602561236817450918954700940870810202234720523464159387473324986888342222371413315756119453548675345844622024309722660066820068050695861950528893041227575104210362390105049605771532099080265007227307823067311122114132613012100730624149106212456138703028938474283850147646411933001650000713839010901322781490650217927712196162686148403747262181253294883501374729672084922454264100337914932943673676223150977182519885116242679131597547270576032449059052745157140095765364248913724627441028643229675770039543724913299929846003398477548044914345476799006673742614300736881713504883956058491000283126491665510829080536558024862255090594486942635392525340486753563784629885022001879556273749541413592741684977462814919314473824184060215693478161846407112610058824828269985041995370980051862803775875867984283365007057170827484984446026743421121210261496009718532815775484149655222388565629135698480973344364078809485402795996402893863132984357060077981264065218717932504435730579380269071792219717355635889685910981676789878308549245800430010286284274801430463179670671438212937266211253494422955606132128118457079592543702966813563312965299204221153112305199984685247376075854111884469209093324919973911050955998321262107474947306939051388491567612241840998353618110816489357984005895839698147313608273641654154982978589500187683735874946684640384790862375394227067248396368249959250696560089601764586618254493260179570411043025510615704460019217526316010104177774748452916443236611135606351221914870317002854595671456607485705056787297904432383026622722686716711327141128853875849768440234298362527726972112492443420395114734414287046737949583373605350075370490709692844873987727230749644714296132800658459021890599898189763176220100912993209465162772900784929858298940609146012126733186912913223823203120605889957229800536678676293989385703157410545100008637357682678979898708942507581264721676480240516660992329404858689356265705835529373056170104529579637310715180550112715452738438101553809494826924119652526664981996670181088951330046912181905173843993973162028121267243963739609750526569748738709660956977078770703870504948344629551103523828562101013462583672553501345592616302053505764762949877307794918759450005067035310054993353417916548141795230951392182793428750277010869134430799007830788234364360569244223853788212502867718323292706408515540008109529645996109070794330715869518134551219310773457870554319741279056428599304040975595533698051144960390915869491252789645225019615405355068285480168124759583266153646625457299142842177533395952871691965243587283349763157621540458239618504975093767508431468161256104059811464110734960499324975540999817533573989307615483354532065548132697063009394665516473565863646606390466415818566286608133875990531638716170634364969781494140911166091486639920865399247817135979820825712911903949184380558465890155792711767591894956016647172172982931241669679769565007916821069935938959833890538053764215197849282131160102639167298425368987119282909132822394082249753675373923269731068646661215178926913386000944584120576368550769751220520085693665081545757329112890716687710189180494786976499439213096622564889757345395704142308934384628023848421652146324354912780698462558212088484091058302169002400515653210423740421073147965416063977371238780197533533115092660429589730154326479008536732466221228813507479392626364161762668639273608072284606390516429959201202913720020645758861515404986515425758239832121759705675719205108281286955177998211575618822833354720369867779698532009062902105491061926184237944821843371781375151032591073094425416731919901562975856203840844729477567770277423145952771213313122212910887780259936715956742125492854079850841089827407886286900762973767108535717842708077688679710091719252427232020771113067964234332287542507714667111356659915369334106692858184466060113281139847409318567268225105115758232715128978067372545700264213559618117865361755686907214569556585161893615175372578109303259843979976371858410948423489552672714419732801927235490784371241589568204116034962936680987646747778344110927988794647731514268721778269863741808761273348122360050935071826114053531767035670881575583711695553266515905130593410652823756652064875074877446994422775525014681125825578457855817577720357639225115874843880196424955876822350789887822643714719426667412926898446016017628854459076830745655222588723728071576451518899558503097131048499163039911478612599778410695334868054628359448787088629953223919653430716229562446460702922104260497398061447925692520882829574367191523391524561684489156648384908576645811011296354990960263018404791682054330654878927388184964345154907354903400789694423187431621880740633581679694467464516394913743059993700989208965538171036613230935713587971345153124324090827939738937359238777140124633819605168549438865170035742129647014812944796341930250831268852211453811827944938717259382491568746446634638980798401772577030546728996332744941620322827279713754862461843699073519068934191690164657872307487332844367538759756483554676164010342874788745295247423259264482466197024933600489135823025356018926781264915168197278877811153784865958560091350330031645994347751477762088967472488354797338288065607898860587113654401017120836380564731628140965358726092922703322372492940230654981894841755823918509654205501315283013810949632718458329155440039766843265170329616208522092168946000025514894112920518069512749015317301288931834327790885901359777652130176449816497722285625621308935749911607198461538110475017820486656661609881425388705858169888331607100298653435297105373751516714723082528587027241213695772211843204909926958212077150084664220965369647105930611479142468372492640844664423120724301223350906859373179228080874289196400042313509618016635611241877122454499206457147572726235326735223674812213670910204429799235992717028936529827282072920862111000172453744236290518237074834353773072803199168332261204787493227476037679078400005886517127029534144661743985215894527552149084007033004097469578874307454281383552868542297459936431618864332084148795528901348336534110936253403064261069502735115551069932887685693235965325404013535154339462624039920342699589661095372856305006409308327433614933954107563492167158842268422065301101890460314444197711033020789336154339029757182402437711691706110062323517194756925968603465678162220159138967524234217746518426436060222547498748145047970889461232871677884869739059619365419868587018947223279721731901620786740968713348833136194749961057025620084920953335343063698323515942104645536555123014296602898320677501739598626979811870172517529402902062392560357851558124585150688541157917508604282394307933525585719385711251921273352652491237868949532569366604724973117506776154924074408203462330399301575027365897736700375142143288596027530884014426032945459472373329781402229596432237993140343371574686528822166579705933443528663329781049575850676435361340869904773008947939404968867548021492377642480000137742681248278507562935344601920825665217255638635637771999809061334037948709147221702962876569979214141845315533224426698191312021657208669359589043091036663688203068525285512904010173516523425414421470159533707532411792975958411474318044594438704693556437360556408611541444268517866515835362662209188908463645744113186486477936510535089668590370759486483244108773798156087397954885257764972212874091779281888045663582681252680386806014136838814281703411005688937157174191769962090983016212657975594965771698673310996501446646784523972255987761672498545059996294621577520745872603069173582412371866844150750467008332431972937798140135758376192054135710227705426970585208337823729683803418854060886317802570053444080912524201589559780507119455949521517090366981861370805944352345186786630062990054576946981361211473615714930777555254653003357890413931785806936649789052138174924701529296316046997640248874257712000695084468636150625905011302112408086082712904492700574640031785510238097719457690392859975766480840324282036373812544415489122299445518769632155025178561043146708070943203580598964203312837392178209319367283619391324974679231419268170829447182878779423455440845716738784817559811323166282046209768278858927367265703181484141473284720073593704144789812882361219323159565395740450542234711659951997586548588866705684571328775468520925641116031839348438244083190999730461389760912137248143110904328044387237823082629742531253590222206390234879950920204270745274010109334510711333314781656541645573445743123016834047120732862528785903627973323574026572286276454892840706485995635633506486635145290584108098918076159982890176938063024632480578867774154657336170655800039010032659345845609187600110357935110129339158694240721079676300152189771233673663216586372087205161659077988327756597324070880793939556039262549960174456153427486978672190401613708874819013721025503226879472265572156202032261564157275830660681456810001487313147176042506917128087845294351539794717775761603669881587772956387969291556422416748203580104675608926025250523006729827126927720033392377350975358472500204701411849551554487987392702536232814452196647958149951448726995885453110532743447860339568447064274760374215492761720553322391870863585776204049516976927860400531481197886241365831638998717240576359743656759837187219165348837267731102197583017215472105301684729012214990671302275207914895400954011208305417884048991960828614021564055672166717732139148986345397110679039960124508768949678726812443186014786897446381528206699514471217674595818368263983185857496098525262930796526809780683998888289191195783959589135492262859763070790766841847598009768198568875415793408159527325762761190335962095531051654596476842902165352416502393513408198011227261282408899198957403444430872140101604863477244411057559348951716629868694548639220169653899943029044679808192306539325410513478308437009226214972729040211627548830073679774328927106107148367923323249118417337233542983303535179897001298885456034402158103971571588747668317583020587995040327947448846656619894156464294798440059846090742475644204994690400531675046161488797460353774483502048389750823475730340065043057215216136328069803817557365255761923664336778088291698231352940757798847138043526604878768339727267284389670029296141546375794787191177916997304602530145044042058316008896331766863038859645042420835991474535110015793879925716623211615933018812941928809923317634884569733861207014820053636688715704998725136274706158924831341570010188937492512471285864741371693652540845531334383394747913647479897303164805343289778224169310114769584767409513469865676366555028134393696818233257189470555981868151346769036637479425361152816933526638758476007695630777801823902092833807124495982742113283452690227804833671958369139122911558515209677220246360608249756600012980284813814403535645177250778058415975596370757325197884407884171614373376066415621946210567384411098345005569600102553057093479693541024027101819943148659264593296111636854252958410838507422351337076024632592642308496449084246597071384066049342356019412969592795641475383774354251636480099008809425172440525914904770770045363794343126452374241660259698851169399869488197749360377848981648118841621152469141991324675423879928418751631057025926571873912454114585231456399281181980977682000157206558375140820367228275350327695592179650927878581327191474835513378824046128098725807336675661190438430906482685563843990970903618095621195171978255528983616205689844917369708783307446278682067839102589739317417068694710419120299110205804676252623797302858664442286442888519706920612562304120750372048662896189664105807904101992904986446502441463151988989206113480635293664287518235872398134436388457265501902727974328056921512775013947682813598279120556943237115736222401349691526490536320694412526490909811658185438921056128885849068541993450166789957999391157214012309924237754698787746403829889396379960679744310971750233839171712790208928324155201084207957873388287252812763066497014127027582452336799814210006266991756542211781728327153325508093528134118428365254220509808066078937136889571476107385635243282731893910675693013697285969208289494905578663672394676773016451094954736939865301950592937879533215338954389488399600248583090144330554261716493264092320423907006671655853582594083317590625171928706810275634906762611479374148025793190953586417039374919203454899261907201515426585766136570883110222443127676210486584671427329333232808416861418232037665739141830496669500218737012600815741416411660869314281296539937554797179456869640738115006575364910910134954200003035149607026847207091901321320441390080766348607917825382033877080916074356278528679673182122114409130765943259080665247057658749817438534017963304182231320948798943036539327330707534527857980708632478777449805925542654284471617320291973313701772882200973687240999582210295004580825133108019934234202791628894150959270970477931966320046692187130803630041817208528169899299930573133877754725875827587259911667752664492696519332358612762001997805117294292562875230983410522963664595408953458323886521040252709590838756950075582223664597192679868661100420485768204643477487334125898766690838030094577971603478638169475005732673664739529096498943867292185956773823363221122235602763023239311975975155973211751596799828149562746513694196368994729830081797204629176111920072056870123837781958707466316777424300397642419604220785337465114521300015891850866444001775591939204456791397789901830746073431049850096587586164851003053326181957261174786463965087187748053258476581446763653733769213206229660595222115572272267783851171001102331103405697128620811149596976857706512878944443120737420280655096790863429184417434141354202031365386996725591331377570210616664154981134617842527527856587574628504312662789565564697379572481607444313955750773141989988502991606008901221296469841846320654794078089393289147831513310744426913866001947486733187970100582392080942807356530638992827573380957553472131578981594609528153185645488820160648184107115146834682145205389464404593750466951173452164361811309092601169983549503856839989152716178588582768206899168534475977201256959356884084107453352123543891637367709149156554076458627449925904712646996128574632383247233848051187941718066092889810977642787132846251761667563597516380858738534889422492458036309450033965758670244465246073161106297160139786527904552263203140136525145992960353299859015855836311515152284909594406529240315127371591390531460113533336291462561897625972512882003308669138867093378241340340137186276030804855949574001882553858923166193386824794744762499753404326369777028693912345597407710089151994240890662613429667009956269984542155647400364242371819743615989384512027385646388485946738020376528017780586041504863296407311076025486223136203195214770928943565538205822259749608422170114579265122339395730832895493064230873893852813942755108084847373406268291546934713452967912952732069690476194663287476386615039876251746895221002844830755846464674909602919411962345979985458719245672101593113033354741454082338623171211974597991714526430467081533444972684302797804244969847048620781191515549661732611054384929828305536993637080908303817440678492989885815383559309897683345293628537463710373585151964302417409045779431353931766443846842647433743605015568845357552559138042102649332506386411307826096966423050977792117407629053734353132514627996476467589822459921652682131147300781828624176273226440083715877161569700577534072579611724281268995770200113107428591047830327317857836062828363339046832006067357640214461085091478124188534011465934425700861910370208086168203289923423802981936867702443779059249729068544029015386263165348960010699615361765867458777285251204547243966198577923975848804567874037273977976482450834050693854615157603838974746029343992778623986164214056892129763830493907131769585538449570312205273865630588173279414282960163314284522884723340651313369922204816651952016135218005846796248491992215795476292141573281611560026671139672411884175753548026578440441374103881017736155485290875942324674377268776138663778510793230860241118177726706245609072921265751425359190319561441689894741202740824056497714528975825353303878715191818941175498285566280867573432067404381846334176719973353341173009088812184219461395739352360417698553254970939556611765280574413098426995970537456302871787054389591644182646053805884000097058838415741151317742371332350040071788614314047729817984239185692176308581666017390545020256301777550879241611579387835715802767010434767348806441281176990821046576276560858734404093497703746204616062829519029922388212290012732281630226925837754630234954294938904393508762180804286590487974900002591896177400131366375973506122963286182190807483942033104792347011699154356980800363440542472349471457398178745151790329944309396354959422469768801921496894758104102147361062090138888628207034554494288450931236316695628370144990946361193817284438201304651383281521466097044303940816338668513167051507147227751121924326125468481542681785038659242858056602751808566234968242047038192182168176720829255771372572190898072126639543958589012893742321018922591749029286346913753650425707287495561069838323352993295060537917270459099644966971472233824975938845075859234493495327283924906087858341596515090915734192968156704804234067000025186692674700601767050656314325897654737427527405341338667532573064885267548357256945834736728852682338741808661772589684653270462805579034165460869059358947778128981432089452454006383168956150565467250460759445882415525970746320950757449588594586778747806163565017963917385933342230351979973522310575575468047845970219451564242893419914879056564658548845638733725909674982613662114763661952159681287489811262672405806001714545347071680134985406408968093246518678908991637985382501845957986421380752008603397847291796751886360886093670799550717363674772898668582747044738131472745769183129531046471483838582743976225267034335902143625012243292109855028097755342526343234357707107004296224476654178727913853192581198889066402632346362007958229065919044372602923527678931556713107980948267009768736074096284392374988966379781328530692538835981556149050569376634670373937843260047258126315969273631588718256744070020013381013836018463541637184797689269179919547429398034480839229923792355590260746589833209556770398391855407500575732485024498850398259973391107590867639369875666976056390125608699621519161678080955997163994575548195817247030620172958488724589912378968829059931242931583969643702934957108671052806122695910610064916931747568358132669483689231351775575057066610333486665972559240540896802177277768165368716070612811397928591226702367522328338542842553132965888759935807740101639580821948027818455454708884667627682465014566703450050959887619747368209651030520219416623555515117137574164356019479326959835546017114571924786856056906281284226311466059885790896533935082277107856061675580739130245578744483787311751719147018340474600808715715930424621650495370241866860498798029855023885142943222760350435038861681050239842874355220366509052945562357526553056145882347355925940791439425867416016774562809935423287984502440980769502962336997588203225174006627282130549268329220897763635308721586779061156210352362451670689220875044125728852829617408804874998379510540282091168582789012277027826580870911793295182926170628978608000478207496043729008690961448469577494978228305335931168110619738884325613664928755385830141684266382337910820082939746589047914097171832315400151018162835839916513057973997124201075334231786030284539376750808762741337581978757615429525510404963299528174215287026784500026394928731037226963520325322260488436757456473885640994971799958041097700520375916002827951868147589801115081789056522914671664990597878591651095165697268718849595596425450136439644005707151495351392291765480945312226831370109600264283938063191602704885918480185472468484817409278948385698507372624265188646173466116541244640906347554590309526958718075780819323905161489609427030301663010961063631056306875683108835847819717788146923128870043495893846746057597922083620835429731354494174074060647687752632577446885508408740844223549640946661650829409151149584219106783536638256028950026888228201117416131200282161842777969541039857299234606804758905178365201984798410776990668204954751187021859017830811061615476219609227402286324869952561162267551300164693826590468100501936144073715352697487313782282064117074640744754305501543224441106490884936011951358174552570709624161859785848099821743896861490495421170383154662883014752605026490663314172892725265808065359362890883867884997759994342026064431591824285719937646833973299011503674392390900293898912263790750865536651026034715709192474330716314394996830093004904172702964348469409435747729736664010160371220272967173094804091549646481095312283017205477220533375039936403912462683818527693318538592572880070443414075082737000634194936001529243300362023987861970699927329303704848522705998835387450986587501426262040501218515340808377829974007308493631311225218851602295200110737969836561620636039590439229032493545202512429504688083069466050472283073261081608406769684120021309993943822278455807060116098518710726444615982723376570980946295231281527438371317934606896206034558968696532266569802404589463872234211264919770599261822866928829583038414565832373853509167588481453664952644093810389904515827149674105727148706352068381608182877764236873316743591035363985811334617023092340284127439857866150719487610813367363091062582238899329028504902854693671151968714793419536309387198552251399973564613725760105120042514103116231298693902071559899394371183207060468959121976934363358994623974343273067552065065010259575218949596292134571758179062637232338310445656333281644332554268955930983495590192607650136177015898560301700316129233530722736339958426213702723579943755271754611618831822073198962273829872911717736538041180137108341161894134450873828700912925900295645113859431920347345794964659009119582696058676040249207808450509207080668803166855263007426557734556403437269771553483376069228731788826363848256751315101950262081256782487579716044776404499104054892051548334070121187243210167601830998094624314666070195634980546203530569791936264070359199542537685941492606181938003667393605668459444705980984935268184593910236439715091372094714925869399976873437391681688598695984601425057142980873292984803860102674545660623129600282908523947536905271380317288693294038878762818756046401528771845689477776635412422365312196718479167435933522398678650301503210080177771674746343720602883177100561042500093540213771893156361569651664061651524827480391468861420419585529401837105331747632523797167785560721938707198608179581349787312939127289730315128229211691949357371543695723338926966238613951373762312479034463257845716450117299739258792689393536147956987199387430846168902526499670846927659924766929288676477488910095963784462207086565359065017547052799364435605902661657350299783898967693376952869080574304645628255066629150568843779934333483182737312559545763339560071145565176992752711560485799528217156006652763801004085117317936866309387605499055070925135951562619579343356522795358590178768332799160559168860580033333424144661511074945405740363365617879684843341180833157679865537094901855337548595331232922030569153882878378498045088513604684620051022891636459522263028934054373595230006707883590681187880984464334841494737570617551213936559492683459028820599367577826392490175964742664073983762873995459433279081056603736155485435657969692664699314659913182737843544575800739437761263867477860969415655016832616439416291779672685274672425586236717140686108660823116395867422931075979383498664582005167293860995887340346820079338936813569703887775397308098577330135886842636652039938615411273289720276810343707220337827627144853228116869930218556864666680579608885871734721291003148171455053414568205005606078050533212630004890376583757048231833161477496986152500762253028968553884247563223687484322407396375999923240375502085827762481991510659634320188470088911233157711783219927284844970170311008513564941242754128543026668520297948145330624134737298953638985647450491563384284725748363433618787228478784250113378508782929289772648762640090544592231518754123919860470580506579027077840948760250970957174018624488073730684557678007502666813924546388678297999962634684707654180078496004590840908001951055436729300596947440435402171887346450028120083604226845357705352319120521894504172645323725850020882637887747878986065350338969767638233243465763455090705500895892321742781963355317370075215292200699972664727717747979194166707283789850302827087081573985504844907135678233427132421429778041049884526095117238353992274722458632930983880064046756040977164881914096862261594538552409882877930475723585061231599177218830889605063943117847690425439687029253585502917097395941605798964234362290020553780953401409231188068256949437709798831158934071935960486747020210675506026646238275589248086115982498545204659165449201899255911144173113975023117059117591049629520938389299785686386441144671759214833994444880006864965626299668084993547281026859378641726099940881446958904556309623938449055428473455839025219956945474498441742059387777907347344242980907301110224714598880111799761879377720948818207415872267307608122217337226271916967224975257892460780812307288159156744248957744475926202917204132079825504986672912824494032944258283555428997360640508671956118677113294041918913036603927309516744486109630404748442600044823633105626996809709072472834131977815962444584113324117143983911590903014175520946987073630384218462970545658263671609098287491329096205616032079814517684350597406381009696666335912865860886313069361550466529323150435371520308205019932347811780817985773838498368096171291994206335216843685603996797278151255601476722908557084536082975042985502688406667951327446365488142612258140149409788842169927812552315418084905762078417128307722314216238920346303513008992226976072090668151666352002179920514579067925490386843278240952836962327738041227811411159459681066020613202891620826896456453390667143505028427698005790331973864251196263362922676620938648169004571001462923926279894720068438941042536309707816620891947015946721017623431441109068048541681696103469113098362526907579381994883889322427180263398143184412746119469733188793057951823070654203273999372127557936513307618975324682845024336701883423487477639153783670524003847850149981768190338449300462577056995411348087705107032422599614610914871620380087432233644558550243562996377426863207149932605439541390224540399795407255137925659640289904535398834559410368094837996914183872355719729811411729862018257906967834893355822415665691059169623523259308749183008047263950789935303180324711491297784307257212402334585519372107926392313956435897467577400528973136297398494230418106572921878229452921354744769850499894289754743675096279982775731662406447112378187661404863827708268338330522031231312601157575644535403010961642144066359084432145957680643529032433404538220584369118972113542951546134694724415385898569466679186811472918788650649007470965783407605323442084179073663287239574651580581827105918596412974451926848123652994192766647132224629807131409227186771482591822462555508914954514613848478778525549091405331749635263128696688052348905514319086743913994639613435231966505323552108296389898692320015422338095418791664664969777779538446578027476869623601724061220421750597736628149685433908914511009201894823139011097687633910276980573661110579847934072742198744043530925314951917925332063507902034261188441503133726730198314641377517543783961267215454048870224145676612087517659189849118047339716815517998806912603031277833609149356518105564486622025781511034982173487580920431699555463468756901950680824965809413292582723615060056757138572351677728696981817340364153127788441217620033190248508419807268756718270839753289095810494927245435072812246364140897652006896384617842519800135805684000893554950201256086912588299630281669804442625939620388828143864849426897749178303754140854183114603946128352044902125643689631025075978869804683994486825125219734565234594689666317305372872143485942746182428812504377234519599325380146252117893290296057011436823787371304520142607971633377923825397774401374241114404723372137508259608668939828364686103587491737629465160392859273935641088304668911036314109537683584233855706538132396088074194491391606810755973907213882071772932672884639072085806286741719517642359406371310027574519843682034466670903149911021232230542531970190404957810735957407496537829896564967822677645700290029466928615653992592593326306150472194106823776781898840643666311422367170552933525543636594047012336058719022764974901775465666429272186328598332431225758573567999214814509174598007408181021009121557107301274699071857917677069948057822854979341146643100594778637093629280279755593657418137740456675799312619687911657506995991583880260140468939803061369714943551853607681627914035963272865717515963408452917406420432265240007608096004163157291654856763414909498441262059940563385831576984566537129345029396882316849931276885097400889887524476183237729178012807713668013574997954334392746353881823447974835402907339529482493506198760690341150655768166079583013510234524633367365058758203634853507260750914315264617098029976477554556964370610517612732300240408223190526366642204900605086973796761725236447729133086991889672811025051124012031650603791822783459790723649409755957271463493287633709219377493667907746610547097274592368663219854112985252510726976937185853261872525470940485708221638161435719856411660095382690697829857050214789996914901819446773936993014390054078067459812054097996886427636774188393788116307011605260572067776744547257015983380519825647425922361445646702232555710648647262232231383250385698382289806707401588661341415241192993611859604864086592252913978424367691443233403411007418834001609029869368067167814871136387576067209738847199527101614954437887429743467152700026589581067911503619988436811297653075504436971405667146711534942834990742367354967413153384543346199819023984904808424614319399053803284232151080562074932255766280746078148299793229998802700529451102784690952440044485035638331073825440812365924369674907101602124942738754709953094592799052911239875691108003782901564157287366558336492241665516048876315417014242634403579998313197396962103618433256650292712092904112921360451790064220372651668753447203324353048403078084258748996924552901710137262358521487650720719212635913505509688439350349497276632871800102111266680777867789495854666934501636869562045312266596331650955704013780221623614673690820879134680460791648303349860080263758404301127287522765336294611807296589421285988494251702245955391796655697691145680782414207041661539084805741304778230739381284219289949262636873010027974994495771627611442969819719613151921777732814234736012751655279328115530374548384381370442509501533548624602542146306463993545685912553551713071289691999659689207844192979101792825219750315717557820424328282528753701090996403941617233237316417708864493495829039309404265689621330613194483775820332207545175794254247672454129402655973532428153047697409580054864877434039049895637905414663321143240995543657754142610463806633489561658581577450035973303018157823052792087494271381573991652445255391548936784307366311919080330972334450518956887036231501880170226965958866227632204056614269240442450076562251370895536130452796488010985220068366995004449982045736827092340466651668291857934529231691648124910139727564319035597109939872611529489715228455228698779118356917514788805757256226123009873893945572131057133726837506515997095601503894977166595809082504221746336388956920277621058847788508602125012485152235717030465118949595154381792367969430549774622355385152235199264779772106974248866892849391681932313529560557315350551656784828025283870224002034377461645424849851916496881774873128508773368571785240406474391611098162597035346976495443539237384549922103558078456633952406009946135848984053118470136799355032279895446617737336545763649995160215448272938106027023464748880994883183421800322153072234068521135958759811174495481804347897681279738608148792698645552035071212705670131111458369636088652425746407782344133505104219085019128298035841005665346314510816975286533829507927450122593880694644535709159669259796486312097863664979328073432314115834290942303421938727332458858848782026769518392203430073019662402438798888232649257454481725510889660257124732545909644288343812621842148761347526865066526518356796290842928976317278361240785318654963746045162940093709179842511749713143217415541470174454927704879529771274647442823349867483438567940010886509313910244971047608230540083249837906945247174491998186934714763353445199260935045682095680697290932160062287579035909471682341186476290806970285596549907129556484867120345200579134148467213486604761904793549441488123194412212477685539945233376353952327831634309273657089702814432827437807624148404673587292522931235834840533184846809435177839119726390779024698596298093223088408380003120253243237450289459742667288211806002947301404433946103949730419664048627839511012500089580896265509159933932481244308282716918410483897825603527413796522946239242105483315608308329227853916328014942132557155446771219615857151660795168351043420961912783783778424932960607775272053063840651896188858519691665338065668433170661519849382686482141351436264209000958163881818089356304981776335491812787678939371047672383645677482783302788957433082551170097249102600009993116550564850343310143746866738186502219826238692337779197744832121186349715961610573774541975340435202108670965923481983056046149524986766966893811489783500955239379369732225265779786723303171890014509161742868844290920679236337960595245983207933444147779456019480600987852299459048693470327106356399759646863290695259367287359662063538843706096776150281377274462474163286699994639240874904530632871641867060330219668580469008446793125349386838423540084099111018400897023816427777764563890583165526618167252250209996849788594943852499219862666666437584568920110775795358851445838838083244419606720836339454344302143616915562719273852393697984224108259752540147652416287347442166870436957357228214378124990338142289384409663894607045401309610108031805850158021980893657273262023012773750832239369668852887295141979451748052225856487902277849279754377864374271378497307658483509872450877300158252722586512757615526115378866701794623508764991983037259739274437586266520438036897335388946158491290626573374227172623464051822884717366657100339308538032707839386698025256682060262575229651856962966958923912618468164296940955854740979149430080906413478081773708509893368657912470021336390293700049252389137227816205389605074091154299770929504508458509229826336100455884860277983874940676198656483618541625773350287767097662501349478370932090276083082529433020758752370030458401086057933608051006709016436575747794962436341134781845056850616834591216446397683454448122379100843472985025661346259292505711598750802604706954788295133865455392918483108086244892943208301704176104958896403602613086091917803278131180291227351928304088587000198023674811110998210171508028046970086008286532755514424604823717320544304637227318002366861316543673884635144009829282758438230256189859594514147525910582379720484052814433377204358583369201675105224908060756410500263336395170233276202244171599682628315043196868119042070630361739393868765139898240778953580154293649380563337393968203095808807754607865358002076743570273376225308478023112526990913106417725004454627712355080582671783280015709455442338312483833246334654166939713476771364631528074479237028921994199228716974231125914044622731738168013380274569973036319128320345151582303722031433867731771935252855957619913386341485371909383317040417746644356557716701199707260382559764234545465720913320091053498768796643803706652172080443566275188691074302942506430626729738249371375827972063879923553548230367150944510586329532134707979531929736078708223357628671330501844771825119371400867798847638104736386411318424552410825217548522491985538719699701222702755715834182602748886919257088998895440352972926641675022083358526656450545813052310592728511036959472546869296299944464079986522566438623745935619232267727956283254043602508685922607878877217381808130286802896710985950374825071097979116110786777376763784912172600388732018612477151614643111147161284368801266198236754426326523556766024754018446714756508770955329826716868817790946973259053172443717284380909696065306937272333541860666943481461350427084756911711134297875428984069507457291653998061618044063776961392065261592990266784626773932784050404572653163291531855597492467066356107870924596459689695878544951423090037666418073701490960180888982174876617045151809895779059245358721358616832861742534211768458765971019405867257150392283409093850553766471061818414880841567846369894127096182485709601692361747084119792871845123296652230188271224165409529875789126501793219193207591130907807315784228223799752054347796719654187076276764216175662093036620318551267854797628149077482671295042228414889150892714330884434505265140647308151850218874357818001464281869644648253695068392913901889611373478724982362784322321439659082232434242950090113887077320667942619894259833066603190863291083416172239995168013133288314518271536410749992415389793232350189210138276001409709041513789184154368107077641222986594122908794300790058022959228143057325779674021802570400973351652502418893505581128014301774494353962865074241392850680739474616699855786009457297827060726113117481264544882182208741196301503723288178048395002400322004537257077062088719064443185117003185544565596910798540398135942708330607428242866006961763062974641055109390543957072062781131267284421197731206057109441169443067612697429097798398333906713976956422835939777950092972438273024241543292067129774030984168501625813956053471045090141249846603953840454818913640506798937962305086924978204147527615641220572915032547139935051411941470393364032324247974049364097621456057067744734036160592469053843388205690404026486186520855255618701061555475331865545156422786724504292045264901893762353039133572940392844957808981592810867481692431659842359950689906832886660163624847763378662222416460759586379664582546471792437968888240995727373727497887397599764679097145693616683633224664999124204616228129018128054090076619466831996872797541349176065763775638675152677529052160551975261020114433318410920782369052898267660045946710092268310543755915960380908654343267036883636434722819957973675316865446393314097493148851910882867265288546492920704419319374092112419973838127152616216718895799535867071114518333797665481422532870539196157368247854038283827816710934521102508411854349384616204275858305871896867534242662307759873672637787297335611054964921238287792716079382932486367105437994138015986736036142595465351920130826698855124174083248729203921134117477528938242761115554884618516853832876445091700144332571926149908311815378555814652399945984838438698976336681488448594576391621785097490855696565852288081848903605581603137855025964171844888257615659522691724117316437591275314949002690690985192007350229249374082854733182430110637520186581838036886724526239525874262832309590331488232334501063127178795997640911579302572556025602988657606718793459544466168373191743328279404937255681819532939775425735743720736520699110074735699686487533557776620698580957630146037706211212117029345303583687121097457025866633752264838950602323238647405516064215445578206737499207463776036288162677051471112212473557657944939708122324585945458921096904529956294639257620267839113942361776215405863035521683326181687165978393999730443665636589319526557737861431666165465738321094016336710073661672741259953845340384026024041608537204460679360367850913944353534796552069814754485258265030343048122862891906788615920125139562831359563639249817414890453642338422145166547992133560584657018036964213477408323100837085268173879384064649042084411673122630946057809684088343995152690512783477610291071846412010103571855656078316298300534845740136951576845109791092767101790111428859771163103917813960778517129660904726473724971398231386898171977467366314657609087126048287835803175952281130255615204116543803341192985128724540606375052655966107270867781263642431240778626892500795988812420717398927499469336522022644879969799333134471705860499326836520134265925442944026806923067366947735539680833308451538511640437339768222583866892747402091019677025577586137223896641804656055381739054790535084976490529614601492282791937730820294795035853523252812520422179516660316181649049414047455769647650358299087448024800615315870214509588808829862634778128013789514316684200924930608477005318540366770664680753995329182871503362700892615517106743910972021869736375089237035459237777882420348237657473149540028523718502346182184879660696783273404452104922942697631376841576998482191761357018259535268449809985411860807806892517370351151414776816627480521884457340423637050863006716049353919301840497056259415096572509161282117720063239414385806402351559180956162224511477296019020934249678046475480200089244961776570533897308733613226896505828118110961362200559495182857607659810800007892344605746642398965507663105678207211631675654021054101600223141058286771428074518957470003445089747466433906444026039948214950092274184499558195922211619905276405889948849155199301380388818115766709273540789104883888532089022444399020251750982620984064385967224369591033584369869794343971020986788980486404815073756215625480866881350503346384287644475266422553909498094748469290710845271279058800030657434148612216109415181637990569591408486972755915930526941407443252588381590898425601593184916806117707562080066069670662638327438443364617157683124972145665541574092017043896633465210003866741832510019461224919639680119278689383862449698263742409997935527366012444545784975109064713521291331062870018139022950509621579909400429311982693757723842827553448501999462487046335974324987857147862280885029691776982707542249366977486385726796522740571908972775856572331343316603323179120436578980826558598012841981919695442847060923395932836690657922464783981206485464459414259071867358130740620694138385697447870806157614216810200599814314058661957267638457008625560743933248091462431958657850295626677485306139991631230176619276741453340337810757286566533672600358545718507088768971819502470646779334404622263042849150947423993132606827658409661776154354797049393610107118338664506611377163091662995541155237428913896488800993526278837902111625420397891769762554770993437138327015525074982075506973728673381134165593480542184605085535628965150552805907951532593179902363431299863459423845474256122290456550961812611881841804852472686601590950424866492844831316825677361870741306099409720550348454146761675442312091721818399505567999518659119773098610002613184437166598025030428353567903290055436933171899654359652123386602764914094704234955635880460508796046976675938508279783961353372475894699526328257367900001937445333011128634456070486604282663966794282720825277226029057031160947121471813286303975070058448065942459994712955298110615787586395304866593245316734613011625099653657921459207160292495028034017549586205982541143783798787864119453167176190399164588780250503281535516061346514230438463042122459768590140811378570117643697509215592015149706755368817123371825065307724122026023285048976884273447608805213824554624679576501192072802519957982708123321302397025229334890138608616677875530579116047670628437319577968472397499627874070467347924368942119208339085372104524704078444997390077593241924818237513741383569243948536157474217347144046919582264110064271072438204846434813329220291322356449654033824322878738487554685353084875715121358586771470338999069233335774765181433724388440598076179441999557258071613427044533926957370590073447764648295070256504037964265054721969773076709567460529934198599143760430655556720664951515818245397138435982330541738236480165843831719753748324337193071469595211234172021070457415012908991709148551773704883904090644523557325250855834939175492932396368401305887648806708881844805655121822341336177228180319239589305006464325465195522122109169768236596774764374136340638492005875725526288981493728054306806199182711581358705622896547602176251271444970716706075405937375975102414931417537868200263175429780639496656398788919380160849509433029530926885518040237079096188657523898302194531029960918904557652048019062933417881469437787231732848895271405613820499584415361236945076439742903558773603317897948167304744802698317894266538636390888813772958361250594338168490010887066385553616125978620836256452883808694785840198526283371848569991228310311327371331666690984826002499773427824266160410728779877476335859696505619506167879708708676191471164011998875158040174751696981518116565888374893226655193267036442465931328066606226703658655643024142838843951686768255463850490508161742620226309064865406270704147973162909633248487047281946596466258662643858192708541148315955034943100846280490583852119135808746046263790894398840389985378301350813231789178975089970457906117654729839789430091659013131991674521407163971204639019457210517453076421662374679385844786324137296529897925038868942011024380936416184714608798892182554578240785033102117704459632874269157932715965386576521626087816810477113822593331302721215643057559179078523295901542401227624192319145956505110566721011545618114323953702542458973866848434276887195310089299763284081570250082809497662085890118810240795426822671854380139538348737434450719781181222024014384047679332590331700682293892049272641230078145670816259888514407656864256067197314340448020915816136241182639028014628416885793719825598931401613119759484160616909746819497187189418243746656778595908474431057754770011753108502951181413269160874403765497135135980723514293966399500724644947128340128525176051875974249914813781269948094402447623153996298511754706458535941273038051761923878465007505216347214030611179676479275971528159326792349040690604308494260727383131939952362269499176872974872568560288565389322493788940691177236241280128314117620305829034946833985830909314955000836379724455198835082860732836176854817704411709382415622359987522734669340800187914672093581260456570739462287578682265768545833119625558196016278772478255552838161578834185153637569122888355179971857496332749107083365415563225311582581623292612400456346445832270833232337537901566769891362527244613842360995618533976728154573948411082014149042031813718811383408197496696966841686605024683974083534421784373492560558795079348249147531454709537184116980741506111872251081670497432130703450255198730137266980568752800043295948066384150467271593931395139871512422471421921290199374226731740529161147887976808635333832326435329984122556289967690906742799662848522000471000066155790657336316648805416199095347267764331641681216228578972250739256293001918758086503451736686409367961173202997654380793410211205998341867420753462613112141446038357808608319102111685578617136982830532473367620241326224678196064343699749545118809413619100066948515011628695127605397789011471528310925727336273735980689569382915110263896927971913577998842695642968926586635233466729957882505508273931783973051609807514755572357876180561805024911083570424359422142254975723806177951114608747464095812963643698470336883172819270146869713138552157894118380627040939864405457299390113157186175486274253574907771599582393387811617319822257666819482529878544585059416493314320062591608267474598704094184571512166884540004997755959474209884761172606113604048105533717692498749065303144968197174241444626344378882983572690563500171795650099959768399476785734427127217833538892085533316349917620281401532486690118368265796394762180799324128120650838213356975370471556634124475888910072831087683374435138581475821204725407167909325223919602561980346237469045637923571929800076866121896669657276849083440715900335370340573001897881963211637695602828414873486273091910663238882828468016291000102683138234914005878684057358021976916200072983218637434354231906725604436598345601378622583100282268517089861828068157853279702959933963830105577847968624034934205270109588619067832478173309064331066686856970663855224297422554937486422038197249911920374307695556822535035110757377212933314777481622944192924719952718656565813667203662169867891128696247588249000132611054986992397246641660052726867521405547111560175346230399153414003385704710952286250552033548691210438387952551012667536427247462420181594372126490025181214326628847373171925648162221701113452797720642701521181970930007057393455713571267079323812008072791277926503480191499315735369013374504253306049807808202689812782034357058045948354358488413510697007601966997349492655521844700915186353922081491907740794144196249839335747393657994760659324475835372530401518081910872907013819934003005896005621308771476379669517692991232005517426715167187122073545051151827109567155231525904850092833672869412239089352194840577697240303963390249784326751070627039379590174734422441257392979232676898439933774123495313238307629245159657010165860759910398057231594776044154519562801687148098255696228053543495056899842531270438368053114544202486591366035046259285185251112486135797581103726435823564184675558861134801736840429947277055797002085677625948336062886237658896735702912732240326871640412309338837690579397135697482617662248214483533319284154012957928688783246906252487974297579030514324752773724355936522068408958984632953222482642199456257639345218503485179552131128801882462627992391316565362504080841301334479471418625812684003690111924992940290796250129708647279202891919766504918938256229098661792338585916647960850689094521355687950216771647655644998296903353095835513238030947044532537123292235269769863161643604847456361986140344938438618061195100101381971260391207044587766784309157481566810339849721488651909786034813267782778598085373339726533744935606944263023994958469283694752757340961666761153990339738678213752347649679509358323763756443746373196261111944387721031349191914343521239523565656412341452968062344761278898947459038797113292208161009552423470605452767535394917047292494410003565501685576818801435506651127180092539563704834106059657841944966040006532110540467172330337469580181602875182186855548827943523171654626198999406580712697295285088128084745251761886786240059334529408230551367453563807935667855475273377838372801589127035537795198635416188319182133287821870106399298086824453216765689919088163826654767134529190622357562768169392784935101804089134372117117184599038484023348879725047144163724832258698307806633910657231029369312813347902293804257318943101886274129708398881661289318803728886785221773024625638273528201865121578463900600952259580764553463880396594758779184684466765657893498950015912417943810142329646227416228983347176095372409334772073894484376834309602562946665906016820104737024462088683021817366186083165829718487756996734897779322848899459465518689935905789741384311614757138234341117229837885108938487848816056023921802446654108802638614483164457115318534485685212585403127427749408589234530757727742684721826663632972555822266671708818777128771487236635673476645081263603767890799243059237539760808483567184663506414254635387897888277988945351498018493979370358104937216633944447277063085020296473182688733657363225461294098122144166113668034695334595493284638221016304363828600556092192968714139313754029400584570773572000966382101358300230538619854469981346921293677474523896235997879062147482073168298718956260557509780185315980378165226215609033662455029369409408593953947387657179625892560816075951199339270130783482791076289273151197130551126975221094928314924653372816551546113111646051320258841579645483361751235252538464258563224086145041548268270860284411021659762437367070693157643915260993190341006576030691756892517609280305872508086571776137963393699281226270895848640378282938068022153885140190133132600003770578558236341720897886046646655042977161867004971854354735537555723887796334382243099417266328356707531141423997740435362486387978184431491842393431205027224574035050762695828365385882326907872634755385205060952074947229590530929308122631216171988868329255214145341277576844612338865350968933823118303021462600263704060395289333903733491039993676424298566608014799304088293873744314103192543630807294240737953885158189664283706847182740422593905653900120711752532921640235229091938212104517350911718158762715720869577489102175926877323238671394807285631684198432329044529237824763820899642409724182216450871693150543969228057970318678307510876781613018629732940062929328888851608041949356970859831334019986474610657049802684524493035982655943004040373247164697314851781103425084800269717689392245812740341551174771472895398090690232022411912843573391877977203424443869160917824295515220522992551973966140364715877878447541545550624236779794450815056648774415963662102070157459805738783571888590688811811554853804114775559596024026054730589136002661332525797425736455795656825337102090008802673226221007425692854699238022543927595014099841605716163426566321458505762363248158510267091926935298346398551397124100507752910250072184177675272664081506833809137716696582863548835793267567276638721846784075257117862980541461222710898873722524871419092563261287955219804787842725414298072736308906145936927129239772082257687098491557012589305942894645627780286816040837698193261412429064879460961614550386038306331182032097793763539751197479188036644495721702332434151358310841086793311421357890411163807740458549657110599554700773710490724382374922174705977145597066967737164117024576643620938909544540877081520961733912563372336714076716045335264565419734243732687246980407813005125407082462988935502961835113626834574352616767468286945510779225108840404214506197915203471615356831186593705024359797969348396283361029532435013536350156489972313542206251876447718334639671017293954850721411384898292265522788909486792481050386787229414973580013580681697257970195530586710911395465765950069255830111618770740393703370425117618180243812153351665858373385527397263341107534261481943330699694971399752777465525524386169741470805475316174718134909592215998549456183702204610783704262600295737287846715784452916504555684597764602044501190430461293988195147281696742223094638698992750336209076552765611457866282382915587922913256840134986725577344941086176444831026445129681570969193563422957433301964865419718299428940817835921554550854831733254036400269961759650629747697577140714714398977764047783469077345274523765979135704259837850143016831411314298287180437156191770661075612640270356480976514509414916953222783453216116136392426718302426547557866434610093040664709882207261193899042510197396113141589283459569658151351634363102245277598540971929243574560144325875737425628539270303764323031148407937980674813625066669651979033458080057626327134484711824923671455503304754743756710830386845406467184614298941458776153778773565442114861688613474553514582613472195435169115416633495172011960969221779969310657755384685707341108791702605330491221156755765498635823040682738402799070609465238717492056062865535919249940088413669486908546747782041454338880616628191841819962504543937843266248403808175303831845103566895283203225046905936145175367305199745937285313764755887413654665981631009469090308081970706068416520132698515956386311028865031182567285141105149565408824196317448386642920562961029508308986339005045867756932481801303622307079413771074010055310974111782395457166384750712814620226278912416045840228541351138316732000513387193965799351342727166952421564442260593008564767112132822416505248508728430232338379916086269331427055398422457376436444576957482688333589495098877095118207993837143152234355043673834405463390099856843443781126203749046314993356536291114521428982429531571350589313120074001165641116138724339318948610977466915741056084123141857982380430078829340715051492226317170750692912617150935930954868834980957836844027394784004496167762788703890273739180885554677368201402358521413159904910359879694443876913978876385112743465053729996854735583902190948530801163067363355935547522792442695081952554608411182742912692314284094192948727954350572832391948404738458303900791169050605360522485677022273343554642951470103973121552447829122409183904131625427657090375475496082695072976688056266750337899052642622311563970605261030024295812887100613035928752590385953418343903768130247067135307721806653989733425943156269598302314273850748986243233904295480977517995845378479865906904402992902750377543323898233217870188827650372146583170421725889686387322096488849276863363667336822622595841474506772117851949550813088339200190542379125273691062126471977925090153846119641606369938222639252242266827857182863254875914571072600038074472654915584459826496627214285282606594318788693832783252166664940080345224802501439822649688044325687055456937723102986221779067963476287670673320506140717455421229937859098821293640574705033271338923856055015117564930379364474260335783626379738688189530733604540293771920353730140603377976316917786408398036005480979422194023179375510484000174966753398968567923882903647959973520159231608462859476161789268263273312155873180625512419894959769448140158921149082539937638616771063700552929644606225427501509372922373194800892892826653603055693667255920515776808795067777156360008212285898557524394874612389234736699136713348771796526427038312356551672994232308004602512326895411177800683400302482030076918452644204560948730855957524454604588894187411681584065078031439435397881673684666144905702980573240273653502667010786879833198294600794872497416223787180338452470348670183443550449167287281175602189261031392177212331842924050970094011545646154763418142337648051062531600379854930056264753175716602900416542589733761160242522919824028676039045811319786865692120515241310154313200080866316191734238705047172844924697622562416729204180880168815039272158250185081145785390459913863252864307600979951297675812854307220158981386931401060514727156114624257260807617500246638241089601905915855639118848291496241955595970943222396188124180525595941685356230657561511063405179356821194514256165579070673317076846650974314655699639635102479963162885431793955080778032159026104262322090844366213897887388281703649306203521641250652685786963133490832072515848606890264070834656524724417701236728734802508792874339521774135607697575200607825390761100988837548764070303701283694673091436973911523465138991180642310012442095440661874871486034297211918986044894606617929914690623794938049369137899702981534241002242858668031973304222906361190081781417019102055534436802904042940211854354525109075965789260456320778845238544047840455396048423975545902519872380299238229166572511877822413766064628559953250904544822221154728965931700364948480290007183855623789352307633794041224254387604369572401922214277029526402522147301045131426585650117147059138698018769635748337029699227914665873329765146961547446288544817018150673848858001800180313980021108063761877049948057397374866358768311568821007102382357101802036901191991434397426464156943815042272318123764424869095068808431931396517006541825008735304110027059909333614110812556584995215750851490441517228189249303295772087936710520397463830966235666655678407798034675251464305086194455625958970388401926974606839484318041068407459892016849097732698721400944780756318855257789621375636123241392164148841802189478509796304804383280133392122185394279514461156011588420375365593913556450492308023685389179534665574117248677004410200460437087631929746907234679186063295909582512502355422109647163652805813603279381389849854111791860305904849272684849553550229501177579008620645843572145750863825032654015121738226141404299021287706790347141027004605682867939436349061495226156517574767316063922464180047983035549434898621393460570081747496459409177060755158926974132457319894789876481772058203565610344258165539144284501210305764685477752776844014256646306965123249213546954910831107921906947606880516836399287139613169806249182380191239898073863027975399746399005889230169880356324544399114164665471585896570457463554051798795911434718049067827003446360067636745621619231960502093221082785356992397880745310617526952601342039079268349305257440174429196796953484337483611096006766006532349019784330682347862728427402448034137893697156512952117193089274821214586433511353744419995371234316336296149026477464686988957949460400258019434855063731750806125861784519387689210493635977550226332503258771837345368518248637065184029539217425928798225603638409587018122529904278138543473734784625206649612022060263623859563492680950450412236838213400733653865290563924318699342600342168390799673343031387215645830355050098857832951561348103865234413508399867131654354976855544815837266059814621746736562694014860636509157406556131027580538936234041010058207133819972001537162371858899344039519883526670874035527644645594876826573429967666575290846875161134758835208511563875485520848557648037567054643237075220111737172819879905924860769676477799247872144699922811825770746458530004152199347302955172573253164597216776804905650922812625972525664499414856589747381787958058284325476002341618787335191300702860287483094716111063314292641885946526200690374718918475651955963444842765706445095647894907447464976988333990769401441078480979590461688968177251099637793037963380266696752007969066867257076094048774925213773494872692013696309636117383897286409382436047734334943190276778277383998359820766045500566857425258688971886922812236542120124021211650314764412877621398553073651402268606700662389444764101064071955037669009679523414771032151974106935712574140272310419087893463121196377471081749456328587514629067172373947753007540571463343911619857960033773136184712602144719987688560704984222344420741354999602896352007774232082510868404851733415504055402727024954170741772796421975685165902648514410627802887724385702673886311276797406884698412058930915651982156028347675588228110375418652952595879865984064187041474383977604329448934484391625931702120202638048766362279812572524355329082202190149084051456007346538992708656882706105182564459423252511859083605925654372468304914599184768737088776441266138539657577216609641778538201524352884806298666664202286854370637633701744999179805180183699146834636251872496665397743056212568840463990130373794933250214713023399403875076066589104919339446772672332666400290078203963253106227682761602348797947234166240305715425799994484748860331356796262918091879260907763268042233582569960158904866127211798021157658828648847453968517930021248299822267296884283403946238898096673409117575512137269125212574102413156148750832849162366981849057833333959162174256127804175885263273346703871279479165656326460754171622213429756694140879606628265583861881205523267211726183393284339401578566626305282997301831737862895434370039490561255074157779035909065253107949174047055249217754085314946987651275201508792097534395213227511315159075757812538098838650574352184560725076793353948378372146642980853426050285191552780050420915042373289643568386483897344013118404739774346053041623481583687188811314568119860415359967152233365384889499077023132417661105369738802056451491332826223990060448620729766767208879210404103159544087545371044053516754936842489312241683633508497541349524669615339330380539154423266328813875628534882384251930614628483886043583451073104260343613134526021037147430577118199186664582890290780394224739701653856009038693309444049429711280084951341211082537237272687540098805130856452532309012189910628608287554347442749789986959554056867899368333270930225668896504183177893602421592654526679747930090663545238706120347986933244949254350123008110393393273288665661173703024885542408403419148382495147576639267212407654622630546338183086624799089920595162422844600405986855331700861966424397674856270198480943483272226407844633148917507890310805322774257717251028450515681663613833435137504760419281339816534985381630607543116758697665480753113342959141250748671992665938039294776825773499432600250824617609691745528102316638334508296307157106194007075168478183229175874232288081865380876303098337638298637828261992374011265271171097524296587287552558784880757293840184127871729372102426742534995445014626336302107954885951709352805893654563821769786322260094802854679596431726327283567154354172790571738100287648083336171806821008231330431439495084174302346450229871166408111042909209786025504692819903347571563984547920212525775949333930363330511999267408112700919200990429717324203013712084618715625728877005042986610622845386109649258551649242865059764622001013533905449029656295095989781581487379763613966088659628593786817556151920154535235172653788504683639411393409876474794181544997564251727280885213550310848688262556847701026091097607537140397524123296267469284062944338381154078715290278252537964025368505217928752264060523245293634486291141613878871621765792847941732276718513138218288034027609802470694389833494856308183327208989799249943732019699266972825761136926406681095266495127880216194402614766138293730545542173454168300632283147280042808333376926727791431341445388084346554738200428149198103709190424344694024430035331707736717954150074174883888329575946095756361883767871969346436435482421397973070946402528386145458355069218205257043584242481474550227722661572390115752439874046016040389995263132765479172086015403280016016899223486531523460708237053729504555316194331829027906830481863695651225385729467430662991299888764186558468370700295045757763844520380711020650494970185234503052651685029853730244404580967368984013126199407700254325539052636094667037031763369771821576087358379013294570487319705694272745135877767839799939901207003608806152655407766998014631308208203558634820021068538595788200335429881980592154599116463564838313135818495488261291349314589191467503616959174444346023111434661951836638038662051835122488879346637729898482414033516412801782848855871476750282835404485871607708811328071607654025464495418456623421835220644802034136994051113445528324275868795266131019391093160104310271989469446443806406702274804229070248473094227546823992282392602739516785109993529161444862765344978117460702586742247470026304884155616480412363335706728236502937951155637039994291816823667107686622220564694399946545787313335326263679497647988482944650865432859762684165592328941530111974871933969393785568230143728293070326544856307682476832142365151314392867009421132661512996592159834883071424839124906188698074814826164432582316049771994495435699797347568385407459564038969483532410929195444872707147288048840469933803490471689651384667632290471025224420530445738043902350949225113433666607316354141912850050429094509497951796933898966313318525683714081301203048494961002516643058582520646435969296862297950911773528090887340700711350771518440913582421190543453393090882826247298573087821854539197032167437854822408316771102954598254106556821748272514859893336395601644094491305261709788226646857342069362034291358851807229197592067165424977056183044020172308673401346796929403058431943939796530463350109180956395407873947671003257386303857534808953930070347436279039201028812130583825300435851843521946794945682876012421637411939962055731093145513260904497485917295050249343099708764360276686405936945594806800876418819938521792455815961233521339259978824087816078810845327195119424367900940475819941485067696049542636847086093329472054429103483427079989998638338951974179302501263587074851375936217349754599772462515817266476330350084629351832513998799103555812348537652568239178115116233682634483564376600123722118850497550209109130728103031888432492825961609536221827366115209597812337435722664880841128499155840075576634886634188488172399047693072898117758507550029780883210760926532253234432890090286746085165603484949347248281292449108406918921381761043536596040237777292460921071553157606562813825233814038145310054934986050166294270285678714371245348107245120328484116034396488429194648898962611062093544791924382846921277153266676377547580624031690510452869803005913414336026009690319094566311400095416964540253570839571858897377410193184405135737806905388227520055686904514931540755457876455599691374138971840587098147914637505573617160809704998448861289017648336707360680387439682246806421458319324160868754371488118594151808616132145081226149281461850688436040429024431439631880076061406503536516820967729497181489326679360255081427905590735549770469458350168335472973554133811993217785690469878948886580815053449089310604166898475951065172042008652088845016430732950445698084236378067561404318354242538565434523026414307828703210900552586527539043242298616081314155488964828040946252610775959598201294877693980728687642955299197274192899861999358454092660056414128586050408279577169737452292835969593656250862111396651234782639686587482519834672017632149876528149559272168751941034513911376577546485226996568209515968075846166429849539271664728055273916807478842639570612141850157370902988991072565631912288851645794494725760447252046070819749210878969519062517311296433745290731760106764711035968762882606656670842489533101700991800194797020857710514992540588233567697027331961241503687281021562107853702214145991826134945281068573158753030797300334617021218218759245992312636937633899258092859207256211703735258770038559875991061526012692959469403866217681765464409247483022554126562809362704888012327664234619187365404864299683701689874268959975670189743617432115719185683950823057594555124575539413847049385681298873632361616546008825249497318927158258558233432094961736547310885536473859335362924757602158043351375853436841764669149859561748330539327997837481076504461807023439000760877372591689283523845623856245719801444036388137457195976741897434173043279138188973390194972573749023419040216666585497219985797788709957124686839728073763793991379902709126949551014914736482125693218828071265385251418755766578675617229184296342370280677326088344240569362095717980647612080472748135531279215368307915085176829657793988617908178900244279325436719457158062037094069181991839702681550692955254018658221437772375837267892944518558196810828837804811161011996183837082043650046182073911238795257972235873486899362286658261725239528803169478450700039613633471091768801526265275136949471649055749352978683949467211921934252940089999132699156430635845917426173050994059903207645988748013656221743620593598488525440225822716940057917739085456177130014420166329114225487823727261045359495774920747190758701236185020986532604383887325051670696154893442427695207909707789841306928012962437930189326235675938127880436180554256706967504158903269229263030935097337103230360164612970150006421011133318929841738101820594809728872082305090444639458152853758617277440895228337734194619988410722583410871391908200747714325395924205030549103810896099028950929703608654477916764058099486637141518067898525773815121702738232657696878456971924122582110140195283177819881326677101192264179481892542310623298946390058636027265754958345543342809679388312056001358549494045152434040876517813086502982444867903534866013219906304538184191441095834820172581614237738081689473633201314509784496978596187445039227168581661844540789510965528110156870249375999856377756402770111823604002300228252274614604986890515510927167303790391720378401433504901659164336207327213579651145218928797006848596630074893089415319134588282207868968791531065957260253257729712456712328672898577594797801581972207371712787065689380316691408338561154636342251329611461974120243678149163772235106195803160262572312733122859103531397743738842551773963599280014626837413766236944820156156668260536503662497339288081507850653004774816440015494227059828371675844320208649409917255651858785016010098233037551286900883991359396026385428719726033521090501482225027441225889896186039045379337676365126654625922766388938719586406373180172528067233916966325716272813825672136217688062773266503142772556818182757671719074942365070827316470496049879927044106046774683301471944433334204717822441957304018988023895333045943430298876311501682256078013806443751306593249573183811927707112365175041149338369946673138711874828998795143003858954239627144964042573018848185536801942100087335128075650338067023282187964794183087712068534197600043993365347207814345765727278878437180228213159453339904884439165735314525924598385261613395660775772615299503221294125291592118139054877246269158243372087970431072312580969552495909782957004819101308646087675028992454013667460358093455345722850371704132555959066929189859143620544084943444819947004088060992623225256537180730711610708319155255655307950738375580268615243504461523453511480752167053525173118310266418272666233499079895059557095905338812885842038500649535102124434918100248210805286526009349085898566707791831341718508059923738407812433918709278684935888028421484521200162876840395977314497339090360758266537852396062217417192742726353606051994079279539039021672556426950848913058978332501508623379947297536172562892420009744088375291531992179750769076081509224379704237575304689533794682437822917521751613498950131286355800335313208255601825750555533546023951909144899787695452345229094658496941513841587026793332468725154823086340124999822908892393318111418545929977270527372070093203773437926976973307591753131670027848662192449903869290093458692338056664136498777257085561150586477292920904142924795021496051683507053891756103859203786112795078955943757216291747270475342172873745156076584421667763624113752302971001738187492854057949802045676314071205636128339971309877773005100802611136068454563867192377118522995105544122288848788125605165974565562858499010101167878889261941130678566541438210413085471753285664928254239436229495353601729875379421701721627638788553701422199341481177413759060540816089177731523832245991861991784893859641890440735803091948766537116980719014799147193095727078415898432011998256275983552547143747676554615802986956765802117596670100036180399898509006316051125335488641408581026780125681756064916325073074168690437161651417606899266208753106790959893929370140822296836970228963055740915066750712596347312734580150949396318974266448316018604985044235129538061900461579457753239309989902463595789547822103323264214663809734249642685210112095492898678590814677964214323242650387749255401103368120856701788028167228001589969365842216585575296047821095674772992347312794173440060288447670528477151535298024008774890442733344090544113907584659620639916008294153531258836336832975144063078310708622533705430770288569554619355554055276983742553893665451896318276555143097218988807456891850786636258255572451972689900720452532633895522539838694460117875388863308259735667955801939365282627911273202488469346870884099542576357323794066310916248844709883012920643586621546008680251336939554469346783935838346250027092880227116287137812360125654742329000367048786150311187100043573350942650568417093470321891229980042518937292152946056783857038650651708286778357367435413115292564670586220834383651049227355476833917544114160893139655957885380302862149199581501492243443814541081300247129629560243423668072908320681179508912883327850716139050908541091610599970002737422418770257686951255400185675336201798677131306870606151706835950699356562897818677410809214333579468674168748828662731713750741880365783657773161856679653669332750586678549815953238368766176902917081913672447682874175179932844284492954405331252521172213296318392124857324031428394021021945025109290915158902589825893935867504046582149453713236205829940791283252120559610447643142862049868637468804864055901981976048366506445042817182792618766949630633251064735195624863891729661147725493734482241177254759429685585143241623538398306185338014951694432126447664445027391151602544159405030677128185617938216937917781541868989921304734419680448548445730352533020065099316175744887941803062381594280782174817110998680229411105265551635954276368810171706236089086091881964653926037293566221497732276432830807388648871566750199535561144350732564725924016540755482192849358710279853584549165005500932620780503673032044725250759388270298325730677889670862284529901200340483961383963004894960948974423982230369156111173860349145932587695875707741484649842111786998082615697781365845418317342301725051559326647093248523372570904316111076981465955305404633857326681229534492120369615609584147526961962268947472270220665356717786632154484407998367814369188078837931157462237632075404795143036596436851796169892476741567147392277576752404131966141666343966796511012026101220232077836351941814303948035068779046808598406125872381689698041035482937322661722084126421942363892211933498440624231577639173189819994853313381780319348586672372181625313923836294413823268175706440660814817665646696013386213830236966849143191539698196768217531100274834697627980902382016669587299913110905398887914172951341744626448328892364563241331812249857276771109991234110222367378373122892028328222085131063341424609783238329435293689731815147135107529396610769960543805505688367174627605406489204791838845797815780556942192292798745698195251318477887060920959451562121224800467399211804034129150896572005650624553707674583669983410672380410838527489053981091275386508538322093523853341812694721244026360931339303679406775044060957622794821775680825269961327966670497922932953918525345487535994722684185249387974155083271309844520974292724030901081852980409736225905877066916348880622279399266282693534371050832262641666432684081799965001088314558573197476877512420817085904780586081099331086309613009085500252730213003480997635504053375893136579385941516297735283157731891820786534802019324029549573223819654847698471748297623912436755356895955257295645222483822542600171381437275719525137482983996278957560958204743300516825389648201529388521987226237253916693918665824673235318870739071158683605138904327749981185553406457153708004819715412987563272455026985260518326017454188374893489811322545602530124115751918227210692825072852688382436736761582818064391348362283393616663664367257291396612256546133882932124376276928667103588500498598696386508963754016050637861162393498817368325561155451424924035933199439359370341774165423764668610985437153473966548712616409914228832901486486114045576337514361636257809410434497877955845088188626387217101815957916166770598409756648024468704485539233408452562202408096551617742267564682709163464118629243417150550153674488378288307611412619256708875980054684915186703075669874646994206884722757000554898380197664696963561877638950473932977308755461158360661939033545503366735552397018143973469936468202791087861009980090668129894072150390217452394486188906595578280134940319204719575833946341273354094063690819406206500458320354111662068362016772620282938700852145198604931532139371196062115901906910579079427169340982812628721366609025444335228812471188616491791215869547545851276849071727109386214383284696218357169634069646291981650430592980698399893031584679068925487537100784292837474961725783941377974189562442127252987597334721779391493972388859580472089140124733238194375438888223309821529412167087617639071346181854858077863631179515738971311621025808586476742712068632515346031537328289236370048239972436928237508951050601321039767845947794069197475285148550104106446520854031882974309692097597460622441447463605861435625074689139137417258027088752814268868363501241658951235059064830610910999692272290919959479507014127227900642504708991097600486431180610155099072674743703296585190845279904434112783077251346576397076041913426981651712674665405472109425292897621868828792093328249069604871538962181117721580142637901205202419856493814717784298174929061620898482235553357271851501753958228009788262156954096912747491101648997255644671667401940242135040408167052939698557122158915420950823605039978151258571849089528468037331636221172827694020949558898185470231377740689347922241077531133711407004047028238511661974014583694969287668436051187572242021438119185861177450985294548895618132878353766739566576194650935145335053498713756898978754384465299453556406984637873389728000995995875013685562624321427418019937623165405186539208274275051451639084730629109651867702489855680295177988023912797755364000165611267012457927985740078940406915271789461206362785652062088608567508100864702249066200661750076660226478049199772395073497976217598685468820443639825300687054323259232655181045212850188102498345535570076422970061444305947774782549754168423303085298689915036920966923111131547483804869788856763886963055921950509755305761404794238317606747069489668636186925950578955390391869688131365892445726880002815127190576152420016552751750304257108473793950135775100330718901839646986883412487641195972134184062754405081403105240846986179758756807932560053234231140388377866294046602736044267150769227639675519423080786156764438600596893328371294392614418617660432174678426080819614809845608679333301125150582715326590294954662744962106718377199901044508705926978658604903614804779637473293227167610891657909075904884973620201031656126676498450501973893729899586177701419966056346681439610161087088139630889031396308031294412476371287075303576677423743985554903543783052314862376731840823040260249698561534219456265083649732813342761293680852426148082634257906168161708328436508911199104625354297318998216150214305156907041610484818816196462689299968812239191180421916280077767374430048989434743730479962196910511689989622867428861437015046875194160398972775408768279831434701200963690701203807531085642192890048019532086454964362388435295491744852106967617603289725623007706054109251358197557952848720873520061616657371827474230285903821632003960337082532673386813157291612690114127019505435601066661820536606588770698170634487321026881426357073468153840054763864189123811148772740741016056884131211883167412562476016552357718306056812906259399367272083523370478649855861033069249076114229734840432061297559080979237915011658728904131642637599285797665071923786383895108917085502870337356632680195006355360258513716346962129787597377425897547986251142752260469018754816474856305724737598658998343146032291984533952864938104943673304407261075276674157932630252343711605777339297589364623265912642459896613681440379371661679898413243197531699593045212764619365907443451846971059712694937275298872669410862379784083180158161563386508816351368828733956557079761272305276019905597977615993846016893908082217008774993365600251053126213694670900630394236107720267183262326354006811619659563778725658759941022911158882286293305181844504057360299580340958489546793455924075619104346503385093043753096356142501992045432183912479625190331160846168227219603082245678714290122704722546225709658951198908345278809953786967729172427113473231703781805816419439564283219119087819960084789485763576417480780228802555207979322484520236072058385153336058233965123844181876020606939933995089340844018583258270490787155084306787696326193295367679582710367480351029609141687124258456986596098250487983106045823548524193553321055243290741066389496162541293561765009840464029317740999209609548636468468176188063340430283703627222078017730469158465149968305047539572262533007143265844727101872593175115466236546399527483349929811052505646857324328516551166431563486823803224578807695225497712869652427693660574511184156766426253893145911703979416173982620939019694281246285894431514016878828753485192111096913198390697129542736079989594906219918694571531053134277323076623659418890673370281642919514639161049955965623199671955456017670705050467459667422668754204568066405828449640878223428851927197816629880041707336905901085075562897600072440017501511099867349470802439283477411863969245789387059672830080168576327362819733570813688401640576157714482162029221385746763468867824195057845167909426891230761922285924163056035905171672666971561800826614906161326579420288413944764899313940138122692614212610049198100993952073043706984369129185263468691508794261429633541956954363748387125368517430772777816076090525793545594956599833060818512756080532214367578066458484149181236958324753279997945628293502480491899176754413275290436740037306553533090759336295020385875748136807435347320745081743883143747325983091195350249478821056325333464762249256178828329175612885935753048689520139859489789606613555694415832863351386514336046466906060119312766795682023304157173189717159946655276874448134202316851937222989171010659239957618518942938894828364396444628590437539405139135178974392743351894143313803101402213790920663015427888337528647031274302534821778337561083587296819375880878209577464880526099824685404579943394959912998651526809338728261262766935972653971612561003544804660722403670003532427755398434734888939407202067226174399244464918616555090395025634356030013555979209568833860007607773930138140368110254759184102833513335401531489441229209401223115660345049938228493443396977627662988479822615109337513895459495342214216245803449517859859457430001700209963758567590951310952854684435322520360766567024116247306341842619092082040932792130799060933227952251232013975559031569239071616392552458966647669067187271503044883407157564471346804412727040573215497998918618156812332347852961900556425240225794948181571819722489557371267526447851171373010045467804650662950560814859857536197893882234214955715573131544715550903601270622400387297043765872045706520828739389842555539006960303512194174178538200345423959470306212664410697278714158240306099097569302313731691910552417346041121806277898495523654000898647990827333551736590119103352271380769823125554187477488542802679570332155272445170078124978619172170035063896249891974159300209550124601131031443658950925403922803885320544502393173352384058115775919088111239712026721012399876034656820333830030619625749430979182179849188072114981563671142436284131999244259507851512939827941385852905928004636031307828619871023437692905880723630126305569282720152730056665278273364285699038849297211043742455517537633009873837933342614647194723626147326316311512773355695684827814386267517552388421999402915446697929710265938228821140949965581070221405100325085526807707871090444171862453617803860409045755063445963725211794321185181481612340747709622101233262067626191148780621603357743130045218799837743802714627202637701718241779747524209697321335504125377744268609656729197593066484190824076939465080579849292874858542257974165346226351784741662644238242760083746743973700159789501978382970815647006590301911265118362471326980001736020331811834698677042542643185201174108912702697922194995902447845986714808783375478183722078452686117869080522084919586194922416302311206555099861745370289765070497572552911950179587685672189838614569436681304485316661760513853496415690692102274540625572967537877906585683327914443039535492092010525652465462497122903102038872435653193171367998429345140176504112678069809361824867938508195888173481186296576865534911416183203026668638968145980756012837898863302310139306468604144510144796120621109018416690612853040066282284169139475655325001070067621496171071676413269387887732518841362955083999316593437590739507831520885128445494387062211947582142945219004237149054205772365701540121188569845289323765590711141447507789220389652676371969235173630479320565130542290029503176856836684532444846110045262673761461569028714853141148620725461116766276162416714293507019923446962586363896652159457237044048982608765483574143854335562189026082878902034532261693381747631706590299992247709816272474816440316369164218221834047579784267077949257775359099128919550526555675895535022075202606334727115778442457520304132397988526564924077353865130908815237882804188129494833725447955822373842189375110809228330260230134000085554160720941572424255965220821328181682169947569384715573068152123929322727051185207824568499855641901803156404636349256269262268214523591775019019326040726995890060694020870663161657349977247411792337258595463262935041250373827081562797001743077803100707130401109740120582608324758214403316867035460443070584997277423198966859241418963347441388313685340971828509719655060816761333034499742212528475177493788798930710420003724132471786422032490082150047539235436840300945015645673399485414640577792199399041067545557084548727304412974237859325745421601300627853710153462140246135370128825720313380042149157474334656663422943817742570701217041778843128014235443776260050544537074587873279794141467575925567482503607865237588104226117999803430709028815551351937285929727006381762453676522697988165285327554999556620605632789319251719547896397240442595158891726768729110130923657933839076474936401973061073493797465820032264095184025802063036732401536437881464778754281479998988094716680249487467243009230274948565241600960723616404477615821691200336786316497378189149928211997183949507331171695716757980879905133189921292527494847685192904671633947925371250596153610703571765843506834742387873521818062316574168062814278053500927022048035318706899759969712992351161870281938049204665265600680508341107179908922550977415440895733283026494078584771537856012922308543599159286930158420674146530851686383840444296202721565971189760132972509589306236367516923587701673280869946593156465542875176167225946585206949183993044242475779141596493576409868531071920956725095339021429755763560159710196497335207556286257326526479227802068854800640266566525935082078675307869924056924514996067976698256986619205180484814383837442783181712947003681949867519892274223323715026521462858466657328741862428245659443755904249239118795896696657159873810350463367540723275971556303211627486910591092965449839714205827161679364037925484739558611485372784403230381491658330987810546006860750413870821770611816183569918248249828896831362443137335478289117927670884849290549399374304220187432356991799887595972356641341731420232975520930351249038602865340203900394364596668565709795707697433880373419933476315679323695316540541213648241105230682719541330369093688418663784342754735388343801143893467749872376002004345110867281287537169906353070333617416191451824183502423513483303694128713398099828517700250539489444559571042388960667751313193137450105245968838735094477427348943778532692578937684894031702846406333474364378069577345383134217502134198533708670077071208043426435280526639977788301082645309322909740451946698920086644043251497250710506920266308920003075759077906284624396968270683160065886556968919539070869188895798552162319266694985632143904858886433589547499515792711998826429436736720127687684895116442653438399574942736562727636712795135561485207193925779364851268489665798475274600001885820012802208062928769884451907102613117619072645807081007734947535181018808591789164411267064460581931302577841867622737383284673193577284533448840985340240287282072460587084582678078073226996184453162300822554665348831704759813387034710311011915973329241370656795221656420490160693162392759823926825004547344803992460781086823924463986113129295176642468437092871966051883118482786680110097473495042920096997827908694597561388118986459667359293680229791337503790581594036291147845729263653113966628350766063021447407244349747350883875106104442363173927598932807400411456631659141501872881335706278927436551222999986574162743768194143281684211645240728845597088949086477390763015177703709519219141715029721405684630288239300466666014449763832418870427104154303947399346001214897081049833715069832267086829755734076270552131002028317628072676911798119111867998452368767839751099891740211144661623924369179168300311850348563134708663598624052332764458847557091848303179568272267163034622162007442732283330308760840901951113181934050572856094866480358853745884424209583168968418034259087144949777698707904791659495687342420579444927415111705333677493268213353023682161237461156807741205202134085640783691496172113704942205094026147443980536959377944077515774682215888101807060966087714530109009435648739901726081410822191761196934389203567099971727368757976236989472881740186725324372554302119722265820279986796835544137597686892428352067607056619663051986522046926893190759664334184583592038316886686386086928074210861047809333468198233221268140933445994792930278345697408824746418742054050438223481010823757856946359974901565189839543342869303906664335698064641021117261249797598274441456689639935318557997589654694592090376911800510411580066982726423271370330019647750785863606842814545676152630894281567976781080806453829354296815212162255415865292232461155047783856798455302062887222492503472503308255840938867652118368260017365055894733434253406155617947961793917576496690484769046218085814367531536487742081344409357403687160107564013578094274259880845529115686204785906200437723925559828958531048674656445210620919051930949955044334822259940173967457919706545094485752637672757483037016153371768911762869845311028180166573719956184917561808761528793079183227588887958313495375114834806390123601738083718583555680475955999835215137497700620577581025064687614771450392370286867055972016799536547586189227477548947249288460375588681796168681095614443204851351479881388941148114532694912472453284828414343105667738455899951332997079165315101748511027329694902079574305390436682269347092176240628594784565850279462341637330900580741708381457693392518995938605090917787334020304479816530658377075722302069348323581962830831364002497102127614559450129332708892256793594009759753862934298249530851285584000319969446139128465103405284658816496358160993738901483760807256991022438110491781743306718775130848185203628076217984584002801472048165851089515305197014285749417527239278750578804991041099035915399018615613037686712774444386756229424783878483567805819929478291823070865763447530999752999950301884026616555381878026224515958844597614583655588576868181393011979621654035121759657607293016756870001524118489411179788765606535683624579096439531117536626318239811948268274388283542018439575621764264856978713450706742317649508662755691605424218003814926908595385040463304016083857975523248836278689495620081729325263341501150417638870948756289119455670772277196159418607865523635419210408484450549547148854030053918512843542206392632978066362215102839140243054183211055348437737737528974992118936867150926687475236712539852204844114010368212618440225497919374239050865921916551732972578748290027277036453511392765182461889345656932477501963782885252706249883346017300034595536444668730483245044749513881571296073038325137760289608984445765603092279313026453678987106922674142804243874782674614969119151147792716489921938830552584612842950512685778108146202021986417340145475364621828864576927074475752812974794875283999010374243836525053776393189330035465553775776619246190619479711071791706202084730323168293502676742055830648227779065267426419169835653420360686613757611076927915571049250356877733870964252533578352276866626290604605025886528563556991539729706477358489508481638973799914013135367962867971412236410666674857744299009575034154129419282968764173960100498940637074950202865114295347598565602008155888928009399125682140606067017992533866584959665373114095937202922131179123490166889992892579677465891424241879020466899074427664263904750756202673333598219804952489163473573819528276249253998126873443739564302654455334517989440766421676322452196256049560725726722402726140387257213318480034374712585677250932941757808623797075365276107350236010046433693978787056507058764138728828667937769745279409229344206498765688164291494877745038189361236680339005783251578718676138357636065780947621765664368448644182415120644509777753945251441779170495979314371470042138533930285074816404556262475378482654061536492942298943206784675592275713133471119460171436461443267458061431993519545706636410387118319426079078892051783363773564712222911025710896961166125251648446526311576011649641169538087889197032936857525028260230316009118537574898678071988052748189189771428988727026520924871566032346090450037326724903651525600961304544556109676046579307409012125918438000640899808784136689733704832949805972231687139565655875333692867146951622534161706072593215705159519798948306347590061749313130592798020349226644676721403709221822097205998855258813976285046929306271165498370876086789546987226584030990503798149548015378555888445042107434116666211183635083690535655433410327834919577889156891600290776232269712742530985506170180298613267270756987198713616486037012307410069754733887405896368227466288539125675418651761569922312084152697116969315762220054541981441005967365814909780131977095564182180025872770547220981774081741861004717214991132059123213922106910838788854712084046842146425843199296896255658323226269737017641729866283907278364560654926652968884814096429430370882507054617013396068646903342544448097954508531651044721794556706998305110167359812034857828089997118096456834323635266812892392261389704079920983117011217987911495898273957303665528870825749507401776108313518476052526414109661091220448474597326753661565681258939815822890382710235617437486064237832061616433255981559207604762734284148310871080413557112315186282765359732628503594099025253697390568127709044240089125797759021172699028883168699991492437727151478663410176569828326799260690252264973572387483812271887399137777596670109094079378150026141607803090993888722964761421058582361738900548131386323906972622381043174456802898881667887819536660575940361996065494097719217480919090176654503633676514661800611679526095589918693177046863741318323053477906640007585975961354310547862096472640594742945582905123578485820382727977571194482545465326083386651053319855152837164099567729687205893164940103220285131138903042807038632692648064447841486949151665676659416280757210290050993082696323798285432938365307109273952323463027077615841857188431305719759849325026587241546461447106394686898365367749837516199761915830800985226359405881621211549445085895471738216910244557653161184480972663222397886495173130350740104828815320788306739007629409447768275793323034906764779717401283924981788182098089582931811389233948499959794899948951237518615479286853400803176908665012241539855139132446861934572080552675203862199505146051354918656439424292662860400048010472806610986400359892913222247624182575802266086475089824275120442280455911586562964194130150120438073150648473300534678673697957925905725328249644568774647913235057017200067415987801032563963726728904791029585475122167062545550733172019436692001486545487767754327520472297124487270876676380674773941891234386976321576729692095789987882245952496584173034521782915352199965945956995081814170398064151881771019725760250123789025293022386305810890248001699837513033568738586095349692503670056758661115179245587792129180218395160595945730974544479813232036435437444939171251611842665486318379293311214008513890783957788258993880970369404103677601516945496863116952987602343432226515819813432720193047853627660078394518797195239115358117882509836761141823496189624377308145007822589600831916086369284454927136453675219963716843765214200262686707202244612037126867654545390036756146183402965012278418937717416214169818569101940841889853398481887072502073826485038723880154756794136832109097619284152387815387602380153147360630347457932634736390861510217647486742072344363286065866871655297469865281994609048284185069164585745512180151353199919743610243495890876416236353566177068388442931674007238664154087888652806645891588329258380365932771647674691461675229870685464883548676444046104208942765177042761170254800241507709699213226869292948817816438144347985625657208757990146904896347923099326649748152053415329588832554138516115622632655805393736364616899398433829704472674480691717550209998381791149230193051057828496938606775061264748561181434455861927893556184166302825384141533554781525103592550975736600844383783694933801589675090982061824809458514953361309745000827264180448448098627102276508465573032995394242482307798202278363899643682163814899872116442233223980596345340140777613830193004557821427076509693721428387364098674981608912843878648341458009557257208742419097476330868618035502727208422932079208118809205270302852541832295358776360829628597310886619421143032677087082617858627399597765713193925050427875531757448732425602518002066433360248515311198922346377709440952204808634790341633253015657224146437737548122530608536322376742105683943434240004216332911935777758243306755835457792881172935712543754685128583437965312313287014609484948131758936987326803470484057474935466477179678723778824656120010618940908408183591320076402991597131251756355913299170670121632676127119900483556610806333081025731796682453102004904474669763330579714959172877903531457893830406802563662679187112636126325560793925788739235511842221639484705266778960079661461563085570956552470808690938451479218425559136002516432490505777870737637760668349999295472864472777440305498500002055294587129898018822624952890505570772264076776353373522556300317754509619077448975179097553005385770601678739095136278599990472630840467793720291227628074026935631080871409136943349153338828756913518812084679716465432222759820388955009011819062152246923410346050355638019201445466229545633392483116467326233377404845998251655901644682699417092197005014487027075311039675001132842279544432257991565125286898778967108870564696951335006632240442861581263942926262418247059117487785499743670462695118432602486211706640033850819003127986749929744933658791083234761138631762647203528188848192970447306711989773773908542158399142820246267068234303943311287945525713637722705370833525030709828304454023319075877661507615693107739194812759131000559246009442030979945830015189704560699712708552601784612471740861528940604233052553680179906478216122361661323525065824206374332439752423203734459695537842361747212686502780744085409429290669347882113468038547726538203640580477268026307993838650714894474067388648170055334640071412435028466188357714070375815248560666549501050575948858612660937444685422699814727812554010719846657712861547349916383003230460404778384911381432859295928462099341529000246420259191943217825564293684214166497799887357604754892565746958709751687031557604822451828138185576210066992924966250865437752635376598450668458340554175284138649182202382211793489090454282858469344377769181502292370638034985140784703949470392766796321990219239338622749038704301304863579257329729122472941005306117245426283988670670088372928512185302667607624490840452097584621001993479165090650366088210647673585194927448745402853562806747039231897809902574262228090990221549337798185238598634816904337883007333414963321269789072021584926507597532482702240547555747876085659414144412971439191162862051162255603312436376521417547482064803965478281989820232382338712317026872880176645182958722122118227174813975086439355247648035479179736361436085481784023070102990395351849906891744619276626180295927327967944469626813524201514131333895552140846111911716509571376009351041391818440702470148513692801619667370159597821992682469733715500470867834911721201116069561238477731675561002929214060877748471731588067838353507184482182354288680552441684761713538381287867352846339588952627381980598836498318576823921380165259919304834114174353593560527304765043055553727160503142437603204214517334284400086002884366051408973931997006427151237758129042393101007288539785458116683650953805472149769386943598525004684327030647296108350055585147481708147767699424774986647984227743379615999498906342375486738495735799371143271888277354774299011944641385570259187406225323254135925246874963698826122947868056442365885754895349552691493485509803915738831303509783077619462772452639744365071731055094656234145804383119808511826754227467300071705844144737033310605932918950462601288841248664542287948572232653670208320101469150229033562257134574635529492582528148884969409043630372108246374819255574947281159418743952944634108864987204269373612568965889338100754335466864125798626261579279548118438991397283127715610055843785418331074260210194963222651358896558450431822024104611052824470276053761960006887847140552467474910245290532264126610498209430338160955634734494744461706490456554871431854113198168642912123675082515993807701364157399383775261798230334035869049253430098720923558116454111674140943623801503101027166377506805242340593198074554714384704246804611923265428515663736538673572217711078173251065008049720820668316482143664660936508752939102691217831034802145770139827511578661430785044768122736103469447276582551711299190294204591994096640056078732027540795562736960135238566648776312041771622429068472851102264464519669500835451357056479146826255166323471559687696323399620764162164894242377301917442180264968464025557360010197090744685554464093024286295845150736690863725555704866798352034132786881525727260883717883439115511940374259746640094766937469131680345603118552409876152484924909550033245278876510932515932357269453300454973066701606015295111392126820513722704257849136724720251085844260995975091836430665773538281013114734146161029850505513372402754283006422655427036820993946804758180402383800907465464246001046342503189733504834869062765574369892651055275088884219266191890632730306091245462657643031643781647364612154258360475470291000454078320561744019360140690496397721727471149763679637268385544055110923082567674402194397363652695800528412590929204924363791514355486662039946910956847770571601925123613816841324238250470971909948703547602193301913235534727925187992340528660112716794890861771742862882291427257674324298500132951069171343254126306489823068091643992634881083604985579893720921719929592947297171309051518673250143064727858660372574161010598666720488369661544243811496887434464745957774559728281619208788975498493150919362200727429486925395817395950387831518103290548782029831330983701003422442731705097817830639885208443695137445073176928524758640397279821394325352590587086198459312914461969281876290985252212326111127234682039170187598899936176893589362728016160543800760230228628744042724846008466790121706494642007407772060332701672991297489991229492227990140434411130510540831486065376088675107597269780821449984049458470553356110541266529411961096719040225269588744936373882075778741039508726314631303561131587922944823838618247244271802113859130056969932468038705806767089390013445322204385457079856601758271217477206458230122304630810738019059446327083465000928804557347925621889137887276570376789731295509394017971758524343676884685705912159085673692939767926792125876140634979547652404502334437209537828269903580317604771732352378240196641572471002678054311736645110192783279850046325448107312113965873080118568183743483192528534999903051694037428142180516183085024117853462715386441827306797307921948846663287245186833733843662183707801541063662266144691540971428264282155932163901677090912529377130884602816098407320224735182584358728592857352284105851534584119864155163063253238950048510753281688154198555406509908370601568334177593192829687259632699473799750932589380974116314173131069835904152451364977030872693301654072273684548686156796966548749079014154674580120580952247826966355366888595889888850465018931930932825068107022074822913898790162340918363516525022166062414417143585226071753457197640729671397599141618353735139526253180873170902593073394095195329795927526443134264063622762838874725942836243471624891212040576352053923365869395135931743978006173103700587441884127585452491484659206482714226837879839328092388921870090221573265606537118564501385445554948585087397241589427845255779381736529519787688121312992073292480516612677521140833149781458718228066971722720980178894715588274032333809647644071107497050651550179174822710424317686880849063798035423513025356766541339396975039306144101579142193164307937781474675601583033678408188666016496940784486115032387570327503351193493558986973553762263115108177441775261281419694915579830430242400486186799712514757153031728294031464036760787129988246981813605606183015843866004766495715150808288937901308806528784446937061662083149928359194184801783211567865538553883527053719610177115688833099474408710079011596554062679817331711457447101528903732910835939194169720005267552630870555572695266930119975433757246948823693666389121124363683703228078070442364662552804721966757272315216681971112156248106719108413028363286201893178788526466635872134316470940895260592571389357780743989365956195351750308123419873422628719641389234097691150801461253663764961318319435101098264000306196156659762991537475441476789058059052187278481799096375712194895025397603222660904272134709682125820267884408268617014578758471139173239962931868760325239328050112580670820439979069481061653993942341208439647495667822609628393242694308701106131125871546699343152212872260813403875865678823880054444961794683759284737181505825351357351961352627476507474751758757232388520951541569836216038310867605643066143594840686608311176343848474059169687062265815311071979841337922201872274991328831412538268181935767243616941009185378045114165595936936382802974622460593706731404315211082613711360180278724974653719257733727502410980904163715286149263785895344761466120149300348128103033431290013750304272023885099818809350281749435033136864372069031724140824118824998818291959932174428425326714850919915444143551573938208304099320511265983967862164792629744521840944610826575718079043423212896901900176610660521686744211878800971731464242372634111980725168258449144946767312668617951680724170465407779592739063735185018696047194342741511927581829212857861591916206345569799597404141478188390841769819731604750751236294241899164798941117984583337936143454935775242212521458459072161170820812473649118054401061416903766213552435778882289243036488914890635924105439472337741392319502830317016574858654723198400222613290555376176473422983982652015830690808995514170177700811099269350327510473728019600501495033471301271534589493452971387876415032045384187937397970232883461648140692653516125111003526952727511951108677980040072312541107560575656204898247758224531933345272306249201669564098967112154190123475410689562855535288712846839164014689042741259621301126502154273275706396964997188253259411907772579331864160506659675991755337488994236713856085804573489891515606718409108136675073250708624153494766023679396250260752101773546710813550895139967324918857983609729159952533841757785741155951288598245813871233991159677429041981012449279788506011865215836229019962464797970759725805702420763699743066936841043013310819410542700451280622247650780578896476236371147960954450821490226072288452669495386154144871354076203432195095165615275542215228081095286809441274761970428887773454354533259702086996590998144552844275958986708117685827091061050363702982483242546171320647151304851726529751997131298933164137722152936491030168538039888900084058144151693800551216442640658917604032588758893918901503478855879701178052774974893427537288938546495932201351995404967411336683474881656087316632961936117962841379313597073522747312162955344064827191375490314350049880206344164877085589960125248948945256767118458957971611420592169212235403693841608502747368651361690863423342559668702051778127126908716172899648513598015161309233238672770998981153012725309431361987511210010310659916706493029687618941244968929717224092460578302719805374435005486632595681650052694866509948888207506643748205498790413127394263691731246816978317604448105911384793394025330365548831397501029615295987771555521866249356040898359644845499882618616881633416441100123746948373391602533031723033905024232688664205393094739381739986319087151982254687313179074289830374142431816279087816332342154706369879983350002683407133710719836051480821870530020163802785951275522084666007601213687387655343409043597965105749746299633222117672262786966340772767068051009588697556151167125088852530351773868209891781678031625464107482305700895387658761415521617552453883099579374268249463714740795509002604890069343838803546874248404823327607536032697878654577917708173224536434092443235601797128014854366738051357037147615814706698418718780253040127350064552428685823224959850204211536085491861007756126843130251861859387430185175939453674178897229690540573005182096179327184095539377659226655410263335793396361990231945715449590025029897009130993332287361909264802782401400212543175283048533275820445400995649995040147241133719114475915023154074335159964001407178799289806560439699935383656882095845196587730959959012851172350469765006477263524080105458097006708962030072502677744887210748728006795976082073372486359542858087771038662392932347938216106872332844697682458607916496119770634801472004746797713916993781007311226356468010655994605003980235173237576030935541184436772250760741898808919637347604624111790145931541509544821194209548760241194914797601858451362038875543945155725305047185325141796802832539461053404393552696252504795788753524553790186216919174335502107293985498144590603490676712928160117222360009642175785273911234315730002657721427290581579651519971623682023790611239772952143853226148102638571553438539761575289658973989106434156061511304925981420098556863911877486018899766204999328031702570118220143568392057759619234192182234506192172994871013918320953832207607814313800512913724907430841875274941993904184838525284261068461909124426769969827877315002237625484268658756798328357236190878016590386435369039628311872695238535808361339152736057627070327259865172417088062642667282100532221337688121926053243664190225189977462451710480665804210412614407674639478237726334036244538353504732784759228422652569862946684540521671973832476139734959837024775029835207892645455881515046264773308755397166178953693907951238972226495158813069861458200328926218809286518087513826999205537236714492054769746177992913321530029903361321525226387918612569020223882670455169025182821439088752119532154195020839985582871015849104225958802395086215748587084661217735965454920369605833718718832960872796826760040005504691931105634752991545333441806911524578978596011340091581235517356208171840560724954363977537304255663746337986069344382569399312232373121409403631302563287590302980203205185905003300701722133353224001743508610980257897009708607237149574157146080690036905404659554048367275301823648690582169458130254935740801186098564435429437515153122976013529223012969391222940408982047333265818660467360154023242603248750764886223079295110095885319396655345291445554649317263125110729906886322592079182948748411377288780022780938372878245140454060130850937792941388738513773343143988495454405308249631460413616127703093258078617475240245831897845549945529702453612232840866752813249306838224550910331212012880305785741299986296046284502141102765710249087434911354953802056844477069397834354632758393997505427648359940326316557262446667680376721206079708673064043571940004748050667974425027398004608069279295482873086748852569300990439938711583625158352013665996608484626773397816286100066336976529741009628790003923585218046708427986708285865711557331559836817503381367559556496167362618896309206178922090205630438475153378835967456235637357713296832049403517845383951547117258350785646004760459846719756212699584247331360876196968452371313948238675637295564241307408676571779497754196646837590165326749929333834359862817889653508559444691628325676382925094147655887735940740762063807416023795216651365860685085920625048338878933842876921708657593513698321378014243021481656200931179181814029116959732327199458392206746044393734147372406998952898013425914165861448946960388781514805828393991239910271197081533097630066832691213283484897695139127458081698069694640250975395805096880085194175436682070722225919244632797990838284023931765285622335980437410092415733962322627320606969454850708686122937601769140635563248500214810091115564967751917363952874811550701944811389145984131891059179888320988442135509268333430072555887748861807617816454038957108057282408711615121806752156501713270160688430025494890444728192225542482900312115497182833829548195979599138769339842817417269156682432398120534599522867391493732725641829419523037300661046957567639049095608413530038443606129801038323455244606561118128660672698154038830950181205416459994541598852934433799343428565536541792727443709854763622494867380340224437767097397070370209552874567515762703531804843780925008880991433476602060788379548736110903571316100910430323029233025032161468623890057035602561698560055618708655486223658812412825758197708084206321561952837157854749244295378037061779237863597187419883488801294596739961534406091253083783797812442338495744942726571582001198084700640196395067413923632054513869616204156771920019860126486142618482092092792572300783621265923521188895973613262949062708674621188190962390175689263601457925829617034206468362616395333887616741772072438254868705011829970245671060761740415214989723168420730561191952795581085081586141604917339882461793276695642428200927254172238120238037299652739919835713024091013636174740935313136083880347907690678168569686723568700923325987881615556639848799279056658241415153429378180249536922350911407556046206519561767482132780093287857821386721930065488110031501599712519491523873894323030749023640951896178196488273281450319294492501162602551111489621134580294793965488127482231649434674353232124057384716310545993131885068118079883161573927010734107496167848063324486292240025651503708495866441609945496266689671521134626759017126833210383591189207108307003863077715676418889101263528807432309804061165577774602982703801032224392989609988591248735759054071543834701912126022880306875948779696356356713731230401154496455730734879784609656730023864759987749129273357147804871690572110691779745605841260987416463381272401220489687006383716428273877692080402728164863084043888886273131707831225652968105668182270992003308778555407521378582328456000464970044339101498774128056389784908353522847589864895561805244622141911268893843845538225759009508820644385348433387998069651984995298419733855919116756734757476899759927884071942112115034632049998240323897736085702668330867067937732768512671705588487973963082572306270765805807247176584023538888526859780122740226078628564584014521256450776778091340144637291101645904413473789351978161539935585677779420315481101896242450690229105154444837658739617993624724682544677539404865140052204841156716886828836697759509206319396021562690455270917515982604159616436744814278501388933020994430952029613465042791997611231474906163958064957748836412771477848011661022897861082785416215098777912449918390543364859100146320252403759928686640523014236373539898342631014783023397723646328885374655185520069871999735334476587814529543085462942951441568189110385527630581835688882641837797449812619710084088500607380276255971636485785354764664561887932486175537242341102501025945958020028022371795153112361025610580060169349814392109708014931561920466291318145206868686314331323944754672856987842945117135557299927533130729438417415910666508054191416019856485853640512127629533612656091197234479106291317596277046881886220757727275067948716891941340069394057565793229642247471497255518094808289678846623571524363191426171474363633863442233748105475034552758108137226294572166789369918041614483255437676720990549552798346777116925705400196319444328815259691583299742570714311341534551438051938538296173557690525168499425765584521378876789782564451533663165637241426826966162221964285453910390159813785225741491002122520948381743134140688018842041775788232668322201572907567028508629568345853073231369446713749196415826922790844113195994511259663298154684422702107725864034017760303559040082105280872090390520184033208567769688297535780855170588871392260935669922361705201480498849557300156177801587012697099815064304099606826629302008672858578865010255164707053400690160243862081149113358819421610456437508424701851008750867975821458595398019921177841135574802551243037181535815869627528469989157455462427298467920232931576989810308819317030979085874738832979191882100810721471956870652936393322660978985181198413668739212819352961576408292273395344198650277701592326828497365081110460148092668576868164635020094568326079578958047225595180548035136614735901761223690798042836496594410960625003408572646147990991017226754565171395310502411078973599773807298109482585753807998548714983081245413754294495372903271892753605887946482679324935726272456785644070027096856708687291012014106039538879303397000720634759519987567550281082593595701587324390527987589706666263961069145502270344454872529121468688472350690167603620476498038228429621587063329161681073421418174632425798828130701715735372243712968645639821713035331519271387999946105852507038690378852334141595574571861531203281192735325527966129552226777445319319537584706041461574889782488644293728550538448661465463632741225064993966915198412905146119126022826615627573455114960631498262343997301987050316487532446761658619556612196286013303573008322622999020098377794155347090052181751712749792635365613256550759762500165223536773368011215928901836924877228864279793851014063129787993947662981419324291486853139149248836458106798226836628420790738011546547069282430265863958595150730935662075239653162422790334935504592284323097475057762395243578583552558668952734276593151638480773219262101498168243033405597983206131349639847934574877305084873933026777483119417360151844923441649762745211437518816161461673861757435355895521022111614024687959608452364093017402976566537386469174299278679658982917514785580960323336045658981793297887834438473171792211406301382105314811288810759163727775142280859877127497602220129545510686693451419267251530300129226582288431701706401645333514843381152260219181647287478192719100175356165571797375885923270784813228358045095715390704269838375607792164325127480131500180277907505315621505007602241586300957187465651730597233915292631277111891396934491278967707845874491830686494486756381584458875750139992280594526135468241431373733063971638158421469037246711205393190458870643785829882306935909783392768245643807018012085889482055209182518819976567184801317429477981899332346242228720140346319597597138568942266031070795750659278987848720488782016635929055024267343733759449084060272769019063226301498670822039708990799933846904551883968658971262736840964065441344850898033748556081970729919653500325323677915863583981891660580218586991944660955264190609395339713854069570555664391265066399774791353441424975315832834373571950462569120245322460631474731872160743371376807596160827322694221185397988213452579167799870404027145552954535065603789510612789397773162822974103386469161354000521370435900155565949862926374471938265906954765627447672477308386859376682208253591741940856024150862611397728522255657475041796780109127627472734943492624336129351423007864614072822524260315036293174999688764309290667349313979233763505406247677283566371064635370824945886684405455863426852060289594618110157188447392480054589105717974039112923514833097598538992611951687275772107705989881875673689286739873878237245361345324423167557667458104961885277822176087084045841867318806724976738649148319089127863633311855572245502077999477922957112921463339495509977653818686979636589271638320146683158246054513378012741254579611447598731834679569377495157606457646349138153756961654730685258445542330011134736285855059713067821035526288266187587427132437853197778851727762765160170874869058837740527722701187762990533155833683336898271207466520630620694778804288140765383703193063381080650668136307694364863805790884356710814826845523863724627735814482149551650964126924713635444369852215568030253277884734338927538885445211742575337279758116045753611120946546703166745240488850012991306871690029393151636329324090114729566719478201336328477878986040490664520379783469190139273309201151032621852297798927010460792792962203626310686244575041938851376462203440599547476498202332940917752125361842078871038324477200459763814126613864289906468157282024418161807414995606926371862681902166027247071530813918763081442915261392188431229536247303064207333535916702621871629938341671419103200691921243105527620537568299638502566053679719534401300076795410907983895554360095704592555963630216209697800258787641236453677471168148189797022540771801956227942725883837689741177949134831230988832488815149002990220722504474455266150490348527954093182232164126587588618975278490781746455318002222058690286713406000416586224041747724107626032116782080969099652036980074802637310955364015420461195348291142180186204551281308373955169946696214846692527379324035905400944531292127199250463927008210985408334936735771394966521056725989393043425202040754382416677224874572751409431302511908674968288123851832115491309430996863898083092864141770981309355597557323660800403759680234268081817170447304149236722167459000187458637823734488270721102165713096492114930665296875530085800182754221679961713066220909982778548917249807056798807803370976307856428689246502186678940234575324126375835724136387755534012113848636897545443786396953792295107378781898437665873883222398507687670250254255349315004568146248039691473504431373782544930298794163862668818046888979266864797791395298286327161947373512564082431028319698908858517778175666808509731048960165121396948685170706468187225015024748870088019749280034435841088179662164791931079697427792459692019808012796356881599834545310265073760140819312366674028019425835493690923882603294222381634655236633138800895034884211933557137579276443443492979269665417865200176845225852635040268950693121901881677909392404352352359913256692994824555357639831315869792329476749268364913212045361518362556612332797253022111612741831675457039010658670628677422584758329359093035470787244359375918003435958546837149178555391133800594081947000685220357775096547193968170771801436829404992872684751338572920089695998871046394253390630216573552748267788538934705393482266002983655742648905846401862687047173093608237143800583273920116297344691800198545733948692270112022973411609088149354379247913640234736759396018032753424151912574249633239793520350751566809586625315291672693452188872750530992011606527498947031450306376830178939501446670353934928030089481607107077517709494726322622380029241901912762714919490628913016187506843468678246133924681196501926304246104274711799125811024137694419639273488789440657198246303705325299315221270840757678028791553226561227239679932975826742743579941635195294131058179396045211731655777865789788580169127407243383838270672454123146566025357522228539651110938324142521324666961891583187883960956748567599978755014029651677525100281862495339811067757031139111233983021743912334898642548959883257557931032887242375863141763665573130838568895205251386690405103492855152065191437222247735447497259369700964444200962430320435760702692961897861926306446768985346520329809292914924654165220084744107106123317068434501156900335169815298990277880953957701949274826818699420503046449553545189813390551413486012287785869572140709692007668214778331035828220134761832986764886656267927039960942526461445598120347381520646456617846646917825890559364409172094643201171076588398990592403326825447541738021556737101498269867651583910328087704042631096664509103100881158825260545981623559841528021407496141732894363682661955188919204832588295294471541434297127321062362827388904655473450793566227108503440583418491476915324706364960517684961147595299386397447468305550568836774157657255418546591205708949297654211397064354153514498033363107093616630051963126153863780445486875840680965793531955092042696300773298444651174608213864933034996817525444798170538774388065364579661899610946466408040270376992640861119611025476414129174898053176497900544139401043682877263528601579353537530670574363434522768256597955032386818630847969367088828504662774834791610782479611328037126340807803907987411049953792931974499243863021125167586923266466013909343657797487720325469662199430735918835496756929190076615372428500173567382500781968603522121059127537422412190499782231055539351425503497001936547734959979649094489006926763903036184867257054697744602017751370625681991675549895013330761084368153264485259810570190056209618532109942810797629551374035170760696795136937800210642878181059829811083527933721918134997367972859215815094747251783557754929355939319971176674705752864625690394246954221883794624188769248030161365492120627439523399228786973757874620531437422275688115266944017280692885252438209522385709202043714736097398144464628587062954842068282933643600289756750778055659865242300061769217184224226610277403350990034316450298558533861748707665719819030902774930563361367495137308214321695553590083129907638514185896297160007396780076971918187089463760214703365845573104510777447637397514342755152473438573757476551237810066409184326408644217308474350398035871873789982514667698205415331907938892576440763774406819080007613250772333124230551925135314588330432898941330717172743194930350078352957654312431188248222011256789165588337300835791572608746536628077552066194418309017483423059123588264968536887575729235520406172531145703627321946602600752813085365430453548050224644917745460014491399660039095428192689615629713433763941727742040339078625066517301916988273809884285258376550295920218405131638257437737307728250139542581848905776807822614991355090091677138700419351423112604482636114707905547828606486419041713478788307055215649775880760611157137099357968697759110291702485033063753884744332342144737882193953076185918596081884232208448386928141612870989903446098735197625207640186853103697939184467561075443030230070164934428202775370274993776464813050059453584963455955181402051170068428603059989068435625392271856897387516568354280145283597383001735344968236671335123908155383751864955402551847925230129463666966496288174437554673779830044114723861458867598902315101658948964747260318063497926448561773862165762576381145389581962414848646965373392963864926263784948452015351071961827878361234532960412729418380878201316688876822589211277472277673829449666110968677425285717901584883359472923616736175352505173512714016390260237735309379006280490937401984021567938282128434762184063653601270484093845968115574662291321266904864358413369333733832217216477773583754653730752619842597329314714191058720315222237018814696815607839191565908831501221536254257307592588050291106779892728463944354300531209772293283403282880588515528598790102113998853587627908767690051040612133435538337176007153383299591370099097424122464790582358100519517727849417758158686178417001829121233204035859258674541445250378197334130778319841953490771885466430854254455704235477565683975457064066973682013005962186589321363571834430529084825555684552195207406390249423181005838603978116235217812139554749187079844594631718212354173499227560171394484871389420314214132843177927298590841350741365219889325721083770378485662788357896959960452155237498836395518341801334461318687501463362441186922973786184446752465245153267498987246733228603454430923704764584860236273821408253566158145354034741938327255135418865017317032427344445660226003348252895848883614149317572032305264822490932383181281461727148065191304535821645852647819130680077251042162350414696707402699741083346992359643187998977261691792294310667589765279118403969062962144650140675187070053260118957994756831493832355268533407102967234684035027603147696520783893824574388333516465871492813813955542260867562872963539044225471834777396306313217198497181971552021163600794308711862935748794719042207171887671664596389708828536944832605804849442756932962039470162024764383922413768748289562280569702343154289126782331103871647746992208299172243875402368585403004628312136667447265215891723602086645983680423668032871610435575077579978834810948497885391159565370196239975639870869868955790968766223731961790160412577669758319761386220781937465290707090496997379559521029537468841111423450413348804854555443601819050892863594162330175185026799726530294638621803413173285781551025973836656805129426507666397460279069423002659874819153659016240334364797994069043946878872396691048714157687027372733555253691737468832366270667509837188998140875188586511824107203261360422824701886282251517578780379836689677792145528637142407193022495205767363401952305385363312774297179218487943067397949147945341592978762504691810675640527635305437757439571340450621839652995749858377189412267221226749991628398835009765100748736089445156083454829067494573953791271123494377878436672775852034361543476246074199717353532403066779170490943203444369602558570011898138225446510400764170662022102877680696556073612212928151910927561493316393069741015430329264475658088303466456624971823732147541230285571692053504705855894440221617823102683980803285122952828347844457825888083665784803694291205521109483983633679730364313652334328605456432809067150625887843816309563096612398852227636770192977755867606067404572807142324652038689348715916620548517593558481761657571024712058849255773076052822308401640028666335546167128849196577968833495171608390298293691311567901687198077198601553047330092023282028570918510257901501834902719499593505295512047532810586605079955099787602403526432898787068706285276909302700876238989355045261334363648952645892177407401779521512125453176552872804466067676856190850474934916213130541732595539624620164086511282665140792538694503430222074024671454679611722374905755493378772444440871744563678861052704325314319636526837598123292149999680058193709968739906846334172903496279901138796120061843376158579374716659485728463724753196984781954064036841214430153723740471383201385375835480592185706313566056147701299823759717926581573558741435607455218411894486022451730478719027045709250979798303470857404306569888167598905584583376067508752117256245433662708260821578820647873048409973386290999399216969904219013128717110299060027832426863382489596414262507152215387861894367528109961938848404459987236598974305140614989580129776397241008242242188236110148661426450529492328185779659265634279458305064745679204279121943261719188129711401739238615512824054234530995417140635392754502907032149400150122442777766608656070701007397324883677228260543373352028351887072637357991051009130833270403951267773730601833688677512731954257973137422744497713665462805252511229766123645000370879550389513621433482765610314959617532552267053004303304827661026067242383724983782454240880033293951722769820677485405118308396623410578785079470201794759939345409068819433862013452515529615570208188955764179502171057269020627384639812439689476712978239343686722702589932758261808485879960687235723474646436703984912017921212992693849679920967722878702081706784447262942583355655369168374561493949695662530842134394314894916963276427254252684664548543666223615476118392090240337447117382816905107881624400520977437553495529494673304403582188914399349532716761645470775585298122641607438078294837209845556790382879774523562713230150076173199940902249531301874862444534937324488331533953522610425884567651061008625618653979290379285220808229928588396802048013716255914487079613479385796647288152155809554699286790222882047064063530512574598397746946033242131037929830038715713270410886638296144323638009784880472685677786018652829701864823179797377692716349088381127997840268757573432743883433747622540539710813473986070402203567980662046877066938024966408526418407667533153631445658661348090940958207861603803607714209279576621191552357270165038467406176767471054366054413201921102843975580304097423935576247281964396138081085088251788073724739597872407210503618199883940629183344809612110527711637121413200203485841830132685842123421446060695121008803342292072179148304461334052827556448350673690647345768936160948810042091502923383148698906513456812343685880369715889211623757069317669129141748364141236601867118928729135734393268917336006872764921403699281366842377835427345697566870821233779945552926722340399106830265299198545042459042621197516759230836115530968294315760577685932473347543215842686529578056858722181435617886195567783243885463741638998824280758681448340363102553307846000456777756825849314327056029763285637567028590528497298057414172945087599202808254355087395122605117783298414839479770124908686042400624574327598761957574328890555418044648573053180190974607537336707222309534134349985854487932653674877129929177407266898560059317163043066648809652743392794042622032496568128727295857447131554896949009593006701310884130386769568530434380323558038388350927715436194565172141529678824487311680075125668279338884324843591069377798444998540472032407731110380416332544264049958115948488557706728848860219246305766437193734715890172360103970497691998015846650226765758073259774713639052839773656620512778401675879984009935468755220442155085988789869968103587604874242726824479858714532341044681368028311323418406535319859181077214883373380939366269138174501381642551868460639991726383916356046476699119413445946348655431766742987661392328237715685927040413042434369875946248447818411508023438626103322536612553299178673304197554742112376131115205711705287688830547277661263329313063553310788325452586077237467681895903857737215795184348357438530290320503679210691725772320404518710364009510408385120425301330073225647897592233465373285121779173642061013897996459358339597202849424969299457177214357059758991625876654847696814995113975213278625661493842066227729025694913161257715158401019868161758182028431923767112708134104632910818305695392191852866257663216391812282754918226798240842738298548798020779180307750169222179985218935194300543452726846500430982399038842084267521491405728986843383914657805507275387723101542879764379679314347908201212244447677585902181074369322515159883326771796933960789362162552630857480918082517556445537740447594038778124440587270126719283698309154412441105512349220582144845659643168714614096352859854627969753848849902976616535147375357727937056963226669045027734709833203198198663147854696953869763267407278684104056172728608751429237312883999834588730203096718262357237485012383994487140173773079248832014100506229229506254996297144985279744634120497123310663513188835968800159192966098419781200227385260388209115807545197846949255754379183705971080831023685739193464003298419332562171149841895444782296076879674062952284839476578853332143863544664430404992208200180605834538197487617008121177901809391585260498120414524978902154164052898485848632998421552050401993851860595280074327864857111482701702001465681777381195876650863986989870822850904143548031247772786307207512968006304906803506442349575172918810062006249060368396711878071193732054062450352271803003830493491105720777367580015731406905781326178667843274309515653592672675303053418505933470298726833355286631925062635686164826900151991492752671965121482676135329798726492547443797541297054990983639379285014764716665819492052026994854475192527770507304755351463637019805566796475401758314152826784450169228040161644763584972980331628221880338962612560495700183518226776613332966881510602764291192605767119541849009085317931681060075970407055526592888415545953976951988431215491790443653936442637926949660509796417714968976111583672480288603597387905392504756054461442478519588763925415820894883371600665138132550713544737048611513763694094979087764172186206685126178979870637808515461941933124505415270525340722718058993197151431913648902302072779075783827306301142412862644981334713819375798523272126712494296399496853702339965768333864130617507618072589795760326204554406577551770876529212326125293694060170892361643861220076990239624537066320468184042705777923605427781215677468968393659033262039379459098651696182480805557814826881568533819958815772929711359794499489452333602440756252426647118142056183198238106646632041154913913622428556737830360695169162986133995329279133758233520281791346308434910918603306944673193741908138884550776516079927747278500032103973653885563595402742757765952547143498074172761069733826001448591188138900597078772184759878266988041696648036094477319106503402116186109981833264215730239845291299709903319933333095840615852031835215829254951996523807753478052966089709438241550099146468692162822870395522110418854820774818673066512399394794808685561671670494718367959688432720404800453680058060757754696383412758153350555399260934086179316288457795857786256927581891224503493355526016173211436631383298401089313742008507311186498989681385434938418065626231071186616275073704288713693710197093352505137987983713678909474868428335693524509998752489535885762945788827106699682855207738266227521884969161965125609722636941675836032149904986077853891190781600032031983347270528590009549596546118560808654023963951884835650295630619765969388935825423300121169747971825440423346220006212615933277502514079950952695807643257884635951755223822717208629247884522243740957113497128919194012469597900073890852874651819257255495481663731020586410680101215542690809630500498761873911456474068313820935262936842070837437886702760299143907267953994936558195369566470026490672024489550834712640378069099117576477269906832515955889786506279054121236797910387428820676110692985252798520287521395608550706164336247034696341218671475073131832743131511058161046248994650196541681413572417112224710561647460522629709094817051475657025523087153320491792425902230710783136847094145476018875342691237117227081370980602441773826654762140255950700504623369048285850089219453608159835454951676663622406446420493027398832031059733074094181500629223640424795122745201512116100776598633797897662589102445453994178059084632298807663404621281507008093124440034485400873806308826707925616190186157859445637610681505696802288809801965318176475651574071704312520355926671694285757686231777066329379133771482651199936665033012589384880855062869517613922126741282662748160601694138514659470097410736432011979319029010895613711932665296005938165513857700010768464373375285946660441740633417765805105317907255884158307643229633816470076523824618250249940032731835232392128507461146135619942120818899577596674827709394111147291990231758466661869548751933732618648258344697500006311630403551020373038936121193185964869946527130952883961096551287769758098731617332600814752971548741753503725768973150828645723755118923498035567016161123991699449462198014734117888688464345875704272319319108681493106837600058393149493036385602510050712418912327062631099406747310344605347773711258701967091776844482517013616740255217983814840223941676911955020771510671868174759380719080179769607969325638461838516063462533286984053485000135189935750034086944141122937395099042432724457806549112111866392862522482268298222420393542490007746523796796738046103613249048832803289432442115894621491831067053993464635677818384925822322260407077893680619501504939148255414930616069993925865808072439736046471731683218012719712112849418790172449676783511319892652884196894024735445300770894081938273948728087644272687459825746908839458513260931444323223193639270226181720116926478443315743881565946732899562555332109116988835725216105013946549280117032585437064134823025951709184215974609819598828759789748849551095349747081135865003563516107125597426964775671485796057496884717691540934269387756859607632851973041819193410144155354801564635766916451899550874243662615384734203727183737784214128823597465970397189463526426238132944406711954626109513845493533342006449462920561714918478068877240796143070398607196839848107796137346839648702716627434170780798356805342589140478934286742314600562086822783037811400865913867725088844412204672960558736601308847702744498966860714548066696915387894373774851975802268289817816417672145712200387123315217145225142027929339109275466652845962653385151990646253604001649542960514364737942293440145934852735314085443392290531519356367710995450466462583001462346516836791495874465183693422670502365785640278468242318325747140862769671431479211567867014249664015517237472511928794464832427063194642610026839108344170041687284990414903978973562180010513919352827561256902147724684059678271390655668116710362085389772053763266263301455131304606583678309385116223839415515088246282964163348678124950963041656891611555066597067168703853389931405590856524981485066296865486086868699385505806382580740787841600010640116733887433324768938877288888448393912677675399212745485651616101664795256046519561694035638481511341717621893795991398859502683197007931729070095816998757801117290546311262185219814052709912602202653423584558455824265362154727513883983494410377233850542092557639768595525360136601743212857856476625177933025124634408744832769183237242672325929621873985181500637175999613291578031076164019179021281358461685083664267287509031047516174604607336280720042288702137937056382216290757883889878173513807727818578419908680369466816340925571417859438825318966586191210123020068226792598639290134834706112475560760563675620276521680741796482326699825343176121786737082784494586279046019706398172111352515956796227306701707706516070414928589527366043780412240515574448284579773520048824622670130269569139885734477474663728447410871698037350471638854328202858307746037570589550528444156529118689593009535483280006662690498903892575592681437166257228094727473307265402304238558500881532555088050748296890058614171479462635716987801007103185026775854788426427078102666119434623193702246754161226845340369852112754755643327101913151513493614140750838570439959020471964306109895791522067872982751757016284681244347307881455392615106916159889460494372445456427721514506045232764858949739166045521862581298618011503476790027820880402438252546370131216614565303914519027502027945829558313432133463429261412065183938555001761360416230463174220459883231829419014997829198003250186242243593298377256951650885739950656429522957874525035935488997998757372862082253006363335425325364896016542178062371125853590656659003004114078450629594057816355900198195649289908767458360995247456360344022891222849492842491001164993949901318980809507203696500778592102391060083888732958649479662116162409921372986544410285772204933999340708301208258573398985547309727498403819122341045063490499193451620589585098675470441854958967983252393389248932284182507894874140958335438300899382785813551365556710004550269780741976270266770874443658762843044528477745888733649356320532962331745985427296216547522605287973705309909134410135376038262728269614394553424209710868972631555374879112199274305901740690330478838493880899672062656258353424337594154112003354156571927343579083670009431150942857183695884197727486495750972312553775873198262789264972884758369317419107247135461630194229833948540256360963053573147226150675569953252149637598626093116946486407705309582602263832988976894243911285560464693324521104466154688794368663841907423635636755275827360358874756416309231796755207991838038081441025243391045441090277441092056832418016128685186137153076570050015299085193175851213394225769571996833078303304114218944474064870493307707480291700855517713260805345652338630771162603048640888064895422999095315159843585966187853083892585187364011061219149761556011927452501521200654096347099473020362964230505812221616103284324167909382445041798556914244415700180625554880267722173585601084041158723235504916936705516976126815677992446087289057408704437387754219697958944995265533147785719641756701468843713557773547348289154341995896713039001237911472825152759083971358796756570810035468557469888682957508428633275074933486170754252862522124949818994673218544547005018082746992907928619327325717542661919013370583061117758112416662678314630122247626769178550359234307564248671521855225224394497250687094671752998257298468559698997522067691200253950547033729159605348465346128696187995450939982723708594059166583910596953186089962058483442123252193706687008267134394495456456484732289137321984219680429251437475723614953798461857467286850423413851787367644408563210221432943664784151253738011894658643271796972862819506766155470307689834545081940313906773950146014966356368987622275056950478640012142043868584886288038907538964342739099314024078120871443760575105272661636142114926226712954950783078430449490111226126985888144318923116944041144663546357826360022038267128750716192699535747434803451415044874426092264759601954784941727589411288910534932567643674510457868676059612801665433975630732379507664182411755953045351057921098861960726096225417942624445079995914833933325358783515746009914877142067480440859340289613112860503815019361827718492271455673750277951642545538223697781806369114408463155264446473893930639109874642181626060210031826458252655482203750678399014209347036640602953685236067464797584852201538168747144016771602924347393976219734338838544048599813829043517350472795895572172717836470414954243022989748038662446044706234248188056432025168356142968554421799750128116743690913748060107308726750775052121460866434354339693106149233177377959036001032729829942070118415595647094960529048649537618862448432949321612385869824415109834395751726358340449345589450625190835127217491059601608419247734414165360086311806592979393819937110487538110846186363691446926263171205363052372696255274628512750454292586847089644222022802089474480371607375873032540899940755555821710973484003818958669300405677412665426511644816761508593905039442816005633729069399945287355636957362107133032973799620789136273819808195825461068466252814348476394262625978857439154448007953699012929591877942856349381242098187788892282864704818388242197567728155390269346758594570726294771546842509602304182835508478923952184322500857957379943628523141114081110616405834424247523773939250312567895683763201903795446924169649988815247465424892724994027501146242948698614026013968071895352290482765042163642462173876689434846317858353054867592248016575555882836002637454831340023086873994745807026318382884081961429650084729088846838225751988882426670840368599021406296324769678973035936922832906652025745285622720715224773065745863749236778223493548517514410747125768610733945533583289257636195334048354164747160299125310715360152123562792056761988521060768225248490245589526190047401797502102584273399113272934568688760557462601988951961656890370711393075089517757964374794528575975005428816986549679098900179262013591823644838956491969382387459298496999548908762994875938743346485932717879614640267442494865269101752476001856575898464111589828631726521419279615132538398661988771502709587717527682934662445317720674491850933112354638150116212888910974872504244293135243673359258275907509622550871655045783570545020878652524372885605647960800959133500127740344661417586556697865489864765267348791771878366440258504091469734693697376171618536263096223876981042776230417125145760165216439203698828649791443581462091805174150129799425630880488434585786148367574953354747768707869546650618994934210713032317389989915633404654661320595969288889298466539643856959483399165142082181880356772773493000794703906589831961845089090800337399159093667163484470801550698538776785587737577629043214465864571266142111538001581873044739115418200475160858953409346824773533661849792210275255560265410077750452125005740620672862592900172198393026711328889978276951171336323935310007280311531695192966122270816796596537027988469311556240075572669316238822022990168928850151535671368212525622084667315644658212950886874011325718021569389211983305746470229235538044731330686850715373226192360098756065649775116969230295411046987046123251020164882131916466260232966364703562147406353684628533681523829012143118103440408224490296905662248535587109634895698530719078986417693053428410730287587804924929219506894983677056547175846040206206461707390944578579015216196455367358522364668572401816889866859785169513105554703753016275723161228274788291971620975606428603325814723411244060295945626147892213455044487951086426214269532964787580048404573220273173663028816166087084637504826944408707252249713824672067040570490895225959926011468565353710616414057226479465820904287894971465583463019622510018143987380901770484905503566160971069493319281922861749308498087393785800540877556481600317666168112877578286875822514106417491713809369981274353327056426609288656557097525005603541901628410830699039334164831198258692066047138119634481130257868025338180466300800443014540019734065207449876401860501412693676517906391831688529213102167988879594262911255590540104899271265519800720623677858501539365355854453061012778419385512921113371434496870060058352457428304580278471182056229035944957853292088664583543407706040764476836736676006369273900798240573583573190279708184774734414215168179217927496686683422989126748234822825551808316036842868075842967149242520786796740330976890217397375384537065256042613569325626667874743059025320392859273196811926043244149278533998138345626589641538802998651777402717823947963953597625358258886950630051464420392734410275205499412637698295984984209153772743916241295617910395337065421442266477529273419187057100145059851553297253152287928140186237232164746022635661664356739536609835674565354213083521638448944970974121993224016217732478818984604213282307286072251593231927521621213073091333188024305596758575588437735592879807222800925389736660130704221538230795683045083792805196640681793486966746928825185903209206192941823285293601588382272145646173922457307444644785443518940576856870640676758027266574080022549291356105264434712007112889332324564254172965501702727185356586219652622766114837917206617254632792705985637608860796463498859349059377199833948081081730251214524975555025295126606722156038255276154967952097145718799737351236528680754909616408694828825665527151497446228855667311439423318902580717815899900490606249290176768018970466286038118967848240437396503951106452931245472961429182841086729934845338769493833084875791775807309851808580295735153638750616127447657747301510235551549767981064492490054560549456038711589018898499951728899554145224726763259331288267370721639401081136423332012905582176743859384865788396791265984266433824454825581157436857677282733104045034206842845563264608476489243817309761277646058447624063694048607907496485252849079545462303927795320874594411287572268444078350719828588521123210030683087230931239920657062375676591580186436790006367758683310421092990149029166534480938625206250932669209262055170796722853890275467168182391161190864950094696717222911396732560625217876843909329060365671544844359750392060725667392656639711453927934595948515440565339135803841865002684509056525748607879810791661977905255888388711295208503485542332839474708205936345106776803828291640957666018669734645771888279584725577817830396561981491806857537564576763353059945331909927848825866801330302724850727976802114422121909751874582776561300669738270534021917658363013288612100272392518027046100588021340702709316300570429442520502407873820553667322740335347415439885313699557034458835225768818765608199692538160345707969713662631287727346058438713624225025860798798208333020942206577590636641340974546331680227416792504338138622801150454930594608330782927964753268245853111096929134999508014214630829853935798835263573247254916321219068990929631590051425451826588605130992862554285175125190679035708827764224284592418363911154486545997820984349677372165095683480237016232480215471061679175636796687316963362891101995028537006785294880260422414503334474508118175522063104164580972517655446085377614714864131025014889111247124521737238316678127974668669542167620522558965151487251441576563317991969068024567071989250605112830512634121989728369323705403726083778271277585147577387768996551563842638425765043284075153532462973467578909621791335534812449054983455176567982493111379599962260513143585391648436690448640190254227240460263067380848659348748407187229838802252906499360199906468016236938964738374529316200507013457099408348735426040805999961867037913116478262429236909421292746042794278940481836389214426395926227800693501843261996261261739059362787402250976320611939340417872247667981899598429001798010948021289741778528099642000353708164470897227958549655145634085908581453134288994757305365657278585834677336602518720994639371710230582488015891935218176539678736339801099562445676377893815056325192543349227498381962154392915523456247141570931412382312925164169917984238094661092331144760818179170858091597283208085036159191619601492552401140373145014445443458612558764120663689566137568268201224550057233225024484742503653400822095875303990586185662608007636392181063860206410293968846900615840632124042879413342826466519626864581322976349931173868335801814477074864207338706444001231520039160466302690062621971741075710094447588698381360729014288431637782240641743016130949817061741584753481317147010450545498277418541778579593602158991944006562465187546928975791957725296725412159705136213296098180233239603101619544843187901970949333490590961446294731804535735397916425791629695752222299691591795500726700380494862863806395064532815481260623996347762575191245176535779310970842668111083257513715268257649790771940344574353460508255826889634490516807386844063990124220236020735488543023059848095156572619448222714291927681644937997969355485460859955199747160603036732559001180512681055178407372717165860003971967695806839941286608064765624544985468505521744046041430134027139288488726011081403138812069432948431446243665320079793751772748575731902140985036759496164238531529861329465532207559937721271311798254967522322500359910350982079620056137803152482523518589969834930678298392045935987267978631960766834917799455896779696040936400862001951767692456655070172587311764300520696441527803744137638062706900932209266844156026847796796036589270173710483368695331299804944951811783255396637846879803677857783080580430829510312759540378407652234583730003729240320581838865691831103278798076891477090013360389069035734481114010656184713420682868414015168087382248425417909995233312504877497853568487164598460072247614415409013497310050624743577781077799052958227005467649477213055901289077837508537474657081251706163060087790494003576403562363813249351356749886381604421346980630072747843812329362529274042413902180419014266208473977618554371781288559648440851686707921339132908207609612625532564457316066554807678376336881389590617777724790771738142706754480011032472490633454089690768754663545057603865327955308133840828251462627856009204791392252650950327746891488013150417598653652652679258845301490896587504142642352370369277817917108019036874614370368671311058265164067271488866993331601045769283621652256165575843716986526121011824564870397334804687243294174907289382800214230693406474810651369932015640986496331011814856719942640701113465191566155510569489873410681532084778504511536437549851587763803905303040016493599071199819487743115344568499961356853711265630443366798913051982259747728112225600061609449074518298430377219793404265537580752460747612750721120106090615982701240140886927147270256468329060776642061394936726757327576415825564036583075957264178642564116713473718749886579099125189817811373223231220290782713368056978637411871373527969079610979126272636103272388912662604407480640858251421916942502933916618160327567231358971675349344674762124190213467706479775359503469356024392196774963664339667910305333175589401224362622502878930061560837529900812984726468714982848949229479666938351499209919821122700737406951800760548300457120305051357879985606659890394801407849902139837872123921446987131430425517964739950597766402316955916697813430693291639632530955097340188292617978561373680916302575453512084000955615288962333380479616934580451984645870001831955238175417305626044233120912926998280577311357081493365411673581519371782473505680610281870523839696517955276517460075309902611297136353636312537261353595384547138739777310159405722982431047890199020965562057182420605056151706168045691437589639701757112761053226102326470825805524912878841670504814308766969845632716040032604834894686837315557409906791007796847726647934485148048799882536771526293231104505968819206952870999716849627410085996525743627393333450178238364692659795654553581678653175614285849292916006625359304873187113051583266163550982759140664796798271173183335513819221352466742073140695257774901064797974928656174174552277543487478090120689162359513803584762957109471719345898942804160596237457160865865646665997189745179738780379026431895692263141920170420465394665133840922434084118677674829636579031190373824102012054167084616466770204823310117223973395394900438888402819533173998380819867678114171498252152648923197289613588471661242234533169205087303354235161818735398391239504164197972103504490729714314853906998635383229331514168763715387716243738291918304010910976412355293754166161845312095426977676612440935044547252496012002312382579316366148122453592446068288623717259780394078242057908319244536682112604017422002655926546537623962465284957663647744060830294503776212384033172767706083829678311635606869931864806815792448830808236574361968295779028964770116633193137213311235870582324195171973223641666138857029728154392100968857292307864864767691972735012172420605421974507588625566154309187134555070320200644919220793160464451937685953206955520384321778461889251892712879300805631543813025697782669838412490671281448637810190952829790723893323526985566064639052427093546009555346986211499495187078119858393053948657218098894257140863504431354853880228794717953359836906995234679697961338084632971495390013444279035371075928698476707026167395771295770597279209144029737564358777540589890842125396955492701584703369777155127969747604036958876847286752674728874150012269409107745616140452412035803949037076849124455705662824078926388861652222282775713198645715995818981568583240622858648378557022347576059813855494014682826237427596183352384492378537020027908379644339953102183417833880303424475131061055541672946014712866159835690666973664481145877443396328380398045065783611460183906550468968668189810187458150990059447218836558802097626659970126644101904553459044685945315518379316685188737903025203249849695923273768611201918717501035857683153852416086518081280125945454132967266051874295982734726227594552627033378791234914246493933184766452406464809101022444852645754624891942854589268989099116175121985672823642426905650922601658665687716474861049892079328197064757171350693729954890437526546738035914262896112529559333452251627663377509828095781876703761556565060481149822831603563578002042880649542723326621957574077766925980826495511750265910325058232104663754026562734967421729461764284375040527192135088630966585492855980568014401075561441724571430896278796689018128808121062598914054242020113656784969890770760153151166321770644328481228175338893257713409034285977485132268916316937694560276612993683225768819934615928592645042703058914863037460063263944474739792581594351696755969278410909427001019333449727478127581009116835044185698533975781389673254750042836569754308404626242929424732582615460769745217245153713687270141029488905661352067767210110840896999638944276168598115164389454108758968712701231501158177834369303853994203020757449535218991679382874982224489931966045551644377979004657961377470024567155851001249034125243425372707250444930400622821995074499714213312455220589478832008970745264863869088649806747046364873083636829371220245080643732332932139276241226379513012740050486013983138349862107206230424951288441893949616753893591010193977021625805657342160502766685202203799403444181988844364461791045293536278812225852167150646394838221306928230835241804092739644240531937405846825525622353104141983417181211227986897248152325009404803470006050081480855186145728952596874088640636596733355643535990660708621634458981163476377203858006369316175970876404486790296548239117990406526862340942644322921095770742706070477756727093478754757509407428357541787677861523504812732249801030760818949832325261109542051871866147867525425497348476330273187586542657664720316949420121483604710377642537104951745556339838675578564983406252867928433355673712505404667269035519742109251846325302423841837264828107041446742815785603679353603469305111796292579302080175022600295957001058853182539693291519123909227108428907727736962611916925398888587482348793345868586634049194497248586016307169700707177159177686866489653914099339070376569914665982928237557705545393271839814787629961372289677804072722287356837466117959383839559601175270613972835432652897369008671441146628991979159041321769261989983986497121612818491783385137024750492447021272316028290422965513262762868827713942492997648278467005214334249040859262921339231243008307651467583796238767031820820596026657818384129365418114085355924041567988377773414760468461645180811606887824570056013969027727156349550458644698611121939523728969609235785152924788404756083854964683212685764601181552902757131312166042647361624421519167859849165198959713890421782390664981276206039061998667497607165812908731288179325212921349472149177039187867272662991335186635898250209394203307416459509676164573537038950822994435740380721511945924782877202711809938132480128876013919859667880382226728197034568147776511238282032167015087268358921427800606331351146057642292145235768290354804538564693166434550151148369619895481242811810408252442385812925848022713723334678853586368352671477653555742862075987508628776330005113705256709181388185084108886591405960115098498083911038633587561162737090507637763505161160267476577699379120925943746503938997596937554175002333174031647067464636903087776477426452369185039356978555523444574314012766647298575842095117016642539667409216627352087944306909086937715362183202279537790968605350461598162514659149021005346948742909456877972182274159434525403235248713094358400355013312254602560630726381803397879329308232947097442511569916419934546905346325499670957607767619507724811313159188370690828270203946030426243011424460342807549040129609757678373879743513841367269941472550928985982227877870126983994977137993508546058728446092693993534284701587209727460584921866563656685969971432131419342454017043747550945945284132470393628254216936997136123674813097729049797035382129304057369019853111809946971724216695170863170117242740387820591101598165385540480008528248453817671488864694412283030596587971759470791795796107738223132600032102486267881798039842213712746044774112355990484010748622554729729150690508451508832962090642660769817281597211411881932334981167677392240487216482527736781666594467152242780022118352675459910756987411466959762247165258242763709857886541520659902713096217116662029004226581272083112824160320209264161270042371216742242968434256613245062934535747368402873281844707193025134654669609431268463359933172873426043133083845984723222080629743162593456036589218993498208958343903395570813805116375275715842081272269057440056969769885366333466608779869234526261230214696148999634519063448905849391656883947664982881727841752330056669420581543040718805836895378716364105819846693036482084012792678470709744160720018645028246160060242544208731710921456278350890183704869952742822264085591141364822535453077709496108703633932194545575655562761873669307781958797192992177239645424026543379597746019427933557553512741335706062569491009753932718937182818302501234414153791975173011697498801773646954801305872006056328270247540485852517646012236217269241381662091425990873492234530267173455282548670678404344899708064806457696672910977383041485421025073562986103672199932460227119233220704899181952345333655288379864190856576671199456284114750279698816826045034215256680568237273107278253208306791351949485659553704181616015213685280806485981460898635541433348286278896640747833212150953054267297480579124692523457449650518086787160999831007137654480875393517727528900678877983676062213680582055078695018973218275410277808292400199715761714495237186191642212132031389598890369487720900030339774801270942467327069548281758164773984077019378257938683764932764604997354303506001184437906265610054410587702765492431707812414865186164172228500926787888984446614916188242182877763085481152351444947868163621539632296378072140498411952306135160503733060658122721161283743153053773397463796784745748601728804642605420377920034288850172353956129832354252306934696491774877693949305430831147165682148378804263416701713231559183662568490481483241231621050625353823918556902565213887995175432234441159485273119067697645776479106698148216237384302221007718565021173552419811996667944963250070326180636365390494843177160720056712817149570468255435606880167292689624387227619452623248549234036172055265657830658291580822699222953119478570762360066088341353533727640000395642957193929316248213891042224607298426230778630719394730957296607982653452513397271095647939261449178153743156775693080094323004911040648531425393035127046141026476795629923128579130937251834322715829842812859159469883117832959393929944127532906932378465819404728646363920230279952849465199858102232737234323301506552260380985433958605710265012936167068224469498688882292662769094836847440655242441791494443778506284987074877695158871154588361148079849057885104682318328956246281024593917042876451384470384312120826107233893256382820540714061272210646393325296875379849622318445137348665325751739051536721380067875290614698275246331628760191227675401828094866581995279519879721704775764447856458563230705014706317989565663006689035463847263461694298362941539170480124212253452895331282999293599176591087982086049654661828412491512481069781420233960648381383608443381138345092985059491046197538547771108765989099227917944896820576315617558540083340079269064977964226264825555856029017833821021611629754320291035671957655317193959954762963047829448114288509701931323190210313022326566641304969187708769666281487085988521704234506387685111963661517994870745808156319601453661539182059907104959771472067882017410513842451905723036296756613542779603678714870008050906294523812358338550016230083272673694774363265182080232487695985801966786282290663887240542875263901926287111050247582768218230092545772392164368550621812250021400354759883050772847712557561278288089744423835570772367327176743124138084272347848639037515226159784879038201498016214445729162046975862413618787832315374126734536267285213047588855298630804203158254073067789694752104379645831290919879774689251663818739430409456597947898920461838439516857660443647010586457271003977591006852894928560256582300653809871561881313787918850538651462581059285682664440976629123117974808325470152981721015982603950299663912606124696175705987585201816097893354532564635935074295282814861735465223827137807414161542748808252781095355692823499269766869809207067379595860014113597503376264394582552054280388356007664209311078734565935148496213761510810626349563884161401958047093370675457363311950257444294158033824167302507361589821654563769915227846071971675144813093085953774509363453561792221750155571338180050605580439601145893928217430696427750456584918773848285281624052406251634883895423337266375050529045208272155242158013483862440976069049507406006898599947892467544124489735250147552168809833088811610563792717697217596848736328003654445589301771340785626597771226999103439475111976652818948020244978496656550086780302710433829281974480561849011420855365711702882957032876990010617756830405239500364212062003551143662272426359313356332567725243084958606090368523700443207160069468636631652029859836755942082991026121116007236229101453673345384182743949293336992132794643906739408713388451794381782075120868828154348865147221694430275686452382209539163149254415250897368610492633110982260604285908841907836766647008804705236401878469012859175385700225954423960788972590371158046074348369230544875916427603414454866929553091059633330177784892246936572222326154897793014208447863245961066818944557933839537719453940653310363280349470715149574176345969181052260897083032813090105341304921032490952581564879086129841188186449427052625339600150875305031461551798779590486272453586897687636427979444957151684740775095354457085227954527549484461643757053966303673239634398577303245048433372278547470565688843156443606272205968747656364932662423455869370703312999573906687043652424033562692655163210227389251234140339949722218429152974779793991999905669318203602874995018782514345147229931078388590988220652184859114171107810539672142836323387672459906746476792371095713549549678354502982105608311374760052718044460764317797219109298728920980367742367247039640866013492928765226666889075800601261101186368935853791418744087996026319351124161271174368140072448062164554099179346408173517286478463939388346902170416068833230184374219700207716257378850128132895984051188711396660696706383612344128668951449014253096683602837316781764322813131603009094849368496908887159146946745440870592640297808911858141551536490434438848085578069030103005931010716637968621603632368877112570633932106139132646511239974030026019608431304662707068945642355448197640642876134980844394617824652063290283204633432834259872532316840495564007801136413621057930049021905227965969234694468263231829267723203286634774828830703116285623035622191912447051678575867181688510056126457399718514853136575533647163226945374086661637216780837441904441314677246877831754065379826767980538812478145057608805826941693716597447607418926402369761692928782856268183793520352104244716851680265940590979226898852841047092553731198781022875226148343229550543692259532252507027247670484031032028696443896862341537995572957854790835556257227466407497680854795288352611903855586640136084219784129002240591577187964206838591685130597479063533779788570459072680773988886056500725899633094840687136465152078520966076720577830729606528649838487306854353713123196587878289860824134449426371255949161816237198986586942932817171403577740418548561030576826699040383982674047154925215345012417851924034748325835903926162254601926043910715373916399619811194295019330052050311251157298095577069571858848599644871068014632327018145103710064482823510401337878832969076982327133311170745740096697615357058627603883723757952124016133139830797535505425693049960512035554327930459486592125156410081581076220161097193063788959894479086083090908825751308284315775766586858237023885180614429812669936713018129524702045709969280306177962844421788732479666692261940536971181428354941534295029975814903662344670845524649067410974884269846396190193005930278843173198990506061190460970130200248835083470426653659096327364207647529672983306515971814735181426588629047512203166946377250606635180796196659196159965555765186425598558818235266579845401687309835852270925496111935550013343143940394496493452251948386860058919275073058413091078266115078398746405267209143958899238859225541052788867550000824611315289394060570912743482442284215198528907775729452523213279714496429341560358500483898775117153952878619106313531496397803315938516474990335376100681640458846279764208959134503165948617504899838393432113520883878838226723268569576026680659280085988224222024741700405318172491755860373132155193851194438736456494694517257718308763114366929104058040815462643562829430605994335855978505089357550331449338824956213343888611685407500736847137954505205027750441393164290329225085094212430843503581386785918892761242575655579586736332566040513491965223348253993737951395622499995531334583523738978204636652124462895515494912110813029886786351747827112813366850173899747155883862554012116247332174039227613259326288229818140471673141998416742181428746298985909956133553933450454437098664214862950202153397667527949521816626547472706937916509490032623640929733202918894143647610935675144249065021635919264517124788423882007923712394560508266927884489743315267299350591826890912941388196259703835796626329471173789565488901589310069632964673781736809629573351999690906306781362353989654960237070233900885002622573324480526645169044098879416307805034494759206301192197230453689540864313373888669410280341957932934809245817899751037632477330589409785537252273456029536540797397034359508944562385850713647580386995172486500635057216522903376249937815412528732132070256803406210751514717565139197565933791021194074035540602703292777705258518473498102314759399549675665609023357163700812377375919414978843061284257827444127833049594517095903108046302471110781516716829732882083037080060005774388949667720825677482628866456262391479247046574528640156813971922425003539101671850408757004794668771606849921730560837560662649758838846815549276642260954806049971266265824548906702051611944765541204461462258729404073219760490765208612283265644333581215240015871838783856822090773154794790809852005862138571577039073432408305008425023886388110228328398574789584377172280698673809699888356350952881399598562293108289230418075976295327449798979571073320469382078708531828185976465895197490599511959695448814050962565928131315001269089261729707353961270529470371169925039641192895366039166950855041745704759073643360622560163959491868168347445893767484876441842514458574934015383628787923451677972921970758200700316130417656114219737420493734586908391724900719450275827452897843880628762355773201028531648668048926156737718661982087594335274839729890144857339464517127055201180677597179395496582031645051449845566219859860498865784421124708289309900278330684203184557144044045576131489470579747825069878718500825231867798532449893235145204124926029211922641061290332068754160388389797232866989004670969421698189765322995583371078971971416191798433600676718796374055629979875099460831807750021050062418413526404749970959873107613830936016129370142889276959654787255286926583769280468841308210430582003936846363259029794923846574923997390781041813656860862799328319896622018407387765506293617492265808086451546667819392226972436309565547412912744353594739851262832952421704922824920176134230108187720083752113947055525481424835928424321346144750169008246307961854632952920290545455293515954433352854663940327966634765591037397030271069096840292047586472619265096673844571117251777663684441247895489631189094892473911881305731778753793101945578400480099119392376540497980941870667709878487539284725013832347487237538330274182647076166836714460346995114750418296475088988969056729797005446835858470091819987062399932617845149711280764742516992851240307775383430214611652587865170683988768740600795335803445968515466304305523131424058888033029416050965336276876538101734612897759854762202992541152001182301817033584510555716898606017790087349901977363829208931770028135595023277853894278388269992295501758624801483388151112417073500160388727194157095078716726042100966604924693924689068153819747424987281639626766406339898697759780179516812491223146205349747535391061277892560152596620329886951149800557481610504603875725486213013629823919913214884731433156694656820503136833275358159831892730316539625109232482182466487347521217200613657119400934596230080306054200074562465027203198578951334033442052536056127114577430578438238664877811188509071037325658598530117830123855847117814689389349589989963415884416679157959708983594089675387701349492504646756422128078018386992458253942543402630342472069256874526257106785239672552871870130698285775534979149707492247055551336105686387999848240678134292270340979577599163052287744276856731173968797203663113124049837772710942199062210828133933916995502919111257562879633413874905265148013364859245514529469896157125553118418540683040853903824067903784707215692853388261642418103631985498725517570426622348184756173515395579108175033493594279479140792931312156026065964625218486608869845651471169031437211188435680112868909369562844939703925865459434229084510822220578823289679477744351857129682453570919992871225312826043295700007494568711499463309648659641968252830782942318254086946451160018409443529833832486541630656382611197113131966953213211300980791322043666208405034232135962636903954630074204967167064185121902694903400578247198124921331663286740998973760506354706122360364802782837982365573459386841874880565261147218483660254526008716625864429395366178461277983672595178351847363185399528748156487816774144236391550808462714863468534324244394330865113540891816823269662108907341008581410480962827200320815719681215037186680188686143374468615975473442342915647098875194018985970429000143810287155423551582890481402107453882568674138937551929274719182029173557229615887973071398479240199793284544108999366791713384432653203105755106502627260816178840874671924409006266034216542371965640829440041150410071913483616125656985621648078665108525397697502451257160358885993320935970579853636919148837224874513858821121190624311033429639710305464826656781268596295207485228666535439498440684784424245107857890345821164734539743247000391415060988467885072102149489247892955500499767928754240959874977616746410521080800717238141832245361267740237678027545421304221861655977224663089107846990686916487497971190840304135204052145336500723038418098291954787850568010957937392859422115317058769706358499506369486041895434376911127408444355520938556678189329552354515651924610709640303198534195509911599743177656792268921302968938294782637202685258921206385110207945615279780710347041142457147879485711902870646144238015692237691069599682960583758209557327752264776094828318249290764506190662328208792124006872452210056806055394886790144651511005065425663750893504801095803246142842599957285211561840393471307724791149540661722600954569357151822529470256291952101266524968373522417463969827105077812109440712368613935107877439192964059461207524300597292048141636286697423756874175814460095001627823381550152171411659746718680520768274751623306496970016514812405215194944757789237958563197773200344599874105493109119830605946684350302440886003114298687621737421309936234287265502459909774420603269230889247644280560152070768550789544227020286888838299754832012234001107057958160089840659444927649630732471622364732097750433525362229701978698689421222324004565609912653645816246810709204295164651144503826499410468930020813077229033909226211606233925047188188961133292265109913660496554674083031572580401841268316011931559179636178633761439893668434100535146147169917526988082783075012692845380573457394714412294141444428712461823930640599355277675413087801746324456688752691545107390865691050825637946710269707515502931589625526082135365602336045089338287771293299740100289458413996490053144458735252982332982303346292887539114004822856626433199911180605823670552644322245859251726412068388957691635475552866785624300815335493916629190430641466074660301850795464862504636435442355896767422579150401732613924991530288364229230780486175980518585542249729636485911503088600272631706974040257607391275630402419645143547853457874191209535238842039470222940410348660653859138402187584379643657168586176119864911250513924220660327474378776154207434177740908210338596616494700471412668383003477251858694224785952431680114745286175850763486417202785727942951190635097468745595159368855768269707525350941686023484237720326093062355558214517524844764240052734302143846320297552657711468642956535348160743110845988787202775174600185528183447030540032203588939430251713211850616218161894260171701437803009010733660009243506714801870176765596097665092205623235646557029977210065999896543141958431378608333847501180529919620121330384308018983989557370760822241583615135506477767514434404827895277647940820823829227558885476928400827080881334170808156445726842642882698211016882356512866312790129920839609729207377801124534344217318863265122633026091593020563529802272280825288207249681001992633257834837214749637645848205162898218405781431224633417576849476447021715669314142637301174482452048451856640863123309031352037181157794196771803277183341035834741598291497428722749228453333715691569492782504740163713411744713329315085392791757967887527762675262830811804998703538550092337841872447889162881799923093829394781502973550143946471105063077945435856869614791873163079061741066575354109478228172508167634944749852446182817360008738153971476723276151083045388276096274340953758438370027798228792059120959121527283523147373639939225050569486104688380185966459351423774144731523405249318377489011943125950222712393622021950583527071495669966388936026136479089786112661575503239847887208906676256203295165146265347015043398359110469024870508921290242994915532900769196494959404963982412784490886360455556802442747334807469402134548388580585628665013277336743358387966265173271441252220875191878455792496493538660920193689870466109788203157683824269285933879296183993215856834268600059938577915144296514449314047141275591224820929569491547165543217716614953226134329010043714521653832223304460465919788031946121360346450946357235664251122367644201801979045517014405692980961545167054717846906180058921887305745408278697808036367752894847294668378022945524252601821334663708872418071578896010179231247619732553921749950893905191359041719494964143228323641367494424995144216443177906210843780766310162713381477771438983929587678666335708207730691038832683843351145786847108034860742845408897751084052926567867698651435359926421638969626137196534366505848005516376713721316055397583136921391308622678010977309202752573675383396901527736533876298798731231043040502933392952071605465041644871995223784913894141202293742226367047055806478290975479787931279187612436936900923709767382221262987302362371458130225770096826023320842064898779991614889739098052346002685327254346054617365243180035029597436038668248170104674147157520024160789303802533860665295518290685370778901524652144531866113446740534526579232459959079620741910239607974319525621769778469002804909735395661466824292564907770280768292364051275758517255977137695018207295394041236271238940932721642950043097489456428290442991970632834570391804019798412515533949218201413510075696474219921665927358373194237023100832803393349542225948961698721566946952960372185490293777369801760490462741477185823942898687327561752390658388820653579636554852091523929816268480344989648620638960296583491809346722937246011396984290934986508974141876203325891643622012688906779629253518256174050970251752665597575589933200572983327179514113211392873129881300985886189520897490610841081465944155713979141858867550512484631904822071686135998249827865479436230631072091691851214166598639122766705989195509182451807605725306195485681624955261409093007835019691937915779365629542937472876913534514599094439045557619140601805187630378864265839738220108117944061858640484262677583156007309502108411617452092696048699815771279612202782991143343274036076848416964604078998544954049669210978917958793501260664281853838700781670323185069645771722965444910636841168398431351336476916758871569589229617038829494912804230810830321911849607044045557329948949173649026970660958568423371328336283854735635295439411845830867949648810235877882146549607614812466676235295343632273902616486596631432645115088627692420056634166033683755817821086881182449870437344975803112214014357418074173211236701681556781893529123069403637098796971414152168148199683046026490171885203526492133290163390688086915538548965834402509064165095028107455233802255956666799466782940914545042313909589469472965330322337821287167448072745221916884413538179887308181377205656302153230815363667837359955211034344846182344750849278122274435540652935374551442272394971398669889754497073358906588341272130998234169285574919181100324650658743379003740385767032424670115947526777900776969230328695426460253910183398315918174947682210923108487472822667752191200287083130968839655883972682324796449762307009305272844738476208103441063964757405743039884612772425333304985701198737371920807719712740546398862079416552504533179959141283804811131855057921607569371241846744671541614048212578059882288299428282597885101023586368831512899532317090840921688516219996982439286022984285144998667741584796273319512277726119923082346352793148969773222333301496852284357226703152597519491971328049120879478611702596941759644880908425409611549562704335109296228385741951599002440077384139791396807224676533621532860574743814716481009182650635235274809871484550594581026994202278936821492646778782062031506919463276047415022350089527539929245053771392573596805341645851128228685298352708094364617243377841015910815912507441889179870662726023538825288634306591843419156232624089206236040415193593542111688028870389694141539160791450909891791187202013809794968439746887016541088135149825130772018289164710940508358173177410003028246331391410943459206848500569817114506214370708005969068556301604564448611529985943599562897903387046446056336907394621481328623920384844562355843158781973795002560905055271478365893016360809196361026790797881791997191789646152166437913511218472640478406505143260848137170102311271296160189079946542619653797603222983668294164443464499745000359604349838937911281987068865199594474203037338751269368902897974879606823515325674743406670179100738266558752974198150805931299810263536375382396188235215088921779484270038903412770938526102568300086667338219148415404803710755318792557100996371072981603640400577604688524779844392718840099147621465635358276809182727454859118850289459765117708196638988850044339006168572158411056030532522559122060507812368885658732183064882256952113778199188171389221980662266029453905671594153900630561975367203835115952681625622185179728060644449740540779737376730063492149634965829050742053171968726030994093991806759329199685978592984712537581902954249241630313825865070388938009113379181973240902066856158903741475025129366333336443325677931056569783350375869763530101327828914267031496850431362899365492378211795331810221446936182912160358800184338081965850314660523257315134318886273522546976510948159528313590149045393695777023126879611162527056699780171853469795094750176304944864561819710322499151974365246239692435381175236503957421875332834634754250994092371061966042105662298931283836557049766129934822161237499374225311763663670920864298275870199033943670757821765039169184432218678470527398487174563873227840137237547349542273666190516833463272000919071208032806376435611749002763221917378918925698989957055975464931795428497078714819593452363037662888781443832798265608780972009915457811275462433705408876303877359111574467745668225589418175873785714640083762007931339803029643597770893513677444442058560412086749788603635732590772793944942186998301307993603696735621794128108115972649682836910486674777900883341629393363877240308590810154359439337052428847231111384467475617460645446324535254703473912870513403367692716402715181473977984165119898698804716285871000188007469881587652047424218368293188865715594263962103908311307713643664930931730982234275373869514703601322025355735493471238546249141202983486676141626430728173031563948734558464374607447086034134319454244816011772200314160236999814736374568724351375804129541665943833800174097709442473884488532828561975591357294277075377446229929485403175645342477137853585393946740939944429772075356682239832707119322266826520007532659913955275895507683286664323662150350035571928782423827640750859646555399780155039088063043719100460409991869966475823153136088893961522451890973677971605963266304838859337631587789982124329413035974344149046234431142730907858393245825052294717727323786816442707388820190565502413876063768883027384870607524486148002121898057161404899503623389404286988143654840256556627232471876743386016812732747604049476883716611356405482949174593854099569779381269368363557419044002062858378765090367076531600221487107270379332427266298616323065237889898528906205030746469196955706550128902489163751262551240974367187336433108115038771101969095073622886348794793249392380396222712408431409847916668409327618814597039979294422842896461386024910791249904138853636257568536790162708908690368859143108829401398992831681256076997804257734795091741127711961036344668152169262280900643420885293708796120444775569753132922055310074477106264089080970046547173795143293622047308664986226878608702108147779614063088749763938112944635760015604801816321118749253967976035454849357912944081426626547996441470457908206480857831807146411240996713262943085529119533313794838734820513773497867531426859649337440452483754453849752887288837971245643669397888333544055088622319399225645203492677696162578159684982956878244525533091461298864040098871176076469488119653736297865464354294995416205732674151243800688903682786587958083440015451005643545490155158906162962516506743285131747848351091880268771662535261062979735199472249266068858741287862515716531349921356926711917659445626436067603372428946074074903967246808307450924848540751821718456316626222153014444435996749700093412881170299015489954492798396218069773250213369252049402308643219690985532424550262289654321828671150733002191576353287748776717213846136671421851436664138542776139412095188468639464295282152748437045251735541546470629888720700826195466122398333281035676712437739376289700562281029752055935676389484280384272311919954970648792663369311601014394930681638782183542848122285839782119375588155805045972472792812029764981167239359946151690185528566164439873472545921468337243989601481394866182938756625425985721832681414994509847904787405382482449017560178127184513916939913220853099404811703835431016198558163082450278093483916842342430874044570155065645559147678841514459702047058621800933802447642200828967502046246657707662477285106345566496258626143551660405277797480172419441747825273940825980267297948646862622984990755010985885035456856836660995956124065170133656290346064978010118935653403829429792996130368599801938858557553652382107297098261975453911901364132924677164550494502695037724399291767119983392195729878468993285254310703869953880243041960641169639044354116250396400324642092119542692968311907616471206006017936224008495361400135706473068682674342618337514974003904955972886744167687556152667291320286046856514483682126224197458358853916199809057808562350829583784165063245356721280776249611120260200219719249722993044133015806432787791755385375203744508557751530843855867449195262497888867033897821713367374107813654280766772395288564902095849431453317334649820234365035963635576007740206842980113366179060746492357283327751177323905890034719165015340378255693129855718268249059812869264190044530508077078656695793297799702070257499347172077156194847337325758657224911890819851772560882732292220335319452538628471764224572927614346039636202271729951233628510867627763351082684239380374345892460424166125213170211583313039024131506395184051551601713194272295138138401658806734537126423709670637386086416776980765024798751468819843465869826068747581669882511911020637338920399468191065920897244864108888803674050282287285355364032247804148815121500844707387662556561869370302263160668426957326121521199898904625847002462220382040788630509824409159481360066065179391143528215582417758664828644644670381370224339403060459378924739300464062990456086293788532048593836706892705491659342811247622971057855036008931617304767622993118588129628835968458274942434517052832577884705296097673661283392210307207416916748741073734639166383604930162274118316390973827135607660539635501289580803004175322354420529802176679265020879959623047397406031132790818251347842840025330566816344066530328009528144093351443314172651457466811269682866187651171571427407193080144326155333159934428947058197595944553437271657592135977212675842135811246991134780787949909327802657608104732066177926919488839543912290173861815480024014583791243298481772721951438108646348553956908865289441634500521114936304711142610519174048813993330752246064100832842069438775731408898482258666995582105784395000682899714962704917045189081541875329688601941629273481481807694857791918014775803377345063618416597693557709423536793851060125571609484985375697487471890025463075076792057561980856087595559286442356799132804144768594295644892770702855315549260875139005429718156415029684992511747254082739150135850145124894361106389057091171462666460243419433344133057038567742132421747326633109189357503958466152068777691158835350660466616149730462278673147609859105424404809430164729282157058233294902391522816500433706744976442762631432651278367576386249200463188245149865271358719323162450781106264252638420454853174338217745958650046570752679189673407088465703496994617169362899496235726216437366913221780160367188159486375278406151728382635545285779138579652859618748247404207883413425051554322630158277715613663759737925042546045050566379552950770703388425990899855873967709992604129921304105730059136216328694173448980136855139620742039461540755160813915473970990095004035411088529420512402134395274518236403168053563859614329986202058662080667125426361091961249453325390708612885415411421509084846956598624865282896290522359311260617922665407704932083002975881757508839261376025145917724766623191417046252181483082783960087800911624417079446656841902378459931036331177997210292125230745456059293760110516653080706816018464941174664228784858344300648290072428123733504531837046916069396162728650862486185013355478365656691020235195933811412699307741557853758700347383611728958947804026915660175468999657465327768811919070467182382479951485782044678044941129459834134972066654785031500074934122310829917795135969257826581643773037866044018263896222853538844279832063244367817638488879185890487399306638132815485429889449169356216772538789252702528348701998102929347076678128068609115491890549930501438864050501784834315782319136259175567987730293013992764276601411877579903771654271780089330198765684024857105211227714723118676941883548083160385912004339011127549971543514309158177523716305856241626732174749872092819998693427281860440571704413672766558153124353501881307261301061348132678459784117377213033183286360437590436271769561342788056689679783489551034722921948978546763156902772997714925274080760822340512662891895946496783290943774355536674527167310917318459454362658163182412772720129149527643643852235140880925102452974884596868906912501411363200365168478553385820557156109351174293988740682507254093744717232174844071191616222686019556064725358113625911491728383214186537060625445826847811396368160674869878935510059586552463312218569594443795695162102965904598244118529134413745663669064936296934431349181730688297514946603174192471578102288527177967739265076937029599436914225825939900174305979619879347316326154367960179569713578602671397893577373374523326085725814406260659003865966654928748011972535902009404013230702842391597137363170914049407759810549544836748490413402888174210222521737210405514904338281804883446695472291492421103930333132220056030763806698766555352688558149615356895392490338292344179869254283577623716908302353289814083364889175449402161078574347984423896827018090859034282014766419232868657739803210103393271107149454452091781656451804604303479728220868762989644645605138999852263289591793788995628057826167026188792209046941212221345124056837442921794446313706489521979487380037714564621272011694340326582984538356840257988827595572069435169025388334286101552466723510996614769240044715809604428754414526496196073247680310147622782620094356703018296514323032170712203121250440850580640714812698817453676245866338250507919906971821549324781615303789673577923735623270789527221327937223853530001721146561645155816065716046407893676025636425149312939932942913927359849296493341644460575862665265169033705016358069862986843691344679462118882057010838237369475238887478053496362581343767608981952498616060720796355734758697874691206872556203327573780774952411015912824481056964374099705488890194486677912635569899476782832548355313916841542688229046699502917213921227940243475246497625325367093893573291883510960941018290755005142816895881893893803096639238231551944764004418255349299459314795180222922774870363786594349809529669907488325349948424824693543751978147442146535349823711830183577984566306914215371216343406724838488513632787864006076350058519649750861367874824571042242949511651304716487148217433745510754252565185833377770901896605788385865797130587104367601522167158270410454671800700393138868241328327993747791260919058765884691615538683778683642959133637294647039520475619887706319767360617968390095079005857040976747135246536503750593254467254416473873202738714115870814752744694693029564298371007433694693308385496654820260418670719289451827310794665576848131915824365542572776004455049877448237973865516602714208609612133790492895723342974484662203254942781985203580398644103454581070404251194385875038775979625282851384646834026248890797237511248231905695344711939196779501329667711473840832824702067185013010924733002944146356314372786486313919275823992730350762763413141054589543609660106917646128417316186237806047656185939615841051276364397202944688345701429965998080551804490729152740645539689340523247600465020416723846206408900579189030676926698580118082524788745721970560676287016439447932885359131587322804223078430938711374537820878896136661465062665023876625331297506829061154039663275807458481487149527527972067153235449184617257243386135329993419864953946173732298553262460749357814721983586046706989582695978163666007822720331034576469217747819507942771897717034653194573621639746968158972535035107180915168824465172700296199192950941290909485636551532574266675174419669965234693578132166658059645326288088869935313162401008740941638845467262047107316496882875875029847521797246029719694575346910540700947948793745555890530827446622869977054372444167244884500767935805769926743179055951639654195856756965199671203986971355480015889310136825219952569486445867306441011569787745207272325788719734999824479116571456357556325073025365764681100107383514871139198665700535079188027066791849067790721315929178242124211631015360910020277907800539358391514998563402351715391651738835621107519560785470960754691768662969642996380983692084712393303117036567352646124650022956834264123634344674843129077577047848838710192146897649611785842082646905473768558810886890306859504699429630153675054176795038039571215998233248004740997010634672593816510706437841548156278909890965959000937334607377771525747134725149054030585714346876756521817492212346298312200599063753558353122984324456828060276534472873734285182171524641576094962477474199731668066528601656120765805519263940556897516124568233498321204932012207236404118054594622502459165383575109176553684075033711593526664419633052855167476653023935915639015655122229935061395743826706580806765516345849417439668504469924890456684552613435215237768985917796138568076502432110628636772854465270615368882818129512659626503051707656415738136469784227585461514173530772099013061732548513923107691339691844859400149065089255551441284579362003318360278987284513341546471549803139513917262855444013357584402114991179282905272565165856729514207341280082598072740553744682429078919090397321133682319623894163743467729141433331165285643853776454781678481405231970518882406047855996422798437059775020760684157367352788435491994198645352677245167622075595392091460290867987985364705816303812569037003605136115028524949240483846656836565988630100039206065539340628029890773159315149837648677724746814194426103702295392585747705895621332706641912292474223690968003056700580436012820500426077596675100774038593467096990103882388764351715277115468273154512398901407856078879629290767531009952963894150108022400631614414645814742417917945886788819125147558060110360259632539853155208789200551092819027078323321803037389863363935671925166292120129432152916527725762474272095566313968794520983365153949675742387088394490804699210479213743089150698167854399463281903851809659634048212871327398233289829636816902648465159732477124362847977410290370520239550237123138745885375512396190397866851761098505331522331083268378849931631746614384159528899182218401201581054046623056954925517966887720899555579013028669522181118235927336767313904889788264586584226366685421272855347004146041431370175731741893644072635752682896432514191606597742577716686769077521255485008722170116806418920140415277081496219629650243206345099183062208984837314343421473784384197511528717731800764808369856135055461845081013466312847072175103145539625074579071237642739169253251300669988557731608094555221521221246170817623732515122256656369918519553061621576227127368051220946151907103760507414030629032010583583044465658283289520503329506098263520613355833366700940402913365202650805080616506242708235681656265730772578774390316845793717391151453024311799787904407191462657827662551834605596647697931145482305784688114171275060904020577990873148957534061401156727768056317455779713528779823943943847071110229909022685380130762216598781672204051274344710124114743760313018959394924649154955842625112193954557876183268427272104063082440833941362988547743908398184945522070948103208713628135503196047058955243096004536520528774921395945866707409158312370890491652199036696866933633504420523309796752080922208293270799555418439015023346357746529742832820963113361573952662642172870027671295285402391153636505807724560336782651614531607929005162139681257586428125605831413666976066275969534144323757469192613376517402145958944808101586580369545327843430414116988827486316800754793728025080507233303147548296457645650716905977361920586980105660501386048856907484420428577266027705402015935458691655217774187430855707534344892945165678319357913208243295328189667297935987260331970282351730919569114676651093935897207992069099368141411155656600726476943869445771827305047445934523613675412444483474648212351159416214140939505227798987257069689379412319869775945234008023887497321305171243109997068184497684053741865827290678143979780183670336976417240270375357562272163450079530889020963120238247555170456409098605534109552183356442577700673957043318774070861037707588481531756933451748617515552298446213646021771445717470098031749550942786042192550957534242841481763245044798256094118086014432074873662948637513033126074290814546773873537829130168744600920895850223525529957558436268949549367166149561600453906192643489745517262820015628180315849581696907208916573307133855144696289537269337099874708885799267032358997820537288949241401206360863534052235464265770224157457349077345983790253860433109290934232926594861335168086227735127601654105054144387539673610687612493529068289090036659606392583038880054000822152788360875615097183181145108083273213982710946153076914558911036125199135683162240285026765609331943532385671272534784237488863453769163338184002170085389352949753398676230861929519736789006796689487788821393260437279264710172554306989823093303098984492128778771968793725043189593759268875961819872217328860799657456764342054187315604728261703438716482033183495205618361987553351048502143004050041729041027936471719949459663047350141373468597882176143376203852405582654957592276320063088791834206997265252933019261282303382934002942815768962625774399920181976493001210321485681803472743313423584066394537694050800918356736510532639128922408720355444175425717866736420486016743646793819960199612195111620908179045563192811086776722962066580976036909504312976851516397309319119477489986530858565207751395314027325886770744727328646729608475275325382826158126355619648524346947278253490808184384897924046945523483448724936488184398112463762919780404202370496807725869330714331482434411460149102574843974992840899457059870100968154752320994230409884736813539565261794382699750435250134722424890632059374883544620579549760883239627329720006713830439783030051727219815332289418980658551026063726546568764806540495005657637836968696143104688470519673418653409705814202425047532739334614806567149106124626629202150059206828466798277045015926279751241415852562560278493833301663122651728546363773316260020272080387815453077065797308185101576732677003919742134123792677269262573381210343542124307704407358161033419577459483961372647101147758160693813078285920960590080931569524241534682158382460693940681307987395884499493276011809332618334097976296282192569319512798245461410825479032011515726035912926460249468126011652260142322860774380646459124045581756591853721163863265265774863196748979190167408691673032333849613987905127501024297670051508333026219172552600955884909878056157107602867962639562510140022156004282952452787540098590048268903930421586628223059228557967629790174943864110373535474013075505112614642212751350918077256934210326053006827476966422848421276574554720612695923275566203911911382043927834560432519133447010017352430643073481895879816070456304422538512310325725234378507679216156514320057898429343830710036066232263790372212219239476676303154188206661982440152944000091425645030444276010476996872656648813015393745324482397780425425939932013141457883109949466495451026807939994364603642723527791301480311270728885124234979738179398854941562081465988314068757244661681958846564422951679034838333898281072328772756960236966252633863995530405087699031872091443840898093552739847608061831728991818813968172740051076695005852469825045962098303901373331853301589347897406181894288168491245699807290389938311897265941557464562110447407040867997464626071576054066635048187395628878319611884260320461355466841162500891354210856496582305804741465541843495119635074875289372175253082825102584880496702162615943534287182575685568351537985782163358840456910597550673783176923883291257092197128436976322965716035450989336180505743117698283742196137379185534794313954390063776250987236255225910434335151215098516808091220181712884375380894127621872211042407888775671836628379938905890888219738646559999508015125800992479906143112995813894965760551478353741851850163198106997447352417658524896687621618547567847499543165518043394141371380897846704772851925084872252978025971762380923932142860246416449810732432791459091130305435075606091609513931192776732832250612964279916973870762259214447703944611440258285222584575120591474121967344327072003963720188841343962029291983890410267421784072021562519954427657854812200912481848742411434437535812963570457775348359237318496522847184136491125649605254870439494881548060710032038899334266312725593400437244499855690400981367863208717897167614339501895824135097254644420225427622560767671876719599561776271312866548577130016523408091817649618106252473013253856026639362477944573125199369302937331543724760269619736963021411767132927176515184463165257406205673441829859236419673607395066436432662834853803691883580464142645961264948103123717400632915904579722200388753376992402515760714257119995572968587971392109145690401508367533155338030060946672481678913929196417839583106307664142495649934202977895256018914787347466012703439099971513889188627883294491401608465532192466583793087300747325651498847365137798096679488305952816160328571704999940081099389195908291931353456844289806760233920836251470415483162687975161525256624383886779796804179557331713304215438306644537985119383274151196758676784731052398111276319323767655574745326930021649212681406190971096413892614571978405932585989257526054999886461124840999047592451503940122520095309620429808252332470928967271098040545019741914541767912760057151311369199767265319805383913566827986007495377102142437042326858191360646556808537968684066575579228123816817182751084335544508183877844098061047264035744617895401718189573963014936115385387270604073036231421478226153095088784096230190578132138557299072430032580513539492425269063809278908490170977332219503976720416518543964788429494992517451185852921081251404250301778629407734547430677244837767671249947857766788653811592576534314032466984367688481020754586481543956355010666864298375944322056958191932496556710834395276368001833382172118506039856025998651888718753151375591128463238069675651652233961485272222819039536095209330227849970800326563341086971987340413745877138412716517188967998975399673561752722782203641488541867209112063086526554411002902871795868233930529339284241852093562268974672044696211112271649923284768238500441141038904445179498387359228695235702141405477337127750346729166218614918138814444349438092872768376460385956022334239004043440081386821663103591174012495030051170589471433141229247044077876757063113234586122298582658326963094113315353607853034694103145367799900455709564934365531938763579121493913258242567542086724445127137281464854914383371918051275369143868463416001336480037729556415607256501862476251273497602572871134823805423594880325734160925818167110617324103794095566674611431908255499059584743791321878244336496979631438147262393320697356056069713309936149343488449378470756539066387456773881178722706316429013189617165722401418165920452653039268107254961624918741503990281723342482917176187278507256337726564649920552735135483316815551158131819680276663927081940758718523035263996789742086936922825657831591043703213178396842715093811987720356544490235786046741944294146366016632190588222869435876874586715398103460100719154375484892115856991427601525936839654005702443671385986311424303019490255242911291222302657666437003099085401239670603633268724937050924548380884632346676825160177931574426445237459088910652489425476934955935726239524127158801864537969412872544187949646361276172477101203925873908041888194289121810283444327937408738827969000580509835904765694698178239110310146345956873905507441638395623931028365652519256755443227246224643396512244552425853213253640156491439392227804809072490984015956480444432107866606895298638157395248145135384311860306089095498200363905372969948650896183065608715024574869100106831059481362396583702439973078320128285951321793926022912426584052021097095060056604932813430651667712789432865793733215137041657209402124986165525343345007181098620286715684719185334322217142380497507574743406942622804538874133772368329702226053073339199488791128332503717793731224427495106701961976111736510229905591460781697596483781180413945308358998049589233292347863292453207394229762792408582815110768248613584804192497780159551640037713046110014581486581179279104243716557044499296162904677283783317668292448648717395404742796595270766392190302218623678330544950124713828749525091163714529257343196229529625200804175967332807164418934230077986588515537913952034622895980557005502465958092634966157538247415406628051238492592525797153332004844044676681349649293603111117749266887068863669744510572504090016148780548849625136978870723053294592838477288067775493006535077820448310437998666395535552003881838724480603617855176960638965821885473301248882309646444048253052691752908715622836422369267386342447943844853449228973559306904840801130522662308868438351391315458321869991115590968213861794639421336548798270641175757883248185322757552923944986555313532435617760678614457788530047298876085528465126012948286027185064739847563906132324244728134596099025150162442567270340600198516305821329629115930150781809140053705115584103901244733506658481428012790699327056144885230519557160406975310779739210067267993776450276559292981107199893662498530037063815222754927209840848698312441622778854979527055222784556033554423882522625510183155178549128441370504080013272573627601922707564075459547408565369216813049239427841781088095345111317510806044390732064358929885149192947983533467196494319213191717937779212319136770285244750743874393202615558147872605689403821618347120554810222661027180690394661434284295080851267361438046990928677756675897940525988510814646385120345943723067109748973817985755325215683754927568428087784770178773905854042595717896995128005671642056246367611649655401462774383145879550187637511320398707323159402687651100035838709062369859968879258240793524090240735511818665128592302580953004960682663045678908239899423360130565920434741531680851640818174325569826017589161598586139898494163945871281064709156609812701479333473819969410168950639988725056685710691672415382382828135941825060657346133894244569681342022040157032052869264358884243292913996393664458727032305846386404967074305557795203129016876485197489008552325864856399544338750412656548342165615860422400665200171130069023519788869811028610703019282021477015348263246299188002496386019906645593319918690613490449395693666018543132510265390807748724195278391234215001069480505459092075616103676757928041578188393294731028600468839089770930656264616032299631458457910496132830152149081341137101286188951248665857031055932512087221300192550851842730682516643475362059757526403942804172451471175900463431881180993731695304281944557060932430025744917490415841218465133061418106123650259956664675694108790497136454901393228714456519277904531116789238769377657068603477095982401359841906508799380468320091441702614836366851451563492668676179109534617479902192439960990790152009651750386000388759833187014780183136405140322607043346634403639103679104234102478771599752732315826587526758826550435246442805737627368628124566711201563595390647558849170334319362615141774023001611196352884654573204950504769678958250891880660597389473885730655194666635552237183940449264942169216877156007813465686843678629391715029177297050889141706936239364538813529666737640830697413176291554216298875821804661236603837007825984684746994397193687236221297874858400386168095320070893066691138843585137040157374610569560961055192275595999266998639089594633485715970392290780062336642906882449041668956802245229209512878093869989102166705469866928158952731665432382074604831610833092345905087017711391578982756683493231740271621555021635693940458100422632045820308916474292069279308691211360841408718900628842753736997068460853720083593867493282131638821521648797235167915873177763998648801913588454636851295997254380460378789313928732893151201216243647456295431720274451389440862395363600559286024610413241345937218651732639380902971094685799488972911890186405089645434902111154937351343353571395089224381096735916218483768893795618543953352340808115926998740613648162643405240629236195788429402360633774566152037499153353938053173640289662502875077005185301153503823132018837132623669574815115686978627011088385946780239540654717821459541872661653634189580686929245733201624168844824279234472080277560785294117306129572620518489634347275745829592070755776940002655813121983763196582013697611893104235482871320943280632527490630767160802614523335594317319895164355354812197780595187963807101961212302729683847916217211072650355205773876620995161061832246209476095852445768885808993485444317845566012916956756007810670816840740490048568729289699725230971549072008255371502950113468802372622233357692073005779284793112925383529025918643189508963914843532174087025584748503053370575207532791608323514492654729350222977157328270973093378782438792657619979528925661222492512688237492010007707821042837110215267354217597883091142866864817486685496068682146964877760361492543845087185159821571981868025390422317772852958210360217758687404861301344610626733922972615679019269026908323248799121510326475965521412792061411533815740998991133109896789035869581301676951550732663858200592652678475718006194803472900482319545501070966034277620680015733263014402854757772211976013858791176673478030049798053699231886101490986715282961500060694905330931082996506039180927589909789149046767488226317077026073842863986474653871781244269959576974710063792889183685110053503488955316356399842944525005746830035262356286378548062628924344648263997543902620500723995799001370371354597930488262519086783251678201059852561603327118694402702698045451022027479936815923731917641161337460828066433448359342817706939179672488345177525515755487256350747404990155366768352572916774707066129556113779074415379986783526652963586878108731846266558525452373825243242833896058562875479385102651402576634383538244697443401486658738402118924740286319455286385556615625538312278626098323320413951304979304177888737018470966699122039794039084985490601206127326843094764477193437493623638577513710180405746511013519955312967722056071326633857342824048325268588254578031943378543212149050284192463771748455680183329206635961473579943288759543326329468094606228299586299967881540105788470720469884980321840967936647744162935792027760326868340383999481318483368031219792418458281346033637703367800785305405850546716663394587351454068536626758400506726991024805992193799735510534688020611088522409420628595850017057272247363646682941359926381496874613218811048414639258167794583671875724615734015166681683039628643916273402065326751401903394287442151403746068624256162413221008591723447394015618693944988528275617034391373203222855160643171253284419331511740853078224870991849050488675863403333130014347015581862086460211664680064620486673431269159607346387595106512905113937093371087220265238886320134263622674818753188095501116875257105799456697220761072522210933714048947793553311034462417902567213430424077997190010047741092993777192097407162714821038258782327426498880537362212603419429900998156253412869605033876891096891406499829522401196907529952849360666559031367756607211835208336357254504832117371749120105718896127817611729963698578335620137614096098376512080334626631225057025761131007314076376288704101169241571650322322209615785529092088902904082181315411646310894417215220591372548189609512129276539926036179216395998985010213295225138579912767448960289256229405796615450495337527610372811226485360797053331103666884419409642641244866766756479766656165512381048198906960822590113839332970656486510870561192908065591115938626166228745541664727546721123893101543653449323197490837883182208821431039618717955656449913955799070532281943150879349204112660555022320893923528775201279258016584973750922493684738489401744304339938818573192230446679318738844640232143760359399648137330534316294512865761154653558620443321118021745495289546772188034600956212398000719806121788698779248984694927948431543833612952759298780025977000499309121789609843764444027348699517973609616279792496284897959604195233625477784572854092129415119040055284852356926005100980395666377371121099977114993728971485691438033736447311780636586754851748336589198221855644234234774400758358621863469426763871109809943330172637979995265216191118354986859786192368062743227785243149674186608745455344789493048285768785046248409078859806717040618515429233726913396917551256164300207012692228234476249942272963504211985903076623725675332597864679241662573814710644063211356280146294915682560102279677528077604816956843607750024510641165933783132148438684315913785348844842734143631733616417078311027269725566172681934135342028550554854763218883405942515638521349226952786884044856199525085330090236620840990858634710856624132731715716930443946856950796756602095771837086190640107125609434794396751188169420867492350978661465237334379835386966036231094963700097559487317270093642196504613373603694045363989474833029895768998236304406217730068532926897809876627973903596045292948294927943066773112380889022916775541509809639786290427814701910819108241231253937349583478149865141651900172496554069164510535876272937929192221250514040684793957965955596775367012373150294183101459302567782185938464324935785105751632913635700887263372015192357654386107314563972756324860179121452192030028375496395424487070534038429268887077856718252593280857785884692268946268719015153911886106611004997038631282492268958499663472929535080292156951315516328605326421138707790554985111125630450827928825768368384329159148343295384019119767257297589905397199829248709724333421551399088324374941718166526656777960178828313496255446843433313420043618861437807214905461535672958126948786981844477211532844141022578995386272767710961005430629121314996643809046901771136388237852845979425618854967421165048563605075250816405619687614746431886751474040901318078450123623416319011892827667736911145332847388163065106931055740043419156700908148231483418270901414462721829461275944217214864815739044528710756196330622709105044909537343928466075750516906162022234109376644488290909114161900903732882163725847400423362625864817217327064983367188431270184275561555163584993032367746258221560997477177196109544211639550558148272871531392948125523791957485061381007588828155459758618372194616255108305549909394744249443415542142562622980937941766349167939502246408086113310838977480389353102758556230746841425243942089350540569680668828256392615734499351932193209771953345311184152728626637445476065620521690235902493302782400076633454511882870216450136625010200651560815800866728998495556333255940841633878661622539937301390872684836399310984521454746304716368632711977876522812368488954926296428575176058062242417160827681226422123721865419490505955401503102228777118772176168072551942264690594496680829292031535127199008999694382024174063757294783753437903407758080911989287147417191923354828772637184366617379429170969877336098695265876081423677638235391066757718011184192773475197348169843738059500199997620553716650681568314188802103992385553875107915241280900952741630122901506486157261634979061255096398076770704434349304032468670063217735367982041978170251854698121298195637346265244255745263899501131751773356831772498426306363210296177821625994314650009922404386538539155540022204625037776311884676135618177702718696303344208723604326511582202628979612256375299611092088896371074193239319725549922462891995486291943110141644865701314724938932628479152156752537479338209106276623428813388026021777152616438156657043826349826383913032403446890722384857624122756147707343890614586427858439485334414608636630284053209580855597875348045045555837835246070950895924156707056008271162042893799794247199274047377030542645111261674426056073142038726241894029668565959687878794685102591595864009643265674256745635613115187290520188286059577816573356972320833369802128473958913166527038190625737959497019183929389616476838497805483802000923295058189492627043129388812180830162272097603043487382330307134850504257032867216330580929945707698361386377279947264776934029565962758093937998648903696239572996958484186908428352646560930836006890596723397423998764788498959814070514160870990160376349250463862389667690533146583622907252799338513555935831870750198793591265780816277385971691022571419883101349640342505808756652179721380646624996741443284380963800704306156273819118726239447894756370941975016249880213623390444546762670131080384882235148433213421852627121183987797144796173844691034407785378398393352182534647507160078392668449323848682876232517154725331262556244610286679316664482856314914967864325849643152127151513325553014179038866244784515088622316003151558308447586748895759915887169310872848175233430049787954781480072387244221917545383922289788223321762057280821444350555555905240402905356995129791577628301492913393240461071836500092977343677896971161926952944279566740531119233668640314169342989750751905331525455272504376595908706045095732195059896758371937217428407552958810448407219091330799836971118776199501863721886890508735795245206279517811065364753601414412876176375959674042594597871886592483818657617585392677694676933103076769090860824388928858510394509571990918391218931144942411435075466792671871929858544852876234582944919957839506130137521860439637515308234260421272741055887124457913256151161043548145737082202514918914844648169676542082389958179753951614283321885766469302615331192292189842109841488037257995238579013959112909468324133363403679049432282240975498855735326691873086585133132923661134891508752267565658164151086713901222466209460379886603460753463834697800767848468437832579253785652253007036849300569060203852189600617938788995809631497083230987503700801449182470442254703114172082389080936456656761542984433070844437478563358072544371396962856318669907846641173569582214382366501349078377828499547829772741945471123379115801460850885330450073965531919192499188658008035991158081636344718104048788770833399831897058924307314101904711171593213723814380794151701060335309007776520883070015786968132012716446686291580835375193735654196413580294016501216569940262398050221114095972885922307001474032647989142069053238674771920095354869358825786075030469013637451328427312937596360231366187908115077453155708603498392455268611446246732587920952718668481323381994675720340473347749586752174187577053160728050140827515008693146371206620826991976512710770463688560246286259056518695895972057873293222418338874465915202923678719912401641984539062597057074623313906607791177666552928521697076914306631292342000913744108839055965006550177544176672610230162712221473964644586789198821489782497641325961057928111753456551435793288109252041272105635559142072094157440694026809086164854837233204912597151217509944970515071280836032088800383525312232928386007881067476758554091370010949703316327524348374320846516645954354619582291723137876794171240448766023376081496527079578396393839632855964939925288529467701391823280020535222903770903748925172297447076671506616812282420971403031572233849102218671804617496063720448604239868278632959467186798709693447574789132084349435574844726117211597079763841862663637021175490674865620641630563009473639791468940421954571580034354424260912537457981584382460657933509367936746379034737722856533701083262108985191200202313057280051339184237709207624943777303810989191964644313391333758087678085155919534240350441060532666351066835767220281395096386532873192899288161343457442222953773104721061704948593323460080490209577608326433196913278321703705489003606713694275430329464366139511779906178412308737506261871673732269349328090280181896485944025981961490676461140404292226735085755687378948923122320959038047246221988652755840214472922315172960882002000095161801978336526614047382724206978148913167576998046947406028015228491193868968769898004670781978794192492586995215918339563250930430538056996636542762974442339883421880893989039973182102423660827720567993138226841989849040659809551915930035137953176971630290611073567174541390733199186330099964301289452718772740801896670587455683330721748256792101358759158698069364472463446072098712681302577589023498500238556433529578618499268638724335423251102804398615653295877138953947469732328089901667584053239108580101272475975118358663193103260290792903258199071175622311663479303249548679245184749525258322609477709528642572141799187119854103353962162242744560855965433205130007674993965267787121537474271753289579627296353833849965641707115215815793374634074291715819448554178887894200263406855208243845033678855771333328137517326792023286295407840189634748128824706874647733143778483446994990490253005994205584348928011920278009953714278882840488462487401997580456830412909020158635237536274908803992129692233500175873707080576224506816791228592887835995856139301226563187183533283253451303871989613665138030135419075362330797739588760609456572426243291183019468747960237409826808756468767502986264143537774538253284859729980668000376025539803546748113368742152967595276944041773486000271768542038211433974538722116137810462706737778404537287762460314105322108788279956076569316113870986063590578107403259582012713204929716722115925338630187558027841935908909668433808545134303991398727465878985601514183384435856133437852673748087665168707551090711284138851828372583990557465456709695256588148113850695758661562980290455758806155744715748507032790123610105217524627523845082001637628237555944089447310507902827802115249879112507644608463900979294028057195746760622538756362213710122558638858987973279028592363418097356283842482128959062923169454261080462597591360541829122278483203503929333899006611716123043468063490950678907099086109287061596538899752363536737896624927907952167786547872518231963624480659272286369021610500433103596230992760374035294789752201757808555221421527868624803901718045553786796150529154737965390675163299967336329843081422754889281595853577607774682514130707515435190532917705022235069028984800000156145073969039448613690656047954605514140942055708254386674790314923035720153645996441820787182180896219107649894475874477335525292856825066272972567135022555989780256946243865755095292154080043729256356127796978568567156180928425681021624259639466536507949085143068664037929266589966531510596549822884785586780752291476784023782115416345042617936808460750455063535099594324801562416489497595776655952003343064366623446894339953878821196274146608922293194636309884155999128318186008716684661206095289551682665752311827971992861338755898093883603813160158387346898569200988117934539192297940978957958905625618164930187332312988121037517845170718202938749644715938044803547494714989946414182291550129894384671288626491887519018902020924944079149426775941347667453048810051034925418792674677304783965240523878134561838931169929007480201623301826814296046375365477473060654354311544966983585266429525535067498157678420744647810009182495026025301114584630938653501063348051077978082815773876884504204044411730524839360565220608797751408807937831045099717526409750759224028566732368153476252088272548573404607799676519057327927620676949909036504200087149527019931499943999077586563226245981298090012390932430874254685184099081400056933495446866235622384016631775793028040142079997063187045332375914475068204145390453568454996728469574187849000531042179801183823180164245488900402704961407416026475111296962547671276429710582212532776026484214519797080472628118742658573175740907382575290202870442258551182462156612624184699701689109332783211815344905884901889629016389548892449855979038055024455804033642262736604865649595110540162876567137190660813144218572406199201938467410675391550250285321493617072544119929872823285145029929295710141687642093443596169131396018288052322273762691341405393493238256228264276547633586386711824722060049371476367436025369883689068562789056168439821928132848996719864809158067953663292954052683186287502851301001586402146442758077722308826456807607554231553206643301312043192963472267350977790603541082425584115705817918933141815663421499033417831721629963942378765528607245238266609119970273098113728010385157917545242614611022064971155446403614127135051155057077066839362372661228243858949343675853165273574559309585547658499450227406060350032593848995264584015912825196305935756708318157113066554816784270083006862173970754063214013064724721444025212773728562604217108030243319513503331164989691483409239268573584485851088458510690784195281990931784008388684313869115776458454508497905249484791363981320894114315552752047192476068739219717649965660634418195289551184434040713887240522789224128713460590598445344128453126202715166784943084300511130543458278935997678686372441141115299677364394474992326856525003779943953553408883625486186101020702772786302157323997154881640078837343504127366985597486839711759357798986570938135301350952472933309367587171381841564392319683023968778428614472528851145898723852237725274722537307768978675867640228843936968195342907422160165450995737255603214421232588486925381550639727199002839139324405799821075720079013644690859819035073858155519116235102352729573588583908195270198287980378810298165501838454199201756514815008724964866846745716631670620370082473409350375507310155261574879728949733170064027603011125636242297909276597063609666996727562255286121569156243542518234083773071815844582407450731917361874178708835539283710688656339682855303498844302126828181000499237619446856212122219823887951079634357037069288701238968728365572238262854772291979932491077545065132903258759903392292689066835980678609540540070998963860150564767498432466552294629502416174725879556352502586409240188473574881185496206787279336633906983012925373815571881953250246879852449540898193835887049862239098532061619740047860883783628277417194846482786707062523276819102786011689902305816958465536962877174177599974919409125868512347826227592031114474556466001855135653321443245754055814625200545093237666202344588736339011947925975494756384229401522974181977310357435997741187815947294600507927886493067393805737645048942495612094501263409214144375161508731308177301515351114095581451156971912782720971766946651942164944854757888529443027935564111221438991503948121804803244499834087739438818170858106198011816922593604503362456689598061068592444745868857529552495497001150666207833235115836512463910005324677576495022434451050714608955164836940028921243623074287073098991052569527142955387987007711501623411165282675104056982539188982992286845962212244823937425145990887656501414330069647123469010792921832760280717989846134726080493231143086607151097843677203003266995177306216279296362553066473210693824509157836400411202820546183824311478881037348247599420460595462586291415605891416604565019424746608261986158737627656286530153261595368692423085029583178801730464999026185711673785723419254663743740154481585766382496133649699965675809731110292593855813777378559663213468119271472998925787138742375592255949287660439211706327849734680859017607116397053061036852022333341449076285262508937280199523442226211599105412716718682826296182516322580622648064774380816236635730155480918255575322629933610421207937299913477464417229172969635016892896476152048348378331485996574674997642394418055492274943670243693012848682644857767303966191340361736166679993862135247098725931040481202398465774940179860259257836309480953687778569309377376582815541090606040752931258367803910053976728617862198388988477292268684615146862961280746283661920246725420991000056298875391420690866602783859424262296130517005013766907882292476468844108183634131065431974289275810885668470828609746277896626629468154478657405727627446093544760709789535691201735490262344022307488084265860546856658707736743296734243542647369282942384699634386097881582339389551074042756048513588000106341348579221455488893050589219320152308526535096893844901959061147359347447256684574188899055517379444775162272781539070917858157311536812073415666224174031934756267989633424955809997783633865960170733130978970196583817875160872032809550493934145130266131251477683808550576912075443907602376366506822411201425903622380243541150567602031366793799970404707814336866467944447428593037362672395647746651063307916900982337229874040712694848712902179764562169551806880649156992977934804859634257302290310269372398896192234526821744886052900100063639079290843782141016691345799475582363811182114666820666589994765341260095108207665493043016574098329612972220816031336159741925956107554128013793266705425616908347158618605943647996944494585479866170488301833454522700796811205417489946400663963637348793561502539529966264855633736946551938079828515540061509427452218647031323903366598545884143518543500151275855142701979819193294929600690965260577496721048388874153543668157219925115409304509350728911529497822143983947756178528622671677734027081832969237205352669866217667224652508124099329585952852143984001460620662590953508923961893517921850305187827233839605621602556056350139489914758460684143016608120975561650830922941360519266424638636503614705339786955958052656580654521413116030434585133899730789152551865940086681323695675107814464137578017564908546152187567484777807543796176317645979216409413708056006218956045662527414528033060192982192824115848523020134055431621795595691188377137593161370568455056046590830572308917381564470352958000868862201680061160263865103637200164882117209808797730111929133650519903596197988626017656074774146124059052007388300956736165360865223180803564918597057452765320238161999717113942306993401521918745617751003897160577366206360388690542713255031608291287516305661413585221170787253416777742182392275038574324751701432448680631774649186551676941157306634961770529863636150370442416261792001856979895234311495875411281777184205759963854627090742862247960969768071664454332166210753573103175043808471947608698020564139377359672540749215790770564844068887680102381224748394707244825818572611093653605115853337231767293309564388984250179671022594314119635983356696573842517064409896853028802778548902811466286091559618123192594799300076752346282028947515996832450250047450545097041618586695797770250711524669907239359867216177964245890421393299655115706140278700495547661059220612931439690783769498750678716155651095803184391240155313990878796701166992535551891892691141722355505293811089841737128707951316431984045315172218709815129642948756981369385608279018500106989155022198270379716321050434904600245041950891021136201050356307939297124086571367151588467046084007765946795843725498868607504805661116072982623578890645017171630221306227292939455613268745405879632061617165177592782268084350357087567936498169228196989134722891561152998046118979750812535366945497035872940352305877900623849511723186491099410028303981356425136547769273504492477109810100665466351543507922432235199211666033107619759826470781076658964752190254584009947347638239871000545935278161463126300540205853524747141139505561929868487914446482000296030199151776546505512895086945059429861489681570136108354026651708544983079771301135898819076982657423116879119971681764959783991970370937716737650715797360074303306954930173470046925354177074620070107067514217162729588741291512298884618533209161996188479049151578019899606423397273196441070684004410148505488788181709255756733591408969689570780478858153676204527176316436566150349326043906821491405802881709971667902206986466283552903576451629794274113318063203158612159726610650348267711811516143854343539808168445133282758117001178564878884104153675177487305854782362949691767893639434088674124733793648057148594375913213036510377274162639150952023653503454796072894597595695342659828338261926599166271471869034588239873849340256288078904825315539930343517936730429287294343789216451642179589524418358480288536771862343015501770551134995460869276938130378536737293215939372290151794832202762342552705243123608818378338698501034106482817128297419360837586421552205075568718817414862493898827808863208508939920327191207470805544571559437582018603428045641961469793166661680396518090442004064277336776226784803315167860965814489397912106035696251881410343933669246832945565356655998047210247073168704850262484400392208896567402709918042319678881051136766987876656230900145571205882979686082341696313759549371915901992450704130105756697739057457487209732416920345864599108102459963306842986530653911038626674194567848444704927569053394884546393941796475806281486876510457002439217464126052973648695588058177132252088604488645314718582835543797131525905874505359970639641466963365559119543535655075722258626662429549892274695387688193761027192724607635704838584047955271157394413667403045038952898411142952399191213479772680256856390768389209722223297838011786925108428384305796498458097202097523350884617111988749188924782837441751734861226116435667077414215751609317376715760679778180554409120266529733713009884334399792198346017882723509201963363174569620054085634962826847191441199984507703442047590075673916223597417885590397846456091600928771025267198367175222932944550021980305592438621255544236230072457054627414475174804420264654103864607392626868123869748142287275362435627726619808499908156909630508262671927690240966574278974287945461917255054076026397432796458088603601334134520028565839348017237617012802477160250403623572253886530008022344938155750672583818098278179268806333212529510437619612633154750870287528675563856095219202938777555306079919566520755616931832107020168391132031168792196026087610218495916456686865780071800025000246215881246404910927045539402821477459036481335766989204726483619272763909223075006677027036603448839132412639014249785564740348679991792347203151241122627867579130524335882801824797243836334924956450628464148333734444133472236134716021733261951260278908783531705384013383733897022753139391857579572413574263090943447817513053140520144675500471245638782678546428789234133130160398833188615521161740453892502229221629457567567632523197823376670409885756113435190867751289794599899038808545048864805068288561529439987310257085356382406597527268259883583705953622932555631913556082695477550132874223528035038102717050488465256681066705786714473381837157619573976246496334679433910490397232568382866279151138587062626516547207325675509852397089341338674969129797911943304286477094637974519701137116831642043041690038867649124043156151336143466463057720193138139373022362034785380044945953259416155368254831703188218505444027070214774012395269596834950924850064606804664530904934932440881310377859391755156354001450203115299220424727488805928105084492775587597907281911001801195010177128053785529699804187876388279147193410202930304312831514445535827012266811989004566463255560631588021648019502173074959311755619488472251325211531697276493772980632607249494459886408524894826404261588791701288476467070513968370065327076768095785915037676202589002952881976895869300810470277116701684534671495671786200428238110515650407879838060253553083287291992257039030769353047741919842606095414624434756262828361640002530916002848404695422198418952033301109788143117455276832977080665468174864428967467393017071352765488379564665722081218777010377866332625701629900346208710711719968454531443376819998497322844148694605107033125681755544780172088123162285992655119024761601430583772598452492960958004546335068767757232201705336033502956484764816783401714140976306509900478788496681430348692895767872538366677312411181942630663641255893780221009297736263921368188224640466408619408885209363012172763933279261023264223074175657550903247118264215835710618958407046195015272377254537163364349369942175688084341891033924540545433577724824779576297728558259366238396105705688613361704627994144202325233535161083614936169345318202373863355363674852401324304776529605515864187180769174471620001195419190349504258307105003069435507660001938446324661219651667121925754595121587862979738382335152484245776315680121064889637928195472629006982747709673960083479355820681399870909279910069103087609583476939645366967099071882479193426165181020058066949671210907328494217918153108449845238489211512379017764181877134830239009384667676241950139188964072257733893515824582959077278938219916240217552120544472952054831332252946518877706672396645575759714851623687771440162447389939077602390472896001537776062364645519363968185871070883937115885552783522798869093959236864633481631746938676989642124368638034711722212085552816828873213555713847195522990957277941965411046512192572743841591157938943227027951312615616218851908861730792835587805556276580530241717774325774796334214366325300115607767641417122237404380537337610430977180441068401644282020525338120694029874176728576781511270010805373434144451293872356881353603250474182133072764448084373926968414264243852307107601106194736497898225563270203463163450852371578896292694209538433190797274501101659269541661762482194728168995667229632448309910337648725596217975080837661519830784408891581513660719167423220821100112764368419008344803343208546429038689469870533762291755372487475204611927180597163451338654614908860326614083985833378089639830423900058079848499541682455508411446021282111750918142654246851324854054095217920347131834613212493372310734854666672189937442588444273213107676776587279951367544448837571023248672215820887603956469103157004020528111426692798129344941233741286957661366403486836331146673900322910725687803423184680774631595700557229936582713036458967328692272867058626062967306930124725989275542879589895516784888042372655077376966097316889510786219408736850750426457621329555346612973235951940518510880172431437995704265711585467964176168969497526309353691076277767158915467046938450106087639436749441120709632375608934979705810475123856039951792616956834573527509051173528406098836399857309261373483468538006689541169101478926091749929999162535447145946227986904510143142483838889453438345233967070570011687715243471769311789532699575524931834966045119094242551307829385661205588136194004144294559996426866962240894391980773751633372824490856645665795853091839051109930143744027258404254230380583309100387488731527186292007540098187263043022694398047481887815293635533735621951481600973812989440347004580749224784002352581731275558795115169952737173677599359003833652645694685400408232367139974112774733813533984379963496473748211683930666054281456462919610913187588587154335079601048609154287153736530655271566774643965840514841086291544305926228812224958260426612350102316391788346223264170473795684726749735968680288336469375692091192253009329438750682031922953841345849542828591410293403867480629068356023348231614932643352632218864116044837215571376141982800314202863839117087594891774041352882897175205289468171601685490437909491684963765326789777654146718524591796139643622855723121869342147030261588819573993264529664284260054293316251595033070456499513224097579700416399148178899173570920037507107787907261332775576480763994629891212795004857909133384605268709533500108747565310808350026490898996145889316745854110327606790471797712730482099870762601869750944374915200574391040821097109676710859043894940703288419583154858902459832936737206387740916235347822221842241645583058974967899773662699151838741398001796719380160543901757545402264459619608668501289393967737961329247432974998287519636762974073016295150135659063354699855546961894819963600533792060370144418524801553650825472624564366086996048086567460019140062435064389743931804124329896097187518085277627988135912474829746700920844659303496235466766693730762678462381985162315190498552936291451467180734517414567781757196811677484802953166075847588990974851560505097367877991720772767362067384672784504836378903819796234148370920644069294290418598487313963591714105501205477010727715485622919966309787300281662439588619429262876456013108233063610194277254386026715830861085664536615108235741855277785302499512060724592718721596047535701726854238175595342242999362561930399120645567447954538777866320515169149906431210011248855627392425213992462754953827839980239376458002515270528675600535257339265149859515906355516374725470606067897201187089752237141509919055648908166336214265271433343596005431141031726777208605915633638625880784498786872280017154307551483148422732201416887899602416621047598884795655425375238851659044457596510554142890079116301126965673869725075240432386753883811821651486507307503846047917313378997494638407866722247868564784791939339213259834890143699153676266143301607729182037195900517937196809092366453239349511261139502564276871208303665981126307474303421732613878999828535526825921150791724810075539572516537778532966895611486576812386282767968557729062222971893822685213545258121632465632987143149706634565764376631624278761333038224029053553933275231244838877044151602550495401608776945260834489507846384886222454864923260242205207518013640255038215631536220443208441351194517108986010186562456731802316459457125189975802788822575949888744732835144244788427544263304110988110493009561315844398300919449043330557829921780018511530825796265303130801972618296145317352867719492350004888671705005227061209556598645264664449850669680383463522939306560171706029097613641089419434346792273413961911414132591624960052330941530507842396379700297830942468485649848887120065488224437334703795983812362720671619172219120138741161375185833923609780784957645257338486435514234350584799972265305661297597773546335546039157893447343392766570497992521357029047178061101787526805146674672272005393993239916539273019803082688246073913829470409631833922132145814058554950863152961444271335474731207656779238504276470653498719766328554003055249973908246034606396526133861941922914016358489568659990707274533130100578293938606574865670530756446049849936382584957006007061796673854159212403066059082462823377258701707776717941216372004169481847019604422258617382003256978796917719084092462276496249977987060347110371047087756972718813291152699952009263797571798953779479423218834451193328886340250306516623027247297969030005765361126063382356147253818167174489663052516294866592116731313019407537153482945317268420458497129959770921141565267222192168424569628443767347680465673789217625557143853966969458933222510646481589229828092965417777212230675684589934233894867578920313506533833498338920157429485620861214699031526310635853207912928707225275228998641599620767099078316723955319625017693589147994680563465970440117779358922661658774013617522936680785689988757518453977883421801480803627908162087018225022782894945301852099704913257260048494408407995428004872651683400069802153583309892819647473742813477589808595603819543404470575537972433582441653415341746118051639970625243040203422823677592274856335539277460813406955703724648162253030589843955336423088674524904949609616770793709226068147584990168206350792787594289732809063774811579651446654631417090184396325604738652168891779816412430834371239930679225602269008688227265591156385624424356956817468623176136071746804980572054179697742642844161096100811553869240429450141206869908396302153589801936109643293014225101072540511985382899619259815989555671006488818496893836323177075012385937169881467643497863965433718419631505027201291810863156792244635506330723796703307331451416923603941186091488777387183391051415977299264309405824057369010932714727797344190080942805661781900312921742946229282614042923850310528941167275098427916935550855594380603020443610575309550133429353250933109289146905827287661763987630145936650763115174089716141101876187434785683715213640019492205745414223195857214783450315366906850706745307124454823193489747452175661858526627535749917649844395303760325816133003881973658407228098689539022550890913547302908989880121972505748847134760143019881955872218670109850404200575163409969774670468055805680449404746819789194497174323829683199290705000928412554874844142514189384770217109985648883341246614297034029668562737850097880046380271077517618353005328640584320798515145962425452652467647991841071962378432001422424010481325359634962847095107144521004122521215888396987133741037235149040278179992145327467685619490817466255118333321771481252958736623538499057560350920321907052832352908254898546331338330534132559624182033456375060957981269122306104176192484914822277730951209785755098271298506568692244168504358924580840587163905759134136124058075195691551887346671919562031523411243546355751751411027489806126755375513654873770562680204563517834345003363507364179684747931882690383085387722227474991222556189079028437587852587584911151664035399256548921736813482976194893303487949950699450689276012043666107990161151735224148367199711418447370541089356696134316239100508309366227149312065967371071026368192495611834096660426587540092694603934727833685666297281283874425821920973854422271062875372290852709586820622374990717278790547421628666626681046371343301464177449257390698896354498793550035795073237253409733492784743903676227727334198436657464501272898878919647447075976100051072188247749308493373936943696948708705881859833463617025993465521977873329468817114037037371151697793508513904122403324249739472587287718995789601810179817450165709169681701716377282733033370723240312662874830711099168708686398112261705956546584903932449509255693553950794150933111511061377387473519032909441856477143088250511764652915050697810550368539339395833389226440411638086086154148697535779720036537235727708080611647268831614885420381194988952083796987984994457114605722377977544211173805251023726098759297773555782703714848053416326290661414819495562229567666708564618948235979145613772066451570587934610720027763700338989709624436861966240116042587054837303839794004846583538448507039822392822800369501408123572954203870249838314977835006009816287323879198076845563586906105307888882737923910231621609741304480760496615994588131531838675824635446036403992108092817147672344749719424255900219533801395610888064425488028186509243461742867832571596784176070201904698142914851171240400275789702051237315786459669450920878960971629767944802779993049906838049906022543784551873728567300273606758799943927497859030105423342350756548517624965498427061688280879633981806086340713770577477395354664856780434445476010855865058697963086468212495537844266644254884030347611680796313232970887412713584201402110574809334746537111162920799300437380880574315696973508767371950866533352685263937275382121648750505151677493540053292328830402767988735853016193614088953937761971531460968836832038063507626114874493790897767501663006160749419661089334254741823287665818748952809275122258898844324751986723605545794371787881447452459088211257181014839616941852716087111222179407923738396683691468398469853632887611316560132822858012206188095466092457742504921804794699493144581404818109902838932161817039353933172891653010216127594798326865855266895777687955590867281410440854990433257783356845960816745612257472379536621066066418483816741128568814310109019171681796229716073758250891443871288577477679908948483039325435012636530633121983138850217586708664965027612510395541261249499738089771516142439887369969598724662956127875145082878098971130066530182974286370099442659490246330434643528630348811423532531320995230885936001034815037152328911895886182786203759481996614032992819647446759936373965102673396944456038006509044957545454564712929122748714887559934973534167389061155266789651604272825812317891659481668900907005179752853824084988012291733568445483610704481485267661510305968673792625833203241137467541246708074327196971705166941787508347853906927447988261218949357314773928196611552650442570424270712117701115214809581074362919850456110830560725254198906419232666153460735394412175224939532616429310917593869180949703159254148521027156082033308912659023663469539964872831854957453913648519739764762217465006136062514472605863386845756403098611219188370065294540093964287787451524206260095065786590243546190641138287059071098562228972221460210185404937777656612742114176575017030231972702750955326565006440109889230208233363840275504687225703990765381876130211072988969715339059461382589077460380047251811805718108227571414293129238653356951695810456054817874190119080964858920810568456577644475239163834743973984186185980177179040459105442149543477766468052638128239409003101906716290832707554984154414711456125844464022437174662215115272593213187571877821746424341809165980278991851342986447431964103046026523385537048551401494283121893001672061183253722529270466462325374379857453904842576777362991648997572977950463943474133542245507393912690362123889625311536799443563635067991468562910943699849480657286387612396263417727076152467376356006384786690294186469908031259247573530966278412120461242378489437511785740017922127727457947721312835309611871884290077345603672370932339349832123507294297021320126336540829521018329376721438244625387809051351433930461232938538204554808938012367293356572652354398660507946558636365847261400912159217938424989874449338385055027736073173244039510673488724996607339147902275251973112851929964269465212763759607955921818863542256123092531151050979965790364785888815734378992113249933171576047105771872115094478579886160501388822198451220155730262489777542235811336533950310625693201253840259453803395914376597707579202199289487056755681358855232324567298310668382118646604644315826119002995475857837842857374299154141429856639320611618872444565863399971749435241285394516935129327813150645811033462901758228145514220198489138265613616586386109464368513531067205368555085398879773327790286925267146636776936738598506275217506207524160365268072935462306439265877643557745252033803657975690849750560707486015209877063404524880929313976400247847888445976243432803644808174618102927972981798895771551601960937949943163435362373876211198862304082568758026374008221787773079428043357292238871624576409792744551359630929134519540341458433121971096844486153514533842868952677686825401250235166206556107416916823607687441012768299405501961978298433152842102139745461058806856605794464565677359643470069078004517279068651533628846067573366389939437650108226737089769723731268117316287944537841025714336757175599235143856517058475570193236185864182434785262945687229542746923976512062173025483904986021897420834233336334360282643266668144621835773859731016462413629831252352943543170821751340621825785293247856335301026972824248052009401357286522195995869823276494138113193055913369840235880595587092091241432792122337830544633171872836615259832075823831567365793547109862480413152433762354811353728936402637786273495760822659002973541509135707633793200594680076085355715763318967419061761476891334010939861688346531278573597094053839553008451512622584576995160839414557213010195354105530481949774660400067860509012033195757218573397875101140684026797712951348028419226166172661682835012520346854815968517644707204257029779257082541389684314813308789145167430357428642421344314754626283336277796552093624926394757038852105866356796340959132994504877909195082855613555161883695656803438348063301271402313475048576938833192678746187078519365732892571707542538771872675087512472848211513923768302674634806605063573559338450333742720221700387485713494578073802690365976875924236914096210696861239746035332297545886400325578906451041894952926840198732639176833370133811649359003659658987459881206208277270956551506644227327742641752013333602429465960760373678819930503912785405860194401071695284912604218456433824490245209105895687194062176355447895886195314608114022802218496649228607991775739444253241676432237677252792160549480292136881888724319228030538747784160057363176222660746052027506590835639253356598946866125349784016230708777874422557046030882316252216518647175288385646862043415045406463269683882111016009176925727795796774974835826981830665861856704631392738534708121349216340844119937121735280783512551735986186038229775075544002444798225506992557161355973394113823345513727848059047494522188432845970828351125052218329119135201498060385165229467966505644947502036469085449345721418583720092517284625596220590772554280661174594723816947866508653521864413596478269460945579613427890232869303604187453316624597894248181016878092887194597642854550596162875749226594789918648464187516146118251996545873421586812120221212001830192162982214647397334097071290347303119301163246961775416258936744896849891451143243207495295211126498585857791907993486710152067029524109332717861284976126271004290571743468638963705038779554281210815020288815643202546222521959052646330982817542897955657796724029995840639182084175101835778778218188274097724628719954640626106135211911908310868755671469679389179105912046474878335290690654679517497158990970862154788095841431416037209382979082197505793371959223470427386125509299422288606483066876484897147122845633849299253487209003539464917599969150724733314531323939200161997876460263102461332100022109483694491614090209725716465098311224299301534448800286613196907460491928308547376533545189918830734273156627556367233608323123134306020774174421711394863513314784270151199858403616785544388289844734899181411253468703195150336159726828252030890169631668543657916372423413602027430185926443483809062963328189479498023009142337366389282746660514635057640285914194917063792517616373197318695244413770122941238326555872813930105762426054460788565048201622443768279388707901694459533550779686970175323044143389674760860264572052870188907278694800181284876267390626780087886911445091118198993796495430960237534801975251010588023500100063168255756540151756280109102978153169266413570162227455066001208574080557402600409067101539670887824440993403060492218342898559646797821757771131603025101698652971556368936856436557708932856182399296342182247981905462864411022614750182358383700979277305751650806658191604048071209427197973693225818230689381116379078001777910770480652851566970240765114855958078395173907584512569927278591350652403894352523350129916188460039634611158736466032921905014244006718030921470167161886980265971688344685906356407107800280705602604605718939048065118669662422006611480135883218212039881790272988505066628092333161963516030390457645220756393162973286454123671242662486729705431159758251388274802585547895664073718085380148929955680221079586215572754048367806136025943652927169902958469144687829769726669329461447391925530366667529858421058763354112121932915007197765937403622789577917521628562422580007300285680028742926633614346122149304633420968306741046585481030817024375025023888416881520039995128571545269665898367600422035106395724762420993336294024388085211129100719916480461980407160014453888985193083724035419004921920029624068046430556851839008513848230969326579719265547435192855398405724447640228715138166436752709061555350788468830461029012762833509845621841008287867068384158909088010954252441630638509172417534939891222378221690830960293991149409922415160324060519351040663543248921851873080211981066231111492119499499185168036473375326409144805769205390810120980087028357738527206264613756597910038627502695273010776944328658582892693463901843368319074859759608177367172538131565836727349500623347861599811347144003662466312994739413161200129321764942754662929687730005390257886800671734779782817219071519016921163598639458005289332104727607133994595103299162880428171888713554845006818281547893180427994944838231834786973826577334534695279890130119026729300894257847191563518721375607559135908751760399999061522655733564564620685974417367677098101320769770723120990498844379152666115047827706749835585294945579156574634086718147113874492654290659581397806908508458560372399129572239648772410375419825295634402403805286914826352289848667758135242988311068998192425730824460425090135984564655929690591501853609840795965952074575442435001600544588962908830307655722787843984709124914073194702204432110209306531093801709904886301394713390690232218967345137593663712357819785396047662172544406329580685955512032417869667743433047437610306235426184036733437858484264159407965956666132154386748773066244775671228513809189439390055564829220355540093207946838461178609775685343141712010144501093688042683839680932555685900400428832927471320579015023488249542461921820569795723052329880327053482630001238558212908441789062240203860809207050824898628636523557075550392400245854836291541097804437432318706940918760956987055592532762550302187537645694882498832407421454954820135348328513403366753329201352639118831417969951637750717129960872346265995758677504856266173472080510997579455107138963021187332790463652427564034042044537675154076897761534051293658724750450073912964566211816328982796548123496447486240566852033941845779979634439763933437694754502109761831384346863921827783274630205901648619133392052300147005516400761455757761775487495831060196100091730442743106192833230457460504475875351235597526299439021761708476464528830318641360377023741380389538442116005380435012854336516671575642408622535129466198812021770829584588442468481752404265866183899083531575136610591881533993811096105276007473707476580731579656783666130018578632651215884085868294450173210860676758067687019920495577925997995884425986938196861747015089724133694537580903250287662113631174552539739929353232960419590692535655589829869175891216907567124472374650605530766948428662328758278018716419483640252672066914829769639879735062199123073623985380493306539524056175744122002780134503961932903221884916199365624323019506639736645118371515825612077220013709941643659992139001576003382685201125461102454929333934244002222874471492723000551942608204297021041245289639589244504935318421066952249302603432140567580883185342889246660749009131787946992510324966616873564952137784752752643064878632976425615265821211658589897356516628808509660194655817573506909194440546426236291733505374363513601118661217522783755363062901253708398865758375425985499226237053099355900237792905111523922701766829436923229305559668438008939762533470538603283112567147599605830528674737180003183901349604316671093664615202937794660115854795762143885987877399098714877615854222272155960803561068542516790029641965973260667975020417043123384591006430756063325731240862403515939490979253104283838927670787954658954631233478500019764063544030614892362387686621608114907423078873085861759298026804391034226056757066154123369146778975791646067844300461435938414750062413890542844802444041350134276122728513876228214772221649450466163700138772416643232585029455048601348251823802288607916723986775148711816040134867497076089999314877510998779811537060309909489953700046749271684346488152101186465887335861320735412486241551641977804330827151663000226992154007792904272074130595606664872981769098775454537837231959596922424321096454003584357991021515894488128802473925366917430559737006266432826368457873152003757785552386392723771982938038286379742495637731784846950292896652876091613779017801715894250291173626144468053474065172575933552068356869712906599920289862561677244456247699726997825934449911822171359642784671030623369852089997136937558511956903688663757277269024381109964281831881303676767920567350665610085326995753368024701875772711188695672146531648153006511119736061044305842976465225660688961395139747044144477072744648923280236495281926806321942443432891090249097270989629530171803512615320160895315405309689934811940570303691248686880521534026387939332039468308920481274442639307458104125445006935257400272591132855510823059374825630118397670350010587061285297495688908841812155063111723406870427598763942110574110290272578229203794853036282963967727914440878357642888811422513740363497978449392029400038635696659676121812668352102535215294335606850895882846573591020833460038340132876986401587900979160180850071904818196055779123018777179654320935707818735256000262469527015804834957219258414331235924514784055818155325450350737747901056420835014904798197117680961873637462012485725649987383319340368234799047067236603059208111814756670046103091286659501569302611440641752595200821037160362907322679685969771098393416638547512950925036231588144307264713424493175848222021568496721890393841372583502168420411737345701881881439707855613158637715892958093854242477809039246344019828707070007197815217817254718050962847864609927372113159772914448993151264534605960121066769388069351838097683634265968815523703884543562453807539564948332382437831903001555685068214114159841875296725210455833551385439732247944848570976495094152545474575175701228986520720703653971324009467467906672359677155964333744862772550822403435429932680298502225700822559332282737855338682484667504614492769944716314697132355064348901307743906000410267899978677376420747561017859638954527905507073124778516124642060437999785879955110591416927666366356304402318083358423849387193670736990385952736542708866851217380766983424000444082365424942154080912829017730538893354820865707448875816350583193320913597686321546272470696448953061501670422486743776827891906778420651861845813999625330681717213171611168077977174782129381626587916747108373637619896949908167648710608080130640700422831614241749146207906834968198531624408899573974740208233297382700019134940794240785563683602892733059551846247695359269879968369177696703080225598226905801882526887527471415840255621895840001319373124184776006355853712994707688830271495761770830252883800341359930234934204324798167141301717335921323739614009164936186891575801666232791011320353670095629356065422066814516366448324307708076234426404555644551509593401458446280917479990939396953074613136957509543480245777457171055245748639050396586143265834331189007207239819901278984066612891979566491249576612524273168184965359465362989002023574285371749790737954455237208104042112542337894984338238600372909023296299201807406730410776615887996848341502863233371441560625177733749479495242328758849014846939690292117100336579929218604538630690103748777215982040289974281858853894580760321837163688854517570365466846591376414146623961797415787441405158698534500923148125451433864652914258672727238167132449958045075319227363509534663378112959326590304468417275160823589569354298477501224667765077437849232414948351208038280815837586305782708262829254008685003430197059787524187784201638814560568001404736796724527621254432394769819407479488649408598080983971803538694746891897400465350499656732430128386257287561419551206967155749937673001004076327163319709827253147671426751954161947843587173037348390926602790544405590121968165786968634743000907684900665573225446481647781760253789405173776424046106070569195817486817231100766167676687378454227883745748336125498691873660997830982469337129928075430242010729520843595949026003503652754389611727522389867758982304810256780396426196393278447349103007422973176883992940365616746377154987271152250477846906834945301092665360116383319071198724288095878448925598645520025785229041535896499705071666733621450035200851817274656134043533488056714992283099617748233477477420215797242603590185122290013090402171652239326044309149124388618463555014543856734502670969189493056718497063872067154463104128253654542626665090400827118382066358867488750281391302181171397757133431674417860322332742949942767671531582393420888006887051440159141373350979388139505558923814029025757692577996514888063575753652963598953494952489711048550262801843189792933585061827815397556043303751660018501631889943370175302548543200301462294237405013616028860271813827032343078855420088782635167059461855662561112867938752873138103261302848560538588792764129612972842535960039984916372862183785209138277491592658469425874555182700447386153805326358554374951445536688776816949521437764046231735559709429426161448567120671181364763385962181609657722571658262951325159534700759940363140449428176388452557182690242868452947986013434656453203030712776561499361864372941103970225750106822515523451166060901304459624078926366999726423022734814171016484649826563620286478220311317843598634464207099024966725581105534718233982515241081680970433008743654773003552923461138537221232633212059367667397537535782084924602150539502746875216099624471132406703514187784589674150610731009442409598138065901842345147214325985864116209749203509695652697325407361471513170160604474323119074002656905593116070241981941158687094441735860393447394919781088851339302190251688747877181341936851196609474338260676421024524094129444804673752227953041362602304264022310500885065608179224714672577503111021703355501425331937844289590116939961671640220603712127724464041321302645337378063824700893839550751835191630360458745275850942966811064996998276862726021064322924021430987576294019740607876512449297606972076992933131145091149282887623433333995995956440829056355214570630199015380170249074400412604622610174806171945649139529216197799033917189021616730134885617138197718955020707621567495385801288456113792301552628413141214579061286105728602348654300504590253907270343432162758806801972373311732601914068062809435581076092941539235779716815521031617578794379860001220991545630006949869896298608443110218775613307570207933494208579769080790596281783541147786371544793782029244423836710625265035081056352088333156331731711122599672106456523000627915190560216614686366667914735374618953543083844346760134903389280046728849852627102679319045893309708820500390810098020407348113578219566559646304018778481350100456619336561682330676215529817998526236161412280775393378695340399282465314762570085648651088448520212317023535915692298425999509623113280944650775905602814997170682178786909817812156499619913626170915570443826727115199913413159718818364275872829890655130975757101265238761720326553178927984565201832616845698246730940074224671486516388145645865845141315354311963381259974892317122336583335146329582270334598059064465441293937841957941860016082077192973942741378523836435949690854801427172324791447655750240372619383921501071734654604421603183384335902406222031998797248117073978427154417741693704301507147932094271381575588177667883558312185077098600641449447309538880598300380141295904186571571457048420379571359519064378711225911004574614602948520000658128890987730457057670652273617744559760806875970209130918356029494000015108966861447272491403516462973879304462114101070597585713140571334266785004906371078816750525224520102540653190902909376413714232374733655598062492285708037682795056994367969131746752897946150759977945355329895401715366995203606815348830163848898676832445148330718661001110822639269525026189572121814415134228021549198781201311607659665818306739058029293096345860425814151578448077142842587392249312607482376958818746890284659993317294492983497678682454028343993681870814261677722972710665997210820363632975359180803215876584122589160732866684936548397263477323389311652985449321538614188739201012409529774338649615270563266777597933381662913711429779601243195507273429403605041722546611155852586684651853843673399525340602192135291061402909435367979157391348709771522902439394430592528880081016835505387905272210785992763028973290783539420406792210511137709554134261230556431261085361387607616906563096949904654293477391244409990146816744238392467927878203136534741035290275376714157353802149691024504988102358977778656944977949453027569140620013804304856448597300352112153403504613838897975915536709415096656505202974018160373752238264781090553784615586358555120317852519004995137718396268914708847219744631041603701127490894025424109297780453073320431881021608407579293759077540280966653514392080711776693864979250226624240117342049679961480271384114268954961532079285854020579720870532581962390425018046210695827936248468461375814107481836724315995412154491994170212945421157021454013614757511297949822046846302181767745558652204204171618982509398309586989183874912457854244010726092759053876060836517681363783419726796644274519200303820211861653410895342567790132443715550471741297324811376083876313754724791688774868726341109030999021931543084314697102837054909062295842258393113889347790458765000413871048707582241349200516670491837077450389451101349060894825669511923162530199068856051748143117734432670305522605435953617849562815603482259091738813987998708561499315502978011842877355607069694343454781983144979854259423904193799910336813600822042385044537851409116317667002874416542836127535747731269356764075896603738268331999577041594589722515421886278720776533377015460606312358390921611110332947766250373567386742276498486779165302989940523874674757803282784910946950258850141356750822022442642168143587972359727968659413085735469253006740466835255688040151533687581476349802809188895282827630604520232093756259421777542584292456019729647114089572151173118835711658014080828203308601859836337400637803246395827516204243621417177852196572528036628124740672946833919710008489787069894555611997264875738964793070814444831704869870744362480750114296858566301466195595092546432934375811157510081948478280881182736262905187253419299925741613915377093925333694667435878348673059918433271818802786049606414958192467236352493940091485328447855208606774794944227389919143948026311570042766782444138606970487334596680979351368827695096800184772435564090466079520909013031647300463264423345245061897628844803473110424377366289135150708877586864330151600433400249961746622330648850478665682433653106905769377794398972873836440964161708444508272334012915888860184338309968033288813288039667316385514860185961700370320418596509106689475499683102293547833482974011875460793746953340627862857894922088035830793666581700975934973714817511541930878381253265666184418236881916291570957860147846710508017741712090285005087994126123090621222923091293572792413547299428379114650169245260565365895796031589570615300407059182550786029069241103919320720318752050129341991251253956345143652450044778771164624072101374008981553047308717090451965013571052981771834739381021767598918701509140111853235202870577454156771316159604337350480978486229807341818965421127417220833957068452947612592807350922223121836505265522906047145404555149562341343853240402777374709342679207629275504556035529749927592954514637711588048466569904506359044709013522913317930287787704005125556438163051435359302232546148348376377502133792700302545771632332225671137671596282875734444576654095773331808749610424350361473516346266076946138442014488819618219255852253910311529321986976734179736946771051830732682966007144826225452115541581540826922179384157195974785759125917217552060046136882938456657121693858323134419572753102253398062732469082959529367594259208372699077557347368754509001159211662333013373999161470659974680007167606618224319476071363525633182908507928903390645400494010900457434410163372525544290660994466602646996421428176847738200429032452565319753292933119469586903041697956601966621896822649660884843638130591935856412722226852419908127842446988214287248862575229911724408446611888020506504802054503599466280564306808554940822984316086759663179012279367007008779119216573585160793717347923181198157505445433351812418629207687172413186599149511708102885690755215598356756960479348426376730800600866298955755730139808303510991245476319811594355521419543157240876871729755656043235286570799696676850265871634155595952105456400897442517657218624821142283316651621473047295494165283384141622807711032000934617600494166549080750426386045384829832783758044655534518725410828262196105483066960059759119329024214123272460435349446857396721860329545129133398559338927902282465849856542127467498052163108351716144277227160388367938164422142069865043821575516824327440811634186697663117141080248584594650747682742112437921054983414864191403509298051061325312843771616165820455561406401360310546640398910607219202254295885598121349246382036583737760088809346511485075064878318191098186596620666938261934751931593045384422682062359409551714023114586848018087590963083997527281900145840202820757720630612528124041230365226051854901095624088003043910506603328142056265762000860513620143255101934726854939188259278347229274479302201631362721401851951729131502216475086403429776295366146758319083142320037279715432302533045049127572263381992563398470349190374708756034814218929069007783043577155030464027512203588091112174569345173866477055367349576524521971111608537255000553335641959972815364982857729130826076384247657327339898842364983158971147210535059671164673831825776487896888683625642680250356976622694281937882160463915208738862396950261654838802310726129071659868427489686845133439110546972327758532197019842095669464265997099341795198901279146716920940531183132337181349311053005517674541067884681650822737698146293801866806252990029383688299471791030587473023788493138881934511262613641644902717390796326346235402118167740852277706582890332400172076847641382223930605884519484934576297678890267333656006981390414026579122779362465604024663610756835755023192116138804635422333494181970324063719280866318003179448926089316438196342764887420453095944365089609918254405985144450556760410221452441669762405734065738172479336723432975864929021568167310002109127654221069351943054762358396787063712193540184385896250970668653521884811246782969027309655608828666372934038003610100360624868811572014177955690593704034959654094331998586268884376630460293184816097861206424987649508566950054037301292880506754067956407726432146819243882762451655175220108854627245321151278788792523375945786853845888507265678211698162397368776014932157417080060838254247504303210176129054578877003164603581252590656350575778506337836373625695264550326616909057011692537704890638893105863220786407132140551941767001952292912085993149003663108525032404912920579574615268798605852732339763140730057252666132674036783223765083338345320121035372568548855052786865723459657869711967647873030946839637508107743973305316607055795187064363330051518207446263607219271277734532204437949680042231122616473328266624331597999873129389816636690314767649312580475514400097696999363685707720849708070578869281386800025779281468551630324165627912079334383911113144923601768962077117155200952192481875811052580192970271032184804356901026287281812693529799295288416054314486010030058039881629109771825786347882254418529671958586153598661229499050952922776109086144393020195968753911938718491650537995097297167570174567953873174864658140242726878304826339397264223165682311201112259753019638918210923420209386568256352903109285031289854107407577743573151036302996561066490911863983359723614746861935363475909297373035554065275911071670779321400467690850485240680940341336320906649394572023974959281683133914603291108650767479430517752072772422717861386305879322319350734491156253244981660214413104011984694753539222198856446229417699439852665386913671770273634633402747324862410878243250389023189692435076735468063776492297476571397807790544191043203148354332244707297838709789528909993737062468734567934230886724083481849205436225990774632635896208185290773335052150410358776249911862216546363416794407506622451489113434255764555094946048265780074997968925819395188600846513325788292805689357441443611854342056922985742220774597835668135531236175638412432334558466124826163321544606153326890438655143555201806585558125850597325779606642742930820326063607635695189310377061466131052997943634500941741183935514233658934959978139149311964700089006212354830796636376561017296927636774139650639646696170941012470851639539928919945247718442121762341137032457464538991518821239421361762529273655643371844862790139723303611876693210521167355874838079767605978000198320387906933520685903318464834557820416258946800676764757114242372330695304757131927817306502397040207197340474431907363412091322718581404002911647526924785564756613260821724191983499757542760426332625395100595556215052367979493574076601543571930284321268313687453035313248760565952270693557929445491543439409376321108478829658802908727225416773455665800825825154650588043217898062812413033916179359842177643295695067792871437817096922449750527049968961537692865156463900050763607530572926162282567320009015805043337809153921606428580682474460333735126555848450107416858988792289202411763178361955198674638704475330960920021340867932310743434684690831892576681624288274449230557023182292249834453644697534972772786860004485849215478731891509617552683989875749245873419635158446922325709334279810968582722830085761509474619999521232204513537865598283622260560020991331029020248957659265008571594725541487438309774849624247879120224128790529596615310089948900829444919075653680236919945423425692467421251395889368769198882572444148214597023541192023853059131213947353283276956981576187277090250444369574648868068001114913386735806386911778551376231340218897374097729147443903397293706492880300713427778322916271415538517498520131300357914204956682770022622786472678258180645471442063297640700787356752918146592731664834759756006917196888878934651212494658846446249568338635262473858145460261336368795319878349031398120090812377856938143323121469113128238400023128374102521163136841292776294917137012511138932970798584535975666034838874500970205326018963194050543628176204720578280759467032536222731218733950987239698796152021378292954990581479607186618932726126069798418565993585028005730978869570264335391003306187480360391096333323260298954120543693735414801466772040484200007016883309340842184056434821123791283073227408340660139837955539654870214915714547696149860597474557746956651042559706888224813835812944343749398489313182710923238542703728317612251108626974050037263325702458901865802985257839496938733196426904932092535293564670036353045934975782141560438900713004255859971959981765865947954586169746367494093074230808938623879183340116259628172270382864847745987306270185601955288690706834861446147189501971438747877267378021631468412954100631693302950674302052992384027424487984720514542714596137131176308144346944262731523830733805845416042835189891265588718945789786121657747179242639312781913085627701219123443907275668112708156115885030264768637057301097247869350431560879700620561980144320200667944967792607405158264720050454421829811314151845065850060715854983388692388518902293614757588772668238117393714843906824743657960536642651873974000836170254328070083659161804339727430208359245260135097139156171230488120015161076591848183709980991366535541013898458102311833344828384640174432109134575454817614427935622217418290829131766768765223927892024503041450048888440410333878765898071699653702694382988528910099539555893233170445220493849812118379858630956684066112539163475224719592344763952492496345056340666911018362926155532641487585164354478878727394850724707611885855396641730807138188492852279440042361417360474681840010348517460106670510104456232066208045734956729826927780079888531960867869563704593375411296207669833007886183105294055037367961617786201222535029057271406023072660177004499823708472132644973182446102009331527552043837138744075049559160759539643742746679770781900890248394105933401202449805128620074637777071697800802767158507890569870455770448546982107834311589573456434232020796693732547519156059485362384664422618202165567837017915853964734747991927784836514771309863420363143265315738016233857878848554169957639826554354567903052834180698419327076472980410983454023567620843670645391424735706878173574096946209078867928006166912323743349805135361581108189013217952716868743869975012210452669282425168466327595762035423773070540763239067726058409393895496659969475402487934352353991300052344775148474312180031665249348963296574530117945020962239899187997577469251670670048244141012518739397287469777808552172377443480362156175489095650325272082479060354959338743060902210765790866037883615427450367259285371412683526252694633009420163927598776053757920785915567009592766852925846449769213632173461069809590929797451000994395711788801835340202490849388762497242989129187536021318854945076823383758704249239572844265993854056586718812685620687691734310363652413421623897571738641452400226974487390079173425179913943947581465819396012374001972919779036848583384523531765972665437592331087118812613388713159701311310370579016240545960386445734330717148675631322566970013275005553217022615741512603139837924260672600309934138793123198891455327503296858362520742740618889144453363063956049628700032029385645873908018339088858097988504003953105556903609411211782435422005092490246623049316904515641001096216069492605888320444818162443108388808989887901299585558432413429301120133501660742567848827037226474755336256809789156959929868580332048451975348596879713019232096239056424788941111924075266151456961766115891475473344577341313631379681574272924449502870783518390449247133426612457953323178273801696966369017333521421243342380478435260797323546669252014744140755438128129816375016959991134908292890771148526881342397614182050760168565040014501667732888200921336614266921479377495452142031177381520050432623633866849916970324871249361619155490729948703682349137994589912819618384319115569572929867958151306007185187837153854374335822217678477275074891774082926264158049296846404436858122772590021879970864886171904995166527179865124009572106266693766407857972868245392242388836680858519361574525977237504206611462232330856359838872206729039449870907299532492412560737249417478442013069367588287025876843294444052419424937756135656820498520956373045953939086688789355633593399351020226850262999726756769051753073692481995446031394258471335544876930591745443025865994022881428948115120464265286273401677559601791349940216551055389943276563910364500498203389611659005137831277968652876203719767057443201582478829217787086734114634156608211565261620939496451279061260848963001832337242277734042704094206292529424869317520847106841632675236358978423819481704954126812097387439730885611732282648429356349322635119099765444202784836416101866195962576328241787887044575424496447944417564060780326517650309226469011670245936486845677289722921377240460760360595135583858853757633751400717922359113797056245869581418537890290626077128662055315293609217716874917476401388474664999271046654345794599966711656458756427649754082172443301464875147436745559733759941081981893815609743994834339985943102075638673911911882362779410286141552794424184505046238515479847256938508558736384892261785899864711878913548908867980050124901032456294868893613373992355591936830489923008889535401853610751673761502053687123758189017851271848203431628545440301815060747462549491184923420402723588492801958613194593859559868840144948929858924178445925034418242922938267692195709021676541872112996695785034144903101782490045250341243279170368734183734255125557725661617269360027341658475894510022798515292241031455613149510565894505034331188899163382213007932429507695403824543226544572006519604024209589683644408424906180287445509699409158525422605636544575082982610103721273392488411846002830541449464431517138835144422192199628897472314523687614316923884702394667105160511831682458233254396432326536508679067848517890933124822492076953308517268080973922378943527076083752627054380538135260883789814289034787097967080558498242658778166249802439501099953023352960886657316386054425916292313718782099266430270941391405318003329772850051085012957091591946665669813519218719824745564601110334575453919782483818090266974546734835442554635332983611487215473320221542245773173130012019545305517624264430636178771157084271059258016691374932804216955895216152568699523911308396408501082624459626676507783593788608666175326442568336930782868822911757306198512133061707127332265595679199311049129667989362083813231075106409351583405357295317186706023325104417627519941515346890273455980137026132632639878983538059339839721755709360668709960905439161225308842342659424937530709651243760354219815237188059757283545238222690811749081549799846907548628438124806826104610837427825084728740767733065751919789850098052276337943921988254227600264780062904397064043191768377104850674265930159972945410495320131512098142003273466272248554889791080386104484775022815721682198271481438000612924169767928459433081094922421284233029635372219340346514404539721324980245901007985865042264896495189661322805153337708837948349976370362855696351575360208773656053190329455071040454171621484525791205669413932586412264686965007962883792354726375095265696300589449187245889955961330438175857533007298523671545602583091158559783252246651508015971844254197361238555132721141486970657141493427047695655791592298270345751419775182155942418715143773076438375081409899657038982185844508126907138231325985060535584425717204518297791156652910186477250588791802724081632355906129297218738944618039303934754682467274803406051298311781177411620390202843019633955489226632977341561793070340997829192215589675068940034046245873416288732599352645824388034624632448433006029342634180920952688014573882004893894132298839192985661396315926393275197133327657129644492652547591457621596643495434305819779105263244456270024229878840473475907285986411762649608160881294488740378962181827145126409807998519087455091594549659892894472696350989790029883255892902854403162784064517463272707064788002236263370291979873159779212520289872161925959388133347132590176830913340576877786597164398349972270447409641282794390345686696601408357568771166467294950265602008942866809613853742561261352078810286148956286575392638965418206656743005233661483063185824819179095810887629143750511776923745172446744564496128894664237322224806633723393527280322113561761386606895297258596578961538383623983474131957074303458498583080531491866989683235724192444598132943048203062035503994596306912422043238375930067922764083587864648648559814832998809283455492834892802781586210782317777487417274491315564787365515005392991693400237683349465896345906298745532629963918997540141285952699588945642187157936208339771513894377025197789510411173498732948344662404937903013005038874627214610250674859946883730532462374607997370768507030904727082426290242936094751359124871527683751765845858179473975903694076409886379801856025355324961470040878247071850791015998071051577243829051693027854915500405714729154329077046514283851102703869587716431640438122585438178205685090781838702373864064580078499290150089648438210499897884851278940774610398008792929332975057476458821801248551883309043855601682305897035905200831611054839975987885267579502365015772465294923946390896470715146541916066889910566840253393167965705560373721999487358217993899040574932230148837119531065355241244667700066928674853352945832654423675199132281609392902105532323644086463781516783374490830349727397750718794955031827085608192726618970131751186549179800613278123537060261847767996144147571838006581564412552208051865030418876418345890335793069692658496484704318148880880214108477278798107082607110704389191226693273420712370288709362264675094551434647320131360145755773864757087341813502351497239645595289441535522482274157842177303939580052809317048410620270729380644139943017704448864142748114437147308285769803791335302535078178837055949682816453773847975355060772178133405136275882314657993155011310663323206195051575842122927170683401171888973344331310052260756232044952903191102734389432513967124938301114657034966623991437284052251167384486426088836296020280534090498843532912107645785635845576005696101160749820756690654732401114367934911232476893533899435528508359236273425667731694246450275765907701576711791791730372599705196582141596241926143279875868304683208622906759499025101904199376810958825897121630984042474148410105435060663222505665513057028839888916188347930728570159988517310514267750229596653383070532245643800270325825823218154375994717693604450827744605901280823825461586537350297128110498356120980615951123631866921074216642646692106697777598694244252432680217550870869088021752334624595964161159991533524683309658549368498080993396595544953425312137400355264529706370540402085589041010476554442369779226366234514685344518564230312843324349042195900517271058563583522906098254881920755026205871415445398808377433948407114499338427990635785491583312963489137406473111567019558536510888603012669891931257284139048026732951178774245492684238481029246254746116333444843149282052170776158650133607436172180000917779426851887191822894335739504904543526515636499600737023462467543421648121124520453746486376940005348835181352167182127076253414835884341777262421381158399099648621521425155658634562767152448123192191800354141785950317833851683289857294631250341895537942039964778651909978979474336574260423437744316556820264895785211314586992132686295262502881356870528520725420859117440516298454741072768903900322311312925267180876212084970813471558212568292785972154583815871295807337768637235653697026619908043779715702472227536281126238881114848885375571255045939689520425603952109632343499898593589763318288090026024784083855845472978455505523793929741001916017865288733354971619394871329425055117853555230661078049580771254526690680186970596327962928510305424540540344966288918727857908298752520634467324770451085908833028521813251008551064692707922759103040817736266854417348641276241400491245994138885382463363137609386185762378174929173355190112844719533352588241006812034740201737940682849738755320661777866386425502081019564875844321536189586098408564265620060747689749791991745742646821620318527233024607412119449969166493108607113344289966894349382746230659104016579019433037454864153722818290700657494599140029053449991784374073348862829744253885530008826686846111741221318162939436616146634774300011243711689825695284354812868937562860495363447671029703900103551266155251352660243446665789166038530454882668747369009928469445403829010489801029323102496145024711462094511323263011176559247794708216382801110990281046932228105159888067164415643749546870088254494059240752040570184971936452170105750038035480264521940198640323695900899215182691090653164836280854313304389566410551508328945166811413164361772123417746206417279253357993462752688212594098052481401925951347146044348473930665259305405398686097624337400451011568388713656780827475236899067447395134192911513242183402313836733046830583757452222703256585863603362579312085640744527670677539261175249947493095196792519272225250103279134606197166371881560671302000497644085560871423360326357701886675453842807320003479528468616647121465076960164515516747713215410713106468529195853883463975825144951911385692390573012432668784258383142031911319227334713218893707319605184981963955148311366065475676726751792751046313814329858958495183115784401288317875810447847513581389834496819008038527038530217679468565917318858387949581205847785565766711642798560625518500343150316250793583653523735785238384562374443496210009030693440418596296783168213221694746468417771879865355838863066412545841703960900185012056377144180857734619751216333786422342001675658249640801508283606710416292740150558874100988933068447200259066161739058396604843578346613680370019981187350490903682377734219657161744817119289711400719236381305041245506813299061960595283875749247089413197714706139158665410037515714259144228207163640874571008760017824821632660681201748582843000775724302511623324169211897917472866110060212139323037753893651636397882619712231418193378749058694930835858048170017708941382369360425625632039403208200130957725313437096384660129998669531636733110995662930068476215937968258961459793398662334570473308588977753284673194045409629977945880261322831401190463158665596635890512796653743319452172996505997024527340490538789891375626829844933380069094047902588976717749485120839874035024593233238314856074664146712573137541464798790318931350641623635062457363292393273208751945205490657633872646703737256871647932170240878335899286915608267932339303591683384103621146667688520185625819313509005332765899879426522209964382282839663023519309880265256446219630790740699783982749752507991843199178739840340813053497400798781884638628833152853653198077572440523135536348941070708338990018149134975001702970521392926163997494957605604415966202778367746152004922357942778214819343969393832877535025164216818441916487273474200474282543232790770421088634817669477778454993689294196132981352295074967269361083732441888162732759310482052645769058757374523315528296234942677321962556424968988990682040550550810808130283162175492248196192517080359722409737604964018060659851340874416659732716022018215206297641553838707141471685553218234304278464649679145976908094011095820403026863148055544916697421628184361499480817148784985328330525178847571229355840832923544759717960317941476390180021244010260457465302213288240191787099579938401446232661084984127636175081124916664765896280481169705440695582436393219787804191818393532572731968290524118874434676169192665712364041693334935234785801533805945514338688305292160898049564970867195324611900787291175882692099494766796174791074597846700091826158333258145034941905671491480073440462445309743190195847164583444025167072858206724354414550859378457684119159467088474202429709334613970702165766440272519100844643207095583822292916777276977723725043006688392396201791874735392177456794858209322294087998075754091017592156641555409453314114116787491272111553417883279908535942564837524285535475974310367126092087294652531166459665683818732909588258338730513877897611487691947820536731806921486355437484075136052478504023735426647768767118292762659638948002215611447694621886842937991299891199139930304944581363293029111726355281531335763669282918981310263713281624059588076847109827859374301505837323850333839865095031709752751865569064771641819011363798537773839120203679699990900817598386531658902398132283267808062250496718792947143379540869004148012017933793145621124573003399287428179044645098663436025977245149059674045902670659806860975299732490135251442239547590441304690208837430280190061162472666268491363576224271179098264372103860166253630353351578305634188976745493760326775700669451628604886230415397803178622735110445272887394833478739888445716296132646976807945780768455451071809093496209864169662420073564237615565306792944057532266845993230533698002946093083073929739629533683403887448486434603111180381378007613860541482144764537742640447625933472463274658475045924801009710711692856958504430789586674793055807402187121286273693348476009629102096532868109568738716180893745948624062637359221066050023444811820933228023251321638626982328073957269316878956814868052841136373981812624397338465822924024187105913103169429049065552839638557489004145305653584075960020351844425451240584328257738632693742870363270429051322691491797031849729658734739622460821711448580714319249931711421963438322302359748554921838140818930506629291920760976102499339784064374706870287262446231828862547008244166451679068996684198931989580032660706887322949127592707007371343317865545438767562014600384750600467847739013124089989098747279878061189489978683311841582181214336688706724970150733990857838963773882234330255174678075839860655125847632833434415471124436209770501361158571139596849534174964692459448506963184174503778823424627009231670777508722519004798094919136026544033010362221614366105098694807706461571527466383580917277850501517032404720278853601719389814620359383946044388565733345869445099493787927970220381661001026130097223578434364466483478715059326839612302584486743796853040104293018357630104212398561867195782105685853726372081738392252831337229615124469271760607464434069438563348978486516370302901946897295805123289932356891778219864402280158731937732019306092114372799663007851629409407430991589735496879082433590449495452506369311290224760021749826889385502169311910458090674212904454765221277656008799268148480556666217356100998394826289815063806661431635487780912968453452127220587548839889885686782680720213550641376338244172291481332552170782648393546835061246762681856388744691993232881983963864167586227155154502542793308510016251671746642980428843099388030986814403418490500457248142172031951074504526386308754452531120454698746313616873022267065458679612508918811088496609426005239493490272097215041575291712846667977652318489418448414381790147945453405323870891160884690985462525846049522290145901135809063291458801337749826360830213277340207751487673957545485620495763468620917094154622345187614740469298164828344718788197791582674123464309393528832858529903709859594966565791573614683972774751055715362833228790182713262750263147086535695891644575353226889848110217347413940571661863311582043212596156141300717913727215668898970241681820643353503992768760000843790370780853404588779851432028042062017800944383508514912957410908462731590734628667280526432603935152655105618939593539034010028349443567276025111985271302303440918272149714727383710815167316981131979766716259080157953542108237473321850203313846681443553563613708076065039669787547784096582954928366567587419150698193797076722929841193879410838969919371765481182176610529365796415340497068318510035025794994993706016031387733281891982594697763348161741151199901365578769488265527965161840982871521502657143087181622583336919585043542892531172808932783494339214902406527086458078157165276306165178298623870011565263972980845702718407491359476747342019182505536477275817725595755537099438328371408463883768902050370415974781684538397173516073558502497477544048205452098629256178752606143991906387156105608935547702333918295814396872414249698759646642168396054350535528523312752958957213846397075552627229416812543669396294250833630411060394298675558734350240907554242245270978925139701313580567510224827023714274463386024642492038917451097836997708844648770148831476216207990315014101726150472271921118477514598886652386054912265986851684606882330953824273416567226616852659137684974421948652615779399819116769540424297452331844367225350723875773132022117055634028148596543228608009503272937016026296700513795913336686523927707232949132285858125086067004749620749616587870138303230301304053522583179251107984736159551735475594451087424637743640608264838893646476333336563581616954154248401725430807643238696371637854951488321696848093214416162952347985382192335350421773450430025485717129676236564949423551382028033903484747972005193428677259078090827774508078412229773385401272557069879509885902910280011391129631083730259715364289235537403919467229687763923426815684024791032548495178457193895223988793746441360148945055597401107935526870031934186073813904242267020915160060826217602859025146693340809619176275803427438828545659977886884934966680913976631344642541135248264480543468725650552886054815814895846444819052592153631626038281354634065412079990857385798953973717597342800765512613677547411354517323286619035469271834653906056211856418047923929344608148412580105902643635348367124169099383314967093497182187907933044824241156440745334025202543993005536648676263119192413932464137375254541592118469404479541037019357044770647621292601985306596968018523187885575802551486098372102741193209542471848064482483841746846268106780243986945641858474637778899705522212343713284514615751518098438498933701711982619951576349240899468233228647915622296951006649666670819135800724422456356790748227559021698636805537867452814892870688400038469139046488057878499041804383060286614472581076780350371697280802626247403570632589440439596800431033451843563143877309955337346480326967656701438657776085220159009523807907492910919060505825824229715703053026966606464999487086344208365222738878951585292396567174215985124918051545260437529122765449318897339503525983382206045488158986233933239287123595516871813494267461906395405515675508543774366958144760434687480602320886807381447462125736591433383207479361021024024121336738339775978858025063235568698698093562257251080297955668363425799612774231560490353910928640461263612756802652842097346616258359761122856291191505051294614012392620873377702753583443270839321472408292510167907924578534895517957189819314006846221657477579162083301483682016298514219802865511877401761290491766035473560546148907842668850911360426850452887653094161727478425695602879303468926373705385012004874656476186861507115231053966033125567878454091444780471390245923927282501143199758214813692697422436716384639783386090893119102039696515267277042725554619382947944789674732777657920097943521347844932678360278974148449505423082933390180889858862426381819428349086997298068902211011629501527825721748386876302724599438561350672226478114089913590311551408199071138930980149513238104653592902954240199086817948201633624778749900039185367836322766466327764759198606139365905331506971243809625081913641513442394987355660796487902393763600897281441163539174916901983024059642378890490172282476110805383962054679355853457002348027439851388397203157481858455115171053600447808279079776685415943600873058971274964392668273399429768015361906025078723347555279651404437744482286849990902044686489037470287339066541583905125308906521179904618688293477348318186453780320318129722465889897059979290514840495503632413593180346322346833722208300999967376361000247286204438650707508252469659750087413463398956186810220548075346043958625392813695400758392924016508700088710432253377088532816857038393087651721944999749642838544400764705892236110642187042964952002908931479831788520922225716613046877229119705014675313484139260586106670388474911172418584054993708679546502240925427038753523986140017936479558517392085797493988193230831464628002412964812163810320397378282738458325151023234951066451884263145683337377159564385278513315038326746160631257619461561596339128809494765452889026973700099720672238061443128883189765311370939625447251046260990858373318032903533346752875071469672201047768626495497158360183014997936747736380819888025041127352477640591011549073556082507600508076329160939171384320863392621363365787759263008104079477120787591505804133294956191791319551718859548409923537562242284383574168227797825534907132838205610794551941614358695567201892280240081554552913838489426078035701143699133199529660141604636525952035373449808680453956862714489065297191566097094885746976499897897973839244102792324876234785022024533331466243737341594074246518326227724138832335647490813792388134356726693366419599353827985847294966319293473607215305819410541627268353361034612069626057679206463858684785545260164538684873173828451636592787225699467470399559651020119995760215327798282984423506562194464963724376668983716606849905385374294981609255074384152470367438873903054363280942539060763846138366209117636417540170489044592597132533501004866268349823709435819965189931543176519457058940756420814289754918475104854658252328509825984812468650005672124036998416626645801209464664177516088527702690963185580633729237946187766952724508165510165657323238163478262616096896219210722610159340142393020850424431401617542387888044267715971670043563574259950974707078045360948140361702499478374024543168926409865944620455162015608530315769633031562374687388886570267659675015483577700313200330324917715785886354189969061572815199239416205418326573670725288615948580997905464997853940934872489695405328623595518477079007693155614116115488765984198276441712568922433099155153137157063186087543830334955975945717014006128521735630333588278669135957269437536243985259197450310769261116159974516849617407123446158092406578936124903604226857123385400191974345655780288030457420505861069847840322348239450942193692618338419604832460090125868540955658904563909336388156930258388114679716653677440804592431121958748107314667935536647820956195712274264469172019474463343916852250302833715170882353527813690584296688874760732217849747983280150604348084129554022373107066333841402402057358864468612989167503005461346837660221546088129304315187964109925728699842466233515529751352086136211875194039215415251440946121029191418197306511928173499579934756092802178853540128226802733978344496602936742119199500190252374388464211633610038112479058945163181324326183623200477895627838598128585126866575426688856785303223611484080541596732684528461561850899704537841671443324619175126970582685724796199719023891614234500259039445879957941709070118299659235919489300347632017387991808438708037988985683152971766364482352668977429689467559149686979911849501392944962113454869369024691073514165065966969653985235995507845296802417273710967830964793380170929970091667872840541341390271358786900081785970534285046965529719330280382536836671441293265238503561005947330039703775199025400537674354964577612011647150382310457106840348693974729555850434334567442230065605048944194797205802985013955857185230613462821790246094830164948311165022953873664589583574994939829660031371198776704166722074724829659796610282165623283473391760579660670707961969234733104634940477047405302903278121189352412033215680831534248893777738874318476373966302970490303521648147203552864428727980632178466102004653707511938450589539972959493778801929568995629542194954185829023483425020227115180852511941264807136782512301711286832836445641913468756384593968191144514409680165909839546049326085524321439096221442704596614279188792118191980469172275552758690204980518127611923337718209909274899810841221810001464062563926736367300149208594306616134121714729934902376763491465280180292049536330793956236355904888109396600275798228033322063034649320686643458348507665986855970584092641460459768100894749933261516540927487629951327965235464159876144547066087152695715159701390400803585210377891475995795349349886082632769399178732213463254646291932060215810948183127170636222323166732582621356630304242863373199228161943145226984546154500005806718822791670271046151187329153127188849822026297011587663366009371059761164629368937990031961883275618646721776385676986188039082518365667698405028544075327772613961492950251249780457483788813532464073685503671325409504662294200217113056375432178308036073740386521529741399971728322695357190108089202406002119552236736028441331812323842906592860820708421249054074631221851035596668630325864063637382989340965227476578717077924520107101684811558694532801278216950329025766947587170883541146581153037750859476562529577036882065221976746943752942010809970333223558228402231512592683295868076036058073655798701459712670576847812030598989108304616503622516278553718169930854137969179438046769776435072392455485097083257161040617087644783219709700769415882018254200926360713146584961163151783745425503272557583084976531607453261287060575497025686131282249857313931131298801376545089967103706024326641892885111685848907023873172478878514655279883256292653498746414301421862646661501328073240630616468243441032348447304039911746711281145296589432027229585297571412575422393291080864040981255786691050540006022674607897949608719601324039318953487795657217708893122368936295409499805589186525472489836711838456392827842513674747476960751759461591185670093657284468565026076199032530371222210932954620545492565678929671205928487222545772293800469779911570523690582024140831781887544691973616711599722496046345967095100474018148962885745168005565453288496462575240691405176143690722281282419569875935321032306477837284070062861854617934300471463268465645923448152528335128852029628689502479466460800444490381184795871262900772164945657499062597411730787303284765292507260539227059178507844421859035803539463734749015581287137346023077963719606408775147597302756828866358978739810058002393659609230481324913637602141150696717726351739374776452824927978254351465806567007459936160411599456374229355817170960302445371707508361670621243725605695541354369829093715387656082357412008147455097730960907335909203540199847558543624036602304078394577279108316905168298143128171439884776347473754189393975108664255259222775655421237595876546542911265813042772104636786527190640878220355316663005331353233311341105839788542345706996598413600056169355628261643030779898575442194227951104533692284990761125929022716512808164277562366636750967513220867420877499881209437991152840006919449744916877472313781912231858711480599610620124750567543212624676909321575166155320014890710646329265849653812096898007273527629899767055125731505522715911903497454938674963977183963781315931033743868884240440372149781138849389131800526124350066109833556875463814546762445161270409041351107763381192885579743893934747645911135224421358835416874036273361955331702941095491782121317224131284977609863843903016735813251223051160194288407698281319181880250019294887271948383484021212813803064748878254343021829766105606471641335039978283926045912232983228966610847275547854673699601456897514393443808566314030093961681567141142139131716663434911414930387328341303024486187128589722193211651306197148511513058043137322273750435807524792364825623492055572126235835141130824278062369840112888685768861809711001468750151344070275505931161117104861801848961179254972186241661278025153581911718571875818879997135513336651602641783122816203175152404877298197770687686615870221407141570220157264246333679896447762014193037466122376869398155510508035450590437307439895761316846233940450491279756809535782366299986427853418092560260986524671371164523824581863212522388460386986946859754734561652551049899474536765791000664241727856401459159402236955003020381892464639847799465489787660849131641699630658364264282056697858448797349902089724820095878039913261898811105527670945435509846236802042974705686075202862891726705122824465744143199357267412164473884777172004858787141386621197372124213708025824895627367036561764164654435914588619745052520081270815612666027393006635549895543936965323602895794781615856847605802514270567513944966687362581844854535002536415719042002067187602463735833973957035326126806485531192795670247286005285782923345749882029586805001274342979457232361277038748260326295120494619189128790587438151455946280447859278611740917972524691601029655195597254297372791157381524630381177745033294917626321539952298871250761076197767813219593584571725935794837988156492251064556429147666713440810721542296946631705159006570937631951830266021945016914571386995335533173173261876852224686859770943809230770335151980621058217329643958020142804630301209663528492859607577133474328602145417254271391537261380030066462235914562415840790937746743785173331626053547782430068831669660334119308239872650296411499139964739039110772740337185376665485128896568474196804681532996517355050472579175049917844991852775727000261113959629006496072603830281414376456946592029719526753912884215436234528543018886716082767175694611543948359502202273250267684748555366080945888023117847479922255468113963495363062848606574998978602275571035620949271232190273477816812896426345093365114246753678872296633380695823870869508707740547700187561196239412229895832780875477171744662285155336129005460155661640576398242762579138906912379886035080772496040483378302792020940414198590708872981758587249985837954891170271381852673367798117085180457941348960475734450661912867112698362000789930564213323567739631941791649228513547271025113537848618723998036202034269086392413410734386766584588855464208605392805386338491821750972379752357044703872805858647671460042399174104007498164757857958453096033049060772768136283420058761445622402333220183278692606115589934400665678838881022142348868374253335324234926453697510554138982810844203849061237987971511517375287991842571855201479782508174609365389055995876737000264093469307328671284323560186233139711720617279924498417387069812124359009115707159161028434730551979095541489193167502065770126850424858274109071346282099343241934258366316503356912610293748562682675455654400987888182394756955928574960565437795073976037891597076632905111439080451984188431150066375419798077047440169532081382699686458081893676179344230977597763463395502960669712490559540342886643669706015003147075492265563738820265642415883704018287731845656382719949779258413430078822526981503707525709796513026302284023205578740698939949577259546650228405228710460143416689626999965558146544585103761262167750366114772021598560512435923129130277469657474166700828496411212831769941546852414021636617857140579131373699335174048251201210349689136466103853372198602557586085342258825977749720136301008405679248903386398621888920793012491203198752230331295889078942420947043581529889533247069300716906462188875696728280207533698972864316927940411695192690895368313628959001841045966271396953888796937833522897158751878705293664313198118832094602432327594423588549379530729443786515047880881984806578037315232627552606392973241288668088509879777869682124628473376646898753134660394001036765619383932825825835445254737102899828011705301389214034056784103042391485464541152942250639318324484827104187177365080010898173692510346047229647908422788357583065639181740376350934527444066213512348106450705143916655964703264774578372307756084279373131126066488436560851845754991915799746069601597679147409164787841428163536994584532173801718692784682622052086328170778998630491371941379909560802851214573117781941315642851712124901456124372628817785427188518080150866452024002319346589990003526647749990490499685856611080646161600213044887778478558759207113250510998321441393961038424530153144465274963597811671754462365095609652810523741360020655271716873933751327695574037105809936473461590703932580663267847633477640939829252267440112285214282427550449611556351770648273387534058090450143367894486807838443963642559201735685204484333903799526449568908245043087999180294466938536007825377536036748890181675267565386502994147938488446951240081985463702980438144018900280442735414465773387908822876346154657357118182635137166427497889873541489238312360543834374814119356201215919963678550879575621579649087558542602115788577079699819710244466161428774108475132869130247949098374151829336709098857890521156360734901181281179909015119633079376466707043914509935688884361198232846658518700574969451673871497903833015549568448227195933219665708113729456057628905232766532357586703922239562847893582857263146853972359203755683728149681424453200046997455513439310589468363008417737518055737554099860950194634949654478057114522472043895500464421010410199371902341307339954896577632109868953681648228280075391981596543563004950132903001308958216435639945151156349263656532453469543722062897548020634753248586834093082015135630068226293316904683966651190732778623283579332021340120639677183792422016500321854865735319684814549186041363850441783750307274427516756370337295031075768753764660058880243446597472086510643081870391695363565747755724417780429172300579592067678168630341735336979218216626110151909991632090147224676194364997451198651847591645030512600712175760980149967548630528756981944266088349187699144236582127559015678602686740469366392316176777767058091483232275999322414651147783458682599311533781311922631528357072183197265565443409070655464859478197703301219593632001766450209856534019275298928433984625751257542675971833986329797051877159205381850838696949229688981167417051933457013117398530752581804167806844077584531284263801877055806208232147814352598434852984640098084824706376454765228937800009151262130554280625496244273372211033095324343848207950224231960411688139939226067295854066937147275983904000210822493578801863288352053138993962446658769440548889384485749719608042873896567997176864311844098112032250593534692450864335115949048565061853567478997406654930769493794251837405197238356227491447110982409741835303036681755694157492219120948243454802146311316001374623781515069579694331930246474865893523630846065936886793133621265977101499483568362195850271559156798181337027807363077101743742205946915242050383313589043495841731019580534478967615303078885202949197145995571135755555041525836332173908414359192061510530570159333254029242273262729961884584754072947798649447499374101645391928592391473287193843811934900542945570643325552554677352134306738562869102254397123305282640075300919824207463852527176430076864586463887129960590318658381306729670871926702174609790793613630255535344511411152756394248260364972680961710967790349880851415007468464838845151211722328901514399351945044374532873983954914542715674988353258002482648637920563740551005927211237757780456469312263821402450961299025037026283480637967720201745982963091979002996652911633112405062051519407546618794289700049453079551359494677367229259133048924262465430396498623004931693066355014203309687680311734968479331879689365627397985262234489539935027298098163225138347269233516804232873572994626245542608489706785548805620839588268475693456264164163873201335201285893245725264468486176155102848751114262614595827683854531401744209378369626806291253233820159881083630577804107334708318414579404560654752414371598254555120541685045413107621356829100646261807659262620142416924348876060859119051417805928327810453900218803603683068942738360260103312225806639168954319496079332750932625952307416524838473330871465938094283639389158529501109728140133639132795361527448449085289111134585655770585976972141788670848017528420610968881043120223808350082271321920669330883999437033569386825228243736135919546444666149782291856288363662105686008063512880057947660250004185139540540595206794739715785990644365060100358707103539358215208001159565021360600491230266131901516923869709654878315160306225568795485680068143597455161583514228654815451985364286957079248459086989842225826781278381723534356388212173268776452216014738674798220928543555478461208988297249735495355049913601935345619732279315366891708058241493139691017201437332683973732225005849006680886099332185375258635096721170910808671982565262315678564380420808365024392472094786625981913498512394068673454561687213089452724545565617245289737096632139140634741737140415470798331292445971982996187470964697095547204438094449975652565717618448496614964187512162548116023523010491505288965765999130346072803776595843277800050110225319453317085826892921117606770316967427873559103340027299771162000936897376649782177960220091120301707580850333062256358695468591770104093403280112241007170079022672470913660069161490790984359981005820061680690592952597505476043156459099514173309676913852504211645215855138454044105286020312463811843645462867829696410986982404834865420250014803922166697722322454406507784840426085667589645294823121307558910521584189206646872164528165509278683322441371377993404466949017193119923283657073868973659402331259610197265455056757411114850469191980619157629382469334592077210452717977627543797527777040767223732508016106800172752119410537929381588098001068538038519603938788854820960389537231891430979181363663221714958697449086013808582935639616402879474102877333118367795729496988978953557398542699472572716699452401891256821180444124669276772882258328276314719948282511210090395444018181104853198538042596057253219491211275542527409335258959056409000183853700173780566332369843333019543341858426300321010685132082955559484798266525581627262794408102420770078726406098349229710507984307242984297040145840271484874059045302950386323218204852552104672990840420277158196719037203216267084824244733230691601092322688687196697357330161826511485206502969477946678885465745529015203129458917332195897438455029292954224042470288839577169405584164945203722948780277807069182245559634049363474424943068237092830867702992242946080054729668847970359495101272621272497230970345846622449143610923197136568641688933069254463080652046436940724009906499171709844906922770849844487218555613855445138421829247033529246273611915062769411098680665849042301376215794191269781953360962105474941988260812473080645006904991931467200663505594194845031489170246788231025704074748154834669711381342763674218377626551334495051869206745238064507501833612728707338521342003194796006670170741442125017491927804093022409776891029822522680110280369592583680085892584738318309334074292896064248636943365217954261327873843178093243834501581696709436547014279036676633667792408602554620104448197171322767838579986077537592913448519683645792009985817962641867556426545215538853071866119046342921731751508407697222247898987881911451393109225678545379694543046459018069166640255410323707320328531147725479955165753029764548311767782304995920461919276756084821306821716686017117782728813656044789102347429675098124259491742191452996628124070970945312942176621816673505998557941539052991880736254597766092448410983487789391256971080667032455171072495689815600116923786630336102436365340430907587276612948963204366393518601126052353267611777184448884033592790170335170065844688124708751987568799853961876101841850538647305777522785858353830915602904935886616929690453846731212812955774924782520963361676373039843857333865301073151915632871057121898162123430887912840843860110309374717152203302376985172685654267334151259677838633779802371999546844111981138248242764065056226995700876791646850988957002719503948646180902405227885681393878344656728415272610043252400002580430214439652484723862301029951085425595764665059707889575048218625655487904316597652952166851591304111010524628620326807705740675182652494653742341531043718863697011758705865225222919521434930428793984189194491482374723712874854234797088216421557997107860011686268864478050844520048493755176787826023700760297758057691718491638291048439868585854767856158682966379087254227970902608052836131230811783724361224072714541902284842381320477990837591931548470912066183347744803693199470892986212463940562674559034552804581442105296954011709509471774316799655363884931821558878243111987436816998744732505110160755511458633965878468179936718460586385901810749887266063220744368052070809893292789578334121542899547491899344607141392403627377576441712300144220012562267859499305385477527067117082341779768666542090370445895075678020705354350678584801366362813673081726731404631463512072746326378497838793968328274590686794916371379700079793136963271153495062473382339016836778739855706986421646556062356692961882607838626035059965469651097949088748024191939364204438592534906156666451259620203080562358382364767972105842320065912396071952888418044581997253352049490658430267394475435552716355063984306148235841967973503505713273965611637068522376415554000173598568071805538083511590335605497750780829473807578416338314911473108812321062577380802039780139458323609263473045224837313967160049435448109378777536017794759580865022492346352888554606596352048371847623765630247183245211890870957211741947692352322604524430925383749319031058856103966873143040296005597966574986069994102713813552299752127308029440839457467025061048625540411043294478108388196505361075437410969425071034220232749808111737168426291985000851683930868466167334449106409678950756610888347668074919678695652338693822729799926486732124894463829086492504378640821817651605425821744567528071319965011391356793472646501786578175646774617264994900311835917802254072317888857789419807391051317061605334639115971240040009116526835076175858944245910966162633159172629943820357948321444856259495590940580914517718418636457642886756977162721891175038319729402754975957589249113589633656617582306371877066784215028234481847379434380208921211928427632101183382326896758466174644140813388662208191122723026598755873090809556379617247952803939146344111231198950601483495376049621200142862032002659953250526080375492102352632919779151550675950476459168379204079007457378152501962617024937805417095639074049146171069125659051597789584563546362706647272300769728760727709585925793147371932305390823233338775317424998561222601460785311137056455918381400158724020472240549325519121148732035038687536358059796106223598627666788944736308963249032530176776660710235878031982740933796687669482397315059022504211043662572662255410370480388275519378295893867863713077608880542547808733690620434088867822014100234468627116710126113709140873408301389771770555457273605683477010032385854238810673168985545433687655295796933225120457904024647112258418491855006019520715329667677808298104578133430173180460295849190002007435502829659235375596787763942904176421028249839303527677176910855935361947828793037412508771767824613665503132507959030281538091551468104724723951855572766125656024142652969283148312069493541282794643673492364665941558227815466842879730365251164694675763755475924671540143654669011062226383089406601751258796060162778904493602395264780270798804466251633170168179652699119108556196489932649385657100846423946112919684513618867669968189710761851727490722151529180924094685126946904479370971594306655809795909527074363982570257785572362994115521313470899136930429429351751094523337607215960308220220479376974224305349787638637350088429260871669793836313671418159374379472016925131455999901137318152496530713673291230527718980140492099679361931674823185718851790860575860715422616863606813070977902256531095468464347213561519099065005380369742697767738080071254948775658289088207129920338275477571696187170773773656297189396145022684058025358294333873254506585728200861798574194005991465938856552310420727888213451462107622495233067260212893013840231837336626480086502357443125814572866730022633832180437028971075991508683162070249724809202475285840163865469025180549756617482930315410415872898159507727967721875912974384688028617304115780479938660647049110305384965084953140183582841841540171944779501854134404019969377889275155741729236552101959883237757892125911430817289347727697619971232807373081564812249122988769073676375267665597317840241644241715953976490494209609098076265793334578780404644606469066108452226048297013575046082652399301516745932465017617418179649735348100186539490582260976608602681312725902838835383431146916068410049040494700500471616256197992080946617477408085582045033426963411834893350485230525560349407978579931651349902776451321995569952742755462885824301537150747145794071836237502689012139224207671636750291025126571278407964442550867390276340110687211970553304635146751518546911959139823406630620373484099174067926894949907521248541666293440311719480454672482213485229290058110297216097006496041616426287913898727657295930490146153845842994322212555524346975341815534309002947066194059426167698667787486342280064160526565577176052786070330475920864965764391069325591721785900155785427074689366549388427973438494875218066335190691105862189242233162320560165117606020312756520763417437293509271312921413701538308044100743187095538121377210157037098281941827537355278281261076921337512486521435020038823220466662049441800124423791259454020867907349156174784928722893374775784895557430309189303503130864560049325987297884174184033040776550818672613403160792316520462988706866102983823522451475138412345302282677607283136196450051517481171566356925842267119148646664213778367122599920003547912136951550072168599646339030326714812442370547153834327862631600433041049554772764879810136245365395727318829574312579223042248790484098249847946873607827720558806858908115871060264594281512400739501950295056647699359521054721825711068409846749754379504427728655780486812296566731747466074363768232022954692528389619623153716504676250884795511403768909176377218782555276327486323510921947586298365465578426946021907062882238764008170612065711511784258693089179856388648272606097173756777658206026817166299570612468196387371374784875888222106869598865139988194226804063937454911270813799792828217813488474985976928972529465560152459690062221806099081670794674059683673570676330328267092386909477086503924497108336389083493113538451461474515691913715497733612914429155582876913431572174386147209661095138732757990155335137637311227442996442609733996771645966245029608594711803849921573488388982911466882307004966694768552836985625410038018327620421667874459915050219075454510966276887830446254710155894455105944796328470042315460776931169293920358716630505151832871291224749542490723857485032520811002113678080049444519110814017675752959946553949548633995607385941341936237056301938701486520026437957713003770485397879047115373071945682629300826304866072260670561026353977611194417672080222510902726827966141146423027044553183166810676173628973412618155592468347524065666343745573911668701261050783909690716243319314952520467433387282197317075055779151632012662745728101036652528366760414655173681102137881048614251470058047262020165954290093902636891727272612078528296125105131069115730011530719956533288027985379676703383362235689273263591720566421358670348264693023022387346282822284094665002157287514240905458960796898120738171463152500968194591292766624863556561950831478755666314545311778886315621500278596327627324858067495809961866177974387024980031450443615020316046354577846111006886670298781825862465102026981159469032157980695245582323562428081739051178145238276366408563987203635685108961739657078886464262028469247467513178058846066358747984679066603534270687440106157757692351492048602133833521088035007084359049354308065614721468626514548880753799948474080635716623450621122982252798390941968282794018592076406580292101979491711520058453035285623075087639752174182633248267581396484651195373619782708884923214329339263151991651344957710419552318250129265511281181738024587546705126530547514447217133097747251794112293785530562971334397285359458265131563978511392714978798920151909769332157611353267947684404609853946329154894231787471443690389773480500706892179909196659442509393923664471877302157149584154201808207806193395111660713970674493814282901318045343050246387431408151716995798970913856015186507320878749947596934646794292354966244599379368936516063330693728088408914840388281118063129698325814010662285673360223042391971690435986758842263727752098532136242160044305890137019138406346638941850027762090631381709004932464404584864912629341567722962461894340613935036171377108294402478921487109059760876670552984897950231544476461423792590647867835739107222015942680362583745439322314806244553915953838700978278784031814990722173270393094042457941781918437442517009540966777650909269560351577003896036490965104407602415462839375675161317775905647414209057101089336082945960888294825606669570206737670984095003529387505375272956030208282191366738139915660607509406647297612384745621889286682943339987612282641307000554037940018004093910596036237163081490539452161415046377009494373919192885539498714210737424476419880003995125271082808741273053161640089948522701876135435334803328305910686979312362855182736726396806231900047885986039045150165929251283061163666520506681640076900587784140716644060662494988978241114113523387186486289560448402081264127511146575118556079416464483665907048509475874903574756906761939074356280841176544732837408590547688158037993604232138903583306820986436376339433676524788651290467655048952815594401679383777835041407556647951051010323821719080820067501988449240384415867366370999125444119179478112132294959650877604139128030846571555894607746344435802711065171187107955110876488589214444595640134028662039000181356791702171166433684746929741459642173694301123943214570615352502852039455346536334003265940882596853110119231395645512693710989325530898645469012755416296744670764010109996996747519137104200588734399400832456102365320259237695674325489791648963406231052640532048576451304929124532153129072198557860069700844979065702630095274005981687820310778882233112031752302772468384857631932138993539749487098170366260862337993204898115757546250661340865535022261414350085102785190699168107831536055891805119497077262253532058735022889672211687183828304599832073335150873771354660183239871872479576142468715250663474148128958775433277514312979824848452732956396850884176946693030838947479578148243402720790663011975215692294923747009795925067443814494108201287486904036774760106442182655911922692416479588396517184124403377428510412721364581534276248478774577416287650615962791809422879603615540536356456723799820842573245466353827380909274852497690316069812718225343182499750689553822197623339492720123412990214020111710194318657369594150939026344091019274389885398540011859034560736754226876051755580721144738566769493971146046590520462819616508703295560458855489175353240795049655726911490935796384106240661615835657993425451617933468505723827243596092427068200998025917241986773214965675841210398898071410007448512508913280475180346328169571255969848059833155016915955238418660969388882466826060452040080895594522001278054181700099653038422095588531284766715463019835271240565482303773621604726212614034043558945796571717373372024962576945447099882342475855438094279496801836776951321633982504832987012123083103597614131783007057368962212092689214538443275782079895179576242956662465766535091160174062460909214044919366347835556449349386891228274533093967181795973397258700280120383258729709001350971262836204088976077221692674304512051340025568607820209168017358872391764421805218686100558869886982607495330265728698738431519554615351861583239042513348116319128292657006863271314057162163734070115108998009021292463662499494307143784228612844426019386667897583999289948145091614423872955384613656741942329278720876374755732907027969728103758946245120545625374081517086998168673982699896711218399424501800498045235831018383362402079105085940597722212126383490811404698702418377088952811626261023771661253416131621802220841234907881889048762392550051623569225722862314148764404698397951522377778461505974538584008713779214027160491863257941250115964219281029669536299781855982441160255020043686408492739560075955276076021449005233880799703501223570471622324426756880110817565168933646404290288802634423032917969346816613347980523479996348771804811607832667674172562482496632410552160502262615977086976260189114780170547329584566324660978838260770596499018075288512235088801023646803566351900237423553577304751656002413012376475357110669441842341701847335866321145419361450176552213865099686095531639015209252441535217446775799387290625650845693175653540797711173135348096091912162399210416038591974603858666677305478599306338877348836844494385063033792911420108536011717665626882002666356450283028102526173485470566545878247478184394872979191775401199420755794280671446337965247710131527629678307016155317590771317796308715292871299152045864694967967226359983431924027813182450048828870856267980024894994710548588455362757398917263747951881323582252100311870906772929838776394054661281698516138447741889604378643661584491982088953881284395464524516156964198813998333609508600823432520097935048145545462401151818281264163943809522113290118119528504823846116497294724875033679577936505566351756252633802635933912124821139470849715079251764302702870184765429311689770136296713700219248940110763759238270802393013192632540873861922570450145439214149535307997771648503785771104065106541969718577549668869884308019151938574756114467327632109489519095246771924173478817606713445245981516474544555661040012139067715206429923168751553450095902537547295061095386252062659441869486385204822915421091258783970310088956333825593278327729274931868405235118709253787178101675197244547063511555000400654018104607652733378860155334350527480254338405871937138182116455802394381154516913018417843708749236220177623394563044334308510533888191394893492065519244055589438561635259899122415274334759099522439223161050468104392503653957912713077370747671685045105810252059147183382475614724985662724975571687526582272257679512881141995720335843362957488354079301764872312095075725345044898304782483481321401755731762656347875072115153430189026435810221463604602510568554243243705921725924417004211779217526525439307182442023194718147086429849712103467836997459115727501334146096015315473287662180847166213581702280371050027586566442097744005796813734443853522420385797357695306819469757380261257589374383952679045403869439651816420189653916240337028522119266256829304172623797332128556215856371764791736226216622605789481200611767313888580972916089301833064781826812827748696284292163768578896933795918444607391759432989272190514652269853387256293760485459024856723361748234182010614989699041241822061218899563600150726776075369029612924891047996713957728294637880102428521516608988721920320484051943057759275034312957615336316044944609178223644562435975196106369966319294754812919889928337664495591684495171230489795038512582144801992805533334395932547730859031330377097952610797724187471909152820059132575709442584048314573970197709886949022600742427268863707007506517768276464853016006366992126025940275016220202603785880390080009333758422390129340916235554093857137407529671749350654143996291858946922890713157779341601177557442059312324728368634981442193591539799614833056167135245090459754547062146302557896726789853597721234495646565591669761038567756885485940642709853172376281774213269073877781022640567661916332377279791688621365522658446126200511449688110139235510404667827295953878349236768205791522440857231270131382925775757239174912422868813158059471214355177661857877105249075382629257777872213801147198216858264930647680198673256000844465538464306073159226612637855128742273338432566874725169128333497755776190700545028459839212026210694602665666365557056809720659336190088251847662940285632940546173238139298227592282061963865181105989328647635456142179452314337212716313990526005864814364302825268636673736653405299531657275909900830407929058372921086509461618468434998358007303218977955740735992756289038386857304474653900789749128502951720529484623100464840129264178037810986848026303919490712460720312796682855094277140216270094844182363380404248846656184471303902172135999749700841451469464837172111471801619928301467019834019333492797966048451060750429463265934603528731209609334749176678871945699791527106533125844232759484005812118443883746225129526883184429562480291908617199801892421854699944888061427978228721961425133347540251273293512249276093728148254077928772063039256448518216217350646094342218353925245409559985338385967026928102051526746970054891181776663537144186786671061306767920609364317636100851309060189916107595407820559207635105539300209731113781466012173250426260687119160888221016731746473423862176535277314534816731261368768220336445610428587453810260942652707152947203636923390819499256878980615304668497203726729299442128619804968612221240829867284298140194679576610695140867918002385096253901458453417118910023618485051604822145249726441018677292025190905521985871401130353793840131708927657486921132460324050338859494575857685330493982320689244429776435315880306432198375669159919470786795619738066511642273022536985630407269989106061277243990132443522683757031444377212693549113533560979016349281645646504036458976028970933785271862832583612002024567275471230079940496089933726319236705362863121135462284951271059162212779385851949890221669915897009266188863761279989493804468285240870300464115980202586053964084670380639102612992147356788334309871522807571148209666773606423115715305505678735096993281839768985555299182606690016540320164079488558473633256515022212153134276943094687798998804576663921755043838159109201569989369232605021172301579866921499357528489121805004998565621217215696447847401251980937853221341575337920051809939505820088731025697971227125687263228630691765178459569841523479163125212371126386009845002794622911739208992830448751341531702158272166046959983962255640545745283196337328946257828007940578254243883861747668288074721979929017430076326790689290530111836493834402981288921652122905492521558872588513057253542474721520521987523653699789089256683263857566681476383484054738416325334828238841410810813746216271089961433901981908324933596511633412079280290726881850862165724847021638391730741525667368153271507364554013921876832302867661041734690191522819602159587838611221317194628564140046964397725933053675352020251005242030274376122598649671429734730211860252589889331210560339972229427746867952628261675750511004170501172947580654477990476151746941389768547934688926534562243300937490298239052678338670823565328597188232721834673038177869228819736607375421227676507481299810233356083478831564311569163156430339473916010630507257646482996047866608443620505810733094206695066048555210894574688717849386257345631711362586529813196319666712879940248536053561638915634476269140058101427929285533954549720344428495072325366189183168287089870109019650580527872164611720737799154337525300309431650550750187804553205470802921441727411495286299728503066049834996922577069408836635350650628366021698723725597068852016467012660915908890268212105516090069385481570055228344447929854710157692084505927017444837167433311789974532781721374230217326237676376453891181944428767931613965120229368630913186159868678682504771534712688200822402397975281993466233062640284803223620304412391314130955357536309352730559806318426301521212031563690462669242890027909631705272813237568231836181956280673691411704656170451446423594349804438015086706358516547139566638320362974804742579426011423073824342674813792082775110828828339432949683181581245857286876811093238510096073222218890512961474136633787962043430415279877970834766439437989556097346307030200786463825042697206991837401288708598110865972046889087833358780055226856453424752345012241334921380270639335327977547075861614717479909710481657457409000028507878066268818790577328182493900200417988291295563478506661696424415747313799449944928603322159286425996283631016801570511549315333579627855854311836283810717824238092248335022048234510513976067845075441302703991690027963197949489751232103798044803649394083987467006758842996069017636221346585773727308071497501284425920476084842865380694688606365911498040287340227860809774324752630468612058709509341884467791064708672696558335815446999104306712613797157175359057406017486441118655574557643717611549027362227513474290256383516684007221889623082917756782990658105114226568573736973569475076257265156862650176954223793494274988399255334696901071888193320654846593054689012649204815549228263595749304335266143421284856772865873223519682220478821667207457653162348507926805831439673530923775674838950032028393032984452699860467186139055656427147024016429770550113343030614822149305508632882533885238614716559277416036706828389703445303488579173239881009995446450426983964108589177078169444938106858387470517933050513694821209714115880691172070236532541620643558137894136038233177617591467576170624467290843471443857140743676691670571236695548070040257038768070072899591506954386464303898898864295673439209458981349045832274458298185121945846775107737449293575045505322468955084184548234540399977218239097978113902581111851454287667994227554282323429730038158653371135247975248423049332736154714710736409701507979761061018987623356960524684930416481947689040034345528001222834608414830174147190805576852144794090166567146410441573652312141746266790335019682719935184130099805006812990750618910389877331753864209459257039602251632567659210949959393486217633332130943347156151232888716326751881796638151620355369914525614692953736962555267619725710712965515352722329622717617571872512761198907712054035846407635599237203318758552181896327833805679933949005026250831088504631157454131226198516936208920519913024245421470729936683793153897712392902844126749532660945946393594818717373668826783550644585653198839753392535537729859496806074383047781346610608511786807585948270046978292616924551733200731721225012694046475299145418276594366345534151762496669492063850999577525534886490199937747808298377036887191750189723849559597280044434972383459820958897299371515165418569280682455877430035831170717271434847825018155331886487141654604072364405197379634181743286545044990421311862211766677862404890775855606302163581120510786561340558011716861647704997417136659158777629760795851170792948953572826694574968908127522759789719646653022845959886989418357550075845070857482453365989107608137187924596558098601726977540791680903991405247582556273683920112261104272964447174896879114723279433876262129519369859105306772492230697796840715748078531782054639615554483043568583140694690528318641334781160331925860022850540153723039703114167205020653916921153926831609434349855872878582998493566284614231121635417307048888252239388306453969021435929113543910440080013389496819672805356994236583110175988715552808375707702216316266481417724544939225756702442792528371992701297107204913621153376064660985003364026039626871438153544049530242185573283858029686923651228276409771333148755821541089593686468999696745438118413696817435891430131707578731523857979718237614064125592755591360045895359749359022823794114768136769438602441367779684162258375771464265655265403896093438673071011888180228935775566352011565085968345836920190804623347951457054549777355556948744761212077841659610513406889179176529987385121547551974264807312271316888090041313832339854500052355461907603911509218864483724430965654601162288696623431491797561254948882863208323841505002101356080606587187697470086777682340668539430655041407920089597445877315832621840079942714262347355502686772920859752880993322378213814459752608992018015913380536986213421513178374986489766489932942049013664893088600461830506233638260009156429444418429146308722672024481801637640424786967038212474556619125178036419972587212670616040840484954649296777721547673706570659488720316693744819184601549498406498364219886551681756133548262383122956905529823158740405037890672957672590266919631893050753381267191805912431212674050158786314317949387371720490260851082029442389408217586437012446217126177267124765779822503133040063926555274463956144579189993647817254644594356938763410672384398569165186120605412779089930242070277716799633431924486021671439194935748835820656873854816402003265157618095754182239468796107834383889443672937187727695709933951354760890055584395302790399259168434409982823340245340710327337546078557741480164648059198753996739405119182774799572896488691138783833657622162018821773059422831646183915718873813189575736838572191798412095712852026857718818363997541572377433333048052979101244599967377479121228586830354983432822304321843869130323509400161613651005308189346857288979422330710774360779107229719303296171524008288987285715739136898441511451969370021850649233762682544955092053748618268283756369408437693671954157572625953465041912644098459740171684147197464311323153867391261770882890605182463378171667348740513654769769094154565349951796833983210859702953942498189587968719318084376877685048968293651214361861774282759907617593437969002042389112958282790051848178521304376796486933959843215100636324744650085524092035494985066841101041132359692958047109938862255719887936032872933734567705805620091567972894840154335306736366101920611022729944481377370003153476963531426031531902196893657632553390757507656673157533753136755250596807377675826126605163420407468543214284935309801472010937421143852365042181438435214815319892367408552923619392965205472982823244626170114705194550957988404299322368499425889929920340643589094908303908311203968404345864208612342701636454845727547455117151002313025900222764787347814882462778143472246524811135655043770670529988968210983776628975039843212306835048691446729965653081226432161082821940550122863866606936206767551095441170048061000751540144555764598443352027130382248585852985761723558590403515364331026905010929081649665598756564149302149965638903218678100060129836638407376631985115262016616397407400800865507184960573447530906511102033093651582386119651739651029898039431798598089852072036991381383991328409084594801412099496467293040459245018179974848440826740133959079729849228841163624843348256117485434790179767989652626726794330225332584405504805844568892532617640172761472968530935414313961481911946985539507741141731978348445927692569301458151170937199382219735164834020866752882964849886900042881833798605559079518550278976711531337590968108781880519760897471177729148108666182070061100121630209775412108853683825684106971914323495949450306196614899372969207043656317966286735547641887840627332457788391786665763914764120555710714275956485673709077559630860563723222108185484137686869077212292015482819195511554720494050609946227744811807699058894003871337777897589804834750111484123161747465940577674470410067492650710936000444912260962887825570350084317245044876034046545298342666686199898259089999132632323992248930933304666690962748181975806940172630749765802517520982684788921645130100573217558846361532549093632144369397313519151229278202271813895755846189826553677569166643986338720445128926325310258887743619086621876687177751809866714402550317121203161648097087874634652236205504117009106511744717738527291559955067578412030812446353861631715413916499227982906970246269254049911118753141966956379954093517933257303177666183332471662131853623140448420138450671854854365932090144277418941312532465531482722424974024601813336908594797169869777881416180166263945093428372839992610320887405648352026444346358897093924130165020752809275663796003106222977006807256797918577441991636784042669886161885958270715134669140226403923184184839910386448331702161917728717280575050789649498419066232091321868738959566523751790434229909330966589851550737447173239725250733098617854054875407362605355556184408493704763938763399583385309869204988631741355677785589509346305020704551814962215708890203755635338480910028812961951499547166426820630102495422816737625937436677068159874412856298073230618444429771626714369466790338485416840758423528690586704255878647067812247516086721152460858815640528473335496393524350055105462289825277552014007113214988359281440869140072612238181132139207542755733778206615492382494939347247533924532404217724782160662724175926174028821169982430397928779303898239477321983674488183193430168689481257701538369132471428362119443500207897353026272525533613671142288141069941154801077984547921934084370620857866150667761483196455357409858948338771538725296945342127435820489305223545333264988475768192163535280103828147616192726436785375217670129024075598571279298085664032790844196907108731322841162672611807035310768075052585432018316700146544816849885917216130881699826230172942424524635560207035744705496334484589252634113910800252101840753183581761556313943283176790382835205551943845501420067714106217648788410042933689512579648474136599474862142010722917994455891537778722036218779469523519437789025722693234366841313665277616445989908036244912591574143848826944248776708144479917751672873500347699297976433320770506719650415400807751460723230477418173593666243397207455439841033290084332963316396334684438003788863033154827137912404549515570459865138297131594597463192103935908954663386897406730407946138502606885370116276447542015179624928331508495198362474287490171836693892282358805210286318856906596722498033614551424199608240573847252042105093796292770410422124610860744469409212475428264595783864239512310889360624708467482223393785420056752104371972249132072451696306663257781571999819809937343115708388641189416743258737522254553167059479062065226433605171868046685671263318853733098392079452762844822732243399336415335327451193631398951784230964756280470731223327136576992847225624910977094877198262726356649294981620530525581262817288661880956586348936682722959243955782896502037037448905882285059612972786090603382183799601354401869787490479672948578465317263334948155562346828905512961975059036750198478532437209922136313723324508267399816754086105810738687146072242812321616245300303769446458187419125918417687585066414597538852998047935974794479667694406755941033685313431868633959515995551864949590374261765891133878074311065313616260031505999494208226662871749791206101970332386548456996452695022219809087306340204195995445032723320987382168798488205368020751306996349342733830837840556811485509539522103354509719712657212960794250982158558285107186482283006031557050346427507255640410023868281786665663099440243311814236470879135531883362093031569343922847711657983848582571735023983556634397600359492852127822677716776023445088903915508039120202287183182372238997912578634926083935725876937694317539468596288107032478427592979149645379979231835672121443514580999111008997468944957730719053228984722015864782907005022968128616336054178588596303229499226126669733572914681392910943007106023361177997857844361104332415839120821763468598426100229639693463568893528555576834599201830338123571433307280664692831645298155790560232127581805304258576784381595607214968631031208099247386496487619237684207770585535056842230686942664874901140735314484551509842495047336661536702305194858404683379921371335126509275517732975376047401617840465833429196938035334106377969831372072379283740213699836589353662785213020497025075429712903860658195466059595754905305189597346652851976827125577606914498676649218450557180935282637338269366689653106487783254388475943825497060104651310795442393648558925476986312137926284662775036434807865062178640813304462031987447056941165562959795361023639621642964471475415217363308919353618112371529314276560848733758514259501453162698054614838980701637718310825631117004955855313452644328980886313470371599060123920697938440649363361640489214382537357722222329099046582125807210747702154208224794993454120102094836270129793894431159368778987499579505751894716582664732076877179812833470165124877599380106233599847103787410598605619352357523476893313441935387838775716716065093490932101500542467784207898642148425142207542199524336978913532494219716388428627209225581449120257408975945035258891953903956030207504985861817703399530283749156915918039479204325265956667597789534689346707666244443225029652076191826665593857075030946263352503749584314474860063444340145599221112287210808896992669888609165963525207449688954815436203469451345592331293228753120393711756421588884957873869719122229087677053701348350407489112307630871345166431897642153247190575653255344735712766028087203493579812443689051674579356300978259494696277978714228818227088110166052204056785632338793996962264280914332105658835905460199095755420223105842775093269890347698324125357750286186515717097017033827694285190401070908389518561170750852769829730597660406624767111288490457768119170208863871814286530924455031651306044854265462838895277044184000702548884116211696873300632733201071795932386471069220755166583544250674738229767958350990112422821185206367664523037905760212983752513006279993605427292318334078399444512669639819243837755115611682492802105252986580258404461754388738954494944924545932946976184611978901425365909576974449224469689529730400737066397511882525644307170132502569412727716962545999659047764756401758003053112285577748885405692424425885150382936251010323581131095007947108476756319878734618296628123136387545604721318365161328076843757419162901332286469741372227852060837724164512617432179986625540205720948762547689945183746800442903339550961853937938665940198198935358548673664922225825487000115227955116929751187774769998886051975873388396377531423674668317395417323759841660411373310914442339320895213324487403106616186862922298221521803058296361380964632207775750697623906906509407847002319485181386991637273426342805123299088470938058831285364345470241693683162164720704019806558832771192773025779960637841421107336931175719379792415029094758074274743902929654896212665193630332788192950680218351441601414072626027731862630840264658480825011635342807780699666333845551319098871536247074318093735195287741116847576540081342653423118910351811058876718807994654808283689189716807419145104978528023000928887581284542794065321653541440306647366062191349234295492844329583875583345101034148970497415230668209058446275105977814687197713121443041862849376422217638839938220708379790031383851566197163556877507132884212349279393082521289881449278766717862155501184724413446382256985603537705945555847505723694307880932880368377670970214086046000471762885577041770173296199985361826641264151784828846320916839261141908405208518321927285300020613080078712876471068859879905557422038778367136398265394608114666911852073014492345265879511554951489687340241159625383604711907288014378307056804682177774602267445615125878635346033371734114283495394379610384030166558392547494616980315543011741637357338316339692366967652772693116177278319347015205759310486158935699482215058677432461303521474498919144816338428516680777976795060432724640492779827150976611587260581648634926990189715120194721979591080596470762008114773500895637246170753957700821900555868601272313361309918434624431604136407763650813379694063610688861475785354020453482583688939573726407192111024338546900359089765830464063602663058077783215625661822156717679886785205666739475808571708321228118125744029277990201251717898251446092910960322171021660879535807336223893245027789135316284955966981215182541573185118047647262320955260414652550868984861375642145272288140202190270381721791823567087478572138611173105532566038999513606496014683048761755066419607450227521538759846497306112275591784247665608484545389781013061967337189537532471433679980063524742322062254660766537847201365783738590600494574374680047308234772736723857745677462959228113147131519104005985837622595821905550525175725319466181335430698174946527225731197406646560869593263947032392476513548014871203114700783924781411860324635572372031148349419141432906390797240089554812593076978603131473713591918832237252186699282326978732000937478332773468472804756432039287860517302127190763366192865900200597460327749250816610304995915485047472945175652976841187913555626964979567018972319347121919076700626963089294865589007366846762134999957489526628609154982824134375847680850869312106471792776576808699876170707557919616535592097791773046021782263338634633944321972054098390097974549327332099498225837189821473572185882266013190122931785175472941960748296490817503007596071742402425726482455829496339711320357604466470849174632040626753462968642564723702879009945269955273875554907784800470671599319353599792318438430960713092402111437929578044471480064679655778171573527948308832794003371781122050374911616218949559234312630985306439724064883329615525710004268845041113453450399068562316592077677386203167563625208628566038899063318373863381876474295713229570201357930349071096378939999904144694037524953413229005497805757588812380192898907010984170629300561544464218084896108860283090243471222524750815497751638870848400563406986677123197376497805560399647307243163166665708149571338512607987208548159871684109839077957719600271387089428121479373445438345611290214799089737035915230708937603130609160125251047023906931841801164137429888620605460455932033266869202717078825920810671574405781803642716040715450990191528158150941394746958407292096473767456264232264606713342212225816201796773370245295121438709791133875699956743427257015322478844866369976217175686682902054068579716229047926705377031504715838512634933115676777068252524974062379159740254267823711152399921849179074923547313679093780766579336967126814022242028931528370725875598338445496029854696486293809931529016462590780721071474741565827191085879344652696217842433840592469731723995708862233338696896543156051164393134655120926839712049102395496560445278234228972047134264358516867635514407597114811574355821685109171548852775051879658484644322669759560710509276939802296194546309641216990948792843848542592664966388040177667109453126109639730512908051174409785059285879448307949695238017549744721351022016289543168880515616300531068954738640924676922766902460316626599529177947932628662806016773793909955805658272932325790060741831659857037562274841956302925174746125280950350616258374085398452502017492491647802709009998240493075938389274639605709207939603360321804817897658697662704535260171666490996202468230384911647693214693298054297578518638154403772450244015321131194526962422493576230755348738622480301938953982936584674477173797825779363141327426159900152631269860230686091956408720240285486661724676640393532844117763944674622129514295933825373463823118422911931538953027689553501202229161030807112585898258599994395204648415396457353569283195065166791303892733819232089959518120086608854872339176011219477895623672002512764319637215227835820132813724919810756479698533052722440703047359166797230912739641237416003122550027371078970016483200544024180449225517993348310189237559894256334685916618275048914904017629245653904381300005929447022410716040258586542984224465963825436302939077078271611551174277627074392279415464196455974943785633882376966413370506324319972918794006265602083976970187118994201754176140813297165783626017380938757724742874839199270116677632376702293323876409091909529636457786278810783794793713052076760642986244160011876172833769563345323471438314653191309896607034827634418260914062617991019675005713159420048231913845730595374832576725911157069500868987215332466940432518489813236258390816735007408844325636469590907891981413328877911276923236369203801757349514688716232810257520602158334271408967857005584856504755032869307864699096152655831621889972330126502551354313148508274017176336167135180668957927859438592274062443558038964166141472571401930037877684742375025420100911778501251524009851980027228367368017063345766405257388197570143799852654065392899989027580535994667044290725455147421458936244256583991166159456917485063225789890471666625994541720572220100007102147860000245249331902607608903533535938641641695952495720816526249309687490798334195196959878537237195179054382784493726404636618691091455310221805808096328028421232842231118104210086566330517413660584215504236407667664752483420990584651536283218726309320238105505840115957869736161845359717168956255451777677764571019076482156621783400709452137234332251069208995440880071588842835176633035880447343972342214824086654350374417296639484259909283124035276785383976215972113774773456658839680919116071802201283428058588924267153294491238271671572655846459527148776880365280412149039839266764310625917608267168452916314463635520615257417300851790427947774636443317473444399036428480284889788070221875081153380651244357624509977419413800709240674177304273362722346451328391959524107298600352332201429615431629964409124206285159494405181046568783242950473073691178996280463164312834640790811853488453430261113018906065524184017128180050344020421329225721235408674960955314122219803245497135247631517153004874361462388422527419466216172275668913818089308198182098174389154247298600601897807756134440866253502143010125536602484188331101697739567069709511996139836332988006364571270108897949794280158970902452760504752360880479089017158227407107839257489199864547005452063167118466888439212701598169881796771744046382040628890096115050647325033022056391435268137939956736852926513127638653108839621997787670702701593414333417391645820335110526853564114975650327329233977321515666499237409814060416373618979886846393807571165503275231554338428948706752880089723503241596956146440487314729897905916646762790449000852650539396406978980872305507314159863344332903108907515765693243287528853469256655202780975609961257455568966176340645257246727157173648487471063368724699930702226911667577288346175155330758342725638852577841183200978017708859696211502149702084265338759510725597013700543236982852927231815332225481477436605808228731144540644193290548656971268452985063502774663281884305708523435569993887797121846360938502667166818962243215347499001016767777555908677137278598437131942325623826892896010652862621535177382283384436223656540741895540847225781205674480430927269151595024151042112296688419647063850912990884728513137378872806214668581413268460616285438546652480506829479134537812725143348927254322718906574161751714368240819857936933567992857803981966622215853921434944066314736866446980341016843472127042295394909285783878184337168603267644428228980639853926644678315491071914652096407996244471161399249502092519943343347012283733738084944877606634479173191315777329945699422304971616722700682780013007356047656960910026209156221466897469548375634570397037285887570997090624774985471486618887863708339971409774670145694965123084971486958337520563750117553646694898756272080373908935477038492781887313413275755452482805858962703643073167864700063482182694579768302458923334206923190963495853166007824632912721076149467370321202794011476899780045600978538631115743598468680475663482040399876191043757070223464148368534894055480144772575765058101637525356604032322892913766634451533181587009394435634523262937837609193831238691814235063137129258346308386863449995542402842598018616729415836229933416819299072171333641849618919710552003395404371276266091599906441564194725451519891508387054190328626983832331063608344973475383361613022241819313915328681182321824446067117191757937290140375445437519288657429316962318226466882211816880603356235984005817068072360015198452134622388256804358595490144240378235570739186577978539771906388343931593858751917282341841212622668756447100049618030928635078408852001800466781946866873387741879158227633438312988978179397720990075359900435102843012281235352339450082167744818904011963596956965770900534009996464438930163953562907283450179143604229232518305225240341785276907630507637047710136914004254924358862855007343132760990461653165242789297883836678116868406369507414577414304738116157906889840327024039368501581454292380768043491231809615708028934221105856636192557045586441869144096438479828023176384824132515691367868876077119982273674587183153158259576012813703736471828946451417216991782881009897380019601549079347775303896567245492282457202297065096949653507772092283559494542918166677432533063315861435684427059658722249730378396654934185071624681388636469071460084760184285570738477294319185562349239967226241636538519212407749368996150065857247249406969232677563679156351687747931497938387735729119509081751486988350426826967460480248408824833800667722500048844273265534701219176929467357715274280353770367997430139627895741384548402883892357018599863557107116047935653177148738826532156868406677818518018614421737667014731023448839885314992084445524854867444312400605708035339863149961104322732272634076122324669901306526579182343456319610641415594383336920624740979315652143672406884214587294397518597565554287550808616220838251912804422962164827722526319768216991250595300589695787857054429343831912629424548740871645348983474323616756341829048869981357590676965552590908702153941984772037655011193975956018344634280446583486189908872660650828082338323626118260319862689197672459473541337807598014323701994934133773969051924826958865028854042887889289196414627286028004281032064697524149564302878473992688418842888866565966675651349016628513850663617395437508673093285183544332489168472775059695347157707149116621713462280228752240061526810427226381600888442624068471402536126140271696241711292100238043930774044493810097176023184861243617147813894465416264977013583622280953809060406410052470687752759303662396550317945971534642388700683452528933013788215647336697265797913535975980416444139946991050320997783748101953637457561014786551146716910184862902531048872938493646926738157701768280798051292064866743746584565232785029116003573071852054959797679642198361281372145607385109976733388063019269472999087751227908981011029743054068995549063428061009049912539949863044993786151386830767017850704298018402652694347363137045810451226245265104309749917017789533077592835087374685545472354720950034334334023204505214502800278517229070066366212159326173343718009688174367010080391214940369279866809821657550707665403575639275725486761587034592212793784564019009700035993518661340209368549313965710690813194696587783712033815532419914829832888596833077291230977352920926166016550081042689777729228427642523064028394109534269531472541157605013716959113066657235446270013828072855667490381966993914448815455705743266035732457006977312420934772949846212373055633014133040803259720197538630044149034710743924559765710008295878219418252573814793408531583121919754888096705550584225590471203269092902405489614140547807310712467579796037252154599975784888806537030618844784646231919744563845206187735759841935316710899926352234307141914926086342648972824074939781240448754232386995905887148101332481158319848479152480820486111094630433038547066812947686495131733122994362349617526995554675513336209353756981603675860677011549332985486674735617174155705355002715661160104444262993448793298354525233690110482355841764629165309307775324736722603641431294453352992103015950255385206425703004945199960972266498192793137843152366288242693129382550746737684624631615038353306677515616774511842794259837627666286757765654823172649419536050696437603996658370675742130676402029266777156861862076480690410837081145326687528528267100075465019027181179594229385821365333000726500109997654704306306355428457323148163337272766540661520128420508976509677523466188292287968148892582178919852457843815020928140484563556798482062723064701177963386065365453576166895301761439694183102667386247075854341145977408865770525871141850226374651147406432605632409900125523891828347989246394760374774889321600693733413740500778701554168520486522242597054399731300239453285630612276394329218312684718456960658209021813445439022387999152682552222428110895542376375743786416516481090733592764643147470754151950581848703294642283041959815031154747090369671388487791221034425939897541176124801647096176855974888569592000112719700261356564915023778703398745687676204676939812257024365348912013096741246044484966477951842495540744207661127986871072699591555805846027427602166108648606767244356986459198553765236192670636516100071384629701847125405977166510378963312258275034544423070917477759827633919562056158991041382211201334399574681932826686553547029803631337011014525241308039490559736511486166957872253728076613862388923370563649823413830501309711746819496705560547290852457401941958502386320383335999049826764660853522624856891619124955850335051878859498826105845177471351970375218842171824826166203727819419482476586217273441507492388805413849343992726906443798729051450087481024404229386825390876909139961509467094721288541002135932624935182690483074170849732016249608224163538067246072155223407351001925767122923381191669450425066130237912361638504309300744475264277242788410084192044900940025074604242490795320352368060828780126767710497582521109424605208572990056307739010695654888491695636481861286708036145201478841564225310790266638791872854030178348435556145605548192494624283056312127972480414238579281180592612684284280746917587276862314322750661156339427132935423845312325014507404391909641021421127975676678149399171926481801274140781242618913764276431144579212440589195186933709102814404835128420588905826665049272004970015745479385939825612888561445036578744131941823562334905447986542902162714692474883980983194167532009531496676131340642796890273829770779971072905863588716547281066117699294003526581388998712247873788897396532916811461770532488707111626351122463453059677325208554187304706873607906306810008099913838303496607922147889906442536560624446756794252388183533736648974413622478452434603354404598825069357139547295320697880229795929396569325976661638401182410330409795785937978485925864098921386515906266266334162218749304856103089223400381543662252409823892537291986121692776841682237802378765698652719282576057669679270012127380661711544602131658283548847174044721924462930308966895311427843658043074834382479965055643596369728702178412968924725100823659810574058091123500861167420315986793205140946032129066833900145234388041179214311393691247574797076085219606787737576508502689713156754568228692751165080415128399773348215092477733959897947240163603741809400851472871412209826710816718551185801306369512526378864862667654823040619017606280880950937251807693890541085066594649437329681928153927852073255684950438133402442093801807696199773534055385012809867702297913320650136789494465475272081181445944923416085505164090597886567900009519548595267814785695426179756949977276294312650920546348521717560905481678551604560838938648820931344236547689903400235875746026552240408557502948015045907942594792382884753214618597843541976582888607195197911202046603201084994047433801404364125027396152259713660230478574644228346714786429531608073137259782767871432992042860499514896858754278802447966781301770804181648901107841265349787200783504720353941000729868668784553005398467521012015030749257371808505665309806611674946655347405001164253885863113052997930358191204413190060051264712356173695649269842502093811696240922297161150345913439146406658895813023960813393068407512114084662554836804000789271612940721550628376864178079332833735273436584324000854149732231282235437344176371715647924026734154436225400342496602755731736569826924002027114642342899175352155735314407345212681759117048112875687983735710574057281515168309801316123173436715804591932789408641399605653066643892238370810035255504171129517681089156477044907468721557278884273353937464031344987444609329312046890333230077191183850481015760551345892355661426809142081593302947593432410544708027965966869316294614640520864226574463317905773795273263999272687125361880574171515275223404378743284402919344334182323078562579039522542391756960132062236562190185870332719174373050308501979387539534716643083583220082344941097023460087763656685701121532747437225960165943990355641138933685352418309730041111260925613341628246540494376576677684732639173335539784338674029415994538221411818454172163946149783162068126148664252155132290289239971432774763320788538103921185393078337894694613624454958726720487322885241046296249237698254708101182146530753791698812344912985074323331024742782329055912769690218449712662702751917661807147519042543986813183095649308944796936321970537357692781022357407723388014793466279175660204904645229306066161486181183614051389093591149281650634592377516002544618818232372860168834571623163271157325107285651805765514227720923127226588265641178989690491772089449948100357034412894123785790164222442695807148079264868660109287329031593343528020204700035765864669350640558772531028498592386598170141888486084136527925624048326113908840865070303232800848082659926113812005071738649962702189193159989961351056584156528321142979261894291872039976972156963663131440730077204288913305742149579222864209589691896805372588289501952949858987950839611575802074985248944728137816487150245044249633719319268684131672849760489161020168400244634793273050594247579267244405010211746725227763770732429677158642737606310225527766421053323945972661084266711065418129400577213332667376303584944910603610964549886131706680278359078606994443626086438018855949671299832873721367594143043048833033194716446752941675776540040932967873858038100272909467377196295785130164763450965611256980605719633165983313444067373643115335291129030938904635387911499817525546998369179497012925923355750490661068750981213479747236443557002565857672934802068416730891703624758193774798174069774642896344931923621632042880187743402859272162092796832789819134442182515132073041000274656790012805403529606260440855038114305111515876620853288806045756343559560442023951486926241739746196297425857754470660419108688282478055230743571394165484390283123748335056670377648462810561619444345848932636941372719464495697107829755122962013555063008677661529794739295054061687643209097361874467019767309031625839372199146120947704229104079255682287795486774957769779732438078630509708934153885311461660918489545962614216658350860946845332736706424450936865135717139900412543888831462047101479406749585660826503872769859740250588467362689065283390042424795447730045652476416580737958393941136511916031989062192275738185612087267275845442888815015378225039917555286497573214861688319976174245164623951582695052691770766807051585511241879625316881597370948667292323296788141822631296649087246473448780229523207172484436799095777662464215444339395982594120936998012284815636860363446474881487164098485534894892008335985560911547163125362811870199812370837956753890477284787283471312564088403852294562637546722537079572311135978651578544058431315541276479826240112188413794591646808308756521520452325055002825227529172589426047154580696773789498656997769540172102116326635306013557418872576221133360723324941250450737689878715685897365478273411283722137670956362662392338782630604988301414749685116070100301338431651331459109640928165931022319664851348862787529831951595138413349535651611823497435745624629469343384905248399481646466844219620157758171855688443864648554911286323577745752922441491964292545468164691319005036486666056227641778515950028975014818766502985097741573276961159109781597577365909607935460163564940534505244295559109653845121161580441867011389352195851104210762523868072156140424646660046504681401209306465707397713755883573450755156525607973318530900003869218846909604008871661993771062662172825312685031788589690997662168325403771386215425003987500500082544456528445049364066094477188429326966145919285546669093863126403828826576919037545995001252596471903643462087475454149846530793867671558160494055485818879074631266378343638731638407482744777037818857724433472345019843891750937686859135924812119253024518743338359666684755785979522265095773634751252917977422997618794575853505617444110483789049871129040608785435961666429355216202227539747991336194563610433318594373452891068076605511841834067114554069056527807151160511094812201607376891626627997803431791930356750443241789800873643571232763516529915789942292328598294195313648773098097851011142711876723764798920786081315372917244504284683391832224274020007568780408277802211299971144349426160978073492808157654079452530713634803364191621919394026020458257981376314446980520725644579680947819929965792484886383686326041592522990920447491041717571667686142502666568902688773844954076162908556639840085078719859663207118419361134952705538537013246727073433267065691860605933480787735286005794975469894432655887421878604138065953986889219235289519753403237843817409602852591146113965012825705418951770771312961676139409756161788895334544993740112993798881193821962801495693763770795157474429425335249821139960258804561634025882667457755091826309238699675113179873524427202665484336715989902060796651583146492900505005425818526324021616980947581163196477089487711147485390096227107967059997421794152724576350505231174326417205005302645449004361374966302990335496063202121653503201157200498359283614364565992410202049606507588965988550326957882570810764441732321863701962051079441567356294740719139131673772284486570266234191437066372554538868968001060587703245308766991761027783209909042893360278416092942255518975647838629436661728839313648982898448197958628474864261409718387121680262893547484914871080056756461729246384524107565968509054982896822617219214213730333610034516406242526827631410147925229885901856639164884333498028462460413308013878441190590811549981303274896754382791213511115368802939962090640694401409073029197365036499486885913018923613798575869806799157656669614336384717535225653372498019857666244091140220219526047376532100400409801097285351845711516272985168743864080879587987367881565046825185826045722637267999322731843695826206215575619128222711856476335165391904776158274353201939529533042922785300111370492555330543748059977828605965831648009175276172458402468666382256505407292041114163700210713630457295191389184128078015161068641514350606924177423656590064195478698339272362321161699943795923227575278507096649082257991556844831367209755856040942695465133985285280126304809470236218143085685437675623456824711870194955875169518181726308842844294492067486961633862757760254001885479361479441542003444603427348164037976972024164993837835335024339300657093425481956933160893653080957098923679034484757462360063091901776391606910724217995485225589536948719171841002592588602962141877490912379115215436472283784603153818558877484192044590255541006596103891654837351353164657867843384343366863656478929707607835135804100937844837258225237099956255965194969957379479644679198447485545622160488243157731680380761979133165314814615030419010476787269123835830826585335318908522758455364770888999176640267060390002013251289591172584771215314254753603781109485765051001783944049995192598451341933850581123448356891011338887708383373867068855035542311102921160001483070945992931375670634846461620946799658118520771901258712562821587966947748112164872579259810449177909254580604064952476118870825564624077219544735428917483373476520552145810245664799051070312758794908335172857666894354319595120843856814602183019533831224169020933145301572488550795915504954592472338516290443443250197746096193610672981594914544326348345771997559911689570793249898150681863666974763538559101426006204568993392950707322106024981139858046109622428179592670379208270983241854650722214361214785213989792825103719443956388751077800755069932970239755676150890071463421881207778907022756162754365409876116043295996125061233805401081511358922103599170941885909785695009371260057858114495569806599694134624601559493259395573788903882238126322157459568575499648802368199331426384743598476393764670517955782483676706844764281950825127628601687385131329165368492360918536609444516885385745861329797848330615645018909924771648017450424790468198240197092639299771213714616591952329237540119887118948893173258849818473131993585225636135233873439246372770222623208546743079604025748790127393510746528575447300340775946106269894392162057520808311398951194829531567184282358404661658815051215067805190984820408251340935679815288543767083280269640116434863254106128007642626354233678232056150460408285516492258313931108112185256995696366684811008580527182906998953106465934092864626879107806527766532491591702154331233413559664116753630353620090671273684077979811899680548284781079261934750515053690069382514995025293432413167873928966126773939329017724173708635081180928844670729498775036273257933944065478776727374029401492985281460974525601352312596427836586979116557695136008394834334065976896183263796364068338336975152831467314875990013845323336047996420749959705915292081602125852875389015298115218737564240178352809803323698443001663415820253082891845512334849907925458791066983659189484671493231487502351486331814466576198020034179044976837278670495418014486809278452356240523995426427121573949654729417181329439009917394289410018775844454285987584392777203704143865464511445764789104719426315611904177790250482168567966557245620179702802418140990412422853770228109952836905271464026087205833293981383457121181406828599045005085479050461215233478794448020473424435656097305331774912111985601279141765176096276044831081926768977754980106829614637544099876821273488281751202359686775647737734399664112163327238931343658219472306773827981063034802132078094450846627244619129127861864075433486375670728991375712621700454751283563200694498346038761267256297911553006771800302328864684926552861628822204067153851498274416199128503660093530523649728229473659849597013214549896180165830380070557531454976990827457719698240031642520884952853225378673899575269097830112330875816738245336573659893463937491417658357503930762861851661700498304165251666950908467281763945000585486680197573434379836266186146030447765607974998812412024698634314294474993469924627708467479892974515198644964892284811756356242379913262516643257228032250196722278494188546566921670868708086294146037101590272739900087528219655207202741496569911097523098890994104018917425318896909435148061828512334430517662675511273686458141495848456413566909626902536446646738079218069295599201528855979806422702961982782853550635225143370253253877455424254654368975184936591211057597959184020452966952677473634179021718098248614785359979490161776904825893292545876059677974300616479930742619040054406617030592912658781220969828079504674690767354875623992626475144368978160897378644497565893862232325572401743330018169967491355121533348709500716069950590638818857932837389779019682419823370854070251267920787431632303334013922011965224226953547364423275702708706030171209912833393881441462028225819456701683133934426312684513180638086187672773118072950457814008132654298213961385103158320020702628527269326199821488084506143648485283697049416716306079477362506484579849858999390150172900836209964429314695576608450813071081077308914527427957288237775789593545217415598808997101531238522443890114171110267942091559056327776715318145582526737375421411252326971761125832198664540752651815526298615609206537036987723591185500153680483904457590863315190039610043949876756404571252457340845636735676604484771631741962027186299096815004100775624300629105181877327215134905008958053025682128723220471909682699956804630522220922802303133335528600314977053821889787188144179700729653695601546496182575106589657686064623304552956121549470754970816009628722240519258102874913863509574215778182834215968082422404888920456355447453724445182057752632454566171982871847915546255322610056222335686483698449422595829735320358462191145436186766531113704638813438998313654619279081831543869775730116395105064881165769032905776763310745348971184901678432728969381935616111771801438304733081816463617033254115290991150269088379727452210098830240772313694449699935265640507214590470339437981508700198381264042342813124483579171155066578356540762411669617341217879701539217701536279135113529117817338628301950186521658189398911882452635404128112811528758668109940733005563206400528412149964329575522136148141743385726621828864499522506931595920679212033721440273611374740264211019596022601584645376879491800880947225029086005158735299800257219900416557846272460993202371043472213029249974130975889245060540816672023292067044387179190417146029156239659088002129733813226798975085996143406835500583571272649245122374627239524142760499093345860294823887247871306965183001991064495894876830181834308008778090898800842025519685163658161268009715329430686141453297712512528722087482392726860671796700526821653990873564645715081623518247231644364354970775454151755264772185910750530729298969391402566161271888203518564711449036338977374859194342420519789224877022234243328924053406767784924727869897078491411921046855736669292948135780814481280685165244682336106032245882664470200366744098839705737799808809898672946577614771770700265889269727035418396139455467207864869861188395665819237675984025168646836973011725360742296752711241843390213135461505310763690313328004204955288953005589038553900490080821325086120600977664548044481995964327030396706216295131632183682277029856328724012547303020380774411568898383377221106186393864510718268723697754435606915884098398392163896484225869083514648614663814802813351739778161765022532632774763664728701426992320533107789542164441471516818631632223338598161602966289260861761598992444997881516745163806959537498566423206020473631805154812095527894528625943644200662645782094125530119077149692575526159485073678463134986943314684410140321263856052381399409648138942996134823537659772464751847716523722199269162628804112064049912270933496057279592226549359663367494391460863932339456764765095003184267717764598069810960154035291236836389378760554429129317419271626263664216430203884126321758382013984342509438525734895298153027636730397927946794988587018644766452638824222512966942693995147481045789378330919009380900614211303256916773594370172031321536412532786180226140089329693200027180875690870963508784049789111128144959759415588275757393031068987872498727478074832167121506325166562043152962538710859269445356012896084182871465928582124919321767744566294557351698374254880270311978500254668016512248792950054274406830522147956814255271059101763858546028541722081202530711464478937969104111843543220161322990251290559752293101028772224850307746989789360965919318570633817417417642107320082017387112398542066541117407152701059673763367633581656722143607375376752609007530671844890410229466729312260787971406745322576310029722568956241557772467197099979659125477575897086586595336679396419110616919735922015546130295209748227625125067297866713007695087766420166463071359616436977923459152139468461853375402509642646442016053197798939828537902230302981794121465472644633082276827612454953357347272843832926275538516431506025307535150023800439985099235594513057834099182172607476858022160694632158100977555883295771796034588602057848859179929290979212285133553584332769571744532422147399095416498936986510351031427478994847243883397934779229756631900650704147214633629282205072194872214580073408403097430769716930882039419312736884467204375031385369396621987153092183534853128158204057946871453955858938477174488780947683996098647344694152683421346561064167869787017023486445347937698553298830004011776038102040586839576772085532321518236629835558660815204476716449300138586094676643990775764089405962741257161499284197789374758031983445636824416497139096891882251646109735706090814090815206285205861322302023154807807269718310647685204059555516522027374802335833564411944992845921728632862181779236302305340204757522490761292279938701811769542470773671553064272775978998220377950723467004608685435447085562694892062568200923871048954291051204964696330517597680287880706589608063155080349056275620531250918097721244374666668763983704896316829599665870929612250523786432925223391358480251457572447455379773679424127385517801237437570893760444703438280355218364575338532386827276557364962383116037106855572994489628785336438299006283566527931928760330314747740421401733447202637181523473530503835132335890089365715369299395664659915336319052889885365741471127634509058543215597220044131742263430832080013170586446280017850556241699201095307223815724945748011321475287915330697838416805389292351086053562775256114256580068949269328042385233504299194403555153426850997789733177021928529893875948614744566838013567971127893640622427846002151770517580478039488243275433939611048181596358986271241088044671716405386832900706059251829567252193305250784769067849631861507728032879937809266074959676279025566896310889419693157470773806448783335295137397720038195047345606370911166541545785381761704978097076756400536766801392145924519667491655634873754474125707782694724846501838249461676005438743877285819603115090505692419286979579262347599672474112616188497841121261157992940434795933697137156929190243738820678567691490437107393775359051390563561183438305283808538615927773053698666026458683069550976360996493266094180547755962287306325933022377883411832668226517265346930249479275746011248650396099038310826299098525052090338026877259656265200561801085783530840842792868879837254595398342881642638869415490801565081707162651810122541230786701984207098013476844244447351566524359103234099376819100764251878514835207870000877122235097064555664828795737038710358480095277602818593078470928273445745747062212452388094039069143481968459658785433438206408925959505077000676812463790603711810949596000511365836677153838681044154051195133056686675920562060587005807108270701568420037487736802708809093997540118709045960037981813774175960770732488724562629226411961347496324804829891442403426571057875977491815049796361470865784995384916772524283893931427882299914140691528280915283608520094189304765024664936212827227726781980468137588279485384663958209045253189831135318576228637116697144362991193353937486058887940515681375449745281728434077805339000389188873604267765613622289073224915035918399364503746574228747739776696015772379338462831741186840728964724444155653702163516210621126001404851353086884624883825970611776960512202620154171676906425449029294421258571777941217087537872418811695330314749694820186572576065627756850053834794568263686822981058245520022360185885573567280209046119131026985575859350563393041664230656741750865622689980141826973300958578331083848307267203702787016143915411002629625586971652092832671748804017531486532277446113886427726178866934744330401354092738264298908151065379355328524490901267308458713487768284529730953209917749810909894937182992493182929250698977496678967014662258846721452292811526676795148195293861079420173272101757039634795061360576246131605419134804323668558772956122046292027771499949119688103229276192129856571078468687680423585735979209648157466154693261171885699516223890470849773117775846085940970541109403662713950088900049168429317112380469210436230491551307813401636358625374596415373680987212873503467811124648612454701243768147763134514780506713987447996508746755628269961302726301452466670987398713177349303789459207954583679350224584599709825349621071193400544089255277693621317716288017597312113349024752448230375607189140751654600471447265893457981731193383679882938782960860142105591136666336720540596754093952722276290628707472455205990020633719053201657706734344857841279324947801447952389625452717812742427348671635547224876313796953078269050615016331705663616167186376679174887045075872442792796682249742136147512896994462314660150490476357599944679484545821252126982544729395710181872868513888833182388802936828230421878228110092889191248737138774981730278981442249609004329517512445058377292090893517174315712166734066343992328570023005180406419142457721395826479750663317480723033368705484695459312011769362865612011830390165345634578177809761060431120970366505775199910422498216810969335962408557376852581723461298997178978349790740318087628375936074616374244857811213717850034059781709177656038399440424326146890377447824086568639796134450741934913201642730669130552985104775428515132759376723211276374338943659330814121656712407874473779622259408659538688986495426273216520250206377216654203523663915613688925152022867301709483808958167840818044443482074684946170383929506257107537107029606707427551516687752316062771014655036701561003617609519389711080780805466879834424657508577545055081632342841467127364068769343844685518248420967027179982227558497947453288085782859853085755283172520841122458018979976990616818186478880629829562082225661636403885297592448794787415447084115049021665734956769495579848378972776127624156905918380411002114835904303697930049339421024042574168633940976554829676135940309168459320565986924396060546477371889383754490799600666296355662112988676409004760484111709470659119878672274001480817454203959266175540221803819410513411785269721318236862302256580799902412061810353894015088742660396896055470713801924095429217416138318520589386854020684283168075229922567098462347755937504605681852875187161360800851821829416549594525337796122507976388965743276792048556233847112306842237244460513676414779781260030522229269871077902797240703958782836071984429501726501209067570885078278828320754826824848549026182840388621108171404048061188282952501813802389570266518405572391436160862402409009435635743830221292763298640644717956773659332776386817632676677347358073023658673868764319703149887623749456101083695658853672995513132870251970733335597878465460295815093671788996570875220971148388635326353293538471191988366043689173690253627010800446460223285997756113929668709976159002863535343452744738055616991669219699799124791873222169753027937410615773567994703013289645222659255576186634798214070439004752129375554812294373592488015865750335661895725065109303291485123056300735285979999331525688189525974389446035309966007786430540845224473494969883634204277523067757755101113930713549948573058430635904594487950079136343292981729739996928179957857379275705226511541116973556866023110776932641306246904728408956703105334673771605463483840975575217335330110264869830047643167698095606572249259679109710294018055150565430761203288198282296675964965920548089392140351569797329816428023925268938951789509928779331545862278281016114094422197308369145877085518506203821958100444812381229123808500794634094559675289956451828539669285380279926013368064077226492805306913742610446681480490925202122912924397137121413758091970311126066775825806090051001428229788129143799608438397171839773400463255319835435091944667912388358553030491985606905329540560147499043919933236402050190535678287244983854273828923936583803484508242069000597378070513207527177433402408093403165689287162750658536919296457980394578349488977757538993060277638252256438664089920860307636554518628751622819950286068978372187142974878763944297611279927132960043763472895351901027290106087424758837074715612781464889381837339250256602431429519730826427448424231630634200584013871768004029176979611455229196420660137703241092173132310681309524084093113214232979832489645875682797882631835095625554256385564394624753175829675862257033685884373777534460343766038328012096077084606090145312212167444900452896540046770388884089776821764149842867771672747452401445674645071416875822916084296235183226806460446749593593092363316897699896150418291030416605267067423378522216167221909867935313189277710392063856949481010839085806294791590148752302904390709005358486470083380652859282113350465545895782589067935069062963494484271259269082952015461241143324496314484331033216878933878884821194974643702667765481248790708059564795089794514937442693504635559640811645831592751785770120644157391195268802299993956080591401567611309305302101169120996361390016510316169238833376393501098824388488381692242120646053602608082971831379890504960361643070050867479679631350107516132138594784881225431752090392488146333648604924359810120968920367563810380852858018291905285403702748323985775262134983115998633109279122708932285728711017754489187066126986002798542521458986589643677354032843027258118906833050537273890337240222952545693147894470513113840256511550063227439879405221341978589335465879948994903680246438547495351180926452468485318714913445884145900422487670971386311743081272129758199121962033921571518645546156055395423572903850092616919973388281482116048420046010781541179447924893570687824282123289279422805964803916644683870458952054665587592263545243141832929106501608733659944259978232483707790021041461201090851608402679090320706986643534338909489507692664545051724831624498989924151378315252333868704750439036679312725118550063914530033318083759387256344477381421258804827293791713961088801083950090429167749875350115869252281395434458514193320429560445941231681565244739527880078318191443635133680636687174077849569531633155520878315184426301879427877405756069539075258458114759735715545153482368263111021041101714564038292423710861389628042039402687949474057276530686301881690027713068562759201492129994936587031385965710994014589919730933504439246237449908638869487458997839850903511096825580996623140329597051254331205312637373604105926704214958337167227717006082323696552279780490091782962002582669297358261771009090983536250763584987629191641469446417917001928373762878411219792982867716911831262395467688848327072195958237695825251781085201473178436657570738597699225744730184756974669165275010932021894436886977315795711945652604147778208503744284620761061150465689823057535986166555439045720787382886220001946423208434287433752230817955844060570370316027108784152091134194432195956343068373148979917730382936274445379150941232336922879435155168238118748601043027599470890133899636277598845868277228010845351447079258459074210404477730936490454896201064928675557239434730842181112762718590154538933073050540050379357997926744010241610282648325424021178562605311060639105991820081667600826305959017090233453317029604377241006498463734108822762641420614511044356893245859418306922424443647662350685594996169179051285216747959340798188357862242328909575445027977922998634473146106293042844033992882444783357077372323884616435073921029405158461450512313871908631963748203138993277005722000942486035227878710995320943232135353688272373751917293966137503649680990402636703922763818925142475741948419661953345709227519710105352660908751348586034066969696743375865279993598524030368287590912277683594251009983792817257777404260749049704393046176436733066398141947120098427621083780240646968960919491665427879878922011191705805247659712860418465447440497035397807685209683469882708454715793083651656485808747636419002019384835398335017452238702285222622454312158274880549796767547298140127929439404253882221040059167500778531418195944039169423171794322507592280349497927649983814979496586904635341868760776107548320537379172022199667263371965963031643508848080398381942841835048583000757197040101443746202285487588731067713173528138150586745433592569805591145483965306682044625510491392669479120397768685383207483331476252861331917559023409196498114841523665738427098673833562552422494436603508473225947084881103129748293637200344685752617951137331419706329433321741852234859232482386826818581165039848150960716475978653097161317984419713798464137541645202706000943073787039104201185146168527783275898541892074807399025531239885459971437158079572080055414693233271299561684007756514652873257181827855435896121118128372599139114227947096792361931553987084559288851246289729198195039130880331987281881651944516350919175842367327374610205778199485616195940662880959383361329421927362325029506599417888391136209508353657593804007094526761888425411207702572013596796157080785970487366133207746887625512821496588148408285477369539669303600901469768663798561545192348582627645501943671309073197755452244557911595975519042210728591544676268560360643262495067735912559783880181546160226593997004269382071129218685828788191031562382923253899204442119377139640047715680120920716549542665555450721982923912886293703333357662861064262119885590083642606012137150875180708467536194171983068369117397823992479944082086177779966568798204519291193320774059020179890338887045838927357019699219601699390461960389302230950062516392484667435054736043676789733892838849360946058608639012292684729002184625109339891116210528411576314799167782230120235614636958964921566166522854898503027053596790614736836198473998092782511310414320721446400109749250232517293025043391013148487600689967556382868368025310541767041765883712438248058080015931440633444577848266401515812093674313171911722786050520934079270623093815985938703964053307025215243339174681283280541947110570477345001298067332709497007768143214732915598404599836148110794710444862390643038776873300029831192923801134140159689719689403154985596672577188864770280711720525720034549396538337902399818783041227010975379458720871304626836893899906105288735303297822181362569256380317464819024225668795626597606481459051428527158353851119584990616852319405068099012030020373105445353471200653531605481502025191473069536197832153702020946470013992787896316538787237341071073362703344618964386876329711130300469709155172507256289160428567123172018859614763732561072737201001013774488190193790055644879924462311812973888144621888609747907693199655364085688067637100319042966144438247157203547862279771477176440394418829268433343642150664763250627728906461978257445456501216428201035569288872952113703242443906865760182116340390962212839049710263893398273360809934633337408501510989561304216692945591466771270450409506132795923348572528240483491516860349913314891929854082610412408402403153717558914458285379947726850802665362558232172245028222849829277441751465563912231539520671413423895339810121405947466698421362943742992971323202336914690176463217641742436849115820134308988274930177443352259050680998158078361192595087578632565443107558235622093054931919488216976108842336759850372867287560510896124361131087499600988789017435233770056501724049632304806552726926800782589838958254185030864468948513015809261541936755376429733655886962479364059511920737481223741876956215175358694848190421433771042841040652897708885480699009496299281308082495223563167640734521129736525855712377380145379816513715292074469305574090246702446546560742971157310078550181504149938469860163602775435031200963475453258293594346833660075113576364168805328579116929063353022011785597347550747792015061507901104492262917541026661698830148911318835363931895735633021332023491159879551983586949363722514175093408111308778720813919363675703268654739561370476129563337453194813506199202262095027027668304431581400823098255214902255578433928904411784414987929761548481644665077509536341833193598317298206813044327808831539348903448504773874575756811156695824683015123803319397822907599463001052379407293265584003900720651899037972671205009833620129371186907187130829192748276379321494504113245308026891334954927378970091289373765556100107327227856408046332201290610958900393444011905566822010839585299913861694327619363528152027680386640394682691812288175505540762781532188808992690922655031724742043547284331584708604368577689084686900017002139262924293501796140099118385748690378916006367384340403529170295604696761294690954846723489317427547217399306019600386848859589009408900224363569032295851786356802175786693033809263610656394203878576173436007036637650370567068551237196137783490907864033776794613642504433076844011055525508080986689370814009959752893192005236640051249998762193910339954681520570553793817356771071197492296418311985047381465507159315330968633401719428902719992153476313201196442688824097419039298000835432759718431907447968576870863128173923198415838688220117929741993416950092416725589973532567741112141980745434291306948756621452364973508472388883679702759385518274512390151769791653098308946490979862700699789953722558799155596914652869850187639321144576560921037713004719063813950708540642869701730037530195409676521717847675328782094542488221162648457510937463439021232240957700123476471972403402359593966075590046068859313999197709847920172575520475381619558297261988110932884655559689667806277106031118104610418833047852501503117348454288892542911257750238143516008653376476471209892057218377558291910550406828759793999053644990733430500121822842515192812281501836573095904010833118403228482447004573100658556597109149754236410181008002279573137673824556918982421685148439959500752134082903121189526462170263079042611297689755850419447346671534082901541449407273715284447480480376861063054295464947058877369595202066136907090822888365307885165710986693466847349660688473177604098166073774582875541887968735567038892444065973865220818509497151426841995186996337434562412718516751251133175362706584104953972364698720979055684028820321373190178155499067891855198838422450904061397416324634732780859739676952562754532604139329941290847429084827339897459461686009231074567002680242487819852776510847246375320964095638789698056437170852724780281171131276874834384856492020094133344330863679449473083418678676237058825189386250501201088570479468219264568967106255764450590330217991298004695042702347647492424827431712575535981911477948373013517145654410386867449915824284735541881935365843961236041110715692716974101468625475041595127109443154194079755637611676143498495921996895879193450077235538898123380864293133649149896709650167316869504607293871543095121448003623770663025871941690259507283441100371337070273201344708051455560111164343261844626219022627696898313454882964669514742007807280334798908646036110954686948733830776137669561108370071589488923270781785602372050130947100795847802080304115374913596062035618601701251108975623798384927427169120163228269417026494359858756589136276605099494658343734027972832338188001893178624923101561618687058528105076806209316809409831172943440853465348183061487121442966139017019803991587284190297098145727038917949734977228202983793884892343491255258289095018569958855263045037469508047472432815645417586968728223012302891627733217844629888973668279561574420479257628889602179679247130962379095649922232713705911188181647015127308938513675651918172594203213627196731691694679503362710998409724059741939652430681068331782785416467685929087647176448541237351435009231119342644474453629039036244330034061808419080820996323808973484305673294352793808569133475806639711233314379653943243878411714220463163082123499927666952856362725231802782743673583680224745680871730320789328787890004096722162240380787904343844568145963196183893584668444520044792013881295767403203405663183366522154544524034627660492299067449109178393213046668679664305141078688163148195213012456060602422775499234802136927623933808166592386407190124923582682453530416031218475332406602819104045090023142233876314043784932387938121177114162564051458136403201860557307383351442935250842902079785008957641484249303773836818302694024588774677293022555564078190557502102242061376009753100989639135482813535366378840572516663591758548421192592625249329116576300823315375084599347769425192478561677729610179832553491854698133992704837346349161513085101490394288845261584223006086866605051837887497163146694630180880623254772236455855866546777004395694380839893253095902445528667217791604148872033181999308865910723848734704612673667410818364105136580836565930632338094368357827950974277080373742999421806567056640935542904222207117093142147380446205543840054766452634152343217332669682246512879484524830732499567240392694602772036183414129614852947680692182544679740717859869431680752312039902785770100712550543298778845975819477514277994612334239738599200712556709458048252664134996729377080619227153076421278412912110493553205907487941670680456507414333091936908614828410899655018566276913524023884642535541910018311204929427616266786466568087618569608280866021490095843048373848607727962698591693125940629978365532369163909205403125825373919582666829737708606917320689366258570177288295775052546918732938403713408054523379408074569713981189401052126448894368025376426182800181162608704357381034958084291987946059718854114769693218462917460064103043052535038523605923109403109675112232033007836492472752423934378682025758517283898532276998558547551236293458097860185030532726322630679607766329985913013488725273590532837203130712438795673933676047117041982964882879809326159690352973923845774242443153581859565968378081494260637867118020961565618276585470053430371176866102799458590620304276381276523383182136587373095843959753166621834630602419494567815306063474137199130060737549059294888039980642338235674448503481308321926618112543972636228580046208395943791093299567208408837219323843177228593124188174601374918659797770005738471440381232772485442814828157159474419307403299887919443095404777268630912088371749558470188794206177111256833272019188704146138962549864531660917739133755592158593600210587501780067990902683509914879788339796699167347553315630358410720518273069833040676761001809700001712732548641133428886170271756021732035587563596878823925504601782789697001780723335162048907444461898951025039088992087254121589268242907447507295897594774377507855888932461347276223859223575725661728996353385301216183121039399012684251099015134755340278505516821880418417532077243705720948326539188393737600965467170551870206656550478079317052217615864480022511811910264262258955211994521037916002212803046117177136479585905889052962895166333082143014943229026193837823151614321253407364415521356839547642168499125989607629184977030647632284095319230207174213163549875973877647985988994914527509191766862099629646187286792985613451799077143903540154736752425626918177945953388090378811723358968447331465847466893598865678041481274674454599241149276857261475202494926753376933655402977452183969822748010890782780892689133701808914689998988037717372405373457422912117822332700734074696618090752133214120026188052161329100688033713323290430048113143048837229329678792482075363665950867663835145745925131555474542380582572887337718074091023642334668282352088652694780325119965686236458551492359861907383691939025055806276839776726053381144745268001230448970795701164109426798083810426233126174053100830478367532075221611087411137131186281464064227634426134015447980583127115059822141213855749845902060902711728981732326274370531828628312179790211273816949224656568280645173408734136784935687954829933841017344178693522893156855379245989785966120295856715574565741893828308749998469950130505050737698214271599624911832602958914494184028140190346408610336911222609420267066117031159584418484953250891369931348854928279073857042024580354501937115412392307275125546165107242034803723990724869989936344274540705104308741878981145260029885687929876115037071909767322120683705364730027685435853865147177738761876231867982076601426717814525214867526750603823924718316722210028548295969478470022820897791793862935499015569886085108151427126251304391457827268340820937140257794690753424607971547389811032465539411492586072725351038833277858251706119927717539940852497090646686036847216483239623269300198230743425864827548427954694640728827402218482507268886621992183369188673801568778949909598560282451221994645514174732567712825958395242194173795298069207446820930162342747654393800818404292589403558904616706723454023580629846740609613865208612807906830981288846707464712431311543830971784882414815791836560274564533713789420150578833777655921896135777020601561591100008911967833421695032389020257993534640820943137698081307303071489903746629615678198200489197373115699573316328336839232903325038076426371724201822924648069682511934623123553457484761477453401930176269612294413727201145734314789364408838835983486112532523562424540200684456478582366593262630434892949223342703959308836184146149447899969513638717756933976835426890470867976732399316974637413712928270020895221895416074517728496517913409531505206003022093069157675627073119920078535048044958216311259109338245212816982590292069737063892842149363232363797653322181738215670342690204883960678001830124988008463712507835689358334438217391671956465471047019106632906395917219493431493475600272560923219611388382094287415384616596114084208493910820339921575370694793450433327410193423195489504982350956388412976515740848704540470968546640757361432793311854435499027987509947018221240656366171115360647416719255726693475373007118235434026217990034696055377291549433085513302933835461190190661272420256904749549340566470094242118903909240201914422376627603262293908807064719964148634703111227856886957910435080683316464745212384467509678573458633678336989062722807056792856919053509357708789812335626609226717132948415650322435331166535172594209273496305572388566436518013817044391942478708300149845035349819923202504218029335813112415312646890549363235542969099334162865991904292317902770294502233311168006733469174014235257100274770411105182491055538719492899551519285119763226816257900206017976285544834762268821457885788339484211602657746827705084332775634478758003413190689218717546588939342615496630434705687865988600624858192111609240307392908109767597618499167554058768833211339167167657336852230824192528295609219828652945330267107344960053542589901972819344855092883589908547237822743316162164997168453763008196541452147905045132362032433376839371364734204367157336123675433497589323247638334229662393462751463778166504265878075860274747267158596378674434715301581583629986869098049367121257787796761014331220767819537940177017399850313973220107896597389932374559106664387794995288116794210852234310318304737259222406567437706808756725130739760840029119209668788984363227225504410150282046651034293005998564370712159594520812465731482311338378137268241340528484622762991914619726788073308332597747142974841633475827037400881123939908137491403769821403469319731361414940600648779596007166783327226488287964254228707620612462014276662824396421019719602210540674930421265117052783732700577878606988327556878028041085004600277556011963241912235098285358756030202863570361296987092901380302829639873412818388390637740181878412033697634322017791590288312337496820614579771103403936940752564729295228236292366300721179606441170841855354568795130292943934107765644554952647933705026534693218592938416507196102650982692192415031700525130572235759202267285491124609987982768458353588525353051270917087600715760795018487041029396444943295483126462430612193754955842292072395202111043025553920437273288470889043165637254024544981960169946869651801081666486554789593437123296380262395035724032827639599102071491930340725089848276740357607679370295806376806549981199556837135617980729166915286747028570134741898923420549318999812735781531281625402018235805765320948617501404818150512862843427978024908956581049746789774341397096399601418754827321232967581810517054253724824234176772168336522511159556915081570657353920689154928758012073801546805806763729627502956053774311366717259077241034782463637573613716688525270130952157496046792636397697245693249545444704916429725405743680605311094411157306983466722613566572181090247223787118961607929811908960210122927777548574293552665543825104667140494075037090274617138094830520795215087747814622788120108187232371577703933395081844168525530566252004078952114249283734035473310327084138046628374347631734792624373880680071021948248322567335019160582665724752139454234920188262870693842634436933941356227881543451620904862832584050899799051872074261481901710162064869217183990866760435396308267159354388754815729815019628479358042650290859788662491861382667750491588435034866747365815596372693052789901175739498637584363072751345294967624575517476878075479796622112526410693642667806683988654133564314470151452000367089555590594626494816651341013738390240681805991003480346978969713765843593333656667100970042494814108684460825857316986071612453897229862130987864382338189716236799529975655690944802895280479645569567904331930992699117721303973096394418896699235055928410724175554356343590563780918697917080992865725271655982178087867661092585749906340858696782121668394621517047216002485109237774088724660802607763689625660787555222661558606947445494327285463967131912014238093167480903936000447436571040912839329269912592310519042529938339624037868567169030878196880618165988469002929510283964932732502895798427274316246878645981638782121963403237996172004559023603935521221787224697084764573963177622211250781587289955774779576909131358385175815981096643988138514021377611729642540447166524456821895321199436152815479305832503133332066144778144315219252096544501075357142868482321936396916618835125092066424902678896859528959306461263750396911178365644097580091158383076167300256323250767415130508438748995389951317833860924844612257958746058874129147732646182544157909591484232934945924048290749901336126893499487718264016438084069242295242677830357237746682787775240772659017398526482593731763592962500506858851806847947022425628189664483259914028839459972274638235525906417713903813565891678056121728521477698820535696258799908575682187741839857491194344426268162383461592115824084414479653146454833701516723540175211997759744624428923080952549097609958597952316761953592429022247796473762071743811743793537761832593220385067076104328798704065900504691128497979516383348221821047526730762491103041704528279455557908410773751772275214775980585270369297812929860775989717487408147161033874533275873723453009810372545733874959903266318511494994374965879841463662030509377143809193045355851704361238750939997131938421541407564472656977872575206785372237529900078084295596061946294651146915252985800037369320988200530315093963315192037921127860604977126247337262991295044076336953955936636935617971592783661053390847251501882231371361681359061157996455900515565447435344667277225065005657115040298067720628082489240042513267107516018855088711933687154315763606887923090894046911702064082732812288746750541808377013387948934836253726600050478698669545631495109539717550860249347851288403856521155378441652053207940187084649621674158243616878240995736634989413561828727098112164272778017843443799037081848507093585041018651788175997644043472888048936187184327253858444663233738611933758952075421208708036296654405767074034913427373904291288077331902605284401689440453646441689053828797279425037087633656026822775763342074120308805948772158831513912045241012449167463410131250971771433266826628999858069881388938311903049538566431736184617417865280682195100480240102682498785148825827534287777903076060911652769701870046888740960460529850930710751387383473584442579331517868592558046975876808020498271447832483935157937929939633699720702353618200196989907821242816848976897216241302357214182139924228014126837677282369527229411908938087263167570816213583155650951683643374785230323617096561223077919569397114822821458832948795266416820872415971675729711470507406184951465332746892284645000590281791427343507506960868727875519626309075718888145962854969246247468900974932853942908935379301251822107355431999493578836574218106598687588856265777636196732194092029743947029194612298231905116710366047509748071217663360191226913922795487466066868273135118811017100048948592346540978110838691954348842118829644337592300979987959776985895086487426357030031915591672039661931472189791043670345518795608174204300706954525852995825110543630281895734180806727114845883379407987702757172810970566389160092020011072715176153680347212495917054492619106055396458960745600151427758896000399737326807860700300687827261475620725750329118364311619996595210893564402940679792511421218158744783318280682404000507807194406741869676365890720222249836026154554208653235064151770059035981986587362621726383997558571418101541411391912550320214639921628706436205130134514662350991421762453117900300906548402045055349392594907733267360539438765375758805500782569179633197976117938569417819128824374403539737851254822962256460642869361772578498448557875500291666519403378563337549654163376880223367531584132150272860570103636762221033856629160983160661426342930971632761568304644961165428603067079674639742535006160857916679811671449579653868880957415735841329631755497539859686017774187556493047836485258234189452773542312044599492771195214998599799617857053916725388597657855208313173778424033588734787374751511119558403293793256960702410996542484797226441861305463065806505966347234994416675097572387961944880453874394439538997565171314289844502120922650639308088059569998852134967926216512098871193882385277122735437172651114707661597719388727720178401277331633771672592735166392658058520603509754434546185837143276870289521548170864653573568042326608982446270938397369576579037960012854318405256234380705276317560080801292327212611308745456921665835912822280856174620546618313130297302347253303769568652983122581590007368458830568026384549155266490484593038634695507369817027797876146179673695031031524818038358724922108573109972612438206739038287498521321204977778192311559230797606870071704075037769696937150748817682225881206679378830886602084444177025536797870374688857134612899686641776731641596467231829124861130157127390675983668465829325847171187299065257149712269416110307575000275830558175094233247380527880067834456471918831635790204280579855989091379097023073497082515819255401934393001033170799791298345228072598634044362756477874478384828754740539387919603649652213264807023550496082586402752301972909811658454999193966312614315750915489069969806481577223600295619833925702779114120107283985295825171813340517049710685798304110600635305008282521154199325409142386208683494230002482849680248553621204557120209350021658220572291746279162986756554788068787924601056692630487546517390494485721089524536832556855219746603671533094179492186814790147307444593177033780549312800638394247452729723614924749661388323971795652981108918826380506652683753957112025427538309107369195490968841945684474192480706151152916318371900195676141009268112403183741925539247447830695568976556131031972106527643906763014199425998127821174544013082244785791175134894504113944734658599329223675220394316148898029030841839417216520484317820992066598934901039353923047842927231104811522124494132063054887699114742294736158718375709452936022774698636765714689915793212142233461935320454141345045808500240984697803503974344649785654010649622260647385033394950410482807019231188064859604178588202018568473983717237987349367334153454711797143615727123624180984723848533999572738916533038919249768485983513112685047368754002586267616922428470041657861575592550588466000064962036420446095856900879499650050199995842881240204219132067961036427135982117651843198514633275823275476499672538573386099999857631389612546501828210859603450062709657360458073394303161217777129085961883623005373983438508268235269455761218480820245278874239551570502477089961432982660103754498781656983966296209487512172534281361532478773242390766146817964496224686918600303854391148534533748734880698454966404414686634247889287198495212534612416395389764872758918107230690993193010464183403007397565404234181988841365512992020006847993040597281919404703864353389726152949242518226731220611206671687593153404327013117019284512773073385966045780961901713543690043247497535066537964501211989068738956619101903479956245019710548313411406177241129471554740584133116864107014445129761957190710103721506649289242167320810709694074769259362234082765372585181147921320188503909772594429332819585153227327697889998921629150018794879864615712010557312831906731606135352893703160551431641814569122539637559831242080543052458520423812740097242753758867960929880770440527094811224487450292601039684585617147690807273504353776329266540691313112003405181737322164301728525958958658098629854978645130158675049333062207064355936821181875458067264283526305152064218303091388570130503699866673676594908725545998266090574567731102056990402649887670892874007445553209353510198692830593542407380813316052070966894889014081416123828503522995906189209545924632189834602068914424339238566226283435706897052415268475333977499198691000297993700136963375209971573248809887734845653077073014593110062287446318754533239335551348466481086502810311719495437013475302054244960079293351402407832225130414351673160540161886833196374156606927211156038070037849754599908785601649536887579894166746242464278521028593471980888249062899624496117557114985527524983181101435499926345282604336246327633678193206135029530774192945515877023923185751672271151575014003696960940071534250453010739775892228574443368522565379930505066501859306239060629277505194682288840931416631310889863567463121804930830759204395483760968242709432135482248688441368459895635929153751976509844349808393910593515428795168509102038200988328086904654387074487713494714097441645295678563194803564197519341693877618943893420446930522367587996214309301856576844323881063713222563396836922628952314488464249506015981591632951890610766185617108939538700547273160459770251397431591382564600521991657725040649549087842479626621481351080515861352784305357190276378538623934125737598256053734853026378877038947737872187067017128729624159562782994271950817176214375875202890142738630891750051240149835982101579152600766039826437077901245253788087012529095488381245230252013681276328225245068416077690650441743714211467100996072197295246802989975773068305670745075046068682598906286037806999264585523917612732732012122339909284095364006720056363227838639837953409504455181846717349810673310237577127562783256534299064405264177661914702057970268051560675205342042983335325209442636566584848734898165277681185674284974233862942125825465610117391756696751204372225524533952076045046387751500350112952909922779191392576388131584678751614276905626472985484526960344448718507427278002301883195006026560437727353381933947342005032851451930786447302246734301461741256266849131414811372568837447661090707886723120927132415756948340555060018875793143752167009540023542534640071311694582575467069520779596700799805929680787844161498667871117321260989765881245740884636699783664263300274931906200350477168406181595770280576882685912394098553655641810812006711204762847442100115310380250094987400414272968611578770876014192744203876582241992485599006442864647560496045556672537306374207783227560675579927287450062509244231659304573665306009807395585680013471500666718081687850232216301807523038405364338220843841257960228079676106085272584020200665778176222996121104589030119132747320375036658939868942726410986001167474819374397009423728370346359135809972357592565608137716909207567343002103526684915335016115595288399482342310734773414453383257005621572648420413324848274292178286317242127936207755601649338815408773617220013376477327651458807921844567098925525989406116990621910456672970736086792867674899960644459370805274117246898982981217865570113492211941249708079871365838140914685697356069817913768117383625127978296749845227772539168392030589082853732960307177809435983040533108950965291018089766079264347237010635322375261940638237078935712711655809085030263259179600527229876454763613015915787318916773235334474782012378038599543864236302043208749065996687384855336897230133453474434369543715824771186170289741188803774057739831444614071585050125060743410399644667087820733914119684377690560844526355644583782702423722305924721476402260016869538435930993003567417743368746280256504533290834272253938970603824790583693022010242532915820230059376300156987899151609728519746569305541297139114756609083300790246850749759036749385169129478718243780193929669640009002320580736192420333764697946335670180792918431332340338254779216024442241643339072580432769980924679245589309684338601692681260180114311033201132889935859329736632195280872829541196052432462763297190837420698831787907874968056847773970417698515276458452427289260430070940163170159802320516444322254582299983369952334690774194699791818192034726481751356206514251183428848633250403115287472570144059210073046962225631159181834811229447073352302533801405895498354814413901328308036391233114297165243213539167160196539396350290571336847033334442550578228152530458399014424645391289241169450574037265325664200410813106516909257629035933484933760988250982337338019800704076327787720184466982075192779833272092227652357894700838702239775537338612204358995058144499447410822698329536094387357820148704940463895380839942162740821670496307757030114231132416364821284970132816543646115109220649585510381532147143821763820419078774310400582998363098764010307535138652801831991124289122535858032533844971741325480574049026569008128698822852454109235010440187810234219420938030338177698265731957759951653555401796793129071812378576419394005737954551448170308228826766098848421382648900389251607756628150739084111575192187610618428131314466052588239730024430262901340887397461576437244403443342131014104889214590856752848083035616015707624629809674059929018886723026634954880073593806533730464265384507628193010653910595049562260716790658863430545738755825472600117311297235379901925001007248265062790490111067674117544824975830253078354834232072688307554131889237859252133907458604461618297592709423477188662273156015041342672665656663663109830352711722993454922117996538121319570433692034746542647732740311831350488338623666022224188557075385932423837730167672071873763732006379013855202309134069375696426040423555834697995392929271454629792027414626552078512465404940751714153101558352869807194306414873901522868791506606562523814173108728818548123005287410030373663482106202645796151911739763195354300176513044181030068600996292440511813521469923510293247585374373109947717471190979990797082638039155902866073707418054527023997064905310086639170041985568164607540789885868961234319149683003777285759177116731088815960565458971817198269843894032889190794749610407085324427148993205396560132059320797823941746268381954858698908798381004420009513667618243513093197418692895598442571924889450442206072935431984639376474020125614503060894862478359717568314186176927013204437063385569825197848188787492898030214256945334055128698890453419837172820156380936175886102867098239340771820866981753050891500320901900607733498555639659334011111693715979385041129248328277127305267826187042457705945174177225919550654648579918220167158476719439869323434327570520699901925383340709840962661385874798096978300149682412107079440235352281400210960687751752459338504107118630820210149946116657214776264480608759828226369046892979405314931432151498305022598903754800534783588340442560441075982219663157684160396628461881401764204329921928511534876110909411988753571906955919049112028063976489337105996198359097187057819927753198713500760099444742515783063725890713550763863258399746062005541326325075421331140411539176467629858389236412086623930353692263091454815468216237980423866699891968699324921200318404783283033619454118639849460564504967230898219549687714323429802847757052244495931784844163932814352674006596085412924708913852992934352483005420763744916465514686906512481360515489809103318388785323867875349103080195497560624781305932438156465779620397944686663483005182588169422222139711525846264718785679688486291228989956403738840635818241606415692261854191644711861040703073788051266141820907449691327526366267211119865454136284423648650948855478089642059699378413707218023084963997419170415063940018879693419467274881857306557428421642021382834464127693737751190242185509866740657678782677065441587553021051383084732685884721851604109438329837010945916069309008546646239682761957069052824873049999859931948292090961887207988013405387689929505326839580037484245628399657494566276924690256451246295501714140725417713162377235455797089125081612248773872788287757847995722996586539879637567695731717575468141601635888493689425481681043392783856747625225357006876867710130724236765635563819815031625166556754928897076951804668592248098876256358405512834833203689290647987485741154528876669046150346143355974166704166308267662810496234743081488332010465949034279260954815820272363835287032938158466922492923627738566262791125265627874593476026390614122418772152031438697425169073511814674353369602066641845464054162260498181308460155518706535301600611461428299823752694454007387730378307841609207492047819959750865103874855785125263057171612212704523535610359822669999453475110610945686820342909290459292303129782722938141922046627856538480247428119741562710272372831780302432556249503471147773361174355297876691987804647260389761721947317151348780689682880504541598296355501171249747815513023197090729433600596609323758513826265371201877390663839072595340174829497046333984072519345628342578602712322596317288929858171594061488497413408334837784705039464501081628903285058867809732098744626057881592366470083501450843433692706268140655805595243953881312853014341741425290606682837616601208530427162186908931158740839960343990395917704883421929781376471277280532035698533336802589158994915132024432047051927473142411836449778770848861457648328225178261364712555370276548910674375043778060189319510695222473441009601090466058660817876934001788923221916877238157642897897505709519989181956240663876133643478076009769478300794258544348141548482369520146343023670436098829519037384978888787568424554316941279610912424683670766323609731180080589647802225722370668349830710175903640306253887931907330924279498812621723883630311257849894297918365876885633381104255676803456267811510962898666559718577893986495959856617534702874866268642448083686921245571227552819485920800872715400582368105198287522653648544517053165085942385398601003717813734539931074859906697344048736921401655616492138703466174576964983565544004093683064799461736515608503224954396775963832560083399597496414107295870036470655422431971769176375343126084889827413929576871004461364684426397744070083194594296077081358953399280373065256802563015210096655022851433776473633684049740704083893332410375374387222051306339021321593549856578353092813229824195043219843088013737716496131618496235902600932400254497255118074447938222634905658566797893604537430937279610338206384240034889570741090403508355972779479105310420686490497706700848433603910013905621016922323155260057981088139871613675374560573072169729640505387619868959454495877910578678536777041829129388662876056083360162720292241608288891593604500069152053544334359399793428315756612355282950264564294954261170093654719724715605589471542769330766099394510300235120245111058273171427562518728118775698064641431064744414132683942050520749703339379777426335624121532164726063046321914464129967492560258397688390606674260539537414846111950273810698418562045375782050542984510483702548996688278273646281109705913253424182674781261290355127925372949922080880318075212909513246091930172940534602867743180268078695592158525393837706002604459419498887986011259426680902274513619674467449920270048245990458121000154091749313583565749234739025018710786112180298475986070220343887568364422463892100602331257327007899852512174629088319834517898341610451114047740634495350274165725482901284851919087711921130122444177609292958563561596894115000066302653316762291441492690735270748965855777862705327987806714675106308010842481226334113183285221856742906896897431544234581930475564517296555190244839064916666283859586901278125330593313950885489157904623124500326598045712274814045792444013639176090282345449730266806647317453783438849512364561717808340471543575559534529254173712003598645216350305837961956439459856221672747719566095546874324130378973166525806378952750734078679490635359526484585080904219955009228411952309715629423132995594036413461617363692719619584729073914319302924160027467122766838521286257260300045088261382156863754246748045224278883877536394967403737214294321389044805717667588162340017437467509081314362847049803091530782570648481102042291931934611515236090188837235822993738321977540991166858937237090058340518060062570604524346390479976978045453210048428569895937236062579087189983775808830954195656340195996645239484196841691874810106674915728871709554973779808959040879231817041970998876181395447457677819861088161445542760120467261761785415606219332619954403834203393143029563392668512829263636771205170721513719264140415133246929952082746738348269978745053224454540192637457135487542960103162470984229813028561543389192953596348317002464607751369900899612854862168190918827764834023020121484122353371567910294898054909427879003738019228370491236213928728002868770653679690538687466315585335286900810643733669470033098587933005934333573730202448970655903837438768736486543831168024614073005998789753980193962866019383758587191675697927651298411917986242778943561194752191324395423682563190097120192983597897427487697919903813140097414005199851875586010601559238041373479792744793246642059083137298091592471398340105825136022446298850758078596363410846306978000380110823689719472514497666203995808235183897186639969681226025741591802281819310762731085251601440617692087587890876530244539861688215493896957143630694823620261796943311200230464989255393291455801717948862016185134570326021872514809255597997121964187699410307632752255085743124958226462622310544540069246755889867993834471855237887921196356034208618874852383822593434800716716663924473488457590700783599575002996769929894837041254149972307532573917696499026463001803780370189539381170712580520265153633465828497284437597517767031481254492297035907137485927838754302878305267046144527750527586064430359379971332808799395499277777698845403590008786432292237988879070559683292017475206365762852791974420840372431819085438026377457744581477829683871749232304664591991942374472960702027722394930647808501779762936507707408810317030663351146709802748788159515761983245646683362142521563933575087710255052730379366795991972792908380531195099541034809949668703201305489075561047627208931982215347048962962622800313937591604423994211352794295503843928333588337974397915853068922027588434302778487209876565499513760113756819034928880176530465143958754955553250163740290001150280265161067556602292838395338464205412761526597146646804917393453624009266861776822625950996271073022514974528076886271685708659309428681364523499887601619977234471892750100066263477194451093636647180770721745611579356431255181828800132181311758349720480373017554627659005394150001015339608640707457496349126717259815473465767519731169264078956586620137180787046845111226718603371688539310472617731401331932910136971996252077707990165141485964911743888606282433241696407140631525141312569489952518155901117514779021997091608328759209761761542617977289325046036304842960148859704221718123068803514132858944734680918198933236140771231752707737656749206980869999203464256666016745392787562535045028938258555606849684308531503269748318870206887633186005723521048584905628136597040029118206525274128580951123608870654106216915259200135702670987000256742809713248990484528570313977529846572337192586266706644849052673433846589398687826005021399045251663547329497525612477213099362196925306809269227898428116554418579527810570381975230261054396192080178979195059739908430592863029104438943729109029196004392090915585270846529111319499157636924611483084672453362114443832695221699341310038878521241921427080641259714151047735676838422676043582129487589120302831759375578530526118611266884214737666388319041140128049687114323315825803286301324125030972230416144433044263343231333727727696075774765357470470563759417152377345009418192025548496367456991937540453750459591875104965068097243104432443737774659825254714099801372082498439687393062904722122812204833168131104795050250664626860916222791227055597398557437481868810392075914999621419086407811340022840519484998093589260123812885631818575987867718396189225758634816104568991515769184309720809210438467512620969307435455305001470408900049685745840270666142374056991920571322380535058549465655356581978306801045999072894561210469291889330399358955673769886955869919820014547357826804450009425739098399812333163286884807243755802419191359792338964186680648814430096281480344945697000347505333304220660521508656860045136924063101945474878226868953230946208394857192544599242440836462654118090826470695427264478318963167961414465236732035880418572185777059135318305997255242788672495557487292400472246504208417384951490601272584177434127597114457930604472113406814066336865488714573985440948682140727877594127512849435825596799633319896997515937545638964487738960892977672229213812026925257237844255788100916578444869211421401945753841419204234818330024431196285091771345905918888103859177096237696905322994419479840461500388032053922204787001169012606918285986504976602147094746824284983215870605137323689287848330504214189400579513238566488092284954097808498608192780305724798246641368215324141570105766833944638628619976737880127700539321775024446969625440855681314600996619259877899032410445798458349007829494592099680906063319478766191032898302278475435935836997219874625866990965638658126396284263044213910433404656649751898829040669186378693301193115443122582734795886979827546606437938982219359510839288395592652256954829301913685283685928005029637318210410548667937783289529408296956483901683084403377119193019947785797096527046271282788749581358977319313784134762318517662850829850576642017611658070004776247911777650557649516803268202749883030629370857747011038287377729789426985236315302544499737024292233634828392529899696314397695848981043320834565762702763337327013318256341356774662695344891494862749793824948694975488462692268735030709381225567651365379336976219668301183679545383141919368491760219961169501709956354556670431071957582107500426857461255720282299924843856426108531141597754669267318317038898555415932816294955761878322081377742627982860708730769173695857618262555437166283181142112279124581970376489726126047664866214709662828114578623419865959219386620205452634390487825901580646894395406041819545471754415732571241871092259957220994062837175692529532465042294020848851354221424345521440397135799481505006662368587874308124636958341039537127086112198540571164080343214312542243995481492778910307900289475322865852044889592409306027685285524195921271106533516079429056587660709995786025415080455793648551916834256520220666723728060853439449814380385656156251416417913919506670356900959858051142967398571551796114563466162504706155353513204579097156292750593804099636863102880170095625228897856032325292530157362698618628304551384932678997807127690044374066395046428005274342585602861278088157272627457043359719948821688496755380862657978055418862936418737710391181239775051630102185372636292681193302064449937278119591223324348561057355957263718744064241970410074626176965087223202440403507127148498426137223605880984441717815995434748739172689860405977594724939200645519877883363543802132450501645184912304467718596888240342477348202600475584537667739576990559430799678502014534158054127706004002042688953313647118568915751208980298356054751982993047612355532036595470842746145708480070400154709474219468520966957249977464290898163018836211195041164630098707638459143417004190733433251136061557903396474138425709168697692134020081733523896624697418862495965438379719870865210459242975329092914744467165584735402501198117892600528808057293870431141426555295091029438596954696084499005108187799976038240130132074189203228057480302674957721512286602042127649107844549658336202960546733500219244169190023562412105278248641203952054929634996421067320860888192500151950778576527359027100183123045315028419312436490834790765290899981314096347046556316532070542466863998279650950614171081353798079027480953132432651746842478897139944756823721198569578233002379808007617888261690862446442203474270326885325016702705415759465425269167788434356237425941911930038838737259741555023668858504304255619638664829994203071696762664281906350791695619405204529400166017010729420810877190372501908706600223900493167978890923123840095827639958728960717936109946688516066226014155483102145176405794435597856117436658186502310892345913071377284964357577160659297028101765209414784412764862674715654113276423169474045181625804847725787045614236952260685535152391842723186812389850550016358490541911697587480271503944754665559341003415198998716848598115498447076031611982242756053550040588146890188492138807571802399729532651237983871415706085620916704725023149038505539125690449562847686285654109871985274404043434482283577570698917691861082230582022936022325857656750051378397722390013844568871255414881869825658303513494118681626084691629929900772648655600756342095410340138381191092645545247219917041678471607090843349361198192111604939107587140067309294566916876412365111742514571385585404422622593466052069110304825404493314265053794680473380819839783963789071296607196920183950741872051385881482247985512383650615592929627486914934113732170070720032715229444442956448170246109690378997775502128547860265735212229354321311281137131403759256690815024699146728221194853981773580927160020682255103035818623506704295246888703036616787195696843454840163734155011715160509299281846706343747937027380083681214838703036776801578227209065341794469778200011086128260060005827470053692100757013957007269201737863658554528121598879647330813437270476726380692891363667404983012308890320028388835937517210107973625772514747367094764664327702154543867447202144417820295155925719824346545763609059543482672538749246596407347649093137680693689754503072109524406203338107683091625607167466292260947179946588301542356215091505949350341082244790974096356494765640640073401839849192325387915586626291068944095523736234735676141357612316702419609471720266931150933318447404281660328678582626906748435207762035223490782758154366382065712387417120769719497617167158045125310684925050782054619756923093361667247821876046227013630665148311840349399429352256431496482921388121556017848540963080981782428013037562695791719614726141524602000641851651430192845486926950107342833004640783368540953507657145742606869512179314956074945963317502051290154396284901116011341702011597379994134118735541276692344205219260953793492871643864504295401081870502999454024481933071335383822000184441937540509475839645484290904515497654161231665185731706188808649492726990230878564987966213013868194405953152141697343083015705522199960555443384746514196671143588715039770678993628410495021928873881489063509386032416882405374436923097463666052656377007987522176430995787760057773062166082481762267336282900496158608113836690696748494249847285848694589886243565316998424722870054848225596873820898249178879535808550694927911581624975796131458214208916435920289028586655365584239074801170901465029031933352335536239282126518366364732172552926128179116821943974302455722538350124149746362265862240774184519163588906930613075636976012309393021995344426692209541451078406154786457547121222011732710676846712275592860341629906771399473392881782753323060113663234053206071930095888393251949947582534213701326680330933305874597908573219615283011482562432082858804380311200771831785633356236536647769034438575911648465755502298329934636586755177779886935244166339345106396452968330605767866233977779771420647682242878142513556310116489131875716509695356424691478331147548901499034125023147028325524170585983557850117261774206251672230867809626017683847594285853287596654884928723285926811511209369385086496529607423478799406770586531262989495718259322484310918190023300126249383593629283846346727225218084472131910555335784339216039736395216180727566832931208674010510184486185623592023359021673475628329156311558497739877050427794541261563467219185703016147281912535951772660645059482948630713459468245860343227250329552767224939857035400500483713049270437940089619232578807614790888070673413805876156713910353352739623209729386994731068109557635131384557408111289194817290725750033203849869993521572128162766684442674634633214533518998121973874613817443293592407519800413148875782907153420254905131579439955142352691889636285725060175963872704394838624692295298376860202139683863943830256706125079158573610173341011201277876672921954268636564994225505028519359216894790952599574869407114559654979138239974219821825082667239000456970582584850984470013369731404150760726051949361005658908525190151309306195778137240652109346725795930371707398379053878092292010760379009708982996820860465484935674562127034614985886638561787914404458817509588196012003133340334733886285052686831778132705406899587026499745090044984997179543917173432085219073575266023338619450100241177199842807688600474052144095839845256959056307255619662691053672361817583111674961778446620628789433750069751396113842763197702650505341900826995055730927342161330986205897529461129953585935714743298888458605015711927625781560223246459097119415423056493919082023697004819745149702655456707660741035827957092698023218253352998586383505669929088610805016150704597805562403371998215926788947276824795867878055819034646906214972030142296710469966055723356706075105445219732481344285361480185003839058195314025543849142312206622777773012749028184151733161753273159659620087504779721168427831275600825114386724942133802865568444816520286235961231000160840658043215763792741465841534672233138681552517159176604598795450467549844740235797990678103946331452538998508499999011722677233441606579861684686920948410940549742182207075412821671712094228794045911370915586098967170784453588442812135808995650111575049001694177664500484813814481180038526716499245568731776770887695425355154548924234709773385552138809375249294253976322875279153428738290004318195492294909245516378624228079139687614326201382200287379175619210101530199819568622254395515653621184072020941920047320560001148333700308322140707091460733003274997806138682784714494422680707304576069222975417556474387149117412003039080212868440015199387262850885821144563995806760705966487558242271820710774019010015382688953345502392642165262856813551557055231814160150033951202221861556670596903098829621926339872674309350986076981469376677292405434284475209866950486819304897788851361343408664372022800213863519791791117866519662559999138551904596759427746184901027139048175125838045176676113276498070919071236550475997634807034979080506622319789824349680073773841758751363639767055661970361104906455810867022060015789040436495165023654742080102919361807830080740864300204993166508851064802505536882968227387405332251727132082791076369016396354477302026892913579550029274647381105908295806896584838098145958202746417295018617881017368859584882303129828393222367965588539210034844699312879320002228819669454633031064292445291199657669183686149627241136860051622485250018701864421910789008170028037585894470944618077602081551930592151353474280352377852831905394816730708982983127487208281620411022748658912982175140113922428904369523983080973112467972112694238941490340053661194280890118647306187229674908305805859797070593107109302615784057640603451408952684505349206470677537858579459443802789872993793201416883046696609450535403833821615371598763663105644224798127294249393407676871225639672106487920952912126488874218723795625029204777609807789019761038781743307798146831369357256369582097347913537173401580835055658849089502456469700811135883546706840838054454889681722929598131753972028841588658896921229278139123023406310542540287770998883078550420941201595107198662804783017548938366808920798100729232525889247235965598521521424795869873394071491449630577181779280761344656216826763009936795065206866073061603009604825497437861884184165817295746378458378849097396676848865547693418840288556505034337822295845082416161478548784654052198561747163394548598954054678178375496796701627490557327683203194230493861206058262045261741352269056445983329197328235347875024713142192899437512959193868644144359459533954588608343063205185434230441773761294249755690669846790536134991481168847899855032728531702890609574119587546510920285191005414803622394287411229988935782037557118964699457287751865938620845616060227410811814876383103045533942439170122265759276140303691563400312773257491553562868530225545161613073264951551774172658636148639424617127579431312684252717903556141493171465592637412011779918244318719790982723327055712923709270841881657302610065677671613356746868201352274668043088689227210942850844631563000690363109574089116515807087010483998493119861824491136445305012280562978423480527349753647231089705524228392072795825736766702080949173467176850585143960602492416798930762906334562110242449674027071792508470529230796123950452560776493592962806705644508524983325997153090959872057427250032763225075915470348104409778552140900673453958739553122976754644846438207150814688030643696641808849135649474379737323431600820646452847731259657892285038852107754688942264006558601362409115110251792937012980948976852000010796426154443682282408642316062233661439758694137511064100042877823696513592177703040421519689521595598243102049156691769838682213795559500406508755808226638184783217805188086690901392153405086868488609759221868029650853783294957521589425025052628962021696012242748512251839965257007617312973688346816395096304476324398896862367871872940449682319608381863600107578736109910146350640283061521802548727910838589246517032609395429811097517518197358606588706820945843187505034300642961579239774274507203118758614997082869627695459526212329167178365289104866087547786548217219316643915910665089690233224050623347803820854184023088832561351648715942995296276610016954352200551501559162795561646860497440285003797175056900958924254301478719706391664039799829723447277714777521514773153193206440718358076327767027464634132706706458322883013007290760777013036959270490348426015576721933949280620437878955286785194175610859262199466780201856274536247660674709936990117987836489655855657605637349511735619726573480606945240047641421519296137863240194196664978799748453689165402549448571780716890880944996434455600220591574578330993380147800465303240952568153425702132102090762007389326326633898113372412120871705568487487299698781396588234983858433097231147860981891130603178725662962182086036490118391188372071188936429756579529805355329853407451192061076829097889862727431618554831058404550329971955388576843262739061503347906206680656944203021153125810473103409681695309356066477403406232551828646841069288946221581813195469871714320853038649494893877224746126892693329380972276628860750029783316306316342112672903989876381162816363810517195402063500874917120569921771151812387769719042159400540380748161506965445450336639966902837255711006006773678711777457945732251523883571888971594316060261953220602873525166374371312226376951437234119245383961395082232089498714314442736913911612346236164909521590821941210785304721242269258186890080518317838122987255068766815775137930425713122995619134394592875020862657545274611927667272354131917509584460700131898509682972517530269356582597070440926670863583477729020224827189206671036110441011529233390055389125716033760084181497041179081254269782011896220761457071485000020990108154363217016125946095910359808590167696788511038685315199456222349346172693270009878488726424487858213529664077484944815252470287911940363887717597330293583106384612475560269981526529732965979107609539964522370332702086326825016891415355438612261062008878781384674897776595722434220991319208606036087019237255237285443903555073458734129532036983730356940737294777357031167311089369462332762028689603283005724581544123940910830291689060170695210757418643080782099993139755058358834027641701974757248602075665685388953251622851308465270993660377503787061408717543341912926996421155747838619200095505146865233821750359071425712715080071847054956587944101385344451569482603268653814174661178189334019445183734828847591079824838714099369855545579749722774577590344811047437855817828269037299324976837882538312224234904132753498206619130991157976619739371809007556453536064361967460562831863355332217788402711989011433174733147946610051050107350948790960552008392827962346722452515054673110482318693771916488641429735752707638021056741263726155632720765876078934089992500768906983162300391384685484988717187087119689999553524560413880740107810772974019754631673678754041562725448769887110682781543871721845113498062660060178977445693197323571491019764897871893367469347866661477037262779988688303140760679213109523342433473897210821536264487024307881658676565580230585499534082138281663964817092087209421545791529944473895384918442838984194657854496352479896473802777297756117896779321263615226977530713362392611989231838083642027720004935359182874019543786855723083935549320211773824099708972818340004159270871996071954664167414071071722482415949365169435517961167647003929317086594691546062759107066324307679591722561542049797244102766180584768561786803805686285061665627902403182749065929724438643308624625585306531976770544357799832494763818204356411161712509600169427252724871391837700629650354608976945897767976228145112370013654987010281302157888279917570420531366864489372869492731658470815688325214805891069302062035862856199885400229117389814150949586684215637080053695700456456481816620560310549434658179946376527646825254559776818224595124735935746009157433865831263523288112758064848456914775293441026305697191538861472745673443388532481155330843095986028773628895446265131734355189650324935610846953344620079762944967851079455034587503371265388865731286833428553584410132693421319413400691109652372952713184112308960210147177587560757772969101215552035785496729728599324762340603405532095535630271231225910189708765262780703624585482362267428075225084264226222331828959156500848842106819279575779601348621717885735602007758780963709597049679831168905906493825572467229943002402750318771058048961703323070262455287877780595647486553754115864697999698935391780158332549116251510463900575009334934978337227749028898587553369030099308172943154555014217525216069306514246640454913880472443483088263886311783454132372986695725346059505339414887111644301664849902184285225555530504667532728720937230947092760319175404266570343814234650311285253394829451407776325529919918343981570602340201848855928617192431956823591103526911392822766327024093707292628932457218889909773541081007385979334885851723642437475609279180015179811648068272864083697096906155495041345642164963915995226286099074881802950857650476434920196127229636148850458987680373219482832251504353161917712118347773848966138386293672589643431238618101844392369695952469766654906065696599888793812276137800963657369314062610739697539426190968903642995254412271103639289358068142063348157538790867288805711118390325820191893560912254341544853952273585940382384599182169022565329343346939931071036891707141940255348634001295785565283878630638962780768641423345679261784313646081757065339655547658223834150857547143318979898517398338084629472740319935859605649381346490007642567154928524773801549894029384250391932087537989032191673982692984002855030346081424015321515134091925310312218717581558580489723985472284040972944189541462307836830472828477721479126434658418248464578217410400329300083840744237822490016755743861957461747591276933265485483086078312879276545490608401826350402469579776231258452857401740356862046132291487291749572640647106202729203600527364526657271559094851604641816001127400994708884944859896437832137096517847275078769140314364235922652054496760279701442976365944824550283359212103367520501828023583096025927361562326515350582014659184383441615374537658831592944096125073050629248096479797619947135132538397796067403113830972083259381476376695230245821331208485704415810022439032330897410929290506619125122144480828760547710923219977020932136655233090803291875802114032992023063486740090578178215435909760394307812996346391300095366258831486730833534530960874285205482810716811398651599949133391411079466499658645344795579198913260407854326027184371206265357116608688458873811179365460874401887677492208045725588322732542764985259925684748796090423362984293337105380358320414742772429547363195080485448358197307223540032072089382366676050876056751658783261790752110746529407291749379435612457706643168461079696664351570632321035867718249897464968236164962608420221175461642320352339948245345130574459630551986227351000214320057556705743661426510710933340485767810639033561481273154328283896883876967065767383840917787053781697569811055441462978445897358460997171689683266636392184192087233832699072450717712725628294386031381147183332931782762486563516224608895139160579791461126219226592052528296377974421474781852081574087881053190287539445088985929630697629684299380900640325808461198249338432537174693502626527234111939576105619680795513853520612332444819789913838313601995041041861046308729947617965530020172826670197824276307252535652699676938919915835724388012464263566158812368047517963940187892682834744790928997520993915757326687271745223971403266971182132224794260556559093271576723758094160225096254872412398568557748885070872676715253728544515489805470116294217318912554870691564834523259241451804368738264886777274229424761718408368545648480842300039601305409111489673325757708005996028065212960905444963782770100871953199046320972944566099975630879068636560082439078015859350159923145437270656640475692596648898838469552774000721005171167201237953335420784291832111493072485406230861808631102393312099804708026186923816484638702207425997272281613492807859085612220035427872425965831316373974816442022107085359255471951922932378377988870431455858761091915121683844386783850243184276358559786024243939475632756385815721915850515428442513082480971461266164822085342681079241803254522118209713743895009959854478552290436758349027500872760482674977226626478347347786501370103370628235065603812079746393193143805054569121703483586516028197104962934729567346996858987023207768733104183784769892805478836353268480455043888247483608721697063443439088179647076561245997198644177858932610424091182214396341145256619823724427265044799312894158266405717626230827153992741326995078886608833661037337837748046830030425547124013322759828823718522931589226909201522836219475792951442916111522713384298802262300785137832196651788437263832753957393803616022524844383349283143189663992632718983864010275907254932988376199607419714567341122516287268792561893423530094694002155383912673986940020588946120808483155089694790598347168708611884949737490421822084650129349932596856600754169982569838180591368836495355164789866867027527149650699948356850199103322270287922072231634606864234959498182656390741825222868522296274147694952774477786460546000966855556932914122889273397364616448576078300643570439097485556820735866517799121888041678068600753949611179446679641298009665160235645671871041729167613450126596153129368282704190415012862582047538386285996233817099490619299294472935715713691554469658590265543852999114043205399656388762179290729223449861193377132481893352877499482723901164469698651723781753988949210359844578430423275531343732717834040063392306612916027452448669941899936903374105940512510594984133600339156460603712615324103949765760192471044708184876576336400579169501588128421551462072449463234555925246713104424743238706386926635476144600770282094030344924008492341539597185067463749613360459908844644803822346438384504623168365072360259027917023568019105090731379154171251193528613530869568308523043236511491841769902545339552048774785105347111395318996175934999895779577216036380756388788495921288684003347540478537255166867505730187246144970558687879823746284189699736369577337286032386347610329720925470001337441025807845099782219781861663570814004691145504916884037190519356697751488949704887524489186448939848020509017838797242428005914895406932253786523051021892637488266107522616561008643796640612023042604364629300586658645272769263735975695663528185230584422434515397393502226631173507505123934194026675197569434571672145514917097040862573525144632017354240044921764044827251484881790055777311426514288154972848149658753727296400613720774384544038103109721730484875266014843287782470671942015805215574740623403585222617834345607063664528623951308357737188628287950037761920511870923586758106175316312485799637046870767223580051383245568930993526221787311427794828519944925048777441402185007884335180774480362339748426946579654941797649254998184257167970748801636271009729661840323844980834550667694968324154558019528021433286377472013533510284172139386819807365785165952026799763180677996556333990850715756099599385232457308698843199993122590916252409063997747006530002913580370923819928722048542249119322801322827936837655501560107634129557418007264343809783776711794817519548317364990145525848411154524346825626692990352686062949012279486689571489065545346423899973701996358645424956857431034645990021677207546740022452268909219713063882528327303355838887262964124753872461007230700877799771921816014609843075248111685196500548404713376117706692019180272028517725630694918519084896354826005455648877222474325628980249127891183750176721743003282798313725566696417071156677117439830648609515282148379316595886176150150876305620457955853109433415799519792009969656578738364358230006943867856592924792838471011482011186506873214781743493980236406008996813851410171969600037537302311753039967787575233559718783157748408349333150952182483610399701682436161507183115455437736804242735363096934216771093293235870204281431406842422235073090737822304739816053471887258727886667424859358581467551430154062863776820574203391970693047357401883705080622067489782858199848911729157280315799502777012162751810990379043661572306589152002623355794649965497904984295763745971247938806406293395391189346579706942140855593008353693717869998842335938954268901078561222415805109316893914599481597155098221006991451898310840160543859582600565881520506453254305493304039747208663411117951124269381849376639888309331021754110857871412089580318566264157994452360342605823465126044841555774222659171918367115639992583399949660842895598621350324669952537574582378149737062850042760798056758577190949966406798226721595783167981333602505097627055589180483728671657663761807412169773517392715310322585649423865674987031250347900312317978212540669386678835073080132617293025344798221079376401009923533887201307937189076473271319040586586149865176380566540811145993795570503535089135042219976259204299392835092607583168607493558208718894265696758892410498157636440816419934070696402253243863486677325673371962065407463100004888423372557622170900558848991080789684595038406423979169912315193387069593715359617226189646200751564375961380250609204751033724470031529738876915039172057660357571371303230705995959835820930998592641850787892977622101002325425465042962475136668975993708523962794174225443285856987023553643823762391379222572358063723603526213274493513177067426397128284793791922743957972681520102862617557426368259193045824950088426941134264180807701978305719224244726857260463372832680760119088186802414317895149433049847030541915279062399758248878848749189953608463963888758011320698890210705393793891851370363990603798376132994374736243384097140956526439536640653542479632122739792376416512999629089378500139794688277134083728449578912125970097166831623109631092386510705693842557504559102671145552972839901956030477482173784318717968541577158199443378705784857175180347421119547099291807243523649224298394951922024826135471296377938002006696215969797780216004581308477560431187693782845673594983893122102060767715023347262124317190568518547940588011837115297162931436644920659537602019456938158055296197217530741526368010212240040309334162551617643506346150105015517675505072632394356453782052543743863404411893795397975717382780930592967535821417510350652289312166006038993786269353566648885844400716544692380693913502767235275222743120311686584910742751562949263567815269765514814744370138260561317846579650371248797738224510160471275814375752107980006145696736962875261236187021275468820746335356719207869633492551419315216558002024955742187182283836004418076437403552085058446980148095685267495745369914849883402289438989075627977229956052516318531198139400924137908681489182007978804932521899823453498074952656497597871907787967984405767977054073814720587793963042534754395291599453867370799608875110011203935405960282436220564186540409409144036988163410469692576628144866089170528975903801712683452171993300390775724611627533134018869779717384369994232832494784427144154746850964751421517075498907410035806905666642334802071878615338825085375016203366954184061174031920453585373810199264112961988358203298166286238158514275913213292685450320041911971744679902044519780157402932940622696551617843139795678681438494718729718614497306335907713424024090928072210283803186504113244508222938192188933603400371681340614792403778994253372474781539991431336003973696489265790012064095905426320263828733865409810066470198164561199587404225634068665163808171000589265719982958467458630783952939179170055488537123741593663589835812931363169321254647996750005421134882636347887845414089341364773010706679635240667178407080780439203385260960361729571037662902183901039525108449276175070369622849842741371643979111017931966751747546160567099730997285378018122714028735431766091802741456168047525312813985309554226154259406744509447012744158913086144372715514523503304072013955366199428424493380739257979687040011144802638440477771049325565750326870287256590527352094625599571022696179262812084996276610320397074145204746767835434705710422241263971403287397128577638284252158701970616126876663426030010931882373788117936024041767987835399810648769532896062871062619311174276852929054048458197753950613828182849980804054727354846629192518929104584266974255952976364821040583264939649878190565422659213670659594261166465055721503685061762654717458342247612913712887898252411375985038251604682740920604640165956071466684560792639355681923352262136760502690988757104411818276884578393394623268663962575055206706166988226104875871534863353462260833494816780994172698119812880211012631557514080478582896519697758640758013625816625588434287947231855189189245531406138143984785619327583945885888113681254927512116833328572986950778745163122067477453984265915229568651116531425684921314998613037511722281381302663009323568858821930677911202684854415190895597488941817453058412596390597738570423385625237144821618105480487897365044021803834317496790607602937385533033837850858066038757763475317146012760154472580252267312909312594915409544138088353166216637398600024258167838947871492849815215555820407761479069696489180743075321912013429874181213861658028233331220201859127639596592011233319539161798651265625528915096629582960712700130620881496791697049676505521089410268679797714696314436832603448343793618165663314890887211371058094508389505165455450305398507887898380733674329511795325826397036899867816300059789675496665638539589442290883653879059859696478439274225160092633649508592006653035139927948684682929994544604386485059192541162599234932914050330609308715402232777133034724797256533894646519144495866347441491644134047046196989114599615945503510169935072285683288300700049405939950954472630961459558959937062305207364261828324651233412193447946858985790612576697057523701227500329917596901419447615224109141489772537122927363784603331698554481943670255177922697296997783556042729803779258296393338592135387306900888000239396492416687056393360310002093057286970704893672977245596368652400789318756520679024347335726018875773149150818406829690444441908269007851461715766241466884928687539971518271267057083675047651754118623932077774503004968896270413886622702160775764663655717743255250006572076406377308620668011137319517314633182769763880233941123773030392549385112854658105599375926841457486414994356485451512863430521976375472832907806384830975031612952004995479512969130950140719818365828667621033082581341234274615453233691874660294954030741032125978356840667843466269572154859490445022385474668493667635909294787456841103917441878079209912461469727209955680375856096919034415670856326266189845300651549930388171235013037547170887036635340033998443599140403355631141990270547610487269537956221076578067201429037826818882640482010774380360139532967845269216228933692711672936100450319582353958062570376604955484234174225512306188030409455347074558978225944496389094885127271964979166486237771475051165783479188478920647333923627907756637690963975717744496827628371795573642969308260667981894353115686939707996744812135125744747287339175222707088966874863929394172144780897472556270220831556718988080484716946328211707672846169926245920944612599742069625756821407927937722833308627713524848971966837573778572125208479850800736418823593864740490843103943725731523939944437730912133716698261588577799755547544511932909308403032459931655432112817266107821412952596628426217247444296406766999966430511473970527019080144333800460677203324172075077033193098925067977570501271182049793716649156974173082945929965539058222678658200694769818790677042533252837290335829731425565714043722567321215672819527118575805366011936424879651940308860158065184929964110489021329348487703470403102017288072630850331614151345450920286308875379679184057610844199787131415545447520450321629005466210718800862381083294760196237268218151684971296660093556271073264913385700087944624862151706536101643219354347534959491819193017924552661018367355298407395386806439650068218077440667064933085086312176359309779764041335772817304432734101158349305790607397703622404726762678069695971428642713451539414643337792246682271072168450143712560278415209766119051386916058994487281683233429649536276349558873251084363505970771930888490046402464125111308628331832746657955511242333680598999761982259453418408095766172254970543954442132717488466750068291640572364098423452762702380920911279252431298559044545874112915600404969577732838339535471414680444488304955352053239582309896953459642737217020338082905065977105408189551333504450874156431831927695057148872276740672970518633015081601060181480131886074204081911957566514247243137423272952394939851370258763648397434335784247095220572645652841391030112084746458643342072273313555812067681058025214044447002171911362945457538557937730435262096795716570892491520517852540911037176203809533187508768876406192960228088711220100576036198554280441135422450579508473539517953616051820593864756797096840935985323797106392795146125080742936382156438752409238258835413929538997061559930951197993509632031551076325193966634429376264333055099281697439377659125928884280225168913433761028917153952733749499924403256688041392290820355512105789796451334245666161116320239956494218425044077567814876990950359487946587123117398814386411121716336336805326052964845193221778788146048861110047911665140267219699855793862492129536166138888865388351671440535287531410309411716453161117701248109412466372047653818178420694282205537382730071960573295266366293124309396023842960473703827896759866251721471802452494915701152502453666851107902895147057218164347203458566146230157720556408943528430573330122297742447241108616853653903279753421960301006428384025832309649211460384162452481784994612114265158586335015328061619742787740519894201895803188312842111107795720004529850520705082519382966958330520637142240792669286892764976229519336675214583114342321841762971666279707612905051306474528075823006635302846597053275920719279938984811271881070631477565706422687062274755570910520633676126120727357664460988964170682603072257556183667059440866968972990863054520743445640998429925435682795764739942227535637471326094046554660250820885730005762239258652663972562828025447758392590002263999322439363376883835133251256240668386546613424767085394335548854461025516474941600353465104750849014322707472091284266944740722021562175621579296624083824248391459181587898003064763462321435868681993964278347541303640812464302069751435614255450482496805753056745618103192098836705973769661588153518051206097053030855561907089926169380497796750270224990800756173883140589375418173931755499311239016152318983722121972137634697338453137311519443436716905808622502545331322582647420234744558347991626451879552425906693616208454578896260785564628578840087331451358283946951859315981093372976471907741165705800077394994585773494153080887515519083556815388946194106732299414202094362049459186870972297031575574318993632567003407777924889137898118050942305026512516428083521920157876209449464007413719605355809316248147574724834178943526975793159118787990606658269097367141968242134160658529830676689756946530047503363477371782627528814961960965251242148078419589710383187548113319031096770780111364073881544952764354954286450819610013878724514575066791357295665809142217980037659494708637448780523771188624014310068305506795825861620056130787206048631681337824136617241347098134445961080194197120034634800771025119488749138564641769866959239803622758845204489649329640475549992382923299510812394873730740978587706216623506135060462913894433440343524888994266370470762033527087327742679268110067441097741437123217570037505577646028037420136586856371951703549982240101658422693452479757868360176804386138172574647607046833785959075696473058385532403967135026965665362533801944980990476700540689543749094189473621102744997151884606097962224007969236164956693262475110290493184855581601502858762697415676431373972064476303388668761019601335369378814064500431877093247520435325886642671141519909942440402561284670986337414113619831378267190193652745270334715693916793180665491362949197986528586121526464140364218988221402143540249021657901674137416389287143352669871471132001367431020288943937622279028017620980652108072579660326500150752510492755621412053431242092595542477822652037739947247342282885427686128955288849053947448683339742562674753306762277422300678628035498268495062304580729674098894107242742883819662022299603891594481875744957530216604976924590662728568432788542494010983836170905566956050979044647910936945875752238520497572264610851062738470850129727769511544625312254863516452011714497486644845846699201280472675270341311196038816006302433487946322094917522866995939786791156964002099429280663688683901092414976870513179001701911298562136731757304445103983944448106418034134983626108663708635560408795220597679991907601982327124172615706111706434929591382690180056337739917075447279708217517496316216702631952785465700622744054678991531351135605715932478149302300302084896411931131899744090672504460380809875580841303601845891350469898558119257461775734342412130085525275986246782743882423466563929107856915258614863656620239387201127346036004706792735088810270374345821602274707764690458379372354604366958853202520019298752034938107960300262484200122367738895216103906040062983537982928993553593465430045018209876863211969193909815860107489174187414966854197181919050613157047646482668048798668245479614729929417068299178105155857292922088931866189721786865938110541220839702989530470521374423950799689925482696186692680794370810528260413472660499076790305042553694549239284008227317842506969978080331628586280388008804622487024349059370402698411268770798100349993772624946656750325859697932706789326402009586923663960453380136249079186523758400524116490859662577475107053977618470089007825805882566289643367507080888749190453900684776925006892116150409155190728993479361811471523756398681242443846304151013632437457619444190473995401774103497157150869365025804078973101389497898941715377493522718264046492162896985413094161540271569393843730249878061258526466147033280747033603428194843058993884095359085173614799095652076090024551502905859852598442675238364625237298741072550330314425649848452875783478927356223806218591950187054976340963036414522577615881770863871707972155039766401000696469751348605136834523455978952402174026078124932438024622270013074469287951953284875372217707692571706840905807955895386262497087877564452840826964051970734956784056050485495658416068508045286477991368023359330353295369501229055451531329663772660574817425694772967500716147315922887009219985261298906952118082803888161923634406815155319619587584348108121310952903863202224504864186975248930114270042697264464892069761130671246325390074742441352872930241756559703885646358726674329001916796051653757084310842826587564936629894729559055512259641830261039383230658875165156683883714893655092397822338003117792614205244733252366646104790279685096991815575105130303632188025651160036850332460228433484847125818569258299807023025124223563609649252453498923615839691066980211954769685589626982235559572303544340962092580941216602782526524432304727832188545282456271753224322306727191727590015772788159328280291761315949755792056571852071587323566243408337277676099666261481484363987682938486933681322331268487656055503500297552771782309034630961371722065411042920560092947174100856832854225295271619148023722421017724802967450115691643460452142014442902498324345404373610601216528972255619667276492118026737234213843560841425172448008697930459331223116824987983530341082834584018650621698482975420415339362064874676304921339696255051690908375494692201538326094221537641782097380350890360769766396281952788023093372449462649249036124265176697295267934059144940952637113198962412463243183633304627352009413707016421700856999490444173184509750792538374730532588862623926399662036935145107858796394462999956290912436514486155628037082721932027641261566037478638951095450139010158430580048253927193933942059879757655572475660910387027881508556568954580827753001323124962558716275950438580880776712601545810972359658065127676609559884305237679990123243734197213591874624771349569321356427127012571567432856439221063301984909550320179396865654691490146405096062450522331982174675086477856940764667938034344164717653333260104333682740016781376336160581112880455299541541453841602540515418156325752500033849467854833112830774599326566789445359079509329162673130499175408099808854437218348387463859764971723460835160804920281320925864673475711611326833050426718445890242718489177998262892160097252377447851772566438116030978936849189590197284248220741240364013898398697979566648365359640419471404604841895458881156161614763809932945707011603910706405723366351316968860282339319016958361757872123899248815712321337352997436878269084133549145563906361276932934589621566280731282634897758533348023800156635219155603774330499824274951138669215084229159603189134154061042162907179064802918986564882250395965912806595646311914903567817309594249174487256884827678515348907355782612215489180220509368464866439897886147824952609441727113115363417488584320881319295561853507960676774521502129830140367449739234257307702621201039743195839772153201666073296988335831615580692074152987016413946708199069837958019229054096953271746884232562772194719130059837353804443364251667384322076384711653847214827729953513847456379797486459608265403358035184358900053750642188746518274260470335291105946005118479144055928827421347999457449738986612617590795382510277932806491921429397011497115326149499571141309940793069609551359470523534533978455491596232082862564807606732676822872041122914047533569402093564067303806756815713313215146974264386255683690432880021937395547953816053776659601643068861170112581989063130063189273813477390123087917790955091822256855419255320266721611625472039796738304553406027513190437348532429839984435903024960215876903042868276445369575961512962193231041186213827278462278532962753451696119481138670036856999846046149504900202241620740517497152986789357814657374109889623039448781308736821158068754271739935121381535153415029963487438647707268151937159624387446978347415955786528094718204923371813417597535010580440184168721540002536871011683206973191763997864160542544300848392359490265512077881732987713743660689028707255931761125440818951067841743222954225025786309611582893144650143359572490630847698028046451007229128765887929369472745959735349243487071753546176165114735314814142222160899710728961334386888226061357372770245133633498021542420432798175706188888394104020480495752436259701400240701858112782036755531496056685679948455232360105798419607175980415830791881977168673065901025134266220798997440089339552010407238554416109750634613919852114025879299288920174448996707942521591976699173518347908806436723059746900414811480386298270739241614134086527048245453788873618783843935176344461012119315240631124639149471457096509902240434988443671770111269489468404199084029178028232301159698838724924860450162547752364712349514534187128976288445203239667854008006334053486875369698247834226867581059788552878951198911209504392447965740217276938123570425713110175257990439786510097170414610330482729916894203891886566986656847000708205195868362630877371249916553261107101055413757660912750768842393889492984561698106373325347656957354515563258942509785335391807836942549043534562408908291752194343928741985002786369628067740414497827070086506537305627777761295647207430000398356889234577649725627461185363765836760427214981266449437959483646998816305048549346324172357649636820566884699456881744616887019563264419699628464115625624679105394011751656844218291842100113948030189675240900406270374015121239332261608939996939599473358662874546623385246519348471440775726125829610469237312247363979256326463283901990733925890707982056586731286767835345480364160930699394084092733178082950309966169314264604943356579634997887881422864264725794129933076535376221068376602300984767944036119898101753062505815054370520440601280649228797239479434249910112143525796517204788746980838161475423193490211264552705738564661361660320186017401669125547202750134182424018069914591856704142869821560747529535877129890809603065448283182295995236344478916848405751840542647490147870076469060398986916296501926161309135059134689468742688038115371980349432890028650776843746322055532878294814926696650139054186056247504107496685865354537556774201212641844788139461656331772812540134294951715822142432159752207282789018540640816890869468239900760190287914063440925988183324548058630068111539156442871988952618081640986451837958992974229093473779913526122928587783680780139980720305697603430655240265253485223688370219721437658826289286522025903996197018406783054037068150272691113111915684240008886985298616411250960317114123956276108963047260397115944622355964111928291436123063911006793379406121025189467696126035958310150581269804117289461026644546512812300384750381163622441954884113416631179769562771184497951421094612863666037651276169084570254964487762968209113818830963732367408040899318183937922933258572549251288849468737756922766771341200755873955604838682903737139815363946355433953149460558732193821196233049365763185607767355178159940834912635378492791326544388310199817301833868322310198898581259342174582437754668526374895609204182382518578243469756437636446319149745583709596796737262540323469669077469606491407014994004729101853745956608540763620800227299134590961102568890254438659860256481018173296027868982770334432929434494944097704164745715918762162946392517371086239794226526948493321272686687648745028707472060334905199844211806505999687535985091283191190336636331417484519283365396266852239390751117174058913833212926088178058760017888957277677257446277148226585880293497300112832441180356487380899901623833672193523233326986351395703197746600975912655238001669489829813958506777766683197703112455036701818274414723212587381703955253216316373855173242994759993290047230237332167307780444501563786386323790947621837913459167729820878396571338254239298858849539083349352664922574933607922945305505414968055917552389177364527098483840778979142112191482512894800433042774274359833804877871363816379028267536028855315126426279991746596522054356865419584710473644467952045048165155047903126051614497926272445873341789732465152639717252290552681401371963407663601584996553908373285024282408324369299394883954520157976575040251257578304355420533377509399961359551506136841793496091267092354149024871832178947016309558318701986884758727843998832632123387637809331662704506266933893919301750339243765291511764850024374167009246743201727606712807495797052231330568673029567771857431669697751929782022949694322738127003919966252138080145688854146764073852559345873752501739678837776722391239972595532558289806093199541571526176466437051698061198138138754496683467552074033475231298562461809239503788421069170708359881281415864652756899223785892594633100790965814087733948059179178258060402874167364257002009112554366705256943452225029822715918829790811339479947366079214251538139524559998274271639960038036065437571099391863064603062036563229811003311616962838435054498025144161720627769234305728021044199153262267008247060776596056693021720172688696403937322029506187481966046632265278442729938449944998206034805642710654637823822146122205761645284984960801087623160569204213820972440935292204368139070057862674816673443173139704330404302988821047494116170677334699009892549225182617533396113986018530695621076051017943426006403477229918727979737493227297763617373466259207198588913288834186498873683102400417641428166555981464743899643188966668078688527622901797531411601135459584317281222238251406633653003255964950767164256702687113048975770946857904104227741661651433729361463398972732131929400546085145969377013263680133986312307127846965194713506336115818945219461674303941703880223553775254500882693723888358461683786582002619625864677605114358702417426688831387008986472623621902408465113936738392128927658005003023234786694994790385801989403455919277087086482470577542835805351602346430664300978337194867125300801334005354160663383361293647858705831749730430762871936958784360726431952602431811671856100255566459676095003929505758512963185309773561101104998322867843303843491218667875901485288103066121790445401253779448469599715993865293974374275503270479079824054891770915189420262238790782857183978214006895674827227494060310638467687860858184174245950291067228359367366235563583103366583108176983432514270596316677249663220386687089637013760540977676117073151139787419509850968442659658463530065400033555686008653731608713115075718419526382591731718363704177230744664646808419424579026440515667872762311122814157961058371497631232633421676903139824937751455841818174286436755341063005388958269267927901285613982223178335714232829448499774864047738300796207747667675190177377436181674871691163151451149733470361817516881302685372746969752897861629166640667385021019338380922987798943286832381811315854683311109235595903285989458911115084778961787692309506517708472029956974285708857868255689650724047906170580849919546496186222390203230679566602947472816084610592144710322389954895571801044728743627423135287313837045947506441184627761889260419349465078793423662483008299419418044049750436547543655014756106479839944336815218305515945549500877394049093931043442091540457818724341561737130351410001538533954375271520942198652877032379455570006596511057444176113343199619916749660615967867365269324308664593048072747310586592025924896545332913138257602381415913475831556874630090545281226753606396819395252860057065684651458926334339805040684920751272829594647737631497048075941401618744951956813574019991771857177214325680864967788524535485597069786314612876209758603728025635168612062329868619740774643638605557475207784015493479901152843048139947673570785926257731493756856950061464104072625838762845188986489226673552292444494296866316189251852879975586123115983800813078963171147922454959865165190995394736745015259192094950058599156737746135801095526805244573659728772570378924152649424006846606931992770326338313638775869213627723257491367908744663043388934024632288508870313628774134042396074490456345144377340591044388843567666870443815316973999053562569705064022253955945297140157717613294901097320354158305284834263084189593031279083961123871826520465910845092054291773947459874926250571539130050122531516143070764528191982314697570485832280546352053566538907069246795978302309489474052636092056457095525560786116244737939070429025453507843861470907562662238503782524624993520236619104713368740923993537964887359259074394052851577038373169670451840932596951281621486041641975325261422038736389908423137661919895127959180275759975041140394574136465648680912725239228583247022849475263605310943194078935350015926945082414696370456845723790932402272746161463108379309762135858271079730192118823201345009981706990196309878338056452181902067585986029949189782496300304151012004770038230886717863429794589474378163821614754979639665996997063414970397726533713873119224042509857825354337314007039156417534900939094368039613203387067236355942209460254707344377656184811197561668158113494292617340868382659038080605249826920717099879095030763040453886015874544556364669670692596898417715393199700232274632832513811515799920041781008009225479907682833505134184984907989840196662236408526823260076577895070648341736418981562078891469400539581581731635592560157712842220512681498050602743927766995026738145691979233184693410238415881048626891420634383764267196040051858861989831478834455840845702664077610693548808963619565928885400153439255215668888336468892911964687882539608651809962893824454136119407375926522683358619581983871568315381818786463388092540287922102784823506899897456964096509766419096795708757694251093669947757449929624401869430862906908949163445063907090374564665659509257881414788940000514922984512633679450819562885348424794963153201290032221295101577677107761004619699996777698572915220475349472134661367336733122205502845590719905325975685643127490335704970440159916464866935293617148494256921201160438726817125202138495012525849743655764820732015277125388917620233402376511968905504327600325653099523135515571337964418848503179916824733711519544187127479614243197576917805513373087842371178140217229649154664803911371838709391615778833002772097418627005952644729094882387521695135384893985545607346440576376177605315022162534030591239221657876996942010446402273229398872946882315246025295855051211257012162795043206586364748074883889652440171216035912018628843851243852571239926864258728305327604959850947511446315915267930862132074294096133762153258347007198652788014466642271767049447010650739392324413685430076205583919719162096878790784084059242883324298783760419255294258958616588397309833285316211616482271954284932628518082768890509235364595795421400032382306125160168012758156528767510727327638760405151767171225479113742603653673152102283848886539475522649934324746598708087505579919593358782112304935469103093180853834277166024347248210267945521119437513737100662905495712871780476391034053265606554235865358301960121695059412822786490623069880073885174960432522487281457536317388267956201186205532737452293437940552732332727978574997544324732031289480976605951923551919752524285427210983819786573862252492411509260488015311106595392098340378899288526971850115404640952898119474826799889917123884684953911183377997122992072967310322549534101645847331622710767411397589027887753499254821866791474514708399445064942933784017496787061520962410947211278423155097338180412364154736941005554668815020330769270718600870667873852377231626726032134954533302892912153023575855538629386458873169547210263395990416434330681753669886798315681996273768694393924441452606422527981625536257752910721932153878611943171809642047149451920789407889083162749351516462725318896939108602247316858741220814159510950507579873802845313308298752178410343448553878651485489113576751965701378109503538801970184665007369580101210517542930968781605077075967757483616313353642769864176911034954778515060086464462356262794343049322833571987197887744477242165756535810351763925027554316702841810609442081892542317551907781302362910248950943514983500309699652542768762416986678319895046059957006302678649980609129855378203528571252083271443878398272494145846450376347115179988061213756241205682061805824475214841545982540602059789246181072378679628212652150683202975627536271476739585452373776984494163139660851685256324382772357894296480660725880632094478886614259421628314823096095902831893837675490168706325281217069386329720469567786228491653228938658252198761346065063012609455296802570773271550821446541870481755387065868370244881744988582666300746405140323399643297643309916192031483135313972331236227805214714245951730489103740290209822019538023200111782308847129058808019448307796676689709924062927294994611347022741166457073309093987496213660477709868772761131574018766540850441216498347021980850808345297086257561812380978382730132289984306356664647161192730385612109541600761922688539372268015331092286774654712571274489370581654637236942847815656124456165200869814121552218665184183741667909565525799371287324640054982077639429423446918599152710510395589565011203022471624070739602682440499595141547400368419366540485769184301420088068582360663101667499151787565095942139660867679236933230716408579759435462425024595131166402407070564513125338039244899056562741710480074803649502622513113246732064689063516266882648445577248066816015968222249839338443415349271135412833701934500901003539526376630760527751629034602704224184527625075887671785260324813041188975903927358608272942738863546271946475589870913542403590887022569628121872497881459215075957463617347855966144930148199848177147081317504521785908932537683119255561306777380019704352205165218288997430784390791015865025702176656744560105875974005200272274066118970174008474904178912806538348411945761347590511340003782004023713721073232456557694153597602237868875385464113456092702440916809782325132054355173922087771751865520266229322238515327645807349553760119629709014680591254316227955916336608861892172859300106866056502822240342256721209099485497061086206765674118773760467244415658612882968044724618106250764896780521804063909903148488011986909941766864366458110981078826764734114887177784507818761259283943506980151160627196200674292488305697849113816969371394442726137931858004933683687235006763678983971726426779017271195745675700412062068331229523439619426787037762165083004476913605725767859472734613657135431651044628455985687283845530415475447508099135867680294696843607400885547547759182908476091386826602948940510108404419617170179813599058528463842003200288561586743180803523225483923949803016725709540819737817968846463245142097738836696058528904007705766977099239941325337530207232687386898060768123597683530423064792457046120157038188519061161847516498207762668092559712651085383746666061396431026435067248327653785445884309265908793663416302010028268589894003300153510891037316478942105172037418811035148124283031140506540415233609109945537691676194760298152496456557262957564603393459615200811057321328100153175848882787443893528785298030269407580927787300378562761196428158972263475339200331321704706021724131609907297156212443469038694399078984055996279215731035461180300449767027884364450542882741946996843081133647077917022984931096496891903651102749471732088155424131075303822697104973449216530515127193621364386678835145563564166580412589280867889336227059416503213604346812757430558747694269582775965694664871590689115950053148967511555751970899337341970095847279253730964657064810623526225052274167686755570501755415417985167457017171737214332722995965096287089472624745930940152985053853334732088858644781013499058821874806914115901759349308488033355722566097311700878609461403774113706695331082429772396102899764944273546595556859411308026055660494943623386853609734623687103930034478020708610126314020175783345023752774442767731923495114184941712948415001272261492191162245993367622979388517833279869242763562869184839411720080873469754823545944874300890806857440593239775356501144705499983837435393123505192792938894945986582814809068591342928505679633159340268168557362444555793903888552893987626404278068918665445869430279544985090763070665811348317991395523830454699158543760600979713601207394698318762298916561796121015343490168033152504252141914213725119383812986463056915829404528039841082006889168557760630922065148232625920419544378881858481093197037074070455971429228810412450197694996052745217235881720612635782896575142099791823442022647944714778050601481835512699793251725234355800127978984764756895223783194827725001286437511958390857690586246781562723302369347471487904741354944136557278264958623276281871856296409740356821880183664743727920604109469260508773827524052829898034616585275944954844481449222280813846744103933861214141695779041364561983600234048127200582183998571108089268362092908565399173480825124212355318511827872122377285552861958862647292853330912241096387118389833623913026406659594840128097262493006070286102120854077463641038371783700978443796487578584489046704423846393654234086066304837685908894685625626434757394749065190733913555087123847502813024410509574558357330391669189134483827897720788479353251537242976300969032209692984634759372145376042291910205820679524221606522445212396607085344154078037228437567610186426450080434463995530258402333482669855912387479473532196054294027068082876708226319933574540852193869368285158985178007024257440567219555868648354281417537584599790655112597878551105288999293312050799693798411653795921113358481896163802351089655231191803645262109656604512678148774514744973980828602519035597351171773353645544793932993962093580116853320563414909526892502305747739575135299824980893520016611319951085780123847927226465110331923300587391485047191423767962015846532933879926377006492909388276347211764020776512398677106916320066384558783411326101466170154625851691058370542720194978967111264648040219404824598384581162979818605133308088052406541631191125389372907662100912279843775454204981055848042784954461911666509414037882270784351188828608748931208470274718852573687893627539539518336284641418541936497255146104891156429865258034066790337746917440350217201024266671392875721689305675271614465823746381273343968516785314073291803829439181019399590793228513308947839660519196537922932874874586300844048694399801577696655084628291705605171378074932179846589823829453080741164831620026940569179344519210453870046844119757312910232420086659166658614727407029974871732027271058082180933967632988990593363309546467218504476333756655433378131829009903864568015779095693168744602998132692224221154084287757684025972422151342386222427604664084341791968065052215972539315284076766529128723644422218107684925825816719713790702770172630824061487912770204075666327391077155464418166228239720946869528658531457495318637806755919039510127534395753557354199083195425910011130525541874363067748644111404560316459264968219737240765830359310665184629562676592012965113430350013225351883733380732104892050290524989427942787308288498551192483920979076423347058397627032927305077800406377388718856237584768234098469414776881847319596316960441049730942197020815137508828152045990211184955382771744360921597191468759399393080409380877546347800138664021178087853216966419255638417252576482979070548104594687078788365073871586491535816042492698887506385177900934585358936124552187655719795976042765586451581753085747779266450423012684146439510910144276641973990818633558097371196349103758384802346727113538676230641442346636225995751543845968982306616589406054254660210706811218152190281927028068868185492478953860091333462789607436151584314894224154647932433847006232662033889777183163920348409242697926802891276836812743152311089766388029163556747434251960886644783307986950133837368918393958393597328506907686712428127313655622090405747112807724162917098517700154645357052800036480363423485525669871787514791181651596443753282901912402278319202271994014192549289636296496867383166949824708417497948835381143506807811628096373853920216396696354792527027431545719707173589732708005157997391222980073500482273979843780672426724300201915480945718905064858142592644525510762937813272180734070884957082890424970430535860676734611342444649143971997084365988035680490806178887645656609102325442458574832342094992763251621404442729749009996237783406731682982206554748064226256499757275066551461974365130977812549586940842658990545459724922920890426561715689484394546426962904275605640735966271277374404821017182766029719946582443789417555998998342013765094863299592123753112652767074838486202125979284686234450727071787275724004116864651167580426621315724019334769634204923001917163268984428781758285822127022920340361130101379854333789948734937809893278148188419965494066191310675015261348196684333157538190601060345086313406125287347833175614955289952692576562701345073107223310522808027930669068046301011098621849725190577794307826114681429909871719843475475405260799031797857099707727083113392969794575261209198024095368541365927055979346288901406113454342120598195481421961021509029903248553842374314132260811862124018798848861463178319198640946782441208290678579184332446238091785862279940422429627996036751557978731366249145236190462089742848835810422534760308297020936167769830161204702537726766199135757835658644104374280066093669538927301067553052332833206857587457122630804155283622117886823809321113754828505748225541441040893018446359967943081489268013333161824282583254411848685179170863935776577090785245918482623001037585557561278767052756284977651610133861788885470937371363832800251556383108554502835661750874535864970448791191777333442077863349474365353740901718227859591575473920811639716345048271806319990253704932290737268357584062795161777506319616849593705336638020839862626342481410081646036536177595538188889004717533331311952789860534943249978091775629768018075250627670897270887152604691342282096914107732914196428656192118966409637631467307088348350611081386432523402271266807359286103274035102790582069671482586547454250807567007267554817749804061205803144820241894753874131225878936843699974290360921353137578172797455674428889294110478906486821783451811067104148094080479835225718212207028341724226279498289623924855949348496088700649631717348803371670131204355847503442260894632872875831143599631846128851956468150754484724201917184604678180051963824797966093558897269147556800404043747805987973394355236392489846602496680500183308557176419975165009669435589586117408138651750537831294888546753828342657323645191296797416305805653199865308380752952169118851073940136867610103880179085361098174495881967742744022189407280936980791930963525269012671361655966173425459691955015682791886023309964139140448149188045603444558863979958675083203000475830129054227740536899685616065037807550017570376601040317832901732188579989444296569891480684772044397084477061739449024665273986333716096254065083300518405777843945928571861284654387804212815991589466511501259452475624976348150645021806026809965749608091914082864791814131501666896582213579328894972909194965682839989560783237517780814276707870547527539691222948475795559573860991895138637194269374535055044616859775031498269181955093748870081926929865643544919591976922795159552028252860618612956343123768757835153096638076582986078460411177270301078724602466643267445550287890678912621972869572091620208771149664119703854264588568098284211528213085646581187133410871262880040409587203306608983667717433011306560187871234506741179106524568551713646429523413147195938597765827768845570916486335572844312109370445211169906701187010573340236576224804836505576029613735641862524877306166549602588525437883279153132908521199213124661150725869897199167037857965161924332566365746076269716219240811419593809067384197451647237810569229047980545493642626853041264974888040043026210080782896637702501255936457421706648543953715262774908937971817448087707012942850394320565592666579696869700383612180736403373249642915788305008733109405060370994636700552912963049641348541017122314694414833108865841919285372651114246813194448269852797411030248207510646945262742039099669342125805243990668885555513322472212298248327587190930279443146618831114084860188801711727203930896132183192616225392346944376068062711180866481859932825030755178094089650115631507589605988001415317344605439848177923220178528816507307073293351036215506013622519961132626444517992358195677967417697112537945329073486773854973023056116994336653489623780082276462314160702704449385437264345332883222562973191916883035702615933379857210721778913838275586996716188765626167756972031796470465611794689630359466320570072402382692368566944211395219293394963379124413000923935890761647197601952138530527011073961945232116749885876710878013007874994429215797080147271702497871529028218923962271169993463107458013273584018667924159185906278171958012336931274737852899949155970289841359051719318505914883041816444727449356103337905151110567768508289485867043519266433230321398459727013472461966751171330843310070175304943824445854116374851549440135861077905546494069866782950671471923403203367604612857782160894836025406986232281368634647269867436967593725330258785720962155334839162322741648833468518042108430779195419667583554863253547455559357252627557295373124854520596613504516354053533218973831196207844049909487677486998179676497335896188233085994682368862692002306860807176555458986996117116861155787088959962273701662445705147031160711779923958663457465755261213351695927641834987252341188000397894045393525509370437082758617773476393552289853657680701232801824039253558745538747943706645007834680328132454511264023445785268760301897085879300001564856003272700343548492263120802748749848031707324018906900247490968367360768243219304639012492758068085397821491522414910183295528708085110663239221161633267265041424980505315770019350633557206271984568423931132446039773625449296331331653724979314544986918432450012392368262958811769941390767045134154125108017902619078033749133521619785591993148045274809694552460212883220869748820954388241925270697583516336466882564238780808296988017278586311896373005346610556421397431326152536769859765553878909692147850744228680304882303875204689998374800310556083415347454676533919816486677692309864673515267937259981555240195995113426047523967759541093826899583377190108507435067851332665112071462254700807929469318582446668727501502912471880017433427820460901076404534806605356159877002567141500146261392076480990554227700398966820597008845544719434871830356727488010468849711094657171150775479106592348733680388360176951170927820652615094473702188001375756404617102039587281424985978950061438655651385686991799008681096353722295887517111388972903879636868132714081956121842278605102106320941231661345070346447363922405392465355846282580170843085396441801121389615487748078003928606513940768292560253221767593987968973824991163084679690712710325818804571500589195501727589529767043108031325991017169961451656424147485896900865128022106371469051966785153970730879190615603535009639018445519508224102520744591830023383932581940872306411036308031039260663649895525555536247011635707352140216521922670533497413343132732121823309454137000150379601495981715579501217064643721261579896552715099639736370212113573859613277281532670148690148598654030275707942988264446335803749677543060260740938194548319921701754610151417959284177502654513937812041865996843108474774094540681978855991393061837016006203730278189549849363458095382734124161480029780829336876492853201401709731773943650355963324788603247344104356688368705965366347479559572792661171922802382374579504808520311853124885348867065717365368164198718682287921082284637403592203931574880296904827975555629084702518840495546995286772534531418173975978241601043247773628463688180687137673923295793274577191574348413418595493389401047755724643973035009335141163145894676843851067220900813640654220118880922052813214866245610141224243931226037867411392388563962246148930167982658306135947545360723733626113921008824308067494971117292034128888004480804041818251190974740549014162055130416695461442878825692850915805693795460662334672636118669336522829974251444692213217446055844406201690414991580767428059030183779428415154030053650508564482400070800538642897170279956501305961827539906629741370181035328842637150982081344250639241931839290853221671402289660636941370969610484983479817405050614524384194489269911522495310442846373420345256711017085453956039749661976930910888050083516581001866694066427611339759691129104483962870996802525293748983374393182451857122748468427491581617870764090610776638657809777531902121089653244433334854834466772475436003542631886607759868108050308413757745359369903627382135637710515605487378230140777198439484130237437117442272162642310761679954082024843691885932441654793508313426713181494598240711065825017840536207535214288845273466066173104814800968447565567519198520341465725124866628679266241781970772830941510694379399554154622813160209584534452416525063339957756568793068611576472595696936308747270554960648957723805174893928179608372192556222697267958126812007653620801437958862396926290521630343583561813156466786955733578348456798467373358179817669776879333818363327708314334350857706771410356594345329870177253885300761588043123875752551931698870120487184047175584614345642272118427260830612455559333023471388894418442786846160875612267184453853117012734195885728703032670275688104728485573762664780228931291426635901327071999908229341120167179542769182605273027298641063525173429300955276210685278873065763106527705141984696983680571085785669465650372121578490434205882780360519849269086322681124664854250177621519818605807536695505944785800081750150629625455647638569401832129203231932371404338047683542866735144977878046250900308285818379569806522678745635313654676557559281929444752015575759083036613236830865813889581346093690642717166044398144383623822508346796411182934624372962157797256236788236898416637570715853289083617948977774192892731099443308710958800452329812542935882236026871994968386578892910903328912116633117569787977944062147158044251934515305029201528303939549714334322286135557907944383787781619834047167398902410232754150893050639477231946523581971764119116995545704637578939254718785166543054328634407093393284140474623689586923027900489166541905964703606889891766347621018082539012543918721212814921598722935637661677817027141283590940508878320905792526420164425144062446822784848217069314712839895168920132864877386922886909315065829093080497395351441180652827102229524775756673773568082710244242262015393723456407215836715124449481851514153231661390530424630551132478408399508898252974337950491703372184666203457989929312238242734577293147588820676836678517237041705051991353168338698578480385354204609047623592955925943672340647851998810122937909405754157804577349680689321072349508613422906669856208409581083951329875654730349556847406152787174367936078632374833564659024957932446238547137439205957317542268635844845033606485107219846366543387988862201451432348012017371128400644835628094390231134384529565381136235057158031392218379025667268562133060847336069240999325438258617678131488806456904460600516704982656454145912828006781968746214335202639660845435391449464720160832793214971450826394949531115510955881603707605400401616794720448966252933236783841254223892225335207000166413984777982576795254161919448684829917869629077705167608658883956359321029023450630810627915880310019121197195677351270651249711052193359782123079687455692789953621752638785761812330029600925998855227985137647423964564655511450801394893982498442439241948369668863997723398628490024244869242188183243314773082389734644992847075428954352495099614084360465097923562212197763365476248129393735146354317820827824334151584328913812952936371265736231530318959087377680504234265709824867576779918673319108570419356529004743499700128985243493289848779197151117342636306909605559081050550091406828122072745405993078987015532185812322229314061671923509997701245799297084450195472650072630397248350963848660220328286209044115145462200560120453057664195105785462987900157454434463977974815816641665177088445671096880613226755214995940091182807128006716909988662225106378580504567986101665816494272716224769094183267123260851249690502379718777964401269819930926081945156862504517202841515112873979280175056146076773690774396552754478161878515161767796625011655968254303242982937696707104624979076050914784313514749742574441030830828275187571511810312923943687692058459585241774042736498299970913443572891048568600449420187452049780095447134737787132561204261900689089468104323769426442539371420816741502177398046558620675103426375323894485637871610798501203786595491061336078154622003223311640429812230046241897502094298779879605740658546942336748080289021249606661366816560278426931319215084560265335292102990834940129980060158890332993746615128763265584993211029347357104679997655733486479010582742416548035370148965901409821579153084179299376420865766730733783101180837337325218311105593476849847485942712302140448081328594958238636167034378689231344610813882976576069032846663590826269195243978625735863535551964540307994883773960080394007936919103099405977576151750143091072414516212308530478393972221554344367735326000721939301556874077047944098901936454231861645913294730438063735814476326523547672851987444263213583698210811063278525196284616880569552853998576610417106913152164195621625847788295397029737359416323892188286020563513217177436909516572427136042397023035821420577644445555466464011429267766370011585765694766944125977868584295911590104331368214811316451514068288914904711020404338280712167213231360082348908169129756839556894658662625814276595701179830240074722555046327450770158231051690380162828104193543760499825519744897273765476694667736335590395998552897032211683057488428246527906163319723420034310942511833214550604486537045537544290084338364734928094749769743545248216330737632018800823427003521120830202164785141103636957327759378498065423632777895233164497869934048374009245025985736668062622256358213359322601523551100457638756879732057175842205429667782190269925146965013520315092298310596969806009827783405929062556885499025918474359182682544779696577605240963449776944121808842503837155417914553375510831384892357280818605316359262249856032413733333985126468526386388959952961465243104446550234028763822209604631128359174938126305633679998164848589733148582631292154422938790552712047039723323523878835629173810424617367337604380222325497294784542937169812849964342252601768520342148209754558149715166556678884918509670813037695122152372611661419312062510657069673961201108917167159921635403068065422720895152952865692542730011882277438856731650894425642002768419926159889231330303844723640999939071370048534996132874359459952969284724901724413291288200454921124125877858551131595139175815215576027002239517858952585304100582158053192499107241572663735730499417840893530549735788109167533832612225059516355640571739866121278166004294180854360807989312370211275651327769103744497549530751706056766795946182764266297237363670766970362906900072769289981252015634442699920603105255771660674749054777771126934290168990178912680214790257263547892157822047964384072708688645090174349338687817481682374254463100624904215269855525397912549227990053828992851679376526152046910551161558212912745110487403801344435075861631165745984674896266999505542604036569768139484053397349060444336608881663008265951404177555940487014969823454906912405147506660779055720429918492968123806216483711953618898088195095441225563251637017232476094416527470484520703046207799604843307588385118918035770411387652258602636949021101679759779022705026335959318355621377559208568826595400267358450308277612991469671902579341309074228715317331016970466506516406424096010831854556723426158501047997024108498681316948216731303411841501700061633613988424844906440414560467037309352495314552647958386156808094528165307021296417794835484452195223007589341103939123916868703756095909225819433550232356363944323063835264355563670571561394961880773193818284089209938398968865124833903009372232015533078049690905156266219945086800136672330298160509339004256199969500429774759394171703615231165271039569759584665606176307701508611658489071819163350177754018734249149408660377376615297122139892309258408437172300944959089258443400768661647279682923356347368461807114769158301012378404029837915602033066170712732950145215445877881566798905486094332658019368392809952235857042078294928773958534612527503269351509505059529045991352560008761089920741752682194798721269475845963375018995168003834830159535662153550177511771969495402778548414296718527198644216390575758833201230620565134447997427268662848476988492686955814317110302494050454493131098118330206552118520843380798950064913371095697174052263870905247494060111269412674373771263397585895175611643898771890228757910567533828598495407956332584478466641303639550767356897500432458980306532507437211284704735708420433887035558096419509086263785626346628029877775471609550475697061536626902325800531663683448830292573325074439177465718397502624265041537827798577023685998348629562473593326993976388677110960952113850725539061472774585435389083465950280341557912679457465001397356226903868998486588693063687947955843309740173614072654371788422568278452879457490153335339896387715686904397678385047571452796731926901377502162351538781990604213808092344853933133841714834209650514082694353567443559376217211660467387817197018991646122117486091108348278062453943899857166165226731068645023805657492858958020830289304833109888164929412750451877677478079968880228127864830165098151749426550698049979612834003581794509183520905708594775248653379441903635604048813101195163814129637842304758983063421156618141775163882607309478051865538227349607623910693873689053354870493908262644572869803470466414578787723353290438950117173923488786572106375154314467628269407348931945419532587718079679912788041595447191083331725274694329862867087244682760216202185418179989415518549860696280394868539089349205345802529680290506154603663026091553586333496762206341075446332741874613899563626156980824611481415415450158396394215264053982108927739414174530884072551684311040849741721592165448285036853155724971097922787844591971699006273622323547201938522914183646624703237153964685623455210668155547489663929155233677800579664305033431656737429107068319156142511884183348320956583628639144316270216791195242152528677648982395907919316400162931006927821978710782736730176723482480974601831310530706023640490276995822654967478669883235816551128091847513905553176412261848622090180799497417098912353281088013630061079443833924005731330135240225498128494412546446945122907807430755283703841297009680935961903105064368867227037740876525402982358436480621062655230193460804684652900349264893987662243829142427676707368747974571573155621660415744866593622359825918238784779861070819267147649299520110083539402503259274510174828941975540148219685826271415646579764167000989918609086368363238726744254870770361140991426469323740424612263269371220900524328251848075334069001962063973642789479141901021451800416003792897281371876596481918840753339896492297642351630130118013683330256609117553762676796142588080520563271347922547963322795824537455491957435512702912137382463946282519293102824768650757132472622870043910253635386642897918660990177508254637139820618718874362473321031932217101803695145278902986495369657376513838133968025925149502571431259375405471311488823450881733093247270406294244821568987780883450358444171612923562102546395710664454861438149242735441043729364170996794094181332429141442676095487385590345875636267515548387253007121264303551530077223163524526371215479218486363910054844095098185560858434213330525485615909023145810017559397670263043208481632161631608741932784028361311097689646838406752479453185461707062676669874028662357665246739068809619807918717940107172721439388069494580909605507597634011390758062900258161213149732284666593702751838005436838966211591144142483618543470501246748567184552804037772968784287574226051511125204020534019131117794250440051096947073320495809112581221299594913665342291258878108957472510459025246398085511581169970549437249186832248458710379984394909495980163514854113608740743770580087468335361281038789460258384989867979050693350329425563607766023073420613519465186777676811422454279008052203229835186331790731614393226888752765425415642791628544747950451340021829105942725433164539663017801979256368502571612770742536775216072414460879684111107831794970654783351941173465868607334058147383610435524113203434693555078196608950130792819030696668361943307543874101621796922369277471819383448117840456572189073104475780454867689490165973150527402797379353987425504587984507188819937260234667564991369362150208467202106753157674991468216896694053211142556039642890241708743323942668013737970343569416535773235765803205756274122908281521199473125514078458157577161625095877817226606686606183794424452777188745157388517397263994724374236717633405440723812506696571840380941271691639965282568693859759799749827577536463426253868656055587256194067138873001775070416085924442337373092243000628896594608369015384307129892930891796727452526898320951367417367273297673618762631602169860538127292396172188893243793062762469710163084539005372112338999333111801629499386740747756467952460390663143081852070204348910443452803578846094799029275259272327026239313985887433534081127056226885543483047428631648606641027630854651211554247890740778317453793362630970969454063795169916934924653841853313570021761519037307581581072738390914522168396257264324032589705135737019838124651071274167236099743968853106849314148401679204161612631503178258056936157626593580206589503026618026391372764107777567347494069105070551174926167013787169345318640600465699010117533256289960524744270165716288932524455641928541614836940530028054266837042693987968837086504029949681753684029711709202014421627214088971136525563945990099457230734468809757112513590522296046448159531163985408281201367775463617736814063582459336631520462723911049301385040584618873373910306399928802550219593853108615593529281231602460403715040060243420376883961938031607728266395444044477894710335102054781648811406107521702106950932471161456669212935119391362821220855601025930799706547058587963096286858576162677518698829133854674559691644357643199063877082263465943614258674475016571753168785420295931000316358154574364013824181455903440075338373679147403914052647649579300626118389682201115117950849761809062830461656341360939284923480127050115396907015764432383634631004680815177862101509937189855293872327798515661297299563696453695598105653408365327178889270009855922611673091409175968365098603999311794511782892469357664043504473138466658454786353128149468056750065967137439067497588083722261802091098373090375298084721098261283818438150523996366386066377209095910027385179998518451954649650472874450257357183137919857069746383473218279388680016182238973937197735863836709560910065345881654276253050519204280693448803019141478525841539602608056196554829299871300085554098091377290366282746089371305217794881620369180628612638119452320010666576483212141189971838550603951057165990760986640908305588818293183058378403300949461165418581921180072395232363990851024383706497087865949063177639709918209285005062526483091992712138652209535657141729706252333381282169540303289001742281822748884846869399740420025811642176319223767731834528580734192580019708019937468946988894929853783853364921143901284154174639514006160081462431573700114738933929600062798575241058983265721196413657117968877487532178301896029077542879515717091648262372993246228957859999947634578897897358052593764352586332080607529255830979303456396141726774285554672419880291130995757806558796094410781020450798977669109856345926855346807105222083381819368049749331062699809114239225605446210729764119716133382545620156963538242397124800725082523902836132134253569464766930133428227257120684285684669450617635241250763617112705283812215611296518801818847522307713875017179783324954458624672419298407165837351969529868478695354318724787756293709164087525553088616996551008314277643046763948899820867673654271962633905483909774168932053603136168394908768377503188413985107878933870002747458118606958446314114476495639734667569847845125498851202483319411100928689578883147560901705526308592184818764834713257503720124313696727444734054582179053879660603338519287068098464407802746700054064020646331788284646520607988428940457497886352784296701557107588879212571801935438469751916674289303895837284781999140102353040071968189844963635718304382418511730640862859835674473880172039593586081547618463393733259944134848211302007981823951515868848808781752235984781262575792067290804353248827082594698828932790547660964566873164673996157415369946308303143865693195685659469155198660669932957930159573379788037502812956952896465559626512114349961471306810231411774748989172717979062411891304854655409693355316311973282158628711405311875240011443718136277703844615899509634115788567274992939352056455265763402593700620933718291827548566325883635632909726864247594842122897631066492015936770062417935285909587605212573819670783559005410435825784696553906280218250442899036021068843749285575288300522265171092059992704928330839828042659515904012846910708909302746579791756420839078626065943504645796453810025842822403696196974938389622162466477681350725920149471855321503010733792125890735214492589660877728724705884983911150793175531330239275182575472622616896705147946233994669634362919166838013286778568161878897085354171500065971328439782853514193767679173861982357277761790425824282335016900895420851404545532406225653036869392290902989192756187245550808317159044535804898260677082060118387715990288495655976815789304236908424897391888258982475741200487777258827400043610640636956733074841195462654161140444895900404649419361786332169793757936281833947413520968979193723933783192327984581835207669597485230659286045957161977393034020179304155707002645987126773804360332580585323434482183907396930439112147650714358117174788440235078284253483006202648692672801197505322756081365965490063632714017368240243321854587798813964250223341705393921999706202305817007069992725500226110778271251176823981517763484625795537502834075981418753385403806948392108090747947122986811216510851785506663037998115867643276276861752478476637527448329650701696794838414289426849220929615845510881673823659257668402126796518076702045850659121936071985895097807308055354503358803937351611088174840507843881103239403931342733689936624937220216209560491015548438872231526322692763877762615831017980454236276111141617179438188141623940491065648930143665173838603929311911855664176647120275095769317670737589183794644462203964695448195165797946259764793730660118156898541980547227666008748042083944495611398384268773186289236797513114393032956607019632941992344864859524204328676422383933261419524656793066572322497750361973116054298518088883280887426508188522117448601426848550700645641920666189723253818825815437536392010215629705594756035970780354569563348384020484397548811894696496204097225327071370591022513984216761545989115622943374163277782284276353760940505664796212670925549443930774759050096400230743808129042999542662849262354016431730991679714467891609579450524336885346429131127170585386599886002496532284287091940306355052096647379587496825383331864655163793641789927947882525873273332205723462026268940245275376234968341050410232329179192968346796853234360360458517898315270536850690087482143075820046520599039332229240911028114311736317190375758114941897800079489120997012300434106533850793229768623753293432924754486710346069109793225408933960208665023183118760989936337948114788189736709545527819951395361272043365966970382280774817750061426393980633942949580812353982600814580512786722629495279545653877386173259347459514041965148877579887045446866450871590077345419403305899474646112277252691105420122350575391895278716105038704204924394570655667985233083139473102147604820869175673243800357216979445855628893058953420401140770345559544101384779431272058838847789743037589274440258872351043139657165749938122336784798841582035304174153131856070630665769141556235206139278063668922450969728883873665253566770871720171775790573688465292422990921715573541001982182814563817542864721839552065942459427703049201536887601859623346151497565707697375856378495388172674647846078744089871473066633131651761057264093642665589607174160571552779040532568388241452746217371267935517848766307641002778233864991894351399203210800022755309163138350118960361959706512030675314355690729907358376573012117534898830801010712877896630971132367516794819318213685052417791024337422728217056199079454583865895105043784381911207681799681765351090147279702288080843982048690848993392303992854480095982870057119144400920764582317482282370374840301004142646431176832044726053808723960723407156370793093217375671631256734795342492802027427315792453627190024000413484277509691196915915473709621432802138894497536234101051782967546866841677325082557339322154024786884618178458168106952731403228914204054829122771943099844388334304950230264615960988109157648968565507785530204357528053609861234687236998377908584755391447393818287760403282189032728101621650292988186845223250136208505791086297052626045543674963476984409255835785841191912838920494979874906316486725375614212880619633265655457523834446504112749113272989208485226770621198541595739539775712044017472002163167554942078854223192964794401936086948984990091288881298448832791371967647427865587571649124890321905097910732718031850077090756695117958221789000445726397488354333873805490993567969356956683662216850541332172107797469714816596974310910070478092062436664560082481169855358910640940818562165946845997325490784850438158503574838237198432211674292353301852766529045780017318928396845765684780036273920276813774829333008210028441418329506631219379563701275693378564872659626528123259070427725834932931646245020363542611369303133013219323863221755388052376076576760179175181633992229003547606891575571226134566066987803402253453803837682581355434141039507366473639326704162722044495534306157615202395664418600727770524048173638345732160204591821613615412938415326866359494333042694952194952002830883738536643056471868745819126379765379897269972020936633210285946310121271837995149452949769452770069448560957767041700353095154907845139619078567175567679896993101188685407667860992430523261811318409325906176785980436057280965297150132162970975717658620214587738882496256211038335602153224139455842922857356684207800580046972432901039709464943014192651901691060890460495832078251765685326287713924961369939025166342902886061051611074683686644969649280394143043932512033017337015338039958334926409684863449015699766707231529559183289581469368693863809513705031771925219952283913370380553080977873438989589238014128836919309376379248392154467117248890925743124321810989764450347066018792333093907590396396877509797506980623254129632506544465936925938520095940216911519345809166650416886637511660919015644560390089015995741430374165325944392369294903830672126708040402571189611394174677428858601061700154113385681225664375354770315681250086623323189672660937453446418219751864161358284249839731923496486393366192518665809525899851067349931247522494596102270011456791432606103437609551332488106493327122958708008780983490433383123721037521519554850356093916505941681437986172649236148857538891115956486516743459563930210674297539458607619196863814160658339094269704262514107457909335884927386371032605060695432102779414465884690425026201134537865780342028694035523877478714910614296367637723921725950452512162564602601031900595969698753637087031479309012125612106623059166381989093587213205631819004162386949452278287517631490988241511061465418276112010134679244116928407497972516330296703624597418447273609465044244329968510859336007962309079413505303028245055653007046889149838852667308088085445943801940980244939417058722288843541945473690004239048395612716941678824246649197487142803628991227062150542071864211244309820600467401040428490887869361516606786564903465845642506219700309502199116856722595747160281678347179904382231639023522341757267093175141739077852041716300616857758218508163734802911365469119147651714397176654763514351364853611998209208227895168016707887419136807185953622835433438375483789551620907360340995483825584190788386080164244104646241058894782882873856751656110984587759834287373821587972561094048413310161794796154567939354375711272640411986156286184997540908416649260429191309687244551576325151903206100087654381593305392737422881114583365848816709109130734546342711169035109418907741300555594384014964887888673013707153587094726463822575517198054372105102581590996869469433698518728114058104162579499326896486109168722441675213940722830578413390364741108380018758839893793846386351113378326545812348387108778366119733068409058098476325115194271406454818764654508675674850002016552124788514787213810820569131519983963661256961620047200938289235068413701273516932358257545661588538019823104239543478299516128070790578035278560461272613485100375226862463886103602476456001366782115923923606296762797446003010008453219729205236241347377410526889632506771362133159730847245035280554032188373804222597602058859933721282711826071865241475342169435774526094518556225674600824204823863453140048504608001183295302933755724542714025790279167922240959963237957315324823810885578720493978852714624648192320269998517921903262668626397057700266931897889642016270663555129773248372577990131230615184746768446363203510730339671767529453755412086883430231341479928595042553028392816361849652532024903426097597386204870071316528327855581958689418462530868717975934048936306289800075569957446953610219107508065608592010528788427192466709964982083214582304743243133904058940141052774408423938138147560719808734984837528046467211267209110784809356968794961441207506422040136599583183422407364749310591340773586440632619282504498886005283430506564769202064728214217548036266918609389447124507389755786137530922838093741463412812341963852357241845716959086152250955920143836181266703424861887543455183680711404642629822836613633461908335911212412621338729944078091867877118613980917670616863528196100425887203717213256702887580654138621489373757072173788726168897242361220893010875765539015536524932920012660128390084892550665710238056077762451097450026534923934002923141484933423780114569082162731620552969903332276442206276214490686426316479157460265576143222530884620190666617277944733795426648360431360662904914628248437028817490864196600452691125362277280306577750773601365813085581178679841370391825924373650964441427780016500331870645813103064261942193163173795341557996347266305716076153033601874574810595550797069225549627793049726941070016782656576803305558523171355669395289155385923766078695858576756523305308055279238921651525059387800350174491038199774105570725134220005661582183419163509220103104283018620569156548195887576992187967862574490096890822287444168263641634410652137310802271956714947505320238557035411526703673795883098101026645918367886941434030983900938402059707549340344117485892913766789867598966514109779325220241584667949705351916600711058658250960417813546758396723334811517088247392422020312990447559598273936210422299537162834855569637118866042325238592312877667358701119209394148512803506986603456518827461232756244256172369420437405111784819966763007628961683363804133161186520794490582500800676963828513039749772779598089289467222711838515038753968053529310659288129620379288912566316520058167275534419859117616959598252862085546753922200287164326756094799223902237212097835133928798420665930819191769425614903223186441825536459411190469412385546680226315998703918678453503646872872023971636034498632569410212785461516976346395182217628834570865052099940368043201167566392429136519532784800169243142151260986998305290057684448957493505180001911247101408001189678308123115568941708745881527626569649457454031767656503358727954968572003911804997505951546803882999936412514201638601317906041578193580416226924688692360484741188660336124138176292410605969796006844209186231766575508249775997868869078452614704910448878897875697743612660485309383800865921462023710346275363666296195262073229802643138624666585677525641018628126535626648977285734668104083028091497574964000914504095711334381177760676288065707374328321058800138507296869310421480723378740415647854359075943744468936127371074089510036235995823155778353591563181011158388908673975244008793579728206790709989478125989937686760909341001899095996148126078541207694142486020027568040792399997882776873148763729621029448331140610447887129316505882992879434255327711507042174541436254329672030487999476130797439073041955908030988545416749597091897517407084830158202606615572473250752213994161856179515082557191096234488525677008725388343010695541830552554428444575256168327995487907305344948002396153911860410438893057120049872295876704857464025027985822921499224770253037609906027887820611625430814389632995131961710232182608033161639866237589554329510194867402573703010555297338684552812076259087428086837387800793454594135828501331467649486474617000979942702560300907928590469045181283448150423239236648012486615880644982250016120621567617451023733658738791062391334137604867328599084473038335124497225060745962447996728244182837649489228409319407305504802673191267766318921630442027267556177425452989457189058721708766800817594202673560890439392361960134093359678535074203126908689560502330496692562488973454853169441855858780546169254173385692652931173971323742244035056230481696972243914951651286997467809661090339892392242529261130851130731994151882518177641796067242978496973565401247106419788049205767628758220497929776956021821273159294617182068306452980339212553072356310504348202635256245856484735669582333644096905016049290539466884457391562963264227548165383037731826673973349741876876714571646975889186789280298416215151754095054705522047597953384746675711055853541383842630642937286551081557046246087575025270074755092696853088528540624381922217695018932052773058466038084806513237240954990096954988857491363355321975793118495937447616795703011229940419559283110426371928318135940226378911211434324130670886471323056043442912004528605126595914531202843058307092736173260834766130410929336450083280215309019822025563187646791923821036014873600662985595921639097784892746659393499021050375998137790101004536544018572061000067549852294719275787212258379767869506439759027378938191588139388043982270413272748091102482890722588419063138598212260107448300640340639137314829421613009183254458517371587058173354001228173262085294294616330952002269661741624694823499229643496325001669892270967229981076066133394033300805444916972569986380430529121639567129664434445477917855534164326975006323796836880863436425418101648832543916612706007496303708281117514183279756693221336734162978034520259229458283899402016327663501187810505128693135990992105318740386381709539108492062144968080306980432976431786699152833906853993924066438944302242490864182233934106687157449973270971494157295166080352094562884500617596682850633102280744506041726358731927831689345998575036361579735587690344652916559017606277078849856797836148618581000814478298165934659346182893091465857430690909929792165914572228063182314081709974408329132526619660499234671942511989034829176400864267240247226897487194301101443416660070262315571815152266645421218738096193627275456897673484640581009332802887035890882745270187178657379855163025400882458691028759815832635066800498447650397812572461941133806428759469346842781596513921422596440766476249357653580074507342922397138564481156560771322524076828040681801816205819331657144587627565979506417352230007594858018071027283279243176739863551500179659857296730750852785318137413067263912304393108726676114685807519199887086894844432897151820494551312263754349595652572865355761260068926672341943782827236410282235976942087429297780316186673965548810598550633956077681049989123780409166177867518637024321032160519221641418613972746639267635781720885473873421203283530138356537730639770342604804628967546229364285466154359463547251178939616009417997801517186359163975724403358166472269205246169385904377692177437329327266486326336627699535812665458222253508073719328035958895515546160802528022824011007634666840921341400663171037412084312760915681347633715071694715705223724766945589965576762354903126118285543163725071779979799327617556687757707195706347393931117677002899663119434689357634838107269860107361494517218966471990740988279506343228589859286236676431508784423597944220323839353664392451855223152900944881476171894980829687744814035900530180411261137615901958621426900590665191346924700959992062276134611831342014104261814525508445522706371391198624444807081100801618966390499171888600340339027568787268819346599369619646203712508875934733780023776164664339954386153321427797169126671095078144111974075116675917540045217110529942572632737409590515340793407477871502802297412010337778122413778485813297471338835392826271675109608333462919655060833007692603677523683934924482917334534623946672871586915935141596392759910720989187169312072699202682604794753010676426108283007809588793452531536386538549733743642119975690146871663593797559689584243884295177013205702272371319921846811317911636242192170065087415862922250173707143664642417101944455067148467695896517959447360098169409601176466682997336949776997186485604028006997697008740786492217150560658477377625705784101542164652960974345973991540832655016748899780848069099374988024086004416772887290871002988263963907653642528605479209526054646106527066561006392251361376787061535864637124110602016849865621286241335143713873642081720152423160658039478213518188804090208406463989750610151491272239529380883703927242528206758304467961148893427261532522963963276083217411141566181888286313624928630492373125245058093619507310660587598516481964883259062855980990050036936629371727202639813816314134340404671459502488751554569268955218460056839282757174755253915147454163478102392382092296222361000537378096453676034702388864732531263372066869211221992274608781112739627523807592009146645523476853240645773637700458206678056636996979312432272752801529319203640412773369438490096911380570191619006517874494171730302385471979044921773886865652414153036057276346341314417712722261707033612333677386173910009607154003950295594021640825645047518687587931066174588947319805250004516861770880918207737603471605720690568686632230896850252900713388800570894610427757673989152586397828140507653752960643638520411741950679229179158249978901224057553004089774827069733933201572438905298055573310581618283084706881622532424086413815937849698733448836751295536393841675998730282751459694089620133564673016341610237010385642487191260889382335757933118596890285359961706673363150832714772241303938560442502166010858390655392614097072668757150324441268645764967184926221054051790952399027822068635762439088767107195687894108553118304495183711946092492116337884121934061790505133604621784097591139422021820737389265753759470731578010552096244744706354012997310123972118030460164003069395554769787289086897856765944631879349244116731478941745280736343736480198413365779826399869114816251331186114147943510064429345608854957168186586058759635652928686083313801964298394155115635338884333643345452679195117463442197096803004434997533943173643969842331188769579005199810145430291736717396479040782416412020349926728402028206881758291511568118959400786109208735880903395285378245272094620872891365072541375013205515412702386085023424860219251097407052464101482725616688415224204092055124820014063964170596372988696080293834556127597514061254352841404463828081588321471630472228034174459548369050669747201158976691204911250568878830708316184745565712227348922532929946729205582285131810452763194020094219069839820986525260777516593751529960194595378273182537860774479890591409828731796106590918022348488767251486849305769702974159577575352374474377399151589722989944760619290214647032307439600581104333340632136827701187682652440429243510054780157844244277674273096349971449579573256311263107449967062332473009029873964225510876882953872403637812711094003827220836574789040497173046157947861055709179663847062199892116967689979208224639676379075584096013476271212211431068522844437197724214649036309809800014472927082682055152981625585923798103367019619682382227394022537519202075647846654368278013347983528014444411902406653726607392561064407507915381998854246605720583382116097541665561449902450741480957210559874368042847292429156647610099160124975700459064343042268093530983148368603646805011095584084119211259976125587773875223360408065488115676585892848145968736887440770871651004188114819909616682635224984244305402274476959707666027009548801456947588012211059968693641863173876973477649493446544028451691826929609796928220146763717181785980927487465775683276431403358182569002404915411469213156932733764031256377040213293966089574344572646494667619800068647910680436851038572323401974021477626286350853985477489180855294082415246915680173360088061263407682236623223818078278876480277320513968952878213140883218845782049392359234159490598359547003792075046169488275451101025058535567863775480801788606728415434308940223910783751245503008932630766988276589161640740940338189327420206894715781212330150767925840884298055255241303412867552642479924382836307041247899618652753773899000730853164760189370319549161366522610606967639288998504928385397524702215370634908712770070154070330600029812750505627487854327448557205637946350288922725618126392485091972253216247823849787551250090091998960951797770778909515723725846002674891489055253751681271962217380643089462446539987443770040990037802802865370698232018738388919542078414777149668424954447777672264744769956527395241110018112842707608771574984583649537615335882493283554687209438669304090630673678395976148702497311769507017898307053244688636927677352027428912812790519613660288571531864202407540429079834755643864038404507430628794782004200937171829962938793444368553354555719158194169902818200461694305974110557316499203122378822245834830610784249914876570277455466668750112207449662122023464518036080167363115609222397065611777784889789580431124764350520807724985732967816247712116317492652016743261084703308060131367177644239233111692239843847744321978923105601533876231282227682282797899262601686987586967371593764063852730381762827419740049203131710471101348984274393087134371747768814242881549167173234903981780559996065075222078395511481065282559534379321025711732159860508998746995865298846758174417101466129387552789092746528768163956082371410902046925873770058319041045299569530613230713290099313652960090088300571914998024057883890276600978094008388043351953078421582973814800429401635891660396089400344315272531878889168902990588644431072325597043503148561654083863415536016678768642341158665959715676678156679148386422472565367014520795534084922608184331545050687728830671718764755938213943211784559468994297971855467372625140472760001520464913543046667434528666223235109805507139819529517593240933420101802929843058701965785016781775148109826483203263708294443788465045876480596431780384013260904786749158924168858221935527978998728621691695278524934353419412103344786462148189030916959837470218071953814772347041011317541147886088606678354362187918505706407213106206336136190689023171251702906331186485885595569321468646920305587801013311638196810590467734042995609879882219366334229511960347444132101102581619594552728390430396770024581659393609931475062564209508575041318993048820914503775445517243000830976491226939657924027567823025570908325815465643146781714257850933234519478625239625600267392293080346653567396297632292429266461427060911162084156489437637933490167461231894130451839891515071451554431594618363388370175386594924448475807826423158363623009337708816256645548027683078094722213684844052561654798716879014888413385938673913738333384688001259598998294150564868392329889099430849944208462856781741401379694386516203878299944358293656674507152802895226618173668370818684777992768180219528100924292937091823334353985068456022118498142797437449709670360415214655160381973967897604177366421468074416861497783776261823251825851146648862527134962730427407393655725547757317123423505788597037349132615305360719048321645944709969870812750797482236236740227044505769804184455292315261097407939752845538437134410410507463088777031487071320161353349451115491959981216376246049961746541029064999700755952468161505909011662589285426129332092255277077985075550587318562180248171651718140784703601592766208954226688449281901559832934200642992487888836551935487448966292262139102393266873120362927012866176157810860147018886472762044890154098331629294116004490079097282851935770246064559041314944964380294471941594865056444980779704209740787225707286267190225478922832536072443254840947937754446020005783842535316889061558898162260677851139630908561520435716431624911489117532535743176559850301131879161717250794962401042523941102790001134924454920110171449116613769040796854880519739244837027043314992555715765787362273775425663034085239629942428751388833855570648300652669591819667025466888552275362763965557773812129109752437128399144744524890153637686750244169631866027799770295097477824079559584858129334629495611526383032586258280407933473104548413352390896685256932215871784351128299111923582588919309160076642040357777195318547052984799250890520986279961791658418536563756235338418440420507244702989872932926846307045970169940891387976565516860866655102919062887137748707725524929391374001551376917779795847214186510700021255487878442054969082691719186927090265111722656955736582471929280541876506680969863473004877442442459219738339152844235762616198889914657730323434254851558352616520940516225237213219379624393060584158789165621668459143765229768838758354582359460749225639645102884648242851061298768591535235672090571942845738203486471564586457235983013696244082103093480824384976613070721853696534517677258896865840068996134536260898646751755933092718112314169273873368103216091823881325991127318627843999541523149700679474192168390098176361485844898975367080013829155262407625016994663611657202829854289740118471840036294850937767759948665665058742999299564771559417902789328992497610897673992387476539563348976356804600044213413267976455077112041949416986309943869477141694618779683510864760418962555062872862977027524731874855136218382908608413646247225186559233822978633604730269911719972501654917139211789565607419431927235029234978222785057891127869304263155349708290115563656147137102617487346084487629993830109624599703040459520866595082399516070075538983343997261606800971340876707892299848654819170771090074491460624780351066822311713242563014264454336201945529647179258432866997434944799142074616696952032126477835541783120567023398548702550140288881035362480329493098034520364219487208384004671059689588148339153938476094248943269272174415622207084378705918289115511871533306684515494480308543787618747394620491118981426087878289994670643075521480451436972644235485233313763224718685885686221561076364630292184530013206154641995606197041210992195641803633551859922283640034864685685639003353040969803937030928683315037091262456637914359483167548181697021276112614142327598090232011880406046546191111993462185690873225883607063001224708743781172330978051676393359173964677331147880922721478973641312539937094995258476873050707915866593841695028132378423882723604733045373580416457338679921373678264743118647082230453056029567309587255878781353586021129657433737574556492998582909150008148842174647150460825033706532338331397957867368467809196048231045604607227548033870490334282452688081814275767339589134268891619453462336435664547847974355687818931730790142299117441630517919184510218441654666110885534462136127628408248800227017975188781255465629743250382347074962276068055223279004253031621236135480581008834701573264022902945734017229094649581972603636397487397086162138871307793913146443783542147803668872454648802748612802375771250448361576025746638605221985551314489754566811143950443364609935978799045814829144136971585321919435602162934812033054305568619325282649199637228701510633934359247457432832150238201606920704224141478033596127196289333596098171242001408734150215857393571458375043134624589120866390160536449912556414564024688553252496097187260488157483815825631784075652017682958472891189873581791659211710292556301063043793076585646889359929134745366445044651936678670737812247903773709542791419514580625564111897786383321399882475591773169322889198640722146008200681380263170833127176162357670361726111688882898921586671134306143053045788824609391703787629191769742715823078259854337290620333726359465389643543800491116589682987630620351289046206687030259847292454628887229698323523053016126077166137748405287791660177998824088963967081572727909965095618566901719380323373775215600900085728681735714592884958600286610488810356070526922869490823462862288943129706538811698378421685170190382087711635188645712997821749494989648293763523344296877290306225245200485199921735659687240566300888318293007047701026946310526182731357137684443446927925028450644020704095034087397414501566655327918095158142913380291063931657811777277363638226735111917929211084504730232894638008781912565616148029059395433558177149565364296877339275222205583234309255782760203610666041320847963403900726614581691774145487368384949060948232808341703065805813351665120297925560010070485399429984796400167895183116716040342661006723832838353573548861506016584603141565866015065112532496904255751650298305032525814912676989251981462554721884441292607437711736309652501737262041051796199260542870622475992436197687241195094934967443777524351572782252516152657652446997350755753420918514405850505649980365420430147129217683588330375887786915498258248773392052142593525171137125840392207425149329676451712332100709067968238054861677173234428721089266787719827857018956383754624279181878443775300161796972711761028006052815875846309161436665820997937480875860235613148358850826675394476722938533686879888807150631387347027707303047093741069849725343556207136351989976415336851419511170808666873002301154813425405643004430438175893411060701585024299327365945842052105136144774934170754296088159006671777957676203776193350791555933512185945324004937957706609251675074187541795556806759193397077141688650046079934502590337160120639921176677564070117460175674639754374130536723086258717675237860669760409676132303413439184194048295366983568238353505486022150990245199784292336249461328571518177395540797119577287748718710291407159614159460841845187864878782275521209091809713112379282022349596590169625237292852964499974526599457418896113137072629255278825761863282205156241901122738875760042936976720618141129429750499082426363165789092336924050550210001825706276628907148592289060658396505536200104811596251857493869265526225657969256414044068664109856102669226941316574138801507021226028919273299678339493125276289072986049629400723041335701638305220075279041267514757368190306431364801143822602444128020950365334333327732983772417869827953273787177972320934614433326494804326264703761182265760764411787780144213402372135475598704674020431036739633775412537488856131067848416265496638825238391930585560520758783036455091991244579988270475972028706564742239121607782370776556022088408662095591742324106815633918509830715409557545452243463397252549861920176584091207653435339798919083066569061309269978852573922069764470885759699006931050439136392878272007047925743140258399825323208944258159811296900630769899266394612937921851221657866407245449836617814581310518545574020572115199884260607094137001436549640559091392017200515096963508698497960467456016491500246611180428686980219036833242594187931793655785005294239088952745555962689728832758818631555099351889832764599315664639608181397854345763588119698438244869555842632540899977027632230172408242387561923513935388317698354781116669482697855997211050394970956800540384763088346439512534690072898848643470542495740612076864867401054150343343928045765094691325277441693135775636522883815204629541019137161930775760534086576600337656526871691886296565127677861048626939924244971131194019012303670166292562963555612114628325169348553943522489587541266692573782481551391193957353332202234869075814602094383034190355103984157424768721481764437389620693838652791203060792543941765261078259055171022315174343086065054062278054381308028552933915074850656566191726234821211318756299604457489005686057841800273351880644020564981619896928445410051546739470958209589140214494257723828620056184312815353432553372582183225018901792476914849243565966833053960980670574697425971270300655484545551463786898441882963329235418446646271502634831988888877428565672443209554502938910096750471696379917493796771778653332538599870604065730114325886568251559306530347445262387462642527375974274590444344089080300734589333227581383488398124968517654334033185623783966306051661615495322458520771025562491975919975241876075994436794632041497570690336006443224668368483011479396310048865065357355684013930568523206552657448561276905375690098367704483705452468821656567151282109824347483239755142508263381387876012536677044442960484895001761071537032781479244067012306794513079201577334539975367065244711455343596585178550200399339557887570738457600394374576662423565613165301182925880162510111218894404284850969368242408777269280142639891590228980244998867186702612169033679416310321845471683033769473383919374338644326196135896006785999371485944564706525543626488470718631699544931942266222600371872238513079033373059881570594386462687310087804445087657222680695018256119270574080871666535050177309878776425081352140101748398447255741952957949126498123415928857790155355167445404653663139655408485129807920680167149913564753000977289639058375762638011606808695620792096939450908817087385836055116265414262975143525450201389518792916670065317639726785089969075793037266930635762409457374353427643578351192786680196631420680931836439796531973219968132607001347431974395609005550102305332983834810651130362137759469421893632547359362764454731441609858364255312052032889805724514823302778111945197133990421169858060595150953755847864610284099162889516442508509979973300866480052662723116125760143508937289061989141601470974613462063186092494755701638931700871892979147661848267002725569589295883897206115330092431041320497492402109366404542616986970605862033742773584177861421043183885184645699361645107566615041634825151082880575886217956756819595191313717944414513445136494121331271729197536329385402256988275690240091287754586622675384994498338098922013325178100874559679868771100403902840823988744518397991902167015135314717475266907657305379418737897499702224041838725648127876273734023911509907347246483236761261173074067636968273646788509433002537876589149340494754993251456663237121027974873485786577718869568305697420004152706568389998780747750167477788381713561138104474168892956148850844471464463963242321626170372472668533191660311965559478253328308449571629570131316782689493891447126267339150712442906283333363903437153989633672989835255748739784029849095160076922482057775863315419121745222578588386627870390103943331806139986553735386019716477769958137040779254729618229951230079766937942978165955527102458111503989991240516933241286373851182908808739513219211092793670119316288578841450395979616561244156380290615571566641999095575845766206961089303942145344704114409847727430422526356393861759126142577085616508906461276809886806943115378642107155153727589090132289124187407014818790312485152847685183788500920291706585165523239984092449783863855057644217975251010369377043673789705336252975761677293053300340716979404858064671951641061060802199389984344492214625234477867246213427863455458941759991247799906990229076497625099916805186451301553455950272568513152452989479346726129911007297801154508739292902730763970194201616083477298156996662770515233368077991518997121490287581756755662280716358655468755003407613705545415410171318710831713243445341771116741845929760461504904953235281133953261463895033399344710217207282547371272774571625728400022275420859738200690357022901368536833577848121630346406895700834929368009007086475934479435582407091181540812150245440710209932339786268230614434739085239506662872433321400843837755340650625209221570132979731403500310658465411496091180396835014057581256882696229604294649593303302856163798741535763311092306907380540423825747776027248788192562829599844072643622415463902825155482005167105917691774739778147683415961090385519328313165310938173075934694894790970329137378215086637843749117124418519589538603209739857537200577112556996943814646891125511576801646167265836084913017171241893347534886686414620960565234566051338903023815165616994785912246118845277715936535586475364058723362069070759003450973850183457440085546998237894352563025258418310916001724336157959292946951824596222873007133601723323520239360142223248323355826915535825258881316062828004518128332108049638149799453545585187355712939657880694357085692566271275419645848321971619147876896918097895347049763027603498528773375303627421447904695174951671925675132511213895698359301029404154783701170980021793244706706705507747485097376549727724534999209321429163021228334725323998996136892033542215262860226169138262732708888283193929005299094661591353552790508499758339889436387851542949625815615369507557446445745384752664500605097673785356579501053043867994337805400864607706997775467740447017538363378607454559910560960190328367589801541239235300214052712435852005013208024593563172339353109306467045857623018511829983603304418271578596495133119399374369458820297971353958587918918103848193495528301851833093563253851106453541839672603590427241830691731726160449828680210639855900654072873239985435512790680263326560783132056320792113388272956641499065029562713875903003370013023421478862518511165087601713854774076059028279540529309880307912446006293014277054619542328397177552027940584586551513212118132592361099904818608018822974091696293871275698734304058820923461451997835469278354475710396028286675677916894286853625306869197189015480126916168304039640341030269306065195777166248358035125442658816579656909984405448161776309390842009141819264173636424638265552533364949901772878649688708207504239765774029171251518737644622188520749034978275502690388067027949143341170791853790440075913353769755779738656374080921030940631331004261186597706955153432358744199210923707245734585640023199685488353144608455139873738868925322626691114926523568295695239498051222612259897066097715572244148915945434234400546853548199481936621584811927254485503214375175619852076355856004200513453831156076059412024514644727894065286331421589262169718451632991081776029794455681079593277098754939510893437969029975494691994132417398378342031395465118124306340684218412886810164965171226248785344529791513120783092687725516656354519011474039510761933488813488624730458395722659658061829812304560165778644380700615723077776911717881456924507080812232972613249331608829535600663151044522650715403093043356297711155106334265284380536531091516819061548547392982815892541120480175860000670685388536856394563378133316274296714655694700165186469251466000967180214288567680477053059965214712626516352705828374900368712065615852263960485700172273568311307370835347871115969659987138189913704392362069304062544461267641382884619030590818309598275808242521174219241692242284003340240576226781473193671481070495291680393765777377861075292247993720956700834574612838986601484312232990877000743849219610747670046644757847172474494108385282968527782331294835733731323377598765423169101450016152044534878270865147305168305854350322891419689644228295237516607492783919960377173616948167288475768004561902690707307749618060810665635516643726085567317606854885669396971702536065405943797068174301406756458611943338664910990921759088775000374850822435434012056426647637661440072822076263692317408209258833546058648036326837902897206973341897265638970560422586539032665896316516188100181742945179169654565518273158225369279864891612231625728346447734113068595795552258082759747779254326456491690599915189775630175988091677044160357701663560480111303464961149346161125658993009815066268066976361101157271833963724353092556538935877202106406941450015538181656860566831954689309962985908441695950834117463028568753080422305316462249440431056991313373146072820299329277509650639650559621423794615261583089278704126924500708241451531807815450142882448944461453354481814518627629110950843756172297091801123676405010316480879175271084730106357922004275581254033668148868924855268021539555205943755482780997922431494616452994531060867070664547950854285136807200695305676077900284006142573334213697062425361479538801853153573064139951820701898027962321518450653322284650839433269595420924884698928412181423205547475968137816464859765954767585866676413063208366439610531159960931491712567714732613945369987578867881819883427213959514943677015904807520364712221243098363597712369354016117679183368775757142939572907736888145611024281759811793137443573874062200293933189932860590155370783072568448829597132580738370147115404922911661270445743524231437648696421512687234116536660566677103101666787686663325475841558607865184012813921126090158008931147476606142756150934617314881239680323946912409280706232543874690501346737488090977103570321785136060705805032401137910548639103108853057696749235858616324051097653526201457879411687911707038887450243530811176696125306090346205575244410431884183141584571836158444416177301139778355790740187961320154076582046055045730729802756884930020016726738374985061947079764176641885004775054982853099420769819511749906390695272099809212040221926696415648610039062973131181953093294360338874415933922497638952535747166808916295784372967222081682717015280510538219664189391130042798166490574781967896869183456209075562765978563257821200870058410355819181940095118193217961424694680933163117685368013291259809236633359836673524099463401001163762724505971528078955117765000792435500767410325711119284896459500262448564831582947724732508739740777941526067970370110679279026393077428175064235934189018696732573056016602092204163560349413986833468769608586839492371105326987600973742511787805169184621451806611345947238523780389450089482308098536914818281419562284302075123655983556639624840680235144742885116433771761746102842426176870339707848813449603556522535136942284860904140613003623403720226163327302105498057586443975518526011178235866208483558913772275642984363897552891519674118394365028389860794137662901386048402469533280387953372137506697565992794045593187908950605535558651587374917970017646116617875128145805473478865321791966654757826911187394554915702815516086436500224956525647101332996563825174750681126471959003530558474096882368278071742875413297001776388080599612961422451042936731480401500320812161911448124060484381644811679367843259959154290545877861116254935098515394135969032998641826036662464725579639470853864919983391034747521338146640346859928352160261954401602986573330857639560404298764954046705131173804681530865871450479785401684359439569484871281346152632826239660801861300372110167690413297223028868956784277882108642042791694029197226417355684501740657616551902178566959361928923957120961616102158393304321298804889779365714561513652616103818793035811875191483659699765456273872136119094379946629686488237166852345987698705892006305279364098184350769699925198845309579298087993142494845478957576865906992558561981778073737307829517846558948401435197690435394515091108201621604471010778359794217850772628651915700462213624367683595502000242598131242903504346612675470557908988752079400734686173134926535941123870705044598180754309286734090741376241999279381181678669189266535519734378389593907175646273150921176599658581453752083279007754746173686127042629644169177533192394530456860779039392580496605026782275128795629447994325967993026616784857037850853475856893185530687013161003080161041033212120081268509572742196890696241034871712120496716522331383379636669643086842370548832331905495403524551792592087225328199747576175842004718467575956255482428333594650619738207534677817498334592921216746135014872513232941074277906364269641014975364596603196041187499784039300944859072092950841696707588134229351688818058020887616268249626057122829349478943616799169807693850083332723175120867242055116268763467523735434189888643163186297494401454323198148499905165904098280932585537942086302393987481470136815301232784283857835319806215302037337475922419272323115237623927032711169837200015690670194225543033629315949943769342367362817379036818886044410040511697183609558627160214191651394195240900630778748967399976130742027675170717470885314568011580592833107774853637725957544245666448448007115248922698781997942132498707610921352009559686032916076511414102640305377610177542767434030658478891821281812180455854055526131127048120381236690717120189994818039742016164195600874935001474423846750607076606194665227546040050475742394542955252167370233974710778619893943906741893180023121637968447037862460978858816085040481709981070781921108696340357544673455679624611284586029493760261820557422962351847490573855454043524247918060069734920820315476257020736230178301426484772961566254378732966261235125156612764362186127375646908121416604601819592598532317692344553256221596717804834946097144436776823343237173663687633207601085485321933244736411756008256786492522109689292625655802211029104224834452043607900294335913368418283872913498752201345665294551069306203699451430940821480816134338376203320921148662361770099182564952077761789519485216615433848551708823561373856453585108819590991129024707122363804101121261252726660127553050801771865653063800659388956878905237737718260400296324104972786459001107837394566263993056037543082669398099208484177138995533263591822870482581455057379888829445191807766601441845230006128096712769332177490479787601979499947678013290090746309964832090904853021322469741544100012034973110235704710671329387606800060992809079258327517662175875938129066209857878597038281674743702140155413559958353900587087921056050633022771762760013337038284033730857102554805673258373253795255311033588361261881688594711281600028395872909463951589741930224738438184960204358791820855413871544252211281067494205689549358494300629980762100233309552283526522128843060716836766116360673187786505838538956916147879774236337994503587602809236099742593561601333712579613807789957655573692761285770482650061630115670076791817831629957122539230641122725175211832811512753437880625270575453992473766897538798575880738802928464299481782136710690302681392673972625359746599984146734253386454897501305838824954288128760268072365782475960005035310333416789722044884980168599717300593666537621108273676954802506584912982205316421922025105052727700473757662661769861101908059397883271604232991889307320845850746399604698889024309145810477817734722350776095944601705865124610002531558390683026905176228784998369006277353793569355094436197204211045093994406447039661421936254294292045192109489385912224195005069574987432724930648640479177648920189082547772175014523788262872590467889808926038784887830905219785140446238262347057674364403141575531412674806528073659065934744351491306489312697340373245918267104068778751016915949899399233660394359551950574548981429883146956919270488221344223133834231356991963137620762323719295149260633470032169500474782099001920406731208311539338673417377249302319240706003800230945520042136872164855641858620908814710022125123958437832014108471582567323539922097179012219384714872046002348233134165371942607436515234304258879838419241357723168081930371655336991484402502201210551687357491252287820716681449608163126112072819520367884595818226843174192468581365597845066435446378843545587519173576714064629439882162611717113837087057280245958806344190433034635580963184725531712467957296688583987690881714893652011458703433322140609613781392016963110394498886880931920027254719910402108233934921762660932147294592981941844971170359032063250348722730004104940187024034246409386831773111789736262112528532143489574954224522534713414753296518421856983198464788174309969368418808706813215852341415897817174449352772563030445612205803753807990379170671994154654490737280597875972757272313790642689859822846868143880575898261790519703564063015876133786071599977334879917259336481906323400197582718642170923436778309129173903102722974823728255259365912977134614870868776911159269086849555636805208928160150876514574428500617387503283495391252445366097690263062191378370298256484124580898890022555801658939510746373448653379333053953586093280779657322774184383536074118025932263231520007142688225372126976541656573034248119067240450782035382381780635056939119532969055810977331357307335472656952057095635104188068008619790901438464464427216960594788429953927421724531781537428442372555083780794892604620623111961491775926177737318708235514440767997928377853554589548249070208245608837021424580291747467018495636725116610698801003878064787948506808453992011431754948302319594706704924432163485178770350383799746693382275285294272807940425522132669945213354267557059149471685293296741943470141429479596469969037395555588376846232599017944874512330215829321859111164424281160048798272149944596414645008068278719864440650795443949228689399009359648579510427933484251657428153908188190284909409785688363879832838304472030398392428265233087485449961786702549963997868120401223214559590764812198675344024881352166771684132978402246056387324345676417545241031604571637702523728193284199570225713761074968642689275455514142947214778537139353600299214854226648026175252275359970246029722046036979510764997908061451877498896722131948309739069583733772442156067151249559055354028685823819062900949044228706304991048374116725790345532431617683897217915162914784675183478132475262846274618506892069763249895739723715563869231448390726940358201107324248382393714391571201198177363458987868626356024281416837072333742346044788375899022712319683714225506058305743919681537759320628248529423585689572407109013234833168744296863882240141875052078939134554565987036145584444970614921535866728952631098692691786908125646368892506288965067669377563573062298522668643123440106491978060140057203190009372348135799777748860607057412055329585177615849454470757334414326975770565697010644428442939423243547832220489772410250335240095603185361148405797514293919687210122938585420005850324139004378038285184119523778178757878548606908994201157022021347445923534308235877107757551439161602395634977377544829436380684154288187346276323603257077747104299155824889353007491578291842998956462659818841980493902424154563956640522256099743371537498005726626654048202755265359719015337896822949711133016356243742366540203009795561305113595294833890391085063547897773919389856842264214398122588154955379830185826251972755532103803774861177101398689253513649493329584853243698244041004723261433794675419426263638594174565107845648579456291836552061990824027005611494656047112843534937338808948165470603873932980881338774397587814650053922730598020696971778873270900727354370970085590760132102120678438668408434437998134104476599369041276698606109629346988802167740754628225952452811719706530279416867105496407653136683114614162523294571446301658018941448719096772646156206177443007195008482609937010581492451696735857163563760693964785243706803837330546496603350273815594548814103232839683961185324867113167754771630278430722936643565403995547459867352569302802305173245248351275574468549562758982712581674101097634494328596994003668592864402779283110388541602541123521804779567844490462145195691859373773984493437638405578917402519602857122454617488959466229980270196611499471318670359970495270305483085065163910961022768516367783153727995540629189569481137221093375827278282838582126347148135966556345301343613396443655832916476957732098141971914121904226277440214455082114342514043825871589396747424703287757504925560964064100207031191165019951206068751040642078037653829345098645857713817279607149493464548302354212049377546261375632164343404976161425281610648180476919041346420116857437431832822030035687382253034400478432012195993074758510536058516211960459592796638957240384706665444941647663408123515438596478127801316556124741140118103045174908585773879690657962035263081848033126233749734708117381538731108202573071589457837430102671458173508426634082438665443414923747414991740827971840490924587665414886305696501765805942782754504016807312189997627954730190417779639572253949852673168867488971783370562421229690167945034577171774711756107232334060733258687005234130700435873478984290573332121686347598453195731744239038634441485917250075922595911964311058571089260794175511790281205275377696756154206770970726082646177786442733482581717820193986370262842565035977118325439534065942585864755406063334406844181418948889711177435916590652843570277520308493179971042991843659336106075707720900025924135600333666253823595923116995297789047959790508564408000905237978676348472099741859581819641724361300644939865966646162600641073094042299387667813736442916247781949363558836013520230932465855913242995480079940341541064911803198714072685943840585949532232885667202427502277788358429624309769187976970798338117093266051533409871444993019481449150885258149602395534675940795493487766801858963976488188039023091149955885602383188101631800337119024750469814880105586743681473724692622250782335046228247851371568986167930504774236173032925307706881587890494523796835661562723941594452659129001428149967532772465345375904398304389041754214127686490496248170373519658593813213762583622134585446408643986040074786219919175845273531458709366893800401982934668312744285515558418541852470459331382563039737168407650458428469038330174494303780150138650456728975435347211000721930898347801062465277484318898204537624466669355960238376060416301698510624756967659190767692228168159388450659358869586338842149106280231816108888547626533531308258620524538492151260833141466140599838202597294937188747234214982123828268004725077462195194927646192808144089692665749795200071267094088608747895454440455100724988544208020628921861480076127452384569592874383442274893622268390864076252661913801130584632668951896328270154969221796521550997745563947732826967975420026266477054750500740752267289188039936022183585064319338497438694613182825848508528324446156411451665181258529999527887514975389025224713448857115824156402569114878491180326424995599868149112943084586836591714041048793020318658559467650694817951545779837442627439428293548916624183590191381871256227968523155603348136121345636784711738612020226210460491925197137900814934208565878860527958753902933588237600194977354048365304532790941342060017500426325179279580343578350485503187424554524542264344372125734177215546751206672350310384414109386358217093174538338925433159429233451120744905488711427406233074521690414504514963167354217478786421568497826815771268489980943590131924927582760938250538649441493735002923012921722987190895393790806827863857116017684467558031059626355434404011096903802632499275218712330695715584636101982609470913700606707001497861251341030244468163163486119605174330985803894204081829959009196876696544685174702470236043710641083162784143281751042932431776042168248153261422224574593002784258948808002394928609657178049510423724450146225115625168099307025946998227934016515871378815390408190206203233889958867939445502974745169158473983533790059862982458623961930482123975645351187413483039559738670644179492442069264333496380647063263308459323099787399430290758482105007371102772571502451105839187592609970855809860600145873495975221058859916997570145822067771898008565869909616452996498498717467148080013948787522816532317761476470992651270107471154749394129899962220210720204440891746330372890492694135993069065393772646461307703189797237582285147349984594625982874303032764922293965240820015103499500845685707937662701447012032801362624218393072532583354821580811949430356278445197874720447599976921048397594998257116556896819133405460233797114038310552666657539957185575145243441396407697303863494589331682941968380001939915885447664100471775254535535558051696718896179389442303867992536803749906560081046938242461454196058771328321056359893277674373348294332134257564745124902857660101026202870773827401054485733243225334690912954850395716197446234787024162012168035853127312236719115138584847353720962180978028333450569242892868890717754429094172930310315577767106258164386190593658788433137568155179258508942424581575380443104100603458085102248216447127892568440323344184030632528469743814510429725868251734163410811647051260166237141879772533678930487612497758133281406155752808466572113532918030442087345899752371779765872083329472050843254938275989488722670025531008820131430039526811425821921110675368192536368756937895052169128276782013968040226749953147093538148524755823265148450886143301004838488375165019020116760079455452507353764895804746705007413197003231659057100099337118174657622451767316127030925974236850928271826016625031269051771082801437888948364347463782631869557788106063010408558623249191442727846127916641287047548135316525281339885179180704186786958998926941621576846693872648342590284746540009470962598715219093636875679278523611554330916141211892259563743433494801590676531073277946887605661157564582564429864910472737354204770492097681094637760092188965613352437813003762476095946451278816948007583524239528670576789186467230334280395431042553615546936876722708571128811000154897963913525084005306347828657689550001924636286674855058831160542677486733824105278878767239699764832963888656421891722236197989401428746910460465597792551228001725716046689021022295808719362051259882408852812041261455877026967318843154773208513888375719613601486968393836584857481565430214138495426605617987201244759417156556500403945300235831483846897925798913093368651880455884315266324539411163867625877472068306599592427231984953799732304737635210906638381066550273131838654734935889712397310883672495906624435408152079366566585256411416000878169110947381308827259169775494739201310012397396056612956543377581840344721956651436530370945219687917662151020189798264807612500165076921593497198168246189847345229433004430718151454918803493122306770448023532645943688590974667029899491912261010134260272940608556035769562242542003697874099343728304529783274757446068992722809640538297935313162419867650972221141786195272800101984922475272299961940642603130080087729929618051054399314615428826949201308138954300098540068193757050596541881346071440134736305432072420351954051897230393190964347310219792148608531592360360844068285493609788723561052754307570513621656986231343941514037736312758696562129249055526763157179769130769614079151360661820472829988016963475091911205634825047541894257861357345283511593544231072687623707454430806672090951903509385923913719202669959523588036699239146235885174482442112242379293293700074084158444327731259126069347488398547125169790984237860012728103014937052826829811088161862976667088899991520592934963825374970909399993351739729154246342702034236612576300288519138756008721677177913362289233680528451041481277085216346443062880410401051409212753104869804259515549556683411980817738056413803919272939231509235931254190083752091872869803923546391039580497575104066548120493609937314011000424158406227438716318284071329895675152769167966550056683483091031510036229985631714539199241086679406234401660827616294584394831299820239147600561695836987508316625049737998032841069347491382400869573082186165910229949003560136975499456033523707286769602815350131127000610106354807168560043881843290609354405673288139680317957625112709530813319724483568994636069622314184167838120315147525848450003210435671461661138494640729530631896697366700509015415191152681177845434891532908438659131674360519682001757624852100279119284365442581214004211733981661051406170688688728690266486463249003765057509680820786875967619059682412248369929283990998958208436924244855656195407208833881418156492580597276277568053201652296404419256385926450514038121716695052016016417894934411525102149735649994791863570798237127982484793814373072256116865447755799345313496261334934826602088162040311117516177948293830974348370549449814088042246022217381265071518319861370736503049611651817169517344098465876990625042877215829730013718714800660153883327899551198096091568768921557968826555061890848823521148576843592986778515644739128317079652381767722397697681846335153773791458546965875596359889592933671871707575544652787121124455175278577476253850739559786628356528978221217182664725548251428593140663459133209643232781853462027792971490803505446579133724845819160009254386040361972529076892615423023970737710208141286886012051645599861367327208882636239102311987139445988554399100721477767586368004874833653611060372756632887169595776181082574576557412119082589906759850903781138129538165553929264667754298353496690280467757017571188402027934661837681023084336242520971762520879679304654119754969461708836979937154948459954371067011433783108847969026782275965553754233433713321452358024091838222117062808857815942485743401849066088311587081958041714908298417592777828321386239542979057081618812626517528445974559106804195044136514059917015687828363818362877520118297831798360029679281364119466130942858693302602590373072121477653886071420548996160909306479127114388460902405637760520401500718517940950157101437057662251859391474440936355577836958661312624047055383868973477653729806316698624968105004634151138042066262584484642235204605701662428611072126218923592356777079036440384985303891576131942121396115325805266366592587716061219391595580405183378759063263853075089380581241135858250393823878361949169783442592478093186796709221374519274257814611575393521940788896206539440193684648620006456722534828503167371675489677289380679256341075967469517089681609507222066697415860505500965221155260906046987310807860912285256383413906893824967823104359797758487388656117643476753509097255033935953730994274526333642791363683894783463719408148164134631838226021325733545941052858296925895408530725117132392127206826537594618906869788562798772300385442800222345202159951171267980924558553014145582160571427628508591368270172616445419047623184672204285678525322606943126325824979600727803275688534414971173007518935439949555690655939846630610344561591342000309016637301279554180294064831335836486875202150068612271839254582158925479839012820655933612856879773513588911290373822966558430207829619566785160492157531682228837475649525608395091444651334758602885274871953152435455144541686809909533938943832441889911335680886456001383082496590735821342922031270947150594426628223651440946239609876199315890004420664786747746537687151436582033353321244209155668912135327820765153519873124797466849994788870861135296219304583704560672029527473352637727032367248696696298001671811903273180135200193463006183421840877334824522994651944800081719946975777172160425466975274297986630360487484307590896824603625505522682643681350510149188265462880644482586186181443957374455232460894962828743602979915379725868901635516724372631488048580586136828098620299509986896811746600057007299543150044180016946638057229631871607400582243244165054637373803826372122697970873024891634044937320864088264487778307467682767152232804671067465239198991135612033810552854740850831956103565917558842500395443207311593492122297933871100725219670442796751259671955020533196011898739039576969352441284095635177497832527738290951860488275311030687960296282437383203748620813425469661810556628605818277122951613951425365804506545580157777893244122246918431719980744229705629908364376394385771556848564208426190527193433542062260705139416758654169984869129942542681514138790587664168046185949816631402270802021817269721815483368263329478516841848267625015375883007662326311136359566363420861550867354800644007500602152862099333688385448184934059233088224757159988907360510011543093048806877496216655010512563568689296528302356105292782032245324559809492254927799444267741356472342105945080093757548627525661626812103193853054866817001289023606006667698457507157741783752834011733486831382676804232325799400722861575383405925098494775530743331001135255583386095377703147294881086601472813867349575350398226647306921027702233340919369234598219486131686780066235765777104818461972782280521363886265383804767739774623271869727907310236757222514841702658916676444982308189638228065550918386301506914837776014062044473239217156384996106026043990122117988833711275749036371785046406864412949702731065775419250148214113525298382305741823714095091804691546529595158370996282228844958265979326086667638088253400214123138281652248488923534021630883278852978388402201522114540345723444757016110830386980638951144234800652026562130716140534450325005234591394569807434275268403344638155005223323756765277533213891354103644085404100602648467839975762587242394488858375601050674296922062487263441967215649531980528673947665747215646452415856297911720856642391342930874338790823469053132440171644978812886988194888569168513016978671801753894368300134493391473769919823682069599601344076682566212787680958037406883862342653981386799513351597050567267122442795795821478781921917194755972605443068249348801850992103797396894081939927239809175039344613664463910230366064608693723340287617263058610765025869892218807881173225248134443366917531708426768327071832143522148306913011655582937357535494718763777259343153164574903874183788357949630991298879423575998706851314971213893819294860243067231793911432018188073467236460288401243561295771903030914717146809332580494570754143488588007587028277249612160054391189904787666641546976456921607625721329927263385655632652741855053717598650838329078868415940350593372558867638751052240902517829151594792089185916124611511598803053744790520921951535208501666342070997427053464263632945438938879067737467142440918994755454349973461374889500004805142600672938461024143971570167262274216490843602086281425216223807812843165762797927954209395129909599999491714507369233077914184980100554145203768701758833269512665499666315855141407997359687730518363458893119773048672446368998250862982772399272548074052993716642488666370848832739357164398493635837970985791037521123959322687003732614990682774741481463075656041626818876846763239763284559689955648127010703470284173706493220529168617040652353762229868906162675190273658703144552243001343499966335907842275262084085516154923584598325454445314209227822257379151288095134588651418224977075710265124852923339960843523420808360039002754884950363541932600254523987201822433483184027108901328318595858531909551860434758032051958521988940103365191640537370133082763515884305772055421514713437105667613289285992136823978079916388008017040385240526472151083103233080329601354255102468152560299010390070155741027419998083115124966143413000014574541778737784243350748359172941696423109752130437759765828842936145860858994401726370075423574823028305823409703287645295572005609983719534230207676574887633235453818811925246764656837772723248084985639914710243107723993971907928908596347397054959077909914667219200238413095173322235182505944528819840312603874149345400283813693668986491303113609354371672613009378889956613928470634795442311704533542051648812163953648983478285570481239000398218421236516111509939519059454182613531652583018623407835591681254719503177450670188992051856331626173671468129621252792151344176427232537948965510789438307102363192224528037578231898257989347569707154753158368020157304805581735657577100379500662179127736196517486703781483377490997762960963696779490679200750830699459878121074836511211137986313214017825316145785661754791306832061047968935243292048060413634651153372749499228602799376185405787557080401492028616409161630735690312830766102703484961235637822975079402159335654782667725674079221842338062127978621018389391349493891588390142014967254146558853534199975451434340259645026597160664998419629185717245126165880694702831945854711293598942607500157932608371750882465380031623505692824182859578780385163550116054794506987138778636362472876854278014089454132223819629052756522405052617584928464591312160648857544299774395672013761264021729549530777979569713861579756561741501245123201691523883096839934422916828044307754087523808777020746620924896446129836861004863894937234419129416669037333246668506241244660447499647329634072258166075940386555567766829256936219041193271248341065706296582398568801263712504977065084730156698197402445437450349306385654176079959556058981411557350266827883534321689626866351425616755913577604448358715722228664815868258929767089058193859730162530118205562436723464388129429511660674292236617494885068269451478892769129821985453105665397780270321970734514148529192264816409944232897861877411611375645008553144763537408439872183721978014142648134362583283990435600944582141781378853658763560971931830768484048081928253321239085518114046860252926967395072072038562409364466269112253863145168637220476843748355178476168300819726065086379313045353027579098019806309739649298748999683061426839140239485891333623822000379289483153530273757893127599477585508826396652919498614162548815991185838910565640940126793427532710499644074813705920162086956638880369025184657154274188855564081936139447901070362437846497611185621541723485217612159406304527982149810984806367821981886251261785247164391029708217252644057743250076969672649516009833409048779439732377811541794475323894661436094679467911834581955231836520501398088011339309003936817501793876215362506627160814674696728084740961331289588687440264321108613440217547513156873561574265357052542360325485699857160161486664098256564497195915844346154476116285053929328894194474491811357072087468287376282756024971115039649674627132896694158587381850237992405928421041235939674040040081765760403806222645134890746138428279283945723715413712560630959997637807975389604031396639531132929259694301008350742523189305621731432437899355145089301519218829477375045201152048818045144320654454540791423363549403895970969029108933770925491503609289157301469018705984870707820504783416702534867634180420429466571906227548512242985546846120735066751827220145581735945269417632877962272449191189211694220408188679795811210552191341835049449292432678650183313357179838009598715436580875493173666624044405487924698629320221463074309240288606201466885768546687769695112697232920957623575785657845341357746892235332438637440683732058431549679406823770963627783602180989480199089873862744640194693954958606000610318271176565462945944411806096050346354292237838546347147507751359302125977876867665793962948030389648035489716650843658092983062376330270211890773756214994697577930085343489598034313516737123437465528642740371145983232046374956647400777650371103705335964146980419347127239168892853531608491189097888091774275265182939260820073272312145873007213443849717513286464694044012286050699177817213842373216980980877447913964894654556866899655041461382398184047309626069767042659407977512543650473591976694395954106913775095827147017534412584404599038882291640555558915985466773300540047395746469037992783211314021816679679860623647607186646430837312010269973517961029025115334548350558754704854008822126295415212371341576653983879732020042942140505653779962452840925478960729905500526265018954650171080727515687863563820076455631331207394492433708369865590968469517830875804276457785605624896563979268563836166421461408178366715685842881738369453659974276495399583387872792593688621624644231950352369415865736169727069586315066584788963027175217404102673519800957301282853449114748207744221608020143280871688214897520997041551189348971212897148933546120306893009261808264452017708645346899614955867359714739938057342247070242897781952994897248394570912151818565257997882752438945519166209372309412161076138393492500995985054089260190899072117896018894685686406308070737111701683918011512134604045859860151562079677970165092148408453463568636114134564345858029613315233159620172656957513367705569336505541540620897028708238274068184140892534697420663564946303978204495550329370744412010548602649092180845767068970476383368469504548124150874878623882619167047146015293997928756288435354781241207946746573924225399102840462290148933200957685116679775487786970888305920423457967377779332542621217285308357303162903185888302487314266531725939949468120887619200514793542803188993743136808431183175988000735606290675657924396066433649678803976787104172569371276120642600740688632825104906118617427274546864125342496411976365680634187583168839258830947944473346059682653359416432857822801826386942218140200825697372600814800822532567324205107934678258145182157659768970061283970482669659120055552920459827329220963423342349872599574490067583396953635001537614428123680110879201650763953395358418562543199636428150425353369268434130953822202794302691304143196613940273276917203476565288289966918423827723678501812789748387841705818344920917129881734094712556068943639582996197536904023676271013538858712260592726294256458296976807187887691288979334232910544549583037607260912423698200444414824279386458622307875194414446161984976829581827418049726396233961483951980304827737937756092261284044655359720165010654296965402439634963426252901679653792165116050886899356689096618364913414165699842362451069415225127730473847054043058864086150248012108891413388393415281045635824702897230194761243799082483224849335778609197273076228734831057309397586385331280736570061606925884011256966829400393522173950229813956686004365301763581163083291020654275936882562658828316240349119644069629018219127891848877187470756461195694367358258261375859185178989235996376758672080640579790379310736355088108650047450051060687144410188410954586777173297494491318162392331338138560248229182352351899038324170714541323386695396587901935284403074252026979054637860217638487534296797734984448402728143773428968231386015801598495556850034893375299324297774201241479809464838515374738477723673061133854821799294187857785343694019133619395224864083644592684818152953282132756014142257190901444973270639812321251118620649658921295848283124329230653764639937788504278903640897408586482279315696376195307012135456357257264976381854154012790889055193741998376780376906448023209631305642812521484190280007768435151909237232523766640648449748990333511934890885403604634124109778419780143253959535516514066741297067538017641581325037231397176602591905853321377190024270123152658374034971956833064502010350840959298365161629397834044064579879822162446830665384838308079538051323543403997687535736248731241670486750516514441272414217467181058047697047732724213332158464802089816305812363167279176581026360512355071165149774735075943712985687330573302208178418228196502013112426436792120957198179881484885082928996824658997445681674908005217133020280888435487326682633344882756502567207249047461022319737315078898767372316128016050047938539603386197537297620616006616242372536337292670647563672500755882132407313767079489114456162287188155160952795717034345825104502826917350950096949892230088051902207023879266993640225635671929499055351402939696923964907582104018041961082105640639955910758481935514574954644149390627482154264519199086602863844554318265805523117635489758252832630249808719277316611911828251226906005723847022998362225981058060699178483655123727459901606658983065794351425675520647410968286900487068347418772106491904786170892900194593211404754748674355322896396222375464861937388782681366721146777866782934583586470277124682676820148441038221872268878596669683950259851898178646785831154904310518957236608781566118356744890830875491688321817827696654421213899041207332252027125876622276497805153219453424837708423294290002505891429239642436133603147444337900111612711969607239338790835620010281001342282471711980613787999046175563123216766449336410442173705972685810966830094447377362400402295093843701372087967403533439292027424842195814131361188797839603176552326798909725102875948387579452024672593509147882768535952020780442005581230071384244050081268150327455323221349423316161080677440606712615439546791867153187015213965658487511492971542656661426015994091083143156825623330501380593990475773497642893137211823006425013798766983322035147116499953033468627531688337628109503377798320555739606187164113734271823646962868967638598152470583297834852548985171209674509417731231609014242419095776231207883568284494352405747032716396525613726200906346609670951757006918251295985011816065233769625983767610996975304605996307558049145540594959501647566222108455026275356450849305060773887902420358052299607056596961017868212134589826711879602423149676696958104365827350636998156775119204369049973795079244421368123041989341039876583140248230943506240128784815343871813395313922863719597102621568683878040697435826832204474405922369466915340445448262826148148153189508218235701500095899054129132828686209179972382379369196419064454084154604367064505685975359355106033046211115595770658877902884880563364614566202496467443100687795097247559987954137807537731273260598962651961326694059931083231730955803810530247879925575178072083698328225097701374736366998544317509385532253913264732228941027269789093500314850729816277450960252593343524775776803249029829398591401567165863878551468547162690883610724200708773683179483372243353904033756885815551308901090321936914920839577945069679581705243224245510494675961518517676554190042006124222748098364879235523773886434238019671743589842194201351475130145130244584176569864561109737787655200901602309270907573706235819312524351629950230587078838190022275957625331272318768945557576969271989559353658667790412602445987014169572422568357575622985181464053189847252108522014666570194147163791246637589157007182913275819535522044861261813755336563249893026465555908468167769141637337689156760335084958371501489911464612750459845744946714533106094732203243899969609548529707893064363552762497449558961375096471950196965528880414530155089910112502610894561220955655462790107886446236081527100388522090965689518884338251716826256074864802053488931524068469688032217349407392625488503324811576558304870765262770921272140770232883614863811083057284476648301611278271674610019275870144873288203363112738126289993640256886414095645723115406237501402638092565114682000188212139176379879815539337024794662303609406354800467305673682691798767419327313992827513114057889702569060087166435426050383981362306538911213907929880109989042388386175992824848343064260420279653417880602731304958545372910980141884952738253122229344134488237125782476617429616883443613331840230145186248861270140097703545160407372242269162182576346650705498626278511517203891274992797712586009171527511043907020718082062776970345336562001461262656243404796267962176407543336081659613349809642390386985116133910062402459310010955242910964890336287083237302908911577832925555930715721956606332473484349115791262332864654095983243404885176508163364266267031445071506183510966078882272384596724782158809319336111721769003015352604775565797656166838383784440388302299762273410696470241190853540304472112602149882940974209523276304405197083427925636971122534904210693934218823155253678544856660872429976619013891136550534624079452496714334022279578214300996796433871971987218757525111276695506128018336120580739974746794030153547655519720378134533711237255348219117661732857163163951828021857384440090098524000884165475267211166653042917402871371073511082492309639766989027986733911414610500104775975289187525161082135616640667668591026869226237086081428605376746391436267324278780329610089946024773788812304238040243729891383007655782657033520948255664549468153712956803787990745723304630624976051197134473303324749348380630166342482810898523692769129749313889153959897233372311793527334444148545224395040888784480744150239065831197054499851640064070110303499644218395029644267061193187318630869935064320450425174129556235056370823688544055827229864575720642450124801325256313304583684636799637843649948485779138706762510193639924485255006438817011288019812417298133999685581940661258804373597814491990318048705393202626351896750643350082459035888122884571397372103621265220349721411662762013497482048812501753988694431860053698234605683293336568468559593726126148389438580403284965664538245295012027111687428948228138842054093676311226804159570826286625061571022282442849341384267219302595483865026144742930448440231712546478981686982371908150143229909505287903391137608547607859121932965385890271408243267538435587032579564161596635213502128687173515492305916007709326220323895528584721084628076949344196529104802354134687155027395731822460963178986945100648957317793463463652255080351384764809101082990382353917547431179209786082668928205411613664908058191980233598021937651427541354478024163344472392692806155725257265221243453662708992138122921686280546284625219477350206255507072895495459838417281710565723551543679228666229055014621290866970522787370872816319441638815914013804516800297599374815904113988632796316861785217337646784396200943523922470564667354502635961956467368494235493441622012101447462505076323277161457617014219972457599853431723353989261482342929489258801770508966543039254508266788767369757408802519058726740821113187199548504629164039838760189961750782668896405019403150965185968000510012895085931758103232983132137887641359991450031170766475464963159101111402038475847604880669798324884495250945196477843780115589465085456974499845407231818063624038177523430291565850854517200305470728780788355391096996957290486996684313252874173971837976605700787958748479417545785163501945771567146185031608007952314117959412298294778199111260096229917658841986726849909234533304117619184680314651373130026660951970320364309438274692531013444167023106243684994262624212116819498172301413896153765827330799539954861959140231996007866951366806562269474662214268901163373355192736758766921318679772628653538874442833876492606788041300072181463489413192134444662479283637439371350753223741526453971017130832023684673049186469910202756365347380277679376279298950054122565121888462708065557016184660814079859794298187551686372838679577461602694868036305016108687080028087809774225628529131757219058233078930661258479347079300065377160793089071688917975623077811739331180951531695605772148435100961880363471539938939521322523684063663120632062689377528736268026740858827489502998955993294769313054375555114868799393217874497205164317582278110116914850608109099650924120010467980394542837722194689000313294663594504552770569321653260455957779160006216817038127849516673492531612043890106450557829541429681280623814639477230246200571935021947785802085878071491668680760329901699154356297526696254834321811892592354686025003120552707873648286635729037446684000861319921874353589623735619248690419919726605490363056515644885813171491153412562259904092997270183541593014410146283710808211644560208256066431914751263600331404753462586695350998297598781247155968074725917837558115596321181165610303835434081430013033584321463827501090619144540806864266529972206308045147790113525505509790373431612511261875987064464341086153657589602140302515219557134143165109748718353414515326878928274030313023489590225913842395539034190166643475867736037420944739187487874442122233066027628632581830113876534840080408903069627224444584708044339126670106748926967243408588992313378903686632026120119704142953398998952463489661220065457795140417819468656570144997088682848007265455279940641254712421419397498229111313536225757940190184899461602483237197536513958617380819000267848979180211624234308650873689313180719993356469899914807843240677421189106950399061984241054541262110152170354969912129085971142682825176804876861064714875281068324315501643255994053566062669873752770524173791194201157472184247120055340494268444967046805888713444013380373006260662260283247844345836430302078584546334497639900706578662902675470608849069762059460001479888971139997025675386828489506538586732019059019739325644302130634697176320258858119435752805621263131147204497798240131995369958643319996691103576569761697077321199951014091086308166926127530383595744053870981537723399519975369564848294147204084093514861897930863056707217313261414342614370535805365938103063235529114784242358066404552572295283500765834722727469600155810487191275068474178230084378063636345411882314954286262601758986287581155452654148104537146317491427541418774994234172966963159848320291575051507083737400651082458916459590078607236279011546903263078091382975749385147791252520435707662802940795933681405903744420659941856195324295185165055330392614954341709881107475872627225563822655582102891970533691848302559714875232593433847632162393698902214578559844256251642720673015393851771029907899619071359558624099635424822388931961153146666067742169669508711793557408697347533128869530323646902123937293282278020832639317187576790085191826383977141875987503913713269262590579110467586436340282832938038600983148666398229525769318035632351813652399382520263995637231211151849743555394111482774259801129143852233576319631465256524599334705754928512832598196445037567291959592093140260045775435472945451023033964652963882708091089862657891768422192546740469773566242792181832837844589777580177847403927721177534679931328158042173183434126207485642766480384962081784834655417526838540418827904425426215780790618975319445265067761074478918391573800870781749265635011444079129598313500574853063124517000188937450850223133111660549047635382481002917691342284571705044994593196982200313454427043208985381287398645946348586883904105752670550661013532600267852091182946412385544357576280730666186439350218457983091665469416864472790437075178325955889042168957174497743937562868995842073572971547649429526393342494759041946598092542005736208809411471820294761987859962042946255936447625646645732652938245735540426490029373584321397315886825191813790770374982716923226012327017791995515409467534246901740189346977945484402759358131567370265546172278521522076591353947102725613776573945740918549236445136353334971520195869717656246918560591477236410528653704920211891378881897234461738920650722583208573733018548824958411551251227348872936976231744161237227809589388064876776374910042605624245331871456623009239861943289911852357604176845768505804369495276766425641832336924642126842845198944945853560441781003406931660703716836028988596811557757814509250704926974548747762428420642172086357933859001399543700585289613548211904954362132233268164822267490692188447973189738225157658074625563670561927949247129598217974322343840224384527640761416672602915775053353373452313104132560342947036030740369885501638681459821534325781040823511661057239184969944099122718166688971980728320434508890126417743888929512054756246027625705233407796956944345423204577626620511937810776231196987246437224275938034847556747365365239259330191403769598857025657226281347046768333528134870001300087478989949759769447169437634771127783097621605484365421310760737054811307502493435360483436527723576090129659067193868313780334082660742334417342570083883236956308619354242767893558244516614947957747904670635095058668425480462488260588988359763091920819366317787988760320826636664736592772580743690850277619962144537704152507989021598488856080826446877262499703294373653916926467223401262757037571429690321044865711161222258081273208224274794956332568885326009815176662080256480718482616570943824254243512868112890578603189960255646929534426539699066045359696134351005299608502684918321360064373715605366955111538612385552315103833393384861509857297016964399089789425946191769954700988160482783391799713679984833951418433665718279962466897355130394545872305199044031192997076733971016260553164820893344085324899285049852783020249633800321253036488069987326833474750343436925015234236819707830017266642919546797233585314454978048103716908352913152849844350395971885392758915029713309216776729641817309217360673598412591172460378090119743226809671333031979148759920608311803531903446785843439944454164099411431059752239615994110329185991974067491419691755786142657354753027608585807686564014064021207688606427088075876305524092235642797738993382384150254569850318683649838115461236585464796568434122428179946282934769951332647734337901747277922434786283138324251576586036273920963614744168505456566907807430148303920861493461829078865238780349892321717212904331279966544346665799190538943623664249477139304139653205104688242541762715593739553591415435994911052547119898604879415841252353489893464453592570117612487940452800666487175809636061246032715958539973851611584280217315187828203174485056363799825932726969961551397514661631056847316150674678111302661508100048996676843331511329315105618155487135409168200858914849290418314118596801238021465304501808126702142245968628702589844605331819975421848125996743335933317559492291860862936469700579532299306762704744358311089733008662782283687260634784382702217680377575285314544831443260054159492502564156479381708241922849625851089314071798998663085236485485131860720967865903294305814716383057939168097910706845469177630026557923279707825287120778055613464069744282604461444647431024646850617843957092914918750905309441289077010634833542176077532948223158950054752025985896680665877646421005462390241312149420767161306461218463658313705931012274694062876314765204430033189384615906808994203136472734996939216789780621886153023109189022512939288055208064933456981197137665209784852549791586639785505327562805373925519358771673475805422604171922713798368901504068776457821962140343715054902815593859718522360581691463973047765289711797224025737029699499757715905049061913843605545749113972870722250679818400322475148527763878577772478888132527952517516610481567709534132392349893221474604471842382854294821787422719919001574844493034745785914243395646939688674332144120504150499755805657107180027599210038672335902042244078295954674614829419266090917963906279416502439253077102396462567606679892464471868694393351827848674495551292232023642441633925364440583877226988481924959009120155982898804873361864688008643105256735916124590537335832432861253259796185338301248597953866564234726856413834263445487161104998352807677254020025620829287518119687176826061857296999673804394320547191333121539843942138065687905564859581382905398811845155224519596195015504410852029141900343609594012151987324145048777280967582437191249859437784972934034112801342833747030337844781217673795336504830254311756805513897936045941358146889774859980042558543729589119696789577170739560345419288882801528713642903848851799255363611195135536023999855837613002578204348441935591841510786587195265925189322989086742523511703226549408995935581097208070015954186886851257030959936029508787538300945394449300298607528278322757943160415823643368352622377901079449786371138399994920552059463276733764625732762230861884938225978013361741381280359476524400600242953495708324740069116348462681126828153080191761044357293241691225748373126111307529836585422281793164114757747980339458016384764623105330630524100489429370750244415159670049959812704560612188346748014812670706535539034755649969821702173353089606474526884540758319886347256457315658464030719398759587129222787690770714458000925870940909426582496465700030411409346164635243884545707972916833136431031087572522408479094018079790062903628991706098737057128465625146916419461267480988754192569061307764922588581710176233539303694535628269620108001474648432107391984097944366368406898250462195121445144265465760404192017898188728622352110834256665306369361174376248429604095330467638227311691057702454067937115471214438710255921968302393381031301715591538747078249213669574899862417568583956361253207750214063397730708282411975172963512005351613444386923277878446196527897638849644825169558376574511676017822538799639856261441792820549719704278347440655009838642403162673936719716087563923326561682012337797899081426339507856982732355943484106630686364268109249046974197861166688612299440159329786117060610777259320697025137426119204655616254393963600601265177069703109580505648861525135352507857150944810935781980101565243998259796568910556313445822624142247643313132619900741892800104336232623089962466673265343100085558626889872921252448948168860818760967211961918373581353302924472070035992323646312654992208101617483618584142232495488250693773277824616238738546657816974588121434137658158117385783828463383634460420569422172810220673129568167424886202659376867994480273719211901347423825955904748457267625497910779239423016121495729614479216538565554530334188258655402177005228188863509898181603860393760204295283917795259138416363924375779415915037427828392339411802563965341168706698499830239247069034214682036555778920306331055546766852668496467721889879754903116157040678229476737377101901299475964813501868956208213870104860549454183959197975104218835964761426549018586733917426377421358617939137539972947158277969175062805178643484433989921732534051392200712093095504341700298206746369601699622366691236417975284609043841004022375573225866843891888453631689371506396209259080210589002228016827186701940054161441856023107820086439704870584364147250948501337983022898182878012592429648907311423981082313372774072681554234272030587205835146514624677977109557849092604765420227639232570915650214503985585656171503401701722582306691795743094989818735612389686435099210518467051334383003965292757150656167049114609187165692433695135236720458984184950494358539593830779491561771438769549651486382932285810987098589285313677803514742277280621434855913423323535741804508360763742393008759635112971654553448439226490963387725560174019109638640351800450413691328915699511629151747961296861682181417709999101516384130428987291181602701982647142054121625413155212804317311991567587279410867024571496844424488506370552440048019973288697392111233183669222257907568682151811051024177624431877036701396599357722390498815371810014969518634906653177416320100042246902225818103372594727217100705034404400137834847477197504487536800650803739962200793953675428000006985460937627885158540552738819440251149149350495094720388384624851179218355647417415642350111128122484904216292602945341707056282225926642599884778621456967438519469952891165579345202659618947779320944301090594293805060071447823258936273085104622344970789631570106637524384441370374363474051390557199247931861927902808830560673152566436447685045120473932941324480625506985288556368965402801214461920072181461634890606810794187535047150501094046892700843486807876665567987757009058291222920698156026494287302111834749959316943672107351643197770259516242062579598700526451003942240058048252469605084514588305000447918367148932642156315198540184329382972546104940656228355760366107625497592351399831995359735741234445852169643328820886673194793934561819742565509528843622547212815983789874665052677991966098451529042765452525501058451092817587636564478368370710298205275974494464011458766277265963810597100885888965423775871872590935737813834216156525906925093148708363516930930335876861273944228523082803834572945621483914549535565712666956807240998237830683163364297836911641655361826043452531694061857170607478868220405952054135996489840152016622600523976359117402920862559468167858192065478545739668298175398845482234534928622681014117181132600813686667746998799931494391901112897778545011234053292789881804188801883358286409632626924834938223705143260681154600527441311479696803384532600581564394185172937056695026199971329073604811703478523573238853812698832841261465127626005600554893009380164945569969654034449394583733482782918580090632836520805721339423462795011777399448226942037529237877076714837564122881417772830685305837722183768082421874088933086394480262722221933595524310448935979879522993183396205838308410006707669482448914240020450044755190453075063795027979710019838164918517159119419149958517632793950719080232586243686700042243593646561857883214963160067832088391156793296147387068883093231093332496952761568138918884021818027439198393325548304542726563474250683036706735169314570162389558436967846647210822019511169331987905299318505812495562931050617054752884841979476372241192154435158580419918081636859360845138140863970973645819655041750524539192500442181863482344055344503589182632592249930119018798524234504434320708238064769107215303496248304233078071485053161833261713891451361562999516152492778839986174163694326243960443927538096491566164035557456640592263593648285098032396981304384891310721284623963475937007075559821615074186456786595385960630551993155880553871164382442221699984533593085208833543178262917859114754751901486313945066614554142851180044137904797299778913112066842318205619028176113176093283649793531145713981225455311364526142693948061693866257533319419141211702316682076555024984774298173949049196438836962668796646362054554091432480480562284556713941846291538755442365663271652806817998971520049155824305686885427076492489835794764401736059199912227078831731326724419812226972697696053565626572340333953479206047332653295485802228503103380836408293810756432948466555716439072480342963531654682229400675398408446861010375929399558517202619555202037556742808175570341037606208714596082157797031491840718582628473178346668384891091233831213447865269823820007758443966697616883474387604794304686056883708889735267845765151973602111684737975631230267444102655513024057372738108026664609192704465824416587076850416823924326479053192591454623436833072054520247928668381773493870471094123287857404561022852946505404627914803437068884131760475167117401030064846138184508908521313961827984508772655584564330399869314937990260931061039329328045867073685055105469413834436871917329008171010707317122263565732238266437010572473294789357080417556804140164723049902594812532656027174618696000808032020914753902846318078943671194787140252773308791822680436861678042960742447295405808530765611501320087794872793188764833223832012888704377694263283185296111975467988359403002271920552954323164486539419708022810885217150725887204650041122518803717545743997378921716866665739417187423247394474457139611711721785324162057789602632249001590698312176154287680001692262201391518830232591766098687258379076937093640082188522133553397667126395509150919931898359755572792070400505489004924865792376798182790198782318921138517134858281371103939019192276004753378678707482793630013072496163627533210407859921981515615865699539014925279070850284028360338167525169516050664036022333544647341010602433854079058723843267783413985741188297467388348628974992938263493842395847378476157911058145511896072657748124269209386505685233857017880233444204182123248091387019619312119392181108540111212169860400187801230354603301684455579969008870281849799733732374410493163873905028164634472767259413569715561009602069420721259854013199099508546509316766129101438394894968993348776771864925693140170837671983092384646391410055515372443909767847600999672278011123408549837862374948821617266374775424920608876330300859460005327698174608326172049228414364562724531099151167305468519080514684278119863249337295027241191186509225866958299842166639859422409921789106701566602177608652595785895604246611095835131853437418153619934564007851386743183171250033965543120911875813938644455910735467210645302374487229680732962343834025826229165756513762362545625500375891358931500840079539009989860141737770112324299829424814688164612417950961755771060127453570116958443639767696986093278360559014145573262878212018119075827410423204474718771872829297644384709934127724480758487432178377255793950885408487148267881214837321788249965792760889203651258983533962997900022899265057357913191429808447254373381548555055702721913153890526086636166405754015735834539617580091449364977247988955829390857139913751322850662336021812449324055017525571740404622205972491651232734291153095780390249644354928567185524748870863221722812893894803468337699502274987218023645523986918391057134656470285145425225467712765594201444021126329985265252179846991005713893402274350627062947524104960934688670508175565568826155394259368857122250658364607019695506840991104752128095284026545324764421155839274619933148644556817233745905198941274627541197888359670599122927578475130780012847053091055430270315349020914404788506330633078106940512624687277270774970329848573712913014152102102446621209649936024031387901515021341991415228350004478365307772721963365494556344485119508714239376365440359131475409643622257975714131060004796913023845165902323055170855950594159185711767469223325306233186081735882952963379651647725169061607771389029290837244679999368431140630924623808262440755712515945010694734458322221121974952580878204656119797395109276072960544233051246007682084617139697921295582639256382775591195265129623530602090596149545524491884922282095175699559281839907826160543573708067212642134089987363497715219357880307242414035349115843337115247214936789728943459233604783499902314049932848044999747894872584202969328438006570713419253209319927029097601583151355235339535373251307214792513655722778617605577730158030097545344724232758497025869638528145183430117904547273386951911354651326957441231147835849015687167499942296917039553859988879319756949280799839950291007402794639704426001836886744836699908543096018563633985755817314883317948903856664849844023886418727143484420469257162953560252307216726310587840469241173349210511571682155206686554620223692853743843179181296213471978222834860289619560222354936242149044852503057733733563456424784291632652024698912094704746857440981182582083462306850736446620408625779744867779111035590089014031821260830108359970046754247259554588288776821605456353677315864869171731288103135829578153289943216461937476147159027007851001330297508120769241868456934534547760631341351650054644076898953942231569364127332300014663132946513353481631644314630093360986735139705220502507062519935846796399503049197668498628229440012653840403407843703415467393884893115579048967973910653052486118431238016561129267760557677294289949050409428053633635011645669587938097078139658477149641177219576949540199081528697788180399792631100161855052203065215163645259198407362600303708547211298006365184608866421229672668761914122099416218410132727507278223454276474123573512388730382289960391120934331273499536503094636426383130172580565776589410083199752607628001450511207132380797023101345130460048211041476561403754666718249446559940933038603911041311409397511214457569741614552069332939010539800641422966383118482700640893109987387241775557576277343887931227180666490027488250950804891302169534859194029081499731592866053748061124295603909502898529778947755543860043353035818427766462851756418587511259663807687438670604889925743793553136208253351309530781270177626880434422782830212141913176966143116797485738383899624086473921024442242652728320973885836846870207469554999640864892143036970255664629954037434769684987101807474398926236958682033007450662218872212356186270653650992326458867432569060821868009183566538904274183819170916937775407233178189377882859391742344877151588120433709712063089212725120667177740360169393125315427663783102391745319638448968843233261060494052865778647068930885061751991288527609850253004937241367265339821279586666579381801689622019360292082765731346915521191125467088960809203079495990054416069321324088004972073281069729631393536780993631562480523659729223057540996765428153572695013924503167373393756414783770480761565179992908706227354296721172446173955241095436326988743212787724524942881383082435361688178204007477526448435531867917156710911276201487381089420131089759479916250991076379153900936823276825161747663189351432089009358407422416122904355424573192355620839290793791276011906357506144260332168839168891310765113464710338895592823358415573781488803474284640168889298949204011874315020173201950858161839490831126339360832309898373650211962229261062384381430735074546301862170045593211723917835157000940172790442436956504220057622764706632353057601708960508155047044678609563477067443174039751243861359308992601439291442916924900903010503356999588385519033752571934003318533539995328975712980996451990107996988498519742695758634553844926281655337934917849446053876072122338724276758785395750873907849972535738279482899860844017831023164520092650530562414167548812721890250650456772804798388456088825407089633951514459331441800880836881050520828692835756424110396004639952315216484807231396639034802697276440637011035453244386429578260877926633835828837544747010784592215445936638098078536711505854099379857741873444096057928504407967047729425314961888912783511106375908995415108155624390987675993004807026342026888970610157535312461708253152684285622215791558494721617795619721853707378439621594091090819129108410707593254358423467063584679090798544730183412182252803507492843575925784612085937454824831834491529895513197393642535672702340158479072232567689732017321146392789719416677074334700129683144962439962406238114713415987517496829188742244297859001903605848199756093092463020617165678325050324384873892329728269074211851191061407310394701945294160662275014386111743551988635259498580460876838186586952860782764604784204798741908019182524903456921237178692049246646800911406925634990117784477413116554791486948583025006748153302321591848762426022743563664149255142787278872431732329938306643128746813314974363968088787492335535554713869917275222581590769036987576654711648672019397811296359874681762953535155551974215675089815492719515737992052646760392559131138665148790983170362672663413233764486608281964063338644471457454534237063199267667242464522910378613546849028578294373899610495803884402463158787398380837503918041901038776878134714178520802595924408948606565465870339885219635800449628704982498428949907628036551634475856122279508586802764503841846592723917991049970974140654033778749089934655349777614809412429154809715394142968174742892617182342811850786219361117466083581777068393897097134649399232182427616353538770483572984583151205966864706020258375853661301283382901040843278418212090118663943658492784362533756105690527179273179289598452313787390808282339210308725238837827210093629369642330809973324763902351109026661178284805936259152561817391140893405954511530140181325776924506655044371639161103512107951439727216396558985274189283425993887404146711418387236521087804222494722442885927481186990615342789743690624722078422509486120889185372364583245208665250598665480819868528266211682342503697257569953619710177231416083047685999450526854235366006510637069797246661927430007058030320201650758121632723115057110715935951084807685113491632103070894980491827071581974285494866141628671670141216308049836494193542209464202348823881769386530004550619699243278643537665026975972164394106840282395392602904057150558848125162864920183175348537551758012094251185882204495435242730758752304599346888190670019327679146814456494391512002017674453242921669653852175609328455241161887052238049063248805064148106165109284114589986505975593640898800621897391942380169000222739550425107802463874272541512206461154120561342248473860394731059498225101655929162893866959801459861189260287324177619001860536880621971636319646629260201980094390606066461298107415999286148434008678165273008444135426995783654975322021701020392830165580922144064304600633130776828762394322195851948440451569334235893286036302412210169268212325939696887029455103722902781092112609729758236382867849064093243587291693458557480705482095315157424908383753859407155121754848739480372015220555496006074811714445603651435922822311252783846188565749935140661242364425545146211578684202506243358729224294025426994584045381281927886835081984351924435774471589978656847316216609617003010436919793513836048181239548165655036852169710819625158191631172738333772218794983584211797603631013861624328599195799197972937306487866587014074048478354196951696577782781920874130456136427933074113269429672159349317291699805219183437686524883132067450745002200694285351385365893353013664850013140382025601063518208265549184343570784125601272439006547294985545123923051239463346846100388471366864285716115385329941082467018486027325776941561251591037682389467508414448867590926808290821355037566771009554977554958719953246483287488099433165027220117494548298555570146229185541426270001715242429887503512313353306067748958866268684233542793785837009639425858088108931587389935098810767339112017512195304669348053223565506535769819803934790090571863189642672882445473320563521196370239349965409954845049442254864441791207700332593963033585092796598596398981107822259736848871755394751142714421693421417675233742543166719540412132482025044959125949241975562186162132652643854168354677877007937909244529525628663829443322277504889966223563029933272067302947975759671821722277187016241066951129028674843923043378922275041641913579509614544398955309527210683524943457524816912235373784108620264587366895203855591493735384604767098727148194726137630899445535115484423026966026534016901911252266208596038846426488426155546389823640279516416107309853748107272218547434288162982910313795269608808612419676195934647568826341142773917986380266504030003424805244589814649540191241304404995763650958028091800926878563125547381564562191410689068683504737713772390619539387212030680956869408534640764075965321881384125774744167477484636778906524207228695500558303295754766072035835578555706373122059897784713079202731357914209797211825792218432456950333583372315575670808800797018881738149572521819030155186023256594582516485888466729975837586288918802610765084138739663173481153418867786740941395057439097811348033595283324860218967433907354485393389457375618468354765746768547313027100295369519230496006777173895670313885299141335131373916129672254693393574599828052917329918606251258498940134492479635592629865869557550914137765364380966502328626603767661105880958947373517531606287654469830582273954949373045240368013676309221564461685144903592821057426407049003393706960843491919033359615741059185398610983855787290410559813443562511889134165968238096814002652839365659498988511543638843686036641790600476427488011684173845055386498330275993324938183317155586516848363446084881214903134253671974529715821506261635595769835381311037874559739067864306155257204951995933228965933164352131425273965475599634888150628338825824095839996800829324760547336674259622825852538688537727661473824758632830256308872674239278651948589584185802768840966234337388332593783749641483334038162263217762902436258813562725241619019303741304502892412975346015408897036562088313052259945296981565894737927101218911632469457172408352724748159770023573287794686181123626662698716969606649991041734623379153731696200098688878042753181192993265638010992010631320658860772181387774334419724163715297766973729197596423047663881976653874395576717990071133191944690627518059674383544564652667833177030371134415620540150090964053201337409151445162843349087133118841167312462571782075754747822300052997598710985066252530643942953638500476994481575125282081898692664022181565110842272420631318596442267167300376277038354668582699447138598927088908860212655472531375989020335914994593389375084430320724757510158871413420128669821170354653113355241698809955532835032775960996601906191179285399851163153088631296960284498573850968588169597884989837082549986177857107380749403126922304461407755006160531443844838947278660343855183909314168016197085268327317541960596561742678635887934403178653540991036175425567275948904314444571727748031003487867794671189222572193545630497066283249453610311907447295951288136008153830836818286975502352386601122642738218316332663522356876427248314836750896742598094880496926326462425455641990324254563358145063658805064676683420490788337224578219186184399240220682598467532410293042285299171501207152482529095390291886233758349563515659160959989954044205878613185304744628948175785210927952680529582169700910952872553881219011557133763558450333860498417868745791318843504038484296890513947728303403346273363293147661035143044735688722386806366676911998428765361574249464274216496521838199991351138154218638453561562975935214031664965023822873857616520441270262675596875126170148074191854485732955085890354845872772240428873063855769264046359429495738316940701252156579050297780755972426671674123524709954817800447852713810583592109197683610168237523897970614176235417848132304352234790089616734269672671031620968920577021999080235273488306318164874869968144288781929231634604337528114818767718271928305621879373730233553978528106893599004001756776026194575074880035440853787437320017925761808963061203877203980255770323076012390767886683452626145806684292405543626067987153665963363903040646994485416695040036912968633827339813238173928655142681202593100992478319081371773217432958352288355092017602841863365037766114338201315077350578207406779513406442221020085974203145990616619277152616462363538310996588066744257309229684526504793874650520807382384815555220603494610714099050032972206299871924853159494975608564092981103719270252426767404267339468018109896441177441726460277457134250251256763340541684781980131690925958819260500111381789433841461298363879433053208700949702628766085409522690583845284667214497665146801573372604359578898633030213352144731931926396354755129302733201614615717217707166249907977924813996069696773070494064835450202019390589769014266537484845817199598983571284436293150487193054001410084239894618987636927477618256891773429980403270681991484158572938355077256429208129017380671869709427945685662735806689990800788126520791485322311063034703828340817957530921131253164346582662060850233480551830462608381073556799091806991261311824409848485178222075660592079394790593851046579326082769938074256276034980238003656302389654301172272541907967575577091982591529852242439112452817234595620756366315793448214744886698143765161640938907190842825147630876052895767647797531378401570722383577127183473611258687786014122947994367724782645997021207451147750825393091422523822986265617515066564798034321264544552898840736103551413077436940548420589563041466227823146159575364633281159380671080178151254872247617983067129047968298011713221089237370066563747256281801711839819934871642669706242245928971709370793066495051679421945652693535208080314710180420337610394577874352540693879097121295768952258979246303967969319503950707391482122962138302725128516246024044635602295474235068123815623840894642857164099447157812503327664411534760069057597884477754816393499769662985094194865336792688086095663967454099180899006056803847218231760743039110631845585267014161018261977381614561750359839710487214897214395092220250540254995559987122310102295683361603311739669164863954918951068012463231907861978504972218916250008625760528796340785094796447482127831406421320417459006874650537150926535286231648930707829637651815423229223932090739511329171504676224734436112064416912450050844881084456057785712584316208890907490288842337888772732861784462220642534008130036617094263611875959218789028943354143730033238964613457153461728479236283630453366274364589120520463449966672331749492856648983998558736736128785276115201124445656508315118545680781432529131344638734426145204646387557413492170260568923556448100765939766864549858273985859972571770286124457892852915422501497016247159217893760321123531301930653773022071512199120225986957775696519914908311171679242954918127598292529389695129994404866752578693941850378493145544503710882523001875559480283359502818918030094141813910922424937165491171099658006351400982453054919122756383148392738710413334675582641086922874714614253690515491435803417149807577730292865034680827920583943139145216655084384965558855624578164199779031421925142761708279764815659486505587795368598386171395967538130887448241424629007181279324613302501663217582421148629750080971296879833921552302664335092041243790577242342332183300889916493488943753460756411992284805064208129914945602986833065856025032233470286370978777319365669679224410914563111082876533860111459734525921094398872776038093754505128156544050728118918095556397255626731402589231814486908159675173943132916642374125804746445237340925388814929345559347164490258246869183745406630511010608749701709754502476113433314246013667770938557546555603377382178689821543169254916686484175945586114484722235961128916115463204397225494405689059710967019928333128149932482355033886473952727685226542087806480179075641798592652675406732230829378329120694661058045769674438148229664267338342978887721298904059428271332063751251671516784499802647514657283454338228137098979393550987113228045791185843599955579850749680943954248093959358160282396518552252096748236100916620829556509146149825597562266680778035029335506125590258230738590598046846386607799141141303796605633096574727013837523121147304791841296630177200432501864285834406685732917732965674514175162253361074609524827537217948960179440186036274325085851513485458360944002378755398610353668059002019634388187211271041769217492420796580647438346056453053066431054237210918385606536454955885345269376309720987582570621618852900107370526784661706213958190445928006849408917546108181418328460229461913351568212292455084586109446772197918064424479768565887350274185260160043072647602949146109512277121594395609716218511907965812445405132646966724528042674814430314011317581174800899907365618272998530093466087220602375127289109604001286619783914826534919625745023526048761868831174185665623824975928908170440832586623479920521342118270956345244720978302953738126885240261718345066799902266228804933036724565562084814451231231090258652794033960445180758415194368000691120771113404701699150893028772925690521057111184311475172915460797321809861989803281807851704710477427983609245737908199418553513420932928346501014997234119747910409354396733036629502572497497358510191632864902601707864556022654764770412520407673835122981946048534491065634157266532489029300923159297718698725679709086021945462535315494605754257135217091168506905883438202365770501413067040912232465199937582753843695179885901360406640109361988294662561340724893595512331797076893343796980548132423617143476522436372090439977091283807669736415579027280150581510739217594518678869091277671957425060774066719680655511302757248001742749706822087082434217293090127319232801789707932032780278924301330146775574378552311847899731827892399013165001882967150907307080449588548431161177793006867866120774829238010203557130119507484970085656920848891462887147831143548350582730944068954145944075879234723449523421606560725171774250240998957254374914050383523260385483943394859220517912296040892025726434239317438958396854708223443325246144783433370862127883490861028681644767699216125381228091068544399395876274832084825444670588765159932452800333604986906622789056409322714402497046256012610522799869920323002344596295641162376094838248358509096037224816295622233463069033529980594826865615198773206485814190779611801322315378056827352022566088122005164568744345831461835088574431551978909047057215321404734145536452454032398171150466607775228977876164374990063824231666245406646895097304539944551278970091559381626325482661865553106505099516913353908467795999979739367051424857634426384338362442309454092371060791787492809821805385418717240942717958569596506092650776113316998843319000761296733677096168269302257190732928455523508651935362562204943741433322072033348343167678917944880424673197022913477255305531724006840809192979840320528776101648002494400289191843518645517094134071245978934803458641964205057973152750908910246969335266311648277098183418929784851460057579259450872971550979797714887453006234057337345485641046790449874883654063792756811038249565431721625648971079502445002290765357425180525631721306973853844495956704841494958499185395452977324549555911593628570449399486828989450839013126966326186321820058710227052725374504883578920940825814028354860170172394483765334560028327832368873652442868602679603601782191075772393920571928706714417217637302332144387424903690674597437269898338379880616605513016034347739511598973022829798225063182408091733081826345813677895391452220264688219662095758889125485695591002579283532695873114385559289657045405403497342522760493477245120039537832111985367668298119567072531525999270564071535831802672984260705792565785778548713388767657921697991326810462959605276700596499326622358855226077181677822770809972876644035078845313473911948769488808503071179535366950521927328336385206571599401195561616870875291664500385678972672618819908927662120446624676692321796858939439351549836244769106152283409809867005236241707628672834271155052102519555431670290138423653381675810000700411249306667155852283382788820793220785682841480550926889734766568620221475401956209117416574768361396600091991426580046632878426260788239472126222719996357064474965238303053536552373198432934479019140721368912038920249745864897409624542966600592040945052955636561258115654645824965160941882334593125582340413722077322994675088138933047136728252207247454606856673257207065832885732893489765720168038779948424807374415262401899456468844471213957999901829615095978010721138164505824490436917119007538963073800625874497767259000585788858589711241145240624395301189209026498209205189503273979257175930845279146326599549139027891599373803691836086007682728110273550869739926744222651626786973704386395193799594592233578815018838831629622939078311643884171261033112175441493862933636220905019730008684604917944947662916090005704061112942778399665584957367403375707643078573109913199899113222294646881708778118962523067064700835258621493049742190630424216293619967552891690604490872948483675525028948588976764539749065273393299334035131033958073513051179616505671121487977482195561319447585923127174097092935601572861346696144317068733015895572432602810741897403246040161770774088554358428268543559080564480971021218713069959622634796579599718175012303840902054337109827055748396043211772687608750682824248720966353141091833221895759280954460451997413541808406986890603835376298275413614407994802230820950370403349623793472053092860847628463437368983606320323113120422615808979783342289967203804670233231886715554659770867926846911524096006271447888635468995221938472365080038997570160543818357630342469560002476484971560777988285246166261130319360832086918892645294386539082680780327263593027240706144416264064535919716502900394743365404966568218787183612645032668114984793755778677435635430032246065118280580012202156278717314824532362384642499826162709100624617326746785115348570425003219532292233919409278555716568570888256353082168464780688860879267884611308178346192135323645011074080378372545908246657435412837045370737006298399040175899470061752319686643926234971403831948251006122018735125838671621761787063149062350215870784641351425334287382895119449291422864945873285530812568782240586001485135321624009550977930031409722496823405483523409360620737707131485153529773056858635439255539807856853331417769844892437374187733936454854584970256666342928867451693652694044448388941594687000846654635930251841622440523766686548426886681091560995993004511274935294222932446927176122737009694122309171334735192928372771064598203261228064868504379254413067010064653879154300441502335177748102346409744559811809196397571399315043052249591759519336822612299940149343929102763516052312126621193786197049334455745575483174165495435329750620487476776008322042262525505748228852575929166466940887389138033470111401613028646391766670156444630497322525518409054350112552096336062093743060042846362214066253472561158610892407376826635225700194760413699585835255559182615289368338610098364806081113710606628915989924406354432039944558725741007071304556576798276915377422191842308839756636562833165166619381437093540344786919437382824426157163342803874597398870142083956893650197461412672505266243153257155018944025213439404793428149746715125200278185379131714020996619193119542132081714146788740661919459242827699525538754986839625825815696930287189653282770558004158774563041367555300406959064556643543176361227203948460601104882565505590185181191813009116797204703564171770036018113860595496143288766266611146424394340984857895697042045770994770118417158927665856979113726229384762501791192997553529547204018868742824408167621209120160611808859073502441251610992790899529047435031368081851034532898539464622835400162850078079843648236044783827320972410391506024496940691029449026737389054481166017278293044465534558032777133325220868917245981059986425883079101131288356975558682355731078889322472936696108189313075619741462892283680326161013184825359656188294046121834081663551213480151177766886967453490013480960201632995464556170398673847748642793987384046794143674872347607357809843177285505293389473786644198148301560164150165067044614985472476448405937432549155729619988105096245523455595569450623487707029180997098580579955721215466706991687105263304597154062863889937990344803885028424796057722414673671229578220088860464178811409148271714460676759029217312055236784562818549283129489216892965671075843856044851741871450706249789743886734353550000732499089362123992913353068288986425959114630946960575119454936782753931511033185321645204288343165448419565747744722082023989216514971899245549858756075694224828907899568448128229327384294164631495552303246719538661983286504391419591592146895864438783892952547288762925141141237379429063940919190213563935886215736253955781727240916364317054825961656888539223742538643978250001436784808145004860884393936613320326917170402571923343149285657285909036632428902509269009727871547302107767679271566961731728161703233136467886310253826282151074814762890931999675899991818311826924164118637583505111419819322524566878363348780955855297162334234121957449282336124071191752504761069589574488046812995545791037834615567758870532821671598405131455568729407728936948437060801683092577226424947299005534616538563749512915066020105992708956759396062561338078990122879431410660248262960738696057283722169099756488030477850895999009893148060614869222590145944993211795456406571728633673197912377485924256235711341383185508576346544968820670698387729350838340092232672650264589753594565824195681611947167317246916146575882467014257959765334242092074721611126837076024902015785044046813039443362420623734491938949090019550927442254365392227478384728336060899344830703805236006278267657928311553603057308571556336008061402551352983926368560695492100981730770174704950569509292148357826785297126893809863523898623556523651013865972498297634705496999273923885223531300720619902647330381605676050396555627786491366132379137584412708224900953545885012098022076371243427015501730017743459878595291893084987032239810371562010701721178655351211976580991905788129365421781407950943727749816657917920711432057500688742553510874035553238962350631359313984807605551355157633603768313690325397995618156652618076161949778695278344595351227704083674786584710580693940000338606050136581086336334303181512740911851594232239300724905906372955292870767536747523316720221528653046256605924157723131192254511194434560449192620548752323454059649849955810848751005375881062707756196184845062754536688674856455885479684259807027875941695899145716517875038271023245492163256116228762350195964180724870995227945394061243034689964750489458240087935442395939799633347762123969499326043914185572198233181978142821560751655770185600585856845054617252193581252748250591673575185784282940301575044105253159988744848262296218842713215884379735033533081913538337672483264490906022166151844859399827738400575711470458816097747234685714505861558497646111627772223205023498081201420872572383068625670842226576503402450826642657596312774219211453544407356788793069494627534001068699901757533582331593695488056848582134074486375327646422212519294023213172338278216764254655422442378138989949486139752405606690411138784802092124736293876972496786962771036458079247954446700568762370168421679217801381053685812148453203083790421621606421618539675909980295366039438146900878141148442802446984389634171270439183448608968858883788119341797537791738770353461844163232778812067312802437953130692467869350174656523669271828702543042621935483191525399216982353152849213527149273185937150382226071515467095735874847836824845462529150484369358402139812387274517699972940897594564798715395456564829343665892480991653896269723270678115740159572421870000951951756932535175216160024154468285537225380941847288991150615122616710060986066314653864742252958819149755056106640926687417954786854775585166792940828789196141246712138981228067565296217050248121297247025567128150714140940420840032186232459471107862462766386481875877147114361541242666564594302287848476567357908913562763964805835269304372093636681614060012251777642365265039801412524870898490943654594503156534627042533581774228150494715986961562489434295457453829061142022533430559222873634811803037620190725674212811136826077589216859673046771558025665621909400180299135650384041997098229275114251993177106196641385232633269951207553814325022783921011828080063154654097240813022793874490480037133007021425178139652809434433804388761205789303781796035619938554263247453731062048257531389971412198258111845686486275108302215470576877637606837378025961557079200630551478972718368062512730943203349394229121031865963723780869866542164799337529764187339640513854655191967415126016672413411313287497317530974297087796180484341327429809827200263290815957153871878972289403901903887407861060536450083890219323673912966588244113256302198306713114986280469455006736944306448422874430847703246822398579857568979229808369318455807790095537726212666346001398899929090625285006130866149381037426954989719219888356325176807603994804351354205446227130654681601318169956965588074111977840427015731508930387711148036657711408335786709169000209585586981508952071461325609709489308423299436323200407148221001073550521674002665977950383859797677177350742556453264260140248507888081583456475765240465438740488219210979728086602299063153563076619991530253919146964814195566242830313221427828826243514132259772108808091886891453634279406193978318370914532835861402142516738431334250425428386597447006117091148662094720261226480026113574989631764025105283937761365403964799776321413787527290101732542038428375897525095921800887184982878414341197471164558641264745104007518881715430021943604587573869005919764171791537331705979942304460675004168032938665283591771648198204176016605155400352965254331308059761937663478471835972580831184969988415651352530556133706829698689472117077126332984720019769338137349204847686830446793378297831934889841096126809073246506207191964298239949609988808150562682231239266598538784704759545928647778979035443687691822340542914442286858716537829554422813966523168417048506573418431749699248531128001511231525941028753806442884740828999206443461871105203740314593983050604496132807741968715930370475042599955065304021339532185774782074669324282871192449433367790389533480174627988372579591459366674017655816625031004717303398491929482344109881471316590238715460818487959119475854453410675035507389567345080269004245380034705454362979965417611855090267426223792557280841373647540142305626630378492895848681128434030079920410444716761726333436652016175911158704689414325485977919977491626372108960063952902390270500823133855349642202129410175983139419286927291562745312802249785152778181785572431888929477911320036033436645007136972869328050321422649778931803375082827630758234951581692101704691686270998538899863085051877940665377477005130048315511416338701032932941984012161316710315166072310746800707100749745618430530125710159820906915325058137868399680983361403277064778734091681326361760075281928043712119149167948318786147115277012586930111445608150240465584789337444147675884934868321123959691165633481565716090870505929966786053969083446080081670843290685405636441848030586015271355891898211727395644626940560591826175569544715113048809511676480798871139650409937457261009427088144539684607200071837544548445429012700799050582665061984439579624934815534275151329870585877293407168243146446917035636921574669952042121028081747204672271791390968809883028313343090501286762921435223196832585174300728702629687904814279091588225930167825314773704686935088622001785067687978770872633786978807550077939960696616589990281457352783561043018521148613730056552647965342036405745250030320582316353151167664272305737256737690472340801536314614303216635821318592073738142862521403839614314690696146724002674227340738275179440852503965349918537156806778934798386624490064374415953155421440772143405902646153638058420983491491525772850518880187931789052113196746553377821336615634511388421327396702039280279372511342335814082839042208392702018268529432163333734142627159640228678408779145969930507919476709451677931986235159484913365248891819103585388916932398496750750824161658713814358373187774880520145064861273633613074093734581734634538293969561661535792655684632941580583642130650129354445650203891288182781030377565591078461287005963432724209000476667624342132241810990854403603154023650676466779362134209354307279065674447796714350224909173373104709175948943749801907030300908847536345459660071645032457191449608208768236394520092930828359842718383869788766412734080857891911145822199155348683638158455798401490696860034593231175516653101194025547714317745305461375382445272034469761512899828095804386211792810478463178711880700262259465834929406217345157752682854190466056153364050153930832596918442642002140470264363307164124793256566535476435191599658738835842744567391639202138164883210213794288499012532619892852336021357340958442228717796833375489203725313275319420729620942219264471537658478921159565373806399970078392815349826208234996085053733034430361039019874119062416956495700486237929094477713633619087690260770431420847615291629046859527627794824236277069814566752443643864607430916519495821901497694177033776963089948619682120717245513579364056663380787090895387679964616903693642388678684442665014153973691747302413737842708469446351859204811860726765097291503865529214657539103651041614635692303210257214207759053232222430790278333889540214071550106781540467893363125774306751667822091058055487609708019388092323531195408572699858120190410153562047795516984099561750231485508190422031066387510230199203405434222647368415720622079464413998663434364066398905125906031243573246596717530386046670726201498725814463251190311415111077829360566168618051822291756896111068256192670000628446096828912775536588039496816352686088615669626430638388152833707493502509169051197191669346627792255893832079487289305060756038851621814179778070015230234765193038848109474800271466001339713454275415149650408893345808918581715307331071391234807865197508659819310657524539335009343105148331636162850204107644932678817766295103669562312737949318859632028723096533926722200226697645196410182024463158229061793263243890271380515522621181600032442409789957986356405356209360029432412273985805792483307476042625879525108971096056039158565010873394347573919491403669131241265101253510828096178455920031233596442891917337337998381008948627822722952030301734144591099478893481099645502007575634891576851882445945609265694986185603286670351660762584634015875539996811537603686470760050261476221830658728600877524896435250410333858604837279000927086395735339499373781702053255705826537294905875807702647079441825802118321995564069428357659273798254799486960139481711093096699015661476764048098990745837022749176883699068686408269026473386911865684014766903725372980152797660802917309807774226415814727012911951895801158635026989324871525269166082018757799665700574881300852501803230715676411834867362957454675798500530883579706647255173032366792004023028447651305514842953674266333563127987279918211007495391408924533878363843017904177904746383929102358634172342763221162408146982222002002560146774403653056314711794394767429417546385661013064098773022630770748350091862590130846911068870479609845674278738292897682144854334114445306777100611201625857868594176274294274889658778985162164887502606732199361704741103029944943777164679356170794902873273952437353640240473994247556658925650202900366882489749538521682541249547233663762029180441163734405764392583464512064740563903408905438005522485332982210096086031345756132302836978048954088606466224743074220901675232955889609351824114570718537266840506051905827013618625335419619711802589632730597948697646264840689578324319361208034728023870486577948183220383983321693504011834903082464296480112490947210580625014463526675202843014773043349242213920418854821596622990428400974393721321937540629698279965873555081166545015897732054625079643147455313463346633857488303977482620111471190187570645813318496584600017901331595034939413300777538488363650709690099811328757887481397787360069985360752395599035491237261630610547330124082854014502622194814317323286641098863731551652688961064189668570339228048060340311104910488312966746204146012276885250105076999072290601442444530460412891664156893567556715008268551921980935984879459452921983785734674360167181833321255896101519276385131844404503719165314359789876752940205452513561550241883390827453485683446804180674993078719805581737404152497694442635274857957471774652616412877945440599779584967953546063082525940545302848433304773134824528334950719509163697636272817163320643517458194398344662351170320447360497357701075578697111106261861117827011090062086420855286639795805923793660817105639469892399044915882124195944996574321439558618799994543695424833436677868793037390575264071763798264326225796797568769095115200922686451829856324019311932226647986741641786401358065454347243280262445684143210984683174297078059655355703632921237488248813532292047380798362030978036385224480804731777251559940748344289451222390710849421225929575428616640075395501928636154589130818277646498468365178475801717213927933329304117127276782205875615275409862095064537354566264657636167267814794416870026449903862361470935166266289947617978811664553973090189806273194516709343938697624427491816167631919955170367075055753929787575283985721705884287313364210188527569041332085253887395053844337904370433996642617230759851397159947934817908189632052474873895205038552610113723516463867169442961321123060205699281060622272224217036950308908262297311186801755290787600310520376492917820767901414268317642583615297827183004865151580312108100367284141464934695924226991351103332562569715941858748384497461218198150821847979508962842916380572421297306344100343721754080609724581470489865873628414404705593155210363183178793480659548808524873800800789872460747575716257974114799726907059610333854120399572033250871284239666407247131921806901199219015615832952631247342688227850251892959538857388807140209948233466376061110952516345947382963165798761534773037412345855328904272193028661366029098804588718595645134076817077297676479732367073449881811980332314258593238573982381790850873661670034304573755199558739479011964147474836517449490632102177164711499910438886793813989558721262585126028800675476381499315524722790552511872530055368979425070442635001747353576094799953600449622862285271536648287642432915760938843373442820389582776027763244291460026143537784885448604360568227240349879027999231681626914152902274637688950779338136400113451882473745142863996761963727911252716133859053747196425417903093292941643628782238039399772253967511604343194594604639131365328202815095553708139743039962437489727846312791778856519795500410123264243143987484795022925657154272152842894833265485115948909294799113854391864409019344882271026022484592255473800713564240165189696794102949720138294561448096073864083898761904169302006311172824283455461818899542888218387449040931233444289223336918709773599818167405344875840443488288054823770529020729430161344952497712260124623435370148801381694614510991769607113589182858105464360186876904634591475200058724843829687638685469452246640673274528614638117428046444971280445587007493434876476390638163490720190004340631858404983964808088911170098543705915846701228907801320907503798125830766987153559906166502690275143111675833767680039488983314065945874783979343164623589552822660525326122915278832446583269968688641691105180779614439549576211590115685957547687835431665811901942044040323441926204653881692031944051716195272811930336617693024849225956642120166566015706123057343715172690287212869503111814245177549340021609412828723133490906669644408422818562979796142776918164999854737755293385589139237096628283732693027287818707866816379936771162800326725712033936715782844423361475904720409130639586014892996746099968738156932419216907068448265499752421711929187180355611368883725607047977349792484052655036497053864728765771521333656489655682260788103377086432766961574532953449511903096134972332759256914636236858607693516113738942336762200031651319297769428430568875759336450835176287617841547735479683488972788170756831346922896226303267996403339076217751178409929141987433073150472693127010213408520109017058896316929805959232137217622410843765905542569192797983301667783427297675439148927927728914573963236096344642020331348663297531743798171608679380836400902740664558551398761632974240306873420014135274302578518068227342483745522246854451112819233296928233642562900980318559240698977331545417884151382506791229659098383796115740734758067081101096747271423348107957083291413510146427499135012761003183494280761576722224835899743952401165002876281214044686570440776848648974306624973669115185096355085086438002099936073828611743617225308567260299801486773625679527193247323097991424864462335934111327760234428774654869006364074586025862182590057625743153195396813117353155449028633377816667543307243494330115339036458021466159610362799014553441076449836902120791149501221465461168677514287618973294130604347227957707632090439869904640645108809225295708258719667500677017507301827611470182186431833003643635119881904162581816807531538734582948386692016186710026585337614205873955116427948217540262199031975685942617677286815327068118890398023502890198674371264482189612205944504070190539161382294429394073719220861626509606570390247895303011396493420969596744947073950039663638331130172523063112322142694105779503170561008374754516984963746614334628337549251038225909680171857933587906025667691345364150871277614563970713548944347411464907614315611471733661699794036366408239227875499706504839969394644808462089948072456013064490455647605738633917512318254889183442787281370437560661073471630691736208886592065064043934822283310217108209876702757503898470677108560957435725226643348166497209050899173794484011473421338906683236450302270691785617317724904490533919395375242633300421910438657822816123660145256860809343240343296329806011853895350831181199514492444723353910627295754767798020137133847853239219404893135036648855675937034180280522271977904674164601363369905524100155346846747594376858195557501032378511803757141577060907308284510408105929512352862073348535604042990782129138395798035643216689075623184160276776734411752226975608355224972090837286552855166468726670733907229332244371831667561020258078899723441506809464791795079523733206778574689289344987775942682202062674015138002915204508462640444411554901977303801749569135799681618742758634593758442604212426061881044459668256727289390909118112869038902475215169986247681855380713484743663879898447356498951222545895227361267477313403592375295786695718128434360182792225093821942479953515389050208056167929215453687440555372243167860519176651144884960331996718273831036054923942762794589735977802023505052500105540943671733554155910953231901036162008175238578126494750943845449471692570993871293631159123393159057658890759886288255933351596234905578244839287190508297572427066846726281754015847415941837823932598391950262524980276570178652340320692458961895774313454983166421629421795230104337515950540885483965474285470436266535074550122934020588884643137750139681073693752055827491813689046372704130542058086741316217380438837670292420209571309749748378401243271311425586389372644022037591372193974920340426419762335741090123395518734505312505658297635205479559744695280453590188530612867810769919220172732215423336395970230547731075594333443824446365436121154178617825467074336911791614161049246655875201577600479186181599121149752349623431423992667533954708665242038888738213711424892542624167180162107996703724684742532704306061868648525183912423037294516304078189764422238457319796616241668708451649384255789587447523023240923183887280027952452546063221169509466266649766871233800541116379051636420497451089656573182832141471016052101638118031167682972068543760038794461410758381392253993512165087669856635130734197349792974371066972811382774723422623781970125018300756410758643684069609425876724347257967994748608950068308853028929353738572090982919409134786974400637797067356990229639757814205368236849552977618284967586297381414810362642223052322250938862220244878789487057271001232802396696652196069756607543660757064050611407167688361701337977791423705111479613953188564137936013506058213725428734482733505272942151594931599268701693512611134069628984233185852719696272325511820631440829967401465164778743606554918360599826548125214755090231635175775654590083719061820080744905087806476184381019469446820858026428153162937020653249507316577336915527638271179545553583020232222108858661125354050248830635654227891396403222319816533954513034440599398735173378743673839791382627593693459787654665545585486018285497394835717336400998129084260037479729901536542909635132271051595848610731804153675097555826544146172819109400705816941997505629686369832615689254128584282077046612983725078721907407877114695078648548092058976763039425044932370868929528966613750004875420209000285179821260589924535052612429199049683319503504112689045508699895249504518677166688607647794211118320844589512499601387408457941156457753599966610073708610341945085527545103202129153069197214268294682247824637350413427241052363097372716329817812240113241532444761443807825869940047574429868965431010329244537328699168370210121019530810125004748034679001168372983531846617036336104465580775704159199452919204274357152014425188673124476143500539160523775277156608204158243655205887659497497801291903877767580298028168800280753565106796476371747706691458917872224532587468650903509976351000593345108342455790960714803004374022888947522967992463210877519185508499652194530195388385087694366945964715049807023617440636374842923704895405547699384309650680006839115700219855271193518399217650474845883975031452806311568673400602742250482100336659156498499254701687346029562594138331353464732440359357712003577551585815897565608919263131694874702938082704399815241820625973382558347361758440384053251924283229849592408088106470790492757268131008793026872035761476535857608476213988944605985205266655052734939621325217459802436430956561516900042789813072196357884646088707892211768271712548480034911391379012208299534245882508799311189960362096517146742517683946074796344104218142845871493731272762930459261128812923692616036668189266162477864510402848175325026111262303618334396018070674372570075741049481643824573735367176211338408684691992221018183398261213626772477418348857029961837486180879866346849732578495058424940663623402167640105229117776351045440087932963553621254175737712000193211612934330670293647957567302921520408874895847426229148807792093421468226976909969775597107279639812946428461147953887642920648250918972699472423752120688410583115591808532881167109593066621239502590343849863049179662666607877154685093329807235886655221835999174163988839238725151871254480128617727502103630077056983316285763064802142459249126438028465002689709989721742231861258212071564067732255071974070178134610329127313466470891982486673094522172287381014345893689371675941643719390522964877584744899619993118625976014060914692109276380865194905664314397484779402588307301880622505438777205536209014645460490377583355485854398249014249023754271036234065424071609562878165730818612818767249985535922523390981178498161334770172591004025968537751216210156678029502975664790831576682814038147019024461773976566532675287666878738650500612364523266337796861125925385754575181754646951422297980135701433524611239272227174152835786856677506909611191131611093321106722207316900779077096722722112255297622232454032322312158565677557005250970749875812264167928720740781117188055949441996646307620962256140711459670702266496795929794719855371005372056554657317448872029437129425598830730514820097097729711974775518114787594269598116829487014145675641775243748588370948702753067391109680832268740900482952602558814213969281616044928517794968119230320491393948237838717783931405433710219177452613716910229227320292624927716524420863386765455177437254519440697770298842451899123561467099688490347274297257299236862232044311746839849480688705179729165441582547818550375179014070628295981267973699686331427984630208344078113095167551875107132019954125348130332869497289759015395734704474156212984517410114067131067741914313204757130672798878816197369204850170317904624164353311466273466489716310511681143139569160235911581173381700068149014341060617019307180717875120661492003831421400696703373737238397537423387157307910976515151432199597089093665994175970772085120666208818488666205959477385915690987772012067773317984328477731214929543941703797651636280112393523535259597513240956461343705528858075740460230259737084054747710629998284424539856800579720008507021686743892748400549143834085829804235351761293918886850052466539134242597287113933375268827657318519598099562449324981795347830370801947112324064942854740804936075417891493486567849139530470887929507098669567866465587177773250604141269431479153519795932260305199117014581093445370919005500344082940437502355658775980728000979060374303230515254819138550793753126317919040923384576726229750012866912968939709297948065255175289416024107530767107513201546737561865685669089202328085061930850335656078148922907690059970542287439484085536131351646047743403672072505520598916364248285360422834901111857285221472151619394047934312105628792788082457986553042775784702436164547888315306989386051101152645824677533568719703453687376214285269234105730480794435558515727716679459369342910183612510966549251137521612790748640499584931641947965312079560842349864815089349237581494340204760776386891992495522241408238559743463549758831496942062265355751849416399201352800202861416650792742586070480210422647468462597362320019881707001940021225817018931689250757137133066597015536600386253700066138975044535474634227153455702651439865265653445570933648200254886538117700471937858995250674927413767453183680726639715294588400885222527440672791964945727011434852669891597404887999736093291386308729195427905141324503948381741861092662211195711548841118261087023338723660808725366332801712015476226181017484169029329173074665808599640526274712584838296569467763763840546659767077578845847783257969981044209161985624070720385376457309119186561661995220008590408067844609354435738426956702882839538053025842119588394665350677530892633464885998036391509132783428207489697090502934194105936728388117528912607767121505203667730510659014803564885936670038020251200404967486104485137916457315199872309809521828343261103565130258706454607031955043747061654037665852206925917044975076393640259258668179021768867747674066624372693896338672247152016667017668257144331500745357609952762374205764568410990989997354432750505977581569650096180994836045856619253154034784763358127126093869129545187034582912702249150784884597162942256639473331520689951349277193673912386813399770525412756173897515603266196000303829221872481285071806186596418815317498379048774854110155559770712834973353642223536970318350447524759459914496188802382951694852536303782206367942546878731121380752309665283611221747713164804623188467233081127385573649169979039160546949841266854006588866022959501617656622415065845027574798208308953706391884723641498972891239482456611188037405900377468452234400679086006158681622874392510260378785639650057876838083155859434492333495854417072909272681868549071605527137638857873908220624827223729222973853498788404342929672491830038760476253689020748971107841505527470748107607921556802597002608763857323006123740478969522363010502754097734441008108273977344263484524438220006137740578313774493700573950402579637590264605712681819463870956227257788581157750825894748151376559143230674268651030627409680605517797101995201149965872928694531878662059514476072156119076572264003028976958280787334476222787697075435000780311366650968319398433400104051725037284398972102469659421420260581526801944589864713655152167006080587474893880998134153417326798423730479084917883854743283132720197317341250732188133163479618973403892977496679459957494935762995198696968574864472811884826757160330711424288125036345996622139149188668717243513385875905326678896704526792010293711596160256886218374191189859505099225943924368593507593908020323563071910546146884094722554345158423486060034315415611465707714712150253060110504052512225069909199001751910204806013105566433417243601452835446900894057064538348035038221368508966995321882887093500861404653204412772298953724358210181126802391755017988935794181738934408473948104739514448602136812630576029559761132868788455618530930768785574280334039644326041606877849884282818936655886523130620178479615214293328860969123447369826818031200007948702832311058582602221886018120432334770770760652923025086546215740575965225379171432731694073509542299450093175937584539803021004875673193871182939471728467080718490482883186501013345092767239464639680365846626682254798067707016328461410482468186077870854465984967553577687193205083395210957084557097774688393386616506694689442850357284326016720733786793847520643552787865843917653851543393062986566871700491601082164730122766211797916073663974672942476349438343372822642735674110218052773191020132129801424166334778582148309064446501959000503436480027329982928666197402071445656744505322582613390683121542367947794600943049090687825354943922618183292706344860593337882229076696707567551966813173506068135680872965764100396880387564715627261036335593996699323406477117393477588146187266719895067557582519560448127460487736947156361156601233727327848507897971291409132489032009738929394339421615129261547793837054992852974928170336804512743198959887270204243772121008850593276587254892463458802340773105999613118679732703283350704907372007659740732802668028608253856132282833634722391760022409924177418482570967148776269027195682473414926679446368863543020598845733948651709906717127810813062495179924690566367727699950674677154856079226910326347997166473264409412359907458366154631107533812005301715975434822878518158895035303100877952485450550847484444377623297726846422241725271101922514825293335697428024463007053786349750003634483772324557557519203873565998639421389399727220961105271548699813374797721871875509405918422091804170673675967854082321712542531591373691461335529741848764982162722693672774237349658198212156151395735165608692713823153957290467853851931697524991571062315636209295419280998661667391215478084621338229050544521285178256728495460750361931945302935405298747875781858219108138741312484698985155153236550173748308508444830558065472730172087180150430357888601885945810996326187296395946780774403009829841757813886648384242109960447781685589583767339849302082159130985525702219883809799075695015315230997625995288045381748961629871840427878883018537426190368581271520507561388731755704481593149771606127814764230739133689005514026002517260536812453749357714208928680643638181764312311853737040803614966442311003845856549610857132001380149636296971558134400553893951694022094248993201087406991789247090913105430961539767937171184127420472578566968009099363973362409414931331942129385762163540048467953457207831292886569108240342742993140255637607272205428512179714397014856277971074622039713073737317870967488553415086500925207576946493476851713372121895992764716255754366544946283750502566008835989235349836515854363204835043563303653661789713811238329899525373059457594221495834792100464559553179739593254953847401717593372824617440003712106960739442405849860421840364404409693005990642610407036070258553239434659567329868939807055153270772575436661392733789426934810282807760288875352813033845242505456326035633902538356230022184047120815219177124228360916002011037428063846745495656714220163376805475241803939049494483666887432512972948813095283916722675413812184620801418077721163758267889133553873785142671384397133780108048504683210092117873975034545930720752967018433307641464518042450680840980657663132873001050099583619582321694470746301328163680262274235966022608563070975435418238055031767443839491012905157474974022292449694534307672473506849601903175144528715185023677322617769466294481557919851035064409263339880656596019348731184386690262186796069297668867097257824064115124761503050647979318950722528748880885140139971789994953205587696406524942913055806631460254209744126898520500524917252566769372067960998749427213043974115186903559913637821634122113509662744220933751943898624671827676105901077676661573418402149004568642579879174682841872009336056461501446661210568441716507604366066240517336194067675915907383387271368919777580670158767372763014824564636064748199117218504597643744669925551520991919147839392696994575201259581045393866390216541026229058039465763662975011487311721962393263480353184796412120164675252254039114205841340707666435760032382480994758455321014432483552564133036402225162727362777336944579224680066356508545830590621382189050222665355946882611310956048584348216676652146729518092673235358755501671594920786034549528159237853571642354923987651976384309282594483540425922680343352974877476046115566142417130370007868329836175439418572131385507857193402569458571449724698133982415076293719563904857764374375098340286877229651497212326654126806732758505906247838523441597224695824692449777624080182419688737445236312328331189461344974132833197251160141329922068479407787112253768563829985149198424136922253412131975836100119058708518120505219817964061271013103932770478283420291159048335222685384321320749869207976125512384360757873606383080223951728665277357563125098837110995836602689326417807280101678071611480116945048157849625415975240697817428698626196853562232455213146841782295587927238883148839707222618084105310981914544911857040009166507491117110171163150929912454078818467939462395070805790909260927790202708834256111084370091447645731692643791917269372783600321665451270162729792080723253076250426358110338956179884311247423578389354147444166677957378023134849853468982073343048260776591614164845743270057799915627395824013779272731188072932448561387922408645933709490516948643695281621658286300804106068815750962812167469114618289024201298079336370324070847813461014017692528169170152700342443392445990127123687082779802065774832571555218675929053435785955962727065667305678913160149916207673601434116341269354581444176619840285774314628219150896678845595865656150728862195349100640221181585278036155503978152679790319461889719819221022280144465537659497352680970154425196498344150514983746268333615093859716240416728243788282616206451949033257528803200599944997166823714485403856081941971026482001074728330229734376099228173291387975227066747745624866800971713838525275259659408326936750655671624305658873945741297380145032419623368619585660693229836694957004091336918698150503864569720411175922856347557418985557929783883250718536145654140491685144648387667612590167305188084350525038136961048714658484936235501498578500150691394023186190407189051103171807897641691837918891645844250487973697097602233136424644817213734673540489967354834508336405569414801759992906943693036157876325428463507781954788697424315477694526450090403524200034789397336266307088164933730146201544916544834953462389091013403339479318883436332400290025427743208578575098029186049914427975183225828526877660950882727392149531422623277225172598402449126295875322760681382665330159155661533589613220562522480056609975337683281512554741765576834275301567682247250845121978133160916823747683134524990737541240104443814336237323286379871137651611199568412001717524162114830562744157416569671201627803420756077332073139812343506587735555813142510610928267011219597772822714711010350402879169519831052205346301730474347572157608759276710980734802121923141223933074838782674657761333665735438695186537375926086159210740113606052755736756184000867007146366149968310333339686199772725540749867850648882222041104289131424854144371108109147906782174813332430314193594245137743456238753410179166092125467834936516369074412164749008906731928210430105982440880902107871410478389797400394808324095048710529434037763957885009674140994727488706518860452590763450199258815104405621711761988882459458595630870404775038178055628732146494697721454126925829858910083105545802426959996359850838097504883985710877680656638286379003759863290015197359743927412411532454732256635870564352908781874461415980478211794136072963050448477648006608627747727648221923522921603495044748834673316012106975776915763407238630240138548334758857015503171988895314108119427067735600091358874461696332770409344702828647370628761015908797637652331099570248225755855521359980891742376257087094719647109377453697263031986604422741818326328201270213797431554878815549881644947945399626864595287468537336612163084965651845919117846394459399841659765261000715029605081417322183128015658217261524405023030237184442879172478424842955888885746474145678725066689726797300624270659041279435276696993938005695547426572412725112448951996116746318997643524697788980209150329587463290559571569048783543854819760993014234731154041465181894093438058427571475594625754951571990890481375258389158547014823617474228992597837454333844199831024521993493014148333684514996490100695558298229323352737477603187265265491066223444721630066898975178666795649901610748386314336012340614084925494935582707088750964412492220978029318098958775487271859151875313642234265795499358322364995835916547460929840069511040120444803893422408467741082770891421489099744979311648604229209162924033290978151999775747187566579799681184364068903664021093304134860211124257297069865837105938479508111094403297698990880901140703998371335142576446277230743556461893359750274452623327092978771079946696924766582055338403561447423757813641002089027038518310847098908885645443201472654046856531047134214915065361240152484649925795884803098879897690007763925149915618922263865238220662828978340951787531190178524162235506346582342758247436818301299215362266370053459216044463361848361777709671363126463545833573615204955553776221899778492381924307053660486311598676383200990122044762389660186807798892886838773972100289941542043298629263272257180749224677624143521502106935405525259223904245246656949365681766209494547425559053455448620109958123674156421684599195343370762873944262576099188443747118997655595717245381768107020078815788619050812501467042655820179579319774181947334976522114553488029127875335679887977340097915582699519310236443359190040333308908814782601106227146781642393221135242978565239552495872291093611804110006804147996869124916718858586345464267684887469820211060263070861885182344585173453675698707005273050534629335405855560674621965887413622171962748987405345245988673577238176637746477361418829382084164657957407104309465965393131361719769073404265971353079039440293150819616733628181437962817886672056000677631161163930784627536047118992618967354309014804904405957547290598179220023438327706832463953459033306365515654199640499191586604997184486750087978852052779983279123687730578099690172961777923350154923354513946858615068657678119944472101333954294986679112708665962054705092100540330296387443336670740200963058942631387129380072549595600175629146641159269470027282302402120353691871108472637583866812963423770368606289814055340848870464840438093523507551022873917537187352489674792872247085358784916155695673048285120185760392776283253703752292905271902561938240701469481086083089563210808054210173045716809812137163474005750656109471282694109771264172298130692004519320442178027011803076064482816020473844548179834925390097226676615674688639777843552082001269807646610253876808729587597537577017346376754592678913191152550569818741147745365736076384246463901395755285079447328777749485155232063872372319636846625749116362386519184539981678721741612587229677077316036669144933176341239200901427570649635690608719409101156134856632827771565876647494201022213838766286223236768477392224421352799227140393974381926598549634596536427265519744697737585784664184076104422649236270003750011149270244281286035409215461736422867931666261906644153442793646558464139408887607667892437802301762226295983761423083437130117543676053369137402980081476227319400627497422130788100316588066040631833970657530660850790763666732525060909125546002945992144192654120100195825922145644421049143928378976432794334448965494049901921257585655287321129287721367395468594363834051458592046547400867452820695501542689547518775177601101406286089795013638160781076843862772373215499653201851351539419249312353876582666997628007525043956135403961517553676110062627499459468674163264335158120145400780067720220218548333146399734738575669901017836938440586652301202579277638925774967896985279214665319451651585704249168022734230032391329716077291070849412094170238333946115798911648585919528226695975428008296158684191972111296935700855526640858623960590483081008271966057015194913592479492410022410209154827142265214791439813419975865934168203329379190847678080452570205422188101726871340902069761871986835170008949386720634939760413353800056047033900165580418744887951740765441506213398959095926765675903591234474011945191645178293811216354130792962707014778793026910646500486289657828314411116698623280123518858537954374249671094078059676198141555476253855049265444678042272862466886589655441887426055411203569404035463762899995979442126331058108530198517595508474671929251972384065225128808894170698472430395113180091298263156639816124567353566752812637297219254832706102656829887485320967942361613352095284528571893956265489434593901461435552230814516196547712520122670101702628439635485845591407161126848144972461169187212171402192575431982489685742467466579404475735055602621102021915935363979283663016863613624110537010724280307542646686991151386300431614080345646514486959928924612437737177164273781703245659973126383092443025118509346632770204022994500200518603332879737454489284991652184154027885632646393113046953890094431026700610857585234298110306274849256142514882511979004064634887725720920936746624160572358802864101216570361802005725050511369460761322088208659740274802212531818710539873160812400404094649079905187840448848816575244650987685513279293859907228954888047399441234623459467467293957725610082545900072580736503013289594448585232821471418805420309092311074898350304656343912211072897236590365931147184639232990841308504132763145450650128434183098611895476136249968023085091353082229153639045643474019192440484491140512158349338785976102666958195651597483181159722300356652442653102108472462473246091255214377610049398475433892629269965942736225346512290394627030861985968430554517359014278698273998176678829499784940338399171452858483335977178172099117903264713384866652541597993153269073278805829071498072325673380367793749785291818831908315293148655540224844516353784348440010745666067077946142862770628826790690477931318551411648421451430125888065200094963100456659998275431971008480060350577790858362372407726165800361380716017676271244427702031730957624319508165381998979799671421605977435342817243068698473766725872474507401327892629324980664400810182715476042242212470756012745579605401783351947928572248029550943231370355565700216968996789745576859134474570619686903001364659250946307479628213780266790675800885951688663251991748777240319805449128325858021063987951933059316834774504384870007320427864650188246166682300876419147156458191930025238285564259513930432784514808020888510804500239007873072553447369586818073949040389776353515748225007787706554383967005156710430789833351291935181576374070216605725061397034663849890453724307985172683467170132277553903797898196368613153689771429765742089193129572822019757054935578462918616278095363605210562217415887153735656283742171694226944006049819033248884267121476592866490512192730374132147842831912627347970223425689215214827963402663174197889329010580857466180254229409022449254471192453002268437896018313522028638069732496047658087147130033465639211978672142034535687635718696210475882543942562112190451346370642340541724733236073669216924178928466375080788253158758582745274549677054520754259162267999634672380209237366505372223452472056557291866748546656603601122754298013192813303602762129598397489171396424096338632677308906545783756173849116630348987274050222603053446819050974390993173034336595342747547173240207808124856534821658931060790594900281445252569873859028245187007655460536727561019315005275834410228719804649019479727999187184922254336565511722102147570616565548810212872607171486964921883908810886316932977866255749571826162285567423221892654395213105497948799290863054508378824251328665745141726920315980316622381297314415718591290173390604630216961244846988539711090286683480122858399442522714816888245892809782366491587062327373959657833377589199286302662506546230421666490019757160989379008249800827764824933174835273984384864127486981612212089805435066409528186028946931663944712690600930812526141493047120068100499610020420817756817403089003110718204935958369943937339073842007954258810320275570167738121828836575234650263111434657815199698724584153926440381743606120814438697692986808310108219684875719630660120706221584464966931847745364287243835098678649708649163387563552722379743554885729083116923312246460103019321017198996735062117812941878964191061831804766744073348621055937049144424418207942291976422950867733721286799390750503172517124481091128171437153417175478955409003879905870754011943702389353086051888286590935711823645969160390754407115983814625475261357486564882421459414094250604016322023216850998672015871229607000066647943619421844371195591503275982009057036236193884253410123662156313844999633125558304273439606568329025763222648570516553335551589214818924085916610540606592188411130841941158492904837827516784505215295148634538507542880525119781229017399564888172674079834210131249190600903608564193878850421493070047388411876556910183309754281478199236465483199572090459159399543904979785830666417805744219391577139802814808709580980681457203978965534865174752790447023790189356152827082748239385036550330610438300851321849909804435097151462400605822272411950867083595602555775567473303111895851072695818289588963840655569121881621523752337188237235705169158943376004851840465739052509677414518766175278877489545101022973862717382321842554355254574128467342345776076022287778737267363031414841678697402802017565609555116651933652557034363491751070933401724090769318461813995464570039874385481234371113956194310878802406193940924061609058354823819288041893233886427864368973031968770324238842362062598218797851374720320352643377335084140183112327109339707623234621296414052181889641906204954576408738898036820747971700382545718540115038449388487326859887026278437682783235484130135139712146242355987567107517972572111923002838153539203788404350455836255963380401378746211872339841227978538950543457293285977718911147882279963213827343632632799084994855364712817100779002254217843791940586520403089891151432267386932642576238708857944674717421269314316660553437667304542943681665596862275992099621457052806658014538263937427815873916816068749101055493464271785485025130225667344580966462885866628201620554178003070313691478770654187513916351466705487548205225198681213520711176822087858692794818023752088299490222966846631381575273288326388611853736642200829025540340207950865960430607684985983735577344962941566869042386823904449345213317026943539509475170962420580535212937888767781857078910272658627940728028162164879177067800292487005847659656298903616647918230334422144296505425927752274499383121173986003679918099745249819694080211157801657405020210085550976703576626051295246696125351808278878076233566340726465369757879123913154071975190699613906773813974039487184860854416122173495515543707553918863255472438816076067798361184180480484580260498812096046260504084092648478997996579530547485072458294660858980858469257753872224294016538677323706888600939308008748575168754000344046057456986197418180055694434277983319321146697088019710451073130507707494991458276212628068948009493910544828340731478498093460710371283216617897984794638531305057328972702004196990256755159699044152119552565902581973820407533994536610752653510701910829559344787864745454245698714380704152566340741827386092162261723506812915220718309509040345469709545158743178541999297441981674078208055428839810603360579365094216326916648421460137037351044783179393929530395555984846967385353255109057353222233224994679110420371458557277008124619650908166806856827571387756749997972575809887927937438428923860084281796416743244744047742769929065861189607442231516256260545452695116203139536384670951538179748994922954672435601618650209627585595642788488808362201202775128328931397928693726635858841100807476362596697676902744077603703831409340192129493495926319302486893885705883652180019495874708196882528929652759016724751382594504922998901585603379113582273171391861069948477534405544869950190148383317608630411162953990654504792343775448792747778828755498689426307938320788174978645176058948519597522393056823635900209960177307765522904746916025563885845636765855832686563762692633656988309305344868136992864709889548628834944533938957056303263572143556074193455029907681448621607093581655370181190736149508980100850418022138580392066779716751776376998196588863814190905380716494787309311102267363667957358005987718365967253830100610754037156329413242273885681057466191538251550449993905410114269487255864268007989696230992930424977513629320073297432626029876639264163689606376964533306530055953623569357557469661304658533736647753450452386765648187055463015122247024118523036681372525122805374517414925230737101075695901116634349388876797941573526625728347366319075082710655351393957571052114837823461647095421834656194855408935912605855963876318998007615813677767078921596294202203997101826460866604545061553996547870024321994568735726329387097377577902655177185562673952052974766387225044725162403331180722163757369747335486492689639147853662469232927531804339171124049748944842577700983385192640280712785040151964053724476694604933898105282943444338686460202490067667327962467208530886181939491247373621726609081693197074415238449271462916584968171254798841374423386978733868247203980057419961630550020202201410822776359156437536274768732984842137879656956727682900485004458237730186158123530634272992205645485959189186938128789251107600693108805889250531341312993578887308000440961705685640240511147640396426762803304330262489647215878856269374059620040381527663820958014093329772812360656289911370188313766269806297559918427063158037374107446825995287421555598181977644287597561123583311132099530867513413940020941071024722514415581190083870076453870637064300378075451607669761491469190830559665058637703576975176913988989544164722806303218772265703521283516797498571845662042030461057334377153400652430496682405943140338942930835311749402533905987934622440413899577435367821620307984033856346989028006931071339813196022731645691374970512379465193597857622539915373212421831817790820283061635219631806106545973125958859078407274724593711297799377273982155286483434687840650914559182399482579586742974754653445834783243813827109024526744969874399409188470305929064100739157676481826915263765579928307397227399774439456438868454059468917035200008822192603891809064549378241649983733756734322624880540281907333799488103156827951471630133120570346196573509546583243876504104772171446213730477624347478497396790007499950381317743901664881091413382246691549981254871679313067667616010020359789946161968715319566355747499878797774129390034066487623535472090432299244481329365152963001401800879415847978466881192232992588153907564451421290003887862324927800440250264646277229647814975207294443642028132806125842902965441705228217492789664437195652345273994752434093405045884851119872429558233620347755802008387816208127311037980915123376635686037472458842483697849905530237668885689943431352863160182896009459182022483201618251439462098998529062553733855130813263918807189703958057602268339988553165992654151837369575339235958047410789013977361855249915903173350330004096644847988090830197443414064164365413470719589002955573893960367226712770138727366753950837609530539075201671257608458720355363588415847224137925631295790312711574020470146796831285383332572831463481245180896164348396361207010720832401991516098804459864116149325903510258507453766376227961332922507481218293424215321632542255416188069519560649213997374196608212027504821734841959028790178901525301863180399935196560609486624272940798585096765114641151639572978256811650351109669104980688479729892154572884014605667035542708533641194601295465992322327530304929352185069170117858549043298569909027596450287851696477167557248117148425750543819472803574613365540553155858331575654522336628540266451247207637007325910849766354003171993458343657913749669980729974704566805804810321425393891443294913502291532486523321912595314916051920204994325401283875463997156420863592197124168889835879995197943941096017938350859927617764354876303082668218909771017537708377591374961469810852533001992228317682755382913284425852699389257164247509847623926652475331053521251662489723952301111197111730364954737281596857870172247097075250776525793346316985598406708203240620954758294394425984030215525889368317335657460939134432941741807614447946819473265721885833133880717175516391382817303713740720559139804897585203814378577818673912935845586338972455006465664309736140908937751263474355059888302991053184906341357334737409269729412150542385639732752310774666336086099986681067706704033344586013459844139603956601830292419601241404207466397293281261705523910088736214403982089104136918710793422396943213567976667603313886864741088371648949688454057263640268375917470752467364949839741045902824815966161603685646662009188897333969141703792238232655082467419385513579553382289183909031836206180824227594679029188214915817861358217825880768612276288493059015087611021091262628048166522118971307055441171021337516364145262142077912759138155988109094460817158456256848000594216686127058627263476210651938951398413876963318882003644894025008390692031163445065828883801602355843833510097396381293350538104244353513271122622812186270532571870299932058454121426883531918851512828533622697699639344828329367406271263599395410711896349811430108883918914650128797956859626035208887667129114326934781764964434597299244763721725718495834912421068143745584658429358327725732001117486123658990202803719548737872056701720686335815607244093277619491049099660096051763389155667537231757662649174894125090601583478041374834541857576278378729898580918878862029585420989441016805460254656832687386249154461755703876259622674544142375574641695792985894756823857860508328109795566227136984368350112485435563974405187777644875450936226341093857085709139412981226057529262031955965043176574835606201314799821680563643547605644998401009029851757611205006156699703126579256022735936622372395259464596453264214417524481992196892011739762517593481227176217285811983796005487765061669292381448183152341170013475051248921126457166330420700499795244669695572678825777573099263717475466757173262951451194068501375979394680754910316298862959409002894710179308395045781540961094307969584270798227116623126357015134106900014706158843666548856864387062875803797921928737691204634515225603457338200703466733863842913434543305172641042941831290894736472901721972461254809812714539386651605323861721602782503315557988874322773060865472421029010636883293338313794160119828218126681549837533954199447509864751674853296431359414620824109860778663707122183340702649592389516070905950084777693212139177361439950077706820900210713509422957924416081740912930696789454942853254068927705299148620791053708518012496068545115179573401458964899383600721942727231049194764286699670404860857982942097347081241544644067734820197922296832825858233463661710465069238594155439398135149102969481771096527998429758558416102164379922945436921872530119141535410004533971562732580564589155279716648054649793188874918739825096393119645605688653309859290180184091250183902463372342071249478522490393288823319046142626514266225287561112188309791242625635231485054002451378072784349310907377272269282178057387589209312972712828540221525911467788818989071662848494270198798345666749348837223456611701763868550812116213781323863659063715679549965761935262354439935217200129445943602383762153925163944984111544640743384829301685576880940187100991441570530781018670948649393291805876636390211879176894593671013713606346162055469961480816623096655584043714756855761394743534850370393723483613415605860501537849877758730208297401115055762774260775075353855815500224352068478382614692053079622093635163293019546074760493743999892109854204928647314950032976791233009179674962357867547172301210770065273161427008330306055530838851006743412645752617287861091725932757053721711250465454228239453034028833684187282817320524504153164948053704107598929230312013226727839661435381223480729022577565908330575813465964262466372696339577399178920572174899218261195303426606946872868052228611218927765758616503115467126233540958405614730419712935719109557180909406974521358132572709008048559786476269753390388016109636118778216318586883547576170616289908758555667503804698713304342342439646308461033622709556938899409454187937604053918336080515675735033359380055854030223406660095300646552772200210767627764261289517191200678524534002450863707664029570780748551533085341297154311547731858599060683056066539116437008690598853410448593221730271623966139315447907541543053399359940724274971399375301611889180052011442133637089228309782246898543573856200312187730631400487003185047395916417073456535126832415921749479659043068946242811905081685126040864462007825113392598865971987103859826148669651963438334185264423902353643888624157057422972886890184621395963864953989822044792359694085798302958763654799575793444898962691781688711859169978488082449776026243969701617494082676201203046383729329796744713897253250536087324560718276503756497319768859744305111894781021332150689518638269388932953813664588840314437672640301532518110442098138012145418977934613962447661753729576018824359570247134853091673886375442852997264462844888468462419792416579239553098591348446816093859450834987023133824683254162344063456414872671366577570630510585277230476948388808792495552919317779162499417699503091131024934722854957910900458815632947848690481480607571910161572878888664952138339182251004433447197432672393002437064738488494467512404211679548859471457249488199987257136733482967272614634716306969149866073611941432219732868982277276669004258947785915525105299343305370631578089928601892310417742244776548923190415454284650824652360343543223297455582030339173443853702292213645548195579505890252779571363435760541755516614655960686491465815300834593634994648364468484028834609225265331609480896351145650339594702032670444973119077828392690899140785292799925981533287705211945633639857121613055955282982713786827390257611660591168896413764656756553304116192482567842564128164213174962595742576185385025749899274786082082145409815070503576042639356898535670532522244709632667444184966761801408808113053795808319190974436392123761459809880363243542277477691553862892292259301663634381081425742977286173331200431047942319569333488519140131976877150710998608787719882421562591157519475046492113212059765273684202796106198033612047441929438048496359180009807536539022963617050269581282773500753339700171602934871393141916761213744418084585498404522910201630471562539694517259850187141932947940220424431917827881036331074464810403033681587710322195119415403717984537167405801770515749756094842291011726415397999280330149651470712711951600947541044196314900765748391635875218967531211917329491792671580445563226264030312180666643802691702584887662057318982203242385838734599878156781289789787930176837415996134644601257582862864974897116497375130566938982001787360159210037748870746213754178335874578065409736591663322960141535970258718664698035314787983101919691525068995844495649642257842685902561818643873393514919444788155583186437277669987571046169699034313878130754622727519747812008093792482172687223165400485112080525532958322729021663337670519315131386356689860379842017719680526627882926978883030798483800470017666185802669004381178132817098120415725232514471121479754069718534428833429490445602838013714524291877284370525393556427620163515309421004141223561694309207402871898864192731704174038612382467263332959544559112411498098677127488631854934370996753484895959015064405553588351680299977040676997130954548495685159000048626684228624460065466248579246727115525458429573470493901145661775220951918619625286563832495712476401798964536442349276570823599501035066937216748842599305331882795902248193806121244732304742531461996629907798713954837812810504513478427502406411033518011627455223231946056792128661291877641077352915995421401910426960645842079795418510929416783696556170127761588769228798444093616872160481689812903847234191164456109020002239014472609641002591540317119586918691156515735148536596852934410531370926030157118671379078519516900023434797000211946265740532827123085103692568139541934916826969477492834844318940814163779488851059299662869607932057930947924915544250864603376795082660172748546293638567070222504045397886210433042717820422940483595061501519645289712324197878924539040722087871330300606929761805462398487054338646649296618347088578439233716274214956000205758856399066105662901886946243083682778549970711286186506001347609765822576148050005969753796368631168449189334778397735330543956206615179669481736128015204318641148870747703754977129574558636873709527454508350773574465344552595922510059463828151997208767984835208440006239003548012986075911897729072829366233485560356513275527336104225287693222388483940380624490046453241915495214132583275702146657478630607415637307899458876936549160301656842373131939938458050728664679740973700845725418105789046855481188394128371072734724406053920568012313355504299940317306831198898888717078790178157500241254985443775371466675107986015824609215933178730965384022672356110926143219069052862782887086940116772664562042418302232440504972883614214131159694058142235296827708266351367799569111438163038488722054741041939661625461151364600646715384410050748878128843369971976895773136319628776251986049913779955797094197460184774204358177987516640961369076353687980277186290194401851276500121596858923322045972630765664695651365784754535805876782025047527078165758442920261632725992354666794077257325437344036997244094175527201180539420663109591679842409538668921944223275095435781216588700802162521091092103572214620040820847989591682043145440555302419110914866265421931811150463839409539916913927268456416173527011295095063170947477684410032427735593723913724763314633519457861869850461614440763590805791906543054684805890525383028384850663553338050162293578204578009570594149532202514293688420104405886875998354742487068769047949881458275450926770248905817219554241066170845734688387676263213549593982234054497329512277584724381098212890240975946507050948860893931247914953924240186552169826021127066449377435456834324287022676924855990637467431948074454717626003060353282468567814656642650913526341515435083761237696480412824653542490871566026399737070893228058976904750576855237662837591386960685240455682115496286102203524329327853679562796108223370386183341969013553665775197774517929567464551532370480069246131642989003518598645257088668334081591040445558977682417353424687004360142208186405109255048632056019794289200677256107438333402126113904591315124677690508684658021424702348938537811172548512585645974110112359624195736153999521242047697828676635459955790053790665767256750024963035311523676205244600586696538045660729614382367554902079821614133505968586219954830423021218589886719874161026364621745296559973123307560702728321743466170073084986563470515984553775477533627700354584162940729693445124201768036470576273290019147147863966691072472840708633471338548262746920148422961235398288332575962159680770567910296150025393223052400669173873987199840455430094867840674080053603041455849806714572465281176749673241212379040949766849814483512895653032085382199575102582535185560809176033305285193375143289115053609213376068119668713600643910991218336863186406069051583503936312533833360729888204047116481196577394563433162253138389247078801659828954633360872878038462708973976823360818063337631381751300483627763534245136513674818663882416826736520062832704993663641448982099370725461168648247812406155151837450822963432897911572575890640657361195626265787193507259227685055849938769239242313463314534545271262106679295949899766146848638836302268454887793515344831912662199926317881599377982592295034094981193268204145517525210795669166835974329557399527314252279475151524293169282166454983653312989165363089970135904824407287587092709379041499581281351728089991812794602062547116424409307930608155909527167086753928650831908626426855587353308834911496851922434605298332791849253136042834512037163775647123173359910684886871880729423912312471860494892817332615117451713311341019405413464556904991815145251146982390716512664816176825205440028421514708484006625998646698548388775222202987949936253103953086387258658912757294688036900214370680809711115695602380731975524099777677982791925910748408457075810924581464953786456228343855147658324028839555079365930252999034713385621710533072057589599247973236148311826266889986413065571124988617504744253153334648156312362962658840730439175032033528309572155093961013430095829716253038436380440240655900632912323323428869298472844429288272122710814906392131513948209783759983979478159325256528098657223295364507762271600771132270574521907972809913072739210180083925465992411387697188048405633241454927495931213720499038859331574364845159132915294332878736991880080292325364984333207841410529826855452843850491838514510632215064552392186465730744778847923496586299818270470041831317839709045896724210287343706850143869710661457447782466189889164501478299547747822100979170051398751280268802595041243682682919865774536728104121679043062720787403255706347293923670372754989126866632127474755908333900666481155687227239528538703102361630942490569287889637450723001990568408793441971711777063813403767236951618719255021094237802694652593926012723484330376048337403757397322784445795506867041053762348724525414647787134999417789053013836467642047002698962405889979616472359040898315919548296351633719931519655280547343349440463776673810865767973706293149624050115227277718931530364729774298712311150182307785304957991371817614961406298783646512586684571082445237624455063456951704885794150391944946972101190794663015065352177386248879248676307394080205521788339895560158029932987760030809946881947717171553407491849997611919862437061550938858809945051140412839246846077437239836160421507273531989312076474255345386548540749551522678107383033156581341209963806027954573983833132000033749558867771955327844250047857463324948599253267516823343235105847803745121698411163320875541803711127189759076577373918521479754783621819209990622924730869415726892659300943641371303866013173726180113230293165982703157466265011206341132647270621799434154258076082904899830510329553387718411013655718542701624431883477070390550424870541537413151839986481826948858710506906362467607446690177955439753698648449501890396433803576300506949646570442935757939078278220037362007865830089761238923302471016611671491709129310775511472208585777927060752174739034678776315273640156840811763289908627753609634121614135177790678177756706431706817300285567460308657610122950721922273699867363629535608362600808240291773731329416446925208573303007411293141612651028557932399733292795676653525079892039381922623581298284693669771178436550349901693869614571611900242459185549523223906271490847003699695954926443248121969318324994889254474210734280461404213461342558463519662357325186890421640708472293995461681777212841386538314065377802405023246940065693567701201401292965726267701890472368361251345086930807404419549827625917396256393204645784699210804796941117159391259991595507403181516724562645295919700604829203741836639335040375468374890997954111484901909806262213890588014291385555164423750153504921775863883062310537015327633075329212106317056782809066660521609892136401674146359482422797697441714365615986050402822182227848056708954390281974150703266324175885987673160874376310628287100152027866570643265794039607840384908271659368489937342969819748403494484575645513430976597363068746231668621002815997514301626614336235934680126204896696281009272381451217260797305874698287805345753693314930190984824561441047545784332641064148091647517712000568722104747615364068971239957892647691946947874175613020539398285199903554400713059500117043258002784923132132711347234957378128119043644563478278418416916946201270223188401196422393011672101552650668291354016454648633171333521640972600631509394845142663905590430071900711864417091596029902600679033438859277904043384393977223998912827485956450109818965481202624983141734927185044059202235270838572149090972895903942402733466316502099111457996613791175405845909995106641414748330291790235371548593170965279474164851154544626748596361014475263319843070672569475196991015148532995921812250309335397546118783484565971191709745005285903641664963561567242194804208912738133655415884520468708318979253961007619497554506554085284646483529296605417136897393025457272923895772821009168261230430414259342698497476075014306616097742274400870808935217040300717475920490543736373680920105237040379471322206010702582642496157065545870551348939287444243302857807907656944711851459101670417268816129538057838097772816037513265100281835104602889371070420876737484063091526059917544360850420546442407141381103468977983803529174983573302574381415967925277680992966333564365230422206611050968834870882560016521990279005841339755812802414853174315758049900658828039443808902268411432659720775867253276107407773700142966131737165228589105362015989271135369939305862701378413736542114876903087628594493719120517705780915442954607723832076072837750129625589362697265740587154174256658594080077336143767242358878371594091565201185902159757515279261489772628817000918236312258333098198461564884453642233704130885232358748613332861770837959891767566256701764450975275818068263189975532879802910956288438497404629327388346770562547135905417455760465575957215546048974076429284000980436371834047478926640996535024078917334265407455424162504594441213144808802510992169282052639122270523794096272667147308586489776315984642529021381609002231446030847752841169876925057995671773339254808018047344279931195544210480906616451538285354092747033883784846528842976635969705887233861029093451541561753762761505664917138788574806543650755568447277389669659319330060973914725724877800873026648257226594758872177665862554646252733497791315280843886113785005999358773372860454170436973852214657527441820906985490402111867978190069363841551115982810082453264201255596713093406350296147711871769084536507245131780530046422051246189288145104292493405553722067535034545237080565269874636050191824952089180988891923158316596258805123092960772339494912914608136191265571239625072810779810540443825590270336071335566099140107294153373688054593323878467030734986921604085819001739716017145308453216240075105343307184328385080150238467157524093632770104470759972547214741186450743644800413906912274056796067478878499423297563414218194912504153606366600271831759510725992879407500136156056518863389767059990115983191536558516285568409347602885628103752955734407561025652999835757879978311063606767257629091508479246416525089655457147681968423756664028119122085778869948508350667472602001431922343190411670072044521741157979999532521815542912192578509603327330527347720998031525696779694798805185389033634841494868447266140151644053641378613567768255947548725941129371123751485011643093044675368202191828191461698630480555895004031992041045026945610136301207709531441915364052631359528213675731659918457102231995779732842874547399304870461899790169417248034910071927799291497594595509972485343463523707624836860251998282126482110221011441646538888317727537306940590581549153213002104186027257018033318277610951872687532703600922418304995939567805837612972387148822465205420439223262455694905925187216586595092361106186493133157846369484044334480874169882142420241794131889477690234827865438476769474226037565114244285793430071392021565910416663124669404261147180761805231884440807830310824876944695607373980371230995686981727701232416696647482583466955411653752590047430957674650803564037824176363423922375132218467935478109046391962398848073050869836612303759591006626824958779281104223069584496418293728125667407097647819680162145264804782469701216590615759697921103069949833960796623966776219571722545405213327837314828087906337762223780857814151495379013845242250950428112899591262301279756616787199139822524240155666732955290895934962306511935936993258264196351128266280301618504558111366152967797073474020475549845441419953815845842485751393184025255480311114452760074806762416619248079924847447509003715326945724865661035657403477027445753196059185043674605361861849384543926939696678026070108883827741587321732167365925776414478168688076248582335905293292415413340534852441018188334339115137475258871648393233503222089388070736378648104676098901079932039057404518089886325122325986025481288505903439914450533858876179884130730971029405931936502721886395219286093087543407831393307854564879685881038425010074596014317707159687354974510209753480511830870511349311876888600818861869291619031663984572927481625241301899188949545382430381609531526218003646223700904402016716751837977288894438935930863840237652016686009038405914410072722218011500811050406201556538490872558980997223498752861263348036294456402255165110447920233102579206339915631523653882725275284618245334347474195932320006276706200150794171757591252258283145079465003572554838966485872866142628722715379065271544626155249076051265146075933996585532810648241099921902317874969064156165111226208977625355852115069788321498635039433262859674070827005901262071393698978741818119181754019120867803828876647421439040545918391569582870329093177619227505575307831509160338831880564911770506196252809553353075351380458052065488817520740450123409158660454334641647531597573332771170800479252005237830632247234102488622949734210489137356411851509817796443679398935093202207371528498281264226555002488975886994825972600323129089866685041129687831086307259922502668191283474963303406093660493256468985412394440844920424163518808103381520385091456076698609988599509710372054920261014055513716991976592631854980722056019206506765220229259391512609901726686320013693146615652475816948034740731402180288756040158132730133340687621290667241060077341551912899221506983734966431578351399752033321426221765750339484997112331336367221668410301375682167584986373990997572991852268208440596502738271451147210400621076619090657495759906102766465605040583409116735790138647385899764265037579484622308998937722973216269075835547830641251449728486225858484729888770059801742923205442465292111323719942637650597036691857892622017171443599581550985385405628476176568136453285792926163256356309154846419075619865977131267785511569716121840144437223009105086508163960185353977214030027962968624996734242194668434510557920163476356768575568298933668800793929502343168630702877314762394138116965727932198307148200855993355113123319145400432536621508037105167589882041820231062650018353736278068925534406848873868820214042186750158666415094357016027450334091143539167857229479685287642613521068919311030372412184420190513892186834528473105205256618672580856289478237045356290315642809403636426249087162263131508936068529967780555071510973369749249337358893572314103797227448782272872369029383230682570883460708403035228521021096878221482667581963492621952205732012774499000331478302134333162350466952096762777955827307068767729305311837827103222546851673256277922970348650570376660226197160972170208521094217543945886737357622156143416287572423484009560174989640878038772266136457257391016912247549915814819465528469467192650910935308989571160673862111522180301154656642005983341732060418290085364525180218283424680696358846825497700458504806998816201751945731580501003489339296534129307354121367631434755246280232456778927161446328241155658849112917542829884758910967054869694233858027101408048513531368556185433366559025654800326059465234580086104722368404161080841831098095961143956236303655927683125243487514091530853253981891682942791677306751808901548394439545901499405894749700872485372378879093838907793682145180083259434415089845436751962088969973654354602808968708189029251216753971721274194346752145985608135294938676256154428037569652741438400305475199259420090481995079112725780340227994323811451042105607946114127647769102203162020159650665726551150819049390643078136861583695683003134448666804446215976083211205243231945727747036285131150388220245170207700326173866103291075019093855905369224222662615205921925318619654611689485417152421073500767312817882988389866457968623059421419465584466267399532398255383750283816053336731101828606496216399838250717758043341967276643552243109907364420657210741820365760164362010856318597981047486522010627166871440282918660797493696746023426482358070223601972795802021272305968700085589112941085168034446678604897381045552470850229540580528312326342552724589337481862048909831027319859156610442019649684376842436210055492373215611354152930148121419993813764713874586957012299908324604638128122962410138747849606297494031061048999766756430195071994323865534801967463776648354833453161147624597607862917378843380110276913866294085502724399639745690281107348351852140876342897361540544529564936426813602592271031345585966564233949438321121150184057128527110665865494213047879116374903005966346515471583837736016116932610590136128507609445049211885108263062901961147297117663077922873339512109497128008563055100624584884717891923065763432114173581289140973721068620814010511343977415902023462778573534487426319105584495884185574445895444566445861333262697381433076217012237479997037738549227456168149267019932318850302817011869196384038987493984048549747303976011796084820555354674331681304619133914350352447716599575435416166575115471440704545451899654637603917097987169949602379587091563556723875360275454689206003047597872645179797194196618119794323483006138735949914979673390642894783953494979995704360225915189389749263914739388725409337878782217012480424973980083288849621964699011949950588863626902617247561745461342868324002839743158463465216807096941264570705869045361544892141097241097817722729724706646877786741188447142044630093843811032369115158676674318594501503794152602764687566863181357490173088559520279980035747901303796674553417342325881675910258748646120395518965736579102809082094072306833337549063360555611081327006521207583529506356393014284227997214267294941426382140161667175203668579091007294924491527574366674321136966795028482076705126337483234948132253984967467176099048714580457332102749555061314310000730022540553418767518047778807679413664697229966449818758471992243274828030237626412222998562955795549862937206165916330965512674880445536884374906059466483960838153461835771688235881703838625168623429858917463329367323514480715947432212138974573520227416819285520603711575579246331240613323895890954023193858052313008091117234262955021231146152252530941658175706240956863878499078673595668295524578970457311902559653290682076650640160310106186076089997791161896494268362980639050258700464730198450667517368027498638389600781865365965358604471248710934669968083846931030748192354334543929530933107181194569782268880857069986466853966182378667565056516676316349405107105074181899749786201645527751457662421352122230672818866886047152726068379215588239133713656650115955004154438784867423019820958257825599364804903225092690299282695480492911710125118768290209654545213660215423134539004099340197942222350195354029716926018098536887740988679122189056366478036206102567492472037415504267646998756198843972500397327787227065330537613769182634201361781271594470079116173776147934058983503294624105625344295369440966387411548986075536471903267402275369520316261429632441328232013867898039570760040824285057022812808372761687652815429064137226295161192083351994409033432992511096862002028131268971031721305119210336895461315693636635176031257387329256965339521772545288933515449578114140482789031799345206721899818129167012693734673505413972839121533245787558200369289564239306519431616802476611570825655246468390760313096471665539498315623627914379927311962174976322338912017447764808323464155004785898901039741719643180680408642627044030203976158828082417681132489572162292370202587307787804397544034415850309159677638082816590374419554999251734292090358776653823131934403474519158283763236933875709696905619417858953279561095339520877601705652926066248561151711170778454896289381093285103907682419898951016240086869780316827623059608589862309563512290868701751566299881518978911588824145565231819045412484144013460054972174015388653607350640326097758774410072964651720219135990624239110090248939519591036726413176169092362958444578217316161672729871560110985979224336962758827338307427175268175995211507159737480939325456734644495008916792249457083638582526095206798796710901904914348802481387170612136935620335058788851351944781486413867178816523339639921857154056601896553304471396240085050164161973139457828664592644534570768887099164025151925696872797814409532959956163121931013706913495001421520868893746060278854424995481923339188098526499916969733953545318545431007345070263585172437261770829068290198675953714400767212123886267054381069439782636123587469396505310797228554747210275739608648425533601480641801956234157430600982726946027602822239867402773653179568405684639970551471507712741915609987041589427320754018108857065482015966544227361516340109417144742635598879593484586901455820697422296905298310849665731254098224457908576864111156416323538132417389518134567402149328424205850805531139555272070513754732736680643853627753906936156106379365578560020732772571787850818950824272085849677241891156049744150593793852093959571620015090208445000074697853656213623755753050756398781200164729435499620669944909273125542728212859491018576128907945099953641224294537840771945635402356765534468011344119198374605354275219553986028163406181114080373284230418841505568171274933960008383567083648325208803325980737973027865328542051125901409687253300394572389660255709392970059621676336500792933568629264372262970249427179964864079271031369762230690449640073643873276110528501590212248257418286539306061811387115386164421691101528870935010667936469134668372110650128271334044139606964992331808048116796782780258397237760147713529365212145824489769540705508220795809522429015982896115853773286213693395508739501743925336918312673693898322343652344735267867526055171370695621420500798270793577177555335072225696156807635264298464181069984224753198104610933144569227652661409455417972134475965364199245126808108904950366147923875312426588188136130994590109435617634144756598456615226589092245406311407706161103240390675031848307663957073463817777151058776966729421163570391609438205455564094883378554580840377055043741353755516675548180329639496910731799533167905972178780338874411205584573088671444581007937196294080317025938269445568450238361849202999095823900690377045817128583135634817430876848894649309610643600545395941264341746797882904559794955713264313437369066824109256137018171567940182219284986508571843210877900389109856932594936088872099666439621273734651339070082594568386314422180922653208529344859870674943448146173401019496735858917437841459312333087146968728848116965192204366708664059761830385288105990253244806783126956131989150233029836900707618377838985047026611727671012930949410801755532591321327706901321258277004229078849374557568688681204239654135786980674327705442013525352151380158810682096837999599327288843172272672673250559977540551280027941491218083966957860665586233729220586252812803070843747907216965468493584664513452248402307086068885626176058627618378905076081158613512531150493313662178739140914712174275282947157172877654654509377334079224093249009508127169656273187939942582018882725397049769919635357863306247566644693506178494541987901146959097621490196125565512294708851007225453291395633449319233322237455722574463117916094205779579622957079068426963683307614282508733132463657415096909844743455440482960375945062777082601868613582005775199442623108158598107252181738058232746489218690811988403429018794527187267074589213677892632672067757061675484850223208398651116326677367119678011387077938942605559475848692956192349664492203962715302975082379704936167385189102280873981165673477057784108491250710004806202086895498603937053244036742295870140467859425828820372383984390568655060149508373363162368956105940393432955904361361620559612154593598144063656871337313200704556572683563450970048479918401897347337594426541571462736637469722098041019171682625790402484168557949781101773147367287495454889166986888571320887525778180534522832349704386164038010707599796790761970295748802670799024103741526233222054774816355035445868330245883766013963731693307344851603729144630906960981151740650892098068964419884297718999793185089903858247447042161535923047534173472196742388618256983970192032866237268995618156770328467624201894175343839436638402942845846799790588980569789470993582611340186345092804405632507343397591594905345446605256474547536029836297247634907846840706310471759072541040741511944824534886622418572871799634081189572383505251501923188905625615117964126750183947206853778326556571809703191651546640491219244939994143923077187567855340219192635212207116999070170921653305996933740924718135486238068119509232023691588577373053411406940205606336132695898062697486371315740223351514903760895302507383146717801717013311619398587090676446221349697708635285321322679777446687452263822748012502837745975222879486310473289881234684372274245246589174381868540593838643794915742810785199143226679493264411510205564107833723911455441285661831683083645433537708610683235874844906463734622561469326048750919388287383460044179646987987546110176136384759036869025963531229949852967002284550849359283198601953537187371380212533790364803413597553461914483025099776844989666973158241179702512650714704983313370080412839205216503549278847990052616039678945378069227473947793909889597764575607088150606429168530246358578006558067174148693968036990620618127357640054898212693342763489498532509238578721305273336198248045202133367169791748051123034764565786730022212160660879196614917740703372932630243529291781330486057805160796835019844677937079605297180649659738509930904324436961632536077888161037928571797367130529018323164008009178863710656204174209963358051656384277671962504211218478796806029978863417242667090173163342232641601569068931923486685160794240402710935709130410951777575478857353937390317584334256507154434882227575612513831746894191996177886495485198938683277237678057249739118245446097529387305051598454610287677434485108767941336633446342228223929313741177903536644124651819309089884256256590297711571268988953016027290124311547996429752048017272612829681268241732009042664964634684103934762175557584741794977825652227441282320901697126209491069187348513965777652706642056504394047654528370751726751549601765846573891945972485946999017245832841975318395413718911218523569655916076898891465390448682534817567845554284279615806219626759582713127332952211843051438773458894445619093529828160267351457079167329337604112781723141721488897281322543514480623087040817943824883820359370507356290332300655175805458133055853176092014205550349007630963848613741054613160786895891075499649776200011974749612301582426006311504585371389396382985132230768881317133980682732020281590926038489850299389828611769913271146223482229946098118049730944217453755733047038391928707372563283918279485616909617727895011795707541065405190990697020568180948610179796281987412258920399593311007897103090052316104313525561845719100303859753018909490932355091939843418377419103817884141164567559647146000477975548614625070796507095209323015908909660574120338226850918076986050738134637013756534516725075068905205006431237212839716447288127791048707917275596734271927696260200311868480610022465131057786577719901505633613265342839356264218849869152407726724409844353419935283173472113207097651793883997757346487223732565186895934893055897491280485066764293089451070046248979809267507936196766807524122570291753220948959908366266912453425282156816550172256259723627270519832780694466984941485726501123910468120544088261577863343468214601824221602581356532230419370365116957166135358881784376495094783654808069924627714933039508331542281633256496620715686434301327427036031802136660325578407656856946605084410242326379127313659630009802874413975993893595966327011149200733592575667719640981477314014674431927434972576137245705531383070550182839390511171046589551578914547028646181441604353298677953361252702279786535498069255134795970078399368477530883240737821637103348995639219661456377739285205995731483560832078595067723043387541238012223281609554034879839502187073062153552422254515753244906012620795805080447831663189615190258528881746038889057281213920390102264887944358277230964917214544994427321635417594124875528353198643887577991172327002095002994515259576433604186696196215896069143843888682173988604558787389722258761067943897349910081891746528945629023552659538670129439639084713058831223415503184216472037705292251941059144763608030651683470248321061360096023828220154211446422950892895742916283369567578455112783224355254469483221236372785390707160427537618239094359683680681907960071454912723496286228119978554401703283597346059881516993672070422310337024559552757463595284133618700993797406581373853217659638248410965517331361051534619814285848669439800678302015105376210519633690060231255125793764841995888056655737680371689445325511326197242903033533824557036357407186128443903289984820221156501475151065105707766838836562984250564110960087565911729815010619510165955551638487364216881656214989913090923470058254523416651652411272693580669065343607205340656356464187517272768919428394442852186882258620429698823124018632056484144645901521219011558468639113249546265577340391116766015802585768778266836870455415272145297905526278176134926452446617985986946773642185885638425985218448683234958922642228999007632322342265457966232631371627520424076390260109200649578510565894220225121572559827870648044997342817749864979793069794136339448233095233115448302305949126246895808427789105864461705729733306201519464339550308708228376863387336658031711976855226881309557627181626771324963104197764650412958781939123207981834818758730269453932928820495239461961220603652719221642504822285992806280085702341262005989221748303868953398794797722015919210256289676106352518751015641186072455603902604369269698605131591955699010281008055652913585071054775755891060560997786653838250874335186647060781766445781101604508352522508863686126917705449970046914571911509805761933294453749794216753949932640936613711699680224074369423085938126082729480805788741392778315265873289576101128222151751422702018813411884050903320239187463994160562741784580949977835229289874479311626828723905633643494461348291374063979391702286169167652477758361705189129387292885070047294529176760753632545919398147471755262441912983773982664385352474940592929429512674980684221537423492130644813215768205134858427244600174034903510933998218469089104312178938150849983185072974549255399074907929488881708592303482212258357938366811371386260102896853190877188326273244348202218186100894289522127544978439504401782024510291163100726615158789354933345289813083172202045136958169425058207553511722258583817663977224176153335754340446885522424350943163279294933452415437200672461435776105203647343750775213036434188569816839553654410417470786273326823862747362141709189860378763490835509795540072224936522418678480331843859644103183753836439956851735230993297355328940984958821562873867794121415291801567198234106492566609564246437074500880782943775992181935181832003931379157840772578195825333928415383525940144514940614934426297780466517506693413508775969650209253312572464463237252948817249495040244976652156528675936476134422808364847687933525681455389000269534505734542953533936961994890941266164261752187937238322617845023833369073997289459676833876973623932356155915825812246658921007995698257949650155113257611065559046635994499442494459286897801834827344905141095601862975515214179499797368041699158449177409074111767997436845945573466551639880869854212747887077547694003555858544553915677829128854292553696587790906623308143935063702461364619304536321069309735638647381427375497603818177001876126252196923244547201297259958131859086565850439088634995382349943972845674678991413567317777288582116751134601080481293744726108768216713658225570612626476412975152195955312401429110163620847948860069173497169441700184247005295336639900874491338397933551432642654006889096469394385111896756785927195913460449354686306353095512592122050464349438812412730832044801306578403932095442998327743054341436601285642180256995429360954654882617736789755388812532223095190388979979817467975496382461797397796669816619979368439664774270392802063142853406757810855621251708343323813908365166060009684532878191444092582371841390838027201990501734552046150289569810825631200451991939085524983314960944371385505649203816566304785001533138123852979930108592346949868679081998597589845948557004642760004970658157377327718099553996884561729126292683984931638281065887512494170367742164326951851334718315105365915885690136178852638454795308144331331126342054286916364165296027312333344057044276435057961627091702641622913134841468304435285434565584290570677551655666087407122890082942303064425896625734936569012214523102262434438466203712630866162126984630364529125539812448775686376694423548758013256197678513063557109039367820302744352894771114774158300214629937382756761567266690410896001364685020314825322579247151776642766940376769073059761283117263171334008615526160030142034745305754875849701267888077566961361855447752833830766089538475714948829553332648185635882527082282835837212317750151568495911093850056931884450545752986020862686152820833751329255877261485963643755203681330569898968080591430300399983830848493425830600433054002037892246089313303699587268597695878245527106852466537316576661762539052534222748910264871793500091638495923112865693760553567126027285210635162006883487642506752125958283929971747853322991480003578307465656419630870407814974440874623800790118035311960400464375222970222384236966659194116417705697469722782213939281418641281305429795058038272694985312233117754889438180771558614002358698227134910089521122275358493091053797540530403491387073927143576940531692196004428602287330551978557218628089193487908652504638166462684185346710453048850049344778382714854646014828184907368299338596175108372208032633085060421180209043425682564639782850075047242840329487712566125614650675070587012831448523016576338384151285118466059650241063731990224068166414016200252229100462320032274772622907088509057742394786874806372450247176157710108290763012320851986452110008766025598763074208814878402609246942419534856195158207866472348208687491276701715820538930590149834917643317164431086737313099602914024154932628263211745855046564557907045425009512867346396130371029015570698653850600818511529710303194785235182137049714245456573912355018215692656565018190258365589149009308035555755658446608004234220208009981335257966242415900760656179098360837215100608428308050495057872119667146977145799947934966959125172652032103058179659802546750641563655363355305088230034199310353876553897396601080757400298329647876870691273031951481789407079239747192135206062091330991658407752095883929379078274335116911927027529654007695122907151330015857007795937205896582236620422303781329772904404355343196142253471031326282239532415473127419675706119535793095934245396413636723821221186698766510563570051202833149108523201724186495075598132536999238203394618547299962766320793644627868114865475009836175434952647262781688925604675699756635871692198977388719970143270668194582383883221496912738915391258499833068673073239693390113019237044923608686154484658583719931705134661020304582908573926639787506780914646299278871545845620818370807845441914935156241323114835783174341603808174015168345362052646579806759761108343295881611353424298305989733520808887090649763326148860941358979674223338202540005376958944389359192055939575017058291502277049514301875506347688811310072776227482136203587428668176821271010455038631953179263770670912615241874888019859615203174565550098883129431529857529408247672730542678822344095461942580583420871082918652425376849068740409979646024090121738267127747450254655922212192185238026548050938493123974866778736145137204557633720007461549962864756983047350087293647760179052559575235376939941103613779251569374964620071040509385107824782006825640607231423602144707263161738350623100628011793904034023899529118849099058820964202710765425393474576419254308682262499241864738894893672818474726748339139803217783895721159630736984192196247079620383329337552953051378454467974044260868328154406607993849879870467406401178140145770980184458743786182553393497358307916189127244785233713547949172251984402844677111248056918007717726479972909690295673790096123146527552733732129351663574311965977048301037245241959098823191598172054247865729788218727963059750877878956238703934634322272757403817188913194084483422431702027253803812412219128088514542813672967829603837126471947723700370564040663813533249733463639221473911079900208844216494375391657552005316330359223797516967193901763496061161473459644134930820937374267537971169393949636961463995751108143318009752101139027010241926093792134992868603819284186977329908863762621756974135828089776967870025216682176692300218183217554803238439339686432154757258543992217231300837896077832059268469315491797299413068132613994922424266043580915302293868125802075246379474744459408844947306669655175958777483369141166612787974556681422945513239373550642922186729829461840025289850893877963626768497210144792356624527422230216392898799189701348199406613395552269340046850378018178254559787542836886769083469211194964196653278721641993938416487191100832750333157658741525310680010627493280474340111021162941788662431735009956602021431541429504587330113930112538159844839062841618907087309330637713157049148013761172937610563966964931261406334021033513133559037213865157586282883348794895194648613675387335674153836939841400183589673898165719232883674587819359483033644379508619716344254128050727814302618498553799732820460313370799994429068031763283396937454482573233765548633283912350067577216683432697567306236528099623742896531772363776565025100643737126680880051081750528903915947288238291464797919218945355121982132588836292692139906830424874562125701546261377917320925371489077285279352051922965380591880295590389963519093073547766655064923608414418169693939427056565295631568521898816913479270086270062001889657199319380944743050959989620746122797031945274202503012600819308519484240545742830206950886283005064465227438942770885387577336323058650786248383888993976183263762133335778946608988182497279730565390558407759512297599947080255236533345562895964216370696951154329166943731305946136504666620833423502232043065807473190569382072350761222615776127871176839964664441438420290119174643270997621879698145980529994957563382918249014043781663638095674958970027611786620508555186782235857066445174372611653799837680847695450726550182172995789516805048115824586508857804520448424609272605896718470114240175133062302349130658258321246641926185700962769446619383172041429165738910782195757989652452634293362710307309107339298563035118875589009959072330794400079631248522656349871418243345609855402614829265726365618768172199857862239900472087531179591287477281897136989227074791726906990280736952593256286225741274888131701035419994622070776828865609555082575730368043084864468892153299694405976680855405134105520982549369856807990648991630475498560781051679875407871001185968987660005127687870536297009700096645298445363160438227631772327471032642138234224150757211614851397210174651354669533918991475923329815637716715778026305979346527907917164341412074630906646453571069003293968329770379994785036856716675451527041339224762305480359810781585355929326070270794785101077510926707019519453826299230134087778901525691136576969339859489870177067550884999442398310446121189679153404219819950332862305110946494317869712553856469315958439286416631947756787626635266916016755710641202341193631055421091533054620678148754106199629600147430317773276147234706588799986482733898943277696104212388326527684860417964346199736369230908810458611110983586171339683360199904061334663052100387666996038895623639081201727658948121588984059891400971802937159576486291893958474136698202156782285103973502816379486072543397740542968199558735402765605301277445263105155541181839649351292837577779173699461634533271205120747077242465739712275927431497280268912990998141428418525682071253295420492122756510519540922273978295142184899936243752879230324085259101791550386007807674371524346006317194200365940503885100437056784119464495760669394041864589360941414326323691027645132154768503546814754410053737853686637322666229030083792731021371578682465006826968488887130126037718914510110305423860753299377559787378787703530515354541613947110086101724653909007489327850133292107678244970241486644524525637736093089970984520666176098429794086516406101293221945093398837443531441825684946260454969108376626400029302492245877290254537555594169886727390599313620833834691800301322455960771977155650549921057354909763833748865097568646821398594098890781126650393261533682971417336225509459390303752894658392005683481158072798931871674805427577125043262975648315196185748655219638223413023079943693066000823580560348532719024014894528862601415135121034234416016625898888627165895446389057336396536964269026038346469642993426858615963493458591329395394709404928232357755576957469087320120327540820651945819669514015868730372239283656507837322658445293873945434856941255381837426852106849365905403667325894993996170811348352845864467759456257303411130206152881460849957964337286893300941452669338289079099062575564290839358774878323022293651243926127770167740850379768445365322977109013166455773089033129049232922211144368238079311495614860671155765530626465729688083867926649774467624123004486964348398463432706296187452680630027614839013950347910304736448318052455994750698099127838032952318650273812621836098017072475870590687230323698459648102551902766031993919579627072746794483384792913703387787273841692562367029319824582645583667992194160644501825073505141826265373013417703174872868413722018732876516734600172565912977199044166206610873226902992632383985159797750319162452126667129679492183237655255661689487275989248568294450813666560795659622393045653635953299462615353013541172119423700828553400331974912431739714715969851343083418061513095580664063008678060247378980236671657692947646302885946052688920574981137197571262931830057715481327977208646196740240602243510530832180135295577253856204669119707806595260187647891435200986198834329880546575514546581817930662425611599297289025953090941386795810921523048284333286833424859912194291366236263614005856674226266582313039079628417732207431139944595420447261639306636615863736956722863972571470923361951656643893657047466666180595257668915717192775525386908966373401544956596710308542811621684760376403532631284034858560108807597648724939949871981851345734334376538731759090552302185546075865557925446143365826294570881292621467915606020064294717812353941117357473370546969375159498490933023735389694788873316989528679731805798806197912448230243649929784859007828532736497709793291189736063287675881025022887373010684749434081006093424136498461559236187242135771106255259609749289416998350825822077602210593436462441932211814797278654919870651590709640796373488805970515074274434373976763278281306727531873430240611286881806969128929862924721151393057670997002689217804768369181168500686555642959600288623269607233805593517822275084309389200920951323768937538023991830376952938355816620872974487974617503642867153323816706845962735820336646606419343190465182551939051022533723076276256017794944429890675457787499649158118960760196606489417469922989047511682497485745185230721677503367616013402212278663011907659369066619878075287174063881342961282328523285330830754928403399472381937771791972254212070288399093085157184525939840533771729496642170086506513923965604309148661421706951876395439246455974192490356235756447651212235153384557177661499816249747476555709809456204208947951238945977811819019326381331257623126224733474626045125748012212270804682353695198219380332940142189310388442319214693018146306293953501072198416328020945614295598977794459134292685633982241519350152852883780136389244017895184687326725552085435262658864810850809477012503696378482390010061978999415146771612645366540323860978981355548789719345631803195127086733124436789626406992635357074155006892348897423025202536453289194518961378314001421806090875798039953204173411262114010130005580900348123119307793055986699200611049353484158627836704504172174511041131298743493738443131195137131841333278246587534233145595299913881086846222676607758268024610775740481109051378817045242187109162371531960979025453817430645228136163711308041758406522675447840995581191180012210238710862857518855083231909772429223648899862278405563432227863491886847349212880623821748548147388200476478456775693741175396251927329978364996665328116045425208858553361711397712978204398302917062095434416487861725338488173664819098945668079930819870512365442360718223407912480976487837417862065494131710676771326070691912155741474974017639815922163239293442826053168143008825059236604806782236137660894569845508917591999878874839876729697647939949890092774032842424263104750210968624605562532252270327713900812426276868825162892839432586259654164617339269456065572232972109212710726751910150809989005171532656624166066398235120785655780016566332636818273471132720537489679171042256377547439744651625164148299247355746882186421873411404787398430356119771011669183513587383685878427040625898917202099639097396379949542166739734069815123130277211578733174398175338036653450628457342274122840084328792564510348807024361751776108811183298712095984432396163473753751666991965114568118426979091976270332583805469888128607824712162346625142193982614257122939804451976585464077564556746499610678547426736379640427399337606581273585106415659769210627597128452706940196567537728105046621855379783914094065812793363782602391886909061516775728598749602217160461721229067648066376940374433692771713753981239751741669961650287850468673388741354398126190585904062481966482033079271372140721189168936203674471849234253244206061523260973618960866941017133889127555682480337893662230505359067447931092436600480233213146468670824857395144855411107430141677840748766027884059179501782147029155346685787480012953459466321632664672116920279948054515432122708317609112413593598792093743092643085482214949355592163120059072711049388674209121873008132119979785365593929257746347852811802998501636518029434200145692783988075512442879524084383253552558539560998141172155596121479295960559666668366522945449284914379098006652146743882796315921244467689818629951724172991849189864977227243179857899932999832106465437613567532167836260985032451764090321778927738878947971628664512974578156837168209964723841329873769789814913851759828719639713260826276646865549009196276091353479100876244493784836396425581524312028658902939365727496313095703776048296494919086807052907165974475045301325494952807585652288905236115323671958406212817520736830228542109953263315374885388918430577878811975725200374790166155805549061706443410366964485931953174104920682174566867752227845896519727010817123401963148402176741291374768389688885311154372612282297009641183677384163204047393111203207922217077992269925725442595288763806310836667128740199001310357902585091650017284120285068080780155598282256692049664500398992550454363290599587339855082797134619117817006341931272320094529771676718222205376973300149006158332941982725050276084043395253596975375476001152133209343774231954210868709066169773900215511537074730601754472463137361222029806604510163290654158582064555911740286860558121499827452864551840395887281915513927942053742990854832289121795673728413167704350142150230237355518944842052137514421267569418129591730980814743609132625443668526259768331194577676399562832051719673584216092592868212500760991786177498492857313022430900639188053531451065095891216465426618057918915272606528980359748014542058761929657037427338992839794664906535767324742475514178787451059846105700787090010247789494633219813041243885001447420032576522159641474850343163356151142837601761537661860968015095128663740608325160288678728186358888353366555041406381418876415700018930350393927297871298359542667338605851625486613714905201588372968225306983183861394157988931381379083351888958313223221400970783392161626564286335111911439582511303086197126026677308820422345591404235926607168379852414992114066294476911595560073419241293218470252710462973727706283285462786691235071762763777261548469621356535384970854468548583263394780004763216001940473753076124031642696045332958271227463696718987276943447579933134659258446591000311756025329013786161417515822646068028241720650892604866167379332664493536657937299585485563483502409032583079122273514460660623994830262622004215901078752683084574331033128902316130099882002766511089308024543348950594454019349348783865775829248708848052349790233999696948872269815081250143775636559578457898590726789454483315092187571135812115611797269780107376080484750979282425742765681654200724685429906810092385411226134280316171165775009587806051286047570057584085211057090664929812711636616155448553616060837070359382498240072737871918548751985922479578297647627949232470084926407744703064759215568021464000499580649545561495021007087360822656715973225786173443860996363798028890725799546418019377330672068908953722965810273015872372369145898464373151182492567068246856474703898071774077342085396295259037080726378476550494093205233960537124528736688826753069089416014533663367066306861483573339495682295109423469091586248763822158478297617688542787269777248799641311848633214223486042649594915279877857284657286097960729398457741947360370537344725483225016877441861973422887774768062778807508301014695612972884438486093326280936633667623423396621340876892863588305525133741082541238480696354067218462077532000953455427720111414415295654470695983052581028616105378327352232927631039468024459747828860492609009947569757073299133427648534184938425206939339947307155831258651758474103460318434276347890827929408651200718544592598551680922825685968153615238006969570406516729383629749892184076309554738913162007623272487916704426211804891318520185330100525119173180957251568982610733647950292163334035496554606502542278260412514516861558237685053452330406743375413795658960251333525783066318259337950485824668899997297159389874808642569921233505651776024170538593123075821077636682667278269529554134128222074599601289500262792933873457493446371852727321580413747908416524646444366084991665585358388198534149417683197912724742902114696833126755115890853894877173513813854072147633172696656103651228221219784272754794140758592822169346750522111758785326889542367725946852538221920115287286619192047374014651723355422628892897395146451530735637802175732198706927864985855728406159573607180619201928322203549929448592806626223546713532699154561204960703153600499797493098090401757508242812513920948943487804717898101607615081243526001648502473322391164928665815549104620679257326511269176734231922201655206209975974629287407773508668692485551415958812926150065934743148451729740878709833978054448388066162410081613247257933697194797241046253848069952795761855014373552921684066225572503559045479295122813627358515990398771685410408242221448828028207417900522697864376674846266450282284732422077848503960175550810614785308437589822133003267138040627253440568459498041537584159284318256527875749741380529009247348466445943637251749698189453310182919388731089265914285390712125745402870101642006013197983689509685807052390812839806819830007605182446728986437983165043785359488037254560449740955936695086837740617349054827309852548143301712513021257982859846881362782329117936901963738922513068826723454340900914942520505404841705747602144651012437492098493783589241552751553596205025571798854771711460623658938860237677106125191895115869564208934673378371045520960651850255969221517060660081591995739038123927846511325505305711775873502541244229059552056989616964445204701082910570001960312459302592496158142158156559995495652850547121380787606761115773091623809441558814887239796142084648604419219347978391255258534959230016795215133632429507904099840606145990648662811674329816775167532271984463232106905833374692897761251105046348094543554625389919440437702503897002775222012019084892035930019347700101078331532680754842793575323081240126781325190578774779398721107703985944539662567711827211114275341616651285484882231723555446613306591019118141191461475058022353170493641642812745804837272020091318827738155330699941262652828281609011423932938499813651697580053409977060211241420027572589733271293153199483611878222482327589109010877275150946959224598182370448473483016258382202080721920826393849123915886887674447390645616070833509184702901181075394038297509194068244858080054901691068862083892862930568933145050222345295110682944177522279651832979091276881882480111704972040450718431300781640513638729601238553785298007077623422161334636800183720474597700606167516110905250152347382463036378359842706368967797267652461621713627731340553769752874295183388553710085344340352819323176707301430967199859174953118390181540270359089808231528267928792409258351248637326267332745570897173457600678903351979486953281928093229184473715886830492422790698741142628854660851582169265531177070418162119967332499563479080677151429041076700838174068227075844857082675908024971533916194539506807735699946605662334709071599284229011012388496977041909970545614596754192711008945304153603817621772054533925999293428468788230041930537083889906180338009812976040421771550155442562354792879232453860403814210558240595643670031535882978546614115123300534234502837958268260665020067395577904339783189232458423723071983347130609956139505494765571492988979961414872039510748335283308164935107521948221860203793094828720085648957274901963444919916618243239685403166860298866319407667321506984179350478992687325159341388951549267310215236572394895304408554933381003527837065475471236842838290929913658012268064920698346260757369943874530474340750344259084753547144208385908461173113894323625294408798301111419110638633728224013114900906191753572356592044788599472747168468978084231456833314941276545108462056542931954051088920853819860354555753529609887251616297487644872456918130707242640778543591134346019038520418744191553397056427667375588157030842697513314938016303698889639944224164391389929537552522226539371069075096341895668067888556221292463587559041592568778735849408844644513698311214037470236798038428588441656089459096973114628778321771597812760658029217854356712609159449151812222852242366464849588877937780353911214890239868483142520445151537134020127451096179398028397241090112160035788687752925630144315933428533238291365358095110431687638411518714232712547828584373388497347876782334453031253008978032085606646847220641169057336513601231158434201182824629844754077866899674095106761314180542558576787254817592807835830438631476652460258125389917018490337526025822502330391856397144868488719125883881680225144106742739050719366184485153869262678264505480617686618388570732504132509721328122750798334882043558991631734483848367964141075619158564216111213427009135506756658591978248546822670652821825893172722963893442221080757345520845631425220515529384591621556310889940513319026051153307910126499378685178721699017104080363576849920067629456646013363508460361820731326777902901650245550298330660032571947521565145871934271372858980292662943423544938088886764051430833316247922350847636510753267130019852956871711024848814121757040863472547605083121149174759134327511813934708673334015778694240728381257831943265336788750260802536107653501155101660185589249846229891148136101792609737966328309915229546807433768405463523883993988162312234643164441386702692156824671904562369005379426820490001353792667622194897962541129022705186038783806261904775763355206149962785252609257416919815853933820535729707212746818737581390000989495083975378885837203496339359636834292081775875890043190456999147464856809732329049265423740074801077218463421398650540812000095362192836482454786476829325436585276446465456163439083084209515664318606455305568884487783603208752459140304042701817536649156789387685504086692517431836061362556380375878411534721911984083969858832329942214760254426062460790104434926000289723422150180421172238526501184311436123628512549076620094575337996555691517033129714086753655608555312864621169458696470817090672887396401196480691320002632956207987030487789132839631232543001915433011803353328358221165044788387142636572785892289217127189954886490782475445171157588657663496268821366827723445532311059430925215681930466218814002736617836750770101664125451651351217712695518308802548217073560859504583987104149972368673187215233612950174179216596265790772385079393894297239934490359502581958135167856931923217016321933042666189675639148820901912631120111463979024435077439789761338727150413197482639489562927165793714064774500982677839408914194162032543411453073020531204143176242988925125936386642616411631356516644822166582014404459495970380056250031221510854846094774931210645701420481174805608374284424141209403894748013684870175276526690139162810566236942045397410883891031636831445974383838339322069359038074609087634983367218004348230641941793396454177172016617330646087954656789796366541542293393788095223689369123223056360674914482678148104502950052798166052456193487322047122479424587208408706839413710759841231642392362556072125906270228083214794500728676929870345323098907801420274869545565408995125834021331484825272219842162001548297913953967336026456271353070690932810569947108317672185063389091955993422172194454613357844714555290315326900740619136171952162045782745405654124031338516395146461826449319913335872468926382127349890932594770067033335860296979483534078133892050224455329595882338695791969910076827942312169042772934582893760044879716637627161134663042486487782405491916605306208485359085677558787187868359677474105705859331114271475900575851585105854003256643317683445763382070572486191124735760330239989178412586341835023914835641154296718472456798295895715195477010495820979007473850721260753615612529991193836889339242575602374665767279912717471636439755941963599807050886390010485517502093629635503034452491588509800396894140169606608606656362243390451930966514722185233817890636684951318968527864548101464237889741341310402509505873191967626934701832508606995560019890309202682044409068913260101973869891912024156461091081871044977669409192188426894284579519699565186921250298277750573999052029420937277588854972867690098552188793402891467211237630936293139137879320853074800088887084833503473036544812132212063666160900563540459336092692204934310477769588360678210282353517170446345275582949008611080114640432055107015936703069595143175976712727924004012344823115627316173439735443356288412744842934430861346743951887427282508480812817009207225157940051119518272169878335908300169769552418008933884774763187589690426061281436334427556288899446319906708124679983598286695590074634024176906176194646369955156605814077522524066041068130230023181075041632375067803956491548714171414676573111336445566072585983002611829325143060637260494585783495715521346263041535468554061328117578543110055462963380181990283765927467782018528520504421855680649456358923369800645523305548555602916933011015261265613996261612539589413244525940646610042164118881161810508539214043389397890526448312766783172589098899523794123605523199436024860019054059187849389081817030965373102724592067807893351765884113887536616793829596639792104348282232625869594601012724550714030826732153727253204646057047338217647986744626011733945456573452821642573619663527216661901249030325731904615317889411014345221322610014615825458672008975751588770988337190853012955211594357977374648276975892421030836643932360198255353155879624937699216321907759432229333792344230154483599494972913685449945717736534099551384677638234596263607606819389779552784440001604754558497948464235776359867530842485474387795421498950525831176024681126315173522197370397142031546677743469881470320908347199366408097721224283546791112001747183961251083518508970525584639278781575545216880450290940332803886469476766725413190949213401338295107146720665199687248282350261686881792909957641481099176471980051150430925234284075792768986467080573129558731265620521277436268764835261173237873068908817800207783127362983783695598689368717736265207854119204851148210211049041431220309262961654264502682525460912918648571891995339068357734716411165017655794121450873386341621209537344866255781384213014999770381618855341431248643080805251568555563320852309548085064526585368380996319044989334450355388541340059544582395761939181497734879346923202732945454859057238198566404276807015922326081689242891312735248618413798015288271448038671819534205642166221064346115546938110575603317373574923047322210562035775860322812136256483845717174892816539057442804847568060598201790900453359248154700129738869456198083908821779073680651493841999837774822550746193010886599554833951350634197464451201395057693434858220254229588766937094617246635360047264912594550739604194232896867276241441423942926984786635187018337147919416336633504184476103751738491401386085489436738942719195988267939259844650297347909909157711312611327610519745446013869405617403108444036744246169795532513363302518916966339210669967754282045658505575645963944076704413281931179505940847846268993522709267887635695687682027107182701684929194889731338894571069679684138924788242432508538532572167498881682252796779223985948705635702236178459407333078749595891382620874790705518578275031231021874585153293189591149299978956372208428087294379082231831639457113881626948325665700961241176221818968006292318367735361519839172441471560799263574161675108479193719745339732692522508648420291643136373972189436923974393848353599911423114282807653724020369005756657294978864972109793747427640413204436392116675734748638296737962172611596775279806829446627960110835201146076831052144143513377689904811489249795566680354026738768342823605386202132278782023174159760133888877739981305215299600318721741648538334079749983271439827209486222591738490925814609125501680893704910234957809234555933534655529357796471889810297769335330650891463852070252101681257250661716757359437445413631071476650518146726301276691904157204479133540693247499595924226220550734195867805029866613477892346818368076595227147793707298049522762861278116150501038588350123721612488135219367372624900592955138457826834524752915714688526496772788553700703865805650788399238236708859405499317445849646167634235941594997668409899647873582228393620560231170333818577203469334138341336362151534821761802193508901148886116993143031612419425788464510932847913090626539696579975809434287196479804386723266295115933824490323727237993308754185621084360729611218948374078313911918802617378158517559296679356909183692713059587699795525289143912066727054902618995555017558576300436726098940002463996490903060886542980752825755085818931035271890216263679763315674145240441846402718738447223324799125790779362421553079525728575860905084300640461110514315462067081083507306325937011951715853342736345868614682216167432182683964449173015870581175482367234028983027153872734921675285174838553981435698224962387030742264077837384921545796791743227058046773749818669188927140240912267656678298432686346703723504514375382347084177658805311796184056599592468911413535349985625882143420554397344982889448568003436474127964960659890625040557820229160133472554330762787936843776302398645022896775676920899196646813539729619273990201479453026344924505789991151932717991601498767731051714442468453911428184663245602475415986490568032010431045322987210301192075910005608981958230914206564031014640244816548986120979312963478951114020390557586941912251718730926240413663940672408644009185148587187175143080772275055245518841547156885178347192446896770303913874706753338697609649125095676512140623675347567053336987793345809837302064318833646643111618012640025782604614108543398481192555345782674948811829153066939630357229453167659803916931268602445925171648308558434289750487910950185670281486613391334826274413571762948273375451092941553249014542767338824035346526520623805476605103629926350412561304420629837157006983981817960143200465961330199651112451334358903694546168896570238001449623640269367268603938685742026418671614417440483348601187517722487654135532631060212664999606406333044411764599577486246293581310141423821384896901397162104924090101474857249311397946096580991514331627529355792711657749489376849795401943538759177494990017486834409369490384796694077682207245758932486780565465096087287191106350336176666289942721176853339766537286706622833595683719972699922772554651322732549409239262814466931900840940702998194007724430058785783485870261841190954438352341655813045363991445809013479082957399359240016854010384085531232121442578221290153129523388840890795093357604999580974341519075548416821290040670586911691836747988914530107055935547154626984368671205979237031584497897095272913188673927671430064940689824122086733444173106821168757193753932495274142280416974555818215041187868897525888464067623003062144162651499088494937915632262808080061783536379288813408470001342968379633895394685630618805100295799244720275788658372930362506188008649982797925079217088888074758580961979046051220910276883524998104398562283559103070989455336538908069350686379719182413319292891468357618291041618896987858866428088330410183812270755539515246109124195021242961003973612136807871379759357850615703600050596607558519394475258747135944006516160203086202504174036683134375983651433915936734299397780910599637715855024645979494286940570140726308292734407212768149409719545717456624960208227475693686424786772675652153142866951030474009096275438216290837642743799118024634418444356068467551167415244529851269095509593413834542662004835023900473802765987515005754190540973841268785274458259709270521506606500622227440901696698046149670463006990417536631840775339485914897835299810593928616826417202243235656707599006487596220632788074432269345071619523218186853524234229105875950786053303878256852468422718360897112143805439951028411749914803058277367024275084956845095795628071980216838173324326389708399268061039104886841254142025577488594574688730076789898441432362697381370737219790946353453774147810244108624389155759004610263796791370842476866752417265633687026590168191477394842594161173101560021573460652895759039546682229059679031320987775783384209191782796267597820291697446567278633899724942866551263308697277194235867351757387085083026086311116433089707490350034486831416358248886344608042288248055681137868703357533443177500258593543063930595123052387357079154339633578546956098013507697188746967930451266486920109468929279211575887279763706003825966838748837684497310538726543416137172245318124262530743466398112572577018232098841397532295843649256109349432579299751585547213730184962414635324030391415078617996473890637199005421488421589802987233168225544054034074802285260757476338250175065324539312132327804484808785135456568594575611874608168598206499649469455331900869626924051508568028010666638608902526107963150342526163946776660652987949369344401004278976241206124534114675212691694093494619132217180706743486723812452090196002277091939149968112781153820023440468445935786435729398365491003688695247553684916840150001286244975559002976276435558202845970661134980217738442057785715933676065377144039038865296267925249775715941487600524843523944160938094601747651408129530151612945405600315298799560884915059418040651307528584441934737635072465725571463487326742635281806680739860700780645712209580400087882863286827123125836739497692779755686951152480720422350876235488264543271604288748999941409322751430957285221608264977399504279077985112383651696877944201772651999651040076338191851711998635110893436229551178963356932082441673262013853368710779742481533633104930551645070891844771701475332616475427874611842802105225938168782288010090395660561517137683842680984146394622387627093954211477857991595269841018049130736456450317442710522382736967676954713712481274564478085593506151770970152730575876875207037796138456106215284858998535519857907111412596502973468042411788175614987474255052748057756365306725694064299619628947394215678549595805889154917604767984271088042343841501747922409055911956987787386128448429643611026049318537786983611392470992369800068457477826845756640475740993862982545146255073393431243490777994631653907971865003312746743570138932592310952723158514929938453485822317421323737710652655840379420399237748719122487376596920900327444141786309423013324298782525159428249397940216943994756455567001084368628515469975574544130961845903610156595558555592523846420570608280727612378611863749016287955453961743701290487758281737137800648652902702052773650157244651655921327738318483214008327675379258702841364966035054467349144462731601100080338968285401146931599049079176797407915786423744726028558396834081561272800298416786122557850368544104483867604362390338914717556812631363330412311573305658600873669884576399668778435271826963008945576820550463224021859494993109838597358188427722305879653000792517447351166162767494257431269879863628488152475396536415424367717653974627660821060039741123464543108817096074357380380806923387380566093038425491834013424506227911720737912169884836736279629848690863747860612043149163632002967061806554087806819509746829756997799194550122202709497298394348555306175972524419256075455423266845116071749271757100419056416014320091451249823443670390769107243501576277017505505772601412975884868619700263090301481168932627045910430958201294017739146672595547806828533517054494211042485562995204773970203579158043050913126020529773491300429353054583467536694318362825786188915113866263479774330405443817171516511603524639199734816094588624831239978866746926215645945177932488240995972633623320257662720944281727108429973018396206185806887839321524495098298925841486167537365794042593530043796810358285484821480356973029796693140148436632657220308552794094609239727501056388327822756986198235424645955999738807983129534117724783332859934628940451277547196104030722472041720885287957198245446109385161760523151202209692127947802389097496160766465524695571436011481811902588685162269630691978418148329665427380870130099963562131655902089020856868482883953929477168814075500945943542163426685524722450534508545166738462832067421525866181349493744914278481941467475315025898725217744484849118000708763092387283849516717538428914569589937507303268349931163269750893855363317826268045678554358792673159886314213901810504440045037660831615143820537724588151745485603682416890296512550152996643747960667645246791580052203640706041756568066115035764615030596830091724006819676610358578213407948974155484952905385517703672724928466224111187884675896525006114662765368552002350439534728806022133324878124049789911640217049269824955395201415158771774034353552596345704142367489661034377443776364620471031912893368945097654654784335614595137997010836272728407231800095991432739778476623379492885501434174837188738833143401382499685620484785167772108975000649932352005186180630273614532298720408547439510073140990745715205157693245161043780604097129955388898038326305730858149587955073471692372388757997394097513981512019161346569558319010825544604709302229229204668807480501056957598364736621096263268519057916131955528262655626970223218237354115695853665268714507871933627413078057210526539511209120297436128003122151622808778974251100353660885056502625411034463251160534725961717338865142045844205159387812430882172047587005900855361998872963203114837202869545687621880778135929098899363106202153836889522299304828264760627809131891022196261153985664589954388911076873157915546357704851280227709181961281495082193887782375976572800841661634267772102032358485044631977392742647413418189199686100946532877282567979729785515249121835230808548842245984104419379644716431470665126385857832386076341902565998061223574390026905778286933734674391927016240686165417859147833927174894978275355047481979796342609134021110296654938359144228732648554916981575502285475724946321144222002027086984583337634587877019290761758559204359284893174813955005189650454261999702631171435526333154219721383090970863226069861236238955181715204629450607088002029556367193570094828142530200572398750188674878650264805094125669549672329419010791191228899187171079011315614188984918883280236418766252008993508713740182613115916173476716363671118273330077545669177148786054806865064297228556517962620757177330127304854792629889805752842876056729342196784560146847831717433457014106808017023951399417240192072172489728903785903107149602915905877801734987798776782237653123170619712219441128005780621257840214784655686989276346105258232167013315326380879103771779153619719782890890846314127535602775538036683642621801298830835780578197682844061021131297368369063234104634706004188832074391199342172739188660771668216391365773553440505349377972961922509827107993163593567638901878813288348354310186942967085983911594506530936734739897682014895635192102010352020848600129097151728061656601369895277365532924420208572128950812691496453532065089540016294862863402927354691245797388710029983050391182473030424016763181854925906660107803457268280353073593800450283858174806989576077560561536742352734682804421365678116793808047256082248001775554069349737047210510950425128411944202055665110855605035754505901214259466417045204111276125222358427796319852606067660500741270110377196506998940757814843666193442084750624340198332642199058919984407118799999695083323780684812529848216495411920546753036697820841296671838086915574242817860842759361283951495756963461267161863699611135778436111382547477575143236589903564114330761685519912884338118579784211546589509373149361474752497004089453008184336078190145876182073579545796351562628788945262374969956176287148797930033579428666053820313565193232603240063322544250366737053709044141183181536157286233916533211688999006031032118204305281499982435920599685476775116503112462343238034001400754839143137522030290386498055873558038313560298910931660180294307598280653828764817676503716386675738785798735108313480814461916742410426566594423223981845929574497085862473379322046742890070248154701827731674541392838686935882267299555335516120735776894280849681971097250774342978967577190588921428711420814571110608492120538695144976825442625559225235425031484607862939278711657912684074535908413824634225257322112698088992310902125988905376029268095181171900032726572435262417768661558265563357501692151750479974513720699099059854534948418709523397028772629482848600413320372659131560844549487064698472413419786487941472746009222369973305993695751357621198295411337997536993569003418836531788734056975788257321656585525729847552979553178132906726194719789471103231825112350469983272569614101050981679392549262497221337127101976182057081367504971221014458669984625664998815384814082237605845551240061483940868568516425082638413519267573961652592603030556791154884336037037160197621620487010410237263793370824030060994469700771960781620339064484756429289392266190583783192691607931712173360522140621914327317923471034172728501481676500463265809661748653203239600415185836090956490979984592744510702245576584701510451131972196272374014291428240050786165763472377712041228375197353950289675587655791580796968949569067088387593436550601728546734955302451850325165999931866982569287689418915187148201197781523473601855801298967923000145816117785740891114292280186831315450727001026183551829706882789290929090191098237197694554989064843430125035584637826716862402800821436232771666684069574128499090190680474513534312789839803144596008406614118478206560851198146065829620022182909658066899389425114347889727861431465690007398528558455282529602962370003153519277240285716007570670785464182979703172972959200916007785284971893239994047413354078565633018064465322574367588115791638563767606026064787728854772457033367652461946539084110548766587454099496892999547504457654794993864207406407297911718624221591788320632619744679372677702826990244865060121091549645934206229739797708977406735028397997754925647436714361945043337462161675195295770462742952211386806104016188933207101735984112823386310784655159378538065230920675182410467465822453926297791362809571966445739349172408522060773231853061876926005182371347649650638118675800525770971051199569243764081775646042351594576526050798816141037941597936568135196613824522140104733027176926785815511277104351937705325601152425322958800406919078732254703779859772786091556492923987260915202858807443950594499153017529063492926821139546095303289227665730823012221529421731901315219477094516989249449313243048886389830695674669750666167534452016127033214855404096156800894350364133092057385151655761044686199417377144943409606846703953358410885340904657728177897634596054053881104894926902733727308978432458125438121629368531269715450176440699367196208929458020073019914473325055109990630043384195614569823213277088496602007176456502064728486906198450840806808846877733269753809137643135644762036232672101934712192874648755167574091975055394095323813119440548755353135410776066042636409818044464840458893222719012783532859443524960763240660529935887916016197791453116682928626021594816674910825459975948558113092048542760029621652656054075658913616998363616296256162247312526217133346668683435642574356416868550772173874980702827665850746128974845107354733253404163791687233926488234223797318112097539427593601860258937466710606811697082355067701126122366440082900813821664370509401536260859856103556496286407719711148756208587212425271846816302150808567780224778420450096236999367733503190365754911679590199814657852323378095573926040462950993578195523024407327441344877292287782696981883881669781456592978414275016785128939675447108501587736239206827740031905626128369187269492535748979713278099656781534472776823809199973642291389755659213193515429888083593272946441051030614972787970560696559497483870038327432565998107265632147828756785375167322099043571466752856919982419494180093386435598619665546718269014012422130691353122543044212374495694676651952816438075075049825704140817847692331149795988673880346040525717973716936500280114783925840639284629124722611224440925370468892139108356277227217544538996972541769345414256451795851573069690360371863807465783797905955980335118102310924180085179576981048706329214705758322290883348894850401507234113755891024626154458663940766538029666143175606015225118450537191863489435027718848815323524659011363531879146821471600500111528400941127344914052345384797890252747631409778575249632325159941753481191511087277080881048618311944114530757316545731773578307570321459110524109721458282556841182840425923212241328437802270246384736516477066827258305585001715135710147486026521630173024338295101794694479102595288110151577009420525279121579295101602094372808899780540432882292724514985295423031040418251871595236047059450636819582203125102969551529684852709449871169322965803014652307044854627649799210684099870857030326457356776966631011065411249504884880094711482717092022979150596127452959705090567966540452241753148871310365133697790284581879002723478486962055785568816912838770787905891159711220941234929154499132484633657513473724375474142933995370493292514608133454358619859791091543733350396354711579717407251850406763764167157862003677091451545072482327704421655591545161678638223307982927042809347298705832120981604970249018092330743572704250705648825898256320218675226170845241473725553683837014295985860065780739176539935342445857391418681277981289791736534730522283672743680449145382676478272803231012012053874317824994975385369618277674842696751350654236939238453768555272943132061724337298464750658528838093633779644027234157553076580108326055487618857073855853898407468481019767685436511340054536843702690758278549657123514438263222464592289762232277141649452749189384725352868466851257751153555342328657322671037267971834739051873055232216744201585994746097242780310540600782039631084055005795704459778009052078587519624689324173209716954716140120068842453185644912965412875531635909780362497580582868435330672882823172224215992175630797190770376158902112566520639446232113956469327510817991792783775768282266337604073955137429805324451063484049972998500855126200397866772620515971211723385859582016398485992535548067751959456147848574708383022074612381256307804072608138560178072318585560228411606910215669000715783821734179125260794277507977765203887534316672569298779949924473593201491078614461497305357976337629740702539385056210337299192359483979288317732445216768563232236672148330196416767664924798328641421701852563670297618217813270064884022952045167814708272200963284010616127409443945414201828156436110413702954997565161373246466843542106400725121676449366608232125285909928201479083992211351926422528964655031814225758686064601273282077398067692527449393537679384906365813813688686572591156377854754090169451118210277716165161649054587337458378966007612468650216368184316547520931973549657979272102193177810556946679235047187014579535549749109686121079594703166451463523091382214923720217697962568228797235518544108715084953134352967324204931217814985138544559755814182308808186250743780819115601852206539475001962700608424569658701140214929595450862575013317182517222490704384274434604204560043345222876819903049209594307408901993570037754656590693136635989868100726301572905068621014593755981532962841843279327220363503846053244728137290458082550503988984921384805022695310430092156100820982375137890951121021046120008944506884316092183212998268738344616970485373019509472425380866771006786343437241019069678208079419260020585969512312306714676753751260677643575490416258382297409592167346320873406652632319609442069428523991720791132916092698426754580259221007311829708963001478932980885899766165991385429662926901083132306373016983213796854985937756927923298951341797378321570820251770538795079026463558553879597868687874709568940026117678146498491865481937130528082469265840859584369114070112664802600589979072124450898241633618083471536073412087548663963629060288502068299841029338067098321043132330514340600809802714402260705111208713998722470439455110268332583837658620030696375630962282970780770705634712808779937362599992790081348323308200856536118863987481841291641524834124517374601324820490630325711127490591943148840107188855205762003134043188520658851946707093493430335606207948342656636415982578084989614942365407014306176599209996557481017243289063257255280196261899228927199318872361460865383027831405632974832779942645262823724117476329306436269658089910212764442812674331060140949105324427099024661269899020537148475542724747314812546620309559549660791513005024055306345053633869830682883838817337544589398163198668942579555455104786946259011193967177002334593308507437753658838609479697526647529529020621483467648385295561353623157924589574701280037932612353902249647187042653455447064343277677940701549218994831458649271829617848011580334433787997298847372460241962617024942346840506003820878727266334908071798608557857740878737572639313174422712109315356302963621992187964718459933772959096319200665173939519525236456160006755499336425247946870989904099414530125540090054134426000714402203522707613886638910709862092640184856076164481565038715339516396161833386389079611388453438103352782393917455510824871865077620334635191627264186716127232992508108550711545536640409226740536644704550818346988672455346718260121662966101007266791252254967583468641733502041675003364708805804887550739611431776347519250667573208079729949133935859310475826754032909706782371262388979053659240492724203979189331960426759118916994153954852684954071831351041915344366601568802896936137344038068340051787103739360352082433081554064668512309362935945029558830928200389820365830135071325034715103552841111745812523256086176440796998643184597650520779643064069748467695118101021882802241288715177282516140460089440072373348050899305607715069883616120574536057561443346679584407224967977633450068338883514806769773890500195834823179184797907711486279231584093307197219480875368870613554783034371504382718348590168434186998195458099423095030286643510569914338592122573807865964416159493462089474648357236951113713172129361092479030944982923150055629977019626236665501921290487378674410315711372449165673050560740793678783748306346183601953913508860240494815117081401678244325035785504677301413054654118793309398121970918399941844260270153867443365003937971156185550704089339501481204003652870440964354373863337122799764498803177720659639445051988585434419539505679648283841383724579367914590021685121824692207457479692944196449338392549112767824737224233820690008460092694285833963314610855050748052148568780652213191690625186253550961121468137622470092548003167982273301016915887181115615137035933617472652782978378472171411872579480328337779245610679588133810690041044808114055690277507838747053493440854972546625028847123328697904973630980294446746264544538655239059685589043024082536881642938832224115364616520563654069810796170014050162346980485849553450272563511515648431792387723534785504793867700997085360805942719661241388760515939585801357572246742536789271308540480730085630990351524747028947876782330218161452265291871496261241235808615323055053371437671564983421963853101294326777928604995926811502364963126811606916112404758587853848873427350384578493380287728865614112152109612577049522121836035505646299608536886878183595623471675589644045251579896386515980206270770026760786507835143148244090139621950833521714066920248369076802459102265610721104367418769777519526841227092745977152484657925793714663703969982910443138188159060298448577391170133639099393864907881139884468215915950573826009685492887560872168497204348528845242500979817689499520079347356475137855939629417960352476512331661755008174569776144895283345372007985471040184361239961542733726522176718376265948660987962219365088154044795925284265753445331745360230437944001019958872333899705913237561891737544871800058900137924622833313906409432258663629126333614790337441530886815730082230101267894894572097868692811729223020354636589678376043058437858094357730427120846217474578186402259164595093419537997004880806466531315533714418570458747054139201947783296021097537925338787628351118843579102667967756015782157690681413953101529787944187306964773215690662741820225661753933246855845394551380847937784516843197646929888657076076938191425934881765502267483896435508040985060986020310672436031380089102388556118580067530025983252939036307116165173946756469999481436905535652486155392574978273106112820680376731004524410297175034925138851322691789510896126976818775419397364556829679679532739981067194250062018635751292874036596947665119357558594785883024679480099682413973198510468222392129061065785096419620695052880746112875568839221892503438856133273123213896712728429336983418403236866751714095046340485349155299783203132730617921405455181714677124865530915159123717525367942776082392970678296222404603132359474846067078246875656257828509171334910920884710231943278950788552996318154946975011873216725178964510159008199913183589862801838263908326665371921159938211024048831307944728190127521636845087888877617036533011377784483736523507123095651047003804826162227918750313083863221829522859525372673788847190689830531670854049658795482933839282625716171561282663864365033696962258032204611911305271441355051474929125602790144768275101525810972093912696282583880584422460109582346471116102350902529419292229445315457496364511122657957438818598002343879957002962968189534535501015787806021998761250618493216240239070877821340811952638497582235792298263074637316589734562821421205572164065962440156373912240869113476710677195464443496512638319447759717192872593076357705314349624432006883866531947043856478202290113442369892961475840498479353803415254961373552691601793210996381057479115139154088934810715995232396657485823806497774513317384723787775233327348827551118225295857208250819704264409001731697899387151168606888953756835326793590103845693701926869836079672339314698755907674108525656573325921604885700732530337990469490007721862840380677222032634451853917538045825983971581351606744607249176907737344644147586283588307930968813368525209507401386030523191301930950602177129436593675035390537823908440575728110291702593646819387583145506373919346537262874962711956423659671925967434680925182928016134390182247371236901644061047733958462321462839941249499890663040482930730752621956642682011070842661276732982982636391927811460314939862234173734905405378864409117049284512392471307782614700104170012286395495826121027117700756400589248531442879801552999838304253734177027294710866229232400887790058832408339694384785392080708177378506354203468471700860929530620467422309082094383583057654101905847122020619476963416204023040886265124877550787131614218826370125330014202250119073521302793303335258607701301291686402693232282055538289190817380365392846093469671929201780810213004393121367135450098664215216402733892511696293223183990585838974514683304226730622146861937283645862125449407793221128744471664378762866287410583044938338671631601140377670391601445526078703408494767283949071863536400983913364278045509048503030803852826676590922418630833981206312969212891224158317793715316154699993300764932420336972165934247329428197867419000025775726632341117923436997647512785215179964861855180281996290657986516130158455742587786266420851154500846212316263248623863472386904811055989134049914780203298887256446575032423324276241396803618596404674414562967660204625980428354488287267896386524337357921327406066855329076017479550865980663079286160711538010006058931980873317892263848900375003218241563746266278201678570155844614555734152483270555449489638634921830025987475071107657399791350017323709587055016881911690711748040263053178492102547058148133915888242768921194313908375661638624045544204693536746502437975214912994807876442222064280355748463682260676470654237033737042351549666228162740132962788598728099574126692093043092469914874627211823904491080273426858991536380697946805454681830816299298171326385303239472095860212782832408520438831790509689183565575801714507816546328709576649399620190315943914063217235973937410476981626009886649468459403808459979466003827704576979512350958030778994904476357167662485197534581091184817818166830321109785485304446667998287292045380107013923737298906172765528326316888310860543361306522011853557890809288706641622064358083643406857235065795220343946766591495672335698654613213309873737773738988805153352144487670419115530505200121703109507193953186322466871841908662622211078956669396395456166607684000259689937661579239969165816443615551362678384717422517429431459523386416517236622060677881608597194082066390742164435900247299141423004656764912631134250799017831461078160733933781232743660409641676432458569142665622336901461639731447816668633440778266853955104962602710469448998890689094295058320550304668933054401306793777092870751230595409398695111514055580372424793891295182447866025819474632199716796133846829231318622445828282287342224076836650939308756523723992413279887630608513864661967773221371476264444625578006687999183552148048816746229780237442577547873819723507970091245503376161263463765950410644679262267153577208710298124520955198874208617836795677835431331573882341528906082545921669853570283265877103000868720411009655453163921348569267644484548944819703739476047885517120334124134496966267512255571250051784241667949293587963076826852076688512334127742752372628883135582507949330526740626319936067860958782226348685712966751300010619663353317305776068797456373917649151227843037756853913497037137907422104281960726525974189907188474102235732388204438155788999794684859652781978239386029776118101376626828338060075192105574076366261107366951071704555979481641591394544341855076177705074778819902953475137769497533500157169857296273909018149396892242844331095011033706070613350525558745094662776709369916920238436229120531463896510638638140882338389318172326514399502749929261982020062473294146507785114720652855961655371247281328611212876406579198432891103832208420619064446403575491294336204643362474508893660710355321142927230720346308021050270555358801124359565850726056925483736437117804923108319124203796550677327221758315094188500022241995639975147070323431804022728649066307159838492618599928446569085643763056587066022013579555348826611285527424518592451687646422545599498664974866289224637178453701994289168145956425356351785970170747086958047676667074532492088563376423576270156852519634942517545880368050796355563368217995748402826924418453500624744100559571436566234533503267919025353410056907100691354127406964352963223487129804495365166746679009567106143153384069396367529725904416332770515574488807235539465851433448390772007536242029130870920658043203100160978545233492780272122825335702403118919202125734820217730765740047244889815458670591026206097392889526859535140996448077524368777943194806000597452292310505998850734259510450752080878011342266605524172536159455344683594732223538661457790299929641787333019736736191153160831120512049495232601050548890821791081521383160746364366189323678144624453215568775849568559076026722928213235679167374352756280095271428171397499069226736890885809103685476571069553514725523265421508804216123910328517469535393776723369594278183244296584166159213836068742290379901305490524785721435514339208513007811774223987084582871376232939131253393219840303298253218959342311864810277024537253655068859256169198592344503436948997869025548171592867164241178019398587862320519762692374633457953453651296278603804861422415780474393400455730153305635106280141912509889195132511793782132009194934996454241207902468657477696885072375467109758527664083241121017467434908248662168141045585170946157096261025196327289749484156545903356319941868507270590706052048540042843822758246335890672717765949327405325498942232484344850478942389811023391970756723855233663047799182813770214764380080883743140571623674382303756105880909830754675439301953026166161649554295251538287358925534525905955748505410314751351601357185389673741141632387469943770123329530737772128095359335589054879654311317590790277211450731202532035187635479702243597480513413342370153682283094044963433799286619788168715718378808525751164030920354152442213392914828262029183786912843630906125367831815168201234280395943156868418660982894329842567849444372242723876935285286719515861199156914295109290104046786621551390208242388589888159987363228068861660429516540287593600088457758026885192186765846317640578589895436993819827103358808059798510762946559408456683522236726183193990395484345288074037225313067703990428288659967685499348740247539752147779838657136941363598143818723335661556148023526101685756527695880131424298750348469612430273595351484642620507356167030339153816681425295879085967106557959233044636110772516580343870096762784867720958423256268680379201686024993339852420188483991750593506876642529349731784380791795904810078525722088528104270338849184420723593673364189138277032668632087450541142077529844326482339431011357441751416849813777218515371683547198623432182853855680814489317917131246075388868981548851436011967329692216395550580414763619114742916423317408616907807501533270607477411692040649766354882589048704904551962205747673911106061213910819429269060657943027676465740453510597003400090918882013856578881200666078353875113429427776529173719709899314684658509975992365350538925847559439122897039136850815565820175102048061786699042166275362114687229420053246211053540477052759969022227835071819108020608205531059350208903325222175300745595728056247760684394890703851460299340289967749699859411572301846975817261636069589849297439661068898414701564713278830274531855044633649659626658354423979222533410677565195746949851576086997296819429059137469378543548853210510361262679525376886164208907111564856255534967537522606046936737020336371079324374614200708962044148352617802233587170497722582085047459583838371319717265358594288523007607500044213766160861872240447224576959632670108963255262634923056144866060921190104878770101623729975620800181517536928615249988337951431188747331301578327174185522619751390221801457376334173336664910509361631455196923456414757631126642568167480050542462958230321429197252386714240175095703394822190727931813676972052530769547849101084721594160619747006299733828147054891431761245806444207740640206413498453199839380528743967298040310578496275592441632665125809441333943023845901573871460624118215193285108736976065985373052691524427464293974889707564416822415821893065413625034785089119908489215978711098171235974043355598775602136516224184805764002379392472674312526253074730133813850960135037376387849947544861609895518200981943357046828482273914353373067253982717916857466386046740518324924345148453731475387980245150271868095405131239763412545951336463119058221140144787345797531610376814656816158049930995194364265582944298812915234011443117135990556398632307467803985684451771473446706746042593254787860123150836257427947725809347125480051665896993225538856082546701050757382064513308773439275973300434888212531500981502035113910316168471726100023525020095776725761009525780861611692554518387211458272585048076971807306290616857267101932156306369658210725403685152093127867432840318336795855346750537946636737184011076650441253653584903466786495044494989506783957699811332304910413758563099975918804959047217850683768557309703231681520677127017278302008208868237757398610440816659109234604341408092000279378122536461401038862883595554140372239789707922982179334348624168201673137759339494338898227078698102456680895965003857267460670112987867475187416264325213607900186296233321554855414907718107265679367624817483819835485576744386505391608952166586255197649637690945409549634633508013133781518170444947991708745634603209955059761070055771193209928440750282383542168566364486776176001253177192505159558590783836667856208428351060479438584243859626883795943006524265586472801447670232440855507904297169301089606759081379893157456175830268227484536988343705305687101422463072505236314714252676474722937072945276034876929935121662332133750108425387470681476785751215838364361719186577617767619677727234308645382634255612907746622682144682308746919821680775493897002583626002608017513319317561464414495549942148965445737771709126710407978782556948553081795601067737550835341880493812500017120301869485261363384916982834652632552868545193517300642076042191360341601418976668269552456643146644073561819440507053463736854161768648264596238225154003682356975009302040596520741081313816891100401539013496554683867788791894643215013216208216097587290880539571387530466855013671428935239347800018789550573944948212976454786335808728323645331958674213277482224945911066662319845792511739735230120848991128824111937368408241703374273902363298248341496731572323753100683383222999958152750307808609603008139597053975379927674558072556270829008167008648068819079527045100306859563476376983446173686123171840665507448983146406705531346285387872459991087694898656765228603413730570913978493647431612176215217246530493256256286677882732503413621809824700397420841388503968890280560685012247141188934429446225956625259936259104799834829300940395180858839252860657049749835790836175593330845927472194927893953485701943421447473815985571833860353086368817213564145298400310574102903100459803174168666916780120888095437519264184797373131709258519730275088076598724469296641755581344784818713003146031218025852197114709585083845899798784185183744539414515585984168869510473161143814529723396256536821597482278391218173306977269696208297502374261726250185813512979419993433324534330965046439196020206544242206890595240784093987716908402107640428645520461664085108866831728188973291704261380033757901859423609099465596818001015981424885469225066809722132341191696445348252979472687309173901118855700125025543890820551271459436934525313275239035656123974635790819012206700887723375993819380644526481125449822178790748196984184159440727794437723785741189265353546715983342414902248237247208625011797247587482165491537410983248755913030210209273933878682145409510606682812022452111151255131433173263067539095908341554915637113545924942501161982780792965191191902689408124393676916536633735982250601387464871692861790003782435875467147355749797352668714526159070841874833555854626837517892745977685554029939303389105780231082959397919044559555629250465311599156483831196873767258164479870532191926484290815615240007410933399984332623435203878670447803117679771503837617300809355906196358802934218955164967866698522046748575061088238727425420570316617945609262470344921851399007141768033014339379177593834959624132961867103781761181762142664402813084783530286979454416287411418950135770231838355260697877525328104336992757731839352536945988649380144116452197906829041009154983276470361090634466027911299355309197579300865618635650058011662448108415384604770003472812087978278005186461039706895440227524329232774839326456698041335584159630432446107943343470576971760323884936548029284647848697896689945148952392005030693604405281768420259892454067552967510663133955615520512886941943118269827087398100119643345268369920393038210586888600268049862448032697495182525575124491490801287408412838777547768917108038256328175895483166253571741815931739102249244634937356866859108022958533677170103511636805478125925510805403536008661441100003184879935938563606679643291613299868103774004615509970546437854098134289208395521988349827557288726177059424192064182642539137863760552442492680260785722785386662125101628297896599247497855437958184010907418804206984127466094478287495356372154904752426814058520598374947292437446829297200754878092928857864694075995964750463805767836482027413943083012880447801449888612008769565551106970927450798747461335341492868059313841188531998739567800001065049086639491607112548513079417903916122559533334270806107701831203587646236108494190769144547072524931492070553417977029059614391150868073115056865411401926662153425007646625283962899882871687823622868078552844696250226174886748873798956539290513978504944816697886650489800833513179572317369547337798644408265452057931022785383751306721310958459145815721523932589396008064595369560866901419756719839315629698239195688558039467022689774418620901503069020896507026653182005644220898202978352240223987441274097391919512894938651001824132105729413441700739962000965347893889963953950377451504239263590719505913078983090352628952687981339079769749752803389682725249308034953641271501105514620340019484639663109179970251229391740642191532081740710049346409033967508592331418992965704654230676110968553689225134290090559440982821300470120402018827162734095019256430311669273398401141795225935918688201461434522132228212962236265471944167806826874903406505920634702115139314099089448513230024752028993116910909733221417376507557235312468928676080515445620244767855307006401225737528118195407751512939555203415377495129103293328876983082064430912390191190325852409601467916548978019934628092294218507669799022862067568902362478427669158264827036245846531046948535104618659506731598067824779787511215695724197501115453812210283898086795900370675546931906355516332018818364068726647936001601677195881613312533368555012852243595519360492903189758007015122988220703202119555114520038873504167425248043301410702663570323311696678289010444365829711275422341823683125658747455553857614511546543676046634949767085069509328501087057674745200552839976609028270151908652647469812009498920804129501466411360120874925117733025002336404696263125670186982974798849278102288183603845886477315510147230843073422121245619453755740245250321176024227628363171247525030582890115320510368507140207442971692593541500029433533605806614686761994204180727942093388174441844656059716295910508717666823083423900855890591652151486935526461182257962552122399623094971873767996029501780307267694643165042775281386529798931108691141752791277716049650931347323530342287906824873697448215733194206849808453730849562625868218361551037522484540255813823883384377941728041391941615981077318825063296332808653025474251487890892840979360750983103259058455185206849795230195843870968424338873374880000768844306955928433604040261186931296923064861079775063863584155789437490028873061323636900185161516245006753643661116637048484762989847995732230497580035844854410151134170874478631742111104197229158898163221583871706922162872308131478488079201280507712409406204353621220944393950682263323126493026289333557282649297325786455805440818413227945597163924544139457182061071228959412924629891946825631341816068808219442504492319671795842601837302059887458319289131992745533280027861342120266621362770954674723006529473940112119001094302489997803996756323591848761920374576857406245735240241566196137325761422459574611769542123923360331928866485986932903093919420548878820846310303202035602161397257802527770980367092521859729306545073213719870736348808215156233955620497812130668782624519731396278255103512392971920571725518404670824530619232754721137382045949182593464856311907320002943532047917747532694316903845668541145145912628400560434481982688874708904796455667640823341273260501498617055722938698041639179954573436677306945545231382586627099134167944933504160900422475584587516858816545036231394851627658925970548969049957831436006682073257746774672936354136882606219168004258729023907879251740925860972110962791686131782140985772147520371515551354928805023624176278783800477939883152384085545506442072371148853472356343206904286174023655066806317075428869585181658976170396409642431978101977225418546783542202037633384042331196462273870954609568624962168906574879958301640228889301754058929679958805867161369936340356956176121070427448299622601852323514050354261612322190371618285040108889939935541256427303143338619077656387018306482076799603532994970915421080341365214362449745225889312792008236720310881215230556037931885914167211058061228144698177610465883481755213275800750819534266969440538978361698238672380552607875871134328397981019107357213936827995301145325386970605628391428394005317924208011040488539220734620196929038091976557205130306320799752038301786740711399144320510397897464525461440124776126682893216460105102226772756183316292357044761797059558946528535217696993988343843726825925147794883931474812844799089824333754784850037829437428888750511887438773955890294990754392585945236263342020218441070176027431735084723049900456501452017762602776983350817234732337899532901585812511405390305500452934067652188515598049255086755409997095398374057819769965744607006162644853383557808470786287605092414537946694836597206439121833782977509646602565733406402175952947491285000388549424852651401434992159466127643769008733550632000841820819445280123494339638563323905135384426869667530009480562615883590605507346437496640782748960998641717549631401935816992438575939513393737946782992543081611842686063706238175457334500982093147666455413814064634938523678773806836987799781564653654168943243233706848930406091543300707677300013486520791150292554754153789830816671986301913956424314960459393156166562967112806503115220680330026111039085434929247170216629549800037996513420815904029022115444015076118563306079647197334492213165567100142116420080562325221015379597376133806459962519596487960409270202899454658004495174917317671494694523423130383723661715332232434891745163805108229198207449741162425734851899160543647925170603441366325890985908925180346770979330955649990604789313314318368427093402573150358385236221311764644935626518966699181804941275953404280524982094261924097891512322651854233960586107374785074202078832274787983802344255531321623010724278298883959290724955641469453170795400512602903764145513599485730114817971828085364235942240237843635516621637091099113637537815113847319989322078370175561495973265567107220593642533918078681619427127059722471365041407821260366504754054116607202007604436895951174871831153495548151306259650491705793362011441158296589814306941481750753265040089188712544899756225678543008184895703516281210026539554718548825691617953055860101069083727308224664048270601718347148921159961853531292577564400000130032382789250885895107814836177755021907280956154020893809582187834344965998604332183820085138349266408567161579987817510636851675600416217680974977715385027038043304256664762577495339991718064237825533977030508795480409604748824702013829921307564942888026551183655009754090745190804776784106057841424503169534271478486641345623558669253441611987278082008386441940991225916412561115231423611728339638933730241570519864346756845107466532301085196012614123418719788911388070971991309673955348557351199221695003210033893403757631616466784752701401213463752787518812254795871823812771219447478774429558367046511192997981961651616435949118110022885720157468824107717689983622109881799102766825954043664880959291961838608171823103711747719066644103286749052809569037893457100399683323737046259403122007341351248318923304313714592867236234460224154314576740657760614005922886109010416953642207666633923553544849990522627802020168611742220044986325328896567340420813494018822177207636991645170915557363403475919011089632908337376012930296814443973917498033584381123664479656153743781262361757329811886768235783322844618880844452693829236092051354777398981127771474844525524871629820866386854357175802134472379843495341401873933259320708767043821430027800015841684919332227811465163136890385060986257507910722261216314355748819679751570212151119703724350832267528089642471667625621802431448136762420437258477867770159312029230774576283375498179085666659952523456597050054997784688892502724200260493025497328914815006888310920721278502613514005385091417057067223348385391270316673101798209302165434451530942684594251776866746959258449391685427825288351827303249835135468373664302504304214818851786293223376036975387369190309892415250953636273636975656625280760158149932824798637931678336101507907926955431621262855204607877578533476233876275492052077279370681030606366309665740491826801910322010079920521174249176544288882486605535079517388283733793901989198880110258316759708103294341022048155017446673316446246126891012274011574691141071622403449962549000108632332891227961005187067620509897838969602259212715844286741012162301371035879925985312502575201031685776078216542093407210576848837948336473669093093126284172087888443496666977772317904677088905567045222263885405948180675174315542282482240605433277946078650222300030038534745645263302030029113872423662920062543252430441771781582513941852027824714598755729524450047304692054942564991022171586068706265217311930810037819567773334730074016189380840895617705509505142036875759107694179819918978218897518864748095083171817111553504409329156758384547273278960637990653748328721836398011047877078460847980262741279798942700114066779415888225625393843531124266006684660898305433274976000818200419539715107772798353581214478819788096868348355758815398181562384264821306650815799590924776145522468557668814817955631618782900147002859311771368784435313832959485381976357055430335803079503239339966239341048411241291127530391522582820741317968931950808957104807153320126232560058244563463726173572521626279471051011338479607462147230446583842329126307848530478378034167172367067528346371361813536999731776104984233282605034749907968521632195254295350608297759860570303176520334476077035278344995198250111731548159637987409822589684482876876905918944465285556991146224227000328673331211575403324750680529872428172362042612346355273948674708242751439337185499266495932451912123575057762336005929116145887401789735995773757677797309825900932043712425244575501134877215607459288106724527010948131523362324970067125350349276008872931389947548907482024396157057948386445201473024837472815799393568009071692507178868429553524157695273824144117517831694315209391933821974409534188798221729417222860122515196370670313303461988931322138370998113865671563528178554855410379318284977437938747491267602370224132944054880912400630718942484781788572906031574477557328110950920976227200740890799529777013906903047054198502341791873297311765736631154533586697270927804771362194555830930939477566868087349942544478318919116605054682146551119854178545823764785882076814553732984379480294471742698691695789879337989115071668775147216982325274905926849331102799099318887585033588136141397293267683397211598230567490852347344961033068974959171607752651110559073946532142158665882205769886486721554407804136466216179206121899612178299231366983657505069574220869883378094404905828075911182806382966015938512077422433709837175498909148745287765248173808523004498893495522068224612858153758004040895439744200430430581969331306939848170357117952428892216284641627844796719563923195228197739322696822787414324711124932498872183972634775400650908424905770404299471870659479833103492246743050471543534668429151890824721579092896685679553638907817082685639880026315587335448832496849213805889686712758133168015880020270737853334534777201011077297136700339950924937114041061932723311914925442037992602664128145207468806360388994654238715664843177119261803458634747147816381731852129011321072668413977808468907426568091073419728634549633162641142669335380999798174306896909978710080902399068000760250898273242123878111037030137158838889092413350383896903400250460314131084719153086050738738557505539015908184098430141959824426309614266149572213036843614473916345394735476541333123384476938826815944772152005673429212838569099995748654615426333415867818222459302312584058846777695105706529169776373557378460531288184153318965330031033093648781718248599832811756275053048634632598873509907831156475093790617913329822264649341369663001151983731625410634161915483225080882907205874836712733301112030035078656889802790390124863357324755915288093531279724664527696904274397606990819865438258663959406275437906093561806375769818453018560093000278550059127662291810742309067774505952967784979472398316542480222889737970011004705214418143664078271266444420120665195654906291349196735646287262286094510662995581501103347419590693760774401392098389727673728907624485133775787303286054564020713582047150105510033586692020948948147584488199718496935781715836992351421878795991261637110276030432821900754345286452678432659688489749197425163703614434006038866878863715355274068874055702159875711989003143475536541999331588249203369778811202590871434127820390956366968794928949484224489696239850654208832004041927845527041687924417659333238035729637919078031605419405029693573760963609716258998598265244325934733990962196829080073907240852255218394180825091355364433222980624950823959321308946824984187377668292574504158139620476997986023060712904514295059129935608032751237229108449359674878417623107352753473716073545643180839400102784314241051406399490748893835341014043409579520920723755283463131471624585093572479441954033870030630810372676887799629826685341584582944938941774512339286259945530718227576883331663797758166098325956078212080557350326512709027275217633139906221701552613585678926972481963878190608092853520189705290346339649289016260704287682058623946124904374374025832889891612810992005164455749273395019763058983207850567958971612458312128414829679217773248332788144850000813936745517082811673922744689412348115063389746807993486085678411352929476640256289436087365830080389291169744706359695487853846398062060021827326140259275050766335560794777164951128079422576401347430082107873342321773863079776147678249464806985172903004410575119995115386955313769027622095611564050894928118846378130951078142791760062310881304559985215026973685727801619019996872686621491681741449599068238246835377032729892700617978050655275435414755000875366907612087079714101808734018198090557228625932003437522421817381002878955364846387759239874561486058691769935522597441162048361551014461727753506555822349415766030353427377561664660966879508171463802022327330561673789976169474298713961703493337996289085593068827041548503762949290151737991746549821402741833866777532383620158763143539282241793092753062970480908467090848709184196939889882033024474832596958574928830690985198012228950915073818694211896366904755668873377723325871694155257946211113957488413091518548009474361813821525340109588265351624445577513792050235693235939760446296230069469482566146466690194168957607204768704261903899210389060600753624688397241059576105085961089236875022886370511910691394424607418417899399133817792177533318781685153581953007291120863823790126182549510372997535488347543265052437212039646286955745585531378460533769549481262259335997077952249803273414195616873074857077654625724339440371902799560948848993985097114900578938672609620467520585759204128627712240180173758786031340002131115636197958552521091651336414597742971214327008467333401026720933610141372456748920047305429849092368938979717643649340896790788835710614136991131264250605597375207528164235804319671769015543851860402280443432192358372934046832231956931028960478503183229427265444264572059746371275703898025003431301831036673423301005080959269101633935919393246585614559562377009257188826236786577234089561493259994804848425323519586386100723550740412537141090803893804295882037675350281054707122219154646607492875455574731255756609475317274125670539941587572944923840616832484084574852220759869236044656917587459299159071380490811666006490970028921808976664992518087865087921487895015800229096510527421835069825209286084665122610249230165779366025426666147930816444769599840017534719212413224888737457113542787344483115009597026253806447841329659820497210866157304389038173843181794253476904136638668652393171856869983859577278519091263785183212733028127347391739354019359505447994462593938024228077464280380251702302234832416225984647929078898667321012193904774298253957359070310880262165959413287058114636573361765090556076681625167032152590081204168566854467904409716073549282359642700886538781521268625063540164401422655375742824853980456239879598280115550891587517110289199468798650398514883815745705632963061752029953732848139651365847882745804400735004975092535857554757327352397893147566706740113356578515980853732056258815166803283751456301243459250861479527872531644944009335807732612824969488878510106895944473235655035950631533734030456400721835098299244778227574986068110659081389412803118768304654819517477303616300776565652750953376858270125930652150012743839313141381103949771290847515663870827863822375553366897219903486411040521491831271347716937109083080884212193753534698864448956761716236424195635964512648382196751518503110672383890557067014318860875652295588650049955680814990106110077822109441771284286684867681088613394641494013338016949014848839920633904733309674717221428999826704136131727661554910729416501436541227371518535928736028376984757063511648822089410134147948289167735058008640053137884689955545955519556119525827710269083830323724797338346402133764396264152957186130234822908304069465593473680684085706100382275282244507309554274692759677980467552042026174325136379698121663055361523030776350600673229744326239767324443168374752931406286071478953328524603839143837844393926679444739729840769528141712822760100158834629434079130906237930954139423261126522251052073052974478137948179278389752413326344848364617757375684934903611105279455430355938522837215252500151592930788852304095323962957591280296899725199961173856426090448288724114309427526591828965019294469079151795611105515284416074854801880530567168400588298274372972529802992113163799661072290381370986998398946433171535416864021213124017458638191858463420136810685299952891293755477998641372843327011538989066577988408668390312247681230696859860833006296051104249843940396526695549441840798887193311537034389957477197872916666197565227314272609011486371636736345525318102743764651334863899734295432965291344478482988539042163594468668740919896382218618443568751998040679758417132572493416253455446176109645916464573005948486299997592148732251707561776507035328554356419716933851164035445472196383549428433072542692134315030731025499651735054743457080876630135218262147060301057727172453297411707479592711927049376978629493363411807852782325687435639129621714236339590617715151003738569480805713669891496507692943090311007901364555434990071380250734096248822332905114952601106436866948543521245722868197943327105822897126336467584810853815809903649403827653527235610935252284864649281725550182700633598230789810977837398529277996801658498796676138899055826453897597139544959416735065431085535347750555518280855978927458852995586628698284270665341778357581956574150983840142539913297994205878911282374878741441883819757741204158790955800584620485711405255307867215716002529786109874429522245835279233087534576393422813994008252690881352200534183108233411211625049249512020840505622507413497041029097869185093819375764217739203394647086821836888263722910235910193297136178164410852663259573004429626924274403564553400684083511954966154124750861610756899801299920242767628216083000109219738613490358852798232787204796070197544482212919694414788937750209378335569658677047710742634891436691814666695344607583773069539597253359521037126704528387541768809913121676944297277330098390226520073961917438808051276400622211620845909239676588853734349151004154708880593466359424568712574457045336184376103078426139265876526070139621377065314795440443136006992771321319642698263329746558965283915158104208049703030244350966024945403971327245648931490182931221791971850545354678789821697476470595547055367538140633415966341348658634279747026312011965053459133067627433971570365100053056066372116594479547831055043618262034565819459213781721120861659701738564115837145115128571026951556367998129485635606650785778985077844100272301148368614787626773585137846482754415332841121649749705862070688044264623647497653291422510744670276517572686377729220808280747868923388335730528204502745437281846177842175339455226824728468234237542716436774681391046508808870412084021283500248126567279905970328756238396500534680292456158932451130241822225153293699327557153770388404466963741838890325325835435629947390105016261139323115646813057432104166519786147087740992921317134457549255506952066056445643017679131841085706713524554451038838521433679129936676309887731073572075201395085946482941237139245109347852870281191255427381920430480301579158748622706253561272931582836989785610520332480122614246914097769838453904957952855428957629525488337875093064384291555350596477330336213016155014291166754281173107297501100491886329271185461712731833340623424702727652065202884038797504729108107689786495154515981161263552098397525545440121324099381648850945593425819727624456624482647675302967363818939563798641155878283494397492717852605742373435039934088975974352424078083702370434906709411783623481155172715133276072070205185822394415425225999761260853647305320344939029287934695728693060617169895553233260995947897372422064052304762188587152454771115804927717298683063475174602409620647529624813718497299020278682276690633916778493292909342107985122429920554622466088895420724704158999736571401318551800471622638428114662702756587352586138764451953691385807786754450047444267794409625093889507312566347271646053938671910509398318394278059036351769092754130441665488099209549642008516222723180308262306567574238956957144528827336748049030592021368055911563053249869013792466468447043615463041548721784558001044184214006215039132981205189046302736488481670738213755850523583880760487016159085231269857480872675889257869660933424364171922873650481244967417935615888009385132111234762612921190011645394068472836749051539410323636567627973618544764782372979195931270464084217750057439878518418890874834356538994235478167286885249581871140967656104459598786019214595748613851033090312884874518770316532274230790505597270692583908171783449776518922332108673648424029078723379861796662659922805014813162236247823715380024630140459786338028663134047051991501289372997991507309514692322600438885177688562675110900634526951840878453837609198541408740507785120576396034971000650748545436609477954880598657259580013760134476390400874607375760644412407068346014268485785791836630154149577008402038479318280944798950836922319409044300534018628303802327316939805863454722251773290033340559461562829906750636134483699266697445254672696384736089565919054770151622095267766990634532295970220271497978256166373457243029432066867617635394965967470598751659635788389052994546231003253704571080722350097298908561323869906462692606846769986948047911579128454509273452876708759559872011922862684679928081726790339294363759036317490593835549887315431856819086297368394597674949260636735219933461440798652734923509013852429348794861784102473117099485968964176440818938169295531175056986552250886722806924832983896038776804366890922856911309321126490132074123647968240471984440021914847855868373935061288918415933261004659720657872025634248314676590732942453844468250271383533390693112091335595414739801596224467152174687310894907346894557326159259310731909381278706913171121343787481898145451631321153657390070916421801566023802701540654603904920132647642904416989235259306810816792740496850308333851191893392123627664670243958670623634402318033790149448053652934147157000429946995404809513530495810194992991287506164270063125498239222501738423532156937072017878877378887436888484169543328260474324911158460248532419628322600800230263883503580305460353165030023413439262110883733838243722500541621217275031485677355516395833543790999751172543989085820504609593648073517530052200123851217500282142922500900722364806788494602135868245396684626243083195573093255722074815801307245383091337278811870175549794297925828519654668435623940856850139868094996380166600180253134339098303588951737685555020126348862848500244772241848333023885478622109622820411745772741260933993905667952373501597424870954916651046581995085350545341437128328045981294503292677334772156652762876841177995190835708390951692783894571129450019875660150182879912250421051889053459333143278000865293614983347706446412892557663817737477387382821038199462634180161260767996200926599294947821107684995258356576770840598259731340102566415828768569492529439714568275529779613710442803912138260928285818198390320346435273461669385019486630729074601182600630774900275431697986055692209957608619646699067144699721573057119619876676710728200663136781345088321990708323124131538633598901926858856192536308703534824325355937184765962934976717408196176670503275736953467279170184004601852461511293403560948161419795150841692361938930615220186472352403141667648860879047903021455127084085387574845413714047091578691635009315089357459836301271534231500591041683854895020211610123068289359245078809543215683081254618381541322585641978168227406405701208757392925053281764851047851786239467750674830455336062850112064512794509388277186453922745361981662762478765266657323795605277393918771109720638404516697151720610559693665215243980532974908521342005399796655622395972797320691169795127866532179796378022165924746764017037732309196933195456491400166281993908902775289623474557140706393158717987836194418700965403303956359143985990575380695119399198816378179721229909907090664795352418998928603265797618188960279014119547906665537714753503557005841765031347112755413607531049310222618828307991024979574221491997638537712334536963367221303114873813330582412310903189563190930616251314550034147230982479468465195016085392289731183051442683906011828676112644729569495441096569774173297144571719749082259219587728849734137289225292949156149689063893185425693118819883033234475517023950985828138413787532574885956291142776411912946816387502286488801517054512396568765782436469243940232700340413218379655521730631805448973474418272062772889271378266284345395017669416708108439512811923094620627432197410940031233901107084635444293594787659927507316019459821751245566156689311196942138345106457224514760028921614454330219400652062785917931550708856213597347445209350414678400292075570080581414402855471622530725195039720051457151503017246655188597665263320796091941992809814248414112446369307455373610310612048830077750197463410501463530183023994438288095977799487095924021439126345431398266542674288363747709014565069000795301223827900732706802574641853720884568473869944427514514079808228179742490748883080693650063775301719892070911455431203955895578063877134266258799429540751180097726240654706045971579008100225128978729297801181958269228041526451038641627144832358750567005578718103720000433277507104647724181321114788367024529874264438928761179286828976284133706425829979108805836174116165156749497878795817615931675147739758436201774662105117132981447261816530913816660448826856334864736190690606328317543773068027723050476530041480220027314941645319979571330090154839289190319635390894941862419157313541413203843062810802511266707479353953031119906760864582806378862684952272086718408768452386492881835352654519263795218128001248548860409186911368380080066128068037093977665904504519119937080724221076605883406179886166631600824191618319612511748143926183114364707828940406823999722771993940141239444427527522909374935169620325513008626237032755621434261934897556894474501080377200626788526138623787637914098980112640423358271460683777879783417774677814302290567563143875435858973461352708259755496164740990365554329237847308350766901484428680830112307928845979998663109253766184202071671320496733642385425563422537639499012696153347348754009489251947707830469827813364833614062581321035436366916363583564703883007894835427704058526414127233446845840973019289771724508292006227258885859960069688339866501496209185548385062491856977182886872731592174789683887612993080355007856995022379179098022063024196762576750270236170535715600250957230404462616347334680204956714757487761937713335473514865053031208852256264230986104971937996284650991941467580909226453704409717190997952021010791896570240234024750177119428167699434002583423248804951921045850697373550152827145252853764572001674197123591206516660918503611745827497497250423687120100578511050036849956296266723219680084998754980530993197750258711026136780952492027146812144062124659550369580372546703344861549832870793394790066855053905418135217880405579332714654326019743407405323118275762094658026119992414913937834880864969344299798888197255066807100022508713177455104964641647775201468784740071771954827449673929861465664221396223212008701361914977377886792485629567932272955819174414904436719799608510626045702622826876256464157666566965718404175160191826226879115488318303951417965820687578992735180818035180368718129128665022666234277631240081613251872090483639026943935109102633043378883628624284667320690108365428417022967615171909071857789474079856037993198952194098093484370855060215817440657071409733906209797671742737681585752798070912192191061812625860717698502933182341539522277861921267410242997476988443456491072312726329375213087314070507567572356341929769893688393128206952950336771245669821339841209297130005098844304915904462276758930972598098241304031841202347159034243815764651629565095049532726992638881281252132785782778141132044094028956347998280510518407241568897261241092724475395471806855237814006607501797281209612603954130739212481516632325565220219649390190059512934514485517490147037114750588633425297827221570367470791335462299170681946968395306838735705572405860398561473276273030798599947424471668719725817226560478818388364590614109792566143605483264892860709393602940804681857179572175151500131256046049946991800620713714955957262084383104869972946342177645382012283284677309475353177022511493285397784058275008983181382507993535903538283804603511895163158292195727933978117517923973193358007808187581878290512739244625389454835817476394861326755116109748622880988640668753794173048297192068634929152501851856156028997369042157815715294744373542076395244290688419141041755733910067852716128231305843044390173493407786099722112793409789456127169350273992273015537605592179246819753972857975689885625500293519442765920838272617553537827073797662020500405507862459264650620913886955425656131492023810755118617959697625966169576981953321627124631380392513225593062522096249268040375379372219320424890576777671917936165245496129105497219412214700812337319855576863492702321337495837764179367908848597859286451424957255255859378736761694455020244151073182240401883578490881693808818019267561033903732374985250313880422546916816126522439034989554890466523701361072984041222300856640183744835389662335183501722661012159385054337274594223231287083406763921980225896850105312075459750923713851582220634857612781838271292510968791032718944488700333937440668230765129781966229970638189169177015862423615771638620019982815060846415074624598373837739650785740286405961646408870179409138666530261192347812759310906595911904491271869115561212155558510787694398228682197217255848305308632260459008711531844612569666374503637217959241085913049380990991364861012194155028661515829273546119880863349603935237926252824629602743443456252227879633647589286095970021466712044243696778899818285401607010270520057535643935722225503493419169581200467271207442143640297913687416041087471878328123462731398158554988071315477887394358050566534019638269670188945675351000860929645351141153129344988358288751580322263853284680300809504567499993823490859027986156452084917623317800206342655865612530982238540727695469043807586291893405337463325743346843161581302558718207053749648082318047688263299637816078081652284235388456785162600870414490083862760957195046623435004602093275745003593095250659833611109686173194921358252785951591378648979903571905731369658532175355486539037500579607846129766197304631012109930086489112941092480754235158561685966296911274470629167626681144016862910269023140889647052619139803860546468640615853730597956262744845837085125318222925981316550376361895636886147392836709042898306171964466965888427922170192896442021919585088555455025364306853069127216318951522295496107896321488381604505437958129679840159787782927914700712400463953845058139007987007826273264915246605461945047685007304787741858646836592292216611056145530877491507010314879582165464307228748321145382685282675264514048880509629691772528175399250622874032285844800737107566314465825735531530162071701075579640141781603380988005793486455179125691046065124605642528974415485216284875576820214920362650628976020134654800297507028893260110385708994192619921583730078814030801793667368241282488310756250213104138302196790354425611494649380354500877008400286325052850679260203987870140473409799333607232999595431335559746729331793981530668316798763331196154237625584915822382434884386126578560193369286203202750955207687444162107597983329343298499803059167192273660909400986952735551462257666877721117404577130034104400002975027086112103408765056629815970941206982773593644683629478190696917764681777786846531366931869585426430863744134252469380849735103339579778257920297453845943325812890381308908091705021152006944158762814065407800616909354739198880823019308916475380684891160661447439007098948548445540527036905347351611903300984195252253570832977197254569319068569579082887558836530483708852805813990273631601017047432116230869047442589118363649604132932696113237077088715717173734995812837151946216659778957135498852632860198718018647659891522697852785635433087229461322660378302798340063609734151181634582107865439123648733108294765130905419261832725505050867700792693797521479132218110203207783547217751063389626862825900167401612844990380063357794402169421462470825499045470449748416568956981445365709257875072504199632311900877252350556970482657038601302754624310452853952713617344802211153013231111924135869819557855811489064013344996978433549561523790714711009904277499980136339429244337616009571784461231813163520090100706455946637974744809699722954187958497374372082058199999026755519368686396425684352430096916154189568335114366092785418188745221506382712739885515997222540509414216751368617227293769327874636441873581131921463351874984706659130059942810579576944469705306485612088940014115406784746653627280037997365339393800343251569875963586932360491751172765413355360707781728097963986315698767771622180585499350379830083936001342100089656917428565177998540065770738847331927858422532085931422121341399040826975864568730450052907699265132045343981342547614253233798505890952873979691120963982504263165019624370457852081870154382182247750479160461357692879067395440042392933749781047534079720495785018504783259522416559734649399810100242893757895240320890645906546908522858206464102281911648849130323819003450197519682594767063830566540695301243617749309344600519600745334866574287380845367133721010891339261986618076606486107062018324893731728275841933949835543911841210802568035464659100723742014546601937613362373808391832591928740270761481008563930440078821601687179464005334001383946601175195518953222565607980133801256813561182127771429549613072463193725581525072535590468759721582710336422425013976734978845374160749582661353522072990939527437845324404090916684250123052262212099024020890631088256531484481672609107633257463764970819901399678650197807597905236499363213040380025776106737624684423047287670456391981221843922892935078776287738505741290554474204484288841453045306423704102900300573752185413193185843555596642520004026650107603758118485168391218383095176516290228755760749893358071751612204032909584133885462718725905636669999885449022328008823488645304060614760614732136251641104082617890048122899383987907800792449223776190150919347149156812519656890177754797180396950611877595575280001526816351547735573584569632382488378160986033379791265880868349044497457274037892843015966761889478837976325377134134228327208031504803079406359567008909786865547093678199575854421043540355660130263748910118351488473677031754247582720782284453607703228622659636186987706946769864346729428647327829578622395812515284347545850261014873705991674516871172692934121213185173465323021576256621671057072049759790965784744216278926625965762800863806362654309850180782766383851454640656710006056418970905812632020645225725933407977513840173846370822457201655079149860785072007574560804712064151371358057334970275250951065415932224698239305717948238507084437665726303847240771076210256575000939986159074356035091229302457202149900074913804191535570886859873853116703763548454293059261541029702548995200455640866385828428238549685140377089671000095515213331019395772457810722439767933628739849653663239950379699211660028614127343365135903840582528656328411768535154282493212994117723265559247102394647663501792504132136399963117626919191118449280988004902284437083153585899487031747008645240203418105138469202956413648076005510750874979766691987770914468394381624727335833395490026180006227367705249926178437451142390191478924727300576354253708966981929652052216743791124283575668928606709471054466376538825884024333625852134542842315630070185443662029136604822135166109173642778220490248767726583974827316834573752734813689665394831096470077858171647992452435265461562272933167545016610762334518813398280002208990077109237967740183216206214831839395003278127221315934244703447803718073190163555417840570543626369740429338741340420715707717351419818593142141442135347476844426627208992827365332877898379801522596878036901430742301400148755309934028928460588015130709154049132422760856222537480377662421032414335865768133021723252235333339937789364723881156200216655730072686316122832040047387755897192600781710508957661228610052831587340370800842978071448840378962191861471872102055854757019625753106968011975722392788304000397498826916161848322931642031681712003032889940103358579541497622707499365864944032029662164088989770015393902981170599102593421292624254108299274438363197428702657397608005609943169277171345444407084207478073514391644830668349415274509419663713687046366129464417784219700367498826899224475860314249707978792714802831686693168349135472440923214694954123028027328954595775342895459646331535659442320192836999795804130061394314483884611993206134788015884828820466788981804648804972629671436721640694428561382282039944947040562025119488356292126509840344796740515616094751122073930235529003084293871906045018963276789753020555138855765004402928096406251680263566727533319430413966313389115430002796367138884992043553915247621944349238366845941765591644272982893789069036159828278502497906836174664141321412393466188328476801164067725569194382362398410816137301609161568395981635470649170153605582413698747908350725095331782825403266881030244116770967422600824703316496863340703239699098598511964011972200808306884053756907798192660558132503517299985491654426846650679307221364890687960081432154305331403317397843964982274419263481065739445337665997176640200757688069599953625477341007934949229632537395520007955101139578743257330417500001123389005056388142893614091303955653755662627544682068526742247356229793331531884912458284974614269743063257484410677194707597996438672005133750746322548762006686023266247944777642720038685591794787617507121414490475369586463042193524149711827694702148746058010797300176994946394085220746487383870856432884979037892020191570660361231816264366732936025020555489645613447941980478560594060022380695309220974417962603643419362962729073745130233464791715824850165653822166272824119321663330791312570403696269431604254013071110119504826819041110063509661082590595238826814671408007683288780044190739235518152316459272856598735962443241722859386441670129141929505691009532314854273774061621439725109994894565505968884056360087053998923166627375719069460102746916727021890202282568838645320626896824277304439196285204730082417825074599017372195243663920648007028115912680266017058469574137557392797962975439336529678134039414498841242859148228023052760878220817253537606288263828912965416478104245995946420306485739074645868602326067322599977466764608290431204008950411754239741841940164788725923870684729889439502522662617033495674229988454885243091190224410719696888377101962294087503525455575756938413340191299151557570388408265815467586791002166835324235592454963021916885871162792066344991837879130293520337340091470268625138286326542219815648499589318628026804277176298324089399535985570236744970870025625772472173955048396554396239488406766868089821953258170740675436861935066471297880808497603105722557405191038332112752321614478005265585977048135345107608355493371695642426716447590286377449817837967812422435270659369598442842907683678916078673253555674874805515407163836359840938212432184965294972548304377073570420251675607974524466291366442954757660141038129149134614225286921897274620365227774630474807687318759829918473880687108212493821687714277622360537328984662296010130279207329779119546726782057218642904261435498528633647072077264407300489620402293038658989528440012462441700694767862922974423123456224615964041618987788480266312034352813976994889559529164653346187515725275829001677823400741742405465377253209055306522924052558284380692787479361119663010624584396029461829763254755290570057250984154396169468625968250405513216340024162847040009056374079945782324345645795566469706784722328129257935164263969604257692064902268089998395231153411691820973023724649308514204842799252672555693363850810167860595475558192046499731683806137628192362018084941286731838681889053446900101773774771203809437010674503198734849301653601390130976864211527654204437799882901261878316487441348283541325099663791538004497010576718730434453939802343148311541378854079051390932747606644901859667656245673304237500126968464168908812998448889186677410983890913989798215795555755327563758639386571514265373969180123402066358485351383987370910318096768446420491830927373106228356384316058147559431562633502307776544389790881890278112063801263659567530554700588948472585029288377897743631347880719761345968971341957463183912446671921560953539312521906116578944546892127792737400623302875689372583425891255059976732291750787689359562792430523859338820906488207294997004770148726130708682813835212870214538845169825101517457316912486159740616138111472964905141877088706588615543915075787722770579286503761916577047113008997840155842005088036306307503263345291213857553765626936941730550277166038695869123094643545524961978634544087240950038658794320666852925715536808874447070793246277543204250143848209828948743054569137372136500019251599851300201373367556692507709845061344570879140105777911025569487260208743006645677631587488417547287129955631249798894173415329167565001087809452470377313469878557810375407450404850219027352785434398524563601232290543114214083960054504810140769909891955038359994405313087770149369017843337541787679048518474844538622868100095218563398429348809093927968700485182176577876361782334052723326077609787156877645154448505656069591600364273916366366859495642927599270588866102354224235560607411246655072538371227259880425189412467626464509003685581120038711104549080427665556496671286973544263284468949321435180887800704398992965701853455780995665791655967527004523675747185934151534975653220320354967388734573251435216567486656650201365330634327410852192885753784606073928392711395926774646362083518511346644937816926858229349073089260692330162264841113318688470841141729614815776005138608632345578775704267340673453420209485836908405075141385847688257177062201635433194871629063417457995753951784392005038255592513562182282630670670106981326319467602896585759926212806150274491431257859092377787966364411806223406621072095074000437027045975291982600583508199190934510176743617082887984636243649089525899647980236469640141687540735144802099706837447103218732750909774986179889421275352762611209851744442852777404407014813715623872849623830746632255302072385696225706567620508202536448209630232152722567161029446197268018998807926259328092794858248523959521148140919334859858483071206338997150434848407942167038874040723510458229973375240807803460151668471510384045251375148962325786948717841811321832434713111787203430230654176983898251104233387851793138167873581821974660023203203268630335955678736467250788336081954772375820706625792513876271038476304994966267400973412188832201981347874382088932125816248135077060796384913830460771700300877927411023500985253531966708899996529038104093197159224924740367441820818997645797594777405744909228380446766642871907649605346419982946160799620409377387637697792992712943852572583361378318439378029831113668351400197221199559307964377021558325837038770287148749078016332547436598811799589600614146770060509717174930758271692079470379152418645075948913370157293439658407226769626423577147361074170650863160080502666607534144950320690911074628413959496574904235785821356929564818624442150153884047792387544756891949924876859657676242012919282424342065871635273457829800578142576349181193758325538667532423845844441539048494780885826689528140565745584522732336386685857263208229402254494217078737098004770023267380912283267574155680863516107766519845406242203158432679561125559219573568705262664531016719196215057499493476217992472654306010041240352114112659382158267371546511136623290413441424722345033649691973209120719258438625360092584426026728736590321123664753807592059598953366354069026416349347628019262175686282395665603703483664981152405944486621834483820691190680196091621539890223091155501831793388994687460053231300025429916855321115221347683909348742768798393797175397551707189974666607725269985943825433337491344168156367553146619742990385003247228366335198688016444635527794364740328524413534392257335007353457037103292409382407566465619719900586009169582427248805540966534253824283981678946045326589862292772348537362167154745999731435745502670153836890226254885026107674920539931910734654477556741965975010082116692564056608315161408114826294476536421725909413610755209480400423917596071387330011431361636225008303817954087118841946211996675867179606993767750789185680763011058180710326294863915894996329312092025948216628808546741898248346597941713292670398148620716029108718635756669450064593219934699985666722782205729468026047089339156230963059542968687894846438340671932700275829019222012965285589010787620808544902301680419274157406636581107377735028364377783392536839279216681345315610214852936017270632904590963422580814854224647028449220325786497522769468951758135884102354712154943800166450204372959950233452495182826968804209892135792514930071118804429882515394197274046747984765272114914017100606145644967251575878642591988120788973481765134388167825340952825785526809981826852816310564314146167883964524437053288210064838748110874201616532345741177246214260946472108921593075247581274835756106857847874374887965951152250223411865656080998723655937627291031811497924930253992146060977745189274274577741658003597004964943934237885292379856852174406818542499390983749177771434302591461276960971689385931844965476803384729021279971979477029042288255305059477098621492207803333167069808311248627419302240274891515012937678684219351695968801792892694032714465601772922814880251208257780184738840126993191598456136714098771027001717842634654546319596969776577127609973444632133362610320526055439168005884152559133567667799699071261616703744775181721897877121839732920336381372887245445614781229497509309042559108445260760350116958670508747186913738112321786423711003288255379531863960745538166214457921334733258347217305778317282345013503176963230097494732263103706944207908576805851719775847565114143877913478677278706282878501937072841643218088793792175850584383189243267459149261845465671772868305356977759702404521574572629466267789594559112463402897102313354203238378706706466160707292902837742066654091507724452343858969869247556490840086030293339457776187334383430175973640569016608880293897690009897944484052361451342705485927968668036494312134928002839753028447267847577690544343656388908404952804219767150534661201153517877103320026127731115559681629062099532725626860905727063677210707716830919535262193619613969938704632301354979209904873875417887974227122646828254054479149348983977334475554384944919370207411583460706164142981068043058784557393506204434986648431648879147900226647136489682772898194892728335128377623696594440983194021900492642013225000999608064657614069473930753386897833328168824082283264982695387189445366285964247597024560435220675940280471196070855901348530305382756587304479603263333168116406178385897996210646049895645824258143275569721552820132936798068516738309790401785579741354147719502561275924742732985952960927234031371093259565501337871333047480294167801342970785238757889710645360975414240364725059587243253235539363317620707062939092513771422963885551630265631639736713783536591278971997456859197322076923618280544767049142461863811847660026210376319488591305469750424018350872076024021054323336960301465217929559091864420803425789018258473703539808603678081089042602459074529527605268695064586567281477301823837443243049612099600652703048180952210622425383690838202578099857663184137922286546964584250202266170752193492171383302236640424587897353695732355566579895920351715259335644375560320399061427852054529045437615745651489458737405468272674754496968290641654728524123298260226624037810261900895666600108667140435964341253220570659251384440626569788804429605933159012155629330275600066279295669082427870924350404500834201508913349476609035164856833045748302062010403001343667627922181311790645715379675362871217622735233215891066564544908176853570540122077743146612979864602765564355275818013524158047167442297977957373347203500008120246313755648338496935518359994821743475699397659188163326336342236183937019891752547334660187771739051630164487461823791150591105697688524467919555430523560260733388375516980940996314040664027771966664585240682934262019655986792697124214591653663372230671110820388208673901690223409023442530145682367631785983321990786372446428419247182156625907393937264646277550406169766277424183457026694196494214479413163060293688667240193839988313614691798130455698411419456037075392154039627868020825063631570097553124816258449021299099336412095553898131565972324077064483085729469350507304207644153982881501118483680358131391993811218683775782627999181784554366017435052591376913100124960817765673524590553639310482960082986179217309713885698194622640714048259516095724165228657671749181390415032740159541597445253499140021784015742141847039376129376796974577597747298958052334248361516614426750113502209876903093085090307944889558375066106903909114499593497693893135799117620219956345447210010734473752491531653550383725561327768429540908440039271916767552137431206463209939212322381773947006337920800946861073704062108873676307994672554711758778696361048308021424094536574103282779723177670400052203166100996314322625940451057791026862749179443199569150636724434607567717135171296881774738464192807790538763193935675055364510423938035592454393430299924478751751811656709735936572937834929375560887156802667898217920546324770283374486735029246659741251143761820188871003164527457870473694875429496984537279941791230354620083166271988050150058262724304003385433701857616737111394797278902419552332912493054005302026151806812982933879750887005532127267379711375672134886794279922736978698413397927361419302744031268615242404009156953888023483099843168271561967894325008596219645551435336871690657410954606626956502183500284982580996554556527765237174734870401928404612779460601971324396865637065210023248068433472694236021352874705603666502858788987045497134255982027549971389238922412340481010855617308505360601390572553519046219737737358471169255706716663034620455962556699091052224273836546517791725545468833388937494184505161582805645185978144580904987505560030521211548327016216204855088404436904129524382107653895095090597424840507231581940862866232434896682363267777905391121061557772658267708695148018622137244864097633732353499173420500849894608527399537441390780050793918422155254315863391676299385710261862665446581525061120136563442806721518138529339259579735313310033448704844854967603230318566041185655521074378664826288483978735861659322939989119525393158382102544460938818000687508259653970632318366283555566916045597011686540262288996930342230296186226569295734103945977187880846615968422189961213828432655993505799893252274998929637673001898873000973066191276538942245338543547587681950628146253693591321867279009538320188537725578174639936926184038545423295769579671025838174055948043861764898894120024433854115842552817191196276541755880867908602223259256039455851551434423607838951206520453744125220167057786889669320738461940270423335732799731533714236525306226827859105756184363878889041177482810484867490778099731726520822565916323654031721800419453347183244951178102649227193086629403511242785168049046204549065546484178401400052548818960659911416329031512440109072526221801725073965428715186196926066545534833694612430208858486867513645395424696961144169371093900963332374748965553147450031331333412743220322121682743879522151860609405384946809309702118044959314538643430157296154985392020043548816811770686186176530149568915437811698782381935718603786493831027425147500390195195279896831565269748469875960354945268671367468111239260677946951636376825730700912577699002983036075771756046330402022187046689454093859650776508649437239372593430206126420788302214056312981494641297137589406224239184572554087420659735200143882137104352261535536109916618624624579036827633569326606629114651000923580702055976532928318637022809453774471246755980580446181538642500408457850450784851023880811764451636040366078376618255514852845814976262016008653306477863178144642815046325694090488156003825898646985396681595776723768938461455191079361200394558289212838253001002521825022428135707812725792348389133886950006608992999042760908516307278626787238162582147846566794091394364880613788776164731106104799931839806769783795187468684709231137580183993044265364301032643797985196703745634237223541695125192313049593803400211268975434244473317875155683169282251567057917861338791573158268172691711449223355558092152636538018369899837985593381635217118878343193537285892031683860588260111361663635181434638922513369054137307259959180189601687615616434402682476281048545357278659855678826338133853833732938130259996793133108522569007982712188426689528806919192704700671693851600005358792371942710563101469860165365578181154624631616562565107352334535197262291642893148231090824265246445002320017511022565851609722306803204631489291908402716617001263374943116851742178573039618008374323482869219093834276469272960927454669852730795816040161354631009083206800030565128765757310193594562004624244599691430315755743824228473468304609364960876064394635267372942638504219973630297427465632859071764887989308499577592056924282369082281872272459782909682478777158423232595789068904413338570249857466429901640779237994962215781135679660622762284395154413699697070223828911711777747734064293779111860634548279496979511928263812933135650557823354504614199713592132104346694013166584289529404291750035543164229249160626296218578789057585908863821198124934695752509902695255762628142616216323298782264328225894400990166687873741498476048815124541760699588168630026127202531091172426053978007894468390133078582080352356424928937912079053296989965443970144488445263110949269761519837062684219182941533433243968683178503255182372902122532727777956259911315036521858076326835865036416235715069562431565819064523646790221220284239820511656659287773207664281173101257294465255927668230636733023872728665868326482928605563235579950387876018211912958823453296166708803061273752048789445069896390458743772344192772669701287831499958130330701759196490407294251953107964494731612169830474062363074303612398995478094456208991672711835230554254162995592925295245456027305990967853942618240592918965942294930148912566057205107887074860779854056090769164792743172559024394300147250592653441756352892967834176538223617147610151222620286607620939109786474618974332885073875273506131351647346774513579241105098884802131428121359946456414608245136481259898757798970096601465961841342349450405706113477364763977942375379018399783380228885751954992234254242413335022146584042856598924308186024520329241679536823641850679863785440366562356173978614334349865926176148089767718481920514422684801507849462349701812240303404513675177434170296539265250181184699048954725218070214068485814027977378224437900908700288596158939648755777167176801845741536136728747112659823155722355484105613055511620204351434926615214400839339621219327860457286067896103999702978359145425199679688022352263720297111553874514380413226441933880422534156336128403460400649438478708234203393592621400470303922925817578064063175338540671191788097177791102471514727897998839335899247902604673162543235058648993026899187564311779877524694700843360673333962091711939255351950463444285904402495691945522337441209342028609331677729674317490441881080897229107346155836553555899668526813907352619577449966937767965308147439505343802095150648337735152008173872821446615789839556302200374452506354812025914871885743088780334275372476136874468332024179469936645470394880486077569448780873013812110337724263968461132739329699126122501476325111596240027944920202214353424225586674023420780847164067137285104221471087942806474297469875068402376594357979746807059849934330776858359525163862136744175683973539157665562310852015792885270066728793885338348212993204136642157108184629693588007776149131101648210887280829377782250232843019806901184269196422185942764215494833642384790899554789366355847277248999081021413474662664842460104291341399035136626577530832325998473640391963186025096570389882218556474936245937603766019206191437366552396421663878198646192188531466886161367782852595607444427146943014423771916640358511073565890241016398093147882776232821602538110283975646488972439140564285416447512063347078119525690265351448515374256138301801682575743929565579912615803001586092736964066719601591980494098102391626049139885137035736091361855015506945091620301229196270176179843316571352513158097370074356764420935473662455106024788603060066080729989220421252058529778801550192600236961721589310207726293229760976331434003328757588287679409043400374706400993628779386540083451137380443564891680651631872764326901503448527260568370190293236442207336960509050857664905694499531540221001288141693342687390225891991302721959523017977244411011048889244557831047138791809499362363634743987846775462541605563057059462328310276081499412706378465266911669156820100808091791283729177042046798016692220239812417826100651322444463456749888633343344345553018269623272958314390938812248579225809801293637032771832717527538077811403254378171856883943824558814915249070061726600442202925930103577097238752076756493084356012915924847095790294899417320138806829280500973904865742773524609251378525543717632140115361825946716853895275529535299151494739112552465604812212428439250672001487290858060145534881282392468120346018281805392976728445112932673348293004622173496263883392408105075982154837988077054173629614709690949504206609747053397084616218544558636284084191110476711753814708028615003532428168537584770520706053039658090326281668354915687271025184259793495393781058137329736414394584154289907171704213782486268551044208061015116272971487287758208798286585854107272997427870328136553269771566068677499656953740034634448987503024604457282831307695272587175092259895472430829213396949429406715574001437296027786563654419493798612430502773863216598463034311737467552107282078448398565059480629795004914270995454073695497596497362800456292940253962672200730839511494892295253581117797349131176870589961854502494468667537519444932879269522788342905625038873728377662735649178375529838072755683692100786202396998095404611569298323735840252385555113336994053724732991244496222108364496032295486002492672460754462939971639795485656482377595454442824429279763611080284488670314148236372271221065009978173337252303204898374962461557046879196512075924560180780394234665628553090619505285157066178404725949252217724761162245933170226435283987602050327300729216809334077181821755614037966748407969840846681659308698499936882866127828983881443052497699218238710486605175322503729203528793260032353737462327902946814458377314418047588441847756906636658296120984856165640628799692113919561202017157069480389634603545967903587107135058328698875273358562604493429088891218167440596621369564659627716618426890337841449881847729782214852695873547333051107452679723313725456007713585574998202314335666478614964480066581340195648236541499761696250206112429112790357155897615656496268537339208062488387354635025003611040933340860920131755631652424568619691959398051652246776040032024242749383673042966485136174664468607172890681487327852272707273272425584133658076350011978452317286194048235131338812947080428520120276122557735472160203874242303467012743440016964606445574132833022791027472842393822605832478792925903272874615842063126505576841823009139492789751999868532599132407598832897252741004621244522571970643733560119831018226693999908712246851709969221689736548588798133506356998901521552450235698357451659205638210009651762016683297559375906682791271409023613941544354308273274117648021524729876746285342417501281186591842326319823849334970665382879817663674640734064363367494671738443110151494432839430644507495852964159699499038658063432649904495309416674750550698568263925795955713366562683886141093160132477231133460238271938000693974934292544647295757106710369364002176121840308110200204292388772900889254149422356291070182058772205902813448169847705131095885041115646034074385716411763330759879714510353096964975368413535078107103749131166874395624955715738351376928232235362790988621327676000549968634205635643621952752388732187397005064231130439553531103676917602437432186759694899756001232357274222254592953124792480438989305877166483384379153886289308168452769488551763521987048581665495178866449436896262222843877501193039017904283216469585495250463571615779465709843024575529711937183297974892191912776376080518793208891682730452847965631807951263404094869743536526531558074066298274353209641537425352916458823739792426568335863286161980027903662688753523309474684738409070913761279489259697947333718741435206775109188242779955345336647925833815307227843464591239412000888673912425117562918725399623923417649526446967010785000400016102323196869857110113228317853810335313067586963065355576789447455222241400413579736000938432072100776950080133092864132727028914125430338021667491131485540621842130053160289001384585312459826611451788421345719163644109130177253626504194990583915124397612021451987390056680035118117180330128481911970487156933844182123117965567037521625773196251523881796375868533912664948392109563992356255218538649457950400001452890745633595898087220502524202724042651166888512494049497335936892891440612101975758902809036789342608074542113821537048651200404356984667272549259030546084266523748871979354909582227198315743013089540653475727100668250336452071455452535259916331152500642770468098869760570943228174511693369339128299173398921505435976011333848036231537991401103792408740378570007532301215992314234650592007499732136147297021733416624398466086180028728137652908752147562996258925535002121077153650062653260328719360567173746793842722492300741574329711552472295966308441354776922446674239605075825052636888673832602778404115202011109458539744990635894411578413821573675538212184686393261580361200985319026161120248029055762711371278179406696125212775653868302205321339790427785158150897076195166606124405540580942361566213864811057004479896950829308447940617422466220913918123948199904414754810694948796511395390246456658080259396406101860303546219305290108499002648618236204635568695513721153712473475840922435416504829012640203926765635403925877568463980424379199909428174275129850831496656672237598645403766705981678251162542292402516306885255982609272250265292118845668540804932144315843442725686034948217862574101429491391077472989694582622610402789026940596459541439471588528498056369884222506861435279718197787918252142776654109054497815358016080387691255388199059038601885614894267738669325280178420068098915472468101168253887452091335959114115568477138146853997580373188567355763051669812084822643068639714428260830239832380053996216330869726931008275587638274842869398561005337669523673480710114714772587973713268935355266920394477671427656688273915069017667935704544828525843900631280197367747468302323548221461570681807212737587323971385144375819797968237617477235758250482472839042807980057325522724475928912302310409330992756739797903554715276985549372095731639218084308004058053172102418571264315882739176699163969481301611385147352850821277096913937164251883358282373670810707568651056528975886444019168344135328285743566997297327725861941295857860030596634015151776349787500836082458247902947969157320052402573229492661394354917132710998012578326712484998635733824522415843799718331973394043430850480506122672282336694531078773318995696692278459306127992493644927960144794034452494247900629295316101555928768544449080368316477477738468886163958231608532771851414520999666672150681795507331170463841779892227157957252392868209188143539541399249365311176485877004970182807941533203803832981622051571095599920648483334452367538402029016581873845516854743464025594549845740454240772258128353770945699076994757970437551637630272788622522907328673360046177417578130905336590011640744596040323011410057336176429913955975980607979526959591146423637611281350975601161387315700599200774681480462933790211428196584961175052710343865020503443076492495138385719025456514826482851770376205463544004084652505182929649173889858424588365124637162323869048062976907979272133803359569267161118626547201993571913450670597030438064264684264252181711667961354153426709429300982675663107171157096075996471121902092346670292845784815309835123800565694658144710242505016511407242712583078656078820765227070307841636049219639173883325231381685342760209994261845842369058415990984746318414271303510329084514465898715239567950011083728891165974715057882631612775245224784126619735844901692505426716701703089395225194107791148651886956939915449601005717077655059173344874033505026819605330915238588073786356294432477144351189960074602461532378971485019216411727743575833836885675408022245620244839618631108496497109357512166431634970100958742235258142998405526389538621868301158587344183066333312509085531534878868503853048993060502636495251318115466378943414317467083750733252803322086834616440093403743046685943578692174090418640326318467519596801724595588941149995762281012039238991332559391857452752275191575463453781362116165132529656594130132923494726917360282362279056013677240009619600849537788491351262444299963068664273551819005905915738200492602246194933153904155391389542798042717480065845301043884441019030651186413001679911002753054706679620084630843385075351694082010313392738555863735579697297866736392265003389021365211914112871510223627188314179333325383348047853472459911927474908063429809532120305245790463020631618225810841326978747955871509697259300222236980828667657141111696185095315525684787402471846158259562187263423977511926522055647852870408608539460148896577810459107578366068699117101916501664194537409554770884155509327554276047582300667063180918558899065534589769653013421590379529727070636944545640267631340121052521896619282396630526060101254700520179244806282915182952636871702134162854842530104874948258892379360333399564915061087767454939843204357606267565934310504186633239238859146063714378942773205693780265047152824427727826122630531058723516544766119089263908931479724816691325189405762394232877003130540135760028988256174616614960417386715063450417620387566300996375909155954078540666189255196118127836963725505453969585356609832812092910393229605341005105466700784700957982941091172587324613718865795120331257954485015652063765842454714015190524103543375967586470596893020288231451984867707412401416389960592922387493100146120253001118965357432441258706759021042886018213040044192644654826251491123898647629480259522269379867132691104861532248557864631023251593634927381385720441682423964522540444910495702139116392137098789888101087065444013848624520289905042019927337821925973079899834423087163032701913613689978502210944744808974603919732136171628047127277053043142655800552907413603548187451445195549859137509927312229145589312444559461875834639893309886095646095395376697611092381746089274632737750000818600244540699350276335669162911213677249020160539750941471593011705805309111897871370014485679337295373066669838226476779814594733765817945309982387023290451626913300616170632681313139080643086721091952658738356943466292226534196751558521296659001610713314653157241026744858373404271377101197338988549367419595501837127933147366264749825330872000806915162640677183586945276039703556749780913983370904206925217550430491693812319768025265554483097969999241335554055138936463585307794195948401117257250606216844228454227483226785288256925347993313349108451824804918393845948818814663593579257370648326665368012858194993649994178977317654071434941571323940844810278562867373544373886669752237061016000802687983064542539213920654288745096911175367543838360768527147885381966309265195401469714269022173380389894971320752930031175121566876790750953119523096725685799209526478523670527856617794475739153090375086253246038174433465915734712199106185350724006712031969319928776580136312971430878014035092529366332550907228511227608593637110251474465882684829786240276661135295307850686176869363867326457339196479939713954913806895064389000100266320481850493720229860629687345071429050551972438954732224048017465418621843727792757235743850170236050604366068749637621600197698689947177752007874098120653924072694707707142246829747557313807221346902273146760426681153623821024524759863188951814952202551773783731746253240568405669164880823462010009992017339040542072430530775012161992560389821686303832659292129987143673688818011256320722411338420130555594411922550403970622832348544885189337401515608416719388451910148024864864918687162722328001054629245532917280096573021065423665102001462445433117685248681726922593815288484244406705370882334173211024823955664220970059623258601896337059910653363078577470415941780637626824688425812077178565738306775977498272268696902152836864204925632267170287332716474322379222570669607650048339275874869960290566956440098642970114296184053807802209703071351163605286772893792787982288659378515781270396710179679615445019233086912224756619000595101078579524970645640983658733103448876720015827007934788577430854439763548910399030516902309740343227271596333383729767450911304689825274483978068299484926652510770523244311781714658910342446181504317713923559610473081945085440089313205397425273099749974303541269786965543625729105593531946605209716390938265922268574914544620894476966296261146309137532327387849008001424561432599114047907741069978760871348532611523080679182018038372874593453951532036208063354006340418676547458600256607431525076020218864978326290973003950026045339686463946641438494580078021934382820635613563661732143004326792920722876290738740089581320264095176389211610973067770963055898665495622683366303755216593227287575265020671524793506844385993053347249617473357601357356670079764951661798984221237585325470655017613976112163364937658984727879931397336153527324330024764716592068817205661656943571780278705925057747713590999532226614057735240562899499543232575084041538228730919921857838229470704932416422873593852603712200914023966821357123261356569171837053445185104426035586611348342017138425707424361050727923572783464093449757476716880488137710788599201339031860213561103168201108382715215527136066734878241700106942564616377156435378574269333477624846119755224481315362710321212943621989130554173806182746279307698807681064363411125739764647203539371125357738794460053748195983952648473939650225516134844185106375051783004974939239594176314985908002477012984146653287550714858166262753739765587044040745683031880254425770764949655487915356187493401012247801485552024087089091481546030109376278914798093998037783374841913954170670576448917956213344234147683366845780096635581126939724082601273491024595112527509725906380703294552741475588447378717671947306321168592514060224082343158125714954243955829272985351698094832682581914166974398364136059539973168550826371771553840725957340097921457313111615074363281103572160733741013965013812185910564717535521517236685188859367609826428619528820726097288354884898340240090776962218766052965995892216545734260652209332467087922268101687605582828545783326536543183715588085024643484502275177184429415177385067665794476298008387680896258363825598409343254883385105168837785610327785857609229298980167606835854204758914107099350190227196254052978069516030079733586587866753073704169264278389249422104329010380410988739159724942975479034178190510836171085799082195653152214995038000744037511462241625879565810924124238951525145577908510732462131066033796558572134597013559520300118111638000644183478256056695864419105342713351961953275558390041877227231092797613456913801188862969615387277748902939420739914754667230293925562865155520627723442775418426661605255998178537874654128330109800407389514817469903911221109497621720092734960622713478302039996841234845770623122297314970550934569440924307303302762395337123626385204135387713170455115370543143347625987743146268343760669900135645561701667596036965099739605495468634640310295752441163622443842850079208391656857035494730856745333551141561941602204168242906629249046709062584160131445493435174732502116367366895808414659449844491985990054678947366761313409382161543038457526124025541410276046958469713541688547091864305134006338113330140518997638980274878282176218823297189253717729221531492569964474846319457047709966539355541545847133350021408061769838233624077126234408274671810423858168630092204524993037961770142216390920692397800951679679030816053499693553714199209499450917250728868570821706018242898970282133658139692937509677186343718543742900605164437683770516696233761219838066552640962883555342662293199855879836771386923795352690011930987387678965030787863604627467243193201294803781756792687610913440537070191103572590650868758176051954014363356443450081555363808501714170090331269825982535286134482542705434419268293900798627257511373447730603796872586637813432845815838089176508114631784887647195055149595663590020838961917269439668905771940154190522011311320432905960196886375144753965765005841227237531523346193787460535365731942674423833333961678002158726169671182017996281874416662585412330747189078396560875139252437291877787242307137240428757946470891407818127301896150746293814874920310202493258625108325515045932357483346814107090720655153540629401446609208202950116218482372871561562056769981587568145774710374324610174915497230836404232038259931647566149363827744752450208999248509124542413085189445992131632552209838030421316775097344541139407657313507269004644076815956861999993759335514032241157878257393139813928148979008579720048914408657456048870214150173839548900516512704639733299660226650500952427642385678673986910941210620590290955529793604299530693460168044225242826211057031148277638535047499102896314120287975756708678097421380572551151562592687383499292303702911427346115693924183755022508319863036519159028867004424013368487480622258036211676042130225804282965449310035482591247135028120733492011505917149189173204957052859524463939969005289002584026070909968165078233484168830637590248013934231447233789622080139157619545025576651860953328550819832465510327938128166210231361379444143942913755605150524405214790116219479278712233064870666097064077377360459519477168015942744239498191193935675755215302891609925531888019345718040886018384286266119192855210505596337950949437670227614042420803238557101374584298226179150659696167841569038543691132459980963199914316321283237756002587090669826659276847748613762319808408008390301838031264152213245576675542934192575444745306912829638026617820334651815021834211789999265804594180859602896612280462375419891649844112115234068166384710408372729360489446613156166797267406983918541201773961296027171003428674290925110653185781058057688015970672625004593021584329319625577303073320390871032250400532879766151782193850503329407601463773255888964627543706125562160458292058020216210275759268187214320967555047059903747735909969367488080853444721846860435756406031165726407112257370699152511840155859714692366459235041681231886226696397175624674460077340909898570127413956143178334299614794930595201711491857196102990594594911231203312970753836792020399744875660570433950981091172484265188916019215276445238944783409665382412720225692377735987197572605284771706655537863008664872898693909141867715065598017675969321393206030885190932453509363400233909397368892268115964339516501477216991521140920253402413462952610052542305666522724475698715668620114454340145523960569187796588167389369038941070735195825231940029506684434146032992048153556383610034241155993782986933781767628434906445344235456365415399247116919196831400221673556978713984402271902695273798932440143795812059422438998209471617816620423239994733824533953452373318391995776444194240597124757101712628185701730609999207865293315630734211893275653198230814024100314873902620262214240132819710729428368792026659396217067491315563997564976841481619224333679467014425751888601429845873454938348151468650630429847311213946789873779695545538100753928286719085082900224285694203385918008965754449720391115101832656493936590585851566433997830914565736113697872260330789640322548939501830511795508482743179368162305542278299524896868830547811283886073647444723052901012466958808748792156471781152382313055396866971909602336332854999936124046107244087606861411993604742120423544449147755958945769199951052098545668985661613031171183329691095689336002944188419266058403315481706773231849610429268224393694257255484185687143281193786826993456652449231205231836938319589972557043480584717318956807709303701461511380679103515759056966159093870440606069961530146323747764292862086686500068039364060437034738098598759605134506320997759780913840023628104824912415094557300660776519150912159143690627871095041551366886315111635222220432462780247078528875359750369102251431115751298759464908133643112894782037961740058360300777018943157712377265507907652686066325499053992368135641173504888699607235224372294244778359136756196373299597795045296211529378262221004041390710837414247990947768241129000260036138728550722541519939365572219864235850746213118549780254574404979422809935668729656390216849550367800019070730232794238392815016637681222926391945148599034900848670731457973798595210323728268771803643111203726769862538728644523785885237082292316722709215590962133345906401133812523132467877573497170648645179482362962690055795899707081380724195500864748683801457773588910680690283072818992793183824209621696895313331124221834228783700618435956276978172954205266295118049770673977405816012631944550200887236517445655794967858050214410163212249292590377232281519056776649639674753118756830312363268030549491970755393292853377661819320178328871465259857943473625763818629771643166597946920406703441385867009864833402814160168657491508135562847690028809646350943205303929484958407672754842515657984894197189814555205782546432201480422000343135614686481055403926445603543949742016986420650327789523493082777402501839140763018123054915856364957232159923397424682662984666471377861048491546636541858503035024301448184489884816825650110916315026304553124918879618384134704086319897454688441047621106749266546930222913305327445505418681652151200542512040770096617124915004325080917527523575157563826663962664640411602183735247572840263411219126794823891139255746885457355443068055952935420808269654974276855646067147376386481350861113607420392833285026796537785908954813184970858441136650215880517037751047596986429431067474611416543340256282410020317581491114753639660367852221205064328606854698929270374280666072329534789738448936994990067486959399184855720595384947708665321065674059348833580993816502154497661010127016651976425991926621577554908020958281067427675356376963027288457210335494788024156732296603544220963984559374381027273650269416126375524168567167430193970870732704466519946667241756890636671204180490660357348984517725053710032046823620920768949722973912561345239640406085933526056820243294575913786041403453330156695192123771991715389052141492937801639352451846018750495005670582440083526480573461480980616024013394420691571851471750858390638733348198573916316708793454538488672534828368515271652794642367781123340628934253211420423719903056397770568739341712307350728986615802068389380260198159040945491319779392002709844462468496916552805076536378842767753194391818709328461214218463001977323778090676387393841704850117451040619025226088506122226905100116695714574875366309631785984154638354985433915889466175113788693614118249184917834323236724555801187496284192051363118859792194014157859267473006760223436310305824042811999747749134509347542576067568117151539184865421565139379906406844490576776030940602773213712738766003231945619649848441324823561278870801343966949901934073949762454386556029834789223816903963490153746695053664962131771640404947091297748335785617626842875822809464823606718292759586399129328797649989089935361066963825887239177957738260581840510842929928495514721664343269373547455435824498967413434748262956972454810701057891080033669972431806920603724045922534976512203707540554901740756652168441611883088647478846907078835922491387215072969589082076611983521208717004599931254121296256884750538090433236789536998028068154409178398011828263277535762292670463409684912431589639916401727220566095809446652487320862513197534807502288894450627160279465175266632250284902629775543662293461968259899809778717396468558735489135250664919331435902026883900797408030262167358652802523657964657306385353290014697229464737996895859294442799964198251647980645353459056498555352295737898149463817318508834912653753744208738609989616030083068635134975778792251173151125972670661480241757790324881577499483863528651639221011851828183579283301492011783118468023285400562535513776286714792693381544706593610935381256902225965740020166372808953920228339607431166203762087606005377570325823648416751423410536126907365953537412278425829299383259169325625487975849915947140928661404164999200899504693068851793607129081678187625251152871848657560249155270219074064680011823408751599830999113179925966292650194420215326555697378808663605811539382781885080777520220720650985478824475553507350758744525676124017517234352303494310399114770014590048586108149349429935685966103400082166447485876892111530223653489782579086305438881387984668371130825624039929329323428640247825542652332508534279377986420260758589687263559915914515781885120256337012460932044395143524610140212571292985843664512545116264957811250416725683516248654365713387467575313425443604467954775653909047993029505842786173941764884549241333609398298512622893687360093077416280876278962167036354116421914742308033219944643532500712474618699367413450516819772326684941975394087097904248809894096643647852581577264630106914775155514958289965362623410407727847777091884141487988257137723040180305526770322761075243761635858801000634699629083345205725732346913741401939282995088352983507923444081759056955892083385966924306204122042062462733007829327491457508463641827924298518922893182475697581110342508550084532203638138140497024314234081017397945633584549356696027844135009373191520454286008746246579228760783975166189137185492446133713917354663317050020296543606416640862481303132815657271560016036963305405834538408552019044897126547611669647451735210935561477862388887753480491087722735406385684534686428081786050008465608250034472973140814039046654142021158477008490550892554480845770055685042312647296509982994098753110828926235874442010443068258535542748969607161718351121985186181055131551563092218701151509770823752838376411540790261242814045987840997638540180321304368368785315328961040092983008521330589131411481384953761464596790893588018920040665201049537161085017510272454749100431910462743561531315210559263481789447105062740541583586750909068612737476952726413048036387847846345238271472764883306596725771640508334748913882571434098127662136457958348983485195216723879390311904393422395077428132180452040463763962570812417748687132908196100246341892677987159855732798828750991566124350608567742006697369790643285249090266296903247270974159962822783958052408224290376036184206343505651205595588058304027419770379665696823289043448832619786626947394310856710742015410574065311834805208549319631377116759461994371263648154488664379581730329776447023632713650194545759993603647816395236139368163363768024975686302870745646766389976335681121951209810968399185440611030535602205599281883567957266251046983180484488907350331716151514493355252569017229176051749545844749201191449123444330458502235386167974397562943679057668726689138968056167607600971424001020050614503329869715599778343528396852082052317503997984834206071563300696805511015752273682306645465999196558832987095253111232729565502583480560008576375451048519669200779303783725278161662531077171711645500840105455644326849576154107933910144922248267039668859773782227268856563760767919078034906583428270465420703682895260082823126573537380339831768553654407707398822060513937358519380372550952678417253618915179926362467401197736965375315742535593686788049296730283497999992533345297701206626098677192373020209859188346579540770030988047059432730142379459517035848061785689253268820413354658614086028820831986069987803389453614650756394649545012005849081989135620142235800383269713579907091120598799311757195101830528624020952092290635552203416162948950742921006824006274524940139779769538503396970472028179018109171207313393692026556185380637677101216285150973853561222794077976455796414093652742984073894555469452594707067546055831150425822602155499931399140030288810675283212353664258768775418476149624651869172583977690648031782524089940803412187944820654795648886266381472786310729568504992840599697865843335092964567627746601542013398592734180291264414095171783497587670566996659787004042887624837488797168449214221002355386851694724651135621984026427267282229387507920948438279756900942109254962887399770635882076614988151219029185749907081454923938759717199261660715926668780670543419000703111057894985816469709207247131014413082032253611082703282568762857137739212669408849131115622489901023137834140469422441078962433530944425056719670000022646785152429547033338007176460578475025415571019506139189886888039133320629752254972080769094302498634597084723515531820699651062159650667491521241904680223511247988470998616373315210416109730226304884713369377856902454719735306957102706239372032252122294076488829714973570906414579500280730847056413475714933247166772519874237110854960609241857764302970893255781072813635808521397480667523780947858021627899710904347766220858028874561621933055590105128902214283714425740512527515801700078660579388921013452850084823237532744673560942577155403728106010151799118810313862357182549419506148363264636657186927387685327961122938802221482875618831628896910056907791581985139828182860433779634887400807633630383607467685545963562673816350535712442297035054955853753295845782173645400362776607805309557565286779888207870243975488201979444069027409701140464952265411107809818415367016835694138898859257807744215105937316709236687225410724732131879472302239422862535095802159170383075976253187704286277211157710881107880601460313248088762470202475614155112564631345970865387350071970746647213379637060184056384805784686701526596387357614083894219678927688650581065676991668580360105672621326459922027093248446097191582130694675144707801407570239977257273779997574125116742042959399253331817762260280448302452736409128400833705308854359143156615599509012422102305795135895022727475786940036786749123881426471304771344966895727134004756359755981210237256351450426688612693693645964733794136138634429087264326995323056487277055225229910965607006596718830521385198112245005463190531616652196813411093888768512197415185420480235681780273211841432035036379282796263607359263966060433389726813715099471354383079558015113157847170801099165313753966580624856691043068364767658421100608050073698461848211177665195618843261903072236777005320880267936699403490485288337680384137061709010403744572066144407969232747963167727050808618045791021336557345095663054594039088817896649240615722809447426245963053809077605376061087247448567327945057716985436000694164166057570883083310747470153948705391097554697613013578837094527758551959188235915394554390839675406235707109876945089349768615446875148884270803230748898872354793181335150938884432012989060672099001824637506594079093677012665747591434173311738801625954792409644012496135300216843959723811005728974220601215739394289114067950176868632291407975144904415860722250952340344876872177743848439806622630826441445378718953094450083175540302183437733506115363861848821511968996816974114073974974953636183608305004819806275866407314014688898432060824178363240395609134115577413176505045821335593742394627392396639043780802061561294599903986148078457416086738000583094872400663420855610824678794315742339966761013015152811255307664022766462551970907983547326556440216225299247060627437292150969389725038828039046414251546733043213288522890742636936152477406932469998503009570487423431162714716872811071083388292211474978009974051945015179205292795873185780792346662495709271356744797988838157133619265547960775363860988862573754449300195312566341266057588514622037382837275172692544737552259035193780934399522018055451535286934592262539497404051920039409408334826494966703709675103033241077500976361919177384198320496983030077279189007048910219931300903537256353136146493991322194945406526142509383832426205602472341157111707409901375193370479881053571233008494558295720636382557309550927134420709094858599382057701751387264694445917144307223213222218389968107100986461959233056560460127734888476385301688188536762728652882056997223001808700353339545297649338636461798571296853221424527652137731126311902932364445039526055009642481949908811680186090876212567877940563208906120583024235336033670345774384698477625522874213092950726281404546008846211859590228950820813854913046808119080474890069367744068052183937378220129834713041282963825311966738500377187910997853876836497868520399616425723645782820354924711356840206914260226518402392864610492766698506254640139242125210361914677597527868999016470734821746982002663541728578716569100259686273862293994552060795048015899491385372147003117047063223418482341385678355041569438699053847378276941826797880247735575160987311066355579840589181411855544182960823760090421068925152419150388327974208811309064293890975828128138703860067934327982671006106205137003084031733965447475533006205258694216950424646317838763755282579528134194137603624742072171258439546597675483238045583491135337069660704088491728111256117265594473705787311321688961716780807978557409269966440859175802348982053839687396971236076742755086051845721888631987905793859855676356685918245991378730838900404787704742955682821407481754326351719254304221376531268341420919560934294054537028249693086848004700400110266813721510125816233807328139748068848016930434839966909922322288278247825654498258204694000747746551596831784080664486152470896716947280684672747864017622235927320257390318257332986871925018589328367845788286237446830521458152015350802871225548456884669819452798912453726986006073962912036752152795120588497076713050630048674364199233848493114020714435252486141847340093842653700524518966134037042409460830174640215460311659602545139326231061205590539645639227553048824856249669723913484319225676074290629238472531674793570374018043003964383391816646513406588528867294605070818812670469215803197666867661086696456674769890664320284507206560358546047477130919129262333524198921048649664053417309246353505641444098965901065722847635568999221526961129471124444692596030660364156885652155485000439461266113513360022410418786736734563227803816941431700650875076390481627531707110361701765766835160399696183992531669864097610212964273645335977532958880399374951205338374889410541771101494740057761725476271532011470196950999144052767518393933677880797198784911703184444656991117687684694852189096494464493470268525758371532412692519581283217606241084214398286948677874824786404034847629412713159043805094160728735906139628936727625870525215532899239329574586408841188966985252813405693136754897882523903749067918145102840885653442517870442954807739781362566746997048016217552444572409092033413846100976772788882562437247236278371642287338333547377811467078277756312004486238992720817787216316592512130979056511340699491879486286840842787086935317171952272155273657831869275214616053364309818805384607816989653706331861408162344994351818187680576623924055681909346555789681594007973521112652980173207487765534823822120374778276915519138437526722620474750432586451842618345987575397836384897690233593178280054379715249688884421793012358522420217621768489896086669306608980450919433102401091670922581971226975599756768243020781057170940371380254951501903897898312623886613423950668137664546130667578149717848131618768128588857146201101901458671177384514177736454934240094149306066331926889513147096909116562944199841829678511181807010428424650527937937399090149862021203843104405449347338657317102032219597695650737741616434924695615132657191949903505830898163643727537900763505099643359081524187853379299076943926963846073348325770745230504866279217159432101753689937612767831606390058577619885603779040747865967763851791236293782395686786200308606540062997934728480891355995054378048846702285522854133715912373440567209457064700197126066619102840492911404885130419504918130350624365472665886505418885517982587308478667040654628673888444736657620857509471176418425301997602999421462416688779943425061541338411061014818818366323032134703848353663150478268965237975759258236857742868902102869548512463821986729883361007717840919073689684683956435387880883165358956623933197301067741120463732124619113224952202900900208266831125240432463460931722756780353411364701610111126864044268521130297913232245253872439603548455378874228188093144007992355756480478027625526673036891100365230546584825740848605903005450124260326253009960184900680294440591480908892833957352294017738707469974079889982092409023247636439880025286802659396370436585768774953503093012346261673014866896343740241583237656005762062691447343418479527010672806188896938275593704391855539243082833182388356385503447077405425577279607343729703607881917388150020626343368397324459212813261756793666243554368764012694636436586174473872376584193682889860151434335708670018122623132977458996346831132257909761550235463616884712027688440076086379342631239610570890240931254676912892092908819986030547430632315483320526169830811882802200568198082832837125445777213230629902311241540726371697290805037170973778480636202636710969699794899106103596585107681159783532174347814089391895697239648485093504972384748082786123100638720222044057115801064508758386580315025279889179080055701548855510209228577802948056442382794858619787047497525475065697055374629988983377096657823006349737109678546421841549915795175169706072718636243305655692395995948680998484180369505766176447168960807226765976191371904858997914619301955647456252795901445110616676388678873558878713101925840034154282547649147864792150698864709358918600464067696808647760261451533592642811701308865890005969308935447217382954733116312678020369686379106971768497857870130437773814844007931038251223691605072637168833804678504061254950723017873895217569408887425715960478278479140783636254708696383394626218935954583295848272191513370287861319886214551859593680403638772034661468204148993866341761056770158139515920179662651456805525332411977163007050089819744232442167218443953644640503006597191589923304541184902761040040314222907697092153910985518435421009087417536663329013798744133563178361232770249910022176639934070189279631802123915935020569430026658295408116628318434071384455219229463733416821655224506111779872737732634889239156688900355165555437724829656307653966896866824309331242229304127559263824352415655821676857366147735861361565996775628541817695486880864981787925416610386996776843288839343472840154309718704102138909896148708078373508561621489713918997916550849492568001749578998373079062152631042839516201844697422440491326709344086451699750567513885996378300609886535046892477425621968163638035958943216532845215693977284703035572180671442272988975540688727863941709915909116879442424256063387141746257512314905079234398509220717837139142807981492232108382628258921704141050626567180023291374349694183393206650845969591204223276446313184141297217935950224695489899892854989024223935691510043891082157033137566066270560596940058623227669971056801032300482680881565658271123964267932824187132329351171589754871265935329728623420508638722198949234970670491931130240944106815360368464338099299804991777050558127187209272776706646048814684371580403194474848817652090596476902726536229299761772460478602903846401030666865551728082609127892428111432089340233062166982529833415890106858973187432878333833690596529766838580261524095939211938625684366614159485279358630682128847424109658032618703183798079837102508489968420571405618777158425146575784337179825954742481052239538948301173534099596520689959012353847860556727354449701451773494328020381315555456286493649267674991940151855077406777387414363687687913425016291085682280661411670501824082313563215061426756586940879629143375378454562854726903816994045972236705389538663317725520881690428623256276011723909519795895861078471334166807501937550576114680570660631482360190116798400360279438229690373846790447734740481340941286708001478829328408260924338199716204845695927795521079848150608135717586897040374004834724049403619117074024821759456998290169447958841672321113278344461565879689597835549212967826022005463851062694190570388505296724691121841555374302506625644683222022409893182655092808700754383145987631026442426919636474357078545091350138290580787707087620453399954164564935379950840767262368158821837354659692121771543056728961255501282240089742850826922886154142442048966556349197364246796279555461843775869966196451285676657589791840827460122622302211733658977017379778648374851176410365333821106116151363677432985781353238641636718715538035037418837521650299049605286411935994591314701412411376436691521977550326820553170865487623693226890824419457723819671254474031412071397902789161491453981058752238121517099364405776510207840142186392647855116243632327015764463796863034471208476733515743089279210854033195516750679457728487172364136285035456788870592616461314407689993398463879073674582255626330845133866503316741943059182280166232196331262034134186280945186953457854349652382025085215980016990318150421883453404102469411842651389969227153357491531314181983299910579524946920112611839016345383074600533688455526620968092972305545429342078689801472097653663768823542641893095787641321051678450686924019118735582860874849594642757498381480650309955379048387582523694556347744881196212990736876205356702916404875421313997388380659528007935825877652667800934064011527370540622117695029327394892909325320420308004331368920374392812537610262168836998396531897663421684958201370090742170678403015160264228537202806897981907361769801735493697048275874593190451862983241287006459001046951385678645325418925239637785023865250452275513489977628453964161533842761731775400144496748827493976242984355701321803525825672104520869518615342677048712373888355961392541030461030781946143213030032496406692090177109509275230888548403310397484547866888429737154418265680291207011571050060221191424956417162762130173640451376656875809810518718717704126172355963541047801346689181089490757364552063832412742636542335956797917199932351374721206960720122082560143441642910395448320565639892943202397383524595781124912288391385145061204583353041939593399286440972942150392955276522875648492058059788721634784009688159737966096416002911520145693871415498733338600116005899484562093463295478675279807369450886900332207225706499670984438580095413494632031389243615897391343952645178366105455931126135981807777894896492779451860490280987034188252349757601642343116692484978697808303941564935817506743812857828012263584433054208959030900868419827952190986823429238751451118125447028556594575678028961446014829685666647269390314621137301406091788619594378005652955034468113420090557286793113781002605219175533037813964746600579791240868210932217872829386691470246305667726009770339118393048585236253381991299208018634993984278746313631453422714029911632419797686936368546602469888347744913199918814863166783909490724884092929345396706224535587055575577094170295456275097936952047891553112373633892351723965529848816285419276483566383795283311743182829791010534282926253875857836200359882682218813953351356687798495467788100744626818546543059070465999612235184648543665673640089757437124071878193028242928761714682690872119641329627395218881794759156340698357996275456497789936859116765682469191425244583261861464891393337504224212704323775640857545153720417263447372253064833923926396152751712162195307525579292840484327365093198120308642488234354166674038609223087204164576759606236725591686627952684239435431272548844323130674968690219441131549602230745236948321619044996770392280818106453089073138379681079869397373687878833412821223102160126105831165555611542078924708637463326000253495353895766126001373055350199843020146836738265587132129318150775090446217054737735169250337638055786655533147235236028211747869777168229756450123654909609387707852181085427374712605647537075627885975857422966151098273947425021650394164558169147318770716603740846773471776796732032731633200063970258017403164910537511184171249728431790882777250351628505794147701116750033375147054375201829005660889104925630433915154116427320685335729643228017045679689778656268067792829054035258835179846746104797677495607403969429691298174132629912409256163310707081567025885812752678845575103409160731591916049941840518096577672170101747116284203023938685698069971401302255147736671152367440109597145663431461651216485977945677915186651172763853850334800131385556762895742757274690905571755009170483398798982631980281600366583623880767359799331428482545737575600593297903160337443507909380287771353505953192167366498222902115433968830007064327165106397425606967242829718363606169426138332384297525229629686370257939785294858847976447696753420754706122975087292626027396875576846328307224878031325725401487095831044885842394957111651479479566700886928520401896572835099339681847087295481460290906721906783552560204789402642680361224289987439286274464866139286253739324396386184775889489676816268485704357451079035880127732474787849539440124555934823961210549087651947634817810747734166598186459183723925635690436117630133064275506688915511155820029304622971098849670882364598352453281653271860315021626625490017685009142749003372427988672643560654920376524829568124833082274517671503456877453248909520461642674690333389414356250234252593481240432890785640621239244326804506470092625063179765913901913924934556182444758310320061398431138470171841987850035401387226984427578355080964385925511169883606641063051175960689332411312552464846625766540275441700531304819846651915014533872176140018783242493991896688694599875840496290078484776503494401816170303584221131287260425345813824232711905612563066839740623528700437514216953799930312891232167755457773020827084677389381846726893113835925819909361414589797607541931569724405915817403462700531401425593334490090187316684923184028540552765951275212440657499460479218797374638215520071034821904452120536914819787023329372023462182200481343776443053229329870676487536886394045032872750524884363667402645284541840282261470255865891489706887122715173036655853076963547391470271619962871844222184941861218020274724936266514068964110869840987464707922058619896548941449588585126014766141797733236170938671024475633126382918317682930618769567252507404873827746203698554165728622585648193769810334234035367729018207926636982818123974608079165345082495164493097077706681087953639851613692560876759670130259071551388301280146749255168043163595629719162193851839609428893898506990268162949024083462724854921407736536399318215597246378523303366446480327627002216774965499020627328001389525067328064475792037303357612543916273536766157994345247625413218590650151140979302756684283105758593102847130001625874921112099218013191331498758394566822790134932304128614149733951072289203886750692619706795955730906862294525511698823713696216290878364764545890288964722801300502976446264825926876385260869001010843294580243610764529634199846167443150186655778266583762564373752720180378815513143696541601039687723350172090790876977584892220021047226551885127834641412806342603559518770830617774944472921540439026105336291323291280209674996931767769537536945604557342495689603089251551460818772703751670587035862477594438275323813945556494972939059538127440468736243969315273593424795697364901019810980673627769855118356120408649034738094305134129248405485867600210824386958610698809997761179827142667856217753792865287581070009514600334765994444319916917941363814467677653873339960644050316580343256263191432663020991978619118579493187308500523354392481896784878355781397362865693243407205985704760405322941806003921726732884097076485317168718175580793854842636479101328875291683373197279059467534286737104318857613762814729112645655889432281272239131401774373895594682841893077530329614912664740246764423958194716495368637618813512905779860562481333289797594573418411728488722924505496806746027894468792066238427729515936416695554454348845674559911888174311271932759761341178196534253986361241677061567993527710527800898978348212706083478001374970887874930172750684723157328515068654800552960335587840021890085004626937160770539574334909463631752542494555201252346807015286148672292763116191630708618900583093187949925996372499064475258695377294588468749693568858512814030283851390042117350809162862238347365386488820422026688688591755383384338825987547136875811456751151725563301426982991607292691675167936995721450517984236970029890915561589386551826893165240014476141753141602056788855559553950937218845450918973387083285029231930410517073302320441225898744059883750804890879450634609639707113400153632669149036027560957906650472212998031532953826399150615845009507259296639424501282559072473331198278782954413526151570237426896204386671982356578703141985789310431337550594638930212637438311113505461597262234822361282903479783379369318377529453986354949613520725221035526675214386910254541714561591993912309842690150436174182585088244016112912983471596210336189664630069402745178299183594156619119822712250926437162213467815223196867971778508739778764205407348520676539331478375608649269828609350495639117854122001085348240194373425865311606816600416323676057556479064602698141249903306915780027457129287619989189276764582672664572091820679421730613877511210315055105020127325636098375687517637279353491127116559538092286071859420945357916209984337462022675427869844250336624234095517837197919467461616097220855783991568885405749322755684282136046022358802953270261035194178286782493754060385036116385646975553151601562971075297754925916910703511979808569533589918567069592011715111337717888933007962141469816031073385626375151514766597729754529779985318229943450731464078626403248349990619968134570185459680724102997971261782200172346929434401878618179807997777833825059657585935738526801271891338532625900380209862338478183134458191104817566809877984255013069502616412862303707946455909263779680468172784727388025170087136068908363334045057861576529920215012352803839430405537802561382360931997601544943025347858943887512910509067359635631064616293133997996332484803424171206060266147430961985689409814927213752076650043206959795461865907238573613142494400827099680693644216009568340901508684742002470698757676328677141075587834025968709128337564938061448213969683637877639599283816034046511176686878167184000824696149009984073931753161609790499210972026422850022308260169487251017226509377569397395413431237133215789079257609786062010557415365954432796657158537265978694122678980047992763728964887345138076362783098182290514608961190396565516499852735163916626549823469117283390462914093866297300964802768664576305389640714975101238447003948891163751295208623766495094425873101103255841252923421013092714698505352354668439900885852506337199971643577609360662862522899333385224159097301141444677876807742341330206957800597035023783886556207123262817558915701092242881358388988315526131863287610408659267759915635008632082813835117346978571456183016173232740977209884989152026582496790604505093713235970844971785347474556079193897285369794463580062256869510693661465210015420992462119198669966025813810639514943687118507544763548452941815423328260775104169620081816963459865678231528600985312875094173890179376262158665161493277329691668202911705049571069955174338441619310073283355519232193027953554082583529529390516524761192939350201399037996734513076693892159760452706194388566323433547653192117074570058571600737166624480316600304618545032948682513779431413371802509600973369404101709994988008598646584317271930407569374555883312499618101627441611468831474795751995447360772488948235936603050966088597144893597403129701037724133494881172707456981560539618274336237387938966420950947946229585165004481437810249778673161745752848608512630457659800060607174292105912140643192495214162216270105761237673974977756898732764930698052328159968676736766350687778732323424747884521467173926916386356244781299767243824951889590642159467382580366433955271412962765515653306987390001090959428711256787161073673148947408460566752163510555511041587533091358889598532928238905364131514995625759532809560433152760957287381966097089350106321123950150426221825835161577327604039500043361101405251989430735584879565547979264286087012859661064026409515369736213917529083456387319580842801895327931123156352158756910477476281666789927061558771503102348094980606592760642010347179689901825460526056870182052493585414405720839106495588918036400354774719829493803691549868429515591872308517263223738570633739169013605980437100689362721450556802370635197645597494518263639320834230556327899100311966761869297188951360232447897404544502819199957127135233227526349412729605727571659573291555535809200425780007447404670457675970499969632758116232733074051615853297744207435902662216145426892584723723796995263483265000628004708883080364771600738187575614578271857327616645449052318142368762718918449187218179018805308098974792557306491219543773102558250169801621135440135152694198434120437244228238823067080805166938789590130134021002391404823482156289362710514415347075317917914359722528611597259237398479776069558579900757176209128368219250486821882955532838635561818644009483847330673982916975229369089198212638687142559669452370138747023914956077876623194675916438468981610793317672747076390778916654944114689835049151639615801497308802082166597558858239157672591001052708045441817330726513812321250823101425312405313276906659404136165903370176401350779158157362991799714628814847635165253295823612421305657903644754309434753147136107675947702920290328718613109742251772517009734394165133208407551079117229005852640252417972212750769899848621174506394155763280939468549912543493727895027539551858579020463327469553824314508466547950249137553322120280425085856715879078645416219093333126310980563614863193904086548157120454904369778192521624609171799810678808029328516488644617461331621779757784504613113784023097016159884368912199144605143758157082390469682074162983236624662010352890977876841353592347257570530534533355247995382990163475797529868295413992470770438203267641830092977560634650608368481561904183018338083326304809900942806407801501195124063815577057526395576548256327984225502198967114368593900165226719494423119581760084414973866915672938072835219574647394122873139537689285623369352475794218994246333067557172126109925765140069954006462310281887713625404576203632437182568989505558392311705738893416823155890007272795018470870964396348017695827864424003310312903470875389786611993468864486004069362761105102771934908082216735487030836622441833466006134076530273381270454857531319117412066925261699826746857327987926948282087775318450754661212088722725074732890508515396138227403834341005108677059035155260296029235153348912672427168999861544249676027569894617475640783313556659316436333802136155388909834967974332533070112655796859009076009070882076999771212405762490834271130157252097137330802012675302150915974879752205822346169325580533434969009389632296729804218406990513445769180414710779488299335463005597974355624116013925795038998493752831819222808639976646677031603969630270490925815593682086453588443392121387546240864979939036722262517008536303412260735024548244461710721988252400401837075345706826995356862210632733313645810775883294837272336491408092520231679668761805048906672098649993277653780437985742153557869114179046416963888658964481830133481423502833963370147889415177117265083664579061766052094507815707656826334782637355500974236690975992814967667845104005338638138336271200605035594645177923755838333970008836719228347885843116812423883375471341477089030354991052003094682924900203566302519319700651481646490013474475228966018540998909361337148365642552638486506756598143244397768351264315462534594172013224508694589051463710874325912705974100320987859026262794601052339872876813165111654030869912853308338376300592898139685586932994979161580271347892820724804944566992197922669916626761648907537878117868294304830751746154116721995245326392974046562580178616859240648134803641084097470214076832485192443055539543754428751527249998403453654288967531240362695687720790751913842578136948537392465064354965123449037163637668488665280478753742014809705620507146870559496441299011449271302719317854890248998618549918397296104897820960113430561830811367634542218559783738813495141635253152924254143076120967984487485683808505049202811303712950521652709376430082682370179435441823793614792672130300006078140477759849900988248060012951191065071295004912848366147659371411159510887526172040303265207051843142493304145598525135320750049531744620157085955278352873161649451342166206964102555550167308888510265249884232342680886064915237756641131265813133045524626960656852810359284701698756084261617201371763407574445977791183879200802880888598825829037572162101785559591139024661325477327278613618862978129041235594119543399080690426767687916724910345600158398819781150143398040897973763416128733083050665902314681352675440038781537091533511946274493588984967838875289362531195250990312879445350055715494902061270315371672103787482633295676978100664943059269584703494506748659434885412322052528832160200169435350758239256054101103285044268773259806473898888459147986493659151159673493349831478238565014309325496502624799579829169789870233870993485939907036568193892442378148235009573992541070942091766324722386870865090876770845302404329103962168892294298919845521059662396764942653031138398616582825178371008790553312628671507489625228626678678894143454139213452897069736597622554323959861253556092265844338775792221323263097612069938203811124534859238084619541763942685704075981966901485920262187354095585133733377873632924987316387495572586136131762332688706694879022711758802288236197909106106597486142149844851850803301801983840727399663700561866304954860344279405558414211946242277323827083048329753111497896036090796145181268945849275179388794178246348827369085707222764130814015768933619175800764798164829435147259960056838185083053577652211527736035706058518021760834026321609677216268231878494368344220792137901690087677079928308592340318920718319137819315939137682976103731860991657761744723462661367931108465981442164634876762358073459594659195699460875680572876971478293283239632921536740631010612488127153985598490996157438263426637764729668054990359985871590029592836339605505262719886607344840673344380845140838037197213400622442771798392357533003304595224747073451455227508613150562788902211847536995714960007728391876227971974394312859831459865301785467734599719162740239875104949910636961787818314996557079008498735627258249379924830160949512645602799551548348180677023103984773558417420568019180306819924309815643371003199466519385861125399534618162771839863908002547755973428234628804519980545704042437869955852231251938517322963389170435950198951048504781324750835996203378527172546411616386723021078253625914606768229042369252318020227395677493922687831650290901726474660699225163581403814507748727830673409610445018428348805567644539099902216045218015956333504701141897512169244157875315035966233929431248340946016226445905545146557585742656748343242480628975203161200285618824971852241138823365856676182826017775992081032580745957426839833976280016568721265152479284444496215304004483499361856421922884635275272975762336120879025975171819972050212154978143776291032465487529875540464446807054243830871319025747821313388769846289012734630040254203652634378177306046003931514193098101321977190076091035173012115367993839239326667174868749947291728672328412366187685242369235600532161779492481206932410794573240356490181337132928810793735916769690222813618365146870983877764204272894396394098132182569508978907890177573008679345864721162804313913833565564335651387159997629452694598831808006551774133202101234834956708997401390001568660532901358580253149359166380006734704621774116759311785321580407823355511396162402257586303050998808602804650720318373498940581127591949937187865706587291021074300288898794700029789102492010149718691563609377040478708598119600625218845666690024485855662381438007886008867025039943219058485120883518935887527841669812781871890431608651362858184519096602517701640258075547566985192034145581638493252976510195924278366266250191451340887256357597002625596702050984216195802351393853622295333095595158748426888114825999815797746983468794332491786338718515545339704010654333065499101960077183543172670806112276815978887453887588912027647254733720197806737227869760966540765846947537418771884820093577771614705301124950046359505574467787754002402451465403892024630859457379384816671664247609403987347965924327015667598565915510359049188183525555141301915330486102990313723596410533164131926816852239920397288048469355570185484295392386221600727106988638770190620272300491871917807529914149118112890032701992669734315040983224814073017081163637663668426161458867612350602679766243780480365691296334459183747977480472616542023366560883518749593061339993332288554751317105698085465877911050758599139656514546789851772760566592341784991034040330944159027709442467166367891636913452879795543646549799195098668015377330326012565128985325469301326512581559656537640432159539323240218959784577367311433012209573836862946422991729493103602496086765213921562163412283082304843407134314193985943248972023371636852736666280921548431056282022440866353013008510700163228745262028129525882267802027853234340064874466819442088933307525616584686486477411190801664309604888581137706124762824128741289213847434283433528913526100630493808241645343209257974189116450668431658473736264871010340435612570227770594887116681121809167308734128182993900384447728765936885562509938872716494012846367431323801172263176697313738208284031318346557068074204897143433932855516204122528494654309268403624317429972426751485916629119528110461315666473542466718486372714554681132740890684366068315491104709912875221209477872391682870134694808364805546569191105348024422112047086342041401372604103142670827500007724813817985603259799280680123953495086424096327214210914960023219237236311356337063679168942989791680230203505060713343069032176754153270225128911989757794835383312067313119435352131973728501943715130084915180206520768359217554770874350017753475826782156188806812334689876891351914707021815394781122638872250767271743233955467236887050663864663820394004930677281208790646573930414646983137702830810237745993623072375852040490278684996745102514043039349425312705424040167285062300489081113811691506081302102348798405306019528319950400039079893285581851653209338868676715121593344399645056574127575537133080377501668446158358255777055858869453312139908058014393108628106509790979714950541885027363441740639914600226315565965813547189188017118908444718538281363825999314773913677222308793046510804112807438239334703812074491165588223880214969061774553403755998712329007049296206305161387041546644734022856713489710343011578448677936777174963315416849245661473777705634838146706701396231167344339025754142632909013522369484886002363390388665204681420588415077996209213633544896799031860329633403519270903599490858358950763715097684962287996566831944941238031539184000690309604779186842341218266142621024514541770160554462314453308744529702040229433623720324213458092372208261130575149193919799356801255370847104361610386886699215585592974756758343390099410087181415286657940686517163166063237685489806066070205678460123681854974333969545719541965932251788569827384991843442631893575637693813163203253705425585899893294016213452506988014437582730003592998165160855072409192784464538940383784742365133704465709264222261241531622947894194774897245287047185465744484148265006578857764352611457595255468502014462377564747215577507216024341598937959008371410037667833555533372515229708755068536951922577361046073455937488605768960406595526871876577271701932928316893203233967240656245128016584784666748339481871728683694112386939493221842914036884031215050860500940919633188123681896924817100259173467713463761153077072300418214664785315764574371550070202180376668074585771125743521085680001433903461150328539078173914396325345898435936519761062897648277459359012996148101488251930944265205386864451326714071052931034993804841232715530449575042003843192757612494611794307311439839399457993986655148781884631201084141888686556449649446513831233756433959434876623421785131732207673393623867738012502095079435868222107005549313015994161906720811471217087525520576064858120387427947887442001126919888825288699399393523988578300849635845457191584899456776336587516426346971307270085343107995494410558623282376769956094867108940057984518008248159880921974852599050794243645934337593920223035368942615568052411588298935894277488821573816670213196614637806878084656579222226372834400191568362226969370941752850929842692517448601360212662478160239724099654082526655655976678668788356019909459174559392318620073395391684383574911895332344941573351929939486255879075740101809931307907008303965507854973014440859297341583399125052218350674571619193062650813902236648616389970724894278755720746334020329931241296091753354297772239780100171746787161918193988501799601271915930002439210459030734105768914414511779294866617782065681707944712894570234217110112657645090766051586432297158345714493525834970939267763119431113006643525397613202356061773893309237003207722863193805138153281125227918495312999432950621727854755121905535563337351773308453431509866925997260291518039551390164333808245440891878434071393300511211210345143614895080353832728315730462094857546051427171868949989194731472421112818480310341687185418733249538525925210823163730837586625244528467140021915820757474389673290690818353045206508063141243541535082878815038730412637889718702467997308668205260635402100964616015419242354473650609157705851579628980870405059243417045921213212813716843714977037513382303442383766797962559435873118527904136091350625323636818780086018677113517211099143730267640474083329928287524291216545534109575962263028861035086620257319292873384751151485632934813701389967174186287099098700274819885394289843740039293087871076943587642510561967618254948531340209439541280088705962128003652825463030761940911080578396588978098286897753588877707524869345968120514263792154621927294945005541292214488247039551858455231501421137153896552249365177677973323279308401147326230138716503447780325633464386421905360404594196903069161801047390612248993871500205179561746707777241852048783537825598609207438993003032412206400294086022999696461535298248842200743390148553317845145595348774119256640409026218822679833612906000967025150056155935430200012213828698675652084252544930486484875991604903333682526184463069410618074790840122743784710292062402370947478638740655254364093786248354101036520930355441265973774694620868485224586284667710783617361824979635980787480508449205750899016374067578876095107664773806195142342528409748509717213681125655895359453370984763583270666912195617286252045904923072516813581875561240659902236066483969266378318194016069763293430602138734691479293455611821860821984758038135166508584996413081922497640035454588516658829992700078033708099151075583771116636982627685832525610628891961888858328048213362899121655140559327083388147345174486757749013469090553446211563544767354829307300653060589540499529554865798055418036281488679412319729123640582976772241150159819761350736541977224589362610169949297723186741549382460793369321947537316831717245655869738654827034967644677082046009671589796564026978112998536919786596514017901162427343125421975344559666559671176407940231001643313953171288510616855616699911135163465932569397101197843873681658785417070080002786504445374512592422523026863029395214190228249918344147867820179722371187840763617564042715075090687195092627606849388828790267112126051281310530617620160652173027255857231989538004762341774002162775984192647210940444399957843065055166369630911996350060710493762040590317494983642119536664195143389465769212356455524035489691011959679061996110493030777945920398904514790253078377249398901089968404487988968423736024689119858212714886286694874777753121995000238184677826368900384408120599604736651089132077751651874712233096337429083996021096991833380200466857623818659185753174451988217410406799250195201159205346953839900785264922605068597144734399843203964035284574692681116533630212477284300114556556248222867255314136910149755898865308235856768650911516126610147589257577358680381579693921020539288692428282416308060806418951296998781232112660212802699517813780641515498847551586130454728892213389547201128100606715954578814345040477021694043380688226006703157330743377696686968347686973678545871948689114686826951129239639668066512355177956454705931901791053423784535317705030894005053687895743557477156410280917633101805047520091624771835355999283545902617018200670730018392353059629396548605269787003736956187203643176806319997257874650441455877218326476847948175439733601840979353188572916752536433493085715544611172402734357612051835098142380702617696449410112999634497806811171656553955697564843813284461434668715074529284672552779871391360582637319164122763983841771421507485869635823702238001724506433079334551956329689745044428251723214595762332397331660727801363551219995015380602793393009557202257259779817769026799409912704711438950985583714277787415586502252460666564036212307347875597671531778111790090238127344195598762918455918139622525837926249643183328750086528115808383280354766797423534148517072427870919029730904511830373651625516714660062942700076691144448488255972183357560674801070238093393910973668376011191275480439994013046670752473403720727406534800030196081786705972482806291144325878033335050923428980193273088694328282008685577083805618516690624738669466995044395152861756291292752615162369807586548260417898806157145104657362260818765036515160263425078377411774235670517893240029884128309665974088273759880131585565875353366068864740624312784339829025756874006371213140685381046289144896916756629700966307145675441868949296822383316977789234802459341141091644219010826655570920529741928747835027467264773242683863077642139236454049399868338207853599814612030838849319581924763735015368048820828958253053220643309446064534964303952539488483497227933247710005535286664370138215191323664175715257951777985107008672898103678400244318800946275400503678786136915188466232678109500566514103923664340806497143335372240474913008050971518907056010246416133497983839829177716269440442741267977817795783785525339561695258613481191481770616148715909562545916746302408738237867517236422371216439637815456442235828928575583336683734640651004242931366717461740256270920898064706685963971162336915028893017636001172721333531340510976922614126662758603608413201082595716721845820884104214074209385138425194227109034669741221637584297017413409864552637098298415390565802751811876493170502394171003021842039786161552847950926487159561473580846282898631168312607345656983242210605812079567935220943408177353135383944229243708665753521656738469235539005916075288597445816184162767470801773054621115404531784949154046967327190264067068235522429577968716399890782030554392386549634511325586680610102349942889917176450816815989472644757310846008133590511964769749879292924176574149903972105598148205799500552466133588222731893808209078707395323046572773377990948113095398011932582301800416993827509483578411527664301674978593997832825775552296400769743411982716515694262105691459880177515135555289577140885560663675968752831441837361384349557272920276123936918766538857410278138165803518262064675356346540435943988065532788437356440457568487108222358414583289549303316034267030323123827729037534222384492534662495703315280649121676587563033412682360617508938980102027251960390705463260614936679396906827542090823631070202759455746014186796571218675016341238011369688556895058323892371049782565614528454918597737762769333216885642036239629335023792142289362560746929398050650224579962532737680442522575794210262397065140105948592799961863593690823291676127639869671641529622628948342385998716799127715955473310109926451466386972188108242611660418120440098985737183106178264806785279832934085560156306558408708720740065083023249960074564040881771133497015732123945481327288538411017698804365504469643200607810831639374140300907765484914122838627775339227954385082089597034715554541396463557277162730241221891419165988863538115115850357634808861344032819979226464469591570430947806656793930365884246032290012593317947420386616209485384846661013254453537915578357788427509279974626612316940651395816197776199929018846783288534438070727535794850107558241358835536722495164926779476840124573002328737740457058331244012050525208465524777545955078455865660916721074652096244530057000029435460350717420431522266877633013140782805754946838366183973591146172417750533145900054712177336725864070595858100290337248849173497425868483597682918516741953969943904889122153293294412727126723915966377006942069233059778684465369571768722367133391924817392949023079068893530519224163443142076934098814417747250083525657468441818909001710332072692101417252435327630972968580803950207216965041469235528676283069127302483517061625593309626787426003107645638684004130749379896423619137299078373737447141029203194641493923231636634286424374873062826084946623169461528851432519162264908023720230555725062468870656517186479155060046700910243618659865893895413978072510891517009175742396799708175889230074066826446555222700357841325817181139581572726550458149407030230891999897623307950016409847860665137990018950044069457121461785848448809386173978873305066881529631734175452640370273131181163908700303060667214205510757633061315174361151397364174258273031557173011038581674884183468069278079465269417171641914172661971810198274216603804592432498351227868896989528067303153255135639256549627180311328089771261127414279045514798909433151984889371578419727762545693232473141923579732936508059028098100938821661310125948081569080896775157757308823617405843098100576005252523011786053001659435183279925735519183660496044106540830006560583066749706722466925313684135081292015242568796975090039655664107972930869593342789861456447605436371175129168210632109301302813457934705088821354094101108812624184747592690159430108729323031250824892104462036379013273366650121783799833964788165314697098589697491629707987652689162754539562813652800780049903813903546580911611890206444813096878455580889845610123652662689396465890110813676579689587913147000030357004518767425846704471204036146824939908669946128978875151645008106153186743146534002632740109165625307462526258614643044533795360126933612952449100760035070553019879521448098784512928697945188569537398994503138938399676930769542718412663908030880508418384723710132604703178026563070300896090318437963780007920338567808552288223552457751291783069403174985955585639084045470624227470748947001237769407430706350313186701182805320355317033821835851373913605293776704469919983344028124043000853482168384191066960519290992274040534867114526909244810684756329249913873638195958713590918629010321708830952178635709253257163397784686366342879964818420987221002609485434205947768362995627536343841767795153967294735435858171791982235728404526699186741452464416864680126866725189525210605769765052515020072048889547709120261577535401314768562360898863034935916541917802211285600045854256066820371756662188531591042644574603672933059430699073825064524816517895220448745815470898260458491245383735787320141543439316664440929015097914744993942845611355321540767055366627766445055005547728030929399715149919124487129352904044343172654392078712534769484410325247223567408063465145705851575984455540571723955635072838398737276544153592627123286889495398463615161719487816347172120638480001977174636950803667891890919339943818506845692069946575699902480646835196549158668196942578279126837373816359598093000686725175574608761421465281986313489636937073961717301009277719510167410110168024414302628351310521751326700976786494599199092136598026352209351117344104791548762286558584572775641151884669192629836331030898716149942699724959827090458147940344579745411221745346210615320774643020520715965032127452859449433057664196341585150777334963834311689374055150788144596000865422179699428319714666255457019386030547505240490592381394509387457721626222758140100169450011499394521319708131964580753241284368701297037073373595583473639317723745716614267549761285858646222277478430727221132720348579494960397106271135320160928066721114900057236000387923035934540031695765009032634808117953357110920199649384231861135689015382294040534309189684446057087764871435709162270802576301557161474392097786264294198943012382248688349948564334097416126272547233939237991099479221932826164968844890095797570049587929667623692764959911788028472058032036421648370036234926122620092795502834734491351273465893224957586448212547997452774917869157693419211131464368755774352547095296511609657760348305221155862331150132570961753585824585110642248627768565410323886535226979837780080150291764139315286574573385209725468828992468433370672353584500207833058545753909479792842170869927273450320489966105416795607345775216128116282205800190052096759600972798636942817622829786133043590869237196616503354858416898022814319049176208324125411468019556719274190836845639540598985782908690332879324495470177077524393986828507787486697450006284332050248299128780575038738086495548005947084955146156579446069933757877903354810866139373916279199295678616904259959633399380728757795960412487947613284782631009694661771854280408328808001108435028016147095655869337913539513289658244030442397029012931931756846952731341237837543334697650430113631909881958623576761755979735455538522372750619312028494890989820871016358946723155085764227100757785880741370594108679281983757619879772887836477811741680437209014382369270882622080091009882108137149883978892166229963164236675680953567555199483096092282184871330071269181556691708462039744381602997664078042543621137058868663827803896318965547909339489959949922273029885318689603986801406318294453704586562800981457522925941738789321201153278544296506980875550369171777492042907204361239739430330340193249195524642141053780754972412877263892998022937093973280254427309459309964826781413792173923695120846502943423802104296245877233030837530232304359967295911009013443955716181776146642443755458507685705416345967868871308102520861367900383424053288142606168230513735602375560606821165983027048649238888160462385795442554273990024700789632196364201636058622275858357052238592418722001792231042136816669470422964577922520671896336418758856394523009286425479155133148568135969066757328359912620640040543904303704874012463966858868683086145975071213535775584375088047536399211416598688223563273812436732267075530557087551331722458162437430189696739043159585841602070685537374404665584365283179850254256445532395571581442207344677623929977514467565441581300240867007992037728812764619567418570001984474318628467927891119514410331952082186614554287008140203083404382845629972154299788289139609428175464053290580195885945948325168350722092803609472562196023675541701162209079821723735540192051539013466385908589266752321576670374177929718231609941792142029784533029939495724857841425602544054731853265599210808343174810279740553621364985340489479068452750935090509289057617809213185719059840783129543395141683286514824877384085912630564345033148905550403188202649943706241443115908614911821891236063252230250538984250925358740284378851225557804057371960368799434110696247704219949039572489096946865813760421001899602749970349083658221496572447129260973225128406445188879467710355131921980898288123233332445737356540365435666532658517433440910148668720745224490423730389844474404195058913910578955044561802910064695005620728207178116706127087950866021916206732704953059161864081411888503832254452468302113893790671372181885962144085497353814284808061458803965960046119216544462287998091420522810264206811537197791504237167468784893384990019868390005247003026571433037206657429086670530288400742753412589281646600158716681249289814981978115143188599811529145801824575726688254166803310185952363261697873723984535774186120328595770753182165282090738132390759479603722415305372320546924599090363859181593915277616502785115855627076813964252011989314958447223648795996202097936632196327126269439138218930032572676308779302851641647526381596974904528661499048117020658882836575174248233239959055051498658827122649942035297045396377159129665480470334776277218996354884063142626583284771484004917827602556903764046884879925901608683065738141659668910355610772781017882497944855498603657076808595626058198302683359113860462276448709914367267391938228937136392057385210295129631345184103907360236036415953229825344001431364317964784818413806536176177667114858926901210198704561563188604265568255585817327159958767740073239762037393602477538898824190736053131278681919654012769292296726884791939253062214193144559079356791898852491229116973752630391101471826915432638642043896775907663597784793749559476647228225935347314569294452534098587949122932941494226766603135822991503000542193541141975342406511841580068740811637166976438177720836409746549056565466685805286240279415221122256092496404678071452779690691115040388261387859929407289189093051006867685550882467281652478096895112234670651947728596366143982370142527726613401433208735234153295440346489551952820410559062046289006979170693199548341514067756415497314708036762223806343525706737119265471620691384156910346875365134678790447915727525017725233179617828098196984193161068168905918621287168941745775057283582383501850400723227678010019733246481574866950417880232743166024480433549079862880081867228521399637144268138448344217140339820673760982022534380201805682558675229672335073685916766532218248078429782258426507828141988471787184599018362229264969406594949519628211690402554341752936406762146769537142002801186202659753352208577299672029564764371231218136198574886418937016318274314707461423391279530042192373301513794521331242508543013354411248268388191429044820923037488262537560309136312411368260619021212023606161461753452690695157523885755403756015234094295216097373038138675411716653045559629224615180376462928684213491488733254020088279001941352263346634295378645774707295841439546970781679189160728897254520795783551961340100589988492639196821212861050774398877065780377191309882698207922109460252093128931760663597508258962083455283136173937245297646825274558882767814802784014836835978057931872489982788291510414951383591461798182589993242654972450631180148197209975344030606765487270111555064862109397892336017220793207405782222285883532835741561271960085394269307010369496604546098102552648320506622844568353204999205154197762153744326701382401827493195774744060802161424669220500008364220964760465333531726754750668257368314114028557594182804885566695096313769088432759960401713720942981715604427093664326331482640570614624391228259422187498728208232687306978693015601215799228007823941661428044963823955641630814421860002693793374222488234595725964187638797366312486381810677685043177259269471322309382431112545214902512662102341697782604724983414540597038700975630994807555191918059010329641002101264146384506100029901176850433145097788470948985981094548140291821343785741682430980904053008235302905761004234266726153661692241465378086809788290993127323487798737422476915179132473956712389210777328143394551328597013988909358528587190850037752666229366305506281129308269449694001804073820856569791497672616454741607204968147471570906873731641540602917512313645444324467611296478545848148997146859586805301145592052730127531697508048863383354754404054603235241073254116755270609770676630938809004667736015345802986211801091392399953918350684022481714252870736468663446981207859095458668953939565040883956259962937492528142662612397090161897627364036457982212781516008652058052439843405209214904585773547804265285535808714951081298295680715090705869349833973165862625700518565514189152393302638608538385261594200351172180058977448309774928475903065295487063018861732807809306822187708800628655883972159797104848696331882182084013732968001198218963916027547839693521623008328134642719241924204671476006055698040788192879421711247685215690290045400950639722075989376383569074573107789755306531042019759444645083134757123918987144449483488527266763013991964186005997755474038672876248589866703274179245685736356925727074207041408592205427602292014374942352927934315041499097799340749244219699039761761266033176222513426619776356313765889045271748197411014720820848022844041204185152662163167137378506159218049077157737568696629168342954802059827603381085633319243964113834464226898806026824531044055970424776251338466356926708788906536443648767385591429340911033225906160714724134007530503024420582668270895442953873390746632674058622099794948298458923341936834406135753990355557592709892072881196003401860382141795027712090169634288188693829975449250186893599763578956784328429773118236338921863907315579958757437726490638880400126155607404131887393719638235994091597703945817793113167191764347382024390247921164940749442069942609793075239677435137737041196152433475318958504728673482033808789150706730256470286524142514749515928860482985662601765579309450506369106914800638526758955587900170185156590145156738561812664790249996821599438121624829016734849393579317583804389909258409734679132259091567821550344054113863385048795484521136101477067764037036951232846064988612196349124572809828415094569455907157477113935638104741893381061966133624261732824749988339928784071626021443193124376277741677142277720022721152177769940702918307292371373089225200644180327458850838962153699568958063740772611197282896388926799297853538597808310488857522153631724291256749821780048521362282497703571043026829222325315048602734999346186556598392415800534508271015420615415953224272627849421085310308138775262848791772044247329684086817352429774245345525181676679511468197155334039719221249370016096701560576631179877646444935173707951516328076878175045870934548980830404636154812954049054147820481640670767202264521993111947233268417667837567348626322483016957290194568548674156051912077913473865165347853459990389834590362292509181139845094382921329708178667078796099277667213139985391016059101790805941706747159858728692402233042944669237080108629771752738977869565147425903807914813791800989810856294263327378178630015499286612149579584843226280030675548101311402237239425755114004962927100721327500485177153107342290392325554833747118467176971295853036038639652195773452625755175973622834684936804109625403918055702469390578132014849181774401025288504034708161325302822204835492306046321301767449931288862048837274289815736451384504326516052546523499100016007937171260801340588198977833426254106642344427445033864393395849554956614564115936727057228203491447859384375377815945085060729640293049834761483074808166277256777915007131380545726825523016440844567486187491108555965251333448988797343646258776948964973910318426371689171299589354140882273317761759937932804701463832270810332930444761291879156517772334484993520023512617248744248429075808631206732557271197286712548258204160505530883478139096421283419129447447927712774754440770579159341553017440908307879592203513588464374250758395397261876832392344589404912371176258869701442199727157948414199301041123503777563842233150574431641416034795324341068618068002173450700736735370039717011424144670041278930708208740170555232486922876702091689795368577899628994472839979983465411538526081731167479167089014219823152416055073763366975436069388348024188987404870654480613300862807052930467872544832268663693613977155012829577739368078832210073237736682371223423517025826274718110779817549907198236099119581212336321587313875473009541325584590034927557344896583044101654535148229706780947862434616976467377634337278967686363557738789862878102576568472366386027781108887352567682887946687196308295598245005308179787031958114042934674797085938574912502606114149498157929796022391243336990689729084420633615511628619310628490070070544198222545062650247747761510299250885025936012115017980282171108178988821873821035307901311224976656205166896637813247052164782282842742767523690644128924620635486707401536936842860035643278311837142073856700626606128475750305351666047212611582021962346616747414857890002541329906824883117679396529208803081965991776181168932222274938697514176202294865049791896188501185787340987696263183406368448185001469125891251450431199106227628873891531720911748815775550144102906249926949414152268628465876438074268969059020567324695545100652502837373145682078285538359938742042131794052258094712295055393698816528401305963964309277993406078298819443395843837559513186902362335583035560550035765335330510360897216080154119627571413856427373046604396897519791988515528781874464951789564713071704666859087345861529054968046369815881107568143605732580698056795211821938285874752333609529330713342551224193720977931930433648399605042020230647404128227675520946771900348353901474692990650268703060770300717917649527962401184498012513366491136617053987513692455642025456700255797990470457583655318886290551588345860831126905695474287618721594022664252424631101568622880818392554857090122823095714523482256788204660036017566717196413632333705610120900841310579826012458120207260037367484486994455320115726457225939480136725120308031850920974733158579246954707188810578257720666048571580476591797997176256918193958935692202752251636572357133736139265478182176454844701046233080916441518950401456960859966296777623938498529792261894322781741626071555055162815777015758250117973875298638585846839797000028565743992260377850432292799142001836617159167715866520585996852420787694698864071306516620902739931255651718828763609448133949935866908406772185520738057530232000443540965762699968149987569432123929686529361497473607754241480145682268615880341837728080355909072091504780175206651712992137631876703639481956059660779239996410589582886949192320956897737145469652152473852825781764685834871296504115278999586224563912827465171087495441524222987309129492380288682009767636342915668052716022486121427171544074221308654032877221693198304272739689917148858379220861471292937247805558247547010897066967688760617544378798074806933629153154281114551818034714624446115825530709419590367965666437343138492964192826091777495656730804036671699786965660711937648892666059538870865725794764059568069474602243742973282879069098778750392297415869348724356001942788526577843736048492783250754475937755258185452549701884143605840392331870231785380111601423610419829125789980800122985080904366294970152339374971339578569399382105230758702020958639166139361274771641118054515995631412846133864702938485255247784112504218885137912437963614032803890777853315061395279482165783007515648514432380435397874122370967643828179342650264887341133208403273456504189659633970409345053218370717184415709325264830268571432585517231568216877625176245031087818929980150276112722802182818258510342567996588065413706881782275534165997002176572926973386623748259458331528493930375847406973501827210049177097065834832741695812189090457040052396728076071184892399263926378252537228222160405099616179432280605185967350760823243171206711032661098631754679240208766392366099153584814231171197207181556484959848797139120272575994992701560280117185202993954796260593526058123718098882747285071846078482119079486230844292236581833080883957340430111035726870920777104394918452141262032005425405341994001396649514734478412411004436464273335639112034711694658576698447000975223307309922145871431747595519064923668721843010182099364401475103485485015150651289959062885691504389568541096883096666363515308515887853577047107916013654623953691093101404667386627964893913240616904120558889245116267612037987323845491607951697912771189864744205215508301251366759044829970094151498202689159717991223601731034836189368675564112100799963077029623169058575640189253419637793930519937795487080599221736186023696251103706511704513000942652652646314193874923389647485905050952588558847733696163746717464458049165815290805106448365449076342906158650480577471680536634636808491511564194666451866212167085801448754393596309900620381195258209042223718486903669064647465091175912232483346362513803078918336903122057314940051714848268291426755014272169207916929553744287521290564639333128567680014290682506378701529535646325972511982209928735972821113416011950378042348551328849616599670933410253675996479824875930727079820411917970289381059809307969799258064330046695976440181605986745371899546656060524236042865446626773525539740173498613799575900450368113852175647984199802032339191513740890344066313816726557221723199312285372173359942889993186127752539107819177613560715246573907095730499280560425296615297025840908623165462518946574032562748160343283765052217379136381187084583442781564058722547589043023185156311351500482012979123312366839641635671420446048320065607044865272462502460228763598154399271652761500240572499623864269774251042466360090085314958271119564569410277362144650655977166233678157178019544095722296696029844056522224524575167035124697193686362116599856381237204388681945082477695768111596771689295340638201216442696333607995353745632492052724602602337261247248988457795853486440008364766700423022558774324568614390413427013695441259338556410406810362514308094626771680875232401390978665443649892738644229405016117197924639094456280541510936875920064232314843211317446046401020349961185336548087399067810436786433820414030702459112642859938339958554351166592299555382640789858579742544373946932295282887184376120189064880642155873126329714055063275022636506831141487109528885489982630050372214685761401127822210283971918724287836383353654928234782799495275229011689775093075946914005813466328416441675609095845712270995910083387903780872815014989805030397558309846556295871602720369842810081804107184516706263922740166933205847141184633109847515539726047523823399709454061007597173145085430454590088071277888520617527992644386281579976582536808230716904435727230136953677206714131389573231025549666728911966553880770626021504881976387671708368050538288609090961736379962304661871745662478137227358366059504598755144279929761698599852224895997644092007542043964476230690752099948411098093085154217361154737129670814126508145429537530614675627705183159593431611786584991599521618691657228466052151518462279925719130930004482455892234242551191656704726408561646248542652880705942316883593521596932406021483523695767019042760882097645922283934234725655031606534275078093044221662704674989522270043029865109447986132095904316352279093966073462374002483459466893119446666419312650074683388285456561910460582757511601110927580791900379212912300905933981142365815932640006630789275824340944661608752099603865793132051585898703190539635347165424625636913278367455536604161477764996229492298785088667309789376289836095266777750952260416106903736677410764653201843190916726339574886349606777026783080246009688416873595152640364824210984724310814700935072348052854822825134613774004821821651370182524990741638608834454367870821722891574569741646862309971798919471761305997038493857480618285568509230380778100841350440316972057877539391911914109822992339686708449805849279075202554237616899740569830189301694334134665832415562805950693978604418930533353460735841900876892274513749589771882373660987475655154888982406029115929702769591911243742417049445264266958033174684807839334550969116939430961042959768311863239945184268887455893157460296585696053860956390105032333146843995600978770256262909756963861544019661896113671868039036292368183146825693260686472397086065817265816279424755182056613121913347980650974472414234845839345823505942051257997701147172562303594925562376217335504393185745360625023494831577330450110325313248550261229345069917674517220804025775319044528803176343854043653121628893277027909080664912308180997536034186044250876775866124257823161539641494721675820957892970681021166577947159087514660857493032923058705115470613276292299499878205316833756097676047865416926694736809849127327911222066404273120540030738087550901253057070075296790553260631174643428550204786815200499641680644943538386687649563846254236955469575192219115255405498007384943518901540278228692142317953571043797196912729143604619371242548945065420113807650307883499651002030731142539762785182616370789897302678032593855226500712994018588328458818142489748090743753219558990002673729452107261315001886792736808706176072970281176791088959710145261178982993589921743839702517959607775679396368377349943736159242615429294266863250767720522339450219846974049580187519998554853964271677461323553347834427751191495427652734681397766942264081092828967911019166077319940407029226730676809645219422860692359482600872086288106454697138290357785801764658723592570523268006983447494375405903517157397041276827095169881257019147526536594455748115107292505758939563286667820817082270430946903538638343342317011941828388784431892446489898099248565445890849184972740469830167035163862149391174232065391463750949997290676242988723348182794426228699753822357916884008029119022610179694474536350315824693351057117327618447730332289475612224215942853382752771738735532344543126643584520733263012528201359097037980447577042864858020728873327517346543805035332249136330614915041468597880493947793407888887224236331009463482449630933296154018483563143365566698835466572013647702549732598575888626164466545793947408782587426154896159161375259791490295667729514873981657105107736251455672723998404052367434255421236631659131586878287091293395100566380964739539031486193139303805588168153932840791287357318714098452242659625521973670158172784047291192167667665260503476141884954513682936539837269566164045095206903243762210355708667600702643314328492625124043464632290953710824267875687915433583939701910727843035303572209613394510853669679921861848035765767086464832333432957622223022340416502380083777220859886355469291455973369967023455248049286559007248905985681571608413348931015059499395449095313471928428851443772936328996735448903139434329063938354314286842341789706300887598640510944028682716522433867457465646251816942520127221338395217631531017717144366373297049539167218783882019776268914333143913685367097922294017961259296579794455040043380165195138255653026919536943145409438025591015526196144915057198163688376857608324893910535202304784094454898981441651654165459982974516782654291665044613628965471524440834515461388328299367033318493862284868512050171553496287164403260570761294442464433758734931486389509543953905406929966019207385713082248894266030455730516054912371295467295620522683371159345299870487564390422010033151534128647180816443331169782409397080226948935465070478801138553613375407828057333734788793123154882307350224782524843685682093813824685315992599763837901920064471671602134962649658775731119179546808344719533340854847618591792769951229190378809390905986556590861446806254150182674578420382498903712168825834018797089244990464564172703029309849628406790980533272781357225261604701102214966555029943909162931866625397012941230461466299893828898753584709692763601262858177881198496937721199572607066809055595670365788212341918686056433796143489147060843565430830776226651231861529507882641943452043092408966171906666456345729665081157968507492958030926570472864306536016000270619484878823624063169079045306053057129231815625222519078704775015580499791684146959878715326315794977389114555320308001351754462397369518776175742175732207698052500480419762504095960110102485409393620618237739784937870297366728285966817005430107721310966919744552372291234872014141422921575583892285545753242825125627974839877958397529115132023717222993763922869139354530559189050968693849363046166305769652851751872077181883281126609700431513800784814141667931960456649218228261285135318203144340288786100127019582044256172424388412628175249989674528333718728259442983907259758229289091865494539307758913666699403888867574645183858460221665100011427694400905982775517473906685992935370600667668489949735783476907545258598846379805859186493019369637316194178041947528940900190792773921070222355954961701115687339249060497193662450996297825522335032896951718566520062413361672856288346396235855707428439310701537343133267255264503471177193806924288644535524719272743680568363150441721213150321259261703847889648822360936856385882409940863229708528616102819789826513219168745020939712691846976036571206247293804561237307416907757298879462771177602538388779872482080777079314861772104675568217655682610858504676424064184951200819486754649738710700133128651913301327263683102961204516130376521639862309669326851610902958039537247221382322009626847560057175517403873488421376816861981109812399379423815473688998591714653034719265264051801658789953144826096399021892263175375454772352147136324687276548126830901748644261375720405479633514297196050924382084206654573892809775209510458366928182489214195632857372322832642533721632965566030532635681325640352655706279537983986178899562959303059286646565861559440899947128973948754950602915588954648144827892690092342235501071498451540785570769229639346050449752495568264122542422763571001643343941954211251138511512623158149162320600040276776449509517309957737880661801858367003066134317577896112588794778962118320415860697359764657583870751911655685465415969575007884738998861748415057371758060934009810055624060837223259334932314521853934842687439159167321593034991248130360094137696499579330980040095498296714196501902913669709982296495816104210017434290335245363041964396294921017506625498676713620130807720899249410323960044779682722520106636509574214058753877891441646163097046444298324134386904126166963174450309181893697292099832928602965729593339299174419071614325263876673351172679351732134033456549404085409621669319395463533764208081630883132621318209218547328290033443402785825990272388933553749976100906661162302697417704830908724092931250991254388059128758203951067984907716336804755648279080016473885907736820824686752640799910773564338219727233454327615180625945233688535503025584392717995056372104604766678771670281779109356435244320793483088470167379591596367361750201634840127187679680040988527803588530038110280181320148769251474167431518971792584896732270013470778559159784539052152454436525445156153011054635158001301059250179962911843376723657170945274908647905396321282425089794666450377092011822752281742621554007605289782610936139271249824211370325856399259489194257432162260226656025735467055641554105386631970362332279411786260448044254378087582227394412221622654485067547023091592592746157460407033682090010481529793868257459952222646059722893159159955599179524690559059493220812737327187347287776405275431776866629074183784372336338278203902087266972238012738625990970632482792909479154978659014092980728141271997307179876993598085358074201884479580494433937565568571555848882207822838703822425416842883398374994977240977575184248353206980535960139331974053556590780745326924194991515069502164883945041020005501102027812694952945169129411743388651042081277788162053738831942971751862063031607150116523150321265872760371508103014085646455197030170764803182940080251803339595953328613919322149530057268549917668579950647404971194950713017523766710504870773581457879703222171263554664637801728120240423453947820416183594718201574996082660663817293790610644129795274919019949859817669153810594032522755831978640029107331169992484964087529069035495185370567639077645159589153230004601601470171782992169426582321986914931305874541525047915318467657086602578025908661776021543272833399250300550836238302807282544346043944448094531509040507928207599828542866040577218003992350888593772046290354026385811687348084677530143359348659201748369194524774972132614727620820148424891695092414174262544906923941155337158400801513366783408852771598060435181916158029632205483364370446980168644569795629900716655523360775140593710479508628062547853142056562281916290053242525462488183674371773848143737010711773764397639085752345442988341107288851098113018300455679298589814969994682395402933476470654800103374107036332854838307052221892922174844822860492459251522038169449838279613083361694024255999055358562316973950509684669978646474089278891288154955664190082150108773074820066856648006985216113671950983627401428822294974187297370516288216645364548350654080844405976365454385797194047671331217068580328146103461192254440990817313201377123610387671557164637928726130861395336851577278682887622045876125693042879433255684196415261939390635803329758895450222125730240767386350268499683284118439905241026388233090160442360262284484239224196954434634535969761078971032348061885604570137853267583566757340650101918920920862901515778579906769799242121314808977930273147172523175315606244901494892456915738663070924574398347659418590544188412456689603131212745060862370050583288598066007174233867155179772427099765182214980306548856191547031701109237502878072115310874073497543800097273271820527789956188705070828061811014234232089294755599079189224745012349574351127906739604037409787491451128919301299907097949393190995909299358341807105322347380843682594629755412522170102206380980251999047103801829154088725842174083475852641682699065450804936360070709565131609190031766344454625281316348927696965350189373822052256047052507886079445860961513394413240110803679293956667302585166314136464430159512168841723688807772275772560538175023579087508247464646801896816893068178262307044196080410948228414585043851468425577045012058628191487809148137861517976628027614091840046142726957136476564557582729613697694085573606374971231236579672743411438635556486300564720508954404178606949162466101296066255450467081047686438153464889324887167977213687892935987915800873367652238559337895443284263114214299998191822999426266788161580553227993538592618617154934535902801717486033065592537168998894630254129187730206129749927704656265391546621915872974351672113203799300038672525352461649092780544745291504182251725981425757374922920803921578981826087953445891123105744007203016685799887677783607484076287633991805608419866221877367055312409521849973904598720451919204948635613420852276885341382967507907108426873827589926770114185762356751389770096176660552686579509109479455794147439599349598274873306612059790468655809537689455099536309562826971765345154368514968118018584098364300202731300360247888066092557256126327084641717881981539326521712345743711968513945386489574179978925580105575901959692390012439001182560138291761572025694061956253609449714571047480383342280411879010345185121892221517713144453868903022978110484624100500617176718630577830835028749589706910551265657397535460406169092735373774640312348044138772590737247936596380800751679714588075357292258347083545643906957629721245558316550218691313269812563501341412838725523786805255062770703470229074804042711485183182521402783197369388033328333285920923202044296578405306374041594774757356087031447780377958166480767723673715914977778474811340355900974999616139569491577479013595702283946886376827474364106420067034292460789517370926171803259288213779701658130250622161053807460950973679950015823605795930757033800738181886022416097345223371386662629435943129286501710219969917543280469224142103361113850767361106778733221705249984513440483982468365825265799743145509799783079077466769163336689597907677849747776750390395464052169305764555526264243120148770716058999992975005173148414467545139727402142895903770161635644536735297597992903461293647846513686184240023509651730396747711956365669240630336439464061624251117242392156609475909975533862391874716216808335484939453257208541536753495247548336583555940825885512522882890328418427376645092225619916329236852675289865532510742806089566034186914074630525254218855307973536053456777251573067838605097802242998084141114531240452724604833661878544941391394079140451364365644822242021777272250036168742902813652348539498929464798920677359457880249059571727140385204019819068939624085382541791158805234928892143400358955600862402051773319733892954268363744429647454529343615603253176674307210595137400204120624566688661416690369205631075831030173759417315909973597616699886885859603998879950110782240571273507727487988806518920779780666300171834624114294153271430571678470725417924003063229722413087017026614655888295163068305724029581523492816708355879601642515295834395066366148465287044484680337411836644142182044649359963770389846254864290072710546977121592080200596598322903618429767635105164188929825277414535899409627268035067368329879206691359470568403842335991766506627506374654549903066701217628931185873451598357311125336676065289370429571078400691104954679509054715390914369226984288982676460511155261050306628216728831023418821646658973079861437540969542168837964412855359515583441804486658875088085165947211438959464924617886281564175156969672087047084815342525425949726904511925607493956814297338357455167464658376695166285330397781510944712158648582417144114007672446416427713006038981569732780972174262694130908860285390034499532868064570082478974478981082611317188244969552533674386836908676128719934553363307334014010414703776883709596964332984223738222083645361788096976520438726576603771837585344152760077616914498450504474661337352924260505432220025251177109635871937037250024125572520627982604264768391356572099001855426398202018661277050792312376386845999009150330283068995586651007130637158708532343915706948862805684992675265796819264262969087629659744016388232095454985838349770039987561310084257054297590981719520745164164475921442085246910731174028265567668020172024123882302675485072477623852163009618749000067719211531891207605259654050573812778850501476147636759176933683864126921689279230214521868503119602599741977784637948102431464097773196530052902774414707282592770175838546109653041346540537350441739166852903986034104841779617947815226744528986555360211976458324543458330513162198757597169257447469162320099391775440386158829990323750390447217925466505579707942841235772103411675194307779430118486185302842963766972912850613282298234344783593436809644274527130281529721032064607383626467417838818952237126793101174856363268001875219320520028202851400328369372042181695346045095489821025794591726788549804639261157674504295137843226062109240862995110120559191255745937072878435108234533138475475785913710714999979145584476661806816909427561406744918507728324851052747783091919186033189143888623841193093997250411667901237954003620423557785471017216740274601333514928960251502939934098447018308051668374489336512824291884093443706920504339480752112516891256013901573411431400389397728757914033206855751801632172642502084113128153750965954721104555460828080433468534048285491219535284526371895045700190712078339500861369413019599063677988386943618097868445041067748105676408166781840831645525615337698618367332278736941752682646334330542849668889253582340086405697790187050000632130038803570953946916919714744577938707356428834537134627065757753253142701069450985370994151760517506702165429052647596906049170449869165028859180856115117683670268849697000694749803854689687583599842078145173512493033719966912906802243639547808069321890095804975069114468727697555206000467261007471932468895830709308491420640280719843941137896253456002229212954401039026370671857300507009054582332601099976146422493595615246811761985960791166247243086789031389043213301322058376915792569048487925549637667407291277606853448470953661152670421628826045824004885617770150928963935776540918525292743108931974105167960804107775212273353023336544795903575669611730161404534668717348473272278258301036117870914530092516495885963293751667110160198800405820625903902202502496068886886578689198631779905459719498509202921185253658329278254453701203032170324251410747679451561189274305749074401828324843090089092004794253437825016672977691680567061992895302518172722458367847173821067032058116695168945931707288648147343457638430285124647674434842081255972258544316833224347532494052200271202684914606872817580745397141289276214928531751935100368745504652688143261095823515095912371182982969275262951214422859094292843436238910743758672091056742925879189277395050192501083146476445414040608446285976864949361051268720820285976958776496135928461906280618000770837768245989527745238751381170171421647719746132145987658129088803905381789548153981547742610337613278949041483080694747874367901059599762727243145809612501790426707213644372300017645501471032006149177663267259275921871023924945622496938949151464710593118398439507148755651801620924152460117078066443342796965796108642831162597444954288779576017690467477634247335392473512507433635385812105153494721249738689103259181132960527721557147793543977721852484164164409349842729496641516596280057933111976671008807925181689496756842108177960945169649390361353257212520603161877785280407985713752630200197427710473433456678706062352872733943400017427593020829540623926907374988195265859694177944505968484803369435413724135682618630838931640046865663011867806495600642315810594541366369130144009167257363220335816579243567308443563854705090435534489593213468984518584102635627247675061763676264377016912024453963286111868788584946936869883507706272750276133152502522614639904418869717532789536515904254739249446265566159315721176516000961719700454304531649640280648782607365660312708243748071407474887166185657496857480943265098966499523452800379083760204814109206364296503100166921800373138273457067951667215876468717625725884210001769539154018695299530169554934983383590887879852502695103407807643343266366263589351994148361639351946066904882389638557919570001935231190123372849101183045765240108504694466121301099712550407693002738186135239801153569026379971541563130810854977725062066403414920025496616484455148348147832374447832228641667812529860068785468640270645856518821238723514875601051036161842015238840743729088663296920150238691401256401191522635478953337065907161379745848960812878034014780608919977962428229234181058821786934443169359714613275996707565969221030135520275245174601714654574138712506183520461271377565481470909613780137434729847804209243440753299200771999038955383597309227940800857318661042779557611004123104370964170730339806499299478966884630922247245578294637957415706833318136846631104893075505755352900423801415184874723383743919567424051494623667927256230050754447779582789144610308231637731636171008013420225487292162880814723377925858673897114719574426618520091278815685447235321006985276150298846989592597677174832542114155473332519647984309499057529542641263215179328014291826825261374699541642062549561238780612888408904271013318823304657417690946274123976896790309696423110741030299676816088771522813076081882824510365137799324030300661106872603255949853390874684250788783164094393071690091920888694737389805810591510481474487180136503984916603270488507905219136236332917960847860235349131139296067710435465380826440995144243520325709385640148055704495962437603982897957200617926744038911011996219348922432778650170070447679548648834743985464187954273381349885705720910638539917072454925388354849283389443284428331344743421870294812353604643252667516537703331786493534236549350730136484914489232013970139460491791372132967683450197350687801032547716000157441940931224643345161602751421000927845018307726581081151512795517849861753879320026893117303291201837131723512089671474195288809586698978519590818785560353799607455694534234217480610263413421060940347359972536004517705272010945209827785774243439154777368492381569378845360580715350204948366770463212586635717317790402295770399739170902498248147686232127833262152736679845149493733285460279588453295410871940116436546966847877618814792374899158961026403183420703838887563732888359915611366213441780552377700795817411389331866612119763281684278786390507328901294854988980343352857075523092060140640377416384048048176443667623594207077178961061403427887078771596223619494378087453704137679296166514468116317481963390096278950741188641573027613189953325114361037682764943823745609425332843797789490129974657268336365290337425308070581085417393892030141398928467509575739013102295577024015092686773263461054621523785300363537704652198572064101219353406749552479016844171836098847847097380298307619450138203676506719405961881724314890094358075619035828299720067755553909733444221710498225880479500506135188137920318817525912152173740658513740572648454517124864364718640283003337730717118649598696335563123826694069440545906518456874883686824978159335330433800315470061653034782979350675243839172880341829810123173121588988495878595241515294715912432186276712222851230556880692860022440543326990077055261584425042618506092884713957691292383479145909279945880903611645705549648178864936037923228539205180291900873201564902593694090166302058106956433104875802052819957972182986737996796866335151980090104164412443028671457301583778240528231814347976225501851148075659196555066857583691451798818555581618696102375065011899601322971948613628120244176105343017301597340744982037255723710430553134784626351697633654910450598361669593396281532465275887265971692345466759685246014328886567760625874398466393890180211924496072622095071043807661087293901234867052699211377522326943408713886819496482975919137573106088580749559537711252936515219518846264888785358198095840299762846710632716828938035557438010733606869836461513545255808674696790370917024328776554600535507577759320569686162253574229875975774912101346328846236234489373403977294296647389240707247922127964432928142610420906279829599121291984259310468404443557931365028538043653786471908103254172251395488884671904041167852582077355204629312000051586342010671575030696666449231192169510028016164972430797829721158191881022132517396835349542081836214841880129034488199403978340240861710646199529404014538795787441253716282732998089251171952016437002925730745123117186000684679840548287043602354185174868953684546003199744329227922362883743829620485239714780245581399613737648236453299346966756789513187058382812041306488627639014666502677222385584412143501716046697340407288059058463279467170930190876663754737952676554006838759887824049410970230211673464855632073122703168016507517672544957657510930660350022214039982894876863058785645965048403235063744218030962658589191499064879786394672878210333293298366308471611709966346380728829393627029663704267926298787022085534924241314496484124720610619795818170390779889147153050405226432332680065223409484960042064538438130865727416847402151012869652785030193164125764202214777637925439644563618907771246970290652316650137495542844985357931681840604019346887789758925478537429445758016776559138968056894248583769258514257265983314761853801651365767098543012162895533034071135790501190990818534717062437808779792564323901914393253262710240637582036065035675845687655709217079912274444505970357216303709212333563882716745748013677178689471821871911390806434500147632009285251821314407269757325026976272494314456899213392357302096760964566762985721098069067017184718490972064727876007236881426307684712171688227114068779539612576225499602444841052995535986170964740389153882335628430546378214182343979490755120943213815384849149473507758112055717983621898859912368359000186644881554336680317188046977799033617626656260233916399253025780276282765322125912061519533847167268170094256879101658165581789658537156078931075801468395212204972437172043224129826299962056498707155224818205536613441514321748132276677267066328976923660220880632654258413837566204298579930103194063540016609759681032826607617220895758652583077154103122186234777711478097999155352283734098626447792320407073137293409635421666641907756835780367352412965518488750965702890254826698686727954636303291888624235828759982918380863456837317624977714716683379471013346745910638100437256162179951990582915722350833580580821601479736041050025925364761385193551457514530591608556093650278400497484889861693047032436928195620452126865517044906092374135173209651801177419846333563745540791118497511854926043070042540964591626784985292158517430211449713677327847077711962559355425396318106637566220031527399584720007065092952423045778630875561407668833097412170665527708434834349572748249992269608281562421878067479202735332012905210477885235676364724367262958231993937083303056304697717456614696063762998258308591587450934051345082284381071226929264094662013857216628126742484634901189656575900784318146398906766719919618295603545837889768919990748977079412206787682728439509193254822812372204889749218723354425400128013655942908680982217591875809328359162929660975069072207886496745872914656997857912117751803371203039678165138633817650009108618619326518446772630418003017917060317292189543179613144823455535661764840554139589837540071335630657577033371139851791524959659362571690164251613608141241215567937779459456635956116491413572171002356163833998418003763047290510552744184179384978234958671696986514024809666142211038850289199845996683416595010345615265889985869498994400812437776075402510770044249379177438487525421830141535947815973296224403178439924368382373791426071379766057679340735882072277981665709915693995029985672166096207428333610512341486411937330889134868176212012019297450418765123389138471475995730867680806940029231130830042148027619676570465897168551080921769184078842158007879613824715481181536747471812202839417050166410894923436596473382189800342766551025215467689198329517076870608988632533279687734759635337137463836037120213613281552397413648744503744274193458485479983881130825429178038946155724947123941051144382624105236484249676274985216036258653117089207561129000117428290874479763332866676422094872410575280253995692637189242050270204633616999309566963386819372035359036472548241755812239355053310600127733216163727993048061291822546237517408896403873963965701742135979947959981827272997978378863130934349362883949728981369968288648019377870761694599578538820208476493179454859969024247661847290768145634841370342116530462081804018273490254935599382465972683510627702164926379066999551530247332551959120808554975118304701636949612012069411641475971457562978586457927623368629542370998148072706240579684224333810049386974082450360285029735622353260427453176321300088353095477026255120881118187751831259915671445777045123916201030395769373562882026588550846624383603270975146785896243708129582141030364279478157718875487982672510309574927082509462984232981253728558996117531626389853021964095467051513553248735685741973211852759255693270976614699204665259595911237935213558057775027673158706682637214951844019415099073536089161386289401647467072625510217554885253627620966361465016582370057334444677234061298088321653465470491930853140111441782697264962704253153689978114292496567444373206010738534136303727356379980408483135033014780184300169924231963172201827827197440718926017625580261929534601156966130494473602972745314870027203805032109792931406278626644927008885273842770532805880439892503588258399072406147184613063684140660278858793047415976420965130758430714658945689928970256089735321516422651729930551016458701226941401050787359079700346181281987368877383910810960141543124287518955317808073691119445781401054834411949067687962465771539188434306902706448973498247264532108669645409897769071135128012551502952748913992558413295023423773343771270101908100526095419939881972596570215327889532594839550271261432939027297106021352995710492377466680346992901750097300256482454177111698581012528303311550961841455415264262676982431723307968023407522352126272209488820581516006341004363479889135200053472039108748433735786700637594214788550661359733687586669188116414175438540660063225517843834312877530108185912859844676099940583543857823013533199748147827274171416535209484690455063388971740267390615073914896240277144748222526133032791941759347286773604512165855485689681376635222702527225055602013849604581954016515567017959637134905968192887059507562496426234260643431139740164154208335343040087189444177312395553765274050583898271469560801772990603310437891184119689699669553031057002942906373997460282856534227810799384953515797701000555588132896229978962632743089899195922484825052417707375919020390814862735178481012700639055712965589230750299458524643391551193279634049385422667740453466071602982266139930807322379064443112506229066979126057476106306460050320525011120659978916340289016090113147844235535124014610152463460750603441611511476032841306082927234474321328845478571496993320592510343822812339997616955877037482110985959686828027723292943205473946046469237378718833163334600280061797954366806691116746247795916649003852566600312054967323562784768314749266508804081045014507430425800662212212794029846127399741642374321700547251576184996625365016351046892965952913851398190701629384311265073437117038918243238881288138277357731890299117546494644452576085195672001827774594321855016279766604812180048348994739370109202123658339361225450846957442559260008853404284754910587564569731848983687840175194921593194969401246576287863593662906846372224487847599524243474835127123783522653954804318933239312092975161426830436005456539421488583472302191545651612425935081508927354899704894735870547820250997374730655740806487917512560804898029527097548247555829207429979501086353396758215636937328570121700316156860567411698550053734483715084607166944589884296475938062021099866119920514908005869326879684026786613254140461484307471067727608390883376791909269240425462339275461625370597348022182632835345597356607945259366399997594625216712613108111636423335559345689768463001219317027400875236262105184769977949072424343373717805771843488578616230621749096823125796019152521627306245077489143430577505096924113402267886055844559148310047182153541800871489919276569339652192072357354880380999979708120648661041380072926097744133359167411436023803233080462410930450401168635670871232506117578187319700336610890686512292179065970838162818588361433309343318119548565377339113978631144358573644948865000270764893340296295450217328695079789125805206701847456337821743974944489466736590500799950714927166277998110449636863066734054564435501281724876305202504361918653108554110443913791810580998500784075508019103727821618032244168257055032795663152672795319252012186955530630253025910257216771497452099569721405296896903788541853373591627098623286324039745627440299859098426456405675474951375744298931694898813066850947354635291776169177568355030313755748670754542121861544502016181814004036253709209273033946734843395037312546045446532701399960166642548968914757186377879848307646552290177793698863631964098355055938803662219410984296861934157283833266749113607826574420505443265940870377233662996567552334142360442141219626476378969070191199919916175540146734255701590292101337419054265480351964408664661933727324358213221655510784212743169481220669302436374482140293033839111799214074800096985384711424212028643926225189703677835989453479904796792477111700264644865436880201929303372460998404441064006006850299080973664895930487928679238295929230938759973650036755944418435316812576076115652069458026188011676225911580518523371688191737009981548244958558160157472608282049763499823179859180280822627222864058121705213507538347231712293707194761126594346395232664590890264240375604331065607064999892476258896724405572595657531247730547418106444102454858200334950772287947001719342138596520418869884758825066639546964840310364052168028062000657696723459535850696666123972309568520803550142791495588584854207584559812679865363593795441206573835119458735683582788240394286563749962014219741983627932741753186561896456703289790443142705521293097029751699963144777625053488852319818394213795343636735991155707757224842515161249437314171629153681179412326099268846687561897011082816337399352229905142343855763949415525246554789364873796609042989967755034212656704322494161575862492966985826266934005062150083264689390508286428781101216847258777921206888099252363902642350146242978289954557543340134877547644871345729201049915377227372871122487757985800849300561814756900705425832692923591512776559924684107538776993470925307397002438791924454546665716977744343738197406761860899931435502236533213165600980312702620897825592936402154279599040878872209295309977907846724018537419449890142288948777036088958755478252215318066547713847157044359063418514967238913180082447390601534056701918759117023216324293616352161916623165426815847155766429069984325449450682524938874302087692027680548204662557361341168322156903703898294430362742669422587944522147442417839125709997509802656895060481121851586016847571390527862360102740930814067786992946222846785637450046937489166725759915355928737969421643978852304817656113413269126032931264674619669313609131298989787514521119171180977025993065014691045336303550045308705688675486943527664230211638959759827977919895033122670994994636152151296868636090017111896924579982178951907118075232296389340186803801629316835928215636894072568404070245076386839682572266108073437727608382281446965994524942515755119103717644171521666329175733273391076571621918959318791232020409680028595050283466030178781172906140837753796725886137016316391329057065024702821846294973394947660519787241656168897945265815191182137006160192814688758972107256524989236792493881300663643880993517845602303188467734813775214333017180215074304259368082443352235822219196620235874952640042756425683291292287699370623621481042551534596708779277820999975737279137303495512601971494480461901879506759677505103153948168480034051669502361655925086052256806342974981877503351960476595127187754133819489608238146298655148517007649930593645231734535755477583289066162905306617548536838333122506190006159676124066468396088272954368525866193439899488078709078892263179013108753425017504537374273970352639259680747683406980441047473221751674550255175225650500193394924721823903154561020628565557554095375188629973835197050290379737996000655658222601455717739218616427877317101798935389554957909540664183036249421998132141056189967981932618740064869517103604725597100066288407448132560058485854080842345401155696137084181793361225189160977588353685140961304105233282539222480590675779007632053390518863216200298858039752639845861089706681730817733724648683841691194076766622806895288669602613657794970811952420156686364638862753152912493149945832155761598793018148286344662535946337710326477766443846382734362250584578709071534129502249672701305736789024777996830446930899170810908555898660881258281535634557960135874290188954888012273824377386741607938107856416951500397694289832072938346766864628035182654742201783233524987303500484965604022489693723294424033341795267168455218847904058457566518756035935001851953513456180630045794458886020173013207025754449534278693535061853454038643511548590841644262862067282203436882606275743973240303280657898494160658868264495896801790729031031130797129220898886997129764672838308952092372542189518415570116054371773046344195483264636635344567853269121198248105544186275603077718812599863100161608771896017200675429047081851337807136518493035795988246816533099053290713814714719913833979815309117056370088645574414324627825255401880025212220451261205199889255118615744022425139486845953512756200185440784738168758442625500305870346970890708210487027958936081494087565469482040243322500410946494254349829847863938169766842980143167996593474633123377230896023996115536771768937762931866860829793249120098265617991762396065074887917641210163737252772958539402840321381009097848619997432218779072248038963961219564236731317367796422376887155582603806291401823790237393408328319247688228336403499434698014722536011903056111819945949126718278520324754394702143711419075863949299660470374218230283984566545686458283528082673490803182527062418887131381260569209561953616603548583092257215581919286414140587799311332509550005744101203646768300406577015218449499167256222256816376182508017886800531450146538395515430384990928680699191720829459809734202545278877649098718826180170840482992284711512543594983906106262673854095651962466646585617823479469097509383565176842853049341541514247412408494446787887335447687590213470798837612591978807233909958047648916132313949051163250081201812779443814725072829747821227586836292631712871357151838917193609752804966961220461099070415030556466543052010517809091972834891104183298316069187089256556594473970409435650701429179365048745475033274172570056471012479899718976053792643091566035890775574500039198758173263385938069972036133561336328357745021551037514253490180073834990541267635248242652668258999090302648324169822636186546701327675598350279054385225520610929196262923941948994593931044120367540041379725357717183894909754467070539920301111786915975650770607907915177109717817489639442361317655594495165060450367374006867997804493933792727357120411258659732706143612696852137586908720277658503153704187711403264418119782524072033094909836623495374961058029586442768798407907515133677882878413993275588639698878003259219566454247886136508504101052970242005555617663598409982862825734027211222502216796504228602635485016592863406349274498071117639351882677097771601605386316571893882683376687542921195680000370871870628133574662162945927658441381515304455122016357568899109514912731383364742800754892179571263886268335632147279965652526028544262506066185363581729312173632428376173741803817938534695172256603870638213927357986209566690947855314530205146072280896408700443187794112777988746915785017366419657781531753303327786323277364732111093768548870531290442501989346808275020805074477735904816622672859046007719958055989012625942666710347839408281236964157520295984447365665400048665954350561153520972062701044075588205057227019492767180077525095961291938880614904970110999872287561206700926306619854345556101074391056935787410427542200942450737199846352281728447421215142188802787776861251747886285697757429540367461837292576426729868618274407530205067457323083192627388773768738424402620506478027387866930259804374760781037804290130866075151727633266532573272285887009325324543605169165399419564777657496513032960230515637337530881624266013181306204515670644116465987219124865711154503787081946862151124012978290002710107064816518724971380525132126223311710111993335121130513726309929229790632191950381516732032461246048323908461655877441266140399521601194445592272494875378084195923314276875381826702275450770370327724704905631885844322913058135217711955119627174181806875355427091593865947108276616303108943858105993231721654730457248635439446134774015218698307810697494116599380262963297834262328973022479838462697999601068029487003249575409884813006835457988857296943633570720302191834384473325768313020014714587055463386506834165711353985685540101905382042256777274707766940336456697993921202398052406974011614108792096424859069547278093606932647557121434913126045825541526904552030949106449068059708876682568709448180218630255159517200061930863395387222749764786801410315674311451427810788518702158593940301024189155883339315553879509714075879422680294311089720894450800591130592338891378753898109501663076493616921672903052706802457140387542222422677261794915948793494298788442640308763792413563446999385567934250651153247624488505365050787804518844009907239503701163309062475450979308558159953727094241196602088286648697561118516213385151304005868589163208502771061539263622180742071252212078809507035659350274334677003171181699684883161887517151422199250516455183783814191314399835775579827935517631556754421179294939897641453092646556055269445902779773858010654966253211951916705732255673575275957056370132029422329771383528768331538151928548037626267884893447786616038389603324835991626354317585985842489292015315708398387780502938868911086623797058456934936573915865498843303465775611958802459637724993370323922824257992980606054963085930988499604791935310032063684045029326916199488489480729699943335579837419300615926468066236106952114988021054988963871447617261465979863221162628517861320652435800201930338746150707386010856425366427045485925446372290856890754531104939407110845656176731920253633626452713384665959173221063252118107670393730788380325005144743169969476360399392140946213511874490396174683936863665923267480338052412965097362334731714284868698840382292252456035439991987550336490733511532334801233079256417792266312576160052037726288262826657158473930798474221956700027159627743948701091036027988969140626125693054778601709616680493913998913144129356335557838294828131192595633870742939527342677948013749806451695283640977669811864590289944282555909922383554966112910318109393341098701614913524683942218553008833516832682090745467477455364211851032056541142935761589504441681964978401054542114057639156622535129972272881972493108677395700353496919860743392396673747200866656293857236949026551027774959664548628332274485603389493922544559385467436514966169861713457145985275376505669209360936322320506639324682510799048853751234930965707352804686866215292389494106213111558070138888801352682264535901129493055475420152372549168071221288274253389289713553705250896133988319264027367895149364507004099080879042993046817134453494792813018212425725513664673449025885615334212370323282305224459056907243306998760602435351615303562423560155561695383330392365781760629392147417484460730981768405461911703099818714267246412989266772816531648707894377864676237274463858992238407379273990059863283603414442249457536672231047715128717286965020896445965889207707600947154613334349520528244035233852053796980823934837119099446613234774592355970416061666554727935127149892574380638516357422328163214216383167476287859820639775511806288377369709306380922077878856253808010225295077809560506848947756463380782416097570695538147479830562693114255560384799242084086454041862398649672454134897786214315289668574788378887175819711797258320532153226270881341180930712337897398428059008618417784743528462525491823422641434216400685481787181191128223867232216139802151496468417624050017142117811739224454134316849784909000829369215008466278971624317259095405328206126853280965358641212994710284497240820445986460684749524805658065551853182668620999481352762233320505608496631990223740224028760935521251408196415542262616795179304024066272420357312870775651124509647416439065884865579303108260933407315328743822063785297915470673607892889332992577549163168082732827796786113625216071916580277648377610364230898554836571083414419290172303059203977174552715687979168149976173809032759779600279931932222623035669689999120655406122851073449379998789893417655074926834497378955625757699584151142369804409452957069489678471351885805694575480975821361638126397037576511549123506240692277554847155011197000960517723847722142275851238033186931365798515060108080517451473555177035959067471127942101143535826028936897844302435304624447192164479679330955258529583428354477945553720940159611601352928328107831554429478845327832286117710522792888586700535018185236761474753425552487592602888295210634263678010979878728221088035459725430303622507608659187110486987752916640871564351677396288231644321699384628606119321322523035276286760293766135635403814495209677242427349502778624408322821160635007562246303359606266989990516045837166194658262777416810695601130320676226551106041570591052082422890000385052940206905876755239314027431667456295189989524954459166137898543045310460975247839269112770966104291815477584564999937373478044571058268228494597779448814809646730112045903574875582220757704624216155208138255555603825936343298076036370298416474180670022241486823281251979373844498939418889837268230653923950031851150599166924083448129853519343647484317837413181184340686119306526521248003037987156139408397273612100709720458816353065486319090458735848836325697184171184570621653874690397785833689100693564223721834210197251212599376712141151026767318858709674936323733670566948390418416584934674072548634436261671408379844989971509824199874487589619789371875348369615545099956704689504778867209652999958861531050384964116369400356248321644549158198011171905670027159845836145021052931315171026887015002344488359251027041671787955205388269559948047065298971659223515144937430032668786338985791789382890562320639936801065650518603212571206959739624285647227891276629513272945517372745554427104027932090426390597810183835708424892962329020956206361026980381829125803373758622430077313131036627280142533628136896777438680691409305374864831696021257377547296754875531536684153252468136698855726112140428932919203207914303396981635971100532042439172902115229596158352538505706701331828570176941659598181194806345517798471992135449845026741522841875043408319301417720981433703681325554265684486618716613425716284787729182774609334502552445070357878315621058030485927833605797287052490516851213481960708025501738873369488695044593009015495243160679406791172260459274166397317006004979994692524420032176873274828078033895080539625514894656551332979899096816125236090551892841081841030580782151962827564757332513877670796040827678760993140520711049280028353064789427718434993479801387576090174861238006782180456574214381007158156831189567597702626107059021274501132898532139269034536925210393336138179614732332488222015362176477283170520700364110010379966319494841279018267476518394126199941362192492043971152438560321444958111917217812885655473632836323274159121415303457109882446759273977116463575883053004999083972412409284724195122937043462405822346039539949776290229681049759368567783947392531056056752965310185026521620484599855215418386925642464504884219342937860352882030515656776353610927681359610910559696525826177618375627677729633212712127484266673381578894715138145086073975924504757346052349300950632076985741354971433434490914416175874653556139506752423743394423593777210989718243048680934312659528410640114824940757027587537036161470671897022150808367301234670917518884341052008446465156502155088363433422115717900390776939149703458700540247262666609958353908047938031930951110009521831663494946635373232750328327375507677200913741857923875988386578112404867710857596226911480106674145328980871278878951294386206940740468290452033074128754348746750103815781907867844534326418568862299300637257722255118201541227870332790183485785610472108437286374094402259963790465232219506166804845271429579336590224373174775212754868017648216816627823926253569952664067553676548440063775188626424165445627559355152708889181258168022699013250475670132999171022457536364904760367771150139998911997081332233531449258011066432222318990868304337983626142912878375738661867799424232665989445700181490116538076930009539612902909152897512630528714075685428272991782702718135226534750192958572203371491457106190417688407318449578308364493553524805831133232474265992454166336760691018608595087172049005188257164136851212451041511790172614449734347872345639313019455714059526658880756460423502320422869371215732083921435027440839866137633057489067959235142777467531557491809434953246068292016488174827789849269511068004117289614003798706044245452311436382554128592651786033552376856353306902144494604393651513075497712553189971029953441751048504747668761525507857573070477083265131905916111030555474545338001849768185285964491015692529830481164222596203004895900275907976250107764651240209997874129170758557566105451513586901006670942359972649546349007890847415732145154709035925707504283761418484362943665244731166446491940854207628907780629067369347640776060725348369195718006487756281704221676152042765964989588123256767080127699436669393192979245046958222648075093458094968926720120625302464481376112187589940048867600697371456890113358518448881426178023008556908267476925961850364382650703301755128489876505759291553076847021249055258665520071364898494442890240170166076656782666857376423065349308384246573758211602081637217407814849770817363387047448474105304420661725779205239270345273318281254447985655829406340630415475494633784860223844878221223372386285241665860035733959899776238814538354845828947804423634030225639828122848453199659008929428105111346249287835578362160762846924170897543683089138027155472567109699659989412351541709113507113774369173890110121496580668814481774300480310824539686484212367531910141680831107694439605247115021145688769474137601958328721699637875642098812272595060082353251421670338586907294944322046216752243326006482138894179541095301676407952594816445660651076326216837708041327415762287987600970951059853172583794873514379701612502608470065214181762024627947010395234415478759696330731284200164982860071150025706247800131030258864524392988758136513199591496145211338584650759100797568043606275155877277318264614219024149901466500800972813256539883203772689251953092336509420186811519854790116608436193916678715385795661536908359436901600249395813781462339489515958507400547910618793272723488364554340552152310014762731573677091786033159125555069315351242971943808685265630745557548945759439824462218526879888493320658656033793441121192213710521189221356607649252582374819218246826716505141082389437559846020668834613467135121251537104083062540244295493489497205981379634710389412764175481566438358802293119032313275292541321765187703483936230325005812287889661342918373912850267302778102239423950332372863882098042113764113021072443686280629478297888783765165114220257894736407937138276589798127323679037787493036997413842045296535886586335881347413975564564574800462225964522636575599906381459604431671445650510659679936642096719967225021167743186083346795508360763734670069486880509386848023997776916054232835628682686783719338062426413591442516368302481738466120625310218312399255642010945009452725555159997808147982386783844125362697526073083134439158061378972723875380242613566060897746302220679022720453125035428674066700342914970500098948772972633571484944853404714474187415405181110273659037881042020059930715354958827403105857883784172521172874746516065968111338718894991584165421284184528875161444313896777004259802932243930737294028764660584099341030557744782716802441515503099799291607753977019201822574876201406424546423567758795400849433291398143781927220963303700351356251987817256144237316548928312516560427237244876858811748025219290786320910445637978859443809944958334976973147997708612411534573374893064069725207648629111993409924042726113552305530840018380242282972381980178309977259258894773630809852299495404865876301001705669996535887451351127297704179557834882510174009931771010533612108837679390802985066561143597640436100099271907203753885959761243091093051154689658246785799127828593425043772608337228906486608547606415912905254279458288973117522287644458769463252763574502627236716314704919027285746585411185223197354089736771589219492031395316916037346702161036094982589485200345137159330315696176128927346099521983978067624121406233445355263679000446322447231193478038185421459508109710582820633029414519846220678954066608835966130766830834737121606930620647468219738507981777650799058364286834767425971564209250007404478253150166292619665513523793377991275290268879429557256258567407868515653455601569998513580466214167159988481906793741842801348736299326844105695578647980393571738655543960358867530822917707019704529604188110601320464384581940577415544226335016921625688240095991519258201154035498969592620877766018522106494879323962990820868236823847679254606217010090682513242464046206311136334760616271097942004389548476905117282483568693072857713327690938822715600501777541857615631552181611308875556549729620591954119747037183364944228416509824814842826495752516073702649270619272349566905115691296036500349257937690678138796599020886089871156373261670339126814388985418869456146427938009042862676448310150913525203346049786390470667505865474945882915166092439519627968835223399654515170124396933554564372370995002730876319432243298182991563155895382702730296298713902963602109754927663670316047814924771956790892175063468527341742537723253567408494893478774982235133350747621091156652178072489301260130251292449611072867814246311985344860395915153141745601514339235870642847086861745974293683727424614515886944405430254191115124440828045938251662352921103652683005092643470688577411660323941778098591426682765939102320432853212123046265897103506649248457510623872216941219571166896211810806920034991604690773121062545240743832410437198524951117018437289118857063847257616008810479069847290175177539951474748289606361871270061025927072580287847970404375752557488973099768105679964803818698211951088299918013942993796061162016755291559172554006981112911942121791950022700000236817066794504043160388649323582817296273617659972366546143203039121622786235183172449002342308294775219777660273425233047746597735983978175747668762092103653081298367744287206335589334127664208611726454856740376940966071027231582921734603648500227935187451073197957571148988692681789495373861455958449238156090647691180231217215615891893259623309481791741367633116667386637534214014314131421756176838551628074944749468895923864028676622922110319336904511054100255384535824094995187869493802793666822451730336657646743594261830442334150844249039073911601489704782774060877576590013406381370813254572247734783093128687776071081810732451864810568753191496512022882392953826669237671192703624601398807374165121060717465360565628901201617427122950989626388290956554491915793224076410607868079457198329431325661326197959643044085918360469603601467114618966961661543600632213813388608245125648274551655904453033640983770285551021175498340991851995806670954818428617147103803195484529321995047232089328032766822944905412075265142038331106933871013863369319522869047745939408974703390215999139705122702419099470851651699100641127912665103520541594951743857212994473186316193601727982303630857946479510854844407208376847943014350498474259998493638764089967275100314406947969182379256932278200305412901980637886565790661724125538336711739543892313017937316649412448619655212017017462905294863490302124570857802449447502423934381316371071807958177175599136327717890649171909057209163353778433622899576759200533594969010601699985591263649462375306002542360165220704413085983469891577688166926358802836240486233686590377378476578702058557974523454643984218059790206913302590172295956503282010497331245313320944113230951665990955064487139685010985304928756847103867866290988443416177327442357032322832242599387994515167492509616626518702865787238310298536966791162721940130057186763503781738469539672686606687536464496426157045856157141786896235377755498022398180518657650820901500190023819231377529860286461727725342765962173896944751125763413980743212004729920331384491811335590787428421816932220356531566569637723647712961874168761430976359367940768594184423869664922768878129824244822357850500452759621229418087538040369764235808388481459683722093548214108454140251047647821159987573133064671333662656464083009233000066809014719881692495920062473469670050932378020580231048498957507283559468145996152047040387316269198899242947920830035158053265750762436151219452540175557938314935080538594783296194608741196887911602364439952532262288408772392285540342612668608518468428637137922165489974531646762260757093959423885717291586880817080114572197404704731681016691252742822908992917604531020690817519933474753648740725502206192235793244427231642081093148140056458779641379852272049931761694327870176779419662544619671507155477406060518053212064622902145626859141794646936496603536503920884561080417173706022225982124994727933537434854563669834082746664769976472311293926268467499075868286876909315451155540212110495633309174655148556572646081577917207105459388711046739064332401592929597441856280454502357534390033111304419044559683138484992982216167785744540925538463171313556504397064303905681876999205599770824654226331484253147411461789074278155371231061788054397493386785299261711800713077730933697314435602611957792033785524297239771723381252086591765435504089212203605130117459559062771451374881905773649339834937870403056467986803760362408185183860665969633544268032316021270440965661740752111367176311076872791178737228166416771751879939851782934631038453950108924875801513687383724188826725347615430434843428480912069999201027337456306633575298572417150346909394043152454587341547217829365715137204235144857599645075795222951673869594061155918366067334901596849125559213128064118123398407017486155338030167175177333666697379314663418517824399006923517024468749380209272974811211301096136702065975286330722207617027874060943687533173964147277662870060691697809034426485392210117744424829902918490296673633543250727005740028280597234950271429270997386515475559799205527605816027568908579622982838438718810637895385386070763092170882512096933071474665755328662011509994789316571011520378559325550328191151702524858457290775406352096399796643654495903080818450235517875210191625451570901874039865212195094055624180168653779352123848706663080122660134984234865702553395097056507955820154981087534121911614225030763288749461974973034783954080105091021802712080785037304570522008440920832722373078328851351704004219862059174164909997994273409573712469863106207360772143640081452678677804526169812798229167485180345061362597174899510281130114378046788099780945279440755937262609217668897612555515921845730545903491480322557510786272682689213688182046030595739126951519436746801992931082898581904160710690309278959332861378601410565032086839151122909758755561813664140017879542333939517505029760517918943018321771315337052474562102343754776695076443454785755385031448178812692135453907707924533489617873324247289597951796598351880155870060152925617355126779726588702385712272678511029611424241791108157067768311343822311658935833872928416304660428275798555952695041725038477132949633710235855845574250028863862576002813306510718130413397132951253606404632884525052425533587142424674510497888258037477036299052927995381221843944045560033549886598100875906026898651566418960266675735736075711568880994780467479782022671436833939691483000586896392748471034283940670825346353758738672041823364987686010912930119883811592313541059305071922856354332701519941793185503735872422000428616759234349789210872399461940463540908622358606005999770253219216776989999369727952714595539408262622717433041837164949742685644258888274969004116668544808162353618273783557466294088990104189413153783257540958891941699084449056164613410462641628542253362896201413110262637529730033475731827432423807986288388862910833617808973119195911438310602529037226384692465397107549216615290018372249767451381312741960906212256564297064326170073915453599406373275674757725251893642972055198375330226332172381305969704686642137633859747673976969552168872297952266434751506210261561894952294183639301506382511475751121554526090106908974042899713649987891852051035912268960815764295846346141940465432425801820973894545114013934961698356035657998185179854489022707447940535341580406661765199887012195321757450767403348603953054412290760870069820446474779807388557104066501733083764930486417521427806963043765008538708631344005071078463340489039081365914383517573825913235038163574864105315983883813996048537541963245615440597616530802133491100414179432283532454597485599774861692806523009710368531847837402912579049951958012865924431395301774395885081491495759978999563342818600243812519451175456039176971304484628003736700898997335416562835635051036802770314915876314050276788116893619710389751692938456214680759225570442185024564724372145817868949933329012111175063893155390925559679594677386267099738963218612481346737272700620830646191497615419464046574236552657240559547211455212548004991570445563572474005537052795109386335105348625093874366755554117033238848827423459155676645079784608725432478766398475740520997757147844189001988625852107962185785796903198875783755946619307872524838160222752114294115613528504259789081780150127942990484154472256720409230823686193458088491998351225305194773495954987658964118457758302995279383121512379009262556945964855336645381271619295789601598654948703932101883872383686124440928654106115024674216655107053563920522100904902257054215169858419588206819791277320804317483945428558197421334861337259248611025879979501850787727566808157282653102640418030658009010792091768741186026801141230999743550467009134628634289212338154378842810433063915883892858336271477837082140950715935331011284804139226969464088185053773516718378735371460545238211052339393856551610703119897764357943381733391262209242904993945927018029043855232054343475585666394286156366879714760153963462855630487063389534542170080074505583340145313357109037052310662714541749559280413001685376487438622738063184725204025795180734508940981704097255232733591811873134069250745449115006047150367298187920352274834376812772535618239613868888564001841116405734092662624324166902606642035790690878459597133865261621672149195887700640616251604841310550431491149996628398268007805151175276694123156735479610252088222938067165038981377393144943825071323543405462798523538367648640043231832344403522692620899196411633986869566314214127405361320161143614404763504820582949741921926499993701153480563713318124827975491745423524942031709948460822498499202002835773262433964615491105740108462388525113904421377254133804887759611361074237243499754138020013719671014045164169245396419664904745703235475149216859019672121450095226964747473993986119021072595575915355887243076762225901541380409292552607932063738704654314272969037211677721958232945133922687975800623424450200232955737279363845587745356283290743012665279724215846818840536315406789795130980734878312404514138225053414504214119906360194600857442667173605270118326022509000472997403138125192348639780606861060150413350938181412436393695336709486396092598219155387856556254490419384912518354289662903012498067036259055206073230069661322676173113553255655688858564527387888543262590575672812162997022588665518809972696896546192531976983838532042458038284704250805111995755167350712274931692054804232065460561797261847264581778856999684147597001396936202386796413114322896898417030449102969558609127587459245077542478876745725896299416830283621990613577606857615450251737582163050829829047048972511182016946016830287278202183302340953590127917062436736123040576281382880560253943809056165589763189687990261104566937116970264922966748749839378736534789363422272007541410112593134127305818976438473363893780590962406387578095390672306139073524973455256151888475667381126675523233896004516863502925061025673357710597485274118959447273640458892151372812154479182845165524482394646683303346099081478018960834956582366999003417048392166220885410279687928604051890288043250444119154751692003440719929154390233676491639380732875888353559550006265016654798214198326543256103989855384353676458319253215476279664966248932084509042325158069483123520816547742363154867787070107086006738347970363708470952306063790659804772634223243074054446767498189298802269296633131229676963259192288751758804185764106613669577335737734275938562138950000277973735900048284865616906054254147071172988362487660536730494287123552689656451839061807105358544509031474666015905837662249459810411290439192471236215134147510127932633162762147254871345464586938415899802368116589605749996833135023906747628307097070210617682675411637778084746836211010800894850214146268479579846074891858847950906700791061739226317869933594748671512574335245362952298742648287471598209203074452955946633947224436312289773828720608485211179340380073195385160300016695259503141460253157298552624696887813602093425327503329737793451705853647780209051391579984793073811628881233445938054098579383387320545761326615921712795256329903934650354851081135279259257518083786121030741856143887953684926153109285532435783190515298472861944252132048521473006086459499701978976600141361394378238273367683978435074534712053841242402322193560839454701991482857260333558801818278320840378176017380482101941233168221442759985259726317969506531577105592935948002818471289513096688435310852437528639107351027705910601161461255584593746741187823526032843335824997137161509657919663412348742424433779730822222858867318192755826110362331342373798697011763136432491520741197319779979348964731169071837770377299925849051064111233712926318892874508268363916879315048258929030759456950830083521095942582995977308167402232903065522523815100483129106562495803610558718217938631313099354688451988646924202290794095625495142208840030725424279922221108307600957293109461456691932747129878112997830246762582201673784533745732146859967028479494064103746520736282965682924566596292375371361769955528493870096611731833417438947667259908829669296160372468732661084469915296985700074150317031061399537682940376348737550771458148275415805339936621406102023060873358270756414251719503877369893069899522663398242929860250759839976089690382581272015730095093731844750035023288984965103236152364643660390976747545890453294456326660510274822080744920991783726521555638381365231188508216530853669199742466925526238733847290457310819656003301500573337038396176287678858948795893990816820512119459464219238162301203273236797166971703926483583045698717261320737596004470756269370591366492997334001531546250763539959615098372084123396327905802200168177044987695857363074021333680645138275274326063034863299901983691081183185868265843554505505347704974050098970129524969117044498121342937927233859178784616169164505959917213854801931501357351621635687687175429409883791123357896947628163026318114321887276876188157251045289889202272373131283611924533023130860094266897414223422834133776517825532995509530753910327305149260996047110748536282666679442308421509659487837586277857856102612176612557232428082796450445739783776857701215443856672209304461706326310364796262988589995581471450638688744122722303782077498891142922522767892511350543853195328726819696712557601536960605998621636010999589886348977046603808901145702614804853794390843367072214072298057985186482212837328430336874254716094601276533013956482320407294829507040379603674006069417759380631834727343073535162166348198448803585549250689669373576489805290617807642353172805548410069106321691126500899227016478167547195303504359676731443070326231684866775290193367059122177444932532782439053417153350040695239659876960124604611299781912061308638052292711944304155000075516715045692504651151295276508063683709643209651614878195635943373000277256021200233645675380399517101759641053441044465022845582117617483150956163420440515142714809249812776495349219461650620739670243232135273550835751707900620824374748246327386942679636803519988395806325707370419873018664339028831225155894237872437868012653655734342593351960451405104267782762259262333169237763457529558879175137513652106058175031166698907563035445263742671027751314780856690832694878443272432983493890020769723028516115711371832732259188789198852035734643598090791609073639853155160079531300320109527669476985945307605123083950582617647625989749984321018792398015413286310966006589857948664025901207807676909653974332998228796680337070166417672265671992876724019657522628381975136116804890587040274252579324076540361576116826249956590809072844973172983685088261095597466830345818955147868665574412885527907862880750422339611814723129472351859418408422183188280406380345931200236303652471906881451880476937613118912384173217476426825573514704756585750124837741237248257968715422405391309870830712553389335170745403743827758011734282140352844407514198906749433530817804035844833662992844085741664567991941732551501807504508101043644375640627168138325532874928497229382144521323338141829419695712363430604843951731635820813902015508943781254840290063826430523356494664023244461436282030064271465910659347774066785188887416627177845847656995696704844886361699679270739580818701594327540790239700365562162852389877057733825975740682363304855576527047293009531156906098275348298233268265888919262710461983281208538673451145093983905004690759326137761532900920335985357997232281703101328773125774817185486276284990025419600778093257716131980968269548613864985740377687047703111620819346325904839038779093479986913088277875900734127952337392810295516027477971122548622623101798031670634201492293856762034015521145386244576279072814001144245528239407176487465205611748855420433114828887728493823763016893948602785545082433086011591893812487826979522211530426740076231469807458487462304457428132025786519489846315928944229316924603750776645045549546282470157164638929086675346548550126931668933047183188387205363131599129634022741775420258852720738081017133974478413560287037158532726012181978256550531840447504483583682479304305806613601418683174259424297413052529868113900567843097748166664132473012194628496590555897724169953399285515523496603549486360776266500047753277922570721544756621009118102172067078682098268979630825992379846558792349514832695411558525379602653258360044425322963124173230181903294908913213879499302388003493078580060424391597261996563156029807748957903583970719942795626829525483645672404318004921452561561657858061257808851652808558125354701767744898136149581021745200293668165506418494198558663071217033228421254588012059439412073650323529420144146600084409147828267393728340027901144855921418187434322087207616799979045725772746273613721203480058132067977898086126340684007489085033932828830080287494335999399913350184099737630583598823058749116364228868503316180570930922383079179621855005607722198344001273788581801969820434664270105551346176486030010369954785238065306644069398654297238631594201729624118905273737249141688090435405300503872923478002109548021764131591089672873172499423087682715585078734452699707042753598554710827951906537748121085422337443359059356170771071646771973804015379303225938793572545880921403040896231012492788457299138847426475494393547467186688553517992768002959608253638629403773050888484357511708607676812224389932897013218421353075710410986396339855766185052154534205505972645508616679174003768690989714397136000300316933918597108091195453086252872312913414059144454943161967190935932103675119372302977878823050906420409326792305494807757285554645702034761389940952445535647253814120094194723050526614909338124903234915461731076319458873208892624766269645450815607446018650480422722740492699575651530194592538874335509298356369165234226726904425829272655170988377290228355752323393910452968076865705171417517351405426721094079975780229699075765071778283714128566544716399196138374446380295360472925619735593634709552779453144922540638769104834849566199780388376365496776870116776532891047504711566968651039235823516087193858005204298241633692969031855852015143933524792444869310997533142596718580638728875615278863673435348276215584319945291405065398236424377705666813488467548708386720063018577910966034504015960017159933331692101155340424750378451054861357390700850180469110035017578197699346656984391983718223382169771176043414978174113184511419441158695856265808097951337936165635368875525965079324372208777028984073072993179339454780872559467707306694294203617306759115886584048037709702575224858430921991963896197683496724043055048488503725057791762819798071761834798775611107979260127125373944206669216592338997901419380065705531886372144164987381323518268605874392425132933402315275991899702417761649333033627428911740319886196858188466522752344817504407148145641790113664723921651965814649798512235669245241975058058311336356818792763653012593081857534588238776778847299446068995039048291544369398705773302691206894305050765582570918838657835589604285376112640595466691759779607366701152222530071049502983950728401278994453245048640690291404152367283631489112221596009225952694618503774142571671409029222461760536829471953073088540455522766685565255777167959607799885768837721232869495730986396366242843067057219350101539705166980271678989593665112933358717763122551402574021382060050242061182571080292484886385835914807936162450623501367539283706947995948341911103646957187621240217743985632530979207339984586157074862929831880563353178584804229099447203521762037609075541456770699117312585724141065752407737260768558731470106613635867648559598666139293068560932946080647124217904979074583581668354945852204396691154134148302848170226277724291065215103296166694718687151265687221214681344658301184378665967301303533630215508482498257601461285929096458993938619326220936886671934176412152194977817471564827970747855914017880783272128837053019632637707406964864835879006718311264049214878025555150771021726694719857684416996242732745434057287643659365913900385247340388303590721959173930205012957464084061979448607751158606518607665365798970610899128972113822844991330448083888108128286897271294992993864368343338998499554362721063753571618627302118365387620442013114031614954086733126026893679054720582796211131300029867357866067380503576909144421950160347246766494675147483891586555238270180838278834161667043143750413194997247229516075475313718086747691129065397802077977489707044492029201801999506810666001032715326407550007705712058148304991006664562888272817324670867787107703208596758820030145449085469569329204417328276681839621466134086087507010116985259129098742373250345285644625067117887985246479276231604821299781624212527970288439486094693693792745602608324073329121329937804707155377909954741466828464047378135689995994163017461020045956756367358056858507795942339098949812700112495779578766552520471557542823585146945880800453293642851689381202290253006869919263491200450980079475422920635479410586118186233168529668500384843412080819498871975872344131507753083607556097857697036498729218349951146261162557110586434581094577501054196712791855747050041283025466298099680567438730070596493168265770336441523699655522967018352337031935006792749808725084366742584947997845676095214543814658981767542425471743939420543259436398340283402707531385565962602314139024280448574252484511431958584551974355656157063087363927911375652461405730157620207457475434170543737785498625177989769989235382248527284421162812919908777073872612271701792530188772054844332776415879270169329714353513384619846156379166697706754856570383830861923754622182620992209566540634196069888936677595878841240503820710240505837829048723696080493935536616044369385755029629779487178368484471806268842098950661459825735395988688046831682909069080219679550902063999410174784672203733291535278364339276444879239001641020653435847823248135387599197277586713101854477150309278298009697223701091743629287429929157769151368985224432612699075894013855154605096871858894010648211785152748639203532328450480987889579606716313675255872633970110717553970336883009094246563424143319211899949019437200375944819760769962567221880293651084898133965995970580384991797594438337100926024324702517941598780342640148967438593823127816203914747414497951425891523082312279452443907716361198844137032806477261390168026243652526296516324724821111135295230430867139102703733460471850634380050495037373669131605872092496050259291686015518391177375163827695624201349885965887979319116579014785264936185297352681138573286409802833617129855781962727263188110526444960463243690049718532376478030927424653353949749183390451498352807066779922827092603807083205415367816753741127359390979361890548300266249241817221647995390809665256534935754674426464335169861896925231249337384250759166123900442565448452522325170341879494519550275513337835636996656013755449972505884451443879181298891993698988908851799398094716113703321110134532277321823524144735959024970629465240306861996153756380815416820999204450380155872105289864660362654226114156865967781408027478798975889475125299414127050415056755718695131903341334864883911562472534467697485411649586477311319297411653082677456603066516121266132220781386368732529926132094401328180035715570571631778284490151908288818949609473693669617170042608009149963309882065450925285386320729691508142372968697933091036268169665165655993435851551665225207620901411421144142472609673245537088115208510334133833859671155426048512472258846166174905145174423487240288526947259210287575011787523457704948727089333370976089295089075037932118152899838733662801484257940508589819494131812570069404389802917095433637241425177536522405106272297644528585698394879113511063711532513754139286616408558056810105573772216759702614356851262565960328361185815967025908274025570463922605628300514420283055874585713598128799028198218382493455599959338212064134093553905355210719405567522466541044517762139964194343590733108256413706779789016204900219960753285047158853190135516325008073512676024270068185649843071447777354235820291289980952636092933819620968182442436822683228940821162557615511474010026267750118735289709116015253215968728825503271393538167834294621421443257348788660656835605497781936756397243064564273543230594914317277844441101007242442544210349339681343383594827810000641777310824416238310743578769810233236370116997564307795745718227791470031666207272011175151554413949513842473599562911491475515401071919556050612707363808700591251415190247383983409206992588713601159755711930360446705577196294762248874702282337384559517325944003460793206726494500764330199559329148463248266010693255053087727823943303556295696142891581878552429958829898304481958449249572817256521635724657009448602136887244349881372088457412012276733554152496506813421004265150222552413247005087999378339099993608254739833615247960749446857990670347547175664377120031258158472046296946663529974329866707212130839085391718748564285882759775072411089594188458034590694352055303427502005979453031755218803532411489176984162779896936930448201997613770778882601741894848701383634351664301702324395999205342077703375610543842216079550501272224449076639301474958193030739890510841782607487342917112197190788373231288222383923478150270416092375251725948505079860153794996710577849569424437240327083673305815055215405520829347360925803930475932370000855234428272695007695214279495011135999276451741903254907191791804462866414778673967671015694153508421221413512077210568155888983728558607782959604973830883488417584941039083845740356725774171266993286169993613269850263596949597520297575590893528297800419642179999022873956733817287829626219726628842675835520635660104915386890929791587256079369158681020212675743323591306643968761611212344461045495869513801640711286589856750452821239759322955635839464308936013249821499966455736932317791051438318245566219493641870287995632275467983441704035119810107167542654692025002319181154194336099843712742488179352095679265941759976485981971496402029861510018177786476704377807215817172844758960980337866172641868950430399287739811237634619437572190521118304946556740536917160771975355428568161556553617871493955959580547933270968435858354678832709963028195366980128099901095481688605503781613374161177790109349326393853889759151362838325375535582024024471522864156128091536947156266980908853671196638476711146462196842007279609959074203947837091908104459224570679789562915029005189587372726785026218943207290811579139582213605963988183706465414115927735394883694508803121040125287250203366113943304428805055123082955339166693683835281262512918643677337367214532177275809818355784871134654043621778504651063673637873039258406671412818106736927363055135801134457257107388583334540141108761568602232434543576472050118895930598423529256162654106795015358008533813195086908995588152519661058113976354857164326944993070585143008751810994936835666730089306103052496500313437012290191967440217630607804716458033752967299272398907586411909747047019698910926928637636633759118615474733707758865349249108165243609209364507797967218239126326076469650322491151732441537588019568806773805245584946597095605345869300010596820711270387419660815023594536284541721294940646568425865673144348548336802481701728830280644284630379116007421101813205178977910151883573742524172059577815099614594154927962690699370842447255717208704666979214480441980736136492179904114331372098409935649001239598748147558245877644417173086337611960169975995022457547579142254853621133064006940139472665695111985620999217282134064650361148818160565211618033041893139492966253168338402488704974620994900962769253710464958548245365618664365368541902970294682275314111489098465565741852417997871764973760814881119344563876807417658185269286937294181116515579646544320488227302991707846137143990142537550451861249663821944879312774023382138952682082498380132060566526061947133838554019026108838206791372862022065506722778423991753040901640401795095877328897292085980874123076132215782592445543158390356707839734500241769865237182418122463853096376262942259946236164458271557330703662570214138778645302134363016142347224439401624305016158680233900899717028111241007353302322669903514722427884278020083013470201190378628662139997422383885149499090629191687346823763854757251924327596018326986295860261146931758865268401541151706547108922095720752964420103025552392928670376120268036204421192152654979934078551225036017429235435081681807183249483051800104573843525284200217489055941493805340667304834137728143185635675481964559594697510857818387315484285679017541806829944684261843401895733829434049917785476948973260894254120870307844283636696946624530380455078287808177394450880729706383177348006344146635630996727737410338447423629137492941503615879242415515861579719816640678772859020456374398065624904746396810579578370476138944293116435734943403998300562468861655610461916314317670883736906136067529724901070117604963590335871510565972018934622565530314563020234000462073349319637658611372376092964594521528609594223520005338394865938557150057184889537668322248274918873205659210241786833810289155362350287802485978638308941983989758134488835346353407835786446217116735346315527611169056630709946512983223258299507667819774281072686640883809902562421559448477122836193120750125203944901654403263710835774267433670146150740521983521317655179171822873123125537794581639642395633802912937746962477045956214107773134413018568695829378688729463571683253519963461174500947164320937858477967375706398490521856077977452206796795116008809457672251114013812685161212307009585702352043091547037199212067423961090574980398252949278547206015924866962791349636506634867448810828383444043396365498602031965175712330343554939597731243323231766908347963942635929156921792756933229254438385767953455837830334721081182673420072239235116474626866643099379626316199847227330917349687261890429058809098886791651809233871278113781171376534118506413885605852068712548670239183575222804642813664040413236623218513127497099321875124746651603664887696259287105500248131451928580090535798610275276145412000984562724755308781624647249536012820689618272652826109852757020837632553430648448101568584629207673159764144535493748044278590089087974773117120421075510811984753274486342981251241292899515699438711506197992600512785664512873456300461647641127133492338818267969949451251794277966656430796534797380371402142689543080837996909011116544521978628858891294112689690394241991118110477479947862516178538739786969009135560885606791472486632530333622150449875658564480796360317194221246123049960700488045397906131727409975762098560345027783714277625986909160678653990596290352378002543557780906747942605759191339807769420063133130325703900000071751760805795974130083170824515281481017528931382384478969139881608488856523029844277124481438738031974570250006458792258518062059081087208670391038077856711332805953397974231860987214684417249538899600960766392874440819528015532211226079152101667536452974682776087484980882079436608524711645369033067183004520197577288998593312716348086677952437266675493004240306090775112263598932125091728797068898005028692531187396390977312303966152674450571819348943318624536963827590650530774771434225043514666228644118761669866985942578916069274741702908312065163858762212177728888393235329012904450030738159287890590952542676755159123922451755813938864836081389641172110876665360429589414763366674322974791066504271755702712032948082306110856391383281421626457236502018838210189060553247491705614583167504447614707815431519040171648391666222610450385849302171275252565611938088525608199089737906321443154950851313566374193841050354317358352237993948598470324767909322304335454921034069232226271979963684294196244034651288837611042614368837010267133212081945487784836354029825148299094628887564844277899189941233177324984768528950605438556813218776071382743574538563687787274751607537714994519437411542112374797033799899422019395634116931966650956339780640053951947308946206542355752282889664445074277824534910928468529518866518006506792884291728558575869691569962397453809963216104722562239485392593098981227640945392797580657578598651257750340126731331726502391640663098326258532018483443527239541495987714419327231083744077593490158756177415179007100413390169054666018875338763784162882606404475137484705754650773408622393068912404937290537174156103407506904466257991142612838341219178969339739286075489508282806974744111316231617112638863864997451562922254990760388609425439669077524760897135582339034877201607776159371128537139270757061767431549282864235788816881687797182122705534864087851988458461074647201960716136369403115244041017371159626599365348048903753833860269149098656747660345956238386201552030318730355220252694914036297711121868704575516325418361179992112827274930531720419826925500129756386863246418906860272117651017898370141797777756455966071761108062567525039681382544074501961035866099861235102139704914019744695062032442072488425752342451085593127696053615732269476841619064809130712653159165482076628810955447415534182149190245967262914335410260140535283402847249726042130996819862313061990541864201579298434182265591508288704823965046964552028850092243428960067720665501444286343367123138087922356801226664174824169577898387903783736821871553017970921841738018564319816139290285035991814422794204196847762113240639731583382561506334903353004982705275777128475543057107558265093675511199031261049384285847217026479604024225318189283065423117579969670160725276750909729505425334411826557028309648711184841518127090970934241577373557777694244027389295263527542991350414581834779886916511869935599327898673842569113133651649946861211815324093959175458088953050526210871741544365454153978569075895460506015333393194039708076660774294287229279355586909154803065331529295173737609225422390142211679674240701480684326914591688866085663076201864271701537977725123013947075662460267257912100772154423592556085961470715402738683268127907062479054287851581814700337985378866338731163142334135978921600952497290540897334950613092795184004955907581913000932906060956119038879822581194755812366995075407455909851959034228425729391032335501208656626258997312363773962577868055006538460763565551788579012947836713400677405385312913113405787594088051310916140247699904853476217941562184461629926443987432045624321705083664218269538967810403017859095959802595308386298646876751415687723650535537220633006458394058141243332250920212474770597111547132524412084514091458438185062984034673172856891280102030898548248984720168812186260470178642305924000620108750396296964069409822648774348162290332327528664913035174078538157495958986408946352445876651510671483817033376888888657154748134670156111247698569770908890405712096214693595055193409614587425367522720602013521774490095675034309124873992036993243929478472827733640727740293711833848781526758917377554749817215566395518298387601111051303875804761336203053872196016790170518557570434694482209511426438064075610837538370450079475714233224678776758298589867068092201888884136811276622093116351003430036097841120017812667299663920107795994536911561561134871012542248877311585060842150342854458949803181632605249103310766179147844100143068296071463744212619218781592055603331662023708361448317260970815774441185283316943474798791531889529867687236679572611576181176569978091436756005615411003473923795821076018502694189903826458597220095209833056173575085360301036823809129102957204345416605168724993651836322417357810014144971099932348972964637680408610141734074411295075456946491608182116083632055724215696458325571663392202035860458419703854849275740021935711996573768896196984182663014700404123170882767538730594019973706051791470182218567299741690094101563438936968812148280862146362713348596337108173641456501070825772515421232814980338777703170198356600216341699113645687206440038942363356312818217606404388073818072721940669388684669741002715639445851124877217937701221171191916019736542803699703652176916685209803982177684484382479029203091823082099803652716499723984526724777990077261444061053617792533928491580426134733973022584431311468302892196958422968169999268810981536899540907726971023506163365621843551247956561381046872988029355846577993582712529001105234955619333142298917407427851176141922624682801487275225958799410329324225211655082598359227453811996159506248632481944424663992567405412107650290034524146986008197076707366454595259491506496083294019559385418266416236628131339779231976884688321751090169485654739942392114248390982260105787588442110279813640454261629000765454916602796183967784597397800023623616965559755690623254134051544403481931102312824277601122193562110747870989323440426178871590561809201717404519471898898627986712764414523570642884099021093314263710230838282860693629510254330799217600545437627975008338153372846874969231580442495832287893518408384451865629223158339094470287587988006385001201760444000037796673999724309531120616675098084409175868610628444140110831008996546106981795078204407133632252024528852041868293158147315070699804405813651412896250033476174351309834464646188885279608014328110975850829904779483427979679630160638848127170462709435170021372395271340506785219895576051398800299517297573867052755765270069827760523277316258473961178004381848155609041197295071210828786033598024700463311808863286183960588128077104297888371985221864341470409336900445594872650997222344899014655256277701866629109594168443946529168306481733866010869569210021111137643486520324153041039784178873428463857497728059351727523334285338456603025964656802211335100113480509722881054932931067966467990262684449947252402640702779555177211308911771304316683023666335036532139468897771649252235113064383867243203430845985959218723404964361933837031979540091815517628349180014960263354199200518267577898368036957512671279782586140690073880266588131534035040402993267896132286169592271993966207062952933307559634190616300367931023668074997763704212393586502245423340590597309372405922658950450129485208215808499313114829732141323400143434339450405710938987042904727252160711739018624242223611329583904121744100884627935022548404479623825913013074133069211996868426226680998093207130473554458040583436808001250154244251567830337538560151416517554227095647482126959758691570254493938347260097933851659166579540881070683838773861165811261513424851068376030567362076597004877890951887536843363108614716755530634345600666209864611281494948447430424970568937645587711748722174943373850338958158498795414280991247386133781714793006916413090995076912579553953104308483291456302094769279256292567879047071447202090917571777156236036134803487873801747079513720887501200921370401189271029274990362119077302697259581829608623832617860961552736476922380545053234019934234598643371194598492442443570783863435901013551856619065100638946958365841859698078279042724541105720205551953372686207033358021459846816522172175958764619023367514354843207288842071825348143518928595384836139605130080905959699607282721059349788422929444325151890335242283497956956672019918571772359624629508108076686685580765472036072728298541144035352890732499917738510643704271337006003378820655952526850612492077751708087260003355043176131601324802673431055507448811509015802636387187901328309987408156892862022922801027113129184260389693343573613079936581768189173104659883744221047261045826897914975318165607987739523291617406425907784063844806442164079489900049413930481023396903799466041703133690090812794050209311498066616529374746984041628945013572244639619178303533347192094212750963650830705266157634490091058343014796076871926296853934743129540030727414012301443734360978638016691737921441537642216527331479706361051358616009372345255671429832798928660064419101910421517661267093889830083960898751734996387153110658208571697315795224570334257774307213772248409600140702246370819145914500198563832400172156523310165182053616354981644449043289665304102550841588367630638771690718324816333573798127884718648396144369796398800606777459136172312512930664392193781913507541393630239586468330390413251565444193202156630089964998602273498035425481100959265227129144577011897120801784848863834824094521082755737474549834158919107856200950589322267150018209010939564836648915817986036252570355210433409853983997516694431048155739404547469875139226819998084163036020170309991756980451392505667999506507307410028390088702143410766560462145638166765500058927428953032561433927831661223108161986516058284455750053105281917836895853687281513337647726244099569935032044068480487947304404038778125793176894343548995079675896638257764945437090168543522113750569547226123336268712711130461149039819817079390527564950737563951701899718503800193742690886687917024996827839927711192990784672129929785994316663767267268813495966717426188608524788085175610753792712498851654939876588553677397339088110653351019103560399716047577134902346989771592183796745060536499151721677975959659528474778291180941828164099108319195566461687904952662898977012057093313310613340462221641098453591193371851077070964460236243069344622674168129978669302632218374090405239924951259225043151355057210105921393849075660493602617512747616979402672282461070005191009566419686129571258238092865049911609450542778243322641636408836868184172332094445571378215419520392992215093091281122454561325854417263476889973483993445963112023577318488558825770254302089665477550686523562518395150099285936677881675229781991380614626609928722091657011284970596414121056987851876723641447794902466313929104714974060710884115814177143884983523598719361031188051149332801420504574773707018086581803809419473426395677059669724064509335328810014079946079099740756666786000463421453459674652821220312256615672345629288416416224758980797154887477272902266108555541457534499333149464326056831790486254535666323996872055240058159578404019866991427946515327944519003109031653378415326016974853510363256283237492524153626921649399575053341826448412576098454040393873584207595120979902507098248025075575226398860529400371673182767915607594941199992840161303300242901850794014157835722167642278406216420069526137265375548478637722612661990595292586948463826182620237509741046132171292169147869041547519113597370873980607162527346210954693693006981204036804070834531570501554270480300863524154826177317553902899552479648342926443366423231628283015382910019028722249476576555709511181398064273514937891445693709290717680748735802595527968581326695588786619796086504306544246854600565898912740273263152606967712001841565253056790446462615888000795958221472990694225180676410746276028461660455599820483849851914562190659368052277332401303750081676103700715268287464933039017083999792158021803960597293040652204573557712365605324081241140004804272695206280660928110053549839928815897473160603410230466252495609311775556921907727688421914382291965920381087258770812423510928596525531365952006652907914197286658803098649996408569043036318035048148158388865309611808088310808917762437667338659129048968115505551083748612914869316136481361832977721124417975467842401698798260219075576566002116845689871500868798701745972440418035167147598840010224479366345068636250188085035459361631033271351914381374079809573685351435277363741504035832876182021925816949068238082890537585009560317090374672745395021028665893718922977185825949960618955121582751608511526394844993967885519518902386021889833370822263664093245223715931304193451413790983952737053990505601129336505434573045601335471550322256921752702600426218054744649453797918187901408862634956561735692327743931509326608352044019844094420303644649136993019212085744736632491720701420751948413289376945116728235243719021863796292104445325763307840326411331665940431152729501006108518368375382259726919152639042028837494387016618882792742109100724489332940636961688750396101950880782227291125795976608699267193573919488872133968410109012938068616051836819453140471272762561919894609868397426116220791651912214981275846290909366451993705041279960309504717604571834782478055210214876158563929434136455688208235697906117836730950362212476244849552367175558539430878310265462915327275024627146916873384259489578229806880815952259123152148017087516800848308132433149477517906243166861699895265952034996058819442732411299571153572119650738977485287981171849841186603134363255254266604696985174169575044352977982073535609685339281089573993458517706290505986865030751316155124820973168909235296801845748470865974308100971938739382510435329347775646813878905453225378645720802183850645841189118819398414659954827293004193759651770619598649056353096278613779493929648507775485163282243731767871118017840537472931897050665437866541709339718580210654063626958576458707037205186492718483990640373443572357828091696472400722653137272493381374137745024714972135525418278803952723688256317578443510056884983423375551927200766424631394120277691300740866241541068725621757921641582474872850662930417036183407749607151738623375722554422099279496040247827336833355709148449224547219745487506853845913607852326895940060417898478857840456060162306148570052610554448965567384812784774965924081247826008844934034205692188013608191022407042559272225445258913275548311301680697629167922115821768359399030164744153137703949526185122834303634655198952502149508705075905496860813300504030975630180432247042055978161269595929121970670478597409357099914447560123025985385345527779177908763681139327688220009774734727246360729985527149690212882522620796571099847152702906937582578537425677919010616018983215962380313570846132137091214439862305266408955022897342881538380997098584316309754428347101698453997717980210316373292753100720617135332513347589368387445537615163377202029851650297302356900312416363822506576683556924771949919921565575320055396270710478826098304688187278069830235833602052906421133294336828071080148944956827254420553032428673493584677293789493638541272045855776666150320446783861861723192447345467960806874276123697876700280034537826440910648667372036664908305724908361180754007344340251690566628821861002598411816401380634481392552508970242655280744975525125501232589658609397073693692341884652869012607713803059755177565603164586748824004648930465753358595966589026932043826748394715956892600537031146716659829639495323529947146929922684195082480075888978046800671198393876259323723418643892991352739953564576279311535212542481508249283657878392482420427652541295378500698653242114736279100757525829912410751620645567302926489987771161084841099901358650957989355133549558742653039807326369769241734908566423780745485543364015494197459632485975238897338584209362121469675046303213738076696523678055919607835726607045514648320830059985504082081789302315136505455728230622399567718195027961778811642466418529112181581104430559979555823841441901137235075648530718173120882442657096539304902691042768705851237043062630830728582909002269255410415419399848805933416894210452962472177318409447209028207787645225748273086427739190213443207036861385492741266304926997063313203158105384484743374122550229560680069424303448833753505396831291334259947092401820981914440215205467068338168413245068055415105034611670176651413465119492054072298678575760589381453922025170407661795804141223028161115899991676858754371012117100307879528439902678784190663274430397853389436071838576338397705513705110467530218232759705746901283405772012289462668706753617363211176560588553974613628561543346916048242510920131865180974158947668229589665078832469909002955896716048538368860349894759941312224333628867066804150679800405607574936951796341336937305316301963679314490802871321258781894088622642978710689135941990846719665505487260187591479141663391400927024606740575517210482598089370187974728828868162829346718718226330814402560984687705512106052266132289999839250102167753833460508605549314011618684205694762803684315865930140683055685266866261891187113113363742517187627342022764786112631131567768586875540189165922248443068510685290149553730809871003810809388845722791654092944094556090837433813284900758699102050955374886157889037914833195690121840759485250347776923125060686779547460623133783575488960014368356361085062908822626265306134633770878063139537778403377933061723061259204458885079125291402043271181061489400372488595715033608966362803630731074023049081328886696524928892495681906193590270341188615455779366704561750732682085721344674148442078449499545760554864799297473130963181890013651112687613619177737748763506761461952480422412051499446641023716955858909419989146536976742336519936807840596101016600000059724411275715707831632146696600879807164597078383218550716311828520707112746259132410822357741276617109755185498892125542771421404032272799907426997444197394535514605028816442317445632747546064815634688943666144256381655097927202947553019552052255104834775652839296140117907988465696545619653793160720324990249314802649414835511477823081866093981765573833503696056996366699712352482352827509710847496063159168603104578911687923898550534448688544539183792343982840616632191009515855454765582788187237353446150812639448112983481871492968009690640634238502082704027139637428643276057592251761282129713589275550754777456802267753580334986211170519826415486586809486178726858022720149946247655926048412073314392260934514632232989126720883971923626071245539638755301548036713430798025132395322644412470830113619000952336070506646082689031480348781772710016590766734370216190020294429324007991606522729244905642404053565275914571898657720820823943621634660613805950252100104744625440934174340732982434529557262539241520786594301177272757405110003184694236780015193144244495694740087578973164389879519417191606782683078738406308189324905307229098515322505220615318975362680295392451181558609898009853942568919488682118028982851533864195243654655133171812782063143179292939026067187853592381402406295197774603165182514592363522188143235023858520601206055121801760833498233483298300044787990343315340264739784431698384424066174526939200721087682856175063627949670990227959225763501053992441763854903144972887081062862919372949080636793902944923814252461176012059722393143806102910057634188160703550418206823677459046314480122738434314499107706815512558138123429606883823358720509568282778743985799057867262313338463055943385674784658347261100100936755250426202159273933158719313808785705130458157818574247206864340141721320168012280911484919861378441703767715500823913564525032214501164769034293773574146429644701380602528868721670917637790554262679961387414620588992629212540327383200560073033017104187166215738179637280731490763018192761910321569611905091680499365380164448611351527212859313494832727565377499663521535319739510946094685099290158138423542106407211428666462247496651661356967813218835809001142060851191644318927455346768429350218659707926863020080719195395993261949958344870834279110864756867502497098312498748567845972682010935658745086189972097920224017498765671495246476817224354149566803007398627252422364352119900766679287201821105177440626418605069977432163665405186762719585218345411456478156368829684145022414760206265278853531080026618527510170801978005486409453699067778055925133222044940637793878951680421902994636695655821220563448937363838865201739207330254638867995534567783071031850149612992747593697752141652559834423885320292434471296901727381394076910314915812588008426880773619058201131481728604632403844260821455789628264569430261778750959677253164299303758269083149388282187629492493813225075179279065895406652973572386749604115137346718182160535321668449116209332244082955043119470609721664117912469749878734135130121729702107121597159948859549199940771471993039570943434587176571380935735252905651874384506892146840857111525826412373621340404040522641861624577754716532320297669575964578815604519657938341652189614736038876313479099813288846308267853131112072136729939408720837622069223540087137595642372017498271280025080707163497421266842184732757792628676416669025581684673070062307451666795218686944074791660134003396012313405075851359013480196936095263374924522439953522454352933574194361658240780799366096165895617475030180143218124804761172860275232391186573107256789196471214526818746118057681668855037348830564020118945128223251172051726242019379381164597932306659028458295352917304462533872588636326589259877362158454356463519827422486263857244016398022908423570740433714366575471048712564443402052881732503932451737308430816594394097715531059521555706014512682399290794906700005903182621224862602734117589407964293494719329206786900239306342705881647023706216608166112695861149993600894621952307010316438844166384279873073243069954406832317942989240998601872970129066681149387650936811635873548530445330588669571175310515907703448955464473668829869808207653259113219670492044879632829741557109435379689781350489389662611390881665792121845675046337676282792462628586495842061367022293238469602326067362090169453436623031433296678488660651274373378570361360057298531742769055611278963899977483232120222861047769189549242854952748776924818124698353763889017569317344259628258419687297897020220097055447391958670477468538671633223835665690236569904950266069232479475340810060087193590756616099162447114563329195409724567495597564966557742745422648059943046752653238717797233770655983987352564178954429979199971046241733781044726079277628766182954646765299165094157456166762583499111242379103218414963392710716896873900891556345003260544386319693484529392411830625783922339831910068019233817280825732579244180168318374541259589512507680242254114691812694956771158305043024294832235105528864090340916139414774975764925194369300062668004088520712782428678310501615625412184795631240160536762094008257765744610584061952751864779613679314597049615333266507276861380119068188416362091337396318482784295423588323700529168608481007315477166204806031546776715459892370635403691556948126694381414685109001335362650525360475693656203870200835631069830880897744485653233515941297846843683348346903358527295910173516951702922169246329173223695843164417142740936754007365843303595809917696133872603514029019176292792787131236713324245565838917014420185021815018737917911473316564348593453895666823479560964848679132463199327057082643922973887747375915635624831696002454231317830792467041742805220396982361236015984865325251009833191049269860232466853010699136557890396651362606782842186796353501037169713592305088972454722365549419642300690153433623892664425451251371711229121082565572956686023676947887255704941197390293394832673586297159558917036658136841848670395295255104103665408601547126709005105993198389353227036906865753769307101038871121069653952108000314630269806954802107613762345832226784130870781207682086502708223636204552070486638362385499061580158066468327701958780434223802434090508878722103579354108617063518495756821937860510505305454267437465821755953253407791243897749941207302412767556893721669132665406980868568118069034581047510569295915173338214060166902543836500654527399228382231951727233874326947097735352861735188382777991117085032708878266930251159084577961692944988911507948070731059859933455331329762750634529144448858811921483348299366712593220876793976050397676765641145983880938192453816734156460776090748143278539100477306355418966859810015459582809568702328007087494694324152009747561044851050137085185207781251673581438924777568084806674532217120558953119312534852692391047381019252180752934577700832227153982563357436219538009903489214424852043020469070649014928641116179488767252935653594248687717653340130401438762630945611849676916202806842349438183058474876142837363654478847125634573618630335731247572274330911648636913311770372753065713052040249361530151014220890668991157081865335386219296539848203712493203246183189701326687710070280735462006126191097472952128805750312958943134255631502134201881786817032837107447947600985412328298619584391746277507162732751293387993182074758009911658562334595405911258389919980177121838051103346005312920529834693911492442620455512612427150004504501598048796736489730454929780742854140057000751425546130101001306151803681160496881475641549756987084118156218109988140395940533031842167041267476206296531760050621076423455222058420669187658883611210810879213928488766943650030394072979003717820231542892839758479190706701934656175310476929908709268989071886724996594253645127543586039024541695487479586883663087490149554693642890085991641780100462520079631999933251619263637736385189408188084036494784967459809505327094526284736521413701926787546211496019829937686424566230582465593458306434334036146478987447449382026952707433905781915981551715537673759437398144657929181996998802986833617251453113412535198755185352239537626297183513320026479810929319243230684398469534533442605047786846765760300916950370928832008673615635010147829740075510791708911004355526538157006162266031989391188365190120633191604963244548651303800425352722858085337046844068500239421727507291591694557327441922945338488649147919352447125608463408067063569183301262333701439293193171605182723382755000919932237561996005866206926022182151324630162043692017527163145796792890505481436883826818313658272805120548795034771916739470267617895003560981784341304249541321075002434783107850710614256029818497020084704457330809085860008126358814082115547660676794280341068281392431460847744301590723726400567527784125776735970705317671346730752611077152780784656058005100328337904644709789243380745377756074258805636298092087851530622613784339376826472894382304419219121451289849165151242333119024431768303844455542619007401771837501697492344404260396637809243563859442038828500533515747680310662940578185107847491623872573243507827172249636985900820887382565790279430404113777885093343601574995255217780873219623328239878147876983024922916389928816701460607021026374288231498594511122983057624860158576887712063793585298841153586364206621308568612027645820727146879781333796573331567499068016746349459284955614374648149016191815002812644943649507271143619510081780330759916857427836542537760128707016308991772073419001825680537945221762256612975114372474930105396194674501464567675603521459173928655791433997931744290449642439337120137478008804509678475150146409584192863808848786971101651374627323419277300148072108911428284805335948073742896198146955525567627929048348698891116063641146263428009432909437336194845115585493767298616383974564269873465458505165101318303892494034668267648683305421433273712867017082724626374312306212445187106703811493040234637047905947825147506342713211454638660966391651616427537143441300617700576413089529914712143936058255052231257741845902472450893056410111601282577675458768135036340438205147610623896107757782821179031336361971122917326762237392028258714472674732058213024267139269189701880592427466442056652416039028638857081457125296321370296947973377934623064003519561055941555378372843761246979856969830880484225381277441846833922634133254318301421051612816392968712403950752111955105426564541911495285314251019286068712345607766418947270511974465689417000208567058979105845918574288880141017525941904460677555457585887535990038085962074634645184185878881920819280708478830412181691954960049166839816606552972690983623093072845317618005888392625831336677046997959105525545697091854692297053055567918449713862853146592414632112270121041506071036834629200129120906057958583003644753577700077751723826274076613595924616864641625388747393835236710070754335186860961850571890947841239024840968579539990456688076825652910168558673881667231021382508313889517167087423125425342441974352891807335831416424613460116914941929385688522200734386827620050278401175477052768549815983266340413645485559590336097807359668675513003620201797991054939023186495686716396962769127868900203014770773711401553777586151016032956567771851929835972185606309292829316406705495449531177090231509997064309542817426855646148156648695433066812904197050706905726221197965320454400992965388360384862095437493671887423297638740142830149400888619627949661619989225190675137285280980261410762989910152260239536653855802032937680591021132746741932044275619391068758916781150398553517678173069186382502456642854662153256156966551081319263956964842909857233030017506537581746484644007913180345691002971728686357323743863664591942373737482066497970492451854520881495697748458600879915719685725644445070791359022723163541614366535136326880838195559913032078420939231112057771884335736717236677422495665535846732400532307117094368574142812681708457209889189318270957954589038106002379751077303268962161513621453549199253029069167788838502838127946794057223260096545218891341741588615517129593083050565417010522497105484399527682935176782698470000172767439552206137664146644091039700819155670349266097380569591126415254491503902241518262836122332414899410936183292518198783183146549038399769412272693740912529149443315373615237148951388118959209023269338153060302571288603764099400477198975189939899931016593190794564700159713884981353148637614302953253952922822437179013862421800562710879637373870018300364434063255900481039471932829398336311171318138094659395481630463079880356223105342073929879742892054318340370028508736793188352704121855734627805638556673105767276199617831797150536238715132315057280610430204377019217528887208872788412516414451914099393385602045030166002645637786545766530489117133585709368078217099724591721733520873469215689848194090700729503455938202418690205618116621205115015507655966720476539216400050696994564247057255251024623887376067598412232387500191245211994119930328654072684809833717613669848497147219714440653600514917416842107765734522970599394480699681730821723990805669165343336803493142157931127250716518189446588844017441787791368572644257100092370481213212249723986217643605008292895969626330792649550205991279801791108091982721128512982280608078376388456594541254381234631085013981746023904949987464542714637371065043917575662113460335053247948368865901102814662228715254225277804439623708019108507683418624602039713220895623644858203624493212512714128883873401126005553155584291055978669913478977084344720900215260279306679898422885372640360245441670680904244093730491949362239443369246425548890088699011069972539045199355245756607428319691458648388983809053203835423839324053716407878258136042214802648281535001120032843770633555784019002883768660204260978517875033776693862260602882729722275848982581833268985779246252260647603035568496527978812279668393378533921041945594159105946576580599351413247073903488052159358639811984347661752797700755694917701503612595586871677314803358339809734364746611033740107773211698012425557342513036555669779071294884498577225040713561409779527940665714683640351896244813588201236408491369614635929024208175373885296107596101611599330735414056231245664925754645148877646163634538282681544488706561835694689586606873197422719477251610891476466679560342744326647871625617504312875611746967334490648514545227221280322952941289359431000427117321548556148274276392668865764330976508550983100470205511288761344856614652960279875620716217573732937123145392005074744927512730911774468990688497176906745961783169938308106544994892017449713423538483789943727122443229787256220094964655345289910335067882528203318434843302330725155336526819063482493130500635172120412702122500225403436642421808146231966850075008055272525218881912129099247348999052263232263851293162183677238662308733667372360728664751249733365440385405997126837838644490567315903636084843276917808815554617756170985925922773902740661910885600990937786510667126800903787658443656779776009309174757527940800399432669376651024050511033774148346160743727819234783651148403904179969752435307368531733933625919785243930907739710238417426398729776874936872996794531082754426326286846685880559339559629851594700363397128119750614449494205550018522039149041766921638672540636927347639467237331349330793519694251595995890879690245137757757511197718373901969151770187024464891135416633762881338915496506864435568537620804601944974590415021443319746178225739539344578012130511981575083747492436095195526718696700099059317658352642768297254222410881651720132491548943640289664598043701679047471697733603103424736998865306180842134781517143535111492980857144538708905217199250744714838301746793299393965347157647912201955051454752632844528803584014413102406894219872351296466269928445243893191512572300322771967500216711861438372099830751370189793842683054736637332926081599066650179640106488384032425497619487616254740481583291225310198685801148540746958788845640351604042648326095405026172102380831823946226716141483962145017967625545256958556785056935528434538390625426877785367631052739400384822933909406404903422791031736808087318830604945752158120171866226982276518748737221635952154714825436556273622642662273077802228365214965413838036457347691710284313881660805671424967005050138102453965431856404276073101458967970318987701016957482544440545295863172431107008858154025167511645782070362846007505448206204963015840752379684653892893568745342976132595523361493350067534013406418484567115017744824802231574055497734273125667783134602370906804549843635407065534496431251346945307629592435720060237749558243583742756433816530729900048062567481385086360713539879919459247440719541776653510250619475510705009862617110974663223212564299740305676784676785041816265503230967568567458721912577996671614309400074418550489860378379303067969068905578427042424672575618792003800690698710998748243405456536735641573873320699752793116081235133057287691268257714326362902952534639210195169127635718230144129159681054035679191647042590751518221210314127632117282689831507687362400857918371049235150131551008787211866307014028121831085509544053201623538983563036367702721430684991384781384786995209232720111628141046938341177419808348098281893973477071649339961552842748893454118146399311596744166329384370716104274300480159062942648602618292334397681117210089035596319634215175609992273972244353473296488516313893089790723419830378440066261210857871324350244317981391396794814286795461233919098782747375768292666339176736169127042013215679531846873386650767280109238998360701649384765765876402159700888903478194371166226283625234113470516116854400261066744712801899688976225940793226900842905452189490342484525647667753152380633483803318559947815705415259962101639369350955289857815153368797144638121358106911059888230356329041829708579107544607368019015075673618465898352246344151829281383588549389504729521631516255907090384046583988795213182707005947657191489702684271973847427153350103546380240696797018611025577448340397579872548848715619909776568724903864623225544926671930027614586745374469292308162089248889902310852233098614652261491324910767937786803531919436325411255248995097699583045225871901678094076382363284726970363538711402426086790941543268458063345108335221740665944097449605129058875624648974293592267552332394580776524956693539639607012714639452876235152682894425799127688890057851541013702974116579295231143869753968628777134773606047923435677036542786640082448221771746139826214675197466175283141919520532656408285602355701475085659932299670741423414204244926868488109210581216047397039007786431613622511488234420626430088055136246429382882695778996312148179096709904979409103381117752459087902483443061644710493874599080916593606502310790864006991548400367721946120119715695003305458923064996714137416252173556335383758559721524967414697265542104363353722513233233997412453843997141195764176168560551571321698166838132562386405833347702700715583412057239544988213960833277343503678329476413550814364730613731351137181561328069641631412008916223549955117019173016805734633531914594682052304929274674273892582325993866364249970596120433286759347462743836448591655000248093070657384795264636515926454960286193815958278599349462589484932320189879718594006035327515577327876511441937648948355331423569880813586955521427288654143002429689368695577935808148256556929312148935374311663667943317471305622112166028547488065503327412259226610852128465511241598972973564380004950887209886737911084835216256096851026772028965119701261834394307116894472403910232049821249502700977228876648869710355595338220373664814527648665458567096684419830113801181324042552217924689328795676138593899709583161518034600821151126546040909067233817932031081490163622414073012258363849164325803516760747761136705062148438419878177822575190220803685245291000118614590640780685678627999391611670593928910955656189494186494796674573160766761878422396128373369791591998161650405535985746408390139561385107521488396248471210490414652515625759419618839878051339189845332680101671168946159365348406000691328260949815312286723479428812304799632904448125890506892386749901077395504177488259927964116629306308298085955340795765351992824822742874376214067389180993425086564736492469196090840945853231552080626526374599536981399908463055794314968636161604039914077227165818281727509149344455349552465866911644176119101739071990813111699606487845836889033939599265807656680835735707477674166286006625980755916579638718526009033666286249559620669014862373139585631806499977260771951591607393766621773805507442728874939788499904024549199729361277304355043320410334335198954945626957645675197811559312317299937046851863999552075072514525022559829207445050009300068127173808776352666796828831185045610829278917421009712177733585254419302928263455937866300165579595496643177108955096957178930604823297622430892381214429614938502219931367047526470801789254637781913363797035226066557065349501441202305634274611101472447164793207259736284301484228508725123055528235704610614187875069747982388944243669167753313817161931685912260736517116200436155521946141693936492611498427230623906721920047375088469047384143915597089883677840062338989334496358122327660411749844209271315943332322622808553587427839969551236651387982505734850784493271993264331123414974660433290280095919936597541369838089236623303226452767853049780909700058702767328070179106857944957608218549956393987554115154755340080322299920249691148791951011688910538035122972415450373887555777864840951238035234809964633847806633062019744804825580805927073715349647151404008078774210379806015327079999685737201193843671240648702121024142977400870955763955656902488682274579137496935161139708448784150767607238129840365521668345356452168535557895680100404604955635514678836168543424833744083237618256816594390970010616627084614647834326805983431026165882202457906321029792976692515185167511165868554375777058269345789549132550967464214964019958643235677380444379930701924356969373436109250687823696403289520477148189678978981208684751834434666252409027589090820880360849060210155786865926885528405427477223735738843416141086896909856479589951706349188658483718977313164911600666819005847562068489971073882339349306754235911125526410965318347282125367443528266361389276766871892517094626037203413077415913181784622159474351873747222592682848780695295412631277394894111048293211540229899935431609774753414937004957682710976371079280573574891556556127257402858388327585554690896515071369053440160416744947043040180332426994098406055324843478942139433398179614518912208819013274172498643319398009125600233633411797273572718332798750160078057686421075308992386488602992021805855086553679145395759979124276154297672332610861047305182065343990960465339129262680141832435867026221332688324010319375905234759748205469410624543654575732138406209368999421433713323161118461443254367548942714886785730120268592883733120406027699806416702643095623212693173216797732109393556075302779775119748317451653116862142956672483842797763569387991146564854108322316321657374445385614342345002755800693114921386360481317481956127369637787183209387067692880256025649394649809003530000231266379045445625968998091515207979088530266686920367499773311302100426173057715892783744166130676549136568380630722940546538735079212357286898972200598898149184085004314573566972872362628991600982437064522622199665522638384992583363096826611931995074456303687306251823107260904836494226693557520096644396322705407407759519375108402949302371966056233558735431878633604987336504812881146146859008783593948105044723402740757695858610779681193295497732374726594752089495308466164449152255906413305329300533207907111169690509701256671065057205006540396407924095011619543330331628638171648121069927378832673533677733306568823041909724064015188851720566135609191106465264449893208339843436146376424065627819264580083192296351853366263282790084100560312708496504841820967027698891024326876834921557863174090640394810288097846274736740305232573772870522637937821891001499381243807599906299131407974546892658563905895012114400066735196309820244338782089791095867340945363727842344539133406785944044000729501999553009096385491030533349415077014705141889110953899786273602116584351633339077468558261868497963866172606940425610498559219571025446872480295364579501932294067034937532386520122954657407544656810448371704568168731328103445135228728024931799929096418225526516629548043971022934633371002128903950165547827083292405732986311768463197101123423569504264843066813762344721337631359390034972187078739040948428947497266877927766644809598098794714290560702606728548083205881219846728780080349777082058084210115975099456801387716020324272048739749165257054640893297328536906029771417571047200938039871085154375045630466103249729613298415195612103972157818838715353211623858195331199631140802692970008299715448351563022117138767106294246069410665773360647940052157432311183992393673579262883268088944967658409988340950428979651957319207038775528124630495655987573886222644267935164434538982782276637802489022421919843373501663369134055621264007759458773109994445958181553595162677022405160546534632290928727241974847105781059885242260633205000582914969648693883987689811155906046568743240613714272493433088179606663531961705137412224431923522204190252505931383880827139479739389386821864373896337613728368893698903689899882525372056095616928738413678087688681683830164919403749468098506684137159701956155011854269734279828333240889593602356998972006231214419192705692091229387481820890864037172763851435544837474989929903294969795540646710894169071605686911206938714881964199915216910662750068677487477528765008952914062783629457465967775312268611448655880463371418507367825375497736337591574306606167546104114386188329985932235192262398832562774289462440773241862104599203871628172786524665911793446032301705847993191388860926743405179548667571812364462977654747019225004904416923264822229365966401736609272779902883210337539219048553130348171276084700575386409556681721437218647398558605223364690569117804878154058043102998201290419345322753633011308224883285950046938791144387835319225795588951617956416626572936246091466420695504430926870453524082945458929888809829464987239006854137756492136178062592721731239202016424602499427591215994307445457866291681214098983309208122363339839112421650320203952397108854178901310148602342344989614971447813096941920728150652598782803065662818592406970254548523097337793328405945048786063972127573041078718055271237091012829060875218606000797141296745787392267009702611550767306504195906363973323973626219875728992023178173720244770346607806220797233507322427315292457319693682898667947136861637320024825399238726207006888667220523582214684847089083796995572650660492527949665748877833586222117279307989944346473827473856299077457657397190314823225053506714542047804367242857933990259064924775225850832540612695568000685876958073357164858473177384135405854744324984641415305650133843645333724348086240846959292857221758197319146938002404959100778965624219717335453754053772335763537088278522605384357649862933472218882389561777007097583533507485453054851518578873952324006655319081056049812534914399816999684366813580992748444607262678860743657586733948088655751746068802302953872747084164348012561112138885317190603773441555905379869213754602168700344900225070528560860103783262202058569969941886249984569464278131607199924741518994423398095875750190931989187122284657154218937204453828529436087754625556205147733060457762038395359857469682701396726709010940068180643016517128445950587471694585052157417987135446054568257539991697777484373460141361535174788493692271743203064038789440027054627955654162830949233347820080670272651557981732208910320593098447911572690262544141233228264558543760421718704067767323826540831146203196910391709076114645411431060457882970322934479061007237069150682068024631556340513908675589127293904901902618122750285082146645716207438536404194366521359802249252890110100562044785067560311923751479041256619631773381828579015052563460197218176156719934584986278281137817197239961283170705256906830888001655142448616361750083466094088328327579039543541292658257762545063875194072860985015813206295479823310530413504328279345489214854177601847156851178809951228447089469752585720856044490671031259529687810691506167322771200485287953703632044037087178207902264096718148350750420731343505472397588603404368388298749973427046513106115673757095211138794973492470328960436716967858061815171995158265631419309055031065652606321500290501544654421478204549688883446488193853270794317489100649012951031129212994545430112112014080060324467263423454962450597800659625880980295217081660708876512288491332109685373718357803819159735162221423837330575723149458497911505476766269077295120187669950646789876866566483792065900639205721604349746682606512912136027856035415458155671883285840412204831452486479056506575060897830148769086268140216905413084573048097578438581367473380295220708010683770471125336530124298427626684986006231943377002077462116021242841750914318764916712753782190323612819542276436732495326174124022821439309699161859919488530178668122744343138905965516690108982326578857462774870524663038268447332196497300369328929582200672900973896988539835152639259004888668511528419393965765215985562648353235835101573532393815689939753400756220046977449483934211454880831916140052832945219932460178509790220589277194462178601917643530447959886076990118284803104614927992430423882659488080965512787625845306615520710103686496668143024538436958066092655128101639281367226897570948435859079753616323873787289545771680327982575966843552092292859208576097196994165165369175895589665527978961323518633362143179131466982346035163235295948578224512801428491759812355093996432587385329141489392310255440588565989010503373359815862811867114807885090188928620426194740290885457768720105471202666673273318168381938016375964995948757503380922249975022687452189758641912026693017248752150956030519587011341727369084566943771761950639558931089579354348067348709821812736871429156908664547739635177908093059332092261767025810026461936755575001836313033076465832783378896253820093549611531846351770947971804446789953283167743508550896515451442975906355026010326485665975302839258890183178823664555404440102676148522777951327736949102022147877196080270323768511451841389876678555387735679215740559985767662017461985116707468373592392822865557901232439731261702853942122134650699613267054827754871582302771505667406293515775708491642531872937662116557017309907261421695119415504569506603775140814374918225995021601027993276858626477499916523359310432017124540634710735308707606086519636287789073171601016767528809069801388302668786128117940559989264167209421107113525375078289173047384000145457568835231707424109359471802672609551908620993707757711102565510066214983174483542220239010222904279295887909241968108611043624800076997897882235912247896959895576734133070958499205920069365210676467958307144772922000828970188480104140962041207060330282159136690472262867532590259458935983965128937162150897028121307987855840085795637890679851346453116099004352552440924487231452873783288676521826076788659552264461127111223259551121046430468578872120953135554508013522211084380769417630020387179150341484927844867263054754042783766004357152843090662591405815731287205679429881798245680500345963188215438033822712322923267278278854476149737164757913595961142834403052686397480330102853143972881070513351185765796299779168361433784406511935074856399065912498383516136538884275409901178497856049465284901267187179937803780237833932226448100344451229614406962834500150593761563475177567712520310594100969102070579907309852604895246947704935527167568057959219930187129079612752687842801899056846846332307252458975592373323870815585132855384663256383763528718429733965100239529152799347422064863184171564395551278808601819188095086245139910255316906939648403391110804958463271913517069250677849011692058281162529946315361443910935138396922704447253009302474938591769754247608882556000560658928094139346652134286508700608246960475315065507805618968776541620399320174184368205266136270020585826442257952777854257080300737977424741646160391406678247655754246159712136906731826871216176931379348594662985108961078144593927605405029583473678043505657326724191953046221189332744949408164410343629770690235376115867316621700844723188067756310041542542870413035197456019951583980785645425018323125724375468720000921869018360373366226465370454763473318990184543932937954354508471816499473120473817796490470300964032045958794714394370968422426875594492828967187784473697062665623900462977273555297240899398824996953212785293216902295991100598238162339797148792447164189850726034688247793373845647820897611042338576921386196885956956426712389903751784830510040784860365805267123847060650482932089622231488574091000573027748971789341154422915013405522907810468030456429495346785646067108030064649753885210146916583225242299221969337413551897892424975323901540254591298649393935126050579549470299509169730656987459305440470636690737891852070638807635391761226298326096052300853412978720288974760990311689363106999762298718427874173466649940121792606862815701296943906121132017498198743469502985691176353829850468648799460513987876339264494676061999286834475362169978631348286780466228095262127938598201975135558812852693236119241930210349253959030025806262190607432179088593397316738730624428199173030919261056576019071393599935149131855646816544898192182853538172413270236214291346089027782700696402455567607993098076895633751144316967935311422560549286040815634132683518097679916417036569046535967057782545259116343625681541348771082545896627735049924996378066430841239960287174905248781457459328001231309585927115822990447165324627993682205619354140696144176882355820715952643827276770056047589060907665625009386088428937614932758074589707965040920347289771011249161351408126897657823382886671487519486929281216310752108532304601237532816302142617766578987294503697569187733848303466057001011683111880658198585605182544349218951336594245163233339614664355520233033963491910291795540243527031484299816827989490514218810217367012061885826531192916795465431156846574320516624096995626619834420367053302504937228602937597903213829902303918776907248059619090900635237345005377602913142347420362666151259632136979718125446399624648218024817906125891878617580013414984036034691115340178622439635979686851218071465220679091948477451472551940726589823568535651583339137349843823837637024197657515394451431045594873485412877390301892840429056072060561256219117973828080929228816783203841009494968736783737576437718364455268825087533494002384692376277560611775530893810838805515211933614821419015747782604273449440827256165073181973767719857851641641387858335121945641838325860029556514298347349257442391476787724355812049660040436494257884201216597154969435236979139247883383597749721294246913055643750675350161798384814012031874333444182786817375514342559975911056937113583639952071100992235864148250349158226254541821737990417833883315270261411184155897605522008191928311224210456595343062588433535651622310062881080369158778991635432493928521468367146709565415583887956828073973239749999247539201642377962792481792149273438871459866029799272386066112926656695029915352105949978875190751661997231833377981655643763366020124206880508915457189905799625182320609877601562907563135493760172123173093505107688781909738456401999844896851590185247534484557262970657372415283946429341846535753114864733165000280850976079856262187544645700425375107132779790412077782666937460261355255630364837212127956983084077919722438702395573130534428361834469127024213348729367854591340611678396298053400864429418722024286623678878356866941218444244516384520428631668557634524868985192822059246671830347102321463501207641870306240983428026124680433552713332485246036946580292155057416171678826131667618623388758010261612329340398655050888117952664112045173317006270604906463046944243176067065920190764587889229305242784996829634082005606560038886709106836100613417116803171684996289620150181604563832239575870468250551237272502607334298671866473695862522560978139203559479527765779749609594329387025841061348028748400005633704094263403205826476581736508552172232468928867951647789573074975044843533001241269266715655816251071802220922297055167307565962330099009520161533593785709056680283444006120577615052204301885809278937451856727661869147330024034975016466626274095651504032511599915625110881217818431228492974290883519610481430054007868753388069767138901160122868226477799804519401120645513274767816973062989952181227996090991771877597772604767969178453922347770608577931407244306634755382158927328903657872782036833874241444136254862643292467002703806798648106590258838925911303138355560396349217754242446080956658667603577985021968455409107291888955784535507191440619194461741429802827371797207627723725991328188338496969615325764872327346692628519076878287211186190082197470174995897758205191543632025519061218875612146987001579810597905648666665399707982951794546106977428520835661263107635945213545150560490975603009580419781398169295613122247300274530511648458681349102550711365915508623192668986651377322070510301732552524196204120444815057237566299612018202546978704731804546747405326543500302670803495544717139862685414943877482899834358387984492968374774375218762947530521072094215178507765845646259045653854268318814117954545490325648538457733645401294149448382946385709985787738600058918490931630169405917780743132680865450231502121775597600037948992916072362039242370434842703281570900033604975865924280183132559618166833965063142428795991220620762432066427993194318999415429872809412546854739581885617139806057266750936353724096604463391655269053924776613348755020186934831055944322011256361811093631574906289500649338060992418093366934982348781174802003148122617578599976745084571019370370782330636079398727193089332865782331989673130836422348177459580417251914362053074099495795140072459052930003519752114556257479966693129077350254318890855120954804226656414548168662460496982361111592144571359217714616935111031859651172462871566642562062743982058567942000873918908451142577367942702756609223733649432474858442190818353532679999175096719251878705717785992524841857275661805680104666409775191665083498515769111188222187824182298904530027485945217251774010188794932587268687608385175495268796845106810976909192747549755778260303079182284324956340885278117123001616894246913595269839748432317620752935743238434532267910410883362651229883481451636863366966332993559355391868726062954512844052993199387652478381618382143382878217522065109625460272683142044308894034863841050719187928684918876294501964412064207278731609013975781476462957660954838374855779274503482719732421584502239855373836210928081345203970113376839337509470267798416320213226779321024019156739632381631238379090024410459041827209285052152236121529555425351267175902975935719347118288401855475275133683787482351491417762392541827401373132041564113611845205807858249416760860183204972875102962487654864363615787428526361988552592775452940837466068702749502674027714317340427285215319278081127394988932000632494789428317304635764050985521386708459420356995360516458020730969456810604386437785488274669737374118703848579361093437497926773782022243957115497654999801941323462010359490329548681641002329709714681214930861308941707077111330840889102958606306759838940300745711147457944856281301513321314085634505335482009165430228776160211759740018163759145912688399280562777532177554876388341638687486501509168934526729855489288362126738488872968069503650480132055768321601503884498168357045226787195084615668869003521617802470326426294442630043604256093307184802561057266552987847393511762720414048902120918207311814315375932570446124767130560864200278317413381363016274095221302151454826903997303865800521714948354769059832161730991419762112739665548897801374110331774460180460016630059886786313905282750120548250889911775579735447221682176407999335626676901621138720106834717860955142384194598852431934092780607864753277857560758672055464532399575127813095100125327122833540953704841543141171743596175218852832963058638088970122621875174380589768583690600035632491825860147930187336524079288474324280203294367062104647802598817868672485177610387736098058306926282384614220171199711360701918900111113696507817540551751553985543827718613196264292937904214601645899529887860487916683665113955946385145831685323788070476182327656339377245524409899381377666501168812054553918667939523011396709111991241828800479104434107762056605826906686984006697691722276874836508541506049290856794443312801432477435510136526025911792793547072470742296106687199057177822162196912964361975745639751590766603945563286840807906395618490386260812307202645587334292789834505436349653386275665878170655267476254471365912866118273433017349063871541307332248393134451541223942314631164117886955282991723106965248075653876311394056329255641136975156089355461866133401729528399878154500629147448400090626375012315235843847142289016084305643893601859495856932290656764696621279981770974219485772765687629614547625029913496157450773425987711617958827624592661416691304367724327440770391219637896670240516353944220981854271308319782598303751911666999658777395178608884166344438747349317495990905843511747485931459681450401675609713479061578467205626912648019617537874337523825965119095208789428472149800700612059591025529495071535480422272852844767012268862701047057021491755851005917401281691354745451943260543089045456487098970734858217063096550628950107656577093742638129595128999164621694915862209316525230840683283438278590177521299313004384319106715999109043574632646966702789237623301184281959933026792882506301965608816442249796494944912974901009861792094877062219131488506781569649987011212438294333871865714112478425482239666576358993893427870960594613049600237904950736262328760667180833524090808352126092596564271064743931479782678974929751719124423765423438900558518355367756894176673442315889539856550092133589794592443006220518129367320091868441387258845986380309573542084218451372476284132096915534277283312128167315519402274250174149047179685157052883461998367717828413295498514344499388469451459699671525031389680547438920873102471573958279178040043767334252837368120144822556138067187362866513888267905242589752063188748084914773952637568478100220538256915860042138792574779489297069444532972152698100662563133052681483496848182785804905901211588571981361109143125423430545510858360311052368230664035770952859384912346229639139338610126403806435794406274611338592247978138404417524503763420225039680283872057371946133395992637320587286934688563671776188729440675976644731559833350870021600429029525972081946975338327154188211272867463962141031731476677747891508038961648898082942757712709889555153337178447625057907650593028268594922581301523370221788926304045618661318169274891222205908240711355934070884686674793114385953849438872130310395860111096440470972547620793208561731586595489926920755709594108541448094915461848837248418731782379251233197491208987074733545792204594655797158940783864394136012819380084735156140755991983876508922888265016318162781775326509636898503139972107779400561025534628165842233696339887709358337033823674998012884141833355121485169666324250938018536730337057445052002196049337843203371899508880885873785222545050240879234467272771099463156891825122275029789588738792319740720050253607612481660133797802853987892083194393721051817868007226827920408629897601867766728540957943604466643589318858371183130662524253232179533796458085670026575676034075392055600074185168543640573065446024367216586767517381137935088495109404963389748327315550135938864528606008181741012526441041478791816346330328518897197574078240984434919012960992680315459927498812656370891118262680312833262691297136587452531714925882829942015893404949067797489217353708059365565923769559135662123377594796326452252742986410010030388221352226729203131371213556768493930850817467344167794950358135609306449676178542358262737137048964477182263130527562322679572489506035965557241028472352349889997189520447391257945792418196215989606188158488777670205187531276535258074190806016156926213926919512968656536590413197674755896553513843109682929548085833699175369866992614715051520163921899214758822563784559131454922619540486704820615784008764811429488013986391595942319477855594666241789620327956046662030346418828224549789344883653285369324011362912759890008894370835542291830461242287475193617643313282293281279338080992888126064893313011013901196812921614204891461545721181644444656264479460498735935767482877861634684732827279129174129462286800149307472297648318628284269033990556817251399542662740156132425376985899152547573117845071071780804165754990491999259384631067504490281217193816612095424519898153347586211898320730331302650439408839974998958813877028117967234818903329895892534939162183227666002012374720561596626466345541015250104068223900006433614119145866426636799215778956326391055398319727481607483024856777203792567658650106864418450187347533429541116245097557307998274702430058813071974124032106410092407186634116829600329609010433503653498871377774817378525127170986416329815266589485793738559931800673124971769432722050245436156894442664048055502627468719664699427268499355855721379616836174762981149513320595629085731482260956266796303219102917785112999407629048155442454012578747460782200479832699352139082635963277062647164405178121081505354449199880186435921037525571571346608637092640460684363526169601893319538253739456595329509507178307747373609652464966028532528711597163648129229702533933244291445123466303353039332038481821986728171190209851352153212145181252960977814919162015196778762816055848956384370761635736096410510601232790541629211145995422351558340239950573131176723939293022606985826658723556164920553847017694611754313243196984518033440583073790984940320852099510035073604132018930984626167326507205491026429181437729756536631274445115902884352147521267965323372784201905097287359917943378621520086529393951985036710598359972957868208495841970610407777650769781682468937059486491043499324393551854021091653676597455964373019444243508197421036899844985563900363434597343450400940748980930918246843567333584766211445815186002452463929231846951571612709742393439311627797727948855025675992065404572528861653502995536774820211481988740154176684863031137841204407125874002396385060451519585208975880357372897635144624728242559599035297076282546090660164133675138460782661551623891993091367428553301016609825981289604356639438019918043617747446706495330451883821460893162017538339890725009784108729069860693168874035680872730285490671147432524017874033017546900133302630980041813142365076099835094085181925791381457312219516062140932598826354361182774799813687879373856285471339355497274432320091859933318706694439812811275638085573976253412030963773669651961831689511593826309129745381165470362644648098537167482280198147168319244721405990253475063978915584736069385556915469621464586056589918294034958152604893297398654721196496515472633505029141389906435135353007730148708360252405866828919085834765027450258441601476047392322607821027079192782162879924168818927874460603135304122635672533529934460750488349465243072380658277305866531578357891578503583848871619960733851639617932211335675482978438690016387696890114487053468991970366772513329306041763510681931332554846454186211890481146077454358629833898951935439480962157412489014995178387781293560482909770614903302913716526746692672853799529188013498247332579391490081749684320403157039485653315038506369023887012635255297860037638617733190420720864383432726075955774106315905894335155558950306734446912980222693903378866460305560381405473289099141530986635188822633788779704234285250656952925883592211251372908922860134402022295836004029788658203372211735521062225456594033674616330908696113863173126007397796879911910860491026300130516699683978483101389631179963676023609035760127339139311419086580595116902861145365330933239125276245112802073601197859289335673992021601201517493476235211434177629835712410673480258740405682908061317055198699108660532265140550644920359674113268364101560703488178289657528499053599626558062934090125270580339461996190690870088197428904235753515546535109904331875642274359284739963369407304223062387320052110888506100517832291546818044264446648964360525045268312558018021139774409469423466266693844689309715871561219444433906124255671944143308200560742414032315563791641931755971855210227100389279924401189165164537131833401198819462654556543154281255513963828860030777528133689786273354104826242071363113468757270310685246042266609813916391298714345899598366357102089234816858945685586796924933337502485079953134996896562332693973366474162039830847119232370974410170340948803110388829534171696384505366381234003044730032694254714218920083902855808421091382595503282194325108632798564299722650857174572299431080160459514134685093299604960143724014503980797002561858620753979710097576890462069152513006608955190101330438387432446203640001278504428618371443082421091491119635542712578995578664156483739720242981528376602331040538653493280244834552116634353204751879367683229342693240606339965683979875519328129912320774289475988628940700652167669851737660629379162189687030734722647033043918757444095533087928453711054698249952521129047928370706266025774243875656887593290832493182811722885010129887048378982739195716496892651660752959697240816189593976694615255859655148470111149971434927425654496181924533661558740405790477730565999797866186410352863229503769540256741811130993660364671661925491424672691873591385704004830110070897758477780098560426185395846586269568329599922726600269537838598086917355358065446982052617230667789476641477054245921188206702067404004055133653589674703942748889690359457267710739884089218019319239839325499144233232469046977976246051239456370739536367531160322817547450223063075754941759279201075588774707921464026251748215687587297632935931951178880772152514248264055707298324145480963811863048790731613529448252258564590332465569293291182156543904917850727168666781517718098814862412850348728833512130806719788412418204531379758127942473917971672442750357537498973193877850342995469836752181011470442638633023460893221813531345061190026283722787628161980878816364300994291013521267990286702984908018294236887073711323152335720593281006504766355150406212002769339315925326140867328731049185856621291286222155116476005486683562924676285384443008039386578279887411038750236755855737983721161414524770463618161379298674415772889257598814394201033435372741174644526310415013375576106762838048835319372230997917649959432072250753007536177830145719321351746357551022424798339915152564381261622810578471442226305138384783932439910082047030049164541128819972863414300952272196231594295684113699973278592838777109008103714548347069263638627164945447556493774895357974266934351337681548810719372753272699504636801029864965273400165872996972991999119483445752394126648551242878986766844757545346203740858875526759094036171306576341649009074576266591849131349300112767008814304651173465192175968455093329193115417649079566297027192780579131563515586301287480813418109031699603668515797837381041174532429156517973256796236450359943435597459325003673129492418077636073499127142188576434102680815480907276457049488017647187723965407533497022926183442787799366362398544246666748671899226937305270322996509839014405767235378931256697652030436906165159518930501392177461354214145981606909996054730922208812412506745803437724978471240661343550375845654720957129227513765735506607386042558724099965360073460221054211451062068219766708232054673505998831387022903346634169024791717525244654762119672037853697302280224275548868802366070400786455461356451494710448316024757573550836405202324234263764397346062450114184326412534825762883492010630819280172759010390505823519979542671169777486836762378856015202540232238246176192450674073507314925045346931577608846786991008463055111106513827477529931125716082348700854262456306483577371549843975071431012986793947107866546190590270853804233985153602167863651564728149527722256826844801507089018743619961379128451682111515846900278925959022596021270145050377138674620527354441499293514350625512224740028837729110116065957331858007211852880878675840355431969123434921559550263716842666464861080513835812595442492113679813232431605791721313306050362156956740036444966222765080009811041150203347253340443549365739874711018232336614326469728112254205348503480911590453139119239272074951599896131233015327621562402978430795486485765701756779253197266166754638161005994221911292103387471960507040978029516165199467091862640153246835678796145310677866149044042362246132466496724403172192599057236414304313236020316186903977419654831984876017016721409051256781037128100580202699998276024333004895723238424759517706239034532604379345206639195696120925821224203905085736906760581629935791187318452071486636071819479812001357275748057941653495539292050543472053482767283206200420318591982233040849833295358027767133421329884220413059090382683624110404575508184905782900960655014760286555060669198069056837687454358774157804402891111517767416504827507382285251348696826652587917946010854670382393175144933705824978619987839951183064514407976525354913815104357793566526260660581026522228485640220684650797247340698307739679936246036543484965308861919786924477970210603853928893954189521045708374563146633862069586424173678968359802076756649648146966299040833882029841126578576272483392910769354040601918688718438422124978750502966971730526852168128076495894353887971473414522828700190690097621347344877473319229818507331521505803402233744894776665336429165729968771656529913354269561179463242107047200793465119482513924979276189283498811730335361080771775452091350180239086060348745870478920061546388398173557197804104883785798079285770937777086741244135599472323697979605796764132174454172487812581868065924964573550284669688276759489279584274166205341624568699385848680979847621289051644459002430539632541937996330433084639785749884058137384634289809274471331193859725334140485294992123721944256924712491116314164415148839062622349674090815412667945095122821447849613544891545950318164633607265188452789417909082621160618586342227524591713842610287829745431246403264499697033333001950127586840388659212426736796765530247490701802079924892411305735277576120539813373240583218572364389790882037650601333643120414965301509681355063933139103418480951900022686326190087755764592834278412643927535461750474339673345108964892153171324409143801533843274043731844448839022607616639099908416836592100596660148258929152566853634109139247522840534517022070951496588525485619878869995282785227047702642094584948970152432140319704984663983998377687145017052610395185505124615236696702344792430723880808245744077260309093355292823704333316407622133250536308597608015149250410813389210310821887888820643701082941414603137502113993950710968206211996338771431121878809921063266336418575752736909672197363955219999985538648548128083065185373475487050723533651508546897438611099960899244714964523004467330612202562366884016122574354774862571885611465564771307143137866565981099400855096643505820684653379177277335900160825717376095313979622041643977699301005877503005637121608485203232602228458543035826926347951527444818984561848503671384419602557207541146303778339475960344292232878527944682713225190667803344099893809942770432784348189205803064459525189012979556436592056956391340696442145296302717319107245293263979979557271212638691992936025875197985542317851379015636580049968976250896436622081094450810696315883997585055148151241569284407712033139316211834976827737785803731306478691394631085440659570940658905572991404581040070591564986174335550172276099028083002131327716404352583921774876958641207164311574649181376005235700541417347665660248111118338150650491318668188073025747852492313271123673345901846948411113071201452036653061280448022258515753936641460131597203174337633227548982883873973439818046833019236651281072669167826429457972367697007580886454050625709728199752709588983109401960366023162828707521443574423865959209245139001085828283758905034497452132086316208599491449513602757180446531417100158261202487232620992612199032577136857542985431397003664203530113036418761236389372947169007612618219897059707910945278937062499082070876551593565530841045317685401427650361334051857094808291075235552271005943377999889251624556566925651403440951298847288862551315984194377344001651107012882241346701024876885543575487139276646300329032254002436384945978144355180978735890163315798149901023213326988896711163935878315548904071670785666317311582675104312861714725464303323413894124216737146947224396890222589717863215516590798389311138366070205109141621138716293123591468535679082342248389730504281532773571894755025493422532004842507789040345615291517084772402658158222356905750152599331259144874018882208403433699246107104628303311742942746190024436714799840946532299524696750068182997387663256504973296850684911894042600426692725602782192606274475617474518389398711473339099360426928541088356759428140950370287243962811406557459900789140797812704780707537519850824264597293088553111961861115203008288052378118855803116151279294784469436553074008824624032787802606974875022882086030877487915941654137424603211832591591209239326883647041588646300944422731535858826656041238699606555707191597389129725794228136790503341615440181374523606580801324135471644815144299929799393249102263774626575122855907970916606801304503329911811368457775836608040299802421575469302398388330713190802057919851087473752218887705156428308552848407047301796647960141110931234237010303720372472301769571776344176613533526180627737782602213166511781075486391328171582251715820641282544512313889976972517163828132868648875675805891906157736994515776849892598838400990497905605778057852394704458404324647847953398640625240365830081000671064434943505593428626231495683940480742590563141039983083343039274678363748946753765647716602099402026176363451620908601764614507646798156971399219936470426555094313049170400760538160155704897370672478215839265345585885844834412748351534438603422006694037887807399781311243674257915920196695738893100890712531418093569536285473583257066243746062703882271336504850562269890972487296682018454893555424568707925405637586127426909560164549037194153444637361659413024155343797445950695966599926498756403844185298381890881717877583277340053766782082541214579799504969809273258364677848260042612280653887245101564177410753636368817803823730464503399054628885343857694511433011934903397159129505889569448973964175652251259460882034255836038290249258021455453481463023424270331610043456599626699855944700020543732347541065994387558520941135936660797956081168628851025532750527153824567509916259132793360775940850768253744519557031976397058275338460391118344280002366949988866639046225792813464931522325198522175377989682356446060105211359077914679685087982648236071452973536633982206309898585433845421022531009100239624621004600166366890545620781606044398900587106000707817071152311822549294981852290152993571900765161529334571728558960969720747547034447985620717070159295499992265242664939307156172546132381310093664419672351228790149793751517354763570378865196432190296824392127020499273992749448141263364610918690014801481025082097147702892140473126632707848095224259546156157003482386595863819634842422032405306372055976964545912754004824187746222201576675224543319145200193170573695682409896261236013799952516643834092214555746421866983033438772562050226245264744071854789353042789803083736121778540451575691540900159328770454084215964980682770974134709060904733226689902294912816856526912350424605771053156922964142745555503309877541046923687958191893020468425971229532306645866514426672443824201242235102079378385467064451045016462100399826199874232682545780849849674533103689395115849891542808321080658494322288876571948702382827329078323127010678811281297282220016994415505780783961590311862617655833071992876550735090739880587418559839082236150267064677926630109441824738896650658542309973375763784589407601287856950261169723020191106442369058346745775054663832297794002610506521427051844418817272783661674731169837470571648271768059726840940692424335996986177163959468547931145058722038501420847159953215018399068925809812239780544529091364445201938109621036346632753419883952622523076591869367658355939359068046505330965808719111323529037254963221391271565128002228914184742092691791845371398434621299354456832399999872575304699732002300124045127194599780777009646890526706449326988655103820479832945221928316694823701758147710494842655545641708867648725743707770540517859394873229555799104866981688141248845855412507986132596329800017202015213530304769496317711796663159605543546589056675879558617853174406200910360536711425663097955880801760275241109484155569380558007003724931359390616589277932819728271900366452914058243430173099539106979358378023363813834876764506009474321154442572026265711674877441525142768045140208196321041472522212620417842799589562038933946232031653217911044392549518832836636427039102373632570874864856422605701466590453757663502582475586624194465457635387779893870555225312418482230350862204617062546608026686355143864813148317253189523534074165966117983424137654047233520267675650208174407779499664775974738727346105379063719500257703114258569203922307729961935697610527967544209726990841872666465651738167076931789069295981709259906111352879315548661438419113259592280016883902958471237521157009129438886104058059083771434364805604037413468478619792590539239492775058478122254107550967233093212143527194542128158747072275452891801749018943389699994515811528225640863981883951038733893834605886225532208813635487943351584705254543388447501287999199471977516151962785515115828218065469983696008254369295256969426770536460692497567852095142225153907793542094845064270526192890065952847417697795182975208858885111536361227773617611027519792138578908162927273562527397085332830751134164676050045371073361843791001231744433979391805364897958635841967440674865831843995661196438158053494616908714142284865631520071819506242248474920661947415945759772079639945210240575775190610946858672172723583435333834644422451075813335910132203478606812340635567376976173282401356358336691916196577518845940722551778037061827964288040970035786179084309207565977744932105567416178349953418913521366896537711658707258080438982260115207081094761775798860668524395759283646012937230861778203647866238555991027195315414555210573276957661125219202443585078059376752906090953223340275054562963244506554795534416826875279925670932352907672245517679526021561898755795820247410253051143611435574867209241183338917499429436603998502422545877688992214491059301686253240909300307619742382316870148578842116644105142219453509259789078148008606406116585098030109769940264789495757891478505536965613822694711356213435998676276862289478094694894119203791376575172794566558201592533363945589477744429949702306594495878564688118907862110265603195047429866785454948551107759966433237863935677046434210290479293334414754141134610680050950479094024024763848516705354581846377301624362012983788230211806284064691668368687847171336241735577693061739062706434037980175755879458269475324806462283911439876278945920984859069849515385536582376166672310116289176613413192823618781046612947166326053445293921486540220317904574043961567537867773591965964627659909800202200838429989616200422674644401056610962483496052153914548395407420420403504322885992003333689231962684506899651861421538832196661046192437673599357618374451825279327678028643570258044472829074095404160969860025557815349979986154824101690018970882740658400335856184940700495307053165080826161969035083433875709618066618976355624169634859545912690443866753070675268838989023533643229720187493203772972005179915275353901862614879901988001315859876910312593484464785884600973856126944979644395276964230840635683522696705015108923707606200818403946799732515921232245728476016475007046965677530094949522995033977504309044703811370937628665673242218373999049839712735589090456037801279261012168577290284782924422470782329581064407460514337461531510909063059331874989284982686297513742606254717919489622274948341410582138449597366041965736190365334848588610753757203883691924994157052051068750034721057341554744038694883713026001492202299885725827715204605842557402010657193360921649351579181949599014492692278550662194073061039698351261709378621638693452244770022361636562388037795783781743433676589511726439032058366137783453895377149780013532415249949383122601718685801366577644100859065108685913608900116815771961496653151428465588631476262051956342485376485954801288017070891753410496071082332662982559502646427752319619324314277088889608954244398350924389029492478398219019257773139527441480399142240702018947845474182402990246466293590905124414970079769171691759689184954193573382765748044640539328755541871593578739360698289043478659394396608286842671095044688228371941107432122806722656370147774246340851903807563108102654546181446032271029795209901467714567971852420182229121479050906442038993011110889843861809336921807228170512389307254496726935140809463124975883941099904491912665402850114599854535004536826427897684071564152410325294287960508810734154261740311602271628912524739999382198163766530383461790104558597409438407905105349071277856256180234438183602471566329679634069509249796876937907083827224925955571573042605038281749515978675521220876209106231590951758778670961027256707947728311472169796837518504315964098593025369018974085467704204171302724039537367308724302267897899495710240981344444179633451629764290774226688354308813391173531511690268957302602171370904885286464650561194167397505539407720917101975019678889762591041210670680972673309739489865534819117889009431714476445453811961281677509217663912808613490106511118075252699359983933852025352806904688490188759642179524055967071505825332601221600172367279637094115753096707167101858350591413721994816765096642296335290552004887163153090264893527282806106763552808179270353391003562807100832002446257016366952215130418092559608294511883461102034458248459992992834385043515130969331864796456793002884534448834265442379382308762150943682302059201655618284429775129961806641497754840759564089638481494595203730026747828949143436823217281041107615189715622641483793421681980348297065052463924515595021230996910009974898829759849155801590702559584986184007404001930009700356199355487266488998832965700110968819606049412142394709827283238588423200783167065018563608580347303715066747541585046923339004933492130339980448030464329942002478145329786850930263717604478063552684924872130387056028842019605616632694694564494104027744186525789035562248286372365215676742911381409684405420772421025600044796761529858640349614850388767879516852715790961539427146878324137204796696076936346357808134148857736552824411303498675340766937507427959154210705534227941299968865511274990408709448243850746938420114573687329275529850174230045145617423052339685613194022296132957201584699390805782712935409444894216469233633553700969353844148045860266081670137953141531914978394677088367199031880517955327209810362124871558745554656839021356631675450235867920022419722121818923902135029952167751664272469126086211944140518325348683655936268519481157317873720204037719132601049482363176092187286031219056828366107836314316131744779752607738413694051762187662144519212092155126256533169776097780625369933167728379777604204828077684925833918395502605569572459369795668556253658782207701735902442819686261952177735474679252151606685730623940408908959231652519247387239690655072495917943501425044407277894339417711212131088931169629030609763058436012115083894992857673518885509367803540149047961776473915994974290898132350305320859876440765657827430877783794619034938998722451308199065287986139546587206738795882744174872780871830139648949914347017249547388436789085006949887222384154752949320988935394547720658239535154911589535213250768546335792026895443608440286619762010125541563207721371654292523409021338932173458284986108716278877738846515022973827078984354560006300918477432304268903373611001005828885794003319084369081346158475930397431627499579488357717538466610661542731440923620035118428088733192688341106231210781649693186276098062500943469447295948482817648853914446690324151056249562347236670849614146511313376611941575573952713274925791525434706782747651479455327818894695037428758939999171255612033979850197647166604801544755576868804348299293358615456602984424063297748375254781968425286216269339106344443072369198857285280074838199434324229791422427542018157415543324246963272498088375693066972424086758282940603782238324201315701297993366966134181977183618867560021673275469827314025070807415990768209012302171507540649795203064101251499489913821744820091319943653465601685087994637964580094893870856102551233805643323205068686222620377216106410915659369246504682185737925292794885488216736783545772665808019103129474956951821816529273120111370294312220949782925777033760731841916334677666851097376118348351970255628002430269168801264816381205229961098174739593741779216073107441936388839435994255026069722050631429330275860961973131354237084412138581601190069580426830902264218522438746850539210480711351147233751856524445763236456835170750603299024478831103996083625795390859316853724539707931060067337822625969375885900975696287807481609973871427200121492894471994301783882445094569980176673552612115759387917981967855614010302897176889898202721763250724377470982941527026406990772870557470218928827479953067128977979737391883351821065194998515405768520588784283556332033762756090525306560614300641886916898434852606426081486651481445363666959183203427330315620877527399901494075702616936968548383788097522867139677644587305869445773602363759197953988485713714992397312118706059396285245239415841147985147953553292154199901160665599214215965948166797277312959049230846875834238546528870022530062737685647980245832609532462354598034428860134216329033843464431536433907398125212363541253200300213646439463593160449308900457944002703687979771900026868993630404632560257541725124697548989698525343359402652383963756514218894567321952273016203476316660767346434546083300468965243364469789036072487551678480236988311565053755180826446696492822771366925217114916665049293269274353355279396531079627882188734271664704832872071726142135170311316015144931234147666916017098094982186630358765340257938542493388748334957387251232212812109200726078658779304018719766095040919516193341433710197926778344206036712806669593548524677893208646341185718318249217721541959541862839819481500612618009374432590558543761991355377806666792946936219085203918918951143412820507660806481350959947044521713418560460713898579136152040392705895640358958873302324555209510652147479384540189131439982367873249140356313267687157576639012381002828393385227050463558329218087533136546799142965071853056933427402024909449147579241267030472241611777990457225853911703982712746819463227971344524447660082310184337704885594449470139691617801093657909472527134642118105735707242920282174518855572106942805817093821915679588314513548571217037627786657706099309101112192270912362815690617132796789288485687403570345291077266479477639822174141644057708310046834702418290490275337204108097423138367756853725816343563361874623830262383458449930556845338111967315436005074477814724331113014905354564142320058667779364472760346755455187471945839268888728453284373306056184080856738657451877672658380794668142993040981216691359487057826413402413801349553138117847642628042932627578251210637531245337617263327272780050861037938998982765740620282341062169081046567596601417942199285644755909282196662655297615076694635936321028368919744356165446233778553506149212692445568916859808569175810051928621165453901698584780185289564108573456852565865046383622562879268259647540071582327164810662225729236228939156688925084448009400612426255850779757639645368516234647553191704966390909581579459094023329352481331651740748582414892876539477344885382094303881069584529962167804950565760779894849041316229019082778042796925463798506411016255334749420017967492507255665557349447346311051127980465054437108810752408026579752935191800324748852438228020593059496333245270926429815959093029447874239761278276523720144054190528681837477321314523195796400367984790742605147316465762821570389846902175396956249430749935031624498166922377281429013424093986330502783388364223869140143421426663908147188490300463638436085870576716995940807465197417650722990091590333023406266466022734555575191783573038771262408892216676174338292426169735603930219930506473780972681348870546415538095173990244092646599114601460385475220050248832473122731446205068318297397926095418168154862594436978566151110547864437178829794534339990280085954383644514748404953663554181626158371653730786513885888031266137451786106218689807499809863706074838389096265411556924006150313287365933714726806591769355665035716208040216177618756305293979830585264134621482258920362367283126008613146035133036185639682662604793585814456263422105324049497059763317941468150576793446052179033685110821895447860896059651150166509000673105828290837629042787567177344380285247610431111877943737156033888909857390060758617253996603503327577211086425126394619342733766505539565226461407037965365239246551503290311515090229924806799456129461012998846865633034672266888381483965337559973119451509108576930589360000337837972117742340735722081132469102245281484912158871745709442648256929499170361907882079738640886481330588253489519090649628146337934745175584236132754096052932373782639548191340381731220544445599306019380386257286320145638498470650158287944916038350408878495732676618342054713974127999335370989726936712625183339833243741169444583689533606727282026164038398205940125245118646008446093873361735226762587023232506595241645079281975027369267648005625195783613473805683515555442191757029829341597967228403903732298264625445682295072827004545888303475684979764596229347412032981689833598901070269530547028212414767173599977828669660201510439228085324671659710009243008615717832357797058688336493282415516024014425262749817555957407344467494794356863945637700892124528446960055859749015050903499428339774652919614770148589650012196978952417689448439590622794954379942370477515835586167914409586753692800220642542538875574918218822764949552083747809615486877465162108773947399327725917702461730188436902716499572872463335176715829871718961652032918467144486795795756703213183882939311781841244031472038085064499226246970110298433919854093830099240770674358893612993769946805663636559788240264098495039430797408538146878385859206296332523562532638215164054428566947225073141951255601554876375904971765394700220905560477462786908088168248800234462406214009775180347784579287237686939351383835628784290033772209781380487044496650754807636130056138597753385844627124468329702213242382764097451383614815440683161603276073520129260520752222745348464071850017765396563962309537310218731020464385187396582003453532862606868648202884933072019378109771141860661920731237185187248509209220839663572857499282966626703789806332491339438290865892146701483243721586072925523937983134971525915018945599832175768100659679970316119187800319148900859285413254921852646354602686975682863913758088727775265294214349546897665646352219667816004322045619000220775754932416451584883377382242522519755647512544570961074781690372750313903856719219257747439973419244215451943308015505701826264501522997382919308553517443468051555527218992397968131522906533965869531652478231434114221706944864931524850792315878409091146316534934183006134894452706444752748328374766286292303009332683188018536340551850833375852267125515209141585143360851518875197306981917093923779805299531051665639874020161986644287602301571975021573144884559068835775491631312075823053889142988387668793344468874267347012918463537482760246985844749576911539190074228012719792436762878328372692096908711550754417931398171155779956410609270096457676256073594505380705367584489687455815654841383602823974474293344447255820539133646792184378852056910031586701702849989998787704940891716900068795737451756898574784943479151423988099141382584571766450009018498885230484639289134561083947339492892205335592841367957136917384193095325858515668745925163951404665708788784371651372277585571477219536587324586757695195779559424659792141515284154688995710239713599104912921922453783471907417940605877855721414651595925371797334784530394079457283565147526596790976603208055006835136678515985452424728714570685177374842503754020308578041545810091239348877137439439293731387127757381850502815591955306208648640152118262910381031071594286879940636959873460855633813201116630588572567082723185833824238386384934284835519360646009707392339855247347293526213474328385035341989885135210802751779614341355776515558755486842239064377742465645885273586848721596555465207348101783484752820808805410858316764139498224098252009504205387017277637927898855173422670405616463872733058298625180932145914078900621590554091576429621756600160528403687036246151304847216288483439942292523670549503092499339753792896996159207982389116128341675941733690286079809341213761719415095061722284809779359544800797194155940651894740583724843166556548307158701702699383484771663317911204801341517385372710726676325318142973548138417364849859889338077389348830909088659042844146543498742796963894374652658651736898894555449298443375003743835903114385844098481413191335799445865992826861930705100180507823489674280673508169810277488429530285726327581850519791504244152713875385461436284101399666302695229668241188976697555867744603520990793841505674238342468134842569038603380234235476688417603313950282533630083889040736171442704807167305532187120457173866825440728907111360392917981322459651662925568990753155846616974630224300454733334668716382294243522424851011480606265430301212010995779085767524679288122222290296967639460699098303989803644869246940733192124340750783355891015736742962253809722479948567864399524065740459339490339163584383018468325738657251593932719108635508940437739890543587982762885001320181687527319093175939275763109621058667062205698455260973144179651465767247533107414794828515595595055513745885764762100562092138457968201574198285917610488877265985765970045249466301767887078425718883637501730582419283499689442908487085105534098109235398051649202282379529609530989827078828167884123117176178574008903486525862292535804555196749684206774306573679120004863845139558644234066158623349378656240188155372067915611619565124856641702342412333425475615102915564995915254989673859803670580824882684039723955205249816181058060672008691524357971076094870214611373565634495524196629163858822748988747625877200222219213146308950597646992421798273891584589514706273097238076441598599271840219852980948696577957566224040273988868815086167438524906175762757266891336770544082079936739551941013437747117606998023672792324612470341550590959161009370602784303011290536767211220796044046779114083717537702169963688186235308782218148743858027995462010371455327317345948876912490725936341007148822917604774766389232661956214942169120989666810752884315841810188956921385140834142084673122366831573779141758888769491085456258666393044798038179139120955779620051335893558809300736669740062615067611229487783613591592714722797049673111321513863829675838820666631851061225625639180474496566515159931814943647630051585209038675287459874017587880701923996890914472744313754891987648948874103162775782450036464649399714724092539840004765014057993544332123029035815191226521594108058669915074683481464551991146839453611908855722643660530455211065793091462594489951863109162393302057255479192085692088984100489584605325358303115388035260977748098051367667444924775362392578658794782049740286637461367979803092798514109161285056703132467078167230144390162628123353581792654899370261610548152431842025070068809319169044807263585330381444683363358244375269132989929311064611622063666171340678367697341923354322868527825378566536159067133775607734000491847459018444803888957612032986904613127952925116071406318357002543024713686617964478765239928291870680698201407036719962865326034340786934463361836275929156774120608567983641720940673550471477588945552118660491297538628239058436659155870375293960505820134546082602947622844701711604830016548208952125875568251776466636566996492596317050821391748544197561599299307369019139330108198704956363531904230227025216466867390418888795200993083148168765726219899441755024789006898637479688659437233160077592013954901809588320671710928446193819014795057314345184153022919918225083078206064802505854680177895735801105749361759796889282420361454166749252862905271747357772839153402968707274897199909983887432069061514473557796324875910538621209452140587894253586242271436345097969796793959510650919875276569771632095404341567126943557921000791838222198017381765037188304055826969727947911987219801391378737662650950946943766706137698191208430186411274388100687844380919512742173540765161345536032119949189989750681667204381960414489214008107586606707373192036925221661312358822791398557185578134341435430169644551100182908089197351044828366948901188356146331297251788695234155970354185486832866835336871705455729267949562265621352200832484630254128889816026616214315217637714844896022029053855665597417161291376200245622942266305975757599378759548327857770745638104873022071493968882981762151493162038980630453231618402822491257556390880941166162845523968505090537463968838152489017062418060627229177001753355343794724666069668540392614966996641026618577189994776089529358053835856263380973173551266253026488308858262267622658835841226360957087036129001350835680980537503887732742683118129742887508404742358555733124748931082988470671710470875205866777394683460958935965304107786582136559035190613314164796249697181650372017121675629024370731519543781700775770505603328658344303444158110305262919856913981429689473224039747064533274281859026799801212566238342376366331743775710364206923964337480896069291384694608664221585180622134710851678896427687893241368635860562747757530777966083136355369900598048642690267839785611344617460585777359327607370371602668044785979333321420127252194258018812202445059902436916865269786063578446622511819779894139305273501469695943408068346452920631743828194629436958369685577101144629149759300261401440937258694797341538012567826601003562210645268292897868826476325117438231341022564717385864995680790446748226689612816283900341324197607538472268686153422454362115123444749118686969656002998520859263114808502119480888271711344804096777867560082278462671034774961267497287650164198223953417213006834404537686705436900753239935655136058391212727154217818123586678687080915840135538257893216789849483732000229603173283500416452254407560827979309466339357175002915785787553962897334263129006197790434330078937398285371955668280516664050037724669373106223726305456665992711105542358347895007833881671504754053559161269460904451237769223172434831497325095194401686188274189094047999947260699989370047096655635591268166027306795908665757752095453131992427640031384927261170646426853359522059591988625457608447193424101993913846662401364489416142361481346844937694056938965078616491269028063987046809410232695677660615962267262186466382886224686538651214420557960201417320383603305164427636973909917572974181336630650439138827595036860355998379723810748282014078553543999130579096018276078548955505731285389429615817815807745843930031326177678864943036384361252079415455532780355108518239176357499498436566711292778206928891117633257217075642852461112541974143600830166429265206651767447292959800249187213854396376849223107579222690787628631968608842704618676158916368064345215880706754402490589928538630315164307719288421153274459860562045550012895847144903098664941249824984766325604739132785373471643279465382566576491894617013511280639052777775224432309997339709702929565144779876825282705249242264302542208715722748955765578922011294103048100384767909683590613977461371412014628533346321313226444912295311554952874816606419560389262679565508561190065991034096609343321984099766641388808593361045787816636948191382698714094567248047274859566211735314937757675700716964241065166295918445519515565580284651832236804401762320463687949801815557018189441034753492319201400944392435758279441512274351755577961816920911172323562674615642385588323836856218631276788564358399879455378793369214153491170832393517183392858821703321827436380482932926491770628662790715512984902389098793488465679231269233570540126862689107591488630972909523156930916889096894665887955800545280729591880405747748533089282024348777555427542203754094181944071065713759602114652828248311413910049625032434705408104273163227700447253996759679448138290034971340720448875546650041014088448802626410534619614887312895625215684990321491740727551879871913512253768352397413158499772474205533956595961026376023414063990335307808695991074192324282528048833063589582305440400723045534619470789569812930679857540097297655808283940666257545103128548209483557517784957262714382482093179975550755357980606897962192847354613007033136887792096755341491045921205070250503721223095292609370939829046070315388231017390359451885740528106131925524541236306492104859854741018498543045899881371445070835844688070223820941954180955146632682272954660934690472794038283882943320219971089249245601438793716980349085961367103871127111393982182474976919119155571425358554595958523438852626771343934913897911523043118863220686932790552098017342746978757492848806584247796722858542112340138000960647015674665558880569986524317536070197623196598727845928274593100303928530827041466312030394850941386594097553063514653090747738870014216389656186527200449891375186250042896158489369264252715570133018207397473594724731157642446960130557362061404549653030385408849342577893516917669566646669455872891603890323009574865917791367448514128652192224213759403224399591102111356352963425173016636632058393737198120180740408907305960013660507726939004891215791671734486449770460885161099647796956149291463217181172894093282689922399441303409763922793604184144085626160152601964570705063445852994541041674714731886695191271939069503764795023928685795654000843492904850804222419972008244100023887813433753312353725457524581794405771832940606583808673970692408123589454881092078779881169081364411730142865894483976210842783703250309729796947329670526674135548891400149884749059114452199242279227481284182682493404395034527546253539054561000641394006648277901887078301547901506129997737804806559928704266807315845585937371087670416490654554299287386786349105166571730493046396821121204199580502018969127966242063334526918695892424534544909257047206117986850254436126007549830970663244013771477809973349426013239548544791868382813803902025297479962518572973997652302815767196336974318427783827746162528187740668037011740382259085378708587930764849882275251844753016940957623118292010852230025478696682023951543991698716578037502370321251772362411639257297268841867533797358198305416890941303097684076361537861629308992926629102268082781821279458903438069356433871695896442366373047803274920688601399456480561823178058523332043309358641971130292919733540608232000546043062501578520694685094934138066897426972649725166159684135457178881420218855384592949653418004916667943675415950103508581952796168984153762988370057075096923110291660826243674242182332454326715580723312117681883494226344996084624312209162237691521270473993464933362933901056359661947286783301032345082426337986211467120651978358533247443298561572468834986028678726491725410611923344547156950807233352388765054048741609673604918951971548885128152198756167926590866214536822687433767632864382005416756358933047251626531500143064529791382644510323399097342342477164611724423819641841461556864593373911592297701167279177993556165824285236878875025034651636388229523220057559830466896163377513943366310949153165295667266297953650201423516616849698527909373048904234019284865296486921018186977556336786971252523924099404511712395336817361411735321697748720088749253956228881671372479894419221381780286342329718213821783623186249520073862034156627666374958915541412309339722745493763944100702737373679097542395658686166784018831092502997000526432073908831275182504137558983641694981661678107122400449306411219236335816557663384222582760989703126506762688183864919792810803907712029612800070034459453290005572488217526322809188459878108190280165374737052491632522603256400282049897430129009129450705378207312863292164648509188017926796909513247605011900257157434253605869162676521733489615358830296805026180155893067481954388156234088268769906202916683839023577701782906848751399609862124569652580602461233847037751273500596859024967718124993379260722751340722391374393766144313830264736589915382320366028755600359957175665975597409163402891111254320668901907194376604592273303843117429574663545733171559332997765148695317763063938051498131719299045433252332586509930459216554558798948909525673422442501476233575730875074169367093315327328701937515679068019882992373864010507068214742693597895110378698768007090275296032700625674367892871764914563471589123225886982165008154069147869385558029306148931323074247589086715443824077659039720339311355193304959017156618687868032336533284231648773338848743278283234418874413122315078075233125557727149613591237625615047123444626666456773616946290193780616241908243180287009874153658068988956014791585911974971913421208795902177472324337011895826231416521032946434221225714056021239044379371592653484036659782824042821637132845565066521500186263113729177471411893694850541520663025978433729720960353483217984242985492958336537812674505434826486654562470002626937403456277073368278271443587915441008468699758015300776237664187838045266970446280498344505063804935744916482207279274930369652435147988130553847880051698153615991116994487238940511920255135316595843240444054396336846203166624800323343643170870137270884914785480100838950520864023205233586073924495377963923294701446021177805032051525785348122078071304649970235208648744549363073229132834480807559083410720467560171753997643943717488263777046120746158107308518622691337516022601107873636720516050024588540859054946650889703135546299323928545325205341735915759166212669297869312625544875349500084297156962802997053426408704702956201640561773020996553987893365385049502138361469390400512658294816501047669685030357267802473876499400118602450227076316773078627492024116862178408513749072530368062170522667113814512320047726895631911782031976879288610764742361317575772354562306070177645050802665671697916565761505362063177891962465278471058442766716444946084784233099233669844024229725064960602310459770779119503083112502661867899973853885320551202726192800008863824322842266182576448171890078780605522324593072836247927806811158390767690150493870220309387113580139957044346663442993965116367828623630227372475618556112425269410657102475464641731453909960271951626294456114639439435384346190394102318795337339927383580314235394408547565216737406909795908570301228422940914156822737518167485405046069595223743579727969268176766886558406026004410092462365433809403053056425962403581217626103918311914955647824155514091260106141764624334808411848589614634360080291115511157834447311585190129273257967897946945620971231924100838055882070432482383536087687239062814627574418189649911611920674552023415303773446419876593655749945372301466507879669834983390505996894006943580769411616377589380543788095229749225777977078297276895536946373117437418575352523051532295063876962241263150254201494485512431418383610732065466135135625391839162706377451887422710705038753847140348292794623336217735969820465953220264574095993691151934135854083666352295935181025704755626639115777516762360812436779981380542830610732351778649383948699575878023723322071300466396350407825820553941983288693683643590277055733054352306333492457933659402925329167627068701947312237669253869535145428384150614210178423041836289416975763855681847925030222871529770335554683984066285394689793398077333863400026537424338166705619891347784488639924639407732102886429372006426939769792008091474560737190049553989217103719191001177616644413717272544000944350654264354352538912040674372067920889518407046841112116987775537440001850617822709515235180225087858838564454165269042625653199243590974358615289373329541818616490932264624350998794385808167130962874333701815128273673491551067235156299049303586642082058282560381204229313067639539624972694887596287815321038265655696505473629731025816507275264093328164659955621583257370074462767090903066294650963850960995641747467984746313480610888070475149386285794648972962147536869166366599636538587337336035562969080774275300885891316664600072617323490985670939426177454934560427349305026521692586130482520725053753969305789781804620816293130237392067703469932064087688734547207825884754672087800177781080434668525523589672633562963838564513022683111479979029840373577215241170723511440487503802064524009268747300933292782600361529720345411804903759985764004353772176125147359709684248295828348104299924960734036910125139070959855793420869788568632356845944229093538888810904575335251215591551209305907728766358073497145253495730754301510561112450197088766480517160259380698452464082551779494382533618572686782404151561331695682110289575729284121386880660231835508160550163904868808151495986820131595374950625029015135043367018108627969944785563218864718386905271322370400283983489040724216160861128304517017149435947165527116178018722775394691680425616393989131001041009026320721255024529937381180423755903100954375110532774641554735330747121584076067183523589164200096016949505414504388652911708176218979031632932731901212263043081841663730101804066421268645412130197344756709509633727889630780889244002108948695965854231495884896685709828201668154429870308624894886922500735446035750083659867648463082808876204187495407259760035491429116184499737153970866648569585185786836577236572933169088960501577479202757379807545095969099194549955497103937484920064370387133238778133780374686965290279687041343448395613880322920346350329322938616940719855558184309745738754585743665912002229752431750326111732039474871973787738011380916011398205999726644738781557148135021095663744860198318511060745748696333483505750046320209649547609732526771442762008135740076305722439707959643574599040071980804832514456029303947780622477666627719836573686593865890042126145706032385364798401032958626961918930067448322257445228536229932640502072104547154378865164886328542052344557208602675886647565045095999730542289450587214844642968694052530716593625081455128041617969758257547441437606576658177014889370880336055617164291547630023151230275241196432902058174486871023424528776074341868552274563118422927717910433529869328903701129362930401326328121048580954920596301483034213442049752652470931661459605931590557562290741958661008736160838507929724299680739033732281196044507587483974227762282441482991409964442389451869774314938145380681370694124445380698893941515512611740064714866636615667873247502748497731296905940862201390477804670302151615337344869215480586345831116818500561932563190503763034465765272111532618431402898473735311148188010228332765971615461145906576810253540697265075773073699222583960537823173414993228977485344577155575959983157500153436909193373396396897857876517932267296151848525427893388850711585731648149779629985360611948303407996740768614628902712719401568112252206117188931835131677863862261136204337878442323659590724399266414661443299959486538708308369475771376474822830804789896909634478780834530383277478258090513836134829347395123865254041397927225615164547280736127873838886118591492120606934150250890265646367144946279287722567351613977701374573838279585481663537377015648635042436874497511798965423241949633582103572178011878521727018276196638519238445574242830461321073720318291330827761423327497796268794155047380842770023920805424805446465281322737061207109653973369559091655141161387631784908191840906895155044380535962634707306056594864265658476259182317720222818510483567346182710617515494412277878859638425237835092987718717855987087911190587765282087074807100744982807376471534633793460889832215251445541218483014444812629908753346263863527847058167831551445784239925221177798127570851317576757823831656357396504135731862235122554960304241722262551717585156854162899479550446318662165543107362333622496178951635331975927454101491536042974411190370845480208818182392380056933049925869310183081418145383540613550140523509787944236722157138742385218766139093167624564012214639228794748220741528993169252498801051417082241866416746804071559355151754775376621908835597484694227157812237737231347410592796472938373145425690084695350868935602007614181445420862477897509499015236233062887988400715201412398809271142839435729798383307839066211624753635636620247519622619817710149626239486059131027259988543930971647661824819324115638514839972237004723433485335591123953477368388370434471318043802534102828085903273571276778333727158328707966906622965505642190481502757876720160731324802458718877119957016524856998387160444183399029410264653297527642239085918470009817188940339632035682057509419734825112662112268329469295660992101740529677478348269514289147478861209972624262978039026785566300458097018350543944228840446056636548890716786378560990175422539751723377001183108695715110113949096107485072625791802383415942813923207455503861287777198894965219232325746507308103078083250117564833477432036544320003259586266640660707804953535528328170920444019038009494842654416153849238378075697090646721563893218621266869295011847085707153160294348820444750343594142110804242474359964788484953328233863238345513818307179203627957317378356564316057170251421965369651083127923502786975057789221146624931204404276042571842057255581550115904871758714902198915310462927973708926172931039094783603223279407499421202087322531335987886774747501532033959508421454888067273427893654036063339684377041808767118325458082243515409579895779166338245973262297623827344633102434131539587815371029164306563415379000107265343046242811410736050246614405471917433313814542388326914897167184979526374625557597455516754991912143707939753624733320502030611491082523961502183773476527665372860539646578964874662898418080018803790911307535766892674490165016299604800768051375241751554931804547576988276174563559997580121589970290597807516527156754738480878795880263490645448048004724102591477037108254392295968546761179222427657948038744872649009082661963436738282342380901761242375404064057628304762460810895100717307830846593727740735739180341602561910228919314367510346722938286875786938754586293001066084577760310879316642319926598147074850768993100736014981347743463500711765938722972686463611982619755931757153221926117256086846235487575902423446988576978059803835993968882136546884805388843574340888768317225307103610180879068684856242907337933530229304730196596962094245244870374683836864295327152062295108801601800197144113657382557320601626522218970861110705759134746985845438766327082813917948240870079788122456600299049182977563108104719681956884572702692718150779967813753330589858892058778696141317740894395215409878822220813674640218725772656096793811465891694257492996358284936473512689188933402472687488795563830109379762078972713751833843686301041691515088635269741110228828091125905510675838162437306630497778994629775120903232309122735651612666566873014014382132451991062711183340668397566084880653930313907916206006139971545796665039911569453181263182518152945417071631164642148810527315351928849832153510533993329565174745694701892130497869123472912814326105986610764259978710419114968510359077903138610431457030730160580667051018226135470493190150390859766945715266888031719770409856908761912591037245873066512725830026632123888820416485786833806554108411319951662224915431238166076516169408164398734024990965203082841777408464607583608424036127511549860176551730746598774138781929056201066488603644674659460379450684743891298586883017100383380317876306102541194365449899961294767859342228513044592740778885119836862604880289978209517899785866353017324193690192004198140480838376921067485841318357011756504627593417261109698451101426657875605416690699528284300137303938636490748747585910474231245487989082619668289261035970582883630166795371702164595681374543135054012632026568777768742802353675043821965851819705122892588208184513059573114308226654760292227636487157544246104664004494549551306932291565794486329887859644905373739407121730535796517307250628520263288796060855966128682497389118447644617464264719482361314406809131473367762055689075896678660565668826328861046378976415805596663159492732361797787818775373940903128185506295828279976878510709382584346120581466999880453020847278119302780990987962798172160908800112160932485931510330196744609351429575072649882296270657235941064488021378480316207360713567902052090692652269348061731360898015833674460248568923685592841979489697922279972609407141088126879304592760506878108457560961669281121357578590318779933508864864654735017200253132373663953290693747856211073833796189978867296546736528238966483712786004783072113456231760270017915231915581795395606636419332527895219597706334041545265927918868144681727570797336686824174891542518289777434213230354445391987274490399414709716188835109939860370579159363478863779597542169051709711894651388857777245064486555583560537963537949800825707164035262140224297566844745304475851686854220509473850035725437227324164479504966991212096490005871606083886507417776888239455024841353820642986982115972572878558981392393337733996371075397764289368104913821083441912473981137122467934028028028846746646642103276042750062502403284805358333987440990933627048801615062895180340586592591025724911043379826149149220220600081464274358703805226372310656437533103677388072511340739808293034449997815631619815282788274606382020799094546001350850654036759580188708757418739787278719248752442903141331468694705747080633281806853364359960918363011003697751217802325091623920127228812409878466982916837244618614900093093065142426291463799310766437084690128108759509497365635422530544518041036438607088787941507210876169544239056028809141564274318814590764011466623501871534930444007112207025613961088940056155265594832337035370322261706131631194756013374704006653370393575822505318378325106546226373325701593771531518958043669610350824222027921038805494826970699652059533509232729229640151555102274552877396544929659525841635273593279390329053383757812836793804301473544557942670574352856867430769735187377357990444346196544124270841450805931331668965675914921846510232025852869263360647431240709923627181291326170647672859450685984183593379540492832151777217678345526718836595789647573753505533184302071166774233221430949870412503493942191392223029844507079794515656916990946519283455508367497171378032790738802536450044098881663471102721314129330729472742284300279582392637068808814075669035412298556230561586347782804854771387495544265468569275905609447793562555454355785374967867826659563032673945179231071902229305209699595978861150975875873225368572256018927863604677963580760047994995769798453812697454798360872392049111519991418596684187507106801771884135198673377130073281759021539781644795159475606838482443668503145192172195555913177433587889399726827230534381259611028194255180889372873607975066131204979202019681955260469891716357876177979151532350936884980037892211550915938411500119058804354139748280447269731131865176904961678392631130579522287104002568181213018819667912404074855773077500739044602921743683728718379452905883631303963835216485336921767353261249400643550173572596137671145342526658064807686151333063292492494803896890699636482281135276610441225306923303036231161829453746524634998671372445220758723272848520376724172124046353942403729901170931631256022386361097969198518767261002068928004716381439812035151749656931382559540360138037151785308779812487529096220659799064545808757709635726953612030615289861883655605321400498587812257062520613104226435108267366770998448807482384892766055191791403139019065987546114766437290056802084840821873492863871323085715514418567609945288264041078821151080082945377412570550744825127868678702322795632844446567017678235829195339856165349020181745787998624349214750558284904968667825152001949130305666921204326479072784299171229032479589812228397555018254757068311965611573536190536891644185788107709743043497908587847382076261617382210674942086964704950596761214862148343054420906984987338043115141972537223399595492748739033862791691618493220323943325508327197572373508568067041286316037658807200391447520508582789715872390050444102450357199726252914570905531189277986160539769600277371628051214480760797584797018837613647825593684133549601327970967257723444973768775447407013520170348770516202700634703951410157520564743406662998322608208222338106419374208499758012973337870542708721373544804392973570784533752954982630026238265821249307107872033897383560842725667358192362245195854253031453077782659268590570610875109417167369369430670826125867800140974974046522990974895855363688155991195550023831883436693472074621108130103659240412772981273103148260452208173067764877516656021473876855700862833904871765165150728021136051763987136176312445943402050027662154567331995601317270361859424703124802373361746194211973673251468641259150291042309899995079292577166266802691482924309072013032223124903572631897945835517408451989260806540204561227580512377410020105824725784671186602868865446713388205256827317424875636344082729020565175380692274798562233146055739510012085655259775133143408626609916057771951860305010433006329565337038874882178425527805674279372043027566614423568063877845967814702126282400818452694154593837236065721081443681637609693383376202440385700751065586405172731141703374267834073619799083306740252093694295516988042725122680424477741464462905690918595209785375780811352732023421635882447163437779956442395222733885810260124218682734797961294516939690970448122281847671262348989236004797408187943945250432967568456147860280395843962937270520637288607065228572038119988970882646241505689050787281772804369832588723536375939791800068967286336353343012575782141745693385410877403178897893542339714043765777741451457524100163385332057864751385634882232364503882322850817444102060924436533111619977775164084726533276329973860997105187976923274124908068642282309694606456151150304660209037536130823289701158030197740745326704934911448919693942675397244521274638527336387455348938671967203304827236638968002562219830166131121961958926923424531953715588399371169760676514333445901396638361831820868415830245850192217404440623974784110248628527568951188370219682530332572123743498320303084174915093244455012906924792015745766380009376459184725685453523885490678137321722542709791474079231602819801493261527632515995362103848423139327171483062491186566676446354661516517502690747081371499943533474711986427636872264859670415448817010594207536066733047360597149243723171816231019733221517166870897410812701391434694237807269119964395637600838501025292670022320397865436363420225401186028004447441811122594039753330365247324580153911657396761065021050872565757656249862806170714862821464040432734027325495148132589894562084613912031326243808640661384728352632495168300285970289678205011214908128316529017729567849130530813556825181185843425900843403207632806909078393100473958773410105591361607002902640079810784157465648494291568598002233079283348917365122910854230033556645249262580341531818969993889869892602059568169765856329020456985390540481714390020077191336269062923494914916261337973569572082081408397393301733423747585277416487682249957704617526959102826156179464562615473093271703367889687711168209221727903570265112594297394118084157904529631182090752928790610118244057049041085081818882773414004657871604598224189977622838122436681652145790861292695414247491618499783941461394760440761481307936892182552885330522581688935902359215502951851317518484811709882399014497272963559631439576337667589030243222342461738809850781776878891584419595224817331365750635493706869587687415133229543622809289572555310249014801853092374421505174913251343978559816888538080555602341721996968422617104557472305059783354094671044881324221623710224405028580573738336444159593809997160850067460930405243351424194962174179961714434603309684514657963274969888509585423881764452469971503213207017726632474990478054435047985787050631259859951940155197134568800420949373913488961335477753977910563756103164734405706013404277006625862109849527748382662913124289553146843405258105658512262884232003978384686932236928299181471107812199084463886944387489027281813420921059974228849053561182658094799796590291798432182711490417728565486979042688150221293303985634097391611765166419583495653672498460804741918925520094828787030626383112384557477629887975548217365795460267886992711386632128742506685054590815648964284014004252179478267183957006769793392929368303239092730617420096093979421752102952252123486222042589287454892000762872714757884598334758870266124895624500176614695884568538348971100272417190128128651618975871535306509369904876474659180328504796850831270341255934360467588070065103616548010269443308025364991383717681355380058865363349510930486430052018501731775440309977039967905905565983651178204333605398005298306688096669266568376304678147857717021967446521131721371591736688777283187885251230400995562951406931122013356747008472149890458513564728146767930294202282612242581131171276031222480069130928489218087945635899774847407460889566831364043529154955745143903187079683628255717172826417713474147310746077260204951513506891738462683895402643799411615658384232685274067470135550115522406045377589916993147320729523456299394214256182092076915950589938772401959837298585374842087666758171903954045462613791860714130757201274666472845203162873375949383177937068805884155150708761308084118348523505658149234706221857368739428528750312479108212495458420655512967621600948215252105616303300679040173728799429873507857342898462491613614538242125252361470245275876571607960014331309821630637821178926799288402281295279052356284284426356989197165437575754121793874986464101302861035497438909203674618267024671798158989141617080787580093207293354756588341838718313143923094017238418254719440197648532040855024329778349332678643150703365432354079263484897204162801189121218390909768075808112208771404252721401196796160152440049474951113715328131168737300575461141781889242231522910925169533900806972413083552468286892335247296116489460158603960817643258141258450514359909641956916801055359740929857249869411565928063018455501266592513400473058474868599122565859319673281309886657490098907081427583348040524838699918347774068515962597329908965426803800581658923421741695666453229805467627476175406267371579720577684275054957480965067401375143242866303852171695899471726336803962161409265189167662057651255238253418965648288500902236612101167609748786350330516104399616343607496812220250939563766258218116554360402226301165095475582677878929966554513861144509508652421587784365835683010646031083846400480889131364022646954140709128598512600547331610484674140822620146654787555988345879259160358885232493923588911277486657211605587567447416479598382894942044064957875814024301402534773549629893046376398312982532399038630562968928610899168524293344761803179321469307769870135506997774050327097887187935354583299600789062840073768937942553349316901279485998786555546272791040856764851494172642119074887332708920303265995526937384210379303662254029426359354118546588807415142302067024230865501873752405353689889029726306348129239859814770353876412938228847978218947017836486916881049293026697297180846131208321019572686876942614202561397389306489546252472688248798219917383963763761574346085942384865292030219125979165181264360147363656075838614048773173889336354621757619583889379124495135373009814223189329988826856737043060791543835775699375780069669354896207837334988019840362030185124076650522158433803162666655345588172306948885905436827778980679645196859472486350252491652910197723813366454158431266848179079757574030151401890278221804592845795769643983821255427266772873860193126265937951821827862190375446809405391779433073282479426775617635839536136176293706738327999223755713697990837382917717062543313846435418181755710181175629479051278026832556051432104359427891699193059618134222940919824721188457887941619553273743325305814820518010463209363346021239539698292080792706808466164850838006119775021936242398818041598611352922778275420158513309702851103122883727118078941357041439452419254377255333803692572783476651478216023800057669951501415185891784235056388936855993792515580008731690742122806254557305163190763594710528304871042856228766621220036936910117824609787712506847218092381724758999239851098833990196940877552402668939906593185218394754338071054447657919057472578849573810316502265523739115528154156457247547056840732092130609727186406313979000880987646112329715765506778348409301648677931030978708153760172501486144697543472548503816303306895585037642254197990369771429595264888289792399464138900515032007546104804594763111725123165146809227741981441651604537083985284058095872710361550498446743408608761274795507805343357434170107559928098498773427942097277821550441762102411624527780482537509361667473260782714159895484297698306648396806907538916978933277082617072833860652000724928140706163520101472212568628233873144512810240465141824175796479285394724814080670594654700956664448989633221203519739654842124415401159347554993099603152211118662239681283628180039780182061814609598639809405393671316226595439500659169360736803000819902124787038225716881998210558412216149613030758990103498835812623612607376295492449555016241792394843579985173596357682090820241627928135433222634571123525188653012851860458920062628408792716298034523365622295642175395096758222563133279676431324469407215838794728712123320380261996387060105005349653738770111657643936975242053916735200875362679799927768748838713300831932847314520280901992435516147140916703528870228224962262879292844407350180709291320966036523217800801095764714642910357884180628978028624633824897825206566571010659527930856256689009982966635956720484562200726135932914460063339434126203434487112952682531044738433060912544038815362325119107681756835421136763927156275696988831614406268874720792251772616055809810197470952729883267350428135668663874330796359112674768321563867413239927368010451427623568231727763782169621582437409033491188906043105941820855240694840828096616734519174056637635845649116619841824324727264326978743872011418374748055422655833326286404555458793482423641562984626005202203265603035199322778328016832493972637357238664977401386256194694635772200470312920436009944415394903682177707193542223766918619873174730314494903723039000917935304547106185034833155073277276479000126655804023375305779789893158377290057226195603775460797088245191652019279713155303049496175338563311286589237218305197264857092950570220390720575851145392340116743748005180305976656308711269791623473802716976615980391891911455905355923005611218440638340741598318910679079088749421763514497433779780187826605683736141294417792226942703450573999789601728745182361703371986353166510419019011658020496720230908617564556681352422098277138699761120405420193478211509449694561719404839677020029958396095065934695361672780907323180945767157924887188283077927892535706361737441779366509635941433133133905188364682596740093274368910292073449965733689941250651644869715391143057962111784890728138098829385777449827319934514808213108793438295563454253142009585291260320879236378746025013238007261332902221300217362056908750204723070018154981525989521564109167738775426764054137521472162011657503313964337873142242456281519354740691262747793716287908523831250205017990846339287420733011906174445025183874887499773888363783956508164601343258230380699658741225657784476335036094957267819916835682881231710136363253553183422483809865766294221924279091103827949145148909101060412832926705086100612004343490505394699949850712997441125168551605907534524807638741442217020380953932082218063555684032251964015058936260939777147755929267540400984730286386912052460100891532750159796487115784321630997508955616584022036767558485956907871979681624739837752949339313803597221503390804563308693670140678189076815047166670650372060551830157494674604201159391807507666730763913907625443222287444637035605264793307327630304683698850566747375267528486541371938651876643477929848171387395017592177632928923485454704440550853755123176803163590900533068498511124420313976854275362876382701684980947470351728032232225360392574238898314261667257469260755618169583582579502993790045243966369195895632436553374652003255336786399502192358821197761601091011689132929191121902974841610727286008718238651796286512460755442409587942834488324616863757065954541417476329145483549235024923243271787279960924505378270677632346298590664024626920599139775512023904534788360468806497711133401588110388525300404016931084028933622807844029618424404005501369550977173176427605564348758662415369137863255958175884958223722517541701026363662016645011640760360079881938159355106867382708553577954309077943209133117279744807116534046410012354175726457602506312524910261552808546474180614730445515196596888176294362679841490258218348722016018653881803284360335036118449707828094087847830043830769159386064612644327108336968882694822597004645560799002862994805653901786360166271349674981631247853869814797607576496226500468160010654953836340286625318896896537220739674528350400690354711601990235505894100534207715857221240795034997993875041086175062778423797856247523483846784228951793084256619008339180010821405287691223136838139944778934915225328106751075303318930614684364896161827189122874741541621718691622847609526615417059160227462607730930693134104176064626434611743795474421586899767570367133755116719517934089062179549204768565830891593369675926199664319897396348941798454374635697887702341181556741471698797836817074720940672566596377674240484596623787337772602216141250166149252496323450485970694452337243666337922530034331478756467765341782708520260985000710824261360103308511328867516979350686678417083756579461478140070047922139077178073278684682664364562144288728267626068243344139784549637131619980119911234951663041262615922544384387948317973580664751525677128109637229519897494435907169826835269337160336807116862539730848062773161333995016025520311197447791527424412381104067668362109042488929819348746713046173478823590663496144889712610265658336271654944951917801473049077328323510283018302372569961643907939906892590225001081175650343987920895290391890127665137083514239201641440079119037961694458764873128798872767459094942138537454011973657524932422188555442497100492594182970762846737465455642569455477592361221123677456937042737267449765201516828635337496292128262800438710836070141269270386465667688629674717163897131360318425277869963506661850888364583065007281357189381122424388251844977173247136735134842185181480765192038378379755149321474902895110073807309757370113854151524367518156886918181111175655538421798867296305778254029427059173574293148824501447449796098006404335911757995522397513410986326133424863202465148228504432956420273770544032194351401041452161449574196394624918188078824422910328090603285508832873208983629988942288151289425297682994407638342469860934685153733808398763017727917538333232330531580914947388842693435895603480007971954922063113947297796301346780318606420639179150768179277682698175000578250958228556383793362252961079278975016105065520807983764295771626161773530379623310235586861359917503137679456784572143346913434829180616533681472668861062172355136166490409870511991803216709488261970278917901521149770148077460820954665548714282624121412110980098244787972283088009866790467245099561351415920623888681548800257329659622742845146742040477433755183914083060731798524032217995502002248262062072927595557251872896870850777863243393702985704484208176138165952329192849175448961035675485933076317463073189419444428824100779467976586553343918836641718946897234967396396568747332643736887715956694910146853194251687910860118208452593461803635158757369394015786243716556601253361879845300161611999025064548549437106130377433073715416600483303133806846151608278555155631306121401615806096177067719876785129945858811716432694716915012669957720655869405015370834501450522961594459812763090788870307108845613966503314984533187526658173770161751989751306484988053756423521860802247856735936471259366228764110323351371283024859034711950175706959273228452087215822465574385304843393708292590159257641924590999281726065807364165817120548203799829778270624480737818289884276006520913899348832672628134104292173923257518844607182894676790568815711957845333425525586082031553388237689010799575233266785661288156151968851360779948061484819841836943707576772588623160672157062531456851720296811587012651651505281538376926339698384753467920495216487607351458467769211948295424240964883776790683150299443900346923173757797199145877216400916833229289737179991958801487209083336092627245365972753917257591301117399179363590907397424067340850717947711814906543825604735122512703290045654174117344251265953875344982725225253650593392157131599386194928144309328172278462153915959726677126977391141535230832988890645529085644828728226897842927218460642426365177949626584937019048458866907296541106297062841282876168505078993223334976808744498095494297543582701130690379558251393924180256571351981412234736428019541163257185235330279175441091086860291540794143194463207575544188387621859157275518599341486865836623696329305118731695065559365509133275791531504649102927786563433302986305708088125906782693060635215774998358753805283314409080422629691555179864529122254094743342104938527905767853882045453152016012272541478071045986432877903426339680481634453597754067510672346588208524129506564890199608060487236535656052367046506810631426382314455402296979604509443270318602784448515927772329641567838058027155268727531798861566592643869957094425739481167772773446175174801881300578917718045029757628819234917888202368144522118258149796208569540263253982783192695185165962042597776844032857406215885064626564342039888077185755493341011348420622692058961567583688149879379057413823262153372613315815955956763512609277546721180498603764621154507404427503744720676194216374744764373057516432024630396990241891144755282762644725210574256783899578586961905497312670986650969750425775268668094941071219997057896107000187059364650936315137444324654341715149033515429439473762113022766582383822595028355859251617092203029937549455742418100300191328419312751254467010576975940571843877293150463734558292145029531855382604530620954115652467839246953899367872320060591490827926231706349869142098676264344342269766627733429276843236606078612376241968971711846384233160474977546508910892853793473158127543298492039540264993584998185542238747654852745347445577474409466475206750594648230545586615852681396979716132950393448840909961981392426935166510436958975007799226703590905849259910972110176260583616817229413595696830632485042529924821379914087045326041841877337537053748980983922514248166504983831077997997254134969193289924058851366778631659501796940090776971627689729659938422858824033655667265353714719085105458670976809558263212905147785629164887404412072587183314350100443486295168243705311580536776369830292121368540188044658109012297873109210801033608493770254107361646389356051080683523194099791725105730768457648360332688098950777979864280814630226792133209656179004970442697910001777723803570712931727094438557475670344518114455209444235007166573961133307178399071760267931022441290293924568915150547197290573708896335691318006137966170601162621809701460721025688001478914070545282725942666415219180678829746607969426015230179125838386982993734578817128649671603180554470571533209098257023296103167889006311521950633690126441252399466244852177007051873934586287270754655428142712362383936009818741529227563561419807920726125588301703395736815072640117055271512148348837255501541350880688085705309694830221948709593027424677309148998010559771186175262277997050637089223404715231163542079204223774727014048191288372329492002505269092740860206459294364863765622947292539626499664112091228265399265739656407176519454773554903064344271843640964097579048687244715197784555908857938334774662253552135279857553148796043418870948057644723865500617728753772944677580064221792636218987571602541263709093310042740065973969954773901668281800854306752465470574757720240927567254343950376093311010910334461199470023130771632576711698790834187039990251638760319256078216404503668714970286632200712499740443397188245579768890609737502115018567915128210346661544637646886738090692346562393390616361133739494202562281027291904144314477271591675266483995448275961649454528905609412734433684560405318300533014980540881323392184917058687911430012812966277841183996674944149412367739985072193910548326960752457025255534371702105706847441612213989582952286443089688420746506364008643205160506110053036115280698169593270171750851719290117181371278432128400672725419632013967763409637168009316372407917876329973599192470873297195462062319844748625279036704958462864377739470752866989384236753521452560707297499280081396985192682439033531843511479587109513899434283006255774463781360156883576937077419215441936211226764100206282817874589275068669708492107403826307051094364944965072863450521469039940358327086539352166815776789699598704416259768381240112233916952356589295751031183771384820531420621668643745267006480091985015940268169652770014052096095754671456341988582095812253986250969597592079889352070530669936443901237952095055965539988703271685214649822195916740945478596061596438101245985235132533539041363894391170365627624713085193251590568596828929909759066417739984171944432983193455288854935493321223657418436794778062991039580037099779571089806436619397386701257021113925836456147533236113602503079620842245228347148516034892201510969024726456618659371647863538675941537711904709373193001012619798446057961905452335688323850150809444535350060293574952063107869650977867444782413171749848897649992835240174598069618098255242882099144509282515179334347870273608335600485951558928227891309399178801751261199408385359966117062599465038648123030572192555996607368684314185710748238216726041304241538094031375568734287336372579333606732355107677455007933723723284883886686083531507127925129065424699516814451508438616055539878666314441013025384355559820205752922786655915588572699208600825973945525220882858984515087670886309602904415837633773216966723252691215371857817815438301185251790283122240111616922021170213968406947094457333579979443702562073409342259298018578542738162865322193950561942615253701160948062866400740811385508382058663683906314966607067557612213089944722113333414911991495344348754405050254218954982172380460663413384993371042641436280645868205830416458616069743905938873685924387220341846020817795110603608107086866900746045251081601093505124007546718307036225703014274223975556598522148230351588303568957240670436168734131856130094306772211281544738618748676793428454833515456841842953456240471087928225828373800203949649686155487322441608516054581425512382500662664038210675259134255619155387678032680944074987090250581687820301266621421913018336234054887278511983781384252858394793385506961324701033083382150610654359416739039962770584821369928510740296849633426160674886150167328558416005244041057994816293820339933291623004651436521561351312696867161925625495803006297703584478923538105933689327152351382533966525686281969648554006818831501429158452046828533865085107325747839303249948079604545455222462855393817020021359223028727894681586309884454191904109001373077605439659854423402097771848813638576312820668630142778721093066678149876411959417212742035881802711610842839242609844535980852060665685321070372078209567780841416721810974695418015630002316601699043469505409937768899407878602838304243046159139919832018026110669378151711900217804302960018565966673552833920183979887700633645675912585377158505975405439091442713955441543595313068962757400869725405627595364100544725327867182806024924146274180920016397118728242531542765045634116279443453545731382568331973203108216706386758083264984564396316022954006856756155068329589214470873400815114487556032350164466491045210250575741715809724880960702515834699398134853323908684996602785795654506229823390018914321803851256160879626886478634331055918278833952753857909283893229887250973736878806332395148767817668584347136456104111477182580472656895753611289004365196775876810958172547667772197532846492669719692887667416337527160302058599910320196317064799691580807349295943552997779543756764748489408006198769253098563311972775315625753693214920598063359591973338293618464746192658247785641805260490675602154899072944314125824500689723533016043446952857566821819936229163007676823507623374059525555877946192001642889148981022501631367141558291739835856568027681180637135751706166127566596265881279415719131233037184206307840856781010638988596754452217614202822287996440270880569377679461846348189630744213686651205013260349793262414277940828353519578983334305225740893095385658793274399320726729759849604929157388606811356163887900332804577693833537737951111946486434013508763873045251038088747343200320056627066177410409539957638554751473815460672066913805590641857751348895138962728614072415809979541427244031169025906299449647633877320327154587375464161776824755874982065923401777894206469592013841084712438076615748289155116068900115523405584446438272275144256376858341422620316602248396894575556131667595963684425386434429622414075134141581125109314089147507134996029566058991254874710180259416152002712288847397167146770405814701189742621945417915433531200194955361269425436480908359201889857252369965890766136169574694742222101824886688559842683297199813762425056470050366833849738586855253520756113620018770207886721661152850477245941398386337952287096340343187624357239263552911531960816507142072989186006555335248826157643881734583760866006601747818660976543757816637425217594999821241857935591804211066771187592021575832535306719267762961173674985383174690642256664986438586789222011737372986882701901645528706994860746971215835546808408796720427512910684048541522711261597514901629929428051788350595423901942275278372745091574267067162171951536717166765688095929716669500680932606119947058132123295871229800173407855798253026966234355567605200987079581495748159349043014514717401582158343300800229620238071972641379994662061625399000774710283728496134863818545516496208606782828928009792069937333392582249930315900475655663002146993184148965242598414474220461989085967285746934472100909651133067305169345827730221475775220561127387607845123535122666094879784541262246078175099932133130568286388244132822339629594557430876637295092472905652845354931589846595379899860712980262622204456466789807250607008720606981937418693361053314943837874223398028267173037191809354589738928573931426971774088781033004735162897909982740416194433759881329116661728850754653436602534504137848633645635522089802506898901444607930550910010905692475625279162394749423911634773190258642435011289066051603726182062439140499059046267118480161278267229126604291438480357156021010229060266424943250767972479589744089219246744275187365603355794742408894254948571974498098666050802985893040251836263350775116311117666589614647552810103847979107757811236249530557889026662906255640953827033197491509154334991638563426254274570220551944861396684227545069795336273620828415003545362363787069564936361727086925469255544842435384456752145587062695497629261270456454275082839319638779395181394987038755009980178136514111517922499675451453504521818071760764469961867710999787886169066634300833883430381337252693942042189847193625586774643193219878670918667493952898132759165434231383534122779429307337323969256762727234520613752920534621129178825741550376182998258616828161108680124913730786338055291327427191411781371827220469942617896853651552333477779018565876504779127579008412491298187417701162074275699152299809070763379455824631538885811669448176306026158604272951594509534318053756756127220865882922457748195200119915587727184426066986783317461723821745123929136288690956287526723960229311132144590801058292602492146861848528665407547864247895908193458002589213350279537937870585135298874590657840547017373556017330081989610601617382881792396096338810800930477894431871749379031740309568965447585795454603751996323900414471024509162494100786889218757884758883586811651947336078789142755866036897589797422946222241572851592170404763378971715949669351431641073004917721460827032818597520702742730196334173266559816913682987156606018218161698225870585242628304584233520578157240251405184462284148095952224138080854293190433766423153643045362931127867678721300008847668939358315732869006113849621670861320273772493361950077567316488857690853810776340292281567761463820789361324615040978117165213583246446447741378017612436945048661229424695120785082748999471886504314279166474058440235229946238569943682569021609145669762772034513642849994214001520245558025368003316719854600852727248282750700615510699037944405922562424730877368764355125053500681410350327430756213871760319165593961952490548732379673645207545296432370228890814056654095996348459136220368470390343035643010944948234385384843867482598014264850363619091362861197739713477611810680430987038027024355796056831714795041729349272663443687436101644736058249515386133096142543927156529694880606723152172342984524253506357973676880900979627495632997263001684308444887225436184390893706493147182351288033237898937250663028960887329176133192267683802264757665794556705426941668929096562445037057375336478894556292879019346268661806295724403952424477569034920176730062953922322925716905682873016649861613256255464966218689654958067912350694048862327991944351218400682763979361542872886015486649435963513361027559074558942643788196386862989553895967607106213482879819846947886188612863879419168025904981175686553966357051518337467771911570787927891696964782066911685071099201622244388964883866298637125466923387935137798510752585435642177831758058143621943581186450266033886327266216734029049688819819570497896330255281328049582096257514208934368341227973162420583335033431513274150724265150093251164983650600172717765744213854987039309221343696907154641025517431595688466024300476871209335698748786374378118562478985951883941339655836058463931971918706938761807115347669431645665107290231860961018980040645021075817630362418572568097684163944596768992784294977556587306575326540172074747162072449685988746271031758488242132635911627395252691991146426321568881243272236257335752311590603383508991066731675365121764677636741557774775133630881312919802879947579565399697824523494160542202651221040210831653775103378680890023357026247204887528739483300917916804624979600267235743673103190884668134158822290311843159938146340896007001785728188328227106626356503862704390721556824102345540097171765404027876980283011860632237223222946893972610188554309578980521424254525036961689925039335416142005948986380837500886796815334304649534863019486517103460603754038395423967403421370593799734987374361631036162374115930789927855652383097533460287370127769811397155384359364573013985724389534138814271525363639414616615341459773388291174853995995866159911897231182002730982907642667660758763351018831311095300813384082336129449546844157379596000597138838523722466026448839903469783952391069113175440430573152552183848445972906238796626174439633686457890105513584841819369060730278238540175998552495924466663222842641862153436472498295746022886812470355848883156180808839833738004128437284588491929982675087846355166302752395009889526360303852054884020378299846908475313851374585833854195065720609712859872234552594620449930576018409707719903462631270103208900625679071522393134883909034469015351617952573672572689374124891495184776351699824896541154380019776483441265218091828817155909800607496088376009595067878325990678367783409517674583456454068431783330298972036016891621042266426334808790929902957107652106819712836047446904182471070482901829734276412149472272268915532476785380075195234123566863068526364309222647678215092296564846796230246335251261714123365479050882432691482048925038916493303015305795515670633497882031518667115032422849276910806228214063434247340809879955456613818992793512504638781829505966062997158620285839885480503179827644022939043263059196857437712832593412556640623385870656260780583000920720355289529569943067648910451709099337598695592429466632923492228713964301940850546530798104103999334095442961801371675791499000660332984116446885510343400548114589812412085778915519431986268865454547331012735193901077606468914145816891159286748783126245639492895522101940823415565444175201442730192974452610620095553834471683264526248955043058124842606103044161652762994263728128096347040896830616539015534804780083534274326222747420660416148261177565974637299908443541391426569412343484005520297698297435989553194645446935947998669018116091018268311170263590890078893664251581780819494033106716350990980796038203438633613788835989101561177989302074248620452314290228483769978675429133249961571682519556042499738239012339829077562755710675351959377493233517519233152979932607088859827712164785605459528945185931942314283502075683450431339182901380415114292846524699906776524718227959121513053894378246984666525914366512608236888691894612876249811668513463622946049383472711164938318171225718108553839543194218698871277031815308388705683421206562373443052350257934693425123577422110148718777083865087062897459689247717832695073946681917288156971060532356763832241165041420164406585137184477099795282815603685819181532761999647023585128535210226296657141483545535320324399613340723031632944844375293663052417942016067998057704877155799581215192863324439466529611394824935719726475248853064708699121716129536078706341777269539892368787696000865871662745035211298928826502468689885856120515621795404770197790969012766899007511490748750895454544176890680739448706519914616983520314369851714740891901801289049523572270845807416259616612419517357644022624447656460480210467635030060883980200109892067902789296017057051575953142946789505881972186890843967186598866832161394641042781483557754411448249685469810576259547764814094060606459142196341386824672664114016728538241661516050294038471530898469442997598989177547744387795410205282360597518953428562385597533277406163633205476691419316343332546918447239610918353763778656580363551168898994383533114290852001993870462758345575836532599488049280573353798336480105996613816702595180641842969459444296979907436774370605388864457301214828417976528264913464122782321474578649923756107063963108503220356411157908384254041535904863455534208241509880642447986290513004075425463103254226877782712306824411300971023066382180138076980679907988782907450164370197020809586290174788816945397449335711889847632771839999562318632218742964175768508618199397528507723082400009608460538287221967605613479768325630710898951821537164586017619008151805242297214743352817803888304477525279559960139503194683161986489680029887718579473184345577716597183395475412678987314377352824725870428342042990510226590119769258699806784463787535433178150193281887835076081260419844859619937853055431002599315840884182276822913662982445407414866046059510279806888200553624682884102395391960685486688175211368668753395442855439800825774008947043596869490590654536489905604664691336690792106752674223204369992698654828657362617011322768172396041825472494653595598025554702897310225399994804776924614100081435225970001866712040274004370782445791082517664734869142491793365937829810455292268582521840718065562000678615616276994322318854251296487829597044562171789855008166986283304310059790298548540798291680732728575279630861826091179960352951962352553988862661829476502691948625695244272816654944934023173236264770723046465417256959909459910033818983401419841639239326943675791978204927523050384879365897438568981195677343339320177700018033734240299925453895309764836194812038491223247246018354178442740659154621035837865060931075543478756186931687429278325449370915576419968113824552426840525910367143103348003712200095510149522368312269298052375949858922048454932141575087935145893446736572878246964822405858518159657600107944086910424378119274136796713052909819142241722295889403608036970334678002082368529019658789797897593820100539433229101127358323593198455432562821733907104328686719604170141616884003466554833626811662940030306827836168824835619556819900044188564430621167147109430387187397883267895205399103993600284557988266526901845224606640241404921172002312479773038554098852238158447095697671281559097753070434747933108790428379102099187199876113940712845631984380651449250504831377259858309635403966793337386367247806308283498962795343563244086972106735052745974700751271284705910623166914931497070499732200866350465840948572949672705417256870399771804025962392058227430114500690332192510120576383639646930819224452247754955140783909162015128673167457176846844730272801062740394196189697415562716277253154554174591195729415189510876628441973149635916795188616913611335785524957562848399879925938751076785230140939240865750870889716595893388652996339761514547936339501220500816393803904001788881667646597469758674296723226056169228529200172923570958599468812117590225608805437680049176073654581235168761881593599499938892984434859739616890520044771732046625503740561845584999057425587302663035627347646105679226234912342411218160124085745320536087547663890997343896001868565157496250315162976457156125651069717113856829896955446383429035336885271659476813112374509041646516501730792017904324062809332633656188990891750502218584561090624062689794134829440803376286512580076912209220728786373069000234440039850844314789725129886909955487848800110422091718351290704355973769792256632746800393449495534756744007762008233611015400166235706767198038310546509827396282708273842122547022870654924352980732728569310814713273489826784580835967106745886273889199608513626486180552162994603264023468335715060992736175727357085502766368435590591185077129462936928619698484435376890567638298757804021513337495948576001434992078591044916815395876725087233653204590953793550601521975016355729761908792708767936292111019221993441879811024236130933729974987943099854298905265485853511874623293638960437675370879881613823604399296244554265401549640479222102905048129142681000708677537763146704222980280001473204473970965913339549162272021952892575409442686900683359061841934304667908564593146829546587537170756095621315247657609535488738808868153482905460560213250927876989765757855642237954369008921337902558494880985189793842787704408703356822874655356905162393372174025065387770547991323479867453445090496571363960704182727880736338047092629975594102103567519232378298622717927323782471178509583491840473549650650918350608816897842278669895891373002548891552762415761806182213008358830668624680934822732241073682324006745814435462540523658951280857689867866029950638131653599794224267219733020887274240959230156930421949699109080141221614311799040938244211952997619332352855711082448899330443587367374811574173892463190728184954497569950265346029635914495329505313358167510823400621446663242468957748777028304736383362169478423887907525765656996470771522328383655204270756531353644771323186605866520606832267204298520102282998603848262568709083520816159786232445610269570068561920114565635406309399239116901640552679300483699607853056383644810077399056221615598040284148400911968670575958554586202126027301613476078826659000573925751436355948717593062824048600779964637868000044290783371632539308726041878046389896990116313984414621877055748228630630616329967758892214831173125489234870413937493354149045246253718330819803689907715920334299840954258713034664063862850039156329067855182825895798976334372481249829701583303161407243200791206915265474362878759734623241713889066600158903881880076982615627147882896441418040908088664752567492691507698772138411955114088284374727543971609385140420375426288922594557472632742581129881693761567478402744351108613516006282876593077946574385807915562257867032178934107735788598295146327556586338553184656065146286990335756155907061070835849195944547236523097518273852683088826806072505787787264394724394374349070332006289545272415363526473792233308645920768800943140126649290166614069990867300184172253681907758015668799004059465669689380777828987560485259294354982081114035332494777332535718539662947942446653824824617194173078747671624520529239018791579545918428376988960270232336668412574921516925198621742812959471079675660538448832291643267406262837775155713074012058548678330558714242636634362442854309375867909343495984982382113712363876295039173366687100257859088515073132195366723047888055076339188178268820484357212489253759353201224810932333309460014995222986360279661104599932827178724407679515918263322164294589691057930375873562127168630086453637240089681378136938609347375221763726663407938909842678258299632400882659079197200893040604689579217743075045033239312811648406217726010703992942476098987060826668481271787421591804651078087774624453440044461889943699643528448745686517849560759384360494574877295322898201097561981005582781211115072555790021439389277429942630280904453374680885834921363899118366718810153648312948990208903600767801538556076340151266946660210219663465202047238407830999421857654596785641181598121817023446449972762849435564551860083445675940697577593331273505515910196485259584644511210230882806026823970143197800626185795894521697715232323049098006952580526021643506247773184782916834454139431825875343929721509723393988449619506003774126021654989116867898534991709267183062396179607495699429506860118477565946413206928045245455754679531897368635508828552092156812560340736576488270240100364473926293880458518739045341396484772394979761040801860625250995232399964249189510851514793331111723548136953439330638782107748155756666835073175258105385756283925169341555118942252792510675266123225334137240962723668458707856553444460086371713048186165998243853605055184937335065673283711828523630060239415510097613224565731104393796191615029611201235613635857921082084183361886158780204710043579454841551151756583525368583044125703875661468894149685998103646193612959154694957114280320293567556056903004175349084933946703735614413094542670845864118977822335106855745434770876866088853237146359829779502645574153684538901373334971063520404949277628503646535375158435388901247234695126367536327991403236026604453487327256372302373302337992933469995541605267656874873736528620197658932090753985620198594989089764561806877577137835116334682276762178311822915719152435732497155055451222055486355731347298729633831537492812225718797309632602929935986238363709935910826123104005206387055330092667115501883214235645406869861720422856600623714637183850491376835513965260551080166688918879219157576062736472370427420406081469518442080113536192845151430148298535785624714906676812159432038480477236976714291066963646194601592842261620907422074731117322460058091255821304812961244879954723194302660077457261731268595546670553852036790127928614973234457915160715469615026349845621633728168740705349544908631967910474081204990469282526516208247212735104661980352073358475585477092641514077891613350651478732665922785359840788696636156323816435673821452641215105302891518325686423748117445166131526601107533814470766107372215956940010083682786011750992785118506508321756805066906760079495472145826114646509554252844433343191653102144086129151310116652038271734307915287238590109896405417232134486989397137819703635747779039139611719564584740163297748703333401550839811661964080467233901130364933572927257414116560484051358114526760986710866984161598914650819334360352145722514477606373107463213141432201809883189095201627076065792086395857883038218070306829879401879929679021993713970775198916342079773156051217513195223106674542614356063390862294752464994320455267636224162476109213589476298078487809366428289268239247877648450354752599807879399387865662905303387656983504228194350426735578029371104946569410816407139062543855834100139770142324182712553444782997250715872053092389133054790662772464473300974718473647686881370286556722820388009521228757172681642000188431236240252208426328322652603423219530787487308009974391322693569031971487082778326248864808843725894605806100661069190138410095374978611057004465846875390705986813146798157190349988974167151612938360107709486311408762912192519357913424582938757749026750902129198514439242662486959457908026829905233610841031507226718467060798075322819515841590235334837359890903660246548732764167516763690538470288997240313999669954171309763774189621697640861465110127503755090529785154895618470072346359888146468644422484606827066164116738978289326234295798531917932431369029838902000116716556461779984163069438954170133608986787698931162522611241782940024458224243509181458464322518036937738574381471212724090350331908505879430718801126783800808240424579770352586434601142749919267186536336722415505504921604909563324985777992091563982727684095710611837411062443231433777097536654804818659351065174503729578331621120012180455717850743330029838183155344248870910034433200607620704363078763704694162507127367678465262576337108361803440254976312206147993127584243688778959680715115369276790074549012078830736803695471231217495447007708938959566896342184535029254388976714573652322143055916035727947004214218388829798260193083085261957692777000496886587481204705258001816047036422664329199815923579170385960968412189827633196876800402256835368287033962433734599065819142352801046201379777457834292352638747599712363068906940895901519636936471349629667484276817998030528021131143734628813741559245915895258494009409036878768813595285153928627143434088174566169892510343791872280041123731686049868077704999850319213718228921354206815239902862164858572529355276935520789013792250293901755646521857096456771596079071200888115294873395374314726122837917320047501096985867898082911274589672268702390142076319618754561698700195302256509727420617658470909446387169574462593712132888989308325914992158047938556217452649038469908085556723342389306589649512558290419357077874972607839114211221276952070673754471327579970064449549325366938780627028560477585321473260789737198980521972370160699013007323778153438366628040969110329813634259334581138685977780924791954541207804181661764405853792382233889398761049682715257578163177131322744759458637915766634399311047705200421580963464042749985724004333831952220005957187735610725000387776983594743212978513892138242580226310755213675817265015865980990310516187582901168870897135462500684942102865076816912563961532826653740951998796614621979318028213542121299691531186715965084085909480247533736999819937351901000356265515838440803994365302884547120298316433766381982882639015951683984661060157189487627386787873603330967766946281555200922529440698811341740748917798067350300457225813722208734835773724524193218675958964082422001021894611200214422624997911085799106568602789929806746626608502722412596795861905329517976764033587549570723814216057099075956649978315401424423970937620942718174900108611566987042649218455095512253006941634635175892208401237775518837576691726169599365369905976235075898965296999476265575165501672372813405904256649276759652475792697121123180871643856033444000507552447431290047990012099130566492715237641873108619499828622621010370263150851452123333199960908799775615422067101343392493825567186838676892977240793721196821261719389687738234851650112669345185560914916606516657722550796751889552973264194322498509662638634975640876258640137717053183594437039526497249943765943364161219601097445696042580954947750941510853399904035039817978908569176689078629154332539760920011858941232875123018813799969021363189935896393175103223328363464478484989667658180363647876775879875785080296208079731896443207605355514235419864597121942683625559330802875825035318222194749049376103090299106986653062276503901029740758822515130193580412315943481144955576814469817265772264320833740886833484181050130017892986043871128157680844617634581847083894544434172003990596781336257643865157884687614688779619587410099644902267551319220371852431251608882975908045326651678064905129705502120887572239780574862852967486105317697611776171978306799237365936770971221340189076777980619771225616942546957039746376615008124655072021304828518760653410744183588503397444746563568239776491459035941347857233288892398057986715106202934606997110403151725226049188485291057264213409937911167028290161667032268075001647621405895434324543190695128166773060276039133302685901518585066822693758487126965826308548141279301074996908747268420723010819243968159036884254074908433307582710048292690670563714055975702260497627789061771136593817610653032630375064894990080989713765623730874349211647176248549911027448365364924436413136448531671230629297673216114231326815942137711594841511100555198406696690802717905070809582650295238143190959395652819916400443865169489531197392466801378814793206468116817887809975770583834298839976491388210852073498103644030527517379445676912643325685764101635116305885112835146295658109715061651221202119170266601487953821281272287568275709841885877272873574232599615514933743573416476894478322632202820114568478725681723017660128751372313012566946551887493948937556619835647864645530349580311906602144343933378515902513838811720074269371788478756333162031184350523690921366644964655053980709029641911699830797752379724030609471437722128935582766658635154228712727980945273406686579574995701548616722640696229333572096773493755266363955636543653359244260095860000797696084935614295692275351032177434382469329669534818335842333278538620575764310574974489927994708044149654724187813681376590568230503334143440707709966926341704486278277937501261343053826805400683031973530829067691616157731957830558391378203128747488268721618839188660843291189257293464985602234940402323544626693642203736672117943933340105468045560756112445061415381093033127972763167129600444459099348237778464594712983596808912731412622457435120787823812986451084904217127457999432472188079310010642160155840810199652191761478472988783003984567443089555797248093611555160440268944572832261602001210101797115627545731370379112862994125415655436535243308348111460639130547685041645492688126101463828041355646845764424138642910514901380835644080326635176331013195093885551640982605933084357298996463506534490485800773232059074884219742736094868985228243593888159397983772567042169914885038295529308666158551493695584848363617985282737305966416277796617554992784143056742612751874128867245794441392103409750299810155906289563427334617730272984792983523945171189237418801225036526875009632063094786145932822232445396261985408007057897772894878881553864698430122900681580264591286230616341231759266500498723681247870711324407860290701146688266795047759778050519758691025616604882758181810518875857204604794786322791219272609071190632760464216454560923567099859512300754414400433114618788442800093456761341733080959714048944980508767184711089433425613134777986691232690068685023017420916705868939786215422187858347749710663529700697374615604183487284707705432168515934855744415708231225272097322093136057363437602324403254956463770095170433969280243560881774563000798400646929528324382301428961922149892731071442130827428298174044379212349952835785324921575438940652211780522551069407744948090844882384689778794134183478055466256179002247696943101065466710159431404550905398798163808123899499664493600679592377090333287798537664435670078228846717241090182506347776229172324145840814233079686420504518261237190171133562835450343026555631128561766207112654118552923419365782035274479531050861452914865770211471784375107251340853134557735615957674106557788661284562806497350837285612756705512860487999294429779279236037330086949236101132280659725494100160827518524970352316706818131363185925686600173107837597997293307487064924685944120755626458663437278184563616223570537953603540126105064066835099141425522141714844453061529408959755715358431382835973179056078596817635448503110402215496437152947234072823255300297328996683466770035926796204970972387463333237266694850127927702861681951447795328921788343822482178643438613368857062043417353780277660868186753464706903625778872314552610360386464330053541065534449168511341117495633031352920473106182414690986703983336370249651900744796671444244098661413525308263779706310831136909916038210355108800155506983740030756543405369485662199509291228724522854718366448530039503394021287763974275833915584989759489966004562320037896426232404570290469148876667203272341678023387585778149726244736343070525878648756340096434058996978391361302360131967511441724537472686551101030995732411726448241363424267697681775315780734501431261082412285538371930083278765409793911753172793889977809625560469473682738594177832488301309062801461589081818264971124656155588630179230401606696496554374102359658101300860757527275585893290536085181643471741403325409643390843061120696490558433125135593271550678920737607744213956564968017596221526359291792159141240199098630753910966554089105821861523470618253287400554966794135934607288417243544163837892618740649874948751285769101215461707179057851391638206060532670304039832903895543362283495095429966359778441985009487040934249149163042124502807986885599973341812033393441113977565651522665902262733265093163876279631019290753144888117210436876694588292604658584442613200582449848408918078501041338272612705939963807298797658456319432711024858756318479836219521931320118058315391427998928113694959217521276740610237498678289813991141043391129369109985655689309023364919322521061561911357255284247318841495503569867698739390772925446897096066217736458825499090941926520067979182308155179475945655576892310516125310729218425883583382307979163604181001107476019100665377208153981831070639299995014644437083844240148549043633430439823864508899914519392925501902441196615165142114789765809758251677498552080435385861234841974409570818963761904311033671376656278262961313787814903775510255359279779243705982070207785299941622945840470909252788599317349960623749464598708595442765344253553373074390113350197002007207057714309811073590836453808480815738004538048797441324736143527480446823731339391195269764204787048977476075810847866276192423155350508715505883512770500914392136632042216771656879884629654932704323743423688422616599001763473165118863813567510671025041511913881971181576540002177986157906983094001083391164917173431362075838424132589809194408745071032240691258877115473093486031815317746554260145478753160650858092944315179405209429207775725334167289692476447538473500860478394033364796013610501692133014196206642323862853306663473269529374831210499479080678213354303349659986934023212118359289618888528580373766626539136746797824248469888670889970575610502512236353221824860278020273994889920130166416263610852757603856302303308145468662614079358883957521020772453276071795761318398319402349508530013220047313114361812821172742356056146011569369249398190349390869545962781545172947182422018578300439575933447021565317732606991458953945096163125976670727961234898986611363871911312689880165782583951449040773473324327551038818332954314198094015170904502508674160865630913749292850962052099208473341638718473946551006858883382171999525254514663829625105759939380110149692369386449339856334523304075803349297480422742641536378173226187907354381637068345769229343253481396744432980146126413356606506936278445271780302073619629216756635396071764688375389993329518725774049125667249826941165726103714285232118642389557496633811476882460212834736147862961385672744899754975476218524340988493219313486588377276743550942419945986316728955866807481729562099338686325162265970052400220403260764676401194162270291856958617571740575465548839532718928900584859525547138052136024903575500741159504989405202594085988133819322231420347670366640327495524596424108459282718466479646478167730696576663301374009525476028875583153405818863007648287551727313444684815641499332266496314844013897394776073342667645515811006201284138140548562907499687894187446593486994799480389565916425358959835208109188577950071919206686617550715442062830193687863530165279743892274196096220537899385895519288335559181221321510178078533751940355279667035783271031825369323031024488645505681246586500605813855979668770181579940404925625081589013171761913401585623711274585482237097510475890700721339025374305652871367173571127245534786902314872969264917252571889103955792234937052902158675899916100227784243329571624552334708535167037985047021817539812586777538073704966137700486764214466961896478094892709285362088101981409010678506968923979042113307058727676953686878485974715453911730833624835273879689236571298549161823996814508949369372464258183387026207839360912663867567292808029347880821639108625289763766063542457913342580194372230763020464716401384765267198807870843899865649348851789656727243005357050849578222427365823248814770939100034850850397852068061958097960940705997927512393426666580569340016064233081068463651189125459104524898803139946169080185280648878975401521037337249364141087418480344411015676652767869526924535244989403687991734149428716432575789363397938498790581060308799128580545870396894716930176458691670966018031736144276049888609138928810878774087393241753202131034373618522958576291856276911858729966842243879613952651085400161116349733985192316337302460240028555796744923596383951176240877525779976364545108698811255616450994647672348142538140371935293349839809110044132485328780864145952988668289643730874097947688727370483505001747208796688538399238635775124809448494962496325606684089233852338488439638272604226720097009586437910284572244961918663451621798808448306547402700877367081256613968455765650106089490564754001506360769438657580756372231882618596950106244682591012861102714858053025980893170910945840836610450857400993954656931240658727561874367183023005237504353807364893582246393488121075885167230823579468083672593930130681403766718811377445055254210792322503465679678285913761560636387591627402018997087179468950734386303508752263461976647440689367350648460686890196704537116124477833103833692281411096966927439720787196911127076133108297552153871732956092957193479336657177643003773064362052650138773312533303044954982327146121687991345905705339627016317529291801221902072904129274707374390082316689495777489579827567563086271106969825313542023669287752985106257171604707698629129774546117622599645747578944633639320423321920085548424229629288442370942143157095511546430186450381844363677432482396255469767751046038470428822549446258196668678715723466705721660352330747779931244520995698021641373595084157076041788508217715860601310170506540573668817133492189385627264868922592413547264401564267388728139119795619542154416115009186432701068997311503119382877226157289403162904675880050744931121480003735931822968923104421188773097534798997549542933204420818862109517858316811116626812973935279652596176421946535544773761683938817662783320588512744759066006537380046991538770845059528438069136107426875935346730714672806243234521351459570953705574259987188490167253153014696773990689155319235493053521183496722830545437677836735732416813134583651623490338286393653839729489065503282570676985070787684567081183280991388359812405105515676594010665531555404751521035088546320137157284318919293709516145029794609276104205141550128458669176629533184771310160481465398511690520600949236371019683449570949895998324597140299436271687711022973545259694580931730390437622147782428312903608352474347568875417084641394074003048202895043379493837543884082218048602996776458041775958604409026094405466811823415077240371106433290526046752054173709484425479687939244440937718255126324143552475684969402224294742265878073341753322282815429345494968856249404975643658565313025440425485543387468584237236739453212450053822647497560297148790165784413311692237981134885336008131684225808314796502561903371049329829926830550516291514645785328926621131385231612441542148598690666285665380349658788581824776674325572023925534884233329755065866281967640790373755666634454019357151554961362946576003652872874269322860179108339290141747169169019598621892089307093252135478619612633692310252702644059691081754910226740992410165506921927555871570017204663926122172130257162421345821024270620637216416076510491542799560030855695794904984855878019440608304300994522564452235382230556601468492611846980826629228007823849754862759155808098780372657877515513704761268014201454620655282740389155847866852419212612912338232532324586896863772763948427661317042021049339966448983686532640628632960782521584036119637360011805687770767430754760988038632300624873503903387205378630828025704637147314453832063742603960125847815277486844431310467966097666105764504337980594294310716759345701130730776335959783865391646205566225421194476711455626794977436260189047824890524823733080088611396041574359573469557135653786805002425778511547728702522338772355354919136235393205075130878740073631303725405633325037453129441135419293354523157320375745984513616472473114272720451594293964116554129184151565223092188540179957119425083342530726522234093198280589257770648005780110647917174512342475587106091783287845490747596515938734179050043309764532644705770711660072816977279788796669385573946147232213082989881825270076572044069860665635232389208778910031818505008231353389433492394448186791628860006046949992520484312189469761332259515235166071320925148323896117774724610533580881620925584603643439054572178867132011942876311866854002975847222168777256412431685527785200654575027612584121771229029300352033504892871262747425259851458262363795435428803061333448545849097892784432342378670876050238099386467907680689486189267697005535014693442664677583182091587303435636396251430902446712330412120983284519549971348872743315212344713901974231574536764302782699306004067021981668425610488590530836439680149528669355834890860885217313763131540957309285139998251522529498376331610037588516394337196259968069534208054834312912946342574317858395137604577861785519184498919787574974930589547294608299631086366172022701706305044141067451613888170515113196383145213261079911415927556765162613866163077953449683360451805497939340359946596110417262399483238904487504556519117601088167543057131900153602110288530154952025413341803008417804009459477568028597858462339233036309221093366117888315224992471150559574263708072651990275108587626858713575816674961327763757578069186293609573527478338415248181341148652045396744719724137560289354199388191727272924108324014006854939582627160095722822159542483984397631684283705732533873529529548800186649752332692268277375569734784268983111311498684998033270337083952169728090108432270027947159552293766239412493991907792766611196387073178161202049780733197134076695064855785792301115942761923816788792798066743833776361904019434448790004510445019076230376830958357525577179385501599012579469462905876753482379020616360612737841077142448365623271168319577776741607894879638543892651889598221584417859467610229941827309198910886291840995238478900271824028323984127470083693246266645807305797940944241858022608574965228160519197762283302468274801065074920540747272345421258043998405766418375257085742340930086349962219263232806077540427534448843227453631956828856022426601900174923810756621214491579043802689025697606135308795855892973878698570995348394668304109022831920662541065952372965659264012728817704894221337480717532888619548582461303080818202379847566078165417326168983673829499774267329453701000672597700568565832239936570349519495217780586195869858768249387109479068399099854479854015997111611505023629968283679593613260475758875173258713875131663895371317271982659903268882488489471965585167523321442361314923775772761101759757064394411014796981418971745606804940549721479646661085966459238333547464244964384456642279323821491707942932684771411999389321447888324564011668643262588145874632974975202235416490779642529375685112915760110294498230697244437892303237497972085483585062207485996347552232831268031819314184518655572393834004225898393769816658736664447634678108908200586124823098831560913081020390758914488267884415363733623704397008187606582104262006120854211914973772626100591755028335674182210194070709599850022657276427801461094392372778629106657811861372981454201819331256918004908315222765606332420186968696295796978514457375887400675102087529207374404750005199417331462819786643757501154557407080600341204879133705536878401710169496982887346808303647350230629259490192412920374924419547102744267889622493000727848295441383425989696166371748643037827260879353327156764253145179345472593088983228808782215241650092874534211627698458386071331339249496798150874800648104481690852373317301818064331181028489523421378928344291733983287766415430614651833510662682631883806721795664409196336844361915750283423472577428231025906349597878358669470162443622153844712853592866884144835021611535355267679193189828281658994732871171419054184526065083299323178912359263690266750389772280601918479664580299131871968551570200860324119355734699980833694534827768857064418964158979289594526971584201024949093564496045059475144923702675720543738341051903941332377427323666892877631793769413622730611305605558279529745031808236997333643243346749151413806509951096206715570314915200864491180589209447447204140733541548707770725609466697111071198520051130331137009367579167714563452539030350542999464774068803604330452338620071781942999146500641982938765439837806752222962960899155484597653001325750592868812732698868704481082682848288891073241078322025174162053386612475544897747985368130639634821108587775348428010093731130746448234823470194877193838266697807988288085697950385443940063737238407046851672991394554955235144494333922616120375617021613284275811035605262460053150326606079156165178488047137881362520227932512593093233445222403976349913469477044617891710031108951849934535036928546431754777157791392877236114694961245206878088443192181819523225636688007547382095086617176201035130131044212594035666787824306172643628679879465015178019397389447310665878949644568602601016587812360263160707758331797566672136071502420651530488619205607057385238565885224477897995714964281039588874398279122406443183072685990146741376770259146152912170688176700619667934799957521348897997600915998437064327545548287585847224916997962325544688353487486900916110922426279834249033283009018416872235331951796643686686513566016221056328189476362966070866552326038953828507444554500072452769785873293470697570639872380380783394966344166397324711960455752490351171436806134179756115857531758844442273437952316141240467475862740310099325594964197446253996685228982048902761349107913554452513438358215162702944616178081092078307066918811751522968656502668539517733214483827275602907973866974040961907571284783055942762624015904746796393468922419456196180507152946497586085632354452917942256705374282064747251829598888788679327767851349400297437341733983294345337663899546891217992548614681271750847408422648472297701178494448833404148950972452732640158611739878390129170998863146665014565213466194628495036791639121788074919693694704000733600659025103089270978363324427678489991904188979257296341033006130264674600807047588500237024866624344700304324526648452475060702150200183429924770913676408737238020922579757543495796538462099586508737229633144894438190206574278525909180976660860528515465912387981893332255227359831789214269726668861079688895472697008513743004923533163452156714695388275083245941369870064682042834287301740968484642364645770188659988371072801847036994829483320912722900362463917178373179280872651461406611094431030962227869920318770463089223605233295739539847982664559009936081845395109321014490736664723457451529112073888616919714716670652024033092144137818586911208651321231212934989950326333855554434830953371610922633215006447194196659072725264821610349527386655964348327926285465329739942346272696696787030350844486306151947525026455541978059467227808426998844179021654707048897270966910328705237035359486068121268199791984907196602078317578183436317182029001501336282806164392496547692386106256406137941620665818110297800930888595090855064408311143901604185856273008003535520150627944667334660770914525947797968368802186184295054275971807063232696856931211786839271273293041910947793985536957344585934537873570248296913812356890535373959131514777678752685687977646215129315631796824589696793536226668706717994175707531892286706629651195079244689357045159421235245341638867483314328714031893182742530186221583469093950966119002255698789897363719147244918594753497286873111191201627987008837522555701772705133615824473457114200332009770970268003061406301633873864089944109201685138073082522302191427886299886214386993299496214674731685088710160974292047657157371867869459935128207028762845106659364979934664820712803169984895414241085384621343107525856520002158986133737371918999324624158931344273158551209973588465165665069904026300077845577024807731422298860023196911541486497771039114217879793271082799245719894274177270672778308345905494367090688496533355612932323198944659009924939755753191385468202835138783556069443120051014987738016410952252099380717619837009681372325077854934918794808429251567720689232450178360896842643364721295506547173561422348774143103719622520561749253613133981072791194097845411116847314503624022600391162285761258038665364607501010232989033098768083307064977276353752613774218615051963244554704569597725174441680127269992849874235047136956459065301715409228025353882068139513902993259007753712250722955122023775202371649163356214786731335603107380511872717407186129376498227499818117048872710883637074380973675449361166232285081013700126341968189910060026581916297367644271632509671618096128935147110253427738028163273784257014515817962410269690319163215285701512026061518290528622542881278299577345684823909926652007496968035465100912401641687371444065607211458646099829254187243628922160990008552644019916130313025241116859320977435679347712195440163692158535062518516562661992529356895458424526965540970630572364482556472768396450852841195707875380588776821881767551821989240185835756133595437009616550311995037171823697853891990309084723257614147046283038930559135033881650261062907843613621490608255715699402974779918316978095834221533142654345792057673839784333077130061865612948583315442529855040327633525541162320007024776953144228497258011719604128216635862805996609364448957007286023998453238304512878388588544505744343370182606662805506292331651861245224062747057498865634765352904010183125035473573116025488075010475737593414404732644636482593677330834238235333043610064425333126738018169110822103173220986359683176405897823744726278201043422674959255550698013536767394094928785158834166150222450647527366793878064561806266306823750582217157975097469681760604709753982742692052102765474119234886109099775734635706002708061746357824663503053781973277350275294232692378698783832068721666363225193758740201793913352771720468973303888818025596166811559548219023281394125963467114249341305096522625824664585658368307840820452461163733494946633881439791539968075578672284183060585278544713506699347494987314458986327643908348853253832249521567021702973762526460506656086001244473115791668432254629880581233031531401160425395730465451156772307232486705314665121628528726114231598020123242170878867320313524531912646512982247453802291799988335498756878012270285988406102489105658595006557705015032873703580308142679835793016401862083560020962261200686004947355438986017146091553604728651512777029462455884531467994851413485878313373531482766705934073823870037577786360287375507110699111114593033548427297204367191212676222794902204832552189317669491319335896110009255660191546712452329853348818354576632651782661305808418712146231666383005407201553471207168935591006512345939857149094445090868746989049540840150263165844806192629673013659497622112912731796517946094500374171537793038253900395484562256078044207635252541505543149922272139489842784663908768379675701139610281215566140311060144175855049025416552773598205135274915971045666660504923227144487473904842785354527595837145853699246141773527489022455148080330917504862362996117246182176104109423636035011286054858923952268586792876143721860934726341196210430575321709332054662009654844309254848233723022728559397738728869592412747454330210816947779322011852254042448025468922741293902042738368152468589824680962860317856637187573023884324724691110381534065717630980511689552021327633404047949714841672201876981668397398437501163915178992195244975214686108719364262082433611108552627626077735500649116415608889969122509127315840697406914070510446023798056333885966709441431876921674260957776639550986587223767963032523865147945825367311694881336173854464783397604586009870442115969024177874238543362819377564431646328610834524284631448727210707538662070450627767292500573619257146772833160135415018762477784072867454758040868755194856852717708764902336063297981970841405252868739913911848051360575852308974707249295592348849277710054071504369245821254172317251070733416303519360724399974541694096515452279887845403150480930257571006866425373907954299241429693729971657081672599800112992043940287919488385991210636544036882715049633449236593429583012300519571944703650965024718495955545940235497188975655436176628194747140136264318470208452974700397280505107686074018798180607871871946238324068119305948372599819041548450875083881380418311365607334140601785748852153441361870187730994317009103947260148388479137086297910938568260560914211683410742972274359929373851104883033447779527912149333080689475666927454989129407144320380851548203671222555852750634859135655261029657230961430353412022043489524484385599245642729601245355534544803747371502411420169488646603125117532472459321095277424274252626969553708636916145067119974575356046672299778227567120113321838959840651201652656616574296917337783506884291175200288896765451975149963111358775232044493291658556857988412735237014636769310437401331797628705682635535195551666221549693085028297936708783945171361501059513485083354211268679599227999436796855722911606646866433135456016517068794692943713401217931695428293970608944306438080130368288850977140747792101902665290061553928546920635278252518586156990601343271311201011497305823527781888553092924062757830304390300437372614554263630548990579255951173230703158857701915328631117552267399233935409106399198487817804801426933226456438618534553328345697075884499433807088484243772495680505071017248064148125994211645280649173091669773525166114174129530817391143788404551023968789853964450191252320270617355310107067278857660843115949445333453689775302830009719534734112410735105288146847499431480150634533047726616885751426572559740707794063289448176281401159480089696773240570559813000905520056096124478826452308843379274332941330681529211402280825647403111488873662498106008847158380183942689935276601833105039284844983453127282573106255221892096696126421075017566687560274189355640204451925155566874731928180625982631542605175530141093731668931664540146195938899639166745607959525934575510823237218823497462886732463432164230715337286573632873169320981601624088333481210384937419000960591729322347600442065485104358407209781184479667371160078777365855451876779808775123516193807628106977097958656147145181238975901489955078494328643569288197866290360246435257979667452065011907527503808069779331919062735331096212879393464593229589959115303778878886564744243016106112480418169928028078048783696908423492036972972208824350743600603167527998807973570626918735194105793622681085855678453744527747150462733438292598657080330209350159705481249784409418396621084151253395355448742339569077582391121625496249857644783404833941576078417071007561614639776097803897605572581034050463294347935522446140723768158923964198594535176376533424502482476666987783437421585560754592848668895844148296376370159099374475980572010157899578717140431863305983600024920357519851112545128336946591280053534166856674051732581640057612007831535312846963258721563280503701617376020657636740005124068789314983245148930903644266880356178203153654371965418486041665810022419236781923039231585130976172182710016652319810513935429131449205974006583270232693016537373678214071018942637455469362562004784931759605753902214651678750693288521312172647460086909226376289860507447251666498977610261828319021963424134140056435357295064112609042567487102980798318956056266999732099226343200710926277030911329661396293722632762013613528542085606127449017197113581412170531220946150042428381975181077529696401478659297524613446897228878126987663195578339090103574903573286874189240740983971860589211933988834249951746230548093594207593305776287088346567039043435764965974627563470498362820368342053413934890692431971407195027107556384990735175019358725427797939594266289299507942700168683647412437202007778623552736297206600952352764907864478092765628090593843584583507191879774074664708127290331472097677079359644994074575796604684314452673679455694091639499824442318340631876572389132756377520257343614295216975868951147567795392507801070705368913666426688809987409896443976704690140143104939280613196821503278113980957823270573138160212722172518817277229091884302034804327743954277887886173468543308811584477372922775735886207672361164604418693501177105806430618647231140319075588086462499037181340251176183585195021149093841693492803358643137364098813947338755037765041107010309610879266558043513882785418684985969360476690879583180979298076291070651419053065421787005494744957770430642378250921897894830060066950608074763608557061350396265882067575032110516587304854214410013302675805176444162140052395637314915244388331780387574995374005657396013510510876252046631811637644742091788911086419030118935256797078269047354775612759577822667122262475087458357091766419233511319144834878095684466882021481051287829356643013038328016615719831550538829124249105058341339744826761756497870366401235995925751802848841762704230205902511565125354640584021663529298095227004010407901280400263049420976695633490317687203081978240730179444862890656858006058722738215612648480280703547103300553555921436756404937783538147588340068103711313406736844426949085144447313989597371278006135841488013506585784732093575560218860908880335507175690392840214400223409709309400806769936971741858117132755226698914103665752762476262917189504938976831674424542248647059725128813050243586717407069369041514558542212121914921482294905729040080260427192201523397321059502649183915255138845537158432926845689138445246220605097289864304576850479188749351831481143497264370390817547630360406524368405232788750003080388264815154680820967884623794079311458568763149234902979354774382380601644815685112197068793135020081808320804690098234047545872282502010296055788753720045517851429128540116235996051767282129774088437248216411785561754420589880997913812271738534265202468134914071558607637317490611159701140771008249398266231506050530772798520582491507820769666274580508807341772426048380836704497942450560431564738765808507773956974001038976838817185152380530782117824340396965617277734768942669999391075862840996240164293326197813425099618476801073963088326527066235458312088003682503200815475862854758894198759785529270468237574737873881869815770719666432535182592883174903210690208293025503008276261251545709105522888540975008302140125902478848730615831364180560646592946939782704110638081876899785314960465619134696742692306922189794493496354314368388055788439350456963726349988901034455887301641495546540466568313709647892705264737708049345222418186566421195928071545859865251566797240720091693589827111388040531876807076650509327847100322704367331898762792780250909431087135213957550858282250029754406837536982667608080077736742682212436215869071297070149726004960593739869725763136754896126057338867137961005494112390136909350225450872505231599078297049219913598575420954667733836119463993753518946383153269979354813508185779050349047875076823620906377157225359602265726508326191500312847752624984239262764059271047479159732654555946384808565615166172677953111789110590334500824634129232646574834070079256426926281678203298281686185749239301344711916609586834370803943289444955668432956607028000665848212838087107099672637695177330806584085343774546997096018479210710077484426906821631745596169815993839351116887431023541395391677563217324348139050103407934797193000003771255167888145317276209723277298080450821458667662895950296351130962081753276679880877824924295108563860153738372810616325809480095538851031598697499412561402327895399894169410518870200178433518358572830302082307284620402352542825267785915052899756162691151400252242486057211169566556524875505571149268762755458688816995616366285554540011563253951901682152594038670386655720869798190763524416496386016704214495192263695759341188163585997780595054154905308725415966195263434475557639333017513766382611757782516877247365958373607643891011657302223692761902936357182897532424897508051248460648003029114773613337035851167240284513922036394870890562252256668554779047465058061371492872740315686412321688640377450145710289448357424332744496708792069816953660098752340424823028269670872252249913979194228670291841031171657132311962905874663180277921576852469220683577134463352128697182232665360724436626199628754327825814741274889910612891299216041623869731934944313680055772570184199379336950337087989985805150579720245516984489753048863915405033946139939640419990629369630862239100813774297728768196438831402257865311818876290256935574682935271115466985625341118725262870955184820169199973471218240544643389133022358440534895456496979714464078939351395326336294191306959193577559675952676956655599652575034849599244046714393777493780772242268782452992069765776506760553202740803913134627908829844400542388961028829013376783609609083255842442330301555234638262993969899742993525730699100805237146225331469384604281263506624567274292513409404063783646037543847783384978139146911940747134661148295613413729347064698745664288840214855182127704320538889019203374557540737508841204833141341054881118493210106432171002677447963773636749477836039185914989102319510278790163117667994536563110648960977194205474190172790241623611355440696932826402453165977486351171287441717849123528743182604660164595408192042819721404211155092220262454311828819325008682352668008412938797729290157048508839728764810262800727251988275810762227635947574611298306948854506549084220139571799676333506717022550480076835970741120688083583832064240477922109906199425468205112910322136409009811931855169344408553195134556675431537943410778060016954703160182742391508601548501160774420537436953688618111280710780229048299555353950919263768428823601559471957935524331739116006614804977193072358293480128214529608901899344334106272299635467038973987498825092563958249995938352785272417210347799748675922385882267447099796921376102549688683181601335153193058690985791011368308979006347669673940774379250716501109512859210627395657568183388941138170435347222809987406452393790823735236756838498268533466173026523351943228027040419476583018362752398602225346865486099206858358517643107274539174723564615525931535212767099386884277695057306008389399347214783017008821305587361943458578493921633766733402539182549991569368403209241131398661258443201407814590679867759218093402201362949789916722120428767100913518284821558333068255089714247483263436531758819763628146785553619221075502390657207018728899451160581795827788173692606052351769478539533691337786078804879504227980136633204719511633575969539014238443741814338544825864827769105512893489234845054092860678923827547658691988844074618478878634914241220513672669498678127128370503817786996867726495333959572804851116033219201142448408811945202891613368647425562169833169125481891209909121109837142990118753459249505629509916209044166077354183444784348723568721428426202882305958339369299643674874399644697724601484806046365672930106263210663965624462317250079007767808180340050261475075798797743335762668612852066627383361283069296901278072653096072334072153243254593756835475852779659667837969451518520217221572837204067453081678482228790706127147658315936542887702609014500553471695462672169092959752836112458553294115539609327693657371775969507245901966346803812325535484409262894367130070971327182293636914854348819871926277623584440670135455950419415790665063409356433512971999025948623809069281652965729530050086413034768775724737711030801388961066363065335087495111394574364899319357525055082705558416664423719615680986829031414454681665206074984519497072831979674467939464693118567800154705192340790374492770004125165407903504370579093797241874587123075917787127792271224027886561998605781362148467341304208633712227139630751755383882015090119469676660388456191734130716597794493067346162629102935183886719139217248352799994692615489615677359782358835294398079238378108924399687583833652146433070962931516888608736978328271513941901178732931046673533011378752463674136297074640518138920662731015200811204873912381508925733652786518306450453287588657296676463488596021501408730663678945811577672229439523831805187782512749835155137134340846153141024488635603366380470250670657653895803201077124133203762952526544584744558622372468008155710620782951002887232086200371015076097666577405057384152055160846798658303741419670612405126375424139057389831552835706681038471100277356487601244409248586197956744221286530022229265257448639569893637333792363778756468406266402952505477410644483607013518297137436503993239691162746431145634757936487572058861256374941500309699384752742368585667524450204389651965038896761219387149195633829736904230146806233590554764682035929940717081144316718420462162852088760118328496303105421313744271327484166981719823476060119013243968428100757320729601572859258865324663462357185151491489833859194734027028313261828856628434783950978708590671001490309820620849535202209061827207280545312864602165345910081522029539525387244242155306754353306015945512457486490694823390776549213175404491480671773459490956888203325502383179492440049720137081253089050332887873949036151663077808326237987300616268990081545858219282161488916659436811813026017939938474578225967507931899212693444495243879748175468531595423731167206062197320172522820484855080480949099755172573074648212782482050213240529406253378586764172398920644636127111404576835356877620896931350543331484125887460931720849625272932774623640978933180587191777636505615230104642710205303296057160930896947514743404261742777003924918925784652721504555371585770826490593020890479460817397421080996227500446529618770617342783927207937408320693667244234599408673520400722658126196530265741169752762091704742558175720531534994504437235151000101471596160620961929921995973580020001454406522328022055905229453126485700926881134642921930020640199900705355342591057546407394884742564897073261844976533185756794208763874757637396802023437625935270190498824613218773434553117937756936835008138565589601739474497219660892003088285790186494874603499102242513152372793907428514182454366961871429331880063223877051661879330346262845974323549680605773966548181615896575182128300353645286217627819671577594614511672939744665673979592181926120013192212839317152259093411448300091437048771138434365506237225448741292882066559396384087059884567050487796637145480088488779031025516205490744168443463271642553706972510695585001277093655801446417636130130053260708163094506947985150475742138582642169611808800293789438973313915351509150497667401657795120175562692774708383504792462039843497351339279448368515740010530154842642618581566095766496965929276669865164255829506093658656411618095948844674173900997969337716918907036630808441170448506059617227773525608736667021843310927217885681899567672910733209141659028237216328772820138110139700017239753626415477528342168211306118157105919414178618195606873745760873335460493906644135052591455554087886529112432182103212590763639985884174106239253852302969412137370456258167101565910930160818688396169522405703568395767326821918579755351417487845706436120367581667956896019549937870223166273596543236878977751084018542000416937567304433118252024777363085257128002416060588398749753121887075531151967526287656592103138208654829994038916387813838264922723500885674895270064707891847729041476333833191876643771445503589623644257508859760580582220180257240580173339528443218792781808886864354346223890949279871240230919938115628499281894675910692017367653931866824523820820621358167081847080988341935978552752588615999819253931961642047784918015237950587529330731097594060307849160303494464209565389569987230106260093423202132291866911688979005108799303608591767271294646592154467436638622097022182689965123156658578732321046212745170319865818276668849773764622994356465493880219986359177233280305930773174296178097484998324187619357507384544053021919563879374707575155712947804570948389235929742795931672061821087049315487048592082156485330804915911439130148860447208646226735175070005227089220082951028154626511316229851387496076501122401104969845181685935305624288152681580242683025191954388420343969047186178184254404132162585376109984003280404611520658026776693557196487187637616117850848614253229000079427515883426835530889862496402317390819249504258233963557940666255186210558343544058888678967886509441265754201979118970072020098819501595165837912109559565704614767170280385922678508414819087902060477535362040931979834565997046089835645038233640488055227978865536602169781742295246765504429434494833159872832440509405817621244576076333083861871251537349871059637775019350771220328135722362152804898328833695991613509308725297715628420402238752974695801953577820864346822014782369415872745123888730572073864917700633678792815392896255848092190002730850123266794931027681057070077904616086035804666525846281180839000193868985304201922471257930174791955680550184997133189639033257349501291048245847175647629896895825135775584675560959769973662440603069418715526007757567589238064991652096932914076120146968481997273527980263213161599855336656762152301240854198491243947685338668803466110057343713252739452297763271626212520106632883651266636029150548455946411252151124464927399385996570482581974152211104352933861689406868714002190805133415041175958857205294984216468397348519609150213651129223149578908991972947356822248641472955868204300870246009584361790113269388923248842161514356345494277556036175272598719170091177206322339245623497486161816873855615167115207820945261626106529175382117838607869824281364858359206486685181996410235901462357927169588620250111842344369276585541888766279378993250408621949593014334783869130917411360179841741830651278254035401418459715999870361665347698342581081449858989664602033566852199879052105611691326106414101842674628863230615470172787282582574993567922481157344198463280353584203366165231018816221828338524868370155063415759643680146974744543586884151167266509940249684320029113919387459119429798354597144340638004085347702303471840175593658757738238209145521691765093028928639922188676894927549800141106412157845301827270930054521935651581958533347058455466398808755019364328152165654342046214569989076818807959730212469202423418475737405626247086577920840956307428569932352443662375852637149100416026491326319741957704346418476343926718981645117916842989041452249468754608872985270104844575294868837036169495524869694509453645954127406280598259570534035876122266767351730786738618236658314640444376235478389597113551262852356837613109962504853202217001060742017917731209751910400613127804467522715447490620301746533523643750318470166273020881226880626949255721896678331636077861922512345364288243829417558375410082231019744732183349240462041664870715490042440349644939685463043389957132824471829268287536093056030403511296522454172952923064369851172719607594983588417841170546345272553424557546044351059882178334741702622084628865162277561780637496985336187654106568076052851119656598471297845355871930153188043453617873306540090840066745377562088151374685953632496848683781827935984742524725318173333876273916815114560871562225813932010494918178954367537512645602533070001468410119681814074331917240184890360181540920588969091735825490447293124064909804424936856093892127972707487449964206565154153889045309588190847829413506168752957251115484648851091941772446676587385052779478578870762019495048461563374150100425052362234788242779806191291902479405239274814091253755878793129380915070957513709978227365267720689707947106058906004348140477069393270265458070538651600328488323990830784245060261906874473551869457803181942328607856159386626012259215070354491015100466676895653612631005060011143318031397949571323481620575444573377433203860895184673401863776490062942127611202109270604840510533506955654297910935750946643122780628950952387637485321179935106981974050324289062747799729808558099051531452337981565683969173952511137775994759747514400107885546056688066596029681569997357485098393150188373731687594112865016355698670059027508237009256147632041439911882035860967092124316499701780795539834212080525252569026902757889796139927145826250523625202634205655944959214713044507642283084364158596145161997028016813963248960450088252026358368653601474929095802848494286187398979100009594613394445335863295301389561489600425531946921358608243783241773104853740313128844530528785825832672784014700870510417609901449039922916774458596079326163790714369625747980759806890730881522551459769107306581886911425875327721018271134038201413544080648082184110367144177209138789063275522585864888136088313307112745940088121006090503563977719305902116385061285376409278335869730490409086913087672113442367005530694177759436066384301282791311675147314717757236480204597527711622174942438869754312955911304532649507889366852689640130425456306889999328161895553951223457595170943535999295234304148771567569380241799599742640267671945392306014257282532568833879266827418743657884405860207068853779226463690032757311056354640632400195319005571354763251549999711030029659655031291567258104349257622947486721731558672169684493104470380239490375607750183917682863243983728204279391554131984915728517836850169070139704020037519353813770855801764715783168770954456502191391905996972296368588885043049693044457983497854159209731270238102186121136854245892670794369674052881791431099280525554590146191752692237276990984761573853344255418912813114921902140049133653103971365013698694025322187009501570863656869969957346948933858901673926390369549282302339324991861308962108221812751703064102850280932266391880749263723153779331437670780513658644542764109505743546394705011796809667460160057430086340587493582821550064880240939057598414754086018936936409575679921909599266826998483193274775547498581872698914055246767909056489136895603202070187597513323981596617923546660172196223216505909179136683110151097051604621025927761794697125380011230544699916980192775822298613076921845960717445608575794162164197119149233662819510219423816636793879462105034533296079360968448538624284214505980746749592573072138049094964843035570342217350543194163436387141541384373055917222181218814809879269828135804836273126342533451188650742770889104456017062764679830840600258348648631058555634169761859010000270475238367182330994544180108770271688434265243685177902777654932549989380567971255398635499875834034255131900069910954909172110558892896443712763333400324686591027812504814786530405603894636962923922166813396220969430689404855145834707988376347886665485308211013982053843969657994550583045552435238074792949013937436377699058806077783017215722666936177129034853526188826457101673767227879645444317387986071285933669171845572104154752308573206349307192735334352308670948676856037656254738086107888365358777573714678498592832213212944250471219328437551877516162468664579368072512914527530783069634836505989620645334405915957956482144797872152566634436678282724348473171542647638423539884622897208086941559339058951626280554807163974701052012789603848364795205717631573307772016324408818452216555150556343083987709149627110125770844647418010612069094013938093430029106826607677462976771257307915585084487688015280416434500574224252005242291076397081171695839930134563871220713330677591635265191117381400109810216333935940856612567383692002422596696182690581098122536439380711768961185543869809359767007305492659363950086635656625385810479902132959420755359180208762642108437668414184116376868667667896807867067263382278542138590561218244569907043448004917034252723747712788623093723752799191930124234814397769575227490109925493741273003257122045168989471271502688689892784260465058696486674911970975690852524727811639916605288474871236000450146915395678544952717365279053447369925680163087100867550890396857624958898798029675314357878289010509856334085747406326656187332205186180078006448874481128437318190074300214793717122101290690574294408175896389017523144477669955697316960586390540834180518187878469826365030516842402517056230131184178883332967071989844459246103833642986040111493511786069928228102735253084136030743035879629369368020294604602151145771844745287953278305779235198775974451214002419872117937570493285758983785344183571369060191847738602632502006644750382330337670607426851207006302483043715229979004158855250010063311243523881908086112055819309293885365695825619430912615538352539221502420519550893640377361368874879719914473686901434418290548731349571480011047377425963158210225750747194238010266547158536497638829460499110841922012000416366695484081369940074413052834545820420871738401995800606536229406347760091598033984525172678932528698939519080100659124134007729956655508046101830950753442109334205833569403769383812375997614897341464777365182070884569510557013685760150378669418529298518303552405327924847294443320125556684775262186850340260460192368611132085668923684137225099179315322043476663170584896467987195433741202513586733257112289693227821734354668081961159314814977745586896110118532543967571505247721748135789227144273701882734991495590437096297553988095109948100665939743804772919599915778751579569167853903771880979471725459618161314804518506361682663405947021249034037787626772511107163904266509288921141000783608313557328952171327335779808620771476836086737097910751181956438647544251168482991626719991541105898291105137938839279004904813652097466722056082916757914264760929937978969387446094020173742949714440563418688675027455431178182671521930230428048383502524141830279943799665474529275339573346325331091991797977674921854747099726606983423161417807324670842657885699606522555654884903551300743896684410014482054168355866990270170150850128927616935085239519640041016824672139768839375633726196570924587628249350545208689421581545732982066858898840443674995309723302003915413647177258594967285205692482692381500323197760535216522027746208671559026129271100256032723332802462594746140197942073654482509955386242005897830095609292424206693621211167591934785978247973279948659642982922514994347218543983353181518783382754310040919132439474891837449895889922001847803092549118039171358793671352369034094643555900920045159490234584726955355381732859705367743161344730376629000570437636288517379024057734452873349124106185200977664641392969389608488725055914901650063327920850585744755609701616819626998575702502933902599325689090641613002603155449004728022315701573725202811438231421590887239194127092190318586879770524752723996459849008022316593677751489783122420574712068416504842902228586425327290361048446350232234459595400447760908064627987234799551274642063014177961098168202338212601236361392842850928838534984821780406250197960188875332134031069262191946242853812314025862828408154094673678242342300621277200650098674350421783641568039100236509486361315337609311419879168844327457013772322513724997246890767501772691192191499111726002381435046347081090753880402959843390288180064807481652901351023240905320790158228226997697873748003656817909091348314850008017708512286711053506364857447686378013036778276910559788003474776166396982059363827268982615277946388432795223035800263776957740801269746409830537165829823800973530053620509969486746410133534194881375859613231537043402539289274483426577965999162462335576305457413596767641105744448188280918347759360335650597111086053748118019543233210882693965355345501007614652428265085202917520019658290059051539605500487892140836255373092465981399401203188124876624818693800320157141494560923323395626973967215899423477081552575004737807150129956035354753524468689978850720279113160910045923306533670412651509329150184134638378306076641673925174641284609803002816244098072135319419672100280717494808268157087480820900409673976415835255920308433561370362112809836649620216952678229531350169350264779580268765115956607933940708867602270918398212836081822515038494800749928094392336310089190126226268682211578240083471632705250867949002793353307405078629368760710996965041381339103258786249351209554055908504822261291203400928078983220540937196443428828901301636218013277401948870715939760777896412603272350606713971512080771535185196800984434077661265400320440913711367771053038090099646646563257856125284358232565040804397607862629791844514201785294519606026711798578977387528292724361933882954131998904849191352415880170930657272356417808941792625037230837091279533534722357828297113517993731571110865842076902521019605860749939489954626046029409803005862998133807751200832762485664204561400386909747251957205852449628573314248371628954754965534094191217358601553098846402102172495782552961539869724766670372939153135288733442578836274087562570182580982483969746872341321360815377017431398745371738138246385943152147024314454862964429878871600699640003710427326922029794098369627779570848773994957742809275291567087817075081866483449913703708254857643882759478102703199040378621905538264595115359181390073246199890723637007441197708563917921040421637874548396889465053573769246536793103817969658507274446587096410848229852702503299464080862927688588178840841181929156627199829914967284196136126764502348376846188190899534812950162234603222943121571090547972697044430514633934817779710135171395518339271962890960793040901179365515404842283672348058871256260430704105019447457865911702550514820214199374269259772123212343939909788469445179112803484425889643530019748820420945857464554731140565700705403044954175963527591940840906189568920117431789452399489710514908911779796247828101524106888316663071457815803843243570104276873814179000975127198498579886072001536282638050793499106227121981890844600171779564625034744829011200990111360693046180039020488087519403307124865812666788002571549961104345807555794361053136584221910119222506357953265730529974807797373316210570618877627816384704553335927573693968779269401229108501385688884757124622125846797232723439910146549861047841936299635453308146337074054410807664134701288044964602505271015548094037880282565947182133267538469291941372278817004797497847577929117087246178570811616215299408786139609602676453261169547171020680678919793485231450001592740910676943951449047957215038526074115454943490732098109807348763651971766225679754188799757733952832550841652810116260611497913373421721260147863888152339876144089899200925363857340752980676921379362483422051555547255446538112248699420935341974920468247853603329900118046459605199389664717265658696929825969344047069113468897067339825289805266699050028501790298705823885629121900362150275626926072464340230828296783370131948904601702461248825617342762757843541483853541472516228554822980322002616166410991856169706955262468463448962910175039055942274996668697478567755486867579514582615149334768931263477103432173183138373608805640322491217890414386108488477792048439009326931154158587628390708266035793352619067375690906052428732439376650434877926374319351460525530186550389750851199466459761273635560864875367398079418622189378525408048281875470641567846071415476060040069904676800390817349191321137474444657068168075261777617801834822892270964944233094502502521780858736181592303416205285990776040909949532246369388239001361818627328109980429533630102824832368763934639903381700451004509003043665556288985187049620804530579645106412127204156135998002509710456485195737228636104457626687027533644670225200902195501810615156201511199841123015563231324327650574614122795239615169544200570625303782649919404405866719864402900383746484894142837451976463837087847701388340543934631489996700889726903655911599401434484590667533661389600333649891500459348941495513328228795251886180289649402182559125526841045117309258609520211506594825381554022930448866645738343278487566877902744455692213925275730226986520515011510913574134340539175010123694410513710892626435055083246468185819188080145915111687476579886308547042783627694469809179755570653647685675603874719921918863018003894717310773092082790066227296276561621293522007270658987663904704084263262708236890967691360283119303662416686825660494022322669565699819620701250216846484265412038707063336447864183635015763386726484104281892530245349083327811114120250227543163579350301689792529588463576889179967561236480189219107542048122472498059476185459866419119020487922906248096027403883317424172708965041307683934279821572101233218283398563905136529488967582815005098146023600206596067743626600886288518697884688875265626851114560645992563334494151639748615275796126049230838610876753311776010731958086745148657389888708001852926054867604618253459724355873630465357740175409840468807563958962505663105831437866360249711444479564397285245002649264889548087351988747871519486726847625778790950446353841624727165965274468902293521157882981954199784474010460371545009549129801097015216807482495277573409817346791754195164296454211630398346906867024654079109668130738977385030688637213661356569370619518453124448321625926850589358834681639819530926450927609098875736770861357856924388819437492839297392530272242068150249609091421737141667987856641779246453103237345115238999750518619581280386197511135695073079436184696888101042817567681239425069624737335427530889363394572933041454866779598447727729060193085140557162317245441181245380576462404303519097926633382454359227583948369910040804899609975899429576226916139044792877160238122798066702910641713810603777467659236438215358709752870163548351758245673356987218558810896114791394913489442660113444312490270605976582905406889716465399162064168162900600390242522605950956660993196801424483874410292352762053531666850230625652123433233821472512404299412752350965815034694689240960194386990830626371326154044001570618028175505557010167651950534271943578875872209529637783941094417119624391407696042404949929926608409448561025653407682802021890417596308154704383902733734812544923119191014509441317230185505990752802656831329522047088371497463725766078234803070555266081936038929171718041516406413695684165436857500549265511691973410532535873219594091838469768261735194488719985202956579399147641019743404022839955248099242086230701558084346064463885681818806296784076694098598340039728392693629304038035336714857931961945697334392862920650039848459506475425902716667159860117764985526003584433727485960207922989437480199676564454708944474414470224881937217826320813637768631385340643020463817310846928660846202542481601995228830309229738586006494428674042265242690985869917628688045884379893436987429715109035586294075574302139335089499741512459095046907773691609681780524621981209814585012875896418886999985995750318634012224422243754343777095719107104244886049013924585545679706165614520588591738484866134356015736090278853099235777345136252752694364447287226284747667045359559533908982831335078346105976020093773600200956694230728373078887477365313537606607450913172173452591805282931454051167507475094903844283273996227603773636822110905868927397401321995101222356740932934313971147726045394032385391567919101604656442231028949143571972774126809616035610240708939339818400665796224621056694073060547571006547033988629977584939005005100460271199686809561851588715109880294972515236969658303476576563369995487494590994744498547833414931508805103607411370434051090476941936843565952894408217236900883335640697432517846119525583346681864566791286804774670260675075282968893801752529024886625644925006019577363691774586176063251781376891035745298807001645759618167926516846142044806403075984186300369220828606418034742664079374238338719893975723693089733102141165604501738708529976798062733272048623699633780888513142680323346468640689691026275788990073415805215913275016501125732710801673517195475940832075883495473203867382449621189836294944544329855569955807012873278972225626124247368619865827565510448160694406429902396001345418063427628494457893234048932574147363447372058511141438627568819493849210833731934511893404402812614865883902095356208230096841347619331425971449957789617997186766011096528907983128365532836251303681603956721972050426217407010469736357394321912246217802426502426635514973214746679114453234715943845756771272167912757029402425656234605441205668330828243852984240183484511906407995162289648976884732236141051603881568363094142585492400549020068745708391778125995293667785295773962538591757823634312547235148431886180566265352721350539403056951615162371243039860524204186367074444540200902609073678538557795465011485288179305672996205560461118296612974267552201774772759448656848681298619940980341565199239954030237844139979481969553711742314950790232952417267923246626408624753099466057980521520756341033297007528949035193669610967519067269302869963011862931878596943212615743143871709664255412672416234323668397037072324914027166821254665877972440438023114947782999778027769101895570934763346988163311554527290324197588306390833438046105899204104754402805577233502614826343351754711841728585271715103342514209376082804896290407479528853971266286819612756110354787566450824930143772845126036627864662427802592703637008617415894126205796473496230373170207567254313714085637673415736830970947223686173253094638062824728133168046942461618375631695095653503603328554050223817028065422834040713352643569843229755844918163928751203652692259665293821707846269321068140137080459802856259848431434040846549857687114733811585185928062936847285378660981739582939379162728692196235798182307072137383537063545581193408572650513929228369526980797386343839332595960869982192650662285326249952018848182347149855277269267919225163098485023129739915478625023927014554104657172465008494536266906213921861647520927494307788415315066462548871155130205677718743285734986441030149332308950236411308529843581116035229566078000953921746537621440609036707548590956979944817785981577511995906884930932122330346697548269666856879098339260302682178934615252952466665017547050538404839079714154282226012469157816650339979599486236120157172084889637808933548997518929554205849239367486017292959853555477549304786879829504894263716787386509438653054247618672724678749476749211792435753088622269093251071457081479021461178026544316149718480177516172236738841355322714428197661526729189033169699012664901510077482557008039859812986879410724744687270388883745064120587061117358574039963093876360356549084100742222579955527923262479005802506819525343560215301292945441735419008319972919093984176604467338619726518542583284294808437363308927393322868274342381889836914671509887089496202114423083783741590649668828341457786381197215581062417936649056949683047524358253055200387111336625849290752549298755928053102422497347944185945831642143250267946954598585447229919592238177498186331326655059743082464164016598042020405963711059905474150126222090403466549383019592109681944243476426436066283496551960371983502455802040338454629550645113491199539461767577028638699101734951933202994796357121657832443131735459604778796482490779683647345334808293564753915083407089494883446956384183801332602799728232296816291431152444189802540858123669102712024367721403065807595422703851736944917155091023198917555726563168629347812881618507830569792166455208519814877955185695681315264044321856685685333959999196344167361544205643709870869029072762942314801671878783048212417016711929989687380519508847975488732379058591256861564941347009613370840286284978828334814253268075470720811648678678455825659406466988627286958654662237357757960218799347468467944742594418535908887471158113503080787333702858633793408003411259362782206236469106311515446116645289254846480141445185958195105267997523949073270519838799297595935691952688132739542749191590009617311761166292658657798204698133697108439062009991958789459178329332079857563864409306546264357944541527034583540614132235324383180524189778789415267605451787493524074071118823898333927069527762129880750381212578557579570360255764430903723973262539268100448960368543799225355646397550715398784399928335942758185994844696750849676248075262422006749796201629448980266796096133156236918802768140343806766800639752970007823265278516810609087087444705938840893265383980106915567261627646797284804451752696301973313467504444595440702281092244728125638506337282017328785909360517839567484139214329390124632579639976646473786770543383114562008870516889712929496862543285563613767549062388106819595508357150496225653921654995815591096111248871502173212979935255161672116903990962627746767238586441637337956794947044550256906971855423406251493450511734682888293266304333981838247445655516626631575033281776653441436551322868645297022635621758972688870400950902615934584123259882930471546331038603356917464022175168570907766119217606885861853040878125489983335437695592501712013725940447577426204651997838961118286921954308073710827873092850991555898106269437037228614991858537483655632204062088932559932682601764072305084832932097233464470537059764038497063716206764266916918221666398978405073416410141501744324952963489866462973250269087191550898578155107195246533023574547763718649307526251316529409288911266364821224555134602043573897485672005012069684412777515534331176095829807215169684815513255592240169431998593264654071330367693620808870530104863090659746077089485797177122260694390701203652550111261167904838424744236231445409862807236494904681443960494960128676962820292018258375441094064874768251336713756311473565430708471805397545253450872237163442105732474886859976918369879374808522041473689311103070611446359244279830322264585651738568639953906353273361486359929952853604852877874671617965485164481448091319661806244619732872596732261958102334431532531496378216657022378858878449611716332274692959430705797657611275956393169275592074089298707607713657123782464964721739256311185072448073238125104895725464610778381914678025660532254511893365937347277251678323660083310460688400807023465804866883055550355030089593475457033580160861106823669856531423294554620528153658758590053338670298523219400770174197128899266811709130295555652986233287684987443714685060426524087730676845351388059875112212091038952848611009994929717751868366852845625920068612209525786060155061585107034319713523369048719715480755233538207042403402477683371004870131291891531899196315446268675727210437150347053585931322494445006163621472904441673629035135301995952637439520010815954329227398256726276153308275088626344623331473357024372412147772439963855928147933077016500496440750959848474526031431535805511748809662640153253032218738899858800481145419017140391133344966142623102257213232662459972332326709232620476330331865625199438375659139095307771435822632335985270112122616898679089518640644662282639377262443314939104818531070363809598060061507154607701483893900890289423875709913255958453754491161289478691749278476617593600491588890047871414805009232561550823446262335024057376668973575971360571170651552287920026018241391894300199465564338709862115757337889563263843692517302974290642227187643244728945120139476079194490574836444568017252446305193370365221456157969433905563931538244560351211830549883742336073159144306324979244472859633101057238801191120626967032699855610710881131850716398505621957821254286041658271773938975063510754446208834474726554049106541391368468762591170954006187395129246478015155385672216199087905451962640288104815966842006688457880343866399141618589804434475576343337460737151796971376220677565624528427454155374428386482907271990699342677379815154205889864072045960196378087288666572655197335883483421262565275529636094915107327770878458310236601412288254080884617143495581707862124364804666514978944779788473558639607036955173705752468219424480301424795924367678825690716787802859011741152817262609645349929896645262836049721927496487846670934156365117293932652039881350039261182425111847134436374760057051937326920893256110443319628734666794064752775058372677886799405692432770950709562405536743238754554712926070272691370311931358574561508629028907588581186643373383611384535203320268968411737057834482076226989843353421392973542399898723447442345453937200440344673465595363039690926795779952013340499010021493539718733922908382649343517908125413823393160688058617803577615524856400518120520982759727110384865804844911521493554841087567327152989826331037149016691339811719273402476312293205546788425433625529979878927087706477564551636923215798611577086909934950215073730877109064049127357387093334925595146986578082740802771144066644028690181896086325409210921053776810306192659880417265250201505900839199529395535415624689509936192958473627132923499431015989821355499644931933399815381407607749449594178003128235474623268127955735307363460293049942037975654567479375395991120244662756534429351725346675785910070534104636117652621085835450801861147016581966075144660099634739933414782236998172568387253312525912870477061369599322979083935340424365547383567273050078591821050357529825859016301445035212863411977666877869025083728888680057417385527858080524480108705700989482108237376966067598835816337821210421515889383742212881952113307032106300308947428171344035644610316084099845196162612833795503035179373889076512588164908850490995514600913662341768267232315301617523469410196019062744102100056334565267217690890089779563026884499690734550815996649065786275056554655276991123275217668447956895161496305494451866534360814982751730942786105718216030168777780358438778625132420322301919719597987667576804437534169882311772342277180927523051578669642658259723613968585689837656013405822733903749550211795959497689758889027580037510002370835488721010638519231316741660197908166027428038159528383578586022742547650161917327974963241855127757883302466212331999298071531729174385986450417691229316777111094726143792873245847278280012720235906966622466932189662010557260252935576946113216821394049515353686814918109404219574388637574394370918143945653498123378536666705853989933332977500114308244771746853793192075756283684055762083195773564784897057508064574125957446296881816997591000590623264541576367854213796851011133968761347864305771465476518623127955370449219653417764509923174254870962857927354093948840546860623907899207060364337925704927915765987325131044702960964452456546367285523716617189482634555473371559360704264002651633925861610136749444733255669194480094695786781405905047643439341808187051952771701750751941095274254144303609458715428328845994093123773524847288451605641278131998945351561935874362021847591999168887475307365119059931873359898648545101498734554397563397602224231228548759621273606467387263998601408771415956214856044332104380287009296908437222392487228335242388845587838926214299638033686256258901609261160591710374782329077227289362536035310232965816724463467696346906876901523006631742876724295671731666475881797128066709047973300252444815093288388343320471569606236706514772159685692680626308906160242589152695124094120386436697886069212967701128368372299761851284942788762362949781106805074613730786816438181841230331068024164009969154691278281310971415781141049981406231747989347590005742808826567263444130892644502147686360599087042562730474877274317029523369588599926967827558180453437540169057170456599076363423659902642236573176089186244924828730634207426088509173499309984568241299169404981883952843834642132703306303401276787192590975236264543458930007206002872023496958914499950363835954078995921815680206194709441621689933466119176132883231713772995590101816558599897241162818397088147602695200416268275104167119988057362465549243244849676728496507788668943699446597919827894614974505267965234317639737376340598155020491765535344281703199151751789105039183765651186066936537895249837477371921263657946809354508830679596496579582814295964895893659956646854995273406718118994470982246087342392660320742473237812025446084021838807079429182718221428130428528135830928436199996090857113079680708844288579713077831316035600464064118642882462406832955123136296687698769510188407765393584500949688297273190464402551847705209423193406407476105657033656585166222470985248352804712755774899801762537916111660857221469930238393632491139552384369535275767844258150175309092748888999644812871068964583124393748963546435460861055028844753986410772552053572411851161561624255080178308127928107003461081482659592903214624791789688189190778884612463894753667779592664103785131311699611754429330823278313089948468596830971201360067074374782244028836378695245123324555995688704350478510989980851291523050390607408375548031748073048244845128285706499912290604852729770456415332318731200259064746185736453971939915063877447994607527360248895270495697860655287829495634773183401664757240355661721633888206731986874469346957867485950819944920275921096613135968023483920025938662319398477333092167597782839766652783056840645381939262961075323153323584799288950754925120478935529155158433704639232540403495995651546758364793081125418738295283793015592712617118800083090401056534815382893599195784011949240514850145590909580537555281095942494289745091097430052763785557555550616780920161515042906704355877721793710046779455167283793657470791087435570572835648655511419034531944376441995528994291597665848395719323285775716777331164990030569748264187711819761784675770383780542595275990067255862352477909705623890941197669983092438894236694007615067511160545193753466469382257348212958706110281187364856864425976885681834855300823145712477782993000522631960101045588240089361778408550754731642664954691320721135423899348062523914301959044237726447926136493942592609047387529594311943122475096387924365587827231153928364553930921766445659254754813740405245088632818635906331535392321711457404186322838044737220799502399375787162121542581876775381422624267339031704577251909150877409186267462496026697808626256349374220689494596629076241372547542150505986032368770224160792047077785507916129339755982338658658572190543504546760029309785871215701538834535340441562609759614366892821224504778897852638676663996343541782947737189766649088203225523009833482240024151955734225333910561663778541459235934998417538243826696665411740038704153262427451743365138647707551654396752773065243386212032313586411348237915042800113141242884652147281220351049284190636675234164304316312722932858764938246850449816766503567353759524238829074727667808289246804080371102774842220302230737169162594173453117944678192840373938940049901991990569000637721499564247345305901263041620959516034255751369617363528969648365693371204609370166602733098672514089310967890147780636696594287100717116503835871553787295410025336584355816695957490429268073384149347316756037838042632145236314301919972512098738813662549751295409679145188340799996992712228372757703658508123931354588483325871720948411782592921816671973804395347716271932904173189422035590387370712170974680106172675073764214758897815420197350428012726932890963206141554574849999002271715920186886366858896876698431196667130730043974170906304979648799712511824333812608754766924520887443230821866810323095139904049851256396760828774638713237300137349083722491732502238222833551494596327600761968727819161872490202025756573217412877424758210664760129197529357274177220062205447435791151856892169244939576072050430331899387168286599917855601615837899138818628600245187057239346560356474141970099145441663052805456598776531052133121978472971844099998316355450367100099100361903089704653407254821145325901830719870374648409367672130271600219443809688578560829207590334131842476929792499646185640689256911902634234620838562279471014627989919333873878907592700005780129810069039661257412463686273420400886722160315576035340086517397890848434474253243656529346791669446834407631934058834907745035158802249546538438710382842829524468929322808523154659514799551030712891039224718055514721198011337887494145758378098698378035988114058903836960024947997477882301541368403295239728881205607580621250991251443427896527328538790659875842532484490186653728355793922332855740742973023306873121718159348212460416294831305778894761672717132917913202195626721960621289528315304848213405571596124719956492186833886161522454001963663498382004270740227577280257801957467070398532699028413923119777305166452643494422578603773167994088765383420587870008000677302597274006985895692555305864191542782400904421391707687318028955795356305486953029371139572863835981024297756608307103338892237554499099651239284866572452326463409489816025243136195352132057603447901166450475910939457026046748839546905363902516344411105889031515269746857333317650547696297237393324627030690125963227850757259683072417874015251360189507991296198668427143825901511262712906410618617567103352234128857781213659168041430181390228104630323282957479661405150743885498081117883720874469440272639318849674438758004323869586932851544934433812825355713430083820048062174716137854348359803612484844864518166054254311760190652660957296006938906391741134679689286296571833342254049586120687367254373172785728147320608179699915824288046333239591572030114353997368781488207439855306078223257548922385332127503894246640926522913368009446312349583312509443820328706805533106885642854924135278998676226712282588149111642775099793479412026233080301877323943573462663601561453396200330081028620688815927420195315240423584260692087922688144534226614004328562735046934777393856120541494192547139800369214805008805502350367634997861490777267484189768897149413029987209543965520490687717250584034627467279651061819587542349746740749617681595460411318886433628060760149426966100511110274460926394179432741410852740103788674847250907035643736788971663723967730208614433073876509439081326522096117461905324834988259809022306784821429279425421557922055485241988174976337717510986736518037303852485072286224545244079948008901582135714238407549445724679218449882272188886499481171973787646362458081853081997177433681596242020642064562839034414670998299143395913601057930357207980018241958428521445017234982517420904938157230836997854258580673932110447491912471982874855918408842711751882680337910719435192440273051314167176918336730942666734671193758597916360843477325223005208546903475035090545935541339160794009839116920990535762579763391767451017462051253071831454782871872724986207928765514081917823310765283802056953470939471601914834601219341745445511138835409151843547602814575002381749231844351982234380825288067954078404983037773605098035105226026118899145152905225655882094648466466560708792014716730643735344168186719496748486670726524219508679177891703563677358313009491473965149596156859955377143948920406576707020672731585796884298477079040860869375263306344248877021878872039930085849408880791891893528810290189270105284134727158081360777332042368373750069024175337473829110604217126341035482264432646077401818811480435913530300333596215333788168457409918936623324120720196851549066489972551141240846351509452666305044892285488642407743628694842893401509460305938717264423303643537444333643747981905753201964003157078474706007068331073745497483012282102554039437559997524420686018767365102168888334568322138334231561479759280542345686985207638723580740008981173782635036081385477185244081668677958075783090998688855041407781360909039370206523725290988325934657050943850076286186830925891651298842949120698964248226625465901851725043940126272628351900971712335541192080614302991307104057234013076515696238105435522557529314615610312375915070551731885822448473927996291118724492105490746585488102130541518866385856966294004584979056762754400433144782930406649871308162960166171234006038691851212302907397929052991732758295430330705042531004819428593269000234958348217194026030954926328288101321517280993244497571144232134699967977492059952060922424185194113011032760483851428811654145739969751933606873090230355146640978386040388663194047277106863581297198192695762062399068762084525547581880444601224536446631608591891242114394605013103504357088821998733293838315664795945305468717107261961005694336110519569654018511762092825236340990115477711409268856493381535260519466440149446212265548394914502768840782586038087045165857974738657896005869051514485330587666556401658723708627457465320321627575228960305275001447901294524962576882674223999867274710347934708634625151222891297278956652390218877223605317046072685367779409482529162659351465860112447884144252501677011630581181001836965738491843106488642133861121542834732068901889554708521571001806119661075962857240000775818655751349648140377815491507122245720614112164127751444692903021574669007966934184204833423895316469763571763964988499644629315412597052408518900992310816163566520055097420665889654993589352951990817115173906253978924528424262018243676268364476353729329317136143668736025974998038473723583028458717716905763996156628408916605352442405665897105727314860693189992396754598291338488450797261938708376141239701887385347000499182707518569086517174201792411748229023250866472772238718930018230930004890723618396158956067526308402304245782190253527377596027362375209418891972122947969096389378062139551172582429506391798610168752001244975888747923534405256986256250525784929804448843806913599241105144988134160482435307383214284706525387222103046981326841592595303831840209716484462940136395483920605979886844787433959255452033515325046820633380050101834724834560717793653982880160337101266086602926588663582412191548295557856952295091073829316527510992280130638065293892815720993208927113366763900410617251753200673424952890228887556166192426327937267492722448879111355721177291347632404721669515229993559647034578108041803556162372280765639421864260007249664186372041234929680527533318704098327190415630575672329511422103722605845171818375321440353531215173166964075389279176665643956233460299006566968928933823075083270399521450451463592394554825128839681517738006771308445676125366030421751581437871657789319752915459829805199033438495265161459776639574621249454737432607579090970772590478924151534099225048547348388624617764405126689020060633496740795201730856563634825526185370862860995634593108260348160154277698352228470054506760987987142209968789618694293305954682005528665023588674724705609260804502067895527244168833361752266146234228017415918170047666923198481104289281261633894072974034055395577585208287895268572871258875678857131920965133187280952061155188567015161397858573805376293862276061533670260668247339537489269519429067698673850736515196889960987768879556314019345830973645198663997359772645988248671178076575578166319354217673840711839883047472020447912064081166619698952003522085733783290647835596353182716438648103440621088205976254847188399213237221137228344001885492514076429238739520671416264718041015626292248084563292442970694441259597789881410839821539780073020775957636234116097309092136801406985653674982753884900098913699576045341475215669536732755800698515565946304878268876376553138010690164004504222997405276267789050416943308494286237578906968217117138087098250983444610697030841519399899728499940974554196487272202522572662685957169638734936750236177531395989099009086677449741218393676827421256284876948383004506852789168526829082072678126394625546075542434982027498306118497013004434679427326023718517829547547957858677294939291825830911427667408654140514364599477877802620432479285439169439869024139579767226259444623032780826678258809035835196133920543626903561654828292094773799952569407060780988147088770261250559793058252402781213258127757773514224633527364893743552270476976319054835969408658041389414413447828679897590781856642392877179825815799186777394231289787750121119781219728293934966974249618226035971379536699219974688193094262035607324801419355652423331641671659188498421153838788028318392012334946963683123027586393944117265253886435135188946944814151431502676164706454578036596377042621066849160671892206940126970991000102141194010007504219717545484439284389163348926160914858294056969983540625952336210593168877204388088838351706548294162248518809363580309563166459372885808595551792444464834619784907344426880287118118999431613746636945823460249353027276016433794893022441137296994250458086420662347932345575198632299400459919860623636980420857109672044633488507271775854136367750052446133392921821454362656338751500070561318716810224367903292010171096947287604701336027875755651962009448537454165427350412534505287114558987681694686747799668152319456516079188205065297200962168998379132688054817380581378077980183308263158544057736726870701190819970929588788949878869686149695711951584157385619957193093877370051612023237569479312779779559227540043898019744795293629282318435426451686533101868159139695231148261556008937142778506824383852352287912901706278724069840491095821999865416418507900844530318874496839615710146351252967712729510327564452498771584607725894077428708239557253894045925725785953927969194985728815226965597315736665475210283531365063486842824130800490937919107341122519663641386180582352246863369081026282794404846982850343520212021249794869368660689382812399232346258469220968442261859972548038341495200318495871225695225096213486986697182502052857785147519618039872028637970979800500285952162572643065901807780954712229637191279713599915229426165065646629978665638237123223666105084100011669912623727603494657271548359045192044175701653594266254727065620747286135581436344757139317913974373473574304223236663537435103833769949021578392343882352698990602449485353542425468000023838534531325146960084493797263861225413923849707769804295865578293973316348103859217461813258612991525967045191811563789036669114193387798576555156592455511291447344002058153265097418626217681409178210864392905331258946980992446794021954415783996821502486924164602431001564951141974832267490492659073221464889866997551179705427015968114115906619972033682841657009725616151878375930626499061985704369392680414795404106325907001938380519317385092013874558778426608929721140786018462174737748725385946540254910334265472665424254130779808385758710664630803393321757837465407681441601580989562436617994626104968695874327070048187543562216486303193764981371355597975977785224236013377620549243310516661203316922340416256665549954955408630701941016306952215978914544263612331933910212297475515473939649662847251856479144456669135882396412376850342583812372743362362078518369727351919474506237954261584488821068832868161765570773401945745645940488394838947535987516168880870140158226918881163770693722032612620783365430678841307615300728512731507103223671707055022847462270657694099107150672857953038037956024325059055377426832704360382351282777727546122029064431678125661848462246615224398937707613501545586010331125545884059295861064151244721850173048594979361973663319427363818810759668061660257504172482305050776063377553237533129310250839242962126024397220266956099875456895499115386425908880953304759119480286855522909312949788941403648031487378098946029080934746128398426776958180922993272587616681217075630223203827955687333016459184124647727840500892092806782149834175401118546841678624492466678611313921033406066892431569329976378765385728129060965656162704813734485636446576160814336360991091435293500219651660395084627615688458733570217063285814919724248570727482231468359084710615903162408876713610769226139282762271703234272638269284313082231027826314527012328212278020475463078133468668662420227508302441132389929579730750882814854024804419954458908730967559709284086040903028284375257688440599648265912308437380528667743956829387487610008307086840403435483380117181688686563939462907820463645221627157750329293954428648647345328903250253084239394421379968043331469920575243511454704547656150622098214278172894566756541556087168699880679949059880120906747315115292701628771790433319953313326079711420027214658841339111139175308828174705350471056502661791182852915806359163462215715420492373608262445634377234777584775983301200905223812739908531037850749643141568879983802399600926527210667355787110701908770865874092800784292248452386327736427871927499142087057886492981670976558866444688583918849991849368425337923037333684026323314073553045741670459313578286951081138978106272551382353144216646560226645765719571248135485648212374687898131674868534852360011721988296396045993276575383140662194720189423397443088148087686522307234153737335587995793076551353918684071221722512547397884931444284509004561717729578548892242664613141102706134216801780949311175453184929443279741300345261367355253762205602105090025923415531086813156640604315880302819826589693533808899427325577298974817928869705035669145676768066289285256779042269689595030233843970856728748920781853849273446016834176295789223766313875679229717387827362188114290168832111770968727707381826735984195535093499409079030732843278493098544201408402554816785819561671302475793186631002240679568392354675261862658532168540048944907618494050646602216327967582828163110496195956586658271145912735163541900975906931547491312689659672066251956285708892764650193968618701214870218279954760836075746619521130344022665686854798072322603523682782809902272127021016087924936959222219396728615154116618786412594738100672830739230036458016328996055531322992893045876607462305330499682583168398550573019896671609356324610194340783720370161192945962992925184341341545171974862832965591765507073832735268694603984251170351511849928984984298141487948147297009584228876301866034685670980209033875510950878244503363440010980305472906514398435753565283442563445332026932164368340543817700394705338058494195054706260739198864199374604759511529091003913045882494417077385735001722088889148842473083214984542248243949689466223498667268256467446018080226304718319742373272788390126948312587075715665296016261649231635643978900595640656752021033403152690472978265890884536304502407130035629179169599140135463043665816296497912572121993519604666842027666847052371643552043850356339707122934392288717320479893822643495878296359639281400772570832018946918604198140127220633558541755280678320606982554597024927488226267908177145263779805990907899493348065611143199766232798173353720757473246425650267516822073881426638308635455316471464955090948277692809881785826809963822675673169413279023591263258288942349015863440806006838782059725528683963188758630431598089062374387933742209199581941119750061846377295372802223695545724626892764455547395159879064075878834310975045520495011910511976856713933283368407231996579760025620843987672741836948830765401446203091605610750695125944427229357325357673755509658653319205980753058618000612552720228266022197649841855807720972770710592389145592983896354567025677342609672814976063044689317316732328603013342504393986629079775430920073566629088889693124862791825705466182479901532669424188171511839501471313057402660078256528982481095006890620541472522390711296529032700271036864602661007975185462856686776321207400476990195022554313340206745500772598941373069519969410935324174784549442751081737781753613176418296991391006119956578761917347227748463654872199588469899097658235333563202613918141460908212822777138950457295538906020347266588071798592161747192291448246470867976937660918761205650488903959458696303107174911871084456006900519362751001887169324792462123823700301793768994928842713653712387645230958461901645795544382085269208852326781217244256603083194107635208988696629407413714841507739502206372988988982442750554874819568860538783405148386059876524320797860564098544365603578502291460634681092161472018626693142368327040636622111598772548826011894245196373914916521082383218808106599269353035008666848646319603253450663932639296190734604894240417226353514965609195056389367187200942853254746707713278423748361383816763057945487367180073198869190036990442643476028672259389007436398195315469213230399562964326945384109241707533153795881044769088963513273489197373899226276760040231289877626777038540232695565202053748854808286319537143157560104875380963442136487518444063495563694321524193627138135282107522811085598337420893983601082526265966390301263640470484267482874924346044702931828510471933495399983994913971915509566522129176201606794218709190763571750384002576102051929536795902440268543011779660040693740492502660517214709011327787083952568445579963417667113402829291902718690976932057282830600037874514909363604993864421101812465458766368005596482348904366928372020476621307638941951527637301712757154474123387434785929626094316091005436169542700624989282996898396662580588878214821687925942891033823509827796427055129300097485047701814553938349526430640876359009645111895216086377763292344737342395151890689723798761755562565822763454381928459391666753277499389412856920168504882501927057177152126787687892044513780785207209192521812763512604697756591868749613593577564276431584573402687476054689977030317374156682568900878767665969010458948764887360249624803808246715852638016521509117073657392250104276441180348887289692634840963506119324424150732067141245871770260490677622220792889146333029792584057691940332278932701222608550790365686617755767894204484718989491936113671527266085136628013726883129657931662556758517785166244691268885790627603337028524085928136162503144076589320053194656277688714292073485898358958773559926828169166784525489192281859892064858823782110676901171689794716950015918149359069693301124096697324604925403202013047148760776111910919289063045143294108677063815497441747221142956663914641453116729556779646061209138667502110893996899790042833066138213629554370790838554834964232451633183592967564630151543668989631017722547747642699913688506524762814902048392068468921772632875934910587534831002970754390899900045813121431231062567088698747740755301499981376004687074644749670746062433336202949114756736236649242542358067783440862692687937960761862332117146484827006004845796041615191391778632456752941955310711107221236713473299024339683915914443858336649448064695865499422472334631956702150583693638017236981070369427174288941077436322431241110267591128494420745901553120993122796642257036887034925645778551588814957508798145702771278008563065818671464322183694173097204212337979532333442710478566985364512711148492696704674627220675650305700722665348710221759027065515737516429026034706953430958482114276344057692674749635260962586607613323300030426707940640222821726809900032191632261334586120340903857038356463205810444587557893536361565173357985913123651577803364880674071941892988991462692162788221850555452883312532396447993072084920982753894966256217189195360585457896073051441609927703041567264314914935757695356760399192153802798638024956197395993262009964718077695694723922605568147002376796082507737499750075396855367541337269133950788894007981012590185085366677455126760065351567033307536295282966730120610288467935185790151020810122546174521097269864949545178545242768334892870043033783233926042620321236546121970488679719330069804120898141550734752865061948520799066121143536225795395592991276903827418555201164647225078235689606587412532347726072535111614882503493084064776578180203878615418009326426422493099468271401680608703070141346539652400457429299782325107756930208436617812447612547031718559703537149962984799270110879041616276606389371338605676850931000403144770133800709197101353455948627432293779703685830176998529967802977708381120238768520238818005437638276710096501995720223143869694266327522162232280778996831469247537200237509693969420047934174878807465636446862248937737531673279086093120514521509872520780847934209885588818555365751474176814343410466860688326600152325935832228486665855131668587090240687949316800682698008897828364349595027911711326012523337390362331356613469128936493258186173028921263537095242563507843898649478259139477341460585388090783003160203247477856377737078047745607829322964552389178815987172460120341765214994271300024320639087798479056111545356960111000525216476431756293684388262171202925486470537794594471082066052496073715003297898490858897090248200709219762057061713498679161539176542556728450280785590496820143891414031947518863524776097252238645276166450545708589518308694367976032543383672598062446773461379053876155050950570138258814406176437354096176587560736274406447031188208048811826692248307172012844742442423353211749843920283815757378562827755851353556356161138163833933196083641259305121844936001626631971077344514191548189714864887992276887537136421852082875081612764831335119030154521820547074486804356168331609217159099358077275641314925798513475659795176568557914776695323874144703118096831371079921110588607059555086546719784862218981384097613587994816548004394810899651840805364370053829059394072230365234791023289947883608584903087138110346759588387899249346999182780778640116186353004059786582474208478302986435358397422599435840630965277180063499916498777313293266295791141030422977518411311122693117582282364596604315424121741137392819847247149645579451188537568137113795557376573393719146143027409882709786321061150205970860198293412672993219412468713648821191842686721964913189871126325452734007362906054996113826027611416466650051111686112086038438310734500810778283558131999274088817128905123590148146025184778895210613320959791840177038416841947260433741042065430642061858830391006320324899267727871270394106508474571208360629485049546439257622711891739137688362114025880863172296511177153315308325208738318182439729077868896756123759662850970704293431952593231349954582442400849291547144437311641518375544380189992070604987591022682671320785873519550046587807622342246271493734989169139850927857949472604714958489636361914166318661680295692421004933261285666997579138647240522695494636886438571122285713259928353895011120896091402375938115640818890793598751873138777279445081460695300435865371246978819614024435219688419612706108855330235605308993002611713250061275333725835719511299716482640285291083631775771168394379790456406230650560232404181412440614527032839592869753252740511920007939954972528274584612765508816628195271075951755813063603056386228033641186986871069659461821610089672563238800879161239975473173770319183153128964510228081291037765138741995141523438739631335263399673900695571572258430701896218336638671124344203485253497186228461614100830290009893949675506088586298324378761979049008743102878478052932635561265003010898062725951584308863161470535687317059901942682125107458640795268837315122292551074905805712837871879983837113056998466875537709511130542341321127231035256679809539029755986668115272515556796346462838261074697348211248954036545149616434496589183544521113013961098329548400278763785978819654249198960696101642424658514221194343989745689113853211309574929381927840258022619516436252386346344230603630202403598217808169104651061938884018421696359376095429156091024161290411813744538801335958274937268484496860561828396406169740370923544987646954593563197008482630853537497808169308081239222997613511772839143194287012346101074012471841372437371996780970997945890830107997402484697043555146809627049558907670462095302849022143336321776202113867816998678584380521278317992482448226681606275750772137540228521451072804011226631891814249650136811820529581584962658321402768175651749593902622425619244734767429679224196368474463300827192667293061684916315765038480759011281193634634897830003153486085311488019161303548361544755389961479245799982877059919675215138481512701137617363553874580486653381992856598688259342814479520842120535845763890744402323028732508110889636150979300914920630323184239882763203727273852241289393361490857864980082610576076534669256360571927177716901788184492414844892518071650189957770867118426036442544141838881682289646084496844574419401901124433606735552478367005345171300165105939445581157356242082241579922570874987597979247024796014154941972578266932602221355750030519794414194597556770364266097155290363051688910126127839401226919958827096182729403403056662093361617619753252111499767885467910894750683356550987463322678056572801971472628290848781095461716756298887382426252987811253706016473649218626878668699575277026297814522933853368354763630235288681194207469753334883686314608446646151027132208479531358213237254168558422825884760017186242057961735564294893551602238965216311055485377642759717208197290579364108152964620702667657631578527367551256671111094819025122230062405258201892595185539146076396406955650652216669794743642969958544818586963859251127702230932582223479351891364214333481583598972396127521135708621333499050295870320861169622807739708347530101243534667991920618708038640026892440913648189687367739653660016506591061580847391671342098654911938665169181389639289764098461025639539621104864465186703638222897575017469402242927180203883115884035322060967089580477313500914791655360718787946585727482577738569414314897527760740365738126954522353190689239325765231665930890677541100198761536549754982285829588810363804230147397049609853684804278292040166225202160973428320352737910901510079474830626613462501697337936606090624622269105209343765032153916548127409027152757891898439788053042168243427919641186535652080218721146666586935296150401883072466160894345146070016625683217202356019130884546444334353633384519647150429012126254359092844751511204388374877043138021304886401247879811102484961701700379919673524620111010196264861829754950953331906493806992943125785755475010542439386998034781892624305758075516568513848086590267412183707122168329536773304255133076489402743251986517283436622133837966313292820836650808789653506570721719115748199562833146961858162020587048419692552633972122055253511620786357505506964528674479694634637856081940969167804389199981290119934755928198154311124487740468576304349000498319909843350226042792729463143067989975039647402158683315809440714676495624710208676654697257917148014410715103855635360842520620818617240142864871336049286283131016762502383129378381201265404189849482111160562273190407745430501388029416793719685869605858029001857525648335524118447052552407975606296473905162366592869280597918458787594827905348167999228486725943175141503699969175766684135081157540825082318047906345999981074085530737699164811080664434517816886408182857278701386867052467618575701463598773176792112941748939459300628656850340836874773867834474513020507880529934009820353158129037288143778195907727798931514771323117277191493788702881454070851312860695792813872818913360858197299579364205379317705314877375409073014394468038340960224185377134248614400325271512003528046239633465155768904483486057129355636501596794328044247206674496214652254184706651715484454885093713302768655628932260415828446877022861875501775240474760255147116432774588314797675953079504100748963520781886071223330150156776075142256634973841697461984725916329622406402727656284270619096456938002457772309191866592452561565846500192589154663830765817180062622322719353278385496501226083133204922659145767365836209122308301405622143947892886879400206175968588128161335577719086727323710721645753113964141704677877081104686206064579629989515088012860990459147914067281288830630621115100343365368978828344912449729538406107471095711722338318388594318249739381129322318551643154250599520140106483230279760903213228652688611320923200584402319289355240249683268468466972769075983391303474602207480950694724355787604704013874736568304053930598671983845881008534410089645867146521366823423839976052629573482545965708457018306396367551953583577715396461184887363675123999177125881721312324738691354750583944393217547604852315551746007813312199687281841371722871173822692429912933521933265395211559456039220372673282966437962761373945479030332460754627231761960978672072147357453109880166097118004478803806957745933110894237332143267986826562861907188017020000715376962873862038225899056420588664720994566378315993845637384773853280237074112515548378318985043238791459562559032342599831492511012874356876201793561717329595224581066140350754361466148428955318315910151807583528073780178133315237173818788302322291970181291183323097612818796223653607007977381562372002804628246250855421683908576482817274401799030595806320146879793027691795217964995331970970693079225988383101184641918927835072469008859239442354555991739534833568771935574348761307095993430117052486085554692654256185381281856149686414038412361299319171390245853860748649711012290019301158453298064000622028298140458982395464780235845498148501804910379736196472791955912091383530263518243438586312164560562636960537310287762450016013701306726146503428276873654784335753398078697703613228334689521904799211918418759294734875499530457534159153961558484944418260820799343119800531329077875673682079445951850833352975949845648626528634257206236892653020901775562691932659314217561168340088998931999612725957313503935640447077464899623886415851138252193417259209804043054618741131693119340316213981270127866114055804195431555569982081918752456090749298290099325268769906319987261954219954521642152208180501008216778857318265137917053202052030907655839031246241452170328473302888080129381345234204766290489993873849320477965440140819426518922091535732020300060016301105849607759434868396406296496045461039245165872497485168047929136755520639852376852977747355294997060978126497337445083229099881083363504915069424719614282676573314621179525501674768353505598052867609817041093978186987531041863037163029855957592825106238851177226285403476977790759845147452777141903016753703630766649922835936881631294263286505507550333541231420177653388655021248449596787883737475245514013804541957548386397286777530915668886097615617284887754217216876575730516829138674283458762791631758634573498598518659899105490131229944840285833534938884520169205897736678914556220409180430350361957274761399431138040799858228753143015263400344110589653306288859522556736553414124335232167164260535040784884315509133767608042876089191892278495111588042731973051751046581700736510610544581782986653893933697915504571018817288713150285569486094288568900313331559456269211034252428073327188978401338549674477611628050058030456629578790278198160006968505294037957546221571044749027196391816973397693383904790184807537850635169771363990686977163033652810250651857041666369005905020222683647296991410571465666904285201359792058126854067373513329739015616250287142017929571324430746697660221604457343738429317698653602346056854218658865571399766701877708517779108928738212091793931319735671157674468846278335658913309525783798234784261361655663940860349965510531717965550946109093801736977103284022751058287829558820412995811937527574552763564746962347272461559484825235740722778254306237330630629457546210195836359819911543043129936912882939495408076155248506793328315735126794886484860983888222736755217432830281102252101748598478121495541419754600498501395576391197246955324874710387479210691168538335763026237410612824084804066185183889228927951966786398254842539411213815173069738691528629498938293119771249968859606143867194392436099546403242246162511436995212932782134710377718082572145585174496307154935653086588029516001436040024366431093688124464099486396776080487178142450292356056331624645740809410759654344399307031804796371450686098984278352911674786917064685908562893041345546450708880049244751529605355789054098335586996674510555436894050117820264074337555947297795895433022262380309772159862198523744494003601860387184633450695343641943408080753057005314783066884594826558529280539483507501438838899047500971600862820273849966533709467258299278159888893387573966878669506095459837189560753474626265332870074552889666207470746730721243877255110722063465768249061385764801719679582648975005847570009863186143336258192613518673563911053891470083041467675151093794183568482864491678282664516873224482039583078092130686168994644144090900411176823453501943253724526649556544669339649855244720814704928210422138042943401774580732057283302550894305793749135549164739117149481949989349935612555339156850788335219527388753943405674432155321409039593266689951903891736970091591468130606642216858660500229592981456595950906248642821767432100558285560539506340146817927903373401230565833063386860865537309917405582468983219805214458402865740628693468932907785145589879006042491870153770555838951000353084256464663804951253445424888936438011076594559099532367709268720081882737706315739545501614045795871072963015131758536466759320509182451383487994153181625760932435817549372718496012149054711879264792319782706766570382989628954922988538477167880719968712709185304550890662538176457166022793759032119056874610864893057847417860721671403545027284584036948029113358183729573134381316295079863066411090603710501779630455791486434721590821396877393357103742924912684973064266915436362070483736259359522443152995044730221573566065026590580875795603473351122251596691792303067863005728970031947459484855719853421450154297935518851073430928345760639032754219072199151586842292186001079893057068788460596410634298927018593335456869005602388153506411262779906678619443004667003261196523143591261891785675315254702153622470859954393414134345578663605849246964498276783503675084992040722687297567798142682726760769388285857363600074464174179882910624768124243899722904655148873056305514473003744920446709973577849087798374336754467345273476091626159758022911409944556597518409310503897749966270085938706183007283136098743086022776789288567952862455795225721288541962472179141556550436907488458123249063537829532731714860481023051129335070318964045993873970562603671863159473773937898088841697968798648212330530557846746098240664573720032883637635921057969349586798762594514090228846724241731877791477058746386207315097884764198536183036708443949573755660692098860517644449183347468161514788113309833143810487038214386404504311583614384811522595632013619920377397455004660588056816735070936702947876486195181109738045032706159727725661954730531699504137890051878784738496728246884290956899678688950616190345564165280466085622837922078115218933513952004941043155407613304140953643745915243546210947240609238341617737105487615007219925872391735913350897881559703466034151942536937176188179493144311587565061727551244500342893961773530873513179264669229669532603515882498194975952424361858022857586242610933432908676010930514935973467641767457120259241941421705872287982382704716798329597356461818372264687561365735030158362610654628967224076621169691900974716563336821482302537846828653439840938181382660840887410722671530378557805928461288839198998456060245855410189239036757644292888659375513689968113656469327865371688595376362769461620865548000872023192061040382072537854254957463551359652581515164540207576986015324796890821380055759162682136246283759952128514855945054228618425078412386586312099432738856317227862130264066782767840567521661984705554358810151524275809484213150218995794831407481584420616636371912169168000115194553086921653586885493148717469085430852333048821313934061730964722282001603249643764278640971807037273324189335700154513012955008447345544949678841000883613043663555222576740266603044183129052797301645098652864553402756894279661073012383142047243145868943063313439985928263593016483233745875281874577862287550497678488969698719969892843178961163049791306746757089047337459819424557507436814822883584746517360416833239008765775952857864608449354788524539796020264042080133793880185575948094868980202916171726026557002210784243275179620752112579115536929607404960427605430018346222937345588564355623831041143278281357913132778496065506576865804528276427476021791395493591727911836081532198817203736370616123965269561761060475502587398387250906131549750457789810845294003500511881555531799007891501785341278405566692783772135645930043189491110505854444811511462732886384472431151189195003364003260541233889890869748238985368546087928387492854465812622147224682513272301832324436833328159064565576979404174910139991442140198698280035476966891435794749699876333504325858329705444901085566542704368865695845808068113369928915077966094451601959376435814145123423581322775448279106964411061031655819976686171152140692465465751143401966502092731284841703252925967393788441113594492652064151672223339211072851645069348089722131877106191601058202212378728666667815937281209127737978297679032158822622458491190432795826175870775110637264201920626961633899745490962223492824397204642727716451337450808000489104494241297048360032209204037865617570101196803044612887022446399714528151122420458544739825076686305052868926211816961263317878974967953905228309557136005461619613003905623247879640591505540646382105076409426570159582751220725555385239963580765149002467948382286294761060924668243935110942281429211580917027219850001608980369155192817947263276377784592553285162696564212767002100669689935162121630966803454755115983435625915843070518624844238296066879263873479790691701851017818835840780750914668400482401152388582715359238277606132854529413646508179650954953688609312005969873298630552142465114072764769794923878871497451655074946710929535414947389336673754477687578911540663032673098308630982595792031635623535422721175101380292989805698938586515004536439795570740138906313947486312345794741247736326434844362455601090298059897298599692956036284121226812833067913551974263050109427806017865601052009084645623625805121308544810435322218830972541213580388598875191365410166475233965147051475760424023581048823635000273604494508297019547494874774643250106636945171806979726971476333903248892789293675129680544874133486994109077741316331883775792939940421777418684601809180327721399971848427046245450154437945507696205350605849341000905417895928481624019453856343699216476461237658822208099149769514937234245273785747235958432746919173936636603836701420421499211908788404992977350524677275787881722396361981994288273311105687424898094948453071331862132137995185045224770295716762430946964934018325434296588573288910133503165746533243149783195339281640530283761180665835093406991550609764392404059968943581277107476655194757489159951038409106539655913213270389279538543337428547064839923049691841658448577793464995854004477174164225775876554733441475149387019099664798321317624008395762540608394295774235904473421822787632666777008643744700097896864536738402359568923359426019707031000591108064812341490510357962101479357251944713853500121730060116052919078093948242213673647070385055910900588394523260776943666516699509018692479992914131927614572141931017015340287763743335126061957105406206585867988298523100361196662588583183866619940694187504784479987311399397863106942806450803669822335628380204017653061143158210056211853003438820875006923114884923366388576691935363312885784731172195609555652211822422042729722651625900079325761584089079735294562269990739115331917288619144198323743509885011585989035207530318689513238613104255657828268422553364655027340402694671368516416447382152810288257449296848032263399481403366428588098935355607094239441349161369292281142605373809634900742345278400927431975155095668549975571450084416076566549331752068886666594027687766885825047251202781590099427740851025153321306793059531323797863075824695685919110790612647149414305070661956267347732624894814940324166033325971580356783100085010476857710721370674360400772704440599743751306098699321951486348447824242721179069971244487816297005356995339921934760286978956378996903433019350804547078449968546084975355574740937879317083860964070089156489520911708165239625741937849336942383493692820651279276173094318044948479719311967453800989734719799787703060454131169507313254780453893905118842635695039134498582693671901792299300207251696579484284539631928287281195372732550506591198840249038118871965705526576376827454869726380142469670145518257938891042906238912773971885939859323883945577067373835202838108366431065147172451988073561743089210055170063684062607713704736253157348336807483478141718208929468050199393930566053441473615872858778881198291387804202514867101095440020223479420198266500981739883765599338488080628012089309580919851901938816251255907398136833013275179765405382738880400203733905219342290393888174717567487199781434790200426044606063126085519133270675122799084799180548197217150857434098122600074627620444927784765383827842692982050253164895192543525619542705289255805946386801389050434629514650533088847630877195933235742361367264383601542152080453120397353837401114555106542289897432122292559469014413130809796252689852129714111471283781401595039188098480840828424815359316577181059342142032554612808221740343590845455938529417205295678799654664384725270154650683779667497520044716094695679063393479095920073262396494926726179962624818320908415589392934082320474630783296833628052643288341403632357761540033351567355777644474281465609745321020765461398940999214033225061308513701793877467504289871217769574087027815837264866292785179119361304472944746652525751152933108625688407911796324879421404442637756968781187207708776334178348241164391957490007057372821356149193752116864971172600223889307725428684967332215975203707257965806648608737194393108526946982724193270129009705312725082517621294841028166001471677909369942928560540878220938748375994424532634687801412484842307746360670460222946752740441270334563227872292350157158924076860029086264910618646507952686383283983988771304392950019928049671232296323113993489625313140310791790663483276420952195444182346628769562004146261071519858802952956733266706314825781503936950826965488400940727311661409806684866880627766268470802257231041597877121065662991638036982897388342684868197801168659630228429160968880037119320253807950761783873750628956398972425037736194700372533816488209411423165704357541755602623245985813605260585381637787080701759663068065841563610013487831667280996482581168418775722127610659986449960224333193103376524317773857036231414505898257820816558926933560550426455633034829245197179714721242946344763006284809124677708566289264327886132895892700198391762088424512759979595707157485244326906779712150747098147995134002997328389641681646876138382504816240017727647064156165097736198319858738954119723375963320628265397417564110633858279763758957345727300774506065725991059656022533944466482549418010071276901302105294178749353845128431581912197144535107703887459821403427099258000829299629359288472451745132498674281191489474601116337152859162620643124495022325231658175399580710026252887633072804641104554983906110859830230513713667935175722640033499318012042946534798527553182605103108968703830704040885662094845749875887449504167224664581874860089773011422041134486607776568941122579934157934608843724235319691592294131009946157553067709567929332818003377005399416380739230391970125610162064038513314209874976946302577614006855215010439922866441242872252603758933071384359434706605773861409383103313472453323268509353538458270239291524983753776521827830206015482982259643366627592484191956058192427372096390189876226776477748648115816818125401502258038327769341003087123955086315068677852267968103844131797537417292368124165115048830046771035967369360411171937826044228251206395763031005069442309977041320893590480765844582771515067032464232300863990667998235255047706008003375448801044057956243144311016111147491959770695542824224499270271124891456567267845367577480047507697292877876537006304338507537369073284485889808939239938195679185691641795507106162541333466165568193818225850540818671563666836382614733964230777225174214925086727149971324191236691167602211074301261468233607745963398970934899871485434624730395970530238465971394241166681974117301111339989640089498433248769437204755892292957146493274752124554554724222841696809454066617640011346581493041544219160239370584369341531816103734007994890811978288082823396382670237991367561623615856430891834181482696360939313837941943948735717481929293817006672098481157162447842468738463710501158240944182479903219949182356246221873027536715107953983901126764500814107364072757304139811402167878029808544804420593095831699292058271633980190018112225127702336986452850516627279524162640738491016737191554220761352138824052784627148963767659273129875655292837602526590607376844973813108544911721691690797790399628525390966672710367384025500265603441625769400318720112803096922881018640488187508490211104678081064470150094522797281061984464050954071995023992737271462637392644733800926587368494817533914036707781315383646860111262262127088661865417014444217957801937046943939451796406324472864893496229285412132479097873676275785827750449128979855962133761943178845176936317498113738654618274361400405488225551215259457309999298075263272387704447581609603730707518060397468620686178090175219293721027968792271578081185170879419800506449552097622240411489172665334381319459529600333261540865920711951464684057999885866190912154314316123420213177953921629663405742118424458632088308089372113114755887473146616882367363231488094086797265479988398118461441405869877200101775651755910397580990792552662411810575113298122423499943942250064923463494849358638465745027085180978395205640401083361306006246588300234348294903283350050272666936884980861690404349471013008047074157300448449530490977592039186006675113923355962019655574638856720314981584172627717892914035599488108389105114184112335713126259781676069517712196440137062664779259180927796779159815912864467508121346634582591816045746187974655319853202871949390052262179976921642291195147193381849187781613492454529948045685086662700577813714854161299222227055292374000293947979630565094640106289908895510102895284680360589824635578627074532406708573176964393028703771646089952383053939151988581651002463983821282356332100642401567065277489070155672658127913713381184317175490955161288247562399013117815425388742326021878366608233233132795680668285093020237773235885805463308799036842149667797013632817377365405926170789273994380802472455841966756065334557433213969662185746955096385517651549005202480269233696237181707056272216503928365807966533507921992635002587341489005753340844177233315455715593845714169263427924605578555741284699566092337546949816449627563355820742850484193721723249679195897189950242425713009218696047213504318219910356605106596576511837450483231002719575150992044496280225908025984957037695122023454177548156868113629981566617293535100284226444054892758938010535934072286904281489458046434860550943018272443503121393707619338789142658744747396143525204713397491223987281471672708646042716712178154177165472047663068130103568724551776851019577986220141843095912831297757207814379798242869120203471928618785977452779204328590618544746537189585700914019118700502905167239618832750857432186000019736248707909347131141363914135513587411503329362881416496082337917198442801759514796076892715852351909539847689301802391593352483529207674716841780825359672834545236559601917664733510437351243845574352083797256951650650537014335240565425327578728834634522138703492242372982049019979598053378785808381845886553981058897455408826560243865871508209536080026041178985434445363753103892475327680546824936001897858714243878261628927795684890191721621821504530743248824767086470143232074781162038884103026433285963614160549568188766484784110187047112565584046873988254065775890524205441915392290202382757280062391104345203598739060987268172934024527526208158836123983515320001303229252296018756378235557304497733144921132857985605012580107220869709220323846485714886610155341317608992127536842177905182344522642035327902304585936849550498561473840120297300806385869574692167741122293335173952949791742524715674206897965343700377237409590832254551147134593086665381484581138047751478941084717363623841672141430957031570868673163314238236708930520765952683684801022642216902748717626270092809040547136376857728826651980884980718731295826556536228575410487356980077523089661837657702334547757524505335140614489486043638491989558139268312662174531486488734326793400252048088885463110126562409299337389903106324760640129153948825873419839738477600989505517056376107611502954993373563853764129658226381989566084896032652101627114990913013598837210916103981306979080910334947489442161300303964456202427679234368089477086762181650258691612122301224028510016006744579377281214890941674121576111282488388930102508412198537426210352703551555651250039359555138425644976430089830950277639571112125637947415722583942635479403334708342603207783888518231534237902104913208352098195319541459506252270093527942145794695652188667236628838072436856317179950605556822648478419038308599863164277668290682196584817506011435774826572388782765789939670097460330384825962916809020878520138430086378094665410787967228741215172431843041118448169689061299825759111300751059962610224518333137859651233683640180742851091772029756505331955269983726802033926610735742299835333534567813624321221188714985646532003318708550018164972713660858923115476550484948189954280995547133609580601525837505887720797675486315688122719500742906511684676007053624299758291276662682767275198730428444669609859827904522597322721121243777567022192036855413487804296133784769507947252466008084689578551063300185753606843625903694798904418750964593113164160534310625114995678561855839317698491967627948351061781760110398851250715333782822391969931020947773164798130792465595535158156784765486750540680860501539343017022284851175509981095537847804214211633009649931380120274044413032335348238967943041238875758351462883677969939812938913347346838390914762505231837525315143492307882739519328410986252152113356600517496352804008480882105219216957041070008351668679741241482786840648916054984700668991690661839506999567120557503525376843312745332758690223981497461705027033244339506151824483537925873996470785651894824951263891388199946825188019654449309927240825726413122889982012979294842261327898551904498424528326366266006382655479892989994771496515192056401310394186335189218856888876840878507103171113078923174888117830573810683295907574506356529593194853723148140243661877599776596492383576409468002682506973471953110204236818120168679550656415132563778413766392689246010983234528835773709326634648243054813833962751238406638986585438274492059205958933284766563473541498656356648599158018658542741181876765273603353750994642321223638533770409054224314026809833935521963593101962774653405015630402017661388649342918870318814334297461667025796347318544437398618677501205908685788101277437224668483926504576199291748562391630494601137374487976085172794743218394601804668846587859692086401414877174344679913066583408324956373160086827434413028765448521361564920011891078784168870047380157450743210705710943711124537062952870765958270570933108281628778404092258111830010323571935474638562700617864362726064087200917632126425429242944418437457137150907797759346888654319967702623628391791331493434368310835354335603714976577675939439069216693170132011520202785429016677210282337976275909729800793626975334671343521304631767413883161809712851215808531805467387936033251208751472782998738093791032229862192349417575077942970302293819301610545668850714221931538453466280931083681514889529929198996579198103644243881211382957812853483701634931080690433676283190515680778415811804571421218871852381811322292858056630209500665004704232286935181071474399561280075707894383126694988445885051446035226977193235173999639384837978474402836633043626996929157305745051285205328168803236809619789581510321445321448518407321897482161980403252947798301215273429671597361896934537029115210803496231327095657282524875281784822158623888012264678348000899374443694299726708595006433348147511185726036704739782837876122598668272757657629801153685707423358033833946048631149374550419695819893460291222953998890850435687932817469811267640176331067784341340315057988071391501143143825943026177287833974843387363915101878109318493320178826136496386030917478618107247602564252676162948103669876352425678371051373797766328372369339306848235365120890010078907590189715143180709433220991384650075627935576800029200780305916537180012935734339552421556782159905350749306336306851783169587586897587478105572623968226831241015201706730904052984676335422505426148498392537782673310174356839583017624593108857271436578630829509980460719050115435721896903879987939728719805444050870688808234960328234978724856200588511293661984546545447365780305346309545887075632827094271878166778268853821412114183118300049291696987732819891493976885697812650944592690355334316400085981302183245921200632221433671180685425853419851122518966072473522760595010565282236209285343679971967401369188498911865024911853319900918740248604092225226815161096210414174911872188154689454549508442846040456767276751830424478412242248388954679984891151987829974568109046268939111672440812176412355411157061875486964650209477010987449358787144840685882251178986663807309736518638631054912360226565960694056640892924408836808138368612289827145245588883543505654522163743190970498166488744660290029090671615145288640353244485541962280159856380710401418593074270961874306626349305568288983192702911772781627968256266545582680712466198522573699822070276890265031712634379186075868582288631123217344500930985531133975819567408672411021832959142465486150954059445033307914081915934832875185788123373261289281414626851115417761261025240891312066179300743520196113372236791323443964548328794209352366677407698747754551292099565476533973221302431790146501183999669479157031908420985024666263723631656724086357412675105785846973573620691391123615992106571156397460042576088285759676796874484559246778976247321590132510407080372200129110004516477993363692418830963437541200896716082773168727280174830230092556327091477078628704834799732004841094321549298291064767568550173339203926240027807320472583416744596134535916225801478545406933412712321292566912203102203890487595536678579838506623846266641770287479203324699291401360130824845405551132202968984940827042580281189978870998882070313447878729435023541071729018044724843985764776893564146646699466139492768607677951350165446673698989004187297654423500521660793473250727642402534418938076342842461275111108557420846508531967332173424358746822270592834298702398344696575152765611594667277579117544303608426610464280404986224922590545616513154472977474850420831116145036430341089174670014932922783624818842740025467455615226268749743946125160455987076006160327178371206022639172647454851019316383960759535082266423883187418935369887722124416744091379001672505889645180527408588839137961971726535712550488164242356500118911494180246659141797267159212546186443088429225053122506192135218425449361196266376146621533246881605737111194124033459414588943579916631547346141645780958958678872340934898259153618185212795262084922268952620488254067596624461768486478586626781089842472658172897524986913356661602836634616558428450535785914098830191709178986024323322054814212172597456576826945314905437258071242520842361919349089509064412666359234243655895943719308860334764460614668340086895314091714771022164624699921966997793291165220744055858130133003227732901322115504113362719185747287843799212818217677576674353405481727221132300167439695219660724551782622765640794777884786716010624261676719378906105152185508671820340540635792469784736215717335731970330723340357918575398207739169892592372443703395074504807815239865487613121922465515048649674618096353176250884741213924851571078544720951881971318862803268356966889612117180215217523643549036945318258781555754231334922318186553863153172902808342417326252544931153180480270886268864540538420047579976163246130837232453315418357836098624486341968521126799735697057317640499374939517302516861893949904601412185846479239378189316206624378523313900451178942228378975186322048519205532387134625207708302252698189780355285816256962590349164857419303725140502590946528067941348293389866380345171890982416002789284318939721489200954543812898637561710298297924538535495344778433816892468463612435156645484770116758209127755071163579133658627179422665522547975887015956882934838722078307187070541628046301517427524980143765018084397422436082317004809128571552361251675739707230023177837238337934787355675396030497822355708170254532002727712984512141719992414162001320700755242527186122949559488904823723743302409463527738175765324408051364373530794130380243416177325220461345753920510617378653864504211759461125604833671830881360353068375088655677314466189054628268044907513991579307125622275740378575060446617247526282962552576210366689809859260792814465844585720205045572305064056901944948023208452213554980566999922897296468568494401125377802448718069955679330883660130540463523672634953948774322263347236890631391409479694579850978961135695090649592619853196269664326614471541381279438965396440614933702896999190597035006990771388926473510129190615598861212017158205468943436103725270001947151844742923710576334828003650009687105767237348103606160794120560799550685752111941566289984325752893437914393901203243141466688389810303745669069737251913242828398806640363084608070159029941915575673331193513782070681080801610983285242807873430145997736774727244734840109253530332227395800639281462379433895420307773193911576879002333280742378600207663805833119930849547926005533535134096759693960820084309303837335372600438755868803345183265010077259456840812860074922413426177158291989548147849398645434347436204937983727256167375789789178647946843122788696224552403829365815780531242507625711311207845512328031976302838227872384219876943281148848909243890141013471005398815216855638210823757936837717479261940411666432780821682242374069511127563856569086606996332034052709156564085749249320333659213854182207692608130962563068713765976353038934275574244046633136420870742530087701737147544441076092112657660195491309537535631945373472650199659122902868411365679788064071186718858980289534033006540555715136976438531104075381932832053942618679466826742849724096058836233994689970298859645086973339405194520312049611974511709776988067388226727851781436898417211313087599896127040595426637446390503145224864300963755201417687466975552141179202056317631639978908155600476261906633193492177885110318224030938876575462945404482791704416175893992996200736566355932240973047221391453529009233807563372565411680489733576399907685856705354505119684484579378554464134560680673924795030168144327370324807833882770571687745234116599460104934377565246094421693884172064674762241240104489299526824686308364725268128964243420519179899147214106014834154618760320902114871465533242427400819289036757247379825136116929940693601568684868306785124186668083505815227046034948144517112930210585570059381964401434407635602796495802130120251000345642992172706246661232510938702601361565064299989926760252017793037955314099250150237705124080438234605849714768352613431048256644141169407712026472970508693245518795200153272654465348725319394522519029953973706506261055889353268009981896199028440713551849093388442677509854301007471756928460454633135110215682233146104324271554248795149423954474602886103107467736540169854956206947370076643840831116530490705246900721207458589189553747437337276372944947189063243397550285961776004531244641260685865453137965126657235661380122459947712825564646423822817949174966344745424721645707629812508487379660004812061922317108603723283049716422066264509257980390014605244997823841713797950849262070952597090843813601595305364269270478433066523434297898749534160589137576279678800775661977847849430839719769721826385054783405701997971553674605304672514888512379035647040188742067758327056848458613865464720229447660383886724700668435711934400655891827038292234572455825240489976042128658441306038678052368487348782981511676923031043224641649831485467367653325368965334007279298839219007451330522475520821287456509859000308643648028696694002573004538063710767434030049730839771110881675480976270658343688596279890049577902415733937807841108996015071854559379723787155231447133226927028790246479902904004207245274299214481460997638768501603096617778876501019037213016369063397181974732204225257844952158909487700662034975563175115986515961128040873474970041299878087800761304645525138167642106108209118839542450106420414797905137854169850837450039460948299797688130731176354512170309837313584018800755039785055537978289261379258135360013851563687151833408172409530720081415399094401265111602356647278242228952494809025892705698155356342907970611786435589182940094298025587663532504750598448357912025688231532603899497084726179988757549281045730061033145867905848677043956795770423470998097385509872534845563058134353735984822147849983148427036087821835359795310797088653154337264014942294910039017268630510216521234675337306939159727349765441166816166012064811907118961104371152415799880859607007386744158032049844055068598518680250229625145032243314660610665006580080852736719403831808634489134942470575365118790459908640010417907045911645618593800448330041387111667857711118855507652232818516794251742096686877142737017098542804862020914561096770054051136055961001556334989222579320556663311989369677446531172454244069121404465504874287796835669286626717881404453228514883961575804540777617624235093057869889577893880687197422699410492004520033359987973108229982165791049841971394463315037475458438372106373716471488330893071772406427304259116074926797882236789810623111006725855789976785807487075960921873020709829550104377443316547205366731290526925860573025109616125095796107315892518376523536190040450896083250888844185239778941027491433386472584779071668204028668881297449653489656690794114933325914704411476194492741128891325871670858492188129358791702317016654347576249641469492908012557856706782568025797267073188834945892194619785449789946460000913696639148391858542228650975938912659833676996488115854802320800908094269547014213496475007726260232004376054993222389042198576024983379009979991721074754799739016163026554539960290161347146638120281998040806943662195524442202565653165626078358494953193943444496064800081426771233932844662378420156598080520243569312303617081692846800137475745105398077882621366443300731765896515418098130023979894886114763880324171201887672557292103196252864601973345020259639053641306526801907747169756785007426286266185754071043474961221780669244592608155944002360471183117377015506020810525791459231276519022439219965403218371401442380756435316022446703489755397662770283329604561613143909427299133120706753824080755004308531204221600818837271393541028682756252431433132098696209639083794423818584653335101593310646634866375726245576227951767583572222931974229271147183686376695428190212414272527826067682966363162896179898730436925178654904065386223750584459991184932919566022451601254298129241664483283766605939111660954861673989429530191111547653032705496104149498327413091839472721292527325668758500126479303381546022586438633974537005551444109210117506938205679829587909315042088044334933483958359211096307578420989090338848395399385575524583936128607413185383882353913513322733342203139068156621240380334508186401455849233555769751179686361550836236810885433292525275316278711729937316303571031783664682725074112673304893631716273726777775141131740868586254861669343986188079266806961991756681648089237124820871099823610124528570122485933866787560186915961340207453631621958616486121065892667925215802699706117576727675878016621788521105388521007756683043390956477374336678602342917357937497311549797907332693347045027662156188321994125946810630077318013825516453212928653501018292992015115992965197859337949066397410746020536604133022146651274367191712478328480185530815181382885165369597986666155210239528205415282685652651206023266776671802583884228623696563646090127417963075195919890370705441893119889816856214316940258108102047005935470629055799021919176346685707479050255520108962043287834857918133475445026825325431419329385287882658980873568635769311482085812720156641202173478136208097413470176829059725582330286838551025839464282107823298262252222275089523935129442953691862903552499637618440270065806654070911209037478705240968972897106967026725474127143953677066161233225541250851607194661487062342579152061424823095579946289067565045796725995835893023651975719776249323039644313074865764023342476992346786384365260467520733506728140648216891464810347834110147244775576996143447242868560767623202654501348444865681439338181670749133195020744303793863376980848682487068265065659570538792062724133054592617268575967453080884634728133485585905848751418288135419615615955063744925357048547093750930864744433313378802001418293250472402952864917274341690688663664470561365131609079911947416747900639199982459594350476509260741215951195797814279103830259927276304133935058556975762798503179669574768213448202202863412516241685240479674011273919346552435332020532132085501882532707070601481556636227899667957663380206774978648923633554701696105173646736479288144118302299210553385763450274419172985917218344332116081369543195003204452132890117144414192378884542082969759110607403914215311874557102118438325330541198724418623284173490322282206932954489996529023616319464378281638988933468530397120624924677881425866276261253072786540506594898373155147547575444643181039549832572531658623554316952421614892909139108505380160583410036011481525189729580677814833911890660188571316615548722480698044794123425265031381142570046356349484889338392424463359198168044412382784636273764683818682992635334338336279756399663807360154517313545249769026395789963293172218010350460641261879982328286764204383191220117383604737609779355961302940106824317891388695639683949297753539916048573617461992168456658204607480483294456362651294411580134960549501351136879069790642168933351182854492291874834370678746523576181672856531221584447892205754572709272683569176232342744403533330511515306854245868181184877187663555760015923890217501919457375254485958666031755225108774235570810850239205492668631762007601568829645777499687453705887449092249786354149952087970497620343600725357874642013365517571711917275742334494731690569660966300418697533337011031086393821474171173310964807638389689346738218054920395725769334705983226775083906574340324144152683715752868565260031943224373264358233738374805354962994771566059069547735191588034662303776454457235890348139929835376123963184227184480649004130662570332262405002899785294313636882960429440994164941436236340117327355699326574200838365861172430300183782794143675292200640461702202104174053205373256342269592916383740703972899676275691247126741719464410887814152466573477310126710380200090113488618290844063300562690107659189717875524888302527923436389010615521775288451659576221521135708637196392230227043888236102271957490151935347755486914757354585852284279460141926478566817465868709853202917567827963225889415449819572192311979348817491306525219756559778106404837529645176323046682133113020618331462067918726980930433143284717008002435233001360390451780992094841425230904648433441995472487256349050165280003221390029806511056390853476154413991586303656045013983439097289683272278990566341859657789170156105021860068543044993646963941302492889402288704157991045172415809671024232446727650340265340277137993869484631179835269075240918823937050237620379234594337620390331336683515550314806614220043585817542584079041252404944834221982530848040722681782801314966917226784104067020452728945783164201286198136426065105685377987397169321796395453872528781389362237207986274313746963623030681701013118929094208998540344748055881222841930846330865947452020121160915194393932189302580820155034865303175109999420391277524190571901671532228743595747286517958277083938402583109410646113628874246165466349759190392344534339015536902962220559691786077660636561531052302238673714468151626232752065748325887830204755229266450142279631792201110068909139050902573536587789239519624681419011106667243847591019603792888497231760836217785084199425344266895970077884234034100833240370955972374549573397625716100028374110877903786738362455753068966030929427466425030064565747583875975665474976159108101614443611195048130959041974738366326166386970700729070895984491048531805509170273981960027151125631502134863930326155039127033070786174012904112795860984609809365170570913885246815272613293753681876531851888576467119323692039065041209020916165141985932106074540705469630737295088395961469918811604987812159890959997857766986163508351479006209942040104848251352538983570806780155839523720209415385447803152957301182059601328154089940579385240232682885421479512393431499166522067755565744694458290663554329993248089870563259512280210256298404464078424864803410891689864555602502219203767397856182099546808910511534833885434763677063592956199645281142614164201028148474289343332100092578178561940583874837712622337288677229299299122250999739754362791976567798400514931767295303953061572952781891522163084282766463865643672791865857541926014067122905213738523061400841200664764471292082081037453803569958939195755167804999547796080159999122530626158230781819821112916912563269046708525226971862422051420917683094716532762922656906175768462267162606772784017372437738900619451200988023540266062984283190664749944823703620523470783636939596801874644871233998601155008713198418170814354840161457873589152133640515287424052874960319143163829408067614273533811027079442485171312030523283908262905700952592850030013974382223315365091823043417331527601275887792633363944662427321013604351701020690123575133384908074446862053549475113701128785254514926713201753454390004997528301422619611468796963850610852696979977557614147872394493172775238664359152345611848985485674650765970297909998627506265138173952777978739748898111029708625703499068871296764635278467532343102991057892535859332283306884855413206866182579253770425068595870646351107967057990603420225575917097137418262896072966531639485394572210535677412440403991572146039838622519346837914477923059514818830987754777757522198218152326445470250589989058198982825898682030426941206321289272860359565075421211091279423847003410115367367549495510835022861220219104130839455241303620533866288788740068491317768375248461805090532009219228242385721338830046241479702815032979886624098711473164221294169547998783079887695996565294976109319178767543869535616734777769286888483925556177871024765401138129935366254576582649382495056605600854380180013008800616428822136781740451115993572782267096543961108265851332479923996503758442505110102063109695799320501174113111455800865255872347320858649325511114616680437775846985248620666388207064985969540323937843637290724860592218310016489488640046438336841196337700864020541661266377608191883011630398786068463069048690898513328188007719659626070831823866952958570804035989721494816835132973443704629624275384545503888118918580346257685173766486697463983046842294849025966989564089549593910710016364966980012488927849866922233587716420008887098228708772970242305967046800108164768013454054196017125096636266679794578700357034662834912721142465584842047282097442551242412541824191237713875189621632382028055342221299515466599376602624668535670127055477857538294047713604040203120721769510984265202280989732164857682483264913752470283828026306723118274566686581038526238066845857672366640474308000580883227059359711184849789164745963956199680298925282837935601286315313641710615607571736320113740889301617314461059305768697337272146123820527740127783608090801692514555014991615944791507759184051057339455333482676541106619108663769852469136066214265052051014255407025783031145427079996283442215583071494905796105485370061983812115432775193827805339604262428646808194140881903098130704585324975251445142023319999841162040794942618405686944639729734738996981003757230505651335303551324880876988049391679945364569856415453142263796508612264211863166929803891685401067796925141786834783247788214024174655334040092343317936478665754134335605568866999789051035491611956997729254913932504432149125679280163649771133467812697847032249270668642666180115918653404693467507421687986914158073273577372099488975193716144463191915229048347818969272829802130092345568000684134384647164157883910266765865911771861482301847665463113981425800320752121069379068325846121047869621355826023979169806699639205521032942451395389348529214320477392135342151428894130390168084554801824510429734325320195808595675646287316929436149466601858543902055799640160838423123279467007083743312705796108208995718381546019126872732106859531590157065330874721219876767966669208452112781473046100411975962564738134435304797082725003235873926031888677298605846187670809544269738271455905208733893110979103258242621439533005460708540994056475343289296112811969295928185886358488669300359525600971961265880624979497183140179185810964064233800359237426166642963527002766445500301749237562568305162769395932431307818074108894914830063760900576089446203551258139908722866920454225399041843368854797333275018325824786344213264209616622270172360774983726611305169133656494812308111488380606895690569988959796821462603886922848062395618018257406945509156068887980819126529320120122330112512258745078072635246971860500687703239283822388003404326784850700518761424857758692571937069775424061492395638998293324513849996675908293790165297152771670064846801084940713229014013265179595594867311989144001674990432203069108262173914659675864731140826059339447602312911449090078587747944327226972369200783319898162368551449144705022173414440780298045356625667216366751050740525870184123519712416279879307265897075750016826990755721919030244903249062685073806684841397005003183331997858285870878663279457812257117935781294870329961115368904035697525998998988675403722537542012758261440964931913498149474027715591168862295309471025753785141729447594055194832030799147777447243684660248864917407175352908961838894658393984904886999997124559134672185679068193999914693733415832169197114982416912663317114998263302217335911045966451685688476660766419158491445755152079564624671214747048470535935084838744914879744775765758769734293357753401344613453046791879182927078455701800669843790426748093393933411386381714698035169035495761725393342468932014695758496031641952748775306181536782760512614315449050575688663498216259700075713770154097078356482497497081476654649251299539487255359358846759330056145103812947270729280437425719943628593116338694967925879832634058118300931382004417991010178527060366431819483118780268462231143584667584341106209739745769320495700235532751280124179474216247491162096752902779779344285975283651753659116884793186945027170974848049326190890459872697380063405741338816233381981087742274017690724074702131202287846331494863787262154477635474976522504775934099550823676611170003573430701688060716939979996526161732286812633633819081354900139087269295729399444738136777531327592168178660827517524334963457900582127199585286207309584030531187817975765452912187440075985139337479422268109807496438946217044587685413219462817544808231891829011704673667072119699755575473612041840934385501799920570011817133574647468670398897348030488675722644490066653692820759620452423769429155419910344345111209337869682147892098048958889659966133388203609615080830764892366977688115485212561355288870260250444419765384257766627226742776628362243962318615864147352208005284211765656408058371055314578154827422186556677769621951249241077883767920821049541130314266177693493301873076367452274091592662179383878078945794587952536973676027222830082674884147401651979832324952096859047031509171718466859188540156697670298183578904038090938461712107195999712507126274710242512317341385045811785224005066810465675132439177968003414170255125224286042016738454995302970607912385160983845212698380907810983391134626519516740183253442062005398246051027774573862809573679572062708456994107486998426546018669870211085809899592293141374416315860916078091639668739714219002271167145115703700647142864451926201318982854414081936429251184021918849696263594400971685737111462343016372923796800555450950284015785473036425550151619396869494688434432179224228300798942980544124579623010128182798534051275626889645466628701269468833767115921305210525235600087512305382668173375992766295534007202892650327719082087167580516175926579106047433351533703326964944137869954231999552500552799805276891379273377525833196999480197821278790110647319714383887227734821186562859611632105208970262679256883118171387077754411510421716664515880122321492739467957961999239117330208326340224214612573220562708883219945532749148575843962619561936763716522654297186726089067074964326086151104993769134486640545282736585473077810510560352386351667004752024743271611246623947236829990098832965134207020571839842977888643174197867314304548897838461075410712924988899569173333250934238311367214070529786748305588294930569167721255713853356790875234420006019660904450105221894316674290141086863493454320006087892887090479428196065025329785143382763928238961144009837167559954118284645305113642113708190941257271931762814576936092187222393165457050779757902094933384074104315642509462326921695795893535619594252145706139047973618384564905488682903186414263749893328475078654545083581741772565940161072228979725140729259910560356936685695559538479187224714223917871557229166674876665215924967965917229968244888080330816441201258132555197270317062351610184432236698345178397154576035533553955901194638090151122455111924223523469673872750215184802393937101628998795612851835289033966017985639369315281335027484590604094242588667043199518923589375842455760575748092846072334708230938900492995509622549929091139468389873331676629120860835102649663529426615932538660507880626839301471750229884831985092118901152786281686278746780611684705359749705842273878869466913716426765607670822407208516319118569766010306895215049716779157108643884239164995227926001179060947654846697790228862443344160434450509942748820362695651708974641501698049437690504340963030670727817694279151704161854607351616205960895222361796713869106426420438262436354746084755030177653306764547644451449945860457844765887161719046226577659751034861905555180217417814285207714346733494797203556696461350416120084148694445639373081373631029901726002556560935189245888468814589090385632520389701899193028639880244844196557892341514623744096054268242730859967394175378731041502509298360475548224626436044646273864126983911937376351987789809254108618309147878967581746475277158249431423620996654685198961521831007046979675366525803996576836775272249699493234498433191640123130644394911133420072023856344363419044563044833207283635258124582485598366291075761065948323668694172186352024273094389621141986633171488341014050604553198436329818554539812604111752590276446826519182538374165936589049890649510896079681436771848646431604688900555275355241483407169066776423938911346771195898699255965788156881869732908115997161256935356538886570088615943713929535364112998025217201326520645203669628422044662200546414194945879849219751546270958732646447136122934338565386459842729927046324291064904467002278204302369076290592760781798115684287747386314871947709030709576556121721859813950677876722795781081429331216525992953011461182554316734006870778922243311147723435654181508559542344585123823074710634056202303316278551705241637202774895442211649114134235528630018146034449000056322614328829998895928253727175595888719790338182019283067243032149196244281308373683780259497407157832458454418432220317117856127427062758217345328940517227856560913038269586145440602482421612430675868376288924673039483762803230098201130085799444953708868887757588345330266428892383679649580179789128637761878226600321313026806244838922810989267903128203079903289327255400112656507304490098539493473012716978949106253697773743120438834396914089876370876181105139725212575568802346073979259077376094600831737322448053992582191858000252200974530604491417331865896879369651589403861297779599326822461622876379135305133666141079055225641745708767606659154423664333911016798314451376742475903473711307115503729085749796424752860563330711574498418815059669356092693277507201690976914312530902597416288952924490224306361175775952086706273773995356964961046158035077873245980293889460086795763750529115385537438263122858167105691918291487636621094777622208012458741124539834060871534377443566319520379747914009284728093884757258158541355061750106754985840688980643653186448563629632492517249863787379207691804459604346743098148819286034806223331736703507391505199678988242021225733923243115279461091443133093650926358472391804822401058966026500175531728508193896253299264845149316591245723267075054530882569166806363806926533779772881530098929273008999863777028535297530957648691872268706928107917253411514230486474697624234463925811573854330795277393106634670201795032561961350915962543318690352683897087459143749628763048117082270190183147197210814200548438114464356022734306458326587247452354653066862597970646734719755623651526816443450249974307918056080749080277528243106710246903212074152553773217688509230496281533918892761353345281040066669527836240358729290919781018558312033233648691214657126245344605072383386319326620586076668927436650871040403760745812204455485800882213511604891541459062698557693160383540080852364598193640243716331251409195243270569034130802960446227826642830069442052530441727489435428347613737654734909145860022109795632392260921346253350486303694714422802455234278675443207005083604965789123019418848370795349075982628818217791788692848700101214635877039318951089158351708719447596675286432323105458433319084790398018835859260266253073222794876316455170840913803323294747452251806980151191425225788913543773848415998604244592930683672783170321004030170557078278825901831997985762698922576157175093873579622601379260739785568109155669032747594909554242781973042466397562599091928006232923486466687928631880507804025100728487068023605749123692725278076927068625829845568762674757553196484239339808336415487366893929453096582914426800890903421865182013924964180882715884517710996651179002769088995752584648271005076544797094524904492827158744793864709685803575959466641803985726392170657403297362764650161486607348111598146646283095556456145630359850165418212542367728268741356127107026841444364605146904371531380372306948726131146159318885153943026007634610657333674111570729075852446374687312629747947766072332158190382301241721629634802914077548564389936236169870115969564395291718377311862101381554358383792955401740459673517193788519578018557160825699490685898221781982027962983695438219541116209364645964623018181132917922506430175099109470527773881997713951712599946585519290171046138568415850757001520096194134377191094861271373457660721563744908950027888749481658732088261309183037426572055627442293413277440821925027916472404892898426203887014896960449111848357299116966758663904757786919007047113844248823965034565175065698653302232848216280503461321657149310539120631515336001068409669252796724474031277864487457341942153355192554830769724506056383325079952892527503537406849701252879063516522272406290002612083836290576173754776912779620886669930802667431063466983784230598592881224476405217640052811516371936852248600717503452991305967154862432574625404554374258007400300628266928453607832806432387673355640724043346356327046455281054339626007622401831848792835769092927083792860600551579962342416604527785316812755975144352348051756298832973377236760723829997161365294903273440093000286178418566544777298360098418134781408227687955119013812255486920813896511832180499666689538976416683500397888392587256430115009932792156474891841916730727151417206606678682559299560861162500221967624024857913226702166827420797402950520470344856458227312176217542136603667891287959030874202500341385812206497635905139310394074930051369898611439202292576060324523407093460065302424806492793924420389078467006626755601469359260221548287451333830781919126120989216338509567915364222037076803324737940532339484819043531931903633328674916973159073665949716714563595187256257827701005459635926355415650796891898053675856142618508432767222512096084616854474770740867736774601938677834165567816803422704253686419942043887795779412129521033005069124995425927494930721632942429158963708942333326479790173740640914299516961175986488684779411431512296142019044439474727722817694994807669211997015719224682807857606372236157096437089536518113811628759997774697307549288805112719578904241684056101256817347927588650865815697207310297528763762685085251141448484684591793255208932719517200703557304178925280822593755729141809383890663322524048185441525842996230814194294123339307213154426341382831593057942022385584163434041726032458185335608386312968126538010483627317854414398979752349604890867605377272370931099082461766235087972180796872719394230540366925421709218367595553038207330304503244134252376537241567593163077004665501276433090086528854056184691716627952764758178028248790161139323614033312834991692320326389885326763627027704862451123910786212521837620158741469341455601138075735226987043351810720200072476397050979450232761355878946658448621397592524142444815595475745988199653077531928954506848282559926754159928225123733966874832180307107365977463420010227620717057453609567381342540668533704344068056596944484506928710996100200651190513203902391358869542073363308637741488718228862616970755150845193787538489300148053100206163884801363305356934149529679104266022397730397662613801658302897140755444854932139517275697511948902334966014954279751360501920132967787362442763310422197979968005328723717792951476154443730881218526564650324000831462080725703274875820846909276111426404083559909148939360692593661680313880296752056203609133602465894757949579302779745628515691486060234450318004113061777761041555614857305314797698806461260009046324023889733473695024326667608819345609333328513989253244844888253871856746861754776805637994591904568335905029677527997900714023699506655956789897867252691892651482379991545754637333037124192907506172817478798903435804252648664735344370432262569661411447397104752708918216430718912651239090036160710560958365101901201324426777635231809919035172527740108050524942339226188334655945686855020450248268648551030294677843129505413411260681302006633291527266138844894958363940706119828327829091764948371318758402405995380368849055864167794746248053995361209300827313531526719775407611103311977151182126067562945204473448456059322959921641857885327329591796607939182476585708834189640229597613353645768603373154587940936039802342180572556152064145337804646327663698987316310685230210270882359902620633323235738501351865202841133134114338812529959282266499422122161005950567364412626161958395666966668090341478849831055775720443968120930485251773907985980233221255156193574443177294465057515716902772619919548968209236895890979267888904463229352816634736410456768848721275606353242141357530784157183220014904267040263724451179960403393296441256851615038958850695135207825979660538006146761464420338151323921429332844108968484455775161481939026734217297678344560550902773272497774982940756652890752337052815090520171518171304240188815754312203718169941211504535100709239934255555556734091178942075923150508425673919781177212385750424600835197273790381705716809912147209594184093172181866917765461899302920911537284019815789512173829656117839963906786237069397051017639909567860967952256759490939602744009842840724503083452168982876470907158427142144096029060695922865852135208797680521653415131101860892046886894867671375353629080157224608852026410390536928402150090636840223849181737356488846438712360388505632305073957858655515969032791007661726310457191897058866594301838596531951199847423133320138447160740410855913712878477717083025779817395788365582230804753691947100737943204322222036001208963371408604669317080262054203761755364382580682238494229290893738416658616405703541819329136953753079106232378617647229348666200995763786543811812410591338390315543349712512976943877655202444390011236461108427673088543245615861385468725727760531022851257029509854473788536203573482359958301082469197453793808590051677262859660801607469802913137670356834953295471677612148621124319836960522591699200818014566597558427904790232709834946936028843948187107153785142376788697236281991013125783917228454311108652288779283508984388231092255882207134844242436714482406605311739202685762449920765263237922687916508083276628149150559719170467285144625765700552299902302929995324378629819565559459796077397915394020222575061463982100408472962945346831909731081604324124884359499297516049112079116363562065086346654529071908105953374833994094313367001189190824373566225471245886780679772968301797497903169106067444815288530369652532582884698444348762483261704854690570864036763500250507699224047897834624401606654729735524787066688494298796179061527126258525189886233921593444471673831921150376967549207703411231976488623545258960741336185222653864832729706262103456430577816908567960415822199181773904922367568963596999614446268381170616093315986503541323924394962306810751260839891109565570877385936148820333593314926126143560827812679421625882150450724940404874220021761194573471446058989331697451648676518565363737970635763196619624309224605122092001305399140717633678759867761772399373388743154550906889844447024108736221002094850620762107454190945953401188229374179051834700147521975047524354958082369785377015554872481166180225586630915931902325188351630170535454097545719951435260435361910751858110390002380996088876803531255629429983567649088690523469639254624957527004634230864546868688816421081466378882948353092621547247371594948420314240794002569912381192071412747579969447150949062139652394983192165632614066743181961762154847535612261098523241654872287952859083509069447598240102619977740612146283578859238077374426776760298607282690499942270223579167223360869885922713856953849852837843739467167925860681019355525122422980565951939468944727967450237757919956930764686373395783941846428777792193055432323434074456367472863884897378602623531326016158664074331986354573261144238669355239769674709975481610610964276089960722513672892127445497976559823187184923891072496698207872830188189222313871347294486568215059347422110500501322088332636994397315603808985013219009732435686123983749190698716376362986376607497886776468117553130422716630210933449537767775012016600715933511533856801411354047396505130664503351818694398089884322873811827516356582873414243586714918528673331458687874079910217843163304960650023026375131440447527262154873095523383856119094909279582110867522220347936517027725808723102156554676002831183363843995147272786602982608597509438524656094550541041070963700944309880431974678298877651239589024745175777582122772428269376802977044316376922950570360631620987645905463805080625501096002527815287138943237712532235953915967536397865765850978499953733836645211867387635367525930290555815882600160063360651571814173508720596691353892733544661710892398919715908497732419240823259729951164421655680832044502428716441773057270140193176119584603147474579162397571447771225550537062777322362816119013100601667238867227318991349968191380047704834206139999570252371629499367027857868157885775653853347590148995440202305180726132041786067396128020985872013671583746483993259901764468217358554463964386259462878784710072924714304055945573370537116962395868161710909774744209796435739630606718223803068002388775835571360770886305524622923830768602553734464798657967321410147423664182865642090666715967307486996370204899784366293658138649016251896171778556048664532255131594514083926943955067441395933363625652971873198239561205234687782098586770357387133816105082958826768326363235001756833862705127171076058471853272406495154714387728580578461175969600107470653445369637916487442141782546219304845853549991108498369216414446673455859824359289323914512585627120183280057283801030755197892572855861759656615458230701900562311846736266144212810095142099191513938118079909225913758245587666494920405597549701021686064706350884346304173532029618919782899271429155730590311647444161109698567348594560231120057348149283847646452798122746967345723176674378516780735308078474865542237921673767085727402253420652662007692003870997109452860119743883915191679625554565575054385137636519246585636091648325950638446761155161505991395472410609059832315556302121351314515082761405021535437476151895612382571509627531796669810953370334849337144871189075461039615999192005250528272752268503686998633182267139661728963064171149450239054360311010748965420723130183983035466983452422982649223570279053091063990488161289617138131888557172826635803141091428462124781159084698086040950896373791977192845506712760391631772620039840432615986358369443300623470607218666807336083684031968794836720861158143774281688161857520460744835347586079083204138174092495698827115300154334978212495800513067072709869482944332172327671926030574691617099738472564649684986608441301241217633030580026623475288611362784872723742175877468193479111557430532031989984071490179806166719053308506891509580983459298813167114025069089924470246596137007964800746427936304450447349172177770044614504651675968956218463504795089465612213013945172362246399487367312089886701413331292768174821088862231042090626082210226750424658060719182472325002561523014985403714821558935498316481811916466057855561124807922884716950668665370677029986664259423309981533048643922246699539733839896962409141764495541860343122444626098056726294315833545346685626518590252730748289419496125601902328671147225713405905980408970409734284491261261028841478482398804855547715368568306168321115475091651037121923791089734196045265767612229820545024244033032349605534896775316697356185975444708457758027769369361245775658570404722079994420889733865477214534438976560088783452329419604501069375630637966375686657646906553652455618682354973734304974088504003706109257038807789935692187637188181987688681784135647869632219111127735527468342995697788885138644666413248319916523356716377229570381208234179130096058435360299827649889523234561058601617010185677724039447081288471299819943140707963005490545831636240005512606030871958308369392389765935117534286394744096254008294795053057648904166224174278723646106159932387521265323753657712629038185463422745983009264654842100113717651613945561194513305443247295665818134343871168710453229090283714413715873592541202367244521373587822273747139660594780148320330306874617406496187770336020141264982517069393754408268617266976471011959459842280734686841020451244269898117999151216239169560647302008736952284081945906021302389641673695481413844258447312675393000882297690078172348364523883293187189060327499846162851066894349983142193592808319795512027050445521702915767679217839831769748986108067674696786973910513900388826752559831039499053393168730257102787175462074664137043072732203981257736651034128774555237085982204076390415032162055582597255955055748319196569761281143694462692244817745605649887887209443414386380320396333022740916851961763396185048771045870680562720614153657471500392264978882272256041272435889872653059005433430699412146817544184690165283465208120530642172801536577966829721530356392812549939636283173833405667028380474743894779185160718990961540657014246487534559091398936712272235156367369168926138509014538908849458297583744555498738938811757937230411665178052352876264223683353313574664215538192327244508868210551690571694642230581203723244849120407505269732754210907210777353744742193871980967993614179600561191093394942529133447648331122134509067135101377327621577691700503950141342539651703585640213670562670826284113226164112489669081657317891747119793828269985525277039278389916985486111241037541447169812652213104079149770639254946969979703222623673926565626340831106577584214291891548484724236752818722668789322851971179893527499533698290584647492304791756773832560815685963380081390184707228861752889547277182810099131006919895807950598666223365468408971643971869559734040986124559856770469567423176598723691836866401329147304181882212600123953421042215433882342453898861526611985484010633701700588779140174495740582794272226170421048110165593371297889539687212154907408304364727125389463688804929881077022443135474751910501410980016767576321068446226382734082885320088942856596500207075986959572456555394058688080517586455852759143377533281794834449325974426548850414068989199628630414469822475805860342086851280180384374175097315190570386041796893876571179805103997823961901562757184941032118145923237857722137270515032847057877441987509713032831404365333292151784906798766167531527016896123251431277427230994478940437697395751814754728987473631297626456349476759735696731768744630535636189456722509997603231043523912247516662255142109029475727731288464852435005477076425359948949193268628262651310166093517626125796695378470853040953392487556667302700258318309307825868875303979510582283781080288141259633216572488236581158638488380453536840503544311342547182061440285701837125891090494928207293510513384190462223710056397933973490134727777193747516307195282966859316612073260700171955321495176283723754031750605487703273217187242810050273609282006531265443323952311849951173806404102430799750967636692054067834476534450068943631099468950079276280496469439427499249438846543166724446858765855711122765596848442744407494039512723139398881571442719756629880575908063895629582013475222075514387872969468805009131543297871358440812825396317531892769351464268695066433914565672001946206439481059999014301637889701545995906244458342769725706107981480263203474679829166046160789037697264172118617845390357882467515595588893491214457292511645584895313044503189464149771321361020593584812356167774102948908624094866655715384602239804644375490357527152417396253238051892049688637324955176284732935099163051527103001608526657224464267177255464596144867360890191485717259752237137334308618319341832972375720041827323655863697461738649675974139317773598999818075667423296204317877980305580215785404741093923290040783507142316367610176566862439125723105769450917012493722534098586814887836822547248897360680403413152567024249457033788738733843467439117822488940001657675186303594320919914005619612137564980936948445188088927358400486676868927704341632502776024044021044272739282931405514369240870986036108398042473885403211988188563797370486605145923488017938516479940697947867889732817212993787968108691479831674953091957471919863934438032658855830062090748440588619248154451857397861917782869610500598784178888673333541304142022919294324836273077330584293428824925405074540999533011133343998099456091907142589198255287722321575328751240254450956741495868857005941278906747040165454321264429808714845319046990047166080075069021161475668997679905981744891388000958729144546337886712855870752125585109330083870377111744284044065131827809150789879034505541812210351073720986656651873514804789065432721405640333213844804355376448894929113337706043306631066958724170107646000769084476779127415109666563628900196374873159710120265676807698973240940705323597397421418373494432167875977423367286536478569656771652709460338262613506701499478783743434028525987102685683549137280641327184717029381736726693525751883231753203078670351885316193775400819019471931775004277342520065944623140721468749512955269165682830471156309342872534895838497919521007549061537935151724326209199712699197213597427872348114001477240344980160742189922286684645640587127521144611638353931271679049566610289982223044029651233948961193337506683868506338076375371861425830158002359785148100299168332903542740226489598984169223414341691765627991324490832047642643528173972852985325495289556800619094768114581261937969040895270571662364349083475839969327586921681524513023621188691381158468290870878517740730881108411758853378889544251126441413768561288628917594717795573450701764293002230200964258657942016188508045737311806271191360866370749616581042129754824205069709131036169637308379699953884284284566296792258840924058801207237440898014415147825418341286167846377392282119487751125273647807803347127478295634757605894594277763196776713482614356483942706415983949759022389834246186457802793030910556084440247274577264871729530759220478035233917678647127522635793223133166863157328480229967849011548513174003505328370831496356069229009016965553371201247263867771577958793471147551080523703499031404455078796519502318783286916240056292226472369348334074671966445710705920974955829094531643199594739345648026081866264417820920619764007254651420633567584014911540082753315727100644071440799702383149298783857437236517432751168640650605657482778909948605130792649457056167635318396970083003935918217766296643252014682826898546941920570067136517385487964218755688408619469724887478954120419212465802061685923934970222602898029286150433828575549990919165218027056596852118837606547519630902367933122800468705177691127530848133107182089325424489588472763724226820658072452787822211843399969688850730006432311688721724535198770238215283953848038690819790583529571596064750248983075812316585905459594732445273003349988638909799052010655809638779285205968992446502874022539295281615610116068576008592914054627697364238313203082392467325525452227428259593762358079249604518365927161253121704402370187012578133444241098699749746418309963557642954481443029968247044474267622761707733551812331221378389997212898617017290475443330681350045345584163845097195220543205263308035946600169142979014044150175963163350332252124255507134365926793353438473057346475575531238789721876366661524900744670287836508053562853733009483052136070734317743387834659618410329305413934895889591411969393973181042337474336034982425212085300586949801524772999256466381007986043208707205092752405398179820001228508449258358460908189538537495033928308478060285205073222628602081298680020832690125746917345795075015167758031264699288322274675160834949749482409335138119825848975426227470222322411162545651630365617436852072199557506746594785035023729750856266408938702326373969125890661440886174253698815137816272052660647217997987877267928570038105516446996787844983540156171385607573881886195071771717470576575720122793026009593026340253760744919906874657123093640647839373235278276979402150902860797814207591641115486307251969623645450091167097142706278631832664124751143321527096224827006025613538061195289690484521899633383041096717691465107921973844292954157799836364635676806400404433308668814484367766169877519735363271169885689917101708934114329277311430196747904593041080057152986084817624254708892083240342943393703886908266166988606724971131574168425909311908381736298335447921619014218614106898965011792460384983642975524729110372260860552284057071367163822345970919289247462437212227723387007646335734385072688722157715688589056923043981833873184000100507057971814416525461240325075428955824502735531264818497015394407814269006361372211079307748286819826482582066816047891942546591381505528093074004838409688878235883039523754155929377275703163993008782286699578033203468027719893662538617483911786363649122679765161305628626904098213648735193317609967497696219149768996356323879956788095419976248707542253816846137362323358308301529291459174493757668825681407171209635442855269202084149778322691754093715976565956820356165889843519494207132544807459966603643483034298173431488811149674710314642269654565906101529687389011585818393848988954124288452203912808169915888646412782735764428395969055506714980895885191038133633527831795659836298907807705193276748319281912256741365235509475281931343768346105183216615330134850079997177178595342602024675998689393891533804396453624363985489617761032144637597653189357964557612951455062524282095210248347044551729451790506962425190946769528333032862599333477067862928492828907134836349137613276174248073517155194463207585448869934351680928481108070015982585652306115251622273962500072381053067726183309663552596241875279189272461053090606047691050266522724743771443797969333958555221004123285114171353169312710958592226285080226186547973530877927229124828305931428753789830149343765641819918832116254250307759128839813253652872790651421091455895065727895494390914666291943280890894997373208713778571032382562356490669611913655999796312937802552443894869182456189838913541904931145406346143515942784951757456165611219875015018631291665634593219253818852864492468310910738123125893640616319569690258289589153930964791662243758461730031809536554261460950675338920196801943428869199605198640341216497639462645021464576071743241383675020857441612381878271081098034795055403039066800881720865038762817180626502070517200852841360915090293595306824353458971522386909638627044827303842628018690107441336131380475421557821197421596298868814669192527772516559969377157627730976996652028486608169479678558216901723830911979352351332215164063074684750927441967726708530026069819141487685925086448115361174936256941385230631516736745542973891279488632849624486946906939531625069197314457770650594901413925781635001781918295851926358426211457327761961552473540981611355936550430666671859537525366464592085370743670764951170082935248534246924923153924833296227844109822338615126787495789999706516609826160137217375646396978705740028032348484378214750373627826427582276473051019338765818421891920566529034906259501159952145549186032791257236728550816111866379747791504604613379693630863930928823544597134140529478848343927739126659512190793030018103206931233595721134243286276108935427602295521330027171551967880172544561237237495461387570701729326834866028379880546939865119818143576123292373704234186811006367874613061280313752884932741101495198791782943489714970365514737893715151452864489366076590488739991672262424256362771389901599590816635082613805455828473106787146455596649677588737907009353547792560404514152692449359469228038521848471517477754966372205376712086718105396425398065115723786736545088421103078224277211053311296304242488343802332041148475449223131472757367608399334315074371935803749828930328234762377908695702198730079102742635744994993621520902492019414124987681765042152033623235177592361594673883230597745746630418198787672035432090108881928586632487359781999218404919146728500513841798909635797118588003879880531455467783684112128594106329419883214169610923646182047885561851069751389906631569279990154940578836595203698112685923092882277234198770422679848144201072187160853092672118532010630960416458856925987102287699304997275417911927922018714519264517025462446447663633343248259761226297690594681450688304533981852972203925333815784044684425142304802443947204686716275319726856198143897928666647454692854448668680422824684203773041111341127247404088838559246339827504717434781494112789624385667905915166383851566746431369436967619485180149324146959573230001638350274925877872200330848285162136198256663934515054110399468816599571960828152226190673785075716717864266794163116188495020322463506307650870033434757264226075518067769272937210309373955045367973407081157547928265240433432638531313202202854677673729638566133679321221702730443479231234963946858409781018513622473831484768176845870578294356117454364546760210051390514656639304776641074448881422043914848144970407878242344140023472549406849269447680983373562177271988451861478960712933154335467751526993993044750519426425118591790885709180878216975295541312228763404757792671436935392814137626969322966656086685770509992799740262644222589146089911732319880554482045813897220790249622534836094828627391149853754475805937472483448744376979969872969003532762001543955681222063852773205845848220157280942845785622855693475529369622046290621065094761239262144727821742535526705650683864800119703327457466853880952584520373891648973730484022875795327997662357574200483722406554990547074789146742786124396140744395846669008965134349561867358829793447050915650565040492089740559674155368135239208463489682532054918261812386930940496175740669931854213117178436225773410183074104409685370927014220095649407145466654119914618111809220014009093922650977959296325608079190216977651435743691643491306492206081032302048752815995894552563437020236206715779836338753111263687929800492978283248343229114394087330332896041972349199446627761866091630135663593387588540657524269144485755694277386417684507246101344210662760068726257555193108465780456788303938810392255215170373989546851170775014725442432210708159019313386886536007302639558609993108793315064553463980731710746140439743045073407535113641967048843405037972018240788614847192122351892181815857814143646981280617721020490021004324815085441861223334674516401588688083959550135650952153006552390454322926545221771265102310280204023652815150663659886123402543087652501166847284026941722226318882680108080533318246479071128007169882769793643857263235278149970393830122042905431417881067749772775150793860809967896844023158370787191287810497578291997113068174960793357526630680398862446198855845734164602035094799448616528320969086368113948788670015280537941039905513469823738345432616399877501721441925820388145186405037658427324487150699167000359679793228233464562670983214381824050456175712193584316405207304570239390888545744059071294612515842742721113660658794165168632970909669632333683427706932015573552546799487091077571194222190891169786663574493962224487481886809913145726427292889227115542122875740560199747922560718162100901534632007931167057140696056078862040989438349665727699180226768344678599243321533275317625663788636902641738960289804748147225102512356903427880960459178776703328884920126360570273571373035666096299270280581486008421435021810089641756406366020147422899647693846499923923174071971627506624366441321444596625827496996895176604778711837644149638628374680964943565575573493486554012196344690793902348593988896819715899450955066043457802062146387941097575120579166986559155958618102829738943861227569281718859095445109649757175569984211628767015931543775589360802798291283925223473404573793266590895937610956208616881224014057479991604235565089577583173847544822393172187937504036904632734180054209360322829437611434816124026205529792540613876713193316945816013699987350882916317568035250325293260528046592452392516963433796909089590799246447051790266610685473154881034575710621049913241697708053670943864028787412482742113964781727821740703796518796542942375991983364069941907026926114903588423384631556166482876988589208268861877011753031538043529873636357490268912542337273985659877839291725318467268750704175370695252998263003610854734372661953436446007270407883064181878648354217083159638965224561668418049949590225204603190659413441695770351169021699617926058369953856603239957916244282469620304418462997362727610447066629180202432221822674169895266251205296172788300715425054893648109390796005452526676548640380097269033998649584324611716327099908284182643911474278258789766395903990810847205105306847492975871813294658003325693739798397773254303854398696203152278097617100364101533858038283225879376910507997797567916933004222547298756963293060631576148879261832092426117856964306133711392876875926436293987867383376320298738748776973115997993437890366498510932688736030201303137138104361233046954211816933985843357190692323428776746020772957682958263850031338179891076949267233942756983683514393914055438845806554089502078753276106246860174288788098841555719363815898973501161863736419698994269023710958409645804573058207217939206497654519199085420122634974243019111880518497486469577856648551341546956111318583655700091199726261524501658428881216414847086715237092692121528758748374427611212219788691547655830528095454968501586764078872634944292923298247364347602908759583486187195965424932373223053798473094165212892173420777377250084546121659347299381077645044488447173159405657350869918464097542337360800289997623129778784094249405121154609950842569758946223380584681335253019893735145497907871781110162142554014527049368431071745996914861261521799901549235661018599305569950769255253334810610206235194296962385351697012591757435402408911281705816518755046444369070435021989093884604437150489907188356768096635698073873909832813286124295547629142462508648705000687314942007088182341735942274143603107003335901578963425908268919133115979278754586890342841734508324537353370308570965239907452228728130963253421603976316165697099686110666366994484735949496890659148699200354128494899204298317002162954987581329452754316063635358556139937678258544874419017155985144381583662625330777567115347906179632285889573042476888497926133958182666550961972193970540489501139461171857972850718306077683545509180937530783881702176079007600283857566654150518965723095345508406683431843573349200200852352822131202789823391064213487823161537437762518434248700100632968004613249924743374359255175446231669186513868257402623925050350699640223118914063321857135202058730468750822762700723010865987062668705985558854610697925465162749663658398528822467507829590886574561434596485590832974857562753854494551937074841695554338413583771633781310576657893113002088697912944777873766193117082743403154926060752688556313469215974973122494716603468709500399301854254666010978615275468217347486476918467696005792971355008184230633361213922327272065031786563144322382220887022388744616174295180224550537293656341179599838758310898210844818639246338436707133828720263788444409473801403929648094177415714291699268833679798335546383315009577330695077127892772467324901230034195924502997961613082861430185598930755458312934988622716502682108494129145165416040847253435725060428014358873207007211618328972694593148166949926064521488204722232049470063800606464763738143162940472059241909222111639519658266809235846336112444240247804047642188833102683731258330319528888491416735114629073678905698520893789398523607161470225903864846138591575598763836375154191962441981115472958808062882186153708326916124615611528117375031018679974942417205523050408972978831380770524612450504259741958740339712568070575237444405613633654554888109830258512693832899366208124818013023877304050890199251032735324884964317023228058041084121881104563111563227476244371494734835901401264659029663393337199355206570089125840939696303880368202054606235050935531253941283010535677130141456423709670555469625991097285385525598851914622993933658416972285945554292247120664050977732207394737360354469978273455929613316843355321337405832699566353854820134452432878088669900018575862140494292642752440989764203278111089373906895282425425599976836168869028906835672618556465990987394326722429941711285908760570504131730347228422399202564618351752259564225907423511224246542391855046040948198277228505422013777695135343559979740721245031055163133430044110640509520579035681958934577486682912093693704969090497799352546166865402032997478728152517332589475866343576652651879486403818061516381327097681018946582600870105836199736065374360864093060395996291972847905166230077931267203450706084501337669513742479385847174786295072668171459906012118690446841122001568855288477013988044097743019116271340878363671047159049263542341354370562015309190297358773799148611367465694945756290218557041126398474409132197362613794005155323569142810116041985989249537904091671842277725544613862930732323787195840717635188467780313628154264080953625191957522853275906446194345647562807515669069250970804410528991974555776670685318656047153035051204796606209303136463571151747778999613990080805469171587294680032712488431772486310971362038550086532975937473744451727252769911172739466157781323743024348514651685249240216960358889049184874631419849972030104028841655278252835435789938626513781483344583114180603933805607607691084465969957374778308880325669170898361145077441528164936696995701795145316510407274122705164139748195861205819274410267836200934347497492638105296908754573442389838260603650780829492393589128229459103539973911317561243245040916954054483886142841731728260325332833218104106204563478405024904491301059485323576289906990001452862114736820987855872766199374617666448908502159302626361717768693466786139249192799385662052629371513935024913278167822067997275688112944564476139519815635659694519983516366674837671342603460220976269382443432442498622601448234602578299471035802433850493930676186179922333007762993918716048698217661262320211709742632291745986615080058805881790955348034953971512840378194456462383223683298898530133454511366787389704391495195474994458078161786900502648769662564686523958417977401265652383878612913602031863506039100849289418238201107440498850553721245761698678053449381483541812453620058583029295516028521795536040777067536809363577297421346945239198167008138408756971894615644758052724043726874531400630351455600667724681019669392852508158627615945221055797796080544361849900701662525172812804592181831202588609260297030200308362196117159632351194475556251103083962175113546059515778961484237276484472879213221608672521297793025338104112883802431975017066092105448957601444117179243205963248005198944773777756669889095507082323525321763262666163127106588544162633420607879090252042027545905991551815161894541787466673376176689001875566883499964640138750605843027577308322465490690933183388330103973951185263338186108386413197848961197722957807677606000731697637497282834831004026553230040977061712070217621064104883758243565228530953149867872227180886298185970333322058861051308744212330937322427326125236483874324440986120543211972829222456650602907292746183094882833912602910862172890479739007041321315850513958056921414209869712224764786335228112845777939457662588349519754501261891166387312881242912910089700876555102388488317170482452018838306851045022632557385829384470894444443671086799598560078567193046812979344194491322779835888235720762877077059452974364317092795256004671673079685007395018280197140501907252094380027607063188697128736871312916142891668988127260644986467414403562619907532067273648333043665304259440820873147679869343402977084917317823348307542207506217977664264627351747824248249503994967749025634734154225151384684136062877392568119764797170722717851378468185812307155154480279799238336808960522889175221675703340593270675851414730488037165505695872863629848745345911475445125458459440919374470912899911589796004208536630111859778817924612709281413369958417011429560377542816934005021166254988181689894388531451803561307310085363620193840544190824103669502332646878011378823550029422548398378403898468044037607970160049032870347878205110420225012598739052155270385438377733360099815095439293963510033492819544444062657019845833406467403159310330057718834695303874154927892435051802778794561198613749658122451759249682506844326531328178359635618481394728208401271788114590888278369638148215586855569760125850485730215008762977466168893245748832707335219341806506520396129238827463024321809720293838674806842287961373976001270346115274123164022432445724926806665502179161262296375836472899355474928675603665918831342691536715091837955971192970614611765958572838401366953768830222973448246223301706975042892134397479979666198440401469604622284240929994763017793381030493233698996811915274303729060048438468729623969635331707483365382420542960086083838583972215240174296585711221466968146091824847145270225023980493132653172194852097109625293093504020300550035582140014526194249561546122679670152674259584972114356979627345556676016216027130578846203316844588402461797953437365573860086176933430726304642744898710218698769430396895730596843517993128532111903740792009934698889228928625831364548159738294456577684467893294331030865909362980848222628790819029806247967329175049024061473488612350195538132741657493684674024082977615614602155345461998702713332004706044050053270618760361428577917094010841911026243563974270194375952093298562943559165241003905631780355860655429181250380931271986256803818823234866775317780255319501873134090737063396672068407610907381604710106025879670137126856103538553977190025105836707275667314394836542406075002327244199826366490669331960816079684957784832811927645524531884470364697276473054124028373475863130972274970367322268732252023402627365471874792298092831454490474590842264914375830914620235982774666265176643808087399445386968258939463024275573563716771798554386427693202804172642469273086780043535281233608356688916892816211155782437039589513553287673703331143919382901747103878943711914908216890330329407343022063824370651746091721071215103704540351596525066785648418924641616817313952892481095093302619632524934426827678737015739628413847010219846688092948531475739988467352356344810556951117239133349873964213816924614738849735324520748020612322672287421215461331766982377061999860158901147882793925947221993930326444792679370085056772456788998732284121248562140695584674936056435991902185027651562616946048395279949817917942864346972485985567797611866743358070543230009525414636887026776625240453091483979201484799018992006491542746753788367875098433508372364658865598344362139387415312620162428732568658776786375244116457697416835799675274344107592026906644576887905276764616597902191846682986657754906584141113555333555189974547794623030835227063901935036934047244105708294278631384181105809220777377171627065139386081652234659233148470691975961749508321265411106607201035375661324683805810924033241570180914222844180020849921514062066000867730337646434875851104497812846542103317115735251205587423106164344917202483246898198839010970959395140988967471703797853321180951919653884930442874557556623710069591333154588100180901768023798927929607914871380408539011453341316775666410703936413183291565653297765683882441906538943848564132615700826505003905786576823015394116789464045890334360893556188997917276625261108817194829687156593914690286661125329819550973838485619964042228615431424532845166377318813771437982996457720923869952746203181448144571000160156836325647202594165944596279108799762239326718912665728870089820221557677587745909575349454790843813284815613374591825161555213092409722485442168939810316013688566142936088055085370686668403463488971458105742623327317646045722963237903843250823744301164783449908145264761239056843044203024489040800951487059670456387072033051957459525569437914246391562300167725831546034554916976873503752095758094771211738804412954827041968699594331723705743850129128660366078433455093520579236966982520860337379263763253842702749446175760280018583703583938711159531636021529207336916462718526939840578439773533976196299933017960688971773541205309203315211780377688685055677377025377060390498350285209158308539432611402500774174187834596009619989575145598895708767036741003089960760166737616424761925940631093847785164001235033177107359177819010065291135479384470190216600008755056112849190837097743489138688625775666538344732287953832406815019451070420830602980051999857511243771775548642777915489928565795328328763666933138658619589602831864811529227746392657097099761116007174049950741353410214010042518987250371386341328665731812048897424999009479155071000575852954025034648911887483572335987144406668476439974629986381742045151228560062714783664626479140547785006369790208462633967606215275191842384708659698771951578316904243744609659322995257894069575685957775182481951917563755409866361792452318360102906148703786232953555752653445773572221156569076600925420285387740073588273308014869271415470971532177375280535322765353293256221889791257060758391303691597810736179972635628529255432592381533376634516246798326618142608169155497640069819011834234960947103178098875034072007456577322101261219274648166869032998233392045242329172190691119040041452982660387095785218393615984145316969770421829581747810504713544319021118067336428709839615372229173087572226513200800022413163661163168722247765741637105021154095500695505141032768954931576108847811306440189281318581434970678864667319263272851564716250520824474799295723112346889389138691529107488601643973265892078883990863501124793933435277785303717798480839630546898538449675034104513655579621413298368036086555300594424544290190588926219042000842083452127835971289401472576023630331409229947216734738262571086482855094119523104948041371556763633335740509977491957704728761710432192783827424472614424955823124767154221995145909985460547509113894977765844226914394711208596942112267343641358375395765536920806586832233431059145301467009475106879971224156782326148632940466909097784079587852371766496724569401087436250168827486821912897699042655876846525947882247813826334386634307483321158929869775563219248336421575640294945619088052438886765459579170667388853701685061585285576584538752900082528707775330093568682252298272941419916303160764498077691798803457445777233348172587584468628098134134826557993579523024516000511934052949363389779864630998346983507293434253564473428824380742963610253671186804204508228487505928361884231410592256544571265597841026309508184676770325637814501992651713353567587861132995500664906118451531005059305320506735652174911268483442038609189771452427484432935815436257965977213923779750577978789264596929202113703366669009010856031775452137926722435212888454504968093833764722943960037215753033353523287198909380211580247540641912299920259893386709812046036207786071449716402868111334486727762219194873116165625628002391492015574116722101394058334949402408734493110729495950124209786813833134050137968006791611808275059949572309113004470306970854429299655005981208536363916688664347589011397072564745197073052439035959139890401388299623640760089253846541154317533573190359040554097984407404327227592271174879096684830778557038728947254310728100261202750118481562224750992230425582553084929689497579024700597276333597986915841657513446269421068606584192354560192960742845963498410733017837316756110328686294638680207261608302000644232682346838627527002310754175779504538956042738767632832097339123349632991572955893988829730868276966207380300453759434117673561690718742962983046925909141819099215568552468691501252806862131312613259688654362867660409938132016249108801435929362624473630990846318473571675847294174932067854686413894675918225981645910597623226635858181239889679855040727127656239680375873395676702948649872687022548739852106018096933894077241653765215154670452767076427459210006979233287750707593544709944473718769505595840414877611331312988596320494336462215928281176199397180637119751240487978469139544684099229604613615949488134032221212462836972512125781440385656803332957030085126434027980774391677361927042082387538721802872610985364301655221112191680144635971580780777985880126123474909472058096535262574246391309195569880879822541326647458680552067052265420623070638408810147520221151385178721890501652500061563916147402121122265951011834275851200211579331123231183430089126454595583930310324549335196005391878692013193647211258517443985091626859052585474095203704329510641161428656008759599732463367421802638829259781008129544529663629774969935340843406936436283703482920085401549171962973531649085496181375663581264827980707780762706810861086926249003319337744780387298963831621553525104112102043404197662252832255438990084813695315961238432294739114128680794585231146119556966351131761474364181096709445306470366089529022257541135545393725322713696658568633923073015431594223167845137917504336367225286920674665143635095741408525023703312827576074610846291070036132171784526936434412119809173510645540081279208923281741810391072411418104492875997097535440736763548491743984790089678046712927522320150161454382113104949910054112270386108694228782882923068410375868221800805068661834455734316902327230659687412275593463071074784114107281170597201353409622530160257204966675918643072924320827207297092152515699869143456271632825532487623069298689262207849712077858462248259924493214922544590948887439291382598883306960460523647026598595276277754932020667165979692327333916906736528878142806825232216436209617234295192808410956593232040312954290598442847143428091867400945033346641963594600531365568748743486207705077042712900177398874804705294205037660366726517783556299628301286172910652588131531470603517828635475500078798373122529411359808939706128016864504550156092176589743595566757265066379623118272502972532123610789325106879778616732687308864714789819577919371049191952201825751986056867972759028403386265865542650944703041353466015552839703006677483804761465049023613803900115101982099277020389414420747256159845030620683603952411547126250932662373598296435927680656801017877470751546202946073635102320574711057085300287298922007770842006828236141700983711697339181001307132221186177566666686880588050467148038536831687180922246686188950592586694412806599742464908479093438950015838229853006858287445094718321468453211085406378876200014169552461366169782720452280140100156434713770170573398121981059178509002648507979330789695380673132473473540679922181023499834657810934826836867389442759140691002092413394799614918312357529556995943764279827469320700893465810199008099997489581911140451662485370271892318279602977887702111049586490995470818691895285913177360557127677604163332298616131590625837442603401101064769877216733627443377765690468692001447672101622469274937607192791432515157449849807200578586792359100609222192511327797927483372558567676765462100107582799888587676477801262840006236675866491051419084119071029763206967941795085484018671367614919849959417962744354747906754861020653405626393678890145066000483955172699739474958950270559518823241217589039092826948186282255432813439851786709073177936206360596470460703237376862977796199154554286643440098899473570210877830270794615647298276649714569636171389797663497655586673778290810499215782231313010897893070826522240504550633861841067100577232236877372487592073762542499804029979899280743291621834894502156918275948747200033892803529876259639204237405357767072149207173235051002806615013381767748905091421433351896878979325638859102172432237195034789157421110920908765418627959880094398028993668026424185237743000839027463976038043962187313934364571803469944547922203565159316676220136969467932572690027637593089126037857613716534288749199585709620978716368732912627711505318411619168614387523561361791969394993837484059894727077587363249033540310519049958114906271489680280098828324706531873370500424113521434620355321693341026415146257825141919053844923704477875505818171067907961228197537597574796625937871580573286081519691680873933734733245743071051463214462544222824158093633623043118060939286377976444779377238290599951676063714241358195628300511431156348163649445151474728950931610682996585853138171942764654702643770273711272532377499271949624401140918041630528239060582365257104176794849679483039161173619925020481176451373767084057547886684851269593771520790355383576098077065040357395809086413190305458453305271973803488240212836654051098709182783915027677014287809400704076388445181550489771848220885666067299272670662406749929927896668427325195980482133922307075695048797373607467902944589409268398606444216672228682406560992185635303627287209187640181318726559617436069599286641196953396476999480859143386134621863900282491966483146568270536359271155748323475898115648094855834806967494795793800232847055040992790824894240522409310095064824097246126899578893554261427825277252689183437796707362262471284735433749796783354233565459395744710027222540898104487682552135396951279578892995115132981894224543552604889030048072827841142752055599361907837257858699696780007314536189629616690065944523277578004813692549581537479309959421932946441723153921746434805871105476152184666401786397320334001406028767108260147189618435637105990758686231359905722817492910847160691090418398518185556108275916530760846754215347287898735857391472530379411298714283061476744980802895293359015050893137567715907002936707305447591011553058964228828836322448367832550575484430936193219234365160854647915045686119637921640717117637962571870946018371800770950196052141151758169173260969374877438153886616878031314992709427840831862428672826518789738975102536279015210098772595225436923909586491277956417126194505931456313901147212465941126938020086186059135551994652654553051466007277502451931279054895122563887206423549653929282520406267802472143167239347471716991600900634002108212454910620184766291256463391446430433134422318898449308776991776718593819944363412842886773795156520707532585208903749329216403096141159812132225412259353896839047709048894052663983568556651048044217924864792997781044390072237594719998118408481870166878182851627725063723251605952104579729639995561617682760590235438661302863728005075767942966888463220470282672539930917751858968603102130807328166345785697020416704774289698505091806971958318559273327379487162177415025068070853514202026471969895174537041448389622525277820636441391653435187704659468380468698203842450021518615468155267059475143247946721782602476368684568504095677201835382370955456019169725266026472161959350610345742181819228953730134371874010675522377457455512999623035599894255621520572092545886686227095753742271339651177802618634536269892166016395468665037927154711851975148732979799681174871428667904023791331753239451423084164733719778507371339873180099098972491998388706894941962828932733879087045950564491448387223427507977374451206894019115015685118357105584274516632379045236311011942677073075168777756714581788086180957200448630589149109531021881785392076785487935379670776090361762203883075698390298644678986439953643176661827250340420894007711973522573338200118414599196804035105528884218430699939820702147393631060330720028834205123775155286217983368466548313532064306133762664002672986646480753352025647539478116578896163740105547457981198220161068156971677953146132751056421411456677211203000161338330808069565291108337258719687963987077135403236759615564652019136964224974935734429562309340763742834234256306283560662260408954963400916242725992994499369717498841114082607108435583274495928672622899245677181435213356330334553232059252483833394492228072436520463639609156505056140983555034964263335864247407100303139079214714524061443560142214133194352803215859569958711383085092764451159573901076047054076471993776593101098227451879185554968137689732458561211961731415957243018152754405184248293109522552373314334863073632793584688613274218047432292882353667255353910770274599566334471717169575128348006338597818149659150651562892828001105122968236348800064304807997765999192014969967149608054251016222440238533331258955554285789373574831086688607282521320083940738206822125896715698288242299139139602450091367497124514049496233804951827587893347063667854528549540642396254711098441333404840758906538675021547337115372245978176761623793214068641249850713768030257698537185154175375082199559539477804253576095020135140139407843883422095748571815718295166418525542623702103034486815862149642000159634947612360825178892227049264457501305430385385366297936183374050313480357116394509638412166535699506679327523433526792885959956168111767916491704227843540305667747051094026421868348624312679684451040678575926432219716639090704396473576310694733303115371493197686074171615849611128402107994256612181543925246748207487349527855075374901795559288318588999701479619227163190099383586824906666365545338697826175129460959637531991313326219855051621031786387226780942206282163339797744610133586496739254835757462128802127757813848638268580482229967826519411313638590620922428337346748084412706014517214235423091641737917289483764923144822943015823335893926198070227987775757983342707552282397691697759788806294057262209517826007787539244531728416423468149060989267993241087576800960004557295319480959150869005518919716777288573462299301717997054897044467460028096634314938343593416460273060331875827719647410859539044511979915261655718311965300453879257652328719439531511982580255375905067712400215668074783442887903532649188673195494638249486690284859301585784535210687293154495793156540182466772163483405782892501664071624817748802044915389728790441769445266785983355254759600038792857001396255140458706593330481922995576270196769194300202901809328036852091990976178397570036414304106999507478360221539137715985529441416523172921930075596698255599392704223771695383966423976666378275981296509514962419813125171267160739522906034373334140894599218094687655429675420772075273506815805142076919131512349425166844718042433461209560172305261839078063036103956857480426136774974989617218189488090778737342158206118653531645873808097067914921003821545180572417818323227153534506003324599948515137687251184934047278873452852587006114023975369946129084451720389359772027272059817973011263160019510423702954404049930885680975869484741783406239298420085208721913653892386126342043008471686145301275950194610264829818436982568196632531085035274994211368444494240473249645824721234282435518042529289178496046969860369973715272278626143326426967953199671410344166689726297022061226115149738177664172282406892785832243871088135765212787711331787696821279341969708678302042971461502407114770857866868298875054316925719309848530177434922196395594957668743657371555974184222005852725731321053914569072845545023469289311363113417087851272618262181635553166740868069411718895585565153736723991699799061753445614374331133456245541378028867289515521082774326924454699439857929884146878198419632242522708420462269878215834274937441453897023386544233359662591434529970805974521449485799796363864103042950365407404243165716840628403667484819195956409764606453963058013746493205720713872211068106964010175063951444893656074263671680987828092701265984453708664993047632246996033677316765233876592322647048785796327363416769895708955267782180744563098283380744147943082054085020198891615028348360883104324152911777034857533657123251253434323981788951106960113074061779081797420315570068204510833487147277941294787582676248350174157255337168186176518903610360846212403348977710996919156820452216644876693605532715565303328006664036009734441195652776922198144564074532365777151070120103359339131045262141860537795673074347905585326437209093025914806403159556065674160902467242685638042497645862849995540906443479755472618134859926878556710055387309038799534224418410918455624803503688131935974775129571289692377285584891567314044621137331180762950908764177228419127947927965311370467325270901232558187734585264437667450539929173035092166556287519185760295745134590525243458858689359021676265239750381346795475161441603037860063054106394194216783421166347470079649128292890097866848661397614307970540824014378820861857716889469306062307756643935056488648745716877914224436117728402326531904545802134801321054683612345213860281497436323665338963757932298163110408861039633584749558566776369093350448077416082979771546687965214596616114622462388560849356654350321930608765880345820092065231189704309111635233263255803700111050680502550474041041406532197264327503328286529712923022985495927616373069045862380504176854223609756952859364444443538347792623473003606000767574231836760472599458969660833439677571710249486660963145189831063426274046049503759555893579666040592385463885747279649481876970631761171414527889919907020163538391646417566496332451154732201927807501162680886497457325306418162650448239326591719029035595856267549670237704975666295934094893899310235391043656476777203376032359888618434163106349346057403234815360768724916725047940702389045543580099837612085373436576611821484833226989569721563217878222779152254758687248301492036212680125520853701137051135723843379936777756969946981112274281912714820497494136940917269206832812604251944982801723557770912752514625589273361685531212133594541607915364110222181579240435669859097724514877186189200895578813119404331173423417169005611210059697834147650233772877513020036663474549685054978852853979604031268767638223219132126079292277965924045274936835610215946659132487507673200787727764987658177618740789477465978281168733185058441426515636100634255116139021391266405478209360527934848950733047961219138398827489807477546839758361389330275189987560102032338813574492953809442790806452076402321019207442106853417687804452259616684955227690415531629182993062647439953229774448961549022829497084011214642579089868436968259852399403989748735993388701334655208800456883980946511802837472217730618498852093372509508586027258009827024260341066588152506479090910451492927131960631764552670674401003109688392819583775732570012366171662186549976954958751016112562937756398247019568104012535563683888456490991575127549023961146349751504439439812329894477031454050298305701249346001229486001949517065782924678885335242669589733560256979897343601571554282019646747682844912933767208460684983465481811351661971300763734583816849823424510258596166119483515360460702264966164400114717738604001345421475486091414977393281504518458234304261582380144171851789349483035507320362080451568442886994515873310440857745329335286834032198376228130129719582318617537246928891112539035371752065511295921253964810716107504344425129606858129675134930992346145944627487898428341416268078756616616277522124189807992097507756077809098436694606408969793213898144882156352272619797976770212688962239133573415258892840954550476286088332492398233048689490997355921367594842882273478862124526826854873721237272688738549914187524005198695772562780587822486558788778699691170104436132798976785811569914579252487910510064601355073428665320263703116301569826005736779581312368994862953154588845876036186769540917741982533708928339274919374698298697435173218134228125001026756640840771679065488289057504645071231691634339839544121413101024393860759981376153171657576780239725959084517872633494635033859968319251965711031899188424874469507451607834282310660905046095927687101436411273610460757886361371506021652908703548648314355771995269817336434046364490635355797804498295228396968381728782816919540281721672731634111302315089732129213353079350601610357384016842217686779824517402374703609624024614129368850571773510148729631870093715620275197913450547004092100052202320256405727738745521853183101250889786918896475066937647902481039945200219630384888375749153495708034018023573405325859017369306266249571723995814415398870231763901197783243574660290214067065399948607005710217968140670111034075111364999279612882833269735062601565242330623406617783002658709603798151359372332892360916539233484256783802967267431494446535516092381524009300208202475381661742689992821795866653199157470646819259006905559403061348119713729159372077887827431937972299705238376065724800950707309694812693178501341746511401342344842869159269038420305154094658954899378211825028357644233946407061488352668824075329994428924401116038836689183511216352347273729323608193509006693712310348816619572941536679827703507574525006655198179567494593026049984340494949151309960975095396791999130275889653042509647020797441759754735518651335192542169778287566769300100303174110358556354602656360822197672002932847400214794412560547675203383159991561031861387327094978562217195005704403602046340205807446250817025916571737789539880030478916996521992087342733478362416145796912457291897015296313571989301283812392946936856546429941657219098762624418134157732593803958614490393086077637927252299017994563048372870794072987092784930470748267124233021432571086003346650185856349550620852212060186147183693686753977674327437902491220070097963666310458762884699012009423699898324581560359228464438127309084160095784557201159720479154302356122203689463114824513573523106646500531412779803596327053123036904811271951664397762667651350663803937147296643980808702993185846390914534322754716808737502750769159057797786970282546972268728791034712154756274106232375653700187320518961486603189653209883059520902494119019817184129680541725623654744732732878111727228877524116756170909858472676030013115564996540402957115636680712053604492324276494505467177586688640680093696134888260729319805363189305065012640915442483876429477577880342514826188633784871723747579232196177390879072684815212446275316119251407814729925453133330361640319979404065081228269645079121050728883798713790722613668068220937815656796681993649043474746438106637727060252018610043320550710905525209998057807406594844348487848888127164451134664715847297136134171730226435274530780561262817878324442653541862306408399103951202249558767453535508974897656762310580547906069118047933784684476778305586940964194796144386515754026736278783999497479071059301651550259331860841020174614263947582262350921983586910430956584559467473943582091737425770217081908411843723766455640282922150707273435541700685373063725143660510399080742477579739564795645966214249473853848217219991597973222700745763427798504244345310665924472939548158918296264988249831345175586675047698553453067845430682118649478847911449425766075146949053242957212882539490232390750214545688808922471097211143360539703369834448324064913262734203786166336786362984151813019992787339464327515185899394176445169895920766367219102130718874430631255415111153139164298967989654987939587208636932586757596653290313977324862910283810158514642686045005856969837201427641678011462002895370763007450959173414100976949842621515717115115829402618289732779705743639206591296046183964985321045819380057318495604179381241073668331329716331296904895108848854408165772683781229065955646781057826845732619769311904758187456411513282476196672396416967367518882804875737179594285405553452220669059824211872541308563974116972670555758146982585240545027682577169493348069634345848913160349300001236572887444450900668054749777166064613292541293983883292457041203365810259691607875953382963563171313263035050013931106193697097368453421712755225586885779166379503745639311551785018830148489362254069785603606264450523820931581566281022890495368817764265093488165836847777976878929718738922268966305917662305569547284545503639559123872575431087860244675602229134662878086070997756761711698441837910285344190943657583425087381947056473289398309651968200423033246801758730555834935910931608899638511978766610723017046376525173079222019489954195959093066906380850414400047709955240063009241650097341206503668462087799342730635081115332153317361772233972798404392180112658321079259729651021875386657195894811823952892024876752501046949076864382598917662088204499490516785269398568745499684269684501536263145740731278971317820732085759260507016742734543555142732934479280292412932091776565445748189756119018445449843524841939202760376287923973528884466480939684286536308086907743088588345494323339445354800829988987219520923191424556209676811770434332521125908620042580783778347174500717291530092379963096825921381902580424121860894418995434251651166840531726946580154553708125176120495344979614871940929122000134259172381002000995750477325527962197191034705402211551170174046853847288811309712967085374851592514627195370648653837105883728054649955131807949607650299135119163041452303826018500718551996624303042699790721595546009050154089418372895277572410208319675498699319380928997441891423080518874006015156508740195153900651594257124241232005101970614621467200846189570220008092159872293567266498003875644882672508691524507120068914059820485424213590798824640342864252137206025112788207740481230152355495257087713442885808768123681755900303927066624048050564350915214586066937029437501998655019033175926042011593823611985477581755325300469607514933089146205108743984435702396342930777722337250723489744905751275561955906133681645571615101448704035550160418979285602214311335040786801227313444087951604501534426512719538342516598386208091941056461126001670447402031601528457549049637305330394969628042487197875899122854445814545850113103048463179367242607139386037410720685120866470893861063228114833130256551802478739176097386025812088642274438707436268233823601763390731401094955453873928148829527997124459824276679525066598984368915176117983196889890430325537949813498646723780328279285185794102064394896328979748245420103367203901483541929978729383930813907677154277156808659171224935333741598721560289479667605860564542005097617278092585455652227335971230967294047682806588901353047185287073224714694560881200341732946102400664552973024969666942406146536637243775747300666608146446813527574896868990940595954580429637273085980974113773137267493814687954050307156407388533585379407394671833580288861972194552613751767272640611913409102952115327066421469020161235782236226646956017495054594542019767732127078371578874631234912146624027633685436609413129813793738117300467426314315066430868285897193095593972956698303244236461304486609314720023414744642729785548220295841802540352816678590305430453832899861601783835046872014108387467482447939973450058654080904007362916680387367559468164645043307987789169266498347867552444158891709867907319113006351221907739089977356005797887861346383845857778047012857584787516328634732321440884765483244194225815848691793064638033122936123531863254238362662773893216642610470083730002014620194478066182073018381713919733472994262340018340462251653511220737862971883629907323892683185000395294664568247872258400876540457042338346376621447840773884841715011155466340325715783757013035797584842253042471504942799798477435835054864378791462994539824780479643361670962681721615667991191955099584996051706231366769780431251971891408238407349901823529695318328113629794668566451941773018488467516022369275613749848288492909415260739664157037290241086163099342656826884641762573744808709540110496838865766756615828392434124691701951065882188528440980541322902251762949295681069156187472403535153921963991891104094151108363260521247325218871821759560161003524118419305494067353657464710537771136984698931143490377631292705074588737071815312132063220867921453983654968770470662874471762627057958066136642258989171786401127773044267679276506449634456856346464698680502162697137212526930180294050478689264467355577645705340923219801304865059455033240606245056197296030397771631071189463588363881912080120430072913868089665270734220766879971942602463642385951930482089797802502859432966589912691430651293557316954682491541898034741046226450146240456096768371763897643621392506816293054279835900651332299115652412098246297679612298531742788700247093664120501802853031233499840390476028622856644966517650071163728502083478032105613189227557545433541639750633521872888356774411040339900937591240492991081904661937386065354443094720930603059895847970464981122602626289954160940024950320430139139418996202480305682844143894370428442698473963925920158923414429766060599355901280153589450476293835965616716958413808124218949155273974390007921329555406192045213780477557277737198151308353432901220400786131167711349679575026884390311809619227959216866908753432801106752476627019863872975270595488661876709827549425831347243831299599935877516715672353104199374879998705299415305161808450906332356519607264968347654434186493630104475533550057862207402839592844735279813376636626284143311661459135629050488523114172662544315156134925379387433518471367840052480521706859637825913630146389039426702720329960040670642307252619428145113998727699446919325262653068459623058258636602661780060476774830270192368000189544358290439163361760044827663605771436472943061653747580949714640519542063333023597517635507229089673947694978239094751828499632653141693070153330654563003883575629196322008752212468446694888901392154230970795480528567013204075577195297055801880616928109194852380896539765838772081147348368721966973062708371779317196904238376407926206502078563119154773026620894578445194203966132299690471483980716034441155827040530935890923747354603013449851604148520769489634587395756177704380679497876372617642597392586231780908296471538041222231300734097365317618209989445116340274358312327334414477601426685378669485790738144784179261237427712309597023067635030666786670687758122771814693685215264217973961269449245225272392310173480595924624873904421548876932730079437933396169368099461692520033835500878526193895313659449652873921328703487234233306057317974352636158107941915342144717259049963689658353978222393714096355122412696699901937562597115914871380525120475441397585305510844503564172432219807993806595756014797944884427966867534461992679430439555372499010961593905083596354584683856441715970966319863805587634285412885891651541752170693782975015620350326171421491656012341533230647622729347566922928805479927366802227574410833069681667985128843861608240302242569523245394443508246950943382398507187854922182083291615512451507045575793821444650789668704924257870557615266539867454746800751940684046672464562923854316957566965680565502596912554240069387105169472132590076868704195969968176537205744412193054227382373316373271855168604782167420858877495280589446326683246462113435660841971520950464738305925207667519131361733214408405126399820408606246712565699331265298923541514322997787042782746207529542158303737413757804649742411084728579330132720152951388657932720570721600397749263230396543992543320311918580075285080627069923759496027294056042290882641400062043732171292875317324187020850220622189091919302925287815174941712995498193893081749971628336868609019183235526584854631239167928432531143955540240441038402689511396413898261645471411946956990395850077080229469522381813039940947144622506738896753513381322781136324292119887485980693185050958963710952082245023093741761300552274175772797625108509934152733370223065438413238008851521683914627519878836854695373695470903175273072965414288069056805851828364446728774038601950705073067074566286432723009525383097375128219472889093216261295689367403735613870362243214358931626060805578616102154561225845011637632337186423715531050987909786111953995858679642645702563482423105503157918132832716537788279956163169254633672705026027366148068024934481356458227490384182010271907182680345295063550352134669001622118086143176283196578731073938593863770646540308781553510112984899213431211823079539486896044991915654779092194366253761588066260536853659103256467509630657853283531590215940344831829195054414147813143301077103427365578651736477502821310648798695350993754306998455229401628747020819468970836125777200147477552276564570657632710276895059083186566376706758587363365391635328218928987103242000430883660922415251016642288137853647741428227402055596939709262545159054192311293544447811695101634076794885939517516602763878199528483660436943385647825166878970953326062967884338790855561390798059945106552032679371706185342072605655908973339420002111572167007465517950665613897484953954396152225291661391998569532352029692584421222403703206832315246870074949532169794408858126044288366052365674458550606576327586180039413929866609359384328934803407864125745223850536786172878280419280762991464496005934084805875616068571337464087582289849650414363780459731992375692875243816926348675150592162895122311330487025939333313789387931281496200442244498129396174347188184407833415481457870302788609381065023627644767678719521174648634412713199019871328714791016174337401739261646446965353355069685148936739520569668388570865918617759800187759333489285592463141814551225233086443876661363529944954010325715372341796532316669089637232584217193103737938799871936728869539868289327908335765040205982465965430566607660839552917884926040027202208215957355190165745963249067431214411384260413592753799397538555644575474708034838632324048974707160092545029027987241521194751711569648848539702199154338950790966577604947455335522976560739087575893967530364685920740671325552451068277577019212708789960753511502086306604312746203128355304525964709928281645860285105504650935439937786201017389559238650364837124546136076948062968239794232945999946725439644324658118952678263058265946691669575696879230443033973391296392441269576870001384566709464985657626258880312344186498159397407691739405672024038932290196198005010204786077520434010021561392371425133556795834764925938971788067868125702238465555895603827768849885645729113135193845394044025381982955071266676144143949155694585933917577885880287844970395103285171366337692297003644552481214857929193445513982596577226392444149687863134741214908504311591244791157570465464792540467412793631506951324183233825804640460194636983166664541391599782120292746909960855643340371078773431998011624061708047275916110594446789456383242049554952952611714954659030345396894971597905026975209956248731418174554750975388626421166942141635949322593312797698738558953680561587633627531477237194402858203151862648724299821463015495960644527056996366683172720815084225676115882230981586163254781720948147012184652411053586024890475448307167442723102489438427818781515860722930679357206432856878069354126899054468259373233275104614270190529983111396156330169919564129254740614076229977926389388012347800860932746067065732666110610396739900068737697042675374244986754290459933643171315810737775661377405243587102437883911849807937824966023693073463895107629934731368951091659414414476659283266003705389269527921471682299128070910512901064479137748165526819550716026559832473135182798683453609476543903830122225847317867672554096019296664726488889737691578748062814644419818756467916014104157949308289441426664108226510860713788054625761341102753683358285514801957820599346197660407128283697693289270918545418475005327471074642891993619032066727918127994666446413687390265577387967921435447339028565965276307843568335559250990357395577974479779605431179713422778333016490280035134031371006917797439505678583737258362457448577694604211050535951380372095571528392559025831550161294932945902242924179437362190163159308922693961464382056202679042972867998182853184855705816342368471390282433239156958072735926084863386606785280163590383259945565279116857992058417683537872997737694300857645952806301688847414000381478827798885926259435710638339884827836365331036918970944794726079555021413328865363349793204951979169928773169462054458087746147987672310989135470360631249802967353443706220368373958145800145633710859777512931980524691130137525566477435843767612909345951674186506034235626816589267259198126997749150171522812619978302433198718433780481198314188318875713381907158034657160913009461237595358980946687881776394126935839556746187187723198451830171853184095006862702908151056124373442699317385271393566276007805059098028246922014763144687346638474291770744529934732748738892809529638020533748516640829910566565361046466762538408611753032712868479365874813498475747568678549028010061764296322429073223152577490177884090734907919014127534161730256211904911798391868489664114744497683997804988531507283586670532236053939558636850708025837533201213344946765967335882505100385056158302017513766299444387240610698415224571307161892105995027278348031122896205754981248304707041654865199265709535055204058285997239349498622288184241126980535047914420323811783354314745914647538181230148864629958871908307551890649304523996215072401263092494952091914478124167826445065070491834653638053639856150032173170093434667136260889031384772028613084956847719964542619527321447641059385745314274405757982207413298144796492666831170648832806647608689929566392581915764141244594785348402313210163406947480500525396906935379319878327202042896293228940765439772433712566414353653640920603806166414379688362123433743182088286396138091435072424614232719486800127103695224420379172706162176876145818247789940964425106743229306902627887402726039774610741164087744016045830668599860276849189232182938410207790873554571378386789456882512108152453871787375540422850465362889018274103693426007259115560162208493829121614137261411131146452359261160980252223645767298783678818448088993117660221296721029920107697721239680797272051247569340431176265195740594811049941973917476745292429175653707205437388400680837769500335777777652996811452382299684964419323653327715808926665670762661429002915270840163524511205958131250528579846037949080856645745721298174577838171444962873360384299607094387996288464061601531297678524567620928025348547064616843650738235791794152720290706778361934537001252646078442299066412572568308618241277493837915402079654204796938337942101327450036173194570979325147750139316549799770010232865664325946579382088657227323141684052400841185518797621162277682903129608795705048481047630800353410501828905174380245702744772815840813783527077199710194555052621617977635221461537434546000163079043503234054816767167521829234846891117408649293884034964825721686285834262623458211970427276322315690269333779180506414426206869193142505720232237320760949883055967356938995991276221454390829984081395941865852448131801807748883346738063852960288774488937569016756415312560569887338429448799415107667931260501079877099331611696793398057280622331947415944730698361835391609954160467596363816064024395721953176823028813544364158417676072942079400624705424596817423077742059674096770279248413508939569648403529064271627936544791830380470661662810260826734170272555352252999793626559787226603888682569372296933699686114045652191626525281867987665742648754560562020658990012930867782245168040179287456099162359424284995940355922385640156677842346199767158801208528407226908609037899544018424020657040787384055812648469657087089336383780904532719580138448437341982126698706660144983319379997767118388781378234631878058054776778070503093831068219820152766507416607751057150179375621779023416584854921554810122967266601843867769012877109647406897787505870110917329467979271224523654154863709551911639819872051345410628657824889412299151460902306925972164204378837978453669160237293839241937754942606952873785920922501223230262324732999726583650708411232348033794404927244444868683592662609267147607729273703321375331912404214373975451894184464466083368458219813264123980670345814848499135206060772656591453475265043595944156603143064895030310404951766502929120738125111156406078634593519484439857395413480810024386762652794457907792706539027107989138957390943715146421399478724112900274256035965079838288214638127084032600741702731166244275522582347756919017282779525757021779548745495262416477053334170871585808210943327693827512847855775304529062806397020815721731551404867853832565870104611767764882944520787066247628995290483671095516792968386765634456582541788295551342125453289557693200004712028155516589431088928394310346623690902274532067026355851909214230084416248830534443124320176104859178268767835953620388541523274185138066306734920621498104421366470235295702048655824813305248447852851384049087870158486200742899900389223610812073317286818342237239269962523250203985759273800614181878413915903853627382062402116778083938667692071113068259900145216207536037532173816844483853399005810850384350278652405381995087713535135562421270636791252845001849736079408513199778938011516923250073370051171384711647786482294685091719271873730713276205648120019424646870096238494054956311983762793974584312301054694518035433855881188273201475203054490875971651422244058705517187853248616692569793926549454836458321990573271108955580638809682836313391569759854173102471570020391721927895939528552165572183984290490849047297498939390192476582862844005764294243407850441975308698563551633679169611044468729847412877153575577447778122032074542548059813921347367239829626836438849737882367969423197766201014719408028952977556272394081128311506548601530528454834207612539862249646159409529279665934214819964090564482789155610926297013981748754502876002847482383664758501975349010816999323838157603692596746281100798715207142707182375589210558151149187339646157278310649191104209957419150349645139489343885608161320171895286125234330604609557134854329471538759523984601537192377726632528042552880250698558989900506482748743742483409188834153117515241232568814970598934946927098686076561548551825765512459909348229555294689401610939662435372105273874107561738088447069507882060828822573096211214174809568735840718499949810284814530201216094398163468890944628952780250767351349785006255513605253127146781962035086617552700754406685052601699682374018041300467470162803290934176186243050099205734113162776276412835145282034966642586686876709847335386152724579032972249338670285291524642456191807723063904057681145920685795605872686619095398582558164388334731530122057674702151852509013025310354758690385820906595328402032266815985415973609568689996778988217651779285981889314352487382229603963989188160653559734555356303400813361314647231423620903995558033104410342523243823595379538459085071432624146283951504039170689278523690326718081363948377496640650115463646056562466551798999393195619690941995811002825466300969021430267134847474329173807773295226513908738359448432676534386993693562280243863453997162106801800397227615915225692507728600397799961289700003345713046688651258370972222791203837094321991278493592979924111203420375823904455776363128321440353015361470059532684085507314589012177898014590909283348693675737848524908696163760632747943535240675560173310072732091583244287651445393602607784954465791958162024233345527142608446690998862252008911561241988778781602341052467986670509318289594956039294846258096310780342225450239331737381688884484309338714025000402252520932252786003862271982038439283308619071415835793575651297852060169576362102381600784718635020592588801628889660450934496273478496452288672036016181116357779102719105738024572061750881463854708574762804687241929058050709616066848083367529576724619359856111310928308821215364360101375560165182844075725442180297668552258888448203176246226911908896335309603416724466567833282904641497997753292479761256791787836654706827078866378589657072469077307511366353763492614068333919124793447645197467584398156881220020345852177337214533557750873536934064756827361773665487046920257990916617018411253305634302594675807812829147848429518538615851805157857535791978045703980679422433973704275990296422426255245335851647031767043023804846431085634991215899443812415656054638526905301260547514763101635002141903849020016511084592628118434112773662282826439661894045589831737028646425058170711200380861586003662841243597669112343156831377229190102470437472499601203697851689003594892653013162047177422600907968804026872988395166109301320571182103679990944074471426702136431250539633923761037675788061519780879606002344329147354747589021662061108347655749691810590359920014228010409355282452968393511079223590114801316764777434619661678892737134242861203819013861733770516620669667625673898918114713306063719560016472259781105049847712551985924801155523723610346500253521722400292195991893425588472415810592360938051481074804273642173324973633271265587827340839889614937713551454834112588643007289330508996883352053899325237530835121761891720550451761711720779196363615839661333452294993384255303879565959026456630726018710943573283420600433956728513901415431642101633204268058984088178455133420218771928967233810593700811442358931667401458199805499042116310971182144717668251777967407454114651966320706533708860065141171034304511856883612890811496981690098501356226387024227024383208861595330102757652458573047935793103430016647519736725329546861437405420958248536032910395671012389775754748225467555029514812521803626064242896282686119691283387673580868865010387170371058820484017219313268231359458718673843398059843392923912300066913189572243036565441861917622615992805437796558490763028680646974483809864778260410735195961387881850564662191532443241615119871600172962418642663956854759632136834588660734580111859472300559965370388880840379229677505435269566194393397106281034767659963218187054784091082965608602756586607467498667287872425597751095230400509895629662684746305782981330133108365894622708435631824695509132377649909465012242306964059228749067051364701342213994109140992195670735399670862204300490629273938795097451933911945663041964781167732719838278878715794193483718484678473088571276759723096790607304564971413408753288832872847127424331481670976190950044452990965969194172208058480812867358275583708172125060876316133798313463172325573296296040288132117606170926238375185864880429607264303355371194763441324150207403824740366668513019245765221612526874692913907505603486979905552244415765335679482272480271095849464622389557967954278861693198506400370912634897917248075468162250819423559487006774188273425578162773767769417720784231574304150665431319308469434910360840020641980171735759703237752557632893090986922807440216520371123674414387528781317320902268457139806918773483424347083893665934716498224567964417159554080057477402330855195068661578799711632910611956332102727399299760162325777595208416885818055372679011083800609161279747506912382417521801084993537433897091728650545447676005939661143553023732390470092104979062349457604621809906397291924371928563022046933060435870326719876899003447505076284192377208403484835725387459120911279730394069266296797749127107143682311285887469034882027669191874016578195481208409794695407910522183761537622515763948456352862092567509993771003803615675444108903539493176724329326920822819360878273832164959790740940594247252765057919225639277025111595702520444684576258017012854848059573283592597666152616783070862964274738027327136197719093799487529901710521047375901941476145362318842158755241009041437760299682914038802888713627508245181981964022073463264356070530276410243029218937948291325803963989614324577368268080925994164761269277191926324639220510984189047570061542913105231978840465017188945242750882688599478306431674119660314609935002218501076238094925329847165917023298756938823560633379818226750638937644887490289850998712098948776303316556665053928090128874962034236646585949520611187746496707939897211710664733444626324584798921803686467194904749399318694751720275100257990612349115965210852253510013058958419767887896527574943967925599065511368943029720781525676904743367454119691846614934908144843709283163151201517736318069823223887572688906698825672846976207834260934656550251967004681199583388189182542879482897753211408508134477398205654138888479749809322210647750690021254180856290801904340458068221479113772420180535478919063426969969707386634816226428774390062044356748800415472313068045787513404346892040032142304071847974744323368518051454009086673292079224933569948459254051656534719731593264450277154852388905691439597840606349363401758155812654113135948882921333094667827603260397449168714980820690571323803509800901003916195776263056580672113427138368912696439709160594968363902711082160645261265722408431129580186939165743583469481834527541348392952352007737413243727276348354802346932343351821107642725892866028463624824226395812961937779683674156429629423508014416497403415196500125609647529809693583557830700846316146475290247651261939438363805834395406926655178200999379437016974021107501580712044040824156531830197810856237829738076024308978106780473049270530715217721869624174159314400360061029157938571467495118953826929792275720578523430011220813685465012980689437041327962833839962935311045913836432914931796662897917855466813932695782868648837839039081807205010314708385672800023046075421664295225395372478766785283466147056515560877137916637187227126422407191257786419953630655733603049182270986348100609882842414113682809488380660074458105698166982029266687385781276053585017794100867899997180462954072629957604618483351373024913270516046103145897756629331424295432367395050528936293863939525542591783441326882277086154044002600027826869038903309050662667994874317225826059318631208814537436112152180851391016541371835030205318247646889617622117851346582223207688394395780660531153663112206336455561432168229523965617440383417239357197394994956484920716273514077611470996757938118389582166064211172082078158612393033373607637331472930011672119758653759562955731018023785201839123227214125836190356573689663839813386799862064559995626306614987576142825291571064978482542997668743608009247674443534718880666748855273816172484989761309642192887685784456462199250290137400551880754669311352777109699944636229657616897360041974782371525857742518647105056756883429328632853124771816898540619174178923099871319707710588325627074092061903746529702106452109930783213156430052503337336883387285025525207955188346759566543744426252692360301335283469017930046682896699684630978371165192764098413065169587251494495741635224770401744140562085860978322846474049182557210667251249204621295635979557219687944592432344156125762825251316545657937547248001210685006978463736299209264060970292216124523188660427155181765447248869241292660096491732188902319838297347010704887610131356248986176174642839730500077471712847483893974256205756306029618637349001570412527468999782377764353645410443280211190979034614959666600822537913062234082507274816789161485075374033438966274044350322678979777155659984712162380340898559969227735312770408466686455395167248121492924193825611215008897899716015259019893523590993901256663222173652449537853086931182115232493715281469959409137958499890400391821791524650256518824772180965521766485243297443031809532466307501594642410244427313718210357433353910612363345491582280671184170376624878095897273486578930761445170961098693566518684815236512650351924553662264345291689330148002849935989128648451893526380798777902835485693597677329479929032179130429196747697374948042790382916595145943946310217382049294223427610531107899123921900378289566357558266564762396548164668864015702524097908575663963635335786077890824835249477877385201040899685825048928924412439086270577617007149472414702801363684157853705447419811723139826752206654638824355725610980624633277113206521261458628142202692264418072568767307105158005719242351146838581053232424652582175897122228765179783417945198307845819498446799496939417767651179533467722783932780361478326898387831837086536593718912633859190685351779457706964960934192112848834871053077251070437145392521001524903286489263540257074304455351095267913070480280228640920777044274251828482047538826310581306541357201998467744678475708008935725990376240358172435720968306835825696489881661466283504953649198817134954656532918660533142168975984451016337880679507969991833364167715978311553795735554923514010326867435105063489970442766913023120588291949809256609782414254984469725247041601110470796933128173068680118541682839382387972062337218908681304819657687392799547920428924214743938962771908976304252274679644347563887131309924973796657881298865291310878983688267082419779209232971206931854894541067357191833712199889316000341542221567901378585235756614291811547755107257034394548626462448278903392218721977240804225919459254301690522326241917242985820814490509524713853493527992870161357581133837739424940792628281700777559823632731608504165176983962857732576303326303910854902514977276896121823302892611775499335390679775926316630028743490260089626016507144520671975331962033399237669671215737969250990298739533836666812706930693263414556976000247993118748789711758742090605553847194969641418266088834491152479732177038543406132852715433421398579506614163794984762768712325695403377928681589431143593820804424091074187108088163103220836292527276311106797476371992705180584910652372457401110352110555051201525838651474284436557615510595605977578118960857630896846117807103189318116834713120738647303025848586009038507065000303172380178998937891166945877155500634637488867193598675508819366753310273253409651391393758049225260826486310398253197056383792247103254952976534248494486130624870399465096848283894966254121277546927114627132401961719533421617943623449284969871387222055460420811556094408491330762939421421517738231660264901018837322077036436898791150325533870071602306459258565713619265085290474976592814347074468826838183986950383987851721272163212666450794791526166196079929281215440597448305744144888292113466444856446599784826814111228866241511829321702976259101299338675125734312056346411073722238115376162150005566713351973769425504766779446168171830710637590382434187824085044930781445524017136692814993884956095247942498854687373060791998422160853521984789947220642173670861758471592763557292884433789856203862694447298096090553587039144481169449893160260894842443588054448042264026313604419899667297077438526739829058518175736645201290236200480712024279767778258963929776057529069174330752761388308762799182017484760856647862199621216244795859126721443176708360916024652672310952051764801155933384595973382304679161125771175183354774786118777946008531682904100397528077792953277700370695404096397990277767214159186301017442456979352646320073125659737514664951107853174353257636806995208805842860999480105394996496548474683969309440633718415981146693141135398206850804754788491788050895921494377184713519269628765370530775128297852900799308874428884097544350803309862210673786434415205608349385227867165823951596974737434668657306163285445865006255318605276224173215568324380710095028799937564780581882161397084067222778317295446498443024919026539007901763566595431843343269753124537289106070360862530162616535499008661837841361117158219029953778670053341217404551290389649665793310480321863291433880712674656860154984110560161033502254831288363282850500481691771120365630535376498842364858027728822660240665632732279011690082487541008676057501306902896203074111145201621666830447803505525099395082299792687401559081120267531694955905822225909627659968067774908302656824271469580512047607825642063084048434628931389720638131812097754851167111891867264523713817320242232366484739812873889050454995205451051392430398815838782617310232230936375967353747530375316677943301197709970339040688937661871010873331980591208654720110591754420274572146881686439178019152834565668060651527770482418266622537733974099892179920788834708228845209266830641002238261479268955151140323346627604682499562760772505159907021326203174414157694224393476147139842810751455905697966497749248492983281789545955696353474298818008061274282164210634509025643911825033530809521284175829010784750678811876923379434565701887667501684151302947573607206505708153962371368067020265374942108500079579169272332762869746433613851450682184197423933094781295840793849001170911123502384274525356290530955128669269401485351885632364432110949613127965908931568461348350863189677316387206723906312682714951187931642224106773835443847990873453493252971866213795597953856150158126302946412141658775834399908781446475615478546135775541734441687123500706364950695950574721095413623213506693911177616963171232330326947985722752144543107548224054059552355735231551603769619464595989270168004635482257623056877491983275026425839888070724792339797962999505012668828207759622918185195045870877501640331768625641160052768262852512343458780424830096665780116848603974450610243159147407311085671347564679008861317399184890153242734305199485826853374640068388974187022452244423388224935695576677551262573208254292026692407740881680948618993388825668816980019402052306672740381098652281340225721648994369293761649053694939796040422053629032826999835427889836470271978142124248495788901946242082745581488978236933428253180999286887680071752897899999718249905165174965021937896529687041024000094988814584738588666384513788178991259671141286457143922069458354739151537538849781732248154229621780373107518591459973064926147757697831857940572185410915900112499779598055373802059766654944007741553599420618965475677972925865324915387585702483426958099496054607579222600174500727044105979517290536164735764059255694462628519031301367289176676856946045413385115696967364535386857334380888892640772664309180040306048870512115147640161550958750235610710199186316815352553704407736671565193416272574656589369869019394693131524609533267935876949703182415726222854252909220095605790791620506121008107257774092570492127059428698502602045962017566967548323185195808587607188181655751199780367584236452404857395930235165447728190025426914045814202143405601897203377037764383198888835919277474524462325460138748665887140417123502049501340151497671460305296257930219029727385238207943226501283219458073398364058686027931257358602222914751290074194922840896612905094994189427215404907297622963247162631416957429230364062424463759475804154265409202955554870158942620393436575909552494938710044487744934587494389452330493956956515552975666102419291248620606580825381846867269572292367173553188915755515658962729188523966696293265695058145211719964244278427542442808714762112182819428167178855800353913066588745119994976290399934723765741074236504513796414117626449264583298786152440679399503555476295972237447369555093039182765112957461410028500020302845826421391551768060691808841287163645804051021047604876909373119471138250285618752847453397419726535376220214892092893197834097010901299391426274699152577635447648274942916692992497501192017479706664432909641274517410733174242512622298353035264660087205362440797120691089460107006658194603930576845365916927874792112668039494751451602967955358434081089959537329293822398853150171480634546601269004142761427403163426564904952536274665981593212231201251580310034087390422044503520920034895257251887945373588030502045215316730519310769525668682844710477632645752251930748581995834858985017590772565670234897511644410696978193932319597143557322351306142841560458445882603229469185402156625271762132310441953729448010798653906092740925883406119034117591706332862908609605060510801369172232724935217165013013914488025911970496812407271115286634885244902017636521300171083601094394954313246062609569769068922549635753391737843997043752552640006850557269716148159227621904427612626997955930874096278702734373729537682511786562932581578376465248737814428470360233905080703406216309251477473936430960534492399454452588669906373144006929441012777350061246211743237645728089104459388790216251322258866854587918290899716758531344650265118200784237712413484352897110428800272360308622572736779572046823628301232280198933816102123328223159331683965061084042829035923974511215324524228555786644675423730501616798156961216133592291914159205932062675194927870486952474114886047150676735441965481776258403056608120899817604283830408733642786474394424434395714678132395655011199035100335275096891677640477530522934310169116604387706016389674266133880169676849870675888747059504417870588078975793725246734333698235970089328588346276198916657460776475240775752021152441927121599461555440912850782176105722800892860539927655424770238626291322739923618578216287182874711154866849140385724519031419727982824377851362002463775409800321682414402050599812005875390839002168952045424146261248761082973116330990679189025553547404013955116789918184548299520160146342432706593995576953441628994477585671810341262485976214370145808022077029334330234146348323375469827913931430060309033151327797254464420166340041485789375605746489167297921019955794278239439610368930063645370071310895849833404305217878637455025502611673093649999603193934828803664684590479301261765551930220862263376384645981105279839277765265213391762924347717836086069569284190798186486550370675611390699732022949356004918196792655573984462016235152391483450506293775779670031440270394787899096803673328745610217595617464875174755336592038911049529618419621732829611773781866122153320080103389402750728002379761632499220235824057442646284127041515580290562080919447536393922744179208541519334515894832436151630811831227732375965356031807934725977580026895177642537964818061100287549870112874242335055029630742518731063992828203291488846797105601248079301252879006719215855952045393749756126246959818998846153449861183326612930680725448974340963842630195932918198059194855714450460379479965147760056211685828563653490786564984119526617305085868460625049107809069859000485380228528540674317229339969570641753409391207103215958528662114530181496204379815523680221564881731466556905542355245820182450672362381762934145381167967012803167277145411316039015000347586149238748611029052644225309796423192341830082073676507120203641637275181819353411197881974900036016280237439766994282581368357129110807076673250236596020314701551283849091067342069123744305086560594033856706902919284864042746643915822632346036454221667792172127161422782801397817512880442686210019291818047243178037943983730278645364439783215083554160064271891883507269009696609814880110383125606837464445257019539850589842892083852184817833874251545711628076969801309065389068541248378452343965385705342416629616616432145242526642572690945143553813869533037922354319109584722134617585922458155381264160138733779846023944066845375284415217973194546498238415676860671403757191044901510801845964638223512763395688856174488736497854878466090861467815538801915998342152090590524233193802203037219058810596663805242726405119567079948217585034775927809529307639865618343314237843618114800686318340174179830757655183866571661259355063312685972544407349211526775551079823105277114486679374058089595632035147664887423139387879229678943475946214165520292090355994986448603648897053860351947448615998791373577511987812096077554955211065992703235768508054477647857841885999521120299801150736808317684290738569053884134118343143574409707912021360864357040814507255890506206432549618938643546964942110213173041659159131658938692290679813042271357307633996810039175920180859660029846433761613223869431348716564904407528226092714272921304924166523900259125107508847147307670701657916351126460683162021715247207626513777071696805479644436899980712703378831776077337293893962103709389428672700039759129334768211885980464370229086006876787902848374300473597059047049301851444136728752664235100354763571603238891656230446041041837279473360947336025330658468744941874476753381934938775709931119138690842429527965339365387098682887731335731080106911706698447577785802669349851138228968646816962228572007145907928012278121105960483907334246215555050727274650574064334731163523179116517591446319416809746041168351343630050729854863593147071350519698422278710521345306637865880698558309007144261809475796708422143736006995329364536899425145681499533769676290234225507069214396533637863026848471742621717979779923811728281004296048339411009800910251774454997265762976107892053002998002073014258621831218306913894618258866491867847862615098504924160139193470983143031688015089559231570629548501948882180906438455059589752594583195490448894248886159009717705237878800096607394935938856601178876154488198262030546074410582028364833941254845945138143012173785343752186456016628923786794978327232430585910423299698497418985525571181605774809961561093312656114295006192604456535908934646570664405287977265622348173679135662279365088265082258991165801902480848676201476739963195450963635493426851528531174665292766269664069376327498868270196810197177878915240594862572049619262824027100024944445818015536407540380042824048090108589517803561831608285445254593022950441615413058298143595089100791622993675777539974153249476444574004188096871300513122354844307760324633724310191007025774849819498747350398685082671515107297077546742330395284986678737635956683337610837841411048619648865952697497933033322091102592979626197936695810805754733243897851869436084447016541000249189420855730565851423982309352237396341508283105971303093801170402601553321383654692288161087307557554778963437953209488904924098207236656801885646061714392029052963347668993273849141698793549234221586898353215551538277344487140203911161304042828949834677881885931654598567236356910071134448382426950217668574192043068594401498363933162140751880482915489168360352169606713481799172642984050670941260709741762410984752900914601773858970544215214531767628028419267859799660583477708075747636866274949346732670315493532387967096503656473560878536535752098377927281076610207369741886983534957323461565826570746041313732627867846815911667278692450777584414293252067979975724868680468560929493640490123013767077766835140221102018050627127878812151340282498133539231712676454796541792636143655095888095203402452065341878655876786019924413046860949113229684083831763794209073873547462555672735355101170358514069292359376020620701537712238006352995404405428176937043830956166191047168996558529148053185194016346086146828867479993518707870899225361994269485384720254408870375176467640948297117167880926601090235343384501112410078250639677198290850019514938069268140939093157083656304068315791089892277371557986155298046586548276803263873873517769672627699385772281126018312502343237917819538157593647730693703921941005987695018933682117636733893634290845661148183072961547933315241711239528955525272556437034273052728952512767630734497270774512195705807468652989773230141688275252659035911585066600075053664102476136844440950848315992214430469609171265402308300549178050283450117307004023374830681536189930624312494858818956241094486710945576109212331929488923873667778400448668695019747547620552185656205853962045754622824880271365469652444088057803894061865725996287654488757820688985423070634121384629296916342905434649593288788906374496083984919367128682478228122856368806139305627085333218821536346929483110011210108595262085976985943280744942894207488351301750223881637217325387510548549369229938246524948117413156268724834044207687885021007902854281940384761519766963033553773247823840721641740468075999698273388417963352964947733621633962699464883887622949205825690067996734747888600051479138374165877295207185275379963491623768649595914138786903975320947185050427830708121205476624161036513155908688955960678574654839172511797438690707266285861754535435052508592554766132361264118239681801318893537528264734780120148314271016947711571043566059883773916928513346982842239442806372685354189358150804836104387809678383522092096048541585458045264979602008505026399698478276932175748299333756813525950221127580017296417917163512792921236531408949409406728892350200830317801599333053302357297048222715446562195069031881289588817216105216848594665585534383129187233186953001401522727462606651078519937764039740612848842910055500589403912207861267408155049153606337937134170852011201740582079965891506917242623517096718067015586823999425361105791181489039004233706065758447606853802508875818034399575764063296795155361218353066513318933431585591047897373415494188901438817100615063736718189633426825324594202603329200777913152534577053827901350029203790774787536343976280187446075181503173449679316177312250435201018902555730451236780257296507218684372263706140576956331269096347908268356996979703982986530379898830346808064291849288712186412073468258363306008211373343653541078446935555011696954971184659264235722110255340622066277940629228527559640845242205077542915800831195048902902163711580049016418480852244240807707348333637071405449554940184702757779272631933996265799421407895635644615193047988192410063114700471219244973775648700610435092727791695928629284669149794729519690984841746039351993798793819996271200284193213047754711334034705657088349119753521927488933973328344979673897044545777102379577301882138066001040415494639888475795715939062595982603668172186711242786181670461005730891203103062193698562512898450653017575897356257207933831814326104414231393045518628154532499578133952910900921569546588183268724302972465632170025867947659412697781725696750938178492181379196028608031789097626510002331367025694469158439131192457804465083012712786463948747321778555557676023357636329280031582369339481838423833594641076145847181335712253542085970310546685160415693492478942332719685960486663680560068279099468088411152958526283509574542841649037553966248185246080888246030586145751709699471435046699887560635543284342109122482829854644021845397556033115952132630180355982233406293728061639664794094090045770463141212841058066247574305309820307674171085871989805949631855595011874880226503818793490952890044971709437613095513279340278744498498332320650571004588041618462523245442211444254968838605445842850052728192478773512757756954878918038163990205174260069036123898834645081780491341787890028470671099077889481707528016120671920975167547484998052950378569957712957782152066876394803521457245811531276147222291585921811400204798567730572769910406747852515745171124036442702902696958494602516063408266339033020178241377645341823250301849059129015750557802189325162615645246972049351816426522834465700036838161338305085518014500983090816279619280748227738293794127368279177424121148141081778249440774380630681411533840667599507526127254498498313789610634385068139645613002933998665086749808340343504843145675904483499111214032265326540225301443113324905882130991255557241290739899187541403274093826963803590603725314204275003536988618312137688071316397322445196088898972502215274013350489335619737387440260768459993932898146991574410495669390614622785754327591695191589730911048344351926010675786981721503054457614753893119340944903249145283849943284051962608097038040639367254383740391505300548077049106544159587562933083365736459563838273509458621765323656269979970441930971507622054313152958881748578533105798691970446497612555418193524117698449359888049641838418206757872472637782500488728554758429416952341376537631556435722213238643709647849341209247960615188175643847402172542148918586623010705718519682646684357091990861628004503251812002874266000631479475731118010093277417849201902476497579322322107403263689533645835272333744295094719366719095982521027166216056004449533508829215562226718932154751197435675712107437324655130767119024865594250387453657155611330630689660584715216512237375248936197287866186344946912524791696050031297117593841631981819439617906649206044398800892562510116012011208980188577055147917426273055516507349373874343876397921741855648050486883753508979801900166568447412646722411501159268219069593485642000173697076234053648183928588937241963758919182846122730222733212753804238775908130605738951223075638202709013594954271540173629196599888762361208836652395854962589601888543628033856096915694996273523409328872415967157496537485754908175019521398296928569552350434121622979670137145848394581115222215517854933475974281406918015221149884435939169627372270469969630206877186132236950333662919371078259956932838637871549967671030260280425156833645488495728233944263568622549028674303516713070476814789666464933362111396726647798041445401873198808640684925715697183247946192024317061898176005087255503155141225001600974462878591119393067610701078222127413667081367367591396345868531580323090508920729762054450071850522654610433823882195388731525877242076647241780308940757363964165814680173378933903689730409247563907271497621045680933648388063588554119886252428606530138726819321594075796580726487805249572305777672014839129463841007590727708983819510875668359192323416399411831718672747970233815544996235550640078912137151438369859732457969724610145420527517712260151163109719594011452500324546994141531683668176535007881397936398858031751970282242169439286774903239154536149210298443033270177597309187278028266571787159607412069666726353043241695723375193958927892972690469373829383984552964602468427367445010222371501707081958397139888147666864126532600530614464662026604600769715551404281948148415456336132678069976979999532393408114803976728019567600378552584398005204453628286096159873997771415199748619090496342986204437024777696837504196783781585630685941899373330223619793440479821412691828524931601990270817282564875965140068081057744566476141195187626704434420630877801176296970354425620344293715489816833177226069574386455716889161463631644116116588360342048688253083589653844703192507942372288092353228461201318192849273280814674009639443776055289629460667208812372184345277969251249903510141777084987928746393793682091832539371385347122087529471963256655323319454258585653056710357128233223193176776810125119094815308401001728860294025629374168432829182884224936102157823870554816590315066439367360530816895233561504863389887342889359312793878883655425267750773043984815248403183871533774302477532817961605018575782941941202149822567261712602811494514333373597098181796692971993725387622335250714707099870499250008941254994367542521522145185872268574054417948736062122434410338129071751941650881882197324382398050316230543169342323280882956258688792461050358403876140624237745891175917812080813300006763428237298413131217037515966722959050215334600623614512567917348847525473804691627776920116442157586676763276631862980223973279455148070885856771456222375359200622902293252705911058141842403532973026589837396416434283586477133380569507294071446160221868003798926453778584405425784843169927002045611942526434087337875887848323228149210958101947118187353730862501122548126287850373309752431217574460035148355674296616507499317602509492924785584133702202858858602229534304097856811163418888892544746192712237392903377005761983265415500904617211149470375524360870593935097086731809598972412433784404173312366200042504798298484872058603240757249082691671438427683631379527437228001875242223049817711661366486720549089942298951892309478580914681462959136037858821703035574539283579515964971343278322429630314247081390735354588908030845220686107294986698802991345011620132409375649718508138897976474815907377765630143424976266966733683052276439208850418007928341244271750213700041337952465594922459680428591862606602654453067436422130207927075919189733375468522643578402462812132287785378782390562055903597600872056077446330277240141330078794960553478423478824391060252723102466897255022562370092515721779342691511042686170970816012629668935764734528834338753721377637317183109550951162920687208191318867137358858442616379328523948055289133869853928149966686526040178395415017615743506356734018977724613973106256924118052357536585058086705004732277310687074966281051000136509913134496182907167775822679513408358861791433263323936688159771745852197339476948017147950833271826519471071653691065928271369465171584969218432298207558901185697125994289813999055924098598402123733370329338479983990951097843807318790694755395717487105679092180863922758108399502149595399998397845857987218556396595230353260678717471100880771860509909533854906023918974206297402575696040907534460277086292285400328789073079900336596740541222057377091145751069557047499105297871215611726887951180594178588351474705134257117391731403740048837011775750982423664895262957578834991451548614464126696245085173082513318780272595277998795753488610360887584467758010467789332621201249994396616217638683187226485306037596453767460204238559061735145502063547251997066424500027457439326161771101466148054747201422385936035836746600217933751476264735465770061548418151881337248913730509096596951809399012758767257195145039166291660840299651024748898384442107801491260933851020556657703077286843823971931410752482363615792167899902197502940852170964721817212974477778300661485345780249254860554426181486204844550701930971229503571368281598195298717425875104486038003098162831236650361472162591273964837281427575122193314343132795901453719012053406959204313252638200685133329628817776555871728967140774455888186928403644177895648376278812816406565462121184346617439639792675519964700327804068661607363999621458640210356944488027500238921223215015951124134528346938207057125490553119055979115357733135014284903266251374001073126435466213119561046574048743987912905227306878028487895766155080407052369444404173800752523797855184839841729610646523903228995594486810061907907282455183102461446401594572366082166494694728894566218576853438453800666391640506101205502109806796702792140807304033079587377376615369932106096136857308297413738040244602205350722556969634873920348224811280774690746236597936036939214784872492512141499728824589721991772717645597196317596932745161570715423654176121598518008165205496403366684803267268426038667842063056027333917685483026822245944990424415146978003874721138764504158241098425239033906350473394094692212486763609399564409061119393188873717001863448093031045311185524816349793962335722983642908646435759076177132372959570059760148513659210360541493542005217046226587180910270735958396314171462405814999778444536141086790133438427792576174014593959674189380294583248489569111101337483961282485363917553744427664950458394512703229105738728221032037648665284097252385332721934903715211860511701556869644231806403874474999922924122201733443091343138150129839847938673279434133635557367581338859250269472495138163906525674574928244253469702276594740724814048433286807202499665306083191393925031121995961155308615375999136047416404691301975614837627454343688545761804559277396622829020700954737159908511608684544075527224590250313386846833551696167934166544287833352082248352733348001082206596349498721107170355202471813784379393148133983255802544441865871942121882570060391154732134203098076069757995935760164949697924222827813373287700656505203251021381409748053926593493539724706592948913015962489115453914813104995798560929576778975739925494898324696469312409430862784923459033586439262616990835113175939297843712367173996217786558055409790027909368340729144323141781989467123946200311493073868924682644738480183369243876555436157102770491747530988825921026638401698222905840585222486968966050768443899246168414176511446134593132258972023750150991598565898962677957158869953073848819733908527212512122775728468542962220636097009792369287602468484869396582589038600680438057338769390590091548386561476681626365745448561994176714139383809870227516026107983326515186997685141515135696974197514925407501465271719272061670234492726897820170897672294985271697173330645290026177048632615254503267528243097770824005596521610324743115364018375494169451605436699712218097177698029434908177232831903513617930296838760923910179579308699428937362746385011845088335044012501699648337350704825853060064147838756601236270091717129709956901334286057539593994206527302924955230702309787456934345866634544693244542340939953048238683087851216075659661865607645302610380394554184561451236230324004291974194826603548646942696337376118085577887567265726423168933085138620665858801740627102942914326294119801069948316763974095869292533207837609213558340550665079201195818971933960275525809186234575759766219785430187360344302836088041956632210356225501682269415271600722026393197877284874404612443852809484329840183037204659702981138017466035090883138869702558990038211270787480461298211525052296839242599374518115654647189990394030216728786665744961516180048767896092128146687857486097012962716511119460969902582014548481693711729562490723189139353849624897443708237677442067185775569327603380001630110624280037542184902271664451891818394409023564807202442819062613149857090633797617944259752379411971026203309789727937765943581308047093458141147970924823858019151774415545232784485810062937776731512295104071834676404089058461442730438945016238480560023490844136543543426785188657585097257717636317760687143174476488280998034007689201339276824994430818614954219481904149197910409305995548590020068697444419931765326218250847451744316136064404865272325677596596947482103567405363258993933914750127716162585273203799996843552282269640750575919053661282850247517987580876673166697091403189711539791048538692788895348177859552900696670025163875357748385813683569133807695569790297578879467491825594404284289140894636815285513438073533889306630629813220747657478227152626708085439713547245382150543399638604786769979352175010772666779768478830679400056898032110717284573870615799151905372617639636251822785549708671385386539263233987303710787665553196777882519027672619796506534351917369980060246227519429471704995574862848420744122581095035234392833610627091188789654859812851988686572349650310363210728908066285703715818466485904816976637061287855115600254704743389419984907458243680486405655310916212409402294196389438137792114549718460104142516911407814510578621882635574329814238860249025460176708085508810205147635567897916387965497180702237142785774959554506473508101238227835857314755006420342297482936149398272073702200896409901483743544821529626333452884986402534075827565670724844479793355721085777226378577605184091082594693882175396761622575849197501652338172662190561651591940360386885638076326046645731919377452205887542090239293726462984848839075280359878694840599490723204426699674277191808907800170435256180140231073992943409902897721767453958771681580080756852059070688219576075781260021843161610062625572960760672607383300992659411308593461651343852190730646179352251740413673709138523763414014958811643949236342392868920606210425626284408208610733784002721902840310881428623390407746568344937511043643400022456678712331120046720299691015186824269344520620265542649819329912423217346755851948788684853000892279840647532835223292871226216701165721347568086978923194959859599847292331311590916490872855014403467814536349701836152717913910208476917709939553475878461447695062307741910082209919556309157733524967888548024667343891016924119154682950404276564378068284632046513932887917037150583204694413520094522569326438436054706114725543866684501384098866760280965874647458995109992787059134738401670298221375577009617422892366732753467617872336293139741435353148847594476423599834533578773498707138800110034050013882868958347643888777892964330481255734803488548978253254199777095736324257994653079376952446262866034345102320207733055563904773450740682293296095228773554745064847354754970006803372439279723473827660254709366370946172746213597362285605043900429789153248431817846856273377804760289686050479032828002890236867290997198806551128043106828309962433172573601204424281447802331695991385319630323263102458325882818167773670026622100313084017756096461837885418113334402903276179552659010039634666231580182738283351785027601976872539329706490779240203866307738271788794207936380646172793276082806081395136541403888341318541240982559133635974379902817801370145089007470065951583201012285511474961303131517591454791307258087864199342349282703796365579764574146669997706139616509729877208974602092284340419212443754954484932797925013928154930918244461529591007044803097263392984778408817183940906546944054967773050260568872740699696281831307048018661786124641351223869247481693107352465438180088684919769143710551632323350612838071378073589953175871178253732341623817788050854246059516627052469953837483540570439712093202805589157796459633002983280521848563698964533708894980633588379034967035145704424976511383526317065752433938450551501126700802977962110072129389203453307296673618451653942799313629440877031429560107744108400492835304547067044740400985694018530966835831784102065639081789069500259185857876292352546532033048533479921656760273467908976092231435794770072669317160442970741339170939771722875454489779939579268882610133600618297946780577882504157444909560951290492422828248156403201046750499051443963495777204565532412031691310979468169094843747617517959733341563678312619917210676300117254444463640899844749793826485570933495076291740735802007639241376295851845150350543966106639926629241353118512357937917306928407359821690110525005467015981746044651406478635610130457257835410404386565517880379184646260810649482319141779702739893485669087907455948436640782224674461008534081032863909196827671052722992537098827394976832759175051748973287846937422605565841997800056480374280617890196221308703131117603816100203284237434634908897034873710771599062578835381099156300032610109310677918555226469872452429827301009060613704707063994241036973459405082452064659749304454358529527787815223992082677522062586026129758372767693676080662041041146441897082397109788136501497859302038147466760577561855142874640693622837732181801526027416721684953501272519935468803571407431275441545562116198820613051324952527749245477738604591169789895635285093885719748910788639020760144223210674373665728253396542404674401624630194249889724495751965172162033215024236631307764029457628993046805737410305113621479025691430843017136067886088066322542053660664809743603535659706894392692414838277162298965493811368257705303738646055425342405204765836348719304179582037847275811134164173580073646397397163773238494173991134596479466810301791634966432042832216824186446691649170085633152790012047831824100452766876391757292801739203600378320310995368159606015607214766918719785356439753220700867193107565973443986742614642628949777717296715677635116485230927886960807707276949395660736696773652260217517437846452928490343994492241004328448196971522627444664829840681091089477530410963309363009595382523917734886456897775664028554274279023418724398514734626755512564622446670786579099601625105282043234229875578681285080606742308536066856608294970199382104545904256472873976471482264705515728888479607575147674391029598260036795230791893209708393763759318016923406483915061516385137804540144311840516825733105945668275453867623451482732252350340987558080744714417283187557007036550011057610263953422654620675647265371932333707683439365414981165447942240779879296861033254392796044732446326342537878666224332342909682057490377710921239480147328099950940499839486935341710952178339739155002611277101504929801590870982962110549991062334931666507671962834873550927070314609442809556631872018516309205823011135464682424543425480678243689472503010054497188297380913869271895788929121606147828888222444614837969352907445288661599118961634308941445940898650091870504227715681574071139176083670965055269771993908982133203864969768833078804006935571424635457107323262663379323532489650940999940565769873355867061079724282607881844884203553873068280945363175295549605388901058442725916960990883800381148917122225773248364183142668949809624466369166839480708527090553843359493420256981459124904713518537891227923788288408708666955768644159673437642676568086188174230755382590724940763291243371495088483335889608213174720118902737678428474655791222651931485714600215153195978491356930211085635393581436614723482960694128815072253549448047400437901976437658943895243952570527718644709491965045529887168710442838108382220360502048897061428171307646172791442247819671119282055783905087543103547737501187871289274024920004670625572825890331067066209178786722860459425447000380949874380858423605510360674261511796939111072427397924906697195201481626175022602134550534245015972681539535487711268511942073891305609048541185065365050688624007350713031054722492365168457018832832837786002579372001348702296806158004906596993226132021384815630517640287960174165509300286711297070412637164910297889469238538485726917644985022419833708685740607254160902313255368689422349327619866200137061141186569636438009542586360071035381884218666142423987459869299830560447378034278135420608704235082911587966429178275876589773739367527543143155392185607798700296535993390523121859768826708912616120665422201222380537108012400345322381099811730074488273043621128268260337855878081267456942272897554108274732137365183727415274255236986335731101670639256621692185031225048683323769191719612594734529656264190510457246626748098449653177702632056211108274713480927840884535809769390132345541313760550162632054161277812842153137504621781566414989782343841721298423515007521194410487072483232465978017057446231350738912085252313760884200007375098778562644189389327505942177838075761239948941061514308188455667296894204074788890455317211705461654920202015800537175230283808734481834508822546275509541425997984058854693565188384144419212736241436996896292415720950309558957013443732712977216429430768837044724089622606149788586080272742520491896695337377417703840871031063726654185652033391826104047811777874528769493769884445217458675289812482586698117631346703139289367037097717193110994607363621860254065791729201415854430716646889163891219885632498510437867536382302040502558863200898477979246951122836712645245078813026827776965436245641365154028962771623779237869434715215045618551302147899989048065931171835907951276650707910442887578874208523358788744705610961335631121075099221271683577879069718598964191314587318084521624634757452385971331954159550702325832520783605740632538841030956745192363487193508658660412062928145929665572668506886042536462113650963881376154157189642679604752308503495677714557471891349495827084549920901099568261325852407423292741617078540144528541686625485600105218170219248160394946689194564671436065571855133864555917739105409094553736082981035068414640863509353956154298285779447010100911645661765933343683501563799857031665572129126855605590014438179508646600915518147111584059278734063130177838070813977488961152061771611775362568017633007249614105202733665985071941061755465835343610496645230421017872664878593699938294193731180058840046478329055425511732200159501731356908939433964039621998080566544750102814505243667989314460196998243066306782244772704422782202777577416808749550037282985703144022227361647914291351025415564287304250675102221276774951424892565728721494629772188562468063509247582515237381334178765557676360091408098797791129380782549615491128098652373609663622892234762765050338537823550918313799186076909297019100387864499810802817135608225473732855005132431264508627543394063520529728480585505436150009378879432880080543619985619811452608940788201338978683820957015559986939157048197014458494589300876556319457093635329432855424061988865196446482096255921888238941218468497038840286670285712624361789645319707623925293070878401282253784074328103929647368789413338037754200500732109825331515751860765948913361832891954008861054053081319819753537662971292647550540842503897226332599132857996551906172614787154621100703561998507007133369261385678330365772545230005964360138753100786568665191672488832832972071023557101917145586382873460887908712320105615238547848014067336028168665193311248462961437338138585965286592398220611070998819745401020171076610466843805442465120845466759286061378506164528196643484068551016831544257707497572896961648885943966276477875123250189901759176016924692096315816921701169038549943946376625684078579677042307220201546834697580144370040974502373851025187076133237627355113813909909443724687804676306448828255167884260373456511629840248284601305138727277032512222164673601897367152407886673797687454715227554706356843392850549638171540372035709549309350831914373875251025665740157504565699144308972759670817454006689133335487137979359430035521072520098498877595477982360328034081285931686572921512418896330880323935275864454533298966574872815411220793493290938387284708282269793717086473209226823020280277392684337985672433314934797508018379497840921410062657753351521249577066747002130734303983152715673085852572858443304939918353098939150795714920998263026460970453359050871562170420472760454100261052504553571174644089393950172097044529289219490415647906966450273609524745978880489579054312111650766215258074548494972104899854694585359349945055396784359015236656800157973114171256341774808912390062062159738917146620713699322480108081207699930069871972450300776297682408973968109804994784704535943892469693860692918613199736791930526294849091065809625759659162133303423188058855230010941589200479789425023716148640926324205609523807434551649101150585923458072544415226496226718132113014931733507182542505757172113364092133228543105152795705984210794366899481072772200537762442828882650765224704336040960037389565648595405309446831990402780860814863215145213715511941332226870541759963037127146228321438916080476748225335750277389755481449106631807022301234422653220983866712025517636896659439650531703002684762600461920551933303080272387618210469744603365150501219920457475150211080994487482115670395374304111297815244395878076600424657891508968675543606878985009829874990632860432276589656251159457102290885147213096510488799084462595109958109734161335774576850814898652963040410695698774441149895462948140352602300251587555586028075383591832894567015194800614901235771413167433471128580995909032035111176943842967978129355826320457051181316025840588437154626880497123049590009613918343369007091060636312604669462836441188125721812178732188995923634418293313678088836408451790860124900683874098679699440159081563670990018356284629157519845283308118268233220393890036843633295884125865817803703691029906555189989059554989441012413347251441379661387727894611500353434247915155512168114860282895182276056377648230827296291329867946690815996378221474803036757942985945836705967517533172649200986942977447697160592266370795531854860721211886163604610847853195736588982311022440161767655119436246648993463951057716342272455219992534299705952880030158967330630682927803405969439120866698237554564059889075849716469053692527323457093461514025051441075445013381520908203999711425646630496916548075527041197394545653924208556421048242350795300013129231216841648634605673726646031431797348372656057541411932607849474405079179139729793263189334124160856532413547335914256673012242480469480771742015411711206620860256903582030063220383490794238264380436120237766978734418559531788105094267382877941653771918275831312539698527447607204700950056654686442154206628948803883497048952322727608964398841463225945826757442305671752545418343798045635034891257397850344633653491352374207318821062462819661456886124318369407828038409184321717329067234500215234192886786139118933442914462648486248467146386122610337230888190710120007791270918510133693345023117911656000663846202712442550143095349645392516644969660008071251284655403939815678860856388884069310181454788457698664262639932285377561903730664547171359585730677548177000132158613519800854212349464141814927903894675096211071189111885427221254161001825114478115545885287785422188410226608826317137327080201034713931300794269555548876165995148800851117965486851743410030659999513980325458861351700924884952399677299706887315343265791164626253349670573691649536087243939493579897121389047258099887930267470998193712012580064302553312265677178280845323401270012521353813738764355831592739236202435189685480602197136643212014478581653426371534942683929444100624265079144956270328589110151646793158201965725027956891594426523260167816742519205844714340538073232920003857841714028382400063272544347467902874187970466436548819828022525492873938326775393981789357193886559929014826093222351893043161716883975790539602441271101437446206084285282092219131002177049763822099653258469782803576522093837740247832396001298771879147618487816100093324585513402435013720937589758824568786617768739630408061497943180840303701566188434914308289617654865550690427804725757455918999239248899677902002696067268781805368307773055262031941792172709965980902481521425137474298332123420639072261910457331060399212099312754188314476906046023441824401338232085768595530975381832727333022306436384871254033916711070789133055173296535205137643898632483599949126482063260343821671329846792125265562290029433466125664641349153970008285951048113896934514775500201383961232781164161608434395513801723977936218829883382196960152558748798678328059461506035407264986134670868366096775144679888976702447000019461490518233237940217632711757607578883355665051621571522143139074134660076868169404622688977210531338333717820917235913199992114915193203208591280903360332388807800247699202315210520307704561444503095586929723333163648248632010236892833230936991259663823600163918273257293495231887166541526508157817271386304117055573075357452073075301454886060947964625269802192454073251922959862853638442733076914844366659860190255381121234620799821620173707301103190607771811763171625836630564264135707837299368201456069912342770812486370707071995795499645003271070569027371016098732744295339772703908533322952003765228138518213161983293665597389493005258897523257981982743372625193975742781276208816360575914738249265611955481280751169906711747924600319878117975500331929923862095338695656250886804845016276917656544975640759304061608731897892330860031425351486950981005427094284294193572331808255877856647209364964710085081094304953461254579223922415988358203743163573384170543750843952536373484100130773834395048515375086100416816388065496248380318231869673447277861294925805757019682587312954090264501463505587917009357659743146737254507143816197087818001541575164567502253949131550572780150716374807276889271370559227846918797287535030724707751323197022228886269520325989733862504913146784407290160068575571482849368439211948700301934161884685505990288573089837323550182336569277753174341268681995625024734994541312806450171434816501740916138851398426679825042067450663110340027299717333426677225583177891315699328272935683029828333471073454049931088593900561142520699753673177754264914726740234836905283812270395998585436802112190806099465481933058116858881810479378200164620152963126918724216388271005173922088022755433110122825369374977876369070493661614622229703717958798691588865648883141306043888510413476620642081666034753828477649002875048651540477571558004634424578796817330888649179079098340661536631947838755064201089990167565956986534903971389642680057449104259191362323974298090127484329540166997325493584341909384471730025363702714303440363660610502505654677655322747513919517184264711905964448729638243783695268117320516256492135707734740508723769402511640479524956870745425025431490537462154563023502362149262059862486078193472681249618182463998095041902791183055259234561009183712310304035826849535827158614897312099974142208408668319094493539488081206135054930502592524087595877190883637942910192630441618249412794204522681959360125182774535783030929393364614803164590265685865099436216276999464144209893614682936040857385910421428374546553590061247030984408647246255065598266867846005813471388853505099920654735094404061645475468858192372053765872510364664002629982396632951375946295671292989165986766848829014643204889996072344250094940178073269371803821432471503686370367822810087738691761981405251855309142029725224365052594302642631934358835842514627634066270937971846611967181287175238734830234648907926816148596916651475343795724577322684324332369792384026750094845945062503557110313364824830100784629957733727447348954609340738037759323956560002159002514667233091087252653242021781654929319244977399606641115306167330539352379984952712202757871101300234941922617485197445197379405017655031508060567552728086232359949519050801533688363726428137161337073647348818723950507055607384998013937521357644331412788960058726441114530764103964548194473499705991245288402589367571565653451021443727948927130243395836174063316894923571565666156625145527637503822153829485166919092833255058352014295784688746561331052099445673904743318876794605151569726943213879933052703915627773182821807401685284382673280455583510023799614853298686648702100559149828000493750962661979751231872521622889612410761863788421535333465816748005409321749421069722734417140546360428990641201664165020171190655447396620568590230832231409664891840241210397889328193844063337170631308434495603907018285711191872647189881815379923999101593890685483923405956527202135164452107626798885116142446117270660032353728099561742469001304343222043279934669893498788346582079752728948413903774301695933897876846483953800909572750790559996425748485841135207169528658394189898673618262098030165491499781201173716586641959395880392551663849457611855501741831643453299101483189600883776559835667907590783930765865673552509478996248276358377517682055255740942479674783729342828918025350787522667917677067041873398824713609527160130449985701843673345070106339256733006415246619393580509132944645564838212349050545796757988752812143206890032185104828055485219222138579294780452333208161037705840559628694900523627091857610479388881567958475128515034864825779306214821549004878574028743451112808023347001161755707721132991613504970427785220116046326601584280396533508398984615757343365738362161799622897691372052872249460282935045670370153277405068381920310896101853069995975452865022676515768315376897490800878909991793458952290569683146244838861683265000444923556834373409164871050981218593031649754696114739114503287052568768505308441727906113848567376110826817971256247912036561099978502436894972546025731858141289855028135964219298830858111175897289454025043531638815149249823477596112786440127477052655718049596707395589249163973896824423912959157936161514613844239504282149289041867313126318412406892116617657112958145443420431617123843535896788847869197409801954947246131635591011170083202324709918541083385807120360495505433067485995717097594884972423114289831995157244182163549936750867985834123344537507534505686517930009292922439523276010557245418361810378583401080883579191847041644518127413616362045552252844374877234459646265156816362110062886887588389330025173335870584001295972841815154852565387158746151697374551268219340235698595653594629478457498496435653539128060399402399411046912256412982215913595643217297334529447665682509621402341031523821461927226587901265612074818865827490208483230325256095851449884153057066983121502081526228903474723383130406903620406054175124592274733430890512789468787723522055514983998294542052150142040800731456016490922759836089557766029412206231076904545418859253885566126921003651646647978356333594440037527826087133885202021102763553371601531140019066701866796677329077316971113189655104001930984666469561333774611913400577925414073459145252123619659939654517656405138111546530953985193330764464833484867043987989690323259136438216780630907988049752094005784463572144755624288198500794378052484208605434765894104491991182661959911560953976216751834678947997288824268445225850492404437350220961037480123512251815130337304843889065436934498488549469118089597646735117198787767496723994099640779683706504626703316374898971345379193422878283109758393767677582751109068812698209736323399638161302226476069273276058179718057085913971083622348907349476339852625805382302335413285738723522371289813050517743680980249884240830708128849743018115503761879620069095135612615753438499822656532990635609591773805580207058715289778129565977001196767904352106024721338122586387995888878092947554609927011744861541862570673587372365060464105918357208251426616203764287220356114744636736452338925279153797501822559205374754689474152677854644561169940548877771063706436396713215069595981266323333917938519451112510364269289130284298226029683059838429062699399688565033437124634150393539087102262027736361592175828183190056044384150487319340913563101754923899172965660094691869229191498355111851373072778673197129858322138625661014813241250566777230273858506700959065918711203085594210498970531578574596145278539571976892697024785507903220380795823189664723729061039851951727278228757879712381821516308813968799470222497497862967537294419407855636361023498143517346865113081069350439280435236616801674768844729654049097618974019596978910254570844687821964167415100618713591037855245558498709101974529715586547109786617755843984243407332855597167657192194607625963347984479593616682611905702457031686388510042640696023010395071772294161293139901642682750369083189614508453124999196475715314835684313267110144543363473996694331138287092574052019628445953620529011442357301525329027370497347545772904326651332912295857398713702126690694744314964426138905797984634556181781570278656059612142179234090709618929058825659863395903109795564761082363715844452556017279233055786390467870144213148745370346949186290384598512869979792573365013773950567966179571077334629638683235217346855413970748958149459778834911174432412744508056105695461925386461355959850381057868181573542762653912917937120292187597497853178113786003010843464545753545952030221336240817059235860918841480248334677641454274890235416944610092707417664310514354576004441969450512740989333518326775877173117790996685590908630430893318978254633816869979268481940220511763217345125294384922344491351935108052882637110080623149523939010643394787295037523741961912692706669047901048325688479795606822562014915855245254037267250683870186032867108189929375474479846033226110636200869903902780560670806579493537742662808706757105895048501320714245857876189909259537895245875779111094311288879418909393813178501547959133304579617329438766776576445401609040471339206016201129461697040611361770503157752768648391481040493332857514561039078181122201012489518982418839553718404629780333770448329091274705762695049218101526230290410631350458491646144225549531310003184291419261643242121425177273681491373631860850143947993532846200473358512818450535564324591469663002531940081407475873171746465827030430811098723625247062507189782316097021184260492099741094076622342721178288898730565633778375280381930211643273972195157229062707739686909377380847363288273314258396712200753977246331027612228009897929399487770634320877316863217129403403180825419720890803472137810203875819399636860727702657238307304488811094797446323503027980809447061188888420028641819205513591568409685760228597829239999174337742694457748907796472228538690981170084980470205855649479556745764964461201150343181049184526399695812595210756648413763309091100446163761360461964254895342849944870921742144415778604071422327475306134083230680969657059291252807461851967678613824720665510990355374277002559174903707718227925419540565635619215572191584239222741635851706206614919748350073366058153593074013432465521703863752061271972012048117136528737892982261203258070585143421946100876977090805614299238595946522664303327654569598078219941561272061507918139816332695784742634556355105222410476263620475842504250643459117911210615297274340555490189542561281096026874526232519320138301378200369581306917856406026466989805497909089677865770346010742616355024791765473777770964548837006414557194420122089925287870492337678591180786979120665984750037267838194573792116915086609325537489240678276047377946381778263440542258772549749081467982024591988224102553294171719569375178532948247497296013747234417488568721317622122173303781774686546207247154348039175503330341580384509740818642340615388113426756105331846539270375007792654630271418290663671501487072631514399076865483098873186184304682513255874508752577709783046362336682287510701118810326556989634504784843532044556258187707564494649570826329569795952817400628289810226797336019317310400995678425025937323635967530116837395431713544060062928021114927752845612914149557766451126032981454444770897648128490592060742995173272489363253174478009751063332984860403244854589899812188774612595841041114392323290751266318924671764210664158394185558073121728777702696883027300120608159744198135484120343714072042897866467434530750308300420213376197751633664414378198797150059410747820250950286413254075581347549954042586429604378213332931064426736153445903425729976451375259470259496281319100887330668197053991942980518518735503722218880771972271743512142062424932130539068424575167038896857931455034884289675105887907892953567891295035732291498388117950260533695269942246320484328244556900636858335939334580745792125989511423274739622069277402142520549333151897345497229836617391334786141412067217297747008505545835172692668673999108520628970744938704650028033405068228002606969741962295086318992361296510130117343240999666426564115623964948761459288413180334333673471273551642246417792219778831744105652050089241042425360953704303363553721055290073079713992722121501668331668795466426303471272343770972781108089629882384763382793131213625285842909383932257659209442892565050221264303220264851826257855125727982652267446959141337733957935813204613183982120337784841538574127124125896873515732287243972692020184065817452512663186569863359751371000004472516671312503802481190030012293242092163584297661912565958570239927740963946413162864081744012368329645587461447879846069856586405623706545057333564008964404073497438215449995348373419258468588631886632691897887718351523064152233452726185860693815359017538213045260007327340898374136836608113922211465104265204558133885682503504549205976573854378428411230712793824631082662285518473201308099598088179599917440369666669582235453070549341859786860816824048110257820479985838739438829773343836000318109788836032996692102925446233128214649789898935629627442018249860996178077555273781572001133546644220691791792754341477469621053984160296893874989854282756538624954646193301901060201615511278642217465365903170091796491532138357991865316266648769595507530901090518740525158534610319753370716759650415069549066944910330097901222691550427266062957605453839702908704041277295032263161436315328994870971590846696982796160152661475335364571398164949610876503048457964883625561020294790548356647113215697016507689083986262995341143994346190742719061536024315319454165713645770700907204768491024108598687625013690826316011601956505670051349186422591514539072901489016632222872640333609433166334436227124957541764039796483245800752654522020595941841206181697459374698070274280868718423660879147891137515937878320840783589373054564931692611596464607321575098005154972180374464391969338785840788263087795169756621790156869107211219318147620350540324258825838493130329868380581029579337874638275450074590717267661750852607851106144190757303462437399902747755116212986907681310337865700096897737175162184177854103376850639487401939172879830463526078611014266895365275222744947304963201687453601787040245088031153264372634831828438459023756143120393370100594536340246779538902970743382061186701907294173403732883713756037185136837752424354003201784035910249141685801980529056463572332842215510563364057318440485172633157030809944567903678168259525501603155704939660060484287035332860442488239759637728967109072295228573800267444602318483877785409609662042012614927878108090441132676341307968489087961341056335789649064844198365782845540886504038384068640166016977577120960727105311431783289095892704863236857766664309955065651521207682206168373874131458973929494610274136959641304580664946171390815042384053740356305233029579119569871289984393317509702489859744032684696444084009785191998298340237357213570116988636303251285629609818473887769963707734168585546888528220213250595373082698771718333870478324972278929799491218769123259871187153633263752907972320305209255105894849550809007765102445470033262559717408637701496078147948474336243807514319758621730888766405476919570108842693007068371117365750457278067651717961741134425771728397463497017092492776124564360968103561066308644538393107061737109182411384972455493954692684414505565001761914713799163156354536953982387134965814267087775306562956162706479059170782201502023099926710238940067163962914728291447499994886785302468174977965755480304249641215851456790458455812547668176871568242380996327197114663357640612529319876962224559552746330061691296896783954572955826085444103798067543540918847155617574916857058509904631915719198822460838064662515447149960822976033330752992591593915452805288244334387709938381962754413546341823360833671301502936848306735077695330267532483404057940501309552861925142664924797178770596336997896482882582136660499182174737582435260100720051165484286564656843545380950502380157155648961944905023069414070593157874011558936743988036100042746349922936157168336647073283894945829618777141318874606026027848004513008269322586219363226179787526559180095384506608660856500185977356557015114461869376496047835276942009708017736617974374149205758071447481013927239346948501361655378716797075420966195205815401159161575510864893273191965775336097175257893510999708714360546415739771948297993829977581188083553074626177416034695829090424480627741024645521128524412660620846285492763791716369650306007222006668154498830169490027219731959515768901930031678710182214913450839906590237023602754019305597641501179604557894796052473976997008582905657917523081781072449387480349011007437958852034542623646243379940224464653101466119684396391178262709755090045752168403690883805853027474787329247126527141486449066304055280285375654045610520165636796463437118659032589642936100424122579764700139165278177851209001684305886428679756171997467766728651544561456586517645721010562983413131072585910215294075471483187329953383272113282823324666581043491412311324091482708863295057979282215558075047667537509051130175917371390024487174545131525867840232251225833128702911875201152318181903166791282099227558834393133898189932172331750128910222137936026630854356068283949475443394362559619851779730527486238087865508399225898672619684685742795627933651543172595322285540376135424988959334959510223162403725096255034771928663682859385454945266899430492405673906793825383963200318884999014220403504674655574983655836743262609316589770795629900149831750622200254486015085613167695636438727898331952487980585906832165420616765533501645576426948585019536050370358917467949337958454293526280501786548203726782633616353197531182375522337145160184737492331858455556842953052771336046232844411773839819392866460629127742678209434883829161605776404176233519885039497416674108573450847263320729143885894427828323283770795530687812582274460505219096282018254335710874336139986977796111702933557051065183106204446103671186524923341321106052334621189135381377247823565641489540594971325647393545724665186334259790157941931505697074285466722138930709962783654328267885464508996758780678763553588144334505023361287343560625030103247402744669592152338942104147836340649712456881426492073076758463987421624463214224994168494151324308573511108820968423924828224183494389510503910312784983486506009593402950980463664680522191091519784269501761508457029310471462905176525970983608540834447747059609401704109786128130577768242582198455416725264177073720233173710667364298135226566182980061510437723401500256951278093928351536309974125600505207239580561347145423083397575860979026812431265124445212124121934021746169839254710646666847466060621577243686429064703560641793997597180725533506801034016932757979666447107504006827824927717279282408575966189282081929740106611143019920404290955663853439361440766189588893548636434377400894862513448026301791375655527797391710440594963228773077587731356705318210903584916952391805140289827728867445845657678539092454531778595525339836154634290063598785734009176562362787251742361363363803683297554224466874793265599541010505725277536962151040435487096560397141432141300734446706719411151831809715405451586407884284542246343481288526880046426955154844081290548148897184915126978353868412370140130570456253565489639815897177725980748206182727605149195959351702619623716247448690571665767701869169112196449725699015942619575828378703925197339122994773277726394711457171064597317369712915269348869545818456312773173132694312983575874930848101095215515149167548397537377296781528071640737513367403845790295562632753963174686787514485570117803478619688143035163538562041217015363815875716468782228924648252845915700799759543850282505375079956145219645708236693216040276731728957784320624552685070780596067319500481711963655031919203596004446826558402970118098755899415519303958127152822233263959229225614736973398467979122773171349871051312137781023867916092897978572744691593235622377426376187069249634780875917730525330396746756470407695913864075171716815296423733665149966386990977203258831327331036152370778389057122813463692024610900105434691631451824319737330859465792582306453990939640280244959786450800792372854651458061564615783896162930943903256118409455970706968703236939475954746176624232539201404822647885629578065286145871277671272558081086651200156885346525795957516298493555516824605253379991029327775649799670350453910293370584612974684988027503121475169245765962806056209234612152990450333681941102336031725953913198495407349971755712932893755793124057117049916463900235722033505310518686215289855344543033734913916227091623335430856026618472197852924323281869451314354668226006755516723554864614257416167098603385394074540203439557029902563443148603398252750875267670052867568603477274647159049841786995097990220742774339091895481202924564914552315698665110429565353087043907964989662236886032671079135035047962497743963722896117803246730875400498620689779166840722684679733733870294106505884757553004107541449670295806489845747575660802542731336649235773963531926894787840562068849764627218069962494486031479856661172046139323246953578616842889310999641466722957144437761819258291835175311871623404945456964488502646897942918369167540712326972989847162328423184441639325821326909957559092217676964159815430860007335670788530961997054435698490606563386709773046686008520577001754143514385243585544281116213732336778024111423114722684677619024978313281969318998462970341478469344138756034730575317092972274506418594073453593257644492119997987456318634819094751138752357779779018120597868398732009157113292158914194871630374314731995441743048728412911586266991764926737954939482782067750231778095857778623731881880546537584689155560887279316145782751215847725648491969136433005490392621930368752391503053289951947354465832040220758690303608976884173578532621806020915933623841219775156297021723585386021117234266267550853902291240224444416109342799410094081759518789394587749209463381400198598682206978988903751844120180821155672599373467458862036604619032802172009919530771485375316579179896105393017702705548488525341473120041598975253437398032363971588624945429210773208810670880400074389575052795536835833466671446539171298699059400063161276073484522078799063019572741966574772099598102016533293173958704612710358531321821504542830067380505452746876072054566070289609197349535563671487911523711278131342141783301541221374852834806021334098208379177654271592851644348748279107689786456740323056819596308567037047627662046377901374561784005657026720619820187185407324698929504249239670275937500461962461347804121066544195975185942312699494998382282271578247660527843877424333124941791993110311679189311331280114864403806411796684688969053555603417274139194559887737863431812819241506221026407614126910300441267356034987146728916531186026187746591264492385076932451185728261297732150724133402260822416964937294885364646723504885942375426286619233985896610618093627178612930193093569919567703058060226031376269138768636958979716044894174652987416362989103327233468527324534511727126105733884399196055414988033640510164093847214852252800124350226061246703878090391740623729740117058980810016840086896004151322733519198802080759408727081317463023015023466132626527365043668680078994680728160122459283499930561970505648898587761844224318591715763417361124614978587567585684066647552606004968816631279335731932126138441383259193015288664931158052008205297809203386407105322854284904697932299694677908842918272382679000313509482108206286898547253787093076990782028683855602209342127287199083267559188233573427952001754542003202769643419752711987911945149154433521561671146787936985191112174758987128596896548378216273575105397810191092481925148086417700320415766676661557455386140864461532200095710523667628089468110873182040722361007945762839188736583281313763960930002680548762295842167549523521712800568629358398946645158912532758139398650707752119334571537753572602268523998997913760104814895659392217544939276084092558535822735115053720153885497176543659897582881581398884735424263055465845113997795646620831415940534340941812312111480896938310987790509711573290947484410303114255685050082303746003303524198732997246726720971071323698967206461360208054379422925608774758935249842933031728597252193961110453870553620428405476021001917348381234012455324321866737228417003913093317405515280687529095413492152520123851059622149656194033466617409099593291880345542735525469653822122148458877439416928959965663937802801605424539499099532084986449529204605967602153145337093291270461491290725623052469600269065817958075236292445396064443428088621872455364172325963412909160197452063612337061158261195662032123095558054833617859923277520457083568781510835435691097065306522025376501361157179501858270682060717295996197452441389590528469908207033329206140994436879990833418177887327332296424654716092303868669123802794485816726496178128243292283432247220044663363491413429835060683090077129977588003169064717817978353153318381456765096985546415240033722165899968534719149027832473749917559202937503407316299028963851223233009055644952751534543065143365397577973055507672089228868277775319892997804818736166365662224883972189598677864899731009631834463454831156942849177544325953302224291388111124350369035460203132709844826594876861473139652794826588047466893916200548462647640416132669215576880016663850861293613344391849220088791709904149821524789268988263019256265994112097058915374771608382719596163973165871041609011189814705627228889900292031094317090041790152492285570274140259480323907029220101680988585831706773212492572747995651917624607903501697160337140731731175578484559482707750132486913076596270725041462848958759593148107146609397101652508348565755121273294765475015895024494967054945716980534970444789368770304950642258192432411040171834987992492437321368449864700912266414121875233695033601931386546923115646280750691947469670539556156511148084760852106158096418048751282057860359873871591192008505082464525037201063651469172694406294944991951836675886993724202397177281494906174559287817957767427334662393260065829225312029611337322346064376480237372405262663104009305289039876008670199591768687714862254589658619070152828489470064295957394541422260838627905135892026865934352169843269070261107820395400087440518225100550055434082558550569519193929755919157604420527388301811359138461891988849333643600885321999791102452385902510967425254968933926738433972157976546332476369177923131799493893207149766002841114191912732439714638344783475447660847565680704577159363777831358320340629493221044010623398856044762686789117533413324787378370990935361245561464695630381035393617488699019043629113663497465661045950531946686682838773173495334975744064433936781343227745787611292397971333753273378938261933369608878663617002322615890524748300242119295749776201367413757725833900554046629065151533235777738422134269665566918185852039651809709085563317908297959264390767928187418836449931559753933410940874920566793866572700863298970358980180743434501858315604917920565461267345928308589896215218231293643581313167652815598485830894324249064234689824340893796450485033273549398113890246019615161301966625850304723148701190622254931399567194598658200245376870059028634552765820268235085871218586112751789398607822629014321982435788905880806662215584754316537761232490106027663572433680814121310864312372058303634912432311985950973265410605669813073523720801248939592979354783399185066524889419451408740440952142433641294111003441658991287812174440045935425558613135738861790118276179901875918066913275509422413277004992900788105855204222808963514713628336569361039896619663033207915314797324745845274403416484238338607590960822252234481165290459328922507237111354202383728338751816970179447083348230892618140374218913275287277071366565259696068808771927331347009911606249469505365510580811336546719033665295427690531194316095996429837240613414088952627468495644262177772745613242736249174021734098973574932610702639863224141249269374906746953541508106885499228318535435199135986808655899083306272186343170195964305417708869215225817430192641518700648754635302721398399411891292877426897252070419386109001258299224573169930518503144398277028129964543751815936737280961187509141684893877817349454914192624179631271705349363513054567249239772062522570917409095454713677440652642803954663533833302667564827089765541529530044638755717649437070542710092993911144389577054434418353853778697005267417530981336501143541639883085893618925006472829851023460842545163409978042585348177624612704643607550531319451045592436823073911463253107708822606134710463075817162870255364458212234394399225423053632462351244680944444407829391765204249109795832109106708661891962244693014297340586370449705756060083630074252787246109879140270652574225296197342378674393800594066224595203699433015683848191928069767755918273409951160435855105490725706348775914154796152271867142013539581560056315008812226353200328603048290354015356208825947237123312064706419328871030544320965787410573389931132942774643730156022560619081142465112304126773342130982037228849137033065738126545174456218767274302317085407709151075706381385124498283117455227360095214130998532024160009154626965664424143123085651821779522217178859774515031209545114425894970403350982119291975374364699125955940355547049453658059816570738928679154416759130846922764246126234321517468383704768813098537048152399604386533119138589662442874011276460789004914249868439914562545592363419221006121935974706899604028168029624541474535403644319863997777810857885582288085372047300892062832238444469717500446362802910976140678086628205569674573509004634917696910552572749900216520750943952420324716291352247356710262581356191354828477646946216422014343614142161903181671185183612308340550172484205847716362589015292477938129231369494145116053709783934641902579273936469538487614376837096140977997344861690702361559813646146605840112211182550050964494166814631009546497052409273619416890966211047593067175157983227226528067601882653618267051285910594286106329191654469543971084126836894937952068322407321393213678479377248053161690346901843231899939134182123618920452673966525490649297116759638935492091144587374007958740177178456629918327553963763516649191905387248727381489700874846244901269683938822225127038535628596801698674875142507947025006320494668117598434613504348608686186603405326082839991507392043893763036457212705370648778185834589142303993214918452271173642255258589907761582356178183319938981003188815789664038932403560630332052021086019080150919566799994284995698993988281986449935089106594265146227032111406558324357954563880047670296326026456830327377611654533745635405915265882376076213107211761161880862453735519263411440166205015583340319577795412456432716451617173306302785770677495473733211052313580399797301515710694125134998345071648426676503286216606472727199137650409259880224303822049361880314293448225866866679099658787728438409517112470825247222773548883691306695549145542607101547658637463326738289133259273959035466058884474622810329655964144318515920381032762058863051002011277481532231350944512927518575594841722873796501198394475256373470153848566459038860928854911805707017138956505803398689597887207468342180155390296836958493895967037996676417893281089081579265578598826606521915927365551479186229926947329087464471827578738425829330625158653870941388509101829881081489238611421658582169728213462542259479861917754438476658035898347524043628608604545049416118588572682011800352868298257828529862865816967865294350958263771449488184359934453188089060143528908383376009077227622168966135961787879895110941361510725945005241635799470698540058303068293701258158983637860717117514426213572818169985608864403088339984679343950915305910016595975891696413977400935159099393648520088191882871351955882124750553068061486780962850272756371297144771189115280115053023217854304793668446086232257166799679809550285831309679965430336615547996309391012254519651321835308966095261985101906958237067558791642718598408385956480164475688422900857075811277109189343644945319671758527587404556946241253297083396768343930163065029097092725662771350416575172902104133634342363251358444723251467620382392116266574237266195356892425685793900957316976699791809209266640155140240153611751476744155138450224182219457661451112375935071504303453734854423719368804250925688322263000889166797630555095795180522983005346561974521664012512079404250887355126895287842166353377941695565008757120224962969187474517843073869811063056833951613564345270585706035965345350522523965275623674322878260521948264593044279788915319066211276335246288117538909691830765576621883113985262089141455910605643563231803459380999890106092289661978121093495972358190151117787943166589067530316678092319812745251729184671555087161855333275768328091372219634940540901696727263525820864453249864046625104294489304438942225068091874752275964186810550862154540363567477538403593332074235557952214116748622794878390105430703187706999177850371763160998254795279922876339957117794725279021654194532984643215180336813589275715616285348654468165425039131007300201733522759128029574524944365742917691125940670345086119602819886897138359529910901266875085662834119734286406212029351412484068082931175275083156842044698683916474244475412555144755503575816994157098421160054712126081057372357377120104916192022521918321178757020537162010191030969497553156564197745800892510015584452951785714300964712442262105184424136154420813991490898036347102070377190706946566425381652838353594555956546808865568773537527738425373511808805683527482342187027810130718880566370881849585711453646598894619949367360413636032945056827083312777611094154678230541010149601128510225133706195972909436117965025620781791886664295515405364443259657034680180642028034845529502373752580950905560888429441211767699380745068749200855771160560861732361798256976099923528613892876882530468607189665532676807116019383210295329446359924011016333340872599284003276498327347310746360092876708336087381908211345084325839552922370503218359986514081315895491905792345020926324037692477208060845611379256566008901794624460163719614191609128491193902504824617060346387736437214685519443298355460521041150908959517881912670113682778722055678328370061555233517005777079114139136650883443259983523225214930449300733539395621739136883375322347657940120529496170258518968708123737499245502313217276023281630397221562916914247442488004982648934447469401559587441747897762007867185590782972799712876399148336415083176909188676787397518866156246537124245423053042341065011012663386459251949973666135287334470528872621922312367327718480640688001405997461841223755230082738602722801778950218125819654979989704322580492682840348125509085607098854177498868072737373148753738121237704299564435759043944815484191387982697342378445993826544562826436299833222576095741358373770380182018612496471205173475148200968479222507962287561034981530852378958197217902471131187726360467584007010231587153289444821427702732044516567312080362766002084780092253064729227716162377937158388101823690868324406405151968918531736180851019768530765915445479312758511813383784618172146617843030870607749487000083837409366383095312476914947976893906121596477044162127201313114436593265672986062692727819792601336638214756173132011357288097142310298668697392957309446225932186933237791729432162515715337608612103267910284151710429682394039728249614972934899237913548782609327334699341524028309062906572028805196373119762447874380212148125254586632782521185915686651319199533438093420682714319040401476750594532219055442002742440110666384758582691494551333658420404525801297906438904465792859048287381013139562354888505916197140581747831352518493934482945178431474199566987289256241201393631909140101681864460827716584988838460650783810978232463607119167568831407557900334006100027002207357643297267447622355412678222049049581672283400222219151795204481060505473396412406508558683179406048039374975328919536575270439128482700284213372346908315051946506378050462452800673653745303291422954737698362673314774535528507895730422701957167079643083450555945878124966293894113969346291990822948392041533007157393703374246231440504864805141426977920373962138839380264159017414693027950083685876877358719266622123884298508463750516613535376192248640460831794498338279045789929527454909097856834224971567639513839377916673582467585528289106538940194028117150662885670169551431753804353797371877432191813346292674900021751028007362012117992129884732389592437246708234618421488943917668553970393597800459602892491218385037813541707763430637490173742885417935622949404821916696218795975293395113533695006883654991851817289029978510450101200121411631001063908522147986516217609805767854332252761977455707312195324962528888515360444617937238076218828425528391048707742364648511115524089691496849374062312524584880209886789178055538239910436655062644393589133315596435437529410331082688949137383546623401514247609107243991275134674962854525811161451754291323307386133787378982826614295984479803006770321651475179949208001911231148568285744563621268341551323578973693582746377109128762266720021649548449987338075423659667714258351190991326384487638022072324549688116509989877939511856344143217952106697748698125463081731282609763008618074094092597677593583902165641282396560797204794023609146396700350740777344589551483055502461083190774485599254939453046846429120767730047390872540051521715676360578150249749365332046003985901462545323944786238344211742843507887405282879042232238011305825039513815183569213593184432198923073278521923542320497411922071035580971734307063935947703855402979058917327802596183678454905225317623998408251458119556906174212249870231707216216618016844306923796087221919463353971902485700385147232505923270229371628217274005557563996456076442258450689109375445721959273989572787375276479445128304798469344151503467344537041955489797882549662906911963824699079957954870456465557062730303515787643283761995080162636266096149213195114467101305355072703744489060155076066074430774568182256893739797243854939101770474969754003227849353416381498992182951986148999129762252564389844607290858415862781423482886378993690357912014235747901716818492764438280726034890985411548916420293787158286047238313510093146929433068855212048569638362402778862453560520201411498516439251789475001178366116999920387050685240904054352898789169068459647145470479158555234849497500831836386089445917539151763962108047677822514321359135522198528376262202084961310404800892303908548419698568378147378346087353874556525057320832155209893575546495623270030280209441053575546244527438106074799644282363865247812835632869410387901807124856164708177820983000656443932188715561822701396714425451684129118707932686167127850287604886054128064517393273097208122401225296443166324500165639868822293611751121006989535766170855469920781235762423118500351051472253456414983337857721045054392470691706311046341339482573596445344862511082816639260371670278890476007841775507580443701713642339619968075796251815648269031963436203597413038599413446164894619795076431767750310849945899963718917055716144110615178961919539123909904206737671011136327852533570629017571455640654816262419534579864885686955308359729802779055985556048657862982839068592211589629619083357066955265134984096380518734416618248092013007331375257527098723560581597856801477898145331919507229618268946109142914749993483195035168284878038891198595555719816829252493195212594732417584140389437597654178549219108542149254486663485060421138407555653609835085105599372364577067404915309962166010916050304966567921622711793929123424142394565234109422229735648070462459941438200248736224612785574277939637376946420792059311600168253646445326671786197028181419911794664871794709032245091791216622510070251642398588569554719527112984274908674777025190752860069022157412556206995326307550845473268502732461049672852377409037061167753488483714081425340441345162560741837918674511820367725714534407611032241104510120057111980180403826291818817429354777405886931657669723233236109048483870472036785628383199275852889051701362288659384475138010223644271275951600778989846223689742987675427162713077512805201080718172155648727529163280051617545012429524045838006157483549760231756199295482468180727987990662853566764953292210774468186818492129629566738370831625178434761650042749759688779738347937658936563701951115445250269025370138820908973245863886363850117426369069358215305177415214352837739392129613725415160804015962326667399419355268054081968973023505609568142114409538669604430792303966153617135384223625344794277183215870838615545652020809087502977689080304034672938097941135335095092535763914072964074535321094041590505490518571508526749300657405996797537926966116016478480202735116260450144060290813313796691965287746077985669104568294597163005558901616955273102997047964776009856380635370274825081362435609250451151128330991131472963913530800911045100939408454562880140553896841504803936142881273154894435680959346642532182281055668775301103870576823938555901308484607042524288857679621201900409268074531411092869059785031695432175585308903881982099088015426052305712552135263672567233235036332893665426553275792341660832362848829780246809324974782479962473442637994331368263381435697870803013207691933615639117784687662686167332061400657442458635801189366945837307451512011924548198386960827296411855375637887653785346691966319837022384765798449124516111446960765173511193610158098246681194255492930814886467402437252944482326034079591903608960121303149990069169228534698124739120113017016685888203908786619126780125414275942601747601635598975508512695990966983258923307466153921621983365960548821288693820370895368027952388025007780193705729952404389035143435944504259011983183402622930912095736386595576606335690467167710107178851354202861342366019885956727531476095361658156248645868792030447618796934318271520208513655954200283628376736175734731997836832009264573601540256498572264761491107272579663672524286519048772822289238198618613270393461570685792202365464483659849915236322941085411107581084832031149690897661051513496688917874205303947811295056524913887255524587397275540925953066078503386410007407667113720100732736547224334683346523054188204262523489480943641176399182212076269598317106171793519164186751773762825456310757224143937840509039884235984276766854998326839039782734775782190462026059721462745030005134910813133718502615993805504229708969603682502491043804191808701219278246459160864165089465977465010676230217886576480307262021813707630655371599233677451967369736499181859491096163130224486058057859239654437821881211677160545286397460300178745967057493693627760905384978904235010073370423231111613405418606366533860277119572072560765044319286701079576444306676107046340973315714849090958103610321787008119753640930951574245076895755441446103171810358679150949743353152493552185773385199096799049463500376120377873021527343356446230112062613410615318694644239653696607026220485597514711845853529810756577658429530596874218604834538965461107099473553266124069870320814276548951716119672774822522848604547578203406717795384746024615004979843238539346094613441123967429296656955873345774642592427531151598846488228710414581720177252362388436714748885683605672112564065291561566072203901695007133695723190550177609239296640453904426244570476934513150286176692485579690208448568098665868762630940538075243977287275402785717883189533416355133776696807924785988383660499422926098289743661439242736689789604642844500049816717223531483300507150255173204085398481947855337116145512520536661000452738024884155262717601471184036197857179204062424356354391607127317765700441127367015225860376813974932962738897444657518642054151278139586936632739447189377405717828595478079523954198441382372490423696477496658188762650166305553448393527619681275140513636453844508061162087293466281185436116648021740959198628733512164118109132127154119901011092041391158336552859170018079091979278072727248160261576247400833435329856751485587650945421347918708702242505976679065970582766550640345651278789748641599515520633793441030303571305863081924822908679499936785437085147475588574282022537871354720370209376238791056359623718835296942101648067105073173069554220199836642002444063068746573381791499406994890491884391484538576376962532602470585125013558509211206078429011883617976411260086434518676199429030982246403139165959494927920342622754813102955768473392910309776958693061642484984894397137144392554977796310903371435035740408723240683562876706381596701908025540169459357641989303670094257573381871325256009555077909498465254195292374914478795355564112567434908478710683948946617903093707281854657372084730827827027900735084966048996218095558058418083404027662216821676686315601793078714540263167324636116825672711901256007077202404352531038556611621133777191815319574866523037142518118534800039643877149122822696517090646983735644096593266421606790457693049342114921711864805360047971352791610350127329944786176931123660826991131909179455250485708034152771517780260501638670067696248393713555751741712535476928131774150848388009246802070684587182031974485510594573768800453018220043694890328718985817489602301929833962643564816954522098067727803390128342182251266161291684883551941946219965102378849630321793714547920115595088191915976517771033681426273979152096224588400559915208164709985265994766553916390002169811543829184332014375053570837618193270000322277443644227048916594236008359441018251150178215747503827620467268546109997469813777524034195709135021401894627210898566569164769078239344793530602240587290628697004694287371183872625666439623223627211422080897037264783114100237582497749181346688547985754458202823317412261419444344008266118128839730982420868324434621876743872656666605266010335279819335952787604986556061000791408904014868949097255020399354448864753770983987767643148486117319018297866587139816345330156676010298302823948961822079905448426181990372685762634877063137520448625521458719077389014274784247591540073776522576065541805141252132804388508538307711629267306972704052704987713812491905021247089521300730238453693161191775567820644414014667012534714787043804756067899555879307516845160375328876494078011779724365231052779418503208510524199144659366977808347070381226589010949323561281944416624330272305310926893904683413656004070054082328146408497269449463846313546670538365378282798978134115768309747574341667975237899584533284852989719319522542284070872093450949178853849794227336366416693438535302451152012996060007474654072308815398130907857112938449673031499422474655406400288259909309762968320650701209008180149509224809697005979230748976010136021477833623124309920308550900297079314499091217022912214917160801173802261444916090356216953918489005932113309714554701884320222879637868876121642363797660634973711977484793040368301488781359590549988695994350255565385287907613372005335688280655427961100169939280208406609502876256460164500924638751693611415735679989915499691738001591597974945250117160050400806735954166277959845341252686998205636534702673180183585491286968694864884204381194882740850219289400361266566108629604603184445217922953540820523656997884980738281909407553446578538650701655278414609250782219570908445018475243167407632730172225324443487417452515927740644670800013398863429007441758782796887712291472519190686747521308929636238268861286241163849626956911988116973846567087264650496424233987945315091221939604915226203070710600572965152511128988248003124618918026299255868433494276846459379621535148864137345380154792626036875183985346325930315118081779588519780629631306950189369349259520137999679435778014519293034643746846975643049216551886941959075183726182402175550808945135818810251714148778966710745917335978108238912223435375868425216670234886157339901107186812554713473028860340841701588079453950716497669592067741631098852284221658394700338499859627868020265395767293511127917248160642114401143571756071494196935802774498556417882545920593138793581835531656969456847380046362219751389592449893312823830245955189696483543800950860756353432101042415113400187531638636396953842279322017430887762746078538414513761112482422626944392200597305401247884667495157449458541883292892461724248277376543426333504970392483769714500848833003072719243457508943160477064440518522723965800173405560691034167423750613663418780516927563024663715318196775045559331157607999653171673288654245389096197712836740137451305618968574691298349689368168105748054936480303270279964163544952674660863969957068267177894862811177823472399130484552906293773459814565743963845634434506647547932014122582913250964900589142826684614902035900456991411141426660488504756387164268398566233281850890183861036602487125412843908329470327138857776792410990407573352692859993441858766943945434587538524440115921723467509471644878081412734334683560799044778357009724912871012940936026425669932599460169714418586703090330279547882267740072001047693950142211102917970343407700863416932770093411969112168919474685310229016712030093744636768208882897302177935788459545138726690170321211536125029970148915645654248050438347221902975592904308115095871150417825964693980860855895144492134758684360026836620624972764656407626291470721171107110980198423691909049681584164596763447526130030565355581696720192305807122685244392982433580394060671261765655033573868363471714909273706911301900563168334312130724237131894567315181038161324981789274475692950255407839524918848958868072193287477248434907597828774488990258839489524235718807822302375553994482414631307569850226646327984816192763491496425755585507516850566667752453614943889937825167182184132012068217310231466029155509677740025497275374548037698189862949788574082088162441355534420637381562758921993740017370194428333384285518648722201593257872104098106733350948333925196891153620209042999988501557204862404267225196052418981330668884640874368710474039044196385184670872781731874964836096654416981800650282770604451622282554068225119588495042980496431984994943009215368488714514869937976657880823695134967853101455726424318904223163227613773510919767363913777364706383462777245981088586901086799140281770602393145662163120848437806552321162897017002738868257197788677378444672248213798660632631120072473251490833609674367310268978838928505099098463378772619877473714795614320812679852681097474325949589402362367304190549496879913559233988383547310274997004865169598556995413036039801578813810897495215089214644029695562898455093637425942450399765065191613762460573659988575884367985605338150771822868378950319033733990767147097952919793632281111387956277007909139205245221534345355604883321467042448727111235703080391097688469388719345733391740141882567785170987394783216276050229015274180980397898031286328906042351253115015549486167768796240612288896715918043750544467168893164506214999632637036176054027842189598967940374377084410191843170536854095675626640164751660364671399306200506088939138994303344732333909741946929414663341470741394161531229656255668973597364738254875593843580394925571369771759984727835900651245243120891760349600042428857561481451839977203219148662758602988193549863610827057612826987994174224025631076775604967718114146976904695950212802331511454210809691184996706269339128931228890124446862853863218281153393872337712125136382873996517870503117061825696020667174829402751370192609191229695080487767400720119809733862921539001613830641124705171154735477285621208286241126652612836157657693327789620351858193725302197747296991925172036707378767534778549368431595143354783341584708135582491493843261571504987825094595403324475477683749348045844784883668125681335756504999178688024714476675111430496217340065051535335074531867963713240696473421323543236405909371732137958696398802050721132324638003669986858172822399395471650238528977220167998328970124709577058532673436964858200322504980287257101779884516825951098048644023333304361646583592488243232670506582998632181271863626591560255270360433623375897728587669739321626938278632422809376293138790762760950728871401856563616717377768751533815349518834371493261860479298477818776093974181006528742149970677141567287142684126866162437742604812543725368431131971943347689010156167718583987363989049810749882034654224032227488999898824048457333955001497187455285322212983188980912850056241435528051612148610831137968884184301474284402736366902586107349032776000663664438763057412105999141616275716690602916859987609338294406878373861873613756792380165587297948616464041711396315620901397495442930529754268651016005108069293598624514030683195737937650082645900089191880372083542858829736304633321441181205244460462424264910525559340762004072005536187492131554935085900120559545655447148957475988509004411087446781716533847001517111513958094289854891830801515935258199856020467689572349174430416754317132616961639054898181049229691147541820035091757196374706981615323045775144537035467090494133251209122239343063148937691246510443902638734082557632301754893746746121321459859483272070606752584496186971075392516184824220063735177259236687492190785207896204166228750542107283305480522274752088148539967574163854383768913761153318674886384677033610209396235308730785545827172103802875275329322066496273094289132325387941750584692964140454742815357933510013290644446329100644915584610155007609652033261169244104227932645726319137820404239392029337849290742298947821126951689854663611714921184649160827546844812844307751070211130757164758699047277701790979862717296214579268145876978124716983546072893503774658843292497494503089297275136514847325726744224040589762598651364907565110999484353303202196342214336521225781541488525598230390523559941698739041775616467017891106253838402055236677893955760060469705050178689024085605336419614366011947484178085310031197024306756402867126179626458951637818429397131263704347900035443488341253254643611653473292243865771671978849116286638313187893833755558450544757663652143653770425976651889822573479012737711714223471742749492418536005449651000110931095761922234130324391235719801020260627470039939018100105279744924370680390720972316734724971994854966266019473424215609336372012883529062534304496018951108013752672263905969641060543139120914147059647348461349554147344499318394585140505245924546192829673176253052090171082250647974213049077221584536303273404558970221325016445570078793019311400256917594136000399901010894307366150252742440386526640266510440461962583791324482942786345014354114734914675651103156175629152376297723251391514933352784859674755156366392525342571305157638681346363085296229639924871850765425728170233071089225530119710595734016764268711889430771822030439132468163026937858192063524016412292471444050566626184405050571882220436934769037539276889804657315735164202294877596092844855541024629769111082641121983788304936038099024121341300912554384018163885244030425361514776790697047437156096720873752515561963403215633636008870660057883171450758362288294083056006906877151715507966093597151846584179581433785863032057961017838835745114537577446794306071428184954536980786491646288007592943193265884367320213746232967852714684034280906698059570334768642542730387657989344191476504763817377056926790489036540504559962866191151411272047885867928562734765981454261518872933688772091369343477008181542351710375152973955736384842742345552428333248945185279602479402865718193753276070532504323548287389900121858963242004089501913876827923923572787223640067741003337449319264589799844769643157158836965792886086048879328490141684555912029389576017545058668410292824223985783593823281752479953856885363011597607201205243831903403416940167357644458152699869771298395338186516488748647496216573377009997981510719435805100279225634791466704769343224184635915979089989934187702777037014665480867457407922613344281091132376375231152834940375236016832920413195407238513331433974970773564472489826937387962626986905455810431152409429049767653896656429874359028656671974915875101171385175140910623387429559288014778802944993117212712717958936440894984534570845027070188405306991412752039664746229265063873848458634715107211837089778704869900634294561647655550244230071814160112094843987376153068344237951450174561001133396027352691468230398899751482847985317637686901656168460066899846860629498364949785751965583798319027161464258693112992430858007346706950541751213341500619761285664868053578912219782178534012595977475245641229466006830297130346398823228055446405445191310561292608077151197254646186624783069754585479203851087370585369975581299404434903589724354652812782272651142027473652836657684561013612495604330475740587497040690115909756577645598985993917655950657053312393769772286038889179938717286304842647567617480870765363217636409477626554723155211263435998670716776992531729083095595780842199804865424873267963336763263074834378813472819417806163574968445120719233937658278839227125265758996433721146196127284113999106367506462448232488783772320182605999969960169031273454953125642410701712829194394839864650081941430575280297427786879372418539145762069748951304518220980199323446184644045770432406727697534262745449893793016165776884554181981008988173397747676989689279076541777886853417143089566078503717778765793729946563400725796948076040338808678685239137307514338073912773349554032824275292893919836650380128407224932023575427497425303688229582646344712944286680360035342241872044859674951808660838000736741396837693196140032316720047330566645147086069477739004150037048517643656675099094882694980212463029837949740521557826132709057446152048456757431257271611588754303327559716466029556492833485943379249490392895374216513080368698258429251624352596129461462510411837942315533537525180084073160683092932206238224721097836370627117170236081459479177155866099469323508659132473110993429257127671349889844026583019394107424988202974467809340273982060272495979831118096607610183843999156411831543129998872908320114312427973485082928027435549947199393583641994009374273952982749135990612576168407218067565259531490734073094616400220262975182287366555780720640849009682064146225812310898993059524173038757822526921032823685137619378089362146376407708388535048853976264378127226219093120256264088136520337333502545218190714728840711095341496778784170936308520402564353305538368504650844738306393269218744535464260668983741160483697088307862833085520483642332795042478359375310667422274117197116462380677823698026305881448604246425741516201878434209581382555674658280618460367999513003007645941652912235768285848554489856220607196228071275086401418259686934074713243891307347398616991233416963691803464751086714130867963845622748069128220278014046943138517570759759574823195173967459409585224323954791856987280444797251915626566467940097059764786145530729574452062659628963860564446725428313717070860995028228434574938313558345282459231487640434130810353330428368322105128792968384755094048316748746123191931672610362784384813311965518271647271011429224606508055622084392813261433761961089187391378206802994790988159216702861002209212347902886278461644540620206797319890487397756494987792120241993103331932560141337276212611040852400821327909448322547542607160576358273107961737531990509988054540017598170011334383842607233095773184992568661656720319882355866222695391303215282908425343942615530263815448757129576878415484744341582685029062367393609512727005341695971563683350367769819869231155819007721712371773184465609844693849203621458634004995835735701339014256075545820972774768513366258345973362023117129096023305956528897757405583207742720002857154929684459024339341509576971457974490912917925909787034522030713240784959100744458423616476971593372034664292920923102515006769379014030002008717407311396876641045864591680144162313154654231461734901380863469880763667649920426602268658580184019315849071787545838452477980928742057649902757709505565068242378340395992997736741285844521615272396300590103593286539440912091738733375029640226347183337289688885455475869203697416061450584357683221451472824348571548345427444397693426841423102958565558850765528096399314653053990021560961397102956389825048283617765218445340889380598675508742157459498338915276744367365598419487780831602468778968637021723306126586330317694640342641281739481148072908130805747105535143880389050618572105569709068674567488526728159435222378352891156351986376289460554050471583467300002971599845515853226347412395207638085244128515988096473821840773182815406736625193227075990522002227386561480985482523695585121624579111662419942545860119813250500670635109206029494243027879561125657146074526042051041508429468630123918323450411787934113020800258883802537882616435968306841639804689071438554615138469809711699755860818554941709728167244977258448901977077507037619773899339056112934541966975583393685662869316102928338499137395751550150599024594748970181608609861097896917218399339228897470408532141419012272075573051486618352974241395650827400251669739212831319154641601098651174006320927615480207755705530886429373933995193375824849275346861453751968076462684429303988779388087067483289508011422727388165423898238672312898311519377727991057042100979397338008020809233042524950085409539841972683804069641033528588403825563541089831351657250475691234764100460259377657947377862599565281820164000348141058954028620437199269634494122652883364200354576803951836893942389910484507531628671730677857049176125036397998449813223420429259226915169521632213603064719286075121604004175613400186592314801315841299789760668737753544526332470452081110876226413257833342692314199183452329799006653206190862054735110987066655485057700101085663889151920298947910548632201301819383355474474341839077560417534034323870839754744991144275082547782458386698204168666825101046626395948214755179066554431383412717373410882422326499434733504834419147195119180942955702200940944790233230893330314078508185493749860999992312496632283446809447876436577890007443454399130721990831019374787984056529825474989439037935775656147812381760214180665436969307499518841605909069088793105292191377356157435748240980108001864016852571877488233581698973816655727565749605473889143503045960473594978120216871207159889354624014812665311495852668749032932446784617082077849596246034264016849630601634912678715130035134605098591910789059083955799277646937368292879724357172914561300254245866799679040136918346807222519856688759895186889421740813955424311224992936065127650141832603209250951997878013762838158982010689523969789741280413615511420704168958499074529860844914577887656880127906891789178023778583504801150761969298240026991203104789307510645514307027439197018414966622006945322241164800756354658224951295206349695372345846093655820237142997538078183583051522484456407978277922138369794289837613507530531998984647215314929962417786691479110632748287428055917026914075159143964913969263623354140805567013644476506451501786984447684002431230021877990388643913289881315718276082676607621974735015641947386146671523535500251008869295923111514987296877264727501772118634616979038670060341068463669275439164008089494596810653676888191400496470116325856327937658571112873022117048015549991148398689549059493436235560009625946937709315186734792259154837429108171004617847636535122244775626528685763695017409556391330512118139641967284319892700390660043263092062833671530935583509129055408007093084163168081015556937555873659234473191767467683125075519019165289372971860887769203430847669454267643552051249578907044627873407193521522271356140056404713153497660149122421865289324337187543793645460419394531392126686526903638848861308518482006862732439804321124557030716270857180651274373832824453950584517896115482570667969092553073129022697181399075510588358098155655088009744415097655870439302255856628056334355235266612435804678672562344961148263367431354520077608948682632371471175214356207057532977292064014557332497587377055245812924349628816961070757306099082180849306717999521152544771470257946969008594525600658280497783174342898359399829497612017801000275642609451798459977418062959833646398106442307840364291994005606803453379147889346356902909749040532884517554792944502339157995057968742242343417011582645471758653547625304336311866326381089142158421006366700330078177640415129748233889881325287142003018470754429494050134151296461848433674178830756907163364454917878899353665632234196514542926958654154511562332259592511811477260499768050933388692164784586634761438748486775071228850994371685250563478145982950634722573508246180891748016264950844545889101086176891358726713797005183702221463077320450225482366523279373483811792204039608372160154575311298703932067449884627044609579935901481264268362724194953382463091207503698743209014874938711775420384407711334954936893691279705130078621336204216705713363123644073553098361827114953519494570892625436786456196101772159706122731698220662613377003820171263227469023397327612650031802223131100418603745540734927559408404417433261732769894300642425621509177350505904553383541434907533526692007137269093318502031971095518741709857839398993165490201886614378426377461713627532077388627427341039097508737902441550419915206118842994233730732142748101457588135028984851453793782501230521793193980965020870445531821798985669282246033334362400840389600406405645003023985745722812594604475915766145881896848212613665951043139811217601442244127958154325823455184354713824397410899607291825046154645527454624029553166881341318997029629995642847844352850944538681790416523640738003031954128548772122650684299167093622639071970117854140715546286935480249269493654967600729099423067202572773042751067322397237825848760437448499286430697799147070950433157264452031056102927286010100704779534415143973696800245487796506471299050415005832290005134233342402663627667568507667788067592949635437165329839615099779699785496376434362397794483994372967840755753799690005643513545166169386774894002839423658650441010808666610473781476938449947908208577626664586131199991084294859848794070993965064073146323196386525315737193231874145024440150596523047678823803724503629261438512864441498808197437923479958804212648799217546300492909341245052036281735553623125904901096268408944724052832307239801721991742892670543974014045198596927893852143941354130285653749862471473055089016048913554886921704746831940531881178694427115910442879055367863553634764547086563450318275025711387252177707017502439297530496019465581294824739265425030893485731967446423275722052188307658625650530335978816101921695021211251200011216171690053440115163240798236080616014260907212008488528118255634012251921384540973280083445022535139568247366331865246299464560034055742253747417034879843145281985049107732681249801629749018113270557726146577363089448252727419151967827220577886676148751814956660999804291536987097714251826731641900274918681298576781970598255229411102347109510975907504269660255977506813680241246170618982806857564725598963788261396834475766752800554256803115792916876049678668523359335246705765673742776257164050154504894207336865256398838585209280304201748644493640907656657060460593826306960466970599015828034234172236677147402579891542001728266059959573506284753941631788926531032097002966295314785220150464194852360762372892966159314775079158685279304019242025295301144659185996557628940780378049019201806413761421260678636338358332524710621093338060192530409373794156022266200740825571412524588810543037562228548078092684630563509710244303748186221385086449523667140080617449794545382607756522007041934591745203282604023184251238840673652335039748651410307628702272369151049268406489503297385326136756715006677680270035328175750828653580856528343724911832453640867190987483093571608229001417789321732066266325575005753555552006361845591871144045724016110309976214979420507514518485836522705058736088046820683984878972258008890243322559188752748808346275532265335577243326348761568002967366937362399830734461367679950150249729967709532330930434569366600272199329788794172719133971813203552023653699034121549286648768156191634603598457397965682972120925150130407141991017524712232282582037192243485165895771571911584972939929371702473298709045085226673797783518564274550783976654133936795716408444662489681271531278998641866063934418136823575928150806415157225486873181966100429641504553963756456032081267107421041564373657613771530039741182587870892679863989337250062751396359721256649909967243176157080861447704973058275436498014576751070705785340543590316399647219458242490917181541389012246901908109707522079347993606318278328552344407925549739839686995172957028863384072176085751152090855947049672486994950030870244845372837878643003012913256573992404947661744215678418508001946419962030559516341253183861404222323699001700087842397520913304296988667837446571145820330473194881172421933911376521556049273224623303289171955546766616516725951543250911149246247577637527435452911954974081085908013059826534858680644321781980749787818613046468000000369025056962958078562822954521364429787907249387460241008306842465937950300390579463669133924183376006010820132016110850868846943826534526161379263450177543093055007827431845208152022855908437702476336432979274233043796308204347533702531331233103387616606011681382267939732179480189389360446608084262023397691854337845885650605990334072970981765910987460332811422859668990575264974661908290688924519450689779557921416523394103254315837249593482326754655719501247994735373539242133526877531729692793788131528855799765771792832168242632733206699229134787127650462932724628748560960561017364406559703310317143911228274246998103251321640108207677850145240284924130418854619142086337772117027044341219758412531697599566606014699684002567590530130494259017256096742257513709510075569002419846365875459720579267960676676507635428572846876650212646416764446099435618794389834045034362412065333705574850293624619080875535870762378188691709626148486472183470208121839306365131941758079298244518496637607356086640942466288431037865974515561381228250560798298423978776735832692069305153372573462791358014967268951264501240519610897222691480771502390403130825948486607557898068466519764995026449210279312435932145941204890854360928068071730284013276717531348357144518701810348269138163067760742107972311276520197628917329263853503529450853592040731293181862549601152474803006324435341040172611686341675939828560728782594559489952996160047079031502097564041294862893935491154836545749339730482116895057956285787659812878845844307749147798447960264570398590302656007451794200976445858041943537891057903209156118296517932901424850319078703731795286108882472142416454185401201038848237509322865171944427613082867219032582457972997703126192605073455828433341566160151319060753458696229278749678415530837635858759230649787233002683202748838019977615506468991967748151689129471577508710163063002307408610350448869343948183101771468855012696810591688152894328885391616372532871771227081871660778938932830572159406685355409179328360918008235817772727571675426420484853826211905118682845693968419338772601624211331744527756615386508156481142717779210446733335151924325145527329502608768346730253619654120878276938488453970789095807289044310295574433764039269694535629293571457419509579183066704370374940601012575663539943555840925014714119695294682634472139091717218914921365008356161852223117605072138768397897496532129915786202508949368893578038085652831523550938401549028369905409447258089383806190416844747942822654580559370981203575658376167400012332036259239309251911280506165723889708267153305682490146904622699766546508530441776995574248638341423136820556164733393657041975933079801152999729924924099842895820778245747691217405685198872708416993334061670421161204533385226310859137182050804490263591906193825662845737678323901098511366925430689134316727285371955676470795778198872699221559355396081092447304027273991739305363731917002230654385014825163121870498676833697380812648669055677492234160405587699019924681593356303771001752445158804696829443904530679481656286080917140701538149815469422937636320365720653568443908050646299101891174112381010184274757684375586429113848292669238808611799271663992584539199433086876218501985250579332942778253052795621177684713451871711759132225159201957791924166781752683047545683952077681728277283926622031777655669378295068998459523027287238788806528363588438161694910862963822727679594029802423285675060614317324271808624787521811810936428541072763070336282434493954353292073326317011003055500616768705274758500170344819320034824714441317564869565927613949679358283742732246722108779279279254777189996342496881929294050133620798970473714559204570817525571781727074495894971269080967331196435667019429982221707935703514721008843603962871501387179837197178479389890901674099677998573489068741270897057541674207852848087500766353610294141969603153280202575464288241252440417712157119481347275310798240016456207789093481697917270248110039537366768774921111889823767181965394867965152531878312061695112884683743890282911546125541794838268416109519455823812836972733901852227957378580316889947880628286814928570206934035080328930171877353422657825145580065382102356266478846333980123460611780559188229872194086636270756259843278050025662718376701060903166231473819785164352655556280745825254057965033178428511091917898243513765581542179355211468815524054735720682220193864796613942281327627841603001836080077791370141852116728028960225845117585051082411669825622441394493379984888852392370902973634851141208936468423672033346085831531917738013899208817248467910127466078144084679436299349096110930793474024726948561919611383079579898700628559546956009723612158889845208172568287394857103254455661896135926366409255999619403974777907552753555180009330411551513113998527370569321796099324672760250480517577242512563365408824202649972567374674394422081059424407451575159935975684978220181032124030645403502892624446004039742163197843124918646535666029252467694001458753800762742620702614592778246513143430062922305326062681726139619734786664732225371368063564102982356449553743647372246596233661387303048158897111355044302168589804200392529391536039465093526517508026015915143607655788612001389177280660941746136946880750120699334489783801344798953983701404780500480479537746652776513628543662697910453116788107112105701889783893782989746019807632590170946639844679668664745112361835939625430675219193280315059677337221999995895943315494124304748061359051668480474284515527745682586000416878093797176413085526413684751799370950105199213739907198563270454243451549126530104546075732950034800983764328622866360673608951348648070938316063024551086128236526135263035609630542897603272550811765449525971941368568512186342481768880328591873751634015755696194898402796297755602793289644787589807026356620951174018347229686142144182814556512256526905017458294086479871502018895476297069653173964903391698352497496347998176877441505445067378047301565168402212739879726441314041655336682844656723336717039245291329771059319211774142522519404154751848023227499973378545143754453685334070186470525888117261600971233546247808283580617809086127547055139842709917354117169727382741464171761030706523838335001447933794469485483057940627243356139098113808944841791898824631759057961611843915218255681796913656168707741914164657904871014443865279134641711888824937425703853501297383661551851052064671546368742901260849186888163139005405311635298224585863545267873866514016632571480039550451833544283573716599420883766643677967520148827840569102511333266581687710551811334798273306939506932930762880276581068097680061142718837102572046962365065116697714701345310912818237342571147793846412186474424201531597640770601813615966942149594731722638223351511913589722283314783180796451310856827072360400391452563823235905015448589405555335588406284168783881034995875813898225259256469439394719534096975987896640064863083683900876302078078397081532028811417898113963951096040788134518730229531861610706892257404732062217886352559019918947429674155898990190767693477351118262150423651949258020574015677280803157518789479520677501256776536314341810296464442297910905473736439365006406763507119057003490709629824561699184540194970197504894943616051404388306338349306302647384343697670474977573012078682051339194194091501274559534192194010321132867187595034993499728242593173541829425785902420664191725170679218237207692674778080384200834458110468787359773898597734145713550585624571228926909693694992455926712906797674564071974449400118145863424238300896307139676981381637356655497401689897668248526233556707551233806458717714075245788864291267779007637254877910997800642242974300982336959059805216758412470291446681384462012086179705186458012937645259238570692898427927535393074667579277443257757169074790548466471359133783974064853204610082812342632809810015122794952157963953864236380653336275139794483832274602854473210919492831168760684484614069937276570065279012890903535265273299071676509612367588206141877859652583461871831746710448932236975564685180912035258612323030670761262301163346020861006380684121573915881153465395407029346064101963520183921050292137941029948244098225015549572584060527674099984538560816358421181196006016570359527552463077386625892807693799020387735335846495312756268820190799419893246946075442439369773537837428683120770552977460663137208381733886836407766145435004087210422712105467300486504338821214269705048030061681802415031824316546822715189175207922234443957586577125059135255783064926180521395934716325032692984142508458983465068175026880969096412156336238166450214852259110753477919351702779253073628618643083820837038538259103757261768896281059869237825476698121441762768807007573246670084425685882822394886548702523049889228019766396927836184229543061368516825798900505219901099698782990030467639627371602795022247021941273153984773007131397315523924849036483962957670700441779961917865049284212275433918071414953821145741064161290177722302485236873956292436609278758150799754673136137976601669759556415665835393901268735276068249080491300622835448892758516457347923431997003053194564251888413669558894819767157003439335744691202301829817956729501012038930604046036015452774954408639705172382055961190500302376249988947974854117548291046108698990204219282863202663075216582602107166644713912382984448537020155040962047015792527197527549892365805702989246417795221583500406129901335939430231657634463350960200665366644713497557936233605620832874591242220999522912389943883352104254382564296194640094184340174687859181495170264799799401026381787254374248499871995480949769033382839679510054889155422170321809796857936620841254481205610594377844849266985364094471241271935058874940524398042936436532851274701198372050328546804601592373516858793730212182270846521220151478543541945864208695617899070298494095049859453937465400528789349952369121538431453021751414730059229513937890494603301732365658952355140617522649965006034717205807454354950852519133143421123064142298499592947607499295441819607634652579595004234792697712574449258640859580446104092617880900015552262906297315181534900322852623497431389710609503179009251552009138737608114041665262853803009082987194438694316091635850429921647785612031780189534817541857525409177949558949011165466119045220400473576389540447271783281020008553671656899217752124477168607419969729815243610340820223126988268793696039097154864951477825493853418458965396969773136620159081739197164706255430260944328906881116615374018242132311837163689153895270695222513292934992329808563054801763863819420415763717827623648570972027128689067084648301839427257943925438058495333411014969087763048566584928534047836751425973704895068262096614587553705239948689798038691778519996641053505145509684179370027833788885854147842976430973840389862479241849543075237610511068688725694064736520718963160293732908453646942131566192620732623174662217138871851576759125889188788479965011065914744857779010938821738208376456227963658668088963013815538492391508476378531290859072916451542926178117828022414141388415680100945056178451521535523876565346031014006100210395723972951627756321801427547961269332066137624443015805493304054750407667950407518595881303877368267321248647247095485807763723173141406153669166014234367845578618659986559050844091986494590217538615103553090848928309072759747418204660684621015961626901533962572130693744251530460231369938183914034422465241814796115220810634376001782067449619855432900838093832687632986745384298070604661757902798987022017800686821846546906306023768446707828860976111456126169488757170713862910833122255578802339006297254163456490055331411624882854807779774943834723844770661919410567390935314336611876776930189078271280983042755372886714741101898681275605240245253741134401242051186875430994244299492773957691313180191844295903510786692263526216602230496699965878079408183589579919226666729857544811153819896854099268622486226849702767443687399050037920119340328135033142681968066382300117215273949263001547749939050721393946004681913406978814646601581716725584014634036211387954246868545733974680001742870873618014021672076262017789984555923302202450153738013364660218614765066936761637770889224896424615143315979410182469689759274179010770106145107402149482514183771555473965924141676921474525666150978267155109213023918209196302758963319355858174141430555951383006095911036989427135897552979317173627934260507304600010537344449443913663908740278417873210662475064154372163148667777004850185025912817380594086313976355945655997141400576277601377653481875997895362691673128870669550074916672882263304970598641518430700622568960782389740505568334962165506290718858647090098950076877494659014001296949362893603569569915549396785287502191579808774983040134315452605510496211578956778516854232759859034337394311479656438629644138207796819349867513404180262231707465670047287719034729696400445865201992196357662900572435109061311783542325074548278861283094181958546878346955719023210428851902096937661454594984355452890102279132645618695681033259943788475838442271921120755772300379272781813575349948872670755740279351856323424304531051500535796118523986821251298006501772621681480647436239417400104297842457713432754896389054084912322020550188708129428090886908181190710307743762752748129461686421099155906641178530524648189541070438503123431146422774008506444601949820202972423620708340666722289908672288352811252603291909636988438973562442531112531575619106969947454291935783292677971247812258329319845889987114902082499741945210623390824242481229693281770782006419970370980597313378053065922232883733074072456134545818395370936144024679561105087193732177176865400287735720793538729272723671784950268357758127292761126383325265327073520614703251519291193434637744917804518898876603853175630974218388621388030562801095287128629882066101904656316687478044711859086085697883636901787905544802512477074900573486850434723925733018636584149023914841637764759723352339921171294073083526352382946846961645363953297010820419089360205153642275741450606440524297838550611334114501081068088592432960276408843611928679590039124764715420642601036941025908649519576850872216778660021212507088915202983506955579185089623216101291165843612264444217059777942171443175952750173651034785965683968773270066570896598757303888306654517649478795575029532848496189180690266713940740586477298021338505379240129513495102227851213899216679012775749947770260111273148656043377901260661698294458266712155187804251575628126566672403399087235093080026967111980017134430143742714017247738787912142613171831006500163681100043518952910243076750105011405352467919109225573002059241851873038892723531918466773479960243446536691944331462626904560949490654925166039824743476608820043023139166486910735925781563883178287605977078938451071058399923196028122928822799550419258745361578368818863045123188212300253265918229224610590380807287381367265165915284821803704615044353804032593806684335118411125299613171699957488874618522374650111608043793973300415174166422539025762063620936911364129855380375065792994917666367104763855004391893290821149317745611068066636979265293175859440719362363787406491225225529993855409457206416132927341084518076401883027931760994456455816939694073338379557532064221897955127950069311899706113694890623172055464978181062908025037863064749870019319700295779564190172051385871840498310578741704009401310966960648932311092949688437621747476032512803674270267723071310691789014919328555323437969542528644869945010300512138872405124551203939480675490080344484757353392296973027756502405299276327186471659700097218114539065204067564893301326716915686906050889019365291635993136803635532965692680463988650013492722142380373939682527363596432090997903066006534603167583408302793130130100214077648334692572207429957563347027746702826535993439608328567687539133742964804506151945161132045173524118845883917210037936898649278670921502072017985214236949274204527990111539049081241204263501846356914655227707872839442663803939565977645344878350689563497795071094354007481946417275142071158554024290643989614321506544694130911356808011695048454159816145324945682458877330716124453160191874894524364208400469283440037711644172117146289176772246729970777700610434734848739260640354476450044820270247596321426250978800243899819355939842521021586103369690599012305536104694893451838666165420250553989689144513537884937684985652329996360150909179553269637204627634609353056321445646948954523809514367240355235149651631708841706786236436156897720138176997339044913919694842437432148914722001254971967821308201805692289327710405367039266902147098172355737545960440810699594764761438078133858976608371988345339692940315105407793758515442760836809976151984283659415183114827676204883884178432865624596543374637529948357115051410417729765556248949815006243949230002666353337461487630205856497208905901017402420298169556607193648589165638784391443820379980276369176747154175449500083730496412311618249775360016782210949844677143054936999128604746943917758923739091620912428030347074771216467674274630326415858658603176693548679181060413369995204509636454342318611747061126587953407390411742129830853373307172159556638137490066876635630643467652818865114814229267475339979221254513806454420918524548132831439935677332621254963333950962938341577730722953719427813760058077108181180103921069628008686001261433067064103640408680731516773039357685689530579328677902320201452437065480347538597903899011439674408572018732870208265634722672856924854251781587805087983901944068988490826309571556504321750937518688885571676256115132554721446698097312054450808792537378359599785460689481030640852246763513649500455982642720636616608904274411313201602760823101410059638371036519647099657313256629899753622379339845991245392753920901262706884930096320456082298262703470749702758409543040265404943362063001687813299234648788661587625210948057771548655162226686287409641602693124601694101804155159371663403015560709075186818125515419992107966436768306158725196973837748335747906178177798328118568487812268526926023254207347978647279513564648176072006048480871810977034348992947731867800959890644647609621472341054332073854791284813812307682803237215457860552920333013741310882949437656636357753779358911657193971547539203495350412569988538553191749836871591470984187476928617437219671965329461497974991969349223390704477714485129842776863994195137653547731475042889651185968151783401183788913336268909824731823857706806257418408020078125878353219333572561056503375394607034324331002196269013538856185746311365595358722602025082972797164525347181595357498148529921319696700926292536826916525984382824019307936565789684750902444611719119758663286936791524278857005027200548838756769361772730079357671191964912810857807391146939631811898041540082915010462244329301076370667705557467869658196138236751888949632656813310279093973315620454296629291754503345016601289261950172576175914978054638536691924024448772595737440065404809004244497519909142486156825503122838160071797557974114116104547602756731507127160591927431470332401126439488387610708733247451144114251727634676650634859768598432970989426385900340938671029145433214388718711375945979840135974539483329357802611652976824974001954545329029465949735329450118803379373390560655466162173580370481724720398357111181265885203460142318191275150848854532484632196302445572939440544808329229315044847559748478510399348849588795340416090853448699394045533194637419205851335206232594148728068421240477887215894423730949787419863426814239833915296430477180606028377593155706376297868500117233928983803751286964768711777060973601265523373772694881925600109360590873504745118350125604856904180362736087264024291396804172034728597109144653137447694335300044846251758007016643647952459698708707375576613776719934895450453298040242747525261653858770475623425130005826070139250220802368261307681817560506317801644661750459017442975355385713414498462647272133218610451259176305497130493941185416988374293971132008602266393944838123704037701062546967376157992587128612798794912156100530378810345634570209647386164992243793978967015193120661287512260413144829203676453067007122394389650463180358231521745773501709306007111677906002788290904078417137883733575702578158635147828122484150811412976819494747070604451630189311255864789061957624971741364570462681114670546275921981805806760623415076742460052801805210751133568524947127596225539371336728485693358464874704726643350890061566928642169589185125878661851901195685618658534285066040268046312397864956520265402316528908025849705079933485616742928745624025439011193680460763188205931979566313904815197142626448453563301904130337921419097992112337252854921166483877148708344668805565675518818285251231072183875344344319259856572049732393008096622627842933767984017420802461977609023450071136278640075054067027349829979050493815323606101160770841934294663610104494779269852557625608043507292120617609900020552358095865770670586239373045582709206130938002040332458797216307135506332139538095055251379308887751921546925389775607763504605799073612572457636033880400283937871169038484153541106782888441278416891071294769999487816128029464443809216642117740786787470504049680147423525895527991994795853858609448869747984183797989877461330618914048294879239791678631527470627184484728754392577635766432363497750569698266846790087029010022195471788969629658376010789542420963864582300289294307584861348263389543599726094849774455406918726935980364614240973061298530273049694867873469403028865630215488543624777511940204470195181346404035133718587081792695903086240857799791045600495391800259100479583016312863776431298633872420024305662929434474981141282377749309691996661046509278339361298756380943654203769268409921748796927085980022817257676531126221580440518917836309170189170659976019704542774394914059329225399906519496185753171795819069370555088788854188068481801223219287179975440270596305195698859172413930413153416194878894937266245760986688575179331431330684836319000134198808973980582712853760039598839980570662606758433456183012013859868348457820402636897068713177901940869349791253825888205115550440869710519683353581105397045864766779281888577286981052542472726065367875507405863670998112265405806509833477820403490113460436573628060726164308515077648404267015394189167125440899167432619453529413539834315011909500967948150771273626861923479705428929001694741713513332576281739157419003022435839385735216084641604271477659942749136625353188743345162014065105566036799468488013802074569215039470822688087447272109035965605128605180035265327361157372424504606240745497788825412479516408727199968896055156628274902005245166121372494245428316941616233758857625515681154475270589358325481851784320212855522181154711342400108103217912662059026184730002904931514394064298641024086509569641196439269914615966892022520455323472415099321803661256256888508832900054359530411370300854250953186795029544681733840142615735489669169676406188618791814124613372894860475543211662606115901223153094851355540468650754600273647535127230850538402676217575156812834797275320808156872006254566767240190660942769453239948738019082312146642609298470736452666096456184460070336101752416851276900360341411745933823064437933961298719610339340671531321832104316628241979977275192165775299846167981993600524976932043751242379058826214176672044546691087767211434207331020691972851075409212851684920652616118013241653322158463027376582494989359510901402825917095070160131939302621566704485182751058352653389110848011865603591941880276975334171333934761206010711156945593490975630969216364623003205532490045901853087886622496250290021354001981767189925756723820075143697818436668798704535820034830378554218524877385524152163450790411639051008907458067602689952158487446701482530508280715810849624202343225574119377409234294627190237231403105553745108595247408325729443180394985349913241815099143446340127340141398715246820673313595184194692578661203447039364540707434952388981264177755811536386087649836187617772101052575020408002823031157560793434288171479500826186634905926590155930397691963627627741846837711952722556930935353666814508284882714812053961619839594338476209724663735531944047239617804965370345661895296774391830324108051731968294316537912623015298468695217261339059200132649695518633021944550637469164570809709133076703898208693808510409356509602981696289045308699060472446875192741794292059889776843799018390836576815564029487923020475312728528066773153616412203381442984552046895541951207314420013356890428804197732805597798582211809036282682553921883037315196701726448425284835918452486337372633975850562908393142726756333968415601421125544871168205650259564698770844160689900571217942708110611885936711862483958410009206106161901710819534972462310403888059814102223348373630208192660093292364032517692318003886970980930326274743867649725169873107017757637855799397536936140871078026883678432187549655151761234632985004696274502946654409187068679239917138486368445259583148401879898099941554529707694276534274633691964845827042508264264105494103242758267457909814931925291405702885995799685664027877421597749364721666762979116967226584221883736787622090632199882758868599646803667724920096881915142277199826333202729712478222686823014518888815044019540633953783492550636291730270063006295631730328098306571753471268303634076233619883443467960847179508429250553026539165648154952196000623171868770640903866044436987436794715516437656506118907526403121714845675183766097692847051423914340967722591616409805145254099073151860497998337669797551401070787112987638370031601211686719133776603193036804758962694181115507319187471081708368852744668255378943186491367332789427181277840926466757268984912579103844369571500466319553172234107326419709434863003178381309928546773091329816225969556547524628878067714472146250375673647951507852298729452343579962597067767818468456712327535089818392977379119996412725454077740349188235903160543927270987162173426185685417054479374887477224949232381650124088615887425033326672057819764014399991338941389471728029731623215791049379475784873009843665106495023160400717669640868174741308779459057112274302040753427100216388283519380223476562632217247318233409308600693661142610914571014801285633440020566694935136195826141457564938498625140379022473475238740262130674751782083252250400073087449894420338269147120109064680597528168817289664565026113974617167538463232087931692926857703921952645237168855184477941030910020842774942612576881752791688424658958430998976406463287418727688397213835866408354668573771381546447371136155294580370277080681708847889629318450595013422549360662294093942224817121528092586917879252220076360477812762963589013767534918247987486966286814758842698286265729326874915273073123249272580887854469183421233892293107920837872781035955871573057332343762918719941530028937312570364611412729349308680266728433075711405400495134983667839509362981869900523162521036706805758237291884535816471223586654924135716776164384439156371589071437585857420032431461146686763400334733187843805375427487723821158193763070255051406022221702708354823327727793522390608900305734329296301977539449933624901303167666812576984588786154301214368047061657887942769293505379700028857485371634068338388665402399499500170044112150091974783055814076971375805386347004929674406356356750847601770455696320776649747558901783184238143639161431855833391617570355299156261315986555542043639304242465885668459219268259837998185929196357716627442619136874369458099765584642955350752434222506019335986479475862296546956583807942416093528139674935488385251222170303667784925085776610411509917500978183428134626945647836995708058828567516921336610954636727822399523983237519797547783979355350756433927475824945304782701524034163976007491384196916992741589020541801348493492866014237210342340771844436170247653045084467583219409214131779676369457608722168269577536707786807309314553764190037923405942937684009625061736500998245990709678852135862263037049241103925577966152643610416295743021387236769920240388692761597809195757035918602392327990143886125946990278918698987742935644614719681562233526255900007701820937587269373143460588463157575356777191399422494950547319899895935373949373376230650680822667559013588255488244617559812188378567188557465958996631975937370640941576333683429157815494588160434125027069059111679216667351313353675233332855253667021977856574407358903656163021518937813754348291754462418481156509752891757511166415151558806115536237915804761596852511496603401260441580143375989217504880135723376367905528876911538354368969384332994146594882849133399209587066972765553637196387101452284199426659188640290550957427545138361678290446740130530852900858674020557998513252207159775390734044702741981270193487826618860697392583964077882997722621478739792446044481012729354666108477516308649337497800496448697609627115559740665870223927426652627653100520208931408949756910743359191648670814342037647461390323074108839445622804730093396280758540777301704537721277405763615823727290602196152786277280653102880597992749663252962370337091961846095663928972377295612727928333465665243192014508970968685916193785808179718092450009369451767422254289304453507698054090619095912757367076661648082524355076819655809283195007800776234687648933512587642405012028463354635235813870244520736409851316498763470914382003166068373482692108797055938626678973061893964544938367697150179096940183081188519985350663130983271357380435329313260530463283785603962148538305760672544862728411984915761513091845262200251855041877060194405942631018787995105432620416723212241241731293174414803185847035401521229866765400693969390667660934255454449669352373865075961749924279271733241077768953390789510470712606991215994631933314033276020668705674186883628261944493572283096361015468112978304851739454260206208651088151507087742776148431923070992053148438012229537255148313150988584685464898465593691875425275681495575191251207843461927244843172103711575238095972940058848325955770988872326275147276045541529101756176314240678474348854761493510930436875542290537226517366657566007717628479695377984612933520621804669286130677924976136256784126745177382569667771440659172224427683746410288212585265277332596176481524146006050894896706468736503498442257121165535195350770617851643324733421600198651515117762124702871851100646798556848123879444548062449635967667176230508267107284877011253981696905195836006260114651156514265572420770185843482914580765563628881142864961358048433995950427595535755375425016205524342355703818294087506409071765361850955836185216813668514749724802969157363928924536790845732332585026484379228241958062342522596974982730473624224959962640965172395661137362850742455407432165166164243786976448647544388884691510074771219459317548553856109131577834789765649611040837157600004584801608296169294083061881722689736912223941924617529810245749864757454565147167068832131931743765742906509436986049605446370947073824446434928073647374916329427932281823595872438587578892829404429173096218204221149290955431100907968854815033519071239407577639131162526876454960045460307551645425338415050996185271594016117332256885707505290101214278057539389913880384441643338999861588067367133684021016022716133124963458998475702965583469340272828186776118903663253693142018544472208559398563917269755684537554892845785699413110640019937657720793431704650823546629472568768867669061242123923602224632330605733679023840025295038210609853452344269529140900237125463516118215460611988262147766568708155765411035686066888961487089352611366746939161493874432314840597340399001221600014545926961468385968959300234858493230823953233698511314333430905561492037125669178946356193409150906636281535740918564712567172291474027172746267338066991052903107654590447840940418732522627843598546477460007787733524656891331907599019794195149809743532793609220832269197631775160110611484589621840674291883597451868124158109965321901162560811318146514861771092619768399126132870545888222050065315062760552317280806233000880252953117234154687929498139242286366524959148393205968374575186372931950988337210861671775630378279044641499690388874226993302256734209552190660698111111119246385600122434385189792550846144603235808154348020287847460132742531208650227223318310613719524588837627805907563447486171898666664446608664457622749450398971181056829083337678549633529305097332754235289405577806892814360865938804343999801263782540955944115894072399282970435621627273711198924852631519384624158367909966939094885337634622766779555743758292347373478295080689268921526093888771006615745749674537919373817641874096819371740277143597201442866876069312451573552872066696567847165513527560480043312666393243312745710335348799940967566391156942528891157253455393219956343051328331164002227748656586712929010977276710072065023637439244031631558765382165922861690070696135493296907360617379146565574039603680429551734965072367903092874513724396312225532307346753715244061568778160648572164533289307243561248156859644540115149372694878221937548895060959743940636972432345172898417251030255684452759843758944675222895169194616567123344500541468736766020681135311138883532977755279941405552947435402869519513676517580599172269901348896790133714909154200370537272366607465113806953287347501291525927806689318959280604636726960847560123863579075832319744441489695848474118131546329698256250740823300016785405411215199067975484156206232099436059366286213030360577219791973883036013742509259771197545100844170171926721984111444220273326460258730807759125825871083849042952631005291867151569876407730138429820996834210690457473762403011685665424732257834346877410116218138808335870120784626349188567413502900260832516923620430914560165154440780254555193082368931877187156142570737114986207875662612178997432209938950165370149296848810255083913901967987482836330990275351637974017027294999449467752125393850782705033672399490752441189496645948559261133534217544951573795456213265029731718912976502752564151505064028239726953122451375469363420343005318091585277836502073850726854677544827366190633053362266532150461257468073959035456070869909749595270993383593722633289880177066893666408307438351426913548748211394749348932911831606998494387324747515393100019983592581272174497923551167582223183172561798694967335362135176692655367584759535649184489912162183120635227739345018867888779246747370325237854731266099883465685984887751261767846599945974800243881545225111751271888680969611236486582490590332402981590478604147689329565198472681341574220847679937097868248609844508080531817577003898656759876012502706769335092745544300541174370234354767586700161770041413643431115963921051685617918914729213252755237349389274392895213579927681646738481309516822367933888050465883574496805270612703182945606947418386539149455084274735141195406245669101614051837682415048869090612838005555816087069663646827483427136280288383501760038432317894558246199289526271401258940706620719106868905098829999687959575099419925715304064103803079465181117706319310125856131740367356568487432697318226680473035766825381882956737735835400397789954080077856257602170604779277372004736311597021964016981799493082084973259173855358306806969014526234555965043595691798644504245187249040068180558199712973919712736711695261024838741528078217287992175998666700008531736848386470199067689571101827633786595242811777354949140991915183016371630138073311965599582190823144409913630057183193158681053877299614457280102956559988961168152896528024151239995483391828161612730883835292860523948281701747034124899647417945800564808861341912237241092080132730942909604753028836708396870024643158096966069665879417612881649805834538706403993909361924668431969187496390920691206506791218956320714954061793880198864257295747755226538146447610722352541735918428158089206713968398986358817342931976268511287137240416950296948043701708428753172657331604061994613329841145268785920650966327818961366222107658073420630690072872757488492595078400033859098609135150652153567551854264261633670841034081690992050088959885802029714506638592295017497668443627740111720947684121602819594481579211204083482721698401103995659769632498849340967525697262029004740305073479450152820049150129084135066067288916917807350747946881500277428585586629751923014488819298628724588675834248409672494434025867210843762254883877196839274473725187461056686386285539937711681398356728371491835197292262698058309490961134433315282383588644006964623422864974061747051895492710170869519119628859813814489225325329362915673858862020309836343646887405293485670172985340478720296557013587764469230578828543857099461235734514651243292669930073502241882239327790530387593748417494413974319971461407480278376025083863891335910146420490012031996864312312427563130035570757476778508797409255106021989949232487931627021745865496138936306094436522336915980049140068517981762987335710746521232079447259778502018598963223054230707651025154355933932304047594954664472886624042468379778662949599109499994937688454955015929863771613292300242831218681778598250769956559843947831698929142650636913546203337826677459961522565725881113565278474840300609909305878897711196074652596317935372044426725333389600304183749639505049005354376953258089305999496662810529681710188713591774829094215716641676186392521371632509038998117515705569640936395880152840898447578448548495217580124760546238342964574246038833513481179478267387476706763022705127226329386913374538018976589436396814988350024093792024957858251303839705322084597596257116332344730392368782217489366992746042847828381940601499161971943801695983478434958914027254503634134371170533284129912685635210740772287600944837063172717519149615230898343534160497984393912078954822544027956044254198568312387387209670055564421545746236515557215653809909066295853185212777210861256494471070457737497249195441091521178173776296523684963404905881342017158649891203851055395843713646313405907014980013042394557222597868778684444418324537968372501426954736566773128394650088422592502461642928683182490760937046397019564059129056188721680229562880078806567356072865015711863707021651018549480246523087545490718113518697318126159989663424290823845261846519542743427477172536091679750323408859444828567565127277793443930584308332877745650583850911951310450739760431868716717103482738478158535581770111764688697962542110573174247906433504036204407892255947743315034700249794832896941621664582049950854391895282784851478343546767478329578549805312508165881073935824594363706111026665953004105134274208007434625412783038589881394461187276527714626444625073618419776183190929102577143815034354985634947783046415054225409289053673254880644769329913007161140501259788237946607866385129034351893318791069904291948071603746857836320306827639328582343795811491837636500520834547151744333347711258500997727617969756899204409492837092194952478007525141459528138501865175758171802224664620491402938574882164704153304017030198437499121956598118515924347781149216313080249818200953932112391669556859711841208671055978828895835421300325421714197095224932343437486038446052237621356838886670767472625070235724965421713412422653753558125036072773708381861285906370888609757978189612005674765524493377096462986962230382478479429853243505008644865565163221410561064220622057834341356546932109470210474673846645070820217558031140031801007887100730382559250432745589739460566860370823733969371952689681645241816802889931260471257589678206200035609401251793222053065420602844784098871057495869750871674667116775944011772340207298039094072003019007801611973770942019133293366076516891652531433839930815149628542958592610521040104513063625430446535336636334368447348527977935858757044055966842314350660869501265405898644434866040210234548676862442781888389871742503294837351006426599593730741095971438328607916839048842414095368238707010710461614304130933674782761548662686350973148126587626993030550509119395333063529656972845313624719164897543704139059818883090475414124484473532443864625984396954302315196250211057289719431922948881282212131199316838499537339242165495456990724213731091217806102244181392757897141451781453741160772146814342349525835983505721992066601844188467606591630658014243774415112301628317202285016392280073861700741234631584180121585293476614315440498311112506803447425317770487000611829775907293624195768039157497388146226742910314488684447206889187496490004998656792303826591837899848899699992507519471135151130258594625833122794735706349008055440726270182928845902854680085881188665676524099002168640457846691569519519446315455621495535022996815908497260012189803354629560742772036694340661463195394871771929587514956333268310978676542739698906737426559639637907956526156541151010608106870014622718546475644694585212033151422965110875471158826220920703730784212164660267680924878729055476274983092716036890769371145837825713941222620150791760376111225899449943605166414749929458885664629958414786931995932440011751780634186312577734012700425030822809458765099836178181117941437745031584418170971030598891954184333973937537815381767512708165545615448051944790316258226592114139321566305640075129011665787819535683748409069156209653044879441355485472507778208190817562194363037929417361021531968150431698082394208676251732791578903927222990958400645535743474927722913375756099794198752790317187111347737476873135203677529789292392808261079894513350293931974013353857322214507485354169759378537778720302457401298559199659114148854167864906680394934389903837588003324087474041638523545616858516724429510957035901079299702535340376206359941584592702929483904848522681409907339903752010692280561081231438089516163840709371280050053413469634368128068959294163021294572747381959760812978948557551940340516453156258600676056599693334312733060057075108570143753246536027271118897910527494137175497175457056803459018730862719096617699279511467138498042851026235067753945688973125098550978479940728781281580914000528054619243724797404312038066730436043908540934664341292853606622599600126906393923998619550526102776355909155492594075977742846519173834715246931246573355286691657601996898048773104725402280591910839220670324490689669850302774097715640794684195767191944970838974214037464688531249400328061119785837075313393226654110350148236697893770392983510023792374347780229780149015638267891603266751418543238077332808068462375956904602439577250656375362588076073360188656268618166613605145943211499029023902613261948171718091140554028343385950478849755574357508714039909356684856102244324362039405796783857781659247926431770581211246960844784433818119228335509402474027852357074402770556892632390448958976351830675754523854734987929053102538949256358915455187212426312785585832943049710004253882523639014385553759792637109531091624369685887253082113754394110535861187804894457012203422136362858611503151377265125169973344735134563881720840404005526071322223181192445994083857267816411392591246916374878438909903164568200348130785294006925225451770699832368611807272519932599376550027148285702507759638116621366253268230336493034319727626446614540216703773097745444209528962352670899704984894017246176319288993610058995643989887143989730938729186160327009246864071660116400843492035374134048824365482771387512936544627892011938635789148371679502192411273581975357000317929808818541928215784255111049079444539712323543111125293307117847667858927668704419918195771990325708385979489317389697201004347201537631347212707751221551255759219830937096158102974366983244833758218272509318050715917034417811166636236871981561032553383549928968659346454650729735167423638358790977070878134268558073803622839238853914281167991068377116019438957751748400892707511894367795263273977796714740948607696190306465268230816920392650202257196200113276469570453945622458930733582425413646472181174643377023560066374597796713550538941378856541056898963102805598588861508027582174551409274502812161268279036741500240195838880653372438427307708785366594028172860140275795850964604175350121783837270421240024765171304892433808436611814076763650943866758403984277868024997880974222562875605278384696507657707061177791024404605661613139926901707367361275499819874139655529897156423597310760654177997021636050639948586343104304071946751617520408345714683591527261610288873832261457000784274545916246749972036378563609106467811053386509208707086913512073525667936382058572264724971158521121162812133092296541058548049319462246926621859726965666810198810002692887624450272546859366424339168748205300886399669743335921011287393647854316336428616316241515971092060328308261893659842124882797623815550770420557530482741204856477537245771581439634684844725124879455530545609160340878542140741615530417456242320978473366230639166491574675088356133858957701315541266028778569499620411930758754332219378811972942523529307539148340286781736096577373885687872292251639547399281922121949317042705778672294257560386659902273064441820255438286585866341100984978771774870196721754882454444114273049591705964444929087191873683754679355923974250530000853798680642942479070299543767715780089275181296266105652391059015646665986519236933539364495630038554371219395484552817475320329729964216879408172058759070624642718099296830278165578895667828685893487190970727719281913128386329133746562635584368438852585202257113838205456740622486091502491872769393990237859157452528081548898890678063627241907791250177663983301899541917247412553225088526006475872096117269122847382150209900486290272873136833920607388119783158847903720620013056739305529261571026312682580931871084130747079945273439800016443337975938790940402602136520600481613200124358790954928773465776100485863931634397699902972317141633937886286763255429833274127640556942816098157744860744205607611176147684394727644628703099968648310159206860228841571808818403104267346462512199541733097123008373086004144534156520754744204897610413183010345016600058787481374371799103003485802972613711439672214889897243056855733506322864709025853185361511935289731588602120493616229707372838404751108996945314143986024173846322513121776041684028989726110132696503989796292703446713526456938995658545509624244608051610648157310097444745999153962141555196070119305091652432739952719793800201410425528703775606833232323194434198299338119956510984768489144906649031675745476379366919866580278683595531267126139331704030950457720794834610851086776325308961317079925676493619817584128343009220773288582824296071258445185537993739818793089827702684035478811081688602251788772533989501296577990372028420290721832419015954659359406281525639394091588186598240925643215683295311130974906495964860341809951224852240715440470245662791103371407588762915009824541400603668280178854614096160048453280963256269197635597352641877319929380523950399973647102186152767698286685326767108158847833738939968354444960342815744274190312436882700439555005200131113087212794687136031386333353231152684838866491824874970667499403651199830371096534893130810432972721209814086349185256639977257483636803130196283142592290177196031346863957408484700525910631785921956870218325299718179783851359191506148419239741226916863994525565618505847215349610237064691796406905314071016251489444638747719017039936369023434822795198416460821590850619537460743555911914484465460576905740793332726915142074980880733373963053579665281202653507126634705268837677313177396248871869031162978395171053869754602389347141706533313584653723761717204079804695169819673898397970407550016014884524504728362482506344927937390043977969319638474301409788646135536125632281708385242700509562991551715305433076051457536199814197256061521808788602922411005509597971179635917909506088287206474296442597417397550405042701473197957906913387464540988550110468157378949875061741720807910684010792764241071483192069324666907523961632737233448628984218271756264021053560610521954275346328160606436380466415713263605588907521334569636043786884399270755724689731619927512047945700875721907526582847093864378336675973846854123371421450805336380047460999938822896527727879705394051834461602271301628547001330516937007879738204845932972595372564622780928520745330758913581086013646442393946122630895795498230046656300682891797622408201114585731258887202157826578025643812401648771572254949795375064574923722048059949781153142438094197617234474893037797469712930381817854445280111143951747493049807146973711903970232392008484832732898877148308584968868916099217469636346511635047990657709261870165958699268617487395678708084322663746311141931285819751846960315011796857552772308772452024065726510146505948993460992701287128674024779310994595684769666664429438748814848574225633698806540283910805391438635886946291317021146726553222130117349283984590563749541013975600150968647189303136227069276508374239040213782046486794382695916485117201799462652762914603574658145740371572989254070927767037667713999447634627140193068230726858329428637494592994422587210036289503038284443892087249889794562114794078230226051179456627528468343776933611513107133872286730753402436247037213013835404323509809018802606614534763099377646258106768848930585686349233923650679866847086716704735066751170650062288247229400596413999386238871833745422119849277491576198159171889156487956715323135824946837918065774357791669517806687969801540750460535878787732604005015510306357204701553115878543406737064643896439913254374337558464263078506612338889771916478316612760967505675326289590449978167704268511397054736717884598141379226796357325932595401407946235359481524062716735909930652854099654081760566203939304436717487163379673310826030520687196720711778056104264822099518985464550311809728150828838820032930457245890915611359994048443194918319407826224991654342745638159601222562387049746301408174499999195757561808318655600398840197133329681062479463256308015811274108711534735634537347458943742531871396137715288523472090215823023204770522989605582490442619922851035702819776811782625688231464229787166823225250404491502131514641540430854446779339746565427877543693630680162356500341915586067790405779343983736309401971994412010603289994114601151538570708695562672274041031067239281854957735013740075065367168231819113527733719864662116534683152048253317704435338554837012766143797878397687994929534373997094739231584446424768965822711049109539219881543875637393858136275435223767314160112478046443838175953683164747801637962993396002170367959133378257715320915759069354718546818135323265352999178339555714459421680208438413565835823309259285888748250015247006858540784995106766778187746716911426318086228176815934767239663353978354758475696601355667200884488598376928280729315860904078176700362270690091105351004971655208114744029337534444314521130813962709716051388664189126984080964622571670063662559198230929495621335148446437450978450363742057582684308051015413525597736604133801566824589425534069805598088948138648650693286739476074328282404394951924821576215859492490789321374406873263313593850965917883019045097536598492030201763881253127282596951313286561084592973093145046352778944543328156805898847697170483510085331833519376290707660709504429867970464822797076549674114447901696901973520032272214182908197789834595957417220380597702984717240288714827116277433868946926408670431164354087523543122491522483501064308777980637518964246411413597026977038311183411868685464451612372228453887732238449172724253160157081866209313992106350047611252470033787918264666720559714677199819289104447700582489877487794549858013077073940542023264730656502754557329498758434168078809714787235181965964182281279871092092627756897264272687449970583441533592899809224050888652413289810662489257640874805346153198109780828486556276799525720945890371348390501535145547431684642277354303690698800073712008860191501564605285557409799148574060747787611230786777936790000446291877517930875203753217889339021383437038230440306077140923276875209084717647729747326341162959245767969761758685485888006116749166281486201852401017517574136176728361060086551087845019876152066424652853019830031772146041571922328092458432283869202210256736153035110672777387410489570477443516033948104318386096750676703595198639112531445177318135492175685398722294182425709096552902604253487344521299720203343758024193037379489321838388704501947865482995141913557200521383429730455221147595674988515805458245373830538190149437189490916013250381187300471276122786063437830072216165673528695504835211836673122355332124852971352898457762019742149048216990017918884619537122351730875233498954623379788189083493253647835730737791227748515325532107516957435415815335646449924910555780226720501325922539484010933127413503948016599415737084375017772991539955213723591970743799761813420611667756028917578078848043118421766864139190100083664163858463897156679633207895516882737359117516275339509638110801237406228446900470612895366143344417871173747813200532684468862306271514391532151823865145859122439596477432205150990484124771747160263641779916892949179221614075505297365637883922684985885942279851539036753765124178321218188743835694794069559851812375605501929676063699665636067974096734442493759247871419101594593464527728512382889493210062817888331614723263869860516487661591042467211152814914436478690897730246067534774237743415964592114690232401375417081467975913868612153142517397648562166731044124647537686443043276967435283133707416390933058638481199883927625248849923923410383886377035374876284039997496939194373537163783172731328251573865332915375561269005479374339064260136468436131062885661861426864752427893323711957006886449698129299325717061307257646963095821660275370642794761798122580389786102128334570734932597327121921443581330653162386919289892167272019986097104231780043201459452636101714818297297065444878706818166146314199798749689541246764601378424758496109003795560193278214145890545546373222138241512085690232615091538770598741701868698872757375103159831197191177867009635642829536975879800118810881029376783476169859828817868025398768149613680966160580647803397212448499730377602945054454628660112298359027162978435294152398586248485757407161747592413097030330041459656462496002310950243616432777147545488309562237767800798774845926634127846201595176183032170711504627189146617341998373849486910805392059709183690306641297633157171777527099769465849597141518634039688512309674838218452831486245739606175631425248878318817199661574730524300521604676218262617461709251407050958955642106792521065574044391974006096658818014691018817720130185595776973528030215193411077830639111935041338725391604163033531506601479152061794603541788172335936898567491932981475507180471682200466519267140644168276158812467311511489942775547224715595583103138151066607495685700611568186776130531254884286259449050539295447776920541212488104742658109065370585935964570884480214167307534305564819344152064088296210132065700448210608663818294283577194049958015772623644716225281414929894224375415381792205336932579688933053759177806883854762567698884556464720296596740142667314492005556466118075815944991692851262161236388748599103563462595264277591004737238820869174207902507817997296451538892123654515286467908303971657254497443457739336833902733547809984276714125365296005121570033596202910935356267738960411895139747672746489186489232765294777196111277793387446124696342760316427124409415882186157994730575929695439056608254326911297717209252437342476748895627097725847450601406179915248906195719173427960769543424725028973258047468121462402425013694797377686839878771936276251972664839181513614933384326143504849620878123551212910128352107328727958309241390237207198555740013099714660126419352650614199518445536105338557070640157469585597823480652953574228395331239221001456891331857069818088019874654746458728836123861517820567873717291584100265899654925228832523504417053472823987178651096524158856883104722382145732193073031787565373454015762368672474238375359368066811081986381222318332885606305672705540855206951044825784931765485331527059398062905268983431563736761186347287404153564099003058543188391119715570751693221641092139742610989407457823923908535878826414977245186817371279170694427146756935172569613279610704049384984490515033499556525706023276732109946113897635802903575995880959379869975380089149259186069430772200868410957191699932983061427675568861087023362109659655750327479624085458910903927171305601306136607483551851499353861556209391249488357454630289854490985958632671527321382183475834041833058924453111301976291564905984547042465991687530889266368143231078827731558867701891441013774952829461658409536877086929238096366269138778557206001806057468072407207595885684961661062636497818510364194841762395551833745041921766722183591472190103864636345331426249923826359678815351837123107588913638980602171993397990071761536210810568553937350251854080666898969545424388349007770644294469682590938041479712370827652808738503928571765382013363449511957727587868596877054853150823634704892779703919517114936108513140378963005089840722084705200138784773266839135735444615585647562102158514462730240763666730049021382850587313953394668519382491416179669061937080887717045901538179300723597793205306164059354016635341130656909160080779555588024141835246396119702690865931778470820375501203216705051676859307111739192834935421131088553540792087027385123483693870828250306485317535009599575389691339511002097925659392085782277874015565901772802805951453523863600901718197873142836392753747211081275395359386983164190014571405078181320291107259082880138610917598267741163337805252163388447447890814882774470818986872440276758918623236395809352347461770387228042174981322995431875634618557517506344737807848906328913113841763706847421497219890371915799937000300880936405145117939056779129238260958974099793667551983072820277558793006316826374385915406377341195359812587449942335818962637813621121344987830394576363202838444611703609159458266996053624957794947145657089255646982616461360327973209142919140489914364329588279528339150554229686957322494286263304415806597198519295106643419697738484759260646715969112058782011221709289939966644861554164630439516787900524161836006510124707574769308587022071490183394469497650928482696534732240546956873395131018842047548120456088457861360351261594843477509388086541249011744770795095305822554845097789221577338221161897092338174235427544254393981791238232352868449773773589190938263839679808580907784711104374971995847209801795795596042296482757554384306872947084950388889584361853113668944730360692538143126929876255961270972462056810191734809384202535067300812021060120883291744303587165186586771336462556371807909288733899660159436854000643759130272910597231452737868914394340110116261588731344075024654000999884250254998844420253848188670893241556076947526842980170676048025834602773324057105662538189190742514242047708805125847114232920029982385031580222044603475428010431809068667396187608100973749530373304226208680705311778693998353195577277001403012059477232893355047610768890362561675063663727371024435886469559669722273614053105901114699597488162825510844172105908261058174623868488460818866003961962930148631455745100405342073670044687535579954738464845678193188847804493198299655951164509206950613401060387626119512287390820071973766713695076836380790937484925085014612119859029403812076134553384385697031051623324407400051293501213525532263114399889346144572591961236421653416783417939300215062085301351647289928940692373868219671961074646195321798326602225279031098115279015321633141618607748960715336313392535002001038684203141397211151691984668169048334985480132495430915127699704009442162766337534775315234384583207046641313510434670863275716639266864345507674398230811176307580293755378525369988684074987039288563915055445870348004127934837577337092864244132170972879354456840397628445967436033314647411700388648347769274925839204889363695585727537156023082075881882909896587174088286468550247874086968643617606229021220589331732757400594369115842253301381117074589128993898486798868475780369249938927650874957856473868121970984478340259932619733805556777116008148825982207082176472878550211727432455905092748530172350915972087330184329672202246913099457731677465009388176669786645572154867978229881580055449132672184726370060611522634607916182482455117981074918382808055324122076351449750958338997474583791856365081380671940380092252332345663165076337468701488337694849571900133590641575085323535458285475675411391389087114847808847951782663543906498840199198687606502520381285903686907060541441296684694025580549940617193180229079293059849260484963894213825593881625627319135171583178247466445994643326799866033932940695561505795428050484909017968470516517360218942361333904442363027265597593527992701299778731947479272165609792426773330607753402258449823502519238619446672645381144909540398825700609754751587094828874355752682953455587498683610019688367937401629057378869472265086096952729063132262697235595568819010638033998593469957398726848152864303471841137259899458208800513155005004071070798971018321756992041625418866214718493761587342236050821786656740789904174112229193431848866650317656927244721710284261344094441129521630853293783697840579990215679386453930407969193417850320299840421299444744450094920312156889921255558187011669616612072197438838281537665952900714050688148185895937611682575050437541252240785893534590725796834313277567209014907299016862826422756210619091134607831293133735791233087504661281828827378950231832210528556615322540310538994355916727591517810474052704483871910665131079669307176655557386599349560287099848881329358078105712915540081695164742611279661046165917303209162070489949666155863343461454339894341043266393375840412181559125436251847158777948092452471765666275164822867540679298872484414016805062812810387184624971087759565177822254875460562719355536872353667535307061460870318896264731191629822392131125235590244509505482805458897764686824770351365628308946897508768982971586208859288357786603967074436817601344673855370072737683928466905262673222481904030882843921025635587280194024523779757602600238188678988534826820885111831124096350915291913619066049420294113368343305908624374316021816875586117414160705595767732081686972111146774000537425969299356907286318321948950324271689258048085086127869870513121881177512389208752746883143951773388627087411419263187833346831259123411624069106307833476822421202418359176238043231314832089948701413512446591275506668391586244142786810518262090538912750420402274540304307374001556947950499403566201308003208103419972364334911045014162846875777993986307398485345068150955158638903415643883025937529596057140517812620902091723539091695721931907546672069405526063427068702201550539182271254165871015097428143247252623464382606887658547513406844236576149485393180291926518446942277642827108988055008906719755978240021589163145647726838476891997838332545836934140774775492136666324550404581205737143495545790464222230379837020304301886599057860129161233252184793603823336180496075324622923302069009971975892117940575528545117389234862732823139939159642745718090398369837403243387509475480929061411670795954298248949092854395915992720189823953015533267749387755295623067918323349961245319138052703082814160819307368244472610527260910887591712950178830398728385435625586842752096783543403004995856686616016405453228678857274722600404622790000695924726191366216041800819621048944005033221933996568463461627165885433800855227231367861895515085596889166043539633799647881353333125061100686910676626855344737983419429324541442431306254222022385478110659531705609601541355453247059495572142694769382616584661603286045698182730435135162294893149731168431272725847307720173346839420144265099212178462764708590226041669744775044749156930980465259451237581130404067659573046646391032088808839010406646685518633599347302974992466748725791644136822285358133018545542553970153563450479545118809001537342363496711584991676417534628109796925357416338093305125626171114247746728319856321814461560450484789101610337990525206189291546971449125318466347134898693209891291131555571773371094548973094625092005907148503753139867462961371975513873883298354627489067531120239114609930404408693247653579011821231180235694251337100386875402501077947860533492256491300698710068249632038613865622468846169783028921976493512153919417814815620994405541324538352087293571498246080757272287176232553075151170276091283146587312129216523218608976938522537810580934161417831221664544758430871742653168270934050752074576796521161968392990931328284247181356008730021483718608416794460992691776909167257045705323422602019260450574995532924399591083936868594324011014208724122532475198655255520519581489921873695562150245370233293595025210381520901461480376446759402012521944506562025268993670330299996106329508917605003268756515040143187100790485189024464009146350253146402668923766310274432301583393174350809412825910601344184558336948396753893424410040832850539596538790047914103324773622896387997396606260266020429545507812755193038863179342312715789863563094743976073775690753083580390039546273437111623655461160371163113839521389979317355861108067606741423255566736853884963623639809173302910365241926577063023590671877611139777908419814703363677240872506954668064661922787877625178967357468247967874736045754747264149662743918268381256748930980517427462343437117099841234228933194977176061047306810457979257611126725161693792255457051416063333702382649085480849167601641021776220891740649965503595986664772767260081105923615441324982449155686525422574747244773126671084305864872206214396545834181934006084767213371653749544456264841316938334174111546978737346886228125331208305195003783034041627833441089636160662264040523482992164339960225682243062461270354192581305782451224870657177103875780426560359781931277689031283988759584145217923136171444231014360914946633544092575601483647449410006962822076776327747215998103949143757741484680546270512153432345210199794477768874678240864217679834268088609234165738817473929511637686808555855621586903515039785415243259229418951043245240661961620040481078169025662260346321380046194152642017697214678108947541771870562049470414831075544328788443149420657507885059450815323278914418549547504393675983742068126836309532915573169378727708091784377500051746383956128669267856965765512615825080043180246178360270487315911994920054068098633078059518846442869477099534718057268213039365995177163054193050499286942828799417004198498106109808359170669632410800756517759794126363989019744699269013566846281466100270626978959376528662461605694354236451338853994311895411865687945009148048135006312257928182417943326417844984031039760731252515503848047485906194678962252919252298231849344986077942915122627407353226599242316269498612514821361211504341429114872089982006217951585026415121052408587127713801785069452508030922534479458542094011792358251020148845810957238531286333517922006455657562562798443454081941401659793930283806505823710275134552414753234513753014458395177631789679309431130692704800758882065375965970762864486801339071259041838702566420214869001850514036208428912781075300081626852625618614099893586648071512519528292917523643551042259744678313271616923517636944867669331888259552565253825930916213097698336174144723562827673363333824074057527720011757101890218064969131819102010519794507309038741945501556084351191401389767274829733256949966111631971440873127144774194555541575463863863549970700463145599561056416409498434892739920069036386037876760479058536959237239485163241746639913350618406084593189122186184614472479250731992660225112210986625391059656053616011533252651570299942536443882088127389804147473508885570505241716328942599334872178438513816408581553326801721979048912644366269661174929820280984643592812944964354875663729481339148787003303790639581771206758150668178986797477431663658765855868403886143401716218425953559910810348365417910750127505087634715071653367516515377730113613915722287026498626290467161130596902250525858017373249887104070869790566745705542885295215706328136624499421846425033499159565862197800214204169228256689738814493590454228247883862023568982826816002931499993692626585009061224027842201078894724648719702198567662023855511547752916289142113863144669147423811624457600590851081558235547470379679254975073518551263181760881988251884373248566079433792513565053755498225020778660968146440295413436195074565014135516257244576609547594067843900742218864943990594181778405384849155693295972231091560041709774034212797118899939851991230704949259832248794060366102773864825469370325341962860302910821577928090657718373152423885406203405312777800169242084498123289191154702839428943735836253838991025011373534298929644859088547792690182770188850569645660880201880288046881367413062636733890439075055216147592993319111975988306524276758662118274252399804188885775711971830415184159678753706755209758943579400501602811820239588538262563657846949111741919391483554764889232748575423009715616394794020510573713453090873489387028293297982887320059150960563881303449031013509724245633216964213091113251420247851276679475490183078397539766505980296629186722923341288186815917116929412083227744417491862747451762528503206792735879429195617989777254951340687931747348377790947230701243971882996759640181109870942014310641521056896256478463527758872358774042971870564193550317006062342520249152932411847998144324724043997386548728698946716182797722074487895065236475509170060506675717253440319644237906974586614092492699916918437343048553666677211284811591949020454504629697234951565940661730338044230986727064806684239097068936029784068169852665503621198103544292679782849242620385880947640845205563529092647329035220185916294412852806073638776665359173772360161664313389945512686507485466692561059800574098164628608079329677233808539195491549576600763261616668230862547945621519268386799381818268303801816061535836807637890833888713934362049104700742660444627948503262840817661885615217029899138152757411217508154766588691335687149758130098585753432324666096595787093723640454454768309080864735422951784357528893434419294847206802927804480872752194033426085514633571403023373549664746489988343891893096167523504429783536021068954679861619810719919413725009344926481971580260701049474461107963844119891266173684674274344247789758891898826588207572981935145615311025516161638730507405585477875132743505282802776627600254835548240892122885456347435595949533035575088621624115981703319881972863285437760109005577855267020483201369714253183125613343417010992129820169949163086957818433125871643108235531040905050598934859910770741292950074005536481010882624531607002246682359580589068963007669188086963087248504563215492449339299225118037194750187652488195760172572695866698053409998586550230422725371371904268725666864098629705499535425336962749277076667344433633635304354671996198715645002464672491333775322938697784024817301754864771492598077027811331001480305034952328901755795223168802637687521948819237291271653627913477453721216899378020349357692206259132349254762519829325052054718291593102505186664278916659527891273774725821087815262965103527574221117458546053835549717436220780614749581706065841289266802397111602618797120154011747138528284470180787967125266297995986483663669001783375346077844941535507179802694483306835989908086783160287800445582995529759623299176304028436305891089579924904965028297124994219370509616338079530256606384155878914180024614437302647148105450262813759710117826897068276987054967141060671508380462125615452915877072696942363849951512988215365963235543621395470571061966452382692063058120226815698397693970159855400251079547874650786053674597394501466762064812366896745153771836628331418716577140382716372887586243390117424993411077938817028002775226233474166650110301194331999924880351689536824710093150856927555808573438291525204133987056756373880253541344136323830754445533487480465822795331198205917906491467161619799347460957847438816050407725087403840918633849916040867200951966071076464839246033986029199944205537313478928728365931749184410026559246428932562296769292525834829894362867301790412067991410552465324502278511823733477241318295212355588485607772676915833035941686759997261536081368817078288676430692120421507747730732581286837029956222773562601286170182178689447760222965458837573544276970428300408155396808105011134804772643870656229945856256426252838561288402979635718949168317346064683019605611897198784282627162335475060686380026573705003386809913159805451990385280991958076593125123067979634153434261710500798459437502685911368409587021028105241608297398231691225762876052114858409236615629574352533527675819219179468786936135965143274870218446572091276089826613464821353956585428389711692798240457012734129710578522055749838944651926834168445175699247516970716648867793830519962147130643891253392619029455081794541260256726651347570554065384506029560285188781938695532099716383780354919812489987612534109222897224663363198298053361263162292570991433330320303991530265501899771956643083804494172004524400458693833581514626291910477140530877671647400261695962211081147813123743705680183783909842776254898144463836261015359609573923333490673063524177089683358106863656242263211780349523200884239108895697554761743553024814435016614299567238958223807661124319549061762310957632098697733151268977656804514328834674134373434993274584529225682103595572580027491537272966724028414406399937948424490965655557427118585342807102861201194990600023637796444999312884562312352632344572275152495036127109078813413380767867699711102760272800192588685455790153919594671157401308787091806534796731967204299184676802204721680606663411690089087523858898235096554850358040800329140702334611324691712810827279350973473399619794892416400967974017915753150261262961167847504256534935430013432695873388920570068982337890830773564614837514160895826121799292023444775622728845875091699353673687328283514310956134586502221971576126299478894260935282554616340439197362322821197412424573643950811847948868043301215396278745108937875172277277699059477895969126866405448970675422284629842283482990824480492977451667813480773707190030380972517561255430024542083282939277524344503096483411043948089493966195304563576177297709546699620127791329047150389761326100407892027720973915978068005637093983189638070362831885061254604699069059824770111383324524909922086780444567654270977011570878245481572101658698051567404261175965777947213960288807029963045170237028139930317276362904864199467286037838036646848025397566424733391691316673434181421069438590897016107922522399380205521248497472589861517529781834334223925635733109881899831716408314998877616200880810766091883099053627704406798409581889898905129567146628249640839454534299510800933592025246488618423168168173672615342447704921248127437990918555823392341321456763971119068443992310684836964372133874841848949985228092673972469423160690734893900826526819388275984863054820702088758889009793285854141678062807591202621782142069888385704972028298581373303769372840061427168347526138161404088397843794434506682939479687032890998381861528816392552801349446214857861623891142723691876943800887049430847535748478526822163662760062000685553463797021349527641676380027679520777205848244987302743483883453322060001635550937071544096426830613365963213884655354975324165541716397345293647448200644827098535027861182726808876705212319456005660410160382710748740223630502941743827617345192990591410054240754307709051945122732001814444020825723442638710134217039637910328341886853215434139618291446830592881174336379136617989989395654451587311704614085278113297049655913572567393544772123420206294526180629915187474522640427199998003127368177547838946726986453752381265626316889431598778987089988443217657485535093759973107781640857368917808178334056076821160528263177347327430814383834952189441592941113238276660527310642344354658165575595983069488298729744880237417293739306643650966935435635738882105481101963745899158517751036557620512628758339444377961586534502332654997189693987693381652928065713177307030898751383148538767931701238814771046486314394109228461249675808603812684828884576712867882229676620943337231000667392304456966703273594605590663756531667042920980024916191503265869352009794439178933989150175174145375887748597949745512248830213358975308785533533410728882124250473357699743965695633289283515411209112415488860889121753801138110045230453090227336635868298602334899649072838298619170471348944367747233762213160005100892650322666083978337181662087324101586890488669288419929776463906859352816071903921877352359727886629676300273543101599879959439490108519706826454781319025129503877359268974012224004572850643516497038510382255075001185879685451892639627438590712562423253864304640705308785907329147446152331800771302639490447779925981053118143400633638297091255088174165755673183211315286586463041519641273213042888232219750867184157689525503264528659292868221699392055516715866769918466042908687972596405301914070410615920997515581420204718619541076294301443739258474662876667969310588971104968463751992846000698967539625975571791975251941527151280888708851331306997359389999146249044505401701885758524364515043718861686624834065099439645700802561261729858030100819081614265576351676243795233966250681598835070767255294214016358654212132581533839886164268656694827020716397639692855485077680032396314539693144336003449210916274989468479799038608249475789890414269745089484564155392781033889233237050452436578425655969221770254752449224209258636482939803850730919480274195458901910012970277312288239076917881079288187544468020780481110845453312529119402161878164128708578055127332777505538917371022242175509096322312787958841244549435556450340393906829968022919132554468271471329908516820283606347098360429632533496492334347499530820503129330832348262343391691350270986590155292360774288672194043629470760645708786223960461982108509292134609056903814555409620549049936662289358633425067132575172539075405329104135897360294435422115200235489589208751991271861907601785361005356830538008445547123158589656218486614514502656727732139389927283898671833905823016540964471878679477690264288811428330235643291360261754470603827167455521427976287930624592888049251638325355154998526282360440600802144507353249426532042510310968194315670536050524939695317202618493347666258066648199908132713755272941487777353453645929514641733989539582368008572257134240489949158247300129071239003548519179605531359438115504737386462590167635259251298190198173810049627918265257502448377584071453823029934556168338609355104108797420524884926361110378524536028784329268741896629766772045619889536127422916062605405759654497661281724533669114388381778503828721729364230680902751614668249869026444063814811669984851913862208417854732754144193715294345862287923697824952769582086177848801271719326479305389704318592960717588874535458936825374802092949770394646024468518831090592544594270812370432332171244262817054646371569347508323345681822900315505702019876589340769207739796843951749546985549157526920137524322794602402666390055985502384506029446186568952022421486008985385964048407337641849468949348992045528300729956017602170783784755898608961996528554659902661001129928991513254390772057702071919635269591046599959101186701838203785618969893105180128044622638279773273869224574249051103298923991402161106234393451549584040775286026171720497771172122405526671651664240575134425624921142414885364582238223860506937287777148827123405420726061740152931188510914284284271720183063338363090875952099795635937226917276328011327939771892186291931385844589739024313783222592422446191428890618402687007848420166249422266627462584184391397615048244682089804407306697546297855019860897635310088017332319845479349167278224546976185791989226542847547472870185257763920140488885520587078026316670134304308350743086028546021103125317699193825919792548906686812435247849488247720889575687431836479918571301065467504239937077850033526080521412500352587444998738605766275857844309670609303732360049460320429293829234820484681581595413650580652898486428031850164459308149743637178351965150732553997171508015129608506522016602829938174068198880699244945360253501662935237185004427839211151038519844944215860370929948374938104053620273962861458574211380507226240879614601465917692808908850190837126666189976537968628630775080331270261363865321230772149374416582908350025434196915583019280894107911944746368299698682486764638170687571526654288035896505576594131037672765902897959560793813561087842718288002397736805263578849438404358329937095443104878072528055598600567413742018388040136002984798063163543320854912467855173541879556657451109289788299869600039592372517254043929984983875097473061329666229818020257745046447541094757575889682935147051821047625512385137135253896577075452875747226428298795400968021155331379072521288708108339380818315597059489578650920287593663958574580785057529235757857923609809773732396585849240384208396177023290974914054238298313552216971601079817704965762956129591741744597567525367160272569935370597012488743534968578278119756802648106661701530082451314804700787075163764661192639785904305908387695151287121053688784605376891222499624029853552781214956333533204149421768843216903937303487837607376309627179834408889176141030769247880019621658482623975160350371841286272822671132989176024156666425354862504865199803506199112065408655830888201118242866439455898458078928344964919128830016747323462388506194229477107723457518767949358115426251432723161418705578795189885229151092965912338805075513396689349592097743351777899306349402232789313350552272181134544552195100488574569027676822281212679843191393837398725208540701715795928920343895809346498300245992482469620034240925893891600208582881588857436247737678119289879795149436455195133754348051296758618013104434359048209219619853034659629260416871533277913627971063280451795155013767843080912008246828783717318232461903294731297022109486935118568953099420673552521119946246763705122834163626514996512345383276458441954819069987542616486890734328897990632775204213345653400317621103299950077462434766358708414377943860598035693391355422470198305098786538466854013166427005860313454998555865183520782983034619186365618316611753847768872194609421608594829592689814132953151596417112471668894983034080149841207023472890609704138801256801565412839577699493367711459923890596843476250837648980377748917440016936671799573874049182588843463286311903170841839193256463913956304329830557217909265051117369288558705863566703398832383672745740694217215040449603310922000914854659315038699885526368660009421579119792377171195978895358322758516054684157769284540616285924581463196291526512186425960251197802467668866207487287808544079529061863270925528121818020289633481770386851003102988296574075466446617664366309717693198452884804723343578274235505786511270800655881909189388049358617902743561865372741760809615445858661771819120759143624663625779269910928644559295167845548584870772029567618247289109708037549198015957173324675596056070025554678450468030531031689571487941927742011173147425758797901319448919592464526459068648307173693939272413429757997709688551695792747130430650535472924198807243925172697367095012282657153136044830218675723360870879039714678997593792722861128219987970167653930905372029963638642077872942751980474872866101320997057313634846610398649179830958879036996515071021333328043910234973699628326362361283856935026833886866855165330970065632170412413698613671113498222548226162196687816679822030010248441660782520194027037964891861028534480828675034375365286343715482319517783553632861293728976603871074062140272153263445111023177364069601840521581519273063743683281785104655307604718681496861974040533238496332008930487047437586848270994606892085366116787505879172161658995864220694628460962798885066234753249850892527172989206686815335442602421266963618554363251996956167668968071311848819307730326219165611824287828572505423994881923331147111891633042367861405852149792274549730172976927627898114566727771625514902907884633180827934218546752564782141281352587277928458426880385260616596934431454985987527952246478587502545964454195423044944187566211544687756767147119788759491231291587905745718829875368901460403080401789077115556558630695407206799837006654186257234062684666768886623466664085958775772518618462521517395181533425263642521180146346010074069436909306036278023271149647299944579094369768269886115754109913737832866272116310709629426216295298986902638769016026067989129415402278173101494146102048012548606500635102089904857067371573501192808285881170776250833640272497147493067273775978105785545781896993224374372254575299063606160572888224858644852292978948678515811317968215978020763185405606919252140121545371534071499724143505772373887023783748478217827446666906087702383996578243706842996245536985836578524144433375947871779651741503275647478908453407810325961128321706943119454988831625951110502408062666576311238728147714105806821331575516910458314921475022453710798536584426299148251185450256344788270262718768858232900612907748499527079006883696911573947236079793097817863415579696139973558836557684447173473949324891511001101885181217895146508976769784959141429576065890298766996459243000458618224866365380517161445051240827477501610046370086891520670459802389609809584081302029900276216694669656815382364315309298686096956135100720062678376228081786076703462158606184593890328937886744785905247781735034947296455140310946593236305561497794174750376887778018864723698468520134169386439992935296685089981839892716272314262239326593885300405391710266145855838532417863860711476890486726737675999853661583248520602299221410721180528884702827052639282848024730750897436548161199071967872032219859162627614983335090029538748199122909053769648549289039817836799263491152813462218108767522932722004992938971594082939724841457592446925875473461929254990588244378548574372025149921920796640768285348702223423778067533054523753886574385601847806424473138656666107250520066881747700169037399307989400788672176587690815632897534314526564644093896016235641936205418124609895536880064050198105628095608269110621741861726937659770005078366754504544357894586514624241804036949223792799807585243269317527971743303891030272399252139384112715808552589947155517473817912120381193817501132097308092846261322432837704601073986761380565993639333429137803982014396944458714973042458969637568576152258802185329894447888164682927818977899456487397183247616657746956294746619970712081810591218806389504726274053748136942846672260383242561956222501780463628624257737384200018188867803721881888748120760053111681059489480631042976572883908903980075768747083324583388987848964464541876481352441075463091417279557697548628631546022995524608582620220131826720331550273394081673674442072176832993250466837718235773103322992968350503593319607569060396860452626358794469747220561843935378027072574720606479083698274571778330354751911123093178893743016657304784126052004270844292972937232040727373615466097537177738404997762654089225869010954427929506073781935543657295679775114043355423771674122442843384872078643661374422867115462098417308163538057543417549225395689176736218277564779686895419544096284647931272720634183662240658693282710590906250764935662295402625323731706900760696700809129201225571700573295217844789119506484138794690101934927612205568940572570826500659195969875302839248480387246904473821086848357844879488575940529782327857148599416464738850369041673968907465494887654679212008106008311612727327496091617026195357489712289949514216321452986671227642364975785262458770719214648484782613849304514489327525580315077599691864000732891878498280412074165818157126275657403281293434919189097012617732908365213822914619263928686652801397181043600751241712310646303847488999466811767840875379978333063976454300519245385363397664970912013657833867242553305914537085337844524537668411554859376022891689099291525453172705260879270263901136323739903185506832302204019126552754793547141416029688246945949635873368508936059503909682510289347408811992280817941618173117452368409970666583241836274675091748344186329987309051228961408952608495497686225776871057934585429723163427950580723313193531887265464081909906972357594204476248722105496828954142784388694558438768173649417899918976081529784980663307152602010909753926723499592443029557187416966559040329388906732785203428997787220038835646789657408144989956042294512336713214423294905865303909120363775653693506235670235850179774348877003246744243014657256331096285072486779839431002549954548084178819582303275440264019441417335637632535692877981977342592683350883954648966357179575376264999837101621859754212240344416115391133679287163312423228709097044143371724244281508911876936368003394822024461646421058638762069823623463314638365618453936436000106583628807091248214626681804669579001483408291730756424828369872009757363991262254592672527787427896639221807511016376863162975535979406382739384586485832671534344534004316747275286895159337415406923029721017345608186671370667272915551050973133030512388968150734912461749046213227091259645917378168665236655357217505107094926849853777894427250282585796793010517460601856568492162582786117321579686736953700680044751068956006119329863660911415241879540898648341568210135759256811010524573316833951055646951522459725840979149402875470192889080040896890008787938578937373270467026211876026784281448317117317037146325722160290992861704798938891047706890983253120462240630775930034929321868161177421960354883065804248499175479341352423798758914926223441277079876278430747060198103656993623844634870142450219737508575778270088889568393707834673446286001687441932787599380225437177727427674770110521455219345564930359494160758779410155435862205782162122753596240608858529101098526014661783096114984861572376062240509039560588792618699389540784138624451477816958586441063576280190165776788030929615336106720446512114719965794230104325195822144463762192448687799553314230917126880724473895778087809772793851994906366869673723043782373054399492976815970480727439728934134919579990160574775864233841595176398460007307835989560135551178538658187438769186186608891214817467723840429950999616720435814317935459697331630586951907603827584780988020903062934828127691261000023096151999163545877922390058222236521387765239623206910751406489314991923182426347284118141969023377494544742870665036988414072406800233270531189989613444604428178233155608360324408126796080139549256316892656242329940710376546522227419152273140507252740726760534238639358410474303378373447025144509619433338081076113672343798225670479127433941347450128913720100209803616874604205511748787968418047755248915409206399229805639566618309879959805850246805113449482630326526892457157413934097552835795258037706787200795354787926248680855325250137196576247879823282597289901707607221396096431431829767466477926485751205929630707313201473822701177418313166203583767582618781930528658945163746688429926791914347622257765333010351530944513284288141243050833164839242549541899447636078776168256786285343510938225252808148036576401086826873324949955859380945565823242680539304849731885001023443791061881745877223946270804276690188621071217010122805857588024727683902765279315584332776108320233297920139943687676608684755973349221590985559613147727263690520127287673020347592074219010549787150845832199620803170050413745164694097966188001563363630386635082680081494413951942166587651587125736650906866930983062371624518040582758316053061812201160223621130297645696736729699998969237264575956972778339735236256898268942522844680530236661731737040364707837895917903258386857275840320006588579133851225219074444905249069316379142813567339876326692384383949346059161374063804627858455077844408195866374506128980091236558198234347543527959704633574669453871417670353204418356251708893735672842367187100059726731753497826652632341549184407287169634207010493941219121798319991555543386547795196643283040286615771629666465299095928930987587279481969677118079217499708791352551628710491488738105377392582938646809700680289420691197105211117421999657435857970085202487241941455806835185346429445186542547683935730046508564145419589638157719045606648351167030255440280950497913110086295811588625810105829483822956535599783614050768472678145150240592599696422461960764000730789838837187031815083629162213842662668048213361268167157788303385895148044909600939460572720206727575128992222642665410488684196985625428285307139539629713656190554263561652092706708938229801801134842223941798700321607514130197332073279448513407431233492267116272607902606358840209313748161833803929576584531686965421769680024066057804084809658333018083161567841781240760587826491206011933617241360308274930493110730081524627887779064175673255969896329153428988956423534637361537178986337762438802760529666250138919145953338459664784088519084989300135690278252565538212224066099277111203804003554872604440405458447710278228953189522947072733816721393698376859259932108270484153577709184947804257803787293814166953837459162139669591452638748347059061516420885210480494443586645161477213477179407115595156286378021333506455441267018739657544790184812449764510504876564721471328929126741546241986526289041469899819512159454888292544388085099862343210582444753183666985555458532891386257775063574800447598977344494300634788088840694566393022808580943291502996491958777539891640352461071707012634040991383782143852537517226684375419178661262307109877909541481012252845645741517703428515188768708880910586378734702271328984959755217016920360043875207006351544485323547876420994594410395440372920245131440098938433088314588608548927904082423967494046696659951612751299290542367635934262641734525724144788336236100863293065641808490136432805616206772639927817495387231183636261403933749213090669953189187168485619639828364930223565376494903214107832356574953175051868292676692580688585965652846196215430223610632318667618360745197726499665893384914991686365065619812415074908138314894059041896473605052707078006574095915435982992204239756108731031102651465868374991743217220816580266203842621476195065483821734913734238595085661148901316895363442806044320929815451325726072268544092397808318934649791420865998703075318958190743188069011613159693426179593591690439533476722728161378922321395420055736992834471480271037965011287040567424824583420616252371006480902367677966707546907174813924647846351677984956927929814682543932544715451107642176739078348276706821350324352564567956663405319504997901482548089081907594605047768561081409769979327297552131102524139123021182303855794318787503679475162333192646365383857664206534081106998082841068850571437155201018910631253081724807599339901137452062571082873197322234158306131436378672766217994136593457980905193834499205811238023197297429580800309714728807801145857223426890528090965089603165094759721786666743239654489936393028843236613227821992585444426409608349870257366805231080197386154552720123422083796213509892285865308078653676519538374997049114262520986398491354391066581618483459304252085798801378611439445559347430182510528820931421481578842690049094943439574005198221875861225529034060265424601466985470430374200135334471454360792103263034886962868399934956024398874750535714158865240460752322800104209224134188955051202120866670148682562310516092259130685654128789541662304108758428406713698572356888419738892476309197587820128685079482590149108411620294396404871565733436943305276385899607175201931773634663504564145835413245244384712434812580385341967313546440486178074466735397507408026635324780054823074792943812747950433327947319256094658121104041105546668139385790576810459874981639443943402804312731426917230030881377204331374960536804236276911231873377286920938119024792527040811570859517091587135527589384718959463605611439373646636671158113126757042701367847884931024086980923703632371193342679622273766813568856856463722074700064969366563266724755347907281572581983147060776712021403036968926230845141187568009295918718143700364498035913954590693674822912141141742081727972059020508762044255110110509707782781327527344050110878810470318041278979553206205521718778666267624140988607469107282044275090460599402930336483034187522970295320000451755039648578024896488100813891241361672568795862218350537792868946909149786080023116493377214109535184614637117752495952642604206479753270390481107926288565868705761988564208500735296506381014577138085687242235952342962651633788358582143566015715273890409257173989945825323715884706672969688912394047345354019957613417052448827997897088155613302481479163670450698293598985764707668717189203436688795607862155817172258951906977330998756904434784689769482831219864801602830552023280741493799939385639056416440485338052499499923693806422243362508444753568630353214531310754280489747441145367171558455606754102423211200675427236876478638956353305274303978076977635424728482863901921810860263711960947877268556583570166666826196882948112170076267666545170748753799971251256317986647518830815356109387670283518735198668295737171066746584507376068457545785088486928997826960382336901205787309323957294246679535242196585257671222540708358866104561488490737976163794191547502564310563725456344653131160992784352145478058448862346315532437870546804090639899278729173498293810040572571671384419060067394425635285937457044521385332913455316536066144771368289447112211322245997521714072633637436069762375342761164711812448609240327734724383971700776845084822520880142877180569773067109033617127861733609054436613892869558321681855908597143990150041488511241259260032241780636347445301860226660681236734822183937925077738113363814354114252418957011124620229350814999000532249389012948935830702751695744602657415141122163819191525388363844474577709619266311422686672492138623035632844698976322936589181356630046657431047200877881177712041888557715132505666187566906965287327591966970746978331395494062597622828125874704734770598985239449546141803274128223758444788200992262009453588720891222074903221397808777146485705917640694829107086633467611509942615551400911562725397135870740813597759078216745559064908812925471144012184994067960031975891129722720077295344562117316073691292489931216984488696889214237553504850943377338860590546328228777491990690808872435240694035796582486694561551583849777018292779321289716444669427022674223419359666465759389177694864181932638534650066392585530853739520727903181385329052038424297983434213170628667380395953583516848951061206329871755404128177901082883852994247650999614321390771287111876713073258196878324937933195134857139293667733125561268595259169329442129279110589064361549619129276626247086058706074262385002645189920273753450146024861882685737230454101648862946465170452967744709323808595175013265664972244018902956039149984612566275964814083806705470543525226634644507055553373037142647748513714325946056403267921638911124355593666646338413196193785470148473304007192498400072065215644246534664233415824191031759230764301605656316038946852034226896276648613121781333965469191734519292028538774275082657525164490206661594886968224820674057111113518540868595730651114768717054636416743723526129625258452027019949894078562291486963887288123481786479433467333724604441441088339581143453279777756742076388178655419320637485948325840222775464660409889306456477455253027597966766228466573093831091341705383330666735076052101543084111471851179472134752314415486851587876060944403157477476726035911549105710566936614248336343837921098716937259757329049454933654672664935458414817778789946137525610715758750950043106759422970583299880706151879012934439754381199933030999118213606957165082551092779433294007842308659358849117733981823730987624213585678886115885011176025039129239340263120237827596013274217511229533899351047171000286297402059278722250341289190829117666059049102896351100638613648823908578301000888000002436261060279453624854443072076236107200234188969063751315320141192944868735951450734984972341293236623453800377238510780774303009544135836400281012499189273667004155535552961617890236038761875129576471446732427150140028243245581212823747207383964687743479626911393681404962503876673356554739654120728570640520969597361640915500986816966755278624937276644574904038738971118104403309371853594645059682609642820352266224055348384131327923743528700773806016939140401855473564616116549145617280846176003787567142468657155240136364399882613898876917127537913149980522076792357691285511654105432493497039334599891855185676036067418495437487265926267194716539084036180330660557910687667392911569629062135853404556106696034322060996689092689378653678845818148274527756183843046797742460305699338490766376817991421413821190051574035129788778781548459166292197617736240780236435406750699632336664030988036309977736768800782584240401527782061754069290265038580394343521758897191462014657327491558115997229609050906751299150537136941421944324277500665601431077994864843550907995696063696284411952366338649889283883694071673243692720932970700203114385578811873834003402305700106032788036282345226413880773778346871973366351608546867461216272078697051224682863287700183582373411170963866088361679359521920702676697348036315105030401171338804525453771243865338566950183101800085251719601674369853213394965147276402904923772752608356514372664118944531288628594815950929425402307397310216553510119806089454015880032492996693938531821155413486238020139547633053802587371909789149592962650484754541780237467545617489889587954245797205137847821193549452318559603074475347177576358582259087007797311816803322237379833559808048857874059637230472696046368328680947967608622913227249833969005596994981609558241436040217965559789336158823767051255391316550961077852381094714354905758928406747389849578759712259285243453101280923120587693668203853763291079717840032498307165573643615350111705661688502066168856427384216791112016121010585641968844647962215348053165458646194531986444831760032408132892062732870336433247706244448797991240430709655935389656032453353733636733287608616319009194190210947475869649771436986262306600420512361828808043199470811964388386730655194459154762760594087734958134030203457778382478903260919879716940254375170001046488792884954599615842408146811629980053849021993910996784058228426410025138251682607156120671532933785073677181811960962215710535036997182628811381325817783426003965639820806521664137595755890642330910666827470365888420308748037825553164677570039084222706032552487085344768051456203154007704332010553729860298683213838811050471185490458392532318059100578253010784125045161144352884011784846267942733588118531957478585784338253840341743354537237662494032751828168324129168416827188885648502772956181029616710491117915461366711154576068100005801126165673047573123709738934309896019885164592795897472083157951819116797202162010145161771294094357142176536290245915979322066394473555257532597410052532132201420685263141204572599640178695302478533137653015938408929739439034629422365367709766734156892355048464233861012662493856407801018572983475152914163198416026012096468769844466485102446983984314844687594882833302752217748875946876751258369240565208503213416908313725246330410289800083489029898525632684223631697524622434442312556541107379878029087486807593107864949956275593274614165427441552375070111174738903076594406211711739360854474490398043181050448994224246145672066887441771671159094598570229949224530333827128380272716253739007395319058441079844068973174996439057905023069316149994329623161177184286645778372713650024641489119791436375779545210652580251209333911905008712132359310398592231284810846747287146759638324911191828023541571313557883632857920473032773482693123336155034390503763101488188462989561808032675550573518918102095916756692913219511832402012440120014979077982182815987244129201609062969169338617139689231000039364660643654596912688740593793454494354667418828572636821049530859035503292693693318317930929838040484448235685509905093396949156888762819937899793278164163815359403334584985081973058982374715631325270178532112227250220973722628931290943453638905770498977448559563251185442270859728627557386089302944553985020582896271458231471397615173593249744294804245008802012244378467047466071682691432127479718272307829226475807900464059980291045887638324479812782607160907720663232234426765332335903718831599304790596151787816341966412286598020398656825958450384078435073390562578279703019372047334258772281354682759223792789702200224209042806268772681224462548801300816089837090717784719558084979629208233703774402940018500070524072251312112538250088253315508496049204249808647844144876706204832879593696306001284758509727683978182940059014038036702555040392512403326821802210107126256966770157914703998045138292988508641121425625811714964739324382095872217294772814588589721728677731590936229985155024251251336840488582204705641524937436311762981794876958477673251698842971060674818917423606081045811054010659986838092042658716045144663055569618779656644186354741160894344642159996655508010926711546157234399892935029944237808883539065899095158905787877361289339470679858079694329503859470498305337861477584469492500676932632276594653903858007455666322899566744799593088744394474227646426309160127892494626452238825076830749548579828647038472644997233210868908418236274614839585628504424454746017423182604560234004982807151520617325690498038559734845273995788780296986855325484272154400294790536475702995314559514627189081580378234776610066487639843891513840737259475459981861356405701481204571101776424436544312281355352107443625438403022438018993969785275900760098504197715353806588580715209443857661502762263309247479402219557741355017273832707702223970783085331095803315262387912173074475087997129048260132729885748500549894100935865788657726877866730559980655740192053397944817597084753763426652704179612496838570740820832432177784629960840063920908503663726216746732005270974903763286935887102393083854840851459093971877321505008015213756824579160548764216160143283115090884812211099616920937903327577348486294503852327516001091288080435574531677321468021339106910801461483824361755186024458284593535594394489134681293493646197607495092825741582257865334096712268611346849034090118802228170767180977141964208553200675401959925202290641320200740986583949102518469887952299490584350429349095955634391775188264417499216013350706130685533600372027915950211876702360891125130780405795387059258112878608718253858318434584209112106131467656799903888915268119109539153288413337164610685452991992124077856472063814432750681263771721886449592660725506592852087196083595269914647843691091973113838808802843569263900628637647740391094133233185746124435529707006564937581009547278017070025521489351220720548124003505749232631346527920849305377425899390524690567638080585104616082681969205598588258252229721719563641988534348940019995952408365771926102522564954728782378149737180207568991665440368063800770269249885197792463463086052598679632388567256464217008828465327635230412434862001499846699769295683697835335142752015619285199985918559201737557063838702198475505994310607591013184569223434062096768764746349135970185331794384329422108923231293335780091578901190093290148575093377669277848467792424205300629592619835816947637942042426570989370719945817228067807769476757493868999941237070786975899963461317835495120058014972034990715324465989491957586530914721077732086887947469674726959708705223916812678344208502492129948176647285559133807484413125382130117147392895928437222304476152566868109356909250513593925047498274040274644598075292928700836835060304313791791933380487680388019278560562978736716561955533679195117725440253164800672560816574027649430242215842017196045526240075358478734289347306185160234412360450832855179273219256022590352239801670266563098296071469905061154192059827884373851552629335198237433773319415220257189711127868683118140487026828888180111182277329181365977641695359988637300382173189756935439233012942463048881871329145872171276777522180106557254728180301089358641530111905741049312731906033601165368024301502199121379836989650872575694717731604175104604555009283121709400954301066992491875948084811165833716851455417440400702516284738290403033422554276463716302158618218549793262267018307726334869490679946999054173596432416486650797795121127771052476775095960382214793537233930168075843109161483048917712422812352469401939587041684414966535798434566409792540811203891253138755297816600586667497923214116744192938800170139328152013243917476085424236221115849039205792043065744057793732448397838222929498896733003343348697913297746801735131451154832288790974538509237317624670973221268626512382196049521061626484778211625152367391000923060723092945301912903123610533132003548312305022359694620269510623711688485701391480230933674026138077469643388563794107889092916631309753609335430096743306173964269256271244463578670199015580344483203978636254551830981845075790834793038664976058720047215148595725353654920718283047288568474730295970470311176655460303756631567803000505638582462516957655062135310151529021546704174991764565382839813520142048269775208501417981902120956694497096349212408909054237200523555404120070207425523221326503686047362823154540845222766815444864912967582116836659326338671620163209340487536954816415621721571740788178638283458602784621153131832033169686523932125553135427071904353161383651702645930297290126324842532728600872775517255824196241535903060605468925565074134868711979601570584969917702543043487720994089134553697562648569130054232874179786642553095475589601096064893476245771416607565901596461967428987869938055351569414883555467727287003144978149086840023211209234419763418278360305868525731346915937505366936689806185331042918604418189921081817761788640905322144803623391526345784065770808550150445771866146727217759598458354969038600493301720097280106095353327967703685846206480083693367510248793814825276376314327490293475043671695640884400696442461865912429393364539816885341514778231483349266735516986960239355692980863756775889934420100310973462593863847713097787718992058446431505404897335497012347572490553976563626789052217784189502094689482027501542504272018607788686323022248106518424934834728702103958383101931421647677862212398918049993848317653818837837424254101043712393723740337148025293191909849850021402612876078313813145185508396808743582312592842270353072458339170040214502829386365692179822715921688420059378477321873954528503188651696427738555194051669191501769753581200822764185465666603049572897222363059551026033825519268951859900200419483105997712540050550994581995248705678543507069947461742208661246690642664571850296844659840647367319138334540810522376830792977140529977363693133672313885902071364501854272689796174400806431907547316581834647539320977981522509008242662002160163946065452278884380028092011942094032640019066653757892555297973705108827949722228250107175791928426667366145721945232989358200695800507165300724629023786568507862817140481943226288150763434931765148732792033388689758272989799749425987743087247114778237316841514809328277155206531617516534344658556161451761135194014456517278385001811856730929129895022661226277969439944634499805889116676581836433086945624758409494261496271494942049512283769580807780165155296828317581367959762082426540648983813257416213780532944159413685310726566787290571179970284283053963052022820185137997737765626199692352073908246630270646763782960907458415833297056723230879873884556559049716639358188161294668676854253994919031862366334394450930290733026975384433651078525780684377101367935801814358098037503469360902524804051895607769233982525762105702657454656321338290171435424914611009010285213055404419351335408076490430714676947741473825732361318909073785295474243037458385117080922788078974952611308783335303510868458537090929412786295296116806468660646325959668015816636052502659834156482495278109542545402874547864110855156413055475015337258175289232709121957546195056960512875102489243986822251006351625934627203725877199389204468946025865088412304175341541150790623848861640359851603400556120143036977370627320472684346250710719979970420842114593093494658265476088260846944623337278456068420552688252989467833538504107647273998119084309316337489364023957994234287620410690676018648053107284988237633271419545866665281425461579999359934134280931035404190556019383529686983867143083023134556456505332312221417409234133999690781505298516171939224018387558200415225522517096708451018623994214682648774083871417540318060815521409952738476500495960942631971503655765914491115207133677079037850599471527960643818226218358905665015778059049364650903654899746766689312033292096876409005426960502008088271845011598290570772446095836260649669126843694084172895545263152374769039291289181359277130884570499796607480695557616930330475617838059977565798710391365688734030706349639936951252773887691460960684499083537432577937411831402883104611156557290591632485155821734046142410522422509249259341961681153053084403196231973447539648100220000843561287757027204909937256163639925464297002989371262579080921371202440510321399269486032093343219665547849906892129853943977861758820316357757827929698291545970046411558374475758263448753832516987124290608672633087415757381492308886437078346462103950834375149803463313948521423592655234970990396748453748884620777118626319653846609684290789664492070325382518833166429914094041112147006978939707778014241542664176083197700320349939531243524169585513662811512454709685442899459354998477534609710407233750497147189676641209941814161437014046805232457391032261195970818185427351830358727852981350136249769991737015390201206586727286024640300834902067522858711468318121310970121109593253211278996557399091103459751412303066564301915721883921788379150505055151999585844971790466024184977305132884889939442904628315981119239025962058478144966897629897501820899673720730320590167091915653665699282258779919906715261224248194613610209317599591599684563262140222140615127721456471219190016765002179670273886348350491552610439076274061466380683906959845331609191412406428064985949705664722501536682232412350167575319231262909008787820511314910118004245919046226674229998427656507184484592619046735500784758459414456996904439082807542103163679570468468374833477128047355342619476055967050828696212353147967576888960739273617501720607627733959714962598895094063108689291782735577800957009046915026997666802394804736116775832811785151628375337187673874689366215300094195260274131845430226642581642381670897605400866090914796945073557676772412203782919984304092121195145609631675644350506607979604403917201043379277027250611240051561529627691291970198316563454291614729302947575922817750715119443413074008040617200802115873758046637194574225550835495795061245971042625748467899050149247292755229985409795086677867415166564693416080928225600350481270839303122495570871839625054178502854569530542688061236316642311112652716337320854119747066781901848888440343774105055497907289608419013991554425552128065020019706281132001119251092016565126876599307262590396954113386095226473034876410430747362413057566685695715697143357838917057512778803145424991977573751231820780919790190794205423633832974462343807306127492348375382219105192854109875785763153917007821652811838774631138233701888324995885900502385937102472131693418472414153971742552922802218264767247930552350286803997219400831037061730447424251125713598270569258079420953645862684349091859699730493667807196199157445829068363473339284572638365052114926087578893967347584281146918213567956666737348232597369727702019666801013461047234882613069763910593092222655324404119636713491731021630083323871235665593138062787452012290667862250148922844062945516323772703385090611895176867277817592750501501715668831863240466162458731924230319976614044192671281125011928999960268294332311228867323245117803304397004988004096991929109519183015443779848856041488644410874824491338984265047856138758829877030054184209595609008585379732256762986692260547431960941480832532230565881348017072825897204499228257462140592947511661958914718261589335388433205126875834226391460318205233779080656023106136444707812806689165265920758875368782686876741646530790522100727351142542360761340470363805250471735991880599439914128781706546904544368402140871608208249119887387136102269508083192051209788222671853624860137945975844736340347376357850701413859793006337907444638730928057762993629398460647726736938967825943186576293883063190710410302502594193161970737342939664736243501811184357023979128091297152806872736260334127004098770572164254083110388554044921004069039269909688362532258247665922816177048894467188776323052606587897516836796845889836806150562608154544180833225247912524857513710790357987825370885378380824645506567717457138219368803132004883883157146550832134324392250605365152462251067184368637965363627772624813420350522869957105285311694977701681358249872396581190510888116392363598882917751574312475872368977731470794738622518661861191047550297538445466224561941466946389591166439400962960233085863922168593778084703767823992892958415488329844738558059459353203148425661779469383860690695505062159671606844557852086612743814687204432979937717632471141739995533312965450589014423029834613341801579267985180078389897348731103623448639114393165888477367663850904308009652634680317118945174970329727600489744810601848887415234116645651146896871910750364597852651137597496621140268860390314254259110918705503866881396020248027971974735572099757600628223712532986153895226113779469364522780487648588396613332164776867986355341953887487073929413229166175158352584257873353124512854500415516113208436947500546186305119103889731798978291487761854431815734106720425936597764558704340337278866848390025127758171508793695446686654112192117536355071603471749994456219098970463197853804586266985861302123300710977442851781907716162572099406334628097408237249307915296737957190947422554942429144502873862235873032666295668485540016766770295751856596154501341106332886517424656374038530525780926997678664957711698574821406721985370047668244938820811542107226305185882274900858854753422000792576205240968290284171269823404164044254718220770281475531202436935897266729044044412385753512900230563724857727746350195851760755716715011031455998264783639270704756242901796612916938143633669626106675204809950440759025103744385723305554253909852533366000460181766981509987238336810001697023049381462749486005228874646091985376487620753391952823688496577647780891060138520189448221640216170383141267402508161215603716127050753410389512140803075430146645968647713462539502144412295660648064302565589798243119350850744616225314501765041048091032388400205807205799310090296585976269021703172261383168834887396122658698142547715519049482358424684236738235272690670511382851977390798998104158340143120713110450482498321602826604141962471533030235095874327112351175898751337842332456279425047446880837995861020446169110939984222451896305318492542745727054201330940453044208641491792242743081758133627012993517225380335665230694414186666151200254505456684963952512975319067492999513638218913395782317637929220672472667028482433019737384513731211480652690813967196931922098065091592810238574325023247429371009575484721749128089956189790257015924147768313388414275983309416969842780065478135857761034316105415184129338204446192734132546982054969943913568757739967989305920869122843963189811386374990399769041700336484681966231811900991574956511433891010988316624069079703372508003460337501697490289188051348269156276324965629287828791488099245180782426172817827269944749605158365785366384221204507924588986129087033400456847681312568611893483418142290002100022949969649836894325769377424052220847390330609195827961360091714505655691358998842107691860514333923247511885710537057615015752926735743698398047642248983600264122225846755727298112650130967116288768715216287861471867964806146904381542038264604214258732858445081065505690269777760201618208812614569176027667870968251631528153295704342538460859551240576186769095176564668864344255362625737196405645943528074513869449928156312630464523968731193891954064078794848187856799599946637875386088743124801497907883174861282148139073761008980247072487591592283975752789056351753238481198004006467198516896056639719503908157026367070939459753600847668609598807630985754848904699617199412335227901220832668797248140054785238160765177491408772908769222205617150116055680617184125155533607146584340685798380979311670623397252271130497308004735527244118778039998420409604249666560390634752382395263121655201374034761619072629709335524429904941888180644470411023692143501756311285753421043415733464170498541340946217708860154968171051477840898056117804383886195398165261170165232697308513261089423608821014197716448720350353431661141530357174702498454081612288881819528100654790278002022900930681080629555531389419554372445168709904581256236799489873693271802045533207851661254112852216107669678943221979715242219713648308068215876451356952931734517109170354748805646463587262664494467199773994427818361429908027836462606396050168345310176990858852618353524652003679604265358290216990206571369927349328412783216262712867710638139169870829942315436529545841853734039967528142401704165907593832485546011980891443079345773065436642606925530322186766515038382685172573547047507893740047707825184620706426297647898843935316988751083902380502776234431000441225144384803182110579680525471180113013217176807288264529397729451889085567038632958942009011580564254548332926474300887246255626856950656739401865714868851303938245803823124294093263598627306603157160722753171105288273997873799473403463792557769723918497357262686407224722669777440468920036525371101514168546140221480131022604970762966754788283813295879215281883115871814447072926336390149658445357232507600508303646922686091611502715804240787707735476584782480146203323913451686225135650674505876281342345622274924709586721832083646267611579418197603025582589528171449385973829541294897780806548302553830162459532649715630673864938131828509646859903802852504839283981461860425312075038386454826474170226607743763826948060107727722274308280991658769943603928053264505370303946701123466808354442610570930698573428158665137354721056860246914490016582698191441361772769087889445463073048949962217504920215773863194133383574876751155254136820013658733921308425213339038009892782660945149152460460383822743632410451754557634889506783919591593975264970082478064094375660293392534323055893291683690388876623745384300132352452676752921273121356471942353245808131116875784259702965643209242938718704502223420126856376305559213591241017213572040678979416128666262460091916048904284085721545455848193359130181530648190102966502638840037060780659085248378086499771076103449051735678538900071005680640288978416155774084521304140500351056416779887145893101316793758033556058622467978553323298378472896130348702494517547772022772743450501214600381638427267969259386761400671145039748388951506948015066293156365868465870797192572052352966118244089671074537611263550289949710878456805275754657748346356765755120083469526971082411102391256455862286831174258448220669914501917082391460268504393894912925826694113696333429930512001833441677145148139922826528852639063213868126430320485904052865419289703974805859040197556383256868779480438638667432812110077296684379170105721375849508080971225040303399391109000160381318449446069369683147311124190869168089851194640870218897278824210681161771284945070920416957846114037265085385111642660987490047803890437859599696375508016004901469617154712572920554040217842323314009265269232169561967575324211391933100086972160960025827004224819654969632258715031544521555087610394675295513887974776503336500773596077966810552452433419293177735025187649931739015138415181200095997606466028135126489606222665480789459864347543286446667318043021569878217192905085422844846501783365347756635642137649340053996597631509264461059612961731236365044253298471605873456678121239668888320711441235384086735098442154211311975900550554603461913289246605111037206864823502168708170349976934072142690436976026160869296452419036207153419818400699431358729089874563626232455077924175885204336176331489382417981341868273374581275906223005401380381666058182286554119927402557543973882453331106848504222310879509390533527181525211704780171847797874930566854415441548822033846660141398045697756873381215685744619751128675198676728016169644666408056337317151571437414216578219187874679050211823828049508074825947448668737477956761061530529888041145553905645091691438857045053389659052883880391320528142433315522088367720223437918499729854602451468112072524935943951363669822894855286529722368465960442531674764674833731905916558748547075661337189177621922250778523122986647543878663508557114487793054870539662688373016011734141459624452293365648959678918498918790378276488581028867148837595583745287171935868124145002406648740723178021231554581793146378973913496371045812886526108207880147282680777103771424967613127303803538055312571891024617199150064077948939853821548028775755269621721258141025513647577613384606880982840143592462824362907875516360201832232844658118608961895732891501351810158157669410520342094752324392056122040955247032886462683977377764383311096353646554488298263124332340902142344476827769850617989359129442917780026860867125762457002980156528454073785025808478689898656364999575304072753370456705205691364510367694567828954304415713026654701752847915452908785150479336110300732738065101296570690232367146933011823837801309068019355898592895001919034408696780234239625231341526740082961606605999865451387546829922012988512561891354581709802739205853456513079768376148391436519987090674725960304059718723458022929777396376059171400293901078128378830472374203243505091811018007848886507025471532444541512621337123541082222042562936376021211684381785973334801481620904664898620604049754913346538562278883472305339121767720622341893202673378807650384705921792835020406624399824405649841243524443422072220549241313033343013870238826353477452275257363996398464548364511864240124747777579997165578822296632517710603616965040187692179552631551138972016904963904039514308735133946857235763757403856769603932450474286447567403251035364796895472948206295586162115828947701775329583378791912504965373908374988252765360838101454751892957524756017570375867211616126582895670854255210478616341990492744655201075743838879816832748428971857425063727264022287849389318691842672947521226247649165009675982784421088834605891117941002007211570246557614881410643639188137834491854535262586224265958400463023829549927538503578634982935975923628445595425419361905350520587896470715182712386269735307319995295626983428298268653061857078209011280818519353476126349357574468632834615133563509563991603728419929069486546786222710238679019578731668810096030660930052453489756046025114594210250987555390049574520765607087928177960557213142600457192415575173470514519593374925125019816492080421741438401237852189794713311579749225702139579757021533629741150281518860221245308597312003775078020235607577786060420733578479114703391184849786727789291905203692119363926562521105877769817708743233582294281966579639252209179678878159220842029222249242504851964729831573317975149203698620788218501876105909736174594959682820554999143626526915591422563817730590799820343277380709330404455771027097975000875718063848565313036216381636443234670048428929307718034388922079913015481739306818375075288219857182327958575905834773452172990442735465687415889804756636106875387355821771005609118512768309199325563184883673420398733439008753705687795471540526055196563490553536706992538130835481751327172876844712700110136359955310340798452990535187343970928922526164095365491136456209402016339196639161262994236665663937658825389180366839860892579994047898375532143475005787562678152874223118729794808891196624904749700584058902235304296212951141849376690579246668117175801173967437207600446280952873443357794556498046111745332407178869673210287288463191056868661731486285268433687859505355538212451541035413741820328255863745439512555331210408899958980201631811348100614103873255297369675234447305382496935757721728748776290149080930545715853607513672778074072394353530965935335304762208678791449439411327025642244225255551099836493656831529152262088881080612303564137115362144009349072930642456992766259115999572182418581598487393956890825463432984879491844200081885582527537842296726810521873217676831656486574302434697274128327122728741834108415937038956775669784012598718722945113238444281587687183756454809711942929011566599261863330256718888359216571232349670625067575751203534596744776497349062400172620985714018092106998623569059112686304742177864533344408988031324117020117862975918500115134137979628238570432265038270931492351599798186277877762611378968292672688135265756030689682263563480769798174963663344453284465014726933532898087411142262703192648838201045628428841253290789943675307604135222702291451915724778259746726451793863268603237028018952052993001740974252603530090835772208286945666820523733812733990098776385016726541529968659031461915364664225540365750731985797830505618202913772708379208857137043250827182674671490364498798701959191265388083470871889034483836817094563327213786586960814899272746482228328299592151182393273395675502200582794260903864041378850966049486896454422314697744167064433977240806961275325454210721607844477777461100528234286629974085094771352965620117525958079934820725965133401526211553011180631715257613766600976754265699960210094133325765777275175778726274741624429633520374754736231818461226173705858289067438128513974479561300798881938969419436209276107589552597124568486435293233899520212323712713988877394639078987106214863994977536436573451640651112187378812508049612585452350612237715686466582144485920256274680826700275542986019277339245002096283880522983248559629404561516620603036446551234536905711610582877634443686283389691984924782686598440328525078971999473984155277505525970455071183199735399918987573158713994362539515094619599173994736104635214350071086552392425307181398957262612191545966655036658690440582165897896080647650421150664581239729804146889386385597130340220301207480116538895136573611784553329772496857999953374749667913900372463452554467755198670182890421816331192508055843622425313231007175147677616707543487975268468030946365874002799173360773668245402504762674642743139532321905267690620520463599458331302508612559736013089848829133805617858139614611923784519750043786912156291841918972926822022157328530042022785257512539660503144636946825160560871197540788899705423061723585976960665269790843267625767238237876454294003009567587998802466880973017190825596768552877030241607353088804515916007164537910541156626240201339537089524057293966620566699141378497127082979839620844365084742015492850639602307241052057664608304784781194402056293598974396790827344879664476823844637900406091784482034203641229742696829819035210532929934379674523961568279018134493886910444864645155860670763708552547483942528135785909148239532251547671389794100721975664600560355043306041552033542297872386002444434362363686783485773984544883291062638512632868983777784559805090104868678999969033753131207073384480383703668204061341520886887153273581419102522711546769655740762723088629607731687761016713229059767757763516121361613523081978522463762733770046305615339425985635386775267768860920408558361020796602941005034223283813806368501992877061118177609983713909816952807178594220910461718772437726566226043376812662927203124498047073945397974242478582610807161185244984625129843952301756966896722298126157527685716417269753425738562589142322750666145147569672392422499425575010101652963829202370404130782682348743694480823100579592844825283352553476236414427860719429810272260838975378557085569813224055435522506967193735709293020710506765936831437868909334712004194031071457452447791137421520251757543301967138063597260414565969946758463266267379345258523257726755902201994044929272369756146907761532725842141469755372564692527213255376619045822811670616164369063755238736802710523715075325510430240132139445419067366633738167136914453834048389554145066326461300948977393949511281342271875280353011371658703656855363027580778477791592670150258096065484648353557542180868381002369903679107383913505166007136240524282368992966768824032961600647395595977560444033713086669019907492614080684821692716227107667208617598602759675282986165387714296858796096951741787883598878185476967528835692183943945185799083028814060771484888925852651426252953878433392936650124719890818969400551836966881857773412434681077803653155033342344229202580219875820111402530886974352855952341340524359235480921413292198287644515995321273216405329867718483443478553139084083545500866088780427457600636254662289717597256761461104151337208491547027567025758517473585796162427528598247186808217647980944722565236917040760760165666107877389003963329669079172971977781847182587320589920057046734203901251744719272024651171840153450687748648171590645244418690078462271665621381502242681021381421260034361286604231778714636583387985005645664961962722033547517150809891952806459932499696232251335731950078297770898141410621326066787509511720031258155221028632396122948807623334754954673717986855613455816518745113333227281618443283699881823680402208499828713766018432445162387075385826791406607029854311107228587174518056895767697058329107445408307050147035960528726962757591852053179466384341974980589731692804495249321571031122042084108533100645485147889260358518948785579633405932789531542499517231284373107750732214013843877872074644739847050253415888038891083037644847055506944261355572027163658383624311222810978643874433772349955311940191666749551866335739863953413196294842270424950608689590942015477757458415243745034789157462659604094272678577939636511722896503639036431171817492274025571085195676604912018054095744767999842422596355872427823065323589036316405030518738626568660027011085412602671392397847143129895825979773058791632683336467919308800371322103397142441230106622003633653808352229871877460142118163801738970966649747758930949192558301668582600089821134156062244754409321742564533168063835798529628852942006318216622136414692000928806770122673158227997677458771691830156849939310812011973792324087027372238084229239714340659626744860219346417888907378961615880174202097418509534853320448001963563884648040645066623854235958461869093730016105897229511928391117846466479151296594687870830581381705622199417867392507091781960187308531958396017821077741607575402763795747955578996958149136527669189935750446591016137732052427196625101948803444805730002795577983859664933589711501782823957361511049970577180220446030115559745417032707966973112714972195955514650484674627721132812534331617524437728643332370867168544340718574558770346200787865862801835246132235804667035529950432194499238012026690742396182929911811863713775451578703842586748261882214998501299290676646661451494083431551002592030638553669174279905642369794376232884661283380690533286812105734145620583085787006448595162934997412896427552565539688095216056161697789189136603927757580793345504365983091053653910148079398505579074594802197467844460873257135446551757150857088578011196471094732082003843427484865975998613250279072503040866603548906624947330244867030512550753595314270112865182403288681712510328896658987512834754782558244730187417974905219408582333431595793733808564074060803717752895437797175964241329214607084016210651203521614475658707825522210821279220664987520047967983141435456526314712519414348038359028716586371959478838283395754098491449512294509389860475052934844392093592634876013656658442337739216806247946679564126469849909109446702405497322122644846517676972410337671688583439736196551652556557205305797921471833705312964829954678795546674454587539881105748735828174293540864134557698991940940386244688056129072228077315162268612638451904434014986855939067041591373999112389356872698324122782471053169899731955379560468000850814031842731007705666928055138246365923208347769508314534743249899392153688325109287993592560367311377387179425061300746754202021032540214139038781627841611059336982890251655131996154385674463866921047573670712824085461198479287540939823936106273106037594631467633100904175896699093965504697048293728224247872382732379428901168162092167574380639338340439546584487846876269328187737155642525406411709212026959833165226559241146555343273051842881637782228717147999009673080320058554825749415806904470952720730455406098802760982080781636249327954875143427153082879310017248565465531451500362374809651592052336566582857340644259972777639510861670767144103768919972010252954693093428988027351157938492742730843850943867202524783795427955631506454724881368172982984552296360644413402084632943700712419732154487911349066451106894032508939722526591858208714472647454002174737685141688266762379202414342494931682634676315433665716790116746333063616410419790868234052221203870861897653606744032134584703270245727086920624538156304467081564629319612582995373834657385332952551260120159560398897207032606107560497926733757379887791077835204665885865003860876028757817892213888998815517342283837863980069186756411439065383157391714804469009631640918987522210674976024969401558074856151489326749558969224440755455889867587262171734484501049801184887322983901791972324056007199374070889443638339368054006254256158811782907127675190776082907326648174233883245461108194466284236033545914091660587292868800571506396701971992345987702363431920764443447853785590104375306232706946002733829351082929443239881452578349490494175573248337323956061601086787243758925993085310442612967678973080227302322018390063909176985977964452119940360851551105834670131961259548410017116466635595075591858951635584667699892984371372483610632566026226621979278704848524387090679841468508341987459689982059622417599216089386965360096741435034189470165134097606377038002531474474880519790267849347924783554290104534480675676654201964003449560997559654321256736764225798722995813313550636378339102419860174563249747334159148629257126075826951689975221448775136768785055891742548642406461452026106298559963753236430913361773505439802988456036020664885784165569456351000320094836612989640031232550386702243339779637857429684244656657509155754196539633666545042680146395893369714615924679201633977559840827309457275390071119147294132271188467777838864229034338937454030691355525194829451416110071449679578971243717388140824451743704351251850878293291793145014623085148639291013715284844918324258862368201716979237341130548737744564082156947291054765974056329333450223831542516856540317021503495800846952215942122141972650114567175390513780022966797712211892334408048171961664157689416132148915464325642896462081376673890479317461675994683324225700114888849561377625221104995102132662535661998003181363419316189493244317835079905823873258563729005976017165814899059466532436542566770935003289454034903017603080496136381227927838800210200490227948131462652000192789203200314184449287550827033859472940291401630907722197283397155974517040902377727982503720563792115889967276841121978182713589075126106922311791823476230139547926582440384015960630711076641516619526980631510780286613862400768446866523067491597384007600809571688116984152674183670158318207561218167230842391278097882090103148782887535303785228279640911978058333165419014569539784644589939893409240004212850087481780742523485018698097715241497113057993054206306635474904140913480418717556634443077215707637198198217983776592949711766711739980301794989328675826733854791540311402242067137149595192025059898223080553819820357525823106404609140683617486603923042297040875460297816492199114964936910208522118816833333038044302851327691131569744735960227099001507486122103483128296169116452349696242591374516070702947891475220005526622978974561622122114861101484407113174082592613277853857112951204193986360164462942102911600892103221033366889544917485485349686129643699378637801403173517405101319016790468719022542575155556693673423942308217050407183103895533800406701314445153034891898172775740217008766156497506110408748657601607872459887335780807344381157763506599726735221229343486897776623628590530537529473081565109695683221716812759795687610685753083848547306177042597111576211073543941622096586515568157790390915059376920274486084334060791240688756273619607102230960738565969065971645406030431115305569103116593612450603528598922753733338242721090335137437217733688534439410759811589504730656310833009346988539153720719585444492308230007943961875576858048065232880552178845851593481910026023829683034678520493492224424297981575561875680779307264459574162295448801241164199496373191581290072032907965076399316636970800206712277844845649262972585520898899745267870487036087593809024205807252355636686311630573881312232522859816027572430714764111992394157872729253132032109499498881282863740327464171144926668173106443693871793053309385564152026500061144633205492931675756173229056562244684697601228566453352902577883855478774871473066051720433355034392630033754655020772790696762700400617260709006355355572429786453463665577789626544855676421494705584926324899438920801157795212730837420340213092855308145107038183268359622790692006443945716569360654393124870656861750141216114404182124494283559811783723004249338396837729549571586665290727952042055038750303727235997273037659009244039638360318976910301585367701249351413018652812923220267458007769905618910848925598825577894228882049688983811796799720076912358595808655055586400447467182425928414136458856420165459508924139924139733069884521868181429999000907032727902097211693855137557366989509447933753508166303402937413858252955603389656079321706293431720518084895642171475094817312920078668079563137039010246548576439524654345600164809252884551114409253949274007969005610410870591976421484754716972227016149169527157442553690771700678597765235965535979853115035499420775842917289310541916405305068959880198866720374671226816383690308470639467959901724971887315039840051684479605960657319525047350682482193852062447344921976803068539319720066728164629437190070026145466293851777120404113397476372431518117768334069268763750262421072852131471708257652172290116232177623917535377619776563069589741704473691601828134135680570050291370514616487384649279155826046262992758850499602135568107795940084300835608621525153969326279506772894978531466961279655707562767427726919013642929924019749837749710502177373991666029737879993474381742700395256578669952922188725118660890718252083056355773775131906366697688168510447411710239591640651120098551776144551934136067653250766152283535645565080569007900964624555034292657223874479941605953784111443049964076442174480817441591185434810449991564901030463244240692357392920684275021882260154748529725683992848912725572658002460998894297579604798784221371200079153805240287200951275849196601454001428956002598590665596100934609605503017566678149496341080625982341727013928032721902777141983355721298213798590748867323270433988794391638475905413059402860085502699016769183755519263513937759791564527529636799601165288461536081098033464712173900126524050162326654972286018548592206985054887214816345530308453324126056331684732274752395035131023475429972345700582248813691466520496914291942503230272766457307000988841125021755616127979716293151143718514280665731716350155280838911727371395510095422743351095105610179305017466415232158785236918402167164157539251646166070585185128228903742478269352480613965453675808269585503518774667365436848729447721877781702623122338208921411113487764232364166013932355626301692945913939439007911724285076590705255096415120722646881006765002083491618218069960161918631684006572947499762848818655925151845401333725821948168018122150412596268165755955442553672102021354572200922352726887207077763672202465923783287206897751257308432013979531941919567727810168325529561905685481673135519430363612002822740213097338660581424359727797027625795687100354541886389471934656564950242741847884198586356062496437009245779099424240594789295275831412739900566634087289996976741375261551984007287123773828242643493480911491518030670862259576394642655082695149002701676068017519153703209755807612325777985606792787166913933168217708878649980994696387096903789538858368291680113177013580842397673861817186936232006445398871537270992025279605774738799565100604696499023447447601664055068850060605249046492753272245874787799056640853075180066267115426457462000529723363009052925531191793621492950255336076101876707588760911864732675446275513266149653932841182641276573381427585108131925202241885007532524054785869174143095148836664211241080847668447238206482696019604559813521525705821343132746998945168150175121098173522458327497518597115019898677263852038027897170509947030127745961740014726632085816284703282223622973720276892226525965533498736486915585935012111110419748620692713935340514355205495892772816082630133710287462553529750467977235847695482069332085224021348639982511215925442592016043746315128462909533984527316183217930695718843676225592518353240706710438205346234212997747032927870512547548838021539508855652342971059335190549064830490157168177797491780867715290324597555032905961344824566711456110919846303182922218471230279164810135105049450531905455577902518674987102688842628903263702879832995855049642363474620479143853107684568266042815395211017434117785994145255924377827710721893938329092061644868172229522029553149716074519406656474618203343394491813625369512839509585675313405791405459603538089427125179009407454230749105389054160982484300685888296651981136385893420213575812878707791925919644167898900498793289991096453545061181634497191468122171666174438553806318295947740618964404836249253563430248700802968481134827947014447221573847929458175752164030909111558117785989819861656165669091121181789677020572274126328750281178432371257512726143690109074021763183479041006162316779127618600806308404159468493941420047063680765458983060704346720028728374245979187911348800556103301214967926125747926078143507681159344951996159158295408055133492668533511528635817498838959625928423221107562115376603360329125839173176789720332196947546426496454714112645921476427368563802812310142286383390766852348403762730717829598117268853993505761137883713108124125107502308161553436023180262402611923508949420535450638771381769870612583476427544305125138613156699857000098686608024060516731957920354247365946852206497369855920971258836197331323565115555791721376182114042621172474254328836745719726800621552464615179479140662002367893407609959429082637938271037677537153793346353212933446069121286288447932399255179931076212613523816079199429916930828392707531582275394673147995163892098755902677413471376826019787661814017797728781211287651758678774512448507727675308479241424458392140282930890576371865375078775178229942898498044050721318941662407140339790795662118044738066888171033423551173319716356568988558066189676428686643986863140327123965257199428061646856336974776001498058208388785855985493665778583543426792908217793394815598257595037577597435257394859451032967295935920870660135926808102294080560414599388866550646071705203876712685928484826994514476702767298763715586688075045976575856793266506338764774899097513347843184647698050869909198020967102770160506181114223661886391659636945745790179371918189219796169691650591636375178044863615481867063243926680367068895838740127721467403274864375220358123992625923503721037633793684693731934250732763216033665863593130021337150252015132571701607217286267106730398668306298214796517874742749031270478696768426230042431673893579379217727414792617170634786410946554077298751950612075421133327103701604940513437563689652791442722541904491198224669012983265263940782213086484132598245236927347572970525420881049248069409814567524830598277679338493340100081415263547697215375563392793161304850086208123185437001584212021085899518115432454180930593496016892285128670288473509514668427378262563438804163680878516606979538370811345322860923321419130085174638119539693149005565170872097680928275121371937672008036356340289412286829799750585537921938797006413658442747647689787448780342471834838636334872514530838417300130474830132385448347253911394332233746012635442030852909549475438434377572963692958353733235942682134787601285318406698177917852661936888508959806370426496355507284242753168559891575904521181601133702570321663224094416942064090185713846215940496917066070279683450090838088461140206098986305026270486603244033232062732813539117153826551372314813155383407324444656066101916597216621839075944922130452143274824694948979648969662084390991238144848261519276494816792977745795160387847546014705248829733384532618960274074469200624924165817040445731511844567563902359670055355685187056278012627449228784619427406082738278707324663047736996140807283969732173330991775068859018489648314701460842230917550509656768704684978920172798598596793845601713946682912598566392660214126033827382956292256594132598987914146122375668766508977006358286152523983735048057190256706697877659933750579252760410246201629994988628573968998325443885628399474956851487669728099790269203972611017812201354720563676333571510403218898608600941065179451772708072421570357331878221682552004567219188258749387980456324114107260532700540012803607020365717871266558686699803541129182048289078703364880608015598952941125485876320766250802847272451164344522980916231323453200404255583630591092965613599103294723053298236869639966894113560929973942279424305671366831865213073963134698856909985042378391275900319023974907891773008370836677745597992777037263430629054400223528218700765966357925470409935075632960855607774474700528940545633204822885380177279912009528681967613131184746943929148497073624852015330855689723407326725056405275036591873774565473926986260760884666719857712145316042562730949007807100740434909579666972527390092664671611905923891064337207937058663949941961422476747929416467314783934713610556013581995279005635416368847031418976805812186384481553570981645031313552526170948017274867350023201264920080638434783981670255099598935183644865118842655413105202842823855726216014557183228103918770333927892154960367106115691676946656367401597112850125220863172616354607470574793952243347688276420607600371893038918329673792110067216929719341021109426733658467066139484385404443631176005396047072789368691964539123426135734631555581337687898126668323070989297033744795578282055399533493795458673635802926495027885665023387386922793925813929351979749764256592675759266661028937812234681365646422712445936144480048738109099693281312089086472250461341270596022939230003058937248159091822144489583759531728845290416196909949284924075378394660523816342407027922976862745036440550392106416982155698610664385962493036322736754807359507606148415776442884043905514198798353575487419762258740008957951446976019992780113592734567147720098633977699201768376157688112581519408626107823858301037198469865642153115483547640932639773414071470464974491898971630423296769139006510226223805740111834356610580598915394167842140250467221499280148769201345546309525014614795679217657129078622415393948072091589283662300792343383536744426953790978790485940536725736097675474368884543001064568176869634852730528228402710586794021717499172481246161251139358247255380977214893133340667515394477458821068993099952373445606550570468003013695399569586476402623066577674616021238713159807328866937451402975704218240175122951914062534420430092067501385111832396749870195908568216527135249635467016958413488934059104576316505103063395896754357223715322679132720690679942321388058279069446009464388404761964214593374429329868537220254393566783874684694400781624831627019593652115664039921849018545864866177252969246478257174674433561560350374930989827292022492015841436613030176888625327070354664717994024012841130358340260602437841250267989869955040597846492338253521986233115511157609044114392739965471282641693298435721941914359157682794778395876925350274708383072827764109425561012054450046817679349112111803525424465139835058428334455849372158182368946498405580101114965075180349523908520542137033096487969913668539084232719130701789905684172108472599856942513333413469136486349433482994533294403008629442801567792973951747886023977326041418656672679322229349629826218122796695578059455951175852258081603115082140548218378801327667011643881888169717139539124280645672197234153799752055734547442571895972409542852595141425545555872214852546323033964743880938554018473917627761855692409746253830803095276083122215671407709852623868886973540616541617102552432537953143299893228505870878787494119645461438535893221437483980604345221132587904378881303528013417397136089334991763436903142361699762247154319495869092920336815271056515330493605906582209726876971795442795370063387013331807815456464697668146712232624750655813345496684948159668955918411101171775267495621807960517311173148805901340855807473014136664239673911019570538136187827296328092275143241359388784407866091706127765821113452571454589327361808194912644008930959859666590843146333927623899007197456208340003027580676475044760922262574089784611728832795706438234822417395119392026857129614843422257528968170465816168206639771193795636151135700240965822880528787518802968669985998060701743025836112914934243748274211572498022839202426666114187784470709968843195285365309332083872863675534943553490345330481964271928056265591585736122176704537943191550752123030810469415873793226059200488631919765972538998549540315218044971677279072166879622210362528652906242592066585933730198170527947802067919680644332990588449286872590482603472639518244022688877349841398569193265135329607805498118491303147880315813809555557229407797270130101470429031924027274156240938049818206862359185842511021344358882172498490891516730163043579047610948045413528943338022435470005897829879337297524336121133822518876444034409310179219718070141519940095064402431570330093938261261232356710288804879958065571942789638213874846108650173492213256454702666749306888570104180780700480531828212927028223074605971573489306969265309687192482394065577684889258866087896105638120825848937626664126823804458536028180463909774837334577635698430493662204044517408170099441570194832900598670801240322553910067573400541216301868030818316985646252043990435371430009814974073969785399331894431932674012869814087235211193685701990074865000122126151138636431636012675793126204357541648874812524234022012931836396810114158657037244312152237086585307968155670674919589314797078545822109410922709371693414031007520103360875097572096212097010740827494059480880865639546756593189332094583547662837799677102774931264552535991982064621126727403699797225432846568727771811481221014680243480317169201203368116069008797961147644920900006200686368908062255787923404607554709114535696936558277991005800438722310990815767773176474982517801597702742026955727108711813643856893715892334297901452193026640016134087772028513349727193696817994343686931309951899022731315636747766941684545800003631786288270094742839878763928204655794590289295451340500023124172087446026688621195435763739447037512590313831810867190394297866470353826676766173962460312589573766882595012815184530387265648796306426343822955449713397140409106577927225951925372393233726128413966630730608600231762934041396858431204676935890817682757895497970247008527110351343961952059995593979613551893044114529941799675103210787878642730772140922548962614157881332035953130900736200972563703658574943767379404367436521985795141059373413787124251901001106306124166179015206176121571873086395342093433678157155025413075268627252982219054908248029318106019707880117251247524217387762689255355927104501968620696442418498163860575130792702669771911153526422931630173601135033440101241543624491620376731677495538842211365044689916546454416880611449530937821454854034896218354144003875025766524299050953940841088456229120450072429006941966225994051802478616116864433058687572174713777825267793837748195154107276914724378146062520310960635688476117363302803305974239925032036113514274293422814442432206379301212586159407206936039177632165331389170920313083890109606602007512038096571942287364159846042219222122249425815410927634683747816888788389979427278106115759939342349127321881867092502877428369124691870425768784123796302057800976873902614728979505163430338833254569048481275371606055129634531357668388100991883256702652290816370941531595973570239828090934507095071172621009874703251028142738317073660173410113599780609917140831076686853746741332808271355287170485804921071387128254013051707069727339946758569062445714413434630416421907398207166222806476945093848411671731020226746390960086769675925533396112735376364486178367342425253429480660965792963660977277514792868239598329990912151274308091354155052415097122588478602253267417057845939896694202456780353677350333812455315694298676677480710504535569268288368287778631580838615288760456325751546795111851451515695418889658366336291557364028069258297331546570773501592268495326105921739056634018945700040444726324857414531768386209382673536306096571565457702225122488025841576314731871278159535757783047517928422213092293369926637386413376079727568676695153230261507592747987873305359208566393200388641657967315206936169857125563021138055784084111787699187447388290399944051254921957425204473257272886337813010301735624663767033545676262671724952042717927447739313510600449930639331229224000839972357804812226148598340612902821195426078019758125907333506114281886233761786043879673807888908029093424898380845341204153197896923271327571340149840647946173299193302319200887778053321582659286680009765980330329513759381392979648773221914534744085600778384613698372511637696792131667552364945657430864858276402294249331830878079141636100368295786452086596583727229409701857718052126070936806551301669527612432188577917599036207460871033493665607642994150735926097270158517266147813513253599038162582543849650298285178661470533753936788466184090157076312751091855707053993759607295078290920843876382476608139369918006500898072636681458926519043998184836087922605110349719354303360044446489720136143188787006429879141501216929126625224962937718004997101963750791765381328908559825687824941861353866600435009589005471412152255304619237957359020501855756865230650387272785895195955978686172821910776971188298078126366523449229756727618032632980697239397900644126914807258989942451714692965588645087906294344725872596404924930611861803976372546635744811186569151551854488147749743565049528351547983843257854467641648551830767295392394475124608220675955315246187642958017595954750747614930955028517624044429408382009886558352069618182093112864502423079649067976638201077852351177762458603121934334763512977458376716588417592715469718640023167029993495853186158798958133024505401607958693528181532497505959462038570675707040086940460704352267159502829214908202466206125025150729587739452752439939576218856531622131694606053289474847429759404623310430297790766122527518438276789230180416852804954131762040797559922141433034975070313111270125539266388434977554380791856674651678820337502123305291909287613038857185074717389257979190553159841042676352635795780663311665166052436393445129178377014514978917002705443560910461678877445755535641781704308607422084713579419498652466233159165927845536399967996416475311175534768104023415048677719329539449905309913198033955557314793887376037121291354894578921092661113997470415593370184647122731678490499324807850679362561757048036940686331701230502045932139574187309413590493526677369677571071375491543954572284468290983469749326167654212706287221485807230286005412952848506829334928008822153059593097901525859378322502752666033206786905025689467904721709909168077901710686445369096021680460494870264138179621355146143434020947621080415199564037655779370591422517025431293002041839075623260013598572990139011082630640424608069651202622824399372246678747228787032281804836817085793153009884114927781192439882983005152277976324659578200241463733403205030201839978711007671331103536513314579431536342193623516846355388834375971426396310235587014066620693331954451272530645650230371416322681766191062629061579561897795684466175142125450988090389891319195089248908960647728709020397903644987233559077036020860610655742431537780816226131727162497001584127843222514759376418759491695478428447303708816384963992469701762439107955486119773591110267544496722217487079350234751507329784811740405016704731953555588750677555875522917126685935953300067068365922062169291248036786155360706637252980480753936554124090345880419635572884726894960508472453843651632682671175743698165240282706189001388632799437951255261921786740552998958862711334863905934864339758671966937244622945147935380429323489122558003432112359714262230565985616420623583718341744553471584677572071874782674267183124165167535563311778035679139927031241363027643512805052798058506464002933936924671172978717126594597369307514470991162415850450109389761562799928193971444347510074015814102832413142480455134777591260374425220580747141021645400076180255858948234093356497586069701253165499578611326339504906193740122713539752107954927355346437790176330466814575556552242840623128349028596079137549970346461761406463900033652414079295533471734889872085197192577447819714768553219351906386419969236928257498055511195577585626309618083864079098230636387861105168237927976005434639945351082796523768703527163378398254078610780344424104641641607464960639235733310546701151565380752442051457824564749658369907336544187733051401931933366353552821810525866738421553180407895084562975225216940448151930249423790645209807019309751988939416283423977676248596259437816541819635509221955847659379623038647992084317127529632146773024017399030916423724048794673317523527051254690444145254934249208976272358130655854885149148928135736572221597074789330734340088465290521273426630044997262145993385277583627104680455789311973093992293980355954407401540018667778150882542230608969603454591465611807358476472384413431385128343155351668751168030890434137517156455992076609699991842965558828060537647725631506214581199290454737139334504611658528012184296885274496658946414557696289840080029372090211115375358472094750175032286124005772906736354651579880987349265405586570724824990783681647813012497738176552245505788615013705275370451979790897351469875950768071311232611397988261363802256918853777233331524587185198336854878722632845395893421376717621553642306658820658378367675769297681107179406259661046706027833211025237217229424834162764917341335695497507003815975277330926894537146087675910351374145213999149870261820647841876169908867170673559264120241940139168195120324231181626177586039505856288549825863555855532101853064448657484203514417796692916347141692395335769817403428581975432803339266264327982718538033265382792942126715267963244337261719040794935605011270628122722999365760888840037439013001210564311113726156659079142749022833160833470127010362617420666532472960570130244208809909707608210502140631062811917705307121737204712030201411937230216611036315782763825949371316790646368141499781891108001405800853150493829426313659161319214907840033659842310297579421100860675714884875567585661470842082627918842237435050217909452971697381389303515294278952701252724226774770032596037713349932696419289000172454984016204026356794312926955562722684928410562563200671368533867214599586900558218488481482743822241715593947612202280942961267422719276953631340868759690810692530456666806266205829787351085849672625497903699793959679502918438371472219221262476622803613522300733654903599325606347427372502090445709276741897293658986326936292609349509549144795638152787675771082747984950306902619435045038778649164380418339252579858420776861117453184162167044039982818974952668046794945775165073246017262624644537933786458144898594559410088216566881320064742120610737854328148579908192877920374839462742058461881435920414164400301503110660670500753803411879299515498848359723903450570026871785937874811431523641059290817663819306644489522015582036276016074873255024731303173750927553527608431807467154125997140316266363502456696291328397418018068329413089905594436871511322412071199318102313883578776145804176930242806496897241738365791239999967420970196841282037023239587600206394318145683022873153908791122038801266426191009208486275100897769592248421009097569106216214075105749095089642908590421693612458323026938264349229214270882338955626225856810274546195718037930352048493214812767874914259861702357687648321995150407484861060989277471942500751662379441134223489343380752413192001197391490347465264312732633142899421086190618317117644324706177186182369429926869478577369235559145512166414784110167242594581315039384785235817175074686189260363118980929001633713555486197451900138896261984809147197395950343737018954584430479279846626221317611176218966447648877597926328228357512441194832351817734741900845649503684152209959766542965007353442416093698748388926661238658717043779697891692261726345524280160717552535840318687835988429405118255267611201832791359793477078591284208113549669439390405535056561666632667833999363205586757060432105783624399306981210125190710117656231688932439925233293921859048984738675487099350030299924421224375641414477919543834495725670768835013586837433305279530833761404186212751904004339354320046966424725050768381647558886351456745753541593840509174061812273243815336378167549427381485668238474114240692649393129670100097758656827671009928686555361779165459616781452506584177129367854995245979678213590143480841077281471460265196822511297977190476603555481251592006862294540747500045728501999994484304055146984624112070284300374061242663162564477934200615639435302753764692466506423135214439168387802218093203693091654311706076375794097843827207982930750807443076335769959959230361381046507046125451219079646567087441336766788100498402645859977106077033309622796918707772895378515411582557934791388587412747054737146695269185364496137025230966879857141560310976214404968833765398951882321073940905016105854647517045719422325762426961302619197590102877762738704436329400994983454655623424631364010598159020885132807110876849171079375169491657047255218705801103365890444146839808834622796728275696149427771522345685632682172975024257708858946213459867202913737544149655229800732820752503406839189223178098667309618523746199062311631068183982261332894167313086995804439680806718130489591562644887975469292979598608836829134452504866808103327651514041179590595279342328553418944064408067872398797002180113501898741280598410314783802455683466375317748002774265288803796346597784146944254054344392561191580073836397536889378897612087792328417090084851716896431661070947805529471477898253590221198775973302840719758428300495165369659298808185944239132753176479949960625632177076528214955749738233980323569499798237743135882449668900053625106084536803540658186268556031274731733465916912631759600713592035388792344446765974282319501983605445916306110057122262607476211008610747167771395709775662002412874252520924342293610347294270120557235282130202199620787069956971080821583354953029310482843207654508163599390808652207203458204983668232530873526881566328180609361968817740016482676817004709144547939209823388339163916968986175764132390196163121898503739573108572390901508473320190621327251022311521541049638660939376402634763581769091277482830332440645585012247110815505317239476085255158095005492151546161869361832995337242631544655998108717690365960031452069336767388882344144449897557474042277673280031822672084911652149228978078698595485556807540087476587724670315882682453489402850631045760508648797318702102264302051846465054591632774065887175832758625291422962466542557956246743847619174877348007047159851885478388088258245995997002422738558292201237926882291607359340933975092912946782440605709438852786375128947720185846599765727021214813516550436848470174314960288173923411946099368964074600580491162457734332973148336822454664135569234962355361966355436592048246055166574910032689250648082507147911126028500958698980178509200738986778564894944084495437023063627916900407350656945803767519387776935544889992546977764735197701630657279546338748615227081078631997826283938337376709477895420755173157305899565249059705110247505228924184442701731649890670299844140149028259077947977025274660108700887839170492280747931833565334351078960607952507365153583400906942295205508975759470184685812864013575019385571412903429159359407654691388808070760202864653073896790440960680414044081700164510880198627944641558647245311938148401996107301402790454664346055722052820371064179814683535416621773787952288059690805379441742850012903417882956580431605875623257137261127427887529090094466950602005437726744315131987933526355810699489310137248122547475415725562731010120893500375766653248961175011712541021424957577920938835144160148374326020618785199360653680020991472946750510202465438241789067904398475420822792525402758619855198911260348880730235835457257864297296757342567900867390268525460769903414937996475467894080091835148885598759740068420024006160158080272068398562166922587124791087124928676734411025039611927514798973063575969551461292549551558702421097287337627043315538108192974650704893446066099447715337901566915661472824813633311141063716469245264877601157966799196357993720202928741108349527792043336048884998495027406363971660033264706406202828260967495052695361253931252035617392032574470383755339756874646447086846191458819366836340028859089050260682915760413967206025001768230124085490869733535261733828646520233202098261446433680610939503458097942439222354098847162344445929586882802057677100104602321048065097907627064244287758357087246074012096359848230262657809118681861735086536816987296969326973159883562263761893513564060183393299299421170471303504053444453998625337752053750642495458712820545339870966555960934029256931480664658857226979955623299436805167288985728247293127290489113914915812132767920542566781353549134447855547740990002976386751519005285863697705746160629632366437184346149013200523338486125325453484236320202929977372539093851281138066624325419030316400903613062057615792956864273329546513870402199563779105352146571037990083454212539557801654003504691366743098872659385994936227000082629283300308775843687243484921329001150524124363789138718744106722350452481333517402249363474837395921465861571982095181264838855535738833079703229338679508598366932688449071323405712170375892427355353510666225738753800258339210643198298955588704846295175710915945323858843936853214344312102976792775187984942290240868739738799363343131342503251699623257932821021376150172063950045427574292564214589446468962263906277430922494150480821156554165638803456171055783291581561980990821469675527550559305217886917305659991713832842556382296487983880040084322159016187557731114233163448563455786972714050853288604737403337784266574658744238316822863114316183322641549866270459692666482699702569829283953937849608845134914028172853334756053061650017661744140251328412907086754197802787836913121273128424130644693397518795677062727689144207590530670382829952428679000174032996110719557222674992784649948615007141899756339375557419499945216162569328158810267828983422290665141121025539658973521060349964413180033726515610859237977238140235309590704449047052953559100493560381175328524039157965052780820232121621167847073500622941674498065167265454746792522264801770735996643483226058591090677133418936016185060433097145837280349291337677255889895158707660744456084448398202200495667040442545282011687151548844673201866189139534383289219309742608295140912916279492928335824372780630786298281284898039723134867941122202873375252769536336235200304150095600543578191339214856360416898945110362550382567333210028589617435936821047206686618020893647106669408155347551757060043256768516910272801638755070237413265008881875830133796658411216067896803802057477994986290690814961093625019430162889666097569406007703676284879204374116380253096614307868604372885973548395439174736672732790683938386885531127878762603869462057976379780853157555040143031889573239453045360797667301469748265180658054638824632001501808454715197008936949534558964898871415971691779652850891739230008042364606189006216803061914629186528558893378665220480041966643880152960390259733127455553934875842663664953051953149033984232366962247117047658502012363760014754239047032467616688593107753482739912615414868295711526969568142377767289170016641276803032461587873658315651771660755830428409601039732846806332689711933909108240709245794055107960354451340934814558676013231637534251545736449913916100341367775626298804381266162330520959782660687741265362099814478191618670956775068783206254973417822588842922114754188057015219046238441364418831729150990868210607781446967060834915725353606947232467771120696722415224589840937863008192307274431544950125725599224480284117859848949470529307557262548289245185882845860849230098845401259054001616481767401719227087028637456342898897405472064637465812668249142578203037921099208816637039460843825901776321271945077434784563518649297706251567470803655546412354338155978779023213795830096416656660251440673795783605941398809737418755099073500978325091562279810725962607950554783575377773314008466041282564642589966716672327939070396366705968729937340389868421863934294622647001249721160429012553192025415480179242072231572124458305908121933351446094806618986810408094320125538879652455838414328144440534214232384987469463374603356959179268279926391789856493855786517772313583760583551570314721914490104836472455339442470594196963018562144204058024948014532624357972034600769352851559965720556131697436860667991193542513644581395060468690686038640984843171703386822357439568623395263437289950266483943573705228120016278625710300709600578577716817325325480844252426117389170126007210104449130244092351253431773457545442614657346256099696531133777701975727685920943768513250035528279874107539691427052739181999177051158446044031354519508085777319475718352841085825199688383991457344660376287084293938599546185867125989467945901104198228127103854066920779814708079816090952606688739390719253164837736396448401228855497680819279169703401898907407450043919626817682004938907434025725445947441330794739700575214946904424848000251720291852780344182464864281134586167384683424144235814949032555573652760727351481072130721923348269635329193418415787069249661552483640313721599746943357809094580677476005953440181648165691791768199222765942838458701109888783975265708028937467353419617043533449976037919817763674995683860633884511999981762519278110198473781041739758726808684732597016404349802229756724908922143162708981699301024058701603763306401975660778521438353814170339157241500379025918046196423612644779882551509877861532350345868965859402295015794829338355478480367628999152012518400550388171568705186297456331490587269590055647775191119564291530598090597632947536036737104465096962113367222439157612003209725911051057858651585765342930314401944672843751672765644668498164653723181741602732619239211586341809678531521291187516144391808964076050371360297966657901806243469415936055749158096935728758556262514988689034773651156509331265753293489525091961874723339081682679670307145679776603067441971489273803891563238884157182747593853156490261405859473687295943924965009482575369774180506273114153892382659191919653203221187670557516074674373674940799511425066099239098539541728928079835537077578651147748233607800068179561484710701645496992055168495565189162181376576193512396936042435127161222496693068677121237904142331002629654419056800942793675256476657531996490818580901285945799599225209752704875979840575004968631041288202792240578157499829939850165255729272537858101181205611762417154747290118425380479314444627606039611176429695614786499339334731509573420446592433703895084709175998812446666443273957739946166480482967586181144287961076393618444107270669605561970424272830921045216943374236851394654948359851827519678247878997413621234609740285669114251090378438523217427679810302108098653002636345835025621799950193730935332646842603193819540258103924729259660886976918098345846950415208160351675966701048040804027898255121193652959164407192023471283265179712582856336876804632619959263592031384409533533001096511055504638074531908054429386991000400083144593305265905190512301798464580645167794787590227721645586340060433584361115406569968573733880632422005135708985709192897244300071031844657293754318544809290828586123161245345780227862846536346467135482829966873608363309979389456125852637023315823672340646908407453076483832538571454191991215730536526712282236086463570420446896209080974404636174079806123548333185810367596734506545208912579195799289556922105596299646638460411641280114299697166878870433605700141820743731852495622061963607812893544934828632913289333313552025337969142990874124302798268417719053842201142056835378509961670982718829545147172119435993007018148992579802137659944620412761633665010458002316721099385548719855623040118005882048734841605412556074742608768479743036174087774075533214166484167571700695346601057728378308690689495230470463597253317773429087922272561253680026716375224998475904170433242509227703806885789410048163986525690060313048822403978631904341054686949091996028791138018125775930951277595316672889665292450705094924892521801782178507864041567091786821217980264836702684877640548359953673561513097726343651280811205850082847049033636518342148180884056082945407528926987439013478022224625438470107302155232596153362885057949372816719199385029841005429675600664062253741436984149325931308275982351653092410140684268474681178239378532390095995366598389220543790954505871994182943493041192981610890462544609652321807321679578820386910824672949810262856480857657470326165313501494457492642148424037991824586879911863911936395085245724429903098135706721407505300459240432769604072760392819352026675926949422439865003458444943241495635492384740563811540494270599451513719265746271022470114813526756787619834594352709768335678485969170668786774916844819164685274057165741996882452109898454899493784215439223283536666914295194640871359529109103660641090792647278348567641702465744673311692918467187243375216435038999728511591472192042154098725860583996309125506511999735186014418431202999568937557627417521782229552933729280122979521336179420815036482058598401124372999433292871034108136816156833880434356535019172132661910004151708428406073197174724803275406695561005479282305401715368982189496244640402126900219051269275815404858496618004617743142464960819607086453549271805109339230968747324293901048568417572156491900229880924293688245336671581400928382308754784696101962639272640326415380818330959363245447431513998496010964969773008038001398984496497207257408331618377419379868834247072163768221332493194740018168641537653524834875092711362014708788636194144514561059562782763974557241955574425405679552952747457699539943423485637535949639345181955979603240705431444091428246640185125325939216459143222690478588129182205015402297013021563322538192751048986682971144784128811689237184700258501509116460017826065401147437256835405102648527355803779067058064685748017850895603336814057516894070686286429364617166403895943134230596870766066353041874552270719009895683628334136301378306742024174317008256858003551380920873904958054305882497882774864105361281867117323362426863761090721510927241597007228436450465811355051694088304727248786610786460712892499408571725519634802903114796376520757883945859746219274490656885448115807790374583695939105633117150884327253408982308730573098601727133174727373330533552310981550811847547874243159916742160164892718772527379459612316335197400967534522217608354175662083417976847168721836623660264012015453309871849774811022715923848035458123412683518419735982574873367771721494695688644932655674255457195677896202258912398066037906696920214917643917563997679172504281205643046914251013986931610209517991950117583880017347116479161864429085229012814376188602776252808043667580123986986085497686045340179590999770429181721123693694128113834614278351678802137472540070883991234633063262032766518092083364400959220199676685494189763148348812740424336945338694914412779889888403501590721224594716176784310667004247629400775355704890622336585610320113482839314276689644251509966618264861100945407327130798334718392503556105222850566443559358547680539223916334921070534565435969997633786246946619374171995386595383845779456148508679137504646358222558371449265956654881000073603623709615893656794307661730471690023080071192607974459650200412911861561653147131353646879339192231283792144461062726136017014146685212308427439116809619978872150014375305067916268920859156560018112132332730476245101332103537475503936612290033835835796298753255203337213252505260766275629795066590568568673621757865860822814170198399474363329651040864038764159615671826525079270810540725283395175239009036554747640311280671845401129521414692396671403026425909272398729247524095041328757762015356250175152715745072245086887852194323871635920714437559619320889222470267875422103434199130578751743909553575283298669959736159148529037673817517022769881901937944019134538914389635859264049542321693404432567393804051335650046580779790992450994077234476723432639215340875474776518746846918295331900680858715763876881220923728549572387802842256691930860191368085301252490901997877712899353937641341511098785244013000916722845138674989752621190311322779919192109975540567953389398869764901764699918259524974961866231449375487764648290559653797593164185463797597530407792069043436593569482247919878417141529965041014112711451285949655827872162924211693506901981917725709898158751860988259495357369925765747909287084916207415314733099354694427050804539939726817940242085236344010840334876117033034257891092450341826445052410949543570878917681942973728830684965536450406911858068323160964736966512602252146604741959748625696970712210631663341071427932118809145605288589644444836215365081179606250673390908802909768878851760846251609934852452086136411357531745893210558486539013644542313991829086487381281414124991241302557806863531579503471424074633774399427043665420590271624091106214001053571186711349803375762356730546675316928415692277088692598274697408015654938988235284843359081375661254927445655657106071918870626156103824938190160174450258645920777053647617512747834446938598686224661428022768591067766730671149487102186779599404633577377883547968384094413262736983331654270939563646190710892744273048207478942707812961633343645958326375710608173661791030056455278995544908049995020254334449746448989996600617137052031727136566714013198912729158745950555575487291138184629746271817477132525954185773188943921695695551170768702717873211853240625846371186527088213704569844693016191503215651999520120818355844520798229741090356536041958862533569765096979663394569961400915929727630453014854633350860706704169081122967720258848617030852148494757899927821802134462451558565743154961554030313803666064256030508465974461706727758226644448068126860842052451113758461262497110012171504478701119027076086617438200914699899007935601226443304740867934398294733469226267615209785469087784883742934682951127738485033571839569981192955254275291391340976704725711008561842861393489190234009299619024414347012722059086246616139513798505573845543001021703732598355982571849120096488750279662753585783159367298558229118657870658575501431464060708007382800612812489226290586941943533830459222810419914802879725802590459248520670306737625885232753426361758997309679775057414743010994782563743643487979664900105616828385434411112083835066557099774187519906377467009884865775532813900403734105492994572170329100937047745456463403236163262457400453379391845954322717169742225392265278025553306184532998478826664064240206195168623458681113098451421038883935900288692191835018644055082010294901283736674422977851397368276978625114711094322590004938777084601617757389637311720289729737297934813810885332570567664597186022457969049314582765945070426110546968858517222074032164646998744324147084676361660292297472660454543467457695721660793786399238328019397638837737152053454350718145023809887121361403736620496454139862387315003779920540717394652142498850226514393335947756114272299821579461896069863577467523502063160128447374752795292082682240223571131418714441721592256259643349171260541151874339202938184995498049554265045209783321950249049284345976377831883558675641599948893377422892162823753325509060622071835782794807897195666005643786313689382440058122465460666838960420891303377882282154577058372362427195791249012340083199323910124383463406143821851249388638021431273949034609583668854735146300653271364374005487499371007510418444017077585253998925771126421548225690875057175602503510484104175233926498461578004002466385639095707797895012843866528299289847708357863965089189644993841175379372952513850828831188572737671485202769066310947719002752354875678355610053639437547634930794559282911484749045668211321770958150464299749880989887204326736886172042415334866401577932987018734032007556975971401141170609027200379684073561288007454515052712961136708336066579140233275788602911883840369773752340888982409229216708038351781977959951350500621116380612357745044472426099605955248166660528863201424629782558061146840134476025568083976456630495422414425187983829121402178626818490138248228736060359083675872339480862210945678727238210103776597345782082221723599042260269518160386442246031690938485298675061423696319624979611245949019724976470130239569110950752286407613230325626556399212583002712776047698952977073855353077460858988974515185762278565242329287042394485599926769030816544760901205555578813874205654541680483209251195763233444408569459537530320303004029516315472135548893111808930351717287956742077093563979461947041034493293251085312118023065955768806896643623776333344912416034802708630959603874244848743850162210929959034829828872180270470325612755353817604153209293166975591987660257358098452895048409239814689560187141232369614200572877869165171510765734338661615163066447363840666459504909203942859595472465674281502804898976282872283521282211417461952925591762689237701593896895859473243829074579222213358602738394613714320022061039741932840973804894718540465794409960407000106048547305225653532823827440582041867996380927006051461574952008804449510737590418395296186829937576752648745504905848631808553639402839868369805014773465948105709395209643361819702180716840127136031433823639096375166116289969862467587381915234661821628101747009138311928290075601370254331317832206669860515775898786904232909946451320798641659315671917926910913494770749923250408496494256857811163820714237324472847895856011732435508593104162414100281565329641096245676147922691409185427441372029000259809680366920673894732358306206907700348681288417728097550256407017808108193638416318939262686866253799947193802286771585493924711149376854839167512205200560581617375321105287538480277270320367595997252610005125217087982842732406254406390306347233056788305438718426885586257640655067272003958877103051861455263969344466280646480209005466850790242273797186036998682000439702619664685188458419601824794825438581462230637673240465264806279627875932062149498710216325990376193027628978882946636798926705371179255077784252867064778486971874995138940072181795068941882387490095535641399582045721992524425253605780383296409103007804695121176096260000686807131346884549034292550756862712818936144371699343879152967699760816827876175197021214331310714180840453330889984727603373176430249659498708212739936707724062282961578214236325045356403770257262934084571464331777216139093407858481206786198087925616946977943741966882506899505794500433234632037081588048391631711357777730249993065739260712386316841809492809246509172497092101676268446751184137004216014817858589717085274006448873949394029940074126791480432599784490189007203648553081861579475935815131546038272116483687083694123962068801484471692592204908393984391459071982587558477613811217015931580436634424496193731093528356105768416318039447797373080602923786549792510019967089171163061691353242503440990559278526100935366561065049888106285182593264665650229243257755168063689509719942845464618177942714419824009105220781822759334625413250865297485630839731251057637113127133118087208986574652014282287308173494246699644256287753651111324152506504354374931678688655823027729308679565247365903298616153698854127491780651124542060402985977638423394620031279258665938149737028389114176317017497931600163905165984209047386991890531157930138957553721933529243232873694220567747979182960132950776518226191039264639134887467849171517936147212965265214547654552644574684569358294468964053545813658526084528135112826308345442811635815440761249616447411180977158352097419794191659922937338573902403840907810192052949053872998693970796648717312327017620395138403421898039738293928616115764050701357241289073104369321154413480606950619940634067087164219234020482931174622627351449193970234823249128470021899392673229097603969725483507674700586152597099591117079598205092092408441480067724944402003844231068639911414008498117609928352421035033167341318435176089452029248384619513682048878035483151126402767112858691557163473646469563198981310709950201010926976207707253111257406494270774954114493375537702298277947907846150299314030550117141167591866781441023570062118148570384962490246155692713256472938785332483930223858061527736841925397144453959355896728456768801634738780620968890588763507345317437076183192787046028702079498637947067256705428617487794683813457188754893160168238670917211590874865024567384217941510279609050497844019079855566953645831366582925886061907218057842485730001681479440293911108705305138518213232014090270008677813539011195479041852641019857201117568510018273565480318915246689572920070362144250324732763294777300380265180403948549564639468676226775894797956554165554339176819816269319090826995452360348270013606049908104193401004508385280896073535838712757726678264492925471664184986183407529791278283307023558303294332466627128572677756788925824906407971363398669128964005051455103779140780649093180600100115917108083551849889169483016746788198664970994098262560903517404988334965921081178420963206698835945603382964418375513871464146361218800448325485024632371245533774177236819863086456123951711818310318078232344739605813791619562976955342056489195833038141499649665516760917099454974554208321043004508821025311436212548592051632832371687531854969373204930890019451657155439782608070021605368941672857900459567137008867168061929048044408065829313984753121554001825679524235033913781853848774031318961587818085883906196531808314058158735042684322411669421492156287684775265465968489000213157590862161409350632286750786307534514246850864606609036720028276853902165489589553359816102845973933788564650205676677121165868685302142337184117679681603900439723616348881835393542925904629974154102226004572965172275404009792484256577837626915572708094316029393746195296036669317187497205767091817550840348594392612477696728084883297437421566470323548964161709157585960573325977406917739750559567608870254146880494680905151523067725420563059852790875974520536976629895778469778508451566164598830671300430823362487792780229537820690770808040448280069919271094500627510671076612001785799831958203214616337403544097291847892538053882862798533616467478822145819524746691801373221131523293170889683955171780183291530109776754252638750070395740996776651068772892369251016352166029770102972863511493639675188407198461169250886770885206230728517098942489901908394962941846498336291333918032077306080705416961471761542612065468859384529484340776840868439311738554512013323119681156191918052079904539516460823684903216000212508420834092472305358679053172277787906635942049178192716902694223071023323181978146670760515914364655460424935444145485206276047364915768725981465021127889941721554046413782099698839227710030600667672455010044586420906550328562850321561080679527828874589990129543333179861687266010841246107349581391028628027242819227393450542290850006444880229327254091949912643750382380774056382298632098994232965005696320538573785955816036048009373759008920568579341450740254204400743833269733365664616086366660959742722419705007930923593032952820339604987371586851020759467033663900887560906852547536863418026119902538296711262769810852748102988453968312555732116051156033275566624658877515082249775573726834796914383025977672501384798676882011599214317680033818274109763563297681679817606465187757652093890289637657705715040690509172015783416205819042277958230220783037217854653579873033050915120800457562486536681546198658736055790190410317629239093447758668766316012160996627024686564413973016036390958362859858414124450855106840486641016064097397344735887960571423101128797831458011984730656923385334753577555660059342570185477680721196970446658288538098250186626657069497691013317319514885973156292772921425553078156057337515271132449383944126488735241335581104289743564808901843347993259486507162801942822308074725846588759652472711354028389872308086465407812513525395181051022428187765495671313256932898550332874540705479796742320116181501026651880686549306141373312832207534032717403441317705622608814978377816815209858419801464452436854973071802782363763188703695194445190706527670509937715134039032088071412449535362890349654860674217893772029054132561656319244989735621310884356075162791994873311702566287117024449784258019131235798542469131112959563385295289799610436847486807022097852886527498479068489929546766015224454590668385738660276017937846412347023582368782874839953922423263072644867369965403980996675394677381204300884700018564079534509266776837924371019199653019426061782534525715461391947994764633976973397735017610900353957315092803024119035487454784372899395023656664020048291105874536328819326245832399289810773962409431758555415977391712373137799283350920586558180943400934592191359456666230632270712956326776774301531071831554500924038471179703383759837104439556972718466435542423631373507597940202347721322340976679303636411531827954362679081081295895245436906220269636592897687596142047891425850063990211744969922107071015328370069382109454656978929587022391043402243131003332541655557973823189811507579322796489405431615344236493625280056785351083442787333536136900304117244236048524992664538364137766309007998628881867362978834429749339983466520045522128582828824238746726163981474786567595119275174488450713473929481442943567845583361302434989859475370111922725678660477395057928961811818969229124832539483478695396574855742574280552805045157441595651436919104221939216361736647704953922890797778600268249095368687977446636676491200949919009591287951103380531845027008453653489690378908429440487593857453835858120880026685232509416461685787833011020124072050104174566493931269784132342145753132088546927990364474102256220136016448163626325689863595832871444204996318914030808253417020548731668242452589994521520829679427945191842667538133786279649130000427227185354004325357678279910193474099679911552177277266947237886266799478690719356974881475232209732291801594917424345889705971821960976421734355402896056925295686398021736990289231997645067274712957331551385335422660705305975973423738630052806784592021819669657591977355855413740371454944064258853882220240302087614328617220968435643594458129444665980178920851516521885275114494929929126811087759828916667241700263433680059750207472781310448538500233763410003398214890876625906946079707945789240704454271220231854132239446093929310991878328974874222846011536480565392235958211453373503380324031315006354819518783700173440136647079088724686778180411891542164580426064437321183498331994321738693587274877935066987601615053795071442987485588667443238130472192207032174080702853770965096434253762935350524632451587955333648298896245489763941002613208834065435631835371003246509961345338211302741001059706500723050698943683310840664982320388903922729665602691514249346203527127783037867030238198596963180168727051642376761919379939814715651335223747491107469587064417450479544790329765720641800478521386643672097261765929659372371704571731417054218539124325040076277265557303076214042623283824100337373863320613670092970058511527267304942684541510255449093004508240393019248916778805774213124649395364157661488259949530947547413495298061807885612983625345934045110060193784004363259641098302758899492903437854206487831138999425232274346238844592192440554520288505670731859443414645877797747457597638500328658325009397406219330237770882798508725844315467231820359012164647315825136312484889128399106807104539198781032400220002647967128252225986845764016068282443739752548652128349788958219347006594545829258886469680202650434885505760093658375056608057651675792243229556053415653431676235322000475002915760677105018140797043995018169887196892916443292307090850578141034688144091233723073672081747010508242813859952138852498029159905951908493022431392826469017098315480745636452485967229272161804294692124457582799453529839580577116964834321188536026231659900839065148599620936079893316875579626511785355679262343978417054349783985636150160582326076244788457494042083186141144082925397172723774586368261312889217633273055457252370367444544401099843888624283694613317987198035833137964994212924448274397639480781670723123810896321367047598615681483600625283111697417014255526260277537304536222089936132818167994898848540301771378869550003241921727210447011678656392288087685584615465363758528030878432633464134529491256915726245129933248639474516516293538492926356362334609313143024799389553270995814479561029847183460614338162741023667495640668335514179263496149976598963215886050008937122630651612645544018120086225127508722064319401812884384743448078385792886893391238832979271633466513677239928465070164767847787491388670004449396769622459241360390897756514640134766811957799353263224599691214782204182560250847344384056701552369147450783213966643593301484947062078987219388426827812529621217030394547325199569452722798623237316603896140938697154745712069846593437531016993704426350138383137360961330971967486155321975832352826652381826524281633006355829284976868720717904856079978363497620539911730567213396429993450802251398831758672068537788756311694144221298217001134108181480083843341453440348625847802531740103669904692458605053837576812168794894735621000440148257975646981254551615936530004641377396883007350763551293607277351342660452289361939878450455659916165507700479129765315164154529700310903566511756668335796019581716107424922193667115250138080823372306779150402373796047436048775185825192052661958219866813954597915691838497097082313728248897468876291939189461438870152386175922196750381600253318523394890889747563886121667352261604421645558124208327194427057865228422590947845880619534809348547677534857737360539808316161822493937342426915517038780675847710322257232891174414847976931369373002287471070132408386786451125019850073327071640288625590264052500883530354888331924205357852773056543207808682293359633046520087524415945526929306091566961884695857219692369874891586299883034935195548271862547995088445001807689604904913045889258105265467696415494238430938118474399422840559044090871880125965156209137824507564139476496415110146177232393650589072204264391814749675834582652567249143048488571377164472808069050590141733400969185821196094480699320505641912569327430380382330037042740982261665736857881572513944171540703742537787874767379650866220541120243994359354157298935248953532527174879716732957966429093636235056436191729326205562490840560021707893829973607263685202599851181520662639255110796901419632103235493277882674172422817489228446781048700239257193495778135724936702625309770305017711714620562815071300492572242960173416010418769694794206876185342401627106482412987482512344878688673740488237461453200835254195854923560154387744900370559395197424326608629766226112051731414503442003920411107382057331979635764519199923939029584434874372853851845466796846112286633730328784839430359710290229908167627895623258348439832852847336505712483127106925265009847855843308541895449716425794062988023154131379391450760300787747493298061007335637899704744209392990715324387360445569223496641265617088551182889107734698412194211097793597975474754998778203563583841877308343258695379532862949133945834145331453398315973445654615997159343217162428959111149037515841066038974747316712852639220530257466491187182226027064720984276356219275814705497102425831261779834198563762032366610147790140748812274558229196793471113023246159063711640747646288556637048356720870074197142603040142151187501345952549159642092208354085712158626571038873866373235133064396984842955857396536101247025272152017448642027535016686021202452527381112934663894204754306013429557706129920643747387607236528685305789962266738092998609899761562284385749761992329086997223522059286788135750693713787441993070988732040282412602735526487056674297571115322520733215258472558582977795679363744158762260904064699969143605658605726083671361264794659145317224052021321281123449572644361260145848771383167730814527570853812828254061680912277356498711394303052242881507906357215551380748023304473339080700527559993305597618379600294352261720132232236986922496764017011773198906205378003574240667033218014290354126095440212001205295675874446186746365227424537701079024901250587735789317000940491893923229613512541746248940037661495210737275117383527374929223969491433771545142706864776296763768311100597939510085011012551613182467772542242370598599932308654093212070087963391316697439992292407144260184804959675047829645520746693634682095851269009878975618520566739008684088898697127300349238469961170355283203056970986989919361834795942368098060756691910757639548839523168169648995065357786611769213667193892644682164720383868199441398321333867109222065142609445666969403393241557221748156990533805722451001218341538941268918697984417008623166498465218003764674004435061525566745343422131193635519280132529968415554889148232482203900462424035448000749404560601889302262044665756393198800729580046247412445296540473908116460557771557924731620105566517959674500042039273752239153256276105680246471659729008540327296435787413970228909024972938532995165619869034750450764924434431325756665698216752817813754591302197661344151762144700671152936438211121903036166322023441310026066960679731214011088020167652350952758131329660410819286120200234860494336566284342093471239354345700219943449615673443048706755765027121213552955964442121434540689163497294536386272847054374585095721768127374477806462435766703219548929232008246795234032312347225008165834084442209904030089489935607326888357718729579727174624756526419257214459330711708211984984285245404863351525585310999675327116233898139121165389974602414768333216482711497400619400226601683419894275036111786862711858340338153112273754358587267251233190572247796760872842481479916643421632073577246821731083975301723185184512999378309843869190908850493352951223760845968220542869911008310301332096199748196095682022748958231185758732912394500165832036686532040623465168540163457936829610205145726864021121586262280229773045792566450496380404728457962443968444025292311883625685107579356399045840006101071996135886126406383148805959166327552760201636644976706865558471572218604054649983837306784262577830823979158215604176129148319462064305795637647859768379592025189663420983730294024779880579900446381044929697887446019514448295224401866872835505829214616893660931853541672077837124368841547778905007792706527178225399921369787545129967869379232432556830285589157138786913474286081563953749902917143428474640847656949362503926309399201755284971512520836779083261242944004728350575370157822646205367105220796767756900915539093041624565681831816813722872403392812956101681110787143757899982034755718529818940877481231010453587570769400376243682988562865184780071282755217845472770121815039584754029526274619778920938998280461575161844389690167804260607673675777583651279277287721513381519342265507250650133148138545667785832765591731009763198307718824374643579478697093013455551273760292940626317057075397179688792677771014194299141862182870105654274143713534298023881976868273699236587453362113432083906257141101429744524106550423517510270090674060690782179191412571999240144747276193857186682087425036481774567282913354083506370641231256147378548773209718662338365283223510784101174769167641856386873189611370333869194742993116258822919789502607332462743089761896806029162785897936164727337376747575580680307108073416491369044501027471018385212700513329304610627018490496242743439572435620371807580376438111025193047997900266473520377378378855189565384471798493144816025369142410188996689121497914367706940234613398993281012069452426189509051706365628379729584865874793416758298661962092322292448221608700605352433962981448864609267387280619938849885501476204970796940437044436743829934535183787598536847817118664553954399583640270577856269349063972731911467072868736280578647850179150579999320118162530204047021627566006697250847872665067490158793930369698973923764286857912469318732319031522327725846179624209507496945744393776935963746088178438447468546547588654260349040559305552515292017089913356671961702468597236645406741181655538051912505060722890722432467553859889930556846277742376559439420330265732321928402068393173352565320749547797491593713419333688068238593029358764004192715354517100352095941708096944376437760269298605906252807858609104998331860245652385271711267358828708015587685085126358823782912581567670723421109628780070343759805444462948337866703293733340304867808208408629289845917910596084502893409300797297862334750873273207911494935346132498142482139077650548842124653051587429221208021313396156482058309687521359894101919306173695054974870820504598635646324658218716034766052301923335418002135641987231692038761759852684646251865726238554600770737500050977868589397613874734581502934406552451079062580925399035044201826187437715639592243756950123600563531532398057767515275574708100296999519333502649521962385309405850623173341931475796100699036174881732989883671911690393563405218109763686310042389115822454904394387149575143053345964685438284791860373411406096242166591141236532720956608218822876111577605612790100236999957540157318534482482962021644158577044305299449136806720167552199762455950452227326005013153056021521325298318095991707600080471856899577210864305876894371117412802320950894713625199649170091033149034621848772747953147819716255068666745339798479525978113499390468701508574117351534677949833091106762312856812948554500740422608834149687363008147603603166332286669635791023233907541762908718294595495543656980443537163916253395957380557727295781641787959588625599697681501258404796925942625778388227346113557118398999382724019665294465164554775502368222126196524159935841652348737036789053720062898365771372992522267096344066815733805072891829419941241997058242889396461346065860614484464016870787517030811056898874625230794446084670633984823598355097709418693400963005475648416977340571881682204154017365363215638663944864503812861638305822013463369221841164166664383926817703274854064920580401299567950710031268276696902908043175281873959814423093427954646651664719215527625332517114052576141588763788298043327304050646023590153776485404198329209136818878253256980708128787356061371526223751626846378570771277830773484048605626815153026199543767111713209507894129339963731054199686774793390439817202044813547489652616010971602060765153003957664278828952629389967000311842468310487295232658308715385421349209471650745173025387117397550720553501227941235905451080185505532680350457870711412180594600496251530605456734508022240625190610360468380625480638267503169197290205191337729834613477481836332009751487922240854471786827200756577518987630382972904001044698297235062151062488674302681069738699513090852668562722785791238215359268682674285974011495977338235717034810369112247369734134029659759856178489059876214863651906520979068608409959589109298711749264173157274565060461123051199618409593826848567832473289918849031277196245283175215398669406473762399946265155163673402482304839762233825525316206353724403474296383715312165079150599479189941305953070023016728003220355426164651350526424158218910112339315297053716228675653721149242523886197856699346146657160499506481187905260072253332081701326990720428188382128552264835977319043160043177055010266586058389983617607091410854379281923755012614153534583240411638114859077488458620137029166232807506107919848599337331423045769345599867425969026702776102767399297997159135082141994489795776123345109514606186244141000725306196521762646525513618575062104416033610094787293131686485079767403135106997016152424503461786977910296719929309103061904264729504825345302856160939866772262387341056847640410941124643329625754254911065714460179879106205309157684088350007200905183830926253027632969687934943192436878778156315208790990305372337245909596674269185737441882803925719920838991415062111377470136809602976632669534153196062789958090867429958584149211762294993845480092290241584595370110933102565583715032360834925465267726123117936260541459475250750464294515713733911697518463468199226715396726143259277163356959037201555705576929323363659203386765486891787429178941976817990312537768189701997947448009744313295703196281215571206350628561512309699907207580479315782819934703818833762423845810856622801187493610338764192052389977465411860414881072601080665376617915729751532112351363473525717686277274878388739143745029874431061492494333375085722830387144168651872615717819096512589205520016148443462583109150839501335283516937695435694372486970508008556889434213572520322402108466303158597919677512038431763995592858898213948457169829144744548154259920969242365150086583522463449138928862914541328309317789258029347720233547442359164668527135631920777211128549959112130635226941235985163222616733266105757750343538143501495786715322121723884658186702346558930535195339488885712847773952633670451041392566024182129148586096972207813202901328860476594156499241780876875098203791750850485237684793533458075195382306024521121408426544755865435831886954521719446097821721229816516574541619683906014647315770367729652990214461825630007274223648353025511010837106792542805098773738446069516801448450307993937712157417010020904108340256001500710379413191865112321389542394728621342313183677369505876150015892831546064398004224846564451804548983304238209328292199677383193269749490583116173013284059609153428877622296314027573682798485129784464332192905003119005414273149183358057696197998985210119187131522067122961681792710816350505283443022248881884057316759608136861099232751628054555116306980919490569784101257132000042060043553046956522125874426422152017205353795456061343882664536389580996352582997201562082339475440016523063759245221172589136323889285276716882262698027037753131036591341359595007725628611246423958485456975690579399850965075908691006664393490668688184329597396102087758345650753608157147516753375524348920862642671982334298835278543760102610210884845155365451640333276389613240969865581084982356450952640800448415440802164458849079901213912629179781003799579548740247795271028361787053342923993456637534718185490832919682075744068280790076140125589475317290338716354020404760647563965649236327671759486530492883255261252097549790729419201586470593249740131000901595039825029374938609376357453511389973605730323552119746120680961658561494332863713932495413612142022042856612711543061771045433775265659754070410305425967502072499248139568562517259996196243013298896827827872165549047853080503508259774761033507034226980342138016859038403373474904958209735037664005701008944971951256222811146780215076741724545542844161288785505572187508382399507197208245357790709891755278643709614707139571902575344001646724370678586457155017870428562530377572382513504907044651578699167986415782895651766331911191771824311461797897504272582044931531751993803422990210581552875885676979890780613476321087107090642322562868874362820731259530117602688173057089910493993170655261778716704291608089771849836854448277827574910024760575307584844350288591877054658089360656738057380554622072087916661065631480165780497959895659346351391123977968473503307310292029266293321570051670453103865635028228954631767243817083536296391051242181808153595658865574814027246810187823266606023615128475161522116072712652997282730364043360448905672116104959360688660336406634794953147390510918578426517250914910778113973688478475973847879517300092631901095262420780625873812673280834508884331723355357642069803725889129411798112997548755867609069421919930919624855695577022254856345933169215732152850260874964226022648359191679411142796659552734448408983526521052317062752676727238625197326720186780854945215116280681732139672124698139744594164359791497864079751630067422735256414451001612882462298220863265368470712917912304637381025221440875969200646707765651424643834878870053819186367727551229383838269687759631359881231162917039369902942223571003302629798710047260001498948266010731761234733115950469797938820942955336509061118695673544931975887917703205249296201766102609282857436893389418851665640428524817466732319038089249224769411931980016457681656062397600969316695739389769600566439692348981935165600580215087506873653743380527052272416205909091293071186828468674871971217655114951452624196082786858027602845741716370026796890322468233346250562535220792608528590867188473622645825589692110453384279452167435542983651247519507291777299800379575643007071332887956670358802889663307778085238413393029217110760770791270681809692002938001614800599134733983282092645786015375703136966955101825383339378905998761961963143668196387200928487581034432259662270582155577541307066275824295537345903932868882461465944248379074243425564963458091836052066084966085277464482856880384489702858864664428037600967822151219278429312534891041189155503989511939436185286546876412556017305827262218357812221766715638611033348182647453454621278553781649033888635401307366753502191399501051390445776294751137528120073341435108520212047406437183975268490147810207055940495620810379841393006304574657390324121106616365263245026204179407529596044818117564634530915478652326703060501275637857043468510734634432212757299756744671537471023993186670289747165519965564477708010697086843829140043784989296505341567962006293706556178888042772253850889170096829068337695856628909841526441218412432841829715805175449797524238765683392922050511182767469880242373667780472762587794360704964344156974125343754283628806108035173838236133432401357856571869224851823410826188050136066609692112150407990055072627847325221795345197478698050211391307431238509186656329521721482195416842790537400442673682800602358157339483076529690838210359175224055130195632095345737398494422634658776116975639596008858585164190360033522548161654715607764601861791127882317375981161232171906110281740380439643226397544383002313104523263347299264715312071182617975684353172955525126084647624733398800600589802591065503594741206059149154223156524481577916322503384678529509709130899730585448122911176721750249189228631822200856301476012814922711897601553500363341392319690915627396399953578285181611067983342365642726794349015586179068716538516397150155320130406133065079659886517055008453173522419141057812295269213272617948354285238846814722863486321414940364372297352256733678351482640138852720839560294487466697272754483536607359413056471009820775454792803022294021340059483127412320083852367566330483407614785139217679928907969547936274721635586782089520890850597992687368685619575781342537329245113093652172307844938378749551673195582029154478501530646300976753815070830097055924793496784336672050612140421220346655520056293843461868691156557869049429633020205246466767734614618563422528773663006579261046513073782666358236992080086962442825354155361420074979082184488866151584825971313675495894710118763648460781607154612673298686103172486848292986787297981050865544293713074729662893980495708871816006102666492674656419532557849980012928254517377332871889129636290335212437179946766721633416382975332031874268738020456652686732670325272227805980051636822614281030850059860709928082971337581338748921203185579301275196160071267811245253191068083696542249516345134982439889689791844187735349040933146370430827734981843953227326850327126464674776014446108747585871847277040908167696905359791397593113989061794810750223500111441433945375492425694876445768757136839029152118463269048720634945171440718401006624942669145608722603289753938559149681378088168104141717372543347008431877501689097121141009335138045755135917755262354293278335370983544040565583164520523386397743986465995563992596619560409548116207899738032267823164150648083820079074594564560359981898459676500279079577893316588666209266919499903386323443266960726670781805634807062438257326018784021299435900446463547805359168418344318410611972859883361909372820541207723644342832096465965546233214268990623024254608649390680568591928103137592999527234184358289675774238113097326989558091105639105318258731729240009365886147702891881607227734208985918522798844789687024119115410284836048258740299649266843388550868839881188798635933650986697006172783950228797474486455708731584887090971457033314151244672086221959651739471490898108315002156330281961463488685392271686836151732290306168380985399483776891213989033073342160183920455489058815524893114951059175681771832921097681142570756212110896481900875933616797743985924015816621989514810602635173037408541077997492584896234306543795215731334974260931062503571745624629004775429972496117026938419382729500497499675766521860072446022443553152340339555817018451273104728838211988366273946603063586739530980393172581190743452675354878122924950727651686570760561519802487845665286962026568777813504153467884107691104470808293838331791786610049359386790325966891930887077170366433605471067097614304038601536259085121184138509674436265072487041318005312905903149054207971252903574364089198011374187745774632521687460071415184816841095103611906789193352323992538142370285198099501178768612071670644594364708396101177637259470676144828983001294571135183463247994840456505539812560314833145530797064452413872634749402929907772245672733677470507684192585050564599186273640734672605403273435420105248743806388943762552779653087116243318725943168962009562888444088266877901231008089944824461159554016643305001198302076655031309503342385751530754250740121334420243073820912521047344303896563799286025089307613057446090321924620996892861699708926882654434466166681864582318858795470197566085135989036260917175480648218778758596259464058879428991269719976157548976531402025924383073921985049424780806569013731255506724305457325250196944967965035654673028177495988602513192090736902376232225413422775865766342129711011230963692078116430026903908619596251818583503149118264692825858455530965127743678477095644610605974567236838715122980173818839294749676447923986692239526005318350184546774594793739158214786329971331565033611858766254232882139154265027227128982791611326051977577971158646355267972404429948305822049715088818022551371043051740470160207762735656429598938969850531470952653903661260625154186860284828121175609401147906922675205928581112218774838125521372530520985159963272454963320938974399675833348191965899190146557208030437772539480763341904562015537942478444839108755545887723683380710763897046305260068922337942347254028371100972112349760587258477378672858075838191406798232431248567919109562120941037062386212596607917899007035346432991760161628547695838101539208843808493294324171348412741611115036431108427005681693296176088338045453004295487035679932560780203917022052475539353619692948224678186552324387749507134899504133942566121414221853868402672515574156848218769019587028555978774434277644923613722798738313514456975949078865496504419181712998431590239208400804918440478922761850884286066102795255771430494737672771656374659139948173533344862133033367037821277566319254040231998836370047255805320913726836889411888576757087773487269537653434009714712843576506494883709481939223532637178511957718837943804151927506403252575863425433371148402400839070444325449430986286774323808505906968239748449277066122854609579866616196323042262047284792048011805512183967273936178852004760347614183262544393000359885595738936384220454975357137337279067239175051740126012094721187714444887475403645914243753012792720984021565573831615075392591102309742079081665159936244726958737157486726109119582376674184493339416474821779874259692029618950655642641807290826452934644321628089812520256505541634164976087814063603617611489546678801507043058611075534902695029448371495128067943238520799541190627353945399202279875384508238388776138867634220671246667681708085614462645238261166620732288325774155188813635259016421553318798641626863424806819298636071614357466296810144642979483897168946705219573573410944580553295794986163237028529874872393806971961813770664462793744366055837264169683189813887817386079560805777652882201907721170442891499121552429316495447036289039550261431913020899588482056534137061021419148724052292000692189567237367571913378626482613734038998499939759802910119033550981162846997545530903793990155983556322969542049023510367644335015291335497213651208084759711252892332756032714504855399267284700106780197520668212898328145340203149277872215905982239252507083934127200504762206191863573687948273624707106798094079270421851285851088892650788504367945320994693994827931487521495705336223643267735591744855342082540350404937437127684048759311555282588656497013638823673170163241414468376556016000483112846985184804749823730941118383728405674889044917052874760626716024278429225168927884861822612686512752993889503255886763129639320368252526947867001934533336307210112999864043142646110582688763774061568317582424932196457175414760822786093056662436168727227127703520694253802352673882443872765523931870499299992038472045242700182977614003210192732965241000050940025108711825062684473911900096540165004925331050134917508728439479739592766773688817457872845028805311263424267430441834820278123965641388062161702357115660964870528116910494074075218849251201043568744026285810700072224072899244437372986770254101384249203002590438089821314199817013985017655126704734286893926134407091728473158830936163732940188817504928748561896393228828807803233833267030507160164618995603590347488477844301999470247357388448333862790040320590467511537839352241350133571940772222765954982163891394301557815621814537519761826817460923049965445405009257026140594038703616019331409716427653554489634105425332511978007770831876469857882532274132371939211704075525081842818908336355139175958579826445703583713178813953233193873371373847468047592931495214678598968096182525326507222867826269203396569227887659135876688317248117660126207789029507733348608436603914944136756509044494181174663085382318360940667472691321014636944806249223835606021933054149943663672361627121658595479749589312425580367868810193713040557153425363183018891019724249599491436200862005168290011320468698032255594878074519457709345819964699082221741498983691822361004449830535133257435695608755875332641536819432464631616894825699797234860258653828340401879197309822985769608015224954143580970741719008663244553440026006035725270544396929486355065386532226934265080220562602321824611353305215982689661282593611265406853983266808869034890672536093702985541067636881932506982250504572033953497885651940145339482167368269947532531690456347257545316378245127854517266104775481266862082464816109584468955592557785030390439005179821086463411675907280337727334302610804379709894491578529020727074874243586198486281183148172533952495138127194606043401804089870049408347326495075895182494072779959039299599326623156385278992088420953795903268962214161764675084411306925762961060211896607136929485506258657543278442075052495541791001423437329376467151992120912996776407841872610805120182063341820228962274153661877294989716312045628847025820939620634267853701719170097238164819792775425014827977556327739307439561028377536897292834139544179467418766330286610120196216131706848942600925319159334759671030110156386448275190560112713993486865914843648196395181373333404412549734099408561653995930504916711351210015382037035312489675485243676547287395155137320016285787309295176283292384377080184329788271488734326174922457007694767634428793985887811490114318574088955722132318780361033619304173304164342766470707616895773919452307301907055292004002111270659780573269213343291603545212104509992916314527164336161460536513929219706781203034962163718488971781549930836338159864013802817123691642617231290102437863709301473067901373039743086486595406367081272117048288607625989040157998433288542206377944525499106378604454501997524586695277493969120904143981576690665292160539133499462500004253627949329544631497565179463188757030392468793883754700484967951401963649850538107517084010913235273912717941723782540521100007943089151769525325109950776512205477204703425907181802248595508829194256319325331918401371385974581264441508567190864986147593918683904430561956508087892947529077263855378873699137475341107236039252367332654519547100655121649769679043006714034414312995242397800866136718219524437171977005144404737553695417298496105696496422748831538863574956655130454004475157449676291546536111134159984870561637337426731516357469275069583237979222805920354033471227193158202234705356461566390189464993355890070683776311606820771677144566174620288610270339116863936117609488726451192190062379937293943346954968262576677941261644764455739329882777178288795715849815067164794483097850564385538026887729003446066930807422634376468718965553101160883610990317988520249609218686323789423428366048143605586570737612363958666558038457697834961523242191776568910456883943157038117738503514634454345221127640969526748792475513649002765107711517832465375639704497740272028211422464441695981705984237779971196548040659621992632957139952001293905477507785984171346575518241348560823376862925510067454768354675739124474220035289035153541733360793798229186115919578450692778645260813691661075811280674719220273946313294544587794993780863601131717440305191690100009200049665449334534438643271589862989349555422328765087264801078104880032385452099278751330266615197397622935420703749012880994877248164765444264132794217052246381883123198006676688102891922693519517774373094585854104231034407896078700030865462279186220877610520813875943143697060982867894294412699039175322044213060272986391036603315370837476686387544302546969014086771072116591999800594170931835819368415150933599315791189203046182566286807510371759819095718788063906870471522045612366851935498322767275256977207277857416906382069775513627678771754527977561888734884139105369546336470959235917824985205041828624230113345051782223402118915358359905208899907936710233292863906034276551898745932996250742682016468546781318168433990612588106274802074956578484528335140180872590169433841233655028084171654385737467470579728892637406511845958861964022330263563034791576611616621320705961558326838338175135311493347900719478261216861554652641997022737524814495569694183430368105620921511351136448218581745553016550585152254668585699255871443557549637218491461141699855074982172781648115103856973147175287448782260394317598060297632918047781824868249220874300423711106229599167787250143875023458906408604269439008269259512383156615973527727216028042052149105517606332932104394091738793777767574433839241484277509807585215334652385326871253861320597713638286237430016006069864986206284470298071381912738302827146030765037009427818032193271293776803229004039731151420167425582970922984443258973763306853876345286472241744590678938053610425495919563378162329510336401163624084517163494093507421888968774395555095615400309373712285196445384947640000387533948120348025707282243602113085490162172791769920383505535266068461219820649972494069012871780945324223342978210291354622530982164747933955713181261093347993123989463415709159678736239415593578817344113317331855675794043064820040718548446625069087433105585505303760654694780878216592414967267158242436072944958404269443017011769105979080448325050582830777775875355522327544773023675574168729697195407057313338655670376115491552546549191963333330577895827406821061717995684836703652445417441151326801393241127307021784145476484086485397678799317301524095943146975063320675727002873292115927654014151811471006347666325584332847471689813755354660285030870022820463767426429345934939739754898361512285845906223348046550616792486370943882673452043423633403578659862775333814906216264550489836256305046553683377332319929600816129404165780442752109797233983902541059495750257316041624907223602899879593244017235679324852126753851413810991749818873306344573899619269037671131867692898622897017852647716416825515741105711723711584522894916550099377995616076058172942185630755235851612910213692250262726683597140744517368876571191478723017861731317646331898314001806936731570389905026600651832110657355533104891792213101080466392700928705998515383371691322274689652973345191359490781346718738402734090695585869077618412226916762970811212160098237230900787613278143829247290414217101301106676312012209994933811216259999688933109039460513755501636373837944316071014482296098433892561396454705867055182199436815955242350681242170513747457379452491543610924789763772858319628412867913894254437770610895559337380182579438428307213304751525622482762965013560862079763318073310958701745406851662641447937994712132222364850363115157648252468708874504073098884582528978106450959077591874406258298819828612668565745706916891244482288107304011852738254141979581954380544430906392678773649430431935494196457319774612220892842632688120237717860797108555771360782973745958792700357783336782405261575406900807609878061612329921241631597653391736859425841937754606463706996050537390989071836243393323170450070661082602336086086364559960018185160559369480277409170364405766219481064112424571639370737763098101409342720627928017747523846478449624773783249038274793195696936016868462666927852306999210755779259163429425677859676271890145881558835165967131328775907765114435415523196969835782004575205109888596806565290541156217739527732391137533746500744963185952488815379175311587999054723147330357602801531031932877649715525052094792979638162531917133490594581970213535752173375254871418387431097104528740161847372915874642830531821042039748425177556232130696120862071239170677870477369353442630764368055919477274477306573393411585207900194768547507032729796015092922336095879062271228609132812323134954714623193599737812521785664703239128725719724444392003010829013548659392474130551134455833250137899669401010573656336584737542382232196985412751046201678785856929890138738211319172000350347127219403035409772065748141154706296110335604986227373678168862068463996405408804643187830750859609604941417095394597622702479145203224271033721858120251726621168298187711756660375352477938204588743274520127701964362116759837699119198769962281170627176018381955241528850234309769728989472480284866238203737356160447558771063642244532592679068542261876094701253485355236677490104488172521770130389264245596423721484537238214468262419903902014247928004989968299056291531561838708399279487058450801983271910775502968737604992619508970732045430143821446919941421498351737136514896407884942666607856462888246273423148690593088946684458091218985014384316788530898222272529829027409156359421438904379907958001002804837490726328720456029475166609716902845789486735245391289588291885394590653217648243737642381138276435905785106702668202598326212992131200603972225352967558057227736320473688400970026587597202174557693193376611107800096167807908815976811993826073853491791355246431482505461715453298095866403178223403668706306170913340879406457916803546630508452391466955665595614182778790862492924165667605496130042449161286911386370377040961145982649005091297008331934184697386397714687451355022005206399246288596278505676012677258187329921179565608684670437843004474698590088524647643395937713800137117595077144862011680327092506208246361498423322375161277576951456434596569994589879741785989746147705339502917479409427948565989980438647490229646585153546502506567447476822901045821775479486782142436137598882672691530046383683455500165620105513928700251490661785646405596778414886979682236085899840696413162953725605476145714734552121249864886968883052459481539767510717970879304220781671832812350557041567162180252894270822435724723639861703836886700603460435858045230994030948923428358918117328254013136441409661690718213931945828573670044295379635364547551384283209377323419307365292316314922944668066582594106118653145410429384207882230030949245559888155707198604698080445575197761210604759143507485883856836251675218714938212675424111271083594260198448283785375012754366553109517961483401570609074127796053512059629028286056058008235110728645416847871681274802544663106283527540725736946973798933560070452011579795836249711628904329705721403279379927613721902273952022325777483074314520435533293056918510732279721467953575311970881106418432536959864930261991442529928074489646412618727884955637565881564305032577888061641386664116699056789896332595254360113400098284442991958463398557407803274888204137761925999276250402783790058968373056199292717980408236784112449061174606765055313106077531057461711249043562548890406441155095318851314306151244745958610963037198253166716492705079267746792221420301192966643561108540671707882130960297560585678987061880306981974058363451603024063070260167908385406276925634558231276809620557085950082184791869777089063721377921438137251825171743806793822340752943206115798039377723943936113278475306532035978014563881242556111014425814729185235418531697278940576151371249975633387455916125383504195835746390322533482751976820434490661842422870266564531792996256281330222627291102334874793123555308187888707318518637218632621515913194657729715634948357933495923479749006832420003554056236539681466094300813052672668544436846418944916432193232937845808714702768595170116180667446127801913459552367938312793805522165822845425869576583461123040506987455271262778723804555960999853159544698963163229555665980494561280657105189779482621670556727546445139997492677520993375566598920953525641257554119209232896782207036353998976515440229800974372952030823016629293512691313743875391171902479368207896410214404008959914321936130310634846112620727471838258854007950792351482961753662607717805361554556840884732218814397199973419472699454959238510319788476814862193797118361579535931058476008372525736755092559526915325652535098520887646992132860162674862481443129518727322756277170315141949978918412486993235730314044815584013542845012238200419131362982382051914791463298102234300644444149013707296845696418575937116641366654348798015853141760652391339684548940707319942135704515079398681151321349825777220981254349225975513426752363531455973523671349207573080489968485144184221466317399084392560526421064243371652959488353455834625889482841897938922335811113499189004498368715803119808768912334456028560966463448092604327568555933934163079264942559764278723535913222466267032222903210328637618759285236534606229926586162826637484907771361808347301340879883653020333360251570011777354818621251002631978549992395553640109887811490772338679836254645994508548026193931946403179206097010001009595226417494837191365080067424771945850267243305205569844273107587745603693481187311754353644872385258719798942951552914865479048311844212509907305029926724194378577038806735120520232588964884512263149112622262747613397030989171979847805434294836911625952917628498495587819319454808507416882222253894918503054164737273446399725597206077155530332146679536113170195336664690457237663238644908986192410864383094572321588133350066408895325166931833361783105679120831073457019719203615256207285568091138648287605729532996378520336520686043085767372707764018743566053893910856388387512111549810872124499912328634004158906879108747556735365108344968711962944633956727417158885964365338010701793805486850715979548948541516693402440379840621680696551741500735555835214420616690815764345505118191370343344995941966800646530675649612890922787428535062336227137580013780638953661224966829275465842380315334977552696990320396112803990041541022933412465777324277166343253596585824069772476677906790343934203436187514952388213212100845211718638787251941867948722532377996883774957114513925504928707272136956441257766299838820789542306523064689197039411083847358499553842995442076669986323932433228315524368498781205211759048465416333588855478723558769621331729773808561209485126209902642180822289037368414475327889613959245689855525467504933119133032935401742964732612437497209831778561907500222802588381904065538794293975512573546191089305082367138362247046951473187517870069834838930566847432297019122792068960638352577181141551337133705397325406777007893611274495032501398593303534695671847048075440279835184924043585980365172801920260921294911939721286941253188953878877777003557701336472174400582647915404388115718732882279419993533260919423065299927424921266991780207241184325520653861040109721599642102644365190625451852342200185137458660714759764084593440238659226705637927377163769693052531353512134447159086203259006042372433697498613804064033153592401652986740550262944177648952816515889431018650484502739439924328818214591953983216046017195760928802472863032609754400222109816716823845296028049948047675630425254248905251262144405860930012733828165686552908839838392609721270932131351814252601696081710951028645439174981446258650070709032705761623230188483170203697363878232540177988369614103058300939979644346165493415219642115598000295067947940196077698394253559487305408493079234484793174892530946220204073282537179323869358152106978106183494926917374916637536083476418091119366100272516896013613769924449416400978357557703061793891883071743975698800805082528195605189057071943633078489529617440107036131277442317110088149868888445638756181338072088245506246458238042562827320338176737506888098859244223172701813201465113090887489503144368150834122089442856114686707014567511022243831505554346511156727567294513648462042378522891385769209558772070363789380750718933488027285003950220486632899098437393661581631425181958204967245512864320481197632166325009034498683592022764376879925637758429670726688240710402703732319930111633108258640707893467853902946558840466054728320372935493556272275971494013231231995173060641573584021857398896931301272201685318473696499744254310185237437321646922696607159032578013923187601010321158608969161214099527859104463119757203717303534184411222365980719832505222366760350584219413748221902590738913529879604200980750744427222486064910575436032149248240564432646554647920418570366039393743115637597452160277603330421018979513868467630792784463906162378141186922454981928454181653757262435755331860009212145852508668647192524697551417397258811642595285904716394618084224019205926453157004860117272669353782679027606669492893781102905954143633392064051993530076676756222722454802559370258853314234740382845288845399974939879623386050132954193737797021573997615841992508646681696214302475080097586500099855243871741900639437477213296126669968836764977549020417850257289852463989624428609055559932693980111004867333534644401658356773703996097855464499634868880502206512728166373112355268717276280219332566612140919805123191715864621883148848365420486683852546112706022495660023489882415757924286451420103568559159599863730655818591995656002013910113588021198391217107978613847905665686296679916253605281130597006968447930177654425417052352148122741325509888433211986966377419684710501884530264489561007727333146554367870665612914336700185311533394903203060619428062794296526035061859082075749555917527991051022034189307246951538821238431954626967988700746728299597032827796916326879066698148396525699267401903336181332488525937118835472878367290083006322689662700997213675334007238765234922078333088402695869204430686054757778521036583629305590878121749186112232580550277132066078976652496871727080216158246430682800555609695933902681217949436132328990540204966678455398419804623198263564902886583326877030164370374754569543260968877565272939095474882759418461500698696700670097639852144095839773980465659064151550975784770602643019953726736249679168679238003513354301096825829127603652568867634720383178307835101797088441675676925495599897209060889558034603976829195119571477784819163301179717618532233548736023250118240903543727533452909878432587808119061719339175673751068818670108232831690441822680243132640934600019737353358386100551375918167018857271300621054336782339182164566263246318017818977054207741281832914112566694594872804418933935485824482923843166899543690361421622310105416261835878760770973766436865179334453251540100289335963732519972859583306965969162559604992498501383825313685759528990303169809100416722481158886858333434473693091995969313134287012541619347904187467663455638844388760899124422472384087848709342747132132760516571760636784018223744796636130564884467380545692699716918801102840402592289030946413098333820573698347102011768680296638780934990683532014892005114495761526417003227347341573310401115758451211214653970366613553859897266071467178237475058314241506373185928268678041900381059884143112399840339568124090229494203506538039984599548614865768432349162035085090999363773528439943321884272453792445225336285770064150572124396014409983188499932455024002646947154490323513358985658725499181916899954061831547682708105434084485940613046712847652901592803823338685670299772890438432041176494571490254676269387510113490151739072627879017816846381476052717379959258939169546427969228363868220947296374048668916070923154590638319655390803986500831897818436281979134238353673706538482548094344605656959986344298858284331552848537481128549752065631965139475036494238459371117819251836287091317169420559426391567395158408223642860988795083186711634214236999676115471169899058157401372192938024810712522090275455075710587696151662089773589845081843630655814624259297095794602298745125294109724492957949776294277756399703350549929872142020400567336418492009399325124092960463214763927998328784230099476926267760566047460404150935158333951484657172384782262973120860975260694576716304963283620792831213137218217356587333200327905354391828991700335930544045085624234504393266488168830435101442585346944409576153544571498117306285481742189687219545039746615810706688775410400784022612109895246674965237895795878452155645899343942747420545361584186823457600887117319422763502679702643927856819872298950956189618942905388882429831316741136019853706035594257871853069950283301593597154193988750363190531516558119208041940262195729071310928818096389636895867213758103567535053819923285186498755508154084562393089829600608051225241734349000444782764008919889750673048979653915451164656746878857810481966096727861297316744149980244285674506394982156664864879167544322207066224522797112364289234490166751192937201127856372140785972565738635497023867429289061482425584678889179550053439868482025811845870499596867590247062485025021051543655721875973763149959131944111643519038101861265676455963566087164565071054763660843755458442056887615692256683159184166596171534228346432103245091630352947153511552129407767396375224893319367383221705531311883262843376534290855383923536083066717730058819612430331970235733641735562312704914388243946557713873117878913725260910260962932895651169541246204679444179622071497960971009157889566753522614518843311911227762116395947109374678220322498470307483819378966337020158731810412415931073939525224571617401200823407194003018012463361189396708056054279177058857267509361958019242650134746832054597671658020636776809688089638497167659706126104015289529970849466987023732807983410754975394727207567905734202713737807045763736136704371950683392768578850602115574342791247603435356529073024683750399531444372828226080034475876639202213466227949948539585121220520902453434574365172413152425169231600090176027890430193485605698620001999131794100390204385452059782263442199432953157884267205597971166296419705193870856127938849685346184285175536537820694355387500929205225469651050531127595979002887821141984989141336774374856462407779812385157559891025581562055240819923429478249826919799885071030687361900671583179722938051016128195370185630641838107200470788368672679396763944229732120204831067104023088102648928646266003391420861026350018568922360655358263793097667482278860006946191984526296228822107567303474103466987013872033659363871406805828770751589382613674324105456463786089776177328237823100422567990309382533819675106991066684217061839910080246467105572172161527637480286056563407150912518290443916024258151287826278960204412632595488585568410698316011035342131088214304536642770711390998273612425983986810319541830072811602517588308064227978635751695723772657612775123364371357139226830169875690232313667514014111014725186058189020661756852946654819665288327514174993944050811480522179491809993338424931878695777253572907292801829356430023393473319969549701777066280901080831767223179019890580076791934965618381118606217423845372441854444664837205334168773758598481573399511347891113027348484487259064937500912864619507251249705475131243661914665064445916236913334051698517991812849345914584298831432942598272521933394960948592457202273346568567769275883680788122413802145098486542974724307562747885687587263598213391538563956297066632875410712406050332972934012828281502804119981841207180810100283551522720390784944358983947208264047089333694857324196820636064767585107822236027193212147210099937081395298885346418590041808927394981279220021655824319127383835282760438964855130192130112404289672420513527787162563006967060403539850542281524898462493909674318773120658644946468288004475222338744691613576053573962100462629351669599594512339859562818732029543737873220004533425805930087196749132315812979423975123339320099678907716337379044655124570263398226195380561103535952859355462353549586422006745498573565887406465117380754009005829546767376557611539346742159324459686631349437428664099576423969960816574266427720477462813223797185254175081289848852700429036125699028428062647974753664489752513270595360427608631004678453836544985913995125310099735968906866308120254085122193292769825929293518771976930070022074722679953649429973050789716451682292676244433703918502594900112353552213148039508654469773565170541505953643948617530556611625506613701725283416096974200329094721319898052544262689291443411348797773482795097048568866904327059900554356823338137714635029480638508053189816922407200761495574815669854678066580899117096045483399854285908703495298743580244631076882829672535804703407364925856427029308283817983746830432520573486925844947640881878040145783582927376444283279989492853957228662053329333966577470852000586613073062286150795963930815585714034277194465702201016745378202121581464697115610209531607550035931305042421826578260417952276502093560854301229892382065732490336064362026221100333997187822644096344034957808149689114073372620584873654340411443456029934442982061406490976830110910700420386460691957553073945174978006800622446238347856141723306934234773686380065734300417080091343259970733884782602600618785951599762279255419251704844520003209904668115282848422914302673834023099831055080451171482402364026656425763403214598807028501103206952547121660721224306815100292239929319017359076397920433012018296538188252298298686065467673270113142123649337187833811393366229734553898405591158254827408907462017940925608599729588142818160704948898230101168423604078762665718567242455433524313741620252175403569811934398705170487768499129126082541434262778909675479666411057467407565055058417227085821225686097978727145437645523446639433006538213391529519302624109169055957372317598080117993431770878351662004368826918613309300489777461032190064260160916724059421372164937276678675768876887668884017656922335477897516958928860892104577267364180434873470578033929065594406440155936658183100223210495209291030207841319027519870170136339709954841597070571125415902872058487380942894485834567897361907858234504767367602330528484600397207831989544710435023255599193138894731371457094418903822192388799125034524744702297622549176427320465118387146408552899775251730480420794378657422425530635321504944230321133349393053417053624637259385530115906335558230740891064805625577877456001421402864320279235026039363167983406013828466208261970550315815621816788558989811086757785207820563670799598750746334038532126491685603639454105447139309439801225188752391056528909060779013537640156121987012864299561934842964695524033558575517273932948070223985849948243644602306394133003101817532733569109468398057563445450453859699637670760771845955683220087781718308996519641180717255181050507081196753710647285735650091806550816446337159381214895674357575464994163812629655700232896202977432055760971190562963537010260952770754086928822931301045330527390403911967857208835569324886240768815444118849478497707509559586157874743373865341816183230416915362979675554566105057924637182470478815240943860241122524962209445532170769796168336518866308543871963641867369864222999284579700085816884209103278854253853158015998458792871815045344347688517827027426550267405733260835333639209545768858030913040004269790032481883298991745526447728178306714878141071573244996219598142266549126591426081111820144337700540222216360326735996460247109764561234625370797791742809172244057983812212764652901525584391817918551181732781551418572038019677836532060242373251942333203076306395984863329838473036776429721134381209425690350248814787397339824542041053769564879314662809001022425232072361449593906342883011450912135557771015384001058436536802380837052682857408989114800705121585151861780298774270147813849023698258060852565320801795322617632429203734445543650710889876216480861816081972999408703953569246622828872635268583116592058995561463969355585145360622291677397526953955256009622051259890035954168031026021808303573825046889287503238208935813166921235609484101988159451696703636917356128376056216924077110284768819226513830516327208102144098183227971645547233337904355145087685105662137677164062702881901320286192388370618050243163296839278718728970804512728632676569460063695099028847944610467021689936007681745561240239204259525924796775896474191251126502083136386787364138608152886366359181837136266506676460346497233829932883187132433161222574770518759417654352064293053242586240057009239644156150603073180720930400656263713569347067321168246377140513764710858818305110618435919833602409568730741562069712728144784562685321646242604201168155057980829796179654741468289185887072358387976625915927486012756627320573942514858290131922053255479656382375814515198533137772352634756635197722972644425538221988501779520538105185246028704672018466396338596111674172403679776073188767988698403040669868309287653578965581229981180661136538846580327884496283979447207314511414885223114922070462527089402065164897595702705701313561325313709937966975165978150241433827825034940428961419095274693233306509373202836510888724314569797138377140349569478068430417888170339527487992526697397386928115884683989826876433875724531399381677494478231172580418403315265816125605322507116095531243506999319343699788332848593120634835984849269630262001935482061132667570118930310715231205536908992927395140300431882171916589395923628949601977565147276292164738133715548058235934919317440159770156048912958759887351535655188677765248031603590386437594377655406127329309655071991634348566002177575383596488024832296011382822613406235861037838103754640939711781310978734193259930103510568296701502257481632324481955393941622917766664050102709707106158455979227260358346382723769701808241430408813273953853266850908349640280633817089087265476917328984595771840156795929185405807736577174357355821522904421367192129960527171433212349637369688054979860247060864118010570282286158610608927746500912264252902465544820891161819841403082487759082994495651014872204149987627392744509605178437211646962534945087305637712136690490274140351751953924449735506786193775828833254775456907155957949577288850665295752245591876067527689863402219683346707824059612741641919599355773441559610344017803344294154482646185781121202144738270855006053027765949497158324651413810484791122672222139580686074985850239134701434680711583471082286064353260564219847343775020971440549180292273829835073203684254906008770186043330354241516570351789211899855630417080647648981712865978756302574746177621239966419857154825505798048067686653571518714413105903721510743512781123038567723627123814552449432278693797520556914763856898874303080057677609516670834135090389780795494915420399825475946998990715667503970064715191972092056109299299843843469623887795582506941011124270958980892086792955407190384642079500267549917151725087579990124050212203465068642007619781365913401829468121820543175900983717321418920303238287074707118730199737602722133829501409466985955347376612994033616150937853642870433784337628315632861797810724010334332636717679956976741489538056078850613085762013030682789011042287749865429907979558713810550813423983710616768600767388781306068673335580976468674171596397010799348495917599170453138846927475658308934347895054951606243622605920343369765705061548392397927707154016121096852856046558349963096496268519476167690782980335720034924916859918268206905265526271986013990375696639542856095037456070408217845827360999421418255712793848712377168612542614293498406008296152928754412342104817628204261132889062108652695094474618031678629917857816533073246164794535493228572655677855232474752244268298986033361051658788730141950241486825625328729909980125423800334042790579117512882049701053021679348385932470850331253743444036662790235411448267029794944179917505850091405353782712551607491037226990209287126002069501415505788519073430652413359869863526004805215475796369983115048382653294903958431605679398337041149713343838126549248009137520510470071615907482035920126811314904231930933721402579919917676015622054801081408558770873549407745194916650828911802518050115370325510098244452714768184785741841034752348068508173530768652547521769024050802184556988522392508564638384774257452674440839851711078501890065219536608823392008920846948998198019049428358468389521468871437826026877858973072866398892057536871933193302869909954534474495227968906017139423005635126077731621766216232567346135234107139035775343063068892112648587338578045932287868133164816107183237587693599862408408329217438302794837364388646877401920215901173418363242277594637194305307172480605755689650558887355276116368582774104228069417996853392929112777508238023053476646026464788995757801834783134482645596709470205363885443036580516699336289389672112360490099051958271268092331812533755164297365556346309693396462480066159495383684960756759841878850363752496366115919651863008205288501755267045557961845920902852185961151654392474253928690954922769025181094211764727458282278573096506608263000950967074231449538078664049718500818335186004172106898319963010115236507865327996617957207690609772819348357419963224298891280716628857570217117423787701102960914639195323904804563368886488315585204580016390240904100177686142686633674593001347065001814182430408899480014596146716223157734488408330199105932706480468784972482328053694342171396354686974096826144979274478922328796363421314322543599889742333967328150169335009649221216330090190886881815446094906055535979100222213710351400548371043711047540896076049925213209386112397004576644483299669373949959995251562124202656021464667817007482417044725417534567228371778992135803314718873236097476490564348510162580271887726855772952804967715742052619511792094086684900490130945444067708685797656895438164384759049656584477596802598342511128243038806799140645254158529970474936628664635418596172809315194690130607871470088115655598424142000611910367144054064771986857899180349385751400138818715357353520035868433979818091553196877575331097554074357664982228965029198559222395409972503256541465741448775212877923909853632676564625518870191670917338436058524964321707802723235585518831447606154495508663818445002616735879754698682807144342680585930863455246121184273670675039209533287925146115622197394630685405220023338558141569725012723942651634020158124446745533306043723275560060959839967289280397233603225690262665695621258673994871002960201655357425454422680554686618485696905637427586012338261657314077662490504338934488304317818482499372399393594439343907080857062314530361172604174074408915549301967972224782374147940012693223614518041787930021064242445170600511544370457716425369690626901026454548245501163470076387016168249814813648246977118132732596651089839097249430431512681967515130363457931115645357918646230151288362852229273619211757352332594623173680619110033442695033032439975095941339869287466170577166258829198952410076733687473889308004132154972115149444862385221438912166259272720304712480468640506435940319010047331130253762918793526575571283887013147380080757046515133871546560046185741458319874544328496518056045851213401796284671841231067453669535579660589927349675974196152591952530367534662275474451681733153274060238091720971785033685188091412150885023176834258476947311955191813034084855952466437000591207158942207907076263836840227457845338510982357257792710487072493246977218132854971257667728430608656218929524991558956973866304911225372066601976714767038547207615451310512701702338488735499513750566704595237428847638384695408382859909010294724908678946906232732279223479846640470979932016680089088042971413065782255049161374788517247569444368144583397064940713204098311290282179415854584537115626838091708786157258348938255855916798319118674460279260358193245522542311954921683701744098058924854527834886729187944450948268067652624332527396910585202226968210113246137780425090305854114879766508110884813506692300626689499219888475065759742148340622692339670848313219350449761683297003801566428821935022682214300605360118248535601110461654139212089712708775406379564259574418251333120748547860152886916659195829962219456202376697073353968491102021449013160706717088026327165238336863658617960734746653057713619475541838221393640433685426536735742018836826825164702662153528163433321517946277737123337713088125310814521477522667030202169294826144230970211135882888064092297017323633750347145677374611376347108394556715257547667055110727345868106995411319681582093194970510666450422811303046707339530703516758056196629529122029664552334063851710315282424079218086635692008792518528161642613256582331726013457777821612229008334444141978608148897852238219864039373471560036893983263729344139394018470821016787249185131093915111483403196403569366137044209513374603730070381990038679068712981689436161808291295348311944243296645017723924421064125977989199345837100430689052559336542458817659979956521669183100719221865974962556088772029373276957749527657064772896062159589547152119515266992207835010633642705659151874873902473644286300120013587246601381297102486894163022635120462388038938615088416696012747390540354853723716943579423232302609493678504230571306919094043077279286487388543975741839865978005663054953873761513274771561780667377778580489444334899261556202033574907123827013342736021196507684564896147312049038664725713728315718243034917962491793044900525571757273248400601532022821043032822443529009698800846961293574263671563183620490702174784540033659624567752735068013008435559505987083085228001309884152722274769078811565324896128579140624382845078131404818264905088976037318681573811157862224972489151764075355296696997796076842854723246168719823503422162171722647712887333503643084118832434335756010113439216455832587512211420602666972645367974692749963067818417021449385942525538723840131404625998714783406165382062453978524509890695489244053342515553071261846682064628028255346935376848606066280873439152975827782894018924316890310284965183668088652702069608197424827657692650968809073148410768215582601425222403940853042072306382813479638607174382999416156276504524556160663489502494303100210065668925176811368147944751133153147795900789292965915054286798634876937619393320259936786939542593754750356424044965295596643153334532186506781739767900303244531230545319083814946651536449967623610025021774903424542300658784049997654504963588489564402563576843466606533597335239723703339732076131896243263569749811634390140348924675849510391109938525045517303141604133069030886319772201276263730687003999110211457293830678764873426008177883918718699288252521420245003047702783052884422771499924491276949588225720312029715570433522183587543178516579794355165273155482517351496352617129120778706365872696144951774410280974690471743697379862003500555091224822325445067020010391147610314264298370201778258275905307735627529204640640364631182655238472184080834305638501287194663642236952232105052484295577280031239290187458535907913867066379450636311758173681554486153778537885660139164117012713954612450633415738599276521834909171108918018262428463126780174664035669383120466188040993330418982645446585981043502968770144215333956711610758198980430797076637051032531600477583354707669438069029592507539104884679750744989821719984106236247766228227529455045497803264218467593542710049409486999336205059907637219017614095655678676153312763070768959885286875813288309474585390848702382749569438036207032636186990904533872006269351146244484726084838434160922766362542185458784802797025625675185297741726052230285913324032441782651281443328201704394279488452259066820434031079284100277386113504660644831233509142766121767994224793982288039531942471612840514413094482017289252277752184116035208707671669733691324230151761872478937011482814761198514652817380378419240613651665786152516155235850074829734255056623830492083706797496136062044383003935754786824367534693774589544700936050455239563806303497086877672950451020996503135864518605737173481644567122160696859677523737920848180437802764480646924854385590028433841881262140460090528634150604529751643739863844007966326029834449107611840563349971499349060384763984203680447205012392321294318872968858814122245899866852500222676511665803071568914659327768528098960662485616260906224641185648271484248254153196308374253468747695647960065168699455676922095393788594544023360402926102612119443709831744040338417654471584741858385581340386537127772932245999549019840304768278390043985565219593559805963615419801745719467037651705386528258592909856497564769213114671493869502143696059093324678674682872452536770833566675808458527436419749343915521652812877291135127909848297012767487893069966462914865935941657923157805070623133775477577263535503176248762152616776325963095626247789536393923239389350417611842330514700919674188139442156950718080230754942357018455645155701902652869736631026426598416909534410877915485210773761811829892747178947538994170333734841159487506493382943287690441935766285477680080066937452059969582278597839305196387950121902469053807892743412954469165568629927122972144108718586322892108341101351732690038125817267419670163138250085062781279596301471704436776905848312742366673213497559176796364346756498368025682788410469314872031681595024810483921553752398627328182160558639821328018165651665438830717110573484329276285078046787317674646479949080197411963590172934273625859904534598264225921326248095817246455891726942791988645025655093405187945003422975479766837650931165433880750697288154066170291157293523363597555894459576503513716787251250771180181147546528787216919275330713729905155451300526056892461777238538190921168372121232806138632173240160958696433710829463333815085335716129604856600332170702695299425663172603236997002991286638433777299117327278813454678785398620305605014701010468663166789529333910791541437329904539836687432677394965945713051065582479148914325159696892854711342283360378711375240930759347882827979358991183417983564822503024941834209882362187812846779303045467590103733093968931909651012783647986913782849372801886577139327518706053883588439834300827006245785603282407189124167813723786467821967224831957304706868156771962397374426324348799038451630874496237363628343386098190447776387092631786417280031147853234575065905488116143462191119772215838374321362719765356835395080216730859305171739559320484649259738292645013197071362085102385337759455752222780856254719083786981573229698188909964897804615870584325671296909878891819662322422246334214434935371963682506324986240504004258801558936963435388256382688924485616115163887400771143750685843822235845324969984039668906115978686360798842961789995341648728844527844557031313851827343766952177548221804481698446183065633951381263026903814017395895534830031399677175888283593205486518956131646461541999122705302595040737715785355797572561311705609219109015924969807452052774924463806466316094589962489893454835088659202199001679858913044902122756444298594690682970006615317827728886813940674048008728843078548106605732114725958094722520533030788875453301384379724411770640950949424879795253117965005093647165863505012171065405423086450863150987677299780186563259188091946428042484764906553194918833500662160713048935324389551747109810495558777355476549687706027822125547168857332535532943123377725951073791030309452885396175006154495734998448569547927182178058360097491468724138999930511246224192348400947291249246547925579221168616859942394857050683906540954673750524262987019038960650366885459287086830571761098652670680441866680860471070428689377608330512906296299018022236013102776765319124941149940226355784188525555248399757461570956968252868791371504354697245717198286044922606167784258875140303153259126953215130608976397898580237059613659220655528195152941770357865644756421590982931045060265766453094585312846805631310356072909263465221024124044620614785542922397554241239579327114422613875067162734607438985120495620655202716219277183080248104726023669552842181379661181625853687075649940197477869686932723592943744630474189514103974103765892993798915130434870880836278099251979145402391912345292678485444402557105809728129587679251048146470980704966107217048158692871289913118446317170034217451992761631332345850672531441990454069549108719054064430533334873394588900304758228585763262789749245419888591088118283820971259125051555314892171577299166233069721762522236882287689905620792413380455563892152655914582035351164657843960182775763504497460421171130359931376222959933250798654865956191694517945739922349353305912857280764461653261762348866242523248179101835973292810216165263530503755943911565385255777754615285484895883537609795234779579140579584423434196640775159081054503271383745731819922172012673396625892361187701272285697790245381315204616030506438458594696714685331361124498062377249456702089549098059935169949024809585323816160275508167653390217963417590853099759560089426150929617540230295685190504605814675385378914275728420736507105615137015785130971034702508914033814185655007019523576656541013752448977561616768849074287670059369361145881038381041623156898551482215515246706715411663934485892188037005118606618896955169612087691751869928401111345547492273612001903855712004288900724202247949158603239378496113490995702331623042558747825875353214436507866630655773942217377613279030735981658252977715515406121910726326753641795906186430056450647664525272063251616938792209466515901710037889262886019264019762698785051033424823759208518771122383369854266190425976527154436669178387364100662063131817744801345278073662938373535184272713310782169288944710513625143983436596749983106401557989652371216285852972524114294099681461484052395156993739588074151241180105418771644049572325174480327023132865283533027015138657418041489254498367995712489617023793106098682150348788045252104395935295397758933201788256221100864948494912827204739310669243708377893445106823439430710812489622172865731795894091991345568384712309243689462695171904831280722073480587155764610099878070056514776074714349804381230729472295376769879310926806618416001345274479159498189165218493042600924852315555262661275253756882144268767801194556321426134701711772506380168915063212142182181557985424902728941020913951289734610331634794646503433488918557779226749520246761658362668124336991504862594815517699648666358264792663968585033424251644163684053277694366385609400801861266867912271739188230890204995814232581620861559372155004850372673492032635063650931568332889832423845790614696052826083022376775886880089339974081617142273791481020591763891236838109717416630206378195597525381431761528869121712886316915923443869366166678620216257303991843141336932867737280972883592012358354988138879283036675010107085762827276427902702834902105680760741418245185339778238015944712314288547720273883686359243594909642355611313397106936571449424623317444299900004092099775281090404326971789629912863436765607626263438102496457240548573550297231921259574584759641842876610548094006254633735692608627981085970201429389967328671644066966282181350258281740166407929743547232751147402630849121421727399845395868319859875536984034536570843704033252258079806577048861480458337605765855713756597934144051616069335044160992726395905618958084708774867032368863203461603654993474976065825958310710747309366015771935907260016251450065223199910004137864514783460938768799402089290797496045316173017663476159405917677946741900321656414781421043051355389279269910452551633793250395769098567493367891606711181566058918597920904815366107625380013172258199096855129384216052956510277461419664203818188429805930999175372925975641837178565160586180658257087466525360938283299482945023080507460211201194664131632894781319591131419206275870973103731834576190793205764979213155313137953992309723808961731346230820904858736507596695501029098166179611645714122716337877813006733183559021259403722080494810079147794379717507963303285880216598307557646777565756068452326839149850096496523724157499086101846952147240451479102151133338277406694086736210126528821911157192470514240789276007631091690394799652686540066997668537827533684249243875202807582954235770971463345856226649632011900380498755658302923691540629128374501689669996106798118275474327223995466168916223861551324965167872269438223271125143612157471107019643740147456791958039202418358880873613418643146000872651195566474178802155340994232632054733406288915118160478209326500499570043842902961983668970004733389167329780438025350582713310380004020014245809290628883124883486761598193940611852418730334268268659906524118576693320465490954356385761467910932957504906178160084862700542800032788393565901769064010994508670324050460717597039419341293766035590471282212615928336117377398433757391599338495740842989053500353159619885407209230648996109270877979662777549882845317143309197939794126469035967334254319531956054303822943285846881085911255237627625892493009341625731355550234663467593246657283660828938249475325590939784897657139896102887236593325972910922154787835463480512019280940487988329073558010129060679669720541108070890439558188570100538035736202847412485591537402734111075449435471823429891857304732605422824783646990169916360910218254012894755335886369921034116315560443262301274901179282085235858899986798027236109791627043495279511544714527177510862705212899710122037343193262599168558148763529974722086846549069836849916676371484076551786273382253605229277377655905551756669467041532492810350740950133215486716277857042875308822004761027208186132820848704791506930272097745871142003513540930908960513904634924665266318540679673832640131186351729456101529604365297979310240914994177784712857675652148420798728853586685806895781322426096404335262510777775838793336416977412072627615743031809321480025115984599220211963009939879877978950575404406773116475070717778716651282981256561451922244078261662714154637756230181642047879850100347029540011987235530023208326625339353639551387703982791203607298728820138977127594589860651896936863021095059859136185604335972697952971974338262534354271539723699994118926211181511416132403379218658323182451376539406182905688715916895541873262367137521274334663177783391788258286550747321441933913961732241678623182386245552535038967498207005617406439308303607988247188307289194962473269109183332736373775274351290567518083185598225215403800099746057118504208462490573964603323332028963931101852613290760901475805389593152297541049642666192372895002608614886873561367954370022543136964477978094203321134915864544066776753692623391041518575931588580106964409000170422305388594192446551235895026889711869983224915928400887520187682557413755244346479301167166110012304473533526374074075284106585089642012595336430379717546584741894974963989139653837751050402906051653040747476750630130539998315169122418287973798921151407428835514938211588765464640332004112310108377207219908195067710546778929531816801587914140258474819063925509409726259783150889692685073069243881415070808367162704025095178538707773039576055502791215582629950568777802150247261304599381547910202957063939325594190038721621547140300306334091492457855414547250535526204032828460471174293558931580645958778156111394311351678784173250842737609122966312612340629809255849842075752660292739991920394229962159755158042574441843937575579649886923633054865906240042490700976169430151912859452501227879750193326652877868590713344306243437708858180985563639378988368016160146028377262449392667913877270117592026731216316137648115060087540429363499881688417352369602465623666834710315875037121962665888977448330294973580185774562568651211345281466415636333952915881433487702885890649063700941183813074076831206870332152508404611347491300625103744142420517891078233707184480301614141117875638824422796025532817586421470077782291110477086237479409390094981810536880660289942075025067015896143991311662808330821060187551247949621835132035576499155456496576012508026354663468278401063365214261246382639057899514112163428586484254975693245874515687452260193682958571570292777802671886091845762790091426064278229366811071349643057131657779509635390805520994044571818887685004697899012675554411515180774256746571693613606491304379137957918975216484986179893319847901446757516997976939507981965161142545899425599082686054158231564376565351705140609138019155033226998702594510611876826560142281628322870436458776211337527983181689483823397076141154365618741973242505676132902587947985934458084041059819690459708077539874465904359301526759667396070955570283816853100461618694947613690948108076905133427484166539852451176236850862594163842764485523296088725368930164038626380245633656098440742622293913144765118714583153226239210537023933230624051519883206796015122451175184589831399035759137375190221685119255846910881342014240435474558827098587362998527716583112120095746406091639790760511873998861058146631064610006999657389172679916752753523497763966731703984365170870158468544165735733619266338675266991055551628281987817757489402366670444573023497407404149938445631974800093423466501977329021967493666970872336251595197047494349525088423114901739237264738823058221040940687301815911523931898623426765335811860844412724896364320644352821548934866140044538818992234183020901382391892432300092427731470812563445118860503235159171506239905203481989833927999730946909848096251552798049122997950563146038169179655818367154241520294698319059976011925770515085696218295615685060021566588670807811255079948597863604837255464156854420367895718507581104656329642803957538567880021323533787340268584376464843601295698274501935674807172606731472636879506002353807886451567014108884817828062155019892806703121019998095354565034217124802442405052120574409939581236106937992714115482427461986865456257143242180396885725947039161766987202859935528736186276866534855197528445779982544282530243538529553784688718047002608417400240828300731635762767950077709881425204812391538843601316478401160944010224076422816971734378057822241832123493958544782561919949610799115452749458139973579487244897487851897590605495700966187811871585081859293643067196993680539878252005800586419175232334988002746940668713973009364666518437971844936721570869415989342095083862116733858599058807488490103507050108335230842985781493081461582173301227383030175811437111378197950027547331675544095555369813449630782816040088340862994504400479744360414052153947089367982148752476319077857105614474586994641981290018849157832595859397271460875839525124294088391407936358898278635914918330119926959165887500087323920843995712732280193942596898563102652674294390987280124112528039769138294887258334204631464813617156629538969369757542723015076335488014236006618572641385305770344229070388781355171527888553429843634122958433815495519031604872678095363168695128780905295650273634888424976189646116417760852596574896366615220067402019428985847026698808312439361725625106298591896776607634924787366984185616947210734421666737453074017858747335221071451011078222400139366905299339500499746389095129481400430340021450746916128076733377768419109524204818361980989785328754523816071211295515666453505853876550689416641734252163894836964563815392185704714826074265485739708746902038116325134339968167296717237158068122542549947449709852968519376794778469580453193511370532074120869154007169688174526671200202686985529740919878120046635400630379279542405999118518406466266225024295635642363707609618130919953464353644690737814022079294988354064481338575533432704649312572389771204027074372207738582781807849479949595120609448305338206935068349759747647994801376720178704790144197078114246880994264461675000351915914315567516776469099286004414763422777500664127928710657932552176388005916983526773335351190658324106764563706066836593748225549645090658022895072844890650505290616144633744859502603493493084751892672539859299401044161042946246251924910026845101587010626824840835051097816946697724595022136194832263023156510131477262439065930024024232547255985257003638476745645999672168020546684439289027611293399930431813896475583337183743415663141858964967574511013312991048845302726136635437500269116704267299085703064797726709119037035849465884525819555270081538697695561443717832791574782480460968027370762578296911096142514948605891640577896524721532095103345372758409421601812017484422062350461500867011467406718780350567623257628456325768175232489003982808392245238452187892327742327004752570585274884187492700353740403051399231471635128933831689388355471571484390917657346979991789892334219286650598105122066389787547175486060363848552182133702498320440149923057509489746795845103710910926338731361528950762503223566277042861994830652365273930079602166724788022240662182057872002426500560233164483401115860132651775643867847254542884318777240455837257562818782288273336872391089557642785601413341766520021104665242743983375633087448331012946552244976519805072295419205801717823293118776545099590496780274248980812795793336354921231227137851651590949600171377906282447410096174181095444628823750614996469565005236930079216740478221227534051586395972433503032340009681943658621476884151630832456264284328380643503705974909240923082241974055088340852788905976393234069948235020119741843111922072650542747378680841908592399729883431262077946827436436293988799733327926459462819582991251328442603597776149283846666839771232382352539141187570513310592542494088157754088126740664814304258682535227306160104070259910328184643175777252004877611944112162561024944844634948558270833946812803237142491068194085412030118447847555998663995243449862257182327678910561189211616211985461385598003531519593076301199566572098005340435576220286630525151491401119973888102314732979462360464985406393948738658564515328639772704396515690306376755805455828052988217901465031371489218845859227134862569231041847016688245117609267586117959067430922549767423658692045260768836333785009282510334747148254413568190495977602802703521818831650854417791204433367035527500312423295588560288842090883090774493058117760790758769050677573072030186089843386077768007354322044445915707328254095543467756642200193228742630812686734119171327792561136536531926122828909926145849876084032301283387177212835710538738910654005913388120192832754719835982513521538952855635734630700520772959928245976688922884741934862424211653253281581461870104161122199285240679182807235184320069839897129436169371914272447600842159691158457120502762351074470289097739104988093983557606872109764448007065547912536397750435769666748180319192961367398589801847258179923341985725634094869854559680903505910541067688570451642089404308518142262654054550433902409610441552113155171744820806710026151658275119882504104399742633222394911934716734495983930944849945910875521030693782597135384586089679178092387765162754990307965915913074173714390552667730238810667466499356026063362304938847091750788300138233780787708113244059441872664098681474434399412227061629386283560839972175264991863835212667740416100829885387871352293012761304972820183974787991237731928009287338275096254167643290179636566199024547474561102935508401630647623931744214250608920447088459205576349803756715350563831761439731403246782491108982852180133194032019146807778099298530173484930326529973976415165540410850418234309786703311831604754990325731066856141885472185145153505171924036236844095137990752751653230668078649748148115378665764932220650516536699147849524623618101855475571131199510505792915975069294779529092645023859892849746816558550743184544258616750721641490941058863029650208577244385087605574009777914160366160253986021529730127735272412512442203354591620038839221765445904748055561247158334674805026897260590490264375993486508747162323727570351833957191339649896899547172355695268307128329627086734356471481516858078875211085025822648834538349108657176015444488445126199902468052173416948528259125984610030186638099943708684520374280625932097445653179893747002993237484391020838525041259246758151960591912592848776530086532417626655739740027300776472697641662796173698051373664768542544771010109999512795300683632146343121479292362670296630088631950124039188527005041680875622403554851531096448370427000503848915183464852176002248066002697044565151638512592253198862222199275381154540910300620621296267263122023306974469870302256654512979188802730726600947052111282420323442153973358999641512172363824071557186518542891656669342296443447093011979752213644001294028029334711459337089440779314911363962378017012488948408021418710289822083778807557118750563360856646320913830616280138095951181193832081222700479559552355345408681573185815635521998513408821710653889782989581719367113575898456206608359898294805642540439179667999350788346417864004345361729610673066580062125230318329985709798891955809036823438515243888204673045693452628116490055639357575183834870668818944320415076495245447107682156927938370783252165049549950811952071395766526909196813828507450780612241302961724099186177720122404082398166919358104438322690932541332102838956587199694607883317377006702749582092071371195106515612832637089724210499252446027995809203170183112337058270739261824199538402356150875433815241602781169510063107013074548846504209084504084365662811079686380399184789447503505636794919593783951081613622971601774112876036125190515022148152257858227160029842821718627462679783926126936769107415849163919185158983166774379137604073729040785361628521441264613113208868437992546206516904771236786983696494508064349793712952744527216838668184199667438995743861553821372540920068713037809396416741923499685655106335178953179497059347884224273621884168120949304817382454360269751184754674989828474733828792008770446734746818816734257071051528408800928871321503386112282647016878118146229939293093364761465642760611324899513111767916784191007039458288175317802246421348140199248658458428639821531322742650381224267377805792832924017448566812538837006043983795961216423788204356446924412394455032229034753641745474744389336959677349951949852314902968564345269551487337523812965110987974386998802945467821866795776945153248790999371158823749574462802464491311019386464721119801086470241272144658191601708118415237174718248159958558035182290960153103212099877772753394322379186569331943614904320626022371881486902436626451119479794485668472514680367490968705372106284331796779422768170581904070807128462460965742155258138229202654919625578248314791864941471285363665818278241900116918849924487361214040474670957145327963209177422760449887902589849365627748768396987306142321769199539514869504607299285343683805510545559902526873319500969002377238501662992190302934656329847795123877765016272179105564364566816422957906686443158907085457176183518700291629985045935476035047798299268973505185220799466904801989694735317527945266749181762382977789890516503469954596640215467048469848008815557321211055887884653414627361761199283999463866452423152252233811957876907857092239711214057515831128559162119972613773919882306510206541832176436250089254924149988955175264991944016237512335240590873474933140525924120122753023248071889007230375899936372353010391315596428485932701589183929845078711945732488444630641370186805861091401173551174990276878385394626449016671346169331930590040271206726653439581478623619873965497600945775743253142077922111064076128920975748102684687538845577495352904550430029410182862568007707820930520754328309033646138120254090579382143804241446743247530149362903936013410697074388285994618238184862908238977454443395075923641589857028248153925856800306595550226962765985533742807309087144121353198070027500360828244539536447815964556406705133108461896761064203002519994487131770608091156703636667297868724371355744142582136188928134608614116716809798860080434090725203973390357532990519388864429949176204682377721911751940662307889151221373255809205736115476169829660529950091438437397504975128238044285457576786290656481116471366899664726976830616963016075799910872425857004291281556757311076363264469582339596131157502444591785509290933382326274739581084446755794722803185386662129213918557451519782243249002359076012711433732143074248413662587440273233110080000903401357210394375461913107926078123514339941179662410559537513304808371319546565377311101850485954303761359368369677197653833997996868503764928687881381674832051017215344002026076310580082716526845973974965946805956971871479697190229644190891253876336420839091527761411509375129064308432543931848206625885405631204575356059133483795843363843511662500773867197830543430744690469364155202056150808506724135090018878286722729024305099498514212712850136391584045299860157662256275450096869120770572600951122940307084424847412146699390085138727941337779183394136544661395766658030141541734129605782562858072276617123373244565674260784548120737753538432721117978211916816882410307953141757738626790814893869031863145654200773133004901366935402876784509622144737434972503322520507741187316557653962177351650512660144787697574047046939997621037941022601292339176517985883783086048305360715178957304879641534128943666623114672737869653205191838017691308021208828032388787764103767228358478411758037108238418390327253708018957588973692224647693864407708019556326645966795520164602106444208438326318916449174777672023186857158743996358857153500667270592670462092234124337249114791991947504780112090057776994758770770495256545178277063935199969694554952877088679386239846124348982621029593948150140135344239948099830884973377550409298595503673045586409967829326028827509897406683119043897709452638308490894391647332067792553103283398478526148830849330284883350414728889291892819268534851064699299545381411484229336439583171521821611693075905579158458078007194474935365279039329731901342082474068020392712354780690321282246727918182343039137289379915427164827105326580956248538372089905033872982593771181629319762019827554649116025643003606537962022207426184426336262148888302555762047566360823755524192812165058821424498698617708656125111605997246160609154358039576324143874834248539414593256534700570616205712934917032605582368160850803910047588133975449656418905202030383612244045543562076404506753417035770138750115858069666092950233932656157814373524296191993509643778547372739033875953215660358631358447845626182616183223146475880492233463644714121413111829386077019921352390221882218346836890105869241770126434113244852732339275991062047682697458478537887549260515667179494075780971758337435487750072321951799749401758486743813738183705333175431270990853582744524878375854255693369928004104628281419198432689418806916961175217498549918251044116387433956935561462132428666329202864648178330812550290908163015903865444992804947158176778472200498835200125891960181540765063114435442244993804295244684018850825833654694599358812795384285079534035698804013141566245682826661661570703248607759891882508957665074167815492939015612240059447420395878907732391076286187003075778120652538493799581583146554885243200598498854796081356182380975223768426721757526324443897102309046098439145504459539219063149173255341069587623281854179417452630379871880428671831524806410703488943373333991325456676937550400918015368420303501352692965885406063357141476047623358729659584790990703063769186180785969565716338652987205876170398672504229664403674526791993735787745446484991382843678551538202548243732747033700347515228692070438481933830352137740571266997277509757721239065177758676688889131343621533318897481961462496137354098842460449656781470666462222601563081432982901489850450441763531578905023297430153228183790324008883450796948912081170175751448433052838078288239782474076193331701500418479260521124164920173812435876340020927422059607816915762829304747397684649974920519205667499808234375347167909309070472045506241567393025476435228631344881703009816059891673813156396019602024487906333497178446660008846993481000092321017985175576903651261022154617709090029330761509822192631075372553378464026064658812659057267291486608405523330891680169297564973556616683839362373001784696365872875544740554070794377448885901480911389357210236289021971589590667538734261885832863407790645657655251071256925262569074927567165861989223683966495632050411248690874609901358894729836625434313381201653487864349316836161918469193114112812180660939133728704721126628169459085166620286057096004003867782408723184099245709322127555810038774260377153952845107885524198894831083492598552698371431314041173092847641023306444027688976552927427603815920149583438198861221972690327193380616667933079297204736392103475615713721431083155541483588836028985947280018921361790185226638027984814023291115796620838149764921329461106359143724618093994719154221247341432766936780057825965127186215693188614695188788687086268518439350864801692608386116909734228325140017609365993620745794897158594387862955186721715615229589982386178780567657693337592066838280427869794093304532937399760932213676557482342296062087581198603148098135321341459586635779091271181426030073666146045645032934903151485846093781130161317879518385244541641510375950528506316838727765013662894363542064882387994144531872160164556330793737260609049266010827772962747931407549761064075072339695232313184826733647742987474274343931092925975701516262902610425770615648362659682891933515551851086922324778131405884335459381381091360696780424903600497108848618434301426683955958205889192667296182540764427314129556162524851230833434633086101177884674077268525358577576808584323806284064076324361622026221947350633537154811147282229240909997865999834504268254948534890683903713110678397644898569903876392858888180498473568863980981272542981898913694329284288924480681072672116703857639102436107801921647880120920357625086777527376915172194573411693793382902440358031632446695941018792880836668694833909558473720471870970556352829106549290505967934397705468676033352323139013714507120450201255077332990739500105623898332561851871638189766237013264465512156562124368927324549607960549965926026756622187985058728736603096145512318669125128722218832056186682610336123722010633732938507621801459726429428210716658118274419829158042987495296770287694103947918212413890254155728356069095760798463393314852917963585118891987344756388708357320607481663799400157827509456423063803915393996018297392018027489046286746942947616510530905679309747365882427358089951878450624518368661551894020912682318577817620243566547628748451992670996711688298060699275924433890653947875156554126041909283427469871337933096239420293421574312192758360410933541499653297435596771116808295167120452432654029198250922940780924341341721505022039268381189016813036902597736132495823106191455808100123031250606115385366423146916857827742722220400854700840405371377866848147068592217011540219549322342385905282137201355486569684929746994842777990059420232228557533715537017437900632812053021004939750800185006193623200377347776955875523443683100760779328600293477030000641650277991177793039279139240789366740169799723330958585614956619525088960439943263364130199522256592208815813761736091738943755104515261697431579980728504809819404823411228953035089316448243831271573745508562328503690977910009611159744276490448813917511698196035258578770561859451432641675209229348493860935823080785956657197682401629806794257666424035309406676958025095902939714320856572318934380038333120389696585512540805529761032126665540898053992203720844126766822474286025176882217945660771015870828236142163720852423663764917503955763838726665857503857190025823321836468908091629840906062124552528379994601901532362506067025824790517257005615183757540029495917848873700841005237918019791736893789201126571330654961341211149096260049876134664709929311669428306069421012469300775454891536126541125333583471546639371893149033786798192597080368509426518148884464235046370844290538412523694136166669514169515419671009891036591974244164095474308844329886633160574288970107390638214156665864880237851842468916526061072671243532669316044381635516920949602389061912287017102015373517312955460000373867313071918628470338794086651570984774379932444616461545531623044936427517994904301971574761006070899983531590020415844115776346944054300944894582071019197221042757343760315926079416617477917110413585285279588281047097627821723897657010120909661004012655199202364406659641437361229861032681309178042574479952524622125251441482056671158478253104665319250755446740437248027213371938925547704972082830833379235244859026537498516918983207294568712474298648041519427116641488985904323665071220053902465884169514478943374524562844352624419251981149112175359087404455035777924423739093062188775670095014485278258690416050223603354514028651269679556425558031805979218997757222567608418061416815751522443366682129979874409984171947327288725636775910118062494348534461925320596229946201370972408707349467105690483266162741213641362562292805834322969415480319258027883178650627192386082396336195689514579685139436156846134771332052876902157861240277992939256613445381033471639661749291680229826835883014453892852242237477921173113248164605844148640028972261943911712108241958828366554185214433137390826454502298124164350448659836832484732445693325624038828835686015853548172542307531432595002905376760708701884341608143788591990448928114601965230597637758562341896486160441977614163580674622604715521388429625990718094060838575637727288531755170976947425045031907359088442021919570164089730551364758559267111068487866337082717385617487906955099254874306778378807657201430356977256080422245582127998730859779711450657043224911926799401838249381162446394649197552196882650560174309022819274323707894503844427190989731544604311069322139726573122380646318276453484907368147765272603391419094650425476716817461123824830484584083752126880738555933802171462621277757443476109202743894490625083852157887455306911578619141831533058998875060396460049786960197018273926820495169832749377290345028428765551227686220033117790654287270058531630591924975411116962696169689105817863657642854690818026838517565344214265879495594205322777231244965784136613590578642272354186419590848972781462902656964904562035696998086652843181337833368004381141895768076998605477876618237874450063266562942357904603647596882936851056154465793504144228131885936870596068091838174243432700588156528196882865762131885578926930773111965345478310046526815378953195339368689442023345837083703908221414244865627395805398723204841372623999929853391842924860280421742049693092944665403180363701262004373636278963240302541345664469494786467724145965650992233057454698593524403702510946046890174951380309749700590501339819012377781044131745419637278998730755390722359167988228729774951008908733663460560064203194845562123234394133821169976391368349700838308272656877302664338652678563612062520531124134508504466774568451260327618121717727257513756594393146933696276640515953073848106852931771379468888163845397689030390268928114275557187959430560341118180771316424953822758563124038207790364284931123515710278201606895294278993946548307290690720337670719001251835848715016661845204874234850437882927647658523156789961240750645455665926065655497338836638594890434242242252180657898534802809734728149165223239960598834135175672100170365999267612712630784462029906793738759174508681966774311324321320068939134150559957527827901641230351200819540392680112986491123712228172898152667745417002559575510241908181946572752704832036867954860558685120385928630958960666631274161141656969074358102075689336648753153673780442461164176311008986574329872052239328631425700540038216793568462752663084161545770365245951568616463996303357289135130375933828930300042323523514154598284062168422838231698517713173982994847778316480771644570203141784079113393117490761051436918428886373064977597904143782073474924058768933608692996131092797879421097345133254542347140690048703043542505927761701074170807746483370459399953000384057817145872295275094150751629247408410198651112567571075739557528113474150530159841298751588068677192182654091828726412396181807581692483021597799575068481257215399802297087725541173879682974171680083610029600341963979657856151462813531180759482668223815658405698980357351562123833421204433105052283037441649748912649854192567509073585966761745865900141489142938821312838406397381851770718563111515769801811310133513056241932709461997210237286026249164531667855038522231837471992798250621240695122985305924596343019495817079960050531965529409889185877232957108119076344894098298797130057242916674762582567684169381834168853678058044415063996596926291886702654335056926119565800991217815347276931540376653806119323305830348401635498860591044616335828822428784581688470707306481432844465975306050898518121708708632096637771449328838804013738802411547201281273792714140076420270863390325120729274711174133227824025076260240805945326024455950452782374079277745770459786032898976667058860293875549379418471473678931290211419933687413416425225619249150591287294105161682615973460543698378055196963085450982115010478342635322066784277557064712299615659291749046201393250966193596140945986377210253128199625488975133876364657383818088416351939568046054273736093172499626741281249215471629900376128434281576908110244458397595669992320697996889705151438127403309365624922396997070191598605280162243531016160768637280497111776519313710340425097961354577510084850909083310406251142931316295275189312031042057351621636732315686406581157708295285765919892874241027844073070709430631747103501904514873669393046353154442454571598425422543212970918035451338611984472611231726717329416402291478464103685753942999277126258366771722835069912023645390434492789526874552112429283760335071776983801525796687717906634644778936552726800891816929593099746970611833878898435858623415936068059811990560862868710700330535291108204445514266476540461300961946815444358502415732910292924723510906701632976241719367704889551621905821340427422295809941299878055271096903417932153630589170269612709765297745003938807929399858082655074943793771647453508009137259067738179261221290261982025283765861614253708937419525305277086794726133497099617062236695177275703367082771086461396990846774665944614245411990870021533558148225873449128827363940775393843809283831435825548162888996502808664558700454096629184589936384119089296572492949115616418147745615392208849754923131917885526735578559191825147461966705412455718093123924941311598079976263057978698229962912110817527175105272644902014447264036939290544235685150585953341425368971487009219041457664285166781274513509097951171609301455443643014006529629380029752210617060252854878260555053274498649210125326015837765198120366197539346500012872658750084895720543757151761220231583765707769856870380110352156512375839564796887949968340838577233415003164193617244886531490533376212695908984453492572254306634826430235341522923366719809073960162314615075048109086361361136440657631545662448123814675098015511034382682677563800967015483964467125228639343040975988090916025089179645323596532603853888454622425723861708683085834466740624818489836698646616050670166562731591328907307270862374047725304056513944789282809279359499074338172953122348472438854673249335092683122623992138411608536955078490110465945058472913660155124886598995551261184585985475342338418602351224050490345127735754676306550416356548113102804178963866039630741384691206702433928527184372108041239441504526919692334162429444333155963885774697827144497274651315259960022457799746042764988669600228633420291485371278593671560132679170813641286849970194820404691864622957841037067825900292345804002490014590441604347663971356551786235769638267587639555701413026274049602148851066964201160165072940725412224182216110997900909338692747998712829544180226320393475070680061202051722229517427722144452257923156561543522531108202641253551955153625198448737656190933935384424958362988497041197147459848838748997416592610498918960865930432119615152212908078245226230553178818405187483408927624931502474776919051487264319887392400570220741507262401659635643728982778295532094818526430420470844672866287832827450821441353028751023706389149047470391726949960545466946009491897499890547269741961377299897747766263422001894532273233753519787408860370007135975697201820837703384798511753569656704237754869996474453504132305695104034992125567832130065377257243513229217554101801609042545980167039307575330223592120166522802742891471488643390198870003174901598541914254250976070102842213675538547755806039865216248770134945268345013182496662751182513821799726621830926417720163991524055838971614114411746289219992095387395724688780154245981197460655483065128230649719670315696799335443073741107173405545962896463508143640620954420206952810577681235514418264497247321956980922406747020200869848235989410284594084168336345710005437191013934627748312001676101686842791143228310222034478016554483497806118687314762322137928204941757851458625669805514828113720304613391553403126786397685221396699236425867887851722816586717214807385450601500182864745651549841852830546526336395531149170634242644068047815500936966532130678021242637796527948592696834076054515271811443487661849831735600173945470290062859143115280282620167798361659593158270065923630893686156703300005714734096216060092594787825436328018493038213464515774153979530266029572214544430598375896656656386203860843043079419907697251338828776007883449569626120859129301661192983986945618923188774456800721877454893076692279943011439427567798200502528640862627150828835747779336739915906397470418656622338779044856854485477352124066489367826005484387075327086771318738938235037807236416961638535448124376082323414302765027991739528582823389740359437636920702264951596458932652283736794220648494071018638484387944543977554269055690259382689575053423541363450494307810380271915426234193515711619509031918579663134203001466040128856923668837993436856064672370533059305161359740402899952879840928550227974383335614976202071663433793422313515583616881221196365611455268750314355665256967465079016120355375346528166211270309980543164107876053186402779723267588527317746638428210445116093190613189485181725320226264933241015401878507370494634416353865344305965139616356158294800545794522102171933477559965165334880815106459461674039100680062460051030179087804634176335794027959131955480056969852266602363430096097590468000435199276187861981784071932376269522090548985974962140101815552097905156618962418884874466882375626887713597219255324177476421295532319356164390794599453567603521857476183792662971748213921766555780396151151919203359327980318601624248706590092684389865846926342396646938824420407311900774784930743385101218248946622257881093991139652964767958855640137802697662443418890610705250023747140279953300245374522767206812658449564130508161658859906781940885036075217910285508449830311707439334373674391999677184162298363655065330695561716363617916339353364299591810199325865090942884131441897581101252265900757185276459157289785063600606752342050871343399049774605566082722493102525925849038392916715464176508873886355882320038080745050931248036229400667255224337319685556333454097859665759591682265831639711567287655542192547523437883913827339485304941472934349383329834441510183437353227277919774328708229351034816073721532254543352391126449332051187938386223170813795497551293480946180312293895500873722810357121515728861643658123229662576844669668331395057048964800656355488105565340412272850763094552822119514969225079983638055389877665436271572059332172699712339153844904274917597472937701621915059344288191858315793249543299366071683724261153912443589713572267873056440160306879139021808856776693726985144318605358280719873335305514875759652796505817898467431374852257726859485073502201047395717587656778968728540175769879128785064154305962456948190094948365706659331399389110971369948576137763864272364789498342400071891531886488747470494947874811039514365128323117137526276687262723501824720688605523089128565342500031161064582907716764198091668669273961115097500709654851651634117893892412622522288607273792667521169944686740962718949367417509580529833709894598033265098169957853139121451999148713182445625695200557700864824772156260149839643020380236105497681140841194246243218203753784146610181826942234460178090181507454095786153767307334014785763642505534932639994783440851843571948090330515423338143123970767159534744468339864224470748383348027253640954623527079860241188413431052471637916166553011097589993130112854392925553050327704034826622880115184446697942044682459389458364506735103962982245744234449744104278171961838393847079972733058244543902104590562178192466167186418998163867728873392269575074513327396659165814379710817087554823180099855304864292607982455419036810204402532143696005573409414456487949428484793509652114659494444970134007369040036100560684976933805220815925110890964419318689264729591287861962022292192193916947351333117859737308330264175412681762322401849202407777072138814861151646087652607622095553235686765505249205525357495210772270931840451999916282788291875375652107252253392989116257956005342718154137389332516575463871272895847893840879152348814965719989042894069088008946132142881688396020004976210966595484066373951212877446013721485643349589826990013584410016450213448320961107841229900264463780315157341818661912297156148163850761929750840450740221556088656335750620958902870139780582657795682329312066088851065275841653952246333915535000125479665618068025152614345792621838388807762165234948499315408832303299354851298230273565171433257795079340508118762606607513521683552459587074268147812277480579253146282408612843532810916664731624774379302261374370386337892420378963504193429181069285981597651836227044117988402634534400814290358307359284943536329669933007480859546923164257083767453673419848642338794811704373666827463288743750148263355510140102350576672801656157925706523607147578501137242927093137588542915379806531014311779241738722307062258759547009642432432895588393088641753661992429527197869564576101043350602799468887214367398727221461197315531757226952576601749951948602256718683066030401325387588164490400895809795790418771400536150275868847142134585817584443375678907490832063022216269535003589493887065734564326913598827551244207865820695790022892692491588022408793407901700227350811923928655708512980557428600315216551152247472859781135588024153820652114580416764138773162006395354303077492989096141525256186840810736624851343382686597244668549037938896375870594934179144252459372016547318970206617512209369696354180793065495529733962099596846659528490537315451040816925810522346951253007594098558232642280094083745960505409946590943679481467314156683670577162646586656445697719676106084131206930989747850334527841747203461478595831632492909957201791760750373831057817335574847395422654695993972418672037741397004463082872788157838587702467032092013010587273913305973660863730676488948091822415762951251034129360891534587932895255424673298202743043808846025977634351952961359054288588162703419337573902241205560011247685394381091775757519466560968590524566412370432860821958473397667602945412946759904959199700679137673458272922950909131253836616371033657290667125496406920277820207300764540909239042727999209298941451407009142279797963519852041111222143047055395011571332213438402783254327073841110532137290953071341785126674542176424816200163979507548082396056537303144398258013590499481144294720568269351359748541044521889158083914995994487226865256407879468804289875287551528543379722135247314331572613933767009346472155243923525550482555261045124605187257779173719406660918625582628095892589204948756293488965660360459474973580830087341551635961051132033095425563338596422422252552169072959730151252981700092546788550675413967166455648981534123362857662727777028480987031577001379525269483936613140390975332437973649559282439222685957724794503136671792696097207268854099981977811036091896729319182422219575089709503773990381646575272589596289241953233970408888226203798722368603257493797880091113945862237990314884556493397742163878966644402639986148868367753522108808815734700545400759509904006720762909047420638910139854032418373230225169933720686193517778424440412809980003322391513377612413472055949962862153708542679981943306255137248700356881668204375525286088479001125959693229774026260408893343176186166253994782709700156949735578819448793238475616236124326711691371106215149064010473313272190004568855823349818896147759703585331864203076224320809762166538462760325862044325166229089438837890018340444788401984446930211546615574853574320199319026612280921607974099571972263320352206439650552836433400531800445437395908680807947014419626523261798866527829604111920776574068570721484169422154773415084692345094446169032345600348509724633001653899209731985592676132587657201565935297813039961192433429039958196175786791810544322704523104189355019503348495343585081982119785993932350113561934376756431558511136872752544451767159418554684375181135998097660119586243296708424621707155402284235599855677285426860173253646282676869346455694713543896441447067776266510469795883472906424444862583835570002600237042178122431365646938116884818091767131861885954862173981943494283565246111272494034269046022555222376155294976170186047963154239796902716435889110296000690658775779952646144496240942325131597481791289543554703103495236575594674249578394406205245637122203753823461585646379085294044158342766912209930154304970166194808576805994993629124534974997914561887197455143439211430088270316739654300487483955606764551744178204216706216842193754258656583696383396417831647762798249497593886077437237428370986347100322909364675968822148840437717610736498318220174959165812990449646218374697240590471403410676080090271107922918067803314412427896684256917183726390556891586895893936231749360705351406050511430601480352375595275629653441392256109940438303496421763726501120189484518210995718573696574558508010087384167522206801256952074617242470008494010444306520304421312650759764164687645832047579582127693869881749761007563238174336887006193312847713398061159207893088213089109149278732997877076405474713818197011994541575583986318568539801249983060800138248315172790081580325913256124370164541458832631018139892442036470782358160255313983703840784317545424070609664336422373983838317141795887313944650215997260216990572718353022763800387298658523758068829628338846508800232864154524346268605220672566031744937497003994489079712429024217168831311576742087656825933141688871050022557898215009672579308149081977127627971413281643528770851201376005774607230673439240622228547375925008035342504074549144005638510655558469455555857505225894393716626520990863502822606048588310364700575530121412520780636023283494287340567539082609577342040279425876866865667928755150625568442874786167581432494187473808304074928840888034707208842307761682040265974287381113802317435245827585742733752273359724739703763998740540011953985527159220995288355049246858142497076288537640220765714227944471284471207084091576518767040914512627116101594343196113857733286699844436685130415947868982369529524225585604046634882846989460240484774287308778955205084006333370571462904710104055310989314109951983360451673426229904796990278856947684469502018412958326840963090711655747201996655474509884492984795589342680870922277669549117059039359553197046537318438095358753209961203661465054512228455088996757860806727061179083894445734083910388019585859169708874539380681301390506136281952071811584042319215200436802121433980289639748325284850148350150604195410706908250805879189976381850160288894078356192306240208703847161795388345574142943245115074621458808672491251440764356606048964949789166845081209813977720758741383194511718258211827575526221136176731152725993561492281604083201173459816759893449368389082110045752884894045133204410869069201438658089480033905339383943962015507911200483917653950408735175225206115950921298911585330664966638972935423722757272252334657334805329888682563159008751935881524398071898901080279072513854228412836262491929273829473176730099853733214299393531003215242397885675821988366409520483647959403058227550911534721544794357827737950914063080956677646059343690105022430634835678184104002544063655568646579198892536303787646874152023810235123710363845116462545244022760456885477025898682905746615619655710744224937653597815477758249926726067862090468406135039555835417810315663563205515373850342234719892402164831404018971972930376178950961934689366439393389432386659550095385425961839222291622109636412071127150622951159102742331695251576748781315466818940135448406287681650462002887518666575308151257323312354233644663023075821985697707983009943509370468855786042827513123121314931339969186785478563279026996405276544229206639853046915743437308870396911643086258812576369921026677757358992893053203374859426918999846182611557617545773421195888375927353673687474792674321107006059896942448819866229463380418423666422316560070619363503339488648604776301968587723816658389192943063955572419999123937688096910185857126189357126901036791712156795649143239285539595236089652518891320744579910206765615223703409032880761932004892818147398126335114555128429576380657076392275425405038701477748898387198339081279528096539070106239332241534735902337281675584415476414864783442202418422720261083757345767367731298596164168264775447727915642574859672914995083943703649167531829028047103424861510617666384703551709472495330838287531634226113059781185351090676052105612521614188542403306422040123317020622487911956306450448227696909341946155835039272700667440000423148929213110665959446708523263932747018178997321830714812051851926616592495347856806524233928525340992390838176230296815551559135249100111113364908758744235406791421487276013592959914127158652330729192062133967535220245097367039053878227879362580415021078340709108264505246870289732757770275186368059902384597963048107883535293512622493810979403133699835646872869250733745667399381565570020716875082883294546235793546252885185485960890380552399411954555533561861189981290013113909342148943248197803328504057221958313619112523582719678941440083971883392762378003108310922846865217654701180890580469898982445305564382082502769952241525235757862059840596873682676243244149365784522921608895802242595720194154445067560087046214045082523880225462034403440784978852673480659498026143759393986738455206965440274218631906356380885029834209060259331393171326095355296960222299930652507342635121410989278079958236017692422135619272751138567509959148234914991848150522299123381295052391129268972328910199067804102541917212320702786381095163343598518971772466372468662707716729289109434251504435381590215306068728695850103126584456139797161160506896876814952911983639726214098838987067431648129956132100347531474852966584782342404578023821582385984195144899199106710066516625438925510545431591460910331997866246604504488111508657118587444285968993087022850853045347045070660240281871198861946807470042827349063418312045803917418122842818777411092682255221886928262417435023734555111544584280715253831410271818986493925031096356007739165611477147641288843799514648976648868943531472852958049726754262350829484439172703812786731241587381988521975108317988430558152224294193818931643726977480349064038283224642262327533462487339461613934045224272077887251142946042958365752143562678803786505505933382664952581642079124725102358941088352837416251878873560241999881250868678938085760892316483147683730257340408691926588466077697412721636938202858052479007876434607369655130201441591440415323507471326265858629884411228574977484041490768784889836326079186674589350921055139355402822157477591913996874077089803222865942404756895590323389224622950064966754391655370517090728918641362350508827141134375563566774099347824918145101715477556204274981752034926435692976114541985077538660074546418467332004989061195221617919744934956898275971580499588959641858887388017742744460707090371560666739850825747269997378377103777811859535964764277001754198736746914323316671938023821443561536180441543387899632605969372324658981702587657876937181503854544239572156626856111056595973825926253859309808458999717060713075521322499629066504560998296940246081022977395719314636277445662363802036732709496010008341367840713650714982397507137497554036686673567231561983644346770180857888897429568237311686717558021455495216266905464779648085575711993226593520903698008555981835392582184387604151673040081807577575586109004408534108138321910805453335514722500605737974661103162875111126157036482764271670373090550071411686869950345405233953281560999018206206954829764278496427865551803430284703535254367840055146317909375612261512822771269262388712911961936763140282016078053517888592777162665079895310777506067088226331767618874759021359689831706722820712380418183821541574482215050579869221368500465594607571451505502252472695787044461152488886648298271578743046408454129857665458346182320791335513517645964806177635776313597558668183994754412997345075870778848254079254522295716576622944386411751838960987455296458921119345349614611624972318726975413332960888404215722187360761598873771921373591832187594232582792444624347686741803111107931765668642877281347279668467271505394942512149736987084642045643560694473528945263293203731135278413237814622517087058432087792428084584576709296574275347764516220722154511287802078013813390357762915356821528498015049313375527095024258413770155135467361271210609823070450926013773990729809747026283592725614095968796035415682014151908027538648954202422733129336810770859619867178630095074346397580869315906682877891522045080456584012245003053173919621748063977990177020428737718155195618282656983489328309223851973951954658293001267693337169677508335400679528378852588092589479936334536032669001423533626760083477811240752732762838907111798257664371720244062514916822100792676196293074755592542642553181829864322767837307575271933076362129587469347274575590083728117786921852508622469736988888188016422616625855356619962294239846409287950935516252883141719904320268957703437230097182613553120935315109619021028718408147781938347141213322968937985812233644106027657266381135511357024308245482489501076589558535084955967598650978685362462875159048131786022275082192760358496596734480619769866540716388165250898323130137350807802330831663082173244302876120560080787458923660998850775160066084786496274467209497451009944591543181726817704724482540823946382777843852657426888784205561130552470049327221705771548685810161151252977304641652627827378859063236314032877298549493624750616461055015647038466808014828441809623689189419471204736305841770087354035251603812173923127171386203136141136406842680011980642362247727924420539551961784547199312165587104256199787974029234179660753127357588562417850876804281265550941053425109254040675671678447926736703955781980114685084570891517191827176226488019124068886605065947432901269063907942516212913319323258459849387047309253264500984174219059655937539168493266520842575118974508767183410499882162942960954177102076452147264527581011133738979895641315956202628625645723494127511271287489213896592635537827519221164659578981860450671880078181633323167141983221984839625108764869761395343303775151317519309174861089587938619120320589425145219910354147082815846414731891790898498001585388358244661217142933963050597215060193421945324285932533084093762677731552553376214703282880100755462461256652239352423206067768068377477741900030322421158624305664065765906337342081272628747888460626216668967116369931657593281845158756557425538954187907796633057941502907036687939055107654808697485217782395323296977757696750515171968105928565564558132041424120303106355034332845189618544813361745757346339115047118620086387399139746779440431719494728318551476861638367219057063925032236414847486612300612385402712187676166438500657804432327092177502480328950529391439879316589297732268327021466373120779414997491963501653898276430367320054622839461665139314682430348173871324665399051628416153034813438301819558581405674150691723280276327754525285550654902672095681339603651158243336039880666526487329050721881973228532418304220452423057414179825667236220190466342042798888136160303867207631875105755810751203760323654893947238983900326518987399252639698051271707269873543359250222438506517954880420205790612234690932085398576045548629650372562802592371392454437915302062919764991841186416299944985438533479583857074740072907179259925748613515104396620927960135119857086576283596665908837832939448499033344200205492842343615608135026198712188475540812541639971812579872108953290925053422955918941859594897851760340703219138217209352880053640246739300679811549870225270275387695752460609513053301560751177053100958620955116637781153217164067795622291532411583651109243549984680350168267300500849830002229807466760490311076457973842350556457883652160637687789568610293658604055020777328197355302888797327499136187824225872821848201872962886734588643792694113633262850992787190161761690296758972910100021409403586614585674899925725138296003249102311363412908352871810148051242733817094635587434415308231240606802559220133555978754411327782169961963152730532487740576074336427102944087684484098669306093389664263108680414188378219502351031809289921214299168463801827167343868377536536802553346469064638602591700656942738738374491686962127019816472394803811608380639993064746851446434861007085878193397582873914266665622121872776575979184740814647314421622541466733688681838154983592288288145127568237911591955869658282532392177312360908822089668711241875849137123067415561605753869068656579736522810714853447259020073353005394245711616905726788597850485743844112449632839224836928736212685966868812841717528758526163777603347316322499064251605921867328198506656159145229201087291336880468798393561771447262428883327422076490156688349533739453708815227422299374239722818243761521245760684728727127627499321393630321713667771889479264889194452785687406344299668093463654368029977267318246079875808112840039453420515157301337759316994964500964303339810445321633393441903983613892652449927503024435890417857317119711451798193710952144217861323895452198424790604264056412011613235527757991463809593804985577401157743143212216037250536638517434280947696647502648213487469548119746625322831002649700752858802428083769023661181240431530565661070295553527461387481798549606731786044630197492304684058169978025073059124832313076445651285626244790716136693198291482490570824329657754747336440095669174392509421327393373307838795598203768946072582621664718438247235554309390697638235441171884560484262696507757888000533698942726874276602842889406778490249269823594287934196340667745951283734163927620443770114024485036311281109586733998435845233360423371034182929054914197562079936660298869654382262441596928042536058723794088902092907784039212389109703860137835366117700700975222730291890727627179938501327087291526400186017995426647771595889804921637596041908099052546929631214832002908296289619819910114810616433190573785690968226765975593493200730828505997946503782888093027255402340128418568511897129607148461976895663323677914146425261556612529281874799163686249216088125898157869584818350505936065041492061799281098691557481840845134569597583039196414194058075763887855671949431805775416810212937426354184950744126987421595747563467433832545935192869610061975724426149798304194027077514151695844176894933994040359682507836995975062652700633955599149747726256428170958922075510433774801333742698004464533367748753608455538267211322688158781608096338576119275011517673499632328115267211037403883297297285761119957446938779740771023174088426648112876557670943183018699413667072174738686790999482975520055400158576299706580064458624741892916799272575228611075201043782328372567130523856828358256901731916594864835584421508902370947542123305557936745161226859672814121790054694128310033128690446114863366026311431333473942155192658989901293462830428643324277557065715609890383267810304215913067705681779591969461257383296797574471460306262873434183917690957089041854501927024003787574767526240524981981352206720964481725511501654533780415399836543536704806041384292407387907479345677867301829535549178302233069139658543764866406904681592827595823769891946126135459891194999475810583885035611544974755557812155261341415813787427925267934087278192747253612793734300127457350775223170168999290451476337541734943762245814724703381906520396479423920125795768505655251677377105572596937098314085461220694240137281592569734440089636182643098987384436189585243778433670329357979865183251622024603883895229872225295879266746417987490901524274537681329579571646717702154020093367041826729873190141974026289107978119498598292383962302693383966815492136303015686868027785226544213366134578317851093913996579504197943800097261861184588977076315708061146550556886287428621629564088694868166551372086089438392949659371150497267583741181970231059572710047579115532201188089366324641769405975701207981104272333998867514238002174935828681521450494241564321680377874388533302783497894746756191142964446896531977053672214442026973158501537304726564885085250406594134444319343779785607524604050325718910421494110911983568556501859654061502118132892612901515672331804457026791063562684638705080954845511340135980415698115122763853879753087769803928774202734578853411732930941904211189126349569236935818634483386306257274461041663803377304869741073774157850596741152933799388768288307538244805806260765236977097295976486127707924080998859640041294535149509424769426482465828719240266281598565507894989798723718090578409017257530633277839538857590262643749841831666176574247754791564041523533354075400160650044272421178486353425962528773152584318240286869660480046320540968442707930892620304014615586369192227189757822342205823401758691005465286411280073145332496535621588619291725557738010088207533225259464975364798646717864523356196458405248651910686005426693493811642067106485538533015333738908028236671908031820287742220866031004604856433101122024119711431413889306750582254420728624364153033090943237198052236898506417840313325788783468936084730111997676090737836401852523840049533013743505932710099410978125496118070108552425386099772715332155965054102837687376689931563522121549870073173971689045577002948108842646952258782750212437964836608690390772351486522811995844519230694527595793775649581232257786219968026240994632028555774068471192494730369613965420326785960277202351762154881973109781974904181297811517855961669836364573731537484523655615103604330674878014445956274825670275536416757103467794774821965685390861446638023909645124746476076844178532667165916309256340544652593024519315858980082920237896436798236745200652115320298610060042298776971763091073158752000864749007883748375823690573446632735107558885226418271556280435638776574047683885444977820884059461269776579686348461917550654202928613385837958586269744518424891751400691558514827965245760139824605214929340605223575672329878819063549425970582843033023123197755045078631902104616988887597350202894520832958398545643325174652545071781255064149979873405585907625152457478912195848697546217413881108995565326183537546067782757679140366191111996530243173232048177876660317595716313693948705196680414280617498920174409617680758547234322075068835839869497714717020601591381511927589425379496039858379310854558384420446728769057613588466483106270487315268762150350061512791204094052410953647778778892475483255368751004983892816363264641909336780963416813766717561882029917718225846768306558188848530621816298006969104212651801586361374264538725320932501676996638843205811664695251519034624827470056914334750121896347188651521148842096592148347194581369155092087443647601734732035570185515244521077100236410074692165747104886550306526039414489158683254097801039089756761546681858458861752954746552605774938685176550500816152934687437650193169596573896334308132469709311007219127367743363562653745149240540278999357757501445981946146330930089917248592799350027672017499606679138872759609945063302200454424413469920509832336758983790914531835528802137856027279670304523631035286388949010086236320982868765116055242577387970576516749604559404619522961228859141308254258493952327169331419674331163832039353358262304220517108904150742116836881201868715534233274958548367212106786447502007924006914660317752306577939256040205907377105175791677329996309328606981817872202471721543776931086211428058905725643699146766163859134723105096354302032017213712328323630864468965820112054009702059792836709366303934154717485074959555414927299172435761834064935489932896870225706851121142470272934004888648738121322078461497009424757776636900167456129738654369444618295410432850519034692228574395202578021461020633656332200347391086034003950841193056386306762990464517612885500018012554212818079635586623823646663669539295767913445373010234191552624032347820854101534233327988430318740904621463884681393456940668627738446114328589436051021895126364677721858916006063714894291080926505364483862650412128634153630925972038607646464166286861657006382739549481366036294675706249723533925512705589330620299682957812647140254734718632369867690130890331309961020195816056110200030478577152940915375946003996329519424382428728289540874399758759896667644681933689124162621176234932516171672658052520840572029542505840518245539666060502605973519246437428323218704425891151597469101873350844381453977707996456604216947188678493887395473874702997724528234178615230985721645649375837045198825166032690776191716682134862565177298151237807214491204018679851541696968207237416291977753259997577590720046883397958894683665123049689793836570845358233573266105955271918535447341073507834903845132845929721612073823290546858709291766248351450983711808793659136341129323987786584527309035796360364685078135195077103713137038972098279103751160559259860636955041937549251147326250185758394189650241048910107807714766207500593772179148575356175410951063197345899404945210253364845903141522254337541775178411251093779160466599301139125729493550824934353001887523955884125518331617755556790084262242711223498766722121608941126562610442417955554513120727547036121565606435065027613427926173855699273439440745925487592027047032867546113542752513052891799719496837070346877346271850618738799946671508959637297976047544408346730295111672847654009313352283112150674908311860643760015065041957216252260209640349417445660732406895726680856608235018046951595150401906282846652484564559780300896711157984407012825426272858626990506291864064595620075290506090899116274752225541292623114272505482364110651247998459497993913200571320776567710664235614478805009374289673231604968208642797120309537518544622697145812703667416432357250102531928592340212611055136615000453172864864229529938354371593478615618071555352204370796666150959401907860407422236904116148645627113312868508403085753300097558842050583800356068867963192441217225928270218371157096162567687037435799163744357296634093710473987669507348329269222676232794840964460423175505950091501862523027807718146871783758943125539081630477913003140916039357839102243535104139458474129560088020408055294619907889669356543028674797542766481452011455303544859979014126995931130943201642422739202317410524423139606863905006412667141688236755872641090735526615184677302411700159666783733237872574964098301016840395357298610670142076304656044676480395175158179614781391390970899787535964757669264093972955451477383275905051330981861930226573271251865918632179145616286750482889710869974771659910123673027759518836914236118764846408162971846866648661099824825539240008625124935507461069964952477730677775034657676306632192534192320882905422359301425914815536015967878425129593829283274221522350221459482694927941019278575174030841802147348415047603362769579257054396977039048752720236953208260242491788599079195785688428106674638914383751159951430458897337661050275493619700365916567609659864062423126587544743277664833047096197179894105426018762081834305097070162415244319236274817370034413876942316263913629693737459348861695813231278637566455233388268446403800627689102194978762374241309458040346729718861311255076303889342126350154048806826408763893785593456963681733612796597766255032423191541800675715387276865017694602193757117424735069244990432787756039762727785325534731374605760556785856743686714184438396050955028062427590428543063566099788573906308669455238454822453347937022672309818249956734758515403355995792083286694365342111618109713858793871606775453876400835294861333336903573956614507148814773473356892230818861716138267144683748262543411032364640243331903400292024765333279107727639573316095164654773670279118043460510975476001227656737364886318853939318715021114602165400939316036010848576478121001956320158140219461532570660752134067063031834961905695358488485246506126649319591729724888905299905790737048871222235404393874414947462717865762397311254524817418056117509917411140531143091151646723675173678017884221509102649822296053813567901512202277954144014798233869278627828792161618112082569262406770025639544674051618816019668849787465776863704308035160973946924277480232881559957033465408736508454909998655214779961726427627561746151941929747495497276547416410654880151471178317179876674315838645656752142520528511878859016849214941897778062078775094238163581322029339979669825189913506794395355455996226800670361446153255315412117132065552915089400113456145181856170462274207154758983678174686408878715986182542338754260207144224661600594346203710251942898152697907143448199056429183168977632349810698109233944120643760596469005527211545753815529284978338610543490466419825844684755252161483338558900102492187017214480035744691200868514203636343038452777138651689159460854328416594979987090759836465492579311487263881052473468342004211043560220496215879916015684379220200197159055331226638227649099509957914519079608713700000312978918520812098735909072945067050032567281159868772778488873249265179232091051993619162932208080414219351698498859722307460855922294022870639913093574548209281251239501553104537480560053828877870721177824420159218619734909690490496187370041420973137523967839967763330063810411996141489780405941059457957772059064557478945297887023325725088294193680295541266557627371417763180689863560659560046413518139407460552895087606510338261948565917305997908309838623400430225131376308885690995163910315643863390060052621874503471859082705141474809949717059947676794303252440816813829403767075841950651901619903650818729620531267030114304443566807863726497356800810881214340648342368037021232559456607665948361678778704691030995581715871141928599178338119203525535832137841289317465193506157568643776452102783225053635495579637378421988305856233824308971827976011492290991780837527628820157345134673686217287765818223570077695682524004722031004173116315841382812747212039954731100526507590581149878537797684261792954122550362375408427004464789961008061212792040881586588917606513913580236308946023810905289667859033410191751041751455072918023887640638714505087953921914309526931493060479178306548095234158548000083711779959700721573594032700030752859518882791117414531210322090657256658272560894416801139676671687886904298673807828961581779970933319081491825699857165256088174618137067552850433332752897859779452873364527293579604582999436601459769795412151280047575165849219388512722436814571817684964664883223181830792650432659908232040400457258888424898171818122723233182057036748435182382595714344629642282535079549788123360409872865525468227524175078726292036257627180562044362493371544481736125143122453892832659069505292722665459777825092409660656359102949593707036405968911974809594055569389942865364125824591312760147728154375911480088476294915924805004226735228692251866976055930936817160359541606222981108228114751239699385589589319271083937082943475116046395258969801053102868847464850021277387791724116817892751438169734394915546871003571800749899156889341389870903091536116261109139940732936145618453468509467893868260601156492820070284231493170282214578924767695480909624329835808323688342420296494008448956886419009656425107176385299615121226935241370147823709378016177370149552704884192388906082505258900282553210148763863291713590865519335010410110005531252365473667353133441983766526615128746762430937589271426179461004427329221999612356378402002380838684035948709511361253788206929937493516623575675144520735649599686586131910292977005165055470264431005000355132239435033001849089278341331855099036920756438457982735412995008354520250924314147496511430724598597056498499514219883410316097351307259290754196934842416967157829699731343556322722182727600570767589750460976098435867496763975043044384679201450995629469251894885751197326648123796453226343798512365394558172683295772812266639953625115913523212217326600589882096897118485300960019066711248025924593280309938140486932374483226296563392677722859406313359341290295517783622387346202677700190574301552404222657600454429820155082150715996894471936036543318604429900813091983550238968973182971768388011769288756442433290447199651966711577784374964583306714196092794026835373681911554565911181505767779027828265723639544593055592603451735135393295304445756915345618386784965222621447848811505176617915394572730901415144448809858665102606178396056334025409395942295617949118261899763725535964879029352794755863830576102840488678312817978067746850335420252608661524136785224221110566103014621427325690604249967950165326274681520287694052962633017410860936327163632522208364064192526523134146146341351734181341127284426264518248537756214126859631362379814785083548974754323141045078451288630807258327747649614469023340156445681109208193475226355875172603340719553017987548844743332551962418218092628739970067577807201483023943861777930370918821243494415715312460597215244260756255066367978669000685278843723942920828629187695489526723179972603084519934787842460104055940108319339710560876135612529570067817436796832136410851269732506684213727039678747736504345289288124509684036819725357647209525603948122774965960109055916185064669256541533177685198578513047998819891528990174389197607660285060856533754441334381279727808913316304202331141009618955937878030902711040226221934594507628929668400894335860284687761484854099428466769115314584733239303307186373669520574706583176075461956020458681494123336609227570740511240003274177680577772920276620888818611072151307592069301200589668484085590620817452696081259852695247508776621090232703595762622067331528452682141468237660277458584570195660740245192144830821248435604727329370889674935325375171964142906727141577866447410962313656827977390604270875381140140712236352681154980445408888408737623581893698815617702011958713055460258486391797458053885232672419596536705709826612943528552671492327615577880137952958631818448195257837242357348133030124442880819745985301452754848355028624608092638053765207708527856822650995309429133450120055507988058381886375457295924825756567368497799144556870841067915063494530032109470320116250847907708331973033641575220421247737683847657844472151554568514163148018648797934854564789288562986840878073078265813460880034417635865439703385256580290204921083691619654780357578546832398884820056547034881803367136719363367178849045497612908439190816558107284356193340973864766494525699119574563937795282124708678631441988464198762311319293575075022323079896279498136300469686122552216782489124952424292838048260973423441399974843547335444197181282649728704702926403337102256647252816662302472915458740246838828220787436134184686963035368923261363395800758961214676603102851363328262961740188337258071766924854405475874191643952379593339759697066854410866446418905301193989791885750200701786530936685963284288414307935138094547565574134891684611815682929257531252778919316539606876425952942126136549359684395963556425815720602575533714970669337440161379179191550295534752402732287032799383809836186831924956989660173334557520229715774170213677251874840694223205726054130106607727054165924861254364778313789854809239806964359762789358537572638064360168418792078832937125816949399179305968490365345536380976914556378439228018775853362536748342792724855631312213410545393179538869355825647829118661005190291947799769102598729252753425596360853685207611892883556798467075604630724985937508609195486738432034472678468179931244778023892190894302624916764505356185652152071889327810195126592729750112240128805925766216579690354384937779572713787824514399120240072049015288125226970437416552159925830392740324164200044072108465095671209010641954283102582864920178439945576949766545677003820784005341763233195857552481660759777557510997718588866807715951683805529954901724442150044784228893749273527531180946113112513325073743057438119702825218943231154649633677729607516898202166403966495898258039825892873739531217436247402782023389971388527968235488188102843680370408365468532385219178986696756174580801692462957509485128225591842662678577396932197491957271616695859533872548080374873976393027763586725103922861953636497206522413603399578635663128225379361720371223967331333639493429911965471820665714544718691925179767183564968510238390625173267239712302672649673754460541957411014205784363638313457595648698683415454612505443402716234733387982569697769599333083970274583261530323686562295211788652523478421033049640938833440082375190502625254299733181211310534031775683012681489239836706484740514215199761993432356695642634752057629224440004419127477027134662953811337266198143764410789410291776573591404661808535018151022012420129616736462923064965109561352360485555537100068798165390443585068249725982009559964742829865206617282694120504561639363780211026445870475632575531481710547002086738036558856522870303642985378209020715270220048036474010178162297928393315022015062428691561972777352855189905885527803370975694568533264441203808571295190375982455625982040560314026215314591072167104733214910542102182058169583443387449949278450051648885310264087997875125662469651595613920117100481513999967157329665597156789403813757225125253467029400583151036643351099156814142429229977005533808883671322180676296270061692177220311732688708777766648147489435401367149551647759820649519963780070879443116517974834064519799395543667640898144738466220782309526742666555159365602928166830465421914695018830376281238900804022220128275837635266243641662724954516106678268912287272465165693998731081956931480565674437427213706468732920571938557006359377480707780772987061471777187236116554683327722980152547158957134918618585137157953418607480475266756936711190127808466307740021336110820341590826498351373409955557342393123380356297010456362317331905120927736962403000490978486116193721350333234847180331578939831463264197793347564462554510050686819233836140565723385974479820360850080535240027789128888053840244949253623334682687610647431139196952689487951644709436924747481608656432098974254785611072160109852871654460456483141434356680521376977567816729776516198500920018298486261143948906444783061321438681744048596529872822255815608754871319392810494338711590865692572450317764932168273193325730819392807783251121859195915630235045474949974599838333281714235795902006645781781651161113995386930451319462186451988163547221191774841271423469256592327180133235244809247305570327697577505395169989552341450238141508126362699514673234152969276098258450528945585180997280766006316504197021519582335324144762866105915592570877918653858497280412491502055531181126414516478539252845298981043230254031324416883203136795313530326546886364329802803726956765993450765282632817397221788160534064742600753906149086105167187256215408939126467364255181656539853947419123491533871237713320755259220227509734332539446538628623200787157335824447049114233668706859939603267846032357379541955637172772433144720917073632400879131353419373798266393538259286796385629605768333007052765788569671567820279899851338471569804899074058755014102024143140858943571574150749253870791112667975454045388542908032308655218880137801304233803356339206259643199632477358894158474670870206926502090344506213666540644433968370802495202104730583091792964038165489482660139541071709941655619599527641501083714389674229363069743124914284459994769730313520352670419510982712264079729428354173468144068445753298262726501168762669721307481684314377117855458026433450389458939353551030043233235012477328640607965826495172599410673866695131213449394626071010438881278732533682102056251448381724307283785884579195904268754742770607393015839697701701605367793610968318799146256106093029692135185493566000172418878686436441146834978411501480651011199313001563198882695754422450603606738579130400857374592824297130488792971459738810981968606611339116554050213659387168070169243916796612455552885227379958720490394265533798189924504450423627482832143451646281298641932897881716049861603089109898075356249562091594000974336016228919462744964154762202119308954488350772323590812214276831843112121762009594760633629552919946719733778625501670337342417999945873405843119856447484452163786217522897261513051596090280075098252384371357631519223258865867016966574403771196369148119508853266170799537021336394080180092895985359778909825402128622098366212027435095633737190662653585028012196824597403380141804215348588568823629250296284561467352279637296261885608490092138750307920039920226738483955108291787379524185767237603553118071815385289580568735778762577680935919232767112346604729396603994282203424378033617009568340271654918516202091628002847257082647273958254757029620573537896804487088553831563230095719980410904498714572086206722588387502019828712371461924300136344246279357863537125545671654219650056598165136000710419314035220201277067842421320432415718824112944706071798087432682970249485762092433831506718255218124546242837208991822745904274544666548445715744927334020366462123615525607246530681273673236418513450598144304235730758935646677880214387482972438042220872446036823680901049586094423104705450430563591055335379474066365094076421710806335213543107352402181911078954639616604855624945970643005925286303507601022978454968263094134763392806934217857773252900773123159368179487170089079828357713062562265065242038444238100080868159446500715913871253510505857171550144652797962002462107075583520322382265660388322937725898273535863959762354668182389921684310676636245225630158207529108785819130869309498183002991463946546824689596623672420842528530854588106135340434696715562371864902545728712499898504720438735925932663905736156028377129951893166572888448005277408199188241311483276554345807846261727648971712811111651646460704249655688451043266558357268653875062100922394007639471455177675900529874670386201749928660361261300062967559011265573351830580268200875826126297270532771642566603186534987227653578098715511566699753363138929381128641908175372141325807884792594904777059903511644861935014636218028929081446029875906848192798104868112671559953180012021862403292766478057000824907246562503886431840730012755906190869414329909170295332382084354740505493715681681986403834552223453020255076077674142475662399168533435526525937964865731897147735029699416918464682315844753563718287372714028502034661712782620234289832789567962604640145734055538423557839522896318113213297669570807957387925906585069223123939203817634412377556245231201177211988518216833418318235519945697147635285918717498170786260751557791701269550979949264569398552613785773271448779098704442905151716236618715900539430296268262305560613978274398952659737990550294424059279365209875594007988460023632824428592052049102994964540991395460279694550540704360223475427031161047928966700968190075122634465949191702446869025193906324442456445699058340214420209409265002353313753597826013062114278528349133048229966671891714514244273419600876793902068806491741340617416799880238797855786908677937295910354564153770106125323746368988862586519840725991159697653769470787687937832724819732714794257608143543204051587727272864761483026786381073210043238149775543092004610615560297138791013795116023356443514492979742183917573588695966007643797037384518521376826161923903790392363407039831314469392885434039448832895328081946568744277614611487112121059350323266843946334136011505130237224599821294280048990695062338905621828766505274427071800247293797795955895028324671528624967412526770530679626046883785427899250915817943312061252338639576170656813881465336109484652245019639149146245510882042497344072820149998914395261282041325356627817021734180604393499847473479905783200512329740490703565510423327874795485912648182554510378089064355580646048707223921803639940894034628858095610691481882464701033763227500662924439365419874949791051547045767650280826674827741987444056114822321847176793419414115456484412060183110935591719610579958256158537611454494559553463450576094658463520879130793203036725169206519388340887815728604764392788336083557404044859824964938586443764317482817116584098123715667082828926438536278017627946245625225884867300450748825242053135326394718574148038260665918243143106363691994971506737017493850094532288957291826268981600781315088325605581779671940023201594985575329818017160869755865234142703858510178317490825461571379246652521091623030905432324402340806905924252673110364316873703226685759202333142221677111273141625608714588740391176161180789794924170815004057077814497062190167852878264423797426924975134250533370200963045007894348783501870154689928182104884776222213827319316724290857663295132230612372412850936670711742014207149635946132360544030512221532698055622633798728903619044889811962252598124903269717184956669721406603760894012524227547856667858028414670581284633654999547487645858413901870794781873292957269853205511561340620892164690835662865234636760302600157111551270781495504681637337139626509375294051342022304510716500307398620778512064999954787330537652581513558635409351349964093003791703594986659706227872020273656202269116306414646563778469404315874943483658634623801224499353534182606150320196600195298137777199307149929963862371684064290232457467503118827121150959534881109786272246397135087150920208062389286400913243865350224147444332037118549831252940166352791402848548919309264346216496884131446310544325080648088745206238901456914087355321217667049154389783345822556861049700905971563412475262869557111076033054137958136567513768259761321445205783297701325573700541884000562622895532722251748111513402818553071439828483713915636541294423733888802889815713617574784283392682346197798184079616634413754528610615228424372685897504112204349425692738683351439368201152951107796947016256773785701973959385829517209017090495625600729724910894526671354552486583641960763915551557310952646800479852249201585224376238306033880280582324254366986053043081873411565922237371573739270586426543815295709122527825334538021136181129295051626690424589060829450246281337576720929424992691914529376135064308418981689171123982828943944060918109197253167412899635841181607184786657429981886214964347866848765077505524388488345233406525818492585722925328261739506549474465130942113114590164979924801893014304257894888363168019332984240145002692190573412630506334461477958175055274297890004124162914062316657158892338157590487082867598395467115497993775409551075589117811373203232013561170169348375117161686428043692293687644074183139876775368627025516765716216380858581676615063056137135814969260746489094123472769045376926197651229691210038041803563832426212438319645491997872770078812238399299811439600386234981078608868908103860306341290031289902987614217641490720276926896277822028761649670066709574837915727813422915447295125459152101263485148573227111578080836819769671069621030417742587778125237171311064588367913608001142504254873741450408995543990760867260162753019475535584366162871842964593746078940883259562943266748293341592716566241277024622686514047623158643114642371605141921543900014918850217678905144236986670240705185710010016981358212691963681581902732884108658155946957002191758139783283371105450239839433801227293852719720999138787062095758348536615367008209791603249409428123504604852611349670146086663915835999699537076546418268462950259141388298075396969943443574349352312534426781262980244163210424004962398214392036539314756106397004517264775374324037525150669329768538098853603910031377585987574990313242423668641585694153666814710350830482323638192089191416513909853042359683638974426688281184640195335601271477791794309412659935006409077436013904760109650477140008134543670392975013219364173554119292468404651264738776762165370054715195183350412028415745414545690788487388170961844824875707559505805429743715216806883903824170754119623320165169424817889553779127238553556166605324830215143943512827422827788383160906759073744522586175676506272305692864344313843974994356428381399532018901740281258585632939623977826450766255977853442439906238328083301982811118739650571353851372872270968302710036627766571352351791133007043786785715244336440774983924607168742509128020994222600633885581136951251545137180920804109462440995262896302988754505027866940755337371539504012606841512285410335696514031714880052989620947274462452860748993863180455775455234069655282568401368457805964782090265244791296412183322587853863136318231639572051523270848174747085625159176463332061593583462889279529581575664440468358658090719561496224186577437441376259648152866572412526290722827351523152535333283091869262231885884654646464339796207946917014795365889941226166342314348331314332846209169832890477899913002217492047577286512355624895042846974971697680298260969640723472896367947125259638016109069610220202080399343834286708571983456103997621543061563955170324433853957804508499203591619959967898963816038936515045440109714792910824163199296371366803747294000532835507024647766152718853289964302403638552305684205210321272654354929975329540821756469509918283994747538448760343736262777168800945010976313407518153726728681641768192464610991155445912636366660931120278328728147249697440312926782945034136787128280824708999416476868301176062213940291475470427530377501343338408613424216078537252850289441368088558720425744486429486859641270267569217822779236702659182096650415283313262874808906245780710660101331386184761785281647225399156889521533087037285529574051085266717128620528866752111256884942492886756928763302277215473302757724506963530435082808739395746876578729770000534461379164128398484282140611339322237113097459096293523605891001925865202140283373983321885354922967371137055989644054472974385775893472149570876467837951975633037402117307741110199357781042544121936325893057507925634511879800500729018604391105447045793846244299107634199070420984089944623067976429499506725417895626261301715892260470322609630838320509509324953080125248769166925856401147537785754045602919675570857008778199408428414207476427617078031970580733211115314293761316407985440893146498324452111441392396239055629916384751908032657277428049482747199915850300564499594000913276607960407275294423727391667604926604469812317423416708952257456109662947585095456907052189055804972043619458485058874674351623167398317862712051242045688079465631318655383481569029337085465102150011580474095215623722148030028567412594106837442932062554436083219619137018094217131878944137445851588253717792036452533328143835322660898045801197909742837590661903675078871451201852691750448414267135690820220075105462243721106660393826787623218215258877491602880015495072576510307901818988335349815152480507291889987039809704690824870135501894228642741665285551956152864880810337355012174208467169443111727978418701825482867478440437788835487536064025409382196400727524073567289583184292036755405981677367508289104725239186058626675289956012039670094070568510756095882570490436311618657192581118253563454318610404105353640670826128006821575761118532797265649675749008535507140867366145508031341903210174311571794855796310817582753424757287561538792476081955529939703054735945579151161694352144819496346812677145864090396207642491865889140473055352207502695128436348830682971180650393289361591127302278918621236347653708056910415350825316491554848095238054167219664248119149862905465797400126500786598506423184913158832721597348981678293798737764018553831300835942654613658461211605308380656877112319467636845565714489581147313836466024048150887014514566353350897119007498838185165837179564128232199546382474288334104559849533677741848002019389278717405336266702437107455828990297393158644870448796428465219484297766067181746420599928286872910614161314132315542924339680572885130502102868305629605682610814862374929561335330133585361800677133475878300340680146684831074187816994874807322180268626382259742092061377918529142067984914758273540280081855501198902066390578787586911437803914723967436761418008744026830132728561950557150716914537168524858535551569311426053439961934203979591712660916608509277622360576285639435760081408075171376715474233347767985477615142897060923496151716412158500433087396227116257353041360843429837144264711924588631102015669331794103766961262009070845900338466135960320427165780757082169750740637206605265885023085799754523424723007443312917362946159713722568837620972779759733979802063375209422628914407729177657219855730557518188447048363153728150327779743694193497838834743409252204258352983366949728913914107374023850726887048695834759662472403208015435674291396855175392811389983766934416066603038945392716516729150568765267891725871504594009138940472749045589029127460957071236493997367665414282161233454424363824890469320459405854802159647317711154920797939972075657258612987441895762569912838889885261775313365446736693300162730131363757522363213134915126284870189147655327424661730929814131420716356710534538358804367826070507795566437438502930947090402930930435218227106926238066969990600362159009382854479012150350397099820375402432501432241088956414033624644280297555656386262282689434554153139308958765881873466088897846481071792497844913454651313461742152253752849387379267808895144337258350447740285520642324478482286449387539765348419713416829291721474277575828662408215563367633033347457161629625524105488137317785769266633250135479091932342647621145835144576183181024923647223690247049437040212722082652565906009881976209695921596918792797416975084627622676648421063317717176469292333731354951817835842443468346015820646525750289775930852614275134818737520391579172289026254219481836820893987508748047046814247883484519853077343746404326575330341410845610325952739087603383806550870040685974070308802744057697784551050825296094248493626141642833698902384419562067524910073042018480548351156350013925572676463083741858446001472999437548350570798959323797662747291155258754198682540357570066363748847932697715097328578710703545566843155048372156475155306967944162712609327299528708290851604211778746390339106115937141070826680222470353440652760076641151588653730476405870536025221212357076563685774308693001018644746242734591435782735357515318303182669808179529801765065010832780057520597217656621761909969767671918406565644433540249849182865640197008331079438970934778222330417350100132167113555506494835144102014262754825741346082354944268304195149258101417505980075103278324380477631300671062450037553930246877771717371885766742639317670598089609480869751697143333126658863564173818952194231571826337440494865071728247093852945852557948830987346283714757831355320717468808121394701639388954102034378967225306275383179698314523948689728378484811122304808636387272301459444611917706681287113846454993627572497633808330418832358761451595115985035942023398484306475009669183612681342876333989642423368145151043938611774606550632793020497124642344257743622328750125643769088771176668227674512736400942261353423684118449936834882190577881265082739364180452172208171539842429579685185169661583833122229169840406435436901215513362367353113321287115290142645206301952966337963199383704552199754610659623482974436941835588020034611440129125492556429306064245154445848444789282673447298830146588353141313832517668867114403842550836009864457153329842947863825763911764527379916715751017051199271091777318780416974128167151273029245726600205989498557343305160050078547958138447350088718002250038062248061338032507530324498960775608426349207324989088958833152607605973991742383137869723526791067817117008643834108382089137969046228037272087153949892324476869557510910719719428208219817844500807609578555342417474408983235447507675578282127944462438194361162855348143718626128332078333066037086444865893631207569420629704991786663338932075310887614580996367452209990028893121847033982747167788869835504126591921120953676213135730777664839623259782567646087785373016970545448690457039822188317358918028149397312606804627904400966404447657817767179700450066839041356305529391693837431699656902975407961253968121986556964611501707180572642939801989055776268676462847639220335625183260052555509424679460336999540699268134019669580088135420212180212496244711220211915281710294535306411692972338766298607240132116430078673694296840586930319899196171173038316552076020610303136197997499974186602231953857699870127157513478159178369604881616612050924475343403829655879838377306206082182282776782609395261806553211995504827119879769884888920123891630096731213551318028396150580729092368192286885581132265956448184498223570456326051515890048760254173741503325859532125042556268927576514337530150349913215017208843903501039772067762086481822328739604363021259369669806289266654249400898458223507464500604508644857099311859965921007794631516264278713396643175811417357608212681636098472907185077080471262223156344444024111562818772765735923315178132622198349391102808582758631358778966280956567044392134247410528951347744238570487955551399009500444840609690973121559982188094564915913489895773617969421361792388562552622855645538150236935166610670496632498458384744442739852475136204540434521517343187361620241566239806568846787117469650589116675924801463180804156979165138655876023874121972482855251904355101877933364131508051956662792154312143777990700053371327104060716654544360159203976422422922604923218215620727919085483074331959777126472195352199113432371017193995024090646395355900750304005791172437286063382821468100155714864314094089552647206831362860639134357988022206348535272883331017728020059634297935101085817473984158428616141632901275137527959648240076260036566391972278978860012184492318166283885313521442548569977828134532180104815589498127076797534350492614282305176702967744223665544446568596518180151039546561775297332665555347150406706140384119509673210115558629705492724148911223152362048359470365162996789725013424856282251370682467107049810626343023855791119080642821612013532851039572212797232725119639287381411334929981127050930747170411208827626621077609040765229707218676670962302300780395362006624000164060831556406247624850157088922073648345876885229973787121347772980365852522270462222998193672490612806570217764522682034801713700538966952156347534203142698096767507262697069826716254046548953198437094986742152760017750218909045705166424487675136529576912265613154834429687722381005989616436683873899410897107922121752509171584059448139022177871952528915827841761711362846029664931203367045886373997637889190200891378737508475645899153201596520988903224693038804530986957329824724236670592276577096812290674895750860554581684649828298506438643251725802605684148970978949123360314250328353451818369709365059956819334810554651080571633252941433978306974348975325894225650741868519656286670556752353917390777435729285961146926176190293366894854813154239242014165023463479719915104853578657037425322785826003017370110822464787753683656936713082253188107151517259582318277260715257992408167872813725915084925154554855501890377871252151560800478241558999836113730947042017356216614974395434560716641795318376074324199676247807498543882403769568412839203073171189617700507657593217703175222348603650525771909174369294270977723064708978934345625522694098084936188465441661948299881126735081663114454405456330204169484381777282884452334817891757607176283748365933298793671207159994172073588845404227204782831266187489706555750642458912103986086338794825517827810826551112207094709476379602558561617668862473226722237299263518698236539815748519938599126091376053869307186608757675343432924596303291152110905771599954559056156097623008940451309824353183704588577702252240116711826526108289916318874565753660309198324759953210502581007970847571635557512091742406041752897798932874234436668121880871903431052947327959396912005902037693974935009471467842758063947657806004491287543276486798515670494556442740599208056376682772246765732977362673019871869801246891111543424028305842620854310801946498107278373054248876438599880022720842093833761357734528677488310873073650327171610708685023224083464822666433110546846884652136925598927890152552161654926081339022773086046492283617040576070342777895032697231754754400643345303850812884463002181201717344361958899763019906575341978054098741112466508476115706966311422740202548568728035738045187517378226330249090093043248009465559017814247072852348471078591545282396005370400439153099809962227044872534414952528587876855878860816684307247248439169816015888695120748694099773569528251233240592307529367220834463572141957296524959500522505530682916553213785858428985329002290551402976289948492216026964383257067971278947688331628703798948307373452043403519526453379096176545261218673290376350354615645721962526325642795550604776295696905098636940271146479996581013087103255670524597331288543882392241891012018308483964153940311839338381983013269090874808330851471249684185322397690504018383058492081345756770433783557991332641248554557670747094090170746444459180708343464585391597466209192885631581827086238684905987139203844031629529143857184816512117139015775527208957194371560044118772576320814183890135775793015953344423982837270295018111530477040813671194460792315782485722615818959667681452725781219394843699742035053528189538897705587378392343768796231254908799744766638563426109082746316440259547282566454816722824171475658117108185306692205294859254506377063324412941084326180093561790537111801098390273272708154155504485162316519824025691431943902125428929292485290562370082870919842822487023990340910976557644959926142755837663032832028535736747355412947523219880964989012785242982047269893329565614103826822826884345544694164325003642829764306152419355475848565276547250023736517763969480364700250886813890988264688089765670836542486254112098810666538155703630768455391559057681648005497749492133392337635925706693971708894771026943788583904923217953555807185832790280460578804040345722569344517230182512458147741730589964197928184017784679773254501781868621651074786277704469311470313627335960549276623488282477201630901930636985749304756495917211806192533030768492053826900646939459894213743796607045690705212861159726886450105602538528079470235894584777055500589976923058217997257224753135731062468069751024929049143673327836479103440337722126035306713230336501208863392790869982323554848421792363012003683378750357390241260115868465331709178510136426816321459088645027132843246748553112323258985036780862160526173778399986085817159637819548974884236248454031530034243846677108903359809265061660641866456093383589899592289694098602921206302431838102153067054935616638632543578725956809030729299885705522132887300114837534750116410134454770148003111433947347926961741300745793916585841394982047138580067590290121493587447452735138443127135219664644160066255588247475515278488816296541827181868842481819333631091981823450141878983208701650437970096450313177532514370724778081266477281327622151329449299185592879450095589589358714759706302552285666706869519757360723768328435546865508462996861226230381029436196760941249326754578658246185219516494081415345314104586523262612079217119836326264636478193070467813334556705303115231075391352418452119203134989515353259163503146605718994848295052632752614167921828711536360028317869411482791800224969304217298885264089762360544104879192601052610831197622172118024305397034023640820291411586257378962984940036422470745043629914973240028960647361235880437902250788067455223095122970990544471105529904320970198287557349284510248259899307044625502201756512658517479811092760055305299965645811239757245305337781941984943117382878734260377836017552709126338383830391460335261554943481760871672407764259658503614326990067833508053468884694638024969959541023731204794698069655851504567633636504542054347215829716213903746107968305095369902938556564758563059445764730842597984525443309690535539566409431449035943644103443565281409219461416855027679212428015433485320467331896345956016171242116312620464328380826914525865575279910030711852022714972986750575055330939714256762039740610199698194465255192974175116238093501078976588171792375604273821308019929352837019424438704648268046209443835139620544239311893622376604229162976172539857164594457882246580378362002400861129144413920624513300402574125525686683940171743996497077063758279998116540482502313517810563607765721476160134147791286164993908298787158730436158629811448845083247723618349944849053634413487472126081961905671486456707259711533458157475485378721563203231010473516864048121639125953149539396759200857670105352702553380178595743753803993444213692316525800809731168271428530355987101136977513096035346308058903251661752166607714312130051316701499235704242801317976807836248197375297629517408532841651049390289855874110287705251858416950271973540312045218911284004288457448807211340747495409361720664293143539135986275533174840953478658531501047432092478826604959623629023821586737955371443851649845917495161064608506390896743460707141017274146767654208516912565216470317515735715580543825924804547187933435978895882505666403185694308951525614843668443908917802671073169445090213649913564275467169631152003495755919298908851019517281647051452299651021682116385279301801278969106597624566772974955550189847369108666829681352320061314438705155104027531244738150219416399258126834867031145485666838283117488855538434603892240433672015661433542931740193643683559049808253843055511195162040516881642235597603722011136679562734605834487581997761515166041716641306366450403105108793149991528005390333260728951543833797101648335519211374213962827988943257712616944700933056714882986944530610552643247679720264952387556252746691532950514434201033812105739706776563829406589050560257129408661917484516706793207664158237303501478830097299547451124750437345199939116915333409556673381907685957508304653214617718263344654913676923089661498204330348534945786786487339174367881379615672223234362337898585745899556533202117166230656341325025553973327801564993352814438941109420999631745318893453039114652736114675234765325821396075395162837503133580076062724531347656722034364742358875240165422849445691702644268770026057006875258160097756923925880302697443832020604849710127220591918823477899193191466985123775279910925695394301761232483014074671383664816766892068251739587763948257417883970132692390140551003251177037212692575712595737949831464991677806485436931540702654111736350180765014734749626051451300746013677518490996321000602043725384297835433139971117749753768957344505584756927446997873850703671694699536756827957338199205626425709038106270271483874161274600769101337169292118649924283478445378026372064850549156712390721959666872418677882498739919832980105161642462576733650383452094258620766215669934631390950905280593712420740348312270118942088314083359400951899590807393164494194101514209230514673689794494735426946107262709951759545987840995000383477419246618268578700638791700375676725006329369570951091424991185802456455722633549088514342043104934691014987334210840477777551419064875965867085603369076371924309164131269796708526169147247329190858456276565376283206917927603008453029335968780409015978053150432737156606710324703057484770328599226680888365364059622509037445883762220479825419800503994876169102182801464312523373199830569403009576476398251440164516935461453401048383686360950042502303443706406824741446874836077964035124925888304652329841245704175309556588309893593612703591610628202873712785015618970973124880586395193641750846323286676088011263583011577818443935858553088053510095686288755212155513241895567230163533813254281295335462007536437575193781079481259173668912746997191190700318897290150022438822593569597316463495240447874584944666589151208728113213609819752047313280658273946392234188026624799827311451453547586196342359930067982767980459302472352090397995362500535278503453750210934706717038811598308009363879743031372171796003138889563321435972667528091351064894180677513443687121039237505314304113939665346159845918342342470474262081419217093299606536867091866623417394170595036821189502521731941003674452496546774691194375298603931519648825228312024120371061190983979708016281483577840023180652745764872093254120078210621094162671294279746123311871199082264269750264420065628186850446034977366239412375255914251733946594950222235122957178548600701572560555354077902325661168857334346868972640826542092961956846782505374136117370637482050304037094355704143165162180722547977102943043764240603883353917142926413678492523975617710398813225998003443727409517647639207243980781204910897292410175679104497052070603687714617564871804819885648774728427653956253749097718437560807819987327425967718694188800085616599502211380623838007349887673789228632333118302240880680979462341663898629422789624470750763475620602107993353234906955056316865915074433817708279053820481300099950094397754459693864901596678614319861943191531242499870041670568498270090840201214870851376439825224461284919393328519530401336690703340615357934437794688986264279510196023708990900648890187612571723342915696101724668654067007765918121300425035165374183766895539132214127919380380251852168081078738853877125486574217441406489404032951021848137888080652446017219722702831675534943498373345178669904407534136906082716661946035521473100894960337028190938241293123653270250019063778118439950330753909429836248024061830176565513664330405159124600543332453267212871386008812539894130516890617899023011576967161796836857154723102249517293767788486091680910609603600090153222015907938950424221848781868730678935082670825427770465106652906962820066738066253791052363438350608808298268878506983938199217049558885141412935274166102728645572956529052256202982102359444547756790991538861120724488860856671394051950716839488664984897606856933564535564014957881485095001191274153067441734979596131785905340251449380144125558493360797810886097383591070286203976103918266678988822874463576803695061114429612939133800393377771617379811048430782169404690146138092507104050063289493058888219203075670306357168752005118080051755069904780828225957577511995239629265936063178292002716278269007870101555291081497367062418825112480255096939296703690428141792330586709026564256772383968471054929074629248463342613640734189230978528204554185607036964286582792483136831640134264415774170416341817553432755250959155387681224619518493312522235088844235914293208776652808695726363848330453570529404098486992767461049194665178261045278556910015903469551764134920368503256723549294756880218587912417830623220206650051972040522918669726162575337564146700235560483566552159086700212921230097688337111869565627752770226050841523730118263869394603721533032358295260592915566685808322882691743359981831139619956674083105774827038978890466699817916409101986643593539078345220061664457250641521293974599406231462578145187292518654691032295483008786331471019734881497174640822082219649149815668354796733236003530474424824796880759351013449701930609423998774225909964799123016183228180177632862992809096367532771713306481429278155622795579386034873477155986149129671336018650295648792004392871431602327069870471065789876073243373313094216911564273538768171337258357663110169423218886829143834503559796280438828024017097441762358920067780630000635070267327552341017153636905923488380791760195174592640145799994071627222391640933501081540704760214239115373931922239246757840926489136646961039245524136133440844744889411955379638019885974780345320112926760138128172881812359768489798985648229450581831738645127246644293886891759649081743021633494695597466243228141180507780556812955240214019187083017547316235994442930426350457441037360817581698469536182168656431491811350285163083134852572386403904630309449008287550451095230399264023962276694129036078078417399130642503508230989228904592543604849540522668493154513158529913807917278927035842829582045976968124407203875673230967758984044959397331846991757157616003004615370130621631466923166190795801281667902890311830199926668054801047673903513602203045184891996669613178293417476223952173408925307684428973857329890070603243215883909808516059362309816101515958750626580333554143271749058109113277435024304313960377087585753711005148465633889006057050331233841005747709080031180080089344434438481105058651691959460335346092549203914890027528176092796969441932053699999836189302751954063125049051109506886729935953333111064580237604426085749888106767144730700692031382040755870882185733695778136974543994162175451389116755539483904950349530567817387148651523834698107944348717928000382687676762569435052711699685098597719564987228152154386363945527938079198618521216760736915120281048712894625663647355887982713598952051933008281920017308140375700288202902105783026697959226788782075334025872601631419373115301306169575400013957548919440550448888841900983412010400489849584763659332411875394008619421633963137217888475931742535450481454401184614061912204381251270295159637396726116120852142866422689142209041610032055721631329760965537113692674658577699078483362351228154812639351631887613220924543065108726341247693181410874797432816734878921674431241625906537721264011647793108989156028382560152006535662287221314728461595186090505361131019438341458516631012602284180837284805477126649754315624411147213337873357927570516635799873789207294407983461872497974150601409365418046700663962708595064898255569482148096731561540925239711965675943088696656699137733044919368284907639926958317369774200700101135682305675548320673307984490309676912265012221925444820376284426197981207943060917760920383095665098574624906167029033576436823366357374541598411170513958651323557428183702270015194645619941038260423060621648746820811209671492220630705608985428559469992827333240227518028908901110742858180426822287254933621061955408935119807780636688910073674554585033522685567371084240270260961184968998246848713177360640738555910715578827224624687517089915490629079094706611928785654169371117182477530009473460029794698221942995812561397209359931992460458438635251461394754191094291762437423068099512480306493878071325729241720479861162111702733868338383501048143158399599185729922722507495237731119552675617287975227103998476640458427126655914475575615896200755581861266166078262243875524618236587542266909908302233275600228444870742198118997353072595410430871060654829341722937502471551876352635982256160827221371562583525303361495349446956451499392808213979364830454405196084608550632599225330904124325882319552921178796732384287829363706353664206699901777774249033036712855197911523584815087699081510036475473053575621711047234979174344134274133918923823730499569617180392701168442224073581510384677891162012818413648428855487076400447417722258024733685373568459209793755673811525169088257945533858350172039916438113949168192571793175942599821815511843691921737411726728511112780003093041756256659108788728079038051871305591633809589461484212609219713812789286657645934796234251327137363500425751149079252834561921686936422468841987677153581863409293337446575122608051245417277209825979764913953972404752433056812504974198873136103270391344847217503496003307232537756599320175674585726107311045956811039951889858210975777078212500523818785357961351259465355497950068221376615735757219774835213720943115409983610106347006586326858782877122875855485163712228578917888885222046225915140271783341989681991194942827567653197673136162709079011339093015402236640971089809177411779270687955284344369253515355620979187832508493580390714512000920114038668096522980803210172059326352640173448098590211359714424570760443802357208796932240203498601556128424782671803502766113268424506043001856484563646102313469054209460942776034061215196478282815784651556891332298464961787789286244527178062359703638759995910131229321925972768127774943451473302378263169372993206477504015862394261580964241661404733028434711377576317293741415952669465536526636689858986883145020491665708240637748878154990735967317530396671057448497324655662173363060188026914416705538236182359547266690558921850312212321441162448996109074640541156201793459858863109216074695860704169753537015273618350239025180581255462819712202805738738914525236103137705959906441821359566117477638035116985656211858205226242799320356860185698695361645886181924511645801789563350528098384702000439582547760878263151441990046470050583998411553712164618901425487043240120175322222582645169248501046037465487239358659267524459267489391074703803821947154577195460079789136647289231254874087634842782932909290045910179805022809857061723757480393136124895765921669091184096612350635699761101522651759797985530303369554175220420753904941637385387950188530612054297220268081825837224423335644890133176558557705875110323014433641508708302059586654695362090655873450610953518359005085755600114096109230080397919694041256666358478570158486494600419595088158942475079290467132558659673745543259922462017941802407609416762678228436898296925461007970778762758897595511182479009929964854753919280025562452658542912446463810522430197017177880799750904631268601078706232138665491056666814303010733198914448682231490101535850563808406194225485182845985708834831888072894672944224818258762806880187206225306135741562871092550558294610905192259551672668775784689807837466487408201871023630460859973889442059643032177460137370779905479224842100523705591353413835539990647683826457226072362861725697749368215371756654419844988001170650595083919986175033677233253690267749481300218632897159176893988888541780384901523917646011912360969312677652686829855649728267240230144522742095531044616110702536590103342802662522370710313048228832413333591400973497466118622367748882053852638732663925174680702186664623452290862998639647806709983268819814224863348202682071756038569817040108880811838555988870076436529180956616528653290568528481994889981923551380166123245634956317412804942008633310720375061274220496394624473957645067649975500438479058513682500806187487327302516243161122230571429755854040944355889240731144446978939991413951895856441988582507107899338123013109493527211963193797505017924755769622808326874654678328100571388490821359759838946577753574275799474664534517266072537165228357284079954653719994449480847719685133954738607808544607361950535806820897943860135278557734330649288753371206936786525730949799301487642689090360854368164940868484435806906296352442026400659448685661130916277614077938907304444362150011725468431044103256579304708366195353117562119030407002341918495085930226852857114647479119984056654220928891835660014009612884616651992769398664777111599668663070308037679003648871291189068887986593607378253045629297470942151779214778353133617065831237851777884875705858091098935109668013213140172948771218006696121882138328083913259062613881851791482559473333547453370279348172085644510407527763951379935655054978635399142619306647721411585180126932342210180453305628277218937732431755973212440231685924999810484955458178741577883233011637348325967400837084190663257994291405620324602157345031495342007688490055332296635287428523146456103875210702856033494665480674680535907887539249020078897356214221795623388107634907861450637889195454573505831141032607195283736281473138579027121983140778877313028272326053901901970368439407610283078146397515717684969291789595754178660752774564268175056541054194025930578598797003550517264800111028424197378463000770534600450934378912219369929418276053755200102061073428922951339557620838342542906958617716343010402568237498050602507420583982345594624312783531195766424337997993565527757607869366009970553898833499268873908987526104382624827864359405417939680362617280574132340525240366334898209835211446996021130201320348740695599528236230515740994019444885615480947942619614181481135508921740676652479522138396830475418596577057505941790074419884281429081089968235173328966183058061168452908130869490723297941656078285545551988260752841481262002568940384071314281665286748987101014447271715954652757902922495254613300297773268002750479765654217011257092220419746991566829697294490457647647266266576588286630583953795902513194750199871362436221997136520337023305531208232469094763119047936363213101777007599529441706154965499401430545389933522698474637283241853374083839491623889238921338249806149334955993654461743870821377286164849638980137368703658967091977531284055089348745645388560349470155705601873618413474546980156067878569509023168772782490206638499250578267884584722592962317896268548244243252698984793596674808232615607269978956886337234683121832862746668783245955791508849735036802144883636373620655813642783711746713386080444284713243355315811508329780048176830040988492135330156063931528870935524590142604796811145291972663978315307906573398355096618773730971470208540603681888171734106192940967429345329890189925080797941536376239109421809100983283228141460940725235151612288389145609509922880293750408446172231197207646871683240879271183452875779288763157832759702883674753129641972837579853325220713375363464564489368707485670847684514478984701261313046401383355542303114717232856573796135636195496830248828948547195707602961491806192926105179120517930438569630291852247332555819541959034694654999499804292752354707017014421515536007929363135983280290215193851902634272829280320574695532444597147002033271853508649944570131038338949116358215402232658283367442320710384637519327415518436484538564412874237049108633370643551378563026120388662081332836363366162263634064364288970421083084649270422022415270593355871699767417970471383571685708557734360118293238216476012613100172502447661711581765833163934425581424589383203584848074408439809503613905908807451167647111029788704951705068873023873687678419519659753897924223440558252124576086266938740092789726501335721328832910808437049137129364941890688516790805499432206018503584717903367250372133001404031141564795736637549655167104769474287739299098472050350946140817990649104496246804022589648937882372652452560477085601496627415554560505613380163762224505211405110160541071852653545439614278402573429463889294435369614582641179611129174787323469348559093302758510092959222786299726321442563228677046467091079650524248335641832867918782550692657203009495710506514443464298679382990588080603122433829344128865639652872010463678207466394388841766541638316683421848734756061049676151349410754872236786632173454525427086830044119921814459012246851452794523569764883800627442749279001171023941393126804246078480014313612072832747476525583449767510565610163175879976030939401401174820667796404889622872725364375270501118319630356387270484887440139140741932120020524378332853866717988823991819970107813849921688516956981552804294377889986905432401540968630568009278974051263819303798108194539311034109703558913361227154687720140783968327769472696667428241508565640526630502379719663890744311013901690178106779959494145982161356768568581347840587902979793331800396532951504218767170351724551279388786721321148852783810818336296872591791672131356524434004892046126927450438241460425420595076743100935898650192478776041780743372854535832567196304227624985117756059760620537696168002317857775299460456048395802438253182528539313240992213572779405697596655987736903429661431909395799730008898302727932255865821921685704169206378403396954815285628779988993053820881400215637457560492409691253731269891229652142313295464793041956645399610399513418404030380815629378798779900624217100758079476135944579675834809727755694756175546353800433548657660459814411291312219988275092023121171078523431006359092623288971904330251557480107450060003867472426241761067881094925363771012027807634101130303530022501653755989309301739876589276983376167751416933283459809638082449685162514426062434662223892178102294257427340314229757989389564192845532997400519602488266035024897736514796883176003695997737015469976197987788899008752553160995375103274055763375113604988639977629000767028097857338793170635044019394390598172095563420673751432771537558226969784505994051811386282949014368105959076772713269546117537521194063074082419784833773640282175393532661450548318724214989354141346786289890211528293180049940473774989775571079433665785977071409250012836960415988395165059757451331459892997676070412749325789257219573675144602278545692231997059168523502640610279820266558218357629841151074306827638983747281037769579413352744344501686543157330233983346138852162470327901108725988969108240421645571625952696413010791268240356510775073813712604303774350625853203933992314229128860117627300748162515082877091964683815798108744167036738636822439906839394432042167698106118231693928511128279894795136426655813862266359498720537911837635781001185720026987206890235934342547815645509183165241548179401612507992142837881788017300167949604488442102850078756730516102140238648235578320586028868677728138973677196006524310244041361373082581994530167621305247100958996761214515088646791044382260826090346168169810477104117415884113158709157149130412102681625546518818180515601397470169026513199511011788685767564255654726536854889398777321717043373523132700487985325521644567305758652981267524472003198860032506804323500788323333810377850790964510122802622588721159103873060695124308740033718764568009439575347204029887126640208031838978118065186042123050152935625468985120188435752948347370041916110628727764630077631689193738944086737651108279390891378401725014564202241336663806825831254132964895594818330702554765897584404345729081843990965720209956893416236533537332586449916722289645274286882703656705586696707854187308721038083213997423477286628868478990066564618752529247506134487133827082803931228160575443619800175617151862699507389314525963549673937378501022738532867709319118711011349646061350152560579775359222704343106102035929258999448603167378561752166354867848221604249369496042729689099253592354156099448422825230191727767878828406251105777134210400391917329887651207454242344917142770283356719844052980461733736645614056890490864093986432895897553460101962853181733679675219384332986325514898798587112103712991117467798201326691181108369146269417727860181267975458904603423675877233208324630668012785580408665668816356550315860781983773654525284923878843123154929403770226974145784900410720334591936383956651643551804850555289957564748474280239401477104926870504640114897020193709023857230713101150183994365163107911135644152099710071207356123675260918440212522949158580664539233045790689429847364675934066179496644085469217021730303143020371639347351835194873907914204025853326613636767011144348564240273008788743889993708623836953770204920148754365318538998849876925510039019648176631991416453462594451171342491868207248378712238965728810047496980144678766499504394250059074387014941396715407313870660200031108244585367147991845405562598855784430701065541398846703967310726799095569908075456067050189425449037265211590427436350083406275476758503200741878991895747725470272052823428153807498793266885411317093689390855064315351701943264989328480229885635853661566495332724350373403448589253748602010730559916802528358979793293190033083318779292662903492120046793652876120315147525559450405994002181367172196728822816917845602780760172054875620876056344429498926934795454914187687761158028225414911571814861138323012251459083391802558732198834178680452983031373987936469308690608086357013631100369685883868194018738777695065020009457184893939627057002537413910907574634594193671792215721999328802032464048051978889158547638920069571098824763518418440237835855751135966781742997038558462467962395651179464876944028376854261810081906828873096728097874435308235313597848601302504432427437854234279146467721341286289515261789978493495304999198250139915401983084937582112690019876469041168513483211417333428661659068295778545239734133453555202729673091848659724968164160123114049699113877990183816403902171652609227136050685751433277856884953324913992533364912543531960603739448907294459230647431130033362700501138831116122440785870469781022244506410995496088410104887966439363624518953584688693004178595014182980058622344802021608195378486909731411116553846921787258642038477231174600799931651271761025011587632230303335729204830717472302827323968446571609179572746124890327557875153492978172912690202946748598573711078835822309564629854824086930020030942307935574907425904234924718838102793582314059319134900736411890024003336686974682580071197408286040961618536370249805937673612554090994406789921692988628015069130942410072350509101434263068375197793890752543562498756990196786320770588307792094566809932906344928832396505465788955669635797530478143245873530572274964340225073167903272939037934236807791688420553250253881439840240884673434712167419302318749749559706832611981534993276020014515046226885443076899348433457776174548425158575853618998196318313990240865029861447051843537460246231134589795675418514856675332027460863523513770118567079203957256478246903805589706515048255007166587006739545002033105730614808856245480672895500387417188096655102666687087874247782165300417578717771697171970576021905409627958442169047542141101595909590110508244105838612101217494624431463759987585595396325492345054720596342775382898057089363416652371309864905732701913175043142047200276353336535531097122415945492802025870976223168407289616721119796021578497890251436773677629069846341285184186999048103548629742654363749455618304909185984859120784298151609485311996730128471177626403743336591228362114529875086825604646375281831663753314179580446369506452495959869040025157009452527669129021206086130019804339257410473119491522633762599657844846346289978080543143787884453740428220037662001338083705702512374366154400895544641598154192393054058205074031620680020636656737083828922080389181823392151131745824041166112564272863853388361468474959987310339641546186778308697173677072169471437506664014524091988165714930502204400465556926350458502187469570408402039630343689666066604632743199274897478620716324798925401263097908795867717102108836776695042729339727055799195649814079858477313308490109449413916244397532675289684320205641561489774284324095687185816167993099023878914856390675968071621997600768551920295227504687665700140881617814111995163348271138573834450560575053884067521751090627711928490574574338217762222936605374265887701745268129105942654789435737216209163258327433357119513978994532616594243498887076546696678841674781505257445370272752828817781690363056073489543281446138560832213208694561513378794985673762064943784317036258844412387306269593988878216842828054533449304143453640092875493903841006624188955386315129345779804558587276800553981190390009460969151903645336862331102381407947188998004907216343408692147139438346534062823629496677153145145490744512191161628700243704082419726293665881882249074258973082460253115910986012655770853688119374227239208579216587397160265332646195182934265715072333321759540132852836454000037318522502193558232910388782148117157276685766606943340791954473081570960702638181800580654685521046906666170742416411608615970802651251080515981057871143896866543787186248925286534871279788673429283885847630886939365847763598539215410551046972605367084744466380798899677355207184879170441285203300542939378299263101528796819898846587684099864430517664696726042963323676418178732486677457125666375283659428786689446692457901185477729944555237287208870175027191515525629242401229222507092646918163850035413521434296037652066527878070329598954212971641659726363285735214501878866922334295574899341298894429945446583719048253678691182224667810811487135514409059231293104060793099528027189023496086619595037672709067358990412477147708507519876525020808675864008199594274726657669073047582720104856591743472462980558537427367358168617723179201454745059421457832240349777411066852094776936364829581902352907018029781222909253402718289043732874423242779015440476515417364289634043268436711639420131820091260468891292896938555979092672750533416216332507089211752517874005028010455030244268048469599262335155386520831640213656197511820004042190320299121373787708658756353546096892107470056536023456104747325755852468747803212905396045116578299426457851586360966188729097504980907634625032311233808040262370909871087940466126666239614790486311587031940134864392794202483871672960190567036608790425112246440273604961891649144636091296396259068021542511279703431717843591182960553930441007417787496409179578239556086114994396351365308054232136239022663691494835105598471337561486988208508563224061560287038458245851518205739494206257476195295772339005947822845792066002081839706511554221989043977653850532768360698290270789543191069639753969169387587953810509732008263205422925750692304828318259537027481852738052701460801303497588870805430985748053346391447740064721742389601286227503888597267784394727054055304142457643703302046738217008257210183052573471551253205806868222740815631282237379752268907538314951134476418998330079718808384190175802107533865327518273114333301718647075229332663447880105464015503859981017525794837625008829766720717514368951956333871786044329429725397095539891351863765946036678424448249355983034380959749755327359764962172559144288152183044973641347028845433148730652708977013921182098147417986139669607518366404780758977674497527364644351613572816108801284879862398615284455107036144658386634892790011313195846644479222011980266569944147527061701311933171999664949246078444280715137575850803141439111376796681515640327743521268020984205902406223612726604241434980488239614747203743804292886604483885332485350331718964787999396198042095527414577662108910206082047302973685512765515908367910747491099148217619570375374908494591878656026306018838730402663100607047276562809069526300181454054957508605703119905747646504709135405834257421599179894995928810334406209257850341138857004986455906621767400764828243012119047207018872766905725386762257571079845168368614742543605485749888034118995124637430330862974912154463853746384841564312303770167751482810673281157682115012880153667392574566699221996165949946507554670096138574076393031908649333283642901369777329651696716823945764819453157814998268501355985327034309840674229065418829069915789270374855959972335242470975908896400741253784627081840431088751322707232126492115233390249949096777540451717940206876775822341047371333637292062146698251477611876455598459965146839746353148226613980060515701484447923719375107400062319872114540290712660587923642688364298250441522889383581834139490569918947504279910516375728253167749709745554693742282004658480385900339216232260898174651395137490300203192061087603371350272383574262856125290126361025860854346896099323148752941464956096273241322946413693595287770353273308490781744394274775270675482044907486397020204519987347250484858249812357354914201664275738564722746768124431164668604534354219644898317169621497635429121375040373108767922113756946980973426495053010032521203217173805960409676679649762050071430295761298719864470319558942060621446222226835542052848380969391719594992251099599105300203329973115804987927773184004810336415484084377226906253413980282326844488947889949805553133437918690568275782675881009801712499829880501785098321318780106760011832777832322297465367848495162748138562370632808160199108800579379623832275432101202075170725132089502059038029801609061381752088335269600956014247988263139746853059058287471077372688754166260473780067656059447105410536497298792577736071426133383657406397384093452659066841694976818398724500896795738780271005850974923851821535505001884385299245042616578111318707778028580221007675596540790994944058221490020651338434153098854751669396120349429478280532396039411249333499739569416125341521910605243460603711522955774595699844934401537573904088342973017082725139748007910185621244551292348994146377988936111369236728995804057497520045776207218965869434451256524769074163511823060710986486963236520242996418313966388438909017600349428861934955045081494011965326173548633553362571271535260148988626114151041296306404794608944060464540783097218396978766055978614238793611250358929918267135525099566466516442126319880504519513266376626732055558746709856900217772761783475903266027573342188013828030982601950699919646743139278576021170860072516259430908737310353774793983503921431345607964170729659057235760385352397696866647019349498266507459849279365318918317339573875925211477451001949655783038390851043852473982443747996398085639102287606085701097931378611611674624585978823689653784758549915040447175843827424071777260525356913042887251274079507979804105140329897341805635109291629850555459390201059681765711149046006890740647065237444373862737183318587491532634730168401508332151957853950717106659483878917174287917111227394775322792328366550859357288826158000403483547302242899326317799436733725332201758360676000376910809090374748647666956482095719357546204539945581987336498145373568059787978905037840309518798504171399258154617939025382834110434268193504550993410606913525174419801590259550293141868591188964054248804364618893255673241042683628889725379900181388081571863308479309044501015378944622369506288050435370220406892858926705406477018944704973880095440979025804131683482874461079362162275011782153346188736629961222401350766645840572819388153547228741632665705228979586162480973796473929659067952443627613689797152326741614975409433449363242352748623797128707997922192329738540717633112653618457406228302076905948625674777490036560690270366384314154882076061369985144691081947862316538999582123972947652585747990039485021517941988401789836084018088180357758879255378080227056224370813461580367617134487350699509439295336558874078142784182027768170744104221940598967739807934242036392979090046671586737096728094401139672112523776935667504745954413664838448222299878127838235337138327211407192998221093114192879870966088253705285421743281677761738683251019991636583444128691202643864500661306670443047748961688995438260534232178718930019246953076008118838113810710370423027776544373616308579208966150101642273642712980996516653009096408424608417131638559904509144044227358880629032174232795808939017325248462713909897590134468991725215432638769593102066331473438619964756292199808181178222340604459273785903363932050073778503957565732270450635839754213516515841880832494067361652093226596248831174942999043954024662373009966079070941414543933153057242261091895853840459394969418409732416659590046076462865633938997623168077182993867293292492578577361613496176812778621353824455310455462183720728318254206555247318812195778503529069329176942341988729009062330825266064045487096611069890560878085561431403630861830913380799781003533317835447658839559397572669179685413483501453611105366688110524599317095672978124142712452765597020723821537003789966983637849625122072578070301252989397103794989372778117525515850251633623948596135568984084882697366742222343418947514337346962097615846322135267844969731831288336264906360840070330671782552086012920204808816303250748932063934881891161784125403671667651978353995022672079621963626272442452854556036277973194913751508700523353353730709921091452363057065600255380797161484649178398352151299039299028795888969301791117497802760945409569953490170216195542391565483581020132964260872027537657181256116019622008426613846384665834397044831030854149876302652448592834779935137467904373863249713850977689898910218306747405524148116258528202417789774328967957094295459608390914015988936610231960283335383790321065979325708332299813769560543847068391079231993487813165190160666548657101613233668907537518552853882106850713423577603117424263665050557583408092584708886399539463968538233290320171424271093055754292258596045814163330347472826129716772541217839282769749453568399898397500205815040971013762803480665884806231083053520716838760379964454969819512463082261439150959119511214777359981625186074980623891437074228921835036067916367929877154893150259847933668971494440007910969943557014829363797149419710246814725251210724454989497069398991482023561208853817647189100757793592931991650496064000610679700070320978970139773102237729827928694684817756097963519219192200611388840360640168282019103848215173511422168019247473250171013589167519418112395856362157142699089917654641626248674987489038715948675767342419362504384499765870703412348766179463664819114513967449232819157936132229111000001880175896584364337212587384143674844040431538744111902454232861202614770496168176076810757756746970954552976648898943154695973128886931731276141565516955888119343225963349968105569594667334581987568851320327825738767866699022063456514887161674158532658092259770311178092064242619892883105746228746399227763927873217584253698965304771133708043180206137817931379536003851650671945137622563740811453833135602612324422347944096533947348911028334718248115971725754857939317813039048401347984165347088989640351898351766241206154190685778139771729411505904096820863574877762211740827691248705949319090631840354697492503290326240535727434404785642547728326004471636547180798924160117104362199085089979074769389317402645943583385891736075839156170176362464703473241918200836179190378239316927332542325344714121947920907826390063136492285029134948245654994121837644434854730664734862038518134047236733701324632000692909866325369156443130970050115504771571110191215750076125418674524951849304275064595180181218687035205984768019526560329968405653884648280841523386459539894637136555684496205507248630645981360346657279478499945255368266869284023852233716200722115739648509590178844561679775544135679370701664343644621966784180164296828765107550154174855477418308194734734554959470837523772728630848849464327434056508661348492079786536504158613747675939403669163396718502677247089985131620939309551944493696709191933262237891140637789420893895430769775095082200456705039828318689918717732207643169580449540225269817760893989402248022312450522874288507132225657480916155941879763369500046639504866944550170574263419148366071647622439619728860003078276666488981604851759230055036110956277343823175527989870614382165488597467637020085443557866015300869707628730379831011427595544718932908521056054437227730387145205034378242615984215957156282434332131419491099527250392040857062916804035193721544792531222156649991441287696832493328322906622713316313141032534230003048594097793353950131982979377730931791686518514759821257730215847670444684566819271200085340582853652181791208187968800106232803883183655340625022763518391869155552932648531278515870507541171628267915382186312899007593890350710142734119187984511241437650542601201972760016480507317235496467310421705255418032838832231851644843959350733006163888150399671757908067139572785389874488656578419432184066504479661388024542815180009561253222039321318975855118950514396465339243254843512933040111330844222808360476505465647172813310835435245495389855988293103999154834102734092776988469132780710188470758453412282956413688556500106626496674694368326785613064950093749678575815697088259947234572783162038214961930087268943833953410414855820643538838789966491116930840874155106882187477358983032208703312655291814822393781625643834261450197217376630949222123726948732652817072213543328935477255244469967054537172287824188306865761715537904544875093861217130839513406466244492083214067842330309169236572022980540935932474517949539206097494835741898000119374420071266126119349015704491140985195589070842035980432410427613103048415085856124907133405020267518258995669867411751520523639313054291818851444390489924110450051259231579679704500352634704369496028600808843485395639482255539537378964135070491395221635233590087038871069286453310571047399160732376051176113685836760896065963438457698246957597116205120101563705750883962906248962321513315407034050859330013817325252723595960929292072308987747800678336565500250047738110169485723983197958530464754686439110068357373469466408041242839445367682847209348237698507849645036764917219798355082807351642387216525214509664065927970436468677113847796185707887586097851652714054806661799487936563090363916610695533826890236942430101372671205216299335168717187418093863328679032028566727249050774730167227032689237820338127062665435901773708508521645683213360461143498063763294594095074126664843573313223079756729100367861684663288961601061760058944079366118251328848385360260311472978456068578469391477452316653635549797674808530608675619909284445597197150621908696229243662502673066718564299398744819467633461802285163242020108717822198270463995280906225264287409698280345274233875615350116700873929901999627017861172471327510604961059820670435637681091459343098046973620347954250427276268384117279384743826334420379937588824480797388005382007882350961360881812172507533549286083735615252340212893193436089768171263454024889028005981482717201258006653537145291382994676619235864587342797626671630834249278020721378601885817276260346794778512356869054283825487742462059556954684139755908164073364524707843036860244175750186489576939534331440568177493844359936057516264301066431429476367228760486595204291934914476843351357588892778436491667625100163474689180681443717395397622045770724767234916018589456619749323396310979574138961015945391738485728116517501037758279255646560366792502394240704991504003252574970295390701308370989648079764079677140869830498911649047785130385046646416882885592984668217611387615629641925418049019401811469534253957946998920675964777799648564232971210957687693757051222069344616451931951490912702728289225627681285640519730301276221093672365194261189770404802731611131773153668130559210411108037429891179039426793975412570620924414162656988090431267369441061750592590778845341838145785680905018386402094097354102847556626678571570491513308137075839374100443216767866998533708777017395214442747766408462481536655625032342249042796591000913993950028829611361459512055409444978366724681264375188704106981246393554803126054319185293315615010366181045685773490007359021291077347920561621292837212337427222879506579041172435871927867683754944576343654610463981511081738863604347028790393227518898577127812703636055685154121357266005145638947662582898987966050631236720746777512306972596256797415391983073916831046950433527123346319907218668427036525308726325919009789652371024790364227382751723316145960259529295569382566974406522881023541264980749082014444462179803473099680191007289935578229763547015230287700852809800665300953062078665015916417403286860314724174702848635957154691252721063600948749964042340048462884415576336123744761932664174785446574512708857751292709439195031273378201461976691325410795668838105488228922405313130383921495941732847768018003238612045566174727253593205240104429023532769199479796583981961361660103188878815899534677103967372415534326986192982555738173331111612411260550383321762961960408891823144178473630056814081326213025999078474368833069294492483409461482143417697665340870079558008848638672660961524196677986312543975057720258799795930455690871234143040437536363822399025335883470096416797209433725174534464494939350346991726116062556426750138086653191127486842192013861620242521865092548252147871027135519661093124658081725243282130158012757893212747858474943928786752915664590620083818239612336995964568078449341720164314186702713726168017316685329499890149970514156552938788932312848985215627207453495374282568101729330441734638521933361401076722921777453952952046108503957617650073857718009294133970374549582757013824199100778736950822027705261487524463886070854549053792066109728456840893956918867974675352340974240233432919088091603013831720405521849839900385320339547788586901878200341542892726929012317830811925590355480010597594516053354010547122734825876866327619388474430514719275125868190938684896659524512423501247787779414911549860497716116715783516765967505007199286564402007672828570753498469594771663935028682589835223797816852230504789432598108442501855617789878776244984352450718074304896455086340633315964796550890281697656079729892431456083017042331835276695308227643358439969783092722945109527145340801632430750433927490302196498235344091482917428445576960942632654254435626414085420702824393507836400855037731918551708344335618936227945256555675758037357774479264757426250221236643664923572607138139231345494925467132615911246558831606968831396083090253215298406583955907108054314175535333253625083061156659530925873735485157309461062922392238820930435438175981766425936621212722499306170432815901698259697978884977962105790142994699675303153620143930115874791084226383004336312353465791614871317946502825986008338778064039065317557308699406653469986727897373034844594714151028406365262038293078508314748031668922550794541823857751012113214333655007700162086855297071756339537829046252960133201747998464038033445875307044128758750037398058995662452550983434239803392906075357742414097119131364231534918144418367337788313966203077501593004697257571608485215062313328773456629755555136248695172767655611410444941026077665178209538531027598341264674488187814205422178004499927919843367452513339332548886896355799570591414289883317586861805215445666631239247326195914533332046727077091012276384748449442411453562180209044173094230159475294451734731508702231694157274113301783752249238988131789847691833205532796665661874562470984896619393175856458806854744811390010305136549385431239343156123009314892900131131089388680522034686099042112691480761755735675985073676048967081667050232793554091445954149922596514351934720638650572784270422227943885534442445168399558300101850342731458586894429200828859412580769153192080837669668103351859785408632565252914305451459711687710039768767453050912041266385999963645098504390600270754284859601736155562467357925762841724924028419669869296648015458146262993357548942388825758965380332958642123031045888481542379392955242563452602052540837980787564968476588945516513369164052920656612270847318988556921964987716870955432444780059937363507261061375698204126694757736513949651196882686443798764584913994811276291234114558426328475434197339198470470605656619522274341941488718316723491347355866260894900135227241835119939249737255340651445925187138573775125604891130328089778253391412540397976650613927621835741913354953704390261098855305477296192897763895908829759827899275871796329762466475301298389604422807247204885207940706870251494386436262599580249919511006904971403193630806843245962109353056257746415771499876428882119095074303501981198505518142214951327313521617672035398327139976880034849757960584343886225512781843216717474882484035334362706581057470250312015283585835011368717552020508589913924574277217809518170174525578758239930388009763407205851597027463626288834004160147377055339224098147401008397280881568817952507522936537355796001354690135690000602126091544837592475417546125745132582645000928288979188858786212614674756164878545560550151785383420662951922817242589768663686863240484475878240746139487842275788429666103372129591434374550983182822908100926945823901063193029332252733822039553933203551473477196018315855708175714349233348327258973727173927191604064190996678187891584498714266795443410675279918154579679681225876839899674243367977374470710952639221322175650031081754878929514872949958982599098371670806103856160226877312859612191214187557830551939371889057854267491798787950122991433092466182453774930658712377604058932501083856842609360501823713302520923831219963170151714511349315044934439509077321120660491715398467512560534967070354809421179852076015251718040389123803490720409625912076246092356833872351257124836405816707229900490481066772850315681134198357476057569096984685394293522584594979503401652297514437930306133941910063527007364236058770953720233225352749014027786853582827591368209325923221490783018008723640737935649732733829093291380554037820859048232637108784992147327638712841275594203867801827635653191797844958724241241381962483646970492752770588765876084010729743400543808805815449939605461224407458568936667987657692278400381161903037771646744609855917088002708671039296017587548311278716774326004220658871799762821367510661358534146521335975192791110025176079077845999186138507715481751572830856699704280499948544891574871375485932263467496803818853635999913458724745363068491271534650816687534279512155251252597651525340197006642589485783300936918704157019827770375204617136739621247505394964523206876777101291555905328863725679623634965421515087106591595344415283554744876358128469425675093325715010353678918364837217599939910446601653770142121346448341683027515246435981852585102014153452891482060396688946466250568227288607092415325175890104061744254794127230464917940759194973091691511683081110586695115695432632691628673190498579848504284965007712447148433509352958111571045177676177590123559957576056016345601136128537074239598290653269525265614583896901878310450358616230807583881990171835515587938768678305499124108262138186206865819490689487967944482764173870499364641756363847164719249284893406013023135465043813154978066398124649647574875252591991609275467997587406484527865255729662081982805581241434779241107703315949439106667216877460990237062141967668294911084582110349543543197903308019849841309122579943672826526263315379868797913700029969195796544599957050300577467112639604134946974585091140702658144038247750558151170311518558884347424241456401529014172991717109053481777386302090810296537805430474091587937558647936250309626001206811030938721745222123753841468659245548346247172340579636911937986761928758991218149669480343229853552888358560363190388805586197691115491084386044112598931612302833966586701491842178838754264826226538070730051138131068428845590231021091342016689359957612798298844589271751736167689814587487712355619030820576577506037993500728098065284857713007159898036635404000648409414196519888487851017414665418484225857848401356473597033583730914440286016466472208575402036049076124346139529231519586936147513923257156518167113469140802025993823262777773818978594976176373454317041618042401350548682672855763814235958829922866615279975597055437097871716515725634846745598992461009506524358873927717648405402438812081575107639376674322397597059138185973154009384388264635754557504887846153170097492456337062803391961685617517537542466168387954002793892655550814322824592136519478591988001411184341170671356441374504004381288564969639577401718587461419927697961219366171398530915476820391459573106515279256648847481687390483962604073359552654579207234758338361093354251970260649876803136958970645477263635415247384592016114858906252714100331407974111171644500424985424274913436344323261532709569482703538230044106552286784502384317522441394476553540823754290511161977453869088384028280502675583629627853754957832513436002678115059447781307634491988805346707051847280933471839021302038500313562061666421353972435215290242571093894698472778267832065052457204007206135528330767762044501761931927323456824170711911607097633796229193432720548537047863780152033653643135388949643580731638061368456370900067602544768648019766014232456507478820658873041780086650183584670897894158290477095942592171232761870119740777469573472418763741773736550806013119952796336815657724832578789602237226213500174516107483948378954058141903331133576159182518053684073197344071710290504684721097178064930379146473628284335591555271796743900976578196339631353588399178393597982961026503753114594623639502920996460236516501821735456254452503285555121780887824485881569380840911388882007517756288470286999410179521537815722720844821958229448059993574681192467783262770984403352450019572893279253174818898701090276989633509017003658298406424878541317033926418807240924665122760747192761471761247122395487305732179371535692018326761207849252077951073016213312783681367176421905421429315087769885054690988140150323599398304841800753434738829358933435178139831504648050912607661255600771755516482983302781351928228144222268161820753805962826600252396936075693528276154435023270394656906871116027598816346121077266465475740748285786811918454917185957593511572685033993921501717682954200681611212357725046722105436984764852330641778286299540693699716162135004449248590963006966540056415712663422165074461822801499907342684162695217250695064637462108712604165172680664731082500509639893999531327290371139852886931289067426465853049626158482997803799331968384079268595724340162414716336139591916701750659278956614844531219285534941173146623879015112113019033651912237214025174489483783101667614285668227156574276689882082364142798544938212556894434048267627927150493136636717568489459576215302417843262791115724717609090369071170975988860858490415542509522475948531553421198083797220326197456116101932448081761741699456233658017225794368512993503515313717973344418919400311498899864836415085825921217134725864105465307806142046829806892979998781883357840058128373961800973054693170443612997225638840588315991057462200893137567054112357784569091750451574776929967505675338221489741927343317572174920415645311494854997454079279569309364186674673050665696107639246357107869987327314539432367379708044687702813014136564617369968761917529397971372715889734656096334420548499816003323321152002125149184252647408754131583938151992736560180273243414654073859018818402339959697568419195165853817725697508604083577696203085452502417701156111249535975254076962509679946186249691559974021452805214913605722606575120238610601348596455593889373798198961043550554264535266738272262762535815728837553777496870909863835348057193532938153892082091081496703257656451546801343203177935978784677950092287479996322404950305755065583267134563082000266320948127473371300753805257761972990617678490956038978232452537954019274645150306990719869199901297116709446086565887606205035079253737122937200625708502667018963870470686568001866677975531380015920638688669888756263818822780323226021666249058119022516396890501607092993617789735806726664988369685768429201831024456574752593617275155919504262029222884958356613989417292776548979857768420361405727174206775341873104643885586935343332592289320247105043505879864132421085481244060161527931005363990819255277122996234351682050730729100202544029205593573778559696986722720608389463230177522544541696923071411162726705520805618938484306776087620582941185684366719245477092738418536994002515682398359521583872253319966247737104142460058008264146257562403705812634063927741926590313777113057104362730711207493496231238374875359732602144738705472805487620173687935405889889222552743832484903312960683882083081907550811854579514543803899139563384699374860973930301415971487559425991134019195026676456975226623283481302109463841740128320961868854793451884295791582373562411083671637654336442373606820929600511152369560497325364519781713999539021321781349647305235136078871709464648458799457025793109495718731718324742826755914270294467964888239894862771431695790445497478949237547467460890659986417266575692893505051975815975311586747297541655547251849371395094291604391182638776557645904123933728952474315927013507959466383298182024240455340033066490982182691056858307932083002339085115371381917944388433911535104380948858937561441586407271515819213120689995408201422993576293070150497884172224849794359996903074894163130681293386561445871050163556815170429331118211500516632394155633840273925734968141400216845115341875298790754417837329129530058780470586236668937054528879780961540577903617818475857061899968035884871840975327974360318583542424647436734946967526421650727872013865434111836802956013601061532824951311310710410298041107064476628190978600443252337829398382730262453430819330972014448655985164774907583430462218279713137463347541359476136730157263834623921849775369216401950919695144655660575613970715775193450281116724508852211969603656826483012899994546591272083168362444175434366333778353142461245689380766001132555910861511152379389560743538159143096071897544927844528625363891648811016455890090609055272509745574233614921946130221843692645595799398541531791330180368340448073947266262512547482406005381945446409412868388141969467592273034765820200460637623716585278354577440332043246349776704306548827015750223134033872638342455190243186646987413783717298085967911262771020979842474385837517640545274568228842927269404072299318170485569490793876146772084538591068010317266569326659745244914109111651032342064134740945801270437491325918997067164721722002056516484663091944535640369197371966103090427872828470524982153157633826257751721506702262379248662503654195955137111862807318696855812875685094224891583630893306020730369529711240353330351295357171087011304903215514320806633002094818419603207254509074121509508462612754174775866960067592012369298316150508979716463870781852365333841227709301022684589303737698678379531590424478016857528674660525374784795311491400418963008912025020447452428856586851934657844153109976548966842912457865890414198680426797474459431171746743839453741202030355002331513039936713027729499063685876093611968697012660800897274438125788957363306926733445399907430435245479048281574265010169547897171789478617556100672713316383467034493665735788144276456488399195543366645306684488425955341478425049628256694964479714095546081526814237740541999102499965089916038319774834567403823820151911155888254481623706101319552585155376700696447374211215469056583474578630814977149120696409567989676058272194556428265948992934037985202016271964015921812537244824798484493357373680255808225179370461805141167311269732473052241743520341691261263393442587026517403396722371423371789487206457704311981912007020709257618225154483944451937274256545020429751049620334484122082233200920409791314964456936528372683492466107551428474815350914323112572403467603355274789129505470192360293800397864651900695997543762749382859182883362200568841073973045132704268563154991920006127339380766930505686284945703051335457437576384322389205016848852600475697988631307225503863767472379969194116074200260500426263084820439929681805260482201104179954155750818074616630974388719044795197298878487435065257033457503529396919232557385554801529688327920706026923176919094777122091256533208319334004101006995231974948258463805916497827504409872797476016395765492805911575798239267708560800799483591895951108582401243287602776990923315771340644112737816443950052475657802718479249072167543473508336733039987167726057767874397113385020985838267775624387493098896482709573633214608178117647494257954766736149578925396678669448216253241810303347646356780065208343388145672127354365715714004464216668159259032802573129729196984100909204307125412036113991335239380495780967798906183237487658226585297897432115467672489586594222433362473235669923572974569286856139194209560977651823365485961627303742360335217045655493022336447905708636300177137836389376830033914982367856301933502569893195644321074619695274468360679230467118642742506136336120708469155026016585852558377215191409996292585820243591124272630111956065317702306764423913293691399283195778239332639204500501727802001852451134085608456210901206367537507903916501653097117419310540707311240172621070394065678246520029658529375410087681568788260079574365750800960289707298489031774578181648162332251199349860722944471421449503874984826297796414769394771577360122654278872847874993531710677219937994182681301534498361667942246877042911109762838512745212765516702770093281395164374197158754123648971267965777189832042133393024809416752617887775489392107935683324646692425862212342389277965343977692239292592814917736513658534950363261135253227050230306664748409597529192821178877412681193716778523452708037707311815032839230070422660817118960304752204531797348826530033979569260642832866265412484430399708882666030129458754256122818164017597838603104290505768342203260935022128095340622865015974323116328511062968908006531455382550103530387266598896852460443583017540612567861099852218493997611284221445887388288560449825845901274426751926815411591504233498486818508025658932370616781250169560447548870225316044280494665094889599737790612411150831263711945984804175008396467220394848372229906692156406344869876803671343244349975432296129156302348211364975317747314392999161541335653850820517445472671890011864498754141534921872497030471702779030045493821456837212777240510964378748687013673924523174645755845383139731293033920059009228258900393021550349512574001374265512676749145026692415836374254586429140693064523128887920335930832549715577981712608730478231747055572026296718033473740722589751572188590559435938196998332453162131258715879261834529261572826884303375373873294528809562323945054215966139357902797561465384939133407126483966919299910548716642701051255462685372034773204587058268479442469958993328571564296966035583002741601602660071844817854679984844755048043278260511053052049286327194046499988291272563556019358761249170238509101198621681501210019383579009964915118639370103835659172546650508166359396651154240945656193236574146944391740058112855043123840393708413207260451043444474670081677443174808500075346497275718214361934336118305181987179484511443060028653995315834183000417310978554239984317846684251505264465571781894543829462227900526141337702609211955414413330919393037792355397817328218938081921670942889346924074562541470527531437632368713724993386296008934801028675737560166660008835816922984829249855289318630545264871676101914271790819252373183055698104019471259081603865272381981444849329164333383712424890452867320250604953127068978046243541047157518240941216582869670354999059144739510361316164577307882578867098129498811566138733770965180232923929934181113834616157556278211632695905216015132941343634679549728501083314444359595777811519912299941749393753471933685250900108586383590018337289556346375419321858820432408567519061926747310872846989000267185145842011467790420419661475818591884958056069158878170062699432045239465591995974296618386274656907856241955658425943658740958749735074500639778068113707531180586923623689927324014191781236548887031130684313913874006878175452785991132664090527044230483722412789599630920133316345413140835926057831383542047424133507658987887480830986077831285065563561905454698534638185294829300214724743505749149439020414366741934093805433542234463588778353490247883308756580302378321093422571770279383428045166698002378804314379998281811230413614585092735879407476710309315067627284478903318384755889135280236325410165787841638758470031654237910954082759239240761426170554331206183632612844211402735958668140951432187541920577282058705392448830390471965466035883324188574353129224959840485569567268049523120187422017561512038558671719177978863036502050421580531967426050791265310936484666096262477576793028626861348486220278785092501668292205115150101357573605549539607879698475123099485854984516233270133107119385688909291137914369904340782086859007640022203947205257280963518444699125259982566529310132833100382263274171553285061454354851864405299718170434604743285057253257523600310279118075428642107026967539714472288997076157384834645564197263792256612678391107011428647193709466231955109126605442807696783768873440182315266789913940848124177867339141242907757091164410930684615996499950510825391233996735778129627596827278500590596979090226209925225426827445450627174323548644067376725988913603464369254945407412425491707859017885208238446113360437920705613277788545490841057532783100287611418125309011464306884517175228034072310411938944809008251478664866621616063226009515246952045329287217657409450602572580731179639406970441329166579090824328229072719312702499086910657543453889295860419421943906182384112689476010779098798699214519501282207094949748726623357512841117902041732687499643480790813707246129689916012761812192660113284704899769317024972078081381171695042073232277364929592195569534203840150412808106287626773107220836240921653553001274191352052219308367704207452043339259324787879786549942434718032229938259477172464413197050080064532747148003896888640422425781524826079125409148052605018345794976423592177845632459305164975543388756252357807914703486294689740682329148754549836829739828631788313456871919084997019443990130870441547887496663280182299083851601849912994114345321708261549672550809217012533582238810210760648995220767594321794830014402969895024573566941783034000677470675726609568928737046576471494531553275069964237858260541058747375675378309298300924200966632257851463433126108796418955249641789397328480056071001985294257388130730351823515738760653201315645363927637641902871885502720310308385180388819595546153857300231615271780726406055204052680584483593112270134786641793471030614895754924976913867599302817447192071322231027307017669116486961912258489303651030976700082472379317265851781173938215372601165418086304525744410465785943070028429592335984392413869103008545325410878955914550762229395747236295702775745125997878891261484655425205544724615539777861120133431564288388032478748385603481704176786161632749448647845631711455233871813624490898040606632564006656273952424257069255772193807370488886812596040796764343088893745618432447249452048449496385191315464218909830235023207622791229860653079852586922471983890266727556995705073517527604827308352693593838681756102063624877607635097554121403303601526697236335488524518140922636597771040918048314925385687522840674789524792520276413579612137464986170347350155040099991340401832000496041968567277865022530828796388005759920422936347466588248609895213771062613432365373884367762444294643514530849348122707788465942909460784473406583198601841345509225475605994750723779454340314270081266941938253757790486923531054635233609903581197114719552441059342708743826436314409940111354773716297982879516746033983291569541461662267265241349155017949072255777134977533606550333187231034436761017793860712717273582788634044067141964569331792005688648246282823669270562817225978886927521130282701163892473810595550221878766454307389822579846571790981364494676845399516978271071585632206438683225999559001904215728623266855931201175148682321470452444059412774191619436231154757483414409108255683622310886177444598419933499437451445020204812094183981914633365699343709397883283832584501396134450438125931270390405987654775447089138052334427762552141286843401758787377905118320247980743260551396181221026920602615218586760157233497330795523765729715641348452934602609535464475116961853335872220488082068925803501426998670277338956871541079420950178482761825337932950439340698815958691311904070559771539741745963371385460924681814315663874823525189772247533222026697827223832850983949837300838636725696300604476614345115724871417279171618225518790193253447160919340739156258505777466307364391774732581866681828055558637747621370694901442161354800848774365411505650463371815441110086773081072859588556897142913445165047545001520498958947413525671953307330652718266993644189988977716777187869067039630434207102194021337842558604782333194944778324019763413569337286553986565469955327252199937945946884361655500911705775423894952954836197689979919481374515504999994862220191500400696535416981993842342297635291691833918579248415451408196663268023280559613608109472847702904059836116303565372434067633850335463180568802357771590447105033945428868608762078457806841117184577486100920247731842796089794653272865587296534922347936708450132496832859873910288707576527825171137281378836986027332213375926296526689438248814573416090101592108302582700706252637517507690696595127243221072398867539623809417455631623263582196248025055501272271573934855468020101619104911998162450528111122165912767895968899681741636900691071166768223382284942021935471054832875298373770342373162800336384615483810133685403920766023190462886209557647804978419777823981347600662634007045020296555374818819321198771095256805225650642133713086382841904836970297549977643348772481567562066013432093515677562203390208893334767839190246287561631140533704694927460023533575856140996410909020089729048630000793228867997415121776116358155509653527939765563010251758471556094584746482042093709179517829449741360398654709286798710459879649746336793246586523905721511158347484730110278222474370005119365447713022926492004424899950544209832950817541322713330308573117652133230463207632718152580739651616332466964222492032019410758936092670009937919889163315732597111302632302930520089739996329563780370442744036159008290378315045343012915326687590769066311895872677541877772877988984062180530085192699377899303164990389859721297431467872046149419639675490667822728753858754109120322207059348536242253138447273719450041247476068544192235733637947202787085544514840899517078046143152748008868656732925427845835739817900573525169840101895320921705151592479320089924366887308146811254294993614736986517406444873260175225616397493564188312071024862684127273486582013670645453227351056144165875542404388576488617984858473653005550320311052971338609594076177560257869112996637480987451639684355897622293995259440307714882113098718231294519327834739696113752454299807925806344973863443830161353927557522631726454833504784563568448825390799773799690323146012089986672229496830793037985914460222015979711024382182695067322419711253898955127524609127284977932325615780909172557361543646537567073353203475464824922166178955636600659642730028426923222751023121440827104162622190422074558094427870273950960667915839470802275735711877191166668774210103505806503141487495399628338307073027786244985479914330567058217843229428208697600899997863014440886316653024802494077103210993072124882824454649571563432114988761327599366668697794230068690163933515547806506845858227997175771018552343960542909891683293856462093927178674077329657977829678465414786585169334461278367904904406928965456654446510263582359970239191893157282507717873218218896833681302268886940532887783986206261422899913501160207413620388996008058295879985442682153500540927689696179901200005567185310053051573121755861708955290548910795797081537092189651014879570999745248393135933257712731994052692375956587832987247716089797756250940527005496381888721317435286497336308015989103455966908143578240224808735653869947610774618799539647557936493402529685064161470128613762884702911358908798826842528208986657619291058947052382994198314876769455842201418672821785373373023338475348336921219479258868323590912730691376144119205395788114320581538092888250335421753123440196282738927599220845466482896726891744551140540410035632874633140863379949389284435739339225506796065538303126251539168495037805067998659919209634366717320197412566906999290509723758874516217570925915628132852110774403300123119756960265692511775245764612794118203207602335392964447323746464032493874727970298162156590551816958805481182872495428643121838602661994245012126658655803825386300134365653902179917680988932897364752542649156056454124725694095959341117434805103053376325498593178605661440690067288700326811383270060115119970499525381663296962028946949634196927101939579438584013830110979063133433009887058049174029967447144863250777773330599328821052873482751864877707834402345738735762259472402646941017014022681981134318599322258661566160459901270732781032482444329324211482607288334849682759532116691778450970026965368153276756617089698658846611284639066680002598422936803095832613334909331264535476128647466649390284958720727327188538586425285866749764876646798671752368055440087864337834068506635628109947907004120080446199990749411502020824151480454393520498276603084739722253349395074778588977583038547662723439347193160673313101792969342217409747419039071482638473226198160874098061297748092320464418548624364191313678279213231343705016465103596540215626027360688785688244691975714590713936725324700374085673869428812523233372758147787129952003928858698828963285951393456617444366245321149977061462925251291345799394092766944589178854677409264739747476139760170684036192731363496865428365530514212514318273976600960122103669265087890882304915335440003834070138497036152049736227406071203414151998771662630855369085112570287982598786353325909766344500190429010886419856345500483204620996290940327907663737107336455061058273907450508686746230490488099123939412692375402497399957016332344447335664476910694574383161301222679267657080939553473978548810351697088007754226922225549859897843416365648400419313672289982888222044132672147918672203893987213325458261434005280232453446409514988261216627165342014983367726012989184924363130974700553194553890788697312280066868026793179982990759631639766698844187332050454622001080853329590170075050179951508680621318917733582946636054069198207187824252831996916638789489668167484535098238748049272790211268946059315136975721451347102194287614605217980151273961165486804158020137677534672976192038440503635234962647501073687660679687044177398774041655730295445814634994238022241451927194512481382509144417164590231078632346773022207767595636986731113938465316246686505678968951596402862236562358614429324485740417212273807764844205780797755653729607215357838487025792633329743877859058954912605073277803321313756561167676736814000351765740190879763193732132446254598803941424199042346525051385496703762494070311552896711865632539518052938183442211645278660197918117223476723443979578537306841493126571026045440305186904048896891521333719886678127540355408173996966458672561463590779993705759026976007239908681936755992326636907840192784292496951711479897668182693209443944425825090264109916669101219830622268630355233126022542181257779008251342416818874197404259625260727951653709618448812011109899136726748555133995166112231297574624249125181522045406388484392533569858178058591104197730165622615949510197357698236922576304805069463912752881420494044842777577757123076645006414560740227092438251390765219973136183122633514621530221358643643611911337190922254446970965724623761001030542641770569638599648745588887413673805995562402180967323502118836705423552582302300120916609306115118678416710466369529367894043078457463906515550539163828462879262641000463729369744912679169754475750221808710240843102146541266414006593808408002970466164525355459090284006558654695954013939161637525811633640056714498498457980317417717607090763547276120119125513978730026307314284403438371052934642162427638438257726269683582518473283936960782244900777285373813075130925967264261937130471062457180574676626218045024280608613430993949575284639878094610054399953431846354326619888204057173313797844168698590370072007357294444581418212036369667328235702741070177615347193767043160042140587492632236111152671557833864937676657700798826697600069804667537637500941196730500180025059512257933611451047414085168152275560740416171629545115420921315233701026869736347314366819153158030010662543782275866443216894372162533082046776071051106156554980029649874378018324274054332715766289127179855432952168485827745405618282811693993603281587965067032957634072470140694454790092585202298340740148659489051022568077399775621235808729117250005500340697609419853134150338426970715733629029670381042654312295383760517432160492858468382045393058571042708999346183154343188535791539716165793725172237024393124173997344902859242983821973958438565084660170044374859925595773463789865949226255977608536739914436401337203259634252281234350428608596825053821087728114998460861269051524460432599955780247503032732866155835975157280976606332256156021703604349646142032991945976472490857063482541098684001676328442724554529325121505916290841102009844527379704453947575126695180818163656144689888781120804386287605495905291025089701077213670733047883631172922114648929376063734353768581410565433529568901298916343930406750702957624887372867552330086968270906995700782989733159816913340502008917551220330195395992453018482815285333444041305353274211510196406325028674674102521219905298581533935806353697994850955430764835156997347113409929144145864987270307881183343421985145065358585982105690747742689496259416334156189077350763887008754293678182803360985917041667262735286704789361838112171338156989647070349746845308234404061952531331244302090929001733802312214870457722363853536698556094168657595307834370033828659864488468110479572226880797488292954218860599200043338535027405828313089458295088313851324002780762964271915767834027734894993518634023970321368422142838185477648974821403034576355560085563605986145796255403344779627090167852539151837990198143264349092164786013473259222882305568205364318227657785608694124215115703725953894336619808591119202019885184159825554929665387396216907013699093507535418283736825829763484131689556424644557826423322100060772920087950450446077805693428153607197430603324208142543150118690166562356000526787756116280127354701024676597601337574584095331697856828551082021498464653827247180484940896131388652196565643896601511449526113778252879186520790668696966078046842329736223339310584233789681003012132952441125964988513006216484078879739165195963356314776089639234942419282555456690520812547834757092023858352285587162363996767997803825527746891854397553276465911312535754102257573684802745627302264124255338397346752284146231300337273897757077278298063585029587500888117603119977123627601452585351352207819120384726163581750446760659470203396362234148823399290781512282997750000372812299098080615028640323899831221895252013504127538044537817112606826084309929181528819713011672713864862099330833571037598544211806054059251276064448183486660256262833902419702013028961859758759034944057304350779573955688277783446389127342479080796367970675507783134885190527607398893454476520261058302647201330308196158909223581443445100847218698252741270628795520320589163787112392086130962472113879942378693802060566140794064621873362161604247275970604936475133756639522317153762424682392980027178520688807267577368651131908985249187414655199251258178118446084748662052780413374146639797524302462487482366743784961487585119122917927049943405984807440741200923362299850638290622771747597641068272795128543130611533532620343819157252770292567600469042806617888146903736899029459179453359890084993825786782474116153307630431794869728512702252924530528714330895266354281664562770689159935053419011870603622696658290847239406035169409105895196174654193276329683641586971413941322028732612759826546507215195791618029507018188844393253829345362099820826871310576593141720439261352442419110353963650540207003936383943819170575427611943779813458439661996570962119389949695222955468737044128150775273030619807798960952182968076219149175183826377982993999576455321623216110467830247204698926282443278292108861049264715819189857540869774638960588288879178071219456834998628997806943230149898262360043747725211846748977139341597731120156902256191634809329578905920892739742042186463901855260785442116665977510907199838848225187407321230566213913492449732079345202585447777741472130074770906612822289801143308474401710052253042775059036704863990188614130019068993656336007337015158462688242613849987152302692777260869429210315648381775231455909271159645013283099550866420385408654125239264558543210672386139655174486211328885439796488624291384812289567003302205744438071463150713801736303463897716415065639550829118279860771946720137262157571301301306386650885682708372654031894349688096283220633562078116516935610025688075255665988834317125638116209935363214469230955002580931940291761517387280375202439362584665865451059884632798783051344769617890284563167076425469770146261962793454728590276269814535830455352002129527358312871403654057616974528241016149063680427624055727253743101226685272210912520930685773779331525223211367849418584829828472522633801796955454992972034971388255244060727614452525208169434280684774827358506451697946516192959192661111269246174650862474095817866493196617622382359187328784705846563510223003804998481525256686790331515324858550265973558960569063188280807294141994854164203241312677117374357413476741476191969387383020165393629206261097561798012699127199648696016139535503515868147917367567416539123132828159263186482378512035452514309363965600270374275691795563059210957857853372553332529802927480798833181601155115688855863831257155427492627970437759608937857312401294820527712788867044991219114734927288974651242575050392013757649563472775329572028445152282504140419385286286200053156554319059061058048537914890941671194386756940896897773115892805349116593198940352159095785786430042259806664524582717044359689873382742578397830846550788737896611156837897137467962970525162918774155153835140914396192647666225234080858263925617605775295204470226728512319935922658460811409769207948117316180351215789145119856389046100328641924456045886638562891727578892292447658308828542102819338712411974699024620950783730571046352873908846502160986641490077676804273380236969236774887279584511998020725805317203245434089039446989102829532294010326054913024595343550551504540208325329790016159073473712554742352825950319502621766651361478748268150389270613988764192435675703354981086645659017111850613452679138910980579944928582554837457188415705024290957929740369626170048711290004516180209989396994948237092431585592810767671924091223515834865957802017360484399042195886370159576411563662299215682509210997447621180004479565235321477743650268440255708461812924953824474503949286671102712215563178193567355455610688929069433017391686261027685354180181635796715133001209087317352259254301982849556665653105009671121057620759622786296690938372531101576279660379305885718985443360027961551842671800345665846697750783215587548559907009250796693502799135953101854589913470859487810550472052392190233634435581535903452483308736034515812356463115604586601823540682065269262202560504750035456770569704982393472259593109390727988167214537757627439774628931345122255631644591462109085874126146678083409627205387440990962189634555384827843018690503623108960037046379223466682567523614016295628856542984715967110387249820015521386980845731584406764113445486888405394145802974425345961467648601101979993552615117662820005936173295286632056131847510997484111893087056541522113100668274150171482942867341549037959239794616819464334784331433080503462076749983069298590533920375030247878989405236213250924259061690135839820676051626879050945394371377230532686572895116267689509281151202269465782160104809041058682755507160880140099305516595472938696771561267274810141849282385167480510371371744475870203004899678089951330484070577128571061573211009195090306546662229140593746813635896923006358399502402679532129006432969568768986736716151185576352691520459356257852796206148030998499724330143076066842313371267330916022653872885787357579089442665392798612384143604711623689941835995070405553618743312255106490542225004805608703303172721005328871784741579155517284492509692702307686578571951949221933700049963132422778209069278492946407060170838974874537918752727768741444678447424780691929838692538594461427426638863176523701946813724025596016646202557421653551600247683763121267127831797405062452320776080298216909079249760643889468417292400608635397385216404227848350705861858937131957838464009176145187864401122687822723588226055454086217872333784284693308392716547827865336993704723223577303981356800124028724826456923483986664510519698796042507453629411357488101671617436949418239426540443846395463221013805625703094546308810462542698174012488346762022136266491255696386696789827773670839615877124053360812945290955632462865234155098164459944572884433579085218765983489225924157016193631111501531559036909943535010891301222818052376606605356024461956875193311772057155022935831994530807358288779765590849794650819759703607476527659269139476267235656321421415330488144341187982573530000361264603215571023825226225257372008621956718351206894337868909502785750705724314721212700298545465440159402934827079699988743307604893032926649031063221530654656806556968114007522086568965881100023765152548001764507530920623828732577797412288288979134683623224993104560466067501226964558543191092758282665880739466444264176251997793495960994128638660017636823703840617893244561654435796901574424594952908411586241579463940394275436274824926678859554278371427952072128683182806082165039035347443493323825945611062576591423410820783069628635701696846546833226668728634857281562389203037775823449380163851140490200243140339850079176509979762046987211091062470787228748763219234129580210738501281411542572351649412503984188061140249595963918636400673019713569706839187608641988637889693059121977114158510106883939903082229735502431155664540461224186655509158781829195510518441129783253335080152261264085784943497323683083618742629375245014309934744864657854118021141415051881220027644170891228770765088880726290497648059571299462043193031765481145178306166427520817796725185564262636814386736338612160401485191056522276814400190479999807129769790983608328183057353537920914936697599356936640715481146788194997464782175662297751779024678189254553788657665200319008063629352911440132630596926798651723577745157943463862584806894185975973839690215648046839885073896862705033226046599584223272184219308616758902213806195112125419845739136015701705461350042393146800262512820726248149773064112150048562018683707364364262444784631173843118171334638203941838239236416456462138399619586492361335009702372800000886315171819819300002621569683936732578883201480576524345214957345061148130153167570844480008334626341092286127271190166609700650453692822764735957245758392300728618541505985962067753661927780823586527358407148077363960058987919887904907789636792114959717837701973665599767481205752137487353662305264681124590183068323659736636483610296881047284080803992214424648500820433975743503607422442803161622612698950922412014327813853066107581905564833249902743087307633999115783394403125976976491378248273064877083055037234788694480760475030652280256321166095955064868444074869498916514155026508063373150508679626537645656213093223325467440653887078249736552411539939966982952661530047288630487853646459997781915328178712943018985951071581409333646924426446315565385607588899618259159435534012570847719793884566913490071473408545358995503540657425403412507874531814825902895070426786881118462482023116418215297663096927190081860069155589722455497982776181380449111079627458636939277494954045734108286907874383398122845812563679332854606591757895928325403713828806487836127950467899922067702296815797631301949437140812217000151534990896160287639687512767842060285262091424403008525585568600286474783910980454015676020782134990201989132506564646971550596376181818261927693949609631928283808919810425090998773775917582825041097907316144875575960087483458510484507338497871904738379629390610703431972484905788118860349708900529068795288088189590858845107072307221455283251397730531386785966813506995721827431163410928710630988196880949847924773467471027580308839266899682602048505199191095625343119951271964376490975640319840433952206537296067548435634439983277387176544112808208037852082490486610189377790824381711531749066292911042265862772711126769937984914658470502756131097411768977411493258174233048970006537220127661304263671290702286379890655117662714143459736063416785652584050053407808512978913784362819814312278051013679958550486205549539467949066398070610780796238185959907041857172646636204659149253642491813347357645685642476555664942364278328147728609902158359681456943524088270787848972963004210120620410870763849006457636239265043687854988556024182844015575078558998137979200385245005281169314165564876606525470479582465999503268021086782990189808872495319175968004747300624903850086357660309518865220821791181924624189540537414420368066136331344192547152566775804751809882171047946845871414548083105239392199861905924747637592588192974565721987427921897916733004757871096642616927033000207622258422117801195076182046342993888153554562835178278628009001890137911752959373928598981386691848140983432154442788546017306673223195141445419527301502373612186066111961377948952056896940218476682642688872666952300829187814587154756393049598338488767088237990488081411941439044788809677330444789226578677117812930950132511769559171492463327202000688113882854332837280006153018687773189770755469186044152801237817553265398563708356767472145448649738427233319955201478853379618663364670741990012618929013236641183268282239734820989451026582897856216791315248621387194682217043182209395034454591780821429912052227329458782606898786412932416002856044303873777126964167974537801782837594320654043789754369057440869283702353741812735347490895722560830804677412125904088684474178821890607528812710175992977966892505783349877942731717954555534486169450406426748800965237049816560207269635619564857007458796480629600373949574701626274058431111916145915647500131915031683137099550222890950258536898977360632574758437109769190668080287839984478850710470049716183657218507687173443198142765722592213152009140739863897337399503294729950976026047153737988607841887786615146928161415610348369458938633969092981345215043036763695317754619191230061284849098846662408164893927341862343028575900314783205676407681920911882052629678233848774807907352353438818742516948604080581161919790457133208455168932765613841404296922242648536542899727816948013821685936341999621985484193032831583089144706133855909391902693366962223360347353413314614632261234678517355652839543247584185757867528179147657245058659558247579827307471967568770620387290331546317430397550826074124362738437941609419839903830383105159367147661574508018914884503956085653579239037544057300187764692430710949914104185750874854835025749560329489467057796229963282222630500946147795536082345145377091159466812104984435926444883820562410488274640581736509828292520765109304155569473226104167285558556432894577342318510052306586309879519197380318769725471736797364783997484362010475272572663155397423616532716655782265953624092837437289289818069339192897581100200868414337790431981235655202302614907133126626096051083725268101100539546991094955601474932416658108715865294171763555044652939438394828533934622259639336324223061184696699948060014971245536299960568182665499550508221777804040268601713483679715373270592199875684359796933363588431616787051958031656259917362208418650611610429568951636025335000202997381838576292125822836476648790057073496928322790422033652236979366040405820901500335641259367093488754887110993650502485404955292531257298252010629691969814295222159120908560429351498357655439947233344754641977419060626451399402690028258622135431587126875567863626211821085449312630076293127948844953125434163133633742831802537803349084311149436159307154442692602235994630097869683909958091357955435259881506899854042958503998146196785699827822416753655684232955589923082457353399533018242453725251269773632238202796165755168212712409728790919723625499444645909382456670961341528408225646677855251536237794511771930369992924621537210819999292891291786811701772141327875990306507326061198614290803066981320406396342578899854317956933834483068429367036481047087678262933188627517584113666330751705954516027524060061330461215878935321282732935347130333938620493744743425613740698404825137481669428254331916685584089400405496858531771259749537847149674392855218790973129229941148472491339226040970812152483134261862540379356299678036372475152868699973041684843615740432456240245886597062215426549835849147396605349872894851313644142522115968854495882922694992767580155824271406248037779203020013071698354804064087929559018746041879676010707709091700521405882934112727476746596448615571411022382184648874989322591055354806406079274377703941861128007112775097076204636776245318206417429813515744089772793653224745317424847024509928443507591418630294155651812700964654686384698196984494416375552532170437005342144640044716365396184065750272038734777028426900562925170577091536574011946858865015130795953774956505672528202551020348202035077669389241948708351911846213368857689588420510734363965671145578249760596306309656276794175243740148545618954266825978615346825232070773433359091606427274999724026394378573386567314872993673214289356968747106296508080650276065998943730296183431028306377058709572638366640045695358219881150529191087301169849510586586539379727521589501640671446691748830078779121218692184099288456772824111650694386298243501521181066779683037944042082690954306272432200535601361877713149665326072253416061847402098334264302646405050677250492107033372715191299040924713310598226165601381028763247804632497401663939226914886003102191148713830157007645806960389858232181331149985348629030850662191663986654079239895888868517798799515467873639846207760785775723064710088827003830609641891561596377297256661809646895999362376392167317294500485001027747398043421857142977153078889383460616747856127969953024186934290896512398453934163633224981377199776472574773079029019276459751803011222800620434154209941643536338247199891110112332862405257333906651979529531666660833216112911221310273953288315231472773972192104052433879840727834056765390498487902185293761368590111586523647502712797081754302240856996215236494048058755990083568043906176368195970926204608739354540520093750193196180154250024971875555598578954698569612438729184237875629915347196930809815009686835277466031267633183306635426024160121386688921337847251555168271237501717480641715216280433874111127839281668831048022844725883501888575120041876628108233984284486034927750368438286278205951952900576565981667532571697883866614408250098897467493607078770215613063018878481373079743251549947618315740412013714381873389890801085621989500406511858870576371068480642019176577369295350706563139006152401068045742501825893666891358359436307849367604592229840249792716527964400357640633077370208064910548273875658863514336710691146280423620212814805877676219421201669709786166028193701347511512982371778856740401924471336089255338616523668173474963792434951170490753953751709122471808678161335340721619366081665928901727008881360623286801831872461145965098853523200017563023443901685478986155496267870067631080733345285766943317442504387004808470017724532085380997747435571895512560623587646268586563676065650554404688881685329489351555846844423535713408066742911083592342672552124881215726320118311211396274541379420926792822409281946525334189544809094658446034966009304563747287057377149108951870160934103824109770730437639012078744676185137571353380998990249581295385696340789750386960671928923990539910189952433043839770403493263014611710008204034784663753983925881989876314507907713444593727847149933328388643244990550389055042792641086929350064785571534719621577603326932085657564292669674894765459412422179975269854856305673817479837293438847151257152392218898428102849911022946874237852891117702645067362968755066288140846784126365969602708402136831961645384780547820400080161990105445504182807953794313431053236945893437712600761266466220591644603807806849848870865285496654508312546955609699916030231201369477620652301582080543012412850023684792644600453047500956267261334854284478763456693161770331450186746298732164646947443803155997633567871757150934649750445156230658284493340213784304873033454407195052936886416429951312076575566278843904736072441652763272339749080238208548969924678902592984789187321419502546510597717951658537637362869692082129248632000726410246243629280024186007795109511639589847124710064098186415787544287294537883873610049044708807034466442867978278389465101582030272399169650570243173770815227169283897511358824739651756196808888160487989098465057534881422158347392482380051359762235143200354658877248929090256217585062616771275454620518304488713423209500097580476842035120670940574087333188692203031474548903609208920289027954989015931817637147890186583669146188504355125644755970715967580503459859611558229793751076442807405823745385216725568649535240993797804989267538016177264736307061432720231172254228108454854338385100679233855754908458293669390884035278246331162722883561668833932106337805210529095212489490663447926742536702185513468756962466048138314858538627401759254206674654687306079030192032299718791569061888190126843651850162762811508440939802703235693441615961368340288707258326175966666289259309978589859848169857573288622574414107884696633805381481154561909518668198829887250771963680571901837682542564395828835933841862268517257236233273869843198517427749851012708276701161969846048667490405195726290849842646000086796390947801214269531327664468342429680497168014276276308415843715818656064035728101061338503301996364124447704331079209235965820224843266147746606590524096733575068430457166417265764961666396212617838701429095678701319610774293071137342691777793193208772798240581201891780942524933502090379402549986351788354625597729226133369877611644133179806372202628223609931039120836088503262612832296607732010358726497364047727089121991609280583478234380186301775152689151583848987411865201107403356678737055501483107051093008487466715501771491969948709980659581629983396607996242900440474877300550225896598758867621958609783323563693584478953884274237969628882546865640084268520734243655520603212303109142050828382394491042820233417756543158713917951237620509118317113680239732921091252402213893870544990946716894198432404431702979665317304551296168701059710605037540612157029717879961603798198055864682506515789254191360547565621503852695527763177986522398080788288287813604425396098273053222834700318076123917923245812208468646614164653832092507669015930786189484125583539734986465236050629496145766817631309181197616414570152042336245060967156881630057290163618885722589588129075493998319043895521526365176874296341784869555038384281470962166225463425393422981483691943959797421078476869524598733220755177139311232800317954818757985503085098819890719045578441649195829622576804949279640325716004761292202989084325082209026626734269968206078359109630534466193775603817071845757306563377943349591820072482083214495379260708135181154835117687219855787647682567556888461709683618023838825049529982438556371817814909785320057608255684810876938547097343659045012874363080894134465840302190382125361013814116466289999738649083602200776978671047811368216425505637446585545894610141419433081559493642414145825761572557243745356154213665786024598678163793689349339060882284438428649611883084869282699976041806829837188296200225457266659529298567884356132849414587643712470250683448051583495396881684312514579060731538143804979592887694091645522264868772984859387773246269700514222962493122931425444066203481811290740179651352979666745636014528183084952948359399844115125456975403247538729803424462646791958296650206889799603047547179951694727427098685217214911028221722754608614234547925147721389863858125850631737863052849897674377836658778571202602590600134297081827906383980078275536773114025992277837329216167447019265189805894590275196506867661013707126571817503341840573079532094452411685489033990129032465823289715557880608527495023981335128099419569519093800453777340750556909599616886683866138553013110381327617577404112771855313422649757225087383713610893013391590787950868176234465901122282412969992557043710931590420259518322741613981938031222723206151764489344679469802803292955341843136417415457564216376882744547527339336026732493314709855399165838088021660245344133200694618251923765186481635940879899336722855155538248837685705425670800884157365938160074481536248192884395796797475934027613401231104215809593018266855186373151907722180664266111867766770869846665836254395136968561605591467939511391924655196672984030787907675726349403567384716779228233975925683390131118164586123673456539119943373588313937614742506951424209069883198671175411468998458609821044842404745347886277766559431171806300900476869422364126863339028180986969473364087285586927991496546533656901040306537663378862742882135738068369030503027448930185399592814807364120077779997774451014001648749199981465304360899583818463036311343742170683240492080770692437774552187996072002479713325200626614579697436284891599055915800695290999448848478151124526424114101903188320929856100495829425200117940576375889385813286308751502531849735436612259231010055662130546654718167844333797595046436731337466981369028432319166073749118296698535053631707322232746271950520464558005748185294379232396306424540171753723579988677026869226255045673803884913694625797036825223650621523912689023367660595691748417160333412720467932449565058271084148895687598440749301710747345341026986449519211020606752395995522001713537334935005159075232291624644245310275507523487347244221422999722921504590265937195183382520293306893754846469372564623919322203068243469602738651271112338751857347259247840812590220867770966245756649615476385744906223252035182867910423886131901025442764781990177134773691667661179396324810309819244079323713905263876292473041045949322206080339737827348203744307516298072030895701477506801529322742399244904510341401111953471960003071669680928455389289968292482132385836922174022358956970176083139726102058576261947058746070241217289426713841204559422365139501449353569768711223987001895675305701508898402903123500598325469369185247263796654274094049956428149460370294791449544023652362935329755038715529624324435239290855079707830330597758247648445443298897669101655303176611061188458533904017023668986014937563014988650242317051016182147768614878303766264279551414728052475560066975040553880458458048920177350705742951836168067653016418165735448543222798290903327861670601109045346237787484216330790671608269630805968787583911483259558424339364158781973481056272913375723305486991545214142796768417283227211333216744825385897651879402642644097192589945976317763401983435172074788819391525294043475343570266993797491450623269508052794931971696620777181774159713455865465054494555952837491753395636322155253293923242151638100857429592125410149681559410084726580034073343834896782429362524600567365745185191817775527312912166771493467439785459701066857911654409462069579831604544161791588307778394059851162402284018597717158469170703224145013875438096493053827111182304046167872111716603811655372434324964455245235818561626087105234206699660715379339210414494264746838300939030079972077029214231482242945017590217891005897509072939325466931254809481127304255185053157091061977359103132376715123705501085232367309427220246733733653011185006968158782089690459120244312396464454638046243095128681547147790219140851623969648651582953377178028089760786945762380283699600646431278704220294342997122411332079416533626930166890336030934646572722553125333462049629702227097994880571749562544199637902956665873671318108459462806508214962145583084145321261047199778792805393134618715028931997730557571554198066560479743466460885542042227774420658597704211320402517706784703268444231127816224656239563690610905922832876397252250801353553768706871765118119792231804749658777884674295978175928611970275338737613858489520330917459984672255122237805661776740800212722144432035520614247191458374914017523049849772057895898811609581478573603424434875475093800492528340567432621812047437268926495198814102089135312396087233311940291065188818228165696315228416854047508167549982000809657048261994260327438128564091603033261700214617752389540777005451171242642917715300196952758297911538984110532643465036848213615624050920422704666268973072069542688697669695327166825782734612391591064045731404323367297950647250364841032027950446835098126338840072965829199995580830399115197840683145512768179574590168591736640440770125943433205379653744018028023102471705991771612760361309998956716514176379957308290011723517109521015889940874253042510897905598734803523097791281512342162290384775956620462743662267540661851661745284223889051929512605867052768827614834859643452607065599749132683926401901150221475898332121893515080325897491791863789243781235312808226204017558380986901102442213239194279232034061051711403555479459531307345432805141542173996491621200262139851618545915848429033779896281338722051594818824346512998194412773986322771476299444429592273695615229032056413055178818033915189178917554471607281630704311871173448091466224106685996461216074960764628083624837354863443089825551453345422948218584903740268310803831478490687067881697497505955185386042370786457977549674857168877831600054334899337672091312916182606161673271857588679742666580619895346619392915190006240134561001864635110536177443093165296310726256242774423073304555749923317407547821464615587696064336386367744504897243326563303064886643965087206154599285330636289015837199063708237575327725776995994616880637206219075527690512035319423970831702491604037583456203661035836240888603834719029797164978278374825843000320676724214599344156929845636910132049553779984026483804049387760684769888619206274714917446572778903245910917029599762424642496507300662842060294574500214796905695713122145494795749626579611805007324010031162053399973625083404679282926213546209653167470185015197330789413093744269012789356960696441902678332030224656248980088389884507249491440761609805933785851216889895888407218901464558276947235978945141605316464596335314356747151753436999871519271669195694209302984987323020002793575398585712844580885845706353182803795644846644805836522337145677541687871498194714616875810215207890824622009765530955179272829313178865910433372823934259094301234239276853417801034055732143474102817635013665889572661123511016016955487157818365958343376121522006510066518132515325118131205053213867010410437688227427013132992423210209825328934468360710625469053597887391385260889695464354772205156062147424188708650041570129801075514241122367821181983600605366377274748511735102871779038125358618449423758661005965835482211445311279658115832538151240239084455869215055865981327478758710563785837301865043292169724250167709269451402879245648974709016642618400676003788753215949768017968775508456637879512328322174758053933482086655113341388938171278544487840336923951474820442405256897688121923368564480992659203510385073233462000058981589897261515843327956883832971249081593374067204959979743473965242773007002815679839439176317383602010463760602897716315384471191524180798961767649455410047295479306395877912004822109795172813241678404134968193397366035560870657366123532557114657173670516539549380854285787536801232957202436136745118783860426426719241992805649980388771398407963608668586135083068039086760228319388125159653985598571948096655636309237028701300294095391465529615455852924068639742603946906204450706876574162770162489670258156796789676845754942249430001122186550550887319485341876664599503050461935797602593080831302170522087884449306989225150717046093991654238006966343989846741973528580059797186871264479197431442106315640544667909582039431517113076243584172338022332729634973362995481575689218445325051424566797560636105812724042129388220989418908357512484854978637868476865438220851611258885957039562329208242220156038652288761514668274387540787104413056191610814517829502807413535641515676898219355363343407361845598698884561747920057807459796026561350247120735135227023382756706740715420868283900350280681784263890737585150569690656571063206815482650212297290190247037219178627038494759563407838980005823587012058929642069285201940391778654687832160614956169436477302706390884701917042539232821035121149768094019841731339878939482253813357837458556594875223949132648421838697288623060667888055100055129836384444885944286412732829231404210108742021518498985635365209652062867150564097086410258554628897674679834467449327923884746511085343720654971392010580670479943886480376753799067902410190873672153174879649884233832182520349675346018272685049865792797948463049253361523803745244920705135816332316798160473704277012526908216359702065331951982794018297709316003707318715016481664526739975874074809253804685974128144731511431249315517688111472266040363872480594256711664185858662009411370411289463302612086320932871945340290429259236641771956428425195475801497192952952866227355874252399869091864157866018590035050781759066264136126878704210082369545314851001772926621239875325845493778551691867121189489411522289015713317783702119748031036753894787137014621360562018900597881745207639187739241648908461735915076920493908117470994950099245434474529414957662260893146300381290414500543334479195605913959439870798471965469372535028432717990153679755084472059002228005393236790926193475497169828333064751698216760512373488514946036653455230210904529979397163128465511353816602618107974918256637683169208923857161492627950170538981488913710676993931126386081101746717623474133981233688555179698505732272157626170766063039579527507302860085992523982377657073439076440095874999447532806299673471195380805297382730630559297988467610073821823573573562051836006959089337982506195414474443273318507019832010568985425921666371245201642564489475164902354249987503233001006929783670815134354051603980354396884205361622960791657315009076586506777825686038564358287000502738945114176447868833276198728596680308703290649435120169092773718037729874526266566518149621205581832364245405473056985950539765362120372357015883552498145470628948086411035570815136077790460159587038173610994322276211807496409318296818941784705490591373723894864091922006229347485994149287765285278942065161909002881838559330755116110241351802502659876480715750039581561355207891579406286580327345549627968861729974679836796777781408566047147549847467779587445930181289552193145780580376824370141096944660472997425689339721655996234384305393684357800588774188921733913260346904887900990440689934976796975465411471514807024530850480013454893527538764343907780315468192167453289162941798874339778862861589303160121591438418997434950287719009815064098757521168063348941552096265795909795454301136295059177647740552317892164158159139926750204443303724084015574603636714266042902114747335663316922990094992338976830330285334249463102075530471667887305440023084947710022418092680526755562191672810820467808719642962694185405307539484874069257896375185494516474529282791871464483206237067029333939685544010254646907749189520854726408207070164842111928676107077689051646666263295541565033077612730804296964220138611041393359507809780231500394444429413520542257930753420118790937204018153315587019539748063645906617890737537296013018653950341691783653736206237537467462829185660936545338521437449093176223749652398819217387348414074095064279327345890614606227809935004880298565309046009479375726758764214832389188931902743864503965685156940351001910928275584724341334478508303783229957931827843665678327781693939809995106394279067901627321049396360405009791840179345025015626301700716289059094332435483527207017834707643003831932597949550009589846979412550382270912716992495830328623430462445514345929808536140769513669691811938870240025744064096513572150710801745882349141586302667290508632774623103245708706097823418239222482083051435400886356568573670151290905778461606738145244073050153493993784158575750230851845638864736338838802683834014246202753832940595887098329784010587908115822142186282517314855714731036280962361446348301455118937771453467160001662107121887315944500021339768176028455513005797317185193209352120636572494645072882402401582495901827897910568949715576291879480738550613019658952058517364760766964368377013303647705367215006182536386309354313021779929509055111015714567278466052366014825123543324955318557281302748195527716525831622194000212564446727437496393272124315232852036263014398584149447381428387837068420241743646945532144590756858214054505074364797388860926941117231694652841423312479583689836363843309238895777691728451594685119612168275907752972976953069707833222784666058162429504210789876876375173360109849837802372752992566011678300914050397009082624579478504294093744613951070316474602566893266073554554138291740867876065582384134464451134604284105259663622564361187224058632919387635854076507453059103535262552763627386625441121099027834321832881724199160665998066837315690719399686829716602005221332968201324340145031088057753450729406979591183189697395303276244327119983787025714807155705894237172273941405395736055002251947995719814449216770528446108793363671338541272769833074474894908781607688289652567834988073470975847689197065332662217005968042066602723158809309921134510075981504963174738003089721156805504960310903066362467814409553269514012790712183738134036956209140355597689914459105307266041938958767956850543199714341238956693103163483815395202296615326364430502780158491649648378900707446309466427809998215030124469215901115242766147053176523062938087580886317769830606581886423137617082938865912475723966650619966883079435931848533206623698376278788113781706292922123640737134584431569009164526565641752900909142366026196375802336233062525969853528959761860298049638729025037932516942500849156089920596474882023008852413495760146050280091017814759919819440503290264329507603176962971530126996929903763864264525366949031430666669894180515679274961322681442215560480807676464944579241360871714165318209760360837154149288819363635262026254121594619262075090610174608072136750280458993278891601571221661637865300674503203536221362122908161186581959475182498568659183144755825535118445584860971688830909557107917545297193767562746725451178067022513721262985152668734137480160761968109094367698781978957531340359349426880028333366165014952763053618768279823376933112175709369997906536235754785016731823860238912835560768078820303728343546086025378718196812497608984881693094141729563155191327042033335992221692319978639705456800068371590690300137879649440475072745187722411539575866980846541647637731602147954656006125203595499638618203588093389492882404554587633039307964613502663971934366324761570477608856335409254967924655626922457232943753979449635441659857926104603183980442878149563293472243464758128737488943188604800675924610449695872012950235248822340393935068476069333519162170646727492698520124156017096265044496236279208052504858834870809845680027445759113324329341720557231727211640009282946140223898237667574174126490318839642595262884058667461172967446773152117526086800005560307818117233140302856790898776406716099453600472346459457978030514835749611069989083249167569399214275401861291023447028686975085853313483166649668545284917789498123909339992895445974255085344379293034502098916946952427015262634018688904946174732528465096265408726215843603239724280745853357605894724630259101856156288942183534929073270339785526612941979475555120884664925720153832022197370543502047082784020447859668757797973149906845175753543924870090674379052950066794996020949116052803241726095853148433485078731658857253837267735215172412897402432821363966650184544679818077945447055097245708020465676612625750893780372440541302098622298753293113265934310484576405193825606199389165765020887361075929909254740501788387023280038430227563836622321381289741839255865984222386463501642300260483116401162006169270503726239525146959924487942151702913903423940108104112513157443769757413367971455555566767994236242681383718435694223789280805268046511189166653415604765396656905724179484616743603490658439083673555701590750658215311452096564926717471485911469965819339850993026108082393282755119301961427955684374190316160880171637799101937330928968952401722196812242518451095411522524482456795180339367347546480904046444487712923017314498602951803092039525152500055630499480218630322817010353149871847621363628514647165158290655682178751227257965823117220078869541295807584413934097134214835566110956153084861584258018351451917221372212990373483511987327067182625240667512420687902659041341693613034547804575673351583049997144393126833333575807071528841872170397565223696930893783214223564759101063958008286252352155352144270497735480828940790922959251419238163373715953616646299599643708121164357200752319865466369896144996715668767383452571095294355815538309182329301866961463027956163769788494812228997404707057860977965822347621974765815574187202376490110777928474144483761530489079548270957412283706243510142457332205688006466460242458722849623212314263233621289372253851591808730536114962152432027263718738074489249743701163321815926616249391374077562343318173590878761269088318532364620445676267454949850511838745943316755592057465523743540111191434388651747283387220074423179676516979737472250070716789372574693069561387019670849059845026832644421358745251817048907112926171292834633134547388880059722511461631844002167377717558406042253809104761417839825744784693824150229915236004546705727616165028968264171496429543176712018615595621315028692931860937996878534536435810320232674625401141502725442671797734985059503516061062282559169533873020539563207369261246306550227065130680472583574968928059901193362043117822697641206199573480091345757499830374042855355687329993635552078908675846056154158053837032514353849094568128414969097275767424327925126803993401028940187436702705657553475746589571595995739559350721016617952149735296266718214045559195442522215084684547191771796635533252837300655057670622587464271420988357461608870582153608646478044073830565484482555031724254046992531918952704394730920067222622635826546913072261143576543675033988388072588752875197072331381585866500045806679111683331171300779163840511439289593878013894666934043398981880510114605450239797813698548441426730695896857549209149205476017922167651455694959310602085267733266682231968409423493944410834976386810327762792958303290751592483411249720121290841383903820502306677618765798764982226389276249499552664367053963221789127187902416856045725509348400948127342694542573274233857696027186681294010329812773230418550145892271821162092773503195944995807162905206642694638764331170405960489124149790866590176805016227991589232051820110048116613301107905968341845404802166735703121465486826716794295081619345660539365788500903660525760610062945226609616069208023955435165889064340953496521020968815613993362895601265247429848146229500816342999104287168573624066122409130894414539545245510280883033951153780434170723764676387844160635916240636910126618951643015296214491963360380113362816138553083566622166483720832823172458772084761379291841026624779039125945405300891521568226446740959598208899702579397613630414030653457953454780271420475741519789159573926457758022672491625599395974855242098919223761044921521570364827109533629313704078031862635836520911104241856339230081257245466667358495861519540321792480602472297622277715991679997210876518631602955691951648271817953011568478502027656262904496379401198443480344156690075917519905273239922529089236193886893103562772944785347176312270711820734483474625763843315611256203957656862084973917244963923805518870582723795844409175683986514309736444735842274062659471148401803891720290427221202200691149450645436790152808182079969515120796511295040912133779729043094379594198611863314455269707340911967675477487983711370116388824323932764631675298981827067037603514321874241741278522536633876390487186927099017930656572993655316318943167418245821558157668930414972860305868140453557130235898116120729849384955539769728450261205569004844218227953606058590968705689534235950158106982411852795839245995850491260132273070569602932369554900140820205479474034280961704870808793333254942347286197544835669647444525427383124731186228127808857573978658625108456590548730015504984479815777174089095984666574822907519536939663498506023143462472308151167066581418759153885171375888191216687557889888021670345305297425293267471499982175541070710303351900397175404650224356305680234914610429076027916393524214295795465853807594519910570496432259173333524448563666906900757250441036364916777416985867732281625810163317925847004429025783180895991726509661341390560210162966879797664636719264921746633041014622185380186970241441866998951735320524798713697009314338667690285842372543604563393874336143084161283443384721150802582742026362368809021514115201932142940891671398630205613134050704071558186906999216550406449861419330391682854299803582813414185094114510059694574228203527252861734840266200707860517123865986682824530460615272165441757930958950164983385890830365949059894905136707707223151808739037711624122673559507801381840372344561035465365363548754730192461456095615038523427888043156080120666633737312115259817089979260765943062455871507013699978779753156771842410065268584909446498248748879580237051999108591052413985055906187997660265904110156461877130778439730576961272397579153788854871761560886559537995596484469472165259710725562657517975471974011525582252432475768674589228371590218966738544695972061007102086307040658869002556447780520181669184222195828871512562641557015212369671306419647269191355572731511454561779583877012432949801573115630917759112228027662083875227383623281146208778011258717607010869565388568766403608941203981421300257639260102784152878234891745412522250304405195399565063083776218165999805098726109364229865705706289412072918335383502789239100198959362307766638878840448654725480004092700134258554999288547970575132753756307780051918355140440302874204406255991173234817622189113382975081618621150414675868596991247297459377006871678974399634632290909082217957950389750355733471224864882210192499601245968758617325604407080117834292909217684234833124039337651250556092185634084264517529740288748612690281903754052684238882751694051419283540779364132452486985604956862937402201211667491789720335808986360812443769845317956985063127144979376922221743806187717635209251305972178969863278051546915646794504884443696381405770113625784849681775587395109837011856132635821138710044975201742431600391293542381750724313541552156448279552933184743443856630071989252436201865906266388177365915434358378011313711056166249945201927574539992511700388619636078236470314611330818145941751040088081587127905841138328611424536662378437677834576256300351597569260278976469885934748921776274293796386029445736828911672116860619412416089874163708398128638521011047605566124937127028365501018262490353622760933086199531457196470213588677290330901378200790083192340083840642274240249993677121802720605670855721163112593494944417044421014707934594065775186055297075302737350540817097971734842290430661945962347956354066912739364615196221825629345216166488385910944764543122333641629389787241706426613197912817622627878500592702872135101335657457963718567041652387398311865523992916040311410216668776771651826861906050698055419082066184033939508927985273535635970976640420682525134957369056746642689505951507324146377098950059307732275549282191153617629002736840688092878390147684084245865998959540492249451492107158790706819803743152349341205892442107642747088680158720989189616507069357551994886644911903835483932193626582663455540929020217203403662648789688297018900724437414569979250266270587469275881669556848410573737941255480166388991254301560937716961062868736722490486249889356919458781916414015135351355405546716382520948642357899908607898300647372251761628859673764493986590065757698370117489927909443044822520216082347319695421741965915007479119206882020972209711458355057942612090784488118401805914303066100390590639146211108992480750693903717045817534138926664366892020121555644266065315565486245688713786385569042345192797338670715833084008107931795781888062162187224568824383069640320244806908406187730724018377861232217454962634764289847752807829722546830551858858190194158792424095444555179355198917994357975721895331107252245953541690098260545093405712734771172987581687305273806393419236851725236811443496349113402031350559329854130723364412915647443671701052796874858808059094361258501234780899454221108431715330145472747833756051503592402416190902665966096237465480417567490428113522276992772756488554639639859903626504417899448539097087752800432798205633566878051147827290248529579738657942243430343920688436533128356377308573992388467910536876926907262975207287497904943615359369924301077052842445233086279900173594752932312810853643095824692221343981533295316517779719580675311318050674357231319538720018110601955288642589025349585712604570311159621131301763057903066623836403914749366023711289940358035209072376165584094988799997430976555285236530488431089589478284942669024437438309232364106837945248726478607475712197870432876594220053071022281233447631329445437760500183058573167127245444432503354768371210309409881777317434536740057805412818309631232222981614100340456776505154115528998926559592967554036226783079316469572468453815771315027260643090057214866654381787171442929977561859573174729449928160929269555862905679931788083074771935268795692517554264758018144288289971164370489971108875666165338127693414068536776804499185424475289730225540174253816462056729383588012799139368078965084926921370247544003960626969181952480907669420137946450891951666611269119365895768561580997399156420680891703592669394674217693639143096615476546667405398291041349384301005738614520326831368142222349188271734177606706096030905394021510096744695914091009931343955279199578255915826011614298181539382540711503582638479750742411682365963945718663608486908530538342666753913437704136491298204105333924125921344709681249908599138261675370173370084512746978962445544665007296020053212412651276697842187967119171219705438112753807090279463176452657387024001890170276019526481286634067910332532395601987946638471501874002552477585377980954853124350886309505609796983851476221996110329814158358129268611623254588224794774002976593277443824698889238908346286811498009911774250688396832641524711311584361881835727091705140129630101196771101957815133011336756722327093804897651328295410383505837246186703142900384566432884943817993859354762049571278387703669163224621024465596240639472311293704787444525999721195443997233361060217537383956940785159164932444040226904795308322129418599462400720523848667743093489819828255261581832100936701990372033148212247986714471351036639633366984050232018659801978685061809517060694581536060125066641011385752668877366338004227545739050615837634597736621243194787855407231372952477042563975354777224285044664095374497048941200379610630978642699959649231097196532218467082533738496978288010761038953779868222165918290184248640752238480476536516111965956831361742170031023856399161610681075476249488542718353098886004955090036916880910394826431249575907749127273285520085227618550527638374829666196974157520664126394114745150917428524836535666636329182754298213453734757867182488397595623643804942169573868123875127384466065922601009101504298198829894735678657780416243282462373991751741018098472035439867066379534987008593964407584937828914326903044042491963078521459950953389254892020791872880360325249374930987995103642329217136148000752631057882888317885006998591793497219823292800442344998222145870516342643216950412018257066436399050537567379920523301691039273637071729490086950771136589343769776858582668730045972199978568931589378170174515717917030260016321887146537492272766206437113439416128215327467916235659712054984576825421052430346968096031954851089796179973064983911239538458372644379209559800749107959003571947808522280312248535699238948165398995590463126774322856574764983194252876414326230470211990108709056013792653331087496883798930708119608002019583787358426579683396471006883879288232174180942665369788722253864535943441568768711449774365536800206534414952797849422382517420760169070196456324551512354687798031728931676977310274565404186758724491588327481533488453090403421035736835823051879232399497479841603346084924180928380935666472767419228768413098408734407401289389446827045665758016559951455806026787065768159303579580876762122762981257449560913772397298612909535881444101976192563354717785973991559648893561227061872550330027111192041782429872083701327444779323445887517457503309554396520331338355121311773809709359555961723327199450890933881607610860862973095988202117453198934655484626787479174007148748356698262354486745923849279095807187951994115053714672808944431343690378191233104859075287219189182790562711034182312450148394369548781291984803422856538415042477977955111342022742140438553829987957185074250701361321526515627811868318786526895015959417561389473303524037856332413019687984348631682083188046179755712560651649059050420692392007764990334328529550705940534256917559737103022368970487410720987192520175732804958699752249817582539725457027154913266880046390404200550249111837484602022071557937280692083629535477741586070033860660454694794814058986509343541512328105439632089899264478751787447777235024944706915333062765056643608785217264723709876507160093147358436448083966304007600520339661524838461654330135479934692759013743192695246187009524862006348295675829581661571970969824362673517886479560810463529663758194929332776307494915097992999576265425480681246640002659258574781678780976157621747239186775843686359905799706542262009656149282449804138751654543777793505905288503158744830025329208439582479322212271649143538455466967175294079370177221897155473957392730954275231194877425667154791277045368551921284647556644898775088951460840254437681396999148882663007210910787695163594326309511384817538084963851189345038435067036644589420512848229883212014505212335157854423882846488301490790169855983950932889748994967858422268995665302956456449052119712170387410522605376550805679161566773366425322823421266326577630472199053889076200815227142937720471384107296559292448513409668109485191125100696355898952379360752165040031279943511617447345408196334140638548182699567304502869242661455276851178420687419761518188042161030115954688018593289945977440156901245467758323859412407953331889045333143145797902070612781918996028154812934847827410895985580081359483277069172744933719753223498196828590359894561811132966951081879028512408697837126573780005232990236671198593508441028550490956437782453291794027472248036358917916581889252368156371840991200154337345702494781349824126061817194286255612661180555271895366731957691430966575587227755435601203051291698647375200722933470030486390612408229785058027561720458869736525669385440824309629306940872630486427182771133292915589035187557709817022462972061621145446878673163578889272845314951050405856074223491886478111672128871297082355278960276966914769780858131373181179896725071126259905604299748633149385085599500439335474627570360542372241421065196979994614402897705796150438016262029189250531624012335665845991565570295061911237761109791258716765516473935361570082832732138930383289619684189737179820746921206127682903473137605557679907457081110174966511527919479405025671032072060026044362569878232288374277206003461476867319275204466465169440554601553981788960737925106718341943229813852928559617978458098316148036715475600036176205600236151188316150802391787038737374310551430753593117250674121627979349563942265332966601190790551699370718100578548385221176884971702173092589450511574907966539495602387346061326097943191697575789717196655039328460841892310692399818309485724964110483339812970885401587229438391173549427281118151670767371036141974456657386152260657442207891600335944779912687570063492259753304614241171184756099321474982325694565584741332332308164679134732159821357740765856269738617707643106565873724787239671018893620167078519690209828463874308519212723510967464650908779688003401518427856834814986922025626465029264748865659992164544952944114281023255593091332899100324584774155207984048323773739762067439412965122601807605456595079891890262389735966617619423631375014599765836897076732627683959585848217554697151638635041035468589143032101893027096921677972159757644366195721767723817699517072316970630474682918604384114815804910607638339835343354231672802108221500561457988429840723856896539344396687439765579985930164077379554893540594876809010519587137624127425421690637052466094628267236941626291466394196487627070099961070832231864656113871399303306781978136884426564710430546048911638640358187996494819369437290168721447709305245343713866836257794978006841391816790081516534703321036954426906600619208099064062675867995193327454206688368694462266577974327180278112008817156937521443290394061422218881988146120137039840958196281677530399849287042692013907614842636324793609780917567740941959371872877140346092628727664500993602518384320481250052894774926438113704668170866962227084888400490866126536748841645486158381211634000444378105698583716506043239141311056035501248435611643337150790379346160617331794343751411254243552236948785800090422375213692031291626523148841431275672475024406197637972258187403207845803623256941454006623720674599487193526620296346147691997760703164075897508628482595394641805350335243903460830190089242770871806977117726160831108413833272211472431031127097354821753158310635112773547010065998513885109112491575535984457696948857840173956486707085511257006042375183409112617904525970447636370315000491165213262590342267073730340372660395559687275656951758276222125312054255232522612490395163103227034937603780370447830136516053690770090240667978422667200421237816261783664400273947823399257578058289725486952548004219012727699997843237317248827238902905712969552145111866130565249597745824035162272461714520694507072602123661081089351072386444160763737918911340112054442060667119443196696865180267744830514544926329768991756453629641935212377434850993668187441236112027703133508546240793407865389194944291402903776452409491001731121199451862719806397446888179069529424923191440462659021070393174347030150389272566099896777305038154652769703369485026144122993311270197084239727847397093679648078803084594008154760795441766210903803248350696428376051390283529195428900998998593724099316924464369400711438040724810951247168372193081981648183004658425909298923408816614829314954013471687236510844139635534736423131521271546188982672251358550723800895608099970926172237939373404368555533314436905965426239228200191541309843558892481609414341630183961573842818759544663470813014494327058793070909383933365482718735656199596743744462076410720829766174832305125635323863211445031899095489794836222493808644598248884451741716420625817189887029899223206730605432988431661547796356730910480918724922309431467601428547017132201579792571057959448129403058771677588146495771504659808651781816441840617601708896658043017844622699787542746679741084446422577279500692795904832826464248143068221310099660812450909148797043331444110741719275243932103492384650045858589684248729212786550996934767978941893556983250739038339980885631965496854523233734942934114350919451959501712778979588532104645268656011245621931841603509203052975226752547139251911605706819022473885922004118695705108822427215646245854892414857268928497090719764544823769877304280340114497722534430559573918978598712493940170666393503492692829127443557555603432927650505386118325550460919501476765250689435484438323219768936576183344266948481300695496283962102264052134768122363706163441463644937470807033111543853207449711415129128438550594407858503505719769786968942351979610839298677267026559550183414590338385994416553210691112376986885857055540799323099524093846691374797263398099637086701833282769612956835522151060221444718827477121988824260298475465444621305646827239030769127950387378542648796352314675402114953033159085869272006761475077570932720195095667218719125353502822011562461109046427005628006445199083302721260632908736720953681083303040692231917918699999180255871592150008242994435368764541692342516568468724380709241207792472285692428773277479360296350955429032137176495468060573743671411904909605257984059955891936499297011815406429051574296485796374017252459751765451130552183707696211558526267695173551422345716911548764062424715284498025845125929822746132941572055888709685750868301187567022764716003721247748248069479487380135401292992539823447120777023981522701468219674854019730997219096089138990680688952880989915948895052920751119773489853804811038641347976050749368516096157826536492254893539758097976795136675808245416614265030645414603078662779445578324712102228133955703007956295178338673795193871716998973585702926045820360162158601412919140429507902761292478350724865526503500111970496674199425959622347070277225294947009082872163233279256243059344933011374828919515089896179201032987450194593541070575244827568628794436155661458988908219318066773387566154232293184517382538812585705756988565809983208409641495351917826172641902326332888148417357462600333597159513726230669490143641002361708892354638408956367090884846574156346242041082959221382903209930640349930705448258449844652255848362191845337425571898619595581139840103978338729449668951868522699923731345170545009537477900128458448998184289129654583385440094277374352537130097511917852537230146244999649167515832071464748268670443048198850033696929132988389661837087427156122123011128807252766501013306892494496083124544776957106798856034900735392897124903818632026265800660369834373468069071726507493973285071238634511915408074030739585212356283981134654227989379033559200449685427411606300574552754030182096052118224781046306965282243205231932874702690546384794050909189065381901103741379920871847450475625670083015985056480915822444406203301922987632774768438707347523872029542436226982552089233562145176199755865820463784330895889923410503502422299620172011586819624622457897042605652265386155111989462747870875922984222798560080731232857347226182554331481334300330048031801034863260707028586092292779877194016255349179312477868789729811741340147189846139924177278454132897695504080646304166237702023213380681306444849640111344906161633669443942367582571636539924332494512383279820290550751930819636363274247786380481961983043567839258408778311527400118498485766944710770490522279713615564457195055390012374241272043657606918258843062280902572619435150659091510231620479367839945904753950549007278734757183924135914815599057192738452185776266593878928533223336264014516573487698421858504539144155402259397194664749131707464506375361924402270101421913983404247775917981526278802204736945907511446059455345779649759809267442625629308290929297745038104136023047551469569469838958521353941417499653593663946834135900978095932842872106391587117692793707175489874044474935063977720952224830928594648559596582119187833619503252196835701889886159515603098729334579980166953342749436861668881816757782809791882852936353696566005123540224747371634199907512223901569503486483749442379237553476973711131758456729512390288233600076676539731078960144008208653454843745357865566555510589558905478007775579252305716897199039151229542052893484732177382668217251433103064521638428217042936631220182484285296713830204012718704936344640750847244116024496594357820299338226019934546949327849730513191569796790267287929723128642513324719783770946996670507569538113818305867183004175688628925306383857020865780832501143962055061906416493357606728064774777455239282892442852720081110020139652649166934403642137626049869438475442647436156560788785744792932074002040637347765108118446555519222759018539025915160331425537957287860324319298304051292203783839423900277048452080345179865645051675178054514541434434659771839235990213589428650522528127747164290202936536367679934775734508726253045741304271788644960646983927363225823476566935147286062324734187307637869124607945298340632283655620595343310294108967196450115071516320648327710194227686642117983942241229064081974710713293339550742169456224043663728190871354941252097936260736276384148448909460800329674478253854264376140520203868479005097344041901557684437178010772027702822347948069734352838221761088540726080111566190386123241974773512232384617796100059099715527122735599320479832973074435246951427365882840804005553461103545464775792678463908771264594258885524941821569431326321699368459268857730992509190915504988086204646186597107028068473420579967039928890200980918432239199999097321334650301516810384943529389380569542869686905483180583728765517181723176080101324530660282400648469201446805904132169306150579435747544509397466152711189631506437423515478846201512327979156569211950447788835379677105896016800274690224601651445828106413660328749401539481644259227107877354510251751177552245094117906921330337311820510523199122680964653233098594633791268593664497901670602422199026921026672897144767725407661033786884926352620830212601036377027581157966297423028646530792983682401463319538939848310813831260700681114261279125810326380143465230765138648505383060715402662244551120211910254814337142688847678115233240791530441932458587194910274290293176317752357169829297777397366091494138295701260278360231120816664297581073179840799086954697115988655650596696304298583760373946380580138545171806893274991860610123676730856700269925926387517747568920185465844236531257412356568424531423920764094957013230975550542512263435081643639559521712309343202279984261352170497794752241914432456097965627520563067308144075938721361977217830798421604935273553907281225503915963735963558238879693114438870188401753564271643164330058153738900066664470677517623855185000672666089037831048639501999828774612051485327349402194013551889188080760272930507749897935168271568260492505860309436408142929233617769281326396309295883591324176417391220830151029027020194610314722152425420545221007969060187991455792112621673868244539105302712396086625227248148160761512393332246319842783766483005089993978910390651629016711698430749632434427112492962883886581536665809198858338179794212642062644949728300945607974530865996277077152529984105500867497489235657814610442310272189417199212990976426874879574769286815058296516484756076211043060715042447272433656384145651063273151485910221034374499347184009300163466869138255684726284959770852984308145315475246855358437277476979602063452524698235431279951724518652101796535202935701342069347373888694583899745334705919119764227700433759009076080879883747465598821257626250698563076785394936708199817998481735275347591932911638426320805188898203628683718682222347334726020826206657466114118636510547680670808541341401602999747338402715995252849797781604233143247055181939655803705136647555168498060506677108417184448862655457730390603926753102836622617529848023951530036724489273172263797032883785561043112957895368016350735237517118952139204756720446236051984049169422674261190548011645205555039784745969977528887162214792766989744882161128459526431301962883882765929841349796696346568062421344261094450718150731009851325360331405046840839179649707827576238608268406773566033440107599562642501669309553334090218068165356510035443065641069574895996040800035593305588783738508204438102888228548583512972481090958346086188239520014368904838288229518568610919555692920939453956474768377003229595807595335881498038319179083123004303046176861949734393680036345140322907504159188934984109851104382341157451252884823067073527959882911832707072984719937075370002470436191757879580124724375319102622811761106542987838648700453615501076744046574283614569446084974341166302008349524839484797494056741580933484540350651625873582786937834647697490878010349069029148398068428063871120943704948102010245720959795542348232504853982646331378018055062073043514962752415762894779690178890360372302833794606434171899780319316623475238620885932498019763724720927298997255841726020787250601134590894769681513941024061732761576673811229694327736495815609253786595079481306080862216720814660049501706846327785132904866467835961690990976234571701291976981470031602474402196949144641202936069461822005721448509492181341612585630978651211638619417945034822766217018014245639399939478210180506323239150180253009120817404915925017903122729991267230828767249221241542212523609866828581907666663486588428908051466619093672331549263918780778520649908765434399962559837079104530968781480550681114714982209192954575934468488333842838616587331564764933792895880528436231668489838572000743569473376454806037406727294894045900474249575782853217650053201225141712070520063514364166440799769818877027420149154369978775325938768969266534962321916416109225911278593249748747228573511354624608184491552095079154318234193947194977901626434545390467579809727128319550738629072286329167034500608525843907873477777326303723055596660230371533500154495300346771211911811797584416047383709345009004766457159215130374208704479692768601048151096720407841415085456482932434263750761905133846450632748065989832290872228442751208669392351546275793771597803230701192902429809510096397640348615233739372511703300986186066452378711917281307291975414614119446281342405687556455621442971613960494017891914712644355378235958784374078811577604059866920100885442806119566477251558629694380420608822747022315044562114598166667651870515519638540084831547723597686037173745685853219305114564982030482652960911747175555982257404535200610213942905106854654255220910713647235773038857446324828258773905285832782464658216398926647110409345690257423823484663032064435949476572102677429717879675185821525347805634987453403776423331267421984260834924376154506961466004791305135010305040486869968893870415652364012860102942556320071566798962446655754852598967364412866398394893805334014853490151481935052029097403643316776164864435444934715599410810061502105595154167707695863813830268404833708015195781404824256855336936509672031364024713771254727851809769628448195804850114018101196047763906275577626772058244107554907559761991180680321217271457938610506401585680451816269529257869816544996068583588220099772005462152925926079199760128447184262757128893664665203546994193916900837352783027765538189444630013970837363151006319387323222625903568044884279942906781877281155636684025613149703388103784125660382583723860121175743545317233034542588963468806925792849539930185887981429672170995598897106577304959352521914894796700342847226744251315703265657886081929707985956774709232120205812277777257802712516992129077766085901832543370763628714729103801109697618530378441770476952886924009108772384223887519766082907205677416998449194943923799142319355605404324052991877019971474884277069625718401655110930586125003908433299697030891436826094532667602516507164344728362081985803852908812753560764688293628012453464367265598809987513656284022202133264496630733393629053297994740850284801050665585529955479177883870491576866553629593397002775265718645597618724131205569895719387552990256412214168927803865139201370246501015451461751874993495943111109854809327743686786425403337801971568142193518119796220311908885424472931581760439707351847918491597467295153567847899553905155344815792240854059874188342631144050608946260319354918875385900967967790620570356460932713504419275770031624203361471183165616346011342561809429266357233769252621771745554863343924967689185675951864828874023535833540986676204796514845743962503272411901273177670143829659410450873107288754468084461149518973203955871161046685145852361247777997231633580207818540379631722235162621806065032471507620177742343878034167365594006844224141171193426897501523732003131169485815569542546799422777155842358462935051174473210850901193043571717125046995762150528460873717261899553883838656349314651109651490528594055277004327654569888940522744876390680629033532584221400875882246893308102257594159664819339225181763945907054275945088015868175829673549543195097367178596143856125629026528563628776881560057626684382756160053972788239672532548095003087803540495288177727977897725607139935567320698316294836316937327025854570261610464435402201569147239472268490002543099722441257021827847348436457155208898110566840206966615111414742955724436812154263055920849567036995500144590232410302000028066898838610020623772402551705438719531708939008631302095001325274258418348710639693091399997459103418114801865068391609094199218282731879793458053450407396260795018419217327233905179238602963052182514599207725147773146375249750114120432008141218903576300338836251732963025757200542552954704822447525558178387401987799523986564951447624834609573744956836151489674214894098950657812528439997258451625026387775828101591868072744818867205400003308779463694611263381198794450367050011977572074384943662385567588865530857574657410284286259851325732229330191607943918838910522876826355861388047441262010874193572729627510082660298717423772994740005598181688891143790793108367048568795167584442773847873419692323343600388388641069187324730387688549035332019883454537222732238808706407897516235512336857585366913554345092278477621408508091373406407529036681286164525264563482638980211878116471443802071340024944919332152023651122870323149179048630446768218810225583737695494108735486231015179314612770657998444870384257379586513652425547956298369729966568417504535653237814703477775134054196514974806599283495194522112321315161334968053205212379762775268286635079929874242503850224784046908087929014866231054526513976164447764573621932365668201467468091794245055750252653086314291324006716010108068824322521262086180539075688762946871643243972093037712030561376628816938745834571502015518439124498775935630970029913510026988422750876077096767923402166711531824192324240418464270949899896387516654778816770070424912090571085272233474125453657999687221034143984106189930690463758322038836232225769299040279827381484015666271882959638033082072330248440229722803776795332877139827607806346488373556209556577000668418741002272625743969856524066032371983323483050512725730304300883865121763748843047004168763434637322622941804236987160111661196601495644054359364200553747004788286337695772491670468784277674714121012307524393471765848227408994338193290501182569353720797188106953616085281133854918467128654460581037079674031603260307894881372002268419471346472417037625433760953684950544958649411742349866021917214528328356339644911080271098382133450187716904631974644443309460893145541947763881548618167944120146475887867528302429062934635207580409943790824054446535736724426606560492843338725519460601111606770843835866579033222654093476191479312299684266770156977678523891186006275640228041014341045930410026905705846917864877342500363725392444800847816963775708208301078487687495799897375627868829734843876419151556018105130739881955777992089245212559176053629417736384360240604768116684175541990627297838617501588692509632177536265117328099069400301125000299867219153633779122559925454846462734433704704167225056658951120897521872629715430662358830757407496744038186202610358785379877890758700829328705447010092623237272734886772959254226686497321550768943048011670542508353123317937936729993440593225499843729199426242311362321717184298404347969982964659712637895849421889358662403055033736419480501654221888687711448156310277507337386411269154314595097263585422854900367870832572612443775624543795062840642535860203579127242589300483550716705830898293635964266635444372076899565343425024669993286337840782950306433723642607156398698440789045833900667047220455484377506867731589746598134504386505523121190366637309585088788355581830853043624166384662322196904680680381418070341166536862621115720177921463768197266847290223424663309948011080769999267103876885957389472393560687815017807098503483171943486405038823057074417357894144146765375159260753136820352279334619639378428049535834386572697952403672270036648073620959853843312127783923305733319062923417292433709579471169917873344770595592005285889037833598753395886763143703665998946702006662737939079060507556122856284661825946499722022480703042791199048596840130159973136851301131439815863320226067239024519398589679014982528054362263486028696322090921976107762865064343964073747043617041861701329916999895209492361611481747938029544006653135807444165467817298043524506473138632025046124254312643518527852521165139667905392057378816124288022186416516984159730227287042784397306251332219385292240972217788122797928789323533958504666706231099831505140987991639860656068732771574408172893268706448659077525016754455830116109438531885127192759095224804961775885649691450682798881766758325084651979723806438073128272289521775467217104446838633084742044494431968854416706366205947382877279261657638880786883774238184066386178996934478078441475914037768128766620275820601735233168595930690236876321812319766855984194432363950732981015469126372215261496389302320902191363785595046526595594469714965259153462471891623048091078074914833994469176128899793577800133591042051340510644775228016291640013672078320390558518041761504553612778948923465550774304401198430698877455895813188650282995077161168406068371181792375698756647983663942371546827948699141194760465181279116591508575529942711528108869079060873676081149465276021210761460911245124441160591149970404179339509150502170657401368036015871931512195122438364451401026350468338831026506222129363804441486666973740474746116154765996667619124707691922804798726954214338105661318871888028459111025734009864886365562487995624278473883908131536890274467930204961467843185182384325759783270458576383135321836422696185517408168877163817456776214944837215191266843146099642047365589421555911248684655137256753521062603077516941704526188723481755117112668445749069204018007704322722331314472977697011684148053493813291585563231248988801385047767518482988663446761313341729109206885641785257450545861727897352298163382702339028582121140076102113448918849128846927611958179175243722601877571415129499609743838845909506232485821479044590011403432285791658716423832457759058356526178011109451055893658006412421548388083753678297732067754667587952289436751433834021793074663570800316928172705429481358321771522801048782313101507114448871892601983998038214957446974122360511109997028298736500491102087708703746080163776274581321494030695835334553856157737809589051744007117015704726511497631992429471061651819161203672572759813443474924497836771805383913254552962668280790016950222783334751269664251297761593225982434457852221622598906337367816530971989442496722464911801926636874541017688401528101456690325888385386709921064196069434651010285442655941667103768049348699530491445182962562115701784417463913065940345699648036660024648565527720571200609467795009364127615340834433193358819074346376061730836191403553046203640983404330006662555797515146855272027659985844515010185420573258320082983859446947048999084000335619506172281144948337634122351001218763930770876714931413929658915839464625772156078134226876316820375781577229450451090490503185326865494360921587914775759165180986468726440650372122657258081735245872659744058867034078014625325463834155256198986569052223494220624973422377604770673033728129057676358671220611259860350434282627739817022081858761868556554562191430298623298939342341683992117924119981769620676920329878541081540805480164455819423940359120167943762376275013397190317856738777574625703878485897958867163386248350211424871212614461277528829413718817166038416688617249977076149887894677514043856333770704967174482903284510334313648856145579394080512403306694368165935044306011973521357951681922883662089303754970564540237420606196416164886595727257726280464373012726122234302200907742938020644895933774760431622295683623912579068176149071799931704217159057806553981228656907080407738051787952266795954384440130092318982368399275087305701677486692392835968734499892472613176169982805463296500364102285204411471634181155823323415659459617671482151774662224341494112600746270916337366981013406683386431256610468001362898110580740791025913128233688260457792162436876197443462099041382177750913888395848105783915057607414133874115462996340028046267671327749073100408764634696916582000204258516103198014923915304022291967209195510264945961898009764519315630685439770473561493339799973767797600288921111341060365099197494706670073759247855503017393744598151129403416167372504903920099129583402000189488273182235057383176002446356310986873111798631703650222018947656779870286294031528417508603229311358183393313531585429678422473441554769182089960905786515856925504473120402656502234547564225646447109263312798952591029723940126114033345243899228135646344425802896834126116677387679641976056560464391785523086471629885344725563895194219466822273137062210314208814324593918982575032734985112916852110257032102228439165691264701014503329905875498823990914807612881028427783725746514505951406710763105440165000342174224153127315773303873873225496997201872754194726140287170901219217187186056978584381407427115790802625687759218040982526803387721036849989763180053541058451354619731231684436805852062271669728341904897437856106901757738046889877880639035376092210163390864925441173490702416378377124920617489551304280811015756780865767029278251598793989540083824242113511975791736656181168369022966984353688136524403605340429935240303558618081037055686598550277771762525159035806017533981705779846855814337981285296260059234861289163724871796921366210861404744411715603207120306622437119169039910319119873224069633169768707351029340425815994634696212121222607190914959801691698293582265232505172018698852335643018762079822985784696260732919176623363725174069317637066451229027699264779082938146039057283472929686374899715001770526977785464165677828697473751150891436687102089934158409447158366348893379463164377630381862517790586471955097718062498293556648421787697379289516673020206544489915318594355897804020861229769527317659477430910690049695714592134688887742207803038986548590699122689227230248839058645456238495386090758853190379601268917851668399909440266257604817199080143287397311316790899728220448286400430455125630745152681358735336981786644383562976103298807546416090714356461232329755247419762335215671896072620594557656239719411251017412462765368048354340578920923909601311564168923626946415017446607058152058127142247985128787833827145287363359339641952535848716107286111292529354399793109852462325117155210254728134764236515367704178083757978245242330075737225801402823032338679014104764875868065851805547083722641930142651066472066560711525259103632954379339663014822818570088914158453513882168559584718773510312824967486927569614810406303157747782356432637833598909285103702697440603241858852583527263152202063507963102556777573727712490969746955393333619535291926836311308145771321947138742978055663297385388310278415598437627148672463431517930002907355951446966633332073087048542949479031427103267896114725544672705921528514033254140995487439518195037423923513000771868970001532760541509133213285353825516441099579702310047781728343235731850123849560101914736052295854219126294568493218737001677485745564584063623522403167133245605779582836171485191552942272471809251769084583028374992926116690830251292825519266089314991824720820059455161830286364317030379394056021332647657294154902176564347786431905109094780302700619622063485648879839462607567490764710350511404732561756276203342413816344952300973560745029474887328156264091779946045084859627510799254680450111480440447473981140148729673496639362178872139037533153138171602552365425566653628490952430612378247473444423486046112963713650178908154730084743466317740170064488622126668118692854002701574335060584690148335289027167526889026571485144485317344222114091704566377797538909250444443303807736580137649447135247553143070626316820492963314378545420708848839481113117048297663167922812281409342312680420441177628485795558186021963956067029132425441450430261066651842423942518980260576937579388703919346226309010082067223411058328332017457533556163398287663511031495877495065841888094064195877629638230959644315241348153688271179884008922919950731813242210502634514153612683762186870644913283747251713132492689483372543025595994311046561766941245471740976389061109779854031982932255714369872682967238845151570806298973483807044781383282301356313537000183538203362892773607388940861755139387999874605795666005281827555297511530920025778331588667775596867500874573290879718182701208146492426794428624927626367498984623227991374307577728545349341150454765064717077920296903448712358098212794099261775486195444513046935855000108474090031474785530464092687619724257824325633531880539612067338916683228826150858589139943298084080419092837120981486896173503525254999559722668645238068666953293811899911880313473455223455414805592783719441662986973204833395723328710253457028842716145004820206092650250828940722278951195673981021748988385816032994133549308328019180345221188149716138247266379850881125197507656565532522830950920783135952267657009638837291609897771280496225396935759478154316625741493407112901504474395263969532454429551831117640757238888902815745611501051212934447152699652101505484255273189869575708739422177513492888115142180462099547875857393590357810623200910284212453435714235115745752240678611731666700656810525515633084223356126960877779288048944448549369922702048376149979364092454560030708011558559144412908592380757850484694207404514966497440053535131386240968742567243686859863213302278213137158670224694307131952156142018875574118964430155057785178951514709434745329778277208247218650594329595460991744645000993634712606588617761068490270272063835657913208569668511883700578197541058641606762039038036969500563738769585734819769029224334312974379839749849322616206535917106117868629662059325569011784028272120478093534591292063318352230314469091784911201007306243392482615804646225850359120473294844633253022003356043050832093318440711806658116033558201731404189949039687334325304173389001789404757431623902904139154839695027380088384249287368602696182324730843274509720118858716172359030116213312127101702720186824799453841563840083868149400816360431881814394721422419125404262637396375146753099802135856863149602826961094851193350571628921899717217741716921807582500135531783414762838956288541418490020389094374684608012287886166645222615995366601183770403113020393694257585891443925312272647644542465966108421521271116713546951170282648950736765730969307893156708159509537171691953660788654614270738610128298999951445930351026036061732832131443013472794299257202634534795287189518962267401198705022284646493587782732310591791302432937854043816096794121550926628350396308961164859298387813022728050357774462379744317335589711807946093017938110243050156214075841116620071940889259865816700203941786439559756591740028250282798269128648429587624203367710882953636768935569938491973544146527045500217277294503585474149435683739807878639045554200329234384811370675586286723172192638546941756222849624971229428503836035795198964140302944192339302480478002902946905304709328191648208512447741183986550620193450901420935510839461461557129107506751202748601867850353825085813670766332371071716639685197228913929686818242695786469477570625520475585833973492117036200004924339375374609175860741854040141794502775800067424996111356098127449542302851648366737151163730930490430284637418453467098389919602013927571208150413263563786428070737460566744071290023924103032212451740978744711271417038551981008058087908918174414189645458056049210358699342266378354390159861461502773464049652003009977219471139380857471198269338974209505266491590831255797751812144334224278544918304328387081949778655043629807350612021209468053248123473288485575608054973856295875308973027436667723176253496303058702696223699238810424590895804403699525661616543273444323756686226685057259718263188619514448494850089914562228088102601287615887872932139595476351710248816606608061319056292915824510825645364627172139637098907123331660200550446957412249308007390102913027736111727005084265042765133258676039345141482205314115510033956179422113599562666509685857899567708362849094813722502872412980020891407068862421446174418140947817732210387006447895009268951581044236567345408229981611542378703279554464488400004230905083658096969990510619525857747934769810709378694621205270513608649525294112291202709066625056864874025931301835410318082630145153985577832416299312554704634225131272973887451014912337744750677976911015686501473547428778634686613760870445377790578297229826874460046809016064870617691781345413747150551006331650816997146396534218638623082674766131803690120785131540692721938079976802892367251693379567166894058212392003288158340439664045670641112988966820470125751588647417409406663761325389279173398874832682355420495764432697975469950063347798289290999242096834383135402575605394612703231316530023186473848295538241322591876485629884318919349724669726052316116502739707930499241669224783596910724899960783799415230030578093735448682574583828405190902811186892996774339295156287645699934431788689620765803570695122268763597603243558654074532245917975062594993474446719114927188133980951670541398596438960913199862249925078103861260040021410278285311062264320620553420936231276931870194799401574099727220377775487980264800664519893445535015626911238948290603873658493277265099770604653769176210759765294719048722920405091080086495269280268879600694639286256613038966751907620884390733802326302457553855360955008098601029464464724193713085268783383918295024431494999412229394504379096650398571447683460619684881522014699594861712124441471685410815524382799955457284077515522831702023244014374773761269015991284429919696858059028983838158902520370189777325841868905222274324634832127592194271536662270519998290191224155444175778030339357102235817796239421588175642021931503096492697141847857117872481142792726622348131674601134328215138541260409705800242160376313896362463985703561085694817201985788012448546883477682301313779364348086082059323755968293633323278731078545822890980641078648927234507392112313464934091370606031784028573245780701234414969911885228826008026639943078774249299483839749821183005609713633502577552084435547257698902725321374285502665655487979863292184573184094445655041412878493572428547663231845262062410757535007168955693052873300020747087024572771444856068886631286379608567079523200627073611782729957578416677373567466059127385589114237572087413262781536135060354893908164023296512954000820060294454194043196923492393482242298550404496910712929510205970263855283990828162046952893321101450171178616673725135747866561978571866126202731676094739014990770796810652790506681970745612076503273781576113633074951542880469997152768814709272420040345629110030723403478211050115602756787194618397881354523118938854553243354478726077334275055271268396510149209508428128659569826727755808861073368887846541480934289407180020418534200055063432066322844131904542386138410321101727462385961743333533210502130829387000256816844061398309546928531676360066553050864590562986426776461077102921396275604167315054703017384569059467905344805698757204882503629110057062270693827130716759343903274204243708207968435504522946267110027770162920928527401172916781042718712252599330781163787847635958127702280468577561679727670723305870649543241153956914794040594432982452729062194476861712686806487554989846608844323520452232947887479297779451948379051027079000837957716906829279022053385300407713614640565944811822244706861355911203317856034103469848144287546030375766183604998965088379014673050004988838981104819364926982035622673753998291462504452306134546488534146413658202503696356811731633493242539847775029327863067328842582467012117008288533160589552099792293843881039838135035052574622390783870853605904901420534798170881490493165326003241814625808847837784182893030560927298293994404740996403962361151999734742027876803881181653007907185773372328837957217356147265545893357099458473066481686386836585696447440275602188589226125372717495746078036687003611354533174048859550211024596197789102818306900243783079673389108487610925172338260877524550666662829511011957441533681210623644689571441690895805550258318126940102164646373448452942193723089244716477217530320095204190041539175334363122853532022701746891025879395469874863778905282941623313919794200354856440383247826571525109476525208202496243650311475806718903788543441478404307041004269520493865685476765323686884833962870664131685717562663425346804632718631978536611762567493774681963877226123299519501060816363616393153545412363364778843008945003708056580707780002190207335960582760812565637533800527055667543488403079348124737331567646301200187047501527850626583706438166115065360842382266887868386451688889165716725607709967806866420757363247873130700463414425635415735949659959477625977090635684438075416988300745342490917828823009147457036704009274244247860461754492204679356401974827864925662077611519302808683478959274332799293219321182373207378501717699484672618621951623108229896607452990269657683605866288023649361840552992918233570130424180985310090898270009814740735198106626196107381154060812106414219645112150883928075245657524407819966954053796677111789186963631057812266745009283871529256686002536246731230375513128170143449855928689627679944287025814616615616253402838305278234980194380800508226405808005096167493022775320456767673812165891493260011486271059786493131630373918617098847904975024539298957339543598293025800060739214189550147607225468268235595732912978017200041438995521594363680159018657775474928262976244734947582203751510572329363320897377880887449043961736783826932919939229155563570242724046635157079201640658217773617566345578088664175547926726674483324889605183843450810363232572331332458668385738548624238445327720033611036134124622882197648768614321296706487758331385530622864407600401641173785240810090426847141434161590821530060723855130319154536901184678213943262816801515399252828527296090962573084291492591767870241974429023697079560588257658973595978573449117874570255951205134614980504092239533443799954460159986464158426124113861062851893358612010198342216237418950072086944716278491798415234510277925355719740239000670136396662213611851889683831556175873541701316574681932835391772683117955081558654130780710265172835706841012023422663230994039086343570801189326222485251247598613625053680182131652926337438631525549640075886122315426613158410587783733656900627771838263995535668454084187796941508398049430503951942122852792000098773038139618865604626730761190771333251319471900636287695540365034330097286507468765457267789275719569294196876909964378498314106537709709528456295780540057418394281945783771984948082792059866384254172436404450446267391434751097250318017842719584858665532560034317572791164492590806330709246016333809964183649084949217859117619102929140589968415090597884771429086023786158791725509446415775064161570175370336574796985721015085758141065454272508640686774869393031672904106115504546735724486100279508963474947236937822138035593514924775408321542763274744420954674099497053232222381495693577119425956720971129394849179217047469588540845409795343964771765115231806599874980120358661330696283555499285270011760241295920570943530598530192844537887101758245183833775035800630747750616198990651895852086311532175667252968929434270856083215013484165002462408747483986101679915545517459976711729332710310863670173035440946633769915148795738485765983175627885039456205367643747359363451610564383998259051578852294995694554475392330370092511486319312262344877847991024483355827755407869636879325603879272120682935812761801991722088457406458478706238430586892943962260011032758927888499564563601120755623974289585583105046402049839438743929561771597280932845506624153237180164261495995265312376701632833921787764693219702932896749021429756462698598385439443148141181107022143950999528092045844315773651929607639081528862191828271447580348287095419861333988944142215209119959409940246062175780104515624746445840089043238138522119112827889779301489356253304737124211578608034539091010030579931058293680558371676670842723490351349609246176478687129300698298423414936247337844153982470351296931603849070291545706327803987658396292527126309348142569162442337196169879083877376628063814976500705890333030004868809877709139504965316130882880226019126697190209000427947137854202527578552208234813377073608712504499234344820987154777956198985802794130857798682989532859498605851766193336193871343679036931747905798266077846246499280713262906901599250079259149358827837068089899320837543109652934641934688046192843672785540956318199193603681634666690470239867919963979609583614881490113715194926137959171099189640117707711659354557557440406423791977852264154955625173639267707139750925646731769287906810338693475079822644958572488951194452769945732752963966886278357833949715066344468896999803795649149347525446702700561978712187888620414801514185630506552181042335396206682374783394295652179360358115785570976494370192526013285167866342838392045562450523142158315744237278616429846684617699481319921329475671137449088925550050837776783291699319132937815761505339526894572421609879974909172787197094147726928611646376609798860610250106151620643652132049113005427544840092548281385763168418081121166515545437462556792032086003279902121483821103894883643270671350754693978157954049611865215735958296328648496459421884260046956392774647320169126711748221756559090283983403227332796097201866038443260634324910498897179426044524919508632603960115958606542643072211253803852273566482260711963068082087291426983413937592101724268267010785739233955622650764891875961305347987227639890851143397846818627324405371060286644257332481933686254546443880066341970421773017049550314679829435542821906414114793825070604445879999117906544437920823991050927177437307837575864487689789679769637218886961443298394862044800389639614800729861221543195232371590738615093811956924771837641500542925553600111019157186522540055594634488764571593610355366887981581375644166473960102207356703762820457392014452726737035195971368804305417725736171660838814936236164335738310682329249568783092158851306778427075567473716318027639951052105102441772649617791598812959583460060539299468680307298933441097203944970850339209996634014316819575958485241148503175744559676014295426489950378632505660976388158185938151081328891700708646462119352449984876776384687853249901292428911766129710826008370923760512264106421944092369528005606436048984962719405194717700510879950146844038428795602207444294423153807672892398457815095939461054187935569438151679295866842707821173864769340283622273966598268915517103809781614824992450970999988675421530112884392459002534404021370187314995650490580536725368500518945998512638714186243973338505051045564645900140948382097461858585921554837214022645842489412540826701837883769382009802956019471401606186585678149747184360671643561743421217586436836117062032065257954652978259711552003484057669128391851855957986578187421970687662113446163675372410814443447036564564498505502303382403313426116501565136956052605370043723820852261803853429370216039000015606105543351658331968617725527296913446685111305255604858866546829664476990160499810641614814568609040645861993356812159591357973249960629055660790253081492555016055434184070296202894130966691792109276774483365330143366338951507071001340712127655721518994064503356366284243914310304752906598480415826263172937263267993021503741802482856672888401553888605902832930884164995818754052764248416899929518760976223635055798721649181856979189214234728505624072585062934764723988840291931866210922607366638427232309259684280138582477433485084559844229034154863709327282673587091299216727260854181974487349572443225264284042989736626477012531526560008160565995857407346544889192565880939670761689311828115577861852162804065102932158864761824222963129419925812040095911880955736385274973447606537364540206278813800224302803526723586820301564268872931685077108395432937364793907245279369568794711930936929167567855319008575363429505299306520511701664435334032166356512151353436761510625177257699485054471959296049596933894385089797058912411989587383742742807119394961845664425112248366445613957519431133505529219873230546076519186467369844605050370369750900005483063898800408304308264584024057015738762407772529312476257147748097252255674719189446723397637343754273741376503577317063541991100349746895104919521477911343585707200047702761896667719356613064139330928934352853821123021922872208738079038879351349159889380454199927526090988399687321642436608427745113728641088505613993717841385953724986317022978843242788756644464227130758422574460981089291715955652032310750469065100869573693504897231710872523327009659368795371590833831631220439743185978936200924310481907476633874544257300470817178149415595237007657532400746248886445155829764136579838392421149815441292085094295172678445226214848931260191000964287081630341787525870889251700221697261037474798691836614139814708798537341947042277405621401568316708661609783478005221768381385924372943275150852066399606371610627885426384584837984472877598173368284921933899221627503157382640421336174116692357529814398692243538109796332933714177606195317418848487344538407162078068833214713934628347523743807119567644085085812195494538960688423613427137003834036884757200211638958878372785629073698344294961218181023092073957641475969980123732905371755609672961417019382718303045134696141325515484497292794215518654883592703588221070074352053786773085255708629510920059454464349992676801865838289439169927253665746780523836353100286950616622087039475992966317255621232856731321938609660903977123955391073800117613680748551679519023883575318100190285280308209998943637826245318939274415889504277012317424415244826603554140869863069101193469331905119369681908984153784446681205670017106705917542915000267184358410044128520752052333129150080911348709335114098375377903734206365935500679783052898337415033130141673650505612936000072357410232540482029884186811100381031869084642020344411800435255472935070763139122513207731285464583713017334457259305042538016877824058884261301650258290498099109005804020942625365241111859315100006680160412083500459339833609383563583600204553834198683938397069543181684639533077256934761048787648037750422284924460176485214018124368789292987085250761683121988339173651173954312959895167278072970264296561446754325279141795611829909051661594955933397004550530277194136450490187909661486416118416622294126807525595621238356454655698780254644580695735360588516259640027312205736048871276867715025518720483054113543250308583301308589220026350481208216142646109504022267596079062570583953161555265202646276199671891737990633327705400000644411796557550741342082926365789682440277382760625152788347596492302685243876309206399278688985726274485025696117692601102568162175459492726448947663907138588615001315306392459217241243791437240262806167899314493257672506928099239922929050896792082628035990351123381586371351110465824925722269969729333193508899424208945077318191570757863722458103917457904676001426361850584772232478094567122832736554851970936108552482185230740209909410232728153325102120876533750511227624237204019895715326621497028574049534175475371200920231634058061611148936188544287089249847319829671600686032638336579922318906114389268418891301156406970307265492827917341222256396056408583172433608676164148030053036904374277230934562895022483208882259847575682871287649785667673894888414039759706006291085391740688055157505377768284696660905494649704955500234477266913152009774324839370832198484972216253068591385803691499557249648298969608712167292858800186999035726314654556950360891086809792360181484573848436097824615849005611727163410007030462710148491337247702390783519528697749911962479430177936737074598036062816244615087700051010685878172058728748052837974621509260268071345212385737518532479657342656177068572853435908882403697867287309090015235375567167454361613479456758815277072009147035334495823282980345894246297264986275947161175284194151526532435128217179225061165844602463737658547150138115021618751612578371070968725649574004929145540721889456859550752212461482581903916121956037379813193115416316802586970119887008439393430479112745207977567833791927829810368658979537946302804633875419755183390117947089476058743873054060116422403644624192376433891575650856149258137567270869429110694080516915792238895372570621335860019424853561849538175379222530270639808391218464875369033146471146937043842553599659701536774927642723828614620595483237664442028106963025700899654661266043061563877721501517323755716430441659304911271945954222022609255196450954795772785678359673363062733960017833556080063599475255719909768302293389688306084537593805466930595355602416118818502858016726088560290962489960282545585987152316559856235010381650811301173018619880387074003247200325621251371397091065535196531611276141487620709005119520000017226667269781347710910735925320928789494279976534727260922462438249146942463533205218725408552184050563925226877400844645149436827205042240013236921415819866347796888560908689398785351608403745761692206474910668388145734952486191994456604956457596525883136785522270147408184491448962991871342675846401843703382662434564151015087343146576636032261778572458731949155188088072706676784940099380591019954128469610605384209484205471295934864231782723836885391778508125765912970027690062844817081784342497027729368869307399151405777316627622186224405843576793884480404497272446580243272077904611986590735171771293933088173910237822506668879622553519090319977662723692465454305152563222261645165820581784728623062135200312085850339613389471423659521210701943770115191319070994506913382968374161052192081935791311008621165698191393816330458801069860690223362597531586951253007620692685356263969676585766841041665851262537737994085540301453032096547507224263384525302275470959390529938768118185989591931072801844211483913397742672192784180855909781664332137483332248398503323720067841119626358414144799395934177749004630471757145461920827171088181440273257687217919312890602468769880219117506285135269968510695827442568163397214271099049091582714427145373350246742828934501830381070637579736506894068221425787279749662082161112458748824939461637333256590107532409242867601340401564217528413386387487388189797626547305734065890337638165486583525348347370752891212147287812554930491362046565134451817665526730309188644024013445782962081362817344138826426071145453107656601825662926635559079606899566780352624186865972942583117613292986836783380448769457587125178726190432354907685646513727391857704366772802021526209646154363666289115983493422735177190706849423428513125924448426476858474944229312988392189061111498908063664667345311187780162327213391519631450211674954130271884306381861807293385608737345203638256863314884454293899536146438943730989209992595445362240595849438555038167587621717430284403437826556920609324393372462562145516052688913241902353745551209325863224113349291998878371643952163650310713434540139828361005889962841851620164339580546384368287496214853796413832396826296754919244563059273383619646732417444278079386214602255851954535772292997114303947495993079929788524851757991135858314581126469872278320765993543421319942002682682064479648554903287940201097396563721197464365935739976497974850711230733836051770443242814173037951975419268780705587736662081913943854368790004931587637172019007103087814361678952034823169061532152976121823247186372249861383121827454477206395787216870091525949213363550892012866904871624330682507121286565729075878094395835072094424229616177173717651850302847504105864263479089656649442696491876098789136631391006818379657009576158306787439900042578461234833169561017655591234253945037496296703829910669015188744385274071984662654927747375470187235140729075513152728390083356016092714635754013327192995199485329600016094925157885050879739720280805047654957614593453670414682441221180008373483953624681358784722311330640551958323214157382837864969962670135068380949032859601747618502414090733730450483228905887215306820696315004546660884685395317223834130952133335076147784420697864616158939547551882613213460591867821636658833697306341601699897636320513464525286670177776691153608604814362504207095593658633039367193770322337906724579242880045544274506055740374813668085024420895537890739123483767598652599362234960641110324068501901990227054571216912669332260113924175744326215715391464451674400417868484955482285336143299372015988630548867331371939184484458505905470412899239247803120270282438476392075918700548901776515835966590328538484908661404171829773764183468475162894187385339474032221789119232530251477875763394645474966890711337312315973810718983260367257662092154543812417980186585732251146572023499097063770237528105901766766634633826919161649621061921547846974968603085823736876608242733073233592171190424444225405875820910735578982817518316703797028444854201120640221058844627713742957474241645364734813118291866196787590768762793331149621620625093310819695605880686628135676365055917069302865014000361719566079605816920929966465651801687895688315552046667592511878624510818511048502832948294838743589506217091235171212220886071881996390940511523406106145420153009249888990584849767429126760577451338309077809827100532790220029292463065981322158163950071696116831010741144794417161601840125961312789812190402791972306310939245481178333554551806558509773388559538690144500673060379821650397176803688543229906443480392823062494893165008440274831516426036908477157154163925860296572240937440495470501162896310922992884339853426131715545430240683296252775603457921411567935964572047188214365768614649074777873458418870378844918926255642045896926927867862644973575413009647907511445282046033935843099949893783364309271859510784917146361482023560579819030080176723179219304461822542452132271491397498791942988681268990611285041459164860985484122522000589985589913467183982021732477854739718662742099884870072525449510880344335266375649645086689453750167433549910450025751064766930657763876112555696503002281035811379097490317864395149323673259283289446147785920426727213872756534929878451386423628390242399522492603579173263741837060644891035253599331454453768824161079545444923867409248122906185262309145838915243045958258211158695289417011371631190905550979152590444408161996136859103795010670609848804751328904871168443973792266309307892469658316660210313085236405223655145743806202282405193716523317248183168519691741028827519083257128737440471652468559215609612311644409919375633892676363201026684882845107168194407166585217877626749804910045019192949678881286985615750781534646297237933627764407404668873131651210310490086801521041648536680486928367081302597028149378617986122924596833970792095274472906140237611679194261203088033545658507952202636826353702854475023900554662826440109337084829187949424890303715348651699765908582579648672161776058289422860235277529483230439419214486106686194003426530390648964712287925376088543310197457205970671683790472591121942530909329867746237424514009955601770940606672834203851045026525941139006129491265016559057921264555726988754288208518759975092309073245083129984876685185284737231813736819576747519890307510865284450069337160519249419800080646452171899803996125105129857826405322907954585163183445086839244627853605164312201138148277077038984060609550061236031684103149362818030483985511076706082812717029633929147205539857214073931502407864186303101448790496277593393235058628951262990599456139347689464978681037440373849304634489431872043190067039885629020258147219744596814480626992870736935804854274265308779883624195960905211343576438372188801139694145093254878731643194770575411594112972533632372125564968752208535752813223228597151229736846170040135147147667525116111701467572975130647688460780371784711279880914807783986544506808363981025297998584059286472757527184331526368287657649740617792053869963622274505220650568853601391718045966349129488333940581841280806598715928728102189750705717493339741174409510843232784821581210017754051828582769840685364994109465728977729526849565093894806318572588844644985268301312623064230925382839299953281340959445403597074960873808095038616166130229755698250217616325203036241959423575887604284488870544019813562752461659716538380679115678937677304516304217504194240824561529474022002091542631787338597168597390980655684418617717664047940996016725127565851873981745970151852694574080023298514703970944865270116587836146478407166545793119648287036992650529076597847263903216606762690208319344789049298156702624256938487982602234921847056229495911588329799604377629997393318422602458561914717369244979081463313251266849886997367423248866809692779122599710235749392187143793568198579735317534404782278551542419728883760476644855281706052487761221096775069526616445549440448302604728697928293020395687692002077446106863831044143843138035044575873600522682013548615026247361984313648347045453586817246998291254727987730627160279408264913155508141952485405106523369959903620137987968721203986261828432626663119148412804217181660323453265034679159204479616414713624504702573176224066961427590550786649728309298393874780229978385380087938527222618592058956492876446646018852332872540641480075142058458996443864558294351352251002615136150238235347570358865479916185008363846689307409589798123430155534405810855547355806460232987729608723171923548864048749688202976743537137360867447946834184141218386501824060572848959751394121987789551929507305613213501206145753717152194850861624950116429541030301214854780448700859983796928436697695057570219504808495722643112932350051934531192992497504902981526534642988191030050096996385625807714877094367961470803165836306952215867802985973632842321052793953733194743193758234254460309232698168696223826815861685829248668340973159057911284099428809845777786536029378100164285162985408815805094516926084540957043122868676278893003989073215330076889376582372951044965464134330450848000082005487710182088008800892738468413506632301036167436049894674961723761289379020387324881950483474197860085503995707127524992319039643909344594609735424450071011663354551561309472120349069261472958972826331535194916343802360846658119821513417292965762311928357816574435467629140382789046681733118506067715931433808787911242486518678617990820904454991267716155316802993240203502932156328209111243728087972168031411724606507871651928595130391234728993432546911053260021876225604932689854928143866765881889609823881234359917632032856849085663115049680306383993756347509624397543557656019258901028513994448614212449877132330968035026863493965878971663103303899232220083587198186988347576132503324210760341736528960695189681592684023687089768693312761676034622889887462891452300257520923015452069404579176237320535124870972320016334712663946563361714429411713392794296902357470809567454964836289149004055135049687705438026781134094783628658139823082358789793394780070579753129708453109011379137375114526944517508400912092962262080147337970321047561356913466427141376023762803182981458044967373005174892825031144205566075830200793913957683421818865909015934694467200589843238381320719102389938949464809769655771958942293080105925870102205839390610989007641878827971880671981932620468656089748980059512868555712515455801225645583450108293691136132836243517789095631009424922163442940605046796010620917849932296540550422389880961109232967739574208543068892185796563039804274817650349183384454781936203880176254409619671020819420106917628170597866700845521315298488546507995946157324693998103923835913771106225104656747772982250641827900308429801349198392468649669351293908286107284204041114327416046820035634805225628942735570630201463325450706398315326676787176222930246733969916557684575764553537038085768967135971105216499086734449530125503413203214770568885731625636322665422758739731015827982223310421948274504398255760274354647477975586829546827394986568574007332036454351296077145757436623323520034940843693059761428372452776283443869961747407761832821913483910636431777099489405088695573072298093740044869389910313173078099836943802514424091570012291889306112806074398766324470159651480096681551023744855569771532928136194898097714079410652506077122831191753594110589441890293300095158284365524826275868032113603949096697201601297988632310551405265956377662265453772165049924148922184325567578076428366883219124590318479287192852032590303907124599827754457003911834370065203121205908553051845507464767702415593319672831984963638679549673545352733181481520648504162409393915166801527507951942277548959062444534931565716089223870866791561787232205226044060902019937263085135493384492691968503986431681225576206523855557189944616184984872439394889286512732930840297425598070546092745554770468816251578333435238795521215049976604696698916624058469011394826174834163115965984595177365181764199356795135739887744178070870189846506817261080137954681727338670458934416168010528324168846625209486599076594483939256013387322522801713249503081046754111163515949634309618846340473293543382344896107503834378324458888684420063391531135974639176514411351114841919052712234564270550445375232514986976597612506970316943289529263553521394890309345086610232750557711226763407958705058569303023391334082283564561359968454605700047952342086393662262124969300486195191907300655165303150846275296325355525775750136947621317291572869590425187675784068042170743741235878742029539841606641871532511518961987153873540361289010160833787949837218398129993115006809880769431594707902852951028546877474266649606492384560175712382865258129838699612752517483163244062706212879990907075328746158920122103996221345310053849841316423195677358691372852628110189737957573779238277528995477673259116620105691466456042576463423678512565728340804087452011973017472804102197662979514770100912983685972431712090493625425391086893000666788788309115163288562860147357235434030566139525016860292541410111077805853939450614501017494067447170329046451306322005131719915800775609633552374093216798136379699486344291239411271550040374379504280952693829554299762988483029935001249232040179818885019708884095288364163757211606343062080258405047022357056671747232132079292101172825588080129233106156882199214089441115562103154374725002067258072887813908078476546745865016239142422951309107567647692293702249068584860058272096185555422640003474051256971270839039886331326754650955246423103248929699787973978787412109039671188338969139077763573695836402335829480227025701123779501889302169137792528193809479072759575349060199670426567514333492022042607350927321644531442016669666846853710639147363566119556707003022418727439043813865605357394572480724779247983141467583129249942448562367775855024012687280759918403147331027027706115107039221248732587430964413392483643677356879425734562106802177375692933076249382700787166057380555330294866258783172025454124978950672283052158909803320807312712864830676722184962258394666755832458727877262429438378700092292836556955765868493694716089730958866344285797631967760100955433835237381113955482159247337017106928812770921839138715999808028965204349596006536570206236969459087275425976220985377529768206975741595614300048946422206089084878358013962545103097922848912554180932683696233434458376625775858603514804154906369641044056142553707210830953100470066936479761602255779990997995152994073382228373250529340395174947907055514480603317288046127126640974435365226992939990898555568661836581113277804133119441298052135159487691021139666560317334498550861602680588161082662640700297298316157547791131461509219912919775755008889652726274052982175510660262143240746142023560572368006481521560935852758803160857736916832385674077033624266718358454055253594102426340359319482939927899598012455101906611089813856124430869598689802414006292020178338374143745302294993814041954486116177042983262098695097052409795025880472477227664195314816959791081168442206723890160309754425209440081658258120039623869509785092934318623319255338694389895669922535148992761533941295333616993238344248589363638668335362393249375410816373451441961160168932857646498218965950370407057523978767245237225857534926047761410998694911929229673497363351744316767905915797733243379881471647298140738770231154283496544326263172153747645608216298366232204267557389007842502538389073688184502848350903819087561716186709198074503870050277137175439884627707393844048187363635922209039593973305380430454407185876103910274769847452298918497137715858572406045046128244966280480443888612488571141249436633624084600263169917971639553653202613699263249118956513812310249117812451758578611774077511970667581487037463111427412230513133046141022650309748509314394397132258187648983369101774155564255123763672789970101904886971392848200332995397328666281243214545494199821119660211519885127815851536908828788545783899114974539037822004610434871463030548017742443585048946594070716194185948228057306227116172590127370751022904647788724518712731152155874509925074938287294460890310840442524578359659215634052143722663062862715211127172184237495313782361291913398589623409619294551826402277993407244507244838483361925443837396238919943161736911748194563454987127255258461742197583861621687490955879400616058307316596090325139691212452101377122600051913073069112117289912695211190434929511633622148401739041622643396351859351115817301624861676453225305487394227185416872971121033497514803614302753637870268218276539437033148672492362508740858134767610987828357123954205777250254014594402475388664642810986887890172459446776907625584627903859435527716556080179911758928249361743976140556622605959977741216183780977538700214241505281243099629018753240259043067522736147456166068706005311981114556960896390388696806213283289640387734859619942743412821158224229175442349310944284025813442507795004256487181792725349942309607156927790124140745600156684273085727362839340441942557089579697334949104714498726255374418241706554058810680575125014582586634395782380362334785478082819583858446524308735534802191779581766025330877692040552429100651693857362935182409595499155016059907804883931662273609973144926522086632288489449106038474384847182340079537576085794158606375858018093263459617098590709453318079214849600204716171023915132736745711337166213563304028333726120723409686492633782556566189452486433107878044917762819970168243955263058771554947462528941844559788124521481604100342195964806725399951421003672277698745462679434745253487254485582850491708919352132172001193822236771207219632958513610380386368099979675888371823910277498517636724923058504449329658715965370580608901231682834064228437003185274305922286118458673845664505888557996278953771593049558523723755620730131734152815774093782120686739979392796418448121427688463111732961679556667974044739093312391500801163827224419287140653991732993701236544345964621698444399096358999052412193707826775739516917836573106764024502485638921656167839816437293573069994603260714883262982834397726495693352515339098634386937842993698666816917314288100440859667212117897441699824690096585048718847027359069223894107414747144748140788422505892862492386168970138361497196413563363575518778598606591830513974778056862169373863385371999754244939825896167160535592734144006284569208500335233121175250757536748716557945533374344841079887745937192648272892914172543449858169242367946451123747404775612753160172608080814746876103851733349483834921227222353777942953405063310354431673952100068133260268034627430844442983593249917817629309538061002648640772226443549908980557850734348840107257504048256688545097982340259253887189289407723443080380440837823977689391283764012336904901359376561618663627187346745912251781416990258273528152758411680038741965789809791738641106590832215890604644115211299422036160376008875639518322034528002383325802142322417903676327753688171223320921594279479028951522972995407125744170262278658338101218070987166743240862312377485821206509482329100811923217998521356581567743339536594532616457924876387463668401337057271835632688676712798519477647821465639464103105180987272954738512252279968614569625454004430337575209583026590885916633226756789874260019694969040061383043557599282483624476230018979182474768419546932871684869031340680796798235354663396356901400598013568872931170554860341147601000565465919134135171784151167259049399930265486494193051045251710431433012463867189071804060427797753584358614132327461040540116944928622967751119225499851544651910780289033717894333583318680673894585194463399206884708294023134235102585719425370626255856387622555348494380303468572404389953501834798269597394837431400529716986243337299689746934968812251943665051856066171264849084713383109623910196679444585718800777393142850542035657139284508387535337934327229088393992656693114029661937998443641454243028094432969870660093702076143629458362577270383289053520426575253210591946446395232092367925656786895190325063242344679669076716034941802894623021413231517106549448623150903654744027004636696979666682801089721911121737054883866146374789508758502082615663079776211319804298277972778344758389842756547476193540484936409196843533729962312963659153943112345838033664395731193716919757059420685363526337454219179174865787167993711673806285128081036728729370419166032226122508545622350961589393843524411712730723591519433099271447608039898609617730666047735643638638897932265971800544504121034611055952450180611779905827411627373448531175303194718067295955143554878117233622898339786153128351689536023906292868328359962565662858048147096749712239958585897710026312585999516944038985499180099186799983546903841902441998509038225448730150586921245666841488555663492618969077620088102588185736907245382523592262186867833442546022793468270513635009576870182756297832932693766144688884778830764717821551278491887131283512277211916042671580279101224507868277625473396999434418346662127876997842109967603249742482218795665669939508478376558647032392316910706588126433798719080568849850480656459778078775298853998407138396239143993850273927375127458370576767127739299559424042161011426812461807775143821829326970444709659375287600321713530496765646769127973085140122445445618745188374595751951863817584001780261937350542967691739533027905277448198224624580234644192800724412038058140824532462124496087426007597915782488779414912184350999161022141889598515532057897647660148330529351210815185190031581873371262276506250738232341587844341649888994155279653758844039520204973356785430084519171674371948455302217905236249065484749449064931383452385856511555191651656561924803801122748622778500366524870269587593859410742045980326422360047641612293024352734733548509311722568393013599153159719773047166210742796907960510266007024219023945730450765058458322860016391305364043266557083973160966432445751035920191729534940490252363076032295316370249102552213413937607141290761261624182130628793895933514558257709481675877176823567184598349986761662723567189872036990005668225521460319468000434242399420038517774367096339445280489094257039228066922202846304614375225074056461013976446075109611942625894738255779083203066865163702600995473267788538265205644098878198864083217583914975823770336033918820165059625810705181227397153834461827047444022578869814448386413677988884153848308632604426081421878861827839572558835358222874950651604433466775743971483898685125022775771021258834607123443652004606596454144186200436130105336509481620543217529718098058158212278759395843315169662013495606039770387294286778987971754073314161538939035693993242102358572042138749979361148918206863254721886845453348896391587146142073926980496209498675301906124669561963040953882528114886591628931267864523778777683987825941848261249511580799706056023951303581657247578140027164781460313839947352441282037112041984145443012333287522233780070249935560692819652284945082499748071870928988251775445221508355624441972894817891753855385029198461030156775872719532034305634764714808970483547266555339557242460646792500583176603072537471031431483002003070962132097857971199876226421211942877485028206490259439554695999535041095426203750020693454616984485888089073028315117735573982989037150576890441122338626880497098164412739984287428848606788596113537252352286529654027872159628291641000954021596168121770661728623340084596193407847402965946340870833518475968741231646325361295095668473494667326535990045054507557979484798909490380452735394170329661266892176082076127897702310447805341257486988217801471274763623975887040114781707012250670603191942545003251838184391711757605099934986087132888018964872019610126420550982656437886234501975474668889502847966908321371449570801465671529300226348502542255472747741266013123701569780764407211837339193875014779110424644906014794305629549101062764200669594490549315727013420047136028557584011350945500064746658350484119518621390916102879796256320534964781047323835701539153757582217491181863387200017112022734898848434895017441546701016991441119185584101915617967467307716021756092340702920154294920568745207119711008171464729316021203958356695525606887174025290027390130805546099750842523053771605639865771147867936002369023225362118010550323463303059013424966774445447491753456079991043372171591342639726612034150042014081383111731604302661722306129454024776725419605773976879734267019455714590304588773447981150140630217852314022100129486120648974435369024193730491700839886227733843638551979347210123844476754457103836306324601819228876980978598972732917568704970168945049216289370103329514300438042193032897513295808861797432351710201966109010551440838384012027633438263989943170382412705288150211914997026058012023159632090852744520650095006516760400056762021884229474394996399873484966288828292785534542917901584626353184098031636968541647456261971971462792198220247732734459525799671659048850732337545658114204276612287593103102755549143622966660458311404733556051701443131215119800158038517604212928239760110569719854721399094535510363764901974290595543280512197220067593741535699274291590215595642842855729239868149011049835706428439124722858938700741186138763475398063140261194672471795680686059641236516352556072211225408890667543717906728497982267832058123889868567075074985561951574071921364842454727443096768608336352127795906835132245447415318571436535577351450105693543684663992298663547904594632859008535815270765246449320330106519408206214728775202746559520083222323811237626132063386688923529904395991366937567058318904090201842543143989243687083126071412955883894069618722157583313316975865763013345685114537700641389351482109162070827596333466809576336225177306915825159231383306948673454929692157110388929797576464732172164441745425869379379544719268494170434563986529618711694728164195778344203301022726044704706213520246838451656196190443965211096529394327373117259279001758754982618311299607035909022403234372155515910753359333803844307592909395911869579189023751809080506532584919630429361277601969018014785230585805123138283772670875557338184599675478167524094927467961203244766504833416526704681552019101049897428167353832190205325112006299692970821689014996613581479645721354314580630132294573293476413251957122245753421007111566745246027074384311068525768977527810160885252888530861233005369309957830906095269513827157430896204345050985080410528705839604450290863845852408080892596396610267973832630449677448072045308909815271497712247458550115685622474276184890757869700189476282677813466183642002325216710519556541028304725881790458342455706437369671050305461721780456538436287693420293298175644946093682259054141703559357700758702642717280129700764367936971820971873906912097485489077177800714301544999508742694500690990904484529835017102478038349897812573066790667105827029350166842374596311673894243552933658977287584433999025060685332444600333236605190532289480863243888213737546389908104162916619236279859331033663565493818475529446747826554766024768644858958562596461063332785867903341435240090339041813640943835634119417103581273525145255511175957189010033719929573256282223629167670751115669016342373162960992479725424922529147485997959480779403444460855253165940093217123251044324030030128118957462351305793160072711400797597088034576622134364397610914899270576786675379728885305473071819179427423606947130664123973975130997452314725862295801849445408924534392103678452429257390230743561966447498892519137994044016119344341054918069813891406047237910408944635051633325260396843409904099657076029261828532401405764130872317142247005659723802171465136427704586080829302549637833632364186681134044617866581214678925815567759179533042129964852686477150885646786916058834384429965061793906349607505981744237632735919551701247688580406842082219295872302648154693319295213228096657410306667601460420227816212601065642989508769703164687787879698662840196628770623065544335816872585106256000295044058094003323178746056175952787683291152045461368386956986802169210854993804738258372648655660230062168556365385890511151147345862651644515440783127502517311649964957280938798433367886924881124193297825971925994975614986925691444570413465271820414748016894840468149476252499556857298979012274897496077333744153255957038169625362062700681338493362863989184431293358194820863528508878268261823030663751309137504353124364316010852182427571512121336881083751112423968526563551620973516315871230528749901601223919907374073744530214005635029143642091083663307909631448633062575006934728843870252367438480739974416787686453297879234520223901081253306716355099213198217881407052497357053636094266090861910171172639799086906536477788868559491548582858513295355945375821012519591200327824900869329540111608383331270357464260894085434344904893671313734517296638620019888784456040596222836727116240520230871098830862026038685921595388243333234177773843445338480389792795861881888340515762386187128971795123163187170230314630043189679765203718586050505979593298781738027807424912964284895603901014733607826135701847742011547346998614234285912459419884321454722173902216805793472132612820769866871257112621718123448562761249823374659848595724731604537744382195402647480158332986115653569730106041175383671614536416149177973546326836264818057419221288667875748622323589444703342089861683346887704796914551056684482437575092292400893484600862668030518353536456901893128900866353834523250108279828944005522754792880202835136048691385072520263283779811753442839139090647646102030381850518363120427258687970914386775165802967987176274722876240383640889431149174792631950394612850906440744105415945556256392377435083873621928018373903634955045899773759792679376144516853922519221038857024121527971672178090273659408150692400684034300043432666620812120370740662869015811524840333591970224301977280323159279604441353466931931800292777378748191985752160644298695750104178430214795149870965908184671509606606611534076578691911833695765237362837887630562116443407692869527123474512208567974556518049791593871015890307274408141539580686292724927215833551943652773741324907193424211649330414504769262908106393019169725544555665957200916746902330533613059574997777347055186416999762483298140782867540500791323360068060949488173660468599275455966553931527287285221215507253278488537130770065742620461239095303433561877049946594774309883444101821973459254804924735154656764329935724736161820804984356232926058612435861954804649387529500371096818160377766360581657326908606206984320433841223509256142428108047404981038641467770938725038560140963531667949670000230252218355046773050601681215343345355196894984915666378523996058638611371790115525698933927624133028080893522690231754364961752350461920093040893608169067644391391177395070572868052056375690022652904494322625551703534844041436715488578309150639724430909301234356583082739500588669655689129131219255370810056035282238644156943404299849186132697328828691370307931671723166954542173525876674300581675822788225997528408276133280017481883664956137345288175418147114006545948517125641622692340852474328153551009240599008615560870342048950664541006335236992519545602939119080881676387195293132218232359968808772972693511958801262698859340942752011262804887892758854483112596532365266796819678115778955471267395961794999552940499246533705530546290345683242920586932748719635537663719738013757695456879063697459806407339770221695809847130413591800567288212732102884723203312023784691569459278100615092287408879705454587483374604100164237324948654210634916841513549027131686064974844658093368969725293332234426319375392570878023165991761129638622520804626434803932489021438693541209560096888005365623119780344590277648145700665538053660174531738194734078493345150741514591985356741262635639119889382647575408855110511462287727351807353636417052098650619158782740054540618404187779753695183797976590494540701683966964240474046801761608654014101961317684017815816628644328589801738374166894079000134891304578805691097417903758915234900518887170146857935994117471519166491498779010136221071464576354552505941291381872892314102197068968323143307408781080990207747606713896715389446587169192639603925953294473541174135259884570686302192650989118601406215289666086114123995847395601718347203088773072103742514514891614015766104763819079988924625936606742635564428146723743045476060061338035787732838786499963640672726268216212683076216182411786865517088067856825043887134858046565729695898946435372674930687935886841215694515918190601840818768165966796074470001194419331690064280347963499940781151067551380312976892197562370566355783555296452683185500536101266620858775170600878174998792102745753422016043233731155374760003760672989476056115293158705190102408196942260225674212408579293850875095199098105126994288578927538448429448139903400459465085342108931135134457981404582994737259704200681010263838966924640412721827724769011473438920358420388991003573358695080860492231709151573081325645087196314437553883305339663645571498324240287528705777631090546389881110488671858626369826781911484805827153480505717758731779805830475206040504078627766144283400010657394956125624451833028751741564698546455106554758848403817435460685819331368070030010569043558615599366358747668134304693011080129427545431481625115635457540284629571251977783747290685890675751717531778061904855759571852933416023496929729052240714961059364669590054192776958703864550852289417108469578584605066914810693863460386570855180732209175033776554211957751244118148002117642867662783571243916679503036210835835434339620476258151885537189979921247664248367067597294596671165068056791591243228696241646483612868995654147261641776334381724511884534705535940211217431011229203112479887778581987299650006116690076658448702073011297320129931219182249950920799306208929416565297595451316184574619797965462190788700298018306064483923763634131807643691490335667462387099156427924470499630003854877763551470273351711788930573098491743845433404850697951726675942649324080168105468998097982887042432993869240948243397856302580445983967430385821422950237445511472078602165472206231603875979275766064353834125579945134011078564137813224072195246740306767276281723999303095567461363754424619440307688754580314049423283581124793150820698948944836779594808987173968209470023669952867556217664331453212053821845975101723426313873974674264128381239566302129862524262415057420039117578585541152217509893622157735682706255092162528176115341307196515419474608630163903552027159552966368068979530658630669092389115279447558179981917478258558125937375632616481158973019698311660668115107278834122609826509847716528231239637626665139171189898204163491068022578611641781805554346422929359681807314207684438338001246557746284938208274686807745420123872971976683096456377332588050859719874844334376389729185384810398971729628681011524565043269600330937365292328277754668178322428695734736882413101777267994229667070947736642144008975416288700117909924868241847200676562867871211171714006718242978467363158788688986490836370271319064575093572516023741525488201371663228120665833087672993023731663850185965333367557690863697135740089853328399968441492119698999099376474317632887783785400992622505831744079014253232503602945847071482005511034651783905586969498729584125067932320928437792442407669935941912970324901536474841769371984884888425824385654024725015055466624419044823639543026546331835521455350856211921529052797251858478874819393828868205118203977978486421602040887056047238547095310722103866192337590821981575978524240974832255951784897991460261566597281738485908781128672550585118572822682964205130107086979797071230557931810083100254284064388025733273252112978333524144790658911143249716503095390124517423534446145670234298430203295297026547316729590344777552089250171257548218158412879205048056300273966630557270049663373950722514827184332514790889385985061535623750168856939261692040400218671591865950340036955874205588366387566963318717790000965461459837511007935906733150389451566580346874278144954870899054872777035187455919866360516553881819369995213012310598627492843850541427626908650469815022864530742341151060289401200888852406188836761727876428509649016599313170522695767573071200933751289356522767894003855750814447335140559086099432303668008454453470605532273870027190243396618589201534567183418151842261020162431936102475046575521375733809597109260538093354043324989390981761394733722132484847995749527340999102590550513839024331222604912260507095288971691127132215161644721655541154021824424475030738652090833816320234864647468417336787968597149993526885109444762460578510677159378222223059800588828440879939250308885518356485330464549354745304983408469725325908438205370824857772417237877393295089104100305412106072928364672406354879340926672671523580027112175119286086305825223931555590852771038324485353173053139171440914573168366613676503920173846813907530361475528457345017669038190410899081449395663237458362783002716902348802611719327721551811633467466978528864632356913523291530385775475759867522466423513080591065515983346615446016232016998679963780261155376386841875209968748721073943868165310134445516866840308164099131006233926606986436506525627053677068811101422713860337422108123575161048232269487273198841464566657360705772460220918112044685139542111019443823246033757785253299997402570732558055279455827553200759296003150120736766065104719466396128276761282885088232074570209202118061696989151938766222050973325717997080535131811557427122242095671105009521737163816844870802514609469347682686234343264627431217661471101942717220956365634089758973994895003826708940351470468138290915977041654781670418229210572610340858090243217375284172589307470728044462339084641415078345919101160717854944404515476983093376454170512914282546887684991185759943700554129299409162025326094980970921738150329391336112532168416799585827518040187893985134565128294532668141207191707694979477484344321690283884676019426932440196302330552674820936187370850357395553321014333903706808600163435971224960241917965775036759036007100253250876415828620988906487765227589423815531463799634361797967330681439554881532037182902857149722330627630921595445547522286309261474587436580878015472813355988278709317919739570026148576107103297201325149529478922473959887490031083400327648041537379091353491027902992861156903131609204194396140873546367062464055276453468728263543591236101064008671516675783738077936275087703313093182229251929454009570416933841670715842385364708528918462997378625080094322847959512135769342916259893241094663614291135991007995654011547633617179976151445605350468265219867909736734237398978907884048313074833709239258834545102489573149115174869716668117170704031134872684806098261145900016169905508982337931530387027941719370108718355369060801065641249256871397892653461798365723093191575169454459109933267028083509291521128843680563238681492553366931722001506753361302551075487075125897334932652975515997426835714497407202425110066354698184322660046004719923600182967432111167401621242498702663519364840739760224319833172798826891582336105951486693451190470806781414146963174385153142143536804852114605049628198057188222416738456770091759995639082553871513856490707685984064230973104807330721021540068632655982939695046771400594745815429745216686216937720025622051294412713559199932770696354276370284610227303819695478524961059540086283281927984840858687755407129161638370078388902146527618232713693383134457421128588296357773758454305190927195363237135867271772460250444475090474022070399167224529713537584244293073684649477010613543637314685082435096230841186512870233684547322585929640322194239094248682865723866563957550959282810855874870254212235903014589838456161042674624877344254812434553999018844933719213319806516250802272627028384068570583213324459163755710897072382577984696978182622379738096295927185616898258964042926212602452436262688201070171946065177094603906918314420677009854760952454279745560695053537853779794308191352899119497841062181851717959200433627152769152202070426861409416934624028000781846529583368505268102554372556796819402848810359853414631020895842162351967949832575000465610109582364937292064552295485632865593651444016874469408531023199850861514655639456107341407221909027058852631285585701432789202316285312290771704036563595194333922889857674142334855424106132449859927231884115518357153110572890410421419419014347390878834838185542622635047100666384672686481740329354662780516041639072238780514784109866831634627183225695127243695691298637705779185712543087544068865931176775062602472458680691898340142011645965943827431863147130083369876208034408574080219839596526950841933429748786503310773130690736620326505800678321020834549194792826964998491541435043158846108676195278630884467095043520007687746596737968827679097953866361115076724175644434168779142885770306345128435483147620924541057014467255471258188806031177163322525374281665956122355509832945490859056742180792451964892350137830161689904329760775773701088684182251759132587814549430256502849761972097644872160005755100122489399023560279204408004540970684213905611816152307792432651118762495598299577522064849835998455054755608524493086254038497487845083650042062019511554103329824435936231130852755736332674365924195446695733443522532614528438286806045794819278103042751259020047043184099309475790780058740658475592862912363810081144326845122885931621346696662204406329671015482156350104537515643806589632565322347340714436825073129546664832940020806641500399964806605823098134881060193412819250901665203506189691555000723808347036400363399770254941620562487172764253564655553056707245363222593556858922479589195736121516030401458075131127642600108208863803885501654463637958689928242498772005532838976212654655534300890943607896492629224155489036142542874514646986611547644272194238508005279557266417619639324112122348875631581548585180530964553879637752439858843097070890257559579215101952475493074683631614901234443863222542110927610094287618639919331407976716462324303343489108327119084570935888679230840905650352324051361222427581922299491715334057849999445221758800274820352302322283813730229703164163780238847041003525364541717922078238837941412168610057565019031642123214404614770615715873263519169772138372696674206612266019930444545172063939589372837106352624671545207300986374289622407155255744257874428904088324083838726642797131991404580735671713249214380848679563442456687186708194500756686376366495762582370533031558219368015526191005164010576812247157545714114533076469199624083913291480507846933878717393983806451348272564050653679370854989505525860990932259844367478194012167384618903968864585998090197108604425349456812884685706898988714458364217470603742592939313420294312458152418175183078307950070414634244172923680917037641903470964540939143857195375585915678100831542586153015319849515934988296148534991473656557393998820817514848005300412657144385900414097580076455990624357871350568895033513238208334383138028983778727771553821050081047574121345848907031158541012344936583122743269519461517650935363664215101082634655056573986451038511519416631490434046679734367415937250955352361338716328413708492107395474460763433658410925193915252561030463021922368466638851856012695758183009710111066486234327759030631383706394206730849733576439689434266986101762171769324301134438891749502026273391209469611961664108277582639064069427255643432913831566645859964895526206241466253448340293306074461365390792024578628917276736229578387243547371182089437675653027209540242707710724422633520089540276489413416172697632571110152924514541827649517811486647356743762701643151037133764390218537460572233893806854709862668328057388731187026826145358309033445753096954932644243902056963152216209338634072719369565228397224043323178860965058724913810006517250737935877631434811687448755512168333147322676177283385740651739106098705454018518836552348256116665210415398874851568069966121688856315292045478538564421715175467241043626857928381952894941549702908730506953416340752150145973795294251097577509210479408433923977584240157892129841639672914219939709822134585652487465477224488779849035919199107955307145909574097220880215782740558910344692928347014711092810511903938397337304741626235876438760716954520399951810698769321827711360158723121274449564554842147019342840618305649509105322674131812875124776999457113201024281536115037258213694939703090219602687114007610224601982319666686915793768008534413137210673496383666983691970318990020213950802245871831012917457492120866512540630742413484820665730657009284512310211660739739971893652789167454947900996081235936750561083408053777901850279896959054124228165507098225469468928682804565303854963881721905869341360022723670415167647457209974697385278001292747550460042359244553720382869416308838955657694075377191499012632441656624084306805179572325929083894391353202637169760414475192988882384406820426532357859155192261137423642705696513618933287503039535166566595740466305323041774670656659825895067018549851238427976581336746349516415194136182663044754957846844924483716412856440877751916422451857261207485721218574493199300361983805317696918923780857593900029613055236054395707162887432733024891307438659104376970250273254845762128645389842445576673309686358356147398762019069879483837089802269296705115662014021084735959912621333716658510756691819931647907688677695667896404686112082104424450536554967862438211588246425660561836012080546686037557496544887672044177575369411799018984659370301241640602313929548436366889770264354907938651172533965986488003645266700757969509161905454798505029419435570011535897841820671325464343927127854392768235161515518999750179962641455038442958960166930571619803418951853817525638148074711003349514719517888751044408793153651389738543372496653271334196759229461328990334029698367111590538964164131382145970747884421494479666347311761586186468085472043082309349612203571372515876105440569800903171603478342555078858014069643059925336846116656240052261088601786087572403570316054421720241784980755815597572270411675846811129899354926656372379001777791146008888211226598511171963389886872444323007592601561648962888688824140150420609824850770467229394631495926928851871677303767130793454291700635007381859532205116955423999583714766625499112192666069190579892910713310684149094272181021879586910477212269836469281467508466922075910064402671624439861366493644571630379170645118603885102294285162267384284368827369219995546476178475897613167771848858410360509686203859116733595724626830453006549941223474253086690428362159983475572040230198555382037595886894991277467702610127137703196457388479472461523102249344722223832333466048015984122304793947973614583474438236252405235650950834212953348460896586377518725284590221473584957123183972228661051386712321932053853915035565017048063596395282830389343910122942261510003984962523041783638567620610729714662935125562602417773778784688917685265985134188790341300631785128929557913883578947561411661067789819880322484444161947811270840398395467960231225909300244197850071637348857930274164506109846253774930385917469659939202535917279051764996429709020992260430156929565101038125398080827523120383392069877077663658360838752496522003296147095322934730258702572538134084158306343730177765576439124136264444219120087255780338577388453618143051090269366544709230068846326216727055552536911407215915448030091662479166677958589684415721037763595534238216234380990243990688152834844767637184337663576669343642908471011191689361402656123891382830609753293946337757555302004474293216993798531275786342479115986999128033191478178612534871043368333811676757332210579503806773121670020262596708523374857617602665996072291905015350943869485497206624051078942396628295887992661619876102626958171807695751654995657854061554211393099643525926896909933309908843094209373766593983611971009552890956406432970942986056938200624091597595574474778816483756687765083912438889267986131527812303997167715281058228295026760157526614396431731822825742163164693587701025253297621497215004601708322818793280416280302954681474105574266618720732031318417319870510027327569020714979113710413538965375555936718235727068149850750537085917672016489064800401257588642201662823918705671045269992019817268023222498867672127174828518958891190672448442154347346777563608292502602191326006331820612907964642183621140168365802875738063624112695918133592060821674202964878872642406533109547044721201792794079228285331206277588862570501767300921648679093200287219717593213761424238904069195159665959342747854193700556439888281901192592062540911631435467443910934744408210229527611352029553301693402064895819814020332369312914625637371202184576406251082617984428739091609227602498454547370026190128424295449756809185685691172661245344074648105605436535031864625662628475978393799094577631167228811468627176648573489212803083270425467268214772523257564949808287967410758482204898109013327478460004393242123549048508620223348761846049403986343306667455299396042010158568456738624900394892680304706538677762858497344324814190002754153112732776297008490410362804705015744674212371049484666175681817580829930795577744780222247417097120284576673781061367157455033819236160528546629985717125557783318605347122353534952732211550959405236475309189116652798305939709656185593116040909342573182666064799123712136288635642396377623208554722215840050596261586729809202519039580917164704958194488027305178842804376586145615650895306212477238884585812696266198124826752031776936581657067879902677375073519677815224780901067478937231318478300969197324517474098814570792767652577007191778667033262230445005976277219444296652587465206704901848987994523143026148118907749235179223989160088095308439722671366578432462612168149739932771077434704416157637439462902803588647563738216800908916280513409224767442882142884759090860034526738656116732034637243314035329156987149582418451285478544089623070219228131979628654647490463279049548666867678612733704777205190541277045412031763631581208531779335640672040884211446868476445489668314921457259521568916537328591497942632450593620327838894222959056142001283659289925568716275560846665526891822762109365220052057675401819512730684960512574095529935419972443779877320100762778058919730837201229641096253619336779106306141766919719615569853131661421484739037320325459734072504352298025241598332410203216092987612720356711494731470270013024973139993719387877033199762186635168686920630961621734855082127521049959587030825451973908258453100363150767898815764653803295467355320371435745164896587165681584417692004962379800986615534662601801711102581754825207529313454806008669670698241512792245397873970427702476204445500579324481388866794734228477843037777878029765923541096674668250963082817452591095352691863989518034922289959892073351963019548974498175736901806124392552791416889951992534089484932635770420354758235581317909928356207835935560845501057625014408242616165352795257089719522724531528734760581133346092164009478279374624506814944449537913083448566867773710924830410349289501563681124580176877272765969015514205594560754948949833994197418601311827009825400149643529754549841978377466953568588678683179162778569324731275646138627969508312245894698792500789056498646468643180431705086875263314992143046164555684505881016058089681188737892978980029856188262100920101914495026868450204515532477048696620872730584740214084650146475526629992689142727482071620370026679945064923340427220069839295965267147008464974249274092298070120413343590009826939191094861373580549006640486308913795623510260000332199383636420171123899631969379296336501185604606252483980487852263689065133231790982317936532108661330549994033901087814502434354504709816157534864416234892332879568060939225869377874935274067495229235699209840473581257657148072827342431494322180045297357179530008195750728474206060807435683898266864503324555903070914565941590371999428488363378595888602716671170683124005835989714919634842234487900106655705754420281217920013477523709583423459798839693969382858825464838586031414085268443523848954855228760568412540005742194699944631566121141735083948687606479020310712209533351057494182904807916668692286661319257456876415615082970339347881729382023344217157039969825328100762636078259952739539938871774435721715019706553788783301479640559864307252170666978681419638319856150427777686396628890898601781437279912253018471789013300068063357157806678580584895145220325948717205655673664230995055035361678234858993421739040465042160735242761104352560085078128900758711929736951573540112978569873431923418666285781366870523104278991188186049335140898712442371867446377994176309757297736192356401275833836751819793682455132722548867467573434351882728164148178809806253171069719371107487011632360661213544449089304476549009700460702267445283557502044878927617389842557976852357028898707040148427813965603402455685243921792571840083864101660281861629345226045581836442352458660119541676767128817736934828310345748874408972692120052760898702836919027750177229801987380032611787646185167340432452918969729338962202261236240997506649152811745322209650189192792105708623947793293564149345075178585542708849260852764806269477021533035081013255047764102475712550414508176042801872651585080170527787509975515124032534818428384192329264876592537140577958163789229099304813547383114853334899135048972660825206837595190838512231611573994069078600891327271989159401857150582624919423527539279770568047269817761601899509218984649800858674073447416298410820539165793425964302227632070910096047162765643448774472903086824456273714066116126878393928439106933126524942787035898995996745305213572851511859933022838377868679151766754133037823948891912411738599537590349386769610333920786745891200937386198899638803120519100299421456847593196971687666896789247257604758309429678873058260855569537592534984948154333693104125807884825707391385210287676475955525789430915395654070483118062968389382020955871703093565658220909802795724785900433880667195365590420681194622197357704096903810261166426258430408900641264886579647032881210846808824260814802231727584385997419632260271662422362866173105711330737560247232928628513075445346431649355556977304132073926841788594106081753351004256859266079901527127709175520327046695169635693082174760838913434628558974480002032771166523136004305104466466421499120749769506688716450699399432470767221694888331739502973230919522589605385423540351344470875209262311419275449554501227698382711291635355687428528772452240832311540254435229368616694323451396541388946193702320883661750346880716436452007047197050703748535574431245366324260379603455647300598850467353500831221684701133414901514256113819513354816126171555676855424467871322470058015761257170699585829057557402080981767439781149894061319802267864300993858181737145537245675388974097248428408578340197408666522069514374411197379532498462022715896488801310539481234206605381142976320802555156441201397852405257992208067381367972506101477909314902648523438317555285014964511218366812837882555215657556146241280590613675825351835335945392483518104985928070615604465999487933756463034214429393315100411134370625543796161016348723918397944969785157902184145603202535574997524157858750126977489581861699458427791790542202908088302867819585192035795290714436697194709954782350960006325833522825013297132993766408789762140869884374401294744382450594543025441778318878431994242083746408439849751525994773600166322732598507648075424786275622784869737982562181683780933347555022421410113366687062589718525786343972607347644417063366656485368937978557945512021618602271355016299939615079967635090919283493719967500374955636978766140861578553974762049473449261526756328103807158070476464432183289904971294790786011870871132668440163912396373640224382293980558850856277884207443705261168094781893616201845448330850639368918643985249244815059882355481450153261092406591210860722761102201258588969057107753289775990753145192522285186900582128746547391637313708238222310938652616387761128411249061000930236385886070722538014623574947178762616347108870557770067725997208152681195255644947200055842505332137833442576708547906255998858874956074772582031914320771647176631113229037125537301638566536930468160780181914110836343844735905826659581796715593894552125801371660059760782324205827859313435869373358917843752895611985085028367215592432431502935000751902026572960371517276563696734157885027442244316283068493508159483611660307857498306508845415674287960471309181000579908173915575391800683259982443951292651418948485709681262256494891735932097568782962858489657892031801547022944335294647844946412784618571836184061393346117057563244796226266663781633199640914754263184608951069076345779010805345559961189419807105773421713553363251873013705128685348071982634991014811712970483478031604670238264918187762158079139037207072503940419876771822789483873276113193617169861724625552747447268595692168225045560380860447808913485994503246581152546602600905655670200051929849385940552054645859134792854525661052463711436544621329143189386569288804206925798246339328026464510742656520390570358565597288554499224638240517801394129716946762709670689598506604257860372412719824399803008356663999726680950129523019607465618112869802409232813728184767901332313553927635743380457180351806694648093145439826790501509790961889783709785614468048578967032671947635658100461784698765996763060646708445822734291864153782505567177946715479192366023080281860578217770840932552678919962613869221312467709668388975127151402544989283704759806967254873663478738911934806490199326041101490954321250614467612089628636639321258741516846763750293774073909598946684043633327029475855849497891392003248238090378394958348931221691154299305673690559083470264848596599076823193634591103851409833373347614204275414756238714673734279880443517657192768585800955849085804581619340885406263247703897447913919604016050579389623266573303877403903925118958365333289562279317958607083781587748255994018386186914473009536102286613991865894276559312168910305760888000655480942422497331243384791057907297600193128976488732121324792482288759076395157926540900532635617159063764997556981630515355422686240334984161942548367644312624515646161252106491575934421016723392628299231505009894623387478304194822479637592087022037312888769350338078053442324057112012226092299743320730754639160345007211758702888003123347500234763294227133145236269447941321297057257166028782919700860245670742232095429833299431313080001427971159967061670974581455997537246771025698962439988702271011381749078856867083101861200023610606916903089319955009116777952606613867764045669620745630571467481617633839477743338598765982213339216746933595027664963826266000550299660243710911037149561189440901945175256424391151296228194021846489886613366788896537867485514089597890688492719196261879005270079818708235753149984374337016858529340428179373880645316215298653463178193256028176989120855707925023994128914460087001732944904629278685461426916243538894585214477872823285924036264309506368812151069702647469148052511684094674488852198864061755910545964052490363225674874311744212540723120302329801145584358605891165045038625966667145445997012843337804029429782507536772859708125633483938318047595579704746202176294638263066185373163997783978391222924338020325550017247456396441920134560562728989691437507437461069564794216472614238205347597388620115145141945447422068622904124105134413924558910478053589570561951047110215556452135713447050145262630071804970984556908763881116823358196674141177851453842201163528879310482037410572149524024531609276597440281928673481668959510313625654514525997788004617813317988458874417459143489506817515510295908855575733547165483097205974702031016548317729845416838776123223022791028296549454692031785479449293243988746242918221739559696389644022950216510066362412891149729455956015697149530057851619267667334896390222395310002144121524698571499127063062691013083229283359571254306674340901124114649350986242655206234804108379044614478780368051522352733987272245999543315654340064315551806219110336712994601982240853914856180221362638909545281485162313168779779374632036138744381211884552753785332166476633866888081462978241522738872745343590570251613505566717996549586529024111439089329908597635300904384078140927637882562653227122261430730481795567092816494819753203727854339067622124555239126328394911137660803956793776792016980829571371528427723534135265343554556837791085954272172961805596216537281359421429056243309468057667075145470669265144793106996909795085201671444299538166792719848844227182775743898892646679693005397671305947801405225902419924634238065027726972951230057971855198615717472212767810979523485170199918000910589758056947094000287939846354116222527400368386336504550557506614877563054753658316412003486340931872267066978274388074330288198732022865395568771817471235571590011108428901577988297558071387800122842267936373360053899240048407461853010328533959215212556572148371572723709846761039575551587930275856449088993297824720366473462579394204392898426365096315336066979624350821640124548504829137967774178344225830251057691036937383451044679278151504047418328890116054376435096500252687891177612357543341796722889802063660305001825332681086783910558081612441003846603518762657281203319676037717361939177241968455069091427945254585204855313357291414800365358250115403976441844840083035905084228510330293042153329173865455114033985368397703051270836493747979853199195373688101891366077014339710458228847509050939643627543411160632320139790017567113121818209244830652184297367120523936787226307544845271859339954396566915154432618794095896243475966654282604182399379516147020719224062309419317212086955577509628944537174475894708003224213454798413283005611375942864072094857056292696517387972691141919700114999738030085571208682819378573373467942927209362096658344710233713203478971455083570354186947304699770975676008396559623095016172794736444980017230042905834258211945591339219739838076800816831027934235378572861320338598985290377902829841199205083298813774550780130861172091839488571615165318813931590163841417674099797369594310170892908809306037533176132700046736276015856510789533356373611212299867112983689852899332362478121555911461902709163250719285887526091040038410808391466110353273111527373059951474063030303271326325819506810423727532798022714660595479913814894460796568667519594868761486822150957115383594521531821276715809930683960429876353241478092452219686465418258909796451059629237320151188940960873751331336877989559834150737233596420048773588606554999983619530963410889756137186090227270329639937951017715822686192907719860191313714899463707056057703744864896074429006243435003774656748208996295962839004274182049174284982991854566763950181213021555797512292368529476782088152879994747206589494815306555507154331559250366416180827094948779273468750823911739488548803805256328044091810095289718213593923129004077191256891609253209063836789046195392858540236954916243972862997287633276082064600093624197355763283085891702376927702516360647570628339604123948699553350218361454918166113855857179091984286975371282070678284789604869598289749418101356971977964586274304809249366346812740129571063019652581527456634506130192897888440355344280117665541093417717438350111736459649769973119058160632294744251108452156199278415366999172146680564981497238969986285720484702124836565459574583116644202336613652123037056045808485597280518257817919038010078701878531045850480314587008905012668631613275925451609216984204208112348438587879399650245023629280073070862371992203815829525495885011440714138574891705474999986293894771338132670820402622440402728709450947962249684050644118406882937310709046650353478811509946222574319501504945232491572201872063888899405728996533137507112033273675924650432005299571312356327127847163873732023396954288323086603270315902517947701711911340132141464156376612493149998866810437086335338810010343577897977738191385505512813890964904347211113523898997931990944141135393143018990520733921244221661654625309466009841072756758313743884130648035060329545131313392393662057544164500501724798464857412868045894500915714582765731498605482625144176960670345860281755094989746659289454049327009491546600153620839237513829587278009480249252045324917908910946440192928067304702394995634616150662973318807716988573513681136093292860934555692608290658858961130147935392179074009134177369509182746869112665043394936778553078625896350223431568075480183173830503236824645768892474486957102573502427364940155042898717133250617114885431258119038699053528501708307549217161428907479769169646943737319596082992647005232208916241619816667068098116900946957325274898593286767721081296549233694636796635215664982529996039523857538298003612860674753985103351158571424873105851456049243622146545843393934674292871137732776389770242101892332279069022065008849423848366673783478417210210369962322947946751603812691194273275549741072616805924419467731759430755768074964601774806473644770617611598447054347686508653251147099780763463806175927935338116046861222312638590156082498475399443465129286849863757892567612878304275132520550855746977296214945629085864788139197679614568013024413069603337804616138632852096007552801508044884494315320683365515552856573464547063664651989627778100655175800766665356347634783402862387707120008697415650836942138532342756115457191693770620760426110182525149754302557825824567040117131746522372866042712555274609081670896082131230805185751987430268058057264451043897458822177987332428652896301419197558750361241216828999821966501003382200290958578751852673636032117126320596723878281337437750830143405579935705444428031714710529942737941478158931637367104876074752557352387171227780596244178432113146263857624396374244981324208940958340199201113927013822771818376286633504860385404050989246314451696798298728684116563132258484839700526531738744683895594954655302852783164507900157052355707297124438707605150106351331054136329494177907825738472428544732500586714967443306290469547121524789150771204481788082707803076071719831921249939508860296615743187225081853937450762797132806000147535619125740448134598139574476374939505833243065255508815399285291744078576025166234383559249771793080693279829810802401177847286980632061552899669504460362813596171266630141038330552292554983321456766346962609418870933885738397424106520375310682945836834525306397080364538864731250834591414615538911419986864779116083049077484801704129934886422225014855521845879377345489526237311904338307103984059554839978800509459302680178959646434981011402674939566560343108621242952521661018614506815409478058394100996584635862465860739491043803976669289867792555696352764554987445681940661021927146959468070034901852277975981602450046839946329979225549268907422354356929479673829815870365378308097868042291709675255716689382509844492293019969735386366118766685997898434186689156108002011780727676257733282190568591206913426930522264361452428922481277201290882932926805320387088659924971871505841467788360410207949977717203133165957349314446088957684136514340628004556225808285889091869754345493298353160021921236317186929825751045334997373106129197074530642544849073799527954307636669434041558606878475536890332445559067944138772037823767077629630522459322888769364530620589284220524312072245275121856785606979753449820790412178318361858484015164353971738977125562563190185322571526964455547719754709542609711947047328605503780027613836528217022039457631505210015821370449796958638603705881276394640121685359372473819206216172378100438595407564936778887834416796101318404745267305069333134278778768297984127567489776217100770420260266100684533159756314418675620963828457634133760757987247344130227232644549755860772609094994874382859730686987096721385676630615875888766918324762331180034577530686042220732328848866679840143059339972188226136925433628753939686513070652488835200221509711820866162531544626093746891823325440186850237880473388275619090170489175242918928611769533019650113332349734676950097694787101338800090760195516205573792419859273458143117365660319148466026474577597796675816980967724275438538246979236979964143792636819459964069552588991710323831710535953887038451695493217724460546920474611942549446858632436814468953649103244148617011097683774246355830165644974558760026383148273019130223764675909167842344599864280866442536922574263474160399998107330183122767645368788976208282914327365742211926352301987081134947150482970586208630809741735199947974313320277645571131925810670189492327215401476894102009679488480623196559411189841098391598591709889156215987175840303022371551058616974849984192341929451596927036493899892966999542884837386705111723528929878489279231345768125081604905020054623028741453890596880395799077322547168790985805029917868110706837311344636873192908501439848709191586155707187015192976735671233005949667964293747577213170407822033988737765011333764703061371272703992997818555563800414357552103274906052609706137654063473610650129763484264001379399351178531616110983346112193492960804084898983700359443614717797212503573147041585343167985886650016300070035350303384899765464256137124040988890446411987059852003359469340886599741107703268936960885339924306472188134329204204441945934404265553868649009287815792970831706653829325335149089449740983973056276764621144333733421536954325188858827246424571594770215714226746208160824580124803882214305519037001152931832882694224630833987007814558044076885710410004634568131507750295262476302354148671463357989644862010267625436583689957643269105937664338856478232810928838649544262644180107090409160408714381270070802054841237219772440670531211420845604292032888007152043308797812189973425559719223181630673034000085136798083789150898348641757182127225934166222447530263688778000573001600047756302316612976245893510841376348492815433217233846855642057508953337290061322615505754638076346869748434757091377880432390102358023019104532596934014664109515583192993228038917502438474370606552795104588279202400577565634073478600042455909322852158458161728598028638904415716269862060835931071223862774891814283949700632000473076491932553668573004484864624106065101193884604006808015083374720787617527028312015636258511549784702265662627126612009843259830522576549542774074351507167177437419277769013564227846015750857564171161597694366996054555772493937312038912450296711144889243068615176796460090376402068419306657161963958283056935620093937725348488217076115752345479756665244917348432747751338411949083708928663611115651256806842826126327554664099866368145797596860016573866103997134937079191775420124554395531804364159121639874094470639517196321558025442454124820197066539630195000420703815204869068667532944089913828232524039959561357007363767712042252499155238236955875979262463446093780939904158748187306278408985455017288019581271309426429924008627564818660875076020159701809889999887039983960771784926556344536269452101559114850220349466847776964011126451867746454499369408374740594394270048007077705410652346712384626823384321791065563612115188362078033818988223384734756732647334443318227729488548122332123872822190413284911233791253089795978528120757323504034306431357113373598489867169282461236279396299559327019843452616935231325369139925525164208275711514925051633360699271406156513770309139203196674514706021694529266563020574409753322503438542120771337352240390163556944022263092028597686283536450496342670596247813069037683488484916556789964989812551142969292268065409583967408011879615885699514080154705638648782340737973710778843889402123118785069085587939814793981361396240666913680079232638406407951093772987891307068205831830710994378176951415803864816170888634581196310540265141026069999340523016988369740818280480915585599748778637087866052780911377008693645879975281850698323363899794732861120675977605673069016629036676956806320573594222821616200150637222654379022366585995183846320124751189567151315293708667000134281521094854412152559020876787238305398350581275978333570044103344940182352234007427267888533418291657256230510742625245227964370251966684642449795757189437040893804891964218359813049607102930368807871800202305361001117016169367810672619770364309201503341600751798309505339520409820157986868828524829285446517656011306008607390822992205462916115522863033817595091018407789172821291194057376610183368005937117045791828578146284042281128490460845310070559120822483291081163932363707809646950165465656227415924268431872531351967067748960889143724295944191075783613757457995121260528399314290998722118346419102343649655217028777462577555162957213263456316207664964465880263058309567924168269367584342404323064844839287666949415947902811004278657371186947109052342955891305381295863450897195874311527201706573684267061663844304671445381297367217415942312758986502128815699089569546344020372055745413750695102541107570175171421828353280926345513794987249749059453134340179373336375422176551634612203182756538362644184011245045705771440939464514680105788499104999644958483647730203655554368611699590704687571259157019694157999928151093390318567222451438766932309057319062796776332159764832550549524051213787725274891486180706122998024740003398470619753006059661174654278752706051431099163926246875990479281493805316955365349969829707852777479587430959254889957726736132468191247409488719416281476020463976449292262861548166926819131584994997189816229622045237611881391008660704796467518447292566123984811381962366626303294207810081589629810720372815182788311443989646526092490046785336253140748607995682526216684911519579431103116347461442147387364330138065301625855442459545518807462341663451460362401263987599976261737172803642516801027404167580060439977746611123955454778582360617747738597603017614369570600873802018861581225469876203736003865422796293935364152807779088823487650163260479441093413141878561607824830645715221612034020261838760094920531838098984575384555554658276866804213803460553081199345623948059453896419199191663217745731699703771280423477919644367010244840835290193996027167890441768583764198436160559783802201299846129929903047023817896180376266339053399516280221572256254846293501386292414586151561893748710952949315770958973508503154572460387239143895655308157534746622894553037030129045847416095615292948501261337187700451396377770293947298353791741909525793189403284820889461336581352071371446495857817149651192631447221613557934284322281385872635687819338783328572339811630247790708193984855575113464095737043148740660222081743953080812298632157580622845110617616141509281513056931479981893005868323852779622516819499216320905776640223897914001971374039261579901606935114864066576586970551738838927289322613069709962680282174353248720443391547178452888481530596673168798446265453097171818984486882963496387670865743759791527709582153642202692308904116171930333055750638263393455002153748647056109883825429518093001861222088822197565076833162435638738127332110290424517726374650925815569095246977995754013618004695020887043113851047086668101587545601683859381530137314684970813433096333865067124099687670853578145943425715307338476943418915916113200425027203448733333455637165080676748945463231191227383346163359460681459923727755087584076456053133150008749512134621016795138737708393133032527558360675025883132035724384505192998628208389083833930060657752375502380806199455421353911596113682499807867402053028469319209555512186068089041869314200365098566762878444905258043348368729428416614461770215892732584087244595618804963083382485303991877652116796613082529800866700830170276223380883519145808949027698881083990280009903755730571004030385054033244435252023602169613165638796608020421878461860478495424303624047858438856025594842486933341301581644665383142058880044751455064881111457949502247834093742174538223657019480263355338353570183824206551575519219699879509793982079877622781865421600878640771226063708591573481848745396684622572255977189752697350301628164450725232043823433999111154497769253097712321163015904214520313997038700877343250362782748142549371021412050910751410704151605585854851340205328787528425750826181344638287958135850999929589897185150271652232123468151265451608562728182249066207011148371146598638322579330155046713250264459194055675980594212879547060353708948760751878738802610290795062071465941337988856830341714616237325898407341808601892472160659232052636308411657929379115446114668351476473991881726563404259064985214225926765567393473863991353016387935268754583085470537097932038328600817848402160726094041072618506144328808979813317447288066730613744397424501196320169305841529885352234412619158818799165231443792778627122497381904074803326433773087359976109300585534203914538843462723423510115240706942091119610200515516744068997548569706437700061726983821887540676302720769870976093786239418614886085836552388510425103238327869312323492367359492361488968630992112251458642680330413420363417363755830110160329595599851639682812279511008850937556187934188087334406574793001563123843021252871108130038411111473690092265475638844874429811147800595343775951780744467917928770105957127630404528364351525295627467644692867046928862127184223043228412454286656408285226235886280845604606587411958690488631691239901051376449305022393842982665651860952249511199206854000822435044026111236116201863016251720196204461715761828319608958958912514820860205364154671054053577119102034840283725035357889349698619010086215724736152607216687427111287785495191357881183420739668246453115173331045401655161257364240355505296652420100911466189721870501034502144742446162731956878794518705116226369930281011829145945966605389803879049991193953415501151158020428405029404526221082683642938003555628210205960018035104814280023083057465795909060345121269569533457459506508087368952483920287004157838183138724522671955774537241205278205971908271600854184553565928298504010274605158202753182197302118322662422444512908275754963326263615449768937815528925161115099635451336302824644990424411646744996735434608455501757036878038039499179983453855410356330578445508168153100182300393303566980772944249139118494411496864926689787495475543908613185014026138143241483866566855223310167957915184942764937488024097195033831879723374551559745946030640845373347626934094501843036537236830860216324275440212800079502753580238112723052959038759497838812625317202412733885134196016869480046146776581054161112792466626916305028844661908197773929613811716901653015286994706710669699098592673797955610615433940102260710165492330822531453517773488036761313758797653067471164736997677575530193001674318068727664884906130087982174839715282014248223310985972880777326135945921228340130780768717786335769366867948250464984720904208176900486539714114600587423093003931005461719562789277335453224982179707628190256557963537762220691058382415962352938155462107258438322588785734005632421613377438992559350375787524776635641801102673632447787914851160206687971573794987919421152860591468934169797563180309035749180397987282544392851357941505616858826152354797009583993147741461957707752438917431767031978905738263654193280188655206074108664592642604478405406465434741007127440564126438774212878432231470845025575679039268442393521884713990742488057158326308703858529800549302760003590816904080690749037655993171485457752615712113689541322627414666790103033656232456511761964845334656255018694105353096149421707104843463598560521432249245918553736960271296558060247927521591710842140893575270352915079807760827286602287084535150068885391329186139113848838061109211340102941313782316738534086010651586899071936696664340125685898343543563004626289134250374252316388712227856438379132642085974925270991142488099659996469759218980709495853347592849734842620976906191340434653835329133897798851267640887921787879267609335096976198569059234626795377604540917273165020878189562053277872598057997865635007419226281671563897218367150080220715931562360304331321070163218067880749109388912335091091691667660221112790435061101841168940878549679106716055295928799150138460766553450495903474384228464944433343514530853593917721599619929534997237900631851264794594327324506722099942268280702985666524822718197699590587037681135858001215358110066636044766616750124603255669709946568053498651154479250715669521367793037027712234838853862704121600851939491396444346539954428889117641625780526011493944849222548721500296195813801832849172796810658569660911703828935355154099565105959460496569405670544887278198792169275252490826415527355160296218445100494879178573703727029654494802828169399240802183329855801009218149659992487384203927410355222209471194262718225577408900254230549054750018228650412225410267244055980015228430506274271131083111869987585111459104995516371717456202556773511409009418889222900939635235513824717417662898404253922020531575014285352392841180242413328961305891944736544210672305986526960854416067108427410583953177211481662647781827064574609147549127332645171350990076870412842382095941431684558440818363395552805161657067879747775147221686962468825059734966786031765078671362524589393192230194914113014259208248194474758214744181652461249225697340380891718508571014556731282808370610502865774964673142740131853518516144009637147133196398988006658657605730606329807782078491115723109156684009191451130503279421631609169078409059249880156180701390902974230141278806624597736850600590070148701726446844918968287649354969956759827895309840599176684744429271437307508110170352697471078610033038907077090688064972066658316803698907315671289318343393585822302427164180940187746186806935854044436727943601099046158379502811750194638380474675831481519072513033297363421758542298568395446151615739102710337025241442339047523736249610429890895193968837716726451474530522915398944430290124313598364797560869280903499726387264409914293467906486640296666548779296957119668039736884724514422854763745871109858575279745296512513233862775254869464801707289195079820474872853165561958180680986155555953965711661514647778131486986969141026926234678953527621787066433971339719944684003594308071247646295345307008261659759518564059781509765836865879561474179756517941363896451336960428055201353461785078640987646453338124093316963080437983752179148817675890364005890099215456656752895227050045837023950887065091595067814440121637994819712080654301890646486735455452766556074188366165796588692303586491852338155287694048791881001369889566218373933755343520102858772532058393069528405101549063285893193155223213698688001742843730675348134702075006059327729834283372898107217683088845463250805078718204360284832013843860525554555784990566779310583443885979408863016512396862455007932221768110297894115102226056243060437662768623076067777272817902640691166932981758012171466292980588046690378136645168380648280136950107031779295057652321448827496821309376581893008307167637043697998379064546456905373691115928495992775099555253706817453908364444725170229567898279303187952281260948355983574835786885766397659572336211678600067719856303906570988211830184766887961111058526413634162587398509477248774369004153500416126319350466063168593779193541638676597101830079256977357201000232134972342239219003707377647811608902515723296073443269225296656744438256938891039815208644129204588219506289245985409420558576308347288658671792950231937108582785742298509379986798803497542547776526217297184506152657609039728486452366153035642990577917526786797613863299769481346240783468383945567792758017541559315140919908379093184474120331723259006188613004497991248404374649360990010384388287728637348967780890433392787920670953992602253430533640088322914615034430950206394352640341110515598364662431159185122260194135595555038696253363964400509074839183814258141128642774696761442396938541066902050653432941525222741204549012846455580089455911662993936625994941463249554158253863498641598230031302819455067034220388620775949013272665555883073883311808522321006999233507988645503547003960463582880824981283112326929362176277729421225182835968640297087557605827829793502358993361934702481563009787234198171490345128459732726577078029363284586446158823543597442475095930512451269324092524073032720593354687783639091206022592055882969760549092965277405247609506296770541286222266830614618016517745509051407539087830840574859831631240514258845605634108798321166019991078724591473290914494206512657739299481993068884893892255210753601798162988543887938880312501955308348307913032794901246126482677051066859467912374185348981032208370756294343296990800359558631835475901357955380128555449241459910920896861286942711244912492130700119602551172443168743076600490307457115477161295692316038250938245486401673899862908442935600997080379706644538342735189144244505149427073832798380304070151483975298423242352012263348348650711701474210554238542007960346411930657709144897188973172420970501078428930091988513036905096327111485135856942789324136952884880490281530477647753295204153131602102709032866678127572545269651671796510174400850414085742478698861728332466444878091519092612875525229476412223470957158866612271144485868426819569710837498386665162321497085417347575675066078220403271919909413862441153777500161924224732591764238526537980192641802885401991695680988884156920282037296999138035146855957099611320160493066157833555150513858773166117505945103335501271973422096118202169459123264662226343753602956831605463763868822735837859260808965275405044498726678725126429916156998635734493725952660704417763331821666702776780845349618356810257044164584343983899032025115682044667169852182560849300563642482311435627097137825216578592847260454051898579863537947267260600813562082636145538661183924184409416037075362262714245412625632812531891255694451782782907591989597239964469793604777503271976762389986099286793633649812271604659826187657180306499486462838394280829978026022967079158693485393761436419975022551996437961630824123097193317363264247512925070514206227196517425052293886079409122976553356415396126514597910235287401618436800262635378686504277014176396403446491563675690471778393857552426943762723215418882286027980177712668860980779330915442088935969136149708581523841636420737305952416585319377550663832132907850712756071046387751052492099520507258725179866855100348815102202877183922775175103369982210630047979978066143690319215651836896722017208735693408146625708035641183916529028442613078636881330334060869436361686392896669850577559804394087084549265158035382079516034283099597584722280619062483460319138120431532298487473375733415142392406616094742812965220736236121469081378482873186865206582450392150371760912322107310859386689431421326687912516951168936497449227096837650578039242974025924883694612824046947710389460722887927329315701186172459519461883668620802151199366988944307405362313470387090978209850211688560672633752236961397202825219367475118441471163902797509033412638237512300465356921768907436971687379438497898774288260504570014038892352927597917028784908771122458910313974371795332126839930360817678953389886435485043994300543142721432461370933544123285527057967208149048079546322395540136196855248124157700876414080917915194221681518909298827883659369984353614905847220561596692013084943536446953558024872881452031881029356299536172057237115236301060980671521985657483563079621499785178404407665987356421111678176458272024864201417333853317276145164777480008217193228960146686930805677045378963557575571598597615367164684074441195943021834643923584977623520153788699211549029843021085972395429419859592667831001176594279132185106944926361869613129689724011537755455497042000520948680650115475155063393195569510681853968924533427034464552642240753204943003511495653569915877537645762770530259595486951275297095817919424497933899972808022799096388566812395723890507743988159721043971381619744328374905834159003412837490199104062544280232263414062741173473817086720398800689192811423987089826129340745293423964139652591260716337490972607289080186032879314825635028394919403521221882420496113367065338658057564875595909000497229075717498475168630280998360224944731796367887807060237533222792220462612304599987241707660316466576246421068774233703002105666448909096616543338981352693260323413012998014714256035342806967517830502681742923860041540400986395889882733372442553744202582783964816793953090273377486167195936660818774021956997474153536993996871740674889039655726308936867332895443381020797084847155142653318234609649653477105200014623877605251439314513900276481264017767994719996281618223250255790000659252315648229572276007714923086363349394995512068461458453285054055853829490860119300747110050860302137592468523907794384851066220495746144114307150818320120356239177114407986355381146591085809357832790842067198934661146209997348549999746161791605940717620233677587335856340593604063714513762956377647427490432324475042184544980038538238360796896313561429951572144763250145298446728134492253934728056335204362231246397598428062609719408716242546175436787424197377567016480605749296196687327944555889598372478695689732495841551529663327222223622695905707941025230310450542742830991540423098345067801015108801332600039445803293303898759164166587499402613897643054681424969836717385566783467238186628799330654502339520730148730100524091533244509642463797399277980641109101150614319610403693336407097940529865124606803686786016045446202109208799364815836360591652674897315143291809135169467531769158310344871262377890574529775758130478689921161213000794706807950702060870127270675411396302437348386924793360412482508227975081495017399148983877290156837453655595161264517512749504511526441042876812127565927361436078782652527616238363487991117123757706814763350721199397572684636691527941322400153641465876530124445497008950312780305401862991617140862006916587184108318235475040380259885157266048124963453238829185510407362955470014648054976985384604364539010385558028874725662339393252045063856549008568749988033440441516527185548805164783306298085610160677746972129036093806418271320220850434375326686402270811841121627831643630899182620045480842654911292399127274804508012364299337363983285604778286280327003350867705466455852081907490811645626172322784825448581953828135038606763262267902743536699629776777789965945077913873457998334559829690803674444537767429798477903589644349999361862940950710072292773578468708387946433297935154232289388564301923583922998187131429848919373075919659512844931323845944630625739987781818949031799622546151969571524738036280359526711256122514680267534916474554170684665905276014320489160375161794904434194885481030239153954097871017895085529204691059476299807710714549615089334358567971320804207521555887978175988233648966886203295570554551358671820851721281626259637479722173283780043766556217965794884293753086458953313983506675360918763581531968120935415717529921924571325753270789797549676576399508624549810099424414157231067448115357048684844285640550672120076929773144963417713899712156527903698875804603041329937184746879156726429036275576311395127573817676931184394931410767928243018132336353386558891665389096472332369882660754824791731442252314405846604762342145156460102822802242144028913108205303773601252254999450505146280866234354941528807477118114507055635275001156181279391775829843833291420185204538010916234127673812811713400966223451130087566667376861935763788038581742309985700287188796138208417480513280122262231577087478861203623976420831731367895862785693946090604259527222799174710642744782649567366196905657497594918470162296834779714345208943810888974545783140623303178666330191533281273857467837940381282559489352144784252082825818813284465565868104584822016760655119174059887691020927155866403444582374412359264625797550465740233128474554985368643288733866241378640264799611393778352096797722917216678272150776592567190819116665687681679619306227563929709778010161360232835581522303081085911672266720001906446330220578176660312374009786318822279054832516004569532541523402500613795539782301717475026671812128139757281371665650559087644624615665479015756475295746356935790583484654800921563122576665089525140153487867037408627111131178663933543710162110187379515039102341211570247831638815502452028828268243293276380568035381397851857206037120535633166030200647165505977586469388704295814009249474122201343541935759316481642427904557995860871452267639697580621956113287458879397047365284972149217228444633781577329336203163779040117477355651167356040206638809892395816801562371013172162816634698458224498031546920050954909541765575457036488807794109170453858210990857355883787165946062929318230761630818783454194849315801464732888478076930530456787439265915322821971283217618054365336107356610186376042615400250253474809996446360241832551415205876204650365959943606657266907193380585393301392143079566674644849410206556855300597861025266460537611408359964939788681825726986508123546840306124028038992762759333185627631917204777276422200737923144520849835981884525035810607730649686345287804807630787232456373666622649459362401378410827315818023240630284288985812168559608694880492773076490368050827596152453082983888146158641772485528338024952731128409647100103900187184558282775473019903058692165674946702902612025292246456915761610082436411831115203823359230825936987282072621335957960265433878393940700140087521842200159017626096043104508370442779146493792292938567472613620150100549216681759929215718793823626706725499300261654090193905283509990930035383353414809228905654190820288032226418935556180455847096956307487680856619292053361937687497937221162632768736910294697331414664066760074993719989087473023126372541190369415436150794290311110700256150774203224613694258930777566696859445103931452244793500650073588654760808816774374139099020145081146437398562703379047118502655446521914638031124120140040371842284890426404349925191078628974085270052321425166796734732997062520081303339734441652664846349247160374713250837240541351716825000370724335288307916895715609194032152801603221768157180814345989937654573542528288657896339977572807656902598789685640482443116025014433651968321973111140773165528670771351050535806926455758199195992263687258366940501275758129296292134630579565822698378852807527310881839782690498413508040159769798229254700146349229748485356598206537844419037834175403284512655548594527173560360831397124679923158094886224382257238861307062486019294367046372765068855798326405479116814033121317920796843716018953211527176023036789028889814652159353532320678900778875825734746529051178525772865082837154744076338732376897963716701638832747550840704818448335503785045546188492517934438960634010620946226934648614573639796442766941249446201662793128612681369157224616783088822249749582892528847281483258024553665963983872591989761718904437143087602184289670118034546805729319723657849293172620471629319699494361255290325503496532599461335849053710222039462552875464007276161070430866319232538111039393499399560207534128744685528607785795003404029763199404341030770496050379763108386154584016929992401766288321747777807682878873527996755535351459184150101788418235218185446518624764030103180240477410962225120436387093867166873292162232800699434231543983769630957540919816050306615266800975267353197894772328510704698345198855152334500500530730214055284351355680975210810710334284981827536600153566175233470150494057646448422529556854076829302631945981046434484812733165639279026345317385605714281211200182474849343787345888519981625642452606763933408153947043287361323638053646630596354803836470996136483457140132163661114154860348485661912827262848370629681662990938614913371372281249751463533874536117571256121610624355026290069785103565988726259207616627537535145089622661786466283800822077820008662875897022997359066973838874641684591435094368089435018504509412927899279153216349326713481706217482811661731297704604127624694188307887643010449769556894300798621398368894450027218171914022521931092455740904913566788426359590138718074245385195129035885967383741111374422812890764278169573872982342084326289076373245666562864798342458262909065721754876990854096687615480415183541471321032090271062527297994685448385071499761886773850958522094203423189015302470801626233210892700727359497971076511633966376152160537815451826397867758486856549975027723037693995867557502230465190169183569725220732190137469924114719852093718479706551083163016129994153404677480820372812774489949820376905241536438782514564204089435713355715710568172306801728073279404170076716443242620537616580120453277174761167641592342524101002985085562236496267930183679515061139630423114032211563504929790517789276549036542308452052418228957185772564567962988122442967333048527091470181232196526211234968283828593565956469483284748770804489853731247408706399201451586574185636984892432978994279458968815595690303967346581698469606533344323425347659577678853214464249656392404322819266626954733195424102600751294601380819053401479057163095249433322954688559129269808574725681518443712849044359400618386547998950914775528561507180812470140208423948651640264705377750109464004401799443429231228578582405099458643214909359866434574037680475305945130092065274670938920565027239836825976577794775184904265939026162248114032918418327451685444210792402116511353462365545097047468845616766253737905195038495441057760817000576145273282660089929212189880230415728158585452591096092789324349373116541471371978677503466288325585298975722606304332111474354430934023666014804668554961456809393133070702546395774422459451739000403766352534505190435727202690542998418581993446505974987302431907183555072247539062255102496606551767804271491980819190686245175863912907237466536343793885159314483170463947820427568390688743534040627500954104233320503260484151463789793848030751156440860210201189970365380033972064028509499465352071252404641470747637376532943901221848937777394708187003354752808181231132452503654652092622310599134299021361986729275730136649242094881589287370635338661743965908303088083595047983592902040451248289095000766919295474857831335958129715252118529790240079618622592542045443694248763440623964448857857938288601247082369643746003322018877793217474415006525009273224904380719661278918420521757926100629780442901098724089765531725463091474888983730874449826401526384305014676338654255433400930987517083195471762771770560233695315560246339988261595106867246622574484620602889857258554262186510027692484051081927115962021306730484574273502197032073075184240809879838579483351682754618501776031432551980867167734479881268306832438240337895964703161117572791418873393698152977237929455176251191136520034121916495048951219263463638231433870960340644155162401143258021634830696188394311043893126456110505585337077853568620285677195114748465453664346533964995715953415421741427554141310351906573318589933725694047010595283649320699472314866561475932828980306212342054142906972585253055087161426228151480037444394574523301082104678190504651117655166857021615026206040386685268024397573419663330859599430009749180007689501604728522767913972244765281428421366384520232355968321785238105066078008541818549494235585839516442790151177787386557853714955050961226254810700560296127424488678199103703588839281701664842298522233935594348831879232872943701668658495621647034495866827625849736902652526792229880127455942231963265832578093409888907656343206615558732668102703389913247495522386144970546090763132013205354326805489383324877563297859496133117048634499032695752193196508747830126779243135353443721313011115072744800704888453844581396990914356484461739543159470886745517039343901500646520585622841524507824382473088047375506918169862102039052214859590064968844965025239109269586832492183975823004655228363779299847526619102073868983869206657316783030317569677491307493282297933280612402574681008901856309794036342406302349504726303052582568723428663559019762036238841479574386770335913318515259535242129825582752098728452696931997456857597728628549112829185778283183692876984171615595376778505681429989841897214191265231685771011088501080703279400088990443576524333673316765932953947549993691234961431138145357419916383946965264368379379147654155057980647106739548371360401162122413055545619963083622221252436926340698835469647926631404889954526480153011840060359908457616936304427991040581975465780817301839790769434054138974553961024700854661982388199356201900596321478612947953886745605679940890009064197109790653550500653827330404454543233987687970940666648550199762568326514954393861035625113325928824173869881660414737934438800309827417413933027952278701247921850127088687417730311190552770705953288448572914062485203919959488493142297857520692209367697933980645124600126402817493408520820492378431846014855059890083868114438023868796379924423492784505861956269881382358643332756637912364230183995733639015848910539543567043250970372202856580177810181549509796377912751649725996364604660143312338418962624736172591336197100898569154676179798644990445053742265651442986375079456353305967598991369148022932746674085258777034192633862038334036840705090950684514972785743538746721109466279276480889687382055737569685262041527441623531219985641566546125771285185851904382455016145114475782030729910097523428103347197774241525500146637173836704355841792097013985367992548357048243653741943192456430159924718046423889891921130637645341416866698430275509394214933410367876577556999233930465142677754229388570005181306215880864575470347249277403817195853722448288818715185944606350481557858901589813784972054490781653286795303775211455790825818259762932412448731681607254871874494928003968871398281218106619860504721024910172721886605253698653189178270504928646997053943129809835163881681927505719122997811097220612332613173124590218695474716356763666369913416007095968942932859713669645498051401485395236111802399024601961166749776832194678841056425976626061225540537637179026576004087506753942511974562891277040305631505907795742594643785290932095688291560728070444194686319416105423993091634071244860769538815072168016995306113518115330663523990197653881881800704233670412298842922539463099873264547222400681562971930872428181759503572990541508804138779295266816457925368045247293345667996079860065488767862095636825238521016190115998351687786517197802145802765577051301437457688741723259993321115803526287969719872188647838731594844377892891784315125067484261978325805325831399172348284313304655946652864053106560584015555049517441440497384318570379402866905707825462136690165813436871823538068596713605627707206707032892244570862370822702936782424615714203513399666468028661138110816168816264700574025086228322862973477436020849462624591828989083289325085626708455951754310832457318120068722639365774492967358263814918016307334722648708814843533797128453341003260686388402095630300611043476765815029370872158047451286463331623673440543709294890989521865315447943719802626308975971521747399335507533007108145553271637089592173634619983479170666927839295281819549582056088414982757595665390811532141984877881254922345600129690319235782070241897550493832210583791808958274536006681646221814326974776311925264644285580825545737889237165776806143940711089915088604500906270499279768194987988612077683590979792562789858521551547816027169508447894924303485261602223047676100172863220716064899951361165391622063606879949854507872289161067468970720679642365234066978266067770468451251530173240747741702803282750243408226007130929101650728498224873962487778940027919897361494645277733554967486146574130991391578703788529108594328143203421725721194886917489161101253254903334957446777735722060862210630309624612969168282311593428623460359858336838394523849453592891583847945854694088564566760810206886183782243036158998567206233453204990546698277825726839748242403921384570672517072329895772413735659968775788866933082392511928437941465429916257029902533208820291698625674219720376503945299305195992006563935396923261200334589096885452035682807672723492781762705421115910678346137340110855333317257580182962775829306038544193924811889728188154575411912163625160767059693818664777709274789468017738878913554693723694357135520862510127597097531928944991617153852415924649920557773574495747258778810445557250964486074218075834478607089195556379487703928902944960657825018669771619441096373266189040044772465459306500113798790629975139602798198395907270843652817860312677192206588657778946671842270872302522154393621689716267459160157971479137125917277340914033769495306975542251745421325558552309623654083779298178330262789051386744931360638725808988540356759496089233893643850934761306983160463319752820359149013891833009598070573396181272039058490744864506086863368446591915186895897827282871353827353297405070706493076185470697186990035008573668973957820212571016206441110154249223338368089171449089589589792058297646061572145738990290903602734578172822709159842120248250690607445975363604004020872973541093752709621643514509131262468491228134645506408759997424670254309475668691215516399165943253572835982544394749473263793154121637463449959926880413827660626589932424194134474993925179508726838255596672670671670355799253991425623582366636193848444906138729849034028974109842697741226589274939299601618824886099331909860393242519614704053285805623465132199091256368682602843250074789265921570320316170058048478435426062573023855457424078167603069992087531584587255741347238455704764678968049915031800557918332576160842696352159213305814703543098792719827477406306555481360882130331367843431834689777077318230231363642486177334058123238989667511128635260527909846672951585273318189978248922713393348481849587557243434796309036422333136289906255635672196598428137482992120174475418129376209829905698044394550611382901732097901434671023864211110031094518409044303891801800445897237179213361399099127816329041149185948913921051674028449941493753324938179263221872495840010092721176871034565225038936411114732522328606314399564046048897552127852700337792377663002690460091304183575816302955863817372562292663857135212141579757108795258157683313626550100645616721563433860632578167484998266692210818415521069626699407746018215186730027259354904966235919160869597231295909953629609134311426009181789394830097344844613653044184275202967087107389078402556370750261814096985229408849173556006384113429801426692426012448418449430995436627687010442221653305547949698359861531861986873316905216173644586736367471717550305833401854074806397767400297313602227852439671394545411428992115412687440135358482094673306824147764529937223131328028307791948275959846505422520557882493728186520888041498081401584148345379014065913213720345090173727631336967861032005827222484052339073773167767552627004275411455869404900677779830060089045540904045153234157231665145301759550625303624477905703291955793937038447361374750954244632904363378046075481329878408505766629800126950035629676284176964466956211829916076290564175713370917514824457355839745390408332637919162542452901402730912050142694637182912670163364349545915618296538441715281170761301907982227174383572784700194914034462352621624706950250440493779567300585877935334473741636618218737763441596401018116630698029289205317454708494746861022311259534859937321763593152503805797223342308500553711527124247538181960665619992436759617715427346404557112522059160063348087222091000994690999651336461027843118792542000852274930006318739393976464306358613870425984441745451327166031330017323887974648285055915244941786600060744165656727552991712952043140733349429914327405669464222508223111351496400423900481793700871843704154606545116856074202805149205433356929061021986940297357318018211063351438607724543874096052318217674912433249369112949841727507245518859987889156859788892474636614242733562959688758472253404431884926247115458767912827373701962296412590272806889782907604729192678270170612592339388183421730947159490891167549855386270738847115488362424831081236165018729381154241861575140765103781827884132221595542640770451670023406604925185391300565103049456661110698703697210651860339805231211055718711692976184838122382314492043947026470991143849496766900171203138157147529598281601616415492589668237312732301185694402317400242594688504834142632314889652085540162149621487833389572775222090135933571693922017265859299430839271864495308228891145214723525908041272418811832285011677824826391882458444425011732925896889161679829214826479579335214557955754834746082477927301176024555919139654598547951053324814675088089021357967585265632219420964290199132041259785578847232817325072048135789952032585018631462253148274290632483237363365537876947739914820562882055590548533556320081269820899257380126516178547509123298290041444229437768043412752767079763615292330143767135400816126491058998027913026371789510135783670781466524590226233760636393315510785713863976064499695738533862415828528899734863326782799864453153556277596146751911787076690895823945279564277714904021456385333866688753598257776750209609816740794735191488316649856582394726954612205511097752329144880175061911737383281350277037569684430324513123044637624120649022790852033344335438766623307693860104951918249353879400486299441977367288363457008004907052129631981149841761830853557836535864848869587220718864997542893000119886831761870785613992642851265875796626776161763197438209599712074465122855647987211880688644829201792158498128282705268787872443403702544475653082052308087758495408683306756391998817516299820160174320684171940614971452066924349053648461794876198559459549179007586996535565299148164648100730733792531169712865660506448487788120850177118656335876256386240153177356839703709863429159996027105547877662489538882355844196622701851598155267326422107480031842086168521261165969701115719342584262408148873412310372173096451741874889762192364605187207433094954070682566013029323582452730289679447999417497864289725808719748535026359583634495053602082304841649256310287229520760533894448411171849047166868955671336419541184622838425695654341393349566003591601951474634689854406787583716370642999042161138683599056787856533487882634292753658454884823341827008840405212327961842020248354790634976885531620451092255757265012477741460092583955154476906151420109655116008340217381835973011868510139839523539922824356918164696862587200363299735090208720419342731766506213206206623420132914334242504168715404166421097782245687314625877415896418513953290879151823586201075097068978272087582791246098094470452326402524372182457637518703482091573752361531004265988250835391004631912635836966921152429094161981013867094064181028433879672961551638176051726228185007801628284373936032320442815387326396665277371163913913906869711661134132621360813593282324240222591059221607154045904153541517150677800573211895968094765506985649157343225387322376494658549377695420448372685340497305074212336967360074999682201823697949199788667618456504902216597689329705299508886055709444526694015506419017082790662190961471638535599667841522949315243224039646466163909628213000356605902836755826629248251262575032715426365751177050588363666501985789066531045613255431370852065715430881266160737392099877199350004803668665198374280708028613356107333482547586551036335362912157257080990529688407748789292549444386999303329574709156346173708842099242674067604624171552480224532058373923307957373682756104718465020506280120619687403688513057732219767148338642399918967710880308475690849024001525008121079692468504923158627071044992537933247766546476497199920543846176213083456338900572159372366478065024380494711826369314300683598794817549199341438588853066731239794003919242794944249992391056811099451548839048269355373441091114060052572028525928077901977063663948875350998069835893072136026294641134158749318386499510869977562040665135046683527262945873846558524787787514619092424636381250544823854673323603552773714106801965003683917387887340678964873189060989938258197100201670957990382325392103006546248412574939074489964240265207713796694671719971232282921356207316839459957963412218715237991788157178368801501668625639236708061821982320434067479690680798912620934407848440900428795680937760873328708881026270149838810306898362277665570087328258156833082006701750041832711187341821646346260532007549128436233314928571156259089581466442426587502367571161228000885912252975781352203555411644144125820520096857590270186710472069211978304174509536744766955609763722839027500088820435643132803167438502237039863735400911369281931914712673175656454317739028825607053430685025376394028297082472076362697365650103898950745276808954081504231339622096271552173764387936541749269754411227894563362748699512671143072766048654285125980791019849237901634872419676634784431058464882617159610390539905829458378671964611912075527985913609751105700292931337187596848129749456602299432927074991727833630591501162046596203457280795957119886844774750457935397402103521241698364073189116623688767646512569733032951226632377238734915600558822644212383293870688047479488423040479644359905654249009904468637295451639038872567503557921373050227194717629328018440940210333227629489510737378851659892607060900721780801928216244348216556781391375377262953369918575273868250032603551775610381334640309356731893750196847177912676568989905924186744870971188475373583413468381564428457444488990332716827633851846063026466635580829139329441595691891557070543113821121154488891444928617508333043184522975153975216997248861134590872846392470180433008859381367458518990750654960436849000421841215772793525771089448662678651523350141347106289162945073245887778782594740192896952247676314542517068619648482762670857845261585709208317322285372213128628986197818497121361115352489534706875248010379272781221205102775105574000338758169211178462101607497455418307491401410304262422755249244132311309905025452036200564060168824149062257358758174883656166155354777899587875439750779434903774776195678174246885179645576739648991873155045187738665760345632151641745845509702676600665384712388282380750224204468391720863888147032298884615436868979976820347505092218602580098276087377709560977513531858482704468079887646219465828911486423117731381315776506417914601674205267364502948371348587778598294779546585743393040170497525260902485009034767873318402417392778292751999361000013511332395027294244425753967107610856868893703517741816190392650385975095729759356977515730091068582446546367351958542436270631727505806085087178256229641350762792374154615201965817857365159086224480194121814686817175688024506698109212588156294898612945712965781844232735274986662268941216991358462848642143673743165244961211101742073543845033427285563181028199773618947036141431033425273631391099173309007034693757170078618112984564892210994809096188179427362926565934079196668406927526292196068665808160847859791710708361351623302787002836938371066397876251407880814360458471271883189110177499448353761444977152065577870992141859020544150807290779144224157809256346465451412441902453609158617944892886639704750260401485306850269750473758805444673909175301789185207753425190590763903023103998769261436661924551059970937862205552314433005962898375170681065275511165845753989351785089235577263518969632348885327286523604448240369730624532497896967469900211347212030207442199361545318273735845993179050361924068243463776392951100998758221293091905515412076707972118079937249971884010691274984263020288391892917710684227590364354673486413190552322765847944801835444911645793697827132389919538016952607415821698910773031467371189050089843638473715883816208182102343639078469186717594927030006913360508326011034716315752874900935888331144399026457815727736944961908146284754288124721888073255233113038035853560413792958043863781307620053486618422055363462745761999087561287022341731760015189923291309263042461852922902853035588001430424145185504855414400826552112658519836294963670918387935067387944006417229353852325417758725397222522218257281499786458804288604189295326321378111515265516094768857015001968664859339189233757664028031954479669921875535813816126318093535098777007203172383150059714310432967636774678291403757585513002183228832636543104754416744089476024805889232877693014226272887988735761198875103879667103351862130636910467267152040060212547760559078880229746465323010620026452214205885332950616808693658475841891292246029412649306050812063652896116315073284715463648015895706642656818195205585368187147063425210915351735770864870728601765364952091020832048250830199751457049223535893714340457795904189214163286181145129138093702094750243218467423093525790438013053242040548281931174540006121762078024662968805768014936861960139160263651081640343630293227634123992538249347336600568129558093328338159923327434295522845718597497211770253518608184382987863966256239998134880970768213773019879311016227527713636232897673078944523757301586476524043019515158905977359993366847284384397096430705948829963779222858378625033088680606127398585577228051532323342480479933941419470314555406093917199257043345709852939433055101221583656478398161314387967379972510422576781577689124063626038252718143894245594148193573598209420312816277747050990400334883349613321437607068042624772322505049272891123790603112859212083544147468201036385738946488253948309884145174985452342517468160635652200582503626556140570885460934272783271935280165801918793852281065968627177912254940322104781702230986710188365138422561615482388025890196391315823959692082291732557806283245382449461499935589379073552819935558203555628810051974513413367261770890580077833576280414242233033106083283402275259580157017034664698408124713220296460075713772433982606569785345786711191813848826375795634585575833937865085106123284680050324653079867820887558350673346606739046383585359877142378456241858691407315290407363114587435835670414806058202023902017288469302046575553473720990193340109555031350482792062564779868751371265843134867334798272861150047472220301614203072216755937038854537474546269673310950205776413667335712518300588784144166997004530654245227023115694449921646180874854117448860102446969561069807228957577400704177151030945202056994775567528800546611304102358763787555915951942603315330956296621307110489641771645144672766870997386349401037295816071661644211802761163620484310730940161657962489082916884868008827892917357927859192823677057321079922765449923821178864865570257790921676966161725865199520501624432898256275249056016923018269067027126505490052295530329705879301063346781036612462457693553461612603268062172885177500934237985259586570893344996684903226065950154905494286352042065001753423709023395845212401035597197692859273581727462044774611637887379888393107876740514578494488353710616692484673274154495642265230663140439487443565054976278736556932610492610564924590456261821949781418248257647745105751192000003051119946419100408912393532265172105140434933120485835961919482188970125732245130786619505446084476944479475633355402733190333605826880345428761509820062478636009608632495055020475141348028138873062186517027026480704873920380199934866569161087557267635688150258936704739558964486140311880284811617800972710255563774732393549873467530620175512920379884172420475809635034956631211757652364208457259838537593595490981585840236338429069357525733531619162989529789435912921280448701631426785894588488624351166208953088467290483356886151759711781147244423892210445153451435542231107289292991482536412385925865375059623933609950649607173815831181814610169974930172939253927971687716468689145819665004536033102730109360283130596218706227241287327447134869647007859013557139714824753307960981070860137131131852410308622476087854254744912110961553007946486114380570059097599341424335970917965869633399634848092594287723754391465926996318405129949287037910244147293727777919753532255886330674610964255339642783304604523387759720871997600937174434662939401044838920433393215403744187782857888669584950524084717715977448667870081850833358386371688144300950021289099196521772594200355080342676800415815307809839010559955479344348010521960453491502399603859874096495288189693921382639658540735915104392330308575946265252666410117886640866798500839281198689773043380730010586240929512770907698363068259499769996276128923935001708545063214653098158949553319795094351823093812900289321618448334634051520034333599899666306597188167232343866105006670440071075626147437256725328268304223378704648237984288145069839004291193469734314739949198487407822564848489071416604891061615529199601511137073437702325490360497435562828570127713037141686834194632463988195577444746836736067324777296154748838282603385481588886034690766243518834895464469244695330751611007922059194992448092639657793784284883614352877224822404417531783217000604385359106225573360793602604035087128512270223766067310157302271591654549302930318626955152421952573341407840529860850893846651393442139602466893866795229805709027339098171648141920732778495553036319310057084031337532773028000793445788080023975248416430045007691491305177229942572490928651603235726265726573418777937594125379423281298637545526557077044798981451740954797787514968962704449783283315876216220831153789902178657510131194556698999889669426675169778056760460998874072169941897189246326870844966616360670320331525056690578518827643265627402688296667469879096401861778108329408215433324093226541908044524085610966862341104597879193060525134863703081314854045408156267815170825435640523429279262306011270481217050256625083554871453565628174375374884545383690419265008881484499442801483964442822227712661818393593726085710209110919070738679050165630927091345439665985060494790064356500548982672395183882643844818579597572417478651308991456387358769305149687659168217732264676970201273970437598110825196792382563132479522461488435447518412158049393357448384840171119008680343143115921434256037831542556701567585204583638814330344771903487349452727080526775783337004503563657127469990454675149657941214493359125882475249493331570006431329185152720308245897303978641396135336653365415049299369442582063443223485557388218508889989495468611302945015316232621040209251493277589590854908424555938229549870612705890331200575442122359001807687321639228522978351088368822422520999200913440264528989991789013830192818796354254029680344742962507109317882662611427051830428142574310817450022599975628952384271767884547590780277437206600156903082098791054324880784371506311428478171087081362552514601304670752279396909136360929830848996681664603857013563439700043206716008504084845191385012875748206943166481402631550053369447320773938419792058691247199630879896692296288006154863594113236013822464189190387684891652699167960041948603254722251770592245053927646994246939995761218675477099477847768994455356161191597893941940723357165730417159443269075101754909212881774971943838094519794117686713440556645847481309005156908764989555589702647203363481794989676327227003979885037585764861864580087010515811111900604742254759155317132574397771033036061452953866537386456939813974750669201584576301097387423741753874825115003378157554187142328405745798000261986135790448903995686023385383008039697626697009542784881469866055356722552445168581078468766214888826835108228908582383468545747481190752162824174537473705446969554322409381401841355595874545365617331936957093031672970433470172293009975553540859495301986377066256509936673746375061358769660679862460382018350415901867897176844673576161422436396728802706584251546427549825182818495693741007007532370485011571082778611099108851866854234286987739814031674374812009836842395690830026615641240060638390609024289679907585430495722011826092293723675433841436983745095759488659856635816157200804487023082859014764997124160381880856481389672382619831687532062450126456961510604099498364803596859910511965415981625706073647035725973500234584563795212358169308118914738566919137179953535981014556000121859911166571184323864898883678174690843060596317903934921005501252962283727559721292037726827436247783102473630910300524699241562783454378389651439575915628733231135613016748263698423928321687016862312877952366595001053316375957056071436345109483443649760264544241535721869278442276810533291888801762404446797853050225487413266080893482977580456234742924314032163806428039174719689068126569384185298017396149919208555237077144490220587702404210977818446535939817168610472000030839968841131562137451154429371401932530888601759527334270676599230349884465200485749109931934335899342339248751519766492682338416969765822484414238754555394041061300474071302253455921143310730389906909481445355643345919568251708908414603908181951765873550428554979197160260641460127742915175261503385331449724362045301409901702047941301668465413762626183720450939014492390955297209509527428428840241474207327621077249047221070184513499841655210093178187122244698314771911373647192152791394207130189156014899922708701710822434726406183030646915130409477769744466933420004098707493281514149412826468520805175689747910823375321539579831074856674350241221641753785901566563393502225748682283344132531246041337119434329734517336318998169483085822725783439709172015605229390632495388100430739123347158510979140525313344802664341759338133573773682309956666588569916929894408953237894900043013707098292083169009581800107513728478873868949431334252075160123388325673177215627066826864258232394886998224782451815217116211696341408858601493949660931121011309902476052108404331536216549756584936676142868005051564419275713139987130376199693274117757405790704186547828256649206259045926818666384682478028384930902647045598491401618918683800671674366164835441615780622070934099977951633510315858861395698621258326079796941630893378364410535023245768145099843565978724980794957556739425370204229716576590563037776482665004308509290856827330654203411510464495297436661703234293186794789485498104607795333827485236111191662405795137319039423414951914709976372993020767568154755150637590569449280020610730374240652855800625616843484495769541582504566374722222563169017767501469004078300376493944397950620698848941602006080908667248846333307607460213898663080649688859926027838556627493532841714202934118917385503518825607278870137088265629373736314643234146556609026800819770448091645198621460017102079912106345008322619041842653642476167589613794331380880965100519115423991946309150290431958524538822673014603312605722941856266621555684555056392124628440655997116493230995244984262494822544760269235972572660651607691776412115126536624657188974982055196388216970557493845696755953531106136081386580014184808526400610663499120050391772457840534084704374562193490126074726386887135378744443932291260593963701040223919571779626331500642110975117383423948003941056436267183512828628533625540107189250336289003278415075057159009118963387388823843077683718334754865573849311806688121870789045521735484852219927352412339171986689056802989994818030640639738975714518932040836929236248032035541554384567828849159440133264821434920395917705317633459395409218406043086378094211355805699827414271019296803993543213593125230884328115226532645951886161957715675748274107939136687555220849676232033698099698480302684770604663253767969808179831565215312472567528149742498042652029294627204232754442406892845200224286667874945440805550867618608084830140222851616104221342098541113706207257180057080076757106789739273483831098939459268749563358679142263247874426630795813608428698998466602545256480850865893595971596617781752463610302395110473658794279623053232805092110091627524175253539602812436752377221963900242205083757785261165482351039613757202883667760221786135788089409424191391889162705997552467862046566667440531801855800833342255556222555480586671630720586163200533365887758887847289412781646665252157388713191087136646362045170795549503369516328829105242672803913296477518441702542931469507170329692028959934187798488178252956364895409009362641126156422418547126205989273845502720428377807274406501097248363675757115637537924032922326612211816653455613448049289058592909685575228849159458159518522430983744212189375999871874748699534476944599043007065318529131924163485069770012538653406351940027699136554301482883891348254116370806951604688169870253937217777700741100821022602710630669579469797658534494868967403967031516192355631449885864929595948946663630581069173493648015378603019434813767923500044514007792401800081942975706872327975091754865320181644516420107571611319914469252173067321769111877105351662423513744028086992670822242609464434445836241538349335192593336412968680036647980868516208790402338899102859637871397770710337671953700932552197217056159136754464394872905766891143438055134676044169161837536602169660151241275911892154852158945408910260548131713251177223549185583493050301987378454969885151305473448590310651846334193698711362414301501765939753886181781662054148228400418549959204397372132276551390363362190952229687832868121943260262617550817623035644070025670561289131776841459847271601923753590560362272889159420904392306641546548122813766364193806396333444395362755342042763505022142955809783922470814039544860947264719795392147528716756628428948944574149639786435563629214105114248616406691238577157604770801736106461372139748482896086044107609436207886883786735972972520257805348390155524434864872533004543224571417471335652166542967738124123908867459414030345518191349066258548615206491604688716085654229276883671332862565596039018710373688525567219922018032728005203282485002179810778001034935332225942873848746455755753518984655421133346105465042635479703027796823799769976369942375197494536474799429789049495076845465191983670958800401876791597406269332593735138639685962500113429744873261921715385122004824548927791032949440110808967809932403630253761396031259463851730489865071104385242896085018798916060419346850793468667613219846367044463885083703412454846914575523156599332879510437995108725204645697881748191131912765512441739728349135516128105852917574350995085637517879394479167100887765028804359571118994450974822005936052569580626169662090961171612858035115169715278457891094343491410351453143390426338295452969653239553065255413300015936087754440085478114593353499311873206518391857673290351964295216808581495378235200957239912019626906895718199661008190675575038023573997677450446470994751775960246437237849390925576223497233912262658351522715349149769556261371191392932442151094204741947119393370243742146833572831475779299943876973305546000687813258659219863214750503264375119865138803320251460539795395451105823295825248585251932291230311374312290722018942532017326116445672532221952311453162635659364390310176068055489539739814943561047108193067552909176047385745870739836813984965230634106192393176996900183409661075817101333879871849920000057039374698263621822209803682897035053278650728978277680001399803295779325547030678029648185558125936133344065619958230473666007030590715414008023041165287160180404707590578826599379121402418368281523675095183319515383343183889089679393472793359453703132506740946643732907905953617535955495631909444065190529231325268772150276117595765104663734368461744524475469570271638971946996036202558571276099286280016020637863523959508564985262110271276591289601178763600112970272062124903262374844115168067508559197294840994446542515778627870392277581678834945807368480154469740845949026020444364594556986421162766063884925035834078865261591800489932937966602515437581052133763693852023837147739293711025238137977772448361838333444195999159889274059244061149192554891416465577426669038437594563695930052999656438587998977508109103491526982169549248983116067470707356080305244834758484001682377038887296874999116879719941361001020674798741698547284141471317701551769098220770648307983642949189681651414574894943498496268555236131610656369483501634830057542609747738674669063140005710735299593227998303094408272146891191882917057959475908746686153006915686111954760762183534044674124941979621892565567991652560673308317703555799071451932374476930105839341161836160182106726528950923849305829145848276297874157763729952934593802471610277950306631441377882464655544190472096058193600447016478038664705609496261443978083374978848792130954080493437557753783103267616874786855340104654622219481563938751219705111583480705833762872270206917991523292023903561506865371276577427410998913584634320642689675884702071160295151074113958988954205094121313019909039426050554408872093803074127002272940712523983070400843871626319581528115088493518968746412801878344305516319582076704737463192481040923275271780383187830244062755716061535293276641698206284702076335406959611848703007286341853601198703446134677086453048824611814509936729929596379374931299038642906397654483189674711577842775802877965603121358672419359137496067075293894688230261938941091092347051597099902947057050796192673884803880481710094194195740324621333649175875565262134896238505301302295228536426246926768844703234466572058357911164455084730579740385731954147939411886516705470279755720495455756539807931531391774651778040479481974908793218294964761400843592080324095912426119775108003898269886789987686286261448623929367430189062169827823009782172706545039531776712484233334798088235011784651588935188632502207820608575333069069705205508068169868410036507153554724158713751949408081543477149979549370095908837390594589915172537235265584140275953232565035586983256450638934942466426471388953828970363858387456356193385715730365808470867246419927642157051262005250740437893132630691879212492840072555068287225508855747212879822762324896607948003319109092221589501806764220811278752075844147846774055558341727159672217868528121685062584425000997848494964203213361592091447974185513528781680943253264970653564192926161099072945918458571932213064370378253931165070541822845858690294172539305482661638991341454341288151873577493952083455142805416459766031995519668058499676824948760241662648783436911388723493367944312659637490548392590401691749140076536103832905729589842288432925392136767818281362515441734322345045925819988016174775692725098956391648879552849333829919548209805274660959008786295715716177727231387623295407252212264802678543608737448203802153918867456089413838129631388690227581105340021575444209897737371618676751582504949139679462647893997477653917704070184276290326670915576444544387929907153330609622021208913123861807227847180251058446560235934634709213158809765486264757170411877842688151789545762829396147083843317227914083132404858084905325437554122046854369437848900434689628579514603808531964556806896641426485548547952079061411010869311475486535376824278573579367136647202114991254881077240461472640921563069638082081056494273919709339861090284079297616694531806784805754376475704919852573145717700333714176567360883448030133001634414607860771598270291458206206254479403471324180324510227718910576238295348813055124982900835426802216742724256365292784591430351913386731522488805234189103127148770972850138673582589180720056990931371372325134354717759003078202772230607261346846210675118191762057367943243487048842881750320740082343347264799730233492259095466496290970372960650485743777244442096821376228507273548618727079459794470058582976995298826642699978660262571915408723457460454868753278560647220788821137072885026477941731902471372159753564950272250015983966579861626469682428124116101796078052558657435375678883402973918584332302593572538201885567068271237905981406939476861585965608074595525113115933417897491035698257355079501715012399259884776336551908216813600287388061024248844848171054978949049288218028387465346054322468834372936544369083639669650967365758742429988986381002836330147307261610167647684991542430887735509397862249896260145238983066339213873476563176447476860568915274954655102822311482109870769657984959952041064324995988272634617876891318910056431456848590252488597984010855032517431889549661898149286058236150066116865929301736971896812341365694421321252935896280987618134210051001697733579101335380711110157400229986260792678951163663920633500658647925250067633043095885300078138646893714425841800438410817657724451520485221724360504885958075816743728986804924371861206515214709579232412703641687098609143897949459986944760863756432965635152333365366461369636514566860318336726547674392329234810402320870640554760679927933226974107756141520465042270920429421444410811269197033911489139139633494563924035999159179320370512147189348307543719774928717269088683114167646501705075282035293164829126454085741043582605114567762910130186075890749398338023031670986300974656172507669131344522960931168340560798588431054534936540470328498883357724228345300058260719206918462628872255070842300426183271713290445423052999566769980386493521490795770118364596068103088335600515905795259504357520624690442781719257483482439051130164815960273625722364918492432910222142377209126671757489856258411049309040472097222549976559020346232081514998502971197953577653408689461342083024141351097952158272665731990622688490495836785577928946878323720626954626268336643708038812733506154178020086764192958996257736421027829926115586817159494885446732472046929877667351805069223999355346126575469900889794032584054684813782357441639458736754624004284082550744250875883747239026057420376510906463553877000338103532311945183751823183334760256370312354645992309332905622270399986819185538037153545713733706466758580072371366801303105444030652094903076193032592094022931720002853351596093865416376128075272970677948774017718850896623333231110766627309427005480274567895283206280742852305746081871046239714545058126576224168624966136360856694017396558705321655993982047283620752654019377418463074076107774098618935499326475419545967978066992073032739855139833790622966636262360260940386079557815135837296093835178168261452713162310673391214665741763270132811724800905086431474091470976678507222885828311732975514373961140972640203847222739917518541405418263534892497395523744373559902741340890637821124890530557225787328381458719303072125715104307762516104658495963853775259924612488837685076935214042503745340523411365998797075414978753580780828911890149724694444352021755291260455027260143697036670273201856257570503582028721802261138183584067286154807074637266986332558223947234722275268754090802589627490534127072317410325953536786693771566394790175514305499900192798336718130741266616587639825030358128725887648984702749182471971196327442816080202977983683289888092706078032808528327523772608920534527059050944899562618355466398126401948188782811188321521921910842561808176162704402153870838243826015255279528181929104360887024365822807974793013966354674670830732855181967757556007332385087124554790896848447089993000766836986736313697054033584862137384168982535318792274925344429825703790498203859420252596879585346289927200508726184552061273933300882029250909915148154165865576338519611427558301678183491496600099276114718355533121913061618493281556077996204699877071045784095324475769419712237401960856392514926522336047146135435487453529803004644022603536236853858576346912563354466729781534384689240450912988104519105128954021129017454814683724183854437790701882968949147553534867885160557178610415551604340581487396359188362868753098178587944535417597382973801132879677656828287530701836497382579430732848290131318836212141365107297344595436526292452034712336510307748320519677002903455343323541413059358625897221190787138992829497153621633767025896622926651577978871570153408292320974102654545845375451198723743783577432173276368326414005350542981711996069542753295442055479264986885289444837183092808516907394866849886239722384412902111687401221637937905104163718208574474603859985992582957234632446055520800867168922996182723391928124329559378577590422120781442781623262535420233574314039772905996572372088651876086837490690338611806676559355967481981414452882709636601816114069204645386054815624033302245572980350789905684277742299122408859834556468550968243813984091357950953346107898218290417021032292872541658211486676653538047722680976079284798218553566174193191254708921764938500879143911675148414236187221528902813717384200914234977506377645619633864714546116626375864285221848322192063433602766069576159940709355794229903012506754420334559167764878171827787492001876348502144660444798714927892504847627191146922689245800489122285626504755351264331478956733194445077158667714923782197760647959419718730450975314251521868438028335845666040576525360742514459767320520929524224537022802513648551184921189354138040943591057176855572321372113155548329689712555321966078315355331981822331671407984688296164861801216537232592330813356508327808078066666887611916395435622199398285797674646870845128381374351625728067312222187374121533473601010059712507609509640644321232228945239604753178894079969328830413601466198373300951087174080716079156724061638103428417715191860526672568405567275713539528056710741610384659675991620688351584729610209977175687693036185080949976374835560010802346834636072787392232270337712452228778046295382902931953813895791799761472408812025053624073618145833136422860564662442272829633238956952434150537598171542046356357714476321206118749714360753742502948942911749211335738488791175220423053112448536980292363381446280392619824344349753919996002640183082330555755373315454750615447039494860621774107802639820035810455192521430480840941134160134917266026713096822348740115692336781677833011801862057641218223522621962016949680706535019694966906405292228117286276233517265999484354201968090881655595997083869612830178291157858963723332201225929009071719874265296237002566151783008432853319252899760351244234276340525637230992729200883771650995061853024176059861386674675906651791495787958828300987396070131719668881459766650695894780563914507516398573880605957660148798534933753588726108915103852502830497021509992992475896875086593592651828179065207559632344153071392808862364939874736810863687608373332976584724874048473232827098781775223344604870186778989303193947884874261578556841221636103594032099503189997595850013598708670617871726863964486775615342181748945580456764574028539269064804062114968202466924863878572328341483870393522768099985547127451164910321174607150198086647110047891097694387744448068122710346134616030981134292605077218061481621963069074717841124200642449133474491842208933106013076563461268822328844583595694230542460763696684860448089137486345551700651673457111005534166601561847661130143487224059117916909150558055894620018374326119646642585664061428847779907650829883143779788667804720122315943875464670559406528270992931554960980624437436974774293177221071989713096308005708972067178753123021819085802343349730582030170214458623494453562284099258194537007574267862203895282015729549483135962110840248720159696459930788001513571577668801459119843515483778321127779419246557305714667809655691276064779705772222471506381567827337530335556717764164897599130955906412176137242772497892244764358583597259581884725520978893105318632216534098007883223696321144574676796585892711124176865220888952458851022884178972778429028879022081664532719437905178089044385554076585899264388854500241802382861901348682764716900963357833570461621006394773060611072711830230214804637807453529245329912437467104755448085484699897583549739974556278346077170133731783327502957177934063721048837839951138897334783437864156124125586188733673775348336054796613655512920823134809291986177303861902026846254150046909741705485161401361701628470910557461258157728862753863833938420533043494248538383618113567672336621621744344709805157665065084966642617808736681532313149548411864087743058873303381580948492108530603389830265364430182870422805253934021986780260955555528043665860950386665481141931746524091762952779071534433198291609281158625181880366977809015385661894763340530925524038544540126685404565160567405826454802886399989905988974102474210370260318502480985057872725538770860027353739953803537016759557444548801339980599923568885367326944699135495906066278524527231910725859510305719410608354617425427657219410849046538726164000468293736679132861513283866480272330185712466703758230764962768389922547775267059148456110555819499478554314679709789494658656411888464319473734380520913745299261111631810737195454047118181251455499659752916257468147094099728451101372400931354161368688514768963578444698299221614527402040228482530369875410068944168532533445259050427007199659771705066338696175554282962002062329864149670465445510801978764420420468114389161778441610260000070996143697453527108994548013887170503828253045304299861359201769355673278811781348892846503183717589705528228071801521736174078416757927539445578363288682102691972804801801970874787257497748534907503069485710803294441171105721841175612992313625207788020452258738923864885541763516596004855261772508225600125034063160764119202576914311306868103183484379119602052670910488680547923764745158760848414559988457353231120264233394957590608039508009217931039468949052326417046729676594304932165383545361628270316813247911114970787803740993367516318463480398905320934126906338351084347639293968243655847562459278818299865315468401165615055618082467556191762763252319213802219040254504698104016773725205865756996029081894593329316709520620965445689420427633538968776782140258314641257410465767970034558722786420591716929106216316737122434858477255212998896569474854977471703312764232732526067285091842898173692487790671513840349884254748265647134548088043517508243253630602481278730359477686805369322462119899171477940102517868135328111418880255070462429875313034223827547558151332737273995570569614117039912274243206817536222841130802256940171162631328596100851646818169281780831156952614394377998029785412382658657555574518327371905260319301646267979026565574590013199243993526780998488184908930223852051107961208769555722754814069256391176019189650766613238796018652751931182561668504450938053543958643843713593648738709790318851099652573683392529471717263871145834412213432498281504616066091499346361909043133123389324954980476841232340069722100099304175363856542403519844912144459864308305617409530816229251423246183584913966188882738400939752652397232508226708538293890409473512316962488274041667940729945124059599799313609634294995537978713970683331047883502845661638792680815495298417175723914244212280094484262726564102247234704052925987158308967257914401721408875475098807210466147766303021131644225940531866293735504479133022581272132813711163687670032925250078251414205165587758192070738488228105232761222300463619358929336718705377847850476224711951118156623109170351136680333152487663867403162551111886606940868570503732267357380770905830977547048805447092326226385107747611728830168614735176933260349627290358035260269199459988078438591819065509638393173104553455768408117698535059187081957606371155533870439989473088013740678737958058844683457372298153439558250610125777361245604277235374060964047876264123583357239517502323291736166202348827645221479255464798974555204688637858627009785140645205473790936329188417485932718298892541379855545215136963705120225657920203399130855690113428720051131508472153726182258783123109198427897423548761526283684503106593585073613835081028555652706754392728853198328219944284419440526802444006350060002727177857388458258132966020654077753093958638827237316236660839748209940812969863560635191109670357285272927832539659117093521518758919951388665300081857931874722121103260603408019298362816510479238562971580713928298097945648852852296855007024297045216357629093813087413190360713013444541972326803570940342101109732794930694174944749864407344420095402258867991109590382574901508259280664503804881803875280217047839419854146855394320332522771581037437823113469758027332646166481147890060514652949869557119687019981627761820358351947907156603584672990833823352640738445195495992307296953501035913944322245104469945085297058093102753063542902261988204677391206333864567675076570342130127536514839546830317779881857571527200884593932625571584152608713135183252830858001393482894902195115583315356504998159331529375655663513110241893887046726713547235758540675947188863435729908580448942414637569042233368545412516293505691770732004077272458650855889159867063460158444853395180792023058153554821756400124076492913207560912969540446609396743634758789882535960077860687731955136093414775725557258197512611364950337074237865405330787769578429593460778416207420375427940809141634974170052260875090629285192265300655392461071073243709193532099644652638747370046694491645809384041077588718579490667390745761142039832759405194384075414808945890382936020670524932547692302493839299562414137328990564776989564200775502962929852331441519552897916331711018871360835657263176398998648024538873122149027056210340984541123331548678351460627259150597050122718024291739131567485248142483134319446348944346638699279539402030350319435200980119389772074625380191221952453400281283156121012731621909329412370798306451842129407594917077318658838773903672071683248850090034732868945473647100342946963032866916414992360766377553082739997199392831033215812825518259426889387867300330253591836689136588926888340067579714297610458196941803175332527941442978353287123969098672358417710114565369234058172957704529986541134514572197751969106239554447434617095660082621279685370565683816519106345882404986438036530996900046729058492356600611023404078917876212717909784005382587582788763706579838800775212005542153627233208087784133963076732302493439974258847659119115611096625562046453967516124670510857507493439304733089483970130841038365556866367509173845299559579446097615890353525667949026676384266869567671243167444574407478820117814907122908739523195157286755191352695445043300211966311591002413936082703609027705063002063081904311090118086350765711302983798543620482690171210101338062775055548258515640341877810658507991904361460808644461339504063857926771726393233922237428712056778861584171037802314965961059188638594101292760271818816030695762304733673667802845657330398920421151887071081389295542450798132274939854100855044889148918468231637791886379453026890845334068114984953379717487624887941118100754899498125034277324106507918105514611257733068071884919772429605017903805219177927419269150279385420017986040598729072238942949765064785217249367351273555640912285891572451275516554708786987533689584768394319197205187717941991022324757305145621836900593984624787606619461370449257399109604692882088160404789212241546375098962402521489466273309928914244005844573397718037945119469420881383253353740539495503354098014511319828578086805595446620920707687787963268290863101001117910543830713088693199793218949318238626159613875833372714615758261692911883996624638192432149547439220518987073887327224181806029956909395124842950000281029842334341105727875200338728585034648276260461776384623972008089923025150942511279019608523416681411075536987352257699340213562296026571297012426056474331519880044494672694866683352842209826702542643190604427017065942367505595885954178376465705539978477540138317398137109890839677768106420272334163947532023643097138939162785757074270681850139223146440182114236437451231303236490184675056854904969875169843608870693965879797923281559900067720614435362122635472616694084681178645553687703053965500964697145241349269238615683598699949992754726870341078170678161202759244526312430453156809356337838930145736876420460823156367233372244158303379102174640612403774689371616036273692606297309796155827105602806861909025775514824597114651899031569122881825119501034103060242223086448249953852822336016928382216809314778538181789630701206996635176355899039860241707559539399487701517171616311075301935952504854258240032975858887645232026026392909839476430349335533647732499441372704699590625146548566695159536302186578339571688433920454151470290661832578186916252868654426891520364613869326426235053558512994179073313274911513759176286226751795155812279330072918595164712048095201540745821987823954730780797256305722221648954734533013442826766575267304401080104798153912667374956346439239439238872228798413292661240989477732946902764305267774819955001494847283818008199025263020850040616589617728033992921708066534296361143568306744391171491809508787553111102861526060770000347638973211937721147975868330824298060595460937112970661751526936335730877832764351118894593600283506242397571468191495189397350418877608492969370974330712136476678075349106331485207923174273898881266523239874594110117295944883009083511208208820407334291633344082422901504302494134314428743701479199664842709779719042597885802959130427421655051219163992263985980280800559653761382970742976206788272918615234713168414869587981752485140507831590857329983069084667604810314064254561855603542726122547475759747664171795417589278512313316103670318808513032607944516299102257810789833467602509498791456523612474275146692080762671810762821199582602736843679379606785752151660491891951194908144455861723748492004954937068412052254836682383768640665823283464475651286701069176596855843609168370580140891486532491847479644251390941390454211724063278732678369994741276214192718040798162303910773807183280535066875476059514388469919072411141967954498180184572739245778518597139543842696855982735037002953177793852837262391965225850058927775558456864342500309178629400167016278245627638290365735559433198088958005286052524651531135495947359268278568536102978695957259134924210360239721852942504202310217981860395587835808238483355302874119244832488052548783843200804796650065591433088286004950523283639678921372856540866501288395539650232170862206306737352346129375513326233976112352450596454146675369285769453857398879595700430297710510616961826340361828018063353719143592774918299021863058575132388317519467495373854385199741581067040896675561667955097743042144344547208584548684435283173028809652043482312880027717913703306285857300321658516445693718650820333197194091015691842222759692661340383836765752614800824551346852397362615904153719688576449637085748201065682075309576355552467641314739548207292874780608029490831234531878222142547303184002490713853673364178750530794817031637049524885171585743354761057781305912723612641276700334961679800782837565778779539383645153810397162959902365441684783468757045220284907565897619580225038715836486941316972330495593504701682056686846027321056729999787766047217178363714305012215439389424986442316264247560669847486345537586035156449516839186968231433653292666210599052025163136081704854998509237172569670889517747253655078559097646657259956183219131762975821734610635853693332132852790423461711744520679421000454292716344244783304665491413754663655539269628614616926991165514408269486428776216878523987530527384100334508732435251093811268346507713799440993522448535219044764558141284384606421002501531569364514967275819114609374863664711953710107758287039335404778753690806995530577388484291720834440044572514708962815785022633026624043689046214333668791836989158827097450624053142459451500880563637348033002148007220236461490654173270818454116564333307956398862492483966727008253985590225804023318109091306083744616449292854003202423250569619669835387099872165207064704953146368533399418235716109949938540874074711613197954507973688241116812589118703848541275415247519885871032685908288407328500495394472271614194021597261751891624848732487884868334296054663787684542704777977043212943596093691494368927953735244466401044175346418496049995727272449293784402096061516794724149236641459705508338377068293237610080812213164814320831272226942903445233087858686452848286215367267356070384251807221942202630851966174299152956131916538774976028721396024617219378286465257318129288395434385458731514851680196988473390497409525682212235124642088528577463392558742799900107905361548319346259216462989939983576480232316387840284459154231638519110159086264841241319037402290578174327610698434421276103491490846017323358982462595926833967717082497720977455426361464026778165268308886748298229408732770014432914873977213188744270819121231060472765526889481113333047281594177741214344284947772687500675561145091316292724464710498568531233634525623368396821474513035762702264010353682480681424598939690516205132445341733447778532691897041218260792184767102626354730283826249477367024755244594600481193017789426882079477519828800789097238344841087438164726153138347586338157909892720822709461023899290532357097068316650034501637426927686107590551163919315943892262802259450321113299215405353945514300536904622930145935243688384519916713214769522033341614374231963379589615436753635708289686886487556150809618971213160425185028290530612242279730135507776582033118951209556404808807237465970153686918458833306370137281858824008268232347375584388407391928298442199980826732815957873340485225992919038730472900212436358168908090369774645215793722365692961398659528291570814490316283173821029157550359863108793911948860375287763597905029680259403933703217369499575711084937347854520815434875904066730270799572214629879788798405702210592491357128323261781549897237164554151861631973927055539897856641033622625029763998502174466216762471350327008468673622759647512513288844570308734620134558810646089971485872071472580201178872299879487261817330552723617935930451639013328866393048769715608280707979987613575015103263935135657833438147041759104794040368228127533454766397301494766200863134192294868329010075395130228291039166308612895876070116598455860093504101608257334899200854892632445471752786094559264047075209029212172021518258951964671354705699858454278922765724540576591953193081775334061429952570532946899694288029383898448128358861426716051017911582904020053779841762265774231219074447197379216660611935903284928258722622240760285259644565319573839435411155868656980191340480489789768203818350790618228409348020141120905448053267216379265771452226908429605958271754175059214517181473075823440086918450404966232133883287534119490505032877482053009046680005243790309204157064075756784493604169766754522163835920706908289912692769062131156786523429977260048801534671721543900207629588366151296407755963714892896544551735713301739501243068760844619326844377314513655832242263834886294543859247182465439125037980882870050926885499115671311051058793189514750766121636824854824102841250159680354523124904473955874582313962240386291392057729603714862308131626930021081472010668491088830523891687014370434997877073536387307153383222582640810610274333855722492758101804678595484209954432572393302715714680803491277835568408469831946402833876982306380021085860787784292610631552587525186286562487385671367100092533927876001773367058570310448089757568860838245949938353841392753674734569436177440696853543459179631452879596743357588996481015794796046383079016143961826645082331318199670274592140871568427579264532858968080142561263811964555253929948208374681875099278465655186814192580300762467771577659074671042799050777309507821044158845104814824443721809405466255657575253486183127196017048829305471876489311844812661360513821552666475636179499891717490003872738326808544971637950751040177999334631900216744099531483501970815344261157437001596245698990028862544154741854755562796776257508964725715270977399927207574160475125967818542986571295321898302745982924931590679692731647448810846188269496011349945319250950095322450844931264468390338260214463588075402654853310712474908160582469048021183340759636017064407443877573208478777669355584069524578883001545390609537795865029566869944865443871545393956074106791173581815045586460591886776010242062183067125056680268259317865162516200901784039219873865301621041837384271754005400680023149767257611213250425452765234761176616017109889178464780696459324380306756939935063974511193355805886005552305874140537683741448450747569325727587652745756708683315574066676341656483738350378681712727977095547239014415486143483214315032305139246128363143195095013173610568060126497496181292695771577275384872962767603698739738591111405478797276899600202393634509166276668600515197524697977507299646046755556522226701651996587099288097950023338159564614283553505255240795085929188260913342006410884666356462948441428815638456134143482574674917532534635466179080876058892569344530214000468920629868605379666856391145821219375543568444046161405251690933812164324473404166600811700354085962629732461952193764460934982731396149530146411112348770594697352883177391289737419843664298958492756737138717336598173457053345587682921314198128210620237575559324798550069822428621119189815202724287729226430733019565369633426269086075588824222359897479667324433640542982562405173774470844518241989473351522501986242195956390513042396907198584611765363633095738686207443058188292652910500357460364015593583011224515084048642831515482460540431550913651685353744470915888899387318758045453799000050657420132206897074876221768604864313833616096814769027184615593399223608193849626955197507921623393759344446244962126541639782739211250281820906275190240770364464256505113115203485994468052300619081409732742492372755015340100000605876973622865388715131272478533625106464336300874722208883686994881475897110792850979581262111630412566339659561935746810545036133490696484240255065257089876840032431844841750666671564251213244134750687553719637180440045550190532750693757167519507292619114103766421469127474257137382477797503770064434517869679300955806656183893238841076929394865768176489735871793465357842901078541087223541721890775131136209562618334018905307579340040585741950723097161214113128798286101507697914308806426836168311976489406245631682699997948291387304460829347393532752576084235927840004646176620928244233706444643981522046485290276323892185615169530562209173883210224424669453477010280793006715953692471428679221385058621971078242220964358698539470316992297173059157986202147910861199538581302361527875566878514810588407003822252171160436155606308772724013023228218668982949155824656826402519939799222891593786733095128571599646514085222084175094790853919463120131277311419002563109897601429583878626699147329737880262190685889361722558364407343230086262809207088108041389824949650945150649968934194791191997155218497322390216485982784392440983210414604877387908937010630858390684414785164736090994285796344127486584242453834188537315221805766876034201641214697847116069157240578597540585698007871262666026836411072137756303140259260468495143527131617546163477459548922464928464056757124658224235625189267032684096018902181444762682158219328657094666085877411153848147972654461603788000071383941623625187744015452357213168591567985710526580571807175479876031386415723756320738918025586652405304445679755624060691076709318154331622584094567107721349559019551073626280359549733932646862914287003490421552769173285479965715717467153846004969599326187064274899569856537155219673965356776258272564370491652914499602738744455960489393982757286261582842036476364356720705652610850465918673119830768583477715373702498521184144390177577729476933386061585508983256070405252570249561488093193045869296879952159194732561633991673019951244998773497558072236203119592664870801824099518876262484164256841231555957410859946200100935614709327214873220036495282890234833301657203291560602546059526146729139286251545329123264329860935873490710076659346231410197746632592707351148083454201491156325546569059242803336076541088899836316459721793734636217589364734311968674259600610861796921872432574812992019823304441050729597810144074959216857054296964033289796815572606545775798869730908404574585068133739693445399399430765228429084349723023393751065444648415197199346923134026379421493950002650207185400234903088616820602843018450231978057403306475133080850491041945978029808185419562108796159050075550314841547742674512428080844440842775286661258626939408123039491617069565847994654127714232220720672437215792592497786175221804392365723924409163086873978613819603746425478459216254927323556852876841468531526252741199351132637851898314658809545371221880008647817866917823895611636916454549147869195447822477178022117741262726246363203771123125545062553259409101475176222012587822766087191768301094370697051834810626529857666752312664024625909957175522888164880048053004668674940229091993854384562725502227400504173770028371080086780170711514922123308085142267568230612601429010330010706596078660574925030392868243455716818009195668384291698340371769216051276143502434427888136624984959536652187306371744843570163333886294485978535535952536978715102633717195595308257085377934060441345655781223067974934817079462123379362724081364451551798631504722299544281480210076198428861631795024853094978561600917534242266937527246485194532810948941241577914414898794287367234459257382914828645361026542127146651339534214426579713021632076316927212740109147783355324695158875800397110524860883474299301117684519913123619190758992318655877902907459844919837988686564168278066352012610282637928591996873040328881111334815586068867550533239841238121839576154065274658076489528355454547943986114976927820895281143160282428763724158269917750479410559461983814268611864984442642758743290039665050109777058414503669680489125934014774960033246084949847989538643558134571933205736421188745185249132343379400217540721748011620882661595230155707289367775399021914734751074509022062016658931551907543169869077969673186352001875579993510302353603083551697031441822034596000908085380420598995992516564388945962068684879408553606215744319131559933030794648299713741382557943278001621793148685514387420037105004397344756216739875219504045279634440479504778642881017654775030846705045200773805263505466372084082155542311061846199047846798531148293713887262908808937205539111366395307543351741575900888668565617249587153993317243834411742949492669087714084405299855995593285610315374445197129710098445189031067555873365874326883977326925099236014248518124264434869038003080364811183482879225909415325355883504329011635686939193806613133605894753433324367621916030084600970490014519902998262142142549669706315004806952972332721127742931085268228781678708419359444059825625423233526132229110699481112799445542232976419448710331752953480667892901537992131777594010080301343085970105280573728634343805160693724550464960886321909209923369243133974458043971810958245290773266669159536205554085000933287508715578783599815324829830772779238534506548469029379171495038774935447006707920034045700341770728431118885696902607151472389474466222273330813314690071305822957171602311121657586227233017441257485136503933447004123909322411722042852010113734348325741868549208708943979074970463611728678833831606031166636950793061886129298551318577518503666692483818348876966361288906058714336247621778794184243321759229760738587144196868229557259820920579124244784489736675568462282241534486126518358485132540646169229437281277352458573017149176882378746644305692606378812873656055937620248083476410857882650998444985353773187891511720822285587067114394835671167782083903439800547473935040819077271929469479094042952870816377541649602670619280168147720987473673057201345767506857915845549616211095473101733345921784937051191439106489570485390873941933017694530350609868378678967010400937581662709761613347344640804612933947954049149621119574673990809340154924478939918622591579567486867329921578112632892835529104611775159196564289467407766779081149252357056811490807788155547105541780247508044199399461067000980728423160153861321942505638649124108256054458468853546068507870871651153015346294024871692497369654892320932715068406161964755767401974473202046390231531498198716039918501978362739607502900214755109192629373926885489322942587919328783856202695587367554769400373063996912729372189105729992006554831674027518679479371110091978190705192643641646782692500933412560075392967756063974057843447897619026665456357604213687437672309584012580156802277962586412211083938634958344246378344014131044563361418824602126875349071750190783282394067099148512398422348133429721627287216406799349370771696166791229639151642742666139417639903728176204860266006951557744011394625247401213623305605356316978587253806824795468310588469771966908940762332832100679549147877261566232705802156333165706991952917043014302515226469255281550575113195097015736196642266128029843946679414610198603912646554740587787214044188513945918320535399795685195596968397944938292604555395452248882184855476443341352156985345054870793880460869719339501357908250269484765969129560906594796326535301696059265071233906797578180158947089093746535324030663234813080069235292905899968953035151505271997523519972220551362323967555655897242434682840541002512788063027050257847708393553605554224787309727593827521329625985423275914933806184895414655188016689639899726689294440212126034112874640865312312145700711175517032248547257463163791859309575866771571208769339423063633588497936008181545320552330339691275446208854086651402315097466530052855002690263317936941189949344018737622243768481690272241271887940247839120865932242896254584358243510619785434464060131217429076968104852991361010348255512132912774160505017883765576115318164809789561225568996332719339247642050152149342050867570742019742374984164088822999863153556491568670924850525197907801446429663650464017375004863837645503144007623120586633458521781859016426909248505710807159693508685076927929426358943288332653705059179664723196236275025632765082563365227659592528038807324782794766397370169123934628602023575765294400124069479093564278806489555596638791192919804872077441993096613291453933613903425290375747686114496551325275431424153632252547228687743391933129597209508327101186666391083270709504257277403601066879227742627088136342529423149349650274139882465866289334969705089491191374119262511763607505155237132186138037663682559725780107842595104943119080358975276386785024389423243162127215201733621739097866752780052632019597398797000462307443232065849045456415200543475233975110146729369144797437711867020772807613560206184365928654328285661002854845637942966473927274832097530785390352107077886808684087275381625834436552096954399332968408781227658911235825637030706039927156682488591421008017833050117544276644500521111720511813920182680533456490002585387174282982529792881344016241361844401399060092865330964674567671085387558853444351621216851360937765541806911429673459335130722853499946699947266305223556615335111169438812442471978607211495234281077006044348824945586901111549522504835856148257592667079502831635432862848161337469387987638467553165581138360699093540906920915781806173888350359411112855532292649604996004845131626575256500152437777714134732800078152162080214718146180659043863440147072707746570292581444108174443251624694037215247567331785978131931041929434724949375415965272808050579788927627503382161767224585669803648614568772554879307866003921397501886380948448036514771309827197192531755193613581509808994243527018159589451283907299316121288831258336604766373086429531565300288127481111578711750300165575773869792674577349841122685729568557226461385507995532597629083332179615564468455630975086438485503055404018236366262113445272715345526261430818611133990261106503933433676371399391653384805846457268886044225742269150001494190189947777163524588228634949537846218479523178628937778284415325684559975315182673994665305973750861254411573589143657860993751253866549009981210914979486711278835876844421156057422338847620288348430842071877543917115446149345670648586156305979456307430571359192848277281777206390718711767965221520810881033200116218796124098595610537406935625432479385559852839080017955196970663073058070970827637819462523382508938025467956119179734090509756344520220166115880283226767602932967465320540712348034692862947556191794572642922501068044486512944766594406212124870478700652760101041653348187230374780508727034621104051089241087629596280175395154991446754689269774937658215895333564019504848187325226140281165491353687891732989230605701202990701320544597843570594713676967527958710027008030087755679155787004671408637213387789556086917223739635956303531751229363449872356876917392999678312931162966592082391081544917843715469047182542970568309647456836876051220819766129944738061649874928011492330954412789959064336064740451677329035789264740693436589770202756912887375199915351200465085572881857346610246126110207409670604083919563993322066892498400095899614367826975804240874231068745661408107475994298939645323494835122580426849189222538947717067312975257578771808829774070567580740697990579956489761297561115881880759065360253835534537154806291016536152154298602296938559100787557826137471359302269561928540766693365164059157575016906663952009188135519642690168196783825787955963480084763402206541169331689010807569326078777532157654961393118507143185760370384159706433084219395596159843662992705936002866125235890747682442220432981743272972104996905502997106236666678404337478870411077868749105716156064783120530146512822771667978854330780681306328172409136586354214993622368464171441137026592549304099315733837677004116084345589012994962091946217684152313410944831018121694642386133527251155104199677680217001853342515124004257262358465326643698278369814823077958308803022412592934021300222436659631902267578465515049849391704215385193020216969463806995902352094587235097379817111623322755484294878640078922584657784885415830783005739595021516062369558435137345568113414726677108896544003543823176643730545108996243625696825797556827191602290208279895690607667637376016519044992123834189309047350902915674396915902286184038048288744542577748807378665913412196133192041118364141334702855960329427204209577570995606864248735585039054090438517741409826361731122632431096866743582178106885400313744787694139870230214975581147759791531679565081557663118059750157397236978756730882080644173106313723626378964674813041715935335986836832913077567802709729556215353109690910967325907690161952434769840792004388929274245567418662708000877539360895224737003114962044197316276742355061423032692262110726403760255419990347974674930998100297344209837657176510506724020750780117143011904301151580636129048578205117956984470359592235768572070138814531699833807584273840748806436893938049589836119419451227653852314167945780757376249014076302074516616741374711105276173165929216094302355987766161042992728110386621992492396630334698669804848073612126843997006006960929074753680248228871066104407677405155943210880109769826131960421557883107504687273021281254446341935668741832697066307739255449125673913478086989141109810002521479295869472060737087147674870384691368809833391288001446975471216575420222566705147702843157511926280137744942597786413821325305235420387598112895275717674852751808306893792589677273928348609876933176140594792330786084773971680360535184842252551472875178883021988794968669886742981874220901207473959768157654008717042215560261067863398635844985412587530575707854961681806950818945959737100469440177387871639924932021443250711281071724829636994075012835002824827671653881373967212801564189213695349114639160489837874323244435574105334812060014387145691528764985057198086268312690638013123998799654033502057065037544877505922345580494261728849363227728030752254442527490486004933603826358640923416499914896524605962351236664668848120066875773271334718080649827960227571355632685157909759862902950157323783716640611127580803517337977568864783497802891284112707039945226512433259987750505707113299187669994304544074811588886197174403823637845881300941198770526404985574958380088491676235980755553366655292180624184191557615586559523216189249023746853252052113374937134006637161522566323910123041184737514628086747207118605658982579409198156884607458666227113846468213146230015151799781856819231584336531075668224084488859683000290742211836600220640032257652719869719295240192616519411792496874865332203083897945763029627289721439461606190545434267405062160816439509283187515149058362063344866765677467217596251478754901857783836881458500885870581916294594716696690619268452019339743773392260728604819625442573783532349477109474722884734387815062281914402682308885400217976401952725862085897470413323509963380209259034329062782844444389657418701367207481647152112663521902663744521516952509212159765525821206946686811765343501472131952060470885226654378983694714417542523970644734235471255614483282343931045553113577383085145504813381064794644927082535139664567148914297556140485017794318668843336971025217657527752163166275472367056105288829722619149374317964241197491364119279105913470270001074872650788412725930669935982298184979698322189917877742172468681436043270665212910760252254783191075912176163150918902074784201743953663386391500322098675743169107926581847881743491662356203007733335291242208960078075519473162255927330957789074958414609173074966459785830836614645298646411308050272667419475733174497380091119193673250654569758355456503566410647881801557139145115949828458672973234587561057761828876169622760720222555579615423257964179658246786317324543856531041623031133054695496631042413209924367465679579432123425851834438389877770983095433828801190946728771976504306390617007316504438061424651169419168519458583316806764319668794864847464082843343868284298881305214180384093096391135229570045229261437194499600971360329866101993174679549140573893572342613562728157120532465247997379135802240721088337713943338133193459381968064447713760645950679029848401807980173073851737544897635120012925862755651592270251492799681829666726919567193636136467275157343650012743541554212618736312647906357829452582217942758300401680964579589032565049431648609912091404751824658261674766868926335300028395453884230690226151591102657252188574032156728602007683486921919105415833671387394409153721272332301523172775181566087155285713226828179885966152460538365852453689995559512173224949784462550119111019924538229361048724144605245008203589534802964060524209099251191306194125315762577782776493615669542385085239775277705994963527760472027405486312504380177532409531003685614814179847224290284292698874432371625558150108454674246542488970525824181637615377148220320019277492548628322888901782705256367808611068463880652974473011100166110430282494120179435410939870540815436189523096372490876426710759060535978689905644195161909926603624127078391343600418298673219664503210943111155926782188420456925283539429536518375009739553817065030778125722664973482478310561617490210438052083457677613098937712528402444046173461522602083487675232945007918885613702483818911817430372638150273603076134725645577535529832360341972584978433079504166894577828240593638581926196196214407572216244643776602458734509428589757853002639884054524360804310002481100571078403059544308388883075286238954313543041905195537030418576787212912093294679294817271883906700850813622754715635623765301711687185095321477218674664555466472160707955796490155310712609125920896827448082425690746744796347848190988567192993813460178742935761238029093838993708013162495753457925061287761541790716957352173047808824801136370119367675170261401077617740296804729931976841180741731838900800246319853323329447576098623552621633559756753857298333448524890331835095330846369971282832798926622834374051934047540377794139959162774476616325843866062996960987838980270813231972555787129178379605191264638488108545009548401171938338661958410830939581698131064694670364000441940401400665888503646120342804263158298741156949612474225823901965791988814352536312756340510257419747271448276113945508084510884689139185506512009201509791912576302932898296612029708550691869457112036065267226750476991223093240740820842220903295362547146841497827023261974696887253450995816915460284363891349857596972236672879424850697707614937154151824523205732117040221385128163367028600821268684708558936584922351061703056278268723150424481157475125884921761333918721706829211540845805273740418928446704102070580348239485241440206034448380615395167912273676206776947691111096306275759574714942625355107312300547073011901000827870859506693524653205976838982765812364042583953497411304214928267898310513369674705240758542614581856419144141185974935767663805269706621071797308627112739311166779590427112565824156815489087039949998515013603256913743625907998810483569234391474597714916970239836682236459395694784399322291771742225744366851464258008780452437562195881904198939337474050799193823021160588256187793105799441797395452418583546577023574596535783950394941006370339898904089568896433203796166763633615871767132435401191864171452236443782430448179692448592702418644438524261333635383498950101410948096394165092586913757235761847002544763062520124820789955972357372104725652953557552457447371566803296740405936263265290714012647851129745333532612149075640334485703630237780466009368419106971057352546226800389094564477626152136419078121550571127166105230860186500203597486570285926690251449919769958076664527435869446306199156775581091178400166111089398286305327200078144387411904570022810819342355009595116573982033775487389111517152409388611450861138575981031523080933153292577396568500112951991420468399515807911859788224391695112545064982495770685978217543723043272565835670972051216010625792981578213527585063101727873799196576132208575225747616796995250130399537572219810791889852130781291409430085177542950137271276800158079044260794491742658095682483291417965039761835747126126970860236550801418134863131694768610124736738032118662145220594331922586694955443198259285855063019057897714969532827709548399106386434593465298938570337299451788766371218371865618700418230204936459267896074782877010640065369047913226163841072626048991454745005834302195699196296047158217469271836245118413691849872981556973150984855886534211706465564501119989136676004344480745741499095595285973433226690452173246720442194933962263072956358503199841696919184376593234173677413036451734948555605413747211368565944975262871948742504093204523331074225373520521102370724289951492305983015434197895749931463935096308807593382196144701313390476754739328990353941631605369646713532785643695359639663327758447336742022497359819845510514032110320672059682038451993493172475072143813149972668114296964462692159205788732606504436044559582596831211838610502179612322656555017060597462021470294931619826845805980618075703484274494168316983273517814245828502486228198724063643995031810436558895550213138083475002552088852267303909068393745689775810531833881158378859257385516679041316516417520403270957439364699801021260201391668648335681082787676075822845505594016832887490771017196197695904520570875722944898784105192650927820677780480554588742540897491376408640126691281742007104896931775496950576881232482295263133476315239156596210723512224586896276360911584725190206622358211862103639129219246862998349621494778973236612156732987624854910284778235185450034029753203330063041747943833941902649229484129954595786114359082123220855704951924657710724400414212049339662426296914649994306718776369566835762215916256949587628165808824279890037821089790661638275961423356263553336163436684764890220736623490920580903276138735970467282210996206225366898038019514919895461407686510445062219081259390603318032319039485912086280373790589693606491443054966721755257701721189059722804683050765504344065199593122748803865108314735855909431299666175581380870887020209446723409082747983511982904676147833800861559721393087412053831552692853505002976961240530084686373457138922793469106697640227412288868091467665311853003692052102758725623366082919454530442902448450914578946130943347825077597470246111998425334980223843702901384360314565987907626708330191765407185380728190068351102560355982108516628545773329340450627754524226286192011192915194784937545961102639016000880932246778999747742676102820441926667719445002547561719587342862043332838430896326550914955417906454930150150966814953395003637172729653680531347053517259199883371328108063733746875738138258173920105325516197872339080395811899668399026480300981708977234033390434935297907228753729238332713417929790401587055834688362772749999234128664702465501147228871094615066515174990029543182761369573222082826494837451424600409811193828294505978623651374179543264573735270390649423054693806002043503551386218938757032410533998457614843340913912318595287201560408598042237403445154981549174913374580762184607434333766573710012749365457694148085444655214860294698310223491339016437538572805726536607005037578052074792156025021114816386802612455029442934593348037761689552442436622695571612832053379891223657560183947305567811965760817555483786621613945805240864880761854516217358283320465455085502749788753572126958337812245854443591530017735726478006282448682407124008825146659729179847047289128868839640673763185409781269172334117985641695389803979641252925501174743173639358484672094285120993023784331935944386804224340714819350829625131872178721312324653029993281251390573295507048898728084776555793307627344493067197028631719062771914297519825525114273888790810912129883772740139132724481893444401948303851956339818768043145707993784107524756191429204637169058537144950615239100649999473799731749229377537847310037545855129497470135152206629844225460803797451513084217610930964578812689689930348124249057422682443910025661720538207696257646062943953792501343138188226273466341056391203736112461837147169434593757752071805145605151715609238247347899101551370596978587999824884269056602809182546289436089153718692630547942849472100454083836513999941350187567782199586149727620047910913498554513503071299548465847972211313195204085317402257733116161356322461013217503239435086445715316276667191662390466968963119021455933341391963764704559225722449868245347452215623940279075530651096154138240068080334829170718431514726678103079025576307290283677345354568234981657928539990611134053562312961002342774193543263651227502893540827672966165624212700115291217052789480199347539301894129300054176607613022872190618953004214426338038812629612178262134048342851463069908036715170841185986744998268422582671734432515716187067792832899893382107357017160028149131706751117559180348066638645679719562558100882843021674002290734447151384119411221238127526735552208078352157995502834837005348686133957906579531476830170961596082002382028629606807146819932264180983571306968992921367145942991824547127762352420900942436302211435184904128085300140464475660406059105499322886453501503613020778184502103006036919429826694132028298362153586166268631816218436193165977751176211767779372146387595682929518754371516487370183225105123976931693635442054218721572329769111999082282520891590149437799868572801874453318245941029199097742938728222825273952917678425324682737288618578405163981946902135794964253288818907970877629516263787676109858479967635726332015085176638029061487606687361130154937292732852322228107022044741944400771729263145701384453769752712859311106842944219651461557248815757484265391367130508550943314661451438732179767883414154730994301455662854294898827180266494984675644577307171366558445582089335253727401029172138981743355860010343042859295651705141658737060854671886227873321509696947124938533637407751546980995186798300099081521558603439536216694832797289797980429275219658630943612123066227668902863173305347110981652140580327623375050020425471586626660251963762064941527365661345901894724049088610949938543579810851199288842747293101273817350736950385950752804036815750038413087989134223587026119946486640731745176870091454454499558027879245473983235243206320305347175447414513520729952459343533864571128939633524898224612890567412306188907939707589772837240876549429575571913874655640855717264054040599123850238566044806664907013880006539885032397449979969517584378726144647039228725789466152337370099174734065852737116549955019850520262310863566096578895315767756739759426825095105464050952520412092947068371460568821607480267141978852427194818552743931290989096865535336028424748933076530140988120378310068148943832666721068027833822926023357012742695728543413932147313764312928432950648632303913845354378489870528057175393917938890499925383770239775542554701457518698704584436687142465320992613673756833884254325715148543098296942499941569391885306667071379629273870590805266227119566308307714447735824709196155366706473214655362172992529749031838784372887383827496331420646455137847340611528898085636485151183737063940649693579529439922625974552377233569113532978434981016109013846293027317721029653533432167130520854200053402223363436245969248627093909343558380417333269304451604348743789220134024656504741854203015132608793625149591912935483451682851547046201490987257497264568491817586520825216526753099299176348848039503081803371572147881649156094117749703610909532275430861633757653201980246037321705872300525929156609183783642611770862182252522435667288357201310561067683841981616438402473640745390256153300614668435207455671629292399877264450486739406270725563251708528872856693440932654373157819613022728303352325818248744116459282396280444236288583049638519410592443963343697190324840137612618862295809045872826401007420764676239203153167574957273517324916198180220302705641902005178073129252401498740133716653808460792606247419659269465737145100094561650243427219399961473712223550023208336522498659370068578428232329044120056794841614914240612173296810375940155362049860772502202596484454284322492024312295978343956540322949663589113967409989073795668576996554568095961102755977417371838200703738056481787776621008394776170478953178140993627838293621548564392721212934327908574802058092067639310569866414665822764948928637022804443754636302227239930404617125486540284597941872723652614309857356177627498334586861671391054758095275629290750222898396537791423582464365845317001915018199443280865043474870352230422732532907250363282398647194625247942600392387171423110538295640737044876817629911981483728716442445650254319990188471250573947659449942578784934337994268023840850948088181382554112054998860774351945169364355607758442292336093057539723722860447839852680204193852845235286337544946880878486215363830184590475611012265686679826642055005121247579238962648567955186778970952071802256456925553761237776308640945444456815789539451182181607245494264838442417152665469572529844464533390078233096254673610290240914961125818448462290090124756470098462117863998713785730352227389153798931551025033981990636450143866759017193397946416456443034710354231473465108620823753262935526177215540522718510818645169226347588883855448805769824183144197762239223930343653875496080889407329685327207982971340961158389848651632608728413375662042102421050753035794692350220927721240111361213370777274021146784089864073983006530363202472901514992414191555102075559740084753481606994641623466164193612814458784294084417970934464877061613183205239968030665394226809974341232880231450291139159498184252726919433118354959033999719707124097936480506601674124375832932113414124885111241497395035498980005226618134066589891163381614953693372751110756062941489596173800712063636618650862497712551974375059394437055811086975691235867093230751020993574598509307744105001788383556190583805693970509479012887837424144699391956793992924545247064818935954773632190455047545928393983412153743235448880264435071761116829280757318607948120809181202398224409999843552050399555497218395589117414984960542323158198013253234785991320281475490906985579128186050253894431597357381762329650338477718030367434221680663591432372300105372424114993799171093392519629570070692217492539994324486409271727294826297024814447874920166531885415686590759253518073098869752407455748659116936963778533365617388154624160349094656497562336236564818215992342487992712257911814031993855202235575902177895030634753137381477010739682369767026073261828372977283700445832328958666633450395452041594315484016408860465855321470304730734725047850059443148625856623905063896591340638011320078798149086732870474758616994188593896803315211517124178975372086467464356672918895999306233550162566191571941490771850113725280049791169538830935923137628809935704636098303540726984083476426437987328173474842763311186390432129669132222487327605020538569953101257842919733348718695587098457903803915743432758664064238994682602676055251828377485244949978599218621763084816210669990467929196792918318453572791321401785741090196427322111886706033516281218256751069007727468521793665272036679216127416342797770937666397091634589468726586369722643800990579608760640524305794273197323452780922976770701467220320864311058575251834775035097144380943547900478990395747125344671999793701892127724389089170169342478682121218819640904835334735633734877367077176247535599019043039013380092844393707981010790500773366321092637544988607997200842019463771266670619471147713007896603208895886981821008076242869180542068604429478210342680505286060580791075973351419585979491198411022323522129592280313759650425826433991332907757286888789230135956421848038186220928486506686657495206629300964964259995673542902008201277598914543587655432125161181693160679176134798335140476413483438301884040038725195907931155339912865755272920798205421227418996189341407996887453134271220415178180696819958990116401501248785617132000560062908002776617808867201542002674673801313579591094511839424020173293385991493289393804064571230580802862394350227327125700858202755655523750502976168487001370833216221912678930290531773719074289344906737798231498062199615281982327940298390389591231580616841593554430584611021245934491983907248074130709361018294120533697495504588106286494881262148871552286052406335950567587663125538973062344695361565761813764389164024937921268677644303218230247408926704256209364731546387937155680307954546047878288576043102574544444578763311085919839270588555490591036549626535474133430485603070909335747267527027869341072546596180565368777580685087721497803631250732647759258714381490353517451451645278622311031528576872571316713688859071227419755045726005130514891137558380099725621058411718851112832387104260942823249933000332373701823174361049290205921665808890090514625714974300640284217435075723500954960389224371675511973310478127031399282320940806046376946168973429898123605892788182346551082416043040191287773860682240933085977602122897060781125952767075502990884251350179429021904594078702439074045467824390962367792906886134766954717542712785105581227841331399256914750221766335542295024589798299655612992311046262543645465266292801626959908105814499293858052033463249412104306218005882285541909310166844235479357574484581912861526828916559054984271726587418292428308492290012337111821271327861493079546585384712770240918363258888072621009710569639608860726428679595822117650741416400627378694926253139533647111812846297450421110698545336352113937894239006514585054615785423593143251428856238678942467993424115044435095132837548787996147807473973755620181096471672902525757102930114103261027343057538160937519276622617751569080820414466151977093294508389500809527950862447550814930859636710734423085298473648061663230368292561164393170954540597981100970489647208408662839730441120466321784987589744032230955181388653852503214698034510230078352513345464107338011778773877903755922968045897869176407465281206513085763141358042152701124056922524902706995822254606144883186419907123568421869850145201877845249683171968514012116578864274980408482626473436683577612975457329350087457112880841171197224622985126130019818354221056988747661353205680984223336177863703999894859244662302519043525865083365732042126738784845705025187657914504004913320587114566008781631099869585410890260201619131184959233774420371599323432923715326139015161760297501259490254317877111394132972825200128832532303628368230502769500855985424088923558331552409052085685290305567107103740064851744121158347226351790817980463642424073424768538440243831542862400757134214994766836417731520680160821949928165850772013392625593164096253423459925065896771757111074500310614972222185010696953776441802101493329210601201668423375924854557298670156073169171372759499668087696112055133067983374421645810068617254989228895581698046578648194334350839983311244175805284846499024868849608649466146997751224738685124673574598233982913288425726524529730096699363633351052409800866732269418149058340957473944205900067712821274156553052847167960681056008265709565910725554962380654762319919784670605209703274133301917742614120559409278175703330253511664804485056818360148328438324555612457171079998273740186378729724237949806199868092238751536946317671518312066858085469699343183118169757448383144095771505596284179857588669976668188462477461601120929400164109023248430600254019795838468504467118332316217813270838964116768899660561045086001380843450991524717103690116541817528950434538746433532794151999223384684175731068879302943701975241024332332267656950492674799053974973284859200949288813015993797146361290848835013767053360056630902051494611476836364974573273424634576123025377497400984230449360583466888304039396943884721377651901842006277505836902491942272916840702619083079825697910734419155792234667959668654573920895113334147012063022367159335926633287789456448267113676333985702636216198614438304027244723887429055207317584496185550749216428133395693986751112259197353503230607588928961498128981303863549279132724074785192600129700349403247074661820302341700133681500453295350999314403221052293375914157696830782173765327609307572975664576920861951669471004345158505288256403768775715346737023722517025505802948393649556120959119771639770439332452685624303726697848527367759969120616022560024082063809696952484261183786406388092866143247290790088396205724960527976805032014109819127284305492348721448765660130790857095263777382459594046630469479427351443471556841046010301011061547950190291017575296484103801516450859724322833045787227451677045892470148751444753875526577952042347810648125274936170583440076276007133052304483407391947259981411057464881085150882489959727798108761704156006150453598760251424908483461281208839328035248220005120302083659849293609486228900404818527314249205178024976302364601473846704624646498456785596599122795437300234707173360318831545762832178925568650356827955852877153655496976678485283941269857018827741689229602020287180747276845653265949157382149246367787960304039555297948437208251756505871881926596294322995346305556581159493696621139245505181351247799483402935314348131771682933834512134065957887695882974862798756548559474701460708242633951771176679305908629773082194308834195026912136265461953799182013134022020510105580316015162092368712431968968711838065102944633803878361803031040172437464805809872548613856081133553703403962729466000424848616374925979804667478012004711777288228856033805092126405430670500329869243672881218375564548423966753487057892140303559942429562175227899008641379036322182746096122974817996542234435311135625504715032898202431441457671905931977997086343922175609407481193161523333554552042610977160969995889271442431134189077977800282229604890097087723466884680314288214267283667025890430005949133756165153948645359922305165413436165680428240036885292935854933399113214211700156242667038655303079768058178740955573772785749237137886496952514142776898477270438518358361252337786386958514338463581773146687228830516393688393960488948605813188581587224313221365203081452734375498460073136194417624740900227332621304619523469704276860225937897927188066746142892528620899939914008710551249087429850238975637107414863332311237903569443873954286200788165144803199321072350840298671301016780196802491634714238499380027768846492268853358428914567859063105599555631196824771052489282805947963636013451623114036579525861222099168656640191518304541053961908820305437703438547466607514985399298472334404981948269187970078732583522681921945172970147466533486276477442874259685437394394978957762526288424864063365295251808902044323257923186832087753545826788279736739040402463735234902043348973035389829806218521678515052374343904967250840767024637910698985482641921427650954117436405443683257585326321456151045482535180045262622522252657897804030117695228187891054248617223702597591830816551733232124247685691585165881596726760756052258547057696217033860823328129786164825103164950916460647721200214802237842088420941789490786237787046045618503700054287548929855142022117208971427565214158087985594609734298628942345510526087523093262508452436134031001892945480861837133921267097648419201688417276730691507053689014762863366780856406713870585950010323728431158119654061691935069236562001274688212306600446660233083899871134002764569949604632071242531487580399332878137758296913952435491795494981710767329214584124526359364665481889859348594540180294282629092463805026374173919948452289048304202419966054608538298742515689619520821463013985638338880320029826609589652916780899715463875959447284393970362195324960659988463983490239113831461171592140384014874484986859759964829261696881715126870028780026734515706691567953367611568639737262561559588867818228894573581113397860135134954918310734034617979192971623396647510568461577064017394240312423774454130396176598510185079766746132900912005639879600030548399053378899486905494090241506587049992448130002508952381958168138920092466793707850844045012956564781117792806879270986003975926709693069518288899276447340336668762820883463023630290672536706657030682481516161551002373502896003694153800204969638879522602772890994406873036001261941652447694788166693171993017782389082279536801144322689866334673622943716882492592989617343022352376373913475816879042725761722180435057169185068207759681996945512661069239913728556899855594808006091265976237712917621054892494306534912795520485689069953501844031080783110838148420666092939884584883447759546883440821046733559166640015474289329195318804485126956365113516635842085568093337851279200736879442493912865064922198894615849230544024573739798890472782104672963667969268725538335002903783552425547646367376985883430482893565488044595722973438352226226862964105326185956416054211869501367427137486135961586086181567014442555265753796381461064262010374792131335280634171268619719060024235975077477499623247032639687278802089889554094888223440125447863820894673516207221391159735428598369679660305170551911617822204710646618241031543113891230490828796438686634848996353449279001291253985140415124153860458428612302714691206583386849551791900807679153263381162778551736246707642661243051616965206474824297639826586060314469162723854211238984917503080058252395883656904868827741312396698235961288502877554783432593986173663753752545719266511711919504266605579408881242672668555210264208368059410058125378830875066459670390892772625310735681088691523178594575308735455188711218419554773103353007999924280281426547512900655973387968808336980674780915701830344316991683432559450708591272907070430526467830089001686930925906501962629154720136851643799332099709954850957612417281880519960769176993484788518427309949647039713669835114103182005746812568684204960908689637154495161793129946481717358937592840491740017570174392335907553854276595507404489640320859353668010757546875090093889302771074992044418171058558170655685360046353970179150102993033450823208899896744593417040750068871862618081581578007824206627009868277695399675810680969512837625232136904797962047211765319499496870116854740827511839695840841054322088863484173513866032977603714508111568524038774184737123465853315105318564556547674778340337060004376624680671739402687143310171661920849561578521789407526566226320387083116030662517229742091391152677331736387564113259344211900499810191624500329794319960066079776280714434957300387504842316269003146399085592602788223484770079358326057118442291411379638548539436851771556372236985670383480537029882285608343230267042170080261682138463273085307097092612402984570918161946141337608025786689974611869493894037788522620095156741203150496818689414437915203030970935716138607888035692279390709302178189027673862267670808967485428255599542546427925321659523920210436023354064129999221127123674025438219382507357809270124351281133003291434661426863479430597013011776836354161108693201460698270966376207329002045339056030586395714822314824506595024901851230595902853657057675433090869658631449569334112337504036377164502605121874033884658344662006212451574880813770171359112874150710763255656963189933920031110413883662357229187516865701262937423565622121203226258439949780652172183916176030110363883686813233807398798082152328551797566859997599549260231221889168793443742253611591859670873176551858618575134261343882663435180116464171506781675831173319220554123117540581027295662536017039928335294050130406311702642249742125895528085249299908890581299750488950867627362819950987948781955541943765623231906884157355776443252604410427131670106203037050102669284546912022414505395839666985819043134977919834776059139985560304326215790512541772059206660271856582643531424405335068800716077599469235823306964085627620855778930716433452476512713678980010912385155711701433783330820554850402454570112891716263846216906581314720619322887531254551913844117070294655586848154849159189651094292377453875023713638168996454382705515649653991367714932414104611302696174421659849350397936292172840967343139466775228577687804970293342754232740697826741817591680628689368866960542458027354158823062205154594612524007959169118128847661613758201867554269538672989643510009551429176879657601281717625174428165040978443076478948815250604155843604916967370075921858364771535766790992310254343085547404530179826015999237414470913115713660655199518461007482158231334251909159990387722493799132224776980553499779336648806601318030012110523297038251551548251577909163592145966892237851413931381750711609583687494946631325523811463772580675898347274807971991031065478081665498992304039440912036414699738233503604290701393974708999439920138209271602734042567924944594608389709482927033923467250025808281460897454420055220230288096290445850426744605290875780061701978504850274618627744460399809871921246786284045496544974397305331708175202865250004490421344964743926963264080166130820291432255070464503229708674304768170490803692955805413521044959977951668549927510187495737734337321209409057904231559974459388719498784521020818601530101049915466879942389084452243250183066950486324308261828855588691658045041362285650878701667734253544887158383874283073929859420327688173687269979651162759804021839980481919235087364379287604852941666390634860976980900600860871621548908288160699287097039364423326405671776407593400658575561977826620018561355185419412330630056684522301535465280741877135454527792403025768037466065619330340817705828017997062730119529954555010138279811758156108196593356029204884297856480795218736230567514290114667335120032382716662575479945167939964335138058231686347547833431096038801321474112525710695218161363879861534419525298120641618931325363830197574055196937810637951917247072280772113072727397541812717417808268275515065447807580678363995499809160618243340277916939338925792720155976411768461763709071154772642625254364452217004497020422996429805124312278329783010985563389260548424457587656571684859057793318042088163257461836003234584151578077188781285809834825625026495470422451530510692499225499176028601929975032995187906410164436478919520221264975044685993738468006984112295629035272798135654094382756033151296164621305434318688912762976293166405494858913299616374759163705578740070995351568447932901336024553146349597196749785883253005006540905294580237578084699416684472862782348533544372916338861903842227655043037388280001337568587217803929690623367255669926967657449297202986461534463045402321876598809385855374941128233551787418455392388685907224769357089637340960513204273091807222291800757026590740008394914415321097587765912036538189750493407907996819181027956157332194366112045780265838766717857319948213164515951188374696142842865040842595487240722158974759327226233025674444687019135076291903171180739879056352224398132742732015443023681714641985724856722317969021752860066097267204306421263705953878256856628658471876615233528820653746320602013511934399990006741339260163427296163194693069364187453842744648272706945521818183140347659561830780087857694632257977969142419768768327135972009011994903691309405513493259320564865101030334292048596212848604767879957226995005195284603827761667366411185354538843412086892247357535014439282873124208219331144914351174363894232860234905799811483092054812104874713235126801659158168904405683618036289455707594254934704493356310047950254405671221608275599819634816770701923287692959612620509538142351275862090882920251112821224822142514558335004283074032223267006131755700770937518303844775212964560197104007621995981085593674109185602162573771680610847864341008972980183876028486471666143867792966521677531157584014456190906454351602371137451844174751584128255725027175031752462176525178603394022020441641810632244927014543418963844916724183353601580938794602427379455164537182126412351865370798174398402948240603440543942875446959164530625999186195455846899681965939065573214564700918733749597176036498459474307837566770337865136137548738501973514517951169894594182659009930171138770503565782308495048002967304275001842368112914599835967021456657259594554247119306247926704758054679918007722490489563012537948886367320597575355878640221269143346788845598085258044023763183424575947237793445757076763280880468165700005650472179820545933632914520290207150357963456425656418315726513245704744760046115034167897309058003921584457458650683232000999501810366024799954749380845509327899244165500548934088905863647743051907571261354785950907047799510572870550599003802710952049815047468577934882331048879390243758311070803109553378190304899506222039555189503747224697128277767780699201598957264566642265822434679512730322421897757927255900049685800182437859630164385574488393982213895370085616600762511199136654680644323010933097034524662421965980061809940749393889920283290597635864927806005413610819309618698492969752874269493369418031247543263153692784014714509600199755514188206769574806220069923721568383689974034918608324745063638898681756765898772481943919130103199267983445569130008598438718640928163053257543530259260514885354212543968321996283354586120698856349205641177862964320593489693349462110397984631941080258388434728707597722985622982053648671722767255376438807367917828832621937181470392186535584083014577174417378457342048194243637633522028342934455697653904896437177045801775993380052125549735305895683699525299913089641438582810430691798251587829652510387250823558000837632883458767048584358915229703209889656362459596126960065567243042234998345877441313955376951177953209839377006121366164049151598501893248399549704325516107324882028034925912800684641295090058232680397941294727426814195270826855157843471265015934336339811212440285419960106063047161776390388382013586846173546199867760783919608063461027117019213348394217199455075514823739032085244087852581539801004546702222333718747726249539784071003748885002679274257257312839563327737606321854379158178269802494247844858663931631902537360032465686465829255995993232325376504965150480123538858842817213259646711630773251166364711009939614252093798045637476594054173928949939662362891355865082708584251564431987526325298582306016497679823482525347137232522130183334012227154535328913507502963736974943659226000611931653088540907379603940111100380819068374494561850416377464400602891494317092886964029817486996520531320721341913838303096617027476527682143052012489260652575113671815540893287842431970200407469662376495719133473260014934269927126010860923167288556490229157720542209210728010421905932982404929526003428741923674830707689262404960586847171140359581241816713849912499459043901297209890258136530557248545099577928418079034530023165501977578622302103914322126281333554240427216194008281945868196722238758567782515899592054119334949218726817151651224679363255961594303700554538367256814368519482779229468937832632616736001772574035260942206144905949057000174288027355753957928387076694421200012437898577035215748598011963398004998951370081283158007223753191666337201640177823806978372013255112280314780872464168837227562651645779532388842316946339678430033856599631192864521460959877431253750375411429667804416143710406368252881046517676212395505742690417397727485742257288863480561135763111681785410749144239949736550063242282908533628125118966950347303425339954230461740177043111274426789652854548440586595295517377433642536922660565275808853561771598478638113819878567217663835195441575364050419758430180638150864531219477641125969647097770278295939254292924555753016211524936445753297337595362934693541890394583712074246952452000812874680311569286048687047255437670939556746296587626337894220588154226473591100799856749547238452387320139648022551029413281291774429020541442432488340650460636497732993023008740762917321356521859319587954827031677245605397260817225956901398657429477534183128005353636652377759628945860939341483045554499477717981505468322496556837747163992609407475469889230862764812810433976014425496882073141264375220452490188137762031148974398991316567137663172078777643906695730860114255743771363221979071550078681932981910411997285487207359100764838700157759311767583051840264850489196238265396260925542287383563514607375105163210168749328339302405032009227076348857338380310204291164602636388759609745124311884147931565808293314170696391731863452469578040317474819916786032059775979533155835219900613751171305160833154866579282758735633351305264643101728000262499678217027316071255731026789084420537262976150937295667520142813210630328109721738196732261956881040036558892655859940954206362404700676689640570111083616053776910824303784842141785746900777688695084747654656506984981276100905806101176080610650293867135100607029201667441552663822566838708476740055746361410483233517599937092897749484485892770299414518194331906047794209960488190594545515275549079152773928564322704444951860243609437144342948282296451511740299568631000008763673530907488588505184243380429076923562477650265661074016321147296529349702247910310378754214521421085319372877550360814878914886566370519402383497203683642634930579209729486433792047233898909571664208376918995788504143361838909357661586400402144810129784915140912962454936825059191933206721787910496626882413777795867330127360273557524237213631016734271157128725734066354014428460110829783004513474695986779934215109798806873612257077250250551019306178007364799887014011269740778536858717687166422729008116968806540548172205770179956413442647456721332579619597155029446454053721479552796255565716563659182962589421079529107429690347077441528004616813625963367223138223670275049695764434744147682610288245665524704790301510185118842319729785528391919048784654347758390742941414072374731456842405599509937459180353758393480209386274218184455254999546054452487241513578211115954831738542772698828021992671458446236686494645894200229408611980831181288668128350643539902330619369282723686087499011472954874467496143978794175668669647481981184613825533472634161901793639968554039933187514667675628071945263965706200760052594878932106414905532099009963659859236488499098115847318657539838470203367057255534027350718029637246022921342427443813305791929916329289644240147718239081166654219036953597400798659304900943330264193899885241865734245112773967697700981354667409578475778223569249611214272378867932678458962874005133021984171077867658097804382478500747791958220681488545150442191086032468734942505389749532458735231435041010884543314493568960534581268259303704892132786052338694084878186108231792960296815265190717848436328194375024135843386074272508921357655039819597923126507579156587317384192680999754757683786368868944929425439989249212008158101484644885896492243415994527271453133585358368984490334243624032386920805563713465039511570882878529932940783669472290697796547911266895185370729308355620607353082545305872089650634105379065475475272029795485932321618542467218969450954551289729867876604075272572898963898469035415773853243682935650639427758709567214532246754838826864991848484259631124720766772127664923406642067959448625540136737547941633542434218932567550148960005279853934454455733267613686971954683041844554047180707409394675378758075474338652875592358520364770457296671611981956653788876773605555313421045766457734135729862078093760192842303938324463204909453965032925690073102695626222774972038161716646042885929201054834581373417139569876308698813167668398161118345561590976428827974889862002445890927892310362243132064487391671662130672274839212468882919366465092154562461374200849992726842507357322454631170457512075278497902872080422749634496519198280089367462747197232048179234110775057863987758876918934460582402365508485323802948085798792606689502821420938391226563926804362657604929538619089493738558284967330043456680029780053797501772283785881241739560387800982667133936652044779296631829751263724857486809564245769002226240116682854977375553801767167324716055942955479331247004460161978311665603031226374287403116103270896163217942766615525812105470863694509200286431702744697196326375224474425878728644334591592289681383202825267588322021195280327064771928904285690650388562151933865003161369930796340071268116714117507919483587120958803738902583085725985199188726124956266351461427591856081083989250628656623543203212010259952521358157454504627216539679816963325514291089744068725554980353437621127038183292102779444042133903649353845854180625687421412086480557498850539410577507842874003086662085054545785044945144433985422589840469642489204649762399168199608357172044480245822756565573345268170150589368409537035044523953353583273526094568158316614616978807990664179721271288335831867062895038567335937350754209978458428701049932029255938969444915053817712858575464200249150010874419718517793112165500391741153497728922891277219749863017910642268032773760317839351599061256838446666908561800777422534754764591501503050920888009126096790949097747998225725127612376800679063667558740450068070335867931601239745168319678637501975142255568044697499950229723154661298453471939151968611138670420734584119286601025454513431548860227017915073828942668546635047845027743159533317041197436830288747595967747619435283390004067141524325549622453239112856728750167904438111444917626309432399454192771663161363223230841569980280267824549730460577832214545097855844329043349496959584839635854000551972977008420094607281819785260748439126223768068411488973257201170965245827867296074414437672455222557656845645610909380824201262692174530443386096465687136225943476084521367984378827693442417769694916838893684718171773519551928903978347550315803325457166639765398584438898268947743596741178163404493253785861291765187697355010061958167782905594220625717714214500969267803441830453610413841452912594897137318594439909514994666920523088011114593631102996049229108441682337461708564950344372102115331798404212417278523571228289574132257669669134343061557812087420957174667406735931796559100562984822741746556522059937900266621380938901646996913855775909804160933129200218293320280036726813204400388276853304276668390686730438304563778482021917297959853958303349948595226888346183195052767973537453081179109851589831108287045109702875564829072069909757643528804765200350479043770540847950526253624696239815649503577247189354620086251750929114089501001633068669348396278333971176390991034055562138445289549432236569118520880421608668088797306326975045863678121335590390659522270209956243451316973038413138071986355486760864116686715811193552538451376660728557611007256328700292007346515914447914877165785523930067093727901549975263318479004641649713435653605841526164528830848998400663673654405738731400281925161233855544814499343580492935414310124053456561195881741984006403802963573078828990480459373263434092532917505327282119955848829529629666246838615388085912423747794608101386017373567787339885902380228436103548011755924717447715251238728999957489064931818106700370007038355629477540899848824996020103316348294344577954952570495007232512510685987000677591219145713066594830893059519274577819361505190623100254361978522691458988053207036620499105407124970982953343892272365337162360133254721133273369984239194579288023101079944089363429693846434977687828095825285710813882429430035792461574998335533222632338394237445291842340259488077929503283680249110599079868635492839227429211544281956081434926053296486365419151776418290309127264010083637512460115748885547367857000458640563701498139848297279127966222616252327228229922201486008453902053001335024604155568811147869555653820445009667478053266334416276334825902018125419774639294493759642875522197068620485808199033501513839794803546752523187658782127628655392844722678884316844006779167689498595222517260770428062057293879625463303704830966714187754319856366902523016239862961679519402437406941233690280864011172503059931410757015538525095819638602297641059452508402382349205995090918403282078390146939465651354534978162771548623876197760473754028219282987164478855724065703604647316713537065372315406779289076896385660928007295131672228880695547184746579796579413691621512666265570433392880954238093961174554131739013407499970433575687290249628169081405869756374977552564314297290022344518817298134292103712451526522085036334313970655360713373223115360986379004307843300280521049602456324094033514091293925716678790494097412418925871154787954182352307680664582266520723321708724006232614934427691402421345927135266847467024316576929964275870103640511383018626546790102177924341689142033656295815651742024688069909919506445219832261519165641611367984252854416282543460526387853870975817747599856124367917682169292179687981053121377218610910145424807297347551998229141346337497030204656639261917027813730983464471683462388876423546156734206103002934333877730320133299508555003986415904150043183173322566590160495308532983330109950586555226629539272723787903818951785629002523477725534307865245820457859973639104418228188383910664596412089530483076095005065161017705482696499282416449810106924248200850609284481874114164380207279990585516568225933349631263321414160646695989568083301753458898546280205609582140347237187517927032855882152475002014505598966609408970291478026719730534296525459816240257698770189352427908793212759765199717763833795380115489728520689221667924134072460280797951155511002643297897371727014748983466392008536950050739493554180114936655143195040094632578532867671265965284786989098027555919211690119669293111303337385088404457145033989303554256188849066565821654736505544839382478555715262585668902898440327630889645623600204954781398489325764043065989106004978337514266804241109977338339701707889644872323207193342266712236298809279295382308522890211487187894097443500997409110922938771701526944177933498302476127236575738543155819458534847740590719627338585326909979658605684310749682595876488066110395874749517045127044962635442003430801327451127036308641720325934244044541712760660863245530365712986161124541940409940647051399778810476289419051763732619306621675567357717850731258589284014184354947825237968802540481236389998960142763843941382487535000785564834783223118049999627052910458145885679413302686970877743137327116196730793371838054887400128858339930742984484932889316790093141404371565941629897922443183408808596843822758931492044244181865669822509718606803851638167280724883823918774446970698899576729385823408917530989667237695047746193831628325629780147702201635700951245193646169069738175293384487231508079565694720750158481577347874389530879788550897956993784917459235279911511268599397807186151385906962428975566605545174912333064107134668230897956672022633486802410975334206441481969704591365324088849037373417577173896142529692111790419381823495170977842576691616071391340873152724697379680307685874691563682304354482587881320614871249011629122208979832467738051240838522451995445901009760091065373643894182497327471033552676743752475349706777011286740337142352624898485528961654140625587259653033038472490068916135645612960072582424743689130450807590680700447434687020547795818857355696309164132693547201581378511790420591936389272950072800747918395298317699852361296343055203594117097284021298449379791989345908877598484741283189919839343396357452713856409133002778060256868195830306428793159153752233866287515586805604066925358709875725114594178262334970245085827538506978125207688960619588263894996979233243153255055932538514161452280077306077417688060879799200584127838753655961230860263329875482593277206680982970647552207087799664383108488332212100225456036771753436717877450808259808150846959753094264001514842433398613002316916348933691516648628909619438123449791273740950388396180248568258177370265192255051663275501432780941276562917806600193433506210519331860273443183868297286435024468204890555695295040393733121105734912604242252484239186716373362034727942796978313551398574532527764482913409732759951249565799399269316297913309244670633298602553937176207904677849010838487644308342521783411093913537416693249389645413935538444854596515543717981288207457734276434277211544512583143248820987652365599531875500100137784961974873979216046720915785872873111819947260525729083269407678756274066087441323566282589072693657392710228593122347375151386320907373760738035113495027120545504235816849534518246907731267883877386430537698402959217636152604986398669520111973638430036242553231659666129557197413305225013718726510130934738807058401701016894854697044209007181575699913383298466214957610999058848536429539976168828535400451647889147358418283949052601253280969211081776375730585007575829241189952494170587508937926282435108670668204972258787864536172102563147068799164109026651908019623735332352036604065880364924194430979121225353228204640362880135613589135192717991344362935070236131221744405933294539608157784315906908864430091703762612347067520011955568388123147193088594429927820763247763452685032646045240545488615414517074836150228171267232041065823397843656644078362489779407490536881389239413669790841264728801120187408951206213197199737178068657530936625657875863399800109253274028047062938400725929563566549095523305520629590705407424187828666711307185313177523345657181646780590193457775562530265436432853553889436620538809398180916479895828787200908258373624740057259270839191120090821687365730067423117681779499305739308204514329048274959650537711535709019394929515366177316404733805879003738967272557439967339286439832270211084295206071065513867121655606504632614979937066818897784566708059563429575434096301741199184626473828535482499145477900286243375390328157503823296669000870257488672214845922143663535546078493985826322792435936482676756028695145792309594656425076525741655922126870631870317762231674890362843000047977919124096441897888884719400689349762593622380880803466351131211608376611254661115611269366461703610709508511323752434116809533053051226118549019207319624072790258781868764466355999529247203023419024635354842501740327700604143705899683093887002387092763993714679369665701283667223955620036667210697175630312027763280534514199976143745338515472170888227507307492953458931750654817971756995334817301561901237466454827150266376988215980127437537342210287801052610599323500338462697390315110573801052149134561043526832027493686688592707448319813545939795038916338404504231749120295311648040606467646203687496586295120270868399527085538179184372035761021208523247570598642772442326857182527056962182024717330836618848448999497399681804514542673523991127906961658985006148366740319235002471796955389746616528364972388286417028902870577294068232959446568926023682327690055605055378741056107592074921686722216264111013496285587349269386973748084798970768326428854043491890556355619368399457079815255923224890247638914256632001378352939532309754639520914586469888837944513357769213303849381577200764712203638840989153349460440793296862159771537675701447300285529020371915298247912584466409207593799046896191457473210840110038615162082461822205546535198957276925461816584109605566184203000629245748790097635012674396611841555860648638886003298989218588036927082592891913587681515771982906836199636258856212009529596536483809199372783497460449812485973216770245956713378706175426995166243471051764091916027596713112743759494369887213961350762925242984077916005236693475581591626655187427664687019573924414388781609491434828283995181056140372459461796932995726367563210855301556686859439063806955157881864551414404015990117280558132760789696041443065261545110089119532352330087124918054570905240091687321467402605847670968809716747649740764480816595890617258916452426106482267148819463987918918840209962532077148584509206325761853007309820076577980335750684255740041923209233377388399118601101880585728000898231528144710844209808753741837398544731928031289267938436669605697452934344297705893283402030262794908782735917295104283103038422082117839362459924086007893439290983766376100975128977983594029757268422878895707899490257093168098151720971108865692493099824159504194294256221110452982818243541111656799111780153098925191245483178039607566143902169594696684203550769539194939074083708726947509880642840740311203212014075876124421320749352667056016736698603857215828853670942205515229103249419966685232318330108780206332359889166625666978005511131139827841588869519148859717664600901661733037644766563058920004900449085859879000068568899824419339686749394758461754770983714926860625513437446420397514208029185746005756491271171114520698721005139389289518337781326690837647102552523061975894851333607250869168763265825422980268675226769640357856018822219350133778350247924717158953208702152408863920453613043432217001825176872382080129107014588046986385498380734404164868034239148797478291100539230125368571628474675453195507680125997656595307582079530266440210441249879022757860781748433403125721921888594648596607824822865674016444146583730277152491132504164730008284579009865687028146341484066382908532758875281388657794954823600868378104617984050479686817376951491811944110868826495172445277935475429682869962021378673482280046118950141521567193264670021266419330397247269322364563010586715930835113118608196273537301268935549501112325468881225223323308901478712755102903541351747071791326896290842236655301233240929530488959659858209019375896402509013401469358289511344234716350407309497450200445933631834048428225460697588158465629733949296241352276998120472831304229428335638423053630770695651088360836105575563707024579606190671680796777523340509128577103182191524260016133714592247008901979272526626492143348585014406927679450655077092918509458098202886236475964362756753633969363165188245065759374061090497563304230391046599260338710557105462100071939534609638933648071644586983879161806875399831399105154315959651292367862249474474406199629826829369008832093012574691659227540936996735995357058588856635078072732925466790259260496223369984924294413509465750898941489828502344479489904781366542433858410818092005090820805692274905787845909678516199903358711142037547383563814954109108182736863378683110240809244968630661724566935862377720137471223174131071215153500283544271321857426613468014933669414548172327317031093398996068625780508799838244842449332236491549761743029910051991241878936567904814086049460822212661817536586111379184853597980157773061997713379772944971726083466332603934617547143256055703662138353504993196669430431982373253848760808612253892260289092002461759977168505617749720823358520777337570943777953017091238966157072520361308566956234194828344871785637564310072846217849924097895086604329687641142882767205407245986957403384317222263349060331170518712381537467750196371747793148905191777045129458877749742726767167197622022566002853901398612960710078235218809661079120729750643350387992066768089853004824163475941860514997702824022740696416991767543034554699524384229973760795266701268587027352082391614778376352689436713638247275704327242192561113204352054335239367990346628303423329666217857210200411364838403221087683034682319627969980613282063007534859346700682527652628208873047132500539354921185864126640128283193920192557826501151992268230303838994954194214892855284325794493733329631274844184957772778340804650841398049533262525752172227569809657227855831579274249752714813619548829081529305309798204794732097748156202842211057837357320776014857092660439240956111107106231066908279497846588653734907438326145985234322126596736803999273918247892331386178564969558816218114952845135054899269827914310240726608260921659629616622753917989497362347520840072557268599687784941363418731173928847295863449794600854069406892309509033271574277497409410952892604340589294056942699529814805363764837021426358291303368168362195792245376979823207049925949699235732098276524827857820932837478990630459610671979704482207180420651863206141137605870992201398658720695089305399365639773192365399689659513095235363694318454547448066110839436304875162579738880149086703079624805630044925759312998011368633230503457227288401801532729573553548475228055102991596667611822002821375257411043058568428786148110892407503165345974684313627288846458269753543759667383753833950765337136216571592465597196552573593170016440386202248862766902127669151925032258636290423644149923238140259827544487821484612709198206966751581683888015826627046980894552948475687027978391616452556021762732226518024970539524358673524075768777423665494627746629937757599733728535221551322369005357029438370016756745576493172705604864250352445712952631789264612860302425094269747201101865989974541227461313816128660584575253273007476498354615725316315668543860309965520383734617838018430668673783324385017605340076941050343462096587565125357102278192547272461746074136035160239418983129047848481047829038897156594211466775045118020113415262610353902634909303615783141570151949790068774349636538262881543739647162319471103423025941483764141365541332606861683171634422998778280073689668247762797718850507278484369158608240495588443774927210489907970784763024276442800529608862463323312688299554008284639442933109140930215197255259659073124796947706237415268516331287054001667514358740065953925308761392979128012236043004815497832791417383351285734388997486587512345776819257939748667394720225522873212672792961922872709460019956009873775583770799893338313100071271119052148251335502825884448149075841139847811537652145011339785909445324452040830684609720827544316560112982610428186690283920830609292853306533263217792181419317434134930024788149495202360815568641510591314850223491687856024103510385565104038306462765355102006153445560380462888643133937726187589685698696915389522086246314878734318234531696043093251330072104288901911810241746679387407061714164048886320235704941264425707885094153872527625928763131328537819190424804969707547128591813458789822754876061339352649844789723082312209362622266877833643210140687038564089984189917282185423586272050446470275805204874495214979520682952190064318594598850236586021740755741451364988676273218008103153718481160336766544755429695649387485754931486791348234438862235697272972756394886359035440804611061840705185994250277303109936395792020979278659132196979101072659329498275791421577540237632028349203985726625078014796971713225131960953438558957564021110706291535380230459803503872133263047917560370272108114442327071496126578635086985510502017130017582037602673993871662764908267415622519091348058886847036393709289324033077856673819553179688175441302338089085862283060112527282291673336103771501607820336314540492996437989404431828138097378538909357056104262732604114515189809680664087494698888470125547903980965945198100292930796933981709192678081626233602697289093702953162731052299456421909462898131514120340082214287840639376562257918761045434487210454546720639588371423563273141123983848734782514141807569346012765392243930863511536334152160589085179677874559005557707256167958860260469212043034741799453663935602183653969759948056602436384615088660176508314698206480597217112897298063452698657408652117279020355479738360175621202035730318449173227757660784218181748048437125635584137382699647991584944062901265640701656840024977473405047031247347450565813764376494759860096454502407539130020896394578371893887135433497678401804227873064882012310738449630876475538871940709397761482999372001237276698962865447321990817734571937439382135569924424843171281981953958134851222394199773291774934418595484547242170320111047559640437013103703623766987199373149292749109170526971665718356260189942333888327983491107144930186074021973792632327372626196505209880723002808477311652674047224134871317686649232391822019300176476227048857335588573111427817761873800162382370285999152652952923238048201452707047622627577573340269127393949624212848743959689508142215913641010595513945155180470299057193463641985983407001714661601472209128816873857128422088887503513559375262379066229242789477041981552812407044753261240381505453811167639524122254270298648640450770746088472056326503846215254133740767680760124369249457346739484363734847337914245669920567859157267935212702604472043952987417646132860548247361440337708318194665438687923317797889536568153878809567852113374152579059841140800178532994852260336607420432915697955195175452395781899728120858015933175147116724980139571355397221718855840221857634705231070887602741550237173381983926964535749236115465056990507084965911465690665396708854156188872316232682208327325459410315779093022280169871810808155841232294036167982402330678928544133750720233523514168463429979858326969857565114192750154252563995273366513769746235436943023364704625731795346550347335602094495251222541194555640595129442288575624271833977480036830817167978744766410314570031089464893044949459408287784456855692823697690263115584893677691090816911798044012441944076246646046573043958318526585291318453751298093013232141495528427108934104709958467588884064574379638042326978668868310688288230526396380889256641530312517799079611124129147423153586556980279338006983883199404734192948594288821083642644758848219791224648796765826526324252301968631645146224069777278932718713105267833463038462243854088390738866843933463081107793897308947778056692017638746955137777840780820862026012887251992299873685113345533411092618223175696790811015481240579613516530777958286676190722819441699479738451482531088086508933883531774187218985416725766579273017760540351601020972705040974129147914150195112428029095518575923156884843055988721496707060248078965626745918794549624355699662149818497631262591366076634834033251652413582760174879578606627524892172875066880118018694385008976847808159916879059337046195106083143122346990414114171382437370423631178253909231308963109811029426945773178360251151182743768413991476143649981419966322793416092004998563493450541424832796313100350098046415309595848852851764948490468552711703627001546689342059090969161391409215242050320966289735547427379632228004596429234933602179576330023437739156999011148613160635633699018097122428067907229223952329746621739801012622102152648923738253335396028969530006736690901786549628457099848981536953751502744765989420188647525555733400096563186167738947828775597240926839675429069433101946485033051641677622907969348896699829152264428312482795957307103691010147994199035719406101610918513864229543456616403789157033066751649953844568866515541504059582023037191512090138049627146026111803655914822388425964115564158305501356525049433545788779398365498795832775652376985665723694969828810072548196413800206658922824014480680384773497389614834539881562147560412880738116221178810835388497865893656320108030142220460758244432919226387726358317315258093954917539462447649210532602997739270380360816301801584755500665410711985430468184443082345486684652350936805956671151035232182268350866218044286343133633857776843491467492616674234171348281939301554885819440262323117562432263458042204568029272015339080580151558532251572584401054024607027325042649873260622884272104708205824332320855197618325412720726504930312680799725997598398103726850437222132979809576841512572680650074103391305430209037936544614082481794096785080540319140471491187954444395551946808466620933442693819608645476396750574998407373761857744346349836403875967753114491633542099124458646299812988926778243456066692436581529509622168610373862593527722798958202163122815067159581584407271233711693253471535602269435846828118230135387986748345631911408161813214521563238615604054201561732191678989246044834150122438513630916191701311797602458488367124302926507279051731218696665964412193661654111886079045680178378139642696171546621714938940001239579790117694966787068539322214069416991763311049814120507508086323358194194496662043333753218959218401794282529295130280286054838337028895249404614424830108036614407757005053509919837130398342467565333133057192387845756443779453634385534914338364653410852225540130315672808710440658481825961889313524474197350315308246558141791545582328672858589074461445180542230655992199086920695094896291000861241680225242676827659405028331733732468294715528948225337004917260096510704607556768736269094532145638543869913557476972434788706387029770781504849329412478981270488382776805674916295389406448402793502426362705585197919342701791764298096015875429780930145852260799874659280084887818943586613037609320169013452178358200553695008864630117799072710222039225405971518939225678312748935203500513278914757459970825605334002073722809277436441452383551022020054684720403479116386463277098629365245528546137651877706963203693500687932914175221121576951256087988863874097473163510626100841874949147053810257107869531279893252685581157664955323317629442841169682946920915682994690321000265264073374471522050594464360498606476779368073743005756460479228269664668885780257789750207134520910209887067805787328074470624693426698172037527109600462462769608901827118067813321634902538495862202578021191098340043835314065634729167592070998127915000141518926117343346543450225546561397696419597422879851727153227375221746909949059937282817747339915310715889308061815141154126696479627166919823145963896398686006262898830951946742447544120023271608754943242171514730538781654009791544073923860162934618147557583688760676412502278065348135773662736394728870531901989924178945424258346943457929685506625859575225738129457164787326851401959488219356035117639706461298813242533441108031826090141947478047595178961464368191635861541629530358554839447844656635300200451614246367060646418453745279405010205330326419018811091875791682317709303816677597405856386673713954308964791928383034675055182714156704891761142456017738948248362628993699764491349669137481473835403889207147837160005865963642201130092170830321832313001879609246173896654108801840370386334983400917069092687487370730439719234926677558203069623017491921978459193698318974733628385191126090504391195704152902635873386676378755485899387731264700933310510544911443104587481536616528080508112604499495332200293656588762011163902340257417278870703337647202841577042524507450652640792896864322847805455990461919010784303972162180884429035450777837254573951002709943273923458237973316134725287216502136911481211799823568160712783769802318671050084148155602804773194514165494409813925071689250470765068174530555239187273357327340460874671230632289670446635106273026383072991551810431495590889824345456541193864942237278691416813536247999484957554161236692126363459177259384591981461067357883480921789336391505416625562850293100311340101731290927857220532903496167322474740713237031472542946418027991943449824271733717882413766464650145143879033172269915605771633241420000049787623800062105102188703887524818518513603660966718456441018245558792117323983570248257861986893851241610657511472349321238058540731497294085997776547146914546520200677787038850668142865207104183540437124874092264682390638739822343040847456909467670943954023981883524870332070399561760334176723575289655463494951317409043021971070213851657961178889501667182725440834841402446353993975715658819701811132603736159952929070599929956033571758400883897380269403077843092380121732652031618918260480125606175063829112248974409387613311670635866126756839012895205441054059412558099886161577953163376528157898339942571563590454512380475981813907789236661380446573958422933622114071358574468469791707003608057601354247815264867459888588216123187828800350521365572642277418326744044620239721777411800990632499906485777746963506105981525186771953980601104029162928165512184193640419278934243832830605837514717392763953788633860079772143088877962676337998973834653647163980684064404682644395251903499857121875948940803537217468867626820757996950973663927779062854535923614646998363136434620587908458528141095956438466334264626002467625121928354996784352291689003960273646521155994077955649020023370672433781798209796727885421555204098672245515998134082756092556473763744913636867173382235822398640162753567394365854995894144265048722914886868998124266192233341978436818487277984130493736891621811951810979118298912958578332143484035917505327465048582090175615543034691547351925301292671616285539750800733569001316329258421518892961577721550458141813982885546857098237842542962533153800189994005492693800634185731404022322119345371856253946098253991553686989407613817678904116822227133979316539712373469699866595181492206759537725175463639711794064538575604215672546280996733735742133469047243074247567567308316698833949108023693871259302813016663154712318149392981282594330815686148779522605866075989297923429641634313953417532698500177652592661145864638261757059951031693718993342952146958638546757248233545074850896034549042895149271922892326153827659600156719023757910715690742590923206854571703873689628432209945127654780483714731635303098460630070045237130394246115927523548082915092126841097475262168555652754270161545056205972341667068354896788900070648921793926754902312355833011397443311728140846451632028611665980960808233305660132841574973333286718095320777366290590625914423030718012698113561273331757875158925514053386125995389473048814990650118505350140887920491949674598494298217122556552810756474206582391522806415247237562984266296216423530155544788927594046828508819233523440299394158340477357868954244111687901285705727844797557174883772359030324119340147014372277605873825235390155994585629044132395184729104388620445891392450288776175593609909782664441885187017667661244683565356271562224664936589133930579035655396091509142972159402985848650880498485184140402782424706113515597834628095832628008644881965968128572081471368824770337275837219974639475534389579433575971131004328309884505518863241193887903713396891378092831719417956244792822446722955532722223658801022007256472097073798189496605150253159231298928881329030871629285668675188977401147493679199567661838971859768862000736609768720620593062730854639374005834146262549097707381752996924110504211896682109469094544793904711120695163661606966932204594537635510333647096908465775826466441861364478509631597774974107338829180600049345524416891899942112407005205303130308467945985171898105197350595685836396729479334155267145896854289087049199697833994771661567810907713740490990300194522662545832122565209835903621712042557982165649437141056301114963351693662564771474124701800599325664561114001788957817862152995201934305808310786065799095566968067810948670394031372920384519012207047328110336036390321406057613423875174960002494979863741100655495614855825684307896909293728296412770690475309102938815317030678967821079113105938410939770922970928408693399444210093655006249256941715598373789972606082364068332543031164677459014029238964937865631001799741817146646917883299709365588081194839564972611739758307011671858452785283590115737583944288058676679447076214213472026680255499592909473906078287972216784133256903280859203413225506691351820988497213441044282831711708196546056296507519258842051090009250933706655140105858560454373236678876937832579683058137389127564642261297042114425530230293754927150346203081050654970589419650531634431923932515982453158496566260758595071635963402143847166357791837259037739502173392385823564675243755168782683981407768452846341172178709042324812307124147581565934806996038481844812233447764505500285990832918857676492828861775229237284673723077907815705876595125915204030244365816868746029608953061554261281843375938946124976134315945519718770495555584889805772905585781151483338492770560139898222415940972726077559588283070858130315634481790869174077080592867120734130453817634067860501416822705352801885755041086450091834538438325901619459932896507340612499892853866944015571119885514591874787010625493784030702917491354598168128754500801680866075172937125704414461567604035783859260068937819892965559091900355164480630084035282340662454563769438416634856475852871687092191668678103627145348872435493565909558301319111334164843009695696331817809877592685566590149752188808729325542673301039571279132809704962295232151502170320026037429975540068774329123793004687508902742168284845017037260800921297457513636333173249983398682662185309546204757863468239709901009890888496655638504662940901018927155823887276861102556434503069495474545223381316657129377946416333103114305897139494302016739407327046869360639742758263182045059616772319172005354863644418720086253550207669004324394067536333700865266888714515655531141846994388572494726982165237519746002081427711168881930995166697182406587951302265410026294622445553732034573276166837500457723527985400924884644645695885116615740329328969983634776716711908549360837327500369516592425153360458695389908008269273870766347870330851500523773863137521509054336020159948728045714853429242719034769774150787047225041641686541792493853914471147109579331025767446316262089620587984610763501225625138516222010871364540018454789428687017401756425512568117863804036072062505861620277163617879790335187943873485499338490917360103620467433053444902693924644480654638659838059608714197560774911736147184614390387100855508601117034253286413427733125367917833502107376439687726628249830093378791237379168898760331325629577471841445210898550567415226393064281580298929341929712772875295840778556299012475230723108830024847690361989363341427970350604665857141340091335752070230228333858705349195466138007346800735518561780792160673617718351212592202578837216827370788572928383009809717491873401204892442634578515826477804322610379044743721047846016260848466210637117682284227623387390723162034791850798241559864585108278933217427058339278558320452011242866700742416600207893651755076577336616419411528696896295205173990179983105180477117665904272842116052607027610940160314837571771677224489115431427757957344397394167958404235734273961589766781177895639027175406922699774025667579591410310036648261064926824469550603154949255231415230819326005151583459786069234871948056271744199098965497984361887839135921594202822039979757151681305889498652658912820830006474423246345863692720579555349192412607026962321079773105250018188121958370069153499695106073869747368727631706616957929658490466229873481305805564515750998488846741985616013538098848060305033468599090579238746396318858335098962414391978609469840722183381052206164771909406926753676978012002001452327482787460841625170599980118628975959905658098655009093161883037693243762817326946572193876166073865225079156081838258218543362205494224657116207801452337489492997186448875647936461083709098283457973934896142401698878839896551114447910961324197596227812166352337725744146584143754700178408535981961714795130719487798107534333581648150171159556805946295329974615514689909679837325554775805512786890227423545087652965283918647378470331405490579815828975583814823985918617486333347811820298417038705118008507585138020040174948225286553458570623089489187178896239894017616058891337042868655385087585561923772691535330593810329685899955460494307393450486449491200984646381798702011306467945087453308706436998288735670958118996734004983015504256064701410510084741987481887780350781156029089709480191384679097683600700774074242943826680723991641719979316799269056253083168260760220446874020174458223735176827744935624061609892285401463131424665072578952870705145623664209033571490641949944561159889896853365899687147204996226873877795803679427076073176203692084768415269234514206057614017279672897820211479355570002401109281403956891939573348658905458167762037032075713393347535266638009372263055620686584103419462209366062758301577579071177604778930791645555825676799147321709098565086779465260666170928836152865630807459727461279061461180005311066296807072837972194835798788904132111625035160293275170918587514126398440745156811798538276298836875212757816259806501773310917515175024123456080286129310420207373038375489555592538747421773284483169108098100267851811991825289533183708365728090679798241476638556607836654788391970335778660208235379402387662667771246318235861652022327746839717212739567778184246494651228413370444074903188765371705654306446091482627122202223005077130818043101062669223284136039217222897667725173571559836718549087385475676275725063300036979827608998700643644667619385683748708468730052920608614102837437032607328088805847206033405204305403583192327722698476771399338126367997500818652006350074998623172738950344616828717449566658885402166290886400412353663078896011429230275596376841695363042661255678930164813174599229871862591507056503884937234148210238669709367660126943133912014061458076254696101326000664318336202287241796862653840741824266760586289741108295744483772230402498586564861802624266984905400026577699998599874182814001512321247377142590216515753807062310037910630027385988972797810987140354515338728610662404531879789389396756334570408185184537777344083848330199432500563590305884566298467585240307613246714032096128875848008199834845013648427885413265423386487653010939026639754133388194015040367679338883719269853552156106988021695804638560122954823568878611008206318584842691229066805464389226320514381531203368159532412832778286786771075464986867547236007437291587094202731734428587297757624656886444211962506551649065235322085993769170444781547565613782840907249109602714690721753132694181522315728942921745725330886010214510570234597433227151621162961593085218454249588043066201340870923481510973445400013175705899891594535576445101143433803848088603427957340848234546315271915883728546909187129131219072911396491603068977246380604110721141679320162204239140552320419939424312028621110707305524012518486639235297947266974093495545432290937960755710572196643923150591311013894745008693070526319873187621797781554721441851022684865667728117147867506511240655997983224267997929850603789557467766449081573724890535515275551270062240178417430266269331211132617019944274666967541695246357318614292494960861593548376040707342397396918333980003770692836225034920758287166884065390214176219888945067635636602284431095981363306737126887967225404059893868214896549749514783035923030555369772679761334862263372897077127644114739700269639822658382512683939247956460183438101344787268888650014775073315088562351182793303264162343697085968214507454430652691053375180541605407107233713644403592084408762126131865821875037023737216069093309547029255010434681167922779445561641092301248172228121772796224158689173669729782527974290689158643139596223856141488105956194703715830061533519910677823687197573624336811878311071271588442461904799558613957695716801337441404331386487518639902461744765269000421137365248329372511958181719829935120434766465810674802511256366069991238054814037744599823814940943750300322261793165539737269119085095479366097591641997323683638605733343250815712644610475275960625436358694645922723676149139465576059631930828747854155433869907784310169813851798503805837021361076511689624048164457402819936764922819756549931172127209836214129129949846757700817899323610946935127290025160242318362163113818921815699135199121311852161889382788814230212722261221488845141564282977981075818367768740149767878251370486611047899320071151389080980162314532326529733339152221954273165094794015791603264287744265455127836433078527590575928787587104429412101291448775017934858707588807446088047274248217881302359644662409308459959830858534189660056349482648946767643447343669226859997728332195781880488902718610359524424340735641790160228078714670174527511027271409319063844244448867090790143335988123607099605298609762291968609655091607682284150341602938744446369535054632649504909376262779328811367606362704610155345573687706670494061319494467036724808396884611621293992507149158757139896086523514352823945781740426322712784530095435659275923142021137736048764152086290751123574648800405387738629394212735639829959303217494467357737183512717950545654760009233797453189111862814229660179616543819052719773764576412221077529877197308526435104311754539595772344591873582360972116714029479687308033242339875563656724082361231740083025442723057061108747935368508818405581557678961984903329799402073571119932581860159589640492849096406388054078815809262269974460290036432893457175999971926201864298501271756339146731987288552343394087684737340114570269268869671803112085658680023399007773779747565084999144192082077670831713232432558891644118654447970428073208734319383133578122984143440830510305393449397102055166690699708652918383993961249964924354907148228615679684086320612450040837666040379346401694999600027325427868439092379013793248872385601643253689218540126539211434395558383906478410128981881124338421604354788335152306057194144942166932683167552524450451389396017259914274722170217991484749500914417335154750464181873445832651162400663341526199349316794106919317640303844660842355435241466537807962619449094565836003167411557266446004464428942765644009144759741460314715729431111836949056682637864466006373335158900446648711342950363258696478317981069974919900078339419973748404338193814245259794421127473019327235570981091195194771647510414898717221011282125564915824306156945393442768625494302002674074980383590266896711547723347897002031267384479231828095734981260982785692833367447523136916831292050051647001053059125880266041539992688814383837647447635434942195550414420218481665887723631405855775010750347546909960716358024715909426800520241981216467105862715210109627212818371950499290873719795955498897111867649873668100348575892004102823223124044067902953120493967911074671651860476688406554439807145170189105936555965932857897358096027063765302126315960877123658316335077528908090418698641783730348447855313645771566345171029017990870625959145928483649405484902927825582664147718765549669617039516646060152731661431265750628973004169448574454682488393176712234176733337266720920077017477850882584725012307594040798884159061331047800543929323750977999992667541044866785660718990200346066768572698054846067329991714867276287221095226830795676253763465322148479446207053890156303328034577739679462107234693839833770597649667709682897786647960818305736423685724911539923033276039497837560117237798675724833707309108205260663838872070732313222976040030194561687537721693926984489966665722781920357690784427421692274696678931261621255074113827981237613696083989465672657404209809676856201563861737452583353399013392323582306988988074465968012218122281402956534253286809410912575983050730454544589813665810292503294462765482372282047448394395485422556407451336993635604492386167768980630106171359788539156093785628266551768508958479496720879263334486278225075028157680630899734927974465074829262819759214762340967217209667531367679622471955004238312355141996158724479849860766284802547208971585617238203469167583944885053112068179966425100047973549884591870143386189021637445472819568197455800721992306712743800054903743181549299247934231049097641431793698634424506220862607356922383751784261344980161936080022143583128852481568874049014693935167178787727591009990549559111474952081865400631128358365797193251175864145886912900241377172159465153363630345557191446985436580512640447313279921158923818674672173290900121905495626813089821180467674221360714759675421931979579461161324710952828419716946273344796155410791387615834771900134253253686718883316714792260794780287648801024970474575197088489687696825495637941399953613195813336255504620728147598669268243262052451247569133614907881831138446163908857693232576473867306892857901578948817471077799131270903654811828919802076636524046620939728343555669410793196850904328851441905502277468408772298025201748593535569637292492026321654366262030217810444059383149587674838327170628313163757251250352083173078475837609557788998373462193227283084488496760024240926185386182772428428978558952365509310743287042001254038687453135344188355606447112258792844488710424475522207512666228099716665184826004278878329521634303545408980086665670431392180283567553062336062967501397559977220227671555467532803464607510942441468938711570476573613527992532717521297532695049819899941025462653881409386468900270727580973806227921699251695103000678252556227011024959217657533969270993512659496499399323224715750158622038806665316978334345069263186496638640535348510251797305302617607021445085883330369440795638190281257739133706560594786787893079920350138933601771361029405177696771030889555797972726168785740801763066016902883353106992487843239831820104970958430296362443377178929303790746628272538796903963491106590247157739446808185623183934746335533500115132505478466458355850941308977650233760819960505830856071691653810856425473649680325430404885550281864858769701587827112056530268935682251389245839178242005457439790859357037073389294084581876656847667097695537033483812793242465341767482076639418241455405789892950147864959377918578666941320124367795394668783944729940802764027277196650714947046613473501938412570142183530831454118806012201722207226039808149634354625265316857249827934320825014470340348414850498736615323444819090640341542387588566901048332036380367175518310603981458766287477401228270716561882786764843233595789837481349399483229333483197768189794955447362371416860522104002957605965190734684400816413368825066924831654917168062298165501815281781792226041176587758497415491307086837058406857505963616799062127062665503185162048949183969772633902628207180662485321199544609676308320304861934719746900117866508249041459071043169000630738207517468510251385147854069279809264258559757344455062444775575446475793719197279031840711838898161076138139539797634997860316372965428849913954351856041506849258339265723144488766045218996698665407737968023129472730850294766028416094754549528986039736733920274137849950646453663739956505766579427953856541965122855586548066473972156048948242985516266939567151670919547832022502105333863705216077423804570892193931504314665277655991351584654197428424353185558999768406575613254651146181335331507373892256004663151567015287845015331951037067711703136776541794756956862536296466706549805901901635278267150558174789375748197083079741517053691022214480293410610327023109301551005608553945600076352583703258693808268343442379922893030822661510651600648729388566917743636989623336936568384708287957425241706802381615935214310723705498430592902079704375545382400839164689595017565197140178565381449077378736154772125748468917084894401861290286424453567686563271448099822155432316806318680789560220731931520813253158815918411162240488957342801182392793813972493089879361320366808314517542692434657991250505424183666472596274442410708920625741690747895109309462224477841452993812216317666238770465241500446177662727400748499313907100384516128308047383486373168755977766081818239702143959670313690058276033020778610075441543879421520776857927535453626514896971674019806758175430745583315908260872652338847147101023004752694207112919759649847742953571024694223554190925077535044132072485689597567022147242584744681620338551398111174924749499486869567022218751647281994264327425116217660112737337883055224983916963327672959037418914947875523755749141769365997520365278470123325547555016214482342739712155943283374515091062760938648027933627482993796093975938634412707387689499338277184392276589414834781016590908013978671713193237398642254215873432935447214230701050910115631906448201280102218353903503046426273093016583903591917414836078429721555472252757767110240612272301414498786682186377769557417116003449503369665374186466898339736556127989314195493155085210519576365263209747854177633716612028965202345607841729231361234072276901792517371207987464895739757821263649538446018677632490017162628235056439367634940627970027631929664607136938882450433357618599836916868556754864184772593299642907848700341398152377866534390181719346259160544295768417481705017643610985234781126827701337085713741859020190369477406449653585461408496113936446189108000463229804034431268650742457377360273313579137346241548094646930240066941386288232992351465340493994081004015478787954510752913954765111981020511595822923133993169842179307492626326922803098535833220062402760307874564143635587926355023848372819642074321442071035574482134878060144344704197039949050423352171638710486260132960150467265423558080603093739516539128533228043642389920618860567484345776400094064312011140628112265840816246623144444239781484053366072418945883967029253735735724678587364519218554678673401873149247093860997853565484568725302888021165706885978301667132333832805980239847746985295446079730941608427318983649129811291225282153101283171074559555794605190525291005269157402253808133558993209298358975333305740814823040874603881634822113026990027640425900579479718392068257620677885676598894013320195353248199246642795965246259449072495560078891408346259316363868373098768888933872442641328709884919739991875930693217536958315402309870669323416663898229076992979018395416919513054831885086745404570558019519940572168652014225554363511117927619546027331857210980553688394067694791645043685491313274986143065803654582274238954065454833778726817961947270872431608308578893621754661652266839965740887899672995980335982947857025721021904286083097776685790010102297224409998458358987814183243487321691640535008660363809136561700790658135537089636322682261238024206397918214025425494060910902293622784734236644437821476826469408650324504829462462851617985653433415302845257981529806297781445046197153192315928092570710374566543439420088115568430002486950337178535102519374791914059110703393497268676846627289530520267209264640307819089435860718098909967048232394694340638187556926701701616266022548625901605965832802588671999903424273011317274013494751925076909549503327738529423098052234084043757419967131108714976017778212757332222356099329728901652715916590043560050804655713276307461696420554838841625602882151881558931020628584310340030105596723916547491173550351238988760453500458485834700196181813517011975386115551127827357365339197694096824110867830475414179590520942730446279310605548805435180660228481337540629520224338133650219119786235957228241191280474920550186344392018952834595149157947249881420929459939280528147632464362900313611408519767550674934500918583396563570315989297444139608935146952388376221405646796762969618464524295672517370941623220185867117956517141004100577487161389136846176791141515642362349821490422216112753822673540797717893448185866542395503822057677933486325874061138919282011798864385205931741028744903449034891361998699334154987115970192271745009945083363093904341025374144666451514410068135969591859779263646516261560936079445460309039537637825160651976902535317298316501634722386293547178144728923328814979489538721270323014376401913648802815551725396854213434112249922885106210526125431698987585791267934570884716342535142565369991846712232782090629546837310890983462389170998088980448846296063782774714456275208931727100147862230767416061247688649162924253079737376052006268427989585125186850194202515508783921981395036619586587124161227904077086959012650247304552763241964716307709291926516111760687944525183200230411068552084380363181429966284148673692870493195825994406881034972675005144885399466811223310404772354381674457309145662471190739674515392446678455275406663486144377010182541292849149151452117529377662928001853127398890707060881392331741685776846035019202312167602822400681473358266292243440429042946606711081057931478050482401642438698771548390972189018460912820692300035869496810156915755691075023459120378753781607080484182275212892424219830822285451355708824281045768182638580671257727803391776774038994812453367071339278490767779188045380352174046663716552607428870104011348907137260116850947354766183414473011174521643201152595860369107643894674306712084530836729301446235298483482543653393381305986519810308038009894191842129937021337485757106561495943943602873997273023980290911860587413696300810741414155783721115677426850279822960892959185133907064193467402666294109013326399890323296618210344663892994613781709590471398447055094879992491076672810861581216496106032844853713977332089857436604431516239395469190377574971968663343616187153930692902911556067971459830521567914365181693102151188329556945191801564285674591627141929498210447043324745581083673631238392822786851833694511019268027978199227174991313612990150740466185418279810702003429683262363017467893640524371318841559321227770093215015810013416364403894383814420381552940748310940717558061583379893506107576452066004470611880120574997199382993650028284393375510143259879880095027040250106390245639037506831728684871369595917017874670159200109498077795996108842149941557014996040356366230032882752682222910861834186494097573502289174507590424072530892843772749478745458611947784369664526164500368218647629637124558825555142076199782995886974218986919373992735789080872075971058630039501025379027236840360685665925055828935034011369741727021572252474493090067624289734776922460040462664268846542569659541162965342410899874103229311111999336947071786568207330353820970264400091773797285986857303331529073618737320455808539180717432203058559381387940368468505555635887988436825461526379962546823230596061756433973819290829087871287082820224490360381829413953001293762440348730152215346334321509624639987166427005487470863315452658900639014496202835428525810908016181899537708168385569891558106276312896509686137439832928148658775122648641598156137831315013772755836238030979760847920205155194342662300190019102734330816522290107460134756676723082859446358953829629041500451687180106808001505705708779415559608493873490518087158550523961137629232623597407942938937367943674532909020867204220114859278654179113656893804864944273517291252848699311099009388812022718224259554113185388437408833692665547927902057574280725821792304503805860569663255217109480569204637253176263906571569381351016976259244160729506146897357794288767356604300316335428663792613441727147125118274960594229815764717136165390518113949778718511907382171264948085459994497638596422548552743581371559601744384742240716913587534211635079512405221283007773410823459069317502653962113333038253062762014784299303540903013472310122218158050718496817768674994574196331107022640143737485973639115505708200627731701561582261673466318002808389021397448317762254752819115720610519508284713324852508828622032818650103329102603729598137352419539684538414872287490271565965578173529737934732656673161450689719516205532143174212109170690938737960063856582334472193738276130070370198994252945568481380438092982709205168206067488256020088935794403803504864939291641940482591603816884406351522113037276621674897109464780925215558620564066911182475443723082123749421949690781765551549940742183681067786816316809477300853637451631653920379015355683086411018798470456697171073476082603494603699133385520145937681806713998484514674251255027585467752048886011171990071904826807258236451551796775500019907736380176008477099688694143949466905943021226468176319284165926543868464776467018894894910383587030952405778285088398567109717129454045411369851601369379671494308289272793066584980535445646336714024932964359789810649324008196325326971457202560945618659768826195038069027598509582447734201493308996546905513292448611533014383822471432049089084658861702841581297240184366812798140415247168245720784014094374502823426902330043887067824569188388709670945652582579058130251778784844100626228757721584296656765603581286132205541503775854794620928999915581516574120424538810795235780253809790448013724306238659980039244933352555243672884476567769379483368035430251835049122980230431425678558469304818513438729832727094539753203020086697806424244668758008072031263386949269150322744978995383359182827181024852002021276935066209561104312403014552067394228031641520254417253239050371067018857850830249373061355984270272181380465248075352210859621248146017954489576125964643384852904290377998368574100281777485888492177212532709091268019748863373885429750925050225775262178692151248006610176762690367279741627975235175407853388673349212317558404550447043166373408154319840765066132324396992608978591200179907867389885215674695297004550892729652949486007180028447321210887017330099691867767712314437545926491484545609008463284544890152069515754037656216157622051701423140653073391704349780265436887529727674882804483739539472223579092780870870461185652806130712739797022432994301467578294061509021650236843821210605409041573895134265313925351047414256442296235103753113659884430027360106495125143305587615316407952761889353372788582658509517718586651115722342355086280348339138347928783368289554418071891583213443900993081718607521064469807329761119755135836359953296761945066765581689887044207479593908869060349150414620971353500317552207786652012421806361229543592294340474658777439005035630074428259189757899361788074388219496677814966236045149403307882471249580397421531401618059721635098497895897141824815149539543575421826987236454843682782889267969738754361623059648319869305596631500123759001408034696366268454211666571012997331906039601929292406850770252752070036850160797974326979543844463816804988936802951389970415262092603346975082324418128149926836581008168516610021680991254328268203203086182233948208067599572522673779838876508204444639205869062445569023575555461674417367140707241850876372012530636568600860071780887910621606199938325162040883256073244085943370892156676403012202631423180841530741278233259484374718745322777651337692272161893747399502672136852736792236229241237655805064238794824700030575129055226723178060781608353816680456733328625578282565999281568729663546119259309249327972217947109686989711480333044388618316462959256069532196161175240894091660961455286251850604289259112637014790694102935983033746724923864633362370273440717951543490071848842362587905984218409422072524868749557397975850473047718886604578572446675849068395910932401493037224928728318350063924261946349279071817374741570536088362809977690545007419682905245259361439915929648373369754606423955103309602997502086667725400102313821447768502234632757026472219188016249126796127199747160294665516092050115484932609532893313393679316725131324607770662589919097419666770160257829306803341858051299311949558022651117204488022674405265979071398626624272110167943342996814791111809047110367535649256193168326830225914966916720682990008042085837590809848644592709610271472973043928636954326674863091117919574620140937114261134619520161434042423614402247323199962384158126775737844871705195548250712471999992448616491067770021322787477527832207495512893296611611345773730860317436543601545099748230644021724008805193186143687511786457649421177810492299449752763735349709587371252234290563393701746967191877180824801693599309294847345666849933051741620500832408078596942112959216780208807070931724804374441599948487386462225059686985284380250620665839557258237914670621015836563702024502126054384978863435610512461272148486144378721394359537290362021691777457475691327830128361251033460135691017567859282840093917373068529386330998102793253650625562878670940680706343005758041952902442782919832816919996696643191594979174525505368250389393865860683253183296631550991302065412399484639976738512060978424426088262758112213938016266101636320421406626899221987712275461533915482211179213442760771552369074480510266303262756163790880362155086788057663005665694327401581479922077308161159690765174791973511235010110523018102680678535125276808134000097607592245868466241130220431647990769410622178819610539380041167841863979388481539177695079089988483511177495997951242028777746229343786981992304458135467219760167277998035768512987871395533613878460100831784967657261138676115728188499788045181212746300918698745107243083540637778828899217283380588775788094274749578809211604843261042428830509148703105748573692818270593195836571125969757510133340321426324594185774063254573074002104814513731379635318605607091243206663891407826867362652425831936946167628311593270656048593846913477328030850923563228688399764062899839227515769300013072824330009077713874846160497205893604355360491599469306724193297883633912444254732510972249528176172236271079073148739003051953521059160535281351650490316576599812784961632315851243625657194359096854013504993327085882984471276017500920280709767767676052887901746381577331648812562981182103821243396503064388810330758709617214444134876209850822829290154675282504929970704552675223579357208078849642229589329818996358916077570336092527487561447907432023649142798172584546000956250895227768811379408865172559888100108759661410707009363885926721299939907722965660804673286376406971869644519592403083023912031534195444563660892410092311754399967343179151379662110014708655136565490722746280048135764157345109622032292736460597714858203517781172514240604279273326831073696629217026914968212864853289420865663652914303099120781686954182469358593135138962956583747533638297323569952541060232629077763522210170020822829557219264445021192824288449411566962150294704599546684701132017767757898207418247689128414257630034668196988071094112240953403813449176549202863925663431073316621558759784629680901850546176560888411368808215574170698534565217403592988953318772215405384445374857737807478830067857927364515823398110247918796194785081447770443305323805005698648244593476144725267028615157658917449028166949092534976124379357550469222211485308888012681195227344509479674619069903373653232370135813751756516738389711507561781924988569614430945026238925279156823909257003892388276784044491167445175546355368340835167936469465648458891479238739359767726156615598688572703051478326172668671061864369681027509932076059703869876771628387490520162736914936162290709051716020405626930968323934790263991364180261339961014376324377922932447173325904617516453941104432320468028344712273265878139110618266678110639670671770668449592986083539231358005776734564371868315818951957524402372818461118265236710271632517098383136277195973977639449687652184796821270865779316969405596390068816314897344242293567215151686935520421687760294462632262656926974342480578183172195913629661783813683024278103180808981265325640632581377002853951068920762140067375301719020033598618428925652012109174979465227909420384139498606238156910891199288398082086092332277100454600053560666356713673776931483544889349280708667599668667830768472646820654055405715951709093482673477234284299229729320692530673059266737330050443409259999689076127931799624857878293174059079913517417106072972111828483970781421423915299659379094816791549375148820624878693512373861749101591024625055558706023280413716048100121873624792020592994487968135727278550494428573782296286886348411091485151209255015490289231088068431670134217357801856616789220816421720112086870456828106414649553758710913289382160770935250175781165601051429161026537762171977665062087489656548190881714629835876403873202596271294565466922882595025428903203231216107421820000908047817490524903269262694457596254799812521726783379829647282539091408955329950232720318344420406627297786481924750836853397501389044600735556535234563410035628055413063847350004061484651955451117656463502498104072353151739161118004026321360857930279325938033172583337896811104350690968441166962457868128955770621422436662790076767055031173929956543650929901695654591697232817497362946948316384463563333169266729088453267812828264676199848812421957855110587007388511268632729154260328988308004316735415487957945666785901752411940863175419622563763308883640449512416822113533284939057336650730663899220166426181471041980411997546537085122126719197808012986869500485083765099143177624251064269252247106815038189054194167452702142514192844276655465142557065513089271911869016264565449796801920100071837891558671739485912051667578480121910017942413445604576399850196964595783790654768974098234689009789743181314227768244028053400575611172549345855423691753433530013281323248537201870253835308482431640690950237072389658547563219538532947959288964384510138431117942752649131180679970312529632491931632964188673284317932830380552649706162937227154107471446948606823076158890945303487194664210614302172004928796093266725789367019633455597730364081300446634315273214566635857558647750007918743927464442512101812832166328850725972134349671216199462746512494858970482558510622820105672958464691031003721585970496761964934009094130224536711880195653151069333448326998146944920048521366115811251991184424250791952642203156563140035371843485071432728617384771336472514464073870906851552830909511986808998944578611704505847337326601015848268632264138846127603697650350008315641591539501739395553613571171315141226217222103290062871155962282444009880735223157939788713350988144675083493893729060323323193585361079508995711907756640985675854708962543015627929481435260807274000983565103426123870551883064817378701139586540793109074606639233327420647353602570330930632512707049042233537789011353957293162510027355247800119122531661750617505123192574791620297188977826109134485919733990376473029841231503742537070596203425976834410023173669022325548846829978758804938746657881420491527931039111263747442319006122358148655891291262341689063352225474239123246814078843623258636936012525333323706148273998766937004190058657451915902607268355484402700681126659054452458712235531044133847222505276857803552661667260613752349036905453742608511752822921485011985938131979033687645937913253042909306706716806214485241999021222303743997401079970749654788258184821577935777596173297878649689142548636521796414665608542796489671303033881571101381670438383537896703523161718567119899125412106983702798206229483004696305819961476030387049677573965938552059899409582407672544172436524980190916603572609479780373324524545516893189470349238454977307273816544641843461588552297438560471083966536350006825167579328283253271397001923203507185038045217674293652985262986852156071196220028557389755938235455120744555620494027667381303501844650733582457883336231816108771928295512436892660972018799344827179012111766395890243666946823252439830091991169014263922859675536448386104184683162926123007806972694071022074471386188517376945733758047429484392177531285391849590754297931598940291836871781244769967099337045227215348612830996236624749602841728360201607511033515070221058562587254747828277136786425523883328108178866224001804140048318680495228398651825056174287393018264445529372824475231038848912639283246524237105950895714670064479153412648433538090964409064463971922889135531123856958919961035097210886479450374601394971471767100668552208967915596321780559662756963915020843575394316843086477962201569605434697106384511619002075118545853309902437368866653832657821368349262520814794680608962264096190715436263853640886215266873596968090044388576876518663612029067375488928509284352787478209791152134276519719188349640620668478631501324603777838224814022191651944445648388410951819039505917532607128209215333615815569705511428084775701254319159109037996349213498845363666092653588488191942099427578133559027234136470990363312521907584762643640995497256109320263501880238730295821148642395739431176903420813708981491054795084158529399214519117435424266198040876749176849703697062994979082242863660892689615147227277467855672891542421531355067291693818242660422649086391808875191440662070919001536003652029455638170675342149532908353258212441621953533513046429873940516931278833003279871343116515453102638241943676382354972331560752032183867116487499812873663412801352787070820353049983448130656808753569461707150433525585825755241722973912474500062853356842990289155973473914124605138017233838433946472383772094607108392917527822002808804745391857554096667884937165390438691788894379714941622150066991759878995693021507979210616235402999817751069535484269258167743311556084070427991438806061835320273621323432102624705091549698534667117188682528281956603487175388530559477554096882977728554726392824098221848422188694624633214772648160273522079893347533125303496163643789098963397688836179590952433161343679952158973910814192235436419734451759584598146779501607273732766220894408621790939649823299318678006346546508177394917313470466683310934390053321478192081098667850273933753419192880764515981683636272147044436574325995686528244327149586821687468421253413132766777521574776743973758824425796043974152101998937905323855105747108975644387549582010566099285439377784160320166518305948235575648432061277813475784167593453660037970072092382431226026506499631861983368719693610993210089234175609133386560229244055974766471501466513656592155698067032203348881216270319841526420214414632592390696661859649227207310215494094502523280017985564913934533721939018835485444319780115314876333430979451606284802907945974004641155788730593368722705074380373159316793620047250174203994290383896001128941376737315836425826701264876855083824140616837103266988477781797064676424311821976911532234533062109515607926054239412465935045973261292867379129425398986076032118137672617274188206768545396443902484277230451274676921802925176454497676599763690623737187511457677878712890623822723678951191249296676627435772431143260396751858203922792757943081550792806969797648067115893571326045720383516666307555445064000159978625340852572023981421464100435847060731948488421302439162873472310468086626195217862764360886187914421477871119611511766780157719908604149037545651135412643505836827230588988332077673809414125361624028216119024045171276184182691310285359369823931445137729238090944011348440023296194550898975122002153044255642925855962764573483982978010446175221919974719762818984350487513453385360375967513618152943102991913269229287762484479610958763327155297189090104030041324631011772588824404651422852535308151118829710321862493568247470426855697374134100313447121458854906492958860002676111405023753494470046583032095457098143594056205646384951134061786377020766349391408133233000077653939426064845264393725485416116277305180975460430091012396469912540904889781993763257422094933486527041376962010820341729440478346802375964430393901977998358678179501419425543381146700867715859504376398615640356819902828150138710684920051755792912165085046753630962928735503485625165492421310967392472230286631824277563095734644631849610818694189201475010254456286904951019043178828121808320011396014710916685509302007058723117051124467109158404180726886982222073966655362667495532028772647366204136757734398802125260845738712672036806871323794263746710235091842500520708263398951508093598666736962690828136506648348671273977643937449717178742293268397083004662754792924968015176565098571525482316489246987934642846669721522690671406038587790593532316817493055962704204297874523690914258249980333866257420633177752445681750080399936511278453952910952745300804105992671516310914722827149043970561351554073677208662026548891709894244423379651334877425400720317084312206842830045425487287790458708869414335882272380755551737406361663163497512416842309162639479504998998575315921490096965533536573380725270986412254431494037433959425989799943266289746534059846195852084904724536727547407100499258570942964151325620064518087846338022091731246326360769904433178328981162411084074083127754129391040915603694000434158237203655290822733518854025028653590772859576123617220826055459026421643355736921399645749044860833055578570933652373933546738398511528493615767051266711706241759075539240073626672412206834625286629439672758606098885881758403271341193614533186883681063443112349953901369391910565773886827305978720863559155307808852840710939214105383939403719853002920688186156155541176180797189826982957840476373591369608651685951977643742444614059891568055304904078585570924737336871376879206114709710947862172681394005248970020339039047257341986790548431464490991160516237195166648205054605902526956247822937991709016809444403942285569407793679543346471308798078908162877119989630066102264082173712504279501345690783817875110930271017554658765109483197239392359521853234329405657186486507318039128719538636978683388706678824983674842605479843562904720663721324075414293104162174750271772278578764752378709892249466903170886297451742567911579320492605724251824342047859299671207507046419627542134024635068584336883644163468886281061970690341677663421413217857895323972154850877296326724605083788936062525444121496058470848660719504404624359498336797344396305670431133178122608341674189923347054561935559843219849557241299044927451593392562552817627144109954354599939542923776451478107991176410545919628886447634264002576970014526481200293427707107463596587085186133062429282984108598619509436459077791335369374142508574571549040265302296417997796990820264496209253705680027603597963425186554085965176414410017288880880228775929805462989752587064732010746268002767724161738012371078595453067871729162799073601135300917913128423828409055147458659409964195091097582753433110947493427826905987948991782847809535044606007139352356734648245452267119366448003667624377052436534202677564737751930642004414826177653986763196154099212123140079737817055152916015439598838797247088427761155166560423380750040262425062324222438825783253907639167540603503972528730902668379416299865033051360491240602831141318696538298772969049194617942217653216620196313339153560433511766731963430529632440572621389746825488416405049367921446514677040189421907503561052811418510218244889068982907537787388381305551002451153615711144320456507372729912023061592910903532007703142971262387125398247011570542412807420110285883361128092199152052979570352691333225687388077462937003934654458924231039803267064144422441541845242000885538283865775303098662350442667867828657171023743650274069899769423370609038257434407895514002306185357424521113254133060689971702549482527971157450292193201464211356552410553006689241678876896078576421882146970797816318978133829169068314757545177400683059907715907069208332372871732260154261144141062660230808269257432350992886612913354077177256740831507036082980967348636200046365315559429744477358860369634963647233426657237521281342644904669703124322610283207135169168824611174102515137392682690212244508457339130766445932639997453078994480780219618861024543625934827330781584524944292235495017229353325523879486431476925844241191836843633281359108085440588069429235474862083952782124400718464527659870888195597025606123522792721052401530875618605195478278758687858953936674986230983383771605940717897702908820357129187796991898480797879213315074275944410914780117830670009731228689516759900985144194802801821232330579552077612558754043260982180916796058203381309596218866413586548469262704605324619839496082909574312973098014700008902551868084319544459648705398475556049662228359356731914114384938591294108703607465255009629822779003182182094042301383822457474866375568780406309495345170657749720912982767567505055232519878733603155740016702987637371334734163143101039861839871595450906349622548019609769077003943791978753004774683250811300272057201462054894840182114012708752623087006098748183471543975091718282123414177469185940110512546439095095880882754539085910216087583099769832630969948524452538687048748292513036816440515177964188079959425113671924795401489631559321666655479422651648777645910398315374226674900474574431639846414681050901686905067923335873237585336131095394691965970230855296621982244811438628424216851211442315757049285723297768498249467675874778409734523295607219386932286585647707524557041597018755865905042856232031733821457885331774881482931318171212235417661263815622301689927143662870636892133629993339662311938096209757679163833121992250184490373964443551164879302588165807335428022527042479329291305596791590536787023712511493168926851434010150463344069395658131277476594256571664498273600886105877644592693026515163054828246392708815709045550158518455012068387094904660836717972472279800015142527221400448673732803622476924062231177865750961366258515479768691235695371103781621739066329912039569695131164625276682778550545561672096819170821510878220318936294241632369844704223201808393641607041101940079010469135673572915243456060713955966454223679606759929856973370528055910294723879991047555026041159570388130008572924964404840753155374789643615508326244804039482390761831814599465657118884753229748172613948869574415594614317840558904303342683990132047908347714189681900710023610664711346689301809656582400687837919997934824705083232551832867193322782387787038490823190185770868632370823166681885964695034325146074577058228999695031778674430256579985679999758739761992287923485790186561977710338548507477540777520172852973499196857799978648078295784328515214892604147618760905132496043984549783115059139623741848818034875262905336261603224355479770406741594036348849263746965176488696259168989199131157419310427808500681861831718867529561134819907565882091704876981907686522602955222911070139339652955186344082862750025927085460809716652311763648557138950548000770331514515859351760297224824773402382573763360175800714477979369961966817272744342562576824963720551986579837189391498146430362161270791522392191038595608529155823006820578204129961056958437492997220511700951029890190520818324181631168584605988960076536835034711300768724111949233622196052105714444082597398808283928355649292478275050172481188361667023305310638179153590408214116984998085584540500188956354201610352046788097890888194086379597978098742733542276986924803754251087558493441189837834825340123052925554018263795535727447178739076525383061147265943583464143023022860948951251825026541437381735752985321528391484374553622906373099266860728833853920393400745693301281839409742467435836835162727870045853114604232811374242233735542620751454299185871192773293125915358862381842524543858436047786622803380899200423299920680262499730135183573849805231561814318691022011454242433776848118516095739942553184915479166293068850598455382860737608914243151202653283766396453473856588301132174263620380752206316665363760311472227715517819204800107551002567568887015958937713202988015357740260616013072303136010812908535179186665170126060287157347978562001703499573651599158053579060315863969116596232803785416707901785902314261819999399886056945989336918388571769009995699851799285639816269219722815477651375727579308792053606275737244908416326821242400329031508512687320474899409325490546809209733564590886946792423569666960758667595776215624404176387991128591465178341763353268307263664236971590281648742356222314991062577723763127583992447356168870125212991991422094063905266594175673455743441070186521947001877774897086989021120877289450835355123949507308144776817785978526156424109901579962714593054569624408969969797306711156636078139555262383718747774271051247262399075651337259427595992642597339284222482567097406581801985700126232364181799365560932786167907368262412192524349347891497465905737226337814826968199393075227317161338544570183152009926510470243143213374967503885114682741691196787588870029985233227107018195808871860828198552808800318354054601783779667767964967592538069608622450685575983674332323221895182622513979364744250753790140569275193248480524757953672062470771132764336843498660977061849286446799331762729146283880983729073780015875615420527386099278819929963673871953330432746241460364468806606890732977064103391123450490899908128357194390267768185066801227822141799489654332585811262208094972411398161969353725955275261493320947296627656466892296552713977462057809671654545340017453277484965773774868788947428640207810690680435056001392495224103773502147042533945936338216014406364616954311788476062789285009523255068407004682808582251207772073528269884079161238060117179503133007965013588478650118976873410127278601970792704592177026827887524131568749826847807970701136027380669961270102278208879593806907238279982023904807847993790366205609368720958126337795085053542452739037314924576682440022322750664032939987708060317404831222295169242190455101493921960076676309065435596092223441221486218035838632995543480081356474617114130202353277925024083780173251778493026186814278520060117501495213309013516226302077575859488454844558317218340575124802053421600050351017459297792915550623578398869052526784352763144092285763922679955291928369115000667311384604061244491029792801082456514312725490489497014942140563240441093007461766273023455987745565033383967127133625304654389107757798651139539619164866343983124534862238431382368201211676153738390540805254391397369276067809516218441800056155791668250974412392715051849734934390772993657018683799885106222121209807008762003599448890134643739047023309445437675998034839398503385872938032320075655008444162134061276513401947260638794766435038848887100446617337018528598885500440261260907410843590194784766375129953198234347136408390423982700423891642338417229163810691524699937063551887735593684697418472529921701957267784905048322108078786935286872336252989362907706833564430061684683115005445335040829154259415650676008901155057385994534864760152464807633598959473239698354341356876578781303159183929249316453038055426788134859432085894394797783519151599770147746227251872267213960770753536672832280944269868305329078330591313855037044660352252449981274712467856967339561894424995603526122677022029641830024329336399951879358681038799793637294735274560521515238181655130839877398114293688648990748792580794583783522766350973292483442556152247097016625708549812551184537948734315086718052350752683328067595255335379671412415666837978108666294366611952441820814348708735517706910165018179694604644224469955579187402647789168396421108739787502265406868638321392186905579783169944176418888767215478108572676633694667184924690591050695594476252943954938340722077992492657242690656630556448206047151884185619165735965864746047874012414818612044162411968954708828152078178356858250791813160564041109870449994325100156095839105643505724758172906482137305587347675014446160998267242029245365924247860029923341512923523197558830359923827764536609577904944225360769769006991809828122025736578839348522757056535588744869607196282580970954919188342282039235719248677274048932341838270037134871359314677086288705387807715282369010778900983307504151141078106855082878513204231911940315385496149030042760713228728451422958895653120107712062787272801645082052017390637897805161180044113317016294501177421726294580387256074671442954212940620615505177278690396419540255826475741685313544065750796806293547072154622377957429731132502156632416654941793739845071990711180645444869909153577183881431258756468260201377022244170022397546797302350910126376815800796098625151256216092232677353685874527322295222915346507962575555555737853936564564055667176666062321384668186061528819296156299636776153920754029592233272123387829572459327841574330522039479387358063952710165999439690432464862438695985217312727137640224783588869551711547225309073987062001208902590154254998955256580862822749803428212442662730571026086820622595901726772216306525718143791676482865251228918837697718999457351079050604723200659344761073365760884635666233734099073197429366626100705454281030790309097167073217152806390992486281119848234490097073057028128850834235597361529870623402841670373214348979993052918016657741918717923785222594639432754702650689073851303838170288575370925659937506755498560088961779485595790533987441721111168050777615274248317932297073923934771124244525284306154649404130684723415916626750297165733947412703392096254703217222177645563674407108911061781431935996208553070944052952793988091975417017527866638934113570588750173293236788997738568932376518623173657082058711860000691383362807319281365049320855813100277291685829103891537645725557888035771127849053568778982807439694402872622920731763044450229933455511627535383940872857348482221700388511101224944318543066724196993970059495979939414405593324903852925850786493804931346004458889334136701099330951029703519928795070383161281234837550990853053623177168706108547744498599041466250928688862500319191796043553925025160702031108906368577361029895244161300733788717811487198408832803245994882900948415629439936577043668262676130048394865959394050956250925744570601457877281056302262566176190013939254292793230055922210881175233723817277569902868334974454530137187562312337658715483852154585000095699998381417121484069796609537575823878926639825293698091582365272819268304999047733434923951643834883467653925753056836287806532056389292589835638808730947182317611110373914964139884954310218293994451249109815362858605183749076864977344401514343132594729303843609570147268478749294793950605220581345066360946213032383407173869210400747375986603029904050937184392199021725855497920582555326115355671980840121963855739448168693368860181442845143123584172374431607123665921837507155851576719527167704549334741833543965835833485379778928359441218996145481883102855600670653323324815713748513412215345738472189434198900349597494136811018584188597737726843230582312559034974667481518590743519977639069924045966752252900376506073368708909964691064362743361301478622625827056442789486774983083121067410062763251355350873302209480108865841894778902248822100601098710576136428406643165677798954286636502246844664882001047751266089544167383533330194734232329292755634679705658302275936555856887899359751385783041708712273169572707178869920762367888043358707430560167890202748295908439344330434281810156969599466383550939292807524924926630972056984433346185448850554223369030500489943636765448519729206083383902738166801817674244824833520362068232592898478581091901224540766952141495350600302454345898356182735709509994314644134444160343590831902581152191809707218065499788204085152837346235063834750276884310978926604380779795429763726830313173132854973248718506180889362810285123622897101293208065252993521810089415818359994515874452907980391095849592571295238010963827831987233560304697514237412644316154343465379510228829672856296722764519672674258961674976160982026739722357424410437991768768947303478587633400517996494546840847383778424643516821128390684466403240648499432932283917942000424672505963773336195201633094620393629647949239275252652106644531715619653783669900527921338690601760749971642046023628682869388085943517946475247101204986130216001009277355485720481647926215920872388051921620812383967923036262333900013667144200584593644767040666492189266910750967281746420309203964968885832178163296376826291577781270435976126926639136176836577779396456113763150307005358863601542445922703631948544360330635126456421475217906732985501660356272088983280081275416328618607897499737407861115210130293206020635754402388038626297736679596116876365348410293938498017086652297520059055127444624214427057442086228646622330312534966117807171733274327872699934623395696739727373165148797594374023218737609694474056258209465773834255753566466398157533495343010105686169078998017835216575508733317766854322507644654349515925157954143246265334681624537326375513416271981553050900876481618561081826702200274702774322582270247291633231701442120728337334983503901481801918136890093413333136059166353594307010089159494664252125439205264831535508460997799181225574686241212989069921008238190166863703072129513107898461023376147692651848109756990013473483498741352721225366141562243065133729525802520364403510260319321610287865954075565026413228838010357429821619868671272020179853898707132481634792865442094495847393650280655639218947366836753760393980694763069375656998525199792994714650242916708066761089457645127462769145637511043863584833958422828568854564185127960107271553613884032449664251923258753092168357931416906079977884326385255439192701538201350126811728901210519679459139401472224018738094170734550437418636193131963414193691352630020783625032060380676550311616107930804029937307465135685540389500159590585480637904449180206973627054937924542583634056178781669427622269106232527673517814803074393419312395332169890332391626300788228354107223650977063951334984705913244183199209090362393062881168240124340479832148193966016540534725973262549827744431967394064901155520404851774532616437453103533794470398262148807342846754597313966355251480651781560865629512401847118315708782004024044287126584104705442790114671209990418148525618928303635628646666206580885112397478369490846237540888419761578313018497362262406429528637826763353532096542385411262031918197390470820678124292444206183316960507003509280196737749799498915221024118806220393977329587350527536852136646376237639171307112382875302629782455969784548455841620494263166567041778461425363717590295444762293438957176663265345492944285677625599594018503939511835513108577259233083600850974560290380876801772686637764647629795489492802645702234653261682280845824936642881860780685472270770471850537130203360118242442739347125630078319487713066242362391747462892820698086832777420633605683250934142935230587144936671731305049125267293680004987213119973286235612609401699256653988873033516705010286550524176695110852826231643588879221927385311123015168560748811141975180122940095724232816339476533754877920066619304137202991783225221496966516800537130147930333393924196455336691797040861934423299930759884483122411378157526017462245280885206890558968103310211111102347370802866416942570233473563834597029122362680255435764285266325578406936769308141350598567590603410265266483225188272802346618002926826167646163528109113648522310185817266528429658964515140666509033784109501711488118271454136831885799225370659959700272857254863175767536261683041407912184893904384952299385039092391660403902957728308681331977609085372947588177870028528626210286680193996724692962406544781012128064438028714503305183038718099020694754137041246250506411342399326312632702285583827797325394325694374820712313313978812089769365816698447452763545562525410480596139396552055584553090332447656312595269671703644910530232028142528829918704386980691701352218047401550971936146044915185126178070637962176752108060787879415368500096104449092807388618050436984906875463065204896405289112813104951072379152477442150129292176957171223680313865673144710861928898759557375909900361214299073466629350878376714780469978107555533384790539844704207407725397543227129448004080357609116566589337708334362801309224738537925857287591658234062345148342226874890701516465886796568282890723814658368675101080561684170611190802365604256383875735722230785936466047910267675946894056502213477278871602736317916428705001682517187661702205696328847147214971351384097175720457585354518262734884901351663896958028981752101590289064906842043595244213482487466151797179715925913044340800878820140829757867647535373769182238429444123191235915007483259743056338913159471306494431798881536608111805594791967514186850558098989748606288286084686262915591195847300596658145447253478162757682605017937570376813345813838771190470501387611510566694355619166763193913333800152073420008214689739277044665021159547869489802144019732291823537566710145541742233396356405347952344609919669798881200397448681104463741307771516873391950827256433545452378647855107426622204271692326858368642997191208031244438679524331060329529988097484291692107695597215212678644301382746878275343683186989923978477872461990402301871966789090237692300848571941728153825655971180704653488288441962866470644631227545141649031857226529586512045266912473973430649149292517103159687318982120076479898553612444923997694675632157421485332067469424416411098318038727140835448738128538389771503687939286402794061252966324034086688054453192335819313630511620182558343087922182565341410980450590684205128691154074204647379867134717819881328944563184092676331528897762004523851647524785171522212644124198658596614836185645953286577271487191247368281342275276493321262504127076086221962698453649095840734359337455401990707048936597071802531055816071258269616285640742224078071098166206421918576323454765740408578494150297267395493191387528858185106707423877831839367270001970502650730916390695754278702376539423697879723592212627078459999741449122094582354079772665292817416336757835530859514925612737862039589273713990177458678638817793493338501074497204766870101705486522379052287157061353777549310573525572637163066068471941763945277519695237081133586145760573389556487747454456805087900435941163273290196074538468121919944022561621708493233120465253058010216847887186536392665246668630798215341334209724131579959874491597211476385004138390058290344064683686695621486431268065851260689825393590520475661729391996839732087291626499563793374371094623616390219251870041164724145955160630231980792886223387568213539413745094318066153749183469346522505777345525342845936124968854234372768336302018594790488920899543791014346552654179896335384980114541597018403185630095193924077356588249758484344042426696271966720091754343358127773407268885355672902376737165376013628643033121206815361471316425825798556429120987341518173351622160316631617779272095329325834907166315585793018172303618891381154334943465795337509618505738621184640138881230322757908177888950737929851503367891796889245331076627073724670507300712949236415863528299647433764809838778479883971838260681058617334020281012560343268026532125617463891679767655146603519420285161825428111025804827611395312741038945044582269316781540129707856915938719177722887721474099897631047503325936522100146772008948840603743550131987704246729934367723426573300795317844690282518853236265965903960459544146985394534178607135028709235736143547136273060129194462055621648847433353093017591084722746549509823649165435585854102769242461927597378899019207221356640700409360043739642867297053408348632061121694353695152168479215918592251661682869641658180804503484093290929531196410842575860038684825681035528025761526722747229906302430199421028869968848981141224246636228642811154556994978893950678717304493686727370281370365398671617931204033926833690609653861281790133240158022423881875304692403382311809992436788311540515371352968707705977757599530780783676017446454273293407927697422112816500849526050542078696587848783898031331823455754809261774210343781843589280300531892141947965001225010906401192356490167323759126732573976150591160404143927190270588022714236832423526191126316184136367570614645328890594753151995088855041311619493691569592982966427060560242586719756663389739769063971311376352061865403789726205147230396454027833782433397656008453302913334156832887860093568445081063445348287923119247506441686085194364743974028819106577644803048449148696058158142879837393601637988687843585321672339891116895403160582571783023088169287673093942337054756215288185305925458516887104120340960869857907577512308098908245916372792746871028305959649224887504668769692332252765851342589037456584687674445661902453625350907759855014150369241790503435092254725299543607225797393302628424489084407824325473966188716793533341146465402951863059730795893333965023375973337127625877750618119610862557329090900256144096992706854325906725647144676464789155902938685927018933094738947108036795712380571446622296472797724375097953546153736100776981743471243895725851932159840392649095830332815320895678239382526517377149383330542631680287814856888650911295242695438866998456257873213535477307495613881753846185738212432188969786773755747547898029821103485301356925594684657896418101949306255594662184038320416825699582108072733983429150791589379521785281921327867127950958889632717603869706398438982057151761554715511045497975962997335710043407866706147835949751251581639721597618065895974627502923071773311933621964458122309504729209916668612605333481578781966228029391805651821222164190806183518712089065326730544499726595918763833781219527210513351721173823376175224417224763844278830027638515855634459859461420915535832788080569034434344037659688115327588366434570211338017240967231456676013808250778163030508021222066023360629871937737327099778445903837909954744542546855154209696891166157752450979505837191700839996172461971419591036897526716634789862354754379777190762290542435811062924104810606410493305281887897677769823248034182401188360331133587114827583470734930451063801338370470274220620765495540170447610734861681911667504391687378558777384344337098020813427685843089599021023110737518837599191127865827527276329689648701220444373626432511222137403927194537572520586154043935756018996410910257587347351852231538845771171903737550679440833981758379644255278846671989070203599430359378962758153766820822185076862235983142676153308932505457803050906550926441287170192565028513015628924295580660918536391315060521226037603232969063539762719361631080864652420665347207565081884109126659963687234656821124830197375917210607913530756795954199318774414227697080510434741291833574896472626152383839247989058148110303729571989256369904415689597671455588687801232280673997146375191254229808349445531690142651546922557130562201230468130129061211923881366236439377202755949265007037238976929298094682323026935468966461328028165130996167670278186764013301643628957242484367494208924429651978649954110374351073588942770334409285922389937995251620744998897270524342178467063984395376145795993102209391781952520451591389684293852552349627972481119858917645896022244131272822763220234828338482627874514991889840336928422159209805732928832771666376955981470186963152043580520666129697500582694016174085510042141772893335723541135262656381461929580835837415875331804146140991290295835735841643317897803789054759852037676290495917061330203532620431152859091804830512007209976780161992457576231819579986319552916202797715598223566315588048364308014070635709825574619610896924928137080331654212288557138662266292237106325975569512960066086307173091783829370140719319318759793790155468590111704691749199661276898942433193382466240836879297484241475725614936050304018833598372918555960981287532903693091682444399347054668169607995441682296344871075654758001106690588848144289978852652396040091023973652274054735595153417854093240081579769388748049564173979408175981181250854334281446293775340560768464676289631206524566757868042707529413084092201721175865645027154717457388943638121818900687751731581746776708772558352337656538934081728981260928311555298083405617366187905581257054650597969825298659663878618927708295724519079171069249363715052638028853997096311839138657537207766431442923257236396211804025790187105327237718971602060399211256589457994305687048181735168833663840994132216473261273921699220539877388418450894560385456926070190435854061814690716188908226556207046613407737565585264357119005641330332191466842369772981482802928328493261326291820282678432930270704318958849294123681245602114728814091292000943400045084429200602179711409120057256412042887988551172305339120316916952107484546644113641116831615784290899888418812710057755135280437908803056887353453951228524134467312092899780152496206522732543233585863251122931139682843281567102028378589040617946187637565229229407769515938244397917840339266475900649057796426029711810131452810376982287484469065765604068460483662717690454914956876197352969659322357123020168033299863335227013111324724584815029338657128771934549855966558519437791617584033134846412777781930765730623348626936185333536794006612100250599102661239703919933816073347489761390471644581544001788667780453902160610643445949679646944329878873534124080084995718070358801473930660608803829939428914982773499463783908410663020438789811806456920034009387702194458633822681140116758822182756946985312640809306977018201406535928115539218883657761791621472679004235432429425240761858041085573368346929875002030940217627266609081908289932989502524353757914685255394698454380603530049033736967774499319124878045153118946077513663707535464858305698566957529313392107663752131748014987737851886005569394246233497081391563948072840909680558648510871309761562758795096556167506120570524504221050038855557487031341551048521765771062525641865384262016659469122597330612820045948052699072647222580386958512063477263267383953087809787131298853434693938205480698199120807617992580199641959340005310035518795869510018802488761881736620145422265494801032675127857498428264225276013258210029299253559588395121078853546558941205847230294517154440749234527371464752065773312392625511536317991038602057596943441318796036279128040518623903811476189229205132171512248887635469499116485848515153406343260557303195357029866312873057898810948773185045892380825558380607453121425660538873811218616132240433653315335202566779072131311042756822044639855417951334486207418499148274577094209444229723091325478472623935265575199047741745891583505112139678608313848055822050133662844793434009515866040265752137887557906329525133754315049717352911957741537054572291326379549555488310242516904127676915469789034958107354040174662109432096242477728652241565095094907747951415846726844730464825221732678973896621098245448543042895600662712234610868528171229591198368226947149261507895087817977370034418443663211733627839832252821372637546953546368437954321369672692203984076997301863847402108132632442123152743391286368756052452854031976692070601322623727753961900674889180489413959976592151959909648931688766367219290839218515657348662079137395065233975018280277398653997275372576360104508962677549408258672509915603721769072735182898074730873583173410188021679633557748968748002772086430776533757383517729910057450609045420413359002855614366151911586175808165470879294785151484572511087486609483436876065526048478015833987420629454926474420072913148812959761252702641540944944085259779747090666286691898739293736365011244827818872001720153251126298087897304116215485312828692843634079077892207143506824653901129024665621081650285712590490660500608481128219537878487722482525470797496364071192608166466769575343096062959516653494334113441567443474040071797047281217238903147776503406181741756929177554887434008167361439905383619212765620253964360061954792733426098955196138013331026238273645553115469017696117572408242971666409649232459426573205156274413976892781078471741085274678139484006937928660891792104825482681934215580105033088442279912583657770338858218700770413780264735910524735533564874224229574973773203715645435799704433405350095181902871351220796772538409054941250694673465556653024830872881293734372532066707025124237840707500774289522082940973700059297672481126257318968089687421196053552093641015156597030574364477198959609096330580131280638241219534179740682750252819107138885035360356068754539127016091208144488323775535738535626542748343854186923910128100506591858065475336862998095197580400805006268624786156655532358277229143594890091974727112609628552249437639036735594740913854127578561593705441313519337303624935217664085365787145110912739814015546053989852832370947761661394899574860402114071574395023676673170223801934307384423462416641539243990894906913356067392664283888697353669393366204013615967021956358644771913151506127275880405135666976665603249526692953996003958658430224771160282593043173516017812833166676867030255071132249255918349443722403968659341873306712057972214322559091764197807748616737660128686429365037859745499702747514881756328672849597905598822443153302748563525857175213616882076751367341652201039380342294173894670002921225081729604863569124324170371855551880708676689699553776378008437664715057005873712359354511177647873192902914857569219487926838280366294463616897457487039142214854307469783056274520370600031495552387938471165331590094909957494497460360465066675476631276076453546141146896382562948705793114518976751776978119717407315994694616221596846841835943384442822531132419725663921458250020661598672676687090880664520182643192954619673699851697702469865645900162580628510549439571195708547004111843053094386803828929747285312306162664703142967457276580316945308437005659714949285077795101501292219675724853170320203491162684384174836248424614389062209954178539577239823110037906947121673120643700068554077678912747988011767536355530351945296885909562115182582468507558720856890076911213922616818168560962443175838341342832375786837136922452201607116611033338999198071483789296973216005778402684306540149545137026184072510627058593821184698819269491768057796017963482777422381809118058145495189927192967043453399501047604220915443150892938934923421493334436106001118294684330010961178840709202987178503301535093335279870952195600806198301456741552412387173692322547806826787783993259112693449411066788723264269000338163450147574205008108626070439370284163381596180607596221956396600362971399825422827663177399044168219061858130859020283755691349466734780458116582183355193916902735664789428930357559309009465973283444403098587063593536685854471805418790392898407454785739398648435116717763361815697318767988043560103212460962745447790867316062075901043896890249971953472375677231051021853291589103069585130325899821486817801890936559101218193066086000362551765754784477257049467593146983438682480876686243155758814424197930092356549814445135324151723849277250196586543472379300544322973641954016983850211036581712026078591925359729316049133701406277024436550776995054682407191670949201923864957520572931012144746324044379701463037902542589607763319677925224001916665651602721796765348886936993603763987384207200146613599864708634435924352189828258062952399749962338295411466282496691748758684834557186787034496075080602106621592130996215136984563816052600215274798067225759919963021173723410410416866869839292487783110701584515146045918317826695982529251031307739428989367724667978654046366066402125784279384061325698256130703238643781137032858976440803682328691363230001683427585050479685569518986533861402645877613970519604475919626812818790998625101215773551135525998894665381589748149136772331559436517229515504805260624232473325038553861284161616377899978015830375331108773925256584567873817041815677556003390176975537408102135315686333164108436423926770199781003118670056427799676433091040759496499680400165034302659756803323495725329659907531272930642555990793780172093129876071159931452686418345644725770238362857049189569290161438164645074874684345266977753737866628221007865282792495623926571730469176143789816033613437312624987920230833359438198655959709087765841871960979397511464614713732699123250079043656647486093232352966608836847099414513335319824213696525018461097408293174254355628392449744527814692104747600403390086687732557587748715094893443541411675513071902384252539590148075807423912127480015379819485806798020040464009345179808287613219226970981879215427216109180740841025396286567465919006219793335468419070563622300005870974534713737311891267470451488162820360449360608760186149897067027467378388341074362740472854650433628185473303217665348370976820919494250736144557566371176851580855412701691143045856798401260754771846165019832618917464191798062708215218798115914163559270194326310474564095790025866652990890142371548945872500248660118186631156987647265319765236465073807357496281715680316476796764578555178501461161669367916940390586742293964274396424381222480311597247246876677031853595104397774751577285141762440943314952537137041763479832839157186115112176379856992045621840779238477511184945788527949816295226079874553020723908196476655520288184306580417565080084562213322827453725059805679491772690862038239827697923910128156856641375756055918329478756045731667183406454275865360623357215115679722026401180295190605599643445915281960252002304040925218384402647371482278792142434504307932903006563269954128871316343159355128768744359959638003108084550288834544110223508095416536065691393901463668953038786371356995590349212624814347259971840567073233933526519804352100271183912639270807646030009774187945907729766647498593571510783569247758337804716520625234718944248374610792483201312025141452140636006480942515191156955004355764357570273339586882461051215487878455443221655533534120559555141307523323424456104769140411168152441488066412726784495749264292123995275011978272648594048218070218674308436684873191108323580224904303106493486357874237032748576833167062250971925726770839836559685414351050133071511137851106195213719834408112980183736659912587274180329599952364635631222218609925280329517238676021275916653933224956060001433794697579054754772200785388371246735345349294920283139859870331066044393657333264763004089008392075974326223885013621734513124870085684103407743038915520745983834647433321988284443122592030927259052155211508086651465732418479353657762555795581775568623496054498851325546134005343183795316756359823993436701160430359703569879401860430746018424490073558354962728649583158138361429328568010167740519317042812697995477103080601868541254932384247359472097432246495884115847804543441418606625197717158785226428016575807675458443395504471417860081639378343516580832430690886737717203172473071929570163098916565356327647335456007122820701261086924771574033524732394113477670509377997585820923098083591764949547758006038817893218924032119682726054555423529037292334872017037003992976743409732589283786995736232816120037455844244477573629584118882739622049654706080442987735102814481564539935707693752104535102922125034109177231995896821679536575128799506654954971496630711230380083594684514850534083832381514542423477507409468755972182401939404199422402642783432539978805577954741015013958711256926954177393256220802943280870162009465470641270387183069743686297030709243075946873941843176293446187466219350004400696495391142291638093686164377086247286393302978934670990521075709805662109489470814208519219157434660523291640275430992818368557509814231912934241008476029249966295795991973323694121330644055066711501267464232049315183850619459642799548202552527656719013135412201376972928692695309390034554398487289215908317809697824148289749628516076400136243202149648472773629828943234973736309992388923611336987687242995746151467124327978790633110995862328863108740324952675878512118364884657707271298914934768094587200778427982857397567954169956199653920559789377257845360482778098867432307149885527385723829731923746952311437163579031230422011526486018110994878563471787657405968675377455815431386208121982319574354502105715181527107761881224484899450275980271587370399227700482210950635409886004189423847859340112211438044944800502240022794879377080063792712281102869896477240908748128758559324402713408467172512880489563807610654326562759237963075400059019023627500398500360954017636040273958206567850853107686564822292755696464662767534477591327721940918400237752530412478537936327542100170495907536058671927250158898413641173415844909632688047734506412558474650562601304886188664471602071008603402032306108074847063776259731423103213535972489089584168185119665977256830319611111597409388376860551093841556463913636916197914079060895484888457415805447902488846939549559306533945244856632899244144859807455732431766016314114184622954393890765924609740459533136068976345567582413322988077295356375411124955598336629645063788370932159798735307323734256138099279068726338482628621776409951301617776246576749259516689221956036048758484182282759420046760357275320104004253223611175220301291435827549751828055403390917403094657686091436117019301391373259649040875858861671318496882023395790935668186449189467679767343297521507010285523594654278097915976673664471378408380791049749579315287856237901523901451939740370200870560943317839228726143490195791978442584192747046404116809090758684118912341621500082735611008510540392824793603594414908630678356244395392620756092590179393702329120229578413093101290578288745973085154046908934371634421339976158506489783976788123096371328127807711065018658149277960365487020852228513894223326483058003207188787193732387160649387092266956960207479410562029604125608416413919401186293162083200144743960607303577073350118243438006851893449795207796510112125219655360402920215705785493329940281164396952428704028825976706904610601802175034964267978751487729377226451229100766108514097853750541803483546147957538093514445612308036843803776071449017926550045138877443887321014850121172831660723872475621381439791828909130163329633057576843675834684450266186740040554060674090881483752774148581154503675609986151874766764086185840971012152032044639668404865933826106446720644265780054960411394312832264407018148277731741321706291805723607868047320172521366600294844095665251117194877821696912000088090216796001717566184018534047713000897982524501610947848183726717378690677566162070562082207030095256428163292663470682733898094669579888595550231530488558227274722847598422171956771970803708081337475372571442128001343836778584411854913069443714742402930102573763420927223363479364275204638649375395342748763999190890788635311880372201880420293643946638707490733271049434573039954941853678571181072294144998662756649219872887473447222470895535531743403737732311808856106211792688741304297052971899018242415637457637616056747851930016809202313138894124778903977180860894800594430364739652334723136459657372120837390716202728487588060622842536041549277818480690547620736859456092742107073349115832525979165351181394836954835734937790211922692243098153525809940043056570997671867674863645355035909695098957438622281244337333438872329951389452255119231181715257637574275714666557392146402229421025882358639083383241948078091461624539328108987578181348276218299983309422487448737495865104864487647621471988281350188998426371992771086130703867194362446198915638940617986040660853193846927975074511705193257376034609297329075637036546894047793891976508494465337129348068010910689010431609949753747930940007281556260636609192368708324998288804724747495639664863707197012792699341462881787100183397008713944733828010093497805296880223705147136579755539421488155851608353042697833399434536390214717508556571007500054841109136913372858614175369795129894952420348338528076405120620132705824048962010148173579127501393612376319656409293654226734089975000576703668875633276747578482611001866831288912514995635529480716671452040446046653869926156344802666323903466549458269794240682840604199788383697467379627618241294679159409924823392142442954213879188984219764535616574868189812642045381706996698003449406320462377924418725437732187067072053326337883333946593361014682867553056537822404825589185437534638766781566533283899913251290993863580376864107779556486134652389156881067844884785770672446586886747421989668133794922361040484669048437914846871053523421420107788143055458160390114220336352430907627706319751105898299210122736639493472420415684771474477330021239429743346411884117789117640293336366892077539890544946813435040014434159240980732949017496351278357027423244566741512035936905381827742178017184145036219380111638926187176732697484449867232796728020333617923156083804857506135252919604552495891411131951081761386253135394430196303485630676706463015735400323018028702806627502896528649385320906888186205996566200784556344821229350684707582776152575918339660152345586010348709534694722232244942924796946443559740838439750697957231795288148611282144248067820242995827731284743778495442962557987637643811765520725232456626561434669378804942870080380900700434586730478378808275006650087958024728666018140540056484543959729129772880983817111685789606669266412933525199577479215136279527906477126180108352275676730372032751041816932053843334288822690608609199830468114891103735192820254748336869367785397640997486376956879151539256214200939005748680042859509758415832624694342772392253781465251637304387006138174876586259247557518217824410949957477252154599332809736794133430854190452273590298074518749301796094037902077577072726378028716362478844524577269045205745952017704547414412384603218670712697198752246419482180717791897796212167937256035621768639334345765969911371811802025361803789978001577152477561417137722153346684286228756556476985403950328498458618040198000181565228083045425591880998894667224148830840569401697046024758828812570446790729067912186023368818510349056374967516369261779705243429800183958068372103929660975022245420596929254159714111674426532709219919794743608299622019397901931608305675206748605452748719956575701802535013498107767315117328031210877963167930241670904656682472165913018021818666820806058594174234578027909661996860906819193879792923155147354410431697815448487709773558172816331142865465444823207327832197404551509818560956779606785138981048467531550800440822127259001813081157565792748500437317867701898971625820045385314497905076044877778270391664380878024515297469236509588479731434416148327190806973282969271062310680024727177998011977699562998514412003586953738537116534268357117371598324124990241071506062988633147884363263001990797116838819441139820057041775898259456324257498573497038328263410798225581893133453663285579613583379587274815457151127257184318329815812137724209351051792601372296299170252427445232016607753456613227669582985003036650745887474911475127625849953171247745760661079782336600808547904389038892783946785599636879729950644436740462060620726290244471587597085155487218648228137289004893739264313451787967365135682018379469977288808870757376510006556366772265493233203258065674547310183730569326643389926877424193502229950838418328520911095265115539918189967691685596619155933966482391648522609662029977943285739833609797931565994944955175837347899771544616323543664539323411661232382371356695697988030153887886187916125127821160354157965197186277267884698282170031989599012075871416524709739315260614254371325460560500179535559638156011620931779944400771869131197349193878943554255609165477804767269027229301011283780994351675230448297625418472055596998009585964468804761723267179279441462580626996107947257190109836236571462650576011803750900324290269992041660679772680398312245779133765846579867481997683863430799564163798216241199843953561622750227831959017733724346288734488908290144302302382657821298562418664053601933395396150804923596690915929477711867086531265391338832751792748550560137068838930261443244141421617821581982675140791319191866071309301893938904433514530342261250394677327187694182962254387962863583607044922770249398206138140629730911802452117608976990569294521326158820861914618129220507013228012468360814748573184755098864329091903616246305747294118212986354243997893762704502703873656568393007350890658083924877893584460279909644521231257034988438797709072050177959459537643020923065291648516813011936183092722242520589026309166713474031853165961465217396621511057628211579906957806784901787425623655602432872024034213361894694754813538789640623345824898558246585677444132044476190205046141768357395502386614468329051418359520272390724617468503161144348937154061697666393783871847263183997724625842636247574036931396448389187470684218694927146986894529829287851035313704538560287253039374903040146158326858763444741019766311811802658300235759520556330200742580191156115007322378550418087371434228964353364647580939123236474179620763551178991762403571450813961741812167727317166672967995377799138084912502915787477992338751324294679307931890694309646405768423057522793137420266233586824597519185147933935291596714225041991904991244087950409718374097774264820609937824201790848955593006348309558785366836968459073631661885668036919812293642396064815738273657046672297174973561027503607941298552549513226746842837216623085325326642921341990259158553148061057814883414344524331002194468978607409176198723668197987022009943869062140986293301861812464950904418620451433160774355409141311515620113672524153300595746070367513983354087516897013979310654340390238723300457930917981524062252226351234811755211481319774355729848933997251057961519422892010691806914770298013635792716489351451387763325971353351411051953609968540884055611647936279107673846720574306801832896882437746620155326733049023271823008196851806557744482607508482394671120564865211854927728590889593423234439081620870421031285916920871730016836874523766393466458665222640037414386662158969668479318621539048145423381370106102705694822346831989488439864344534493944277429073447893708688279102586556451369808884622499064264008256589456539547833631916005352617515508174766134388496195193172328994329492148783325777041985348942816962392600413867648243043594893581642178276144264406597963983941152088222589958469252179054441187929390897594692760259302235884923820937499009165751459607209199717780923961283872421930514825067851544543021220653762988043721514825794926284363416929119879037728951725793080960960225169825406362037693055838916237888975877771704315755467331458857408778753964906233076601679037945518323374898413531652427029549866836104667751791492249254464325401567106997690423486623527844603292817628982149049828757264134431859641783616010992681195214198067789630898632651285739307852534645076934785313059736418450774662905582423408027299019123553272292923615859170702134463573462685466775693219324097905974670838256900652132957316327746552833464829911286448215928426822324800308677876171463038041245705936704985955662388681162465131475014426154897252033902118085785195705777486718540553359667112788269584202545849105043172079043690235906781750509824992281507899728696771906005990008712677813945155134027297830906388689268187496931405069467670277157005604512801483029423774133765932155039909018972306290713051337320583546262717392402327561905206643346103870691254850830204650593879576248513163496952632266837479678926677538462873562668297917346959070536842173431848292325171707885872888888828458208310688579862324501664582730536819430152979049560925356694533181178944126219485870252151523594264833446454843621662860628328215002781986788369471548664020059309048225395027396054501220735773606868501833065911616685145206878871795211560621354750612678742022198021796753027533355015726971358410507885459956321427201738198077953106888917954032339586940820411023138345938875547035444911971659789416223141319468258562135201392634822237172054299313182447986054418319132121651887790249956938853218137523573776035835345425570975548849238530364316545289456797075861418838037103518787711801542402592833176751824309269065846548322595673897701674318652934041720803276159818698144350678008808160204893549432385225844704887416505788353961408614225389308268431246535578988263186974068116046858374573199937987324543618213083820988816741759627379216163165100801383571400762694206024861178059252686705286736278675009920042653851141010176094918273990265081083264601007653989443029744763192488405847965601631797510178883729812411450229512290514968002634770857586832959912339707746904746511151777424870432232913906931536688999260849421948719243153092129170127388506043185084803465400165515648209201499690936243559609483290079604776237863299688789180856342856703998388489328348917030942751196372898793418610059746378120460511066225193075509843689330888915301503061599739160956405510242767980513626677851075674074457043285811819007914590711652336731208701886972293412458369168397396703816161320689551256892952716423189707541264703057215546371540930853590151240962687227241727636417759714755617250817551848258415287401147836508560008486394292535758852891578409364095344700827968274785493948939518620179832985068603665265238679922091128390672948391505006797368546887863181343837285016179931407155356192127055928573623151929226831700254696980668418536087513558178971014351105761298199546743031845355728002828810415351452968095160094740020682665463134095611586079821691851985012618979405151546348748812215328999832520342460524900813273205010957904271984421894363318104996703831384159049822780419939359686640721789166430533661203457506976278562961215265031715402116204446506672089364652864478720899500261299652970533538820432204047392024395760990428398745861755493612886956242042854984605098923381909048304909673681196398001968146910267433603809119719310510430748297189613195919879374042686364638787638275465168610458125503735745185565900020315926206076390339247287948284205997598605353627937301151812069294311900188697809652622090961274821525206432200750599513584151979773543601671731379233551611952368439479441661646467705805591233917562954191907844564552756030718508740165657767320543660574544321066798137196660735002145430675898778832005170871298596412503730750019600266970626996201541750764258092321281601100821208710129559427576807412006696063932357272621207990718926036429942394766769960981954491586412882251646283782413956038217637367321976417297303118627811626318457681090718554915943320225959618849642775880654110999223855320670591220115604720457149228767013448775441448348096463586598369925425679409979470409574439906123770544895123300214285809173046222736371600139645372204620169179803192698715836917594837679449182663854891226705267212656480763466891596317302704027831501577453467734417771264508068010278964792877490168457674170512464042576760535159186169219880398102104586155858767582030932733988045710259910091210771528749100596985810910268283329098225163140528797898679839250965803382735314432384715233434798213441422960109311721012870886746673444651151271057423004811903218833979587740623714434350109966832340420438331165948171890627345690814277286932076689602907525664100790810462461651343885940954240567584914797164620899432675131143875583112946798649558654499828542089702130738049300439079374048840365926056504348162628785697351696792718339104473675844522971881732849646801873391981993943050445870963808271292937406855813131006851244737516025704183608170252257791955017243848010875423540518360925375429715169535223437137746144887703480788767755628021530534369653519254498920316825661787066115625582661706505758605690045874208300949467686508853931694309185661562607755228929764781882152503684257213466964362948310456602672692999636690195370047692599564470195105745789232224804943951380607099555538913844552848662819760830025980304116991087440270278300750912453853243274573142195990781799466201654484264673320741719887238513360985035947110238422880156729889782756401919183523561497765166608977642155794648298826479093681846658405550774901351224882490891841321158381148538007887758105139502310479122920817453828889979254692618845212565704225351182967948479371128097486349396036291840920487184889239700168911683268524421073347225700075315969784479388725619783012704934433699099164300746911550860000381870524853758512349909812220647345181006954000619927054700010454794476194862978040561332743024153449221519734359628108186068544393339486338961138086112532261908254026015083039356078891006283007401294592222128852093791529524900561313185159494038617441038427334246795871709953336890730876191521146722511926934522178372395104488419634116457578927356964735490395425428301407672980202543393347579358095920772095786073872220488302530380363599152572242333483931783067629813963700633354700526758609382557708287082513257662781563044603572259017534712640755114205015089075955817889500916618855893104656395744410488251417599369601068137074285650255405582742947779018901455095190071089205516572356897689913827568852431469688610783906978196528646169827999030484115159638755614480032284312543992396610433578217104952840744986974999670889003723607532564189809622675268568908001423003828244441896002479484304718603927795663986954739560299661610114482661437371482813459702121884612968922098041628135736617571313598899875221744937146979736712001698292888495044222964466866689557249766158319854120897049734363654483425118065933549870189650524171938280469642309760717429263501729265150898854387285974413357694676284819064185949779088450957357024836043654173263119562549740272266500669729250892761241240891546993201933676659015711281279732129075254151700999040873757217992940526916164138417425127598202338477253269327620960602728386928054322968404192055141600568818613526096941988854005395648540241477831392276553173702600360343361059554275954345414404254695496427876565470323934735988726554918666727104689053083695988449798955645224924089505140726983293611335415386882815608882805570927610097198853988080372119366290748169305664844443383770197270826188392173826658660488296744557815298308643207078648144969490733625894013562906698788719073817257073332076039724771711228607922646583061376019986117956446847841034579935697065389312779269094065774466759119764538064982558895097835631155358492121579399771880864381151198840482688986352330391306612661800219299264016281150739703485263792775314512564243940448945189338870131059618303119905085353945779316626100763103814840558095403249171915534738844753768758646365246787611956112089049490466131174257658833846598741785270650242118297270318184271280983624419445239319133561730698250209422131021558403707629342097879029129208041835811562235930194198712044587762505103160935137183103596744775251702265622469209123588465803413024678582439119613768814111079208060411686554425339922323676338969739471140605963896512652219722039856258581736325967677646514129873855600410406932051813155466375112392017218270167861682429717889987278258782689592878583933975383713422959417275353662431507066523132493400908812781620236650248016856257492928784649500091186993652979203914287555117472978237184236291156123829447390904971390386361921124720188772593438355752412550398063579147846199364894845184637222417793965747729394376677028183973353012178932823669800789958195954315592005688145168142589902855095633172587120067218519205923469443710909521009294179990779398950013781127493071313260231420556523653120995919531768630096667188753570382790346790644222584141975455937160405009650242775269338850366406566986690209854183716204993030532987038609048396299257494845703230415292991495408823559837452059194152164183384035470742081662579122356448822036643118053417649899096306141725207897848667023905844387959058103260400545122348055561623557430364607992274811980542046292028732041516239596594849768216542445247124749512482136978957570749968305623770378807696971075088966763433289012949987367242213532712009622859771809697920133390499834837702594297958704361396616114255816326825889691272621605158274510517726438845986697569215353435858555420735266142691097354194440003331894679922146517293716843099951215795965882942097631906963667748268671867188199193840881705736392603379885195017989708314862171715542829087983773089806107133546876836350086209705127743546464376390125076643175525823366405961342587648048116955089618388344832410902461937453171046653693674305357936122144189392414343285868308934922286964014445891361860094500964467832010028389838965206598855003343401314638481388907874488626200260339195396937143431138807246796385263546712890713042848955301309918291347591662232639537175978552487012703897775823680494205315221774522487345057674944282859246009328561663452965236478277881511956165965727469209535139641671823382019274005433235120506142503756130502857013865414328419998311601257445028443792516183391568316177752799347499874293345470317877875849854331760628490894189906757841681889137423292329566368407487750186355857520615349507405033239750675152527903481367049765299057215933421545803600091887084347955397992123419533441461731680929975075304523337638920995455359824558142287508159003024641292915091770923670794557931375784834896914950061280089276534440590955371953385287403471028494323210424535372069436373853525788178755452115390172165996289276569110988525051025571655364529346939632808625148228331106794093146720188245662541237619353914696264092376477992100795580162829239926377069085747607124186561300955518746845914018258696555346908938942532284147768948525548593845178327216080780433801473424338271916679367496497420202451186176361621532582372348538658463275929748323100180505765751890418688278680852627755661874857528289349278773459582452657926910455632426746666221039644184740578138966047338911590370275157705203908171447704962468389475245847958972075421914298780143341542274155214719368974315725799832031739744337939575472199970392330490156708443517168838134994266999351217790733625737544533133518484875330142220696702105754893634959292440729899026091697180386223486460644774225794178435555120018181746922752359662294869127513965440610409448450296661826972538330627367576348412750456413313129493764395746959152254634051189481747934552497284922104673181148447398210174559389846000180785191285645627757091267613789997122705187613949968013437779315139031803909194706362242381795834180296862415620902426201094818373470160130824456952922237532985498438238183041634168734118492863669738038944940897526827261341069374237995556735597907187979118700652269587384448769992728977957937037572495270499556749740783022441488950182931303296824729029918124268530751877213396974254380079520150719108460079907379373093563197622098592420943632976979949694195664140711263415463437118382943137515914592810541738704903399078004856265707772127718996522973843690888822660410876546547820670258827009772900875244637903706475555247060707266152339356627908994336712785542260369698867427225568360561773420403333344993962287951256482957559436591379032938867790751566419636687264195721097180861494890633750148547266475185881565544446596922293561656668694744711456550630891409878274687689320072607796724546776135670447681795295993583428000023514085351347316525826880087517094719456761428966152636733747710659666491675455819171713911649467175982233605948013380741422138664773848613225302247297931635889528730879436581238862571360174772779406560557072934275083051321513983705984683488603301178346504483815388703041192323375596512997311295507110803575902548442761102299152670250086879944632648046840945542202769821784609020530315366848685279705820686814629137340562279805385426129734334577542245267988987160423481143693487459235988091860517304248308705171669195103314829473669108474843752916624413505209748473278263662541026333422020629173695299638920129745594821060091583834327263761724957925618954538181667360621728194199023755539062501637995366681023546672510678600940993759129364437289543710457369702709113608439112588487357156869665942041157885367016632411354847251443869076342698370895304662794011020610179181833580794036859260366963850927105081683781591424526318402222027194394966197929467763859747103074737802276118653892046326692893539439654732524579903421015990027781145557892678023811560494891717903808528102048424368493101833936073679981794938300915178419758802465770533444588543064693095597415180803130931635068128308521506593011585287669987894915382394984387784486812350829598859478157710828193048914508047831315975945162289327721484989023705894161324613410596005196038530860308541803907594652480963013936836646209180295700163465785721620329077009458707087879814790682593893399766828064454269593123989984970808645184821323538342664490483049492499557634820034012919451608892957471016633189279839492489686699852915375801002088584598684466836684728607900624113644395144027063941526567683004629300391729240829890416281764496082305293795953801790417117822258805717923123585145009919612846077262062335781345655305859569026055919497689894964829928561929130344072148909964133206935191068953280197650363744599727491369166433712110373176791195920119244252236740740629300266807329119007559911148856271062011848748008542857148151222207840922177218020640885709158964577087790316710494615282504196616678419387200224807247322977595786794917964512576586931634469907569310611417382564106408506564162585504487764096107498801403855864545745116807940782927030067770370673191202821074399686937176151535473850003400967597173224205196354159132740524804388420861957379837887805179652977578695250220120590072763611586742130990017587458061167570876458130985594609552737468363047321796427198927493225469360235104464090137054678609038071385274997602039443996052755145897194310477081427385853050369486369346344527804356377856738739602230941616205081228305135019250798193117010595859697932035382862511115680811240936981702231729419708909747150728058159883006305450385427630884576889856651018009356480408783639699246494433748882221172598032268188319064940076850594114655331098699623057212823639365458722975837207148945584573893734909241101925190576844063864358102353147152602204238453648042494609425756636416236430803511205615637363379154296505006430839336322332837409581216399829512592674473739529049198631128594638511827664437059694871649949185185503206246056829209594032793493641346822985279915394649598391822066842313677944260745021592847802574025159262427194082252599266112864822794735677012100936204928833556293440856444671575702343162568661674873080675970405249687789112452613786187317480182185198181292516487182105061997806749349715225437093369409458100231426561998251201433723631390523089353051896961826749672414487663435106273333377133603686053465338934831561252714071343250937079629797169846203111635098337564815701381186170932628240176287890258380738634129766406201376255536585300523799312799783595677793990910514377793880584632062786223372730369568154450426214324306930717414709124543419721403043819036789299537692971756468706696779371000601587219005410000038446718400694774868703758441742119594098108714387076031378918099958378140942512889068234908632263923600473050144776739378109700493327302565506754720056325084314445507785342679230989520857132714814416306523624757663663256998663976441586087446615489095337647288639728317940002879315235020403778451608097212486810546488969009276733159588843814813076819853259830909612897278818274456416611406751026736880422501424836565055098577852612540646948242421156757259352309827683027881105251854804840856497121860947984991897390510091411011044506288133849998125290290957368208010191168869206572391467313678659598654481532413257019997389252361996923439448490266676875411486030026621336008847777334363896399415079139517015876398576372312251880835791044165756092365900165401571088758774443528331848026493891788368138221962896837356227761302309935975607626509378192068063496097552297299266713421857936539895314205566625808260901389638595638476971794993975673634507433906569665925731546746535652634412062599804392920549818189742920229624234147109441536740539409743486548322486317903152606384067550512605385362014281756225643025668021550211615659228385000366080858512349809608617471585208069256026938671437519890836732155608610024195815567049902147573598391822237738569731706621459273319282543142145060618821857597530246753621225328748633254568303663897912776507758935533934339178925287550920594092868284874735763026356560787563678601165522829442910619303337906211187763537082843414774716900295687835482295991753433917938284687967170307870253751648056554192744746058313419458805076573409950521700253374871684790044752472350479459442179498691454905917598331857293208300396603048015502553938336383915400313885659321418866502457900501524594072806549756960581758236049853871683594907608751354477990363591394934368493501835579861626655785573653000427038216900917122429974418614460919859598426627344110538839077561032793896111257761334363771902524564801328050278984326980373625814045662407314760039207369068934235578729792137118119393106514424036313160774982849189832368118025035163601579987315442051569562953053751352529245674227267748014305600425617810379930481585115255165152726171394433580141650637754761229636892674836008373031726750673236399644973566415361299440276400054449224627230684365619753712493815955369108961682380193468837970443873649861697247020015114697911401111350249130830652642183985226919152337395909369043040778672472873346441750613034655676985702439909976258996627447918622225292354745270634281682569701028504713538792066304401584355296668786071913304488694088697029796268971854096479351823916225532430034141065587685654666435562620866089240096198628978469850087336992332443965611535905356114393843852072771360282606055364457613078553299764830354311336909048424767940413997624209366748364816117931245057462582880099135408569986183363413045262800325516463669159936632574907060543006302013232375538020362053636702354398954034688574626220843862048853506036295411245489732666828529808175208461373728958489584298326488476206463960486475546012171548258155798597232064467672766616831025828464772732918122636482977827517852721660208989116647566275872050292746501519847792912953118290122630751803535508437036632368427127610519951753850919443472082235959214825891498022368016473544641357039776868436933975427746252038531801134062013216932808874390880108646093399047612863807740191797605244116419714081918036667640547061416904593908795035151221469794547840894350761841404970413424185486144915122431445950209133442520034257044530803045148852968096402117062867566051924369286572633657454861942653667957249570090163752556551082820033114856678676414095531076400462407755980459584762750633711515575997661107570403158813817165939095682463545227504521920807722385743085631143796057741365061794116168319895618525158406147435770106529682979646347667831006627514776299587282871493520344906039536295828587658489275509194513337921402170862068347508933029578598876957874911082968651235657552623637160249087875106769282453855932259426429111408363612990260094912060500868260816837167783651118203900011940491118633623533210561917076523738649065401496501024103874233418777837442270550657128350020224955406980360405614380929925676403214491030185666163624743187338366506021656751016105586408194336708749506808825337986281853913313210882941213379888915761231367320025311133655867489184471883033365667041669531780930550502845379101619042149445155192110238989411876039026848691841223546936109861278349562556345189687905415317831154459112740174947031389878226609237034295294434274103527326564425008958878475093210037668245948697384514399744345495458732139118401286661829534668997976947606514078497918182191322223177937225266488922535279234022334818516642006146437943786443927034826328617332864496472308005235856578643359457333331055090304609029203625815665505821983043225626133489594587636535404857730654458586729868310633698090100447994120492884931195364529076898119401123278950045562180375779670145479273884489057496693098489552755659896587979416799809381791691924048789082068133765730504563379846170567715021950863936736728602980978406043425732475357018865731773456940986675491036787094483376771341861341356113012576591919390188182581253323250340330602988251435819705350489454135292762778795096700364717472222176429096739229569224732030448801240985396231950150674169599065845288695545101457313953936387243430212307856082805709043718753913252148261214531141038061652747769974321645289142552338743494987204171649894504099593124454099676555631578247744435809935203468498577791299006785577522209674554334341576751173426531816528856200734897387708046481179524355868297718299502598570563870283751890091345811573871285720610012418278147870447883863988279768223583120628642481701753215988050400661152601472059395839107519598868142794995671454461096356736185144678761784561936088460399566683913725490008962736014211843043599034912459131532515887133099382056607652852017703744321038031549154797585156305598824847515899089912900267761716866788487470989295318996132445631242701328102744173508741055528545759606497505996306317974125624851264749988841485566124510027697823766544132619455089199616773731232416879189702716326507669189227211132819659553125165357100884984017577341439813412502476066240321828059566066402609238954489113802734339299000301167757836487786097916215623420722540888993042885566247661041038211299770380282094875904088467322766694704778494578314484818511743959284144815683502868160934549063755736140180541714499546092577367466793024158389621781398864313578929543504189331218417065178129734707266758283361637833685163837155267742412698949419118375028687855068772804450251446709782770738132777044751770980291389151318427962597202794640075403077420220956700380287278159068644886386345016556128153055812452927887599200286692294671367121570132658796012328642155362812874950448512122871481473498400002374768143580033226484858788243848179224767248317742381378066321904062514664853000605416282152297335373142802504295096460529922905943309161718805295848118384588312302123246778246944704889907103638623936901316918700557680826324754159008746270633093034179227763841375386076134944298864422241686337743210329665850838447480667815298806237674554319837663344543139489062776287576528629837291951347888115358384305269968754122945274592293850328665812187596621036807745231832452152984183212599739211994235671411994793729184990923924453446117341255215608264616926049793725467347694157604143713633237325468783558439093873633089017065705463611264155306153095026882910887836687624998298890271790091212679259232708243793340444053649416562921307045526415502742798456354568726919571707430702441654651007642178701111976037071421983066001360965346016908849555518064741823178366849053876533809075362511359696608475915671424598506691719919543025115328190877379067796062276265879547510599207748808300395921991822890720564746894709809650794995110158487228229903137338116308772655896863100182115918566681847276395886650105427582941148779402668657355167323229640967333716143796764732174894324613854061152434726842611269980341026459893294209286057828205450943386715542935149611955120427772817928941302272914419065092852298569951156439893238788282450249502612438197420579326688781594342322508362382171877751490306969705627506238587737285617781291789592028620672544498433481379856188068420868253968292256547509899664457696988271955633558597486035270684463484225287730851378790167720668813962611392201736627269027315894237193106360624753682773039789667579305026945614333450893234291879957730495214001251815234524056827968271054543572290597278695816086254329481049045168713237260787408843982825392279951743808908145541501177040676043447583600872954820145413956650591733049786437036489885474957213285230025619123860049771189626099771020119165761824589402545509119271266035951942146504856181823331783066494442004608771803581514242770997368587234283613517501826191206020583189671327899308489330075980075786951245271493627059189594634531901736775750992257080047685770903216877160469785287767879693348946416278438301033065990819818486754247785228570705788292282903820585944467714993232954413122015245782719306198516917438086349383131832054585313575896566760219612981021846648926377872488736946036354617625522915570511893889705761038061148643912046501035145175922154629901150989551631740172958767439447888445808904748540462460132179372264348415679490163520397224050888881309389786562759066874890298578493048394166693467274724980960205872991601772346443887534847842443415196964104687707059884157065639876592656141394355259198306131609739248778320504425617798503425883636762462711837341040530703566784318944990257267092632034982665709733641115423604456195979685336862010927789807814259393479571655527755234540597080956991032326891876877717110458188131380432960914654856270952314815226575635935889936091241443135846731156537002055640602653400962697811614922438061054180908945384511748061741510197761401110423783343064483384221676122175747794555687574667883049870576437779389304002432618500921421836109352212951727964710304998671410054399456928637028309141376217866906895520644834293133976445993997448077758296929522040068899234636566688822826498395987226297678553123218679605687264296507606819697905217093824188402608612271002512340245449847860089582061782016689455930499300371397110923725617204510881813904921264710095008592957356938153022867902587915234197753016677359962314633538603515549615861012192085496003949924560482490102519404037230307880916584527021239185306576089719182847305967817637779654744831849575907558831976224688195530314099939195628313192644035313817845820552415731640969783640889532759741686340990317632837541241509624533527933860313879973649764236022777115191629573899593439125815695178674044668470337490846193516331234458882181786991903378487494542343479358742785174213910732388368030961363965198538628930706481807173288849810941405949771900912479720984824226114362474334845292074989455655256313226693259680238003322812179582895236871278430003747649427428289582115453388534306509777072202628366609051917153094282097242739946533130702598196860992914733694923497821765212891836219477148396369296928659135637975484897101891087039595546960333522696857930938620780988643760372054654448506080760953548872647275942012689509312738952822033906348841187629261010653759623525490951730775041047497053755699082691880118916909546309893692686556715482725551813515722511579037790386675002859448103797648288753542731385064936122361834477967025360667762396242869506705828607119331007945025272077266137784739246092854096732586829854734523445529360072599044553233661180241033481804265005631097742920925602703019458687865829981751563383694159342607728810480074162638198499098575296715533408378403717848317931177553884953305748743539913898098975939954605448757612575967723039057842252105045742653630513828167761452654676222175798927922000070940969567356446051762571082803580244702188058834400738096265873402885338991681423316579484599116128930253106055083233104454403122530429802628810440794043452190705088938274650895390417387314375386991417753162363426970242339510960513959641035446209385624164294464614471191104470168971810549415807373143927226403989084985329505810579548533305029006953762505531852072033966123061329960451452192287485039592498394230263855713113695604351039191286776934858092694768119540639762347638628365930441347451247866500316643499245158902026841601870788123607982397107480016273953163539467206030775084110134919420060091095610690403743045477119668610108955256300163592007121312663543014921830390836139429969574952076177782336625485298648789670475646360826945302146860789370086214495476335700038245369228786384136634779071286308310927256530196974707660691307274550408295586744713766329287919010541778921547703041553419076452345252497066325325375463603952896834332450675628503555631194592331776668742461241418964705386016637370576141003023381364443319697281006585274354458141386785580671658859378839606317036517838986274927208490815183300629286447747863646108422707342221867802820285555267984231801589985879242430028808346621223985217732378183591066452647167987308933332849751593676271021219293265519949862148948529277810661245371451060276186786359596519886274113137793349692283774130223406554407869860575368903625613644902410442764068662457726334500796023094699827204685687779598210887157298855944042716575154647807661732474492344592738808348571171883113087314097196628297388663775000335591395977352568186374284760477564431301564780144273527925686187880071997668461773032196725212720619285476736763217643492510939056944172305093964647244503591524624423232904508511305295435506605831880853844651786071752490030645920392219103835967409467174390629985832286409068261158665485299079653728998207894558568010208131211293728408425162404588212630943368358381893079514035042971780470506310805107610438666260452516071689035343809232535437687778413105938853060848228229647445165735518212557815128056272397715068658111053995471939102481250737707690932723114795159269414599680233638824943816585140665720520230508330605239708516787642236345328967386746000586756957854454389952447238563414225560963427289293486507744443897527202696844536807463679603050114478537082838437753689264213006384485826603617377623058781565284644173611160021837155131397015354299898618247042726073150672145005819345830538331075937207191150363701179824516415736392159871608813706075514280032574733896777963406994840239796174135683906536514429971496624082305399184143079336418124082974674965319211243578315613301734421442370867248362322355148647946057699274714405365069912739866446979632274197274361977350439785137752340399904060817334287298016420827145525012708869818214202538011480824524131001617239173929793962559726678945780710292152776917138732284899000618883015251545282735109929148903296381256650748129845914423018479924645668144246254517048050955008349001202090811250065930919877790564380431693249138340666681915102564775996131566612217346574530131544360180727222832793276254440084985671973821684485448726444332032754440081408537641462188013821242518814851575070147209531869930557303526623441585530900723994767893830072754280435739999096631557525372401336391774308733089296198542102033321304007746114094812035588620468875686663335518614391652353859761168655497970680850401732026967987823312815287935995759649521052187216581060213152795435806511823888501833831522202777934187181014023613742977994000466955859225543417784654772529049978981176066801073759164286229822581834097441407230284851304868574096993358871812172622907762587388717732213355298490684052787397708477221204373863820202237695228859808972155739739508175661165401325472806356722375250423704940916989583672483662574149937135743035094053693591973765028897110314823218091810355591033658527306555667100797075979809684155390316256093865353486397283257606399802738006828845268455889395451514382329307165537977497479497320196634510130246036261943686785355027082107605778877974816951982668887551639361908082891048289166974107000640443992006474560864480828354382235939320666003294755476380433880480373594188538745047340116415794590337441995629384068826641906069646027304560934229363073545432536083115801675183599354282911935871861284969660296157015988027375992074206196534999848188530387433233539058538831888148451343168438550101308155146778840219992461323021326748479828215125052620143923362558755484898741754771603654984396477418260711873453825951286551300298286008544269198512758839373593223192541690382282165354598666115828174792490952184744997018939221425081868370807248870371547341679040616565462093592856304841338116570490828267178995857271509770711086430455706947710584320214733525034598549423079867364271098904063993923784557255917899091548239664434869768544925415679563342491239628872506943878162733679119509779802908747517497967452217959764894559832348837019227118409578206672882635314850646422834193475686853815755881044513404806686275079184590258128901047389549160543535983936914736168325430925887003021868322981552805341923788420833948104605046379500379770863315042564768698411826676947495212035183164714255032381343546016994910359156054110232650099954609200783601558062652972342982080816727721845960838191724263951538243825818758030438752889761363181585490864982549087401442050347169544248148152734984998461180318491213583869397658309532633098859184818142812618284989030278466081475592896881568811334709945509133399490269143992482722696961112838148092052062705388397278640803910320392550506345826320693588931009196785095271818583944652840964921096969128610453011208462345041704951115630539554039020528887185853933590853313988533968837098319055097453413663280154974086830473836553725678949755802486704061084900712192609594390661469582221147376202724694398243463156947279807622099020446065103318068999424710192347914575103555846937661651788861704722768437763157373796089178528614205127339992278377366272967775749797452370654598429756439490873100581009133984969901720948381732070690645580421763055383406749829315489100604771854953533559147012246025097488694399071012312795585147433318487997947190226323816201686554209148861489290177878619471897953623200186913588954454906909470124286245175384136514902182752972501340686979711755239834570271268437026344735912722374719704401180038400562744892948831522308496792187339619855554663140209415327615106457406936726049804225950733621257534396604975509720269332865018023240272690566273147435984668959375338864756544751039237720067209456269891373901636765388201056533601606336859447163631876481330010959552768101071468581280428599497844502014438208351104915108042497760841721388220112201850417309697464766170790131725383654866119961414642135367402495841363797659376665949187099427776902709736622093564237303550497288814653240982519898734588769840654267990754305136817077422925064977373987960560611941405715870816798968035244338947308862837941578956885253847905050924848697280943528123637894730686810046174392531960193616395089814366638276696136897874859386330206732163105380885356495283763244086003710615705350837980227478726293223387589138779261674103499352950613822977879572909747318837936873279259038508935826463702399431418674729331764611470337255059054057046809503648325668444617269666393606211799002685883161412300584434913814736429558164813537020704476567319406347846476889371439464214434895599104312268095501393476651859521765897283202991143914136516576475472783536044190070168235689437190323130197255916063280647640682404529862724589869994548077800033129562695437747236904290842187552118058201610620033041532315698808054287466946517510192444763310944567433011399820234748604613423888940545994471647929481241030541946436076633751491515617784360048759333737407843647703482818833882921709160547102765129734661831736984334146434703767610953413201744650871962644376169347492579972027839126156973966960617806268671737255809134515889227027330090038884086564688200273142143719420870797532632003753479727807399970644942155507803105792156961573817366622758028831363534018947377820381824499757192417480966811789852092454033965097679812284663370669228922072905709931196671968003805211485246092219829914590527939219476283232053259861240307711611079998615308319824275485674796934654920592676608798706931227525186740149533681891517226869858757974644986970568487743581666567240162612367214570709581026507577797710034610325333486845973574856618581672802748814109433878232224212805785562401030082791302239010607967736478660002645528928060636907768727454651324255592120479343847445773373707526862044658210804563038127572027188360552202170541805133056091124455734567124040133123385663686921525412635039387633872071478394106445854760642676684411509526790793479358841099855516196772928828780919262216893703710892017614817811632916546570411873988618194985729300138952727995398255700680494149586477423865161986737087502416171485131841307607841964669225598630980532312856555529134806570903513019177709718332176228203074520629572386953552360053713826119437641315093126366354878890357466271250430941189258350076432745457046406521605117129206100227491372695826268659877143338691861537318973936116026552036597192217849305910794951401579183592867324995186290922024038498676629444854097534115214501542659238444837537347817549913826572306011831568583794036587067279161195357847011354974531285666396857933455690406568150135864373560324022278253093191734259209705836809748197855111537009765496165500437250312178614002004099539800391949134130743497143481473668370278748958281757459782213516935624913814527043256983282877162387406866116986896395610231665484804737279907358100179529052432379467111781141613560498139967127790126434803385691480934105006297484882881655237413771334970973110705439609603534134749613894469291006538540417917572126277253804363093093187223649159343741591365415787834427618321653217378850741776348668656871617088291686155056853884471360796815641799830640730294081209234536628517619591377507367355955349254607808000028104179230371204862942471113383091585939823722306821107200270408600181096021937342725596958881406048277625993736343305974148657055049383918633844464300182877322884963605961383638265308106718678744263640295016880546105726125399820472100730202422354366237536298839720932433290444642848676478145963117664455540455149177833334628102491478663854057238389550342623994865627917848553865530229248379524421802765976706461510710097156901061184593546316413362142917632800409613722000402589795408733041674725859387503333578608425655555521499146176271348675065646126013356936758443521653901482826433059497473275649637752026213817352313118335283226142138174042347911340825722456726323561436007537017520241693398555613583022456228244462841027657758150243576889163957346949492815158811141856155169675995783729700672551869238876595915961718834345972259291686391328531477598718909319768592336020380812169650560687591920087242380605569511027132546403575112359110853027842862247349853136153820575979219196500227535123493628828453285195180935772121507862295022792550648262259438181841115476492749181081597962330219224119326909229705967200963664366900004132136389636076063825053218485142060170628281030740146930160684301890296741858312126996936528043111585495039025590478657454115639775180065579156797183869192704660026615989878770804320675827004971665328978393750507976999563813803239464360705040010925017775558370587974291983643589211025653607481037717503284386957590565941757190188461351431296571695550451164423453444009451116956963032721170472750442149968464724637902398156759617154468982415624214580411201782521533825316679158785805111425671187267435728235875399332465170131834415138509336475674157077282700895714950239774296471391300346794038333374553223810533880275202346844878984328623382317413720191603779672810588304105005003543063907050336555946323768561119495892168899654416106600019515997967595831827261145712744514300956085226478854046933427574991547393468640402361714831682081423574069838285317562259095730272616874272830795380172121167928556815408747742378965411198024384663208529948241784987955191946621503999469618686410513650433255533927026979869614102056591658775702734267962613890741819890528832209145243682853038956317361673526276169852923626158392079551199711603024649346608080754542604665460174320214544464560334296565393460244170659457833809847231469897057487839619227675001372363060989285199718801366839887440150561551836218885384651177515963323479631830109864665372226145458045825127831721551733786295381883708612207691302919840461524936731777887345022641606397326026262707840533807770099832211984497325957613110789370965671339275656187712257761249427479511377066586829486613372977320778069500651254533155401647668856323047841982030731356099562117395914040934049011771689124022485758850877250244516601927618166842329501668696367447177639273771907775809638938877912393771247358160280160968157391694095378316633083110582829801451219558856046506321722467200978422876668131868712874924929658803582765713292346884285978047102539613658051328395417479746058626328578641244529589413386039650663318619221707296475519819896008832357001693712482291361052522802667253102089480567789579759583128260906175457414805237534262454189485096474472675525595668924703475302957080497770844904690177268037242887543840171838195663966927666101681827870506284741053279089922157993530019820840989945066903170135839039822384596130522712383720057417666650776156649145464836570475373700589279888342965875397981346457134804290156491468637168019994901063544932781507075098164385811373479118619086858819636619342938478184071954178005333661336274447344962798951195767597659095623370246470062603781555650010205503085887779171106152239347744713288269564470569736628402806848297155950984219181724837005148888038713844968072754198640959456927221010954376268351299682896454654087560564919185727529888642131996883828591036591965948524377668761539305674548951608283967369761283969279709805090295204759459967253071665473123677818826059884579928534921620764617805387636196291376552467498131590414583220705473467789943891628425098961209960708753645497665661631919276111568395547955300356972051952738376265557363920687581372813239040930218194097836998654274022425405258768590507542508939469892257915283817352455533210264406299730721618130066217079821315838624289636507676085244385061636790219541877818112226465354761796700267803921464295934345482009480857186764684168544815353916566940066847965022031357759364836132757374664551614715286923403639451121855682310502353437783513315531197592862097614119188050496190541352777016484848850723503187528794530460345824319580993532245009746389762641670673449257862286257994830794137353980489450749852518935116146375071530530221131252700710142350514841467517242083115438887113003961091162993005029393525997714968739850230328524251658327773627810243388567475489768963039517322250598868401015594038080456369657236429094183603668610514385919692048662525238096992749109808269931667846298969138283276719108668538055201190042993935846860200943144920873993179029431508988967802617824304128831479036629733371940049966099966312386013049691161588132508366141686992497292388264912605066791577232884101534075090513226675448838902719314019259312178044219329335578630935402480459170529400735585379474655057765335714333696657897362171908514843717748757239782178646538631349442056549624480195727901368732115695579360195677313376756018903972198110172599793611880163975462141080766825944561469538622750996168494475869419084553782616536763900421759351735894183413642178483746090514647048569964369019680711009023160556220910226304408936385535876108938700474846969803892287478114555494810608852882110196909717510698000865373858869334103153516104330283329057478376533987093557089310227382481985474907074762643190685449466128511548478957996949583614654909996854250838756738805906323023328394293070981252451264188566337553459820645425386289794908538121470637244725664850876655743604011386169653571005772123976961543498164845648732122066968269490418742122903602784670589991021960940855114451653552358047251054728708391416021127494670350040296946236851239946245591295628639381136784109985816855712461235723760136587302221684797833161690295550116712657911324190855354453165891842479317468429483537840707315213952083983855064431083954953830421347724722672854407470977239358124249009059282210780716067518176957094602259819189794725757943881098660999533598155197044723606997898777960364541082684146248479082140395757818513264255777449615276847851664384037823562137912094191091832258825568049979545700194488840724071018515801504679237290586065717867905145075739219236653264166911533489657580241616496773737933389159374152861124559558494346581516928244046871682385168039987607981480825599513404433535772142244875878534102246245722558337559188151783215329519526528960170315287586459869100079469700293242674772698404783360528270826713530937179493878947089656425507553422880992223477495699925289233783939086040114189756086674524020429334545993769164911569695778498957981459834966457071156397727887554789991597462406155395125080557427945715353703673656679076237034905740319030724677812528730299881023926244896909467818496161346018078841230040244565479910648160811363194268599345511468191593224144602226318051215236341405056782954549189219140423819991841446074607774128553233670045942593804142854644947531507361269425631429665267813129258514301459737587149973139210975126901631200696098723353576506980030581856219330610394338525804369423061091734099860301637095524875979112430955419735462365960186176383392637499669367681652497871546579123494477993946016804154629322732527170498459618972475810555830146120421316715990675932953649566187352604605302199086171061292941970063740561940606312879947890731735383900273514630549337279092845201757955857428492572400369883812435909528599156239247015368713545635480764986187319905219072647138958355353237991054125769027101210143674773558619255709976455731320024667500156516584390676839697024540985791275803101096222562145035488239618049889869823239628480523604166612654731328583683346162940452929695142226086822381825932168083650284552410815341873674767557434038060040527264825762288792633744600347317982073559743863828931049380207204940478458453487755343548727752042395160238510384532825943127507026977237050180338373607662343062115215316676317611922359726519662873106799319674457415389082560893094694567359719108706212309315445849006601491768460939484395365194960862204025227280423652012815427424462686669497497322119430642398206929474758431935527763861266653298583224421012541429815737318884409024480682845716360424013291066656041611994859071467585522658626008568343460689190883245126847062476735274970408150643341439564449735395056276863162425337008412367876053406436777451663182369147068292642298459248496953362010236103430755511866615200325884323816221012151353223692803807865694491984895892464941748723930958710437366473251130396579497034891256598788828506580749858576311556398862144551146328073231673297437251352567321181031108881378040912932032308130744737059917913533835307199924174774133168536457166076567002903266715716457718249931456477454003011569037391317253187807349373044067817540063501013146262237614006344062020589031028191981592983211487008075273879031959460514555573422714691037489087631342139083722206148395371692539360980210956293345305476418607541922372613426224930718877942292400371719526195693654236010711234382009428078301301396766504746784769760050044157810631860428019198492021529180769537363167289258563299343836009014973467898604422196286338108200375649847951028028363930897076432690686626298625603717035051617975801445836455553272900264081807166797993338070439163660949522711792803802603922450510519623125450782804202718914138202577158989474987476721148892260312874300644134362642281148336442329653937348129582268896164399922399835342074046860089722283966576977976149509254596584784311750102162189658298192040500993409597501760890325842615593087206927468546803394938651328865087577753563959497316808520897361769327222410851768796996330307174732188460609232345791011004961342602282945465213322592088850319029406193764072352870745835806192409857466055084292775921348248010759898123902631494134257561306523400034552672382894614938668323866996521124012990509327726055031463332394301647885711328322534106754562345024847417755768014021747275192618816425832768864485566119165285772662000395170984119279779372411011233426389010715776290081209251390416149553464285688577611912646719080207193189569429859194238742982156267397674718671108740920792391202155762244144050489897988200621453509385806832900595182419151121230424461395320916241209945173699244038225268207327999900834817076675991656411809493723632837804999054355137708436347048603931748265479640860259065145534013514547253140214688197515301820768246333641536767977742626012868506594719891767845461308485622066225879046705013671609409516678722862505357594020067542534175909528559631162570631817602954591603245029169693765985584981875693639679855313488026143469045156739146636503517200563056260253039528063501679658514153091030211608080170516221361491463362407080122093751891061407762364451547322406950314603706078718198718106188880950114924169670655596781446744258157046513395246498056224116245889915118648284712631570984345046356282843728595187620267615014948450615567623460286094170760568786608661143125285938793944663754608624559610531296129651045598859746218641404504432783404369626357482016819843227149559488631704954292672843484884153274228297340725062122635091685237792583116393733952835794263355009576841559412202177211250345240309116010929731125914469907868329144654053745781876820408220027020094056811366287268414379428875915096154600998039636220003855471323187606486923118671245752110828685295740297876530281785940628571262799579872231132776578790794735387858500047210352034587835869749334669064532532468019720333709495159397968622736887444911423044318880405861386455859224379013542918929470776256848661285025122535312722444673040986558211468286117763622658741736770704105629843485121058553457682344319428703055870570222408300944225520983269094390425700771869218847966934268580486862683920080602929455041002379766763594035093716140464371001046741303362014411706327083849803414642703134835971693544740511087740670303707481463322936562181669777454917740901808532602075553763922525561487504584804198129086663265885792610963950598257567649391118370561314220288768231156219404209329392128552862932138642244444853217357915619388366071135108267675684230677603282198726418590922111193368634640747650867275694202550650246719881417097565967205782312384290632633705606161811219866464341336960797633341696474367878434861107763363406007476894383412787156877754862759445836990444260180928079582140734899806912335317704349931981347622174398024547433876386768391784962669271502679377589844455226492833113116440172000313370909212458799312810796763513334718397360021582417395843827057179959587852165458145289351907520560384729887652273740339307921600801924865150950401362803246190877640498154459216662660597410581685285284711891083189853415060659385238828469555038979554693599943075063932257583115331784083936416816812748043315246571096198862944716934092199270256933268424652013844505220647724282955458321317818701320854829296589868307482556269907487268916905225245922931424669952733395896212598237500327417888772237919948242757351354540382988052272337604795522684044736591706372511261876733907967035558552050698488891692988355133765051471699464420751240549277656946353795985795693791540536886211280860177920525143936016857818745608227530819081983037988714125392261224082581019920388302547103134452419762244916528050636914440619977114490137237904652950736945891678001892851962148722281032657512991667931816696001252100363828816989751030960605717873326334460094926345407531124033382380027355810219365014802301662029522665530572479060667558511385961817975256310030813674487036499313137987948862978195436647949893211440108361923507586106260300077569534251973332223315139798144703329397709988949484459996315072089380533606873698784587232990188658240732295857411415419308558368650866749963156371106049125291826850976986953751358210564256770107115656271196498140078322885302702507881491508935068688105004462492695378915965033840841372620652774334570322596926346101415873804636008092432699418406158160237681023523796894454300232105315632740303781285766543758228148615749041378923243685187055565283582760560814389709243815252276100971602598870591594791943250392270665108811676324396515700827657717709215945767918625948271939629658150758762145823596796667828915407639042783489399401557870292083921017151598275512703116551942244025976739309906925650370863171551673713713597119229933238582604688413199478553620858037862159696329028622029459376735619036071150931104201950073428646852602020431004765283619069444273348348585812840785724337701812771729191075947700326156434665091611208542769478890549482783067343880955971304564412466182267039088955671190953681920536604009181097956275042838239691057219823772758409862076686648406664207042445526214876277917267303368257134670192948656190528787926728108361176022576478686632742357345748910562637934870281657655503955344936433761114708874495654749259327621660434083280794476702502189305149437304148139492475160885247620194583723120422533064368414565151922245200628325435436548940575265385135580228667584823578975216648875095385735396012162664010094215368194178639587529895317582302200454688980174659728897808180669007900139394607545053496569374564424480880764883635820428143034308021935645737006272941767298084325853278232842107491005414649450156088425696048532269127877669070516458350171720074229352144387999473483781407222192192117193743530707553637920378335768345953093939712766964669573648387520668873084146759510650119587389437065399123213195330273237959434621057681412596229088896838551675733293435210115683781332428470858647627769801430472579862785961279127415916355451690404251776385185989122814562442702109688876253855477763978374004985246705138624946662702480470668887063410281083493678902330547525465735780535686755507415105497496277683050213824756436130845995692955975225245306614529546334437936192460704402391193644623013320931193435539637370189682177657540535021768510032478642531673350127130168100278519747112502769463541800785117423287395695460438567340466337492090179853888416992058957458396969209630460506423413963420473292115864245681821363091049857171637013199543813919790277506718786215644669277517652378709087405408035885846346427347957539624646500484872005253791666469137752054707459078621540410459565274517225763000526359798926176453003093261005509237194763795346605693629977798007008032482015226192175569031248284075703656178160309108336857417697984163864261801321062755733271739701857370215923670164139587495258501760648205002374344326169859622560518192766178636581972920079244199124167432502935883336110496125957515338074042067953485907504958886025326123329678831413727709772890044485867657579945857404118161486058721783664920274938142320646076460217584306349966741931569303098609964662683763849781505989876990835744229519996128305454953403304774392847086488020651261244056086031532197436295012810856563032202161871136916139813084655321661455457961863700236123510458199619026621137110026894895129578182958857603472505844987797696214967936567960555947346875654406691300010286496093073144248240219046765127637580287614897445773196954911444558212131846109621089280685852868373956641644919437391565855367307597008280230226841793747733440989172840078397223924779682733551352211145027440658781461880893107601201716414280709563083134158632041246765832319391767752879227512635799980919648141190651161949186016803304670987852627506815223202306861874716003383087237192105437117044097339885891322238307138819254061624254801114277693608351252584550996487146552817733284323783088209888152999956037126627470461216208355846920390616991916956323891269368329480326912110865821518559820620159153115216039222456275402634867653886361645299540406784113156210993447650941320275275862752894364795824288455868672043671629191846627936004763878861098071930145887720523748390315754776515337957184882496760403722114449617430947370755786105724316131461678042338733520289024917883775297325258338773585041464488651316517022547071735050182095458063016557150164608754431866661249765316076979554101103232033644012550154074087730863100050416310852050934108201542832997764043439452291758140849087392114051784496230726630505187238421714221470048414314837408556540062037035026062005957666268787609391249609053711792005896861012898342890035080372256960805908638901114592888304735641163564597556728585341989780175551351734857884154443000351424414541452373977367117182860263332211813350629483266404197573946415996400690049429830287380492947399915624213350716003806498268969358136540125871108001261153778115103802834416646355080060327227474254408758058839858261300334861039988698339107802396399343933874225977619069634833144913915383545916734730629671618683716073503868644481739509237909278783110260734294032262016787967024657152802014568438716508021347982354374262288236831786739324196425017802027396909693433159696337007048504124743150532877861176333511056610389252814828318686547116679542038406041081319632484026383711650523890451800116534183351723793343847730976788298890659330102740760809951428123911274360453181244487402880677328947435105793041686672662905686323014342392049488807452972941543807284695618024211911076861961379811347525563511663304117216246364963796783387561276540398703167756825130708245725150290695809556249565858953910917566890082136802366134262969253422290182628331121311614334583267941288680373816563672234501769165095445995970768613035195840639095953609491878216333995275778673458792252591928674557625862858962861958328855428014992552350006324966381064833190279414006335718958950123313428574637419070700488551140566001867412276287689392505700324228898701430041686368515932328567440116305751231614471148497043250992090736407583292852554842631378531372669367783738792381294827729209258424720976091630180548303991947937356948870190855649993262690158445797941152423182732495093665480291579317925011578212430524433061066826262671444530933156017255895171051797042240508482722736675582880125465732925329461101074923877485309290420790532368642331817625247919612821026001656994532707215612084700853082326893772178987424388561015951822106571188300421403989610842468656764528623125811155757207570304068717395519355744052833100523691096681287390958342784155525731715146748637562806871735657034569465699070141092408161321557881322846766902438334744807970731082209425490457166171242546829213582854540880207429784557763653895044618489577431913844088277506338216125042211507322512480652117129193057106201291340583746345284945860193830051307850904617869804223225725069681302772526482520387261850821909001671503462555880279604582176121665561677840649797784592960373796620307090209515679950949162649542771791686096878507005221621725236343426318474008273759620391751259429998186906265776905925780187035645032683352366112797145387279825651485481918610492123758159013504665770193647713023326842621793334664948986678189766313035942693323576858021329147375716239288401088384920868970803901230935261696440931372643582047668214828942219079870117573148325983748911712072782091369034702124040986405048280522084451667582032349583227568572929505580015154850177710920120733117319523009555752926925512413376940172146180112490701411961544521423149322115719995489530341560646450587421293056103188746644799226316818572742350504242978268177267683834688763442381682111831717309817211690882785186342945106026590433658898810125674663464067767017865962236004640882999891093579999298127673709468058620704849212286261879498115230000221424236679428428631291016236041957157024505253520621931000648988313802328468587313379219875535515675460954450710958546461240523037362763981137622500652489770295289330830737465397543276126459652241176498243713031348183378407127554228054105811985431543707620250491824232260551820044353190840177034135139627962933280055830953703128957152488795150883645985039518932717394975869540688391787182436325343208889509726331120575462168955792106549232534236797464746581115922683183634982445063033558368522985395440426816142503414383274796728908147440970507298710135935760376343032952327722566597816756137402690693857101889156620124426298059802998219905631578063632243706780769809032465432816513636021451262082613001378471961478007953522952692486712492987424473460834374694205578307682634027305445076634975430883425110730394960786527946112171645339242206688055753017520523923726902511884415570043752566809350945523565566955786796746144383240973387412682239585176791632853524403011655510319749226209179636832711751142099154423879080769911544009756343152786863118764260259596133566236247192163494120009413993987308260284451275816573151565388019833398667502982613268511242361017004833460847722093645833472432075793381071152611013625972166938002889337240084674768665704810400883858687833435758283895826163020283330067169579503002979380396869350400350532042736486883574575645368090126526501118639671130342383421769180448628480737598327670932324053731467569401801634590751164085606929703303592409171098425942057751849169843886009008773745216407901922805011561400430457185812315317400198598053559890931748026398971576537732128192396948066594812796112473807279177466397574338156497292507167458422788974592913540189167521761606789185525722030177556777757030771648108114515958869032718394912371190768096649081697599459487795413382191207931864151078717333372322202067043950297501272114371535716689812533495901146463102991637446327600842662865253272071881282522189935549163199864606508011763895708473733527691148987093115041850980000089332940396123064653553016115188986338218430452627526560802314172714353531450262820095105739169700725469488064668707278216728982690510145018612434331026851613092324469436554360157417061677185745493428418110145928008995467782182684660761850683036639809983872167599646992080099368454565572830206033799691779015112525456313107319659909024442088308315353015177412397229377984001393924089833434211010077785663377209655003308424301942894093120172573288651640582935944209981026042257640934004624672783618942345557163663742704197585038629342618969680444108245421059262333663229269619539486783474402493145203291393435686825652598160841955737119344185875750612427547943184027164805111345434958747510053121947198707338483090644610104164742790570070087799374861763293041424316778715813315240539598543060135364756689492295031143259988807580063274704366801719347050479108938212020583017758149554026341016347855924778989066528532018673299396080122549593839806785166822009180551097581958583283895021723429887120625949732085020318283885486974932557465009316237378310178953471623637836871647823436807912758211753105831862897692009138697932267030881394633058796248107337120744914650384189911439041879485095916344639016286814819165434416249882556009648775341628279992120878931962750439860187310965535531149822643569952040389323324346110679373145820719864035295745350473417695127298931461219666778124348723592634348947072494482628891696111556266232179925439795159141529970756899995738342005554467919623180455619116067767209268237449817176639553539859717837733167910288013818871237468109244171949602146333321522351373322250128409411387961439946111547533423054561913010929848603414579969739747684177860688358939004206471329366200431840011370182595914547598003370460069043615153602191913261974527780775564264026251788376872983661686729530542426415668839923225332193626628703887799119562857296448286104362723124717568341011586904258304189113735799146038727673543227987976339178468904689035780390811249460109662955424385904246112571920295005233753713301337216389413072884714567612317493223643045251071365782125353500550925705068424170667928798145838147151873015193754678027279991207048645616089862453213304530960270745003125373977110151468050933863042222611517333921752747187884039445982535060602859632431881034106475552824142907282469540929297397146606338839686645788588624628916646884514836701538164620119155902974127545885869953919388466859350833674647089331666894019916194887288032421547646620005440162922865796828406440928890111956102679437233679340790516571248028711727707395329282607587936896917846188505244368218424654825811611733909739916081053830525767365346525199986068544963160037380038974844450706833297576508412237270509733861926587204753986866369099767362265467932695887246546011667202780852896875271334462716567658638983864612533210460538736084297238092123921992239546172160491442137409597466301204004165458640320429355236297637361818746757372741775687256193120902959957627357860568847480310951086528534791146948248737150391261491511917799919359927631080445620567858454740797679647906782500880288600683533072738387255994518063192896858352643529483041367032255595970653841491621378689863751327604404557885886468542722297627222404262433518512441378025714394136206867514920369443436365437754843197317915037753450539260980176717564590766757134319705285321891436645148681338778443294260512742061207536725581911726233535989512994980430516020762972353808417949672476033990927937358844244107839994454515288031500583115200465918712183858335735128736033404143962778132223442006497826619516736433436851247777201178516136429277399804340052461042933932992458976623748086850766657620008248905282375137209527662748189321901568534313306675423715349664515555915775402860688654880328986097732354382993505057591287884971056375374431988863154244473570501405674665723344960323214566237012100859867247472103578260109701818257520246920167662992842318263107767861833728908148972768323286001681840651018977012492236877698333574483027815756311775011236630350710264336791922283909727747781306624792143288449040991194788264993133712809893565433941762114114767508154377479615235171796615227216340451968498365227772093949160579578156190748029256279854309991334911324387708711403875724052044890265941506996274254420145010181949236847383151566216979538326729927608987194626770357121897949182414442154048627588300876322145694392915889865312330197910108760317375673898590762159748495743208057041665685752250589245111600887444421249810116738955915392543518633034022538802785978519829813788691985696319770948264311580543670764018148330070691479119242210061130937482066622196593889950679674166060550259302336492897361810916923630446380620381727326297685385162715366323492427263112010644331128248707901025645351343647147704381248202941879761099188875032045892016772599090147985776797336432822425384850182783207573859318177250640576076669530533853637176635056079422386521775868630702235903181076924783410017717720170616987781486295970127658734808516062391837743189131873615901618836014468239273800174913168223222241751873482269768631105850831365819336391619762039489416755273191583743730799240424890564041227875819070614971504697928248637935124725749732675168895413062322643499744082989669153661757596696565080437392222180268730784850795157522073987925092615044095864877656347286705792342612292880371282646669676291570925137844282822522576935088321768755745846215679416769053882906134880759036818499687305017816980730378621002147879507933987450750748970654469817750396615420488738758609380762377931341218811507901448613217057685997485672498545452417579121081141748360440747570693490025226343428316513220714640754866733660113012165856078193596124711239247067903627127683768914024949814778132545368416859764142239888641980233695436191498493444648808354465684925947379670065021869399738685944158540130828037344423842566955672269219527569080747247116477219381817006456320384859722112797737034136696077528175806366020210746536094930131845019904810783648537861023826565593134449520093670349433303161361019965020012725255077148605591393990864900761576059517043316336456701123104737940585816272185087758563542842395194105053134143277448522346575035052269838778083615010749390694520504773772559579707895695548850104238918547842998060694989436332127214417847912916446271813134531400650237506547308345097685381854930150709332246615781550903307438146012042217838136914367205909243447653171173336986395056585692741954700650735265816445058409447976154242644479240798984703454376174056883383478393647414058442497133079131928289342494525233752371288065675757120255928097051924179461265477112252178310904322785046767412648543200900850704571959554821989061546390296776812817922799493226817600993162132817317213042042700388364036220901534917859416347148627266804537627217066933543214813123352387452214526366393501161510119759618955315616770411074228685840001476751152258206983772913964958635344457750715643903443478340180563994596955897716694846260184406310494746344088830341747207826559771449541883785212530231726002642369038176913556636435465347747366159292017617393689586534657220134361134581674024028040394394876262020034861464164448254483953656684071834544833683658777976165794867491136925875845500438380751827731751980292339084330879289555749492371293359811246055655858875692720752630161503359737227605686495950096637309795697667743335945731085558546023016103729574863398001429412653522464048031784448554670477072082333398778911740294019335293439313703717166439153814579527962496298508813788248200365248595786267702437048575908129911189976121316514321548612409593991217592632316978549359517626901192161024989413434218490512410654587247344528692754181679502493411101134382588941990169491255623733147670475313974719451225038636002131955688305317049439706892266358188780141445755874664726337347142724407314371841825039645046621860476808602474299013639532396813846397581578653550715225386275656182111148990440194109834108318708715817736318277402556055726831123757620972360412090263303744548678597112847231520891921271335763700024031793237629252162991250237949431387115058316212164466717963575801730676229439233201998349053798032410084349486629921878633350696593154047286637998545247661279559326789903318569505263015544020991298585352312112089398504788831879796327719905692582403863454953565769899642333250494386687308385955568022385098145739776014390001976921405463909378948194449554910977987921933883172447906249120411900318325423489361124985051934695433964192721217237092238721096725046192407471243100267263290552278018251724603435873007868436442467632454160039617739433252208507020579034302653289709451936235840821651463007506964306512288588841855433453584263419840283518446591918477536017359382005020559954516423117710991241138794520192045491361830791210738041499271937448093856716329317198743680404854323500372091599843598261718993574846518280961671641947836208981179486250188511822214753060717050620134176081160134395043424409785349529149527215632751320346342418762228168521766679574464510365821329271625143113368204045410591652737292235056907304723996923642528056264385584617986644852985414691867210664147778556149161617666779325354472588891277295326556587963809062438369970486952377037148560015019299099788816210751761202773699713688291288513662598502398965869896183534271748905548895811761811089838924446098159720064071528177827989886598160010781790476276075696307626600004441256978819359929349810284305672134333643011958141001308825269085630770956002713761260434283201541215021405617472038389714674875693451242864631960640151860766633254221023066053762012836278867868522680828762307793665234566355334860399013337163749895926288528041298631804663357135237650602798628856302312775040227756551267781691508479919229273484305030124620188941402819243867598395538002600023536496831356095464575416949298517713945575052215491385127952271432898833533138734286071873721269389046159558103312970859107625513101307053219443814780961013791835699117025967517111691400456426004022134823381479974713008753480666150544437543406568794542127201922910197156839768540828785585868725374582591052865673758987644255102489769238233554810385336747620608509074145936096994540976072205720748068714938466441602008226731173107096067391882739640416713213248833840666911813831094577818182934004664111765583187562382254990631094451877780550317881255586561813679454117882178491964282960764233939715640133335426529947280734412631549178297449139025571818735401270427215609919795755234107343700773691193219191699316151758011177182044908655811245571638546468675931807419357882872663018117297440499067629547674300001425098011575131349860543202971268349440536499952059359071109257265499988120045552855574850453624120862687049729672490810814691917948286509674314729287020288320986980379367646369290676343895645374557188048857335575022038248746975009220930668515040279123043683615492807132827117278123305579072995308211122975450128053110576584822310670932627758910022777094867624610289155363418299426941013433058802286517917717412213696764279554670363464547174286003869019847721758035805026901201321326407425220832146973534646155287341116285570193500467917213020212466994362584650178928433095204222131717712452196100733448877608123875727754335443174334608175643568360010909285217917981311836674300151794159117912800276178536161191538469356836933657831591400824195182260013244564187190005898872078473505407707383525887676783357381589697720424070362188841190495465022342233473336720151662565251666682712324778109801208682552390930444815886474296554026502212934549604594920116579707536796305883972204803789462336418371466089450834152204536005927017769082217107755883356735912419981108777898614564851653327600618535771198369467116020214003347583154319299160866520610627409619000651084410532944509358291363623893074548633550733757605956522736534812074173923017637517564121953860692592403748145468638629256194581137338038006300838680419610250127573786701454705408862624846258085425375528846959872816893309283599809856060696844839538224010114084177008000815815827840367905714248383531943571793663412381760918026778482422238783894793296904702726231235664310022090639953633747113869115013411947439131470926691466475042952330736692686015328813727068368919757485983146838499822287163102333573402538070851517561699878404676312912216714216458536212767137527901827481143239865588438626494827560356252603302943025708464408336733254549164389097372942324257282440263968919897731847265915229042604733713740640411246632960115922737084086104350598148442702228628484181346004488877891335015657359127765207394086245728394522185481610981151567505922007208061358105669116559365239869939429835994798588348628567867677293042987417372622016290937369174557259887919542454024174612146643699744042707395183034519283131415607314003321731020813801246964866025896288202279548823500015423355937685750729326295805709869488109899278468780458840276773650709415720765643065347245837286923890464747335905558778762544803754299760136159602606174012541510191126909379638965683950638841006364044962961652315450798519126442575175405516710244064111223279886740969760855781907365566832702578690350438847293850541150971190308218908159579266455042392764667350030259411028851137496397333556309952789917912467067263152346618728074837953409060844739786560116091910442896670100291617539595084692376087210447026451883613022472987540606409499817654723427716120894603565508183650997676419258968269305803331780837003915798941857495834565315245633580264405838530619810327175020011398880347180752013633545907393896386490838259167358426611644179422134478523489275089775566190673741562363635621863671081625888859214106374744168992712504954384939990904509431676736240254886807972138931165426369541771995959456738662125972359467783768647549121231966739564332648591965199253586342740506024444844399901806878295656299265392360067321458493421729743726405386191294333436985482137403400075581976529792293815825539665005236006442942216210220822231065690154042188594189210127649435965780835070914603109709050237665238590536385365044481206853785648988686973698183723172494817860708291536395087886359553297165862061912379230577835064323493459890955837442427226930974211654024641534827739069278365624154624935502767529009301799556118762783721937102485084308245723756454115485637811669979153496475734635597524003370643269819852691552565114469676706290854222294529114071165984390907380538492825649828275615283149247181223342194597374753752642091300601173516887793874797000438992476360811867492415589895941374528342243173201413233218979335361949336697965721531080992202512819183781319401443783824194196282090949867129388837802594894014010143507559161901527576252256243054655256525517755798127367356729508146854856486562343164118442790964157750833282833938675897672786943168379272009042040864338929245195003813468667494726001002611264029490931462215375650866226158837554657141913376078837383559159234963404782726474731673573093680861580894156127457708895973687289986981867246232295133948454786141116913530034585805924303033964965497588785223649946837838707949979304995959430446296368326947582299716481443464232552880521135042099230246673355492424584278951127921278418326754860491697449298502689307186489898569238638741886354956082893672230504661885425208969247055498709069908735682583532423766743414320581173815451958206475499964317177609084453002270859631563765913113084756277138126856980670317159874001605221915921635670828868370333969586832666827167180625990440480138785182229431643582920866558232145171957094213829658337397071102591310513993374373858254333450621499698272455785082973547697978130383580629087904648947809044687700141372360755723652499663085528039790075851362661295364050620840590889543104379053344233752810022765313690298580723193999793413405247696448875732053427936414849795702686143465149386143785111562735652979641233468851295921207911730456009649564856910615437533180866307468259294437910020793456825931025201749398216152542246888269599203982819097117002606708197119699604979145305888558807064526953467187080180195281494295205006824687541645324447891729114625556437133484487706708571111026178527082441161541055422928377525380656944400836792559144999583836768234220965939156081844510340027067206099242360031970500866760522006329660802907048722323079917406628250782521074755346894666475481909794504711874859708156976213145200926211280630107213669050319256638910085022115954152592900261240887694206165665484822092443761490705268894889934292247600758241032011727356947643208132927058690620910483804974740164865602178561035662501249743860900134174096017589032316915723045849487571692860317621172482642719379610409202224715260007169646361166681803379399141337881386262397629137294151079447516917528393730277740544818404328730417722965784676371390260883744796036744999543468314492833602433511608251301912471643701261690781513812221933249612502988685847670076092886855658705092085841817765065933561465976896414800644776977215164297035346837807216298071066308245325580715337647515525915330195556852124433484752226457923878252810300113935613151162555040689660135759796218622996169081969463881091950617011219546678125931116423102852023489248338326661833173195782101778612935147934762301135950184764042333098756863874692192643967611663437888797800519048649733435553685520478456331917755992138601857657984386172645283864255673035088912933760500729295455434358132980007542636350726886565292502391920192795323074923139386526529668671629473449272440483210164583731064901215337159681650899118149224065962488997678390366279556132954212527721445553502733019244410022411971666339158706490546010589032800819360190366506008433966009653178599641744325072189661268302498034759633038565706758558601130507504096642781273576237158869259293774891516468100842939003288866566358989630733983627126853011021230029256381983508632130181871693530511165846611438888326405981064230660180762449480129417204843446999213570882453653551453043794893316886065330051644428225194797069057117660923252155106067951307629469249573198049760246835557941125959081832688778282856376404471807267431713383769415595417656889590151288559517984706741845176518253809715876256757884528659197782130796316667868704013417416513252256413905338506366399421141119440130743308137215221219609577076363693671456371058188965748765637925335291689380062703066538810687002365171849860417893652185257097870527766836212173484781482827631779343862936125350848992742361978218314279747162972022019616381369919728944644396639102080871766212208601646400577867888574727526557907157445152615330000234519464033170223037080785488850449674343384161420835386434860310803319031870525573752693086827630102241910390299030562790624252424844961854744030511988490882605035826067684708327622041356121017361076890541948953076680142921505763371187791179535898742931396050118203222141139570167937061576290346758777750915008834947229366440797195465520554483092274925010477824453813563365630442851286424629458210015360768974288665842623783076007500679482524376232994049677718710796423763830417009138065720455068894665243374214257257584462214640380472473868921509055492607130440514106874294581109467573160035303464646880399983516359648009600004035768805666525798616538271701791156428504362746192264895593699464648953863579964092053913926370760931484974891545888025827867192991465915564206878896633357783765181082952855563453407952689098259027082395732697527810345413597330245151817745544068086928738347565101332222490354561714627967313484725047128156160163299347028361701384413912907399967965574329805960475026780667791429155786703137684850126470205635245392872876819292318746175519842423655344734095444666451062854879431433363876980040271819622477410799905159503093686319707878660482096012107170915236411443844520925622125990404329576995845082828728577838484913798182847970130207715181573324777402014353792855408191594832817359745582677927547476133005288459106835735800563591674943310671952019597005875252109345619390362914587045693799358107851513823655096791243107457644490590025006267625706278201070288904471646479435104034177999780169523083978174135433445483284185421256155348960132972628729925320088696739253927266870150012876988924226213792436200249812407872706768289515579200701015239353681814399494684123761844991364014020199177494239349286756361547353669266278630554227896095778583344065977733795554028023846976036709205041991876200596570899810826481047908490252323054661271908629615692247374093919843309684243424332609278542876490387059886672859273465914933686834719690328986423358653967591699082437451785761932609131177404612854230783182550438910178681683495799530498413609329272044058579217367343396316070495081249122598925774864867036993174991036360950879411803273249475433212579016898601841354582406439595128171094541484256374222264517824242416650892869752911300439117032724874666869436977481045188257645650327766060603336491450961383273291125102193689255439987863652272738458339060182959881291777812158196029853581416396158899535753233350205762767363667836421886338705403515364049802799125126695636068422541458375967336954363254617040889957297489618933245851502116116833016547257625311182487480886844075628816558935796830844831919508724938857320422622297147148154910526444154620138090809869565311770600297905906078092765104379822460780341726837015483423045394812756224167131813294967826880875264482693843693899156216498378128309163098795678866618055302300228953659463996521039968343382520233902752627946900111520380820812890504600453750760978887063418345771861486364413100480851379969982540608335849957244375884640887842257117037342146271539190281986908945998033127487007441590354056257228391995446049896762073630717916549701482739109550217492229935348874155362970764352981349960175958262782539381758968757678619989919929546405810113661765815537027638033115588396793867790759643760243969118111520991365605509181687096552989518279971497268823854843442076049971072286521203826666463114737336398580635776576192853638874527593569642716110684869801484282890439770287350987583288191942837142221626256065840917479515353362843557897563903423818524659065028077719448589119696399455839214179477524213282430872487513431415996241784458318730247907359477435908651120775383780004299948712613165061833410181200074432240221154977216617760814795575877713045425233814846499387383249885666584921768447952513149250672518312245626111630127324538840626853270959212184744118472677998978401732516505346042420317376555284211528836903301252661690000893375122925088223911439612073021917844836402217975050201071759493742561328222516021244312329873801771052903522706311140504879534802980652732877251352239171078214203799232935706387602349972334344453235176767149298834716918322489954954883299481959364994483519230253346695677767445179068029306922896060281605153664120055906913411934824904622277041084124166516290978234114759579331869046513580607438174317710335308396158597776557318665019043996552460647117580021369005803096720010846444912592072006323113607405911320371635150960551806962359009451728012848201447914450318749545812260755063390617271880665028916972568415728452498121818052793545528714443758922823768285109467654301242929848520760749089212682425030060692211633679157623796666494581023516256521438661386371914365718232197977612001316775502736054446042874058600623178900298854321033402466903031279094028595470568945922560964854483155945319451983544965930348391359346204234377604802392500348276860633305286463904883919647340697203923888342322227205721049005722313396118238105480033003576510923247138945813581214182028831868911308678074912686505229408724184523269041343206528986750666629002089336266894023763568193950873775863682315172143762596295429676290446607004442719094829587772234219225388589375783721446421471656578086959615326671114315486445186346291199922807109199009679068692196352314026864023035537179901842275220319310901661175568845708543242015255400979332488707013812914709039953991815712262067462958519285684735611365026199696721446113963676496959398507921760226926415712459680284287065820086320781721056174294388432296019072808923538013523237455939688049193374360867052242189478669056155790574773375730207359620880849957745946618542725518144089514817275016740379604979183252622302480505674170739728032949647040904963029072350947898047875455545221609976944560370510243324296263449831316994344020235128664235314749015113640608838542427480356378394211831434505514495891148102498737508736516653223758362078814774453899537654535865735083456857231538103377592589664888294400449511956748174723893901433350925300311599723706295917724422453069602625841396041046927070807667673716203998779764292295927684619109712835891608438634394091588946704462719674349283501492205414027439184721009618084148492851630455731771228225778406500412006644495508777736409072676432186455313653635622295958306248563052216207656832187511350251215654741348602400531941772306010033772649042180660517922360752505258988106983601251404370610401010905874578927780313773054727746768298382967029365978315966288034224132279595860102435595431562020724280473976523643681776993614773407978337712178257662568223988947720461703533159712787168917287795260470580757956432752796801561786328069440209172784048553101132564422442661676412659275825250018519508425914824902546187218393011321596558812168028637148219780822464208612262115341286632568819257615131351681677107097016642936090689411709052684290405347042576891537226738033325961156859295192713808568888512831891691283369819311852144760280131694914031206047329427872194846981797671455944501754605457853141689285285712484156958002224977594619052906014939515512943504556614787396960821685134557117309614884050562889183851412591076213813473363723373972091902118711519719561758165759116759564465951671117619508749383201226711951606073211983646360136483020385881530095163338644228284000780673527164551833734623353409997598253118453799173273939188405301937579014844875719148535799345924927762005021507682715324660322623459947301984884709237406904541254464284139264474620044443285007132798675457480445205701317799730803034269941962443689534238365668442343111757458264931701832376214813553085334782828084531842693709077263386251951635339470501944275437692896981492937895964365936907293812789863051512052790896566904038062703376015394325138802558102532515061773354601365659829301705843521548084691007829707406360125887887039854600346042407628564548786169407043646865651260815935265316065887613339798326893654023227612824325272014382797357083645582400795301464665230668024907160419469019093328366317817426890745408430096848264432929037871289047294637522428204771509097107039682983921252517298410728515372231845737629409938745504190071058523801299505123681370922781176146414617118385593100174282463715095850474690191821077695226182626199149568126751053196179378613301436941094849800822117352951952495798200838521216309767379846809896796105606368963397868623012337017314106270823357133226462497403123669107301841010973067544097553481629786240300234262249621561016273774980529276562933458639642560780301257742194671990190105232909082088358809536834507758738420878663028698213701024931493562631882767322953043693468924573874274917424260146535290956113048413490381193777259497484942639095515730683390893939090776909440599430628004768394859736464591849812045770392718468693562621161721043163184290788737798817187432463797820349740862745491778089087861646797978979181389889496540443858661008553917876182565018046527610626683140345720864922429187881451376826233112411634008970058248699125223305388967536353046422254181632448735689094485825289867451483100608277775923704596256012105156813774415668960329337245017245572290014247875294140400064197420130862395740739570630015123484285938162825950997388340286131681008665811462279041479318209921855928688780179352492302112858617971659670463598907215036977050231170467346330438360305795277330956397147397426478324391798452549395165404591902111103678627481036653784661411813686675300567720077582262877334757546923990098830479053363787528424089676160289316938867610016589792876482991803811885844346191467638981307779360180129699714426610851690354223570365491426359496690544845917066141437442873971931671707226704206079256607997164034748331256695588590066276565353972712146800608507762892945505484522444235868955418187251237278124643593772295011234082226412377843834682335062709589566382583424555879955765580990907830511961518341377475851006716153755442682288449735245936537480421752893418282741212797623817755948022982536928284375271146253760269391383085777636251403446177313508408136619908368546328085468457800525888456092027564634569176624067294376438593292973916074666580046612118353164637715705109921177537267437185244636520341740060796731875721538117542161214655251074171082031343070609674098248450232421358423092995866363060050384645997419848781225868574918906082674774965229818754613062437875084751538630957361208442699844457918516175704516220391636311529117206175897166818689658961273506774755646899353317424190199703265851144324507132537396830320279526596900574320270822389523079104523397759817192813004740425063223571627435361161684866954170358028927613946744534681107588901049411846377457817535064030249844408061168673067394912203512820611918356378408071172945748158640504502199761623742725280266053520591290214573007501148291676108808506594922595671747048490264017629016621021321832431181157591572465268115188877333084902597459218454080010081786024986654938437588733322499076662741021218848345723455296944070040726031492481257887619243458604072723520836384943098424513430231872140099313851811640851548325253367969161975106903120350961828708213583285298658749684343249147060957280661008164672255142832465219779369155845113183311621352953119668790077883388260148367167306890514964471159173635340145587843499328252521150643251790503822858467806593463050087776261599051481001201835598055702683254848002848681284273562379620098746941892583093209609884080907852380885135572317637861558627706763508882204559100796698798264431155427584837223310854298981904763832612693784895658580214158089741747899290230709585794307295162586426816688158679622105183190626518900207808056822074144161311142233671200543548823422039806524176711962238649498194979818065294175641917623894407937027285831624942581945677587542627252666612783539430817537828701458365237900421410603507820312216059738270677897809136921681093963846857459612591414454849249855109253536770478392713267583035413363950641255954879187063624373688376704247961988782632881341407747661151525082812046096036972877641559765520263058351101246947337770114398791436071233049118942596173757226106164057283770847058358986053833687017644567423874050383041048205045542244490154880252570206185723877748371105156695179422431274289878529282043208216008224607106198430711438467333984555216817118470203718995416931614825907132644374124578705727901174962572509805202419200504076464708199177851684683421402534536020306024757471454366959414400779573999987143569106184505740926180839683778718093148943560350260092530248105326810425459253117340327282403662311864093228220187404626191155435611428944137959254089689753138244295318166018077015254043857701854711058497111306519276965701741913489573436565381018380218726610621044945641708722590740446396725177335264265783187138159457621475726732755159126732769611248130538948935732720709364165477379480616845547294593208898137268049300532847227353277644900244453551710270544312595910940086378591510958536519348790625865770714345254815211157029822224472917210794589669520608623774253597467891050211400063782072140421724253251284309378867507702787296686595156097342879833872691180917787944853978496744927374414225857925518761406632476535154440687497980613342201528453839955383129197375849709566343345420879544898349309409407325559057575712538547813832059537588779613585510210347439095124217705249745571058726339217895231314037723806249666239839342162353706620477327041819668954972074570279175238224425129606529700233911862525177101111606924078856713086653463761455366202875358097468546931298180534209016708239087959159057280474731947037046796517417592264600744769000503486932571223262655069566426117025703384266349609454566727080019274128000727064625534055095542213799093565434902519437217115342944260103554443241711954663206505520428112555401460941571870740746613060881677108581916391205153444860060771300652983284053127120732847315307223430837637388083868115444088510900099485151841452974628247186710958925250817317204742727604193575178328136487371543524532230400753683252182654270652302029283607369679418790838883400429422298254250681480477019635025538671039831263662653506458411162379551685372989180012224668777023054648514627002576845608066876232933837381608180738799589365132962921697134506230876781968369818205209362848126364391498752448956697076641822788603581579001885427692388857689947539665924598547200838606379857369831273644771012974157209912814512029906927538414186519968908115979977389100666121874621385160015635267651914741197629051460609770865697604558934882909962755208944387375156630451814147779694837487886983780505520825642780740126351962050504681935681273467362459608200130750964810115564726888581714655536949030930074761538514392865654357135755364416363899322607047045244995380240127749898511332178838923301757749731314642679092374705429579631074600947824273865822046367404279963409759049899618079241121071252761385547421465135124437543654481183069542661027427057865374114240489501687774617318054337434192681308143251555079260238498705246414780129060224564203526694647194699837220217159292176313633801012953267502934262543174769560051708758458485900693928160563668209247510344363014055922291824322068471878654599172907221562363469593413038311529220127540412199664829122916752981354171126403662514272618916323968113916267060083168870307851219339261898726725751524109113426328481222422329460352832283435914456680597385443966291355525072893189632537263071406117672129724016728294453162670486891377300256366040034769645564970780668344628643830425342921283500876134825271393189688470756765441599542329506685187584431718855530097466681276959851848399016203632090403600798010293992352720093000151596664815072423927828665709485607810279154604451059528856617804494109620298164448799041761439077770383700583571371638373502064299489374244572686789232046610196723787908198270281049784981789638950800399930054318587878484189860418712996821780642046616968315498110757231700005354535659726589452870944850174967594605167278358229806024654519071109034135737807273631520765510124637066643321892694413114239083992681209383224954583363938214047202091179736599973150118112976812128216622367215986298143229077884285571223066880400627501160948105526964328495875214627398376740785017469775745065458225202765647380186860355583124697083741711521181599482139700556115161529866289795259351979849981899701737626555916992444448257204111115424302656710773992356126423323019802951516751865369373706058449925370643236901699999995632593914127460100884104553400088239041686416888234893322539968607599009276860060285480026704524853654465620784377216717246968724823722065258784157528156339743986134142184150196104089563492457007042123920207399083965559157625518912177343187797892622937592059165451075560154927373150842666420474714976465958612534398350776078269856729532034902690235030442708171061275557420339850072703019130362658267125648110704945228616304043412084854441402760596061799547144293680536387267363059312512807603359577166252568215087542302418951410511714606485672406775687116381925110701982553133740343766744845712292334125858978788279716065530465173413571078979597996429933234871789841640692426632135466028766067908752650333481350605943429527248842738616105126861678608479078934360170456927079457915257343951545014243034585487308148733803426339941217490219972068665478186086635902019064140053293950560599765995614767415670460407823497230125666688293548709448653194681916479549473670263885720154536587321611038927458112332077320527548184028935589108609537871073495708039948482730838313488621201186057134194146581016709794535286363639255331348353806360086271028130568856903125132605102963099775312933766537836356246595852498303789176135689850085008665295913450646740267496169802104885753156857265276387396445399397373750460424847224601244845512943348922042388000090503956926584210827162544812631182681761607898303275646495772912154760525641306184894022997266208512139936060117886384045817091282859989560829502355119451314391744829726358117946577329424042920888030222679245542314480367932890735526850838534534844581293081748416689389302211743097780849338144611983383188494807181261145063544811990966078211177133510186889229325128417394971235413862583098598868287371349132991740359711572897141182250546370809305637718454986891971391218123959223786177318187921700508358267697565705182124358696432651258094135884462340420761140043869614747214857941675005614879780562462591765924847207880026617430799495437274694150888298349734254821205930838408553925549405707844399448243701208042692039799241711111618173304440632013763319259471347740339371634669609559458230594491733844654507943980411537249066838576053918260192296158077142763881234493715076638513321587104492130070362667248203488462489270621762340872510568428505176289622658675553752484773624021466461858826152606453192742668521715240154860696030213160498117275356106258676765729758571340138975651412956012099276114314035257081438935038818864324758029320242746394274588484683956394975591954997522643315075843342248626833429353209643955519624538392623598578805738289185770089416106605912135939949236449190217416747758370526102970084956527072309427365440306288753571397373890609149838576866583880512711037359114096465849033403893227360764776654720249712513597606783600210315256924182255920996706296261054461427446177527314746602297438990381635364269941609745510406152012581562353686722412359702923607703698360364553718839459625501819486356509882130342372182004846889890761811137763307225201152887721226931915181692111395139310931918978012060280839286283083827484670048005688455870266052274327558559474781935489793436357502177482223475058017819978468664597032627416365498837219729228015108952674071435866153417400550430568567111497763460341996248716607634581174069540222793807302502914010716458068092519792255336993303284937986084201101117419989180821700485099949111429496861420494802114061259943691785688628786921090571222439311046443657407606997982736665068509085308830770387944515258053881487192077983385589762350670115263845696838626786219160508068988593612101451983722713009753323220314011647880718401452118685822170574640512880973680176174207716042637705943572861219816041299488879042264993976708006404830948590841639251864363110482386992353651878008757464442768734677677593440844033746639317442241935351235001613736030229276513745466157140754252088117236214645444362749012514292053308976488845165229692861880742384549907925875493062214616786879358249385859078991338092880257620577391055591468658381305068832294397827650280496761368258690457050329621329684865257035056184957052686021912700022467415080792867425282131042320054020350898746298679261864776538627641597324591580790656474561140032624636078160808908086978324689495481041564124227291878659820159994955962501597805188110958686041740459542535149223323716171576608638444996946481410925427160907385685997833486553212422721043985799437083593296220361498867610679675033211357480427899310782606310998812021705925649129534579031986519615326894581815026820397937789393422622649308606980999726942869968513012476698791673448680037284747627536995534737041500889906407156803639388520886277861826402366718882688975961605226688767254676125769429721610118769253805020840062751217484864764456002417290331229942518414268713878935481368073038285316767402703505528034705251817539186094656226146787921274070577072917600230379875776672596830966681984638255084084177925723755434537369491423713077461046161919178360506767875878737691927861823675848904069378073218559870185477780792942679642525316346443198732941871196697889904284896311643659343683962305602680552935225093757078440455852348400527302559470744131186076013371726792556155300269065231287338779176370241469827205705513282071643070721432965396595267836074138237383750762477936548155528942186569965402984830875401134665761690524505988281337130288880349373123830192648904218970277755526825236230564840004767507814973625851797744920131809423052492203372820858429704163331625026774631074038004914392629157171085603373629251286743345093100294581439066783729643081488192105153619584327040888290154663920455662511698748351926889955385169637902365515300399018301123088503638973422795837612249987892807445023867058898402992302512883270254860443775379141731518323501892290777457722326205059199635135022200208903538584947699227052348957817682113733285142851407419845391822149891633792748017584233226111543284506232351133222125361881061137957784546622591507198285175592341135302081825969217235021724246221260302835345565478368791138380682042924854983795434383379760264752594693924832967271302816057732879992560321138883788329524519284194658534049127609164317680337121917523447661359226348875281139832421173210323165458377016411697569203266230008979467574612583928562041533291203051769704551541564783923843428683545565077894280505273671087735923006726066172773173290366275303915653741950275355657071771119543009510966706459451302267612562476521738268734713594740064785162822464386797455851903758769184516111819282605651314570001517709265783009301017862704258804317423483628130087793214446307076772887939363000366047047243194026842718493665263879526716749889254968357281358720008619706220914566916727429924558819435391893633991656060887743224518557353118091416702064510506002083310845522844332783073967703767562127372378369216451716633559550139096530936042379670522180256185877920085839547869836805532498497847746239081463496466863465722366297277248678167745339914936984558231663924493963563275967918187668878663573743445253592375639756821646165022109014330119369857812090639052401757471226728578378923930304379466992393352947166216399173599942194442611277458844018807156376765383134501195361755390592667119792543969820827961094788412126467317756142906909924066977231467630391393348768134941766122805089915104599444573933433828982202831710104648723180794656737317804982673196579720657390235408946252597207323538202110119888142038078156567035378513933310036641763683134043100547497865244213605267821170817787919839220756378635465045483098259506198005404886168970577578016977435885910447791205850314910127520690785578332923554803525287972283217776898385798032183978380839993423221341920848021187738121632516798641168290907690222367680868221176865974139586002907069551152238922167047638159592877176405604027823484259520732635893334429623363739521124957277365264055267718956151820376339780554262821864420796878474422020980669103146452148932895927288123819551475049063603236507205806658059213615529283707220245445170199224546752754325210787142594531441272577023979140280908085630104130674612138872374894571685957054073721029266858496237349550477747388984447627934782977828115886855156654161666833058632939042649083209660227350386742742726136538709368192621067960401344124629542747270374436591842282445886490187748633990991409865400925907714165287563108988231680208735730934222592683653614335924689744739781117215363698324584165113259909452436992200236042664334104589308413391345965443914137576928888170697364937393983652088951293342779616790388589912878939932097509129787846317003837254253337106836740649072264600287602433105203374017200203321172534034238276288234703983154293244497877701450523607288322947552602521172906310546719212610703707281642259497858933551214745336505794902341804356054048929130684162933089420485012089972337374151874439662226665152439538818299049122775541557615062875603456773313622358491117454690172650968980169336082092760190736304111524492623480514715425815488781656246192777871444622550991259928147891000280797066238282186404096818496608964614070790248859943950881763063603613005593473504249846710164514675690539848689527000900617190919750323430268134987040461136225885302111915801824284254688565458403307169396948732218537643354885604247845033908085944222185334458670566719577639205559422200907685797814820756762616843937145405476520863573601541914487747702069658502702617092218569867933712238251952253106447728035835940839216170497620035563515301515077452245972310398788716655034381939584573891773138696724619996289518530715530514201536810837187462292874184527171032745819060957407816944864831622510817200720754086121574567954760891000062266394739226358735574875439801223969230019551253089177391258150019793839615960493830435397355545742025008027352175473437757251308165776533795504875415079256521265512843086462096161674396959610021080505137644823741277906220449799835962573081150727814346754407718351127306046209027026258092908922650802417098108324080420362098987425984935540172946033663175283849713114342292621763882967781250507075166113255126844270741059073892430928753255731892110403107186483954930638655573262958683137750749366411145588843594040129667589417738791231807438454187009354130067595414038629998624766671240030371113015089374412355174754108970791869897050031722928974050878963517036844376261967995274211033770920907593951234316331543240475182802288783924362419668125836293768397348191074421041231850318403669311958959180990146550148046097734020587331225029210683533099419042700349568206688879190136921375773542740473700848045312469686168259283154197657944004895926847757413948808421390061041010302954694476267556501495127526564518007732146578894998525277012519643277461418137840099807357721377081623986689221136459386732495662817938729325014307917288702057660724552072387789312095351621660970702177850719546593291231192130429005801398250964640390975347785801554645124585020166736117607193078813233926989577016538756489376430414009229422824039722606680719325420426016768121794142849127411560853499380512284639013896969741022638235358601940218112920843936209220762520257098275756135825732282489062540222405647241708287206563521812733461747955916889650130705212532448475925687876131424942938730900845140382927619099372056493138785165374073917630794550983908370743196841230868425986628229088233132015357341388421309018518675111267387031834666481089054368325708645196418357878564442669162419161699917591455534823235661940162203069137021185160491914892486133537490827894551852505378326823085878117360633252734831512700874937399838133745439570614630676387921714016733921042697474386062741623748750033848828083577350335774734560667244633402938355837027999678514924259748861416499070087340708356485720886843864801977007399378681233084922786693466188970460303106658227023898184977960129263353701076194186387639326663293632799490555468880211521153914767654881628305653392656554664831755094931190291235891321346237412527594738634657376043531789524193079663339905002118274200575659930226738900845743877412361901759891656994035498636353946659249011187011822072729538157648468273343587974984315618893654672257898644901603633643140712129451021565383858420809408690861714039563263082429900133629141102676815161904079805437872164177096055638303990086938335036102312689205088031814163999612200694334400329592848427848357999874943175142851615864447527530083424011627726092570166563825799637827274694786320976660236887647951386319592608128601658242286236707669926392252409029774519678088519599317101271883228800225005895206426506474861480559675452165975232904231688923542427321482016539273741600490646647632250644152034424740847656759417236315899312632201711304992034963266394987730141181474152693435980056692149842488673885097820890698305979270872871063179740750493982411420049743354527448102959695528445497413572115640715113919676462208053317960286763346146646952528564318257236685735104575202562918813670926510334657692352344070795867725561270237458572064042610409967598458838949293324117571696665759617785795804574403549232345864007061051582572750914134474709132545930108149317868509135901197143806764562677773092693025901906318299550187417600248441318971657808563549079434840375289905562734436500409681067911130920070181878598958331069493951768607660118491983689253151185279099579567245960917683428564423025362481427057134044071825806078739119931261393522619431981192023412694888761003767465795969909869045717443119130733151723536923197389321141719203605099915198202272807368941817857662118606347567564945927952437408726501510900460481355994388829375147526898956726245338503971786241160047301244581447245643712375176887639212069455280256823127822458021916592130043990841451631745563130383996414060702820152183194528431880355667586127224309325141707898010086810904129772709171564986914794001585648240944521173992532715403948803368982659572964727604228369833877966899296160297277245785543744351998941925395192850162150348262164794013780035342612325445228664712646055373312443229247676582574091561738191385430999526246877724823716845205171406384734284253914956026046716658038819559381955907076474755897428097128568497269747343034237767261491468507904128398715432586437602800357641419850903279852425520963664103869240756613964327891058768230356412455481857151242829821941657074141822424037816354504779451881693124489123954839706825645818174225836716549209407909674348890614997300202695190727222678773422475972608710238438729577930869475501017613061996972925423494729076742430220619456608373245841713919888138021790597446266112316056771560591174734466628478210204489543016640434678159612339121988051754465656790467050307247734976698967511868555158304819954188025138224757865460671467688018180911630848249752943997431785663718730705306433024188357860884728911065283032783556603605222142803215269274970255107360603331942894378878271417306137435060693487819330180168198979983001795802579868288072913176837221033895010775348587722242909975618580659750793069730684816088281489153844298043463363153519076752600605299141376544844651113255162374985583164242712329945977311636417503218761526134397849617019000570902495228329794235222030818961957290638143841496381050433644290169382793634037878155930872657578778221154099304519995023088187265354349351436121998383019430390915703298709663251726194114064616299685834200788004938186081670182737282807105829821416673792893840248176439586891810272947898138323851421109272661342733079390664792759313777606398096451801198325392772664032185648109530382533772633673882277556292786848404892288513835365610427007960630592136240919138759123067410289329948222354483526386585908322498266302324566157187982915920509783412888198836055461549071709058426742426623084639580084112565071646397362164520021809476635040584739638488691729612547220512744958456971163111526059361106834594889690404015552097806911825048436234900781825138781550510377604921061600150184213434302963937810578356114333717815331145442324177620543109977231313435702638490894438204167796442208399402850258027619676610289976542715845554356167479584640053468022386758589894270337484479201961343518535231070716132104072254172937625956445374463438783951779832876104724314443943116307452333195087178267334136075748850009126616677204651149417428773189997799800694697218884212940881871704753242759024899473313720708400537038121254255160917851857009483820210259590368011670848790911901942421115006926486058565451661832127148476725406456719725723188767102211630385824754114192369256006462625437751990683078815457195911469354508713530569386471159019647507889797230095714982101345544874478137657630165701115665955963477318157467257959656104784769210922103999573636395737116790922331406681469123200997643376593247835398621695348940009259572418269362239546904321895810719718833574011200356073235062704928925861017888698630269533803026342028497064747820016475242280421871557940736784930127596675872036315167520212002444072395668357221786637800535961890018303369991176330206144093107668053009377582720047252099707182228364702131446595364493956215920070002162449903649809443392860312943880068129322952652927868059579393655387625156631864682493251426332221923613956094561902571165678338964085625432294162256587810837584464445686989986524399044393383782506998402442080214571503536730665553581148303231610730588170145963536804136600560813088231837472524467458780874372748814919016170644339570106219390185716688948843629262511556015092938827677796457423634654231948856622419566423485878883713293482264841836163564139541281179109860397132040075213578772656591208124185512843398743589463949771772192294468239393786664951606679978105505834994909777112162577002086855641213840650662708129810156610388910299194547785850467758799464144106389889352230646148047496786535552398921722956362417580356534012144467099472095006854356857729366060751654933547948527136341638434962572656681837515906395331900922732759330229972668898608226889457422097626662304334197547626580135707420802836316743055636159807331757474822707156514255997574249368800764344180351860389543344499548034191401529295450138459345521110462200890118581048049728762921218902866963841107929380992689404649312618730893473670434408262121690561729077288497456697671034078450091693648619071926842712299308424682475505469905917375843687497158882390375534812383029063199119232095633106393807796570319850949544926389278863256418760544064621415681240840903927172504719430723152285685748903439511860931204375272104636823136083237915102839465782092526313411006940642795804220899477920763108747625898910012316829134068466987392018112742362663077161375961223344078707221462945347242557737338201191775310296038544407358487706549018665992186915609604954506631146099832350260349425708615750398925346510818186158560846275773492586769875342804508197642195517574860623650787876566014457904786926181608387334992886206980268787673799023838881993101936023138730180641707279601162950057230969346286555323150676905022332853003237627487324110145122895892666455502428168644850053776487252902895656487447997976611247354475051376626038291089009120221063738499971328341045654166915700040509435030611971552544332990651622216939619195110906560400687769797869317549892022357723072191362876543206804344984472599608355587429297145950019990611772716814680036900955259896262174890048751122289871747255529483866873275293098761070508966032413635030431350308720424606550072768703737143269004013252972293999775821440947519079578268986969326643930013054446116723952219339176448105961299854369834797111474292741138954782922286679154818776060015967441201385574881780147498914973523940228532533734400366330233578544296217234751168078909318178068459539142732777848018635905315593063244066934191945179835311947671603129809099355139188664697291213853119771834609529426364523462256882657275572845635783138561530604875933846878907459154038725789535866840725083833695521853465506964647493343908940309230773528418021635896352653616435415474012684623074347166768220543159468750778802103561943336875093025658002282197377083404449928403310672214581140066997079400569828577675118267709807239833977996891037476644269524452412460493582298758966521241120405978170114663419507680283986698808375735416421421691268861763696519229144944668670733686887937189443342966516998667577755197449344194903417091323108436096965075699578800515180053116587328255603905119789694226170311919162969106216978748522661861658432886731725277692101433605283234719317850701373828357497011032058937959658802067018168044123368495254414592321662643801828656829634191955362072476837773314488518615923386437543465479727537484386175970084705752172459157509843645297979451667246778946911399873124900527172934338159180820217031571137577222494732703814111413378494576493336426272848432295989088911835305878181101353603551353120450396067159507597264561945781508199126994832193157767450899831906418157495388818944965066118999739853931281119538834612981852203874863790827650859756503926229385919172365070227587095082095020877236407884454279223766307195029986051248213109126810162991493927993472541924125266450432263634487277525815901701188735636725757791999229583777773440568484299495560749682746069324111607439195628982475510901961060317774317371637977887359001038747264181297001222682345168002716083888148721127577741982198446737605793670804839220304220614396811288792556836672354870273337141561316734575411294296779698523639221308809560771987901620843616383057974955441412734444332485719393597163595994666719158294685071400993897339169856581002050939995071872419054450553342598623779300445655300517555163537618328192842617659983482501052859339325691208394673331917488765841478288296866040316634741251692079500951286631579219798573066134397140288320920691294137170422301909171373512056658925337879809205232238081087708080444243191673088923369517274574626038356712351455125234906500527458861554456863104412624473656111576280019344762873050210543535500205716844074014657947589508469044977884638481467991288164060417000682600407647677062835191063360456088929872890051914633740005484123705471461416340828429968353411994411524248030770276910550392412617063107628567389452212698764498758827460318180888932233048655057235207902545483556645897970456257897259527940082258482278021796321934870567995182729455126451101295679122632322106409723485510480479549492228770402316761000415077642336861990093731279736392339594351698256087364176682957380122425046038350166059440862180493479751212566435461675027058076606635300023746805736585673293545494305925616541886992970395521149338784418076728070495239129020496737369552243737620048051462520668473416102963686866382246498973184114598821111337419701129916813598692461110374126740827142728260792151653328110260788466279606474409125948033134541890327672334488054128050032859169315906870356990075122365868610756142442951604475574340913502062100139456614523631477530739084983519606128994417611776348706589402515606632877248965557426430306239322050269356564254240159063496966731440727673808971534571875512803652058467883555947161724836563922172770201592034930431368732207904806542046428125319212128413395366955441926264748775603227153963353852260754069382286513454033777485140438715473810404827524112423947980719217458112617131175640212743252934154537900718932591262709408801761551950337605323594229550784257051364631630597131222814551047784235138801397471438000039714995418137624318264348301913442357262097762583973443865237634663886184944739846331765228947062012828109234968133126007774750349034011516062122869336439566753225921297328934517989276771038166553632590364834172345932538763061106854640222669516681381538164738532500327737292291102103830514296489927529312158672446634170789773880887433979538161917393029688964610941818034331590866040726417542563818830315701868652843240970611554843830380245258712783027201986894253899386138231133503735644884243516169968958692500351208628058232268083655768003510455097093213973428886143827361736099780272201303565083383097048002506824747161794371849016372443505497313762483314376710281725346579948815504946576892043308500345413821756351653486285193792039424215641894996874853463237021604957471836696193056971960227242110901672630810281857366221983798607392735737353664769826679375717513036587190270497034757031966251406832744023196476347056518949836799585365030887993795989613788022857110686739194678724007129530518847248794456857380380582494892245941191609967873808538333766111548070765663452260358464905975341596340354086665395528985030094359029896884058978433235208756597300935754533781489124100161229336405194992079761592920702594081444950400358715347973673089811681965532404499869324557638554944921054694299651401849267313880698349901820159898832106102389123135744553051411824861700397928776733673187747351720008200776044861315581761157788151924784602818093578274918027816747314966002710966774904906891891451441278597288001452922614971784071498246276592365104862198310167076817585771913106357412053773510279052884331783109286369477366852479584913871383960378373149439493303054883279371864683134795547934252881941009971364944247019714701587632730135020913894380411282569752761287805687602109987227166707829070410647280194536578525970375790312194172060574384788068573047994765990019067510200878981044231321996948594865093971814023507342301499078528118159899075193205323145916408393767031547923636843879608905897927128766422588251315747373840060208426952447729122430854131439209505584522213085079844478450840197840484248628382924565016541633735370351645900380126930620984612152770552482907095111493393570066482001035522269676127724956791752348281317801317466245699875584975770777382755735149969528242753643570034426260456935998147484081687384518238743081831817530209010720689614536879742344903913405093472468446383835457872868428283275998975128604693672248520808532885083458626946285878963361241915446419217810594248041921643935882302117989008589564185073180402589452484529090538345125717966546573114002027098707108396889076250796772759278408420395417784940692517903773300821824083209885706387891948478226867686947037216769703066172990622534972084298545443657233370173230666926781313103680939851687037243577480051457588318847494017488171549167658515875676284795094991555429128304520898474385710702151308445600861425834479138207772802126262633430911353853867723375954655448393062370414876076966156601141355986406100530006105478014595413489113339611422554424700585543890476993817637084702551715851504858534839649440220405495193568518942307288577721510385821402487351127660219006374782282192174996939196032278773115868528354661251839368158225957644968437228082669731408263564131007089634817653895750275229809960458513930971563438957563374625678276944048565090501569679672817799657783228474723679333026933792948488091209836675715674358971986449652615282225419433990259709621161976837805465378614063986015961453121996437690265497348563898535175156606632623667911224334768845166374018928548244135252406433972424448217213555550196097443530389861793775474433390407808860962067325971606092766397193137629651721100864404910614072431301509225626491277835728099515330817687320236732399966522782186290513181405823254716822515187688915378920437837057652837814607143377294908897095775351701902840757369439377187354503673408889176338058004522113018287999832468648369549941965558554430834777261944332284248926903652586377984601787494757760547137451399903942626505883099393567759778092308617254520116062902592886247457802373756016458531851100388008292114745335086260301523140328854336205171231895677051345702298783705129205434848966110727399092585196275347880004693921992331837971051931804872058082982450295878985089347863603794997865039233697145890028580730860357759045772976112324633278401869590156037500149684672167519210850206078944572297560101116592373500413710884573829234389668029244135569851195318764780826712878726761457652079819848824947815355361405759220486053427153844853457859117554166662145820320096519185188248531139082059954323764380405240023008362676984560005299059160844042861025298764470884682839351483706031032038167732042141272729837121970193359748180562456117782614363257344673515301762496018139282000483758659271533559482671692453384028078188036862167607123521537817097384325592603076395653867646326187502853953261368067716066220772810482812215956451974809467746901007689536812921663409290369472466073616815341946758925943335913682031759746440375802965725458662861184914344554378198309986593251207588763956309833365388327749051177482498372199137038939721871350518153981701033077958999832463078794714839947582706403234633853389807584197769291171381849289624822410526907901506682180469184785800853044463695834835279326972554348482098639953623371956687911139345137037549387294643001141244538011198286341844621112528864976843115708907042169719889761610224050114847214181383741888985189211848942151856895038341215621348946540029276356404208536444972890853995545764525310876508861516803197307369313552010332407398045548321058916657436423581452484346520141488355079231405084165587257589390157528853828318503635325695826931894923590153161467072197470928715993569517467922028862300438985789880519790248801861310541847887793947576158114564788635463435194971852445307560944830238118250309807455602969360139900725341759220372592825671025340513113043667228666126399575179496200848571798570760712140936681903325560933658493155085421294116653717592609057521925424133926487475185667722594361608043262110265746255987989303541930314848423788065077386789283856083179688579000268043916932181119276118515518093888847758262557184976538953999826784320862315822207501576002747466478760956908587762292075200644624943572171146663767805876297972361392415127877293104843980777163118298219780418925416651509110612289922618922308113889128752270742913671359770197517209259705563701082842736095653797792010855266017995579491685299531101888836512596468375413970524638010136665237353936274915352306750257360135684434032537204129259848528334748166349296877119718247250238770555611831110477749964734245037243227211428342095056698727321180948192706206498864769047460325634385640195503714121006580748569418239604054993844372060944296918709593546941837897454992349560586323846031162772375276276712825855617354694424158256775487043065227439112180064063284552448293683789203688172108067174880605930685991074216328381478712526998494470836474088130560665998146454026536735979170889056294056942533818925646072716416325859678281394983533888043051651772913248083787610115953033855896703250704171379071413601611943002612296903934348683444035926637690926532946959517496801283391725807475696827903504502769130789492516880332279953204054578826021710859225253049137159715278584990274184922831594413882641845426973301962995832325248265634341586218302611254692388316322242314726326464874741004850885029085157391906506065593315096604400063355385908073009223866046978911334999433644465798530383434197389136990472975167992244383587412727996430660745080403871401943661123998661442695114596534385372767481789752267304978920293475187047047274828439703646988991067808603754701644938134638122901034430201662642719722458692676317150868701895864038066856059855802358264332246905878234079480363103457749445138122907119258370240641793470375444063566257733668519569587027878868335509428062142602203631102452547995543187917622890969717264465181581524156541051508285594396325379723259640731464801384949578863448352453971340210980798623119745921232003291342050974464744591600318250226205327368297890470585215505619573478450399281694703151278000059792224860411134091628114095003799526707466147054135876348523143456222788909515999492145346278200491672769902791468198742524055786276060289711610818529238567407448120929810586380696749556367248115212549593377143707096213841681901316473812686920526760436545672719266311755136998052150364449369306194228563612006570675748777216478354263785732594179360389980507390163902871259690861598845515849976467209854672124922434532939127580543546985455112864065126024279305500646258397879311384590444350796237119179013849403220590350433115714630419411717073573897018999013025338817352038706933541194481393627387057608691271641996313810928046281754277098801594945281987863798919886628928510712775082917371278865184106967952722782048233804230604972181427533318301923852593733365515469592683388707648920802716727097377232766900379705625279702919232788815555686736906518184277213034059876249026378662140469109495855371128571073978838818298559474879643021785469142827017987940050824518134361988041387604616141284253305131450830435169955312532334743434950081821135975428362521614871008633212429741720636769091884970039297452340334579530617502566141966023524100411943803487368295728256590765760806892796462659406344775858449430884926799395648447879538198178786957208532060551771114564465397387239035674115522704447807000737947668390437138641481703645478419729321476674278817980795292228626462408665451779903662595686803324026676245983686332653043645097550423988142052114379010122192734919381619569086350340310767115985878826719701853398506816734902055809496972461634885704220022182538264590650060560939412042208017780099713450282101737632877870416670639308562960948592751614151549072675984379682859457204767462884018285915504946360887846189110988355574641852234285411454542756401665705167463278390087647576145299628448698708912978488542585399092197922991431953136180891547899943310764493502561519470833954471886642866346742001171982786016833909849190824407367397292451539563024620333044991964587494386374662411548578856690339882308618759016192884691383841196773923920709389713090581922157489694067694547361394385235984845733606769815279601373869497172748721414420709835301770028385598824736503401145244220120089229526989642948093417451165364030601420123859047563656037038557583245309401633058793119728586737862349988601147049586922655986618647648769543115475926579939256762923880786066841490521949924187665271183379878432492275208732692373449298881536157903911379578100423517036146017214543732319249106404480081133388961997139901733258862108767345341428004217852257691681253775816309211283342468119379241657831041365178753410772415054756625004466185893806638715049550118527218171464568940316875779738567304792826209692479476339095047300844168218092221376095355536215420794906901083907767651217411447928700280056510181056856581989620618962468211238059577993294366946357894652658996291167706187084305199812750424062101736164026315218888762864229103678259003216602975359073040987127913040169826643428139554159690480061454183069753500834453828008169666167825487347846858639223175698192538057704365068771225242248506774648175241028945632358001639636948485296754785796458614910743206328345536866934359130484031967585893017021986863426571312568271718576016680365017949998845839950908312635673338364976199951524577751238192151210554644727103189927062495956049427699046499647679830879467146819983147095219016500760660653198324651922213519348850783914857776034884578650380627396659287445389816498178729386445591954963614100704870463539037072698223964101762089251562705082768896637748696321476840834633085502158313346187055417254246909084309566273823851215413553998648298137624388159562750638161227857532687976574508810409843929933237365268743440957346736889394469885554077814659706266808899484984444215020892081029580961427615024588475893414157032458891444517274348801188245806527342797734433340579069523648545925643484666936130110382891170315634083822986932919034764064730266384462332774877790216784185478884060110496321310871777964284919125336731953798364655536885465294480629189794159388324798743820367074445381646453361328313245685258667328726227612420453576395502241915141874899082080224716943285727050263746149262607739948921622641052730805958603121913340795129789991178921627947642417882760176056334523864265809603216211169971930833278536639335724689065099523160127341280975138694127653927371854675831843489392663277549145129882191775100814740420454502371993809150443735280583565388511581843515760907170199759339922317890121960295268857171726176642116192346939431706078327686011091043381451323744006218655541313943086688037996128549547472872721054104614544822750793681982849904370559395011428026646215490222496596073064782536613231385609450534496280334064257383259430974152528371387892590702726198443786672244609946389147072973579989183868618068464832184059307659417410959458419462928134296853281855869164802854135313350540591803693896564809517937855889424406653990750988233669783470000472829106437880887209592158998165347821216243571060699134151437661036977741156996467505363608905965979316353148616934611780131071424545773212894703662610966623380704365280391718752674982155627642824182153374307657996878628418968309191326388645843361322485629820600187248026302495839273895139707303551951808035869483656771078351581072522216844517898195669647876314115405485700138691474045629231126462572708222304711326072509094903480440500717079923480065224519339127582164673818738037504155655892598524509492174145037804544049065618723408569353061792702457546247900716904466942508117001295101067824630253785383493385294792158267989735630469704217109837321599642393462725816492801465056129258482482480432356535092611000203579223784222749167547457861647175362996519393042933203710855134522708511068535953345898132008231353278569552593984905903626877848964105328127190697974838140851054074561019182252498761575954093289016525969421526353573642210279346969393977709877062135843804284494579188715680238893935396035898224255939576684821004851625552976452315900588818510374784985230195512877776381012209361234814080864670929046523872407105323475341701886897177090371103367688102135904561336906417391978874965938662392640683908885688882439199912347505296440313816540739779614833996777892899575832076297902155430911452715168479743665512252959987349975307341037138319564459190370609444995319596213549222765383919536968700433057692907223587298304717212345833135064716193821014368275852592942610782374274874117615565118073225422220622552947017924638392340716509333905174989915356929553469180323419246301017885793247060467814447358253470725547104809168186111739912651812672797031765912694196409994327915254515389767006174926209224172902923009783931817919619234239876560975727113018506487964602498780679578419644020768226090981563027390480678706348916922842896528821500867654575679821395381286137745121316536982790440147948883533494928982148220646221108456049611497803371820015397201350714412910158527607307509369680063013592955890700848150674652608325565076984322430281698181859378916900755182197505423413962499771034298958723167452932721036071755132386247520164845723123617397452747044835291245544528013080548713007279511931443412415749817366524840459860031890488981497836550388883621874280337605324275951083086630858593398175448524914017029703104825268284535708442844231449308488774867016179793423128217883660883112005564347826643884132330609122290508981835989820148301108507171808647514729846446409468909150456340907512704347210997983754738831530270753090562449215845124700489421870312293187436130710003516060639147892486876882065267530970628624441865601472106757980541174480330847086467394175073413215277830084328722506083417407147874051745728682914343987093940873739479546811982944422743571833355915924835529004698488317454973090092482764984856558063998389498413556583833643365360200456787969844272901841071904546259935703186000879294046454949535340629225779629029392836162220146672791018911806255227574905355360978858821075469288024141674871375790749804778360806062311234832952499420860633194151570155196539385800162101449386768846146369030394701405873799070346715008359687331629943251829998008146368728022224345688587559450183520200025459380525638211172199908790077916272465268041483109046228538341801629982717785743016545121067682329236863482527275899835328544808636130210051934874948872489648116223899724179855454024840636050428133452305289099229323289247005940479262274366604360445423985401627610039310003468476562339171432557802451554576107009906784480953725689223379211881892109195614866637116315292495681910047515853841977044266701115239047421842073657174564447471691288031330452678031849304473257594987587596926377312345800127116260378620423592428387989278546154229377926262495757288136605381197913391570921301205360774918657503391931174536124622064020392572294885364877363860544997405090871494263317676116185613806327931166093436254455699533792232947807787114539002512028553842342666078905792403190394012385772580002018202232149313533712970237137140282115241894578640284257988895750112389416841199777419180271648185733339017552606640007347815638920297002461090051779095586497624558847426462074165990139538575335493586124736323910957107923915220967249801560670344716226180001518716175434238694747299226171644158016730580783977063949101661931051616313612275714959901103857598420001898583416474469589257071923325843495118287912985435636762768475603202238974603333722510914211700750203957440670789077622813003746945454578433132893898622569081100589912458474219634240503501487349728054317786843976194184392068933886759529234893277151909295647504042686706211073173464205984906328321198085912626226116993838602215401476464833161684491349748412548390703098566585301571417068953057405764658259270608363473927369600132235786283346659894483700253364019757585507890302200310761712991921729020613715509433856514480764718525542198796129539297113541167923207216524880032611030795411207290690530353511459878012136009955674662006425838291313909034511664725790310076709289716582039821336578022442676186087380455480110139381173059824882374892470558620262718291335450793047097629068331890193656756687557456684816074465096634469757248465417509922315887093149173421827653958728204828314999640312824834982734044401229233918287245431140867204143086741499932202300685877053726477206075818286753864249628853118794277589596677205088355539425056145682916675957459286830767633162311895529396480318782942123123343003293595304460921208965312612877651449500056044040908747570485504900817196522456908540563468681285264959804209867611359145666478589044662420569902584423421477493433404317070193959552386656525737844500929630589833078625616756258373521072585757262304163927611582244987159091352955998517176109839786529654402995276474882811174747960509839489548634562554421442618197940719463372235872295173842413056733620925021080347420515905332961113023340343254384941238905187431251449573202920443966330324640306845465074851501945916632044651897742086191746884058057685265616938917865431599102329987642319265344105630371742170950311591102621183625233291735500375155562979224125986102241750983513810880390685779567752636882157892283801666846133050626858891916512015720495751121833300961730452088412855073718520404251781441726010309249098468508742635369705951449005545945167741747146054538274559177717943680231417031818847227355900978114337264754715912543766220756564761795041083896928342790416292297734797011966940248683979673152995980872407967111638862329821787163177234248554317359462740009693210081557028314045273319391728147935068904719899593000676720044850465723596563207809519869800685825181757062455516746108294688551760521901367659731781898974646023934182808999413936272395977230454622640556699842148776248079363244874738875590341985537171977899325922801333407148009536368946195776350846375140011519794039839200801203291473099399264107702365350097585790775517834595906257429291751113864326952183576656799335835314879700670876904959567438119638863091165610388347096726526647717801221317617460219293714882292055544758139614775211171231078211003096850326921526039427405499646837104299088431698949164732006088164555493395616769770491483468581040900090875871243450759510916792150752611947132088300573855676421852114702415421206544988933709065182248343702428341980688882857416214119290363751027196745449246985085739104680658102819091128079309252037196458770674489789745767248028082576854451332047277856178969364664275161960500605350913204822228585899775149905091769045485780133734934951324665761539125752254622656787003126808766636137134141456177932681710547651973607022225060109618038014337453270883434433305892116313336847527446639635821337087072878965093416172514969771889999036452694210180387572518432553584585707343246919973057323340461016145310380774274621259471455204508319157574258998273089146338199635747416287240212813601950474936817168260890001968382283684736789491833939017542140921392043836071062772340444445517341779218617614386185064252417518892620652030616286201520471099804027776129366605092984662581389407449548653115599020427186279893685640657987960906691732710191703521009506032251339065358857005194669640833723051623009919387522059884045032360301790197014739302599483823299007703164377323839515530104734822122356929736360033812478408410944642714561853903616114238863800708767604953905702665079854696869107265795168375352883543760155748312296608883756611960608399547802298406781216692565178782722275842779014007317193248408155539395219962630639999352357899428900365220951062651521448017285574610207980365432411815976950597873392473065324921920146653134085924469426789776248051410193711119697040914217066667578434397782357448035217497210808177368399849604976449504131951697900240622126069556766588496764219610220499456533029400306589325825563591667635752336081457628359181745058590176059717729819306478337315982014266650713377396010452769661173229143538376846884844526534802248389440580052874395345683551055306875145661462834686848847976839229768005584240694161949813947991418673404981494174731151857380821542328084737894093377727332569972135315788202782892066800000446859230949673914558506538089772056085662624214489256887599182911315704337328783692147391118482170910609617293700860326991062525503161900617718579746009089938778139848590113501599022796356787529268046486898596020671266546736803449979711118515911445354232831797382954346109744912790858301583742925729634352678445559195996355059860996512303262772582302953955119555357711203096851675085643182454816271689018423975202133564424921018106671963408634249577061746703708631517322900750366210509116566447723076369485779920916638782589295151442710450911660443091830347169023530298920469205558594787041754238223304125157422726449484708144819320046295172760990718628236281523427502954930575781955701814197913738154635226765056392811557336819400303160450230959023076226833198840715402452139742003020784162050114496853622859395125918620776390813148115059756772577094264989894820867888443466762175461477021403681898809812826328363337998915736222105161612476798214825660663454111530117893706479620107145300690659068376034201670159237562670694612848129306237782602331660480256985163012741553292256619544275595285576290392788457608814823904081642263972642642876883783576552202311988924497356090867351340207270709745813271389341218041825703676625660919851789918075270615049209729516157927967151174870493591225304014966487517719079935152114640592150391324327809204211375787708544164516011674369780767789232098790025070827740657968275269742057925330263553731765073734676421775121515212366267369430737138623468296234528140511201218575581632177458087989589676423904104597603950672061180679048773885749532197697012911554538042163955166635561968673699392449246649196384919063418446184006496309688930496630929257122648128730813104493326572647244713971608494339661576664603836180911226360789045814642828120514633590535414802241653027210829532999739492168370781106109192029619742053052188840063514543743283310814026335279623752145280225202739900945834301246627008691163898215520682954421516341487338769076390600768967658494746963933897538909588181036516857226719521013835356740015785125970677175847293512858492886834337234657069373762100596856938605405137989368408500606056384913073494305579160279162810735813961302536102387312058659736377020272884670713574458692875941105160277791784399336136348872633357291064305167728703294817936426777995147762416337272399218259750364228683049988516365837987839609096312115244931420322618027225767108511806136925722935352884996744418807864184936197835935186030575881461151595199287145766038974455396564267425720095385991527654203533667530561974893721380715676733616724325389729074457140812519397164044995506809629267449630040333709114177102792714710250783428094545556122145803802545922681289515173003759224763514484803905715561283486396710281014619486724614301192103629027432867037615108619304953313294157435730688717893436473828471262162676131042399439849864897051517951574692157562395217014069588610648716710587080596643568721993899914692520073729097458831781483731143763007128461102255216701860401240595626787755597873624539927401971228203549656552904029068415434798609465792916566956954985262881823872026824059608186941674529975971552570717653906496197641684464664759369131385907490977946613202715986825651099063625724265915670701479255352398249279852761057946494645961727169484925557489051974488043670333501762248170917571153127551763955348274127977319860473055802322004901476036227712875600907790263525784470656526827853892543697282007695785138705344620342122936013153289938085201494463170800490694323259312770125437259415422282417173497617833112700101966162900486876544166957932882483848479738466517397337981385933884836694795208951445584963320852182866254494056511818956913689820752724901618018290532287160116502446602958380361509551242621451834549071776886399364228070998745958297743995768156906776480466447767676859650080683873293894009377071650031244986781142749189660032024800692087887289916936089486180279987466983291097493899104501669394084375558244707718103094200543984474415621740941282582552255213306145729958467570953453960392534540289537047494180664141924761956112403586495037350762211163045940211334653353891511754138735791821023316149514183230900390303741266965103768654451455850641514250510585999596189314092712728246696240897187249041024793932799309877562153537142350691140068401700990001360249285450848443374957423430709599828340740125943752209945389059829101385005200730381312951587607625426943671078225571476954974109686270307486788149578038338955486690705556839740986282354140798883863935565855132766741671694606201034143487074152144384104029639208033409677569916462694225636006191870839501352640620928784552907806447145995678145053340077312795455271172889763197995572772480962800317831395583188767562194159525838297468264024837453163259921509294247169961666121461733776455703684675514202664199656612749247336798164346954999269653755828310670563413184811136030731500103812711620138447200352657791152336455839509765864195559994387137100330097291555451525538964710845939351412526195788657520554935339308679812154693736083001179043473691803227041197627239406640253022614619432948353443047779823896780993419737377957024420537804819078192110447003578790547044907403665031156141971818922501230381193483293269542601451201457621852986603963971970024803176581751307648507969521708907232583071974225676218301915553287078103968688485685885357570012851901116241794911391389879670839132985606325640040033941418740373721404565382788097880761096275207277614467866420886119639649669378268210996829770245644477228234145471822679318396562555732970259540679533614576491593103555754344581385500743161836895712143834377653300769072044352453126685009901804090331961627958489512924920423302193320498880022334630853293028207488809952826017228120258953513580406103644763438554467974452080121901304727225494705038884223685079010983418227590886508322820026893386464288917422332984584672061442661979049401108273426667682044420554604562064019699044199352517073665265732735372001969780346041907867910228025319052204669202906688258160063452238977648439831270084291793953329796738124777746100645933222048591933588878148048689426329402575189348922056315625724853790646101598551886997579948695526654401348208698943322766914755771326634473825471017544215817596351270505951826878687932355422859880507792820321362295997064609314987531044842901031547345440164108159176709959919232547156704122908764102955551107052489572045880802826230758025286775330694650194176486225981305777155463666811845935388578928378714926276845936557533376532491591608358061460964716593993145405520309111587378065820413637193386143523306270497471358271510481653785816503871970356557768748177901739908128220217495994437054577869461290584094626490456642021634128773341599177726513320514257997330406464112556758289445135628168983077186862663510708033190865366522409988731627498775541595196751444409809213307279915421383640312324762798841417431464655115722568007665520277698033082029013051367333309711666299953569179761745249996766737076295940495908603835658056672807196415158699763123397289728518314267013664043649941071891186599169547427242886050974836483988859472233979811127862004040463750097993062602017822188106991438630430931635231552146468870796425769931127720005195086773524664794425537027836898271729702921682618708366008055210659210033423968183224780246441927840341442624172924815985199733627635068219600327949814750290522997756225254119704099137189519233894377712377909080927211800651802537255147766197222250099849254989973520436815054269244890692649682669819303329758162073441711784698456559393362377034769751892461342161563246231547148699951042037155591949997064080337645696580981260261055236981130570456419541731438877952514715439260089657179827802454761494254194585248426900235778986603290280674204841421054265335440388761376573712414896503315248763682940767434215549078183458600581500704923657299066550167028412091181136878030845739626965147600738859242153111102539795812996565301057592386653743180365432084786099809443523449958578293665521714725874948141037832347982854545076507741534123269822186884264442282813398413541431443673889043253969383875529060580588285101482764507187949326036369702702150815489005670003731917231938776191446955584066954398168984803653620857226322452649331390950376294634373817401349053334184113757967050718222388069607708276960374203803108374745218145052698103933534615255442012162477290811319289103628788704280408082863394892230352098584014923299777181762140407009678816082249834642232212318563863761978547830793554502702119014527705211542949835112985725168475749103757743241161934150677135460744648251468482810700152364664636896075914577962793920700739041848397219471726065198547023606644499333665149583882834516258924682215790370278875242234596991676616196183009195775127620836926152636539088564967588507653045155258749175384734244200634679890669823984506633384324525522536667404119056564954365793658385727887878083264592474749480934422002602639439790785397937891624209012377207216604500370459396534065358074005303238498194892938364803933681460318113314896862732132264699090731508812124241777517207617459211033369258732997703414163448954639762407167488879006435939861584378361186290248344416174358391730193255864882640233964648462640298554547425947647018713093076384762334675042914344641832120629172641643833334571041106127984974677446374312157384668115125965501361450309036156359613397222943232910199223156246336356999441955174797117438404127747138311419012948238549768166370189840009589380535632425348834220425891853879327915474239261912313427600242608039898268998614468645034575498909921771162797027478526162859379177260805317896339741160437914312917028564004850909816841090136412353469668184764678672422264905749546633645260453213444518587358581672331703876508354214351409317691162936488022523904178459581322592309816498859703869259298796980039061230164198136619903573881794714508776213606132015106230011060477618537877183199593096421797315212775843037471859486522239530362426617714881802077141526156843096351866177314687699032522867882960345565060859180362751433523683721650713612504482100996608501873359053862534149025526563492871552811146510281222336363454683650636771212826536145590145384044577415901020249536819635347804135202981005793311864657272603922997434116871950352152908436686683468384131640631234751195492542616680716818662477035700369512633240839672319389155412796178177852042586884926762906550416676268123256784744854431514193550651553668655463260925752824409585595531712308997028684415587875257189188975215485941057595990951734857406560377567557222824273497410428771635877587042296793432886914067880702774295404917026624186813101956677693720210972821856541816632017837349968925197595751960801308847940413249696239160212972324765624070436650494253953676698793737151630033884735164064058588892590464631718609384698755834849204514313531737239920002258850409415304790427423561804109686007886134181179427220130654467124965785663916305119082637327874161730349066213258042271345532863463637412330627110381309967540667348880814700860633479211898821348366719258177706119363962177619615646942144818774473727472326691999887381294671576019669372231154165820119254839366680606398897557657532314521585326610182724612853943761771196051056035506680829859592237543002364244739891127553285504474577825163063718678292312814442959624942642654067832385584916340798403683465382965104534524375856385311490901594460399867173327156161779531511552697782614113870263107963832637552474424599481839427840042573046630050262170587857748802582931642774129933744530680959552164831780916203825663640396246496100050845641701449740994950464029227934634698383712346584326584545021895366097871036151390679967628436261232972725043342160771007017053313753548111600945461777145424558138786473463954572933380241979605671457511210637248880118357437177369683728205646471765699551690079374751658295232936390504043426401780670939592883988397692725147754097121536666018424382073846051979423139176897684801509701700105849354649822528326128583956776304312393321860082076325107365079851811696183460014893930137356931218766609630724056036451283047793949307014688133409736235437887530514057856238558514397096613912950053278610684785748516174529986674549269505729630559018993049740448222207558328360754770184686363285712297720620703663820958575698443404207835642897244840593035393244220329824202274944998761634964139048110296759576526084342998229913173690354432185082507595299000190818633720399016169090125265004252531189798826362569139127254631453698364693963356024997617667887370127748978755184534807707081199338870071476751968505823490896951345385042767010240032502008691717165923358824391120377357790161278305190670654989669958344877872159379202836357758857233077197626402524072013425539125190870489318835583653831845274556671963891523756631396942613985185966996616963824428949967242991298082899653751486676839622391480854029169034633774982639645774330501466026247936179812433879871521678931582445364426300176292082897088806891056389034683817317609071726831043863328656842270967505671293351213460844254658454170320783312846537715883582085799126057322241859413030527224920831497960705813920788459698543624006139010237820296135683161309516968388611029410267147639783699653251142209993265767170640522775545353946314385962984386828327907011176195957172553150154986495966327901641787239497461525293062792695115906265567027383181191493076822111614248131482872296861393810141233396922878200864073941039599926568572213251276222400125169288038638533881935732222879463099294482944661381242989674770054243811010016414278134195546393908066624432330672247902799737588242433884972789803980999592603080071508724876830890768479311911519774784651926430094706912436729539086299298957466625699637693601243585577454422072908276385042844000908473734455258339958985324038274950035603374553376961173270177520016269888511080356301881371199890651846707790319120629249388004383347051828597566421667661106557847392867789190256378624235517636303223170358887515806022524701759019278111307136390058379489454511816637174545418719507348214988025583176902498045691918665835070988267139015134268099433877975461212023799068509588202832193298932085274851523862739709041365330610495306398828825239771394411307345056623135756364600953653377965187375630870790874061510867121957277633243306973543150322330369119713151304453110827240870123903883734660798439646536354057288669267471066618710919028328075871832746128525245120624407177622707916498604562532196105851144928522154586864598884897587281863730313092971274464685613771154868188773904590363803603641679916611478154321832269244342575494224932553055709445228585876652441685042622653375866558895682353071240803258238460045938707023918062856814474198839738414538122701689893507155991500330513726025997916898748799164143761019589074192640202707330621902637087182462802451311986474565575462919985280833617124844651568417489528390264809061673773626259924063267268376796279188923089076030242958068779773733154044638579254418445208757215939141731393505768649053423860995228338868583764720111848796950215947867625955925154631629383973959931239227800661904967737507762891311814882535804104370722479703867934064980963974780030534376494364816766486198353928920529058799134058113704314199070770620579765962308116897782756215767355581141817030825582121937531504201341281171679345225125820775965882742280267726004745726580064497428917829260475590739081863801284830677056505379361312794785822252638970670624746813522157970754341889903589127946475448728972806935575208628154728609802264307982541575503087556056526162742584341676339921893575797542038769110990038528242057110272892815099033642721235068530941042239944931069987779616421617911608677303318984871558979764377853156222365228035478044987546217883541081245458185366476445990442297053646908170935585216823041056290016863058212736587911014838470906809576089303272367158328200692472503669397935715576367319515739650605103330567899570738326685309746443950578462987536890609503309552334234076195551993191841149069904247532234396656019145916614118699879340627177593787386328640921586674113974784826528078398912230973471938495874246976138828291031317211897550790066234378538932284820444728213243047559211082681177731951302881507349956537883178417547389533388031053570678114831491423719953667522780579807185250663600152064238083445491756998444023725428576180796104902023110800580962756943142949828942176369621903135490156038082978680759805486990351747144170113979763897562494040392229401418163924098715154688030923645231835832360050308395082319458376038124683430154204063905727681735499797832747456656256284313727925907958151731641761959019131784173195855166067569715355433617452415230594992365091138415839897751261937229837013974374632811328428688519700888174842487097251697812030326412238340040705123521119390940052264285459455428916922408069291341135829160315290681522147791142361096222286874983012506278884749979179479783911058869942444541271467282160257803874517638326385367909318514995376340039010172744902689303725910881585710395475506088507501306530840435020744149655456006815590113832008438599781568833740670343089580957143343886144003091296163467333377959958355392625573752037622334224908419649898333285366136916824745419853813599645969814590846940691664779988011789648986140843373349856815387777196667542322839016630953445591048199517939666744705392602029532679881206950169944996412824039155961834430919376169100056483841024360930839778663857422639555175743885585647809270882030847665396445170885093636917876529775912799077809669148782908958863110732369423069696595483866422616265503286752814782227943918942187703978559546878231866514065583337838151207537577275126990679926147828510156792731646734240524861938331108374192025788040471123542585203054248084458823789751755172299760466863919093910173772711719135024944486582643089327116835222712505713960023226135806916374555109347366335474324954134026329405104077631569763040582771610033463752151526021903189322780044502652249106717496098040938791266423165940473227251819094776832946581584102827779666407040936932153355514473210141668519053027369377842920599342992807922577919288777053685403638712305047210244716448197482780801662153509337202304873950834008365268726254420756724494216619190356440596197194527276577277279072923941108650460900992101964070473670596314583731937528513379067243768717929124590746569732589155530592357352808219078007896924477703513742201495891807582077610875904642174270239902577741913865404864637802842150335347084273924786499083839657280307009091603787439565605466630364466146944124416940446448985627969565599398745788296766992640146260718371257051098665846436236285598830086525938542410330831602302598278563173613090523374747220122507552497408427244271100788616983438866483906425671382207415545976362017051657804708806670773114558518104814052548638628767443838275249912241610787270412443259338305387832831063999795661809028042776436200951697341598875848002806151498163262233932585712564092784559023276428201778759469675284743104055987263528292503189127834926294029695316604443214053425746045369626414745708361305982489734034948797249197688081244746217749810070572462296761775352448780956521878520371166441964400268433681869011752525531652965634890797453411448532881811503424652314894705270166813175503929540517936547565963959077249342494645669675424234924673866592215315976445190481092752181097631926093107242943657757604482730812563583500729428972599622000516103153993441797196498728109004451069421453038271343337196566342681575448183725527022447869876585713316010082987408261701445656498587814906805500344855819672152006791507651574199781179406923748053215996577722545463152013134065603209003682575060777918442120685281675561512891411420458496779478740622310650668917656883320056320313809925277206106568638639127075469664800634786908155532226368495844363809128665545855527082942183622119635315044860671869687452165443935524996117139156349513876617456385435053612575182330112606984529798649355169364421236795995401006044657124690739744632766724561503154175705344469128791746624265230841734366779157040171666748574889264900332651151791140253544746198411462833579027305170430262081341130374034665064240120804030681078781602947200276562991206244478226471660626335147935206463586193028572767590765068043397428294437068981463724712268609874909786213617891778451707550299745857094725389040864374621244299251462494609133029713052384556495224082781094399818675129587703627147646837728823920813308265223820884829066469905788846929152291612981483138244350061391514920917262277044700997691562217300342490055183069045613634080420637779373978428392744992563128755214822505529262821628145763313707624826716541807817174679241456747958258331420236193930116370953433782935903005828042611675176265333919409183792773912783014809633663854581425485519789258836462484084619004520281567341617598523413290058648022509363511325867007117720154884134171942409317213384397411566108754384655720484943469829520626661949868733541019557888596483586275118215775566935381102453080116189747918926156499392007540714780009290811296176340400393515700869637301505484485804043700293348882814365585047780151363861519584505593779035557109386905414375365877086005095746143329516958865101961767975829026641241365644095788731450960179614655904512835372443379028398130072520666633109797468698601530578034795354677830685346203866507801412647713972856278881052079118719308572287943481148795399804687098383198428403677542649017203861599130154041181574992194231030720206025662390563105317028752016414093629884768575016476684252047983555484112347135986649865478106668233562068723989381493554446681258638100923478551518710258213970598888231868938971262607347446833164851996786799729735989862635763174035868218635088373935158104344199485924216422562688625909827425050907098712139979520418831556361873342662305256651965112985939710554313424255116004008441928967400212661528177435974650343475781919254410129600653743828210198158092028531176086713183220918490809284062633436022890500193545606896209277800724970973934748667422275680124131542671623769418493681117201050610566460081949399525907114286751421973764481616124536803972103495604398026246714674573650519469264063481041343496249112967357521207305399641562166203842216289745811150424406868095243393405235431830869901955079316327863988646146404387067349481733658694697624172956174973621432692407490500235082693086499087039816877176803564595766417030492283196810027078850161532418129143438684214796590370462981719104127988519985663337881622739716426411409347717272460025684066311285000454628320346461618049728611771997059823307440570599195993946802633803792645180726653233588932218514712479929166767425988182607323195516311527781900749681284494598498144149378985466851909745869401973859441046571594040874121888005485547904088140329400989289220263792766643701691782340653821504910077420194333886804373507075189639787460392338123874996877172754524532299479760717634417740892995487010258420021820901617851997592103351526338175879169515507953114023568064592446998130949003466875497538382380953517238910263867497418424179588194370481255930392986634173048909566906270771320879179497002289006045944351213081926934631180117362160532765484588623851421195980555280640556602844772883189075285171306379194106067281567991298988598279799267046857801329888547960589749062904571065839515960632980724761233811635969792351834719945085331765962995690346648239074137043581225255808727079866836267438835209920010625839689203797850100165240942424089935435576082493582010528057238583047140272693526701480143466150976910160509115436552355112492690067943358729080662378315766954490439815300073798593164103492676121105703098939108326287963727374555243260359996188346628048623472896734320593973237987260630010183764684668974432277245106951439725443348205686315143081353902056447321691433333667712550984495965401897878904555816912529805112171456902024747016638836360674178482294738555331289186086557490001263608277048484618736543283231299605586649403215996396638002443472336054591297936048909028709895281760970273550899935234545416071551955918066153539347215619274498543669311734638335280108215507727445025924144143907439947635300554247303914958531499477009592188203018511086042880944312514057701418406336544398901563055284676547137197818059167755879793144893676909151810954932735470005910416329960913213144101505334588714808662455390139143358171115816160626507779128771197743723667863497527355949624805858279030868545852463392988221354676918569201042591106802122634126409217110050335290111149324045595832424597327320287124057652350363309443464072454860306427266380072813931429891177550157016257696761826420216161581813397930865627202329112740478354725503497689892588507688170045213757968669373960990357909960370752855712788142106200963978858006270729751435873198644774837227003316112763162271804855932373373289149501144527373001031386877730077359819452154281275329819437551341851152322017880399829494034786588662688623772928897967639892199110502376103024681446252130174203036902692206949464615638012458143412134046026292991363429070786462769118387694750088162823322918174258227916152568146161279297882096548841064444105627086266639126568402532278892971745975894804372777757725757047667155039988362796769967197547124176768239199871450307076022282773832013965048195043387979860816833115569356814283908292564442270666016300434465404251372855579801319366712929828466029807326022299538439368766169219082620403037563706969929193692014885199394883596413795045805589863532537438782908683698503831331707365364967196276394188630933511913342697475526658137856272049331970745816232317807152318928474910799055413981261972067333011322389019852842056268819861990455621218178819189481615724884602118274845622758983340077596465978024553968390269451676928815469973245081261198425934999126026091695750368466411211341996127196580660439722349933567868633609704468856704327707466528840214840680465761595707951903571763731269916245991303571269801878168894544797275240907343430657761928931592364197517346659222933211288755550058986641905697237319099972366587032192016015385838984172994056065750359697189810209375812225843406783909039336772443295775183833213272893856068181176428342606377034779191752729556560813022406022266552408770400051856051747988738304790011919214321522800951161437204935142588390284347755084709251798938816857277629900880112405796538476311956070519419105104926420731318022838574413492817338965102484484185197492601893260207257065530139580874205775122207032025685491628904299919730747045268613242555513721877381665471734359495009727746530957874044459916406010702542450126391214567317793643596400212203696767182547097341043485362253296291865742156486417657156606754051452382402550020588441135071472049249168373850784046385841443292536032551433505588076020475950677236729390351447378247592583708660609575128400935148391170557322787530611467567273118932666207599663326788868153644524714253461599466432307216315066653169116557009369980484679521978510270501772558788911358526784555126252909270221337775635177881074807991442070171073726284273645199667435637259786752827776623228615610753183342916909203889979656997289183613079146088918350374362322679266172310283453206412703435115739562167737317361717527423875103765991685591293570722314005679241054096008521513767860195469809933373724565491469789261758482754328173030109425916000485060083786350608004073462592298040553695355233702580970921228941483710425578480016988730696253456256169375162129972899476023542542611693429274708506905740290491726497725360892754149472302452286017520995367463690139633869913673343003611007253139236983992873654279280864540610847595029571960040448643188387251213166160230125466129154024015883289498369533808085372754558439558334700019928222569112986104453241476155991957730374809465991450910751626937293224474252468791697780347703814382750932243484682199502451654681929475588028366696056211738343951647674725159327941751064485296099084512793470542659925753384310368568471316733193703395953062810735409219119658154549993359238111630869719817102272604652803170438595676589786137805826369459899033707192905237970066604241491821898923400595436746576421225847349092668642260058011396904008252918064125848774488332222658069074936419219331455478595103701103590771205842140756204384345076589811234176855102416086995589613932601283587737505535413126968841940986680878414338272206034637686233236254338336547782420134098325205206056228401723576265019412764057241027181355484113350132531728069063036944167051682989522826030468237857745027217014464235002285248231501950635286108641193926580810564701177759887445242931715868910840903793421622885041971134624497544828394339148424061975299766998867840296978310107177345630544570439674029559217232270208455990205974290420626245242877134774212682237358573722442367569959306797579543983052418944056531228031755634265385712113736052211640473751891922978330043211608057406166038064704315613570935320972770059055995036434280443209967275670871240968948235019897970736620720440572373559160081973646853462260876133736676405818459042216281387348037261758462733060736224006719082671992499143826972916776265465474520541454705906675967084776602160796250123876349646212192282806300514935044298349105056271444137990658468680849158535509417249399046962810399755995870072084122642914609222182062426710076177431610418438920196261095936339215974583638629249770726395639508217313490633331077219019442234610346515279429348093272115535116670741980732598456832952028542291082924920193524819296529503923616324944287763151345350468610292819570071533695540441487008611917236950047344297017020395410733276883873015003447437244670563131196689003578191940839170283940718539004968374661717016869486523594746014340390045111356212215183273650138360181539673652189874698045652480744217573580423781149500330020695199362035253176776957182594773930280502696276860387192971290052408038484453391171022441903104781887695297444504194215166989085047000493675321265652156719616251134926738997466893207282801971351886920305674391789232594887369258416865022992622536718567175307119292653657872888876118278127652832204473892850905876545148509817947850889725451723905367690251007902248435717179081970425166069470481200445769076460598954194896706375371137612325807381789954300748898605874812579928535830691942362904394116191181848358620779677503711460893260488819182193383162198948682632644628854411871305807579634162423247298998314211430305248123564725363871660659501215570056312067935687407230733683399572134053475686201396316376633553811669018786707515681498692065253103739337034080711278422499631359601417421025611250384566552992890537354351704149184032575355369740803674020873236785160599567042219999102932398431880075792155948990085713200618265960003419794380971199263173373447104290544123155162574213352050925731049885138512863261061292639840316057127920974121465046806246997491667786407945801165046765676291392929339947916449277278432760712593743365060452480320919511656479798508874172819325801103328033944493751087272637232462436273684872267487948702750353474274506560212674016940448663449437277898465618183679428219368326650038982740578113601219713285281934135887206033980909454676395106668700052529546271851982085864410874323506081132961868333648187904442784309971209054089595303634023743795014626516677879902569327043051504222335157283728640358437642309221750382648807780683298081277025652464862347246836030035071243701943312224326546417903516540287112469672686495755764593513318972619525436122689088211825343959200748584848833424459355467731177545539907826694708427753969582814014856596172523751193334511436720192381765357428842787153715327226262432307039340001252302630727285173037553207642749932571558118825212533777768236438720943252730536662776017038936765145295179834467142829211123906310265410633919675164693393381637711460977784558032445370786399091142249358357204285310086403459106365591986697830808632158160905661193664221538297100874192802717600598002710470156087245677468222825308874303082451473215897537482395067651081241352008676331344901130570388707428513589350808867102811689109954483527245637292691505507938717655063631416950681492915422025377589371470958525437071234703773529647683893017079253851217258594754239309852404155652453739089636224656069730273545547543541063402930758350701568252212243505288922713372603543118832894516833741851595726035688431335768193318760402457275526380875531259079671612562557142423967315771435742464455763474120700578108073609921515504246389168144679836910815874529022044277806680651328481370922336517139865624417616711994612063333933108572813839242542131760115215943215424384192367934024615415706182340572188536047201441967084627605611072195032601062342315848797858840031372098682985717567676303100516091864118648891011639193685505768397870724419171576789003700844884579313733649308107295622993984973036316401584344840280311150461583276793262872815859332693439477586557749597622289500202298755338164529303410619150285937784385715627376178746426451169121325787613075089238179458731677143549781287213876113882122425022679846026984997149291770761629101843197975773704936908383101788753837356700685227444747772531981477943691447246415866899041062223464142398375657843863615143935834257856806886294647815309444268760099945169992676964544623426987571979633386621161257790114514628879467339544989209104032231415629011238092918810933777134441126618712620992234437693879020686821316158515831676195638115943084371209503672749656001934735809803763910637571888569469444729914806468244015460770302197187701082832154617381892331839680357175052912048336159506436065053933714623812175958247854053927907402748262376025876480273704542591475942197207645327123370641147088308358790891646774002905875952736227777022595942495764850949931474057613359378148504467660404524686764156948543768033138960339028282836451712788969830080091164933312207141732872250522035731107169334256578224212389994202444693285993482039861246813678113878618353168047275657601008129970972956543303773259871704673240556487000105220171264197701146570199158104259944032106605807333362193480665176061860534059653840794926754354761632241543322603453240572561040084731705371897063057767387540736589582226097052010209784284933565883644103480495789339655200321111526857912048992847346605978918575613679409511342697820544755712050249920295042288227095698945012860039334173402547531601524119360688943592328141987468371957585661338483286700518148051004400840146829653028783704155449150697628904326837933026710496118218991914268635131667066674174730624221703947557925016600025656821828774165153609534469169896760345579680968382295249918438562400755160497056095127124063525139465121897317644382240675630263779290412571937375897498230630207888823541665194085000445413185419912661294717990089718816209211980593900907922641236434013624951112644212662888834337709235444172445732642621580844573585261594973794080587533043032350888095002388403700737437735181197305821021581062489142454160780923033957050694842119887259096898475688817736647024918041628532962969786124649349400177341607800069358715759596625682967887002283684979891140894531817589583145583604450733212415515229834007379448723297507820140852255262380053848622080482857327895503859457988931533277305683800585907787087529522237158959802994615158540236801792528133740307443684984531747236780606164313951922876160135486897650202156715598777050214808099003753551815381924182686440532318065538616604692250327278532950055876507162621244631612562432170577946103272866565253386239860469279291876528662814369218623052961359682073306470730611738731789805820839162759309356422640194341319755832116599299333352736756685165537991063536526941908112468167712892647283244197416778126995724818796822205697676745117714983415113009880644562364457889612480957563719706320815157635572718837369032700020519908038375316523581757870278549427916971449813758648432717994981330432920447246397641650618142736199635718252502918476028080757402484779677612965162819213710851041626417471477056712825088030032625113634829594651443093945451164427598830070738297693827785822512311426105005170638323528345647317365883235936327801656541818198360526746193712606468907098173729943046541146759429998206654931948211543885070123926755026277396715481462773656045792254652950597968125444210534848703000004927312291671195015762867271584598295089209630573279014198589130247416747180076743469748758281464935665981572418453413738228897919527017968777116920016899192224743373156377450825021739227273446843474595164544737468172493051398872638913060624817596658308699629610825418486173735623972344465476249694301433196180903896859025406522131598985839170193811763050595754436157045688863008477977674418973661174227538225786457895499002843095734249361994111950417761590356296818274846105815620799546460655323535243469359232816798919936922183259949968768220734969945540716518211689034985908111361921640400712324608480721108804667903426178713845499660097791096107000083231614475191718882925327501378704965489802077518604687597459727407670384323053347725877062760769260217098825418209401523617601853471700393646327393462499248580825350179213183139238586491964696939378494845340464215556932714552957757393727033748775943342274022619674109036653995376938991016529594505965127130496970424297128635941172886751774329570950596546076253943608925394989605571297931918891193709896170709929181878574086507561213920272039448593087022388975284671682649395675911446886940205833137230138794868132657933088123012751531387332152709546893593534714416692925270394095469401709466765348094051327658931319347708477771794580077203597033840717806862687480841133613524942430206829591252034154899778761599905674617686334477540214137493899237332154894689413263932726400777722641127407562369567020468325004405538868049077691172299295884880237403841631981898224816291518996581277488632433767866661506447959465670554132452447531646283804022286112247260932404759407272135310552307616524101128644034022201943562919699823054680077078143398862139689700614114570708384623796065306542243286723751607856484038749020403446713917588444730671731105750326375055083492877924979874878711991607324919391957371464535907514043300842563441792030828218195755714854411068773705028424994692557524817658186727738276407556654588935170187778623296702760943368996088229612593528029306307504468121931563270262813651202889922144846634123616831787771819332664563506668099410548361105599951770080582721288303801582721045832713344456797364400053630580300290032484173747005365192219553761417344454693974944105121010403644039071015618693233722927111887701449888409014053545015077130437295897400921442446838106967409132132295866515295366367302808081259610637131674205035763668561942321489245022957312530011913364338895241417165552488484254896729978815665255094708104614175440126375314106539445216886537320663478049120928130102072435896160320335916270816295159989119169411053954972708636290523227184220941240764022210466121970897374910939482602549673087515707802153601745675992275825950896114962029205807214592300634784149338890599983331052762998547820348591438312434612854679810698400499159690417494641759760910500754662884724095591142803006559863998526403200334125791742057700148550697260905984988043611838138317149948621034452767596095054351100845279719261795860800283323640812281265384791613192096201459088846353598381600389648836500625643762895971133131865248408694936831043814831266112680393275516355809088606085562421891115620477112824202336963449494277479859827580715257161703292736531816838118021812302675382417276547544237762747187596342528791435111101410029733780474919471843570179203281719265089888061214101333776050308227555038782100825115467749792337133430874611818852355762851852902524432085069893403479537207726476759111241643107776300086991532976048815868477240213317749753431406612324842189613391763237224494071747693265210460477774283748712182394541576954508089429672112124136475668196779565228557064709317127547618605542870373200270061973794821903117677550609848501106360979328712544860665415844800944875901926040983209828858160537520402410289906918589953483266299450683987701518898300034544060924699871477253922392658842892423724743335183039971029773549962729436045457148901994243737368182890823488150181165730423931917815572983601426682959405471860690685830443006306256966855906071116244574426792906338398083217657245151764073269185829810070316404630662493797574963395118334004352941529267827594032936138442171065363122912663438786721562733739795776804385321004864819665543963387434118701938107569733664827567214128425837195358534235534799446481179039445405497476510073981656566079678914187343031171681237878062411062691565692691275659842932868800267031710673534259183167475103741221446402570009469820717839606409578069916803650137808760002732700452701830806247356312825329302375938611938024736626163994239121637608608024437556522350369994284305041218107853808178945740935474990286127753810378282325957450086870815709525623641294409605481945067729386581101789208708447992533757694233703686933300409847541812817084753698066256269005155718930090660524094393924966157674378911769533003374292014811438963057157227352486641903826000799388269377536828765213125411900356491733815304109702967497372984767077758857190265816660637770143275866219308587070839203422605749507166626204995477657587202479267419523278181320600291367919118421859187200344568839414028760271554689890140291668883503563613111061374409603278203610764408589579546027990056005993322560367250628636328209382997963334029964436962796762951845785969406027098162844754778172600175184409674295253058986992652848406517110604791633037284500355214323159462995714622533034813312997994327800162978188207092097111140398954496551104439061003943570044743306660555135146500545232559905613761210035461880479288240354274836894795918537737816040037669019880184081184384250165196166495571363730301404306931055768365743699999498809596118808734708023722379410255408918578924516389306825516844482735961177221907473961252595327841326819653710888930352199309701850455232445701993437424134869864309824088500646963260415413591116489658391680805576390708072830441208992445662392342312532521730093409784209881422794016917878138289538360490318586056312650415868788885504743603473238643911069996396510775417275079552174099276780737565019710579415590246400535144245334813319001923410846395948358790087858288289106699681237367530190768463566992820537053309918517952214661078806967610450477590124800030980092909235580707596444324773809993447535471184934328889468795682388581402819534993467931035097536483071760374208419348700175956118450031872154423051046928494870964593653090169573023956310892918875112590207475225076702103178726492312592773521497885778273662908640839847772135775684772629627448260607375106844066730656693121974346989912772996543307295460625956614620936728602877886228135381312367556005616141636127250965890560807411634844010403667090806661791886080875755279580498744709083298387642408314777210642237405363093634107026973374659328076735035640980496774848580402321341754219392513211187363117155946618974385060808681220490968585263956585913491353912690736157222532533294979076699959983171266599762824253176525788893261678487571123448310465963780975237292473556209038522098058878577296240813022533901166394901568624730061457665395887423096850370890489210372226433256723099768608327969943004070891353394763079504780751680068365543347917891881561732679855922751571670536033897354513579109105747306009370430803641964144744793269264852834303879076858697678866708147803222532479952099475848500293456721619583268791363505772973355376799456067862291451234045449190479948637767372329809926467479949782195022978467701432989570697437612592816676747824129439155239627422815639264820403803362064182282487377370263875388032462271177346118532385973077862424626678412026346525010633032151387825777369231281683934913728734511066453065628464646433433767744716560485381722131868572719738418769508428676972503718711606145565253272224641047734834391551904158632962254394542260443348825727869180973035006019837640786432168774408902691271811843459609901857645864626294047366606400846667403680280393255782480500350297245905582377770918625307496486113580488937647426242892516240592384313859965965286241529664429121866861329848764945372880214735643636308554146425469006437170655914692074968119552327889519939717223094967920948435454224458606637029663109532514244862303132747962715372493674536961763125822016963772536934708028491721445419494858128521564387627401302818475404455737476463953528502501248226649860170568295357245950119468679446275779238019780921267996796406160025944524595381830243810165782126639470349469707080534282853097154854561531190357643565458967393835143658147176792771072646188431384648406645857933392299691150194544403988470008229248656322556063530477235393396177663639226720158287695661620774856926889947721362154221211882142789132247775782929592717206830521295869313752341403330224581740547467749744414714281091118644547447071783111263730466161040171362243506989126237934774830422654646089906002327670336217852189498378221753221642510657355733607123773385654445758111785725487184716738281842303898517498723830267837459440083347021989838924834323827267837740520435205394994593645245748323523187398547041613383582537859943966462087311139152297807019571879849564656558195737292791471784653435972173154470927136673243702909648585755718574443880306218936778249770980963920351436187977366154327102745917345857268558400526297871186755420980110291819458437107780959295189534411437979688960884651401832811072437983248502179005794361167468226010598353673327260424630552344691656633207436003946870564230782162774285983684808311765015522431983041184505066418203669993563130766359283965279810896012297388348542962839689643160094515984183142296107807446390339537057546246649387872643271056940417011661145838923947091378809824726771323140742702681375875027760989633881298766223594288338816353650160125604150162859230693696947012113362359282801548466485876739660192605533274596593883847448855693367165432343255854938851304395497787657099545694192033936748725763938637513081649550383420904592010648444975123173507061130265227651254939639942500527834372292904771507620589360045087038779017439925208954613102242586180715748367555041533360980374642557099309996194798522243786038266133821983247823388629770398821033558164229572745933835113631584942253965980740386756877160931132791497920906180854665219991402977963356702344566148788455579382888706547805389548685249432513922253032350833383220698693041442978653189763666677775945846551358205108120653176244736166094015308992228483244964695485842418378238609289667382482650719282818797755926653333658770980610927387264864290890856418831980625257407763690287418178457799646022503111470121045211480408395157177201870361113675300313024260663373754260297889358057782763840602003160173386485426488803082167590922013599505050130922785085953916678478882780602157913134810629061912437515717752789972140039981898920524943622950163807525726880813493112815673385671747071124552498895298807883103624231163463678953009996241283702436622937341107296265532927211157076236832490664070857017631955218875202833636192401844325522554853340706070841285142690494760174273207395523404220327870114351366037846019348009687503294988570702037309059120570809609023873293681135643385510637721118198761800692800638650799307520351480568507007124994569221708870131903068447891017796285756016627325522134042368082503777636782815391748995631824004891204157393550712465497293504380987128510984261944461650760735471392126726285316162606416835600785406504127348001254948835176302017440618045105211933990143597088554951741787268557144614946805405154873709718274735698261646378351107690199298086593355461710688172618589408234480986467952654646221740307476869145433384853875351321911801999088774959587022348066327481954830000321169435825109998732651409290401888956829840580943269105940161998813778088148552903717938980525682030669008095966447274974086155269260411327905198240951123673919447594342614075672462201043689453387311766182661136880590081971239043463579649087999971372083670704164595459132498153386093936033524445940434466161216158657016737401763060093259630988130548123207707891583685444391422012009235431002338325903227319212865287389836813085686554694738267989383937938141390726969846147172111184464394314456869159072662619891663186578480665664242951731563773583283332303303233362631769992050709701794376685831737909705885126477405362007682661392081461084091362250749926524087637681784863925982145612220466415908069223940716259823338871812836692238810680387801800804128430798271352224495292226564536887082988013672979618105823238506474521838868847890955076785380349207992740996829209023184528789434658148946500518026679197457090949351800426738569418054031312322610214083159666044908036965366172658363247809234940786388713472468373902703686756061569019674397655589034048950888217038739223238048388325322072401737743610082816837093587629448753321027327605803610263254700041105525299311626972375813560067012568566694703443224911580871076302797788268152242415649406283316588122709988374593516960315329247868080078952396693999502431067693253001534076489586330259344340779590214295583307965071721608022802344739946713981770099192985858451005071582601891717228036916847703830871773219805142830257154658911148156789802445972103226754385051012623190548036660949302613590598168917065594663057165656817150580982125295040805384494383196081962818666711102643609425534663141712489675062726449150795191631352579439437108353763257965036669558137137601125402248944760699185658393676317483668632253953832398986749554613211554273409771571192639776619048847992488825766084358408685254412385742509557918393834283751365719232248426142885080379512061168854308227894491177886016881486472044041429132662362868728369143906322301308265327555458367085239440957542570790273228690192910964593201258291150482115592824611755956622353607404038776408275426158652900690972261745464901232449533140733015222083200500999219129032234131377143001375116295506533500653425993012401351776555631764757800922103338509478176152636049061501362180690638595050898276738334492997611110449775122717346748106551691094073613055777995366137621476889223481171172774470982630549505518871560755722465519507462663059415335686561565011902258846604833758116069046737128900955559273775591555298904933582941199947016355728405985923430710327811146126768320622465858638889860097923834502760308211846846324476392988046018737871392678322303890899259054939743834842890155501473222506300957564139366722877387814910974699821690045343273364307788630007781710741781012542493868317582208373187994394628791367349358019381862111616714642397791872610133538535365037002793403313236239266141058194376876666198302591712087057380315539350492675732386200877258015002307600927775261669169649284567058139488945218293690517433793307876599598211738257185765557747268805445548543500550692646919706989055026117451958968763788611662269971120008191342920326623191628289326555220160225853234171859696069729246785080126767714029563774021373009129234122427250058530721670951986307410851344434148408983591353807521044610873280779552592220002846001187063996579638524647538381107436884448087872037117414184008500856998112885065627124261480101136495847514841070246605867224427588124531976962821748582576699483023182324724682429531164156963531267817472113657980271990846207537720276462629984249048477767936747519354128724414846322454772672977789209220096403614105679620766922977090517698402001844174341104582723727845874126042174340748717565275681433916569985823522111874279159927881799849851219359952579274441563219436617025300621401560945243158955427302140701677966612376280818120860917592991300213145558294612514567105593384436246326619531900495543361306010381649332307562066165214548670405534446136547423966019090719559584607064085308064889020111450399891965318847566198497704612064959811453401283546583688208305262988197684565175238982605073788593999257317008571771239990749292015738567080941627391362524623565419200334577885187679053617978204978739545962719792983156528700794422197216864506227117019080429547442906381061798546682122215914192365282641538590245951714561652039370816638606363996912388185448822678632054216001624790681033355684939018110028002055620949542883773305680094209471918046109213282956658887820434178990762174689964623933440188677627357861202931104381404861560985684618653034210923460048367170299484637039030202201650167608845931881235091502654490030935853424103704314051680322565781765096183542250119949035893673323011988320130096949937835687334137109159956705971144211401494497113624052281011183153215415031872558161293315632467196257668492248119308154147599894544113856687310721353832412336455318128503725645323629707975453632793597345269130805855931754312103530028474267794503843797595762279149479184007215374614166184281603085827773902781295944906999575550041206295447634711753456269410671143458712267793610167395916439559526046169660961194433859230639036158505644838310813283999740689366600556368907099667187308000335054914583142270173872972412587439219761097779692888928057662981261602012265235582132663037264411606224727425843081804908558410383872932953614393890436338194567227867190579615188418898659926776666749795813307852343172757416612671422814746295242646841352448816456413511599473873878684238571058970480264493185598886871390284606669723879855557099206574432319765254465512546718933536202789615163223694440981979550202709080290999046181305038115999615725516078767006016545474417708012333746878812490331554536656077831793592980746287829512662290397040008496449582059639411019511011624344014947127983621694752044814492946808521678436862243216528056512518777323757245581111536038484421169220639904192732451454887115579481887072378277501451467833197221811172759603749163509578946915505690042509311517270121345603006119649236668943719921954943868742095435486640374590413261175391397205354717614250351609051318155622899534172406590749117179683995964979871347468854768110598528820720485566641626481669672816382389911190429389076229258958226636716717594584825696100875428018837291151773445732800526973788489659563518695298145105502436729505630682395723936832772035487721096549448752028997634062093966159242300623691442208728916392326853129702504300433263591185216050600189436153001116047583655026711013290247739978340969986080153988429629148502858552872890765488845194535021608551697999391432241648812162454358303354845382985149360409018579509956965257387976558987842493520236266761398642525813275892523371065285766759776321648278942258904002286960715974726237214191027236638544784868185100049276185716260159994494952031711585249621542701455114209326273924064762980428992031557205304571835217845471552989714713372587590830472545821944131600930958135657132588317965412514179369262863116484602686888125326576072319072246476357071320077422690337009897523688865285582539098801303678521296911627532557768252432792795645509676535397792257671311843056889684407241187937480134917509626832552818629271559719408761827315535163551130917095131005001536498965051579069413422426832942468731301220834383394467422284747838883367016247885639053547366468979141128329021432160263795743669039740690191545229471575550092589655758329708713907054947010213547124822549172051172573284703311256250777680478768302928937043046141921664779084287929914065990504082241224451388577635216319136413609714606276072185046653907563141929075315912292644137071140816141844830411805091717141345540556002856405280261436435978091093207837933126093127725774475974136210106428915045577415777539012838252172330969327808302036680220537851610429998385214625379520533335417244331708950152172726480359831891901073081723971323739697194873633439074127073530593482653986628082910927671239900864630125656772400986977970940315593653515942947479170317503259182695892944852154498447003493811578262043457485694120979702039643984561666152703355996091459081109661608632883445790088464959335442586215438284151303904892782376600232906335127836443388237879657423682616871148829156414321463784771919750795197251041523541403519722263458904355980197230492508800713902458668185338479773210919795480900923064811776232996928905284488239969976489180321549991763056663857016040205472670029065787171244271825070745871382661647070449842546877694343362406768361141243603197855548908878240132300385359630046185166727637291786636066848213778205963062812862168236450097756431105468436026660482894597028524444258310154829424891432465303179576072274293122151092649057880165739697606892799813534943709880588169867939578503955153911974890293562181191276432290698035969606479998640216726202360406194735337926451490370337299680315170997931416971190605725657410839356070754897745184212178838042582288726980077777708732774237948633749490019314788650759219011717212494288726226012504841414049791751635367246302704252978235426909198692097940373799819224678192993301070998091788461725846335715636484393301430925705851761077569634041648737728433007947411161066017401683897499038166799400534060019224505658609279922132900788983413108148147970084131289482620200513698520829895364065051491401522577077471470574022193383762404046420965758596636988286656030494705629153621480312386911810838512999767924619426250205473108169806277667006158875171571525639060771778117590602447481466410118169560540238832610451559592827124342074046511764338852301112275794598161847010324951618114089328870726802297998946068860985176272659286669546528880548053015476296745337479148079604677598784239648640235764076907866124702904351835385693600075779787760765104776173397695484815911148207145818794878393404763923832776948517432661335021560590500919136941270256776601319237023415306516266031060978049658030459611690155515197386839745748306854583948418360887992753335304253407425388180350502582513403620241562971772215419001321606911613089849421766401426993828574573469424053212400074048818890228678352537869275808635003897899085117143584067034810044621641830586629100308702920744336528587820244580526585201002112446987768863709372415075823690058549241916569098162768245693071339560338439197860168643581360583616257666374012444534773628562617264657422676021611992933869052803599371641288299613663519161034180455202447472240824499522021597889910775759020919740452176841656166626826883170565117875100421977759858841532186376715470292496830052485718332249282847432061632536105523176985420574228416385433724656658356179727058666354530383482551191315283590919746284966556529337760995955569027605398895446947147094361068228672044112151196773789866999327622202555512667686267657718806008344469963485887637092488040290792109216413313992909656475033272296948330917496195459266809578375010640856130202288588311678374152966578460342494281467514769502814845526859048652914373045998648872077757176563728362682569000600226538319009599718728655847930308076037444836832115947486713115753317986124561865801089770694490470792441558638105933911463163001143016507242951689920085892502847094288478543189407303632586481411788698349243686717788259245555703329179025437696793698451105362063460790158754246256601762781967275876780451593616241211408645772942900812443347044902982946030773474718304623023085254632289194406959467087839411008333153358638458670262578029239597405396345361883851097505411876599142771072716066374765844490506518067204637972511372257258016998069466337556921399031971400733191296636884243081503273367649011098410731983083365890267738037683882789647962867708809248389885752326845853462806168749123492977788456921703766004192573522048961551697586032041339647863304437570219238675550347964566446873883034655109122802980986001148067222014337747379992292431393104741742250021400318289200080397402225690014760716509113268911867799379448097693296753153315295467709491784703228225567323142466251532730636756944282019257227334446459816789161738840811624384322020703100781108738520374997209851865425100644820983053747319039681791882098544092732074272537800322976956874453212203145197179003457582719992153514838779969825747034476628193800739636781335790501717924792306741155731248324008495394952181694663128367513131039782923871578408932487311886420546353109803831571660480772957059081719779649690929173410681870798705849021433168174875505703438400736549956237319578166311167491199267461572410219437195336720244585940224817151873337493058311544138708936079528515489290474221745525302817502650516751305880814561556671356447608652814599163013920897193556781136763562614114629941944805174036673395068515573460321965759609464599124662395523426651578453075401781492929060837374947120045655522037883456332545882762269504402729091774588211821451195239641931368609488433557282406195419658826436980100328102080519285324472370700311854626531209858453972402359140817322929570113706542198108360093308019934109629076072615908527431940628265004153629416364670223196051030516180962285257176385199942988668116096831417972778324923172591388040814018320552341731924163832327213421503553423429448114744392706310929899691423745445376383478145927240720717782770840732670616343801248799638148677703711558322390180121126268489726321238916213778062687415649130899961148857475156569994920858644630489187302089920449599104257055739059453104516459359865433900502556921184828025275639641728162416808878088022291670984883097958504041376056549835807661374202313087896576423617366125130163311454548898261680925879134389333652987015885311300221144319846325383011964033515942319011403640222813345241124692523907075538642889633231333028967081670165642259532217015847549425773878563614008225535332299178702805844916081133292289809824981755019278767994967400598345372493455348039804008132984834944047029510640138736459829584360901989375977203193494092049293663194636945671807514039777112549054732131510883050862581790682535732246512006145423770477207982898247195743122413340740692309221482023495509965853963187062345830416617207301264293863528158548801632245004629668000074852649533449437407180840223682116985675046749639574039824738199959317137207059635037876003279645532457959040076287335639539262530371101835539800700923136220343977471061221376023187374651022021864262133678180808880516364703545916145288894255966702398683824658316080464882345836178291320121926735266664606794600591310371646829065833925042315019080070276120420491165057499375164795009465751894889402755403517079940664004593117060710093278861865136009868559534745152964116578734859019749652351840031031911279778448156296665050287732683411812648680836362519120032227378779415005931567700739137377890555432445455924572197518668947382024200827837109196271806504810537199593659648635287681116821668289016735465267044810195390934657474320495829616754879657229610901238283736451254474789915241788359280227640047243208640396468696519880008871752914851395759177803970511830750989370070479916455798976956059791604702904820858419360456482450020613834210556466815802763946144440949277416636058780540798788102769332865653047749094698060056198616525778732086668647100252817677140359261283827332874878698913659642385655130335468981675538638324797151661149344308536383193410273455200471536680676013507986356712809595591740542361673714427325277409857628622450718215995473742236892150531359642667814885909719741874183450489604010998228313893334134693384240797814796851316176382860339051634918273044833747954877576543615901641467833970554969750309957494337863414324757559884708173533090651502491396603859835638592057977867572450053123584658023895443924341643558562545244624772159610122541035275410754233155581484575740645287209144429257880294840448453410210909177866204241581057827863177315190340151576128831724936968077476100539472717332485625022453847643753759509800957291621223438329610211211073774486100025244565396143878747197179614054412510883092083165441953271876056637305351934136470926618395601185649818394167787826001955820759125456010180336809875161355914737737466044940528246720506249969101303661072553301176736124889406906778254159457833331484177652824477571552075644342774558258506641293009393974267862945777414791334354443002523885411306666785074100208426587767418172596789046683409587194513285390778128744723058506137236080232983911824565246147269114017319114776278092182069256655545010558580109227396299143990976585123075136053763825296622937201847531086150030541890706452862816636425067606174900864039248800145044208733232839264192480927258234543797935779884002402510299473189419771195392979616003034627975837737754575325116492345262392862304584862062755081043589083307473336567734744663124157231557206157639173066953803243602664428223087001816664078530173394919988196027257714853694140880536794518246784272916815343664748234149570301150433615453365901971445628744196411811284080609416377860879315292672963984522947859320871807103964294726401693910986587759315481260107883985729573209033941671762633693426085804977799196998936957435806799089013570448523929417932287807573476317765318251696824729776546736530363040000811494479841578296342373842140546719129852882829384540443502042635164173213808900592439197180925607024258063453077930141679011150910011945714705956164740838632719307910367142419870511665211750268129922145454981271987762869255767080609877176539690528038126718478201579978998736040525243059989877719585426168455245345464260874351239981283939604201128235456822997337737348219237527066717069617867651222031072827426474552120654581604113280776655005674680292572142567669272381032311501171477389788037590658432410502092471024156309916192539403986020894186131374928428534357911181056204342307261015135152097900852714528811866545622049828376790654987879248021088141094984276301849397875556172130192936518160731383675135252146760467724602732372949568085320549595886328111897564294976531339103713357831912918121649348934640227265952040590357706929021098970053378995030270818845253106345737317990627966468820940647508662072829698288920862920045224414108310645901629351117180839356974387008034594344583812258031302957608196628064663567798733396212667585104456568375221216395430632681959721245688862328335145658297101747209293986523701432087931750535697788092597575925091388524774015326071833316574775183290101906201383553184157214901146752659833851445854002688565029601215820476122442957069945503162647243049567128897098916889949728042956372015429092118525026981211220235360456011364463180252620929749622289258116281671240619566555952924858386416132453724799826340303268948070790082398972643469582183243163240673822090966357691712392469980317555708165292288321982305223560110657125917321709414393985940672351701584714610375718293452362810076034094450604586210624271060692943509321054010456301646054329746779502679130198162738529661592329045612559956670608153841321235695281560520355347715057711509703335963152423119730511536629506892256857400080921063698811386326599795641808330859846645908393606225322072063089459292414488279992504170053277593426725130096427665248652377786253889966060362928290362022580085924433239992412097113115840060903515446396027262655665746225091131313270371660814810484813646178371076024171771265887141767828545219027905484828798167387327644926255940100085944510012404632998237360996827448486733428713207802099371736031261290119672690450210810665342440975226843075093437535363941910129329514228047606683687867134534395839731823809227158150777651384772774576129190674709248461496691557323580783153626558799171603944845652227300335100719118901298825454918910754134321276976503217977703762578644757758751255793767197128919125499828230457088694757329872034788566863637698784375208514907507929720584046834102378997891314190051294929480515617148783031916427014376634000627771092313759945499860674807277247433424557318267561806190935027926868152545610652518861587832036727213973536132109923682771026990406877972240101880791674570972597521303419199534406209739947059108259962680801559966577736373910326523950396535917033609022161925670902823184231614671824164621190990442337504571298830960908880446185294725313372949599370355185034466013485883182208305371143345190049180458652958317279622472851698503506599772329894218222604655035793471114155236965402625224223951103844160691546990643021157126869452190947757640084976553438839238009749283024075533709039683297364092154030128529967339047961304166005487781047306835227287061132633439173220479243252892506377453352565617864898595698642433745403256410219384557478374154117166273701041007950482527550129636591172252436579410127747088088453819439174410108806688279545216299764880894213520711396444966763132598034957042688040898710962404018688336141660919866015333563830867850183724430598558282150789152652497099352865206818222639427530832337168716876759765986856278695459356960914424874551349723809746586518858290398205542694079595803240527682961878387545794293803520724669575030920731855575026060775031871687618733018964167840969198117515975868560931815732496548655607132737340407677498070284033710747379169611704056948913264822263677660170024685073424027983998548316425387171769980500924514515975018630585046858595859081009374867240308989013588189797558448261559537184134872828299695390515579044659224536180987124085501565363612318346568771831575222323452764482408241136382530437765771486071662318571410625442178186434613174070343852856799624749601935148918541784888849167532891623357956449030102857151853856764899311974357394584467757452838490584054642185190440858997311706942411137538739544175787158621926812233104886284373983111838928522701392424865217137857116472933239032591389488731177538445613988552416728909140142603037292087126998319578435589121758620755216254384001343572961904943389677901447395867541845953442646426949016712864437175843175224750183188158960018618765393361432928759448831309091386590455698362617505869391433944168241303465707292304969750245153906081888686400769245901912983561914453219638012408590901406002204456807804181746725590781864195617825724793591702032162455030027609301203014939502435116524359620494204135074097961564543711322697014435120146547997832034422506386401997102198945881314998359070055263954646316752690418557070179481231630390768808954585902921371719571560117709411928177230457281436301579592802277161383596060712668111832359110219365321344395513875493358980378523803124136674608813662139579613675569440294790928430868034400562596918980783731280149794245943775311005866812009679708113278621237715113220157528663119106584631389187053473131222428574655551807892686848029968918029571034455705651898578544870820364825047694370060203512962501740655559339244029818517193644003482728707189790544441391605187059507047556512092282965504289912544937643108071660310706601650130635851720919138079096283026971858628259299350623317152295585305773910579579260969337741074749135943279295470953151562024150944880065299788109242833390632450511552168293980415968287269173402557791762504340460825742715243680276187267770887772567451572246142850861324648834083681534092220173448763417355159905240540710784148851484020652005797678464380399524315492582961011985028268092940685439338079387653319809729009990464142187842560163081138488727532867931566398352448532337575054356206543330124332992292366222391498290700527045789000852328364283646166122452365619387413265097668145562249758285680857736461014615331476122607146669931363777141787582445482551640943637722419364916914406110209632685265144362552377187482603160304124939507766906052136352538776518216373116621738750729549382544612763862094547873133729896419852295315265849932943497567827053270652191891750927448170913528842769221543410000069049878817801868794623618239655372295638447094338197522205612889198383825490430197225449026678072773300601951178196369219174985636112983566751484489643421551925918669986592640166450794895918611826394581062360433529991837712262444712514181235391609109588293273079305079890129059957802236584078906948070353594765305839948961270102669882559390931731302828749296991759604946414677531203663180044210645436847755440179454002358869897418649422765697955162737834612464142845167854740219207617406481235996816122962688624789628618761682519578324135210795406544889110365311371789517861853915298383348976399159209253178191871545452783138431075402676985990625102556450391204374621231101486591478997004741071967266086409616149921732919434005683849938607135300133151850155879349446554093468058856920986497575284333528937969984807587215470135999529215158192576916355067441161819911317993926263503818305402557818157474481936480981382116693257103408290634686042068737026114211322213575994928223577220408533911810098505911848907680721130295553596080095345994223381269642295562496881291492854347961304291820103994303359021793012895667563901671613946854489078811047300992784652860939355021082650119180319484803879586220001378515589334526257867194753000911932329047771150457303881545325889334995081306216363189363874097452537813899272588479506836078346154979619020503532214453902448635693627240992171735437340228250938055517134056979955803221751939747989883397642483867582148297069715080551315690825035306917682005395391974269577569717939738242922602681197374763357778160606920963436406588261605541263589034668891343464600324865670073150121131895001071663857100996543164079475052510442404538782218843659369658880016470674396278992927665590140254033408879467300519337522547284576889492272921496174400932948291697626717375174276333764556793100502678162243325295754713583951934974290987015472710490472220918822214204699682099089234994880661313102643118235277338553041923575007623594481476389405242148476662995146291436352879573780369473318482172365795800960921308050735829086686634956930912625738699802660621470780358755905390777640768512969451184287476463178282869127385718692820656985447506727610123190406930597397765779762405954830055336533125551511349827532528488760154725385770880358492075769852308848863216817434166693922686738441235584581419063191845089649615198359372958098001977245356857459424366303937639544789565154171228388841897354101832273262741888560348384213560137757041041632142575480853827145415627005555612377969508593327952788804040987289062372280372481882343064031230377127817620441593525976487669276265905478448197576008588848706270428052289571701725235598995198259815589101143878354894086226100085714777859973236501249627816835160889502309838680579519440877396270610517653811982880051196351500923791493831802894770361658480962256666723447563658785389647782201252076015017861448776282449288811727974943336564011284607769982203293771723897937478639737622268426627596895816733887497306502070613850179513768052455659007433861966456351146283180261373253777461197424804163131528265372069027697385311171666121942410525203063419558166778843448141469466756012076428782686036960607304283479680061057024272851291154250168972694882397609888400275967847804259698465469675181902901021777894055299812738124534739477018553197649416165790557474902997363064712050914662472762200437075719950143137297814301851326619471071846317739264003737730742425650147533543617336811725240214893391722641455880780658272336395081826806907631735734268477545052975921294842039808689162439351192310341266429344508204295636050609516631002328290986053430530199690828701712456067397164274646740601603525054112043008516840424391406069280738217994707302226009489189860337376560330272305568372525770377089101954974650255324077090204722694295495241097331327975158767343771927699413211434998129292327651519300454345424170050629322965805639022636235363825077985968546819408571594091505042015222925105331057218210267699312133443798722782468708111727842093367464658365529754240854134530808009298669195945715653540718519014072918335725285842369354385103298264843560913186973383382539116123407322737557223414776104331175569232572804438439137812454240765333017261066282645321137021554776963033260188401776075219558348968572055280510249921576004952215116332960266173828371132842509618031800170971007070659476611060689187542843826891936033414658024981105572283355141215551763831353899045236017104270036996574235958318889808775621621107171694828933720779505062400981247341723680532637368156366438415609982167592788401191145733898381040883869807434126835427171355583798481665812602346610563730442844923948548585750315808461460759790023751680994773529834718105311740417708991465741093730891733652068878858187904583409368620979067256783413110366916805469739445561293689049179742374522528702411867694164911694286870207673788045372857516209815662244322034615095669523438708085717468262796367368210359949353015350696719280970215559142875170144246165551515100312169135968132175149373091197888452879571444471716110307971744201334079299768304919376280390372573354194945462756253954212661090157371652775795505973434126365162827038748623533243362005434798946360049288460484209832305607545722720983756046120080111141398948704356406097312073573201418198994683028621154436846571714955169853393550320319589881674611002243615693325092419570356455776146066895683076791165019161257531151913765737658732747385295206098214180819683022593518717292566882263384387796292842761783431795279167950635683559577271969609926136019812555088371435123444160742498057591070620287083889760829795585778075871306241599705332100459757884170808043252205134180335611755335853570112107228879843726661847658471479749541693855784920479225673455838232259852421260811305301236296913228815261223240860436904845670253255446245640982810513127041831919114251993460591486756171437908805212357665915210111974738087081410868478892616373993089189253579303757541405130158333576187011631568505917941984630197925702019422607445630830589546863911931039415517440728209055445428685953263648854407779470535354955516143570406193906890495457963592151444028841023435438914848325254676463473049109402692659634750134577041107483183280465968262575848704696783638402031255083555882264245157593965129812221152497132230851199725272555322959201496365155343043601439618050320186661731699076915276665482198686018829423383462917430756011092734182174737938481530512927882545325942619671578152635054017018820008357701468158870893379066245648163414981048356251867932741476070373574896293809058328184493198796457100978172946543695239497421411426295321449264626143807282160522030364424241280856282319100026900529856644952019351169251792069197957885756488223376626357048350196940519140552048387011823669413001206671764363233069205138905591280935919875971228081555080970631363056804480470484063234761692358333394390453982881494693950007639061436487942255103799173711870639289498656253614167178384196833243541000201549440406065838004009430592738411334928022279403979953174752792729154997812545607680518199108145934875901681464295216543739101370517218983832777237234216655548493213065084062292423253772411623417213514269536412384620154849069847956872918142567265146685472339655118441161148256634363980772042287346414522705888941573943969581598979254522974605749047343302134471068136950560055274796568610703309859510106740465050497786805383731965360054775658431727303591852850976290976109587230658549233945202525083722049601677812920570752223350390625168853076613970180860340896810488845238923560035268001265542825389266526877608975093008399578968879855127743539169568221979419099445650115882143546755209628648122547831606150302555914679057596485884733339644874862656165761524277796693555134713862598216467091052124483491643580097439915543095365794457498160008812755127739758431264189445825337282865433696208501684180869795523631068968902929835488095707419123534029455656620882456472079566577147049023571819942312931222657051979521515382317262076099173833466465936169375808452382036783316198859826372629782918262380708652660497460477151208620705636878561232957450473606218042440514922535705051570583418613660848848525855760017826973770915076213449231112856233995178686037491597405664130809341078091322889095335786083845584364306665872347050206223744619194480169146500330323366853810783174302845794371235873763994211416297918923784881979078798560541292738610017607873737402292760377695387355301163736524557133137669835938080416844464520998208315656161796870012508385346677769563658751087264500402976208036525773492818868814425075847573120173074226177700773792859453048097936807636570020123274793328414871111117192326101901460673232487317300699149061736845147645653187246099815186962906872544440292277740193031634720397119356693760527351067301004659857833304225999811103794107255571284798195606264037828146590817228759600097596073205106218345970735891099413028975776810028196157280295081483984328052055409930174645188022136076085779671479999527966517188990937196475917679642667504463251549415118210073479692820126044204991768442106857689035012744341751753101773039120931641389708857203649142946165341845963558887246686309057983484453047716003604640238308103723086909362565141206139031013825415604034163424994944232491274278180196503083958731463849656751728741064775990603269428693993393477366746140595884626579911026081810966646579949707211944519316982736451566332340442500278154819121844376443455854558261321916967507667124056363458023008384471584131290472120061994169725820414784948172102095577719991224192099584401599131998738485688423912054400572409162977325141410451596761482793720372067544509178594749158177227001261503054272112451957633870543317009953848720085180114868449137707456354004044274245236431518260125082253775428452684229378897196012718957096490704881460127693287290454461826184604676670840092983415570207621711754579650683770468376069185474298256985414817997958594012111994912786695790156973637691436985613012052795584583669422623910096784693203092152241262929676382920258940022673567821166722317818334991178283824752762422211959240988077712574667196717282889632399775484065251109956601347830822408904202243292896491336751213153296020480066774949660363464355467498342014561039260593144442964127840323193928846359473087054237402777107026809004493231194822758505987258894981826327759114633472110673992373495565317361280574902158593561086018778738695894211443593442848293619746587811341526566444408403470566045150024687594660949481715314625219972145509333163626786054654493204792926914141526917797715711453848091405121367604362022177205560765206684271380785900114969759507395257078610111583672028925877508310199429198287104015124443653369647503524712132560601937666079048514549290153879470944359373498292149296694982045217017187153598923426088164665323349641519317365436220538591526030796842941953666988673600770582065300333795880007499248764573357273732345898275099424243291349921251437044403407593601721537348964439904644601314371800466659558340716753066262621907283665496695120075262571290148811602931675955635013162697906965621045944341816134290103017388915288203188821016542752162813428807992052989722204751694728819997321610392819206329411310256250733996334396812810764689302905132847441729905563232811002157056975403904863902768756618924004759703378945283116780183276670577020553009202607123355039111200152157840037544101930742873591472294534875936599954904966296377442114355635982562477505170110429353596918016981567750829194124869572624460455560988978449077884767048230367246561149221094317680729389598040423255972136805171652839141601313243793502944238550064605819180034640758482637308782007733449788379629530393798509678642556590090359394695648683413588793233825776248450474104317900573985396431137378049861387315539396269059776421232035357617765116735242538239799489713383064517907010465075316957176448637960264238749785682491053639388971995801428384990271280796184740466376985066322495817352106806183221344885417711574130493101963382192262636346974704459098459728115123045792923672395651300605694683036908164901816815628145052259545045028272794316544643722442053541891418669522871769675030065880056411719442192343768677128290308307702185617358987105672358447232312712628874274345506259192916927162992848992513647199522041306051003883779358249873832346159169598694798453679547589061550407549755155642568785470578984751819919454252370347886812850346209163418333074422655102775864698606791559605860324157187924116049238668475474995263067622581932416713410347671143635174764251495041875286242120726565498806618062057749822668409696177714845015555569227509951945557882602769637752722115367534875364649078946604984805256232581303080148586530644941647343306766169323018379739208862671364821275077742755476255512984095733086102187654736766107054142657590563303158110411079940874233146888291017024854028714779814620160107077012779778632653582358757715482917715930274863517669981268293375184335917990020584773809185721728426623480483442870095275907869451610006211387945093010298333068646387048335968403652553769587556947381108307106053467779306745729078894509794072889541060118499007268790608287555819474882743159987747258930589085139924843314440266941188509550278391110197797251673702961910055291322423812236927994935029516192722928699486972274307317079486647042413482909299119521706492944349694514184111730655207075006610678057614807438102220680458019728547038073486785109305187675213819445041280845194704806177149394587411226017983985412846595611178763545622798801814575634617314485953283713755463089439123169574174913017268854626752476588227141148979722781567735037817101899497411147814028245124447383696340964551615528507032005754856243968927909108716125068592836744897132321021494386712536645882117232876557384341383163256009781705747732919851905091037813017152239380231276094192572085268377817063210631842679248218696297548515320747497993960667371102052474236501461491096556280308644088123919387263993831389991879415098181964424998880022185166588399866499277062716319469926932950671724625330399920532236563641080022419957938137629064252808099126368665306907607433327442015387306889447812016258712865391550160231116759481876405218697095670081268741228997295603560358703148536484946502840276716401625668058161727945025192249057815160366651327387720526818418264546366320025085937976585892812604668351493941804619758049887261996940314891101175956914911149302780389092300290329949684325236016731146565751921292744549229699625909729727058748397017011488459488103253460864760240657885897885900594170167306678750163954873728437255121551086861480948835375831526082295975495463125099214647300153793548908494047772927809103839961011263939802767977283550010509387906396120969474008069141027389262723451656733087919686318048717535953751309361069341779689008156278948923771637712980263571567516953506250109048706742416228620081845117470259476051663556609360015708624845810841752875098536636441518408278098527993883943562614002705883636802889400455842944011623762290892803701579912804974278172949422743451722972921341571793660046037925193213686495783280955267584342912981220677284562750438203676965838307503783986573043133128053425994985163546615176427525649238071693413551119938018043860887238028877237577017662085267764463158968659136778241803772135779508598691688076377973441593791030403590175432232881639394973807018994917168175378540461541159953216478951986270894976341127408702948642159075789447843122695904602019798776898506132554774510117776423982893391486584113872187446829311184807279320256637211784575244705843016921931268369923330519978655164893743264653315764095651636474666935565350286531922050172379321962721767461846014850568754848524198425328821109010811439016091119824086604031733564795028499338939302392331901309845218329055877964259759417933444245191212081421029203649955496561571517426834222132291675101693395274591361251943820498018571836655050696577468238643075114546418246996584379108083739376500256923185417158811982310598335518047299976494145273204243973068829733860988365879107765301070765266862286634715917882995463906890187695100176438331875798190996279634746059348825773838858547480753461044721784878469944001091668861729138941348311240071855588161278323339523588724208636110066444670795263069853781393829514318696699856151354142468591050079719924666986599028580813679738835594339704565620058075675359228619131918752247770231474142845808076653541477683442624946430906936183067755397423187983684667945835490794544287051940654733227349338070131819625858772345045475935919925578182601949058541428942254276447933482513991399229275021662797310076987321303338006088198074660171557668681724486367501796123560115589955422803631444636297960873045379035530214497590401266976253002912239256039210940250815547203523175931146368099719269928356261354329912773363684939661106668558025769775132220142230898636313721269235529336165251004099265063502315044952660949466522960419198399859013773291860050074003644492125070435655200277860450634238267707770813520138176334337846939625759002180913836712942054604394058117641440991392851731774194656780450719669016969114641941360986742762643417047897711947551327914477377647217319756876205401361608316721461612070245721068646780857608496907111504032137671050407669441893374801735001499754041764029487697320994945572791083716815850510718260258719599752784543155120115865181650123411595208840346842345616676725417606165933628240209908733427789496766973695877700861661072460118367458876091053446864559257950898097897905483808739079409357778566334839008354999501535356078543543043772989633004573661476712399642641328893610636777292927328230820518247663499381437138509415348238418528855920714963465706935583261704683368742965771873730534457086980838074331389098742556563186802846484701581868815017499397721034698766047513958770891871148606747100752903346512807103418696911997316536812288487134273616058743062265802528783349312400665013816610366004318452795439467517185312623856352894608658498436380332741642611023086115185708552032696935514820592844137939802206096438052584606845452722794212062888701014684943006394601666952743405393179494444404022624559387352045623526053469347629807891307261947471585901852811301225276503612406471575339736859213484735986738628398313024282382122119929030006735828862564113450625220985183259851794800916733397816532104963093222478028874763635043108037272608687386534233478942045285116545205126224717955369370703064509118429224941411174433475208046940720432503910534121246150276422122449064008701224837409596109044310082026021330358913943605017888242784307991722310729542000997211899845600147732382055187539467538156332839559768523095349074990553728579506629276485520278595328775304713986906427478501829419018605100729179245916603586471625600117539605540345867821902624581552142285957444162615794241116931992500085134894045136654490284396011176998346177573901331839452960432931364866588416242681293260991718341644934173935567550951876036924584609869827175201498659053160750634032762731961998814557882134483137442732687905739800896051733161764085797625982630419792244530710335533726754516867851907389524753685790562469177821500437902893902755788420948388326683109434821150128413535483882618074323661796538174901462311859188291735610802971881572218461553388264256008294434649483058756527487519383348624820470582102449461089800122303352524385048503627555227857674531163485494681127842106508162038463779455026202381758554741449950592644440695554416006436451614428787463502123409876382937007415888675614054275042622585099588179993968077395871003732429655810162143836294695229858640231329791611730601976894062342682010385616869011462297041956928655825298480667904597297308154123514772799200355391173635512291710092796473144963352656116036327174991094656180825032957529783850861302567768976317294579793422355903696919765050557161024171723063024436992567297998842323377730968540499677981765162647824225916798538187380077006861812507811320319817790842373486831821802205467520203263256849866390614378843767068209454151840124832273560440720015526917779198820457530231497650772804990658295225461593125803803073151611884363669685225887121773672240408501291618683275658069331531450325573770960446798054557389205429843635689282812838626923802242598772682001763842892842235249598085062416834414376320724633844248572691946087619488304991444947264493833266324906982461231206205582037303362690475886371928721286000334856757864117638737361761918901964873847343458686455492498258604946020620429540394157158847951438077527316320902804451669580807161567998874986321244734855109350763787581931127088834738908554343561154238340869823476535506047057000451111130298938064625304234427332937748882596149025051290518230283627881071265650768901765569937708600577463110877924411198133310929911860738564515669652612170067286518755756920732046781395723116147768578155230763343328081544212725025946672088832912137471960877104736225445198703280684565483731666903821707005914236988372495343555481033728481749518456811969278940477033124020280669473560639099792038792383522384298607276914642568546045133511762804490094779058735666729331568951364326726725256995395079729091986807880444639804152236771146507574342323288323956308758539227371538512741581799442755694698430738133418411462497512822061249231925758377628282896620006968361273744438484071638741749657115209936546394141468479027320592520687209637227389008714079911277827741628262536008351164147102360579080544389255467235361161106984921900346206466926185683205007032667369311039542208503862770055734947309812284875348341292437024542278239533463501191715080959917625571742975588179595286883207792538839908494719155417312674408107649137845903377252818169197536396939420281673809827040468966703140996012722965968849598127539901500084913037240229533034433041538848196868117406588938984630474683462907405864604199720643495739656881651809192340099328768221313604755295964277787486830340221583683367238761793275171896196237740423761929420190967337667240245772061867274753066463155903406648840912147360559929755468590991047111053052578141885390838041045814128545266930151482696679553658920847489274614976910222828558492396939279887281021571485181876755817294468343769367372743206756169854912962130468112303805626197590260075857495248642829168203413009321082110222527846072469233642821527990269527928077457349616538737369509986197991686604435627674675715491229015779598617650600223107112331709549348315481573874286608023333793456667075153049430484348581845270341385221902273478066493940304641576592766464773496108353542883507679815813322371587839907790731806620696183851725297084348283535892843485901637993210563216907903630835570566324105863761550085427347156035586677596006897922657468264722757597575651382194745355242928711955671896171840688833270803666356854279702430249638678596085699571137538521651728207749732163417418606654827755673050206852904894311288819014662243023134570965612449508230030024974665154493554657933916580443563719563482832220327910162468075181714584569401855510503111164959007841233909551814185497163327812552566482565455044160136226225261695267903902378288628921048710940409965002686899330368615895151914605428142179944615790832152391457977492729564401284981588086647035633777183845173489124813018882761907770515094636794292348553833293514241103998509595304729089835660989540181780207044476865906176207771708434697735615805001525410175376914232578710526181981692302342314293018974202851791682533600204812655103047413991792960145337825380247690878455225817816499797255187831837815173324858455499116504106165308182730978514901897058725870183873479527061381811444576029413859435166647748754623900242558837720771253789476445359301839797790926348857783922043354145639300481749097356048962605315342663814221913841869701569928185052960710819659318666891739321116729878919856417991695340422485930238342576563042912679221429924860727436350524952385996952295405354744191682949450743546146803549820749433807255438444711116483158363910028713243266995775026249420260388328441068820302126159580331412973166086596930746518524842367889063220169802799487934174533545631023080702568400682133090438214037443139114770027217923443049721808253955403291398113857228081616575565503821331402699797788054123538554051221379650538066645047791893909550577435776675670303587184356147291865970286721030765072759445900514122278678368148340587662908407317186740985441369749944064002235798215679786013324410801892091609452048526139396163032584946310603663583102781716442820981670017004622686814370469981181291928544300098488182660785705126099028638102704574308771096470425600578284536806198898096582476807892427246031768515534643917846864083244785605922721199900163380902536608031729414313084122789735752489877067146757265553035963391299800818584583119835697632241747439230208413175589494207575158576197369956293342972957321387557541924235577634065402542951081221378196302826911082244791705564253635747008860206772083887335838242270831494873177900765760240571326596965735158294326717029569613554036149617773285596767359312990998549642029182757378174674895879467925655045508773773410788265724226798875655480322702595940393909084113636707426191532224591545731409662596794305157943846662396512262076669460251312128455863067071708448092063168623827829314658939504486011651121389009729093368997892250774151152981980334601290554674109682477325214809821749759668011282698648342588885334352781098716288316576710526715283085728906276957397956691080990480505542963951339696503387858334202834454327592793719854643462595155703498091017371688620467515000247631390354061358057946373712277710903678425749417016203951011917460317905765917428037960873916623133421367491315874635060870075175823724076610968601838957075137237080863515018610804619592312791903845638239496377890121487044318362394491826675918791189615940167737143152244035453682487734938792688285384175925995042394689319542060825723901671090924240849392590327197082579268320031680030815796037346527582386012465453333975084031334370980332707861020962087724010456009311451507190305041370920397755945935538815748753555262628781263752660403719053611303946882020234642393245301766320309943148455433694416136660837439618196654418321611825527369710556030820872633098848320449035521691966426735235041227946425971788865154291946420615348596429933019350945540489078815549955995514562129119490606688223536885086380019293288809473773440239246521535329871522426865587163084341359676630002143498661317902902053377386625036763466990027662760868770507529181822629499690682582823180352390867708888420456058866651112901429499255005471268775027127139868700726336598696274417572691628105737066986060232980190414998108814015946241777304011863194520043012993516439186745460769007454997828325116084839959257503571975985546975611508559325409848664914908581874764924338790052704582348460121123268891060795609264871008883373370212498120364080031080021140876699200583964485346956251342247918383749844620271285452993161025820984937317839732981328954011004071677668312224376956339783993700685439950692240980980668190413442871980306338139310105627221751905935548643961515097383871467263598417528490055300826468133704567198507633488447818704229100630358971098679412834024022468248620392134515162603727532029565938957184023607886464657773863640273979787158673105208553098484529825721156837720569250985459609121546391908987260547556381955589787809482080958939119842434779945928498205976339771758215741254063172186815440943549359577003845153347067954747427292733945025779689678305173429980371589050194089033356208234280770375571521041246244058703855533173647394161772209362887013224945103043881481998318505327466423277132483785113047822788667377432095557163539964085422835964858690517423126510082814997591305699153951524857451457032031690771825597990974350462512515927116713431364141975523671130065716584770985022170263956666528686868308083254532441095386369789765974651710782194352189439159666655653404642843320423200700900124074938152941528667631583656911761224632359965287460296652241227533134048595277959847437992203977477127248114168315127516220154462973994788553718273882450924377813311820741438876159070545195340446267891451260276247663260543537727213422580723485477771075444901485490948534938982433018719577179380684925107810366797826478504622066890275270253698814998536629955059003243432039942817404420116383457424009686960619767468426564145400526085008942686287275009194707290208935026533284571374183850147486392365844077800687097660567719956971972780464071745596628782403814781182629216941548130553273521728751574611659574756214875624146372551708093677196197402337611839794637910182683417138762145497823524389205033106196393448674727498804995480143193053591433486056850436664314937859078039974323602102906376366731193610669170946716534319321855564548693978362025024217566390039527262739015116376213425617409116539903933676147677172783959186552365164420527778010814855438359195010158944435257472486997449095862828946352525431698039855264105198452849331224669433227873255998879304855704432404388218781876334894032992190411303595314089606793377075707283864086957237506377048192198414885084282663170954367023214256238153777472971708131995503703917807312800481792280461214512275037500370926369696160514685719139862236220369070556448291803270386270002853301402805961871678369308293606366778136000708301069516146770794081901137329617634915248634434877463362197235912970119647122969879729704321965308725099766299716408977722758912437019745861673279475302792576027858893597824649476723342324902583381081563804810276124987541834884193124820554990945104180667721289605163033276360190962521894384802646186660815054221841154755988817381720417900986423398789437560163937238922018153026562882734972451698182656730551414563480726515320911140281550449830723659062778641490291253562118011941769379137574057000755057300354542836115120661357796121876030922392093597262433011690425219525172092412080114874832942192521463065717541515137047435243845405886735550857441096361287093079947586318463197658777307564069529461662984625616952132146902973454745082679483775643355541840074484783984923535408865250027187040988765243612751952204634436951915940453357301338633111398451339377829669487319359612392812919873234813335942349514120279623813947251826630098432159280069365121087282640313748128357997335608081672089082652835067029049531330988637569679266607952693932178310098798248311562928013633611207597151620024877424849347794898937805712940690745815810367991407914886636294036278077396510144985937596956682061496298430672122101622509625270940327735908399927972934283693345516877654334375315429010924276506490267045788475221244250426321629063927441725055746287620049608583971686505235548745339533896929157145081713945041975762216555583880312784029364540825714248429867551622853265788942992066855991572921004154878760295687280185756776404551928687126636139605120718981008687577888953974700842019531356300370995793780229852769936703338565934485517835641999241234953344178537940643170047259496475857435841468948213616406096262421591746543408007254354170478923255261023383415592056921104332950670112939591055239861692920723681817308325049980858692130208247758605934448359358948955720780873100618364229326107673771916303936669298639672784858849316901180962145218059040278546939914897320481330822411942300471936388277435836789693197637185144048140805600017727988898760238124170218783854103973277445203964941318688932570203124347302154451460275499209238780548791796908471355371342639953353853042757706959108762028241629338562276646408148764429366685880932844680537627727722125686142029407990126385211954175195503414333006956621705227960421987442166667819241463839422896613293765416755375591619220793689192702277983470453243111865409161044992955908394756081578433556967886159109253957334250795827969878716178556321453400736546284340848932993109147099034671824840667764804424406100937595298329947408970243750312968168205469979527284337953000626496969405851630910683317894683134045346974182584744608651107191774654909466876431259436183660127286478881663846969099252545713615132228805220451247338329685375217432784491374412452095319853195925292720039035357926276526326340356467779960903979646224052295049754062043976518580721720349279094132028360169751594397127973534090744875480590601132687405823948430862664446520326731066928868616548762673615872361288328864195168551524908317793274225244485877562542542128287484460337867140003997630723955604051780264229238235472068876061475256491343024761536989477914394045368105877733166767634096176014679027684369994250194189000336599525761870600767409457193255336298659976170339049061734162937111729752693294516191145382967330712818519154176560460359407402615024409762350309464875281591315018997074745584229774229830645356883522610619912820342020535996659358629340939520763496798352848688536541040030763072803355086820846099187617131156313743220623144409435050937804588145729488474444705563962377548702742163013770255936634374589697218063118537109792396949112594555608143161728777599572099185304231382107337941349913229558470024448389716900204607059231203670831385298880888427771530799092644364587352498873474220757639325611295112187291109225513946053696463530781136349304828327086138970773665166836911516802268983928970246179123765185257317336725986515384026499115408011028511755916671412744556193943827227263138180882859428159685177483264888553654430238362418455351251534213126879652596109095087765827205588212038956872446823603121360651848300496905071367581170999365281046321772785782757126212633386264296613227373771841687756873266348360942465459144079381784263120394880316078948353341486123797603057544539197706450135367277527110400257948482161194711293055513482003631773418686700281747353421983874357158205142009621533847590067729213557882421012267452104440115561567858385339188734240587072938622334264261986896698315979404494513048922727997798916451565463612320233098321552676677939928221595280359924535763708349617626245437036193104598438941394798699631844475119947615450445284293339605927167044696063235590599032203156682503118875785942043540849133638041088405367815034267156935757344898153868073181899360866185082003855044325794308086028830962629128585853715005209475301320466141134130901021737135836307888735966386566323263755946990619261743313233363006070803929663718806925226451222101022429310184507728285181917085464698354724235923715332068867218870880239390105508512315113135596254369612158543922754926111312076359273799862365758835808170474337416089405799149942157255311074924149299077888727956193077129318733107123817642506872112134387566309101044648656885095976644892669241340805834260958274934772914168457052946132084305679536257384658048924419329857351791272060242376318839127110943028225348842083836447802661508643884710558206781622506387148301342985650148658193387451376746982001341053645498855224549442594991973053861065591123982734102657368107340148198390234560999853993978628876901876757971373464933381010154251078738835626749267304203047457926757214566357203529574583254936994058120872669961383010474926431288286713782780566310164623394757543721224112411586666057205146825589435014606024428251626485145010274205095175757708760381610610913240801324866867850939105944520110813552932571645340156439321659016102837305395366308745308446891111943596323356473903452902442813492381159251573328689941363952961997055033818669135445347208937491028537580165091209330428463195726569654083953570954102211696033019275926745445363532321769238328303452807306437409265606541717842289421817389209192578337596658427204472917522856729660343917578667686772106779614678948650747844190249217161644457282271009534981448329651193861544161329913175321286462074565482417498110752478401057271709286471239350214129244717903527110877033600300070620016668917330839530084570654495963356958819508230304887930623698617813440560111992583644573344093283160152710369359235685893462597205421859213648577219743534578212476280580269610296304566868943801363518657338611758516092810298823530587910454065624392507921674401461261531090847389556777129093642085243685905688381642565385604343288434357512638857623649889765232197880811577894602115918568018654575175158092585296550562726157266294433405453827082057373216443668452740966111890200825742660371917536230502076062810092973145938867892802535251766520576619656607399446040636749576389467129000872824643456974659353659136214771364347014832445564692638818947239171093944230494703751364540023129428439150725946807623013654419325520478164882750882997762682386098557385462506836490701634829852677630503105014365974825361207828150203127538220328021843025191745425205852163303703333220591625289781001239522872891593591384956668225372062694075792139387176255618447682010140583985747342484216740588209699344496583149149239136967022382939269884817521412494045045802579541431595815463349960218584443211963367447542088262525301156248671801035427318372353854233021587539492952215786377906370280157541837070449475374266435719389524463624065627477185991816116541464329333708456948670799632073963490579005758157676724540794143760264900130726567155189159671002998847073407702846359875906558545938824541165804885062377417579904930257192910799241932989174144003864626149968227890143163747547909134904481701595674332583923353580013845299436741186097968641928181188542369112412077250777132167650984930552146969542223825262916990467282868842910456407052783777818861418814382491918837805292561189716854637947648629454442374932413809029835576818788753571514286339447691507646636391433957925659846426341469560480760768487645637941239847749424542401268903870396823648799904284037015070156809401612985228860271065381525869868516829551961224106986695934220537481088622128994682658421910971358536265909338272089798243535938488358321657369637968134682524641826431602277790337955353001026397685604691016582908828872890962249029790783365330572275513873167018342073823681562371507676920200474789820963726464150765478620638128732549842763190574419122516376782491296602417454705915587701085473563608428478517329681874151526094145915896888017340547177119024789403250298389059523157181568111934029424154718039686518487529213130144462793441682817815343265929472668127109555230860179798618220187389079525923628173267826608841917644077959485762708439702939902350812186322406032335312406498985203678675345690340269710357797557126638397395805787527497856577159761213399401715986035939117193296104247620914971221050248220786331093602196660754988817420693526422351144167473456095774769723134199602993664119594165914938201524129311200402198831634581536087644052238272059797031411772352037017102239937733119651282454599099413001595039910624909133692708777926676736087550601816093773666258428684853533383507742537812607716841850903737500515515581626615210449310513378340832276569221075631316810031861824681887701428442217732079139867605309581243863948118836181735708799427351760205986271535587686241326738112720487821738928742835657018652101889390745445082934601035739794648678980097762429809187135450650485335425477388778274398858015968986446532822610589416310312870515924744366365763194397575014445639318915860024578427133007564580055170168507623527756989681616260939174087339393661645660170046078881849701836906015129172600341634897805788368926846678710972045466390764372270431109024023773706637507606075965064955827227504336855929200864575326369842106273277693695177521488163705553748079636647587794394957186231476418575801426190719866504586065590455711949400515199620602870016903021841549986582559084617138181771238566241143323697960209936189526198958421316455196489804520755393795016939177295333433116669784650147972735681369147465631485514843078368724818889151460472143772191084375828897682331071204232726714174670346632438980662254967119162706449982723083443525260003185887811745727871546440068411104747867894839611292913499990006252970171484783620118402286781392201556415809766071967760296394263901017710674379254441970395424065674186780376560121391783939712607226321238049913638724346975744336777000518499617328717784076622829170587597245391387775875101387580093061656124187806031485669416099251209787957483094690187392031188538405282775365714318453873378399313387758735126618097599705495893418129367520849283509998303625579625094942139808803296103377021905809150134753940146509793304184820658472192004009869385135175794880485266012314738532312077103524645970748271040144537419441764818603408198547277494922478542677964141341207519927590501494512478012028747245561164856051938154270867756799018637006497632639956934053412093738678018591052446072022558485972326870288912935043137707693013199409732677100940108410575919110696940825809543089365213220049498614510169718608455271992705643401774791254185578365124289099921102217016732434769270694785640045270971646436051527534664865688959881698698520537260635466963530990316969112139778182953169578074924080944533570078992566899266722414997040775644216171771595842093329143255511832339887697674332361736103712284887129721354957156823262832253155634915020779339405995404576286606684517550329172424208200388065643830984500007166515746605642057605063685165423279636838009724102175699434988843727113203278022704592351183756711956310574842520980736829525750879365741662196272705384084204038069750128147055985777238163718154444108406338396341382791499749735384920621860559523966234641659199868293544980354240020982705585678081804577579818948270283912622602881410000972965426528374100007771567831990155818541571085649970712032130799608144947205310804833348195608107029305480687281632108898595205040962870433499710516432815155139586073553045959167010205929444446592466670365833607783984948366427280439368111881768452733858205169044835001495689798783983224731708481105033363442355672345109203154028069163527367420445062648791996337525737006285521122207450169630161760038017684807280993650998617110249740884698462846633552112473122335154783871957378401917112756827018345010544679149998893191440079284379964474142971921518422982637371106951882965085799587473391106815693749013585496875596450114594326761607454062501091323570890334520061656416868544434336729596805215251127904552074989922337248880593494228376784715714299079201579299525861859343066179263297328565064682473494074479665434088952295656839136490065644581564112647099780302281332436902718037241781625205428202560608162020100121122052821908852080326192525759669210737969816232242553507920223079614961880726934330323151236912242718066703567509746073807327447271234402856329291027209608044341924835331003356408643512861133778621210618978313904833019017516711924181952218833328853533887909918400709329754405681965433242778616188060950851373203976326818678984618996919061876643752124048744421331866500976464582508635411132805721784450264107832712567766671148444565644493228100894560438198201933028191530757919279722657834243207632317320315127059795071132567320513204044648715606633040659934460010216600860841841733342018432707204523622699824679655652532784242074480839540605754129608104430782097650075517291093125784645770924494227820689960319477616031765896267329958525316804567710219910325712496644960403983930289824057875646663864112200060150228249450724844082141403812836663378749543973804962427421140933772478512449578712757501166433618225039043055543577021246227806493635929805151163814054002115495138847566439956955424974027801465566158594418395400942507234153819613724863627181354900063592692167013431067480789831302320765829627844897366574128610891701120679080732492518288797759318548146446946713454442141023145991875327421575226823346275739603888857044162375153212535309380195201827370056251523282473815578384821610256056115538589375254179426900056507014653902637747461608915349919697251696043164024645310355819936660617158342130933198664501868640965860310378498816950004357868699970237281657801525040552431585754486896686409274526349937016818602645405931919184133586812358571080260563380134842427029448083627936522583956124950341173057944150701895832940859793053759777499126756278322793984992076131994533180139807237387102426119227392146796685198473349440450080998194719212542546553094029890854876544305464450941478889746181409683483140151285775389947419152763898764667091422141314842316170452108889453446089659707922136610715405391939942891922778647885072555296238651336260930248859921667703504019153253312875232568323723294996595900387934558790327910337849174247806790689144163965162143838678856965531305718632800422442066079433927316375376504912790830032013016957586581709298735555045433733364263462017793325846821119021545211345771264851591959016290081101681232648863393415802461555406076566556898169547738727889771836553023838086916188411567797008963041067859938655346418685392668799584779964463668003632431596122412771955637249194422121780666362881932620584061614263713057908448636536375182046078790373709982486237842685115338614072981233534021242431824259998069055573718730022591703385028645056063218695383292227683710041596731813844804853777803896867833747595076007050732183841800848409233555689624079940695203588234310407517305037990322394482587372590976157695685603276728605510905894533950953622885159534311838403862912617580723115008554073016864268385870173473708842019365984813886537473453602688352567839487594323976601091195317891267619201045837012849707738013309297717377863946500654641475661168596301671626045849840244551844388615181815139972177496209028511374822605414811382858297179265722109413067732672094352893108220411720687810931065245894707832579755226220842914285967975884281251156420824503518208254688622361661656965206305246690673327264874644372989303583433527235660988367737787612575719726084758609765988560693337793253862105870396580921503369011942250534359279237968473234983483935101851044985611490449838292182745750106534039551809213475529097261056848978225621808292527185503509461634660412788328203218002506511897796767931021832196100712316731461300849645710067795774117557155839369284388057282455824953361948387054723994383282858786832574595387532290650431977404244318511329671871247421903612014947007044881361166080615768592425596163340109614513680970124609346507383691380796441566700972510261303500462106572335879074040883484651989834587483518131049490455897338723257974602867378969057762276597030651391145001376281883879554000601976575657344571020233497461967949450678024998360020320898752729629985750542631411078235307914172251067929878705792629211203836781640812205671407732285531721335044425233045135151185643223774835640595811895249435687021637610822018571660766837835646319129406091073765907365285652693620963627221245204793719620705702281093993881144218969683451350336391013496921786678888954782553528158507541305191395361842258162923176731829949440512724904713438099429344121037911693792701347338299553577716266725556848975171012626076989945209477724223846145964285960715453559822187582496684603573394453863582546622772597749376623534010875090585670653231395596755923619559065136353221808728005928655246235396663590661933539047283351421075567126248792791380276554221437388585600861834291550856928977183425744723349096571899635346235728337901028628800851944388698626739292517658988518097591800562870447652746956069591700670343791698339758518169768593257094997250949368772101451225866936967426226693982875963839941696746248149538702160745862931081902656731484373289642786417890112858588842514989353305433410511148212236146972696061890122824513942937980799662141391167232048575492558894177698781293571906482876132036824861757844389776665779004271203762190608956904655013319722703193608501639379275597594785558769038576475099188378287771257365104719914321919566925877065381817842069259814656982668538207458248589678950328809280748711298331093134947717276965005218826572802834578546023500363487159617051073639985154620288608143033568508613227240463137240696335769340313241192602239079162476253540497274836546057984125941379363725948565729894534258301543637527812205650824424023486361458342259779249862744150441525549597557114052856799792044340146679667221036213867408166825365052241870471990958510402806720959508415577004140526343572700462648935675178678514684767486303185821799826004702130194913062722219151986452798037490859580766355511554200147622545192497415157026808629226348852341858586623517340404320910364309830020428659239445953609592566510951740744255650910681573023937410705247147279787375747503994043486209818381270559034791073146400191985129029448711500243834599956192149944572663454940071327137567551367956162901447753912034304794357723290394862805850456222523247765082656495006935346496134883895900547525971665670125343405726691190235011746153736230570342559864417145724965410368551568991655895711703339585909980141609428465380968032719122155450069004201630416334874718504618828709059387662299948617418475347067513566140373529926635362412285720735120225638149134225146171915079649573205226318322708931683276747684482172499189430468403664222099241812968355076256281770823361063750110983981629284047193377711693419605423925930012391135984953779699748907356150895846174146535864846362985650981458821876237364260322648843272648602535995858385886313536680517519260099545905669400847003277671354340723801783042769289200209020003134176464183192962598359640186927492758566502136178272499620232845336837014323692053669536471190881697171601615577436671257619498970303110360442820865381549712315142554082536117475488753673243579137613731724835476623174523263143705245919298172450172906856120785016087674180911600089637481528228942559856816186106534548612682455984957531728729580858020378061614639657358589560695654074747117613995818656347356547949238881361864522066663820962719828078471989829263921667929340955628773049641893186526458414461089721220480164692398915489682597820852615403503297641813686497208882639655856736333410364687530265378731927032375460693701865587205560986732061849058183591381118699461390164448298606756057462703468570337611333270498549422648871103566501036934241594723840234340973130210604548233715189015506419666912247501189678746770839441450147349344456743433416236943280962094395501138195378819043479960840668875749239485652344078596532273864659738544240102950899915287647156424427968012171843509568737100443592839090703249889976130448192666304866400061258613836043479830462872385491072292741191541139935977528814681843669151786031081854498735423833330951156104575529762147780090950546298443529328775958552939303017112229099197596808973343485028437830864614840816894916561043996466398430724852716845123108767949022200536489115145487940536004628741488323289697238818599171471389008874458513502776671938706902603667603644099210056703323148731199475210488478765757183937986510563334602326408581402995038357409247662562327844831440548761819516086073646493525974985405958118651363591980680685833055706271511325556059186606618374476932536905677110140921976838334781392095968818373232619273760381938368298149209877503143964071932292281878728168461977159551249654647138030981959767511282429767412688557247080981304674238515495727979806627515680151256474665518178298868520794685714422966379848062212291448667260910300464174409849695097603787175611419607508028051459618409624223537926879066926976583920391165935038685266010756028363354283156612922644097357354668644583746224136693578101469361859611232458515905767362220327367986134349174832967387349459437862158154477883047126952326387164608050745827403657089997222035581008393218320886604060831496281466547490400319998430562060694737090109285768566310367237922675417072464810678146679261012358568664985162208115213814808773163514513716430615564378625238978006867792985808398708253014139427440260445302226823876291848494720767175343821018527441048950134148165761779601893257082032166205714078727470268131368602804358149204773888553526434100578108023999128686838707509311898118649351203468594213683688778336770529401002347878745574308164882996114256103479856120231484722897584772035254208701283922321487776962271439146296720849234940928700564590460927920109392673451521948253126237719648011273188552175007718123856028331584345648151085740644731262467740675317608538538229501346124737207631971340535493376309091720117885224248961795835380284304690550314933595362019952406507318045255991203177396292804902178857589083014317104843500388093588426785327999361410896899443524931659839312382438950412486122218209654703067723352927253331919241271991034164692822918296594207015304815460583025489806348600528876660612258354896916282641521595083112075681651557028915219633058129218333414258087543981892543476104817856503983614587867719143979951442972651961300437160560187859878634767990169831960207458863188176744133060115072738371761246562953309799662314530353023241837315593916866575261367389565818236131706825879288144815861020545003161639858859325831293453035632230042564003625403618868139672809779008619644702553512258354495182612053027533967963659546305217635521294462737691578343790454305984087710373950798054088472922583167352204980287936780323813541193793397342300847446348407514737242189413540273372108172443361653386212581130533021250255608084321874157528619289080759599697252883150540200385967618647738220515626176137441729804195002484069683949739579583158295731575880440674905485590543356386347053147583510517821552456529595160534036994002317143839474498184654896111164338717729999122837707902134469668016220129256312174767214902650776811362893116487732482006431258436138263144747939627805118800478160401945835438447055505455743959228352242785064161023933474609405325655575434020309170582057882266676880698339127488120028357533791760079405356967122964825489352500458704426880949511911381184366041794612240080989968334129293127389876551933764388291252379672936148684090222372212187300582062638761069334184439072447225594504051898490803627131790795895008291795653627048687303999028836410095926436847759676530838873752539871810403964854132790406056018994183463128850822515827570810319162758109424162369318161967323104552171739026352263009651694426953572372203414503523801743166544731378331312540918453398255405815564923872018326552961826757221732450810889718600675783256838412173117165664926876106108895636595833790406003561826330927607055182078851885997041237815136043690017939174810303133474796494930942965307301163186828037312482390506569585441252859112695431142164218024681609728254989740676821488045738001393825944071333953423997730113316921142027895556459175963868401131523803369485766975762640980182131177348466288966838181368255316922815465921290476639337342891172116363013562031382102813492039997589601363482202134432320224394442457363087691604186456670744882851145460331201218849366268981193700777722917689312097623694126034032872902787619800102772414251720144804827652012480386243483302229798226352667522791649952206718821353080234898438187982408998515562896104861639604769990676099857526920058120407865501320672045967858849038215719329157562151623404570408333061718527583678906779144964282788490370307053022303018627846059989693866509078890548952778674757547157529296167596037621360991362733330262340918824063552313627886193042036559343767567969655456160721993754309290411112485322615041500175922803913113787939616780259463005929996025370952921270275212884085230447848011649330421832785850013846511261049366834334025129715049175102340136614664234752911364984524729854554596672214000825236810565461930257107521504206415222311674386087548811722386136322178728632104385788405050080032737732904806896754433584364215380471151675692538867436353427988603158960351296789791501865928130551550517334278840165143345226519972206439989186362997315151507948980784320940617378159434513166847105340503265581051402372801706040306158000697937396086623434195033142062246539273850519459973681081263343920040358120907834416788550384406517626566134998825924483748123961797774544894485641874778083035840763963027499207916544962562626231509249020775120407827352444628975671747402984861040911752230606622679918451466409728265540808131201360366892574576652498723087242205985875136551012657205021010275537931876296475346552002375896515420405386065501081604343603336069475789305223267377394683202432956859140877109764985795727757487414690990228533499915214336638794901180894117409936509347496775063970747239752613594527221800579094259496382806551753106517977684321174565704978524448388975004041237219847697328653104393032898966041359986816599961580046487956288844125169699972769960494431301699412192530378857590716350088311108933523199023572024014616907500029692066966863450019145792736822151506473106796265505592779598440960867289223798363001393372710483907948766547665987878613180478997324003363243971554148824934601589841720351922898890396376574255057937434363044313423198779268370847368712700919519932219768899136700856899007388165323001833677605849699367794244517785421263656748404532182759614517876504155352272973786722566998860238265441282890041165961090590304584483786701713389195698614182454748805318638771105241882681692733090134452836814348665431926562426904368629534622039193780321891399902999297981902465260668178936881480179790795603513092348978352564096178876725945655165436435057561403888345865355051497015094233143258430243483181716581157206740856816533616793237520517363223261043792301546526245367299746545553215072203134220505961193360919823723266719649059797962457231158836175334911729026793052079673903692085095317551261761671838302085727415200030970531929438148880226421122541862104462301912763126823445628400005252007669670421640415694236701632145045778489643749316552200462656740408876162674499782310070467345790315590054408153150905780905000722785962468951300713586835510297225259140736463625906049604417793590449929917734374944715992198004925975946179746665320441370289909940779826439388957424870940488421268092780364952756567412500354591898061739202451603323321298192028618870545959202698329008957944231128262242721013900890498780683114111174698088631261395025176954895961192308061608284260214502494316515898537117750830032585886318304514567015496496712549086278609432347813086042619289882795807405342022247079179929481891298945676579140380615102712521960767236554119488002182304141123633406949614195794981814902008774518325126204596919740733402443368164409069534481635586420994752372073307394648483136456635845817180906808001620297020493694241455146617626609310447038002116326723161032930126232736213353887991397829296940318057250714787055058033105459960449279115095451095049657786282164055881648919641665839551819420007530378056261281587115004188351261937267474786897154616733476530723295246784262571332494237493910940084457818766821930223284251702785474614390265317272851736537001977442044916675642277786650705799669602219897499988729962193230926113441365132684975688657781953394974147783599559380294393229172596643552710183591543959577019252216526451940383235459205877251691510955525603072384830401960962100412947480093789845404407567018307968440255090801512504653539416350438791538922177916399727954896815881116606527993927219192810900740709441464240729852069811178956998468667552506999177347884191095979966048304361543746950019224205337372423986670498604523693215473790352113317094188328158336898003011472034419911745775083847650446549881069539914095747267447501685638405704549021528002924180930211817606232694077473756073921576315652374060854628299201915242702541496081255691806724395022689168357042106217682573418227458179873457531563347651576502226527417114164153794447019048060878755576337693289587427955729708437548909244676283917479263639290044300836551751246391189491195229433244784490202658871764004050162057647740302001124207124554907501840362077099800136575257482391568577503415183525492160313905771074745295741984357704857426066666792727608035402050086914090149938640142652724562809462036370872285071939405895796554556521003741867636300286403256271158433584970866403490174705134071155057885902988950735976249654381058361471460848163267183853262005429230949706139926589802493403868535963597484587901211515646384950474966484781243711548948392607199581062938902708848847146547832805300260243229025769418467206750138193611347024668276515230483619000874123728297188942590252402784609394599391706443973266282181352811653121769785823308997954853720866324246164126016040932912940369893387974248190411859994333202704915164241985580653724747178992668153175685257813561177164808515514010102587195213069157659477339377963648927870621569957664104075246667106024287694941250399148903939218301240557645761826208381360540680118015326299136650157553154219263956277626672156707100949732306679460152804410512997120443270661589431181662102625391723406751946957911455599264668797001289851545666905483339465471126423375390408674491884773364779853105527398817852838103380933693932282542814132478700276172637475051956661317545063369670126266804222939462598762151953344686220994663344658361015792688064014746526256737095067722196266119143244589145879167513003752579019521553656155289601595371538697561499929766031205247040567137979291097603586111168849952584239392904631468210265847855751819157791863431178050947662728056000112576920697040874425306753161720402743802505413092832697055379776980767448753053727853666609093258936838746686205603856023823356742232978216716785038580725936741955187727848327112119327196739224669836002507115469667997225732582427895907359185966800816779130245158775750463665316438275139627741328122531996503721423047099650465958858082474857787562857055105153480917425908410320852118942291631458655203684865844893809471215207395238581566139352381441174456374775399835531875556909307702321289198866847449804746253815479975628424446891671392907860584127738576132650289965189361744066427216472507295591032389601093495863649921124427578667023629390396987431795923407608700504070508681324449006311546336258429393395386791360542340394084887404805288378393884547174814822710518437368755177117092791768951010382563691111376108052066300715718428057483867383089808377609616768667334367227591086550237916177294753067403312389448690047973237470147910743570919813602908346149697213691773937174109914788247087806113297565074483708831346948630744356051268041254694186094520953121923113650177785150248047854550492538555074744172755043196071297048679133980091952292478164042929733138683503169199969075230145851818303512613408539441338004355997505796535175446685556511190759844287638777096321070126388632613583824567860465144263688512064423476353189103103397669566446191616352140365868603250447137762195072161887562302514266034930183026666036713228837765390371387624995943771987062812506714477832194111011390142985801368850655772017005118541873135643831170638138926217842663615080247869549755241067994961902130770773034806531480146343619228999504392280488471415849546425505566585930102645636204167217095619797873250546062822255554383565388099239533278040495177755769016797237623358490977727554070556616644304251944604974559323139716243525793143666608168922342793688097077141287849826856544903139094977449607071535311034593148230102930634702650103806571389477314184525333343586710040200128407779478056467241645322989663444427819468365502373435699163826606004450433261141246549823826764674026837979212200309351043987090742389842779561103796842150258930108410751078144247798735395738108142340004420063129424822429990914940782074999191453234725426355653982249425485568002911497650689305132332658639066329310863471683137073330228720607194467166623574733279888971705788821938056400407914848223400520381386675811625890679953012099788172436788641009474710855378357296009512932082208271079858579849892224048237615144051539715435421490152347520994225996243221460534954880124122202479014755414611427916967195788207765483396172106746244468430386823243577965116718575608934428636036834141568412864339282811236970768044033544617162212332447279595176110046705928424635072798903898427371020745664820148510031570879845627556970829969273735414660227753360863677461485256267691846771814213249196234117870403953803504797228029054029334472281213386014835924619986799329168714614556865393557886342597752770942093847290822681666898473628944579706113381855604939677611370718926695267856632196920868275534940329013266711178943338596164907203458581816582943335075978512442917807206875436607165550862838125581095949372567431569020237608829665809183335382327830668779719207715019254909552068262182812273353416550150638464125103039306609332020592949408392634910541946904671075915608627742084436661418158873813180847506497289244062537079247321920005279664780181374448551646685238812883690191398926119560257672231416965601931134356143334979190333836758479734574454514489485997658526306008326046321778721140344632826180871413596360914700591518294759585407905265485408992573765163714116415510634138810697108486764433899704784074089644269575511119570843302465062581009870272751938572932577328312051688295582934062610749628624510960362056894564350142693324378270930845343557941533942929639261756276433545616356390952335656548452798113763319797028354595503653103717308215850307821312009378967831617340723233712900212107276767525515306026640083241186377036670098909117945174758517766295665599841019107213028740537436809418474031664576322441315157032127247450974254940789120354315090997863232880147610122353669514716846543700135776163106642459388447344197413889605518806057769669956181897648117701380970697397892659627336935377241791964156813171293447126654479425417468795241497407775888261724752246932665626017186186227583630691773473181108936926506142782788103475354282988612108223737827442132241940200812294599173362203777015815135373159854528176277945748838441372105976248140952768199697188885821427063008578820461866069788088948681329097200671552271782488323389439363852399849571242206904975987372962951531568767227298386674342799010038492982021983707361862394815942895706010340852923802823350349953691729397994899600195504192486944500000136641087873727747012485267700709149105659695702168499412300495384887807966741781028793121442377487288038532202078967898191464290039782908922066241144381448654670260756138492924581875077634155707729247913291480406065515185121680505524551050988353911437769993117768209167788497529591605354679383470443797431381106617330448307619519017336124522201277097574924472707160634170912393362839786529641461997853591725518761200830658738006492561643683444439775056954498404965559437933771136401112123995053505827739056659691981393354651489334579039132794248821477002551801281524895500599713859469754438921547269288901655156652959714981665466106084861987547073188398177169704737936985456912631960345284171013820646330323359167638019588447813519872933223474453550439340826042269099461892677251023324114210038265571610927838857798694709548270868533606876646888560983062650471162369298460978050762617446830977868185050930886349105050402273387077329781306470288573002032500587432352936619418481212932130371721382988560241610714885496097173022773938504375980108562110844409476315829115471887301741753206658085476618471891053482690004004140472396728698331143214978081969600040681783828729081942362035118099548645135116096508136085936741466875913076654711221578908485524681529332014285470337760355185318017137400911051515061466627100821221127796966779581865788318938471888655822281476808135331521663506594221547176132748294169884992437461289010236009767352128657870638693174491153327867866872923827741072721211000646256538271798148143499525553826248320926484246401109158442090647163049550645452877203769374708379351514248049400789667268527882935760185516078499676585100704143821337775359770900499002468532635510437009735723563425743346349942084887597632845389847593870516190146782725840052116034339157282829315170731028855231935515422097099185988401586123186497922314389990392682499731130019544721563226234066442380090913134548938274864542730839679416672951838922750213029366169477723711782719309714917714443004457678235968946850790372256141104957785500354279598295736170981647292568056759574844536243068398008137086091945397825182055403140619228237313377002185027664123500104379421347436385637493751759250614262328599317924933036990403204048194129963265679404537660301281614787545773823397526743754049823719286039142138102500507850352402965136798565396452439794554652551994585407658899582431905776826896297062658456871844396798375636027153227284388499275697518318254545469562592435212749338998596749813878896009674315886167092888350908876261933813911858111594867382822326362905520856098821673489797836071150907161507791430713977845042614951237129041174904193976726749120938914024184797129564651097339118409034600589234652071642986687550545870196452593842025305306905127223316165431471861639694658486567491431596839866448325583642199053684739331388558474766648726400413360757540821430722354151485278240948042869825856691712518270785541518869439781289805101019100201844862535481146006151892250175279117487533512655021867506725998704820540673686052007024036089639037492659856014815907138124314803018622756024768711915511776557302385851430200335585879839147079866068301482967291982875006498168288572012890774179343598999374098151614485775224990457618825614576568524269267595821708759955000551235435453334544940108103669149398311339256084157732191933251531837623458382457447500793881508561362867005395891925508605653853998996651623144222823430453211840237345796717833634174778873468306578554957627741630502451017069178628525353795886279736642346194515717253545566481258048682691473954822181570473189692871246437895070655629187746374872865766184763854553087497499522243059286038888881882270972903496602266312998455713200238887838515734191209571971771147891048406527123481362451056202989127909298227360153772358629915427476582778343349664163754876813056330113367877585270985007320411570141102311007593603413064378658942079510024912093903342644232167302118129248880382117090702296362324619270747432120079141980370250076058457976246827930642864498484581288304276159641330921791950255149802181677803251685958717887148038530115319387206593095542441908852423664119686729166250697148476891135517844936563699100461789325480274916657315287466757069702996088300144088273163043085401844052620368314990830760079728220276573428350623710411621223575752469589032956862711335749748021740160607519619891650705259678796704419676732028990544280299550411249551971864657932813155789599809236296859278452789866129159809672805637803895356555507225413077536549755684418247795386568360317460983256291146358419472587633371243996342688224737571969446514450528637888931522545642203408577473451088678240958646760126195341518991693207926684472555363167951603386936734869076912602346147123443768600707008450064340430331400496076806945991026033756511897845542336236148715663479316704168492780443930242772908437363326717480165377598624488227401473870762360647076536540038555711831614918010205392357690184546143952381138145706756591987263866984128602951705055983380273619313205069190714504809368046589456173539027827984144738375225303417040279934372530031278036389141592793984848473233123345248614299376736822572272449432553486369772686659461923865125240185737406590486657855089246409035260333376136270460336424914735351376486023589834289460598550006895916172968090435466511910258927152057198560942399189618524960993979344491489885621332462880929138609144113388611763773622950564655738731439682981547494415776694303545239320218193740070854542816742743680462394342277640292719520986435604481202231882221548167907643259602904605133573814995861096651684491914887360091515677411775289151879184110078640760414125993531267489555512871780789757416985422683394879744512660590962701404668127576131645350824707305621430403949328989486884822528882367970412340198037531035593799432284146089782886086267841880406934767278488741047502543073028444939750526319709707327975523571536626278925384513885101132656735643978638304524680181917761331808114609923957783405400819799536247291074396674341223278990129131699394434170918121150531091494408278371286788292271152672165005358602244072316603909110939286475252551839261775507771946918452842548331649542641024819380895801440455018710718509628825205976343863664936242612716604666677989602569030812694796564525898591526322125026437034642191571609697584035940646887335154623325908301396754073377207598780756794971986457507295371888769199231941170472779508841707600733678772161575486808772831268225966856079975765783687572016610281526472597905928261027464954218612463509124096790115389309041895031029916206130861247814113716128159951442183943212063924710048162472654042132070461831302396830670102629761506491811214674053750788856122243995226772071409308738424808654803179988800009890500423031906079388325401528827482037684363568731551566942501905241190667663302972751658801318020542271221345102907719761726717840757857931102090624329235342113611260761374782375439045407897572406717391288254412371897703561336734508005520858554242791989727996583272582056173982995249916788201012491016631681603885509257082159821835924424636975607682525397101078308210528129805812713398350699001428840774073553017613322751166988249177225557599760285888086759322760606559298549123052551109571829479075423330716787213029708028283137538660875937891883748010980153633296255161976247551430203820972583075284155234146499424460870932955653825254783096117602839254488134468929577685626611716345286144148829448806382595786631119320655234066120993330760528874316151065936976469818052246981759062521415032632498918045022342137973149264070666580162117455922286299121389011409579825049487028865314828261739586762744289993821026489716586341826259760498459502998060107216830746564227892169374120970855621621401774327041214752443605224555082568859975689610496406445193435314073859957830769575875656181979806044427983335195926075448730980235344018036256318880244514941233516426837874372104653875326882096591750212568697892327909692250264849275773970196646851713632957246778283984812137081435854405230449495032314456437787206870242508522037755809212552275736230223047333428478139364187470970640371050747034581574644138578619628949584478029733484555083073738674410648408862881119003214880983427080660213336136612637464101894716550498153469515624405425839211906246201595279228515827856431253430743259562749002379448026202568119711096830692726482483796882797151263773300364215524819704011683050020122459503452071799359781261645654154033230065242512260534475492794445671661069475092427719844392281155342112275745753919173146970639341227507583384766237963198407893877064562619113130038042842572178292910987730082472435959109893215774331871629236212485878078495715595028702250275972852827318193442207300485481175730994369867487805230066864237470510347503832595074753407698238129105038595082989307788929326546632770635523301260713024009338603315723187937831086438219322613695791942115771537408266054579898425042524114281194460398424132315845665730283944826949939208633754292312709807606236625846075976647997368400539405173171959824533949604961247758292578247660039757414277514001599291732613545432439490278605861093429340174612267563286743699672941654808971106031057954154692910805704187141027750733469978074497896902159681052468226888553555942935715193832323213524057502163452419597663326858027908723530828572656175525818609944312456177933665547878527990409028945160585091492235743542844966160044782850456323552047277974170349835427889591864836724139394962350571031079962655258694835785458446017623137076282103028555808473239854660565850998593036241315989037520218157319378956371784842477553772938700687530791393576426207321193830986722061177505682746037348420024381468448663292804795955752914333699309652860850262260602525327946305286402720565200515961952020341803292541158823260790624452795750110541042634217898648777217544971241141876009152294172668859700237775850039168976757698871309624139134424218724371243103789973819930346953554765433477748930383132246562034385507127912652057140403194189829004412380863797626867786706699603497284999237201865300156059959109008138793307089321361911719148571390825776999295309164429200634204375458647119942984569646107059158260770435684641575030043447809693977308972740394044832662600950632369663586743349870231491720547156692981250904647912383712281729452746117661359590352240995716658339201068595722783841366676865043824504808657651658863519861039626061989439528807581704935168852592205666815614899326720388105448181018410045440544936585016610313820419968047942429378415389797499665703688512902273453140602280092781551714915452826062147776566394540900150153853529522346750949466974744630599124017339701654153362049983779596158302752325258196055981240255088314584848279308715661785285482560089062354836835791952285399698859929088435409708347060885801642620924041078692199808914137017740112508132849218887922187652660548457235931432265815227556468755316509267009747252961354290427463888016200257905532401634256150500007465137128848524783005827599064882846665440660132561860405329740276617567159755029313711445892377008198968333604491878804321724954353148956857674816014569963497737549689170992717021088855466569977541217649710005509429899207682899724792252051190458770596944133750630386717176727002071487163282382730974198937847824276969342098439972716904779002156063461849362558599606452220894245805673700103622604623526225519150359787381118933921894866623654756377500552673464186071637133780684450261467904530861503748572692889056694015124280026657570035887452794508151096680128149426476367403239942522143380417326834404956406628100557502393923339358538237359004884812662201127954615647697142570820005844478877178061205614457903370506921532032092248560592013401292515549625709683568974181870271525119123472602197224215096307076932921675955104153421505496372861440232300627972870877854230071591655168638465298825334882471191324817785161093194385894088707146948411565286281939122257269379761699583516712166088389988234954325338519870312880895658769908875677419094689640979916432941375195255293194665224568792150251121226711765134957878112760798864948458226749290985825700581953533231924957048487497628038622705952843783936205229366987496264661816420258861116564804305290545260379544785626837443764844666465369851431049640336784393150866783414764172508994345524385033594493569460504490606640105910239470733464252822866289985466978982159668687205242576263587829667392957184260175056661026098841447595270258646006122455109071520017830011650086805678351445514910538719468191732176976104071328921239960070828890850003962357254335598869392289734163969838734062029170874087537159619388041376983967792186346493082490689186782798331944004646381506943292495221676898928244206654880383650135247257554927124933551831812458359704254452837204874073516915954994898149650999717950838259844232107341565577587158582380543443850152147374150416408559680935464149130387823719556292804810126641307973413604905003765561137960745086541809337770235247413896441512325279735338585674050938135504107004616948362929735033406005538123981234832078322841863078416742780158571250944906566358619348869249359719269088131814272837626546878507886563597221425821114114847682751166929083400753999490877026171427129417388665530761573410156486765426055193791242956442541615860647980292508743111654942754368112597063018174171227662954006027020764286040048330572322390076167646134530555586195311385251511117687358773408860085786308885697268045413951487673788121445072979439782961268043249330792085009308850404365544657494896841018106588663178077977792231399584137176344982252482625270425264941752136122679107430605023402182705897734016757713640395948534761447399537307572820209552877869755169734297786493965569006691594883278238691082387677191834760797350552421075152843312307017140391099423725738928071888311342375218819134107585251696987211005095727456342209014891371116865521758773840045184706543293996880857299027354669510133947642648670639431219722542140162816628079225842023455813970812847859308311337801354375461448210174532337665938791245416245235149937294983072431023746383796713237136690906991497248481956335539420193655559824831610138116133453039131895064726302613475521820315509745243065913834253931068251232244735901730082908803624942028303615158009232715847053838333017726360919585409753054738376151870845681355006586925135996645957842905867662458157709090534055958261479537779083787202836417942333629524283289092694349952334354949610012256511495071980141914245146018043664943672634606088321238879155422711533375077078832230570199653291143180832147844276608948380245514696221144803371856993041095112295841239356731471873628095532105180038768382996903841206412322067922568365405387666025333341847446815117827848967588177947927613614111283943938613034155545885301267302859492811964123339077854264579405920681593958149705417802929052310617472409491418245560413294813224147348781978057836149893077815828702287825646130571939625137644326084537787089602382994140256885704710938229596228754121556779806024980980510623089969998418829479448756227771586331065670210561380765829121431416442236635128681183331396959630044692715866350528269696268617342511497888086439266768893098728777140757468125443943251346193563241785090350046990550307155586990732072503659134389887474225287597133582223010465363516840748017005417603782291989947484887138537040272418717486388566976082756627840896937045530152878738687729447794902053344759775082476585612522494727853283383611986904220714143960109360169720094972712346026412332027734712937148780777325702293096406349185108786301745354072647115378612836621442154893666194708655831113134381673533289808628850863551099104039622013941684529012174732754406591076973289401072122999061449013557633043845900663272061230939975721653139128907359520658335591023611509895928264228093081128318748974574237384124294725107864232984860199803484741560158191017326657221872580670892698484995995397195659955323482236445457068926808861900437607519031143726429605567740292138500067366567843090858873102254734384318663062245170414310330076840951468436679683205033096045503919149614080643648662252776794835891000245087841573126575053103827696810533709796631068425302609426179528336980047456241153920807135192958432092954002243955897629679509386247952204337206149708832093909955625438978550845867382251180593565933208300087765132235167514660750231868272681794095333065225112142713887773193387813921272654238090081422527148602305451970678082081662590225273093956082168663646372490747439776004048397094641228833268545696727952487813387571764916097025293425700853685770733217954885803245552066975783820380164413376038290397121862772890530362024746907623231772340336407628394077279589458390364998049686227586346024851879290732005931822307739610300950043431258445089504368083130385723733398659101618000693828033432847338328260369689645713460083919605121158876192616228093571324323122121177144623543884955144780228710115629062310461681450285748759055168729447018837080221972348597301577693009287659833676931850936393836695680046187944548789090129704725032049704745298701775544806812037165370743893500562433474407394800153638772514018027489434110649157375816527414278400492151163181311206607610515051397546033100495950101972981776630832282208154359661736183819055104758961121362698262024476332581357982851193728303696371167585439899302105315276957434755317352332346262503676625716233291184145311451636223056257549611867901419453957927564641729305357069352381185525064059654353623135256606640200548277528919569650007479359206283033480484576729167324714828086384594056834672944160836878104456719312247217762289462008628977501292815330811986692892610502009599328869124925269794511810831109899345845585873434900404547612178485503412189355934488253419672579263487883533517877991337092663682331245923401717256242185665052047931679012368981178296391700015011248554005134492937086805407909910244052826183763026567969286992221181990859987416562379669655937007065055014551730277731173674919940123384260139413769954644869198997463830477288710192025659299471040090885594701359133963957121664090361194540953169206059672555631944942534038026527218474249078732490053092303040816880863411437211897066539104546914945294624218172043027541174916278719204021005897992959050691870783674786896357648605639163388661155789287880049669028182823806928244750944583976516167562456376149179120469496646943507184423666028029148327868142938973436161245242321252086590812512402475205561061810918385383424488854526882933224167091867271674478330685681137895156848255418657542265783815121189249714483130783715300704868438198058855832456275141512864781768288700690377259597158958143279092146692061627855325643293347363808347973897886211752557432953988674294215320582099896034526332573557820855448690111908679391838670707340812639301454693790702279724514579307120317296741269707525073486521636591746865441979649804616812551814217450247171799350631985734573216255651253924478696862694861402548396034422024894982439123491963479753083935945147681751147589341638315540372225625361774288659804314561848446011565300907786163763040785433501895307128453121669526048845753257687550266431797599339716409704057526358780934081722558272615508853077933892448429212090939779881651960242797886736050720955998130539897107179964570047215075379949860759956501372662879601945125396052171276006405086303932237160390117203319288207203751647804012774354723492509175712717523798902458357750848934262400891983036933931259591253014774353666592472265289075344150131796626438126267810018478044993246418761050297169825903799002464493948765832836732297062627566615345365908029654225749172075472401167853160829831717480803560557291180100328480895480207967090115630090113253290184274809189760347743530587976944130403388268792699490328519487674148024611094274670737831090327250156767566931629884400033582882455758136566637490135054070057216511441011478244149328081023773842528876092230689171195736160607797232522106116907140500082512772340434023213380149053549194621963849171383634549937274432655958856360567454830045613729096413696951777093853629828399255017548357673812663582819563960181870861084891151129128485211711696486142301578083947030386393468753137874151278506152662895728888486054438123700141310087787396403365710138862103352014666961322504356136602751388053245871334766693116320421178559794928923260527251949571149310656774129633838383252224406308600188884726869195957763478197902018094637708596440797864574896585421733756515700569538374129632157567146885997829996226465704853168200319265881122699847473562540389081814634316783746000597997602551611379036253160604445173684684539528626618543720165125764220352692210281589636806859932893912826509526468303889106315880389134420038598718434390585798869258184200856068678925181063770228212858666375425788248670106812338469624876888560853082083986954310473135852717353919805941486728700889707272214657254883086888745986993828418864957349001574403778039993653466592461086941339618959756040602009570498451323131318322606139771322756220504034614646098245829943331903687394400110426300755987212074739821366394547285386165328222136514252429331934481742827907027593519437839978997692957637909021271155201072700370296767526529933191771039525063339422662253967391194602693397827781901190287789687356281639785297797147857982365010442692501606768234187704917775525957293299592623832160615240902354148686070992403361772430311895179629160774533849754984619717418024272546311116033832325076414874899598608448271172068560498150494895399552169982318832291425405428799170525173920730008674434209853244162460941941379085493002791010634144340893054259279094338244983972590368648791372623635263441812794243302098446359321474752710057521395369795083509565053305614429528445706727901371600586909571417690821525079903698769548333324233341219480750840514189438319376493511773587408161224723548658383508907764528994472182165839211680593982826289114568679343471272123059865854522910447899940017079466972012976372069756076040931166252476944389775876901889141158277905526571353490546141489343277758257295146010264169585983300742196251129890621731801945408790156070755865391780510125278127159989433313605515731528877620787918202989498890823373002155305634341299463900518178036721716127343940623141369207139454571474442675727163553450848258313455335434638944504147747067718757595789072958915737522095511687465894932054094709111225567612780099829378140245782321421443138050429624570709445620364239454626537472481573700638387918404101485122450041204783213139479916466193614757227704758997068777684629552994326044147464133480929647548236525674091630489612049901374835757503391060416949542829204894499702353814474711897051475824866590819281488405382982434597061052835372663022907878096700137301947240355962083323591267432583540783822491658304044725977275946729420047501756687699422976961455237629356565680542629673657988742041846107988634759820589716235822610677819148908393737127089249655555436106815599097635644014577322612592351804715144967910220187204484134075852772179314351158970300893478641988974387314113017302773593673713721333196921309919820993907514357760087391225387166455967247374812279189494374661381424486710828743836437331189617516938434776436357224594109475690042449257613287981749653010112747108723233120776650868956064292100258222986034368554975052933712724425983477653477798463521724477416554848073653537457000418326126476343623727246692559773728543401238894244024285401554010270296265154903936022828087451465624772402328543461538644058429790740753024569809900567919576260461874986234379909406570857642211826437903248069588115875536520644765696312450446309286376178640863962535415341772237586052676076572139194314303304030378816642871936606083974312356153137152646831111444952173611924821559320691744027297500781453313266060515792514726472043566203199019580884538794442057178009226450579590814700612734112792768630700030822596998437454412769075499821387534996839018967218557107124927239571510408286421848982183075059436847518251435654890706134047295909159354577381107807802556242378668888651224632670419067472800642577247486974819419881695881704720792922179585458235533873596363620048541521581173267095700492424611253811428256895703534741711719767681530928227925756614773263650624981317585476026605420075241469801931273583322973198215080800014614440028536107325226399519816187805853340803539082120499162197043779131863141529191385906910852531498841892849056564235690860361449371086024081789584234260845416457014874932542925617913594202507401006904304140886815337406757694786425403952991913229043611351487971704075232982864662687313658672886968322830981772288708558442094293249664578736049556443749754272767628572207182387036984669411867375729939802711541247919621843449290918172427201494013998733017119194530249684934243684341021724561584325839355270540237467112156236660029741702675569958074673407406525600400566879279216427375527301070358875473072246245304001505075895080742730851315933419080671629610320504192564306977938368325637689895985882647785556411002499665374766514620693214549255748963941023152720554079017856308736189172345526653487894135271719197804249784809490109078063425805855417104533587697855330190346399110485237469790282023229062660107586222840478045958131610631025876524306887149528782978456117830642093985837010819394569853065847936179144430578097476740845268522822875626042105997988791408395588772535087839000695531776020229707061010910358084267550780084174576969022798639288692629168267181369710272343915131495179201997689331427490253692334750106965094145276978633170944970844571564225097150608969963383850596998376729795867931246580220613568268381239618782116907727872679877232735145565761211093804101991940285113053478622600294196748761825181241009959144725941684230069009372081159793261244043265516674150451829076393776962918833388158066658636616546599101346391267384949845711659262834729789418786945587410438808730271733051510808468871742772989086318524568794564964479482728716749545780026696029429245082499596086765530349295029392354605906309938992881552996485269197735437304642844212427953156740688661509988648095063762412082731588736192295517579574624021972930678043157533086002373587607137383617113782546712716685005282307759468410807314625770605365315934403253156596139724335858877578602419498870547719998738889943253646546951505432754533605971543701908212926413530520352541501804377922478497772107867953173486540249177767141890294343397885552130765806016585853563261299519780859069081106729770880291329447791080398520615636653222215034358446124863599309212571298548561966016017602811664705062225127845590878690046765424582072575016589934904830026618972707394792332048609198129561902740421220447714810968212832967959341915232001474514892142006150314166021951416596129896601391568881954002478334337071301997056626771590778236130657349706412773265795094022032164117690509210211388379241574974198792404626684010345618487207067932601433019442187728902978077111667462511856360101147863385144064747303883128727798892113766059795685842822516286037814920772880555804564511435680638795570264270303268115953954929076584261254940738288955069345104669988154825141584227063024924527693698326742036947898050168919835377774896338439999752917982399905690242358159273731060816049845191011204723526392128498255600472976499469187986085412605075984109954308116055061382309623033847646934440820848685933842949075843088792164075595260573201043600177802150849164240610427139293383210803590188346207819780046365598016158663933621175666073857261727135216971452917211965012451139921721693930623598947850992810271296197125690491960092538509122781439191594805333123592631733774674903657839505151140140812527225357014055711817188865917091367029519853718801257802879286826792290941149838898825903181917852776765976560231010319027705511642344131189179207107926633516037868120803749942154173405541656781967696669111397313482431833098784309716762354439722234366307213502671150342800367737587494344566186465732534648936432971047660010938116087010332681058978907453481016454011489509379003471943274198961590043395228151368033634477399858762631552305048349602792089496176567146020016958166488159148205629988859423614544366444146807521991726469430700719596209332950174511643505018274683452443944714733042983951396261775327259695320513130230153447290381765480494786716287650258872461841243434026378611441919491533248173430985374709164262012860097997284820573358760144517525463054779420960946290321934024500614457428327942968204974414584183214717746048705319857418274946743428315174347549027793300305463524211822707839929982326198660319541881268425958468697863554514283882938132174818611490627180128152295978467014348484775318259155297097766878612632710489531854373679951252615621635336099948162282717916593870929980205368107470905957203235185226599518508416128277776700935778705775361632509901075769569562936749825208311922379232626262519039071482546196882970703502556555536632948911976876993534576723492294407784297844659760158603940621810868590275429427091430276291884360113202336346220221276749052079934101213700589616671055562889757698118714813598889019605471535218485180279211238899141409291156405638202824359025894091583290253261375775937253952903032166748403737551328785546114894958809414018218972750759857950578541857247782953064315663603708898891446784198840185875207931160930557925376390066889975543520388674638069814289506685019041428282368230051353269813705052186695278230956804149480752828683372882383607732917579129047852052791992707108786282076623405868007511694607200155648030597022990286659372053558383639159673079467549240686944069978714990618766608121670672554510803508066315118064619883702363215019405123221034753317726476482482147117519366403381214163912580488748652918728610673910905763982756789111825350918664516771291990752205380678272612599772962208762400930031162865515744364632044530099792445160921458756586893618716112064425369057960884332780447140466972185560615712900350131375454381410496427351266309074801368037977915645796694899942111639740325166004687582430431192848222714940741117789757969685531323113766213729322377890461545918472129437522621267430593619748940381035166043141334121611695924444651942672267014998585121758069034114046865587819028188902981311595578420575407997316566512293151799619134243523852267319454302188078773071562259398298504579608050988547387346636690696140279583012669506412288878265084618497698401294918857586313083753043240552268876234834075370748537760840868345880124706314127307580781743951680561832411224879593835126687485910827833783431544252972281593025633095106216225705989820768034172474738555640398301606901650623445223603378799060793894493891579887068752578629280008716110872211913097708764102979112597282105394016131201802418533210046377170158829591545431071613199844139833550361555112752723979638623754051243147682958290097446201835955633509142121573526076911114257004966922588206095440735944929143179168980879644578338517956217436855898148492991772569467065821841673725335350582405907819462854094455328452006245550666693759961681289248179080013819508598176866969401242830889540658426450966229060560352551270191449751038238422395600937223085796487503551002434570708856755153466161078554289342522947801391393825087073298027171066299293408427566681547159689609908383291244775013980226037493017381417552391586133761382477345288091718495470103636909048467724258603561528958741749222720696982719784097774241122160123900810378639903253912203887695273759727031304506399505317993979049088741443818929549402698867552571600531985595005899382903760817683522134939233579119065652138491390933003700949970657750314905998867983014163219701915405884012796628221904578090039145004503332138814658809281981616264686472670927212172500987860218812677713559131524031368547183660600436623825475617993205767002036172591663637222811773403177263745862288436902978597227581821783983437971982141416262363006487805665443733586231084125749364273766131381674790425480132657565888742723025229309765217097542036249902783547963625608814557075600968587373770308923232678604235220315696746777750524046249706652139303417175740515518484624987860701571543878454354210191081476729222916113378803269735133850919600057870815164978731979842776458691077735189174758589205970621389783093184502004609206346540069311550397704622091199130134169341668269730091640914412541314989903658578801754883249748339741392676396627363797834612868605754004932861577370879497403401186715950610154474244075642944314593568009617028054054884201097767579733103917522633965937824212488784406966990623107003008326933030167784584900303605868364698017494527947008755635676568911151387005985192007901764848566908453468894086521676200107915389455361229899516573588228593263689313627362664216088154219629586808853242011711451838583844367876524495216481405643699071927932083333855473456893906250029129154522471637466133252958684401586572497883919972390732789356842457491795336930009494625666153319505259215140179627045693001336667906203659819064671788159091033808562594129438365969019484990494130566022212921768993482745056048721294885425344471666873124230842298223394819736183867552300053410891651921109064339982333316508170467192523013669012023419830281807264392787701666153433925176832656842202767082907134650624148762634462064017744065171583394902446233844187576333082464317302713659742982581583855238309595155290985784478249293252495904187364653026526260905139768818992180836843547117443092019423803560728419311015287639859605325083132733153830456197054092678944433590197895481540530849303874537894400157828445786856293699750871469761874176927839476796148409198454719147110579161227995478791739577314145643999403941505803268741821964246762016696741593918243058918612659041186507806156545154910923175452992189157242510816443852771908774492978858478885692923174903793269888312887813815387530067259358784299505833347756826511317977315153032204968644066075873019964479048868126707849309030787164313468325928528304301477039831665714368993872022816443570240409245749410431875015894809155793360222332973907261389656603687722921046211374025522073506598649034385605034750943643915210761392999503060960630552184669918218259056830509777499369187364287099169460615311281226867756994587861618653223097457278612555369890206150920534637429352626669226003518852418594803247488666185794039944088389406793753125268557982643869931642989504015006264767486678178091191463501223527560752781457796741200465940570255450065460401777478215145210052870645083118349434314323473839964110799224218163549973299251889372290123230597726979349935738463899481490455310343085644163408348758880380353482725378285227170429325488646290505021934032680586810607809202738531077504981193899692698663312553523956221692955798798031484154483588753307780982489521989580545178886352728978762013733469902248624826463906540664356197048890730009878230493562173112951133718650348768795630811838851785182224439005429400319737703342817190964233615371424613073868064922534412189872083531019267309053964995707873124891887289588767726707481104351188789503848333939556349394482810548690310968336444224904589646719101066330456639845213535200944110227874127150732592062927588543209879239445616784017919045073439545244686957531541737734955686726020895195565312281961084953963876352025213669532045940472291435464533176438549553258336662386096942207601140409123858309165509078091687993163485748705126320646886729880747715399979807689641541080122460250862546346293812300349761411666475402502058920569727118833534475023811262761286619329007957558932550722099318021428463594165602326779405126476882395163276677508600886587657131872968321031304115856659225261286150178457749919178693040468924060214985697896062062740525066272448727899970065342301716385953831795159110936201822790366939001087460562840861811591044611823614241023586862337217703169020895785692022357660423973287139303111716132366435744938871951915508183152682174394951960883894203304860753594794495618238258719210941086698982176829685549047285544762819200226761012399482297649683385066847609304457224550507245043520031291077415269604408306026255587680978295184798749696284834105083641768847286171344681762500882132341674048182952148583256238546944710663673206478044930921103845281573265219019826962109628717697750061645873206857710421303077049973872455336293003561338931928636905716454223721640948923444357069440121590309675117420039546702930078674915344220387124000270601031324915157986654748045115066242473503817289337249340698605201765934565669960632548115179895586407642678541421901518450166969381426263388712316995012613443397494165654125739178419797613140131432567232058998230456441884814574717060676664319458068711843001100571695102700102863368145962676669782032063981808209279803307570139738639732037890878637659246826849790476290061462570653998796598797344905791812122891015755982141351404859612597039177610745520679811136327024671942710051134056265178684870436595231569383767689920020872605084828418605465989266169448255667006358624868084385828791610396935555992068112460217339809187128871541676472305384677622428832046484795792704826173255896866774633367321317497030043612878654931620213100694710330878713467084036593940405077124685243326104506659664650691238215605771733405448444768726605685133820929208838927178483528406012460732420973407103621039967742765986744624843961349098288973655598868377826315653715863534105435391407746999094340764599261896712492918698485614918942383398709046056493354826134910588780235197931656719076881729147155573964176246594653951836238721643321118127657426206009136563200688648537873333610732391490412940598666821856176299750639973576470064689844006833696275268753265631633325374843997233586450482395120016927834408921680375063833182089341065482884720723101636947289009178448150055955577444710837049732479541280175918622657015145491681403381408493716205697391874789380884520352671215463405390868422335873304653831752394062420432458018038207602763836706240919150647336720004637806918928666754065663749327250708270282538315186844697739103028748851226153326408192441569777884303654484682449887385313439033181907395017481848435924415368427239825582845865734777729173718252930678630357926400328104113988363020951281232404204073302425166073260728783641197429934628233253295659582198890886339411207964112647721713047722320879222777942572250883814031969046519006100444905389512545016455706769037408692712288945266284591093334933550811892880839153760285672182851744082441459769307699086497821998149329730511922421767972154911864889619049243507335037766445682121002846806678610225623671839154712846340182685009828733710182232415674955761308053356228300398568111915749041228761880318497554862717546048837645217676884204800988482683982280049745720578719987559749554068267357950670574521979405847239427763995594502670362045319601778100609666610023739167016682340716894355598090830946735100798223486683829681096784585069263081780852285152415030556782765097380007583708762294426097617639046816520254285216327526727420757746578374825684300250900899382116858106316947670239024922832767978390987942508398604597386257652036137819213655088177739388693915252628321850492200147999675647557145366195261194892783738040144951471467076064776593035288586838265682997982050714494057604690134734022675374306264638711038369608869287749622477818759214505531389086116358863409165737098348446393210403565593905196547973022765092074140345671235649365137399325983102228648543989542013726500036632074734204748954629868048279041227656414784753299246294938253433652289992827573620772129558103005299043836534106471271683699710805741488638844087973945468981148015190564309814503824905190175952795352805720377120983282020215814463318819567817233866288302656351827638343595523525540089992297433482472673270379709030578446077715819140285906738239891270851108704816109538158858157031938734703281853098615463893845434289677095452270194351965875026538392492278844094811735296147808555416599198102661570958817063526133917429222072783330206783086312381759327853211013528428484271518267163346097360522865118789477810020569245121500265157370465309104513510323697276714680099371377607650671783180390343850402843754519373492149303738378209946407150784299148490625047571602825565192663889192027616260104470999003972625904516555769263089118106590011788146213713794526381651321857191541692148754440707139180339338848695190259619249566789189728849630969923081655106216781684135534630565264814585069144386201961057546739257064639898648587466102681710100263708207915831262357502419988631937607156222744017972740109124102874917089734480302515371261721564570649995992105743456990977629472778072945132947867711926773597452470536385935477390763789570337576985984911214334912832478031562163025804322019987593272697739414436918430947373840903638313788732725653499253169812582822104098413111906865694919809526041439536119956074567348321451502584414954999810716718885950386107692007853169036105238727718656244291175871033264092943925421449611359092744200995963084849627662803286282121612340592888726330866162504908515249050624874257410710744415222234109981966816743001592697328813070111637917873711389237458909781645720529856465638586547935973131824740456113766426604165563563039059417880782429406130258602401623691884443970309929339151375599638776872026002474968556102513137839513652759677635451510777073039261533302244622375232330290704368670413160559661543525316489100471914863968920880654917884371526277060026002707088212688716990691650839210154507420238729406797417986236873571705688267962842798267203590236074548124398878162301688570744241258961945664335646516158507259064580058461159458023345967880342020576525036635237791143053360290192556982747777264370605847380027535010617898491928297968597984431519552413830433002992847734962287493116553908448675116470484125685424850470022710199603930691059413512842712461188821628497841821217515334300616521685082965661360381465150466059314759327538871854708506409015252104539386199926717031059178086416802093423901885670417232158827155263777144333485854013329136972177586992019522487601114244968834183442803779853549382473802075348777029239183188701997211725402696845580116357315802608902998553073701168488486471894618015499609008246399141134115546865654611061139354747647693495141341293972953509779229472930202119298086664951399940823972727376899296104830281016589069457942892416850026546277882669850922116236861001211832753672701290087265751232239105096305842799369141168455734890458913065441757288180005733214098628854895763962312973866604269509855530986258061261081486836103135322041845249146902177287033754435053575794729174273491502491986606637181583035899176820119763477954633704949388315238756342663068325558242962288210810779368179717510031091688696926455290331271177156069592449284753895795001795154057722604954019548326772262304048441273622277926162476996684552411337404040570432463986270928969344826185711554697988235956546666397048026663984001962902122955127126821448833821277326020264386538323944740625128969095129966101158342191779918783315493376996685750690301684720408463869917176282639107832765476198043817112972294461955023655999274462333827905965685907356677852324773339598497150346189634195740875917515485266074159933609996906815509349744053922908382802513776463860710953118773994692115206738317338306740430244927823342451062648650720545853238436410915359006847918114503570432732014022419953231492102813586210152702578226512553830423614048412021868227354133320624672623317535107850599304494738951041527330577726273391072165798991661663507409863607861639024001864706979797698152053836347379518755009998849251616469686372589086725204950564026962250580189082367667315576182503949086281515362612403966756742166116356766495389600490657659011590144442927226238192673697891581308115227217507875718763285531347722710239801411372880894037931692691457594610104045896913169955422613821479865206317778633279942773638239689285754632121859303460416518451947476149304681912225249867781720286344105405648575113355335196669288269583410478457787145474707260664778406158118011507481147685820354303888509196725918784368505305615747283246105851596262084758919648839115864731497024089978909993546986251789079978777263132777863406414980545006230566381543891612815799583326486214758294499374892946084517549639014545957917561694403010947339307346659028457877776871566734822221625307367004387332325654221915316994758844363447229828056598414745274775959003229386405419838163315021296107631401964161281855391214155631906842046769804290158392774578893208835270814986384502776620946454349531499489692566316013469089293481371834795664022145052980000788986794930634946651674260064674971850554045220395920779269000637683260239931698225549846225636965808454485873799946165641380261840920507444091250775530131647497648088661048859309849770239178488690463708801994193390939583062817615987596719488185194359212731095342270408796456671561796982972146662820454427915515288102546090483946539519294222590349093369877689773162687437918517215121417974290840577161600734312184786860377060044106366633927695544822095378698217375442376624741086107981420671529893321096214151514370831042605861099402565709829195694935383996225667947859653348009223575557086791738650004897875839029911884591919193866006543292372657618076031906485284300668768334031040539682411873827946440968254343576811708370261229993483139168152968556410315177567235477091641213223827609479037410472159859737222679969049867589371890595972725080546966126443911804617841624401231130697082767328413532595373153575033669821717688840182908147987741579822641581767371496387194084120428737219423763629876340658165967789779391474304937236066660073969219553766301589419906189318600730253067559669588084665106833092150747132867840382904994736300750698356494050380917056976601623651060723389022115412190321077473695197032891919885629181172663315272235039205420515952791689985856243715459192453736658513170010299507377033994134112514243266297428633863218135683425731286001191161859015697421544539322172087644165503997366445683365125162225575774714773365124280382972217133959821083912670494075260629474882722847398432665492011617548304770269656353446783866462186790563658923861751384650958143481851929668530158793246078407316771634733729076355191204906849757282816513866546703061288557435487062322435863830133233492463913354782814205263905398632134116131527093738250730800088004740936990928106885361025843522872506165160231896832437572671188859851671361246103771614011160739835589987560823877773529261009185654085115395572219996435613017947407559510479664495157093713536849514814408534877618638479004439272179111967961331064440453808371627638814712183117138990806670879255277584171269812934655136063123882197240653143494062873803597333748465550862915046250447572786816475548601589461064985391876284849060717555824734087242761601597609652494658737531194727647608207480450454184781010185138902998872801754565653019547754953641129914672430355005228732917153837839395894995167507918573962195241458930404297153675412874297497547095929373537025160793690452034117905631551470997745567985924500452177684929387426393320966192568649597690668516999908741747136625125913745089016250188108903500028245736056579276934599125415926459822423826507126825547491339427319980015520729987522938223169180286870834650082578917537246534406068834889355894628261874463612618510875213636968237457518238550651565070641203446302887830870556270019264854898485505392819364154639569429980539925997200110053131250010221143651319142683259786864960402104483163645689826132525846687199770418052380769326823745137700045401923907691869707973022808897063219658803773034068413675336520420649974986301322047025906785961887074539023678719208252447658958885864797028793529017839138234426090897222353201384666051200262487743918131403851601250232410714671352195272970041728469074522516199160349330813903885169608922285469650571493542562225763399822604918692987557190437698231181017691704305083948216520384835009497315432493462295554677134656636273453835827924939949824549369187722428728443093303819237253151679752041843824061427549824285001187567459873806638607921727627991143580164676495330571838689789527247135851215361430917322674317492411105527276302272636871592135838535557531838488667362324084372891278000773744411835282928126443594499502996772951693234588730042417812780518669702462518926689346343884532343571329142879986303767694118807824787482397509335820617443929459602034163993709841694267869713930317642149835995003647992462618085282815712444343321698044829446834275600614986482979862373424776442805427003435463157464565975951058677731914210164892162518484931862970653033566710154360860807526176235720798960873236290876822337843483110960431078817566763961718768466507398039837529804437017251958446883742226415542770453295868625992519602011352630810701440204667895370761076651868954031880974464275152041922841976828428552479597260429199597925003535505662510452054533546578674643537820835982648166095548683315088626199825707111360940402548201885168911272755535033399865043694857716176978210698840484988541161212819275449035725938105242389575667910991962733018068889272863985321679894688395350611651421125935218637680176492599874961205634730872687793518492005806487009761327459667992895843568669873980015476644925234475682018494745270144344546481819037181629329211342750977205954061122218448457852034125707282450877303124846568238774701794908445413914237299639671453819863980220864894804175580202496122469659781927314339846193786578249250582018547678288979096331473394642263222061330752604623515359353494892570635772209283172487911996234013425692092714375822801417721957887314758257340328832991020973141730182359755496155957928817865619500600310070608277729348913720810119235374086916138905545268538703071430524634950510442758480819201164442595690267454537857680362592357561811579626727902139642344807836397755409462763057212503045041694848623960301504561958543906029800893641711766731616727856835833229102070332987725993904796899695411776965676791386635183340951275738201995123758484321388771527470201092630706540822642671204436680709313601484867399587600499079710857753349646683672128477308674768768749845580732436836814149301371810278654203208936980406417029726541440507697221440679335828431548598060365245633358443514870942564571932609724216300713932961639400737803024805962864241358255390092807498525659830117511427721272438906120015369980928698445472273264831263216175757854564740383331657512322727334467954848926590494887805346350441823282047016332445810243602801330739971514842116789079946537614100100412885420092421957276892010141110702751157203067729619629166489556938220024817954696353384160666884050041966230214012913478531093749997429753910904719583311702515156490023271231175164372123231574223852015265382128444430812262353888681004084964616726736172700077676457509301315890596568748297875364302952414726876716096581660306218683276701914583822358021540213340259475258118250651570681259457026548287762445716050422307961657221689133123406904861423714445966276907074825734637929427234815221041860508012812029780243120850593889607580718089208654626123135604942967046064117800848784293859205963391075497157323611754957926422123660750524932807792347585860784980284355479286447900122662349017318208147510202469771277670490493623565822640472995194214163476478856449606438969016890683049399199197583101645273304092055022226017374544442445744872230662175526112145666864600442303607562769463497744916430334364864097161242431168893104011931122701082245584296143391128878275591871724498405673572253044989651995669708054609927997643137503059719927872893817879095625336191274216160889469667539182643054388655995741676425801043285637832777020802209421783138634042642776739724106665975984487641912310947689347851700553819174226772291137590367567642533136407697548737940111099180227393463164446410722188700186573198540751473891613597885131968339984644590996793599039055549897361683890028305875722231681006837652033225906063209268464874712746491060895005930538027508558566750107730768325850947120873427366836054799001836328810338868945628169241038080065590703747741964958161151740451894419417076942590864206696564659114933625048268816939008580806982454389695424695375999577105462235005014308154733493394352405271446169243056283025324189614330526665478299328858336627000720749252445982373389223151208068096351180023232854676157522288014507482192630543939724589422058623745247667662573257589231764855412552516229245330616411696310120589717207226141045646305949788513505543170990738855868177869702473591511215041884677254650761462586261127740006459691461689150505113943353005742774855828447663186719335546504013139111306585759400299278001902481138196672373861599823143814226150074765143246343035490855750810376758890529931553964082088645821147614434487339303126648921514768304609422957178887659806046843551824492897314356418486129217960583148759403287496348191510840429087548460349451032379684018135284209365884952875556591679231985531773185546356582642087476847272419938592482308599851970873498769247828249908532694272078541943612255406500291915035248283775683261638856065274471049396458697300361658184375098319660229770283310573341567415389358545529449171600415986970231001024768376024317344920355409143960880080630257995197822597812938693340539296834333567922072178037864339123860434680424410169585418602479844303325412215804171533442916500732154715616594436606249381628516998338602581554450289684356330796358574881178916975212642832252900212938005045588874723475450472713329481483519456834884823917044587348529840624268141430004271523241170954102822759077123397092360146024810435458424820935052427597572358828152833911072652287181330081546895353925428649640141676013996481993527806722998905212882082264252817794556760129995429458972994688297306745200582494509767985627886684725374072877659686245895795963511890465242367669714553756436144850315940270939424674487781421594948734236740610225852089097066108302741782380408093474996831517816943228406825856588414901656894265918356900441175034922245169108736837135178232778849446499469538850020371522148191048175657526921266302756555606248072137314663455687142410554523275549002767749170398904096708232690625713761335200240141900547880481918085699357039154691130514053779002176683287797136138487921716443308153999390939729510050672138130716169448381245035997292336060613149578979244026797998628361158260924208497550244078224105993239735387894682076738560233105752909049133808306507565613982926050295458709066966675634060477846373853049979823939769376797628198830208500952239167983993523892812294005541798063131524311588977969318882619480801706675908357024864678325960460134224552191667974833562172337771070243906923219303070593527969053477343897927374282680107942961453296410407190522900215899704356657491148241002751070703763390085959211013784416504042463947948018437806044549162553898464692475295349817317705982721477976994775625040824621761897428489056308885006367249049353517737727015115430425331988313702210384031339755030153585632147026735272773110850406602987738238204849874771054957556944339621143241147886606119610912559179264642686325367471977203502880521767219790199162436653697825650713579275671467932788683498890134696966212260458997679759066345237795134422166890591242321424968380284984534842533422788271590216011104317262178108179423412921632917280302593830214836285853476727945304394740926429125183465357866302537551577422273729479886851820456593691239408712756975755135181351510014297498199069324159413088588455448418832037582978341506793526514199836919647492011385492352183225746430266891486324310408981682722602735426723997012957829282241862531375918778184239448592370141088971430931817838142850544678017918122806651273790279691982934888972530849472819426129002370582301876727374875222279918443521440219945621301379150228266398477846189833415921028958464676343419833861260960207605062967007514865333718874064576210339446314666088079625115825640444262794234030059497519016036761055469106985937922617572369201457006577068703750690926605904885665051055385707648020257029945437029709033689180304334862603416070801536498668040736082824566243426116523270863036327916396863155727746137229264670419097557480795966116343182158086944790012568628490144768112258795327715239770960261603242707232975069502736319962379923421876831949745988969909205811889239134876653955231390702827312079074237613559726469407238110575962121554007262052161503712817255141124735571334476896473528063885968868534864829053843338627076297743764599854461376734811581974647552898971775268226183607906738742483211834230412112275875427678870360790041618436891703633331188135669812953925560229332560149429513059932952258814240783988893695877466745187818217961407482203342712202828624510446316443319172070856631516170859722946846791320542928041423686956805673653425451865378909550503945701388251063524742173797599137092704029797908349230503065566655807203963617687718839322005562631174749898130326304593189394222428716509605600360476426170607066544705846930432811236733055345547428588133076228647668564493680704569427245158736271096520406627804717776075959903181653369079631227140944833010984491512473511950393196763107349927284662030603272247210040404573163040555270794711478936779928952489209620646418000370121674458342255352034307607563851502201666874675869709057185412565360830160439885328550414200382917774641336551565430444707451657410685699906399194376763955519480421569881569101407877267836983559151027103818310719875291017671485867262811940700898561693365946297360962063799333181366706075109575304795235953504751581131530637179501368725433783104032668688621831340642741261142013733937997026996516316557199401173225186072609747778408822832879204773308254240225452605399857903444375521136776677279285831132411520156427706976220181294222199068858308194586394126950443777098753383538163983117207266313701229213656092255704141161645232733851799254189401279412019402772902863274903641863004117625966334819285876886500506316637302658050657517638951554521386069955087469214508019168033698922874926165034154186959896856325291450569805512403914265723948058306209677401974081124443817332359732160297151241860833820978947226240287856006221771762813278564662769538437884423695901028419094226661561515301789472066931929816268843222387495061604210289053544210632831237818014359496939404075865334885334908055789150702892780023572081074201108642580340310380287007854707633215174078965625071827879147544089529377135339142375091396671346760884293593180784761546846823270564204762211737521049981817286356894537655378007853386589671363873832921583562277032222849462062231018107938157900808077099512143145277436284770282249155736579780707486417119689767410327463580419509491477643447279361603900811105353856302474004116149659984457340893111913753312892758539040019878519506480586030602717199981418409978194555506503573550181115448871858350873216879770137466244699074485845147346896161000729818793716221204633755913697625616701387536709930229287125871172580449656212233562278337917425076584805638151150038512860778723405247754513710579417498042987971138053351804959834220653388670182955203946324969634715591075036156652501754048961182499730567317374237556147674863268238599771307980669304543275519967479374077185311848242034712917263981073119787958789907575471035099620474934284242136995443029661214525096629219302663212098352785816212425546405537544728321741910764177704454348256621551277679267502149429158058558459226708367583965210381136519286108112495754520610666439328920220392894366580858773160810037686745294748849878728519415250003553682637415826953247961036065584003473397966166027776363310705417980742694977171846762827934187683252756643320735276577673256300840590483668348478953492908934085159940018776149979329986906147678973367377514747634362430903414788203062759745967428972068392237037076334274420542927054618908107341031969847747331130922868602630836062132248297899172280962561122121954327125758108184587684573862765228541477559133035718598609684358591218244749396240491356505747438071741559727682456070904091048912818817365335006105989540865370798068858091359780636434442487624331548114113742202084565902187512510001240762443832249030171983134236064476504100221502328015584855437986969068210551323051916051881899152440271003957285830663056194662378073178099297027083519348003747566828999856277517969775608781605418530421010976128232360938176682956962408506119741875298427698386701100503682856050104130116932624668414210072239646048216136764610058689444160060685571490891114084278038733364341594429434735694127335323030086821701270536182461742580204358093368683463952942168700966944660192850751693974100545930059189125537678196813097027209746596320389537641505434432150362242571508178148617051284683642725883498539562331194597123458328467001719268174933559712700391079308700983006083159495901136402935711889119321995809290687699638033530018305098790270782092547181598047812418997066948275876878584281441240667303183122207747373345873079996487163296221558714092244945408861977262072180853809491302157239181718562182189448914230627484665238318380662690002048788387376613293746141013688523336440591827487845451178780116555721439575493562198031186960601824868301952077574075406993534167543714362409793338203137837853322889963710961538802701218425034376032532479717956380454896404818373227410680792089269056887340059293583612619228412000103104374732979956299971115575026782532880660747819648753223072169378890155721516403618948998285295898724447546697346223378110785683967352736718197037508515211102726674496766401819201057014475428326262981344835207834207532821714188924395828337033047194147346813998125463194363417792057898015428146226920791250704369884456968500331232300898221204164044021758362878541169100153938612107102429061554278175004049954330523442621788875366197977953560332788822449580083824343914884990384031957586223709292544770240496261928201078424097254538317699180270424473933330938781060047631149519404184887479908013038158105872005327151139008416859497116892173815930581857212827833133860345185450281265730402954947330620768442644577083228496341564679567666229154264160744752457384137754349706656782012525846847296369957054634817405748980364490935526863085069629638213038152236303785181692027738055425256505957970301598575011372258488137237932015511337729565143783450530463731409501026870988865499758032565624707861738302726021652084556067097941401635879277994283047893421698566344310611540822443451650909495750425790986709812777176034077302376870505412553407315477974230416052561549010643749708539340537606409809480641145833504163232150114771137865079221082421541195031715367698521625841645055360959904748452020058336081660678265581954889113067329595130992202676989876389052978318257595417346669583459789441570627149215970205395078892197982939303426826809047646689451545641958166469806014797335122159068550982465936936547146683219656423338117611426283756977966713143980249990788535190399298194281547398489369948271259250461653657191832537916968148710520167795440860171934518707575956233583013443684552771953716420077945498150795318853634615608622050735666503403150069504863943263339815629742198748259656239535007808194574930557263448196422914604032228363343322911931943185423321091597969408991847636821828621540612366344232327366019707885334828433633615430072435341091509127918727327537191142301028327197579333629622145752844659356588397347954752735460684882015856245713696200585210644794054579873771410569526518878117988833475790251201249320961054771945576311049462992280271986323673093062007915275832965176466876520377388290284962252105573962249880747837065537183895528528679506739205162802460185595678079714781264636219688735597058655207123019715949929219497368101858639108640876031957387621451246404892233853686706777818104316148747698781314178886518778257782967671136063120393168819859558582575651100591140577416709500493070804779046820563923414915872043916833419376141908397995171541010606415840279560324039852643032726942522440604364272460965086004777805768181756872516571206194925569008179746614776227957376277112385225515253292624214417039941122631402796775437201963130132256195197795096955359418019876367689095623744356680355918603613204836266924240768286168499526565262051976977879392625836322268415435441496699793072444855740847429531121715001386217827736841723232979704508458951587969851524046168285806543137600390344882489824701002004363810443907138529324093374915750669177000384308518784827943868371291795247119339200501253245640098329084498662453049693981146699323279891844158958946001699658041365636293326728204077554153623029496334452749278610870173363906237977337460428403398882924463615664959085891673639566779629621283909425962246933881382621664162194098532478850075466414691111666837349979770449641556295831066706081916257113000638177419114530418931165029911452871213122478403667576392373861590060168905393916112989757209671136857877897018586004301658314597619814547077018338777086607798128080204352744312667391804059613703353561549717828061075173844491415064081026727636201622122090078229518036806090439029875723172095874450531352921864938115580154307645665928506156802992421658833933710026855154556414793741628894134141906162233383618535005676327670299444878224175230051716982846145301387889218138250467747644425372439579728874435414802371899900617010207778455551006553307872475631716031740645684825329876419324640109806374547725581824583166468872839388479097611625929010476366250245223630251904034951966253214983497203734803149228611441022656540179334810289251795915251626546896064360308566028325600081946497865012431918395987190338154529574561918779740218416920113109917079420779762506957783869357661437439069595981585434091174300112028429584466390559062035907115894020155508845582274539070279087469012501962006949249237477708742386870874218565570400955050358575086702772515736705495349780110647516830656413139534648881716406111047183625010719573613870673691175928944048531930156726548012558050253769468374527111349322388381509517240053672962209103476241579724101456350875803217860007342275102203592615202934855960043141925313292375801004212607457890052039640345668695582936950349096446426904833546872955407213025624992176160345699060578269792109083236882450208330243468190013150841758265702793336241462187619495542936898834203437409269925219180936748913212659312937247045544160812466593393704310668636425208716861540606243631731058612155639430430091399703119721662733018263823555955662323719143872683601939979712256239636801031046292587369195834736209670258712136202936171267859240943162561865646990240075161695672365378085731909011956284330684513697166140120173052084757318484897269727814498924632937520945533171443031130262514568896722000752202479641312924857251271355436288665953995560988174185878006225217692181238801962757014583999293348499696447826519886228751948748861730081176528758940019718289504520573008406942557543899120306597995241373190908345860694774266639863191567815722791945322182756893908026331698238447950914325837559735113439950734612605921515625070185754795020782684152198301012907913857520942808565007147342398561107455076251696964191931961030131442372617367878571717771569469584595136559537711225141250801883709985532090527650297802416217999338418014395220572710803340412988726395018032859192934950989383183697627776264052063963175640945293604055740528419715571671098998565096259244877795951672790322989399740565820374116967308134718198054595180495233719245117185461858398030237775662555087714291636374290790058200229921815572530797372444919247230042941595576378832868118225111810201066026121839550536593675387796994404364397129493950722176579044645223218381831109913055282765839087917797364223914179243478283903162665873521373701664919681456682168906809280989675027259217429027629179753179938323785494712863661814449789471761621731680731415296809843685109920677769634834303318919476225005664062096538965390389501603759390595505661045415762817908313930298198237930959486058637672774778972647898651714283165963567293803523454045996163542602882039801135159568653307272078955954754338810794149905864411154670072834093916624312691718294396524185433013736531715489751931224668896560524979697254748318090366322627743381601735755287967764388582922493876840772913715013833310972352371402599346576241373350419916589330583589032967366672247691115957869273157059731156064178566148656400159234066526356568953076118340736380348781260963342423458067409094723514859635380896696030630971087254055713955524855989971873666566634988565287916158512740226842741131251196253784886801598417526401657097977525490431068263823618138618742703405949080212695291612861191723500965636373707286699525630768911706607483362506392893758947767735975814420835465037097115474865189100671254187193925522203049573209746136292331540915020855531113424719571376541108122930777243706983672820635216864685226830393045213625571307887822642409661444913364974263518574252048368704202075929178051549519978197665929720679020529582954492619551918820822461197436568966259700605330489207633266958934973718921671855786175198833924389364353120281713934990950010124860161732996585913198185983138519810988385596921367415501617836323022919274237897965422439990923326005603959908850501049714594877334482906231402907132566433596372027221500145602084544891729851895765862928227872524216525826777467159561382836267485700522981705932393980897039885568296625657649132995419447871076078955041360112668175567066812086873770314740368610034674431299898909029644424528262946338597183759143013252198697679708653201260178920294635869319543173314578160333180979648745968988534764873929439184670625045860698542811187071956120113591091339200909888104863789883665169833571806844018224567776925677724784202279986541433973390070262355822290261016978112513121850930719790893435727130392340129110376402456443741338295284156939955676512639955370563654700662409708658661994597681380052754564312767294486272695608142804938106889762947729463774576848125334078826369573548697417264920605699811955062344983183664005815154939022337882917050650860251423439462515258587143173817286876129856087069063223673464606574155340050479951963680101849524514888718389034284676336774588825840138720690315044931706093750002535312960062159339864917495346828201571976196656160197147387203757877581748433892423850821193199361935073587946197874147963815088325166821866018141425996186273610506608311622507927532027621754680217657389510443719968231806342089893266885913900125983021334592817658441509538361829370017255809014061364251832506638182529432672029032952004578300175406789389471488081090279005391010247525600424157608750499467506930080731470022023714858994976941666744307363171583063400241332225998868883842952085359806236888524871246582395303412410292172880870106108745848963165625919420776544393741385883999942814598389726767623334991126241740585405467108180356494699073306556275916185724574144951964017151944921196174202540208415495840667818383848907938163769296625381834510556448081571584714645914441882595052986197642720699311045197319402229895277064975496585939869512227702468297027007355395003352090786951042623938232607602819177909433981617554643064846143917973534579976265560892135009711579485971001599504990007779066010947079008921426126612451859128085386930206161473163553344182528567035159403260908140860724803865495085233485469136924704665359470373352799353443657629420863499956253785045030313556130241026976170251364984449120933673364632905386215437370072655710631169396153141900394003186914568919228950735818881451839331174422834898609262166023094185257638390742765314767200473623676536875239498583370305221162586197174947584579503267490173843459777930343163011089076156165976508655731036426801027673059045756196615649723527020716203346230808683158415629159256269520594802733419960882701791824626216529501923657427033256131788572924481564953159146093752132307933277494833039735042971893586336489692055483719744704555118566708171850949959897686499508043169661135830245280408891319028176793286114413102567971342402155307580491609955138051468402126326275533656763242237613636279240151668825134292870250981853639761535673594783153921241799727299133402359023241937318274685934911639908662011917199266590620050283845732710532865169882556947271147575076716865001214988241677982601541717702351032729818744010036255634694951490903183199523231492022480650137551129741961633733287161925839757080145635794377925672987323298253763348919480536231440063324706807906034934281434665079217828725721998357372169202710836049549928330481881223472979693448736028950463852455029278568061922393661738590926292027884678939433574501635374909502652167077782942255206464483581492592706886047152154316439146075385000975606792994637992192962838900811468416436658499940896858588691227865479323356967855170252060063783369650589986085791771222455984022226297394168291410173616927074948570461728717107573837919849345301668333419835875919837740977062428627197685279019753802907109367009097071655367115762135693016676129013853245949201824983219902583365406567723592509559094338720504916961332767493250207576119193914027385968870013458804356367859129173277723008370162471912075688322708594034010612986429328416389980839321122296417182853933439511495113732596599362067731798603660321007862927439397410680012273508859852831563287648090584438567274274630860855395835016419233520998005904509754020766908640597021852555646984735854509934546021968635170798723726255542101484228144192281476826683730912959678963672285752472393577482123920670710448573061792736013962179107838391779469216948049964772108089607907192582592160436371761086196788266541653509242506733406872194808933773760993208430568556526998152894612003171252545964888747487966770057589289117472292116061245884622789167389433510844957522010754515369638510747784248908210347621629538301623397029583358989674018477781520932352014762916051644635390842652995281331481008983863573197852423395785819015026491719724010189568587947955417125301225143101237117697480184777053901256198306966094079298964920966036858521116462696360128862665205335680159452617617097008648540342364558414630638766606584000791170620781296593888658891535673089912774496482900299560039763187675248832678133709888811799447450396255524114355909413497831564592262426847959789469479079721493504802490691248633350711237926452779799950662173817784176834880672450443266684913405118464862829468765887279716970006181509627329553514926261043546912228033200534864131612092912654024587347607111288189409518509491896873341757271610752032979307157278238298549845995295978059869777479243591172305748047277475724687332635193534817496907606508243853157874527191443694359807631331560743076108655041843892373041116680354896603624426243611500308274394243173885234268592723003164767151735831291586398990872157675251105213706001441134799392027858127720177960299399026718615662325113360577906991765421161862108069362282875469494526681924446361836817635087672493501913238866964759119385182496206106524332392179241374481987908538152367349881744304239032818923939316167142489871302697851629951545646865912129554809804526049383849686303315559099006947741707528897809647874035312006763007826885165838620270959646564238123488396265414439778872567567118222980680956330513575937347164975673263190076765291673088642462382904946934256939704000720607134668257016287228781110389632400870796986101500071620998756393564841329392077057595998868888088381127933994001628567755577772656663453269305480359752074713487125025534186524380098498299290371346583648280784723035942049158292010083577375349338041229794869300793658182981287291553890761936205583803926814813385471825621134418167693586256746553358766439612174721646974786996765173462604861212562232285521410006190141430481806336602702086736100578340458760161218408356440553152343087988039530554737786616151518515002096476896857396300451675459252847632974932304214396096048100236390360264296585595518762893183575733576087314530730417105700214187076326398536989097543794822376542490158299673444559628193750353707104084315011446899858477642883413942190437213720498527269369335275863158103038200156356957800609152090040941373428700061434628667860804201384501242655719531388018822701386372620541170969022820895849397294844144347103176625021977430818580348869227592924085948907742298754985780459034661168547133326057713580002286029396181594643979288659216899904282997566445488363234219452877319841755198316402054079708272528034098875146441432649281141974279364174234540283214306041095692525156626102637546253221215862259242050578186719619565894692725236237807624164552373346312767940366812785594980488212491311322167722133386439412031820267470790564854336214118857240525782358828451714773469157989212442743358276271039937731067071851065901927956211757398092679729515804612146684469902515096654392936610299628050214793427897954983676105261803549108183638724913897690292288136719169481492680280510884456281344203489926592730635142702337609203373562544968308040262140115541992912462931236059565804762434659968910499779697118815350510207710694668727662458882321853080302067564881982474453895535785413718531364710485880722606341440924914267556321331107864301993195396337787770904848423369155145389322649629681112267046424642679280911489070748048644884403565757368306385063497508731748399367367335036636730924003067815254606545019826193380312523336685144248339725956497473287716552563807232900137309938323132645886301605251027735410360385045418855184157346767037999387431822482731476220119884538957817296942203980996636658154475644931959733687004236799491443515679022728306997977049691193664975995180972125835222041010867394131215701571795384054949093260499213418493130023784578676076652396294355227070724757812981636288954495851947669415860726690226449091323766967890829891839333491454865191113108874221843958382527092216787294542732840533104849018403747490389395097786375257874449815722214981229169278405636465491128133250984665941671504181842696131522068368437088444614776146945508116171732506712105050279489259756729072541183657710686296464506203938612082777817641658909165346528565233717999229873239685415964162094757759558034251404306294470034740271484928926719393528255225843541078451317272145349814466953473318853213139836031355346635821085185009470753379766910003924100956494889536975401675451673461891102380527946658866593320257016544473369828822095063386466670920264199799431302152907238053534726697256150140328748405778188131456457905430928666634560293006061172500717969213820489468411842611122246215373662868846423426174520325689438187770235306294315599255162023641978288445383543367335492912268941198020651446464056891918941649041239246836911707529036794573772081229354689488405275095684021703320841916956994342117959738704771185336971209306962975141919217934833781065784114536891835649412982016006412385804012162276117890365392397659179565802954420302215096513949201562973442478102685114100324127272759075944696133447546813567853027779967966819329706773641792160757053579497411016469096170301873851255305856306317860515980679611976704778577638108891639713382294401342530456458822550801435056161249119600816704460173592333658988840703796954942909406342774123290010725492928492484051028353658360121121177591452967203966028097104570180430968994691224767219606457611629104073090203756451568406216619562270733613938268602247964035104195879023490064687874882490363258387919255649718048472914324564900495328118376563851585899735166684767353326833098055663894460064289246710785050524715478652836405642590951589826613348087005657480489929969288890255700475497819059645516578046903305102936382304958306038930999339967823323658808200139174406505277978666051860008482278847444432062144860433172522410965089614148467310373047383482193412388406606568554326718277467643374099802696718299495230652159000281307165468970408815122855743703803476720615392040992294759240879693019878043980457586871362129652250803254330498314472066537266801529359595164733618761373331803779571637133924467093658323050655199317768830603682318517893550846056713084150763486942001486939993622953917781876380151913798810897943047812693524636057167610211058267096152154319802395340832694422284542366422899971480090954367065456335418731090105704343424836627765692848079041340882449155910566963020337824079271934560225790194867358686893912480744385730622979010284820590050872669942713056004839334824145269172309169594130890210982628600176357599949465609304517736914039485511098242243769020816698128017553169627293151156691807757299740306332141867262273834486230197534242953704934734858617028246575572520629621019023746639126101010909886833107065410229654694346209693989552481424216072958684760781334884349190999198630873480897731953123324207580628656037082566477788315692201225604166571728948107211141523364946114006592362290136562772089944276954618627724825188305597628517134146940822258953707315328647969625356707676937945002335174237215630870438404456406463775508083590758105804032187774061849668838213547897681966616967551294572893596692947766632441206112347033028075788840043846868682920388005881881584813346456969514832790726799628231284040746151702816280261171035041074379082721746503972232426374884078912497623872539857146019838293941557079104735105836452708612056095975240703106554180962916821407711574916970781829738108148561725157029779361601184079261020466143038608320426334299807442630497219088822181502433530864951952657697150879465793507284339311027194241726536630472045956129024891205276477460321634803561084155848809717407229510650164675029288313697634575803476838621342105054763487307173046288577144020801236531671280225767620209999327312787548267491824617500965993066693824386853570872374095689566812882589748747656725030622682502505371274301886488406665201798279136421614103379395031592336013720566426272683875059289196007547762639701129953529329566862982581306368134949887814983155671533626768701674680419836051968682083552220219130346162210546743918933686042281186622991212967446614720013875505695183138399141285658291862282538495251764853199009646406423174771387939897212540537574107064669557946077273541590962660041168490312159754796627446627092327753385277354449306071897040580744965411806573041866030444706603526465579594591507023527649393317672794018124405730591953145154209426248308607851693940376763433377152387668155702407086615572123576279989465626304364822640255006196943065596152435538279886656163659518254511478788442260613937282502410764418949012618815216114036639331059950884098885020827379272639892368633496923166824400845937836716776426694784743854055831436973950986407409989241765861272104876016976709723893983436796150905168028454751870761623193665877272378282287913176396771149446051552982200344092511523912971360488718019561515055442715443512686629048447778301752316260106881776438494762448137362913337555235698395185469201621277555328760867849774140781359236588169974412399113838401149222539495289409605912440789462531095610652026546176706549234300116979352997194545264882649293023563971963531644223395944086780764082033311825215186171744850910819130930513051429251436705754051543530295222960947870161357341270418905770886042801894119517885670877421103888850666513873309049099635995170912981040749361746626441487470898865052182751874877974326125174099378614464958293604003214105897097229166258606166554093755417010079042927978034219892382767075069191353071058817638189943235495650008456345500421305098324891022886233870743408107629705145243872789135537379400791738233176136135365115605467198665467771940111011432795830043080806124220793738715016351993874974117601471172121643151613745167265700477623786390980203240534985384961492678177731668799318452854884022945313506159301896175938930157825461732132397123390706595411375188714505323277730612546392984245057111264578811087501272611924901367002277189202040054162800960496925588103012809760953432086175279633004394953439372830757560921354207896601183474401175118656019988025512840284288444229667621940213896598958186463688440666505468647176557572299619555673257687302529233822428351272711159438060723010584610378066116330874136466136532806482537316821566189097555670911366253774218509478466010536244541017807092860520854563808664949293797780641584860689210067716617804172028600650066839856716444557584108627951833832354194877380340872422339267961809491461832612638027155553586511433556594827040659765054786518381654768834357263885709975620795941515221643588018220136761532627325246828999201801343018376266240271284139177452976736392933753897940197373457256293392225096920375624245684849203659466096131082654921046545636299597553225334630744610362817043687371436979677608973024316639061189884230836013145643909057833452860214963523408161645548669128889211654751342362367235514543978317778626418195265912874196029945082651253381560524760794834859824588658749878118460717874385596698172560462790249241208121795398607195833669800445250235700557382403364344565383363302745803807882227025404682772591621251836359413860970218341159976278215454147135561537225980541203469221879664944606805098412874002854482294847525024814652082059763570898709370076238644474853370689020593598863615031926092022484459992736266839084311975770938121898600851553607370742670000213370125671189030978453710125824363671412204447987296189459969512699868522895475567485948712665584161481290517877896533243104884810819602353165037436055337149214120521815638200273900830442056646381767447165253173774475066598851549387451913196578883147588197162269350776347835174238352224897060988466101446499422285541594044311490661399162820653223228365469820124242473788474720290065926707147746298502104502431243727463524958334779851274087379103755783396746846176057534651765022194597737959362529099139964997216735747833805482927460674526035314414370107805676838732257382640008125439761830876846167251910104972034877641828084450706664921771443859050969385294338375103811573696324502976425541507447801577589515567160818936936636406293931282934839846392445731588354832279984870954184916105061420364505099904763846958062134778575481628001712403510461483983590673925520315143521705175327248246748013647144263926724144438438766160238480144029947995341300753592807695507259601430693192897840583050090209300429179505276175501334163946060400209778448384308095830072346140932659711971015037311733922355115221154071416062972376378833662786824782116393071897562833603274758695124368348466598369007137845960362470065591360381674135570770776861986026988116352862711725604840510163152436465009623348859177052780562027483188131434498518895539938362197208531352193914957172201725528092638054665759789817914451860862069301589950908160348029241142809025607324611641584812100448111347645129006669738789532404601853582187592310189769518043144832315671405599354701766106126896010360778178336406994139573636458742125481046899391496468270761685340922170622695074292568395014033225450455146244645545406102376488797011083614983490563895253893205969783710319899434646691664172784113080535814502831237466712048138392965950317965590956613271039306158378648387563650323726114665631350120302493181663409201044702409034559926140407602224950511574334809122872912730905424811851271261714995429790768750305550666425048990057425860985836525567652940886550709186917636622359569993409505451072075622666629686725332096738048999810962909551135810757224348762396504505597917612726737619345426351250309023066722232184951383506723357561046861759909862950806213793268760925650892695849418656595350733590655838317328957609313559718694465462211534746769164146083850826704624471493438525507763606870898240753652897212368949601954925849600990710226135270932713648905070754023008249183715655274985092823920709611099929214833940213241564072257822515366824984565051494230104296112007015322108437672234148383382343924133878157365548078205948045417528539452504859537731563793022244568889013688589902880064214096609274788206622721244087956899054686839290084842095289928391495572594860264868774283706673685114929956583032630466483285487209851586092711575288708314952318031720588432897366427379388890183799154011697898680449947783842095601554418319465592650378910568690481389887587784789037342811267255393838203004706802367368567338062223668625695927262853404634221052408024865781439539429249415789733859997484683088192888261023972861451574857590244574136934559453606428467547975284472730360481376447988087377350563195729056174336478596595197807801888058252868597680612391059878513000613008312514627978756397276449776884526375608796101885794564147887524349917648262507153746789963151418592496194809003410040271261470760460645960665346652641282800580059945656914933281656770804931917573881531926688952098781144102106843106285497831570827910111981843435191504800247769154827119730855413377866480363528862455038211083083625253652951599865671418663338241702127314510883586174586791207084601067796289762427143032083781494148286709601531657642100716697763821249010191486318734373041314113462383323623020251488719718320096487019991175866960925913782475986986228497337544032136800005930657172167226222973093557874991092951897467478539566944600459424020924870933970729585288731014723393590364556584403511966595398111866610118122835363745083294350014236844526964111576632735201659681289116681722227910954733697262395244539193503036402182015581574414500415584108094080139862175293772874582108251851485277787871010107752984311225534774396287995147848434810207364212431069027869343618757054896725038206135788410238920646889096818736684596685985436215612702696240959614781138492702788293654232289644747854022919239722169609946024709404993847385107070783303111674632770540576081001499245827429133052269261582775533065090714606090264635510221746889526175291251744093725493114253108303956835837087744426480493358176096126730643162818949141291784560473534143761049496922123402343405745946449035401297815789036015886787273360907264774143863492513797238481073184431373568744269581284950152369391531928678724663243587622337418091045317815378994276415659527722699320486117290824979410824688004014994859431843971547162372971835763333502883824194767730791864696734776447739272943500530828190553159509404460706515091200466884253242988400501898536437778305177006423275565603255967546286915227361854402657937202140360257226413413825270105885872447771532529484221385332367429068794657739035149982370394165752638061466492067844703105498429640356230202602864860237990888042600407919932136603730630858524297182641177278296154595068697789948291723270963234723442463040751630366244084337869475721642458619333642624779315456948603282573827673937719896201570712831882765722507682563032226708152893896367196782889349128433081403937603329114384650772772821700485246924888975754501725604089672976587604950785900329960031559265073263395373469518000135353787636079526594390035156108806848952723145619488416879621878881368222147366747806627991039873501261277931142914620969945822103640102138795491820322898204029990089468414681017167559644739406140776338708116124518267893395940990775579459855949088734997672275881467399312897420757524634344058819434726855478939344550431316004388862589622807505189572937152740839804386197421001948559811299240930699006818226305543756647174468857101425501903179221098166111623165909005023190233269508683102571100678916125425385677539398994666809262525731800266975074379662162102266778727986262399673923490524677190848855755006760910956073985143742633740648332367932449097589351703401973356460937648903808984184817603812912114243712899324185355627215596274094272448547157093888891137598858222525819337051215549055824233494870250902494313575704568810696637851762719990416737295278556858481050747090157100893650100289984221987937964042297140175284067999290921141043376463405190460246637790307995650685018253073929839368727748753937492842801891858128730292897525728656264225663704063118171636460232136681550621184832417531689538225335471190880538409049932078115941139615668189545935267549160867393586669625918248934449328761143184754022613116015858573899883644595401848048884880285920115495224288664390325084804125115728681986789106704629334766332599734885766070690124086443421930939347170282961942460110803457174697940182614270771991819181736861515006496487443286518372091215812776214459483224541070488165334234975486017343213902080923050977798459763253918551045624527817449214714037247819789132159803306927710245392146518806624850213908198239924074966646335468775547148077765463454888793105155506193135224389155023973804350759052452511329906271091595161053605949517297878090571992371125055240029139029639693288826267526478165152622397995365689020762869050714799722806894185336448547225194794803964773221716596111569554501031789234701458293922888130597045261333398862848302387871812852029008673186863422594016271048961403447615401139066243398977641592062702420116165316400301726805509599383511235667020859140107929571476888369593783899630245313017916895554675880065828501330893415190744941010816032997942849864245627177919950157891224406750198996676272563267490760544826520229289612240016806774194238319451397910270885105525123394673770895703744349121336270590243039741446400668550229454286758244522177071131459295507109505784913366924426113412662373721573503218467716247759414577069270200216953603818716497280227503822307701016488778579119278444952973616470062643733245346418640912542578761770442235312532100475354067870259959076567556762720193323052785871092705306234920631940827319216241032792345907364823360342160039716707621626669964041784693563792371108581214513407466662625286710061499755377108302761958065128661921597762754879122374550220939123967772373056742811883781527501646633906413953660550804514275477551692866526651554024509783640258825584879568864287911504036371001789245577588283094749372180081946534892067335220203283675714282073378319044849296682022133811336635703643446482716742258357635934573982561779905393938131267750583224482714039086722348233074300301423486474831334617218306466276757934108332705865732570446124221453602962832905689544952549769332506690155175583946738289859639215494293465831983674554094196889929110851777961977055832515143708752758618975582363072209152900263338969128037759834363518250097038039563230593850603801328955935704659490259489520574236799421219889883128112468975369511169689541864167482446595243439944180767219559548946104076422411743582112244438940020628145107234768070601635600997495149028565782527656704066379914505488663611229506651607924663768207915265561398463039541581500531745710820557624896504979157775501083363694349915836212042598638775964241706567540128840792381046544404038120445580801157404336680252127223654101441542333972315933246966902734085091916875984504909293743333744442222267826340107709766686471810238801781575803061518327741166350508477364221825248219877609728876186932225206635966492193800220483020394647586740392255400428215027277102114700192012424769311759600013933240869009496391015163518663057016368692240557281918226219303315051710370040222474727911065518511073679327921075721068013069590384930334472723171368236080142809398719952101933942314166174090464055095123362707367737975559824123250682755785748202379522360590346617712562671803489914081510476656208445428253422292219044835509230950327962362780710563411133161931424802481094472886308922163415667336931472573208483247302695276017925675637735055143904577310904168210452084078742328135706428976221865705798238695247730276543261174792556721782778337499326607821695524860935086218147780086016560082487971222864968399996658688699779997647855982212008264137362476929944546552087701109055505314544309788958586077553006430005357050777215699469101285704114009259835700592529509347124877662375097347454191850350799623103063820569422754286945299518451601155776574053064979910948300108842598917163331731689329114430971398765331191324600210323047565428253263403538086134540403511650737740649948764057637837694181805992256134826991277373971025089544872336367924191030595405040830664808183591798373709033657146774157048568071263810594589972097155827384640620935532848788215948837979158221761706164154820912325371942420490561450049446477939051582183488641733576571798695731200761622355356623844898897737210011379022699846536929176803976659618839486312452505820854377769072303391804844132776031768841994770768498761908676339094403305122558742722887347057569108688573080969553350975912113013284586805734245884274945233170919817982224984754475691599494944357185049451154782891953121778199161586088211493033043559613319654439403490478477984838431829857554194581773747863656759171792776690832592770185262278343731115664448445597465038609733878510614614904462216129672951401945428706334374767561126624094075361004009658907602184208362354149895442738824589030421936684531232974599579486252435219610870350525409134785561288634516592763257828800740648871480276969405459804144472743883011406428552774293060435342266035096990232671940320706472501809819540229210766168171980825525908366865357549212826874505559911626593247899675596197422409058363403871740976644716532996690479107612455175941079834587170673853173060613981094521308577725445177416453079330205567502809456089680019872950357253536332275538322701024716579322623752286676568373849935261086540332671059146935822912087333235933903903391714266477774072570932759311916027285695111882597214229576473196871185089279801325089615322102781352797356846825987058674666936365337872594678064871972404760041575591136130432730129795686095106891840589266490848069797531177704773451023515746828773815988268040788778333163234104646431558607093484285414279287117675500064222233148053363202296943234110053201296349889759286060939498058025448791313565853638350956314375568921501303999611868604215775964113969802887576267439916139678832089886464113063544131935343525192118233623809841386842545816125865147208901449439204863103334393359067427536116786086523503697700137377281327104238172711492241723066522685260421247892735136725939429298164281822859413074123688969264150953722378773912175283294553937851654330939185371736049891974169127822098796098459988728216756273277939899360456516612896510813910437904738434837776878249528618705363119492291985893586912068896812195280490615311599901366406043381791322373464606034967504471907151296639605071860291380914736987848692949069414604435941077310757062828364019614989936887803221740026306992973686290869794513471985487704764302389047681384057500198505980361529894004187248713013039391583519699773376556581699852767850870481682494271314859467138579014152805582115441136591648374302566992783535560013304408753254653994138065874206416563133145152220983615275561994795807248626716979283902749819195061536578424302916688482819714808183076862487379610750529160033775199991882310251758678106695456805139567118011106463052463486272841511581704499208325175532718420861979785240441789429357109937408080196263153489733269045869705912298373424197654352190602624536926901501773864480090982290365017064434679912397534125867530521973942887131215063751976651645768723302591372473990286087940209616025591352505878536077422270999605062683642068511297051561353791804977580245425013784090570811878951896047179779813257750381819211529777208158518896749425584498343349070849527252875055795912590557825431307323462726009331800184027682760723168479022718966673382917872845880090036673391781123769090808816331081767482012552105462441459362036415779418801924777048536446336037103782034080152172629359163411253524974641789853140159227675498484709125273899204173599355877175769845651936359389950884392000271724617210405125043257037897911551341859426421011481477393090947865114558419571229878161273943594668042067835410037424260731667607158988859268684101634767502732855547613280184699389268178647297759951553063482731158834856710300149305853320578766768866069188956128348480217901412396242973301608327901722044095374581375027236639183907810758660440186182751714247062966007008009776803530252879036252117033509828179997948334880514499120154672361913705973680710311501517803649224987789631783626897414211227593517970124121473012381281071284264163406043286425638261773289497642949617140916464963085083609559978571701446968712777524241122340648584927039657192279471316324622770179843027549992746531117243805446104275285433182165842301498765301374642899442120805177085913305833905012621061001914515247940435688900368552334612891602735391801468570878227735261585532574541227072709405458287631601567182396986657333679358923893334554850021049454329421149945414232589085686207262817494969521970465675876610504005034964664282379807825903152159665499561508076660446159317604267107504884317549052203225813276742576651583293364428186205080737292353267522017995848775821998164972751909903114378669938761886639786276954590271812777500101733776519333331727412411657479631138799492638749190959476166766590733329196635635934576293578063168169866707835689571649006857184276577404469319718753912680419050885258472991317150375516650117397420094401498673313940829667130783859473932647314403347117939738805960471650798084741067832222516486058579552050266292898897784191969622742343835602907611950456830940941972693139331150940400505197118855695949539262592180609149931811389103617303634538016405116568188770534241965551616560207300203903347478644277668831901811910610470161698641841379735618248298798653080885266174502831038097539982849907176802973348914556396350238520460847805580410541010615606085081010224874621308699949195577605982017456560949520432203025511268729652364824112904782628723522843393554144140388527505977502537934978290750080912185121124157399562749394051966931297565983154905830315707393422221654773834930384020730140802847481079832078975829353343720280383656674052955792780283935394278037260214181839548904628194755054341650015137182015388974148774348848371127183081414582784082907369421010397575264416910783243726349506969292710425020324884558232063449738252845606290594136392391448356917431348644980576621964815780104240636771966925969394915307331318632805500369543931258616871204959284262122708396463594716395251040747990207199720926988428655908313234309977573635134353361567226539773394872136408832385316455723080553675076145990734640745079780448970676725032904971253154741982007872641035347440081894851027342648844008371245909673968656541144517164300193545988227479685725653694111302478556605722383006738141689073181814709663546019321152761427858230166128901089449745033103673746845943325495148243118314182260907279867528202612557713414439605297167694068265907302914312995538826044390573853286884900695158796304898098313667551900611499276926767814796932852476039281845802968738162810953180379694680976479262483017288937046723532231470535498917730595205733154318995352645527547316338727344645420299871191289493486395734190298505229279574038729392109867564111066956492738611729034659642476334160347876183013470926345569894965185565941898310279278245997141429062447910619601325139253173581428853856149941163366529323901908433893059006125036576672002422433500234298543334513286326905328108612437487291628085161826217814477542790969412358140240401605689182586705450617284542705219199554380129480425798763667095078318771753237271641861883489532641814480345548815679386343005980579319202563577342904135598644719753311888641507800003875511526292338512537698977876668580620236351580214115519000675414871088225008865328187454837231353502289492339799234969225664350316542256099329645795731091347367471406664355856918584626581868468856309892792310667649355612226044351832787612618967733386975197498835091333353738929153712796339340160314668653960048764219278047820109979616089717304869947552859450548140120870201804411881714311604625375574160013756149058205400585561934679842887591450196440759515366849624873646274092801523631242254311798052303072663174990249624669542863174710603937017012615229898362896216677146920303836360331138816627255066160584402447565101259380444532855256865408186046400057376220888308600090095410343276840721383377291985580861370903195995464374935149385936292054410933924273535138100563302401720825628297415925888095443960732606509441331165943515160491239081928711974107986666971582670141482314637152372547095277819075986896602362933808835394241020761714621478423171992890102322120106731941927012961407455258238681874905605237063627224893092781015376623133489177874315488198774388826703553919050602758179031808291857494071226123596899458377564380268331080134007826663607981241950471223107838398146669338428502600752207045287886614276678351390163256451790822276222247038187510084430797477792398458711717822104675250776470684187795407804049148622737212495473951082942015958868612814917302910110166283054133507099582245358837907729046718293111016010261478834463309867856077550704513179632184723256292847852958892506210076229528089235257029442955000693438761058534564755653145410201413768456961279543547235675397433649442466722021032743298860237091083899099903851528331391894259545524774862105213684498367397033698120699760732503061186863528182017203767307900792226335175564836477652700820940451757453940132552498917499329399114369862403854190015435148581416297876979129123948979783467324420391458869432594162789617754758103758035251220016239914304875033354949269807964164760489567795750075232460287970983768183413430012948304173301263143267154563066782522157842197225132819515999675016869734071158194573727564823341808251323179946014580786248820948607165746680945353476702233469697145497257983718195926393823882931486999529297447976642009516434696595122474326272602666117101229129793478409632449792793322592754118976431907440608886960993641350505916094388106186874091953960702152855414694097267552332896837176916852555582002023588955653326163337581622764135779933887771842275967987086472900909808985604587840114903594427082484685512494578115234662962550861599887442866522175568309731231694302207118308564853949146232095699422744249637661519066549310782038579795096035028449778185132628687261902001441064256846049087689939384807024896404371517524594498360980216196969104219276082160446510354170145212766693427508316335953589460562102769712425029282087580194392433940967052767067683651556655250019949726932602621492831059712134129876875404667854909328839268699112866693062563031558808688568350034078165658818780064273005690249800167981050241998171557308252147458638930007735586798860137747985865661757712848559342990248868631464875341994356223734294698722855269904504873142943036584320417996871478970149687998237146953776831164519719638890785258531302344398025723522189782608255783509402081025727069182910829951612696554063304657357422643385969634085043099547378706595628232352786443833629400499008718973169456645127189340243586792488343051643794161631099601429356748343047135502060431164125053303344432882260750787750170776436716190873753487720229908487878518091210812250024172175721365748967387325955679661447055960038617507563548879040522657423231088847867084296676703054924128981662533594459157033195419599824209243090324624668115952686533395945125189912175552162885866764364976704143201985953338212440594306390301540231224169188249854273447673140419162178217261986264765926862372870054180222454183128507133353750274489687878635503659627729499712673628431218350457184666618169471383195391887809564654043595446091624684625543406431339641463054849489739525666772973063844378613179009810996943747772828542614838398173524987952633086549056512619693417142864168518708043482462382473964794065304898536369127976282045723917927148559555746770724369610418698295288675977113878736625067647215385014262575812771492008028349333642246264431714295360642701583008475565416502879699980764415507644457938466078454028965156617839672787903848356602001923456044159228443773372238674528101041303305948322275696633706396956890120943960438538344318198662226538214480519976555268318632293374750373608613938401295424373942384772397131426700554213376565242732216039086779298819618540092778842877528475781088367313744509747129763988898696480613891783206300418326556093194838181057550705805114252786349201484896905059707340630915043024531002545682556252343711724197050268523676416121643077641268531837822541839614019379540625436923425988676262493486328488171910468102696784439925816183082528028058521206610921635201978733741578161375519639492215269053802573026349627548665088815427116594985991112424765369731431617516733230930486867808953137377528003794309140517555209995257186034202483317404078059587034955751897114203966923419899812939762757790189110026913615185422983374609185025914898260416319835467728686433829724509223866510273958476120590783874111188251403685351101251301419422316206531999164454815838532798419264717269391702833409310272686960630847786403228450413469439449813301425900042408318182189927890999949972647992556134149829838279889925850820441748389894492156425596505885296801837268316757704204097343320979714386547349492918377751642695268471278302497885194736702696608853638151258785733333497438220979951256458819790696950620727194259773861466456834903469298290820948333323240968488001450487679695568678857345520093210729499048170815159537246424861403583309520518662405512644401806073226600030985406838143276161232819752866034738652256736039056701140825050245751913555649049961795169521306504228683662535243856894528212770439268913454028095062113863573146988833891357336253097573250214317372299161108754131199666280889583953126581124283190936092298518402020212194844280660173176727249800150120934576268052546685680358645819166901935134771456491536695350004389034876386818532707707069877329835199309933626199377676506242926965016288704024454386472740991477320783155698544156909112308655357152870917259769410448924209607092590390119545199506293202644927906563450363712093875676936185827574275724303930987779937742211494891510817530937308799209924336197380528832602743766969353088220022897152014138494326660099508664659824893149820913328177861656750819456484611616334116522051067389628129088115670053535054845227974503933092011912688421522403775864872113254801742494511424927049929048139941374564687642000936494150840661162528244802170738253629413749358798324699718100771226700527310078208509402366416069909078036678649383784436232554650716518874604196779920102076297837131807734552480232230459660779888096487709666950864490098210059991104177363680497019736573301596009715649251062473274332587079775785388701348012059902226185398332489397448439490470565283795098171104696844308079413617611220386593064336806446685343367737585794906818904772518430323333745266594009794280814718619030281360459118090553361430177794475413217864447617745659434575205810361450309217695089775816672584117945554659028659170753816949429638106775130713335861429909609630396427287575894484746416818802333079847728275585962476114336858569144346886264502014645476011490542380028532516425341926851047772021903364531328523529442741061557673785513673260786082826175184844187482213992140069299721521648132512322054409420744653565110040840461374599261774731603230522594520003554855210134932518829284802099289946923535816353045023789883405397614192532863288025381375553352590473244145860652633829643937247618938725879799865289890937068937415693427834494317169778753129197116529764844292041643574968237435963925295832787201159745362064909263189653236342153862449464379942354045058617724874318295502595939102925631349170924485827431594847489252557901203488096303978337109257997298234620448992036728708799944149715392130284656004214066645764104231911035064357833982359462859362844474524934271189570436440088769902336787230712445993362824485175801534080121451093951182136010634612428873353040470907333248791061180245725195923196475844014062635909248697447742658599874539724515520085080631127920497163560567459155422807490796814087465979849708034991290832212782835435610303547729425758191748657261783783907903057156602729003277509284465891332146533012460069192410044586435453585437966614901777448851209479465132325171305351139211833628995166577557370785136470002129013902988527022229092376840879054292699400080934333073266658060226878560566189397700912567516719901721573295621221665367254061924804942272699341103519292336049110870248181914380589315017276775687957173159433823657316559933071135190156138710436263656010312147468746717151522371358518453831967433494399022213402501016921118571638664934632671001882737494936300824813416773356851801646579185381175452662309516587968654909160206123160519025980534669470776572661785927887050383639064222881831139268520933918414504853464175931691793914946802054795598285445242483938030250739165708048075635714922489827442603343156734137563725483805949190141641646438886911308643048427585546083102582410354573148418978849577198517362339080331558280342385531346278399568528522379796402321025021039779510127397295514055507803996010358637721569830399814201911487062949812394240109064171915653805064530775233883380059050637892133450388140872073016370524986455971183242993280604331995191725486622874403664323878373388773879175499918975118172406658880529862484138096968242340151954341309290885009147511694966405955177721443831222372608067103071567180772768837078449681048425676809015569028588595076960348073982130812594904295325484915767671438191966892951947384533199884014154800276046738449137337009492730025632773584681571728429738725820940219561119447762875711492413403337839951341151667346619536087049276036239310205449705681088306700932807177557251770908036057617879924680549214600816914467288948471036139270071295214439696920782357455341973247174671998199797428335031609096261008722809681659410350425878625351320874827600378074026790154035246149801938677109935671731407101836863398456103652799628795369360311975125490213887883308456847866270093621731553877333447848513464021954898331203657224162956129899714653242351058241174690829401752250433304952993255866309658209471408171005331453036239343192824497140832841910686085830564434470265162555439181227538653193591481451347813391404971570659012451147628475612517225807224406634723153795865894659357088785543592871944045572587370366912333767284594840717110681742890408143835580188698534518563564110118349216882337726562515202023608586081365757293534098556885780808392743934293020713488570970329860361531211349865841729852950329031688510979918683594507940987421252520293101462004894217764347633897855920097319218118995912645069786623335336847471827221548453507968632430316700620408406752871706863247471601100294434207193882213659361966751815914019562110308843829425748113943184376359212898307411318499161404934963828691784322596325892136324916080872739524444229343182224433844427586704183052860015693194256249397130649079478160259901363686624049798752977336801880015487609644452915644021228573541821826595408185283158992464934739366768396779169475307967847739308328185473532836997727790751178429346750349822031124818493357912943272349669219693918761000631952425564897380551768762352752761794203203979850479083139257067247132072451568552673465698889325072222933370523030042636846031724200425012193178167871838751130739703387085480728837646439109311390681319929559497056643693706661386900096903632925426358891097433705109482939689049107943449973516154905962025568485965233205174026819830262472217979757307175838021199822156986756735668908938217682581718111099628012823647921195554383879258411113977863134058379427394891583682580883512489285243282052374475081223255796083728723142866981060094171088215665335814951424795462537302204755059707380348451573160324029283940906918205260089338437895275553498357182868771395726636485728935939271128379027911743059154178307163040440147610830720218455022314930899284425988399443493989425713324189230487776661932686469688075912976834672773914138941111036969783632256412465198983552805685776401108152692497930318186490277870963076831563383776339149887884348063163315972964297687511233165144950808487823331568001284985430154837959197718183266292546307076755461880571248468020841339208683571293272525568632570518483271523860620638244529406601011563371281455207293388977737063193866020972389823539443819814955385587249183909367665964166111099337247368243401357965608379308184723566753770304086518096202654372323381019129179226302816521418111925968364094017336356252874230417952211855434091983695686849983172320086208507965451743117678039742764249588032143814140587941387894509458636227024739775039464149911565974304556292371999394529531100481624969658797912062939734357199584305199366523987383694255837880060056101143423759923745618200051857539033275564265481964508875928893063797789833501746309912172388151352363970711161737635729815081002683529521033768301051460143981797225249132217759809484142408454883439067458862058140531651067387761702884068370382565373422319866906012071558569316419418043691182058470339880058881914174969303069545551755773192894849746692915595418407126583871562212120347595404943955986902690449990270705903797838485480097277835564108506620834419884563342096517190469720181281885488313423575664800886105776100882532448951697149387571952285290711729266664957571996440809578614468000618016140321000043363444072091377344719434523991672616291181439109905235452285847778738154774787057130065944782437388372262841815213977703904858485727162374478127762205664719757144002301448188389199827614445218904204671893002614785298734106910605741354970708304182206922246567619244243687029791815435964632340290325658657046638675931778351397542195058002577391041372994056278631614091864052024855026382595703302696369162604949904447311925875529168946453188572022608045378005680810945916468202579465047684634622998975116897452217377439135500474030856692259764172396685330043821305356298434279509042303534487759689728022342216644483090789899063854771457368597629995928510926316526038645058218666612029119331755420101970131980277653217425382505730117939643468715770027965779507747172102844383020827244487029363013971987405069766062050773961156650398726960644314876065972523867096979718655289240526616987303502826115262406994646922084691770383829415810252750162302832468804432999943463900936636648997067816516723869276240793620030082111670329455357988496292325832212185449736570464563107576912745900266692490431695054790537737476840263631739610138126222641891071997901300019114142993324922520226481176765028453049738178707287402203094036904190318254179903255526540252272129278938825169949575730687169210408626555220117506688600637398890337929339147757100209448306750624988291374831842250714350983076036362338227440141539949771375812900525155491682763723014083074353553416998457171207406097763830995548305646551279061912775474507832351508452564507225382649141867253879493164091542646603494155467004342990021016275185692407304569580968568547373422708813961317068355660148146840259938734572936647385228471808363327574322906084209872480733415292934011774691761130983787449760286432396170337625362937739121639794486702657400035279045533580854813503533139637490572358367466584287339529877401308114471528173456513410600747478464575999669589657615397731840671958660443204960466167687621575408835381298727146131965422094195907332473748190673963370634212261108382054364477204727322983803398891716057734462253280032100434490094216140233148070087373372986068118204357863821420067513832127323148437647296512141089245742614132940541426586962298899897035247570683977635199398547044516404278490405885843597230719395569097369797677999473186109829400418250543152409049167030002211696722363182564919896241433175016346998624841106984031011220778937308237199563880112905256617414061969533246448318816429691138435547508768282159818679624109584970564089210391636080592940502632279526156169884541253419733393538174100694609281166835331020176604114620996999589960132368872505449442488695035468884173055062892469971656701264315037536396438608089899734080248161415282242017564323977434713269293493775961830350553833665701168892851300776150328715119426911629554544379128829438442168837088862227232888322250516416103058808510331474327241363568723357018622906883100105476833198192678478176225025874758291045292736878875519809202573961899958607693092100952956507108827012527220731839837555968540676860012993226009458077054590196286914057749233381489944500604665712156229217183269409770680509621156719906466568958431449406306902703168812881899187260619231861350459672435908533901460291639312785552662150564873653165486307904259250970850868177621577972353697486660033343349511168733289478521527492394448113018914030916133243094611230704512910703612261019005307092579649531551859262664573119390926189833859237435898541171147050764447321490484816106826486622193643292480548623171839295892240122580435640233408913695981340134404521069527408742348477759485216519616643078685688419819299154490436876163791064630579436780353032077448878141196769503550593462274678787857358574674998199814318481180403658795428634553995886944668043932095071657102467899335132951602363938409990130261435334590954716659983100268921096341097866359505701050451372322964188527057866637079932303521595406453175310534515771554678495596286265854632507680719228038301528389405965601673160394031545277152728192016308340458759035012212618566305948163791908628369223975406559457872612663018620580773916460245389530189888303256151516802145917740685760200463885259487673542502509687875031920555763226152018982660094222556476575515146971615335289136989968322522816380040851641898036826395314992919379034386062454270516964563484509535637767634090759684968954089302332353811812241743919693259323724598359917811143630272423051644918296767945240732920190272714914131703362782099704527547394021748974035148966442949640048082706886600962989963130013341256326459811004327110025623440338262747177608252511019425998427434110589559459915735837966733363974388084901890391501983326896872414491008236473276074260509168374354811904025946356041727460299769022971555468666035977483653944449946877366967997397704599154692978950329519080074787183159600130340269817956154633034474556470661936854079166258658171651499789024381487249463765594905134567589943703756323249933274563496736644788714097157345127813860949858370971960121352248862328125854063816443061552751844010741796614930790063309150734804347390650421141100341451779296805249204246347752010423635422250702124069287387441986677287474802862329997685977568606877898335292783280223447159983056797540592722333079837131860001953120981567646259421551181389058912375030975880699217795194592963469969385185214905117365677464829920523157943605127260866483324484483336979281201626521365458024559743728004365250723931661132703263884180778379706785977272903864512424563798398537646548908631584699855700862418658708545420766457012247211494666950483352506775099146080316902243628997601575520592366940627723161323477087605030519481574281845982492544026062747035126780198093408094687823401079272210352503228156932460756550396679023972182854395688345351383763559063518460056657853010947011671650442164617875514781314806595781055363767857869356860285120404788831713447956520809353761090594105724636267743166791943270725791027188763558934198014970013699274290326926584512478625768061950536873681433522922627875726513903165344280591086072468215875086967432381790122819540190700863232039240419917469036234974084061243068292104180782407860916904623051804293039573612715569466932891469793595963239601138037636616320856783595695442451559045744380967763649490712165998989131425776384487918513080388366263356746751467458531259323710903918115946849233316545685819642860318814784897271693914106504592739611535197113217417081244495496030403607594946297039905334593212759333410087359128684101555087044134322264778573718156332896151587862080966764250485722990810488506283056994057494579616468038113738741172803018293025148716929526721372997647247238345475117224027985207756063736592981677271586083092806656181074156592029482602696408392892403388780658031466640000322476241031131940585644430392983428902965517519620844406066994929380953285098431643974272678595953789040308290417050936948946904705361321927359353563166227888027620836468599670781609575834975942554900564799910541263977787534793746965125809532617675590663657982074239605852337917746638874097487884160555756502359418321704793941676034252521485603006414622853544910369230988097366648840564271886159450295222990266299364984273978254220952219359486611344532824873556278209925066727508227452584306373099371894112231746668034543868889646223540694959706855238523757797449425991559502909807262458024417419354414787673653712153592466620126952762245820682470832635835141374472943774116174966648298923596652372518760249717828151145913497434848359512102433260346445741967134623042232730782926662335048956478604558570175778957268088476505207701396116077906793759120757907295899785738471629652169871601315293853278537873007903508226568925193110910385265120138589349157072620067084573453127175554311277318135981554968700668288125102825823440179120734527333278551810158618356211115651801553585217559775330322661903349846827251668791118789874983633166618464069992879583583613833406621976206229640046137153559107227025584997877580960499725258589234602334683973456475738524267591369803322952114243883790792849280070561647242266334555374312007580890432965591882659843441851160681385620922940336438141143541949933262520506316906505144241579524978506595021327447213238700936797716294936049705593288614661476797064269859222052588381116970494572136121342486812030048079722888628528881349449130185547873095165913206211995826247596774020801632731001990207193592769605085955214291033124813162523113162419142770843470867284040990728028103811190909492970663679681262074323861600497292005092921795565753538549802775259222209633775790461981991343685791452368815226540906415585327882231049713739175260174704721718171166903862958279097607491436963995765151517753622151360755191291112049957867742405651662598397118065599438810779342261463004202859081644566556696499416756196953806191830439863420338154877111889957581814019141448348094896805776634927169824334007366680273681912227500636187469739082787520936675766345036128247513201475978149622035548607078479040874195601867444859573290940593024684620999220266497129473912639371358221086979569096891059847600147893869305481569462465185147119263889352739680984820411780060529741000637949758316613271552187949456122395738590819698549209810700226592141544815121668616144774641151962170291907014825519602759541452670797970278910230101411562434288539652713278907104426048470560895917318315494085581819883849671103721539755876756298077263860406697924297257286173778149404817071755061921543492269099370016919266992464705432142479810784743516349841753012932486662041376673662611819723705668615101418248206201801633852511306418106249489276828606296554435113046145650165056051878638070979701514910651113568415838300700346366588487592594384388492282726907446781987069301756440307624370277335083739216470268020304669830170296017138897300371497653530273175725502565139097706429487782865389825090203753409620987396251040248679937060948528935677266217267426136038441449537877039076471758345665103229542063272923753076994586559808743900953330898074364758496027958010830201010162510433144939250305438703154783594376465586377110196135757045895885699226243649087829662346740975507684085608270980346800421873800219826954137411904458334107282020393141558685206615507549317553463911650311537427874252037602612104763523576058981528895213275018280497386137747862013812019271849355119617999700966771814933320312501636061638743664111551624884813629745759287577877442227010132777072724175966969347670647932095013950504375942315192806836360493256479772617280802280506720767228362046135687162059773698072398788417420482756655468626967648987789648996631939902355072394920166668249965347308798836424988903693115327444890672811737272430243234227603797398873642669607041713504541895249082426579043996003312498185300021347651550821328261957293904433518880378784860200436012781032246872618087869869207778406129255382024395006267063026170898878493571231577539986099539190301894340584087705794934802460731851403364789363972371526823195367033250640305225103916537005513135857575921312507376996896416356773979101491724211348465894206930395671576376240625618749862265313505931885549229344453413649913802546914884333479372366357101754542699090834182971205967264372086014504651846613865055081569606004844832418923721742067528864761952749774534530770916629135343929100248684418726661936763815960784214265093812275381977491604843218536029300943527116696310393831445848882482845108424047619901459670902637345717458635706230794037673475460895587567449408593451033337444361536682035491335870137746407230156675456833850591519372761271993067652371740390677126429548679356184566157787361770292005098736771032053657797614707476348823416071977824510514034317311404045075766274889731691645914413062782313140433881758296892869353618534816849818362545545603559486628464773853214099834526371009230831263571611228643792044121926718551515021311773898892292243030196355624924447586122242428335663610400963941094090033335571648205773745875891703818935215725715518754544160661494369419354666503066418053407512901113369692911253867837595557827721458491441427006209936602422265510235207064672198942813339323383720189288292246780662982220910369913414551515382731437007818289153803115967298476972624194146652393936080455794385452670965894903640048111075004241764166385196604076254308146630881337460855167628644927562438848173030543734027641534600092867929537351340764232071172322484210581988362009680355595934015178306376808817864340377971926474528142443198668217851254189888744546991258421492948729738522895589656720482404215871252334380943250800261389162062530183995945065125435294993979981230832564397745989235483143432798266865966015499158072084083912114365083028689180600199517091274259943225167771550876159090736724415027859563990678060999171534350620912994944654659913828345443463505784804279803485740744525039776661103843477630517808174183205481439106374804255625801643120096482564747814736425923048219697732157616350240285133071851715397595576226571666265619568905920920657834680002445122110327850271218791458154932902568747273699367613166827664043918141694031409203075264316838202274425480811284391248002795722538718938931109788230599508589379465539468832973837747781274980362902844358290930889606292511072298456650456429555464879141831545247529206167332495496658169682819013706141065351204397369697569335493243577705892493090176188237915481345111526966133194861120383918616125745613935888851294261322360306347231552293554638080553363664659759230412817035056561033753460669596875113861108154285560774351628523894639068627842951998008008739745666296399976005124775755785045902617068559743569739611010943432362521545498418113368490546606371429889255189876744963150461435174206194338496262365310197265177241343602355325441570959872578594708679365326862255555554518938525675651749377294621824184693388978702496252247616819285176285841087985067545240724340399933513198926008549457062413869893649547006510292436526687551758115915429379375034854219493291992967056591933026025420490534977056396539209962690831542768468017833949793478991230846333452103308495380920312468542178524241765007092578840235133506850560300798365522266628864940318571538491944885755173042996513466369275715869044336009793850682329348233457419129396615042278702996559924771322211822794792530988578916581939240431821852808325057516057632890286798113253759141418208214476308277391959438705412673023682558667041536300949804472992943713377840947716022225278772240550950130924406648683215448646560412115604619259193132621966640765346464288735431523394537156766687253554872795730231759518069435900706493897135270837075827610327669796825063962283736450516686433183090936225673653454804047714183317986879001678892470073299078791715388055079836540425372948386708140023323155689838751786511092979166189411978498056303517840285042821435341507145821212695987111466646678523027963502294159040486423448024752363688011536103384086865054524292367414004264872078173566275082680434581492084116666757273168536149966953686053934853237131571937838543372556357128774716559824064628066438007883888406694347356068467524528727654029410239490387735616539170601595314207716794593602747408611824441813878818287421001236515452310061633018463427125536824951852868102268420692579079402729412798235584923005620578532046752012016084405891205143924859184344679608488715733101229404332756756113689072170253690453848855187330752445808990129763460496815997716056438049346326812357457228305079188494905802235911432197463590369892432006284770707586156861580580805112897167010438720172024259821758871568529209400483909314760559822264554104612349230504981148431061237972924318606651660754642131996786388971984211701827188166970243984888625075120525905471285443970309996179338240154613521499978322018326113653661438259513714235467516501536924601647396952778145563998713917365806533153999636236946166154153421483658423610298597598011445560440784370233117731728338702461493069502008591822159353809656021471193419747882207610266479506529558172613142981613813990773549067029902120575150586964290626464348473884788469593737199397919030358198089441509809949618023242309551316246189991709740859787457703153352813978621519680095546051582570352316213254143929780619486684075106498358697312672501159465122114791911985049838067411793275430755623982168719791940004785517154332069521464719039138763110184129794046776353209307667498564080614728729700473383319803726574577548801196715344446456060768178887652665156536555092125855200083790758620224002686794622479982480044601444095292729541860986335120430958506396546743292477382572376060642122497611850127028660635972377242207540525450765061313933636402736039401543814116560974872878054570012829655517205343479853481320291787173490283943144188297101706941614503428650445301400123278853270009948333872717279539451152815644637392103525177487713257991784126299883831518867368096709727926110860984047574562382397756580039868552588489709647222774859565498303059354496773191142686018783257333684305589241654168881945181555233442394760449904108948992222747835502132843606456195365169364479647249092237146001033615764140100578408148201654406084448174642978412055220632125904105728562642479507174922456923303083611505820257885312172810200540573739069840554714305335984534656318361218079386857680487833684137176797391065193865660452104226528593498144382076266840764037842913716772887404220021815703992982611565147585804149466136381132094351868100108423477173232756698779124277491687634419587547866542664203930602019233476180370905835105298283216224822512708703069722765005513799117944672480486732720772388289832795528897775938760345410306355722583019261269070217462772624259594554165268780348614941707473644716224680208172556268782803551778065714722963959196210368954727586646515030758211976049764594477658967057939814992964921082146453547319781943305966044789672178853100815237406948580658097285645391004704391876326929615679907337310665784407390069860142506702133095838321595910272120674690193328387649050211337990811273633345200831143370992065937596156619234304068183464293765581797399201713800322882150606255647383539864363753579798994100407613514419291409679557962907818014183590474009184209287542568793764580375502097227559831337705301981060423455092459594256194316462214225206514410425873474527507785646303584848592314764080831898533948696762465433272576085353594924553854719944864358144327651797013926391784569083742803968425623020105295007521703305203025108805490111770194943983322540884795864929872437126696039570959609198053053552058149139219078834536289227895884638238138027379240805412718492642737570368817935175361467634321513882380408516792728134120135096448444341452745668868498949986782592559516922281400906065984009267313617149650082999616477854377001556306487156063198158411655132473857612905783728485667860446471575832028226562682272002398432595882276945102299345487807053784858216577971519821187825643868276246934789801502377160312977536643781873506735061096369557301888174275611655194792355085735100841712229075013394867359302307144604588558725195261069991776057860846355924136238283894801748944190993859556952345904931620006803662796348207042876173498789281442829727630400079065053720344600325663219381722076985985773732984282555439297757718737684799186582874423559741797647083694367360988692390759176921015915326786047278116652312049958904723476439994259556707780723360600021974869913618719204122392420684032471087958076938376142422502579812707580432865534070012769453925627131496058818203919143733443015355590137885370024077566975146258378338221632877222163307048979339363023992218815806535051827737137659030216477540989199473151879277964686159137780206386465785191035548696115650902825930504730610621450974608895281244659394185193569633726445809911698990887267220213773083281778108366255600378422958056362514234756783649360848024849674331619329553595317012185508649547458609798458801822307769910637496087913954620820082881871075692868481716617741815336971480707386352624698478281904385125919543358385693539293206387457685182104980598254450408027415101661865052085905969786812190525100673423805398159061730838796341045337973362436533300880074904835244892918470453161825508206776160226456030287338036716700758205419950121239496079843673162871955798974467982080349561734508002232575922331351285694890434057003404171766745042227406649140453044137213697136745598906198429758886677224943230958512119891505681124954035413011961398608889929462457815497129740178411689127277844698956738912228823099169395826686939292191174214650090930005665554115606673496980811995506194187335983796766848051456266732256021878233566926678608660616239788555368231772486201303947638643874437252522939926683654603480097443924893990550492784341555727168535267230847051282906641662789453733357986328162677943387293321421244876242552822075580830024856254893264863634712507112424021413355805918514831514412885415127488706187257628338006066497167032021079855331374868683751454488222423795435165363640718726966438705922612966725851263386452339078093744684796035746455188727924433352347935234281398557240797394978583388458169593975222479159955242926322175901425873281042091571499611045448952390672414298507422500920873950617347531888712967069335198835654113627614906930938439761445612145566934301628067406641437307215929196577465645424172030785675553961556800075227106449768983863990346412213267451215585644252051471475319670401172932401172729691935177907860661744555861429761983643235994166918710704146802677680109500799373525482982810880020880956355261412832709485360836822373855806717138635593007691330123074830824726409571093731501888881643942884231419609325780000429129938876036151970208986871528531624687834719854217943321051087805950506275276137012382847831310232092972153445687110715183808235983571867087672497269309308216441426822358228873782908524425672981135202848181430171523914983570926470806195992197612633293461904896629779154901965060234104389249754107606566899755560308467278140870071205422214677345836515843116995889384923870913671163485479819676992193403332921682511190511658282264788289133488980304970243796242153063972446769417652541680994726527313608382092390001772663753957522725582339970341092001178617959677250604922863273598259848940908787871475647277032485776919270530293592084008862209918745880654900625223924005984407048032541212505887118763006381420926863345210421039550593878252637539336876388794133712914700462287623354248481027666112036307170461664752081296215276611049189424236706136259711035667741380930084108577871884120255329839266571475539468697019323658933029586025017587196989634062783145985376375638869799243885363841988095385281538710804782244282742697918049937737711658490039606831936475346210147871985420616455766973789786791760194693769202131030318402552040024946920224953129216486861355861525889025657041125963831533605588010628590845187851715658170415067391324656515879340098834863271389818150806913482761628660758927504103284319207218136932030014568721416652486244835902574795643910669127065075351931156960151390394846835745748268683865527059633265989957077554100427471522635273395362293500962439253205317404024290828784584018879172506590865774061433141765485845122436611197237788157700347156259280779239162846895091465863763648683667507471912708489018486223685462740188185868088604825660293692211668639678150065632208895016409553653256588646629195456663755675093190177464018701503150494967792074614002126095811001483815926223747003321872519798190367479995374635901393117657880591649986930031640082501741728810651842131221177155471946747029232230366797412120629967301258993493247624931956831285637298952262415136251678955413493733367617773575048611403354973747646741386310641272835170847382440892045810918002743626439246161057650121496632866735331928262212854987885250900803602784014149412573378798202891667255736385248669888669573309577803457582883529623180462295857943966361154003571224873965308227707118884081623985338137201873436955036418181612107289741470558534455679272503884546896165492056629827649048672086124170620546751166919849360745356589790558231521723255458587962456992534922813782945332845304116429241982688847851910812417855176440271219999415655442171738291854941457347944745343829670890163189909723929169148913610510156455183668461873104186715958670936098573454239606843298809234466778344614473396355923026796867303072872092321645638725509414498179956835820014476446508282326432495078118321871036536274306484174412500254820092475476115371328909537133002734162221174427445234447761337904667859485738985151785578115972622749074404615363486233189663504894787027038982533334803002232308170611125590149453457646555924267757462974076380085933332453570040977622996658646817062187086855638912919227693236306025624718549840443506180814535729774366090459206393999673113272906998242723408160600789077562443872994406247436293626459903816130226767635003886582639106877826727677150443389103692967875603854639396380807531294653491432809319718036298855399328261851908212696322927937535328801003182662307710512872631460450125580990221116909993891143160439570545553155853296184318795844723037719467649339117761970174253934180971272474801768131445205728961958598508390930094329599757550417874768086498729764582303013723032361056325592989885923871270696027723270871523997202147641787955735272684721532989386958466205196226828160721760294418019657540973223650174701853800166997621834710451782088107383751601576601353771309680102574916999126504061149932214485508185721782279098882311699534960496033221979269282720813616413399233891593685552139068017287957837402397141795482854937409453112684528295438691517974517894718406900177672606658372247917477101691601166594536201099803659584436109910490849578458009933941471171216505071328885858134859199058900543059056508469197085373863078757067037719178142187568876583633340229267133846959514874163396807549065932538113453509710486801652898429442594549725283656891939734528507657973992647448226188414267088958790913634920804080109057565460615838619711948303963678524959387819097972496416286787328477840308807645621247940141454916405636029679253118053066353644053424119687238466214565155084776546182395009087477835193065737713433915426586681085416164768631473078428321209972864717493894406711074541925300781214663425615131797461327913336227176609845760875734858629392373384673596815746193698994110031974739293812335257332520571161297056021520208847982902188297325497685120988392372909456316354479869958091396785632799611400509035671533240473118054392219232827725400363568707660014268177710806709392950292619118983053420530976606238083607525271803407201904675669423971100415053428554573750611335489961342348978911377816379187821540904706750188879224104885913271687355136531531030138523450010955110390511596203229229708672803941750919666380177354712250287617806481748057150668833422233462640485268590514610601832795978150694163589141086969001924201417287625976658557326848538258030081577471054958106611734446778863859144516087511568543980194422442598747696623608751835363263292629873705654807069981567329498489784419799848348848310851152852476006649406934485662236432663244724335961113711474710331795957008307795780818499709391170659550327842072656107665495132882112155538162517533270613831135993190192270338817500734263966140973714904095634048975666784526248290337355423384629639557470056794831336499477840046087017868931516741367604534914600258503207741187384448212906410191680041498936334562523603124513803572263655558778971047955736881832151623746883277076644637994972643559277907239892272004118753367063490992623256715085275792102549145465754446144553687635280674094169589931144258749807942315368202402770683252848647525512507811344487153938098723929079813870761776537794400793144893906250067017463614652925160355748241293064078896370059472792425556850490705967689727431590066013412619997739848482555756685466589713916236480254167303991831566389324988508870319362936091523695878348130473457187360811456243947688136748477176780057721241975181461853145567811724536645251749610926464187962382384085101200928758025888152871983354782469119607595449825067426475630646883944694326640472172370412471483106823487929831221567022994131891592216306260984378331084932777477615187383229251032278237798964386819524473531597949647880996038363586961425552955807654403959727169023509100811176824537631746691943106062589347363898575258680875837687388663634829955289506575741202879842391322726779454944920048380030487051342950009056077671009482497055408456284541397551347327197357920074397689327747057182871524892514146473852360515465683296884073171626816587430535850151678554337917610467689729297391840605802270636183942156609547480858833430134505769460297083676523168357611453705525310100736909480328928795779130468058628745927417629703822943439993689547582477373652121723191426989394440094080892411141974190214449500195390721593081788004133910218614211863828893518906957395833612577083973472646690070177830223322332973946954673742651542598098326079318529435384058495476409034780850818454292480547352934717460631364508462631260971305864676458032475019756460263340278389842965707081792511470503380874620443970913670616799465970517376438057293203696786647263618729516252829780529340935878966822752527142972254300770886346879286425097318448424743872740139718518464780477938022534251922159227647870277630015795483375693739715667924340792128581454787631335093429329725096560258478541647680717342262988519891089506280383692974443854590359113873932456009336101973716272191795146933794652769514894867409846105152816577202154969187054819102887618937681477835689600262728006447598515735183027625303837069091676090107616363061291432638124912084708559289303484941468515639871934951648807928381628978674200062993994251051769533014760617704544998401057067905818784442207329019221547505327689916711481936516098164676413266122910537081114492060868021522269994311856375380985624580108503825162004454663283114267113930925350472196342988896216359871641029709665786473610861751843761816707161262531583383552881576187471155493421804971027259481064376237320007671402953790217585525254623922432959561474961713069164665403647644637108226337369482615741890429668084682765217285016742315424204292116141718789955757033350033080211564226697954821501354572176369798712731071809279695381151154545275275955346626829930033962111703459523463145525873020668465017627222587208830342990095668461481912926207855707531168097802642225147821931762259060519127052295252363279445142969459473757416033637732362393614569673225116077938515961580222795252532765528474312909569933627309668430309319715107156310681991972338179235747908397964819048373350522657867630683031432069864602015876753636321828681551487695039607710610008373762941440739375480870260931542235990455975059971205092788199622857823207112167444387660632841770856497084443374720832857842931236569829060013896432774785162057770699346069868891001838402215099031173485871403062853658476496343207124995015611436237246615236507732824506936251447668345473092501756658720957294505630423973994901659308192791088627373378257779776280423312566756595798016574494100459641985644084009595570188133418922507989450081004960318491551572001327494117277307584384384738974391455528660399876045226723710129459305540673940055458145504643171843760699503646894013047152265283963850672356204792894336784718485571741999513494145839924898161054009189446462179350176411841774944477091389827175689277133212095752053296137226890532723399326918276953494349098879844836800796699560922972896840584673916901628686703473412475106033068667433899403593740493873816185513617995388719304750283781938686880063558173217305285148398493857601872803181077114217894332934766654666683539684877547564386295093212364719410187220066547310108187433835461219877903580952725610654347223294242403630105839759080726432285679679454477323763282086523579763621610418649748576643224108264867319418065804245813049475556763443938152253672996209844471199026557766871991963407376211682833130139167180369074290233052256064039198079439936228288123119588640633207877340573478448761241442084378545919759754974715596487438227538462391756018204592164923662708179650762953381354797993470271308791564514127256739975601601336657372339148708819362233517023550256892067445483707511963636803536627366069543674425819015386580067014254216130198801141799033688408052754554221004290244740181758270345442944180827421054922908842792485274804513127704474209551921992533411027659816042600766263851181808848707631659439619260889605204592431301409042786994192701514869390999584140276795121608147928282913398006402544409337872226709033513467430912522540969246366266519545264714619787115315030165642224566322872748682622762885992559751950087998330765182148978617832141387618412501321990426918146250820559923863530688068172265641709645293074181916032004959699106182988925838964538752596414950749837764770509718540947799727397637479107241962027123995903969149649006758892561833198474523929171957348847070110718053887908006017135650182215979509800521695252462334283636582317465012961117840952835093573804207341417416068719702169761198088420819968328100367727546811867687172302066832485255060816720633534999150041405207712642647460912485963947941162448765488592759974530950715914147715009291578260889457391613003301015946505861908216903574086283925281345698584665650649478601444780969327447696017177894935660385863816261010401897230450783940996547606054269178358043840070510515093031757846429491025748629476832145118138714098653852260016389510622463357284710836780037246880278354132888263114878894734132022634241147870052261901236544896365889637250342361620686988350038904476062731339785609010505966035093372307787014698226808400192069208172364277484568442985069119941987613730341804347975677708571935587043411142407617856377046486024933578078788119769850274827322380111717720637047292892398374006602176831630470657155593042357308756676731850542522769242371818069544647587101214042582879923012021454300107782706311875031846942362593942494970379015800064872224570787621027068369263430406587532544121519222484833248249502109042240605466392257600198770024741289430373620903878090360291730171914358932574915028329924550132460757631563282117638526027939863864796971574757121854074777639167357659303744497949865986404772100665983399204214490530275911294140306141884658499654917596159477383890267023223671454465724823436042855246969696097658733387653385578640224506947784598092664336362281607351226728193806784312068263772698457828853858066583379920102038020792094832728536137787125004387312712282691907144739596388392099076350873805046967459916190481028011671928965417096936628376146513556717479399870007615550376893667270261097424272273432740953656001010469067144215511989591199394819550057188355290380154082653989711985669891890185200731019616955675607542474320481991047837664929764214785459401372897089660458722894349616883785109472295421391093863758641976618443862942549426073749964119750937899588496347475833006210122181843794395281792823930293355543853447200336198540689465601737557725554493851186819221610424006418218548005278691629132507551280011812800846931320261299698918467070843891306160176922797210105283530306960971768859578831528008242015266028009970939304761812780177833602651945643104454799688492666634365160063572776542928352074885542076497764117840015347966259511914433858557082401215552660631031446871697930465220699817973308004390807353959376351604083218024286671770019283572075930818341922634958020400351153001774839510262736082483863561494360083950996773110113286741650527086340085629819407800902863569315590138318513158863179093646624971989793640217035640322933747843517413425988484104070243850583960392999829619929985206602651445956119768797274674776582972439456487540065093930199008022225433500893241811697878708052880643420497073789077411045949324747516093902278392183864766923416260526419747624240395152038015801082922941361301297119768143684725460135449451661833558014369226968341449742221923675047311488340675153799040987062965427784141164652099432626325697969375470652419516055143179507470379547875811288911283534811735503777428203039540916746275620377395260046986001847620615031883723212435372350956128466153962126092660933235571247776096457089052723285094156875620703202862030322418326945472508715265171824386595323715391511587803730165421807188529465355663204152306331036365165556036347075055569077102714494152693317468633088206995325947300565581765351207951873322089524192673517477545175164710590009214720171618543976446400755339158207472030103499888502162324330684359530790416683269588486180743617424568929713434432128698183938768329620206593242846465634187653177639244788670844462222466887444817457229355515134440868638437711179359601316927386453269474303556712391368971618829982152790726178587978051354928169418380376223224506485521449647018891014665794390063806184438164202611109077545676145956543960523610532579642987436694401487012692576610116021343065226079256655927709634787058107789089756764483767659058075463476474015634320491071466232814730411640993588717039817029611252857671586771704913544104149750992219026835668363753506880379583191278677167078947598629850854095209605816989132775794384555115212760714188227231394881812691552464191332171312200820116966946493509154972830685355413680831543969670611493825914222351615411304848167588723438954188196572101796054814029414202212493630353742191525733869543295245027146014813404848833825409373413343780388755196863235771071075587422014747227830821082494243461887268208568650029735951265846786991910100219933047240999059341698204322025844247703656088578510495886403299626162953343020236818068466677505249604453378753207846232236491815955568315318955106013115196418760738646132599560993188895062802742312832638887562728671448065971744162172182696294619964825498994921032454431730049676400365472074507776066978257381906033274451295343354155177266229369906478486754169988661443226514726082531054816334958616668616736261606009374050851502080354387830631349626777640770107935519733824041804569700718534279708535039144574585868306192461265575390785892787552323451751448033803751795490049678352050199301669533638990148239080578471561410296222446265398089409321403553616401569594582378866105477922543590783195542775571522392322234092657183114968646667736721059525380395098164615796865469768328123511647591687030399747665417229401836351215042442768311120132018558052091334511414223066821403525852207638289831582061358686387167374050587584630206964532581321782228363277312906256498176420084609882994067305747371701466697957673600378507695900543742668861860902116220305961827104575981383708888073945279122265182198188820187241618528691995710900977820429958885902961625491456549401084963815087124537211537577359402034042017250840350984428993774899593232809248475738198654480048041573007335917099594720393947643384094698838187040594580515158279303697097503032012116464283434573047305858867248457227901652014127893163998347490903012955312919902578761856807530608184103377093042235560534722323065410877733107075316158863138959299620710175477266057031892807459492821459727750928595792145189741636044828625174542505505847838572648211164911846138146631464646404424092356478994208984801566988730564198140707017307538881345488610519941796789460577186806360156958310140082410215744548707343084338998563564627527466270693533489512211844364551710834586644469802057001840672346683514202126470194471202407098908567527661193371789257599490712949335672508212805044596362699575343827333814337901335644360650010726440526743818195840948708872204716248426658757313904515774867762278731639117311783963642009193810258916469445105500331619593947806401880028535115979654544820343508039574714398437225794807812680172798799743079859123402929509916573290080862738292030596510613109962135334074847806345559064370171923227677057496397786217380158111450023407312338368911513853669979926194609849896871293651488698675225413497770904267581544085819449712219467067559058694856080158380748227887363566384347412550289120208360005582605833964395966378145896948353733067844525481492425682692935290107340491834154070694643804349578054618667068086291664550728510171161457838952676018958659275838255865695646886847710882587939743982841371944168771028073607994969318729592631746298354819288588389135466742609752892905309174742055347327495664538941661506615773224532427021840581521580721820595521827302682708332644927467304691578637703696052162277104567543232590868966362108099918425543450159286756852594372059818401680664386697963098365260513027315374075543978570642008123140752182983223922831851032378132830764851101507430138350898236663575876393113331624377131077112869502914326431764686817056749195098839677975946031041331078722769742290411344542596579793054600312854522526705451451672365079082139120929503676988296343406300684629220163826916858263535011017168936011165329194574948445379575775281435373063407580614046464202322771962196256900044767437670753453580553917038011682533236134230079981183319101272085717306441198993659349306276177292805011948740341450612870722659185734208915824532709979740235599699566658918590215077681480381257233581571091746760531598739306227047990353905744334861376706776442690091791495583584134370809475709686306394869520444206312666967912373973013285275635614517836200795596532032426469233621037706073059309756647603545555910450421617936677716487036229558522153003002656635024760974737808330655304917511911960950655287306305785989604817642669507292039864945097442081991445625948033002017403741492225466288575643007464660934664536795309273238147064294888268698955672110466928566595697500780560717858330286941629756456933743375153026697173015277196886901766128264413656019236061226565181860499982688426671364980093304473632948654550261816611197162647155995022507377204573399295753520106012450701690833886431731719554784999153323563491101334945197516173686611595415872472252969682312670488974111928306763390834028416547675791716038656890997971504608389660836712522355924318645656983319392149509618236704556183245640380326662834760005524078084205914408910875237172634170202483852914897968079899590080658245591619499701426531952553612210761433538935288655280774638263819920235906940642051591816244469399728698068221455728933655064705960948533140580914009970668052950228855815777573840142116388162338901820229132002268472989465509117122176955575079415235746232191129818003457506659669591640059411649596161674488784982423395548319224176276995395755506061703468344288267849493630104004135852578814861785958090727430681024079849788347007408888984495006621808564161253766643253781676375085167765594521073832920117812482892593931554163969579673435153793293260711024970295912367767742574046779776604918463579964952107754576323445689688368717732684406602186513005362805767713551419656174466201349384638169980357262942211151272808471143686640808709851466478403999608505939787142122395574914704754648493061245058773475936831705694830722975504479614989444139768561930736902777754079638769306057731130172602676602073751149540302359476940985297347787588417715342319377262880133522938380018722436541416442686114346731042613428346666045533873432487446879428071679044897499976806266211516664369305313432376461304283325080272200760646096964499959213171082202041341619875736316577454210405424670762619402769624020352213281465052499115406982418671309617499535824990577064558790667001612332161259460028723418906227626598715851491686874100493794674276324154843119477615598772400760703199574021399344130987666201120285199465673413505177535679683520813993663003768689998744497422178727158366113929375845156038799157183142769219676405087394813735292147489785702825896754791261810331646602432018917644412113595290306508251076795841419788050021121137854972668138595702317572685049039440540075086985624167825237735603016549230031073725047397323064293978364830489275222696122833566364939853324734090695191198924845597290460545007746353984129017031393370100743605155435606335686308796924197235048109201690301958448284730483524306210028439631369338266650678342063588651749159227204019018621042793192238443241042981364035336500650044794095765995034840270978211927025283080172505836670460520016363143660148751350534627177643346670860791893932494102151583748439904274175261471765890612951327052251988519406240901146630347050534256020761747617198664534258768169683299686206616910855387394050314163734726598847262093706927664550563261761153889343470977363740705981881057622774280929840825644552484917682874431569480459132906586906749366421788506152504348572106423445281411581821896397993019835727306830895773896780621342304725690753319222641433881070008618977559376210732596931079522641479404255968969410479616250591190259805077121561010707640225994912173058314787207276445384355125278222552021342443346750953606508854148174095801968668362591536301853238754876973068923111027281889876067242682665828121255614369321680766112920135323607578412321125108851658549657214600193329853015277241248887513989402347331092473719734932592128482031250244196396586359984220256584343782054894320054343514976860436099896000200491867272412072751824847427054185142610257507523200057254418928129318803510245541021448631388301088426989475606581248225788282540275496290873826490158758333765162537095472267555643410199320730653067037971707580228373831230049339376468626138187810559661804470965749738690949457627033109804999118863826780858350577231255173616253647192903458377523455466972846489412330208000847760517481744148090739924264735075347856114491116265224006421396679872136923280194558496992814047392961739191197588132049164615064097564190238709925826550271151117993865114577550099212246190768427017775088310479900717887008156436531904438147795713850205785247452077229298363680071193223424335661963349994144908629164597908088816891738170450436811516621646626212198818842973416367230031380733919656737114740284395022290552075965811050350795140467026939761405417869468194046976510912146909119157076094525325161862634558605145601020478578213779587900447890302564235929490293629730507300844027971402675340837183427982453719129202328694834252507457078702543941440068669231158962985592685209131600060582362805880824473825255188674970042265602416481987643147920025834846135163792468865772478364001590675198072272197570212063199338885791583622557193882278198832488092045083179381969508932193763638902544704312498426869769623398684852763693112575137116090602661154356248501718030464040588127994577313840356000302824686947035975031840987016166659894282379389909070076621482960291721438676581161804915115678806452812201952996248870613123646243192210072843019953410795428858071484817262146315562223603546696376803815119196701384000717028985085591648656271150265189281415593807423900803851256419291900824371221210016869793912596489874899046124093837087514377131151909623649698675292978571058145985935404122149222149440444043803675238438714147015691108681252899466990126984406767950388367731039698365562788949599681312069587423303441219121785731064119953268935436163045884297670467877037102388581937693588298914509608809348485708526685846753650514435534421623291276887175248197983501315510850740753755123908027023129360251920078798471290715934969776094451667531578135841375444920891684810381357185031010773276062248430948466525273134856608675604493075889310549772253872165818481320957317969936379003309190458842189724632842759508878752732082450662259071367764876922954530663825001208238037261658867334803810119483058140873842107617882390889732002381984357338553823211878402117568691163380213759739385969893577367920974918080060570168633300894396332174217240998073467884390504723490334249385315589311390660055055590771941455759102321731847186508664775850176510150664833413529472902343807519002858004755484499668435744339989014659132104313169713033909721947291440822041896961957494719328273180606689205448006827932202477959454736204195221792452393402342708813318789122273865186175096172291381517059463565076284514123490291071816563468980960024471796927015880813214904207827208284174862416830444719386596696081252855899319564019702138474834898085246993207876447102234547963386227357106660672759147609912315125574304056689182885206900647268108818310986577389516545306975965481157412152546711713330178100216258681672237435962229774420380235164941636158060447436211611543754061623134690114116382393033955305972538561304104765490649077379716434587901756663711329908756824927889991967857892629827752430111941366993839961769098248506071484457371297125856095085231342444622312494314603748435201779679281089172532079578932296703802108257187028955601287688804866177004607567284033978850965295956139087487858244467893034521374416083934820595842133916896508257451389728128097632621130357685378630872888216789718802443543321254677086240552047582518041055760921591902128467114811416392523149111638533645324935795416430470444230432590761499565254297448784812659745555586099121446244374668477321330819079236334054888024835935489558532911400111573655743599118531783284326992672275047395151647573499734109829166079222630861581310228058249048662109588296803831257167329202033877199322691771744199034359659736204954273813833247275881174775082082706105549482472794497137255799174748483629238545490406604603003710505734999358971186347214107112764866978733289134090810226414274040723877599137104836181665656436337946616999060988541005271572848404956136570903889426564159943246923688495125831661621874850958207146836448976986404693798295716624562681597335096465104506019745085169984326010431279077566501936231063358902678785777479283280238317739179829433973680895880403008363459252112383764324160261791140588056261511614863733937670613612102985155284371096363061765878249053319827070304268916907222249648372924888883095026945281476879596845172640951490489003854528446957345971224408246874921048105515920308381036794447121932023262944173122572783208323130473660537933042027774603406872929007094656789496817954030364078516502826672849756462564771435655700391575781984876655858212848593020336420850908865249961839074617665008809123219086161362745687038052968212767019895185977013178755827155068391497987727591128273812508881490179228050596478134436049283571413338769210129851130500349213993000221606810501163700400528684134910801896156741879320235216195799891031092729047837960461592466056802870933934525113039983786214481445741496487044941129626772340378228392323331357151020564833141464258990105358736261192503528010069227857685236431389993424155296032180310744195718262725570486347758885811406547520677909933022247507685524932175485431310408154032577829644519494845179681861440037887030253295635747786791573452631135922281663498960031640309895859654231345573166077673522837926365234639450865458832642026754935619529899908411870073473201041866364505177458482614364633827355453069734855757078315096410636872338418921590373253777947745849980256782866333430595551866355958276671752496342540712772909958724645679873195275489859183012074049348985908845256505805787535125779040335319524313755168061358743111071565486297237407018395150919028595194376630813719690754511749731461251654532119372818886026246186641441218818103781149622964821800673695496487027782561567744576812506295996481120410965873878754268119631500400285992929519031366193123224971964390780522761362816499133551624057399852274895922589563324249312443089877393350377238282038830408424169371870362551753308356535548901141321259249339834010763559312366642029990469471691742455190958828693527805591040850092673516139180674983404377923139009661573124684358655880620228668710350217922459829107281102871974711156541246660528473259566184222973315485264844228763494631112435165236670479121497829413665266279684173850217173123041336254636674110665859673809440443263130780952095547842179913515391453807829062016060664274449323221181765659997046990256428887963177964346005077582310222390659526301087481672357697314170358586782057694951676563896672894444371712736490993036275156253097018822187911362694511937445298884400507057678463554515110319611611474243406822601957495556070040590250411024221230284550153957815333872610377067880462041528758830468115265522544137892305542348207696197836893946611797958630972656782482797500464357943913400746029681958372998804618554416841934842279063635812185267338726380186078792827626279095395513278740251345148132903567176899235915260466634649896997744758749881882844947511991576376324242755690057198489807071383140019436362252090511575004803788175942120138362104350704701978861160764884846491603737949918446848531810267583708701306745332374398650028332164087261443747259949560956041668990928237490778959956034799079261571353836728090941743202712230586943914577703880737923378432512223723290396038555980721453631549295494836630058910838852966091656223080231061832868560239333228191336714389043393864441596779244599296758192120963333681081115167016908042506645994652194196388889810984327795370050642900684028017845411852173151497642131413450639101930795479158116002501562653287265024622163685989395246873730596896525753501213095728109416566559977781747738215046102559210377781758315362449940014323051737172693514013452017613637115331584031554593787467265521300165747230912183506252403149680220771527007361574383282668791609635808313984326956725931234513562562185441335057567473635226989173380721692467164544626219671010307214170814611123675738883897782346612973752990824375576698297028971881907216126225679037426350992286593748046014192122324688303284743205708513053097094488301945845051956004983135290547523836702174491854594600117257623875593489372530100962097845171024370323302469493950108802445176868049544687084067331817972856373376657438103567010417477454912994024477157524965737755128771628357488040405740758299817382468137178517242153141369505105866624517848667358815854298771200285063845215208611515458372328119655724163872787418083037971577138848367423827240142489411378225861236123115321370765702439244850732932543838261185295929413539291748861801995697624825004221239093530171829934376006703956558276215841454589446562073838549533549502790961221062536926639298867126879608600730308496275325099403908455565364826629346791539070304751109857720259693966612351874549638856541984769885696224754368928000069198367988112611474992316042091475428628844954124274345600929953222590157493419155273001938414390793910500128683120671949197274661873294824485355952862500913608064679683834696766131294659730859340067061491924902083980734604202946214215289635758527411451530600608176780001153484823535084908386456893507459003134339844557992977819023472347462337330010827711192642453312696358337815498938872916505862682924045234587572041715218588623314548617334072488774339729220539076322126941981222587210747047169975829195437309963443771767051345425869813714735272130403697962586281464858952243490325140049084626101942861882258158182201246315663207980512362634743208161720395700046862422129284028479016641066983540429339578209824583395743451211508830658700429133500310107885886647222306484897402223580109082757188466432836221369419961444960858323820077799560699397548763747625577343251448337686964556166271532825173436471283676694864721944091059948320039372880555717816923901172893032646916282216319504435314060663015573019993105637797989319795981602295227621866220280712130360686750580826955174851805644233264646348595505558549622819439869933170983971564562365780847637879972006708051797483871769171636629951395851334403063068956834979892775705662392838903222108073536766718074319962437117752119280998819502809737493425110256277385356789438461819474244437757578485362536409089593442397243525207241208570997932791001726182953038810820138283550453898303727272668556805815418494295778659357099507947463167065352643099476001884318412542535830816819280653298577850303400689941625014678142268118778673907774605265457992218544410538216446900633660207384823669842734187035357765794782859739196388784333404365121431913981693649312205933039816338655810871539384854243695656583157306362976357219316292339963246674699879595498631608084213135873741206602200856064793093764769896499189959207348655143620881000779329407397501430668515731013307971697379478027554966012486274786548440786280011143389718890027970715955354729543586838072115446774030498879830440143492086207539799101573848998173634790863236554073310526715561753924216663725429312318569091505800276026651872859418913034113871096675668952481383970248163268303011714103441469188360263849561224306038986990567139394041143875585617848659259230665381216880374108294763018959658033746010342226233699744272287442904841594157670635075921743232785175315737535579778245175385025807840080534865256132948347525418007208158930079489572077359037437084828346475050468972848165481869311642767125388957531264310052838198553141965358583406100186688175858085685882560208428253739127181029931972554771643836584093926526531204673918708135501307021123062843108628216446680120104769502791834091387354554941407818818271770056575969417406099784196864502262889756316797453726429924911952433040411869573370520811829669024562734846364808771537218326304184537179980648799987624160109700921484834853994771078806951940545009716706680446788940713978243920018479863792600716831282422158059764074954439349461333320649713082888665442045737840438391642974194784567495134119776755305620955119421972088578381231448046939950960157380052180386934364612988675853362212187802888117981901533866953132842435197575627396329081966911056984383816312565304822445255672171882857764450002784351883433239549076913412026818057896325941182245150082796965693502996374454246786779281079362246102377952160184868376551068511994091863084849958091876961328036996019122075794026060994227137849251398558342647609927977385195722643458176269691153023229447659242282688357556221231599879953257411870227053804160835344055650510545298716225168608317092881716740878614056058257058229435332471213877482605493444018127645059657264667064960240664975855310100591872563836729973744653050004421528560540651426426257561649480709205416210749445601909522879046205006808436883136008781270990128424677286690248695687895561630317482709361385312296028774585221552520247910881157093874942058988332127375905014604642237784894044911823062463816428356427178925924591172081784480677063854817197418868766486336312595742963314229231734319882474682518826251252959587525417294731971688296728172849078846732218465182789932068236596795436526298099957248022004880245261864887606706174529583667663456712288025018377683693653498783729277899822168702033830827282925849570240537090326605017706045128605748858855551693240012778869911607423218998478160588676670843213536389634959348895876740025149249677988486076650310350553650288501841275802265773266592833156114227101745245647894842448357066901415272989763557434916220995153208605380985669639997683468803210102413853940756296717979675168532435184102969875333503614479973776611308777772436705738688032788633967032900407754450688857755896235087911100965086991874303227231106148872313442534201564085535203332742850677032912662159717861066105425810399656581756435020101392607784719727264892165604575111767142612622584798098104079151300879699876251074520367335765485459737246077657867118040990213535669504337772228587953116859894812673799592209720769547254095796546355092960805072638697941644483416063708963688600572553737495151886490868507563453597902211128463667925577076946668924822116598796661569443329142205049891589278721321868756607144612966839564994457759620512060480308883034666324629779503944148092539603427947111546308414435079231562470197508601825420193102151510815613665923695788164204791361725893447525086696236359721081860722266660011812206570361403772262989883257116040853176130243909721269036723556742832384345048759323364324863441591526232124638905991523014140589764339360746250858177822054796538773530212120048203776225891093798996142056077728145339105481328126712860284465372493462183150609464060228974743362259461203077218026824567699653115156713922933799562224308717737774436542855223671369411469933471239809442283820799637127346954640685914869751216525267183071491330179314374535633147798826285524573512857180872349645386760086186552505008175341288835359653759465096278501678754825937051552866067520602885526132909183092193559856867739952501385250808262493518535651056149466282431921095068347427111125046687867898702186103744529224744336506903251050315753279930980901695595230410065873073821190301070522433996291447590314481494010371052764383005559190968881599282617380005914472049925637430357220457116289395271756556890099628096644132516122762579903012078967354490016175073148133204813427838097876572828006300733244004307709276344121812597475645735831985392867330111482609792941731156149257669939117818901831272278255497089692157513682377674767946384123828548019193668527411832780436126862655359788236311980471546329055950894464844543127014250909403186143200607826408221206383372534911266540153201059641546896173485648596999065698691244397429950118952241099867741660545732943416745386861057943298785358928156573542987430614091431185139561456061760707586454921520486758712145856917147052598090676032507612711421032568358899154257911753611728115621269699029937859297479712984827592078308563570056298434655918324499236342287742856076790491845422428441140312635695975674685599244970410242091975015758923735887983832953857642596630590796670594316529109821511036807254442260325107058740936052924058848791687015291651290913620055207179826674790821402045956562876676676128366136291287086437789272673870780522126114611511394985380932820918582169880231889683888648189404713747881184535451762568074699864790439635951544753041017444412719791597951792382536653642433256351767346094541174237153815165591249677736608185205654658282810465317280066242989331138605244455529510074797874624664277731030236669115953181715901337768905972654340148070226569590511481163514875231845365756625955074055299591457424539367310750807161117137033225121481148690599582856072280544341254287560719504266020002868044532019669832579435521495093184761180437303623998128965414528902207801879133692803830517900957943644619404847004184010073581210083852153478710462379529537412175575627938842210230811585044976030549282111112307838998785023795177630533759341825499047098278873903897516574496965350502142693171350635389677388334288846960316117875208750124564601457305062741855104367318367170584534516080371151915613345806777671192708708200696712947903891285292046850177395696825502013880440332949896206861906662145279885368284587950149855789156315066020157116336970451867582740568558451776029232292110211292510513014501080908086739154514648576554970702709179503972017886615117304296877893610623157881679619671903521344823108475303148286814289908921374651316860517702393152735619448994525147122623036775414651203064089174467722537645045894236573682772490709213830942519512732176564938648463119872095756237680474756537322386980552656082489182418106148987977363556714204652981484606061310622501807827800110334163857822902949556439046876443510517173721183412527807786085728703590397932504959542943380360023414886158550381691944879049608360988125387885744574853690902186837434714932731151757995180579553303121936864311913936763728721623210061781495116051542728098225274548246384566787348863205182466044760333133274151165339568726561245658681796496426163490495855270407940325613692690201741579409695824076807643775435163660931996944012945583153010956068589708539187819456698922242742433997531706546284663030482597704967077325681786430837802038135751458421217990423189874842051613354292448613790897233821327977910019004405723054871982567117461131808212348645307903359147726637177326478507156303119071366947179273547269034926927907914270038931570724532449188730959731348625107563848428075829416506977634176833841580900896117049062208157341292743390759862223656149460253812130952847923456841923986883005917068984084214183341815288728906570928045196294975817798374820706140466267774384610049749816182321553689359658457322326892548203706125141209814414585815515848229940873636036669192031376079755833219824154486543700882900506693523612440603880413650859196818110726224934689076956380868348034046435987863239704896930516367499291972472449707888318222491353134183969150183074295715228303417221330515119130885287097496931337479244145186765711255984683375124830444903268764428689394404798036054053282626575545300461755377591955996901813712770137099518948670416507459587873304189979988705195964804272500748556268902309831137804792192311439908808021609886928731150147634014678860352753510439183299106806388346282388829170820630007028666284954462587283075274464051552343830562405968302421038908407058505103880694410762038213040983312930737850276859069707055859520364900761917553731382295196841551904613321614425578774949555102300365247808493937961481777793248160452724141963188653080961850609104954721845241407390885689861712037586685517330389492524165516763392281402637130100183959309485791268636767863430715788242555183228742263740753980779525987597273308037999544451103623473231909757269378188924086224585033563692169566589043189163697810302292283937566997945887265969292701262339728774354569912474174400341383372806023761555495845301107239233743314992603692046041287291309274158500284377346029330513203795881184064459568644138742623630035814603011409758024814694780423671962491629940491807124516813735430762090314884963422299642786772015770082031108402367339950837035167742084974099024858826125971567093959727273912657251885959244588485800555582781900871296961494384678140300578775556493192802403192488234895156045478849929826839212417835637550282309604659014865934829876181994271135680895272737656517564535308165808872843027927069098039362205853359687350953238250285796802676369468127288904558626358862414519449638283080854189686173514287244798601934454893092460808545481003354673796538907768970338807099856521179594109372877423015581903786289300650420848995574972422661737289114845908371142524493427422458711313243248945866692474957575819192426111577944673794644073878332969486440908488287103514018018548583302451423524821536111542031582935917627771975679331750373151191044164509432758500315201163086813164345055190319846957332671705349615075881694229808010167560495307427846393068370263856110784767268230085798006689701747483392693808304658989006290272232071139184000710656838838924483243057892080070587883728628151238279380324111727863822602970760774429199600363644006467061898218059500831035772888703872657008775764967568576582039069972682380889812966117122562778857541401543041511817646613210709087831991179510351212355497158381372092767437520782124627801581812834391329924725165100422494804456416931216642935457876467305472874600808198705114454836445266366496634478194811585363762502373007620124976830977742676559480276805024966375674968915244068913924746019207530740365531302880606251481718189199516006828795228175428282123024219073663044676192262824461554459557347339747738745115141502156500721964742603790736084317658536245304150606149660236919645337923159384473009793812810519596898786680740768760607486042463690625951079440835619834660738325493381783919731077368409018584841563150280930251424916705958468610487075198386171566120184751743062423607530259938739777921378862268592788097013166422693319333417288960082448995282976677514064464451513175867870613281808341095120292638417380661101482220822187583673435760693187466492933897251245763491528009982389033247068289641898277018829416149842414600243005604048686095928558503214173734411270060386050899751358879127268846294736631824912430850681377608312372584157811219738064874352600801127722424046994607773578423209385109706802148567552927892815166052637587224649671093181417537982202549331059260522024962065766563044355569675322758944326450460818282543013954145647667225667480121887142842983502373515969854944717673243962420937691837518609569556368247183327055023202429908016536830166639423528524389743653367622210258036521314054848427723368054109448652644865268120457843218603560959795970416918598862366842465812763458574445020314119889284975101987138222466088584573576904074205048778460812783824679605853424702209050330127353643159133110692229902801191979161926671854534753946354592747382913795370945988138643599880685281613093896073918825787779547147879787341150133433913869725814812904958477956453249087571277822176392783165109587641801505640362471942628407042920121929062413291876892141240389964057910419417358357930531370077822561234716251829060299498563121120097440137715155388356726833782000729449556407746971630739822713954399576863510549116462733537848903231227192060135580883726572399504024212490716296780123152572192162325804271060027785912956248031577931308990042148473280667055370815219534772272578014106680964573396147647797501200122613639131177336702439843400238867376552138292358463797956457811028022454366411087938230245961492383300623639861697615966582289079706712934954111026280303779946678250634746798481255586682166817391069756860217544662823883168546301147359066402079357095666508497929648749531978384941501057469354176095838256529776581470449377361538155592227939010398685574935069265431900121425073397405962647169872110787538157651362021230149207880773276605807827930258500776959576739429735846061899343328103005180445584918898434416218587481571946951870268160515600963779259846956579899602589742977763527665586290559385464495517691778769816176333736930259236574888182745822414783139204894238044995558328689563148240100932513239526393763234572828770667645675915272901061438095879760184309530613585590947795749766069936645499562742550295765144569937334498948203938804325492225936387864645251924759265920000979781385560733797597966090247026963495833414049421365000768328893195070421353359130711340020222708400602582285319270392778292376224050762328215248466518454405367870138403957606981191137295712117581832923933944238407581679118964894904908715045637433823263187557740833841641663001249306329678552480412717796474390579830337715295560957931208104528838804657780954316658232982549956217075390061473333335540004464430666311326525006870257287702120077401372979370292267983538821640693059467512335388814064688951622276336356939791404406835028021294987935078392286627365802498911365975809362080760288042590970999807097183282498006874339756799607512262077703449422723031450759949656320024217463688719604975427185888086693551409984296766428274078176467498374768138684757400688307411342362803290838985499388144594710693578949024957285186009191242142697939669529431503550903653255334596614871298808628513894005180129707752106191958796271709773626667525054076297676001868983802120472585914274615351847196272674445946778179488585353265744874565652773241584810656110123551211716853339476954810635408183912873873126314426684159709780712582088850289226076509468695561423386504788634501982957953511850332418099096793018062015317111400057116971219258644061445074642895887997115888479980952216857257086374454179250369438846629769924084426521092410684666624247655024452270692986306383510996189972435679609775362388033363932936275992586259054544971260104592196251967173210126242962345654031581318146166646935352429457351650369714705681223924149984696455493202616448528318279386661404693896642755288510190724518562643023999918426170653937168082547679881565091868332358200474090368789439816743236602001604036182871045056407861146393545311244618241174740523255789341924823621380725358665385276667473712028978406753450667971753582976744182289336951454269909487378911381551708304986989953867809020149548777821832444463621774486307160615210767303687866450900334239307295329170747859502708283383473080721579339278895706937643251215463689015341711753181665057350595375938122632696185875414415331359137274175880952788967317457785647715271293868277700452487222017187921022273704528701673861024320479969470321897894728619933206970679735157699187427349500272094107848303660431444162413679671420256749843507129610568997111811217976003833432483143927052312762899676749796773647652031420944530836099117850987167761726368236898247307366214047635714107093493343259334938624933167721709470635538955408490127279770893973600544625334383788627070380718734460050164247717160852485608906447713415462194831100824806565800619617588056535478088012444504075062292244627062228120726991581575898923016184797716558936710262484830359531192202579386266463862001731511194521943545571434671243854630424965066337180490507138962959165071721145181847424494135693487902001738069591786733845196788825485930296658462394395411916586205552738160008650828631057777065378894754472658855678029558965421350760070775765177417651076316859122413996513975800557130499036568084642910014835090261574427858004023098662171654205680604810375727883876967966891312981855693989691867262000887712728362914760896367988854370399012875545585617342188480104213986994434999254650718161591613969930027019374491124930762487819861646645376105200331214984046119401952896007619376701990371530668686260740215334318118914619524858339656177856847192570259040486158660266258175109409567077442139975995597188708879625774005270548602952640830296186761643589694501222804081427521919299322617213549244937995076252205835569664962159747285213575657544896779710322421523023295276762670076672413613646311331283914180559095969630586965694699226167116558373065835973193811103437072262096156160836779239295867113307996594394895261019407957037115895686999389550147340412553352320590741406973580675893492849866115140063704040585219216441944902292752138493584521142022100541079839306905222401723034695921934407874299244009985103921056738871803218119118642709890787397099998366192465457961590228453466336037611063871966666390692583734102550515436664591527944709630779463131380549656487165941364211338528025984918944909552714639214022401756749302018119559781564673397658593536019734827196411030627816843529134241096242969991962172716660292039295851803985607985874316955146374629120627252872836289344885832804356941371458291687266521980891551206686627452204390434715195389237233580793416795481825368262597177018280924551705320056777306634303851633967063430059969144954770348807811639405665790155812636314960602644856526022638232723474423780275407764854510970899077565607841616955169328398597051623385906035663905764427804403788696995931553990387012805432327591471514888594289445699185226442467319326933352847001131459802742120887442663237018426332427863736191914844093299950784534194890044473479293044766737710422986989888266931012321726049200907935657369992069212087101890066967414560140744790546541654741884099391955602444010701272715329568143372685919488710385776514158128887273884902963825240724032639322931276589649377538628374406019298402544850326731634113633998737812623256636439378637422327619567174071057115744868093073007509100490352605510989908732024878700788721133767178728757197109011711161824560733960833609507390756821950888341849955628683091335620826454510973519300639700612144238366473263587378478130063163857242168374695362001983475173318111730477687312056489557777542027704751503553441762092032194400504210157062530313424393332975927703584531131776084949298088600895527707013286955121600953460198210324057878998532514160693232161917764659007606358368561637105376768723863031614293617025926409577410912636924211255252622856194124005299489061195457749555192190697179986196632952280563582952966647881725743483205867818321846679604106969939418449070150217592250799115781004708651462742118986984213625504583601730432736509125739437184370261075561451367169848628079582469857746926272712851741734251184727027590549954713549409880938033562231009789128474832659457598359244949917064814259875946196295179836022825750889674473242043245672377422190140294382114446802533701190831169327831723759185970134399473274190598957213026896750882084968282225356792862413321958520951792824629468429045331957358312685876152376524378418804583361266104040345239535322370131845270766928114799229120034712482138212661347330050366553978847039248235629744823717326369356099555125098111559116822171334693406416265006777651038453968846766008317475422008126271110307424999353470744314722300887315203407107341892414664616496556449108061443328769383562218818140582855956282762184871125743685945963184315357681583340902417504343461718588845446814664609742879003716056595446375771722447862915147743666612512372033769406200634357325768562611552930314190004360372562026231746925723723021840871960363890324643796490354515397018504975536845333890363726782145335764507073903765107627416441516325780402925051291069137640299748653903445275551489040867177032055411577868481083590516569182264490967138018681833093926611908381241344652343141311421140667647631161378050281859109866030599629943384049204631327790769448859605178541203831814994546985640765637375995150782200901766225762098912293555371921556170106384936742478950836592728437034910524540740693204518236703473583258606918918786814221486708069279594600328003597790690379034569318447696892510657531581629971068861718179822966019340091811058124042065078101992327277248035634641254072161058281362942911177890359479331239542277799204381766202267949800808044735358639916587645860788720500913112058687339971069215001871012804119002580397551049694785126592744119085301793863242423516534309867822719831772272889547417733235237926751746893877344546036089798034921202589390651794277618790705629253117740821100504049735511178598583033314524041887007146512626773170405218095908238328415644254771291474019208039628146073635124653381461216922446021512026185726852191778583595203485357695695724621773942842816628156022056123575732722918935946730845329116099860132806838737928649975034364543687067914238957012867708157557742532155116155843230103917859216425322356529744948698590532497975934953008689038500121796748417433701536201821963845567059689405928044945765402201457893863707518876925348737562620680316483335485016494644661321691156227747671064453631206371506314826122237580426926228769790408192199840127496422563868601871867374552489019101425260551249799371857113475786330489575538840291151859963740438939948536174075346433672933156654558151989249826505585191615601483166784109673083625652995114683356950744925887092031897647988267383460345823992587452159018686191205875307438225159633776540860615096278362139503357742912951765306468102205891973624332306535035485539438545748117732492815495710112075540643594690980719298903979690392806490476761232601153952515508366167857742673113119831990512229392808544677423450688489098112360105823887608969253893176822340568871843375355024365583104292329033601448769235638998442219621395365417466239807475234076226359213619019308579222485903038604836867989296642224729857691568190571916506042779387583347933053009081431181094491551129888573934933145004664805193176486139683965748722287313552279389013756305795043205802575753659823545403232155626519883293851975914946928325063464933076630063584844398720368117495707754974621083412871784720179825191294109630249611921940674758378486440418890315033665227780830724875981354958433377459617325073745092187476384935286865409120833782628137788872940683570990278806517157511335649455737580254542724809483031544619826358716961627832255258849733067809712374352594843194384221250700171576817016011108556786612000795078947764896938084772013386573080945838652887181232239602152046148708101694255554179885800343576493988456641618678551812810353777320217518369158198072244980423331429994996458213501971683957877568584200331801984641641424710769917096700617454703751934849886895188790326517802586382233127060221716954443032520742815590989118886045609304321623966724184565133261922290165799153247089886531129217217951835764541887385692872751082989033184069590223591244984827140103634681822125038338732894862957431540318744205320737987482082088464124842448284445748109136599127331714389251456601187000272559589302708876583007743964149068220722770042500521862241955872228806995402099721664989118481029796841716222992454104723146353143199639768281057084528525751528214669321544165760138478065592018027441003067770774967219998666106460874887932323409101276215645277751890842750657602279580868219038074998937990226847017307161165278812127530100632303693309116743313348956353391437229507270694668008995691973149766929517367967966611639035974751043117192580018344312336796276451560441109935103477235977742009635674870483756491183236352901958810957642181675737157372435827231170578050980329766491919673736266860301962648941199751953484197536236936921429628677325644500544689880912868683524549504489710549190555849893932001663210915832331139361642716494194872735119246844237416593281271707051830620367232203368611784872128178978637195323619399196335802170161242431088641654591782745803966139008585194819129197020195998372422939275903066586407138675480187791001876847632450736721081924915113173370864933691998716429446766040528759727578270986658230192555640062280929150927855130728120240640485300468917625882110977605378524552668681645099442115042075906502107230095750035487718023198982104387563816897193228430482241800778276443814051188317834955585992655216387575668710670017872117919115355091614399186431884890054991773500504871042919709503297262550429537590805648683870359844970512258425571385887530372222506361344614130258946575285146522531792018395072499462711067956494328402320082250344517399836596805594677550634667892282879801573282280834384597839519014237051401355011432273941285065225114822623263444069281058563455452919661586842870368527590874484901900737956192619508977067311888276859961735115795273606455607460931634857680499479394079246212853758969907061702111045962509762004413590831514747364666512442194098695803988901908181133725845502788361397856826805079010576676539470141503490112579710517253763829439178039989738848884556620908749478920015629042529880577161545576094624795524848996659807892605236618197010092306604907404171995869321642088546586400948363319096722173871790547814565405897716350886757984039440320559083067140627130648856822098649472879810389088900085134969609634266857674178368147769013658717744479463896287301611528104104045034473427327134952791438319502057982618569207275494991365615315232602959567072897294882102991335686089349582475586327594342572190009286277978261206976408670488991291398683991233080171518478753596496300704158111795241718027717845669581546660330385245646820789749763664614681674284428874321217043136080422393465456549847369817121895174149151322566269528422330007793341533849644016321136514994519921446244295924930375867665474930876771748672731774052015474283506521642488569936715468963178473067715680342447455255045389334700193847246519777376490581918993516406281684250397522164044068241121101161702822911045859495925466685096396938237008274538691237077030710678305222348068546251524747442480845870503532442860917479423002760350274244567541407342246644614838310778183654494021217339901570570761229447142214105754302643827734132233094290713388975117998652858248795427645457513938548741859907062361107157826033451956308806689227556905362051160467891681682407751191344566447735993863735220349706139240854477668559065098793933084735699178017047292689319744414341438666203086438993387831656462651098389699230981912688149703632145742827536428488111535217852132796547497650102594649408564873054826346531557410675944279941727311995774283865010389952261378115326817163580563780825421114831999534102103727914726900829433041068484300397961217544158460395622658986220801132451562117628643624765465362688391627356804499216545178492129970884747648715582524494092889299915636217950984621950325711590152881974203442416942920405401263176785933111445239566634443024472597773533464194181886150781035108286184449070386921145385145298493582015545643237051997693016150089367357838185144239293815999603105372105551512292029468485249787385825560571342994929360016336643540030199273674952374559310920611777883426437712108846337913188409061654067016160149157498970774819390831324554062242281947748230149709479014170447202378484493219384669437943438153314828708436534920750587595772287396377391459148855711330174377452308493667190112767977992680459524413299712895275025572787016376546288936816402466140448450366795529464864339361208643607488049232573240731107697779291477702557620753476217298494509241946499707210216408833464060166732348560767441325149911768466123364095539339059596956902994940124478422504083051225064652278773749461039374278425681412360613356497555940609692700882270411451049907468621164792307097709849796611477195655334511353209640121302376062271216006769471334761198617979987542869490087366598631920902577911147369132923360784548643448230941492414987537642904610862663084961336776237815358724707111796026592285987562845905740933259661886850086691058482114986440961761526061693812366557373847732745320544311370050819854776742609887056342263459442597468394202278676133023996048979610479125679695678382583377448540830940956158733649686726815370430047152168400871819694466959740745610824161352659490183895471409804208705904994790354969524501701365417836019896404390590099391459112301409213212994168637445855168685068066196053490314164599124562310778537161286160580758128481005124450472197666137135938478563394480083063508374798170264198043770144962100801369021452434090463526771601840101898297957802695632605445222541316778951303043985402827257409531375979907905362867056190787116129748927849762411196792641558313865760486442329789357984287497591917448547587601654773978039849968721147245128826951018224476543053818453755530348044327323157573483434701263664160871926061292236351954242302742968687977408263272825135590305982509066351365598903716278797106843868390919114383306068369146537443794556672307133619992395798140820959651201793840104318463501848611472162941849497863843829003076254560653157012149019397193274857438251866379927103532209455243758070308036307394283136091863960562726081610903639513479216807230885611335349979632089974087604247409398507965346497130347654033097511103452640238818869676314178437184586480006413348571076145002207997362579836403413255294353361207574611528375071263343171608303955346620082012317352167978043153612286315922356599967102630993848107439417381693986295735472579101435627068719284509257080153384750739263580050250565222022660041988934820148644651006061440631412435126363791347459725529603875561336266345981345674696497979448627703688989128951290630374430926449303815610549784013969035605350649004764494602193389907642952972084920895141226579537463868772733215023635856158591278237468085672978325750262476132256413648198604235157197670072622312686269002649586433617072632360688145169702743576375717732920732356812479953979857080919137385076529090848951568540660168051472147218596664039408427433437307233099662366728024434500858921768540631478429485789990908271200891359409670229057239566609645160013594642595706136204052838811820725436548468573563604580344000614304323945377877832527346744942494768787420181726139771595374396329966440325413749375989600080694673318353797260376645520471011272133203569997668533623928612516533135024693254265049297523337494336307466476747625959872699793464789953005538120226315519077241751553369356809536483664421261969370432774666433814698712510515255848223378325966152571857127113739749411910228996919258675882548713135983115189050100430893996508034471840331463564183073368691504429047409638991124625097895942786867406077232433582535758254311749491984605779255717676963262509741463835595171007959745697193539332452809531085793979288226258101705470663690983984504193154229114556498206766283679592157690851498756431594634475717844234257996343889341840627973286277343775689193808446172090215347733162620332939568876245154207574558790676589573510820623127742310986612301804659991590478059052360861035927027983092506021414352111234453086592943304500682187762396887957450536940706706994927226461012148894235007277409536974325617428371044825285346014298252551958088520795520019830040683644738029547996157420096463067690959906815246988070017594572351161096697383787616225502900137022656156276492221598480038050170826264131678662589910397663722039166079978927382868098691149170056119331603664576816579193192489110487618476686432114898753658732772360251895934639604268132489935448926482858441211653354445174964078292998329777046631658054938543497397879721492683769736487836457582487335763708115224414071847657395661048480529666728177178918019410052828638674179942723140638278524509307967623656450707757102811807610992632261315216384702514526671949386107305467831091992798208104194007658178905498794229313778806692237122372791573255103263466319690985103961721218478462653872485217922851946334148221337620187153949883198529712779377281353491673442535548206870047652539911875103658331425567831409166635540913475395590460807843117156924066459178064566716562645260100476886238559451168789525252017084022615176434248975674773748022798899351115384672731711204409790577731295100355983454250618078353606441919242866744099057345934820716586857235207445804635883199607580878989457303649339727749532788605612393453384072161827342900786473551243238273672927569068593318552070597310161441303354710686073356064282890560973079833868492998714963860168976172651980132410436475319757065448933337040923525089653356082961643150795621233281100654532139781600894496581456279619501630964902498637391698415935614201062286451510966418245403689587515830436645586619978771108864120111934068924734066224762026011041048704055822326838757630887080229003379276327918282118586508624039032350043157501661603098823319037334381643790201358292080896245972670749675261848299047271759280332728779199407216815041936115220031231734550115440536815116624052168613439158132173171066348462477660376653230930358931993325837929066869078985049363135870508157696288584746535612972255763016347249023039648774449806888627010456086838134546137766216544903477158834664782909998593291928218263521206018700085600318885912059579068714708771976018037605014720147756645373417523604315768560705675600843140579459705849841508065877521668518843152789454731960469636036224348114377345437939477217858798785524726994396053745825739675989583795402832136422683739007291242737373168008293841985706142700732572469524883165561587202698870303075996344718109598140078795793503488261985965079213399542056304952062248315163338126497278317576115144003172415878070118150548856295659081300174060411189378178393714739480601093978480481890877268084063488635459755351130883552228268702623196557195222890126403582118719666209776793747313051297704072653688077551589601134469656040664787491734891657356759697877437487311190927554053713539469761000672047588913786043966146171758381209877898256213863602073165865779850349524162343065941089986717513854337101323948960096572958377228882323730690455603708865136503673954482192493156202754610118194754680720120268167069641440998528265720356327491484326960232243420624890486680820418241598103925920103969772026642197489302721253685489434277996421946714446484656673139043878185460955770710466482792256810303942212653845239301963397442454312447629803960139981651730882048513232647932144870595618153070093049472987050262133507365186877171560013244925918736059934639771624381674709988105221572027495666725129511008076303312171003241555779780636747450583341708836562608797720389496686226054066647384375071340685737791222007700076215252661648146497184281685595456410866742654381761274796794531037601778738450888763196232846797172259924453581634409285709638220386696352676833345080729799619529322565637904420496123008092357979288650476386273038140599746677570846578850812647590800186447130005285748963794333586351582720317897255017951922062600224484886010176290163707303116022219785602213265763086166745110421413585132733984604795475956649842032557416876256423991032555654257174219366364063150993221794429179116567605147090318347438932387751570273091917514654151540733751939319398176819298558943617755481018092664058779026138128516479986720116342563657033332104918622684691903483892186067999273269237213137638338422221178433759744108049513287763006015891597624152489475415419056117621324898274080992369004811942871800556908952471714584960357991825462577210367346929941723385600053465222795372768029667926729130844790962067158014892929160510580278970662325154427160422817522195118859003891097715905759917046017644802282080449050070787059349416249899339971593878761029626782313413465801274550472528161714532291242181737599197321642715276332506897721609449808121288355864948573442070862228033283195604956310207108121272538528331540973937484576811556106420369899382925518356013902893502986028181186634679887817105486598638911014280661937671825820004642574972926951964133313532515636107456264403108862441975696428328691032860411113181340799632244088515789801340302148625000958152971180235885503447411224248058327534024785842365157404608954906138072957450787506621276538253572462059040452010149976824515340608804298029173154256020106746498211227022739174859395016951872106351481422893898628526152654569527316203510472591483817459835832643271478306042793289892517933680184747630104571276519230191412712890019625416520810867528486615667419584862612832685510662108699710262733717760614691288457353464796310183294842216435109234533203931626920923448732029050248320716109075602600213789488355123135581288663363144932927219293946721427338238355708246071063951478946773510688101575453323204727033373732571547576733159967821821500705739081957916160060088369022540618087962944409703880109270589046499090907084485648198322281430823090725048657709739339326632748104502908697747832538637255601088906454325054313742623106320672883489480139122452344863030010849883926077366540374747381656403577896895026792871421115786847659679394884870499153777136658874100556721306503486160878432532020560828729607933719809527690762948967214102780643408612037422980988590708865805476992159010261901403140810254529217457116764687644195088495293743938587050243891576940498577514499117168314622071643243573886729678501673779951762944396426653083026581335469351584035213209611515553383885489658207313009225981971517928441745496067830944261459566093072019965025923886587075101119973229910483779229575430666127499232388538470100951919961191279718712007378458942572366186217673480410748865306602870991007926229785896426817205709249469713382773765777478630217147720542979697657006015635895190306469374979153612942281910146600541329955393928549173399038537324154119876307243099832025859490236077556461559710224001932459742678283308945537336717223007546943136772985861072231116550613889014808995742300010820866955352700650389231702149722921547777324541167791663444568362630105675566538216906404598035701788047911607847539574233473966523341545774716420176583240408460782138870520470584092191247561165832377546088125626832994911379505432453416156964006981051698769143523298447191297856144922750481186961265042718234105793158582237478131288463942824777805097453125000148969561218265704473371808280912199440024033839061262781743950809129044677679868191410138003273658598261075518814054105698324191828081610816398988002732362412961621128605250982533108690273139711191951210650647810745219918104333263262528378479769488440543711691375802449806466642050630710809419346911436951576730566024239965353668266562879681878132564176592381570846373600331094862427160808986004804549149938665996988830140534840269227491707666512504849946527942582426145358480148445311735907680846018647547459006902647782683790626484976565503004979920348578599377747566959621822419469594266216754579449311448045603985721824853624793128650989873236136217376595689246955667037432244872070221641471224749832088626869262704329251276073461944856149845414077383368558091680753466896421196182329975038670192673338699096178102470881634611911192755277750911164060847982144584704123572657442836655338898226748390165382166171833463923584426843771143771116153542987313198960916315726739101852810861212880085926886564104963977296247661104835718788711876524749959188910843345382184497202823063627985947638282756693510552273747912752562395326182225222363432440681453830350680518037309071842627520837562562584374296366954395476397891949169605822574266120612546682517749798953605858891852247095445576138484633775127527899869068911338282525360414116697147271921447944910256290293126351881495630928803044290271900069060313965301607543344338284309497057655865949317447825534765011200017735516427171654117048252391081755786997579375436814986911614461274480043014467326768309858093346485233154870789294880450990095821373507203671598100019014129545919787911753480849465538042127440276079861477283917207555272728195856845549368722270548460006404475780900279034754881185155435954566399454955960101193036511979921722039686090574616841391405134918120862973676032994803769454698261916468357628397565412790791077317957602218806709924560866556299267203717007166955962598188923005464437308670517505751188755964738000676835568968684443385069896469079449959181884615358072700101018236130665450553219014676428851350053171421295791733876689774375276525411608469753988812693280269805920914589876616573382396852032618715360810559983372493385238027961929905067782181312043639152123289967275976538979153985608224707364574655274936628759771955650438797042991710425781520544228048595865219647454937294071452553562370840047376149828632567639989304310410540707849379037751885399195371383271111002221451128295981356784152075334151704809803477444199977493876627102353109953887960208234948926475800627302116954967419771561097951369388027328384888879512153367904813933115790473058872691298850779488137554279695518124586917115693819213352820669187827193961203017790688523670578785562802741990710892295727269537291904097879685872879707950724048758044369634778142726943116104145003537571075255699054539893367521457075841493030762194738076123895911621814085502711340231392324613617638438276398655220207852168899503665150942139737683395933662488101029969704169986775783645852631413690951486849083374002124747765781774309060007457243494031328261525977426000040014183344359830573363956220316175372203623285641261536889434464098057436268801228015150508815810081192879557608487299023381231737161882864978600155957446196453084449941822670238446797307204375208814770325177688614728664353717058837182306308868708765450417566918731858119143802855994291915283276761101575110612313178875804458857831186840275616107120286368153359964202174363453491843268681850469053202459793108643062792955527415232834583716956882193958075892593988051515474136426873774872353087120182655208865242912232366447680223301297997678302980857470719251358990676744307376030523677132510517840916285896255710084534223300082345611990950238638444601794916015568737195758779257798871131488724789984478144372219866866372838515512720252692380645308443671724989477951319980393218302020435652821439640957550747479933755744792464538587094388989271156378481517634694488717767394632091944226101777033862978817133809552795440550169745347128551937827952114537323042772593798187582608319026628299759032237790770430813471853719560730968213144400984262974902495997907590322536430464912486938762781660867326037098642508930570790155617115906836756978090943868433034406165576810698068324469260232922029595954407327347816306577920382269430460357126263677103826287007078249018524231007014372606392617816546618804819928601894225796169675213359135178000221492920420781551620747139265655359924374300112226496669327344133336563037345472390879904732460810039632248848943812859597526368941138767267114154990584436080653642611752806452146196849332476873401273533819273073321725148757968681291353811002115641103207242332359058803988407364454087420681197075774149502722886238678843793241048479686291476332113170166672016656721051321520809785078917177124996949990555852112115745251736813847950476492902592866539771433690247820070102843681398910762613240953213957950149393701005435118758184619311344495789659925788082240567931479318901882024674302391261764486362650230337111434818989235474468697570329351890141697216647211360562702322003833112195627040223396733406321330838194164636699209081615501099029028886013554035562699465853332606571221360754559514228576270468705707659874891140842233540061696581342513618662341930918110098227860982566187917503997248767169330525623240491950165987437670085338400824040803297254187036855317164040547943239069232284370207759035257854638018946620577001009084129400807105265722844561542741050182035539105753387565921859283518403488403418336715993774914998404318758801972321718460253297223494490979504430261221855821094671108439086795514310862011027741471037700567955958879465138522015853158918160872872300814997944197701707171632517436700665304906300181745479040743324415891309075878620226222726516732950854774669384008372311966482416729849268153846292082250024406804938553014369354347896543621645056588653272709611130251369794384180547188711111747403359818465134368103660591083277479388951054018133044045752254148378343281639114107066380663288463680906266244526645419387459324683869123816906816523648370377037199354843250747819934777227709536264195923541151848226500480660144230066293267615406504831359163177604420984520557295606069795730542014562324536355263235631544862050698447658814803205094483222304201790971721330974803525247080973253180630108661566607334231624647635330787824498355108400210210677508703397920790531000913560633994229019201981304703899534887972616731914101127734826712607422321130101020266303543827185148852022822374495700915655038031968769666026836715757000251176441306679437208214963571371537861900334451106938563080289323284250400572640454764944432624922202382209127853019689997366426151329522277923488235116285319613326642825077565457635706808241054979380694067181550036915586264022962772243142652467598237173805584146779328881800703474850761312401100013335378715514506715727476779778392688058763780534031648272424705133720505577446852267881853208043678182800936601152515302450379968863432648558907924945194212088097224642025498698014353302138601006809512761598522869684383250897256327735257228235907854920707717338643124042231919646988376107315370191056285829839303594725119757557074900308773170770751071544022147594388003866603489310482780571730541826072316707859849186378096678929777910840268516712248917978884365184939032860836011504466944688625031275453020115279340129849504940187585522885723459151637737173826830296045353116717829823956211350657975657955246003079132851388016413479296096022696950126473382028676118347450631391351219224535451748182728873223858525951989651151792408537912850530169996188066069218662605644518852087410475458490036304800629891993287711846367641809079815556445608007028590533763669089194130202831583080866404209780804352501843174081970848217764271127488383302679985210327186009007564382300366188875277350246680787560797829406192472956251073403721379982780296849637293574061592360600266252967513784429637419618529619269047201886178259873063907798607728273797563354171465645141231013986962992511690848884797418753894349876478458488943034358307354471733255519408052532949278179298797184651547446773205655914044177825710231311626538505814989842713307758301309445128213052857297658542059798376118292425521674392385876614871372343586549381763451500360242849529911139155683093480847077805894541969966258654976348030026516500580025750166609565071912715141920391114033270929587543543029036281093745979061087027249134888110364797874050869145824154673884531263845220305421065865693477357815624302408575943571943573528191837972449039958531932622727019497803591672094347644412683288442163869427360874372364211968569627070079555102512967634905075433155362495370858290799909131117885959404222985326742592531274689386466262577252025198691094564512838491267289454130069840594156742983350962972544544819383947522428174386646158349313278548071202327612306505440963193502125893485418636625344773150425830571537071623778208324834161490730825742988790693365819727493580153572220761544772837541170232600842639372108720168183014109962350006757405241175753415515237794844152437126701626696970255129701602494372580636315443132347040499755673541081046463433223406933459204813910268578240215083443545305395266216215433925653575447851990736472729383555834211280390196977730393372411742967838576983165723847376861088923400885928364564325991728682726839252893708072404657900456653379197662523088274405870777872319429713408640727068273422703240422376018489998714408833147811779593604506982952953334855415329721905436641102332367215591428559846140491576948560650062150083521591237332685845731059500798721868470006222626558798938351846539047295692828715498539330184246647029624335504023083142035391150566629782432979924331706318774097617451472144750303366496553584135372184751395245262352933380377929451109841019332393162335729425386193698360143096464022708978386143344778350054085335388350426620990137957585600871037316003970583757382525874855077869396297430393335331793188580151452699715384530057413230700713068715250790196562418115696824609390638427948704344761491991025236482263804676704471338543057999349798743724946203305918529673289107030384739494921556761644253055922866928105620683012725880320242396307273067159951572771198380201167749513928732831213143353921645335430992500029089823570677472024268098715445064593983055591337439586336061919552631755640961476540417845344466005822012583546352552680340901134793042449229059372490018532556012878305013961021475447917781629978862575607226282479343888861326857756559422006272378623210303050095876421260710053479193223018001471775242734977040822492169928553569208686273649943376719956101039568854283993499923411812292474756053909238027711620640701498149049229736676495820577036481564696047108254026424910878630927173729278659729191163883771253729793215218662834451987183417416255223467120279715848629919999883658020887572463665441781131972655012025836263045268989458606648806311154007553995601243448065324127728810569796572668873944805442832284575777900545889276934348138398169033948614740833194838849112338708775840954172245079611096962505544742135964320678571772477668695514222286170620361602420358377946126639883680576245842141939219712902696106440928271576637671514956843695748873456405011451818393018486750593107766800993552825591158604325416918581975438019189069741397739983092409561527155319975250621876896269295070359876799272008773981159975180107431960044483806118948528599268683868884583770796783918428846815382093364506244035788073465367619254051042150004173775159590840759591850891923017926110358768652466877899599819243435153688620861186390920816362314700893475319587143332970319744731922742657943978767914255590203490274713321714622752079323509245613807299993667922839935638671341303291727145818661180897092607950541089676346362871117199963922178965443456167107223011553839583921739003198693353883797874772507118023892952394380852126973144988288243602285325138503377567259202155010541637448874581446729163622238470449073477507023230496587033056515402678275771771984295904910018691091446454415281980640809379863576916627459346926166789842226853709393609655146919034794858886958099481213361293025398131709407404105865740040213986780826967851531275569100583787411346127679631887308150941335322508943617250379675111821123320431206154228330244119931438727604618679269110773874797188263058333044564146552357486585742560881060438697585156707927148943844532451876442779824483814313008679221049054634163433955875703620931854767483811213625446201475355089133473016949190087900224171789502872746898882419632854778177088138994637911948336164882912644302069585730541699867463758151667266676824592439552358126642436772229216428953448052603196945612194898134637547253520366937145608014593566457955682618899115080921899355532275291667495096949813399932561873890674553304509753519681945810867756375473838792844332643028184436936728005500588833246048917634438056335768929851552857838341871150746580882063998946504629197419862126992987258487938045360822343912558371310988972600614465309338142053372581522599451003528236640078276430840591355766261489245302875355583397178251821653036063532674160364820275837428096243222356522755191703380858621858507381325097585821859168791978399078620314973995647853827435813113418262164051454203700497620589432632870901815586109647636993364941625754458900324529207810644416674872426173848960931039100652695747687768890704934204250356300625976852606348403460060170574159813230276926989825850819599645946904954299935628415166486065405156276159891371196531741684753345030851171988140769578428928256391634250820985536427258930786894260079858284238155004525759203713034248472459747879293141977888553833471260980688440498145873932221029568168310891173086669589320171021036292075512678074459066860561864090971278998666705965575385138364773833388840287178676264660648821829474334505503918959579501406615101516415498958243472936178977486214932238244674207423006233578923099241159260048552173285641730756977742455618520885387679086287604408808715739783540538732841262067840763893482404508399260861323956921244692459498660925864695882631860405851274530977512650188074707160733666515143109636660223471315751487851575238608283492829596484051579832568575716661594208610664129727339725664017469932257359072767213520551272940551589733237678656626286038983691201801156804264106226394386130380884096249269538744951717895082321218665401522152170342755835814573669340831747106583396097343686093069170674883037814612159086065460065843583483538697946187638770181162966741548813361617284726122135442381740804302747163502099698687316855992724151689304250396079794067997745282141324087439420986662337152762484870397377938778592870345995682443358010779235480799910156804606734878299720694700999951701552199251613110167129367055469164577246037323083316898731711080064911701937233785207564415697615454267587253695381946673004282792918192589610501979126209145569176501077316068995406000892457263770655118438217204859212166528872677051901705379499881004830244127041181206923571800161966501852452686986443828695755374890326889917831659244269524537975412208272690913155888761942046136483213426016358635273860999775190736551818598760104411883342884115070272899632802812584528275767901142392807331009622261935920976082675251015109231888876872498251630200879772159699773926376903915169153203586515125781977793756408167324093515141821802089706819847398833269838538777258245025998500642930551080627074058017661455445333071237336544651322284559209997721858396424729996046272665500141955608749645001160476457264188849543170407996873101278331681090737637890629017340030796613956514749322070297679744188828262715972230693457844211855567016526792268908905379216724744627254289330277478868145484508416809672162109445821775193537883245931435280627089368968812340765894767801480880663834473971429496442736057667445108736954668075856398376874009225619250644121266015085859788661795886214796649107126842028628842566562444179760630906379503106972321884091569170912479830367521234082809632759555150175775635199399919745371270672644924786683466937004434196292884257510845846674667769719129407916773799275587192190334297753515713439786267704405881154890778116230459693665048111911489934044939451682282464144463407711758985758966541437212268373999251596804533496539360808818561558164249809014896374703293372854944327069021401505955064158964657620166997642262306701350796293803199585391428724835886792869824033290445473386820952875771655761019555691490504034330630989615089973279971000866460016950072232511550995821915546450345519649144990994505277078525572623713950686664776347833755055740316969921660471171287698367712187365172426673714418505933108144893578941055884926069005942748546113984249039576922986956167971671997982589555276565828903322504183931265407304076216413444564089159471960315719233250143067706797129378625231108101326773345788580363065978985277299698584387545543342871413120079465865741052903485752784223541444513894918613876063804577888256237549624301759812750679383004711819515204977138518605453010747055789663299432595849474497951565498972274739198978478900305334991559525384273362263095752697463516869479883430144215514756172484710868207291692546565701256326788668199428604252445089158181561668411633040910014589807668185203240433111594406835437778902030505254405646904620095556136568891630658457232939345815786807432065601101065006126361503469545554115752197204884178577261512402875385560079580777033367485051502616514268640470992592490014922424654800466406856872368308377077913259777734045512310655554400987817963226399478991415459885207095209644000770434894351826847133098964391563397961074366397102018538276331322689703073372944391556627005925511345304753285871715290221558293231627716447351324411748624708898498790197222659503819975527594526780474953240739117913314270599299806392872537447608018931777493366274511234753195268182106979278927748359478908973027568858811691092803583742297211254248769803306462398576681263553471847753116646257491070479442981204102477834885497657649627549847459130960747423930619399469077816469197057663314622253060489053549983950365437398964878784599686161471952590249379879525332142687454063292055699002408840404213700495158640066761898997041146868786659743242735741775917886790613152671564039859215307806673905022769862433309238139725796169616932033197171407205366885980652665140511951959351448678885456519498977519851583997802883260228460560886449093263845828678761907658254918716638805877452487621496742325402460718376353587706366058512899287152414155398665453521997857137893894247088359167601646892743315298949958685536098918212084910325219845378754467086874499674520559195513420888885029363095431379837356499470450671701610515233993323052602296294225911521031815095215657739374154004381047924296351235942929650184725392618339489943824487172196139339811198091805613907032780676677680716245096008542015331932892165816874899216652407891698508652254695285410243225909054320025447745619242730355530567567056728912068092719597219384460874817395847075430668252365792405032056157191201497410650072060660970305169166154361589675625886501204178535414543299640423825547171633940573502556822711665061304409530958576212802204080225168067201617279724755863306359314030190058084634216756007921961782398408821922304831687950128700555794968113527559546879308042201997083166130306115079131790381965032749658257265954486391696891106065573187621592501649361696103947721047376938041970168170422717249539830001397477735642815413079953374808425662097159940413888529171026498061063643013392916828257886271965577764356592645354947100892162583449195217185400983582100490704515388667606304415891611621290056374688233922949301060038468840084793533800631371955145673470723732998598293555706167401229342110942572440736850174271071180237685436294227357083507376287908750061409439740813329641593803549509177407157016919642084367482748266439583362495930011948138513841166502048352648721545956999972586594850639265874079913306746508358807993986473888909376845051906604683654755420554582358751298609957769829300463560210449334088864132530369300994198278094577084968267766254236038169154374427114193092863315361089711646166181817765135290697510926589844808566137378272067404005065911029381835485087035773280425114229439811541443292592784012417291418058725242448790640311548361587985291002486842499125245909133347398966968237258562905468472612953347302691600789357001514139973532163210117542265123814755321927419522317539471283276026017586414967417655426365409731254228643951928126863369904272387532253287120666673120453486176894652654072771801614932701906580080926217654181820029580231942851928505820697904908451065974321129346930792810086343614404685515914620171655633966149361191811776910460517065247151732910346468677221457794347006663589593610668468866034973620941952525785107430927585346883358518525835305964525365307886537104475689198995323494593556584609486732899810822665918811253019686583868144250695749366685666002426640413751971619887043563323834133959051298821687569021990704163082626275176750787096973756516663210610150615701778081782355798899125419311817698367688837239163335577000732121651297946793141010052755168620687174809233808092362562723312044461033914071257006028876511696858750852652626919843038773752939892562873449012324613883886197353083383940036067469661162141456837004841300852006878397319096589822593376838779957308648625615020408950283908367570567871694587806730413310093730406424875112802986110208743942447481439482769653156513590680548701172356886801665878164275870996878017952369936714037036378038780214788098216888581301206734852789310426603654743040516232888441082218426106573670172769684228205401257478781984270578814577292215194179672421146544840540737562705951103396978740237099563758755179790202018774088354239473983717360043710293496372627588513236345803316563318557060796882410187800992898368571331736239388800417165861779723521763641513922132984018614083609913092736611479599985399012104653632769726728410869922872942969607605365424529615458091431396643093870375490949233662335809512546366742728981634739337444216156140021657153965425791590340358526363360119930417166875832713493748045169282665915330949926150047645460851974677413911775253539611989308937985600494964156772766817227894433831434852541006595999388688432750915994537721710594050541200704900048103293337032541738193161899056448490419405292016042720794275575108360289130124477618836528780896538103704854678594517878799676765803220086004157856550037423461266939211832456719784928290166290417457294365082752862901228013684958286084870177751028913549903761408504031722699651248672782083401285831861736294153280257055747318166540447285665604511754414730624474421697762481612838352663550692268993540213884357570594389135861051704234877328440979360594063460255867377884675459991582599828248663141954314438038444361813361913665672035070057033950980668170898518724895648631339264064847819148889924580771758559806786756534013511910475670854229841420004424887317403219040946769866629522739050715779702104372213072161312613610990298010564972092193580106538074834756143876644241846778507216717967743021937738163821912483620934036351012211938404840491590387872885638663581023228656160203322908122188054033648326714196339524232200748390347439461778060847140217690028388286782508810061388384188796934506594960993320566425824480079732914822996989756792374923912422425805032042980594136929010108329712070720637624697570389650987701183745560521710073982394870459056370622853336250378718539986036836545823938300099902731826673958517500077687914191706338399060874386603356988968952074770763552872331033727281377797436086798149800862986035761369058201005121503410628302109141226670039087679059641053319274637385240931910299108212467144982463729064048970293564082620053954116653855361069745104810806884418703141223001224277907177892829782755647194521315988956077278090948730006411256000474397568462494942131395027510365911993265015465680935696735106246503042197292131432270370174212178040489483695162252495950022387814040590167108907814875554025241521136718269126906640805869392958192557883410515357235980888363888088343405146431893952738488989390370612025053012278130464810214190603841297744005988945936063386335868754285202995442570666007830848805952397471851260033875506867272287037464363914300396887071854451468228724592009180087236303048144414421886426436069911651848801936072641917399701524925447190882686680278509676121818926370830840545667612395815592906804915997429083379073734919766601063793644972958922835835054158546961423834082169958367510610106501820700965333276008208675387072571690693603126017756913704318799517840124624415987335083525789323052303072836155117754575124449168319505868844442097025933937371666726739598506172067654686836713887703882200274099517669637876986232312265110673271844905677085643803152357760018270048865226881541896268314078264998474591442168229419331097845306005305207296572373773868244198189326159906702848101028016616583608332189268485123717590123169736638236972151233418989985326449045475981565799356990885092725927875988321129773567305564917948687699092899421752943357728365404058660860202867662266675580047367711641785298684466101260237526106832347477716884587703425031882161484232950201438068965598410793895815721064893404951181166831176107459634529555774773553651802632624317870077251995456587723747755729127185560156602502247951043590658333842557735436641310823016273358577340685295761834857814067281087229038705721973999079310170889219815343095261291389531936749175061572354783064129232447077139318214889129987255901854168996772819681294429829675542460208132930299273154376984263537672094364447820306753298349596845003783021517824297262999929914899419845645147339307338938796396845452916539213105260062226059855164511236636303203229873852186146891951677994245045952923535387969944591912890603988933550299627370194417930679468881905716353177211833064919540824914690134444998343752606329359337366833982694297459020187285520626090887490311099900445945906740328660020980928145367174911764392989994426131695691287699378796670295055579162783717048021006239296545980869768882631243174482665534209706581791216913906094659448373457629105357468950253587327658484935860243405702779757931692625114034846534778214347597277309240475783867776816972197150310566050608016924349941341347825115456563788897824166359266964189238026498150356860905005898666011160537814782145380365870628675703390945165759008849837900033035388594597195296247474056889318505162392671816566055879000395744209903103180918888584176863980506208019181407410971869276313147489150363301437042904854461262349410220733780159079453597254591835603545474894795028496943931489512004355825842062705796406112523912624735420835601998442758375920848385000550817162994752888539077253361571972715962574693741061648306576397077008088268058665684808806939462243528709644345217379326204858495821205225812315652436897352510393569945180772205204870606079054064039140269323466465828719054110301099774112477939273684207609182710407034882893429789587375840414566453451431687082579830487952990781223468961726763764801433308686012142606759312618471745267985680259777668351728807162720457058862269571586259782309350965642555228583226143544139700379400010440915548328821445192689759888057924994897417092546632074418676349242711892899131890945733001205214046569062923434123417916241033479434860912217929110883197057578963261283326664038852857465017724262036092141372916133710289593184520475877071826210223920703825636140575041642745040284108829073368369937500158520067115689769440178321827594420372669658639642456438295180665198091684398945850351241924177989116140067371525834366425372947682246840015229571975838003031795276014373987168783344286997587545363525148921957141552172877807682678005940272512152519689349789046429951417802261694688685653801253642982986923206533900570480008119818815169804145653677260592301996860733808789551338209720100245513780418375065752176158207733414690761261455264483827682415626415441329369971966540007116001274271168809629172019328979310887564758387327078577277625428282263619114748443333457913724304715039925532230250577741749534258635735674786752229814464538370700431969584839902672368200301488529433580573876890588542632144820319582277747543300409470945910080355189185190706084572755744981454296647144009671882587456349479118601540056279935854643003845641852246825390120874475894263146443188233285264341961811232373452560546885548271106054804858368757330883029141256965236373801325983971147415567218445836572989653624180352417530243393141345243761999617458072971415728400447889268862871115226912532039528738640809047934568206056280750695683568671405691035657359571245086963200911900453388614769759707046121876263777419057211244811060941297660454571561415634493055029968013275604309600047576604360358969623574781732539491806891096013244359886675936916466203156032200147393645407512156460681428969436636820717983036246285658069863302928678112734783774495196302465526790227206935438948867040643951240678014839764409895641362639784169606477045932995810185511534525928103428514910530061951168201976268433949370118595997972632264505657613074637224148982413311628618080086867267525645890969783519482209988108094291199536655223863372383865062747875234258481428706321687803777671419728760412936879494078075384660032438302662062873098521360378893573430561101618934632550608811758991164275324151969054802571095266445929199633834924559155532178121914689861691742011583649072694176739741334987070469568878900160023874687060687391888357759603327285277867330657184365618574301252604614071118903867937157304203920806484522329716773080630039545620929885285054615749028732163704744069138587176852488502513782893068711982543478922673131646087875310711551339362706974296087436796783221671353214211710379679562051912206860075540483102788063103485248425575669459553209655833727638268619068242357013182664932174539919962401892956023571014128807825795430140748721932755076984454834067031528844902728145149382742657308378305080246083367423200049070216202090363542404004785121003018610509781602787494272023469529464423719381661177817513308587086487888610864898131217889924858731686177785978971585971597421513210271482491916571086435041391669708460745825777410093635727721739670611340360586932200990318162425196155755534223394371772237776911928620428899698389835264102921863266162217520195820364044039001166949430613711477202239204867101946423647492237781740046244543337208996481493113599759637583809150949172287598943369470742396036178562455699013553773141488308046143990710723372121133428874980100637405840504274518700152451549553236943699394714743227737057456905217813451630554148122562924413484344790094747420033177742583132595475509658249211226810764109469327549309218010939654397185835347245675706737610561678683117515632560023831087222280296209042442416472565941097087881089771943846202943722949158305262563617840210907199422465300001487770322638619496590893620922234256649618094435375094930578389647919235389875234797799503394177535173857967482147093221671234666429196282060294809453424726939945248356473539226803299274703733731299277151968603198066963189157147721672550018373625868593425353493948861635826766814148402471972379769281185643919067655439323447339464531253936074223425616609203107136798047646844586440198591231714129268061732013779762838631729046910795703392339111430297692152560805791448158620171046547537594043103593700809919424988729927652399071413169318443891887004048160860109878810043291809355046651237024265625863533905310586891480837634740437081622560386508998860130721315132950964278990426001767924545994474082482737013290355270463047801338393998133867058118977474485851072500137727727978135755166900405459435816651756331143137725538513893962138271609783002852103669850679399075877204852069057471195255156829091817841992763735344683448381003432510010545981703584489355072196765607405428703233964211006269460861323388853851438285044499475496742544034526986098329178061001883711149823680326255711638147747221166600102098875538854015599458800923428994281227834203628596077774675442418777503216439103405786099436321771764156512566026745418093210950414145745493740584930080467180996939943145048163183133671627691960678819241990886909432183707502520638848780845453795873586577922873240649744044852862489767559314112252352053826890287186307203892929350000189295281552153212514930318570335796748375192535603440885259545178012670776589390528405832894373446722950228447020934727955026846928033464985711359889713929019687891940928911829859191796740880313851702371531683946513904151555134241732034635996357351436418390320810011989076735212396455398201698917289502044821771218497776972104911782762307961352983048755308421673573613771747872175237147478600433148570785777761529074805887709259207073448649308180003283913183622576560450440348494745879975191088592420688561526506349928817618715771591177846693581431325740004701494945044778119275569106360929461070975175222789929186399169239654586532148104490405492227655415166976531407298879046956780950355628916244017732994497615903244912448622997331539221882749916650345707555565062133454820716033922822798629619485702345495915789265047487365207058226434834149511228692228556272043525548412741592691657498589165458899509503162872965383348789744913209381066813459765512398108048278209516705507558026038547076467762730267772499397699785119079728447799523057294139356151880740799355601070949949158546769699461002758041552149177015453916586794393972852543094842153378914404697672187393881765488083634697781778494530111426834674202063398554991419541995852667250636531463028225619235134388155801255985545910683373982476029981243023019307769463604107980660954277760591614720172633707738331543504363711072898725836620858397282762367925469933086099141112382496443738489800950791422846473734405108107920507490101753318492179615535592241697340683054640730424765796221896200127457879017085603100355902502667709637487427826146081644632952407726020639172842648928310085726188172185035164350472187434230396192682728550847328547506977875118756104186017245727643041627570943665694669053803636655964245936219075445265069466547713444655799377483391628951936319570759468279781195967799137443890247875555860979415930845431136729428355007542593130876548602895297216722155096532376454502328576384722263663538241726267497504359920664175726497287806599667434204711388345824668650111397952603737043997595053520575711754005416710119960220321188902214646466245226140276937945699496897790188915373538740482218147492607126948926744198467958541423259376255884912304521731919551592716031695236105559620044083475244615954442946197754771531546899266839962374123821643192105549262115232125902568836654308540947527544349817532114804661855728555308502647736560122699072515061949301593271947265606514036320392929821885799388194935178203100418302043342244176820442925563055567376047977014791300997859030237884917380302834337582741539650908426785485914620108700075002546153466272953825894130189947900861956388159807878494499139964299909344616854654417186286920032662844122746366717629926425635600590446438332752599051001465271589665049686844657479673991159010421700916520286731706840062304176608148178077619292269020756233443847683826098719783479830544878506393176560917829523012351269369898832778129303366478936262694541294197946303982128935605760402842458699369486188069155384474116747898803211176216498588261048235186288102200528321947151764622638555813161366196865980537773269132918417167289575246755414086954552923119955837453094614763605368224572402164687119577580163748236850122700498185130458031357548052364207647761984943795307135802704352775000969085149953095685239714117456893618592921275558846055519566334979244279336680443886874634224978526348946096348936745634278237101679388700811243966719653032249963391382484478584339634551123870549917296181753810698780075133851983780276431292096822906834806763718490832560818464480757364542783862063071137727729662627805016477635924485527609704533815609856440015032822169144595348144778761854843943945394306782538776353310126755098810695312951783826712193010499030843513482663747709118424887539146234722234653205004916680302978636645479914958933677741250958501959245386336513632096081552843691205693834527475694068573857757598178268725244283258613755051694970941657144264673716709989985607056272550819371676571578799006818964463992792727773858663296670002990179537190833866840474563369111540118528793099622853769937142558444270354479024882473724508246238440974140840627936888411806883300485533547023359872477289514278965013252393443993409491161428644349916714512967447039750194321848122215956662147649947893280837552105049303069008065384072753676923451714932874525701426840617171597922497483965746869679489641794379174479427432335786797307789214332558355608094767207257288340575641785122644333135198941623755764237500012481943968539454433715959412454786951939787984653289986376471597666309342075771285422290477865997399396336638233550397120611323877570103404788877837311627129836781253565703118625249822291261279325348215667698843939567289754965026406899240223063510620344645284026610047266270489142470991034803647511755612786949809966163320085389641148558578341884847557790389625828529735341689384694826476935114718366919982827854788796348961375930630932361929071573194179424034227611500809638525940208006404840531788349994874691482438886500380763386549876530845564244740180642539008060926961389587814353137208979810006140704586922408591641141495475850515939048553103233892391825113870080442469044154963227222700905269207139530427259895684067169150770002115656289563288250458856698257034911814199493066695384583575435566785122521056430021240362247682044219958380450940361577824695610200747535815194426813957652148115914416696813350631636819784192948744529588266105340221597603904182600195478033002392232108498585772744624193910038322394788562828206919502267323137130110290233466222064989308211835461282380971664759256153269491235603740759423910549588844518031014731266903357325166475944638458793659276815787408414762632312591887532495032615727617894812727881132162188463203215604313757623897404060767299801798443017009288819337990621340872584884306719617021163566984568815456407788523684012568634221108295450360027638133433694244635215684874121785320585140051779866104098631652413408313281412290346427527773773502974586079131103383580641220755948292359674273909388289078409977573261282165976218633949471901966689563195330975024337146221722754808324395739034359165860540099805862055248357359911459046764599976095911151370321890875241527787159857259771527985186759296821003082150990344265339555586192533903751270090271769652050258865012774215021526114872291307205380041420496398066788813971183800101381157712374025032653678068996487423075191573764439714903364744533314451012831183989482316919933669925960580117379472235915131229206299411681666273464883054117789134863940782573917757699077396233943371030745104926844255880322620106535304691696946709023723861259690885889846373474182517405624279336460614644092183411733374070880875401806168512291802377112586694778835841845692057081076989738938837755991282386698838567698720159367255965452427516958029061108110363568085801916733030677770343371051456926561065340263077102973592657735099941837847835967306613030566480340112460257981843141542287454132340072872958136034552269880651703512041829984362050171325629506010956460580477584778649958891892990751551823705112988429223699914390796500475580008438374229544331148556706433173755508415584767888145855957564979487917985747332645643046137736518182708808965930790098865745444002229981789047363660057255168580567970014197120429865448411999570616346885313364685375619844654472708000169699964513640753828248927748927468586340477168553741946253520179534945782571208209981299729378929136165433837334916970300972720916581266432960503103569769604114062048019075834641509575205032903066444805072938242462967047295464568399311169215610902744868382791259155659509266381916531815780779733310144833057624885823543605080066057483945600554260711763588278020890605279788139157974683576396449606708369574627394107321109105880230484637763663979923155277340989470500633899094233079536802652843105644324270823698570736121609847966589489511927138180629322241044585134699229144058962613545423580896319582980500602800367642965965496526624709301474522215819611975250632303307139768775887573730681358955487886608140661050661799037854943874628519681788882547951868004224983852838800738038112455758934622793051622844575410305550725111496435072091313385065654106868823465527534667340011450394891831830916989479982431868802751883365073511355082016201892551362486519178407617412240086362557148513084292632611703342294642828645357392314549166227084939445636526217476492473425160597214531740853537707773783275633900192412236091493147523289177297021451041403396919867377591163221115763452243159940538864386236106098359380721986210795959093096946885017552851883266637575500597353121379457112134136240864154992158070127544354300701571049171574088047968399235926986901940195787894871363703252884931966523228622587862498360167937179318182590745544647419325219340261033538248720307469922756239513906551415932470513630990227069592200226282137633141247842566851816957442904827618934194816914195463753989361767630903424573860164450878834585021867289368633566798234723108583035564131793354437768552908357701799039357145191724838645323888146046265424321613488204366647333371063364912127351997537904797202877985235947823461830223011818299977032742322675871672191665538800845758750112114856875455395640827780564343065575111042515181851078120716306910473818939651734478998157518181348826660296327065809630134811318301739551817155577828167916389296015189502310726202296593924183898233392366697798013757398269054118225610853103024821393064568767932586878964906974688713348563704633497638954862550931736225471632455557625257733431465261039411780843798120860146109630743903768858801096782475327504792455801584161688738685432136385256314603079332452492635876854250823412202506982075638178054868580157805825566131593104782075545112904218913518304753820491327140955386751434690530409095337181209285754865763303155170060587372513034999262282527617427031313839697106544271862094934974042768114564376294266223338208552100908356004331026880810555574139577643003697971799989871332955006123602708200378222351149007708212962259172176519750210954603948766234661465783516831529467941593568383097739016767777565700106563714513749462963533297350156993757151111336158867365900730533610014704521380939063980039014285157794070778058757868124022464062707623171057175767898871310530160848279875902155745407610803791575010993022315379341497423263569975705653107223295776792211717786764035839860662825381095343601905055699503787658365820321299588031384615095396940965200526758537033770048682631041499392669654605577071066149626693314427330090052377848148786295807782105652147383123241138678436934210774227831598605645824308148383921995904634161054155173723269544715181973202205064671514374562956276394057141818164833948961030779380888930923949098908658635390630817386213608154568720284235751570953066966920097298361883838034277801358714647020634025518550452815409314664665476775759671967451851565834961146435281757013763821667726389205082622102124117755575333088140367654924396789799128995905585866797108809676265701425375797063295545709785120197986574954569633489838631884156409962946659553469524135874156083874614847966115806887860300159278028809684010363305553117006027926858715290303632346972693266775080924568946014265210108645287416338355391441222909162976874729264842536733626132079851897624756655903876794171884090466584233516512529456769950546116271938391439057304376118326948910854696867125001834679365630118828747121339364195350706013928466675012020190491010951602340118135648935928414404922554066278028836303627210099315206243542160882724968950636536199848267160446527119333585098857128130048432135350537738382956218455837377332888907898990279162842877642765235164717611176181101248998728216064579929441798686863960381155970869579541687390822787004593564043399920538338219354857838585568207118719657972035734514431739849498683267511727907126993222028438514712142018642998292498605241363743994851657446022562092657193323747899774612254840404947806999291843723441217166523641291581548280311961722589871348141942559589651289951978255378425542272066619766633246690458657927969418515410222168642657679639128856637507791365480470079647913208570641597236848787636750518082236353006525902740379193164593988552154390959124897495911075349973456005993823055988475224912664498107068995063910661797293926234030338519119117197922765094355333987408964237741521276968712508481173446481882261452870935056667423506218564609398298285421463919755221917419588964288435618847984973374592866963615787374211879123085800473551168857767698497159913084281190951794957653481302504480754756512828420198437925163915433613625770648547008724411360904196245102313558774467281214917978072642522908887012524014674300752021181350833013279733699732710976730785285683526572989111072985136144584562092816799631082236076212939326760733416104826622799195925705305824601376473464176978557694825058158441991301171706362952325357372692824944735448228570126354399898370991693730052677788091468498654829588461508016305455851085863792940233928361978899018694654613927867977679191779285295813281646680635515550392506990742942103778737683728516822389313976447005000123137334114141921175156379227854396856001391132510856912180874161952003987498272755343555995660600944340316441791283755888588236100922230123851126430453963580780178624040843101773790046473675918468119615547942591467094690528420143907039601879886707987861774388339035313563565438324138244670365590230951162673395667599379163772410248848563381177572363573694292883488171087682783977636034536633539602240518700077546467191484637547487852834761980694411128790907036284302643353447558048575677392776814140940916407423563936028083106123649621804017044917876952228383116029151224717776238024795679231468674136667633634729469302705411074679434536074134997321687726328161019265431088654775442669812084071231567412330877021106831258243488927572466180170857529976406808252433854676873622572453336216505836853808611329283475503067211134723169009033382849609647017701476624599812300909165633994167415989645129801454809049819844127034129931620475944037929702003855206279478059235615498996772174528742593849544141915409815290352635090669429737223934316870012692880128762168822210577204199734864467070912684158140730773922426745362812846690157801618598798069743591466756978051799779038862250519914259954037983409776174621268653150697723846461538047540727926905738586556317344725063051051626457782997616547760439716664806414928776401706616900496327853704164458647589086171342104584854487120585879026995257717341767225131198896439211118861304125741990983035897282136338786700654948143733924609909420498761740051922432300426294609849856067863055957207074546087417864179414890258711893672177641952558586266626954416199815050393792524018789956014634485129853961207833572727856337142275461684552703482127554318418158292079983426508205897389862755500240600759064597315188213983416488831542284673948940037749459470821611596455536502561956085344541788399573245311951887387123193005661742512364729366418189868910254192029019874144980890938388048528606786589402616063893367384083452667173763621753910386531907517728135305445391086829942833850832696069055042551667483694659120106938426493469278924798330538861190010643391581475317778450379930596448992593413310272734970763329362962710102308491788604415896763639766892052592249038406753695050066009737439088153286384498224262562314018544692201084508691256743238741616798305179199189177535711155406485910166123438818961732867696618649825568932086557725006376537094846154675029368570183680494668139609815261266867128673001405870727389694396990495963763559139479986487783925632699093572248132993557312753052784947848125144104651086739324421236126268989606204395803340134184557529847121526150244076471317839733729996827934500012590933280421725610728391563410916452286606704770737744386743241736465448007456447377396481251204078387418447259252069198018525068957359271614947916819738554802693153563789264998026588509539713994800836671534405735288391051036892002036335133789081239455813523342024556121393236498274431904037269618166256288496366572025403221570710149550304643726271264386609640747844768505130265783284605536127629673238931387887369938719993929414134897758122251420512179326094576639114262998557048161182331788844256909421422276479430869362008241965367021767146418101676864902933278931896114189241802538221713675771189037623562309988836637133121662497685527741342131837489440082144050116163777729079564579020523699934399516337323478328816712333814383068175202915852867979399856116241470377448742420429783477645202406176999052645954540890974286161067242012170698448837023294397743785412823528928359253730638145746456517853988450015140615086612783867357149189368375136817328474395411417864699356728602195201594254808288753121667556556752338770931977413879028556384379264666129626186273320730854385195360231869191323548871048001414246125639001297343142921022023590866202325117880658783921681923649644738012310886390123360741176254502114720769746731524750456657240972064323721152840723532519596038545174498695515621756265236229600789659021828748960492304651374308301493812600982616546689034183128604780834378104690921578899798631829608381672588379582094961120943500571070793662441101212246575081777934840856610890369730517966884881581730409626559655671271539011059560543539390294993916771482293274149938250139274424549572451506155359970417608097224073224598681225396896094892168024530180937279434078325600614661645589383109905030503449163467455199931110943313971717042100858767631641519192981630432748417772245471277866588773705749727453247100152224998903802431403502526526296855170513576437350186110004579137979085149456411354213079023363215166742745412799151705262477596877657407889884518293684612376552983458074392269547885996986181161453497928566052861176629097003185641433828050910615097884848498514476471035619602145113910561966148384338357488574005817184423565644742456754462053737158909502548168139226482094616558193431177497179001917575438175333962338129103023399917412715435872285087294529783515407155369995728697618888586524721940642001101127602132947453569571782816915070057127832668930280688063083688596281504231723274711064534479978455706529488476027002786605922858795055363059787013939552231439584873880721552583177174710195518754606932862415594824034406976412423535778345832972171325696549383419392737180882858669838275167232764583456969162384544615397340607522419843838919835796588974747544577473582635974026104891726907596911793009387259197601700490638641145837748583954733363912238337112963695558624334916292406572921231333555980486710419951720026470012151232990540308913207178255177592610043033485109759090867772789154961199769302650970812049621817410133054509139948029367999086262874867505454477774655909786321617436024105046823394211541333531144591596424401816333914479576932333435600715696286738643642839920583036588007629014131083993703121318785342304460989450719937880175266450514463631924061791204426143225517125359771686997222573016386012541329098964741884124098878421019831021545600619698859812976608832794154630707812861557901418355198280567073636670378525056604115394246073654605711512996873997045279377025866022840362317140064869628337896518588757469261905256193703791585810066145228660226146498467498241501709668408976409333944712062450928497343753435273897804444432643162347559632874525071988232421530578117114619407351661762122287433016687444549974382196053694881431273713902910958978567190068002767102067113284410694565146987865992616015758894662136993207630078478256141903447306465052049592658571637703734307401887791661615514915633077293216487113354248295876033632587430738021981150723070551637294344752120562915189453541939718716356949421048294318805685600900652239916329841097688182753146268251900682407873613176347767960664575139045204928456255694501256010947463547761193640523286114005645875103525934827535158306352704092562781671927914016991310117589538896540611533905920374631478034301604965731566366481486821628444490960660760375360132877755063704906622133023250841582176826182979373935607622795076993390871278514971785915841674779435374124585273106915972415698524452122268223878704560244545290049531043119984707057761758078117984675134815541735544841150848906710940744502104234087331795208257367015478565588607486312984500249653838974993995176421694652731657871525753598467062176844415621219705184095037500893024235698047065058622935591225955436086327895058738644081170477725182902201358809266647881121717209166876114384086106761132930169031987937486782446447793115005337164797711103807336006649415518858375155412230964715726041987581118366252816500807947798110550774007937204196656463801116719956211209264739915089953607654345781742825746742804161157980707309621790304417311688545074971572003850468125376584345781988985577753764118404050028062971321763699502293909488483930384203229120373175883287523147474118307141506545613247664159920625420593936797023732313354759314042243583730174198443559869935380886953249056391186685295135539737160514201767476047744974447367592277817489981870101168281199823315686067783187393921498610791746204489513074056903510136719255390316786723380032271295007570771430780145758449491706122634520134817517680336256952406450823572407760028806948801553037783513677563645109843609317192139105993455698996518993216833665894691267994436961798670226010160631745248515158730347815774944977681756535890833789526664387291691105912005640530038396650032206560274210013411831234089551792825830748019232207860742170245584013182099449175564596559480374822808257888989603842175173204067440718323423438198395050324665009755509176500510189638308867517776392822397257415772025344355395673570259137423568273858519339909934835105553918628551685499083051006848999366565503938793402582839320133734793929298226136850356068301298752406716446463170265151265159553586481577191238234214818726135081808762456758838401115853018912390347194464923383820991944726924907414425082544563773338544924852522242175040220925663184025227587009430273686801455047746651541754341888537293337728584280235680024410195345975508735599433382130805814465927394863891043790140190800735513682438422250391977194777200635831008607163077879250947601338565071513787281613920057722059048482368868324865654964428541441802675312122967914380964541814305096322273081066476190568337195965959953580518631221587028170305655874720278134518316149960672561460130310201371587957428098362034916541752059985691055039242064774293805481684583204497787479177170688101071169481132156563318636937217840680051221671987241310445591981266458194017132914050851370454965776855166980830335260320883753599187564974398347833924600882372356330246847898398477028542842557595514342788644380679220404378379605513696760060364712133333074877713460014619643042812618865477264578544930025071341841838206995479402901649043847044075222947021539269378253311286960803340595624791907903955368149482890414074671432649203501994651200942706990447204682507891353733853281068124854990661979928571643261597712816804032255682810763148957239711826629112809349549950190555106017746000749720469550527296638400900051407771116907533614503809745552021596729530926501935484729469980681731247288408598315361174601090457015771894854714086492771843491175109883134468062609908089550348215512388766413360311734935262610211179657744264926425618554495551029880030680449584084799798085773163142589489090860144337890313003625924460919671689412400691793451388301870329608142780014315493621284556687422626505120387266322730393955869145458644866790978761418190767819625029568261639039244577190178870676036492738109857866929918257495713450576709808371698607837331061332548678018872239260356763202504603812600618853726749443345907147981511678063087762519761044267662672227139844827031754343229477741593945832415848118715828418257255300012912324357292843161396325534849588235021685088742136324487183082455369269359545326235570100232354835113060276598181702595611090618807459704399442047284087742652818672958637403812182775975136523385323871127515293809084899226313213004745006976067289285319550690261334006923132797779129850382727043546661619572493394681532969576787829708094209722660344601199646983732750910048013385149923817216452897530016537749949319307836680852730878195338830764778594054898727754909985343938501663731817902150065987562829715491407557855481228647158586715200334168613745124400631190302601324910698414471801671544736317062680283192705695247407162885342207963708885674015855387492670364227609960133309439779263042439276114639465146458834510023831716114141650966194208125333235931387725503864421029398435390926811252212912135260376946663678382400489554148162245081119374138156542551565181224452996759357061003120285512169129883457214641519610421705828232778934843176090320151114783731211119375382286073304084450954311754245209872554923657162980446004176487181500744124814625962346412986685605177265938248907546674068511037347374599112000260436031615871016336697264389459831565745159135472729911249604387214942795438303418697656757855804502539114256465849868550620785810316990395424169628164517770175626221425916314491470246842239708866531041268803659716336357237676046895098799623775604152232844026117460244045787520188944106939022035637158940944795818052704088061572750538661661039866685472175607934965623553868842226598173380048744009665582505973220420374541465560334434789606774236249138941060958556273024094584767936726403531201296485960915793588467533999073685222216852579305931356878551048838614122451775945414080125763631767156516399981010534293845017514343924893865408483901987692331500972010603053224855161048611649968787307250924249263171853841044743898800969173420893422370196330299948783795078441480924703385590301106409154287773931195252573185276951319986665349752656690261479775109421536655850365794080269668481225673382677656342538453888038560937929175618393808707317094537335569893235517472592505417977980397705936923045605817482414609158134106215398328060489571546666608546087653638562843103544308547111364807494088190385074384324306641804379225434064253254198327813962600688613034213966331763863332509712107830555158962176964843979323455109355805326640756383255620184704423298777047797233399817345252891659284661819386125979969416136009265557183158141568815017072088473704425630435953353493174129440476025821215278682063479568825551996131864690684380937471518870689139211635696446324038819344077031806074837397157270606965131810087147992938870181838557326282427084833189531546727605639807357115380197846458241252850225989714925982978738334603636906671881049451381780487520945065346471275146796789826933836656774230696798983168457035736817531349515136704191277696151479591614211057282002660790412013863500962420536172501576081221407343878530525590032510770323948000000915593000096077216147813939333645134991293999558987999003497964208202429547314364386182526521611429838997400246696750794552068207379519124020780621712349141085656945735731086887996640554754608394877166723300412287761297897537029711413581099136305423960620946811253261460653133770263452999130240907849134124540307670176111041557351730192716604293657265120157132906357293351183583341037475044911215165563449864158708824210513809382941483454337598558317600361826663663048023436180708132930552820486739260423431013836754562631601454567530876415225708610563504427275143589871892496021092236320450818813652980453310628275424707922554407543426594355427663942522939406231106443611430383152572021509848513493164632709563853907086028901410078777240669154266001821102692294591503589359140599603609154448745330537537333460317074585412203399600493478877018125541655033132472762443942008970650026012313051589465975934263359876366550335926321475957582473874551172920959609745979458869505743685099675811979492107755862813458534202907497594314193291781566544987255615817034717833365925218790179896216295217587150902096254296745922143715980112665208651316358630997405863969472710508574326551257191617514708876382311976101787658997125660140473650896334594418562890669634338704757608471957800296741692959429885614547758417489597029877797556864170470795955143273373368438466227515997976006779961605441755160665202699630626728521442620428897123021571657410125799789895542839239943437886000487069662246456468478424626938924936625449479024329717802946568933559953664072551696269729704454789210740343673374397875110661725046060866874195826049833408357961639664848159553823727041692870245967175200101692109586994791750011620659590618700276768027351551292928635730572115964896498412374162776909679340212088012426470037877612099550575087687533898536800248071317889876205053683390597369959898663808373918227407704591606536249667314301761165207103985202977536712010501249926364720609425126264580944888031190430582443313769037913445934138817426480854196351104391757510934942818948696307658201343295556386115528703148615701945115093260176155742416499062149709878523462266185499945365502375012080690974335017681943373500748872596452748192251308260495917183786326586730207977168734123741613638325064352906843449415911039344002723374256864737239614608224455539940054282296070104337145578522232715559753373758306243229950043470575506948758735356489902092292166338954358275490271138815056851400459380594057598493735693425263562772350946279640105491109288646330622841586332796686989561325119134139891619210863904775006390430740003310264624117492088378083484591568747801591605375586031235378764062928222915421323540749347257907418695281428903252743232596657681386037818359526265852086842700826298505637852334287667572453318822173632039167222288130537874859317020081289035751465971296242578659815332171212340770893276682962805919764801115875978882470270832692145163326424030086309202096021707998750821736125955746058336130364435402409090880893427357476978013686278474922398601353390714908431415724096412117818959572198538763798933652080061441668515913721646318354441034962196569817937310959735722280357008195153652188070993654069358236525926745888806588072597906409481613052070171327813541930097340834394961474499339596406439067615867429556079932523349720733871780496064016488042703064895987711740911377826695163480698197184345068671992315750805168869755656604009825942852954675328960755403687471612559143273811242753643175364837400873324860560028539896300434867656030450610406019112817917685374521241500486707024144152553696862458954258754852382605475889084842730912280965250650089271130291682101727217904611300676049471146694648957956415557555687764266475428580560790626860648888938784419691733269600588787857238412028899705509220996892768366232821045345650243814636055720175656527505554401734027202064304908294099730389353113544561591655671609790131545056894220058710215090866070230202758337815204101180934333005113802294536807642766298826334939098849328257774041273426614297639105169688652328032895726378178917858306232712114590860110614734909032541284777577729710564330560019618269215792626470968941603173656045079931214500313510343211348418274864256721615989721753055060683719398411171051029608931230862516956468450230859654954441124528713785641075253742074904919003473026305464956599063612421932770480749724873885843389927694541705129212993133877912365696556490480851186868300479074356694607403921687761310691764210324516117217806058262983683524112627587478460735772681502716919257401442815427667974100264503180977151880627248345413095129739608658370314578068595220081791041829217057156758696925875769379055810129573341422944658004828962814270066485121226504727200157635132955531882652017249081345754876898884019460497389606359179758349377859179213825912986597466818294149743416061459226023004273806443950370323172745691076724930938008068628215076878666161222491717071363547234504081792918807641444690058841301949315143741525901986908058750529217790023898173567433655946312871859805128283519674318754275984013969089676616855731763485945916487968452515255213922365940684046315559284419056708391198855207723941601905592589837268443760513842691022235463431545852794677245774924857061806505796180422230722275768657484273322889963070518647235492014772122182628947208320798229438942447381244638484126857330278311991978665987424422256680472126822364152795467735103351329138672670726955950416070263188011285569117505589940318410215606504504623368223060591721127741160814622138675618434981037243988031292704665309243166854428829420869388220025797976729058921753073841609629468164550498132689736783766777985424418408435311778193354657956031794806902974053321528189815997780412698250811069434607727213560209822024282694062155392943439661154125997028071606478069833939065408131508728587868516857381236762687507694166176789176454342524013710113812701418947538583379135490780896548836028539581129969145427831277614769586834667853349006226652591520200180186753016206803716382423537332990532012780283713460813155590782463902935797823099433058403302575667919348327778818017656080560527732744032467821294367247856212907549063147528607893760459919925381363558468056633526203608300835542780863794677170497929052326630008104938345966426365878109493207480968269099870169272758749551301564110687280069110262389618156031464167430217381844802788016775881909466665106154446382110675564455191824618734733059551580457989752494695516034931245326445373378771451110137003256485731408384235359253516695682773152411863070557989936149606920383322744905927855780024637543686004609703893834758408487404394661136410292104722235503668685490142770537530838556630266560249141708597992833603623907072677154021680913760878074343876381166341535626663364812682258648108226736350243466399419757033294902005862125327797652875905747952760067484979563444846024968043314478239251517438910229299415744436769471600345380945603620669629061032935203492098046957637711650742282011616516556791286723465377614711167118529771414797580951400178879898736327261776153736368196160887386068601960935443379215687813927683925263360479752888991564608178254758679899001272111079400001813639578366331025867926808072794604056116165734718938824943432910469031636428161729804615857233095466435356200658462064904360865156339024410525993900201439735069188385866178512183256861091580221545785748587470231214891240943792072952244531469865577787496776883384625103276302095977563157688177102126040276466297830758673899221737959896176722130920125666159272762470895510956868016168582333428207465955232778253278329377458727064461151990094996611423772424213689743258719739155851335851055448911873233286404249318293202969355706060385405211990358030460362299263541222330396054082492985400093938694400580023003263918494847481574694376922747889081215963403438119742781467356695546209303475749733849972301753257622817135856776605847938550060356968359787549517729013475454046635690928715631882110657180136852105222989900593822740324956815478363648410082083089689544868675403155711033191698428110637066049549400264047641120156391575525638411590907500408023759373778912349031109514982810812857615521420595065316382797863268163520123818859802374581339895893923416923815559597616672548702091694238153724643489438133120749299937729188648056014471390133368094804594894910089315655973902778998022974456861277216589718149065996517324679898408723302406533025885246290050117173151488589679647442073166986214849596906301015096974373989017118543325886963198778621392121526349096235359143806946697667513195456108943088743864293687950112160251051095225568443265938364975581326969879913638411177748304145150918633887324993859514664404381855957813958706294087137900737375619694765607755390275420794910561640934857168872528181245318441510895351274415201832651282411098714844169819966685098864693538627266985836091415301468873797091773325366889460590173471176472833068742561896687110082338096068273622847386665575547033624746947509356896036975472246389328371685606640431954863604301261080055197136965050270214133380634795319210419879511871124216196368217744909527257257822717587506861869703482960880899150424955663445449114703280190601348635865095570742369467469904712776137448737565128928403299991696864469182758077085694446320677619407332649747324131976217744228203900813485103042787117485036679562655463492908460001460787331331558200992808090626172200594642113630959213063402077287196148763376616391356101781795117722208916573948745184009326072420703814816489461562088548427245375825031110453094444676596542064478863646606767006148161969057067988379651674046263547934702014041380141723618654511879391944179688849479673791922006616093513162353331530882708577948661928267843100833775929187174756881340499710546190475711281709386674100523182594711649560693439844675898801358455114893227115861546683881090249184473692931953396207851535213848541964833069696482802146512691623604674591293459539963709085658066741970808015489902671571192144083317425192560209655869622947171864014414872632869405886635640538045724766172265684796656437516455417712503315769842888803439817166295270231025688375993543063198474178995271945191947892407714074074519057906972785530367893668848013729704328335204449550003714803905505921678641835007880275110001737216669198411502816624683933542845365241500627185276214484602985887673462327689263099654123333869616465246019754418775070350025111022925077540477112889893490345259039453535535530862569467355887737411076880186028182116053318057458947006792727467420063674905300326635115609354804464415259403982201677401203686232440605287559775393753721648821462423097514242854460032357393487602777779801033119467195322538770562552647556216262091340911046548159959612415616667079636187660690912044091625081574772936358915272722908502458268314630741346539604041539688260756457167918089813360083761946384281424485296768409779425819017168852334601446412049853452816445361789301359797588336414163483633765127353950998113937354874946904518324453618001628771212323442010449343206706556208439495231015076183974307222782348869479871414232810540028333105718305910116492476253125179504746853301105891942940242553504640641587549632130429632997145931252265439152779406190239839545696211671511634435219605926249626574252130197574604129635117946758279757213381112632760912587520146768203543585000903901453968014243310162488458609221384563559184429991211533560355714022314857923585035015787405146853538747852823141369304216788940008991572729137103948286100537624306229904111221262043549703367647346662753759204171264974113548342559984319258233722774530339349084517602911479794144980641268560009822584660572030316873208697253338384048114743737415216446398155195618047012212815960894649892958765748500681585433483103346997828641803475498379432605946136433777621373714377664335833864210394758778165314043986736029876695786203644547846166391656436725246514838709442272007107594150469736837856629974105124060588619988954125124938682403102522499181727175521763084432477643147159154035850069008898962537254878959941114976187909745040147195076327996982334569451417646546521520564907981061474028830731910074236803354357833312114482341174790496286128557025821023958469854628197702059273767360264104801307966752060717601212320236013907246958158562946670066283663643561190029283745783045730750990447858558889171916766940522486819993394339305176374916295590320647713561066116897201294150447943507177076055101876592183080056424619394255887484941821590399963924740211861845082117906379189498238149807538028617615062644083361712204824160075947393908674201009136907548127548666496712947474545063408337677550293792694817024554891163980855655674499905957647821089474639377059355178274871465400574612022146919078195297055083291773341916294648585003457462110198672228941012823545130016251546539013166172368729483014228365613042613734002530358126003528581422084623750778486790278973082830650078810332015360249260369278669074054502191239854121399739050985472699143902072619255298644084689428529418388686800584695866403331552033369499037403345713712090867682417516741401353220191307060750568168393942510345476927901579878581392779566936389318875027421732165749210998285311969331654955658620618873453216879469445778460906438734515668618007474997025461771691620400936167469589800065567933475108539670217312462040509268413258399479307170937009528061048006956248044836202074430893473256185597934567997662392076892526664701007299423360969285180975544750104198494101932515687582206357758122407246102815463864793777949430008554888511746894705203801100152657038401229564043396206503504124337713371609646239766878997247212031982914549786962543368705315467475066264494372344062745169210094590851794567873546520761765144719833326557237511915417123523649076954468325419086403154381161890343995138398035134323744775091822733361686999949304361986087336143502677332476033329274938717985671281345786246647088439047121676193548440673611470619946817671158458072549971774155080972413418670598582609007289841339725211209665494397161209391026042864847366810651136588569303829070731770850788167828738312667848529069428851682943001069834727748574964942168535956886280255594558050300931225798662647378967420997289359098390463082903014037178843610156064633760566551903160032928933915339147539351873187540303998060685916000390165141774376481492028698226184941962815902390291490666484234492479087750438432969213034148631345130287175374207943200356073939331986421422320543071635855514444423225738148222576179873316832760502292619021407765905010667139191044553055313374405955654541017797783774498094958568812808507697003337279256244424902726575722865889399066314848399835421880702503070939934230231481280023075973558810067814337540240055930556619664771335598033659877585158451605296978910110006927397929310843934258257006150328769590708426808917436090713995847755967870071214675435013677496120034799134927230285682216776919117197200489813027855158601601280651329258525498158285979432152617972684215180468916962496613179499709283444026134186026838022004380157534545678889880525736875497432807680464693155080617561276096575084069008761977230583924155392808473667876163753351319033901761053538810711107519563113732806690138950414726459301637758066483889252289744875966621037416042105422043663823402561098854356385095409817840037496804308642505564752878050684164132752084363475615089869725952984102353275404875049992530976801086471947408082959415148010892657137147224400970109863676609658069719256735315837698723174091265505064272090177174428767710424806447354746555690088069204374466453723130057985736826887396843696175818584557922346789923477942351948170402731784364321870150943412895250480314880429062310828000048037711734135390710570423665907990634673418013989974491376777501218834811448276467017107887228968230838283736674919346180362807767882785120405830711240281181385959157494104709205721837217199324762216213070625021373630686356200482490344762077488492129520480360820761437212295080025420160388563323270005095729398885760954605345104575093877489853269311973969755286911802897634943053169322781852366837331667886190905079535387212920254641103049024324528626080708636708071926703434833564015401604746487411160362780973417401912018474332482807211660800795233926975311367097294452048065590956874094559200062025099935508150435878142493145611035993069512406070873145951269522391963782037321858789815324079860607242393140575558774769703653628229186634015957356459907941432540544585302279990491420639052802829924815203794344979648594726345468592498785600744961850360157174628621063148202382427623723119632345486855909333564864526517886991326644717565647480897434475189797341220231815938282093137184761004426824459180820134428670664741501997358671742861185178364980672296658725022596037210423722102497339719679645586977607472364189332214996177191738894718565232247294737070302413415705789944790835631550905331813409259449426642621890476009298241318308442777219259956957896509865495937188873565266972667852392685692935091107858152958624125408739172590656114223405675498633352403955979801904850393128833413618269385736382668753868628958307905563570694992960056331510807138256141057309234422397913188915022669848901104203148638018666636942779443312317496414171903874698493823954323273283703267739869071504259662001137864704640053311128901813511454845191514103268259462711044824156423359373127921939504369168023997840892165514756258478746522510424662722791340969663892878997302326993765817063627646438283821359878409008929387135645789115917968801880486548415606165016307289771855807495986934174398956698203288741953069184111745599635323830336896332095077544601941144040315230428053770057457301201931914607104064425391918351476132835205332189406015669562869943813718768359108651644139741874490165023095591347374196795043179894886140550355071595799863178612032675967865345652873562867442431648818057718126111702203812780378669242436309316386907876756858535653747150875053020221514838549265749705739156612911015178533484421482421319521998832712587582323025486784902316339145339924232939285862239282434587615061200196277793360042749820640955051056251383538339441576666377043134561683030513342693794844528948370688058533213733666742502414432553457622054099467695806481698768315528808759693168417957297602763146830191724419248462781987571114013839835525973230738856609988810832736746286301229826123520564232685321428222193350495199939941542470611187155167252752895646390232350825456427841868565449603918082508019285661823971462272228293480036427381937078070868030787847108888996988612460649523127336105123431113685107771246046089872773487458269265305499828924440210113982893872477261189181568230582140799755036085396659555460298910998497258751579584072957403372423437880965006141775025088083378186364144491926802759360642245199474867050925201726600275855314114467722493631984168037241359327607197239258786361887636663350010412080219140421429850171572538846534404090322144094386378131687486117341552979537527456852507330647820294293119545122926657760558805726628760781000694442319198306733895039420527873800982669212347396693159279973850117475137809196599633614230302010367603415699259339099514156251126042369051246316174103998627456888462390242809220225811203113974904396981573421370403871735307673216988423409690770471975813535278912849687218949270103468527039251937564221025222622996471372754922470150251851279451167398399370049049833727005766529963019167548252856164032775669537560752240049413462699211677809809526471176271073262013935213929007468152981349880011786438764259880722722736642474889028745044454612196719116335988508385153888032988893502954166167869068836402510667185991423029763264507408068852068741547578129595083736771594848377867126184271661537145683568674906413315910445625090807278894358722719751501182624503463654115189538457368317277802608735436280525646568940573100477596886498970807053607731979778390250791494382252528130615253354738744577306911563533512673329270078223561708987445465836927969631636133173739429053323417810514163516578722924387952653593028734957644500302375606798177512024975884517171136154906794412067248401287123145491947560346475555408572701488985308411984741910664377424225832536354505674793330296581736218118149988344754500371862490767435634217382946387252323685036221373708969788467230259178471057274786789023088128907157891650087676952064420955301133514292390698899006745318176742336455088606771160900130102958752553995322794861639724140217473098446682214789362017478029306408545700897163410052303364879116202065698561152856714525105997680063596485759845003362004719018413543858524139076169897841851067002615214589333488264165987427880933224295554196732065976696393505506785286323480115832250954131337843901475989095306446680362507484564957938281090194506454041089044745407611335761893147056267832869816820829698987657146135609148086088374278685205677691774059341094936231866393419113036413942933036591478181163250891247294788708092743449774457753732242479195645429183981083074880810891455669642672277544447199995050255556385122308423305096702050474320802238826699904112284323648043293691450290241693748053875094583458432692622782412512862893324743794136568272260843113329416293247345678075699252622477219119599347876723734499162755540504150405900489544326949544920422905874967323107437442532577818413560502123309776307252072695934122267805630648191028426117977767966183755076123276530388513732304730066171310945975418459822047669491134275282901734717074239690053846653228243662056768959970080595506253815731800833177472524782610288593493357708905090620680358942970618315194563712663113507402422467476201244878868990264350729479696904415050164575957106140408171053248503838987558791814954183382239362972608052370090601546192340405839948450107793578432102199028683345073074331300033074234071803425408026840981236018205389923269054734333438233925244621556294824774208031663200637780715094551647674621910607284965319013483696717798085914356760818730509142472626112710713782573517492458091188652613356399907376392180238636441422193232022957321366805154462465472439050496173142823234110414818460083553255198853691909243452263931506686018505815992482632232508345317570612120006458749491059079306318486781902016843682259117530402114577970191540572817323647861653323317955755058797223118321524020038715854480367061270204654288416912433681904154048913454086684509517471375627305125818801192071226411135889612634795508542228737219732880051764175418418289747591283552412151996252589507597902659431418489165946281033399564028735699728496565956747256936180690878805983913216233804500317477278242070279029288848760679342588573581630981753243385483105756865550614756021255443105657926733547815097890516681131731604708240031761662485074839262630943837994981281005343251903747544204837584373894138005036427017500388814986553112346230254509627488056484405691081099745962260936791856326938663686345183548928495042566292321360908063059216145926743165290824459597226392934220159676210318552296480951846253366810917571714759599824950564049574595045638743369075630200173406530730545418330626981845471887916180203011501971582067496578717799277566851991052765121888159265490596452434687610971487661200902684983565354423915172443398727601368564873160886735032191978982279097617631090039508227776412744077446941968726814258387442091138269716274831412527588582871386065938853190377700607954617085280667277253154151030907242183645932150299147328599999258561965188671160815503377674757927123550107352830841885785904184734946263245109356768490393772110185714404042701361521625336543724444904628308040224699367881700029598920323337785977060298531154537095796748915958352510037193738615574515495080282632250248232289175724387715953980686430505577243895355837290807695372084966440719427932720018374028512272736663608919160244611599977115132428555618618049486067697378855259487995836770497312871236988296613598428305679256556110356041602198675633320579488439698447165275898358209981385310671500695164790866630587138008160767651164341523770316866861293484118330862654786401753218803623673421982862641220507539162440452999601780646820155281836711332980595357549670627040144208990479227171447685436843848307786911325294459065000181554652710789805672195393785967437608912019351779835845783163404198545423474333923556297269812393932533052194826150379356639563616502321042655739932092171035005142787515906764742067417446749078131278842744554872494761688124042934940010496305574520125496895274710242014023439729739290025681690660437067361027320887409959079092334623979624688941910827419295623950628727507552845181527112054596909996290686583766871172993342107504069507275278317880952931657427037206103122636493654461267237431004671897406356390929713479547473960711244123378472174467001176001575815459655778436353762592751297677961546983147711747340062052081741549308273708771374040116963921314018728568167414743686511982646403165828340844740076850440403743544171636050284774434417854933406628506266223388046637650219427956771960114353385328996114015257859186720035169864812104664424067736721480984094964953565524737302050175632003649341910471193643419745918523728099750939370273360796104685329839073644709484876524887426904096716527755409303796344683146259792558870518079098702970322826974334511096432508123538649297360331516570653671296220645140101316390083531239339615935807311274624975238889688998464328662171111782465744909210243692273303324780767093224516005449991169936863688493698570791023581079799892147526225436155314277654143892023742823693194248208447705450762229831982762916950254803264454028300659190721774908833118514011298345725559014009306540344523735385914132219683878192668880876673677315160076714069380717979764765680877540236559031082305930618046761091675776219651620680560946569264407270046551132374874474914359887296456696988694322907737410619138627220122781203013379336493260691470040420283668397248047576529286736214998119777657311314616179578889466362599769816942392560395081106401348425156972738220985304287054549745849963536147121611750344488435353903797065016033980994632901365126946219360833078755206286166239462151390521235339087656229406813604806687632367052384921215701107004273059604317306263187287328054816393237221611247683834253636989397656511019341925884286957945496508915306055986925329692336201134926742619570156156602020255101686293880462891482946706816407744263979310704760370317114124693771373987506806587268155417798969727464412711785692350980607864173763110253342299573994446701540416184003681549739061978256277205350996558458412077462640080664920397177876578750210500979109753954523393003717079545002752410258073560215103779699566658571905517681117882799171928256180146371270658528606271957882635112048005151002927657427352236640776242155523395831850767352756639520031099121636302713074407305972253867916773396194036683068387841409934652585740411150760963528980487486462459121224800115766153343858511013294025988012279136621026031595002153177673602705966653334176624986715969662071146358493560419166170739108877675442110929416464359965159773710318878074344282056201476297561428930850910329625759608024105415161525630949398316675159339362817609948734383643218043899861660815116980953392055810719415630901022857263999470089175707224900800571269252853623650024163711438775478416521185094140184154932146870147121751809630631415906940303956173065729565063103457827040124136168307756092049377736864596665760529461086822090261272404053810194478115877312593699005155680933181220947918027642448123469488536102113592243122559973920702242531156101203332559252074037608627910473633143842945644195988682902941425138680250625888458450263079753968823999523189949653947047870426628545252799930880531548615785665916084437384544224171236182684852968653795765911313370921458411300231364734298235433532843766039525997819257271351687251649505718938439101460180676900447435063539294008551700252962501357684104289427194533942754574413363825472158852562126080626914525124073955145498275351457504014481525092482684890796582091121389784065256922918021045605483873878505237660626455156347739439089041829032345118892671876974490492393737157487909692070862842942940887605718254904673472319102369526301853883790458249399685283841022751865107659920132720699466089450354094963791551689790192118522407740751492931310799700383501397541417965687365033835298612251402089708934718342359019158849868494926704435344228810079593352018365433743645330948740576382766946339223319354402791065620663776783696241728451901700941763512856521016851909580890709628576356147566327442955973571753369341397254707368556126217527601823231347929778296280043787543493168463452054781211101475987364977170257617853787583043875092196825130585104179214375967277682760364152385943391693874044716777330934417423017433985720800495128240955728514261169014497846707706450287802222160409050808501907261604284894315920079495161220778035723226732475332061421214011865721793476711192808257457727555433862768750541875657037246124190507695463938296153064253897990554286728074324153803065041414849557699836875324137064446102764927107375326784530276511495929294381579582565431184828453822059768985190552346015687130977584664562166646234373124221496176145736511415629201427093581725292013062853446305100963161053809709140455641514640556170318886108798510499420212567478982926737355191036228974094124711076537604612613400310732094708438911898914221192788137703545284563598441472571760555254435975875549639763057715490462923332940397207669988181625794748788082845567659606213252557255236783957558024022696048915823696988785554086570965474438986692200844280377864367993385179306894400417002987365649568523044712823131992740800557595182183187992189286145631545718812247961808171034242925471811760308802165863770081676594200070324318905158876008130086929240993663946540516496183595122358163920678337972318969216438973690651732921288005186708920690720444470651842448267188804137867093775732695673135670295257917550789332133937658671231352200734337789292613845351076670543960660252858961298195811635245278202467346823003463246890023670544906022048150592224307418354825945145096454142438078894574003089366784399963128535924896109143789520093068601797505032815120211829344164877129085368196456870789896795309332338333357488456747719224789581975232687088055724895412597949011326107062186829470461199494757912567521215650987872335946004397243218225473589965079411581044594121733487517507623265546136068397953175026615497560596394760557336746514037984402470119286686006430766630537645051461189437752641507150325269557662305973514819335310000785749505520889882821760370295313956584809863031370109027899392590731517502307649417415991266105531376090833220845754102732946384291965699817169029263057151938754220627910618256067266153322823378170064185445977879565769651049074597773037409504347202266518996660719073036951671419604963766289226812983207179684401450890610187508884451104834283945426743650998972144853967628911258615954631412598850205652085885455506173196824221201057959224418871199609401048005817635860794165732158512409651450856632519180669444615203739870159470258110445471224859737316945475266694889604606618607129746645856176511061206516256827772911296098321584370095307777995653793619686516013926366755820551283371273617896607976402893331584085849700636128771350457230127079943383632944042945120849984897197062597530678071124557367617228807544650301171284469602071598460836008569594314804896365093019410480406846825499135303318568964411292178525197502323176361423780627288698488848496861582964265819456420716872098696795639866121513977841097616069700811236731600653830650570091192591113183548317832353085074817043322945362580244462299162155230533770944155882385165589647525724655299338538698282359576421813084645443419460220529421588503036934793298547289004736013879681651593324217196589934838470751948805330632902612251536289678220239738238776879225950737072840858824255563949067208927508182991822310205273622875332874641823895282276874596603439146858867838293334864407324409951280324047430084297882517623869548016374043838580729966370186532147801176602135660688275129528655509713598449861327484581602620013083693056962189562314102287921749103569820774180414936255681145814927351520937307429230503574694157107272578364642124640948137679835073075513233351305627332164812506504677207134185328299707948952224485416891524693647988873355739224496966176665933424984685145398207604220753752345363864051026923530527079452595856117169800088783807754704035840840776436498459913463859717878771909047230907216028298900709857609085180028787973258518241300236817937443704404661680649620231160372880569203571289391658093985803613719022358307662809823263870718091972557428662950245031501303749500654597317369197554486442673328814517221154897692530314435283413998448547784226090248625250489726318951089600937524812100411681729079608874835716878840829445436824312553112319783685283494435551840224561373051314006642454346357146947302982771221293847042023914243718124550951274792124449465941613413825015764247290602721140586748023066383467186223303777411854173147035133032040832963809729019097261215992733226694787303988336454875738788745005942587300166825087984209674213937485887076394401379920613479001884526518514783025792564578835348112058426025020535174409556321326614855116770235477066545722307244251312374035244585307177313827957513981522000396827353466395712140371648832009473021638443842774992291208782962640650801938819556630673535719320700219756333254159071664222890529484416392314656057033647440176224099466156156061278274944007065876566589266586580933531724147019710888741077943849804217774624657472243564723884251245920190017742192531055544159268130695169943849035364062012829358130824643204084388863306463669440132597106199603364338452808322556482368175786353008404654675900948593898451544341560179197104236601268095488204802731574860310923499100292858444748001835771196587404536148272476167239938459853187572281968716188538764951973470325626476592755689635655509588488753859234806892028605814281712670445679074115892025816521180294285986572090361257314959093888204802758395916801545341015276018977860653593291852861924548772894812979146035358059476010912015310425257941673768851315380261111462169258900279516965465096399193148299036749896062073366711000718121291224686324153809227923014566568998569913296815418473140130151830292473522044008594656391807866511454117080578493975704033312016837807310784740957465666940977144681270794508728007061793206711777152960554172805158258073169776439268380332943241698014430697801440629694945038160599560780720916695077197241685618639978280426342125541495457334426206205536406126021752119570846787562847683378978705403462038430835281072531002662239131592110065225692348201459536682049348204105683072987277159822472632181952247334867859169549063375664335422182252392413310437767824433655864316697456124768766715220414411561318895688347224603190198296063278501291456330848643684340949459954056189126351868657628156810880772309319420439841809103070775582949163905816950871330646765822766591301341063094403716274964493056855078822829486039831508088414227713469831579216323405543349234660623591827477573588220372475307862198372990545528524780354902071297891896550375753790105773833131288967402992689889055932919628703688263946131699784890390077219879729715595556120165734651768675135921927365675246174223681922486071537271782788079497935848708293946701667705983477397932166301191901144704915803816946235416024936266176618061885331328194299001844608932406712582676015444185539014879392446909388752844285983410937522193135651883121373723149452864037252913254163759275485025365338688138988919162461371123879512911051752704170726238356783774679168624007559520862912805740570288154513557776030840960742868619350989201435377758201623514342773615573892691460898950844483831047700539686201224436974353104985262613906152615843171622482962141843168581802812726229236763980486902467052726047202013013367387410398076677041028365167315271386254309205944134563682650824072634949248739024515343930658132458387575421998975481378906038786886081548461188311647338951876193022713156804051297371983253791606012497813705651308688533504103516140215460095443087096568824067251256765895648688243608432430090909405036441600362304512589992138273882485361856200978764971751101453045051414023755556145694246094971581179848881862298810641083419382037938604042016338072302902960389989260723262930028512457565069254069484950979547084621642725228527897791054276752685332194288426882348306517008158696341739339683693826535683328028462636593723000019533477039521613117517968569460751779335898838723702764603238040328065428496778751926920847480055589119331919887716264999094126741085377336399304007479839711847840338851189522764868549723079750163306315199424601709201118340501363555603146748452724512152811989699029202762710439368919070862187454187406878910652713970322127077779254160018723049696368361279987853511474907029685044726335591151073838853042335663852476598693310274184225399097119295189403546979882685934629932759001031590428171109277201008914777348557095019315702676088453509175128207815559095245949806219343105520511946118596468425750266078248973376913302925518343173172860193461547491057651661244534116258109023652521710909601506769903751291402595452116705905124860513524166280788190370675843115548206971673823223519127872894687275539166411487941061278937562611384168624648392076742557879407502256195136789662031085138447116137713553832551343335866820708940197397859258843842095102203124836040190500739780517964454078020854050017241564177181616757218478341485140688470101665215045224447154497133686880356497699745994523498955123973554143891624945299876872813300722565446933988333260030885506673814647024057456020639635614791895674350033092494230920352258314470355875969328987021426242976839354190972651498932499898145911081349952136499019641616678853262610567685663101709403161886087387136974223433616672008075220972967185972549698617723620553101888479177211823704357021393347045720369196311594748830679283501072021576562602522525783622742249524311819229686539184933738201100121500941707282742001055288955111758559984768786885391683293688293393682015283302532777332878668224309838740769969597262171586755466018959417781561634972975252110671815634960729824707098767644380504702682432424634343996823645279078142881147587017856152529933671205681343337260030177503087905074109909499802027040336125061912073715627807311184415864739064051778293272822086342784964993569816356553648948033853446450847377607223818316396830356969687296920553397649915660233066914650069557944238265953024221850358783616602506136067992087436944522465689466755245393644386958810728560241554974316495472102560429051967456937849202156924648582274464039915740212385791447070410910488993688285448696542174459425333457361417706645993614354937406310158560924691533701505930663148847635203985561677312681663628506346539165776469070401709298934127094840274427298357384212013280282015827002355343135098499547161717554910226764777104813235267005832959072840864471891254960401584927892089554067167051459765139943125718020418857118042841776395955939761916430365454526410617280857058153132866341761758896416256096371217134308057612608714508090395068593098525651791948520259628018126868444667252163393452767623035739758597102284199250418950270009533024664109665515631560954894812614292500313293914508776805313325003369181972505511522879616084427275341199364456454149666458171096094360542960086057229142348544238833499444613683964079309005883287522566221748965850713095158870514160696720931034617097052598026027669798529120199775220316938225680315308211617193209306844674343282358185362150593570420730048886671541008797424091429240236615655394825712062100913020303230848038374836518560993201433913163949214011264292729367322314792344974453298587098376312468831988302676303917492122268532742643882098205515040863893391181248061222018443105149587443928399449891422414882434733963955149154221225013959086025059431157038803469158933914105093958489488121711835007445720711983002770563885374062508434502573367637689831355944871980206842310623725376660463891561731117031191414118663014590950200053202149298007541033365918591310570235965829622786576119118869506530126911699016617426119110761108405512054744581137006867985115803874347223317487588608671157271712300341531748341928520387850086149972374917985485953598418170633589539098482512098120501088666188051918470681070677300056243319811948733887293992290119989972945523352874685643235685211365151554046822704555737895972080925386634816257541583683616352779700930907611503754935512572673841121379580706049188884070959929761694990043224405888498112280234687498156573259823288124710814142193181581564398681729935636098253186562544198769469997427788412271702094918197057293143879362567644466144757386112170252286304291583915764123364526169244173625307954943105610920899129661713345843359325297568000306482715639477811884284095169878712912191518681018489536688152430344996235811644531316114377972684066284725984920219720311676604369838939608345335030511395362436317272431921943585848344033999925034787011534362168136917837969471633158725630933379156836267264688955000488279885086683481069971398320116668903909299533796208920135742481152905314003341475836897888726764801488450546249975428232075922069749290724873951215852995743122473359133199541499145305499575314299191257635117445266856256445086535830127836212707737716003253408791607855594556812876908573770683864523294137351313405687593007483293884795359607386827209699790784531058168971008795027575791951301500416944332892569128884295436256474571430494762439862102641317411068957174182240612125283546187875130964451276479205920783000122539067258786799781779548917854318285848277496037419207838879273635314175758172462944314125263093385469724085883219347781415862941933915528640040726917064167881026178201729579989788145056323013587066176726755854180427551946605584038366106683769220313994395418501911266119004634666146935991409583839849629903390648130820216991186918295394962282128143874131743889764421326082718692103667684095174982021513475566560212688907496894174080122646134853018915522199057527630900641322420398687771394700416970466109301582074254418785113975317275083872394506050486414756656219490546248950652270801331335238223404915514247836564095694882632380923412579761676577824064040918299303076291509194140712481587243098985455751751167698005466955216156685246270809796496259507425308770581108298489655111089288587524748842175364286220367680999869200517589378675571568607005743744055650977402488864826035249418339998441178575358198616908010018079275998110576380165978960605486336945977164427427265907648148994781144141012393007451078096251913297766846579893987025341863880090117390566413381660565151125075161079785366591970541007407707656749927143802902757630817579067369037643718440621437800003803627910621849683127598006355317264926147468618225973129548685185498336516415758583317022464160886647607788710669467168991922581917279870213886089402197905773782284503291930998060781853960004572738371517172482895525194780192862219451103524274974547615126050324369229338122226499777920102997978366278850704322076534402703693867596296360016126562306382562686503294584671153585902390120368961417697711314190320630787097919415825592654324043255635293367339372369652189713034939633169789793343651963604002697299209484840367042684909211375780198798321313076239897631604319289503453842994305033102293645041513379696583409291922577196265710712681980787464710296398883022846153193297611355674996650440793806006257748800436082669201755067272515621931021728979525941837253391154847273045854078190844606268630900866706880061615031281257178015227266679611172792857028068438110831843382688499518492784315405729030313134025654748350974383236250598767325046171367188553488303981215337347485033152405769464681357647233129154737315430425408237035488572673151078751434238746803431802797390835620306677388470878251996094042344380512384994128088133471347094884080394863938208981492403877760020555859263331738150438281517802701534877707518705125919087849825418591120064564639561954766362666526430790690486873854146431496979721160033072338410257092803929619343937641680751303112197849464240025724678395267773866323837950414075476852596636112642635423589813534572463342556636436971761665664331276431291941282795124832733360669939505463168411422870863566446715158186152029018370278542598035976496208518651341410741697562963392326291254473487919350577335233402499964653741352588130931484038106572837697878827977515098998820120328106678226143816985882223629203974054056386877943573005455671338007348612317071637383010882320323344309356592748978255819619884813833668138751446551652931464826184244880334550555609949138900153548956965019448598352038936255839205485143214858556275891852163089712426207173764300585131579414457403056602386607201950458100108451420212962241253752762320413765019539627464155605770597853320405458250632498749910056683901068195973374225749582925020927761376379766156424994556426183930706122901490147046746822820521884703323806614978025014044361464271380067357731525497728214002708922327213701749070854401684237157820879654930909201830789442470756095299009829162059847403087586559751079198664573623260890181246613909102450051451929479689960921516252265665341392776359473112534442391937341394528829876207579587847034786141097152473288290110482535396953912442437383541304683223346896181239051724846466670825772449065514114645916027033793936562178176686195280498179141718424124465420726763596291333506899334573946121915062526905525668430036471786759691966441412073224919947296184379979593640912452082006843589305439238403781596625155728003092677456395659520463617216955341542363562028523114200484390676727772138340068477049854208891330321819086818832377609042750104690429298141268153041094589067004775977305436079071698931727924203106398019115016456009999845148553584300077301036220149437689637912066997077063739444233629148186378262066708698418971958753789327643097042253325171940499011184100356455252171538887992189213659377911462293510778502522309893475020041256810774354569076415250893222394826575247367996210626558131552246252803176651466149735847006189694651741847902730053166428605507453810749835051410375122670431812856949489596547755993241085742871330105639779901170974034636947727252651823683064985766543946950271254559029472967321436324218433819886618110057383126416495769187804298946119299796562580168449157069085977979221504732902976059414919170558818286791353506381612631634468821434258685601795953169569534436702886036803924956235476382497051318813288192083775441650216268641252129422907538034581455824678131506610959319696897657657125926786358696408965121383983965663781169081751437057620913968659259231490033411857099465927191714650490911354883632018204560157453601154584130827962880056930267347801357397470962865346630622110979619308323204472741508677799589081704062718660202167007202502106076901422377235491909456369611618122704534215342144863586320443114884963477216326958227578138260616915872185435427994136546990746283755656194044266951236535871891093964588340322092147808691395741523599560900675878160815374381329995111655565996801794903203253370228990405554265878125394799057221118556543210689766148847103975862191574016120867644062481371825366332357727731518512645192620554615499931264867551154037393512339765554523379823219638940279862731729359273346088939015231481367815877508946807264785912496524496557035279262731680496417257403525114364149374927199310007322172065370959836923878588360725930926227201461101942224663975648928386099763343954118369568086290534848957578238988946121888760609126020959347514004803694561501055484581056483000933979948418624787577783928038859975716517984579234902448332643707320283667669412258937261293276242205360296351912729023583424139998111413210229450083102065046552421642462847321798876424758176520351921793894385087765012651810531962509125420294306284120488249826824133235344854086693930957825237956291676384890185744793864506527643620930853415009531738622164775368546375499760461556657414866216648788901869064771799275741580805717475962062036963730423000642147202994591748062884064406972353074138208189229991420291288289871929849171124740179602864020939660159417214356790877976470520882117964035894412402077447935832018945474768154321873635497869279939581183835144128223985951606316298046350096568539229534559392987684007532313745829948324350681810760279421971786240947885244773149776455824630195441857630759110509048216772397257619695598280842405392205905124740589848852836335324397907184504934989160720866097364221762731700346038442342520033057864568189451714907857757929655751489851248775852268546224566296269993171967596922961563133945209006135094587847879600637675818570648571312583870752476163393919752333056715680586835069011519769391347318906416086004461027444806370013975705575996501823982478158970746141494308869758513438363465038090358267387403263821580833406493480981581942663772948102807526576817571373075575951706699251490603408347712111924210839268605733040499801193525502125339299631107143175598727016610396239109204323614119034837232137586248197755615497849018604891944195179999919018349943678593651031231143271709063865246394707391541937536836752438572122885012645614878410063192408230268064034652259225118016428259303187788052438583652549367728689984401712461224902198152962416862802196781590689220142698845482680438589258815403677070158211251600819582540058942637010512316239210430696850900552398612866569060001274619081174542109263139034432796733277481008863938082993152944049506699534297873026723220557382039349098440811434118958015822880008314961394836285633677937957078968005656618030016857577565641972986929529044986915866045778269100899274696663634664618337350018021648939977065296541277470613562312294099787184657064123044364288913429246115231119924199764538080488503059608367527949081315534410717453255048787466540658055165972566512205857115208012825881209601464329613527533616769380261980711517388256769036025750102807189382582421678559307472512412663716775340701636361499377214042744621652278041066656528027968188177710974483769627453783907423630038383748336761068295876803779286332516996394049627349316955621018120142882679197465919673283379287253193014898672587745453704929505188472074677219646575502643896506051373683108303566959515577867434354225476758704289706916844064093304587282712656947547188651599749222373522864487890554328264584653552287604765648903976128014324745278699313568760090751187141812218416924245669254706654557735220316956419295925761253029784470624606015405680292667475938398094145938880921304774226740898783748736551785193426467406380194706665473107180297555567947434024133733758740204717196305082717893834754627847837522278194992304079042560211342847760767661499976050755385244285168846939492578901053711187478318307757774980363700487217147631114772399286155730667489042720431023638325284466088068389231427135468532735575496304654780293163061178523537838058596543953222682733694052673503512332375111446796160114164972960171550126234754304864858280691452227480207524663494779666380204186515192885675476376847052591818430026998463861678617147251211144867501859906850726311282113701271900674642783643448640722040004711908404267329259572086794400960120842189612615904411672141942145932150723264358962317175957003362709645643327255525279117381526913339438691185595600331368976439740150845403344282460716161684630012453495945280594029367006217003485778586377398522386395797932662973167171104228397871863474279528189633999865807355743668918110459435903466123065305963986449493303088843228766992872754439431316418739813073228715755558005973205342290453473958283652138736033232467374063392445595372190171776921660168283367563560670564491545217586887873088681045682562301790640318883413531128230649899255159515633923283801469575312034851416779028034504356162855681604660468858631610753676696838821079408143941713481513787759213904831161302924930129646296367544722987658960667762782790049013490438652515528160191234877913925312894295397487933198705863043672239915702906455646678927688095017676890746114763584282967370987895483177497790942361081268838006456874807077625915031868021435773800146782262280717776087343916375496193851520847286462475940267385803660644989298591086398493145875109983721895456544773692046966436604637346397580618941044536062989452561017514135880684595698678547326173743940148454513152437583166944838068802192894433400522213987620668450461244369764824314705688818620185190446749223071573288919886489266054438126604410810312511538632620915780887946869420568897744144737064229042625606987175280917113420722241601950458078998482958548798001356856093370512838471171916827391784206538834288773926535099737054562049853479766286886305099989400375465490614890026205470010705616009367038927177856322986339263024234075823756562945775982916413038544703786454679839799856984346936851175265372019000636271051504709335949057865181786425137366290441503568594426710490740469198775567791885822114685779248569241681629211482755435535204625462573392444719287439681505043817669445146529007074938593762108949668358048746454701658607157035438498781119484327268450793207511835782791212942987777802393671370427251897750929347716363099919326572088773149235565430413803639655089962849866090887673741547456837472862161328724025119957304353862289846043629353798836611298445084789372733438122931422891311452998156854894657738948020383993997790351387730781950110609229653431605558745056812243633704933424650353482477818696109103148660070510527555935539518118623003481011274789549158751447282097034894793541265368896096217520677447710526795343436907849486671601664183624360710731474194034578238329921494396172136737840401006249606800574529768568448193527962494821255601282800876224201141743997903262268754474183310466326558068378842588267419240826336895283739991490050502854664802336728190427966511461474873940018040246417652217290570967925584849373451642766129228317694830710705969939955198043686825924805400798408283105769574350715476465332502114451556638364281694854252658280076196328527910140126041717147130857030761622029451235235667871570095762710018611463791166928358555333147232326717411600668856636616114934658788802987427025241218580630180649374094377920468410743023055185353847589051056985381453346404290897045018787998243554771357203069950511531445015317629647567179647563158215031606661905331333297875317888821000228994459899661772421300707248388036732492659189919342288347411805038052031873947203095270384051659589387683348351900385410111462242414388839742992463088536404016839746816509108936665877971163409190907477216064763146163724872663813865363875068491484269581572898661518719016464521600516950523506033568807998497807328517224475300686122202449129861916832298925287971972192500156441679896064203491213333071712827548552300830775474698007394366310569249653019104852848198137143422906078496418739619871424258027214700117182156589203618127367392245920672262544473126184040608218369882676090986614683918246348626622608544173458289601989814672887099458979593275582174419365614819693098571210340459722910563065904236565839883410580758906797487670328902108447014830189110567945113661130847791602567491975430389930912220973557963564639419452400785982755880925054761252397122047559372927994672177426903865790642417985886720813096519839897937585610124515102239037206347257151547163254189019665620751900675554067386826063557245097207903189819558493384661423338035387719170749728461056378001291038360764166309259488197750721678063815770179701376130336066263823711653465504209695877728102273743798188970725622328989202708360956608006905843812017130081553480033812079522934666267589105581333212044147113239549399934736628081470368229834287993005352784800599869612694982570603319588332488789021514881948363180811485396890041496744467779873780630537649556461837303359982334224105862061429270010183209258257060625985171650175680049580494478823762981362525815932525608268157454875686552770686831981072720644699480849942314395698342279025102768406932043361668817919254270172132211733567939597465923140707779444030870171337568068145764361139221181217823346507850550818141253461179585000912843556926822386389259910553709334019679487949702559519002950694810561043467985786080031599810085811308078133542790870781765223026523820200317118068577139370224794102320398564954153304229984632781689587388518066297282349303028318023332233252334735697317971049548691022458762734759281795826560477303535872745226295069834182941953483147236888818500110427784895020393064564007648099906900752726941772862016432583056365946552567291605173161840793144117794482760835543371034653277280008982880839345012691598200919536791775080063293529412422211772272919817597384114023342534223635602386918367605509425123025987039539977602134720195226709471236372303893405951562763171104814008639992065062517973698517822850485415443912945634789851776691186817317172447074375034842017468819057104362060924767126529865913391727275760464707746459074587537102432622471546669211169314838690972779334574846966788321150731880662953401038560386329686334948103030806308752687338083045308121154156762081175608057228544345219001948571157766662524557820926974452026374163298722867875030561815639230945577955826627020179287987799161900923568053112926048005783086146192937447231170533925641757191328986568518430099058994042736914446861169716857796262686461892804267593190904499628818567679305633864034590033455491262675800382945910077144488922533247267327825977345611779724583411710186849604822485992311410260470516554735286417587493301571104497509164404309634565171260595902721696247170539059144751094833967236875074003754906003700105181287525272915177870683799358301342216272614305204397869166516688228541832358511260830214898657679726571875688668529282516699843641889859777445734683284086010869772585904155231718112301244174390478681941580564875260422155935381581454658984667599851815378330051730933875991567316917378063806183956227565344113644144785340103733941096127455807809239427072347102213940404240821511343331081143613744674010777540045908735889301949077389824784102647130578148126673103124745402573626454795759794007194081477572410742218634218768336628432264510825708577716123626418079820222346100708054521093815699156726070586910875182471267702728519952725534949391887492192345346159547387135172668594884291763509930885868061905058931200879545876934689760379176397581415860816016352311164142283448009647587535873680983355767608190235196238047393578954135417392858137317926488368859111230656905442191420394533344097185124776877668616122582367240392499788005848805523789051783404192961252043419103492985078068225859948893273351036356733757911717413860582258421990631020838868478510132483434676816497901703388028947209282991624591207944720562507769166040184280345267367308221807162148494136550413296511880041938078179369451853291536036026756540119646088858389858352711441605404915458572121525485510547678144392976367353614677907063508322812969019073153885543419530732724753746792031107506980068347630026190261610697436950157670595543452775897096349413583937467265777358644154775367604585761846172875166817343622244051064427357407314998001154957030827129078304209272230839578726732579765261841692780268038928460830973214410139054905380018609896324059970133581794179359882786807298314618987188276705188767852971221658248494295581004797288780702287490477252405578076483985332499617569370063666711534067833866675323010281931804623986321617811467406154728468756878434089104830425152335750921332667299735809186262988546551373149244942466781646340951092841209508610643903185533225465196637132616644670942956851487905606350005337721239275763007179682797120086611788548319017911131982007324376042851365911964469513351011289808819587780885944925582930495774095553503258779073694775387283223012313814967282721259367005631456773742684470374592354371152336254268952731342002249734232233886334691626657246451869150820323783490529348066163028694664775885741644001507223293892905984183391075322089488533722571062816755067781353790524317810424570918602191439204337705874150280865624281210196237546306251858873155761207008110528487298365883850111037923737727942010215358225879322454667724516609633461806896666758999331190753203477387813112953186651530208523770566783791787082650692447765514923281709303015994138042241456521750918547486180392088801125193330806734513586405311694779223415577152000969598941929504354694676493873198430666336678507669454858892833154850531560841010987380698553102121079632487347714776344007538057174885334664550218904125692970692537708569550746535240675053303171172563514324292045264508837042897596854022208712202582783339624892761093563784672024609702016120672260177891151116271993189457970217220671911775336931370626993036103648946160729591641366440025970205330549725031182801808765375844111983229391384850747502652095217221548288457636690511372834677942454640132128842250492669606291638097231758080223856195430654235294980278286456980531436832782491280825604277870218090865798646130774228105681043608831288337097526209878658270201723830087892870776414310847976149731829877658088705667270760300761421868314016365157919598009144705024293359045714246061456120943160487855779491331792559388298181205302478104525513391210340546533434702201606770433836802010869461644849246878167588279239193813531332566418902760721997510488522326437065914504457203510004491632285543053612632150235275788263022357969326120026100623882230778691743040948673229085435323313296913325303387948174042733130230940336001254029615339229885000620062643580948576300197791666110088805061236126029191878216455504014113985917591363416196626202595763278672056500621166773817299761352053481367438805109465153320082046218216094546583697389354681759849130796012560380899849448107657694385334203119234308492419728657291393523469955786136615399480445862378699120027753942457407720575024047201565674874164640183652178051262686769298675703106537507829663073402415337055483113152543757745123356660493731872010322449894303195517840439190198295636933281807875639305374908999673589167367811504842644555984562036762061387529607278120437440074943135047840753148549867701054580068356280172124538992462594082656721763990669036802136390294804940443187037407304939575511459183591056497104768603777091534123544835727782553515556617190895423900427922800920339172361879302599107119213436745092313577537686997538918744119015388008226541152055419535407223569037511514563413325477745421670253667119239116963799116554781244289430508760974800474603690466409615522960673270899725500489116518468098271383120051505249922641698802713017901795729864317489047269953092766256226265456205507816918630571340141600146151305297517740530464146861266215301427859502396070660630279275890820490087289015419053845980375561997830697462935651279451107854610476819073255216353388015842785430743178625782345252099981796210678716471552972884444702111418408661472434082874149172924692897263360903918259402698982678157644049677334707247560058731764172718513326528490715794212719855471455558705769810692643289766195354499720357090465523615292951803972154580663955417086702577662962582154549593454719892345269373964360440546726001974736667524289326759437006781393962827435041938445535752815422180501496754684953918778838517461164559579976689540445610960131739395506333742076654631010931914348528922165012684677191110479381703924391310225273807957786178725699179119141915899191968267721243151191016189967377584736469750126463814801821914223022255582068802010720662226673437663838521691386988997002653575103179846113461689378409656558392294332616285674898240111626252131086019641747181380792025075230026647504917435693835139676168885781130464282395155830539409446227031543045335471072118815480424128130286237493582585193610264014026016300092480704484343480057162674972596968906592999276127032617152185305116142206145928192634308004642689747334012111922048596643326341757620414345869390662867745535835630951482424956934723527500073164240782966869308050990100741686283726318320472539615362643888885028490209360139326043198368065614985542749881889428635657067423915738740274135552745606116186579909287887231251503203654466710455614951330923808017887240929489236460055412939249501490419172497280827571988098254308228953010039757242035661598453841796375616488085423986156970635434217721030856218961366355918359840401539722988277577090654704459892541745132766117928457795491077249352604061705694993206257139932709543523767941355012093445110328122193847159483759044568571022787362709455734678026318670063248056610482873193145281132098529640342911287865365820229512485398224005351699286444735450151551189383788095199529765601556576251518184612160584863861078979918751736298655485638991998637948750898368299295150064505930759394619957306572746044785682853699897171045039954428666092542450349779424645624051890277103741628872620412905409637587114436682392226047070105143744619876949239986831011060067416981108143226532570486375716111791305368180291713745677307538552246431928032951074352282409748015431934385180956419497326253634097721549252564512676622142245562911339312460307295111234967120841094432589071186015903793983757483519904673225346568988074209569560004506183508674822613080638087522203767826377146803972905578487757042078851525577019271129380166603057475301705607577285671643491698629993932441093205246164878432025661765829757825909562885422693832366336209546287262246411578764651123446129869500078814108434199768544609809967098292310846269800753937728515190519976491256051390485023965222388578872561046957581637829955733624406908800229195624277160021284969675213648145191119872379726732305225113268777358545065231551065460969748460276963527375693554150575695064118931525394564030635542695262371143860703403435138778864899203872574953569604160503109495368835396767526540508858311169021116383610233572384980155941765627181752328275543072081421548668140680721839061984333104368449590814938843832894401732636131595699816114392228334581303603612083146350843759599518069694682404803767158846712334720146166863421074256122403786961701859203105914039487712877799403821892416232324786000159201456893831774746455020247442823549025900883135814471150604837322200511348131938600107335555945680695240650547751288188273099232991818996149482947319628685706102421125598969546457732927455690707553088274954650073431767418450463341474342762902667755976273978635597154949807138562001344376401584933549893248782184235637233638509144660347263134624210279295294873467778563053528735610784328183637997925455902846080698573627803346910709463108564029861127048133214019202650418292379172359029546960108435506859761997409512709393639577004009254728158619966117353025646765523946169405614012740338903657497041145188029954399979960887856004075211003125890592183453737531024543897019851173699517947683896073961007998359097789961379059294844508943759095193713143078241010880518338442128606743889394472223185038367816162586603295766079513889270760822025548438640262591169993350868879261172926324070814187766165386268672116171033464688696458500992113409712051626792498349012363132935558437137684655355103519372227491877599669026337735031773975803803907147869112577295477939421344854597702714972627730845940584821616003084806629160901840259971800771594587264453247440228405646817538510770898340944835866821427507487058525294070990193214282519201165421196621855460993405200501794741835808042873093193066475598076720800251060239324408054483937521299275951116657049904003149481949777113774304766935154139067974327016378061109089802616007999679233802391057803984447054493031738936720494940422076412014020356073644286961833220384059957992145398223153488554170796997043357018841340207161460654788720654937782485651929011501489894662782309324053462078206418129698847100804044744853077340411283102261070327990710489528565327610576689317174933553299365397459915915093012690235090240950688385386569253021502927611496972084223850389911653259138639022695880236048781604506440171829217162900903861367311556003476082735837899128107983416747502729815659584772223005104783068897321946977951432769702304881228884569990549560376443833695388151780841483922393751630335781224545513749143976441715367941368585332577682197915236606051208800824448040145277608823872455001376334792175670403822842348198554919851220816653441374551468505190135083037855414078212603912774526494791906747194862340478010174955569661233463144700509766054061551275113003087386842236046997693580050498104855558819537597246223433116510097386938419758842903028088133648388917634511577582311956599798471123203500770385393508461441769230082316867787896969315675670148346121777463332984138046261162124965037583385990229463893795562852979686654481541897888566063234798886724097007415222870317702170167529798554211245741706944334400194119301649736000444930406251822615896197117314285003947321742391763660453034231045820550332966046775368310765937596287428023152247130198749242041964149348146539081391746749322660481239825444459828582678415715343166697928550298072391160041074597026667949895975293567907404200586325612306625965865890382793101010725723055137829183103582089876158518893376587653028206474866374884609675713329167744267090690901838613593961326066760043217095652905549817412937375993203443822573643996580634748278824341433699445625955187448394209241458905637056186058147386359098592312493364426453671996654866263151496768457337972745499988040685450293856208234996276593702664907566990104668729386618722728777273028919849832159181539440350581293716125929995861297302261555396717992480256681696676805533480943958885808086454918826173787912283189019118459417018244781342432173657295718024148073856644680511734530391230952127561564155654067963282708642522223705197533159835323466974767811449373127705373282005582139662603558925549246048280988597069868719251708213186723179280957935028285555072931963135293772843746091701688856403464103332078138781062377611275422733281486523569047615197198187648955276390867624407325737051017353466744661879714855502356092247411971957407394876281458904416577549372966503523554307887962546129755819627579005294350899305382157875904359431122711907708346959011585268569435721568126282828847861316290031766690464411459392096116133517294932989976912657276367405405305999415127017736790599423352038159280295769015719463767930674538235052449474558862032047983886721205252771596518106328641555596338631639580833957932560150667583668485486910359464518294560389917902986159355756403389351877592777079260267936580758962258628987027594234020612135093540817944246078610788557512216279981521412347172153631499128699214496939542728908697669758234720357666193810100005642957716508551347786697910006501634755757398767874717623463802273103659294756591256193665332067231555193555499010432482341831301090006769733350121652306779499941610776559226007504738824203866021487081256046197857928219829964624253216522517135265170146026175851640100450990127079930943875391763735375673052289767350175816388233768367193814487313474653108175360136069665198517611257739773457825162979744197471380612688940932019302605812113431042921729862882067445502042263161793219924564862504333224140163945074927527362705443040373171956060183597364492771648746239999507816520758242618140495012023859455399027034356751735531966906702128848477901969729065149692922931008185908523502903532805994713273363307291888886348605892374527284199517509890835556279146166277981071478114846403077041508994376190748135926404911265696501135299609538325931399568410156080321300619754402623449928882054833116450371933810470424597230663956735067858037359744625070482275563759252784936886789926046432520547638440959638042747572613147653142819439994066065796839400255978553210548909581756463219875035617094955212465451963932423680372263470910424177676342817633926240129674144014795772832977786603465911893909013106687214030342761202330905652123245765268967422899243546068011853502726774195336712797709678102740031341183901593423858836315765104161040079591462702390806433600030028627300155398511986951176331151585500129022436990431914984735421466508759615475176029822182990228746561422032443972567319973399060674108987385328822376425055387401619819468119211491512110209914813443030810419947756708914411867631049201649755933901896154897638298014737326728111999102704729475410799960120221825786214680405833398408568655041247699679586721613135844338870861238459918160350824128814096576657961885265540225646257976224424549842927160454036818528189372962198262041985651057447944212093393976092216105829151001463965150363601990698285881407499871835751192555559057627174957240070538793608941505266302812498634176256881517665689650281563521300736183807865995063320780807483569607618328255419293138365760388430512359432334325542401805960649716471258941494464287775779819938136755477778013032918597298357589911517711699011438753573859103585441013327360869653451185975361633396065587876544775916775086456487964031388129754440510867319660014342179711356911468301422561118171123005406565294945822693663649160745429762401014570897179993032683082943898825359120128193230016046282662957887900793699775626972785443115139678919590686467014985261050198901771384133875107963714443885295317769357456210094503502627773807522912588842897598848407287201671903761250590402662751960149316629362940315436881010593364625572754105857159968915369917712939108018648711313548785752305120687691793458144340502707888034600398314584664340602558542551372404337440954176932691195052426530406971801635371465314836417497915034091211957080024530645369696905392418185974385852137616909942000790010709687166002858084712972808990976352952510016378913557274161931755690903981182163090507422533271395669905465913432743787028853476136168224968036050830480561724201577156846202553631953488151016233587155260864681347749094331632139086991414367872320947499711623364508332019042168261082189073567280014212980657494340427175077084085349172846759713317599718955705706233360304203362684233491115340621062805674017723735198602713063653481481635919163547954602898487052369720106907165093111459295265034303965748435908215916744035602612063159015583435981489664138345240724932259809896852848475198068756109514930697901904204600828599490808902287353208594325611801359821226414622006348230018078605234047973335846678410689253456296332941639345167863392654263965753667697031968216121218792509197356382404453840100030733583386094803169606902924625344948561986228971652143575663313163189459555421309801800055122858503306379216793286543748099615674659850443100765188272130888323781079704413351548044517200761765344163090221422063465660182091574681599994587346504804568242681818462414368871828591035174354256979552064402514398242216272933866001640456745831829846352141577412926192470574231517343123939707958152877800603115966265881079470232302597437408935703672402045714551223781259731111467632093818330688383089666826787782744626207423464863970446919841926460831505548426541882856487600162940959140781797447762246237369008072864710050369372319555569173710556267149640492245465399020079517598246743519381524642401266886541221010956577539790269551148586748471756684692722191195267385590685230170713011911105152234293256402874008128514631719294137596878258486246222162304493177007096288322030339216746379257465625305180548891221481978236801738318718525812633378090103611379948114276360771184606548244669815970329072707542090697953895119724397255629391938527851849706249322123362047637423193555329289584468604514640683608780343237124355767166943682114636052233603212543807026229358487330441544567851537934981938762742513934517051394921483042748414061667594425161936423623623360582071627218842209487587630346435942212823221030191225097427437758025639530971179959806360662692228075934985051772435063207328850352749381022167188674144157296323110789065366534344292773334231449390836890375571916523520659629369720519079936770895359432987115509341781058188838190489221174209704981641886885921293711369480898418549506730392816186347792985388581367519882047415534642706091050457646550001832065738348541274402626137418969261960021876195246342884997559391010903895690928855883319359067478887544800507185407825043612112111350594417437084917759796026952558388048833866879426991839851436974245939845110506249193091784603410733619388987583971536668874199943367464818444247198060137167040182191861090648332047497666625307389633362402122659798114648942640217963758801133039792712121678067948754727342519304463894308579707754602164201552937918668784364393815075094673741228672778418082476268910212595049324420965069890083524669217226548644610804628494991425267260385438784243956788560615597170947683352464850575852967163653970360932191066235678590661569237416648573938828595419576686301118986908193605089530478966514654068931243934012216439972283082810505549373760001392749165555731370743835751967378605240392714838274897768645858899659930106609688453902598587104168733486807736216446116486023434824165352384202108002260285765027099656157659487872032682434304921720264421459667730626937862093820017737330404602066060764993345903675954419573602587680775190891543260402703054671724579438049406805684946536496097326137820769319362556887874803504863117191789895151040819378150411771339365866422419778847908414810264634479069555653461826380732134734156410681556342653012167776219503239814585521149225932986935546890359663160212438152890269434465709355122347935594139551845697228014524876135010742381777995993084932379380025807415762082950487609365030066541856207575727567117822379736288613071163294144484467532025015635866767075826295791685982707116397147619706055845771400600783849153042353101222141888472380396849527904039047209367034277269865786164378233504900713905165608920520953556821454187703005989147756023908616575274162472516706961851932999503362669053938174365851154816938297947100618449049629455905135369057872786902431135464136107814738444435831211784748137939083665407167695992989998860963166716614875414716947783613021434030068299626215529894262944426602198141946369401999788308330546041076059947092481359937043369829068053970042623103173323594481869608664747058460722918928993017239821616961867887999797422761231119436684048973454317699279010010005574473571111801429414911565252448157449300964669216157605815805719501603604406445148382443710703430157471364906243357761837181913095589612657888287853975057381224555754693446197583502294971334327818617444485881357586517749822368956187660775742305064366503923417046761082813803507918096208225123234380111564185590849582562715499856927349649128251481829970453751503108135490019585951586872880063634390853536917014106443359023708745464262835463273635219768846817395416990189101646939094726777959744155862249739664652517066964243456870033473799954700828879512309435678037698746824208682191293989973960740527329578165185309716224125007555273003415598084848345069513976189112448090225757726455245140832305787504287604274168101247001592598783986885216140502225608011042811316529101161296837402890348446419715381390462062804156197063532161954815158198361416874083721026434997823836963950743023398864209981237892308123162787877732019088756085943827592381944175948605947063975610747401076303838210090945963639822434936552371744668616210912841959122310065396692285439337383523231765678191897482797322777283674804877965516121460049958874358369250018295519194605085295990058831024989498718397671538766942863898321400268770740231038719456012634374436291762405592932927288114397806758713295705983557423911811287156039734153914594218678329819859721227840600045091278521557970165292733104658987289082619277412572952625630561419131872885008124972867659146495537526666246501039030736791326098444591433297832997586285153092315938778540306076548281294392695154569314411072340788120630341410398967557194365874800891690361729717864029231928771543204327831153821288416129151700481030357103316436043370848555382004601886378790687361720411363239303677948665438608399687954335945013113145715631798591004284135989544049804610156985621482430816202378821133968407669057618141480692514468111725106113990868867224074832029725219470947574871696771557175738822183898030035933478379475260410217687701732858617740694203365424250378436869544613634211359893846403722729484457007233759655853913032354282709983598631869596392659133503976254449197487451805814624841356655888591483989991625757115131337405700794928274051554416319488001642729104524551744827435352439462089581660730603629517355062757133200925653110027029207691599859718697649234603654093903919746999773406487268047958286033228612301162434138932573302122924479331882922155672532891887105015813031808633061476748078975242267255711154486456870143235859934967932508600227649760467812480360123831686327469605255267722328586946263986001543203103002363252020233555618861655397188744934805803388535223339223968964597979050695887544246721588706263428182848029042137568860258361246620809476464023270698903694615423308135049365610323418733497974527540213331162850148501921389521728000668310525710934089572216163802542189643078302836247100700643391852265621901929185107367610538950435767891240685408948175779837000438158680507107207126182299531717131444887933616855383461605989926413484234591839494162231974340533132695203032039720822389908702158271887801867375503602960356385465528975490462076407953482067301977204697155646671018350056778074753112374882828373082608239275111844742637245211747897516410927462339838122802399893177725281129223275174120337076646988465339254919974837938630468314134437149816279410110461646969162457569427980653648039332382199444028865105985384605244210700308054769729022406069447651252955855423703554362954137094418213364959875316168027642027448647334560360560060668241905762702352370636942592501370375537705065678984592048146795379629486706744549204392123966530256586311973774371240093186413597785789890413871740866944229020472823440809494467298720315508926718578309499419878638593447205279017348368273532947571499142595586763236448292508875028511012392027388775234745506753539077423353082391568674182348807611643581767465996376784810849601767552805047196926132399975994627591625396593466535028353503098799586295766926178282341659882796809212833124031617851587473483233684486011787136103615422368202603607227607513250918369690732110879267488420487231169261060170011524876209790745676930872854117627943352570179864615837580301887411227527322764691246394151029939580317250910931180464231155648669845465794716224060703129784401716972529409591439411539693932829209529686427630563351879065843405868449925736605237248122363820098560901189903451517641863956874499548985416165592559378774323304836171736176694359673100620219944300263413287025462520402861728540555986989869934831738177600201011918571124733909668907639206897689316475344170221335911266231977238084129866698871956386996300219693896689224173905804318091938556413125589289753048123087151843242590398333872511884990415975959595921097764863425360695851890958302951464123899765441702471096345714652499756845484172323577085350293505892269318995336664043452501654631281039583107677842230936055957216535453296558677668719554473140485970034749603473167202022734226434963004202483151114280518495870428216576981856334677035573188714766778335776115110261740078532833773938481250841670900292678986166371042217399825775126371966931721777468377802850881546476651900107186705287117790964116173329010439374896465619957143996698528090720200328272776611596709971731770521585585491596707971071307433046339154808256390272233031793651104148991108215911858970976633773597632461504454255544917573025495795807411696687150724407455678554140646888943429399541181744316136843307919183684908872040834515412795445963328435438812141645949764135960524297708963248182365758844082977451437980396193569540645488672071233226835721535005415493964875647294004874733031133509079650333094336829667108071014564702247296936308820582784456125361785318139087172750359846516546181552143863399057536905987735861974308542804477890329006885000470626155720025841578036408059398879472594501549429453066514752322051808964921052517063528232531509684838240071963309983123373518187360858371672561112525515424442323461550579046523369303697714885459607544806256074285309442207610081551669970354470241480601349341919474384549997710130281684610318690119067706985870831948565419320061705905385969377644588441935325681542884608709753142850716636160434504963883999362977789403945612633615531233439917891687249457586033340886389329556329465818243418580161789253597959376714698367006767854480969690433694739967838225000417574764575781571478146398937758194810775220584243386737418853158007417431063003513332144721943231573886243769596683461947565730748889300288933516131424075073775715465570929563309314052765455148789046830292744281461437321456454797982106287081516175629885993982764126455301440134335558855842830661336195430473185006019465087793817143504406032183995579382503195128918172385958533848374474548218776066908796543225270134158963690999853146165241827116957453524306456447416028714596330812093007439537754779279036913288053366208004197116548349869804696049372851863842349864286264006502130004192395082905237413273321626227234400382439175859399489095029387013096869812718448004405473640717674198335842783830914977979617964092917838612471070680611524294329331023197147728521355804634933739534564483739064646478435359417467908410044112275842495459254357935062331108660608257539549021352703805554029759306697989094796082831333377076549129137363599574709211878647723301509803853906558553092913310102245120429176620977092613617893628935699364109608928565368004346062501370359039621478252241162552579025599969504769580672926036059200736731390143487754036343917985255431671379425642920070932519573367223030880161502795326152807086266980065604352750907899409720783740110050134270748048242512098784791569309154719216717337661632032078066425030818821098651236257420300816702091252201530503109647851719550993989837593407346266422954440589224765455184667464362779480846358756858934484367653392024402876121493073411610830464699436039782800986051117042384742020252870795233867570885983651293657349947258337390205481791806911942511133499688442196908356927213603722965971147785254321396983236707842427801631079421862330153777682310499012152834513086288380797449492632838546199317523344721503908699783515331113788468305788544478439795956736378852415674813407414122886548609360817848735830632039927436399632548101090870224542594607383413363697259525011769230744757905633369501460574612503693348310831605680265504964237789855904841454763901594995354418727730305668434997009351009029172644739944651004125727388153159871624897752843385185780544484726143062913822783931698498475528255136145733282614117478197016656666057879896884693825497438540655295514840247329396765925640360155933651997827888035385624941119321444567817226507885629935077691254776135177989215658171344817381956428852422204261295004545170892952346471162503789808814507845857866350239099847969074031383594941710052990657187754759374639264624969026471480175989908199118277963806210154545496982611494160065988784586801476013594139236351523570301040349346843288527034701400620479210152181741135627739795862052549190922238943975545080339420534755701976329576126047370039262639460654689293450730220452786331113518837300631319583599580396122019519026653100245612389274090026591034088299244028287041422869372546549506216557197050757437697647067120268135827709604249532104968486760259539935502139382578035004697104536178744415674013652545038984922978157470434105323536128200653582634596189475865894898082631778990485634539553256167523964789390552338712027525732128880415253285360515946875579684258522158372681932436006620839230033434597635107947939532705065480108774394479135812265974579380909890467939541081657260770936006912715403400033278248323218257395957816985404735404062845520890202058128339974797030502273091650585245586647743693262332026220627565588822167286114638242120709005272930564062707294807652434664005288670192871790292105913958340172227931424471868901248386798201131828053791423183252169518565394206455301852276110976946662428768008068859271602974972625385166743758427997826384902349013892033144822449354922240771367818212064928206355127878228441623173340728791701225582349531027689682977259994396516740763257079619717888726804627222438078163190703671608065194101729065475471570055795247514712587457926640041309082258879211901144199802373115035259840699970784954944739431836188102029782139925706465135833429639206622162914230426899017659261523936968155377562559733431514544436855869276493960998452843972778294942764282200288367412548073659129986142456008073347749790812247914281095282282105560828817607971639314014977225821283153123013977493902426975550457177709773896534795889872741957562553195178890182310833373088426365753197803080135122882887694994782814198981576494966328113212242468845621221847219725943185113387870309510964303046853594508509120542235514874907030078256773429359849556486181837342027678896010827609217260272192527689115228760540713450231653421713109819540201316207881742278978078774690464532134362235634835467737673883034700241921532013793064107379643458616170374284607218432472555139171322747521616784837342295612602724007099991521186668328663421891842151871143411609631445265625025389603514279518741043940476077311264704857176263694358469762493762472268764149335018525578052112998477829301778895034080736161933993356641006181587360633546670154408302858558139976092209997392936424029618263428143444004146474250686987932303153500948575555946474625632552353072683277327956580825838522418479935956214334892028267950511834311870620456878309638893219480266456720966462330028701389024218260274479430145772017117753191704679376051458298745880049005017604018838767855467260196560648542796215449208076834174472535695353122051716811850242868879569517266175102388345244271261816415086816866042721959413512089785957826710436947633981514682392598298919666541589309363250701052667962836352746897481408877015448539148099866018768080307023922847385926256508112181360416677832581185652542434109840811285137364286226127571263621561385343264533643196433810751813163831249946316413700428655571554139948962016711202391150552429424199987779908694358576851618414617109653607618928290436732263026105233985769347198274823283170296360343028519487204131106821786018342984724573555810262121263015241639128561214178622047352954722361229706608435512361321515253938247830841611284695766277953544733234071842316560135825092083622207021244948927666537676475243059241824693070638296378650636761969013845516942575690169318282057515837883173727325298831926457645520197142748660468472507280912340288425552276638355336218427174088839903726063878395844200093601968116733383543942259285157460074542606845577611346678805694645912630368514513765241469643790578042775490859432740801743192119795421953871074635880938037136003131531690099219497330807476726246381916839775605896473552800565851190051429362135740564192402863030328690185442333122186062835297475708696555471474454255363815662402682878191014815837694242982706863004267858663254525233199217581518335417671690509887566790898492763235458239862594603529132601108135472028391154728792249694876625934931529696576883485665585394306817927161334991627672063701068985223217450888567952283146178390227641872494829692239689481538626228619154611821196870652348154403380208093393546072910768084525572633994736214730290069167876656133844941154489214056367047555138558451173187145983506524707312692962324727334026846493460020156842530911532272165182171905396230502967527853439903861828493719924293460674817760457815032495898889257538690264486427325470757654391828880441978767702584173735212577054934295074812482901555480539786007359542747124375080644196542498031853022561780421486827204614362423892764570791875196158928849024411162391165706092127256771174103306694092344025876471266472180527741442205042674247525366109472728798867232781855584890542615842848865018684137766776265402134912205599293582247053794509277377107439928904181238155986381518225331665237300322646590046355462911265347934827631545714469519901889121659237041210708975658719412523648131162979548486547527088626335042089833462625085510158223512778363788714497444574350630532740862411860973470738630865846664196169714288570588656277337389404613988154155879685501663192804599026905597169738730756868373128527627401555951255474221278155812405685428729786044679015947695182149995730299423230224612683495422502650687704194023567491183324094278982512278736957465924050404105813501520796315691252698867916119962491356018246688873402692061463898998826378712561788803470245653622241153132231647722403925204824852445475169637422997264123445272687313744004338681591205242987440512972115610115017659308809425276274914804402019385391114350414622654396327458446431687760770017212200670997713593301747103607748523101303878726067983680737453452704584076887289187739750103588670823773410168637852587017131798805021480802230307699236482874791510339008310581391428353894165951604048832969533609652153333917073551841434465135796020169549791012648026783350418507495904814935849383080951697145924095272197917830164600770178271011469380488175992089826500633481464840673687921767754963466591089806449876797345789124376563870432812080922869637092046737032255279088628778701153901073259334611301672574467551564651108257590148456343418140184043990178391964136568875344471504290704469071892654194959495180429452524415504128265663099511646967369870465049082123691637771760229334687156028813546852795739543925976421891479360627811089893373596077861989035461771403150472641974696543586322755907458114345730940875821733732205910474880035572065644316852982580036215884006001587655155909422138759477319023774158136632078790754917057584820687341211354104070819544713394319096166862583205182538179392620424262939817417776325493629224051915232821932822120355458197205014994016456918682680386999927753278190801255894006888258004436446965932985753793386198068172375088113270858850331286495804740151011470808926847019275327085655127555201190827997623011119774000917190774233772574886324328860533242365275662627661539081581891546841204274085536407945952502635468948743003443732001046992352879165992387307599188468740162491349025381460796826856166220978442030496713115667591934620082338795271894435062798376396492185246982076779176805091576796062350006011273821307547252541625890074942111122052847770952373085178592362102638388358520490819290025346607545126376365778487225911485051159320723664979095441592653394855798986599746875539057899128901661079542203484969736707900997282431306421995309170474516435459333779910064066681041209158985516189776381466416490829919858663650172535871525288126791721082096116164393005391811797586997037028874041702270275920679317998308240118428038255453896215165317908446336763729460474268917660925213562660388506795197122253163642913138509211478228846969607234396216060039244566657345828209165010994888525752314827855947512718453878575154497610418963190256124045443022788445094025798470349261501046415623564519732028561974758401889301509311055933697137277780067793664844013366391704462386202547947750412702640409694116911779556538238516648958630759973484966936970911105454166809163328876582148793183136851413060490221288217657339513339822159044872600714352273781535969343211991926772600532733131313627863717452796797398903637241029169774652635384615086642189244315732651219480231067327423062433758857456765307957173937613463056716791848225068801649932246078626071282358464606581535946273650320233362771657942032630835290681289806121926711304062396134176347690406335965939717154693564328054033912951413578653927450740007173469975387072111424560939831144243089048151808392482657751900660063107055025321002721980827090228293180494760856028926964093305779067637042857258783605169577034365007561951556965604814062153287047889213159163152267042715378965169141239495214448676061073253396675322043257750984155232166895013306291865202765820238317018788804444172880837013359737606938815872097593037960963321783727586537100097887883287318646995460188031346402506944340954679109483753152283645560775560416736464073655829809513340852207331143598807444984333159537941950442654363230948716153993217362405952968231887765038538717062496894446904913646502543939348729752375427648277708485935466024989006691854152299249489780451266804270628015810724408675635056935473846102941869811823991182690828695494571759457788851629919905597642929154933747054516095515637020165339009121528845202478069443665913136514166450906075774448937263799811022079914749554587055745901228757394220304734013473759090091789150325726211264671538045507536847663200844151022000455506400188025089983854044975992935526619939168422343539994202104049027810607441692214460098289344714845865800067458973568436583684924131757016758826698075412461164277124706700618710546069915960629331792154056605504233376131203989803816859799707946067852173601742707828563003359650926464007904674544377685139859570504847069339882836944369541708034707290899478513049027825232371503861260528460246273014631837033366235985117839513360797776904362192964653281657671368585553438216835772094060331874575877314287083089069554351095238203816372670648615347772439195469594941208012780391443785839917213099308050875031244633257504167452407828973513552147168195495181090729689578464173750962232221369774129370950931597944586997671508262783802984174779382730187418248418844216278602199209048961837721944145499960498145070396394806841327814037343818835334866280316537815530688926583541743797299017486629690777155118944169019696781408764803884104821642293251401323856503496349142782009424018139118564927103318711606026332348919778016270395922478553531968806250045018004474305345599290922834280910876762433676687218070186912129808188454280842861328847191275115042065640243515056857295007605201810488358208006886519351043453151979223944870642717232168192075459488029675663190393125985839179512561765041143646675384140515213535663716289845441189887603014055239871280081086233864121456531612214588497985781244402183790120658279770801391773154521246478232161265617505794022552118971591027785031448996225942249509109373137892188948552123485685309943153738373637593589000586192130680290442168353723315552912375136118656356599713840960808906988090606090945864275186042690008331637205046667748417409839103376868193766597918154747407836908238824940812396500205297057537986114429106514115578062800016284228265828786966769316173022324131419125228641138113339909435301376743617343909045684015808291035412351728209937106822283916462431752931756329205665197815027651884807643044814890620327526566294089170576185625845696741309408867185264453164842077677715309435650016074630198202144567391250053779855578232089296996998796219067877450503487866203565760050413883047032571036564948451816880136387968520204015884781681738727341453936979574828028580312125288387573734016706919919772510380292671178174799277603670285194953125054304269860644451958526159861430885258044468299350770680410529470087867298011565228850941931224511762039584620839225262529673809661640284881807298493127255410311696357582338699782481983753173066518964262103629379458465538947794851342030853370700672856719401900143674425605207166637734464142592481061220479629577060727739766216826309821171901647280782921035330647562762135025917754808205198981005222357399792843686878979834978142219630445002120505070512617612719133135553639087876656569443750674280345186338025377062158972018182517385539666942323942813207141283711546309018413344975750493040017973741368170233724475137473671767420825040733560687222813405689547519020970625522927145950468738723462125150788901888628033962625650850273272879876938853580443164728230673437856318281383677766872560816474926939762099407294569998899680255252075761065531087704599520754817894300544929637645412436086536348329695511810294592453014101430580597561495182380000609589450254202821656374561314541614985581619631734946308637357898689484935316999713035892542695951031003019738217071713896309180394593938376839696302729109455657522462075016091906732338269865209720110533338359445348675001284044513873802758727188862102922751442527494396715607541784212238687142632146507200041524774141271450156726798497688238430357972733093805248014670732755391628759501836335902322538078920556349016040908359950173741388590567546213531227482588899622770854347122943887322214354855892161685468564164944212539429223808621679351980372443690722046320898563324539855171911818732794334219448743106564285624307331378007568620500904706543782115408827523344149428982166108886074145829556213621248892598373951596058630852425603179842913232826392722380315666046680513446044779857041999671506491321251820172676140464961550491813831236183214811803625574630158674217475308870463427957238570727180876763384334449051776446399372930399757820729242382212907127565996465443620385820347697372439870322348056906550282302910812802105163812162358408551643238362425383364954767883524611795829405869376744190552429099234508088292038876795915444620143510520746753042616542115887345686447930801664173030994236859025595567416635243518653397977339250171291105232680048468386052898953049837036455961917752089260583741544299317015220315610853704505402280550943813578433230532747566127666847663261589841919200453102897054061223211759880566199272898671642164575372383479516089513993116397258569325785464202905874318121380119979289746867181983183214454429958007331804179200212468285208041471886049164532137407410794003812755944273207628365472936442245392221209591382316171799528319452274859342432268528533661860875420643002357075956837827877032341683469892702702112476505400026612630977946771825933882084267334466555508334512940469816470579610410739420763872984830674092685098898128641453941561624452855644848653846069443741610713955011692162763075481163455650731784657493942291615147283818283145802838552098328288960460244864017473506668776456663336055211580595518128532476550462101109953779649241948472296382197076455073616583972008192271484571678356132370688793781337877641744909945514290585880428836221864522260350095444734714207119710027553783232343712259733796970620236069063669275510784009746711155384682146930227114751826778973042607211295021301970271310767845047233576416966627205856105288886674855663203347058299975700308492830947271908725404387873334284075135816368841565035359821324766603475771085099255089352274982898610151991415590492129276108737490470170178978890001636790494945676292993396649791029613967285088445347684147620222853242981516864325452391891153785102975689844626504556549127597914195969629267945228593872256419732057721686094020961795204855818779943907075821934673075199096174862622862874460785471071523765430668421188744322549731583981914323310913586587739247986483233215082933633280847496654808554820469891461328837998161371953014489772394387085428214598457778423279862963099247963321703862266994451324012186932187692829518659776729992947917639939930455484479328168826073196175134330995141598936837780585166587581619829211095168723672328338644990230592659402995766871328872700356655005135379977645874998009913587975215785613547102128696155580658016696550984103330270441693600333856750301414536117518613880310015041482661158607843586222493453714954167171194416922548414272577964705804142028969508379762447138013108462499649530611490443502111493784549333371678421260777705203671270430143533238755921727218026002890933932314347981307952102052939917917319270449723346877810680342716679023250673972909342727114663598361398527073511018332593896584868039910177115908326860401646161734577362757444205769307657854027858920864270631415651006025442239770327095009802821049281228002240820780922929831005757265922030991119784317358598832845055971042858990562493590281431922856973030133316755403875593961128986550321509363144076415800013740838539764705461499773368751162152220089034154292131974709557260359870192119420207092357145164161701016909968246569106961616025804703405232413871790345974082580943406085995324683635399293853575940188489369228070436454003831110646577942339289726116304751452927185462937093225303019809848591353282439584717399834979922895595949896633638959715915049919806111825108820471846237493621542421021698763457272233626272004748577708386804012828481187506086160137598245764396403459526353522606090860680285620684266109543628845442162887444280060160019874212574246230144193684896880954960051289854990736317278187064486842616930167203687704275962267644200670819983519127295804977661838105413158686379999205778614854239127541753580058966193613366055940176492610889178768968910583447531879260468144775785187789940145883625314815788717117797688962779113659398394701784109459772193163957089257921670771022451299183161076092896626037435718666644892376775365867849006264624789692214762140823555993620107407794333292955970134360624224614268372017335349515343613547240427966595321511442293591556252847834960903983967205046013323568911750325079242176048731902845684103860971476053004995468959785660811797589608584955711363191577532403604343007191176500269286458499819331879593498817897346314208867250170565676144109944286743510015826268619689871012626090337750212083809427282096510619963499638260380358393882901242264265328613642273703477578130048231982618731905502068993803695107338392093202337674583325457493755439892942665869107517753227813421517992432603293649868810052935631213381960912027228115191365002283154136015156781970075118533805318150022438069072217161223172087811387185752578166575745795590119048933501605369855081082716624637692403848390402419222146387819002714587195957373708170413749360683617786140924907936469703453591865654048185087518379928471069431310397953706990464128808872457837990769765236133722946523057446396710547279551900547346293716956788232263598385483338426823217108926414310966960872966331363154340908474806213933348878028621700645311640004005415443482811266454095787110608139063835680426375239156770472399280131281392541670326758638471354360522545849610072375373299204815357304158601369015791208659754037873039512946237303378803661768418030877588937132008686204206145891455115000260715881384850180217470654625239627065927543006617868973337521340566416927769227072620375393067070583851591101704480663278570884922338268385969419562927258093596361160383038936799221940520021676062065876819950744274038686592214859712631593693832249639528271600788738170492865043421225935263860687948764586804238403873810115417804413133205917567483643282500825895989407196668648630772012679279309373848994305547472685092886675201211472684780858266899436946649839456035848906796516754698266175948022140160099922669465722157502048136098921601271154955209560921059600181366663922548394483587018625565045393313479930542147336970461811785563704518550648696386630832044971000642795328179269223135101606969610110231749330388861419581299553410113791635369902678354046685586407556090106018900815396042884553212730006597422804210713712008328833588568908691111009812938845681865691506574471467373236528155750502215831359107164532954974998233618039392505441434829363549239096342866793459682547279032051151083046847096333372434611580366077463621821133579137957419348788624245149076913765185752247116473581571728518413855049710390004957062651864108966891386056486656032390714605517508421481030085001392869903192611103868432328798936178967898974241365173610473584892195167327278117686861822215018679590554861190127129493676682729863057475155702335678229148247126542866340361621625166580081587992977855210981359193604915585666491966919015699366906060458499228842194532234943508191002717304471754039227301889789952617644791647333792825431279221537328318412092205862803582465462884706575058576154627730234945586914491424546146737647225250126203305948419766287140492838318744093090962831911388782359299073506921852587661032206289473054025762284290560577710076333941072862540804212275941954628878712385568758707812534248390226448878678737746759354281037089066161725902341854646888764443185451598047635285649727187749031540710254721245630330584658729244896975276521212758563125304912554669385999349911150781168476548643028520406014249056139105439216782776641319430730036592710395718670223848748876753399155711056813665611072089519522153280777565435909097622246843585830646707005731413578273731971743476626520810215445196624313624873091689287341964964969498817346675765308335223945814314176140611887842632261962262183729158196200704308225078573863722407999569800426362901796058233457703039366141920048252779612018916458715903493724043244653967218958790883714597111194819621063929593647524556703664558209730174217072420392331194058103152638867449203628752694815508496349414040965159080709701308043103178223296352980292541581895737337385344024565011046559024329108102432096667251651481865205206771533872340940422798369585834361742480460421552582469329117111483783119885128680056962886954608362946749331245982337210734005208725953777326464868463693171134748616722755788430578150826682270803796033121688838496780667391386038045386220097091481037815798637327227802356127863809710325946763287041196652240375891010527367819361546173353615650222660473877543559782265959052646391931085682323786284561611203964057588947739901305207073583926017991855621230512448195579705539505345217411545087137137902079217925094057692319382733407408827559668364335736762123514507554092333544994062586903250285120176844703224080623948773126859994790907193492414783449001117118021393009198799579787338471326038467942646548876093679052233143100003080422572500079884282083320238822556771779278836715574815719199532377838567771235966435968884332543008523910587335213470681374553329902661860320322524566323852121292006855843467337515328331254141283871039482588753482067716438913867233262015436079829362124413501611558071252007515271682239594397155190408069655457666188731696594012026268879812038392382134171249848768873164698213117128968821698992711827554514881711308737590290624711932042416172344982956085602700381430754690332384658207109992749777217873725916415234466761026080436498085482137517283166654507448254770369001965325055942257601267218374029173700276972479260773667424149624647810542094518668785223075591233447488647207392131017245187377147708321095304042255654800782041047739424989175924304816056726713240048039363754844702962106774661613461153965589175661711491464054384048068440307125377573897560837403461307370812069740085697462925568229907467147864127987114052042994352631098184409419023345085280838732331509677801891374917998243457221467188644381930344033077703327393185212855988333704408754471168142060278485186057318630747826792114485030776654225224405162234834017698810090907359526862992810106718180041934260057641147105448577763960571782640586884807963947160558181027050494085150284653658238834931752646794270983310124012114963515429970877794286577612243743288216088974068310614577417917044455722681143683458345222048643215412562114828956552765939456932604973768569314441920161597960477865419254354417965433202605485531655258796675271476838571229341770028199584053107080959861965953705256485285479519234541584341528140059526370693035044468389341355827426538162955828777086996330349191913894723927471713441480582146908747344469974021330732332907109581755062153377030763621863126858386873186754795965682342001299109470354340032591534271101884199102725969621763385504618274532321720594412556502062303465680566778192405180119313580171287324784435425403115402810204047873370243046977982092350877632735385149275486656016006772666038529223808422245550973810856013341462044934037354551591884272644646225906968224831959866817814604538024837243742717053611677193951570390041295328094827671093335851294356496535281547117125556441219080303880974751642578688243865241000644188850225210422492536971610777106220084241318896426176856894435597834957699150517503537812451224599916802288238033775346743061119070242111257154428486857490900110616810161452803818427049717450619912715654232514700192581359219142789604482874525428379603403227736794089380351329048574803214170429769715206575772061081451799519860420101446693652652292776408681409833661509391976536628552579109655241205885670419071293584303096683072859192910278469174745207491566836004308232389637374527858856249288265338139157583749196985890107656002959036563739053291593987231870815152515953046162874220865339325209928922414699771992633127017094125983058889941020004728848578359645811278737262389646907611503693756477154606904802838869342441382200037109494577486331927187040080934750464895477260007399202638663704935504688092916478587897746333658298045275849042405163563078966501290298152805167324848265035741939776847990291401145482047220901633803220759510629283214767882075144324550101620704705531508298399348211514189001715642536056580530207490744430989839182785107772500294634078914253706573425023080978185913968848728013735363315182500671486353838727090959229423525854887167714380450439546498360447697273224821783115382166211019817474169814599067613253475050829236651040424350640514367839754243594150509681930446790472214759835170769769314400221225687918270486571613711177628074969101200997383601337155595811579186539777842948648132611381144683974670875600040541243783359472087123543807935786302161588273866376045894171038579556090359186702874620574689451078696076536384165490909793754317921671997197327032727284021010432024487466288465618528846293356614516608942766277104290344529641458055031673330821832628276612999709336624776590907778951783873116065405329310804791820253891044075938750116598179050854701395229312516397979336164006251078242991040969128443329960716780318785099114776291743663036573466862111341617000167237992121390735925447728322220441962969437525893287626660316890688446905966447769549244952645971852934805389076437910621475186208822324442612145301545712195630458284535041313124364574118659063566796288808872891267149549625884967678669619466516381740156324779000763094858621397255273796246721180327366601559767064211842217830606890839147805094326568405619519711648445551123397469228319000588035888450714377466510254154628671343070662409812890336791812810212085689364596817733383392811669190718456528864203339966247775638955508367478662027361046346587883467034733935109166216016671199100086019075287612624164153964587154307812505333745812789421963689696478444586287902876275446188537414498947073834875640173758933542111080732651798547947318245276830556721283765208427282997102106473779936297400849165236254236408731417232415078967992073260045105282681063462247281278483381899932696160098543672105325247682156571565902053429637654113666246722634322475584782033848884674363680445291740038333753677521895363457833105532886944691272734305815032534597124474884417007477230509322567119143041252337972756169397970973789231268026881707983636183591351067195588845521064601773537789751382986154876445050538359131742803877339607372342588120205102906931272122468426488752949633162067929110828505536765955594682347929149702283558526394879366807903324803627636225057909895961213523364115502110804113292620522832704033267402824820275842852507493964866502161702194428239265582541494281441451318583146455626245363270978308065866309337622543336700370602566180883796338548219348787591771032340935897537793135961810578881095504736257034400318622699972154225772177536706589156795369291907831072022626188982765875313107362860211015640093204201815844208530327003692982899586119649468621511702146467136623582904625224488397574602702592104137699201592308829468764591401642886424873622527864027740937372636860034658887070764378305314067935349298852949097812168034032523730019229793708552444115123458314849672420840338220522844027542997166067434606085318462212945371685264380016771767538499641256751779243527249285448773626353905792625184492412705035879477565825639039118337152690214821463582102656191560014109522182516617608772310790017607028294734901604482016283889293714306487209457226426086494688557777835715250014769320832479301018418352793954888691119688559571076837172103332306422739890453266067882034753068269187797808088500914869574024495612855155202480022645566128135587885362262659443669087066655773174589724127120532881344016504802658129320238897416707850089029648329709801034333828875038163160550370998137600645619302347005791218232922515126477344210177395101783112273924588821161996952075043454150247642498842894859122405106648717464905151017009698360668862098300259991467084752568531658335929220909145771732693315877484185612701040982357694010874928895605524371352863800601255660911714445400461793949374233202365088644393214487834896953234918288929666565079580023914886151790733092934415849404912071623789935726359448786160651468590239795617176045148467184736351409659270300340046440091161916681895519324448089345107789380384099267025811469932608183288833659917678549969669528631369402609987684957776915080958714547958758413082590002613646316544884021595928457319358288679365497570973536259477751828550439918308616502934653234805870445674493081241076842936724368112367573336280576981934645717525313415858460261439334803020522408833354486269737635252836969888859861007711866640189075948991567623352903146081818956754417162340684552830676283200522140453352446748205423105101322081142739187129158577315810787752624540745445058566063357786584159590848906688974595012480694449313823838392010499165096122081232752103301194582223203887374129255111237857023302240887663332223585223632977305410689875992338553651824808121782268950213091663470965471891833348029693553438692519407422756940120257455965600672045950063811970856964477596509386769081397152725868719154005803042626926693738157328474949395995183995946130489118082881790484166868554607402054830733496930269623792522374232346696775356091562499376478570939509345511917683652979992517079045868807482922531136610164089244479077130467194740911604293666984837893375155442264964117561684227282474504693218191602519496593302971562092356058564971494938141043652663745819599700541464516112613701993673939895082316282617914637536832096499495860683644131300706430151184111379641833285420952572169833171713970995322906449388507035606935870908037368025912595293042990458900886660896427277960312004737201865870728934556515551034336861666623687941297351440941267803176961385892266594405064313632232423464891791659022899314526579721270384421366407452641813375464838339834692615528955203761244631869811545274696988605837920855983600421140075755596091093078761902194951653435131806211165372008800093409096114577145186274327705296582968426317290077759248981720707571239753224057642051978717769783875009355843737415221081467379352867942551513792366567959784295330216182464365447175876095652812756029402239636696876883381029507522106438873946550024565840083727870599490350192844279836736586271167935540614557138357518672188323245965423007596254753169610139093026929393278436519021551106304175726455595478770286045021051698306606185324885323388203707601287811625679306136061240174400529007964577365795598930024811709274403762021999542935076261718851055685387150524351806265705967049971573847190768377129879420014253549308322715478593462498823711236897515859709867957455129623013963304242013926852557624366024738263073728225451435637744494018606707873404782388677993848042503857736226998036452846259724863842529346055637427157769882994465175040090161523360537837902219210895670812474902615102297872879900124252910578785259484398345033358018931245976630563513529903274092534921090697009244624120284002461869320188265509276649247251077941691872834585798277371956969992940365012988215946320600234576165122554552665196147711622649638992281367820397006733026256360359910243273355146812914979335276318734004394076472508795301326014814422727599409426596411128672130114012762050045342621777844791287162168766084207026816626359206927071889564100641250578895676331484146474150031474803617649533099796458326652979089540684262984404331341307732387384081357585214947665106172984415064169418875188226928887165065216620580391377872900909589842150733721466617534905263063647734081656987757273243551414386732736122027319938558446607853017739087429764891389680774827735767170756485723270850236130675152843153006370237773895586576667696716772313924838124743670247136973177866488328596930989548076912294133550940194119567649568296164347528307554485328713542623012788155825906549714572968467528468000096830145264629600761783787293847247725309105550449021885438963919137472103175310120506669849582854994136090407488418884456618869550702614068887265812262577058962353789234859412816250351848474003247207258080122699905487767862573691812214160282530566138921470635174135532173369904545176710597938956876356929792557171239708655931135916266883346513177779028551041954269900718704970198619998161514478067759206859818935342063442871195453192338768970552383746332107097805747855259847667072760353029662806237873539798965165755992163541589266233201003887120421962677680798198476103742914782232159412335985409976998797441913933742693261018647141603121242185214007585969043627229348600785696043990932313001615831809104679735846128836273938040039686004183223678568535833466007056044589041518739094037031929757906554805085141877054534827551761876730115098453419981479104886176223738876326747891150818409777651972236205910714201070034941364926356322545955866236485895447358187635468441074672661518915015262885339745651929653787670538177350024567507918183883648312628159599911526932258634885756957008338189312260992463839503993540580818024272154085952041066504550457115234130137315114726499013485385106873408444325145369728540976472014530010411434841613413339436939919522717635472396165024491370619059471398676282222166246069174340316396046032221918345248539965663965282996939152166383170577383462801837774268421780037152252562219183345375181539579360169094140883926365894017742258687583529648011331352354643592106310820142554953314017492005142245787183800729950783304589890357791949458322904044342928810844675171284678887024516045819170076216152307583866438753989783526464193619560670807238698545609882336095241684002293171355972747052463697795738284820393146499961215239105823765721727979447693201648269164279845689779842835026403562503705197757100963432117292443842566175089966115918709664115749826917989766594385148735964854230769218541183886237189553998799129576814667076084077816353635159780151026748310800542727925781598549595649403809118600638734211341757158739602092718969925222187733269925259482593493812910199842734014436819338383044846860582285199331496212980458737005250275727622673234850924148789344658164171711424889315064837964668426496777150982744386422948850514944554624694776620718812817688997184714021410558582004174413617472678567320728240617991339137542458220445774140563280006305741337979008536413629396823204845885488700804698928631801885615924038653196931188190605621471854448174924027719979592567597596485451753973632792350815436544863172907243667420737478554563906404658432156738195026456687071532334190625698991688051733453273585550634184688485307557864907590005304029233934589276709469381653181051860062866203393946431483737341436423592210151631574979915047343670179876555919233094650354278219703621058035008080794298526071446098454917788835121716887234105808467706703975037612298942087732136874552990642215482898419541681692957252845819567734099672029040890170388038766917959232372833455512818919759968638017994324306351333777430375958604094223086560323653028978841181614389097365775761379787369897275201667024431438218270652107100686757336026195592990097918914609368519631834400345109610516297738285348448606111472390060089288998309472717927902181081375383320989078234190073504910291094621855878901782393205204846485948324535013781421672388929271408149750280364447118879363528304763070911810317742679547175448768625325364565187923217217298645243725893730632796913389604343680282979758134686689138922493003245923279265704038389673207611687043658716122963374425364913350847610237679745920017645310363050521293444059479726919305180037596117833452366927280946354478945264430451873826981357294443893493874116787251695557452487985926647268834925596292430988062817077329188062837837007253865348522475574078667935992293574576133102602533812803907269669773886803688299226834076229254878271707294421917739635692219645692326629124818201674755951530841074859286023060381954950717961155247502133663530485968418356396236233612042600863424977675813461993235522405667121383689241259312892588621304680671359279674476162335358930939859710878348814456276349712545105584893477897013053795382294875117930866444023808329270276023853401023165101542014366513833192155759020038658600082684597630904322263165440558156634220137878855476023341844986604399757685210271498088758031474298016203690979444203350358496208612735240551181026368565931171788144616955865721948601014552521535329228912304410448915075997648477737266207947539038302415489063360300378102604188634728899486188059738183055298099293817303821152294016073099901948184606062276041911738425973896845552741962675385469056821461399280929346492456370843479116185240256177802176193433166868917129052532543980005877178028351419857451046256154208896363254630708814601923129502773492674399611874298269853497386559428385958240084189419960364225156141622341751508526317262028811991791726648997984689142047317025859459017667753925170252343406325066349163077620799937250530788692648206507230326533216714072484482356098434315095712426552455086090589556694214673529636446372574544030098159162095649638564348872088572754206744742181606551173902144656189067604958882733069521005225058405757658814181409557571930547184625788613355676895911115251540858045132188570489744452939004943459484600305052284450155635712874648464683753981565697045730810116661517297225153927719193279939679162827538054925029156403658605813912379363759487783297459593350618972841532720301099079594849381093068643322961231345853926317475869761501297797064611647898955806653322546901835781860560501454716081470729911871940622957217113194505625809659944951176516249316887020211753358261461062751456786190641864772619513309842771284743751283724331423572047547996657318130022602760664575294193620709325088368820013848516202228239445093995405539100967235744773737975371287672722636173859755152897592685247617170562368308448601668690699909992168572809595706739751637140405874957787704056352884562933767028683401762773593086997749385029988920220763773380610904732118579601732633724373166936814791362899506076532359418445931767614877358838897484388621433138755908410640476774762713128989327613148927086357895064991232378879481085251889005514471127555002867303425962867230709139487541905765852652843109545656493287766754269333723570861291087862556299212763700739672840155194406951803592396892041146238064849184605880667573055502777906978490617402174148698111041835308690106174185570095349245019268709815175017971859212515853929465392295745890198976679965766941744628003949962174242368305413362644837526491325517357250380004363431144925851817433473844576819328301406208169933792520869619300543616791785054309175221118089904634903984573181814874699903905245646319018773482053523290550986359298305256517964876840476764397124567390415117422578639037086939595326024798928724465904873853269687374440686892771806000183424494504542182971937183170927639291256170433180587139797742354944005104182504567532024905557189593346043325908452515640140730423476188163228205280029813075465776584635739855955228341314286374536042273657950282287091097233341122611016332300812674144837922465285678397897681441746691683309244707314165428579796089457146589569650544156739379330537213823691352034201788264756690015553765956096307580380063697260308427824928085574903823757465255403924891872625292337086044555119303968241022700626165258498922245538272534862280547244609048088568694760649337832217096113197069688467871436002547378906817024209907194714007782601395916319406872859774655556855251799732711120226693808268297914715695726338328426728860415624393589406252878501804251733369491556524171589953632399084408999100348393584303486025077059713429514678796387719761314837974291587824041172496623100573907744503139140694742487415653451322243156440573632753158940414243785870766318140453643547425590868887633650961710457956957700773277864717389165936215400232321759562105754565733047330066153570481488941758516717649942810577722589037781187564675723924863875696541083095887524979107907156645402608366891450172156770565956644021824007096554939116010681542081381251668599135773227261873045707052919084282586726406973201361197717055364056214273493032902849022586886700916812078240780342224219028391464006368704262306450262940966188937995997115349830582137452599194642704427966989425878535022220307719385169222868136716965727925654730514291247736151608024784018231712032724158392613751748608588136317075051350160678966266425080147461797077105640080541733799304237708160384774695672162130030252007629097799777488298949515659055448850667766869206210401961679607621331713675776651023416217075869044841168400411850962260249574161634098357783128901786378755087570821278862552977496457258151394244944531825270914230854169531463630510091097963078539124481808877243142543582748021783333822266882818733309024226805412016988997327032883667086586642904678548334184558352248456071966689301906078042214503875231504261391602882924004700566537862665193509314760356826490530792413261445703016384035543550202159094944675300333924482866532900910622155840928980729232548289247432924415020872763151154820062024812831421634723990347963105953729786078668510714417635512187994189099142789038262599585179392567824185215037652012323022714866536713127036344104264221339805543549776197677813712372373375016787926011661019910286934672931920889393837048617433804485630997398382015982834940023058540052147937107999945347408136540020094996986376718528009991883824541949096956010805225987007661104481954008589704750111203999299093932001963647663934432556679751126276251722763546894628718257319245212950812875143322053648188537482714025275472137430991314201119795294426633136590064976006868645566739808000278914815241704665888636683330208238471763489070256694380372721553072770572466331598963644040259797883431329073777020965995736822220787675185645463620257211885806875460713349787893581185417077062128003933003462021985604592142413632214068670861008285303234650744585789767456070964769644541062626644208792149188975416779485100049725845053526325194403485243350951087757805357082535701559701762201739256534838731316357317040454897476382782889050820810147654107470585233966084164613198526414655119796485302713704131202772093062072928494765961180601852095646095823248460598929247192616470453623432581292978023433159039105476854654482272879674921246163646364562329398462520328441374794497065469774251665949633453421404419170815718956758355431232907736373369903839309818661389954280812236410349988895991979839373097595257357247060354823375671784529665795298204520083877667590033758356202531164697960653559609998428689399683470735850885376223445498334449277914340247828782299815657954435152280612591128375019725790845602919643418335275744174792215996337383101330644925118453625203833719954161961743659011792838187309290354005905534227208834372178846833211000176062552194229092872034505530669550411038698538052300497381746068582988483995956421775784862327361308387686589712491440210578477005725382204979548781915462597850841776577515583536234017904498764942317783736594053231523262180662558548550308111023369752198692287086116773270856875051681689883427313677758471591891590878837031498297622008433402303453401518716846863309949868015914230768959414348341605627156955653399385460496068894128414475725590979533611809569309529214864902774447440671586588817990006731245028153373958860974836883483997475741604511068328816603269375755431772207463534583484305408255793544585606569285501137507352937520098715809488874527036992489717448058838363841217055140510068107865479221222093820841476139086490757678927467883965136249254833354491927998566358393904548310344063000770953944552662075331864058153174171780993553211552626374155292175146626075304913722980137166329806741710089334483525966830157263605852595736081995295662350339810387858982799899808092353092509036999616282850776392267198568406897403503844107618901427365716242891876056240434073188062227729561742823758876228959363819138532516321901341176372288180164866855377206666946905594079961157992758096854249644636129418655479914765459957902823889292199890861836983355886858892961457741778260746406222485918578661549727611110774698223691210560593363152871152379212982228161363218027512112883019392931007351731341753996836856448590943226239960420979438396823745878485712973291688992941348930140078082477973896010479460017056464062706627998098793550808255896395602346868261807013536923693759690356000015045340991995395048726846968709638248034788193316200249116984343388159215915396127079637221109732896826734131614552887947761750707192574641391149299065611417178652140939977421595327975564561872778999111405972876499516083802852812981089654606927430443671530773262905104304270427028777003868205493398919228238169042033839692039297468831445656934156901611432267095226349250734486489369113331892584806414617670078702258453012849887177996919949065660431978562822677194656294761673759234781150207825842963389496118258162256981803626064452771431637893485983108629076079977237175089884234844239112047272548186226156566376853070034958297767302075662040700356171784738257622040782487870220707249569446791660281567618142521779343036235302236011731861735104975817541373035836133957760739725023542783063005899137295023351250173932408629648674042185408776516058029635621050444553708695866314296722857687438340449468923980761127750381990907980429104169870001191400083300444950366845713120194112042938344570132415850963877119748045306412458058013095992926336288273869051676588719883188942413105666629971682627442865848243933536175551402070677966513537152361355201370395173281442117339172582725239631370241483077368351898715946591451889762374002501817529149373206130204009713172050740549192758866561169740196396588642573898796227181613759281192238553891516747051698087309733263477831163996127331704942721181814867763326270691664429304356474926941658267935928135669801448014118506280217596248449586791479166149819738852151056983952762054322022172967812161138165633147886404555298914026169781180891576172282952416143249900324051640838879410206161663846509061760342978995397770133904977275825650025474640004218589146638419454319782212232113770272972173566529180972465024563231482002523407717008500364271523025150449245832038733190025799927575781627675345486742695965808099472665070162967846915403071241892989410152313026403937648951435208872841910133022360852818549982387476026055879989072537918407984029765861255413835413067173815674264476958980469012404343784420354478246781807725562789893772611253877105473730824659604141305703135193010883709401887157211103432980072893002519129844047761815143022491838444045388439917781015435905585210127349297726389178266046339746644056837243277488937930343626975614994614263884445823691761780013944385143047177175580563273044089641624878694598802045744426233647121808446451066091472931535005722508851971425063902477761101989707097481262611360964103192608520159283640611689912066047282915272977506138918516945303357734601682370936757808176386308224773021630309524584039774482854919423985795082386750743576992109871085245517938305319780031279524157677453828792328389043070238228119399062031618454719152856106401023121182041843007508311222440355836638545071758783166221356643370358500916322947414135886891573328424629113374521778351024795013780035027363257338194867673384813523404208835923469753503305159198247910647606725722099905129891630378919166274762498219624519180340024268969675078051723189470444965831849176241167490180758764987455792955706438892024843089919789186469996691245841038386534371563448563101414531584892774801230948179142623358944195470350294526662371190658062815875855156276788753587570392335979914051525354174375033645832889773817298561878105264785109082377220669695426980955678982481934350148775715491985546153590453523544533380651370673245184951481913754684794296022102121649896173739619081024515355846532328897043802189802270397792339778452812767490442964324225150336474992854157584624448526131754004908114466374009465572657075120637431827211975661516651111357538197779930377429705050599377610203705831608819967896528462132308728824951086474786756358794630187129870290311561894629542367749818335528358089464859681407899948954391877637428039215681176166780914478674807681914375266488153320597473324652899254780408883681255653444748833062468474883954489676003054254484514423110165703269384601254792460934699670187237110587320904428019927946733951868701771710808972921136495849889735202569704066028758366099405211205385737079503176272693895802491699846077501833256675072781021040711128282925727563196583088528286525701219320867649380182467486485214418395044967516017912888318405375462302168591037595773331895866083651415294656827934260909638190573780552121193558872025344367057581990105078830124516604587690977405779462658155800199570482868962284982771252688678440349727305039407739451648628860626861765060855335218720120722682357176706052520064789681201112566079391787979515281991190960732536041865854400118518545473981777054597846378174417278850724077462711854040284592273447161618179807289521749715111604538334939348299091569726824519013516002297644444484249717619760529883136401935538166696977842062653283520527747706685105710680349724509991012248578357884438280426045858222238089080881733090390853812420183764483935763126289241443309135737135811513653937709720110949745639406790223989816152294830488915715400348089350629230335249657247843089728275865491798148397373997554807245703367271632602609193873287373604821075665821436818553911277925175388820990782382311370024108523760370840855171033063499082165690464097509970049471414948359892719178579742023887221032886213129000236114972620405506611744694166143330317521133491557874796422996774469096847905246709862879235792968950693681743566356097831106804111134505893284883450265263118292748469174048042049963136923036858184573285397143502008577243923139382481070551434806062449919723619989216284745964460783957849562688042415496389006096967122360701950627025017122825495350615353335771536016920619701569566585506065676879919874802885632003160531989600700334646333229392857098999145648556341981683032451976982559216821815920338176096632835483392073807734706107231252795969321130776877691072444838489056424384022652780345270321773597433886557886291096053881053522472393014676261914511126641300828767619258656908261376843936437093368634448755148833155593953241426365492634763663836628833034737835184819393630907864285014582861850519256945882420634676023768978642445518236534085895067129486325043675865925425814629588585966286000317760761118652463838657364118234685964333837281199895160346758744891787239723345172456537399494790733141882146940477100445119146519979456653255441852033938306361194856373589527070311987365041072937992151285634009710787029940562453112984207911774732849343642993093881389230516601511654756148229907231642054689022199128966566166652647616770724856043833412759104550350661636146475394892141678040513699350234497666967315065907904271209706976026650514575970821662441322681323664536980425227034010288894361422651114767286503104871844497012677799848333027085561317953403974441554147819103920275626710758882025543871387583519780359795533053559066825446900837799734191597510358028890638368244349386080040896967788356633666046444030441632203517643386223982050370778711881090975980616494196171783385429880976733323362576412164074989732053461504976371291752906908353705977234791768008218673697450197866625498311593950391223283390881297757877369535722268487777235911928925643662701270675186564595647453921009876293180008262087679346248467827275277192484877681433376141574009273001295279490599696265209148352917713499773410576472859311652502035681717834411615963104885054142951833891292719548003135666013285752346728342857172320199466012691532743241355478697641700050730790413564967617574855414711748327676052561914424355211346536921439403204333234377365270539483054327765153673931053004087830731183911831771894676521316051981256676565346249689481529954031079724652759616158832836546488479222086131836229170631449756157963665839275361264047527058673712724999710416862420829713387294259423305139101783822206867704641657423640372546425607770427371789990785985472588680640968132950981325696691516903526087767971169479088331534807765884791845196179731490116226075603569680800204934010911410376413519977183071482255225020023199990663416353841138567837389907142123830795206444282157738153818113774517365236053123398569396082689171086574166592113190303612056198359073117180594813442709045409865691210100276649024517498382081319295493770999903542230269345304939346223153508568860956003604722807159477186877814542782134640752849394116965164864448249654097291223061410649198763490010347821099465556767076479768809841370038453106224349886377374088344615521749257316662581924870791809890244298625211261589395583308638552544623233319375399085772836306377545805969127394603529729977428609784752212898907959869101783768594852157259372540762453433087730078400864282357668763409822757524378399121374111079275038788623392376636497955527883519119694801964076887752831904009824721998462321118338239887568775992448925997881894053028707694933475991443717998985399605712527267081912293595676609420687804528652438485989112461143395098681179002072287467298424299924695914429210927455892463560713639253255737575265361271986202414732163750453826054668728105787306256961841157856452433507530440451598224000132498382694350291965826383555068493168112384227546568437179674914983065348266343381566472883275165527591476198874353170592983018987552879423868195621514284373668768962077509243587295936002570468157688609415439103862790195429691998178374105484508432094722721847493219122250030125969540872661832846794821284368871408947763410593005895741749199747369901627312646945994859073633530680060770576584354281546905909623882574788705255563101317429751144729315256787020760122866164103394227587743369449351678770507941593125257803786854631145825213451535860563348224140030235216693158836110240236669802402521370183816792357533958477861434265311975599981346535058787689273681048591104831797056263303776012324571648597726698939100935874133105955428446270374585086865811868863333116052385428586307604058540087499432240292607048433894886049017198561695361144006121607507489341901136671138242280028439516580331170122257103800543881102995520255114434983385025810869511356206593449096433326916678288903820842614451548366005536205725375940495059659843469201394998355731472043976768674048580111971238707511510612626958980806441402734633765400107685632168362998948066651458346626559673806462852974890117659490324151006271161824882368395255305276654337172997887469370403654378748626984520982119905244299055464916016505461535676708166582195535799369279871261896980769428940627109492035125020020195897467741229911031144008909574787002663532914354168150081818996497653493766412569312246532264739651316055800184111384210594136327972490437887519058073532635070480270053503910640233747590148425266576472482888049323849951626207444400640151999900566706993005973359160802017627198163535424872717426327698062279689228354930513025423217855849937501317842803548637303587330861157929255923061835090193505189978729190639057293999333283299794590796088548061595594198197521806157787653268475243105503840632501873485833350964549228927295173239726420043484477176439727869553984832651752548294526074309040922897001849845994103321961864331631935584388672254517559951582812185021235132466506144501993099292263614196524610494337143682052456268432266273870916421021845443106509957788408302045796416624271855107838409651890443929702713399469219343468200388325974107882377236139807146771575727573883583366501606575495432138250901695768080494620755868613914883856695255998098076799750110358009244118035866686399727733355429708801158814250305498196585192591080349552826443240253317674345869010879519922690606838929302693133500611536968723000988988426720508060296079175436692611327403890633003112673726181523079835094572606536711537786312150128059665839567179950518973177266527181443647363228444808006844571455834561103543325600713454830723680816553750371461947934302317228554368750144603738191008375243608725785709397368417504832327025586575045958313404743865883218319033689893801218492536036370207104770744725869558408123458093371249988633757002399684987992123213875965522412305074111193058017140623801071122468571330264236637001769318208173728987904725620782303995240439001206164215357214878268393943186405831624201754075695325080024021353546014160987226960674060355310392351452500384338281921278529908733322633533834080818068594606407383317987362340072825418703387415025275941197717311343736430469658332101135736076377909017631343914898395326725011283045285210913072655760322466007219802403657101525855328808619500260682957319067172411998984916026516249470991478952228980375748151591048758136624873520088088850593909876915986905940731616458499069785891731869535740657659535427190925475134734702400457509703924478683833585163540315330161715973208337565210180853200911438400856336603246457109793935604149592873039944167813615584928933546532376932002305238906442709886786262146904750357733096063801663785873629885378574934405095511869206512532951424094946178479951929604926892801172783061742574317537019786646799521541339211072949986570776483268911904680885949364148041737071747272188876595859267951672448177149803200376205009007955468858759078049880547736063700584725176260349227062029736702172960488209276212201503027488074543446928691863938053480753546796644799137932741013040324402582652652070396020300081562158829226249037981737747665354766056074066694851889275033283737573418936589191636657709795762428417799887351381410124368790295465027360906714362509122603975246786730963460108906839432290417519470509372320128002173976709812136953397147043773773161375336306952021675578897722649123628803256186665507291329445830949707442529683659938711584600759319127867461949645315266898405508690288449785221246445681947645947720916405475281560368484771724098564573497250734537336316473457056832215393119101356302099253544531310143659682972368067596638221334372741233496621289497772042844866820071511538257455227720458135964950878413780885560760911564060935315957818377315885285906596857470119150753626619286313244911264659725968120072872369749134124870384357906083185931894587664480852362591845959744768698777655740217059558058794394345319470018107662983983443929497713899516045674987239022399977204164857334809401794051012800537315007575973352227806190252979950558895536141747900694044309049517357789000232734531963575607388862674172893173265499851055227718806332472340558152202196397654039445457147742083220817684316309434782832156736348883235161496857694463201198798900169983826048011310544424446589227883125800792861329057422178987080435681038322381986277803677825355933799221477994136995043802300086963293377339570771750655432752589313574940978360726984202339844842607552519795043938283656650687789014199533491980571607900167809240517081627506269843007325620445349299667953298925370351667321435133352433822661448982533034491540356290540043802305402497919916820075907815391371199846343899690953991699446749287530374270576607424146806448766527866891790368182626436408753497492891326078721566057499142002212070116742765721976659133090328590517244440865152605272139544632707705749680515202555960723724956068666969689496020507472765958773349134372407779040585382679966691997579445592590526821702638307773785619361766539373130276019771050416007989566412513953748632273726040052363731181666774302512650193428982377738216043768902152744090265319132168751546585250330505058104054217301428028059338259239610546918674970245643244863148767866934487692191788461587607231555955614071665612723669077125704422027743228026215612012696843947302125408422798937294726208568519792909118110061645915944159832296934791428364009463455923301006381653266522466562571707955761402144742480791014709020156346721654785261323820810073384696716595940839138948668828563246538236383837075074358016377218949989033327126512156185865444286195304847333956618368903124744884408175293264376004900185216131614939994540253781764456441163338325573535111519544582855048224939679782027071863804073926157888574449734512410985759898638128437934965921785819098053180540840966086851638583621514102554980018909780511347858405944645589844682555465673172576845319735453443772956366649557210656429627682558080084580912720864767695849737282990514287665015045327406873910391794930581458919474003151523599919281921012126341048493535147486681119461295444390045890074670900734035501286349608804382267493396525237897245383987708204245598449754261175669018013376481685323832954463088814804996994554825734982124193174542932800146936452331687660391230749935753455810707866467394524563000046779439300622978085592050318421470598965038070711386536492177407167006589773087426439035866923333268939652284968425353431212261496449468271618919381237414624121994299159645953062310146321940314411956736058208386106208556117600295296962734396407846555326538340679817213453064906648942418817019331631702046722728364789310360779852265030957798608252232058344530744131398260342201225568733729169730079302866650981261681035441995737846463443940657063966357133368483035378262349873406140936439804879769040426389054469615515374650482680318292681074657108223199459399557006740792860031505203755863927821995455752238427246094315187576274604703542379091102196103092064848417871741797163007020593102672194340708149696203393599561527757460524703518731195164599511280508672358569599751973613737013819244980642208169915409266466138619757549494563647355143958211290460944282734416364659265184717316739957099679236581620652162814999073017202458611594740946075922596168540825600802522813228471573776445691807869993483529820994452026481757449909473849115714645873750702496251373908915119777479699202230159601410844979429547029484275852065490007502874749385960069179207545989439515392339855495936970959031691282849777649259654472927269893066893085109304671259244220412813766362752332356423893260004337660778128710126111342711084237794759850615123147740939207406888873624637641199162727530752939706937416394174689249528736337877876906761535186797976389749971164199131999778741234184379747186653239581037376417634175620253364956817831723247881421557942045228813929284392655167591807552512351159681084286490647798083834413176975345494497537753259621793598539886014458298619061552890240693830923340414309161245058214301437940492263803509120119269764376497203219055579103368113316245302053276940723080441918211565938385149415086050456234332034926396311167570661291733703378377165091038379434571579114763656980682220321198193450610175064286700615606981305399865511301036629365558729146400694462861765885526052757384754364642264402712637751554011541605503150268064715668903690490553857399149533623876064986781847497108037107951839420710558790431733443269381358275211660411872740221655043261625248674190744055574514924772946764780500220475674353634067868841437288200114464324584305625316844755989290306192362759645343000067734238501707533310324761604489218108088902949472133086286394239076634060192532754189577192344715046763306016800851157009366860497904993195660005737889782165755711135545172957930583764148362802187320372705932739700446153212070586870745858398387347138899364788476100046388475823041535686034364191496164302721955600960253430725784393068155649001854223528070711924806784061451195283388938975510137796287736342102297181422788468498940903168610119722442815694730505517952218312988528511630036034110866679503127314095910596062492504521399913747332850957576619093317444629465065497953018616721839771759224716006128297860545818536600708051879612766162307009023852158468800491411778809740131937984525375870073793858301700926128137121698017840522499640972198969161599765003413254281495516788449399099056195839752301208972504022850203216117420488495757909279087210200059670613444379941889128696664793436193367821565039917311707695593463696723456972376162008030224246468175554224924183618982841785137483193733116010742433496321616907574671552563167317632487510598755889394911725996847848005859466192294655576370755064078268141153899401862488610961191210481263164527690125998458617315373579709149709647033930018390549953032067716336758417026618102597140802663832005031275761344643765531359712340191771067659918268552788535321180877188790084058302508068012636266747749385277598286470760775588173058558933670589845524806779625333978124775962286200404499279741704200119185535502726259678445020813746712565934336330746368643606786841238078805400483594419062231315884299461125518517770941475208294966783365900472135231344760664093954271646976298816854676057796366642926525909978543904400417294802370154118843747497767376694882943135812786717871273257337488190076853383651028511592284064289389078729876040100479934949217785905798901350589662298946361290707888445196851298636214148165167340146181922444048141757595040961664624221196197851880218102643445044441380228141233094035727661936718154293266551267827267817672316685685473744642324668679468576325761184884879510889767615505159292890002416966360926645989458648269841550241970562137995137707934742264890334791872643243891909924677021772193681544700205347435045396110838425378069106555525140357111027023347442793980489978405470485118280936001773195361823737689136008554079497047473545215131338574791542534074923464078584015123529225662466972718876020039667206554361029118939536939132308086844155003783972533757531571799529552481851250580561620942424837322288180513161327177519462821692849114730952630966587837142292066066527811425513599025766938871146179865937723616525018675871983017268891387343378945852032190499534133719334292921214352569436247526371313572451994902047818108909082284371681436726547424950208763563575411788919544254650405396516816993791589534430710944376734019195260189950672972370348807575184109174356360449652867483009476440571684929149853159355024633982143124596750259953344618792229404893687620155396436979915805950555523567374359902771519573388322330399780727905610805935054573761375443497827274556725177760075136714886595610723391695153383290202437732711381584203874868597192710205473306808535505282416195644663655683837427052614477963653446397715457635200322122311452145880801914598590196418356271912073819087611676754373902763850677458324007798839300516311638544084944096151418279498182372973081465541700946411452127557310491451512479746235340131103085666115681645652382399354206591476250540003073436435987363226836923216451241696479196444623701938283195194600373574944999121515123446135851135367030312545707508902789762279376582974764749207229604921004453784880761645355162358504222638256033227182343431413614381869383697112318579502420950489497808247944118377763181232665399514715594363553988156347360344749369890985264666786301185150737406803970403740921740483212189885803864265391511452721111083142032775791596820867362659229044848618903607825665665826735235018357365849991443325213403985122403409674415848335656347450464790451362202790446827436066441559685453262278913998578691119088633635128752010838210954148870444309753792252551443502302178160769736299669590014473025649653450786052905997859959198853546985457724689953932620154088410491737287701025360931334754272999038211960812771699179927699582366560984465518037221470667675307456390226661043295100650221793475709557401950934768026058531892127767621798764536406340280450073280521148411693993172700456184419299773142379329795415017114774528883093699141868523772187408796737364640186611419848002475804960483662480543149713739605219628051042901707418705964510500115274357368945870930443606610852930685087459113437523712796462594716745629383547740605182190865158718652722000127115988946759579761692210401439057369671633251889546180520666110622060787963246436059272947778492797467018834428074826746518050428148059977579293178854910659405755054836533894601328377943501278676064221811417099676259274821301736857628729526459116008626468613033609010117374460376653472931806513245441235557485799218457826419755394885606141500622621823501029571889440329603401664577257603817974306599736193278256194577454897522497028138680796736583058896735872302713472451303919685917692245789702259311395753172208829047203934073712464709019020437983572768645821433826601206136379024892696759269630171171230426368337767423065811136405971435660702587943894558845746140733269508412563755685339684814527493946779089093295234008978903221825981950140890245954512674660076969032789213245767363743674031714227687669794548790770948098828116003986627180304654276817742910115278124182691334571630869339423851978204271523090875246767172454316655489500658134915866555108249707331816593439396729767165631769346909713544691180643320156819692201996007332225746234061185569017870099819410612202630013907410678745314730043843606093506673329502308671462449668231801119934022145252652936534636274490900098496930603882324339399536620355189844699323767561202263180725980398691985915210881079927849295574304297888056092736123303749916475156811350593148326215117485357768261150289643944539692774961420710018190342276386271776381233358215651285539728677621240162329776965085100947777414002880589898549124683745148887619311442151496943347997474221994579324573074620514861979496302048546013331445212915717481835957228241332338894011015599165604105113784092938939020932931136186496265512958383073054433337057882618844731139696910070198658589853421121834442185402569733338754194793734826133567904685955352808144534926498527257994133017841971097647629153465451805539956942453506527349847817217748933887814160549772545188810552381769607596522137430763359888997454973173627290037621012346196677679854943050305257592113078828312977907244583275531234747517405415294521076675964854411941333711383710969170662300192045094367808527713431297447315272755168889208334722967139276586019057503479506889032642177024477244112677455156002257941250806054467389415362746806552877085793705759755675799392539342676146201191211412527019601395657525664838229916797002597584004441363061808677018432764357737165083480063566665369206249723798017768322300604841693199322350099682680069851750532974967283126898785751148055038348374981964253857684241958869324766092420523150487598296134151457738633021204312620956708007473598522609699093528680029941434963531206996999006707679601553218895589955720427549570202727653744289502940463190895230255595187687273830583295100583192156281657043212203717976103158698469026082936228192336241157978145667611682167018239100257107695253347632788032337792129890348195648479238112273988651327266266958636404082615579302269796500996460856173319387741010071324415182562613886262734780935625993663990246541077559557325226057202945661809357112273226510290094958829037134217526934556682041941984284985452858288978250460983986976574213601506255337737034723868864409076456451023857289361021189213238037532465647544985358987076520721560938333912617607971436952222837651880258708510955450884369756703372992059341553319831200461488830715146585289582158215951669822427797670168520535368612401936523096668071710899983519856571248610080129592380785933361169683076901044467476750932924484213744082813713956804085132367530070273414947445806553104898007385762378933521389413645476290855935524598081788304427876681254976340338723565007286251465973206103471789464153784344235578372973809342075972901984255979494261728554961430596161950992036399162382488388158280240252123630896039331567613551224484687276647822036092912671093844466674209546607508077307187400223484579614712063772451770604391059057548854563863231577786349065887084993447938855021163413462686200192770904519612103592076845676583560877507431543541629480459767218305991629700699804229132575602151450764883516367799698010041980623114655187789819611877057111666255759995722284109240630507095920507079729388321293056415265248414002190468382705282950566917105593170715972597493449454575159180538814255137430558900263702291199292254125185776538502439650423993560179995864158121877258096643969021039462517835821019967958881784865932113753149490317902421415289983417537424876475479969453886071614336583715136315734886575268280524494671903692689761802176745783494426923412938236795259955051653035906676225635347562476129572805140217346010929739170738362966879732171392921000930253578485443170752089665851080571958293332946790400052227055135559685041621877941777438807184290732106863475919554558314290065101277453035214015867423733509552065033703681701697784553618952485701989332445326204703026738255727984637379245721314358428247914626549091489506995733273823429164295931019038432195162013886531363646732662328783498869394693148713332026936298136978725642082465142934717863707234081680631403423262193340362300552118510216370533122732729953843721386903185552092343773111641830776670867569240378356324731992035537118780854165139294587633197978498934120184167126616005894017019614715584597142833954806950757164298493783545087333992275496668463646859365832761534544078361091355465382880233822309578737832476700161387403495263473873609416081059567970090406832248909837885677584154984871020829272594520828455442765607374404073676745819066641299653588121390822714630499722292987775102962989025391245565810627702525041677563772743864557796280243565165667847439032917716323597513730562033630008654771702261519333063411285273422496391000586927496896743593010214262647578005641668298964885212175665365305594231505006777522457587725571837136178162294272363255714531557224344932700635550713994230771158538469393222473796995641811520370081471373833952581001002559823678569084062356636862123431124669691962339046800863052360556721662271944305566232695453138493615918225389504332748836341619954628114442388738273374431314496234009435527518664593556292747540875561863022604216192214515682674289985828796609718161320019923265561167074703809851325459751025520353896264425961242578223479947874755563419266575588407919285727033741013777373957684639838040730733768299356572561390384779302606417130923954466476046808463599970211754237652501332849654860811977177354221099972651433700936369337027319149476368120793109467139659866020995828892232344674130108610727562129837899212757735343182888078365006921902954159843210671279124360676186165669132708875822118779983256608435209670386165044202089511096014690974271944468508064195263193589598785527198064835874344187012030708472886677080263233975397368949608300055414803324229719220443408910021242226513388441323217520489227776084615914628364986921841520031536086813987538440393039050986193203754418754528388534408865635876122414436740134720430800064598543764935690283082673827661435017741762061899265159079127741737192951524673559545287728954894276742060327354460721995319941083799439992691134788131691519512366898263071652426376810744917478606504934028249933427262720028008799104862200949156701438824944016864391748169808313841053579624954851585550906072005596362451987254972452437406788577760751477069617554539006716944117724514139911876985208550719760971465601182872590513654637540334602855270407416373447288050771363304052034098084231323976236207694054660132132456696164598120615143989393368205340108834458627798523360245939807007362917143358853875736343768124543654069297815615680304869457582861728575002846510757992903356234907928862672214812433630085048254313699331005378446166224823866603202430108376468402158458487089701712544462473539287526363345192723279898457089958647084583546830192496325019998563523204753129382735928572782383314537041539125828709961558505407768681612242878220299633084925817748052381149066206263246622344061199171118573354168332916168466369544128857039679282063140057707899967324431106297735811721988776492525407848863787597092549274565589703342250042790085969761541018974252318906013614779417275011673088134693684111903908152175975171066742199910766425018761495687345137285207582694183895190317834292276991021375954621195203158164050169548237155299702716379305540214611026655957446001365209626115476873398464732427087445021912059646337960504258518094871486742466714917491453030535408402667077686182969679459435085385723423119110105174321984228580146099390348642941801146374132791639530816530616940171794655229322281321383742269683744062155363869498514102889234053781532362743097808303221730025754885832276428306715450021340350198378545007035141326184994697371001057006364640954654120380996517170578752926576410154377981895498235983730130354109025508467750285730146759494197470977314923592485223845579963907882449909052448183784278280473863390930921571701646415064441439696348858467603022104070389679766848399766417365475935516149274765632546083025738691902404290151214252697860992977095034731592354396809367227054449011471212779565060341684323618767664284372624278965786324504499726325788132238393984651809006708056237028011076511584871290363413051171974151603642393071300566204056740028780626159819271052440706054182996774655680287085988259038381590754395066967175778513960519478565264384709504657668093848032628856265155353573543401036548288710662975371114248684396473015655597090049730956286614072902477685395914056722510170209044393184106150054268250688012480386467989806010566992195595032966307460359905957801416904052159078474482960187024420118672133838732278359632300534922550623172213096938816657441533943590786756946194523739802290334941633388859179977630658863954992944898047630088879375073452946265302602491494308410599614273991161955854724819129840501466434933766336511976364632045236013581869001570677821899849633489928171285454249498298736568081957763778232381901648750593408836700123019913529612466956317871471394231977074789203652274814058000731894359783394001285884647170188461293810801252119263800173162040915483527215376589893211107403022954914972090106571802352852354944444876087412142221077964523729958533281749280866783502512652432837154621511400981304719985059358634758905258350479962811187257238623405129381054420106275358812900810331540353493975531992356277836795053465082341198566287444686758454136639765136817754174337690020332389593842493554845349392978122312693816060108887705171817655886494703585588568550822115587842168723883251184427416858872032851972785020481627535597413079999523482336625998103225567209259405913271643265356310497742939273497666547786783176173281549989445532529294210435284020054217370707935017556023198887495960225341087835771015816368055768853463460148566363322725753679855797536929448887489368205232470948558559755667530468537956807316884437009488017359855031099517720549361483157870684122710102312106303937856283791443995394560264620790170160194779337935345633421781901656301650153619712369315851160248468461971597299332857589916914214856542357761784089971510748344319461837524231544416018932562733375262334585072249093553543586416065668268906546796133452759422442798001770773675409975876365964578728883979998051924476728969177262121410630953293898899090117692529403975510247238201388827389872285839153798893040122739569396671422127852442795618873516368017375362111557251141883803271167074169928263351435350312640148030332911440310077768400670243503265895038285403862743476649954987293728027464774924810440355727277795911138240357222550845437740031843775143672679492495210659661540371512749593974043979305795301888612644217344690451429920932620150711775137823770971004383436306542946430496762202904551555598510156465888786051291880886381904094584460927848056375245008569308861086465288707453718278068533513578943545465072956821342932854795616538431420297372874740031649243347894311065476184018234203506341066813118733924910427772834380099130493956865066386030965885656508618550758689124566338005112453537986381103013297587280488666965078039197909221171098211859969288991795094866517608209089439074877644058937190834943253152984987046007365855289569389379365486265670435667086648559494540910191595782384597518151738196776169271206827690565555640993668494019414647067236609388452663957930965080117732064955927462876694119997111775476261234589206307310278534308356840746446338693890712860706389082058186045668268475868353740344851920438876992932147837711740653762086312779229698187874735168836073651121897694179145123115756055285370701508084641209108118928637593975256912394830045873913735923395271656713131260283827275667682290894869886260539587717707118926225622863778108070081408177277439953685274579683273567217973316671666812557414598247358497697709685222462913123167501551600510537764190182972195468601374244420726727292318206464721954958356889860948799140583666517372687015547318911090387157735423369231494916336876424374826797947706706088278524280913219334194882132562802427046536059330068126757702137428089361376565571786542338133567007391896772360537603154586815624478346988683384245885504854444791767789233742686469686458573968474703224042112201762480465172982887598241003536371622135577466713527431279155960768047580443491172748499205274013921433143893838290469566330391319979885398792934874228322827759867104557031143484004724819350945791270459221799061522123489405337817237378806983111984421026450200512986080382191435545313733264052918118437995196988083808737312356530944588836464347016622720255630379781021233923467772551699196660622935829433232365272223002621065981354592940718190669923018557565933871555314536752229156577890280905958422663940900985591868799794439105434625365812396777931581491894557438705007875174150195024901232769664094175258196818500382533393076907997518120643656935452673443887782911324476182231985019146054802843912534072535759606477163656990399205643342101500788944496522181430710978549730305066030316270722225656768571386750429323366444911969175734582383957246369517458983178068934286426557130240507480422836563713700082116153323591414183935481151772119921939762205429969494200392739970912572306807957757557996190024602912614989740660335051441993700895986129287750181405486754752715484948936438446012397352786446463767021466856718287705058033049288474908359152908636166839519008957470749248779832486087862202857539046111286020298187516591503074783027857997085462787083745804875588777369616465487407068981201386097929238008927669958409485603179336923978596399372968675160656394724859143563048096698431772012327156414735314387540450379178026563033037114149696772923017463410372282756099708515533367337071943810386125555972922516423118940629173153915576946723250088090560565906511456638346062602339908472049327687063601042246376164579600612703958435380108168048435699861007538009894492194751297138415664935900141724865744713427871530540491271437739934473841842078723025642325706214752627336031021125208782387593723942175915733619362460767521729867536096181808531186355378810835983239751053995884343938594749318985691340280704941416814896896115886492248251046975521051801899173500921786646592404731615418990650748496550221872551118698172853228957622409587461016732467756903158960563678996502742379669366795659078210609295904980930204900767723290830739757731740500074958412486928515570537521516674299921489362217770332099894566239997042511269059684645579766909973416735020420928448193222692997910906186584844068191271617554899512910215354705859461886369659557492919155772995420808999444811760378112046416339116374738916091440538967872778569538731399280866380527432587178294482952740975581385173776683426751227644823384127979913783123449417282046650421778491073297469008709006022889459172589188076655347680816016716753645516953870663582611299427164463750772946417126588786897642061643678156539793601460452057695238635105933619934286486239792175217172320351966666662184016726748831321679702469556727766613618777473535781760990949497763913749152033351893874196161353924014428509652510003262295749833090690947596493605634866320730123248620335360463121420524390662900782203572644931615137762554757250594492356417855564446372166562979358390724654711032430032351308961165530531952140186665379489033479256507941278565913223684575075637990111395173474177040453369098513342963424250234917491286750062066274402984548907263286631934066465818091368736609078998215541271940300800103221618867545692347366375925932493323806890191627377985746943170428994041820376993753340684297754082781222604387145753979513560755198612731244388485277232189630085429171102172428874150762109841264275897642328076829883535527596781859719240656397286320811001021732935188047843669606839249435447873114258936054431198742661997326282449581227664385619082542893197779304208199128644329906068026750433469376731090224375293603653209053532667602649419123085056522445315251741960780980710985070872226591861639702197886699935239366192637973044454820878618654746476322708314671399317104187170077884316993303145818750808235272466077298883260874945707841632543301950379222931277148825922185640165093290222988558916191450626627421671763727876915102889678908565837649302752263237312609067287288877375594138726992363395601629735023180587965906225055067857881908301288022549758805842864829809444476167572828064956324111220869586332688084843678036613069744309535988208955598450980284233890792013389217568350249271504485042096484630534642258078694514342615673732264711067459613679233949777939337704127927613400054654346972140956010924014837840179159482334535054349477277085467779032963685277541300440868807194499230418607337408433200320486356808664461252856968371325206856213271868413942394032404022761089530520453985940836373056020191818583278943205737517262761844001250478358725641239685809241009801832971694672910593023792098154571923387952719108667790988677567879805905490948147595278612637525986011573519398011421620686862866350253507561932471012056825136367769565526383922934370960546089953911014826439928612461450182806500034068972635682601771738674422361287650822012286965168905927917533812160593538751081925039983162223675598316105905416199777629858572664884888477737112054685315424304694530414920058395709047931771089554169851427535188065455325160642923256226224140062858445403465604822999191374872776521028366703287411461636308199558342304257538998417232802703980941532515925136421985119470734249466328162012133470186669680229867854027605311443953653140775444917369006486087732314860663000239277131085869510163270957042719984139210524012492061859400550461561786184542539885028900775618394350491123431569773891428247516045856812403203352056600148410394532268417379019935352947987697489695524471642695257226624972920465198456580683010791231437942595550482430225090953529828730382584373851837025279012357469042551629960798588381815643546096060843002448118560250907022940036230125425227440172419116654011263933023966351838641065449939156640476491543000049851470520782388347329518453037842359307972060615522714171051084471713313209665187567481653809117085472227725497258404215906620980162954853880710783149176209780294036713474000611045020911276127330712538529247552190248759988489217375566741759815797091612818762322436631738308461910760340551986280867627351712724380589506382323677701110894242377640605449567989586305942874015721250941123677293225802803664711914695361177061021616775231896785070705317795396733129909996126128388224105497563438471651907942061049958026654482918598685027606098080191745695481143558775626160582003328351914594319587418782921739551724779272993519772353418819780590008945763003079802577126818028454606149711869318499285443550876877304191895640626412337573041907178898777121597682019537515898255536543487381992417046556087280529739786542088280608300349329481268131357977911075881909286721818333732674644771900185209220899478951198245802827592897262687713138461586111913194990468538914944081707831470235601965799022488670403392462646810706604305878847202691443642786924847334019501225680562778497524243776578448195248046688580542609135515020849457643324359289534086266188309418750866224386909201252524760614809036479587568968490703610374936590652177083181791348054589041629719162740955597889937151148129845842337757141340573134478822528550985113996085926046199054769107430766098498770909951930435972351540847442288104659979000369227768829625043904554584074311619936387227387850486123642449778575590738363404073679551856949694890565583246300243784928851565919204452472585010415700875905053417372630153986240524341648051320737000464278681673310815992942862752381581343041934715054067673279426784768616413553101696044711995070630174426882841301322868705887056521364131177188405709877695452809095194699594502770107417820829389088851340815662463882160656940390030503614800053394700930278407351422550910543426350277577065178817894057006477359299928528528528833783905234810913037979834566851878240330604765373767962998098133905686799971880699553315945704252150978298974226099997271444207689879286940936788897361131746532551843839744919706809593832689022693450797009810562357643747271243259130226627757175342080895448960259692026511559663936936740049073320167672120681664252875896800807279183591374892711537115724252193320028878888763217116078004717037872730607721876348657504294745685493440652785999021282594407161212465070692683071203089639307960434899428206268926759271069576025887179962161506180426282727244675962549375562307800680030133219987014192458140080325120198709902533874205809341385449710103377827757288407197967953694497185467297659332652439971062898061798748149137168330072747115938678632885992369684815064801116249397457016504603585224103697682222140868647835656694819083985009637717054080167751855739674703479664190293255314141992575118470978894289921935512846801717303394947070167878237228609275104826661087950734862930444752604793075512277319469877641703380287324446694935170552600257000800284326548240640034614072578828015391561948480420351146729464970253471981113543965428291365356460511194473120165697513751892770191284345610625968253778902516335560587703912462058979034590787892638995178454428620679187311907317425331067512895036851385171243220563818732119650604748526509972804983687020103087263440176762166938839613284096055270216197992008132334075348944771020145427026366433456167855702117773591731446647552475457088530365643437131525190522441395166005994966856127417214525935275653355167653514810887379393978767208518421213666470598793096396231611741814297468688990468482354247526169070078742787280572427466108600678913785394705302255561059043686649124632610095821196210322102080598347007039859662423163011941961939766852698874960169736638903787425577303175433321729135166414873444056872790922503935462601332362780373582989062196454616974932162738432171308770225965241424799207267838815577716830173029447921229187719158995100689654600479934073935354959614136160563424727992160567400796565228311446076892422444175931623594397629283580394087295840941620125908067868498438215573057372589822574456682117901644614100083827411264707096403944618594499126308269372621717408284989260229627806224712444873111311905103849693147485557690485957136730106673040809994391896980639082344056675214861394477029845514800021087342812522501542543932641535923279336245791042704688492631676653617836693173544679137282583745312593734378222782668036709484695707557604609494536269778692401708709804841608552884662058954133670051231484029129987603822188727541047674069473446309401641631490475217725918713180244766787298703837054609663100599362070985650697004734528032054307039641469765356503034611568817979177926493391762190957446152871250908671323742561847139198099159214337563063098894531637850047846405284053926453128643617158508792385715944809621179527742181541170684996020293067612924979754098645740408529068622034339151836740200976902587683420708085715244630243626237711075711659605984629063405098442179244574334100699758305376575616081596140374517607768314448254418239125633771696467896839913899840647423583927545795778805294857776258115452281103288954824908585209019008352807837978803013182320496823822459132864412562137524694996730127008705299443815044583114369329353364041256661455366498012617711195824768229234247409679396324030162973246516870618985181119999187973929278614610132922785688093846748063332328307019570916474487107177782130713349821312583368471569862992785005231554470965113663536704509032628264504467841697070951735796354678773908351763944081352779534177147252086705615609495061146266876161422815205245162276294765135022074911499657303816910408090398179255773451543149463596152801810920780676444980284251364219286554992484157827869413007976315973870998432701596509152573588804412731376472967357352889255000068097391125474513708855406973258138406347168337541708120628197896198817407360572017345507988896290798665802885846948896821917151515371097644684975784810641372108264700390291099664373045599424137829130264866876041955228919097666482038669171087450049851152540949947760167104606210866718841531899263995443389982553039380635955063465354618519316141855519840404923422467968424499058472020285687489017960743272516879226107031094858661123999880724659579312298536567982630104286674468671199911280880765501922913255286610629691085422906446860512667219867680126546799477567034127062041094947124658268793535830609994851376721193079321022156831510757824949261235581397039794101452227006584948343440767479862513126052828993831007116015976932110491179236491644451914909322709651710770689977621334848075293155844670495725320661289957517076606999295093617375099576348312147889538528596436883577902734091924692145624740912327312683231474853135810184367570702953372389595452083083445739170613942009086408553446447421026514104403418369755299430318539758200794272229191969607685055524026536593410937816786171839001952271277050564254182862852305221579643968316507970742988085190252654412848899254071348410584880206195933441743830114571828433004178325096024359985911300743198255494067969506385080448985138602636081703972119481180585773633273790849963460171892514925848180905238656490478963707037609336862993061302509728816442159852068758306729012964191016111315520171490654713960403105809717824391066614626823012659746821862662445122228958231607934599030799086696083665452580854722277854688041753520102583303319797689734864301852745666674610871303445442614583437255910889991584583028759841527514008173945852328757637604126065818785448141604757785238412244729954582697121514169239157576100010391610365289892615879243124064700327450870365821600422633763990679714334171415335541429305198861156851553890475209010912300389543078876564067226146935927655861482752740199086908888126987557573109414106937807796994101213467690413436315852551149809635668337880926914093540106936162759060774902198158844212112986620508399418050192991202831338531995691284067006113244306602101769198879792199434943981997254306985847286908912303422925808359781293542359723885510916567329292323169082206261484550100230672592189638157943668473605653831499918475223163094030969517276349199084939443843939324357859542462969665379154856184093122384239108933538637973424443108900476444123002330165327272605480091929493110196391224103420910422356950131454474222281613714041363297897696047899257087980974847325697345688366869380122410587207161691703907992088212984968765382593651341135807095880595176020300828215957695417711978228433180429182852014563989757391011190665000153398306912352187093060800640048537144701064797535926116139744811366138055701174371706328439740361598944562402132243314288654037693850058099176335132020642802871038794679169407632797101949687517506878831401511847709084837317505866950529587542154097398732045551044468925269937395861206738755044456367330018352063069440327929547958394821115198533640939112414339887955455496212852591416524227941286102649149413772255983096651598058807487553213790322261646172699868646089567544480871177444014027109661391978260849585490661104287283261703269116776944626465073615049814027094131613607257902755317281314602897254708517540250485652108335054565344888866917842925235963304025044033326091613931152107383763736933236976231820262131701939019617084231635430167987792907880440215595348358220067361925954357303735803787863941640058589546335406805626179724091855507886636411801596003569683360239411321308413732828389769760602898241725351481941105017088204502141280207353162701581676372317558351968897602264070971435622913373568319467116320767482442695901996366515305102028054195072977960161517661601299737036220084107644172830955811540045621335422726669296141755341051339270148349907513796900317812514671589040797088034000841975968131906972516735740110605016530319174040914558356305079449242396265752078363547627652105937253965731068091633006898131749350122871215461106515444709955271525020880940399319888055816939618971500473533103101576536496281428023706153607534038107014000872025969764782563682548459889050018882513661717581195163104518658794369671866958029929457701014662559381193651447137822413398139871393273686439180851990742142941838298082397858993385003320642768134723571104716496724421230203690698275674902190628647696888928843398699477724709603395416034667307348911551066296946081266651377194213374876030947164648536306813220715497622794717802756083482731316882838176296689267608941083226243108352144860206005745308246844900188737317482760938103559280853485741875334437454822605670268584102644755152424913149912505263183916985364532428660089158876107426031843475816009310887635977538953403050342850364609431106852319425955471632149109828552606640387930255025782368083038124440846103438402506257610236412802966262303024137894783624024132572488439718335057541472253504714215419394180236554493736329077112787934863897806591859675501626185419213653565439240906896724659328200948218463360410576568548438161887765740166173754909305286336974745368956872158031698580055441784795083515023554072607380439704689192335349190057066719963273026649303731047142476848119210416384055696354528470968781238796725473371113319602439624347129125702357181314611805709952537841807216703586083625225323027336384161816084526006878729068654202194170176323611469247948152924564741184114593934578294050086192354866700467598883813461352038520623764916613353986032195704488697593550902969241154608468865838805689900550971070424994718464968925177001892982562738889680798556993909403567859329742189793919788134918822380274176884280972289374007238679794328358376397185644557236617699765254384496954605643891781110147739412121317915708291511219473288241447213293756223794796906008934373002416899114348746133947291239496569269438289243224974241277970740363754811301408565572762326719201311941159238904476817338071064103280582105199733514484362990839061374367976831877441675321173917992884965782258043990540004277355014726586854933129079104613359157263973848227637977314784072218996196403246290502342570882287476935095285413860556472358659963129374133619713134690415283969726256772276932190006862596034756830910282402807525643760578477529155998294924858829879014102478971727743517741862635883031938117985619188903622463289074464878345956954483873208789690175071612104873930620185450750567137964480847476918649647423734209210054568433722717566146957281717166604804442199042021218311278923211104869070961299611218959068170449225229330027855350436466263558609587286115105384656370483011583354929040697855051250865429574839640685114480570542734025642411743057095065338184277667315999578187206793449297133311907641473017951761637386888965448948579851528830092266865611727065751386193290047292324006130029901069434725975719247641730058872398740033150375518350041143922822154071097281982880155767103619284846533861696150854263899390027073336220182366451765225303359914167942319879162348724249612565582124105499383101793004358942980064384788941482652839040466192088246576327464919535846961287602895017645215936070647639208892984490746443169405752355891888478668878946199677522560480529704243361842930524588419655900094669497211700919104053857484951580533205227680361183175338752209127958625217748552486673036106392478866960428876001156284507727833502510775585133580747929546761570501933683495002602195947386232012169466137596399914172024744289320008975355669023324210688759692502673091326419630274532215868216167985823501180907699761075658818619802015602922774024516707993172889401576865812371081022994717150865863509751675057035851553838831977145312983277023953449188777156746238187475293050762936833918813762175910863439414793204901884981688646459252263915150265844286625770904207485300475425794514922962098130639912256621906294642733483820090230087248166413790666017706007768432886294018813065199395677610451835013816923681233529097316797887725642371838615703617716371436782103808203584592512093362784565820032679617355782928862039455425203307947170802227358432973491048615295984546250408912927973856958399913573588012464702423340555955911199178116164809727490469803376517684979784338734485578844314503630920108852516606302275917899186696630539212678587806785546550140433739360753146795154566779590819439936396969074247264496396579277130667069465947468629923580793206108240583279022252659065650630002834900970153696516089271828225314406811335781988424773437231650122800961756347902449192407306323918275065942943883633926039915384914773705518884431131924832526419718086996021587155614729168324894073257972037280765842688239465985811083558109873028157628737806742185954391185372400298620161752824705365042204299894710878504492708490486700682631836120404727484882660290524960829065083694048802323244961423135091136219617764270861261416537294339239819584064434556490347574115619588056235186742572995709210283101757066217812994745779070548979827387186258779835503801494084393594665485440010716444474360422649754470590301019390133769879407081075584862261375693815775663377451183652133752181943491735744678225527487114668654945288566413126938046565213645958347472015427349809878797976291755700074626389236112335231048108892651351280512210507232633626591750616657404679193792049429352086104566207463787444226512363923925636909685190403246493145315358843268766235019220490927589360156099224990695285894283213767201409835309587894755950182218490984584267245277695789566789786124798077001618736796368857033378173077943111062591516007888532105655850812963849170537403643815538207146865954647197052768846331384945051532138926913105783225744145487169451887406746337242452205585088193871029333586014565911925332383163096240089144910094480287777003325778277114279943634898616165406275998643237882722302039361586648943414390289602513804240757903719118199934767368154035493863541556554211967797948984773476898042518765650583606846090153322264235677599381773605546059206721462491346565135554137336733773786558430823728644053824821424266774068124797177505935425689395618862553872483957750635173534599046031340509754075321421263526327233391395061597699514793805833660608154932929700378462021104102931585438361549758668397019615392369618305326208593044628052479034779404964784247840851833377394701500491901103436332097396592501848912888672408999593844702401763500016716594418632950754708676587948433959848160649374712103273344893401181717126974814376312075610796717154780245542001078769095427755052516919503559188005055795084887883043978745729174371272850745448352126046123872221142792976056070904260567542140103409330644274690530218134853785421578420709066141677352916926299910420258286933159621408201993527150479746176088978393424165778108155968266348356627167057295604627139029695036088150402648079307591501932182358668698153637122229101930770662197114198001391485031098364967455936882102442841436106998355338070786609273603966415831070441262801716254542444546412140698526006645934238832166690816627656345462966648716040055433216329098223537743401545635890146825525260751383545792507939081694555688944931266741950720660874157690234507374561015697545986241351934743251087262381017780473863664048916101085749933492106008945821631227919978698973009775539585155189962646597149010891917046676208815677528635933321846163178827608837889857809301952881065260240761457303497877415882075259825227830002382159077029422147257619376901368605882479059338071993831693382713192761391042192318680009337336725084681820901526376386572441776622849090509040421998123476633019124332493518466142857790627214064302075956566326272763354705783935143596890006821621082120347398355106064597443612879709263989311549134598678244403360351151433016704189016192790959331004248413588527381396539191229073827520865016565653460512539460513553356641597856516861583856732500119975326498328026372831885359629153877946364026053237879582271218923886544291439825761201875980375156316291540943216123247203581804830973916063750375238684117543280643427841624516284229380490301777995383979117647395218831189097042981381619995986060238809494120639047108044101541371419061416565918373455994184436896608447129471038429091857086732366280826353877403045460460382483228976823030316426119966771688764321476576019740765612802459712648330628341132808131541336895909530092979235265519988196790984208501422091392994147283783490715125072370543054621226531850440715313947176769129033429280705971333867448322639553687791216993047545844504335474098087085007126327880287952543435496421605132951466858069418049041970889117636616373480557420479587031066029936477254908600450942874588452728509436031797657427693252724442256842545289466679636122690774040382743708821873802593186652862769727174500024448100984183784070160209740841930871919664501045542235936938636498166881609595989507611556581499170109762295774486746625537943899387155588511722400911311654615829530266025662338888929529116534704140138187064603126732299668550047042511251790269340219925606384808234291940392215088625226158240749289133088240587386340628304866962036007430547797747582772210895387690295375883930823766307796874781046909126901909183190559609715844991384091891842366641642533761383703847524552795303956419127829600748774693326199595885319990126959120779761852273963208698966019591341903355378765354595457533609460456613466204947632216567609004588429432193032798907512054212901232180662723970887022725772572857148158398736633905949374681673624459759159782780223738913151911205592421321892906866032166543692741591132010038149944097323035573428951881325993922067052331787706838769499381634560720543558927466227310249307154661187523499013903826689121943519846656376066765495536565946284324756630388911334228308316111395754942556927223386478261932841554457209010573748578024877823616557286891737458528856493742093242824731572870292289919810118665798913312039465420240929808257535668951491460374110685192303610225656554607038754653434000933624201803471420951122174929823127555623182606551945053914681065130887820542540439817645109531970836028881250428444109860331567356627661169922343241800752532121306642891787291063497092254898987977706132524290992062474983675418740815663785608629189961705291319836567370273367290401626043911442098730688896312996763963470665726953737236423807803291969155752355040117500174182122157800273988715730529579675153161552601424389709430226092107653742366055950076445169213907801495144520552437433505635943360668978153347621128323548050728794587628905492267066258783047832715574805858354007356511132241155618805761028934198040491011207297719124174967618720264310500411171402850388926321858916115842393995837338669262488444505073072536586004482632734249135210299042737038834928485148400388444461029490971341645043043805583394193577671524653774323618075378049629445972139214362584261378892535153387580359988780742289806026154325266358134655834470227548371429001178846439643995137281720380512377692526020918280752094573290826821018832299242378026632447546293156422240713007495932649860917025620860749538343330449928875966910177365252346998154356358611648846898459578985641656201177135015529616091695890879931441501083833765063141511006182455904733653846678882228319238999790515504948902183942308349523017963774046114487647460190958143629101671254919863096115007639899801827148757706838692745956134062075304641216615997199835747941569651635378418950158038053885199566103102100633060149586977609026847495774768306082018255964188272710655364459409315995075330552609106924699322963773130138103436754694453656935478133281100804472340502119342969905146929619667998132078658684777235674435742606853306861473074882077430890231733008828402724537162064747804589893263850214800668810841239428692496132023268375060367308936798105605757577588323184865245902126582765595424350713959369631509755697071295530409031125438133201305984187659975346930665921522532120670180486930577567399365134856851606010829180210423774476228185237780066984396318659769449817112255629741524888117209647946188845824430714648417777407020644647205496261479686517481722392087047281752164846552550623919127506592945014802658617391245000564197780242469882054160736864946399105183092379522780762821709438364905276014641167874056614969156266116485684888553228131791650278088161698420376575130261821315920522352703456561869704421260132622741996184051471691506020816478529447971829438132402483357923731703154944179964073682590752388138654936061636459627709779442272183130330109323324820632174458150907323322713945558137469671612484087094379704799646816580496997295363483991992869671044240668968458042455653539067582969389360514235444084884536543160154602692268862708970436448126852123994780257293519202272237280071464520532422199355330984824091074937103609628306953678020308396222216116914444421876514443472639367232985478659058775962718920117176018137868420130856600290614373992051089954413744102316407293343417987490473967864350546140209609792165696922955858061557184122951242684116858128269094568554990054774601252841834793684336784586300206964446583053547602805493994629033847275650422384178296858685626714356494764979360828748731751534013934939777631500966131508741055141169344655154430752412344800342401746435473111898120054792718807048255389396849834863687670231167529684280284711177972417369378113975685471527554569297546562623762471244210383760235140896035909149998227817785486571349681913325439393241090919286144387339657223336347795337905985751793305088880504003356864649237855428073691381722420780220654368841006057297617805750936885048435173920854456218016978210128150745271585208570228700892883205533574574799548961008313739104561466025021924401371319573935284797059427422690875477827384398892835699697939638613079313522095198575615179204273397019575032137169493697412244865656602363349831313062439144295368424058342746924417836958501543325727075238385752926074685438158288744925234768666082966244316220733163159371040562637709039909058325175587988316665490511570496213614387493251733304300366341159979648420199135900125734623199052715938808808519294561509759459567616316616482387118223572017967699990227291818390295856090861341559876230373403427035090837393115029774528985698409855653024220453890243535737207449985178115969549475895631176253965532313699201748127512466275597588153632112336205012409090305528621685870287899981819726281126952329556036841017872615121387664494910454888167862469328565126769007796801465703862056932823950206091727634056656912916625983532846979027096582904535908734519044994892401309437880180806663582064961661051044347681087636177844149129406615643708933592584054033534656756392266865835131948654526741478672540302520966056185958334262909862640525887954758617301839738106634380626529125264762753923816237716277460513061980886530034174877025327555503125535254120837400427751118752064380614038444093477921324123353469287906477675541875984901321529991844435449181613670115712514803176275572757350729882142337839323789494986173344257291200064255355392635336774617428655652984237241322167438893322884947377116994959812774462612166186654737014119005406632216829055021860787744580514537723434169634561252017066759269118290311368393933656454633689284758164866525805086358481339259119271001244484668400483677883913684164989026439898153383995852099623389790874390938201374677727916942773823933173662495084561044682025772506738209922526317111192374556473333132759777099204666162846315869228375810708948369300379768373857713424260992816000105713302763937147141119041785657746908426100434696327032382722894874183971151512114639727553138076205583620636762658684594757583625237974164827292284134855490065780644937940777372334793263742593997097487714140340639743766864815177375893780066912660235635238891477223061717613869908012383707033417858770027835075123787948989997161135285410014992670566574715780029395088652548051461743244515404361997748302334076705048406592009634314905555138822791556276004623869444423759967357427743277359209479524117010508451601757884100360253388941129080108624505334571411761444109418481746930688939046953219780866437774576219581983481110612617983176459496042137366819180440394418231513294959687742401848462342742861194162307415841046193130312837738418951252699447407637810973144485171389656833819135897723221621923389566348204383804894485253733994026001387339099178752715875475985295415717830858693757879850331710229690589437497667856622032263579575111076968592073711705583291549686073069326111923294031154647862230841658838824546849313102029575565607322412837471165726642129585856316576122451554785767238185823346089699302906083384671644836626351168615437930601657436312221294023130239890821846775712059096134221657047176220455501755567187623937455729168609231536489089477659244527529886502190793478216572581447923745369449185870297684911551980763063204596711648362792509723648888106276113381154397760858593116653418724852560594436860923949178614113314779439764385787335341495112581707257244840587273806953241872086004777852703231636543235887730664224778838416761895049094875419931990061039640305432217991552022080528091252274572369704585379626848581166543493315604301090982957006067691113317961141123033990329400747697494488706244802879268983667721006665956889442479059439881641670898400623894067709858829346424091307332026014101169605086437894571680309160128072907082524506317143735009509607306956990663047925990751737733122626548817355061588183764774845741476957128597421008833066776547594127642074629065194335544342689421660422668089952574158169317099296382834970977297941243054319964954969872376528870645096754450864295521659116679264294867079228108945906085987307984660493796199103387817314477834891154075105857149478494166655319755651866324008261841561989029739940193674126390640287349998681934393882910152525850752145578224471314876569863245807322639175862622514488839582865487544394757158681398815800209900890365688217153109516735770672955325213921417470424246997251521349851594450358274499452578080251889648560163938424905828898662903817233410245256123050476758125776193206258244535779022181130922628776127609677389995272472521206370982237294775056255147459391948201070931817229196804113346821001154490624401155124846593176079320378046528491895339853865129058455903696111484398157215967338555588564399090772668655719527477548956226245827663114475168621576181205697845716836518000309168739270708513447021291186890930107819081380644284080039857851896679734672722817546394460530961449632272606376540816972273569799024953875460648775021579551866833619288796083561169849822006916812548979077671455198042512733729910102240342007732912421803269710209835766498382264037116302367187798157377980315582907680486775903673317562474247527714409380246218098585511284601459289723485365355874001388488121534363646026343377222217556495325809680892831558628893385069161008289543700992440519047205308031259573993839179579428825684500211317292801000855604175920337574226961299753888852073771184649081246850349384310301450477100326922242270825328104209224921876742439072893610957965325467643491631843869459252419900787578803009828170766451429184435233718160520962755490902758644467594269471975114311950093576059421857558655619739536954501088113229447738379351841591225168445867579744782663026923596008081627025421350218263462360064393278830666012658501446138179359589071736537783622478745256739444364431556448113588564951943168135498883127619900561132950962827133036845951203207502512427750643499172588635420434182518802460988831393699218520544714627997497204129030681941849573808171664526436163510310418254619592014089417309799587577362081798090001936496459544556751004796305503286283320234771478548153204544608451513632380704516029464394714016131503174938109934465756833337473765315444881510868373776243569157536347204721317320240003000923205296161871046894998967216014930387002712120154491512250599800961398301936516203993888864352700258635904585680059338632665059486662730988880109469185057896713613377522229221578721640840953907401187756700205866048293329145729845481196937154969840611861537459006134106728145286122705309111211389197858941092437058294779395033754445707619828166270919459322506496938708175261809026720766276146561916792776119852032212183846784082651511167063131966572012191093308391330934248007090069424703260817780618255072439799734462184668338986710829511876262263939028216772307086002995096949174286151591300572205126456776062970885576893544702809181308877410932268313265572224942803133910457960130738292163926414874252510701336829948833716221900097481958800332733841913917829269404010084538133929620209835973262943922571081987176843846892101326468016838447885242933054944391415361435194293400038578240175705407074756917016796671282446361793776727340674400803167066995689310344768514710495728686804460909681058760652263410018449514297968393102091503166932704263076119047742892946724639860039150651152031686323936323664558852890004865948879268933661276226985020702156317861823445558578135737566273366418158877435423360859662197599595997760787276159310304463026728364349089233302322138092384348619307398763117591838281707188216399011054667222546883941276608424131034611887932959406673576196805966045615501656329946201298621564635776637906647153946303783303359588742995882416592404017251387454292534456793225638420157986650030078510990791429979284357253851525754047862524650403999898903476037188319403836328963832167859289737358742163296593178007861691454552141936356156475762003662183400829241178473540582340816892060760635400275119904527949857960641586380492960545643315436741223242684991474955179034474571029920120214323692408087025263902566782614895494688056684362286527847212832666011645277951466556001630303556820105195875410899527372823807273713043746801849081334084275957286979695049690599853376844760061505890889768129585177662507072114914611754107575624891022803347998393641823336665079565254976388035714992848175962644358880382437718087843355630900119629339734596819015523552709757053910158717628795010203388589928220725363310573505717906964483084052132048415653559415546324467869576969286031189350550418584574178838691011150996835341210729922830484652495507704815033449848735826145681886929826808540012475526532887620971417825117161020091861962965442695863839063479725814887727674919314200982719017422608439604159018843024190221527030723285828411351898354874940998977984033276346005012145812164815783580128508819023301365465171363840092422606545779104625112545470667165577827069865016917620144246732621678884143069571200985993064999775077272012668806885331085233045891984310941045251415661747533787205886895601211887022930501087762652403521602853114170901644064063747908968747445674358304119719614986974246195903405416182214749528929828990520456042627848266738534912268910090152697099914899790129484690637852333340357823047045144136785050768221043518042646175445554995461378963754502532600962104981608750363874396496922432374057295244523939072096479178244994851908052155511754328865987544688062015931366913227664481528048655199550470046496069255883577544118347765390035381139256806742887752329669797684767698423392773922578115040419820575759173459045482182054426418060382901309276644438291182483055246525061170190926922358366938665917693264932612355043362920947810915055324215879506815899919973725836492578778698071712211737575684126334567113022572819132426399155076057504753102872433609838199633671073329497349424402405476694315462895913480522960951716268794067759119060177713987881707257940591698490525285598093052412451020891040961193765205255884199282882763749645090459378552879378971493701166860334973306603080384089863390443890553855793174583468850113336135526114645432572895349852340462996263396022297517650519158544172431526798255295461320023363897419906577593877569970606459210240258613226886476538804169302508748200827202271972478724598855819756614845864198637336633144438762960290623231773608718734510799405233182997537436307442743282206482957807641648110790461904424377586666510933785492064411273405988174424739063635809235894840751465172064888192858643738273486766961053814581281084963816920650913843520842802792108804186424823854019135419715925691118577713111035830198691430523677614939596545817295218937543316402644656507182387724749296642739542946117364114160623718869388063346845785389998443045466884944398441585687382861327974680810221671136564952841433662585475694720451714528043050186200044025646456909139917602539111721768157493391541924932856478621137629142620097128268250839510201131454732844767763067076494996325929091546113715944413701466268248509324443018019416265053197277156249140141672027591645713851706624756934745858147276266848049062401914184267626148934276756332225348228432158148056369335456688198308750985461979908963050672043027739446858749289383288802127757353881217688052015254643484316158816563710945465940606871063502558417716026919376853565772419300485096247341531528196193263976398171324459887030937573927779144880388450541457078057012890087909961209980723656227253075106099259490069425017730071689370221889501468629203860083976761808295215610931821935914889319258727924285374193529609805070837443383459212910973717406337401929561855349295175912825989981014129130331981839509079110535486717954301473374770118474496387377704073601593471635429031329109791790557076551457473799597746961089382933629699966712898775092039981284908863304399823456011289785838742025860219804610434370605259041394238832305865638488639310555886530965932705544345194708392917196750577034554036640182031439876594445007021088512823469173931470595854870641984170648923861816311393396538615562156022271676616620458020032622004288478274590894478160054111372785720279910853879457942011075837961965237287187885956650047131104774982024962979490133663487971918290650872562377344013523111240051504876204766422501001990084258000501283053385710144517627197486987784302166996709280867548871600324565946668334398245850212872665727075169238676325156323318419320553445847795607958221437278549296416792272440891442985128254038641247487690209207486161940119656075212116749997240008875181290227964023861867604987595948680223220867480463249166944030599728529909362830472577372496782332156671296466038889298796302008811512322554940206628609945609094864135817180080575324893892095151023962875661005148191947324425067486159303461416629091240235398781551635899379214866121255060395440545198549534033012339508189730183766915813279661075740102915848074785085706817793724947059863168193260431138967993337357499602721765004566643585246153290298093162802142030561201774960776743013588869923144304689603202663126295586243446995706547686551133388041271598679715489991022661068232373825235756514928149467176995142294375930199446823693618618447729783409897268040063598694796424137651018005122558383985834161105284971813678106938711933967795766704532789816059743515470527602098490014745293712163222551438613753507002939279194641221165661693826191758909202495854745099686207458121085057440997024385957997157098514518697397000561225142002271884704938824425339654047384231666789658764166904392772583795467893151853927490091402552377197742237393707127277993064141552112763501797693893501705420772605194887757511077481908797340734492479397134227862980591528700422934077606809073683230519899927736099468205084860675126890811900668314443651484128023689015020602441451091748450866939866463558813979744714734817548420712874188431803175768910743067124746687025203074609882706543682393334111319949046172637013029052736365442256780912025204578739092209654664619805096931311160215508396750176739393192225789791086791510345495307147876912486678771568929780836860788138892323098242581501678074994921942904245744750196409784629946822596701810288287228102309158852450110365969223191784603366792684103111525139478626041934862544718237825070930199166503878897643494045560093743222197871212301229349908230203428135698790359107145721914678721595643087701675904366708538449897491119026536726591415024139674910891888915434521747197744640482598680960906354909926794891328884727533886303760899605805186527675361227137320292131698219059227327396144279335364210479312341719745751541117591289840720269310752609697383824224216376540715203357890237811677410282413142654332635799187293685117699281106459085099518758428490740574162121524222899213884824883676042204568806172908241973641899106011339579403209217371327274665612562054743257917042860202135452914291666524131086621370337435331584776919583339810246819464751255007901021735619937230886797330988569143979423250279152720021971399857690906523616248065094668159134748337528754192009461109552990075608533954718845011353275519337826563258333359425359204136054637112989900001447595678423282227822347514812209401125927188193139736417767576853648129130967041839400448687072261698857044427446622928302197399712739183350712431282319603217019727989296252224558694601947698190574514869691862836666847396143184053736988528604792074671941706172751085657666199565193451889325107356033267709676077899316009813043964956845181268221022168573463286769490752098327709099534137311993359821260852056447401139677381334370387435084989800946905056793186701245968483909980506580749819979631822797264851949104127904859207981714858421315226788241900778209730961931728674282184536823086772373313963697187558969832256375350193278082037896993422732012284537351295385008488795818061896630928751394027727583021516043397508763753559507008106864271711461186969523231800460220165988123835196135807701686745359167512305579081497312558696948576352798901780728115297885343353565154856232913535022291302269738584811794685634819019383233007525238614505547249353292370382433411098333591705363641415089948671422303410853680051680305117141239436632394142492014613058148072561563046693130424097329866140312648046163635969529012784602921870566438689588765912182884943222102681042219687573801182918086243748294570046170393890359575270299494946677373367266440663755270613304384533041897228496097298905286027202932760811928124182974834375546039034389918459605101990667464337442731547337543653720634018544666364467387016049455638397901401660096181490931070630290772331027005437038381143723789673794208487241895901184340835864075462426684628460642377796458884483490941991002965317651798330833794131617060465113446419356369393035195360208753046899285776304306961928549773280332590073783594672533248761632524589230374768800162844751247547206208701335967346855659231817407978244190670719882157390094216858854047958824773798512774043737906598801840226290274371253596866498155236746963055939015335538992410760556211668148414032632855953982812234747928118785606135467198812333437411989671993042239293814131757814355055453089872408726935720301346094901036838128538798907806391608964571244717185239868624897195868539527505314679232051794486003102398065705229769059485961150824285208329978893204789699507732392629467638277255703408533360742011683597147268767527326804370842278728496075284777268968439530373909714471172790577694960262225562058923843445132579115825149678896550593292848807098081702050430848483495151938090751759257979609862462200947029305100333236360303820064924636399377427756562286172929359694261336877877965486631307752312957026374125096863952319322689616262804797068634531099372579868342469768337558214031581214197268811199434767261734980391514365870646089803880640532604829782933455448098855302759055827165415825502649519381524941627106582380912015472195680230865250927042202447579691079220658890793485580886458352246663106718626654581513336661553419063134871136596035515791388523012191141376731836250817187779005221887577810662875844609233122511647688027193478995807893386461884135052851803525641235536117060417240447535167552497377924069714113503369109873064005256882863015187323146612601623116797667247337008738549289604918883441243844743955470863434621719199496881974866237717305727716181535771280227758845631484272688964460479070674069689117717135346437553000070219159852383442754650323551309754982804955872167339308226321668118113906566923853122049609477568268509322212696538126184823705722959985526616942901270739964931155522283538716206630000298183197108364130771920980558787688865205125622638637526235847644413062751136843904460771702388445411425825722040236036983261499565153819467178671905588647153404168620403034915972681894734444709217452342137837877404627588729385223665039880560646293538009656776967363745400549346589334003354646104104733513825221287875755941419497922341839886719516371762830232191488239389989757650028293804968599318685099343734107270469785266868283901201448145253677991914354673215193126360028332259004799327518668979665275734018495501076028107809853771543115880562914338744390087332933100674224138281948305620556436888428181149688280354775230402719570398781450333078756052664159330440030773157377540603136691715951350217625919799023712734884992180284166367912152628464912628865212377068997310303237069992692242921833521586034906961258349091115528256564396591388291223516756037634011440899272548689879660084213163771815766839559170086543790706255158456168677933255949304302677672467451402251940436973481343427559604952562381503617516893694982914927773360843539220893323806114108454180214053523989981284145449056474459437194628027826770344847514814201963301730366361041783654972393741471623272120771774054156850989639479777466314989418824625501077009329308494607470585800125444076333933869353743268199613122100415164835273936521203646966563964184033029606492743556939113433040449301563579366522536020115848542132032821785791376408381653403761709332687465705834467563239747454640438809719385618571693559476422398882538132917877012682622007159225295477835568998866806719166101162100613311038445825100676863702214258825747881109480186924154463341988704219244882783699953418387382475742625104843693292307841479543565514420105973230438648661139499915333268645369608068268220158056333632779307883681388329231475794810047056979477646777232662014309956773524824263555170219090878602061318122912302075588924470784758166330759146979364642880170018178762868798279425162180133457958732412755294675696260665760173324364962141847464966240176637909274173162552919658115392718328474277169022316697008121193490875447742901837361365151391972305264913033965366836775065806586695434478981532569116855628013100762026294659951392728687360947079857787320554530964875749843059505398986660765356812866793360009299390481342550398963142958237217698453451975668169512316877283112226549145841977671302530953041893562022046973859895611320330945728182604780680306851126772766629092893471596467036955872900893397442107715013771685004178780454469171643220206055034158824602474366390286802072511679631503490235498157745836863421550295411823322215447160420861596678488022179369744012482174253500410323525344528541257434992378381694738006146407728337956988850938568495114567158574311514566454899278642893718781682032929649945243315322891351293607658885703624564965930728603389921554533316557650659190288916862860776374838598411648408767054215063054875549797604807893484149565047622076066453968571975995774082644215448231215629071889856645795599607033023489523149278213385665357439408451186010847787293568771247832513066367421456363154456391802243225945047112015171413854239083865546464959009989050734436352757564322534332913631665350102160808947446369875311516980504855784521744957876870661726774156469890758128971281461879789543473312171921173867643068291888705929991583948982878119131641008048494814894239954623712551258239835274653975046037273849171284523157210895836037329984990936791747532238938996783664882330918509053465566974477395184820722812865075957647086822600358089802325809289589800401677605515625346371700680026148626737963693270676243031769614123181888529786422335373434459066779563877443922596718597679496327351750189476617502837501943168462715149335987491216238724603660124634285878594000551385706311082146819571312383043337640336854446858708658449446958258437181466789895592664251967213256130445508953379437222998149644665341019211736444540159040005807522867107873340779682655479703463832872831140645945250765059860220792294637379450071522759231121599732533793381232020066667976558992062461018885854931865587239142111090267606516070545699543506918366793979731991065176159926075434217464357504939160333136048177427928712992113497764518878701322290778741567212668806942747693405777835170576519489685318795156787554881449403413855613616186457649167386427229301030543962655553795538296255775273337135522006905545771081379005667966765100833065155064229742433046644454697720148010852817163756266058168605055501781304687943559826145932945939589020877884997584764485922970969987376567744684785890236420998916151242290730334978090379442900450361469454597419293505330073451684185951576433808377628928597111479843139533075336019082738274395271126816147243949930095216142974832848810374372739890232749639289673382152890621991307564097223610415416042583275950983585058539995915727677657016145918884008921134306380187670172121587135817269220073517170096530316592229589734013757421559882008078694101739761136379803383270277622261300284525336612562982356319077124523121105053895583976078546025106263170010553708592428875627903284911649151751226540322583834127656501993815100803713583979629949153974645951711196867883896775492972531414086298168722382327985359035358495763824390311058067759836771533719033120908963409940953242186292213775372599206674898868412841285983733646348649505133549750196412584043037981181234483683493453707610449726975026376881942639463933005192823408436837251895883777909737441993468345099503215830056773790395282097769457480160418212746509010063349721058942425900139242131920322274253590064722226079642256086861435008976943236050659124318787073466065117211645350787482072740112518346864359401652114286839271970337523273254083466770691836609772019534428647251310619340400905004588162048912313023315260261330986057198300619525894300715873831002265074024426688118290014699050430322080528010397001508942408315662537502381911257589988798636736372728283689276199561395302109343627458428595571435085280273755418897373898804244649734386244648246819250339991805679019747768791124030282453560778874315356052713656660411856157157923249729785576359276883093875627658471230957687168657972851627859177932233526438451199416665469482543617518058731655476422209709762607170548219802450110225991480030099784020233968312357539407097834956818140702281796737105715514682053513069306214809903278895852295119000367411436017601067702000617921052870181741148358922308670353473000159203166461633274736684076340016569181204018970700723485963738765869863423176522532907332631282902040994641977672726750553015920674505333842147851009480533208491326457608519098031722184228955446350161303629630008061639572018750752778366091235910075191485234797923950127433241732328096556307655994678756843168345871299879203807114260337462180087719931862301104219640530275896086334277531679814659637272419255709201721012143429520657153422445210573634472863419183937237963182002650594828044327426238949040665418872591649450912320660264496509874873993426701688051996612917728760839139393353369344469152393644354774502742388454148456515643606261863378929139001996253198489723324529285463966506890078343363381419648382550756612026511350675309381845158842989143193138420363403971523702323451028936487578946198819201045374293943491983783431982362628751533651229154021842893979749146772957886183644013066135751261758679434513635770785083519320367710690390504940702558859866926328787445697597541337589693614328050581418615079955918799314989045868103264043487374254197917129472007551083530522402728959147274589101128876680407997690703958700755658506628537738762653761770346236187413222741882014651766299210469669085515410428652561734056166899081914682238254540327252207275216599091121066155651313023097842219922160608391154053766515382025251329257127503337527281515142781381939757292782973656200539088835793181578837397857738794163717032970931650235315967485199929500328827509911710340023528198805172110359749282812472019657177171175375035988683345818651594922490287470332666417488144992491836424615723301690988410658260792426916735985111565764091117307206134897456880236823591325275507570635198859315080201819425806855878804354138912984344293097772054585990581537693050774829107682719634777442560841929500452072279289972224441325355971303846714000805948553949403523503627827465020736165460925451586156278193205858966963161608045088957464028938749053207570623903785244772894700068175035723377393651714627878142065272128715706683255587285017045594027876777367038908719906963341375809515338855454299736114325530859833974504681603422206834246195248623677798733985637495779769970912792191613524961894842450347455797429454764238393822392997617515873646940880545201835249722532494650553213823674583467211698480353296724627298782416258524781378543478527346933483740188161308181553552313139263306789780457753192405082553460793328746293586445119337011612147222206737640200549689066973357758353490136204225552308635241035381433664548687203716586259509486590520015588627269188552696270936883694451089146990912490788090946545412835133197600986133654057070285371750427058207282762321297077707617395191189115359353614118252224645546371257885912107318742082969203258187468945251690653063136323110017808970197426949905979291739317116436531506016130558637724933789212198922459403873521097899661267289474136443309591667113837957084928211485827079768724954934680910407845992402115537467745908812619188049484762801907360268223280831134230297214500106380625384380628151960283402920256421489004280533510237892045960089588544988846855653535347662002437363189197727950292390744515331473830133143494833007847061505117627745569908404832897054115623166340698564007427514968495424237332142695195799132884862393788277305439117363282371039779911427093821304520712931260067600337807938150211515159364447205548294927312193702157032288074459803655669471041215827619953626492572375929857448134248718810508146925713117818156650663783097405298605854608422045325792499152711584934185341545470082770167388359319911920910609488515344701282317653153505263943806062967510678484379188705466396381111206896851383174589902622508594815064329192731475895630742870143352454938407351195672477970997006171759215128092757054035227791248227402306376949401776267898170390030465291585573912954842036325079220240276530107004719409953080370871947351936394611673561984830906756645484229449790303604816707597702044762313210021439102636730522571118262459920255777684981951614993926147904823216578232423115496856829800921246640406403247191475530734221352236258834923780211602499180804198016038980947229063843731342745719458439754351040626011332897489864009787622722117642030698486411219890335975707116617850168951278916660395262778666016882173024851390752683794482913474654720800613631793411220930511626420812827628170894617532947669925267814551126255029651690560888497659077401228250350084394237116392154425465167665521532852892700129088343822121442539581090436061409206205674595626633677862114977245703161602420621827511908324336908403581983800184621673127590256963070274486792568673765209928816633328517677275056472380299603794422171524185417445851994552938210089970145469158598657947951581500682707626365157198634999776271424129440429290053391695989268506914439454700895434071306379330734587615518655598059888858116701352332641852246667010235245704521650232697438581454191845353344107143264600623830437489572913287082490536670395155410744120623571810919387498457157691717866076351880905797581283706221889854444525160802496575816693583749930694775132298712650963080288162815608553096173526704467696152740959015936622991598963655030289791015484442234573533261490517379778390416451199654891429381407266611681588017725264379655579453455211063674215092263230180242094476815425814484843538669665596617429775893303913980616583576639033752964977654847848121972363645315719643764882846181185546030219852410753567890393841094840965249367946513246746632913447397563199137573502339574155103103207808495414926004785165447860205020026578633517098815998262355851672003673332405235420184488287410157584285743772652225374982709580057574253503627227513253608347858311594458156466425291396570040404752586970002501106489468124627772444344558458394001519101795507782432774247603605433307450031050262126715555487294455873679214827221413703128378444877610273997818785126450807601050207083240393448075061720374521352720847467275042502359407043402043366839775896400087890898476556556090551790322021666000013602556167064431532189583304229371731731079986532501915604134921248879272508082316315249193000203837845542424181117651636609118184075331754038373367786010833774000578823707521949175695884333686378793482727349008799473140740379023109288876194467029143981441850874080406143273590247017229346754537074786388388716134387522855785566599962075883430979304123212936071042040518959452983487957145288517724263496742952239193775169391492757866434547556917571485605946743137190343494643131482260251634761607129768716487047440026203147491560894185452976527969477807646229918101766860461541726652872790631145141822619008624032081921776270538856929963832117014637143375641345121877210428169400742324955185970722099914944435727966324352619127323814624051056163334816524450336591047616754900738477685548961516182980655854604184040182198125674832615562198309232560557665390309624746502602759764721475245207827720658711006550960449036157165373898773725807516571634722294216222694849989634858809066053533896630334910512912311832354903284849443240162380052364292733393024237859273029595605974894840421647437285709190742105243977230437524812449135294227022450332154793995134899462579981703971802860980984395451897070151737479766653801302610195067417448606526587250273673086681490305173813854457388257338346993524015179083986289103556044452660335946852931097979254740875374341236488962013029054791265358840112569656318081484567889263207203202380059320719203720166620434032826319494303341584879507227883653780772989172012108940034363124281731318759438412117654063381922274003609599268262727141076023043108515410503875697566911369667432173250282407753604511669971277307286632089821716653888538043389527592463135719039005737743243419035764404675484593595531277156591204595308480330565110507369090362774598064875100849435208101881488900677593814799276496638978498495213294976047350938885865240232387472197475198950867376818981163243698230913767250469773943236521081699549465335469395368591372316499277282246801424627411596581579242479214894088160768384471046018804995320743908840715739898453259150799126872628279514046375156761077579065904944735457223656496257848407160225778373485215939286746972720762604400951827979556910210717550093416672659160996879225445939999032938608760670619731681376399097611962350236445733665861006456735969992705333200873456463863671128856430553611991394002822076152363100109618176745551718004808458918895977752302041533998780609552568793834617440823876290610552982459397645086428564123900894559603428732220956728344644065980445155793010905860688700300935445902238431332528622848401911274506631432099281862434608506410052640877876672820005233270424448954474570748943484122690460079803865396468476245171918350740705237311258384938643766807828578836417553895145634056609590449539268484175519458601099487878367913210093242199525477792003978147832022078157050587295112994536759917422521285779084446314261785307405428126706843180539433708188354376015347560307871493062486266969975364527752664787423125729846011078615911914781859246808283553294530048648383305214562272069200055465051586956444684572023143791388658000813984334424278683191090351806709796026847837905036440635536557986579525409305232123018005277905739874728493876326370596931380247719996976500924390309057363627287584138747383189263444232729586502623337430155081417948468259676328642206795449454349125832360837003825032404988961435808762087167581923436550402367005522815584167548460368589705607460278362587633114577492786215319178656072266453974791744544663270698103333239491120482908334147479863172209736918999819188588828040058007400515512636621871137286621568651917819138537502397767587752661390050417263219709550731490144456556540301725567518821498044637150577355359460666383945971016173396148162737797461722238233043307947187507726587992385825008576968247691120596801861775427620297691639531210371643573774705095337696194617702725602437152299394023858955081288261979025749517200519186368491620266172294014098175510269283122056093444115219149834071491525993047594756589018743766841159905546165167668888203288595761984787121161769026991669220368545024927162446787351570229461944371787026823951276306911349105991962921259192348299255855374477693177275224889121961969116173412304860748734916401234656635918500127089082873475042644559684722799047128862407709807619770547557224635162260765068311413936901788499687276742748156048306489830475967123774827549783056372545321694738004339426427963474309449606414647832918240611619082680565808419867290188873544927590163489674584242502349531936684611055141586744198298633511199979335411255064455647203972862029474840873207692823945447776380496826180000419730651184846516055040839424336081215156238055699786289811246329564020445545547363090103961607776523439343843582808879489089417933651435687712111241779779803035151464427914862799961654448535591658691928712953272726834579279439055788550406258497189903090347954611610544335791332255569419273168239605831852068525139017135345532054493313271994434318217988283816532943560128314510880460654317296611085741376761312780562007453867349679994607349079354609406804096395596648706423226820041663121022441803481385470750381225351292193228244023680210538947983779153995637497880153483748236763421703539709750491150316819698374691939463948127482372302186736772567926535846430552053870454538154097205844553941035010541270275092408914746163061395852117219884839760640778764975651620033821071707325343218550858416044193012761619245820960831086266571768628631356052395346561042376034926584104318921519637370058582668354091145629265187936059185408241500140677193032427698608355421515760172349332504931409275224296353275448249065954205936390432825312762017049121775056159428925845237887934513418713798715679956096674048032816098211676752570931235529472219540550729534448382120895872166989432487189369126936169217392120519152141055543465900002875275780546614505832932593190125550118396380932091005646867203774939644556157689735067931113042360704681234581868943734230927888871582297412458894539921809964969814481900947785110428222019157427184096396534352555415331214232306945110077794118532016444140633759797487754644535233270964205280919201872367476523347016947352518375483200950195282318231781267117415451388134031719398585461052142725231458922524754721227565772886452066552755551539956453989356688417600676254674447363322111534135112603703672149870031378657756068831403106257978155267994032671751797022766065197376501568828258158267379321148063936015410570845342694108908130425951939031808786932902377969952356292757310167452747642487858024385523717402161475164326528329727501820227220698038920555344736480054298745133283024683923393336282163044233709032364982871043845696612843830860420645687950108735998486595502372210103890603689340961751598763286639249373984191702252353462180162919385103305839880527749098021742479488024772398144072625428269725387001411665550663896699710248743100081003966677336605283568525004550203914827006492688341839284693605268262426110510668659750079416270700021639814750116366120367509022975150832870514133017512426339324713548497496353382288575295812692816757332649287158122186697390578735631540150095861046183792347322299810340273938895175222727418831181122399385438381189256062029961320939228518311507186574210726190778264954646541221317964845017323294358411146310258267884655424857248584436971556493781868723980417515488767124905982879700320425612763165097623019959705084122877158791795735660358870196158859111572458246873532087143007646897371393888384337235328647948611744342501868478405543741104680369245160149191892071091047144270114316617867456776940733570529325013213155386182271475928454028765069001135821389575635390894322670195176791259279810043454927481917883891314176379162090170623634289456358420229273373084119164255249824543428331142494284784754595248605529029756000352374881603711757435535895481152348295822478448876955197443322087688148559456121181439464386742536855632239989634858993758726695053694442155754198713894955162424614147784140188953324243614659739778589993218485172857844529290265519367747954785000925283005302223498106154625218812139368198879170068147400706099206558819143404041241420321711268161299878936454631912097266455036500517219198027591372989818846510074533484223147375672086213159842974229313514925950356186392986572071392934094160563359874096991483496171911008172454365669027025813222076628793719050239007728857520950049442605963220352308301805784977928371263464491807686162550309995018519591358838695428074580420826302641107267910315255858863833996902289408766369066287031690168808064948874823593302963282584902778722491858049100984569132237414249172697501073894699447917371709095357816572115631690086634677425822369826960314750826203513952664615120301898081795821048086374016997527057568991894816070226270229467816928470383107106478436680530466339884865845971323683058805046164174052794613218840373817482908455930965735022151727253746311663962323410243373712101164461016616390775748330869900929689376816264883022538544592836518865931349294950558387526750972398422028907384279222110322443186158029048567266333222382784890556069615343806312464591298726059371862385071087847826687195839430670844563104023499327579452914721054720583154301824758120673988960026484968345178844504350237192174661576609269151495385832883440384332825590677484518605849232274524129965401267288995123253793681171756908350639445399869629192698431556606451021122075332226780256738710645583769507488032809636953529404499190338654487095734380091868393113735340742466468064419977314243839369107467889477026701531011924052455192826705352747709595935278956800573648630397702859843187946905087800972167589345452473632432552964130282211573362675395783090274058493919944505578955045746731896989531338717250435407968020954476734482643691183249274378780761133176770804899431254490573514621378416223665847783481358880391449504589615693883676245046216556666749284543778157747049753841686507681583335972421382137714378262276973517664513118178901579781910090424251569849124551992661661827250241702573762161819517357533483686159714833050744478490804175474615206713457006118206256920379922132696247038138792302283583110209681355342715716219498074246907808544466750123842522451945841688469718009147147882111964188858096647081793440298327234224618218778305448880601150984957695735766033439597160460292136947017067800006829114935487479677342593901436930970987342653781143135338639952143973228640749422164106506259807217928596560324567275094705105157865444582728528799090419667123474775688507070568950691324889063761958361507241476674093660907930937731370806614713769811911828286907214401675736761736424735234857146486508616963840068104931047455154836417584963494827663041378914488986695746517090792378666300041390675342613450518341490116999398078453756235425134998689156843825868381114435290493500975098369549088107702597017247652091506174945429043738968192241614449300973801463432828450285195193694375703469480125138592101671332148819546128333426143718482239164244042980667820186833589603943613095269060198758188330840580752865435497337558264130995989513592107534847870989663825461861534622864679984448972646057799599893379067625538498190898159839033616754577131116676298416992249975185906576298786520566355339059186252962041518416596144257747615959677166461143184652822119352307293579250230910177804685388256352553788875193763028809237056336814630247941434247175187185539315608971126841728846256521549057772291697664905038305761441746072158801257694482993699884772748707348115001577142543876395100663266026217685123327289164152167223780494348318478309889747460297181121153373109301720885337657823162936646935917884335697697202821640225734110050491913450054723987577117205166718902824953975471159329413997089953781519948077600583504687211350123323453455447754432467417974268013820987483576387174082236984563671511490993065454382899144810800605184357874392161720530750862416940820888229650568562606973638668458451785151798306159894843075384253430334827040878681439088306317189505691536190555649958037527302467834276028041047989660289325834997386506510185089205686752225904887634632660869042983573085374561112440455717084714219297544322000661686892259875957090610472862160111315433202136330892562648383582333747393128985931828343765244199676716981680254510896922426577548475994739335216795027636203156710042400731346189006975258874589318325153208820134618997431650224573433085083826075668528400569927688578863747003553432922023459079223745398888246333984373086987684242804526986152040745517279045822364870836463333772706320952895725461977248957142442699181793030105261092048516022608291363055802242998980468106904964270210505990808992069857063726756319847043498832812761353631699349961581012864252607105755968350759423264856551059972829375272209358506450421823113041061494113999214159178834364873885524487211104653893094765591797585368880222413819805818670197366621542943841730227023416270536238414224962865038291130984017927813917054485713302381262078138328237097843358180918011634623697437183709264878653171154336599432359620958688168393975599994417895005424334387597477623687675879653421228088862867306901282150424080642342515745971637167153469503112099443000683450722226118456734730091188234190489733997442671759636848956620509078558282561135911654555538975980510571277361758997719508762411266794303685492834375825733697172726858754484342211271163416693010363655055844865511638588853257046516210057438353332523148084707189841692905693220425018617886268450822946004713209015289683890406553494216932678686975444966566651684383661960880437793470402113758733677107378768820231755129846678444454300434396410785221038946760446685896119686743008019722181179360453197716596460557719751253877797227197387218898853697111008522069246584871988720419689160517775450114821231704824400211003206660137980922617156902570229828644790679853528391957972957175412985384013774774190197407554347317180717797386987631150974012767492913369796271823555608009768632162787856017400077936853291303142465300061624062765461804068569789948250329063490339445801737996076722531431951373173877546540642797756848891948994297881799359407168628908815016484743644943005069605716134628179489898674986624753880187764301128773483411528311384726074198616910299273804606251427257157713918196380024748061085122279134853604702869907392309682885442341122581580586054627552709288869446894627695789562327296588942779682926476466195574926158211434075151072116219184825970847482301822841745133149940662962221791508183972523952622764212855207699469941952377668950039162550245952795810388942555596454221104102449042663593055916082861606449043035057685794034589350220975548713289408417801509845814107179518944464617905191526203250878405313796492234842123726075337546418141739809058493237465832328460601857899169403631590000124474985265962920395857477745075348243793307166483786262777935999146197187620792890058353874903799205142281957258760403414706377995088372526341981653895161766673881404233579930200696364079842139695278349750825830024307507888311845198988949893485513738047027970528985997075466773916499975126978402227105018992277929288434491811230618989888157095397682441066711080646860385006437681529855502622935679669365759324365070673827412471571942708478584475645288219282830412512040450699808854096645421104278820007624053206342064960280411682931331720200890400178192068326267993931229577682103222538184353323112447592377933518172927933584890123580759049463789673845387357280232182980430810480737466472547439692983604383808418874504687594814979196949172828676941616914947745351782459206115853834516334585008319987501140694484913825624335374599506459777932843825104114395709091939612989852840823692160488482021851148760265170004257301400336910550469786173774069967446191350359475049868790342836490048778898515227523553044913993434642356493831994244122757577814102242173286059780913325610033374909592343113805596169661497657301970281026707418774761295193992967710239781712201010178659325219813536719676884508328065424236459431079837149009640095673504592697811150356879849678307208908480867295469710193336767321986237454054695764868191231236669521986505239333918141575474970831341231797681113848100113405951580900345339944068835311882288614375061832846698486113955727413649935847779899558589460757127250350184479524340584997834026617974068180757041088640401180601754413282905322163067520218828498599393084146073134049956627794462935333790538607523438432455943312622287926388299690331758539680922358280839766083065323920856144537855922369764097352577515300056991736933612545881281532315132577189395019232197992154823086167236444601711621197651395563293066021688442110955764911104723787881906671841624089270099077841642457040784464443613845668974080622301721314441477414692788259057825415654067498378973757956429712513663067222453502273854622727680807673058088322315993471957724208567004467077969130265236204229364125564715269920447313920604752198611297281602273159547650413135725488528932143093281768494202289238454603204113923868206298097796088016311772924694361807283862843927661956290282579319017345048489114515645808105290870201684073494933930040927512482418514427301982174639248175430202717301029846181946094301528798885684528872922928150262852797437805930135506405002014272580050666591125214385366588489788894290440061033392321647432174124092931867831576284473847386453646106933512087541751919266443571645357204369664809535196815589827470940784011171818968374009604158337690096088582635590708606847585850538741088276197250503987210035270332655712506438606526711652124668349938707568284721923974913908802818391315656981870880871571296506158031807006192957236814725363373342938836942210510880812364149000715355311386296134391009881616899891884498009534771879596331217372701051801239963228918815862120764642683491425888400149802680162264281155155212486957094416270940987417084869260075138397043221334418579730750999694060109856396615075761865396858622288460737344814310505170900622705582746569067147532988675538114372840092430421671953908795800369011301424744002546866238225071751963524205933971311063165879047413350514134766565114624766658886124591911750615275724031900498142648857245662991778095471399876627758979915355550873520898490394437125300312648150584028548882744142296960962898277723249858814798585325226938842848480064847840006058826211345991718548702368892455853445937820127641047793533088305721394344748103739214830762140261336968615207656673303137460297304993834360605999647876333426274667153122537240023763194860510330648291224148591258109798509857958204423974857247471636682495227892563345547331605167927391196714919125804753353760679048552735077177061835172490394764550375275266583614824810556783361288489208719353655023001353131310795971397977029063126609931219963511140049750098476496144007383847996766533495843850119129657817715404367268789016818158064240043347779617348978749452707426438342035540381675468615691420746180375878597237589942971067110934844364248228780970191994650520780940322036921197020746115079080299770218385047665965110354365487264134767810602309691116139951043638717289096440851803655015268846144353423862562130410672986678618263464232324923594830883591233421467984709725591538979797149029296355908884694373143185785543300317541243711292805093610481148030472231649162622825205049051093794504164814897826472343324244512346987031788123267993853196120243973620329165325857487528600788440171624493539612751425077045196582467701002508313143214073854421743465737158084686375942129410922524568893625285633376626407511529786325175079004803449629017999385593138342628304356941396089753694623886863759678405986669251561923231241928169942657593924917815299204527595904949906981186907365599030876482129347020654278770808925965348145008495746435138257503108828432320253026451394946469933585088680259052278251228205224749361914367523680718682279874631868669759912409533034493429818711054539852212841934044530160269046610766130053436380890654599280874870291372466453857020301440241620500075389106620256170876187258179058701405009065626936937110620440400436785294396397653436614025200956808814748369639473041869640770684390883377862905043770139750055124298697086604988160147690095153065664643183314580765449518529739458099793020172003347418915686211183537162968122187646793489888883059941715862995191648426528991652881512890803288800961691917627037878681862905861531358605090608604445527963832871227777394818723120629171694513466704071569192216895481612200083183993851797946805008061290304713299197828884436903147294605384864358763406692898178093132266229904173057862548382049303321327550823888798569788959316777906556575784225209585038600242075671455212519011011887454897908810511771222645277536630199691174039977500327322153880862981655414304900971048504942705715325628584126171149245269847566840681471875971797335525104428396499720525110361582495294974631590340319882522088441049950335334570798269185676548326435006566040445796323512099043575484886419408421221871876512824425531471805363827846209590690181325704659729883537593739328129636696957955327723179750944348581021584303450217788540899123420489397593820105829337182937566963140765351101077956807038168060887587463677602832083739954025004629092156178542082571800824255760368236103393632329693128417266161978392471169552008951042163110115528080996494810188017310282825566397382567437760056751662642360014981394867369217204947881861004092971620711806629946942496079600201633520446588620007636559047221407136239460704145725278119603035195454142749299404381752428367462837836752968116304670313810140438914242618673171033728810921521672225529465898288728717641652500631056884453225623726980895466443581162402074527500248837907441342856824781859360544105648131594194390026242799154571575092731680506802857856762176786695473261151903375842679942321005657763482533842725041867642372612758481916122080016371367903182763966783906530452632387774370068646364116930536529605519586198886306171153746123125766364294851769945500819738307762627323496758808769820626846047196104151516086341467065742656622067680175392616513612982317019312539023147756728126681718988311444283372623416926364987803987346482518375793696425335165416923012768280138540603920741830796518695625538653832938030564723822689995070156095555433972961538453960195653626263060103119972274577938294049526362878853736572035506427102172315985350450904389392110876753756434277246526862865442442170519573998767250815855280554433815600398840636860345148641123977900707851781967928386636041119060407357992815219806246575980358925109604797950821741059838430649668316700726573209586134610080497257532549998367259017906353440814832623189074431135082738554225648710391465536070355661509957973568879199795359326041427499930914252427004922522985704533327318922010761504064874840164532595104451316357641747398129913583807094979194279301706050941374088142170630319514381949379650171344312481818792257347265295981495645634745174997881413303762010940360940455072083563023463708960849972820992426928440598223352103259233181763656036431342675856465942690894461022576180549878608016279913750668408405728287620009905236266530555811052503616106690186401995682541563904466347990844390075390891470519945826667722685610005816631325756511171056242384385002765823948490703198134450559296319635637790314721422163110599869279710417868089221416000795767556609205606087702072347575540887432879618712289426799995527902326128928751669442457109200681439942069052554051280454212257900142990555875699535726501731852306262838724750677544105596205137902468390964522749539345107192526901174093229189260818965627730712978710755407585967447131141915417883202341202363280790158051217975769367053260138054625233781476538370961554482362269243810990891584438878571522166695278293098867514344147441094250411383078887438064124195692721986964463861995821335976549248321798420892097654254429657252152392773503817986584868549565445184549112093041140434501177092413481000663486372395959908596617661165223817673625626066929422219374200568156129374008410534105651114431897805577145878608389477143107068010113610429736685557326049373913703365415272346643434635739628782214175925939915762456279605859086568154480228725800770314993755217460354350717844421146606238023637604391895306820432964885194369771322807386452393144508988751478081811177557599458545307020601703680759702744175430412329977683249825367329604417300992908144188627792349010584103119932926959507082206496909536915454132641646834388780724492611909446312395319578912350472865191900322397643958906353274075810461457990280072965073405597774687702069103275460259975515339404253655090318978393149854497653881933456413829174817748496107690007260760238107220518112771845058609554153805625281710972792830532820486499859922106307966285677055363611415256820557821651897493193142929505456342816462214951940793045176365872883406221991150744089212879960532381530133916044508949882739986200476714231423560176624967566795648736057242899416239526943606373504213398020370442059379529456261470165594850885440509370167230680427727511926329282225897693890860603063049221558549320794393139006668507826045391334426645492415331775812928795337570542652750855834839231411747396276049654353042850077383445167264674532154171632006024373109777237289610795835897062058814546093303689951708662291409665528643761125113762624286694251981194256423936935203027964515149506412835578089287437058358518358660987006811674967546304754887750344039009672265073423825218386910219530699419687928715030882586570422028136368739937574652444473131791125242588514070721620347660838813973489217863102207725509331105852072727953898808402099581913626651710807665861038629673317669279583333461595321250186191130521912405237999054652194034637536455943070749977023573654140153667769326662086919370776478621338384564787534291638615554457603317037480142366790161473781549483158265372535096845972509635992796121731013433449590921232913431106051911283194706451038396174729763397503912271308238050808478251871113554173634518516033351223110944495937710111078951611768881971829845479774076724033874151407619511441555489198011330217223250149871872924626444139672064623388294311157286582586496347945794093338305640300564512498804738173985368383195762202371637382948729995171983477675267703179964066442505671173725386493645981534378617304766031289458529470921513699779708890234346409594813247872647171700179262772016687450653031461333669993237671452211795475724921431343951903857507870813593544421282853483390312665537892706574741436778581862886205292757798456683359004799083072575278386189861752005248045746560597836060767185242800643340406139446666609414632038870049076531802148540454953814974266003488033354930910737094426432722745461335571145018880116721052867783296367091459084099427234139195648520568871021427335385195713015280691085687337227305066992793913753498676346060565746776422909319268740905838235492170575116689036470213544157902063730398684537269088204020760204324239929216458992607937886674959372081474033066684574984385697210146541564805146773119481667938437108255438427876463231430384121448926280132703104941485550152461781428789844538294245390495262252169967909633829382234103470812683791530040988975078423754977300094625286698472377414121965439842003247722273382197771381031757941931225041929517736215552413802127626724323176327000375462553046819879020610231410494042080094919825869605111844070061322316653432305687614650839632850218732611667415355816627106732384780160529185984131320888175109928845309082495402991737612186012893977284728901721016361978355331510870170840779850639849107305181481547036426898713863908030105837496122924523662188838541575496832241636715393293881021072321418954669838363598242432720788548046681662525147624524631935631094258585777851264387389339471604450893798029970601961839195910946947587712555121573350827895392896483681854860459517727954560939708667538755611217715547706639943629325175738332999862777202136959244486700514779208144349127265623868056845923499932535444542877656367525524888406261472209535068015304120473788835829758314598694539221635391067133780823813022445339664670706316026122806773748891527998572158832817551962877114902275711846411883397987411842844388590699326886088610681752745034594132946631536167810635910207140925017572292283825577000067933214998072412017789131106676671398532635833779752738466199949434492406747364374617305304448792129938201465323976992973118573266573306739951452682479477259524432287170033783140865460426575713408307414650203362135994311313914472615759983843315790304668198960955709519658818774500862659787572309241377935309949527213297486671798759777430832096535443923316021746570942700624834525968641463780142752870526776504144496981545454889357839171001072203781969298082458763122966183475859690562605546999840815757058499027752715347432346306307274522990161285885944448317427210851834745406474504287476021398707219470720828724873376917604041520121397379493404263651177369718327829320541057963834728781925852246466036286784113404819903882261251014580664891542830528827899864052920219729948624175167114909462859124610726722478282095858848812580502984174394496280917865097317143519146083175876813796948264523250103512446612962466290162689934743729947413301116304759216865809698940287538526783032648295024033888528386796645194689288602680690584210680505753249886350418799891249268570882026648545136367903724310308378973193015645618010181063092078639535301025435809623778222094031891915495673929264452400986678001659061770728676236724580023991356482409000649731106559042613412110953019440384662351969691966815979534852037045517433545315156574969843802886237794205072921566359328350600768152001604685459800029489366661907153038211804511210369678808486469999245250069517337368888965691916487323624786262848033939352226353838731978476687083290690591141240759058034302201484093756928745398165403857485578898397302760389193155853994529937530502893770966360528878780913583259875077045815377167092449220590596687388411740662892610393940725656245687149754487717060555818786900254432962753448021341557488564830501669931970837183489414532023240259529602325547769346130959204215475549724082217643593582761122084745533468304786127148114407786199117725642284148332099095783161250090307606876690104225940877543133751144241365214849873763774542878624061871615549408073739112488761839100037228389465227917501089119180229559463932921443906307325472141491197421267393891652591812488977015773769236799798598536764588047736923411977400589884909806422156083386093274720706866348970101554548032176925592323133980645280669459789111552342689016464396321327107258668867895072748169036601656828655577588432349012664581574872173006235352457853933683888130705626909262368605995390289905599357721653194697418143045735436071708752849774189038295099609372152109720914946749552944059448469304246240385475604431033814651795001465013437783632791093384381090126959593268735932969548429081840196645993050856183172834155439731220833782581117984393925597257612596929807370622067429341640080687318383876500562764709328912721230346800531056865308942472153154494196553033936488201544719906163734649901838306322150977141114236574885877238230945387994043937596193549067507027923026311999634099960615911706139644080643006308684194589490847933260199060652780312570061312243838297176366343609717510110386634651274809663003884951279910325886383877864749620140149329292366959006412411666806973061312266112645718444930008190014016993514184042814277712684266264655683022434573996427068224304968234038918348606995642456226201789531559167358269149160139655578626349387046046016491937453181000451262597716101181305266190673574156723899029106829370906539835972800193602283890840454879818561749352297061794585403746117928309601436760445854667204425811510550943764642421616311878460784372323787622489660450482255563040971063905393072944856852849905217850732577111041972648030003975958741435481913026120208763218793116683228936206135889426486017755582298635685278785619472032846573005394916104051218163729701887518629068324641380525394215874939831083510367400851486593601528263234198020009322397757407869614849617014952997620512317370179503445540029406039820476144559568475914158675934066440471245775942478777909187874687138018497298623734374440470555561464826413189212141232094691601980256723245425187724363503224313010430147106846383618908193419519249598649947609014669945386525288957776797439910884113902680323823354619819557550784024048926287258223164927006374064234271234668592108786136274058009091209343924813239673170389850661963251817414728492546106451037290921153357278939169786244178816458097751044979769561923562582961314120800007160681363360189404826235456603741630304233938144570172983459889261358151402222651745298768436490800803277736338616827548051696207920200582479075689460926801415732712137398407699106004455202656587047818008095042774976144783357609655251095104067745556839434090008594048735941435140764657633653858305235806851194263668844106517819921714464344817123613050621331033454976559592119073737649292691565246317971814136310380104962670348820812179018370370530891513193523324054319181583207802885003707702716052682104285260604552983593864479956110503789261702795425701304631156221966646128783434709434417202575319845973854986125907172358505815064669507589290252492417362314186288790147896057929572159657426209896304138304052908907240766817086189368320123318617468615290273997429709374129706366131107326407797529177428165765626577727801047399323164024314739063452276086393633886265599113330640073377359372150670388628677004436916790566979705953367641816957942843927763174771884495043969048279758666424129352753386131666811438615722516364958941358751165969940831957832561487844996766446525055559433118805194665882673045722427441026760609575997484674432474685790510099035836311231048274404771707877747527977304753952963106011516152033778039086520470053351301180798220290182839508256698883566484569645332764399717815378827571704777905044201412735121764140839553379987132683358989689651972374047202102788239164727199360919818505417507968699502510181869930167618513235910305593928565577761104403977659634036021734465898659417855509082839542668154561259524158434161774240937350080185158448652071367386727556316226649335233025125262648803821721756914282084801946753274738487188694958774510561775560079188622226752440659743969270831964017348052592818388723599555417885648898702480762693973904814917518475916330519833804824869273859030667589596572694528648808755624759908725850435202880660274087162498805725847714181290605629775485991509307411914821444946967425025990925426952761949057440237744072151322642920750894318202675094792320186727992398892674237833850499284229973320467580010265766845003333718577035311126331519567553153250967005722446715589405831647609586373736203462865312520980240753250344599979248020943297281139705837076413618434990699015459419998111318142779914739565675155691310583658746210279813621220177838969984777953446626986145324067446442966009899194956043692794492468812920769184906063138388532525314723559317409079121429485128156738259562873604237786352177062259156391338288680501447084167251543277206888666164872581199676451985154788893830940971095717043917975239129923460325772895321666251819498527895717737628190309861046152856970539205328222342973054773691484524165555370717220635897329360068701087868005595195604649986414145848219830627755328136895697000511787726937495916446496732798983407816202065174476745942598321133932051366596913316811334617644880656449135376456021684942081827804539911376188380130876383857416032472479737095288784115142215816617445874906706096720512315444344481870481642508705380220041199943459007246650895423006570512713515714997550789443571615336911953269451611732450909077148242105494156279861201556016464228645014442019534079731698840873313989381278938765306365428325793938588092792734170076523772273608898114594579314536312019790107281140395616237385210350828526562150775470620995679607296341580815077086280866096978699972442947462168707705889450032732922075050446764022825676584627969729214210592928359018990196342515409409953404477892987891752673032870911716118257863786523901183834089705616219257153594537630781481682855500374104477874907584164324348956185363552764530174832640433647497170314088092811777286391107048049320210960723121542621296743752117678124246206097571626358985110415226598608803554793826343639895372327391077613069117695019072563499097594168003481402135744569738536928813024201626107707972698038167281878234986808147920883973795278963554200252024331639731905237205129811642972482594417756530549773031666002408885196603746027926903213589656593264173035700365294005671547379644866674741178891102492132523742648786866776018051120466332403351299317104447312528111813511051124881411566241867511553960968375293076142786233977723746940924458105050560983012314341196189981527209605814356870588937418860602649634167772565884281494108914676836425022758490057188683141140475589393738364923983685459483950970886110218271724263959737256001948420490167358856209380463396877374174351695561115344277245577657075877621884192722810166738740446703617677875282681844199364254364093093185733226225373893043625515361451016972932990016760013774373768695859151327584063691235196025909203613910053280019266203973138273360369154577461828889799850288675112303564905872870932418448379899609523280643565960749761227081332715785153032677317845184838913431955528064078142869649550003817553572058619514723101827165819226357718410275041435657059663961426662087438315391999324500196899855775580115870750596563880266220873309675093432075660957863322950813209539015025055562233321901866397994082518954128642288859612900525831239428226226417371753646111456437445125140424828977182228910008728402377043806649154519172875121641392671159440776602839045038278656704462557562109472396344684844028942212009919158062412309931338671268399177096350579197607396030330235890968838326972828053200828219413060653635964364556425469273035248371761714755480785433273048218286743114199980494096076294991014544136813279277814922491005211051466971835392683275161616183778110018771754121707702266822503163103194768131232582950733547464726252943168325551038084600327946131501661751213586754689350607194960750207983741216518623479813538487952247055671360698556240283403592858314064534467532212491607635656884581626653430394770609169584526566708663814149999356900755468302721396870050131136132885328822658553120755021624389078315273839148566955257021660943602561079369668720191994297184080871844956451300903996530514366859036268034479075749114871263694831316561357729248782320472263737863798940311240538197459082405532009774542547138733704135167460831744032722871452238481835248770907715105930513163083450359197340217074506473193535747377705542431387777777123465605827008271532894219412858793484433625193925644230013552416461018010905963668872400384547032505995737057918384815772711663887152019391610762173845713327094266628602488532164500172147463584887316991511809396247382802498223100793130869191358615216882490508066835924167851994042066526472247242094995884636594715381619921324043310115206409444694543476770941261540415384594472970995983098439368220146269006351759077383339570141145527824294306301346500065408896905583863060041860551282430343719081212912881202675145172859514649132720254360948350663626481060819406428667146342114608103180090884467305791001657068792513220991670596217143833608090927675436771609528905367195642142886863754014580318529642137756511240619543025238496417373067737652090511553295347646451845640118376413592571298522956397675900814934099301794571537134040485701080684888674976013304685233165452665550065373887355500041479780838880555165595561762119001608739145762490240764639125478886359688549177663102593560073823877384679576450042292810048309522052586870542048374630269521163574143406030591440409820007190247371878918455666059594578345925530565946068890196544633735765405533602825276216236211026510003490746554772084658242598719607636575982031444143606370525188439668880345570370924885894027178079133039857259054752488661164781638985289995483342426682768181392370215467987276934789715244207123157885280659186058542579465142007763138420661198139353349490881393346864253919080359881557307405491707319810835993094830118853093369271497516401006460270125409105740235629277645287577097516141257257240516566461214340853933149831968708548897570346788524781778881820373278702157149950170671867823726171160743494765794216460560473076927875665208241784422228696709339436852387658563466017871254293297484197480813349526793471625433955385560818437583162638862863305124971436782644256686177673936421930457025279635568114776159788655104650696698740457956960913267038292227636424982653771516698031227876324461308416916789122218099001027747241365959497507401672778801159186098138968168869263300152510255575499743206276455666457006117863920697985234804826504885183267505823704449057904593591065120732026562912951857697634305582279648321781404191789482221712865537145235776304886582798057737480187407702413194433565797638816502839079593025927906683727825652093715252895339540026506093635125154411858268172763994998337136128291749593180629214005684092887139326978986121848372721095311874077454500311825805199872425021423930390948418412058012373719790968947958119464659234986751801810887936165988165502085720338383984528516330112306273507579339842871086502643618747712358542631075644357670230824210965309755963230066633432279077553039649688676438622301090474903873944553098966750660654219618052170372127248426404533575685084798434836352302036343024749272078450305433973263086254840716361709944139928199757285003588919988741095389553882339717115902849594488412450799951162387053021691056640573869834011431736449136868811524013273271122897005459488329455063546287283562034593094017184963404343614342241912860685863626065340985921448346266751997957215293063498173303748917437129287953473631797400049445174463950572425593951934673600389775440892939671395888992155637334499027128147645272277973416302512666269262421650113479797801633590157652480953521917386785162040971556740317310022391387538563175350673941021132063601118176699015897679657683603509753234191218490834796996884901533831085628331272461033055152803852799246036960369293967912770071300942469350502795325413296251049699729818326104625450802443726844081585355424365536950261956596014655813005218768997501281137911736250816998104541570780910132280660255790716156768843787777309652745982321520756798402726068472226630770210405211876214907165001941633789223646386153706201755678177346452644704214281676926819720085714785547608676762017059845041105744361503093681070250137005847076367897210387626520437652452898633229076675588383691523068750736150412208561215645544819913936838580098833233252365180199439889934310616979048556994117863402323795811016019902310197833415651510775752818720061224251425687259934875619689125632360771873816959960727828032113448721280432679332818569990247714156828543249369664003805418589426586963028673866424701339837951594954500014943067758944283458337370461142507275151569816091024298762161215933794294162400700526665057067351261300128229148141441974036583399571548333222297888768925905116834483758919583974899171980683680750397350953022597729575143670846413574049696285482072349927358958959828081400216070463704117044054408725009049199844204119114411205833138512244302978854602876806370190722355848310016049895800813095090767791669276768216865328276396624941927809279270414411071684382984673293285743811201121272403129176196422248957417527020801928314836923657294887139001839189759378956876254359304960321164643698034261526740388634649015865204696007850489732711949447274439388101308661308939970345364513219136567159682491125259914773581664310203287593052756442290878727524172034295119115754169181174051728338662250945516670513959836022558304891407133510123814537152918227868640104032831660898758692986366103452876137641591568841839402172748190626029726017282985062306432272176616212143444898842849269167305816071352567264247274645987279313749401961354375618142362495298740908218988341448887274434922319691449388836494549336546648597887946304823861637209084382162302894930619307866455701396069198183778711738353746294088315817490293737908757288550179006215579061859257948060356753884710831864171286200257292191003275086434275359111694340308950276887388753385882750922967923495340583615985201608669091539495586695759427744094253654890103009969519137104458453857430465754573543031071356982162604096089455269276665029828909810979413745330341554351619888110730247819118405177677351678354706256699687921313835735117372023010607418566748096846614582826675253333307555636958023086925321148509114724457120073412289970749208661957207655519842877735249346832435207381481953714541218267178292161327351066955460774639701246820851211259064987375684710842426298998326225374479837512880009545757263237092277842943878683296604451423068774735683717130780166116528598862802686809143626727031499815086085649903956117890301518988368255252479685857753300204906965955766071330710086015810331916986126236782713958997405835872520469558142013753450449437845719572749859381201884346881063885359105621217520415809628904404647019928888083133215637759865836559992792106673120326070834216255337213104935464859888265180026512974573357036153044383580019237023365818306698673609555998094162785701632212495227169036830995332851450210894015318693555434839995119799531307579102027042358925992260222040294950444869832770445785425208638401570345498239289892929092159095273114906037163503400062064647863931437625672832852229896942775296763644158962565866336208509319645221284476451210053778981112564792672352644276992212828590417242248562852315726078537165409245517966536533254420219051003704369815141731125674626201676297012279013483888671141629752532621205833456402418016835591280842076462984443640410643135616630077533084139287434166260191974404157066401217653451405813908745533619200235201280846376687138118985808403120903059485011967584397532499067076841921792049845152364486156899205402645942665204163162787459312464891091054726660524263753833735759464572085069202647354378354805425834804218183162056049325615060972527429845164014848144751665071567129869704561283377510439209433595799706388474116791499214304398391744392214999444879192870506438227858324767301220001467353182859213417995266962991120492252717122440979606054778777399234568226925246499712163006139754380951599150787603395743808950355791304335979013650556178290147546453788253577389805555587310092181171061853633426557122308851232550295174833575822240484046585005310588012445185849701338909686919092111914418452861767170975811726890084643726721899163406210793261987936516209186278173951169661477972341642390095653222049565689063489258474228921043391954482007958788682761555696560203127602958896837700517867999095693617489102340432192859509300862158566054236328713011898597321334259060983721221466786594464452715691598539623982751364586762781714801382225774373152644947996045694979532627015338085328832500497924216061683024330383138689244155523315682580955082129673645307381189335659043919793012124971244459855817673856547166760219490219712208801377440450668310190774582356513062238637176143655694847170068212236135535698634775580907876576085325265815470803751117214285518025378866150232305288273643807244638073893762296716809684108111125356009638528678239581894107686341195799299895252351666858161801498585956261490337984033246316930303826024675632833062678993828792229638073517747198647381978382168781153503590464106367880306236306751705540045512439920973737213907679835749337665947759284513721365997951051677834091399091594155671300025632755773076176434879682174265409688467264974707387182048732120735042989061805176472867839699971125933996204114696075910382497822894223902004584085333622753244531919290691762429593543628572001923684466963900711096948649114000822066419245482552734575218997617932730746352057767843121088655685024607273064880119565688511653277169664059561604055432943015392869813336491766758270356922789589535960457860934064015569709613746713020753237177393376588275150703803255347890530627099884861980744061941083065258578573133918983734477094095165541441450825028339888590875543345195677727839750297382782223392669959233593784855335150262437354118263123241444108647858094516121409741047880958981862803689756881070295137493733317534078707717730447072335875475891554542694019499933729203863446495433011221187465841828610232392677227783707024782628374187447195944047432976187646827758957683410598784611975811990487521601358420982504097478396398595377510631216362368385821179696818099499018136310629023501239473970031079902807799125353464477412242994309999032321899464078441560609809285167291045296230908303518648498174517320823279164479100183675782828291490760791900715788097882001432015705930049411776641304971834747219676496953578447600789201284378110053158965463142559866801258781009385466729899579090153051721961506664159607497905890026525589062586366825392790088596320286638327071767078032832366442365961683678856727016073393212436191232671250397874444494865155480547935380718052950448353833634456464235547209422017196174274648895509157133333361127161929365200397512106004365118519302676216003415053816898242298670170127646088685253780119337562691439259276065594564614766624010670563370330712579222500678857551232494308182355765619243840565757481774152757821128187208771480205015087475768930363732422432965792460256249993972390398015487111051159375271750482775715969379840593491382155695151350500794576962213087377904207582175048003347357071582369848960348440906135984752860169539441927289083646816070322601797433571265175612201772404356262982118146542490809719041186015062994315680621727836013513827812372940052578437800594401337741721918750672321284325926853015750414302320010448307664682410581491204860400656477465554447333638057772486000790872891651760595567555373547889870614908122018380381221760874261308940533858421725968766750961741370249781681584035618334776987413106881234312293821612565378517027649319861612128470094533378062109865581701284891833969198853858911454526886469932320350525621271477134835463402822819316060711954535877298308127624714979250352418847570670838512836813586140116090486372513596637881982823976044980919718633558820919876526473496171077980045049499995488055108549512357953149438688856907997649373346222660983348774727738896940863065830708337657775017755009117624469755263173377497107142048446187903761124448467935516457183908279949472363470542702448388953711711247558962901415010636702714538437686318810997849993994829427534669830789677305094840481846230107128772321706568954878090205554964819815205417223843032007108635716192017090919117168696834300002779987512985141030499742572816600901263565857348308061467971515541510386705838224122736923062749371099055181275065512639553827936039762744460300076130404120044746464280254345025271835349260819302949601720404220497474097456318705293320759760763423636067776858467307694040873108929965160838216867633969874521020903429905093579716625077024177169192580395822424513578824077995695324537611322053459338537568053283241574555307076847788686397224663786531960848040990945937798960978690730480033754735028695940508695926834246483568687281924024642148645788566410197904957995371493051580880546018041823028436952801584286347871995013654153805034610202303365883268154514322375264197940541823374096269795156760154183701410906729184242259410381594382714116440859590888361244460447423706943349899720066449893484681368911150410427488477481062592389369605547160026980497858298882430218973382046757069028195358902910914451226304981299827437419622965408943452983359209481078004101485382660698029942415128898974902283550641142301867044737438744625209736411351396084991649358705401219392870956819856440012830271443490908808993139091258813192161514435973167090649615148716423433046052675616391349537995440280461497231965405704706453893426528330209814507343519508828496882489888617632988288984705575211775481728119173290633163215178327857227640554966143409121336283308714153304080150672139115217549699856137027747607246887029863398376032867913910590154926389544409102521077720099105802135993788043127521846714416233830178426230633583997452564845800591325107834330379288337144476296028628005624852528253323509635749248786309749666721138452929897538854986742145762863717982584763924173668198329238987704852880074167451031848587358647775132015158630596584577203933171255060649713623360710364732769951628225693295206153292663667179513695559189535720357730486861710495012814452091363191357644721403524342430389603201110947562948846819077135819621927429555620126483764929543438739025788079771883850712375760653652836073396171241197688513430877127619465498593614792495998497668712753090645286124543586228554050601105927725972736268236889379192324318016860287498985340292680343176176974405655178112204353906065040558119368339549643256029530446939579412000191477331435078035345719056843058451371434684063449342254111254187815406565615213277295119449933417040955542486499890512447558122245842240537609144963091121510174786469133420231536118618026885477053363585542106957925812874382227653506258351956023737701238914727152407093788225723743798744154498257944652316652506244477996702278195627231188446994421615034593346658605971072379576597537024376355192476282402043636549858087461096416811602773331052530218816152117675016169203143441518409667453197513607557605449778085584292594965833943774524899033613484304577917812971527691930967867232294117106970465196064934712328623612812698841280222233900934097787269540749583192940200303943976558407910713869744320500488112125677307954322114241375319300493949571149134597136890177711562605572538648169849470316755406098463480114720054369808051325941535930243921040086863391347606355965186227672892664378062466883986225062419476951448255641015481890682090323728105655702919000620954882793549240644791118288749028920314729814129653234674545594323813234948677949879288162136606378671522986322704180372035433638616237784346375483346105409887795978528931919815017547156543943627659783570387985851316206095783891577843940766534424585431133502080272050174763310171823820004847285307752494116448401816136615493051691172360140838374330745289843004599595608666343627863748426448599310388864822592029623579546976980413403519596708270759377646515583845680420247253785835690381439763661635175638120073608984639873540969846839706677276961118261614046176149511701430341259572264069315319920404532780630476024459439402753224739910567844627252051353143029947035462725167931363273712449484246421344860287545775367496806593339448216616355999287895984628889167862138728089945711219680952843724866437636592213079226366653215424759683734261458808137190993808956084317308062031699013202356440951695977008934011817038335756213434470177784710415024696349340686687103675226480725394062260163304337254916877246255583248134577769188154077385338366620451052361260706385047213528604426604911216008379561950789910510193962793566167216823816605278642542023264262328840637349000367372490769348694253223816225935553384323106649829696536719332877876844699296630098355346694796272220491517766812556093041240794843283670121212487869534620510954968793225288314906935469537042340509333087277756802649136859259734175408967998184575427025276376436671054254460775582899051276222743757660621577858005019946614820620352953880594701540925619876754186789167967812506035955533520511986886469047231835565395168465170796577619612291115249724494498502189803142314662280417232790838594801560481674808774091008945293849034282067817603308905274454164201786792225847242900260830061680219011263117270559982428329419749237748515785723249538240099633670766603298228840691591473856755707917638454536204304767994760444896054760262013943061203880340549445872115831963516089851182758828270089340302203258202870035993373094987916183467506406794059078392672308714797347444713791297506830440778427628814379276415244738593585502701659479526879030728063217183266765444201189547637423223202031327923052571133914652163544798690672333015850142962747588249805068569255302921329368234746691656702627557837986730253084563779866452475197047677744571759116482047824395666887927565011757331744841568703277605965978828979691625611674730323391263093393406583689616059004580876813269962626888471660304074370363018474757001680113121821780874090271869609614195283397743145049267427532316503039392255222016421691674158644356233766407921723670943442847904121586981084407479734060171155725148144521561866465024754723928625744147438627266714719022805793550244071019660154072560894807741256682543116394951071802193958615872593876898304731353823224939136953435488138260761543031265948081715217834510722202125325085026626591119244661334456616390164356859397206404269989616426007534915666334502768567327937137909240057801914899561603134958999227635994229088659037534605201493459552404936028587836543252851328387850680884980216253839087676987820818880895128310247929291913998899721308459204352549501244572433962366877689363227848774560144728112730380492191932579508019378528739317372558051850442146710720796661356180662069657524594965499581808793264021946567782270044564109464024442559915128307214795119809939039315101954778467709943808586103687366922079502603595605568275774169097430993178603559302061691995202453542560107690989892472985480300163595787427978267469468321373127156219688241727462685677022511895958110930354645730551051101878224872930500582419852158703848886661898354701839488367728553748588038370551252036344204360543068840488429810035390073486708328424153969610649389968676151803860969056690775000623930439661592435512501029501577137002864044429703304245278994111448357562794912871011484840085652886093240314285424336649798669947147438362605572516133878920222061620694205686739022067036465714455711509594998180924782787125723671301858785843602662667100911521254140912674203969583890454162332885391090837669047728603640470034663984748614580569081431148188601495566513876924596123558316129911020299456428015793753869929123426819501688408437816243427353196203370811229349965280853093962416301166651260873802415035341191103271261565013111099328169709778594200160925080663186697180991583554634231147967934138647205460508820686667287751365360545724075808591780884767769961518827432073617468166643249910516911673995903378170672433670161589965480259627336944598604533792843497109246440119216690647832124006908476084230778804546355678269010490957829388585378703162617434659619545000903578008670816611237165038425806299947085125524087597017335328965856949683385188316795938701306117174425634982632590916691139989266974075245786011453327471514456491217391035734214060225440404128589081502603059239786333427914393476584618806916367470365591571291952093253985227204266704203734679756276489908124234136141190828204700574617907792413789798023182209627079309500838322095431505365162852779575010657322078634789679214342430006746413995779575895302625747628513621141863806798888636433671263556031567684020563211941585164094275844140831146742919415255866022243493511985650161843599996339024254091254300827848964520257866529149983029015499875958112066035124001714574920137083828576280682438796031148351934718939790161181044635618726232692062633109233821099440621563501175336291477029438578675114130698516740172576569792232746583631712648449966430278996575654088237386164675139820570946573652175113987470119893872239819086703695872313342518757369465179540151745591617969980654079469115583184119816625207624558247436596781066767250988849813878978046135940303092118695483261626005881710170183771474163326799301794928548279271882355837375545480008868548868215696076175384590848114624257060240806991196181355960220423534085322461445046388660678144043361361822201439278749900815732378988698520709901402784194474924025511582977063548113318656389472799408808541481809326075711654296951753779465570786168930277783273121814853682969707627332629791222165872863141455031097420528404724319669977677538275538615725183949826849351144795033848103060924761128000669911440368704438701483564220026565700357217255336087492699526757618743117852933363133832180183017517154024154189666698300752887266020655249977046797685536085643765143785859634372041581327356244781783440556632374001691703653260308161459958741192360690508351253761285497570427317773472602420853548615792591538340414367862703221004567329810586136025980177704711870268148117447707704293467926064620557883109043883070620009543156350282267705199863330639317751692475092942277940013972094958787647880427061970427952682400471604484328624700200042768714479474784425581201465020956786181139936393841648548265103601035426490303253123161037222905503886509747608238351493233840558373842711230384892283456452698789402390452955611702201415804754106588954162095467118879008463038351117187524066992789253124253676608474575758634186339180977307447210987798059552373838310727241968876000464600750161751304806983858885760727860004020937912589247172446693452515294887046166961112476622534204286302642422871785101634776469563044658241652869687863551005176740827695126858803076667788416643724549253226455947107325243336074541578926692022821070425658859145184816895545533772647820254873054161817539904761258978174039366333111658544413416741793452448099143740257523327697085757992472121944816324154419647804836313868717445348477970032251725885826024522150034063349510384530940678481653150803111544850613979704770032627828243546716488797318738186319135192518236969036176447868289349450821630175365836971460113305264807189637088931690617626531564409682594694394797955283772389108801527993482731135813060503223306999645307641903743293094997146525182896635992048542114116871185112628008057587372879893825130447922809331688037628521076391977142826729087404099417578429894178537967508909698638115523706709712410229474471856249862749825900984383508328097108722622828708733713833309114756404147660123388349888018074579806893241394509996549756886924848101718134415808651663230224408493796682134401300427074406883518037592726354500985527463131825531795114190320789013399575088243658007341699253091386975360712484478265803331210108209832462413470261558721811296650654831566325086253924673062790208225633976471906884854623834980746767872822248494500006807453234194492610038068246609395830199663690709012141292926862239705888483429275762319562880093954339590412304556862810889972327562068361613159904550969415917011112272582980191341761290328565324706475851385569007971321287179038154206315937707674380739003835461327684860949072782091750431759576319139520274169659177037428767968682552798086649565452854903557148360025335487853417762806844621934315555822729498273811790816736170184890509900732815495330509049716045831654607603916748204000192121208985346373246317443140743011014332710725771677657939294970393455942434712116955835761868595617305521487173661804135532084469154587643194559244427269493348142863834126592019648725647642547564069989395362930622349521615693056403314675249285544730407508453947793509632903523479477841882033339530739177171661804341778535737703226128862278607343234590011447205686403503807879995262331161169159142070489720214089267899572212214893752295136996962892646045504199951740683348946357570437166773405354039547980232156893730465980584207579947831057778433931759548935953392102511568363567655857905648238867381515851187842481411017299461636816563623712169768616895702808454441927542563692183366170600808210921937532480039737653580000341824336886943857295833487796337066180689625126566041006821828425135975382566702552335160731747352440449899356062487324324195085124023611892498601372545470719662370069028403798121643364323447697201268747205168741356147893011160722240456844676436486303471492796110204123399004568015979100999311272365672012642944094101360999050174465950020620234673045578896150961087483002313940401681524263628544142407797428281874528357988792363908852753682524803792703935233500307791124219111157903484688679183978070986245829479284686223186264714134604022032298485314114342331860426771058005960755174115692047833087671571979620137928804708721070849029037191432812051206624444818364863945141885182164090026641700272936917154683402220741707703787109829439962594262951999870718930175709744728805675033650938784025399586477621790047039184451249703297440473053473340571778857016092273892473455723644774762514196515984781860420387858454178949295695936940655261406462688505070265187620342521051223325900462891751954815008079241819438054459599402624017630182121407132759709666409504800201466700928445133440503845212141847586825032242949626884168510974694400991906396994216128648944376578452613117531660208201596292159176963917829402054596997770473067637285276786911366494318065940091957616796609347093054744738165795435020395915193348852363506431082133548753958599740925989353226547160555463878659817329773605879454534807380407825756210537421869160249718364176095600679470957710340434855601971192480944929150301616460406989457508018567058839169287079813330745186224784684984857497140251690045884267799798902733001963053674310755829883195086308409131053045799730346089583940652032007060407861114598672425588092469196015270672741681559750168900799634675983973418835742426359277642137874040400680381739030792037032097542293992957906605837978687415784309896195198684329786274638996070922054904522190821050269306323660669235510531301664873981026313094754440006419909087548512220023940590526762500584009675829912970567404080536842957947732412083123528808877840149536018093527619938400516907665970790285324707758662917709293576421445893544553241852818185183756026794714034114064206388854677600380077916218604160376123774492820669062338784479496014533526353330910874561657605287560469390748453544483261434230770989760309601423011686959714625705225470364682059988734662321638732037102740348931650101556638693542836390636962900116678149276182153785704368464153719079268066246963390920128817424212640860415828860707921817122442440164002722162464055825723233421070566667484297012265250508707297914783652144565055174822603784370410626707951428537905444294564715544397115447037213510606379714169217795413382390518792148503775236384907379579698967352558731139027077978621400733716650668768917539623699401838517222023185951150996478546711590897966701161880463351544221631865766939147938767601587452281897013513244512122913154184537816326787856868564960369387032386137472986974893858928404852641548968652784757732353253415513052900401530978417493053078541416667324092626257661334669589642647234514004842934373520173540044885167307893482232597975613729431875238542970843608821712400457968453993736338158742780168179368463274270665863581337633320718430694514563229235203085074044431013911737386821428366038964666975357898953331215490049704457754320864407750088530460170190638578639175431776242186277769057002886446995259946831121397552842010191852913988273995035962664710248799118954461085438702005663414735692518418927634346882378919975512805549336934130882572525089460723020379062884175845434871562725082013922549663167536363300661353696403886356089941279390427313199191669590086361229842206212162474675778359488744822799217981392355297676383316400693117487143499132473253679831238520747205798775949492076800547288348628903920769375346915078185033195470186818028148413520934577104640890562479233057576890334354332629392856506919434569734825954167967445408076470643993087394168029871544314514765853122630994895889166081977669896137023222669189574209399071401486374323529987421151814076099648225341775691083357285718819493772297534597728242148947029979794333354926537188116367144190860688274267814961505112326019801403982123794165332143872052754936509350735776557450010231970738598636015652243499313684251631034363613077878074624692765783895310206915067039261162948937153161812705607412576515372193817551164339148181299714733388592286195293521060883964208498650161100468167660615514377530353549927188457398130400618025874704811970266472427445599357619484189618666347316797130829185563655280997915628795462532207143749693805532999830930396155225620464104028818525829892102087464958915894778582801858915256789740110491972146789851530430990952139190579721113480964610225133196958571480354850309804734513660372858626812395890790254286730329889873092319343986208168208127168025399298550351186418860523623159611869511699616888235493017225416139028979940235086492757509172022128441605687025224066410285775259621970060914933443928412958319770588710892178040195877682234072267487005760624890622902757514435978109890317913804314621498355815492150115414345544346390578660901467390307115503873969569356756227637619215851333564184207440312466481803729793777757281530721350975082649411650301905235474489511719701557851908227657802037263386979215368405926881369480654349570473921949166912600389473470972409759609401964689264335732620877297246029327061123190991525755921168414412361440596129939345081638602330753725523776899112942501621098940166999554634335726086210896828000700419550963183523473459715202445434993496604529758393032333968985416173825681627269535364241228471976276768430927890062594923456142634590431220576401005905348161591206555864685854997028716842229957086711898921927741322939435293558471991839063422850951820344373157553073446162709746768585315043510134097972830781862009840012631982629420059695128715005271853873871636656564517694536832048978637823873415778814744748431305559392824428923197984784400295171607261176842254753059645569611357306494519978073826509429120785787722378961364387637883599926653885166039854031493403045832835262652749584554515597965116451256730710286625660372375986077199617745500035439668970889751444652109574706777485222349827943437431452614978938278842498832694974782575413576353398650023723798817791099519312970547302945541047116424095699140933503958353485301867435060935243157177717415452446767467351573093918865920572394630763290645199219091213322146630508434707662938413093711537768189002278995301010772547779280500826036117575385228686028754133515980441408632754516263718080236568980247767950431211224063607547267891352952334174918722074216454448198769624190317227166529929637917942069216425893170565032100673299897802171531044700692147251607021629343284474967609628893287428418191547496725050444364572599064169741816850277619069430652925093904310117884503058868499389110441218163991124986034014959534515996577975621168982597488155704866405665519990284499981654027010268524961729094571940938160685393550891813045517664810189763981974132419405370181268815335567430454332646972852423624756122183908834088294105141003917158093655551174148202389680593036659493479363708333565858793223435473350855042864062760799599529358682300952526003064706253073754295225038864150594409605797829337301137891263850755083872579791912613268485726106626996905898905561864222176451598602706243922419981542396548956652275629734859542703630991451622055869944594509476403374917979175752839693859765358697910974646662515790766220380088942993671191363355646286896056254033295816413743352188283536852105041715370874837096952441462559442550199816901971009743043727058261776506139844511991530323147576609026051043187646556005185630889932114179554383879062956611868424821740839305442561548168124676275404122428014231454101342125941009288128632180454386275340288819739940366466016283588601313560354302014186174290009668572242206349748622220949668608616760659961260840356240576808696098938169783399242602542820174307802075304626339706151437009975826333153644240356294863443443685146937900464589488370002003059194951944986806412131618821464855563903027857900552209156408453630367556701702187980939344587673283345072090912956591645150589137441149572672105756922678323544510115667567120914057634333114476160228730236964307770658430753578021476894344339754245411137735257107982191493713300573738784415885601115779161850039573104641442441518845569112701692982766682693448303113295032548691365854595515826575376558204519887630164925484259589927692797654763739024631926486884708637225092709956484237331231269103166600172713131321302877107502481265241440659732893623927644862982162318546278978132333229332967732783430727790563483804427514148222166376543226674040981486493639460281867264176022640663593614899957294833928727985697755566491346013968213393715703282809404187660884906349924138996012264015563851500313009982408030546818441543411074066479912918747470420548841856359557565330300396868423721804224373809573578580548863840435654988822524939602207597186430955465613683575515421875266331317682267783088666686764767430512133724468981547428465615531287501204427715490602023384970209379275142775115685871875209608579762715533029665800225567685570564991834765583329797865039313074470549762097033921188950040800202492006545169721365027781384967347427894182746641170210419249654887320305349238620756765457892974848663630077191027751465294898315157311231120319752944059039486020107629048468049824994067299277948874370923656173459951648702527936643286202233985442344049464732017656077480551440332948815588140063735321580442875490775298579399021450213840286099903756813338936434411905990213318767911794977460858139960720566905264365681537529794369596489396911177410492147095527585453240206286418054312741424642163196894916894409375844591043787872472115718904056168304185983247737262343852725245353206844223819295463370794445652990799196568423213634748913017877470532318972773231766295934461033036232484031055910686887198916665992655039772675251256864326281191046492673995810528705424393272844757621221867635245391990381989966381883957785385428213703420929080321808118622461475574025420571199410411456824926105170058122814515816001267292828400951292201844187878719534545699285840114203824413920595999861131591432683582958372967005495267900842143985498322497105818556743222604003177769126977060554154675231396287783879707713175802359888265339874538890109180172896151654903962117069444303961831995165040682242802771623048781640709776023069042151529019482314495072891545174666335939729604709758075224411273016835694743833275872248462901750998632201998544027074157270928755987086753472125492491642908992146070499948344412821119953947215239059436781639261927137195757859557922564871983224750556669379100400326699568022541557610615011708704192024796378548579450317089170028218903465643294543863981690975067247893759007001360943309860784089976884418876897357572753425962445611404404583206179210311494400780298014099424008875228660181611362637246438829347348898391153339129046961752916586719158379720843668043451043898670369092232525439114229201419689325796000233615451365456446109070966966144795700852005691030806009309266346677641529969666300990928423765122390644201003041181045473250212499745151863784776205247878317378883866825702530636934438990845658885639979004837511477078004559264234506049487485768023432376186820139401957874092791529282316663838396875433581715246751503591331124912348747882091934224964702272421866482210241206928057837312646126543574782424946502194420278763037213938882916925536947737240362728668937128204785469820743936683589434891396558863188897988016808521103514734824541698839533782381108757933792848824594218123926596447114865523353856709509296243351808182537729754183202694897393212726179607746243423518206115997370935221416419278264217868065956501000598699961418074513195412913305769569496128561466273715577442801396244985386791285360833142872473478391255261026897012747347434463250452777248576594244743666729569597201069896042209117494677935771966918434932985912497540066114685212477972081440937755301780715630653947645660121327236740658245726304161118129403541574522267983827994620961448905116171529774003607935404250635480098103325167816406470714969159246663305249383575068174061986104040373139320413021877345593331087565642218790101862413869548319479592700723241008817830751074450652110102948048471427392334322211965301301952091291539373942135770303330409525536539468166963006068027175394634133960200579583254029820354654357689845125940296890230943535356273167778290314743391802929726026367173679465473282451007485664485277428101773630965015967014134208067214079406954658850262605239913720374256330813782473747213182562592240530814922652912224678439297972516074667974874765100883407572427130853290484516942674334368394113408746695811291264027198786166848030382881075469541849913763800981079124073731264660106604928394337654865631563355069026650379768524994920582005015888370575348641987549311710150172654488447467464579716753963504914339922081806273089676479193836687011501913667375561614819318243569513571584548739723879940262093046942387760237044754866405403419211989702159866476168385009294311485885248818484611478044182631044954497488433806648606730608628854166210272980655338658361638934976185537907128614013377792741646914489310403770593516120990980437007634198014699762025215022284952346695103444481277067426617654799193181176476125929058157164014672998792612920833264130427523561772005535697163302614476246717321023925913844176514473277467740187287835595638640741246985984755276270875385952772838598937807846268274742707731665420549888830582697079601020741302393942052552197723651231662952691032828941859190904172659076360576150867320073586585785511208486812100555476323680238382828771732755557272586191778636454366441131628178292618154013258062118820460419911544868093964324688387442106780455858385038359392222728797723248811787617442937956497113195648135442398773771921732353039114551528499537971193776479243127998226830652278217072461419840340565228295228537692771838703486689536912677404703841971245072968973913728539353972233350358785637185415554265959380724640139663601686707722777568649849900848332674908442039000469756978216888030598957168882415831687710104747633511658886636246296836377969245782565684064723353464171359122733154825916985499114530107863844183638879093930415312843664618917202930003588943153239049856816401280459835977719516525846871357116161824778423094141377957256577325635853090130434295595975115354235721463610431216279896584995436940053355092232596599593715127547952599242464096755363871175166872931868577825434491102018720141398814849045826408745570914359250079351811948376207917295766302634461567654043357670609874662215750163317839690677292915284065141080718005529183594748927847513315054130270827355245015526544367463111270988728686729314350121268916502643621638944964577396270463128831162796465527555333575220527918894007496663102558034577867372073556074732678399670671957900294837007579521493561586524612332111381763355727382398691669844469191519833363429294766288380959213608395310823051448817489423241435037488036021546130374052610045474575734471071000487207828889316002473107307379231570527092934033702937740234806281019418478267072610481247922696810146720582313128634803445718320913440628681467477251611623391412288847031334606907676388646892488163660708553813899718358503878188848949191848722110038887907529257401288654605604847051919568535219502217048370243111191208192570607399524158119878197542394953447337864857006220624396771590308906520124158080944591707062062416526789916048030498049231494270799091474455473523401224259292011246496708733071771318231817682704533332530128468335082241766222960046973346254728457672913974225238864487374389253204400705237005196715813302255000747953952670869565776137553990087918332090440432510061611417334232618773851694381312175221259047441949909569438847547452742314187566465634992789492979019299142799025566914023682229532129039904459566531742943369812585735638023229296830046509383757326928003194710755216160910335220305207947824330037290089909270168766365865171542051828258085049922047666479980275243281478992086445194805215156461178211301571861834236563840021918248192861006810390699270994149735738110955142007506286908380577028660995977709667705535995577795190691283001282790205258351473401545878426863635199057931829691078183335474532457993922716160657870573293138557472145473316932945410494371806395963522432949217730445812700075473123988434555006670452461281243508875815653121285141091621454647763036714942096301893344845957737464779784619807488174876853830400312330601662913851906780462910932234694670965322737939279215828457798680606370416677631920885203585562990966588696661615144128897295241274036818502173873723499321635475543618516660484151377763520453685947305563596310910937970648583802227861731663727628593232251715664079222225085164338051435830443324092242562074861203263147345230343465724877642091192795539496797810294532202774774080758726297948345006128132391910896180838574470730068292936850445562841633429701840771285512684977098689647435901237292645996962149665161204620228816898276190141280039346601693333613803523215036453324609478117704624092561247983378006919099462139324821248329126747379935647937651881113801869462873147521454952384300756332096321583198386367284144497818932142995371178270217918148665845288177383259304230002129572104672150174362624400100315234198773103238064775805962747768567752467520692923726179947285545980458755414675909662389870850915823358229210452658916313443746613765544284695188734245416484662529288364694146362987889055980167928235986099682919747319836691953490983645114769998626407880425945777610338270334395080093385216266653262794111757100878259167966314593992299005424686904885084823030522632892000722299848615849832940979477690805021156003088492244671538379941907686979114947053355113963401239226561349528935350202084213398898550979017994463478605657673992896310872341645368217814354226704126957890223678243251353269918118393209855984545249332401263860993600491405397339304160100013484077749079935961977272165380765070856867947929962649171149888115178289727495265461996809104082389117984118391823390284395817837579398361013121974178922270061956473755619711274791734296457746055241011426734309356832932294251711275367268393972187908305148473086919525913316844356504070578278393158868783240716726408874473457163199750205820946464530027069064561232446281575004267792964264671323033627009539054478529585282086156344231291062196422111240250886978785311021578411496840414593793257786968687204811519931778553841414815932639666749104418958073167847412550874598677981039330180073240816805169362227534331900455960300852787483191953499987651421793347541202998447507770490252532786427901237691781954042266009037408087052009133220642717965940877641057251645650878442130949014672808876654781655130937304961892335915584881784350153913837804040326775173469788225582661698203215677725537828209948659446080202952309884010880999255482550389013098974337720881293557272928622092223797425819239373486646780795154688666113809809406445856488892783740741164352695327401294053680423489236730638917976134222014072698136915401477137008264487490529881870536164928209770236913453867979374549982962827734302671019884378735377865492908215085244247945228018534639710167662748291168022268085480967687055609042574328590313699028785484432324588129787491672383083404360718978078751359188563661752030012330941453737139716521617359180720246810683445185833803376633941726403863143636278098058883384756799762947645023050319710632059047904217807706727842643342297192145635887356867913490555643639686401756475100556863959514407089481676612049792210588685109981404380542820471006255459109648332003785511715236100194494989922895383214653972079910858673515017566231736104003632886837090949940493144954384232801101768637875230623955596915466499764745166074387113379328934776262286666582413906417304443353643931662579374420163728679241000730919326994156632261695713079784268882080533897404841377929369483443363826645902522772077000407711937912177292815099081669556107421600216494889575417318875393138180863707069637310867618876129554595951282100801860600030962522633262591327710846228288783490420373625409715695290616180682173852497197292482380221412330155869107593028607110481400965760132177712700428531675265328181810665329672143499310894249158762598501272420934834444529495030729791479566635484251842999785569984873544475975689904907096555824348608486479238601304788063932730883873140832139625417269922531981554442159496295678409734849458649307887857155921563057419182173302163351299215176493950083390794703899757128190698523724143398336573143633540088055419868753330606288032411606683077205032737499650801689745070857452903169789771258629969042975836815489826603637323138684876764008549930891885805561732171489747443741958159906474959624376816831605590845998922350438930474315042648782313898513002697947560124174345782827311005102235341702338867968617917155889031854072485370190077044576267612121135765708071915819852565339804071415619903950384554483540053097077253364276391981589691615798805280321269685580741327150215257802427199754681481132910991471222444854971343430923654160045889621098471648574215244776266272332708370855825232598765919366472694021403591137176298512744729760939743198746034674903832596673880703634146254802141441699286355683987765473378925289700680074600937637643673799510920095634355925574721404894783307376639215913827993180361772573148783236660075360343350811737654191107019565945475432527237076355714422197895183583312455215392385074780041135293649861016097037740932617012870695844612851058392054829570933363042900205422984690018379982699964669321373519508018543691153459685961840383046654425061063708742977404086111685711993108211674672997914537608821473345387500926874270858699035972045155393418340577864641092691076010791402409991945698501065159410271182388737153459075856229627658544983731302817978324871497451820473867668463087836634404518998915322024006666010829007694212061987691023342051591025153406504743343878168018398612243032894621815862602050194917010263663330777084156526473392413255468488259204828748026024006393063016383157010911001940189635215170119077019982683868282190516010517090200439554374542570014911746516252261459444466902122824460800244236069918024053273701317403278145580770595272338976349697677981711978247593568542081516770740102568172287615097231114100668844151321563148896734292926498158837953156955672385527321046376406090532162619592961543275943580436449789749860897910537738641714960819077474805778004672287382495175068909699951690458413324956737547207521176345817437262519051121891683824586779754580074702484081420279003184298100503056429863001009505564000111172312794771056137305948548283294497139163228847701214098905547996495250937921719824284561468105560946241141456750233141840828145270289361267252224927985981653857393038947754612290350536949454341001305325591764738123292548326368073892104675775217389070469737048875518272833540215844121867569811052245860837609024248660660003418139254852225412138447428360284534356723159313911832390564728128794456445687939504476077806571848372219096009257596529469809923285317953276513044634247002889639305671875659939800363573771460483747235805917440126713353574467295285080121782285980856084941886095818841785841089437290656654024389446684176080559552015725060230639992399934226664125276494375023675572474628281207100135694599029402257057156626295467102067801452649443482068114998469164231021409077909230405803122294019085644470411330913262607714989957155598228544121379025211136976721534347055743388074839831544130159194395521063676627975168456915306925673533316500463100388738374037883567099426076536141278906196088559789831151333505504112247695841120100875503084021254332247372212096391754966878816008671265388067488491001755767787404393384493731478098758485338490325772750026359998605314716678397929116468030496550481741518886758137587177341321440285104323298641754791690101110901137490368506362942918577349981285576344123965920854335854677807088538854456362453944478770637870849564529808081740239628232687656785553447990060439505273189609721160719899561109700530501505073010544340465539199226737430684919641682112761806623305710905876698529634982812019559793828329592450468692432691110087415749192380084103643867216652333975553674331739128834153794017529403410064774056819427296079525113663377086196692410875771319059291824619480087125430835393646570556470356934635284166158416901617059765333350580999647970188429630065018405847196149493221687979955838739921143134330528510416366321219713043373081641151441225862729485031934675036651558947493102080177597511307038865885365594729402084961514945095365425842361014077757813267458722455217653049339163632694683134421570359520059869862007290028911484808831733489063363123661171753811725702856462119123155651554361608573121095887015883761369740261293119744031595098480555366723249892000051149228668949814060761091941394648421231256223900038250825907506836942694747704345234544495070890160481541822585619380616323947988535562343856280484947252904354640748963532820616028910898706791964397193349914068153482958824349414474788565605009053732006891692303151093923132075128320003455297047354123151046683443705061665067692282909569350495056866657118924558175504636008957932456447285418780690273362322926884914860808912516675131199560021993473442878857133876174401276115026590855601042202133695900817522685860185913608764746567099494579353139015092681234588232997499753183024023442129063173994647212206083136761468815921284245031195793030623085608131144132052417523330543876044690165120200236471760576187364068781088355093820486405248608468731697287153782577001759626794809449708687543654662656271496083711940915734584912998531030406504364762768361672634621903433395267410927347562557916832540609844886224831014860358190085612944223712343703257102211104152646557128156603551063549707454318648740187989136578959401162796033651156186200572575990035648839134107343071761645688218847777944818759901989117827582563432882635260199775537514388234835217838163514242298475376411061747291853977534454864907102611264886836454961011814996027301626365516701297916310449202845286518292533135524829030858649603261018622604186749019757786030884392556475859167425440667678157411547768586297689334375216098392762790221565280650134506851405153671785298074844266159159016613121667616202056909108711349183134976719642468015853586686951145543168322023658641650310691226318296452840210966010964474723024689892945956464207472392525649628450912424627295985202035732656852736473676181051408350570107663098534103171855776123072704929057974104323806605687097119372508865504192974612179127968851791550898103460435036810573506614534392799314437653648635078120559549769250315732848463525773254274011752056975325569126233346117759248838877858400283909144533106912029006527122245570299757385203388904519710403592797399270545950831759017319299573588940431033419550902541656738593743064021051883169697613140136452250435074486155306454578692618933026628169043543470021248342200892991399849056648824103743915756487646432277556633885764685171273673168249430772621002494925232695921606081729449198702963125242603964694496811069148827976982366780317388452896055199910396831481734086482775825693972559826541843866211987976218847251988918854154766742300687376145433554395867027809362870569545965732297543238638508351592187797795643669929033006755314648036990730719864816481324615903135620173923036269777660461943945368790416190725129450688184448998953596780494863517079367010485334977962819471684099344886936239201821988669008805359550607181950942913490313182578617110830379532750218080070378793981119752159631890543391553045520082451936379806493706523982607757064699703721703020143770756707525057974856333763652298162769171293087769891609279543725272951461759078022336779997673830323436932224097326607306189648804219559793174863406603441238885290281673299515737258544566914391338851405383025904160923418855285606614935066477703978802065176649009346215365558102709297390763210870819017422206464229418348092674642419412493413643827934781671682525433523841377494093594310563382305886905993748557001407832001521389984974539433131487311172981468212199003502437149457796643955267409091343344880688145548786063581122154555437178738553370784041320026004661683871579235275530764398754722226268326725109795687105110707175853592991810725820833790870807232934196374380658865554905557525868393761065612023250893787486211888301256086394663745869345685513892951448476050688304547835143216337780836160606842438961048202676803067832518920919304427434114992757219710929322798902987280688321597548359415970949533360835977909114835898236685888608947712852080184936883315745669037071405390835728465025810889137381882858434755015040267363678193461554564700036709882864489817776957367384791810589476593493040652082220229940759425745248150912697142581008957674966542895987775702739495313634254895869239186940254533238167208498044750039393545959565972536136966868907238571572702607646796837442375026795119284642980394106064900057335293363047029376824027404754300875641102726207116655447115592079438510565579164534897233900729619405105333242813029678191911125822499836911190829007570733945031610117413733129131494822970438539785327926089814377870963979191581464635581567492405836137144670276907713444687943128667780023810853183692131256999928021948514118944737976154226458277498492604770166799570011551828309900202555718489190095947003377798014733772850973292681073972594113101888118274178779597081409663585064464909848046295626099067863679963241231343734566990509678998238638338340206394753375539730450902049019729050206235790372709043020314156981242463066189830457711163054763251060603903724786288868865360501874874029354766439409322678698548881114729269133177710515191850968814344207191870211255925704662326670670254528381240901504542954663939396485313269469716589618383060213919886879900737030657713763683877157578344177936624472314574292637459184337622631656799328120012678667030545169664844363862035564338508499819795050132496056072760589331680093658698779533521868317824793762227919151733440848878527591598231332098991191189420520792619184048746912604230735743818687153756278005585741303018164804976506738525467467026394632754227654873897112662258902426578772518750611618111723040769269830037221247548905279402912003843228291789598009439242265209890863713978924659421037618031597673041008079935255279672437247422487925759093304015341964378151253673792783284114593790438763088426609612990233798366376557132947655145188157931795717517910777060161913936104642661478328292118694271919269954789938088949306190258262975084477664280618085461293131522423918841560682446001067758799001075147104602573760707097372066954890736833203207455187406697415755187829455405408837042389407209550253136508788114273934919154434364079997032994185219781666588923444027675513342965795229629606937905116404405053947383997177885644030468519815578356367909951187010438039834171369454521018281331743834817320948161336741940348583241718514637930747072185003574906544072403341407613631634012912316591130025350442829577801522777578392035622329808568661502015993925441022770312356997055152795358139987290143332101361015611733663811384458616937557239136688046382016980209582927753827926278124992536352519349675326525129818513301782131043624752824203094908737518892159610922303969470905351153297059929054689139167687188187609214683476414858680510564951677574600372299107361856279604314521152328374453361120029459295003207365711407701048475577591890177588737743431696092957915251541165119526424655592094789390249602684226493742954895007867329156904080290469234312163985514888334354935610317783590019376895019778436624550834270681930757135931905505453938076242645625940577178246495664668197662877114010744869486150489025747491731285523947315300153871406043414216858735260890631569009815870333813238727500665598930618313059983156672429541675386395652934408520272390470406406938648247184645706011881595628280532494031294936385573312605136747808423782385598501308818373654334321300897387792297073772329171061487197015766215894469843008353667254978718353805866680593411486609141964807665113861996237297991353192612980269567605555873154183579195240105443558940370725987718884825467312156153237970595746678160350574073524428416965241068525948388734586512423796608153950608846345303370540924867086772892646014360971582757708836573302447641792398437210652112355690824905629676532842183496249315658903057330275679389540976729177267573651143809553387291225372221417171014944432971557547168759150941882642690715551666141657295493758691578627536866831143878219022954782763557557424995302669866199664588282861082611581945399415254215050976815554670838849110851575255635216050916759477464549087500429905210803337009510582201441382613387282708411666721004035740490132321093780024442343467268851029366242820602270250706453958485935296083181735819266493783055729075625849133126590730198597871098010684769233930324131362983724958697259076549996459793857008203891672868819011464417207534705612085448610152447537878761547613615627104125895967074315637626724089655242430446929930084832112172981564591713993906538714754803069532843261118412872079751800010374034002244914244290102000783285877516089036651914106081426869549568336365436875546456356306524830063835076717791202391112085623353590086368103610153623739099897005791812593323185213697236029638734756304186821357496892658132903264789083945210150936859070536548962526175599384389454068725468563061562647263794715521082770960872601219737132627306848304600575015248361479066947570024915070459852621459991437186301411511487863196523036364559363993750716502638348034424815148980660845218208018356229601126499232156334946705697550733269422771963763206314542837387537108982877010346753366460964414145969243988784630572717180798605732467997668356152539132212546906301585861434921967655142437554041293999501662481453861414260892755947911621455449902144005685424017430843456597777410307615497708396271522990078605370027946494431432690081021622362323039876784527560724782429234366684508587300642792309121442698804052030932133720971230264420505221824705149159941009218347307646069804684471575110123560235930146970426965582424454502446998899714967456813910486882826185697714131233932493454741012131765833151558755025195555886333979113619482295816752365975132996931368501884135921642741182650595575904437741211608989415142773746421392637764224402139563801207837277030742367946533305755111229179036215990217785212796595338171490316408073883096154182680887142251116452412679385119208592537771155480426675940415941669120342949382123263790608390294061116211377495293968754013388860741012889543240174696182172424322699572644282544065866989751341561763869944770808763246871828534391651454754696716217762056267397595843317654856064129281728068084605745427116129441498491294301601960914588247191776475235951485571311899445545890938634143557074890602197839942047243230580393063689356420921926923871869547386021185243243192592047070921185469084041303757837432628858341072336777627613180022130395371539387911587560676183325961468594305882181837044057087650347979706235759295547391802566508516039294544398018486857902208386115931246882059151904679965775820133467524510490130360132589390860906880907361922193925068259141064625723894239807278093872437463127221466562772739258315072359258979084958352170571010067245563414484278576123609372695537520316060754468533603123817649659260608164947400179223376449552765334225251197885456835227761287478820746040850394765536083622442272803812736252996415389021835335384297050712558295195674498846795019313886597050051822916729604165730943016583920869579587102665388416495257041385530934040270491014936632530033675583355743692704801143654813704564673917969485671521970281617454105563918445945305931606045019718153060371407957446801835007053676120491677356445063384124670864932578782207362100055487327628503521725064279499408594484947257600953574759444228860133147066366027287453986998503186383589598454872172774275036409395536573978552198023368111841139045177929735692738358930072227825527810072186164594976001739784366068766616428126274150093865524469244124890650794038495994603227595479630278678980422793516089940638069308988965119040819181150353705589039733700623351668720645561501366420399092197072105601134498569183368268038229945859311371912521605898676479162404408877255318478164837467560576323760441988192518066569098084079140945303771246842442516314213609912105644570458630881158277329839424147802342004571667220882286928206875994565272618387402500100441399902836931528488726674212795824447117684174164066136600116431297321899486106401743715324822550589045040099211762486779523166779641125885047560334178214108145935930495370797234512774299750076714111373559694989076071460617162399255105454543704684573946109840533969048511266511166336467984697113362286732856936128503086686443679380635407539932076916177966915452468514441375383367830931876279545804181068869060934280007682305135554559442502283075305602235145963078152506519537331790446746837241390172751880365011392900485826786771903374406003765275404034996462139971195256240593173927628747829280097552199544800328360039168484160312835849576744465278892933447904057128712317364775008999293249868744404547938751170624534803986805178817593615075029949283082005671515425772269584187117929330689914960503412203522178876771230459563398434595928414377406476996654782543106464745417745199089901887933535263597159187565063035428276352857238686382933062856168050122349248916751424492068537925771439248686557786507051123247617379003851735483972927690868646218683232061386911787392949534832553809548756120716257270676377444274202162168321497772750676742215006299320842530068660230574272035593468074639458666423751405832385800244787650985673256103801176845584551294318544968422060209226228109569102394092139147787147369428413731999689428250044673242936745634793841087335473824738001873002128922363987513222223507276150315012875482844073762388101357902154967105197507382885351579086273527094512331421119943966248074588237737294628697120485097116833345650849408413481484278082525219783293194849616440206643071967250593169811688530333043155080722178702840552198734898796724380471793784088330902781972997419057591365140273054219237275421084838102704633065872484286265591993081090393892255894420020926738414770745193680831472447600251704600665955546280282908178316910133891547988600582219736293582895326412745643498684993123164064443885012021850015539403022213626057833201224879264128527482592993818649104408073005889350398855817007651151961582002424988377851284723872142348324492624100766571154212997960433123115273748169257004924662381257969432047974866975238763372865443044923804295925259862640502248646254049533164241458283675974003883387913128060103257823694635436197836503410067308395362546006980528164310985023744777151828551674801001728054447004071983655662688659383782041096680041187635841031056135555586872074015923143089408120121932472199112051631428578690428476210201623861288317067427080297349170510873299007751310046886041591880367389615601806634634367357828557953489759474353251101982463310232027288736366778955022093818088503830303239755834781233686910549025400974653106672994651110656332401467435567388846253272667170600224793403223648058443539923083159759762125176337911125512719198362899519034025274162396706503037248562580338311633822016501400307614313236117377448763895494667099972288449617135325506736549206982949816395185535231821710938782006417520050532037238394064627039323133141898195089943135735682055400739984402000113870220683498093680327784478923182659509156225796035299558010782697270064232201801434467862658799605954092493343219086187451042926160504614368290686946384037783683839668378271107695179790709037762215036915078243763172088153852929514098083588555066453237971688053268424835531030806170915164635139774485360560111318471317729391725407060786353138564760820826771466560695732564119076495093174477390015508699723381442611869574304269943465170803376019654392446300149690999666965507042075672306176233443287386530909139211081978926001179909733998201218308535545518201829056624746549326365060381682851124341512868324647537684633323562239626888470937049737315444965517132535138924271633298779912631039089324505363384258759367246021001824583895139131003902780250772460598231076791728837931417877203510962008348657432444000328680024596983026574778405075076169351883133211122769619518892122651967101906582144049612180952988918040233712822324798459527094811211155683219565847660776020534434505702960081275142581196858767860796030458238230028373314710831110108562798383873085559843506810430337194829973000006987251492167393065954361486327010684526935642577224168796410115050795039443662091563928328065795133760161138640637525567432733839355154851226492373206479435420797154946962087537719709015991185022317831527369173290871896637555340101738794198932551569677151895190100603615454860526812770663696772055640742928761469133799159661924113729564066511414892167136088506805425821637207277007926191136856310120634496083375222716464057718260721446319567969634999363122964878015578825760361892898568160231833586517850130964803824005798730515084986859146502044267708686950544641684017625053432716048195347627888313865257210418471954003138020408318276104814179914794783594468296945551672630588285873835346916773728245979422058921373843437590089377305966701521454274755316846203214287339430954240934021920494347170003359383932124215929491562591016334938530366407076300324761568812720635928718171210987474643837337540640443794993306475682096721768995873714086579506497375065779814024634933092578299821979654946807509429608721128339019989665490425460388534795974674413097926643417959568564278742596309810078652962958032569976154020523384274450883485860728511520537257849671138130990388567006887237668271521394904848952761405036159342339270989414967216439855711884317029004527041046493342302681591985231356872568764944882551322820154428167775022804055532123640376854148401253571416771229670427248959024109883702255488076305558626833593977710847804149543542924494029637119752114816845733162721939239311573423193509344632496143304768947159615759192060037974013278551733794975009956708896645157529141832095354481947555029867057080360083755090553637482770514304537255197880951706697518456979289815808443697083379215522359839190070113548499812630054550157243235608100040576306276825659050467323104219878471629260804650865201074864752968988632134477747679583199532276104354849734017569517758458355698856325635569415146357407244572406403560443098348928281554053431876086797968123454134938338910233133671017001085779445599834577702656256014754742203292385692417454984668770417092942672886747330044624625799269895709196095416533595941228599374745108508526015077025784344578770978639553470496428061457517427930653197669512688565497794717033476228528040877084441487248224399620256308873506340421332487414403484269940400189020520913870570516115723166354494262892077514864597923816164305024499539488350795736039654714671448825032375769935719155591945224554065680546633317796669254751557564633273990166951269279071967979829720440525824424553025433825164867256839013001056771512887195900193787859867188563004463317918815296346726431261923697095301004898811933042534719985952855424178985240635689110443470730003493483860506805404269878962014429047028280290940368664439513702105661733938007465065523652001083898123139115717999689032187707031680579694627033404483003775340728221630235503277429853442010175854484447412792682188178344259447169047314252835626389192535775734593981936748686797591407379092112767503466177802401581844595446641678675246162312030507202597155567388233870666810500107379974202138572179905279314080517537987647958260927075530575174457427161807109583012957124278074213577870006227079027274268230906661845483469579507571356059163128232800621179657708795742406070467837247782313990474534418162004982563342713362027148756578191894704961984489049156603467805499018156182230159110362470399579184153313041838406059631565500148772513482291222669268356876464683844834167132502274599947274561336789766627799093058256906900750937157169685931718569366350367762415705576389370056589068033363807886581354980917338495860362213178228127161959720134448111664515451005961141487182662727611461631960360800427686839495028627611032257142340876768889109506951599093748371478604711864559699091737126902605581586121380958810112058322515472082853663408334346276240653417876817634094909411884182600949353225525857915023730827629917684253350725034246089000851781810922261047437297813334684472990043388246271643988184715057279270844811473006804075449276203844635076697016263733399080472569759591327663775642313876884685036852460338506281097512668278353388176960869388088013050771911599424926236457948561020976267022211932482550345531394325492315832771589160148405446699043000655853012285638272145807502297405023833265995104147498269962785421429470655536721843446327776596121217785431558002526601461335496067528118679515343405434459203172907770063233286686672618886063188981261377974043187241988710208477928315363536794190382980581219092826199872099563268705152333051587073377520954817846312251894381201917134752748712977026867254896524991242681079779894098798652189115934617560622340133391171548657567310249856647986809328629766139019855690349585060655698109546322132600635772010538250516114393467104934284166239259613770515834273760112553540181808619219948718455412840970569677375891137814866898507085606285556951345359269483913794668045878112333881497078208463767588398423810936672973816980889269144044662071341641154893933265015459187279455729830377018599326919501777329786144661373778559160080561976847482218752694301969658129499917091590429187787606249433217982625514673356981515170384724674470194424517140935912763950128309203657069348375214728868176988375384817739614927182434773226476522734068115165427159109536002066456935984009946142349669748125420830024055916736019246003663465234124794587705532342189298590034722045072381805588859089428734503495960812759177042485022997788472989217081765239097829994841367052251565705599737045396399126987132776880534615132370380726575157429926565130358493925032238731910949609720839008630590756341822274901773582958351557981155410399268028824183855852752447071001759831401212406728316144867843880985380623220218402194112757120833989723609153210664750840938800804352119045275950703113642965887574260063985416413210929184450905305799287860840963445935356746340145258302164206021296447920417279026080019242951665940237862419414077709869726860886488757863187791632778891879908218587410543344131298768327191549895717314596302749841248057139170616040321642717584860865381551359899901947221731413669765711756368191764984868580476636970627075055178494265610470255565987277340182379299131383690333925964984765561848785902708436076709764478725875593440315625719839351732533575810946564036816217954456204655924159889810974678583528443715215278027348353864947937028871615439845433092761669688329921806245826230676550189470309763360014482800589644526651511406953163444535248606871288077502011450422052941509145757146500575440437202776291944090240301916979974155168603424002571771750492942193728547076809865199330338898525149998927807713994178546914934088692943504147663961271281256497929455618799152453103479129411704749675759272537484306023394895693417011753763047291403112521166957863117477260915868436340528979567990958847766559593710864857012708026872078091999301838218908184019828118322409543163109332364235066058392126490496851307361715469291751799602429756094910656116395435771129055193716697926737262052539988274098090878557508334720734200878085290568565909201052937362318277430506345533097900763270865457057747241920039721486061773026755207191421911011621935066826319892786813893647659964793737349538799168242395281623546486658718741065092610310262227923998206003062803693407622105134505623400835614560801954551982980708833499922229751270967336179421010089306403759289396278837472698805341511304541888857888643421715444712629308966511145649525391706554714826378458605869548987466605680708607102717957170814078866388879692259301613161911266659780855371279091888577604134750323726961235912313194917693175667067041104150763065881382422033960921533222096648995149586635852107082588960733789986287634017686240650456814715179635166149254523786138961606763001547769958228267057381955351460038085252740722453408762284847748338180914302568205278232803478991853694450111534885708079429285290830708412379979793464543591084000499699876189317824258095271134119230411310210052857387586547275801849404433013691182620985359234285645341855512475894146844532897011972210391558666317927788405041248321402544495067288007546670400487732016244677192227994907668736000572044808166080486714882069165319980278686331920264537430097537674934725534319385184001138508294666392577781659528983599317604026723468947440318100959134216129172830888860346118631494554188382843175687606548364222995078047534767318511705646402284809454107292670234440285101272733975488188643908910773823587745776259706854967704604082333223408282743428678766735756452573410874359317916113474835363873833652808961915025846927382272577226736392731459227863883035805678388771794914668307312944435950465635677023756893351941890091698513997445911546915643807218670183807358336127350843244231107963248409710525492250383030860782925711897199315703393312739020712539394938857410641791100336755986015057202676308893859101013834657642682240513455285221978954945180644398070963413022004480756688802885780041249361893915103419327855548067658815077721359421361268278467092522009060482211130543798643594309621840472586936619345490097689578610454451627213664913007191093922218202718708629556070775797594267112419563370603519941750890419957097295750989909135460278868932644799973413504400768243284172501541702043474811816605592463294054212075412715052025695845539931862407501966740254520532521235521986401718207989983066521329821477533057858541110039035191549574999542512918920976191967654645617188731399648871430845963734391050927872883681318489793803139347231760701169238526661313790559356652172514604695799941683973020996205397583483077919049406151675031667572768749677852805732494266404503974497240449126274661603354800031008718703092744226830886749439629667952962700260864445243474062837541710114138290971491803736339999177691859034787835187851447745492746721139167444941404580300936699305825360080830569656756380377094740505607180322143235515825463538017478082573520282052630524161606254852699765704712543795400508205612593416224024742246620519624835617171163678996395515024122430164717908595963025182686158526604815433609895964049781698765024606479944689515625083079719395168857451826946122976174395322226290683834671563547927256829711701254454601255057345989083723188566514521244172599319756575908495341839619547452808438062119895487448422551947743841135528013816134687370449825826917423282228664363373473767673584680603784080685702221879269528345761401988331578479023149872209459724521190675341494795813633831121908333175110746932167139611850160909082497025297201594718456221414614393897112580785176599989732952895981700366500030398581438602646602250073007308020359191487463048160005587170380232972808363980720420062404194893447992374797415694536516721537368126485837160863384781286398896892046603503709082519521773016449138814344611100306225823783102268668425265650198948101818481883687596922095119190410698245856131537449845598792741759874304858267962068313828522360600984817886572681863821683743105427781479785430069596003641337706227282105774605764825990344905668119586956652457329388974821926145539051899218684541126220342294412570725207958068502482877390978506420888546134243012189723452908481302482237060075185509471514274984860400072110616218680457799673048701389312859264110636084978433693479276834463882856742171500122630662085945151772413736879385343583441201968260735272823989875903654899974946236462316749768675769767853918445496699362686610078317188437966760517363889393894287499310069240445613626839947625763775236548559269469009832609740712782671599911240295220646930819709627683236895825757377898697842474293781404181765661073747554713342659856955089889595132511514771739871428260334313693958674828695361916496468493006270922185077610798803039896443903717091841468684334029793950814449833929244863400395078281796102194429691282030811955914587453049048299155212427758433279979493273154550099691559137343538026335552805276657803944519385428488880140838855897065013183380291180327212628285566333932537449616373207311861153792233855783983554064714262788848442088712059791061274914070439389408060495282664033631278836598600174386914609660684411917620099431515450147563503982300499176050451943319071729259062308460066151045192712150218548846894319775396346622391795401954857989649880687010784397559764584495527307396987091326228895566645796310177139781669883671270877686306848453150799432230575210005419589119308596270769050478131314207318897765710347612991746662180419706267623829302743234830384194284528965264126929511588369194297889327068291967545160586294328580712628057595063530000221308714747943162454007727558502668883954947248953747870296753052854234333580111195893827579943964803826096626218231718848342455203700533646026175740185882295963680319598526668421216036016608098926115468253749430769598368420711660530825560001753305663101281474332051166021312405618305584501248800109243488069646724577667819109793191269529423973941501156217465508545109363878926226679145225414864659127964274235697282082214566468804661561447276523174398102226402126459364092077242127346913888750158635008827887537500799270348503117008885444037156159720109369208333407611013727916810685861664434752703853853385744041457007271185164068392523991544843971974848101416181190368510822900481529642911329411994729494821313172874247550850330735214261458748639054891835615729835579487346015426067313931471670343845535449724153479479058067137045237152073769944289724725806232267932346234150939085850549753373452551306228902147617458924560805170272470691636546489198054416939962945117401881230938885113587550501784149648798690267981883741034932521870814692533763935128101332546869291396732678825635238446824949295237726702504110421242178852336417921678152080156084299390013429198710946280869356263285207081103081271845733137647126588445066940957805538939417746082876824945083938439401547511286222987379440736940874504674191953195945460142423499861705581043607290174618390677705104132035810147815469624377323086390474117211381032095917647948594015297888172709812321353343720345883536684131307508746205575828813821811075774284076245000513329738967431884881735964220591438017097951451796174814575392330191991604323978794441396266289491802330522940364891614543327759809197188146021577584175184812668801841349427482394401065716366542790072444664042584176428905882853224626022435939450824611153083635977591281874662191740904325452044183368794806231263306251546712946831189573616197536257187181886087666381425718951480267910222616370423185785232479939932880889640626571670284997934569868426082059245314119037476748569838375803999750723544958791071704404537947509067994276042453422824884466781755317527280556921423438257420297686381713303985338434921471509049040208192475797949376551004323008868209575145257463615679256154873704429461172994380408250090373394829033507119433772564606629240748042722233132733003932571338205359182071855875503790304995474266821783450447601288507097717091724112692191411187983668558215758834739789336570663912417630729335093863635592450378595357240972078514744284050030515080921386208641914611748568184928332813587056689276616670398261206136979592792582568655182335794977281596202016257097012457616014727706438608481508953596076448052526510208492711092994438316180821918689206161634790538888781755863767259233351186602873600828910699940864626116819195619712345260875603857335425765018723729368040752679038843913948876076864901181289263329038332851812900737525966835331391438768113405746437238231709624716013344751147353229128346312582148582291182140803781753484118200304950141122618835166758734723899830565275607217181507294694709384313182219622713187373738607089272714901590873602085255040906819082940829138483875080275062066323335129638199605013790280343642811837237442063014011814939195983633975057594531774092336492809534423457149704593722489604388020895986611176560382339094840554026985972046788118256660883288566026540720570699508049257955683954324276825698944910409009932234558346137788391368714855741067683433446689515688294069980917647524090093059949345458683831037179752274587928976584157046089328344166385897968859535515696505725470547894406007355148918068546113287687834979354812390755235242074573236470489157369217120183191525301220738820116710984038895299240948842712396776040056614023821404456471243445018403994059269063152104539308772851445960392505433389640638538323886064132114557786235230332171026594464665949253648298059603297784787870505390581492481269187086652852929525132357606042718658968224583667365188073127816608333142900601964907810224333272712103172091120605033361138456824979484050849250131292568160747079852322149541822746913317584625734120593956431892758653939571315152507826531055910229742302650876789914459389305894978049287026933112355133930202495729357225521210677138261166683638264996161745924618452432788164590401119665914950028360766808519007056452175940776231514084297947240384714820056916925072484858903475111005870784622134695462610400888263296618529177484118484135743852506047199880439268577627608988619045753498506949440853521056065680455349539689547049596811694476837095754702994823250810349499495565536598190158218843065500214267938072632526347156635035187773499096574945126740746513607354241152742786989948727842256802167904909512403349221516372831241572067307609216321418382583543558520705804692931992697426857118304874559747493957969977187537610769856793416272613345487117439124080717404027842318250116024124808847225237927151448542750858618130787420534875947046595276809560533483061798355532383001763741710365048227918671222893851586400087951081391675308791273270947758896695615019406154431280114487650892358300567735449107773180613480096789944895807301428668526877935219581837890136186242284992441406360533524007999045415174109954345246891258483048296535586069146904267660442138384578373069487338812553590790319801028364872518375415748456404860841858266022929375963355243601733340173730855224666670070673453518331977451811738612394469396512621118854448040813168360607533792688173342941952170749064079999889875075200059747967135080876408520402650861396134270019415428145579941183034280053663705262248742791584153460462178699136788179140758341687211917895047902848870863334596111547393170141851129669178140635859707361152159899365808977291375380007415707608795771241601367239809570263256914326737583742159808186670684717341770276966671345234107793462015832176292880532070403322107635131784440260354575167470345038920886017684735745377859091995649370099340223397809997673227761625874285500319910643068458422807452841422876662459896597587916193083102138267538947957669599534972385180830874976504658022520515771494653892785638021445573333756017930468728561201559902041049119100656559799743480877873940146399193294813787643305690531946521661250842964103594497864114093523888012366687653601599696377615507451807739655077385243011267271679214046900436246182668934977606498349255728132257347907787307141799858372320693848690682000602527292157676547998170906293674533853766243317540537766808400586612501213612248119628844175571295243447567821053936616988468193818453276235164161610374480808955063978041386083765369180658117291612614032586752576253172789185021633320168452487785733873189307056461210761306167742534158485783310803562850993518506769096967073361690766153051610891231169322254959717941819874159482580276441304233603895866505300775873763445152962380366195874995780622913314083354872416097371273380968064662821035335599723226529960394276569215307700990951166122298711865724346900978005888515460361473170270182393650215643412782005569007737795720677050916780198792284215723761299906290773991494250251846253733267142469813502419847640472225933783953044768664361315161610579655716661481594853053506386902517903457420376834111934932538901298800491310781287229996871851069906991862548116938555887609936236508402258824361171051725282836013366863848608352487741309569954842919392478629833734908267780185905487824681387660631415965595279613727769711391079933602659932630585244645253826714187967685270494946659517541218615036767772206901266684632100744404581795613680414524377192245197612590354680249598602388910130572748978884485925425996053466533335226307812906063550701114790952022643714261202775385213303173897580424766111278791074541095571911725567211392291150529041384860345849065632741360901294657542872130668084757543949624851138790324850912544019914118038105045272822138379106277637577819794415683082033908636218432880766333300457608248760101948903253644899198402525834042086090099577050463378554162074331332276496922289000211669427982661193214720773611266115287885440379489500154905702326244948919329328067644981081143877965336775696877380162097421854738516510868829472819302630698337038957341810596676428822433876367186517361091479076519743094925335261060293461064151876815828122227482745886021221510973946732189489574940004821412934710376280463695576991057636034859642765156059861386322819668325031300857810309302379654103484076349960185690238156191255753485105505835909338868249728460428182871833968560789980098550122920308218154209053487468770246003773875137519480056235995555870372755621451574748276785609878316818257838993358376624102183960019645633890839349378109507594846351093734212611752946554043545180756992050232127191123635616334415457088672558096159351167110334609995451684091890644737697976738098974237339426180271992352326697021321975407602014798058466685512750840786067066196914156717160619179121656158722887441591058711446512293207403492640284024709177198243308013100191913618138706919630289682946397643870278159798997369491295875575627715606978385200753654133522396295036646365368561795992886125032344291094194031946661424614752126543458570031835891175840675657942158745775956123832639694981407471317584013057302576058205937385543862852436241823774479103396983539578406610403091497728969159851971781655400044164888757417702859316255464217313703285074839454960855149177950390877323359707281252212660122541944647603356928605729088011836840697745042040056778741946531462543665946547645504439666388925674310860017223354287037711157109059139878738590422186402913433957335891362211569960269729163725651447933736657489681456212561257024631126459085103233695553558989129989115064996672583532975189171432938742904859101967589170844392789879924417771374183415746556511179633449544387082666738351974237206371735691463758750806209502055571380262247065981552904390286152564264868325227392061220876601779839064247389846764202799022187622838430483013558168516397190973231593473407400063182898558934076370404056500550971848857814076352096233895077038038512426391787113450829040097477673145934351325516647597143570765829931068586876195184652279304222790927953264156532590839504577010036758614667162365634887653610195785894772084286218270506056846935113150942529832322791933143682285416180828426713234992313401581505560548831058430417072524178554169919751724608090299041667613149251486836860435848615730490551799316209707266427941406067975667498397010428193044432880845707164283358322596613023593339548160011628873600643621943619487127973045591989016952569721465962631469204134331821178704150621628613600220621553431685813136380497533652543557923013325904635898993283992289024456916187874312969445985856752264432914123010199534151507155797227099941194849139582405556160048085854071560941907462390177870190873114811770704666354047050626701537340161932894101096893250906324680879494116563151927227769396681417155711240159013544774355404860797928163679290483555898601135483624761861732141159303136091558264441277880343096522228576391742574464386097202740087818474864824198264088195759796117080534366036756073838462194042055527691022915412065840639419800931555389040430036595187846142566712803437328387474617717083775038923192651907617413299448746246985762591439377849085388328615049152794791127199148818738058864728599752169691206805707681510213955644396886133013514349047874655167675244159684117691680730096938155672710625238295502848345627412247086420995658688386023909088620076464904017137606150628122328761063326290387053041218322763804178276239787152071634270795366916936717661319805022009539958167364952966158322668261949290981667521865503340815803823422256904717994014284806680267377509133451202416334079186980149979611141641608784289653145714331548990693118801179844224325755101854418136469567347054914099191043161961893049480331872385635622079641641847439115188292940894466957600910161085065519673060739497345407659645509042665678346029535249616012580225548661660953568928224743197815070816750968045048145918084628684807622927152754129693054003072977026636602909014538009300812523940494920202585061637011845843258019309670358598972951249569686917683479616402544504902897455125155046158148660347098155874747772592680695897103508615063396293809473455558905661936520335591454554531182469149031056520419877962363597387059861044588074944207468497231206744839924127643750016287857128427865774182304265978889207508943062530503551925082816004018434771100032683947603800947418752775127768194172075126055341695469597370962340124616765380655038602052501317390534184332245802784274384767049124186574345970961681150328287323358891003058006528510170421269887720212485627734384261875988621920781579911054449403234253594832513320269534585064045680008273517245491792404832076192165021142498381049571925232370687541440596283136210647001552384195517110945717460036340233250230799845954786701744740321087489685538481165616287836367053538147282116504742143520612769578585328155170320761278668982209107536624677777514883732675009276873922813951413649952221351670321468561137362395772823475232990957082321585195148990166437312542500271604558794060812966928212664650059578669087945685230438346627642741688690722682550556482510568457031165516984905167988557551196223408117183489535357512576251148915168015853018219205902855604900166647452894039777209761147704478782092378032744518228680951410861916476087999494911343956289195330188977303027990491426270251879793460662767957625966215240510582470246283241564178390616724827760665069648634690172821986455580554094338751910826408583822709691295163313289959463460456028581519981617842039237720402980308991675387389205499669616163911025818464806268527879259552615340289724773478835703696892247564904972442255632472951062004072870407981511500538217402172259168265115505940416976827118943462363026266094275144470400002949732344790880613358338470050583437173682543113899558469338228729123032782632099115747932747036212688428957571350571848255854284746590037426731265878915564624195504696021077372460000669468948143493548219119821825900171563348922140327590778876785929743352001686323832758933077074915294536692834297293293290807206336756257536096280213367525592402495300160382398092191793070405558639426793530409587139751159731436756854397292386612175638573089662550570842332957269048363355160523666165446148768420035630053093961813345529315167573204794676456994710463706572471277432586839471088545105259104383601102439132925597016398212182502734236187579770778325217405459538578981212959356027217537840444690089605786028170594816485648883426373716261419830499727289952326596156555626482519858370998808054012693513352564617838705946831864882580765993355280246891976652620268612519603833632069324083180311614688496787132530605780883211849058286385249372864588482686276886772245905246198668376257802240516875828131523355505936264223414332278752066462789215425181675569136139986900358327030111261762778447344201593798634204091626864388783594773615781489801116704780184536824202950781638541462792639953642890119773402924280492981117578100567275339649146289550060466019795105531201710642314808179216735951762196888285291218532722955698286870270410225503355139275635006740066218409446251072457495116052943810003119666806702148666522409252480982244593947526915889294480783902232461455094418923102612877330177335333144725797557665289747209496851964725726717819796372731010238755451453891800088173172578166822713285704613591560748334868206823108750095773468909813030592936380717696659939389151448892684119850642850326044028766467261716946090668841737397848355421646579535642861212373850179569003260991981760524382288930301305824935775696191760558700329937288449303736910741859653282280652123518522359669892352765459069205454266617512370482641882503242439036699409202808027890830129080564856132522477356399711543378669766271323612335722165733613046005873988857492274944675816130319623081680301386305597732945836874115623838090204657634374475039743640554530049759168261563382341494240475239616801892611371370242045942928456976948356243213327968037633370458138505473495677553672565807086292218154431631542043434612942414729986697238066771908045268550537161528439971308939286416423318491306676465888990068144906645040245012608053328711895131400144665897525191079120041631869851032338413212499672251366248101449088926619463355283098002342389416913567942923728622311854698915366317497264916283167159143160334389710465870414394242679160829149032844374372256105491797316418311083213151749054452672244287236351538156205802902866976722071283604257113461841966626133197520854565215446771824916971087007221679360938164487251425256681394577036806549873993471181912488758897790707287918761307689122483556131445311861322249781949200880288775111896819849693559651413813614707463620802805751129567107734516039603894683726930067861964205846351835672784317932200436649981821931351869297683379158718135248185614935045636254012463659496877413013110973491526757237403922214584819161345776273586027696688244230186918633821485134336984749302828823665207422640645934009096388785363777496608817514680325464163769515078142870399335653086623603570205357501713198077635007751317362649203938402544221537268496711901872483212003702528234540213607511052849606488134493546523277986194831031402220012585105889980824136456046505367956960301701327455558329848755187025924337924110753965813664178237905509791633542661853552048362198828999784593463163115556033379917929576485341977853322214747014253360913986657958807648780731097802628584460105346677240953249045071747413436346718986760323104614763669745773113796825204116612240310983786153729289966889639043720785757163518238976205897276198299008286457910522596600179613469141549319836113052729324139984809932775156728041263694864184583286829197866613285656011190092601968006102735542201316206060749217377909951615029992590215011165921073089627146796768247539566793512223446237601407439440681463893860808292636849639894999480782249000481413280154496385198088734670534798284728301356247181947517832168803554424526914447775467284157775572507468635326311262351179266981254523701669046394058491172926598935507093690228735183236660461779052414900747835710536831335022334920182136225353966802023292083038247847532391871367066462377537439024457724663716137446307642922724395546339342606675436653839519144678157238861120379457373899478091061541798995010597300485808334502085573276790023555467201689290134996735935417290271232583188646168477230012507536081163625282957268340233666409047783695413430691828432660376953110586102013123945895319154714166587206766810753243691303404876354526554566284239156574492245311498882077759110164843120908928166013530662422126623210212813979297305713153691522831095806711720437873167169911317447170149247615123258090727507585728161598271597127033773092932545247417051106749847739833092355759142580403255426742652825268588963234425831522154250008535074150029054985852201396335600467259946624851489470065329110419658370428375070581020393784001840428940649665532310577200134770860327188087482322381466217858332129487137149878593354830306061534403289869800332677054459121436621656838636404242909223436731411817801735893273150065734928370152856285003398269583771130032965708030300944447613433108281205677056707684693801625297678069097278052285296063713508467749354911512048425901197943947226705293670273606644753660705917986702336407991747726886216378064261720379535923163249984736469358152743946909978563705734897680435167139479698569161953760352483686809921259191956694340632363119065464474289583568030600007554827286684180591920920654195241218922617152747485288156955455401237236647161779659079179973749293870768755696581427110078746026200197046153036822678699710209753490258502400939531809492392522479560905392616913895535801318249492108515781810980847485929887363797346477420400637822153306485538330975959400186974755188433816029845144677232931508928846269491085023379447457368234372772946199457297920388306090670344282016050333157635941378887239686033063410059132359143494129989405541056932067268733066688456362024018246579846204127474048087201483504496504843269007360113489187953087079100478040332538139846691341750075187598686071536879353389346305810304948900563221173173938075344034724692262614217601501188582672015195391189470195469152706088213277555413959160487837893894673697513801847872389942993113809637454307556464419659783506972401371643994540448045227423652152018367566512933456959779185265871763450201980087465084839199509787779252822207587912029178284495166968853316553716145190025261151825713639311549363221067298028726679601092265896599291774992161584901968968596814764270249384765522567127505082445444682087722115874668271940984047938506512709818014228713014425700542803017900559945203723020873138687037910258084325660191291213421059872406313084090087687958745165709758096061899771401914952453429845489611416118256669442035445981606099036687564287774861905974250669819444835195472341060522783690856455899503746851450501387211992080268515012796571312118957300910297521965633157887717368922994293793898216731194395676770912364859526714747087388620980187360201029850809031506589850932835186463277499621549936594580154654530658960048256066412290150239285612633477873960033484541033193905581042781739169620255408265875623239702952576088186760345462722477839776431761157594497986421339994238529072635858532759874138003563552111028683186621100620097858834739063081161033451268819996244199354521222167573313781917100783911792204580460336360292823730549805435823570954157879711579568963339041395842219902027789400715622542135981142202372672949813972605331325789578712746122268672456453259120672235572123663811394413291434351765780813235223185181475605585288445776186629069901504406443478338428784242676610867483176551030929458034785525363871638042722682615032545504030900370710959939635817537924666849490138978149085828256319485160947292033716211697308324572854737705987391653520673095185508106345824848206650024391430368237668254911181155254061497980391316856431134577027184088737573141841137853460590236056361984856286600925861498072691587291239576089877509174094192295870980017359096738642065697741828520967338923631902112292193378298310249871032172886467517637416380941392123667501351768933741622431624423044818937965814901284470629788260968355870076973875066632162743070775738857310730571417187819641797489522679784591293967887612865889878425444322576655079929512511875132869753422905226928244656548120974250146562547551032218208549832103492046670896913783686921846558657798642262174873650818990032454387168138505329540994129672528088178819002771270483359100995496036761008661222841893205980525282128564168054946044368030304925703435783443079759563699554740687936036425119117622800781319769847468158487492866829386217922042285886692608139064987098187609897981263959618120564571867953423966591489146900159604438426942828513827680367220583795657162659167636819078107111036915491978136735126475345347848127703393640419700152643860303376474089540353371219480073026952790964834406834334531361958152417682051682589413337386125714341982577159290496995690477419558132752657443143844781474209393988503663449088217453405612524533286712306309118685899975355494982779561021691380164000031991652869967361332285003279001386151279387073448120618675627712876096417059908114108456751225256667577196127154924616051791592233020937797115668641171912632701815118676793668766500060033720286647834597009398554693174012747941355686781221376359599576683491752646491373400765301792929501802517225639479913242442647360042509510650726657405550097821246288168602448887233989694517809037581602727214764172220692977481980095289002814923572138730814845799307048274769318370307738428534062947523981213529910547650159822078889658840670752903525620266032000777146907024361531569323742850017320277775927071888714211200181846738137940269931407048834285680439186297947971136496951763748651933780689457092408746851776150000922264640895683254375006620370053980786905541499761147858270716544932628485393605192816516856961733935041495591839479735978387220826680552997484768177768892777660099142924136157696201580181866938096116035717396820487850064572393483378826593576292086227924848985603018169956608850643594694041179941963829022112600724307663026007928621686439290889276933951565335626380066349549241140326730674354321929414623828276132846814062590333358657969946703020957269409444471729586526817513176465052445310919053270830311284231794086793044888145685824365567409170301256713091073253389784801283107937461059790986262172726168184955493321737998336680529522526861720104539450976291482211740656340775227154074315384144165197692937558250831138625694264709312703555281402748474591334850433857396453699572179067099836593390449703168860674734958103038189905974217789985340428834850145483423227018702683496367322732569791916762756639204054111295868492188572094687654332155696544293371275773231843842708989884631359039316624294529714304111384301114250035010425113103267134468056861910371283850071971479070856317804981424836971732727508321017098698243577090076556465007024462043772938808727478006973783218616570672012206391438561839651539857813700864016991470591507831123298208602387052532472807389131137787202960442652760588047720431721174130194052685557121818556912199907160379664721687891317521457273406194065674340686053018024952879156323328730671276209966604921032820835827462465722207761049451545469771157648429679543393784620800627488881464171805464477741846691699010960836641441805080946997511482553222913142091160686910302996878425639883571812384221781930500881305107550814036273329221040022562548863306117887554313585999147019151521315182503397135158197109365152189636466340683315955611084949086716955397581777624785179341306767741769746687664790776622412451917969562075387368322961831770435694358047587857065527566333142082104059380745976048893128972745349969452278795097905472467171163497101588210978808011978212502166282734003308180719823483013805023308402895480941314244485248138482772114540085462492141220827923922492909795365679001236953837505359174359098964332307120621207809299468066546388683592027804033590090604841262215096966339918494332851028313745763566954879412909763485106603900097309885772620941364194022845796265618845613381660580156606620283899333541947066702440208017415668196305095501329857912491719715032939586015844198144753589038148542543936383498518499922331120685538756190070488154480781572845922942960192976401409770665347664543036127667515362689678419995191476646865717419037123761060679743415395928659913611478144207444410139224290898697933635495904467353193576804570630930577686124386011692811414555156631427882636315947573341602828879924321864612407941617881384104784349661376705092578853750081756700361346733231331702073757109717318991926189009229495283550332769780686575842618859616097707822225664377739870376945808759573581587051441562073069500024277306821821099177226873466618831554953274120761499946661532716436545641364378208084094200266402066568316801323713101241720919272145631710004108506687768499806920269421176937608736716726524237760762221696329772914158512636892928648188226296456981403309946357655667324844140907769041453650760593934843507735476828385687225389201064965752890004717996883455677948189602133153474160942382574778446791638889948401812870156563735507507109021141395870575264967302736270665516367228679264888588803003105331810472250837202769619685629914093198188861387243670702772933846684227945173520220505799931222430646133986866635248836568051291525529072996326205763021531987280416873705413229127063029827769642600897023983598398247405661772142060588780495601357066232696632972795470297365405908842040873433141016062016277974360983092995581607809854219898535471009845766358505266759808653403101367358623792185175382027941072844044294910185812481150038353887718162811462719713813462500703491212129045548581199861930250529145062414076860906100595167386972926610650046770075173317385079658132903600638115772888608225121634607218318858109834289716224113062586577539143826773320410191815239484481180493523710795839650823568267163655991756991554128000154273464495619106787926082611322210495854536782277900303839306891535023824169617751329268132145735834139299403513662095648785883877973626689694662696587106850373407001595346145158376959336405256520092560033776545608069690051304011829968516796691366171909033571455081421985101297753059706078144948810455639145661654536842645459966661027438909439667754603982758643303915490409602017742644453429104121075989826287607189999498093231694008371348001073225044426393238393880143360027588854032784801870224073272165885087254868111192887541356597251531888111534485015908225718059108481450412071684326948435078680126610912675401604885414981054718757605232333739397502928601262329091137650984707210579857301404913847691644538136533766690207510196154660593106943714060746729308094536344023812846609084315174052651535764002355736436245401285922921918548502282878372176536425969673038482365846099834248721110950085425452157729322751427580595229206013963615965297404660841515765861005051476116567353217791248635841629387857862095581930120198262198129359947994281986967195895118254256624955628599634282472975217743973852735817927591893852581634568747128852878572240553810323378021084185404833435253445994016543153378806621428374898762296099530481383671803753557787181526711572285679779817822216680383157433960314638712606931761885689728529809188328634517799438666138382782636157172432564484368867416816870156496937772106104480067428918851434672829578808770684579380026139613110463954812122421441355309062934967482792382336906301197127771841081911606053983590990815604830447646279302133148012187046699770561486224323999500675377653199626308948632223958332056408601412059559854599420979784837322512294438644953380269219502230117967661135146539560762677974452366401935396566892410995139734614718676531225704423091173195333638172787440529872869468852163955041997768934051711635897098573868104663442939680610946181538247853592084849991885932236627973993539155204793059459503145369322671636484800496408112527875650489870924958699409141237024262539086728243235129495257122032615563880058004409262274195952984150677139158824918688922393238714460370131348053783443143553202000674327516116635143599601077001873989557282559757867539431384048557381312327815810920970263127756413160064510506129723800196004813738827757195514669221323381413159038721343476750997921443728945773950353993629537153640686072663654781207320097594387549597211672108045968141045852238659984756197098286077314446904984125373555185082817896872775033136479741903370053334047365631531936050111420304035630974923207076793976693025796991522943496924261573523281613581217627102415079772557030411668420352248438498421162730480864199134970107989122860721148963614854182207781044516219208842509733998040317764797961138647764807032109561314514551963311870455370962592588110132084486121558003133891744347172406873872863079905520343096208514722467862285029736306070927967859040957858525727244741781545534752530609329518405332069589840388086663481154353866151291158781476502783801194752573385928267682629961016655421499751950092226329899462948362303991994637938105293168281645672024138505923263554344182523135240720712267438775289092941089301650994496807127628804867185483839107293366430005238186151526086085559005302523626416811619139730179398995545361869926397199768949995285668880763429844846476373187200992269365566344033870663403624485970208485252656433385512106208069180151448095324199980909292005317920793678836149585791492525925192317186136708225522986100072351945115162439257778594358345261436388638161817083342007072124994700734252533265743260424700237968387806772035428388910265916056601814308538667382488808300385146336556946096147013507790707093325519792252328422134512359622671726456224670854016124813905776997736372256686906510761587532222247135213276569783684424723221643655043937138785343573819522064527033643593592796392797176391021658887774618028756625139228100386552274377599556878611321127619643105277578670769245885577717216175866675121512033231452532321251383977895047722602888637338655856892379973100634789085132685865441521328687293427473485731757188863150451176706040175016961513392052140368995847679931069681160673220893446870652734639994188538267388575197638895349041901318220005644318015612605690042518128558228039185976226466756644702972134528502193699588337913578183150033095787465667173210525801622787499276150000313792632277427380737367173955839100372343500826136854501959163403934599715202795835761193728163962334441081262361766231450742315201117918313329045451165735747567269071419660487350062053208364993918368353258835032762113964320786516069255033082619254215237950591858652718556451722751806445998119159671540607298340678539194924076143296250143004675925514893080612116204027662789498221023729281812609840555543422272379627174021929023366663402809406860753768714766119178631955690202353797445297117620617136105602944719110005938671835889928770811437015517785773811975080481176725946551742354947453522112271602477859238926348297400516584753447247185853527322136374813118867070653570982142582457166025290191673408448689503927363682463985707067301484432640793229804433564048618484761541747570036607492953860111360399398337130881994144362438403094410894853071980587876708596676817051354835005489309461317010090859777617401740444360664683543384149114404910579223501391691351749058903361606905930326306156607407464116183915308185159650808589678058594015431841154557282660932883164855745882026817045495390270720201818735784166420140676181369294677539680127451972961074505191697785430288685839012004841216904150071790594774790052083948922254828262623502113745369825546382614697194953509287109991319139165500914812085468248118900157301938573566492482242607780444482633442915044637679781644559675295695258932987008898401096713061550483238508288277611459699691988339813314424650679684774509446028350639929593160020468777751704448871733776857157833298796225091922216578500958678249818666186201658251817091702067316866656636240994596850059905658142573006758896972849033637810396851628769812921653189223380310972078279492102116225671592167438596913203695233937539054584141209752224960563357326096279128857289048762080193237586325566228808083032749570318323324704775144038747731566437735973313791380171836159350240479611991074846207035884294289318758784222596228218983941815827561093439434731077622033079046848623051342252145666542365382267011105579173766789507407974994302821728187785005236545706552737322229189796611741340389274626109685287521373985234150719429637896885124319383077924168486741849863397446951564633179141825954463876505374068124627349964288541649892058135761282838473453900264283591773628049436333567805358751183700004587066559230600126879883892492686325650676389724062095678656671744668050511987784810582489177031458244878815017367326528575510965339718140899663387316880513114409180922981229478490366985530635404020342128213580983930690700942284192462007888004648642659934264097973195304102686211643454657552531801912577270253105556883998687920013411220149887799206211742327944552198385341169220657176921177529965548804827249525470118147055289087368420619348443426608371764535110908112930325402518196917911163227948633652054428443399929451639428477811558621055662785281204051459238721623908304308707527646297125197351798546852546537106384350824228021521739895053019641855953922482969348802924138011671455438467568157654415627908213804975276522925218014003361251043838952550684277567507193051180231274863216271287141796647308436664372852070827538300577725655158308532928981525101993914497545045253581768316867404634561196577287384509052182220279514716105054169942249386761934795618142355492787551796857655838503799325838210584804923331615685077158906953252155896869789750708938107250020495019496555471864692712823369257330827568650510274408909508026998360990516748924659340865933776656668389560637040813811650959432493954020817108550053889190165135121592921600936277184782677356382572633959448914483796189403516304299108693348797729737467823651428598804545170758719948258316176464299613376530973714343548886493975699775250672475043982087413765044000491735997171285272129700183149004053638687015175888256500727359117486118492194213596563155014384067448732830076760900558146811153787040866166682602200284099331788277836399935939327813284853454398009403993339415138000523247825345794622283043118160762910543407215900896391697326987466679171602898179059130481008205959816851616391499563655068570705424136799994515695509179043598158909059324003493804797288045218738907449862340135705932286467370527545286340894372911114597372279440280610469540048338743772561717659181423800957052042326539227197621353452677911810979671209799843361689857562347821715723565650167436660932241228985097947409490429680568542574430431034039505883075460828492242400603281288350398837861609458276086716992977713756592890319999290180359512784121553890321165326093868824794292668279102181066077702145385530557702571050793875128459394474366128667845150113484166221614508882726100407783235344809034304363895837842872063058437124960501257281096156315816368823973375399368568416268861044969168199975380114423330396752239417539673753913042645389811201953639076733737277422847050591315410546438029988560419113771023880971527458769361569772817378538899387329892300965886805483564304559174512484234143728654030552738991267242780762863100029066353876146293712778450759754165775172398808953464215892973226702628507706468891702922042735303656790772190276723964068410600458059913706962484826932825238485363826008459334584825374237944448313029561556066935627781749908931850399083588525502475419753245101902381398969050822619637068148747016049846444765508584378533088637980189813453230932892856068645268707494623377554664914598501389635602208680482098286395368187031673080393165375535473343937476133315451973727241988860031718998234122992484635385451795419114539240921933947407589232487880788628230689264133970351826511791037501531000768528717470704288943143628774085025875581928076956928810662747922240953020190638893444445576704150480604917355097063126197549654232312018011503684480161778877839877168178284121800789871161547236232523922819158885563384415147661293001988646026203011575482301060627837426742819830673280436649553668223677876252935228898540591884775910545778748841428992593219620443258908677923109013972181852135400991025544438094217781798753839035732400730555867479036904994233820217196305693717626392986711401508495423341543012686681173024921086335015965217842798010954232554847525451155740154175522932576576424306009933080932736959260134499675517154589591412342842676313810962742829374456036839726492359460101447944106777379700429831452930096719422056993260266832268399614859552058155919815821779891551261352143481892635757086663307329976205668263748978885375588973999312708904453403724660386876099841116122762813059125586584609749868112404823971279418500134960233608620728715946454775850126877463203969760863638296954228235475438841048469249021898507527338325575177676524648739487990430478147585059125837176808581566858562662886184569011498582415479046452969786112958532673436488766967150592925610624379723025725193936473802289017946793011880146562735209730740121158356763066847465159384333082099895637149785697544672940108059611383443710115703402055509444810960025045567270523966361212447760595061955804454657786318469428924883933296973646509458484466650436179817945983970413009538176818182774584673089517697172155846658286591684911950600723547399834776848315581314312771467386632677876146428941271788335167897387955208612332043442330521206855974398303896741649178922383940589225825328544792489174213326555960534628291161393183159842979443313042511901391517740055538845223175147415588276425010324268016157400803253107113513029826650552538783687136695493744508212024572653308656686290215766655712206047103217165839319376351171452144518765086916831546420425509282559451214125541764820316197481803556446154905691372974020514581097131400523713028845603377899661459076428138878778458068487550164165453144324295281306549517147199670239930054000720402152988716218594565016283303946693238702232310369244795882826304784816088682956815087564452268787525206837588843668570749209903083710683093467476626054148657328942219683739993878418103187409407753055050898885888599265417772099789548624880119150361324348638274286688745314648803443097828994895858178761229854798820692281294073565074900829469689284198938117626800284877034321399264367528170920533776878504975209428300107582887281832650220776822620916800672294961429008195937420454665186559942247653616374687722203327836930593001620251485730388554340068594876214290663085832363568573560344554982791571475503215116143143758625231415381352396374969390991702300309648770464815421377260894961657270255781547476091438723661486372005050955717707095026064084792002082043535318278379863651536859580146168768773860383246963725345346480027100521787596809823630876135659113921556001674060631764594034829803292816062865350742633707488922982667446605644854606520019295638028343987364942310532677175183618562003997394650098073537126960230930962458233052554118534625307015198722056752109551043925903705024127504219274863503429089835201800093064945091771486536462722068752096108015341566518838308821007855506699540590254868873834127749453601951769199944061206681509140431450410750471496097470690042705980495912573991133523833699746722021452850087755160844602102276621101762261192548353745517503405811245165105146371540671868378123618813538556672263110584415550819087820339191093659664983305691861452081315340159441996832479148620248475075548087242629764840670012313653236789394461561428133384244717233139506655938543902382717126100086864928328254273380663475786814622036642644035884120136667422774867597008430642486575855635684038335006155328071844913136044929956294633506696600909814094927746778683034060828488254091993450568113066435473427148105649839297957334971646962167350846201367538866680892801066122211588179706276475924132896181138260535704710853445881220521463601874050161726834707199509573195874577793383625050461017964953874269928353001440615193084512364278411382551706573527412175694041911919563942908950414162408220672582649336062933730287141828157805077142448197013433537185164558882249925965806201834534877990090527138993729481460554087069079213483133564234942940805281637342582204327999850918259673431947895584027491658927071589564865287283877202457487313932152061273891806360596301959768583730265809345359021113086733193272464338466442752116154299409764294878691656972210560445693252542076735145760303997927732804576536011341059257106422687002736720592849574020562236394563795199975136922114578748950226973247620120640441115735851826355826652146412770388289776493786027027940304816715251567653445406469781627166744708868057370307368655166419528821542959451333063743179466535086560809396482335433678658057949244491613792305844774950452944719289165135760378066224270292168465780063269671488789629455074030420083142755567045303589879235212548813145613840445925810270615972998237615215011514387396279719351168192049940087916778280074016249688441162480451744791023045988832145090994321055689922422046552362557603227379020160713874761685519601102294278857446263824219645562875407607976713867490612520004536652030995508622939544744721630315975746412138456790869629067274028036609850757892188426262409913701588963752681804901711710365981926338153472886804517218150194314885008484130857229968928749174095131327459359954747702045803428445810402922114188363382196655308887416141858034763137255608124819331491695020103731854907407116409130769301415544659412844340797110832436225418269577605231981159419784297535062181856375061290151943700729208500769080461293986545788725255894779560794468532519833198380995509893034817016494931171256746937687342483092041345377659730919411481532953262247766650346651383546398587299050910469236799571316541000720919833362365582767035445947074126336912571875257051217747140759603254182344871882908544025814273901163501997271444018725633700194534735610313036474397503383870559290105734761361802776214993370509916552010621450140910314102088440516755770457397307462955545070610312575571334701383742467837255808945806256315620050488362328415136568921061665084103207778210492330221376490737049428499980197469903306498285297437684276904768767124224974793273874642157378479651881803807467684944880936355284429022511929477281464660660126529480624021902486369655872254430895426383162809912234322790148780025455358128104766506324015990168484621656165235579888164140162844473044042725428539986762977381843227545553609632022035882699198647051199805994683424416321133108110003093711195417206859554806620659226182444122941043376612753696586036416305704270315352666516979464617792483278786166646208639206852069905118868608714198850834148167680781819029163527479554969494994632240815674972585924912349612838689406445653735832281965443018798813517628577653531384685173717590704122203647350371446249257946086069075219625142805035434888135767032905109270157277453948192665582328964296611158155594221300739506604621219804635210289862946817667644857485945334430791136787138986481422027538700947155520384774402579490727958532860496285143862607784844210548671147882278414530814393327347549175767040993110153361086047194717774978841856070975304662280012622758327310708182985406237865168203178119698670181322183357742583640291420162647556214664181269141568366497655449728651371305291620167382279558741328515254945090433303045232260062947751193827999545027327790915835302619152473573230911641980729248574994854104746530473690821679625084794825940900646623451317405336517369310825461105874585142089566582644330082889172991850625930066525142325473373854090503650695062500152848853885378441407016948304825201355144503893571559342672905003740540728161327757563700059456199766692185069251345902484203026935093475117625584941296054640882647087556225534194323485238867469974667650335315660678699950336613979463660084255273360598885372375747616354892749026586290420204048438785549133192808461983174570015571386982750738504705755436709688678744235516453836655223052358356027647726640186218924573756649315641536746480730556374650582449384034390455860039179334734051380590643476530287932095217803220484321079731994875557702584467967735852752925274248119240641229692297929562218757182963823713648486454472052868028547002240164663281659935280861636852153220104514886979972260143304488539299414163026515907768018020580038611024997942688609531320367807326881336314346631999055013083487776941055782036123383078598233351499081090586892162956507253234794600948932969759452798154480663007152778257043004296907267491663226970403940815919052758908337069015414007998159039792455416465167294491890044265742326192837482387472047236942821979446921858240133176415477018002279097848513377308929393900657382364493580794214592711578707922043528233610801816155779162586743548778062892185754476039605257219452947142644161821529809481703005413166953309123892156802040211367327970806686681327606469301288446620583894484608062446778553478695072880854285928896784308315275195640685136769564776319406043463152231750248903023272333352945810932121734163128549417562158291147293517047000443631125749781809455781187654808387426112441819647227059665667920325562920001021042001632365392704057179754319446490694329967264119978795296139639567920914165211912451631526109856414786215881370618396932987958753289745033591783262727318461980128738323507414331642170292007774301970876793025620644903009243700603236244703717985380785928710381945403519719350810203532422723654666686060254701199158452350160384213210512115890138430192873541463767318606880870787390460728348593544082673050116960192254475437855040454533104786945292068950664001802936869349629081729118253980631399440452352790701536486937057745416101010883758682159372281013475552920617369349428669856619119800864321050256863615969362391748724953976238667316845934976405616440018308914254570204188200362033745309427039948859327695989338499585455516086021880355251820676856332353970261819095667039950278968502442332569231017673300568434722163224466367840027742164347250114125325230888285163108614161805538386139399557463148985234482181572883502242583112008969936297310788199028568199668220440004949461650528998440921330935263855638518249746409599971117025672587691605828757505191888810350220490618140313295949312398946147957984021656869312061430224782655303567294828002805485315255835672260116895104168025124468204297949847821793284543297960972967401966929761063235188231399957129669572796541098282845702911413340065886194485449642480344369563565736621717399290551371883090157494942596151689342490602640956187667139443146077200942766646499648167371023940071329182267563546315692546650127568051745370264420550513450270334960546237810476809407703766956994815487513433873995325565722779725657998745728774394934134296902415874624385021706728857946455723347748459664845477553825212920519618259830802238837232361282314653215212703597328899131952812766062406062260409053713135787025076274156802192863683500042853226159878965803839324939364040755357709231966933827465501734460095377989546794340337410216098448350217311934398113333756934883244878282453341315490207912866942644841688621130756927277578995693800422249653483233436019066898708572628188437225486430974321317092299054452660875248753928068308330012259724378083433156406259568504740709976869017603432073331621318321436471227748028472794082235821704345222163286010188050028656152913934044148854961212407502544344154411867666383681470249269418532651548321172912554163277050312649616813847206009498122311439013341775919388815075763290655962561142866586123538097414073106375081318690007178586316468249070577022395622033464669301697950075903170395327046779467507650000121595061551453702417109379927847417099473886290157975325084969643160787927670737514546033921975452479982626501886538088582714097607512023420715551567131318287752042167516611073304891720637666502286151711607145897817268806831491292680231969311126432416923270207335661617035087645545590633700042820923598764466208532112575718168822921706909200410236903110644775037150992238795575816189166805537181344243059039052114225683336293038812839954001329206118855115152186033335687062936893320478529982066395994744368541695463884446254991543262235903095630079013066764250236437257843577653921038729613338118507261717470750181581747730438770463680391061799115359131589681197624025808164704916505614436490746688240468923880892114619186473701254889133192885972259969467715631912236222032030832476531432046508682735135312985865675449702340081874756405887874747155728113434036185211281601811415601536192691445793670353291010255769189156153910254308788918057403334746105640646354135476162352034345874038135253098427393181554423294112179327581718705677360418789592889082649231348659074598339718334986944828487818513109525170082240037353363760871421981596134277128126508682179231690524986338999333503642448516232291926356723659120988806841906116717345117031400865681560216358203891873634294308721299073434887731743048224798239948122670952138460844641811230028721444195107262055443143255981702111480821515874807298517638936369820221903784342050260170730268776637932550608189851292383385013235498826997749122209832273901433247969270023016969277712991703415302860755992757853923238215099144464136591303307100612914551628503678522700797024061778239727545488676477294468162415362444179948380263053268454037359537012285954937797943308892093323495433088736696315680974171101197228439734281691064247752787307405308930042507225973495457497040226531559486768282220465335718222262779523915015986679676939702069414643400599020671139770567634484896898516094487156803800221971775547184352557166169097541835850412404706321291731402750533173893699200800057466963898822407101402700240336410944881744397487868945082458135871920350502375436447966131324370053305956300795799443593505939259546936738418524399893609745296814761323426430547219565773992427373542941641750072643118376106909109708453487238995480758157831071645979697364220677559410011313851408568898357586931026470115211112771036426444100239425065081666867123467619838843290332983518159675056813732801200680460050258330003593640246873295768808011963993633055938202242656389152021581322878442283620246431334757967774093169529236508343548020458431281126255869772787669059605775678232188218018691451338760368181144230850486363413001927746282061173907504245590971334428961741407057228884486839827767094251074177464542552122924872026142581782269741752627840708279366161346834526547380867736806831086142727571835860976374670461636900770502788550044296808123186552060791482827192376781313305218252028711635311879077659643991364605616000451155167144759695750549248913512571867128652313439953135969979394007610091455070057813396811795649683084061737878449843436973902491920846991629133317935186303418519488431712462958762860055304506321559398275927470156757292130619606569433929966724474151849956806003614138066355029526236759758615623959190303815699758252629199779566845160083990437603223980242680061219022405810636255572412284752265573074806095086706603586125815471566152605438396969177746380811673435192051432006966386808519336199402638488925381288178575350002691900478670756314527787761274541647060129072436423350941366147749496798059114096122418402469952411952479772072347619565064244515650555208835896502549177154863544947237335558266259617908312745942913549735251445805278332047380932326208073133436927739017421682008760960548006072757009024470702378523171047630023455794731523814435644588381400989877509328780636677985121506401526897983973828092380803552364791050673013620987069066898557382377607956615920528261337838321201131022779313250105105775744273644123590787354598656652591578061425240647631075068586818968831534854893032603743217465766217993960160667943576020444850767935108129103865379286793886381948593067435515611805403285261352902877179584516551608936657922255234283917604825332632629244133058445423632165973237134416420903337927826709913815478853636467176164387313901542239168965341539657885280194535771639703638741651722445680219867480505446402340081093141369560663399942860480391487460804207358911465012173565350160715654490096171747117053276509668843919507477898587990533039609146899420540529611468937805565060579339378843442871319345097139198371942875879553515123317794401965120095618142132906976259656364654711704004157685965383428811312476098047695480540024769337622701538741979286310127643858462573481074913382553930766782587309828692166531602100666450014383614377459386546991001749308500522065368021595921018374657779762832098764187191385667009383519158206521149270191511458168018959431278491071868787530889071466170281268021759654543444921262393671365775520554651758684179310111212553743186711942024759248160706883741125825228796792294767968771195579954770076392483314478165746288337626192817563804719490015003710858341595173095727054291136213201497430519778849370724826036884423877971886344369608883339096843050322968195327156338910630411626770254285171019295768764533342878464961755431544288476830882073469654965836642723882619438406532004877894296185373169804800632570920463175891176616827546834823559376237327231318983836041506601599407844465563574092382485382198879424317918783441465326377406937760912293417325714403792472301594736948247745463574698241589169617237204860981230982877376687047421940319326906924130366532511425406113331533202341046757373126986922442992499030297939888362816752479827947778106260869587763630817862296431792135335244886662105898113713831570720544896691849477726116896839942543966511578297343026818966724777737865627768467410581271027537314651530024869876947933478737890569858024945237672092885380641431530059420946044573199832586967839814129110921720412161275394838573352036911789888916838363424699712410731270138747399042727785591912118745696126074071853206326710181621093365356214386257113183877747201391635179634628148203574792843802404822118665169022035083484949342690538748721226610271369603910250527249853269632423118065619441202388507859381813318892950047799663451611328393484797542951748209355088826262233269746639884866006517978589114647344103750388237978661506383351803281098399175613149760187094987032573927461906407605937477595650613332930313994208398844336120155853853851717031379249499511423911095898460318545350265843066373170655595225132924402012852984271878550196100571918563924184479997437339613844914533542213681992539012654803514630098029570829668664164519862239675608608982011010796173726844497836559414504884677835226654722354160071029173515818893982730829736182775436992793053999946691691011113452388850501227597797837550030761798279982458374420357250931412655671301897406704733226877330117721105770767191709539854456480334570131477056914610970030742358620812520869081249092651867399158384627752329077584321801676375243790683248636654498540256953123321338629777482393955830948851784017997199029587866874612495969407592579344847831451924044221142443595033006101274095931254444597200665523228041545976144169327211258982189794036469511134935959280870613157393560033101990881512064734607849873243512127094330072878300415161342307338944495117117856453432564038791726458207686430113918280055932916449972872189951032430771408953630026864862966016107044035519563270858194989816585184335553261848469530988035126022171337519035787264189162080528802838304717865802629655218536420174601562911479721367092508536135748083508994096277987747224129228133904557438767928053601059265067374521958962524857072002803465713475527267174635484669475820298312762227889734746097250661488244882383692251238356868838763446507507613499433202414304449671101132424773512155661649372778853417074586515425908993207827605913123757903151897638351659898644312532490074395343233225649074103409226525403498174251944810267701248552780075999619598364631901127668280311814418093361787757089426489309040649068045200440308818861331248864550817654123457350179639374311583663415857931020757539790737724289242943731565374890070116971273824914556490250555124369769011137867667873106738430979003582547122210273236148382706771272594534452027533032291763067992736931229759276717285508796333194091548523591457715857213634079980404871448783507033203155434992852445434744586090436810877639272647390213821179017182640055101370575250553513348157744380002498497883396103289842477947338474967575660537113946957084032697841375603743826699364283023188809007536318802289637187491162137316593960172683799408386916347675025075452257182161336135294103990499656072277592385979683455625484511128277336320248965294935266523965182365528499378210183041669892721379955945868822648788872318239836511493650589501994165075238492248771460497952647238025541094716016634201310270567083813512841277369245416871302089923945521648377737792656178330685268644971775760265649623170704183194212366291063987015695759023415632881984015414888438337264220170085983212391952987859726277596560641128321559473536771904212863175370154642955253675891549347999035290010979252061810745751658632078802627617317859570740433826710167957245183766584778678287352185649110995363249410515504263964133081885747337179046457465088550475509836777165253713820183419105339348338883155988769009408291992986589204523731890240830785148608447555864431952091736492533340100789304768383470068186496749172779046319675128206903976437620342854902193228180873247999005338890881703369830437228467202908124053225390935634169173038115067055160248389361624802562856192867812141438631594185498044883111372970735686199627084467392004061809438740826552978801464289289227793466410931344962086669288702087879642274447455054857202699503677937701181291051592732938840948389010545726771998578523291122904081663304908727390056743655315982005641191570972013307931103726375893350299602812589072604503805477539870206383183856092017364629236299406182610371265991187753582418951247393471883439506851954634370897630843143857436779085202730259837872487312488557793460323435478490655181794172513522442507017750138397273763617645275495311661930118649795762940209649692480652231228075009859516486869841257085681061246855907595077047826127552685315914483491533251971013164160845118298529232173158039752388431059682977808986105843934648893832725921250503962933610818605404109132383907179664713324348056593047256637811476881577057820610667221382019033357136979225718204029722084755759195141047675732861389344942686704251149588452770066418004590010995710951368909445808871422828961158057740031851602594659657117786203033177647276029056949529483528209990381223776624970960846886800500546351958344793563575302279899960711269222851264863876093167616579380587538262702877291781972579028932508487736014801788846961724938359951035298897910282033566385446857603395292469309956327000076218377554060618186040541685247911609678929003582762333448192939795235522725860640114247670242498240584292210787592805812729645538047536182757513146140283180050662866197897784792758172036475546585204540945906378896847719030181518413311878668000783903781547940975547034805466019541241277120860992491577025116735529196621148925777504165301743637310773407817864711533306165064437985666640519978692336089172457994830650426906809354265662938044978696170829093923515042974694820712331552697450405589963527015538653310791242679974788333202411871413945087783265314312129357339962354517790480931671913647615378326554035446346050706366648651428254083320984154577711142397078734105055104847097316559053932927665927699099590838964992986440078919862891251419580922290052747865466833671259572230783596631193363624760202781032804378574039964423339124446655339311227216318794151129887466428148432418635633171060332224127391606835702288772774284082205634645042899347461872973606077580415740083510662925828912564799124893752725767602542877229207619659781053724736730578282567035371758534562395941650650125634427885338525480416607467953751912421936885502130592467940987315637743361461420246248689278447205851979752711583375580858990929304356510388331131606602016230158546214387340715602416164958809092147365190101883465427128241736721348291374939633270516687907834463625334433522474627193772072122655617045999488031116744121094173364562358626362261814242098038605683739571415944194552940976307463278593218807731242114136614271088220235082585664875056298027711884620020440132756189830698227202409783482671171018863537366528399302822148096151080144153314425131900574610842534759475850428142651934284832991342677191468568187062667471942353537408274657272327197386722195194460306786874756866016809262161645135688210008284761018789770159023609515101346786145220786355768828254435669226332362677398618589823553205377252205362690063720113079508653288981508396683079971303157183025357165753676077350700152474094588441709555561403957924359821960781196668604394657844703298349207331632947763366234917455735267311505541947026539260769626456179598237279706898601950439863802840406935498376801521536056672501927021261129410346986969448737114984222778456940875502199194001528315553525944334654954941353711293838606614954775750045242115204908840106643366741542647545331405757073656558173221545060833136583478637743839490978492213741058622364548950601282775327554648212692850061817495157790617581797210725426030585051305779188803270014679061722506820549162690754462342106739968856460751449318104595617216007155550604600627985065094625288043129976824490455102288068843273764525210654612759267948393921546033779643193422321506741551338399573337141649811360291727858189099856080349743712561621701727958999722440782306414324181428034968077110898636152202259594860049307932369722640138094166186819680757193414896484345646556577534909019612533620598234949568903991185816295054162463643913128585098481311516145767844202510399050232449215768282050694466218963988270510895114390643759371925205349768129795499395026333233154642541819529883370195635137951049653313391046337773581549317846167290800321356514596448454156199192957716923023783571029866228547173804876958755828214353776020792991274904016631877885775750071504829950645412172755463626889569032889959134914247810840601110852852927456005790188304297216009063763507257816932552810165367013908584004818243290584462960299479700237532690758037842180759820316943945450284501631975121542439613200328231503580809395276306132138297791331641657726824197182038059359295549647504841407098603493632635221287687709245808448040908995106239585555880951046155987815251663593052024604634739828580872479765478937815850586108617883073923304351948648980415120233957102212087245303233135169409811039983603997491476734725101832965520527698319639226135222030153121357091186226378678219254026368232401248816768916114650389865744572581425291351755754390150296025400360683368345636474964945225797887929884992558282152277151715280182536957031769139191864165345863595595048712207306604750008232635165500111046390471318984801943419849492118403353754100976091021959259262417004948388864981275333713479425507810526517466489281336871014615225849451466214513527938495076286015823610460030127202314205247397332520899435113661564468188643009019266150943801511016711691263259344501895201358333180888636411287629251459314784841442223060296792242425847829895439767347125192636873765506269355776446403627344875961235061350334666090349009240851748576918462164640857997361721355686193584262655277637314828593638722974460911772898961674872981755391730627117100055383347470654128313904212656101465921122904443993760322610242089973386926813869129069196128960309752334041360364672957545274870735709164921742716956032449142433067779535534782140138398292939393895224368048469702181786759333627444116784696247174952895717280421856827870572516516129195503249327255080105077342569285965784680928236113846887752485182891113324588720659941561073667139570277259433719762493763173441724649631587828027247427337634536106016644848151014797160583794878443875639924820974231887738976412165437596157618527378845945268223955616655969854844447587765546493384982949216082133014533427985035969979593564682444659239019048387616104189858654584152566726024745569322533086503052868390510574948755206172248944261364234530404614409102680690897313690314342287738880502456119497003798984819582751451363142359589683677504930148512681461502280833100769170906911322580366775961390039655250304087528200762256853924524411955026281889348806584050475766655568744361675214877189028646912757120334503015590754637816604808361070051532075236402966089147109179403985955636282269013580074679956227655098992880358844052045337537696086474779111911323141646336266952372176742102635444452159115031526345447302905414348658304705341992857408846588590622721646894418587194784350399229150527652875986112394695309066463621497936030909563377138474263239984707919924056514155746552700378914406797476015634337980903561184842393081527985250024678895404607279450281320706044324209824614227881439162138017747144124699879758178344905663314093504327411021806693657212420752746777401527369210948432008824397015218566033485659007629748837507543397492396506849872037676059266126094243997225747857076111734794078403936322171925181540665558543980527630499065751721314986219290069872863806809282358097840767065588542830687110749268062477208772345127625395871826031016160367715598633565577668366494302391456749668930214907562923229717836090074815405982576664515559020438240526364293647887359507722764691401560298279870141123578052663351840608710883702516674307113678502657919402429932726173750350826634872822523373824128661506216959703990528626784275241742920366258065401487720649768432896214001176321299219044257449595976296934976532812249876168942259387031791669730082508299712635963620253485799906489280036156086957089977194432957712186624022567418078125842306521386732265993576532698240109176933410250898325058005718435630036865569511432763973383647841577481211392411160307123914103278777661822116279726230049069211264258992843623181456397492667549801525964181505876583488516652309195474493544114031085893838628761485809453313152675378528672102462591559187730096227920146127839494633727837938715319390128061028019707718959953107846363601383961600039727623964842114614362755061771416652581259459407379713099076730762568339012777995214706049743736770428523761603084506292960806152883824864464334500825188603207228501161945404111844914025503007809453741218654951066628619671079467422313921987614495683089254943212452504482435355961881851183587698711816548314565624077954685408418465820058554745127591234013285019754671506848931526517686309356762661563274191031586783635310104553750297988151783471724528905872272910458997858328148461900213023612319479425407742967700502476240563160161149846995209797466777702012570259046361337490627101570448835755176621205753642474432365111679462625331872012424201778110716411940161161038193045400031523566611600357300770534353997462465059867692936305850185096895712183795841206183583461808252929369753148546338220620330660807745299519761794610209498961820485503374518776794963071081233896585168025114158118726341415082971524963836927662139224564885388511835568609758605193409053745377979191393336846070516918896475566378892600744751273825287093993423146985025983374731842484914241321674315372036449569023820712864534190706724219987755077529758570827283406187836766102322868397807922460714091495365195919730465904270683372543101435004729509953825171528967551308853821555137175157238606519398520003339304719224964847379340173952408719778195539164346777144148644462446290609174648333057639289309163511687633099664950703603055040428532087107374854337561969819165504181138754867798809227838427815299858485876326911588196806268500348616939065823127424359350353624628925127251537958310191191380713848617458394114973445435800499764464163526351910861453874520354401949174340601135164526005827997763755936570315904293574555203859427161983490949360805929580389004122791910519418302584877271070432842916832620160121978370241017231865627710917256061157490659697455558676709342103811503895589601434603304846924772138578836410280490759921918016750671169509531237327828733284351342927268850024381905626733873909991227800751584733271994170016637299370266230328495660392073970916799982136567219251462991648909214639222912167101029374593883637653656267931097384888111409073620141584988850396657580282399278217112749185734613631298056921637494518331616013494163916198876540339629144492272449676243950163310697811745968327771168372593556834341842603105783665153920878172182524213694191589170060322584266771193471653844895022557515710077299811730299653116719722797233741208074107908919307667542360148035022900184295491371402894355633744691834362559288369880212951018218528782941626830226271359781386904056300668160585534876624089658889310149264401129039279431636329182878588309287810920035225879396413172211768825512816242247805608745772314421625731782503950071221318251617165041864196674772049186673512145501985433767611874006372772782871759446847436723977471537985003120525691518402367884976374170966010556732971509038617242354327277027749900102968033945446420817470364081976428947859633378392388380399787310279757607411658368974825167590964416667878620052219382737298106367184397679181746037823559588117267512283537978215959463153372478513119787694143050909309719110343840259425418757608557313681948532260327536199203950088918433455229607942352622678618900160473652346946983688989799193329663765396745897359920295882833493070476479769061237696285282971940195214350600096784930233409653021699277968898093476455615560897038923108877236633767871773272995036181136611479840324135947214326634460810404103244895509997384682950213578986846091056126388689120869235975462782315378121807377825387625141254141490041673090256928492637743112750827039967555021362145749880417393797003676234746248789513167756195398396364197977091195240462295019107047179024499893321748939771485984928025995030978610574220010800775137019003815661670619067714828511085149534190327115793810801807607517668593604159352050121876062964124477442384925841180093787551233987883493380926764602113307715663679517081623426172817850707142444874631805327766109377150586963494212453538686802723260790526998486201431206872969439320842784247777806263210892731362626375331792270568457996956364792213258807417684241725900866581679514408782163726246066269377954216991390845699386186529956636263488488573336178034674833389307130166926439939629834867102588814778370790139055898620441105756555089263477362973616578543585138613283564985503112238458074270933844018730533207202485544590786102198920015384356460296481188382879906843099181222704451514396918130482231747928359226853994677521771315861629368928912810106636418198961162948143416628178428061104119196414742286341268351194619452006033151142365883851949211538054613339965536351396227310873063384611025336154433559833358378855725713708940061962236549979621160826821093027066477016756648586546588366321615337554385401550079182619920748079781976345354987026680252844274472134038045290912901361643614682151899147672242726981023782516800651355948263839357643428653867774933184089879618571152889888690631030838006990999077055455634792260748115790881648341987228220637449786631269411322581752736114491497554482752146201405436714359888403558643407339288685791350251247138207790339821546558628401429149826535295882109724765728829795754690708796676356810653453808907351103338462305284691492861621142540845846398132229232960096088021853881145230852787645574110498496682707211475174495510743775332057283523998515139320771177502196726412953222636278223014608589069949879077571052479958684414364534110071961862564035500233351414618152220252261245038934655039999456941197540021223472133627790677270844845031866258891859215398159917224723824876124958384455489480216819712126434615873121015004511888552774085477923044426279960462212915786495151804824109402816969284421322473744758330628578827781798837824497678485757986193917851142609468085706600726443109432422629184844856766921438439889705806017121336091801427553151850918426406308236207854779552088996658159309175392271444398738152678364823256872805674237578847345156436937104356848010051509259144791558490331919000246642788803021946606955694743935129350036128045210973329935135079980455879690071777141334014029946971452944996728176216540462864003910762440191361052235026596294528519733943773118728857718582379048362151763104374942610565546031304414371252269464576324539001530373820809116051639354686292659074838337007617334177672798193089114820791338081383663943122416748753657935803923649818467180700498697833877139041858052644154507667144720011499399960423663975533330541435535599280051182540915957932920899616966917375351876805535354221894759522963901084520544145053344470026536054238764004716265915119502119430086044085590073103416351254626553560562989748642891174627139454217013623766100654530046691070321888000352638057407673328596881544287079934992184770018457338784346974131359802064228238226816050338003258964781761482834881381448029034428694829005691737107881620742950674970367413309414032759517508035156129837581020815393046703842995359000707927864192614544921663618607858793974000168865289619149338487550315882592112142823538254119153058207847273845831447309597504761434862256994890087255769897667911596666992366113110752100073156193278318009299522915877755338474287093796266642943066347465404545547725950688481823845304004537557908478253418912951047253941609593980498431272952520635023597993243869834778150036621125394751892690617865298442965686759807963732741907466339752425225220607385432300925722922459064034448980555552967586788508155741171766259455651817148723453527748530519659355206772057859097527499791035648757265625399055163013042313774983066878720831964413723662529272905758047299558012529826419154858371298893567761074389470694176961120283035456353336716521674651658301449611879209843016083883724058380177281597284125140647266789802669125767890731190060581708237556296590581328402758957722654855973750678233002068650819672514621944300661799408959808610995836875808345292725449787650842527604393329214234406657747949647707040326830621335822092980020244993550230217078569548814527843523676554134637093756228098541649911761548804172010950839489710196701544948186947629683937926770309714163399970651827589940604019401025107570389273377166272856953066246644630974853267368659231734743785954933237023070162831617442678407299387566778471274865322952277612021445145366086312021280361410306181072551686814216661368383057363146769857173187971482242366881547399713415601470514158731052638906895996841073449293589325655780968389389386059331900485499324635190618752435355800442197802242156895258324997940174872661602708832822422809032489212019446181512960835583327619832196966220238719922768865686679580928112174508097170207956922361021228719264380384715057421286330445632088776904431918613182454669002167904575763353528689909619222857590137789507778094111642331116644397765284105412309179151550694901615514212261247309098179625072651682195793755986590282039416318281420708020223232258642310597562910655503978154716813423711896642862529745251208146866491572482974810435966189863857723941546592906733508769390025515228144537736775827419560985631137122619086841424605268667038633916627934249169921522089714361742769767317958117465805714552548360249155909713914710562774793407160492745502498241536308103024008029047520741852075145215349799464539153684810217244300268332926314097606761803441422269143483453092861615118562446029708984179940642621978129109392827437963835248336954012619009580505275974152211194853126960612253495001719960837391977585025975756615274595843927111723783700080350854207417795012717547025980260913772474018977643753327436531353867868664657416687646954871406915115723413103372351132315819743513942038027019636851312731062950062920989473134540847632165953981926883290972066308047968263215990608776586467742383587926501333641047935648955541101119145257688008307201384899959219363429385562113340960657524633118063052273603939050113841744690509995984476079181208114263173023214654220508034390749706593476314226908752197999204085068373513127351441348898845981258390420713737380199822874333358423488651061101829338192121513759451728056451806096116790203185971533318564568370079212551667957808327100071573788489544771169586315790471435767430339719130739076577271640775605896009854739351148586541721956881965649952850893858195331308037764076634406405328679295394201199622700279598308144492765445979953246668505737274309348461391845570758100138469098221934097530494546120765304731211473821475699908061737792940797786770395559177145958370966936188477339258509880211982500385078170935251873155143908358404183602070456256644858250705895945328360709788835420824600196746610022519614014617145203674735104024842699061559171531891830616460717284577758655794737794778087759487272487500057319502339299239174449477674018146136806174893189742472444931679607220028044353462423891850814433929279308055337067775829828309745482818061035127050000451231888601647979998500096562443801014860857004950340696584344383705225554250487609961522725674672183814764906990500895917779512062095210982116599282802975063085370126838040950159928215667316088664758240313462981232259448268248677407575832904954731414373291437597767800344931913602848784252915271952887315345259596902440097532138579668941897318816993048793993364804218618858235508980709510288914877520687250751105772067003519007015924307897934085558489312886369642200133270601949609525822340024751046168848369218514910083416124112568350528372999423149768782982702032315413435640495208093927522990785806515545290115254262273041853797479679541514440423893546285861239706245731211963868345062729942496098194725562489738720657699026051405290005642979250990501581378396647071938444638126735984168187880586842624321298184120086917544638975019335179798522512360383186674816111048030641697250642347428883636129114764222043346226673897423445653230677570813487594121862820246262769042286495641163667895447934186304778513245846589356542665652235384882059617470871295946595662557938494998633115451025795213923651401764558540993851875783674313524343901479150563340678508864751261096855107480763690408870550844208884423755745330638109579668557836593981300321049364083703379010330113038829641584410281994342970937271728732918289022988718003473456473726919466515742400779506290086942192707882208028574791597260437639702075392875017487444422828717540408465065481756278924150651006370364279726754203633451506201981082461235886999872446875981521595718977140418614430952260677192885255176415529640303513069605663696499939223003865698002072053514827338059043178347551137374126916848017520874444355602548877591106315702572014361186374168396950699552097200814560183744511507513375320869097505382166118204153823407234557400229510808043083006518391343575070008039949264175091406760672685540432770047516404742078429322300725413531654541428700745152993614173565500256930269843364546744976464175856182739122641036391504064134458840073584251938822394654058511645634159804984520105949538286894038553189762433702106975901425710653118133541096282340058483877938480349214528075918160366686393531966340252437192369048701092975672691037637745977808546335017465140715428309282074943033128512365512805575724727431324604433634863656650319231597949067281448806813426266301190971859330527062807382621914534238679114043163092033503600022232244773286945958106921650485192295660270485296170083900828617689378719795716723435600666483767873698325367003380617438806542190215684602564795585565140856249455560522237386022283817448295698716494051666712290560907876244673478037115181776723225550353044159890687327868240431488645287578893574985888235173464604647257323908137792446091413030339143654001628856095833908856062374252199500738473975352927774967347376627370742536045740288865807072734614123362864478646453581934842644588736991679792024264234688534096728138465307530917772081935562763446360978797218467335220074690557967936864224721853404408500049202262141835485954175336430664818207111650452839984375605718373272309835822597622142890985227984717523781729430547714410099997957688017570470099166155094610202249364033426765926538522815724451354098510016111166164615666612149145035506632670175662489652426710354251280973471984449350835866597512280620818777100327322588027756816509685732875510214242627966547109841367228745244361677821675519362587494805360451120497188164066775524169015498324028860208788506804843323939760891419856877620737454172551131983808596183938210208364444932150919510760673060783201523710223680855628028472157710700512949203790724362564300040128874863305910622625549804893899181366615423773622702677935481365185674566443841904642020642994286072260543660336052361416128553367970882667108097460402571363771137457103348266511530080198684643244353109236103932193978534694438384190163600205340972610439309890399140297629453927301340299243347870817706033494059198368584520754366205978506901944165452250879707609919921495226511228380982695523078150374956927752156110255957627159888746087188447217502130513441906159892961041606321038679971825198667255332327592688535117619190417726109584371510902477444703683046357086598931502804763344176349401015379123485079791664649715874081604310435855095710512509409309359956838306053437973304957440249879267708252619987241214604636647935779585232024168414356552005490207278221045486920983771558478323328332434730056326927208762346373079287126337261873836438962035334436538684744491320094958320586814703711293976305591070283819300990113535117962948345997820968471077103078795464866390004816398793775451052795637373597891110834569169944718331313146349167110838332984139784749944366850611220276696193220417309926465419938340334714059471333587308198555747657060188144357754386606780409010446957589774366801152174469624026292104785482913825164744998275292628189981641017189304931564646358706459679919185560082771576322798816138863973765956764904527401291669392570558189757181353392941182997688354006170053452699748995620344129687219046022776635451683855352003247572845722743081240900638961611243614532926526471445647883724076898808826336613085139156082689477239221133514094701763304503186430421234771597382997982441672149935237671609336131075905816564585282710157243516325512432299395264581218630857359308025486758105789581379389601872902355969304924600848925592294755566739920622166003865533123901023825644493627729698752917014936081551987096160968741531441017057369664677011976171580352599107514908566647402762043259716303708945630870697461564348692233267486332264722158052485911204289663861165317960634232271106836144531174493059797580659189930635817584368601141609915187885605712289791805053821135927005786767257266966849756060244357758768012168956515023992223010126878799810912631313745962167115834091036912050235930953771902997503333292669367560875738606808672897832449530202963987207811932281750453409137414287902883229304334724714378614529005026098419211590343036350974918628567079927577535404190546019763087880972199878633247473563333464342092756543025602229247612970565009104855796150830936799708988002830324785523592365451622442637149071897687060468773838908831215677422368020799861031134523681127771961780773867466119601803415603443073062406643096743741254346177055193156172901647695200334186360091506630546938218389797095157102935007262989592461758877240540757434448343910289786790031933358608075837097048776288832360983280146675946512190511343634224447678125258130263440984897692953907906223355178471852236628448506822210513951739403257815680148159129645413108566315220892660701219089889164395229665666506858601537784101133698700897795934461305270695087290920375142703865907603295234723491663843448246016240938129261711816802576504859140098277712257384508579808130935252763381542223097370694969725964680461627924389291825770816566240476988096578055969973704643121597690070614750647241224234314522087615433964387593096272675672393248258300967268287839014274495913692537748155276167793330673140988897309083567351435253459181745578416468267085633921780473183827610062673651257101468880142873328938056155284730444612141436919430511395993433595361237600572481041718392722452387035721687642118931403462794906213454682165367843199801024503300692104458513112681421819337110204018598814324320409526415900747882971462211590111818920879166649700873810912610140969008517316491485020837241957001620780826221597028621066305508054765983855097321676774689946797282414274741392973774815624450812533597654771245040612819542962797956276835923522679859521786275195293142615101904711019016158395924278622142642834799280350187689629964461421195542185841781640563005376497840125365417526678062385490174230036914445870272663596106597052927514202120925211380595383873732029167957696094191993999462110832819208814159101324005864916305598781635866128380910571344517226997256513623781169790763305354681598739612828152807614852361293851779467679935527459561460631828429754217359222638278965950925444153908274554021955472540036357061794646639883531532703616820776732345075735161116835604823928988539112857735390269193830072974286890608113345840398602648261870390299694023814081502706582148987351815022082706094200393627310138688091199341126238953147372269509375684093764155813392991881791069077916729144735386844719717375091548749578911094660487641266802519257980994845966427792737112901820291138729416043603353694766069331128782522667372150178918052920030313388242764862945999424335928111732793345446813092870706001823164099220358548202804980652310555345106063345378783849136623071526423385503015891701445541987064110568428444954088321670513464776911278853245422738500361241745199145387681913154206767154905774692803103555534386402137953921170657076477622296276969434999229330114435478871731287980581923214152338394143331940963788657643053094879422758896341909661885413161849769001065216279676727667035745220758470856152684475977730997796874216119543548313544079747701853541393684389256792260924450271137414029892853514365352045710877629693140984555086340117337409192910398551788578471124800581088294884834851080869979210843685295435489107516871430843345525726412140958976289169339932408969328980312797143050743054824289472831915480425441829485498469837264063750771496679007902710320877477540916576033384189088287259592536098585281775501458441366784287088387771232560036880828283144646243546236021530105344192805325566347044922206638404993201596067090390853242048296333830470762205785041187554302292704069973828961460872269324602308455805167793148366407832339485920631427582416408018010790569156002153129939265271171087732777839327119307874090568802222341860505407118667101621995353865977920166401145173391639830289474906719291391772289873048070091871533039114245908205977436449055105845704871628994078126916300157974100890901152059763835127653037162568749767033368761898239562482172763185486740902482104105469195518902009723298573633870098100929009677023954168355840044205328154307209011302456816529135432799797234532310199181622845249234968812784643290502684900199562507802858618149402095939946682358544246338524948829758052754766068801003215904913196880509146971780275775085557571956764205012592855220017251354291130257944177412394184645038671561716446795480771479881092252296777813944326404797416027443059283206658488214794239063322874358147955604013108817701715843550119844791948554475043789781846132197087289470604623557761058652706645793510536548646305109068024401911895766003163687092280291216851669730482916560310936072140768854998075155496481592540904220861511189171517040993264151557661923118724498784666036760478789103830177653589271899253387688850311721722833352995754260176231840393478023283717462967030168501220480672648520356304705065989269512659225221058067039470479855552422990384644388857888427095935762486376978352539925082100419435145376525891552844962653072129499234164663576057674495619697944863367885085661351076663837999595604660867527727835557179469559779282046770122084317488459173853559336059087174579680971083236154604494713955952448194402448490425641169479978520073519456989603684061413051365923821494352093430086577857672712701735623486778812822397726563535660995907714510002339729977048524565873051167930280332318829644391282046872986104580011673331825490947903086524651956271914996879193465252974963323359142758698977829763789513899664132023296382176911321366091481247595443548902800417932484359909456281895600626168332162579215221929956794404852001233707848366878995361054815763817288269306038679792930630125332304540287281019996240074128169946765527841066968287193221251710319517919265409718572685789209720938196567257706263640952639610581899277054374629079382423215686310008675347644839908754732696436015000637546196457490318636381139500128574556067513873787349153048837981053744365426638420567195575362308648068058350963877591861909892065514196174004160511963387784222333360302454190989009886749965116130958172068764107314549828625556316070985595373997248197911798143980779353285175160251072440175143448443997420045129074388727281971457515792487435909022693229807444114409826763866510537264501911684314712144204971769258265614405446477614782520523218167921205100459296723775563376278961080303101760405830975451675405349158366423557855083098535170810507228739727627595062479059904283314062334881013287827885478704926369729774484025046359715773288548265887776631945593261480290716276677836062900087195758233685179305406291588935222312699638429696622010733016870025772523135580169445788497187988351467475149800744299535926808833312125551054889676497817469218320335203656430104022367089788447708405984731994359460296091663067701637242720570645376144150818554914713162671613266651768303503715625332364633207658194696373582887048449405701254861486181183732434151408122052908573468714469155667857107975547843586099414978628751639968589504483905457213373821035583757993806834957499452066226168273408501244058791691319363225931285203863657979297051786828216336418234126834021736413059623906715248417029088086466702004054483386149528801757152964615586258054214027460330458997138325112845609826455479574313089284327561532017591242888167265374419872794963070916302958369837054325255991769357424262665396672677198548640429687022048798429993487237688531605175029450597086408954097069225538275517520861886136033288952117507340550282785262641487517893778798732962866848126593529934655907734362877174159276938545768451326608150461875047125234990054034427397231548615075419575376188650749201957343729238400614092795962054313334810753987159115690917322268774220109589258836836174611391814317956630125389822638726529546265265704694276918342447592035799860195293599624118627572333894351604144146222086174317805297808291702824640954286349574356665829786288775564539982356264094808366233258933228115201328300665627259054310224011411355412256961886676501691439310169218945640753998935806745029170425474543705539131191990561834035279173085130574379506158263144638587021795942833356188253744195604017727848862981260618501261208661243481319766498405758514813553562444343993311431923036399015783080697527638726706903283413143084296790018436702318050271121465758929501427073985911855012900677829750838117595068182030339794981108894969379483330199473562969826902329923087153319099415394419544901394294166967709491902563875506422962149502921958734334454764495828505763212362661087816454050508389205317876940452704829770637535232512700216959180939654293657788046315337653228153968051437016084252842420200333514375520577743796601048803957494607303109454757441258431117843755392502669078499472278459516892839043730498997454405169010981315096580431067253643723178307044314318208059397081530154979505072147102564649804127182456631658075402137300958850921274727285436581420005426201865717193198778562368961940703549027508918321783741363878659611873412372024540583815296232982983196255361430663565251392227493024226906394358897741590805688789312009031840220342747435257740107266598039288433735710815577945873596535702729982686099177888671726084578845066818793463964183723013511388243608998027842579917528320216068787520229238643957268087715337477693408899084441838493458265612383289379636616775104348748286455610672425392451242020420028360420560231819847857128329094993248345250732902111915134019985951630829527407934532966924922616114117990450989308021412633043891915285062159146335881738776799431094002452783005052925847175299380741348356967603421320813620500553326124624864922598137909665710266692261265066376496823954862720577098566519584881377537610289342938501645641556859040097273356155460829691267964750701583947013635875326148028402100072827656270495496228694613698907368297365826911776934903741055166149896545546765762353185522241018397678918844927930204493921029899646858065574138381986674899539778727376891970265526048538911219126172289595658141058787979384397228867391013979657615505563233514357337718559746991465989469629476213910641229666258388310007422810128053271106209414639138591544632037252541601790350971996721782750872906554737912247847457314927827717364989013055354468610843378083728868130992300040099724694539754715397459708091141716740702104901188841318576953468587118663407349971428924041295624070460669653260577992052051508700235437702497470663230860975722091877605576462489323560605300306148338570879825252503274990003217025186351269297328652171723653023426767594771468594825364790344170900420070649701456472051801315606857637193459976253900393586521101465125342860974812055610552271391032146975087773764863085803401802636510358663711482568963286858873213824709731928122846437504119507804573264392355665436226896938839530327612548872257874365990155216893016158910091548791083439214375165843528407147452118840538374718155804230091713173062348178354736550644337482533055487806094426732916855784401027304385967271519894463883329528017953689274593860388768040079715213242248307297632700503684396847355826732879167070029065589697774995035002060557400745706390214257634888462282309523894076151744819225462744954772832144141263667538827181308466180790536436250479052513621800784275289773389890521485705414961661262937607320393701336279497463178124509238440691150697243810206479862135314411135951253362103815509181418414812510657531215632057570870447938327358012385862460620247694464331403972845676193617792268495219557860987203217040702546889163529227496786881476863526138185398681104180333673160211630235248262314330212285603435343368738411783104629595879383600170283119771048547355488170527651402061336951184958815078570764538423711353165539716959426049686625047932528514135596071949689136631495761585566149376856997632165464773587830881493717927624990311001771606753277560445796988443403164680219492977217074446198212063672452038302316600099300658211642132265847541351227191971648509507152829484146119508646804100893926195157553541870662143556844832427389026886962916686882764282802538972686059738105816566502747660544445897590389871948471391511439214494384705901289796901580336727216042734221079323982173377535257119556510628522086862477085178185509687656856569281444781423521473313559436254768833391701099234985434091057168470990999024500769650008613029951409433559109654179258884879139053264540796834321898635591323558564911036935933163585329907378994897858774182696817019965513281116805998188063933506481562126504101640700076426187534960436978461198054144295963128658888284443223039633183053152760010200459095551295298322613342783463657016303700657877739199079642056474859931124318997467165582544255282817524699161114766664347315776300254209999252150317992781781424298316057658258605802729875048569000240529038853781659017275893470000394203273377799237788666797918555389927545829362216761486913725831086894293020927044499532636588483218636501050961622285919658273207606793547301468132944841885856570619032098441160588598775638441084334336216952024914439113421043603970988703631761235026720262311948172737818132999227952678968369063781406793869431834309636640126462900542646256785101633550975360619800928320275869734757471435004383291083520200603389469891588535796194326931970582050825912007237187103757611887562827911477802834049637305242159203872721871139188669652166118379779497788469379265029250460427505698466481317102111356198178580508361830496129550019960425596731527629255364142463044742040880331766328614878981271811260845763710646670302128457877100472889263405031396078899462838159195917199463976074799211198297434359929600473625835685476562124502064697381469236895196566107332829956535254361398926258449050779623286427418519569879549435524244447095243394787345207483555593703673450695865839298971444117589388108702621580934895653177288457057700811115426872813437560764719538428947686052719126418105339804771222374575070351369664234088858429698327554893184472791833567370596588761108833310502651036641618768451980016412141433820515013866271082589187248060960092772486156147483776369781781768429804216786206618751368395905276945532818144547110477284036033626949616045026492349830853405610770915892756206043675606931522707092024923136424947879065103947028412725392880512048947390102105693563759874456918358852464568418833279991770106971962608376572280369050309382457925965725038701634997487274656711470956253910293784373606925158912421016599127021416625829137116589155926523359294138066806279379019042157948031534185298310742392615595419797625059946389574487168622177103724516497373603199952758564991604134883951916863210836808375268064585683940254531231999931376663628149245840165180336950646318697418314445445856740852694060272875036029485551035121048994073990717304621246411666254706125803284594015477586071780084492327260783120697818363805522332433565957387923264439472917972888214625112978304635419695240887110304225772324383155123914485169810263985582118122469688939892015174086258778840791531197404966018248582881202539769859434814594479352638187543650247941953313179433754993210546971955506379103109754953150979478728104261453459702547362961661299374056802034108588478990969430550731022024607745552537586795359724394735770995116429488702818178119513089001276192166425408325319200512583170454912067765226416598841276802953652099889395760222198225118671483094403178587366326433344257123910482629259823638306964961934012265454596399418509673552192436304815966218925271334073112696142585566602892058659236411594284483876281337522485021526430070316000140870971212372267361981413764743100585122200885841967726832213324845348098092312585847231123957123513241609563726002234927993641855711946343393607935585361345137528696308315931711216455069199583035339715398993363214476656220701376169759580141995893893980439653026707394589793884779312286361587014759804832069495098353525745900720555034325796788088116955889438272961232346038075842161200968357693597789953473127164400349180415874150633710826706625699699580810172250601868988338818628581512173950193326780036772726984285044549035640631526119588028087393291040681643295721166550827038944537547403610138584744419105699910353783969722148363258491526028269983904077534004362028198691952179094195677905721212422052653952982560044539804596746322427736842791158797552086460287744792097821844060985210110508837743545773010877545814877355523642849474122094394486667416673311553376263621975623810040571195665816297142555382432057063222106402633984006823212385159314164387064499591057158142963024995346647405916851632687532965926208682657421987871878857927396170857289099449999145552366612468503895032968296052804737211919793941292865966288687279676291651198275635722916106273717978042042775638164203179775628081190402533068595797830910749095548589731837425825353229273420054647490809882032801142264261150404574618972813377401478013457294650833146075360536304200344127371793477658206303899703442159389765579669398865279850960630273609095051798769833534505002514574799201682739650711757337608187320020475839618744681283052461652261451298096796778061165324963809231056255259688980125619719192979421792682805426095444000565152492836970192124214892037810665657597796415964498657111405042520636445585138363553150600405087061017310784715194948882629668857013891665456709026909634066216669858687944982513317395377257034765395429506582786754072219576685509022291184914391508388082611888130234609536663046986414471389308064133090703107627971241946516073802169566807826336849259493818774256371884528522786586110319938114705361722159642728214979853814801377563905011012007218540528756208545767557901623279899436195163440264467841681386699593335803062176153262417425647698564958045267486493734527887714848912722070823709111900997377901417795657909959220975835551954818845309789011621053700012626441548683987968321661752405188738974412830092622479143329768698865679480363407338896891604955136163258958362058979734677451408104700311504808743895995103714196110016607656287214714660272988603788490175410997230804724015676660606034594266752154658590590972943469167368077809811128557200979449160067301867401269932997029821811077131028420344178974596246487462523539109120158300970657804078725437388090852411524203867803656292757509360866006566677831305466637877471760770921190161767184153005937370745005210728317294530054339731593779527050160200789755997925178675939149215331116080030369060992218558135843733678705811457250584348184131890824963837151870318442526320495573397513799354611719577086661732233582284838083081279565975180935079535187431222275515371311176773284423000934475776389850735301667068177545306724563575266856718406533546305403069824986108667220466213686745932398236680310884255093084757108183027764679899666250223322768037341035125063616628189836937801042363697211454943285272215777801529683429482922816152792463231210675687152986807986955795009439754132749211841486316108289774965447215106955238632347166356915753855044712269487494938420462993580580597697764074727063378899826631697257416749861089542857577774114397433355505489047628351652066518664826506511361308817385792545094615227136179131933268347927343715164028018830858011657179422057186140436068427338723613408084726401658039250940064639331396788083725296835875317126483051778841510331625293664676780113993926665297138790744153713998202325158622773514420812723213418461373202352535459189665456475784726987356774483857366001138703626275173876417462170181341419815993340976778908659455322721903470027404673704583383829742234641989452472799408647207590329326464003077323484189271149908961837427008415253442285441069562892943795353184328249759911533054731899634399330757950250285977133970846995522904308694623044572574948861115038656554475259855487419330475162539072945797612421353161244280007607340817052135238741514399453171044858717001167746765373122594310293034884055792602427253202034012219672896260407328828527401233401392476837868638318156880257883334397003909737678200276711212767294016765381456555651980252959861555488234124260648761315165405873807652726817516302419584237410102072205031002364179880903053642305816233760888443205726732989406510958540122448206897165667985741385651218484357250398335947820954728068293046788116634112764810746958558616654112572053929683574246806425764738337750626967613126211910255673062398178951244895451618032535174737023145071298839268330149239490014124440623129499628949601411240285780234765520577883058309948814879126565338777600465577000007263734746004791993304230338615668938682443047917706837692831513444300626590240044572505628321843924833554151609751558231734335106288084002375916617067764734817717048696574235847274889516400410870549661385767903604517330718283509597138502966952086278858497116024979445722398144207379036437440181480039619751064848961484389719277966371827643831526832126813969126102582069435350854549899373816485150456220788306058832893111939217744902832966752347477453577107510452716009919748353960880567310633236089440530718561773709940455549221046831833736448549318339864991676181171458770659803414143981930004097344253296164770571655932889053416647212976224232588795350973661766791101336448431488947438251271608755567975168216583696564956514798159942533301189094150965874611556867177922695651784261111805158591970559810757992018005316143868872045072448631567942940458290636864886510276768065513529025121765612307772541825778021206559802230521914959008911700061466027973098423367167754893275174601913148313711990234906228881572363425715188014442215011296245160581312367321304070181755866542864716394423448873910326076293596993810248099138781601025455332085191174391094011374072788740686713885782033032702907607441622446513315531048233403869966398964917721015883921667525567700102483973099902098248506857101368936643938219145283301591679365077783478961380751321685522476815379051782851783390007746967764485295744116010057516884498817868256844850732331046417524037516118210190793841289445594553346669091832671509962052960188077517964509230967314972771021298914294111641767521476088097720082993489125448660827864244681832108907318833362890546869707627510564520710674311334485403010914481485455656826547199914693470683065940459108739836048633638531146158588469820925316384942939763811532167359622204110973183465398799202226130249658303294691359319596008300939735665579981471849818966752342914932129730617294766756511113810046600940316239212941132577847248180649681134257069653032680818793384055169760501741495981475423949879419844589608486456760358237422183579871152342692507053794755492894804873203514046965146058881858838761032346435756202976816566072857520830207955105196838752759714372776750754363049827453684352855052110701790112241106126629634839314113954951108010822318111541046031013968849577591485281686647872656815990963756747665223827028654756807358538786272925072635333521277708839071137643185463838437355026139506961223624602733939011119407450408680521514841568597999996964854395526902045221861823289676504879996167698612653297595740484277904995073378266510945967062385365907530050194463811887988415295651179909862950152429316829397598239923473412487390596350861073945002152818712328711821664578497220315151029711792796143353722898674080520082237044407675583745847721525271714484751747579751850218576310260768284352873644802529497533799364394433868813147094654606504169164990324916072687309221497004807053944542074091804991538367725076339226821548450308398617423359009570990963164218862292068603368335867526425361899056024052406653638424399239427910675975588498711530381669505943650102703088749208235877711712483043398580914389121471877358990185614309995714359040779560281334735558340272205058753525565163213141363736176863711620910306222663832489589188110299960156918979939460173276110079573291162833803407270598981074127570921229577012275695621114637805871430735460941890231824149615704875677104554019937844480826504408055246264255798930195642455863672653323034846104139838275492121945859737939724110391061851622344579483928461277379833510848161258500432416400551908585455143366618864045580862556320669751786544324794563179917404720216574878230639343755110819078137217578014889694491103465709654679042377352154039354614710999458081913404285869675627016321115421740057916075656436947027436447875639804815233852835056922029787479242389012497818966608430720958209682445365249939745642110537632736173914874555956062982593597468503010901672998458249658408865548760319105375632381642816887915921295764955417374027003989414830618119296134672293724177960406115140324628991965219860737578065848185973386821673828710439985843953604237951665136702398211194053226317599957081611261440971274382671125591077450765464270185139311534722375819474385091559106891385401797066594882187245558441742508128332753821109187851055399202279252525483838758978384373292969314366298513282495914065570235793842172986595161829599278184114289638456981209221085523008458486301685589367075307843439180076436564972113310384851846338052491301374120864374586647796500446941456790304883661553581447588482514124385789348794520244601889935042284388072574665331122813480560263937719420482457910175584537319463109987831693810148302515744422606457600740308138220854347470345583499893636887592699279223811273992908640153605984138028316665852502483461201300937964332275179322786169895494783824383259492321104547043135540378046868829284341056243578185131474638967805924657959719039425651226419128360444556259451109618775165630967104426927215840262004000168908749409651735763268509865544115805126593785909824179084086478294983346112498209997949106837658312879408699854207038498603843571724193805448840924402117472504842841458504148213126861040931439634969037147805002296038882466706533870291103496893143752514525467892302606798832862958743126688692985555433864328038015719983711283913047881899705725940938357459940940582862808952517888863899794037979023908646992411715346528527482726730588843622731138317137043603937051711725155966734188712196141596184276175203830285086009482201813997826219150218945115643302725587078008247139734538435686086644893838528711973514992697768311754978067418943501846490947682819091952701305514072427908554893235628430517964383860588588395165434873986689983510526036238276235226738570694513612873615662525407341636917812226289471418574920147070784963050034953812743770680072049314226916266133648414004802565100892160243896724805276008035010954589231034534898014123038491951733314442209183968933051766602472740457070199250401097768581407287419440441836452789028870639025866016397680235671091903978369929618837869091317305895627901378887606449012310312955743546424853315841005930395967182805561610586326492927171084185691453408586076082040789131987750618275307271848869686185464616760150721911424673969832494198460553508418252448240601852531766046975142758666953946524520435265579119715462453792579991317031087491013744811036987007090178004580046160026940837677876190956416962875112909142583317530597370138106024724803865064128522362045313382732772881542396747045925788662448972071827063626716477559586032539103436376147749801758313475691153110177128499124161488837917856662955859727602868379349603168357716222323436711171317521316567627389705794376524559793799517621301406770151511560076459057313749929818388843142245098784704252189877028672467980269714866622762968084955521028277191567709676744749049026450442300276181721532231501548865470163741643080367520404525209135636583128185415453465858507506393598424914621934249355821079303839406043637178490770675607323148431960824893223479360125083150852544889397949471171929764120995453062977511715122360569539724556373378499697717080417585779576561802136534602051207374246364367602340149145199546530844017460210607925475669787506616219012024430507819551515946147375171887548871531164007524559910211832383720763596412033111242318303242814826917969238801735362793391378643653981852999303343080710018324867670058553516776643407894854421972842891240928058490037292663882806920252792706700547081329864760135880630681110877471616883187167856071936876199332214765956969691941541785586808771805642274011957920740379543565967780964158954389432523718590662726172698776548474417895143172447379185414991326905890720403719654109678850937354070597319019690179852936347210269124099954045177571209994080907493823472478236357478402079273550894850506708873370143957286504888815510920679706338313975036115458617243070506224304358690031532667283199288602119427648783920012987460129484868611386944914417864296741673479764970981493417899619927602615146992421841106095787837291001905732992803932150898844071278263013280473720846743600007771471811359129073020509609754981671086182437321740180774110507749128389685562518642649457606838496395255701870008237553685353660860536245789244856111816797990779015057309034105118292208771480818600137747622102626314148429733042052388174080446580770047443839192468465883668094323403872681827880547557866453502457744886244900136012629023310565483407758611542792418975088014565354388899766411357323277262840558018564871252460262665573781246914748663248202019598184643043548151378026168137650701943727851021785388131091511338878106399055250908278092634653898234082063477319337545101697885803682407669698046240084948502718350348115860928314779586730375940203736764785927371647175783248576257507024741091693087750913041901866478997323691598779164340015857403731257889309386871439154010919559286447797377007559352162496120515087289810594567070210609504455664920589972929258933686164619303712197090006686972063157510112074937797546348058861778960791747783399699506517407057709423600600992750555007149986089965771680627673274735671797458107028086614359983490851887572526596680766598445944123076758850247144381049749334174484764446193543788801726228707597573291549304806791374842826442887064375674737520072411990854205207059054975567186288143136111043976696579143913808140715443587657074570576915821491236536653447493727434492694014790124112846496201126491160425705412227104138657806574001482859284824207391072285166797396195548865372429254725896239343927853431355966999394239488054375932177710811774107538191074078455101809476341235042471249786852332856052684194083496919283601954820479218925913567829580858233982558104053630441524849879329834854223874794100569101337260370899114160862056919493403888315704570232839674201589849453810835068168584798813083133189170799868463691622666431337457836265999269777753971173711661697833978955991454752237461468799627577818941728805653794342252228950905264568375449203075161546544518972650036068775016121368918452505996105710364155629311370085925739678208372083126206945006250816790557735354039699832544645378152553849066362132139981713362159214412827738830863770701017515543789938783256199634252991979387682703982488903133369249418194902668427892341131299838654777860401289417484470075108544953337761055309351524758611337422089562767769626910041160159870429837821067121184613412071785773571757262077119234818782036621389120780741816856097761045939511109792422538050948017519527988590421425980413177157068168040266607642927671855221969372315857394731457954350595417105921600426264632312957899275929915579491855731943890169896941133225206473592359061806651072540532425097799922230630763329133386640608012378867012066459090928651323380319433124792463997309729480380713470667778674824792929083296948081504257863041539478067647947350452466288203512601372340338064125454097655336050826510418956920237723637090745451015416258403955353154246363523774244797165415727017867607354679405972839222312110992260978647658335493516889116925536753777907938130702058639900838327031433905840042864077530121898243100695007448719883095368705282212273471257201316638324088555318524324557523562851178853445085733099744465034025132890684808596812285811059910965792510744395395257844465545989736246834812467316787783119749779617812433162152895851550024838563782644394246165606241069622289114877466848642457179758170610490183896944269794795734972852861639885441638550972752879738577284612950674055935841650839816976813922378533179495995774212689415031401931078626901533316174438398086580115309933965841461155444795840774026795902897432563883763590134333958801676467688232198126401904914643571246031580204981005206558987393891008198865378930372136862934040149017827597656377579251648804423844168644580730517529842716555981601716164498115660268697582990429508328738126265656515324325479784498670663838996433648753234018323498429927727971923020041828557010174223743361621156949182790828640702331338091687277344381863974063861843962529916672794712805813798774925255832069052866053678005028256123036506183958682120027262271204295853541054507677625152531624945473791221996334685760496997197052811512363638676465669834948783638761976095699175539931362470065788277779960662903723775401306753227335720898510035507819092189457887667296139343940040940847794981823242064164972991751527206371882758411097431988160761302015917445855420289767476941334151526315069276865344511879614101211508115699464601301976857284346992314309274666945572057926278738265532285116977409219765705402600000546281246020753530140181960142977705020776130169405675529097063909225427803095722953867857653946968310609875618732969172252429285534314012413663034063585309765248936363532961128284300989645079765871191223616832478940194622625758913403981458788772834046542763032859834530057580669381475863452169923251137995981546202016305712863508060351409687101049297642493112910186110959889712308161548741998116077751241156763103382196616323729998758676846964302953404857270672504952192293297758434335658862255942067472265729226590300633672352226187820432713790474188243562844299249770604627484773718616065710780308649067160135080575560681121626457939498988045017827299656499588377088456861929184030064158312330134622594914804469303211956779101615388082740601129858425552156563507148741454861541532016965995642685561507713975787639701860444009689396501666479881095117685130499513726015123346754242303452454180753286836905443336863941317808885068432550234189442892782740779161245077375029378789278038221458236678150334176798164282077621817699384980269827715862643227408767804366133808453380192588396195428189929441430456455784110702876356557438612840573559004426171412046187782186969161264005085494501456334990409219901427188829094376511462001773377503662305726056077262652751595898686599277163549918258374598452790702683593720208905325673582582894942559471332568600541302239885555405765674597724921921109309738821536033005989710384451903073678973083176099985587546046888439036109418352629555984786917901911516286285397824907507603281514835171429520941560400662726452012000348491944070257287770126900920861026010988066682355051802754988420958596467909650337119065589690357748439246735609577844041901016699168523602083152655512645110600342586562939787917497316550479731507554093771810425256136143350414728291054272104686672672208670402985386065096671665670378377425371950606235596038365682246573317324961550864011499224429129962552946369757291030593628649030335954675145235279738612719856647637730081703358109277914501251146404165997964692962142358622696870669285605541712807514590387962177427192966574481918759115317766539058848259019301770165468561573851276401604512800538548820658998167341409813711227219435630559014478073812169522001381047923633441201112794195267441164925499038365109246142544837744337251413016975662652767085968743522626318541082017780524800030268720417983648775218577560670380435982470776422121679903053817768291644556022682524112387467806689522307758364807302815825948301554206269954463393710740976935503272160255124472270883319025885797576929811146939167749136967449858496174912555043301247045427296041408010531557785878080568410085640759054295828183319512122994264573875669043828584958308455775610824217093781726632367411199807141687529179320962570449519716115056549906958821417172695107772758907621780294974797719991602130876249924812436384543718387476709790800597214737217308819050589213236148297059603118401030311083052821647164580966254759113323232270388759348223580267343752066022120277677557327620885828741386195100614517903070669488527436283307154797485665123138052264801044409288775211715123178242366249347295007778078210463369303300389292334268672145355488481983127098530079156576674809825717938546062668841523157691586141864031519515452459193367320538846984339766337409921159382911983581747053001082021697548837285559972543999575253805717652625277986641465021017329932147685305175051390530857692591014215587252493592100205820471541646897027321534348040913397111602567876492720864252871376712676453483363580105623443306334280064675699028361752789843222704809341409419270744418166764868464861781109410702922871753704914954105343444924221352125434773187404871927433878386892029359497968414596245493464621555903568171396518468632935549916109381089623410530695588592567352017604391305879885233897040184874995812114473835043751081829682521568270826845222524630818780132985318982571993716579209048266868372162517459427273625133604898121416854838321527646212608728644648790703818782003300278150850039674964199817793697374107266891775138767825449002968579400747066352248556950310985641360363371357985448984440180555271199731577586599455864896495671946692518761954183852405038238114500723499494065876133271546502315904865959801821915110733978156233217940598941782164210482775812807149806191685496340112571726557190952318305863755959368345378826606254840823021848094775291680328670765168999355019743340590146732680392873655132460479880392040688910726452553618000611184784606455555662956307611788230898564579947635126255776042744283949569633272805135353274720215827686840327947668883176909876573334817411045477126664769170051638053539460799718094177724712605667751867248064550913805310160616571934233754806932171694019305970900948356498489250805141948502862598744138279587960201739544887212297937753387422777922094226607557737803789565665953233065097082404318652304866421980847978907287132577692852735443125300181617181311098865680788898540774787290853431762903281757573480394231444134400669574906213678581611015519971079431751694402443063629292810762329176483161448976461927860227532646560819862448892906170520648139546087666043248985620128694172238559123937278912171911464175347920666516656571928693281815476509437403441678008529649887535170977228212905900064199379230014452512482051768542215003997261747133366741063438942662327481471282856275454339435103397244927630809424638307187378594344379834652443253678772068679120821339310790434254468478636584992454887913510201972724346273015883324791526371406948194273306994783451779094299529532541417585008115378999059186495802035323895599280963527874743660228399995505650305189280889244104315178013151462859389148462842629076606054912595593547974864985263743516104971472587723262385279033770324385878928309800169410960675240073939804258035824213036452667858005919836843638780199598309546740146697122568182834591711464780591728999065197475036596550724297225663497213128261307948680260105798663445258301350412169001039014590068373288838568643111863628658842175902911078090821630993959565011758661572152380258033176329542065958453569258332762393958289865959201133360326210039085903083795883920023813591121702958824368551185688202843042298582900221721664782408645036836920083601376835843773635885310190895257875750594867250885011807584875538033746517427391151202955312619872814170141816075479194727469195396236682408347100312595820480324569334949036614673692104494221066719243299845268617108981514165944873707915920461559642468027766847653266582707090065390626100579158214166526844576966580506747235470489251845839449489724066405326259979844360714415588057845811109996097306302793620242551178096188008945904697319097729683733103947684728918254452847509801663051010312237886142724345508657797554746630306587288695514191469195757084238190269745339352325651168881713890752704438325109947222356445170688631059389447065944868025697962793874528517909655354567332905893645333265201421544807091429007238171784596988538539793013463315627661404831872254435718768530499506634751065928016423912913136201018760316269946519451549824137645582011524820696812995453068092619208708270126738284744585168097175822490819430370105245538953888501966177500890400539858569354669526373574470081361980173334775842320087035764752214360719361208461756317435916115068829491127311767532854521120490458375517512205250572865333066205892519202140091775448182011659829833244240777253851471066644379684101730969144698023439234757471364160141165732587559212463353590282780421075714596768503980893373975139403359287364086174452047200298889114433686024280165929988465177892239225776998275347548633765102722268422339973173936050804022705628270935188248324880652634793196818399246464431773485770204759150735863563623918369577695307952210706980553746457390975941113615730465830303074391456719658835807113431144969014914975381709398180143007284742962925920269458414032948227430817584366115600553499734404881376856106640412035655598246691106731484163516011089453450305783146909474825405107239047157089788569687566954375409140826938222678950725260249762457584127408759002264190229132697966993283026144682314250963094939461908812635222178082573552220299866422505904319447203970030158980345443494238256036712374487177092132271483587884505179285145987921992714113156534845064490662901695783410675630580681264974169875788684931490842410020287647956023937583667844889667911740776728352347371861851417330894185215672700489733013973126943727419226244651916563047417537481631316416821753588301032554932873905291930690508316762796253496077730598284078249798782932911355592107393640526712492287794909277644610292186538505261060084486265802608803127080350659857691703969216888618154266008980858722348533537152362934596721206319819867535627970557225222421124255456546344172075132146704570348309715359489588449165783792479970877831579157828688173018587830352574464805204136104266044392642404362708807475904397921546093173629648694353803817674045433623960099446720663989696904089185760127656220511260686060511798062359104558534123022936131176131819161195839751716742222723496703251363949902534126664028430047966537015321032565812924440196219267782660512837201375586162876279109114961547817349479078868998629403090893085953423540221694635576548036669490441851866193725090397051632491869460095938502860533055087889138760572363454307735554252218868552900804051485902445569206274180254652659115143440315620931277741900415071809503877009781320565932821781345493178135017267785130035161775259702651282916418375032188602090894577089879747269840668889881748547178551215771732608980242205450955207492735186180873827976669239100419219446064462925704600437467638891299461648283532223941182804829762262444627320183381148908415446693495078463089051628821636917197322258104459629620827565491547099664635259696747463983514390757547967547037577695379147193083031174482869341754477178340227142512809895669538295939763387842699305091816367139952386694410020225978163489595472406757691145046138278182120542402041464984304378517234168561796811092448423449511701386049977102013286369496245925343049349815114938082766283452168895844661312311725418160889029091966703826588955782375419399882634938060406161180928344284666356273816404413933526208708643315761143599158370150814093101430088471875410883174893592035504438695210303024763578718906641246239937501302976591926928135957110842360799291178520039438344299724585502359116829582783714259909658924685913593625343220601181159987888778852275065892076549733676635307881629024388594582826261806340091618606976629423678097619711716746647349653222211930225649696462989444225785078622352223598453701702679906127497675603818288431643238017184330723335491840051522725778421430130195561650966571129856574353547348356480941853645791481760104209760443713837640302925829782109213998379612126246962602461069251239475193764743924640197057727140394499367308002558157281941463425210496839870169049361913058702982485961537079044367751260877273210587403552657634658187710279188113177433471809508771919879342268877469571793851688342413425800753836144804705660526623371220622107434349550902502127534635897185257892573519088220027418913425012474019161972273173218145618306613406774377741763822837721154274536867917707878046002333639191164012496942366083804433402096298426617380702383732717506364115430098703230491182458852517622603969204054576996723091959269114435081330536604933310248779391626431385806019247619499830098106490424590213219209463283001371464771016602088311817108275122401225598850380138507329824050410164221726051902245408492985757630265835294136017419431886948408392147960585592031400362966563596618575946006316707880433937762801071891238869175881995933992123923520326167450144690078573124743195885143754770938229609979571160335864133910961694414707382242120143339154875543872945962299600747120585153977317557900349285109023296727803607928182751236978166817851666702184171252227142438486437765014284968007024933037473379388659970674327466882001976934952920364128851006548627909840322945279711819287591485526420580044508079437383595269688190456340624408249169052133675978703457966533344615619361910304553086537788699127383833731597311422112774398870599705764534525714085993351891407131188925538452557797249485710203889052136712463183536894224687163175108756133547137595405733800252652587616165752478086385337445991207708226986488124824548656371692660617851250664232048190026486713781864629563149421842683526247973842512976502433974371080182650702769603848255761957822089884959864658124404677350448887004171161705472955405111406857884804793778395682957689691045558728427006671388484424152994720160586510402178916974273569269718180153958340263893503613232933344291979481892331039952119105664522470759297547395056326298842333300249544641622687758484136736819387923880350552844225860083648334774580736300817803689157070460128054220572352572552710911288876862256719572089075751667642122373499839012073593448091978845687030370873644077054333819975481907711427980120551233320359642481283407853899086684563379100622398748734363711057634791681968682735900154374768514706716475059650332434033946489229851001903921928253678278690096545390096470267962616699698645255703776131171223777977330301727011368460850594019652796681789497367787104411030784585179110078248175255356279008752448016181810807456728456193519791643714353411138947274463012994049091421060525150056726387151284688559329977529191758386209107471381621367072738507712921920167594577158620218469146807981415095389688173006712361366111300165145681186746333159742728602249074782991899486000542491488644216914501744908020320567024457013767263033466591301499678752716613973000909783850873574415325439131493144808314351541006257459734207112595276824670714852422553414847829463637533113392904515439322290857414109334857807299456308493180914551628692601416410333964870300053689635185627611532896621509160547263614856625180095966017270965017129838597931196629695288210234454262086505801491772533596252206965541386856955152738989168025491616427066184475086765161668097422806302275911360231633447607975786192631049313763528014238048071540014296694302035775720695338853675632352822190320886989273264545551268953943687391539556288803380253049338842730095492614965304383419276814264115558954233193966562059136320749054109509174181448436412655850326746199341715410325720923002651544536707537693254022409604827468948334985260636115233718444582842974568445240441803897457347828218617328171984528885140645070465643545773832859452554609732766664135796265705260831810826056498083496972050430001593087135314982500421572643066173378476098389525526424282342814110950457011916405002335202140142343331049162031621844822585236088733513287224445627037428658903130133994618115880968829828447157187675135197358044479807653688152537488995973136956265840376908678807637856320348953578764116819385038649903130092789509156681785391173872940503566610084156186505393618435254918064280117052576956551594524792451580819887804901432625041863121852833704853607838296790930693866975011443551740947253860907253174599900784647443687757842733137072737275078814556546944289748003190014922064822761261175489033206684789081811533079605381409575262012309161816592850094380500686394652638520546288032677144481305948269977650646470471680450284453754400617460960704198909054754094822355540012894349432410790936736745269546043578254560083038594149296110599258636149139267187245649017937479392801496246260926458882848812847298688782624510311335093182602194556703163591068056402998889137460948778866030678865753679278923009430729857796149321300569276691108159414290321254089523575085319156602287382749375292755206256894914223551828230206921742717569483431437272126154186885336071781640772587860482171445789443538614447150211506615599084392942329073675721902419402997264931925380890672964992891650228873849808472022101548312567084578277364267780478993743902972901918547517177865134604919340800615986517686247258210665660681652564402853042612171359079935865506106685973457473747159521647659690991084233113793744706658244945087629025472844084381860257356104773031133902783383928944616735223303907157827624149851670191069686023416959478897690110311530964195861475138815668598011110411662798365221407477420045833743653693619675825827429534257902992209401335857879088804587482438618050959797562523746906939582403110261692439239001123815464336422236836109031772132740486164993768942005218675582400599538420165432834438690540220409429775041675124276713804612842316718131080653369535829188009424320417194640184601614701460458809191945156138208540152828061107467484626246362765741994283845038621712708284330309994406695999680672862394032246151867100120578014050053410322665760108644685732375655729157774748734601475415148109311038749074108621279758030196716452394074304257494288553465677064780022420795523586291847629198314914099970985239915560132284911197902076381749162015396376027649312037018276279680985637544574517317290511319844099572336390052425587521673308549342980752750749873477480222836569834892162002059983191709695118287590945706046949039969341142206137741720767227909832113093547368422688062730556516142389372481385721939714782672908404861168651152322827783226673677453675909859291606562975634551719746725291631990884479259393718020891450490791362252417108512596678806143103442140095995144240853652115147505419266278666865711812404183797739040690498216848185555507260017819326696103518289925347261961526853074072135848979128964763511616991046536743495624733445661140203093701221218586809640502913718624533866589493986314841341668990158877127668550160186668982700958006007553599397180492583491712588757592880510496291838058472487772635013408934779434026749166299634149809170607036525870751025015432405752309823058026100422173232883903095887690813904520463122796365705229407352938875572337464775123866624178691523526231926920204471421592162692002280208943263268161823341157936954986743570561808877925142219618862052529487030963123782834492818324800782776427201666667076794426473617577079870121385951100730880773976612882539438085605151343653432141826383708988304167491569454711825039787882270942864564394225716452918225685059559451853842549782804364476263439608404292366523896851458863844259715627619876167234076103331538821299258958663116098129652791109461537784544120355678740226806802050851052657325296660183209922957895920767583802020663614647709179636785820870545255094453233541320140125157637423092928604992111040773891746782828450692228443509239522828932804287627707532334736430242902646075795988679798976014624395216016681603095286940897019359972494372527015197626512161411064706280624462261808090707047172381164963412808169105831302172624747973094888004090930054611900857402337864034518200430150549624634092438784012872502858258688812180559869951876581447107507221526741357582557770840652301242154733786097741329380077563991852465098376571687230035518348073292955434918836900412767580362429232455466277834428267461509668127564345190207003813156561697431284329919769883306135925657281670922954965209533888592571821077637818708621195590338990990440717853509397208871357744198622158088994362994508337803833523258142085392019790435801030592429414455830650458554437394109738907666109997424253503064722288693502843100203508829860116542664709402239910422416085066181977366441561199966132892435001232670754755240505022266331376954005582534456247942703864602067572315332685324444878758757507864324791517293510060933620090749247564441827636559092891605431247491888959849171583217404208554152861790173061972597245340091330113551745621074839889348977532949631649177051567478587466934450054130415366541218197321337411150281052691792085692454566258201391417243409448841416168483607702308471989096910378405803887515628284967079253053897029875076180292977779932685991308191817700829310346457611440869656085336699709882586065808718896273762634530885833884742360784089565746022134920459887087884014801773910954177767457833490805874921746097412527834937570578767333085291146119551087400446421454901113533897482716265896521730144498009467319070223190975263483513678240053680753847034873816169669088805812191700486407675839957443843918385726182075420693409014621083607271557645752778342071257815405658440805572201274018332928568285675253839625404533200742841271289188710198106065577894030103786261532109942293876629042934562767315147253845733200373907332866293921178275857850267313837194318557911148276623788828123346692965499489112163110773764307689451154713658747960799265607319649734804642476572167736370017270332190234588465091248966138041673557629810353337153916766477578871735513141185525855514436280155875997999406505623433679616587092780697781840228537516957643888521084346940387154484597095024222272994411070791653339643477784652965834510900923202482194083256028312070437479480794973150851243151084914130634682465699871247558300910080592066144369612167027776382679511862958388467657561541365566814251421735978209387362304809479371723262298032037988887043918043659841543147173686997179463231981153211765146244057396476799407001639435424469847349949498891393829307821279070358119805411577892841026909431050615082215823887449756866311894624511941542517842831151432563008246393344499818360142946374552088013046882120276955926456788376459337317854813791014268405216145336859423057734462345000126190159054411172883871596658738508462905528098650133401284547277214432304835606366412038624929252899883468041578039005514332232488300869814808670660549699277372788201932061379581357699468928888167911321191796970840040137795917010387043908416219384125368315400184755792760668609520120903249940143129781032602423704632582277408631549726073243137287263221226807058144531733380435230982236056903620248609143682594728852200122431002157356100842954663087059484181096380628910962616980198667308691791712982754288163354293803234064211100047714275788046587623320434403881900861661298384606712084842616719590351138385284119180525966510670969385674711579802531033159699913081411202796151588700375884779772661530639801209449001476081689094397310013057632685439624348990638701473430891284913412823392985970873163447771611867534288320968212675189368926259807803191661714335452924657644787109698244723679734612433964360541332498162167842921404383796765425361458444478967184810930845175885894664033832419735313622918566680825222641891947646687045790856892410175957932518291416229509232635501138352715604658695058273116512944207271325843232651140963714418910197932964238479129048471885626681174996483341634145408997103306245608730448800367420336161299530753538728356785395631337322057430434136194590162461063372520507543266274707874794331289258275455806289660369643559234110580676321755376990409391730362292023407366642389779394996952017829839570139676521918049418319075126973601652115560635458316921252453080153745099653444607106920586462237868334695132003506110441932739555038286137247576079792140739107677929997538641359761531466799225313931075368523931515889548867292108266769767364523137310858109187571603967262436736644627446699095113595206027108128328251767529058708977400224371475095919916280047064245034363722739494365168705137139110448531501326664104629400095458269941884665505065802633378933250631222580690662373807228758000978780261378107617503963124095116933636447923627198708436928130418477680360840460102588383292688918670299147922590743319787407277362995683346931955046017212440063170089190174220427640213884043983966905438664245484378088152463975772179440937131623819055282968414260039030573588073862810309203719962935028230343291546942706727964512116555758200304641858244636130438917243089519737126655924063003658146664133135889128277751596747612968723585369006833206509123648731870188753565947439990907317012313343575837064509103365570189625121125913126967693861861071404525154080446547516281295528245847105028297326536987048725170749729031046434863367006732986499169393956856215901966543448481741462085075040720014759752584652278497781902098191761090336343000473270165897493886546661910786369903369739563561028099408763970502992013760501043511344425129026990312472976322516774268558097725905403452042640069614503440301309754538772347700991166024578564522494432137281722364081669955153094623271682783914961636571954649887760642949744823291691965223011356492827380932787641090677549041536435757216433115323423408942962013911926239808407063302064494290400700639380108110855312798854821828093482988844833705198499223326649596730229228740544458757518020837414836847632592441789539303850501774180910968007864429031453016195733096327890012670163851442755248051000400972603070625176206089797091353071363451034249059071944057272966950172023968563307999603680707841058641254025260049976273319288043995458573098277840804592644430083502897313840818961288597551449588118851027072339308284688253608148524010224011710854446040877908670393798518465376004371594587597848236391806241178464767231026998644704551195014748541839134062613268332439006953915958140098110925946981976393102437880141822435224071173705393285478171356194123626431620649862797467212206338323627625962982484764313570323787402598638213599280713929305526617846200196093355750386383480337337940745195025839825806660027544745788873538387342030918580462934891505844721350825294668373152362649169689083203423028281709081414008448887616579056465140502493719590709993742068846021303574035416021063819166974463863411184702929963195372784651334300605528920078467786861342823629775705058257959769016255948000535392319846120367683793140460136475178040152424289464042154756634694282766873550196962710615690997946471027563949325063561647372139130157662760142889431057147413405707979165161747683494963134107603732587073273892904541320698128623222646130860727729769357901409971940138645639205983196932651622358803613188937880955154825822498180094293427477339492502398943269483776025752195224374591069575286602999536374757852668821132859593373825922653600585193938950160956269156493914301404197355823273808663274631297442551196635497096150205586057921585375888216788687603836067433174609720359150858458052006451229736240640805375776323103914483404651736724611744026381721943896578035647991060856048719501557124192368151836059021647971176471647748400165872285844671679559826638837827442730293969058585275194242340307631240814841821519288161648926546278690695807239330279639860703366978727590831082165277223655598021932414598844698065012601881401570170281696558673833136288539181463360521616264105989840113002625578886177976975718426061559024436726565907126694642514415769328495884839312217417061879973446364299954712637326115132351276839466883166991295852914292794154295131882964543890328464385207158454748887265560397664915645305382644331848239977663849401223564908958307921449819278441315435413126221573362649668993759621530937473274506680403596507979461223631092664168004874479194035346103311814167496592757173468072655120004812175436237391113438205594772488483267752437197980844731743808620612470383730127019025701141042910187082977080664931677511811442697145374984349513793850349224957549423179580543982317753832929008912259985254094106829292287764216962995242255384785687290478262155539236166358278455116929012388770353409068894117476647306175619741513707811819692260599957468510707697388763767002540237050349847692351645702004630277649338322455853402861968397559403169667589896416888590584228177993150502426122221108833049174852325549003179474956065289837442993924747801044134954425625279463570200479339563638106445761539175138056069793696863221483560019871758563220750732792766571922788671413159580850212594385987574580029382773521442592140774648852160726493910969658037694273747434431176225542526590856237125586672852379393795090858798808777674561790203897218984668463224400884210900787890730909239431988111256157473759582740328736924522738995698463577595844673005645379923456981539186545746093564067860503666077793461534650716311218564804642323649156337989532888585313865956994695038964208202422352736843910655232025174568753225568339188512144166958552798623143788083218042789628418016148556975169887583918508185937325261632192647106469375641709440651686098868993705461531165651115147112435723802942469606997111117322693111397952501401778960426988383337196191712335733189140871951495596804105210251702634656644707039332553924763391360067614271246134583179756831377026224424573263515547205015829011059177492724981504988108137764777465064118756044750314872118870984590654526724513327250198588134542182951295055707671513459026517457881244199405871709419270017372175168992278935941656912039003920985060451005388122515100825599769406142006613542769360341532099682269113485602599760124491034239162079078100462171168897996757834270153685501121706023622056856702221688738207566278254858092584830481385004396053413380410923563093906546250451947514950281232146734361069519938199346427417216155217167025460555900231548491496946949148126342775452551956125467138665186272001525188033832984654004184795515217655273944893772776388772137214157406325951548643782718456692317565954563214310071269351626945613251755276325963712695821832857359144335772866536324138900654146138485371266570368398149056205538117778120241407766836865932094214212594255855567132120212920787031994005470269322565739580110682815412901026304650035692086531596419983776953598494388929753027717819290164392960003968726734652753672852706209209078126171625338035791027529450377832396498177446912980144948295787072503325440575886338567866049946583219537625977103080492562002580561546780299454419849101754694359381111700001930588862607737883934274450988040155845472257829514777079022552423846643284264814185788431296570058304617881222939807965519445874765597973206468649721857545925783271678708441594542905180552071553019054107610867332123466819822442387621991958794345137039477549795126685629274132172431521343112757375913733088876189373014015163953683435447454415481497964180346446530421505507472509913607609914364600018014048841619730974225521598670033143284761305419935604411349679269280967904165621710765787939133066857731962015986319603498784044111202638472772096165470067106908839415412276326365036103026467309823887074027061902304127873227437038086299900609030265726445443100150240675831937094414864559485194986226858722066684012358428040039117470705938023735849296536979787573655718208601050541443324415875712431801356715640726117384023372389326066683961278289245428989347625387439312046192248185006636618102342553715922549459263418796444380732958403266908449425137233430541482266092491554765951462702657748724813898617624231758265921337082352566419373154223060208575012181830547643942030485670998113724693648478516890668987744290687843297693657509856805437889545248451881319033283941604886329457229066236104167151375953617152695605508389824857656879631911442955536733838337906548567306060836992054299329985486605661824406135670340801044360582476796234905601415882284442936146078476400236127267676821202686063190770843598659040041589087012201576687305907527453378263968094216349390927865719092769545121823260522509199560051771201103296117957868543384014812990776714027372303019718109572794985902045984583435058966968875121506570026615976589033018577125830977227650032224385183572744965731670574564675056819773626070961942657844645394978600258990751961470548598030804950915462168228373207988635039782909631856616316303294334148246465467251336119192899886670629754017890951614149445143043854596536888406914935487488208560326475107044186932772771885505677967190163542219408389833149556706733785742615331493159914714800756216792548679645535211406984118208322900155937998773554074936316287200437313136776531588891252837550676029307263792089529304350582853935577723558255554563232779753048063653388356985861114149738336012495032387165505843313753240540142670632205500910325690779896016756947474083019610955178054210255518694401283266249438529134001332398647603684398460579080402262712114638884151831427435921941939693491766780509974717447908886823415655389807896643681240506180174966936244821351954272239241693196652889690834678267107625341064622905757087396178572681754270417634409055572464832286512698801404572847238794068333971124430907192757850943576425463607939937162744597260167787782158223368921913984468123356569162035877655552322647644151747373632791261653621206721037098513122377103684926337880317070098195198611373031164894997489217928985438274043660937851547925824243442266497559085122070871668943781899536794030573468216841961062037073697826813813942313786608814207494712234530263694284317543353775376522072588795656861865686775450063500598366531854833450888954758568468721738346324730451877563689768774329131877836901180536400980570388040636771188208220834643519905929737201367334570639333601448539053696983502473100345303045778220347404794124846744286174003739254089724168083804215541478884382192309355848220082358709946246584522987044879676611048259906067126072996015919564483351019883070135818426162794303221238705901286303534951144593144019293214305264078336107652459872891160467364703806303687956823688934903467447088745638211638458188407801490709658933138834737222743277530919860072983031947488407624968462465529349514963272098779800805571997693227282869426915083165615436901377524298626273646283785272567317969775238396882481100795060161408048295109629607578930912766078880062192820346733423091683987902040097593910276891840533932435359978431174606245385794077083481320995451839557931332319905547756322199038280149950007181149435425492508839564471744061506386466311005205349967095474106807134106702651267057354610516812765708505978794789626775519345225467020757736879480449462584594924663230554708660133505773214470378731659055927587040073971169672471501715535717175797306554958907665031586482072669859222164112224292979821282907684258775154406163747749387389681410496394913024340167111955760998488923251716532253418831700708199618362195759642684527597557842682841333907926429965837021777332935769776144058523600212384730652208538146769008192540717656920871565436079165759921346714636744189047775208091416152039480462904646754714954960005565823451470416416512012085462874605637974273389158412179241338830337495434986463777569205738931477441052886253361426456144799538481592524122900697209445034155197250629192994054635632028958448490795345369888519496043015265590680301505365313352937344863461662662009264971053184326480637508035843714474997404279688124473662503533740622784060674887124936869967057632962621467661183726714473834289671690329260593441679225792330549913325481533674376163965631419102113639962340452269163608201144906003809499993431409570771459828650370748021310506656120072534212537429130644405875989502788945519000857942368147550909731728039733909400950606103210662775027667431768049547552660475187231224773832385197799990126700084686550769597902196794792471433731308602778519575165428874397120511828632649593874005227573133436855508967906960941426083466259513434209469618984490334783839235119040234399704137973844249277340499165310889679650519406367048072682267265997948241076771087583896626190851925944389644668694140805887925898761122753661928303024521554668150639364805303305068325161878931424950170806872171394533631836882513194716050534794592590618273610751240807749994435535757842868831019310877418169344427035824627406539890434365527154402962619950159583943418042103749488592482644430275576487560406636596130919705450322572314183893776245068985798236575223554892191588306003849930254541863276828108801543649894505436095979918961275086015877168471960490290347135992869627619809678529639387374029624863220778090718108809081992263904274056330587130933027115722246580253561575066504856320192612191910156570924882833636821050896397599614741994977519775647426111057215192609384282590687491947728697670585783586898755259415311366816291608756357953708810621954087738458690252660680967370368102168911411986095149824786950440879245290507889103130990758311887942161280279675999576537588883292597808759721118258060009665290663519649597429143021939881069302788975401811217021788409593587011697591098685150461289226909141181492914758337763117391795380661055967600512853641973158007407792354054754860326682408722300754475685113150652530280693094687452376393957849873383419105293786825216553480954166077637729238102073796290274950072564156771377815082161729548195561462515970569062395599757034576149891581092703813348834575521868393112368303179520657334287716627841269182331546872054448280249124779223819274816858396896141313356769634755038078917069523597548092836740902357619178208313380632813357538665823468864907088484490186764772591807871678877652817263711038674655925684482781172351289104926297038299326719935193969834799727689994452038061414147009463737614354891821979763840435486732837916360923731027189813297270576900979053970968206689996012654172569843982367449116673605043082321450680013862462091087792035903085868946396492488090035252727406250833735436443176710921803812807118845398361641089274432718910643073166871587502579815054590064898688220684596153650196686608735711622934688791136556644355235910253564532185832617391911761524161630194052321139219596979186457477855847822798014870201070810339810194933230959599664906178219261799047856823826432301673186631176512859224071229463476907871201692015775158182381688574463998970784898165473261987213749962688031869320408566431225516976373994309859427607766079033710484124926101014671700157850995019801555862942602498402736508459985932951235980188440663198213333065125279669156932662780835328063316803699768131635994095554683835497831834537957170016265111037957680983151677311083094314241629191245645725185657084912161808743527932199418149957711322972154457625063143623753392191409177964596008873663981774173188385053969143702485473369820360319315102336403815997363526259798758767836381957928766703083718541192563782737396832919622470945452526077835511390965736364637409722452075662089777749430713754961578854251288417293776197729935142753931746089425160123700440939926442218844917792915757818689633373733211680571298000958377439082052756933693009163712192849817303418079798372499758254124352754368417790509260818851539356588266321032013457960516226298176497896246592948153801095473782624323034705279766149622455055397101554294203425945529313329176556423360138446345268106023631824216511862921354015073129128770639396042777971363760300714559005632689500230478254693735831050299355623533751322083756481740952047169450132168028035044103607671470805403908237659399754520055005677733767980985208585943421079564998677698703171032686693131013766485069986518188143351509821904052120373677097795478547013204866291290132663060639845282794271761492602745622514098280947455635388570596541214508658015051938140039541666455299590468827025064577738328173838651065582130951407356664952077343684449435743010865622019463794629809744056754164455743973709724421961383591869390238614628429667092594984513274751267984947402572122192358761722549931332646812121837883553117871820193358275894393065588683853269869479379531025987456312225135798058692849048205529089266096278437499059356400018577715135302219727628716287498781053441490778340601810611107089755256655589303421956654455629531931261952399139516260306093143411616324941585889670141979041979589639792320257933234070748468122335459218689588051869315927310611481984766018365211745635801223354900159496782286398166052465676549331550715253670151790920284382363708289159526542896542670608381992812588851286872794693826776228613451812198064315057984127611069674057622811717392009295716875164100809906370098897726582178522070462961404080717653459354392994439357982157919825350026641647025694690064750982340918945554145434136289353605773161688722269136817219463053696874845610077962397226220229406116518812452220330202454647401541810991889824376895983687417249662929528594163769588158070464969968632380780005972366929033345679116967294901830390645486826249024104259217178630384838899240854042224626565681620221033964915880295094636698084603006603656653449251316627475214575322977587289707645073024308307688995202360251145940152300485156175757023061450932415761033028461627263754212752683326981984953375457851260597859687033986144014495196493620616105181899687220285613106106446194056288037646389212251280561053491375702593505460056505985261196911082557207565920145546573293518717511234759850497963433342636169924276785144062889417554725029163547764372677261522981525525284040008358445280433499760281039026517870738136575198520709446020886068047300119178697916380585347041946805478851601592553332620578396549134647906469718711913467816789465085465095482099557436900811965274683699466367984455554566206921789170768662143268830436639841761141883272677441276493270778616910766257054377810155488959467494199271590427503560570988927481028174331965150272865122847320065056948996021096319099979986078064813515067485557083131888449670826839669318998041503234808783547404090836597773928940826083981618428242238110259101822602066869223520718400083957058042184564355448124324799590460727076544892153543377074587734169809686109570320952828606972277941034671156483028687386945241351351018419074170874544835943009251601360535467412374856099774403374573783060283538833596302346737162071672344893652067459912671895269485337325496785298704308796862739932694909700665622456949216188194144587009207573492044908616018479853151643611632173168737184595025522937253788499742894844620512780904269661312604091153445917229287206417011290756445453232920578777231543296575468885464940995994814981340312373978447889126394233884092611981656774997174519109419244239260164516924555516280330121249182742389486886530865123811570865681060727930986049423627593469602222132166195297863411366539614901972889555493532511418810543733577374429748083593070763958601295122655241406437577685156999714117601211127496605345799037941162339308953122922305890379600811988685021885344742118708004081775100913378174957389998283362607944452382352235541732843358604408744782580734358707347314196591173577594967251438781211770527415695052041457081685591551889831177871286098463532402050928838856380898012331001742984045347169112824282043524111091962158076585659478943456918010910356654033203003260611339995372320107011117865378642841518333480039358098039524566867339760739964506289995624417962608260849154826377651942621129170522776396916374547369316950370245309428101448447403896340480036907310641806105627633822155910754691258720362658238438448797509107613814614535892113684135064986631188778936612418205306046092782347669409594466600936504320187547764776895326717098943088337935934661906023758710949798023533829519328705428684866429639782576862479942538236978727221193933173887552247459487871344854933390343664708344946850881985308211795427119918516750166931046325619273148861375102344561143223417868124016216757253680348768210054195395016290041677418064923332830016178365202131349420474981697343071264023256770402229096143261313322753105795848513072775973314593933367856348762480134290717444948642799833901315461557023682819375930353073332882655110223360717070571892358507448983012700824785174814831282387589346399368303867185347161847672367122696836563529538744825020070514467374157734512107090233551945670644774571560218912735303625338193521151977214051539686869828495571506976499829835352368880782922927877196070284721834479119652079332472826813070717141564918281236470395032304257172619837841030482716224672532332108480533181547741705485291396073596941118623565940593874401602814769561371807135375769990310038683782618775991632803002888598793475223462639660852333116844297478547610776604507525815783321498713473606364024840044835158604727121719152358174498807967501645517205334904798170341803594753053911742931447790547573371748946080304078534209748765875887607045500358732864330315467196244246776044186213690731916715011214260424457797505605663956199962543434894978530912651340445576801107266248241822500735563255714612724150455884572092237304425018647042392110003555372844641938893477092022937248646605150330493068939552891150440111527408301242139422548836611867508323308992643861874443810483355241988341193590018509222208496671267373113649378987934648861659681883551549318859128558469858425660117259845946258613722346129067835059560144471681382004670738140627085078157763256127953084971686547252878995162124332665272271688021758134719894291330784955794741936675802415574274488368766991844851135444315521666679240540552083772298927842436292083313971222340912645857767752144383025231098045957400621542262425274608734891415587192761016139862226396058765665634869543083969558746274702286560362267165026795888426278694505244025087742948050694667751205772473307976864532225917039301172425540870496076493934461378062715778812918075291825522276362323373284461996402580118437169849522239850057984654052686490188981485955389192335136257348401581975055600887687293303122370592877861812170532256874510543668160311390052604845960557793787022319586564217346219525062775777241347028640514160240939359483763965816894043671664910646361297253367448621511037610752859113994616249740240608387286273947095980680352839311071720524705119407885117866083631592338530670896248987468257420304690045357450749548799837329961228452842746646907053941622894911919483338471737103026239812699350304139118629696697873004567307853735180757803418646968353814796614708287686901387691632428907527606079854897396814784043907547541710472088594915256574316787336895093825242639482781735799945071483940951636426650859238692753812066300571514862252474008422650974944282738913495258529549508102221780028809828956115258100625180274806691936844248690811126168127988696889160904261751900164963233528246747362945416057673222752739028476431378900245154586551844154804845340694145192914893250480833510401176198165538908243347906111551248222335005850001100872244729237217265004805059379685745695967743387430457178481003299832779721994533525851789272041392846653682216516610091540620817013063401429295784021119293038657784636613005715786940784889734637147495432380732230125967005968963502707843714996515720937132446679203820871388478713324422843720691495373876506755532260182722195026169021915560308419379400032074041950777125517719409767852053036973224773902098803595459983420910185957776317599817633244336453418382942214801280520913999715575591408694951985506351767076225402903156964829488983442958448113891942881800416080234342448732616175060551991760918996317440785223244866630127643997855038548346674053829702111156152552237658670866150111410044384227780529465709426155217988757295107487236824566882115963428930739087931209395235310346875072713365358739247133213725898529498227362268229130944550835526489582674178120462574827507223890175109679438676589175618344913422181571031005177962485410857753631253283881429802129050757964542853217370470608356057315404030546397545146096602005650353626628677085313895767482452767576946190821935319540484393496416508098476922379303580633536398774260857132628356620064016937945303373230667938239278002570003969058916408059919511885372582876610682525971083999932686064773013764053274103025957545012601718419163165349939943273360857200426858566941611252435120680297103542414218967934979860895638330245192597383955343532166011661765714390770415950231356195151667117853483299532124837266322941510941721103876397009129283331364472588799948773083077199617388681572437896142592387534101585228627088936335038099325901153623000778772241366148029377085628144447847457060938801863869589472885161097171116446872373604792531136232078294030177897344094110131949401152007229654390372332549817368217456676940864192093883023809024425287052956054595285593219043790874954690599406015225863176062142098426320193476843490761571158542605267068014396610194073019132342698572472414479801002138125802963382965907282146228281854140334399211522177984412630517936460943787307650200913479983406091229414674854075785554348120635188120635025849706940420745003815751322594034742876078700565911964468841861184284037500219484118597105634987141676574111533313722534896207416324055666073801869167389957893550251129029967647195115543065548618556138880873671087088818805026381216739910770921248347941758076442848997286369736990121685818534198538724259362831083794884853888951646714867797399215256572698002513832439404684020070170108470556844471079928004772811934666329239257934095370475181254569722844922527721751568466108780309084617740058880136497070886954958633666305488692428417398260586107698465138026302489054752509919156299084410330666442601618603635535812481250939843986869511973678694614690738500580914336988652946731912739832768128370703251999920770152368456144948462929177481131462087907835993408091921901520447374423211149936364947192556603375442475909864266349742898850860243752269014142278028223931520031897753456440946460943222779281432634657709705864849647509542138663709230424864457805381508361528597714423838608744512873950722143823248535234470117845826339041297337749909649080689282563054532722073978507698240678807612613086668769999322545161105454124887665616161846780523241861572841060402425308528916292028927423320812823435500945302719635336453904885609232250633893413496472142035964654537471550174394607757509572849839027175591538457107480312818451519739863221155850995242411489193577856546219977142192402038644817211493456980182256329183419007759499569677813326268053160209910213552559484222902823219899201638654994677096450792369604381341002491974115500879333715549915507625204378480688350510978042820220641429070965185910349242327289243618707444606224104484593260384788122975609764909706603810753003958972388857904032961927929462984580141962436393661754542467529932580756217137129897924705332850414393367853957376742432079356895468697836251820936469485744819085600558538250100101418963458878104892046283692988033551069147696257350738584946071653648661968029063659825996153887497428156823276705864082921477745712714315149312500506015217839062324981445023346781496369213230169777134447372684660611046114191364470959836225493996082252743762440275574775376416893802795332142491724079006359438419012151374691204546521173467715749648414079002802116133377161403847409309951709787353694498135106674447810019697551448564466586407192136430044006951202123111062643152275779684043719232331503801804619532825919285229899454525234847991789931352350930630537042187529111679769487763410819177621294884911619927400157528635089269640278457828052359203068998165848890620625916459333100206393925286671665033117906525865840474231522682562914770776645029930371213201394168795474798265864562956369809781571641515847232985832518782936602591332995361246295568024077624364004287192855062225306001210536588585376982811165940193165783893254994209856920366881711934293938099002005491123740563039541294975132342393935244082259788825085820386746460133399249317841464088916853167381045053456501758840356581616269670579820330608376671933278833803935264249105137752033786026757401499074380442218011773774782601682159243430318701657467055033904630701414611677261790988062487104801045154062527731530205170442520122581612524077380051106923461385033640540318044116719391551684128134256430660008445457575095982853917276343524140824452221965420469856516167326562915030537794568665945403383294909392620346206185376786679806356630543720348587488788772368032195457314281803749685170089190426726921417485576575175969303880700306681657483742236936339888723054880015804101793317309004164098413499470944805355588336868937542004023955131525470980522790950033431564869430737140188188409269293397808786601961067973996774091312001942648612774925798777581019617278536431620532668625851962480476657096392647303088531568628682612659447848258895470996371450486689906253142665029411088546676984149375954841112137794282181080568028846603077341285468895577967752924728818580214433768672510514733257425987249391078159161995149798237175951764632711298748757351654559935682348194625742282808052657776052580798398109731485355898093086796197741553871362224092535912723309994352404596774566079965585106673172924635887033371967875159469353478992552401713178647048892208995303661378346220337250699778432226059356278722016039514600571968393512606504468478905096676932457343830883224946382708759307635691023112807066922403875801391417664111823147376916062064142376357488268072086827248022790588282870276414722729110648051373453424330714914565197524696986343926333384999399700207765907943181373633794511502998065337620960321511092666008064803512607774567444791382339520433603155358290534719756742542255407072917426027571047115245330455134351648574812920534217067517579656066933495107487387936450721043447425151565120028002891465348693305823798064922171743084045765011573715696352529342307295195965162824218343688709909897123895175507838652087151888084921028077307644280014535421960058350622437100240993374272545099938444355176796329708819338828837845425532124433587200086450512521518202510697546372205217998084332815660976105855484542425891431490413171623782596610816665228715252153801955447760993210458884894386426121159737458964090468482368929819689965869162945194876108156276185165862419230302075137378203987113777727648315539442499935206102079642421213278298052243122732062452705306314860012973878029629991840035647119616147661027244494070791167008221134889090780171414463105735449124458248012024692323873283068965911199949226949626547140272781971090606147621358107422311881764175640427707901820292894078435254475682563857513017607140107913483012000645488896290460017113972197114896704312697199553367110454415371290445387197606252429620391139599428968171065791864065497468706288500135216753930264768292412921948721681120610410158820469628919599931925116018546889427868451305312215231147924081413746769475061196204238550986380177885301724666432067966450465939484312497874108443879621245506666836114812467768001398573290210728069725461951460441127328824352845774835396057382123588560857182923601508630137596750245645072636906269888046896380380426989738217384226073808741503967656101950579384134050921430290277266933981432789366131766059807598523934005597317182499028066333656257546754821459048189536288599236337767373175176636715380945015117820070302968811175606102115066035082693563386157591334756617272110089712967082540698221190136018133956890443846923407216576863372662911479110811805410927756875948999864948559155320539162288195111516322753532782716599828298006778553193567553036318099118052104451634842923416904868066471543018931100385020406949211690926421002938168062344860302360963095621498476535200638563724731721221151344726926622976346626133417811529315188676438129881627230124793204656144064555031736177808030453720137954361553743396973099999833392858780468389295041975921239590131003611428320556381992548264933011038476204065688683245545372619952238403752200362913108426762851704232297764625288060919203392578730316869035061502809614237332082864299509767146316873600706828100891385925270525810034860623631454559653297643477128281738537144855185293058010596950351316134999333945239822044652309601806739151296858248623466743170035033844499736029702359626514512461037518011316302085233481703312131335954350688145169349015528364954931806990518897889055468012445517001700268822872821226845140560719855683525682189774506125691229900652995445429053141524570832546101977595934315463759802397504747507562802851516952362311856983941550890072161697470521245393095069743838577163409868392180197827382058622844258572056115505546130342144499700411346743486881923686921851236987049442466486449444898987894517423804436513534617871366977631151345034377730338522594499921474605837647614141410327407281656901772169130126610918820260004368089135769528875631685584576334052598720421242274986843217115481835689522977491609828745097889359031442086772328662481274017496085274467419087234696031135785158521657542314797427364049477177141367487413895114582624270550335943331067186343075237151643333857853664004567967370370348264686353404997958294969962314328294819363495068498464402392538071939163145847118987818109997719824304769387134460062432317024596830138142537399646803912087368915366405241401887945421882276012974901206554388289702158576957439361605780261748655325880813479469579245733151725407284314461910280765198490309258712797865459683056326968512290842875461591602558185993135301583050931489617326013193914516037839257030658605889455781107358459627157924777333498065513763447451195191277051195454801399174908785250458037410405536565913663766852212789218390854974456673659691624799181687488365100043402596799818379556706815107783847508084757914862356707571837611532089493634714594609015049838992955781866391894389312133578142385240841594684147885491376176518308966430994827379136241974947681317616851395533952351752328642780179155939541577146455218093485800299410722830912503726766159947376045637005438716466812451803131836382050713259432636685329242065259071386356823897879550511793199666582602661161337567055958886422130921609864004313734218993581898298888965080333209784012217505244106897221399437860109436032923184518765607780097199930390832617916767447858480490916978287019972167612659565138703490379172863179489000121996401994039996073727111896667798334369469808016365515967915677786442700800577979826539655772898592848688739424659401633851727880323716525216302347094970799089846552178370709186143155257932940973141346548806718358450724112375481634625216076926595109906874589385538609849849347193042581603496473432786825433288390183378896799110936820598247043321663478024769210870550234398328340331805311637879604026060503459241457144194837768729654321004357427649697143210354330144026163449126880650972639566978036146444762407263562100447127023908879733581913440890713071236039391874219351292711591103815791946340978609230855925575596645811851531013789203441527235714327869177255701807056743835262353360265362646261784931041547105092549293762706150208619888774756940232329247604343444363322702550886391938700052146923376581322497057476662650955022860484885641330084497197164093449180935443356438717897353891851926118788658022861986658455551626173025310682295539194891471042260013953480001052216193816962420315628109221639082495259000999231281568306725268804591387110857154186574407136355694482447934629416598911017258979647713726706371306865192590267711384879463825964606661452379079807110673117616792256584614534864264878607399359411780436560587146579130647840383958820064493751074534491181894199653029611581421812504508633778582528859578498227671362159838898023310627186273204444341874575661027228666911505940448428864694260809192396991465341508468401605733050340985552917009727528508336949434023042027335762532832464684707294140745709721091064457089514386835611232008990524446227048922205277549566731941220442592910191628377876998956292110691426235931795826455518972958284579484704365619519583666682804760797621543683558826714000402539682109484098630969948576247091893193682119542106453031591281598621143324545929920898398585162298317072426386865858156031108149287728564378746203224878708889070373234032521370332361284264059881254854025828301144185556550755531787273899890064256169080853233484180459826677732958064861786698676297017207954730038228202818369129039220491964831527945250405651979137858196729081253907158566839708876118317967798626728797359985753622902718386989110139883832685782388327813772977030611919338671568333152273002602277741746568147185840462575475155903818091910790553394479319562577727336560246759634671781155221297552837893526761510952706390510499282395495627007513186525554463905817035203364984739950196471160892517441550374858043813598670222967374294528159035376048016108652944261907791676434931552328485790160842414495342836292308969754323028110644173100407371614891126172063718176814448095561298043408508076534947238465537247503556931451754039348180657597157692751769985262668837694785450296346071195333405463737025161728951974153223031976653778480744507287764463456247631931702809862444046084409365589898625774207009582436844562114636683326795995964128342275117343063829109584411756287731731842281061648284773012723691184421463120224122809272355715449558134294147597073695640362485767255123350634242597441502075225086159255145993857564635513691384219876193006301423396439281439497767677321830973071031305183430898134076732387333825412813763108917110503896299200750965033402602329184739402449300270099178779686243027649762966832600279605683622049222037142898862969554149276786099734177101363395155496163616039154502115814751299750953157870687133289938575675745278096551741635540298999440905266847943711016912678412807080222880295556551875426281168253116927385657882769856581968005081048302564487052062125025116184273597052428068880888420080575173143808479795162746838077763704813845033540467521264878390982788883049553694092613532234933828199769743492793776938947235026754688159460548966645384032301716731239447404982285959432946323852879702859339077787926413939643420295635252243969556932833413609183967723732515431367661535441029002802927961572500708246118744331097660773722033852974537597423096918282979192869126739294176496217699751842462317689164259799944945225091382177374003167789798524253196038136962863672034001056115561821275826964304313929944110756596147882667673270715047572722635946267257003309957667153147862561790114825936925057458313463678063351951584421996572835722564656255097429065877980702728798686628779500881345925829872986915799599007824752837501645659683158576792918168547486840221853646207264203593754541527485691137713037983544771060429225902189445267649098691074363486181124889183480907389681417196632692794640929383036377114776760344645578002140750241911948021201778966590717528099080465641463084437383705085986693740241398437588990341855593086656069995673954771379182927226956478810431897284825875362474039261004231847838054072076389530787760648671970683453960789577585762245333703144662565622952796404492186702412742553612332637667817960396516754669964546622105092803997920016734183916583895291162219985933296190298580067622087115510751359040368828810913809209123014309452164546860094252809296310625300463083505598069639165240567898880578534129414523831730412216189409780568929737236398619396031811093717684772595495132328697530371983070848509158718559239846031003478648316851472314140812307042879079947701474185332961842943944250367721516683516396155284096695986990002795586878882134211672296587211231955316857860300501228617577445615290163890385378391626274919442921645819811030662164732708256069783609410493444822666938516696707343762587191689446840191853824142309421657634849097026651992684712631651004240987926564583498432395407536716436856598940717066015599119407991345839025674606905047979372512503765935986978592149723079822061419864496412416991158289072219136636500073102694302314831441719889577621741051623166021718959056011286585166038555416973575554893775772117121334993281048067829310215469457285162043086941009430223849489653952350784388528631952570321353143981898756150612777019874390675070754341421459941127637075969521900684028149334336599884910502379824328879510054104283707509146101422453461719910939215707124271210825054593175573769686670687399499294071197440610670671454528322486416526409952272767900923985148108049300790814651195280362667636611097513118666735449742542856647325900460927561907612969255987156635956854359543025435712840104257573545723755516164502915064136112796463557261317921658098311689629208831298830647877685454152966209774871266520646548688052238771284042815371985701779305933755176632809773700824643290048556914434012418645902987945075225915968811678179224844508888988314961378770320914680720278690942107471464799599428568458704209952006417986036071591259544639133198966008059213738610286375091948850563460027393405444786412413243406165555190384430791275537256829269829727165056585605912337134910751881108634175350366507487999941436431938162503353181651074134057924017907902085463476721472805916829804829085092880321076653420028068984711299410665873463339599824859970932380259726628954330032961256408589743427280298243006258705990605123162319518697447570011944815499066037182497856478364167217366834064277287820227283168883322212932418400280001226215310717978613622324588396790509970739025385914811159811164689206287533792156623006383368129304856696483331363865729590069465823216686814454038414683446111134470684507220919565750443134447248455692239551809471660106917186581629667571207732637378769957124959110499463009949960670963501338388626731624117404577632414487980013113529861828678747920970474737005752307152303956123918441364065779133608381699337056998935474107505267285777016960785702559260935373760889891745684059271861822766732166805154316750744848534232987338474816117539290775985158278307919264426420125101868775157323930842995600606291098647806879143682527020599739570808057706968400873564580151484469837020713921907012340835859081117168777660014375467227478094049879670352635397903173301645015509451783117625440102935709369807560188434353348491937159369719747044771289819601626966073680549064264359907392289964108977323725129590619385689831873158880519633054278364716491536993797586119235420879706713986299786923766123924372820772129720756362683475145657955319663017483575217947522910251906782041211721165345846994590003168846807196715712853487220366313479931166994878247201186084358421482363673469709611110717406746054182007672888315558845359383346215024435230823120760554393538560793987372533895540118541247510605780440495719859233375180308195527219558523426952849740698838350614353053337491108803868378069417017465278281434623304403187545264814337019808334440174507932712646222926356629923257469938384552521693707196995736479343933451715475481580147358029215025567680731005300825983233764831813896211626753793524016377959246451022898662279661746351408589421426540442299885262971464909827903256051108908237238929328538638086529517253463241822949521162541035294867288061577524148993189700518974307937127335937539623048148606271858193512516823419370824735497773756465396950560693638957180401460436919545868012067729336538413500054050734047895049249394572986590471284406997183718342077958893666916615332431973466532577937654930034326101611629546660956575416427316111512164626547291915070755956878421162399106744127949239641380737868116412969855174454493239020537754643945383925703554004048716000668255163473185946373581753640267485164282921834904134141538495798065971643524568873074170811142400845052235303673303126767401290961154697056958335188348519661477072412382130589203448871121765240314973218446462142040501297068641379959107095656849409377100149240091177143750371389028938346842082617303300025721400843919603961621459131253804349833289846549164781077397677175312264510857418889190664978574499726506618468176999577652960368990900379594360878444766554877758386432359473533587954892889398611894209685620547782753947263370457514497095885707903156170548178179632490572132057047610610256132169465454771957728398620021955642407835920508780471169230280170748418701044002478921591012004004041500545045412525290627058473650262915316441077290163929436091771224546801987438215177011626140820053264308687275882848358373818570333286744076265780467735809717155221087534772084293956115359220697582526767501831182807319620846897046644810276990779946882077865606949034101267297011883118402496037541180120171602115076235358068253411365402261738333962254306985464822561117811625321311120832070932951541260227357912858691052779261917067430063468468285749222996294131602548017251948756381658377764176754367135775657224223892997439223359864647014710602049456532137649352811870735519575824577915523884710000916405514391065459247563129406093187035971166941139461088079915835111652646800225152963953095728466091268508225988793230835692514059352579264129171599633557333376859218865835954380767767892690523428457262963269153574880929541647077412252637379003657341426001830302219012035499921838732649383541919367691756908050757158401647795294958831737857229042489999915011999261294843315574473389591231188791936630760755406856391380656804021466966412490069814200357032742173236010439936584323206949904035490837578116658129002959153960029902473285168607575704762284448404585003488656103693700371098136547314875457073269480124915877752048547875419917172380747844698726705169354969071460759504374926025918879627895942198846556185309468190271240659781178507916015122971580464250311210943009490357485678167473531227778968019456611281604611702000223934095089805921819754647498847300174196585555519100198829207472239027656964743473141577787301623412417037509583595344739747104444561230861031659644635444886715870570734124336337488472878028503780389091742352070328157838727530114802325945353277034590676652372349183725570164566677307798101603538647842200621837756537154097526699435270090788975753270064194548615592407357353961104053411092657991146387215196932613850050082070440386120587956658878071060104640854774588296795761115280103367888491773692423308061542028869242687164125889623450833803471376112500852458172337929309344240099914828777835886909339000089066446481415461091507283395339065590005769534487396912236914787245641680838945027104997635211193634941821741843330895072073671071880076154018313616942632091782361321178890787164103244592700763425371384361242362325382411763720864619104699974326547094481042160663496861465978466837261035602045570026388920003485122315446537288778369539538919554104758103101692332053822624971431799134458995804712328669955484247286832009344844589727134294873557362873335956407325235113850945729222245481762162488797310373110884655663813221863044537073331891818997921181081970778418066606092843228735724173720049680441272952217916393959143553842704651333873077891854251832565153132210166493787842183624581654832189542428826868968592536505300104174297426567693822915628917295381381271709206795050742870095878762533825460444037205371682395927082745737695141075269972929812331258419315861707076788964196726076773893888933737986372553219431774836254525738906510117644248259266586258704946563556716616322786047936605812218734363864678322161381968460197900233539673565412629094762132758771837443823566413329759026605170304032314801229313870756181006989766362302468955022906848041838333229974503384935439277957863325372304663759159089141824253903774509492183005017859136556192966084529857314063616382103896798182085635565529361720577758059250881306807092384605725444623131307212136984218501602014121525395839043969046389210596528920024974689280728616115921592018482822765979079032155975874704250022994740905742336713889603670392249260113453934702822089992685061658818419281465357316776672844033425545954239257120738865459620092491523589691605405491215417018846756094620661392572893151582814648513043182027405849579796573600497380297664386236246641022918769989893135195742031523841756945615134350693463736482666677128769888426846721510764311502991470920196157622997856673783180749107985811180218383667459222442813331041687144969074223387306318436704579668575183891248729544998866455095792776743790199676789884818260461591612500053687666708990296734262833606534548816302626299239508083502873401348089003691080727461502514972651861431623833889582723002178359466395799570461204196999914016471199183416525007234074471869873280605791563165794304902828254580504261449542289366968955782042710508103201723705104880488983691813062528315749061386313577581808010388524156866196288603646195622619384980004878239735605816033440934232335643337031951171596586930865925179171647488762382007583295711399433548784294848265369112547623667002969410211576005961843094730225494453631094827710769022159403330263592436909889750545873746098241280898682124931357650018180984460946866275376020862054415832325205748009901276927664433049266934682615187828819276910228260301376598112039231415979750751306728290357368363809046593153315063288377723798483109942436259582221867402908557811787130480578037278561711490756240654977107635509634513891004379618852624298470752062124999730257066319104558186016023333579341463572838017922560788002581282872486313840013350717507320234119067650502780406731912822001639223515881660682107007828158882269201257801031325351249172782566575101295485316132805193840486731350635401010582979847980453937233130901661090102587503605131743920001353608044953024859966063939302565473922113481567324534620009368491255376718569877991613487361197042746894892871571739967128818872027220712350448266338416052604809036367871835040945115318684136972814215318697953178637350644672890645616972419047625071791187091224451239542000148591643394037746882222276048295130400863619208747369439835007585290311180381813287169520270060981983576568884772567763896236629428307801485665704586147924811140180720058366555230256109640671937066377660100918482461308938404568752354126462075560433600960827333810889438106521844589910839494270916435759177674497451442438863715406903000640913037092296999569184280105557210146974582775165411119369183947515964355703331330241340503885166487471798570719211634002020347341570895701897533434852095784376386553909818707608156631671707584873610639304438534226948625132906376517390781546584593360156427990647544095614342728098254015856615898697469835350370228466101669917306591258354991727033194403794268089580842763313967114481058566828055750403071276740025926105609066619278646670840708098970569890950183751329030742552606552408320020668449745045318514912326232318347300843339371355684507852702563709115690596611030535761994190107326631071760843671016456194681722617224772383488499402148399979229040476995964742107923943781176066101091873775699354070674125247859856155850248662023205768035967691032834072082679684536107533197982459479181749631325409897180903582915252346294866985931977963056893531304554922187349952143583659474351016101832301163809388062643477831102592133723480445370210111261098901258903592699856040819512304449243227108539070967817590835186284826844253290566156616803359940021690191453398941092898203332337270816494103659290579258170917906156632152168006950103529496317870052563994338470929551090814845504053372848788527192970694115591151566831049754693821393233627627715166092311752780707213824769616517202055163851245338113140437500397998804508130595004906027016809706837163564921079022881784433912233673092681015694948271972624202701037579812435305980135354847262138819454526733395010991374633616212087796876672561385826458447347221964433381781316278425718858985220763489097805407739723110999558333687767769900800684202749525391943887533032497663576836838258287416054036812004628096767064111067650636831268304893290501406851075551357807767115289565647058819203905876273526590429442027394178232770326496017013222182996049317171806135878274601760061702570996796528345598433323002228701025395495024576412029600887722148223352479302376036216844449750772977709537095361662738185032562919441234798872124237067444873182224806065209769753831670557433483054625433424058755792747665908821306518620718002671722781778262932550166705709749421810482322528639825532076563786196947758737538903114679535782985627465178630335652012154090402073663058185196529847152771474607874491609855341900475574217514080059823675302766740650209336421912747048308987839096355188095552846535109552514420182058644558542524749304974240352336470350226645960339718625278069068562139877013478612345555624971604463733347171099966162084398604279189094600875668392335881823482956175673425101845240444689224645147127132450526013705985894692848076792557485795117672966022909803110834054786413210564089916218898675709012130413227026880081162487440625223848459433102622996907595063481235544269040004335602758043742342409919859664382092635098991851014758117841642843893597455161252041350055392536289031857059674378894796655529174592497729302634561456382616242480944836443157463256189617679543069794918802142643174881788770141867380696239143465929044771508673383706047601018740066418987527986602956660542104003382864386738284593686019677682429262407242602142617781368638914624545733395386262229640617455661513746997690504578742189248900407168120507859186995077726168515524020567223363856103069551417203680940310600655620942771446895765384941014148605915698140243154168082123709304325914602690729649666062229169095059982327518747525961361090964095676192155104034363662086374868046892821980945301420202204735230069615506205250396670294823922489722552284052814399760644554496599571763074991974685817397114918515560625827340833044346846215936281492217955780946132921345845465933691707868033745767725122230566235568434328862517867073749624605082352226888252406726425239537302331240495684450235612957795131973848705236830251836295080099264302218475780189848924045427714955862825377727628871632593084632216134369812969750634909145224575693460965564698087549270746966606843178148628616677025286827803919473123439428986332490342721611629657021412666668613572714699641168200741647642160448937116812363631711426946829158289048980903621008211160623082726537160532924136467970577819445348190173833045054765860501330568087161100699735250938889574972918360399707982132276005006578481440985416037883358622047515886316333879870789110361940136799679513961805480384271678216931267260449884026821625974703124639119406135206265770318324363089728737851872672507764919426555154837461824330336749310055014802771493287707538810187967985002861364038441860625553855103105210943371645876655384590733241493814460915397324136585414128751238900679929419302329673571548015133951077198203294169323688094418136315091568828500675581494518405420407207825764029503554907620003719982776148032511986057907870245836577981555657791144406656740041414970824162153392182882943542514119591084247062841212238619795396014332606830098558270326389805608084039251556408936579375684534623986941194452127027074283222612895204873917991148946163639842865061276632509284016001121705511819880612834853834128656985710328188002194823120048800707938576949412623090072459601909326164431910410613517088092414433158089572662242403523109842452928244388362646018591259056050780789487745885066817903461548569365488481115438353743328555900129832548243093659921951026593306746516585922339151939445086253915121814576702338409435851846079033441244050722234056773881567638656654689734401217263425027822749786631397437188359739620434946432302659073317044115018763233450428919881854156197457837737199307434735788103112566863067792751967668878775453914796581227317013950578484787930560938572313836609110556471874575333821948057646505921456868070547795172513453958789688891696671868897094930604435056725537370387176007502201917520246767644815911081065254502767227183182496203051816651764235056093190052282663042570803209525146204644372012910895686061480815024378760499024777023543048955408204643809848441972955348505707337793193055883885543058517725340301649823700038703168539161891111468842380574405410028480247451400897212269496233984270156366537396894854566641058110558687818294114831430829912145095653375708229314349712212023190630490341163479868439078248119585337597751478156605918227819903354922741237427592980160688363729884280843452778674494018485403807433672158931030246910964760933448464475942498885193321780132418728606328283394091884842986410096087094292041662605130399176869756964538417434042340634786084080936025351500638563888084978983032461595771453255279573347290893822702643390275919461596644426140170359101452003354861420904310496753427513771673623488356078529028847817766224937109397979090555137669711384030947194756044901968164225014764574119973750285241562309626323406100761493429334218862631857345294775911984000042535750187401491011617463088536117628310811613890967142309595513771089253976335519045182897332090664663359480605430215826378567719326659420014906279648438678451071258992408913116358978503360673546899154823983649507231230736682610317308175356169277688923028873481123187476302433951451940343716579247088674625053862681832870140907081305955298829143725081894636183457351018554850745157808604209406568335297452730263707410109223649734085466557032393735922658847511738668124893825023386574718465178319188777416399460996307918996707433378522097347554800188999978049345313448809226554109080842936187497346143364025430814146950007005325428313257765499960920603055642474402412883309936562193346171408508945817134137439828156382255613838389956819985315173872785643011738360940765642704266099964806816064389845143421409445614532771191724282816921432418533170293385898861477146985860372090272687594692738386693334357624250334227844232475299667270255993153916114805195703567618869799330580776933159312206606688314437534735162792965628571614985846023063221844814591118427537093279916862146218165828131563768110495354118597201647446252148340664722820239887783457760727279234150604597466743928483874484113495785779506138672149866596443149485583366481398273978522294544669790741212365981881304101012661546490710869770484352802796064174529234925659378633163118587973575491810385587366258769879671789759982248287874516081631772510624796322326602115181137194482350464265049651397761914077709157943168074142269060443801732368783515103289531240493547070493424969710129105567913661928114839259324343898268099521845368152913725572393886733497578878284871289921664576729165681230252441461643142387966103842164028022588385906316686592324041167577415977901436941511837140520263941757907060461695803348738728686100478620704132943071157590542754406534310832685221350450270051347295407900721447831976518613214985216442063564157173015802613899777149398092768500094290514257326081360896914332687590481773874069243970453293696763155285603422887202036731507041803404475700961680975100052943926102805855964696259330309306537577066405376737796827416949201819527380843723395498460343025001037033456670674200692787390520560232914880439224375770200119321508315158831607617209115159940681581055784309501089218193370697406137204927679674639451118235327841451115624506487429230904750937050385999608023430696864565679678926342749474833078989889014153784811193360238854197678721504977093255322342716135494582058512615090530060683968461039957533718518110272273487984592778693692995238774248491260171743474655208528097778937576642334183116614952333399041137576956329657467427325041943062822609053305133142003254231848180403929714302784758777240618379657928236802538092515546333207824202429336950546464315543059246221153253564708462813853678791013329031019337580265065721291213953019738157212092909302633188838507582345950120370107207774865630791573396433660745002924312827073825923838007829872171684409664270010306321717582187104516017264903425850408352808658044551861713701003387994469421972747261663568443065974180602430936706177127783900132476183152111216723779829008861501531227867750905686980135229713388478845044377766516105319440707469091243264272711929362789700845598817222486499487283353056413430594909491715132713917985500064232039183913852645217277142641121921526112410051565493994464253090008286235319553416212233798879369226685258703476565887071668115680531208371685864264077945891077270905722059738771437169584980941412513952195263862765340648248776186662166172932778626560401636802918185740332116185266269158273481266721715698599206310653792023510473709469351595654432122439756695179848823077568519708838629846327936583562235794764882974226270438720612182266947396936205093264307895400491009961702130329573312524800175292631379720290919542820243495416199830739427746818595145475840678931830076576845929662623666699092405491190955710994919902077636353851187830849798783744865149725619784874695606496420307820672974263472583198001518440731970842906131750743356937940448761405641657502510599701096277011216233934151634509910791206285657356467863821116995093350167218277195014835544725637458540975090882353067709762624308285991898846521350885607123289544540759579120305958137154303937143983423043727398275433371069576326271461546027220518562074146822696627372058482165343782014928405623545708480499747346727556232792397603906869995364776332723973632688026222749955316605930826379833178734617666785717553746076290581389392017338391450309197462961792402546918493386115240731935896256519990541477346181872620390465736193971749404577861185628694704776100474054570347916280959242742506938382828204813397099015456768015764656374354316886416418603859722772478751526151555151056344211654426792322234865471589674276262982825269340739449675922686218997246926164199783379118751045534909230338857831045640399253320985118724643301637518828528868591138298024596872565021787941506732711946932464659265205834995762702415169456165502240779344069386071589057397255856524287393656989892167521319495378620650650953646979016875397934640605945229988972088421006808050120144460883873819746112121297323164685639732015953289111256571689312801764066629721913995905944797418164252709011881881955637260562477391150987110219863816745302064681018144270673258030145637367821816533250544647993689045585238735703812847707095399584916981077910425519981144133442985021311752622725957485274104388779363450258576796109161779042064290897252470654449596306490755079090693511435387598446398796145524899051842517063166491714682296940522990341890346131451598220953216596294685373569041778707361497267331919040638674314972160289413637637804330008740928427106414733933235530669573031773168598039648665721876345498239443086864484763524432975784745263700891130882762648053564677019663458090883493186382717876044873704950321003745053600381828232079816076570698978527775334749216795058580712157064388792151266043567727574931614279591630176840589612760220902817282711951238174468280906139520560001798868201397993070698797631721554036303785106777577628158284780409429182091154091122333741180014305614027219423332148010694181051015819913233607510943197157496711784615632391578712754302601532032004911651909034569857115224338797734080659870304750092587233807476051483780206507127365444451385171396392647845503135075389160628487689611682526319282502785219701762183740054438830505837505797339861873238925543772204676061640925030661024697204907079510246406268398802592590885749704132112158102055042985695364752621667771479341554933725805178108856643305779387786790170453481650616538740876473582964502682359874056833678998876732963849717694063494776998298784508777995463185885960718568899990313021808204079680638756642717708003811739762770308272585513610519739051941533251814014750602658231758320323281517954791528074891392360307553127924805362061523879198517856091198585474381079465899017034640284611984055050202877016975877964355931028125726737247402324507153303999038207758087619322272456437810023617135979971691811728655496553539860253210800274982342947898092741331389912804781461084762282684537402012186199363575134938722772086969800368560043537143420105268940093568764341581654568400943683057348930391736149935896881643179810864028493989248939782973151968167651765701303401793447542973497084678396801259858649996733159913474800380445941683517846505662059041834505594669967084238162888738089720259377944886408507755881497180858754022467703631045622396338302424166527449298472884231313852700493669597774828462104541775558630308275703840023428597413803211748857612549608459458455420310900459221617881102516873281041037538697269912071490938677447164364004222351339127185620146673552419521185219191358450562304524283939628122136213321048473386685064437826285058786054450296096454802959235167777821925962093289761055501397892745144715912640287605149623745399354913681346402664111070471479405815718397844086464658668466740163976175776814081344579387535483671706717681779102663119250197892887448485577641811684587224804775083794298605706570961376979833337293248976002180882040005215752855625072856457143651590859310468507977229217012985105372737525717143274291692971936706651660053747917639922240202617494363138875200919720009682195088936555542431987050990233169563574222514103549782788743885676473874208631025919408547719413687984945338809885775900156866239601969066163024402814936493356720637384080613894169496275448444194955184035959638328714897672824276949394223909330065876929527238208488169341110083898947246725924942658515128745746038853614061762641120180738305787602963366070138319395391312455988990605755173303438616084253431744679448491134206249005027701856530921454735620278480855099420503561080194459747092720816634662137404543038091486505026291075975134494867559073851168396927242554230090118188460411185760608726041132011166259309842082982372193141354418821139955631909091364698508967283207757872085054277526435906819531587980377224853120583666055711015034319033506849904138504915589283868783789436431140359603904529318568849689375364582632041625525184626403773473497330584781792244385433571241200754278563198997695641432536960714478814392929951197135438961408907631591763730761312257189193818341447824955331190248231479442920165571966187473282004647781638204915648587274878812507296006053256988934682049687840416993801585294776594774217719564534635054410529897212487576101584157516241146607141307124600314318006631467945397536123215891840181652160215216774444878597215585826871137327793076495470834533983279592077104632818874645850136808865525309524179312950171324097734737576691220373485639663510755740230372895149811301723522371071289429938948463123818490718611020432344538762070865442524890468935853759804809510747225934688873671492517522125605848695934621664046358212908034000551162164113907280084495435859423546399707069060597720807672955138332171235028624748089100589841146459665885230080675631788600807674732524329157775837149101521589642779192467110595006473734387163174682787087824701305197901397917872947863042594532163815043789851387571962238373683048829162927782640892498863547807415566826611176854359133978926746775144771893174534210785259166167039251220624563992748950841847530796050003997229533914423562625736545078729577033183684649511750319931228689118749057616137912821732315059663072600581934233776651825865808352276333953221173664615991595886253475913300514164916729153660052576512673467842565259450565401816007669368400487354918095116118462701550364729905627363026192446507505116851231303206193766401935926802449962304969236127183668574947649301466415580976255703891384611535460573198374742335735515620247142515296449749390020126281109303808923569110204817370269702808545497610106347771015583431975808342611667494958886934852266353550072042328058236946589053119544371757708677933741067218062590611116452147284458672293473341598035860146298454181652152715325475914424670921746361971868434441192339861169368837309783641796619523149623630304245572331457187368296052146010988114679854261217966293744035447790702743407351003232478989956787956910671957778635518659638624694170285169409238062576332541984427173531418721873479145291104693155669072372262620538573947483669290605687984012488525051749394108293908125229706426583618190286435487101134704226575314513602892290689211968812963654978229146627734543014692365476220906233104901719534566397134386153017584062490810855157794452325440376403112918107427070464240647924206436563559125392143186842470999811826666588152209238135625372225071690005753829113563917583740219447598211397558361408585069273482697227161295193900231795461469041677670448649267170404779498780577849045501283791586054019151175510606472395842886977644194880180374125946983382744701537768143601093172320972060474070510539858301693371077740566208942455849561733175807306022974611794662948671490947063257620859317141891433046653354914389098622815743983407121474009694837211422961421170125214972351089247778512191204376082671920490333033831257611413890129723902676968499341197492772128477652002055482734767490604241886411253307885300473834667101096344694164396368687387440370770705093217551492123977605990223458609302323380266594983070905993953648916677473232035039680756658802340322629711985890618504500023566801522316694733913342634585658263861606194056445970326927966784546600634488473144470370296942222807514303694607384682935074638592292413543512733811347334855379236123938257701557674587094070695315491543343977362615188814230098339806432141019936145116192087240685358123706964823635320254300915968913423819469411705903380851970216696390012677729034311859443028680248858334299663886745460552905724655354293402178083640667591815653011382095630231269628993096077876912065302974830464866184021772960981770500013292157517208466214270068907579928909362560147332864751796177914079489747378129456861224397305109577283001526887714662462526070882189476645853502621421722202556341712491495038407847752815082702847136355154417863397679803828859072999689664919503452631066828138897942485274311602763841466681960907175409854323747297647045932747629844213802447207670372638257318276035740919911339348833024326425591352364543684135258665051522056941403543021672627819950456594867290253324624217340252459411027967202167044448950408842810059540082386503653308446601898366321597994925618721126525662786138806654314482236625633578652603742332783137143623860023782266156939663213298039369966938241293272486095526624084377786941924749310572856706863421869337375359166132656030185908894437406896764522506969679752479484881175342536974217633220093579343487222232000875953738276254234029931762410196486544347055746223945641852619195391601304622754140513980462829367127599383183550866104477785398926736775571385873136166264716557083437379570298539001730685135149091763402513749853509904875678317661710460110363788532220437646083970575995274857642139188237330863356219985922838896257181685083466395025128104626624780975087755964411528371613424830717887473209061309139383401303609178220179378993845199239005092357376971619488120493091007245150549155853748409597581902304434548362037560646678549893186992375834918955679539605604911248626050875527623824579685516974794033794525197435622556940751553953502534018620372363514219769533312081096940846971630432455871181659600216612094612541862037937829740807193599855132873900677620754616977524968984534227592099914412323826847585085230953200554380464707620912452723081996218928286392752908648868382664454236348876119303852035748572290746687655615569823841128615279928666115782103883130202926430635363776541078763078929768603273816411265573153554718998266764687142669533596280528229153572310905861736609972458108194999656068121857076232642497050127909006107871742698170643472240982616459519312180633886083726359901026101438541810335854891503931601580197507980564620092137996811903963092198724373202891646083335102328013166069220842127180746789682150068324451563878217458555960951693968165612890608016894379114135410585802846664738323022806274919542920109334677248892620802075765717199942035924180925548595572062801353700507611342756574291313457617441159841897636285769215738271885008304682828019166373589511380498980625725701793224499414549429192405020774045056417698273256674636915091105073056591694969553986005897060514504764075757706893329564471361927319786193382875108038533222874964760288052864210352351821054817510734916670701241209147979942995484083148740028944858058218688345740382595149135037411483495988446028955668831157696410565729758943214328480231513685096904874019460415670176469337881824255981660943265486312013296573935028119988514018964718589351792619983115107035652112176217623688484320219141293596292835554531326503930577220233778702842509169622702679262868614828168314716351347822624266781954765226363131350566997908619347054623667301026603254970137805749063653496505730320048764299062844228072889464957531518613413078106797734406443759716411455893071369607314706904910134661331691521716498463233563955256331071884621511287535533646060020944093794718105670764139176427014764647608500913549150934711297788607456434775232755927401411481762343289694130543043699350664872527041896098037517339281935564833198116695325067670540376383014732637433956733103993916523963969797070950265744477220561423934229207754100295599472369326783053494864949169326923758024064131429132821187352244292616231724202752013044770456214000391351159050529764265870553883574419284845960600714381188615659330790206625836495653360674660095762846630940050323389507465314985371746914071105840957201544752493706088031469100833792699665637047026497962894104085583979788490287839757254924796023207861201098270224540269103003322337148798308407156203456913789442977508127639097106061774328768027190034124884977858776180695518688806067927578977764524138210648987301368195114455649720450384805080620081830452283626046215084689876360804749972816286569772588993406182386945317617801752658610384447762274293776554668090561362047817872282416254422944992099697727813950371920383627541064885336252806883464297400063044665773100781145193405786626380893657362023105602543559565003402826439313096894501667466359410035267390833440228919736816445770166068287744882387048634312122642736552241209487902622750346825390472641290636943078980307965718360911998414318336919737627829566659333060811994345812790124873538558966156096682935176014201740670197831530686794102745513969323633236037377584714536199393727064322774716256304851208997093846910726168667265171912319658647908070267340501962607656712520718561016583163331165488129252445463714894094081397251640344793144070191649109768233070280927109014165442435005877211453451228126462965781554412002442916197465895671386123481404096253766650523804861759732462388339028205586792218964188127162090348706184439700806251699815515740931434151346348372979261529024645425302157505918283014805791488300389979346550957784991891921063678192339621729464706746166015954030048619039329962957746294340749140403144546127627931139353562289703024797645812685420399379368785239426654088113832369280048781263921550676876860671473112490360699518042811713455625536175414430397389439921895508788447719759113503581283583503935215130081606444024746625503655548952343104010044644644308744339529599994429174131963382240203210563782002109017696880674948121322162818697983504298518994191429766358936450721148102117024238968356053249370566206360043669001874119749763046324734628231821963344081491010547387300957526718907024004304460107554468668166938932688673568136626450138569565321089214534249029438754438159402752410049710696266569602969788340887336550973178540668433254058814787790562995988144583880526675315466233826165247822837530463888218781945574616566903342714392805821224242790743719948837926314515094872450320182356871243648622330547462671281099165354225822080339573093110074115873602103575269671315723578517015447511999110224947290346482852985462890861029670269361491933722237726684107431272655892822945561365802613599210697316400209092030325172525152807919963093746397106758216069785901968810189306520540964646988326424028156247225151932188098726720862130627272325854584612993244945803548923841948484820977502871434140800530770085205737246997010340074468201159505333283861814999102849338418775658121057942970511163753832422731162159862659941931558819624120277724466941292707002870452511732615269633995974208531537830262255458814368202877128403254303641732098066945237644595670437192959801168449938601217096139277446612908956307112061127645418910598646431556019719793211410194500333039014590082074639895750749976076018425540652928283461155210392185683531844228650966108179375886759470755349014893203319885295243092012792341739741185970911962226296859576600314633175136561862819055112884284180798263686622482841493931825364437203503241240403362648822497763944733647830012041606543844417763789913890270532885984060986008669545956043202356653854729480302458320576851787310459456720475091788790872460190646417007909711887630692483386379617744438521562477031481005725581683149805744102800179891392787360379535278565521371489318780982161152113746684090730610949570135579188755345116372514593755930845951104815043619543922856042729643317059804038735325104384631152916291876202940470529411004485994402978999751726560059799588990842863757220380022722146554740556158710114364029028770446351790175218789196450517023001656877694784512600968644864548554390280435582408616672812861140093793527008882037604982154970368961244274394099614265055537495897148469548316797366068193136555054803190696493641846320218994273260518830500298222896297967907492886037568653422192085565278855391480583734642094102754498990399103076323450506203920813255410742262652419713351849993998696522210058621057534139843852765248518640736183472147898536605969379364968050285035732477440859981955570298227261299207115769548961942600465636700241846532264981146422939680772458897263540773997523918049119932927686520848952974086792082254782185326261211162402750746427686735200557125598235092282928056024240959597292738459255827898805809095572478644273398919436518242688345661172682428476180095652525291542980226509993979548175324162406551259066080191860318342289361732353560600452342683287358170328116180705461224591827127710453549361496896945529862252005523374715575716834536510175080562431673044558122680234407267243843239936597401827150399696053477138185482979593138376287742044989143291063538418195199186597745045870904594567187863515501994254478558792615801390862105034082759430120550189111518656338940432844137805577330536008776983469581308448846610608469958332973415735750456603171390955492418438301942849892969153708913628081199456681194010202689594781737250099090876003041773518604223089550925566197301686926586907493984648059542546327543200325682104906699009256074419105910964790374781966546636482551236136339577915412852532989393698349342295757494901452274483196550561639252910466474072649567839458527501232403948168625357211458008374609622327968600944663355602812079632110586227662175313146393500572867893919065891733738624770633818979733163833091362681331200397905713158845528936517483451726863319576588170924903890025599261256255715930954178820363107539210851159961485870443132414148777041451643805628985386258080748206443641635314938802958045507586296965489746812036137022537925205337134622805974346850038795959947811431614107054963983180217876826284902727843519244972837453879498622986933728230058131166786403393354446540314182384542163758692955152446152240737878759041103858904161816592198386327629269256653697660058033618046706964959407619768245239003017320652753151252632878589442751568269424701390253215596979320694600128984422298401895273591470339047043064087397389488262698653341627279014053850887490602174905839853269042979410528887634104262232352213401479297707996586651694409092218961837031815281422149640451161276972530229153209256183526801969898693936380538472274080655673770199945882856705539790676827902501752741917434151066601252911972143613497795083686272882259092165905719221537399012666438795785762517024050035013607450971996205850096157868114396313125206219952384495490035954576876282124268735927211263426109751718863282048002271725462882709873540370243411668411403937493775621883955151822500373762251862295302931181259811704615161220169697709412094745184696187566742712475053328741941290318346405543456311337135474869730496763376099671076929027822257618456916830433523174821845890369033458241723645980551103608150550873393570508047890830002813864495304617148982677849510385886423079570723758552464616425403647700020035777609648432132971063853615915219942559435695237239826957841476206773705887958170330180387300024338786644249651895287940270737799399220911373390673047594552555087904176961293541478036643212044852320806235443778035546947497619421363321346591766763240521360567597526005323880569981530629580009654179081630640185684522236710228845725002808245738948665442480933987454983493850932920853672298682855633243662208231162331791655847940162196580578383181230269249742840112996986342925938713215225653666231871009589041865257855793401952877031839233946932333130531989302601827238557951133488144683260898972441841027880265649060764390713430827793723820565432448985676996338789063026925527332956587798807624081673022201783723342434786921486846874653669043317167494030422489479479022113975412567365548362991915241421483763076384757032343378743065335202521204179255249380905425098852114829194826560499687826927748856289273558258327194333718712762586354783868660229359906307865905009210913023798932265090888886211487181165672268469863790381197973177180069249202204106207893837890037428459372978366278650431151207038614878029783711243453800976619210320796470377608594770518495761294118469871069271791148033398076017796354741180783723403482277219232825863517296070610322818283258096425959547743813451736531274511871457199787622702142329650792358118103423149943621492994592728308478096294091385459559488410474118435784744269026853305395673113799785331453624615466417205525585001839002648107365248203707164451409757982643158052060940351700742705320558326298515916885225197545597635628309947197245702134128068333752739901289320238412308147964388600471547937216350909712294079067426641616046580172353364993319286781616715944057580201468737470158350772932204435862313934168954646544398913102009285203346168205702308517289770328947786094246048628194411859102693148273875408503569014563709508096094265446261822837236477321949672729231938701329519065232508784439373413017809023987683014017421159555738014772182258365361919911042362381594435448977504603284574381479980085016382091033491509882052550596742432657701529171286077206543359551695450627561252428949302916265745481787269387691143327122165441109840250677954159343373986562112594869688422626275864603109689464596673305217289359622591337101516651111842607380756027288472594260471835135323914513720231866089354680210258848159954732774551984126762421581654389878197385943529007045795765126050132553475304435031289203229463503483309671580263939920511428409847553547426218382677969726355641408407132464362601771130911068576430885472861537248982344618474241645490910415310345326921456682445552382309196275575819540609855819737193487238318197123213215454922363472897970898920332334881615068472906219369943765562826958433574631900392432727817045888543565736002473975992424200942171604650454652810578278793208330561626137957543931088075065826556957354846393028152342649481838371554538266224064652911028940047736685628650197329404906257755081623228383775316095746100429189263230677175220385353733157279895224116934554620366383898673513393261906106270613791258673866840077042080797339315184283806300141911752243217461916156033806596150732132367462781786003069625928950919678190137644448551983432018509603893302553196062712088064174151035694166079234267498800739607447130226994392000227880520386550692938895523566916027320279266514853741491953695037496552321009954637199793011589324665791383884020349652378564406836090368399572431390593942828231531929406714520711027020803153448916613097835893414233435022378969588788242776850643841356277862728440725702422637555142921313599359566936099025534974000677561217197223702705367830323032290996561064627286692927197534256134382828664768344062525163280464306551714495461409453106813755821048083113463834753311631284910693384378790485671992398282608023075853242537602536165474479915555521530325441639483203755413802385332190267427093202493697963851453385063596015025301214578695489282740374501996438445411298177286141952925258469761174776627549572738228826313077506870945249215257162041786350626723627158398444782741082671506027367125050135847597309591046042443843518856881935393964328894344672298189172289298540409603500356446258085083390518654013291798427577845764150034245434774869997091056228315196931377473601697772295288872225701761546194920725444766420711792793766415530923029132347714432589046884694292595261538011987556444763108619520706875927040216164355350514329531458367067341098798114315573972631567157369863673538686359644333698806785175696452479969057770714191650526071033259972434518631736698148970886652566064233120819867804569752588237457135037718189959345339581398938748518528883265479882324825245548720753243382322691294743009353498273559843467423182719799587416800841567777250454299497998715189926795860910387505805483542122177177064736227922585598688512181608345276654886982604666217067752160274321763092426640413302035256617937000963155940122690956482919112146096861562402196350936800931662374409946575700127419507600334423805875836263061432653618411589067706146545696909674059847723644252290804927562039780608984038186109294706411194058664460808566907496121960113944115031579868873102582163761034889612142166812448758464194708145407008355855608949741435758101016087152811759540824586949810507683680938378998854725508990509021719682357190705472456987141881365245422445962379459582145043934443399467652981520472469798086879842788833198246332169080213049572313626666441219404333328246210813385601326663935244268808887645923857167198715607559855908148023679028738598967324604541794851226296102940417160850366212881518357115322134970387281820875504902300931594491031972469877856036787766074425482904420979674124074958992483929766217054475351934269041996726027335834018005754215246834557796067615971824797918920569100841177439078588395740385788134091171358279574355303030610462574094324598721587824384573825926953960079628800768986152507832287895922183157542015467170188149322255712185252874307938390169344286570336481567598145267873506996315987977903899180941623314506536115178300325133696935089660145319120438967186896287853129214025400805122093925192478883952967876591952587168092591635824953675381181800174916379540893616746125602146501196917854257225699737876670147645930709164199357842569194676599128287070953411621947656984548369605849383998111358163244408005089290621792251715746072691217226517377262686812027186988662071210601684916422296569534067300626933543438417737467337786283402738343179636778401724800683494744619431949602610461217830104261458492873565375816917563971325499372371792620118781556823320264471189982619256658388838449349549681046757002452409180380277865235846529458742809162793867479742743173124440467490207503183343561920058272546080565187560442396939370666656771076852403750323558291968251924654466332247441445460712318975058083730632629208255112306384838737584617288455835596532660594134304114965394490599051694966295638394068002644218021668781262046920249128881134148753556327090506136986199094182224566943836205363323954341154910065826835421684392249228330574387943433517279231099391323219542902650904826194402974634587299066954991197185290593856225577726169150802769286655999899269931312481220382946187773863577316027914313478181588529505824685834785296674354367135767317991979475943988862261171952567096000546239644570185521675627179602258200742123697442764819570798178315898126132599681134780228219920289786540083117573720398671817021579080309878325511325082001979106068448243359950027735545897797092457318114752249783820663808833473275055487529495501461809383522861153144109124235824978472777390800481820339600461628645643728508919508214047816036036366930800772368715893332677582480464354215571155783876085145369861486127695130296225597006089701902085221162852794877296592440547819478726573322164723162712748928308353683137207037186427110807785513858110353314057419985471686841108370880195029815616357842076347861624305044639144554367094517020341239186732904091735433403135950209583398349854021785519793947411496592791955447509643456996770192661321354688845415180400226947848882119706578367658355148475924771734644530929182499487294974101059104689249034301892186918452691239383310480389166164883821341465619417333206592172178989419367027533330375423041268536379910327166099380268663032707397893912242183282035503153596444347325556352386832900144582372655290779832652010389729118235971045961928411593762378616798134930048813472041000871478417117978793210153379347516199794460663366185252126388922338834695938388441937876405330302566809298876802468224042673122148223737984654684701239392389447345882816166691676131094428102676710723507718898640894926688435768318609682612321065386175481986626077040534765980092964479768137982500451580309546686413325425557127026046991013221784812018827780912340826195857469878783391750594297760182008831588524947312021039330646375947144974013491407580938709739622413075345152631276532724026003203486245389711558825151073506434846109049768095606190348807642826832901411362348086503556292851193080533401583061976293430960020511483786859792642161014362901026858588646732045603381085671197885954939605607833434354010011499159481833476458475444448344281553040709369625369023795189122582380579439363988260855890532179269546883377555655027907202189291091172444430113013724856058716809003426336152573984852656177496856214238850692577857104407355294613825848719916867954415923670485292220626702299796223886909728770624510882568640797056784457301053958182022393362348432263192507851435327327309158360234559740085968334515376056128041886703034483380747815295977999746510004240479527478035282920200131261623057970588542590838133906557627502588095324930908485417271783454238275369451051964665731815646041978646757637893872927135968219280245008801151464731927291441797204840190570144929651648353161283475690493947632523744053266404445538996007183522637324120106382534322905753277996321210453670806207563669613490809944186382374462178692968821548980975976041079983631089658171418535514800220472190460695022527816423617185152388298949127668847445739334999885932417460888122542192888602368223943082737513037323994869487634948800903522005667519286176448473587678294930876350806540495474446225877890955648950596467595364582470829487119817900216065663306986350483927977372300918458864767657916483176398588782163373346567171720483709551499056681470417179650033102795207748789686881979838565536447284201445994826953834717223238928796523117731467806243945753180862621214279468795461290445978271463803736894216880227290985491900415074927439895342266710951053919736555702777285780796124438184385165481539485501064547703285161552308025517521813196401618215749263698930738336052466242123638079105861292625216101280121815688497586069925060222604383369825535938850945254266715171537405178008815533929104177055037658991953205464327475377714776264490311494597542662294565842744542090131110379957713197975042565374524134474921002230983687832244072807696144004257303885851179250134679955453872616666742146944180956454898891274052548926751295079043317314053623470260083161342552000091089739693749265791787881603082581567929241343302348575827100686551402332532247056758645680636352729065734981960341196348690334084910198583459772716677802266062089705004087621938417294502617336307312259156808056330711262627919699806632150266907651456588905169743363292655980166281004526286303878844270282096425878681049765587490186464415216649516530573202173250993484928556427415662845044920656988365433340181496148902504141642129077563016801540453865126866130174376764763598568729614152633981256860061742868599968942099643885776040906747502177605572405211940118603635691268388381038649726352469923498350619426418117043690424424092307662421526217629870100204486708944424722661967117264628783916485329745602234464995388026184769172567043239854813732872964551452330356075306300840927603873979313059852033892583012520123364961371090424856857956131089420931733275690779915366544869917538588570148666783769110115675273962064171154774761887750865039461416310194927793872805459322403360544161631429814289851103228959323197612972824007283314282764358652509684781097001841183571258147226964344698967165857444513646938462548182598263934895931174455040945682829413642212625004250019719718287432988906067809971230936987294855995819459412754119621575544270000325006778637667802220357536646264248992739332706983363956140206436645086479007898281104914286879483162672863405063666745207530638093260194488844817295512802062362298128587264841743232699030580416544259231990844855178964730745813617180744603994590435295798748221821061177242676763768013435456032148605424221304215267774860407043880336965268811858563627611979120119258242531759873345652012563349455667705704811978728361975948197730201241843927592390517641460804195000104722174674339627918770668473867603381571768483265109573662066004169563714666998185363086887523434948241190457829277367286291052208952815517694907912837443966963185691720333337342072189588495231758522676791613961231075232686640058360544803188276303662306470619643148058533605905099218635461641275894623302649879692064051417125718017536516723660038321541408348934694148158932781528402152500088184503918286235902036133638783287201164329308051678929881698114903665636530129050744767092851537315178487853730316029327280142555124348424099258702529065594518523454550893876429297228057297253629077257051195018251930574388724633936135018810917702801637607327892587903995303695201908888697709377601057814146562214960865795148989016365000556860453793592607061752027543723277445950221362912808486194234399899341089046314946868175614229136876546423159808129021811720791885777650149216806152250139978834355913272047941976904640604231815879727766866015143728778694090873027534438883814997881944650691246972576306170585452046924499823315508907932933853861818796213929352058655401836833982802085715922722729515286192808332158461602254971476792892895063799720234244593528297835116699972997524921809122476285640226259843121689556093563386775269695419308293807884361808810039962612114473688892017729669733897270818734238269177871921830534954407660550498462695839492216310897870877528329071804476702508050789891935895109062402289775449703746362520996160602813215981576122289446204556695556531046274596017302984639535399714579847546759936618831070375655381362906511720583087430401086932910626978624349219270811763164545834418610902928844351220956512032538622715098336278653024592954041698527809684524653646642928475866118244341602943315866920565197233509765873206437772100036788829663028273465345624047729561589244274859420619346232851142526287316879984489088415850394398896700401570144858809311837865667637274225322840455348874694620305915019490749056064076708182269322350244989597788128412599072365231277453091745165617489105578608840634443165017308802021436704325598390942341202852869045120104393970726573216674228894581661651387567544680611052892847624858449880714444795903402208695218372184557893596028386736699785245183363506413200008399091683077666295824888133802052605465393297721824089067131823995164409899668442562264172889706337114440888027533122589218420339822718451469553302591001335162529539847292740814962674744477789478825322542169011288894338204942130594713297372391093287113829080563452002944141946713768184709613654191336916080417330208705790298525419806234011596356602777859447840749830186731099067291953885031439886413217271481807084804623464984374103438580770504249840301581864383419607474030140779467949560523269420536786780675265010675098855078029383033755615054818747262143278644359550657096229366873867088485547309795225523881223149035916119429950785380555577757753273937577971624550033526391336440284252765627974138452516337622361358457203174056297703909405244738074988141103734357027355471685827329776387140356111548218115657071511618074613618017538708533075008768767342028128882232067352284068056185415947131618198605635531414150812004857334805297495367928096850280999563118438192092545210695429093451352400328311785065786185882298003606525491814539749042165903779386072848664699286944634484389723841800609395740744935296517032402329809408911953330151932300457022599991055492609353989394095467132771997725068769165297109209437938626878933656264022125477128440375466160624004407736979108543888974778306530653630503943731498329544937836749569594920974239944679200587147907945803111671320819239405014522560036005909051417853501992338781903896304297638557119996430651149764087107175669020799164804196237844438411441019342095185527806847357028080561746843430423838315311510481763462959999497489697238897732183037359414047458223759287839238578337313459502843334929745956239320746955596640904489205866799818418637931682959050364523684446778931410887866316985679151236970774425712347727188735404510036340862464730821795669144872853373365104506758259111432657092277009965196622714584373970878618040461771486571881830061008950809906470947528694171681620984509839226430777601304286900862979459687363999387657079959977511610441361630496294032260267142713492530661335573776878551325989553945488153018657759877562078372748601186613596390422573425478107815964604845443797878414311531368042884474597815791850567141914876535138389222768957557735483340567743715782488820097133658957102070191239801336413206509669300945711312384381008229078961600061712077086039671880081550379014619822304356413013648020395690303826478642760943364022990855012051225768876008831638399547309017201232661950511766985489488365310723721620036641310095612044789749362189862605553115702003481999798145853215651590547219109903605229762153981858155081779655463052220097040067156775585453192685423122763901342405441212546419089880897228476991658031887497219647023798265392850413357720125267853563363942509036466660916561185599968176951057015777437541707019009559106886747853030284212725669568761363664650456197512566128140687454062205947062155981302715553537852945684104928830048737408789827427656047128317419886134009889935675008536818691789042472856767332840187913489592691970885280535751361127951457895536581473956572114928495758211074365702891347562228395115063816492265640857914630539863907683476174157092365665537040130941058062718046505728787894258418079127431990630452401917380093387995788905829189524105806253048631243953777253246390455346731751163772162370441114595240931629081969652365637732768981280304459827832357663974816697363757151662799542089167231165782892855663680989457964768770189140462437346955278719298562481003445319079010324316832470035865204295066557604703886673705550815156375477608555448968987923822809410805223077569848182190638066817132106512945599946468880667844144079433483679265465612148956930886194953049586527912492629834195369902134022785381232281352287066738596135565589089303358486669476759847259374356302428910608668251925646018618255626704208632351127499023231041904062385028397488725194627223787267400896647885406145552684501726529078481783496023142487672330592663680463998804938219119173169262362269566840531099317176255654936629049860233580541410548907525051320572154915259196542353620537007904610691933625025195402097163086855734537229947822120740862653015915009791214171125653093636260674428967810627471379365476924823393935400209849826313067716771838567876556452608421344165640910707089946869696931574821950046531584836502112392605831005994805872175011741118876841663307758483606231670384224394226740467785756781999593024644496272482750299849247866093191401673072174887593152788008136705340504948091240588502742105646750527572590579299788445030267092175637559757634980995799977460946971559251352320887757010896689708725200307913014881974426355969876570812661970954385704779655508840322020860460847775972696088473762825995546316230107399312787395512792380999199823192917920642835344385543116499205562834360323319448456423276381586408275340861910302133895370731386033501239324545234125086515267656347064017593156413295833771886708609273889276325981283254187993792226343071157277515557231589828518891249693532575800802032227469880048617048238870474048946259153922443394055498204810103402042316067691231839725385306153999816239906360243639757548129149877718589137212658642606491169920536065877569758676153286263060978739677354898114500778585828868268090613161572610988602359642970089318000256324833748452570717389528894227795620428666314553793674468658730957961509416452315713589527463334605923422532990996088328178703588865805076719251280103325440651054715029972444805550317391402403803249265955886449849671352009196734283752846341795272042421357753327540282175613501905749491284110357763024192288776510488101971704321608185111817025650119266171031824444279957751233187852185102509371163158383282329902630559536083564850904221849156622839589269945141574948922520646194668002909465825550465997077199284419357302680120433555014676342988988721783649233172060004418756567800513613859916995471451653434059090766468379454726384764862143819908292559822869945124982077512345202164817068622850062650623607100564477962540080852568431596317401450609298407105025344704575952671004375544801246040764190920287120659100604956986248500343230506261600204787969992870459161047696399133779359550747002755546806435151496635353228017836277985585340561613690803630943087337479970142337345533623229345205782080706807542144849735759554149046885422409859672856871384947577587997210412876212920964365108558787896854684043348490387617303972270985426692945861979316867395022268501724285802616836452927259918722346678511631209759604971432056942745847728566354938569959068634530452270191828111643433895268343848302021297982988329097484178386537772951916650991586453020436746138873310178471483770296221378644231211693731448640967772828748657221516917532597761296119492992164824384424860657593319802894506746735844928195670738422977855166946617997757981588089158297344467801772647856445376200080175978403500436916288048671220948714257341481159332070465769136447361200828239915374980195688380127095574064769797458761989483084115673241178165602327574540236351535609968680269226514428732146423896880007038494665973193431046711366211151235520221047391473274781633483546378782474185265514569825846420440062835653715295296829061139986279700193335182054264541414635900693442185774894738468595603819979194138255609901016439939347360067892815343404716143217686548762594896516768716614768592884356449411083617283376105520150963902305975760024273990166800634031148252953119072316846516552360446312153922296873102351835673723104396482766759249455499389862706760149051781860520233644641822814175332947144785349298911399340209869788013395976873336490732351696678592392340872214106149860339758148232629062345306408145558463416687320439793141070881126333292595852214437162222629128677992049529965440932468003664830198847056802713709410657750470874480400229638371316705879137707771497725529061933328004885055425847873954664639005379868959963181868264277877321206190973847447647494194078251503709163742177159122813504638018272768481704356259749345380200898552640354006630939904659648678739179500005298881592593586434997971489915079500231863840671150592902891771213113822189356141128842128514813945848549817210361872743918863104031868683984071492624351427423228148725862176422026853114362329948221350888663502735382460520307920299977233989658774708985763995049533620295282329162673065110156227821599071141400685000755500660921012081699104909900949819969543165198542347766550158006228853910048090483148656775810815510603466530609436255146744745460778175057293489860518138740877825171206047811926485436224453407083246206312289331916990052937881753261672487696106693899970537217834871351408704028975640141093170403044735404836989266393043021203660107126963802097113888972291557909052734487731212615461089619792685608613684411769315139455014818477412579520312623068523663097344589153896473200527630133110279757035042905479172144726153475467017124867149033565481832601319661719082636975304808351555143809073445167038208306909767398772116445935974222680748188073626142719124504412436952508091159267370920965292340742352078883553274682189135906160797722703292568082486134466942287408808630613948288167613048230971961558225003435420563980168211565929097110803060668491771318107722600213590179159675848539970805619538408149374959649656286192979100685667646285054972857563536071073656946886190658269017293394342695966381093058924754819700416088487636688725319173576472142463540373036250046118622836548752717050034514558925982523135094035740919066658192471758604106128991189102330453404131911231286235599875717791039757981486768757263252054202640043518220560658369591705368613151019109603904379100190532586855855457789486304332409354207714425317559251485849332630740087227898217289067496000606586459388428894651336331052891145520083683471752432913627666636969471941026287321795999449967504003509405824177915822771911060440186855939613418490149011353149612697826462863606096798646133374416253150698448661487459057679674400693728449172084376516379008792843440984392235064356655347669177883046032915994448954112262813818027625915884246541432129695925644207062536073451850252211918505500881471429923321695512701265754388457409203442703258367823856716791862522819968074653211148157883784935941405548049992528927097967727715932620744055700083804410209220837968845825204528839625224853563685633715905848885319562967813018526493304190806865880350457520705544713675390230477291135200047604983120383299277969487751930820381817055292386262600399715287758056718839706222360006844529469411405554548777626017678587777817776054330439192774506740725467858469341956925111119707896857639019944130178381558966785932011418051020095064380739937754138484769255163109910372597423358000220246541064904779205684319197163210037159386943036435644728299943536294983282516806600714233649429810674632968057144407600196002658358253510989706022526018918849267452078006943033235837761842457945291035007153977899142982939318631398918418462136221499543325404902843197874714775652367170404041194452981965522641588781092504098080353632647439963902222049341857110826887908528965756143417732191832334813096844699933394622162912590709459720400602803498516936049206328998220003153397238586149096147467998759244230075206443293720825512728668978638337773953688769448867934749749194166256282395919446011712795266403307523410667279047574502192125594247758736526883712611317871360597055502530597719862934703084321988193476173744788570938694625316740929679053760079417411607741889474866493282943664615141454658757602390498093570541926817321664402400622809544667224690281239353003039445322911875409352723673251419029079711554438341956387758839166138824195733618125286446223586602606394762958847566387774172422906439693871788390899278060146119142539016730297990597236816780358156565923676526825281758795348282973519514163278755896544893765159194526839954301340994616799909078374198286860345766775360834019816870877760574149335534258659172790495522897005595580796015198721048548286104911121904725888745876448487632299207924819275106163965808200446500594146225855115420663549220130395856447630990192234699699482634928198466276121756210820534728625506610301071658645085078931196929798185577682395139114167012253750127392495911523754470025219026244273455390759191023493503118148529367598831015017987052518339288023757082765898670186181028528570314479329464557937692557988531787243142832801973529463534826090634589323842315108031698598026302082246990466259315029642781455940208301455467724648337412387972104236027853267036255859229940147817229306155769586866820775221139635815584420011501024189271562180629990331116468632904925305760442858638389109597702075143375519034674892603509417481454835488180366257079463608327194002749166187712292242158801358152727393992043465309753301285576941310019725888503446986988271837044064449145554826027434890393126930184621489364675517380059334398420360595507708976163559247032086471650933859546140584306384510733094798330142621749060383811009208347806928752762760722456205756980526412521378895670034984456097631830974977641366349670153177542487839335258341120261422704768907447725849413993783995339185345839253180297225565922225676929465512217699545987531435433375173161619376970321435495166006176906136030421153395167926489937197649214757688775386656048050674200809974728541210408536953156616742249473374403776954053335382118065409270164615289987375658489705640484673794879170799108224293508897818976400170257788362867298948470097672662286612259055419564838658456806746306919630139720013102163925999464675542788069175933760037978149282889708716860616781102931322312538547186707369476202609882622804881515104187798787468141882633145539586879853352056262173109969164936354049596846638351928180909694009495291869575177727387530521387337777019006955328672856157753664046762860623968918697226215292218387596956419027545895242853942205176726243491250508708313722326374348515587922391330096796293899758581255391698713508641669235309822332469149393485724622961777361579805099648257822379188589069106252536734147796445835101733230538551824634714670844457289824415454339310388625732328798293497020700707010728756826867477580721605200289890763608072336302849772507158780244655348488893360498362935417071377294361922881746484018383121391718321231368529827116296824154729993125736796173315674189511099063263756916498292176951842839453271621991405327356773085999482340384246188625390885975464038124515817869610863687791198534024128187007470402214403549721917085025817090944601117207657063290328328154686496895225087275807566994520551049105199216956802289268295556505244252088547932102844309190897981060738285666043569585462422614204090788651098527868151080126015395089437950876933084206849987636224605662132565601013351013414422130366505252965401973601840752397165609973388001556884622879206132683586175466006424240977883699010883982740796266097304423186879919995593167590844442513005095765316456602398723523087899982391969678737460339307971141682092484775703874435194835923813329263376523044406435462852844825682070833329683252950935707468728529886870329118738471205646935594307144563513746367408344241274983200467574162062881062322527011688090359365472580522098555162972233522177192826450495325583586823752301230034114802870530711081192425888879245519075462914518961621110267706615863977702850234803482578386712798486173441730614290422980412000717196733808624272344436755592955532709671270271384318525615256275195746343449407484853452875520995861298395291191689066344627936320365969325181000519402813339830598939779959559350902866969633148134373351960414560618364752156476481163829146315585580004107569749411605392710065050986778637962198953238564284386047974601093150553243072064569071862951509079440869094473894417340344776729933853447381583876119088240337474031431413895560937890605792679024003565891236294463229413071345969608169272574082988058189475545372195839471632378388635789624437692896894708884111664275338733012794397277238186749568552338614973816009290759001084752656992770708305585889809089980270904213385227214788460436795468569396012611656959639474020621696480065833451759819310733254074781615024850985345101056855740217019269411422389995456705402333221719557523879402053767999846678383756210215520084060216380983712199227728981950797871588908041729309141967795038799076878942078974305416218285813917375926508061652434449850695870372412197426288903810654803210640231130465314267188738875782286466910801798531782529402001006409815752914136452519442592892846461794704142754030030780467801060387659345024921216804719338885526126913474151133328268461461664761756219601654589453066537145095694193247016856785309750231940950756510019961876504980580220143002520832640971959430326782280485170873783284461096414577209629210289912952057227728920734959098947127408236005174704734351593912296379934754496843218521526627365325248865630154632901056340258294000072670580637514779663291223037235147517551858913583274773286354556532800549395700222818995419927676458554998419342239655128447625081774965085058110164043235215254310218115607277945815634579458864202652753810570160647767549468451174716255234083718575098414550175553166055034501368593728569299833856347054808513443908073219478085044664280392008983060651653604882629306204176130226790750648995625062998589091679636104258974474449067621034615832808350944168226951092041848812424716345918035671927792212025043144880990389040152393039722155926584339308405738298668981291279586039856635346586838638159354419731562204290774147731555615929398875721223243518631644562190292287481335393118783308540102349809569290718393493208945601001802020317768892464820590102096346101680066293113145843174756876902588128328618496054709722317212076171042954100396172344988411160760069249318593072377226625043656138993547236099342808668971990590587188185115002794941910371322777442373614317180527303821646907966545094572541764216933459441894903621699704863790970715884459426880311171484623682120154983957217908267945946500583625756357587715278889197033887520957536446091377955532352242019836336027131165990256428419443925783045108467799734656402834838126912055536955091037181055499670806561762278754063150174053388835338594002811540593542306626046766398150028144127729646575932817287752122842727845795476946590010214240801902220510049060012991202162757525868958666593724661827958995065048496311706927229861115334422925843405098370570416187835641009531463445403115996427464132508817434386652002701687590945016558377665270719686112489460570234799723686073263899233885312213169825426897954358634071855408498341229383678884197417002053846711261483855261501667221701636020781225970214490759272705656250429615476534345598299002541189148625563644975672086694537452621991705970822516625188398224752801550944065261416562433323525939849132192288008035456558845206296648703518159152352500292288950073061635498447758680841957497307124689876207184199744493220605195604428118378225718080970674144870271904369672031871631102702250208926961452144274846958880808968504840715019256966110173709641449233288812902750352749752910970301215564267317965752805631122534709751016437048641101131920869759930106710582123008083181527564974919426768698531946194681738780144130128906489784331359869897576373702954766482030425229308260990771286612964189870581997792543048694769051582819135300991391794621873897700097077691589688000495398367095094897213250115701934522803347052226757469781995218636567599523226785066536182185993485344849390744795489410864188166717969831209504871365214396410979396709320468765714600274483402933373774938630930053963054076938886178560720449716268343481753365753330286384739739339481782019534551446948076176789120932983483132349308817730651108763983358888182946157479824408943594202477098357119522751410256112746563709579216110374390964455824331529815959729620466771885070871277708576960215710063335163344877424659491133830769073162206874403860237644109435703945124319249727325245857593786492798867754356022174158635320377213812439465978887129004360030755575497661623516742340213927338013427314176118166899549025591245172968756310154448739011571640166882081367054638682746732199074750213885149325160242142114078087426447788627631251325161952402019318741039496654045914706086722889116838194952216258225283910666708133660678314268049772791602014188572147179907832899490680878913684327704169501132303608300016753586570828791914601036815731142331563527638097152586137303633652187039255021424161696358690754989549992814117675670374860510453475399992862148295077616068351507474041336547049367721362283899617895205975194260460325761859918877002444524227935376063949900546262509905443423889614982829038035413162014817200494608810492962838471239543573944907970455190770568733189690916155900225335856896018171028688145366222015567080855155570903622993860429451390270191142100427744460589223677151576962032162815862679752357311673669191684287654964422018138993176667155804747839085237221416377419510169517960628712968604474311586882942102730742015797651966933337345738928175872822606282021722042398064195300824370144736104508516212270197078687891707279392127284478768826323216117995532838573268589044285654587500451549873484994865935290174295602232473805797290739165095176825047767099588260214723396131347548296470049463655764126786973202439156507621153125826312049861481135646405795526076484660238581059403721800852245718901715227745109075764846556190042853517949758862281741916518386724343195232993056409922395046116772973901445644496762093674913132352848152079740621526200763270971764099395076766936159662919615608748150922727604207651298623730965530883641955571647648490695687590138077467353685941632920716909008063020628894979277014518773874285348896863663230676148468244767300644035388156715352198432850175802859273156721418052954134945557190066000027601070456672497797634047272450704935920231100969775090778833512572282158096471504180403942621544997687392532325322884496818958201354098599718020323785876607085945393723954920174616782531167170182896689413048268435733268893716293225146161150390138010401706169468896775036764942521065201180556567681393113500560225996214360991041403929085525673633171801474437947652166632994709582148474856886385348640690833040127846651794184527956641611191126256529457892120528244222194843677000969740626772090552310389344086661411662484214833539769819526367598108610878009316755566276293893727908427565107438463582427982733130835231826548001424911991215905173685981771744423157926932564979450115345604983333945331489812367126386031035187964741509459735870671501295609446920046660367111027439158524255457099678423626471771372555841182967896895816004728600003340626323434051520182814753088227200623224722182445526274830439756432637247313240694181633043695144494737897411596254268400514844671688901341753639980032976606149835580762241255394931556973966218335305048534340067782721307899540772539644415531114013032300918918717405917463643919238345813870901332815774439469827440413701795665358737973217639745003643685994632015480130209783736739391737815074693873597459966601606972747138343420851482912011074966059626687843939622369423486118819019868598117983730475754641871645833552811830139472018760138416688261002946200963774787868493010779698596484841962293114831899653476717760847225846069521538023487797727820600481814977737559547270662843009115686365697823302585917647709104290820966747030165242255443354652510223360410036740356647844145944895589359314960942425291208399413452676820348090010494716890325460474911884460502397432811866504731730587077255323147777732705890479943157837023592717942966069760377444608373128266921430817301679417843954359251316029714932525241283399942589045891410894277548259119657603268261671857920023505542712518142119820169942827653286732954878944246645253451313146823896148670191627667625402323957400509359021938578861362706024772770044787027203305283008898255647834725232871729286633123083309074551926232476963432580060076433271701999290446726370560909708200005506885354628923150696480625004893178212194055125254699134813260993951307959034814560676084126133031178844731527514680127129544154138920821080956443275450852717316265663652846140197594914103079822887134306196133954959943005777874234769392603157251191008006477813351690732567582799458802964735862464224751194148505287540185001042426451040656488142989606212123080605317937798794611015432301189251615340102670994114560751486981424612268127169885089336769885941582001735802618951363519973516160517431158412298318483415865921611927006759394374007815901709366691487183198156530008427809044890710328992467950614825872005938773161423821014831235888515816259838254996712827864141015199217760836800768355444669641019819613479420548330343545779890816777571982539731250181678822184142338375787667876968429046507344749283456247435815835263685420695230041769692932539365972713238050643221768410201252860354062365852606527915373003791771411601892029493754779789454938817171504831451463715229960204885071478938199558278645448943571955377481508020762117142930314411898665847295546902995001066064182901591430416890899464337920651925475082592021245439480801289924805949740609540752860620127329443444127422981873886575419781770461135066291683507125360556938527885997011816095664615097412159259411056895213865558302230089393868189543284536702848787737554596178240416276864357037066182330138843148188652617945091003374240327791774912385228941030198194118518480399274013507454886523231099757832401119330923845025013906067071949076178176558646365039330217640689992616841440259356209040802376078062313270462602792188903603429783048293509655132413679875795906573761407379748898610533687754209743732790732090430001157751903267543312901626403946873001341991551678562547878103346267159115181176319650264138211678822801314909657726791690446317051586598722365674423335144698950711622915448774477001188337150955094670832424300494433866451461290542044125502848166582525723517800369922027812442292276289167546586656248909179293933135554175339990144589079591882224238738394472282087792383858282115865131017117073063068006486767774782787876029295529914507578940680602917073725946866982044584017815051458675987223617198148439832750538672904344646471564164518114367161692455423468620896243518170511380197898404529524081489301601772850075561455573099787357420034541741892269541230870367840785579361988556754862238777899262676310480666503715265367568688743015221776613226159482391276087596620552581915786794725535456978834536310446588330873547590473613658069850564218256727189204996999434807667049034638018172671898759891079297520327129196338298508658802328580253317732343600144661891516530546909101917405488028974626281217501275833620219413370802795713874304677160682408171026797704526506292246292600196678329455905920196901394916232200873831426629016221874125072187062350690100279037396269293434154400986795446569492334343348971060635441464836938419748113839290136846560111062257622347098918449318413805943435856979005920642264186950305715830400309885567526738776194096665671303769391585222729489690973238455659243844253872796217077766174743962569254650841478797967671231072608160599652223391604193838038135447686759140547519302814978114792314718029748847174490208899543445060904781683326122808904291643116811331127552085692930897215544103888744753820498782103115942255425291763018612902763796367978622707107510870773574689148069912255123156687499988268530394364811918924229908353447596172182803237391214788434791202680292649235315183610326985377756762955024773097955350983620609448042718813131177336581969232311878604386418051995943736230452924923646829714064894276457790025932577483263767233043657392724415252042005918137292389035202862444731236880804922613488791333668271461546249187076408436940463453851621648848685368107363532164058629917431819840633825015926119969273848814290588685526690516434633632599436008183089554685894746185454983909743393368797784672536864978738503540964613797952811125343411964273489628819569430090733163824471287782391578721042127852905381052578720816235772003653611257747088273011511791533453484278963932492516458889418239518405565842810996924532341147683668524178893665839571788631500357244994728899662301796059726138831773856022094043973743894823549561914575469686134261951154331402942217626743445993920668233857307016833786172722949404689046405228616741701059671345210347743417170743100799399007304333680155913662218098364407694059010034263623215820092150684134837955213955859798678628216973054256177076788164078416059211623802624312224107759705512485851593784756563456526849533638185417338857099933431696878000562389713988384142693844938979153951920888530800190674326875926961684218157239778125241856097168251146082027487775097110540286835488161863120602906908082157978330637637552271222122213491560572400596315646861402505393386167600072674681979290334835562679158437874297125045386226725963253702110527972048281517238101237640600484894099849960255843384842795451545270305714544193183983998073548976478206599677322579349902790982655760083041893417390068344538796612445405242570428563572363596981276439060041413363597949465507327906558377006082460752099220238058139346120431150418219200879156061141801605034923416442886623551330451477493572687762166610182037002995374514970037535580108568481488539047641808019688748848584006806281624903456812533188989942930019667538541893327682584243482277906706619136716520096132583708672152240129789806804167835832789717377598335454495898612091874933347543753781276939232792123317788871809539600162839410804929102911256753984544617258852557863127902758008825591932169483769909629243539598760373169608962663891343181828103613847054015479415205181645309596178704472928505601301263976512525919258736073444682903558054947901658912472762291116522463580070885978917265917511546674777679206407104845468528226031621620446000011163583675199662278897911607832202044477035508275973749759208383966974126849368807796415581203474689831474337534543036272483280120786622029829641964999397138613049414835366179162635127870508652954999283307309970736003958047401874801143812336174662842027401984639121136734019728786041350448579534240706195395415353175811926079139013757200841484866538312056313880088604971448909304460728253155866788448017843046354257561428678285467947999069527300543071504925759072519933079088328115988311560097516386060988152222685482521775216587932701266525565148594840838023635032560419191158843876001222863217716873902087414122612333997926968484605304797612818976144020527103161840528874736583794554811413916387836323356025997076301324081550886072208519006410379867274414656461430826369402480184103378944796323012148603501541381934560785307372998960416169690068587036517570847568749449719283861156686083130988552423999605815107749950563237536347917207833008512035610675065756005258178586599226575912783830326664629127439996071566461238103797195125023982668068632686589305872624612276390890784150633856213081433249132280721165575703072800838901714524470664705201707746398857863559851757366794020259637267798238971098941944675146913772577047824267326049973981706382492434771139991609816406076637022349340104740880184256033796509415188059013690521218155020647561189261714395846255773651194510218748942613734189172238623182471634883004144155207591244721731441835632026780940708749217662431952136885647458312432669719017994369542708158464853119935410330076450453308360830770889390634859551114918334649910629495182023895230390453294342658180114943934824998264962182673786974010933121194499073942227934590769378206275255412596383823471780810158224035207406242039684757058684120182379355638454968522967729829350917286659893321760280886675872553439763577493971027916509269763819268216506083151713539033380686892819433315788536517493406675131145266300533043057637142419735440643819004615317983899903164865052835661118104055988744702616229554771522817218091196349707407631065389024103305107369198298104359406901663559185841374430698851031680052088112886857133367153298923057903362280728698201530343038748413507341120770685718247867723988905720901382215395273944513005326018786324429355574536750848004765517069143745342664891532025319322627412994576343307796307249657890104840896094392720167864638964479243695187159435345049309909311217315450320661321539574931888730932401141908531602855106149894826634985843126317933171189611958691155148851156959704182179333171135869289371761820000599177874076616968483654949180918179130543095150981214897637007704639862924993524610743757925006668785403174087060901988454373334367445309073914671072545714664311488056479590145538692117630951057040636294766201458291002921923502990835548303170629321211471354924978193759100548851035589453284722442769238044936892780460018691462592109489064641751045560251049129912445113340208735965943529404384652196221452554088222267030966383044376201075639264622336765277219128063911982449869685477483185541244496539532726774190836836967891763717776877356202734312748994836889666548711037298598528960372446500485740048590892635146262468489359953139625421422115612257359216717723549518307333518103828511906265123481915947889372777569341542298181359996222972501513182091061891686280871011683172495662682236202125003923028815822615353516542065995967479718423544498629295047415312862199032615466540563765198707075003126782296785379025424564415350950109323158034609419103098388684545446865187870278528389266012218350791732702881414951413948232732971074061778542033544520063918160513174988022570341877640445622663962625119480367753157653837401375025805676525005878728935277787484922411870903181429805213330855221076288043766739252257076314081934181478140810031567570143837385780465384736836445647660334304232665455684131380833147993933044676111031131227905349657419559770168166898373423630441439365974665562161007058826049487260782293769069973979493996612238670998079168658967058243101287200138604897573970453670003814579981914917318921641971967019777517555534530376985827614003588818335347499085512863999872189870243930484401585297399243454024380208575314487676186079611169609053812500664340709548097537142268631993775355395435403191530232531608116596830886138933770683813841218779258866755477510509991705697523834275152941772159392330168794996368926264450444375344483679918766466203344164491743220766278941122174486620044393795205190437308571436547237472525801089319009387115009663196956119520944652558162048254872159123770311997506483969785000240587323817360152514100775309301225098785072303465391599761933059785427901011347993073634482647169142998650345109670954509921130295922822335843729731431103915152911726183851126481238576073225285200792875295582684187663437583629366812160908872152364285279143904879335477667265164106097991462238112476289183775524996182189428917466015636282459962088188123850146199924202661470400374925664527578344882250580458809639701911999955215098079850409864104015565706889802984997695051246572534028544229894711323150127608342399301403025541317763577822518542573141480569601248969494271114880846777311873383196195889527373435105487325737931075273403669755373873854085174810618447620760372982654048141474202243252398494362170332973800276899190934992428029776736729841667738659636764551424839580594835283154021759072815627413041978000949863738366906268607198994973665897811281430036819323054526773668703863658263675228982390450970283213330043130806071979886866000608375340203133472252604109822979639824925635147159896261229766526128719433772177345580185838674981463707427300813772141957676249427147332342661330913523382025950653130958928071124980138695294013666594626946298663212386804092223906768748956972326651347653192460928396426125768059079962079585499544693285721927774738151915955771279624958882980254510416935635995991862060822693889827149405434890550264010989901514727602879827698944055221818180354553265366677213557589682152074193210393290305973954466289869180638840350698054580869469699139917271824414305135932968628452939856152956203326933064369010879182725752363970221256261802654345122476764331529798644888315290890848743406275106100826309853856665262476832602721511260258648633921531945116022613365568766436776175155604404119031069157091852637476754746341119512793996688002460075951646614384141904187562978144778664949167878303663418897046511756692360579719821501430318030052676208110820417756514148132192560108631994299899790579690346236765502265497612811068002751147752479451346860686506963787480979768770813643107734085056536323659692192622017013784737646037100079955188752490381596247039863585628434909216764619127843048898477204155697031517707482166063457043690436967190569196792624138691594822817049731818407282506201111343138955471619454817622174873533097152937546167897804689179879367989934294548200921965352748764741978422234993198150034041700272442327961228286953930328825753290921623323935485115794600168503071677708290433818985066671625170078167374008284134406393341900746555216281263586385831136449726861938262687216000631807389813720613983776946718349613748870790010753694338063010276034182636962108849404103902832319635208479357413699628619857666540064908895826829599657941602165340805851935216338630844681030364765465257276803099154111923183329295823110445326258607815330452668217385039820662211193153916110373627171823117297132783692898587046698977239574420108923453291893355442979861641970201011547852285733941047154974802206977116354507300539423874884538749718682996305332575895040498363102565982261459377529984583329704518426160866707968501488289495199323384775484964330676914509993968713242013626969732014897652781807288920254870944846690725985559933864952484770218482004393333573704211093508525000525108746565957701543119913311869302248903119853724631124096075172616293825105557883143780215851767345161303892712893480018709173969907426047600898433661345025679808694955870887215913774579576257763070641587823666891913334961476860523035453859576299015157738578966474830189934128141417790195497026556149238310568618902454252186880120145978908264722486917291894427399042464083959861506474519625355759780648054973857646589645293827445166932402827646196325571266283999725404684653450132581200418527880257302384745947256093006583455361087620380160397912653618351585929295025532746347279209597517098768843076673852096984016451393137989366955775470451198475113377323349879067486522681535064479419670656247144450820631839439475057016546714359178631737439808794624140025954248483100615933100442531189617925659068550490846936432569222424481918579275550023950557892812002601154254288897424369855350999263358395926401534480040793768911257662577249428888856565203039351550385279713821997910242889897758196027661302083378121113055589925092178205191386212685021853605688145945041527905922816278354792734488897349388258955185208540585402198574590352380899285100712197894405135679838791798939512100730853602946956408802556421675458624762914571025897164232960385239557992685977575393130293651871394496271623486861723296291615036503701540492198297863406548760451948582786413946406074896871845753072454461995663420241507763596320229839989820970630127103094422373671540065171553176234753637196401948028546408394112052986506037049260982492568966518256228328770941295322385559941103833764246843521664992904988364412589241758027402950098746993556973670352203720618094835136245838757815442471129559842274658316796847888645319578918531245273152045994406652432182254699933481626812308533247861073418061415379234630245046183628237315543476408438770995240852598139135473233244449977982765017009253669469735049270211298700988192134299313225955172105619785780485102436706966649038267878468006696359346319964984617813883317066986876781694853517311318380167226522672479512156675321326021116795552785754291735388948268023528055439752002825368029403616357082139702231969168032405990450967502763078921284710952761059373515348598858343929294969104572455939957411079342936898052266545305614224419051927789140657810302561187119705220685657880812426293849985191224634429589057997313192655921862595827353383915444490842277905983556995894429411634939165064023290909431708795423517983154135873751831851459333095773328699273023197087766910980601643386532794950022359628270173902187805462960952312041224889241530957698602520771738096204449242447197242865063304575119199182927470890017442709933634044371849897857148631908192565115669808725863816971369752720147397245356578514319164173392717089406447353077120790362506531073594534122018112782962074315558747420259320454762817573634446790516404753974852425646280859267567260513570586666553254628243621768303540553418857749974358592010550441533716720157529128587908367100153690504182358655663751094656447554777579287589482596055858266692035460340706463497978264346684315461775493328156979422144628312556271301782325735855370944004237850318831642463192023911407215412708663056555581885551312306594269822876873013602928640723029397047199448087844390711732473274405426129466456225871307324456743181416624913590150532644847059261786031544830070075301765748953676383059515542061483313866369980642844255372001274645039591293066321999494833154022766781247799716283545995472347765429638253975909471830638301778501809984300159117419754676462343505526684676999637525004242115632958208049035624472575611591525548718790742859384470308242659038475543213862446433993322720508914204650421430188128317851370300633214759678918133839528284191683496148750235191569579796545876907103953787006916726807508526350236152524566684047323582750312945484784096058257706959071432495536176163653326357383007344512568397011844285631621724037665376124934354704279989627535143079853352308656580100627633873405054226800862610663670513772073925672543239823382390446180518892380216471369378678161110467003021383554633731462444793831809667600289859674296142414257353250499969818342011966170542625400798348457933788033972721521212812936278557049494066633280352649332207114824177054365387635864414814609084207456033947681197238835194366193495200633220444383225779150893044168679056129478739837562413318450372586865075620125301809684907436461614026097948066532545635706856049598162390441122310745979235841354132543316272163936683101348650908563515440967425624530983129545423316632204244518443100931011424746754029012131232315397979543542311613225928827034128171612136730586719793821590259866109816239451134926955770873570124849147500857058710458022560554947649356375900178337327268568329933029844842296820933306966119926172837469788389520640619947519782167585938239979697054381396773569710564585651319907382118763696907851959824797376016480752458684889877930198967379565664903690135935581640197257245002475949700821704825278276619283747706974362831616015228263705145223394455155592813108062329800255637029747182208587962807694286476830741942903917522347099487969311372100400571950916184618667973595022510698862540817801734430513943026024595833010795808994995563934015932382091275546571846420830873143862445410649538329812552374096205648905769312905585934005645958426908427026891400116724116851570145062928909476421707466868125174255539275804689332497704036953913439316276655495369675402964350113667204367317871557855636175970708470864386932148013532763020123130504169770701538292205609194097317353311782837713745905457914770188446175925504074715992443085299775836379929484056834387722464725468312968303788742341670611462925996250399812179696610482373804370787315833185133465713951927366518710663756515836707799132547308265952060141840414230746823740798234704085022870132486466936671712072187787394987351733303855386554092217193484750144374186406250245764207181686475755727266873385927252259101031351124994619195572076879956285478982900816475637795820598727219597684646001947552969773025072305701812315335715625146608904198230490849608961871387611027540799332518224179329355081921655153676991546748218211316925560619725689885274234695152545801001330037390762226165437163971193992004187182098007302439043998518898361738534737368972148144197767689460521612906246327676849110041340269521495065626711135335040235420767543182541955375486419920288151274400452722855645167774216135166476562892306208402186327231852879241819768487685638373897085238680473815357929132609094775119413951255619595427506004440186669165551724954020962415854153504870226767563494471004854349286901622303913751894525651629658235105746482233729671497211169943531355101157760656225418435411986652044042115337420096627106708256475063365917556062844946243926748934727361453381410157199858816281616675692175677168007197284944054630521222205638022668959862370624212826975778422102313443247286200361790517651696693510767431543280696181584442374749060862367372366517760864264456372269907524062298357006281966338403128073891608153479804915632678661153389663793545898902496792789601203558410695887588862666802577700872508176663697406375063163612658963444505434681494742751432218483101004556898937854161976260316391409910418928038643481027227533853919194321774253526673250657608839985401575375365787270769423295638216913572615111323877443474601601487038607888560884278131827549083497211180131912898221804950287224468607778880824137371923219103194402421041738614352280283615864576681118141482629904083937404536832748444853451354214728546484410541780135401939692245702037941844617193635365892965799512147909603001760201905509336591026485129584824479058630004333145519244061549909449061086872881746108924307094877101217481824209618195991816152480701804831797548072323657225040576927603379179313520089883173869941273093209925094601315691587993676688904243804019430670236845224803138677907437440165868197601908461945959170661446042550531141021456997785889889885367364444599318567187986611609788313607131160274846696705494008190314756364231348201074972009445715329245016864652980624803488295520868139060440768836269740965437722867098433555675235018289663319620827108995770754043331218403619831291084277754650559712729019416154916583986225531090163545809503107758256707198536162926256694372819443194437236024576841053436769385338546701862014973790106589096223315905400281758337815667044539269564978234392809242474477410458076164317567939208332353182957879063741986420108857520918625178979711212649616145127526243612657639512736409635544219476496562238988320498719274474848005973832389076505639243521310319681178182323260495922380110059411607951961937442392755501155100395403337824556178431539802967843377160118718050810557306048162360067502522679960311646203329610836116821042435260534340790268033938942610934713577609119133385997553077722159662598954177484765401661085429067199355377802885891968290916029394188992691879305796161645386302130194530554094939212933344925513814150073112495076050618914647424826618492782468618991201000188707359209676806847362135784337671433976445337937789095499251486177753464651713562878327080392483790476674320088489589702692519739070610696771949699446265271579327218055792541149125807001517649299978941673959558222325357223308041040147003016038481355720715637861054262302854436186725232920393436410439307278667970097999400946335719756197767557038795461633217672607885169343921281697170474599136578703205409764347906829075428102580590094252254428594802896435432001249549025811577255349003473727910713260934319957279232600993471752397945433299907273493998980084894110796889651802243338084400915924331536167750258434409270838288231002312869374329992277169151820555352153776250019850894347917465004813689214923881018976491877538060875368479030425609050721953843488423374808738073211402968430228474998135017663660921940772502895366495983632152289222862128444601612754238350118542404288962556461808199977517554034493076841548533601973454165330251232088811654976238539165918103939303519428413647963989721135597058937545319392434031824300491299254826299745078599865115926438317523813418384463350066912275978896645141423931453017844363487257969466209762916022401683579639056632345038034271118592565803872629204869956295362892996497207876555997831705501607937032037037727364738500738285351850458170238440855443036548292064757027501912059583290674860087124788506547397830240133621914873047113616109550772082312944847794948275714678672923758938059088107791301459311737746807581891063741776854318784812725523093414414944393249423825290164646182657752556757782722852909167954144801395355363789194314610426481262801150439355033118543793175839327259156536392858131847358010196386748811665525471617941558659333049792941329497014852402978992449539249299801943908612197622830437012577553570667030642573113354709466601103439496045171038999970372312959261504646331520359096406990652769224338525414763556001587556128369808860007516079068298793180040256625126535991751688501773453844171089024203596621574639716459078672396175186290849073977975702416254343107190506963546234944158838924259661376053520688985379661624315779008826511762514851590087497053099316011691747502188035543654252839719613609889325691194066600570046025900182225881424887757644234905068313282039433438933662917612761827442446832419785127230631270836990590594476135474233306651184308647984387942714389548901801556079945360835808432778628569078732284120465667139925049075914419985909820301258891729024389428459729797882293621924230671642324778885671728430416040596413770911743192478843430170054329765253826374358410162447411870759934035971707375174912699492166720008239138625569034703610964051891478321630423452488890736680637313173199148179350023360713646192733789187118780808955512344464257065147191466851883239502523212758092587872796812453022003323919876709196092032833910231656694445892677135257182973389679260575769277311996048305066032040652919921834235335188695471150261153628879611345033013130893361368676529367600461801111140379078347020102300560408218221527519062332085351221594364150421541374319915447878174105440673752165191252329300702836686152738459082177604992644997121714338613199895327287576489222230209724203107566485912291487036619370061584530721321219002221841124852481039154175023151816246603298604383152417595950072162103391876673495043081053176055262025138300673994782753792481995116498704249294228844831201065589466750838815384145214739885828209075146774233892491984801662716405517424185132388134921205435131854383421787317331454476619374579457270620339509912912883525088507284766781641718817395421923041139518764428955982510703810635659081875951845937230006430366039292144635237344888845871195436511138859258221446678637023073795341620300137791786790050870872961995745742624794209573010694782412524345034479074758299948022688353047692094284908999066810771302805525342538792841783165476594243938144486420375795383257113147014864125592023659478850023204673367901937610148631348499611776893582068991182790490608517501385025935506043753240690300326259186202209166691480231077679538114747660292905024061031524952916404307461504672249676966448744076623992967150150094358550262761607302886529867812892511484426370403912300095142608259524050622045030267653311988347155636390981247394065004006441319263622213592877329817144614245045148390122271596895015688523674704713094947574800374371404915780937214965879174397286655599648143880525682480072091646361438142030975140287839785914086790542472027119721195966070369461843281038729218303934511619075342177468525928885739926646449334445933279435602257643210930282631444893666701813868782000800246704754683898429261166748414910549521479669304571270582546092783289894101197279434174612183029944631347192232418544716792006696270835278733595427555332428949242340523534801959432388662438725757794636183299326362084515825266096170681612027975819263591869064567153111029742545828990392953467524301048580044590443905588305293807505918323469837047539838221018366186539852696289239147416604294368923445842068695922013854725677125798238711521664825494333036832181403759038318447171556045249646740122259368842188231022048803061157989627000764457883255725221776039159467958944023431475317107072262809630255638540290051589589958071134261895775391073877903501425958792920776945221450945609795517683345849860678969069361457843403510843321514103969287493632201581664735316286594946818412301675769803907741983617986181472969454874625686016890517273079710277061664279315971074895111772201672927091011159309767370405044061182406848692194098916208261246777431668013594482065156165044811441594295041628753736286791120852327482045478928326314488852493471403457461139910121238998523443447661511578749186250237668588609979152388189147664176722087772034707311490227704328094666427529613427339227802792787236851613759283786657817968777726049497208464853787112097996680004431820303002640640163218755803497961689539746369354639861064479824143487446751211858344056116579364879092443819843992499069143685703309480988552594391072932041674986221463655800952159656740250467611183346471021818117292861372493455473737487316814781429561795494578476377417538823213041214916949590677688049198014978235329474614428187687366820503232379057322186356856071268973839099815168988586453784217348540109037812994327701626439161216808897279517937447631381562063226884742775172745420296732597599542096220928667332196625891559922819384795373146554479144816215212647662213233461496332159807442606338734723491223285478502961762270310381993916216033570349762025628319730988386171245376969616227645700582376894201417329862337061574526030010065473645854226076607965569946678497144839878713545067860326781324822208340333682535225370118527541936204644355193676017684241441435412120907267264316352317447461763599069951439378210485350983237172815956306740717793629728901527285127989701001285846184463064229310952416725048746473385723828295915391466145912986704557610252383240249233369411875465538654875112750370895120524853515350841644225215909052621733239556832712622871440174142230460258667533526169672348058084760378398050925786179197698858171414563872999577032529974386003496563686471423552581219422946466390872777331524005770771789397084973404931829403261134348516738392807665850024625481202841706313026648752015695387713014541295885961225096176645154255745500187685636503748705263147689026385790148262296193081852069496628521800556272187742841668104325436165025800855983580909573420027528125698418585989365750593539522120226404615734238677295971982138445087891094939221837503793722935487258155178036764902948331522231656049779878149141234267266627657722965037865710873621165758049718110364459893111806331665865315154705517086250436670023384065859893771275994226248398398802546767395990383021634463934916826276116855585962613998864867016750220232823476629584317234219271049044375520244861082510411409436065889584155458786771533266993383840988455750247373649397592148104707514902329425390874177078564045671565086244890082712293199312906756655154638420569825421395355255436043592989979182302780094318470278832910414765898043159052260988541771014362094070945040594836776221996042028606695967921495377981086239768248564999461289934825801397458578040400663749883980543803804880517170435121255155415159724218309269563110265967440351546456978875105343568117104069547860733946197603485090793710895869283711315230840557095151788337419112961111593904513352457111675869737836172925696247204227134363013705695574661333946395857169253590309882241844894917453164403174274889644678619475604995919912948773002354963337290640759544242311302342761595300313457755959823789025638957323677803171139624757590024264453556166338490736732443570676417782073262388232985872862184234574630240792329763470164894281893917370316076744973935973166358683937827041683920657777769071477300231630565499968228004180050489201767101512121130750256806705034508974406187473506780121965098674406854861339527363184284283313512196054244072650994189599855369416610887244456738767452613121351859771405391799403624790776313857957267907085991773059314933549018526840246919425423997452714899386700598763107457980055260460674529121997068006025594635372833123276221363159588892903215544622754387331025619212595846529749196726361159422760003236788313272063897114078848348714372372816660041030257728928547075198986103929759643928053904701639644423773451928010762385171683230108081536047799028847666904631160597168285661354415632030798848304572815074245368415292957316759947636201758021054839640586469336415070523723826014347067663326322366045651030064815731905498637347242448758658153201772493327438208657491575033427811605864641293234998552434778035435235212956949253775852326069592977051155809183544459111222916070521870446512270892258880686471809293105582878634066849257248859133485534366134797401092616089537589783696453566156145597484665084399452420514979158136770329379160407580545807131391581894953247545457613082644649826452738428956344162078133804829337149040444644898591541437687999348521697178668189621745608108984473584651579253869117914217119827975099155788421521173793747739727716868165796579630137111946674059593753171632449553746777916160946992129759872850170102041483892434463404489466391400934157090734328456291471266872091896072387672132768952833262939048734917356719740979019400689144884621678797182700142586488579885071196463451184708749107370849064277905101523222405877419839373315498738571525416463879998821589258590950263931471768764523748521708630900912157748253123120065437405727191723070929500078362846445779442280204534512128167257332992752412307568709512054040736041586394767027290110626202614691109219068064459962891237709572947642929947175930252382383648026282815475726005998026174893643870420544773170941139150905901113799425157385844092072360562133757429885203933339737534925190307608342306815397304299128700665230131696651269589630011165390665408604959217347468591319859977659927304385041981242324700638850024360171860861053481515562979112024041086496683418422331957344559402958202423204641973865976030985595094557746428660584321510232362793385528298850308608222802689263861183541545813822467113199949926863063713507468177763064120109297386855253987640531830830319362600087309871478040885411958820620424591762476676087153684384913160925422527841024090175412546346354414920097469252977909110128690156729525531162084868808325380223455988013860022629229420890224912608361230756794101112919619903925554109641700130926308568302423671228684452644574124288079987917302540524742604793294816836598133424596020617343375897887165116315079172715741731604626463472592151706008959240486155791879331089628096978930211929995416172832258174063655732706797130162866601762918449712662092691463108607997851042830717243295785439435962071142712372747956363614794430853740749790605943383198925772414909086121063154630103204773976996335273760575953018109876925245015527346816029643051557444418195111429193629346495839380790422421358289807166494782653190049459942604597836362998795729496919028664417765399048800570115466021547002354467167763057552149986984967107335189977499949424162983002958529093269862946961169076632331083097707428820134953584618202054476509009374932657268487918936152000487755314220032921651984795770385823001012494785875582065616318629552252922737258351514681813334774076454753372406946336375698715472914821202397532860993839757738404353076762638852092455304758538629093289954690576615320369933586093511812346437028186669864539511237715091430481963538037385947087836889302766200871676832380556217288637979958295871753752416589256070646830277221457813727490326407490982093498059296608239069220820660914721426469944323315926608466068945562043416009936046729587323698025144666761381119480387609916639167099038581038659781435301743208133994881464460988035504172660800136845432921155427273313861599320628943947444876894735676468714847151184775957297940089490754028993166287034608225704189162476134516449535802929489387537060548045363466244953327555182064255740466212933362064248889144664702266904410241213871623292925129051741819150197762193762096284979197740301668083945860919033522713700371844511125633716847082409992555720913910485261637461050386132411226053665927781916728457969637767000784852303189815965657192636395709288716460542467506817416021943248261328139451882603558642240405622442384613630863125343447102749299591138834882986178671426357570212305567134325757146720929450092520270234861722523220436534475945539821670134907057777959229117378935936799394199869247247089873748386017026079351636570498195093497458500950981254219629881700379062186411429766955271754790280173429614071666932104205903408081046787516358205835393960851953525645832169635938982296148926540990805993627918795470255706388969534182101614055583027226375886365791535289859815827741325965758282862634083784797846857574766636091295534783087557515652336629590023786737318230729245229811555300757417223073362148937698843384194753887115090736483470199443428922779610448713530045923811571624597866956756698552071583564835542723748080920736702564157391632880460619399317764546788110573011863131012014483298891122346396050479730916595562977060100712911639460010891951886656677257818297590341245141888737334122143141168188971966904021940949202257649628497495396902001044970594824146906315787423328342512147797259812496096975817184681201139817655403282092550907097480075383877646659218979723088147605450925046529615641633188502752651782662453820737877913565683469386693113537154908660632433089395715844206979901955311138791311531725263196272721215050684714044021038048529880647502897417472023932673478916602980112552481852131919897448715399509786844200737633464553555993694169460079485385592052157810358796684584707855718669973482990676504373103302062285787819814325771688253513964104127434125830957548888899462795964159269087763418123491913935120179631828942477266227785784479909110960425937273118228507610717251094713759997666284715431630943055745490448658298203640073796250712833401426276495388741598133884568021260856861625333755205257811217084427710232199670729795770849312738750570785687481890247242323095540442061062684202590697588286438412585874971895749967910507786705247323002518734276332420717300786588663198719642141128210640688461959497137670835582007664191696803051154568432682252927984104317777192669943977399686516083752603733767795780123223668229972357807004685644286129972537373633743799844587588934731216047557294743372786033775355435200164813154849006953768874243488090242642797375603725463255398822745448679475855575651447747989651938091223707924386406936438857642698932298922704987659845633230600383867690431471381178450810934152754148540728593214033962692046071783650712255622510289410381998028258556269581515904181968910607183867403459066386108761023705335446649302996004662781417797720683017615201263299539715903657263659045964672213674724067989014462399223500828598135624692528602527875600174085473238574008182586683804750550402122393212159428289627597672370141360694320631446774968210835001131352821447001607960548025929373147909467028118081761868261997558442574925825478830820730914670615578945114034557388052299694064755727254967825777041280709713287699804918772199179831831702413811546923708481989727261748644301575022845967994888388752462977956079056891463662673716586876442785952303593190499943375802240374419488553871473250319375914207532396203620211504907943160551864870961693561897145787785903663898205780665197124132125909561006397133721834028553534484630077547863271922917962173220962215870034437200989498734679027282670235108833351435939603589367066823654545634709961986948058755182542028163633289691854852057525321899608320894967955638258364783056188034053282587626875710523381963343473140248230274491202813353683905175198333793488671489648548812238679516399760911085253939079831238213240023080913529915799653395863476971823198494771486622282584391903027124848008454276209642078326921905944295599386360817664419397073601892198483810707955572955906457044138608811687243940118466571490116458331871824115075312307467838173882617712196089378925866291685844419161415817579130039581147170539701999505387509645331390966699868205554749595490882929973795263986218519156781819109660768656128814355074957892305591315052789209620867362239014660120816080883588061993282085917232256329939003358240189768302603300098497936449399774861890626358953837438929761030984266663104418404907618240291982876943366842410837926594655273791656139110047100276719264354413313570103448621354019067876966014286736936373544374716744462839786909301431493724239909478920236382930153242062464526573413241730534970512245229811585723723661413748480115291627489157022509689508341270332425506182855702166819255789130467110195963926111473498562817693911293692965620771852236514679032677044274930923945882695192228557118654917887623742848943248361600310219183281208900917392117665724457311427469685823873690455608963603032252708222754737671027643422760635357803444058425923340315031511986751181481342045389594893603382409144815971408411758681906070154646495172119270213530734400574442140914238455328491647253548242776799005202733559099295540634058870053357658524329814891685826615879711158732645172671488730828602724009499138513041323109429328287254634523169269359842858016844097483762392620254910703050402895115451898311703435307198092883751175385832081544909188283092610968939166803149963956472350490654998536383019213928026369822072638251115430409842720497613709712526045758486270158416629782019977588268912531262813852912564107336491899210432333294597753011214143668812490772617787308762772286550839578879272037781946465944286475799519745242439889951666222437487067285824643392590479695832615436368196036479635923212860951707893259608740923363668212042929412578423614068352334665120004952181825752364808896583377387908058202394466157218052182035174226916118840116166963710476086188206739380331098114018278388380173515576065994568747649351513897482023031353153543225617287986988196468966868776751367204881639860415762785541283466791497057415566165513210945463228176232404939218758085284361856089976150249786468160269467544780350097003149816110416245047800869260093434492169689222224337000509342964519028616339717456640474105131249467585524399720386881932706150819479656412750509120728633074238815023059572588795078615527153601950155745607943574204509583086283609806078493345084056294895151326221121153706494290408967390133187649530318523525301962985594236020929774872728770962754624525349368497204617868517983510616027152865428425923035824266578689921529449870660147073355237379535088986446353502574189686078116082675194855763015470464486221668777172291115243019211933556534736121647591586984884532842063698655672408324137297135117462027203118678078855541975539304671639153373724116869359668485050905038028233131396145317166754214311460805823557197612186483309943432191478887999120881702423227069140481298352329971544058512484655343234187798481744826760608329704567124931207617245831875881613376744426737892220208330190543742703140232611559636774032760323306972362268421334027534128020384177958992430670006002530050469801714064836202728935084008949619145632123557230641970127418551812665262697905022916770699114467466915505812123436543125689788506872160641930990743531399899108574651040609164182831429913560531716239157308514791800913586432072417970419594971617415797077752748455656820973228341105993314896359506796031137171653582702079333858220246419296404494510339298516513102245048772410959009515137102751496109978516050290225261114070635771814463941816997531203087077774093311703733862711153925780010132765740702159819286775986430197296241851328171608242432677768028539457620474736545913308951047463462197672108727600349215456164871133193161112611679018045742715590152389559470065421534617838352861856494021946001243869668980617858187919164409710638027362095392885042569878163179811724708225551292951885371837977017749919213865827327522902964159040006952457179003260083192548204507144454939038447576583018704163559565038941999534387234019930104048887602612199578890822921297404056812445274888101189062434711471266181683246125662424121699298067938394914640357607422745658079932057825213745866259583025967830386962153976982135480675691941099140942447630676149073355935140243347205002299457925654714987339790892767768733829973933710850562597997948109836222915268464086665217637981753763358370463730800958084793904252970647340622220464742299354871889860000497275859394186351592207291891414210116542539039717830980331286683789998028475122674985257552144845098088538767090854726977110022218398734330585503056799864231650819169404108885209378695797536220034425970370763232956007141960213735397868184588593603097149506145986117383584679078539366882532992136316401919350373831704439916377809818845884803498501182049749994603651172823318462220140515671216162259463910188616357286912984360576332777241718483379005233489783138058487040456570587637492453160147682687111943365620174872865811065667589419418157993635020154253844667925679814911427978891921934736463675960037108027879916106167142401605356727472670053528032495149300303923106143828847536272189441959269110458792577596362334111943007784855436537766035087559540849022016214331321509832362726123142431482727718619930037449291872029262979340647125905124257559184203856084484358167321151762506063932400488954555651698622818578184563776643153954432335879740190636164958520746475218939377852536577463923074643322376002472980143449252558282687811630128781872429139047073513344111761861602853759488824851329010468211073304753566625869821302207176294607363201576584055210642582742135328082298701290387693318239447738335177201088866811292641675852652206719985592177089210819762422613346334364091896718921182065028578442491080608703094843312527635998694727957137534146667295349226776164209018749065726900395402854357956849521704336316773100865435065578629142541663627975838483204811724867478704823639416425666003921847501262864444267777804759061467198365487347094428139439794857679573945473315574956726402083341474803249111496757500637368116689703044384104306492265934838881995086210500370043263658954945160897729663282791100609506622219233761862736703260556436499435347505541926607790444533263381890726193063047167356329361990932521587526405402227371587542926523280634597558020414677767952075009275746074393513776316269425340202149064678054904701329251213006543625958964070587003244558160043131979092434193764069228122055104763865640185902175549064516350643970924436409594598487465441482482565348396223173123228512810238562400627965727411557367832692960973909625914152900550351740295012373879846162034368383775303880596805746219945670877093769117378749615353421893092129460372729020546923298857941136676386496509206982393941405147525886165180284764758529731761598297636455031439331640823807733242131763727349856491044930464158657746984926740055260671650154981121458866612646218284862405757878851995169832435411538800419676628877641650812036614372801572265846063603727718337575811592864974509273989459933026855296260449257055871533172307275085140169993727776719240552127873210803820910121094120173163271209336527315876169307572437741611218403220423023949729193489634443020751190089771390656053916994281890889710462115832491455064482260071427167050477215861315730387850119368232148971782789537533801465179654387060955768061196170554017239504866199908133854904301072171388899766489849314249641872203505812510868182811761634095329656560028414695493671427907445070581583730756866797872264967984402325822376036813061747833265703732431771113046771025808874447303951064643244250354006623450061272437901450133370122841483736522504314335198845683193924614125692732946709111960750852810041900393664841385118457953043857949871461116826047397934756295680214381601398630736311643963850127903969109454634914929105481505759861886407426550692529154410274138377289290783241626028228569603380652464982156090612207974709812857411756471224705643056043129385149597081041757668477665371026376496938228451832405081553695306994246920040770155867528546799315253521278384887897297497843770595927881446728683856154460682297012720270301418309222547415138132612698718971619763057936862730615110491099851832651977196632967504410844096998609423472731990199100455025888858649812747419745391414535206732134367133384429906983874523227548119471695620633420119100855917067991944179086714381322508971292676822559198927588524257610109417744169027085190347264505991529009884894413050592533556109285471160712612039544514367710609912545702666511504018280126960623776580232834258100471607600771964937189865562104413856348494633675002115912274200903008907915995239448980913205016513351940359571649902704537148162420051118650676075778675026434289140108311205785355580545926278309449531833586382737224766856437782898730762535800808446545756114002823459735125126134794508293302481802263839679740991073353819520910887632744548051618466692997963730059733763279889247694955810938911642131591822336966511940787237257552206102615024382673757167755974093815526391304179243710677132744494060461781863455776879804265726136277869342708675149695817301327669118758386679041354419619690072280399617387827619278581075209739109883590293284253665201212052894469110780324942038823223639095498319799961324582994498431533779294063873183620503604981912654623520276741026381599311059211193403186427352180972461505621908696808181688534118010490650206819044747851283933359311319983374515361707682753217462507362624556293537363774408327956353989170327076565532773316019807344011101781542550670066898955397365600658644115136414998847545824663218363448182552603553441054866972993934268106060070886614551799901956391446212867445013804450955727302074423207337347335190734102313498524802488921047659390973631712320145235134955993837069871175691598480412343238829050251201296586977778806104686375093694054350784662750615855720767566974551463612599048108653003023641419390474974468231185827389084522978422080503596429455754202488292716418084131908324046428121093641653354789750217041656316514623109422402162327469561712767826171138197194097351100379589932474289953738267087657164329372951365153125321325383039280891229611050402097940148630967613069454894129733715528359796902024311720988911515281314676159687534641485838691967921682158733324224652301688038910289317825553418644672249493929604714853246374502254646714491720751448845922319760171691469591328912435836643348511432798727636339690454183791675416062545973119223324134867259537038699418580621689714241216551172141677549812197692278367264572559497946486707949848858311502158294360728781311680691857219134709257235067147024183408939372636512870563023126731468872429892601089298833649038773744326033944957632944184254376799201451010644439420719951264783768395380012786366920503663898582052186391044917148953082212601931903351519932431785076180202514389665156863220430572040663015972618265504209301327356064288844037271332957157090199660994803451173011361285768376452480846515891685058734918227909431157175790666719939692495768323890051430507052424574065443284715979575312463757229150255778128684890370569638276788260149459062239608373500780165017977959172149225874466489415600521048658966759963144530665661058482631153676728216242898526315332483548415858946903103405357735364082643397187161070071032593409625293847408540952147886033811367474154636267329276397059638813785822740129214372926198801957217261820894457745023726146191637739182613988398698460742963634244397790943745468412671732492287747345224578721551307512847246760225003476615930490193193193788279558261422360678952772187863009284909041654106266679855944365952648753103250800950904631147899965712863279087275190224528381029447480910502532637098064295771471476098381927541384331294738546216605016362278326159196866201028699653544113154607638552260257053688876170729622625547479148564725811504094668334499307332555581339931483838083344101989789675128427515924227164164641629982222207497898622003614537700189655661427613305390712815258481484209913681398835130126613304476308792176365334166059810592164510670786448403259645977447433452009784575130106062166342521130122574020696422250233699971494623360115525772601929350786823034474395069980517815467092819945509078189140229256373087259961001922940199493107593677116222450979803502885363244969688290239898756775467431623043267781567344263886644210162625172058512268033242668591951266265249309069725515889575751347184412983116277711670478775130262433835790009061092579393584128824312259641338292661821195589862046211670259085194604314079445705224684597632662103671075454428176663247348383207190573709107445231187537935545280243670007393992351031433101925253333788258206532147294484084237954396695213110254287728309131293088832948508783731120109904133155415943573580009522148492940170156475060018014136465405145986078468470657253384473393936828654125369022621885959769939574255595510109225326322478672768775254216208864351643790780843655407526490368526286006623346368781386998021959590981853321883910023287082447764151055354145681015685896545750873043623358343120053965836482424562743006876977582223670232170821951207781196516854468266349887963910944630716580007832499793033196339414793453853387736829843305778797749192613693269625872069521914338644420757096467616637084566801842489688040509110665896650952356426324502120607394186503650550092710726852974810438178315329254332560591581077742041173469253374390149261923768187197679736911911659894207055726594398927936561723854424619064975992706351217962528378605991875447701827083576618723956424687269899553899625918168155425721693490680572191369117884893696309603364668206249650361705344621865410384890248348462354829091044644995421009707076217519251347570168899853194403535779459330326269267028123107471032003784526432238902285298742512024047991715027220303760886275912621577506498404226500972064866948662991693702363673267037358300187755507436382624124903655772928467408952385337689941536646634286473421271311748940415271201855302138658494164417880317404918549386646627610657286018128789566094497999030307253524068217353316053717171366829190811972531243975635657951227266197637597751527143283138910072181975101024170684243222766938705795086405212702753622076352694064888097375407569550243626564526535563152288965432204460285637270915937540918588886996381515448068628747652768172907088885888298887279360300340466195794612120543491315412266754061413131032227008100969980721951912083063204760685618734167636054671527176599576464048008880632832982696649938872699737378465745112718997324174656597844736933933812068491804468395044936513204201741621848650709908945087682515300161558815603523496257032498555531660230607314931165343257431018951048232840320414071142103479463912981497829081565509236626426207800783496283956385928134810174639626769818922218963365758258968611709905590533027362315599329428304906233795800632056372085454691483800111400412831474084248829021371057038417442393010717064966733082013473345024927024370711314260223667804658240365946558904807391247186215619786576456398863157969743367804819113271994077510434859023302440104320734827333726503690318173170578108618578940428733437832546558846258642887248097165966579417818803307489206101649187070017569543343141871040162050862813465141078730461775811130650999368450053751156789584316245267881058765263013663671940715162094074367244524656097190608239233493160260157962436518204472386314887193609390740080614758267416741364504461427551976304358613387530419938108903278719120696964012571201016754730274355953710292314717179423256786350961856484821009153979344106406302761335234539338891676379665599261316361421731350644640149226512939991743075174128411756845052365722777663311978432330749235491429823669876307176328054354711278526109722266867875840626556780326364059327563808989954421911186569572915610518631233073397502257760870230712611867313421908069908939459593912295184313873035341945409765503699125806815269439281439286583641161770827096950743616676271293208823585985077948871460345970372080725696207178430331615256666606038869438168526079488385612278530711754976860475180760298753991757914700179021952661006776943530002899466530734978000988825819800902381159690247210002854372313116698465899361190894103205725464867876651051467093508224396644502871662705494159422994122685721045757773928780512233586863915536742710810207279798147574019555419320447737408801824728333614912584045112583389269070068224619051632139407744969729362253710193338263514294379253724150381893239060710161457182916294018759710873333848557159552202183607252158523254391609899999750686348023480733641920967107568870077754480045775211566752534629359510083442638979921935170402744693409533858148496563259245486562185807395246874563779001115475143223695989425173706915245856822650491606532951397830152415597545069013949634630535310804761517038344637052375818825783695220346529309460340259153799021795623891346769818094909422297688296949109460593637275656783390671255976019163874494332101578675434240697621004172085635121277386223009811287083441881740508674509804164081033866495767524327476518987476905838024213510551937384664089665795921874276036857405537296733056882503959876986638488587386993673991861350114027577704942008808893127607391189301291766685371754355812337583774366269410567043466421919500620375426969027490417654314986117646934911069022090808852790963296217072381636631679954604081698447174464582792572934780968033299951263991293513770044608342312469924954813347334726822043720129609564386279016809535455548930766569323425899298298604313850004739434301579324219187746846205691714850506630803938494223064365943230991682716129677171474462400187871375100460769185810135448143711700965917742815373529845970749524105429550768941108024459107481077772965511072899130299890897679845905846373621466495942981175508464661454572010203655645989203066604240331181373973105281536215168597931980344568373002991063939730555579098933692418819945398424818575749770738679509635075172242754995221763680955190900452365968692504456771338287116787078296283230327884843087705540995927137304928459873346635795433046311075535386988280796103985086994842317938966382096516878729698906378082852742606059890635044133859626046638026894674319789287525591530680354242990674879458133402677924334790246411025211760668555245471127455887564971782377888352624024121765879368516371273456138841742205965082229191263597802152837382013946755118359635668206475026153611160041027510683360258347494909065839251475096582534810424663810063732266943878330782356619950604454089647971117555959646499402479593513555288807158333548330104351385030192513462533521981936544314212302166573087352025071421961378587575138429452510563036238261594323022199830803460739070248161339648423281317603710911473433961207123366859764332055895550042697894533003992804025827485581269091972576675137510128427092580340831456929529506890842620280841354874835609620432589960599055728916218368576867715517992769064972258208058489646041126629612338773593516447462386842731453791666475563539003745446710836975791773129659327407522538133981212281373670508354773765520515544388499313441822651154959735075694586473623129646963211623377887988787828089732890943367603664614418126718991573165296104913705191463372572886575650850928713371109452501147028715770518926686461611320241324320672908913277783636489902872793394906627000627020551782337702813890377743516783501400521573224043151943188474324856185146908703363511117983331222774953723194773145265063087798082190850281559710584093903768140368428239558589725220577618769243030744950476379522910059896888561305709818667852047529668179157610790492443352372672821398779988558915579089715180095445955102671083931086970102282390761192918601288072520127149821014072166533357167342096499956780244980947893163347857941141068082989895365349565714196686015693780598964596311450437871162106149023207170307449816696731700942441058512684339404101200174252936148390015243571229651612300112285433475687931242831814755291109834874847641696148708102328453536154881501675979058780232009530923278715225204121465490544481821600071104671571059353352027404702010945701726188403685512260097634242697073743941836275143821543419248470102371675616502170837693175316976116437839686230783729677935746867510330214201252318433877009016965294741342300289213840440594649691069613944235936692772242803204573548942382860401079844050862500029011992588821167621226217086890846457678726111297004024462388851330269692196377389984090935101060867795038290357911690288240275116128349156734591031663676932072640099091467613615993797262186188012776573598865467501768550951298596455232770885073497587128645363409663469357932118008829255053913607490099021306224486829691277875936673519757273283645015915311737905727591910089405193023295197911274470824423593933399974403175361027175499032746564208566749307491576515725551024581068030713778618304382991086290498080103675129451809247669014719533409914792605462425827416415300891806889986796037296958331961582991109466043157230805455450115608572824155322316790418578838651205481110943257606805300384769410087632218794160025230937932153166645048306751939153663814563591477979919593719755544214272884078653272797277287113640636057378941136822739462630940809529387191944210145484612776339909162658676407548936779571602745122256199658406743066817160412235183537619647561829844684277130151854592274254374810463163925573617620192184268382142447213524583372213389750988584860732308684063978223540681817082935947948042034500983937803467483848961564638464528484330587087030750901934779105429232586823371093636387898373371909568127420630156370143606018717094671100187566248732541871404676050912095964711537967526566204346588521996012779027083317071118795274849607022076673142620970509163806375755236085228199347441749462173807253718522935046594729892912485505394462821522107497673392533176761164165472733168705678401872186996575267011407620124376193713492673897723391912389914831008275800989645301932301204361882302335443377796943450606826912612515790415357883728398662554165303447732476783717436536221406294931187815572546080003105168104058732933204877060556844071470092608400120241358584716956246295407355231595383798359958050559270888230191675227552828716452514714710903957029205498742524360743097987333413689407909479279899926200813036762502444931057674289206299486558235077713130397351725217653286331888294534968166610208205455559739863843788782776554759408712872331194312986889716807101183977752311437012469879028352923364883946666799008530854224046514318989847358414303014843295027924753803304294133064938039192296377084641004032601375910167481073141165670396094762465598258765438164563593096904431255584688429761542237814017717705528703334362307071625032609585666455555461624136840054254064454656739750367537466616249701528367522571636951096951700585802600854085675245710251050977600750878465779491172822404569910472610427464696922874206108515492091264158328626393916524599764939588440420696679264662625876889212654891206906063798245771926751418066995103480066404985238255745473245139042556414960284933756057127647634400642529701896189319226142753892374127228596749412994268631768633555336882021611919213952572492372201321135769441061621254543720814505486433015156472204673882447762013582863527040849108365364718950676142759778278556674768987010255621013434908650328825902079760885792697535514616424724871652066357620740514833408053715661343653582604843466583590003869140811016314747258808967154530000807067473754733170334061178602265140466770322956659902349837412020617778134244976758574062556990852549905108715422056001271074359048469005892886928648668918301210547222218517043875597492539046820277583075844823490984489124726970443115261111125166933531163844328073657907596048439062270272407168124615896895766357599568000656042523649100342067291997223213720043575957653055677613167550421058940015752769344901180097254986676197993270019720053250542885171908075417647010739533662848366002385390164093134575679848183798023991890174139650633623564389938273372423539695288059668212650623359101801481850793757017923445570748939177556609072867742900726555790164138053446437221261872319822347161348730837719200595960898978700218373962922480227918960023372650742548530929004744854272693356016423928532861601833116184857892079915896447011033400037692558363861012263547478512483843114048394828560769397469271110832530804401953844586054109309872243427535902649372914617316839211587036406297337459275303961993047298634369075104463528861630726087636376913804462909497364198288225976506172349913037443171583584883786239044389381475153569785319316756207386461075163204203706527093321222123061718062184601031541587013681378554411419288765491150974544455476990167105595342540679136113295585123030704706262761702064602258685838086238145728009672218525668032305075362223596866851553703002896234225743604087352885288849935203302372602741858539550918201957100776000755830716050878169049799788724290746972071830878039670446524621990315759290729903046159200076218322016043962706331891397176901346105329049736232722901573545118029071303136262357115409692473997575441211939573501274650252333427641822208105006605839488658415684579837599875436462210662790870588367222901788962508270055033553262980349606523657376197929683809267155921527715329640134291642021925248235258710406804303799906576556801980730573458134971548558744642696401819198971837593794319802728217418085357028676135261172875331349640366233411579541606038614563825317251994256392517089246741483389308904828471938598428432931396367720577878249993302342785147423417091124275231334085692300116228142329765420059339373947686689412187568390652793763450824362906898990553105785023884828037219290331543563250353452509941563384154449509702107283696563508815833097679581081338266650949462116472734246903888919347570472948579924199280858825449051011918470247982962847759588756935241490987599730857668936444810946191148068879028338523311393612573098785328057008418081397140268534790063812106642190769418692360219616547998064616586973252726183375182115359729664256111095645486641997697132462064613676484595977575400726279613862950797557520039426617162749182613512643574438216908373144561781751677360933036332185150806684079764828531526663504894235901227744187223637266786018547630526270098650618824645543406277851877527113732772087940711214659544836610775219295292159260698292009150863399920678743915344054603009837433576481873015226418870164473234370335422408429096017509106769455896276654352627940091965630632600573254091841632079733463114105415078313395567865225470674614134460867382262977674782911496533881249406963689452879725586670921480864183178107122169095708886872827145709307712254579365168124620774994270805889758966482776976711487720580845319037642939082522254060527819917842821631927595475045077966759998388530045578823774030906076095567804998242970194999155010048744537384530940181356186209806030654519409149024172321039486326155533315664935945677380915155723828283110518665175707178750350567386459515738354406563738083620041549438747412641956217572870200016423235648705565967482381248863689902026731105101566001884840964629943829743604704514107470293612713734062971363638987599497173645965823774872865242810689486939283878382385872121327996297005239111954138834083607197003385829882259710244595919764286751276409824650394138177166949936074591605509931017839303730350361888132006780184570988741879184468126420493671361512229716545369588607850499496845334438377199330873030877829599822865519099723341587758015239877817035323472124330595409689178564843047909548349384338428280500251345097358487689357683299657018430952569746847707888185566169905548340485001865018654717048815851799214722681898732588742824431153209056917168151048799841380606436694279836210322429292707084061525564207400948552821485048512468032793948087089941920669509693059073764403072590105235986349916616126352740370296139363848843744583830069617083632349282770958863358130171058565051778938624039733439257929266389924556960183842267680642856829810254171912763662065486803764975133247299236573337576329861043149057175001767982457443345277588150355223066657562573930564268429071987845228373824512101196558631736497865009168242509699660113545043948522306771111094014734451891249919889163967166862156820023912999105013289874129894957457802786456892742129384252924497215104354374397034693076455365460329987676894327598171517738523301401399947214242476414237810674229406060851004687231680984470904485124203714565598247044217781299340136898695416261217832543893775766804689159573688105011546097583628945850822711235517508715628886884914186100789219339251247842896065912443365482467092957282366850289862305154027143937089611026837933176343727142153771941925952404791454506896664478214061946655792765602579242903460218490221465225137547598123285462489963096971032101004454256109415215989821479103879737346440739592737217283073772639345966412994062532554065018907245864920730964593194394211339984391856896507948189535593424267601688527703266004636166137251469455102448671434148020081772649337301976768249295711558193293569455713018279628941219034219640731329218257371143069273307376171980878333466262599934699329290127535931430601218596216939130525507573467967121082214399907905859843212980838475662060967391705231557782157184972807999555939368463053904710442157580704751411209998661610319257921783554362374566937371095879243311438313853236907603454456877300332148984260140082465308249290980193720494443320412891223437383985916400404275664734585140615932782326993943775175801463825068861979083343139157937854427534123254297488918396946041067859629778152151010000173465942317956381638268533945012842200883296408345068878476374267451596608629697546351268083055083133321409765174901033865954561394891515687793519912169154073858911137547215665961082217364034035855893338991142049346375120029849872674084985228688978650409022288402203205085483339836382926270646022670590974644375695079156331472980538157692914453031480339801328024900956584531433510554201630819511833066261641448118347287428717677711132224213484480667969976643112599687480761136362313737303004562636217591556586433537382909881581672632336199225810670230277004481239064202452946557416444640420419971640648424865362643527405213867182210266847458493781738585714273657946223168216684995607379221415031480622240757141441848812201811669358707245029256393621923449112711631815265914250753917236467369149098354726528459224264125210213273178233710789388257207395480196462578212198091691576634902650904893296189747538988862252530511769389852182383749981923558462650553276228639079195658177260376481238334292376668906176811585402623737870763774734980059138675385180835420445167979354832641482050889568790710646095696149826412708396116088893814843463883661727013100887494842064055442746045381819485587866920344152340654754657662636123247521074322265168475060950190680406204191225661129426718270255176253361560513173329642310605586384741233312856786970366573896638397917234717663661798913592138927835100290408836563386281019800989660918264983351928709311796681725064282461023758110880947533859115895215317849628903163521550767843032759297601584826876831938471518985654055072415939828568110265281330778062889081883861792643022629165943715826789844581397684371082801024723287638062723137249455783878795533377144289035505941037927228770046133612960646160001178445704976855049266334575057059163742857532732672380302750234542826321961907242433147811058620069346091422600220860348229944694418675933116586762927500744927109964862274970454233910767881188260307822992754889188439334708186610204013583992047477704482928463996792523343513713157475594380130340994433218657177377629708053589318510697870517844703915081784634392940286855504002753073583872772317290092522786285802589187446849457395562862248640323107825573737152027091869542355856465202890435887189537585276903692906782901668029996060280347055943309973205235627511243646712500201226807647618541432161280956210784450159905715833390965811302743912048992587539724301399056950046212445029012578265711526768430824070832715319851196704177264000537765340255369546236750295214421023834995136812343622872078958933709266085563325745280483043302532508399540810175412505327863216107508576117980386078954931053991600515284375042021460959197887456438442240858261414130605440940429403518772814330930283539073086056451005018209824735449348156131333762595238847103142605358673301136394979737486838596269037359062988978065684033555077336982410117184803259727529210956774016083268086847379492009313560902398732820808465697672056748498855704313267564234385050551948122237031592493806091018717100220322512905420981057219782329008230125498921775282097552309548196361881512698843590627658348678149415536576940990315419499170837029250270884676401352870425226432451354507327029668454813303985934481253656386332300846891087735206910795573039552287601455296168035429481365916383689398139083909606331686299970212287209032687481807203740721490517020010845633691735460050829796382445386390817542598617077778946055779389702365043373387498802673001932230751866397414685834957266761770828170151735428130333735224126118508855979116205948648058832842877192341524452521572219136467499421059925606890448864329726820665378884137518345831787773137720516749433565471055170469893402630156308307247499301481085025782089050557163405059625818525040246874492868738156653659996116320353452031151311376681814500061219104782981221981271258013766619831357705144543473114861129377899205338094631767883206402000700331352062202425807341992656184137684193474688147961461979958138929634585871800333194346888823712083333459268969799237103456380976460443252576769299876683011886164627267039413054802977184419742373454643316950401504437238828294028202276530501519833929087641540093000058521972875021419514672145313983528086429239707846548816519120384226112449838783494131780134304181307319749903326026619850066559210193934850999977738030160025663597876084174762934138298322635401118407586884983458493810202401796781031207328107886559072184197583061849631394853168248773651877974067003582578312517204238059426619512357972769592618547229013663142205521333336781216991412614675092033937862244193423972737635869183094461676731745961889726015809281335618996478018119086158495417750682054406367974854013050139020517242435421281587831456140266413915591780134946528039612290667459435686186332613321789111640818283556280295020553085662370695875527072752115536242315230438530668870433374853992695054838647173751501845858962693295613267488521266788044886123088169461367240458043238850138009459385572097406881367617532016600929304266386216408005465885550011863457785597333164311614037915159486072207037859167160230032043679712569816948184178949080011168197920871069961859691846981881401862649231291684372593464845835199616329183484291247551443749018992374247833061893298721210672590427460552855726558399633571753727233509984635755887778178728627328601393367141667161076871746519212255487667714745703882150826420904846809350245573019430398271867965681333092144781926656372693437968902408603853629398593872557248218640099147026098957619790757681137501230719162883400942384091902016697719992441310492989918666656533456647485428265161878626575675826758190849102886919966122101598883533889800614876576410448970336227555754055183913845315077163238671806947088233758912350562699295046671534848022848270149001901450388576707332301518609143873189073339482478023705674606450799041085814753874083878508576196694604519078187470587579167023956811894014737411758560845271404282497187743807351474556633633239821605090366113436304463563148228060105803045127667586239787146318100464562261022852935184004336122190585650824225813291245549980727846248855085744607283122985120596032665567618478069427080288354025547853342806590773679935003610102885334546595005516916269145185907988003601903111900934254098394674343576339012196624438693665552153398395072503034492087523761148312963746649942905893705527374323259993347039752162560184169372504016333064780885732617466142986443577663399163224451007966240784832501643732059986438521779151305046649084627861369468010408744313261242136442789607418956601999440859255997593211498808111197933828420501828980846791236642779625188705155389640331506791667123126356712570978988311298433764889663226382271544100255019303014765912439442013507526359302853507564367696107761936671800216262308888473744629881305701652073870044547452706937847384562615147149463764637182148273171212649683028136744867439889883185261268285459664812203959374295513902802310405087033274594627382961684357916877575804976074173996716928390548680054561162415653073084058397228164582166405293902932957430060916205564213891681663042112825981890520303664471965215153232113093260181720915696963463877555429630456396005765434171382741975727430102918393869706502748086595920685654679465041452238376898353347314494666536259258678854860080508692851291682245272124360596367157725955904843848269263148466627175353882748575988795756422274258219568592482403235592541656867423096944167023315630972040263534218642897058103432407884268297963136123564396027963955101546188969560356413560389811975923226720308038875749021342997979782811341284083826335340208028591527157631994735294093186075621726240455599018528110210415142198044806075860554837269656372357822537054387234634378727069091232728001558494688814386862638155708381957680457770812909729072944065431529553349058195155647996439987594274216039480347105154374408645456597739370119442757542346070729947098110253766721366938663152602067418789452434258995973779419102618137357272891654551768706919234741888698511810069147916449131710194893337104926164256484491259756637624065310389046693820418154713501233469890855188934592861886958667903206033845380832041349035824844605702877698894167644111217316765174653181772764540259196198749906533608977357615863740249237658135637391204391778733196952243927152678744759274777238166882681344585832781355315270685146017746277928519805882725882447730947932611327705849815700196785781830707748511447917667466454032767359017521463196314709500175079173244826544634498448091250606644121697774852180116646932557018899733439496187238824698001542913651091519673397376969420357562162633819984051001278388852213154116195969439391072765627671045710380785784306017577749983993497058534785852755805695817281609512844535000457689981792842193155938767206833508297145553509637520614500350503642244280233756032624155782253664130037564639876903366116916474020201285354933180795395667741993925875433740668204789422598412472529324340112726023296383776678964775996083909998696711241530390321604824982535737109168641371497038424512034407038282230908343657607537127014087969312943232417177173402766732194708144321029114360420161564436922939536634899839557478009364474854464242039475362901783724902448380617175145784182956433997903770894251809117504013594490900284636233003367873415885656674370818668980395564496363289613094932167829800586426567550346139686898567979414086492230420930261841171075967382803595575245327412596992974716902100651940958011729351600245982715918687204989262974811523723418383123533312178645908489305788257175455569477279091123375571564170581554811495719946177919606472888793724366463227269481897511733908208202495423100058294172696860685379065237543417972140265394978349320580098324476875458240916115782858797423777080324246957585930622695912879538779583120836571366714816731251972085573842646793502367899706521953302146919614545451812209298651691348661961648921089494750723031242927751740350978809296457860443836186930882753762079082817832441199818558888606808915920513941621703895067660323094971099012739529800532103976818646770200739188885868807740694379736807758192535340825538801968739944694823636194017443691421245844654399904463484669232742580311364271860695581781438381658048977840237774884253970609346719212379556847191526501374645080336904607414976012363961024766433836735935368742754181724000774781786196887794100401620997076300372719327949300500959863667989239612076738104010107276104670652318234096544096569023627851563920813069812488211305959806415586860035877235811687465268141647511297231729318110430627087269446944398851119169154146089744889095763230176799602628768753484751920342079592286664583636422802573951542658391336634043398028804666700888286859645923934151840370456306667099334781377722833225299695897252676499208060121590988936098362663468487127815767673966750875968183449258757008542761897219880477828016631850801963328385599571604445288061243237402849652627903846375616291828912507590352340889226984886039763230545621054841792943812528217716916394401811254695434995733679495921800300998539070488061890620321511026822352600589086880609480555290975738712989873323931898896851220227787023045431720993222827891844380768675239155301976666823892398738730889521200189391272204978175827908938705991298802240978762809050922805739745434869987587970629095185228746076445542179556453876964565950112941149386617158365972250839307691007472267305761196409448796992523642386484865567445679453563092247393644016607789822423511561355163169787958577724009997320277970144263421152608607454333720118842332290935536431456590246001028264931051317511860610802433689299347959763401630455773244715856178301324418954166948000155360543823711432121410791528256420711421388827570149513510550564725076040390534414286502159108137464906600907257037599578177571019330677956090503167942054798642724166996727468724362805618744939649483321715885183133968751116196370007249915287623991653304221884585070928828328789121617178357868077705208392366096567814582880601507084454732146549625928848912906438999158125190066395897721958289658697627713734717667420936590963197283618991343586060854760245448891614766190279808892978837277671368995741952044411992935091703593325031679593303863123815645667249483975242418036996914731556797082893952896437550910909065368113694628282596779980077546837608007266833902199903645582902988562041095449135734333800689858733239290995100956157358442801670423115410867045434405637228430207352023524051854865810603539774698376033046025391480277981132841007052920913804637305967659320047627999828278870286204671677283756490277338649221729363472873982752806664247882584824835745906802478378770369807097680078143565525539654294528419910689665330010420437461546115583910974515034822633904237260029898171168469124442704247039091925389437986674407304661782029378743550877057674931105964000455314195750858436743018225242060209643703141117629421982124287756446765013169343678316031659871416976799744822078983443721982441409219962549796140766049245458740976899469683702183360449743936918159667266231878582676752447088173575239437453721095564598596673679274945533474921365585484942457991988143806963837484276670561755522225923595735815926824927313710742614950288934526284157874166093947931190503497598176805867684693104420496047913072587732151137325295751998412322880183977829720888890981370171971495981550948283420307855736583687273968823596097745668277468565501205153995349037987494616382497611820911584510081939230026762356024388524144071723548538004944413163194928639377030519133417610532738875849576373933881531007000580411948569167351994894234854840260957037956839577151014913382493239505665098394702553131434476092700709440035833232975530519907892706932884499772302981004639818429533192957907463164481452833859831390620705345237428085754002889198129241951158571380101572459918507200955673575352150612009357285695068557795849683002543821638718879010447782614029293318635114751243015359259039222266541726065584749808288897190998317902111926224919533187473457102977469944204971588803342133579184058493402586775508878069699337069120236529116104300363064786984489065925516634839553168130570141028540530288194569961220215301658156266787167709090060078640078654125221167448421745395100739531426136250975344396207412311845502854035310428666965367626283736521806980769299863017125747634072409438231656355840261645423893518378325572280158290548765895896064915211295476145923961505780820890059912636744255458165720493653043517677256610065385788390217471429184659979255233417203587438997255387265854349695204444500592223548024293346130248289801212295049447185143967796388803458587634258738000469071655400812191022565162109482932715819648559529354266496336908790860577876875454809676055013511753914036484141629842762815168228007783252244381126580641700351786072322214968610234529884358500857635157628896486885114654907443565833126917856710351658001502779829214468756702166773712124506523678474820263719207865176467346740236566675903977506179195145550692973787137313853629111724696865134761281714460819625014532828160383000806743358960580266995871911438762716279597840179786116794738553136926765527484478326084344820368327040885756438257828908490168043176918603251732516779643541272907304228048651187688111699261683865124519007189411347070542507109514271105699027198637696670286029864668343802803382193142212474708534389464306894834197439327326265606128897247038802530307153162997786499651682548622261242633958147409126449609404431057539066968992165202452324920368033151044323325602918684039619265677227381565526693804919179167106483103422270783857608234888090654601218433111257968726868710856000901303742813932445599089683140312783765075808748424622253961176197077452553771832398032930054493736640882622359240795874456410434276137654945032728003767016027214861119847079225024707374105740867201906727946985073517002121347893259892316575686495062776736859230961370844331564072842434803637786879605166201510481319442128674073185487233421169298466138567334574416953898181598879693556246611604320260769073636590040712280639692637964810211924235797316466754390463829046352428863764199002292799105931730192402731805478555876259856358047736686783669531236502054047799747831378845853711838704831187384541010704800730685574801912135718652502572119102635244652370073694792766902631997111867946964565139943176717639853459971845830600542769837523020161130453490836658174208115424728760855888361697617119130499265377548355476416238398691006931393128381841985941182470357806938909232580613072792458465912525275025274315991625303509828955306697936759956881721777095709058016476681172909769671388730617347325386461970311802999171688693371540064669956901944025903309397498495175659525368570740968493717716126740390214415111745345073110399908807771526632114034735337534140829740647818891050622768159705023854663219200875830638012205937329955511573225308400354706201707398772323563272501481180389284997426583160721081909664398105333699804912184512764754080090855833825707419494601720452011129026754569701396480626292897228600883481853825162035364880548945693294761779663611895104927322481260533600011929013711300090799063182124697355160047281428325604675440101678748080770682737571837018936349523813960733330847155863423773487952264401349470319235947300326613348171754975185569835890053667494514595560898916293286522835764252975108769645774768804614270031510362695143599442675014994231906402972483908466172332060865690388816263382041586962771773829406377474748709140681582917744406897730076296909010165457139558538724512582374784117670983139703598769991199584402697267601250413101903960748943072786910114243453229405710407902737969347414217294674495009665190280098190953266473123583692691860082814991102922794080925041781756306609533231953482090154462495135296659821469468868781542908877794734128463185208662174893257094297608244239784900494235120506431092438046796853195145139126462719613487289351792228515429664819136381365536023126870238750512353113559059434675150178529456907654129312746881093385734940174030702034954466345185596045382174871338227928309383562866276657535206317672402929273617069025290685960879252986909069145729854593702788867878390247618501754680581140190494354350436192047107252621355921619045534383971406228163428646036461569890682028092038093136585492774405688544957146558985589987820520979822496407342543507078344265462259687331196426845086696181874103277210515413089060778380882489981026981597031582872301958583424856425385439262420669276119853554619470984590994529154864655259260244595984481003226021093479153138338349357564847959353926643349111959947832750674347120741054938767990551812918629026481732404196794712904707143897611832032329123302420626382731564257121988802698916088471736392270934423333725210306696104063426851088524114576250824961248390633727483717222774133868209560041685989558664005931215078094995586189133372703758235552854534396224257663030068005195915223610835588233657654742618203201618451413451179908331934081794938064926962214937997382724170977498453140275174003933463907980173590902904217973044946332737222575941238666976045797086605693488621266694678411048472724126920488737395134383745307549630068515255874148817454880897231542414687392115295282844637752542065907461542749105658149613322137866051910815768484169355643470167876295245919748562932644315686964728980031672569286633025619643061145288940080184829385815591156121336248394594214616989878265016549358898835030813782011113725266986803995233102608506341611805769392059577891762260202673481755788313018797234022086262805016052373467873374118821041339854021443927156954018155285411614745217573674568319896062866480910305738639633405826726229165501583247835112071548354918015171143909413492194363289638631228998904607967960910254571764634401456182118260873874326052895084818392728223915741422541283137296519472865760805626674693537075468711558015276708508083036250669621445263207237105914939978005505789869240101024598490856217830538620627536659526202435456162652878605693926891972663519281154409109061746663536488696142785153497557213880554014766943058461307347171724607463103689155751564734239571464185859772169394562225667169728334290222948423348644535002728734355982122568565759315647366034552429881786446185291333772194785836433668817345062862710265884335099538016793461812745743561036819121623369452352221646954771427683065070478529721924343179928167520191246487140510461404472706576957627653792245147031376527835058865592561293529831018346690794289026246366966041580498960043386345578444756562794274962887382488032167720586114538502764343992428024435655152127461826822655934621794110317076612371455775735254966348879703240545222591816470676883300513450323058737975108468844225027988920137247635562711710816857489613028681543978366475712881606187790995290627592537877097880154976596195353447871666172172369943797880789693515355413837358723732572264620751737763301861165437608073539451240687090197199554599153747612866764549962582092045170127260794831774840527229196907732651283173363954541574491624620980239419784588426527087201100814465515669698531626587871697619793244931229647366535630491963729038426331766408925952017220501925369510806695594730943404890771543018375720145544490553797700405960964677850046118436526638325888995750099248282193624858344010660252844370411932861422070581763087797379145886062660452229822894611534287527004842663954103397840017035595880349237291843236998773758393146682427583209930662255858401253041557537035337956383660500940763318824718684136781508889251312820232052989129693761041034409525277081711303477520944305648698516416619742635605624340896469878164491138849659555900763073522496622964419684093275218317282928339792364524840045067255858195636496409502754770349138393576467164192416114864836590138908038754084390554138730491091531305705360521876082216626814103139291853712162404310198161845725487495393505734492437729060772691511052655267820813603114562613236915674865788599352951210000757954824453604961484643085980978682150017809834475852317135008637742909765761775326219041883334608877754022347784089104993603830505075015448704447424815637833481406826173859572385615271301601817233441202357120275338302960614430882101910634174475561480272724676492288751156341493309429006510642755229845895400636312617717376606629410124325226697768946150056825450892393763668275051378656224699803438855877522600944504613083302477355512957316144413785861425604684675625839304615975370650530532847914138002305122135563615387579953501088101443965361240026557997604069518260509741834677963970324144553094238994795146033010871665796143031397531205131835465304060711436602736536460286146200995146555549168783200944221650708720941194840046949388333373499148880637365039499209125125428757974434006891189078437281396430526304597869891708409508494614433575940127117267224237245637283925068559899532102616036746626053074386512090403572615153265158501349642180259270807298747049373032189840719667766710973771735584103811388638043204797563064263504900920814348246732399520912159305197740543394787493237139658597571614579573351583992010378983508491248908556300558166535330733709844325288292791359650970775938920194136673294000871070158022127072719394998801163809974653356517885576690004341458366227988867424429036072711476525935854094118985780936817137265050147801555931490565995643341164096216607497985444085914533193040275065149597274548049511544409349146736804130943864316596512912980548174591584990948763123643221059867922902334349696597835778209625581763967263239856518853841072771450386965565779763334571320068911911564679217663571201681705284881005530902656742548899342679384417825261130826777883212066057922248374102833732975255213835436157434633897233777872827027751534620435163091454877920825079623151288428603181874835038549115336288503078619481890153276810471834317938234680833461593410536310446350448341183763593737347128092879471247925428118297004089562273530455331290774674921800650749957364356928406230956887346379026428805740057999359985240884223421744951917141579590602972279503944266557729964210893361410560553068420653002826524046512497621858442446183476624998324611837117445289875188210400663293405673864395884195666059963550513760062875752488636216707977174678934383623618527004178203985932780897763737167404810827365566095775507594714965068250193390620470211391166632503927987477314771520705198644906655101045004606274402635792952801468188759988816622807627905057242872829233799859795056270640346160213952155304266322906597773957741874739285159564132235177512482713889631364361789162913091306564896535535240262275044172048544923257089980485324601401097094428484348213563739499475825894758652024932941842943638002980372031224854027043748015988262816627670994305563210009400296021607993762381928971277847475900027883925253710011874145201689417997135375144431553349923738760737583114066423119388713168514290839775859529803373139001483496788487471039652508160186498034682383725386181674412518726570242462911953357157567843352254823230577861481899971299343428642677206974720576399808141937156453885427257834748065742303653654665353490598166474885468885787559195139729109360777060739730759479140242984526593011194432259793063987597256746273624119022700983070040294713192904782730319529228836545279214990087393513768128457529812050952436330257557234521889487155851014712978521006456850633500126136921398870323833981070444242442970220213749958413611957464082969080027046745986596183933129843613271325558450845407924267171501720327192545256094586927914956992477308895195025461419572246627536551174420714128848873821116156074452629960368126949840274029223214529734695104300657121611524908332655562780104166513657777587840029019748084996945338088256977606972110137512333268190647445118823769670214118699690734499403728319483299606667992732124905048264296894091104888494454754959180257846062482131724444197535409033707162487215655539115677573398629171642215441936593032303628470654095897459087061760778087985552756843414876053480369218555614014490082642547318388551274146254712793234740539575403869007692709530433242911549965678991776904112751895363460068524481728860311749362219650115338702177338609727465190374724796945390487659377855030973865037441160793568371143823966740815014995737121240348089482604928552470689512680804008163485314388844463481529123917468506274899211989881484241016719763318408999629620504245049871106062586605414623081632662681225866732850378307573231767795492555610711472804710455740477345551560280490267935858322880473450421314064047291758086717309258863526871585116474613644755378266907906315717153989449111613586033004426371864583468994525015399500911585073326195463922045577363475490149990058002782954721781245765040838939403541360919374643899146076825194583849921165702785976218438667540032221065972040951362341469710589036958328884131086188951173185167150674752296981591118472993444080604175005717352016083727578140182338175365759229796290270258110841089783253149425221579289304044458680028211048189951835330169333941077005119620184166034268763238178081993344473144452873094875881252960074311407529028149733141956513315979608434034575348656413562045334373363667120805903660488437237202844667175900367306960847110219167612086095116585513355019186495192031604677411243257112596319873094240145434710360894919831679871070626038179176999311396216631724979421378824832815955548479485521164335006246117518785971112424240570640030214870438525277691737199933640692991116550853592094832705359818078171570109738892221106723419674630685550103826545601751098383311178756442896897996041209856541081800089104544051932339854970247844026963443001998799188787005342204589709044664950801224355470017406239691368575542572871437190390756922063318589716288345763311389603797598600829725431893677053495115441033871165184167459821558641999339891974650022812948876703137337204091649730347038144151893882569907709669929090897792281847215797457467479704345603617462959865690856690956306186955603753210695885446344415169471534606746619240644488020554176945350753007399004905346845109000131225461124790732312661981192953333555866950929742218486039603501288124329206315517566340306071470208313851147732808665988770670830130463773691186288046897979181610194371371400529327073260240549243181834246601818501199920198299117948633787006365575062609564695609634243269574075742710012037466228864214289631684217024038411029917984190990045158512594655100783543560825951805944633916165351097127007438290866171582742673142550308549205588637878337682573516785143464348204289872268001741188543490039403282928662933501737482785291975824729507495641634217286637724399851900411392864048815808253832347844389181035248285480144015245233109252494479723170544132158401595083819445432864484599079951523218367566099544117191658897858709161799245417399362914023950907054579836203490249586275210240987559451851170674564034166746377042064432704797656851755486082459052229107449100328462385611442347400943753716032910343439476759405297909372799757229400930885799142114077018131270859731205340536811029552927058831961307602081226897651359464129219864256546843462430391766833057236518116777334931951582897707093969817677380055546457752524862442230144011998957283219443293659367505729526470923533478686528257438648840447078645007334677144568257048630707121161366122619807574412035102787560690878344645563741102990848065214752806605345519301101110537443718978349956648517000437332462776407087605249356233625345118409649704663586981797676108750923917805530416653998752474617856478250368288133979095208891762601740007259991363241409960124833625621655737758543960583211714555412267870776250150964243138985221694208005105721239692529435919319289432403460984715251556023787893235470754230771748258558484102093058758781735251118457706933619867544003514630121831898870745576943190536046017350649380224735503771008410103221149927079582617593911961792966628621647453683415026234407184268619891040024471589638608120370863335802698111173496443819419202232224179094933273490926172695569923358371334591728948344373526004583301427718802041988040403235006960567001364561068309735431989436749908912822790277815962350712223684940303553814206333958382865227744694785304075340482335923425145152581710002532824718560317882095632589822137705192590951096300219532184747271032149002872055384803165188445847789824903097120576500899829788007453777781871588006807506333223991524873488341456265091959339965092000535982214902699254456237762377870271690688897790700205655920541967675243892977308875379944246333123720419002834659896395806932943010876684544720708638357235854563827908714852753895365505833706207471738665911827454246445177210429661254291053155240102213146333392312334326154909995469311922325918757510045269179917658861921674933125570909939021825515369127783342866668184984903145384216106685291465666358767561446650141827782654755811814205349893427458866486561365944082104362258774184479523051836695225458873498692773668889359812027569300527180281792925382324340329323791707988508967808785532034125283598304184003765357824507853422972005110767495318193331985447268335651013948880089774339098997347461724738475979681788346187542792712864643507620200478296932348871491022033131992705443596242309289443762079283114699550754507809396083184714381628829232104111390408046832904940976697546228346348563441921251779808367399725169238539805750128858247208084910855702402446528402477658495889567488900597723006227516012924864804594200227436876925849507818447430255016399227778758190943199151815057275440532684191049085577067623023351124860459468210678973441724450556336904692955952720537277811062469876854080702936093167503087747395100731692864218734736850294650096183088577185695184914980175562534234535307609374545293293329897081234954534703330194129880858258721561316452640100853138206099427453626955147095589492064616214439790322511368085705510231898459737615083948277206294280495508460341437495569903785660439512369283838786067667755126555187121825233250968246623237779659468665912095892271402989401453909839419003345312663522923484293839562987595159379761720889174661064508162051702753013661056426485774282203968485536393230013437897226147283095028499611796728620869670219791396042141601674844585636185029526629266856980967452468476859748030631027001928381986380844074770218673030487980941529971691306816972394638636478034284966551932016172330546353037189892917126545367760912771778426559534839757632864102398404609902361872923627849096702480834290676593324042581934689773985774054663206730912719375633807412326417549306138469470309895994798512377741919703351623961025042922746049208380501510554581911440392029454109739476963104091905339934295049974133573965613037996821878850041169171181406111351406036967529588097238599984897097176888017223385288656751237582151216097885653176592459612909245861998085921950564341782389112904800120794981477118579183130526798537971192926886419350797334979541839477083642487386190384160351148063377976988007950587750940948023275625319156615794296792661428707626258797881129909470840618803638267577260300177361277123747451065396360882147139541930861723919433229256027350327895461352162613737541845758827199909840442113520145104213509639295327435257049236735929584443638931610539635582614932709159610268122345817090974101413993059799725838588172988511359926497187230710562352655410272030541478028121261606160239471430552533020359633607104363380985272210242447913144364989674720742834300559343185449509787867248695734216034285108883208943862614973661143931158920189829563730865152724742352857042392779299767073132798586375741469330878993232396364600941230589458589339566883346810522932780959317094094282396324267863792796706451071805125400181647825304401190505698597398898013957214075019488165023177061239924340329354676089153851196962605342893425902654270474335953749434958134478002226788041417339527490229881817515092873567566027760577811825508731167875956452057755728559615495060722077349157960914833690070365233615011753179158765773245214193716255053450884074441239731150078181916432904946646946153786796944573484971214463927035276738703555443000086717018111197703857813970969743533878113970515669417572256081631918554961104935058041360735101193551156048327452819989203290389104423931148437939178974736397326100725447891373008327587950873237985699458808926243242450610963370513986868349730098415928363116127054123320902149172230315557669915795467103953870113763536137857650597136020123579371260635355957493652728737465071187765703199481354799706181705233196176535865261791684565248986000753038124861686556649475759178717676068740758469945324609423427159322822369559454565881540400817446808135124771074146113609359952587631566822780352284291818381493649471477236856514095414425722743783317834224994403384936371356286455644972187364590411441775264121989224865491982604664020422895140983360118509820436707576726798082068618144774775667349744968302612606091312727688609590856022337694019899660175174889127975352940858558994678536583797762074065484232526966114697751313517125269040421277707854182672673667150340560665463774403086507964297054993870793217917225574924043734028320860693446414265299604050534580870599335435090006081595310657229720067670550697968702538791452874512739854110032233494240011658984033368453150136467285632258484827748564369362565296092225521348335014512244571819581075429796732411908576424669819432844460266821037138093514480032584120414906685090882345320940153505309828772298042697251887056316748451438977963315678816402067357668050698106767761666884457997048765774618564140007211019338997086292233103663518489274780855819424344363133918343140154129770172079616641346761455314164104669590307897553232342117927158848395945157461055270720282550555045873001802703088534101841268279330711103754088184812537167359057214687015607157815782798415560106784513481651689262512511263291968810568519576100203344094616130655441680717240029528484618488822811245476126986680101484631740681814273501271481524745663242831729435058932481580768373328438119327623352041732339907448335449665190543416192107944144623481203558258824354132367876681637916102156475559498369993505457061707473811558285494644538977099808729513055544472358343726215850126161530022440995960915946744405336263714642644601964773277099662083757963617541186410089274860596659274934592359668680176325681252896834036088798474899795547428054504276270982599014457825033092776793002341044904700308083842356890255753596748912556761799148559891749788595636421765922069867011456145965056108240052795640788637121602986499857865019844548556620075993120972137488333422622250515039505243136820627418298438952396781590481523231172633119671976901875243349220832062582391611979973351164415328501186204828844454278883967209660330372229825312687885387212817294667183502337264475857281799300025181439596670591543631809263947747536967155394821444007798864981318135606999184379016490430603992113567009570797374886064794789247987588743374079334323195406762082026250041461924472573219478962569657443279649749427758669474824142643014937704894106001678911129129421191912578558451536135458268414806038460911454558942005992232436493191850833560981354964130692481356620058407237129595501558609420741665715804532055276766728205700824181959770963653633953912906589708925328906363325654171068024903490328966977305417218324801991416544595979686890003018316974534844500888449531197120823078185747019930988659666903768016913185137516792660671990322823544349547035711239969407909331445495042500472969494328643953130296205867031923408170729231297462714073800991708850465012787614093704299912023982216393382636074102180794405866415843380719627784277622791621405629441342430041448718624837851109692020710451250662021613844263122968609058225054824373290107666303236233288857767214689649448475357355412169857979181116071898297723298885449980725470791680240767216252553751257890545650808046829707668760763646615547822777340779496674171656845692571546352736178682374542776863035393755573937332599151827948864686253111379261200966776354291436999359833724216052716538972372937021171794229149417891696200964582578993371919904968409006701155304761867736907270485669836647063541187344119181899960398774012830173521902740017453080728697738561652819645342238109790687902043668677490448667713599069128945981817136643689325509585021213015219650757430542462330442251965683408259550028880204747228259998698306851726086640074117195930257294499584673891142914420294387282614254269764469975313682433936681055928533163798121747552516439718767239496544077579050977623202017468989014244216175076254918462050222654290045940180599020167948868997003956270794388942751398186400777432059303847819166680818462819434660507474915946381713469378211977569394773348724893768968769836630571720765165243851328753742949958986218938799115246509903344864042934091996466167468578870494396392186494350738927647579748232154349831055125185418621213750980548404301714233276355293022358863904475197661652578007123560031943516724996632940916108866985917910371355429380261306971242423070457227920920133176907666825794967279743298109763299612949707142863672041083481223422213679672292450412591242157343451249675380224639047756498412654040164952801977719022132259348032496190902081685023247317454268512849206096323779355236272861392432703448621550942818169422792867322055912900766495034139544099094426220758273760157211775231831887204593593921199248834986268873680573279105473225876533003875345448587165643301486525616373864524097206437217856849175222075991673522053135571887070761417357677719795031555728872572120696989099146626071937269289419766838486382898358724308295490474373076599834304700361018295743628870249184658758913014110493514902629199636626526663126414766553975815781097566699289084072793877985674762624422243332722134723429115055435624493651232845427783276946944166020087037032559022051472406460046076449224417700391641560241421030503007231102860342721633421892445111624941428693439016015553688676042087257250804284493301154531766614224546630471032112382856600374652535555390489975749857975587009249853028980674846849071225476970103545573847469579807490250796055031690712892585776593640853062692938529457677306850164606337879410858165020694549561739499138449858776287780394714110027424211470776823978415398265385839908670565318163982630438141190132679606833261761052923033593975625987465535743454657627518330178712236519820485817600823671579821334172441955203032792270719033112811521081560990317782093799223731243325525322769042981220123734760040184786128931557504487432832302215823724780151822803026535954142356282413927491212026221636939777714732746581457119842712525843585922731077509908368678014959576157962460976518474523399163524382885560169560975871262228388550403713855180668933325442053243973336195254631770329530546516725726077786310175511162087654126608498574236386033913065404797992593326344288491077816465112887428344110173583130114078427608755166570955251147595017669163170293657927950749335676510535660529603582468058808147812771293262919220785849236817602712183021197483053023595290545001393104503409733437202558143676040381749996151685870312900198063575990635285964308909702428909289631756748900009384480184378520561632837379349866790321429282640689451323191582626101274634203479895687718485500864865871904303403838124969916518874469053448835029574012149534289303948813481651617370350388650019630175673878114267410634039677262360961783581226499514536469535543342727128424723113786476653780083618023589136640081435287952491006539899391436155591580159507996847582031360533786221451181413545905320182341711569016227778864766996750561554171977574808126903265227599829924223777588760488637994383020624843584816721333608417920522164100588815967648039746300599992780327763966890550138864003078614553715900563425314245566219700310437087184437811808497383305384404616249310343963675322205893481440874158613978619645818745759126152229248255061331857944763121862591085248040497729309211577358993910597220787034626514556852643216978046878821824618912704961610399344509766398634549281149994987060175323542931672719222144553924295349193023905025574048254770785107903613762744809853152349632699496583825639591089981151749018829717936534276033694141065992948530456240272392059532513852751118500282950448689514832906967102849035700407646067337617849435725325155522550086809478616051334246261258695323346689738890533742987678880944499485290478126529557122623853638136544729622437231418699076968268967228991451977507037784057539499328383235113262700540135406897005379430176945214250907463051922528537517555327157325843377741790708696090329135663538031420592349504855726947365702037530549240489902434970060225288882358297210777624453967069382983924042795190595661564658784689337478646197167546045516628907703554698898716931272982896462982303007540766798399145378948838833040556544497993231569106426037393870455709052330036943692986257285166535635649480020290109410614857007546349537057817902889678990178812843637344972819984714136733810073951319257447337469401509284399851766162966569287931228664756096236422242141259929347803846324589156330305671753574079383508334299587258764137724881953375772528989890903326775580553380456956474880548950471465649264185988156658100992279074822305686185726158357358493528234733406780097762754166016429535503029282392202428029637093267881094157958378158141668629547363826602770784933808474827598836847121191910358143762525821432197972947458830136874554592170683162485548002872293322927430279857900924453098253685824911933115496918664950594743048650756410623508103549765167525509502517521560188151554065288691879076310775529783888342641888804605221503149669264748118547701379281026443863450626029418842601662807687668769659318760092676423384199197680298359699227601571977945110221608588625372089283518200407408992487442205324823279139700316685498532396037727184406402967042416713347694295487034996767003668280338235053305499022440651623460277864310121606552411567587449448538176527339326332151894557413433763881875617447441124432798434303700899335566758929727144257810340129288373836432944017009929014684086576639268563206872267353099686889716003831857454659093527192313093164563272278020142352916082101420091942327225300348220096998074297953924640686977842953023360240896437337771627558411814696023990815787585076854792386124360432920644573336268170696565310339339792279417057449110491508860377122032047557478253476524949733551208157455692974058588191030625830677755737694031784405578337949728577165924080371508542626594051474759767038738277909764430252367330174874658376564596761344711471166023520501808253163630416791533716282186141695894676640272054056165384231387585435438686887897151819267405351345734123869375614562632132013194493546433256443982162007683033829676005119415572837646377347820058596085305136292272871369587798160131926566659236497035124670898190225152357423834144804389392288507611860973113571047787720976041944635353791595962552842313227804354348053359960863365767045210311267652776543501736535942686253284692632910130966760487992351640611474758598296860407062468953024106317847407760834696586450379240490549780274882886972457175187192663373982688008807463188420150186504072200111434799199971232705016341052487653020240237984665396482483524842291027710985135148337817786430587368875085679149504304472673237192957626442922936906457949037814628018088101446026394808230846712465712541910775676075591879964726584647028152187955530407946008132087166563101956719467044382679820808015691389516522936097469845609264903869279984161144809175591438930727378962319482067220288751867226323856193210196109184597447896085462457231565015060856983822050357327501438045754976929278288880850601781413663145436502563199655069180105619744967844190502509710921064423828572250251103103533592976167016697515149355967998111174191073973751962528075983896328468302185209100634991476662404916267951483705676480961052557084050737959610725214635168264243318318157855223404591396765578747716145397008559585033466815298926464423085688410504721926289312628456818862663587897004003392532539109828072240946092595676766479544242446744998303172932847849831476133488148622995655758067373573781508185053222291384081353201908003683188226453446362387662172504961612048742854376275648506630653673349912673130583229496650311025087179209083566646185127747987471047462813770111201611380019425614149876109183353272400013238364064211107710462532750182365198201277883371415371530665585088550716109781268755192317090232636656302368229382210907663551536081082256746136499043965103665182569992613288525919749140310348990877620018372069696223450578653831992428423900858545195297661711540123020648146886430851467610519391579458894001368195269279780414085480615195259491444040818666542793723166149864116402042750039173702333756361320415951694383352229514626071912765823389547190043491087854699242421306651488409782045633369430777766138985455720891356545795815688068455707461233484506744075179949666813237622134438755487866484103473041312153472851493847928864856187143434953457390699737091958419465243372826185678514367726589700870117688739993191922352285426894005364571102216206546884861410742002358668219153980219316584632460168790056798821526153961895292008929701231033577796751366640636554833769820226347200584060177422744943108336566736033776379437690619273510050518076243909278860888926873838319662130682166610764498684818296312026049976481756588329463638969489102696176855050059679668014798225074404803473070203190624075660827101468228266070782166384828404678220219152063657368377723412017963348555815326680811213921342585259663024306314720526306545417999664385089605982453382663362914556535210040623868649314877945786078152284720472648049212141356303748315789121932711665894696079116035967286736255627539564248268129685674220426617257744521268289496200008011897240593573723320984045721310854361438744722058178787024133074502213836546479639397607217393641317991899961082661352404659875680406782409739070400399314794496212832860798352414684898373533528265220053216853590938503786696914888060997004717946774456200939843630794273718547925361943181211454622469056263235695688348272854541109380518267850976800082600476260744275685693490110545484117973435507839912980568657507198988996447207165653210232318279817749129616952898453585918472191061945340407691930025504572712586890849817459837214384871100531126149066861789655407161405400473038091540893331503821815961936594358599771107279559817938951342928311744601243366359605086817845356848791251840573173498133318792687564373373885444987036289974823861790552275410967819010494255164264395347953477531898965487025096415978219450901743014844426687802522224767051264042229009421754410608065502765717999244270349529415428090743969726416473561476007562945213603406759567263287438302926777275882577363199399539708360772922052062871194465574049103302168376211046860713190325545927709319939645345226211324329222934502971834854528288727601875400777432252526384621545085773322812898995634489720738690425094216542491042076582293384065780630868100921183603485313599865825563922819486343428857360720543426156798564207177720639052491792688422229615462155573302031291047850713136866631879375841228193420968252060565074702331994311329391350366738692506934144039622583479519530834193229941599444100873787610987937923579411033400270938508357180152946798101958079607210511588405741838631771026452613252350648943246948742795323410664955969072959284414914630361048333016710743645689329301136882541275126615642090368647291981650865384982882202523874843556172283686807322138350864742347205597870740042535564011474053102095791194951423936713669935424818706626268628130521445784162064088103552622116156457488066351047125352032961691912177466290680892073587982253279816026222333952901858905775618379679680333916903735048637046078700508034149565326735960859842532562315407531048308052750975453377994297544818789239175432112267662900368798609426902848532552595610927680398050012151546644457241887827738350544336766206020952103209716984820442036794125239880840627187445505720917270553655037108598928850334031851878733218433639794546418933944276142829002182171254191698295233160010381106497206537971100280425519364927017882148173739936989045285895893619571989970400610063036864092014333635331193617148860827328833722397108402382167489269793151485411526922576265802732128502098669560210287304002316156816418241707916612114028671718097140912406653329857842702560623827326161477890388856982200118014536554811400134772926930087060026865016167652371949268452161773340635802555054293409440376947871150383839986765495590562291907513504796371224788815124706323705545542598070870300121353132318861765632234608561206703314405456539732841563710497738579774505449113636804892933712058950852236801868478329247829602262095694611080029661284727938275201699955097172784289445833506367871223450994430426926259432157398500561009397617899326432324599315075987873267116480966104353985871620468457891400993877435848117331216908790928101795221076533386702805159550291206022624464807155981110443805711180590828345950665389104634080736227608802344933306645322247899163653903988242571141105740294635163468524690270609701001582481289380744655941491868721627632276411112337500305700268487816629550433023994234318395045277514356205094002499015696855829481355690473456150622123078623573326985505201514624332511698406902128532407251172037061756169260790852988679224128753488454446558074016714448123574733873924000889676306213408828051537512319028582417489372207403746645944903445430898912286564037995748044528637743689326831263141222888103631045427069787812372113492227226752724153193133133442372602001910468229965995085929368129052545412050393340584180666611601675006787452917180424789806504328128886642716250101855295320564595940160816252770573573327959819852400116524542104992545803311149062894867926357009052784052808406375719715534635059151701897212203125697372932051267574058243953832973551898978289887425214149154973317862096151003655229507188783636530970397055724902919726512181226210957027626305925550835291745351843858866418776390090389852292617900059219026450774019431154715851181135884459910020545359724987293177861961690109286007808505748146778390711887010369279861282025634138886484867455682461278701726160986080796909539992189072097975334520689516976312481165068932497984953782100280143522841867318933032744298929143393984770633503599694817412783044683567002748202329408272032868707716977920077005194534107102546285660134264808401569440382061826514532961543846359434750052502254345369694498319321553850499311407684492109886592313971000228849242113051355118950990291406966399813649757961849976213827950880103620457320370247370578240889488682542181674046169599699668551125043622480805054079921297936516837234492001938941693581214721390828292815127560508462720949103157436399791850443506243001808432690042471103737985842020069297615059917380291349163129677026092402349792498750563641403221260419602654654673025309979591509336421696246568088641964941517440395969336100088447222418873802337559527506839052557229581371923443722335179193599682862204692461909993072265723796603384651460699669180103866987829180640053869151035783817519727716261350210132085278854164134640044009695233498665994446112529502713584579808038849276815196324773476272812659421741187750144826741654476631044521397840264245428239277443899934147365362666030520595449441135280641894513512433692743095865927512480693532417829809486580628147482194080389830457184938836377732530903351763336496802923431433389610405853537660310310022277701873572498751953845186637982921594321757487378291028913658567342936431121735160633080802811143765076429908389555425048054352569394537163178906801191379387683871307694708316100038592096072820462662340293403435274849571674573163205966357394903192539280099072909989772072884488147240679466000501081188314170968554761177228228660337843996482140100911902746289769558861364096980108251339961289029636322708456003431594720051734494300520705057246509576452814648469936603567205668911327161841788080760466214961849087125491822533836600315855987548261010706251094270108654569955019054416802089398248043985097200221897934867973205463927199966757454765693681761672025575020646332834196763718002341455247612288999004547463045798991322556526550224457985166480549100188383214603866556662818461354371613079789077106624531921865421325013982923023584441437328382490958086355117296476249355484340625883998392412794633249081804553699300262945969673982282346715036743435043921443580793073780010242788879742428294526830395088960302247961211881297754811715185974912634207710677439876553190931630934878045654752155801515158272480154722385826556848707216140646992234897974887974158679824842823266287733462726110290094541308066231014097059493079552712329344950172030623818481917321671836013530430669867405200749364152278642796050290156453149960525368901685332052662148677257856104007825242890104936650909321201457116919275775554246772471916120804712681136434182642925692481301739326658609298593178755075430219092443619188205026688030129455866338444655578138667982968223359887269410144149041283295605723178568595217074837107661256494649051340373406814613416408398204712085696009569604740694942730971632281108572431212284880573111286445262635469357169957116222029920362002789297192177075425970125925543092568833510398544050817551763987152852759092891206810149761145654266276916167034532674683470292389423996025242076142165338689447977827178289602207266500770094038017714951557777545379197803010851598852568679337619922951474542211163607143471031440221922628129699768764307363175201776096410934977180215467574425088704024711826963294065808073206508425519102033050811210836581879271210854074280475198326607341913808896874438519168519316836489903764991119005695235161272266334385005915873771488515744038546425143690739998204854220682994352468718877005616292208479633139937840754638117648677909648860877726747240102365318409536913906837981440358002659841244195728511880111100414676035056455798434128859338803034923623989009339880493607619629394177002952161366196932864540250067171757160024754702441596382074113941327767030689977605616690321365719739387335121760186966068879973239448989055011289661396351512640243059377471501521417644320010367618165285981093996487086018615914397858577921936196382518395863130975391174092229647246935315603742619046732577853652743727896027155472050707809324916668433850930979616736618415097499555971124579318663737235440386012799965414962426713711621789081515092422736430327201403693241942923324636774122831777189176939119313715536392206278166956438200587244511481395479625216981981838366068008573796761678533609314814854003922903509111108767726132106746590306019632701622121869782371876184874743383618557488518556057793699194324374780463217277689823585053338535858673187064746168569899223523674845207114254169134569720110192140590232656022853664230940742106524823083976107136472617835430178300020315699697996203627806212333882022388119844950694673227923716265824163088154001904680796675325595607339872334505183634023858086866590260159776841895787110543129800948630984921811801882350344389940704013620184619018931638694266838042672032079799054002390537676469579351503352491465033476132743618355112470527553188474689923358872109763855328128876850047563838400340040923717375829649164409939834023555996275195440798586172216866417840795321563908812242082812679358061235226605604491137781610447274968851547095907972658873827963058459866468982387738027577905250490741800211834304571476794133642915849670225644832541603311655496391863103351715231536297734400735608455588629449904965711093582876411007411653934179131316988602858277708162198833999331102328693156040790804845483883835995715221853287191082400298058029765601320835554295168801147658755094649457629931376439383954600705010509825064270406407157765525060695075338854014922897270325026520858352737897176223622266728922353514204118015829326486851444003925021006038896568631466353233772698173189288403141207190300224227806162794947661487483854687864630273254169889980979791159544688108742865134545143508785496094950636243031618591833070934425955853842287811067521332917781047439452901336140498405139351180693441999771039560562421926688935070898372617383345874825860284199668038711868022157257691155170366332773719185513570739338658250706036057026806276244904762283334099154339880506631209149625933194627861677889868661762884660952907350205915093756719297001547338958853647088536843410805452271094038703340346394892166395649475083526284444475973074422234210633044173294060498225326942545336192145100285862225689924366849400995109140750566038307282650913498785618068979554073492762046682060627737642265143043797992611577756046989309162657941503621776667297671526362032809133070810096488856199656916642959292008874223073979801317527553894796017200876049942852651381842731894641372582034027859119068687377137577239194025263329486389552533441410428458097617494732341289503348282687680029705214224183686324909158013331801300486370388205420775903265549040445945010841271118612188506497540165920420676696575027169355667347356366655656374258191821746236703582779297639582798054762087640398610128287621989477355485611364733215300869502149299740581472443688109633835503984527004892526234233995374432316163268788910627336865716816887414535525790518058887197762958099936148147129084552301822259316010352517461126896449384039282602138994039745379001171270218353730153967062243797017641051925716330546047251139440373680763073030144544018514382574329404195994861567279198841207226913223248366543417077764977145498830514285516724355143673735307803412131659309503881219894017822189691060021959302992869009160051756093431552080895128985714134957197068942816408113105615660770199692695357951682181481733823013261564645068706905289753120858125882044708598935540312467004419531079335456901898522663264214980949927886924207783789234574190490144474674102431691295428533317332090561246213355772371582879371638403894057944000747999905533969593039436478577822094600070647734007992883703395516880765263894466714413557090743687459481433517138347277372924148103866929767109495577158824478170742349464057392221835124304999502843817602809922114949565144795137523681507688961037577063775766320118406255878217639621432793621190605158403210371195182321829659863962049663973927031674680938817829886145471580341030374787059833495559762497335581918790211445444760139191673885300247594182843406380747233187111207538701642028420060298587421992779632516472124620091473552152550285720664439961669181012681459713317738125072218614391510615028060827948672879079061454562630983012891182830513775768315313819404111764417573420334115466741547083620339160883332874210241882798450710671775923719704876113295397650061048756874723634587045900247520063204654380522805963474701151052500667121724965038374753398122473572659398466942812842523201715206209104996137114648196995927655119100242633184916139066658601380965278642135286402981556208360312148196127691950450235047227097657736122258967208542648316719800696251529998396935389569603469381288676138596828617621924140753448822447905682870669217803267619639296231268912296357650642396798544143777401677596424163014717171444977731563796528874884546775100564526191986210034697897844036891036716416682365521354741101231959628776691943924479411760462297044452080487392711456487278776577366754953351037641514504022971238865960207946124946007585971528127390992342869835843533930337794841397585262316662250082375972883417572704626788791977115292457158032564909292546381895548135876118847812236716335682640038280513884316528417035777003434541787125364635953107031692970290959372025205206542250657603929529675588473737035372267939674035401292068474467252313882290623262474023012446827276265147075457206415594016128432503810552761510024699453902525831261163148624946154639346394498609320597618469401797072016885067871598478835839333774294957803867495316563604253849409919269416847675968497889717448589527658525012758571515237710068221066265917587617916219136127948008004617336870018432055952818308599228667823984612084631007549041553064068188202249318239295110685029871094803146753171542627873803996543136672622726825738396443883821048152660928632394289215892061831545564032959047849452048827557952336729627787808511306579861547001094473218517417469108876537297412993010575547230864626394651619600641412943897511357040020393694994057918178611479544750059280881521578150895933207441432233897375008480570523928994430424981637416639962864123254508634280619371103412830866975715937857392226862088533792428111224424182691247049869864653603772945908990972387595097362801170785944797579229126552107896934684517349037970017822573056317618262971977976706955935112971921057766893325628104634379799070659206286102913566343687511646415705072706864337513006557585258422515632166334954658001841398357923861239408632370870995025637791014900047719668528382324947503084119040944277879917999559381105906629671709003890233108521407484457874747528042497259826538858092843130510507923721355640707121481354988307462092333660736567368962666123806771788670005109037650283088724475276174778453008002722394516160579517188525011427184427348469783008011030624149094364169770329490909724533054177229189438430890177241425717395211371384308942146515862692727950718965727158750663474193479740922206711286282838293479192574751674445184938006145895884907281494849863106342645494712009244072369341815993392824802951845293538868180302580492453118172812256976972341531867037352590844495010425328885624550981365480493713061607243927266173288302648009075212858190930989785970924139826014462382857219177875875163078316295303098055005207764670505305227785322081233179642803005318898977927081841205212282788641212843580990333197531548113867254640122555222115079719988456219740374826654805003387100280168900297073227319610037151296055179747256334262394252631702772213702975799156566341504473818587752934518614394845876561304938822783073250053855708724046481551036102655638952855887268555648754490384105465834275524815575823880097787645644644277729484311335437620222518352755035977182657124551551699519059982284625987002487603719908707377750175716087423797780816034586968096910422882107701513459938107557287532895506509045069793847708858231824008736819008052736602235288912626181326942666043472128784174306020338223148750830257638729509727994367949016927022568999719016886859621085662015753218122927093619713420463023192250226583506301045300402685542957119605126566080016200537421257791851513986327538664130097772391181672293434492540809797893995558758915315677711955908931367370990206248965327834868496954598342218716059306245940063596635359109922328533069784530535705396566026713497962426332843813944094241121334907048530527440913217902867751007561797941824171808969521173772208598853618287833383328643021462928103550389357161242580650003586094239190032608964829362162927969872694912861909522821953972066669237799373602929227207966914893030977344175048318723337817737048921377039864520652409662960660364495091148880486217653746456158592734073977246803824067394411900764529749189277648802147947756103617369118531121558399237416130122124932718485818695307597001082005556267241687201925960535579822532012957304934013934412550502546659702909418265514138044799663895317977474691494240880766613797882961865127987705396843037065149241952528197780251364795612915264522163606403296772881650007073368838668308218983438769140098321728698435296389756362768296114876436360181568650393713949594696182755340925863461322304685061951805853807046453126185959412082219967622368318485318326695047208550136487677867051928184470020868870574956223598547603095104057462244963934471409942603101384136657091182169784847239228614126699850737711717663532932919463446914024080554959401418928373202634752656933282152760264653059587683851192580047570426992539272942013858842339436576669847110760717510999990577089187811592399083947644614480399217982109496992255725968687918900401550682494032181500040756479941679494191660845328842210454998231547767378166597169216472344557381907101208864240139805951705332762159040450779599491600124000864173113679301511008321607569222696900153699752372301554274219747256445539480618757337303984384219128445474028603552981174988938445304375904498879669936180627858418535543953394592880058329408651604091365820646271279782213556967962467140079670610390738943277050242876023625842284171113631321083596358168642546113546078336490449234690609789093265609891387054267207829968870962698472775551803187665417511729758200634148759692413938258545952590823991949011150020617911435016229194122811468406039770108774897291764611299832471470487170876744602395814400079861483591228602665159042979978593650257304788457656572750648129032864875856452870103102728425849315138362876613968202962453603720623857168455220051252990421386963831537424967401198944308229445305955136293398919828636574602646349780546810716926784712564551407858759380655911538588351054988657298341568791640334123599190911573510777494583818538070528846301837803765576038517056380716108642225129279786307991298631062396522962784343501726526885480043856896779417276721107228831915218947612364435826842501079875947526652991484909472751237609498433909948481304466144119195169235896687626005628488099880991328411034543484235527913396663095385563381840834874630627813149123152469672523968095238944456066050590401012455026220434168321058020261100242105623778376724805392105171635621624272980238720427190101459921849892108827015140671932153325259262095052461305908458371801856045522256033318347473110665046695585387076646124921394770168127649277400092429093525138591427285349487343304370784280692269786943364202960023359130594657914184397062473306260115166956685083105113967152861097373946755393211434656913266017090531694467043203562122214560514338571190146990483829250474048718627445722498331794257227693565701811833516396138626206606745310180295045074738058231306085937274624209583526695133474878804972096084274737392900190381220628645807954450066480521156274496784112984624475114513725499288321045757368887947513120099153689603602139149026813484044939643662631571077132920223090204372482273078277579664569395450300715668554241592450049247098791863554090708342367694401888614556184276912278189958116481171564074709452345673841900029337147994676544022584825704022784132307719252579140836655426134363813228215544363189185444973310088668496453359478025434741056820235035331014994244913856270278155569149905860217802897103124994205855825585610643251027370946342770665551689269519007397028636821980970149370432291915663536889481561712305740292604773883136719461883382876888356628064170310871066377798887345979722304716973124322775663532795587271925243407388669434837220637966405541714089801276858129493243824477296253022909482187880200391296512155952877000859501299303603172307948085325480001174975563512798502785971937403482215809561897098913323376820678661181681036857795260183796348845261317908586692553609109624403186824774254639748080416562697722796729257611557531165035976064914166448326733221510326255725082096486080012419099739695402975439520582865865277787558678827936594545338296480762975467936109097698820175601822175788927242965541136454019564414163463199212920767436361421839045899787184191908861107461194309242660325146972363927611227927199998654035665580584080857430615964070167645550492339053893260444408739574757992387060024489530936337549396304238527192857647836560861034788811133842861877894238213504096659749525606464289614462828854522016987759258822695508240024742775741443205604813496190642327437376778364508323176448973660933800353690293566790568320297163608866536462772853469211451359934419011440463605869382888926884258662021454915624522631362176607712422163750766815533787575594580999236060689219080772293020527979535092563421401236884383863898563293752942462181619711797023590226073586146253561376522457577031227357109196156968420965479563833769009738586173390031151857247347093818412648382394224412850986911909758514140436722538338485713400123628848461709756629090534390422499088165920314798191209430131160329925831135698537646728651974086105400577416779316773699637938829310561044521727254389297296250950794774656567741174011084731307349010217465161286481699090720780563718735793326768491408088430971739688504744762955639614593478672470147770085153232579421740195261850826515203124531418578276064715243420209652076454376083089004335020621708130502954340401931255025454952588649747190679472226558966906535166689547197445547604185843251471599011651250175896932207761051161493010661555380595008234945264161053283809359735806716070049744935604774412966800816112782121654993778661750729122453937420725567022584127065376114729317694490346954101377919501430669118375230732786279864083949961026751452249393054484689794873845536047961922282328973750874757939581969929474755516546246329644750973118363127252004972746882422889660100902949792692264868045202828029666694027862558529280840332066146593871895260737508645045465383153862161812326873303678191390161863552218657557267631585528984423672689945053168375753112515276756125453342131761906084743334654842293951962957127633330693719390761153039149944633172253624432320952104124676057943572473901646404470133363536068884517734477642420666243211304502347734780429360115816857847878484568041425617459509746324405667225061804847277020109398241332652128701799566869131302469066034868476203274984369728839585215744764234442372270317428924804922020398357232932356880884222810206848780667109514118903417160499494156314596691805605911572174054735742170074083796784495103774382123371429340641870616206917210275381333139082230139122668669696569595150278816032561603114755432063332950569699652017788999027398972448744198050264657022362669073465561667550465297968988511186565913737993071258476320102475370275359905888958596167346787626929241668614887249929181609205467038993543964196000534549056941324686948192022393540416562740803624906253390476147550245781154168073369537912307542577936020780440079683666452045273605493832216273548570003371020786796454855535702431540129992649732541612529945590447583493379078971534805741333085904318311684415803642449723946052283676075147908388530436821019612163387737979783135272213173907711913078196913584120848903786720707165880369694254549739098970126512982136901546250367303076163688514503538853885653233435305827540215705962448569933054230196208513264789378648040523623854634795165230266151068462508109641404598723508429047408725111803427631592433560300991723019823086235241015670377202171799760780788163099680451264461033212270107245426318637776531855364594390321510269379475852313048027067776971623724346755009125208063781665000963608014719900839601653521482891178310340271305142836139262676539658332855920377996447983703212121444110589526405545829325104329853143626335687515811409273895985909380100745425727439474378863880945023836142228318609622326022442096096892154477286931276591716903156747878465741321296493456943649656718305456468494844899784851356299263988403954825436816193308903653635553441834437597589878618842872045761366138290826943492955165403869288398409564041251238123327012695984081737446119783690317266108524047416967945319555774555290592355375194932033615730243846908152752095901423305617284695450465775600362271792843034680468899008342305772031262127772703432949242938069726250309093534741049857985240197535564561754960431928647925590253102339518745811582528993408877238285367523406755724589670607019305152084532780529036618615805668854994607524201663654884853888046907913568209069460400608214208808691361551973063198508090841085340143679156661645320537089513473945271972297636684009739816347946088087598554997975905431040193477859111161067565399505106000978823488158596599041309029302686351377211474818894838358957998340700080667585317747113433992761755054144998337451568422463529440472297747462983921221612837628616422545641746913515888033763881657470757718560968176971095387837038723664797900629436306577670853109224472098356801879181972261938063778605210701505489599123378045742405850706242081836005816150863772711561561795419207268988422397885445269943734493176676206048033930315265471810152159116300129897953302530292713179915927730436991550931974443061402579495296690736482692715652047296777874056194642993460868706243975058329003143536308488667671029996316016448797268015064418866703894934079805880987306550890212181156211896435375486974749321781356659949493377764239486428948496001244252612139628401674542114713865470253548452317858804648034220600643959024098104105517358455619907121755264650803362413536104111610238076826727867585136307429360848317627589160732310759403966614331636023602630165130152096408069143146328147438464762985894529836126624303952575821324846252957625805813832355447654655603779785179538246938354851738913094447710412190211178228682265653669223691626128692885779473267101650670961907193442765385900005392167797139927444215156849057134295028608991500771093137867852916869020165820741617450450298825604800158308181005435088847836310115379223809159959579751967411204655583279229954121810591700817129643872136119709967878727737960175655984632426220477843067048449228032492956737565685073734236751894735485458633399346098836519975550291972020235411907264321969958123978550639678986472895982243259624494845437025708412556023109395625813381324962756772926795249221044621001725416718521607367501770873730535010541576422299250365276164630450525561753427973778185168420548501707212937992848517296800531442514292199858935033861962988472964130509787684391940714283530780376011905345043294666979965694183688287151349119924727248809162673450518813275208617045477410441979057632298439496395541882569039365434437015185133224243430071874576890328553435922000315933110286119157137549038606454038126394367425948711041492481470944424707421216245907941235217492099856012133657615713146932103934454219722070455542761267581226941188145269854513216072093554522352613939508429367859956639427834935365051374806196786487361527330189907332355139082588085437804000923764805020913251371539521786073435642296626467992939932569279793374027630570032181234392114010162526089447055601318684423848771473484385052066853632883415053584056966298661979384211951891692496541253668110584476797325434562454442005733806008850125453601147120771454427914987544179012500471920499258774390502657542312970678105582790703995287468596672483471845977114828206727481614705204690099311291888154749703848460047021764924266012499359616590009492584735802791072738708699646328590953255460517156081231348632279626053737842426304810107935848572312927536725059222603317592146270379997935843468395899050148631605164708868389710278705982842814363853394752355597114162890941470307877923414727558793407615227540651119879026658823050314170089535875049670035808312401747278507159442424197968284008296900207136313801831642196416900053972682651667190475424869926895561613010160119069952068175213540069635103281506992568559109998314521343706658995240487822622549483839970509694381220557449677898072642570999991535342869534199759438552607702944993859880421552281608403800866790518274641826709532344971287137545395113930526451626366010681322380693626492891125188805151950798633587918300893818968429958777773367279289996763395310374089797069152600059320790759070053067443099224859973170599958517881251913700223050838167061654620202174250349694770972650756160570228073050611252607478023233715568558190077941853445820578591840160474371368610154035701883857742950298419202087195009754001482218310525188266990931616632824756574954483164461820895268264387699708786589179514424276805545379216664166107976032727237395336739951118791043913214440296073727415863845708321049231646857045127162470965168028633339449577814124079156129300678539925208240194964766787172220292076977774453141267541297637939060526575177579049133847997478901515165125267732818659559471499633319528628441261729798500281261092768781321767806182028263343145381758600218864937248242247122129142651067169768848783509902829733546729531842142911433376837715127678175935865670652735619013645276420075241936691237293728579454796175584640647653414553151272957052274513326818077979859914315879199407802729686972266702430723649302386250156833184663554580746702060377766177882656929246034899862632429547249857528673045067474784853136538504593137752379586022284229616378824402478495308041733072964293665476081160814503110227530187315497248650304629706235820293565725193706902831546150798733570948128939159876334199664990009425366848418519435395662338880277856328396584550430312951577259107569623540191469272662812321929363999199844348575446254187392993259510730645253643882072025712009929739899069960708487174807739754602178232082842863018311401011786179792497293259132283403010258019459974531166448282988720229681834457832391815195090748632107862639685640055453572096277078548998736036995762363514133931025962863903679978183205067804353405730284158198363052482250977738034620951315752845262108392748871680130865512117016378288746567842404751118926572210588188311224268888163369695569693646379494161125885214693974391199489263412501339519463234724629232285286675593713017580677532056881471083916157379239522684425459637204244419541226240728520383653880372238525795745595598349853443872679077687683967386664166684371983169483938593436177150596457647402297920299812645114706794335336431603542476440814678000468879265475219250994183221408653066452418654937923804906068643751521982373034459994711491310574463190388677421488430995926804379801040201740682472715448796826549679282924870735977562993751346692140513031681921687322534860097604733118078529737679501626107578560947721973549860236246173647200676284598963132155043568312268451204343103370279167140884277780399821435409552287073340138442236702794877751128154566346258146967221881299840624625856146912434870595547277084972102705481976729271103297440301344305457014317170810300664043926152793498838943940985925003354641166136864005997533883693120371238183884640414456687488482456649821874891571004634805996639896561587497101202544904637264886794288410928247317068592003787613449470149497617352100610324248284258225050173510250793931215973282691814720996212864380288610043743721316643583164393805359615537023846942225839923581157944733715163467268316196039032123512165456785895072833860530810413011614236820850617332999767370498023895765559427178411845023055887744015544897793064602009728016058835071760655365287872882428942884244367009616002083175583683383635637227278110267362949444755997463884892294751770255913269435695432472291008576801913428332564790241209924492480975382778041071680796136467725586043644333284875721227662324498517095588507758106484184400600824229361774781914606372629391858756461360612657208764642834470562132812323222885043512785202654612312706612225516606914662234252495997249700412854878313330934048619268774455129028222623474139783074168664654604626269025927345282940239779104976004663612487544210610781333340811101905109938224385919776305159112910334379422742380838151392236890208546364440880080410158020676945586839599629167511672806225512314555889124279775020014221339281388866253978099738212388597827866852128559456140995838591066135612396898655862605891937690382805926424940387240768794796025867058975472248629589679359516260034712756780814125534435493339117366948245304276180642283934907733952806942706101119220617379521124537171179628634893524895336686870477183829444201077959038387672711506074343837855012167296526301535649893826749355054639043654391975193141855539852236860598410758077546821541739007609831547602026488910809738047568301101274797511254319259277646528549791951388151495449307795021564467048088194356471030025032561046733428206918183448511064692645248577139415119768920088224016824571216400020738442962422282239543592471748455003877138752529899349234044159460418014083716097436031706342021080901153776341818086134931918879023137662651557311392266529283245215133453321866378378112163833324405027424563444849558352901755433104893720737329945974950415632520532601518171173360077703648251619269176867467795937670572090429020503852655969114618237564955470212817195466627043839095178548686660800960315788460314677351789643156528696238521621155629514623811999743620389766479217133511194500862757113678746888240117995659265890313365724089996404840296397127062468727999276286367818936344236178748529518498910312481310775171265920657126887868980686874892630725253421647932605908287282910746603105996729553994962732690904128451396268934741032559948011477394027833754937964549602682249268756410747436337033240165817551249986046980547492005036323086665259483872867712250118435795887051469783455373157444115793704302470811609463803113526871888984123654457506865032217886013167703357562124772173885523257061549202273720639802024506888872866656624030391177897267312409914214935120664913405348246219139888117472451578506474616560860723697074133065044797775504543617048028108263168056897017512425081003443387995608802204778939612389882375506955634933583753990277334873672626694594295811860449929509808637428325916431879748929327110442249386178728894303755172084357859831752886932395354921453977708857316131437934046492263441794055683305574271157773776322506362527913255204321360080313064358089975440800688957193366159972612637117403621539601285611877021567296566525132291781464060593294860723403256272064499640206676768167540919217795452091867887069954415059419184782683068241687492018218681439604626745167117989242036552981666217512705394285489373230928325974179929126567320189784779295836094628401049327244136422584182564685245890784715793064724867811750911308903024207779122856691699444418844487913022615595514557590122507295933167966669278842701213907394968228783012545317602963700258325393518895648627310826101056390442135352539742126273740206615000350225460904577836365086291548366750088160944369971133218025157244619704903605698232744719888358484028652180133471622861906342040739024934848981090630658941825083174122898546959896289855562125450205123065702218631580602840138090657084129759997705871021907807522582419351694903584438353965935670734898958155951115063582858458461790750333244459491633037108062908247041238354487733600567503517891307248745687516478929889334181735886921291072410896693546287967494374123271408786802641592576893002091609540888281004059084729253071075237267866514686872277222415977419755695603735409237449240124905416769985696155831780476683471776044451313939381087757556867110598412876466344881492850018624158526531801123525155691255708994324227567283181334683313312793487064476486878300373776923537040994352850956308390994542964354287847904353911068518784856691806234689858350441701432910245885301531241026687649551301653641070269485516403645764633881828864838820638104829194690725675128225185624466714994109890039048707216114502450664993831526970096962506064446356587570345239708643022864049186016326309086607619589844727083705295410836347919715425004895690645157872943189181339405748399011421554675952453519701777552099113194503520225383775850368990760283059203287931882807119428158067322070436198541613957420321771139443960019827961693577226573639040061680951675497272419038561421301128239299383201683130853304167006233890985828736272636141286593138530512737378400269506681429392065210459884628017068178079562807775745236735141868224351539510047040884997296417595744287976387920124187390283213312935078825376311716930773735454216075783357900895194005704672348123234611622600283480243769115784348668060611271327730620408858602589192997579514848861646309459616763764364804417278743300162944594339636439598933819243976889684602137904850690734895858356959878792833859219804680761207875267160491931720007469467930855884050752075661911726846979247130476575035487088133701854169407273742588251974277956102507656871278416678379487665357113402083480625807479179883435053199359979433574345689606720506164979175833771864273574395221073210551383460690876981685855138138684409202108317243194587763803178291352266163605985224034365026287706685208557883173327901643499133474596016362483112328584975560496833421423256342689258056032817081504544223146621609529396770052824939172095629451568181245756770366044990018576411221458539971393600707387793887131492115323222302460802409253589261804426666858282397133410536396545548654635127650500370741521713889678615124189540928661756619017072185322442634116055054529005653103502801352350664814630539275528644056544997401348441295887021715361693781553042454272498139277508537639495998266808110859857228193122167662983157509630033084941613522199502015309969219277575816748744435311756976577687856704977559136908669090459297639125177553558444646693137381511267809413372240421436314541838322909709782544374031682430436431873718720950328403719748775412603470212425233956314980812750874567831072405855646341081384629416508246692693313111185077683294226745685376028303116024805347826849598851557229860094454533285722290691147438545801534568332467092438586939456900901883644977926029675770387149367757016927986121589416804857961420776267484376169222114484600570358488846099792626389177569523803581710031110087967462532614634593429893306993255386838128024537836299436899656596025200753563640198070537486193935429153631720558398894110539061083112453703299520743636373265563460150092461720179701824867118715833392903321942288280697029027889493062911942244718722996190889662814608911247173754662031419649423576699938035081995431608532306982896651250107582049223167689047024705396034242847564280334268483089646290456676315525439788474016139799562504755040515752742627532339233768405135072302541647652950659414005841170370008672553020534868308324564709420393446660969064698792849524940684803728282101541945710913328769574838585531639994389217735171382700066224875174807971172997068111802065873982271663536074112766905586385621901972529041850379551268662624184848782570098172217540143385110049899144009103947246319193876194195684988371701092850737207338106557449206946837817307102445436321862464508590750012842612127334243382180833352658972558819039757258119472672320105381215125135975032764461750814613226200389931487573203831006367408445195830974756613370107934459534363122855162451211202273035663676050499261989312111427428921610139035135667867929942910069593248178541329682661247367652787848474443512143098293952332974618105011284547211636178914844228655496709561714120426812509216387701884507194101430292556158718925584422890070200852226108828419456060416377451985806068749138378238995700924547696397718125725248761352996666893247157437846620644351424303395226277716072835696148762812554253853747669530200875081432066644969215297322775292799834690565674548729725101150932092255310275547388347941395055569259111566209341346240364489528809433588603192588842955272758193373031095972357497081724051852973246335116950077904206149930975393384466141035491869911846865752178439458075381097384075786757379353779895218040654399818528473297246837350793862063144837329177141883843343541788207771422586208277177171125632597527988651874037152849658615377943681743798050807581124676873874585806875380209996372128948624327949815774202845467007204990075321055656634394999763367207098963795125491796077634377780453388426201416941733773121463218432952267978665015217843201150416196835406341153407100339106446104605704709859665934520251526710202651883244065547606872098939616895644996471448146926977308987776511195548446372050868469135551972026585727278858950278600059420301169539148822063897722646238219576090774371232064710242541366254051159897188697572438049692343380818334319509697722206949899037284220398388035245774164870240472992415945062007304156977190394696680143682802409305173413455884819329507095224903061217766914812029134186444175421502771509009755449637331503304776138988478559862175951549326020598644346809784422652302395095790511560013224292109007532980240594069368931320161557650804229577142054627387668121762772523423886239261901001213844082817628338346416566227353482261486912647383686296049623304461925649136626881700482237143037773549823809992387167409698947230508161578992875960772011373749520355656746690744904365026861559828921686184452261575208353283532769065492344318362384359365453111291143338677972047087269849237253471500628760719659678661517605731126365909020351139591419113871044485015024634923537069805030799218715997101311022716592682918462582528725647167320799618039102555194558895307058496252175750683685847492639302676975944192015485866720340926404402561098020511708329714518500430430699821776180278970574088873174999190734066155884703029328246732018525823960843169122134640970944586246794971484545141632180330973145967564983356656653726986361812572693935058073865079651392615839152837357588513116146395639989639375338861608822180564494728315430876959192281723679318809166493711571301391264151710064281708947588153171648946172223009555898806530704721777475921164245661416276070314013746203114751932348810353520364047540944578952245629959311099413831763004739730425152771474563020890328690409418426504450260611265426793397261291481093972434411268604311079099520920429547526263700972835713409504015502437025698871453808010921771424588835096832074749092340773083602488155633143148861853356464632705070684668781774855622922991936712246753141755759545121924647903682411030478711396468245794355267210522243634794480982607135707455349643748604944435106145674257321647751109199892367150974279742624420806168527206190499432655745531362545221085115195380553941893604917531166048330720499371004855733730320385716369649178638992426191840030192182664597819075050546802870530722889229659004885593414882681258586988440505887596040675437947903234968875101265268509982921292676622226642935316738997597315484959300972686092326153238069354229134796832314644343145029601060983923154567558951557152916338192289960976228392183970785156555165908623695159261498464714468755398790825257374776586805987768482487124913445261915556649074668531390729422854767257443468364809784602991442477921451025654671055091602304196367315069071568128962359536965128334981699622111202176024986559180230155370846872536183367493634856338400810093024854428225629508019386371948816909032380740164327119176998075333328287417671701985880916842186719668683597214688573758287819599302292326155724153236960102431117180100963260523879755514185744968826936030562852765010319752642314772554417376711758851897096587771334178787236514453179498850880990859832530967302931810952865364666268902279240696095229534315322726866800678685417437510890109417703332853702585070106554685619514976639287958942993656287503028701271160670820183889813529166457762778703707514963954100228780702252581935298903867894853755276453644223885063497551567005489726971509868805666606612982263010619007770575109455306849928980930937581354758936688134914582618463799022736030147983549877582830394401240965684340885520813809469454402683278734639902484748157285574855646218332454481095553162347381460579857330684257749626754684889614260167695675123366199664280314586096533203387345019655374533050385345175414820978070256377488968818084843958711206399534991817334032337459875273978221269132590377972935461506089385911247951949238331561438466463721282978574788399564162395727831049239726632139141609058031594730920400864770888505144855112967621080907199706830232234908227193365858430576254525754448108012815280527420578822720481449307891559719095832305216607645831426507967627118573073181997557530091012347747745847727830502085240200518123966164095307486681462098582186906655069342799766825053250054713073279623959664662092157355797819276065245009666891587118524633110768854609701199342103255043251558329818284856587333991234000948869712092302851203198362979986136954417835340655424638111070277935207798823256286603952809487149314077779487903069266650991690433845172351134742923250356774352984887816365931082242326918728116290105701265250125970395035830360945961569212059700373518672714339427627608087856696454156889886618599804148067977673038796871456175515588579747041332891467703076659484354576812530312909293409443882709816802228821000558364501154663698712938323009142607311167526439507640803491845887280202811935694759689773784768434299902289348191951049565382497939860804321672056205158927621213954718841986457773055353174571156777889144586867130216135302481368589883525900092446803797788314050821946456078571173203863903092438197446906524922167568657780329919046012154035622554321424662924805420521767799855639758036666168845642163284598934164145569295128281277514564629396002426261111966041932855399804853360146145605730368995020659797459150266254786408508026024770886360656316168232073694627407404040749910584042118219331089344844152421755733827411443409699808853866969811825947597383592182537715176630774816789912898567018205265686858453914212819936687291853682461384666782247659483674262702768590270964799128597995492517016531377407262806051415852130190737155850886743080242671460877334865200932906036113849491229483376631105261119107882867365215887827982900745422939201249796647646583634187193132151281238778179688080995064139510634126584957439060331529456661844062896456470151929461364334101957245102179295021260047224478904281112735192856559592644425668523908312635573668334066604216872727384850032723444594292050612064121876528619490189411803316501458511064317569587072159157884806998009067486894415584836685238764127907168426449310410103150149432676033946679541441605313646647808517384836046362003338480667873205129662645095246432815323408631323935952176642565073866557262129458640774913718276138274153896782117369809248819281679445010395513295295988584422093665940177694972516628875202763370419777122886713266059170118781437454846676084104953783399851665543572508396484027074174835403268503223580304859010039536975893290418767452646974010550589824941730097328172236766994986830668324766463907479450323847332966723728423301223388930052405478791344732964587440411888433110175221808124101596382738053936956194293115706843741574872326375948959285262776974760170321307858971861505433752380219557833820410917746851698960887616139055625501263695787819038521084434069102199986931131004768656626844687497447272198057286954850140887751638812325668282386749360266720526411799629685396679245231659756792561495194759035970174351942725542274454563334216334392534498440037431054658556446595848882579990855355476040789824224379913911424153788958419197789180061938194415932047497481943529485935504791497249864421061479640189108393335554728622413912531783868147218039576528444503828734501525342273762725840862411158651950065272222134375848726630124078195337946897023517286334345972668408273270739575758802216275777674000993920055339676811794166517918389224495851820054012072925295360044838923436800970164513414522503252298335297626456617478829795415340273936262484367364319943141813350078699136141704889686092796742999200280569151038749324354053448230206807970970657334144299695578381676737301766880698006051888300399563924442394576852568562084094647663376758994641091700329177519098498415286581057796532070468470806713903290411613193302115865011887289451293420213630287017450890494980269927031842397872977946590612171249140199729495529644696360741561702259596890579774810089809005347011574146267018246617875254298442699904146576216212858086031321023341414382930658192711001260445047580808946748059165580440719697261991481870372733378596174223029230465476538543776732703228471821033753504682104308067009349555265353216536188733920633407382468603399167619329011582268363767062936490307164837747995595747992746421934221386885231797486760758990720508764112059596298479005195462966804723817103211073745678993260061520588679177266280699722393840747971739832027698833552509264921910474517785001861585039214388354560807755599199782563187128111521645133230258509359161033432994846660768675303686010119921837766976327327821473283055943890186479484951646510240130915866055270216814125765941681925509234338054654782463629492926678370235724041001257849887236194271437698505638891450406691844157826631137162500153564885144176963972158274997813705377841407539924294184857774987510999804153209136792356806193353083196967519777320415325875826653673158689468844882928223224821761752129214403131638977760901299148455518084097859728044424866802094607209481135685066817210004055675317473578855026146550102361237956285801246435646986056431363447181261641531785036727779591149094160578542780838435382818510969949813747269455533327764942810221356055594406170034620228867492176253808114144759609243770503034964564631305321492402121600414045577771912268502158454777783697999392827562433147850201330215970587515635684039740276100272103444311909397267627450193157315477651488302826029157779625945965444871304445812518655533071724262416686720832225552260475196067882061519008393041572179440488818604754584244317647393825239337435208843378353117414943002612097185348266560324354987005032474556642831715107935514432245835991355822323369171745264587258456636663002981608266311758441503390627978581377351902130490576642738854177603057963838307034603269700858568461390144879755695904729116454705074957083792456091581957183496102578905774174304486869377038831975566027524273876372540417628705489872103163622667529786222716827952885566427047722147851158907802264184369979470627355722548389883404615156695525083219127581691806494850287007330907819124027805734486851526484053440991775315639866328852702128776314207762279559495791891448166512407002178194014510178880747855104081670760866068033097263931312861449052124008602643005207333706046331163292661102423714697186034951646006008158448169848338135080985917020129363087116007797317413346497426616656522249101985412772699053149770202887248679474207270142543912229061639373908503517915246077010318554280231032933502639769920131588866992997971329663383500889251609692654914327469039107034225801454048461473524246661381289532193855014307648138831301760001048967130836078964977971267776101823236904438451162818406824399217375470800803042856468148449147340292939510286355146293160921652577901872629903685859245973365999149582179653484267556386232068567993246884024274320825932287303755396473705928136581896189213792767934707887567750672549502441603490718786779703189917083113109955952966497556173339608452077158198341538659034751237321912739309706829431753533737954321264712770636260633704523553057006998888929549418420542951920524790001063086911730930142814009967825572468518507269174500574514333089188103681965053614061852905716818802922266098468419768912187417658260294771047927152586371415564132946790510991462214100190632775831272844803949787494580895870768270460655192719740001117454804824866493501121656885220238992566263977458699305572552410500306184920178482836536557315881772095247144842728296678754029596022419948754975408162341420024568999603065225945259839876143186634261800702928155401171376395895493657350331044478799796530664585869291046556436292614965267580656621798770872538608008581575892837158105638312656732031162804798891504163579366714576667527320219308388331876648790412788234214050503356127074009447267266687381821057396638437630713832700455262835667701772705223617327698440109470487768326146692027495795886057534990395799743931092481451407587419712119469521845506628463630813236131537999530135789031211549243142864435889539377835197797275590583673685980848214838215011162973122049330327041017445876042637472505127266472820486768825979068469885717349751277414393125941998491579006111236904582708034403432949199620144329167020857820184037417831426122892164120402093433928793927188099037923236409646753072783946566525450793596295622022044483867768197192824212329965078923827000157964378423025438878198130295046454904831455372886814025719504628393684664139075788482478289567065692915837393636111739930724121718540510126155408352784072715412692780848744190273476475505139117630252424202794137536858143767642100493296772782681191436422449205075314692341500813485002293274320130092341848586910541968304869029451477897554189694737356648607782748200499067008892464546871262658195941406366768228168103192127873533080332463150853068997336217158765318727574037603693035405241040366381474607472842709519236763993691406100498091189239898326425107565335672981367332313026231186938247077152449670910539395842971493126326548208447524507065860065522703642082220127335700522952575527899162556113926332516937982316024948681888333314429734866676715277312742512952586756304306590887854464861063864410832368598784017806487038076033087084934835814749751335708211474262687446290936377837673141027141035782507013211079210814004496681764138989652690010523194718792599075695043276086125831230158255902976515305808522261625230566772206204120709315334069411598314548367853419919512818867438597491243543795646482026096468725672660265482891428467471172239406377005444050101725898336815129518592578403338125500872773254379604068031761428846671082247103165681613124647099828919063411154516199468673888286983633863530288965085065949056132341542607501119382073657196842588638349630111675134992336005914210095292671281789755562825064226266772000171212980538157036438820117201485385504450886767104134932136516439908835668825488884626264580312666027159026987550550817876513880769227776064039744228815875811094849899246977138059799486323914589094538812236585978672119480309893091218508047188959817855998631991068321436947119111071765430271212268579694385370861659176853263166493120364568493793635206913781247099642691213130770243871276402091494882894776066266991414276986147474325599517804855543215822904264261175180957661703862100676780743044057565518007256688784623109624485112316040640983107448131883902593587304452678005562866624385863899329678370272893791481435856878163636403526661229262228495803857592304426513735796358759787164781924103428856735207791916722228420186107171830377440726405962634665239257206625134824805909433477083314400440638827889094629666296219002164134850270063619826925444860168008025609009272419253822236915030733776139518056161907630808099007831246260580783970346220877650600825990912185488749796300583138800774571154733407826553505600203673420016667882469238635838539896832989694161061693649274174728955197017828694837317974929162911951233291909039470011094645762467519863571119225091829957426953503798629428677680278374078398839215213205753539671787596300397078179706454381743746684704360016183895612057622421739847706328476186548388651868534484265242435775772235781832974165847412281781029596318126407619724001219604697392572154937019616630995823890685286131173141334495554773600457132550863330993715075827930136156785941238590333387684988273060695488943674747693447413236909335931355211286175177027067249320066246203442720046007701637752312263065889205610752257947934277934105893148656541006287682565377067005720063906769686283886246665591851987971276049284237155268021889047803617250687871719463800594471104031634505382883878954094904549951951106087574587244270207350715690776772933589817126002757298262731496212877335729668378857554705013348558924205812728661241922571566925336160138102863791292947731735691125261078030740168000734055386280870870575735488176180395059116108329524472567563495936142016352597978302268383917244748481166439735708868972566139813407704772746100977593488002343922977874059204067317900940238463305398176747296786482668628622265188731518004438121583460999141018166642834291401637721489827002615724496196530952083134338458296481448780564242614840929252536302242912250313611355780994178638064537116141512041693465763604226122683543218997907782224776921825693082912646614787021113868420631303589547770155439346522835590047996993251920012410754103829621133539208551377099852590621434737159373845414136605712187056226895524489209376269942188094456364016039942996484131832368086105103423543437108300659672337135209951171070456251420475296354647978925366278503186845919058055149077375348726496957769820589156705230278362224003235731321385727006061197393420022182055178936674999768796191963219787357740204219417943965972098025361068660684394219237066112342747980057246319045569892078729675707211179553837178492489776757519346990823130908774560903882983615756150179073723034559096938011945056260874668181155767108023640930349605727467902001076585747456195140478079095861867799558013073338395535059981087996743036914141300596526142973775070613330635112854706494749557955545016799247402097151825792187093363705098078252040177833685667218684324210575636087530660107536969113304972946473164839667462349673795798990407608995459374110912317431026887506209593990351865310538064025017508270819481302801118466180986790419235205971308547107692863160807367488705740218903573049935351535463073299445371748092550623002583413923501810368123022708274136603309535729082529198340688787252067509802013690202477436461790689411264871528721350546032514344607789101936532306531236709139295290666403020276900863209995491818645995616419183742803165660597067283319480744873768004701678532419334566280557696408505197175839894143274896536133572854453174750049532963502934577597742641126806381442507996946476612930814073426351212412767729333465951229095971772952850778596227605816438140860501204144916793766802520889534289725469982253324287959943646238566123525743534766736176008298328787151371488878223782403792771471420474621398470750915835949165075475853000227310347792820838461590299670993842765659470877113300253980529011673461478296016844023948922449470990235172116708441674379319853592101791434464455411680056548066730413145524662838180871729523750435748787687651688098422536185537691401025736820298248738789837283851721563000553199920849555508500991644892634191859426805508408998188186172172782394715076489963471756959724733097468317962144930788608902295964404872828376834257161645571322026447974589099374211802153001569438769916118855591630842534488727280276604394387870987252725633050374969097313229832417058206634955777298623913840633414061145090857469336292652840892377999340969817985955118035310462139645236939984121829346529628891356247011366705359513218356581273655112183159582331383292268732381103991748654053703380496561628262997621317360698936655034707245287030164697502440269084610713277308849509150637406575600712231493334327497058862007554541799499308294771215767734421172612801161991991985617841488361451910492687779208719819108166366668282642158832433364184264821253088652385410372765112391844363809162686541724358421708579531592986290389742409801499818303071383651754371396235648114219710010548804494585049825617968360032126227888627792962360625498336374035312890832727193310758515366368800795672264628992405847890901095568886610979790412853062171473629641106089969997175945270313810795105532929790569485175793807524343443403142381739618713541964684897743445883773821232442258745113104310431272433279174406298220297417315842882281602663462731905304460265474965330553218201108074902226698248798721164949615085247028508777080597092073803474777318857436973016019566346908333604599181958668602103679790730926501884977531250608617928125052644824827169173079133998642280087438103491483819648475014584423426724744952830218404111634673162716496404146506814052470566383205667825857558982153819847281705406435629983231089419977604803573109937462909630612629139900881899514233646059458969419957752988218276008804448023413729101171045214981710309780860039862448057815228630871590609558825686847997261715536136580099974645702600490171186491948424486487572472728585253073753133613339002410766327384443827738180485582242550777847200666305255337820271689589648968821871620451252392905914642393351411250379184417417065606548251435842528004495750038553211402730790342897503304758279339683000655925905314577958966321048073924084895808457264457132194658818825776352844640216912660160971014289298365334003775752860651365338177248947739194920481379838538648000591368944591912572658344013402945042960680236616619287512078930947297331120274121173458983729743705200637608135311181110172295485967254897953445591617141099383166142839190100637331919268873492369614554816477656546730118885584157983462093493354959744769589292036993115316307011810484809977699026987554723868190923359117649793708951157157944003635728275441797416733942353618593091708750562594872177719062083828109675882790731653690080286386188542137545232016206017136754422253554078975132443300669031240402957767501509040818985135885687676561780270523948551500663359683103784034021603240826237509955152969120117634571880407897700299461223981028251077210277617657295458867987853266269513359140934257935434085804313781916646676236815887858545197856631275979487422174930597705864080579117825426542295144651624421455294710018935237600050578015414467284110056923819830124458583287617757898237397189904109020702493060814918760459022810655481156285772892910766181269276199932577046115453634347498572545524644748466641336255896682788637855711132321553036245829050891044112586824764672644884177242272681488959112204787145435172685267126947788794040969860923409101841487302555635793342432739257667119737878902086677578610900046161416178792744667270320161395392996513804351160784357209158445735737931694858470526342820297515796629769386066835022124568159207158681866026964602763408043921917275995310980689285751183278851136527806266059949031754536893339070980678129225246570942885078144667826935414100993513224746809545830607426603200337018146535276058117062786258431761287658463141295874405095890680552743034566089653988483329477276402923629809893464796959253415788245587413635632389884405233433548510870887433320491246663130658849216043331832050856090882925248649211586299542902838707968368957172143113997315130920252061445439423010741444494623377442099260604345175003835946756204799586688487308705287176694855899577322142604049240904571792478790050886637869018722195561488192498263053898850567460425947186215046821005943422942951288479595175517496163869213226528614691431043614714534371863441776573410455415224908559332658702589974438809678421395043569034343298945963637758951384369951269739773171539310023397926745191891491979794416332536164673711489771122057110886782568843902806303993172450046395370197721968291207165427331970948795488710329418146727903073809542560008423623001641446918000553235663842237707684309107788756326185799597076069558791705245817139510397299399255416941078119736026490023030041247757097648651895855326651749496496149193630828840814568360386902581824608248864841071821430911546572656829413266437313599318370344248356754095402574824206779982918220022093237954414060048910167718583101706299515814655666285221709311539095341947847748966148285340136145441155526166637009949475112399513895827233684936347211331362748098803359365238632221461293185852387380594779062292892742214716883791089420196590147605593124705435105367211984480147030039013476944478863745888897708078480925172056910646596067107962021229920529199057129942499591874543781186528113761043261245377832780295186405175952069277489114385001855627400595293307685011218994172564549850439753776461233386518982058653633104856680272169529686090911667766904016436095052947268947638553410866251835792488580574344424284666814022702354063563728486338883322553959991802711052349488334119460622318840377182475373621311122864765156148997937131956740907722433201406014525489026346635186754667306642829394091557997306512659256892078922974443368610391681491157929196808922077546838395486793143986643878751606576525004665767251290582502729184752464290134151704711273605502978889392801741368950094482526985954644392904023245027986200185672749620757771445372352169044545014833894678640586372699340290867729118918318292412646340276843059865719608330123263010438637172271005403568410790598555434552299066256418553731941219699995900567887404554285111940136791416260929788794097797880551965062903444661125365659968165536161792776179612504834368645996165509284739081922302874415483867257995195631295835139579358820014370165429021491664823702943661964130358476493138106708512164635392350414540192646251539996019131255991688885328442052873138267414395478331526600848212655351734026794529533672701132958119924911574350684622391411921094169786765874364830422143380736667925407102999985763120463247028254553884302657541003375759317760849702853557078489279516179000081313744136812932265271874792375356178192390353417935580032258003187910700484574804723813758405715340951022683727852054412693630767079114397888464545173504130477636206620819308530933708333931173854461724268637675297276019304162930872351177074100337224300053721146864703752159930225246285057963851621977692825763537220626655816841344543308231502114171477902084852500380713081393474986722475988690676247216558841233789979779180886910034411527433938885517570618729723777906473373119491228376451101776713994513166780925748270135632078987597486845384351395213138315763847087473935612016034464739455686255430573203948882584175281505091801476481076215184701713054388287442148131996628382357152670566138208546924317920540037209794870032473077428641138547232537994149712629786412840981337775196996975384152297519244502589585758299635079869333041592916372523741611287504133006728394105864117347234383075859591951388627734085931944236233821885155297949805447523619138648879728274770384504598194794399523076623883278460714904010507030189663772894249461350837413859057254076804995304431598428674984196068121837190838499905726400873996349199364942558712753606952253258116670071074804915565502789164738697489453143689711214809732416454882958214297457178167327843885367312453584509959152429537551656538377330578936947709673976251494189660928793341273522982544742198926113512010684366293562980627547797601553836227622214071400848793977569181984892160806370750774989859631632578560755213159896256313057998468690472409709187336005271747839349546471661596040179577914762137267562538223128004987448155814619793508574835258037236710602322487151459890791195640948563536493322171605901309815368205408896045437735376415643149269620691403178132738195799031427489632679368184329513268066060280539402886610117000239735084549329085730611924809920343679372136314547951314441011051100143533560632718639651259783516917000286517841586036452651931646208734615568384904351119923721970105656996728002309091459429499160656339158753547130007449749293203029606590157167031277077855260643869672112180886467711731887410489156150928354377068879888110129089461805548502226969599541138175564902774210321555958909805598192845186562799873473235528331013509677216833048652781573931058720921907869900770611017436952219886984700381002273726770569936397501641047963013664666026230062260208263884897646912107220703373378509005083259140462879055582780798862234623873042113053248921692644788647564494931933680201674461617508954187153458224143263021403197837609447930885170834894998832205248734557104292683403592748772531607941797597075428366568553989998187821477049650517863888273499738212585935128856903949115106955518582324557464278651732061406678959579173888330979469039929776799563668731989621681221838254357987546955283270262235968117340318205106230004233173312300768662144451642847922898328753340874157921309848116916267643734655161229537882577420821010076375008089898693207322391961403247536413756150271582519490594398262562381085527671303993626330435941276167421957230238922870048505565199984337561835390587724709156032762855944460748687964087422013775093614039761711704232532851246466106094777112694303429745479945200581803283693261431903256986839983161046014699524828724727086461047624237007309057004194790180630060684035856095281740492134345595005195025245424491046470664014669516875352850099998175030663923798876717140505327273616206281851242981493714158889984188149135019848398555906669663487480569278763834104651246662669132099012418746221130906522513273747125523525730622743420955925208143435750793395546586866977628189280314305164140992941287470287035693484483734651081544575715291694932554116928235690852513158187077921090106616060576634077996999979084588313918835609398735424750884598212619861584442595143744525771119283769046646041156186563797731341948292133025523399458044567036675986012953111177701529616085882637997286301174163002957309434844946669910881203316800769589418895758445542666382065172038280578509461896351895129536098394095106922851373466289620956794521512013096707172209917683900301281542277957413900535403516592069156519196228435894248806337671651957339534525171817744616708502194562129849386890906355769875098392245677503420827419466502035470174077487175635716233329492817794844278576015539164077971667607832648660665955855489639805262081270961270927372361601935740394436003274478684520506654228336179864577996429316963641856679300708232779891190898952893733391810287553738742581744531035924857663064198014105797461914762780867719720952747141353031702310874976137127266968372364242159898941097235374091419635355577705495728307937377117139868862064941500111269471735587917297925313137894525220604543507926336315411236242037225559250284960040937828934235417021184327082314747750452488590595216990273029882062882939863504199182895255085020252806396818864918877235219006578771420119308397881455810617546225482130700471663144400074323322123272668409610769933656509395612414240185381195558533050648067542457042101136838911437018070427459276599227385294376163418348840466473238632093300729003282365288531204048148027069429098797509032952084766485508997012506567062771402458105200300580986794082297893321118512488375696242049099754842666345129784652883948675464902621218996537847894183986616873107754578689456911844070864900678846875180477740567873257319522838546802512738501803940054903790151066793969057224705558812622346833490911746680219988491395104462013771038421468795687365242431172971328834123790070918678436436859011672740324698852124611068069442288051508687592627312838775896112207210376385731633447950727600719582173984468933989261621732557959955779896937277933593084597752537949084598414885131161272331867402149343618566462738213439025479829124435163337559894693921418929588105589119047119607148069462339991877105715913407763643858973829729549690823164550327931956137465797162472035913623347135924170762952842393136405960571242887578171254136809108955815425077496190016779597049222713940325249598076831070327164743986472689109339819138576075922294675409740809949678102025847883596419594165898617380892409830980543571849754498753629959247783701601919030205512139026172681745877694329593736247019825978704932182670456531075351471702754091367796182772111866937039644363288516331132774232470201188117369833678790288675659908669798784537089741062576096760033166156048478143899051022161768486489209312010819423529503527235411829188887796308290710764148725348185965604631741479566751208965553446411805000254274057493674506656373080674910989339713866659273424322444068557604269705234435950874309093298934377933218410979054258353807082005986452366562523136761368072431249008797321035047472211042940590636165396448559458358458507256861982096858993583907993993039328753951386628922509140430821088818815306493352849717326937943150610995952121488822950153741912452040789947304137032749077305712836311005490292516126519768518691662721686371748685571843557695713019246753967017078678002648729121173995540664620299514656296430424452000146702073828463934740745493874722430015625580150803116095758077027327900824156683902772834899374940371380218880730818333829649188458549212384578024988255402716925058381565000860884050596836186682711168431170856677874775305056541577784963151848046475944602323402675374082893361493447778759238759943354754433799484917150625586076044680602525842977374849661283380988555350130733207201925168109860171842390883605856786390924741799425023327631293806808388938745883390238552118322311091440498516578915714706409110091421466832799597984677579286671722419442037842864614460839951724162971258295123989490246528269383896553358544765954133734296478147039846395906921618146062861514771635293965354845567772884442080228579932982325010001229410658472122091071163492097602683168371086772418238594678603767895495656278258623613170093507749370736734606875180540879880835352737052051257908246667951456159803088600953261050222082567265455656881661477737220181197912369093102783195573166010989074935380617476931914429027819757083009158511620630946388372193091400870565145055570091717852926840166788735410768095987801749413837014101868710254951565750447178607510682525134977350319653117590723301929941091740287531475726338939040845531217024621908652152229859042484228994301107802068716458061259584806594884702518540238969171550961500277238726415142519184465275491516926779565305850526942287351247094119575671116514693254380934959997331885735618729800511157906043599941543291742224014995662870411827636776893891581091982101486350050683964804822096556008510740801007527834881965523692014758264252923743090644569692005571805599265521426227038759387263293915495798569121594652327233634875049853704052167804129425982326321270387655005453439015473696328798073475426454560978500430453604220492576410414414815072711861762342068990250005751610086022012602699483899837825414285619968786609620545159190186290719805143074437036448134434611301314331584114457775155808983227550101323565278275446454445652117002698071357242506147561485224945365147295049928721723654030262579997337467905968382341316820097959224537216991662862856257312108479463850067023644942750718744268253043122414715452526481930549047453660199423565455411038237955540371475560482494634460798183025946805233631843544460378119612121981882564313926028145284337584790433593657119319902198582402194025522742159974030426958258332752593882148398799447941284197299043916358261527368480252536000662744307789575346534616311854380419804370386482586478445291954789646985048664901806822817067310091205632622298421238850244965377418941266947279658398548904065018056495608338903113181982781468833866177659000451276249802835413940517026512547852959894065404726730320092482013968564364957381570845948967731366203042308810805333623581733356001903993918133267577002231581652094182047856492418211763774532672014093311129717710205163442734344431036263803097854212516096994782454762754696673652704492825494274541691840927092908540314390308996420376338512950098606618283399608558166742216390484257134252178635571182462281718309136987294897516217647706372017671494955264922272976989795640312866449506074924357608398199095895164100734704355883124776521130293642388098907474319212575407469947991325238150740250338193502287519124757853336438877216152667387436991585031285045932849009062812848739886649095925163889005665391497204573004324694163074802832558492403509054527804065912600850438252252533935335486847586311090192409510010274317844029658559449165873380317573973905538645292183633721806874752908890185955174249080702309002215078668519615304445904847614588792297668540550727172321034884571988138160547148579954455775349203634662971333513344059202057348092756514067176613809205887556234526607835198371669504810557254772118371663137514597167747330169928159615987023954082053865410769868441633564414367519935385134593238063522526617800088270351965560174149435822548258179119932982717929439935270273941602122482036450686679125295296358471793450516440858890474927748012192082667651550304270323342323868004510946038091574203741708373945328550914531494091216825079498957360009217519232518342356950540857227872370937944191638914217691585341011706455125534033054609320534420728619822373334391150908706459823359920021155384555682933335554111455349120338616262442374813722692563239073516976299913890467756857905820433146527118576271555131236307614057967122300904644895289263869088354174242949955852678210007020151943586358763833333669882009570316951819948489808384094915844264805362117672522907058743616001450277440780090957610490951814120401858654806296785448636835594930501933121856792066220028229666580500372772178041381158429323534236580589410863079757771833291780759698177920357970998136995958368103777659140647811106492393643678742334956372958879887423833382657068449769553894340089339044095340161875104792649505341243269485227029031234237834072211425789216942431453244910546258988016610590544921485928282999727218289712061539764661241884502238762998248124798531705122521197519838478761076245088777596536848257927270937442339100582659071340698495189222825353878932275316987816273872116022042678158086277856260964159008916476521963653947182986355624910215856640040641405354286713230463644131116206833834025432143964700658405074245259930502884728938198210308900924509222715107423899877429627839980825495001039290584615123404550522880097374770922545238867372771362634875837241277737802906876012208989852317726731412601493280188276081703702953071529576118664631989292098258277025104767843195641668609690736023445266511938823774753458978005800011614878099656324543415129332334503095718789108281372383230839683684813309038800949401737481898352099267697873394199390713119284477313294447762324093567497228996854160598661780909276264744909817773910361922643426146811070992783724530484485995485456839344967084325066003016982177944680760702462122261094704270104272028477124945772702665791691207009195186818497055297315167797782761974645767149972865017839533588624817825679790352692505137570445797808450800027887797636590111910701686809196945153747889457336926857790529859227793135714248360281720111206883262636815032616882794634649782752864748747825036385024602941814511146217610090879686481160813336528521927926004924661819295530795148125680388188763876476902411674427471079834558825067073579517747798401486897750522097634175750106740278342536706198927482504227899573362916556972126153306017496735274316950673119669367848830628228916565066833189345335428022999948832171975995288469627439544637298218856986379805052381834088301472613287106246096745718903528913860245525578172023909066964064268736693355353009436437524232869858525918723470115790613044229209146718463876097529237259368672908390363415750831905570036002635079604100789837315780747746022634867009803103238798391136764699449896992488117053605239056352434265247581049015445396692717768987902860580916113876114322289248999945348407085393187357317256165768731235449632473761300425291597570985809109218895203994835119917018834356691876572463544087840145034967125724596023021580914595227554008835544928936493253847361232661548473343302916160682341735833870604878916600191508124059882708774627677986619815100146367048964264396504415657497789235058612844103951574347187217132578303313221875543520501718639800692788382655502409267028636171568642298056676143477571787342169867989943083597915530106295435818731751079525669334225787404027350985319600931753495359391168250224493568412615847271858997671007034603383303103910436083444350863434599032655158558847982643570491394579276765192647491473300911041796321774154798907096544586089180284692674343532359005116617908835218576884374645935881066052672058953880824115556564166318628837698283074318064480503073732317872579552253292571478602984579896268660435264978713772220474222286747581658779641090243340947824583720668734330966591573972826102743105510499657228082743945919524751780650245689639809340993010899449082114281348318707936017395739523624163896228514093419158968018243094559243217365746732132772395316596438810998100153228690468172149729849054488017166513073585443546220463345862049761769434103421798313493387110877272829497177664832553493390143391368876066764389686684647217923855891233865218561913875922968099081814534123268273248984976652400478380386251248729380318113971799672630101254247668840080016211693080426272999266798610050695585852732526290915386764188673432869082928887944075290408515204795215254575258820476652738044797340834586129398088630808328309777329270346806607976682403139847984288983541132584272330298545478467024991034839405190245148070858580537876281382406060787136981241068473478999915053638640247636910403920020902002009455076215574760724706913260842530402375807188639946300240611935904481110397937621979887596210139484775609054849500798052985655922365822672982626302501713746501497498244064898729264460224324517458117353690077176896730932248422693000190308716324312007740110788135728643909124525176899072629291684858632579907646858114933073898605853713352933164831403700977092604299683472612088845959376959341428113711517456302061579572656024782627161605060302224725374674269146932464800103790300658698386888713459212497782177894111363770541520529874827063806953091594038226734951165882735969363369423595228782940036399921335296005203790055942328242081894921208580527989727957094310169232148519485432071094422106394748630853075785443771034338848920762254403199314936568683003431014991480450108161870739860455055092793995169869904953017147020793658848626904792340722194947817675360380582720825231657494422631401889033744493081238560385029977337150697557061023071401951307819010934460360254366035842679056396109737984668869320925153055335609650355051816920787455023968073382181655098353136413155893346058810403491971839477516772344952055410121168795777150122764599607503383078454017720389892269676967033567583915531040324815568712935659737907964962441110975657398179958414634959981468684078705275622367879877016304675309670674369473687004104049597472943892455463041791671409320886040411841195422078088925019712122331552700005566162403505541627468788019996087446068666030311318185608937095065237172408017444238355757218860632569390802579284339283506417834439073613775027227332183052573228243973338476757058806203307339520381589843969550055179895140709860221185856879353971247531048684994248754752063249032176811310426187626207008291283369601612404107995076347967500271225849020927303484826852415379017371380037937395698263372901961025855971413559612872433930866533044635040675645032463659441992921728720580269877548417100323510297738907517243686622173958013619493977877751503982646406249199189544551245996126187463623738601598554145243632292473014312564160822752992123618207691848554440873728353776774157721234751501604590389894157287473500062666423157909755408400354797283986830310739809393007119631579088542718578179860252210465424325156385164832220423303801426805672779225267111207465410453448729085896657447147598909360488056466021524004541678537053208025086085893475450579499622726244137444281714116402250859504624491216254114296946722622365384727861458431461415530775819247478174125699137322742981232271597437980401559094373558571265156055682612807185507426646989041554166171021831645022926690909506696671636456237349067707621366733640027843297793255655533617114320669791718033985939431244806225362600780986195051252402014355293470137402258285093398722360550197116316426110636601131350146798338823854468854794790631142525567290957136432602037611617559429777842003415187879168688571719952557872809044946673128182457136251706306736041874937425893280025324982379136617071948661809266542934234741403609900732639144603340156641275891482220744703806432598870610719258921189017963043125650180965409880502512148625207236471435408636942037040888317947979428152445740890962956358552672979037327946844670557523932648160170403440958658081824702943244497491017528132283124234571518068430219598023561285514029678240476608256513403021842972180885319384871690093954912761979687848294901964730591644722728855475648068995831200030511380397134058886054635118151882303623081999525435083641653712042573329705853115210386914425771782060081509705563758190383544663807070132555502221883827688511695514289622951116018292984902122073609858674631869550851268189895800176190368737125423028523584590962952620418054064110909046794812166509551184655017420831709585809129758032964252421160700595465348061659179207190614643668641503991532917551695340757507451647684313749421387958647927536093924672323141486811054646408886485395180621084546338847778684836416617931002053809996055203128861659057075141141781001243453095673993859493503356204036551255810936188434266318325347659135516842441106726783183298409876546609872927458542281518430270961106335844119603056264467265575501560068756469226985067943897658029790888140776758285025198883631948518281416370041461103818934667749190032362627932993996027697262965469135075970307490656061822484395458348937737508525281747168513126905082099955172215801095125151275620031823849869524841535951624902801817719351403406311324831554255731886437767352026059512569886186983255782477196020829623410051114626466041905748791090333984885395149320880305278022664908066864059085526236306077574622624769464461416839046828182716439971655624054554268249050282276152318817724653359254430149859316986717342827030197969177184615139810481380906618558581844022546156337205870656174156955061866039530355853350115105971579789199930350146564598858815430325945342607952501975922535745356768546289096944326490467771338080943721690768056654331562911320460904212540413456882229726603894510921364827010822126376858129250645104578909365948630515978354145158160863650939980638472969347768826994836818929166416630368120839597701466503727058538844249978554073104709550816702748372741436981654357457163753638058512540060008244264271798503690326845410071066855438680050652426979608187318304403497905385567173515554760668283223845448078687265567974229880564944927637270241796385007039825741135597731602231269404969718673121753157520012303117324445065120953105707719528490822310181133495912207308397825423071761565572277141246599327836762116293094250651493760484333015804559078812644280455714714744203018936212491273096740644015314648125750556754286973533301163359272893090576407235253222470327745762072381095995440511277426785669714818332575226281738957832257715856359029376374985720291875345665873050830899775161305452960799369554742510518390454409732410857752274969325824339586887425214217496402422333221695820954877187733574048918567978092006474319237657593146256741808730848579627052257688583247776212709374251526577184357627747845882018717593413580577956376547726403745691624214292508204008133668098340201216292705511134345816985943706829971417140723698742917743906141087697840957646746891404632316021474760056718851792976772248256013453852148007058862558743903748112173339273655471218204664438446819157073269772179165759693988057682759989355157465148650737051362408302436374291605253059833834450183601915841887439095269685139685700037610295094496312979953203292952606545503411024777540580424046662451488301525346048533844742135166193437607527584674218320015419397010077917884718503156146371984682925270036932602715990226904045474203359449997889172900981276387992921511723870283925583500521538808863289634293049184995981961040242373842933688315286166677012806310190673113568096400952482601494556048030359981151960468106034585093832339938293369347733286014550688806766273830490117347086596417072360899808312210557169671197203650352959852568112688990588794124685062479037465311862069468648391881463849134153666370920785923294001392700170542053778186137593188328401104994114973490942830832163781772932473547803046516295191858216183755129213474498398465768017305623491874978842700544509781504851186156458012415117631993426946928105587056456970331093958156459077068060241113522753591333535799574261753409446831900051253120564881432157261701169554352414039517553438097115784250458486060184778569411396028418523247374423183505269828276910107996910641037736615327842702698739266673357560087669594853973547504600178333352501829885812604906999347525670895151655800894036388818746804773091828807428389866509862942175790015014228913392666161012981313116148886998197346312729269526950127871083028732318328537689489312486795805097024069662873266184769490066595594853705825028239308850228062373957801762875316574123806836360023537432146654044553319247662138562978314156052522574175864188056012970535140009991166287553140806529846860876647804110286399081858075270049113841764825140006074971575599499758592919402682988467141074847594552941354006372972307320328084546984919084317597809453510123339508870827923371620975007112621197788449854162765199903513113449087354498286480667898344443594154565610486594767181863208030573913537035849930739499291933981132777053770760933569049028673527913250173062918665039969679714716846790206282388930007897668687871903165569986346736489449285532547644961136137932016650027909295185391646209733095176452678752223778989796059599756041648881801165343215878658656437756094580301602574118040991750851115950294053970890486282761182289382123095626859261801858526041149520361203043564337162682067454891545617374965903636925971600195702033581968858400279684451401503102848314375039374136904488445838039636498632074144763680715715038926589060905028381508052634612152713925838347319702732496214144252708891375462823294976368874957869543137314254869067902287548947043274406820687648999643548233407662198541544105425227885526022134368441034436613634354614458673178409243404858758217261096523380588941533182741963869230610219006480423859575104699753399884747219839424046548747490903245861527020065164602757896177214007409146846339743896730870600905196841653720969060836185881668835817504906130988965186208200928243671122870847274778039806709943366422161672405093449580350377685151970137088684390556555727901441090304625396118441799276981351125111521473017483316808678030834109938950225795367361641963488368478800009583392412125857307678927973964033433261074743881935729326954695723695341154129348367765148788120102248659268563487394893065882133846637016584896607139936039327782958544796407104472729409954119285725944516461428472994585462865444075391112663215271263503249359524019257696110911435898412851867035619112753275393325935277721787955121253735643425484645580694379315145604702901241224218272645507694410812427480950153096001032874189263205046145797584241937489259915987815199446445054112424491632351755346238157045374527183062794435310425676001999750902550015314495781463395329946764954934646173901788736533536326571637324455659839817055200643021395432039372437108367357423900435533399365894533501348470588549241980367839935927346163250656209554077640796123184328949947923577129506734110529143537850123857334926828050820719508160383746991161073829036470927839067729386489513992018715513459597925039727532313440248896273722358628226066902122898494240266170667548539025643864245343267315143093008791589568193732940985705600711032369713142756769474657492129766612947106436625545252289022507703860909013192925731197471710493592985826953625296093137271064271086420059423304975154135862862670971890771676461968838127498439132011492579410456118118764868621828064311399072011224882521792353024841336268187841868053068453701698135836381435341001281778541333569558920735422864793198753855919214011360672420839274711524798103426094017910646341833371211908225300446508739671715251743271281653164504233537020389387165747077074711704020848206295122610729051419191079766976402128218393883968034556097236298106076905341118240671061317495538923731198982848140933560583923258423252974986845747266459431371481545378686781279456848931002357131421257610825322797366233809270094165914047864976790911845428286490729354475986757057560607582084490345986124765158675680696578860018922094645719655967494185121685337667643753925823714894918857442210242524751052296214109781042237561560733913609757417286860956762098826934196279417086693371170375307503755797812410669927998266336825176987357824740628521100905570532213849070391735018522044627742527168994664001611580989366653283459432894758807836157343657752838220655845245452089760575224968007588689881266342835167884688341960364025610285072174076292184163501371698148755429491239047727610388778759975840598490632732366266300503226540752183324581027717483032894808930744588476579102129019965654653152028559032498591967337850359068816695730971457687929572626145955268379852621813930540552794118476959625348682160419673709546628770732227711304079673332167243829481894012614612025142235708469556885824835113378807893789192354837918521214199471393128252938142503987118024725155508383165742234772373275143613006751719341492106271372839825274003412415445574823703331294496549359450805701177709363132483714317455975965213984425372588691082611839882202648972576681497638416382233473348302205399049808645916149250427858811656452370083585817677487167959374419869946537007460239333100398315860501403275303028619540070258923070901540978597138716146859808228325123837966428370947556921835138159035652563225226030986663524615348570830571113929541895290733347085408428223635929369256594941289444600837672242656718510874914104002939437704606132445781092351429958894162320695192973770447284535379656874077233305346810661708117804163109885195960296311296704690780778854231584667004235153551291019484521545772758510835324350137060687757267293113897320780778854711356625929395663494393016759874244322228009768636500019615067952598826307152852567307543658356832699050342746847602275786083972598584882938390966057607698705636909853949559825152803766254047674415884325818670605678317848191438944592072165697975588514761079347840471752441047014965571157863395887684940069455121371932218775897342392765136024205944145295014406210991848827694860940009174980526341945686571294463593534702053753082645482595720140170167484537272548522502048266790962806397869722827585307930795912465928893038283408970542706780056330879761480865203708639227605670918466625793472517400090888517711859921115132150652543506340973702282897430613118932832063605603856099221588227306459433373976782601984497841884753077521365201267172574908469477740187918534239889089496719147437794793566251720934766803441348305609099175244569293932741073920728632494199937133160179789258267099144664057876909778986963745895508290707300541236204653644545754460084987085619569373686524699901563393808237582339280500467136183450386905175021571669407223933048714195786179756418734165281641329934935010377199492259298220464100438958232098337538965554630634818880682733960166135123439590597850436373811830670675897660426785845770302407645806192261985574052857939863527540031432973810024153197472445423869058279350627287747403554756084091682894277301242810851452612355840769464928423489718647085143682374498865663121649770278754819961058863681452320689001735708518653563074934535783184283092667402221234865592883738393991719323307078644621043613989782805555228265804062412180457263295800433694450845118518608657747480605914098926646972953862223647668666140081731398573291722679022511466675314869030908087556671474563768992207251359839689509110494154132425045925296399007832416540960145026464419288181411763521465078226666102126576468911611823344050553116168144035174411742382742358894623402106585369572583563769650357738531717378705521712139712687567034134129761245360599405538371471624955842476510867740222919117036326821839457988331613936521278241081631833476727510150664551123370049583932270570339461361108308881559483963853761642305091572419301672396958184882764956147489155075484594352229363035343978897592942068177848803118125861694834193006323715477844771810130188189920477777839367246871671887905931257349021294804346676733602807209956375817930704580482319192658926821467872674214225160781547152068524516479915898342925382218972974891113949710813709083902216607857367770183279730393548594923600693418235659393288680718830094184408302979786067788865539428226816514496020192882526225767986867046621983808779361913823743451323217569362156615538942839109920828453546926375282977209265160444020329867451421465893721174439555230248080090920341223786885209403302173876577286922210742138209795688357735233208161018830431963260613772292982570727843999611241054646125624783975236239068880538015402414142885734914786949575769004555364168031526939087150678446593862462847101648237696389079869046726094214898814559459792648631165118823622293780106043385398738279560624294328326299188156454872036851559449376025097460411114135680439632606266413365985635443758049387193349187613516147697311619074949144916714277178787881964146243065648934465132828445943594651052597456352926438104529875849210534430860820568157861647766646505606299650160939193947667662954166192298287786139188039742956962755610140101688665128887679187874958237452101626903956864736654564897457332822633545174109268802845520732654815622970072012699311323611130036708322616166251338850104332201377010609344102774931267791863930743820461467207060459989660267316192706996994743824152005050901826017720411710823340277671153590165243204146695868690986980790459710194853793399090320232690744001299850440605261983591146779848642569561366250495800964691867169503000059318657664140215259334366854839069409712467818501986425983867499400108171976027718964179752842248508621884123177665341182798982526110644037061554521372248827226753768628997471148471327768176355733029173967754912552326528864881799789087202938707585823804345394181094075288780542377387947444766777405759487228563417849826163362577062095749851704286095621746074757839136156461107083457326315241095364675768127399127518842560218262895052280792027812473629750430321356046500874810213378887451326486889039313507185560837730910791248449023561879325876325724807998922788081838590330145968889694402932803141474401735346016673935378762343630120578321532160046920122569753801914945349103674340900964914970755914508182847526123412337294590919780856747193289413490418208999224181655563970161508502782702231009921327635348825447389480797352945937710973149897833224235189784226370906988922716081852261614201197241189722332624860461999119498037168001763919452828843014979280453795725113446599939451602058163621322809966066694174612568590094696141480897117107171302903899223209466293114421245839588406024209253332103779188635944706359960388865482673317078982505179179513830232194630072656735260257734802394092631735716119092589790513138035020201910730533929721844226056128372381586761288312757882186573349300772997038261458889903469280215196288632827011823756118486580661673131344725354702957103633874215121688786839549409206243966779625286668167011064725727540151607103164687873974718386010649649856228055289519414828822674914464316633133655314293186289141445660480941154290969917579011564401586127549971306143263520259546363054861646239103483162558402939704284068670309353844419436637121341863221583889612361314061692656129936999732962376084542772386962712092083985569348028037812575562941287194387877567290615578034572993642777078375516795985602761754800683771965420594258440337213266501905458719098144276185454058515053515521718804615981544516779837785225839964055242530456273848137864450731374275900546509080931987467431269007118727589597191423608947089891875029022566959751064756297871813567927614553637203492233481742510897208253989915186810322273924709537086691491342042658853917880306095070230312916269082583228379566468205571582112658464265666515679396453947613375293824463454594689726723987291366923164805553543487402776341565789756521353628313344586858369746114209553192023359949548577426237087135100431580348980235244547779352064664522138858968683170598568213604093204111765157184204158092200123200882216301738052059639994089842632451494537817525133660296816207365571375989664115286977984628271849201272308044804668902465447717711586062775841416535802660560447803639862765025618561854377363518944120995839283167681363430791620504074846186855402358610072392329326117249003668299964253799026059848037593016319747320836467364497183758007699814586616800822380816212610797539750225623686835792865931374754575156238587634307342125935784755752979270857882693627931914858134255753589493460013423757004770886689970094739519353185008728584814618133852485527510745871773784455929829525124958282269697165931867000235376610064780223434495716346758858260719547333459843254804692176343906992556462080428327299198458081141842260949792737585969793155017235372872225206010700655598623006959068018862954363656875908724483496295611437625991129141106937156298251257229220510715002965447640878418969684095751734056421587524438179854461475039454467689537424681806297796127452761994106202714278437073295553722046486185145122509480104759030090063938034236819914516697666974550136221497691659693989420525968130123139735245806148666832549873061234993262368074999020648056238441254010427837717580589794086999556253609675253377171167873474358041702889151753660065404028469585431524402411040654375450196430032790811229495311192784257450123872195624826560516286114967019410982188672208625177171527328558124770730150251074302671613316702277399025429007869821762777581631124431497793389888170097295293492246235498248747709995221616053095321170723752922558292783120522821712488270895480685194614391757267339909965672760594767971364469400356959617344793996068688995283268541586259134900627109761296945107363148281705745191276504302345001260427854316232217786404500132536691631647191187642468012900435009802457464041049802875522017637719325907042788300624253621445283620701302259801070043504584209269919016222269740519214692184524757535390603488499664611447474940011226897667403858551990828567374277584579045947070146684422844259231144484812342199910060338732107184243969461684029325608867474208356601275903617109607352568274070984495707209619524597571049734776219570758127497272446516859828867601603286844408241533732235787422970248236171838888577409082570938262193522594411510258552768715091905752475430511583753412435224212190604192177510258318128362875843748516536739392439579587115541237124018897508153800767211647204269534156739041801336081817954543646037088822832458827133040937702019039990403004666446654580324341877719919815326558779946635147949434520867066795093885320533561778623584714057112673648502793566895289427118142287734541536058520584149195763840854628883260110613200064008158158910024592695356575136363261603372775287655237473887163765258022025405964612242241983742576364749181104375894108178514219718415124871853148703225669983306728525748138078507298320152295325685796220867724403471999528319128617253864148778829001290067632220280840711069882282124428862242181893313717611831148031443700726667525838446852717730970084136087958801779986358213269089939262917167665279918333340825971175435863613412915329347296615642706064772049754586168960070537548604949462634063629575580121439419871906597975688654139655662433520924147992260578368893093077743485680350301652489292745310484898525205148723702100485710861404425790355802221205150797534402343137188936829907352075828029929555333952757378287792087646887932023203846135356784078308127102791990125095033804910893442066489649572485823815344017345243794633767497685003502645598627769506424398067292053481802531394533642636436369914487581011762429252445812630678967859699376013295149948438933525731444178837367208821381347184278534034563523275832170449410430208990158965970482441894413764204185732949576566417823142645700977603388910376548989431241226143391441883043805070945872505298517950393579482135171774542742057680238716174075594023369234456504303860021190854188614799628936999078752407356327240713602583753758309188243672680414601338049350720107463515352305702388407727378204635063321078959803383515225757597349302829746322300482552182303529919298467244629857098862539992321086259386093783442084514879274651825725983523492677709237396254011851171550797378796369161967276746305804137242708067095964231349657713755337122029005917220303299811968965522187018852935578921334333184276039493077473349423187073004802726630935143207607752214606758441780883441849671397876491005223501888115789053019745459647077223979836390621090804849648589282540574092901546357975590331881779303181865739877516210210947063053631721606084922175019230777775859563094346419510457709288373038802498580908626794900465714736362235439844341132591056127573986515918781831376817954086929658837199078090244275726390722127819350462073988741258700448593028773236138290667626064199974197598224394304540280124362822175328532145888842423752304955402096277604835033288519979525696794591794869870892861549044240295352905010030926210730672370015050408052580947587274622383305322274702816571250232436782193558624047318999280550985431906429834670448258472717660825140134232343623113628690780613927029359282348075073290387816775100386686976343639664988161178463362741388943061058210554939516754623294421619925226938403309209848609942036740523909911631979395728690101894606919288473639612511848039045259141395783525826988488245892283842734626181767527009970320954837643010279151271948140930612989178722565577659327196866313230795622148727438887834237747505874482672697252678235785870064953643007825306691473472953916278156342722066346593946736576968091036266469130208379472830591456952292589976936462041356758299788771510001150108009644526012172743801140361579812871063388726301223690264985087406402048155798600671314940400808270074502062363312762052369913960465022823684979197561735657263816754731945065482478674626350216292346277102517508549993901897281631717617053869050430104913687963033945324670881573280485304134214976625930493322631245402403427929846316460143073672574270407815983646180607166696339117065547753984132055248117559737697029444826993516690378541039032843038559170722810968883066861847268388040532629065434904857653673864571002582223427586852020765905888622166344893250960954399259893196143022147082230492124146469242395732064813375463631309290292357638847296248671164059316139910537847253803471653239071820667380215654473196473663008190954509523228014281964443538990014210598300362487059289436143434544245950608367727326078345249167722694023030362139813303294839059629092322358917196467652728621923117134320897792897294485380978190942723311580993495327634788450036366619931347329383268563525387650242649556928826752476958393878044612682590707360873927067526428850937325092526566163696544231179105846813397294899565202644789336284991687845138568718035556297440205990129332569803197684894693402180127643383718712228735131148927966383109920529455763047455889815633959403351790906451225471300338507907537534731950553969683881900196756293119463711079248516794487909651751237094452766706452750700399362731019934420633611425647291703131147738692271245871414398382911808629181680522068254381268315950682194121522777031950796508851318230837672955621238203968391746322657299603959121769170096906649046589057781453582939994690053355885377471281878029822936414100365487895888257367591751533328138592747194281555697057246716269757595551687965962060538021418397588788659637186084603980694252170040822943377212132049424096122208821030735370809781499163816343349940562245369306594251389153946569825949268227521444770919873235515430329269017395755666368105719172663866222714796727817151139285442774420123182355460105580172843817133982547483899309826972825351143112141127763449159173591270044585126856155002038490110738751115657134081807392045446841636849950524974231294258802046093275955102341092050990851759997552981862355094184317852829020622996289987437187890835306807179982598530044568726834866214131950847528090832901662868984561083669177814179237182474593810587983159186293421008781748048839758594836646095464935647201639165754401835773299104439749134600156705865183116417048848820611973619832472011188867958707459036829773644486226731327104950476217639273006272688645610830593687236906879626808829492660017525092958526351247493577893463288394090760471878332640322185353612513374041272873707327077117065554177345395748038218722279997654799051946383938405049953693544934536161285872839675587656793405561002478942621899776189925353276337029949588513933623083983603505786690359304635888346936953369486707246527392905989392136058075268762671748290499345192322284525539880160217265378081989000841932991724965953969501615282230578799689291846902875821433835919777033524876690616060157639527847609137799760697414980315826304721518448678908386011110764389026810415380021558885566226469080075914278457549456094111240680697371474671757163561964079592459102017996978020866771184584048173132526832501161992422486906458630927554377898528249322107200754243253732945921603936593400882425769598109613536156888855573881934347708851809072450360089522485299006452109617408232896722191987277406589347807443779605299016766301776429354502509173510005752612310536606873574046721294491278697916496444229204622789421501423816230796916498493134064800811163761766818731042029216959867718284410153852980333792786955272397984272293614855006015763904405083051664711370549891956981542153483030012012507662863008371012653397416480592166243538611548358974290239860096091292156685707415179044081923586929225270241055690018241302982319987657105000706741681105500565449948796351524464696011408480638499742961615641080982193547293503995936184554634981841794946496341493503430268287259537819034319080446398061271653640241492776476470236593394477058474658773488956757304320965028898004705772563984684011000264953439032116499868906892585069795643485810623866718785308230765810310490725715572044982873784243277732675554725126339633020335923585810666031029412760719383096886102780113407964627945833454562118557679839457049134125832739734313046527192246704700890900339172491627262248960355441663587043709316660913411205384811734376217654773292094635399028073930307693079697426722829825927558981460955426533740748139332011035781741684479216089191625388359513846418855327863214904158435091012363975015902926808339636153239751610981423323876834461194482158276359641855134902162153191242835465371527073649620402731143437892360220335456996637289648361428233344806317776740287037392959470565845805857995723020596250243022282427642929432336429958116527762577699956072127531143827395170518939162237224462909181529012218309460208322438794578824530253730375511459611004847337087135168324319824971954738942672492675802062239140801450671568290973956959032359309695475390323123316655339271704820006616977238380896857174046888819779824642906959726722839154713689724921577589084490418557938894875217774507383316752982433656326736513193220799315079588563279295335385048871193428502736701075831445266090501242024795557642869865657100294340674985753695157207385630198178580892750602997508122902844198774418275725869843357202882734011422435024428645544742515260083215054114983623206332181703964637560499362460184070559943047759195877893021672685869156903144473218066557458251855862685965208661454612364620554537820141204465924978584149495203606859075803506161242199684480228263590619714892534166476203491381817237542246682135489144308422050053468506316591625943110458198744849825715879164783860491659525091281724928960909895101723211692984959874820210507954917608339299664052226277913905635904698326350043349229873453270722371704286269662274847902605804900250942771305090884917677005500290321613638428600398998045298797466600441879180567834267313634976646585163417535410488120265482408171253223473186163215739395554623034124793564898593573384239195380650936581468168703486551627939257433493557655542349928925008785821516299932081621136871194948401024764091365648922855117869112617177813797396875023193395743569514135958644503105671538367363234332874341000894653409434367267162987240028295952511536538373977665065900076386822787755563013645031348201605548364546425189515731457885918121013125872030363536615573969554526548911794951066462021639352380287191043907687677611082533879753500921244504074331620557601000612496877031349237759377284324192470905773454401021409244009137960319049938543746733791870599941497662902170714417218843282145847011102230267722938549324661031089037748264960013268345750977988306537147765703770708321711635046782683648406546083426773174640373701054929494464466823768341817005471037108531777963364041347936960706339682864529394649729027235966798114803182371132045072517909338242567090328666534817851971712667931422466355461936490507259560554049128102268375024957123823668195417860238154033191900802138030115970701599799781811542069141597757295094896748171282222008418034603467901545170509584017758774883767297627404324240511230692161230721658175376217175714120556267673314420315864718830465014188311636901790599548118862786737191600978029065687007565849644552904507037018312542991621688056556783463972784545192900600398202913235688318484685449719981074498073089055365405789517950478934402121631405873432286824190371793325298396036331352006928864157603437832105960735713722524005210917527645189582325864860278226273447958586117573190972739229675956782772357963219569435293466985631434853341384187059421926442022983855291272953496021103611605293070333586289632309217254885928015020388856526519465166336684443266861103688870779801690611337004551793359193750227240339490469947665233610121176750587715144213243801033615829247457635516996824010858385383704696619178779203060471710491840551601966674194343910465654481499233697637946043922040359513034891194725512734005249646207479910946125520634850316248865348470486823845781935639386761071980434680101606324928397547605766136020035683918383353975074637694594325147983983774849934791184428910606998196536612421159830582533340559475343180036562442565246388984253918344004266508634785128635798044032354815387504796467148543175974525371280495722842283124690965779063552037756018983869125693104030182206167251424804803571678314667417377567332115230928915302374247334284682005772051718197539570155233527871739740667295735117568447871271875026425789685717077087627481073469398861534976105997618393278821531893049636338507595174553340809592896424696758568421538524930195348484574143102254261846842212414019322510243889882695224760004884987410059080935746149539484479009689394173558003131313856643968412438665516091648911271455936352478372881060634765608090518933194044313139949966898829363769918506762214571615742432352153112268245134753213194626808439462900851595036100885034781824792212600242353097260717025295201092586895058081115682387166904763898338873295039609743281522463937171591066416097459334187451333905224935545287546985022080124970611481460890557492753565320505698528523205051245409564251299337751008026208329598583858042471571737484662885241044645301807713909690322448706748926194204650080061356077180142626077236274149541528063695690992092928477105729511821389223304638636756218509981073649785980345233696469683237696783147907863091944033011519353904758987849288301038092248325488417694443804598541577985664587606496919157641452796997035232628309285269396079711672127477808008927438471743089150072036440438644272732016963001571399886906285655985011478716064652596971477193197432232019399801633530692341359905956697946324770552923582306279430002722821383921515841230495194767555906086802303668987812137951911209832941724611697426739403283885769309383773705708586278577183540553099090180583140830930397369396800263967630099150209200652102773137078090846738491593783345348077064207320423296403844585028709701484663817263559328538546193989719564945819080937576104742750404904904924280929996381880880081868347371465339876603862601805358985975614425909041243530850547972889375234135928431633013376295998815443426009269492001192225890992892929018886647539423106260510657391308872037384808077653749890523151358146601708536090712479815964034079449267937004798111257611264747719504191286867228330565286650729324062739609568863607929425047871432105287703738986099836111624104220516358384346724188404925361557313385787362017134456084366787567397378056972253468368467997215596200201090184209272485592533376397887043305696315555224968772263937383474734784040274649682579292014802934798851996274381669834080261190755650171748566907256356011922754138130221236556439204479240654593616282318798520888520053671583428021481680291285257828992594991801003224256976316912459991959372228866928852211976004226188150709939375133024850748940514741407922553996926033556511460621061653978929350674236553992498490182344635345038706329988743651096178124164954193717261222616180756344306658714441551814672658491946341338146041472239993762120892585672563980382448779079708461964062582462508348002660113334371542724665429221722023144936794591118587247335935227641377454981987501853877811342011881666876062361836716212482400084079195022851342872083532868768535245119102652767825799632144882841781088246241003033780025618721749549361069122179486643614126612790566223014888323271896364528928787453080496612680164863031911490864221135912184852668095113563935836668698093613982469428163511762238010048849609303090985431606706988897236445579829685972028766213171805755913384237641476206886294305230880397976703843394213100742384655534541771298245213569116197295396995489524723603145223838512664789659006699401141880180226788121382508762710791324372861496704798344262958263145229031122714987963217635747756857922244553115291929863668985701626990315481387663414970123312918492225581187485726763401740665879823976086418411428469899177326095119400462228015549973473751708166548284886006555744717424856931685877201097756047112395613569855551728358864932784855373677529885557914318923517538796647569687895705434214473209449165978603246529933492735544697078963467200860239903417116479424753675467500980996704890258575974667134924761035245524892007468636040072349076568555051051342719340880035888148067147537811618500775844623029610038223239391189737071500093836947374688093951231937783491243025031453487101609254986035832366938176033436079408841476659420550354459302585695352858230328425368952086778756348937854102978966556481578819374574251335853944738958560616018506616131894512551307147958498805248494414475337450203723511003112593109317507043578382936017683102368044101083184523580275264191732361957518356211449926819181957895771268238144172059388695793849705842977550731833078949178883194920652632092699328197375532215683422063305950402000323543365884207868678378718418487226726539267298232475009665027425968155202248368091251105736806414055400910198106435631789755596645442088434566095635408395480667573808013480811589427311419979292862870029110166839909166840769771249527322871932561425889670299486762289962296758966713160864337521005313284950310714050963716217835830154172750624212764162371062861716520971481741184166116442084856333924990873829795977167003694237058305037834797889385858867552667125785568611911122691989799268761765218087612160268099900698974628645731327894172973819512838184492150425563366147034305974188757371832895215794804051258036271397476867615366814474062017736679034920378534144409708928427223009999807106833394156197421542320886573277810896928223677446688851175391952214554764366131512663426790170058308433083648003097142582232421033160379504183692467386253821395774870137672903267412377584307826939328947608820784998940066851210916753118975585463079745171178263248841314176111909174997851791233384154213181844197916133208061495506847565391494848296692775301040361345906146754045793204966569648345057470111698964170462872741524448512312473031502125555016401127823297767147057107430873131355121779824324037881514612738038496718825200985455000412594955267148568817462773603416910783485466567187893624553872818571861192508183332339062395597719504646231053307437671314616657032310717086506908940883887517090147387930658951962873274816328062460219776061141297839826807735802225818542869320123654683759304658593772375948151172234797709298552701714566777334763587947453336676144913580952345048282064317005080437436268342083927785026459773777217206507572343545909663498631512558443415117118091945676389036018205657297135748349719904849496188022783170682987189852916254247021524540306554425293525355032577645571598569851793224097098073479658135668456163282204364635477659272165186135189546616421036914384950198818059127552100271431526423145161948399006104229930108170590936059003217560399484029786190330570980513820841620163950577979084058362434968945976649366961069895058627246630889465640481047118124563138176373374206664718670221101774390799911012584627425819627824864881452642162190088147826178600411250222661316421300955084124661890740358239515545278677736861034781597636068747533772205295698015059687896961882779562531405423821964573817021012591666039017408464053981199766782042376325051277735121188203684300116821734836875442945496574867519665169000746487261842665718224156072269885928285069831255346494564690290757277331593230166680029036793354121579761312771855260348932929981598272337450013466207673845094888526848239470943907175050896857323272685957635858556762483596398856241651101757310961139008460943571130491905827631401752893736051651992009140823780293149099776844859397634587944082457058645864093720889788507889103979454785565744179587829816004723992948998281782394290336894873393771422660034566776357940196398228338880494280736618058836444324767652342959625628551065560521974306291354500152569976097727248482906781353822423303347705141192863753454758200603615426176480771653327487352288765654102448684364296444182132540975706092158873640439755078493424786925135392632083903557838322629265642414561639557235831339177519914614138910181648623482751792494696032748967529416949207529763402335172172554687527686907930564528954238078082730862741121228526683577243406537532903980879849217285358127531185520867638472433215271948144505626228389190478337269867151405031784731114211170547704194772813057210929747568541276148613818779491728290748933736808882871108850608751479672782582778447878586243283334452580691518801554945198958268442539039418797783383340840409933793042156030367463337277006490592766384594600078361000866287960210866449145064241168831627692666794446099350403740884444002906443015174968321229044971370108390472325906925709645265186243583963152096881306443543669475045325690557377765718725157114753680885861067208417610399347613692346699953989257758220219735697034582200250003976424651709001846398848792825314047693581328043579947899264801169695740525427329688627339148964095688923451837779110058080547050213138825416197077909492793967057148948488137385929782921875695775406749718811267014071843903699076129066437643687745472750686640845082270728837913177563416799037371604216379194259415585487954029826507143553001637568810189769636168382376614659048555781836962458922128188178600988538665008033974396827497097114079690936757630191305399909300520814811388799443280348552513381382131478817171536180125399089917743177852650580928960072418279183532899859372949696209890106323584743809405804073609410533684996392245938293429310171642751969220037163912652600205938841442978075186347380617396839500111485744406510224808787967703573238171987051946850816138079698107956162599819809618021266460192605146960701369342199366308667390657986472175650602232002241705482119991701765474416320338976697218492336372661960198417721111101096718548926009616644712106585271357378719347758467850002088776472756148935911514092619911157873769491673581984058024490727800059046040192917974147771502894738109733651333694766960627050341023279867427875265177122371811262940002055204366198211172330503081224176152465045396382325983342441934908324280921781534148548326835690629569632131458089344517745471627548726138113632088467073834501102714966697219614561571431989160529999338706177950287087474149703737933997989349696014091441028264851239806705731287233691303289220712497845117560682892989789167894081540575382604147371957558143503378016671595872772495074204869431915333997870542995856868789227838022786607949135518350666413147917468282669025314778041995084105051373925724308410601583120879937636642038578967194418093289115885296412801952058138075163804463434010819746368948693502872388525737880397409237263311021967433950906029286449145656152389072155360454952685593463805800676102084009328296612444571225337563544825326606712976329015831942040753468361670650006184515202529844155695273658301698351776768648167409704508880799423107388357876018488921891198464989078505418867194010982191175768906141097692371551098836637330984019570173055088660300661029097286359311645270304434676903273780868313641923890247750170680395339601592215879689468057435563625297472061036252838452139779072332603456138814784876352801721515193623497290362845745868163954995578001178027946059652418912941225268430144859188887520156431120013520475643113801595360264417851531272417826174873090537463830474873873755440735334461411800860828556228116477012238201235578955650816575287956212543078914563865900026706513352699572000212943979659460319388598012766674864955544452128248979756019780452292801131867251843033776408260333002521251269368784321413970476733019450854605078307809251425477198142920483498027180347700249423225858686136711174631164504897506636243153183932226211039015948644872498901769995697702603078450597392837689748430837277621899521440707056500857653955629020555399224257731918187838102134730942285391355748026129268934923519711310988107533325118503751688049631250890443827037772204643041070249112160211916031222556497500492640813367962755140358470166024823000758292710717574543548379600324413741068521917867973806310615805972502012941035395253040098692600174570408373403417031459808031870834344841659935283342125916911443681055814992965499903617253778792738219335149839705781475866240025215841771069604414207081280506753706734768945484365749558226710426782061302896968554661613348010903248526805303004589387131719950637618633212357224719837547808515653511939582211797172264981206889250201306412189591286923368621108283410604553604599648559368416473884697469731199533851461891901214682450620039579024020858080213368252736776256402196423609279295797421234285822849917312159719002775347886120008329383792906341386302075095452524017526749801055357773179550943362842513663210172001544230401123905168455494840605058969174721039893425233102394418254062818823476528572742924444314205445083592165307306630263617857985921088382154532056140930654060922995649031571517520237248447492149089003972374684184134130121550750546802023866159555608214172434769486122022265258900833286012244280835809621598136940309907544085176562855276881137218661772257195842378547093404816746154965991194665593775598839232387555710038158265373933255655241982715465828718387363169469594361328810745973624534595723899735164759463469913110358770342638949143055760835822111462182138248023819468891586208097818129542198305919847997449824522473521268223908300849684454363559853557991195858942182420853470409013456582747886642134764366549011856503534329830446529264941009142099303463416348763684573525036253305435960068218522801606733326357280454792504362803906227374096569687596177297920763365725954966650955173386324591579229545515510788425478749850259316810257539740198554371458267733071559948731967983763316702129835643841368178789438154499817495810680250234774984144193386865522989997365209766016888126877401183921207459669438143318951877325396783431036688845267063468597537474478822823488979292446170111158940640649394578398348880092316300019882885926072871461033810457919901346357419058980826321312460713977606075023804183003635749214230436650276339558547803459034544828146736247307113656256182455919829718190360275092038023496228841180609567516286647054839404495403667067079944675125444955035790817067562081658641691086225318060400654071247925213517489952197014143115880942452371404524211380665244660970949115327332439699992216912285300413058332992984651345399269476584652110933664536967714095418291800867193929366689839658364304306583179696102289019010548046504224984899242415744486374633603090388858227586098798057885921635519998831347993048667888711831999345062360824667193939547613955740769329892724674497849772783924208155165884313267263634494088138067669575892525677391867773576640853302682261149580547008539615326797879696180811629179986868269670749808742599597466913924542449820133526966765368488683628093937033973169355881018336550626041265461854029304476248894347909593477934286140472084838267236020010150110277256049902912538213894932222983976328214083853335466962034893170481252550707342442767977918007774719699634104458221682509746157580394803086652451691688656121094965530655923555566539044966900218834654624084821856348081932724048932703479126096554989441977455416509369549151978658660702639700689806190150862988696903228425241944431705323481176026617267356357720142666075678208292250233325679592040700094221219672803092088615097400792527298149577697339001404421971528385989770097933212877045481099818097836456866162797275432303544400239544890017693179094542225186895439713849751182032041680144725020572380933625202022748689270233134541406457968041422096829675728669087560483274838348841029943663779065289564706916633414465916776668308300684954641106595715804420624434476059540964976600622715641729606509340539615091673268503657321371729642867881209786245461055215852227124541666577829944631636732312611948963966062404758775657060911119813608031773280182265268019218700330529363846739159042199354367021951368376200288055801328791540699665768720936663172965009279540330416874053548290229929175083278742771728317861046827301065152476197014734308161881142259813508922712732981153085134833326665996827580719216120785504049199776130193244373273717583528193855392850894397189296444581468325809541590253506339810959667724892399868903116622495017955854018707955094341366709481159293473347599714511276131764988887590350408920988768584577419403092218942115594288940564858786537723638511013583373934679356381922339500829070140735114820778167472774579359883399747716459836602042441618931307403178412148666566892667249262092105346806827998987111695989521706277242710951499596991516517760823339152659953789072510678776160154908957874724847235002694947585489498927673380344440339827321907790946365444960954800060005713586448021120761100032104804522561681784370080350722523867344040071859806070305768105188319356912791247378474852505581784674899645753113445965425962116712033387557660962915854692330817499747255859063802482383848027762899465219563314603392365697674989701172862507116462748856676507883877099116386045859086909986435652401124948010075992695449915451278990926914181951286256580309675250732443769261952352236281228166421756078587012144246731266090585033440681831793432794978351997573856946620109468933372312944464686160387962833924850927533398319570028353864656650834536597047830030784158657605760689477576212593970105066812539306391749136197449555395010289811218007879092545602622396362265361314104163195944899531739007029618138197095084906688051451593410569270620303270942425961287086600708276892343718572573993057945343028083565469630234236660107761739503240512511544664812705291377203549563658301840290173646723578946149731891169944796461170579979528587731989494928483997704651090318912348785638692552678181615389284261765005097062213187373004008275599331031539925805205283458898773495782513595438197557965213231612023317353931811940051956737642027367841308610418575761116165266003573744707949351841966470516910603707570769061829009327067089315938465811431610109795133044225412228023153676326160308054306330993489519539017383647793392204252526293479852916840155294477410898572970347092630424229542064069226015133462892089371249650566508980931017202772676614636505281456706526349624263067212960522645515689879505712277168756220944585428834400168276508505844205215674635536217344892437269514159208760641868526061250706769426752033137950800020678448903018612992946012996248348911565707467241045322391833959990065124944250748460753167519091521734574422070425244500558031561705019810908180212074425074899993444404751621374331327715307573055012519916267077027888629734836057921963982338824218498526016632417946149103010070781598076230067947843356735430436441987250377998736743935276675916867056909322005696329330418032242915921780370477710277818681348911930889170404286099686452535614100758301427284394213218485194986874781916045454881959403733550812450653768543685390776110556347326287657821526266395935708847436916982239467212329479482471828242290825542749616442761400090237916948335057188458590867124597710200647835322161519353472910552633867943193871273203493331878532264411792495292532615722986104456026047898845655240030178660242672753460050535263138599889360781088936095943948851955577133725900849342354200620324623108238863470826351484089455801826003202365329067873248944963614654563962606599309069034959806472717847944462604499916408213296774888250388197340887150999366884581677204988711760391766163759148880956694008123533866257969461654675515902094758511371323702563138695337656428305551072890443529917856879730524635550131475686582632245258211360520069815747197917949437772168783485407469412001051688171283558911551077896479399221948988582226909667156368539856113208407254161349980583549691412880037403781342020690932833817578262855800302464363628339277700531855993330950033430394619834086080721024229042380818262509308906681651847624586503034652045723545382159336009391203304835513050398200264007223416090603959834793983220043186175102464923631128153130610953334966297579508819718723492965547308075776153099206068378035940914738065397565473280004728277683384334851558743758423340600552879340885265753426677529063623928167541803211462161580918821442930150570422108005023213288515367996259371937873460705092036770255436528764671344244291366630642194768886609321097430086077437095921180959433559001533908817587110484365983095372191948246168836887250806254576434079244422691835525676719058344360576232862551555683291193120115373917030865068366288055412503236911359016945577231011758207585876499851623328470783118050118386713114473397287781459805793437620777326827758653163170366857182456502069872846379335019294697373357928899187283519727346300295708396382692245285155812770602938984671100350267661791633349904459375347497523536198869651500585454401753031062799028783175499618120085946816473511412379248481857267774661744621838499790634458285660634461706829409394490480802874515883676626658441619318192146345716252359252193290855524827800536632104439705838590599760855049206696766561007309405792864126049998766165049376334455601240409758673106180494516229117555789212289959598505881587499322627989012429036029463121224236915064098926216718704932868972645536557714060225341350580180026263747141152893249720998369668289002101690469042528892296259960682348991288661453965702678697520050406714937650500739858375699151668226486454362896712144859407085406424510403468408003889860306435883826025027173934565826707295931771568052385606503425870441795378470973360511436707099608580710918571767236727205308273850055285008419630552408390555527292082286837781063011841499377911358243440170196218700342034331980410027744858923927621917269401738350778313542158837568867462976324915938974387432886774319234920947236750858780978735362794769173941825554464261959823320858156549116070295851969433528141128928963193876557255398849492531231037577994967147212740175369796184533269018695325732339670109816865094105135473989837982882315139897651168753028399402292865080855078759742501980093418830419703464543696357332533990175862057754633638996368499554814212376432103167119257277192825222328588185488254149781106792689151584313440170286841293200049984691788733334110869961526511435047097630873194999209244803153700970573121751714571302809710434627801915284955784813547546161357763627493194505291211354471377371319323935813816545072188156814260684351334697828672893803809567066870945511401996429442835227401121982779600331903704475055536031494289325761023889256386811729304591875255243777305787538841914860677614378203401644016668749138313423722015841360542140062632105865039715462843746281843609270174444998231970073959045243750756968732568558919590980174647915033575826720745016389496388447295765436749508553976797319749752656435683046652668667284890526679649098551941115410644046788288399564257796017502274910397517915137979554893676390953881286438628728192372617384081883050080223858528451162673609865820303579787728911117814913808154450428119212643403331508955654334413836354851643633527304697707042901618430407008841265468684188264868724790254961119724486196331830419479098915752973654257593388461024980420420680434886381952188301184903850199758906389792208924557877960465363406206272118757902423740562381110064042208644902350212945970776112535998994446415637800391194400594279600690334395672053841120222288329699089247818916354085607588913802073692483996380632233807154595102661961869930765043215667382883879326315909301338230531658510577535652694561140824226173672442955672611308515052433319954123841158842647855904429390659186705311325871962378383848326205044016053539171776557791917142414895167965636438875502959327459005077245494912401363245921551788859769628396787945595555697526437079389171581389305473066425526863449962089418868779956897399742190451933069454475040724025647434438383682207200816049369451513695001457413110602510637176161002195180297927839977280621643428592943608727187864047735506990828123252724280569073916253642798255229221294717386747073956825394390469772673738286799082223144455670300848632215438806638677570735577744265755586961445345344028341471734610423760821974564396467166583054251036396529669471748904756036477960811742604690926527427081846326420115789391754241307214925091969614381710987285740474516810515997489026242226179731814421505575249938707185493051595859970270034396424393442328889913717397467071512916785700886188225254080976139761244946141819922859697170280652824018343207936664467311986124015343741206724003656868209789610852566429573191564418515804459332288405562030502768816222775279449596968830726368322592269422163438064616555827200670700882461897148608334887335626337058770728873912179597201625711785622728806834072829593675272645300773867737617701471412632740560509610759448125317619767960590732656268958327319563543827345733970938147036566013678657550373366356787283716947334337121516953295799298607456308664814851183721276354799870894983282154270545676082907764891348076664863898491045860548630972505370799334526925189759315967833069753369951330578572740094180254671549914404486211526179957851117540808876886439391720068075966138330285346174951025004409808506400698881333833143625717149455600830739854290119623232355371501811769031070250058000750047497517414628417422851848650387246319796931157262678181033527489931980060615656195008251418660347097504303234922859402656003727208789466403413895162157642765389213676739636398311062110483384328030053762944433284956988370481839953590697924696790530417578927483778802526380867041011482349504596302512074927331500835955899425700532156584452767429945649587139761482285568500189820256621821940723508515560416498312820272778474900487796956908980098902772457912138933357292295786368857585925506651388838644788253098899944744720037190944358216165756796305032433574611971717467013424028128353747459766885899559590465656929481555303560034684024785595336729243812636749017433048196269016566183122709401367646225496002017061226842158747216158916042293748417588927865580853885418031408852162402940393546029176388355170191660743977720395616470366605106862546777618362821821822112462133483830870185323335032442987801372368283333209695237255776260050332457444815264690245360536557544891655933408326947300496847739173314527678508635109529858511237090798608989026230638065684616516039934046154166564976274170660691602236753076510172923781284402170457100245931101391805062541620405170698758281740082639085876498950112211361882151451517636834744257561222480920148618326838131589253189528370564937522845035670891337683155618159918312193618096130650222951774001783328860799082577976440380725256417147419723483322177507217417725670261700595835434256122264382543725639654687522493070535840075494776894981622395659236676075206030195143136893702536897051596741168607611595288702773377207112829774719734145112746301392059563007888105782591946756894295250624505557476638640382556181739234601962080949117917045244592563398596752615955706231634616794243269404043063651575980521169126668674366026958531524262367427490926609598076166257681124132522517191865709148626458025878071273027823353317895023162707761103868997122289738739058361510116317240124660388257480922097502485299191222443527037334526938743287015638868692694807324369501358449391832836245987773188557289946909075093876923110714001456759674097887480488275861216052274367499332229727399588162422019288735606758207753451760439237900333316562318366783470597714846113102960122022376815631724692552253177768511837812650128448463490902037517612214070360350203306932528492040768984846693191380516195851259773527166762825567432181199229826079741848690052900723048277270407005229149805521338663664440294328431664821062052922767977007216202676803564540560701787367531002717946125991877187888899684662362916999552143087724705292914302826468317529549031345856585857436410663984146879915941310696755966545486239193690609311338650756420555211418388756193988150207966585998314651779286481654598704853583001327382259633155036778209876863072588824976283856055416911243354744725308706543946706954694266772357055305734725187527876269806118721421836477184531270957888228294212733792704135834299000420572018021797091327344290973872913626415113760607229759932598950722296185254243592977009967029454551017288803567010164009704086166492011497551310442786104797724960949346321982820883106154202496767594665553857296251146652450528725289936719871167039881374149327585587973495294470405237373520605965386311708198571511614917502885754531450107629715988723799073186023069811524860249975782889606010278770437100022812463874143653132737427847284459321624909429762517340538746785939357348567247607806349007552375161785345820758647092813614495863189701489554932301038056231588392347555447471927479481195936010651099966852741522925955981078430254034977851229959754472854023355110263288674548909001829659131771642781058263468862374334785198046305164271850360498526764646261800804256904827591693371888294600692714458796422780304389793122127895272995165374286860761746414867554248506707810021207703505511762652309880478284169049777447485964353513152896991683814086731356622677390604720360846032993331515052451423687520687969758786736809330396393745301991214575902709845363438235569969345491709907107661050319284547339276183747746264763942682925839172787911352432005450934674456693217509583655024448634594926907049478726527897249734438471165413623531873736861576765193412953357268695495289593299138202251316028405556221399247434100828986201183951464375996912138516342450596583701869666733324110511716459471154199984794261989157861942696892442599099626518936895209530040977714267695491622328828883865304397841030197089422263584278076554030046818373628177845795389499303366611322288359174346407009338954000929381420981164674522769345174290540295506368554589588792464010061246983887805145136872571528659133773839978983124493869500586147109303925938211082071284670274999483797769824799014452968114723419486562545456663018433924288386179029932175720178717481670593292633902750693629970297859072309833278961518962542092005870005124229376541489212260616564768229904858088047356254399418529821842010209481688863425839909111287999620837722389642459667223936368673784211017702191888615434277672739611792960567879566283329997344431323028540160658246610060239675076634724242758318822132282881494510904698451253733137737581941417102817879733799547435928928054578699272933698477019242715269666639675882750042396577849814386977620003887521544548707694143974830555686318720612791437617529722014415924508423266806454606319374454098843167077967459373078628110116231680743879279122396140544988766387252248922399475943824110628600179562151786795206135551787533907100625510200807981050247651991932035659206394813823806970603994421277624369239522676045564692819558040340061276593265655276310837302753013600094696275813668378195854052273582422228540335824143661734671975613010683703609864783582269475329908469179363880764719561413870072579886994582940032172611476124362605417006208201248479106682590099586816360020713214085734848959727687659843153992429397220481313963150753899614059164355995138019894237430160811764603288613994367804090513965999639392677827566597346572541098407940673409572078386634843340843112511397514915977454166760712384221047467214982818951901292634059430728170775401517764048669931435101284266634250802485429515870282282061867008947168885220518812925099274100920330947254518523369228035766015552450515421585371002005353689362964695762433283263239937571918545610173538251532476662368792410247102782838313036604599216286100050165085543309675897238708188820057542429965964515120479925876212070722534906496689746280086221358261246224168604887862096688320977715416528797526230808484375955206801764462518770464358024850466357022990187254213753002004188932810925644643119987720167650910773981027584416693651192933145522753036256355699739155571076891892048968568119738933959534371044433274139436007224852020004729062171313035436574106531860086418491106145725885182656273490703698384105952615759551399340854063598439933793482353907839695112500297774620685275963120121842903974572006894735349352618646769979062238811520195807177224392918920042458948997764294976924117209667020283311865606810826485836043069404603479676746266259897393773938137157595799077170877328709428925823519536827640994091061121292291266748382830236680238960055011616158625397714172697021241661056247592368427980185623272696428912834922119618942322528014488051227964585975693498455375384419189192501948304147384563093021077357042972611963440834503663857742080881744022675912600053383012674142096030408572157082422815908932822759065598951720328766049608708664993263663897360084959349036159113606950972908510559799284456103589231615020780077135992178188144224916752678546954214542262302905388247733221754337680967290916802045121382678323097004367447108233404407573552611642410602519192834239993054735404448213147859632156467373472199163308129465251938406989792282975960918724277131337266435595158440283759311686145383781013590062990803325473851438999847140405345172113795215379481057288383432456062875992971169201123414263775722184855154793559114393294910326918885468579234276994917685469861787476409767433650607458197227486623351460227019932802368291924716942447218434659842421578748730308355101121714327926970479656795162748510701368141493761849616480478558246867375387141295783969433609859520666047983261019045516275867773476263871706673232456226607559224007197713549025495500882370566044331104702747220216572396092968067023522233654667049370247346359796426799171269747102548467118230895499252849091891938935873117546429909614727967582486613706138318361742499302447063176002749907180351996130143027400879838342307899054919960322536444836718577791071215782473207016452782297658832909497212073351380459026923770915103449124966229650984987306467118674297289615428535819789814521298018274172712435301319082941662728880387140003441824323707417822521887261517608995005365962319280720175081139159456898459663082957400102989595952524699637250204679211401048512288942710801776834450744573620626583465510956935466564564065913346547987020363360124166689465841464442331253780432456109971661323228982484644836664787759517810102647769718595371554003981096756116491427752500602613407647133644120408830322956223286293379290643627665472163086601075897770292674062602925197406155464299543993218700489242715330954262592418397313096979358057820731559153384604329443720537653591856248636180827813476280769009362985749800247604780515837879733523786811683104668100770891470590843451875565669789511741223047599291144391308247202132761126191108411848436708086943315420000064043207038325229317011393856145115259084140059230999181594835688469164118175950462689306910203922767969628033906119606848351915439791867291507804866716110952035650104877004032883360952373063398713526482565633846712305781129998703410468208145179834823617963156278577015064825615782833074827223115255528996463021134143922452249088240306067827653932307735041894419799410679186847539144364055779961538844349821458507338718231994133930844400987817885559318917056414061002480438988910349634598966537848613345225336501778104265755505800061186001368216384654160721546271092147867824357981345653169590623482388403826690281137281198742866799862598102910603596255912037956640676987120324632683686350027783629830543664932596025559726906675033899383159137862265930689259713684605129117443486766549440634992403488493790050477521818975588644542841128729136230310975990465994870058907831426406833833489247958817783785569664057566218080639970014577066933510313039725594519606503198954911903218294381437467813935629926614602422074094449036574447812201982657578283716341239682104088442621318137243452169575502365196258723644646634322436213547341229833876792346711141607287940727845875840888972314063791638232493604468596038472863475083979261117775086861150361585519782962541974557691702106591800657741652225656689284903726206089156337902935982065321374948667148189048751383418932213079027515185147303252968429768614723704345149710248415073975144383688003205381324625682378968029620408723860977958292012058976047729935030932889033852665614296569967113498148019246145393735802325712534295663910906792130393849839245576536235530843000280662473819203178289145112425189389539185248310205669934808539475596490444224935249311289608973493169327406740290506901712659687348621596065193871711579758254708549015017102971482590978632495084675856583300175371892750864641513120088938952972175895787730448266287249713427268099974946747947885381893770644154176089371540982263280619160761530848643366618183885199180210689124348295265377204913022107190196670522665885712161713246790701473522789541728498335843720375453667991145471749030375917498302653164154978366293688024816403964388215361777179225336295076826742260405849966047219513796881105702380107307951621521951120421107408576266293976383763486418006188963346703149275349631198465564953727185407746983018641713653277643755769060193969837284702473853364493352245589148255428831166730604164546432244124345041143991430937849238488926443608731106622652656140018662677422902059801783334317809933853199207842290701565409209180107300250537118365004583413473079028126911950223743123288180416187857220991058284681534902952941951758275657267076073394746671815508411733131129388773733167013815810229146414279915802776840067359804931129130227499316701502775541323947415461333961574687842712708929770501989126052621323330888672190800870726120108454135322286822969713105362756571347043521093380819173684804408882585199690133816530207625039629525888811697051980333581983854130406232588528972225254305239148824800478834411662537815286921577528006053274498932025383842713463324537247497264968059357038179027606526969441909483028630261193811676626767185453216023847031358297257741497228436193873247756527294643208894390476301728750313594475308135928475059443671262033320272113748388389362913726235302182370907729403730085152130516261611669472060165138063341790066137921907466881826669579157422949250291419547188162856056089550012614485661996081028401780629887313514529508673967844639343851843547631295566804437157144198583418575892593079044172904630650853533091279259892428265477361696639482007020039858393279655197518972755287695140484193707158990599917376391981143126511043898744587651329965583304207997628360836725430312777977655773392991365593373809357290693615644887168220322724464397952405944705230703258441526819848768932320628840040642337879884956447080743465831753008949177214299453386581037345827146995159818099597755993143181984422041280687768092911869891285024380787874123640853803792513865621141833513627662038795143436751962577415361157316184336819876574306392143131969052894176212314922731167540247723524098256209593764885658044436386200295872294206646033728362773640860564147626899053798081912754001572376600437812209521149972379483003579314509053022808116523827735729939870339372516825449533302217007392287379311185715118613889365080815728773894642652509438842958246585472566356943710425157801013587046352587904148195877827897666538717848613713270412133147866426778541215612228342335389363862042919323660473765434560913239833415817592853751423385734868960005294563779964241805045648820471257158436480989979639072035495972599770363740584158634782506897745305286153969487653343069290199894872551196268100677526397929288828573413204680888352820301285632483776593628369103407702273460318264339676750543091529170688278640328577855609611083082678433286454415552832288988184807908261134143903067175783910291210057704922052740816328438951883892899218495115962825078188856069382922140559088402464159636167205748502271853814582493274322599586527739091429558404933494367420202771518323662460895762290959934331246503474402537790285405173611025231276679797165088793906976400149974198960298412722745434529088856619608095745001371226818154230750305958843074624974332301724982947371341100582412106070909222509743891122116413923488746477004712460479149345622472216846160584021881933447567921459573685495307618866496400227068755087174805324096540967622137568564769710876336117912727078959977196303365702690744991110471322681227722176389739536965010793179111798571555811775462654248230220418166724274736251263544234701561439690347161089656236373769717128458056436475432724900204571115642962285787539453888069466337220994895799099925805772821761153940569178013545450272439100339063942059280653368937545999116607698433653728767337518323672089013699567061502225920761903110892911218122453164119971025130749058949568685161497480502258308820114164944926761936173699859962990813403568895968143744280464350538442023882826666600403795441526011537005813528221739638270524015558548667648384318117894038695558785913795504512262208079243939950786110740661685002444564981424051448753641111693222544518067810763850045905235913260823152637957311664378639190504904773040117057385030301185360677373640483283926518829625328472069710471738117632239908999554729081815579825182558435358720948205097759864942446143448215533508133821912239078063428226853471867503564443060407417278172778780475517748085374744730237903638030641310977620623395465453068563661465437335183793974470212058499021649557766584568970876101902540595905609858055021201373405489877480561619634511865788239898490304316484763115309918239409701244825062613175882673312073815455311074809073161372325590166980994801979056592869151680796911433857327623299305998205400526991153095643271913831153068568400810047791974397233807885045154146885195086098681459029870152808425555908477180703087404364755104896623771991667531184722366355521551630265880923968760072868700991274771774423484252859327510789232859161376023803528767573861919392695863059783875800326065575390505413350263765129834567140049838225216652379646250077128842526273190209011494447558019584783671876590060157824337763344606389372951736686170900967999654554771557632344672304455441316119204420160085124904776443728852852952813736218302641996335868554266848275145837216606419055462153376237928200155990500203072742370669172389690961724921307066385623991747316104379716977042560472275812780627682306992918519408598492373639568025045153681824861559383319540546679088958626086552032050086967635529289420109678240165710931270583481163797456293878130883699703451477186509682765677254372031139381528881249083676686445070300498281351185019537663050900605353916369099128023044453844285330004720145924919441719173541753613929071485913027445003367401410013353828109973832830516634475684634419346191303812414660306528137079121025827417008769266461530482486748109316110255741226949557534633314035613511909890505450995717237952858052490679668183554783882157327900759185368315314786001540222420551012739922012006839517643192582767295690032960519536485490021007150839342158201284187879857878869641542548167032923415530384815450882697999149645016012909191743815904361073952628590009662219833818852365440976910987752105356120999401720627042298368362986055677736162664723448539455313540827863556767922212549835786510565067555986674300859147479339226070685076248143734023659519655998532878679363304818992872787141440653689706214564279426092848963522977447662521311653951195886731290278427259533306108112339832146625987392631871687644277294168866350525034870130185101432412355634990318806926472632971908944871228707653554598024600980579515236573268027307003840526759686890378486657165736872668687828591097160619285559610805866946894917058288979378028028137350704494567296428294045250174854237366362303706362682977573421711066984679465775023719143318931184274314274134652037306428938888695872741355482886568143824039506674330264350478769018102596459912483426302623805097507157847500363992538797902698364070112645360531960894324703840739705324422801550892178888404804287237990839614859310063046886075323025049074707413189953322805125692546566656894112005640836752190835482694227725971516771181921466592143977272342770041688871533926746161810238311996217812644639946828104811332325715122467535783305979479335643553500021069858832705839940639943268942829530019784554714048304168212788191127587544194493956607285963435117901643056426141332891648463815588838126835566517875356266298087075270572273490016966537459126093240669221134339879796746566925408368152369986974510513657531419275747109504436229441549262126850039903229883380894386558821067774694211356375685121666523217667631414385308314995562515688562204947778782593146648300646930016175164148337760269739068616648104262240856150990171606643227441173516348093218107899370719936129334653625641695907504535471904338583749496594630190894645346536327762559605711628597668959364872693130566114415302192063303899999767189246957219759108578027435382730373305531671066686695579079055789265338750633352121626526479030425266482787372966432058975804862809868418559115007248143972252496402565762732526086201234419827808763397368656266638709007954343996343846572302081712494267082631201821101903430180779189554361417972856019940894462876252265796824582411727340812092619236735003123336273397102981968353218913365664395847000941066958568828892711168415197244220418792699506980432607112890054247211415589850426057910948288293078528383931406789426052760322714253519344937624984577104739463469311112077821292747247908997278597292947829169151285734866998337539422893261148289496315740223865721810482192521766965015252692683770693424587220712676377092136694330171399245462292152777589583117755274510203512939352001403180879315845026250313855399166250839890101888798808006154003165361214219936556075324072417312363893390331914263255524972201837249448721706379518608624712727892953357500123046780102114070246361404011574137943268325595576512394963656202186936497229173702691167909622982086653554734266393702086487666386462163125862054497131615194805930119617200293390924457147122680455331582910306007049083842183835245080171818278668592120730166345111363587907140284697716939494919608227195940059414948005797620017419910187744277854987945787714347581276753394491290332416009318441982310322784748045411653733827077011073345572580127227645626484194308116534549914183808296822528413658314603145603437015047110739290712579131389678821868409246722733258933218870547383503356705319695298825485471041254278632572653851524368813603624849714821651947540064721209694282363527922332101576352329652771627289705917980216747644333025790609871714862292614184346676929759262509740774546841008761555290874018918408470249648273700245583357437717441350713337324899278683036228461989112074299957102558327506127347167435500998740652193016069819458470258402351357338243445107235088244100724627273219879224434658336237314083923610829573014377657399260902563010241837023950015381764636982903901298440382739440451984887323614546274548183291530775302088664048769479771807737639339016540177366114028417756202108956989565177100133009012444816299196504913032005458580171743306588927485505014978434532584416614127959253014150010345731525791580089122115248368898607782209311371705501508554237649015570809111496550840931070605085741506375953473948259656053861959110884990770957727859602765377245803476559626972205754260614333417469687603255394085348264980620157363048676652821758717173931218634153309948542303736891969757004248735321810226477659833775512058484242785216095176387131302135272866402600037723911452650743243923777222194655721058089819720738329772055685417405676212668309260201821019529419790711695182814283625923944479868101729150259236872058296970654610820068961208088664997028269677996947694382249713758643742915863826101612265710678499919854117844932666986958264683454560821159392055155836370358739495136202043680510612952894552064534523703525641591044828335312777195613123093581477084777935934438584490733877583330007540053235969474657045329922902835352645550387890622776483583883051481472087535911547794096825769671576638268353975990392336613001222271183771795965588477909875615994816634831317693879400410000392254874906302473720438495888776042311059500848183234599888536476512800604343040831637340099278456793110723992934982586171377256789010781917599763603335855783708343202352988541077482699393663343903972319786700827474874401263495463246777739208303812700635149508686812344390641274741927732757227101473648169387249350308032817702292240008750967729173651764534476628928921785688500208997617276099088986884143776657491262652751375446704192322530808969556701704008746269913571752623275047500237854860455202301949068828104896146280308589078258194866827218435611591596996404222353462211816253781348883196602496129477271127459020742256257861105339733070799977133791966697992495518640636077305035188311659790938612030180778541190129576337345863229554523450643924544478136941850025838633350503603134057605714237849795438068556927132919612245584339036915433241598245334575672806034160507616724604427317945239685570101507192345855150809409101933808934538462037639106902965727320907113832484169495721077031420256512715253786107281350602411336590423325929991051166183012077386514610012500428414382316721244850764096663181320387153210341844398179288937199966186449721396085424226022508489210868499564972515103061964761259646999801734519917150497532845793408092624139425228066273979260104775049555662340166142301306854776718571849946295298086971818746645530073644592118985620828210829440027329111160292885525612585140072249807382401043124082276790879205841417213658824848220075369008263426125129394926153850539168435149485800418161028674993027766140643693857476605523084950321955651944794955644344282393102841859188046182489082376863761853937600534248378585349375228801843777106035947508560323338973731436616275506214934774638835082350154711933035982253123819689129502888787042959815226570604946626777623218764839363586997504103796861347201187686092132923099427852790553426076088387952700740728372667963478861257218129220244102167153737339062541483106494691654061839962704255730819440349699995926526233750778391197339439272672153866006804481327148796821976618075620645965306047588065529044820329177903518456352596176783286030843925855699798232463858014720718039260524521974174114921437514584814173654258615930269091162015718905218357263179095178449645427846925431506478330969595291016479518078644256331804550241955411857964058003860092431722306681038285445119029029032223833854717447927641455491717328671888167669329778373525899455319617377534483384469833758234124842802565811208730849133200154738111511394690751315802837178316897382972103454327697456034979219639481236409921858902537958651832516088482218143579239402012860847459321805125704124629285776458270625785673101554593020301381717563764653005397365588275312493255932855679842311209248468476346487141591408138208876224093646862535219429632252669480870614851752379934818380147002700592445688060187787107430862781553713819990356234111365850562787537634053121035299828370114027365278542070767129094290795570263781682672988388338024035597014006348109650082699009477531226422057575396173227613728348471054156209209304182258697801332201450958759347670801988985867453245231460285918804804960795382834414862546151185262676333831920226633659176618678667560108174773635489740952370387323337029525795174905918997130949519128998309058993537704538689697982453280570675662150975529093157381863714736481988530665965483629882407736285410283832232439572818965340897965582351748455758014713035277069972298459302458048520871828840186966647815594425050992394584939024894919407459051690876848871403940401886932583041734003099403335329496099598496026079557022501101732129491453516611662450920018890027344168021004759983721506616395444929209739384608833272827461291415896976002495552150778617725224296808223425189476795238674607410322619939270615999341441537286876912159431589725780981229688479198299271889021169974809578223556544749330056696581880449100298353906611694987854619258357619063415518987556523420375885882350301336547929782096263033759026128585598728324146754494137815169183682321577850426035304737540532985042938779619530620126370375761685806087845683992648180944627158982101861206533377818139702272512217013289188763060864194819224079017420958648635147034849088658025259967433380300671718147680373246463340989891762350423174615448982959712927065376931935892099564004903040462496792638610870745661883375485027343045776466172176187233284647471714708217918731769146814674112147281914825373388954329882062169269324602745598077685696895080765113234147259219446182289023216018125640326898810436327307099277698423726723253304074084820917357097951828195448184922214830947267516432588831421524716456050017640655471948061525349886223571827978324563227494155612991130117814664409135273123080592229355477396316404474514000754492818596328746123238877347081455538124305602219209908570873434562706782054798364756433016285684144753455671633756332236399682150104989288271145649721038169121957890753319415038956828962485666163172679320859343190378713421067411104716061039847439250726373401042173852081274486608162616604700744432997966263340240348272229191084607794166037186194718535969441617686105568818588797101465665770321877091691710205015474687342833095030035030312359637091320443828666076337114174804933525135862243074906200151920073067415665349998792322058826909728254686427830104241969080669100573753900064230871859282090732320215367069742491254761173417785799487285651684955301034255836284654456728501293154675463127921853965159688990133112709615127001201436620673097210844494879537637724149874751372371253213987003223578459630867716181619753239998716752054273066861712875138811028067362512588952911056419880234707130723019595793887245842380171607528627183399582576756950869981920237496159401092918491087845213461966345218283297258741500911354033740157375706422318280028598905668643190986746581857284980211964079509233052221808820265612065988718317132892311000127024391671422526763851325748982011107928294475476898783125847319126503195300482861662318169430027830680314466316552039953899301827387932718831397796266683983476227663685656644269250315126915777684853279983045543261220450770163035982331871124104116632272523346226093839313523993054670064187638965777871495222430311779214239865377388799238988118333915239143368886352513404817981008875587620834300043794318246479659975679895317827539666924514816257121350058454444711334820935683492838942942192741173914194955264024520274159135946097350241416139495575317481213945918473139092832382457043542409530975649161843648639384564637016554708880233267122554460611899525382233681627682500356974084059888925691733859936423105636434842341408078844504399672575481849797078610720994697345233395226389302887092828669087424945119818507595670554225786046963303141024269920264926418789511400166731001405298444693616102849308290709366588173606379347717458303774044462957745031688826214127983806060670304449870238484382545155429328615477913149881679247626463090397915062573725734465782554151764957433464657545054020589747363282144819410607294733836129739415312951865887663676334958481542877784149526487894156626663706443281336425774125330042889658953464271100110620874335610774693579968790916270886396504705570285590180436280610547437112071205658617986046121644300339391231157500595073851249349369917364631824541934419926371024182621514890637341374378596922297378854949573852438250034458249778841801175266501294186454220007744286561727853077061725787930694900490281430305559973794287726769480933205328559499921007566981135967667713653206394705080298276472441365024482639604268329500494563639469911732480266257190163817550365808799632396739411854428074529080160529205024554926165593701174969620922813629894466397902476356530454589126065926446912663094033212503579576076261283212025988688638503980543640461986291994838300555249885547756295828159350679787789068040172955335200629644355649219118091572672285274514117284402474897729474462757028706294805467058775793709567237333367411022012918841593229600016674394610569260493019325658709194257283446087983110343430436630185233070123249249045689122138202890248681742763718412097495422086067293625600829463351495083705532799295125599957223212286481601298909254122901625161016323285489226221567712025875894984648982040337023183972116533166125120814504956034846296429256375965081456703676975465269022891297779367594580366648967939099818765789922160142228245581986298910549486937872545698589072012508072724814159118332046279031716116193543936426977419778037035511194629403290107821634172484281900533102217651849538646099003600565043348237972395513250236098771142861353772127229691265407567498602523320357633307090290306983807155237655599731228640427062693717839096324690256699674349359596533758636620561020105178342020538545421905320054656521454111318771625221436366551503007586493599083651270380480759085895581292993340764553325124848339308160008788089774315017910858507234366940397066748957327254936239928961359756416486593863767713801182437385492987971080140186693591808930930421924998369308724717897964956845264707776817065776490718693001249411047995062118972819023873067586747438581562520695662725922285239062632006308769401717597246014214520865137537700602964572287702803344246786080571195482797445553640910071528798782852626864272391146742371107817268393107851883991824491174736919308082180908300419329957242857754130980827141092517405775779128586970613137807012488237805760326224357111276575929538961854506867845281073434263392072151460284307050270468142117938702794630531336521149195320472708430373983994977574209904529733814829868245668024005111592498465568329751158331338363032168194061157163026364182415085657422724271464007892369072434722784485698696705062184138479390429694427159850237232964815075601762855479829099733083981295059242053156088801796293762111199045330735757581295545773030843009285486222427590172721364225142953729307432342026925688253489569011652072039858726707435051093635407863972207028061511698699700663207597046208374066444262949568535038760779278233272859814722160779275126899493632975385028830308466105194783359962661554936650521566958888985082343537301608158590300900415328247977740070324477956935214400710875635544248049523290339899820243501439313664786673365279535629202894558640204721128815246123322514656066961240556087173351022117237420273933301758581930816527524172923994265657245448871236368991357999297464521658866790397753356284586167625792037820193484993533611092925926188334447031752720447248210721751050365460299598464417531094692654322326392711672017521406446533033270716042462314929987866946951224878710999470481817518469833163030838184928612374710572414091371776123998525011138664271276094246143020656903498695971919039570802790901466387559065164278672149169430799025450694868358714590815959084003177125010879809149138816232863166954353880725631029818950895358778651921552486540985144993273701171208249720292425519336914409818668998826899180948972439163660695565740581945255231453022126618295740221849544500458126500256320165969693977658287480731853154847873611597918982775864307536492398729312842979185700692896309615677998354130014551064928810476941168144813724277199248340306892035617086933869252426881870244170692514161999946831139451737682892498523431836017574248814304560764334846775189250794098570336798417064478299604457198760538967217714055277464110557055020307947155936358117781797124889687107079682355375414449104739269579967814224847853328232346113584073184139535273676531505383633964768252591242781765856920086569876171956842612758026448194730690908728212483025583067979232060682360190436389218631180632952762102546200619586998623426812393850635851846194134188894765048187537206894255228716051072223924585688878303319963992958619857736072325737801335370832540927718647759511811217357156185298894278994518638071809184469688846244847152147117019707563634084582685416303565470348026532570200891467632995320797355029533651415810867729407032295876532381553061463989284614037729887938802315569157897533771369037316529566902411344824879792802317224828673702971177938246486579041093901427325924991027135261679112564952582135025038187445762595001768216440197132135633080471825614974714116959889550698057353473918165113282345292008570699599769279103378545673534501626300699747341446925697473201973156232051281652080172826124442061219672415292807265894862451753970477180478763160700283803827598393347066810812604567779548549322848559803595977831409905116187554148164537477551249530655789456545321378204687893473668314683855043859719404922300887638827540195041134999637357309242981872911672594872361839746539474229511763317663251077370688830056704957850526834219770282123907113782319925624082441414629269419219324810326442679541224692598943778269809424530278629320386192920793318357889529205419743812081727795873675533840023415314740326716349614294563942652428679642811544992653117104172645083469360342903010350519164776610904788918345547269775712492655889473172568105794761286657874568933551365614346310003294125273227270976284526649204061822758695703252982250579707731884546668581984671839244765868517404944808893083249251045080166880846255803170668086588091218768211410741906418467067395458809995755657077055610565214155602087460856462362233070046224077760444519236489340944884777397683912835325222059269054277194335402191189155227265167497131414673281783471832766665743396300230769872311771865608054617185004838599377784146659706291809682061315925776255696216762414727744879810617741823925399613847677764004695313467494984146038013266024847982789639380848583221064828655400346303393103064400039685753518141734904254317897809523173052002981370417243184217900471037597532715559809803149492971219788046866762734597517343094506914847222544065456783235910624458016036319907746378537942743367411664575721484276768776031816676539715508272977297079765600186819065702675410170816531307928189684912365763157212961187323948485719067925040613463079741974569545414343434640617605994915036172724744741203557599015412233730929536457705750135292965677689923293084868206742150154968638194443466246018367986528666128399125528389469492062731140741527689509183201692258318433354229585629691100435496659606171954747737464012046857160069947949198614558311038819592893034170749343682360798125743988331237358390818162150443769968048321081480025741178288800200881032816076422708472413741389373594097591217645052066124612908490834203747221710232749836872383243707126435073182432305449429195166737575460858496398188416674002484262935172885252054758620464058753519918596747584793160309199358631770459521093530482070393140527478875108393477446809610204565408082123431178092817799737809480512977311357086266168480908893286865891829344773143341005795879772084427451876226021878342092207848991495715216292112960399475582335550382068042869582486815440720703566727518039711547542206849599732666066284475349611707821748833314737591250345320628321493337892638935008193422784806868128575721499989255141483479689219640733593349642879647932893505645154771887575628962508245774613494511301344219369292794965797464054164640619792828975356670105563515536621673337005526446178066932532509956765512749561775323335518991568432864851557559473587244455376537196613821983117024538072785899459758120331896957400904493338433641312807094137648647647874367622558948777273172453544635870603610033066988275699773977691010253806938599865142258025438773798674094101611664217827087081697249092221674742303900216366060876998805880107406640595348772214227967797570472170390632631758002283392679589022945772282121587420081750903833633397173212181400642737286737481736151155841448885610916963370631299560098247739557919557895094252540554157421423765714182272785302395281199291066520165712030974601007127011214527112779798574935930442296454899114550261016548313190573538594679391798124641665501478723270124886339370430355593754072792859259630895000529827696951191526167323861135269661485646595525803373911047595459773335110637628588903643922752509397602168056178382945067380800771512505575162431948605352348114387483197385713575197874862678287527039075156301980516073758179766241303582588982531722291619615995854599672069080173274385310101564269370140585313600545166477460658337968261107998418132558770918335851377902544799779344409967118698334237428209322815597843883465560394991816279752743887182856598083447772865473606208369234929473290747556330998890839858382222780928843819501707505342738635460238510909712912019944842647383800303967501910574633565459725813512228519487660813588374556736829040848837919700205899342994717019943959299183290970259790371198296452257707068909702648278556997546618617586322938782601514162601457524544976404254588492518055502392082825100796784041774927246039708017833749181708053699831083965416070056717180467052817522659992884891628407586247376691337212961640871415759278201960896210075621501076167803078720484259289923617157047658284328060248372355344202612080616062665401895086724166564185545817108476579704378552237600157663226245977312654278376185151996244796356542436857961614777935890369209856626865901496567549197911131224072620043681678538136631130767393562995356910977797495120398902557333027872909504431752080619028296594976499726267699790229733348440962186003678232174697726190940026205591912509414316703683655793852078612915208090309939858282716899706100366517405765623049339560506548906924755553908190236593494222902321633717285549282912170467419668239632978334068054450558719851477088820383815294797853200525878954940890660427360426129863776485371073455815056014096289039445384335888890799769971309173883273831633579719786816233952306955931061969530791161799410299976405488075496558786102393326733194484972092756136118010855805301613508854321061862060129933414401662773959524770476470522050265167810223196711600670640789537024469596388778765602572420861222515163657841741365199341486232342329362843004427341183129495837850048749454079014198085758549726309818188365604625586651283818447428264093441158345746943807491306611110073015851312249712095101341353871206774191595043025777631209245277518838664985550257645576211668221352818295440671094957117672108541076477338648816747878427494197259601848532531630022643077462717500352913336162125793836792036991283216790679909640121639291861392536532646852311580274548707819333497912319542094680370192440430709424689138587129481706238911484591971205869821025682703210446657113432901261244785187065848350671533209922338879265195343776643531088052157199741745578154038164176774917675314952088463503851053223975265654522846645392923981837165744227156809553142804091984242265337756396031738007960190915013081025481069771579307351953979872504258142892398092337256863429473634551188923367839399295843484509956826270764254595120458942392633568758077262289681003640227393631118401231553360339406399523569486448173863705747583395775840845584072199555229755974334685545442845669114278099602050634331163826768279027798852129913353441966848887053873262950038745156921183877413859764294048281906096931766605021294026246768361593827379500673328132350482526447176668221459644271107380942665539532558082324437751610060537359313091696658898949672700788381567509985795041862552023390226021658631132897986709980772393315589366675815483369422612809807058934942923294736259990098276841146564188268764886491222342833565982300340936219101915444126518804120871217554987869123658696036161612258737079827658720677506401293961031321765965652575568236860261761395140457376251218938734384714688547809233655825612102864514887440673234115025028192439543859027419770659286432802967886047551670848238934509611225264275764114962575509647799678811148775067464080420299222009811147496991671127378691734708650734165400876365587015102209581293053605439042460773647536868985674365272609085167143038953252762947515257394651191700458325957292366824451136793527041227440700712478574386990483062742027654746016458151170772970888542878390262249659860956298747531245843115872733370091201171598811683003502464977418371258886207311450617410480088012294679769747991328971201578744889684174330776956902978346841904494144633616618693649761979805473806996685985473307101811028736723094006910468275140797922367029624265585401676495548374271578615240544750973941667337938899643048053040033532955670980502313688577631115006248616472656790136610824149057136671235737657114696644608540542018464246757494100207504961329719246139211594453519821881416537290024451708847600176401447619094122136599892647533255782469665956854768197830438292376091953040622852323862175510145486838074864777554142438672385812249873985579286721916679179386786011110645366662231188417473721421773208600706295796765181995164685710286762012791903883917540060254918261363591104919996549043365872736959246512028392946168344886863169667254144327578481505651403022010408221926856124362070248077936071206090543573252573621378370944451225165503075042358403609474815327778018920688676740836622114344659895292510078126169872141679041327780731994997068230480971425097725600454353398185281929953063961377330078900753963096436413007479125685621573262601134210945970128527753878540578665068254526544212245802379489172651693610260039614580149201938772897723070356837127586019987660650480802104932433040756514116584715583871141064626128435539994365602269192879687476768211397024618684559460120090824358387972664919527111841307623106039702663422588828417183462052311537279614348367819993253131147649072346656736204428072942743868877462534843251286187764807885121299171293330885387822642905535187665413460805260119745798706897022302896385955909280251910384604791082862788935367820791635126160538531216018955055353316864187156381662808948378429395138349697342585552679833226052220635355514805906943488266903899987476344752354142329969962625598272384234234084819012753467847879308215889426516601680651335757009064449312650389591997493024564589135228000780425863863987112252963742772014394508829817934662303591044501584548641213222319930379069783659209744924594097983466165749940437255862923458745969407276473049478971291245317323515363495337612438499621865109615621169451117165268237300459162558067777802101183352147892198097066816611981561152012984797198032178576607497669275718525901906142500172939496155324770050922672972707653337362307503019679264571302927624214079165440322885845905614797626413138479310383129050744691133325789648691998093297530170468036403507458075877336639840037011269133461451967905754060068119378997448127502080023590608878564402016262687855667671847168205228850942778160114708188693858741173648477478420796875774236542914059543666294254490592526011999929199343067955639886161087539012339345685388196363131684445435608070372075239377189701482300332943210443115828915877378410600546184896252060884866268968136985462588750325632088576274461859918966209265775536455521954277408731165903229293884607842173475346951965677010947332797940691895446698221372462065788949296647121309525226609645542517625237986690586455118143956723540724247723365815600236199714883448285575130922397966565718964297982069553107385586940098208245933089163568316014485120651219219672293239640701342639468008570418138087047135335006667665049226520873400309251736775572909763462025345241597376837385548744466786690561722948394587289578356140923012501294022260821712350527146112767163044764104520593718890220532954549486508170083226993950947172815110872048195405464834830286595438740447255434115439495112686016425785349184691957710269941142313326610268317304904611274567785241394521148447152945393463715652480588915963173282759096581463465533190052362768874372882812216065063923503183324757535304906241162828523363294490311869122139142287659537371223994370838489619693392788827218561030402275239196612934230896089820264977442463037783502668924188103606607731664677044183332336889469804483387633254487023750140758040043647575900383074305191710979235511721998753551583143341842908087001351615219491410587087581622804582407551560411508120835870037502476005162841083120699676376501933560362059138224537157621632117955354178627701830192190918892259281348312271991492373628472110284075609020885213544027212478825787240203974385748074110720024435673748560936301847315686994949020738112267636252933720775973409118355790024554067356058236697848855609604561111132982724829052835499257630638963344830999414346874534149116939917073729119675231599739154175900960486274738133430862191636356427331459177917431796480282968998680058735483573843349384443734228767299640008479882168388945086371343703503791604027653301046731770953968101149669903380512618445086123342171012383423505182079963503553328871703278214004746449895728829889892044000320414975373197221403396390273734585498080099923401677186247377285053277531364240746175807956961701802874454508317653433795744545284237305108240498612795836447773202728157109174225955749985166780557417637249957411371891384266488900454499114384824888315681507215760126522412741076055794751856646914548669661674394608361730005111916889116626605730935855371988354008627392558251623872685521492244833067861047709192596092748661396874153072372061263256143573934775812646386541871447501325558908626146874264143828901990575346274928338946545466066271164958978952311116251696434963104399368543658315373749535079583261530302516743714544500386441873066343262923364856668794654296639550128770101364431037951807399923025298756064553354014557000097133277876955471250506193952010959049301297661323261355149588683998737631356091438602714733068399661749990819582536178968927162922047829475277523755946475916448662186082293046185917915660102979193233898168327464163790742952277010526068349468251615895368040763357485558826905584224653952581822945001466265841391370266887499486415829936450195907595067184030521613272394056129901171847469333635292944083789938547594903030736031643132403168664303946440448434148390512232503474573098730889684410833557392443060589785788451849213074149326865510908894793638628713095487398928894573450299470313392501575349764096035566393332001667328216584636511307412447352724596144358881187066640007544713648178679279042744203894597195737445642435606974045097773301819644579034474414690403299379968826900682775260647073108444989997343407987296073861360645303407852741690365544395438128588642927353838191798318506699347577121228441205349270735814792199991820082602251311269413866876620670540362859926815321003531563315824213540043177026759138919828042246391864726677559375955667416341513247913089081505003510606217379585764200376437526355570282869833913814410352911830391813896215578922602112061773583147916946270148202274305994700930821854381139992365995004095143490841264334859886558104357733390354163995401344583159336571305461262460343924863745633040914108762551636131536305812366629708635692019392264000959294089411668200234630757116709437513970638313509989489743089806018055861564035514729792366857358396086419667828386655941459971667098657481366805278367179457488742812595370317800167696160407404452428065506198622611461428717698853478343999281805775700396172742133889521272646939782732677755863927869605256920246531893441616378161681189785394667138668358708021545124420752291245645947694842270780746138851374719436520388268641605385662547268154823056424992511928049755577500800612256401008319175488998549534958273713396453032844515281232814220394138812343314956336026283484666132087007143409546054074178970168853737218168462094244093935310279119690938736858248654944779407653531140527954642913770656487719242305777195028608691803025420562204502311940408851231318996118609708407611328158781589434958711537126263382926563185719464205388602562445800809998423736764313100028866236343433894431607223816196011357074003094925822537202962869546387529831854205002850801525274949158655571925152631880065749076165432438696361899420062971764016126059892333707394928926753202970639710793022770689827043661076297338046040223934216496747670877762634430495155025608820192017942188550333096080098743060631276236827472643241694235800233528483047652222163399488035180024850169873824983890333164440876416694358508268040937843634410019826158461763642583502720562782060073899254380931489640005253169655367679509742744725048026116798327148755159961492749620235380408118112586453882126391721650729959115873086731929075237492676903980148424052332458022239175581278995741410649686804722123050318594241319854053688597254520283254963925413672721672132292129403093503324851370624953429847596397159454852371924365546438536948100547918456317945029922249501075699683451054692857441950809342284097295139496047012378975339230165973682603473819956639451417593101691649591138619821961059764045401128077388570584757720570050411550921877862301503522505699991090711777825738065348352536479169356799247803550321123479705723761974648240954511568592547975446451181268410470979519074970937504663468264129476711582474530256235656858428209458134269830469449373270860394357986109875739078815158493825961306613051127808701174483065717921124834980400469293914069323516233436301311195008869701105221217319472182593958473786865824057405616909238185586519805971772562125583155134471322936301864527565420346666210530520051458044202349567093806489716576358899231351738418978906116987782920265161541725184020496715716601765299793822943558184104415086789217346313621896639642751147785671287875708815960142347937046034937618457699805437200967164534225323711582367285716644722862988978701403195627786077298820913686947491208849551059698467755427959790774180393332289604739301661009438788048892123017035191992193563294980580089440452676864294666472207918173800976185722061670893265870473172447939799003698305144584376869713522990069254807312903403301932492752541655389124754756630652986204609820570022999029475164131284142233453295123425233267700210371865481304309526820794869170426853712503049964352933041154907787795865710546320660953610401897667582971303957840643617462761842433761472497632536443876931394750173255778243371019909264130749424406945560452797662197997827544176702913996762225761241423852253429668587382921946023261459673198117405823807593992581683579142697865406654815471263700953629013065397007976459094918903466109375967959946178413574667404108456177244849217420886897015089053133626701761713231555162218585276278291174843945862468904223980094365667741150564072226395744164779164985182713858757422286479129173584498594128821291781736208344271555167909023474324793404723960811778319987896778946661862548785166940329319197420619656227989930194545783034163701442907972322166415525247394371709234550410998628452122344966249741979120246453718999237898711755229745872378467666659318979909309463526782884180855602053022118247348595761418153988179230998619862360410237772111737917581074763509100242997907390070158050910552617119428069906778661362621286337609718154826151587956286982384308271078167874972417460129236252815315422822549806692375193923949964181323647854617167031770759496952965325199266742445313514713978589830832131572097308410628334060520517050129139465154056222068645306582253619913318509893274929113039620663834259487974435032789592033080470733685361380578505454039833460398579735264253994972656738862333589515212440522932102319920937211217960136115044957058177369168954918386426482646839036282251341505938766244026522161636175361292469255022384354826262932051615980840513880727740241459510863781883822213290585548556635073027114663180866579340596914425050994062631356341119243097980039720106235074052663248378844298404627163060747474474470113687299437690481304804400712816177825108583782244673596569160840070690166515327489024722198895992212125151102728540269363804286003302427424118591871126994096966728586842502380735148384914410408759737452453748517269644015427063581831252998896182426863237919955823876485383395958920917017904768419537467916535626805939398639787859897953717363867824807297289634888956233850739621528715456488353079076617126556371163031820349192511012986731407451886530243633206063479578193562192185386379163333685958693411664092815254849278394969413478091994408317000459436630932408161196172822772516486463628210558337373991043918269457971338696486658348180373255589373978473984251402317015486348102876627356230517249067299810933815778841234006292622059760217935365511153998223602317499784699247677000499191162298762530488769782560929964203821902414963676203435073128519912124645154335842281741579410199999164860778053570503531850644049382493077406694310295799481484993820320172727523474771458110102267735487761366023484497928264750299352587308564326549790252554660081771642197765161916586507619461261618084693427246553137953600331895115556940901682057509756170588647943307464108709444122800705602984310408943077960235085334929478271012179173002261945776488570227482199006842442985721735315405139544698740099402481411546929661567868922950502297142672759504311708711223047855847358258858923303703976816726079640109670081628859033934701135218739864337018604658701343140393342492205477949292934671163950746215207356455203402985820685074584408392222397138561334646620514520364778373452923486891382997291480572027671265454829653405257801020688974592154815433280378304228628325870154387838111342010122913588177479986651902349666420283373681205707481534074675668399488361091756453252966446496664887921575697366055980270991552953518111716734773899275951988874882669913790781482204096224289658807006044937101115442489736508015193490726553011571479879769300198300534067998407052622785375806553186248527682192298928597037576592967589986696422236786101001500457445572959457497217177056079527288439644965130140726778337051961017064455366164162881357082214016274761060197008029910267342407943570644537009277056973406464162192909175804143408070404945837992249470298377466768783736104079360191012995062576707920967009896525277138967928460211607475695821139047534361069094612102545115131142364726151058543519076354579215098785599672404290377035368790513732292905966506884033722521232970471742052145424360638053378412963561574500515716451438960962556622542568585290994464649637121520021264378616331629398931147635500794603412227229276084795867353654249165887889449182004074232505370774970024457727311132029046001221979675453142438877376485153016784337969110755578024169487996233640456402479164011015842856541436743115816943744269599665112319796168659530886403109999026063269684919536489948765486063166308126361158291056251653142782686039484838815333095570629666385550322496377976319563565740469672679750192134534381634450531752839559979423939552010173439291780999249772321715338641470153920500527141339272075826217046463441911334958626737613765806566870659865052808358367928534143656292708389829033315206503457119149013217532222255496091926325034163845313885092717783463492887474718260390583655589612218072191481121353378613914769467422449617415944306096764043270419851485890495975123634965542295943785989371375874503070220266060746231915434449846323414977828534798510358323124968284925045192886508179396074441436508310590272330914780298506271389656657118015191585928435255136191294409930019724869939737908511001524926188831736794875946066306115733104952815325939625510646363360008410952717849808027149214415271253882530891210522611575105571196700312371157661372856412834771531211454230922831323313932988350855636885742960519895690141948182285642032250684594004312600405410510045551639259685467755661406060400365963321021446966605988304503897070684930458105056983700742871678921398166288326671934920280862496944394753187324092188763432506170369019657950178329588831669633405541971055647444677627221992401251543334345831754695371380832262789025394093625752912330367463040650656763045199130858636375898176719995906684385383432974424052561790702495010702811063285634013552426096988450608236267359676197243214283140584919956925569132409725967164007519682085748895419697724488619691080715558752294182558391237245688065095030056071443142780462873469992460166835912652075803467031833118952595041314244071160371407848723873931382985341579140167239979959524702291425470683812199461892494712303139061850524841254111304278170756268327555724838503838841768480185420296187304606393561214605055310948195215871217066760023771123725781440686938515670204865008505017472820584689251919361290828427536681686006539565323486757885259582539325450866117625346955136310123251529116735258554615812631163174622578701309785222493219427696880347115297699478170727739048453956557507095844207147045919445184514192984614085704502419757162100851387732837416010306203662555405673701134216167891946398485963995466893137692590805968432672520626267403914162021020232920817750129809682097216722459017661538424433957560478771089416545145870185466885992899838683493936476836386768914400073011344232394130240528425677698712129050755193437254797592177879927650316379190482574762532789865704563298172648924433085721627490762427785515091439243139185235768472861565327655743322179108310342962030051602905830943235362409881917917454718766369975006205340753734411221760551907554439324943164259341633992156473743251708546738665412145301769417229794858903971498878570573127781042249901931753552109920756157989485036027749641234780333907424825684425710407851686641395233532589198617408881526616233741251012420998179910832721295846681107513984443824774174730603188555272317523643891006442196416081420598333929908043179900898056100273610648650088845283934498255024835949288049778507739403171082837430517129096774186324019768873282554965668890961780451475282211091011624751541617268236017817939769618378655484072889784139200062837412549928282502156080226269035139873652208031753122524605515312251192013550152368696245968889383295217816563974797623232661927765247935909380799186712999924243121152084621811380713024140908185228322519622238637763998760553174735853940869001541206250177503394162834507510056947176004847529195658350555154122635587556480086338580359040949094439504073952682450596705845996107575238193351485080206877718975871687595553358090985254003733745926501941589470042578191164652181011626410700229887115689343658448293143410399556038926110078673607286860142988935824242323064852941792555352553559262924218412224143078472247268573958953675373051179994823576044365802770789860026994583934314413249383685210732241607588330245567308234483537833000722055470034398075963964781309022992891378441659060468216519113326015179606406070993513001009911465144342263287984927859723113414990208746029644191647146785413574308849047638385965464474902563218119776463403484625535790176235840562235685418086583019105247347097890287055701635174160253904901549245818346037395915347570474222738703600223754203651500817227993438071541033028169639549132479544797007497846012349112807314474814593417436739546908081664890360232659986402149235033992616709441912450950140966713636822343454559743650963773055774371217333213262059686177309214140999063088248092783589576816205283343949205825425576417336016051132752860927035262575879140906318573376760809944704582491485537080152211619256884316942643397705635970777109254327777190166228894826473555816800478103750206734239949937390102741843656107598254910498546601403870964098453011476351645968867516744261021570092143931798725547265740762926069527174586004524976995726934971963295838655763674986774515857898927368916161521266495490377841983750944621907773986800274802304147282544181014753482440554361639783313521233606079173766268335905316256609483668754617734446306615951410793730529138573617428489720574230112059908831137909934664248252117132202220058072865075440314107140925671879511739423662628994268151415059830556041271628257510079674032865820009904517355812287145902697627862452652202154939421749536928682366863581963919922098655544057633194452838091251746395536331682419624037953063740797834550670468471342078355675334221829418826688566653073569189802626120359900716963125119533445214748230293141079959420997118538276873674162758814713766907291170339022473701833002694921540523162516097410328596080666082616793357710457287769139463627006866402357766664687246861867229541790412310457616387731175150955785125278239862278525810468635861340833006355024020441547599881752510866690691661225498102433093364301843073514139590468284742524857459400696619178933758408857479960902230586366610234214074564740348710120349849343748434294266621137178530569013240341859850886358284416855153387589493853277601202326746527653344428609164482419367452913953550779558713903568112895143513252263629837793964660779264393014683629167739379819966490818934983092759624359988078277947887562927818543561001993281772426283275885451100385942989421491692231956893284828207199194918594320247942438760911443418654042670866404864457606917767214474852462652831425219406642623496239443373129673254152324509193161044167162498857802231938399380588699600482479385747068305729807212982270410882277747169976791049031394533774603098313010054619684859637971678579491200925307492142042837264878066122249069017268456141642465616149219844431682491660360177632374236396819617412277386624138576695888530612350937346109580285476356211070823407137446095271331207723244378118040983874918175469238146232567054579286475622734056048967049738326609545076636286835504593367161213300806072802253718266946513104207671208598074487871212582475964719080500708430171486024722932719446470601720269219713537838477058655005411553975064908671072968810519965812487170220619451443334041991719474746128618236912619722167096231323798126135172942678913152964667559106787159025595226497033713034215921472251141272944840860423971607071654005448263746759145016561877952425084440525650908424743251482822867102994189704264219922544787514264328380595957475372488243114030694333409176495430358398911573894558528657285214256689400880403618242106160209219562900583243298213109602181374903142312235674294977846805430003231829879112638641584519560309166405816631492093290305424312484181225882988849587143743741760986070739092922049180619598078599024494931325517373504644289083320331638439780964353085150691185793670868343316286437384519973944117814995000295384550614504225733622027815749126287770511677743877208776460206818646586507042313109756948615039336515908623541487366895204652224546868824288768335275921785618613031416087718618067002661082943570705296922077392345095230969311052210464579161726299269337733804435510457477286641027992102424483650626509734774974184021343319368473565969711640149347534650771260052243852584731726828057119565217459933409852868352238733493304801774594522241377103817117926602994404390997515026699531972411323814774784150581804930140833412428694240478462706195415494886566528843742667795850297637383307968576175746682425590760067140653255199707170267057484590773106797918137030731543742298394124015234939118699065444043734953635355566123125729834844150775539681362673202246146185738711664951865582893475781006267769514625750684180112443907568595097214532484994127663184921367709146440623100222247309966382638556724272721192041073314650022417438914600807475096140182395945346190245250976121214193721284671705806785513699172196707241494739066813073556098488642577057218153928912412554373396345281179914175471576044527557771601275120752656211264224349204432555362565792686825870893083494177472211026381286260517503703445734098664642064487809793959409697738918854075224294900359235478313962338196853987697080859959708112439780173597905415983390544224147836748063935916238072431682429803058842699174832080329639312976160309947819446662556020308091625723416819251262314268192891569145253952136246510103461838439914185002112683410628425873716342292025890088969079081238473322944789758964021597943633170319091575312993663432416377189301323030582056813658814167182195357520436296672311906727121310985131418081706234358898294757025774033498686999759643769344136404842897910701244375893975644141592816438536951392204398974148655554798215310290660410524808279570045022408415713223376809230089018335056750202707402170587298966927711736861944608553147714078492119655656746971059279223330761094293542005508953754976779010696025217890687476332252402721733934007679589439609072477789478728291077308697408624026042439153713527770195489291656974692604334562324161107444185788728531452829350812515770572355554965838601056888302829979323959445204977676910640302873484413010712826978804901368634491413774108039814588770917745081582813731725305135446871716276195661944085371344906355136809973121547634456557064219315027306458890854074972454875342675728602063682150170663208173256832742541446710644317206108970825839710612276951212682680859643204177646455474311924812985363499737015522696622587084340928168890272192762191315379985930607966150776076466634855471082534472147657573807129932275136688714303716948375757702283704298342403949908667785372120663958893345238393893261004171751750956968878182843681288981971120050597669062002378181080516496866710717332981679162341373417871109869113659641870850108277260213330646326924690213151628351923398742003547151003954631449237544421192008554954388978315425557665246700653257223505998671668134416993921568290731910239016728668307764506385901254340967447770563651776723751310880038459332936050766946223063637858297977632833271374764653329014703302262654647510081748276321122260382562525436775534177494951720942363142607599917650772444984817673132692246233917645816414036037452373917620138095266337717368660182858345848146542420627123088026888300886231953237073740627329254718985226409117556299622411973977375800529757782397380566050232319450232837871801193784261256857114404357822506555070969674994786743788799152115583196421222805356168383855937928597370249773476484502016409826708471369116365978367672492928945954638347273723903448915120558208224981675012981838914694224257948480788339964955057096328902750451168964864708820346083179471266222770770702821372282652543330323681595077969280056620276383797017438558865887090715982836818213365238448316936838953277426390746440405325080363668221592750206421928216159160617507523494415910805346063041038680522931429366121381815392169893060399740258441864918993037713731830498781191414742858820596254165143427444542910913445476498827989743401892092500620985654352033275402644041644923458587812884436182783215311682161778040609193850633009223982821000055260426739149989510098641739605843324181821308990718869147747371712053145688502033055048094966647593558409324933168882533305299490108236305555705437060308208904114869881526516354574468600566919263993050655320964719325967571981761430316775852205148633598983623293982024387361828020026118058969541450040072963419359413664336306020746526832040269970949521797658368418993330786047447130799099700877491248550725410879440238006672801793648094718224287238814823410669067159264663846445119831237232569073694588486342924453378180934119570051166135566895057894925095061841917295962181173472676181870092014461555454030433697554924605230498559652625003890110185378996007449489449424858209018558335254984008519286120814062070922853915595305393355243280109186421888092888523782671254267625523054955850484179852372036591435147503293334292202322637570766312601965152749203596947419914937799077918053786789169455170548680612741469721047467992912395285166383182257057548079640288468336701376323822256397658650430055835455123410651364051628307405144362582438156820316508739006315063333265497362449748141081183266724502980893658646125254264994165807704471264085077252492555277405028028254931540373191872021168658957064186747950356278248107449828382864336020633558347155471628468804214391578417192877831368662127072230457415015740278294050854422641239537124377727250261094783272318280594821629713980362159763307622176125432200503592959498847843939381031263871008470498806841982951890493563522873398080349481801209884372580908032074007373516862909156994037003641371283963789026350505789774878035821434789643536951636352222046799503809996199674768039921585199571534791563713893680354709827016844406693663167946313062931103314925234125665222483226953787579965811090042313068007953861411068687510949276543877720459032493437608506407047953085837330214917592749504225366234053454110132879999192171364348194089868694403324223529335324023424197823540141125730829063915857786898576162392709927613716827705645341389219172519878656689722048062683248275012066915445987890526032206781448497038739035175145509667676421780213877595985216496250874681258314805628980699530451346146849211544195578658805593954295975425515160080701031976808682959593885135317941077958495228272391435018623365683650751478343571499576122953865311789058236834903359509780718893163408678967711473535739747630986368280804045818863862081391301561025850752091634671505411602364369347969970863625365203549373744686095861207295269553967118200428525482926741395310132913024248077316696857927990167495203476507363184216260386597406742822225413434100354925998148865377701783469546256424572835540698471300586015220288874895901320411703695419607911829267038594663115497077374114748758710721678336778709882606483938620452542214025670881248398285434816228000941738960089173280118919193753751882444245570183615893103732575979278321683503436166373057658146490723354402846772408538532310875915464287772083605966111589020804657472411099044795687816933819093469053971549204833944870396343000805968414223036977183971915452533908261570619039728389998979866615429594464695157629665338059535671337292738256554418131720069508148857038527079703929844906774853498833925377550030568599774058888620317828462356632770869922471045821825293124519688493863885158847209107329642122491103345317563409296064277239554985793062256991199999928267132735374588551091808532560751448896861643193008137542514760596576849165713209683020481396284090292406887967433854759458105285527133697490755455108400805441452658633353832677954285568004517602920183606677215018849049606320230258895887503298534484394493029863364136809244341993017670705461089521753662474287507036939546600477983359864240120003674661404255689699599238083904572155262073147998359351822367185513815629570439727802676066885753335505488569284955186563333171853659949097709497315733740608975785418801658524935851275546673445646771351283796038142596919831315058819261052293141962504187475002520520762895319673967297554234883872908014812440116881644867161284334075522089355220761813009364073850684282153090513030512568332862073638434768949776337560267237871240547776209681372233723332685614298727982127314572251516684369063219534733721988657364964165492593815608608355978223510374414842294216230170574131128347224437055543224480422554333155496232579007271381642408497797134027084471977507947381579065623336864781134567018948826974326176725469346341469922081772610210290917963653289407350892766986779725274592630081084711451140374568674343381229739553040336035041011753306836708279145344187291844753235779896276756107386679153551136279953198920135726864276908949078283273638404572704061377180541072317763260579067924661333306680852937252449387450048980791842082447957372098914364778913430931992324094145143117164531649210036682054621230203220460715357525199773236444846522975630758882346978920176911188958202737718052079356557570741705165344683668732709450455902253765228284391951709025059174155231280051085141943870707812548303086937421045350385609404328798925959950754750466007555718999342306915481282936808778783309020914427578777335171115540001120899782984638506533966902066293552372169482264986637399205542843296733132556921227718859968149907027859834691555859620762845729734779400175671620611999584354541590177889144520869173395528381523342059623708932067201227591044768003031383921922467687634001399563575907579284613579885225500289668384922873839552760945222816496040058981613097212139493426317506809604059332381808291153873911954518799157785034787756371894058294366572652610386085059143261417298472036136053862306140286146362358265880016779006969978665715725769609140148233291636800393842313307191987357330828520742763646063389615380580478031376531527934043518718166003408348236815806312363843784266227442848697180883963758117087943148312320718236020418455717750812258241945224737640770480805404272903496967303503359641835624215433400833376663992023943695662765937775408234700662584115477291179140088238161941885403047138606343630920575486040218030755482827195292764050246871925633043173625232152104768257166747893124502295325554446647943439586062074945378983695326846163613351633352278562806535059898717637905152046701314054372690487878853133460630672601121597277595528103508201528225426098602127701916454033759328494920058325388050909559845696936642721261841705122441762955989676427372983255875529398093117655296923707664580194029330672290018212383802053776851258450013069696139778184368216005651619358498429028851621482923673919084134665107919077373289532208225356485311026222360010441756958320220483522111704014247877492089945395478395164863354467192467776409386195266329453516379833415366533364391889784441265896323280679985143841761431721073412247307311146944021762173019557542391492941255788508916957631464647661232990250531677249864521781639571461387472300389972206570537411154857801552234306374091486438611117597578718872555345293360960682138070946422329759213928183743957409487444902651859639310661239992652834287362826074843796778768276928219604094763559426145937772463005997785444180675752821607725130274567084279569278469696060444204312936935725550140852517278848214107988964981517933962881583795798259135893409764835451149391382233634026759467565510202397665400087840891303672337458803422349675034353967584766188267402887615127574852740003508575862509031708527473873988505895101800442838971578145158639355504718838184050984190513459597011912236895633810256499296800501107042855719107612222996900371686697053027308210262891783625169827152004732150585604711685588978146862501667690877324492231451268246403964927467433175045351745443434394510079903655845526936366929860429838409850696559948678580978287620964816675822416944891888571167083105505515609328866798776334444803280956386062423511950393814482749500963515591469360769772268154604614963557959903649042434443424770743542277589636331132857237953346676293969860556747765634284715279013984936205105611621611109775292613201322226244669553244978185390968440967662096518899370273743212432068804329716194027094212952106680047492357838784338137970968775763056068734588413077205284731379723821498666647256607260247310891680764926542859922300434197836417947150573726235506027508730948878061406464478360967398734748097682846619347449823144385444401105032909813926980765190021022858904835332991683407453026923310310087626530470563679541987229909688007813947685490790518872549113683304881582229908220443359199918123560074126129145275928951132679084375250154609575934328460874616376949497534469673776514501706180607762751618128196253367804732626387030472963697008580225204572993581534438795285978418849082339695040533665891474173142242459326464622834269744784966993635445396214148723019541735112318615529912450863307550160478204895107153501293242837166065805797420191519822417187943929846124824424818051638262690233732842912809722558266805938227351130296210548732637829647882335802520280372069314303619737893600399867830938220434920671942993159323531033218772302341415139813409349005704305234071552615450693369356629051515766034306838664256178644159775545463762420943314399070934059200120573163723057761396815955915830451715368770887565887857219944894264853485494037690899621466725392935264568379686209470089546367496761180861565401983117136773293207345452856187967735106722916222692660447902800756252897220064522281306155565944094341885996749373364534455478810199665613911813398322507026730870477930639488902615633769941082224504432363132330317273849253410022953611147246777819859091867539992125303269108327520670939511834775082765389307277539770302818813340835733273722297707940106932887925640797808247769843694044843509810904227835519124322918277913154892395254072928000343401572816005537429093234514472931118312969470850687233502511788076109874274107625307510169911105848457695401016575924511771262794028769666868484432113806222099919270806405222053708878516573920404337819162129482621776429904194082343195626376049329435623202157002416102431967667421737594361490525137893046835901218405420563724315957670954066343466992549810318062000673413821855093418946557095366225946741206567854959972603317077579929650241464755651594242815849010513946279891462875978472558888246160563828026133591910619618160562637064572883579473424144842458475224438150450367413024723893887838146858905126027768115397208886703573729245737059339014985214990775211929821348582656282564913497729717594125611619158690151023996049878826262156073438491140009062306437734340151410937562327457389153713927858496233539262375919620294910909305145795887791292100484552431679255998366151692621409236455130340164012840095666646400753239105072835030097810172554216663676979610164999614769731908112112767043580901978279165163202780271798470887141488071210462353219510207611527582660587358678370228602870338022152192859723691410736997441928495072130625005657283047799536719349918591220159646095280327140367968702068274372608658964420949760361574615458226391270582437533458231331034635479653123398428708532828838136394977366455126162059490076099633071162493275884621580143618498135981237327792238404402237777316192096212792132311533079599669192741716783781510055187897052694729963169061286211866585780372256055016825970066097175404623008010780083798335334818178172023366587082522703848746291495546931531891957962737787686478006575089707295047397438260342159684268191975159597989174877444443052754286071736386754749921089136336445814908658841923791115093140480733268514740903939359958079408969062444576255999155919822241786138303344259099934653260150163451653344326870078554926238731320063553582456950163648969640817598888015697899072701753619748467768062158811932025311401318125167785148885823880849953915818364835228386372554864383032458647077268008897882610362369512537292374128573335751873758539208779879513301545821970962138765855637217318533180605422956580081258265838714365028373079327774340609788881540564188940372362536504028226623858729835832109661920838703795791917440030520754977802020659117370812276000306667977339031747826317103004546333340629323433478964013260286948724480359852770084843758638848261290480098487523438495874016612258983870488409150816306726552614464918849294729246903238266469153262527620881538513717394670884495269467347725915424208976609105629506671312115436208524753745859353460987225953375020051234496036973905083217328222083997176390062195785940572908389476102433237731885440423491018946410460112394797769749180969069697210428674598183426097995918995298645651933691409517220735084456633933943854878038844617280775352801117517825260906436673680737706179407464413726949086841747585334102928551182878598059784878401835297311208628911792896068826563857029279210417090080427868075791679470952995018848459706315624342841158455715469612754691591963144052336441605532079491142644691965949984606611425239925492615555814299550883924792811674941886670268612341853011891037614881334402809063119765643309395668602394686800678073226118586627430096047786317038037302381121849768782620606042134061788587551252703836914705881761250151263727465875543819268744938356427872476211771299143592432293708633872211321141271203510021068912884207136611387212519241662701857489700583275890167671237243400708334540638889050839512560035413704815783410425476846849498851112064194614029104451225144206133352248113457206252176263443149876082858133274416990838295545232987815118262724770474113209444025807255686880204593812328883371284749867309718283083809073804718496647766452904441003155430133999516759774755340085651531027318297816038519299408553350735312498735034190243083376265607261992091690881471356948024544788602667104693486566925267365684412969669785341117971321711848141007178692214045489618604231977771821434115661242933453790978625708901721745616540049662687306701459869173390835634532084314926229358304801872391944363185482960854049319706447363708894420864699103225924717178437737529215396217999136572190751413857052009414952569310817276335073574946782607268448339289307483374116436898668424539639756943500059765039256836385942511837536259662303154321117517187709264308402776964651415503127557218781347464805775465912033698597273378875047384011860929451196084560606271293160497755999852933961871515161873977892822070843069086521840604357388956799280664563040031610907484970458424969377397450597570156117658744787127619650468624168182093835388650072418821815544019602667500057277611010036510672405763440003010383244722039432422992886859290496888940289786840859190060786935591279967725438577998999857373075139491554114924705259263459870823254639145768605999574353076042000288730379753066710694382310211295052062506000296367253924758546427611889347367907841425954927260680754316265628063530155205447672617255470835538103992922246820237707746141313558617417100193908401802089853461863721226590371768620093537016758001825122364432050201954611320787091514645348957343864960709460029249462166088559978593200290154703491520656055434819675474989592799840928110875592592554552541549882585979833804147140185440009575140121782636930317283848145259663998140929438335618396516355052812038474450368189366514772016660991138464405955796979344939101097239953557736424787935474939250731314713706667868305187837538008809111726227632630639872286447380538187469089203027443200206630622037085909670394923237173863655336907569554298914101894948853852491585109226129866319899914424127682253483050821693074620119156704195669672319566076178376016483665368590029244819139765108659241525722206947111978205435655716498155848155460159625549789066836273737091508058882950650606511506942917671680292105156606598505998767265141650608287834170993214754758197649609347944795297595768196272551157359898076964362004920730423776084483343172241894030229167496382999806579234888579537113178034823245822339256314207314367668080754475306538638899914190438678318892615140144529388379758687733183301900340828047448744114078984667948838393885030913459963451983152172994116065039904570639768434326640011189387411672711792686181932776320205491046857317437942096340766068636112169076718993916386643351224837929004539925818610123674455088431760504369210734454505584491517124319516765239408940138587892483042082856369917683185805898331756270580610729275158287906954516881324874339783180818841803934671689085012724481940713531304097561490034986122658184967443013056759221375489533280391209821492147090854417785434678970360885753653681365763128056990827120998826183433474387334286660357601776707932614840701531273348510106625191382127301186943153257703136769764678535579327104664422265044170984903731210652669988230631876038602912982826862053035490454579018247377523361372500739012596105986117402187544191800737825840906377713281883340127697815838584486452578398356559043515005652849917376033419034230165379104934655693138147023760849254791896222173392344991489940535880853171026018910514843569405878591934402235899831258580898069782625472329098077082654293685740470095969281702819656025537049119206480439035714584956587309975433830644277415372284594000385629582267087078323608273934041675652457253641550537159629734713403425533945617374703984172207298592618831225020468919340540835680159205142935186091857193904897248448361436738856036088818556797569200663018889978869849647833060179101905006935047806800525994263922999505313407476616024593082702069708711979052980956346198242644268462206429557715847551743486005929561339514530695033346635746578734471137605244679295521906692558445703076448421805690478369474397964918211750231950497224253121691366364872475106995444777839346955392006472247704909951067887644679273012930500191811335723633487685462396280785951632948035368494814432564421183920014818247106028900044972863600979361817137020190813612567530706337951776959584694029676818841239416771067865680471337651980521542054030199871207573770345855061108035882935461855007552608809442883435806410968075312894551869172745748224430022935250428926777289697760216418161499351706067879834229566573860918876706558938740703058870911788242412374728626408214350229191906084522716364739247175565305518679677088491314029649049561848089350408237743639427967784826518288115397549631875482794723597553984297418492241552559109382825080570357629561910033342249867817394641056136646221594354494579967101981555104766726628686509502267728148840035129123316606465156144177695088369584593490909427974465243495696589745946783421050118922443305244432493919559925025815408604379652733233417706772607232539132935612328113607400499441938273064529010869776170185248009767415164876297800452483339851615660157214000420104735812779637326189420350332859695764820334031283897923073276035851181788069835293264471068070129542524874826983891685688963385744370680659143849607012499718025015736931712423365170772277349357151174322264147540288364311388192151512454753341272410280897059575947405859618002434415457735883688502374546528790455114904759980279111870741034394804833792152612294636527826423113076884048017296090574382058469290324330147258984031994857772729167402057943036717049589952066091991981490054535333302620448942381357763698773716803628519434150431405557387752877610273537509496764247363330899963908023077266994139056722687081454297704030417584119022074828708798415240314628916707622069492911188884466678764498131909040672702904233355875867254815717368339466819763133145450286519983531109710316619642867245038834273776041967469528659752789920460604443409222383279953316455232013018470552746305322839832391048765943834101759584100706313985858300671460505156122032795520339203407321824717695168264396683023833919905505225309095005877008461265522749921748017502929924342390425336295040039804636025241668392051622387412800612510983634143055970136733279398419193834819598767563033166126634329788586422381491403881131813975523190309771440357765795319026499457459052278345217600019071432446081865935466943456962951132003297969688184305006786019681291314762255209466401754882778237869236602215782261445744461749282906695559323070389666941821159904547025743986098827517334646116311679729178175470737856751524873904307381243068637030801019424977530797688038803531181295133008858943522432524284759228334694496453270491143917175445783888962139073059997179297237212845840278830152423294991488578965776730260684324996757912055216582819845664156431302399956119734374891336465104377426462083383643341503030995805779181097295122184093129989108291892725147968317502400969091344426152951449006143578142986903636365203315078009563716301450867265469978574385650576420335220724977794865050207930367547366139128460836856740604778911558535120874676274846252978750029339000916686292746427372077276286069485911881835161334948750211177367102221502678419580979202672579987355778364876320525009773212287553018526048713452111273961997133282172933819454263965359276527460252497162616743597049607620663719572654189345359787006367219724036666654934219788166868291435042928500072468728685787414246137285253946083613134687509950396121629111456135308843405523598602732519657202690320662295121057256312784327948484132265203018309837419010235477561388688480827771182807493603642125409123051531047977197986954267298138184363558091812427369825863784796234745120879943956244393896267279341606008740588499952746017727606359965002842918994800448121669603685246185869005796131382216797089689202562510561218226736729025938783847114011434750413317260031489972709820228377744402756328187398928183806753687350073071028179866049541572158442635920456365762545229831054601105823727671878163775830188861225190163246587082220940438020404762351633842302342748379482397089813374996823184618747182988707781130162396953157367117909890450947390351573133063361366387258866955272097032890000188757196464943526021981651416947110068914025720581877868431214100747570281890321461215604068121044568541937795045069866253322874151636404813156411156780683939087201421567299637207587187683126247765447954905313459995687703396349990662997658461847645028401062815701036044620381791048274225070549011355311281025851810944276444723514475452951803900771822516896525355820899671235393927443191171897061244028799433894169240177468645823777255550384838951319509067797601402370938087759280645571783966873070753733580996891083418408582002664319703511671625013899229503060466490445955025480632880381227689456033666898639357136277557626544231538721761814533902236827041339605591565960209216765972826260026706714100472921867096194040800923356962404971746716896475424496252905915822947400937236037330627055186910288203280571678722491293204426903948659073709950370762044888014684285431411908915502122889066006195644265940623562591342175265462849730160000560645739966514925683436804613190575212722620026591768684088669735912280368628594054123897083377864129071784464354099284535457575637280886243929610023606712014342970036827698175347929465159335126074845797385821686282915775204545565777899906480481655045845384891544757242104074269589039621477603125323987845077995450968738302890563174320523174760254656647281489423434636210171444769906480348003005401013762216792614317052868562304985836591200363115900153331438979406857012478140030052484651458482207500929565925938977407800783208558438019515053049094796155920591456232691363720407966580962419414339841188500764335635357535317539528831451719627645963687143946071376207726974546298552637368342514386520004803380103724345428423976030067186680534134338657559951701838412862494094666168783720809518556782915532745082878218767806517775507740046440624178218696594644494676744830975023818806786169126855061777805504607614302465268116291872882928022407100510695349709810539013339906935525752461840922337082837538452240811077687467646806709178617791972474413749520750932458884740510174712963265102019113379618606317282702452133911200911772676739289498794949583293900684794634597256091761751491125549726077019665378958918311877312762416977546319466642460784489001525043866551149977776629686565703786579467657751034907184000953943242875540654810025278870350385441244374902937603846392061110017191821209021730831032762434229711512092168453599483088067181395780326799203959520156257035219907725108314203410554988880646897191573937675755440134499441356829624679508129333992645801992328030489989693971540016835364529889529711248417863630510334060537328120147199729867814620912169817287115299749001169736084727450197120929260708567994644499092055519497371950159342867521760938358015527898332862095892497641288002767837751587039266050550221313673177193402397081686417081922859533621139412591903405132116138016553674589694761315846970441020050007523960348777233056742585663315793220905617080644678087017102638236416691062482784906777692922364401046133501598479094154426835590733296343859103161616603372725021502039807595173228877851802716567229135193932576305101096493944606296077518634336499480580754189949241068506291620644486321233121411760319349583688278405973214223480274102276017471712668545870876418350380517393955872330442531001092887847781135854805633767172312854445110715238646553922918185578663152039689451718506515584011635217169079681252616277600543030995136106978478775463277625337194661192256383240336595900904056714235709516480045529676406755251200995810094122777743002883621376520838192706178751336221306229814093052587296416294266782210210866168787805109896220611097133403754638502981194871078378363861302271220141361338996038064697478976552276173854802327916046360145197026973289819288713841948901502151072253384249892756785422525833284566616051861704261388662969908143126239439486907371746131965978909051892674526345679025584572112382074486067108006858859974980782059284680110246295245802023951372851853388629302279155400467269822007822248918113763556040278239065846264779432433652980019482401608375022624549081493827357092955722764033997670959892722627973690934099303177557278862196726812013951018037475595150803876225693090818050256904294901231126817394683719133682585752207126211509652877436161705087940938023689169508977363331067925792780162793592139653021621558070792014083346569205233248807561194436832113054557067591752711910809779701626114403626088889220427771592442616308584359568461738268923234361047419718807547299929541661581743783374327911915520752503969397934253958501582945212892013966814627832175042354737784426435183817581185892916474107502328566345266627476625132045384911054531291625643315973160342234835889563213781198258798146127460838701517579624094401006566375984058962084366029186833259204915811523147486031018720322223049402276490230398226449414481796150893662322011940086036283629204717196960931575447733517164676086732647971013958800576433358253983014550244106152605130258010233435096771902832404338957545284885467611197115938625566339062934508330537309422918440525107422660262802424971152765973289729220232299315845084854271718821225251317872874910058352591120254804453189400631169873720997098625591441211303831037910046601542756429280526083569072278646070898826178136468644983859289284769442746831966700340136583703244290059923928048254217932990333266141768125751649167770449469327180712078289087320715940567486537429642472299426384709094320278447831632292830032231784296329341152050865021078954551812817581388830295980545892808545550124355187981740766951464501730255640507118933337378025066934244606605486559983007859334118740532239328340199283757416284881716019990464823304501130082991601198092778328793143183984962490745187525615560847206115818013516517899480953167985625155890956842430702082608236114064500378173165456766951446774752181841353091716861726425891614792874943245117800433732526556219305094584406659095638629632798236201489914266819238498411051169413046450956200050031685944653820365424863542167283956473313452053982053875904845888032400179759619756362592611981291822088876509530294028737229844888156423046147297096611891571556488373362826585529684588713189728959591208412546268292626705814614638224932442442289835032525668005807330057650462217709446262177010873867636622141786289890435219334844663123690158169618025534789464770956369363870424419857892691589729497782413894467866609078119058964608753289615461282297035944655339519857627560005900573895084090704390797526183165654657339878193535657408677128441725047884045668036362825121191396542436987103632130020622164571035411161068644851938086258518220480075913199316855287101469725560326704003115193839416001549072564674783444854498529592456364080602386076422366702907944852270258690993248869735083889634402124699728699042169474803119061755359588067400630681621641513863490140794653594312677928087177297104287102292065618546549751200580622491323992441595892696239306786563996359103799883914147973294254081725197483008206164818186984189781376529075096634703756950727052056330245355902293493256316255810437953943077459206729709746021037218240378351400915163344982770617101664178215587643221931785452338650475061454598957484867215049005452621108286419196872919798582388695004939657540926999654876077190511429972318249153218684184247512567178124766977101330628535053748235331551647078901201009826790669184702555900518948425977501630985358080979067825698381367866490131720461053299761230507202386765701657002982785445607830540154187814407341295267789768185890833487394650470208120767284039972729278726721651394867788576105692683288828891716573115647151355898597243831288732716200884146872060934134385765280236552206136391572684878323097930396968154122902362210032959210759523911371104279428446078389072637045945922744695658297997827529284065365832063079458449626464994343047833539266589633304936369409020042705890820019254262714135469169635629971453492596314490991511946866415141576292810352032672928819872814542642048630089640069481210798858331897774711108502688022363096655496801966344366332612523894094092739348076043971374741349205995607533454920915293754399909716467488888731917108482615787566347629177025529625659747821656553672829012098962087429101974755107538499625105013175276681440299239061960169653412695865079561918996619388246744817295656230947900409625601797380427778357559971040433365408150946228314885383951078607447301912539103361247143177144881746812228794536164952472034857412210939243219445550262404883493513754087495015278213976370836756440039425486025177222010470091711185026842914633318628391523332036190410772900849824751367018458883940430555889274158426838330704601262505749037689795301838027966114641436371745140238179951013386584661835315050875865999378742852789676795092037932605011617854699572851482314696220243118420587093920626191241733894010942421054583121683570891076815331351255849634586751823313070638718350045092765923157074798191358318443579787985239483809313208384563801882172331644712941882346139869197356685335704206343779441278401845641559341883672610068984728305696067974826923996048700679550965803011239075472775993876922021171896450265379389035221268641237068836494146406184197568814851401118062206674326526210471880132240331822411319736434160658865078418474036803635449659012405109769711879628096841803776561994614307320819015642053901484805115278296189948396711671004153093757724894670596658577653015906136122249176587442087524085762465327038233362558698400099842783974569567457920689771732204122903463945517419104954834559104935794349006472405707183278703842392724936938744610958464119510152654940782790403622422695422615703329657867678535439541721056377572434517281919892043471638826167037636480905838577567195394157737539482533953514963359797625320043363087279694996405579797800645457400539683482251535428737699704125014464579786575140806838300047136087588071396015281467573546733808850877355847788022952949830676962023975321193538832970544562350010961118121337946229465499948395175891340522918828725026076295042839256626757994376250191745743873346104873161454561233465516360461699826458089448900331859429214182049452432207198734636334533379668369195693439583303814900570709580137243759022366436035322680981013115751798388696547360296987406630409789825328750783370880641799353423379747541015222128338152222026931368942567780004202671422230947052023046569625810806659252661168008861168374435076158025710713420260801963599660629440047750790641278913531300965141941710667885157545744369494500761358333773491477531838185288521723568343514346186274423313025610871058828135046123947881919460324600193933306690782505206676965923165494714922132954847478097511477381563986165954840162197988651213655936446913806766545704975894485158943712342861165576250445042607837242292046816915141134072092638512364200908197168414114523097973562742916948087100764665239098571619850882910829794170417889557471012501841838436626168755000155266950454172193614075362977236488649276062911521170914286670403792734886111318509614019200333224669038891038779000109093023021838935293103882929717360020798739673335267250126747047917847239603569261280719364180999008921332205099154822290324506219125699460950893003530988550322922817832878291209397264956672409424984763362030503932602779371127595633517908726660228341166480555824316093974277589831218253995708257468266705879458084791062876153563621791331796090819645707736801956845846963205113161091381361598433642718338883142109647821049795756166567833185131171838681485088568566217237773625330431356031002884996500194248834507794363774386729116459164835087389576022819038163995437082557505987593012769462471988691311465608284376396246982547583807965347400914711404090005202061202530492582153050491109876640850457103796814201116381456256424664489358131369160509579370051037326286289946245650554082191235822189923738155823338444368448073702659131752382991916446840344029213294388451704884476132833702578927789914102306669572102139683315851568091200466579621614180060579655470903758449184978466271159462147445690871425171827136888931858459147751118059753931855814502638319974517958998869750952167517261684480086060886206338400049610338589134581406385835516145959902700991872511856026621936843553901751653569096241621539441407946486404338071362047643645042069904872392112532752658296692756093989293566708360980931198666075519333364109262212621292471035204638866796250493354132542111542821808431561295260707453382090105132544678197015186548228191376870599777528001936612913976886964428483998555609851239880374671167180842388997495473308966661673599979230741912075895826244889250273770813928009390037388816314132134894828205024305352863966055836964715153886030192590978158023089956807687408964143654825880953628986290034143665349314341526681000248549429059577532931050446224806015455442570743294283311729211693128456074037221009793575007529310414448559999799262394079630040597609131112041697776680470402489508539685211431443604176564114021930706903266425102679448015249294633254873505018292843586445143867369916379526969651801376311607879947745958332089256897553095862652308674858905193395277386982539025028540230612053778588914166239283141294810541793165770586464180691042650839713905462752244524815142360523880891209276384337217892248245422794346711865241919383648738463590782879551983981547089483419394102389429372717798810176810733855691365034455615415767665123778359502562887878828907044647135066777207707054374016879365064380892816378655538890539892602867984548246216396047428465799409464892632249688813165579310098589698392920171887659449783440430556169108311409748858791630307541120523668259972518025301504239353945056908838455742876509696539271274451024021887962789491939700956507017241101941333340535030155707536547978656647668322035926327136212672401970255299246079858661114568109505655283301051005772333139899614564659665322463021615839596539367262747755162158728793361252061133622993362399157024385001491448557629896188303586246294224684728963892836320233109953538753621563873038230304071494946207361015899934778101912622234779669586614598575719262722254359327790809623349159181766304795366950896521057798855004560196227941810531865109519714299695748992756588663308668996599382334113315175613325763743316541726137184880729746346784970399020122283305525048666843167612112828952910755325961801944885023031644573216860769079875517913096640568664542437473425222041226527457151073172784908980859151673552991358319362114485095464113894207925531708750466542469409093737595563526464915238503831497950793099426640616250833867062297999202029269654316609007689571892975845032338303586511565531947382975138932817054018089544696817200249486582560678215091482206279434443797597101870413328496826109986167792916995365581372607545438801409986450669792452071950872691304545709762934903919605813869582939258876347591889051303286590981141724955481269865662777413885744787590667976913388119800162719807001243636194271664010345818392764728367555472878697878324542258646296787679309092879538874046820103894880019900819485396884513150982413280872880421731637962041373887384125997517242562829943280219877788054362880696948730305718761594937562003655884707942201979631744968231313043779936818287272176895309589454948954186145714115708390023099135655555878503543568665859560180096370789762215279705120699644606494465486957122671549305393035817670246088159925108661189164501426818248479063767834753849427277474283229735249866270272237690085324206080210837633584402684266957898235279299464613478604850610265301016015788363445046520584125444283340329957532623021680690887465303026575243327406793323585863671092236227859928796709058402956135039029146723841584683638695616921650361666725623920801888236625875115466572877881534202325837956759986901753918393532748627037084342594734238473824030022402553047300201592918710381266738009901186362253628424717147751631349130955686120928691068563145193962753690250676174499806696374755118455388641794773555285845888832524870901100651590472354634494777569246957319313483639985524506678259002904495170298527985204907576643098542489574391224478355748655884007254927328316312944868988967927795345412661945557601624558063826647905354118705281058916429326663265108111283016429362107873136783380383663844558496295804360081511839513652707403392480247730390181482481371986197191817894959586803667464966601329356997067082192715674787118702504767299452455095447891576103939624497418117086072565694039666974266690715802397370058612289834251990693159090946477301306367513555192449190405591667143638779853626847828307084276750343302471276405941960788960065078915330127291212650644599650481960261230168743415276668868565572451063549211339957410686989230467624827120419701207770521564367806701998708250217605024051487085450677487140407629798664338786038041530124475633809967380831144084520797217459367777891076625590937846218367514775323726035681217228772344533025992596407393761322863273233220500848565142559252800027117929658476369385620151069470684682878205609616872757264167693052498801196269992535236813339220823643222733630021831851405340605309682569637261858481095127039313893295198805131321895887631736200628381459625420168921676375273312016887753626679507399433696957316375865744081722914095002264780471901534455146291092403662806919538761020370638899109032898216882687974224490610477570436205054252063617013949370544116085430527219055384091041027438744696336730226635444920002309908521731509923911903922959218830627914099595071384771283237176156382427061739704123030708987072451468962904178664392195737908318660412785496508055450160995356893887533345043082669189304096612906179104345580686494226683758745394683039421378815061537796339180242382000869331296743620981953866877219468558319432748748284493174602066823443564733588942092186698044110984545602185208634716327324139169719940566263162520888571460135718286048033569058303638502799944094221579387870255277657982212285154281047776854232139911855638498288176142259638626494130120563654149925198793129880987674926041864657885145668747341331662335365209527382127139736015317147949043459145511479134185018014560830225541986193049567948242939503282768964117181817431776412067134011742619258955394717584692128911971622822625396637474453495457567614958742458357357731933473879160861361216858367025020134293272019973311820757187910248532925985299987453693182748448905614525995924378224972463941554910919926708402745357589377060471962550613838753752123122610995797801087037937490720462184674087048682273454202307215196691719987243254315580499502007195641927395145088644450625690725492898604444236316907152246583358092450355972125109306791802317310782845403646341928836074191540360542315271726937264091020180408678628226563668564949536097257598356876857346005201624687680598861713846465541650226615395892429222702248644486830775894288845643847109336433411580645675133562993527163035940853568306240590030910391397494405097965300594697656191066467530512592437115345000923623201288214907038093713755804783915773519629381952514044568136229804917141630400001202479209184022499969331822486129688352967560124075746819355935973490107423237984223724867599520895346944869468693241782326380450982961744950755037436345968780801191600978230712693717242676754874308037565029339197313686022497316919577470821881383098610185522770019850645116387589496479414275196843175538729117313864444054888281994559983810148480075369711113798957309690885769595367999012725283933697059543971136430874664887860326319805585305864846658184188015042045084649748537653477091443041229383062022352518100863467651122526186427413417858417783744733024788530110753550562013094639399342597383507146561250219217849046922966779450227213719888555679577144006520700018894729220554074644216159928013279823482263628501714871638511483701195048163291031355171738682787515158963876620536039915170447238716838308071990502934603053207210189642715027383369554414542123986957236512692473248203483296579857012987967708532427730570344349935281339719543494128652957656144059340804434838838419939951266056854925108759350508130549197554090848620972257053163142116566790364415115481446444867350914290149530529208743348127981215943822260772934729813632683079901644631757769172957595701316165443624750187946463611481255213727957748986667419548239250954793472653178688205865268784024017016295383292629665046787672301980068289839543900358648116544880402064034017152136689910482315299582351993922226707248413489699419325592070033110693866998028652089503354129574816560720174367524552323165224457746814340009474834824837087180432016385804729253347197191238920742429721813547327914811764504481578153913640941082042938150421886130003549746763135194229222894118088163653451859265765257501384253657242454535850259657168550671884981275342189172805750112989729832877020619090307551074033991170381450177503088873693233844627550069196183239124229647378629720392879264209558859449116763144581839430440616540412171021662429379085986182192213684685607790073998302748611265780589069516985562764995708284185337146227790631224831262346552764472165766388747416620148059358122056450425111746332601798481864570386667146006710509340779148518636702118419841467982233698423132682403190456854357078400270981438036734122827707163761071488638569313735131939147130068244649456850873163973767714769417156370908179371356196813074636169294768851593560779803899888982613995147464954011475063540085357437511742088339623501766500885986200570997890827257721874902328154257098827035738718302933934240956651212970955816864034234315713837259923653330377196683875539244813491123056013143130400611811687363477839766873776612429312354665378920435861627905766771326014030085167894712781353004731541542542727670592904796867140442878879217515614176719843688181136469566370851353866813354589827642953583726324396660209468665774233218580675041597995398471121047776465336545134266713391822385927707919399886042068895916142704468251484488036884434417723128475850800481158024497200684102227191080755495866562422365115532516110550639112891204147187310122410086963829966108965360816088033317470066451023055754332398788512821869755905134728936713489753798406276877709726791700163921585754623955355314335153210033309875132933612494910966679913166857434562092182567499707164204627739429836065979075747203782079164421003588930908969815964801921993102781002160103566084284953851645973564990434296443890967328957939899303389057008155532241384861642605805034300088704050609244734091834530885374480152042397207048356779822275060289929402222736035791642951594417867787544496589374057757313244417376248122432699819615414104844025803747653621037522296157983736558523198853669661083288577811105415413767567278700382920303346792018524319268244002671041937674037898091253771785688646754262761213196941204420304654649497441987705019101614190888915970332171604250429047753476824216553715256875396396609118244891513773863363658431026813530768089051909138676567479056126295278465871371717082184654771349223236726828803397971986755389112955497762822066445447254929939121492493978676793555802332515828805872612354648858639040349267028748810133102511359922834079020121960725676388749268231350236317303552227206488955232282911007416843061211626444761412079559675392240245545982117344934439957267986039390296104165529616398009173248838314934146937640485750482606324307015793313120552686652911836762489356062255605551830934350522965473133809483474676844531906005713483429258993973395399996130795055355535956500558060337373769610891812402859829685219214543338646842502715005258138082672376417400558464536088448659763533111864218288921836304600898842952481172687784076278403966851791198087387836973939828807360086320857231623041122964603052757682854305012601156389092722606032329323967531435954035234750436249982917403483987452164392668643005477859069817455577882043696892944158541690646299540040418095171754749601440704571299571361152059250612593345676604686899888222747951811813834961904595053937632123731377075447103828355525378150651212987597896615321896475078864704994595517237670374555565231380190979417676510191423572772260410007485726492960244653690242836751077509090062316343043030919583779752648246124603889008815884368165684794741643318574153497301216200566433118386994986174128017804956911327731907794859304514432700941263377800239709013556243115901888561785605994871807927737610016175393953159419077307861878694784172272773434368970931168666646962198457085187349601870212678601439724299653796815420325418098975133552489996007743852615211591784080765796042530262412687534495831549922319960370082294685295178956488932259904739072886879315472763541661391426157970956027357079466153934777897075260262171374187651912227635807089788254571904917324830763290499871948536913389076519856995623250302606900712639987953887610040179111274145698608883948298397989933270192096183525589163699090583189444307350103052636839596924633399385239386705120480932979550978992566445152649773697107677698786972455331023433022424598399425353976063666863418382413548596144389071003480648433743303009431245512547112764902662629099954267820490380213967209518670538873399914648248922676957419129975921630517776596115864705144706931281911900226300177726332405580038102234812950948773875393821805121480603640370049108855261713072895529139711341685661514493519477298477109010952862852657605226051170402598781240660928210771340683152343899411412948888429076285730159119643129290267423305409428032355079309359122287947449001891340149358018538223355556574040812785057727853981766162650977618866030606084827247522430685385402699812559709859422465493790256277109489235317150818028506076818157504998918256982716833988706461337822025652618953847755564954214661953488982773675592295094917550817107344097009603063817914817680920632081597687527441185273328378288657714984445886265726137626480432226687731641007766835697493023719964067787386973054590659725551879431325442220563926284696760955960591658096450752927480708388696031436499790891866068129384452811128133336803938116025546729801748030928233171830257131239291628896000039330180208803369453908534817379256265283321780234724242071351866398177295693550841278969679796909620663168497890523196251242047551306539121931230813586330022709938751190767544088629009012896044767863093677033448665606750785837709630983064594957291506429072949104239391301522571165302716724178032862669895027316325907633701632920958300074254706337467537033715659521440907193715654824858146972451482422864144752745454039184378660911335840135276634104243303415564256928012093937216907244277654723968305950716263776430879995213391875437081463869315627143641077263711378147832977451937092178372046130045232941871669115474069571215632839812614847647818849531691192960091686864408054076939864179542959456052565065176680972343028477015120037180419300162574157727965772704443927221795169799434527952888342994405780348685119272544822503045605045088898654482978031079803234467282526782785660275152501474104407571807955981153340632421716268678269840565076375143074956410278013238167030873595683333121505192559184763009155130251014571360211266578525602063863029923773962243657707791940082731462640669283997933321627615025986166480011885851897756303990036546180182982560939830243741634920019299666106013118862813592051079437573274497264616262224833830110136653068972211331473484868666527841278831501244236576241721955824350807239172752959354052586255214026979341384769999457886711233981162671655374240119005596471480845880732940967150244739054481936309914602983965324914044333071168804771501093441816107695798702561609002695119427474858258789471448538396962764908130796364675347311230943970237693413790634657857038922132074533035551290806128338797828850090235597273338660274707488514584166767661609564750430899195746752886002163634932614826660569937673787879164979165496075502564784937312435910406532892928352753798302104049729147120400306274671976054866815278898020842574053580990495780085930001327246010802964715257214880915477692508151799579173761109891265439391132200980316912314784014913474672322351383211602028621501948763965553847740415918939196235562223422580058408897572121365122768085297400523462481727249517168274065574910075779077987870146174449690236201181796952691665988866930738695491945708209745360180569712790607967013754150086057991025823855629796340867290198024271304191690432404374432149642518698950348491722794761818042312670885901661937330501808111961128666830730669499129029870697629414679411550393894803579300508954799949344912761825725859590354286557242125239165807532850012307747310886726156253216577788145855268460058173220109593466406653051379055422393840419855356218098480167232464235299419850806068841510275332368983771395339407898589169095377019842315604822981295442281917577999475487685512244438803982696413576738836837041172924548781687285803868289117298630860100368800310216514677814827817959272103166259756257721628320255142305917540500816389321232744522260513356823489977075118204193133318101802967062906736007421558999545832758196949081679148716908863825941986184538312484743976770237676648749217767476310590680614980535163107238324329758074158068995868335668644413627162593219601613073633887953255202872173120066185956155171486827516935093751170877942760850834782115213448204050112954133358633815491303213772541241521950115080182814199995845560936533636836557427667269455354112190432646249412497678023475875351119840120442924046366083843390213967544160733403554293716871706299823933879827952531090814769254868745894501743415218261929249504156992702464695343523530085990579415048782762835739715221735512097859232814967339051751057736877243040131412403151229996901924713027076160114002738666528519071298212055594745008966788051103029664417448655028245251294188094373931617130118067152101213880944371264365691122506321028211295132536662191497012511779889802416878597950974750949756835186032338823504773232081153313802244687881791097720443644348484587653980750069995264356532135886120971856228277526213051178555587358338308712357332184737645260095547976298655068542191626484489776649676605566514042898011249217133973285619710296989519095184693124324473797370106786625723539784986305354868986590154770474842752877561538339594602721984241456912737077425647470233869567508761310725169469352831662506480086690914092368416313873544561344292588243916997752481221169357565469447301614956887446892656453683135408842597574600219610240372750696862824116468635435075506981698720093382308986875740371537494459748072808446468880530802154750031003673313288547933437575260244867116465569422670577664877603916182473791268071492161197717933834712242515639303974508482777913418659008651452166253191739014620026039660288159279700267830790578063785851216213949798263578052590763909929026630650800889936492510060954819224584869227296737517735224946057847378351841375491621477864823026742591461703347912796510022245374653280643334097572259873277786546752827718089291698666232582107391058493600253059888465275662715102003497544234971833703997087185872949463902898229303280142619022771416054257297021622161880537450626128244893435815719751012958737453074694805739294469241362219737046595682748267730297701421803336843238368475944390051575196220334341580862974129324822801375530593834505390658720206426216775562133077236482356574453598298783257544474920343261929078312508188342903742374997194654644133467520461820022256375925996245227749960108713540173048588946890126646032154250100534202950523352186611710831272885399096953520386225777193695555136497532830295362532670464571150876308566603755294440247095159333334957678176538786349300839051317999542387283440426835424631111573744558041282963793733977145403039300893883150994514106670839239080174976660766815273506614155024442443163464673706713357994715954619967561349012025185068296504648321772568420104291984734961137310790294518023137097578076400593795015749845527889229449757935715536799595716281864506959684838120877836187991014167131575367159199259252708887252334735139883872064343464351869628909366307671470395722322674660459156256053136809368894352027383478360962861022980174274898382740509226310759722970161560952010154715022640900090181468786290329665746760757996960195326913796075297191549933318654026718745152652080631532658103938234210686807869066555048923118769811474060370847285654576239791194451043344401093347701801550568721198657479450726377588445113240092654028408672813909602355426174583216125892193887743644225984113640454175492053298303240205208372470791366510082483917868952945753948026077127172758364233373232038299208304611690761932399435287038808913281871883318073736958705146739543810198533142154834959355635296895924487379295816569105928604436810724559529614597620155881830541022287243165233152716966012778917864445488101023196706659447306069947193947848752717271846914885940910855808474182879587901432564956857389086216385053011881822051241694060975856892722975688330870928460948707071405922924111362185327565805547870311751542767084759834513787910741432136487358229978972196329564425866222321132295661182556717460826846224647737544430532514935020465530843155678586323966433113306167183052530889051964604422223692457463868619182327571227581755411409097416128580150777845271350072137409503086877361702347769790166517998466232542939269922489360745283992399055173518307518586483348259766231758433087108533607620500583187356136910228656984384184516091956586095301764204672213739260035531590153968775290049843375964593336050606490346656767566298952433321042663112768531146981090241293216458512174608311100894308885411725411595657698782944327200039890556542609735143730837449001663754704678117758168651873868327408964520924125607974353980713397037006127487432009594134937705416032990892106522216307904110818881909607382446745847506079020221986930618438447354174645530022137465650432036626856815926721094572086191627514298583542176454160908739766926928313319241214557499722889450028061767344991590090511956684573781316244229103505605420601823548335645519323681273549960556069393113295615005571256319837869120133961995246202240931709665355332904455759948392852578841565496278528244310253513777746418443207797179642700931728925713012000406123825732863656475440326226798833327080753096761410680493189253516086175599243630717951670015243089779662732866151374828333137932282190412821967423422702884048487173463370147011518206781633919962360871121365495230442201244368268747048836758725454317092273157769387731936834750980911363039741625186341977029410290982127305700707968748558810635754638872587016612168863286700488832264345916111625601210253154998104570093192472921087064730091067885522329392105160291655597603087703122179870971825201289800438496637015750596909505008961775691290158287938257196134243451380863293736388736830571266406958824864513540462953913135547238984913725910872018445273248831786094010699919976376611474350074305573037927110015362070823023424299126970029873091444219904719811412413884401135805025376289212921915399829212661020589725261049732218532178906715450292116021691624236916923186109677008813046602576373765002230222751040560680852656458381481797588837773344543247912480675958078819592249120571953313881138073041869125900741689666476283020144838187960278505487067197487414791519755077175714575785600135428063381278949180616372335127935869678008880352784995783810267402259405274927144066923869793020172175175905540519988513084283327947670078170919352022386324435141910560751204819384446094695936807336781567466738516330396135960526772813799770771852595373815028296578913477709032296782720966612129437254356722656046144245892601382392525522745554004515148703547206436686148480025142170111009004980520632879693875446635041975122163240255348328552094583898992826883930721300059726911848824008198777441600489541885434865167614010268011960319456270182828878507317632819413548951036039058243978049281060656894474246423472025840448679718918763351440789925963839684963081181157989519875932300155974550451435754944854515820739012281703132964548059641841785005266324446408158224398177617626657684163583930614500330607056006652348206084160833981898523463025382247482428478130196638084852173543252497438859174989020153686787805858306064778092966723755288166802788876063894017659792786249484867802055409103137613249977456281638400535262799297755872727179848392501353755401058522667537946805348479711751980464755401240283956015189760532244466170744796212668058593107699706052452328182587545181248444056548239683768965973919380738979614003741412806416586909568112124187682840834880564348056201222749078328625888625178636410120599259652752529280598538945726953024134701403253858195812025207622177036086866058144506659151824170837548782816729973758719012571762959992037115714403652494431818814609226905181855717529501654967813960386855033267965704443616309126274523211367359120322107393511729806258718082442640210428931174642643460167236187394855612277199694761517586915611187707399129358907459958375302202114049185051283017208497093031273571308367339665297967652643693296085276374084383838080598626571402899897634451439312982559797981837754488688597693014206244925931580583725570157124250595162036887098974799891091697344061738309817427952122740965026542183350302925997335223951876349220958119579163705771040438134012879046771243489025447034746227412293118992584731654891149122565591455777294082195546749719625852801799735318798425015056647460654185683077112305559037852404126947574516046691845736230963126587131419300763415281450400786741086668777494674021374361566498085914186575651771097801716658085076629203876171289011511155041315945262126405824678154047062575461637134963752880925471550106218364745379860427316511514745249801241433820668198445746050148999414653709062114753983551225639920367941705761054128557449111805721928961479092671615291296322514276221620935999943553486551540013399136333458593702211795804304175447563676459621283814658732305999196042203644888914899047944038297485463763806436090376031147290062809801582285497125616120348222198437263010219369033140216790707649227259080148120218493371564921718180749065230474025782162186923044513593334296000817307269577614890591837504733676084225570763272877885266519302684849113434686117223095715733385535167369044772150316109626241165988923133052069115533149214580374647984303514775339660222883205711825803554639580749959254772179751340187590897226040261970124505785256805733141575441984662564234854491695045591867857325720041822917306896841724736762546443239180574502327427129805649103176493085668788805278367543696994543163860981980460909428782304924611090300075681939725756045763125171269183509311419231394873884748118884155882495528643314641046915442293295577655219662978619116635454941117924801588611825411435516848191824393650434423964524532863588810899235161415500779603898564905122441775456968578505804297798843446285680248720900472400319459418146686745296272921463780653660565968431374764745831791182065671208971326107429727272629643988362382143330339885472778288042363114846829414379560665634755704386385918726209389327964263719726629681366382028933069465757753694416726385372900471054325034239181715091143563676003399183108691443794522595993891663969132856861080631418802478355125556217856028342031275184154736960863874200329957033184664827024272743154428075756068675601526371530178261835789650861952272227242189875312976875776445462883641982084251652873819027691431412628915116748465543233074938251666909824868690163239605473796868193499161559919687240033436038323843173023764582545367710592700419536011522646581899079050550355904790207421092234392580897842967872388738138417921456284491136819846923166267479991610795629085509231177198162276637087812241977649014412343143459231801170064005365730574573916251899723138226943461870276123574785755895061315242765285486223878795162131119604899387808767943399566641191151372621399170046562534458458996344015103606641744914857602432589240629814518240537038197937724624122924240771659107316283678398108955941166771309290606277272191851349982835346859549167684723150428420643208218805630349246356492630791738185449079532969398788581252288462943910444600682804303047156748547798755091304498491680628920799620413600271033420816946630301389493528985828682340270252513620697058740412981445760114090072475338938767988947732061585804088669843265652037225275598165664779330853608654666977419217625232687245087237053471217237240706298708565005857631805081569744996086464079519754016653376656771581256021990946549903752626929697336340973800492675405846294848855079228652833671385149504320667438810283827770844965417255545370370249313929612840026077494368546617200892123643224575425940600917876682368855620994296227419008277835577850926350328032174679936073614282876078356642993643721452758721406895746182067282328379512417190441100933078028441695836312184444877656464696450135968152106013710687588007390717949572939203335621272829980637508655779124051098825291174204575388267448394661168901090011110415035697153439748405185993516144450947651680750630238800746403228990401267348521336781777478109250265630806625614979611871956748802988867986442458498018860963954893085941732725243460192886466861183244605920184389403277980542167015832487963639456871897769835817031850021523382500174082660445491894803602541000854056017703431281068108653349128378719396088173439331922229479634685971002665782542706661180896508064753717810087533952405350481456104292087521759877593719324837866116489242084718935344968848934041024482467571679366922118462828289470858028065915441987884889661397136853153723001657570924887325027905711601348845825359067605002671723032728241154260008466973594642355604571799560256414241766817514921191576959543802876187587083642021488173495896279771803804381978366410662171028608582473313919355652376435521429583127316829966852376554099581532047388103130960320693049332176594746779096169606312882615294994487861796762666231670148455227519822242921593213992884333216462525822290611406752696344953828478482219605271753241198031166645077048497412459763551331557914462434415696695531244298579288809600995361731850823334579957239425843957132931024985347250264556803233762359757309715514910467958544027469012772156042330540364229900607747065342327231377827955593107845430391023789491015272212099714970426191895858205956320374315476532898304538769121470279595125492234241473897594562925603876102603642636793439268307406610125485824067169788223636679590907305927876998712401925966174400519292284714860682585831341729727305506693334529521027948474210239107140701922576175078976563426759712336645788956388575329312236389432088441062907338248229722820049370590747567252820989956354678671346913143544511800255669844495398841180724268791312533564893559497639170997815375966632220006460963581278322783224785620016271808355746704356705751752862726511971843832994153582647712952578587244532157550263529334771609582686650016255159968844711398370473021441304278187738136763133163901431742529661989887456482723269870364931301199532478492006398288558386552085220345555792847968834226016741760242741682783563886961934341652616411029353194319756730362277720102191617217852660344351528119591103272323057270497419662667743990667747866193453568476926265896080280198132604063865005544880135473515157468048291382355594428364302322794661000960108029231862760129271770176219775536593399740162245230291192546177826698583045250895197027112543821746282587921408010692423559022457060526773771834231990967964557505003175029696407835180885170495654657272904831392774183578638706727841461302835200145189987558336743957011097348084513742113649418371045920095229978203952811979931176497447450482115893831548401289382448170522156244626704749925207862961873104223008633229690591603948908275504183158644114105203202544473387051425563831778566042538437518484015419882934727326358039451592887512433983149526812098362462575569383262512561287614768509001529516636918082839994717318883487583448921628622448738239465197251245536799051990696900605899686293587669612768019054579689213639111692832663941800870960726586322340326200867823032560863546664525011128421891485458598295504243670769105660168756726654345597461070730431299964202202860796128178341073184989710755391654152838437631191211486419899922267443837087382806237751215527263853370776659440590605163610409759976185288451077802389424106491358723506535814804335488726523924554279950699513073506720476466047414591540335183108002009342691500352173406825070710439062576523606859375682652015401502264740760670287080490426268789063379664015158285973866394153562430251139027497658991091951148789453253262455711739899443330722293719131723353810158203008186715855835389890909898554391302335896424528672675612722861089001203554453457305884689211979420152508308568247520711247528782455269808013472963540729316949972223866416094960742866039829464305676021639521487845776606305131237503790575192711502839027695672383550060945950932122982714359603183450631036827067452904859764979197330825147094545512526889207878788854584463545161540153223464209341342760550089888667055134508248809097625850450753852149048180590590835770454623837775976204345310650956690035234636872923132406576034140243551966027555796631240533755081425953537132510244070710219797424869893961313213522197455190607440715799062327494475592532220051408329523836497028433196994313098130425081441059926788714167693659666953035716571122778303256040085036782065407680407722495854651377517591341367999760690272300587374205931053875444721003287688411863996050488734978884991311482173053718482099045427976187826732780099678495126058903372980969235182167521783929551648910607486615393557049285806834585910748284085256503170915418762550217169802665606919628201236805964891957213829867172008189370941484163547597126001668698339965071355156143302050760031815004537391572462316714821520018517216122594200512671813090645968203027695004916029879832338233158077485288283962217061200092175849531406188965658676585824160560726937551828448805143894857946116297127772898643462068118903470281842817375342466049694185119727772450008610615234006217611576860626543923456368514768548813581680379654192154060052716999603177030830026482524322692770830432449098048160141976245303727351275176108695270266466253442852732927532823775330260610685000008321638364388313613999813365537160174210511783914282580481510354420860244993540586821383603348922843751153380872073461417672746737135874469630509957335282495040935560290431508264893078677585410575459090228944878126848513515607233504276382989443599698007968839039081343929602175362859791188197718214839536159151144290568418203308336654470095742960378533225856740324034422170834708485823997702191674867198117451968909017939615929283952582486012842640946147248178960433852937566939725655311444365496796488635966149682339152439379206230386353574047310111825835780920947729736941381240289181854146612417013043102323641953464323055188906162603447410002221642473361715811425283622930930130006914199818632036298253399392324506816058094381362335565660288013496007133313890490844830573944409489546110981225549681068243554219452570432368175052296014178855028280746804189406935874620543454795491876746226659506796190770913382317851417729209505789795684910838885613212240233085544717581142353540587688542460521875592799407487633370336112302847027738851083218633411580576148151439213137566672446458676675666249492361500302905947973785993884827229730100425247762899308831962471480543501967400829321381293096598220766817236743151003274572234030501587930631891950562302632705029232916772880169527553262401536713998200032622531633581667421026946208384724330727725106059934316817010419970372516248366760160218517424059734807165800614447671514402235123080985790236035638897308581224762109094725773104958221137720030813803631855187050460207604474055580811424182569536249639252305710169045246951531879999814575373054657519062922499822342206206732929433727519765264000134567302841335012062489574609568364459282116643066328306503821279416925186674448996709913203924755520249184510904781461099767334373534667141847268327622679419384220007327132632483379011659649119963712244624228724703967456053487260664118705914604182009198137733699862004702014783174384598346017911860697540363192905985566143254574363563214099896724927847326515101286405220647237320335055086371127026050669801299281213269842998461549733433177223456450845982169812647886182887706485048960447091866064336494292692958453900282570405893881689742001207551841235115659211913489839621810536401660107279122440173928619313228257359727197432509257706109198427261813786487121943391431381016637973988144463476052091796110768200893841090798460489327129874990227194494988664991682088612838029699973301058175298314974892651610671504716826161143883869845709125250770568224061409493693559345432325138177073414028609461334405150066922348671777726075524147773981697764504683578251791935200607970024017411469584687448308950557728139041917896461151659961146754095323039675078989850025303956274454597344214569023333648727415621664258808295619253913852891078090957287587801698452562430894198817508113259788552177256554901371040379503803728918490804762135418976111096339155716594118943660426394143062018817318139491425477103645346618086844209088037639125701014416452423890691949933934801432364934733898074295547514250961480911563618087928549248323794058146518385275652310138813840274627718193589255064751378260761162016481871642689153276706383244879196804408145125859347582586810922705955122904099136038700312693870878995521133562387168978711844923241576577106287680722939613817640086759233289371213868865514617372118856983396125664605815643994030566928530736024438771323076481725879729418357822397814926686933978696058706018705520037398145033837399942661687653902652456280651838094812999044733459637935527953934282816869357346985088183791804357808045981933380164623233454126051492368249169237589503438332326364952327765801355405238503166094914869073963695630177605371771093325704180486898495536205866540899813233411922994417762131152868747105142900081110471474870266906429454909703410559359531592620478447744255768517810938479117435143104115575379044112671822872859040967256512885814923556293345500461559860307281959319807868790791594762126429959575598225631595544279722696597088366580400512538414780988771483230636876471768327819631619459388257538973434032988518197705704459964216988018241794713308852776050381955174874315262265746744812767184086807934216210704043598750044884188477014239795043722860617433083944839361983579368499442317319480207482673971483056070427623285736004815366817836849591538864071380642693388992654986292863173329978772345651165721359605061710208526971040258685586248695383669571669047405343780397243170551727700834296379480434576015072873525488268666459658537509199629684058271698397375086144173229216175949211821216879048640654946600163322443019745268129027553598926183296878896583917376205277328855971704676808689277465480047128573806457655217636656944051098258631681274908912860919614465976703497328423734679040801403397118258838772974259142650909346547639772107899051745087518528275487987864526792855402803022004759296264326959533954625876698778723257390282901271304812734149116655136902500434247492742949164759082617165888214805342235429702553997647788228002030476025710180077142490489687727313507709950170929742910165883624130972215297012909925300278898357793527975548440447705643382951260658053444842961975291105564237326187966287740652503367406168878510527255874955851135792410744216866765624444375540333700280848163878448994188033334701752597479854877079259170548548961059408759798218595761007578291940406056199191148288361165509588204418796785936778523045922523057130953306082643954224988465591852672720267655545491043605666966398642098184578779714863610689400835833504328506061846550471713492650336993980608715553695824498669772139121988454666900237172200608007380883123109861113131071666854098531090983501792718698926491604435826821712748469882235665613732146301219307498790366332750503415586974888605618109470356269705090360794687854849807279484916918865907170879611598863712295770907279754548377098242491747864812852625478912072335518250077994165839591236322192666601042066318478581320551067031570489692977919064474475584255302899957147519091820178726555336791428244728650943773340627202507354560795290853116862516755394339002539517008847452427092304384817662138895970368672217465622242011230859883000284804873916176159779648215365798220846557505952747430884222228230097525769717859354552370918775062760081805385856244462037423738982796343499390545496027741268312097357499722474478856118954842502198774025689931424105453005846647118178362775783122171404041435760143160244241185630138845730125976659088869554568104978254252497829128146697554155877762334007791171523558805628602916456628209274274754158202229895197794831468668769267014572984278918481361064013429431949589367837935151847991607721384342438091695515227855793440870025263237702719856137790130203114587780958148242709439928692793437340431307621100188108006328233986301889581253359795402561210838182221396933481311286668872653028336413342932473201338032484058259104230505242406285839034470699596528081820376032694539858403264817479781543548855431022203187541536190720927723130852919252140217988215273824085861431827301382011083037801679547585930723991188142474776535388649191696442798573452948491921931019991108794869605675769277969266295760135717416773518515894906252148343877972714794926820557270411948447091231374278818795708143883364696585038517715421831395544659092266006395576477744520975306334147138572705836670509332498384169618782318478107891585728387401902914404841873680845765605629514860292072512342472603173533162939531469337300011634726425399688160772432694259844338080254736681391814534402496541624400732752324357973379346142944710961025626283124907001008678488988443210935648902293195247447519325931704302900844822648068873966321045517089449184533858536285964015641604040871121558820830580149260770369839863253701289755927578217522242941747686695853481068690387721812031136592546795925845205211437098569699316052220876818953311602440674508660709275638463339048019966796388897796293960725510906472379214731085991167900968412705519953316179759286974680060983786795851208022953345864532854992488972356820423989830590099376766434202371873681602242535365606536611611486548677678549941275221159530640160636180848897498263945356516745158194303702700338173127939989749032698100335809944773312170470317425725113188858338599218416910508493378502300132817289063291775317245975434936321989507030062380282881317358919788378586663016559315873765743738132453466798542869582011830475754976458749683536896707724618331880529259930793053698771741436355128261642580980152315228122953447287071179681025127447208624767026418140093993253364941693390646776296062252246015206764237262817839526801175660188608781020969658333937448375982040087180509419162861349873965745089434681444979088229522776634075734227142815350481970121755050893477249382219319494305868021380673612912933057478615118976798481809439987236599322968787002264077270843424788883877255260009487432198553059851623503618752703988324242771086021551927698122216165111804108198571012346712219112729286201667991560479247241736996796269362475563048709976451853520729016966103842276288949120390833783182864304170376616386228105460594574110856945851276762441665332073104097368799441812808352968771852034068447867302417182766234471663370463208068069063831450845312585499779650833490948347382415412515906339995988310229922436863656661493578755315313843031023088010181648729663883207640796795088714856858188089430522116753210816034135268443855797126989248140894588449386190014651936924080381110326512877295259133277361169695327456088821685754120696120210236656227976645405272080490475149898828228215920093554728121742387112440514912864545466550836606996469039237478396082406301066010950800692992648608306543104733288514561003677192980139634358683939943912227576337248770112371598881106406370568418432751173529598650933841703759443375632031618345286631399278501528904681396256078003606718115769688444207181688832408896085393588541503371490235136298622514832759966516770554134585139010873030305398076994765836916325466543642587536349172677926961080728523701472022337491316399932714125660473814676531858158006950404156862649370535110079577571385002643620975616603719588425741442336215844579108743513992897586511484442191501108942577762395809099752105413049864012883632528114964611858471852981231993814137303241052730687830038792433887070611712762219330254352582499380452328068306403621390852888416518864366511920604211620788211119083535464137814747716864084148681807634347245519915366737813050600456068287016091567880580789498064256981227310202291310874733535573582012443329499339850647787466652779315291556600699646567599442777962818215301549598965322289141783692963693769188970901367812687073284469014015681314043167920196258176412675658437406144433351931108831076158014520483359787713665082585063365437927654832179055005871301473949469157925941913690577008485025270227168514475136596350576133334267268867997664637439254945891367982015876015570851669182450124436352106464804220309687541330075557324799722009704726719986096756638213822477632701754810711827577662801001826157379542846328880827099291041357163608021945516266254802565445434820322367397206116334019047082656366363451177603676718767743074786984124039723933316831506544794517058147164250129077227139730437187299173113865862946355533847195118549158722987083798939723319314603918224382256415718649965377320316224338652140936234638772748532855716865388917792459483598615058394419559641628677976998682103986869168331351907089512174942615632042162994393291074683146239528783416815839187497998401261011063846333944672282963252058827619863521759428334810329355801541612956510823558695228058165753210578300052883397681655428897192937245380059435151103925464265395598370643596127629544205756521217986489024002503546770523116632222105972468882236937277375830353404754443944799132971112417309944827427061554887189305699297307659227341644073974472734108250110142709285127896145899665434675171793693765044762800195135950245149552028855520076372180367062042513758078074597265390913703286948448157022747937288571231083877027012863446120908180850850257934660551321758577434221246498108971601228155508378142383267410533386555644978390089030795818066912555881944939345083527144136480274442356577136810163262931118378954201232195909978474948986471834905545135425660735095783346863462222582027042276887154157175791365736722475307044546037919707299750200156719897338549304678020709695243330625052910957713840438797449012880091829272712421125831957469637348861257946860732134517627506886481628252740777241240907928904234077819005731173129143993848977368709860717535351161336033787217867701152649156342520660645705052533630968243060658550134077556782545589800599334358069048582134518822118299063284742212103481271479293444534556414813019749291904672644935296730935372197843811024776389394323001219584041452532396042937508935969960101159759080551516682421600524838710948975576814232915038486007246426566907743525903032633720204151101013215752130100328287987154344569656725188396093533602659541667852819481390732558799519106232086385637070489210027493117016648420740703575768057318516501280759977730431370265902904601239295038032742490170217251464345811510258717128846777855665299995980929647699305146560950756531993412465344091718878796926838997529925061715222216334157050501722992008696916813549504885303657476527807504323660017925408473964436368161516251280899211459013699149839450914914465153414806608486249972963113357754685073536991049501723373309518874482138763447484657012864580265832604602617197645535033126221917645088977024665153804105933260195238229144091298283744314781134541812714097205793296975741669695522301673802094211811868377578179238385613305139909304516011950135924293742328856316184631824016539427808099772917465075320488287774312199948127942943323696322722457764511363142589328230978694339170372728633481382336899782254709875041634138660053206667940466562054757327349040295057336094731735367959348283572753482573547332096866100458627557624608275598871951900744724166302883176402585969413942333791932549527118929516628213189704806187222063068143780350757254736402768560281589311514185634462893306711281226463410831548805021128970111854873632838616071704054994422425696771221295545868703887658523440769666500811166686080012462591055887154118963822775469568061265619023226777727400906926837222886106007800704456155586673944643687573530095082136437755187991739125392453629714839746716513879196677417960486099212531313624307177746688202686840770049286898031656716272621955674060295424756679345436998896878125403789913162642636768513723875690147959915559571353829374452692519343696110301852976122068486129708498292571247844486127647940722374543391031457918947622395585795667279057236998731600466594637587958481017092929815545146720167113256430643015812450454416389713149970714129045088133109531495051562794395601172395261247896418469226084504433240889310735482473665847607434934281703210234147661287569447830581492223486553694606273282630261350862106991439561395018760283387896310833399045333186902243056112247566288067925718098862189013000080870612820002774501592308910112980062549509140757324952794956987517428899963174102177067123279015234882746094056248698749195201001672909427892247508868994626958765476958463511064366795267590299035173685896105248940904077939599821313955064140421642383771147993903720432095149704384995511143410741179199384930527974962003203234179778174652895906175558888130679951363312875575981531218558792183482436071351250068163676054548271774416606514537466616353536777867185151973577502592357742892448250898527204505522457479097728413200418048621156007178811641538637279404429039508018141167957098964967205111841941083228417834051285522925836262360067098915162829404618387055608042470273994186712993946882901904218901039195566997375072157252701121131935756842257631479751054101787835275998858930292850667796498922178505538822696651900592102464685583698288072650279742462381764426835187840201034898497962562291551434466460069241428243123339947661332982863783463691786202341793461611719287458147657654041327864292744561837653048235021173684249624716714031500223410040667031897737821548076278863295909301811123420187992947464690976944344731710689654489686654282400841288019476775063863362353628945223558132269352989447125867507954707468964289095848487819193927179309928867912529164553879287134982946131454878700855630423308119019069911792155143574257496206449115293079042933086425644461489727665474681583709636396025123469178287484243467780690028192547887659110260662587288317408363557456760387391817840714318494846740042598727296457589378420570099416285754970830522781779414337112127451558051361335484693878254209414639398369026300799450508741944781210109973387058231275613639545255661385964804491101555062009384663710646237578190537912516261789176006931855444703359857872581483166031075556933964421880052503768228146964095479638893827282602768979291936200960047124606215245130330288247412513671995734153416654904730042861199690416604507314261738277234576723949087268273633240766217196018005263858822779304095768945251455453918787967155606122831881242438546271198337995053291600233467487294960078237212399162936979000799343031413602133938224892634052376649515107411239355976186133138468690992584133175599902007904882632386929902438694815411158313532895588400354841053042572341894079785077592829669496663463082054023081529546277978644417802334981464778510275600779148460759904275632515119621435163271507880338421949732526192529863543724478855649213642801848009190476687358492501217805572454886082165177915590694816535626218205064487050423117784886387148246542780608368559398028238217398252639049356662318360373152275611577622030085455215910762810753388918339205228272551370270862444901821395587046508358130304662477167138114883590468834550245663669638912134947738847886342289318003113794544084904363136015249701481096800783026272527075124648498577084856036185455099167845013600453833730100504667126891957246314621387780979499644052265824589974867461323148479723137418585450026964778428784856426305942838203788459782845990216749209785033222234713554475480357700203873713230919214873121738783837836810039811555344755496716824161018094623679944128339441706345847010409548506082291497622087019356531462746947220031919197777622259439165634910665720531429828330479194489086910250074669384098121637516743079610951960492490177472022865456379869519560976262944321149354971784837158194953942933083101708005204762589395807257670187603144391302003828882632166587782163793237663243561542247530764997272071248469076833928571230786744834259332314131543094578930772377833143664739987106413143905904621207056659342458585752759029352100745339263153011487434653197229998880237622444365418673552684117759284758769512755341999874261210186029890025637566772763435847422375797470510954513584996309482388557298010537461544004997983412646807956903095480114177665479096977647388127167230396168198251025626653603251826752878445389079929448232244593345092056777801430244800708767382720720171506082830232995855624411671922036624247511240276557309063570017703326487799317119871396580156444061582149794307476410453986813473160877229567597824603561533390999161748588266251984910147876977503614912359689380968972527127671344936729674038001651382829431984774209711288860210678099426401043631124294419362654386152503898827812239064554066788529739695390940176556756188386894241935192478508847621516580927366197264431929098503118732336626431403465531283863287632254211871829548428803053558109484464257929551122699842456292665300742826718119380929493167720359454228302733172351003480016199358052952433897403970084384102267191860299851014008913434266969720523992565540731546052024103326209791270330085781170424169406403354315016377471685759472943753557725700138069843176338405743224868538614040977094811308462558716423103089045559733806995253019050948833422017224476568875884503136162704736084254607206634709719117008063705777496383731967677262266200142736458347514539451510222462564539288049240760190643110706928587294847390413391912711904841381114647709905058094075256273617002916323724024764546285288784445780688469972738008303552034310969260662505874199329490506064292415362989771770461326637012509658218852457000914560086229717077878765977534526107034552114855527573036378316386139071580320607264149420035325097125298781934469613922526292469089702817727606179759090860624509268485398539930470520664682408049769876293192541579669670789592610258235628453135404511095859819773342002357944695877530175554064532939214489412634283954746965775752345700808933109153274123117835018225695069854777213418515564653170175611351068699736244652333489486625401879113090759728732084217295397209128684830796184271638769302087978456136924944294141081537330553339317471363849073001021516658651234629873290402096128247886349730914985113539062803617339556683188266959098696337815229239884005800666568469498161664207454822636191232567071758096920863194157480263347141160866755354023798690647276861236303608862559874401618223889376200237649118039880567608011595544988747212555687768244244874035203145261646504255550732306727810948774577095867921543183707869174020805377941190472558589369501659221655068755119222022362376290478086326559898992127812045254898562103494893737965851151552728393121759753221754824007364884046631234990598379248658183757486473170864524995197397055806493294762309911479500581933214338572065643691742032090333677606987633366976876407049609561411986540642853363578394155121869616561291588181342683688202025720817330463057359308428099803413759414065116065903841100399672041939930372125912629738932170324356674603554201010933595534079660900685067140088241666347976059864530070608942332242924473698691554560297881174714394962047516577759497259327390755390473120289205368361856372880401188684658859678362956841273533736627788843046939899139727875585924145498501699486759940547752508437980959181297497961784090713687888700212116389096368540386169867463908231390268100131074328826089793738313074274949800079578035968494561203989152694245854507809359638356718387016059130579093095205059858864825597666775009056086452180786447396807323477011707783454927563323491668593507568795776901696811496459211249635000753241899636538336987915420952284192583963827762896414913031879589647137797152023866301424938849845971000579064174731427218164522755811897224387825596264023348020120643705268913691771862698185314264320521658625927647651878765740732829910433076569033141927604358927354980291394884479297136498802333281229119347149412679853629874619841158822929273571983080840250622290077997679910806556762677339436053020862111491005224128486609865344311405727495502649524384645385068487065546319793285565438096796590571427829667171250494792362520377477454950270530503388991282813565998435305854451724485562161236036903952880080001353867662023522551734123237157554020442735746298361601269432352075543741919806163387321283756732295226188273835518993836356123002393732502696069306681513657393199095104416247704834314899019838105052136216506658708926659214331097170135847470190127430841715216035684604398495243877489782024811538838385371787702794697808673066374984008112073743410775466254669142408683604872090900302722658109889026632493906558744798972386355604904528155374099710423642170419444246749435905571710081578793328204484419163987889887132392664370537666073665584749640451565123026003727792538230895203310372864797478308436708231176822332384607802739094101756057518920501163805344337033619477848919242415616112053749704513024466490511941579711683268777939794656407591980179053159789262353643486736140929690832702421933514933472234923218062396052779786990179404240870653115128948403382732207506726247577061635849063153987991787556564396699944150598191478213782751241573674249385306542608398231721419758310015223211150577776127651739042733328672620313073139638529347905873238050162317367847553812007804397757428297939408204963705269239923751221567627259016247082604561024334981619955319699661946824664050513342600810062088655987953012359897850274888520340056410149869663571083375125470665464416701609134054460843383839574822914305904403110618948541179993907979540386595602441205743056351335203109331065329738926848419230934889111500259113333179723480263414603878081938570496077562273326805486027548124149078892644184656051260735023703156404850413050053312301087107967670444004941130305785265383662089312228165605795137607424012763625906754180996992649081104234403539968160150345083327308138369261975530020987663883634877164543826855908010710137564815082622363281516985405092772657127746713127382380743284233086061580974303505631893009901339475256283384916514812053576171586226900570953215311458146981608800653107952811376119885405920330819985221144811462531986680900722424195533077305292090707256027054678219331763602587020581598093951874777896667238992607885004523974699301272905195366937232459636400589000249340222581710763569801151881283449745369821632645527685053187727225296830257156560761584721028902389443013831748771563101678586775038342414485514290719072651503876081398926017622526334053796428797222140277931532098123775614293641188905131202968495481460595093287903757132013956838878896826407661734264657304065555330784920251469128448948867727151441043665937109202673294662502055106320396311756149579836325939847177669757456597547272275759749381559324973805979393082290437916986674425958785025534781526826108065631049945545737862586573978387206396660616383962110103259578725776071458441833120767404073231892464649624382424779037428246935355877764403704537927379575309220414927619064911759250546240213734913282859553130818437053900642133553342879978455845603291427767292500180238446294611843952667693352075549695745053741711577024635791153947738655126329903123956860212340214830576004445831412867304813627522731993566166263665353181166127745764534314944079105806003952617555130469041379490830566296580162925558172968393288239554866627603276390567863748602342315740403600754196517581087393576533791800745556187392661676163062250973446198024589828561147046738478065356732780276919137351148040937073261750854466737363591111035430909180219145478891125649413106528314754960020154167347732509435597246112425663971328782963860450126384690429908646723416139324220989090619580259525918265766512146034658678867916115124587047214720897951962714338617771846156090728793213464659318786898630018737931567622358467913513573308171910096627922595590811755193694654110215147411315986702745998294655837573805757590440145907890292959543632974584333129916772450547424992976843785880560130213744053538792036084607882635867971202811055451319934381034204639362056205249600887441605232322023380191524611362926305428061421546364246801215500767144046622086724470987688092784774554449395840235185081967502818118328191948944805100935884832178139788398955554629688896731441336208417205108303715731605776943156560196464500944849585554078521388389106227952519274036134352735020138837662791705763690049209880508917547634123468317237892210308682385565212827077744169475845729641932587365324405792400446412246930468398825196101985093844663409572715915653754790560273602746377718656233072746409030449733181453564196861920447190624105286429695122636055251483821845526635818225725686184376089504908477695774735860831520283454351818070679397906268037831517953644459847768834066361399084723873403028486070644032261999321501749876512829820195097574100525534409048923405729073712347497458763155029547625201468051738066585032358882288456019418143218026086925137693322069473771813354125039359198373103135004334737362145497375303673698324368025961444349935039503298567151636618607165408556967291486110482758663632822324299088724702898895835914430128443768171064985045886691814585148819073434383385594332847524802973507851820746780498882879241152777285181812455043601600337479075013717881615358650924422318957835202808739433690659924897754519352871878600238638390155693105150612611398996074511013765119938277935828287683097296341034937357820121471500540582707002426637301938174346902243419247053229016576201703035327178396216363921778142054136677482316511479089453422343104353386281785229726029174696334155883518216070100000953544518477367280892248182269661889149900896253605646539331772637267124676518926768795952108561093067071674031902136588314036165022628809815087694093951949801951621580702769139018747351381529140877778747771573842712092588924364415978975977334524761285917903244269477411034080204049197807567757837768662849057544714349591283460644789567716249682948531008894710928806235041035480715824367149043388131957576585106498704299147411166144641151326801813855112722872838963770322097116464862188811264448760561940020339564568986133666781134929518268705491313345424170894674346921045237073164900446047698386874110106363307346754116437729972050076786843931665390436471694171638425722473289059248928802889570170720274431353256781442531665618365289778826530007331034032689042666558199306950595549900690913957097724224864689275755634084246392326727008229593305682937993203507422340048556031382651664451754096808716795110101016142654353916213348243429494474356712611531548534859486981731049928295563352264243640847453449247703646758423127689461758650875870700519595467773927946770970860685880100421373000003502353472515007497597599143512806098091768560470725232493769421314563506239766116392874346645163192577357241089569624431668941007553465480981733167955146385046093072844559965303435591792171872218741104336379108357560749276979461360585139566795423585272786390852557155405056049695798845905030909218823086928894847251045679557992422963972988221666394549581983077986759891642367866320354983348109266295118450960810222117598277815857629225930634924640541782145070113192787342363516422845557486621397169926017450259706222366806953385020324992983044296844216644256888139489845421507133601918310498496476890237188477849319093426408510314520479406093670681041358248100201205673855603531167435609144563457130632921911872088853906391023819972164153008795754058811034742703828452080823271651442243807978263543865059310088568172223249963412274803948772489493263901492102955159775870751769053083574902282500341626046622788788999421853857837892366440832153526626597195533442564627881128246815238833223171622246336695395073914202483779481572153966726972924698016624587751111710992349326130912350065961682385768783462188718263488846920468266902846014217793362856312667249420965870106216684457197732257448031041583532460902757436550873412559290169376651990348850628308349024657980817705901099085788432063807360030752459362090282707812317588488880993364951081585209636277134324117176548571315181641231596207762949649543685326421449578314610194915289244088893012399274718971259830042403305506609831035925734166094982569864969865132550712126778554069352565328782032845702286975131616706815856701034474900952814611425213517011394303897119835450531482353610757341728720409261973447689375450892963783287487293505360546682360103596269691251443451010744054729813092899123487308031162874981833489855339821588582028464559474534659180066654491557074020074409274940956872391062997401345361836153903120704389336902757998589683864984953483988293838653362736474465593951033715119546789691980328911735465750118396580378650603666247170834011718453596737530460015252569119283588080528221532106794656008886334519378920996082240081938443651494295561332430914269473193135884998245449842321179087426397997159341473545498400211664040132554893767492588275108920353966468335849168587077122459377607028374534369601675597456625179150355130503647386349124933766243801503050754828170996530061841816462859319093339991029548026105807414164356427229986834177190269006159632524915761506660355344191772780809868157327212652552476441811639268576360594123690491673773343501398775015775764671424195354143594575009873771985749299395745061571541288413876698228278077253330545992262774685805955811952939831839135034788432401404384283004550636439139506720490047692259850778259216849128470880740606980597768442008346326446958255961894936928579382930230836182155401323454684401003247285970345737125653907666453432533904957458786706628789076432786746852744925906393609365841892639491660519843672829149582012932016584445567808395202196793754520106544481462784186932492380798481066191638092680337130421968036314071765969583665305480847202623956732532105829015853342214725909479256603511977878114122725858252228959177553286082825422751822230749413518026784986808075916941326061574684401273115509379032030305753160874579981786544487609058372660706947890995376471513917621345821384290609091789309924594288925774064846697455158111371147384894586333191071985404433407901717330746351130149644246273823679338728596662241364562844694772424266233508150810037229800274449139352415981154698436935521967484628108944277772024872448768253006034651693514106414706816679598848109673775401907946481211509488577249495897664700490130571461510658795915876748358547416033353844175513988174858583096700629012745417245949167699541134145944810255379829824240174703137179108821434689051190399675987100170929458830235105101327491719989505848652765191589809341076192789864980269994202375118790362161600191925605638445420511565808208991410808627314328195064013383512858526535831329929532370433930711628527849761236405258152416501983213086494792836085838524237436599892356212264585660276965491464951557399926452700651938699039095952260731530705645668227427445919561554331885216923942132168084144498381999613194198717166748616594420636432294831221962971420580662861277971252154773090396149083456281454896792516148454654609443829909620545762675781339665390439100414712208641794877954465616854716191470734452644902283165636227691608282348444720914884227503960483834138462209118858095284246402762440929909165005875764450094182860201629642781581603557025891633198308809518839904088337857128106632407372632710954414550757325733157071639143560390489001465421519313436931794512042575813026224232720691657608181265810517280691877324675962192758655038162262374519459089597872671022037204292007211488967463269135471157870784716474474395223861582296143582041914253777863299445332370736207403242266498222113724151204661135033175361297225514149411081813440504049663451116590774919851287259071441770168843941683593088268807113915117007261805653134271357196899665934686525474432479633139434337208255466279470255417855124952735026675556711924276780600965554817352378712709596328042244286226910849154137944678759525953888167275780868069947107031329694001809706985301511996821849976455712287494503686505365464988531928473595172891914036691938252412489755226387997852140425842223010795692958436046178878180108979125627003438212789981914870146242238106997592690681701332267334881606240955856129153676903517749201184722723711859278085473027291926783040647502257937716757004503003240423865558951569161432796956147705774166061921948132326996425637717191219610029968097966874410636104895709934833913676196775431838617563612041604824461020534993622449865417738876871583278684498376819842390798147032917460271221278472956950487337449355196685918439471892032832850845561686290720194875041661938427689763348996419373441536093293855348017869499795988590555907139323730644197789443385733551499551223083525574621567746278049061107911063395726890498878388597789066678779688404349490448738330217517714288651423283639599324889710454696949660732076163141246617558170373252395260603357692884491622886248679379259061813778787387161676713811115695554848189602289440188969349237141245167889588025813545417324404566827163179018854254711424093929472166851385169691629084829385818424940500374795686417804677654140041369176323939336832835611907844888591611252668274200979371895397091619723358794801145309339492609828665512302987841438238503203874098468764179106966952835759578337285643012040829822814647685046192667925953234117542084770938092162260303002011574084088710822648152201620544695893934411599941737184368017767516967135141948536984668984489715963745628922465768348769148026887169372603187846488303004072762292461699514585128932057469005663108979761434857857241834094297479645764615806805457275951997875457587575863764787324208167862294545553921753790594043437379010935660329707287078559588560156112329900293934383340590252845920912532628397577622911344074897001338312111456761253193867832360056448052338016521703212778277426090595496840069179431442414685608202201021664239176537268053431150301088030829153482221429776436024135289725201562046922533968252425529662156548332489522590509457003385604155932595410604005654729703274507687314010953599472057970364842576770202082517475122622271200640457063692158869079726712615976375771252059045801809588805188809534387930691303980791884338831924583661567954133003018666609925580704688578142373597724790648554411849682021821744631635929561926176850297277598926082940313101660174382709676350377014037420050310664783404386451942473880159416117144786281212747842887679877086809194856780755138872325610414936953129888247189651713382793600762331285742737688798401111038504359315359523027625580581640453505239927962887050485448033125640536345470994265997388470610512360986903461426720639234474503765228592406546261032084018423486639094798029430373856585726613125291811867002878413699532567790771019961123925245612579480630530100277433570174736689699758766851236782286070550862200122567445126692628748175425318926191181046643264215279634233719592618102860397740885832461582298586518689870123889351594077241301175305031296189186204960306104280839505869443131302560596570031258777660072747511906490230697951275465808922781448899653895184154173524972931380988875787168299134355010374077663939051568383618365791210997018647209469801210847585843720807012861010209847726099317470878246852225581342518632842148565345957460774076338243579748466030273930647283159471696884265714909888652916262678054233668582387403014113648133086785895029017003385010803014630155159251914566708163332622992667653552760906616845808971407353932841364318649935026207286968632192199448537027071634004498170812872558121997145340093817767224571218144084579842935402573157923915531545252329183862188574012919009634381607624200761030174869747037053912025921732113131533421661902285556464746097228314942787213321623269465889851118908300080645597449668451555608443242957618627916315252693585669626923792683194042396358497607682522884651779298388879819448702295777614469961095777734318472962482921813824452530751757011996674861802391534295260850968502557694685141720386024131710432819224246291899718627220327081692676320489488666778837075827901431659644683046255737727885282775163351439698331506552047181218885689438510797551944205184802941578132221803679223816149826969472254112137408763331130840050334963629321024858354682529088355556001632161003800675673118776940166198548222629268097586345613552710221056717011406129112475548180750378362047818073069512566059277529325095782146238110540967468367354058064270615227037078717891769398200509878954961169467624193766195756578827326763832073681108580014502130905479874325971591282434203438829214315859576986991791523400156132812831502640062298163167664704654481008090636854407264720972281117326896753006770099464417019764111448634949116975071270520281908774883191096890121464695814425349300708115838738830301102082676307321157650389779672079801875107369128572410698567023189433374277755258774724098026575404881466516758516173478352427034418934976388308387369615845404955905272831809089108492135933834029921062880063829098716798497138362367061002425281469112806843217944826925138888127260044329835324453569584670948837594403321789543232899646602536119580086896164271151387222924335662591214839818237190560078852583016115958321092896043751736000072671530875592712463421071084827461434445723872234639138552927243280931953768395197296664123708336275723316225519726038861173365268625594242078580667143254727444787525629488958556213263380083922061541060472798894578767118072738673356871344107055384609128291140448974830289700632744056405515677435837833928575972404425817326812977284189622554382617247334141465817635648643125426125917868581513206196419886884406546562332917387473123402315803801643993039850585255842781397552383742468764272090795491443807793645607817233516731922940734130176230239191061395295308839620721000585263356295308868856610552487074764411849113213230405981289924823756674157783694807619874152756004030804731162366026167166525749808338639591040796359283618178668268189798551193180267243095254957207198565915383553675036990977061596108016809111561220008712342275708470101193961073746979782558992659168046850822655171007259080930357409854626524895030328798305939192665290612188857240625018185959944582406187916411644056718803583301560763367918323849791118154656517182714404660028728839525534421766044239586531535984407389569159684785699479217276091584038496733343818626666592089183068817835934142240686396319663819987641458675616058186628618309128824262175293036695853302551577361830903313039716557718346256989667417114216461194629389691666087223449531961603658962208537887971635033506092374414791847688816214228182980612443505232054702502701747702235062863179515920010932262266528760813601442440866414308939325244952137375979596357502906363353320312892631593375636371389314537720643523280172330879863301947937518593773359176027880469577145432425764346711008359546630477015237217711306503413249413187569629641141193541897621225037985337602794202435465142828634886031127121761517076382311434094151142008658249733041268164220371846365939962271536524372792727400537336764523882819806937949880667346266058931122101326554912407205510587512725394117321606917574954389820055578386129782275467662297728919066632485779112818736229129982537524031508426612276700264286030555185875624513777876980823244214148300991907317027143839827668687546511001446244272585177003724302102078499302010308175662369073680262921867110667862952496869271167120591042619407202474076557286433930141487687826433226559650976818124480738799530888527952976694523898673870600931899466299052869500029591471743554632047090186785715966913306543038792961769833435299665708211372929523403324507741607240719692990966340782276488278057603797996592309754439097909646656568809371296307429603929283087183433298661480480179694485496694092537425544290903425852888792842919506312947251663740593008490103967886150580410362253140178457900432650773304654457366397072880533428452534927106885975716886465884430181369701886923422612516664368079744091443320976541220079748642946209369376489093405630017161781432702529795903223566757872499505293303388636731995805176497837826278908309278129749888444349884983353858439604668930237565367737803182265747732443286093836819922076132262425009682251357534576474999897335100900832986516341692551233434014264288430987290883516273132567333922597554122763586641576377225381457896989394316617604397604606632487754617628395589793881563792250087071024442753307895147468409431046263990178203785014241218845339156996201844475004433674221771649931104997488817889056201685384172181849217925215053369910989913211012245257213004895214736846194829630884842317067804449954992020443765292718245457604506043396710485977594467157276661614030191029124177132182888895629763335879961716996295013215072695572591966507918839710716263122943323239512194098849679766070820638355187528917195042176479470657403583555382936906521977256466684639023491390818535660518148077040813888062474403430329963132489616207098380864180333975564756247967919599229134076473555519070124045048747455338663236046450874061181612570306109822039413449381201133741689871616111773582069231497421438159731356172514120328011633987851643527433089088744714537511503997817342293063634774595762620852217727708481812784863225207207057882736305887821336127063947402054046581016934924546008936192801668651994960972699202675419699166584908224336928782385236029781104858941192978086939015842609921344762013212316067770770430135866633332861308261609401722011929844085895310505446912248981605051930439280817460599206488408748573210007615762463881181120887102284314322610404168323957069066120286754943770738838147998261922685180299089700037265796716062056329484686418410805081062869998154236901226991467378478222696917269734076843648455125713739759922287966292139750669177221950843037012786720872543616572904638114996985606638676067173794783063504013848822736699675913670927121625237092518647118430984973618490227495865374250226867317521373506674663732337390344576316672553603682746299717160811222173783821046401891923664085349372217967909096817663572416619814847026429104312218030679489203203528103522565287455299184190730152662581910608172780086877304477665594974810399659302726491629488303175263496077945489842922674018668399134452834441984282648365774768323452277180805507907274270067773071513127259517699091017554206255964148702001752713317706172381990327067476950088546066588482643808484324548920910109191140906867135537235613443328207626338241986302586565398665114331101367355269050276933568725603756822849934812709991054746231289032296736470084648048482390993678459587417055337072846424337710211122829125221519514800555702156057862669482172499804215060770499473950492873242166960480939379221726764426675100618299120575495787308533213483110775438231774839308806894183957013747539744910894803917808656471764445474750660405690239194211133482833060195276456532024638578983797900003961449756659588221252146459769758754155801610810736294892066560578524823654446204334420278194298776965583401820574438437035182537160038835504840601593930433497537870094272018272983835386157171010441780111487688460058640739262652911523301502304597340324331397749070410950266504857681249828757418727336072674873821159850673012531007046623755565398767556596137041664911785673782086279487060646673699981570272475214435850148584303636272325423332080024392807128488048352219185449683495401722854345313619847608895713684582771804090110716129271104953586744236914866568640661501953670957619713462602779628142684743403082282395999686253164952764669890626871563455748938461925829751497799448198231373599182212908816118030047179877284040432024124251221600872270441323664353593786114884943688273084736718952247353847915935900021697170703157506591611063960721486031707550232186296673534382934220061005917910426669998992998290663362667375032333743607145369712042475398066402593997599966213033319527863992522621488492924324199405274612458594269061330863820762358203601836890519835041212640451038441592200886043050435050696276576058120037355067989748790847635148815998845493485990748400098170338505540163224964453458529348455422009076029996384997308266178223820714923765836766487185357532128088793636946288787268172174289564062442270930891760803413137381335571978233737974902880033920920860840580422735027900509551571450228073512863936030271658270496023670193495288809026196529367889273580761903792347259219763121944343887979098663885653003572571817821077341286158687290810677070542293430198916100419756042222746465437446981766513948888585211212975431774016529417595735352942103714395233664501138873005837572112543558665507390892850183216854243565563249449924175600958841445521721684599459820634345385234515652481233947384966650838214458503685823581408355980862914541704759451806446212938487306133341836747632514514541003772444561195836224712968341994258587327025295060833637318407451967421420931367997718253462874303093215309803267827964749450414384007696774601232426422319510326975372125230722526040749689289553304337729511313115460050078749966692018391250644524637972205069920165301198340341563375839178125378074031843751387465898279998777185648467850252930346603463784828680919318565405565802438545874935026077351324676006135134796848274733456864006595788408804475685030836702012828973873426466764543607219429793900690652622906717871560275689620805079365919237719096017068564578345132147216603254735023516232777478280185647330458706107806729680389649055786726727996270846715339811932182360599039329033445992196867426624661527842876872320334072679502918444496626478776289943990584423852559334054463348737686944020329031762668041427630041004805067957451916996575999690932020493329832878775776882646165060217094980764887256447113517380987616927148347257795361592971743878930711840761723254293063425452815429625936527712917072764647381974960903848237222072786241724390401684319071637976481113067911265478550470522418020540324625476060760426678349152986029886326751481567160645587699655163986390934688716486678264635164105489486781787253544573089846110575792061271585108580353107859627434610670690123666554166789150876555838820623193615649615539307049051806510478885044318492926501311613547332793520017533691169174403185715898305190248829886587972007770375049549521431218686231864428344725797742240464582746423926013495344314690094447566135211244912161549651464477935474200499422754554750738543955413984736694678006852701066640302140329314057248683510227375386874432418801358828336074438965993378607100506386889077453870396056278952225861098716852140062473372985589286952540274448831759156672050669421044083335280726468429372975355784096994871514892494626514202207198918245369568820587365950776707228679117003877892180603306274961529834707000170229090046805001500526084156558251595284107484931421857237250102522461802043493481583218627877246090758904015391576975107427542226931510105741140506528022636528289244055029691943399640729923683720953336046778081919152802130608847780706817289371075757046609273413939001610812105232744482522335663964915803065225873387682608551225173617224838055406216329682475474514388024391129313961418527696560190304595092232927924782521504556248551003589560059995221379709778272451228633465349875241815869178136177015304864292497724195240761211657571372009906885072365865185129938175574803192646289475018228872068844903093361619011209313993580327218573330649612319619454295580493004481432710734364743276544319972973354328528044916118047476420673801730905988867467688720285519304194766699189185059618585813992272725608436647335386691853517838576872119742386856002066213458186410228087754077086407444183957917981201562219072186939229299986009761172921402846431200228584974957947565120416237097238458131762836744839980848561191454993542192712953706730544421134424604843424849923217501644034039348584295975360082150706955815253796915112477535745320715404098596795571513946741601618836130576871625507577103081807321728037868362475546268179145308679446481981483981587773699343948865314372852657220330743307587241479893770211695648323356019519569643155436294258122648608196989696609129916052288028436433198838389624231218912210378054724323816747399568105422276687084054216084738050288764854850165349023638642912096984742899845972914424192652771973009655742616245893159687839667760638588437972326293203827894959141224306418459883608567313010790911397716431577698522060045579387140047483823975567719264030614390619630578167491278240397490690300999431854421173334698247808712562354946314246566956435371935561866245941529338754292952378414775030731288152492859145210642050013850512223688816262489573752576334497053381217763899545783557675255296591839492780795423002226861843802373465878998099623516569598970029574904278872917460785059890701194355127895287848884983952358718339829534974405925639482325885534552780973622035252795448581178726937739318443052296235749113226845175057106605135204757848007111473870189233484148601371509067842568491329851459132147621166257569642430246780422213949040736100463127531163458456754845787854860391343532856686439553442773842835389524009345456274432008579639201963534903134483277869312046240972239982043687825258357542223402935622063252466896378909649728233113513296407992777037655024772338073714733292233765599912145419074661369843454015773633662940683387273476166062053609083262395386444839314028835810921271948107203503445700025265957926362718004128047073933221999807780967706023116389489301022580086370021253130069236544095907499490360421010522720803074590322113037467505706308227191783955123013188493018763372386667732171001360971331691233765006880456555037021337957623453769531791203262250469617846841366250775448253879707995079498044055214554415265415971142317787993077346816060881665383383211780126039235945515330189958608029550132801344838139751585248079342387024808778558377994617869870192375873556317281744529845451129961584739742167414016134504925344379332085469904020079523362478253064518649268201276026898816244725932617294341247639021139139398489438931474655541404426627010040274799382770305095351854439998098332727948605825680402177513835172561155760998219123645311833696582073265621546907525215923270673342295740292467891717964462565793754237987351029668331571216852768181424122638086260679885671093357130260046741255481592297236362070107813575745208750427239343077883313281997778160502054587945515583041271815811416004033814383562542791438355875180238153211005611129313269132549064709499056853739909545569603344267909591818711170954777137228891388237881878461422806703746053678936476048005403788183052600365873645945647013596856802178495730998845985764717562429718726577819172218934457202838836470081378502110434862743967250928106385276841036717748054507566470917115067853954660005266698247363104430959831018520069865056587731853768501833672560482907277846896061673187672278754414498252187866407746744250818731795174920944206726245582351217611268364059278517692354864093939607924114790153402803423175499753208494337057228104771814161534715300233116345233960953063746826079550547573247788257289439868500369497494303439670484294850698261667957377630507710234772653457284940237321733874337206937158179031199755138752821758305626645799666860341916807975624855427460935283310949556259914403067620178337103844630584853154297157356190350146479056693287448270832464360916865748102441251788921367935433563502280296397935589287839491135445842027511443062056655590880687291601480565814836291949699121262592410360782337220591183694907403237242618748480634169393604089903293472519273552943353051473440499511495232100970078105315956619782839613479635807493377883628587147106310480682053550552497841189682385514412109730310131823769238243098251382929034457470074572322328345100097440306225236475799392412305515537870787176194355802559300840358739584415823050189414286490910835317759432400953059629317524439703246877591742839675130927459465434934322398206020758980213250911945939691754515120935364192480691283514048688690172137579002485267240148629110852213347522176734301492192983279083536012696116766592314219947691225502162604606692508816704308970767061841227038635874612871708874421347215175285006827020990789523135950607933274794220645412245799469932108093767840071976345090588706342557120947061378246959966579551081549518084772098655200582826678949357648412345380612279604193493233814468229595818117662243478931523290253354692869719519300856838248264371045272490539964754598418175011143292874832516456283451706269015452226435279667504430430082491940709923442885668941935911073321907982580538505864646203863838401061637019748123487153522767427360817917284907893632730773276163514214132510066109475471149182635831572235424810888561653718740914441840052420945839424176990275014100491752506815339639809859965245904712104347030177651049321350216573882648353803022882561795555797029152252179835797103222324314477037064573084843229394955638935707672856164946459599684892823738299369290133344382147633270201144107043384500804009022072949370446564784445564839276022885476072398537949871341642360794937662154605526381029567658493651436635057176325940700456262480900726212273986587931302586031040009219325916776405468995757927238238337464161512553081197844760628888897728545294330871794304823402255232778074897348204789324651969845165479297327276918457054907471157487685456407046026269139056390590389260912465358415858318909911217115006636594839653472580223791248238199851737899880525580328691730428984222769101957030700570699417744385694699288362809002205987736582980473636220802998139992184507675792427521315671009789386101230267687357898551390101133701419990023978209920579129759308148685466947008243113658242704283530982799377888970531818993520221216160147645024579093761416722519770306130171195018286925065873581684768560365461325248937376022464714840441395781364228562756629984656359636179108708745711664207048844556283839952688901604359552269134425818076639565110078003140821159230113465208419682923033446390343084191897051878361247826326120368769605061292970149873805486839295128715443820458864738995318346679548049306799163638822216904580839406742628912700072304167407538226499967558222807743919350355081468616749805271423516358079323878252437847496566206675170997372204047096477389651294269723784743639747055203714119067125084998269261947056922432288210231735048463321625338699791697633181175979473352586001322503255443985582197926518726396318366045972172039666020392638786568749912094911291319740401662777717297072480744919801948027602747010273254605087276117783974189234297824131183920704428554223359919637479908837058062686479646000774090099579528898903363318957956734181859614793588346491964131188564823475475356510582176850141603200689152194317992250162173199600117477952085843534722019570865562796788767195437512985436654356692358421649930936163916849683666769583767844954463815647087528687248473742562245149796978047326852138803043304894601375484891774837649998033313590697174758945161427155307124005278067840910485717587822866442629736071965732022538656352728498273433338663618808614686806684716479148670612384916217387203283607068248355188092074114860450099683489716579082683235548478658869883383864182186054149272317837141885404811786396469450544944869061905976506827792820712734378863866341717774647540915833779586927959315942052199468102143122430000957487084421638914157076168518485681459502503638488034023083876538056278105555672004400932789075646336793814171446437032708777253738590626325567422524562891275819603451249215391288141378838595940603752804120386517087435516548496936171661349448751866360071888193693776054343139460260395461487000285329756922397365969862798318262954402753334974085563791729987485079412586606971159830849215435287195920628282959893441262895906425706364779757204732760857504843901642448623945822418626030246330877317779409805357395469888892408089449593840732520177169279243839872423701035767209654371279711901358188751852479716338554390228580049952231166470266014655371115441007661293002542981643952592813315559456383332052035976671704574395682663195782132479125524979913112566194585563395222597115032435371761100779218685010560441675576053827141017720263235074630094630789948845571226154237812269428143656574357312767029942814832972347038127658592870286833218459478340651182264871663700170182323857426254971990164032608793171820141462143906375362863743375444913557112249501808865509497813855130595092543709673967514001636643697601213279567361117521427387100172852762281145979549214968272259977301958657467045499080326060109969648521503610140737104058752486116319271703211606443084741798909425409078472928644832728193937371600444170940348445912741955521072906433060537770187666378661979435906481952284466591079762641047092568521806633880562235390996947410791908212396892696114970673115621812952196645307064038599327183556859591574112571015952562978805243686373018925300665903746371822316433253255230004344626894850968710911227971007314345482293800663744568262454909673375441961187593485739681783183228939948272824482840772970484458630291566220125998150838200825980406390398500891113469538329257724331460742554473178546236612154247895615375705451645049239602109276555140870141983663283917051877217550465179638781680188309426457427315112614537959210338838886562486844925369267258260052533683530740083395498031648639330145423570889120891061424957043006323536912709639705047568067189923965024769262191955386265901503922852214560552910362054470722078529437856781463926170833273018543797895320500763176362942770031842456829451752105158252865322204147535214464398260229397728297422203262944164365536009733480941747942429210411143579245784868081589772590533744623080415301176479819252203336990490728868611862132404981460708261284365771719948905728728233318172794895195398591314913286084862192133913047034633138793079831863350283299875600407627957658132615156735189010266624397040878319082201658145424491084872809544495773725205345370826041789232740430394259335889006288982620652572240625891370135404377426850272780814039225478543009005826320984572437091822243926859596493729722627845962445257591932720965816968690402425360727975572637583098127532724408222455360401840065842278120005273221153297944845297148318290203475632695409265535178396497639034018766933781904483525452280075104085853219098645476782265190165247267089841128481986941698386506399531272643935684719820885062527258748204005913292015508278128315205091006168400722503691870630550317566097690569411009744501992773463421377867543880463085891629045472951296118799731288653334733231696298749887740010874667564280721627971924496711226735891829211645388515799622281990242548104367608301543035178132262047064864937933876568529470366413862364364883373914203463614760360694771697570506616729796084762140344828795619072152430352486111300722547741723684691422930006952134359195828196469898752870780683458291375191659862308824315450403248732997989837011356481433925331756625706632311321594250945070344680273266019445855303948821632416988270139977433393467321121208649619810418817519960567014935699793934021539001476561016494672672449403974305365960819934711954781470884523013437327861380518537599961280268943576920600384108974502126671081533955080577412475474179323285237020444817554155678126848679725846498677962874611704609817275945524211120134378937625267459969141278674355391309542250758503678198829298954784221018613635514464190537195149647551567930103969484177492087348985991419681275669769372265233196903550481973607948212403275909639716536653664259429778258305056304334783260195173868759467751412577011756297177954076703809626302368150521560167192757248168159835866976444220191761339393642703216128600455004744870637273154599323374656942971381143920095800000985680353501454103789293154691863783390778625087904745693819683897607606778325310853397367469913964413034100633810488440001947409316770836447995411213655731592731022897083136975480489801201549954185127310536025967857800631025448933788361480814159442852301269027227648066520216739654313932381343676168225650576920650157426398813500089908614256710843252969856841020084009447821236182085772091777311093372828787605064793582077728438445558721846844224097470070828116128021104341984278396486536110588825194516612044174027884412580483953823322832956129882662650037126749893206898277990170296821513622174810608083434349770975092545639123993314629533372765094562903454998110269621683054802912156569226018219350855587301133273338563111830768632644199013724148265867755632092877960673541171313649764017665834683277066500659842159225782735083957027150979353300186852695118453206945771933803119996572349056883540720828329605715819479512900908905749672621426703859807518250263069766874319220439104995136198641348019446827616688464080714843498314608317660690560648283940865942869589788568828426576777765003438329992018793346324432036261856591409699969065823491901754227126109208635965331565856756871350120268468837538445865509566194632452189609333496049819079488066751307142180179515812404808890188512881276374412617026440298632364895637302235363081513548734061357774972965033891077538902103938472004842637976224258212335835204923617481718376856014622605815344430324238493684198658459288062388738748107188722342132569649763291904328300469132405211510583947002223309538696928455407952725052046309928941242541001380854764273453154933189820708642788035978683315311421253666588389307201894659649581598302576398020753565471963391517228916943648490403015169005608554935559584975664645334282414303665815971791519585359292480838602552894159378616280128011779877861223968078232288000290801819222604438889428470565993402121402133486228095939162725688934431553123300503021289577592867861290489491050923494298132465822567863205719086066379494052485952891974028963436962249266763302832112415827398256674307951435993204735044748943881467743037020940871639603831643733626898196599014345386653474736311914458993717577433075046412404885647840240628030614062114025965328178800614203653001692263814102837373394728736880401232065044668576556814739125662207677009388404676724092728028439310873229106364381551600131428046789122756228096144788320164229238044456166229219437507614164163692337867671672773424564869596959811416745360348118577218514024976475176920594981552220892454315652585864849091328307421290290804240962509021383614113665647664404187710501330047719563176817443090503245048936513894822408454555428632764212916244218893677291174221886029577859146216484598723452332135255216656381506065282141455460819742010358876723846911092657834218074597556519543927125283180779212458170201877473257402543037832673019220507017942438824829381993633844780110703085675648211743222601603684069794707852120567822919036330303533064792948070965651974925674320962243860935299768978935299139602161823611882267415610997568456108714176761780969854752737781437590313068247543287365290473262043211122356056317850466449380943653572203676788952415323531293503805602179664645887300152741814124748603033603499153076911945398548892072666962517040286152063080027547625695270677039268491088142542266407108270618157852948251969550037197838896916877330393120133339258442365992977353758562928239476776614821051337619893507071323167978529032929219794797703066612568230129730659760513757668185419208313872102319760829525050483456213368264321781988403846059975478218431554095608882281497999218672142656409234787185586433952444695702099260965182098836985043724979736344699042596072318017396465843468671968827170917418782898567896134360550915962898609046613961252986383823206653894995901808407052811685954177142945646189588747878363828415488963747934654678522933590774768608105163996623802139140617221941217996875309365264191151976156450156021644232780232078521643821009515135087697762087159608974367087660172229581816688452704143016423165654358287545030934750717076866136353101405133937967167202126880119948485522745148847593291642001870633711008336807754686942774565059249019138252002998067532889464885176296375448377232852293302198240183743685013582116966298433289210718948195612424818345307840669837510273078559329152663289176968186177061076443086770344981173093048604650277763878269360296563282353386096217514978733893321609948750710566198806104640812793021254740707901172829346514048634891086388317189406117327176709644018386573090060834579168589952827622262629279444250013136343405444368095675408739671331178947336194721196359443349324566553252649561636453683667207041484218898766579984459377859531510850225111296456234751354055048130367251488596258950548566337761383852090057242532697976503069238797829871308154797358957204581484765943179710485540894684785871736248661383467282205005503225806179304435196313127028453503477611466499462694884204419811692402684497434338518203522090625010263283209797501451912543056747980521298852469780064154839036223029358884610316607962202505173507137986248948900734872340091363028306992327557570950696070137309381261109299210517781957588569991793117965582779676105507678394802711546426012573532081875586893708703370164889582684809308089297798026413156143906327491505060989812805226991664747347362338408276306189657808914020365304564013309597352502023107026974325806461966279640572516831002614219318775749779321328126045570501780683530930100717560375600017445946788780834071763968965615679976681227110885796366143267641870319209878206990615244015339437765896707511880906481801340012312672475660681021454616599284281673027732675588168693953555976468647191602879567528675572365087437735924877204326380919162131397116184932249611375676071326102526829475773429247299674235539448124914817937385438178932982284490066250089790562965260901367460076150148496400187469426281211649069028580209331187925119476199794159579889517520766670313798010915533545407709743823674487048927544180688284096377634284963958558162201864183514379683961692784146464926909861659282730279296147060420033472996608236018131347022618916249051346725147836853774123713509002065586926290710384408263811450141787218663730784339763928274309245997386921279155347015820501007506987699581486776865584749303545381586643883907332312594756023992619890589678860667780354693150046432113095920578128592024530884523984549437405921822681375227563117467720521697163531328279434052366330199524996844812794152544196676895619830775792041770803198387395055453137075148697178400965809986222194278281383431206379926866523665795505853493185967740508553631580553920552937611660576283182180947549260360251126986035658548931645618969845227963012315056960879137547683914013920552371397196592120325095454493878474240204218880906716969585946222251760050674553490077710001840350243385599800381897122399414078062990412823764943951133192394557417276933594237593520117931324984009088330739179171435664190291264341993358816413552253548563140944555499964787595973496153119693520450057031004111752576090732191969855573060758206968692543923207141527122165492182608867767543742997276879644349094552323343653702726706000017357189279354425021027805493317830401127660886977444896232061695704091456901518878532692808617887929860563999323207571587894072775663938509747175948859248867061416539427236818298428451882018319715474382833074778159995078359289091330227999240048213557151832556298366696427640548763786013673447557399463430145513725523338671345176409653872549183055906867831462880668045632023813904369666057180990989512482119295863945960722690323337157953574268320568090543360883640514427274915299493299597705222773480457092878494245535284788289549407605602507621857026992723104489361638539286941684424067917376410350866583484232213383319333630532883396027791446061765438158372648195075341131578019684735358484840871906641485724287388750416833199770144045040363439538418034911870097161575078450465008440678246694279071727678714446625778113650984099893690557836104231750708668030417161033617390987725633337743216597568425017992910544616614027368043076053996789116952518599158694531682330337894229347782861929639249842192899209985144213863269409777151292672677847436595632230786503576586138487453013233017592073981394401660930808903244808237782121924709453974661814010118960031687835639434144951566602572503517034876139977117365811157524121994362784877788882755280685163766316584122980938137653367159577795106821289995236588391170767301536296531389380744279112666857735366599343804642693269347688871470767990447281603140932950762542900313718603100281713730856461158161019775836047047427102313061665327801304085068232150029765447704509604187510316950269361656851992504619427601729248613517085447296223364111854956474646226989401059571658670497601597828228779554254101594800245254914062616909415136341291055314222150815765960688217520856404933977945501890930503464884046463355269899504308661654443218396375835600247988053880853324846455902015813042416205942298637943737945531524948434267141357502190166597904567425930012807621808375575418507827690135054297394021298377435620257818861356282426326992841354451276432966784973895781250264422673082767627845855111538953870547899180818961563483766869983278120496106382081681761865185772736059919751034505682593818187246180252099962831164168873212957538573128521654286049523392912850329934265914375596099377634561399752284080572377212000517572298434190085736281135524616311016376452208753806343983406152035361022034532013634071567959638346137347654508673489391350413175030063247899908509730923490566188637029118946943434841899497799520522460579003317464093580754117474017738199135847416855549143297381277014315297570754900163040727503336895704716325969278765506967678927430586878202771941989764426169340021816676510317466453306747841478033488184128585546234939994861450686518118147576773547230943801816411511338448379414950733291282862387100697881641652540080166477572234542256949666435375291599536346528087488065434458363175748901994593502783943300303294977463894782987166196427334531216731984768681898188785382502455112738572040014502432870109504201007609214625550077728589810628821704640321952517814650157448804575317136480512645214551518223988037128076059075415280296046730216790603581635298625807931111199081140529257439386537182243958103755218470185829845950606813977031974650033747530092917506871162247289262065794953222696004824545592587216002163265346611070314537383452518442836289730794422279447568276227922990129646719947360820429581772428144355720223914812249334971425984252356400609356888154853775475631978130440580536668830025403057293330458599709197489848009680683178848088705749878410023896871719495197160058036783942923239157604263858836369404225515251504113235983107201527040644175537151632191457192488519719187773622951838945456623691537951686999537959509671754331297328297860703749277006546904095340538336853787563757691232624555221305391654492308660686340077579426325415647225583356032641163726366202191415371931969154934947426975879347110727029773827973966107135533070699031646966315596344936094120012256601291005053874228746642434556865544582016447874827378860809836207434323931391176867228413154377196283014609922710369704129342734281804807469778988239707179657885375933199678562620825465366480564844967260009701178459429044375708707809167353385994256035132310076105499541900389643923854797240137176611861899926766540677168813602324478082361407911801895273151871992661623725381119994362386903953104825237281101136579802896169116856772711619404499632354879243621401384007611747794385051227680028081008490253582687710176546721433817801068945421270327419649859364646819966982133858119339943097774604514188120455196729941474040366811823712348403202009013516764485607775799659583901756968087699755567421761431404366774403697875694163313990739581593598879973743940449236926787002211743560847139854270553894574740259285727379597753213454175102112782997791694754813962778340633098057707920967021364397643284199383714466917698468080650152671929408198355387362214323957790155851716407803342483040835302653118761406508173409761243460582302423933694682392811652919950107728164955139372067897529890564052617893670081425593363564047189636583382255541770159401390335314929548683133794626521131240895749144852665293152340289464691956620490152818424787573513841472565708878869074517401951844421994344830474987165137718703693383122152331551810709989684193106699699768421811299353455021520416750892396443378700374213306168977388523028680721127948881604346585535016071179287495175733520332014483789352600752257385253494328201744134847694107870445533679293828145290068354896511692898765135602043600246936196420099044273848053046140354530371882186452004524666651610357855736785790882613026927011789598580464495188699597170619676425588120774404247964774309291552466175330410717352430049052742988443323543154592799354715062616849506946146821080350731919190967286481380752370558507019101214709913199249346115841228189665146478486900160613977279216047313739133999712858260092805057713195770092482977007938363542509107017061402179073760480593199216783772889473756825302016381268473231234834689593601220659891150155681534047768195407099045591131679873377676795132233315352830865106263448808772153016693872401320019824888878227548781278533086657606173803322096493286624792448536575627702802184548958825706720735453549921288052028483063013051188292050666306568792780497397980573563191870428575688864478042617240835920467621376153334470409749502298452932649202800675344921562952060194618133813815888248150072446442469229448774962464186387738333254578932113643303000589570292616875169137766087308665302113199053583931569125346179885270075671200730352176956508497895440872820423262935631660295773566778786104631602582194828029584482131496453424090131869263922837252627484282097772892117998038345114254838002221769185115150952199251973220296562569365256449081496105205585279492948052822882130357409593989078572348993618125612028662261103228600080783951579804419044376031967093729037550808431998111927235354308072979229240582585259350135176751652234028242063131517281379736413472886974384846797894430077978348263338735934860848317102176795898517218701710837108550859866451988472717003175066438751279709209107745014646116216321131166500612952712391627787668436168079383907504340432883616158476145784555510248684838776184238109847088303745612225825622894130969954808463196042394364348242143677549221546092156657675295770977040282811218200548479820886188876513842017699821131107115183656253358612067495444750658859296807201824726931331473384251484509592834722206027793188285090578923485532775022501597036015172172498998053533975070486985115428685924612701496277411410500143975755476409774588615824467498789139009845009555617180252577014029631682906489684111801926989694718297034724762220946743203780788569963325126133039468239297959790101187944487201438965455966856467275284329341611580788096250979874639145828269722614183962237033804728049921262399604589693478750827811982648765528310059962868847772609442661853883043027980400629617229295100827106940022128704950344284879013202644852127201137640620247524916229406760741510779444946342853138279190310753929438729666996625367920647458792313022322311438990622972249620166154549193024279411393200596506929615145996175555763799118154294816653450674885389688132835789780340608459002508305612577967096850645924046698498700448572227814468748914247405203734173354902803971240231399069759477602018646077514423985928640323324444728066349647682429235209063156031478768903981548624025721622142617755301662205752427905760754427396710884596374087793735295434566837200545282303170896895848840673295196145649889939743573926813826313709057803498960067948630200201656178646034083194142459876556403329632606675397774188972744589937100452749087836689065106601741561514549929015975703549859581528128169441421987831080649868734460186566513596349680318811197563982707517870077013304150827929031285734315085901652110892963103784641034355521851201707779452040697165825191219512577678914672719437240280428339321846376916353237180427712701035830168321708869004915553699544786703609750243177693840748991395366072147724403412679238196464481224453878611290791593636995421614519267627983438122803280717517569514460402429272221975481176428881578110007910678778499238235946983423853202626541370695985772585717937800640139825396325775361862616456837489532037088220896152220235984735663155747153806366129859699301574780153309393044267653762797469465089792832794185621907938096841774688385629004544701332295470489637571740109297387765949236310794038482176045182943061597830897120489665946466766650055114969450227228286638053784986355061143276105254757550805362834461712052992609847524477304457228334776261484570441123193444729749707306128043189960324406552054287258916474402316876364100859160966781113018177883178193509950523738437465859524540371249604239437711562277344199591364383571318874157459505074757253793637987345921905532449084420433929554425700384847290874225552038022302999132709773244442963617704930458433120628352828107009727159504477409221743854042875028299692995993556387307617808369068578392668165474338871838292292630960058619903079841986350701591141032944868357501313637635188907115670720507160977361175251285725417086446995786489694498715902904723432324871632666323104054658360394751573904856918908341025633675697235268603780884278589565632292847661909148317892214301143633355409100960285163097985548897731380856045764659141842756955814541863165387794561277373594077486179938931157446365714852610022424962167117680238638131314223173808989575717538253091290643289830833863518075088625429278015286279500399130199203528987301518622373919058507619058120881312467916909346277335615939359470831263566721667341534256586084273065223465918697112306337926944455884110521566870152456469820189848378120870281443828567312529409686899840426555994811655230764177836294548048725430376260056934111051372699573366993085397660107699136874283592830324048778761505561551495141157178070028440418945347827890160152248426404420189441776415210847045706800199727546390510694873970440998924610198485091705945587376732410264874211700087797713705416889548749853448922570388559208600164837173400504182869039937758675680108967109874980233515801577741314138074240867267511692365091462944405854685263602405229478090859121078272333982222017163180309687266215868641062562262767058296647754783495653501378914106038003495251260622293167949854701774397264611967616732218469128815147688993883641220691512699156248624359157368116989572122069431862500360201074869476681078276283165151652187349425117031436218660191456231156680202192635791768708608259042542478093258749400346374321181805752763483307515610013626149072777904309134951219491247045566846422794044996148339404363774742773746216262213496432871227738693356261094110804622890277322927567342999188188991071048679537924726024247555683617393731474793845628422571815617710649516551325123667682270618923614483242675947032995552246944558785751182114980179008267020953445604915603877983952471166361077613959534768742980416804207689696537241346818208501729325182668263852840585817690912226337323906213777262231381304518686704156399701860728031628466934787059012071200443637456887395351353412439330346101449655628319225353166936767536862492874518850192248699402312227466726147642476812648754014161758481836164363771577604167014684226365842872281733759283401512033552177341854728511365703903722689190606298269056769066684511326677447903161532876612016577463825679725995604646885251580366403965570712463610155825146075868689474018012733470396082266164888855465819875341454743477754908822307278491688783141012567054861143650757202931718497259925805955974981911859534127746235760010742700092327430330560183788670335072307197505711356818544146930756083524275258861800249420499120826727349401817534858466369263221350311476098243626000382395334912440513622153629367039060368242579249493483806113219837759337771590806622053334295002022915410663368053456790374365618146381044488343558374130978201094650948345825953009430668015746628056310702246372016225560632458752861307247308581677827669054163972473949419350544955208876348096121980766764349224273574219407392329642051994614115222230549426708372724204222954953222130731931253570703744304333387712092995815805783485245895124587063875822126206887792493970047269376031078973229813208526206418231804136675653802503779498466767120081015887130952805565161390084317214044862369756258820517904899053932744213688603696804366684703561637352597014798085167214775527868292875523359981498352076582262080758359992607541588940626710755322504903278591811414758998903352345037362060729363152361493377664953313427477012478354867517204244126242238027730235166816163102124152794113589012619097411335533240681297582711536407360803061961059746133334342054136229093481973526093447909831764731350738287305789011576805230341105968473385417924023410340094503571677220961227719175624521966192423163991952554013405964837224140014049826800799948050742434001251984614660804978675529350857113162952995694473301956578498998947787632012492680200144491035199787830880937021132085728640203137414055205140231091338173481520725831078279641355938182575030963747710301885764325277524640596665391445311305021652694455322903346063902188874519822811657136263536415828235675314480305287210903861009375320989428628536277482704301137740170410419882329736422679999307226424534543065994873603431039852796086808130895693782592744983880174213055759285912426944383220300765177101011836951795797824670216432546078254527552434592113911312070141749991860828266298294596695452478864488354495976020837783352593007967398868427477750000081977866264750892414158732504735358909523402249739913150450328256792281346201776495161199532192581034921259852356001961206032344922404094182434274130899941152146495865255269189077951440216592807048816134933182423909086148955731981600228044091821322041864399460886918908226996501982116205724327249136895944903394768663785207514639368493605230799167095901139307589291899525550650523835968583791386568273712483267518070100406500814458135324878588959288161460963026275137419868718017577795770428666470458893430694749316334770624279287707011573281604375965161842232663294888175589348393403717172627177060409274608406662413694264917163879313464222160589297241924311459395197365269617666147477394249204996571327371715976479488760469230128009069197120441401126914285801899576845241644967087038846270086133519208532288993302385251267926197187832519342080837734659947349769566154182308039954612253731735154265603275994895512507405643150644502104621018131766804996876447070909163059365506479120659818942650145230146838511478867241877283064206118686934372899830722391214598215649457240987070189228239418463206974556990755190113014201459739001775661135957535653633649441200396340285269642817999176493532640994498593468218969247978631139199533933657762306583416651316033482274450285539283502854324086515138881524398772351489171653345884009949715110301785892478087374886943986632026347581114461364788763545512847111209406621690649495066134629592311298992951048356033999057159130373392925503583810208406966820089822978602646716459879611906753723065118763191897746199316167330380490315900655122091651384209959139409911664564164285207644545794825769123825358296378653527216157608178767960892619761040397883978158580524357072527956506747750866329774974585519125967587793130316120796055432591474287412887529535326992762962984800353099138728862659188413879924013058953003049716542210141411875891523172478378862863480313185896952550685181035484315442856011637673678453559432437321735138907312113886632685642734214145588101932037791864588345974814324160112581363619761931527855883660801341360728067494715514558647783574008885667657022675386665790646505617357983189472451659316333142790490429757923123683075449235828117900775119568660285014870655847751636708429855986487892109635418501758423417958141709419262149957209477438356807845991369397647830582394529753833046225078070808013391205214213180798720847929128950019990644985418785612828468060075211688527542774335245369093037399074639340899621304639864367356161510733719363952572059208574752952670999819542089658624744116821156359394876083853071040732021751072374068307693429174636748278418679248769005993808033031094331353731056735062074616657675212433750320835401171709541755905204578651234667311490634225841499753357222901715687374256605859255973789040500778226485517140466065953009347362896153053999697212974277987728175955314983635402927044623469425094035481321036593799323869759513074562693866633326773825372749691659861494014614149968245876834783935876193065003024074748343961146923461243335616847834233277110459486204616296104608688114745178076782700210536751021852334965906286689034057560756972321024026362033427347789034108144399981317638857166305731136608108072015979407636148898959608815983180792542689879600370066917033204416914735160436402706265933043222989203888913251713004892647390012908229333819930697563378613342181327507211396204528244148556240731603877187345615084085132819291419474319455656767524995972834432633650059121727342509552664859052033609565477418778728622565642726255118667665746312633173120678338069038252240954199473075242759772942129256623210590247987683659936915151073544848398651891236822644995070971786237777586704662094310514853328902984988410922288441354436662426906730968766678973187157637635954954387223438061888332593880822994974357750173811099832098945133732610231176373180137539352488289329581704938166468088083344160185538564992694466642899699382803736610972816333630434039343538328775751468712027626647010321575717669020780954871413424571110145419255742547264267276332822005471717894968707010477730420342374974645131729459825673010424026419760544027055216608157435983614500680163829619842016609771618131915373201020483139412325538541391232420744562776369441641246074056554081472621719444366181202316966715915155920845486099193543981907914845962387229977910233987806672221518035956597332331864740345386781749484580247085749863427358350689118004548918877589048816326536401042111942858860388786036482506649418703313711114988821602715303914128644527834798750608527062291319729583845336326052324824252438497699446648328448692044513518155978122374358955597139038890307597974390496926373127043059013262126439864048694046712613000863925908668964855575048442694149432764851362217519221129275529241016893564190902379026560637323178280234219777386815959310058238561037761756752202362061560171421926006306783955506349949899249219945034040492454725888019464347222675429659198261768334727309450588495839572388923117194077077958984401506964879785307828504135455992637932169781702290596617363277321210237263749504258402581355963960848000782186869236059076415589992975223281020926435469250914731967842330913858014439331351962339632447960346592987490368666170783762434943415588896865649264865692229470723230332048658832390862999203804547543979884560611012232985163148582562777980687293662711347821298421886587387607992392325096523521944606878393764307940714886902622913501133506067853899939917617118735324947946229139246744312461339047123120950662561778096243447960154617795449448068721571001363500511409841593132053901757502429380812498145015736056579867675342542885400440654659751136904813042891513855539876600267072241835648631182798474942805460885407023165712109996297879259600813213595524659626391973125718447068171570617165067146190424441310850844272304568580349653367630842474041062614135900200330101101299001252735126080471751820864642427882266583821324698437435708938932689110408428453507918570370999439109946048642151785110347924143579126648379712322157803817448389062520831288277747834681528300545894560779070992019059594878459252879789592957888327587483933209603117911974000218463075713111061748403128053425018151724442316646265839557965262739642092217712766982299816300281779225416533123728555713641677116363532404755642540215656269095958403775528710143582524529638365503871313565774173531131249121754961153031236656888115741500408155838564819738742793882546919483839227137734359052729545954025115200348388573712205257603578938315279754872472366308987815593711682447335567121725995584264165917657488303295599570032174594924620958387815461191169542722990359534831492049482755871157710013758075960527035559951667398946874580404010536283857365236161790929594444818734403388461169731410240844843845988394206864341771531031515357882788229502004075329364954192595103105635401444875008058561155895495530269693876592438785741545735890047205193431286477561528386717678787141654559049825596506200698702406843436698798710043187423892964301876546932456850514891643513882262165322119189030325295145923300672973345895014513056507808892563079885342860659824689571281241344737953155083948205272309482453702881338579644886068650929894641610086565619830650228056680262706042405211294005511131945861501782464605646062060565697397244474413364763326610725497977610745697719399700348523518607176934746387436590961052907476908839732077237034668059042478041737723667707804627040455615760352062019240882510652620131320540011272441040310849477698606380581203357708420533499414078825950392058522658787765404700061400966914712553737038558772633768095743276500737361913187051483439423862399044288523389537624527598896114023349530225858657014124132647171418572468460325783321800703902430355200980087962818563821245015008440675810762980164515293088971882614485218332274121698337680606298777213516177931748633637428879570843404380997111090928361566653242509900708786798452123325600450662027435439707626593724018202465030279793688712943068384650398783225898554794556236929162599508005071850418948276711208303228825021661399730507232600035909496221316267270348426744521796410605686466855893087989519264198109518034146801079644395235975537986248478973152174103155007670637526648433134949442447977083152655181704981477793981614151020240030369392453602247830853719153080255238142466668987875618040235063736069599774310365917039531979058644508305440455684846311396596868532530814106685546338339418583811035041708984213006172472109065228432090268514712203686113102982234877167473977082933420584175195977393033314142541865681200466828868640241634275153216967368650889137734001227242531977077423122541991550054032697634683436561837982291880271071499413193668184289990588972718605923809104006262133504142815238217100458691318819703030079364500850571375784910093410678826132288755945842208979331886785383871036939780066296528802700497604411629978667222182479612242980147217076387984008539035497909418799305269897710502374863604240856217147795490457869261597402114177504254227398635559529960804915484775792266139851636506686102931521238241562900024212882217930085765004082718255055653491668250069226552445667964809208129227374810532039666321464072631621305544026635059255657579777670438675729635308928443677111192004651578798419851089941997288764260917945424816811428443577944327225551663975488823644236840315706368711223134129850959363930361671453934865685034995351603379743603250947374256128439839993790788358282497165815442558044540449020058611358142149596298289925966887699240236827725641937560062302077116090274093822506909551145082341373351336417564043402290874847855792566421717413920878730027078921116167435135681523338968970451012866580080410345028669730778081476364844957567965950749421599062017542431808813053666303959561374558373977102664707045797132682150345631820120081273377868426169956539865961904088987442101502398841878479506402281222872369374332147839164875977269538074333981834404113008567808135738684414678660345887414480095122346379686051900487443493150781004710956350069990251299371708804012579539409454157866306512846957850141624028251176524818338904087872064932783093070320503923107572536765167565733139303916967600430141835923468170477545668782153594150520887504491989287507308578602277361969847198013816680960054630913473499930462138855117760756924125033609532154522590251374387066117511355853602124500432403841740387104742195432380028871408385533399863566179990528963312497294991198052576260186967343832292361899721232672700076062951297652282658323591427966427566643618717593785033703955655440631460946351688507705705577735355716057811451307426524539580009754426894328523235264101014850136698831448022211113017162509273991756899998117335039371727663819830375895656514438028972344902188010372589281083225493729685760478962315588297448334659435047193262284755876184086351178070686617570200469992941604376830202426683664972365102867125951359238922830766578335725606934894931764863934537760701104293406613296968646390505476135466317155491526538339776626091847304157017459971605150944639432860747003244087024167634605447550916780045193820169848229188368532714319933246024282112526167015425034811710898769071094504895199492623718574498846790673727401430657467652921698852583923953687856906912003028961747987481887107678000363326898054505586583348670574227428882538426193641536559630423233135180191512800949796524593207159885533830492124178922659880538833977575013033123260252547671767893842604420783078140391782511341793416473782083813477788769455719944728190787846748273105708765718411273923064204010925400578518235951425207060554446962188491949753891428219178697770675185650044821046455592937659985086108243128756885449473530770113589859203556614858292783061843525298062803636294527746215851668275803352394427405277188075611318046005583323713129632708641102656068784891440135553633662461121137882171553016819494905448136294182145437261751154056096364448745141476548901994420224904865365442402462435593283886389877442775093454027067331067148926919620805290128064058302977451272168835983455275703581765037707166304437869382901527839986289160256467447697713240784521481532222018795268993660863504929374155712699287284502317065902498544362532838289091954564707761306317680762994867173432066712387788493501898893346831421612642309594451627142115067061361497989941003224782735006485308708407844766482588310582222140322604031222409526668013739921477702619407923856122261002950027390378409306013300728716869564395753278787304232311297420813827075441133654775980817618739405233728042486865937389852508170278508461089144746677294839918566042546908215022247962418864077759262153829234365538358453207547770563058187442099281903297206361230650501576259648030552672538328738809830211268131808350097266126514464922361748758467345351984263135698185706914171735859943508988322195736205677449556926522115315164003232703703477916662818801551449258944307158973984041117193449587348550956563846932808982972356583455963518688735943516064511748886894986468843270616184358136442695602134801854422954870436998995026237285636938595797190316378160809972145170132191386713783332955863962799097653889462235550805122717364816508786050229144143524649137714728836563659090397656361841281556079895577985218126273888818599665404708872343384609315549763783156523250843776547316628016164605816441774820869680708614126554353043377843299895126800259362593165813394182344144955065161111944912640308468875403418535811444373436346643485081243495076610444049085571150043614239227373076184467396098296602524242601053855560459667556646098350613307299528207492305382743443342848795152490828492435639567103064608609371242924891534087633551820371360640205833107344933852239471722038174078733236759965531444271762719231583423855412509277456075381268124670365427158807218053725793257014050531544704697882741782797607464010695940213526986488316255226267302243689263891949050639382031283677311063723657672364040207210761532996914398604366237664296770670186763977556007316435050233133386886500772240082519454142990373642973548673987712194327973989678228681840529013658666149090475822609016461726019391045947629345448803544557492457609391568975471337569794944614814909552179585883305164099068143060221204527482510716897023872688524350543939696792784658426799733911624516662337268254142670468891042287937679753080888071347200942681200322273156923987314854818198331136130547575529347077463934314039876072181305338761435678362257457828082446640894390619309133450953329018095681447815564458268791229204861403988435924371103980656525006893061692858701833240887224552800475316809669458821169531225856606990763006275834995321342499304186796665967228809730492847088003873527398529837270229375957287852354966285192686706544850542705742693271942202119229363678966464976322108684518125113408035565184008335956154470437140024528418493762412277862832289854874281724137869069983472543601835896563734471050732053186572116403395008999160029077043248820190974115736461096048478718029734285082778882769447019844638008527083986031925293764997807941710911676617934615469620191689482716227707625868267621214136042967731551463962043824098285011890631974093062062353606793511823603477316926028283249420350770290331174315078901682007664451234299557729150423729115466459422316622196524035279879336827144627193122480755670080692963740414155811025751724538322429465634326641676511607035521195357025195358859041082460305398281065897313618577472349496655269948815275499229640933943858373194138225997289395189944905087402521585256925116615276410403956485065121535647878553940834601637639692569758256213222419143527286223934240473841775174236035172954593394209702552854165653173939394096913879066123007288381694136404983270907970163391099646585576930978819172392828063081715457264481510560966524659686787704102399851555950365389122472139908718177916046389462793822927052211973622295722862565863321858619711393800904223463369432523762519311784455409586734699092656106020163170882758651467317769719673292522259801206610993935160996815514833003217529776533608802758710842533644209570134115175163934727953174060183294031063861183311381807050300444853185678347329152440019657957568720336277872246792445952495242366652306492592057832860777641132545727399518461645368431354169953806210245549006417966294018209120459715938988293484379747080750597497927957646711869725205412667379107642933739195468924828627579951834550161412488511477325048179793302301389340275272150277913678089989861798988152371952036554846630105742571139035693525212039063158276693985597716787413022558259039183240733562307618156579056865197065168504483876622490920142368086599841220384058202092084105969385469793154973654658121115391777289771083152296266899858059937799267085184289949728869832716231853269061942151630381959269295899087082780615175214375275337495759944898369473915081873265123436040510860091314296637112748617350416059783549527157758396126370356908465842870005727856342726077821883443212087860173570304608287837524392942042188180957403549905921698516598018886928929131095088056518713191303057684586978166911128567962993507395195561760816939373364193510046642485347824058751992265354176231679112664388913798935842039364248819438404421628877407149085835198157066163623802841593347622783302654881729367289257860410850089502860485778923337725066525295860007187226618359930610051366868283308818788629413008297061251175455508057319247022629568890236982628114758000873948325949127646871216546577441155392106930560571303308518454228469346660773585078422572546191619354817902586699357083018485297200199984916671793384724972053311171814275702169343852969142585552256858422046314084699301320245610343244239051922920293557472911670286118719052267334747411659855713830885884123119028554089014182172862011034925010029650855958363349413363368159388035003708335936293018910039530370364788048641637585777804000189285343533946047517196454761663117323185142306488631680141412020995240004040488295223384949900300236694826062887445737860227459797985671138741488859870046380233300950432208769166105340921526510390374232124887518448156956404785112026161742061586368199611160651910346331516661407302652268548154124119289781744616830385391690364870271610567121992409717886851599120478097908670092030278496339932681794967218418939218736992141685497256414787221070768521494569717301404410120760007428381924990231211119295364831166508041312730742331078993717130675079313298150351560279061111567290769962735719007576247398887801646041547603177036989566162985220964209775190224264567027790444514111290623071159229833346599634557485670469971797130739503910694627231143342416390822703254004580724085040002069809451182187542766335736122214406582936282326929861326490799785152983692850353601287777401203154389050738992678725463423286479254729176069730243052020375177971532843244195586355320937907752079229722130535631232899028753081506276131365601429666023115090068838540067970556503563290775115221751029060988870946269449018881510091096805676430555788406351427938912403406883613532596579261730584713788441132899193892486518855551578977832903580141083553003970478755225543183088383292667572700062957094944072058170770521207117581075245930155697693022143628810901433057709511621029390234068419855898157238899809174620695687259388186712639469100422264572841804255074704981339947840905508531910444527647087415488381662679662868446185806280243569966293979198879940738760997102931032382464620892466061052339185934623479330067846053539347322565759443904163852627109012148007716651292178960981466839386835430684592365287300986350392708409375062594120899688992564333501202720620552391094152391097731760501293894051167725634665335218230779971558321671891273325320996830690498161537107378035812587584372841862048723259938772123801696122426538148316569324900139013883013052756454795966996792165040611649577104601718614248024134484898818564177427005550575478249566388939123678603480012276117410942627551812092569556334372414801225549805835542926303810039847800974656574096159617823292567805630577588423788090038657388680510170211776146619238713513254255426117936415446417930608509395860291392965631304004022296227795281638196249480830589082045338855248823982822805613219259199981473603238910289659298288129599172153134582944330624843980641373372056067412938131655740885646432421902013199687802658177387923195879990518388013511526505050074517672452215878133188392335283124549679584254842540976027393811790181562187916595516070713125589547732394813803895877070760045053481744378130115877119540584176416750757827424510684813177458341210945346451260646168311158542748779708655635640068401942896373589864741532836484746611071261712095251562197699169827027092435654724813260960023708864968978236434706983370805483327179473642294854201247175878936813505022303661288603437726081430681335517449233264370417999906726248180400945663541189830107972736407133848953771159871601442728744725839478847247641016015512266179674170818242831249228600025009888352547793656944647881507205023294444733941223718616092060913038357025307993108911940637857742967275436545828094421445018592730005297943490430253206326615439909970474105669457007504914250315963486277227312546952232714498344795105112326658316801628058173396233301989271428325655462922167339064939822380045762059545727738128399045754883743824315948784345607585396965278149908177031631195220636270427630139397983665801020326200952904887621208661597255156547339984142450909257155332068131916825890385012754468995738659807141647715526939282356910594634059424674560962783561416317831564232775216872159086464490653262986828307296168485334929301913264635911663681786082442625481111865181821591050353234399859918183465541699716041223785801229565247817986313740942429855210591438175812847717357478017497518513520278370134212003242979747288916352447943113502790187039527067622397468302164015432848623611030044534324056302171823223673402016661847195596102806367897329980025414800015023855498128279016427854277284672531550635132993496289297437827790968736695432902493587865625296156104379896773058415317597217669737344015144630236222835172506058748087617913049494927650924586072343129436351904885654300385061786736177469165899131073111659446447371208954241811337903453901295784902916852576324271191783102319103045887081047343918829087818757816492956137557204179592113237000007557234260471477315473869015593431668596908794894961411946285067598822418654359979274349393875651730169099471714943796896829101268570583752499624734247731407158175621676902332856971925547904697077527206186750480605571737088375139749989442300947467288681008314485705026691685748664078400707884572971581068409289987257254266094836358460126774203303880597412331895609463752620348553824696509756548866638704811709664851065622458357576425497863289922010689427674425338230786004898195008612816153960931069064069199388708846974876400194133851351683507656191365860787924950088503184366524007922491094077378514448416232694032986285530466017750075439838008445455419840356789802508378478106040281660776136419554571959138923528813454072692902811081563988542101364372002024964272050581737839914541157535993136170944941461653773866386332121713630675540112638752236170105479353049740651953775954955408891345522581780921313369942552933829668671552459673653514136118395532747991641066924393282953749011510713256772694499479523791281226480928683858553221086744460943166356170529618518345065623822681863870472497788021278672537006363684441276727260608553194778734212328190931938155623413939476796953642264084107241641034186999960936940563334058524676658505083951857586561961465356694503522928231402296780908591262633347100195089178086025831584526516126274123404076321779671700223743563761334189730581910904133919305381013588424765511830082735891383628313110352280082863778952384943792940847695886257472351018104728984670510151206091583798671385666896320421175458647239865977223066147918143651977261616506021732845616869797524775106193923126745141466867017583813247727275654488044530179583858904183867871507004885979687560154973682198577075424865283918439917524327296660006681405609367086044790931439130902106459569227669521973049860807549567337372623071065165101716009728349834376744581167410802584890764915050058816124036708450040979541707316441002787814585254399323351563086276419518431748485668530309352320416527482659428571066186154607889149210408720884398572521400258887647235038856661853156371413227694452563175346218098498821560936587248586466940121861499148118234400694178911879840470274926296145346620315195128849244070100504969909640781100058304694003030887999919870869072146950198375581768179240815746477052070198298592786771665881292482943649501893915215785545876922059513322113547787958235931088412692534607718919173954232388411407487751653493249151325616358873445724783879081066765811142061445178578748736998631871037824148295274607850660134869755335738853592217785469783796043238439961528856004560618989571425107081784301647038294158444677780896908295314126202806626458582933467125963016753359920349435408338689318286180211937014494314973438877721922536851371442705480031317836928811382191084616775287883844508658967066471274105223519292199580087437876256183633191114157063509031731772016981497467539420115526454775691258848676188149854566082547895345688888316178583447447750314870618632565340787884726952689079621552459793445610165368931216817799911893513873612419159439423148658117994130249523398814770813476131224350438335416587300448840642640877589263087600072445369984409600239760455847152194413522660845007346606383101437531603820470242602895924001024309136760942463297590834134947934291525137776464976279199183637183681510166850832505829351042814322316970793047400999711566217803241801081779749216826325184407533802918617834245027574711995621625770819152427075251903753622185989362679172751708156486391003983241152911007131941434058787172987128172784396586835389334006218275715029516766573108255823556972543233187171285986801682334316378973045442491956968200792887747964508983872541740514513517310983679346781172550317161592084333652566793912266417944882150242168990185784948843815647151113487732913539865736407773064450148721825216343662835148884952207428976423951992162689080571164286782442790915523628998814111069821882528040980618944105223042682127750316570984045710247471193271322902765404060129933599997095212819595972380571734839473740790288701297217055379588027012255121077222355978268001496614225502163436471134863724546972399875369247017344443249028440205879817812191780778035710990421963784838606240482374739184413550832402661804875885198695222962511777230886098939778539925802719130207819800598216812439602899875151495767011758602372523973038842517210266388939767979379479206703691053366789527883652193161020242320528756963963904509930600054050511547578816407105911785466354506046181218292301699001930488206427032079455066643857818682920523634002911040225013334051503234208760635487137662921264953741990527716054875578067413727646726506120615239907328262182430328287716862824753588859909680765771027759067849830363625139454995574644379460357219825540525455396584116774820259906932318292103064769320011003544317692447142690120972270383335297072663572513435106547682098510474396187750629618554870249033161511044978302107324497706656286174947213644755762494409793360628172368210789771572374326036250159786546299686367000930347913877537038842392176741151332158829988147883463748732065075827987582781126835742739839976899362623666316514831745997743515590178763931144058528851780718173662508811014478963669329573256689581092873363995859269353143373832643104040014696972897646304421597535169425616036519840079745154485996458179114562879145609689524159906266913553292497835790676988553786062135297854888597185364274997719635141598028869947539957863292911012837689021700508284770587282909925922632103088804843010154593115916450969508535059950554465678544988591630194287626970292667433958231852516686089334843024395546124422579273464957765909916680577674235092467338904477816395962854250784559265933499700650824354157941073678964004239702614794876027493088701383435474314562423100893390555141039528209266743955137615216616104038128987866726674760209341381766686288765734109339257296066732196817753520858888958680604171684676752662067306980538847433289800752462101539792543228242787855564622617123330655792011061044311911431754880046259293232196494131992954367979585278880831571838788414083418854588113257888478347362131659033229356003399465338471271989745449518793049493509095274535609680892280306305686758161234993380042266461935439840717423182852473636918617331100522608793063894236857625520432409710034042985372875781140205547054201331693750373816843090341056613465748655151815906604792834581541768841592773935383625173942624901598946406657635607932512543106633359914977618988173387525569315763059196277619232205464692382250954168994955314902753592206471438658267660404488966580785477537416170034703949414663995143071003601488996792151287542453741648423105249157747733795416632704619349369843229195858777810225135278499153702001589971970562218883109098888288770302799986161498625776008093600723193720711846729029293983363936648844775920901529007752505546077350609904242252339654363511748908218482858575737809508514629449608292441684120210432398973456109636108047882294730490085640757344004978353614925137477183432204250250724032556219807715582921118299283986252034499110470565123076322027596534455516650898593199918614705699795906781450658976094543812660968400878408635840391618266402116557140215492978613346001327687292696928111680762287334570388099866410516192904375262242896484295668010889738032018298196611147906262261630936641152272702314548895501895263426787751020953220286890980341396563806827108665660870768506233454565616356821536226370087127550998128036293817664937055317419298832498761788225817382820322387933461010725097940988657240424472059320715108195533586282229324861821278911329177438686208328239338967138479345317307776586012463564358108059166676272353590737316823895925003251308867905318153848952449917192459659204988314290576408230214385849134723566899773932978123910198563808353315450830691094903258484344487591338705043330448449084920314538107045283194637962620023089852379295294019906534336219271774666019787429185697813261085330722437919877295653846524598988443540698417305702275561523423679736017163589368726471320044314383634864911591892758942692254235533028155789700128156702596749292243617673860931904800439695970225568010987230898603471792148265128074416537975406817370910812453829274123884545397478481783331020186135944853744367720656386356365041825939962154523633176562755124191434604872635488246649827252349380632406766167738830091560159215719050832171364876074289167746025749809969651677999038327112200386621370757326041496653573677503887500577650290624651163459774490912731748641555806293209255580362919525149253259472175115912912565107747902833496079550508893162324018021963786413322335597373068383664325224420834059694553394155465629371531816839667264060590392466346856356084915753866600848241252804652507486512866385976323583573130066561706724423642493720723553047991792255288529316460540944810884576857094748944795366726128916924365682084478397537395353667661551809563718806755752683185139145292657155883841677706265789442196268190595332038053685447106076725799861241902369596369150776952466421828363988832334131765116214726766122132867621868325219433568340264967504305124086418312107580793827382408557337573927435856131795786445081448703294617443491329956983066605285515428659093098901306693465013006135424230208087666774125994132402472604490365274510459970169378779920134398806489577939189258961876183362907832869033942903633101289843287064520141754386256333190900686974026631882264440847924019068261976604619619279013646237263633984774647613942617946751347095296423357553585359077446449478913520806764671086578634946906933213957072793195161567062782794597718130602365621033071315860426285827632066474492722972820915933323951342476520189657710927805357649777178226851763260876352205350422996736694014390763245937128285387800160634207165595957824214446842431208768044687850299626966896238420855443856959098296795871712610479978683703220230862109018364319114388471164597297641272878380914190754173875606699881345345774299615575359292871589533935319615471372658730288909852069674154841026411379736631867387164088189211396309384259098987872899824734560948303974312586416459542753256457785218047166027140993236276117865880289099683179974292192491395832074300985577803870432998461787856729989670908591414473782604128329661188868744134619056368334878376854267762865093701182774354603630220806094837671827404830535128064223568385370279237977853118495774058829912409256440518627686971722762068165101394816110932843191410647076266766203048556584991970974245281142720228338665649995934367821942232741871330218038469714043774747820679479727695361848634772442401444269060660898760458507773839379390360794379105514825770565182704826707834708590219025980720954132711369554693023708803736655341679883798835098322328007389664171958785370115507465309269723063887509978636196059865215543442478085205148237051760117807325396836246597919377301338702404571845087374033560446305401934974525262651234454389071745665607369197877657757364847300058493853061575373126222697740867662499953128875381245220970567222875135687462184850566970245131311975564570249895790048947140609663544140191411634437956304209396475423967909458243968336523196502942301519723915217287510648915414798050567606490700716196590311560683083034339380205809839418325287201455579926474814228896603993039429948050306070234999280344069919231935903682035116337671324231802478268542177707625701399693563858893930985074020100630968605093054621113975260167625863584908840845715751127563600985544814442717834588695903560272870098312352552068768407030851729580735538941347250738163911190359739002706215005899745592087815620807033122843647306029760066914851342881813137172112587024093584280093569462805365610734990981735404556578536948753826606338249067427808158567901917677396272710240535557521749216955061763980442865821215412083262893626429902473975883740756427771657823273571177557578652921286510478553227923457084510708932981131211906741774081191784397692810689323444117920567508100148018100700782627473153753705228016946181788538567936585660228140431128944559690497501115431302944407535008742924568492243544438605331413209822320820438297321613117424130559114506362785364803426984938130109036413723208421345054591321997457049588693499992698619505984683839827047462171368209901747670341673084690888225515664782157384039363404262401363547597552828318089791906086085411307745597953624494923746469610634314301897379126503340406142736112068603490022937683392636300866221544759836795394140250061935543137227475701287906484228780970703787154074853475601923425894522260772366423643574974827633472258623115987329632872390371607358017482829492851652985307105009122756992228134330348064120419130869077554379008783846780055732002556535279376484407959378587961986505541347854085361871253802196679153054501219852649939393800963075254908980766431856009087446640955018559764547883636532575383353384583681688910714430804185775260311206037548571906459036386707851749578478646789641035249040377416709994544767936355204458667410022146847202893557900694561170804704243952032701946419834674196682724256975733771621979780405707668853137043775852846022904760814844658552112114005563923989952472193488932680184951525460159215063024425132145899318421711329164011999468917503559101604564996210055664450239892931567435696876833858698768289190388053149006995072645868851109136027207429880552991249059742620490381057690163197354385839995502045319796866122155760486275867229040723085620125812826856615144023676173936317293562437694097976310185099561898977116869020708985152971327372580232609993800742250378886263734569848932923016358747812291529126374288243160133153651455049559361346985118762026415971233113011815448837107902657722750360586664352682595106176702469550272080251520453131028913345961648123612271951237583505655194900064551929165689492566869277412342544186775300493519418078601632636901845430441544421049114470511292173420276979304574246129998236679130479167429765949902511982915545463702265743267939495535665715730061644563258571444121360355023040115422638032459567801512067431991102671991312950778378090298834365034318326934946034843304383077223424021081387653480963566683014724636879273104742677808869296829082378965813243798117783894587590811994488691470771296456746876933882057114465320100060990724987504276847978941665200695490250205733665275004758481583132109175070643544167118635129394248501851343407343154893562834577353068818397633602189155554234018300759976412693407247336064062968340659187858191434081866507712081517986789694736849869335222139087513233909718449485899648707229721910011474218270070953274833861144008998753973065022613433196086359959145696628578861637275892301149144311547403647210321145753987440641582962065016852949082637975358751660972859024447434099930384672326577882591490219981647239396153653362096198193312134580309529286416316086622959543353699654252475329440491975346905638010602901814555810141232304545294922467611617493894734881650613764823483320494986623846385935614310709365738733199858587475184100442701850815226148108000941834491898348186837039807084541110693959023303737101116085832770969232547734666721705067996328948344469190716862903306231899328704200082002953098024930311734923275982681084161199100091807461764251409865826807395477936331408589251754466859691686153509055022028013452909053463521749380069871019085688457640723828511198270462240161801085774870758167870107639178935674404559253040593501233068921818219396876296749967839304455282255515649826399391631306765006094692910224778114205633651492278711967630297798190458256717298131354857831140865892935637554270356958685924239492888759577217326368886185425617791722971750379956929527554253963398922098893546836114408438682366891404887303714457758771757024688846560409903741590706533572241328691218315142383612058052452205209306412384979553401250333628733221784592612622167017241465358956637611602498265798774666829881403424579975181038346333970901494284857142350620068560056923168854956704559042146454896270059640910411423542118666445141939343910384930092285895356500065416005802809901564754510899419987064327650846388844749276556026679176838109776820194821979634197882190333218569953549844338933326988289387491029946075864823212465793368827258485304320819843438279561803829314541157237358411492070022823439806458136552321010950171149900619739686567446013700188893762245264861802931737874985211690447971896232495985288781615579573228576821164145161249942864149038535570802709448386844388957382263535757680751998220206025358115498741132251366146471094174256570354851570210244555169586373882128422563749612150636791624108754242771357635415791727681539588247533123262727294148002214354197020780918883595339358477406899447688653668497573943459237568602099924237361278865439119439842758129279631856115281800376805838885268294334454767194907857117145849167175063487018783763666611230812045627354530652055471819982977976055357833067135289033527152460115726369328716814118441292432055354222018684730832047654654408998813569333317611039081616886018063263232925061744719324386403222615162803175336489984196716688176487990065898861471296377915859477334939307169855572570559528789919724345006872258835745315956220590471384660750191114521204817298725381330053793262052588860651805389862464827490539041783665610927751013003492457110116883232624091226298428800784767043308760231879502684905738652794657036435016779100264198233963976926810620502619888347935981548259177833438267884958347573626595486133841544305823434564036350384494501992318524266410379136776219332839205459922188443123632747639895282298174004176386455187893018623518059256230521421551341601373651553000440005804141772605054404419082592735807722190919049936597728842695522273527167425956705556253767273640624224279516403756198446395068752888083582059501294310819614284218600942859742985923705475064120176013792563534146486157810119868154888232133229202298801038241916730971990331872289718434861464387234237182832622223626086534323272495713006053051393472845301535580947084083688851971444720468719551254998439699592011872926537566341664317438129574978133355341452398584435937656988860961967627968040713142273287814361214530044397138107834902630036113376694897203906512223237961464402884310346932586161692029554100034818848391205622646574923596090080788462656638224995651407898576740445303784156064747465254126777711813988026508339784677193288933031031969192880656699770637199244496598970533833543733762778427361069454478488901482932458597925970585569298313158389835132660330950698960813146889693667735979039052557885959810810598148282742010607026134118452536692605689912077754889213435661022956927524205125206511994199235658376732245233250544924387729011232638289860424614393031669559952166799331139897509353008745521147123693396053433017731325388557456654201640132381940767654007456427514153174324926052789040944243904032569822643022102577765240114843211862294306586999644284657633370244878084271157734089072806410054034069527139977420405869261439698540374888437529002087766785361893808107781828397599989575961066923706431608428044692653944515027373576252858874447886572327668009826352508749642442645995140784108966596761793940116588288377515418457742524675420821158881771896870928659610062266105177364474762234875080092042878473262409922209486166216422979465931907156372448264002011752655436195866554087277123780117913244871317977190026356436214998658302450584137051999961362268788121115863619159892505888536433703359832518849379897964357432222558808756981893480846466483538624946744496336883343149864045875378379302289362149300581948838178140241236839859887079818089147019528143299476176641401200868151223472272434662245026862682894872198223960072130985025391554888100921241575003266435972942108463060790732061340009441840173385200174740373615700368054014373039073551364962983838893772063270521351800641980715381105879546604466869354484370345694732319212276564926639243244789856629469288582189259303376388109112159932982284568714381307509862623306054403182376889662018800086455964602365826086840440403413709406797472737760377137547674902982705136504669946615819658092301243736048356999566089799517389827192623315497734886778439168729830296448189740973980348271188785880110084610410858847198916554425578537548128589910907057329772041011094738082776579220746695369463123461773082387185249576199332343196334299110963821064146712017827679786616799269942640288107052263277214360456143966889174255587277047014484359218756798714629248244011757950677595578401457575851668740496649158779861551453851076123824711944979970750510613824071711325451617332399240950384622217495418492059907107183453585060826340297568730416030208492538523707576805858293667802145975366616924591433587594312457790843916693429489631560261138364879929862273491785073599103476279907987760231848468399445637708700830678828438553572541604558131703496268403575466289018945838870579345551219172951046877588521608152537467620098983729825130377969593507133185133759482426352948013252447889347064293010847637525815035667903290563829951017787330246275647186006091543328752958093259555978437949315867388515828302192792524940811641943459724078660354223059012536894802700728516626100284517492632270300093588260328166012801237965313809050326270588386992035376755416419960337910154961229714472458216801724013402251022647906172124228771450702115987690402058015650096154334856908643076798036682974092958893252187666700946865674238755336809711213818807351551484445031096139654540466802439060036310450217863463303255380310024089835809624554141823069936641596698210546972189988486468236849921964908778767451026583399831159605906707409332066458920132691725905633788800294542824041153504983547221108575132086739971144846721483964633189811138842375377537541925149796668029930373219437625539754449225050220244793742887988379360400414626422889226643050044029538242977337901619793625597040550593928735191784792310303229935076974501685728502706458624959780064816554714961672837859101988716130888324629433160844656206034958946372400126508559280669635326160922027438362317854884724746832992711836869787369078665115030734100728006388229463995751476020395839331400275278372780781028533491273951022841999807725532825960309257221057328915075963699636323485766183553699955780876371093149726634167330505258577249234264331583311499882812106726952828468925254565906105368865057247791000386949230697292936222695107086893945195921721379039723638026310940576367722656843020799800337388026194042055436022355076186014640484823061043022032844716599372652435400772054288137438043963094430815280012151333998848511144363592680716412691257599276660518362914536052471950063499698905978375484763007744974486318962195181664678439484173233920301059499916409001312789363098003799201422283263323277782166323027381182982559266581756706177332355636876995890046341209172596341734446148905309655715331181159708248890903464746952071623990817426256061282733730667313926970242081632909454659399182099091771636237505199931823934196143868139858691657097165623419985647837061185866965814202808208634463520825664439460787785125962296011566014605789400771389608885253506040010303522504376693831993108468986338140020275189845932336119156532049143926469258113352509324104056552636495801971217390441066400058072995018531769866376086028170525543016609388897031820961041361858000665140936072246407137573161369916280870106899365787517610645395502494079648789143612692915757998235239063386168838339745489776160150974302453722458954614852377492623991515168094700690353603948708862631513092317786301264672824900150977004042006808234563447702333021401155850479736994685153573790793885794302581730336966194030647163400602566251402257162802401485566530049401223366080949037607460571758596885980432318432194086998537279222916687800519446134862161911079106315473424171941114460168975185884167906254421167355238910528253324903321149838967480806873495570250447364842833036413075438420276551785193234680720239800434513798876723045664894784697782479890353098663904424811783690633415169269582387280633403517985742706996344083435931636377686572659030987431654988075505727030958106439182022566462881994791743904388574955877024827170554660928463393474825205043117502113950899813978760394750785228475755456740025111541558060846138662310867294321065919025882245009252410178802436455720144669686518291057811403430521086709625863673919871960874849318944925507944736917352873843504274700762120511250068708817655177782584037876176039392802280922983417145028705643549276023923533094556627816005197493859017925460214050324297827126106239210345956272629468240881864372661910506009444845283492322428728570285107550615693648159654653276456409821412264070308089837024751638786212904007977188154563034118705333567750883642472428200946290208221566192789675878120600989685513626995559352558278523971407466667599224662082657545840888824176731466116827953867565562729627285527724837919638765873408238896228929851777519394837161332037094581813688929581907955311966199363760968825218082480245084981370457400893769558371153470763133903873418315301098032634795647444383523080051645523438143222399736995701740517497346355279527139706660949042508432262152839917574530353360941642163245965691883776625337014368928598650732516572105453603938344622174368783281335388752509975704211743786591360619085399340528212017461594683152714896676588014292293004380583301757760510261884400938444514460000943845193006725806148288171473870640472567778194432068053226994523494688482756108624002763864765242856399872850845780413618569602879396895476628040028927505743318599138938664690256754846068823968528843229427714643130444324156326188578647103644950437887671584989667732802594296853236301712687054670038999090429881375784479830080403327961958840157073807538950529153415058620661799504798011332616073312655858017368522261313814598561899690495281467278866906957117167468559101819487386934584009279383855814225204976581029255285532955174708539830621427433233906403591748161551274600871291528784376742106394243080509622285801992662735234219940881190688379246479322177884070091277772811070537040487299967027517607222040215109092011499688907137086904309884570124489823784369290730550220402426399187224859245034445415378438572730998734732686686118719713700123578499167715597220958116784957225485786449435023399654210018313529621400873960785722105950569596514119943689378878360979890746873673074735414198260249070283469286738176711829110865562209580331928787239731733017960948230149887098619224138948428825541598172965879633217317559080097503057359123951579509923991300956029873268074539872002095333164598997607702018998342632988140274941163998825819368122779607361600884063912728060513213394628311050325206358473560280449627311912050931276167057356512272127476909118417849658357365914435624576154923941197787294865121744574455285848261160519147591077460886250510666224067898427826160415838720407808343080674672366645352148981380364187303141793700324245200348014512749011586360093439094779400103799829373959296585426962253297462091583119587308473163404692141429108473461190648026523235939885651065551560785603978582745433306287218253710990647040131199610370828203294600679951717373611202083077459002465008589250340079787907766062373513402077936357657837074279829616418626766590378426407808205587564181557867643819232719964854459968889992321909035882074344438569644973239297896772476333489633008610076604260400947963930626464901150883242249047357781532464988512744592052075812909032185398660517467940897757167549733036541264069715412525112975681878654419312962452117407479425933069753467686774580516257341212142636179364561100605254317913968303909489555065942286161123979022321956239248248377213296772206478380707926750599632925819304482911902023752344279312655653633706158832441650233869226689090529628957601214289178545600820359608422530443048419342371579662062751091719195469858597636753174939862569263724850413911238451173852214152681398729299868519398201423441182506266990748691680045183552352506345963257655825597911475855100231576908315674987938749181470400055046540172860452776785712229165140812650190742633660201499109873274243129301340176814297864952598412837544937206054181759161868667598358295038948290696245547296489690111522895462079373201095072427068032538876610733035017607353708713065757533574309170389203664533976200397108473016419975626641554763780004231125799807712756461949026328982493531449004317914400306571923131435018515036396938073156506165918241938091524647391639807899799202768167436670398943975844238271187665134280401941471382007675200815193842960702545893347598366897702067103490390251931432168009485985076756448047711621328198206941160861467125181464866371948522292485455007963230133093004864923143078222299567830580203499840739576796624426166581805482957672558334726449490340048389142756894474302408516446777009461196102352557339570170103104877394911307895926993458843127159816243754260717556139034748791809765543571667205089536932790375617366402874312456224301144150046891622832693231485726890007265568470890647230841731997551137671868134974892763586680792607844442011980469828029994267748638641721055576148992421799222052087076549458677708755088123518328461187087393082298446151983412963038260768715112023028733490760232414006663207331077751948540060234282578297065839186030722591871541040436720868020609520271332441959803189529950288169441740336508823054225874533282616341566609505083286153136047775184870009212738344375712292665801938089994760406365172861138774888111841386934783692133974684957884750619661907607579989709218226876613156063959632307521828236562511337093581415322431913688690395490941446457749977077327564719833446241063104101852227718848771854616520481436191550293882627860404764377017868050965307937705625461997676234460579562860652703951533070089145407450223703396646933042217660089192633317925833518390676789538346558148755583115378765591588458198617068280264693737270853999684956400345507598822028904945504865110802762226108768566156809051442385650234065670995319270649958190948262610262589516640694410273729887932395612172315951052356015784816707997155713127281784389337530099468650205402625284894606538822358012346030688631624204431723627226728501834611947790116336918319965838950007471664205787257947323002103188978504778147119233320237482579879972430015590465972312752617195162714339994029569025999754917314685411890621332266565278594998572420899415075014281395931475740631588095848905250108904854518171833713034470124777354779904520991399777910614980087686249680172367261817655718621661016417311054056298094633804466822015611538689502995136712404487802682284362416551100560117326542812510331229332502012847105321913783105371176371142867519038596203846458562715654518434228010842467686227479117442244479624109991288371863694040627478409150617038789880904462727912314621726947781753090267617733119050767846026621269323866381280861248053518807966614407515293847645536552450053091762144115219534516919466312404076037719281727860656144518345939254874966709966123016053542563422488989790815001118733882226358302831235468688268951528950015056353378009788632357073304574859848869510901006795120714163574333098977294780500962214019325024191416651518267964983936732883929938812350068982810848643700392554825429011610837960652953154108997305940771119296429012379112691727483109427605333160467611559474298632353621513863752432464587021251795895927873582174844841408202309985535800987976784891034005797628620730578746943327096906978506089973747656560139960262068075057852081783828752226013017533238651989366249897076523081481943464423223391854831695622145115317560555228869850826611523341863742958719087654057794294295373761500443165761540678216600451744508557013396117696136798063540086626888719463040867246088109929064937969812066902150129547916001110297152708613753629579908650860738497275858079682149299217684408847685246659308310456014373418650888339420569162691757534386368042558092326396379435166713366052747037614147092464964974384550772714200539076510405495419594621472696067836846085586173283136526920599988936102889906072513487642421041035549190702854089867419057410702091211849123932447139169940263514316712609080685069022924816130746821510220275790770773937507097032314040678883184054810837028710619159610685935973335251382729211530295176431756815011288334194445222021013726435730289155183690582309118599142618328194171586301414821995515685479395681704758031104462890530600994963314092387178403835510973020018676196201346909821805935094797461261047353372819944658875792592333747958443112093937991100061615314163153604226376806952354826739071686852752620978238271509427055792625615207161075739994952965957710003988758011234095107913853137206658403158487028444134421277311665236084322765374170890094085753752026162606600407461814911439797581425525798734433478663904431866070511222190977334290375551817501093593206570842242148355108888754819307861861445473005692171377544651589992796784056211072611212356565254838892686531994425837227276483648801140561525226262375189847554440008604154729093748236919680391367961261828337990511217376753647082251742079807641814803372220778145146561020164183002954923362806767943068122802252782697931071456051263404542341837426971070892715383281390945012373146058318135682153512558395128215847246608639644865646969266821234312752534008112063951026496124788859513657989422152674295818435005506024244357761636653563240777517879236586871685343484420784157629740002770813233945327925938322086159035382896633994816386428554293381980928239092018076415284224239034352909500107454275398798356587094618631692861295066715070134053285193044799452014880876097890821667744766431872443657398820923467127347768344048348156059995850285939359943384156391422886638831373967699896733982481955763305184108203517881383329473677818426039030956374172825310686139263121826464528679411765387439440924946314539510955872619298400401924801560649033369031236964653489208308046855900855387903313199144366318676336949853401384014439236512277186070875533484238942862671554497763258138456071964118920405407809848891002175659004630631094607593603245902346909765751336661208310816981532672627982797989053642598248743631370006414237116672232462093739293877085886803021856018568749598410555509842765238886824105769267402073530949644687383311064138575819072046679537641808649202546380094126523945557820513819406877500710549179576612153995261702621098651809630614783992309762447926435329789458193164535549262273455878173007698734290107362806728459537434286785880733675640891328589785856901546628256666593617977712407806109090432084918739637787401993346724894233735699636565806816517206883372915226888651302811963607953998830030828224350058125700517523376498545039336955416331853039883810669595212243407610864253134464479024944784508115244570129240281823387582925912053278115773318307656097954859257449906917554338232428242079145740158438948148502411986834488105106942443126114624431373676343928987188030933663127960299047392329808762753182842261885158733495607867203688141691855853090675227469069275771939992176980124674628063987565548195362618187227249651606946196648852216750168414594524735507617361710843855755129155528753516056871096336528843926398061304339645110153981568588665880717160156506574796759641131390563046704619180799529096482834606858208042325524615182206185906486773466482831607784779625690801640339824416850727974635118032472662451939506566490481594707896915659150872691279359419642572328985034475927290709837239016098161943254082808190354618453131818268531234133339795721773155565785323656380906911246546907160594019386328569809855175414520681042161025908974065483964697969616968627997911864302684178798078677697291597519952460374717836623608854086178411098820923644668574876085605279634316443235091349166124181292429538182591535482097294462778539457120423229527704671540799068521125119180421811460786968571001394847630783224210874542795819604035070232544113727296082662604395049295827635018153184870910592731214993653780055437669654656961744949799906369394704947886292387165717256129883236768520538097437811860418167739762364276110764474533679936764577668606769212286323019784830577724728158427100107177768437129467740947556409488887032180518648495184028104579384397798241868080957135214743881012320602279242708532395978152571445796760927329850588562432354013554278958071435538879648040609307139826102307026986275506142846330151703114316798535336463436446075747177151817324319378501178329293568151062337572615784962611605725601935815562195078605250641033230423461867603265477153162071395385196972993919030564239515969670984437849449964374039665142693860617052796547610984039901921200094109288945333648573175291939781843505186537842851980092501645872619092711932172139799371709766108903124529787574156555149248541921558435854053353046943033593687206603807702656293882205969745782828752658574593599805549968949820041691753398501780608250537224672967782136722813995199982336029098264560618881503127546558223463778551150222814945638393827335962778172239308967708528605269997986046003170345710611552829044546929718883998293037808508086189591536628905802778328950315317914985650657737190905370694537460276977014962714007563554108478907196376552952021333056699257925799906178333108308055490045786092065985857083209226171066330574604282886325042514776048247454809721610181279699545257280427927535658664773337701410267328086518991421175531474717303486936610383400220829761569248286033076078992056967882012440090364553222466259623727271088410241784918402478158580080362516737429721360510538735515243127562421443301458716786107631353704450190124871938945346789294584867713838682361310805440035110299126493266218196973243997226977034022714663525913056199171615840912124928096665419877136104054344467955954359152640872241052399852539406252543644368467331562115956454852752362341250283544562466597639801053853172486410060504963527002814804082812987655068894388618456314804344603462683806591474854226325716838061595501631328518626833416366138932285308527064826250995432390556010004198883823116518816797035547053512289192975982622418774744157907681811744913945310813520803294953245200644897370996428372801395761460211820354859328985270070217345819687189860964349466609563338887152853886848386460813968441524142012115487398859019773806958607784527459454722446056015349469118782909789104916969667787063591963553582769778276664336691605405113890746091717622008799929373454143932437504983769005504145516090724409358367949797916515657486685820921129118350712642181931314035394867338441354391319040975744400222934935722886658516098413181107623510753923368274410875264229617579945739168961649285152736746357299713371625907867002022754596322361711475165235643769434824427934307184680829931996990036182824872210034791203627934577200620140636918294598210168593847473299028947150285388417133619457894321766370387172530498861052024605227837879945687238802294886790169349723026528295035108941316837940023566703058364426777927624426262222549883669612326120103528073383512284535504819819089814666343317904754269747357617025358845409077525658305782730333372676676275516252667057770124690522986595663684348921187395643382995160758920656497540764525229164534988816461646811485998710367494919657274274286768055743240296134094484874900636862528793795916249045348962931684878652571073192671495912223533444604256208812944450660078873409568650163340036995154692740324594540112575258850045945455284422836693528012998648113773395387163904699320430444721407096871071221461352171527293269182524205734362257483728899229493316538069231657682034078240277841825659274378951791827592214463379884443302887407095257352216799112571562475378290699540135168941981067590631325588169677962930790090124910426992282546016859185215228654473023511974653341960271301146461491021570709740502887105140669190169413413368756594573021910197953406383457883319429349660282218314475348977916077336647371747471462406521421252150475610610284576818132627682750972208497415810211692165076474125147766774198668293055081694083412085996166269743536237154838397701022042802934428393716260914146031224295830106890402922555821563648309365861234911735171919946836243965565702785880410900161479724061931352582796128025646799945605668104126969669085349845764011334938596056474588001218042666836497888639676576968889818399479648664695892709757937789201900665720987720836214358913638229759030654262059735476372263053919125567601018909895934856270812089124890881281662262325914628049738242148135740728971795848609560141031154782249392178635924087514496051833663095181960511070322803245496931481721052884660576653978100212877766758035194529527068643707902229777644150415281051389179534730331878198315986236187302855767578641414338668160947110731007345732853447569888933453379395464825849037554080671202023972711730935560496765983353244501986717688742056478226989428689624289159152101399816908870911219045553304221831667647069891463353693738369638435996331666204313854087738266415768390851555891750885878281475558701736803548307657076114073472381799802084796056220752363610975097396012202665497314674410555085415778685950839800918912262123033546136093872689420800422319788566740354421991842569595771599206552878723915641609665404924372486449858357576785317554784419847535393004721049035871037286559805674010145097705010467811967838730180880301536228962347379954762379483944483618510720485296161903340576729760691316564608956564229563050233543591134265718306413930793639293401139908513413479192626931427895202108002881673544202637151223513507782004000402326640064757231288792591968951181968536611219021634101456375035894647202219793504743097033397401953391790873498613098258835898068386755588256098113599861269293010196023389082030586629269865655183607170256453750886129415344830564650169426603540782515132556019207110058418165854961526559984457081713167101921500618709205202348425574594259749165604897909491992813498707685865045048805996853669470596581459100219340265958508870728782089244347313906733622560193085289867254233001813317268562764635499666886137584091998511424928453738836917183706481998087716750824071080597400322484293151065334550946834544846771649569550949038110306985576485089887428926324327233331551360804083110242719993493673225000791048711206242503561457840561990313482316771134969979673812421194127128600763810925815756187503697749676322436575357011349210606844528908163913584892712877656218219635105624785746645648264673656255142005483919364298357103452488286514908011056472377069601942939129189657586658210408789193649203592533600721961694319642745050599850393536057443748029413307958689949516010128184184855843726684746075350556123052209383048625604051256563242044630418873393310813427243713894296133594854066138268834964498273325170471787592683840732432219792110010950639823060133389873309897775612018533878329102552193464017730746304905494476404454311460953739772162187695341750979001595651522935693523850641040808475179464072829788337001038165728023649689939002540288649539233788495095744194065050511529605376643113235885326207900435830123782488291612818972011189142744812841257651945917122299875597811521527438680289196355331108038370696498196821447225308882782434625965993255447865183195853776860443622558921102126895012520847009929145101378760419046576632078122768548009124660710789789883953460303319141907871912653058156397052024607466447169145870343791135812020489825625422813240525154553124859695854551716391815259598146861105595195575076964422481721365399650091462179475060404563533721545046272377830289924020587549718530005153786233221287885087081449156229949561571716970132097459819907933230721873364806458234985190817461919526028272357889330206282816722354345971325513872342408762949597805768223297098167254146511309803860108895758130066704017325258822479787488610841816692282927823048080670488444346093722029074069798346045489966201180618455096117359832862229213049029880822521851753737478248729924096524674477113078630759203141457505745296009220630403822012475597130144886218523733226382392972127691302459982312056887617812146388766897124872907609537156230396549854049173790064080493113354494766724829963632728521451500673109979842391004219264700514774326846257410297602526692972806584866388790643284031729217285631413880834066602044491181372166219711829697103648730444656205482721467909265430012186308896019218940751482750331727631745584504992775185909675589229977070651800337963234830770966681403638471655930121386309360627802179754308321165576241183438827482604474680400809777806402031836189236485070500391631712802788886055506091341585327481473068255273749177010754514678030237648699536284455243084415930399191459901045881325160530125991112149112734156825284443803528199859476825106797735884164968921000978852133565266911855376587572031901553950680679353394258012596988944484545226659227338472792759378075838729505705076520596424147846117963604881398883514856061875742369406116861103928744008563472866977573821040515089086121228143471222608757499675822702757793033650501682372330227775539575124274856266089510819065059086940269056283370244036610377440309265826821964899081722279979179632325173297654527526909429859610402320688741745471508954913110861035942477917790748406187164211768347194588975481069149956575592584893774307166837664610845698513201699940483991405632822934512091835017827408825713362948678630506525404796041461777739249094714842377946034188788474511931048817173748354903196346638306351538941395708989566867051130603606293177911319998512491171794898327542059573902667016344722473335383884114725149294096123103165264426648792386491763595174771211817846278599754693826353277283311352103393257570522581200711472367289007455844943877050764452495621625605858767426583246886797707177628636547212988154285299568108826892852135158119166882601691148135517137272447421862952403645828125695928480782691715286602888601998613048062679491759166762028615073992038392851471448794172539185157853136913387002311626356058646618816616377928717462926508782456686820731592090188789058549457859797438270939197095083649805136789947939256268517320312748831413770956044474351853889067907352671207863149711954062474567232186646926696158146155661394101202894636311189548150543805770470855542791163926099466807891216398022493323028174681857601181956968483004857252861844105586323657046277692436784651992632713339863128909445460465872729186467058634225360751073920410100585256442745766182757280652314689190573064929800739578625935391221095448707735007579792834442179836067106503659749111533892253103114008564095419638475965652057244593525276279655673758394634544927007022119692760236036202891513637685098234343291972945199673573503276948739667653047961310893741568802797065367017611407376343469657592306642506100595273855184613828116692814270860432831467966458549124841387018772757253757575311818991481464534923431993290608702926211854412281054110136316138776320900900370284723453917033016124022959755999916113446669299798934759204943101103251181390689887081143813546503119634235504687371296572011299487202949903593410965779546383987336038784292130323755024128430515883862199447756576571045787985973993599032313150993572018508923802862657017890080735332471307367945440059054306540936750938963216240616113012272039970064998795452868463165945138499318096985320226431610799054859243556524849859022714152274925441423110192870567192812353818106953023201711263812360758378362176367826744795515391449694352422882438146618395808097903613115644743204724000321363228464266549667631209210673241440442322358775692528955701292100541607068873783929941725040507636500712150491563412467503719923618422241466689155258940692076472018950432354474756942286320475024996844007974174942324397448710551933366472697795755213955219632986594035357615471412242943538569054831539845541549295616704912486640840327452828222576376667808301350727005647025087652143714561697400725430474886054378329195835816296506697564843442883651187024786178880290482684879797352005793321424907319808375820220587469783964658896930148963260176190660519878182265820567568893158391244201786775728803381226248033919112763108414993409925222772561227715184895507973038748212276943881871323054820848381865937176395555656811507148540004838572613960798266151508497656967368638806989072502068090115588880577683963455707349349461942773900179030812852760611472678486735508175066184441550999803539762986238722791900818138426539502434217955394836317025066335005840919611177135575545332863106850850920912868823917557195524871440612038705906921973068008879341427843957053796696121987413071413653042116488488401417944060256300901306521225457059727885340104150525198878591285904577157572761857171254218093379443139269544620717666667156031891660439895707888794044431723053502207923519266363527898780893346249814570118731563900116202594136397100915849728822813105498083890453395299810041344134016599553138995091173291925203107493011734064719826544617544017615936318230479041669206453099028216712875324336654430412867713682231684619063629143565554735911409518418813390384488467884210157827259097480828674607699987492582735366637174071511152095384070752217104298922310331142158803789848305966267719366063691951092694884650439235926825330098308089782271985774193585734845027173132289916757491809424049806649465727106636328875023534235870394012996227524966701067001728246139170148989781782980363063942641544011002825118694258255432934960479977493485073983323431082336187269634601450269520558500542527445384673147307224547436195198335670284839123024046335644915542349773462145201180068244122783747179946693446481859449830584262669272200229080129845845508699048952419952880844183610224814478267036020733483768337875623979814838849934583350400031253785779491251778712825350855709867594325526699687912440495975030799022104644635432203599082605071536935974308040088328753697282849070935658859242710197700476557767837457083143314844933480380059283375496932347726935423946037511059817128568274925187942896202303330417494845540116706376961022674403753952257442295725453465059603048697330079060861276676536905357007834120276618726102784302205390368265484817312544281912443118213536517393061738608523706811035503796891884486966978277532165061873105889319850959235740799843779182811540451458128634389648306139116710596140441791606051228388906646648696301619283687721082060394119570141981348151888460557104491643428909205910262928364579581232184810940964732923400624249527433849355727755549489960213367716506487068166846439068577891707962288473440238263217291978667001664077594494540614485896376682045646141704131648481951840803294595964337381103070601637629767899433994948270581903825146906052829177722162122253490201951500826061418128758767964422955624957365556269964372780851394392198612225393457516099496430624162172719921619547553102897373856571127700561106881640031298062388606245489594940418534898621675888615523969444576212751154570363040979724243887905746693475995280641048761776182881544381201665497046959456834266636491856670710394106315952493342712931077798297758317876260307566031899028743159792394458001393261266743590939440877709279851003205532086356098901883396442096586289669285669575292574323252346696145552654569931650577311196989151414923862552599234848478018507569730940312081103089833503190703713445395623156704778841521238774109734693001245606362331070853018572193383463793365904351336346115176653577589770161802020586129634097782522629542809053040353126484558407384747936884640757542037754882753773874802103993765000986735003531681287719516300604701067787299583061887958846611800937671262580807871434524360722269179030133927945820841511015835448821164308148180596138455242248614194979912514117950040963094980383449175328513348208198816548374402784752616684497477907470025560157379236632842894696891681003728141762825661162198651099373499569876581750617665721318215529252351485581731522768922586902160201130967473010977813599341257907816751159114296411203419863080800708521049074453891934029801255284533355191406371972521036971027493801665719024609494773754674848213420857756300238086873758208322893731018103158154930859249184911852992316842760509632668877139991237478833547186202133452894290789875677750937450827961799650282688873233160264399311727690555358944439188145041138040233479423577541250823163313635751147266221534171438811250166734376608476623443816372129731880126264279140183731435385376319405902855251617268089352490207024464861690569999079295793654040576745718838312956351784818137327791821694095754732864985371738351548027780966262582657360375697409067526166674764921418278643302199485575732038361826037526661100100650334236786963286350614609544185390795536312328398560188717026726986144905725053909650156380552698301377713190373382697865564073473128882856480724098009021639404629740578565258308615482630957730935169542876064575283639223745385076357132409341598594231916912748826640548757062572132880719251570903681721292168204414396902598824324572796474593154409150537108053565463969966875824001603890854207168981564770437747717292972592270737147089218604560604394288725436144668537746639060104079039340115347228976264874611225443002355401404318311943083375077184343967795959976259391389964258143852030776022215597438625191406569958825830712626236968320472052613892014977364057904783673181853353662964776636320400354294245034681654808157581169845864067566755071212418551854949882948517059977074464426488869024362032414828799195784171432329821550985269021209086145662985590036767358555766103565604376636890847052994122826322962228976468895716779740165334273406284201149591165115204858451886195206689243197854632641989254186823096990605160739956559191683213156308016119129445960023872810970588503827911778820627922199247436976068309778736025019287098835313532565395638271616049490280004934657588659029168601518335087030373807220351150416694174825443668747086125013474963615412165750559804671739872913394722171682448547269170471173308073414718080377299200610668062400520043740701593142647633493563016240699238385838619143699798442278298018757987693001833264052142083502965148461015910141711997154452242711503518321996335020715266711499363225708556651202593067189431962422754774550347158824373717530511629884089393443875606203817050650759749073815581959372688286566819867868321189902440334984105866156463224495047691744863233220311314288403331328471387712518260886247613147510145269571320132017052246687030315305739330961002596564451035136011124366451302685316648764508472066308672018082141484975827776536195760095939618425852843922511472509687200705470829801735268754056631566252922254126503761577097032589391546173058377451784121407298627405842718692936135543005134302124311509724369752316456081929887597499502481684787289953893816385724172930580897547380716714916142377855024780365105188259713842229980575645758065170361337626760992506133894892670468108512055825416328685494439335942783720456769480256221154490808258476356805216233972493335017001880688566285386993528667211639115644543128860246026372774788179964426316791062599430803934276443064059266843449267019647492249910838062768431836757809560299201422253081857525778576636278744263098775927341055519951036232911827176726345762425645586586964206246225324112806908687271156695094525617717170257347458516109119178914968581812307797871706952194297673412641830331126240110968177489819752616888019090684206551964464561182508820764437653421717769631622749155845266381531957361175061969468914062040362760863231217229488550208934088411246879751087043787602191517314608321606518952010024917735022781111644842183497193881548112247002001251533046340412163931064300275657558411117317995235063257018166134083272019444255596962459428938475093956505177209136446309431511487050714828647141528918734818546255059941109362460234709172689917037368561477491784650759331219122211978974516010024382320109125246420105913569714229571703614478737338535431794245033123660050401185384557669063959258575314422100394865625712715281348712729139092898099632973355711200073788680610593815155579792223642320992454119416234982295731894167151358972010884828772282056015349958958314937560437368746420582278543026424718722921099814404413545171810421205303905257814701955844832481622193885441058405275913043120763512397463345973754064215073190863786141767094769397448449421357892888529129235004687657100902682755508784507853133731884302438793847133330392670665868794098001681914524418150360096230441409016336355235994483801134223686611358409189333895729478463409437888288997965371225304191332477494474034986047670283468022040346188358295961723228763226123910339567102697736059059556450536464207408602236119905282177350362846184649478057298296198291997140873165610471464724880317339052763711796324703717136585608266624508021996917153539435024705906346055808832691907011601086116907973729453858856048857860324171047224776537859997932677920197813734802376286545328350944678413721219522383511403259016165441329390180877173120786553322727443545876138498319355678227454589614390592550277730341453776543960257153936699273186642062930780411146539363968324951406413496900569262395561732039558444163305101965674465719810557508125974563305683470020143222769796840327451645832865401621479335429528958331069104476535677596819117362882659215806918607470860998798335952876146495731981892497099206836883443316618901621722149899416727718368684324492041000522468125890264375941407832852886134808657429093264439872824322108431364652050201960629260682576757553202881032134997556038582941153634144104725311747954671802358734299587105070357961301850306327706278011298567334006247290649585768776839356782787352170129695923274806523437887386474189852041487182054938378282629643499995667636025001001298472826816430053272660763502739785242076162062622168234177044286851730653311946803038741448767274058784554439183709628922540165102465825853797246007824395906542888856662958311764127136489693216489769692386692999404827486519726656009988656420576796165883435619596480004647354040836403069133617821924244362578296576114018009541042775405612114827911063388318500690902419452174087305794577451473856203910263209210352711057992439089819752359845370389931080303596347729718500546742641254320041370556983347471774420657191991222908514447177918366990203434073952684619942785996531330518899119902735304275796531193964905076404747881131279656924211862702805988691455887220656355259994583243346918955809795903838307172642725948444276424140289051164890116670838550430128081187147304466996720742088306135484438581743811904955951272214464738150196631180513222076584727463457486615969353175830635316405446738747506686045963299783620696445916916752854623469878702860600014479431370182554453231529725217243301387436342795093305015091500068999594516552304201708523185317681091803060853935153300487757626753434324345193595665533857190319205079371464354777449875987093627331071918748576973966374670469595429698699923534773345761924315073135984261495317646333178598239297079817684524675342400600824486734435579356964465184661398697834625454447972538562050822358546161007122065521435209983285152829880875251401922026057370180909033174450422586278011480935199903312782094377210303400918261731919777023263815259647379063087892592824807207303761015579134050005376770798144084300258880778770338177667863050337407564616780887702302395246284235999456587884469528321906270170315601984177576517642948002898730134404873360296144010072447715248181509826675755821544274500947531046468793931548963462868082312249583713698543494379168945774394346631560973232093667773498066661047762946349284849915184301451051457357785146939091266157068215757071697217140244411340944534570185108531035069460679449666134992961883863487108196055148637019962411120686174456652644944547099315237469923424404944616404184263535325793566866784989102667742821121522626237416592401884895613878399850247755446079964028312720838179197175389608707038781442869347001912507477702138567118615035871457431442622298151168609569040788491483739600937476217182233355561098574073631304096478096345800500685361337267265379579656876337712660525060878600089755928572402879823463156146801950037723534328885038640000242920661048706126199167932808879396807977458765339235951635126182095684812490077025987773230931550593569337885389932199220146417211991986562727088439033888826632093351190978489715278828298211786351740789188750198220808217606758548822188700918692577926020294534488852957922985983206643119688693322597687607028112881444722571062175520704333349858499306634156675735285082626485238016103751910138081853444430648849034496131779666627194401855497501551675693007112809674805398234751189977682013175364291277112271268386883067953884191200127530113002721818234259811053532014635167072721357072814461879228002506705081955413015741805045836739131202926346618229192513758904354056574412801641963652800199268439055539210831994152036430023815054102360818928018415178334808228048381167312318012770358093520979302492888070524326498638589672458455813182525979714587710137747751177819066753862663583373886058236945157845501092595979638929206972385715331784734565011411375007376415101951423072580949820207669201067974825884896344059843231532185493006707848651031064223546854292064082358586805626606040948271034403086821821438787437070316163977851324107275516425526561240494762707415277080168689396915839652138615021414984920547536519824846206729519272464973783132719959080587418436163351528029111888089821032873255947665972246071873231383392919722233742441727921034011780286752946390938010062290755147511192830997947894648506820404439082150094152500358244231111922570262373723590711805711846140605225091749974718116442362661311042955592380009221220124864638888681080688128207486574358905152732843832928707026617568916594226834010105993225048653861264775790371858467082699233534531392601903992416459237665132571411308284826478572924927332784257069871713137709042189310181420638445415168157031646780244825339900169256181192984861468360428756884119571573586404380987469680790744044770976164698659692499708330801667452479519829686390314610639081318873420978781030875292302707604890153845682905213107007104558304082980995019548527982561983063915831468584096652826190894249503560933957141991693274905796741109387468380855290681407818896933273733203777677907606068091975851483145879827408596635002672657149479488717110484479634157570916824463373272594640342865564894422452939133336656438202109203455571509756045368364507016281046168449399905771726818497526726875988582383903021731294035119763346992415127959352309546260604420256876872429670152877056439787302113663073655073573817745749273846179600566388618541033315545848105066169366957868043382364062322422396741290967473567676308400242281289916706092700420099824312557898942531800413299045526059878498981164488641942083507011255311167412399024319448603391998659771617263252480512094963804582405560245578982818931367846883134715142247721431317186484010631839416959643425258499953509222586739975598632453438657945709972701763740578927672556597383760874650116093594878790635358764016727803205134907054642874324579292230535237889926527582885973038197909462023449458037151015506898843919120899943929270677777153306499571116139334528134312097158163701621166914121383180191085817183161351687667568264535585266864907367046662522380725218855417383676371187996501420923000228347610134787046451504350540889764953138899958174530711344886229415910198276342020340575644970521564062008478543916415247531799776521083588544613443474447920559131083201027546768367360914975178878662962483291471098567426212947385512744718829563892625856673127776479079303173160500380875712151893720566887140213563527011102470287931116872084119693372018231060581719595397600730710074116729531251851207509711692782124594025775565697072965042188084923565822781834957194228427738549007203022681234935435555002420798282146090544387672691667080450993445098311489727729814191191783448505315130620188045572492882021405850231874928592743734216505660418268208613866228249524479765836229128805521400463773865817529965975264737736851580552902176357781251427219292262480134147829437327217985244045883948764726084085996416781530740385029679574491774142620645910194249780281230665354937109969799479121230009276521190060828895162258109642531190088731492911247924143508170349531787509101181578857720015665450612272707103885671846072331043753770970600174628850783771489018222093241724353773416694468884971608491900005447204594534812975426822174580368897880223294729080463487421299408595017686911978243816247668233174080925636206307366539727575042538114367280308091978834510594992960364378241752104150791098941760355157540268644140858417425055569839265277090684545425869147310359343709708169840653326394998602705739317075765824875659542242960871820764348435306170382663856747522714442100725123803471736696525821183324579084637769678128463700741351598906234938212854905869256181302445074232313303990352318148796570147426639645954987882673762570454773606230470856136996621224083009595494726465413490333988432940429659371292513147445317277412138055301857111360820342035069910611510836148333678026444474676130998786525453958412085308427640372466766228624467272687352543639561911156948591444296934715715716236330856044517455446285900149855835405116789511897585134950561413149162801314154281216012999944178511062416174168320520795394143732861662063917245411744854433457317764959996450730832621596978687207557330217605495809244753867510492558942369857799118190578462064982001980421327283042159897671403281425483340596692097866469654732207368612888096106029886231916210346705699343238565375413170583294069417106732494194588763898169097352338834437597692741582639321017704231890838759471293626460118533415440607542250063763309427697090583840347555452834897811628309302097537956041080542158919668627657960726538205687703726553242910610132357827341481420506549425569545956934688403813441759692436567204166863820164746806061156732652207504117932658833003194619092006126937483127554012967241025670583191186515548028542775320752004756275450674603555032769359179249203565937514750906673565940833411598002628424549191933897173574239664818698157900345981165983952830922965979909536482252930002443155882925478152465138635942131872825972492896543926929214581870903214865473802789848490734827845303394523311342575870593557331764506340617730215570551536604416087344156739550992423428740417598175694550204554899024072960381209559967909142177128523449953629546878861990351203629982182050218659328371885849434420618570076400023164222135396319089979651515768210393722539071508641639102099563163968939741009889320064530264236062594163680859816801854038088284829861608242002748296473816185305185482299114213485985465666281118267350891163901537497178170189678021801245252507614837655144751409691462268941543396738836434955777559010318110361920471870169519889566786888187749595439039588302038709656855469505759835036747740300297155769616894948546703244608974782549668442225256178313294146185252067643438630835574910679801054291534383694910435065669934394437688214197626710889392678557001796524729884539267412969015534511075905587665916838948592413599068780805070826558180849338572346936667664099740500768518722848936397588030182079724507245817210724734118227440546216028663036025233661364635591823924352900273060716828060463994497416824995276219816848343508387769524685659188735409279214078645015257540656076038115808287377566582080558182297734066597205010541680697855276588487881921716715194512601512656851967463947808937031014962526738133851416420089556835737004461240350029065013208930366353088288192738365013837313765003494354822217995859300535497787705436991425743330940492356318855919781868454073338139196419538892220626801793805022913264404348557031017572971731894640191898134870656285280828182800325505021645062988175753949898281976624425454343694565882091099769653001167138627618854957441700510983524543770410950055831494704204606433955672870214520522085566944283393556424287590203750971499876803064816490828446744258026496198616694819846688427130654212386680694766346463712700221512307391409936342252980576703507794632349906525240938131845221800614108794804649827107700866841621785468887712140268516342210779320757647482203342350164050942039860332313341925036225609679254979267484957049172066526681825701057288378464402646713735413380092916307685323960131023645876633213776365101357550297010144743083876026437571242879853286003373829901105641139389325487291938965834607030936943144696016029865329182604789807945167428478968593972736419904567388196571005442127143322652813073562358645304805474154607918826993500582369688668902253996336074059457837938944441839943955418726814882403376718575124995354553566056476769901242462815771599038120897860978193792649572517037869548864192201785810078111464899080378122881081179698803979967407357484227772810300957764347767803268777460621833631967117127355808696378851071407267483446223476333128443075703829225179560019669774726243754688640036248826513940126149469381763952916734657583237508766370460465093630942049816880842610818560264054729939415410735415227282419275851518756053230733089014087333358334879494508737395366546607286824570931750676160906776684376311964156652134788769367402163415848092311810573966031657550727026186387025587389274922756788657610991403354885984172196100979421673939312000670175048236194500245825520956594443276001290462454369242524452699290600313095581979885727265818320565623133299270351924814986084496272726253513274128221578647678656838942581553818557330514916590233713890598003672549418440759092947749138617889032912632546659521663952847291979833768421989047958430025235564267244999154935299857167182282867003529610134267302520267792477659880697676912093800501357577108018552414213870773268160852001991146289081478076941781455062124635278436369954992601400330220588308802918248939828620959163642825415376254829883355896704439108233809335027018606329213420686012028420660680016155043955213824080101598063154137909803535316304865549395452998422411727840407251271927548639216365567275194948364576543647567285621914414336993339087805348197762469636602236559369922952484061191379701120639471361038107175433362157884230429835563926721781501014507040735348412735115517661539170842466443821803592824391775284451201149454586539609742638210710603866319315686064714611079249937822984123490882302351264724247509815435046380829622627826236249711536864974812464295792216881187984810217254737334714974560716671126728573259881139324303021279650590337818023284959110328731332864123244814797261031456054509343589577012964907910396867033822679191018807900797404110296414504226748611400262667263840102324888587701285824470671960598342593758242708253906594732431584379115899403491868626137646021947573879598248140121423687614259259034888175504833937323915389192914402780493399129886338417753294240172520496290096458507992440597876560536385793512428185085246438194876368019708973700780702590528231849737918928833698165338489807639817069884655320159378873294591800949176119105974490171824959728827619613200248233506759356165824191954726875758752246920424623626747646514080601819139195271300442079221096495141356226644218623663070047570439521486264155065681593852469610533805453065319433223055738371838895816504000497735723474760562132187730204147314780653052121492284153995485260537410278406527456944125153893794145793518507283145978443701930027071539008748965437369729805953017440522444038207114701971954238278298970238627081444259118919438793215829492052152420450782051917744014754033209931378623547130382211732328557135063974792435690818740471237754978128094399512774211081364303533236440889402654935346410039904441085166864606516632627064090623893203266949974341107910858471842589841635465007601480206847400235301244896879160886562802044853690878231894072625872459653216369455471824803899928145246609305404013763878159906716637605347943582541671652528985569040401398700230006726603889417123916700842885378541163110171845222082095981636468723781695134168177320664515109161960618754716528412351496319315421074229832891647732430575604758943778574324360618110803392598652478562458485369234942122995031105629203393551384752176694773066049979518962900856808329207471584489763839161900193611827030722610820849411407854145188598276708477775674231787093705394238408706856415587149498674080638240280688693288832422404328751186965702553054284642616007463147558928561657207106756671911545428618959139050678401018330586047608940900289973933454412911868296105004021573245012263031559574767426853992372824774109843878451742298500375667699525663205367344067158582497256464021703575284498871786064920719143807821188579364002279745076594903686111561110356219041599291349599404961925686951314240667544587390333900452963671869571258985110078016202772802075646235641912337093567569918208509162776916977290880874901318776196266434906095699047657740449040049271796747369464791318530283964092966566072001510050961766628130500512962188069695367626852301118287073833042822032791169158566326072746809264178615488559628294157507632116410635360199674527162831428470924060612857691717873419159325697824956954323892316007557918033078302510436903383988908021702165733132397430192075686084615418459280670455999172261163770047578524726404366519581826241461882704940097459856204147834694032176385685694053786942913701071946161814446326210609505779140260382487141789912503184782734264727797780837714188889754722083454414678615965741980123331084166081908796171464889860451143567247065257338543721323048065692506283301518861587314141630054268435929903784059755744571442137688062482440198208402867787707961996108448342628621975868668968262407394303088232356391113861642617107660021920115840954240064875611631837909496053858606125976709095984082577300736877490360106792247822045605092285059558232776967640912859355188736376126101345373317393631129644330067816250825216164579470737567543816798974693634920705989494425801866975762856648400291196057985275919940068485371092806331720145925379720237054173910602313290810799707764983263963964846823563015727428941315049646830764586440785148412268695429194612030433938810453388735299519146869577901484821972631777746867827008404032240369348609704031942424438710262380928507696861926938346888877209380881017324830199737722277241887121090161876250467582546411429982166228533235761823975174441293231362144832427388424448346164475675523104366215777074822904581774513167596567279725270648802125576352957921136200889865479402025328086999601157021171736354512162443329642385048294699511259716101489531197988451371676688259412753769772276600234331053077936826478403499676559082487465545046509483660689211405454625491843782932027963156055172252202659889196801647181840300809997661197480681674888786887175362737313467959773523551389517281775526261911477728708295741771896288448812611569601584206675537010948933887152705005316980634128247601636155257934950284287608994798502258262984541616595379427308166927637252219953560479649507631436142114320375931810807290800991293501208297127417934737756736038778857266400407978788627901474086278836384374482153722544017274240679410538761044720431262809418078385336523762374031121592820353572660762857198249561725694817514621425877411535753632698131006199164071739154101311739613895998108000880078924037288383990221698626062658660427813237553674547428272024021069639263897853977331457476087559226991137130717102067581101591080995374220203560100867616457533976605375049302637029952431461488676706112858224453518139578982004783885517707310026546993555219289722231913796595748290125487780968117679600670860730740566409766129289229047249030557128997156560663864535315509605888434459873839101941406646216791250104650046999061899483937399391196783767628641070685184778873431324526198895058653946205253857455783940855883820871535088370913472886470417667572657937868155368194759619655478850925499680653870529801146224642575089244558954144358344986701817048442362583909590587488880991161417578011236842871208822942281510054155410201247801240610754979032430682315388376480474547195728156773562648670286728486545922062180873720211287817459471624020161158717714159690576997287312844084572632029608206888662281503394106455629458413128678580950542952641376983587390854192498633455575814362941862178370705281730236210792058055318461482829107735139866959109579479947458112251389868805432961995093289216259052743309043770434162514868632362309168351426632472075638036581968668390644620656372905433834374610396717997878625738771534328044947039899687334058535504109587471720910811772487428105325169822748113594352117937732014359005307521347701662639976978843290418893876984424523551688936300344809457603038256501440109263105519213407920782553131777149217595002552087941619575862281459025279722819399291839251777272363369259780454690894303017689188031744111913878389118573949985543837579335196222719661795717541316590565042543505328746717801644508397742371579703539593254746169643386422845544638250083977230375989184335566240847279464944098209452564367559379184584535221803794223698866001646743969082390997818053634462635545233581922094992566675649663095372191916704065883345646817870899899567130918986592803581358908435560717946520855901180144471180123745807190965133144134874685126038132423334519942252662321852565573645373258194038040551864357651256034934111869015349897179955575793702671900914290421891949974032609364488971645311529434862680678728359110405836137573588263942119059144765313260115888443647182613465376352660360875290428333052973448546758913599244880016216623903877087517398967833949835624167390215850155742283853429553492069704406868201320271386749645973145602206494223874833056671284605976305477945909613363355668746679400229827460325009354516251399102987847326147119725493932055049134577525781314502761742701540050076608189751297578467404025072362873769363104240273333210337394713485775218939063473313217774804579914860429226628910777988081979729710854677124216567573516374864907556227829181481301054819802305835229390241320950116286380004978041399377451467273579309894528261525567922554159690704688578728396652139997276700609749956192694527094713562549286070599412065827579297022198286673692664527773292054238463116625050922097250837027077262483160078297613077702755868346742638326470550887337792544313452729353659489687901809297089267664653606841763115328114606086241745014794728166082468955321139480880537606119395654677792625242877419848083188909702863384891427109586573242655018360909303839919092555935528417434740395888107017648640134723863319630685904984374330937442544345389412095057594096014830327518438804431920641573919884704750195718859139318397782562071607014089977967523688991184879151875566002114731052914712656681119208257488450573622200704966525371934649967070324599408904074781791269924135438231440234393078749437508852154320429972269023834598824345743954225887056467596571951991747043986311418233060797749089739583570241593187190212779261309854771366040897756439363314521485847951043347631252520203986145633282405868897368511629991176140713043256418366343734443412208014254367370430653726694175317902679985464645000449977064507075482698712235414779471323088754892674461089214185871785077273116376090287614448159748899958614191793198506236631923716641111787703431764725687503789305398987598607283262607141612012343059994044082700690228419223626848021097214180368388008194045518515661241205253376644165091007647086265233976061770176985498945706391774789586786137710370846517411944598369504022389680149028113775796955283478503408784497451704720434737761783342724663275367321336076910773317881266273508555330689986910658358771181565995191569844062701160867871220029498771017491151264674218718401985400480739575052847637194062615001556624652417544531390619619390318022060769141672031835968548692868375580665292701223060821083189968696337830113230982321248635101242636114632617987164023611165372959619386206387530105285891658275870763240478129201841836915364457282863779560283541945201334460586359455368025717602434886510232911818375211768730852505209213056505483056012590794230436591970652416290468955738089490327862849985572556895296013859191274849249415038598680644454992539325695656056082643854446972027127596863799184603626134125692875680754277360748409488242810828462001918036859040895109339983363938086087505266803449195076541801849025378686909323112560847103536646893742246769041141467650455482778171478008471404477063250362350552547866347555885477487782424022541889334118525826769045119529635313246921641525732535451706383989189334632472683632674948678212276465912434373687846551665965820643319802453548360827824923876170248147052651007474999410349301978355057977176053709519371103977700445456090395957648215358301745797180958721443635033723614704571972390340537058378211646289272411413887666480775891682647315649872463027114259069526188312339482222098592603846245516987237832443207881750081455712143310504230189780798437640663604230517376792579969945119469806189378191098777574503175060772240997539457779568903262035118117601872597964916649082218426697321139068982180664596827215902910974112928938836998727012319535038138668281069445688138901338504736115074587409580662348164540915292267783863479326516951599274397552429312273303102455413518828655984813688544234239143175961556332199137201520918713814186391997264979986033555267917552627300573898655121531167266073458753184059275847509154085787362335327132834068764550108477939163425306885756964552501480295742587208826041204278890425281283129902320030433654435736797921665230225692616054800645571037515654387969132411422523246776970334063406699684573557304558841201386222189126895935896224253861455891393876341286275090528367214916716332009640001667824608891394388572171359980162217637052434115662867057749931932774522322544453631251663907608546446781879397153486218508651760569943226086477311487122604018970054885124323961007182171376750268085625332153133278083626580497966798840587466987226283077796585939076821960404423979957591676319845087466396738331358191957482727343053376170651426425742563969629418630667222591151016674035848929933821512025944270542708862266977391474591775992982373210392602877829345577908786447832934056307707357865539805829925825679236615879781849004625093984734585572716028417821690787685472062135842711268423067232294512968384684942656442429253647225329904320373849821220292035170142311619240297902328253724937439961767228872377910016679194119477414732012500624553767930991147974988993668936414460754332189472142825574551572199149489651961103910662459938646054600061084600484575633973840288439359832031639240772747172909583728787566399769714062318979146972455612851996545304263445914784887439382264481721704456540667108126571329711117623848920682374959559005679173913506822184257478064451472412080369818344509456843565574622934333398535569866842782432452678111127066093613142612293780668509092024996396863030784643761195250369286293135101765742147592196850095758905442949940875711176148377088546714155632612771886261300436296089893532438107195905333230373367452773336092539076363628993993496836293874686436010905919228476922178669654675802787039513064867214788063734635856449205165027747523554388525152154351079156741097039177631716087700013868274354807651391365089248746292486713467616011813515812943167670052304119369627529972871237872878706754401377643213877107352345015887843288064354646483148609406003500591779329864277182960208366577118689098068547374386672481177621204776473681817816014755694891713847885602913564427093592719516364020501209617557241016737624470930306207902131208010216887669846292082134848972388765397604418021338969982325321587392325626785380263502004867931484005353377313110259227459163948486695298202986857385999883242628787740055324104410124605974585200160947657243044345205357811813526214113262473060391561311703265639465775272173891391668683295888942751041612306879828164098455116079634370383916780067698574603262373697754926090116548299617014596184314332819272886297745285727592745564925779170816393349207885935593067679058502682685480587362057369250309446016984615160903732706396561624796099478285963931125062716675473262147136326873237998094031481247904560332822843330415212926621856719228807052182458352080606784064715088814781353251279818194531863902919985959876554040230659847869649552100842017666224489203225391693564126670296747940637490279010634857019355206540828294536383313044898104015477520849886890748195254574561622554360030813130889602865365332525280418339731560386929155499417853929838564719417959133664143416228002264083515961196717644091264659153118048380203685632561514358288271246972925520815942009643474615853432292373644337502740624044306081109847088182814028147762112522761576720766522295581869793748577503355843684398475001313369984359540134838828381309931553019274299492071103019030436845055256239374767262112560780111889948692527294227492167555410147014435763957909329217423797246477232157221500294168444477564618836209872011495234670374904820881007089017638154120295508825672420550586772643927180917214420109770657776238014055183046920244252727469503609013570541641027654513622964832533854010398223339389568533531970664023379294860557549295238117568921160997387102267565634674368998552282919748288236297301382013625414258281798726785252816057370137693572115756092584025887502049703554672109901690907710138914917765380574960692886725722758220281766435162244346941553095911686977100692669325518946239445690394294553032019813453410456163850814420772099672143330305333477246866487638477154349950385347772008571435024724198328767264268296877339835951177830561095012349503833823307851372590523268664422359131858596256115463719847857455805469134316346687116989273113196179073497964670642657200032661027033855452685876519034167618489250292404726301032170965928955391628254584068194994379390709790216285244448225552459701351732736174190398558027065700891621796263742254069712000691611922670339257212992695070195100075104176042936566313191593765526482675962561673715761886742649327622822179961794317180371404760094281051018014174677327109748072140202300155816452311740990552535462761425808890949311394134313018686244226977173642664488398066704129529188468776405044152284762314965033790809050205389805365170291352608566336723385101343194112990397695671299767999168932268873329537221511263961657625510313288735330331878700473596017013584505929383492458948545056279496496029965453104341126927540452551029715765036305107166132793863423060344460447923093359973143903253026850362418547605235162549552974955857807774479773517431508087788983985255922441346006939771201413406311407724841810103590482677056055725484397335714348371495631858915062343053617809375859215181366958518238186225664906607653600840107676415827617835517501683370649599853203398617157623949553805756693702574976587861138410058946826484241561816704525401445737980469245326637805956639359458531167844223851058650518230470978921132285920560093701157647421126200337813802119172907164887230321914453730215528125368100148800521583873779273697073611266081270249902771119499149242224101931891426265856101803654407525314476935205607898857126426738718410867598533322259191464993944053221389198883034421487561115361883031079827461690067148836922013418696805857278089939715043968409565792487765701528568942555536465385797888593327224133305458208312386881019531487312994696347703408957145282366222293895768651037084110128523383526357323346723778936165695594396764744491178087701408203727273281149687186498237438140685665853665133693414941282812895671410129094225334894273341418155735512905879709250801704667756562327023781133857694682549766459535431416632582115525870940503169418231341551941931637853492130403876433575378746086774814949864600571690500995977938347174938770281199259318938240655258506606904311510458535433208486619759357861703645208157860258828463609823436771580815883760222679411857978194434901185306211824961515576793379819809844689570611167288285705944483596541038139575083631519000697694924933778495835277710450736453338279502074255044489734330370532699133193395455482836104410248270113732103699998011171746977808492380696788383109676720530698608341686968910360068412844435073136446772610334515658332866228145103046611572632642499245301757095709264996968922340728471629280780785517321715529066954030554929661371643367401964690131745219386098710310107218124267951181109073557450113959246886451814565678740952179044530018138280294461144166632517744157199606945588977582445689146440591702398232576890257389347403970986261413146076857131159320729517906501090684522933533505982264642700449870399290569444438849692006685685544034983207425255794689214320757085371215823083807337012377157356680760078351026870943374445285336115455569428594951062388524469452582002889849293638646138845349355540875218674008786734053580726626925899070594601284717021688704379828496612189374225862024362437418684713854897519126497169618645511834780038263791774887348704549340169549530881522947074092245642846319311106563851378539902805746800219845175793498434334411359428528490502756731554792987134233877853114622570622659011556840203104882905837645068778238782326496435372267843008331405666878230268554693263891736998289959186019770419392901822335398179304146620448359477631013548502608170998382619675374633536515457589433488881925783131572345906092943976906610831985122587029105177458958878208166028430846725576607211012187019342760773806152343327994141759090222828936072323943686348400290821853418553701063102241271689903710698450010549016829756897182780657544882983045492782816079979818742979718138467932409872356554537027801858864781349331183991310970219745976513193970337201267798970454579484548138023717939830879705875849282849649855117443855443160149032589079631203375069215961533686052479960155688839951442855431630760680940457723335016315335688981565360709859617599043253537306619326036288269854444169064017718144292641713186030900129689611836114121182261345696107029807329959705646460025965323389338120656197311034945734475018224662016035352407410653773130423573410401296960819412524321215519483654737211229774814489354592706934638284466677380536785288228439761057731623505190255957574023183517924473280754280955292409032129243937842606211922770177192232240701208583064371470053414919282338520969611675115286788187105838539307540687488085926711467044385059678276489746407032496639394086669111073073987377184592075341365001569231066569373790130367787978703137825117707809166969660227253023445562168428146046746692363941498495263677051055059430821218633890273160134387903072695686101024956059426972990593859678148238146030640682918136371258488493341450079341057820584278967660256615596276184921295756514604165398251915672342803305241674152847687775772337278080165791847260767320805226484168786946862913084762705324592111889283893696445094774778914508780125448860487122155328549409135208372873321105059772885342501264893298881781228971073297259563644558600199793515810876401472094210971067132648887168903662131123958306880784049296412403745818895244543825990847261096614171870627129961333177757453008713977387085479586643221039562337258155324237495302109886655167061476676497199564316838550758401098034174730315382146227811873117337222084048373220293043360344277199716522241058105740550829585520611692803904639584290780131360648374260376595445102158040800949318791196481935875484827612615991724973566648029062543882202810091427155192825866200828579193538674969861528757461035778784636299499313035570013686324268291842158615989961511708306409457152102665476000788841491841033094508862569490344536119340928359773441956218034038682825295086718777288182526165846366282025088272968554475703238757106930082040483346377005256484215991716070148755393531539980525299242710296183923404851363190446772052338300844917591543790059142891584412572539735788853020439976481140033035169894620228949009675824604887930903527129632846830552223952329380746165561468886406924264159536855897853771872690452602163925674631319818636622901676737619281905410440670296140794625341498251557543500578814789342290908135952445306130130199829344852577294294786733777705201893116487560708102709883619412653106474030188950351574208788981712472628270270498785404661546952294363174016578874091922204921168016444308997304853376777685171280359960000391418516065776886587992922820581482154627914045190975739837630857026325081807889224063422802836286908995824026111935508331327859673132686529576283441630047327950370255869665057389124953091592872817219815008336243690660888778846549779655773456454930214677964399342224070461741525908322940191229600673632348272016516259821113997921743921606760997143241133797839021633146555716109123059409908198401520985326062788497167794536855010017040106067522679758860302268289074209474149157528594130754929325723421919684923799080646852356521637169771923473793039347224590583967820219788799543740163185996081970620898380802929509560690684574258394241193466830710873975045834864431672497597811791656739263839015764943860032191503229590261788427900174336367816813753094238599524214138806877099201014350218659460694290908757772601026115225777172431781454452124053685659508972637015154573380421736306492867682712310621463392692089879969839144075675116068944596161269402012666789656062238557392489747735064015965951435447893204980301272965203291748920889946849253425529150587824849481432650941602742190160221401685885567076610833820640671019568441317494434709125817633015055222913983860944219177287678447743662468433369344035440553732933075985206674904221796294013532438970902753884281641930227701660730843283068769966524243212881788662093311676148525094175696713547479259348607897398855799318266162194875804304882283607111763289773177114671706271678562106124406019271316524947340804146012273200533089158862042516622458484040170017849450393020550602936598473852930532117060281647997462140998890635190447867970073090620197502578702984294444573971835800706619258418841736045474939015279776080546981595234676989312082457976851099190335316419100739499633495541528889760241252142768616073056440192623855508048332623079977107721747596199822372038996606074622890714926268644326436699890208620487491548982681146476437655159003026960523729686120543552567976473617543369547148811279591844583950781732890698652327270705604509185729196159196767395264606569275052550435363871536704859394697016818372282260354237156406181012116974359140959892882211344565017882860287683423219361651904358200441429931796718881737449708006549037293494226715847242489129430188059073010304567663094553302963542751486615657611856877681435143168931246277338407575654746557095620686819926509392271096667479663828924265974015349474519819525266021176341143614585746082471505469058259014232623118897754859749712121711341566755819375457962727229448185961713431478682875318827837089286352221926791871488598072144946233856864988326263025843679920364878009553344981847644038806038553291646996716870703308259775324276581915131980840165408397040088698254765925241940151018135907962540487730190430852542318821730827206724372411358950266472069134279037085105333255235954373087639621477602590913594857115987450874693309986296398509393397272149077921147855483738971977611011092141058087191839032585332569828787345003385369607620214736964471253622042232382014433322801045032659862964946014173423743133705471435902336450430792061487842966641586673284441953112810357747573857999302021354176207871195180130021078828743249281096408589025102647360232015148857299482005471892903757512671062264688756564977909523996738279687538577668931575443036043149265771618384290651412788213525616466476475219095195894764016593873393591066273979091533239633303692384985971713306248099692877769709913695280808629388649779620940102978463837917500583394624778739390446875311175157644956636854653934894423270204336945703268936090580825234927737848220543191526421342077144662374276042709315767207970345825476320141095218655697631730039965080355562288862557668698403913098425295012456618822799944653436750137653056973065453856818506460013763224115514459965644556648611109362301192750942605169318316799989199955472199014390720242886974320448678955636390840912663494508086004116645100120786052471318333281002485219149548236083169680354888266702344866311940389730038411159376826158438388152730003175733116648216465502861059783761693953697877692699775519268327327160810488071574922595709364078364273723093210821535000009681969278247801867394120840549322465129758299687540899582732014945210963874640002076710549501475422070430626521452883414786725758170669487738445521550244657628350135579426171024008193923704352923126132310003981307071134543225301506143959543053847735149255757073842709001962868110341065014344762164322329787191359910978780017325047429086352425431990485327148015228072232354535094201455754875914078928903774070850181859493555327562866899187363520684377695953821851361178007555819729784175003089373861770621861154856971988196233897275345092815925571133383736598757139683269648442671884351607045206098871954767317368546684092850096231123237855778143334201401857414608935342717501170718552187808098126687108710185458512151566682968661537185416034985322029798462430603207151316495488898470313640908290327371638202800965820573547800554172747214247070817316232913563978189278853052537290783979413381647077680633571209366334101244664234946531042219071963727129689466521889836874773298689364953655260217564369974235524493633421899563313267869666963779186231203859282054999315111037945287882498437723133584782387648415903473736371828531289097463904991454674442423526715874891546380346885885511708758115822178841145266080780163217348197321974188083019537456471169328048535336168853373668290416687145175820126163299307655911945866228037680039723729941395294592652957314233804407296548072411681796288742109362435242614742959553291492447855859944527323826978436877017177880377789073473620092369939334323383404527037201773776515337721462233553050719028535496936472645131221701164048774417285856060021012251513192291401650897026779973251212625914241299370765305225535727948635753649938521059334691875207156453353110924992453036554171140305369808920916578869471349617883741531860824044340539868361988167538459271956815630269418290138754212639452814530642316752093836117985805249304730338986339877358547487791092186072590127571331452332556038213504277304128822056363439265893706102293375911263992521428122140915321236631667941680718717809606532902107370495420153762763712671607839362168153421006881529641219414355076648589525556592422502532212493989944950790413204594333111904588071444113321588671827053807761700230527295650508094062742857582293712268594286216241084144787361791214649989728020440732706521366312856735435420784698134755046111649984477104388907535391134756270247324198923899325557316120418749701318752267649241163539325589563214563031359862633039627362909800173444297539712339642982549537947091096230503753327085303668636248642157877152612718150937778740252441037934389713688769578718963183597539608190856310743054685145376703857163914447788323316541898414827143414553732987803205581419809408674442679154825322716835049051973670029520792259369812306614156899810502167926696476511387763758346899925323180747935994453907629256244212833357308946263183149784271498996792536252803996224233475977352292836085227819851268969738826738452363016855922252852473025718616305602216211631789680514352305028560600212536166636725828870897490895230894984630001455223273124579025098745316348362584844067996639509519940204813580943146929960425723866077687155161843669898565361041071475352869430114838059960898027143953319628921219543125905016584455619227396311804815362625974491143193577490688579865665909020947295949279596039613648280134878741826994228983854399483228358085861039272430331542845079778760933838145127083081799632870399763327974702909220194664905254456666801816238828214786919625705565923296246955653439204098756043089209510397525924702788323560004143210733992540587387465544183442278219854658597484440426878802724830505358530227680948266104002280828298468918546954999988885365381473062267981601095571986532842222106129942504627101909438384297023882568357206397832107943314723402633108794943841805117393254631781828596574810800229103605108954741841822414190012466730682196626254764260594488024530477484545844454582652759787678394805476287460864816642598064860945681894925193355278634625807271811274209002732623862749899327879091504792319721150104638893272818526411345806372066633248924242677709897786964170126534445607372242944209718268222341339185746097445270679611670109474868375318104880209865099750004597800342411498022712866495131052458322050956397361174761556306502292510148962509407448831442821090752234931568103699265309137907377322859399358707838180904621802666272652969783338176461844228983548238266706811731896962351012404164752581130208541155420582165077752073631479576845333452444636594114758977089726000016892286897373595002424994952918907961989806611309307528261191109568623549401125756112981701503571143488015216309571214192509747592429147943798073925456606611823888628852079240102255599567818162288990275376952356660531289403680241989970900427814104874499155260907265391469450683172556126582277288951133828769973639249006343430984051793888817773399019850353439596151830177436613713140895046793391224876946900056449376243040789997492574668441257624868181856396065688064865883838297943297835568593945279154034441153931276203875985729990751263922595267384020987545253165591195373570085102111512119188866176714431160771863504756790361459200316337361908999110247233621551089338335104036123783486814856896206579058803503401737453086040685716533915992280974283092954189629663359726485131285792096446335071770007768990143178496179244508261394261064712253171784759373567283391579817613330270292656323266144094706102239217739519791139256747182609772116343780972333472886439387993041624485380692965860191996925749940518774346534453305200513925596078419138986107764219528154648002141443796913111586513954344678936719695557486972911877184253849124682716076030011788384442272329445837670515089208525811967288841893076004034792299332866177379629749121464245847000746158745962393745625615769093285884883450327238404747073785606208216189776488280233021627630611142633612653451687103092088908376844756018114870689317851235463040960345402091758395561908276168000391942505378506240878573807325314549355518557647845107879929022835008601728495113024060964146293412283867699021578841458457454204045081977946050228606602521031439050575386156034140889395381633399862312311765853996555979939210285707842676778219467566002445105348796050199158976415405003320787513621470701353773983539863725549493648565264542816917370235366095614886259295631019629932866893359015545300986672332689587988721386304078069799699983451507548976561135907657320320420131342142955214106316930660293590022533015251005507735229341730654733564993488102539102039785237269770471378692920652380520129146853739679943794239399252448780144012854462788240533536462894714773846032543867797120481329236579007898536003608061320636624030692969891915962030693055611007489245142646723967989450671958500621571053445364383526012192851831907239033907525072055626333603368937996181905837547821280285377865598321632197179609213054834195422360820198051464616308841819688718106786867348761628809995770389107385625931944322160628849535470679056279122062082485724942471801767148431003016323123617871237647282209616802148039124728190303293690481132297134344679553858115375678718949224058799262889028317497365575036271794226402813369099056899701690573084851080044382334718429681454813596568813937246267809662378544381729595686496727766403882091516201220029995471591088078684015191822851562159150216553652213106342321289180089664122635155356955291477076573983127703036911665482258578950018175815598958841188513673493840084472186858240625684728039707626494326854754779657292702285496019463212732814849500037672475830898371155662138519437387414217773977031551817830095751464017066151584017466021020630518111617191588610174237559490315160804667047692930552537947260495130708686027889454910918853041326305454006442452513187632201174684325190242750003273189265823828432101529117341095965943315462413544913861337482594609456813436093737662678709221511210597601634764666276836367658415210698917680182903051535057591541233623890102592139272683603431327623042133492928573281154779872980773436320226025005385515731413795096839741085295298014721576014424573131419551413246802104439746064634181096657783772329221544260474550246550015909981114366845938543341387174220842099235011576107673009218727130341541713587030868242127852488537514371648344085151678904232085640545715732480600490392415861112838365279190938207286903132621679337303237895488084943425652920261908086891499721290870427448788925571378171115599914937294662824652532032256982332569789749302632338047845964339871852489341374687165615936279819030112874011653766684912700426770144446514869045700830596400061440563943294554973643370019451676581697189043992371134380422633040809857861960645426169961384212413491983873126733329027180002272832133061064611146436113386784444984571613543736107127796781891197430375435980445513139934990456347798403473466073622615840212392050170451896505393335501129817668281107941421898913881017217933442733005162577834803039902748686275781021367275728674086429658460261488872367581965818763538731243015661434414510181135548801870009315692544318550662422091123611029672717638295588760650656313340455433153045902368505047967719166745467771820670434903798374839944884688347313693202023995843079652552829176871691889248372114345495477190786376486960749762064061486340268395169943769331268823915367168240476548480233207380208550421604528158195633077882005399703720998819520451725947115623922947353365926333996443250860247820742234929105328744652000153790971159253324438455620841229360721776138361759713508715062483215768301102081223062628649328333767691474460606521174580061791735640728056379061600674769207310999055288613729469721032784440163828316151377274424879211341647830190869155967259928847356886420147910184435083484625830863785666135393164108204420415748449893320493631736288417025540429703016773879285297838275862403287080076645946409275843104338887188351164358808043035171931704285517192940445546582442577688701705123377683629504128856623133753461909875362723480542035580250314756986609918494177293491061854311256498963431119681911283750932038215277654539478042441316497800658215948022549522202395332373048397455110918986021742478474017808295626644963673686652201284060299652446580995771929875527021481735556067945367221532610004454556751579684168308429045768635669071849076838230749384741832708496300706008196355278443661737772872917758604282704563674324970568663293573677933609319805894909925385060721754843262760845532421057718898997435730985349797363226757550174215456284701458841177800722607972648320111877646365009567818448704307865416549236019784944761005437996137045783186262879558372276126548550937191188552289043565273407874391263465458535255428308990534490148597924790611108193416352696484346364972222220534188433313374698255385883047400737556829500928055886492282221942842483460653575456373134191101478247811839388181490013106766546799018737276907522864858269518384091388471839792818427021025574738580135097265571782514665828639740683449305661912446259076449094289297845313465579018929945548053497691028387216609493118201530776059589237853046757971150383876443454609048645121487401914035051849682709111846686692173758677381966283930992596032890212818296774876923508840684362327622181700759779881171324310077865661898195623942777881323748244898278554603278915603722127766674966458407186571278359975178140867619879288404143964018995339651006387061114549881194782228899723138584856158984156094602215676472715170456357375437955829330639047113587439364378951498366904910453129724397356568013459613830503702829526363960361651815297998216921823717164747783284947038847370982295469275744295186148281452816003449803335529298330950500582119206775881337526302127422193535723218987952516168113128577301492600660941606673521504939900285782565844989296093985089329191601619594279663158021220451475000101143507804989777053920499112876536788618693233624686760221810173022696150542960585019589012714198951769217915879794647798853373134831730250256809790409147478299474677694000214779897039560952386369957319568417276806106507728655864163288394701019145951045629263385724962758191803661640135387762277709586409828985665727637316116475805160036692604129004165915615453678468109307885601019017735113940077576869273334370654136731391420774045042542047027505236251846927509534456821385191700510820199685602766486316724852610626664282025518519726292559975370754224850475009643506960042650439396267272274414219488201393285804495776666207569975364434002506951286990477346478731083717373284208453296613301404411326100206569300146402414605694361343705439640776535102738457947161756899788033660905379663908584486365748490223587567827283067403712588370903291948405666777746773985900754459977841739496296693153405751679534077966699198916803861029941760550357626885365262578531389093195703703234128730043280347803463650866432556854369950106306413540473322134166095324116810161131649646938235875673981060524259347337216907912498828858110665323581317390805356262477523699238456052341720338258162889389971444785426543951975311738191447496726729295707206815605463089277597079411143729200294483117444721233576477984015714583705329756683942901790349215160676227277928960608712132359485904809573977931887987663050045564611597960300341414126443917276243788779203584063005432033630848795514726035283992488346085783903645460136910389931568662713984350306685822898383905211304324859935703746627811206326424304378069576528278146230432789934365357857841913352179119688592732997457304856240151214217804948365646066390418175711995916065799915144097070700582743330123699307106181131620039192030925377050597053132363970385367199310234851526546691363539159255494507238873745217890417282496733919547539510449759293090701717710708413829291376463514758947058030505325700070182814418000733302283488199507045278741264172202736161725222800584800172076916468715532449473668733557739179998666671731801846007951946330021916680958864049507947534269460965726745395053279192746076002353939030272400058187965244746636408269292049016087899063484626941135055172685870386467418094688173466661770932872375655551915585943673507071649235230224927629425449602481427555367836892388207675017230765316165270945989328311769831436346855337856064548059267622211251343298337759788644865539778811772307586095338040025012623495553331302442264415726512454687567689171497237028926208912175058430148424873675814965160285454027605704600027213763246120856063370934661439704737596045199849258412001364224291371879757307249177809652962207201590038137922778947497570950384605207545047155889606541582020293873637708130069984941556375764313037510250204242639939522449150803958391087911015732871251548029461051058814922786098561569191483624605622022780226508616308911283616782419359846608458778027658979812729515237940453289238664773865300512164439814413528858797106566529437007574243270225177390379703279043510317657997714813200402947764361563787481920425383072327943765535001207404507926322328442975625895160752486253120700264999113697694130885462950075058854933793818445384821411128643762520814254771568746420880854358509590415264617658928005828686527289668964045410590847702230888768001168712303076572844360206704030273958801127115904541567690244746006901716376294837569635944551844058522839123856797571523289735078281223332404428821464319433928788714471758933473792832651236606886403236183689991272039484111886255955896444922950006358097218188694379842001594087939499983195572664785463976909649774568236822406295764490687450993657890465440686605246556903491257081412200276601325788064797955621284477661242440134052456801029474289995833026551152407272676315529618372926805337921873983878761168629040945269932747194442059863280423567709741701409176303635526777725645722691299372409693680932773561193844315634857635598555041358925643171471362927011787676284739718334962779152817623662050449181524296705280151245803392302185586980203840494342310386793524716381465740744965540382292164010419225310476795253019070616510751729308039990035883271937225603916395884140099897373446264005896487206269009124393881701224346151372198619090279141180502367567017681380399789168106286799033907327510754018991994670809284372752919927758262824701149034651266761474418287189964327031591153898392127142150665671906907328213365274657729997279665430924798010327857642469069897273936743647718610146801394876644219223460605645238535594712988742882407532850385090828092428394304771753893195611657997500817141563249924774625520579250524132920663119785124215253950224073739920682980255287314985502349072984461473446799705505379441869855229596981292847215147839576776795151563343502279734604112862898337271846096009500286242342490267285984205613042650796941758711495002594730795628397683895874858681965160424329497065024254078790432968112764055037631279607186380786460365376441407202529099084271588437863628550146194786035611475483651825417154384051895592854958941745797972732251665245614708473844274637674512856063349035063989720062702894928089611303992623579452676807497272667896048733743602679274856798976587154425667638244086794698638559586328367652593605931867719220806699957132244736225211098738647481650784670116140110694848833511446987583536996431753747575078497885037973927889333892664854746026666814957609688992765368579132046912460679628689510292259706490670516036028264575616035335232229363695518972078581295196642529062047016910884596310452753117074601866060645741568179997837115305807175825534015584817421960281358997610040420105263700436120137057075769617279501394558438207492836625758111483129871659468507316480234475095196612806601275297133819061873919753682959886914366070983147200296983099564348071633900938993762727985740906657491076724906299346539272793205802069547571766617629153077424767941905800957976537262083655613236263432338370740306304847592397790520458261954038377537540977906488437442626381906197667984575553669868504033717339680677036476245006071277375464521389826854222787971548085038148073660677389813739182491692068521834287626407635708973825927352397326385777153819978295698121234072359503758037455837658383374707744200080861803135081556313838018742976804504392321693806387383473193846410791665942320719799900828344294314031483773665119277797408035528217994723582316619311000821253665465326920313737723614310439316943468563160742683831627965227202411907814030311265308990918077240241646909078891240818059943712863925043800210000470985714315122669772937937240610096443196839486962912398637384388711324649051330474363233877854905829150858989914973736374520237024068838377920894260546604155347234521089829398236822508518400492468888968705523404219929413609471602966828337766660204631584434028551909322605596480702416015893878051201091501896634692831266688979398835431563520072594353283647830267712073948864718008526048783299489676320452489435064028574226784882403202973767131828571941787517955810822670945051597574088905894416183394298191481502851853690453110230427254455432078443961191828290244712076107329766952289158957576770040745848593767737178429236778736853582815693316272364077276531776817064644376095868180450037997047016426945881627523718539837321991801909608252306176544317823520447542244064266259189897663738572708640485257771736119241062972054089968157964691847370529120520056370935995267885357209319458169141270445930700525100930584849018354839777553772065174298392943677872387836689250541580898779058888090015781350352152201862852152689526539233116028838132364779104430006125231075485776161386980111338718787498408560456730381573818335314937187168303765889444161487994138592075286087114561418240898029512917800667736034842449944151447823390584122092749002259982256780919637421751797522920340681644420751069044550053696611976581111167933116592934947996676577851210168488218563581861289052529411176524567145895307839320571246878860179510231025261529651740102410838315938012379787667609831515663379611615580491798842795739778858929972150350575793498994407526976303131896926382820184861916424653187898032047362821514503778367260658334241141376748785532466438513059920641181115960186236019595156749615241518743328938278766934983727797512403387595814790634410809028848296951331263181524803565978964784601904505287073897263474436193877448355326809901056555772253525995989146384427373181897225409356002987414783737615219112875945614761785191542782169216988370188927299787750469744849498459038235866866314733208226791498674328945998910814966748082413628283036970827858893716212233290000890397903947676757227233655980094107661717192342492588566241735897024308998275888340505448442239258627080732704498441309974515566938897954859075018379769044401829208737849295693866687287266585175797928334528860316619193142218053484683158562704282152604682717155103683562409974498563862497163370563977933403030530872346680333585142904451950304592199818331803038580180188329636223343516573260583761703451923995390531027649371330028541958269738017865545132004731644886110705436793276449769580816421174077402184359069582824298091745500765150717304624102234422507718003090794062305275780917012810219772001395509017785186450204888199933163566873461141137378064267804162706167241552777790226833835661415399785291642199156183554286536387563992669702260602614334021910244040929987218192404181626535295077676457306598913183653784099478760985202140171610267584126058057264939827646086624340195633375812448058490469568360980200675879125186748668808897963151883155060795168953398633441404193719790429488510961988387642060311047142665826837598378981870519356706352657015199743590911630943969805121365618533526677091849347573380847347333266404351974944896067885956680323049124572836268432512691640802142020755266119370759477504996818037806903621421359227710314028253726637908523121765537710431035945102400782660306725261155126541199804508959818123755088125123476839122000843417231466449138339124887554992821276404388327892052607332727352703734055567175383828685271477607205327813325679141219855066536486780109900863970218401033969014526591696153717518066671236209565693126292031727007562230288871200850270472101757574311954380316027592258778442396562970662695629505454155420032753950030839016013069249281790115862428233073307664717531393761869567529481366462200228673657384741938912351811580408119031978718058195779467838555967450049141004832422834106665368949453757259853116583760397684918480815543445689642136504022393592821969152118690938026503490157377794732291608030292291706322793294269110691816135854659226294303255685794387878094139459855764603483598275628736715353694531391462853952462849936082359879458765011469129439877100301297867500880964912236181587354984814203926923931645506265350883954064479277615361408887320454394683908067210611170973721203118377530840533326674849209839499623741709590683900591990603108188197541103347523183391871623233321363021289446505849763241740468424024037517882722105768239813048764812494955076022271583733394572522213028370151302018255081228398967560580556927190906718946026859572416122009402578309136133691004562300252704442193159693305732208965061965989607913307096692730890801528420561318616740695772565197903890525837738709200715874849046957290672406928248447258186151146395543551061258557439206955839894949917482405747987740224922111780576381447266742599320892410035818029243347198709296965806264284877055471457721052951135790158534671747766256116830344538181774058543879837427727014621962547669328994299916557589475892372608973430390883983865774773221308707434719719577402307165076268915356387346752352185905920267358058197126871856164385986817959596640039365617787688564981111921179728327715555244357107964981914097489357617670899618833146806574919149312045679480784962354584231493892753385964151566074402726649501827094150313244621543214090320075147826141526838840002667827644351326080725279528530605708520053984993910255557930261199854497028945077693571594892739072307157290644765985697637853717163899564954255451460608824594927737482036024697166382695233554753367233139508583244438386709115164498260293126664645281413863349738439213835588116194206485494815105996006313192075704346816810875570481937533888850862536879923739901830220736660438564191549767637373095953983338680043313313959429729547541845525948184726179048870158774171629393590853131716047785641747501599737285470588012597834973980949140300054174331827132666661445163241897730539959698902742676927050980298905474924356362819067524871796729575921751029785468063772947593711095072951020324948560308855271845799815938192086836702376475219109954484180683822733340615915088473274047429958456317285022327326178880316825247349316708115832887038327109036600252207613587784503867049777593663485128193762319545102120877254091607531804272412375419269297726123732899694918695845024300825948339119574828743678287962297867846103945078618314956535394501786144336145290326759726676564423821087678988640776147830201521312003559140705716263953165791949200683711830516703291179112742072874385539927482862164822017867167278205580947056876496085666376023452036298303267906889353263233769871817489627104130263609127047422757358387599133949072221364601084890865593980238230118406110734697235691166931219979862824840844654439540311188534907783954764065180557818469234134635522987743616471374328166147487401777908001431277151029718920354299236396117343826477182932563380442502650959548896612756142442776113888676542386390504209973975388660483123555421531361441029823478478297667812257060879836907340115347461497842939183924358311488828463249774405054629161471843970663376177647729305699597387534456165991605771136158201883233868050889027187999914923658112689272205665162347842898006087494412172966817393426057972667341049093958946217981213756140855272720443768990935949576761109557870869836716147719258302205138494411617461472512857967847742318900370727092339597196618178644122916987592461935712482522174002710389344330949868937950291447266724599743851628585094560095581441666784402295031525548783256686083026695223303532573894488765221381412550665869064753166135672113618788293664210055757266353372022734956559103641313763250988947131680562083112989495844617025840814613956498423683649173695779323339984908829659734037468233192238152577269016572349932445952173957341148722372366636468653009432392813989582247497687053237191931661483080473970071036052573745049680639075136370535762503170210842422699303088076052927823875531772818216479641059286080498969324229030704194811568665067592388494499241400437512827609342008701810102042960140971870631080386974462327005381986056059791464259518500610759996663751344280794309018661699092576388089002810585946205512754080354213117963519612896355975574377782516898095186702858071395175634003946734765871163121879655277731103618058431944677015267377080413853518400335633863444927552733680526428814615667455605342877534327720150374135310973530561015470591697257972403701752101353437362154070398138195370272438184365386810881603590052805458085271835453704525960138913963258179643287206846174924761041806383375686415918920222351288893150318522467564835762794770931483590782882259694706001377428199550995945997182466036052140723511830151978402976344293508637513270644952906313077328905546908454808744618655047880908695949910727274516083780133635386024329149698564275401061576926057699820859401941159359611198348257715528560589524322716854226465089132926740913875822495385617612892688472311096838631469293315796296402383999629345835367435709673296765285611074674897812770486062014511291475008739963449969192782531809614089720996244600343702970166884836802978333917324210133125801820706806533551104270402316174270892800398742940968701795726118506011311792975045152473675651783662519732208864524011250302395915358986074575128750189266614622300945511487487656149098693461602579847138595604587420071223171483213916265668505266170667015014491844468774301708201324206247489242614674871001374351333620869582626836910022383736805813187629955294524212967041493110996663656166516727131245512028330934344440395867490290663592777280523178297531997909626699897861223705421589269934497128182077080282587663626507213333572055348456172276826951998172853932264494600255193046419241558007729715784260474871135505100100555116613460650035339904749417993611898357591952516231202256255382380421023471596591553970575174869684777563633069136481246759814996121710189512694508559998005844853489940813633426054047209515824527800007158302916722431334817269773291556110104604208189303224067692440377726547286995786962324838579015373873984560937971644196696831370673316947272512682797010655531451336806234234579138676325397325642311989439750006268822634869394241016039227611023169853086226597313360621003006269884929691056499189475279535821604343491459590946634089293492433160210967914171374454193424790623242493561357706512694518610210171808295149191394761769757205431472126157242057745361567467952997084354484361032110619244894584075779891036741630461765574701442335614778747591531605181188369283428856172210455479157827211837775191861132274791213202517529482118732585836440359415571088120981961887972548283726660188299711711254795756902138064177969009478902060264312260706206235273812145140005307199973268109595630502430544165167442142003943468225311630145957771873393839907158471398549483461148242729369946225999296311368095487262535222422490979578600134842821712519573125475127481596877789239999990653538715020617479377631611464992148284596263882898575768310845683988255408513747913373266781026307753133905290857970282377202375229763901355934044916838088015560916856216962089434744450313431847552737272032405908671164616526325370929340380652990862362404955726978981929673185615555999448107527247768027463589122877037272554923094855428569613267106767272208467911029625682344581180522353135489166706277024014025869847477437194013506466784797341619428864488441451890951734010521000896438996983776228917687236069602108413703540149750700302116165479730302803415655655711447586905504137710261618667780951341256772962616785573609849534848064300220811439309590653587501482040779395763760435399512455475652978052053653978881142555951202902239817157019586882553706241832586020926016444721877087618239091204672525862401100187622822863198873349137141260027511454562856631297790344977492681247493897182497520807354529350655718334142610492349469380563416624806849665513394245107871092561493100177620376766595845373067840567911007641393543634692584632485457607866295800698231142302883622726706657529537320409516827413511286262329546177006094126048745260082222338620594066184447718933959152436722340927161552789594929051111662498655169110663471247781827210723474510640879061527735229057423332350785037606822830049809392454319667036494829727777482878244105784747708250053694993283254987444850383656253326578484686938022658371557782479411575635373797131082220700687320378885682770836148812576793202587382839305853955158807464155901413937241266105660201500483298015226428061587778455394274141325662158835033052273956536881544381339855311463044503847711388877734195017017055727398210840197962400573509344957738197011086210427770025807581456205256848834585482739438626469905625089953589307882945773193449746492864070111679942198287426815036735790272018259803135741034779630210165347246144495006232772656003046188069562582507358465089263077775854583718353115359409406277296589483348708816307827082027072765532150432513161831340183519113932703749406526145507656285785318668597509003439838469112815870206492521465348114752943107805860979373486316352422127733072750012351963815686235880357701294493360030227159666561385349102341007151315261508530329304693328794181783388563377625722235044925811141938312231743759638563982510076394591846291371503368643968511877220214169950125198596694079068766915306398998489735337965620106089073408350432236858695139240842109182825486773398142809986904735314133141989448107679849561913319557590458213326442823278054853699448829250180156116388890054229860474657944587361380232888472900008620281229960193100223739873781205182354378218629047478475787477257084882227325495854854938772653349345337458399951716755992650881505550246302140430901780850443825318667303444272657702205396118393590657451413556868090177757574427626672372935551989471564409417260501823565166922530135027452334119627962912162840891916197847602899850640129762447060571790220056591176500916768994272388138708466324980319809683201380919161399988825416470911842688435349763658837778862098346323109108827529324748636603395364318720398478079919886688087366697097686358707460305979799795230367984145651395610215968585336008571365559983728963153828973749617377066683421554066077528751230017364113893684509633559692968025347453438646816071702952900729204799723049226659626873305109391548829206665275851013259272655517914587206055288685151468953061909334171204452525386840161726824410769384500825245665576259749000367924797945871618589937510550123058513980811616393012097192586023004695751918990910960031880863757584617537461101963022725019335164423748270102084817983499419549199980306643178258940856763428098071324427409985098519962352699741766012633556868848329859141514377302212780574683308125933127223030583835052731053806737788493546252323321759103363803247320036675159695007313899112333037054422117034142151303484531188338889021454232810617538245033007290742560598041969908849641535648407205514001554874837708296929708616365056289213361385076166810907227746633087130866813863561087153782718493503321045919755607109582937147909208160413378258986452274614328548412833295850403290326603665699340384137294372622390978479269520826228019155730578308408415662010812949265923161122149276587905939251077134492370502767635860292645528276343495333183003751955507300674677220370822672611617462948651216597832901991022604896638005691040036706279136069470352241409878526581941228782550878852548887012510049206776035722512273426837753336912271373959937999825592941579522918705208643629574229094385109255817017787623079885227625671929421654172549615435107027014117058467889991024986691334705937420869843558472615446950750689481325549915811799193727136743226611479262543646193736258455352147786810069457179313614751272082319108535748220027295088380618486733094721826770965184709302212311437309918257299138902488855366819977767479659552155177339509734064358409848663624050975869175617665621314513342760466723629575321209324917078590512980496787675694664867582548455936287491285063837163566600637645086179815375211275640103637647257869339030828872100491116038225046759542736516124785106050670678728815013362694949315743037653133396204325441643581444675524646506975156826161190698509794116003982283121508059010445564597733984119105991503133631298787709962276543036852846591608327509983714061499253175817253545594549147852996692261055465167028065309755313369822412517238498890241834053180218027849796439183534919634017403771836501647608809287811160712414594040992563798770501721193193201858988777135119288131340010101245148294360149474675809314841277397124184216912600138507875662322289627684819267971827888792765635941807158902778194116295338809787364351750006809997243819661315373582969605431551334583780619620738507395834155527522783960867017851119167419894725751934185601400678140241512402726471180582466318542616840578992185306753316236304306813053420729930447086208155441791896720378819103482334886471492237095273383556598470069946946036058459754695750802413736905852537326918843564647876389215142593724889022193501105753107976399249849560103305452799761778188482841911716001125247401490122805835383671449069284008290596248483246358305016228696852525282912143807946950415989930520030114696583023485990811746441489564907021468789000298509513246319225027123795016752040232130238317303868268007739502762655158449726438086760088687576105654687822120871614916748203513606396483059571107455329585095695176442207436688355876682474638829921181437534294071483150150763500568444344694108238328351592428394433840989454105576699323294719162962582144796522071427266358779367878670968825086169443670289989301225349409723901330317842477816268657995930603019024533016966510555119470332070328846903060586385928916120150083087631476645090220388199697544574588333590670952500818907368015085130255587627922533390627510199342833979295427852137454186735949142155521548609020918253061982329080515159895495131671338368546157273665856319432339355080604500094441948367285005747711747326683746862120800792809422264760772399951849563241332557807119558686016124031382879784333416044177771774719122135496171137975214585722982778224400931624456459070567547850913652717367345273780801065243155597404787504221914904477310262792611245625215132608910468847436310422813684712396530547058783961909978709722497393841350367988918635929447248107641988129415643736296067969896430284052145257311280790341206104511082978376495740624034098861954501276568671369925647131746651000272279384185199640029417142301018239455311312017927343120738535600883343094652281007843122911879812802168326398737939525180443362726826396477025017184556298197592095283502398738066437646170812871554045571607454462624648209619423735797156639479699943539487267122645635376053631685213875586359886307214174156318046984117368923284285831410750053144513467000624413034317525824039104980268376159189194560006502668646423053967727444576939180199961263976207917502858377561834550345891132300122341240138561059385927494826004645458635946585376363149758267568608598972700927626163462784759261575491462833297979523969568150551213588605943561341179517088696407278534817398347866302852562057363338246053736880011222533453322182366581295857121411172007517457320790979642994220229514174246435236845846185432770568754827061645823731119522575234702623696031310962741599725167849613228034247477758348854115631861976703769405914408885892518926360496057629692331794261353221646416832521691073799993896059476245190837848657524280239583283257883827099352494771528200751705455474568556122225484153951900815334710946994506129681041258415715272506872329580183760046947582573415612649705457125996082640379023978214163416985260924441479459376648172974289857241623234939204535108674328575390262304296413214807992507265415393492913992748482856780999695175817634390661711419903368154555441595985373241649878129532326587352925249441261758558286507436760150569898812889259798892465464786968304943940096063933188513382989212505033375375110995012892631255345724653809299263436108325925135513625736873934184521568095787045619463707782142215400873358533034051122568966622356169896517833039048092421781646842362737226899326449123725936331197954792387276859824276590241745961862939738485065649803385517758537387668455529352489840187032871456463610186559327481342224013786008068464579702434539445283744924099884328441210761363375074369458583259479106407281581923188254124380269522284448396980088916946453352389778034801706611197263251151841164977413656671495082600248428728371586061647662460799713855512559562532148490379022639303593131685290312724512440904813250241167487478966130680688935561465077480168705776724612760854901273033239419705745689909051579667228912640391534559149247065526791798062875279718212705367827926879854515884964547414082952329625557381369225499363081982185125709563588445631848222801094004509220855702682490411700614496844611017198684850168060263011563696188954618606263753762053203185607567044107839293522910373445793067925045615325773911416920707230791150256541860522536048976249848999498382629171775837788541743754198007749513820558434830365748743854361088134838519443117170785220387484885820079087435503630948983695937299444946041543639310751357083335327852169724448308288660098060071453507534858575443032809174778889116497043507000424405817743938770628077619427711161059486858139221144676953647525215109149170207422354150271492533293496355985877333968977848508758916890269317567151800151991562399529747782834623153363526767514319586923934606676037956540490030177492668968474967552099327641195423428352213308737456007226784817345624696683894410922275223307240541954762464787672588653397661616401230220044482094810794649314122587259257496680654525051084120097884745641706947193947692519863053191532185296726465211050104702674681447565544213165124120729539491264809464344566952827592488747328229395251127858704441522009081722219790462684041452396856552133560169970958940048854532626993662091366989141924354813292238629895381618347258127958101154833546661335904512637782792699804571436839493512066168140990857736921547082829743622612842094482233670270296014324056280727570725757839341300323812266263270415466151813203226753657942499896681678140037537037897260877813896498698716370495702317336115218873965022067138668790783656286725034275521030405531103991923516559488865450099859312304538188050884564421637561539768704479086213159759229668371990774834651378240201918198752486038026735545227541091788165352421087949766465872776261991777942961797672718804099068227206585025526457047701988057635647592399403853401279289414091240695340823396800982533933755075371013255565537953280274459982438625187703912141396224705284278771841727274991811090298729329898409876102703699406910741887812014462709457790676524688345533485100808021554343012873961286589900814761036520611660039807837307815262748088799260418188591758895203512054905639164638404358801618317717062459023524324534685462165278917404362593110720335447781323566140914809049557522010560250589159774141726237403437807208676463580208355233448381909635381917175744965343478345886234882573988951419475890519309896989885283314899904630260150499002904552996019378479573557989877371637816118968248357637921278940546126240620755627526021893877334178179969617059323090673626791143677376998328728783373395989270058598690119946783850693404366598713381792823931456043752369568260038024445516405824351710558737573426924180195945771529798008995267410485008238381458577860613671606244589674833167049622741061908244560890470060081496141257403403587013717179410931235912564242935797508740037551644317752765616591318469352709399336661065098689679959130636703963588837350004274286395188090947247404563606469403719058963394447029481146258064523866484003921812891211518969362659661592975856307765643868547570080178889303782772033733410311223918955783599486428163637936295623768096495774758909409915278405591776138170610040893313839002266038206512774394160731337217375885949495558468217253336142393621544714864879917087904914471612750593660255685622402346495502021731619218156585692211065002030474934582087237050869606666062475545465815875700697779356745356471052199216614969892004373289075475440946161066572724992495526940286171281719495049738815663208737942934061221606815693360869889391207936577724516855603471696559100667121172640858072021452576342591112530037617146989582077539396481548022335375373755441458468756601872630096441687164429858733780380822791337646173431390609550499882960392935262913365439809811054141292618647435418877601848852487730096516121297139479155846378460808469923415668642249278741413421345100460699683463771323808606978306881393775744069730543626253446173276428130869058071590821684752456521551138519410942277471218525632033121683051707493073010987820005792373231514448217232606199031548686375365010274743098846144907332034158707599464217423833895506655570811714750244505306952056476600685035421999746788140136549251872328118670752804324239897600928676851337417490344052657174314735837283256492356515665656883025566935484511137179827384431601988039440747140003153487239514531628194045453619320848284433374906476162555654485883485580785142356349484144104693686731542290832475245174467973007793933160873817311362440814202668708814140923120865786797798838233107335995290643246442887307833455668082970566413226478990481980120505380164727068526429601841835346959409542904273360097008620935860484193714487525812947308215091709812559849525542800421243268940973421595743684934287430038015172505044793567882909901119773852123962448767157260709991363423895825917296485097442499711753857466007462022243248316751997108466964107102555657122451176359204446812687727633795722224612811395263079344373237595137966621810115843893602482997124835679737466504964908363188574770020070310515228448193533234604873863971628544933004700837773239196049578069288690858786444496771988058935259958886933412074161022746246004028509026207824401902637053273157978840476950569752224175331961742185335704132768170360796096636426672435765816002528641092932960536438048503432080918500907200773346932234385658829257647782037583484318512468358074228385688765538357356258064424036592464970391872901707729848628378314661521503566495031768464106925048466956645651857434135724397560772212337587582733371556217705184032125110845562120564190585058007786390226820108650387407666323031618878675352174307609250976358323592096709019737300520122144454115855766384567152328819732269080755278808524434603521990280449756261097289779144957988999155009187718190598480072736858120876656811405299322322804056433166729165816469699088780824963896079685153273946857938361322805177342089119676255789164999501693459207325502668584401377895895709170577708611923103143654313863365686791412443053780168297910008928078690217973759912862414930800449853594099020718224868367853834145524056378131355574795229109172987538870421265874852864621350260183844540972853479847509187703520541454133890445586864205477841707074348063875035242496327446303085716232640147477577809415189283107716687590560629915026485582337503186502067115148116896022282010373425635130633136303760129000490794845490650711071464153892313224615975762192392689161853274021622347493335390122917757372780871997962703303234741075177798792529473123146425672611933355318680609366365198484194930319403111839114884760829746950401786080162413789961665789505882868269223231432730572898919307450645825576860429651143571902805651709629871416704913286973216688106525671503157208795924122269860485354070360669564076833528089108202752199207255065607823680850948766412464133194935793821904044785240453786353555151847680787198162194613534306117593404684372982156324925860084668963406972105316308903761221436837442909246590760479640617994418382831976051101536841167740597820074085260541246647263612047962557035187068554700508711967056426065252576465867674901511740526757931314678227219548396094243557215870159562255556939580438567323640810689051137949220682526903049093206149294952158381696677762227635874683684555769509988020181555301991521560273141217214819447276647474085385118098008716218089992508358964016099099471642906546024055657958837479161929189778478396307467694091705731708505840913038422243825538272619725226067507678250478364365559133113876201540318607999219665166562104411878350254254059465346517264322687199312037621985519217157188194975253697455649174842535785531889527205988215365062899577174461335798946240188024864194069039368357284610628658606747345576406088544824375766969387114855820836635262733255912077954079653593534807248967213451890830428407802783096452453190109308299248443349919345342045937185369764575703298233030649389890860648377888652195824579506331983712757911751066437545666347876112941100871659298140175760283056423250915037634135862890747090164895243106043419674920885745272767740311340320566258387530257492161393155589805014830912465748730746571374776739041832528822971861079555073150443684247523693952533966907017376863019822787470793704275767391741884729358860186686586322018870999829411108288925266322621514912453384134417120310876941199146207325795654069333569688831909961123647804031724874476612488448529634601022376857468681083598517128780207681274333204478324656193856619356871185215874019802053090835086507377141689823887522214758515894623004500885102522183896951648527923232118962641796631202556652484509005611207830955875232603344071225763208188159899052770338074048304452627360138070074399223910352235319259707028759099819975384509400674392471304636140735056041268585791862958495254958094265969296563467950007907306563990123056353380694242622737407395765869602162142065123500469776293744175321721797023609673114677272418850643126392134279902352374499224213518366914642382374243778863581864106049132726710135251913609087375906685871324802068195613864746826014814692061190529811304380101052825948140406239874993634078012912099601678410827503957620717347911485840215564359685555028701667492000516220239165232976439438912454416470729587910006180007419377749648889963593872482108476471332067594973642212344356482238311784676980578859483403105790886686185724250917482563642574742656752442951589600520313270601939809813909122091169339404483117257785033182726685717641287228265613898283949669446921326340910578220449607888799256570915684178114263515879664027157363094156432904472450478548973540291652881081364912087197960651565200757434150903005544249229502396313063131440624363265384951808248989075921999359356736671372819072899746847633164443694125034506202013791426345668035439475898706270753839062204859876111762693494607141378317999656733338528202165033921978064747149736590181435431206224406319741061146209704306468520169921062758077737251840084602085947188357242931848519247421231703192716461816224927142131932520560566341321174898206774116781434052584052416663098027946444331489072623671724548583333537477651845975838869869529575282151320702754728481280791328165985083233638644579165264356355090898720379493673661682259699080828584809203374032019399170320184073302639397607597353222580842294019608466226206211795776139533921946551425103817572645103256937565001655218149011132012227324634693740730779132341492934567998229659602572793310426931017619049690131499872023145428816287822231224339016116352489069188814543326879834909764148768385163361986684748923015996025841131447022184539041425096719849839834855177672375948148549741762628820866193932948475040607774380145753315602637007862886411885730098929362031032479356158631528136707068907104232523792891865354217965799022761338900165918923896617101427755317720237021779045633090990368329579706244841992387658638371992652719886523428648376179334790177151451887948655942703373069834120129325376564431560848187523926021779838860379414714058937537319565860192844029211429243288496588293079093015560922232876847677947580812494442021710280636095497061799563781388502034496033951669791567119385958873923634828739759096215731347219556135150939827542418469576867401645045648661439175057973536429640623144947590420236673238226221967918362505534814114465656100521474448440415253587918992135668748112406977409401442785166546336631964288376196313024096453189658027556970972650028880707191844079614310445323607157259689709475458256445766102205577199109096453118467727935656063251207883377882722828335114807007536998559336510925013383273446458284385898162595582818025210018054842395766071686077522173207056996085238546328320648440058751481339881329986472582540466995532840775813127408165503996915236530119994541833726838709302228909925731276519255088757312971070117828089204306806718380394790534462941659667371057741313647202971975941039390727215780914748425288213847871229160715889362509320787995104170685666995983093309233453742989381434400646066385023634454330473210369700183282054412100275681399704407572984757788172553617304954224133282690645509274012151994629802780863555090307692174412624442079134083853191743355852564116184859645460050217247710120414273542642256257937079046897241146454825055610127308302019756401258703177778421468000901109094286129643219217874045302318372874251695551853672840818408293710061577012020957932490952353478942689152927189690365899389773017270116385771610549785346792006222633655241773321291730451913782038259373760696361608806574576016585519230033647515450645781312904073383263897739732729479551658795375383807740300507313144815281281330209851587162257738593219968717833028636959975507987423615805696400286025178093734608020684530530138288189224175498843256510940673623090166313537711138502515934474464316488995091738228289432260093908074605837569855674966879942608122779965372716553220785218373041565741222136437799078314702092904334291879790431759199663211580116351586749632474462045878078760195967931440280267900667852637682811145304105988748638145310135028807825321266044499879884732714873655692949174525304860709708248322803888874123778094789111270341903942007610475136378153455439179166973111679962272732398983721318965772401313283155933190213458542467648148108746286377000614198337813443337639379711057856332500791135450621275501345899363878953609891325721527315029218120840878577946232626981307345120283679534196796493849334409076139633096204203690560755891920386801413880947201022959292997523905722415715123824972423874011795459505085661242392784745258932209616876951270735611566948999267442928583868950663132504917603441577455452909976210994423172439903533496586417245398082007054467527987395644473122023696313408471328019585496922846678574094044308517121561921227385197539095836524186924375629681624494435050974576663122015456905826079630197029245188565843866642313679008465628472797262557094170872840785741083870376101755387790109669717763771550680840215335188329139670630656781928767348313335515975522327274429817634094259519240544016537319112479740130088277858269774767962662047891354854073757491941207462507266319629300299432082419651169403590784942884322281387833223254705679399819532019219941291165231782307602652919368840189778790392332363369241203230343879708147431550341324830552226974418447221198024775074062216831162851840920216233095546170808309660973957875212303474432965121698925770526913010053545898453951642813870005598964094408509281595004480155898168693759509548474869560674198369675643779568504001767996856582567950725915311841581767700525866770072503506742241956050211120393588359031437255867292814914112359131751743295033432728599824824434373169266959697409647034201555545681016636251374725370640440016242751959867100179361746008233067449979362156589245164804092092879776774830375299801314612320130327101957835528528573177951369038689519916629004454692573545015115204124634272757392586167313603348777196880999498017243370730901779556188209858135969483171816198700907740297751930335830912700128131459812295408749471263397818109881762325547615253468679725316673963844421129788430992740991820808625995522613395008043671687428143382961064596777231165705665151533375509033417045129923643794743041722248183982433082007983450034511581764609587391690536964714405497420234220852057727372700000905753586163643917984036683561070596553863925682211425001196556197321723037505798010080061003963615515241631032661524869075135356713802518574702948485703122683217256271645550287685203068324325140851640071992066038868319230725258085801072360309408912312613027911137829885437182189461318079314999245722877359113198823306485760678048527777625607814954962929993588826520913414419924321367781464427094609688993093013740578032000022430755501084762418241983833226998096662161120331564632638595174828587420771540270699894736891172406777860273147867186761134110747878580426923920433151837186870009436363358693966022884964364732834710624999124115707964367775860105281321360216411587134608877437573595348617980490507855707618683472201025739991821583042551871387676977902706934598160581003965951730704018239663171514558298755061430196942941543980320605052947462694753163268062558603189218682552871903559478230448418581377005767784954756106588185505424642190558825890149893167635987143296960612953549520116996236445068007450220176232575169469809811295558452286928887094078302628790671669677346599400329421265208936613500940695209732301057089381962185321658827512309403531766156361804015731145349257971810904758578735166459781947110499727201198032074521684832118122019029345015456279043034857365339482029582800321512503824624023118044964119844978847678063617240116156871246157895891280569920381202940201861662049232687046522407145927673053164580640537266377679791404895739183833493558188994905307398553471496865203090527293592728220370534030239100413047653552814143158871196040606526293686907861884305344446592973058694228532727603832348220413878045127128739588404163294274297429242102742945404651877586554144307040048604198958078141626749898236193323695117401344605268838869942160230631851343972858903434037281382422098920198601329111721405537426699030132046642534540329097692682481759873215794995332846248958539983015285399300922811191709284221132458311301720000046558204137005638492269033385516311922274937334230607129168218195048766242231049197537985384620066507870275331386990991712645628024850153347445767578818867032567018403389921705157426468080776048348983288223732381180219279020289577321770753069440189473707936326256835612880154300979268914021413966337464256612881825032584220332810423636892217993442629482675051971234501024749866735038853578085536823135535238372555073777450798927159830645356114195147554366727254482201943473946817860964996113770548444453268910163804664608343762173297662943057155106981597508899314853862764211049078729850857862313662816550566395600663893681364007027534041697272045202349377959593359220259216596941854265267575542853795563846244442733264712482159307712724918604964463203274597312918001702991723740363661486487884441581171191554331361029173074561607547765055692306614209503149242019130725973519223758096728287439890781453173811934808280808589749165169652414372904974803272866161007006988402048280983301324002532971398465104106586414300056171506349110483414578336303264662096576149459861261747867715400955329285900686902495794309279783087286047670420783701299788844277184191583804747752233498690010831672926901734897400666558916341978176169300994867517914430604875916495119833182471678399072714238564982494970783117314480267767844057653765896789062679229171974457784127911579636085930854886044728745395721754583718231681258855036296023029778553891156122040994436074396398691393400248259452909643414850908234506922266277347303946400821481274693207206912635762328906638148825955717250558198355197610915233010176776183704264494757462234874142395531464972397168998849269107856006768148295083427875610632271987465343405571147106849648471326139082606605537414033398023484390817565206691400821849525889362925426702839430450784653370169119615943646476802944769876741184582613880685281558393637801937794450271593886664475411671129537956620107861765104215040556745355209413899530394115212828121264630458441567823386189082484706014557195402341431244919861088715276930576284052603795753347526812207128461086907482376007346169392855363162777799482151278797204294666061854311089197069168419342221199747580071141139113096381827730099268237029631203293347941692758901535381555095795178516908540401270387768354006884556291056377533743034791364387728279695339584627104479187634067808236826336420303068397267260203212280491389124881171687083789473198891064582841686493388343015180484020103394845197038457635317078612605655099597592545279774725962699423264747394823046410211347378176309186057383177029418901657401864328176436067315667715163690041865919491751597198487465719347827535392089795341443430676567068220939780049808129077037568219974215585074313599655668403880104544323162994099633459740435340585010405805985062709309756698244795433381537914214165816595504806797341960759892132617053901640753036536431406118985150077389545767455304976147468346107722533559085804748087628113024450522657934087624319055927788198284423289849826605702182832177341424217351821984095337728077917699506799740763685697695083572626960079654315752228395646461269156105178089473891903166882579684978578725959280820775174066747510756818763201545319262216166528523985583742001592527168298371875035723818201535993274835447805655323617592692736927276680927430803319161736798153755371488120559797113891102419962028497180573605398695323443990541418703879709167092594496513117631064525858674340296122642332387924303538431397249740016169545949446097165448219093260225800667753689203623494585005058897415226389790507042297873281588004171568749140962638991952050833928587294317158411937372798765000648182396707730039700821799604990097918473027359767373561255419616837070013725975146356249858682216460829335587102078774902372847285400254413923123803262319439279610870237548850179923180925209495622560679997051245022647286451069712290520953179668568622679602669795649303684112579240248246990135939754713595933532827756291619000294242653028791020941166061665560107386683740416433053767801389338050914384790316355615880161561318732094250575633093326283161837241502987628875532456098291803689380418928548077205569887625717087275586401706524445416214555775453814857286126185764498836088038843777928842627162827298291539781624620919827597892003133850354376120389565348147293923285984800347235057863200802966207397188496764067347166001802469237494786408032117182887381944483797838476623216462295036294220424402015801067014389585525903074557317163109556411399043481405157162019826011063749317959990702269717712684075007302500338495888533235634061950699140975938313322493522354738755300030056679329189197013841535051110380831751806884104873166745140728779391030150113059152045169158573643810292885497877517004333434389892647781572869217437272215315730850278784866182504355645030583417877759497155474684032013156047093778785567999305521218937470856140703618212919195470247638945573834758254878931748301742023466593531980887175954297187525695089354992256775230559660037795618172152147577352996950165153935313186517738353335775028187475373110341875141714204678889420404573156519224568806200838067551299045422838012460430019347503141398316526813104989255988954073258741527203794158346004421353441643713019652094625548107992201691509031202132503904205101994981633955229161148127070736668886448007624916949984939452562559374713800394136559968760367324388580957531572650503847131786467262637049262448053738099849547519078259000321740710714941717554686585642200237847569927558573514795995413772982641785654559672301044793835963126726943371842336269059533602970822625503396739862487188867354551895686393929553154044214854171128340176719170096876598580822376365578080319662663006573593081398864204606200593874053563816704683900133171698858825726420270637432404862453478107216522114677885015425674699522726325634029817543753018540606532859490539333605747057287314101117708324165335875837820420760762572090486396333506219442214502515616980449237210608825024960458194720372939707737318178506870878147074269359737108044909959609065035397145068220054203278261702322359646417180526354135070149180167252185330146704827748547855093186072914212503675903390212038249150922979465721444644816304601112161644163143687667556328426029163534110161169711059247387446030554379704271992069039897643768545242153220878263340086145458611725041800992582456656581626763643236950950828911821825389165475286596667652822396716814920100891012112371797004952176183695081695085812347810416127730148139312591884882071899401551408056094165593435702766911114574407038239726722339748877933399738049969049079998673994286143306695784857375189337037263014550504042205559222266027481985955865675354023754509812667326284065734327018610153157550291018040023210904294075657193605208629556609529377490210227478671566490773537220702224557134372696175932849836785008352275279142913457727811481201786980236616584211428080238783063902740905664464791669860716444994183709924363738686150212886007715203792645719033230491247650805241142442734073511303391311345025523625834682420553775135942016165683077851290758141927491642889916469878247440916339921594658361424211552626106894007379945610855058310472313338217303406153518178224799171606162104355932065469991117651992495080271012108069780946803767381138393850694289275787683847689551579001203647270380133679977864142821658864378281806182392956807647369619685922458396839970915582897413227160868816574397237267220472576829424227943292316866115617174796232691542777547949290855952570445870183515470186268699601523334090253106646447466516274168760408593666818079301769996828130920673433435885397513424395013515579352688005532653897650538828053307645444699966127947620701700062982607626179001693261953071728635938046170315672924553319296560199103954125230739860523188925860625297131549659902175884649007671110685782376925296834044519999426361804598816463148145288160324200200471739601066347817516913246398609530588231896664109844314518544586707976811067803727566043528477289924574198074169865059990823213912336602832676640052107217562267459878607108379437714761993178822507076270205824521340683982820424095367009804606762003415583821760276939676870458400143452817896123942120379386074520386436175787846752296656727361526143836110345688354049158652190465271555752287145350894252339542949719815691707972378777169234171254436657615186241252223724371799945268616657018122957868705478993807950812148292711546251737608614219542245425966584559798788424705131390443659239605343854252372979158693705457367047663792152499392589708193782577921292956867946803256764759199382955302341730722507113782754402782967596952509816452871060165906057869432808050879739597901738866453484504056489831749312172358590250783652544742575562875280331332382417569197621635767231493524227848155794867673104909265840128463642165819791219174930905697346506935147587905911597819170376473880520561032888575254476744165448467688188038491774776233680677135146416588758733461279055749639480233785663382053314301027613515195768727601897199377579215975782951786756712208068809663707042991363077335293403283549337136144277364575445809110551259689638114839322734671111124818709299139303285901072348492644930798368960240428867848239303363202808316647549966822654018846843628521965330571006340263549164513727437494216678918802832018082078676406332226757751394032015795228136455266718297286131779195962251456915544699356882073332898116840081096305146948504908381832852160392358709589508310792933310485853834835955054081812546965440946772201070622122029819188785243075048130504658297232100644174064342994961049545511908527082029228766886127163797696777574993512305544154486621660632623836652558788092963639858705441950479786689012570325323211925309360818861274911232630219174880925268660399034590605195432830361560240662675292339736719897750719450619053442123193932302823851370993942571342563730289034624591405934219882413626812986204645837387956316818798459794708285989417625349828865454226031783580128559812066672681798988179038000104307885141679065869406582090731124661158577544924570663161573940721644875025871070415096237598795575100738263781561075211477953753093716716893335029270029770937743237843757879340911725363476819900302191266584033250535851339318122499456656463336282382279461688992284279186811411885358735534709628223840848511414900787530800069612435867418861126314965704849714306561366516258173839091523204200519672495682877102910603372214637101614962161091745691150117667901776187144393357455452989417478833075543751120530111751274153548300974148094403707511195960424808305244014885704418974229457994256582992246121924220663498117545346443743546871695586052443340854351925101344171177882949531047224565402340957886089385426109951320011104854098934969384892374405839007305535992086951486318967879793612269206186152779046671130556127432517357387031879248530299016963526672471040396825514881965715702865873688867393073099852832456536280094461197909763603052832308628180728193313366556170037773467651695856668193663227667733943968970798131050318626817771762388008854757259346356887054401652040932500584370113677158087647961788692221399340776966178199462673833165702796849129884839517893585455971472801038135496773274402230815688011230258190853945533170878649454606503843038328233741646451656528832811944214718247186210081351487187684813337370167234254457765451626712677720942047738254718910554680417769662324637884387497303622211362855279089551804359598700141672423200521927234574607973985072912713888288845989014080390209288140258845666003648323556726139198570699777598189203095759889867669522165088680767816782833755340645234613854635139688046524078809696411810612848631829245131112095542720072190852105008470002386630349624258902085592362307697057227358561422881562902709630370812173992405633112527993496742861399851498983453195839327543502772493271393414597188493486019677066098092154000382038087754558254017930356294059501042290470636932548480291879746985850601556593901715153496122486119711763054110777491315147905210433404590207465553551551490612661018088215018547366999995691930241656513534492145549674102336212060359300582163480402008068273553596515404458610673369229785271086836956376392163227082018999319902001893841422382416503438756958593958983676143028996353615395923889789674261437453703554069354143848383707731904403697734799307072219544747518137697574707185331157172882150585118121431995121870810455147805235987292947507984259661997556192962755096009992089391644664303704648135619437378727876665955539648232557654829635879400192916801666082645770538259827046118203529659830338457402836688536774329444550319445826552006342468905880180188965259104106525973156159254874478631405424223417999158259873084765334266412440777758196957001323086302515366251247630862638118205735858891947907142473624577071477585466868738393340473841037890418266917008111832248099420836098558749112305174841713559258905748289109425800733573190805296481772598338997986746922531068800062428935686426419043338706536910912787281192971566210720129247622940867720600426412800482473446270775571001826267845769369647371539942230153476222281177769747047510940677071967570034471873242608450645550041146576209743816479179175959562533475492817955279957780318229118941606798628797514065060395988399054405269524247206161784471098371385507192635789421740982698431048559650756940706560301633737657096003014595444374276755626904041618691029491545451740347389442720349092878790715279818055326245580230658114307272716256231589304194857771983496298986129039103688016438518041436312957111246674511928942224513061011329745173127597152498732293877195722982518393423661923700779515071419947300344761199777498493487031355587990382401507074371374561104272525142426504340934950468998574622089943365863798518669168973928803081990796640168879702215427374721127525115666859758903172699359043307770620775757505153713520890255680058076018108057089970625645671609705250431708605388866385611596239382874193646353973705293771798300906962120375147467591627490194881545277173105874660137041949150572899223121241384456384852633396721986002974338890473614211945836325480019872844727369865393266713617738220327536129462804378100808782870106111463745859610706569410153558725074890231583030408202910647481371738763722876014626653111500182427424446073142400743492335110415034103298368121125859850555376967677579446713275108769735343212881117759042894660450866908412305395097317012319385281697460590187245470125385103465510485318005341511763670756238110769680331051529052560967629865185817344666165166806665312637481768575837727421764983846465905333529234728741701962205071709722430361266592186329915884426513029680348198721036798612040781184940697604407063552774350019954976429243288517763255189609516784028964724301057615465717095906880000338769519233580739441433541184085765274809085637646369979379473048630172305773764446280419395248833808990158553400419758433297556680585495995996796650900846171826531475393649958383141005252167655309363143945643494758210057379169269281978100356524105278267457936005771520305304887051267370818267628939963558397626719313126727983696744717893131664319074265944708279522380242644949923109280915790847077536355964075158645215359768437893491599812744196415271713772799224735025465876954149807667856155444969470086666528509827271758144303213830609402059027447833913597532505060467538611590457396629450438667647535164594506129362053905982307578578356789684390315615215296621953161519193527596933123532970271527086368808902674793082975248793604242160068791008679163077360681046191694075378653319686322030916060069611717613169483238485708903791491172053358589885661393710522822846340115531183321685955410418365071175370413790996377425218008563676735654224764842095486513016416626684512142046999896330766565826026546999508665376580795579383380476395085968020797303863611906006757737857499064248681475463226061892971591952260078745493200317988672695287421436725280310411576199515975431302524716866813995425681837014912660238354852178919015742899619864735613158272437790989645029221365676165138906022798989396690796326321519195215216116563756201945337095870642377483183503653331226066571409672213259352499771417958539140121911956523035419434192994916068097847289441556778263988283214215832509231167546914765408825813553742903968404237629557586990779594180557865220996623947083262172766679269956947131642713908872450681958631960488134787060901130000553647128673142818252639511245509891239796022981368483393897351079704896082283097988820670232457894304431271756185094809331295464274680501368863880582646657611293221917593754089618775443564641689639340982972549958936457855664015584083230270593229579205743600847717656572671857368215080786486288902435209488102911963606426954709700372458008972889929937740153248254746789066735775507276502540463524202364952677568348467032420941998370793725530265142766134286891988919835650172081033679986871537975602852109703315412613887387835755602731904427203970236950780595397453481086259054240529906121955726527976231377503975315550351744997580749804155130887914103089215979822397751614012784160829705209912252563730942386628075603434941950251989217775161099347575438390810031017311456663188866333232527313325324411700628740525073816255997494847987931667353495398731288215721705063519192136020676619157126060446463138102551706933229421376397462590480795740766071787116938062729144707300692101895278232115733327219794317894674570931551358253649171307474362049271383389516958031122259092593135234955254397832317744685478881839744161401344270547496242362222620738600737062492059135681139234857256790777639714578065707313206489376187203189181341831261830426969442399421499443594828129426500448570321658360060303490384525744285747793801951536759150935019300290310733660460746975906716761625390221054330163101560604412446249614902384294965893237823329540637493994150361463398809746305510985593057861387842822364392950738027937549998459050076941775708361375165364154839334900738174163027564978385962067845338705694967711592557961243343027749962819789524351209328669322393667831578668175317387553352159963149878930525403911273985765720690199686079393724986170454335238865185476027926881726607254151907945785270653395767980295992266655637460221380715355397441581673674621785607943542250981152114908613471152082290800087707862352088328028733417205539060763939888922832425684489699014477291310129040166931655698393374537402003988881095884223365242257037757368762354683783252179627527269157678737806653975297687998280741321153725746460160289213433343645420638806952234928373021980691839869291010918689159025290289227862233232459623330908845753040569269661434013199135880491453622429584687120442211697382372323566121184765787925241229822900447314180762097754273248908685662555045296324371326779219066987258470573510213958568259996712948069104302824242367197859699820599106799897925992262761689374025533825688910778282531597640614021334967784821392485241649893422374411551134791822683249726109056461246970121299622192251773407568391708574702217766053270349461319214343650864462409499026862609353311596908433758921616661280191962167541910188825936769661198336204484536736628701868921362867076440778770159726138199201410656873459898110235364889625666792911219268064156424074752231414780483471669505358514574063406607050679975489817302185177444993452451814903954799452355950374891473924742365838515669706849822262168958751959973850070895924067074311357184829399746525206179784230764066482135652538575971416472035170443400126822538406807705756013058739371980188253410590316446308598139904507600413316632797958373725764146804621764858513826860309323965381010540899756352096218287427744526532491397174165320759518449061917038160444460164160447349190766224898270577563478469105485633889231896622127157248826086844211892306728218097434792473833631010874745078566829393049883359642572016087600509815451431390538148261053026002114684768119029196660250800064674338674296081913207760107060865745331243486187665109627993996805754495161673298340594583258908910613276041342533224780939808884929442678756219984262571816397691035009536808824603082356096714351577435593715306209860923802537065300126023585130514518436493964986201769880039451308573883652005588853149426638734998579792006335327531951305460906555593800197708286861333796074175827891611658229590172877694351649168444670961820939806246398499543706177596155750116130589157937982044085416816916610796113102128701423723185055556743194235124186887244103874289502847102148331146540383035868381196481694451843330008300914975293627586701406551505010051133605906650602891434315732452431245659357911137527118508137363854776650893590115821712135484433477022859932639216026445785679099775793743499886850174262007680837778208853502373923503043412085134704346502577624698451857371685437377354302493378248385777042776672922921599037222467092974297764847959334038481713552843666113444799947786932583258283133638362587316265566164832728710730186299319223457252257949203451193741589417471483658515195900804065305815006717053453921281643296051878001159518322185471969820132555671259429555892407373856562112390482558842678255989833128877475168104410382654644760493192787888341407646051849518152593115562784943433503361981818974868374481409232729679906161347694934367190626811018213943803404636430228886827513316567213191934546004494419013494619317366988204313557212534701344206812638760135772283848395731920380146262816272053478853746437306378308759644764678753596655801766476097214103863721002673372887311271336588818848467819182934745592622162596681843813272423673063006500562132638601821137730668500628054801997084800640929854114410344208315207476930955370422354891907527050270643551894148157722107477682615220960274380322753253512618925436631457721216416140543390417951267593393008736867378771794837987811287624581330487542267483001099368907299981108832036169192713628068425346526696882510528800990005028260698941904174862490058454965278112987231831995345398917344884346400665770940845640472139639445716798659140949129281967913877647437320954813073798448051432928855258479726449371698614488002864758109757260621895707373443145277277888381302964386082711374383489762475597415270159494356425097118820885246074128203137848689139305051896966679335678164343717013056582005887975455765497896776521403467012962674678822895030799334829851629009286672402011766212426924186227326495045828501803877030278763890635105704929995044783102219235782892513628372659265824482227741270899729211445522871338812354530948642907827649521514179792599336165002461450674555289560819761498096336532667450993513608187187579249979888892920934419918333063577204178340440834293946232338619058338488823621336245518367685276467194045936202732997110545130914242227963106280575511922428299067356652109230062649702163536804667724063824386364305928779952554935477260744045246720507660242917048955595011134137064980069408895725935647041299594478849663597476253410527221888495120415179704748911489417493052359699735279743440109511983728709983234836818855508480891565210812582801101790078244086746629634353847329994413522577356484249931108658169450860251461385998996135690575012697810062328173570173438613516518579626302637824253728983653920808237620985534298723945301353318247823465108264944928679491956870169229102068463418416230235150916279766656346589819171089597365620459767714862630548859523777472814875931651030236951447797413801979962287853664883235314523838820831049151537659005033023415527770282024968678842935905188324604606227259912898128864793271673966835952931826048564524887916296515928893594930399402308722801686525869324048032181111362431209472200336011470534056644446340742884542684433668850633223546324047692324317788026024727087914988903747808244832973188236058038540091887440811034340328580556567035095458690127912262927442802387800583460861687700401198785696950641264691661434369178772065897650877054303600111873235887051271835482554031462332446181694040192987169504037150326695335065156140440629726056858517282583130702636686297068402993106904403926965976131137245244069723279097406594342024882363261384478678008154821237058271805181440872792657938259617945248125165264188224278505149958959588440661634640498842891663586082822056539224172942999761988710474858403817437639777610504580177618612294707392255393550422587620885991081416255075967201988468088213671120226257600293587910175649961198643565578167958677992924719106821110728740702574719375361760715441270875789500532357379836873957457677376966573501508258147627401480090478080513599246101624048899000267197857325109222699409628270045807682860661598849900615233753216711681972598931511535200887016455476690770419332360741823324785394915897998070937743783543331346726748445030697269642170400604180859340169214780162382281055120089074225736150443749871928060439093763509606076874978207631164566240348113229356045826632329845384147829562557284399128775826141005824108384221440349938408107635414956938340875200498061032270278032638895183912980560821315383863935897637395820875874221311788065342527598693585039233037999161259844446924997732673892292894059903763073173664924948163736432710486005988999079803431719575721991787339823619618165103393296717943770579598598049746713181758893932252480642009475024355449065112735751608945812740192662681782349667022068522479574657802753729510510163174028381123089399084652219702632780656407838216693558467660760903363396661813351999268494547408900181374282650293498189284841841453167285460994067367153387084999194218383642260611005728596597111035582947556667654155863411234236051323038998566995764610075751246340612643491157639925247854702728523985639719615126093841993306312927945497850825661085117988675571021366438346977840855159209208755953171210361701270956799611384574800397481152675842345862662559620108742930600387110391788141982026974235084233881408168034119402626030848399739928221784196515271165190688651503109102233075426248975204104915047987797214512764154267587020586680882043110365728728123667411420275948232005993559044175051433490255929913033570867716804186493759265530896202818163554036653986133345461812060433085143767393502410441407290867573194186452679594666333564603613132284259884020053227745792356153125358679144202122155887965840076567408464236942710336996976140270021396647988683813197603733155266868495107332208555925254528169852739036770190825508350762412949047569718757987957238467470228083455408579773568282925312483634480287094437963423331744202772766409918437103880678660502374635295457474747416873220304709993667236142178198584626128546004601874228625168348091321851273431088980085364942940274814727282709184342532222856848954703553610488401941505678524988252367578560656398940758208136006964552445204185495414375934789216555758910098843459031117118961413314435373156764871129801124504030825404179793013840477791096819853374857234005182065978168317926192052429158146169320072647369171952425750060594082468396020519206034583985952406424498641867442068170279912094680332240214624764482953820750593585163339581086497353840674090982554666777383976732000134960690100029868295460037415020034949266425484246017328326716964462163396501784326037388226448480508756422529567613475002562730705240572968109728081687139862783478387891191102240081200468425934501109163274760044621410761738080991817699677297330453464433746485226495368814222806477332981547156460093161074966757383486604201018381666834878760466424595091152534117613870037430057405204832630787347914037680398826366911436381117013732716415705643179583739802778877974516161289350258855993268019933966991744775223167912667427066385266525786145489217173539383473158212310292092850678575690872562418673887967452927344632617520181831235118783718914802043391935129094361237311844341702831670305522454315946162959831351560811671006374362650947251301176184227888325500422025579095923816897632373891675566640537801815521703112971435876101862144408919591906956104183096384775059907212911058527342542050711148996045976014034117669027609479180935566367234612768357598210625267600648567625138060854229693912570902911297577985904532764046290759481529913561011870357845409420227215806154418582157783971444243308549247746741434389566807819424285860402435541976240079606686429305581357227116950022089569155782231434165682678815306552481562045166887060240479877297593139331335476020133458861829379917034164240348051173989575949135141201092770367320481030491568992111607876694155302142237165655296703109695096504557498757309809265484731663114400147518845189437395329617770940077497267857120938327029322119012929104134949266773007423446892122267376370286112744464609771088894501004629556272206835937685377343986945192276904967745900032933987191750844907510517106368617089275406268558971998528329120043872995238363102720368484317809158710114860703775303220590323258222051968231613004215243674663515605443287209679371011976324912316287935205812351280242603703657172167560528750688816714953369519462336578705183395503931261691030723033788077052687030699273315922733635408076451512888238510713523610942675028225306293488623800597822525272341371492316194332448971492142093723490212803503361046076718459736554311064584012270393029462864020210582864291645940797113427086029788113114052082104545600431977649047309117729073882858002415968690031783527114133331414884314536356581164392562622114916376351653471433374975743630535564238341517280067383778319633778299968301639524201198251704998333568247958341395997518435067023787044176256400925919579100251663778031725976851148667648392479363437649241296685103609567439102268526409269225814354029196335710617453660038709348545048459547002152763384924504593318514228877112301245061180271707443995244870248450438715803086038956509345037517095005425467483479544302801986113744127265562769949689614188327637727502572293775936134272671547889738181090073286810017544759590669261485951392306077905860351257279294134367700213512365382740408027093077103222674011761519773018306842895836714823856066031887653324451081711492273190283517185977589012328237628539591914214428451144214071232386019057126824648379391109037985549905329341297167914663669664675193105214228552938202292451151644881393415874321201199273685787313152695876812475111139648196725455519176479805082103285018436220889652374276361255380313898923881284842235041881489758115132530252911372146508589126894466684269772878943143165998655759869638600598228657660763375200275726121773406128960967189708098295895981581972453194714648887609782337103586849804252978834433366560354906942050168577268713215208257216637501803480974213108677275900554262733219314329963629572740190050860392792103686612769376399364172067873188571075635427612538860607274075539537409890370028124808498894364419243450930788985007525719247854845200200664529329536707892355428099118615916071212341018290180327724587785477242275051147940154530617089640344308714580576467650566287758615138185428571983127956597937807970043688524218772647809641966167617529760290872354933303693542269477090751810472124592195941804851446365399023097918551222633129416784420537478053037786940901523013924632689515629926322513278380350966531667377883072300757551911907352808535594414868084384976181850524193781937131162964103766927119202321351844725895525473963547780440922286171102117352704126996748075967916924933002012032220643831840276556957886126594150847124105349145182096889005858117602126889630269114532345135701951374537015040262851416907506738003721973085118664111557516251056729413210770442314746945201083462591874319221896865701779054517401347653089016880244427637973968765378916099228907687487827890517207221059921282929148911520690498696050021311352731672199096662697110238843060188170949643259836386015398913360276289074007682912197220614916958551543455559000520969667372633074023677462439057842125436585029888195965402501940300980600965022497138173843801098521507232094242313364325673553132235657931321927042881782325001765341569836004915642552472053253966029993532493237551179424123308243334760651514164678308987744260129989268462050359055831382537387715696419645501844818473987516733317596840568800302133716103258818903949552701531088935452231198536259846256837760674574990291057887146590123054133517146037566117492971069475176808301985468645342305716940384080412510750900570333267872942766815872423083143278249861676065451122516974229117926275559536770990829030775325538205433329053129782280661801089743594036923924207945757738655384377570812516679991057616991692205000454797552333263350409815289417281598084776181077843759955679996997251417000832764569007105081621885899773981235465637122146135068717185937606121697070818967903811753810374752266575011752105700858756159496075699027488030874120167198014814890624384887900236423911633926627158082297344640205974569532245911107087767930250250674506472445833929999592695760784434207948016341518962447499670428908578822163867171511213858168593205809764105128434722594575683671163077160261531983232169720784897210423980552260637465675118316218367399538694565267192152507445947669812513839537113196967690063280874052230073882197910753388630906569308756917006478200541467293672943391803575937610162843158168577746975939305990166284733012850184250108007716732376587637412282107515414931849657111841062857646421651301105473858613423372553978301304051877218899979261179044570961872020765604847661638782231799907026301963323039912397222122043093541923034124528895427202801731039156972371828346976979538748344108990722782574767344088126287952769937638182394698980274609896496270034391376838999344984183349138481387064759575727295317500762653709040151732305568361666345101223204210703518775672136926566316064131798453803844976251635629383847400394444774412085175132143445727690706531036558954343180786108056644832298583615408736533229403177613784264193730625725996465656542393419023753480013164258198440495004395434315157804143232506056912707093941655392354566894312166878939177646198361355879037496373104984403773147381977679123038650505622285757371270414821859027826581386281308283398963449063665807917349314356293460946378135349658044712782238710695173140650838665895285414498639987568089747661677035844599371441662733803238718587014551592615299756560866461775668428639849957518667334173236617873223683975618842136771671911091149618388675096107186008313414694646035282592645736343625662768129373368414310934901244761116006582493676710381411142987739626793940331025070400147086695290092235888428342909924349887458682693554721719677823279183958360975517347004731650833729438285567227917894104274892974244321695232483586551707550417152593656741793059357143895568388981154774386406060378272297236578681522832968179855462609947265020588265645441832133362866786022459523472018231484661265947796601470196850149686804519877130947726106345734688661988998410482930984162478029440416956753319076726162847398142116062861121639731192659824798394121718838372380530511912570217652120591507432523648200968020660188251381068603570742686092590049638025480140751878049045129365819191708424594443990257977776418392561664359111751185595512434026759843714643858263495280724433222977971108633466603056772181172454801508470986040233378522316941444534362136063126817681474078514641623095797700562581443831792387981020094570878162745414329831195681222800042032079033305666795472272749242573181883807731420470313594182794039971272431147908031875839021101132813871842519858562127918803402020029845825932046815574266429097944088591248187658118129256162753912451878744296085668346274173297143815606869299678550563851321231552462507081477954970111193125242224622192986172653132121739208474724521160861029754090152497072850930662464868416986606117314056829488683693237482318047731365677549090615620345469592535262749756003466949617692153517287860200445177883430388479193884608529800959555763031585247944435711543324729027036380329728794646734433361733669805897621788567531323955772293051868946225030374678034056843685924844806879819392424364678515600308463245002365865464965254503062797402188329326173073994081661524029924249198896444270546479243054222727344275224397449870517961715302439754794793564800001607942675682318864659085867657684280563144844960371810150229036435771010083791971636833436049547946488138306615786405146229570894948600846658202010749020065197935690715192001740513721735862056423649792213053818558658164505348626915135573476244032408047934990991438191246914889523914812338438537489378881136530942991053791715502534035035118774022143722759100416145841483114872476904360622634887284754119805016712766157606549243219292168228133406041669390916832673501423203227826299154390065073409842892930566117146950751012661893186077341367083132448612271456392792369925264623129447552248857100398173470081983599295534910591745719384395059703674568372001354618023438541403664657670709721790285467626872582650866053043780736573726566000310304821961096311157416428353374809156090300007108510156209699526496081762432396571181055727286739878470900394011390296916755050636942487105021951348328213503442481245667343812625285313292048724042827243169430196843013102459561826548638519156098054652305076599967172138324209776870002934239160877853865528912401359147755374094397026836590325484386462797294098217682384940474316024585627804526859607774714773183721013296834642487380031145457044457413091809046235646192110045405242145628265802943821356198611768819891372155220522146341933286555967709126347005757774349077539143180700611412186951755634058893846907085787022770111904546405308431290930397977539388388103941014939760734047312834204270350801021080796029849017152398999116291462478023790161142998359131121641492506385120457632724286351165681126625726634121231516336390987362118177047378709113133598195839550280079915802492994955473994218661086897786812872901573804057281334391329593257689108636522435557932363182360558132398107118753241489671746116607556825915141440777937167352040107266800464166467541594864138271853978512504227591797673047851511036207664745984403434742702390131733832888630122788987319850061705450463767728315358628924674721801547054249720227193838694200213642090089083145627081000805926585401267682848920761596997133138114525401411470898529060772000434385368001838749211408137063884378963995772273978974558289793002076507455925644930547194942371778137900262628425829731240722904470985072787587127891140994052862351543633694396930380515113968682792474991938562690151110046081048346910921225955007350978098738230355150911559561593454135246219601310174648621847613195756844330255829200478004434555034079091696243768634629413193675144012545654654802356952222782009082646653142909799158689473038196493602792750475401390248759239407812980429725415473497199286609507342037672909589995835642115329047219573213570499779693230343903051526038456733509890808407533003791738927645447690152643018914443402286769639081015409345088101662467302883857504023795370516578170173646498801197903956736413394774941241262203615616093061201508385743461019630702019918929828880519724081981981699743724991980703390644816117664783551014634249704935623820558465109096853111446502179866564469120884728217423522555938176415774823901177070252830468796403358557497979985803647085121691071133880105302259971482489802366181521153260079333552595797108398772076799540006660554761724154927303602583089335082029061126270837110983664107827510147535294571252013284384654542585145690749760786605288650576894003885061146929409088248318956322797483348564522897359005323520437089697436140677059473341254859872291413804068978971847740266819251294178432117737896798095248130114193244040212273498823094288816289181276381086419603362262232093828426155032169538705145741082491376048497114582843963312230848306648056546496951147690086170482377913754081633635376330248279761807323176733525792501524567182058931330922297688261516270334473915656337291134297160502227342739567534231116279565287811076948283520355046343359902355932479118075727440229826944467576699773108222805106628796623285910928040363236870675522160782150847498964597439013536397028036433324375860944955825151001759534651992968128053622300105279583302710256383471223296105189122844462801739822641700639339734659123162526097707784048683711044591068619668047436013586291960899421456271286713931164885210723019861503722012219515839100246436167500894431865547036565604101507010780791773091490180043209423676567767957989597982675627659042885430008817533908274428759882597806719645225125327649856064357144374239494174818094234093716141511942389365618995900112525378476622583014246160109852341724571384954365329841305735500325178647612722158021317821175909073899757730763023416248254401095058096606265375914781754806388907995433183864253253373641265659858893799500636016956249316345455011188026751943836509809533520941925978479803166079589402024108225235869377776041347504567151515325368422800949504040045961600477300390803510500530989158885618810995905138214503031705907059115979666391713901566045329786854643102874780362687972075823801779526778873534304120189016675847675075289179366035554589832905436010400328105256192055008163959631054517456444691583213254778711777996708679268131679488671643689109644440692453897721540435634112501944428413272386230257405486292196432557558800584950564038955718301970737798300137657779992291133266148768562882660523195387997591826188303036343628819459371967671564685158530054457456724525356243708636842583379226701851223653740679469357171711806372069999385884555675005977352835082430645333324003733106208084215025908553465308237792581494206336101956603839104421421297519889355501750001950463947425089026056518031871389745064086420975277021905933849261143496573886959234646601753429552758175707823851826566701439409569539570683100644152497946301911701133229822063381296607352366510592659064115430540244919127454717264865471466252438031933404679079712124726272066274570578235688393139662981477912326056597321882688605467096399974139681428304962616647629659293316391093969910484053515738987778773135559558505085386266461121834893571617431004073577217706463156144216721467795859869360463640576505956418644788214448627099537547327977627177433707554569599249099682435564472865243363692676173189108496852656002803339520234663903684105604808065626234484612145795224449457014182569073797933245719658665744451805986340830543144599785322472174103489075783670252383823197400355234818341406054036840609909125865623411021543120042794734605562367722069623928517506430149720879080897699930698495454009241839439461249129603058387409230024339015902106489273160361171314004626006431599978728207632206363055023966330046045003413889442158981369707523936879494725994477143769141164789510511831953522777751262903210170277096824146698286313437449253420263457926642205068488901400288298675621113522632397478410440840349313577946112731681604437044148389173324624424298506106589688345245137606931268232151321075386357252968700692634384098257055604384424807991067450820699177605350573088554276714560815910846922228538712485644283878755936400790858816873496103428273993825642709795886066036139623351620848229414674503574679689339034975257130762678534060450567514536817645375482825658306843341013364865396240936334246233117031780295904802239333062861717966616681638954979986681266965583053223278082560943012127490939775702662319149066021865466295221450214134073598776533754569815180100620083752030199106288135110997959850348778443486054588401466997668034784423318685132457095062365648679222355737565166193212620116252755008927548039016892015465642146875746310928447397917723820756107373406786411481208267368337463794997389439349931627101173366199636262359294572094426578021305722519653731803152595970991869180905499446433297164434961869991264791088996834298943330082058595753933387364967942669095300119156663289479889669634466815853042969009170164791501655985067365199381852739644767014719776288208145917317310576500566684104600401835678564302407557945083023990188772540998306823112117982140708570448848305990535203395153843091129443742262104105964730775209630611786991195845745979613191847230537841189255066528966175558000538062480062231767130056210758757268729688991319696965334385542201728217552457685583918748155367395753434167158718683180984388450452683541471720713784734118586255116410335687532014799573939932807764869399479900407417046483391308016212774701720361355606370133219676767022459218927320091764146819914686000386523060390576161823075278410110945303916089202031499061789215134386023854566927568366436409458321315617791422870178971222973940112801928804606839612147613454385281289565284633706717070058295824159595325312571386118279963418918422695104458457013933942987047961413160986915240347459266316892428406895750402680336604302592558279560154549752608812532934311849878882814622791717747408709108172885629726215458194772407820584284021404099033068798698265535814610156118227747844399722159401132880434690673360449180862627160417870426650789458948681422820160197420621281823496081489871445636921357310735807907548129642182866432202633775442127194361564023397989975469929730193238935509717294088834204473610418843889781306785723842981762758509729915385482575459181933308387696303307208723226210899858607141494084114773494575328579754015222308321482855994552342072981817132808492282903776251031942715783547040410075078291530506730921536266551113245008059676465016526718946292721935503646091469844460556951436095626425249939664920636457731412298431762863314824476728397703330186174877927533218704867682804450048100789033593174362248654462043734580799756485218507737876971073720511548838584711135518716000421117026110663584364920179410342888041456432763011176334834020639709719757392937963321048452424341870588183691595883923969901624639374625283033650268742948842401333411710100650093395139207098492963030901530324172686863180798896725096749272038940241656137482261535498801103701141594202204098229684555174559084744440392739299390061744307753256472125781584422453243971735929714489609807767315963478673788363366551422806492760809221497435938479513236584318887909879902224229004556841252213722864600536470938487488647330617496614963981589678436618872193563657878015594864832268127748007279836984607178982489246978783398105859253340962396025238431322493381319340524550296704416114891542352517973419596262793235028859089724837134571174931502184571152967554276090376842896452200889888268557586243930079467526104797248078645993571082080026414569062412025432668449722095061837240451068838226738076518259378747814198660517270438577501711398562332848067059206474161633274974204777910486040473190219043625713269870594790639793802861202409420244317364557563549385357981183883364547469205492994541810716665063017610476437815811943682599843026951702192870029970470120161703991122153846863628482539247376270455604523197542805720263518810466451557485873615284882985097197110960976999371741781086027931373130809182934731712666499666755587695020960176274450623375691153853363537846224444561123277327708753061035042186483266256217778154562139407439107643192505883612387870754436212713756713707210498636294280677992957162945147100865518177608202188701254370577092858687132471182665614999760746765865804128828989852915754450391397040951935495458869093626566486451278862838463705214487603904989133649202473196088746960874242053503939957140268388678220806988305196182660674919564134073292429390990572862020235757156269997965198521396999703317940467200598974473602053720535718117746160745670113225124760817894674789600983736698312956926693762678423458519672987334182729076732653379866021794187446172889927282745136911309853046304793961275643453512591521424149296054120653114805387961436470877277771863019717612392482541413756472564979247695369024194644646581180349868034600404899166004529403843688463718994476899311352208088932487284491599360582620312033246460583762147423943039396019353162764012695465885451047082309697407931800520653391082627673006912638162592673690968265392615768445198825821941265201127793055608056411891607149988689690059756300890458250789506940720890267994821046771596011301656805543702664757533430919853938341142537457038381489590630241356820103590485936093926508429792504196818933142813478559442787135121573454806252102092968382199029599595666522394253435450538907846533689636948536454479645523235982609817499947131359262527170755403743991359039856210081137610523523518757117710714706115095404103408176478898277811889673253984943230268081212927104372856491654090028913942210423356603593050913581980757185896754686950969712596525901313315917090293632058229514304995558263155925343762617268411963013743266909085233921175777014166022207730647501394356650754790291488924862302176072191863808933827178494554149563155195479877158466481222515584721094152357511407800623177712120932155980324134673182872626506990326173172007985711705837188729109109858806838291632604365255725130996340220128957801004987587673662935955544039037310812807719621248564799533010156332901897560404262658543954272141177338355199572599559149914684462388217365329055234930525969954661123054914897704106246376652927311964875305772034914006678168466659698725158107141181391930248059716176089991274732116409582383646254669259714244164769515118660878074750584107898251228959630231114037332880172637463180070368779582380225411206196174003413563653294165869135484496561471501418435904809195917923547514573401410482762962244746194874064111203717554368733386835427453539354092358395614154744608090161547605143739193878103054328353524705879429117595501054293165139412379253292421838863521610163866573527652578992641323990334184002431249816708196066571519990858595776394665558327655339406728924436755603240773390692949437359444132195837776619283905939188362567534274508677810235353753672711093705010290977863161043936532898240112645300646427738006030744500881955900817350277448846486063805206622260573475531212159106676495521504000938950301182440612986131040435395043033127266109200577933260539542414503657799197476802989353320930864858463236728955709609294476294861663930855603645045828859538078128588043879484894944477475684530862470785094209648765567154530438495380657336689768046989016553459440091400458358682659959402181578235883887131610997760647147594277955288601280556936586038268837273947100583866136368376799901083026086649805131581337405046284307979052567901800964962740737102049176205201361889725055591194650971128224422536526849292471840197582426910100071238744713307103469092794895201161190166176634017366634320087219616243344734461069832435879431706902592044113501902201991985000198371777306600413694497925147943450288185100130061434711259795959650794108718678096659273512479643357416228143477101033683468909747089039948993937756326759425454553991751854043953843611553617153421181043946368822499454677653285231096489548165474947436619141406045388735261639750052275692750841043746211331008789486081502283268815205756827197877414219945669034565279451837604763555839449463227303876096352448834980201692338579229724681662226526403175679541046021864620838531647457299401887748729993177307290587177061990704666742955210879126496833339651726724841117326353905909971066589459766997602817524895774217903587340840770893410100790613008436466676438342225878093856410719432043549655566018061253326647146677148940078844155388230267768797092549882247680048643513911582367709278281853914051373937681227949227880177161460850400677455425348349104962841137039045427687046975802026564376566886611915701569491106956549906140412114013264738107560333920996313931929180211812368311582301897299156797770328336303184470043876740507589800923641867020694060671022048928856697550687996285238541562548977670153891660066850107008097463031793618381377040648765443320738406463273646511356807723294474414296802849472960855980240203639305866266363866674270045033039041626839032218009898405547208848455022381872321761071458472604065734866740419692366332176081202389249911783054243349239275047399128626226062741385263473268224501156253062221420604209531129592826506852749775061833526558521935460770381849510101835477289753040926844003961288479167634183768339425218055546192365549038734507063933528890633333408946987355025346454915263155455359966755039296254280409502499310604564888781514260222629449988787533384540341765737086609622417395136093319363061278295710482074115779874513052581687837027508687012492295082432684012948587000807024807782872703164127174285102006054121804462117295469737008283342979685132000781689610326627309331618731339543838328586839382533486831401477655644998162452907889907409605143146441806187337572336886601216968076145977337958074257393038855672931553279008330817803968740495370343981641773952676598393745601080991738293368350867621513286654627366553916745988016035965077138831686493458598012139345357194179570313995971062719142024948202633077312767815301839409229090140777660897805258468817162082745709842779518338740264313418836425674582354724768911903493379177451819232631724505343093713402974447130904947815275054911246530898720752723802514460463240512007467112943869637833957040056272781889257811640869370757850872975239390591157248050757968867414047343125497301773881583749949459008817225160428453260374917119502324527653490953097410883801327946709027074499081803349345958303040778228976471280310768221142522313831689961651513679809928641706864280435764267503497614161413820712273311100338275940001771124066836243007644716306455456306539756139293491664383891904219015063693893115768331231728994172759488071369184942431526546794694910692708757512906490017631744599453893522194954160494922847376434863206677540219746333579774540865478470867694490074361342831433419794703582400192163441144915065638578307561393614699151414160280496453445321466656077526563892325216839847907344990792333602453577900142851066367667803349588772731875313031376581860237667854653250054684775448399094503583090088583712087769281202084552086171348278582069092680031807025425649423935820759559490920166233675197633909030252998178182518458200936328253574492591428223365097695479043167750048994398505803546412815479808436832642323109302884897256032632142945358851941024019256871234736268083114300969517903217609682371533418816085191809777094199199717752213781989170049292969223746998573636596128251112768543159525734028751069372580292581816962233583295566854019877896694322880657503232793464203245357650528209152925174021462439840982640357704803533292855839417419516353281249942612959052196124018225278801776441441790277010867246714575279496895056275998281183561888629605781527130314906410445123266423685293491171147496610489590996557437776476683445170130945390942045338445912492563423997301627260256855769149797766091276602761286370143220934695886008640201178896334407304457011667534787303026075490134238112022553518234772375810737702624588447339870959327018636242741956889386598157359665557112900093965617417610651076822438689949723797930422881228564659218270881960121282212674937892597495117394068886043374234592701540847308178816401424634873852977308031276897192860686876029586337989776989960274265256587122747379027118232091071706091156632974548724020429387198412478196873534510355464414823611824107570986866260188873056498304844312760458134859559438043462581603475358765805650561622955233392027946785639218463330381973321884202579952808259072788274440287142171776453802185911169324263092693895717699534500167779796910650205541786314336636649346176905754203168257791832974588573277029069323546229189627013839583616748013494988096133469696193912404112347529010638877183546615425312133423672199516917229924578827670685331499476999451974820827216370311066505043720544729609265503110456005766315943070713927044228317625155786989501601520247375688636037557172993298350389014938736748102692376053851179116741034772659681893458125181361249836558384442464047882525936715341897780774957563981094761455455525888046019731900507066559270669287485910109244484472378580193515824113548603869255413654669929895033894874931174967325753869587667297539563094385562205115243920793423543348770755727898023699636491221820326454569172537438152487593235553396136263829770260250120113574585489997739142238008921007551985359559607577541519974358899437797460627153764174758042417843863049541970388433706274026030309587714749056117138646294476232167689274366202445043853083756243161559666531999431258268610797085434365355419772843194341292990942228358100291090558124863574299049542910315271826284720947894537168190077691812387352714102256185359518931816252125111710252297040478343109431012674814690275268566875066478001497171944534436550092254891144099068172635979233779432084607280602737197952498665406230439546165492574538662774271822139336426918870325413931903527677888266688481722322252722484200890465266107084355427441499383984884516935140275085967518196106008233620607782366726740210580925677312788263824236371738458194393490196103814923330980043155374053229198069442411290150757844185431105342608335324603974974239565926319199564428951001812911018118834909339593895206986572088255547670380540070929763219977673164125870496670451974113639057008616491801045728101560372948746406007339292109733110355469371049218498473150937486171451803548197357634514203439850478996225995166777000720265567266699204446390511910034455022051183321359471395552467634713587058829041367373162391017618000836352463031609144353365400532638300919074237578202550562699236331158958661670619334095028749177077976374359455334662221080557458328594241307763240217973658318138628288427374015703648736916704531742604250373119908231745151397118817058679699724088141797143617418897592395560712774950749104308638721891300415477677934777612775318198598250293461757826233065491782906512390268770334587921165051648510124707318478709713576534079032576150757773355249207432454343191591730690916069254934978570147709352738197067578071229670379385684110262489329836097841887883229864973664252985761266185103828721895165061234986871947503993192775447665070117321798778304943520495385168533862683149913564445305592470753637791671467798882844320680398431570089818218295325961996889429536634842149772881196231175864924420983780222023366447822429983607549820412098030004170549798236774399851307862027252876726947653075233104432018175593348450401229953728227005475903070626268024587444177305615082533754035838502256085838176315157410824630484498457756826091311924181583733244169885687552052931782794747623535858382107023390724705369617808463393687586785748804406699846661862592750348283887958917631059293924973698007046723400875764421949390395686685288942495728108276397672960443997888929964130761523959129839536119084353165392812343656332766114255946266418893877417536007407912353644571175011316698782972586026657678401823406110207233536429373247048903106461288104606818003025241223438515738526594951676647183414282362459813555143986391705564763422631776163709365307996887553208867431609735794782411858251430613173441879596659215269461746897784533583085506176354590919164572632016918269377454309027656983601049219642581734724007189954064079051050283525498707393938136127755603304064431351927952548037963428563182524151692580108939872115172471468196333423565339481603880800968547197447597263422323295065521898741871663324632254770379203403116785321914575956275403099976955514835124222202274302907159430138996079468175032952489619732286152208789297728003908951310235282469995478019486742565073955874483890406771323777961982821694640034134219881981069145500024555352642856522945649434106145836667845091752170049189464993923229213627409834263431502686388107514290857857827463317759833161104107408239524166279411559714086910946101319100348294694528127197154753259811566175044742725566700722402745114255850714302321890032509798844318520577588843868571549521828385142167861747931139485798430757932733028319512606604751073644100534384629986154636725231990008137914519514154301529625474006540709131317130344077382451460310380970650699973690557295495935484101277634097182260387978938213143734073823381999148300831121849321043340590292097142072069375048244197838950935061129279743281721595913781821751222386209063368056583482341958449138797604026302376847774486874205332812029596792574836271585973335694344458663345496763019733306950074935657887249951866087833153798682951465064060882376846269161804833357680261423173200864533226578015516516846664074005549319580807120911129930501218485426752034294762216590855069125918106060911523227899526350971706217783254911866020890071499938513460803746043953010436033928400289292465088186073299026886614803699251834077226962513647499681686376533341198526463952802330153783179542649230182857680662299507201793276520759923335136012631048816733713922787249179338742757931714086929963094268690903591128642159556453505986416037495040834012277048158085296758725713487958248870047810720970598266142645569900004387933130236065283309313989932797900325332136386757523527740298995386687866799810066324263263671511377552858948084190671239131324623577566209601434377794346440464654767813964496723052912852065165034588774362968336030898726090202692882873430981061777838191236070222055028480506823886794542693415096519702191443260576412712093280926998940821714375363242712785515654733196387214030457612717263599259814662552318625660647654776643708385806432431457632785887023133580208826312056691884306561818475181202720023430925106875563362788812006007958626700822520568101393274776678477560373280617267520365926573874979793283674823898658422398323220942171461848021823357186091707504595473186616602817863235327823498889110713128690224206415159412975574553957768158318281704386216048557130557077632877370435425058201882063661217361193678531199992756592481827085742382330555991888544725330861787909082284451628143917638902918101021821737608284001014906430329288794629478277459909655912482298467445982788897671210131723562206962322465782998419679428051300763717492907539891781473245086652037770260472339862887215861541204899111627774697192840574921602409416962587111778378941062613533881556741022700995986741998565222975369350500504788848026474295714716358871346984721172813716992393689423643281252610596774994399908023533486022652717052645257785656540917107154172118815515832911483666213239951035155857120165026907142785472846416492534764205008697373874636716333416070145585330174964040137792093214333571744841505333153030784703398939573620828561756707422416200680393951259767475614248791716586535180362801284649012701064710733199743960802758776366877399728979860376745645702023647511074701380147497260560633241826824849427995199580455968148354879751665932973731039546350430783907653478575115036689513815814024940182455823173633558603252505456795103188537627911116510419698732967780493838077698297669069323934064539432036402927880201492794408692214960003144821969090339806291654938891479662209902841216171658031022875443448140487302266014467516855797292222428860866813707381084253857033336272719488469680673490337586808107091506013202357956244293173294357119922762677004139016989587407885181039292575877172223447890106556534157518970384561544614135217037791560035603988993662177936380613563525702651216285269393187632423799040381315683671745933606760799903040033220982056798450025028237557567069760932695779690137964529429217734882689188701145021102161697318075048684706329389877560237829335592836521136628908778740100302786743727168903813486463464268264265628512060399287643359523841292616184476431049866669692515220951102066064383551992633927763186207090968612808954717671862016999215108965912146516962854751883956402920209446507779714684759087901316096408559664591653913647541983922206703858088699689261567191221631163756678512345896467916080529325929899953354913970757824868942638709032746123283292160443969572417823192056861809358254392892298375775705628935536291683986790167569782545538427922826730791461223783411508869764075076127100656091195701317035417784872309443643277608399145679468372445127585942182952525194353272066067581703215803632074897939103876395397226411459135066182928275763196080095839022914018530499325111920526694609540485709485543989558326374516224913008653864496007669855842280731189247063071199008143237519510496115458664753633109031906801159251001368253894875649628735519618153633853059852728529787832684482523394365351923485710668180139482917474179123570226462773800639433238730979247255653891935388776526398524552347550895329652755833798257283351920317099395425497147783311125015618921764086472674148710334936119218457588726389661296231773148271241554756230401519339403074014608472807285825898664522388109596377843146596298201936245386091324539508305212342079812722832346097860582754199441940264147701843458000855650411289081089553928932374540702076995607076766405237150739098532486631556845578198382116381200111999927976720838327491416093804138978062035965693841414693617098239399212737223586754087761733816306282443542516452984778190903213409930423870633464098433423150090237607969979632599565440671113586151871261225950605221686043844967331676129993177291335037547305335045188507481386770119245668871890572888956686517134530789519146150882937522504701376058862154426368802418525339457550791204839095733092375806897902195733809539262561095053675298256134450144819172987621101451026484669237029564271762446570164754238729825525115542013547736637250708339620476940385823246746945476103909813595568771148773307463606635499360209416253862751704393839967789849571261155186214492265469893658307253850732312302673158658158099643879086658417173570219566654547452662209689176775632922350498264635763615074177173681493860827440885254420153154839792690441286333413207001912491220839499477239380670195483503411919406651014982301544512943792617155174940831310328241587927961724694223256719407995356998625290716469441626156184619427964491441124274013262209389204283274343112170243262631770379360161717915008350533681626400342249521002337459978890740442219683457199426894189271140617544544661284896057945698015796891586631448603305637096823025959174603440293933719609621936168612883194159292572899957396640232942944163025777813331980156496980161983694595617767710242937327689022088807111141636005884049908938547360359637635259767046095136830890087160124454618186190859357646064361593523727190333438805965618639251223486526137656015706549367130641516815486761330651699117517060667547456850922637197252941738453858853166953748410561541377446298285552363457607965481155404054430192394095228822980884222873270963173898869257367815543868454871046958588889657809179076479138674056940848889604863290117682194519337702959337851896655456756391643758886324764467347662642264436443035997214946635377311017296835082552156960252455097348344993618376614553534515383548254764113537855716206615404373904244152108209821174133583365370544540627824958031436620594062200209809488498925033111001244650310775131791942820781425345601823175890035056380357311630064513690474337775081813819731018547942574798126867305031066174359612117249348745645180042192344486582169157803789342692887079055288941319539278339188313967174275526148204922041436138808768370462155483364454339854669483452408411393074182014978419822379889684163380217632952205115071332763214132803181143726311077558553586463617319307220459359271229114939581441355076068445067268312865811267971172370505095336952064030530055442392738405034350446755843619725305034252511868153863117473629944305784785733628322759631914856409221882362686677765316597646426512942166622288657178701342703296560483524982039642888980290654253091962753541273430129208189688825888121603317139425891457566276789323282950136440125787994571443000084368439783489810698045609298122145512458402468999090703058984263237566999376142902027091303968786752743920572249352427539838537770369377950697749178271527240848898902239946098704125460651732012905639943852784928805848409863046962140282177916966420429156135605641998431017531729053161512705005529915192390341066812746622994382757333048787118212075835660128381808876751576870964388295986391406538658501943860221024056824976328002587232001351833116422903371741290960735579520311625615651994525661689889475877543786362735493728985379869227230182792459511826356422955569006016682283680306280862441357827811904016548652904957211511381178971974436553306474503870898094145391722382175772664279769005639695191958451810461585586105076862572197961500731527722348365250240665752862343717533380632616101159569780855597715737914617312940585699211231242234543500331355563184235378669265295132312214581199967144745214572786443233243281838791049566752382613607015963441740021498196230393308235794479366991975765761393873155174173603340043531088865149462513112385830510726440557439028417104653589756636147150675021607110708297222826909838720914198982073199404429265634441319152000296745281057033987910262326510649223472198167163068072838712737163841230012526023331973213303916241251457307877917017983498919561577603943941199170530408651489437541110318981975120971093825200293893148228455310696398984008202038937683619536139674750044235032309143498459486503269274754165116338332261258269894387882306812054836025809273543658112307716832957143950690858352355898680085339671482628471672951138974430148224557603773510905946727864485264598624717061794869660424225433816499494697771277169443098712396341273518175743288220293274770274745517776245673211077544107205490869115989355831198358098290465490591038528254068141440415248272021306374460475761252500189958713082449794081738488294536625243196414404093512217151683954989737690318475622297829545420101825756564854661924391649349364007985803222714380067427905401507785387409481966611352349280235725599322758609075760487596713377394793132830462126172706213144362657524294328178727002188014220673602925971748819859385694094991492661009557209290208153679691010899556068692933578201110763164211949677334828589694554641114101791045001417850975773849774107990367469938791236988767025742351176021940347785333060995691248092753700921313125797555557498354796126694275185023526127878021198054326028419605377131012578675427799025453766286653433935612664805044776904666204613568976843401792599991719195173973736354035083362374470287293233498351653561294614162881221917351771102259669964282599660180034703792936237746365476045171385066486924015849348723092571059926871772956292850052673748309876315249586287274419304248412644510294085410585756586199341008069712072198293117809480714627583997840633763319143661190551306469909752701287095514570449755430429616808686511575041187930502079522038201389625652495639965646201136756500524423938927013723025960459708218558947834418590987256954790505282628138701897877981622390652749159390475516062793623305826227285485310291079077573433076515514519084325942790606319162639662641429101972753256136285432352694333985414082642496494876632630391565168734752671607285888828979298586742609811892077630847358508389713670799798813065982009887620869671741400923397961132460176714333341572094547725975044529909365474241779173938708774321669199336342033991329661261480376627241143519377680410234308300931594739255076118269877554326362128916315146882038754711134637447258060137966866706252069799948350333922812310818024723163787701530638819149303788085344234943390443417740507159768203591940088621494133331584879685335564598794181379409909445644386447918136894224237784064425309060635748053587234921068929236114231411789063050539898149993469198810003979527726396721437196818535503429386689219164761380739296318276629530159739144795408598258550847060652430273791794524969584127146021633516341703915938018062300260256452522371315153496413163708566192002335310688401544488938552025660074929200502026460082432215420723204655658580722670455166250291030956194552829743697707674283526400456454217267256516944763288151750892304303325057695695725538718813856122694459208382811098604713136043338682914732983385508784944748541276088535059153923316526155744401602058096077710091350660183228306921320652054720464345031932205272545859233701145865531719155397892984983769579442370429585465307725776277415335735374297084091585392525540124398794905912657522650360349296557957157118379103422287306155385166905783983593739261067833285629099278259278872143889400387853017304053942233486565386220011716635140686771228408774795604278166560457921984944126007889434671231855038824131219290277169715996240104162525668620807176851096358395376879699282491023875137708624182312565242629744731923032622018799790868129210777702080720875311571017396657899018986322074388788549936088412694874685702044139414238686688659399552941857303451394071934212513279983648540815524879844227634119345707328161825580842391833275166691970388997867145378128741534051963302192239187294032748285654108077138734236943142125641491788968823800038101473144571847109235041626920845806889782763462997223966312481163472841709236661912081015341026744481399892350013956501505795034392573909426732269914030227439146415331841821030021700698993066760395806128971102402365026140312707180247499576253125646175240286360933162481260498008399983934757347151726561447039323726908025470087685890683837198053578074508572999129127376769151654626008942923031530997858569952330074656000254253988467191000174865215630116530979988749036620564482233398023526045532678474757696910194813926107975095465352212507691232868000200710546166192851179736163733935404158110041878223431402461360314592878504800948256586177866902443665052851710736106819468662435624824412897717993830242225184587294638817932670560148569041391924908244612676353360037234046300860221437676114522040466820662243794278358069241838846695718517194664270474210643385001250748414080886039146935170455604238241902708436017397393520740753708307389792436655698052774641217878333507902812675362413876376528027338023486074584032094925508161408468779544069088401630048099293811060533901865673433123633590399484193968803529384280338084903069491313420279922935636215921043664929744869717168194953720060169244553465793599989451403592646194812677152669572027472360907884501041489249801219490205154182405675071521641948220483352865342517793338317073145426683878397082307102290633439942876307020683877257100916464450617745488973787937724327507271554376998412608838300815553535099323388921738293432272631083287912848846088388271329785550472353977369335862074830353449495780854585748852500472584983694619132685732817585189417627544494206131183143056391234438885612777364116825489385608366070396050527462082308685333336146778839628888917869008307601171319677120471493343063097136177067406115132291126002264408759768059936256647815325280795703029462215098712406892083357684501376176459742915055060839118933617346730145137585711033408259292192827206615126290706725540642372699290097614864560788845663643604784495773159265119202573353795827629482055461628809761730058598505676883161192905340752800760764340163570285931524244752137327437441695977430395713540625652821899940888681970745388352318268568116978902617653305887476960332911813277543596217409165853949762905794495552252524701930272643346854100511028840701404500146554486429288218504672284002393543437282582629118525468383813184849740598457329186463696356833256262554425247707794023533427368187683106424135431033850910823103444017528525237175783823649441992737848921721336045225515595941522677900613906377810239016630289921666072725905239428920178277280068986175489605768363930789077375292968852276866099781693943095741300242346293500191752389698097836892718923007405288141233192050963001076244706081253904775573867828399879743306774249553490690053555266663166129942205004712918433089031429040535347225975260133314953712092133147483750155848923696602323320533012019577632970440197292822761586683798673326007479800391429357663192722284076977300805214777417001454420192196085890353513008818446565897428495376705060928802399066721042668583212188745609583527681045642164242614279974055815211746876373967742388465107398243766299576108073141548122572845445651558841063767385169019679799291780956702783057746867832159000233645910382350718447448633432699448712439604580573689316243202784225146021047375631687249432712140226919060972556021663739074593132168646168475991838246530758893090468878495585448171644104037455696248585107075397328246737324501615065141036378553250676281559141405850921098774081872782068764819135987831565966996388670088216023052475723112221451341941317747103093230663338770481256053675041603152508334666570047123262247573942950681367081415645972032843475479631616734346286395397634929748204871543743974523252988973005777834526440176305898115212677050997910076800423265331731941324214256496891095033505344686087990660029226302632217297713440699220156937358343419680440064238932908743190334562757092859679822398180256055154476050318561637530722337109768400065579046960882722774320401346679567767836347990614742505144582694118429495636052296032159456214557074004558240458040201281761021556105223483537436350386612276312438254794167428688356932121518641059352010234700011830096449376186876353955483988751106909224516188249978935680280718324048474260350636606500149048389701316064600443535400718860611010359859994288835700189917588446764341129556591044036355426229652992752260956277077049045015771203971229863005438877125787656350079159946421684257444261659166382383637224072272080617728388689715300986150848692532596399593206207850656525389978068446546105569371931009987138250341401153451116276255392722634268530268575091158099296273845133451557073317159024766385230490938562854226638940438430996441178705304052816538343817654720956689409528553962533896719621645660979103645448017565527864780935322549806385304968349029031647479920376240121233457930098756437993080215538281676024031558326224506901299248371824691071955144656616948190024120782083904155920901530680381623115918760446193101821986289430400541388161040501852196552928559273331803202034594065432732466921132858465376774025511030263193842775302112565576181767948831488897395647036834411917014877545196048849993281868562046749544052901462066276424417293432134142929032368669377105626352301218636842968849398752580902801135157553097414080947207340699563412142275800284618962715191253612447370171148029254805231499700769140391081645643803172375069674359054296881571746784447802556630089633301697115269092728717841169796530582118688614823419229610503850572374519652840548438971464702790410202111852911621090242536407147457133552629141934534442493180596267634596756453793828349445637611243982495407730197644539281853237958900141395149072838583012119280638245355189277582472674566761213243339057398445291331624273446065035495447025555135166731414563542685564614308768777578910134533626419752717777840543130069423218185940598766397580406775252906013942725893523612435332787167404187968135622574316217741862685681124267364041947091455327673000544377509021017595374338228128888972290560685775829149832267387610021364582304316359726095659033621817006098404461584425510690359072344173399401595892982052762134851433742873167310365464491381035158255031007307639436981667687907043164885397864511557232640228906133543917372955733482406813539245571677994954977744624762332576415389665244229033175649249897459842884341623740191985369442620510335523142678946439181374791027057463655775584827945982398825531970931858157951728740723000329021209416805581724691240991875301076787241806122539881169580670566734864428552208155839953332965261237191946870541859118453436059055435553437403104754994067890244884877252199926138350972362357980725522009026164035655481263662307380036419321503408217154174194343377812179249159713353085083036095216161143978285031171146118432564943320122848986181795475269896517372699818602023935194008376601542684418075654932703779067094713441890867253502737797023388863566978553048892535633043068369122383146453354491669823106969545626144185096219428928746934958000012167020379521355748260446027148966777797058718074145855767189017278620961316468788789410307671247626844195196534716574519142958291809770472370971650577177330119669754926608211370059835074224893349086280807050150068542143941414792299860443036608703818758115614526217617180372802121157176134085137648372999416658505942985323577800996768157190924817776615484264682765762754673475347041057808803758273163208112042237559548593409143665933448344278928360949857651298460955362300316146158200955248833281082045820608599163561452492664855696230026255136369055604362345893485777048298976752187798780516688237468030802102372939184881527432791759823194699389352086240975142430897614622933631629362361238232341817114060033809653796781373663695164430427975959348976019485350832642778735562288275701812559991604520682605744881265531888032095219274037038146961318596628564922827187643577447400161563760691645753692710276139483126100757966527306377926556760490053805069686166684732638315092752600721436291403790165584401485213862407449725473988975668665263745996779865278046866171893892050897912183462904099060971492945808488097903071445804192700727246136638047298999864459709973333057241321777067271824254831146383513492433192715141896916416172740773424623852489502832415052399242390875213948828735501458765554214954030719034769256060717186687919351367903252168240447686451703405346627535256599764120523175206557780580559364521178357271728800998656367525464428166517028778749472245945220193292808071746703076179790233125975031533772543974826235130557877348998447134823800186461274346091319878992879506247478531935298932781844298882247320437984247085590790058470817616542932665912715011246616071715367757379285788970839100264709176378618894384883731708527471251546611772852561453867032384007569940686201168196132238457325671344309164686893439006301095252351534863031747931355660416153574123482190808088152177812473235663960917382913688983313758334180450563122874803482848669163180292057563359341916546963838062799116491937210692039885427770947290546044671347127276725451363828181757720303087034957643131192929425489430670153489736331582991611778020213984687772235444101142217680696745749328287630791487824731708787185975587711196491211743940267813116838623719409457567444075436487848380720273434187205260574295729401043734596580152704326526097019780640698341405517162503117425703770178881058087600356246115211314201185320736684121886617563650222534833581935500343404796689395876642227035955691809730516378544865794361827179236713326450799744167459390505757784208767953200933892215987959615930354781505333029205576870501916630465426371876068637639309562091769453257814249690856924100608556157678011921969273927925835131497556872394931618115099483159368015590787049449747468052573819001292554191566953381213182197675641188202618978543423024384958657794031438360431830604158887131770139039178439618452459676824954588461641311264134889174410474749077854678660309978497726228695495462148638674144487879969369654800869835690069728001267804515953234922267616513910034342766982037440659334887317777481847368839367564450616787575412337200661837684958574641593043823549164861292838835293740704815534155118675842855550651017474412173499666777064356599657150343958867882455195960253206811927862201438758894073702578077759099446113077944123996481676885084027987464702322103774637560686158996710249224723946880846347169083868825129420080161381462514782755654382387689761670264072482248042829713764551855585876078903671780662076105616180984927840111847722037565206203875372879898138160188276331871687486515170981811583926870559689384979300112546078355335505085564642360165304659972551621940321810650014998655442131445423139195845158264475611401667268889745145421545674008762603332999856536826689837523074777482001031373769371461011740196951958821973654459892526653262204585805559791274207036848185617455077468874693263762399702198703315023839318752840156645730441397526437718463904081147933829494160343945409064363081666461217011859096974108347573838480185901907523847928621755840860312458445444543184082918156267560628264238888811463385999121588931484161919670773754615089808040910095985575600530357617313907864153595529199319931168172445086370680040020118879766916288847262723464923535970563698298923793959014175658712118348685035613974227863506194389146908081442869653366116212273227452028859465122598300070627239165339268650876511377031995621606692566171498797087608420553865310988564707480715859970410516211804137713548970598330342576790157996757477120849672265450495619833051047068031541944325365843969702783405827393679080613721272423851369846962127647300645205288889473836832415562200364793918954972792130493420363050214736949928042646608895674801060691405816741536156084415509953301370921134767899256137513290237739940295413454614200671701153459125390622442682067943943414879934616233935735683524991611377822038704871432274509227239596217022533771677671153900498021770086069653938004913323704116578238239306386186597528901771504429992310686744247908091683330229548163971995376540475468859061270667821440845465068136394802400402341156102934547212634629721256540729032124617230808393907172027706606374977416850530324027650551766041639765985008319407267986532557346618733060950064726077999213458254768206661727524666771114581697255066814159576142622968289439296181662747457370930244838140058713878464896042751684555034118156530561061136756861974476191756870678043458866189960419713337542559565894663912125249125191438918778712352944028395355681443260518989325416575568069345392258610193774754487067251877219394890155435701394777354925361810326339507962645586064827821433984005371589628630749479280876559321865627735489063880218188263738234623850904556109353952763094492450448889329449537988099334965364168058973693684646333224966260846021070499432182571590851791229475930736163344601842329184088309237515957451480211388944493207133089696965514068574904987191479075628805538783202382043665045853754077868780653492412667227509828225360634619140382270095601499479459290621876361361529121302223238050320160587609399963902132970024070878424974913117864983291161196169683779218823687916271288771655521394817286473807247275805576323420148804097184341025532375990775757132220923391647901834655105746953289556974207857182242363876285882925947789261621551328536027396793941592481614489322606142310330349243027042929415547698786150177979105526772574183333346097227170524179627879460820774884992120173462866562784398254792970597969252841557575111422439441712031946316192288549971132033959809841105584903131898870217024169218107496143766685555467442238485739821227875499660770892000421147269252805381468714482281182908586548710029076101015430612309460054626976987570559329678755225542756646899466228590455446533834983669690999077886145448384650517046385421839504706796221852621805040085799916390623217395511653923568374513348808202659031285454329026602591356527916565344758660592396707039308100623637864348143244636470210317142733947076365325788306892962627895855922109720127682930074917376974134798778270741944260862565900815928732177819500842770969720313515590966576328631518733914851377498014751454856800211395293978719891067368205918958028608366423250532780814586411498969841153446798854998944782375241162019176943364703689408709312194556538347904268343788054554137373866324620934227152554299436232656379472590783860139081613367967480808678922363187239743254299680052399115819235097950512832217800370376168085908846765854269156484172460908306048388852068645862214333921668551499193201141703227407718556355181627393389731194637741286946664484809461792208900386762394212769343248920477128142811073023096936276626417276350449614586922624358203043007756945571876988043639363832083283088310576744552509891889424327824207449095920552162943177846308253620533613349089948386303538476628201505003132707748147291737568476585805849643814904300044601322518907589820882316769999959820909846379309792841477311489326455726791041108623342983822022474858070196326346289995394452436018755739849015366981661439406147483600385142079790407129073419105313200970269099629910316672562481519006176216478581638973685615428184250183386686965626327790372975386601128440895107552337221286378591157246406051142832709517450903856129880939527008696690088046107335189918988604740321461227131124483177547675594178521383190632803085022943775670348878668941291953533197208571797160183935764042920557415054771073979681751505092183110402637852963389308926604065258987675003416747838075752708996898251763699306680223854180615320304243546904574270037340264782564504874735832278362903928699453206902931699551884128127350758788729690768064296966911143557752396009580104518579726216934581264544339756965583592606727955386849878092531662164152785163222628940198869130150888402774387026543383427359212187163836246493621999236241754309185169260968347199071010348479689259100825448813690934200179350737160997562163176263303197398777318547476598904726957836140000978975628553092226014157396248477839404259808436653953102503141143995578251762074209539306967761214931903398157301345439045349345127580175958693378511848960371441049186248367835241585837930444821831624491998556744329203636599142684041994621787283507266738875211651032384560838665509286192260005689795334659348944142255705859124891813187841557679885384368392678147405084231319940594407211893361824643691153916706553858486610223234410743084020624888354947754795995092553264289012462699812617485150704835803390879576609316673620286722924180268285138639736178219593568188295987446233142843457561839876736924676397590061375688684084376571909818928237184835595185521483924186791428033976787621482193570172348270320647455438480239996729804427308186317063860353928845139892115805334341624519830682475787356249472024531414304000871738172653004116521245568576784415040234126529610438503926204602626120067032121638652553087862080272167442067179888874210277826238710004911027559454213954782308752449243945576577359991759153557613620449873016113410548662015712357157393809006235313600168676029969560277473194503987878341789184470572439467828308473846159691690584541497804952470469200360416267683142749049690324198025224093521950172546988967399739993913031877739711374859195736564320484439732706218150391298805453126173307487544409721434811092723214042646158090246512349089906548652683871285850999540035636530781284307075936848667341316864513141768760414104114110823695836920418723591690829538801199960098528887773954193991690601527943238081824477813987481570975715878840414587839826881674518486639026410322769519816951755492878474858190105144189086742608385733795452657615615577574983279426446752740623675123493884706473065340268995502421426382274592461143023490005517769921691399511410599256526542501322319696508163840323938783651435496101103659786104272758919508750173083161414086876860624208615583844643480183252184751398765091688756769339761315741550307654559282136156340764630490430844315430823158115044888942475220866477092868295733448214947642345765672812046833550371478341877517362626934817484116403872597857954139254894488678220636657907096770933783678264667855041776312344632278245992941641297408873772545301066524251995830092017637122165801088286981531122107250887553648563126748709334289320211546192294937049017726504107974192743888272826683248372080355280338095748844411731219824657389481178911770476020283496680286525957813386294919896598356558408752196489233563649927821869654443487821481330904465458834628319061819250417846452893789719973471736652959904577069209051239051148990049782573831269033934382970051315379694645318008269557442622658291575355113747053359967701386321626657351610500762004666143620287428788111670630243768609432650694176360672211309507853797824948026424326973431028863026516971423448920936187331128385115821830572950853904431739197015812283403745241536067179932682000890949023526109393000194440380124409715639366168401249046302840437781431507953675133431903224021242841476313532133058590617132565990409147149817352673345082057997060085502831753326672077308360530339363603932275911305574017054851204554953358261350064478482606037672135594037709887178434190240879810474427234420910827724996776151088162313531289424986573831802437704812248941531324638279913044694611351821486469613424147646577034215861633607884607504020347619271488170501833316606171371804913655059174576273213097047913671292850505093859331444086764651808013664469118490231332417289432533050111141067556448785401872787288700432862597257013316425156112837513068917619839231498223897636577763025235105082678121943628041231886486806627215547201616067889856658524343587088193089194027764638486493070825632371658209128993711612229604709464878245412747970783184842889428082241443598781952189939108817222872285948397902179181581726468248637520532662264225805359985866106847345237314003427117200636976628965276522410708279874676480260291688167268841177053177122006537114156149316893598279959965997852585611734912563889736515725255703388342927182391364666977218351511222956671964198873838574328677692303029866801504680134648943566504546317259172004953075212882220026275860192581387007107473802172235742973196744620518862564154679337648212532039118136887982548200053194638521425886998524735477914739405936361264130647235574994596703504321970552885555565464578299118256744574766502847765036313567911334879796040933571844531515170907182709807171782931110230613935061528713418924215761946515801893454584154297825367828724460104220221652457967634595668814043561874351587942491175760925026856304382236599505194510207105010149045762633635180501855348844832237288028794240481559319416511983810363844243818704900506617996303499108780525695965649710595774856370793696500313647760493579078736194156172240146729099164249802205197843824429270237248580482247286660300909547539891388835338819057694981555126776590541341353464621900518129531500139444086867159284325567825564626670551748950445718298579599677780995748646383714904195363368857757463184671612152199164209129089815646975403575753654083176808586809860004122590757597668150094669002721491739598226066559556529551905721793382391110523351412084699027880079714116687146831269105987330836926573875202510276309127677051771699849255334576817961175803357785627069077391500888993456842446234515272749444219658892065305392677170172718327150859759390356934327386148928456223766894582339294238126115101574956756222316617008432064398523307693944787514364898529243236029058591056771328574424203778833441718547306189930051138763661437189693859486559069519202611017730419959546826695579835129609757109934754588523347434496161647697580522759556455681543897206266677547173386032513210023007055210120459975814874865572059443375250529649446497531127865848342702491299485670356355022547911348100994427308137716834478759136630181488367650910846077500853403217677061460273544523140449515152250333417508462298747965935791993559793839011946529260020415609334272883361991133715901291888055999950849913559803329088322838825221752772950232765444009217010113080677397564233236130983099210057965457705181966593654081810933934130392993816546927591925869980333722409991419290493245280397216403775710038064957939382899386954351883719054247056615001427433751555093837653962836131980458428316164961437631357928778984974192274273002435565246563766391957721072319869153656408562588932058973622678641499051120484796332426071366037246311749455195433193466971567914191647223356963390940076375916620540028630373343231482091948994133746773047293918019673854023728627406625814269622759649172662204754093259331276612498794639864249137840763948424937361251357761537618928932496077390248805879644365926450786431759278928528782883352409836420988273558933998804386202121207534852630064420851351683801115382372326299726198711027353719255549902560101935933467820504498598025877462554268971266684935789319365439824041308358065998288758882102381648456028383566664809361685776688355949564426540281466295024821776335229813204832808506333335704116654829231968073641136013463912189863898664494115635413051452201824196825092837530754169679244096710971997411217542410555757103398805856993692713835223196497755683221220340110764834329298369627359047936600382450061592962418488518971692169831124951112120914841810012712159025377126203470420032559854542870968878965695977498167161328126745573324276298816271586177789189733857865953644010701840120501436905849781263421851445362008814062515849137922507178302527334914972927968619622923076904169207581229458254957140351730628155025227058516336589556122287781021801418218162749451929702108491075883708581833208761544356158243299106624578690614835607235071425634166223160003747306751392692635678903665531603595833992559661110213171358651626572712472008639286982321862793191332188789154071239046878086557897085464146664933970578556702188677038486226292177583126460176769998272329115052388419034902136703303062011013667491786100077316413043080673817730489711629299490989847794032666056412003348985000154278949875322564692313701351348552998131055262898173930536587700131996890283737836071431820770654291033051720722727218857403408360746732871054402787329417938521789567217217715321268643595571239953299152575482589636995948343613014589214322883708452119080260535166569868666745465415438891469431661896758152805541259653050724769553563479144840521376448411051537804101843844561704244831465798061618233625107562756985374679835014685583476321849276339761879167790543805765363400531281041663538654868572505973286302363914277449216572888364308951532414971814027325620077981275795820076352309032245080904996324210582414421862434116986765320725736903656354282104314593204484949479636236498990493514757207332747195663017192283573563450324478894184352161622661712763464208101664971370141649876805858361965644130991750682133638234743907982140039045197630219833886623611526001067280874025429073529999220650421392997588478243283116908108127978621424808656120603548410560487515495890058486772359473847729117612983535050653150290129743508641067871829284070719512339018037489357616669106609186501079521363279630046780892225972746571218899291656404028163088709059865649343567621197072555544130060093968154725335335667283981772592262499579985466674770774979269763821723708376498662305056134350834267549196094752151849589294257517774600816811690095337200107582400632413969455427814432408662480539312808971998174747870219051605365349306580553849762162266987486264681529920527484576380000118347685181330474697589852237154011283691761896714211886577449228816819984928125004147333589583884745810581197665476316388337335711986849890562048756521505001394826600041499330813973305229572541071179317259150162808393773981759826817961058219829976993482896954524968356490713992404141821450575095097172440881403074733378873706315573375205087118390359398577388442876055259609504380062049996094991446334239823362065617250665010427722318768150419056520339254614298421285656880395650761738025662169864107499671498262441636311564306412738347100828605790918962121451022584324945850024197105556677381250673760553974538515316906717756490261250134957208321089751021392142309014970625989281729048009872324184115484310181987239200575104649387635202208553219642791789080261642948565170879684393209594904189361090953806566556471074117854546455151073281135851544210971158776156898263992237175731312437899506247893890941786364404985513116853849050705391110357646179540022304086627962541053282413298099852076936546491608744126976150533488882704798003485129998859765012069270734170113278080371853469956824763711557607042856491167707479307877342941894424748361545377710473526119801104587430722270957913642431001201420584826973067951671907009556668388122158623284004421994632447374246616479745810154216203525805810192795081115959324105769283767139754900156876062535259642642780951363332899345192357322925407484124018905939756307608321216935065941994748375021949751183705601602457317569215150257334548479753108424367069105297595181738893829137298804665762014145783114334449823799445318133136938833603414100955216446678701638880922613642796285132256748604779074406430213412072297966957983653181245143286451511719386323350695187379506064980926627603057666946824213061817691709828834793733916453508928444115518807972414853287340017468575678667180524802198725939787097254679896744921644020580032739971765135004482018586516675773280656228085837140610959217068226819244044428283482415611551323824704946277343225149681966017009528310809543667073244770104520518300131159289768667225858995880984652846241466754208204849534733909512925748586065708644267503882695610275713780946741502515332445058633791613377649011880551526290917701128326060326116135016429288982872546029657998962565837460206402489563652876981013190666788587825757268221231286440529604600850238143043384703238649594586433153882505565324745285847828438574801403020616826667155452748256905959064746562670850426128445534826902278683460746879470056590046032148214032616295110208779874833024708256956162034160478566524310947606512604880183288867640679614980377416824731576901527170438648092447068371094662168626189626737288520622377196961375837639994207047039274704422159483697782060291073843379144772693481233725103271930689170945615710556386672940134741816088768972307018239378686613278971053267411869021723803111776819042328418577065586247119755702569208763007480464830325700362258082708618286089387002609403042568963561778514299027822699222446877669333976574867865573061189999404502657618041467951179406426642964081196517001238281409509577378473713849804153098024715692924679809063320625666524473680775395522346533493497645590551254454655410440574078091625313684805188650546887546421862440837774282017257062200536481398613128580363134269114265110505173643469235789641106070862642554800830851980810876569496171214423699546870260652115884654863838573828278354717065954215853966632023787061670807141165434484724402694282871935647460496415661761469386463277923368970508786782059368385481670904966631296573596646745617765468756812530786120331921078194532355356837726798962808894562838146519483952994429570616853231048525441705503717728254569733255633311929027979764738651470644588611618322330625760198317892406764857399773008815493660044077781021616914611078336904252027139601401912696132826338713946910856551629539276432247216011445809425625793870977002701692518598813430557418558517768849447308427270986157595283575162909347405369539938249509634935543560704481470300347616849870059125031646958750003650091470657251158781383995696349250046935727360368458809163684998218804635160834082902589341494833146987999812035668575317929525347417828662707820053044173173275035053650675045232195355602973029588364923647327227303859850773416507480555517697767480620925461031016379461588201268292003111973941293409780600202091834207267925106227206656991548814305318650521204132994496645827800264188151957483082329758431998587520122625653039649671267842817601955382094692680436044169514496904164622061216416104598519542117938781043448037066242345863888696145679977688387315028690278224564874033096133079855774351605325079248289845301332472686392329112264555983668988883587404730413173135040462020200000685716998755644961321508656985690859079586705163406347410115295189086964220688813301315806558982909244583627701873599870114767782382519691233274900470720535968568435664240468987442871105841443459926524507907376116494450988217242350473984282254505340111406997014249680165035644291099061429150381564673966767213711713552175026704699201473496847367054395273929540462908059559218124137421230466731590245999698539344303894429629542513705131490366727938087221933600493054147905129170076533707900080403456825150951078352878942411001044642858250258674907796502863717690735221404315279904286417178133828957869502863008613953125471138231077562525104846216594418245975162972366745678880355905611108376280037170517541752165601661694249161874932729408047245146772220139675299674828927203166234114915834994619193122267266840346314017382577788009314201281589393549196667751018445815058900711223005690937542570808990007864064181290090218624566920160588616792631601217783374244243839999026907095549519858222728120230487945659054845550633356188619396070785413777509773438370388224028735191481614512224605578893622925414237716778919827355472714433549584117048300449110952639161887444508972537689261400609688051808655494749421131207824382560747026214006258235725609077776527947246939942995596920288647712644276773083031292660787094837559525100539616781019872205829799601835677121674251022264140740627714125718769032601196895215150253131887317577861169900882384361692350237336758287404275858460270738440125715907738605554559744931892795200091969620781471797310056740059880599653035703743602110910709969686097804938762936579520835164905395124867741446344479968790236563314336437636923690106880703644436119411717174455282281143765213547295612708781791537531481584092627084790728238838113737332816679355935055947085680922429170130892812047906258709362261010649286097060106555953964445634507974976925552128642851298849671327511561797284956745598845776736141501874673676759957256043061086785522809872996840660713597849038293347766288303882032160192106253718993991207856729848890429470874786388897945938640068087224405300381899251832863908615832910384920487937969108758810100183973728108539701374844024878589816209860006775802849163422128871303880784375847944818832409403818502396227997401680806105534385716518798414053005768126357025106033417664271831484335824263297451621301996494618956354817436988883568457469065031520965708208564849964926640123930190024457668697881910811501768591641892791459222548564641837323052003766387173160884682793107048732006444017743451855687689495242573410770739935076943125736490387338445357046926129106033142505715608954615134988234254064965985973808482315747436683924881631396565399522332545448420384168220251012916638529198798973047850113782140491902134712610543649991389354954334307680973749614542243664850304767938325525078483535047789395096099076168009204504419716169044251172461266831933195412045828190036106643625140564613576467366144377957410459870683910033924907868302308788950795987734096483149391538464323034247999636373210016295150598628311564559176595780771535952082803576573008256645356077407187643688163501633825445565401721059965114040368827292390246879249465310888147368471956613320076940534711638726643435862269868188449539443399446745030977632460367691826662395509928834606064790459061555992438299793859973183312394477651626855707701925805845939960683216101270498285102857717009926923463252126131613556634102642448620133488104011658970759059632063921756740816744754626911216607922265635285980349396051401533413362551907487720147318498430737881867246951232825651166455101325183727193791123564638121034347279301797794108091387217331391545299745173851087405281085268021090948473994421936430683924426146772188107965627323635552056173828193202859022749813502752953546283508807507185369319111953090561183680959345988924681499903216922248976860148926894052550370642859937420705275932010810498118959252396817558198729560702839207884553257960979247148689415596920417564433480664389948859300248396212404590289311133534479232475637044297567818563192736954757969414902083695827918413938909037228989771007050168424405177170201475700389176859079460000714013820699804548683812640879064012021819812463758866055833912316552596796776212174827517797846792511793797150367267839770882943681587081768736808706688664446197788179555788646831660449934628713795758828393502836805502187730142097334378796598057739854471349649870779481321070982743074080448162568157250747528759642430838389229379228132101339468650272937134648634302088455261151196234096874568672387317423826275689854017700933686375648842863384119193038337435501855433136253063679862319244375609824403036389494680104076929165745284769964676446119836345282416399354308856115227562969362620857542587817183482166895105414495091714080104211704092465648011642279726335524535142158067347082545211222340339598916725921126669526474783359433392311063927607346626256370450932747720866140454376654199321795673794489114061016251065573244328140042123317585131393601180912720543678581194670537995078704379878266743972692466059885135010959416486397328706112862415701770966481075267869802013055998963404113233426540710273418913824170868995433898218446648827971305312521315379621342419426897817906532692249013941201918855185806154213378804870493378294646050186126424590553987787790904863180901761398487264029126016603974707340825050321443996355740789732916335695193347706332701455287737432656350648963592187647757352687946016848170926428494150061676024323661476698692230471717151299848496728655353188175900431966108093800463862720393114234780325879918694678322686731213605327111184223819517762350194993944548951472041170678793891986274216181980537990488481788576928027306930177622959521156279563149075387298047470604020947644795650761066154435558214550761991807357178830402850353933794786749752168437707158007661838732261060412541039418151652779974516904263088886460980272093487964674669404841455391843778977184294849576660901478985899924145570625435180538229572353187101811391519710708986038515164078399989241463615007965401336293294467759643375983175944002236772524797226072888683323578302989334186305922000404539927348912072058532761193919108501824011668183564131414457060097695311528364408956301087898592821624804832146195010446045100412383013557195228461826198466114582641882044243451476181117646133069353276866191112153863409695188371035557364731880909764564864792246249171992434837548407889362444461589370875760030255883033419879853376216601381799040307539939841171441356135311472330567941776051768097013789284426822232451468856622851899666784878840377366721753793324871269880418990240872683822471441571320629154616532909339382025481333585660322915760873394435454105107375387548449095374795400760381565055797208077841827001105513700333267380571753566784126222292842619241451142495566387881486753717763603417255169669673223936276067556583110665629630562657694529556880690870785592739180266068849383314667592860458173902965963228723956209772965926893530303617950903849773691875613557369528434028821533983165460108973061445386950371067614242492466338535753919156407195153465693102061127523326020975056773189012288666320363131928098769874589634666082079033237615502345394693900343653059827565093305248063342167040184804086863431209793410674551824105362488237913056079672320309949156124193651671622661627500950630530242209002997763425008871407094388142906708410886820921672507017867661376545526765655824764282115831741468507958311568733389963138409739203060590723616436616255895787539215866723595200449727650032208825833892211864798969406236025499653350797440829653394282526682604991738266791210092894139983175201180449116383474438253795626740486156684292719674669240254882037843850500768467286871298372306312333967284818968099042295534026809273067020997231502670326803715367463643355769987226277452917420777944111167100547446448690311858276965208989376056680815474406840310113200658392668105845741426729293293721596227128528222809113655839123501544987297667153414548268449149173391488146545980093636864780471118129087138852939221156869415808451722665868307157524712828789442368718382156025016654124776573982804707720341234129219303718622914360201519056212989888601883504528386523195355116188736678747987714996485774743352181104264999714878283469312612741234826263028494808329414986181060843940932021287626210504010470404080240835426637922534959161301607185320543579674074248471301712746231426672729306648498433208020792240897189846878788307438474435082011333833006058376656781158701034480541128298564229034231644755102952316982400644849075527493025863141872797112358371508230969965271249942094737532247469576716651500900388991714196189353047999782821392804220130545955377808915866571009527546586292586049656210473968753236877440218460572642119991852660566073497910896975518962133713332519810265604924937224770821018701727116511574352775473210440961754590364553759581983233847956975191856354055854052859789658987495024284042873826432250101789898376142765036861227076689345791913590775004061614512952467830928506218010812921414248047499751427971457817725582497968856297127891679432274143920652369980344994465350636819852350712447827975353704709176185275586649960847889129991664173690525821842368406290018661913677306341695210349449305637550305304586308416440129334192152888929229711822220392479830760213037568292691823006827960826151211702537086284236337057998082260862333688367536913703235027266948910154738006968172684979913904732598367539627847066834229148703065722241781929025029331232737350874018136490037284164828304019405795682566053127247620307825246526242311618720005119896809056773439861564914555386290684035156384295169389359486274619834672267208801070320005731789096858363361208594142657565803480651268586054494287031989096460525211831656863344081525525015134902920257976458896483966011491801553573597042245350338974705959918993811110305090795370936900515662456721627037298253757020460936869066292745568940476448891887210757120617772483659754043227873341278990903383448166738787067095578057833877771614800154766324811235756475872261873818478360035379429485405474336494936455434131137381045873714168292402623532116908057612205344495197583930971591433470779736456418055386510719701898662878785535294617431757210528660002770082635883086863091171632251728332036379668077768926777325998240388157818394293563775013620222430143601829640812267907230159027135753122911611512601473487670042678960610383760536920413289090364238685840124315629852580909518250446755624551665265988321595614240301893618442471122820209605110346691392746862331708322224974750656964189786948512818682275431998760635017496393618389944877789248860318591741701475037621690424810827714819121283657121180132793816339115734999874063500140831857638973507966600733810685728828665998100121608570160670957303071589876493388557381951131378688995137695853194786269540408544444897785964310450037371091413627130746826525630145527916816474238437158622239343138249355632103942150616535431706508377664234938920995068765673484829987792299932732862373572892285543356725076670672710534640405263308502138962124651175152308741000094412426897082315272235476547384218039680548585107480445414664606201662189084561289239585685167188213186710617920736970613288994718291069737805551372509610892720973234552306547124604862673610959556400244454414872884401363820527637212745333627942586955045275013382793488871611477024960253780058644440983469943416471647519937084031314122145478775126899137318372610152520356950367520441955860818473248394224363210183852355904728414620001419276416994129680932637842472801284219450776766634760670937377869238385106435675838987314630848510290991876680956823910805145318652147115271701360927049706846538124999209248373174318914005009821039328664931485243589982087901524293921251500997262690267595354550737130407442971877694517236356134024504309254067607393698689554795969158536481627279151701427186760928315955852406278043008582839422147865995891992534327352353082771832162406887002639593360352436368072187556718722138828010773797471288469964796848307979076081369154102914007831677873577888228055563156464672469647488127096469856981496095042397343801106613915253266913712281858506601052675629217645243850205807093579402085433876186115640113216479468946482443522660855733467355544532170318750798891545978620598006355004860092092596252826576126285697939973691641761425380043507966551780823154166660515937370665511990010535312737459572204223156293929450706690584379302043040911408338781834460630570321198413851120939484918456430440907652794002850240087730587282105005223292939546179790143617499485505098201377898858172356503639650432743246469048568820009460399806776163521290516353531002338394841520043896427085101730787638521085102415720744394042573747244072781089789466220585561545588125858919748647842091669480447244238351263098118739855730511672189482531215931861596259083255004259486722415511882871786543903811130873035936133196626731515502984481048481115095038385005150641893901327137912019306274132384177538686212817801936790953376428532492567580042113818881421194322368916520873032280598520330641889109846147776651782123435019376112377237778814743801183253266557168873643251333368108608071768626514871080604052974955437950128195881252236427450619721500551037898886701196422051453652102023819057281047421422942626259567700125452162430906421590546450648885079505625353749013154879119322564720348991645790164673253243426499927938715818688240023772352517001329834858571577914971965003285216375342890772746691454729699531355347563708869095141659511048405295038354820936504046841218188866773590891403015953938770605879607733754866227562263558897186916061631619402954803130319436276188964166790928860959344058902384872824699602845458193465907749588763664409199223324304125849981044871895686483690353944202447132079243144039125402166574331997170204513636742010585637098605935927529062710224367706032623014303697940814975012015134833583334322849173282974658888964197355541220819302672448741892855340497364231925447998327952071963758385172311819722846704787015790448340043861467325939041541297410124206541127124483835092557530040910987479413508046406097385010644363043367629595351575016429326126563701542279389704745573895651470218136935387870268441527626714460530330298224101502426507735789309456853284646331803853578872352969746106466110072950360912226470790376278077720652949463465938381821620251352644313523916224324058184420251531992390418434246583741286837905083040541129069602610761124450569887057163944721617706566437222786513651952765454376253997508260087369646637924954201157109457953222160800703777108980328722009598276665045856993335907128350180053791047323017305581497458387534736341405807918109841129418663044709394667323225084764198090077788138254394305185342886659645733043018077841984566908148204623933199557252075027327504135433468962884280078933673684697603420274889754125634518203915022320530294583181565090385645367458275753692022813418104536066554760968116171396021223079528304021754037788887508919518770584957856744308658277409812278834687892475084912541306677203324737937529371082308351818891286480928104634739121608587332280257787089401728908599607159550566617717543796619016000340376319925987924122739048840828455128086294439693446485886598495908538960394845981649209900504669743837988324939759274974833323650426385466809263431504611756174073726816764762835318902563516580919871463040642187006310960811001628006117448234407515723276395228563687187558012552638122857879979024046300530725545269326227458385892770523346936245090068621385808630759411018633644406638995564863653497686701295621117888294423142174626584662587257843621429810591244347542345603476695025787765226105421406409285389758994650614418291978940245656768494044655849916167436413699439439482761384481240254596436233439558668526326611901512883054966817553379476271397869398899899409020797137297001450063148992019740637400453642178496441933734673372859297778521236524387523849471897769514565266026810317814724126782224596874371019744744942346621688323303688448526331862318117079944015185033051903232334301197421647080466036890897141809435030882277833672918800088336939449950872696293759931692218780649362391788414397301305965379500886592830880998628227718370694574427192798805773938088425797804110575401164257625674758722928352122265987602819423530574651274054107091880944386183426636330644065145543743468241351966516169190180393220696623660983941795330700478561607126893269936296381788356594376144700123561030144718124457226451102477148375691538657121511343058055315499161647086700710213533879387983949428655038284183326879822986283691959053789043330701412396047463336550125183099381988045104589500646974782953134454752452933769134784310421136370152541331106377934353158681828942392624042050239501215455405002555150647579719252305668662500144893377722161290494398536955369026145730234641371479708879395049362734767088827449284330164325261081383638159237240399181992628261797122900367644808799165931055074036207058217884218309669397668043592504406122097483643238098268597385316353178978160554655233094641311394732117868354141137962639084307845212527946248450849868851796529945948901147394538370246767215144174358282492416998625380678123217544706499088113219263026551133569363296248794365296788519340467580025525833774515513182509450032613055287592803377523482633535457457071890682225949953857990819725455450765568551605149408830436246725807529291754105547169448399399835742262518131660739013594621211963671753154891926762992979582836249234161278408060312538605466494931232486828785683627155094456881821644030315021211524343858707221633501358357598595562988962518458114739522632642222974554115236095458849454647839106909959915629626045828589496871012939666319554994299973448962203806726140977669519000441017076676723943777544801581341221733423794343388842843308961508260866462063279296972044160834159373083545410018080435532739006378575250732237602789950649785654504627112172273013044104921301857763367596312606050658371733432545468618966983066005798039270593863033231091676860517859431981105822877985578156707764008985656855030682906287095526650967797309675257986596858453044561687196398491654827728430386905242578901615013311260230360793601662488044644914117185194303765662704366857586544755235156264850051733456998386213996434449964338925299928463118016909747888443268520997818281893971144950562476383648714896656074672729615426845853334494546379043923874455190137737868463409804119296934471197506094039799439785374428931434891854759080478366504154525416361348685079729925830012016482655223640532237570697785349181696136963379754329825385588144389974977372153026664962271151514986709961559791727834496729015466935343695050877221305032444120128556743241037844367488468228102508958663413697181723814812635379629662071114388137082862582205887126953527447953696293343063262091685184380818649115940961297779585555466286434198723271600663804057309531448856992967526426559282606733539454088885548918625974629950942191891009848717170445827411010406912035523420336740098897617828675925672897624666800436715780513039404354474028035940629269542873223052695176136494833659975901644462480198723793483898662087521815937529309346787129556718396021908474083084903518748342486531201112719716002251429459452246030903049640334103276670026962444442347380060757190488959170546777659315324683362929211560106182096456207772643141569375923702589996765018459637627822781422202121382683544819749920029390315671688482155489458294845465719132250122650243596473968465584024563439371554955015691300308830034250959324218650640383670125412063886195412529940763411454949804613111541273361338917383735332182247679038770852694655028990564845887611000584819887654170001257672040373657269174795694408647242541719214032521324460186862184314761067993576011355277421332965320109789492543429044095267766726375189891160418224912804973031581310393408479544644241840099783269735313862649095602859422374896135599311142599122998088838571691930253255473660639988981108846192161219391569385194292923912541156768858007422073598855753372146278953818006446259942237043740969724390418812222985031017774928948245024849262512579920048442371174981314140730140419803268986766050380610154076725326580997790302587135947443673940108360923008606567864510033652597074177011597947749150404085792193359373180128334529768075742197254929488155731667832798166839814318843367615098834385986751631337621946520515153452434598935756663452698792360815182437813676655329642126349654298375815389316083310498144260992091986600733819107904704283602408732853339689408168035435093573690055197973194065097167679666473497450832036953134954352853406770682299935644925071908145731853779144001741710275313527940815151780637813726889755343959508851356313440143088445429015359704633045087587167363659020199992986840506282614048283573019480720111116358145413560014954346408195313809839878754960514963184364790707218196126486150864029622305037710494150200521554580891115209559150889530040081757508188705156594888968489425249775173319408208185464077735019146912901645783100201853075314581959748584823613534531733581392440398373708731542946251738162159948009301061279511982018192769378921143072568735570884923179428448627530895201096103407545171089529904437653224074015850697429627559761487193974638647466575500046733828462511891864397593032182655720620765048559975550090873034593332997036107333758428412656787585574606132237682941472739254501772151807364988343622819303269392332427102503207860670140527497177873217301298278291118572968170125545158671474011846074534048361635883068183748022281369518119282423695430926349131910759742721938513880030946338175977171436276029072270258935625407670161838282188997557021006686733645537757613795088755372306272481169336211141078329382985736564575078858195413379514564519372447128759808069004207640703574832514334341654284801374129544958530302422702254424305923571256316187279910447255533740096929123858733415028929687086823490729674316229484732977219340530400854526117484962915392898764402013396274961198197053912520358407066274167626945848395780258421214100315886194837015484526028702524623220271633164388338230961772960887421963978974339166853007535782175355424488026588279087407646777235320014538249720775731482700685740403743971896534958360271855451105871109850183838447612378908020630672914111291529288362921803020820873230835270112175678078912604980306814833843995729978605773218601228980882541227182801053234652637792450203671323474861264126318412912268898339876352050938053800130579572368295369402350036997051067160152226193747483760894211559822866474958746079927924953365448892429243958221267026643827194439918116853029658718208342858364107942485083692790225775027639359461744006195034942226778372058902793123655192075385935807557824017516057236298078124387846948519941342462331564340743998520019776002704189272843809916836067673231385686716287625118847427808559938167315204903833269479043220341230693042156837660048681397821153215928904202978884152698530570184381747967299209977633906275996605699187316274648837692179961604745975528466992567013738660326741993190871705534511087613011519007538002302782004883292488316425357232819675669474555456476751306505321650830051332264159872820568279156843702331368159623011804467899015922821164084372595544358084487660817172106758742148506469873598495382604493480564574177935331213456798751668593582748834797854069162543780857102504863695637178962571894345485135211122439313379461421077304092806370955509190851423960714275773282549827309563497733789003229035052415649202059354462679547319686294133347388390819875699136185605963406051835337959158152190464533693753044761272747317135337872391914287649798756040106537273382200338448013795858908708849340790019231429000354288734833681673866964526567602311885096164862408039797613676422241091403961042283040800387240277491674554522981770348429922266106445956953941330442562063239679709775187756400640575915346180400961981473981412694645559911963039951732136544768556272118765715162900924421506879364119164117077475280331554736814301486525406193663023978330497286886901296447871737724564342914989473446358757377812202307576001479490372866236720848170988307416406922295360721932985740201532897415636889247269350310392804869678030372889998570631914618869763220451227951523073982586985172410915151356633836441590934488273382559082979827506967575574965484338367887642288934875629483674983595572241708232371335459241461688815909947905796338958883128005881150358768191716678484169416697773698238717138726541665624856176801657408927733460586010342486204705283257360479903255778427968863811328724251159446081788752572326010503134727708404085288096554108871061441792141787260386392543067087836678111412179175950716590889564371837627044401673046582172774759294916807541224349972519297005136289853781226700338446594739620411887807265663672850721288588649578172815457560191289308566621878875544652556173413035374660545600911187431777458213651732149019431717267607365208530456342915294957274108828532575877851566873476296455323381603568443047632437228706692202409508477915344660751834424855976636493294921463337966641954647699968154080118719929730911080517371953893097263148282151596485994179685657421369641544423523744857721405989729699883511277183184092837960774324638932232367623795494560665024601482503958733669205546549623695534461187134909659758060272137517198771049579682668758768637752505706519219586708614296088655245377418835527816343390850418307699673874544686936723026148506942548795886011454640077757215194541068724307970560923651030357242641168196718222108603158317823517486249029209129697486905136156190111459424034368784867785107691947813314808280879517172823053268257486559817293765246214095900013749455510067844636947461649730686018686436969087229870171519252865801308368352692523171837224547141985199829213882883587328756654204801734523136552261253090860786283878298933374632157883251551169413566808625920987369524372495957125642920829904625804821465788620558114773386750011349643004100325601986546754859474262921218766514763637799975818858074887125195067409520000327243879153323395535777886998101737209596287189999940899771944342467323883898299822780236521889077417473922313077917361415365056639395341181104037196143901357745878007691648207059951204775408099951361972826497118386093106292167462026053316630085783566792881994266795098361542454345847351718747517498997698465187451747874569022180815239263823482603246316641009217156737163134257146210422924417301985794725812623408991688366595231159185749007440683612661809089501310365583860220632974704437245433462100218687699143230504259293209622964166676527904676489308718153674063574192244659226599458556513467119582020243319482141990959228853632922024241297479844406581097319375256048051242086672968881801965368625179772732786896404305262417073843417670556522498987073086552461924840472946519618802053056366747661252848106571241447990581893201790945184291602708249099143629596602852138180253868427691633908378310309789853380960365887806674644721712756665622020910472107872008993919916231611846616928867506768265344021024565508336332469236987746932642493023123034978142894062312881681050656351601943399658545638818927233561158670416871412609300368279264577227101029322996234165823006000586823367097926330389181884432635232404823586795587206515821663631037116265123935092966834841015871374274580297686143684166048590766780441510040235520038971851569971285458298485145441068643354964198640512737815351875110847056409073071569396326875534374973147066915882738356252412594130107402557451231889331141384489824294111444107014146177684875560009521298824726993232709429560350873101364406216706738806456924807492089055369240660066484491392595262233325442690672195001901393473038707097339970529147630928994543627452777787337545434235231742870035194633911991234308243150489301058758216498254587328968383322041292442903715481906317888028293832453707044970917219783249973836043982386351345992556767799453110048779626663446464012627023321086315713480594718740931183814370307419972042820857282468055959078730900232658981537929425275878972937330699784322149462623414262525526617678919570807228496955190608431111188664862418015077079386712521075136816051216287738800571759142315393806065634613762834925837699831815022253142551620715072949743950840096158241839805475525198520307556752885299424548799813769225723828115037715801006392104382716861624816003882097365395109007211153944208598401847481198657183339540819900514431275463028126601815764572304591020916870181586572214045419587168751539524179974424986186057803376550364554162021796462905513163276604085905694779181521388696201320233420103675301341911904777583628038102169144069825481828027454871315422279446432575436650118158069110780280414480290528128908846183966762324018123836462213318673770926131758819427843042087768803038383803008660010354327759616505596126996855425943755818018019695181737123776096917828380418455742465760381110758498108413134613583931750011971284147940319875970583206974784946047681154512819402944561246827239187762588358722541446556773115728856988686483857240891612427405313311315073750448159794484579658136302709474413020252683227565564282529372545770362423661401853680292468080596230150979336038233466117086413026172644611084206042834843677158985361695982670516401048305128533693006924540191706509758283256088750519504437782313404121913172408379398934135082345521724120222413506909126921967127231324424465576008092437231277096393570889904952190194393295760400634292762994966647342805067745166051044866050008702564170225552638083017251584680792163005372068098763989523140269667537156100587062500183270951365978295433922701642624869568433729934329884009030372141526630331658177556790305415987353991148443533410393079362748416673897174366157686666482735070471645315978266420447835285564666298764563939289366327949825176236403718851085965770018703016190963506268318858493149089479678715158018724193708375163454624869521638977049735551929416559221986546098238659607205543995495713726962876342886389036910128157481265495502558724172789094760983107627313361191668247818376940673707800758705779144537854489441999856716634917741281287587303242058593695708638693314901457164140832613607120312336189518618440725261828294107864141920650693411594298250733551558014387790954479204177455966289356325941833358603358440074619681984618423880291865730910725691841508437225796133949050082484825334502486158175954137172566259237514018949606305787599071601602659881562832847819938099993735469458929656948170873855347523911078595138611923431629893104402544833722766360539480057115367398865992791830151043696424471492206334548354636370610075279619400935172131333899794168449438664681235850388369584936819481553588828288026199106749713240462221792485330326769768301347529748708290759618535152081561976833723589924925910713088216955121397959740527063950943231867460576160154246433029549933328082071599021572321671270875201595014371057172429644309109826717144491679481598608819851842693614065407031072583815461883253646850791668945572694689201069507347572324547084142886123049583571245626569077886571334748925571064732044147256122059736442542912655700137202891934717347778305548023469233296524496286741163768669775307448219833753437702789165302576899676647915960210493120437556735801002593257280524933017303169206206531330298923614201529717609165996904480643161045633875620547031786846860613313921309661366721090986923969682495578928281639293285950121707381464942645271224682619717532885987841220724871644749926592774108945952245983041944795749227255221320912342711512616933179119482958272833094423769621663825534113946208156664515074672332575935410014769175222214925659456628382844692046823998092484001659874948712640495045496882385252325470283145537942327746212859609712990554539747851223242378111523382753286656738975861357104398671717326052448554004082279567864779946612863637410704106790022485137661519056229134975884193839881178894108437671837200337928572353791639916120610395644025404515778330021561773421129951667382228977412692518853156048104247364134266963599793645435238400127656136267807547150909743305087768403136475045629828540457095364564165481286530759328056649695852261199699428415653483806492605890687699895886423240527528521752666910103442187682648365528094202164117709948401751967806046695771449200230852454470485205580043684214335453983957424510825002366638488685542440211041607738029593133181854670009021921624951267343480674018313879915000845206112082544275864573421452706430702308635115192387850610812034487133847049553766447095028059949313615844157971211026260281860835167338393043809431272274450384252654732933923733547398836854478887110032532892613466327982126223222033176284012608197458735235842482794167224980770568462504891115071252076399872512782493406439795058990857921989553732105802683341681509845659156606924201744372470734167870001963005792368990388253175877312524381699279708758767222580686113091532752253950096443150945119156277847884032035263846882820072256945450138267771866919817355272886022179048465388516244328122290398850601846643328668046678665173879377130477868623283051400092923374743303793984640577398434721284996595319528250678213964314174385529072278925237326192036449875600132893092870630852604146628217514500123914362909835641723408470001968686534569685647145101182898143075493149974153049802810070510573988214113690613789934166722324091991458335683856073289378626467953441444045654072593412878082421194087572362329115767267987004808818770500032317430046824870906637197542023052011895161420472339670460753889749799469091723696867730401698361066473561065539081503593084247855244535738105666473392516444523936955474419092554581646255785698187079235891669838043811424049218940718130534814823732731670127991891328943571252905076282063175398021093048767955654278960305627657137038860322574232176406264494195233120430565488120447449445585860861798271098622291068648442274297407968604164881807415653137521193580110016332512431847772196784911160681531635751627400230891111994840450280487651823063718554161830013430483850963272523761392240391998674383837279577587586759489954025188730858490919858292364753738149077824614254234381804739789869863241748369813220651792202258713707545950634506876463335577703311024099489263364321888513514300836277803568624350070607730170554432529867311138494486641944048868645488382559733711380874300893374344124274092940379134330092064190311191341859520462358990774998844836694878503728972520991054680224028777063421957161891639255893030526678508423848698674814066544906612838966567410059789190346920387518466089229224603768218867069522011160870648881298072067279196482473832424254376859035781611314321762999636700868589848014035316728606447340262884619105570069071421677660335598417120585119449420352012310165321087842005960163842182746729046621848349250175003029807230981311185452340137358897653236097808221052268742470540703796593517733515880672449721462342213526565237146085892059257824838052641459797188035238775985264309606486066631900217189561166615589737752314102591404225619519737605670472661423192600507705857373462402885980139748551904802148655916401907741526139194042431805401405547202991880196156660693093357651289261176449379486558236528299729596376640927970356453602671543874397253329052785872529822084533702685704654564416913256090891099939619386740756389484379107889884222181724484211007770091069654060921315445190965063255040138084942085307459411207496512381394073154366932289842903433527353282278659811199406559158486748589944415352167667066529550093693109363176886045266109871622791848004106086296222187195001812976573216546928963882893864121204132604793705329134782051373184557644939110593137544617387170256127857698338776120383957387063513485695425536620220535744588381463315600537106307477122802962355665810789068097286626462775947708506229167556453983138201698263473195987412042039115941581091370200239871174007738454025354722056961170978799325836225370501145065540477944129569616225355201379364318172685731829181057207747574170612552633261025639259314501811014062999962112947327397007977235576199940936419114358733273327614178113582459840258496824347999303576818154859835736279166657120491362140006610810989350602264110038148033368530565536254154000328915578093588012799581233269765763777262642622153505776084276356478915236228228376355686345730716159674750995834885176091181577845133282461097973061833185155239246167927434416879020522888420493700632866603512289116943174525478965717615856255233836185460344705395525025316884169828739691687337434136764725735389132015825930370507821026478097671123866075012837807091372888657211009126262292532485272897393428818138797847054233895370181187538134302573850895368454423908130115588426322784054243835105685855955260003477764107557211148091522741078778124003976333330383157252786014159874937748726393902637983048145076832803704956839131959812914781202520366851041952242431535714997111250163932306422675726732807218204380683473971928229270539157299341051667872308220581394499394092963702895032096193072029816289010861467410456248725255372672423424552485298710931446101462317977831720782813327232515154593865909654289559767944464639138020668963645146487107333658804293553954215202877418035324822139970047154687267076606423743924864413901849852550255627953396164109949599368387339870127157191104550718265811350191233365038037449431817500831698279081122118348416116368829044324509031233513100965756447291164195425024396617033010482876467257856517385111790960361178762115517860151580731752958787279459276081834844782084725026344617293645497708313598689959829009847403462417236530940874446142478432725836885723537743134637880272706441951716023459749261358746339766582413228819587530794469097356521892325701454670031924211500755134459613548432583763505273543117958456769837383562590974897531074783875537184582428153818094633097513069454902757706954767479987313635254820275872486610757812178583276806717197821631958467020514741570336482470771574923389016240760265633051639160678822015495241187832920585392428216826598720914489455770409259232743113485306177747024392337235766158579279661629893964767226326981146259377363499808179588282999375176458116417184523525687084356493376512304256677489964681127001139822193942584837066412329674893688023082455869626409646466082132312211876301577842796266100895748231659802345370027948679270338934859242856080033402738792945770016173267995559620872335218369059019971497540718209365022790529506156776391963896284394291309316081904246903163537755852769770710911697074264565316936296530135003537907305026472707461501628751389212247799683474958695244321440571841127435339613319997144070759519254599496474880785730839264948144375423923521842119350838730965859908583153955520878178382942945165114060660205607310159697998506712591717918780708052733337992727561863858421753480131863595852995582053416535904228347581369486117808587612083053055560284543441613264717634615934364742261164020291540199441186308283997962779365728773513568614713644669329461858445325109290227796888241718364354671378342049536143956056811729225817825707473001672815758580191002126503555535730641750942067104158225819720136432496645243411561962384908276333492133572068778655870057667730313185120281853143145374081785775742866537537078110456103468951507546358204381012947840734484117455925659679443484620370545002075863767658397573862061496683432957064500147032268992929013445483822037798250345221799773999761373659540109174151219694057016927113235593033172064626071213865646814771507630415922004206796318450698601309000358589549733173344943805593634669043861644789540692126786141692265910070300641369709235843342990363003684182254455142179607190072284195740700383163199334955765597525568666850290312196454378571259196428321679621625518694742441753500589895069638503179484616537082035575392643430785316700333611290508472169275839828383070312381244253368781702339903370675909591037508160794923310333011822971591936495191903560923916094014169478546922865241318344078395427932933435010317784240987931866064812510359181252835507337120522494690189706202830466318328085178473941544867988060765058687223676381860094270619501796513984097772404022330219496542618071991598322738303298616557743522515190444946789195508808610909085789550409229479379978711840494264023446040550723832244519166988815671581282058623743806825618673441402464508459715946414626902110268051177450070210469674666599850218844850067305695599363709239736580553499167489774520379807867181077911917408076437502190988915606258070974031748735255252578152319521918573614737784716725675010019662077460683952870007933668533724069187800490429034692761475850999741374457867430878328655031357519159914771068266734361368543181207949712978363855694921154467932274209938248749103398899039108019258930697119193045590451903005214055239954738747527496025177231089419463382815550734109674335995320405121456897205708681066422310281583504527557757432994732890685196102927090259710736305373838754100856758786452024841676295139518529172867678286426328595703071667627753029901837675729885138317134440086334565514903617302515696900732598631243208325686940476685114293835998366894094814164552011447664708510760898865467146734242359948339920121784063788456056561252044243082109283766335871247124696206818234305460407795827327826180588984818154992309902246781415144059424049261983807525465452256486186500946035082793860616827520677730536600497795810325160438490957709350474301607779571377789323466980920105518299685889660868888850089232789113887400688583597858788230975476940561156904061501234887627222227391354146842979579165981192598256141047681011466257209043984874373122450441730826074573947551316360020260783365727703632295171674906880928106669762160782893545203313533588059895345947150076492007186410288860471505809889519158988518847068155149707459567289534369361918986772270520153874613648389432329540312243040308961123917085101499346221749033764418594534986183625410800082339700608725437353817569606007720337233208683503506374151584490005119536977534816030298853592764820285946566576609963028479684445878939125564342259829300446725318441753827334584075829365180061587872388421273667097508563619752975053072417165629167183059394492956676242109089422304071774723415654179540289037618308983602666932598421280444949300770327512144041980480052095640861210730140034680799972917769517837000599960697918340868355960228900700075027596478000691865609101711112804302499718741338762266202035878996314706310895504625383928449234648928832196292710694699308167475508700694929400604304108374160644624978714633339420809629355165580902366152762196309693250867965665667128022826068949013210579152559194377261715187791912756092310419856640041292019327109896376663569038939545515083625844663047683879195023935968345122332713109651349085606959721367785935181244710023691560406558429825261655036324670638603658345012379610127359986356893034863719808912289400009594317879034180625126372957368749153457602638714804257496313699324203018030123252599013218881620952700272155186015260632179696722096609233697174800104919178116604640968042897834557499881432658354572696533640731239309766501711846615736227477523971006921157078042801404600230596126333053811986247306938388679506651149559941586886411732340099965942915435913144411813706608988543029998150041561488882459857709136389969933602004562764076184953301190303494693854845392942647066197494608289370482545411476040126302987853913383509919388609297258445345769429199676865427776926129787802966728319581225094379436801093282544200674186101519648858559145974766282804582385059113264795310250357209115245055937284155470860457476866245666169146447014092920176866097824740160670100158356180542851198003641222239956158251044211088755994717510387007532138343828769091606893145753892354977290955486105237781450830210290811756562945917348690577749552692695471680390961981710805700042795911999655213128058103036841343074877735237045424350693210202353710912502159184046837026313325798138592439296261140584300402912283433835641432875655730683608895506928287043932206983924777328522041834274247797388693805188683475860478593610187820977844643520735933792844864432028712836909796623622846112951846960585849039288555295994729285986953890884903953448273693912222717153518968767024991615293522536230455216816880140978700279469051634088468709166586305305186900179683160889344567203988519933787283638580482720845048576756617498795855803466464880985873019606739597630979675385532517561546304096482601137494578936327806531284206547484026859512512397375486539149490328468945604025171400725822429524798828852057622094998852774333458687649468191243537525096254229479436302746105875639285429922643020806843948023432455411246147113433931442661371922731761707727296967873861295188223579412266308414978228651591154990312550664550681750946432455882469846991682615197538762078606197906378372400926222530902653263212871498771161686870663571561699022845868982744920068186665790126389514549727672092253156800825275970014752622740610770770370902312823096881409778305458610534744953297341077165003450093470298136787826024150696536646673758777887993435379597034154068768553688925930532140270039855389078100991178037023850189579814901867708916331692847402330526814208678028251429432820377688379776702055195072685534032489447814234833466718756538730220732834862627151305897431317239764556063861658911438314412758459596597276862590630883236166256176817090095743071963588068437359790232899791346878481857869508579107270011534497180438684350924944445314771561330083811125225161001958139378872461851450808072349626551324700242055748770740784070527014576611500289852216286744860581948713686610430274659132433209935228720570581632735560148585847991898730491275629536896057254172064918435744875735404172484193052826015455761092613097663311735107260997930290998174416475502462204244097612709597769132959617557917897476124662686626999999458158360100941585242039668005120839285395406305690372817249184966965104186161210827764427178153408691001768306412688054030164786265283138645926914667288573740440400572102483106709021333012743717972626415372619327517684948263206908220623250220050411083874170568511534553136439576178519404108064586280669336864105278448705001171064043021925877544490788924424426241136480706646241512786096360685079277133272953364370261935349567426890242539099151115460229261347810074900977542910936992083338846552846972307357198994009414881656616259738150843330654065056608254948508095376780381776454745117583207197623986433781715152750362841709506667023679597554044679984256714386093588107072656877880493254057018022507724859722600106790244743985948000814630727126789805243241407209695187240915190605249206315055101008878189189749110966706392062714173211790150271465917037035317839152220245112144419486070089092441324305418237866193598452027575644024729093119640759873567555820008734687786646430200347786344683121201013158538048560791967270437499550914102306581135956694431287021529330671638264515680003480601333992485526147565632358784719624601795590886933901060182349385455708387218129726316234635279673027837667521093670841838717965769477491583090197454018190662984364950566046424825673357625731759610514890152798136348511128389135705874669872434160874480226494599579455794628942004575591017661791210589518167586386427502628793010108837389492232373587072357612173925487969021943997563269157189862311715878900787629056197107461348028568817142631242843999661125365499475413967020001937107893953288372937447888815559746674188968578462257878076250108171602487572673581744964904410756691705642388352933418491870617145810721745662991501231947571264047741866461703154873069808951915960443019312813146096062327264251934286918471513146112285371491081129844512579979631538723816562869608020607481223356501484611070904637850478019945859803268436518878105579079414769845204537001263946824421381058247544171577397400765568029283536541673972554745044035626298251463205394949508284298592013860314896475650127072066568138582369078286792291330108949154419866864334934053009393846608873439828936213796364288954808564253233149598342080235123980858146253178212077278635600402784433280984643596292688074145576524497755176410581003244603601880832978847040029595912033934370803410690172279408461815490828019049038217914192073579694860299957220453670850934258513140616019265370045837065491381683807453447669064198791706135264118062173802672978146636066994945826832586091164483459797567178094076789950383745011493762286676594074362757683617877525176629371796797501394697330692905101103847297727084764426370954673226439650609118773087659203719972744661158685760186369976532406098517932555073872903923012970361717651226177229892459778324566102505129438662931404722055436560346218431319191821865947591591708820552353262745448410923949439285157871949299404752633200722784319277144014772516272912158012769567576557067731314766812947663973110246239974889701157970084478600721667327368561569678092881495157543460382253218518395753510249342489894664193557478181084191972944134670413572958021287899700586905455612771181692277264085432566032981827016179980582393911015787283688572656621060681153533967540919156095355730510225343072819066481531178169717631692337384154761197050679926296403296028010909840895320801707465660110638733289377374383796369860138590818665001741899297817339028631462659995310777776519192921615729120568294554571743665133038052454281013909818189305158092255238120829561169281605785103245444689791550056840753735541625636530422081499792459488103937224918727267158696315423407876367896699726407175966276608289539689722554336818240332238112259833380065743043712230404458762172615649351623259691710273035785369179493443071848456925620381870286908935034328307139508825271835776454742456247212473313114376949839887238715240037367272788742879984313071561382853266879926442918428832016707612844448425673541226482732280231165489339750288012355272666386626234701756102302505956814137207671098503622005412268319059759665074363934125603660840130914478460107340380044514879275755200413671190310710315370065639763471755088936907138752239211742990062709419223889780863529409663878596567094911528681299089444224009499681552717526741047259190227037834889927088312581530105832339750761629066172978332509362335411007310656953671788221196610053412194400238811021472803718420651382993535859444035021069060770844977462154632822256184507964313721127425273741823581561665677874570753560109892884452120990938992221072496850832234741870950355397826269032745576768713691687026416734971502025714800319827409487635055251721618749059113618502982295828989225548240426889824761363475558710653437893640473534774212613305376863218844825763602722770215646193292163319440942809528053253797478097829273609911255927305206772539928782973292099607473229217923684038146798021115368933328168550045980568132874069849851860441183896937426290953017241371148134773557093250838152288524330243578134332891540671201186034281042115680961299268059708429637791397044533834604003472758221085605378854292620437406583286942177521589531087056029832119289162540785981614278188825957784227391856778391504244621231872062591432215838896003938048896927318024395715480661419616427885064581207991850514267203074385251566860657529405135463674972282727850936205772030841001112541132722049213927049098209440110747769281427678210162723574206340888764123675666141530822586815191037456168672447194243386990919186274797718729093668038802465395954285965580019692571642733927920315817202329381928180058635431297770554967340476620092189961347282255668398777642348917297337968628025304932362623264402219990236790971860360738640185093766120041548989028635688390154613677123826634896172131579478709610268105909461249229636713544344079000777213668779495922330503354568541338633136210392662732703502059340966348865033953547503248700529884230619307882924042845725578387457844852650340870268685229188517470056196660248027201678165732431010946958558268216824369000608015085111717508339175944534595146415942696028311153865739055278664505567915302275204830685200357944543523171363768496795582935827901063170603680709209252334200158165876756083878800438568133591061103657069681601997441771243992664918787380723342838580684661446794790344912284439622265456972136316341797744720882895343726131270199774078151886287500548993379068995526853026618805582063787943735498792484070235659531661867737814970712278473798029451490633057172256348809829287300485940476019461938479740814441774795472113686823970639092747975746624499406408627021705754419816689016435020119090477050613809284509564323336320462177563609507658320600148167290042147621970584480324364057074004277806183327297415583883755746418850886666846454092412157006715124402636916097369782928330625216312149548726902072402286509868902858654498152024682249994794591843478188549943862127784093998193709569093725859014695149362211707535467529522130855307067276922759658499817343998282625618905614484530931857767239135427722008609008825700319126392075656063122620153432418615013492797572223620139497770632299454447920549048305863167159156613761123400001246214046869074523849041083946499363497570215764794666990354075262941906598228709734482151404951518534155125423241486887194930326680399286277977496773637523004257429573885132506545702946645667075648208424873503321407232413086831387388607920598848021675916935281900588060301685084551926747027958443454162893163040405657533326777007981583718331458050473298357429006935324983132507424445337760190925532773269555191831466302132773963434388833277606143349443431888412740370883058625151295251807782031033968316765344643947750156875735821041469566715766105377784287843646580505205486201493525418595606192127730327586785578962589552382542147256742883753674057816949133451045744969869002300718489403687150893848615176298487763533508314658853080633808167502175646372347885551301802198490715727745344775460122465146949279574204005328754926866390177827796688833649307537484825546940380170344967620219120086985040021374808147681576072634663341102836456077547011545911244741804487388522274260899417678399019233586692248434686943311197510748770684951218486415276659693576088995687198677122073378932662076500640973103046902462519815335920485077238352060276669588938438586840035390951332533169276588555591219076853987133970447072075967383262399247059384891776174304395190364103532448425836973636786175986732588113578679418276779910099211439658358594513504507901817682906749633724452867541171102027073589447362244681941910023697905625761201947052819565336376086100343725182772659364870202862157632749647125238945201453202940840106032334337736523078589933695281953465928949870753770817482725591352713868124031500588644234587102164441949995246088691066902872726293933620041556582124074925113338002846749753476055009125697300533339477134350787410445148804659775517967529719512403005572202421613658761503760446989759437236957828605329216843003241129614430781279701556152196385146884900558447704740578469214994034790573551408256615389190265182249477882605440590792362316972665462055118789299042746686232005193389154859045896133128266460151327815315855284546422627221026478935287408574483521536826719069830029460005270755476934004863730329525916911890713463466905069591308495569277653790176464040026414146813093720482728414218501614745366721885813249380565760126139976725746189911028702838822303284358918564065833071249346552754732016727539211737749465305142068731905782002413121820258337100858074763631385302021712657499561284891001318613240959339202580580419077815320556701167470375661315171985177342573595674928082619691704927056660568840272873777214939281983490038279251695512463291547049917002311711567149256403886508895986122420878216897373615028872518580514795111422818985221555816370310695055403140948229881136815246460037652433833164023215904980225605158397861783341357427000390215734757115151502789936273644206957209650818194848961679355604937849093503989043386242590243337496291995302222791879478500188333176639244125292571519181519253157533910864925836115515543220213786380325162254035787449918999845200324391169623266960945059541585879644319894199187405477031744977848121654261904691302195691441578182174216355181099967834219290077538543437737099675202463071395012832528884368941252891708242704697775043342778955111135386780435607024098091419575123707711070848721255781855615820307632682268937411634642331067158526475761338876465090011757658796706645040524518294207399617457787474460675573768283546854580667520906282044647600441624633759352828122919458131849443921512451231561446044555309356548905680560921270045426830006888515392852055517107577034405721029418363842130364997843544393091220577551017411986444748701949668625929682336084264170887288539557639806554215726288873156004278064143440651530179477454384896042239353736562086397116544220855221939814962898695500252248085957291114138887938969267014757372987653194891009339588606336454582385188092386022814973352101874556413136896252879463540550806968733235018173851771297548118617637818553030591880029356703197741943031645829074011449953322522935166509353429686456620741219422215893003590817481618457548738121062057655161910142306811822938519522613421763746442345202407007308530725558465913045430736528866396033872245594329765264051711124882897610233147306265156053722272653345067979751062181926882700593806710396745010143806308818391942412600583075727624632209490080121159262191434099333252826710976448541292501923335884017222630218286029065245006178855373323435828165975779126348704429868976362963734466127739620094919731182157032944112952445076123656042079691092320648725558846073813153621389046021291033339872223077995342189328723361773405469364032641359025005330277269626197924463662401211432202943649203449013035811812931558384483852374475759402283005753520443573815156037999086669190032455556778743824430491573831238979762074218682372676218612691263566606430715292503440491717102595783664550203027516682512420773647938616564785902664661102175111720634071316814965908413672642098072494738438369837833904108199862118704525364057267662134807647888775521647217105496621341303327099522743222990335930502786259624116253608397812494093379507093614760319475739708555706300320769121401451298005612667868829745081943187974173884441651098996462530551709314119353106571469324670272527613457802488101941126376392598476188205034969264055472312955863907729907881806914156784355530620515742333588192183743929172915040779136643547354581488934748095002200125936417262109403459446771512499825855747744984741855317151590797643857883514347309298966228866579170284247758016522907406280288340127893291596552564883950799773837464228724340475921830318337899539746382142590661692828364097509010575456186995927038947794725091944513377961214204390818974262320661873595067745189924577265806462423130757354709764353147849184424633279176286736081105225799256610766586284487788248557299091925070056528840781881975277473903046296057000947805873170893121225766894913896600723231746554543308756203905692162444241773365901375071421930041206623680403692847344164981647299377809994213957378965181328477411275589177452317199616021674700715756864405219298477705339491292209235081997831981225075825186034840426687915333098224699516237086286681896130305395126108388985280581281672282698938028250499137981096587335352084755438555819075255923535833561122557698643390716064570719808654703610437919718027819220560943608259923830546736429206994115519330068673472884592016385894010260392629503720542012419232805882882943170306395730613319439629512538993270591564367003457517277762882649220878766986578017679466151072108232133480009802353611518632208541871078662154773926161300470962887620697715051518276387766672695966823729106380712518806372384350647116059995989384181721397437149375273484846838078094752757946688069426600008061761656189161964496153591857965226775167007978043713657128369041223812663886983264840629762512559193139364014866779985264931987134204965902781550355111131822967320499979443400464780211338218437481331953258388227002504803177542559417491807525692304743871823178227450408463932817524415031665622878893763029739449549985001777546869958027643915693500672934788865547715248528033942157425887508825691824124213751538402176769362332603839114313028032961843435556137278699493120289632674400364619405902256730105791003164085945060342403806840097842557708180641772405137665246448201894000783852975456019071628564206743174792440960534962115580089733157674771754239446723759783206172269532262197255259979715233061679122771997315706874607456713669770694955015308271847450899818934357952220224840344040274278643593940414590437038924486864603638908128215348331163256269142775282319217981869747849900734789573434754743717110082128501858051096528201086256248552213555716775809994670792981262228290772131234107989803636492010511921660110623624302807009951626486715266007503272264120857572729357283043900275211321342887281176691815828734360614562016922228297738814967087495868108081431899139877666920198548766193386878942519290407269528895938116721894423432462645952757934475075350076008766896408693758169483418349941854996975058437139507026318566498771400280937078186014726007100909223288049935779724705375614715187596671899288668609863626273422196485500588066830594718881577809235114092103380099944419411234686644936584983507823384531554968760014975195748671496042455199454970534659625965052147273294649691175022333475324279234145869949346234565076468461809114436160540463595362200665864785580554825559736936895274458553476414781974646231897733052075832206209681540143286407638864592899756587264607565749380015096597124592507184490438349620536689179530764540047983858978667255486402687872396753306439738167348847403347252075392341486978127944277565515792506134157098941101123181964338625259126241387955691666985289562248428403663118541356545092731165208772248941958352056239126479010222316719719767778106073430385059254032450461145047476868437652340614304345908825792188822768014375571066378557972539755968296116194112813017982695379110497408169585668972044835757263629655924406818746408635035207544321416389667338436909699705757412733861277293717873636102749946226420184704572415106242482196486531810350575543185040455063525287896964843784052991186274742285002637343703606600120370138651208560851124588824545853955015584340252659878958199135913119744333063114623847809916622926187381301743929150037787783737691817618273631166989531296654508347614401090182715019436882995398169270289383400906712606426172528162222866974619427962370666230743835923958245108156297905779263575581348537464820888422152380400238545509500308855470194625030768952721082844190794917675441441168811529903721484340256151829844352888892881576602988222848251031286495867605563128100304599448270570438669260659564873868187887525001972252392462517325372151166572049176257861081982899334377564552335353947524849499000584675580156053842305177044522001573818450620642224687195419181960733667418638161836089457722698852961198770668833635254799462994621798808613011841430538472598646007427050174778372328187107740898739230412841331282236421644464622542777393358959658727881309468931293311292266310578589011836585501183327535932494907758649001188393468509685422470832510644694438400335025683581490227338769026247631015277853304559740456125031106510042411418725200553740296427391697209702277409761312564306591044312071343135587745470004404623047604320439588538214290092275165229327304777307654702927817390284238261808846841131399447269146204828968328470565702839971324293320119447142630358753520408342900865501913085867748352105734102377132302978582312761059589887877841905848832875798366438843345206960440374711600375167073962914407161147571713403190692613730383131007692614154575529661680113534943847277004985906604725197750005418539662848170299940019352893107116620122131379935636802025699135799433629925555979433017266278618240933663060512855610200665725809521178397491738385491160885184465070983574120287632986371551536395161144763782668474327089565162635356833914457385017298002980601712869798200789837890809972289401625677826619974665588289540513645000624068503946045547775247160330333585945353395062559819590218837752841924120870876327669623745333708123485554546435044247255196621973572135523224736713676064005858055316844020283447504273446308149371430005258577607509389892911480272628095163074500155078145082097253988055213952480397729119528484241507629193768119077948071828279699168245302089945933669560731134803354981854585246665373577283839892909761398798106290792292916115446786478802841694722991923738339860468435798399675609389867097616343973837336769233740904892979406082050411959119536622712710986471103050026181437085690406140371287641300533769760143671310544214683719203726687713269868761408571748712610334176962655053765968049586112972789213259678381029738320151064225144808405598257721959868904790509019078616357353932991256167937763622787571428368751038031323039333632749199393122829320218199903272709264944496843754681120089848556723086957757538580879672728157093910038066789099693285317440801852744730920822830079959193555795488445755676475816216622381278036363486747961012982552615971876127061083631077045183236705201617257567804189055722108865857291231575479142957882706969981669634049399749081926900209673986288417342862352015360060306783833325474726615957301817851930764523318976612708419190362209055081597988552305432298065383943307977412691202317755384872861926515655711524475963631289097774049137349685502981347314575792589585975073533023207197743633299474536524470124153004436253452292378575249228694195817603068537584770461146971252688257243762719311940631487776449699545355132853056470937846336455699207122400101475008931139796170251213416973179922854474721638658717847260424706569531385431277459224965210079951957715974719321475243513805724674711019431759693801141972547289830778368205874168152775752668731280083860191466312924934059204604002784988302861086413854422663321878585907484402094454968645995112699569370863723598467711093491798364239216322685829460743471442741041934467816205043815206314886053661313541728385017603312017075044080256331887524011128715997616689432016825083716711838455665859501441621290906508900480835589371580681572923541944559695117985894066715748238297598268396865020332660645810367799615528811016428749935015093400572605843377023508577357802127824163826844196324568830151037131242994783649227092382141292202015184442562897219009521841572831206459142099686981990266529690889522032174505048250992179660578307533677712829618996442210712718900864723627252093237272967643339652305151416091539139784987494465557570537759002396891046106439212519886412484241664129488419635278604944424295949634672982530754563276122609335436378896629790982016701164742800463757326378134710455900485395903250863099320297387579996542489377210607356134794320801894837029572139280269108639213168482804262699577896213676216322532448035831662183510826501819259855737379308562417034106700870549691836150010266927807340766993970120150774298633716192847394725989415749988105969247383665515670945078760511196019122924869780942135762056159128591848420850598077628021296182026309917006549269252726247958126716680654300817864725633524399835520188417056564660537859222337150644495932642575263774041304246902265149209946356674463090347622051612041999141052903162208755844472070787255131029850634402563032764046907451819264423411835868214282828230762912999752756927814947868167388666770797202535046200225310163315261460971016817948799539110382722325137037227199240534491216887193087741090863205135238512421619747198769003700392804015698682209280491153223451499063734069293628249597199066310506656807068316143796204797963444251481985899972128273992491212086734393850625220027513093252781453130998663695632766171823703145089802459385461437408376500441397845376965808103415876247822215881341896112192370635344431705487312699074083381638416060042886359438879791480477335811461154277802822246708432886648437971654605517195570961891398091605169753545789374522267254595757152974990868852823329701021385517227262985006276075318974132583550118111581176094496262915360359271881057384686248940577227157407135638149554894780539726730084114182538746842389032894507084897433281176460440585553041054984520396332148860582852394077768163060415484060640891584526571336147448955081765661195843207771133158728372269430648194405764306528570943626130820331261701235323837806214065137900820295337390520895810628157069649492902289115722840657524282737765696915318367093479764211274996623386584631742597271900900810408060032624193305719583868699808653160860568570800637050470072797313622883018598155086504753031991248718907650289832252282626334083253528536137958022327437861883796659309865917827924263418260445384993193513025833855533476585029518325013022665552482994811231485778893121277889128540802139726393205366917851211725896987662503794976798997172013387300576242139970601277266378158936048693635225894754543819514710764227075074761641537890697985932548938375673289101625038367973622678562339324855569640723667169352224997839074147182504220637966118112597734257206859225976090839197294268225483872190095513133660040736936714003503933996691581121360562220675780610597680528830301257117046175826241548271482878844467697761669209114686835817055469448826730767320816875841528581795274895765161706541279202190558942625094230670214148908487209834308893466774743853758316192985859763503233343102166125736232787052945247888096775943978365332868775176445148370088627910826161561240043529908394376095440895701372618187763370109740249111969940473152734132135744650494713781220254760483865738201485484129952802376363906694282893360513949294433814560568838346134233915978793056533076581502133118010522677572495632131590121985412965895170757263603946944633242872740877587511023978779855950134490830979734437029681657282935047885760488616334412609531184733947067296996506457412660929151618107476806758365387895548680170614188136232517291058333866126973945614799867078285449125751222595602771413554003365107743360393636254872621480272891318006268408981815592139732647616905665217632501071434258972876893859059016162038479369446080808872846155324500633948351750145431781544350699271282536264936236407571708328827532157363446099240168273582539153611820662581860841478104453360393197657757284533222162957891901929515345505185883353918327010650844265544371047550921396996418788999925527938761891042779845742582359542220961380088670004546230481739416233560343005637262031904989750693029591662489325083998356155366373845574412690031190340372397739887663028184301265466916099356878639918172677463334570573108126508833500227853254569987560084139412575345081664631477012846188146276469597436881679857232373188998725306149621744722551467212124773353673939392307348513602692901049260555024721103022335886765528878194912341140067729478398085100343880996418070069310864456911276361577797155506416885227111803728275289863469742950432968730144719860279669325859711264584273327759455154418003648322306706177891737997154738999710429115106082353127110642839523307353455699198624276401525378934254958456152562859127386407028684805836031341557219828711213375917549295393690914544346616808817499499071104008509218864933628160582946623608307583651426494455692216615954675951653545650850960196977489119629451480991104379337531162029503347516344439835301197338862863327347883337530675826194714218895238564933275376242596777886579958430073839143396030544172073438697133293836389972130084593807550924951872353128792862962389049496047384548382517476720239616006995950155695589130104565714338874017541631959369836835081458563922838378070894226628411741436151608465558567212567521764026410397190770421598525421968252788369885951491627495256410264902877803288681449245059802475672476049925590621525299911168580175812283366240174708830208651552894754219646328323059240049828213865248993423878726011361756647258010147680867562707610500762184772499529492525897942073087280368401844889435405471699091595598236385363998679621050245217601152449130426337842422257614083711325389730888117415450842780925341473282153133004171344266957960177033246504260733073500343600885961361316234988803450035263467383632428949214731452487576377880129139512205320342437825852773537586128535978482235283928079641566390096090750897958332891636655133083179022231358649031362335244208312489868512787888855764480876902933191132694687029218071334151515764021809428607639962269069534656937742431626908622163860107695169495083879663438207097000120452721891953269933107540748575153607060874326308835851225799152011907139582786916812593488344226019675326456590940314945408551031710062320482315112222469277869101284778368587107071107260887126800359646795362143936439286084886665236786268609334625492799730858858829248805118876968639937529989609473580735850933716372786014479552925439466720038514398740760950391574828032225530039383509923994983536424156298606879205821244544211020361001245182652877149230058889989992406696676462446743301753354638671077695929925644594147205025530815146415938584143175817878696682943203275989388077036837516012865622483758226466348615530736945194527452690142769538888878699985429642028972987993584012193990493593154298404875906817518073556589339595370280760525713902473714644511960256977836879734187496301911620990156508119712422040831569894524381821544479032599530086454588545351608594593253097714316967219514142262905863813309384026381123039046136830280948501939745242216647413781248060597161279872792823197766460985549987677776758991720857768807531111186736837215366976996774733119816082580896093842978826702694696508350804045592908114959640353548604815213292354963819702057853345022803581481145079983183528555254972818014027658935557866255682672191094166126493398389078522108807732392499309113518130457796519453440453498584390957151389617148504607838950829577715963328787904442191817670564902975604819837308781600284400296043682957658479229550935872633197410330907684435012815115214533950788178406015427134672352067728386511431652959312219054176499062701012811614726121708122612045788155288642475648199034561722132821686382120477249511093783222458920964957280890819329783185103072115930852771608246306190467452944961223774417644059405370322060035658722760653112209359302534436284743860464932223716703350258844471914207916888439661045843800001691576045119969838204417583800926692359482984896773813781809976013489144957851658726658043655363731423554705477644262435561366021915937866609089676854798262060468746691711810027356131635858307328667288823007127081105287746695484339963650100142795973413816113262905670638085598733565685803186138689481025627651228211886853059132237811756425380870118616820394522405884568276125958912354502433137085997833725911001784082883674377949516116040281906213950113470426568674752639115635377491347271241984503130283581454564515193009689012377690691055852669824942383328998918534154144649944295948047826098630690668661268471987601427992966820456437142596055843042816248333210840693091124303180755522068900634105149948308969302172456156969423942565382621875341209408909242138549101906321739934529096984933487582885303592089121119040675410275589072064681438640931595288208694772997257607766857257874391843126353610395816206955857123901617140144332602740247482455703300061521691920282217606233637778325111718601664253771960389428545444193263217225722918999148057917966473912828849446718180899369525312445974284805195384126973608793445501470477292790523221255890577464357233479976432865211131575269547611380734712856196174496634003982296111732458850099431468595624525444382972310998007268680941600054386747398775875922904882143636529350394108385830874011444065852028855887608330921095108129202546402846611688366660182982296157741154092356438609621614340431136939219223520501934093476430925795646772659012913432101237590751146455254736532063743253651155896652972179864533904613190537116557267655378008905230068174930668602567712547782536875840606078635144058202184385599809483326472682782803446684051570054377666389815847737988425288329366079106603290651973765154153048748446887370864172070971133192070704951651862930292726030840518478637939952516693945745306107295759409967936472409894276222718407232860969574911272498544454935209291367833820508046745558033688183047577675965506076764552565998680402892064314947522535043552152585608417069606251901001340155138310657548785245139213712403296244363079685412887120594290598600138830416547370525448082978820088177566543553182088623908415781291793676407232519721389077813727367202842779920160431871843588978672640313050188808432278649246495341999512437864572174703870777076912725608700151749805446117415220683750467902425856143816018120146717435429041888899330810631906046880687687543701403795381112754319238081256478242422518391268039938514734998756664421111528501045442891504829679946478552077095704861285282669353473143376408875343227218794377149353409311608533665480687535971086724498304615856972419329611171676502708600979742302916012038749405516224503072224686126163113565410955504921037050625121616331232071960320111058485224387673126487167805975716930157799426964458071127536439321421219473265416686877487477025815535467330194176700666409812116110707259994382699832812028463106622912721478376780112071909269429351177729737376072122993752573785708171276502192974919011371136653318536697941847233962771826186912618822303904978175095722761220907769609670098697759307327445547361426270552955835690047853862649691372682812099232628735526804355303676317926947197156506943033020306272690447138708187422372056730068913203629572171268871602993988834720285097706045448136479451299148815897199256942227150094942587543710208205899720582078036650024993591562671706853873426762500352626534868447689770205155999709700798874590122250326749313059384824029783626407132627210051574997065169762066653705287048490142689948862232394122532588279899038387418251441792005312142760720771682590549211565008450806342904633564183488612337731812133596177920734201267321158798989872626374725708694911187359627927490749875936231574436000047742376731873394205817660310730991453631512344067741567659897351029450461732987790980152707708253571023425456436728762464180022505409124011805039004357141332254535768821359914836386102338761156229929500724353230530721728989792245669160768144137173577217960815061713955346845192707872641565525601558445661676405613505493481756413415764277115059119043037876885833625357729917170162519595424970954395575901865392677574688942111501832131545233026021706297131065058346713535631726089698192945998648522304305416114002080135321559891547468753046888874657742914272542283020948822498962319345180710115497211636722883084495996567234496885402104763908303589942380625069053698844051136174061773113120331622207323267965176554767394988320254859078905918652117198795254028165451959262338953266171250665246533801696182819445412446280683637164103103240183318406600918003967092241926436084125009016726855162648522515729636284626872766969766207160791187009525837798907926726880677128379876013437509418228073221282518443116363808335041163430436531031115151470976554847060067612990122268219363209609150096513412720677781429662641682032469234494694906290669783899720245624576873314578334312285706779763750583515177007030049545376011034545920288128236425674388867813140137360677648776070239238395646982810023272838008710585738557683703541441872416577343637591114088615618809908449751393363710141429485267013947485753985882009657686966744733276565038903435536864268555612434390390606654527209166154974798994133347214010392206106222216755728212640056394764938693358487519392093349387992446941435218138923736264606553017228434843993109914131473343185885636494661127099802124274683904157040189909879491845111974278328861922845366950054901295772955370989983755568023943313295422009045701158572320660716414381826378054879511191756485930918977768620974024224861581402256606038659837178533591791586871578930334734276703144052178733111884075184777649080922852475500877504166930810126431883031192162869951269062262768121181500080205759704517721994676780899749321229138811413979847575659038179741606423666563441487187254539946293676251869414440851967481463897754685415083546237940776025970281100159262558266168206261765547269148264372690316569213832235100544336306129926064636473054716867278614112556343487677920033766972405636731950011472930947408735835728538272293935067311106303558496852009068262337810942619983890100780170222747071316031720987227931663269153555515642325811591073758359353039931952937260540760547434942146065918623669439319102793053631903278779824115787266708079706307077279149857020778153163545865784637483873244837131972253640103886473539327881811427948233792423466265377389462631661535783583291249376756875424128590133169927170751056035941940156785495441524081014208686281990012652762962845131204793142928842167144166210378559911432321295821258482698640201578473700510017220721478135474083689555973662638314963845118035335994083897517524577687337923471984519275184196282513343185152155035524596387388997949220209454668141531278192586121285413527609792077813746728469576456749089148228109743207143645421516074047816135626353467412878248844159303592794164023763269505964690732808761964170128400425019969947498258071289512231357944737463035483871776807555549527630986393291185900926969728925209998976164454722154142150887478616908927570349475085644781278518504015581584306584139336089047939114785895237371498860694256941576903139555617702682786026143717668775628032676016951844021257096905053595969561807483684210656499800454812492740900503679714454556202578914110119764179760184939166096477605954435984556233695039810015482901904360312613717978252361147231534994193978862618826625284273306389614645081491199515912647445667807860601326965827213464073349504385799532086075549422567773349026246195464592897265520097711191308169847727315454488182608816648038281010376163636474689656046887008165450887608517165560225334955900331180885753574063122607885452661166634452462341319786139516830826300940395640203218939787972159689573163098390226104467624623796696660553585808853584686593362708228530928197439525574271062485748121695440015473044050379977434853782530585539781988336679727553166359548458432262432546891161795762454893834138533267951585855964108809832002236762344483914669720556514516368532707199666379629422210503788302318252286055253100341117664197433834550724005581326458665757893333168988169820743904946950548412491923026156541185894583231282339846562272148623126891761378193545915199828126407455429431216605384700157220651950612656906871687397266700426220502192531840033667794407331108861561490169556372384071120508936346892103149875025078627593577521829867076514346539635645655830053462170258738552362640064346574375912072351975548178411751118814230516801869527204921247490304521353642452090599197781019647840296231257643458371640635886541577537436737960763206313808891363866151051804624597286052397310746008036237199654171962968227792584399535393935573217037142826299389095162697500118122359923710528302269601032183706452078497663556477477609594143574765297729560527242656525955163634249673794139731383311941343676192022154778243486234706456745524354787346583083687779911273038452107689644497316609732773368615532001973808252429690475947149104469990524230328058321696053905771584260492930603805155831639964037917535837778157290143967357662249543916688708553612859064376878175035640325252994066834942238608407676769303261407014907151279675720146525282664308063892394911975482754681985382436763527997355149086154364333303389775889780213294209581162484570303658802650915130163170894763854746779068922727098188575829484182289268722076671457047622243378608985596164322058223620725715485713830036903676422237505801661561816263806763825401483276674686153116989581182926695674024094314881426185811686795193326565579313267607741405340449545573387035364215502921971459867875666323878433758351625053604166302107024482474470180257467280680943658109451240114909670175174476610418976675203937027052064102243378558546519107689103820489189084461783307319913519921405448405832002410891221531573637170279987322696412725705495596240501520451712983443628466014191203634125418777944042990189251143361842188878551599833703397317713041929424613767222330116880564153006843424590227327614698000868644141109740535984885246708633310678324574561853335332424157331290742657292483531209259165964632577149978069574952566324533012508698206598271376197031712261236027529243835158597995281751578130345863710683894432702007883073412764085373367969205342392364162615468592952492456490745990193335103803999164848697684267204050870173854487360411401299083392911000476372640825174240671410853392274294119636541452836464785139900571650159301960782128381452241353556355679371154940192280963035759566063096654882519324726237917448854478643871545855993426913631017842841598683894237918970886831980032240173313428154159073422997636732487970005956546773568786599639674877618148845306426640384044761684004567790107530229021931826144262220733400821748313515756514111458766380163235279463547361128978220438009041416166180240863315977700769333920416267487058486789042921044722511670106778117798082313658227428195322516894852317470968832991535791386856957018681423645467515969529263212430636809604263546633659415545694633017909753518229196537911608954904684014368391991495655253502185678918952707893804850203721552881699275976459937272039039473320472363649056275001653828362441470590782310394430713361912270317464497742463395953368052483961669230688384079016623333214135029012657043253648356352399746564900305385107252654928358359848176680482305841860118095838529379943439349476838440090119996582665564900476247120099312576455886282929477841781230657886781489777737749174972136462474009708514687471276155307983687544128260252799162700838485765189406494620737379491796550936144608499008275718373104321156811091802498702967526927736844106112447539903033270010832598114393874407575175267627521030152974233830222288167698922816364945567919034924712215410049036472863889593500712160931969527910639980667705738971764685426965260914593786354919852658597566426904145581787571330596502596957439584978800961772489961306906936348031803079592273639671595369568562293959666001362056553290663029027185595113050900496598742355206135920525904084222839743279091728036536439847260549187122099981622804510644138653625336922307973421524967033308510142609792782189180585877035313301618590118703356237775893290471072423606310464007636783632722219571187474265842943874035612039552954922548254708414484109061886000614995596035282890793028883909061993260522625094373625485369411218218839506013576821726799850865021176171529345691529153226709571896417367202865422635824845609971380060469477278221820591156804061189696127263694129617016801667156202897216893979505859587593074440013295847321018682559771393618493331044526875134617685659114285530561413020782775745058725242789371170447095296777126352478288759352424958298625471822067680916751813287744057352032374724902647460734405781558577645077257102638598384074376951528384784270774221252217829487103489712739411150427847436837021311540086710665445443011603263630012216588642414983905746571704707087023941200662155026661470991400780182250934788476107530587061776775249607948794649066099979225130116801254391697166641399639253577545297969307131708797308437426637266966396381941496663372801874491743145010594498115368514008512548575985042420139378394652963921384930458126285535037549983289566656539066851187941308321502014420954132471906508381337689389147075560911651353244300479686677230827274437510745777241846617048327666666902648476915547715550291977044185096367690494911916726487963600225150948638068327065693906148310320830020844244848162959229327987765471896357476797794109404847121975874117987774559774597053609116540360301935249617420672976265320608078501765461009358400657514904563250274849160006554273393563690252912842404345983349663432755619152674745918361888199489437877206084890246918983616926033375061830828863517267319299566712531753037941971088270726122217520076404523985843312806926269558422619083705069924540726259286927282082054732518028359252584892459090198295948684313821527589719838172996638792658546337907811528781103950685372343757845829818105634401816746991805504841560272391319469230176524787501395202357071589680361508842445953033212401064197713757759138202501627014720798869544485729152636079197381866672041746818176975786394171252131274116741245624561534693007455105798621500103234466316591440269192234380047044463557702809874510648016515710405852712251359415082188524086875134418773955152541359957580737895222140489997817767533100572879515601456150015108788439893318230579450026182710293958319617606117890763601305623726208655956528691254715445990245631397370443168832938718423936717284503422846586510149749564159848665871708352364480681591951283216566514430910848767357585103556677901497621635879653954058882155689790772381344491124321437992141188191707625543585245641338610541517337059120776493030786579272391308971840055046163399747774079931048057181042433184474393590607840032086735052988999731391849627984567796063623387000070278804788293568726678641394044267407962058215705258663297741162979810860649714654632824418691949152193046242282687549999449108325306954914828096370393765972840030832093092309214076813172778536829361885560133603894149189973889918962921520305501362024515669622327202302680959086042031863988031956934998805258544955194519202382290109928183554825600664237430623834751911484612809496709155447786022986764490446247364358078539004432984438772536750362073263957611810764499511571159647710717477249460056757012100602685139662609673381559191343101847420448014800220181068728746555873433357843698215466509860132469906175038552503794465264971434088917867753268270461806102413064176522345779787002528672240454588365910192810896618750736964082110982225435693223084921415011878616176155347569752552307115724348444752324471268811859966047784908941757805318015890343018437284790175338917770440219758847453407414598473191713085212116684818838986726963064969164404034637097330524079759673639565250409749458631844737450966548938753814965050682707213809985308387354191285853660421469940307062454509820870902661595900246665022199282833899350982190879980953206436722308178315008221258892155378176141626198131115683456616418082215819357888304520446900864073559127864075836428444459140460537046262822622069329376730996900142544906823048487758051147078277438137126541973026597902924016413596066659886161603629831100049252303260553987455508272847619003738214484042105749055302442773143724477413174018934299378974812567140237300578490487058691035511177111323725363574445282673550764340486606833994741650236520828229947535337124599041551272025144499825844515826242822222606885996238321139715734863435445572314061976360276758228906599051444622548754177150277183591752170267602748595923895965759428751219816885011985818479001518064592393300829089155796629031406246404071872059783468193701250209324180033265759260019497066149224231452123952044254081301114829145512793123300835390485912908326560647050720413056845837762492207046892542925556578925458967820366003003087293980677255873263537784962382142282340998643372917751664696399054288194889255049656014007127376720038777087153921161006866325177931344877082590868177324713523185176856160808348486664543436687777601320001569407225030694300831291747208119529050962548039281672243700807800516525587742440756022969461961789248757737616044381218146778885208817550018573962217625018904073989320053138635633101850208242189472834724276946980532060193803245122931729691210615748171368849996267527045450132216655092423068341625859668881429297349519798582768474080224374482617772957479700680424662729173323572159700346806938102378068290930638679524731042325346854423126738510850410749440880721061317436228286207023596295269276888208593551298103218183908547710173775735560212819574296551678676369452463498097630785514203089346132081505051073729040126135189442366639328469790100282953442381265359620539022530677651197095975705174542473818134752494740522240946250713774781317139409272314364287966669112424740605318369746192748656524819994061014611544350178363453034362953418346388755265870671001878079792318588789644983312436215474039741552181140450435533691306107855993675147167450779930663203347076110276227316906910646836484854979415387608594121366807696515533979420737844284783484547152498754007606243537844590987810969838032380798975705385781522603143351983568026025584846508435815852789518134788151156324443343837763847428533499369023406195676327495675562548907907095698264568671760997636994411037899765169151471412645295453115800081061887759479691984752615416404385906681440498585658797413266381120340409685088434705268502911693208602732023467142664592878000474143687012297073150349571845030285034664822525009539021333968653764420899361857718681970536807292333354757474922340324158789201983679510613002177064072134049736886679256847064363141071288401107149656605071112692810937029128638155661468208353776338503788485180245743598372573240665464152135758245040537353029493047479496573314234031119117954044235375719579593151499582006222956204987204907503422452468083079372166895867161212890484680554447051299613760386373726196374006002073651867876330373190558906338621372841861590873606535278325348411784555314614352734342085693180848458979873764380547630173313966891968064337863175513934400915263554525434279189795619418761731874213477350755004152875654260238916557653384707150727442167978938944789523763950828600559456261895351672240461328111009648206554573989734937595458183293442754730867895738541919966152016088769586321068092697904314752713493608777780218710500590729832053237909819237349910137055528605699389416503251028318699148529831605541140838501622179106942075445687169979121647177653473553042432137978612940295308848663580625025654639008893738792916061989289426010039082102278671714429849904035048296788991835121693090025573908666053085431130048565588235919450491119484370369055381929356659070234073361707018064551316248993980792454269228286794983236387294910203881880301941548124389229633685251930171437959018146385661290964294073449550492054820391299788034176597015632140590396288953450179027356026837694223553776544314032099122597728697175914022672729147647573674637482705237799870542690440007606375063018468032651476527831947796200598977485533584029178038042186851395891589464314311114015241808112861558293958890960462056364819330839068212091873706860849883264082062779224640747392056980621707261152023466459696636335319561382221106796001309981522448907858874861430183328351361313646774570983024109984196289537352522001891513068019569161976809625556305303691031424171808193747139322578201466835317409936605573176946551529087843853779476436231385159223524157651963898648170353609358920401941290129025101993991555974859470615667883592500720219553907309551410957655211826621506365860406856466175566909382811239860509868532898375868747762307074338671890055141905775040931904694424399491652443080629942158874548787010539969074550336799651213557479731401427308431836451044107138465583424465709702465291743733664786016870444917290720492486497621175207915353995442032180509926846068317340359454702821354588314617073583842186826949320352831205074829437200882183257573856022180391135384297074974881910588033473615684242014275817141631232608443896449934840496642865113824314466133951483638014243945553115777699261055566871847731321108067012399182396727424669638668478276735979389788528916665585937799960716642153584403191519195750585463121757964883453038197526351159972268904565898077258995600722188909329880874197209602412941655525565254405452734033597007031120107490130864904017396912544870901050330260433916534029415737210986501975417516979682680700423746016210427027376032110718212419658158508705240591960481904571412940370865912967830705703871440883781192820896319896176670453692187094653937414441734726718406637002444463434374020127346911578004111488363927763262054789877868996779004459789518343992101195856952079422153628363470616792428437131870440857160926287628478724636624245959133804283956253483692707358900777541369659453506254865473979712044408595119501147275162872459622134687705864580726957233501150127548056167946608440017508938108917941460705317676507128786373891455442691474340091677531476046737986953578145958025938448021914866406354807879672779364864463134806924979661698636367950033590935515185318453072447404717628248571831952578785808401867021367818752973379940177758078869704868084049431586185454234177456358000455802051623234207750835764422175826320186362729099156649895855217275398958525731094735908742483976588882446732128327796015933522444444710947253156672192179432869505916961461043836391666795678332177155480714989998382924954553499395823197350094737094327869092904591620566952023909736656077999609637673579792459659094628815016277879043734335310982722297677181126253353605495274027196919974434693081241481793618664919005052976079030090728892975938657738367920952705996596694905341092386161976441717916087611007304330549110853809014173412707996782063914203668066250649919258230022982077494272949598460965254369857605467292711931532348929970465529177557428123136430926587565129411923834981787889846674601933895370360201599390727704312728426704485576024649606736176107497135968750376407968905487632415117377535452777275245698490722216521134208467061805650313459046183422084659550044331084270079820572183418169784650591388360789840859650923224160447247122991302086322032192578131370008685829912252650757529531007647643495964082454346105216314946628055714030958890950031645421254243204183881310658347031760537041631467594610742374242433168118255237537597849909616391816238385185682704604925110623614398223445445441148113312152299118610563576754438892347605685238801253406108332563107502598097907130238635244881318159352087744250308502900790614718910196241027482713925100627944849999481605425187926578749194446919261745116939879725348076045003474038583614181016509120502195866562071595570725182612168657499511128936270630325375161579703712411388837850317025380379786357507964676873405902209272099230484382546316956757736236484305291130647519510886196025712895717036901342496811013727497386967965948111271951267707502205354742247235531547356612483834272889388742544608832360605779513767425204633486223180662631733660154622006359269034407366259570848108543597243372219133043864755943974842444335571283338451117370037683036320053417190698553178389263596901381621524966555328233741199535353472411486823140375580390467810375325323535288840512972526880209362571168074211556933082154213415741479324711533802784817377048724881024168761130906201513634261395078475032381694834843010752279555169215277140739497021157231372374512638622998885872935956218530324324683699764145893790645792098489921040216834843322770316992697373618401873710097658020980467672307166411231094344178286517799746651901141658401562911635682014897197242097531941923396615966772789581235364927474055158687656241576004720297718386246294052674232494529472249555416392754747802008931864475707979038753969704192971442560740929679482218904725800346679712458146117751731658179767730262881504932827897825612292609472504259089086706415908292049669645681555946104876478605116174063654879331793481858195956441860864581849987807204101977636426050597917717515515597194609060954038218867340844765727800204015738346035194207572250062859738358290035152105553851684448567280481767063936443210263065695946284281159778270541503109339301185373728908691644872847205415624384929042918346094094002036792901349781372077323435640642036107107065217294290414665882727556174500095007915595977302357794220878483319018937513299290540508680755725992220523960562729397531695996311257809350474579697142645566668383836611002350440269805911649037731407113541265174091376921849636299189021382090921802914457155067899419772458302382866343017804027431432968347090765592558289380951760754939296508584655587287565952505807500477576445831205749069732328451351204153700692317670841063711517710422383898488509519089963396153831625258545850972567206082254842046900806341638947817490412519396954593084250427824136237515495133913488839401282876568617341303258831436614519726864881052108767676258744939573102812689162019804537151801730433889364664823185238130419203560057353793195355224828818645048112917495222492607780226439671536439281398013713961864237335162787522969482264591311744357017444883293229897735421098267644064643702849461960331996847976600698005291829806593372630028808808080696642634501192078927909520487403982803602353020040141751599594668988005113821045717412257082607377879342961356169567516695367472133090824624804909149216157408131164994053500520210133787859409711259003379863424778819273533782036594525517928840966394826827620256302726892239630251588268686028109852325970671719336816621319977137182558119375052565888938127493397789272186827160716227614360406532423422240149585840958826243345348471905865672761243182900313490548701589357173998309447756190750583301802317416041046101956224952017101562891619992227858272751846453554885956060887985533860842323946899023256215208125384382553150788908318958688045063446005040023052715693406919800671778482367091643770767885655101931936237344917456118034075547317946857750765004073027942385890076406264008820448645425475030723680674083804807143403928636133399653590970297871490959664849153829244881673876102007090344607393236306149657123895663246193284744649124807666596115107629652255950196195962557998060506010420852346316548338214329893941089248451628674294251640002009367578135957057657601440799607207877918130203029836565133142305904298591276707290291131932859638864914792752124494788249725664939821718615606733998471366859661852344193432442752773172819728129425184354033747936217989658529533547007805420496499120356094711739704845975251931149077359418511066616081596115311535153450501300175626064143430104629290434720007766362672796017789714896532355812359961071851021612857825631367891243671175960207229164378267916062670501560879266668963823957088792812571485085377909273643111448809424836744440216360526391018374619150863743940414619658836525672719060294768226341526657419660135997311346206257135080118073828537604569056855134646616215421069998098707374455792201601506745617658018381859774253913421405779008089628420673811931438723150305188452948614018390545474147448816383358568719343900618463480388069057807290940126019298729491757636803860251847132210244545123248615547448606731849595793962257556553970530115931061343035721034602407919090203021663219627362339028265217327634662889466038856022694267420092542221931947003389714848305820986919488918167262037391601346079832222124880170935673568437152723989134029799581647307739090526228124053115070676141657155416928689155082905549628714597609089013869459129141761553743799711696906884784222149334163176542817951265396596278425838062044284046721530716582887687807320050136300158395593638729384974032748680822439562961080230308045581821125507235047777964971600293366326264504630592442304654306071554161049439803153603358296649854740952471189553431535146956816482662024799999937467976231949987338953802367655562334106744941528253848905381855653782882084869809376396715687240542641739127109684545561071973076568491171768880265542080356567160158167833930863184380089003145165372936818166705629027799546252297848646861134989551334353972468423194650256167317100885005065157761561959233716640181577192421373367138030813109483532007685573142377543850109333817988859912430043156101682270642602971909689475952945668029878630954349539360247786159103000714879769679625298378625085154294456575607086097004175783512105914792586535506503473498644195551788826876523156801851313164453546123769039081170857880398028339747135040583790153002375058214809782811883877593305961015699350245840970093969526638087935071479482525809171367700649821239892974075412987171218240281467866893731867220803939536467799600071390801470589231535333684735834601730806046886679310461887417727205185817147596180616498096335970773011341874993940974112845604955527430431768960719164605206185939828951608561824536683379415780983756632874263980443333580736241549188594286921602240701224459427209495149659375239124332517860487409457373446811739640742411098592678579290202708302511707917487825993752151808685330098883995562406272039336064365208502167771326193747618300687743962382336818862228421825475552857349292542926848663570473460780147857580086164711125593412336962159618350484333096782957432826097585181603452556225774930603976962112264677354107919266231671817350685188253143802676046232303423636967256719636980575015970336025345653648223538155708921774960065353734475932938237369113457253544020833243815960058113824225154417145952365513250087522838355584772938922359798682639573227956692632383429702124214257771995337310557955994381554920283883892105001350548034547845391431209705953209620671199287877058976510314180640917745066596306709266820006239244039830830282752179062692705662460155213665835256362962541474933371105846864767640049679208065975451201571806176988260729900936356718631115854142243662927955810110067769510396004334788469121561061717916058019019793472370819540492571812202967282361565941970471098317670821650105329045044933601653117832990563940706889594014983477766088124058338927551442980529946634721051909500316811032111461149117727771332663636186583318421552194945191407310539534038846449501153862588368167913921018952959177553571961645572633234057227884382715626753943082512229740029922360119813725873563809051647144948308916313044654147587408522181375026698018986621572187785942948209668597284515650553388050356961238374886258171368742840398047431660112978824429475798379315649630111237327126751661175574708791866421853805085793400091157542092869974737129004952938563180154087348981033443180806331914091171273637061680265505164349463957776926001671414426224526047323843783478152451793626498007217163708354701551349888577165600721087939539474327072301238410703684865170224146681136246186851479022545424236974094072436682581085030366803140017710402489873946454334221079347950034664921993607516096175511978258473715434626996514054990416307336572828676743697033229257332214959933205962578757486273471301585422263522235670457399055256743030579708475589846412605295747707796484224136721008582178799885931663475681288556527861428134218294679095584050576582590330724961687246018982503447621609013529740225757960670110000213505325489074282360262378508965431143467828908425360265019280831586761026586654266360283741635193431873022512860141423277412032868202569475241058299693413422316495371831878267437431901874013115423874445945483057591734265481215349574736167472280755106971354358441307184659252335810665161954404702911257376440151830947463169497603598576829405384160437869120365236346400129530462422805128135968409184868244658189364475997948334542182497630519479923326917672202969045406557331853629896835470047554472764453335402202740071590347980900567773584928513091767289516115746217958075029822679851629457563709536649244699200550300802933863992065943948880906083082119507444943940987445621056376937459328326428512424202977155178874707409720657323091103239892138954786010202512777157822050375992934333482571253174050960097769270338805387212396579411419763232892465090406105741598074997381996019901658288363146960476797886559730331591750363686053432706768449352691234761135866462564747404004458404525311544747826296338467908283574404624838287846989161362322965890921031739947597673338685374589308624287714553487250423852345937799862878217755739391111167846662906499695834038762125225782879018959813650726591159064548247704113780320738687322231803607913850389220328555857834585065190610264513787488437914174023415480230567924689128949075349180861106226010767685054329456437259377652962314477382736107536106133799134129406311975496622431631100449440708498558308301822062624376152938814557641419650010106071710725190207235086963046903026969538007566366237337875391614105547578253124164023609163531801460621151087731770349452025328469512823833025944755518818808709095228422479246758152196176783464961554145188122371347353518724344941996635980387509993766736492842692132634592169046028045108853909706164574333699824792753785912261506582108249804633697276329159241222658151091785391271390567272976329959664517641684928990686408206704972155562326647837162897332236169395210185497169569813066943415970817168567385124866295082232352520219798293723576355485765647586461299712841993461906091784559305346616551549158588910265424474412651859241493127470639267956538868358344836181178898535202047079534323594504120969081380269808269858864717276536025326527965377648676313153731963253453162471739352077532220853002134955511748657966981061089624009102166297465563096931918211585763328332014289019564745732776645047692764391753009765206894816708698049944111870014914127943247290228642724503837500603234746367104024483681142289240037001381078684772385465154576174544522069737499557587446114033114237919976315349762286788434849672852878586364904979160474508444214104833151661868077599519614069001950284304153852031019240012981962249313863341388347774795496945384138024045622178827459938702267444117273972175745357766214155721440980351110613982410725762584470945566081319156535758498856290757393906312300656014768169419229590568031269329991784880649463222637594830670484577555279410091787499090354260019932035507469358139770685962749763928639849900580596294226246673873616021857076808774137209298189093962045033082137455107915913096193419885420696601569029201797196900504593164886330805433775439119944002987721804840118132359473579783302939663082195591442543516670631574507444666584967079214958770026833658038296769078365404911298517552193733660993650078823428514689353635377959079498905333371861017087473745466702663903742408661250598868051449549760938443058758782548887947109940859853284966944717147306693306064671304649747433466158767259556735867194073384403908931601388404302882723822644233281321563251061067821614440072265317255433357629744259410708430600678905300461590789053224025512257326414391056667326331787085215296672715189831571440678597440261759586785453470026975320159829012847606608352143070895367488413610133895929090260853286946352081099211544356122354836706933510911013574257929996911441882240186656836270697028267786871735247414539462979376738516386005128215854151080380636701920749812927084112688191034889085764027431126079227213669586393463611066017994109473140813186399147959975884288579109310646666075801298361398117676204905362529755643830315763312456645200883101872866669003017529601371927357297165495115961451416414064886229587095852380139866219409340594110868678052381353965573924938491096303994731922657869785801231088864038081345720746208446981863870252363111653549490321510766051318919350481689478766560729760086268010943111060336269251265080978905322371395841010711583456009269173758341248972249707247273847623546351826043380380113102898973518994457860915790106914217361862457410771917942637106380937465754141250421889072078379304814749902432399748675380813264994730556780658114933434602367995905485763531950542586462181951121567040419144089721343903664801738850452128887392133393145243067813651097557738320081908793212973969569856533102689490606886239656676034748206305355873810295872520538985134362765944174245333836753690404900701831603140472196904419607238938746098628523945352576274378140031999531340114766142197358971439164721634094027558667383108491224281478301972261941595301528071086703067057357746036842971855180682096121922592199327925962703890876612648981921263092336132784649530912514783205808688547432466791534867707640836941320821739140477346528661930493702290950408764446167600293493535856053028494530022860471187526902600414075636808751643316542217334890676413412894776390457849325158715027789695272857340939125696908359850616106400187452779813124877780158667158304653717648018871613943022355959018659662296498461414888576727466095470354859518126502159142933483726547096245703789346402439078178366726764390176181844184489677512803998748750993493342108452888456018111995585090443010393798770575465175602989197480826985656942356271750275650018701108601428175607137214460028304628824117457082341543035307136559957597151958765893202087573629835192136447360992029000095038654505796451406485590862670066601618270152068603006000755130651646606176176297104657366049609842288228909453808747694725563487799478461663162521609132245783200897181063712898213460451807822858937674110969936641248404592604732823363861058299234381621929686788618283460871305116165137750283286349577650185821753308487818900361210405236321732494383869284238292137885283162241783254066689737110360331017467855011918103382972303063218426480545557580818923908566721486447723806197567789914964380176375129727169317945636487755016179319008500402743479580299188847565993166485199458480267962366257450704362647116646424086947746896951374254487258998006476558651851296388170820300329170521360058405793353602954905486707932370683476712561334052148946055979038212919733236603487190767244202661903881866020338117143925013923411246621196734492314617936561567946757626013782979182819059106148903397332705239478439088708847614513611866244959146828677665215900117282179857456192517243603108454461458512754420298862348480468475163467773283315626603223976864460064696245977087126035361190935461448787937731352239928784129202707015170223048230660553612488063365823201407490997510096249091642425052823551299729509743794456144982316278058135897478358474222290852159122959429807165433697419247906504620192620188408030228614579682384893226815312641995056709401359896145194354845336033802593693944591293312839241550225741333489607390005981809127174216028212365063391690559021295604957430249412951223806399753454158792594887611593085123120202005478788426781736003435984795879043872592874762162355000828192808669708824944988286717313984177252721055572848044328847426066653035922184164950631419818408466984571381792061890696714778177440429489842556409605695501005997349803884362759198114750894014201872295339183599824110981832478597664540983415962595429768771245487869198330197143017389864659431620232347640106884863709166513216102468274605541387012738094437388014950759666545934430983049610457786752972335915420087658353435932844372058544941953995309156909249215899024180980079940061121763706191992553414781215199533120001201974218751287238162211386804226110048420154875422310752166846294091319186363750935992996122526537815270222348312116941726595645049111985419122231583765401550302758572540299975186868352709490766755684060426980775752330301015629047646091092924807941851036837327705702250093913672901419257717396308680155791636995892285741625915847686143588223822310592172369801460950564727787311452065092247402408928420756215105598399971515879361348583652020307015384037589083575078254719398729851919947808819121362586773366088675132585308512692943106339201481625919772704726566459052623629514884289051402043922360437052814088521044622318124195720074593226156413471981239952030546002029514928667033749958178587151082572005867993584397565636924570807883129716523700861426330878659261974222524368484121495777767049609795248088861058925952469767820367035860707306707803627433296288987758938521954256246610068554110577058851665654093354987636639641866600383771727206375268508458325463750686033992813260069979146891268423822908582776143026050158449452457038332455918303492287695709292846629144033817297641048290926953255186535329435993016965380953711099329616775842985789670458649653132344756502308137284070179754450588773944305182837523025041572078724676273944576325335300117735949689071386895782210788438251120031106913465206720647146725234870539494602991954855558570692092050135545129226708393523893212644439243973649359530583201221218724755775763768827483504354656785038411683383700183986749282531403074116394329401098909646206509479193778695151322289546571163062877604339991641632372009589382387512320547497335777323544330459165235438431114737553916148452698602562786135469275915558328984934966987966238122927371488202843473762869878549207582934173242530837105598655716134418858809224307461642180629970047122552672859400047743386175946653548297435094513896994978304180677619553531093020826608816477704768057609590141778877251674235421087117280964137058210103142132418963587512788225756057035002590312224201350188462753306217651952425404128428732488881399498397296566133658925503999232239500055387323318405353547571958217829792940275156289458642631948115731592359426081366477909012767466780268856225976588658476394265499021697974169329135399981660863000863035392859956197981530774100640105635808002593731550236003183936719113346889319439002207731076300936508982336987474268665372315616872197640437458111674403458987230453556983691588252647361407907293175220068077539727539669216191160616975941412476212344675214696960082597545848038151953371769602209963990013774857043061639518003302740095015899972150361005656881108542311380972308491274069887437863925681676182228047332309621709293005214432820600358875191848262542769259672212392526274202884351676327759152496650318577569680543874661615886117949584280021701012682959855802706200339021921503973866848926620045005365167309630081871095654599232471775233018349732968661568170544429042269109209078577280489859866725777007160787045158698827175038979821991869398828880356663662838590923036174626188365428988133746545503255145501551137109491630801005366045146752109553246935173767700603021922144478860559748400244489932628480323547440145785283520853752177090859829552156767918223166587964692230493390786616199390338096895900544543829228303367581636565021727981842127406462526478034035097470965420065529628665130685055482349853707306359139330230392188428162192602516755877099440292877472756743584577280942312653488726264188752618431725667429124893036837647802281147265389439535597018255551193746455394681746879859586414850954403528910695536547075397602657956486632634517237133617438394348366197922126986891690837189904739003209099454572133143373098783827887895289657143424089415293072225356051148815744491051823058726365946685622333023515043041553377798081517955512842188136073807663166975412657391597671683201866677399775578322707919555181354063656871563469079923226673463179379925145551101010948937046462780601328003425813172298495529490077463434668384401349544507047871859065993763374644449731886380219514916390837007357502393276398908258270193252756138880960185395546671062219087897907432798693152751942296818858142073966810843982863116362560717713677484618569740355677517837500183193708559216728894170596902519975531473844741026428870974608211932466394154590795511390408170643087384933313151202494676041792537743462760463939544123183047800391700460023316185099831326972848057990553443103227190230243819834654621332800999939567138274688171864246826939653094245840188488981396107348095104937273966112516882643786437162691523058496297138905907262590947247341494133263749139944545711378296216818195113522825954856564788782445282669542125669230238739484440783562933692493728794504226378220319846098056190706621806566877026274808467725791018137684644436428463972540072504469472878101255389667188963206253137967429856644860564861779583961939272596018562469715783508889805415039617130919928830507443697058300568186050846115361351202086207125684754552309158401061842245175823867064470378700722675405273247736710862685871147767632125682498113323538802940153363041604042813644853585854316878303777315231557720777998897407493636484187691715291254460998326484949552728293250786652339312246643313382842168958959719644225470432055395909042083095219568100577236163493519060523366558034489780886081366197204597283655990028040405104588341906288181554491236281864239568789512309782623728310712130996552209123770199774840357676860937405225819401334232289808544782497805385158601397028939814040843444758430988991653621894897634594935731921028995080619742616641092211532666230651979186463889221862424440390330212943153210265447101089600286017178563059273160589661625816271103479115867201575368944056275794298221046309611389173463266117199608061983137618795937391079835865424072565875553518481409591908536199446414288685650852045649029111808036885723599977506157770821082017348591770901690456126164617201674350936192540899564012380916695936267589249630694766718361706695631564138869507423441502065927639847484167134613331163950267529843964671321518864735542285140599429795854821646121492730337695474367688419873993079600454569773525325506858196351234879094876666594073754472879676472643613893200144485928947226996096519876159548141790080542304439356195912015169378037313721445621471903024732228240573950033689401940537786099405399666038430001121021668459207930563799017378891014453828772069639751105149640166077025472382369063231096755018816492564110564086218035116207356701104448207904383028018759114426580459513694229842671985756360957345662838838514138293893575016913196168395990563653221179033864341808065644011224472332645066506083486232586323542188801493141266493745302475491645443304265979690415734530880610307967892329939377095087753950360624736996895058464607099726790751889317107632216215369887676966039095256809405733199682679715457634840453255302395874349915722058502845651486265314574794178410145938482015755325508468190913650465564162541814774495849268879086992545939057488611645362375019653908766390626543913376709137066054942203443864509443620625181178396992589424761232848220894305582441685916042180195327650464002963760547530502989020383634409452242948308070396893390758326718473037132669689915289218427251003486299463762115947406315779594933069452712417526792061241554957632127202073398695145198633717153779981588661468440310086730820708378153119143409634221551079523510623483095304560090705931291164523564435002078775515300767500006516289704134735693469737263008161286040737556459463945962411408126719898151612031795418341563279062373538915422054782674777414793956461439429392262249431788271650547689155240253802086768448574442504974373201323733630967405744933862233496156639749364979157625714520733539625699511981171306705318188991185219527297101165179534553657397521480620381005155079495131980627746365865168099048029352631068926373378310435524821640424093654872165656994406174239785855916303916548434528408726275714328719751534949851256812177494724396429021301945118010762683675128261746044609060498870507541337442498639992386207276515098073675965898499133801080579901329735716658045057270488359088085945822870744949715762020092624757257754132933018893073260611732556391436269454149347144698229210230164993604299934898058114583084230584976149066125591521075079251604449003575437985374052520555263148012724343644320126079784571494751436471081458566453122336699610838411576286001610169045575317368755115981747467745490621560316217504924299589378752848116677988235556763508573716431938388831820421978715465966427340393405240297211437504266721219169166850247967773027214325121700306837048711877633145169683697308503501827908087929177100717702822198911633137543687999007086728701516333149603222898079134178202194527263012909393186687015603237581502117060262435022184502261421359666937108573077611718272981623291937029120554173694348299837764972682810504932215914370004042859138766915383485689106211008477430607524899838896060287926948424748228845739066152321644038857624357498336597826569836849999148649500279993516874875283316666378129203080577791488845415885774771159864345088963240292528782540515549718650524017065012958576381083069583422318571708976748232521061555423698315334470254822083785205753680446322328355291922543031799403866985747380074712521017220414517286732766197653378753190867993724411008344639436877947391764707975709845787789738096305746009889389570128545461392792909145359802595428800784217441539237348982150760605844940872576332891227606607955089831524542663264299279839715117392256163428141542547009548219000985017383561082972602414656345219956980274864162343382760520415588419158690059498031918181215472700379386863069855751150299154859795649828658189546075736440838736403228899638333060561383547245653223381301776505922809281124190731158937145575736738528475966713450912430846682919671492714380757426834146367669201805335489730092337004737355541516789857450616597566699550967687395696461271751839161801664184008792481969172047190970494034017285752090372039854052265815544299457903592532563383445622643986475589744252737795309823997105235476966248377120458645349848322103996970253198497755422874199159501427458718125962861962817657396064475316226629460483042082643687409200442938562038834779013349809698618016996624819288130847186170167974438606361765045111969567574408544382445737712274419258328063908709630899046440307784928777124026370332867430627612945773733374185385089514942636928009453500905631196824042529210163930038472548959287938901498093028058021758567180394626350911401941726868413328787912085226344993865270584978476333474850498155630152697060078266938742208413216086247552258401165169361855719557230466812787537250700304081470024744050447771765561577504532925148113229166017396447074861773181197351832379032792732855869565952056662712208678397867399803707870292231966585261674713124463720937492191216908317863114434775234624234999396933941550822672972076112995525988113456804944868969459655023608126653568222646523541485598719854146394604364135100668530351879563072072248955725402605275141975145656685772761941800640369061829740063158409652511054189756399534968585269839416636580323276937842220915307928561455536339723322068244577560402076546229031832008996053066570489578377910299072206267723510591300427695229071016293345297904122472639514732413152219806687527736369828248642529183534308480128328188206797365678757260205740995921249420602717593020192146008727658885894848720811455021139285700830098491306590796135416118976838608163743873191911334269032383611824274992466243022935705426980686417715717765027489702911782928645627057982744512498511076201248131363100647336912599687825879736910856835672893822995589024022622798430492992080784992682951702059705038193861645784555450839124633063914939172516445515455079833658571224574265829351682866443024781370936226905030517153880971702491837580406327792492025645349815723845447521883162830598875470534287595729836052047129777225880907670603609946804838294389049019890552482710866340512891493550349863181327564511751868468993241277775613913420391276227752110428339822790840799571764512993207665422657671497725186310377403488704886153895995643632293365858048151017409628798555251025708298656972230310690590288461719091344417269930751130083522935521070632711908413643460391326771515856357313994174035863744880557683873354472267514567978677014808367546926318301474798051520314933759262273218277765475595910611017657158109157411859961110380094835349090252863961929291365136977961753992893567184743052629104363446352096938019271213619200557495014251544477287406568741012875289115965139874831646072861882322543428314929462744898034425491328139925972838866924852902310803027207505811508842993320098751073063658804821588353987014098503070687215304586852454860873906646657489652046536472476360878018903014566844129031296137562178504355261852019329212382523254193404047830930414922723418878181806654945293616213834136768656993022188061368864710208970047245962145706811905261769473603668432423289293290991538132001307789089375689478052922002279643892082845815968936389816061766601838914652881437160950551822004173723693315149316851216373355758657347267339058712426104122640755129764772499264942318365584359748457036325483012357096179855904608801941444659102630313619886194702740809678019419066450380220599670903521747269196210007786589586908372115575610086247077150171178250073592347450922381303164382873435127129522139163354536284102777070699433952472312440183421350073461437625861356418048142884236846590992503966816378419232439829781557570289779973053505083209452967268154532257320307200257895376912358526987720908703835207959386202427783596562713927706918252642194920895999146604054072148781998228251837786795915499026604969278416299761397751381945192836662021697805116651381228683312042616048418946680111287033052480139733519067000260853568816270842950353849228560066677459012425366189619632015157248949587854556486249838280315875492171360431322327746118031897943866464351631526042545290225494472935200542598162038651472581579011763694265907507577296553620882141693612710569302025851596081893083975466455863844222657734855090798252248825087471333565871529958188195128504575520980614354321678478230838188530232345188354434376843102690320389115089157594770284325061693072547407345385927410506071173458776478249925209577693930588295443117645145190139939827206194616401620466621679207019399391896694222436265405122045844089370503280878919493802014654068225435412440692865688538410929142309126052785252528997398591506313564147270558259710841670766668771981943213387505742558014359324660076819319021584762502179563598058880219076105344308675272588896753511961664930042168664065565258333641197108285911585400933704868204119027277894095369134805149532551734889548796676512045867754084322934520888927105068360117300302841351602356469861220668272108246189128035492440436077823256677934997801466239122038297534399671893162227251817036770973117346850308250055712787631047008837938241950391290989950466433152862958020533115441525515806040992049742922994221500003331781636835195857618123122998441225475580720643944218046147054415195744637317186419063828237869908127334377026857911669886711286839865846525724305730293705976412006418616429012544344947084219506743469536336462378658412963603606206019811048273993105635756577827705041882229579751697338494988621681176567563691437476127518859490351395125541803591444059174299479744870582708641836086614273406074565869321003533733820774312642860194792792042506394830483093316795671012073432156147019947254720116420045344798767398952579570579390298843820009410738835192887683309293626610592904096796051606233050043895852986170636737598339762058899218930099339583488272851357238589908691601408222095326839087577699475873537488578101910821877075854034365910807477467252867738119328233207217932403012452147407052842975954420326083192989320771214000881362048619728784902139881431509815166085866900625660941131775404106739913048949758728495626543172296458729468324397537596103631697333558556829940142092971037594730784503409443470182650840859390976043009691789052207828775966359611254290735633564171764766605456944064535768445606719918351663927623177700695778921575219264772392758375170055061566358609471270813820476739936110126508467103921568438574352519339407163636646056673728407069913158940456855187023172874260692445071512617849911897006615160391929179194570315104167572243553377421736248818951082750546918514335569975205172660910968658878281172203051703017219877900275077099832209045584214308149369860079458714190932061876911548656383715859984418357279260708680736776922173235444512352693959768138327091385610603850940600271065535271161098546469405429989609876648065014169729592648715365931555089351375388737851922942592901838298962494670052086034543055055722769188752781374353606635698289854603886953746525415603918482232176641577601496959711518740672073593221187201307585377286624764969275799991407211384611087773686207359774310760034135522603956809183196634558900209258875595025984751510010200134589610991071270322873977102071182455216069751092273885248731281205749844460777177623252253562687498526411445479595493037343298748882231335130462031296024981969261715734184720110449707417420896029597866675168659013429168791843760093162700101386814138838185993080524650287749010945161358898468315983869597428524274797717406317337838972155047669047532116178988831446077764343726290050328000605032987465293385744104335803159281593051393406080749091254597714678446230331766908010382632169524651053894089418525548831228429682932616174179202180176115205232311800262875477251173298929711484542800107510099942294647951728282969194780544476090786749704379934810430344669732701208931103195114842362424089066406969983833462856387213676917610100906676428122449845196382980363234733983145926081425165902457505935776539349731005131143716138826629185957340305545522637354250393401770488696594356624490106760474705155156943342627381305534162757860736853928283948820192194583621136682994454248096652864832125484703903221223534842310435578471801199807145541536720205418824203602408089476320908625573212215989392477530753689111788818266220770268880134921050133265162893588221845366595881103822383948259705578304759219317517317644854179649208547053657470003154930263149453586217216483289775970663189371886874439945570646841643115741314489182966171862311999495823928321227849173889899882405155961148671604749563235630148689700747281674693560761050880548919311981193836892462830206209070196273781697401809965738460808530681871705012163855418844960292688208284598491173142684550590060411540950157921296374551602382275006009201013522301570930474554780516704852048591863925813777125554770331168637344491407595094104898099999718811856780015528538196958092285843691968849405711137878081253235439395208203723253310343647705757754944351036340774201362433201484294734974787241002091774126190676979237076302468813706532667616228555842053714683590133967332064203131140226163291074068643673644795328791326862149068321717970129960275400942404894773414375200011645020211975078668727223797892305081834533051997090117135709011270011622992638526303165082866823195623172103479752074048493948979811508357475015417379562833275265730790409666502661821054738048394172037712388279836467432108504328350669441184037283169721687712677387610757024346587502147230986718039545754877827731612869917997172505687789341412884202617377680807815906834961666110284065640908930277561069201720365175508078589554472012853143598857619783719884173214656325012476493556499137014849811495942447020224901648786938604630172031613688419114402448069749994707433954948040338798576689868560285539794182947656685339868105827854822338844983157421757814552620929724492743876337658493018765910716210228490613345922340550004063910922326248968997039908048354822668861058778812257418178065420240220098105403488247206201096581784106902573388747269387654979972388891080264010990169700591417556448010880300641848300000611005242115109638781232249774840271109028669942908209512814680635746477792737969218679384043958691824251729396935461180438332457128554719945867724986036486818006226126383017380485899624240050708417506791434564439455120060123709628550805350912790165707603745584017765160145660577034201601953718559410287447096144475381249267821316712243227508120944942846556191441595611625211380020784909889968685939164420481986840208749430468086394569083309323220551466740239175817790109267375866595516039363493994535199767999888513331706648656745105517864860209416231802449221682683607436843020513192689067031000057622834400748447878272163041753867081415535607997641917682264434375363472541369075219120746284443539696665507814741117515133503328001285383517394975722169142944506053564894999135098846988258882559011914785823039894294020504861872890517661354501762003393192608385913746740257338923061019497713738690412178592688513891439107430784306849679934631237490047666719888535006081849043717402786289458638129289514474176369897813651214193418171639134476576438701478649319891222660235173954894399296110765651641049821143149408510946112246028925062498654451470196699443283476775799995026977748753275722939384120679707632065991298121244002444602379153502884278467595418879027597150821419765896550394094108016892523901473758665577005886233010417348289610058585877043982296122335309020660669027887574175973613109756670287250188405950740969358281528902442589536347099259759544006670183498385357922587212774076928200511773000879526738044755563570321419227555559806476461722171726594247471290010233797842023841324999910438000112601810513953909871310866232525675460639609187387687731003918377099495986306800659752518513105317581448092045159555645403362054818311497864770340619982718875020289084976986293737449962052259999352529426533804842278153309868563942541175733553893951823789548437406377280005363679332823498358639570027628697202486664586437530215059892304801990470181490683340503438736423073041630034472696563497220912657817437922799059233053369484032103450557091361101880247897186173284710210615441754471359971949965670872623525196958789283746956783099820781293968627585074375781686303486039236788905050356193440814043461609587325573077772049212399228389572676543253189207146995924767647738164787845377272340611240795343607616284173872024429339106950153331075974733395973903531176158407012338100737049936275689274972285210165075137892313123759758322256065295981408188954722791369369505988178518484010845851638877932636245074573939924778609702280903703144360771240243762030765479397170710243014926629487717910402201844834375519441392848307786317914580350816294529722828380700298891579184757266967555669633542219938450631341842288594266957185819755712870597832408479604896560107671647689460151971669416588757980868497786516889396992444625438070387056030611608677597617789823917226907605431649310938361084535571642126840705595812631039471046954287917586681608246038031382926398247088998807531104636170433238463458402245393990559287462653914372661336303637514040928949664279587806958636297828508500578859430004288781787741733891415059407674178197648438936511382465844880359244335710831375701568222625719765529653287001096496093291366431417671386691496903109326291605469941813034419838468637095461981067916700586694254765069301753859801100694881248450829929114241119039400018988236506564383990891520210910079076980768237966389368107642827407848730477179162881997407185739998964649046113722174272176502244017426243595366373265774381500139902697781714885763062060474448797109212066945998666643987734161364752466190728641939932507411631018415938458404875264112095750018840210147683895252894749186809657988216044035088114374768189921243389325054883527158051604056161954228706951806751470823948735551126568885974589965971619856672984696260633616011333687806974083633377003162643551788921832514297901743361452507578838667787069458627770462214768501299328466280544679619364591837565455374523709173451291650156180224675990669072819905535487001547203073216650384132015520125069784893424963154982114816413201131308019782205497710233352346082502306469165391536618839670279004669877064262551130908254699618647757959257361597299535525406879889661337226459925083234880197439875281408736668715295387560485780397215253625708786265767986583629290125773764052721881910344775035758105785417508916784710951548510515801281845098958272627403764293326479030334417992382837586041263645032327421637075856669090063819855847452747345588499345300467708356091404293747897157159300939563719238310010114157225797972687067537310501877187805578265017905866657096613462012896041074041316488291508051758489208453700621481759215593436966337622630722526717460887314173921280798246734432170189414165719310532551920227799087457815813987386301698900286917151933652535977384383096209159220844702790447637849759060437574386339988341054088284612217824313940680372063800384708657706113604884084218864818928629813679798355556542701443977947217914439745735748856952508277634862328440532285377563055968484319347290298229425358714333720515493416032688441919542177253625901623049875379439720576979694637459298909899608920823924477942757823572959585548799405475694704013627582673879363615523683028369324376282468659933937722857651920486391328628172375902148510595118310685493948480886221310915081714189784711354408353330473632007665651082252127792623217175852756791256106729035518268028613373258172946221602710558999890592666383499377445818103701274073152335138905276247268611479039169765574888099405222818588431661018304881088625121241933805132717578247808319143845226304757209803051103900295096438219373709455413455247117287186331402730543888693614543813237402228657596105701864192254579093243484469710040938050663093487867458282067085219306186579005739815934986139946053219235985592972667346442904954005780497054974111989830548479091383622206020284250611105807622071755363013926715986663943944809781762890922059727378848807427609586349867736364100811737237180394592832612584972360234142146492646098914642916540246563907245315915525858366059637371088813843312605100335398976793851114676573314184127785371903383191770843685358421172053336423923880413641538701034951177181586046196278734987442382377102955336802536780754387178096353284342375943278559245102036141197469630919494951451153362255562108591190478893903370951368502180795723376444398649368750764513366122843536413234390305702500411126858575479754098559240623472010257593181043378544565673454127210570170090174174518237595033721504465190888254729718616430594974230749543227538829707595093466335052175895933727014374055876323284116599478533789417805864644673165680622125902733249051488250690819571713992271310226900047758518262385892561473296361084824204127806926333471384441589751963160981432728714928403965480255367502198975351024544591822308684396754789272432614340113258536462080060474087283753564050012798863704237751613369981363939847123424124932363871027762422449930069696405481751233429361264190968231824542970523148138341214335082311227407729037914283164842568823308198342927413024548734610740116506799955871469250805089187016216565168585563707588795328547252712430932250919950307305282839120656786029564257135801355415283030284529509908727789923067315079714822652615995396575881948591079044323031028725812791431125322798685467884759164542034301848110329046776422663669063505299985966430822303979902441038249146526691911175876387460510504902244893158735752529363193204426354705313561817850426067030818299919676468287634608460979361732372294633675907870379449878276663170123811428886281239482906892827015001833230329094207543516913827407621098745470731549578109969035516845413043605412227512937304545296790398336331262653897897785765839009561248961297387823554109889335440847744526481019947003483194474384039593413805780321744514899063089055129227988330857641676000601310798684596886375544413745334158080870595927078396558831830578407978947472740549178086391756096112835357600783034863474892704966185200925664377907148487435062153314720916072233503304414338466380843234781934284949366953189302255772776708721941685977348489536190419507730427874847357045247212039192581486342596733016707679139435441124713892413070670100731830931017909796167734247152023032750794346242922907560294256555078257565428106475577655094300809150631057046960276176507972249114778265453092316017827886952115099108722240211921886183882589858286397586255892860207500818290305160249992405686874007103220655627333727365290460887790955555028367063107612650870661210996745748054917577841759296020628825591884549087397608456435912903612386555768725345173454647034536541310144326982431841133940038806048532525338469813167119375884801990534483060716372188214684860597350250220277683501746088265947239816266590336027093274872324735179513696820212470485175266943011322293471993828458272886088416248164322515095708653259416094128155335778206883379116062323675424468969864214744223826378078139492126574353275603395616042238436586819331421274069090582522994735687568273725791002952380942501423457433720228773575248743205217291501580736672305340938825675326807729187475153678684186899905123762202600677786496406565314141313810197996245449492978152058482308971613763377702244516069413540604832625683028097275489347694833957154071697809304183767234355178882840494063003247569473552838467273787529984471784323369441541524616552946475426469791890118042405682350686660601918745578071002622174538166640131128945483271527214864322883206733638949097238983527010160222320695826317006739486639845600684163537159353553224430335337325612360647758540322233596998194967944842411465533397304134498652434416498059120766259169745775870440925728780015022481760897480836698093885537300962261828923184052757464247035819888675618730082553971776835466632254714687879270588895084148320321146867599231087251734337720144700886215847875531570242243210621998911534966736017114502037983840876813864106908992960972178810369562484589770977984333844613398928305368622233405381361211737481717085985266065297078619970289890125741093246251076913513677949078524348000244605706176842035581814552721482272192331003553517787439229887838242952004931983866455206425251845202967708452532685403568251618891570588545405317721866371100974739020098053358408827178634596117779933716404345606289935923259031827659321424373610099343739233257595894137883298722896593647856082888639488298607668042648313312541006816742281714188451213792173801309451370998860021225209518078716546629665314202902786946455826126937182295144835314723974901216070696059295335106212587012981523812478348337088537336824684920192338276807223965515413200010579626637654262541753935868793206032431122037436742571475711466658255384834608154313744442728207624099984773500077054837531961316485278657300978032086665004567333724199510668182804598684601319497340135507964812563653705503750826117774693866516027746963595057673448289833661723793085808123995168024293834825571921495930783654764271166712681685219010782229017767648038204631581521111747080421572146083645338979964503626010206486995119655916730833583002799188330804870556408423191576630868627149350196115424837364080540217432393573406104975437364955909281278210397394588523884569819082229156293382511760338798258081019993431241818407436294927204558786729128616506784474653605738249377523464836263382937208852464254226644227067464159323970499973146014345717447467469880020180327239611670761184512090537248393929798070686815467168020285742739399247367018037487069688752781082703968374311958380383216373830439549480336926818551830650563237797675248998498869724516225342052107850951921930946212848656289058347223371277873372756915486746305822134430784086298317176270977258009619139150942241083333786352458279179907389571497294038025782304014305535355573384365731702103577865465776148506253375390088907808401555991014420237361186882016705838942471320885953700252847901734611173711454853569927144483411235430021035895626557283467082372868738046576517148615110364991902945977373224887018642741662646667975428998327862394009761401110953630239927512821171043934411815585114111122119814934853703314790360067833293887481342462601508903955202435158496227099232687305142591649838687073742638483845965965839164404825487603137243089141242571011644109200079646001658001042771089592865244642163953703870237888885669676410725068075349784670082321338981260191388564020276996123574873760656097100167787989438342053559670752328620792762297675348494032111647273087949353512454572854591675732344734595631877113295424371908529531694801634551803538231608831101202199628773581386876596506546591651068195322093498554113087400917565058789029886457538684524045521726950300343595227507873181744050401708881953846848111272529626975775292400310054656990062380864168664513591599835840738150090935276083948898006368993504115341588586992452823145145286446754897377381170223943751698804025794502930270327112216333768653704349460973518937887282413880918411977743695077914913846817804533005497623186439091275295826946006111315941441771992278949547193348947551860116221109650145078521381932241435371297977592520286296056073760798089443921201879689478968624090722983770914737335262235814652120684752818940144472745512210335861772538811453414987892902867420364218068846889576615782963087947369809347211070765037465307053923635804397308876116115565223849006913496085665405075641641547319877849634994939485479863303892557280062043603638783128402046536848530516465012812024532388629478033851244940559864832260212590386260296721955212876607369429463302325202230055867266853509125515031462464747294625092149378771310781687200276148086202045921799344700462654892110825055401181377339018440508004105739145199621290651426265152000940654061621045790221529819763002241725424362775675479119626729183945139962431902520514883521689812166588656323102512221469077639945492691054009419414795693546026415769842953703456242778963153331116049030717325148234312971940636050347774588242771505766441885083553691329934075557178375686566843661556786892377147137832116581724305541929419964601493391886555953019047109082609695221360874876726539411008829628968314835385525799522285781479377083943463418974790432079877271499010121261124954328337421364352092412032587270996029483542759408229922065504864149417242291295687768776192628078376459877495981975235100951163123605222506900104958267473683006219295501192341480664545960602926903276799490712707320636528669005890532025111509697834711617830422372620988638637415902320884004411180992761119080970553003054484168702722636768346407047845352243601416563949813231336708385679184953427900275941545649850380016102453561392634655857785636833596311247744874961497188196073898741035654490976838009981785955867867887860120557031103031176880912383624524375051021562616810275401434462004708704186339486866801355054037904139116346463514081764681506594902124333979442457442027900428539176527069981583844825207365066802062096481471731287983734560475579915157194914984962082776465085033056624964746014110350454801293490927570104828372389593589293220081868812162675126316013291372625442957339993252261534370539941897524736111763713997366879935977370024223056419663734247754223367631711786014782361250337501771463258913259271240811052668757842079211801649561863407798621055006149153485861976841855112556175498705437066182245208645473970664397724961690519423870078880146122227773268485791745017700885186648943439899807429553334618553856846573672406530577198281505358145797386375018172751927790404582884300900789188513952748588441743198806506087508950189630163042436756247499577439329091617774682848473122546440665516937229413690644218329839030676124852556125713132202440877481560824822276376861767261870127767893572588805550556432020441113343055508204395833140354418847738418497334969989339333032677288914878728966055724640178324652345821816380630257720884191509664513557604829353962957124608138943022932607860811570863389856796490358994604792466608443747875558429099894277333374328307086500525985935363779906501593436942823726609651807706588185874964633955089792175785457890571160365631308155448215939900503202961665981246290392004739745282505308818311530174684096301523895897696273263646357767125916489995657462992163458885980862450406488906175930984776629399220622941783739949377069977458716501698847707013016777699573718680940156204432471272936114238321542417224021363971012322904306324556435201175479038324061122698653825877470034668589244903165995379358639335088489959098294891560082816415141369805515392016487105346787479460255998236834189100455452184601840447964872413115217068858839935341836046173722194169953548310085634825466425642694591571472002919254378573636496914830632737608914480538836034502526908876159213263030570699984986715743132806883955882405181523932900065921524586896359318607461701154876706443907147983823321546514663006476585115338741117223098257152149515011784433296988840253941754465070800715548365009071941842879717282804584412117849965608982626435784309040788084600782980855946121319524402311993464529940165653951829550646474350837037883153966436705456899356872789068287646161099193003185403739816260499708079491791448659656134345956646575115002555098867142386379091231396332714403593688299071953203609930241164677123615753584294312618081674315435405154980655534421864493100586845842208557635691394214810663057539855428112499605385969787965924276137634410482614628445927897568263667550783448058350940886896843468717802227954465056235044256953832311210564187333372024565931846536228479555460980885959744276785412003701015341132462207451946893593570713810775754826329799259021826908490700633521527288672500704268985721235716765958188887499554819676662994588517446282753250219381181122245480353795546679529479413177124674970431407899984641671835831796744320983672300623125073577084601360303944026171395966177973390540867932718714510990942013347150347699065219060114823157664178546803506679119235434452631657950300193689849562026456202079564512075693960140461089295107725165874965015141630708855167741310659994342210293028607826568095142571085420796423998065930408206916305029422397473036185760906950122358577689209384920803251760668144306764896642153702260501177473090460089729228292785667603172727523894949082693788115700582255654161141919759686724998380421220387467555351700888665218572153593261329710881443577242326720750880362651540880475832936957143699907937853253401210761949581802606100712716191981727785337386078814710793281557013913176164412221822332229559526030025786873071352211353379488763552030325771575234227080582370258994793091844489319421489524109509614715283549615946177476371964182545816414011874937283435953417289098548334673273915784825284512738720142930216387662080193603058670659713938529568842442513789636054328811735701072389843001841496493244846495895595262853493804834384838176635119322375897649467141746985972906009891729379247226851315279160657714611073992998867536547636802171400426590976840811239294431628488463773593801465111126382103348039837998752715863124333380298649138452465837861835175507577513359260927741808705220876642736735310754028909747475979371770921085408537356466523086457447064107835201198723013950261051374464006697157772412241515135273709785737199771054026147695299349917582933765993448219011950280015848196425352393686834193759980993185464144993235150559236661575482785048344991268071602081971104981102829619243286728652578298566411626602991008120732059818386228791840525758399505068624466656092007768560043712512316376129948728549298038993967750565324741433105069953117459700442459445664407216089340946229272462016256818125184832891158533300839024223931429067422996986513516132523564410611356731887996704146407094833926112977137430684280400884012831728871330517319909270324573066089563178509669908735272617145804773412119632349285934802629965000136161820412652270238728250518495784899448306513080151870134657835609720026908664522599463789550464457512458124530171496065131629365060772484592442008239009211509559093388766215131570871466038427876789928914634841136113747059051472961154713744308035089572073880018937765166373586612433805413100546064311953590536671002533576081049990223383925325793174570100313389795211006500338850149416704485591977881433502624971572996279367793227152874592241603875641345178329465222417735304975214104158326977558611336124073469421809235144999639622151305649162560851367792587635417218993012467950167688818917173773107866267504676340821039653772835629519101923139865672834777304901744177859169494908260594353132743501150081940019727943890627690914464529939289993949579854014138323842321259003969246787906419631773483355402884373980246562206130005992602342141170842794544987622952373487534059573373658078079601330418262781104313029107998170582479916094958520200787592492754901941136305487252084215265761221994347774365871173335735336647507829989436204306650136049517346516023372906513726578382030317948593435433478347404358635783722381469035579573277632590247273844598815455506920616739483281287768005294277780248736783109869972333056003982856873154625694609329537673021741461143469111020136060703789000140871367859054893063287868424576996232185799030350189233998158292743432735321435726576295573069983516977187549280352081141303163907751644520035929207688352991598837301243782248278368537996709417776439074607173311188132521002847155210233840034890960197067779230057553716339714767537810982738513574842989329281310743003951915862241190897970089053859399662246410662202843589158932996789996720910544091665170179851416468554893890360711247966087625902786217775362193383723838384726838010548474692479972808686765965385232615985460158912332017156254686527523878976189105557226967237606777196913567365431681312343876542521607424029920651947578787589173407507086298651343941638694613942686227061546008036682473853635188576712872700931337063202824104301586502296866304859070679099575052278775244755718083414007961413026240248544231355229431049975579221935242362591808293059830336062638918759663213768325317034008356349841655248098022018071290536732457217068126128337530638310721182372087081077034368169277649635481679075751655684562240021374531572295567297791653552366440282612779199232803305627468758971618180020944154570978743660122919064074517039070523189700946078291788377392399840910357118742832321183462131326782429528152938283197995600419127397358386574430839165351648174430978034298398531642963994101212669116162544510891837074043787557997940667432860180639827163053236149112601567615940205969340114534513276975633246317969814078389797776883389764325670713210222091412685052837453084580335036495025314813249603184596484592718022693163097495374619429593409004051256707051883057750466740696396548481030571618743654669871607059852685902914761171469101326579111165173110279954515053385962994800046502558381395017249162500116324968874521362315840447462044790512754632118325049408307629474038808645687449645043685318081456292617698863495472995491549390267564284821966172038432918332982495993674560963196293157528230672777703203547796275558392213666081494094176130962220226436137773394050412545845422591319596699388466043480601779007648659580142177443031577256111218572747338794091307970490461539484717241069040284080107326519452420770991151530537933164139252131302970010719299945664786247873735815127350412608043263737758684564590589944280634062112059307418788660514973315689752702513548254478061881886752771865431682244860232617895874229508882868492876296937034048297241559005277591481912442816667464402438140347927493451066142451895684462461222302585203899674773064364416152574329389856829291786511355499721409358963892421236944900306244628679272981396781969719217751839176541167499528827827020702123455042633747373490969599392243836008425314569495544995395008627346353204401331983278587547788653867242835913255985677443847541604821067410229941137083502277916424278095001216795733944367542618469547616307514140011375687608017591004821027839077258837569081459457871199794132001943746797436042572144948983564104951878967480339388787450993303767284231146014568112436523927823523485635143779892527232248611534614338920517832004076611296387750666870695827981787549954825109463670173435485546197325012916131186036891350706064173886246489399337972251584862678084409031185144529276917200033164130209980146318876390728780636660964984732970370898083090509412340639299540338471537321139194507698271029955751400773380906096846896416760789680514114186708197658959103867528097183546314598514520214229007697871954917518808378879556437317494660743457952102837057627587909383763196622663667778127489137511053820380586595222794169654118500829363268397143666012681718052617855323786723473212151580367741107827809195103060102731964799759030482989781120310834807628535162640762296016426612387933741093322699091348593794848899369064717239052545580173293015278083688885211466123099075971486570566035777252822459339374852643515863926364493129752434330385476733599847192476901066359683534089056213303679013066051052184871585023872169056216785981443845918670900794314044544257119978162381510403195926136345700034037531813653633195899550286456899045259286231439610797141728492145730430606064130639855802566413331768503212344819104090558267092648830469196936542745049885242608846091875730994941894189022153549855633815976363644331754867832376043804384150840027082768092622095642593208626039665472106967554942596928156314310448244428346350826277211997467234270505253385569845270886237714573384180525850375619692148301543482651562520001209440320310465207844716864745430406020157932132523283558270222298442865999098269337387031877717767969204312331998144960592990895612867915139412170507201405530203103879889812067938782905737979026010183386735432486744074793988500720028855729214667650292475665644877473057356129551595615217634374733870914789104757006986512918564420330410794671381280722025221267078605234247391217873897266538539927811240552749030447855990272619965715479410470105571114850313809053199757946083479955019980801141377332791230248914354463398180449081789480630322455427618291449098817520451151596477379990185749078877553529748390797823938501675562581906754889974220501911423157456351583242477025744124665647117269105298613124096068109607711236532797573667959789506022060689371854370648720510559074663026238953938949024828752438461999244535323139227086717599781278006110821115500528852562918358816776626592753095135421494621996699039171793222199077862843044403273156586955674238302133671027003038137683351920713673790966763878536431100729434934897661588922260282574975629947023415760006537884746329393131953810621565239233413247292214648329751755683522394479773703172327120431295007287073484925542643943104780431830933778033788779608721629631329998445159651971719618579464635329624406951257912491124080969718523838538664718096209480715800565656741884639115974874309021772734489753741831599596760533041624863816348781082187595510791616092096379528434814595507835907328676009019388240230421451876831036091105475215032816236146643973094905265572975569568491773737746020061287965269760101583315157934900832516271665579573980646329653428773973617394149900525667574589734037002147209207957830098685505573643591866094144033925819246089297542053631145072103020382541873159484629608357804693758198737996283033486878673844761187687172601961052034890981690991536960610801192957289035743601048772203318649244231685089785280380762341216835793503725708915944626241078389274806461481164169235032529860880137144554199154732538662911375679361401347240612353342476745179264190175684004135881417245630719481600546109463540927819690327982188301840103821064997141777830994767572280670210612174550550273642575063206941250406063214609874227198036720004487587096167252505140754728678999875146714614894860825564021266118950722556915813104824913994097156461347905436734850040239258265559523475981283287811128067898173788626735119890065628345054417045711647458836350932138061012003094380953230293752392758356363183503433605489165864813251300761114194536146303581434053151583775200891024830072038774629357284231383626597963642549780285914802323832515757495982736748393607047128178511014836889898814350358109404651294770728659600528115282493801273474071233513679809171664394213709147236442949538053204581405048933204613229241989883255894309634523452013478603272778802505694227503421537381291519336039052344806149358513257274982381924180216069569358923399261340124836560301865226523428252132159823356923052340311664920465494331859248382166736763509461132415843901986055616413127101771920337954140743776278259772457277310052538121988189919168669789761511422326851949611391867777627652636790820703883448051240331020502891956495518267625649206477927916250507651975459918202471863155555855197657308480632423962871446042150962936813976444717717751103395184733158267529435042206837938046800078172231481141274982099292948472906046088085029708062955967859364747273157595444619147052096363732415797374352447046386611096320189913983221982429876184420950647619373281907073730059393936217277751055357923858273375409192365149414450183613495900887471853001221413369348756251241861024972966222091365757296790736872228554786292497107293365330787095795679663734190972215214497260668203905013502344813917920126551900422125965245031710708522135889209940595889778622982462313516184883163697177127844396336186575038893675191850273463244205968583736217118066505653084466296235762969315918482407562864525389142075894354203077034307960424318504559857518151103158685905763216581761427255996942201885683137767597185556343276307320402238503646862789584022268968804070813835162668994976174864737166375011577261257488094702095789639284572262802273480773374246458986336949647093770328045231495412565327870641077729140685730549804319123633197194965238031273695492755793721586069787836503233247693320799122142640111815904951712427068792642824104628074994541813569614510507529656329901292185719500923868941895928102616475550264288961231389339991297059584991176880928594747108571182210705863306512786565282941555215149451252468862471972627218423845424291048626831505802120831192981435054848375400400770220466893140463943503563895042921315038506263348793836152487771117588333828623838797795106120504614025859288819520381807769207542912453522447604761442740176304620868629407812653724406292452634174308766269748674319266122535664160983937877068371645380374328445667928936462405356889193818549826758671882422295085802112871531949418334071390079380115514834627255744732472411229676637891250491052656651788126205079447847628722178897896702777811575195570159639383371290807143952838241523978597788777027344777274357341074905282000913745717608111258018198262388628468960986055488387995992160277982342263006023173023396534698203191464349477312317991015542271908508348965887280739963235402319427742373234385068893979070041588325900410347590699185980630634304817748129718921437454654851829854823800696990491806820033315668806192813072296996388930194693148323178472452226372931500869721379116465216363784582905768544261863774312751526243931098222879492245265302277124051969837556111881330535333653618296720370016087273665810906275697754301794065533078600091531660939472953739038005082221245389412638280972008540654262808017505893319989120103441191274932124152215538475333218640607327637165333471771228415833670673025054803078090641144092891510232463679987195016500683608494042679817317444033615048424322531444821995288909471657063558323648228997286897199865424164640345959963377734795633547028277807949073941537331480364639030105714854222450332748190898626864423845868867603221078951967085520385225488993063449064152174291202171364949493277491157607529860655619703286316283910480415094672404929585123825544717618099681158926324577356875115274974849296408042271047624564450983009136832668536635390063662898101019468579184025225390024064520710630928150145723291433761192233969322995245336571226891698085551698871127920099808719870664769467493662659988964498794991120222344102901874034661280659921030682984762784036248655320862260502902181043444436847031786711039362395729085247711858273330398671654383873257611451706773517607467030116265835431925059236852033863318368965414753563518250367925413328275389848237250351702164090896635956575432857874792728125926530386313222690196701155935426467954020812389253128276774297696603712818322963781412130471466064539882307294594475129522975265112620781041891098193356734146439542158710642396748682608613855341276447105063836497693041573879085581527889799651414230407337517640588588528827326763926518284346816561433744112910303269556317093997219862393026160032684534705603160871018287151631253953577967712921191366393354118419898269499741197162916198001102268618850834305848266884362145752188767600263241354622314511794947472289749889247543280200496959299423813229409173901764205338124382554834812996137091174087251947976298358261718724085716043979154628087634155150416548805243466287990854083146878632422563916957983584511821999167817699554497500770162888256535609672841144598875245066947009122710469049779074623987164798222296157747274879573078808968880140449545875320792958423649701039460713078932760240242035604288412504104840323555899026939120877302329623044483703672969601031161278113018483841337788388034593142635804114442989495424682930221996136281441283903957311645427198196111244418716387120046322686955036271795739003561274787980617108188737982970048687041556194192756018379413379640423261224819966235748724850318721727762844909524076447072765051113860602828691074763559897905631717959416993947598767962951433215326595057253376121917733712769107344693446713417899993196598529628838715421972281889550808363696724933608622580380602599099610744739365789118324117688753415420809689984366844623376294543059670946765749986553962208698725967761697780948331000963356258229661893374334441420354871422298480879601992083473028631330290807261134151378987487940076713375552907177576767805439541157892286615025249412398577487221168548825432947244251570574013075140539817838004358059777041402492932405719079055609061520101176772182366262897000996062540645879037837859358829958782525365611179657441102368866523615754478117655404797589220919936876164665498517707747004238004563825073792031912248011387201171749562872460766565834865888355133547667515527416241286081492656583215689010275571999121605594766351247852152607977825206596568657047266386995891091120355634351029883455667630522011666888394268487119713529880259183926446463223672834737763530550311229083794143977433372795472825417121730711752708902104596916312828037565907902062007877499639920459584471110547041379310864904535113847479882678835119321067513307255782525373131436565724932749702280316766302575805832163369480814223000198053311182999053667965053409244309271840555808571595880463409503224820051699505867455479203975054991621302586530496985473245612119484406923650527958596793956831480025411044005446243806996732425600406248521121434587648523616838311397044611751912230225924622460872504181121945226423757192817538290498199334780349937768087555622271437481488282528396272941999188865411911247244000378966040799236897644523077772234952587220578193917425280727152480424223916340050030298349636408186843120359074128425758626523186103008206171054950260020199268715281434946600594862129977146044443074608201841534787706013447242181943398863666980027213211542931119443309029003595173656230252303560727553640259944865761025401325011512237498952262249568063527111699466834605761524011332677189209282441655252484984373692095319362082914313092126940214118697508471194035520200876467560550875223167423055191526363186532473346274160051987672201294895941560699053420747773869364501852701027015658351003659978225400697012701096937669405231949094382106276398802150327557416047470718370019519289390576695405295521327205499090197666955916872275141690519302231669519900663904735114707478832832537156669494315370304760520965252178044428600571726922507764971900036812455676804040343643857217514768621751506777379252874730291492192585095110966011078732876817327149591272492894276961190798658762784240913706976273819247136340289817628016374054781928772145392336427536120888311261321539008651811797129608853734836245081906968729980462973882251475892795003298874176083599738312488226774536174202868339820564439642466164327317011381069122214500445902466568622596102801086618549408958716650380943759922876142379024814820834065690211627769696086272231475684676662057273402567654977655036677004535377135717396741474479791857722570272546326327174026219710278009869190743782300699421614097085042575453270440470684769056262842161363281349442785118069458710863414220583124923465202441321030272856474946410978687606125349500223452047195134825302794660696885147976827295161461444285783002550495496956833064177550415775976753802545185495228003165127347968628583415389611944498077014366733592090838568182039124693961638979316461765696518672510157748995036514792747324641873587384423981487580900436021908144740300802461530853654760003305408676168056711029182207970316392577903196714003305653646995876392203027434128380180311708178947468755164974837888151024607904913938412970212595130323647222882094310245165310442310050957015274017619659591754900938419295802337053210572052945169117763257319817172670082239891328767025104537149525675053258961992889959782597511367454877511947701086903337762842197082504311866617734826234816949051313008139905608303321361000055358842593518401619742197386831512135215493627662586586449205160813048328650750518348451739368537773990657900584109215239679513381509350700801199130339969903408879142269699249873308598755840729400638303089815503197619332394506339751806455506169964753827418857069787644104964040292659865335896551995007425237345763022585673082478447075039195603123817670155160391403409570550566449711032161988285719094373761585003152402505534725282296469850173367238588422728718202925737261913557657331379842443517047042515691782109836207276752382949837287564817274620956804803220784018979087276563089799932615614805391087225985912625080517749357495530258354820762204939085008489288611666729042773231099569419195580717153510813461789511265483758497044860713994406249748063057097748537708947630299416303387647874732570878748007536424292153385697339723854713279952351368950982507033700117001134550747560669602912734985885688719808800037132896719340770005047766256257321751149629034719218145623424659764269860441292704574289255470486950312323431926259281028674724163446907962249743923243701983668425061047693593040519557953051866709710330287191494527880051534874674220691653349535962212300322210910921035385574335752690217381347244198548230464217469136483810098814396246962850507974891939434185782509677351127285341374547830958957374527491372884251539482221083576145843425751536833583209198082710273492213742937346051645904059953643590884282199375305480914312912733201577297364106894405798298434245155586368923414397331510962447604687406198783863088578198974615569391977433591779232806833197142170366247586038362710338903944978498921481304854246474915101533077286353820323959796179016969232218365594699574479030070280162602647733590455269431708839274465033568566173549489996251958877157640320970484539424372407575473164700257743675714773186328293988394877359275171882353754952472789419601133768112133756807372413606429620469985815861100364513706605087075304056603152483338321824385210806339930752549193116534401618596174840627906703412956307672184377989854162737252778019504625477460879982388507708217593568447216509358751912712054860595265771737712703864487417356774444956956549712257566558013415987399957649838315352913623030450105491660163029351790003808886896265494962386349507839917067724900506971909441491302069241447082836194586965375802024597153851899759892981397443623531806740080572439540389315616655624183549541019261705467958130833116978344485337957319090476189924956182199546765305564786922950319306303670007345409120932243777161734776623100733588572889628502009271540633942635594582860266327427805015757319891900143690371717688726353569703684322376433695960285015747573987396548477707000440107243792282647131371609298575037349543742300100352876550498005008521356203484625852089196981775049860051075279827228315285668128462361743799837381915423574373950245370654908173265864544492943162709890837844333496205652174188973957640379852872615778900272969188718087625428855240036364421295707087351425914069261824721314830468295273431610112351163330257398457817053276246201774911900934163919954868996740976167840786736510673177779510484110352816480908757016925367017706187128751502006916897881853101916298974981948405089679749027221879470987954023450526979890842576286012744299384462204005202138090734228471925185990804096582550440906618857635123495592802442510871731411312484974483453801046328349709603990715742176302144125230866275977433147586088582348790763446363619997118308017226557644570377493652218031385069840559417055071799441655151467749307399621713507728558326179224425375217858852776677554270346946627667956432941664791840126769203349065158267737708076612519733360373012627707438001843540869707837878446846699695022685887681582090082954224777149613237585446742699281125995868877530637770465803771816129306701876897670805325088121243950423680000406227413387065532834955526334869119680893854041328879247891953902372509416033883055271097570668499167941016481270057971920051613310372229959978473622425905003472401475185576154992835868418265807596496833534709576582650413063169548859600144692296892050024309009703322005697319232468012818873486052642831373047182985857784497480876655695392828305777148594734710588051118682061595728652987276507236012728071141233711449594304576371987681707730316830396061808735058368325135226076434682066512588505152989673551881010699188327640247980643385548163394378801317623400226000764924380616139330483849545645178078513109135961805831199600306643097263989219241498287435020736091497360184004398573535271026247357770102189847828619928791440990820834974615122670659584897781487733705690534673335930951968319563389790683725333332695066333774337001639662494224874560096435331788290872422510032043374946557681277318809921370207565579944115627824524459568735169332750419448474349966269754056361960214382685740590064445722761979700522451828650697112713269782402162493430170556093991281174204838994136832641209879091759491631668092263958060610502284740180475063678587245751660625382865262825534287432991232497685594651693891719534491182917664002190944192247579657604112270837350523710073867035823308244552021902176715671691217387771368528215999534866075835451661162911654395777388913039659712356419413579050950605506061129964762352818705285634579238658028605448723765372193822653321097479141212337354943801696676108791188326551712755000351444511489154749408921084034287596329137304232862161803071503896033541948739236493393666033094965407328715601015622597592148781022669050498403578308872928271397108752036689649055814669442850992190632135623850574468725806843180784012612947735908650301841885335337439429600949810674816548262252738477791982095576333651603162990714211768236462159012966831797190091485112031843762313239152153323002167141373597690742048851370522710868557248720762032207539883364987810937210816610785596693977705925492328649733098585231976505975994241141909998038373600567519683716113138552713603598271310424504333726072863342012563763536813058899775815755258117207222649292735039939123301715609667787620932815223993984125181586304965444099408752465391427464986772472230638969292055731144227440821465955370475065071828475096059891617811720399543338791557773614942687809430765802892706797444049849636377488192407448997815567676703967348015522869380541589194247722595059802957398231505862653844429601018850373571619690551745223324028036229546184122705520494083072130622330531148887516333513979356089742087232825958254153003825958952511348129786477046454399529995966807769366358863885577625003598690818959315106934828848676115800805170404952406750359362079315942581742792941874484856901340234894946101757979762782589538239995160018560861581720679526750382229372928411012404418323580105801305656164368850182274343628092402010249638282719044340202411730775133476401673012844253748554391164272813712601523966036589433701089044510045839299739897980706866202889144407892372118642800159552196014865012539988280749400934661452874618100612629788515174547451435157636055550979783876288109343524643550678155526258874041937499484545286684604557691802462791728239036442328948598482349928844031828526677805612325046188749068621120144279038314149462975107350504249905620305197799885615052719599635074903344371040069688123585949401786117472998078504360879669734411785376466742168397022608086603355854581568715113346252874022949709650476848520535357954331992433187882139562744428103725707978766617564547434233255738900655316129131173635462381692721728504846954486694300268001489213071640843851158993394113883694437379911083404998746558988536391749410885472864903902764665717854381932339697264914040065352095357440030923283647830451750491490941326411235949508835511280791747213243109158685381720788246646209094618628702592449351564915840406169781793597012436191509942963356781989411863877460786012811906240458432808553015922485297715017670587926373518480885359801842898625061898273806070493373387993343723196293376440004331632343608334123504330732171898019087633502749461147146509818430209946917447605739153288866123177539433137736113510153676472298118491488828544338244280510599514505015442713649724414331462186146669925099519571520820663890023305077668031737173735372699474464549943805640966529577931049383933381511727099904681374774716233993349189881342114311646704964748370854844901627884399676679516735465718928727994636679678384849723882519731462716473562624061114216263126521243852447511003146359389497384877586684177790160848780192273014606166355026945225827548549272301378737478456700916819520336705535928618835607069760552187190548419446122543931257485590128199703187760319229523294198514865958164611009708701711199845693482443498631240074123655933066511156316703073592772431913485131096821458652853130002813688404051271252573055263880701236910368997989574206719768242645459561270180206518442778884331685935041530243998464125419287857992545945119652090667749695806596380509530894434364947473042967223343340050606001376489052125514831511225666357043411732909199901027550924619232694451733213019544349020019938499793568998987778328220754215500103126104660979781173725882115051447594192365770817817989874930924975099669249463949615073315905067805607425052987478884375214613192704267246266786496471175059914325233084485147718171564906196431355147886475378492419239449116041016777473178725243453520516941331348419613905724312086762761253403811994870874036181384028797129215085651643833982115683744774571609678857939764814423827421337752554733627226520812664735932294821580309841790931756059056153891632970731512309404258781826278907771793812023648756043868925129657964241206704426976366749275668521143357867379653006182025469381390322962994961921058618035815017003140633432668389936011527552665342502983491043898838022375092795792338491893506972306265311860044471656314384370055303241218166363780811972816631048906162638638561566769095689339260172048538478881411948569544222296641527776316252518529110513638262395404705462381957832884281798728549349360363685890482510708404287725106943576455784643958939279916881761434717013638637107537472716814956301827150768649166852190619047727576947529214577083618781442596195479970798137661887308899122043394633632077380018891365169458308861294486644013236095862872915699806389031122057733380736623348962727740684811750255007925033379406451052365398092365940431623796124209336451588471335281939514220199395260073731764490163892529109083951997853235466905372022523116078386325703969880789791607773563701785470216654113859029669566613442379456226419994482982781340036155990827390104211868894010179840883442211463128397830899662336474819917963346927611028686036999599625868945207612538691186225385761073921561965040887886191147041432048157497959825281724337517885261488571659340737563493046191677979712383940554025189704213634562243981196670948695796971423747407175332936000856892222360946415407291667700168245337394577228451668898761498287999455844987385887682949895802100121790780931708843096750909763064925285635824437206485730291219427578960179167088802796195190599264177701745319319459149204638219764922400710538849506978635845946566521475650326101467526219926769764110510772281987157950834955273507500632922860821575899085220561701234277904994678826407950241031304991594181839328090596105976263669389218995970708270924046318780923386809842809552119005799037460700633757253678726438574004890541572101970884160844310399635864065868955771608809335531403973374797572607136312529299865459109682729715517933674322478967715900272773020014979983093243356812126204564785963981931869500778344274937039770290844833736459163362959955722363884863368289901026318390173593771372168934554389873591571947977118711723362189645530662109221664630930256539008504165087731135388518320091695120592607988780161466471868523653953456105867598384831342772747249199511868555281542427998542999605657263430733234061139802036272718327388745406637868078504433107976450541735840752588961328171483270028068648142594484645922102540350438669317183365358320813983316640739322142055027912652446738214629312394630127347972997570926447848965190241518140896225136438610427429329680265459501987646352996705125402015236201774002692363339239939094916576971472408096634746364608070968831666285109082439727003319450435593674365861847555996795845395740523580665274514870602399102241670148202384844441035969392125786370428756836893700229817335913209634929611599613067265119745240233818263192375945009984502151393314872541687539340463500626598062516127444871238363259590943208981544503516449723931851394886295097199397383159104653583674265392033860388719682052834736330788657271235570036533823304264285378908477807795743501120998243473115894494850031573920471771467299953589603611805647792441445646352579474829934614474473719916619500616201576202057808087742657917015195917718094778539719833327257902049974281194582007446013714775216491209840721976287478939367135962532841223580292721700858142928382659838283098871381648753537533548576011511506325108554447415399544035779501124148310760429969236629264238640888799035261166418771136981716656815707873939877723599974576467667893969711088730432216191226383211984479818443894223944515617417704998473727121819168284762370739033995630700779774931008704574117565838814463553554470054608475592342849745803433035662364929648051202113846607300273460130970272194662126294576207888549317079991724307378737926084165716563531162155883228404502414199903873516075186191131278594281989889468452100531294902147183484274511220797552660183468142284311438777156581129362995614524024464934888916199080802517244496694392267491857740566150499942517247443797420310557273112443431867032870322207202006783294274889164354986813188718369954727558445847021186010157437258385427259364678766958066409455754591636822770166313123829057683183985685041207891758016311494025371422609376547458783210037056185660078618709902776692400281708633925212141770214966578622454329554086755530578376377534533731280447808744416609176944349687826164083951548934449251798298437651597778501227925552542817979132321136524283782931742864639816962546387506866658315186727223820830203897675948430871664131957983990334025802451181125831239443746279550364120059221058048924172446280907595935134552576349721252914092325288277878161905217903160404534114846298729290876677468551610760627888872868252614185795275137960214384792153422927261113134706423495912319085066765277382053766558667205320664819784450091362160977711143753215698909537293461626013935865091218584402083495720918759225620463262127658918891030478696040916522706371661667323500258707115074800053400742526672480740125172614767821311378014744777421965440499446201182848918975684044506384164098624199633479764978473658656291021503373690209052561846998578965699153435490490331867507512086269347049784389431578387382467446245809880890149243562864959945650684765084912871320965078029843336564793370441631051235232234145500467675840746272037470346316757430145525548445992056222386289077762820090740374977477005840277057489852303934238182180468372724255089536957882983198673549312650578670005511296552071854590570115126717087025127023993367544110371724607329093037747193807387718991199204816001133077894469387084775410342370509087443557671337662478683752832666463185727167368788734002524173511001295277950171551838345544331271900493458470570240712108271788592841781116150183918180427297395186771956374110262825715264100244094027007109254018976857949898901227566784155394466220729573219279325223327596060270881811937441126698194429987366342356590997222935697360851215585556920898796651242989913217472524477195412904537520811334441525925360327619171345294153633219607097223421175898180331346272555751276063403619365667220965308410622797297461499998886806700254218530403950701813801383464580753450335452383536934919719101899303001502438000743457990388592269930637477098410031567041785527318914239695719975343388689642988439277852018253159431147179400897784800654731765073748405392554317749781338914907906312828961248944738425062949405636925347378599870979394591875863087723917339478074529505130445598716164717801417194957022954127230558981402744840772801293959501640121155217395333333836439927455641627685075781424674058365359984684338824453563184106285767674068786799998259377818135409901872728462947612010864643344429378497577575406687815832355047081105553773620399726929324235895563314082462952315856001459288152703439582354359432906942669713802473722380199496778854217967255767388417534265157745848791077870346259105169752951197622037671499891988097410875437517521446530019545434946507759423120658656262609587250395306081020588192063668022453041304318242229788990141461321659581015036685833695007050390485966404322367638298039459864329126401767880728019307904827211252480804532289197357967807514639375260936456720402946107900544069510813254354602162075302962172179059679246412891576011432565501895245691573935460802646945638146983937352922505430905347538467599804548802393942159183151233979885489896316107822280860529469945508844779856626078592931973489571994454865274548865396073989069727522670334314239868581678725183996798133279265928787273629444929485181697321355299297494452417190713883001968314203054560295335109642293255283335223665877943518371238775223541467501454312274693468056012562795874308958483690019057715416875335621670500277567379107346660977961506101778066939730928534325622901603290613492469239862042145441372621382650088832277826507422769195114646372172051524101121431318048170026611438772718409389755533287906783000135647331104236478066621124058814604858964696224064740030166407068616181072424392149064264325808803395927772753151550722254466260692888104143165178452437439576484629038523287989899410610405462015291592530624877669734354233464647592162581192630814028330511943494652993125810495919686538780572135871237111582004721342008057855387879477988186517700118338064636678089202154882479763344102927671926778172150017633865123636228299342224953778417127057029902838557178277483560607539779063780980838511118390277271782898524385015454138385434309008833893473707268809998179968496118722772652637843569682202772774870331149902672701673296161933950305784724389105539703855699285745201425547633559717690997566361940450510002602072396928896874743523879049020679057082423237381745412019513023894691658887323140591137994771670795048366332419623540017120656143148376963791646603545051470266503056391349012014045222668664379861653525487237808976107176646420309321597399933945394132721600132995531456945849978177839916826216882372643086609575351820929007536478959495035803889709283706110757181418104187829573958398528136604680475248330927998509596177464829116150660566429084723599950421809299184106266449665353437739159284238715811297767439217711421490031407719075300585554127074933305700374077150922357956437580840225222413015661508854513115498903525564774603446495320403247876439280516369050907316190208968201559662375869781799176262000127973460145104702706176431203899465584498403961070639431703712524414297417839051268981838795921544501709620721153066900385671598894982173945648557185281443229769418071946686168020470261696600865028725202074840126466071203553522642333414161804441042091910602061223600840268060609903021596784011956063449276230415500058830091800362145051849933848754717023425483599184312806716055900117644329598755794295411507269260506196000614430408411584177668796511322267291936026981805435266938887454386900411411654034364350118551631861728396199732913131189405278501020862602186951037454366661415935301201889942881968334210949649873536511368806648167492499492973208016787966842559671587773369749007341823672786704920032105699451966884952545807937271210968888570064590806045475560874829125652782434871309997506401208574627514305174022233525733603601273031714572584853407553234857844181650683801390822507080558318878969634323374954568123713124154392042505648203943496276941964378870661137824638459425448011217834966572727779976796572047773665444770181243347641739503939015799414715653681671122361672070604599052500332680103758520805762314295675029206392024242892867556729489031325437194734608409859050956759615904163166701298304990619976561728830206270378996860158693157039202708257783724256616180606606897177153992862311762799572745997286770851498007531334467990889502972257903141954466322278431007548771119613843512943354459900809637506069724769666001018595318207513452927903116158909067523311890572922751948104787621433232670275154279052505681843366504686887011816096326357413767508134025101142061955269619326608947939647796240049807428555396933927043369162385770860469729660302677841270232451565777934394342684760956345297914475593236406427688218977177779371924617608281751801538867059008340855187786129884222691821039978308904694312617368424917993579689398616948168127742389819212133283847483807026091263811599658187837940237079995047355150628354960242037826133764002322112599282164700629148040501390934827409784062563007845965237681414958344647396025377705107030210125163157468589318351904652744612348665362471645219696546012344827835172296527535975480282081280671025243744495299839180671624103184661949262137496840082662966698537522759389959829172511080782939626233776244264136073649435654974905703563255030667625880506846236743879466616664831208340846977542348518731473876379502445538576901474990974813864892363736089489123877054012346885980525959303136874953711230914733405853548677014090766317877106909071624165832203182013313401022933239414738554894020885182602991526369364214930591949876625903787123191647057674107573858541734707960787445237723825250950219443373412337531653464923848219486216762265882707830476959862773315898065089101635493242625058713453989488000248227107564793221523173242168043994141039513767672210587396870948708520243352393771207292234483276477745365070197226784839235038451347643005608455583518785769830162113983880183380816153281996290360995273098024407869797595763868069704926393809519315068038562326896838593792890401048862406521783854683402847694190695017752302852103254411086976737420217494779445970982100329282214400679718513181158911731071238863764044163255168731144000596998213105115579366399883504635412754739371498805587088968310181778792808945340056012101830626205245579068635509249053008823602015133839039494245131422815866662855780830117634851771368296771541034282782681967389424876079042931551244932246166148434366084460800684370918002128370906040722824274979483758894505795495329822184500208270110476511921431302380023082984083971130601804506406401243433848263616502005327960397218414057638163462212199823426403364389288101674918203535912536181446664097238772429704853986984530018060504629169715685008917905215830624423751182258748937088312044278874120383094248241731613215018026617929557157832963885177913672583840579655949211865651192939339576201419194988261983230595119197070884347432491754173437403194490438515639837205855984629504471244973157616124010460675522451622665729687799068915158335500278154457381445361478319104558734201106095368744984267774774414211072331029496628601735717631393901131036561543013061113313385199856401527785820773164641857077135756852049565606081267555945560609180011735903594818149378038139118420895968399391802493213547780592142164784448231362741564397753314764374736903847017747659971490727185170855949596433448779705054047055054052677605567751021359257878639096107745104151602697143648805897359459657607011979399555933099646192353716590555682130753211651733912149807254783912376115776941429261971249539501123048292183358043226391509255154158539099417507793134325497297796579815940880523380588484783241973521072890262702856320619729222623262958962505819596888680740736523893529211742768657526514956784072077283644771569860603424514254687591353925817404638370508989664686313705585846466941610784068492669423309001727219524263970559638610722984400462337225091429517967304904122526666444899422974104390793891304237533342929078369381736181254751690863824007103342298989560791063714100750746810289248266138882333561201321409029036890794606394740113761632271356035916516760477353809404932049026063731836416724913378754275125649274657578935426087020260484432867442542890671405513324790877072508123142179170008120469653926442450628476977069641857426294298760684187019684249146625653235897472394385265406912278688327782451301771875241359234482354292568585398137210454704648073417427440917799818977462642919101410324322512698664174443159168143252020344982690134175708814634018915088991686934905822291494687129310072703925464025453535580884694641301943729348936430261905309616504368322779311327958661747197192900166943773653284032655236886801095626987974705261694332750184645482493415124383471226554691901156664192673314864806688635297815200992485471482948921615843371466996523986393723047582572568948818525382212941322860874314718841697228632436202735963320036499793990124794177046377638035167090359442046403694570741551050169126083983869408933214472046052806830494627516094423112545084291760344509907359178311826392969300148954934430798725534080434243923812071420809164560871051293527446675084273090150521363168292933866980932608089901291042687510133083406379083825568163272077381995639588594495628577463552039408199342410658461040245947021072656166965094388094304205429808797245774217336168540981183356945910245448488938302465289900748597152977484093751651859938078912977504137921966058413872171860113982574043863205226971993405999768758624340404539620025844574487443088022619396063771830001383920769646742661920793834232894742802721342428378589253935426599260957258003332219064003648004472935506725185585781592640791958342459864137161305282268088946581208771674562566058928026796676240995792944364618279425747729525077802940528611104723305339508012435908763830098214124648213982621913790534709183373819571434430669899735614110467090939621741535927476915888010197138506152011731042070625704633762983174179104691314619811453132214948982622074318609305386304142005004378875509438540812356704069642867860092265910028244378019255501763481160952155349273201407389706201993627525399105220297737214718052344191086360054656726447027957777841624536650265990892618984263315197374520902212878868471435717610776278768841986665267513320989829179810040743256624491587242238614056695292923530965506460642104678819805915929291149434966791187216258300554647053787011748424788484955167278896067445921422735669734585606020712371602428261150426471771542874691342932302935201990201991149943240703344965047826558353989523252298744938849345952172071940845207594850904157736020200773197945004626301627131446167157871282936327502976049078498236647138777979010778636894606397970895684045828655783318483078853448597642320632837433997891320337761538148798255264844054665740788052631983750735733723681224843599860049370745909410389763075610618836886973610827504096038615966805563090761437330790992625157817381405680856647556670517435615270093396826037587465806389352633010479766666474753550790534496075532885447952962094216039889865532342267284153490173368267125902525587653212362014577169730410881228655727530659810676188808324373683015013775916101783489048542095390764091402220836819566471233298465064230548247149229651328247359198863144098227081926950605142989476629001866990860268611837270247996120713060721875386937242368209958888476991360185923013744506875846436695021870389731785980114390908186577982010022873452256921264939269839193298276528193984140676579619870818210755505873960604741518167896206669967108757452101510087491001487947500645160030469940695669524126759513949198348359169641795614418527400112598502632024002933005277819579062448330327926355129198525231852736633081204942001660204205940323300054748585205890351854291313309237235916807128120625366957690163804664305949222385317330175061662113825169886435390385713336176715326127315469023029526901330467380829267081439044780000642163442377491469029726263388539851739808936411264613659986644672752291115060026091815716849010913298080241726242682152103193288827980643785726700680671405894503939837746841627118870105132243835357002739668559378104562520148087775136789334795146199660610620590182784566966687730332129878179268886135167371799652004789954296320763782034761086439179534704592216024398175034695902892214067039733000671165176767452053260341421502919038323019328054645158297140436593909829119595444494985348700350643660775450514012079138528016900168197233874617373282193195124837172384595681988739401811236840659430778188812547261348678802798959532786364703491007672122496226545494399817571936226971668152259503565206105400697171439879587538267154541590526165020107406538947006847160006924913291872625374999799527032324883260466239576074959421856366469161825727287168368298005803756458681750775981232587190686819465227483576110767780024994995853886994266777410844675281730051175764670415697339711206051071082311943190833606806918921102933983538722980273958287402963189240327785480111311999575129402763744644934637181427589447288064585008894099239665744550007817228020414563452825835713505977259676199372385622271759067686864258180745054066550840443663959825480820130780367442032124952867432715424601861320860751758691076014012521882066225484265898367408164758099943760127063564838443175256377324380149610636392631756527510888617151506249466053113480221968953957211549780944092657397287847237645718643716792466825235884350021807435806944227162417519658816420895555160101167413159750973939281865277858819631980087788642989347434818484913952535577853508347470626948421833946878501956330406591260616162281600096176366316984304079654417278749454005561344607834638589477666271012604054758890553543300125277674907844677628945276830645177941805099801248328153183634581767580769981329745483445577355135362759473363247013664234903161622490339221754777485987342036024484573008899781514744792994871427372988030465043870901034942077156194916564385362777144461339420383451984382064348509996316169828052935238749174699811108058019934914864429517946427239787934688249393290561225092941931398550605312914334120248845964046318716442820514197975193520929204496581775775511159076649086695112292231814904698741331372031072742839347388592793971710055673239347776713361429153154899253090796133186404203483164712241717116071073206080405511604925678144575569393761446538782293514748360653621825695308317925177456985966019783306137433938845500848129371843131021691787119116165174170095371581265842766399983623495336015720541602299511332139322639415270039655661240127659280717969587945040154476760250787110849455094800866943959937795252473407453458313054399644829573217187935360433386378770568366731753980274665530999530761986473445934686989019447239159569647412767864455006993986996905357825079535820793327932916221650040000372967796808474043426939919461715563793862252045635244578441546430077238921205130558265159497738742604726606805529957104698603254449505642958474898481825262922661309397762635255529051053505792119713360623846593392708702030653267704150553076229399622066734051821300783201592247323422200144272989327945666608577418907472068926249423921404491620260545704191871623497200780677512963088145867990364372269090797896583117117471471106998613873748686968937044419975901074580876909232747083298244189722104632455486720982386879587724190415989794480188139585345404540621183388226192627745630968681370005064978151281993938033794156831197983447066239603656150833588497975302078575069019901073168310157120060398655422843959758801688681157340496225995480704926564043201263105623928096055578054364918732623918046478548828176974972683344378787692608617679769893811742581149512937655067584184562670625095271432266101107818174985887855645569810379068302879957933410992982168554102084466549798543367275024040907203385991571701534342934295379305292116318679215094198918837943296862690497763730202448697592326468305835492881169724080753556401345172419033442304554538109914322773624945665239121175133239933720941827624651383885173350518169357850126916762275883474614946111373558532007952245736469831137114022769303621917455399837459646524913147953126364004271162847144886537605991557361043631484335211770753044143589726507867775749064140503049206450246110155071447967265681497905732926755529161371508088339607655744161628684869966586014463717742142455911820880451445747408103331357702017902297975436765164202775086436208209417577479698056743640153954820063712375494834270712046984427555368023164362423309168293579473137977584486854383852706276344786069411392892985166029136127105796302225412261274624308481969902876301971475494514119814271829641948028405156820235942899276571317382937920411034648740119506396250651904521663296395414422434528862590774855061185508002038277216574089236462590917532929419653932363253305831704182180903465136240549508831182880683964127176765656769449389582624666472761340013127390690818823619329358915363034710056981098416530882770136531904912241208304697100956704271975930161842516669578937765268038544391938379204548687505847327768305299104375405389065599652420013389023577448810551143863119900489727101255096339207486307837251519270530475873378174297900467809637825065290013654688991741188441181044647783377443950205746458069586872440836264109208405788007391501748906293480236897168358800727576275575812562123256033556595010271570253753319258521265348964458087353004061542993291868504306364664970061083592504901814167798619222302743598151242972773399486118943874580999066655305423441153616302414638325028203507504504905654795435661633088863264567797158257698606451667176698346003710737262482054497287284633189320226166134803133172050965804752958026946597400420714100407549029756163356494345283166703784241760202988392348813993610482270636561218958671771106957399861672774026562414208812826604658637323593577243033560539453686476611362903771735395901629266458655800511318995821020139121548569098204128671617302104017892829004549973904330094222093964750545832099503072659642020377489749030134203457851059453973614001437838883384170378945389632669034784457931318717046178210938120214169390687128275530214270032672601269490228518624266814133143545732597252153017516894248764385756426506489085533025748600413660170310888076218034589715353298612222348328621024073181065671672397831051447571168319748202406346190257639617163278034437920023166261960584446411103506175631392507987080061938685890008576014564109119232536583023297950698967542600057058748484701960499753991939315579511187488803334216514849040668836714710325995364914390217068036262232783550370467343826743745387076546977291335946785131461362813223729033922681164273169887243269607080386796472967185562849880011348949810834319815619066397966442196580331994501145939135951752000982996103619404412844710262206695096576109572591153915898612408090718606126861889930110181133331959764445684516786853620679165970454841068360053856567436979663384393488160974483932230390911125063906278889349970704880526451084155158031673424581555096579354751760861153221079449905230074877520098831160422329459779646328040100213236932607151204575600417390511611818012669468993950086372408322681696399405953655500677020376794525416468161696747582724889626532804689961265111065811913120120196000341107123215920858195576059428441780212991213902568748804185044936359913476631072906786112894722193008000243542059080603654440744426614994688510952047600577967899782179872672451397872198658353902395693542875603241825326604727152691172862852820752670482358531033180090514508963349780541488260218154825288402998958501771535374690181814500619852330865933764065513492891092934877537892524037839915469033524606254877454195013522018114233050661667115129421601878859799504730050081102749179147322490236924143662932882723233307050574809987693913986087928037098705192621382807315581666657046311241845705854090313938349434893162508097831718481609909362794620085533806463191513882538066679931628203736946985493212164567933732565917026136927954543423726021206587285679615483590832702370040244713814858943936564183479737424724122278562051341159811943474043349061007843724423991121223295911551724365045764600730153986945521344941581421260290535676034665863367765680143308323198989780542893055293261679535015686900770604660659926061462971176365289574610501925980524722576915365228011878656512634101798204857222176549897218029024771399631485955729013789851393364930110477279767634791163951760261549387934169763865009719078999878622754021618992418736589896111872758954035074068322128052146875459312958260897194939622758785424918962261132073427798733259596267714839702325000160662171423660432585162445777540002057668609568218764072967958886235804067745719085386360558973741610502397262407712669223234390932021054838671651013254454350925413603808033312738807793606055647831588754106965610911062365170946952423667226568182565042742121892588287690012393828977890514902410662151249770675103277755382026564771309098196100130160173236138433561672789956599936003999479326707446507413255609558701843513470631275750569739398831737775436621596837215518644202304100722315088828140162855378723891406197436602714446728726737702687631627711840983462593126706117313533566813820217186498155188887131441075585917485321302458192953068465493950632708530692156946451610121444944470121968196669804500229862373795830965946622164506620540417182564448460252196255744055884356965893445863226174559221977397785382378577511028780602785930792676098163280088388623377969814114422549760669519151266509098846907972726070364257474074953606262271517752103650107916338058542915895722314181597263069314699935498936450873483556651148550601910074013173523188050239066292701906550240758283570093599575741172035374538528767800841668916736606607763752762953067269882808436563613435054089014700668658747852966915336470692726139145641369950105205160131927944031966611894407303229521756613966111698518436083598521777846542592813987444244283179316777663567631319347305014999452222817638693666474773999571897566259058516942023167761113365468913485516004991165437820170854863317698268418621457176279171081806045321163254505574713277351960031037352115271953212099343430512905242063731982607231188598420834321232270991678475242586155913442180610514597730805613741597030138888057186959537745114760675185134358415459986996600510385154077981043538526138452670823361003257861199963601715162150271051115745422822232345009201293659686096731132531403098106186602355388716662176083165480605318672018445261961870580759824909319162181017552047988454938723422797516962329130153365866304964657119442488487389303128165950555705958276113332780180132110808194273222597264032779246570829470822790668161364151548245945335030022454540172109854851779960876461633353806701843300592559314836087573470665129207382105785503596472920636672540003672580778399556553456632809629045885217028590084818582501655982378310668249060165038918660959796278129063183297952614735540907830559758740048553277717157708655784337042205611353263668250896968044679422225150914201182855050749211182093860621618944039425490950967396942639538561325464213267987618699702781156285478515961710601175063534000921318995403939804321550363309713359822768084959230171230427152600156589903042930308763360929482966036140101330211203337215691066887548196921254474570682094186497056104298194621835683923706640771894158378080271645540448500153848248095012945741876566597910862597078376008844176365150182653026691434902937954927802326245113544098433241167836742736636245159040054981374102632054410798592922725342769022958539613757946210636625486564220241540132497867703251616531909895037176589542163147383674450428309505198038836856029088976905503155818777949317459440109101861552151550595139361367115895569463360389108991222400023628805905064244930948374762025964525921722682697789048891343121796403951553447527697575194136072983735293966870848414596344271109323383495672153755598548607378331519922010816209407893567676047430706789730799420826715924663398018066558937123304113467860288560785372084698865735097082033145027852127323476354791023637669478592905760256114707458934732958309522780432591055884993507191952123701574756815555575332424761124416425019977967868325598939605293667699109978454687206052561502401654263961355788081211118312842488466241846267170205488086596954722595433184231672253341216906437815894524894271137526886699223956814958464340146515890446589825181512648125472139641363382817042307646646033627427590736044435870281721172886749763930001396293584049298288609064820941820359680245091971177089676173008105150389811636087635953993768972159335890607833032331156246216815054776076515807655139215578695132830461819542807827353403095370546902285319837016698871727064894408545063938628654686383887562647867368253107890029276241074000946083699420456076928119573671619914876285763967308630661042615676849900316535150495212140878290992408805957623022846978798287599080507801730725399230139595008469843721664638717843633771194904585282769864817519672200246553536246691439627538208867294358665333353962270021104199925664249081970003505314107089828231418640478888038479420282231430337419738139715262188738204722660824711839170214987383757104034903644432162202047264688704881710686851613307596704649236648798107480242941195519574917409087866618395172604037415071673113979848330736324700839160655837756814128024073770858257920896459338580393918331374625411959356893724737197063620166347094321726299670788298871413638568267039361626606294724606466066532133680903151820165927233560052179301806294612121723768160513072572870046008318269118512623276334503814280293042363285011254612853717954041837481381861235576954008140253616286917111844577311332531065670516076934123522484662740631144772938244826415012793977297543829064490807143037800057922758934869868075187346532732068771124803267938663949441045744052668064542791725536107095760890469351586572568257365496554242957193641670629399364193797679996668936244616141081805930236199455041374243940960821226005480340250068222973653542190312345085234351951724958230455858051253504851439221851922602098548221691023754862826757662053539115652324816841017784611507512845590563431146682134184361471088159624760899398587551551379447155484936973051471320910360110037546290897175811956795207226313325848613221072253415644668593780105798142088399555034962010828053410337950225465598876374862917417103219547584918425373930582620022234089748293817337742501281545200422684757302893892398632716544799490733952036820874554863481035310274284271095573790837116335475283674004620440781031235972736740336879866986257429223647381782527023446336316234463374813390258953289010785179343899536809273508596145705667121354972280758054689806146247502098185231132287207006300407811808003180603223749797727665117409310076762952864510212301757220446194381311584690979690132576433098438571421166474838863491556573028015295056877306755125481694229029603802759294057097394792991892926972110912604257136355534398870441026320746275062129545923620312123331531389972634056455117363491942511722547908438377748143924074793793721522273957712818761926376987804905242391177539737280691698924784260271228131502809330585267790275776481037964541282857543531277718933532645991652275663774602448384470658488579741532822509976103491262021063848351325972613472003959768842420414450168716151929352448695036228419230290355577263732634366673432118363732391538651551685598925418193722998866870232158022175730982721684725427494257593292261094934372587409357828129098676348250091473784499781157561326626254556038171848348502605313357138229957135612364749667982930782074053707322647769121957557824449142519499951357151709844802494737918792493709383450750445537590917875208094762777939351400891668369035568090615010889915342514726709823346757060317698636226109786300121792923696118913093221726045849039044611477838667139213195524175101281301117260144797821216760330445227921343184176962072648790454226398184786267058542614549337791938932885103552498862434389809566651896157690336872166186007348266530238334868059241729553576449929281618453171582193850577709367482493843224894562682947276589830268305536815537598558388984153155803834786390941250185692910270331800302913207686624551617306492704247235170871580194814370581211638031330139593071402496777387498440688203926854799551914377196877968294760707915978704346210815379820361330467811268140669622383061463204450193903033122423769070982134051161397620397502830702629238224407048321411040100527561781541600820827317327160643249921801701102483760323817869358474244771413572466377983195033089957316791884102015768358246216593953191444685277954771126233137082937711355264995349880138858449184834454928050656225206948228064091874620428167217887164156813834526035104779804423418934973159599275500919616471556085995335400876106926577360788942024266653072089421233725250550515039071880395296321683223887303784496490606563902339134324605350917808162464119094748268511997411743319666644683823609526526503713145995062045510632321289534767250703724450693340087483148127865918889581365247557859427401933708345912016930662781734025911256996655330980151580740221712453090689408754514598439896421379720274252008467210360377836835339687285244920490791442704665276744706880956251706123336711979006302301003728264779960421314527249669707336581379145558446399306795559235855427042289676830706411501344020112754022398917494163450450069454949875347586618402366820835672580259768075000806119687538471754562017904855928289980349539278681934491971017040902146297706220361087018322705759809572451175239380137084124769990592407691139877108264005809809008118629262011790834955359562872046279555930387907926149242642418666951861819414397367364302619372779197418074769496606498972088625439011046042510548270287973357742198826670178321363745984700591727484419786784051569912486140248359365761527573990122280039549202805168787486150812410650001861168530141578852396069166781063131951139402329170529681212117170424546560679592684753703715821229518276466441939423191767686276864669770909234662500271223217271428978848180402731005020838965317584314987998955487335581321258429756147989428179393221204032322716176329896079252684120773182782525661529801970468154423177158833140136512222037998462381203732688835869596175428786762647768709709107808355174675726424843801263893606566393837671105120354676206976414830994127527900217276280129388007002304380971830331290963892187564700381287921458503679851594693885318074013300955905315518543783487156912100753368929836698895691246519706652459920649781490641741267888234267349203054689317595690894755586718303224979440895659077367199732541983497128774047335212498765899028826045341087795455403743280717123392899011850277006141770852882591793980036346105318459746977083670698948771847602027205320240406746127507610965265413613086866847680784698652508275780988112620236922731301443102315509770787506624744160203488225601557383636497258801016041088695249060287030517598603997888116073328721957065366140173033750115302558054727608349624170771165449674340699612682407725531295927079046025739996175349773381452735915623242383701256599184211009407943051252018496121782547874233903728957640991542309763802150184140186126386754278721717924141085331473503329990874556499469661474340464404645749781486016830087274638052720119646392933960456274266478889074015337188447820647246350757484270921948864724692939739936909041947439745698454140669609920654470133553759639926831139980411076268897393722166127341653790760701466001770813478831368218567802865411252796017572099677084687923772084796082146761590604466577970616461712473593129827979000694980380913522753375236107483329070271928273979422469308497538619761888198981044121548535653590107525697945408299574081472550595332833631038407448974029209020766304155085535403712348794935388752914904218313468886664517437886015097725645599358019851602455966503243192826324043941316651128596661102115678049853968847758080673788878727849936323111902310125849640389553284878429280088015752402730406774298297023993743613237972010687685579335898880436943265941633529152002648359176058162145548124686120413387533587835883912111301938500268661826039731908639726383504856818274401193751683099553039999893334719488015395816513267365388483090703543083962427576409879792832498626694554156357769175679976849284764607671646240445966434452986262604449292565194474655030413812989105388722706773538983864001865112722736947523342616678985412919930283412801741081947391634815660064249372588452985651714904315848728734938698178349941103050979033662174477390870389137591213318598941820128095323374064693528568926514859471572875629332963239563573319705864130934179562707606639681177125920635371964177741683979096986617428328621230165716416830792842570681539262332202179636568003715800176310466535184255903499513297725655649896909331786750005889762944889677590079735221323471783722506526252293275610514481889566570729919373294300888400652672753937548745964525374469286648534238072801807970274697854524687079246744523766214443710076152940234981788397785852505359512972747604686581157273101666538386139006080317705220152842788994823810713325491064764272926958973578842052793310175489727519449069095019208429997526776713054362717739051235883940126850015282133834659631242067145812620580114656372444203325783360247141436227336147991959131068497191335704938878222589970627310997927862077406314888313571564244497675764478272212313740617649910287636472609985788382607174889170576891163961685358585776274586650036981348454898584180158698378239676779792566065081817230577066942850269430748405771865168338115168272648122628197220925956053468332140812958830822475869109713520215845500495935629227950050689567594031008564351102000478604924920882327728960390207618266734871759796242824208578223232451394387393098906385831101833376154732226309406329347073672282116362494791955277890289908208729665154286801277278652131153865445038409333383997168868548529586833782983758918078966931156221216060679603871086502907624519189534952403950734003386434962376989428557238896366870845826702887588920693250334035264853323418131357877910577215419707570567369848669606257136999198367894567085352522230994935725281404919063433411149873398782498466358755429838733615462458256007887532509074630622289012351382949246608348096417951416890313782448466932514972142669304115523024466953730404644091926548784452544306727177276395762980693642243612831651588598549833142783613434711579977134419190831295717565085409616236762342772291698546368406244392849684067334673669063037400377628122308900664151436448698990632992086283985841519097357021443200232455169376285066858585609801283598140760890677245728463542513496929429249317033653319036260981753343863542109733596968338732771769838571984068931227794234059695777071500803034953630658127117545409477094617038768678750838966363468858547390447812259110017369894550883749776652635659878672567440878525806884478938314067486279843020586479668298728146362816636297538749642272495329682385518730306104348288948897830962789696307441487423302716333872260220712171687378466748659986538312030140696117617194764529544498786911697403416288231372779436438087922634491946647802869663578174318612279178030251562789989511247977583277121222186772870849146222800988880824818613776121660871459833385324422049058347929256911142541706768475918656140583015514781657314754345026487138245150285355534764001314361635896782286955163745049586803071223670069742276223764062391819624018661758849343310471768318862024037409220409614322872970834276520214314019595181312108566885948911526377232774326493722305004393286431307127019319632910150349544758248634621372121483857210000055788032284185040264208352492807678357673209867395654811535937667482998864954171717951124397583490478676434120814613444012164961664783346110182512484300813059789985850580611817598223010756396637780437342676876911545532607072168190013823640370325402663263221441360159551440082608708037154621115334116131315371892335183613012026607082418968558771706042207037609456249015620670531553673668882732277177158206603506722492458690126272842185069936663917048563681767849062825010275279453489365415391490870690952595099154308578580852954661633594911354501335289517990603646378735867431657724729210215182916252825553380820458675437861185763176301734998700163842809517446706869417675605876357756129115933742381265215459706349356147656092294510516307085488798998909845659762069899799743996054229908150997120517639475595259153141766565859236400033194910554758901390535558246559598782199243767006286067284780426811119635599058519954632403812860101713772821594628777890954662304778693967275846453664485098210849901646514749572754579175825109383906065780679961449849905019438372501721177083742534032610090400489339939424876398413582915857081123842109105991114568800501214973494440096122108059443806349547902223787454020664874642098017701649803894916879047223004909560749086578813059319987734947582224710762302423313626556844011540998891859637233032967168523235358184605955660079627120713992770653892604756134078168404735372396784352775992518532712771411481381307110378854035152133842320420066474654958887262380709139228094802216686289043540309144927771261870789925537055202062339947826525913913544764856334424655723842398072042542849628396707174629128983980392667234980523831694953157659529286505439117666779053215621768794636127778340068399124978455519641919220018586479510818103584595474835665524306195018752649925579394342576719555360074191644282564987967574149496296090835502824762470438033266942378400011878783712538364732900052380744045057364206489055321621833284774843761641027698789852439180314954923194748376128928816250697268323204716130489553563457548898367220696288338049412058247991973465768980526636882432658767111320541568281855214800283962200147178979073982633360206135301623715713355062279298821217462750338335639541762675557294687343222482119949521837324358931959282968041411516356179412163461116572483963531384144429785537455352081260592796939772858197877625537221549455809376605918424568572420278544916514074910070415259648786800906717118673029891264841125082436107471751823922246275473106632069498608370413531468272198529935427132811008374141236607362091935735544183547890100351219430846344516568745873230063644446987332142094057111841809685327817350654302021111246850520702833253766267570155318873241587720145815874603164359312745645621463311252897067598703417681196229260855633967427244903802174423526798073393345192957612035912797387812796308391613340168259864843476160484949666711523274093592978867440307924839370924659117175994291510986974654702478029252956680703126808175091873898675121525056849565848683737885206343229697364977427403686363231045360387584911001271201498143006961095751891304383634868618164601746707971663917130270021055979186462665690499204450871362134391424905050740778630652876536315590098831793987913916576440564028777073747517427183639619484983855657271180063360127625882701050760063070396872219312287741546401369929250950417848354665255097251393569764917027308409916822655180794328425465112852139052607223665107403776571034513960563550586238276580714789239962882842191503732357571790944860628260398150152411391732552210491741214617604093538402636310706109140427871465382379103880993869972846527179911107773106744329862152143483504496566583862500270120079900860774345249103708665637463260976861863210139730377959725254198801895692000104973255030254192934356428104252434745395210425543316278693339084606478653126189590069030155419594018747532306566657785802498587124387859649521809052239265294290143247096156732204937552212029847931071684550946586428318236731536314506876241620136510896628339071891162353392726240933260630739500296232616187633809690818912037063425057651025256300374845077930695123955090751166540949988361540846975568177608667677664586823045298873716685167186474579751969668769884453786422444706993523963032655295694292609613218235475571487532316632352010085626037063311364774943369577139071901478416317475155706744458306411941760704611025454848892408882050450405245678357945787373522549387811475140963268721890869633573826259491463898492464248429312936609815080251147143169266365924885765645260884180044351044409434746817042247216994663701989322838830534276214471351585517050020367582773287525628703802333981004067514418388158070748972831389585318227148221065994395400813044117104166579225478836145787794024926660421329395444925583024680519080970396610204979101858442086805669747738778934594258291898847653142795475165657849181624515566293092139492877750537968173975582492085334534635210739415731824351632639051986008104975925161429989454757282311760867528187726574513823013940679730968388791379249242882531479640762635758699616014704017620822129310099342042223642527563785294958929285501231296003926889065945309705615982111623172262446931007000988663821258598993304402544558265951174268939131593549915073451256016596881577099974101892529820727208836596336839584440507875461883076343434426855436973408608609388247835883131373885480544774529065966038765195226014501468559843429943577668056586748209834052376268030193411972161151141321199498708842327428436125924382407023843178642524247797249692377268183519080103268716787475058076463058757708210925360401177639530952891655941671161427677486628904714140069105175793865085525521608358706089758507976529585215768068915298929914271502659209480878482494815841200194572498177511263455962451930238707989267289323817087315949678217006876945198572149321563248825711022451459400501966224914849030185991523873136402490671287766236487357830395907793976389620266687986226963358112160433703079161601389541887576494301031415844645266263085292303367963069909065739569985486768783189987383218378111490082522379639170307451677486807026897214980172180511994453585405201467889480038711952679083816106474326330099339061690936919351436873272957162067564105748426287280202690503488366745997629616938729599503311628202119815340998721064418664143481952509393504175404277437571917192057953288196823499771029869724226793112693466626748309537126808085507448491113296241928658049597736732364422756216602445757778806613767721665014360411087669404158723142617380586855896238524832133727407359090492017205002273137939284710908064864086347409971736585614828846742889078561991307554321048497694564354370100836117772453809500143938249655117467039808871427052234038691132305445129968724146559401865719680626958576197221411117015304300609470754984059526993248870982993711120419443779392443105974769018422608825882151006134568643209694763333457038727566809511814596716512778673645949634035599911358385499668032815217142365122466935955195516086198162891704765961339560146017445806815143380539012828550149584249964774935472415794559377214449265493358674869686722624268732254459048611956117452148836207297005008288704216524854385459480415206755532178938315165843478759382766513537169590012447103704202055138818189716524939476784009099524118460074088343234463590203471779198464535887673649817561474179193763242170053849108054890727567725157087394383943927482028724949195618522758109727625692844924187511072312731801080376816889083315026252083489597921152579495902074441384370297306335308745999364258523724259624115044107474308822993976313774866992590568619018317700670750112491598683737433282522646698125140661527024088623927463596659130765799573904052866391550056727411355111784521573982873659976891595930809379827727891262978819987193161929312831105861970919845974904217023708334758112758404935954123529972432044626092754544104851384903517827182474599146926529503561543779664490532294816172668802911553248529147878075435682542739143209696443164742452920699013525229194275859403773493864473678215731650715582174876576787876634253071746949639213575222596633437959494683534369884179696095849073358559551784152674231267349059196271667145852596911746213311750811786116898907236625943051676705634044932953874873762280154595775037054304485539718250398340452839881996171508432522987254239730011055361005344378240691384023538914130634628463667740522380271573821315327045325528801081376135275557402125642640067431157849405719834662834108537296569157168634856731908091282387832829144866169903218567006751946083043861854563542749777464359675235374789278150134246315054436911669459946578554951562833483838410027012396563494311765722031578448874780854351922025064329412942035687493510453860618981753862524577665770966806325620874216514336994860134250549201943765946673951048171512231671302963811525851738760859768730177711175942245085610167226736871399799432551137785905009155191531059649610792251976526627611724429229537433577885713148813486175802680104547065557454991116071750932521852418786634109133472563316641936514459651700181571717146858672507056236106412174393368757118829824815050434272789183575864047468409387023496560911097564848714449084798403916510942310445103628492629322418422770467868904036680616369062890434629594156845627498095958960925294973520127561541122159655578520075118265493650097193255297550124429113625187730666454628379690928408730145693723696566532976504679152767445937606342795666421169339341195332060657045820408842712999515354892879213380023970862039833247895028028907831258994751329848042664031702093592180607139286386480773755219286724469723389398611849893198314179097774459254204982927885161693479662801191829238050843956709603167512617444649842451458341280761533825634331057215901382115268452177435545902817148970606088269220241217119014255127183884518665250682583487186604253478977626532753035449460367053218865818661038996282170580854364877303776703530323570016420043975167489629908174523117144543212094253826022458098869808578607412447970410660782219432318475333101237384888048960294905293285241534116224045800754914136486433226897877244933326470242353190103726410403195673111756644324741338313909552604198667738506478084821414971891162234346318529016977191768165367890014368730812588122615263090344773834358115602061447911093819331067336074247394827173581254850422924034373690155014082474622866413164483683295976208517294379017427555604548746463646369858081078935549312830616422828398474941299335340344803786768410851891286134345963562182593522747082031150808500288753192317064031624306110664582897455794999975313446217188735374020216875676601793517922942239313171671865227575995411384014352633369620097037573863099189171810032955649082818037854103028642548516823363889070364626209488423873388292682135162235924065536731981361274221220751290630417363364971682144093634695836692831897765946377744312168164677576136321138390619210853331943331314265112709656033434761890178633999565532907876593159021500071779483020916080337369123755408914854157975501300519598916650840188927177855173973816019633264023898370101246829253900462810739200460616443275879317970309450073339576159523887897201896421545545502229843376088331374857219653083411060518884961688522493478984824001194241492741124283766081522430330292207290453206646364665592945471201948778219844222078689480758573648117918413689323306158116513548309525242569268796040458251061436380707426307685494879656332196723801975850520877006025479593844252220196690004459592779785187537432122094539215004027218852005328535415242382340606433830642551768774356347177463789089479449379407986522878888580873780222526313776244696954673469483192311431146831703033640420087610149115879428448558407743247316719525137152425352819938883565921112964542465677799867895992505019402321319133322005357823659507887307389293720828752104869049484929643790102369774865075531019155636513984228779545951927714109063174099183099729654039545978136816024828953984112092344971961064423771998463235135851180351804975887446849989993302504730840698489257217569054023510471406107499662917925797473532989987439555138490193026096605771059716414700650486056386110945894281424612546670995539130360100756341645463574103953662679601337486600191919828798409765543433642494564135865290961175942545099166633451383959105925262209933599095958267396653999595459220488737866075853114010868289867700039413303413421915681892708457577842277060509874838673329939809186037174801531874005127223192384722838056581737270194776490536495670167845227691682251131361314837541754061952282042187348632716528870562767139248337970024413740365994758706070115532317851463140994193168001959099010743109883471183276898741760459460569578342336505744901397719810013392452106423095906566332953453770155334480146986274348637977632312921368222099778411812146719610464151327482960362582612363272866793845423046289475229188823679308882641562043996319191215491225712341620529069342448267536594543255312308861137891734856128647419483997326605726775230880431480077276247112968221566707643633455333476572759319913458968675244179205819809600293629528966708593499496857570551776698871803728869838642636108330018032036412560528911653077508196057581126729184135853649308600203300169513766620296356960223854328125988490044489474252386984334105022465393190577241865725822737373538688401340324139065078169201635679948365656888800586955241615191427616252156268469241237565647492226210154402633091438856263378402206179068566759820094831296360797824218724917741779906758653255767427618861663614701481234212394110324197758674725773339728076051460073337459075071828146953728131897989970384024374851777468459950283388504239932621044696261337546245635391430491455164967010266807135682146376676640380966544980027727251936238838796157460004471933550729648906944827485005034747848815871393609449210335623172954130000144386750529875554783092813954006175811022135917208671361174057595300651021308019856997597435122049693601000822909246756090250684523318921899933299454243705243224128557587829318028646213799963256726529444150673606912220090398165419570046644285356859070698435064502861146859861485031970880626869291315992178726794324239415962822167714176065303061599911244865763660118718064995798280679034046148796944944762365722954225238754858585941140085389652613193106805848253656138329954127972453303444300901095962728493563718408864636056080455223290180583743070642375010557976716032914756879707172665715974010485328451445323076062316694025681129212668722454052609798520595244875208393291666929157828180035372721262216577569766764366121688208448401343540044713762916276973917366820798310784563762307920537599806324779371403824461855869631841769244107347438434128725068660629778273900667294654408552169997999157547745393506097979838342757294960018159225003505503275117746786130643029823039797701933223727403451039730733268647884340872158563601082007128997546282722581151411891550175511238356791953074285848887127921441328562002918329444494945159634918457359115015159094447557706100735572088648448342196588612673558441488983069261368055627682107404431872359219850878494087911627406257482119686481147713619479507610032132028183632936099889657814324800398380324427189948129316409824894102501381483683013596476400094911173301241784431064337755098928795787900893405792676817449247287974167870888751632434461830447434044397792668502990633570766977689667438711340480746434709424108961324110555253479722958660977298050689856582873273730055939233300215150117970183071604140991868965709935693092636701104133918410045375263797118273162330262984349456916762536942032420337241249350509852681044723651483352083572982715970531415953775202856036910648639222919307243516868752156253540356553923561303280013310967889831813625868492051625602091920796279364302661594500386137411812007601265468899291408348214998011297888794117196747776953831528330599792672967221144040925977900701807582162119287031183738832782225972522905231715627369521767974284607970007609582956552804710406188352212556362984598575725439613040506478706212379969464146589848810521703336213415425568386466391530503837685909469075050637403224896763065296529301363494345649334019799525467399593192995945441992791201430824573247783421522931649062598951989885448728951768926062362187989772313365260080649479344749565204498935594716163163281572399691286943249541258826041188907093548835003566350451601613785601473022876811346608305900092204144693926281741634663795231529538352763027307286323708301636890543674884270659719485319013977656970293189769513959713952731085164855548641439535720202511964132868711013469525878869362307787505464287806145063319469290919574855479611730286029154267956797889801357387585605743243408573400455558296785579219988528145786305463635517123027903988699368142173160081500392517532002493572131266614867475194963326424898084405957856444934103945817599623398925015364346464863634047925221593868529448242840752835519462351599980311858225022448079311838541548660484464665789328152440442540585582810283059499256298251621168939414837616681136845562294240668216618432554559175045118022884043823142987101547580756980372956444999737148225099127203810645491860283562456714839563067060597539636359818305681437780625285675704437283438930261895882739981285534166403502857914359935927175191085915500093505616203197108914778072660028481057026510571282191655993909077663681292625980382275871335867520062421095852779266966079721683111865255273977947072263603080614248123588840422909050484227621813039221904929779533391479600209189462002297472101781729863385063890215354463548244471716877038817291336979077302649076071979210865586474066235091775939398526777390626683601806972210366959990268980497356005901707426181209264456567449862527192349721816243319950078204787689617652891760184350390217617368964295223532485283628414770434061942463103255023172598604396018722963144233034658800812033919057026523489019800078349543384128797039623616501584743120679102238534009607731360937494301978215038243375190572308705370971286156855511030569375496865552203846221500557538676270629793971709199735961781488015368584627436763603954260147201302035958608592398459152002112798727808510677873722228418873778703363050725901428138486663195072888848189014643756555654864801154357530427777636407313165475723218526957107608458716991586709048596836192311406709989334394334944517824352670280396313572105746570945553032583788072507377182073192343894538827852671286602791461694118937555421702980202920343841140943559661904327258911405937045243405941235570343608276443950681382287006370749982202382289306730408153730767482575474169352480691863472706675266613449593044064554703214672834704276315851117780975841736901828937995587985541961628846155816277172350087600964413371339357101334970096326733705396805791575181611218326679793591068948010646014462168368554554329351307584580587443690538439514422017293933833901873135757924535279623360123030816913824558659537357437859901035664260332031896088686629594170256160471838738963853179288284317523499006503311558778188580447245839850769866185382227885605630769109385184585949115889686309742232171947788568391207593678477144643202957366728312783107070291661152012496699100222363108130720636300364982057940003807406709587288559697356834929743701189363526667612799993697168613551427874104229406839872064862828670734828258827361994854131653524051598745925447164526106701076103567980901498098520380111193542218121953604076835764582867832509354441966895832989457860347755134226114738112648992380299681033576241874992771168244599658134546776444346223705237235938018408641876313453892972451312498579193536944430810790585281251530851700213891283765416995024852525578401652387760052377849541561774805232154096907151552402346223317436324431936590609313733331354374309241715471548386217740510278167333974003291887780803000569094987006581528339698552752227379664977950474175269484350410801609015329206803138301810731827745732096716329949965250982130791679548258801974531688753801011094432971989530765400537344058181279453778209950007010207013422459818189050744718668221763858824966991577541751312753533339989480586389704668848765080393494875779776715039901238576467447183612301666201352351189122516137381084118988559900389314967675596797697424178666676610894549223923695593531363382952599188804370195328711589608474767728128451401102999690579993950914022427310072304084047190916906936507779171238347739101365354962679313641677583394262945285866597317405807341402593801176528826287420920898508329374932057590611737292916756610844091295734348178503966143485038448970135118943282996396700331701886348271445449718821359691302483359139827534097593196518315875607601051109804894895555206497222962377785333145746317921377051235094344617585544541777001648723324229506636524995376396307144946594677577950291891211422676528327456809962714768719044246952369485333315410519966767354850507035196514608789383837255409167531048977310709142122230927289869728218792297402907216051762016090251573908827288345428527618812612167911892963017383511818125896354498814437820397086810597523856379409425435688963350826871535910618039853094849367985893268185057745102510123274024416848287377864171214488300021482186652779149145992359208579983911773954414767859827087646877559250953162392857923757646624728057793174324519005567489505410714054988152526676106603741056363637491890199638607085329263307284503827376077289351966237903061130962750243260804692864047337514307274986118749514268082981262570125151520831225951818277750229460551661389568742556225100132434667376005295857741961771758838144085046109897872340808996113294105919648521796711640463463067693178261757062178029488551975709526395550806140679080556251888906579186590875604815319926323584752112778435932545347934623127100008327314999087855969781066097801552251638432839397179031395901213436799367045269317874832506776830737741318273657229177123851221612357100161788472644039223544932564665005608334398790422590065719453348459306704614461065028852819577947451393122581608182934312785229518983396071767672273390569553974906787659858522962491967751814263568415657502823591228690829462876842895061621029343677811903042696540540497342226628000688965748431130342422230608296210811177837725173381002797738084960854573076435363760561124993800010856299613901810504778390793355272261358845836384363372466143770909368823353860241259608592891029491350514283128600723453027500618673626432154826751374118976911003576650270077820919950031204979027705791918158932606963762733180662797693888241354712240284950398356875247548534511884854489125531808368830215619699549111404208760660422626389263373226160951453079550191247801834554052345106072353087472296014509136170973234920852511648114460019593819807450807452539787109963387257340354991175350307766218579687959986752936953136041761928533485273015849782406298956924363932457920914612702655078291526638732732105786749987329733699358524387266493235938976484155942617595146947455933791091869622556405594500619369263777925993863749886890088077008221003713210978946478897947829944604858935342117321177739138240442051364332306846853753589299029795810622397010169714790805762109507443028781437441243792330297080555675226834220667751869248084367332638875519883323350622473298104904442467163948413112344012196594977909845058694301525085817565548460299649684976565337929282562817313168661874879864192892248237751094536444513461036493021191960590408574005111305051896834560783110912596133584382447308679897867843848582175384337230606437171570412729869695689270161186046448073001196553409999863669209632254379178988136530447687472504582756365990411957228201558003655220629241073266166648041793128335852535575201789688211955057435223503392185977843230430993811490185435543303862328196012470617295611129496491940637985850034034612937093817991817438176510090685850828931157119436589355636272006867449522394934913938796368764338556226068747949998345626972026140310150979334361338846780374133618018042583055511135255890368779091780805086289902028581358294494438025734501986221252193474916870232240212612931233458740406076782615783509088798197672487883342029668357402966247152140219811260756764654295355034725165162980450941070404269029183022995395935104728031562547676602798236123586541947026844623336610548836727398557042450199937289157322857002463247762272854793385461169518269359822309496088099027711248825015537596320366897484422590987466318145087478302033291637587782288346467211411686080003827003480145822479054396727686931980761508862599764690887433013484677888921128948575254859355738910347553894172296857909060096111389284076035489307439564224958668889432348618174435237745616712729970975629945388094093110165771013725566771482829522221281634575262128684004893010186247895553732827760319157008985360089604801342435083751468619356435068266088346460230127229359302231135918676984623175108738168548108245714844015954102109950715940201884267090686000323771732977479801708195286516275043664734563805737187613838699471133019905421719458023917362884359649427292328450233401814902338578170478489602627753920016177065305371891543385445809435645959707050190019204075886472964946986429979602147176509002096053086923970859948271401311592571049674531714244322040867842837294720470136491262901568466839713675333964504465453665951721413585378434749865134206011930576082045432459431215262582085941179682730394035203677432603688303712347356859276831691471192308970298473071448441607858490034884478678723284080429193325311467815860534967432794939692882844669971188336039752995596700428824716172627877256832951187134988513872851578397696659290381042584725846077681843489355038578625852155682957148677304849107898268778235928501749188065013610153723453792385831693277208822780207550017635598400305247912497050105245122617882125643490750413654478040548834928798403150709745298802422378466448229328062831039538555067003786489901103509201612905149074936846355033279779008203799502693914381052373453208992070695298584939456597800328605574993615679399910342172769926434941200147562277849879134764836600138876080649678547630246308148477066662746865331866212292606814399872504440269559372027534031588633347137680474788789111454119047968830726241167907908955299574544304255520111015223690081145911711187954203613886058076597609764380135890090682755510788098239281088118720196430708206314134946966383420512576305549226325615776688062400414276376550513385323394516208895089881723916706384697046933214410950526813673035006186389583050546014813615853588552341821742429989166178066383315201776483255434227550805618773048229908655788147445181564699144005973366111213730513363798530551692791053173963242281412070286294361444698382013308030019424626344011447054289213668010525896904183998937239577962040860061603464191180605774583298338842950723646450959266930486281148134370097114035455742837669750662117993777410388693528599203568053239804871595130361021509888437453160610967349177713008649236717037140921960563954091980600598365664096328668320950779330921468463491438724346795105556981455848006031503583926691166258944642850370430724985246998442135077813136475054076887295549416130613538685396151516740546477489184892639648136349579705111397042586432966098635225420770138502021285473095073302038619462240604311617042632776670471135837527549003226189940869100917417509897627912398079833015755056397590609304375685781517211130940891013435995731658183872950891621703927184689163959256652194278918961954023712159986088647365692206470968171618118816557765727708725964792760945546050447751850270386299297319517158771815451514419847792290979083129937568979336661975362614860273927065188856532941352235518385277893743140888556556728502238720101402592497193214084443341591423034511725004000821981147985892398555075785755068738098234989374755876567851544488565708403417609496273178638511825841107791978296413844581762680583272264586675890857197135470259381077305839147951007956420602564847972199341326251290031409020292879758450414113251879815655416244017339936820026093046199457602872413974057443217519257344245878428662565066033566291322453774039925205599960637697636845648881046939333090404361487662497575560329991467363530291085915625808770707356588543353344393702678648954723622141973707742775976309044329817083759171473740012674609901565109303247359574605204675179745609405254739590919532857357517898122736740953124856452775429071455630938454287495790083574957095472604079751652461309431225231757254704655918082458734706273629160552917025366185376593755496267928011657977213631862181942024973084788674710503488304813262726928106443888859973769948049902399027189946110134709226963616622291201834365462836530662449405300612037528752497430635539364505345010439047426228072027359703247514220993020031648444739457057499721203535093151905781427181691713362563983782218508332670389369901160158806829059384800158361043396024758934004741676488349167424933133439468657791957672965857646816766445466629435914287714503762528199784430853384733849015931906608141995836835950369295686530791354443145319599474714689922856036865595176367345919997280860875939044677725240921348500164021070497899397977678929225093437926908209617876205382505714332182450760566680438781514464982538807279392650897510550274289281651761286844288038140667746406753670239480250247096486060251508317712821567708277306728547319639868407806102316707414321947146157066746465669583192767483038887148480299259809290700736243222844556819049716791708266831325996303892962105314681825279716728530212874733796418027754317334211309822834571285035394144326473246235573075200385118759429384078196959159281958856051222881361293554210724806528262732125112962317617418994113067221054476701490616613565883361883880434224729008814808213919011257645481243851820137158015077760439779698838926365265749865778013363174650067059426526372995043639085791811769515362785351241923152026792069948848047263027480682259770541587054991665716251114093039753303399825509868304183497992699215220694901028107535609177311896008672407804835727817075385250257901047426565368481133533491631450935250988765965877012810600906025855692314516317159204855864793632716305837828800815228439749026121616333920443943817061372302337077073651404562212769324705203578287082492952463584458242574229937644704786703167974917062273994409976353757475792526366523932243457633789620503859447349650819292122315914149612167335419508819225485599951531880400983646092451197685915432803691401353229317829063792887731101451556325211214938460086340933390037210092537258686883017547586313023925987109879359459855013259689342362852693349661819273016401535041474481153855313946905240106111206152530202809038967137729388552743712110569783240503289460179335462587845455099331965072234745825335368716757623980694027892899040282046688363855244229776383376736752348935267445878366008294305918143159300546168308647245270571830526745073753269558379788616755150396617744871683017686865558487529522879053480272952564270125990191400923078220347797583478816975547796185754523290539650248785912143926729456518949079010671362172969231625878758622148558529561821384045167532956369920154650495823004516874453619927873567425901717256638660589283279224514542830979622874997025402495246381717009390266335234202198457283171427723112723793429958381280045832719666288936286474938736570007524301061946714759652446628075292124065293180021869657267757823036344633052707983704759160907115234629276065856175139991813521182536617411152038233039378403357336496978070061280647930229215059376701018349959085164052408531671079811646075394034308676589739798380311683849858722939015873022229747659634812969521786097083990721627152984965126254409833958456856307426057343538425865999516260884883869512946263701671243881459301127231203361485019742123250973719132034393294328510600354695605023317005200504615511775952550733027653800682266622988923731563062931659635080304366606278250328065976887130478882873346958731129482908005451013789894761555255590136473580314578608629529062767341423559886093356720293941399338615263992412065271220970015952150927352127735564730715454718724284994461518519450526518044611947131985506038234574847918432430220073701682432335651646638482665499241771753130535405293723313536201009725051543333967502161619404049434959763487664030111992306298129610861362859800098664814628784487899559837601760941867955450113266109622480835118265483957369363126557260058702853617435883357863302383179021775395968341123627316287506427721945618488925825300196728233498980458389983738161191036378983573614815730636641024508689905885201953537117400186521207093195004246737289800262933009455392239231592695860435100995276463955818469341127484721263539995462614561650732860200640528352889760943460220650756795657612646280815109522940488001715343149269523585312360827148408513509530091551348189228373364199415963927311079339046567403503416924838059815762764541832319737555010793470862850552396570375884515519462156836720039344115018343602609000641434295237470513988399443124387556454219434473838982875824678184692336482899245021068095253163421216669266918631230889623657307896999328318021848381546457912268087673053730198007486409408319065864318211012574874391682799472755779634750171427980742207488022941577591788976072564863730605364784841774932032571342612182257547254525887587970526361553893573745781366713208289190044914341661160967570179737534804579645089191358735627800910565893376648810594964132837046674047405766826973201201067890792471113859368268141670939328057627544872069238803809819474663098098672494003528045362301228682149135306706483296117841213392429809689695623129259668288498309137017645879068061224445211983934526640919077806817058961557097674118607072772935350341779587101866553751249401964158569175887444594302518740534344638624459940058941831671203404923256692806166332908083264061142125329493269582107323049356079884103993380886797313539438760041641619470910128196102556961507671564830069495878663374650742472962744822947654523638058585796201003994953952394104733055822913816110122632698598402481702045574123997517307633511185954789661795269090356876044960366978172569003581211068422834202946443155590619408112545095228842242647776090644160496654477246552251439491681447516541178469187505376910703465767872799261182593375929269551109089990548457115289214696524530138860603758171395015399018601811209614019801620681529970008404405915283972981131034023456260161230116524032807472499347282476383711695062746489862310976235634025433426644999980940942343369013583031616346140483629942814997029399879797179630506592539494455962571070383375639265829966224282025522269773737348649605109002423048802453467618574763840860140361289322256530981869618301814813654538068385043161860914884426582798186913936921716355010124233220790472502925850177757956239841450361901691162116333414692873835030960856322503614894073743061167914280765544092428494058074063955337979875255966322549779443042797742078246238160533217493721984035752171397070119436883797639529667332154290216381013835214649391761485866371225088343346291159013807530518899588476502238831426821108243366865696756013597530579540155665039221178684416356918490750474376794522460835369164260094548734157484623010661181652351735660271471007617634922713373718847741010218844577793307249496418807166163699982172027326162090066126678818719288117321220558740001862142855587187216909290918577980896265996815499176100065805704783777809365946022088204968189934260565049311363531894899045061789867732581408160820653995848242703669285582279329180724190198099227757484319750699023512449444534066836916675467970334548702703125613953606495070779686593619861026431227880673109507075438331225033010687165491496824478026700802526674556088275675906515223322032423224853959419508113111196400851743503181405084844910365993002776200818639699464768766065722312447380194483022422905853728651939715238848519031179945064804987506676925524357914329731467702295108840804884784233038343130923232119946738631963792896558069822957449389802587060192770574712491074740698893794596718345463319920135139079902785215640467570473038550863957624344204951880191717212527579122154128055021365072502377169203335776609420967163285650005481233134476851046793130693963994029916327743611459275433848337877503459797453401759409314555737199212337694842612816881393873441615856233557114304139042544729747226096500758881215649290772701162635648668334515088182994971344082815070941658514391347527624722174819624465702405205880450083077828057496823668236715246965179510006853625702207062532722262033748277445978132796707462756060639495371730054810712801335228949424762684168995705409517016774340919287351337276851465572736723433234800174942899528242733220257847698506367823141006927082952019780409737466878975790338102978188368022977560780894879041123005560250033307762249171121332268639356836025709978396988708711641387654631207183457312354472473459636754271458242642785153172756808838558696036368574726191585692284374244816534453872353396757312949357167931838307695080854585373877389074298967254530402120857372405911830731275436161626034041835726775668260562370208146483934497262791043790625557173177294017619085252349349420563347179426487123684325105594795431160879735017776524846035718275905819550525980878059162709280056840475654091959042693535131187492643258760243347866875719468339947631045759554745508965613855811896901676296984666981194686185976430780584432095347856210948321193965000835095991103658098856723694195410580046151806269397145239934147811891257719083880391936335151919709257190707237165125649012363293616954112563393063320334127267166824334031724895407712174271013526099942905233277538803656481104924585070422901649126793711461117597473428223209479414420201840500938337716764539638736519178211956986641788918251968947621588444968493788702834108659692664339882392340265714900337420566249575930482725828388875567174217250239408953434061343199869312292427145651013740530355891326195187909707264622246832276822237876881954044257987563909435787699129623771140195760010872558476129641260982202322283323937144576660489480776702973206853221993739305432495937245083986795115339245135204397707640490481239382322192522211621108905443213717111792487766538086571756586383113132387275306616413510780566492348392194296009791629288143064915223487574270571115769624680662628981098445419490478537271124960463590711305474705610815321364510777524871310565271609253224906159842496253389708067238102484742244054424662699243696033888976288695856509613429172089825270496370952932598320722608180634865710504575351324235178616116341988299920966838282989302964640347667746598047326606643234963803991070352931852691166249224484590646035540912290680295541477143145436199260527742065926676392291558815652995492816080630204044107730720924181068049040695762880169874004516328960422678559531551172652207889121796530867256175951083022206111900742438553633916529986284586208212422572608395480309583446491989342957871716544145574381500944597118043608039462255615695505986304377075309815581259366169130723973618650337957154440498820551166066793351965580183388265188737648358323928673493516876858254126855643541184114197173595039556127590992627136143999251529537804766144942708728302851577160481203874319300265554623194354289547323565128260244860864452455365456944377064330358030873851390506134494911565136034067596840336400239399526229927492321153719855654448795101768808601859655061670725644943694527648141631429950467616049377874897378497528111395288395993033505044594224660771920359191635210697505308627230804054018694527404707635070979140975703368093165168958310694784470366697745750845396794653947537876163581847121047920122124971111267054722615470968110626915823664691880432518051206445478787195575638341700793936166073192864946217631416625398007903593101531043310792966371255264259817666501797539861379558614129225578767725792726359709945821091631395856034696265266606005932442260616103925566657328673350915460464048961445332800461643561347921331511202474209337322477342322562173373330040400050583550911457439795935397601451999344057331374444791290565664521947120833816007522418018575346432617978276919506748197087201255625154005704471986082481833394025626300012838086833397486339525747149872559857788783776576657251269786601349349490851847405725456618134103721841241635023783511851388307970306077601859548933055196109537735076748352555953686531069317830592563231121897939385120262165983505666577695878681174248323529425099696211195134847081143314592575012113352820368906007665063837864931596164179783235289359208972354500405769011301795834687260610472207828249389122844211416170429310395225494135892857973012984826746887765022576605294679610232371981144068492954004749049520363267464365239630819281225813871241967677940522982202803914667400733904403751757400101547375381636532052293932999256648280861096930392754506524995504035763510870546811830855648120679662225520052972437288751892254535983723043667820703456824120583608595161173825664094026527097908887936361433521767831156853539872211974416028640525380931495196486688497170976823947797097064749213556825880099846329460796182161397779049697741286241164927049552286410366257638543474435249988733520550229862652128982765919571001429642095722434107950411733337599131729492177031326884513993184379358816506719408951542022752250013488109937602724418867270853903737767199954900036873895998789237399860461409055379702832609746364087491177923755462981502306580778815503453558841019360420689562763143777014660122408865753985949165694349074665428027297529732859248978723504265099559575358173298251615813388338731145900773229375549470516606466814685724736688220384769470567366838176013280885609778093805387875340519471485086100574507911196792566504044139333349867967148614047347590183070688015607124469076055266843887755092509318171331986489229500564549391039641680416768916245030870804349055813825083757013384578315714477868721848217325923475141894035995523784626752870753738542993353374730761543773268066458810587038321395317012456340465506113525518280834025829607088893536031090065112138025879155377706771282180076180845770214360753671138936096107012901960762901876838616793946030048203785350095415971817459955322484746370618547053275965417627894010337688109985839597973711124773996790657971958823268157366794773865544177680073846795503194952142163656160537055242549036084846793735157789703963494057939081551451618448261106750674553902675853364434149818715720048283347191189188353756130300296042386867416053352626493258271600446780924038614599741355244495340584298912677651823057933279424277212728567758655317693604342212545665313505393135689485135878624054785311541719535640584100854023497786570619383685429055112818021199933857922177476343728216475697686142849286254442508602277779729405452194477632987986830599425787220550418446578528997187738491485899470132641826234447308875738602271782362755350174732071737774556785122969258906144656459401853327723024493080148071163774829861237664576274715704834412902306826496293704174729578903059709245911518597300818929120816757913268195356954413604149697469113696725547485572826662141404167920205049751292999166494258989727659363854343804696651330666811111179147787849328302701063149085919275961714790007314209225675797442759580745669047509496854443324470410828812546802742826249794723624814841356148742098210125803679436446776715993551498570863642367584959472049845129431465999592085840080731109019737723286690896883004441382396596363160152247880479363212946766047737864353982299408757083211872607104496287831369657012463907991393359894482315531120913955925294654566628616407246829376652349856662216239919629506335604242331784358253681459935422943834193722780549423064614923150327340846451832252039200762889314208023785338050187653409087831359730429962008330980952089655884825936557550675364979692139161171300062555484819604353112328269664447533832201052125456411565936004987820164641491981479027002330740974073838827182181841766467542618219663406556367940184919894048462142691524914953922457644938155212852082464385450441909862922097138191139387956533133522383559288788951017824931719804693215212454515512351982934552573279224836481763453667892915786146919141601982122697079320531938549287279926419422786631649498136652897796331485926457004074252748328585233955747439490343167372319752137626657226682655924337770084303120559183032262387338600814883296216752689896047633128399932442740539834226687320479702930226533669393234993211875438199081877312447015753266282052255100567525564985390630781608225974783753727329076224692581516674564641277461581277884294673890289046626529771670344074605461425172641571989385428872542024245628757894368763179311164955760564505131926853008517177852387522608340908748187480278303901311072808669248601832842170357430536131764900247019879888856150994008759846634514319683628109019045597286528751161978044492763882918126816938945933019551764049492354922750887031368091374715219399010698321043775132450195514980401505718053380931806154905464286398442629873744307334606558519138976154470466420325730954789545544083326154100022819566979660559219852736574625637207544355362930033668274441875834517434566655612613117788743824055950359150924417661348861397204784484088530458705463941940293338331390351969033097653758326512607673152324065661674601223072342805251529663180476369536802980600016762252234092227474097145967950514685482741552085284321785395328377960294686013825971879742638737054720377309226198502669327791335269226945415854702237053344774159267266744791946159550847787206662228653411296029115331433815245143993115008065117903553285779463622644438802304541135593816575606822834630060985417237280096931622232749041879451176893923115029316746661244068934738661889280811068114445309241377617626297718539429764205170416924944849492306075489201329622925211297188048495058381756165172434031564411875780576667277160936901786410113766271092604179672005818150735587788986019396655892046254419818220807798130437061581539882904236260306626472364127820750138502641363300192473713806492473157296117370086669657106229782271010087886618427224769624200217224855378944033919170158775126308210317735431003470823238456548964985223670204943617326511802521349709336847128414621214049126387600364579775844332159962935665529836307496856838281826786042473444689484542256361512395699891183002873326533161355441951981503145416060883214399567364809889825915815694185011079444495273844706855683281843703610275737233898687494155468161657381345396461823268429261395546722191433244221131465444304203215866057345722898706818053298731710873405441687789442659939060039231637235962509208101671228144870406329620866653718280259783587670949468541246578754929601264612246833816491169002268791572535660300971892791989264045686821137071067168936662488570965327855068184132548760449921961684717184220138409744749212744378966032410224098230257325799566805594523544618345812534899340277108215798209438807474649860167099993607563798482554446257052973579973310417554582434518945419825172397810973013701793233149096643387259224823216132394806144113009998597404611422353685687463920439482285686053533239000576035189822846056782050455641381363232079377029564245698022272921398122775854087033156654051247574092160267158498223388457022453728990657981522790875762477388340717469164246651492025098975824851177961136301224865160800093530406421381538821612159491133029063746213140670323294064102634701000501752506007677197518048983074877227907959767478599188105796146109376998646658145690475981299232649391666562080602093770067134194863601031461516373373910146938768700162373432404359670130809585266041578342038830758703350481085921402147658696462387490527751221935998670874691289982742174028316537013301918289759332209845608867218370127621697374455991147703816483698829894221013067981615836722672041916204855472219989393411087633439891041917977998701239433207444876265425135626040311532392750561048789215927714215877646449675875580060626143588908716055164551634035825019429329936494996463190666706136653013740769501375981414023077193784169991040121237079295603910438171800470554328688978095694446995369372721136465968048213542927817669011271949352991354801271124787868198734280458283090710847047398727906299625103590690688769585194253253394228179310494070462765293936382058360368188021271099456498618312042395104661605535735731639198268646796259230123725593983527841864820603543529428355651371291401723086643772036446750801171782658247689103645795749800908376582805943155498040535194237116323682595679417167561333524018899705583077842903211344521763721430142501830406648994447777885389198629260145551413904536140675130515585862135521627963102062551672970683919251721923686693058861083021252585014490385830539940635274863330165882440013085952160844910817121132531787335007731295405080057793707710522312174124179428115226596519402879607621423792673302005839678232283348303084190520081693252699984151789931694598916982691347248712296846922332174873964204136992899195942985735772886995416707244891979239301877154634025824129589384460936200167175243617506502828721321416340145317799257760292248195606073426619186772151127694063127079063844412111361330089205754594302904920597981989793723679773850378244636926307698772058004384958765561964919987257117680116912666358981451726409264578607035678313799154923270111652874676521259744597415275727933279142834499806880914308216061234485231571871021575372683180024998351231585620465630952665286343385025748884348275704520943928347916084725720519518621625925056767185513072131469784917094205491877561782118024948284204425277245420083082388546684913700087767396148663750668255222784342146479035354403378063487084057451075458456065818209550243668000584754716177676546665034864931288702617525811900946490947687310445245782589766165601268552816449072028033587033326360149715518679650978869847198608337090768014330585940871382545708780087049510772846157745202411230085742886403341726427802367840566986728164737123353613541853231791233774516872886870888123389867933133086782784625184997232493630069328915805215259658919014586304799903373848002692485408104346697543543035029288431845538212134664850150088336459000658212890868998398604122440275890126629012913287304162949269101201356900759740116916229734035255140116678092048217527506533684075632651599682597344166755575625803446654051732387214556521759828883692810202149268521227268784230531920238455641627000725913450748172625654578827355367517545644793108798471369984247744388032801367477353067146619289608377846603415753604592408778583089533418840906380027269509552260171818143539052624571710711542464045887932409423430446465168393170163696466266374947747893807820461482961666620399565453403420174257551385843057275186166863299350893349611787748312095282240517035098175140903201010042403700018106888137714435603999269382395053595574648859214542880614389962432166128465409350047789143967164401654029259558903639459239268300703015078891906790377902094791994851485143352531823170698076264713902330524763747282271394011470631122816174388058085520475107246572511551897034506761148444945173188494218818770168260567626144287966476925942697831572107526135530163089294578357240181346873395412386373323901758890441881156214984358959162035134567344337765376066476676214997188116578460976878395909496544922409056022784119461960842723316117199646196962460801574157447086851092979151612643528737015267161751669408753952068900122366604746847442768959705788554548462080256583584256772872069104113349880288472237956246673104724039496961543175426757124694283608201722924503839113356744390772012592651572416017952159676189477438511268650642924168041177419472990900924940589565332946899050921917620658689540360568466744494166930620026763718588525533382745156199311686666131518044383248132935666784071632914428834475002575207287234577010727250874660044038396181307007060681697724263744887218882549730437150835802079717588125780250812159285663077646598415983209582884787953430620177940663021592379946914645012620313511625411948852717463487315562672907970244453681053247990852411128206177294600521209011206571699841724479122968777269383841141112877680074867950729468558024749681977970481639886433098772673499068769556805535673143191665288145252056532526366475884122140850017054383188357567848833779924341515374099067806822426498640353100101132669573393909115350213257279621278155521434897774086010132056708244985894144283878645545752267414538769601396228038522334535285101855759952668518411669521295112561477834553130341314161903958657044793048707625334878201712542434620671260340668289153818732384361450250457260453309776596845436082520112654379935992383567768763974390562547016046922698134715426462924060809829252825265633523192161695224070861495720505668364671364271057030276389145420590826782828604689824473659663855551757563745770708804040503044987507307379570186808235592510030452079311983909055435370427072912719588869799025653447508470753137161891847579552356860952454049510607858781639202694471740336497472655634346135471608137282076444225239999631183833808606813582501812435672877165015443452310139932637084951998246339168495944373892724509490024844337728974754831406591144510178150699035770986837952476128578722493101949965230756071602769139948991550301973086125402532549658874905894201108774103320246589459102104971857747203758984597798191704257396062261573883879853100789108374318539315262127973765886876323101076320369073059196014715659086127700940656840161227014951820533772910120642575945282225431833230828130611052686998004639812501500370489366824926166943927318568117455561526832030553370616685960280872757783387629046274696121683766670686920049026690197815003898672171385745951369442351814399450863963091674869456913960801610129506914718149004121880938948318885363570369251384690992366268292481805660433989984259583090238637187669206107705325211171796922556021557761508002549457416474649531623446339213135785846049226747529851488235721751638060486714703255124193615257269238863695624260572228270522780214107475913723710833052879925681529478655390780660527050452972537875245932422212007293088080471270357200879779783438784111997680038778028522365823012361994066723268213858871588341574148024195461930384037054662291401149928560780260014035949571383228670055655409347328811874693713875062432800064826127121561671565842196189788303334305764357306731161415588500788655827706330802160406298927311513847198896164563806422977458233840178111912518455585747395864760480969213088409418798760122949835603277357576177490282760550644107880432112250092360098363400786309237948934436432617247743899855224955252343561939272394807935402852020499247766644089122255276670518951793752068218633623273719836276439547719334207800222949658425730159235958304996844168052300848596927546255080198127344388901119403808757720658688841063141099342477534329980033488217667866733413751172260570952336387074177476712293425662083663394728518066432813291749127694370847005608907000722552056771964366465238661489569543686676919369783160209746590458897445155679439975753848651248527545928271102688056975443990223999543651259219674881765570136462721770763685365936104483125954044401764291597014371945846355927480945048616035580736117150839526261496931954988013201977495275113732261988070801584676079548828163361387809719851295622056468912499401919260036294423821839117237499240972005741419108831396076331814427874886262824773715321414799237256958958472511653444844427435562057042561970495020329916434763196745575758251582105322879468394623052779103130086840987432579191955536558411791295805833475866130738341523537565926249245424547108861124814386997213524418474396365710927657904292399042151551011927477962273325739053564426570619698004465414686940909919937420394081714454593417241927992526699795742936996171730097968610708856243218401884613525761878993668839273384049645032624521463990932938530811362943667569854712705298892476796140161614236501291543780468331481844369697052658694910149970075581658768989137021135453859186115619069638252772136674713854763006971842265967660081342158109242399029652371861454410270674158517094662181628256616608141847318733549937000023512474130498638510434347902565108676585931476837509665544299876687133000701928012635836137143717167318964234335005845563905777006971093658372411359635926015531107434183715768083522230563102009255030764942323082177680713184634502382384282605930452416715681912054969402375267515251862548791211873718763072587669292816176705892094002663768698836732382984280778445204356318210457815143195835695936122048710300915366396962935325460198477190379001340536607927664509590985476820592976404171320684978500935734006053090616367926599227624077700348798169062176857096659520632969397272263948470156866314481064588375498866395681344426429518862818884991888912080757885484209337477254719410787850351967395446903252029422473248479641632679127118849705095497719445668768403885926947375383678338559892786630456295908004477957098755654126708571197704366140434696133867642667008581786059893250170607016050734917288472893142252648821229311519550540434942152207599796261718315730802285899525340234285862296662531893438006072547840040724401207316333729108789940904290951577884069016669471280748482985427844382860762536259532471692021499342324466679194754681986806698851115031005211163501817098891297141716783909472639231083172962001197902778325842391306303246295936015447847105322204022321612609575987356216198794717588928224583184870394873376925266691555471768368843817812614170610761579926356869043447834990737401540970366398933932471769445468139097646195307871929594406345356994191682813969535230075130986953691249663050705710825869415965500018650606410672214099584162924238680675821601248451217412909138526439307302960860679147965491101789894149857147506487266158873953533476288569639921068989021373103142789799003272955150158613939326938030094914124319498814123687261190571565150983585250940420212808823436063682334664550460555809421133977714946653863659890819948268046264409745105355063171298888908299758366177244350170831350124685359576581837727928605497216346411585580220614337485469181116829415985059705725115997482798837489764120032723118452666367602896754000971812974612633509603869184512353627731136626330281736806755781808090360946958537202819642291285106778893550067365782855590464385264007945429934141134319870658239497066985249226453835301132864366580862375770175696788960097215941241163309998370013655933174079848000868615439722741679544292416504102497453051573395287128446849360396310241815353708687144875838315576185438477193315578158454465226231533314684019218714099989493616732177357277168344308655710423932155169181115277864292610103798626422512660586702532151068573530343100938045222203329759707763454696044443408785798276262176856425137495384334111421301129139356593747465748098939498993134777578539173479622178466539004217409631440345989037050650173276875213746720710614189508983436801534892025353353859132446402538387452048619803793017304516297552061444326256044776479318176114178878447821381920142026376720419234616914894296181903796771336743093334182078593850008585108143969550431003061457290593633947046168560024336846483793438650896774465018097484256787047882594361187817970762605634718577972055247430485588517153906237342927873433580090955826945024943394570933921865723203806272014257188833583979630369321708380069752022060041303459549892165835022808020513552608505329346073732503326311711869387961861037584013370906528865000490998860385004455805386753200069477635283843637454673052420703553826579774409417655522732900367861373706631628252595516581615604286500839016840373379926213088061283934281062434030642446698168570735960487144861001833525826547596635890909077232926094299742843090692174823665242140358383498352570784685700198497550812454499173894736210400634556525872059748779545935786919664463843250099434350217639023822651728382320388673165598086624830332714908396115408189906373023141846033589150293156141705532709744860696031822743859371036523468747177757426948985711325822730656328235770557390727724896477024707201941915775874290860095475059176719867486263378178335656415496549965805891763613612799636252878559209525309290681477302646132751391997536630745265657618065219225694272280833848752849036963139614085795197810630869486008618080572512722231170235605921844038959689211088348832726473878649973292984383115573433442095465147928699184033762796386324097746485447393171268831357607832999250702855901848966957885294409797359684331446203319786201611747955261293194807281540304196515863182635405862664531780056624214206612722347342727966763946260527649668755043757883776797116527297800709781031355904815419389046704789414234318279090887482945261061114891501850974625887008107383305920686707595561824462863372543401828997379416671108744047728485459207571595542386798656222873094409765844186814966611394957214544874869692374287418744211297628249655743083378063598244186570475708095644558906107495186375909647958424961398171216075383726993957553612499832809593146180370551383634755122652062753402973031305363260098535327691925345091071457665676388770921209277496022312628438012780583866596594838390948429960157216377390366704129142336259708681580879664812357553863824059774540071857373866236510874595896156673584224415840784526913145321152575162601665527784306399511990931694934040774058847274720418171121191902873798361578069131276669915021959777590092477550492288710888252799912947367927220363389388648824887120931544115571014561561460620616892251965658851683825943167092714049599627172121286437394510228697156542630761783195238020590822691279561505156724676929355244606382572918253399866007736876224294344047911362320283979678733764398142865758029059566213670746600964962606951227899936850710613378860391215217968430126269883658986485671204729513820962048049629784624674387495895840058774711889390138528330254155002622480487502988919906510135106022029386700923073086450228982743436858804263650180549978037709617421599577538668258087728304305270788719457257120520983617541808515241812250064505714084943637261858897298707077131402395049878953356097061786331797153114106335456291546076291158423423106816570019855762612775228726368581083591505189939645539328535720813760660317813409050764730529015821895196051651549907552256224596243819816101667542118040063433089109135838116056112893344836445726566872951262498170687731048148907923177701997043947931337734800345449613198555742733213063927977840285858867023728360524324802924618011301254225145241260495254102559980853674204994638776121043857353748477097070887706074565060490048382568023000984815055492472152534062047676708985933144367822673576490058943945691673974327727338314362312798849451636402019780923039768924980433403910024796425203494082353811082477831325689990844061024525927369374375204138579753219059767238988400140838421312106659685467478110289996960183255100165119974360481989715238951461892479579282454547085968664399912825224172229119483467358271834572736010272340891978268085495710818077467337938947996983728695532681778983930132066237997206089584241604342331002586244210106898664450515119438789284273786681878221849612464650498220953145486370524103060919270987109881724680197796756787810516021931895170424982356854848850236840730395542039609181849282923046056666556860052587039259929408853576794053081070563191166225156372397507782306622145103507235290015340218885853998228165113538058489338750112641117625417988189380430109330611348017754436431330037865422980327100718611578643003164112220761323334046549718405612100169183276337884845406304007900176295635864389484762512796615350764051200677215514223648106143810350873663230965862276031392567492415811317969941140364763834980260420481037576229124687758561273146252770430693614480918696076361796309777025990731877994706337380068763890260115657437734199306849966310990593970122344151442925223079835960906942505715492611037042098159841206018550288982621065800658977594930255329045586169952424915507418358851678039473019080279139826019521166771337051404936295154962626838472165115333218455882760197889852411443880122100627231674636515283187583168241315967988183844719644785989637369296406936381677180830841446053736280459295046136666012040256609141813644306107944106960972718733446787845961995788814035941870423119363544378151584511408838658685554093678712528441576976763003424524664209206800963929731448640547104905222740763450138950948670536339213740271999574811297962270803528919698740015253960768183246539755606510949792873332839628983125212683700753756256037654218589741094475387397903127579739660713870118489823668216210229080622078130090177585411424348350429762639489950788463029183363004774371553913651836943202892064837380082752583581767702827709491687133412260168736015788875640663123530880262391883904608672658472787466667332489412158698245416288913853850542048550178734164248373241101958202512864481642167843512119985509922018564783603607092133486116992908225666586436925975816327710832155177351088026305516628788043103335693521126342533389066339569720566999306065112686614416027175431820871817651851605514017590653070333630048193224004305295659168957639251397582290744172893223173909749520018294658972673364752794659203225622968612459331252859406226765209209543542541798829738151241106087058987866331196843104449195706622758836645520336871558782367381419103170898373217398173252764739122710436255152659243589677376102165819105245872111078163814248613591115455707323349810318661791433567471880393618530153024368617534660677639246201769369518883603222012249871233275985383438314128347549537702108008828703108295944141947229799249881987034291235981279933688871332326977287486986616262180195254417045243380531235465257169916244534686558906463841538682944493684168392501751060311694674636434969554358107227239545674992379684342360971294899309963474214206898228179428048117227077003885724710634852213240600191119496017201082004905677054657103679711292655672204852606550698384850833705565259027680932950839798543363076174576783889851764874298521325550845210172212900383791008996810923917211306097054223575335934295789051643358367585779890482857497616965820099045083722758354135420622015855672487231970517937327279535226597748538210652108449161010583191429902168836247250736401594181576917409014952584991978089955044688795914212372191351982994669115204889844961414537118756983083326410508164092711271134619694966633079799269040499051940321748901992790214591384425039505546315681822424675161472656004042985668179683041069886385204470858041885778418048868168153278006142578417345221476950920181738612575399195141441583275560580422616966992355891453130106433005155749437247845985150148424121808874136162407659327329165819665625605569494806812896380839589962422098155948283711069442769083410547140529109703562705289738933778710660498749693961529852375322657012062460152020978271006521108732468985035963306891271921810710819631822837996609747854349414645135781517718559708717836516319418929105472592638273787733505872506599818338152606803988605196308407312643927215877106679558283034470498857630486266970289706195078189359898398187243793779669515713587806234837087101776335786941511721807525590261849828906740916039901940382271794570146289572008580682518132598941606099499399437668363069067276251299723090820887311922709964064548050458150105638791900619573879609060132326259818106273071365355189342068836664877329221224395545301948306090336886632697127153196967056410019432965332090115399769987309070029395971864494301423897820290083328392296129498273685248665038357122426414827013753695919936006828145920150708875583805890625735814622045805292238227081977095388907135516186161275419153876483741416472309064224794127795958511382729821433042246792017889195987766671050827436299018106343882612092899478791979255370339688581634072802807539042026522709775709853407095844064449377364214884060128124301911254820598625393143144782311034993126932492314559907036212113129749703829097267592445432208084548741079432108179378687193740990459241739555101874703858456455910219498017578140421270721931930435066001370693987850557672400301740688579646708225539200476086188077764187558900588178401019519151515206219999530874851524593139245923653748761318995415933620078196272253053453269229347054031317629525797770204331928081225985772169245750973597566112156974338373356078229573757668509518829933206344864727977644133515421732694446647622736581350413181821434957015574274922941407130281582358015077851885605267569908591450187482741417985222917931592006918372893338237307867398567283805217258491871283136191683016097141433638802026292053363285359322784067514670304415636601845052725097810554213151297879740243068842246824908564756800251871096909539615656255542754646017025358482866605997146687456946863272202555944657080914979250202813348759218046292433446714709218128439295544968160336153862519795003930321345904645432270755293928683411105181613717581456761823899740968157926637118179960662797970920746123636365992757921002427934932422893337159702629589210695934833237952886334426541256276531892702295058420573258363266644525413558242237467015791053938116038589829469924576704006822649277861675862122088239414541223220767489104293324898337617658710246468097584162934756895720673868846735704876752102175497530770873052462051194657054505645098936127647514995516377227744891563510893798642054651513069924582144969690780355840546946319501367814486813297166543272663017571902508622114339114127166842402294827566942319243861804482449598678483347874177797850947416468853021153290300290693428736534237397940491046433968640937340646336054910497650645059742186700268966958943172469349961218484690692375937737958470045167507219546230814929639739583484661334582412472535679773474369975723426156802353501854308446245526364007981037559761833988180494379894887224930422029217366586102030670321927507537882011133808523323802413548846801357571363122896826367583951095945274114343874435489651124692966252575387137798767072520275169542249871468192767457813776341839776501279401701453929018199700027065795583305059567593466621307262599887013565536308759785224113097338251231395204057057647898141137078198520962210956738236191655249573481094431881390143299071840480903926620766907463737099426759110579978046997697711084376688950114705048022029981776256349405654312406259679715564347542131309811146141194223944132179420419373469706273571128927681650529434446988618294166588330530677335562614441683479978904976089117241270453578453855837929722021561852568170509014291312673195676198436887655132547386838396243545927296440336073573880703434034575820643215823451157143480139544355845083885929638796937503595029544867289157489558949704518467893134956210761364935171579299486800786723016697923390755452352280288181835187281080212231987692244676829492087353003716469812301978098789969360982432925579555022728749930360903760119104056684436810667775651086665956243993203659083459191985873157748961441313909621170104423564324632161712763557713750142281980767789064163584864048832635338935547769138903544420106661304023556328905100629892288752466836968161540066793079322855904588799335104942667858262830717959379917379416555339988877686404362346439938813610208132261836838500593660526749687996512384486129390990789325014055140622956005435755026813191632621817104116556013018490676286820533178105668725316372604200372816811473103336750811305842541781167440548770683124074774456377026861474961110218072525811301280397667232874199841060498491694878159822921078207431878221641968714070952207932315985486480458983674379496773257053538545627771914558081671538455725036035563647869492407549455501441563240613919182131028526484368752768253009604595701701095695317303415956553014426461652813929910467279684237055839834640609287918713264872708424294071784588483743940506090846958501421128306331471394696479578339908213193783097386108782281454680676186070141573213166037878730392014101537461909587471531280515958852756950710178164621119665817734241302081513449198723716181891173626397022832427338483756019744576292934811532119482252458609072360734160636179717449100487647443785269825646373863456044817599135450668690920731162847992903687373494258226255355699900654989013900660958994301439782736506622198968693319847493581650557385600950327258577327505112042026214149008598423249662429422310158915695475742933566095300450852364334420395996704111437879995360425727574779478411609173221141567987886997137238036016420703451425542997134204975476351822790263787447808438088838539616022734538028804906951244286596546889423945272078452643583500825674164497517211507152873983325660827921005773309747830557666581591709566950210575030916854316183265966347680899640285189260284577594992595678760080420994503803188108505314564446941506748063422240753525159694372659145597729928956071203268358107145771421481820709676310596498118287675499035402645439790145523529426192565489438259442679255869213133670450827193098525813840754575104922171041680791889338140503106881834503427622271437646775687664466662798085575469720752342528759569465350136300088360114966093142209920724299299973275848966159638772767248796038687548274949887661364249387224507540274495782009459516430622773183009717579434048467708655471097606679457828665235999415392026828297408122345345905088738947139664133257857767375946081612840749847001355870865981184823923743202872393950112892181781647137090930101175146796166383818656948864772950102799973646539439748505646781752637464960522732662923260346240073579325442520907317540142657015874158410180289592517244996248946288156879008312164421279087381916005780481083722371211208594998940247568976340638329413132084401263880615573295579385702254917282461895053303805454131363774269679324211620483313093084512271614224297198445821714333481647958112073667866757242375136939957178733433001373573552805154288394887207001660319722139157226519730237804456298401425451477730711808844743448631920129764582345944808861193215098255227989701503713730061300640347045234136569823992900474793141145027510892016264613575774851598986201474942444433230328841565971586448423973302707575457264127028738326924980793114958814511334896401680716537458045167557241478962766552767970346708002284377297504236839137861123745073725673334404080364864163495608308477914065012912252491531455075651386226045764688745112002090127721172761304238880032469121166648867727437448894844430643012504152804033153502405495852168288192785126876843659951423593764561419742115080151945350399556829385026020966601049129680092550093725267306820960802189779733025432432395774775330489338968583073503814452061508928736674481061448040503450108790558529968417315456330949315511453481228510312354069717078228901232095521677441780014313238344176274515271063243649672300188964467350805720898849495733397751665245789375457346706137190342998547568649662437960529310978202803835792727116670846567334277097135026855309167139033404395471420841490800852373870496768944506357428629134871424859651478597260089966030602424088567825097426491011427540154394774543964551907515086177021984019387096595034907552217474222497566659164965237097209152102281615629055899534504426679333842055099077845470350896724459208677828106645309160830005992866748170718643123966763403541312392770083060539134115936580290411142639946379593143448404218230077424521678100769134981842408056915471532178859211103451576934430064705812171684198009453714266626338909982048883897470476082572905965890588077690843992756521848860324447046081030544627763396986820694723292608891236378449871566312382105521391856775316687682761375251372844872060042546445703042199539031279754429732996483757690880108238038623724526572287869079824541057216013981121234121474542672891530345698003047886702741685678203708271650649307361033437817812094798475571879226437572671283866098382940889449277009394289412083713314733880921343179445250255302831589732924637287482974071599379131806055262537584637123329011492319475651883730259643327305063019757563153290777106903900730380811540331649586729567742847211086649816307795110699637406858655491680682029448007708798778699137653948035888565515342175222160634141475594729298656289982567041317560789556898116763954622618058207441021415416646070606493763639800780281088448707509860936733116910872041704890644097460454679686205660939342944296270800038415602187497789002295890119031562342590732018621232973263686085081183710749319940713545438664658920016838292664860892071366505941280277328772113415893014190797406258522297178132070377136973620543645068983188454322947499942186566943764934140097215129123612277294240956065160717428744903056075133863766186480458413288302193885672104107425746395834431489735396281085289938787687310312470838114537359429908382536049012455337593995595614342297350296926383636985042191571472697029296110516680934816687906685807461834328895684118305395480872330671069644670713708808124090350636078393204893257482200603743855503958268462894430640351910662105168243375532416912606217990742634111486812398874768961809387286451347828149353392080698698223203293794055276002612959915140173070118949581101854517927344540342669701510900521495410182902184106937249986479679148498252323673064665675643303977406792509617100140933334554586094821724745016088194144862773262337700998858714417636944198311592628814105783646893470847864123172949633957949958571190373578397213448452318470822138337121779382112330941789046145131769548761809084457031479925875453459651758020013759218488653036796908754576644915388077163786029068664102253025152406052124929744746477038420960679289590995925944775535120696692888754909935762218045254205876909440692296641411536958297470582623585639600077712833545728567568133783433445923502152177381737563028158412821317033298987982690576965750718401960340309228651719130878598038225435495156298134072940339947296413427291122479033136966207232051370211588598854976698030257236255947322265715129440697741422074791530166214695924343104810835170625648104489775655764811485409845412491417913180734378709111897591654989604631866856449076658444109761263667212235914147786058682743485504730444510670158896906032090528691041359829028355862499694258962937430772507139547926108134700352402240761582548660377750922185161950620140708413691221167652067049896093240474655926162868840574887360288989207550259278698075568674106244906192013976693249227579146935370713970325672985115126773227102853104500143591526638776658876288921543633805966919043977532726327291374321497953487485466748269773749833641430389493125968860948615948642917191354623858827244198114966127428695436633517324418795127893030609291344885158981607213284516888958436648949449834948867346724482502526254034079176941732506883394557985080452775304553309899157099282755108756105495004149664308587919979833411761635128839687478675404355963571462215791616658875669885669383162846429114735701075284107531972304865763430367347612143670057370362981505092565953145854708618133301957463073617086123645682871200230391672142438795516717428880700774252308942741951408864618113515026374108858895692564368672784776553932305542768711806946675609305355606368140490105321660879885160181759902679666401728121106462386402711688595765571663418790715907374680669574586815067457027323978216810354179697663074324859006122366701878824640812964860881463631779854910980756671386943577846504849882971787761967471396501955042779080305028262799851811252548156305292596149407615136324327037840296726391608153436757199005214845062246667142351770316312382905889968355499230829085999369203030254658375805335395275669584408170437964402278780125633608183307947665712122168116326080097854381600189458940734236245129174122011270829429099137804034315163014291983531524609387544134278455417735527485629218002518612159328570268743533320904522826036559407669284224050245764715221816272845507131582334671649211967288621820174089986890331425809399551202448344461885581741496589602616445270678789634001662928356968959380126203864490847538366131312011905793582911498972044188597827709852622294617398138573036700208941319781828695719519585918706673116866282537209684476618705607864140654198574253255925512874897416734512282825903368855317579497427988838422326159122558482928981242974377948505714224489967579336992885676960550459739149541787608403670977772507095906536560234443820983387641084662528419280767413901713813925449472262125608508989362744343565957606427586762538987091790926950039283526938515440274976175375935003271199764873952066071547345471706456148111684067174358070652947360426872657464891480610086273673183244166477860184044230138278050650642709692660650305376768911015017091379362275266114808183296773587238543308356356276733459038583095821646856961009576914627323604821279604268952489954823115771279391882565563031677567880774722478161526693357700348746522831886590029027796056871107252622863225937024274099159818275278138840309524437290997260223060627333890894440703735838156825864616313894011282039669488591822673838926917867015257766122931067513712042005466617333908457990956227432142444483832518440067457202833903782855122151211702524398169463944406234193967482333308859903182386751933191694884838425861564182742685128993985277901249816400132332886192418249259807609939683321407491664103412113591691308512058792369768068200090281414636647865810410788532458353733413151653466612593760121205782704311091870130771842778406559359871336466261828744995268282724200847588695219820104558526548561308842775054325538877764037169561664019822096793833578296812051086123084678753665981516971145982547385739592306797246181220140362159057828865758143547048666633441938635700271412255288954559257355519865518232814102947057379226193433116713598875039342782585148590211984426720888408460367608621814409834704926655885577867440587574019745302442071865982775583069662014084356712278355663725494017757533516430816554286514185515284313842205621047909951190500607379495776747774455015444886453678010156690934298255536554614451060806408524234047939230474200681792299647282944849130192663447514172205028934624631793515863643427947801673121779125044860390071147873762699110443660581444871965260098607832752328357023901880806381737946805048669800220693342187468682408565087843925670146310971510015068709283039975560639210606584285043913337240620818697183836912501569698521275451412883681349397174018598894062847033457667701427321173029670862062827874156599624024832857902644026639691003255588069170797916590959788141358297162625367985934312783863025061513477611949599057893272707508796225037524800637025901586709236487634045308517884193729271902278854900010042791689427119772964612759259863719140237386222737476605229766503073240432551419373541402853572339367656132923062509977734760703959078184269509597600340198184231626887885735735943788960757853271136633902306179833920554314494072010944498115596515495213909407546141577997292374275762017037596184461184488563895850963554776394585932554702209394566470195541481197969893049294682892941650737370434322347583567696166385110497889544936053664183045722265694507346689875246815581116918546004993354828254383990380479646731940916837960815464836951852086567503536962533175914986678592577212797526306593893098586796937384524969085652579817867159908971058693788739023990913099391506918095958141312928957094681475802558048279327953522945818012133459436274945457183833129025697229021505735389876203887421593552551222993286188959360210197715466926578390631708616368306039657942159306204001419231338111914485093269493029622563021984879565776808602226640506291598209522175994501878115676270338059248869697469335794251560079081933952350882409315609059081659409413965150038389326006060025112974344590029180703620577572725938545664664238937423820040603887722113846996519109289088338117050043408781892281197312342008806107210897784061365468104436620801176534120549431010745564912206400182771572773059562342747903829781189670877693819981099648313715980854380483125763094582641891996276887841028335201871537556655379645231699755033207508902252103202955645331474804252966783406605004524961003231775037135239161945955120443051131096654390119341519962199326528737699952807928875389430123603865882494486767830194902111036324826116729889619671285461956162707531965785607918600078607252928071964245920564637023717413157243928879213539627565835124991073422097173551408674892951222948811936794342182877086065753717430579087865306186696840515101403665337983371692687285918046978934004771769722774955004417011795003359081401344753009068426486988496761378322675235446124769592094167565515556197020482679845591043256339992998704940940109754982713826073027236379014326911285933274781026938341059521732434368290212409083851253045209866833101139990789733732909793105628330289247074223388441916713412169372363595611180409561337374364016182988676790583348528503085998854048249611770022581949292681322767580954208691987148907819358971165679342343850669362230794345269118275275155027410848984143018756947441641173207153382571231846356693312472058357450301966006368622285672240920245515467876538727003520084658815614960392187309245414912073917738234251351957666598314518467837842718432058351216109969005497136057042721749705874369285688764259007060575139166047952007529153532365780102869871973200931137328679373164703244650409080054385536428888429301080073698972532856429185215816836603688734465932742715709153467576825958205181826900588055250161510935756483978658070278110630721570837697156783568430366089576119781253042593593566744246116813081872119120941426517889994504390481753175078975076150690773502231725587945350514871051731952354709792445248049390373447912110123371297051149647720002758051214400739376099192442653468604048168233526918165258547941234530335396360334438534790101367109013991008374268722007017824179850163043945448622599825645160258498304578051631355753391942574697526420485998828105903000871136400850130985110140899360066629500108109894259871370733320099088596437301191089594292578495497288572515213755011012667228285543391700760540524353596994610090301044250847255841033183790453589651714809526299832465957884653660074869062787372836389439071120768272366015201417975560934475613267962548235621325280051617489462545068631838046622729524647303473910185567624308808976967548359259188414370881878671818078856142545432219098113421824834125724180464119135763997092518833051403644633378592617348392140694571432806138324411889681200446812110903181658936731251464143071909657558091582912596220418512707984061272584101117965339670931306630965686362221155396244543389705932048274647286364484461089505770328419607796389732330229588122603877704006121240573946715824120669430412332258122785097633313119560085156975353601930649453981419460352246622544130590981366130901395570445033211276620743378154503894628274058961863420151688181827482165463753540083270564906347177242163269585794008548652150170417596642457967487437976989695372225601820815197167419405032755969983651110944762457412835355904090242849124013959500294908897277278184210418384083130426273762758879775185765204117516896938114239396743360323349398855552112285905031255695893026806970733040424848115187715583674498278264939918209059605563582460879335293136172095582654317976913443230181107828584342680436775360305718104094057027173045982931972403572848919668410635535422387360362487746598955798764990181272819466697259735252946425689625282705783808060765627800760742025008230815799366287022396104584682637299691323481980172192875362659095562253197061820582942697113587453444642449903388019254949255616034774013379963985614013833296720072105579128198215453882699776377796038934705945884381360830575663794973449212697174632512516206041766736859208049875887070929029209912357944678955924008580031555992579475484364960563827626381416907160144024695648461928199827127607937464964376996002842426476185756051482459442930762316946277507458484087638928181748972209656630218109590277473357670590944743855404835074959282239661565492631033212435149293533041488458549805854903388748674497379542649729278241377864889501902008125529239516751437131965104338998414542136638528808705529882945067293614387978954393408127424331091470225847826843104073014597369618396073830712451607866722167684244757676634585015456712048859928976707601501114242207941451534652322086244645451294262191810679875738928240437015255252720011460680218033545970571114357742189921820715451466978732711534771094554331049402572818331520891524249369512846117105039108352505572466021774843756922218620436035986607862357144867320500700883884104896327471669209340495752425236718234153184168114959721448152652643338133925776484756495758035845520110166768246637693072776463628421129850105118563136316172994557299547859973182056878434433944964900956017668882820033196140976797773147743295939144141143701126232428842447006880925186868555648300329067843450172181860905749722445566880079244013568648264334871282113859352224040379641590614640290577108152992489935113344194093040595377271576857051676832842945009883471372859653280760440822555821243840945849886641340531801081048702707365359711134189831424826058734981759008465360504342482410054562957415661301321898909318484627922384119837995116601986820697100159960377091174678878404141730962899470445309715255550087052344252598806769673536672978454509603337929024801258200180757574423374555251251196383540378810967195407755999510359867949026068713332428724055038533798405920433742453261836927882097983683718512241494907941367688253865925488524062873978130099269873027507824686461642493346640634386885071476553211626355497463649108510625700777369612816392436952954262794582469648284603130212438684558141764855401224515479226442668212627734802212462499016295793240070392016001826956344481113093750284340540874596975633354235282125393825650609213494357468748240371585269597324471668186283925855602836227972741791517031708842810086893144937605487862000892419535353480544004642336114959884246921373671049644123991395690212356967437761267289240277209694030031161501822461244469190318360876100478950165443234580259247818561413163664979619551709565048844046191871933788703726979595666846401804782444631401608341080273450733147561613482346704359992107778372232513655443702077740448882330924947498745776012074087324286384126659379510289752684756763191930340150222505511407415429692726722191883371577158224081577239457519511315445535014718811303012576089723053432045278562895757943152669227667800699804552099681546156984964847523786681759826205096783142432419822323895866380496401373435816237465408873367468032293559667177473766767579570210318994038589906843489730634109510008494105375154276865704771733514067994607886567281430041648784273896995567675318227283657311489682685397235731611981532115139338978062401109883013299192933552768281466916930740538948349500347239983686089886780309553699225873598934875614068053763274836151845839807712914835789134433487842327756096185702388422826037607453653292062810791539446507013209480652640827102235035693572812635650164032264421851599689570950997266778362756019853178182850613592283319142555487133939656439059703047563996830706908677269416033969738434966143395473214042444224382511700011777803770862662111249404105016694219018407341719471168650308904333567044901485722916303453753667281192502579621224379448825103857396161886166335788790243869224824292579685021365085342222753330032881161275486062203503330381578937856591299755395460685486303837185102845128365285114549010159628581714756592456801199671356585076343709100524239807311839888711500040447579156291529457350555229173990760467830294617028926609236028068440050330057649816775918406457495541114495596571366119774931794131393197134541728638278854582423708535803633360365940997436525152457934750917760256736627239881112721903854110259062219490419497078646617285923718918765823265705771185651365789299193727625784817311082458985304817496229581948808102691621045818886374077575831824964185389369147227441586188979462388315819679909881526039280399515021685694712725734544911287990010700917515638882327257166321457166751808588283934556223768183376159776010873970017133383935345753350850807496134302492132103797776208065710750731694731559027619224566874163695665120169057443826211453291377875389392757112168325229644971583590332582150563897078681537399118439281178451829056679017648806149952370981455844038473887426434689551540397282391820766692247109934481376921350689251111966361858072932538764896103698801232390300536692695975008749360109125403532690486001109674596574881768971369809710164645855389565768237780090918033641330594444642012519446207719883163007498509935245504316297023793780994538053550511515057933311360295361048037557421812453423134425187567301647844016615257715281163027287594486121733557749020736461865974218661353471830756320348282851339912104450726259615085011546405613166866766979317817910999255473255973062254203624017728997447506467951275106246010235362370590064014292786391002737049079042304176358587738601400436560870596173630767120166641301758701623420292447255504730989005735514301029775560063348342985995909597295668343150342519085222249253922982304005406281781741859208348798767474043713263003352720429125803481536444420792624533585482375084500792023470132686920413963102369486190898436922264689117055423796160576346350125954093043052428376725425319837861813544245651352270756814056116009841892900236034583936435341837672044950299153893000464488131535485726805864796235267138100952649956692989805104287340843687021770372286841616948257030804781525967804546095487637594220176476138179291815259971066550815753095859001971433671123830051192300315506503855918779687340689360216396161648991118140497545823319176923728835352522600186901559778238593708496101102554887759838980839272732723951493394378821626090803508872916849426707020183970151173943268824864961053442496830148640172793980045124816182586143738578356887177205347847411738668763647009205898920635445148299922971160720856445632511456403223825642824852533098411379107304568629295878711618871361403389467605371320989891818289334982070089812491220281956311051760772335467041876623257530169502879710135121169883715666853097104514817573411234837946814158954215412653996993323372615441674968637454821699535682432565244312951423993643448829704990536899857482108668257576430262853807133269474995875477643606443990574094172366511312115608562410653472751176034639204093475809176656428859291745920001866185940965282303021050595773157185272487507979446713802547769437434555298981264397924460957317340973629839251710712957878416810739007144517204283552986066192436323257586348363102140971026673718071766075668731510431303923311092168371431284725206515060162149813139514111872025991700169727679168880860686392923229820345572782276210145596618822954725878990906680252425479898853749415040969128331748722824937932069185265585652832508359173376046032738301693982371618624565898020635851947712385137894747588010426781656702238897324585444704871969452663740029769269888735835842631326431707751687546808661510538748389482778742098165122012325721786810005063992877311947097992284373451302319713578917869122789209315338715229694792091886946018534233664337962408856168162211165271397397407866554874761004206121601215969894518154769898633028198954101336208107103341137019345945947761636899235966850082886310793081500850641326264385821095698899199034505544573904091289468223448616735503508174785116787930027194408270638786896254388222340763322465477811653850090685773054966684232649655639658357592065076223754375202415123170377740800332226442560128916044933417866592793605419375785936549756665991656075166221483041799887160987096918324000226459573804501795104746223297777446434375191289117970624141645620637455570010111477937577267876547852875438278994837721416925394540031038335006214694493408492041636590954159007868960732056881915533912533319701049428553365879823769844425130595356508807074720339689879460039850016206161767842536529769984392572489263667484623172844974349979073785144966163450949540949788347837243805335278469527514380846841947212092544757451751953782518949039499561867144615453137917947602742303392799763467542773086005200026320295547712410280082614855496269077923614183326711118831489038538539544695936584986987574715959373809332952156334486756265116329546866858794604962279288545104046068695610888632455930842172725167724186177210982589396141468815837310478705473898385504180725407482188762569094420413610697908468332449811860384323273252167869531380076156556589851810774199776288822539471363738288847452797944653285071708330989527279217383783637843505868395587555580665324310538309777070299873361019365975199405484770620609595559439660721759573320193947877887898947703264381807074163620397120880351385595802278712394518807722551679467850275783782311632905078190171686658591411731668215931645350285226012503938790035031188074525666591746873860476412800225465450532948327823014109131490664762723371153875115267352008976530045339162911495125303725280419846095244813673754857548853724181444053125725185461968668072236075184148650099466242507473433965654338351569153769642807469532130201693897325613180463810370831171754251668000508679670515973969501549314447115291280106139337716334939600675212121327192935930340028730104481087266683157205425018600939671818223526936711708324358467455709486588006636420732466742624251029089984598293277274506375029217429744405700040507168779826495985230941587500610543821902663805139252563741400202487727271397167640607369518409101817509673630532765366450832551141471201723511754330822113920749908259701729047321886808140751525237575883086097883345153711279546042536663731235768240483985592811997298195216474953160229564777494659088586436146363207028632628053240706575612265135252273476727229644782360881607774091304283789868125721434022974278367984151922368849573472218789370981168976270248312448181959404885576218093632320010618713677573583012125867855325356799614799180785548145653571559912619370524128060091934730682608315626175406760290507015008320598667658051039159898101175703379207007307130984875558838675105407705753129243506636174985650418371674353582580369223766805306871445827846914809108622287980626292999238359631596556059453337215349609988919216930750294576141002304528807341718265115265086107344156769533853764271283308062533648309947012986880312681194602460315434897173652074200918143122287269489840034160769708182787085902866844228810969533361728800914283215531984854854431007796028438785883599166016070321411370395704660250803116123473049880861322354249134885215042607557047565185221868930933661189294187028433924072665384900756744535310576077984515887297358125502943428967435647926896966687245154676013656292967204441012791812993641956376856298740778688067181757591220914846931392869181805655844457160559822739703634642272762299289859365721966289275731764650912759631215758773255637348288410865299074149170262720427657075046667866492529306316319365191485625958413847154298835205297171490403918438770204823159236545101422001417619111549765246804592621356651305570813804840879303907806256932620081826993034488872417256398095818994497655847997622987983772539018229727184152147350696792714985550248807166062268436514423204950393309861625144717122471914689050544689142885480927830369396991455145409252068276699514529691927829796368723948591023538155541484165747185971442853583419520728133725921977855078627571424118129006812539994575466952894429112904279099543274134205440965643353824632032415281466851066730532128430044379504096177898427198388137605693207220049658877503456887272421642489978919969549497956737619811603750529254507785077998715539971771970714796130305122093462103379908383695861630434737781421040646058864921630323265167645496407724098004450726732228424505833449249836808888539043863471214301606071561666370077211105549003636579153852745331744041685668439713731027812248228071498636144146884667976285563297554726548922204399585901496180457318786007442068417271938669845701310401128755138949818480977021892973281972492060041181555683355205376177435382214988631775073759702294876658853018920942142263781189309977408233600200736146769437129892738610335765032397595197113181801874411080388129573760081333895782350902160374557713026279598403037925398735329895305231094640773874383845301114446474720918651293184998943404374131881684893872610750612993254673030161100555285115029977136683213537547177807080275743479141589004955248260662943635369412481390054534677171322672765108142893879106306950624549479507208039997575199700088134540777068404727695601909310574581993974004295593810244967803606541376613888532282036995037756308226051089431998697443041713024008681388565651992920565773964386169948984590673117875530571996606027240754369791608820443318522322226830381127363579140599535688085934263865526008463008583203975678244152997625173061082956726908147534226007947650891669936517083590941485408212504672666260828443897150719543280258630669787389899499162759989663808621071462365571988826249646168869924060096419272167177999734926984605620757702445487498242328559800646928016479565392476566150286004736635480522451321090799002918285357509032559394220338363866236965917943700377426394122478478057684370376889336538705395872778817578845764866917968676929091469067164294498373892908545242364140567928676267331863799359735548962485379838714138526749446989604812162565710177703490220440293564700053347113612587215094743313464496150698998116727358656059058285709631942942733751566779932796254532208848549285082230884191343041756534356546524067232161520170651414954084688793287907000193382948806505755865327908648196652839994541340473929075334801961456576538468730859402783545552125207008777915983725277561029153865451317596693927938650352531015600415015718516867843605741282174632888964464164271991851070646131489513034787739996818700744874454466283426487308513980812989509698569821451707856228821640100297729256342130467279202887588739248279804243464215140686009035365152490546768437112018770858141167503869354652276197569171385742795972485419546252722796182010133409883226392646404592780236682617048227091333052064628376817784505802234263898429486557381384750533832968889215727634216889909034307766804934278593117626964204246596341403144233460063003103791710016148271797913862426762419656600112142346589834451867915316971865385089502039699122579648806610276626889563566617864524388527694479779963119354226977577474445531750342762597616887174379546243803623420783684364872369873721007879569752471627394436913396317159397021394249813111978242545631963721647326761066438915880743477576963554779563150118753033881412113197143357863137718620057997705015350358476598752860842332689981450529166642598821316488429220783738948589074991909039987339587656724419596234471676959469409342030927622778566433125227106165675222251393465028816624385629258949607778072546757511682334791255185299949416980304297118647359067686995670156533093647932936782508624312697211543508376673234035671417384105835943084527886292190678689556013371562419103246006377789846197670701776044918696427781493136720604298969351208317887800847774435893538194413219568424221776465334011003489550191333236689340294765878830567283745122218989518311169773560296034313952862332044021131288636676117970962667652129765440580867619721255683722936192756262470761286479796139510961148326835455944757818259324470542558259019449755775823461953624026470179662715144832739638518407711032921311485219321480383004030848567224593825384003928194764897045343228823435174182996379685400121408343992653475195652814595552331180405099703398506249249615936603884166059368940346721210590842758244458252726359426726613035867243924718559093647708678942663246939811273007820161764410107477246695917032684051094046193425797342199172441201829724679623596679567188155069665118895917307725297174057147406200980382922058589818830843875879829491166526744576404451952734045514111938537144667799160036337324222688405135702333222208515258932994216010459101592400056441970005792525941921421101844704267617020565074914988130400174513699547013194015411654841970578212784954318068257103963161281216752680845105016907257767487881793051658723905226841963476529594584851584752841140129299963177581223652734826068247859289002471209162481181662179454678575096438917824513447769787724528957445314655682408709430717880299451862464495802232930116354754656867089870135722601353133920534742692672768450054313273702416983452094353256753858615115866868244837972182663929827517702388696903301393398502767591333246709762005860146819939383067202534204591587052362923754491664230303809170931259000180966506933694827734728200942947279531608349998362675882331446332041713093001398228311987516631367428237130753998331658509200379478167618216813636694017329615459223084182721359255645971031823015742280965012965100501699858741257689084830354815577636169894953595179991480672039872563438425127308475756417774336069707993580554777474521377914053159720108948506671410387467990724566593947895303846535249412571479382263975352081508141289154379011238152569369109638247849560788496886254292952845729938794563693236855586154979899509336708384505449124889341182526077824818350003539497552013299823180788155470730903863554775167139599363411026101609461149836733397431721716527286333148350458781370216600883676284762439991182640530250023404364937423612962970042143459828874168819171255878883944379716254058254451295711201633609583015520961338548859940381078219909992527086527645180455902878314410110708133707583702911138295594126769570998220547637406230301532940819417099370544729143924357556412891513556212868542107036923045347951480488480561415447417967804077471511349076329193610224507342016792324799358629382012253412987898704728753227254734857809656554753529538463141467267700105247939229814643325517696913857961675540035761266821705555220163829883770221292511733930150632579794802349041320223136794119011123360547014029953605820144729923108064830325543651674230842370567806526746028406224857374096408818014289733818070582709867731225057595434741247769089670045154721146658042991037248011752433094815734185030728824076484078520973441883096203819935404105571407593002661351429212950615991891223342400559614051474554105438586292184053189517688199404661388020229086502022440514469802091060550138396356441436618399207709297124957924011339289808637714552506968017732125812867501781946024902859508743852562602449151425719763283178814788677486096640091862075415540787411629570580169351138899627415185831645529080669573392188817533697453529901435360735951791385816969241625532488620864246421677437915496716965665912004837560814760229915770305014514405516868568851398711351779260406658648878806269299334531114990651196538235625407489737426624667754972634356631431446366846899335400352016869848794988798915701038811969502285765867770371413752721780966747401087933324931553198874821444722835742487140388603474888573253635562321324807225574483321216637661145935534087611385948147381392704430198258493453207861856951494264018408165965684134697773055091241871631977824692406126810244664090431777434382178871812848082532276371863073477499005786195009656016921808709993843109044979458813015258959590631766639647058706688615123933613302032054853709173947193766827495264054525156438770861547837957263480113267921283136172533604674978702737970990455087252652647575312072715272733322988698431949574999980374057987546743711518755280282838702626258788748223880698175097031863370808952835928573278674268731471637724165750895049491541404740937523314847183430130202091298602753607466118290191413705177911479068571716550440990336673591871960143898821589567916010526418576796536131657805116822728591562076268079306247181005878271319856036612159622738710324760295692768132601647022459543331327548820823115182087754276308730914881784147442929517678159326076689958942593694623704272884788830037001672616577204193540103417682150797176302982926150543265280434133418365310096948017314992050586173185746871611635154545943680369547666668053299694670363598574362827663803332897238639295324193906789602152499619520752340407848005648291490846858605716111315617215300884056556888212049144492872470554531837917719832007616755166833593273418722307313701400820184559174071265530145276870638371700095978643781947714566458573395785572475885100892988891202735009431334261732881084398707944472483902229886640494583055119884709834474252944195738061601768146840330057481476364547293226721233657278442484289631375008467897078457549006755222785640428787017182211785910098332576414963503535844099508308697598026131879103724977782856238436398417748037762155765563789766426975353482123155434538442577695754953856550610830092607159305981152022973748224999294723662645454010182518514096448345733540854690142956086624852280802836346531566990148516887793988978836383234051384278126775661780450292515662729645938864284731602165782235377668010036915611239069907984836614560116026985960574963957211987192306909351774182077427373358031278321131394314620241547935971851100767311667999413071092780202180592513008639817623367281149853348033531388288492261403544421134599539531171994036371222323573173771047316910096866289393984302479355029137762381612714441720110914574591667448918964008395519862517834509811442647143218276381163057385811497048270104457780432337518205245976403505689534905535786777140152024478809134360935357735590293951678986213598311009402734238137346975330679082373444944811846619767546496396494675169521055455049253881265442712520438809139064426149205067595948827229703835656382290177277535027415596453719440801093092581276022205255038991582102894106884785478408737080938586887551195015462764042206601672787169184896221542751791728111180611761501446838316145936006623891741078195616240764729419280474192823588458744002822440581687961598206921453993842510007882237344250349926583327906813207575177136431207761145599637194352216431014265653810533522788109324189501648027760606832147279608059084054441041000681587557499005048852914521892043863915716994369516510283542765596479018999141710691373675781804745431744400660065596690157217815907794212164219599263061399976446483363966284552878659753372048009881214792808415291031743475258147348773443225559562338839199164652180352078742685184823756624590877243091393151346353651496037754060082712644090064195705700445503170569818220050856065417642578668219428283861094633268734288624128772842403981457378038061315032916527275342702289597537041496616000568749607800418053661460847118545896464915461284800332584064834217360070361013865369589051625843484893586120415815099494266597203799754846363596334946946268638602077348388085756963650187088344179537107804092647748303689248231870840566611263250829770985108036109492249003678035645264853957189671285622365889189144512105625308703357429049646024730880909907083337658937615678512821493670812447860000546127498331484198543734856183309114774662462626096863255935043064330316690544637041079733669362172842655793852429539051766930311330593378586400703490283445475274756194837466400070592559339852719811484562814061609499700042730633907061803500532419546242809203836126475266788158542453164895264532033079693907817104753158381301916178321915516314353270217337133493170190301070021806514949067937887558177308525294906252422430174636250878199021295475530444293399227087490177889102028826276390841564394407518996999340349559893559664292286003560780221277426485554298767911309947769333736633644001414976193441352256768817995102896307626757342621509928698660182007841551593467760507017007085125283355122300349037021934376968806651521123665355553240414238937055197060734515317649351857291542428367272860863391604342647326662805557882398999272191872281805586011274386431494542178614542538806938123182084111215350677817394199963236033200465843865998179279172429502801960904125301219998412485721055598517763094808890571826551442848175719472795869885676890050529473176602772671388078818493775083152970711433625853775985480072031583204092547517918182350748772725167764782354154783654567175779901310443862087057318226819909252102972986795230082999456994248445665163833724710458396288704676140108933417351804856512241566482787820233225225027132069951534339543510659784911583869620382844303541076362156960546982936135064347422171581960190000500978730542872847841555016137640353304527224714910374541564522311927937744954870252872930042783156106873264321516521534266392394811386232076502060744177281284926920932350092095262091215184958198672569160737151714475184402186277006998436496216669086467157372916896970202928049395605876297918078419086166901114133137915746639093196497291246626165129739284067200198756732187010122798125127646165326612826008785805760131219596388289380682900833161760219055665928969001418463384661171555445891367750332744531375333886410954060184634020380427052388140837535364415767013683711155860997973485749050563153312278934250344437292154115996879297758875707148573228570017872227280371225794950443389759832675745836666662751121974444371375582716936822203651339805223467487836521783366848068886225426466619686523046243331761135050173714032024009822576059346012570838137723896575440856761509858926683122733064704673695693331420385788145703507077514898223601532152625658631273519253148098803356848217519284125665544566234665151242180468874196406401827863653522478533035479417392894067909019899605119282980587186848956057826858265555584687303577950317736612755825660228570145111774189153542086319044164139261519049950634463056437539798831616377377108874318992923082393282268165138044199345678536602879546532028817552744355427197803686343253199358500859655979950968192151973631441974513810190741057866950941824504902369861798779728718963220736561767677630407660345986077640147110163767927242321151398573755525385416636263516255982656720278659787460021458593888004058911368538486005324625258453897407164058355650476575936053097761123818023092129756491656362943434499548885703134060195850899162648754155429177745145496125381718941855961672220014031636775101788809687977395361250673444036578051054711838443283626373832476324546296429794213224235832819749124732789643767982766217875204727242182454792098869555837776300591852030036941342226966115211229659460886799086261452316009415361095155967392690712483929415062256099872973017874651784144083304422026671483532494109803603550653975315947654862194204793234066190547039588048217672893171653022219925978450761450759162071782014194412699592177228667438106693353923435872497439052500340783520381163869295404019359670170590122918682140100829693817872460164455426797452450626568093005543068796234874586056227411065103822570781699431041697527119566498384435058404605435438560069406746317422487364054072037311898851118103993478381101986145333926078406018728698176091838568507817882001894604894007368112123416415456763040084228374795148483726088208542314189770967424915556752705039739161990110223652713880186198487817133989479153900908891854761345522492512613167590433863360161511987019464583907232451926752358844042655341262840269683934533854084077784566068873388032116718366053922612630464794458414294757152462580486998980133530103541704786441375366976777124833721151195498257802611576882833271748854563387905902834713652024740314709354904281823645746569621604844616426343232448138322689929482504251254217888713025956467903523935037942656351609177014580769584770584383976248433023649905532198931663630238867949872837766395278125688882932023276825324452045045711957067095057922013002429867494857379019566182516127406124960010991840130924305418590607799418317457916811361836217464579212800095403880869833727976266082470029111433452826379812559382837880727173463635791898052351091643862665904849264608961742042058386975391750802440648015751032237410224709441597259823725307992194482256637237781246518296689121346205177387199962222880565447439436210297583616614512225466140939129122855980515502772677690426327455929380718557987918158085532089319348401307146896581807541455488975317734543350383678532508790019253893406154877323319708411981739313483846905517932950332349170195760998258902174610281054815343989837061492569617148086712487548656892804896487518407952448562072920396151821337891044121107063241063838438336753625625694613418030297117064872640702401074010069832398202942138240325003377291582989194663586557106725420288192399928628497032213636353189752510352370755420659190282501977340342404305931983862292097207140734995029545386391579065313291835206406062787812026658745339306664129597185274391405874292262923096299665113232821277481125893035290729093980031857067953309029267169124344524227284313253614608512813131251162668641204666944383757268009106825012937817903793794480919115795103885628520396768984891575417231896006698824623398779555710117644010765877549551762720887809944058167007032617057561615687116936122776502464339935373840100956321979627656182511032824400269379855019994366310868351659344712407797017496370770517876704842172408663583887909351121398857590094993179032346610412978357370631806004809977880228142601333709577457115297486739779562731230525058669802986061605099156022969034403552092572533205694684091235287031299762695721859281349462418645605126298341354299060026243639591995333484411866073134812430236311895775023329980569124506717529305194526486053931610763085413508836196621378898054287968293378279528537628570909737366778583652735673672980342434419059885308561482012317979992229545227012609548480315164269104248096287857346189598769182154267810820319658441680606323574780863648307322320281168634295515449940799262951279975869294741599501746263463774013463533328527121926657335139390115404006595558858187061447919881539261651153065253761067406806208115242641997216829072988802338872635934457238188706552608542957052575823309101769506143791009216007817632612882564429937731616890188688765630180046585211767702410381040087982748328157244032136749709630609375469456741201828329065596944037669681534489518838864228537428828440462463557322212887719000614842954112850940316604179863596092951587195988706555494719506602258274835690006990395590881076090134444909512531516369551519822704468438982988327928064280183185035562071344660766482266872527231672314086491251906342960542279849323650061933799217943236971857971502750786587015993372316221727070228706687723185283186546368025974339648249074246828911964571644484145260227312442306442143260620187103634932357376958400612682479393962764164616548702535889737060241075852114993452998367039150650594247025616990246032824718593873485304811500497247804658394240592748601732815625476758439688811117178856017949127114930890176127714257976086680766845576971294309713799462200242481602299413840965072654180002019458097301631964960148282531467338537399147158779576540742528956075149594814210747963437672892071859068262303531814848862754273411862616177437949744971409095929868715134848260779844212438762759571807190286120131750308077309476264273075444491045977967662080842942261799919369497418478499666212398835230608115373649250087074420891794384872622326329511528662361859387921471113556600029491688140196499969553335697876056271593296287114938774083047773876296980628541753843781304571977960577415923227838507029753433544409049187633615957092068084803637057343336323957075457653881528491799407178917545217119589207033690501144604938217984019532867083922353965013685960671218489882502853728362308566308656055936886047525831341822703898414051144947128020619883770915542754548092749740540499749116347669812198016191160820905980673508383281756067623911617655148912708342683074316944262093541446473237729322804342809880468295057140530272066935506544395852736848403915143508003176304221082306988289150218136984314677321652818006053287088814010115665287460785977703377490785305713071219009442197699414449344443268571768356496163365629030973543982735130220863064681262608738103493648916154546281196158965383020006257566244701166422601574960678546541710226500419277522236900191951085306973413679143846830388041368986400241107970868458358295528156787543359771626905429110043532794863222889933859545219511768370544793546069716937397600321953385406012237411714180725271619438397155124464782560040171307594647540108768481001205467399313518767890635886456480732879510541605812802093451471267204205344115746282617640806951501073284089280128391670588104116950865528626696542208174682242098600471911304996748823180650108078650935467576872393262290070422277147884618794136053535985319731760191917729961405027039967107752467208241655131153776387030885975692921768970391864814340034260985653839690653571559161905859372220235893820907283862830036840032354061443546219562468146088492917293416777315329303066095562729590180996512134094128033128066213495529631664953908194512378070538134466486092110641998990327766641174950376078685886077961480008114321674116389091936673880569739356477347367165592079202211354262586440112240099846466685195746283426252311886216203187650466739776990180346453533298428672820317574197828459955878332691319577723616863344158398311755001766455651830567582856928998731631797683116376111315100059640555636674221579853209413761908092822438669882944729907026653960572102842791802842197382442756319756004401528276630358347454544851131799712509927053119643317900325934120960762443279434833203567142876659518025682951644003133188985611874669234352896504112025090105321408665324925005250801249088203597847040299610124811584681399481711861109350557138063158941296976815045681521460259075893272518800394849566648972010495570296201002789770195725899443274009266350417501251917503792895889877811274622282326081439029138731700491838335857347690400553934482223860928706287375254758632338104546087162738894600841791388091694487263744362713800159667951470092037294251796394530929091580787110624632626165203544823692210127783856217508510624972296307543199389235473599582596279436758957862216256096556634928690739184821374856930911183764048245682993740639322032856321766706223410446493939334855114711038951797248633539835054903554766151154944391825210497567454084485788956613951398952598635183433408482970258625840777449844164940450256431345392017567057789198484057027793918016113117318526817519275293699972059212239346932269824867313238813836169734008001680273489431480463248569609152894845398697935134601169943050260082717659046689155818220725710745353128298109929369532495623123780427948486098367419708443021815640830720528221114376770683514626186102087783631417110544654860046769959659531283898269215129889946400055857310836639398286404382143416289121247449457217855001153235186820541260311081260810896229666618875796947757658202494005337252115857934332311526020179293763214512750755931436928737689399392151097612066494278822790376374635168460943828179773228960210800436125836511661822011709564031941990853946865778694105948066606338448377064729187541603363268486055052591753108032581733897247215427148016830197844521385322108319017157068866922450010900160740078274733037744761093067750180650590786524633010141680017711934109427817743673277968608970018868100075827585563216436583440083174839299349437321301701672634980775095428324139220486719410743045550994676722222468127761219344925500912452814277910304488289467923145249632073620339755531638862290263861996452066530837409111822791938259140824798058789042962112870231408826970106517330329498477049797217602453457777893938635634361620345401465394339703276408416596755927321233340596680835503935119874468416357443465635870642212276484636546957155703763050813045990375392782374651964484830470730668535517025419381119626199268485469239521423575945413526692385157585655092970854271526446206748037645360391874669718776160326668087035225945311408790959940007198510747227563010297266570309156340026758075877714246680027089160953855083783295214373888129540287412331626891730365800341225539876209386441971121533118998791643478050450185701513860688568563159805601060636498748481956676597451619415646648685490733445706846973493389081440236006672168351676559355264076706139205806807293344020014394457762303809705638708343613608881569726904867855511094100886602295102139968760536099020836118722600727673515872412487164859844897376495387733748511911500834452327752470566943973709276987137450810884687669053592134579005857561469555399835606805901693059503207847197336155053858459204559939021639550604056725405721501399224520531190735703420062854968149000738562842306095035208567210587102290038705671878018918878881799548222798379750911749396884401208349425634194428665855996748681670436921383710661180190726203382540988261587247977923238325564045799428076420454689514584417834552007177423781580048142958523089912532843802988747031708999716857580123139539102078277097125211841772514973588609755603860911761235740084823330378209205501834866730188299204591154971898306527826789019286932595894253121255693553242676224965474080005933857168965670195975595640301606274084080989302036108788688954809442678992533267943115039989673799921236260098145738459694588959892134734352129226273720847132930993601898456678948124536835802506370217254087398503733046779333677878310972551143466884359734742553850913488674140846962861271584135804213041649358685810978160806280139088819143302182761663114814302458047735659121736235206873663103679333405756929792833012787914513938746244673333339954195954509355069647684018687363070803824297647331478882444470320080156136619434573571397085628875696358060481627711083628641046489764670518590657927370956542587967158442848653248289656180601596464638789772436059804997664420827935757502571271483250666030206028405313795362623683640140785098442729198086696125421334157423315364051823265957534440359824267034976727345991348274417824741825631682402094551472620886035478730876047268581549055155628613058570819112348250038584364688827863927539483404566438773250925053488243115434367532438277206525391893864508135048022276852339119998013158851827072631495859276053045696148323925666635580168449634523801987656089415886112175676087416400241922752880450788524914751135206301687217742798482593074104194404183585004148406878572269639529423692884683801073141220021617136991502020758664073112481004315899272537963641254147769521953475575999630272788531037537402681701942593915543761639559218113155319433131408410047796616380660750905376403282441858130001322220201027714599726092284127772592605652307728351101590577536324703256784071974405445456233962506442316215396951505557974113665376840357568738682023037158196135875763020305783252903439019692299548396000810270534719485992395726624175608307078425133065720094155337124368860407708269128028885553717079101564755993614717352169165066713275877352619572068070374378114861358488245574766440317505208583055652276214063688991757600324739382382514873688266636696354795200123735784595074929199876920236363474219665274601361845286197288404975688810909460566942851445113300043025404609172703145539165934489525354925216848569453116894898249882239378439251415059919399542399851551501182864385606950219366673072429597961868124676461761744381070416276452253907747130700196559475030834103981516867120014401229740836134908679106010013312069974706947361316009279407059600111894502094362671279472000164704123420481503653793465278298577376525649819272595861310079521398148918398889431672091448649164684086385147580889517953848114038545439963664043391861385408042617558984105623022213000547287760465053776095658679532577025546270705167187800836487134969896092856629131973016987006191326269342486909903656511002120510737561241782139053919559459028438300948972630202790213523102057794913655600138880146050477473935340610263409462316694907409294971741425734008100739510774452855514412567024656468421990388765418473494960443987944902191647806987044549272176584244847615585477684942976547712231298402768131762073795981413909403464210838663019731136103635858358243497190955990423893969674803146562374613017388817040910590109007814775138003047263178858197818280684891003748299259508703452301659465215719936327079963639586726459151316631913224839984327958417398512558822256227809593869230635374596103865581137574750042597664448164052000428417293527692203017259865754920921096674355772527372965076653125972604933872952510919577695091655940420723882849018231963332542666927119060835915746626852353202844098481100311157195036149585041693501350160206673255318443714790107798109865113107597536988374229387957007345153511855968630526718137274426650416562532654689428118460588764115548070394222837654455690848004703275107710326556267195986736243375086927966377977551210702290264967907980257306754932911802478739881208217792401070218743581609588454177314799556659970160248498261556553121318464355097361918015745836473585956636886736198347201089583496554292496557407066137322768723264204729699922592573780019046320913593336091834876629061007214638073767840902636538622927690822794695264684254387861055451641231862614861478981171590389380644446509611382338188181696151010008714006785612860914020896974768854852193226721978610667679019467749728037230697848613320151885490297224153635512274904312063532686316631676241976734137313168843687886858105249279006657190837023140316925565552429398638808904935981981354276270387258231372545246548698184097667287909667740077592410711657264529070403341733947689559650380419058455867489391852278382039708585746542557797710297505786625838700548700354766783456953309275891299634499170534230755221978693842628242678662081900042072230144729700382494856787271117936970383689435248727856919017723359943379937201737483804954539072329944727696613796910926954008916511106888627429149455117957665373961845581093895883454147813701137599331877272916012005804233977570401521044147348126343093447103155167736627323237531083138266125832722287483292378800513554422655982854808264533580813660932372882161263389012338034423205095920365323201018559874396742636594716743518906360449519315500008933076987420780974784607503359071523899429443317696812921167741859518963666078460070134411524014795841518610398779435683739267368778617209595711064592927739357202025632178759635470174243665751542300602424897535468899253766396991642977927745977631346308720550000967619294484703669096263920640551928105863463994722157325429041279212258468218362384747877269897013896403672086230655311783366794275369928140009785855776802869341829549725869929280012857596574451475825778955096981012369623999578380491719426552801714666613734557694099929757685050805691386512727504759180083459452800698085492147968754452343638038596233257959432955322822214310446669425678998824896973085243716621419974564533040355973273112962991146472995485948098238684831972713224918400803993466309346222205922864902078917143221729899995034974899075015087741033803763897031000218428249100691002454784210617826359663700320425509051566786085579015761468101908178315966368522784863723381783993518951429915396751147557401312123569828675078571013437549752928929840736898992391325095367691146394870535136574395671940478700474662272101183328892202297651856009154675469765331417633107156924399661428275095440657208652573545344232061549333567911869353547447535428880839906238386509532053657050653824469891505917487657292182156585192321359881321975691741429575503014140622006780667333413213586364432066019187919220998079638943860129733805352727435659550997015606789467694777639121328044102178468462835892262765377099577303598913421364085486160720252134139908146212278068140329068142560708141002039814543912757837746253066112366764567069926019004959182883877679538290801101335450556469285053495434962485172396189728011740789472866546158039756352107781375959062889063564954510969747539935051069786868950286124421391629294593524683314611546769978509007441020390827072664588616651463706108301418218128988264023570804678093480881882635100795874150198436140533577194632821628665604402224027677130340822631087334415064239927966771586363825945910203587638557088382575926163956108429318673146067617586588705544800743811499055586297432643011817822869244552928424833673935983123355057277092389374330007866612909675380732945438194240563474828566163288136400724944664796670764434035062486594508366170154053126771565370144667809531379061322057822055325250194772362236696044935816984952394018308917318699239819684529341862430215799793837497983335935888720503893644171221904058121128557323494786825068075160803101478605747860477041103270999003925059912818478842681718482180052284020564816387250926305133419447233494886811602006145866151442215125228321582749376833639405426358668577085713369196321753111503200876091232132777196432854180255026844087372888782216946749654234007736104899173467621415516825394186064241303089667244397166122936879888216452117760405014176052155384685201082339100437939968937582174150597368123780096412292839425309184044606952004314092076771705957115563526716819222375041275672489418435570203503427094586809673238541785931516939775671753834017238238000145284437717039420973904204817954900644716377557359168720459465092889190536736529771172188882487329687777407869646481642729383093854590967562366936662944186312221156216898083981940316066350184809224060143713148887007561261591958132743746558075467279320703414753309132152873503121417826912721758152059674040331692801020754079216501153491022896799563510723303813496689350969705950364802031115358645552590391036197386840738945763189177416755961058071677065516241371120141243824813862763427106462424767659765253127798923813569694850859786332907094950558955068957122336302716764532506445900537695097632566428929994087523853642819721992109087017674527342664938527003460250548023589088683373287618583898862733313556005985226325234871642307173978571806221153072607769069825564990400823369405604292217089789621925305083347579339098218813345707384860607083223198626770478238393290376469036871265937131172382578477163346082090100111968956241642838319639034639937311604504532256990416183467499956285971527332924747465582570552489959938585320222671775781216998178280369762647150094926142289261599504799321529611506329768261881568673456488854294478112792383473251249395510072395249140077957854145939436054241597558171321393686706022308587284084819152002360743865416800771635022623524999837983399245722093053167197829189402781819867407688176832734040705922765895065343702175777462014254414495063666032826975449959571485502504445099198998023812729196167579488927963080085762158852718494221759073031273684808794361383525593181502303703407943250962903920067920315379777671836170619242630376441809408944936754921377527211531312124731654082253152640570653436408592498849506243139160699027051086290159391209300094984351278967488898313019877859512435027652333336166779956716195358018989873730532290886657827084011001287081811946092870763508145018624045319798261889527440791204924202370066645391757603335808212551246404836034263050521142778187120897606351594204903897757448379411755573245061700529865064044964428768517235910851107284454677772580830455159786864858304994309012619406622022080093970914357032866793313453818810180898015234977278242246669515857741805841575041448356107515042672128923545860981032771712389080251432961664725511626514367163486081908449804374118948803145915348273792488699053574617764248712124626149711334817018445538422284676968429380062621666323954195964379187851187128209760754038430815849611252444860700108473209468889592792173133263985616856214149965093951164186077524430656177703851635603864568883154170938990802705403651201126223175697559398794488551171023560828667447350547917264604957274893201346451873357042883241437508602933150502366067834950738367889710251935106028842616785877561895610729357339537450158132853009146876930983984170386717422890924840059344986848545359303071811035150106014723479713548676279591646418413896863704503626395048045542343399394213399697026186534529865020675933713677970204730279415989414359362663890379076798540762214204108774775440671277128563939114250163421055885701947350840999791211978423584465518854594945226620367729083109323200685440160730618972191326432728179946076472122325909597807636490252811237954054226837685527887950147098327196710026573172676336734914648477325089098385384619163921067144643418442824693257125318745091457378760221630092243789646307144497787373444187528620302874163069189894444017045391967264280476929814669341072628501215716261025446528026264292528240816118329243577528319878415283561570933098812347127707143872688206559841477494665260478159892894843202929194885144656592560699084539562092458906521942618037488164159321758183249131725300517521195720300140916725334340998935016701552600358724879476727569269687230259948121835996616671842802994621632810168229563290186041766670713698115492346875056412524014921332480437308440566078399262857848993154855567144726440095074958544526826131384550331065802081881672770072154293587381964031285577099179332173030738104913351612666567688599408046375981893955894695281699250690022072084293060598883688251946692524885150328942989400008276607643992901270620226159789730318307509817080783902264132428978446586854900818940808728406418850860299880387809735560452171866969177051394896352201269098561869740267133169377610696679682079686194682218361761638898814006712713065978934114948867755090531136668716832028146598901582149322657311532497391753189720154186443202229095757002094368361362559709546051860824132990614638298275958501844090014373267260987506693485676642497146900467176750843112246931940921950175314661528073460791304947911439026630287826669149627081963098585005964257459901714766507238767436426501691647036958942158994528833836697434149698200806511117625792161380328856846258081007651356743302709779377101207752408635767023672130887719031391627922184625083066507200632156723918850480203596519356612155200435393961972532178428303551398400354262721635544928484403863113166234577695939526163004016019974153718839407187976831500696025370617805269475162926685980504410706633434017241686191140642111321588299172735742043049957324528106575954874485757218006333431605255165647519587643826693792434717296877199667526533095675090969631657033741445256150018972663652745740193921813494336271117523751018414427203539870528223087439473527401939384900866060992779321652439777156872093895206894290732985115391071014148968263040751248468228903230438371217906956462465697612694093214788711958169720875845950608922512415320444501933566604099460608903485017790256820622145983987029936218954734028985164116593221498637053682931105775906010416778337551303344108412211133569921670478457987457173890644735693294340948635198431425900612163019783794574850988450808481567056019243683893558188358865380711212271032440132184916277377894634135263292166250136805489946517652529703135437020037681337149820737827146493774551631802549317642169093724203980665861531739402277117439808189354350843937413057646833584220564345218225695888869789791255206576314774720560028424016326181484940519496814217525135350705059735132723643915166127459650822528873401452900084249226607506075462805247754766000127044924496858776241679559679846320050297654607207593282797208079805052876171435222839584801385292255160979338284094617295096570680557392464744109922245072747957951146438677740698414807238300901399129962822388188787640674970142529078144338552525939749534668688001430211159087148798107795549805110753822136560995154445890238656129010437583665910485253929051012557970312050578788996757407682314527793640287942891878631559879010937022257155985670429077434246592461234270157769404373139804561501383701433328489030988048147455099938148176845072462447771602694887670630361877422005870764271286301118211291117055110302787799799695103466109608048006887566579794376883929315766407625292161343913581307387910434797976548392407595874562426120037206651307016783454344005748464676221392513375627422231824476061214420906578605754968403858375952038364259122908091166549014354761161635419012707006725360239839160831943089864867606225675173293890794211268129416354789540068994118811390088648326438060525792555944272701785969329027331202874696327241334402944065958350873402005144626787699066525338490598005300518131748746984297052858214287510878392848568924680335279963452351169795485324387161471111398446164872037108933272913777526399904974010462461885362622753246889747194529815957518517963254729228515114962527212803191989328679585712786818950699654560062082236375405783548191277385083160012228508252944284988716068062318598963884539064837234038241590735503119989397550882804652868330573067162120547241567005489732539488097058734426844439820551760098111792867222026704379087048399324210341163411537475209452379258849894564856580851564825049283870599377284207279880007698947889114008415246460682024138570478982642887689639854217125483781165400857455087779962051666944583200902021868883757676079493424347063989833644487485554907295724018199045732901317315633339011494103527278192147685991198018325859886949977915728957172685599639375653783079572269673159317409935775376415653555277390275109268483648057461035822423607779813950324957004194035550435016227839795906526339709503268964549253717209305926580267260140726502115754671880804887189511193286282779735880412282479638602140485342227102351427821460045600478847183209788441318254882286916041798988819631191918268578017575963646127324734063096451095424197289894088874657902796836009608596782932834995324594118785004151614383672104670934262669866753288168434025643089095116964491078929352914232794844021214157292277313220017975558345215097407983624060183241171603677545878605114378987767120815999067787540941235350586040477599894197675682753349540744639341063231099316558839431924993274080379127876537029169422472336939304914506000917681287383509121386865703623165719582581769421727595740916691971888883751907354975388700769752806748938815575862679656761613019873247645366122462460777706965345472303126550266563745305700373709574318231559287887615504567255177086168352627429550609697673955025586190008943848275793819564334636326933820584879374061568190368134450003738109564323081717524077311241785818097167886742106224686551580446188230739216729797802794912318530594388642632382244224788811745150824907178683764820599600984943373784457318389318249508120974660912863011740575938712778416322015227796439341994579783932330155551841370967258422905442247309418822116069325491833469578183369644467070552037829894294589060220495027256412345346500236848079572374981368687360338575308840998129380167851245565534250668754712920042403865130841001270889307100855706548374005050858437227920566128635798087773627443444266608838398587236408888202492513486008680238826125716548821216966702921647779870823299829297046305050882962890081650140356416857536416289901964034526649451066462417536422881826298692586091799162343807777531386764126794390238689289072214416202098196028619197500360223060268393098054026928735356493911493735852743225919513092887711680657916649635637013091959706004129336259620673274497100252468819312736009403100938923489545137362623294457432423081529820595671693158826710641785126674594010989423674825091090063009916916641594710813527571560342923790596076576011348564968280572504158675312538318756043033702468566653761775042576046032237647286956309827977117490362442624248069272721082257052267126791085560213621572566706002743232886013428713277874316860670687688877666820765002960110078690365468001544428867413295752577606177632847874072503453879861198056980349955629786927608493280117315147893831102817601687276723779263708309925966267100211961296577300038984786699540599868465519258412218032188174221154921541730243010037031478036012215153095780327948246076827856777847376967435073138878873605762531863474349540223812000906370211254247211277361845624538647692850756976199146831080206734676866547849203828604040228186692405863608844647347504816585406738548499951994406564285087109486200214283237766576991746759887661191921940652450704450215576597481309097187320669163065839523927922308725807474733188379894449290404492514875359712318062815274927456885412640284871900213065565747559372417255002922508489519117655666811477720548300196450278586398219205368726153744876732410517306664177066845918034518830905138645790774687513253228065556520933545409257579362182882767019711235985315999067066787590513966071679745919853595844485100431832892414137340104333318642362169215505443943840634524095572517473696552612876803758566034191176791860219355026264072126976899206037517442101229157758441650102556747987134242164739235563683161252387709706780991945556356164351813279836127404840210642642264417602475663435426998078138741274731225241698210156783309318366876820964447595001378363330810613532508523082637653141513219378505295895080749916545449520191497688889511628321846231934796778074258137822727549221448566132847465477110298140761839789936991851610347312073274957575550904035947888809062260682842908931728877804464469833734796776847729712993756724785734140652975327415940683068559696464574672238466230570265043177503051729968653415353443832889859969453080489515909967672192456964608225455516703665430624393647605393365839465941899276482648923251576593241117775964614833669160485231873424955163997229763219087670361435958568066212173458007079085668899832803492706138949936475744626907889930775994833035099579744740115494511914148682151517558643441926449338801423948593075593509738216997794536764870313302587461518979182072502645122056294884043110679254160606328749182030594221524531365914736164988343475004536450677882863852944820643288945196470350269251933514635103055270537504454291552320831057541262382609370860496106710697608490573734858442840605638442236127780648140142734551638293605380040337657321041217203248588124511190672677060945871879761556991530393510577991674511176044391558715125270795249724629534096300397788123844683179165973790180610793674279709472047375076914594280653330520540544182810045045778076807059705098940085821817742316644285909922764377988773036757505592283630477167529608393859386909844231656420630202384371407388781814620591672742907065234306062702917375619689431747576685929995528642365915119341373789432567320829395026051350104614953927635028519099406251423068642280562697638819227102023610834095393462492504177749285173254697864095564325923406955191984597269888995253610447759880910851806428711099271332728830852707398402600187031228033040138352698672181695266620589899876533859680430016871194412278103368381298779007545154198059035959461790962896114275298929803321070159707595986259774139017280189197309754519374107380458023572801308948819713804434976343096432830659620847208181839483705410216750108668222257111876787632584388844093180070873890314282719020965995469390192407360976817695021365556157352786814962141483578440355698478381911219878364237046123004815310920266288498206398566999631815350776156504292264668824528814474900051853237536894299070393888169927343177927956253358839893804897735249586035421403455112441446434581579693897748718848418048193398978911634231498961056093785328599472501267567585773881083280253512725028016671453899766806402610384977777466729769542419673189598630354289972958277024936746790513576791508194207203747914468023347801941770367284455065782386482663882050466562684243076384666354767642408883998629443911943479542268943385870340657987467331397489558243547637939702267023257937778617961825330336191267339490333368019380674861099536853234828513411421238820898074657474652363114565176523931442329057349451636172814673478973768061103310789858062439527145912903741446279709533231001313596027985357034303661233995828913838903745516961850037515675033997205677969521773129716193990036963832850427893701142169301159565762014430446995379725574849154411634316966359515735255863001744386241799225332243780351472124007629094456490174751803931416471039143374673805406842143327120943622948156606175104510598874566251733219827201495116900450245641604992051825582515274420053618830105594988118081299802813097005309546260660542053102507309347815490114491085407161460536863834201162168477455390713646787942859799154967443968293757907476155143702188388588848327739908842823972314020200935352472041646179942846258321463873455425413892117310547944989025855198090380041958694657879022422864029354414478930058004743871587567969864845600091450470381367885048963202614219772415119387675245735215161763651182429146124960855067697777913847185262299287964972924479702830726437720398108102742910538351194846968078056479676219345602497201325331617433098254692645823897129472838229543871484527609773432315947548483897926845944966687462979811974631299925071091689359252538032187970349185174428224968832169528288948463026908994034307627286876230211691853072183006386163977138494117146295228530415888281149102067485573236585062176393010930091603559539597279522158368809266246531764831252743402946263654533822720972018781578144891393889857870161806941586222397030805518614933247221906250582490162742361454148384419771670366869122569334800199226939735382168060176289627313857469300839384563982252444415302143178975483547585034279359937748774017529412709351375712122851462324008150784754290283776735290412942218466720413212123142710994056304678534744895269244247432964499605309315160639563581559956554840782060843065504076308336210936655602056618990459760803409964636150575498628745261982020874559674566983175768001150073237964785146228324757643506779141862616375762287455361521730529883308098112534853815759719147520443494503907142777722366555029517571638447769639861032620675148461286826081650094878332941489686511563963762494549401591336527028218800179932038601704579449107702136236351082269769741462400173299398631752665431975340805154412982442903814298028487305950917592059423980463371878901143160408981016739609218749742876075596262236552813569413059016730776441526785505635019376370206185235407853955508536951044301818275081402447536222263833370672858840523104034412626746571020983011088655491693049587629232562858097298871702639566588735487088394573755651359200967443836357349161556770807115083739684788309783197144206203084890459833430455861926786820167695537416836511185250105092703567808998497987418997986189657136890552915913441779025351699728912858882611763782887818467901458616418721502971009577855389641035340006691226781199404328288057656627729650851283228604260212884875418025653363339637288564565479057136141262614003238822408520516792935120553224170054210245228521652104401258749616158808769031498158360438025323170280020566662738309237137259117025426642213251606303350456492127734660879726810088014189427107668566757533433474756655811740217375548723848663567699298043324215542207291223381214326895006542243771360364674551334699796727089682334206307456586084754178209080505987731410097544525131656094926829851358853379998660518374868023730178109422103508619689326664121262095888301917700689125161175682523054560579246849758598138332432446141127994574304833896998847360092026750660693664978179112226661217217727326281149393551442191432847171953807597738795568396013016086537813192967236543397852384398297651954813648424383525425840776506761479843412996617624587564940669726553221905524807038445087425685770351594497574924860459328173948199100009369968728919821870843615688132763030941363245901485800448261266864967669824939545344176124543043973646666553036454402404962565330724680806024389083754800084327395644488394368319715915845967184273064604775119629949333428670408085225457557027943073521402515640597358394212526259686309079283354284319013881524350867264676983544018174442511438447126230224985200379949605119339536114087608104271691149986730889621476969884324570781207400563506873237846280255306248242671791331698943058259309615182297676877610476892755171795263333231067678165210088617492198091925220256080148412688152277527964820372686381232445430179418591315975254322236990112813457208372554890134360995616254380006797824660991777851070651397320512101937076860168486065221250649558424793434615027212559113722424916022924487982875473087884927482061230142394391198643500818853067859418719395339382960397752198901062702194997592929516222388626286502682822080731935870690176017764184775037525390518867481796107664424274973992172107307333821182887483059529777056997654332737213433231597866553094279729019236939784399911519429943231635900346302487862238572504642947939584687092594778674030163392508013374694613552504188513200301763897480637028715536202162401867225873743941248003547888405781246613661578667096887531299879737505518154979638619126041975759165525889002163138507264710517334758866483502295034747057001095814789678334646700265211118514944174642789543883059558172493900550943025830682187324706428957196327692760930840830020257515079471944039306714421104618853757468763841842019855773808895722045878406629541095087437248366682900901633472060698613326623413163309509344778204531409385085701716791749497571138453373576476530024070001682924114237381535650637383065601394829322101269666190046806423969275521544755617124437755278833736509648155181923256993649147824733622556075291384464889787092100744854317476008246673934309012985634626833286193760061895179397038469997195249932137108743416720982369897300013405880869130408470671022714329931641663578275129635829228840133721004239366933624480700838458347566879494079107467877363814560563218852465984475801422343000733271058521029564488211782863773658933774149730301951040127762132687001374457449385007127237166726146728210795867929439288620850469690220867102833127427714367349944906100828802478585079242255822296995707899595218697020184082160723594093368657217372095201336895464131864643500831701109685347433211272334514144109918839215010660306443029835702092680172741769009669900038695423380595473257116455692960314996048917100604684546537989370332065255755973516013513582177196696066457111214572049046224452017388788878501289767235011356874016215758215571018775129761974519459439113981653525168448078841435971793677327295626579413476858583453764331994970650394853197593431207077023225761089762696387134939869979015988957726087590959446104305410552076268528667667366067183684784065066677290289088728059778287967343529531734423448764581853296836456344918613299437067586380160112989066412784150248597309228645768187799163871200167794499916297267307071223063110276980277758708887722685348046465548614202944377668676920890051504824491744294837213499873362245005192484534085955612134949767838555691098643690521198762425154001037674156359678575957010895250015040363910815357199236196851053004421886288510629109741392336709379314295559579778266075842370595481282648859600673676352889507861116627461022222463873051503142159645100228043246720340057952492857259702668380890950839679963503876076084119899227867010063256450182873752108247320493297334825132211703967216810903014044984918991822623543496370093085537468710070953503276477915206858232826426830398230520160276813769325955239489592068702811091543195746691468325459584448979932417959974430141955648417159145503009745331144395813402892956844351884460974882509201588827098137611971013766537552687452876698454237113588802708186948997792332443568435896462915304942834575475681126535539189288535469965951004988214584398927987119147616591775443511663346115548176647816916302622235569384736220622046933417149896759595280121367297731225165059715207717755829465736758749200450373193264361597608117465512668304958549104922277563945003879394622148830203530640118307083989241551701815563450579264602349636983273273966506757086165539857716522241255576158841416309116684014265456926416505910775083598856271173493205042588162614236705780838052982200841227295260259021361643527779572384743480074694870585810690379200625694301590612232246905473011275822804401152230545684036534377748254169008893602189825871657726396873459763088182899488939015302902551110017272254132488016054484982464581794518045265438976866549061149901330865614633798904950346472850750184742689721704283455346049226929485954506404559664201248709488833836117024357567720488169792766721073159389248527689330552863015601676569660448707510391847467828779979412243160081045834727340496069729692427609057754858083693381559928643238427311766993117706644032460264328947354822616413120754318426043978809759906606832877573531188642788170054470571353526732215316410952117551365801014435931944307010763342215872785971276987326034475930996020768011688731579665908441213482587477958992626528924685921214473794508798656818964064437717801818385202966467775767693088237375798291535144576462371736272003360342458583338441063835258776436968151849262291779067708131340769821176447363987740397410830842938720077923854039818869713318105764808081863201950762094981683235664853748339593035354373947771434616382236786105313951229866168961167545599007179143243469808628294292741307376681683499267201939346312109805492375871660463822177161212137672573369357449217305394896590692429027486238982888297406727444716354224105540698677521266814378146192487481683449736119509579928887608369083501760795883486449860388407316372131309603047051776189652511349916007313886110355428852589816102642599528704599116968106633682929477905899239916811657446569395852040939757993654589254546225076761189073445915957013343777778652679887729103327673341825848709348442637902468424960386271697915766225643764362406133009924983577704641333007993131892434009706337452464860668002181053488650159928492330463954864057507110373699533129617320683454250831456964476330187121291916080010492795532711097174521753124428012925534318333309010885422728521471475402738257830660280207236295166381973325049892677160590380273422109022444049790048226901725665592149900144693355320614215459282750077898385584652714621371896098095376693199390946815329379393804431084098416566884452230430689470349939938389012929135376603796130027806326584746753898748504553478421312934945638273240197596200844618164572132323339591958324506050653396293067741671918397505612375048473961625683113339726068169042323951571680342564013670316971348063440819737315165962360916395344756896595965974529009364958928765433408620385211808440390591454405715486082627994675677194604319752995267471679461854169822095548848008878612816735200512624960273411383698857352054486600197864754620459109788677828907638956415071460187158696376065965801768682730901571549014086265966430445648998023188465701128916364367040442098190066624992988610366415044491495440148776282134265421688707400354879756868865478111223607765222455895652901068182734166456039778753182488528485742668988487666645763833301911562453029186269052232338090661860443547908800410854544393065102760059382316675477949144365900633409411680444701246041779960671465879017660155183067889377492594476784531545344340408824086287304524709559370295538663484198932336943163619177375601196681225595354102352036924661747531468993533556123884304236017557347169482687999451146638426228126865591128948940330187601669380975128618071146794616974185712719289702543232015765019202636740854595218585360820581044228135645851059855331859535377211958800101745850039248517442193143100365343626606027015385809993151622015030124168121953697623054689256795061355040058124153629484674694907517909598440262255965722619701397981268321708747187066897631286227254075459658088500392096100006710919851422541470061180725046621236578023942547952010223142514297935247106208976056998030985957283466320976332053088192860213208136131721253215384067912199158882237817840641466838708751383229855493996055700142570339366734006593776448467873460241142958073410216080197971853846195840726218344934897278427559538536114563001855369994563772861295174634463832106037520852608843019474311129931257847198856493881154540204813172773069405911497930503692483498797149533342446750275962891119246285368126387716887387315488301683924006018564048193570616513921160325596723730701734372234394233435384438438037913808901140490135665048753462013917040692733333945788104574248573968326069638802802254701313803740515065179288571797593051459460753578206153296901254192080510651434017375140590925670312725808575984837776768875567640930379634513218155370681775341452074060112906696233845869631412045112156770406883641800748710500707142218530096014263870645601767310435709381446921294616204194945853282252928632634112634867541585571710935329761658317689570958995706068780240485657225773773679062348046718499802248585730398924035615166313698735676765220745278906654598753751187307223033819013210941217301216126431030669278992449214987815881831706302009427550168858981368058432542677203263426282609506988376092266592412745868485523720515826921056413797541543442871539054896961738929787179225788198586842840959802231474353240684121109499092719731349995978937556800158807162580552264301790043444448520244218174409155702076596269423710732918100941251192973599010038637749928739504090894937577468964272300856089918613693399445629099424766206125606254041002703131058517494088771134065825351811957826005739475974531244714029209319863478442528193109458196330615964495358996413033157743492510318818523473537813240416453276238582708927296388309483174912605257876852409635836284869382629264076417712015179633492567627946364441466370343686466695389289287683927766524923099205274879655808455557057337806424465928525387776898206535731038646227397385706317996586026824793250789129236327799377451265906985410813461842295131957808785770982250287549202772582510831179623745989887226712071897091423229671770432724966491799192231000571231628604240798311466100896960997502142432043090252317153477704619911700820241617388874652517019539740078681887742509191616861437207089483932814772652338396665279297789721099512925711314186688547291507105761715911170859630719574895338796337314716918757540721072502499535459295113092902285966664306424635264789275678267239061117085016166116658148292989303723471055959528524611919553719596353796165969841211166557558537137603276523747573478972437528342463037680589783877755653394024825844248243842053037580285446790343029324379596839868007814261421148392087080780320239822647779155846834328364298280378723364173864709364716978597516314682190640291732388231222015874265009924916621957647671431070978246454732957521418974158911385649605815389910802702978595432410903500073277223607738459565934967721692839758885873660375527566407688197759815354268137435461486842399343827059029596329358979109696884559931327333749750429474327828879104214104590751073946371417441930616371114581403839315428536940550390683443391341755566741211145807136523236556194539323704586365095864754641040465429136474304310331001652034480922199856932133971820734484707377603768301702178847607756752958551080417795273624425245110931310710924042153281492836890449665517109202630966880132161638764608992397961354772089556806040087619796554969799475680175122799599685405046256229507766570815387040679043932362347485643853789184340086243963222718942148123094239360371229554215731548387167931797289933411821627225684500647334284199757056622367299462358588235134454839818778726298571001459740702686126259372861978807940656129966626512579119843111663316753685890061741589855498514801056913919428932933803070943192499982280355692844867802005414343800970760594584824267589329281359276836554110877414154175900754824913032206389008601109873530575103895337923107150135154881877514715189977419228592528065236868683344043212463674654837715162562839357293376498967229778256374115084226081632993181350033390296917180913762465826530325722798408659320376664392382375205454712585905714296064449416998073113011815000809374086490538284704834942979280761014598440720478136189190185603675030898031626891374304437288230703763968977671582412875917613380454477493795016878920946018924390588263898656998927522993131204320259924021475662689084878736845831494832344410086014192263795076740904452627416786126448988851522547061596046759241386724620227951757100054859366210110856671210027338782390023703389328080836460742534796159946120732253883134145505278976409139885836304329677864164729961931211439398387919468215649797920470034666292537993230125208537260147977264426312187259539133838723156549785108876831794246686361891062941254375218541002417511588879211173573445402385776137452238254537584898353663211435477489649183972930361818086300031706305843934159770658867459712941489848968001459577907081534589665927011126681631463366768523014720962870774247228279212889254418875557289702980742491338540542432963805032810521607246400761136061356082934534412739697814581366597515088245178354974085034713470936025586881600236634198049497479728294635602026683167017032315243122454880220036857799418295220640362143631823579741759982769281171495307635811387330731067723645549987990216421317220266221455097257163507959743628510801945625081702032445487849120205911621287000210064826311251567497857151269408716036779205747928256673149791904988240558054771073210636971922396013454748966991548411265862232024566186855929811629002564541855545174809955994723974736430629796678308958866049835356372427616587476347243146567608642127524928853167453896534011521824588206998161306037036536841078140497789194575389149329361391652344382367664479696398726072854220135774584635728564401781427188460204456575960858087860664101883732726386854545339201310144686435140477995640645533049763932354148915164817382696843929074659391064325143746716948820147252644616120736738201221547448978562566959022705025956636594417633108057381761499340454976160474952649744191841898242996649986017795722401980375199936021007548089311078504178900675749895303312669692014556085336816183700705062420000641783470768520391044536439716324288437133869556878506756617312742490738507450709044155971830102201131492277176867177002436166793316965242230410562547683624519649114411380069989001691358987278805048877424536223493110654610806984220979184610110847639790611247775489769185360127923425921027051550115379449308176022743084640250636314090600021574637451229307874106147181871326920727626017931382142672498348013386339447753402735040676111174357805526146270660689613660477170717827626514920091302570949258476091379440138102172634779700568811772485851732699143811899979181822891668916361220784684664582677353969900998707963463011927821766325257933477148078381245853997511995865525258472934140864567708540072890834590865507756935359831445205001004542033755362774380633540792426282272873740500407480629229459372116418121529333101212332571634112046822786817768754883771142923614231078462029033609460603505027051763213746297637262577323390886594910565530356243777650043145683902544829816639698930040797912871070409202195067763735861980570000341811304878775608876722972733128166653490791292146884801138566861944133871203402285826348448350982887152406248034586689742701471542719045242265816564417121635319138405273128464047552150558462288473315057811553152831801790707365345039850038320278885640488252334451953481787890836272964354613930147799335571143647205537401149514198989524405042775919410207397084478307083782839863536421423139263581226094565400919109514506218100711584453571806100924053860748783095483608678426960824791207361091139234283970364090236006240154631905963984704780918589392956625363296009608734103145697525777713205735582820149380258116371694893606014903851233561642016305406887550077966367653982846663372216627731405924496886341987491060889000918948136100312110004827906158686700400987213149171914764655887350601198853321804478801561388032590846643640813813514136551833491595951100911745443380526487893547334322941835380458610003451319539251884458347360459297835053887673664789140036285616674248559347589659841385512192681919314275107856923733407768572840018466359377521774241118441359250651068986868744254122442212913608680466765756001691647673252673742433826276392875793997415665971436307058770930059366781697897569898155714060651649654798200750391677525813357341208137074132377034019760019895315264380305188218189413206356761727842292654309368344644452390466943180741651978661536443892259319875721464933028113595007454928773424730614245421033628547748902438781723893751772912148738234872650534785454651172580337050827812903065982058021527441193161439338979606024572461436838324625261858561530189236832660837064657472046670401657628803698264570441785227784063973309051824522271625618109192494224166068968604517833745540576866580355455272901561376988323285479854954594365689320761146283636670538985592254848877491994224810628182443804383568864789257008422762883797471294806977672401498912131577099130466687405107141284164659532660450529969865628418724314280728992623716226570140099542789167305661696902883408026841957317836783215841234032132954488425029985025103747942817754563838255884602638598117839191902021469118825603941111016964544034035627350505600968024766683962476133040887844049359255887411315942321507247637359241714519626835657085279170462271002522399242774755320109210318927596075531359284465327820453217563733078421363455937473044156001439105340963148174989660897597643393408701818486647751225486206774182122092266550567871122003695782322832482113703030149505804717171336275034565580415154103884172054912200407057581245202994477501658591380816132878478450924997153679490379131780692193746068987089310205983880029807065581999464832483029910890813064006555494682777062208140502372876392080419938680581633181722882917898978777250378902383904370078378466662224581425220006244519591478362132233502565594079715838795844582913566402616822495483063589892484889249688095855378852868265893148681313080848910955720527927966357607685649734633854800731818296473249644772273516310317578626201255413485724382331643408374039643878575837401231627692109708560132726634896994540239856936454994460867201572993599999401409253768736882313516275474338642346104599754953189987455224078152293941112038822014784048827856351485021364244874260416138757619862554826558462619839933541988547458799411708097552804830741210058064036791179790445737203956642226210921629054144251700208242530415977195349118413118083433118559829526294737331209865123316700365910911644615100437694992221169748325512963191440238852424443277245762794095704140297999423683855579678089740695518440156994054779613968067268909482903206198417444652732419000972624889489993971874470867290126480975036318677312601143360769079848892530372079653532664897830100008047372305989682202452243691857388086256791677699668826192396445264024209156017298297321351842721070380138089218120386796690781423333168347240562447889874435577614238118661836273170750250541271420768612274067777982551519624406126267307909895991272202786400814052245721346153200361851096224585161817731371768778565866990503318689496502385653020850198209185123014210965386417352765597581623003126409455533226782994633402960068374457840707157630342454525241441139610439042318445310946650975681886479245542563287983408475616872756312446387145923259727377497014868527441015509570353505106995705405491179931811093258514183925069910656107033692108460538992426123446300864929120243395006944906983640590269760135054437449236417232905328535765993015503335737736455606725666864712961397469382119255074423283179111402521962061981823720262362839865955331919334593120623523140257653450484188746055415500612649919688231328362938394343582202282029411726835653973913607722835672052838388782872022495685034891088836614572060608700387776650272436387344757417123856930814511458385653851227254166043562940473400561997903246382133405238698535821453473019172669036110983391660079077704626704519286772242030962490340984839025886200181813914976650000428058872163614568933455043908138991305843622833987191563466919616087347774649029198945204054350709491094077121632333523481502183399756157685744512506596870223144352308454118575495694702710168731577631337296456739755079190563019419206027191060540857861409933591895206192607562251510055248772715790383129059845012428652365776247951647609022024443292409145436701073184066292342667080600080077028185893395765141987671617845429567834135144930317258872355369506136699722184567326215012310340733679794670317287980822534298920729980509739300444124940753741109678785257124263639362861439327888358464296549628426408899496030213104089519000316476359487934207914892037135276447021096582649524188941861377152529797594108997959790674717196880305072571641076701935673681525220915968301970228119951495128075640989527804102345926421916272235645629249570515928246504692584944572756991625312165882739243055325149931331770990082313086276271082522489177621695669953212817979517141722884322623988704012941729411144525676097654016076857903765268521171004566346957716314760517223568314061263643364406004562575701877351507730101684391388055090663378129528850285330830228160225624514268617112666752715461753008095908362684207860932380114426074182274436267748172196040835703722951896765045605641844254698453694190355732944594485706445706437383471973738842878836495141848569448806781473843912000837936255390084377857216631230939490567251027747169766743988099241790787746042865659772881760508359658525995835530639495350045237770819544422508541022699299920939645829414996766061463802351796731016689218825840497271848295228196824258499742038105795973643171592409230405101072260234460259657365257849061316307581012845065113090671128097302246148894872925705728845917465056834644019303124610568843692278038727771417992040623266020218728523615757770276746363680622442420101052825605928774537562121546357120399762137096365942497524433097676226626930592092668711930240801965254527789985384449019378958485436289064551615706387040126299300012533632949709542056539024134171300450688089394368874459606119591913426715303577558327211594794516257254306840656549736264362496351144193184332263551322224511564795656554413161253275282756307053595326811751492726302533112258697452275623258185353624338706084407081195243274604093303716411305306852501448249748641390607153350570599433558209102399164352310218178966664891904955601362885061815558126844827900592677534914656363450006976505186372904528857813210662498228478061768499125743867103234112581805460410304843394199695377125043602336665129806133924915176991298529218100950027033567880022152393434028325322015184384948896711671301726857624907722614082947880186530804697246114105746526443232400965686765813056116099509351969179931415888102011094795197275029079919260207815389120146988675758075046930652136631225529735702980903916750703904518062445786389606061308488948441770853952618166589244021003976814185865036824287245980189010627983540929758075477249359162152637515304273240502919795995640968986515615072055722146332532336159487029754019181710436085763428217292435377593713900623461100483202701898947898532965033928667828596462598406327591341995979228303418866651746664047022560221946302508616051400877215217842884793645500868260349188532410514551379340692116319216224980093746923125385479647547724756574501504279516866874529676471565456388179995110554965817172210191230779371928978398979703055139240480295647154637002072353080578916802169428304919764738312622922352907771187990477345612908893573408520515859328919444526336578574723844041029054268480204597491036652570073234779049800883271033758694085277462789467263409125540838417943147745399816229283588920389529270768278597271662915025680230148101830329212503971043887099470912560680178082577074582100333020459708767101438889088906108988733424164222953142512511198384100371267614483998100686095199774448962646067460565356192653776014648367755225180293797881431840648057805103566550533738989745629932403706125341051476949299143432488585076316990082043093897935066482145161597091181009553965942395378557824838007840262856353412927825047951868792738269996572765936357197193202220819124683438859296422049203247180156907279695465724863669040407447468674774654699082624534632998666440922334017840306057936570530697459339272478979279744836053998746432603014073181538086949330068183199876680536672882636972525660010225902628300653679121484807158459620457068032873802263467719270257812915360960905448516425660908159223620093247815350228980398613511789531226168515014658609342917663778374132147992615327330582235245230380925383390920297594373951548861535994940939079659333107365676703768613850797955230907902301790642550870089696276846788875904473447076491354867729053504632627035783464398417791955485156124109452136279432988799978226671666824197775933621588697171365581895940019919271698149691167931691698785234160762403114464573285255856467999236605308614883905822530850519507347995717773342964974968087497316702802396588730383312195510368645290454373595643169805843731106651852889155923009603506316606200439298577254150382260955229829603305661771837303722446252572534456124230283315408621427068348711571965941752749755143752904122669298828188659578137770676669578711075877757578329860553842141727029323998704887989144513815093965516495566601453311713303595274255581353526994922125718142146880846957397652800830018249436616662709713100340213352220669443321859254515652486489180935692279461816892286412419709160039153145542953620779957174373558664185590411131460262132863182706485313134525186655899632548232654203767322411025219891026886888323248450726082084716340488053281143044943802455162667541159195256787497991207961538651516823431969032415780293533384087257032075390848273037858804158196977089385932098748428070169534123840188520212627198300194250642206758332181572378276952929638866202425932590682015871119144284656857406231076376114654544278542076885705290522780480479952270524028044429699545556614114807143506281379376589170824393948380535810751939727728685075280206052100260112420319913719718715159190840127424494632346691058446848030429211807564685246623591015479221231243971536142891025965883334662942508495389864558744864822053126891779414684128466439915333599729018311703197531181792615762967121412450759016336292853779793598376429945183230391669115911302156407365333513001857355888466364017974930496234361813110630170389125818403490900139716772797331639414413718795909062166810453723167471998349193977895894482256913793822694278930044725063672902225840200963550215450939367336258890639303045210959196817943526770635705925744520391397664848376022122834321031187708845834225863587059070831750444243468787295463189892326602040972794254359513654303388802012048971329081737001481724145330684769668347904663650973059435646931384495902688659532816867246792207038280141664666982254736312048578049983886124688672284521604627457424711947015658515382070906503407592161262384090601107718615809405169084310975983380126672368767886935566298856163306647034636869883523807128039629789851990520172354306337435430204284312082461616851600653474195529801372669544395795474452276684758437597755562924367228309104916485108898979170301424329929427594252764878378578019021573321113758049548037900350285017969734555831591522190832379083344769453750860193664208404322996670987413202788873169101406313586402056965923256310598057920610901434834025084624060115303714342918734592093892755483078426107021156998919253399924026402685611631297318734725539847438458053870589787591908109979665000616921717985858637860017143050803331269038305565955735515964350338536245434327222554251244557796284702102830272154907521567890421231075002218550667272885902843785044698038301038382278659912726856180779982386126592470050848637002727061248600045182221056561039660082194317383369940438455826948506612439057853763907101157776505863779172895826321106552037180401247877611776908296522131320989966122040449386489289550128549137591700582446256168372626029975131813974042534925911566367855770977394978706821296760659528489356173251473364881503917064892474801938289737235538145198714470192392627854770094814945298726896538528761323935314760500550423309924588557776563520239196338468806453411371988461588311383648346730363201720181941415263374376118793910286982792273483617574856573716031002257549659805292013900029158135105942979285674699964114982452065630619776970388928151843970986250094073874813423852761054947911378791451231221941013210054588500260154602084769763489487965786272453241050357886337094798711966628731954659338537159920148724677092654085771810642380391843230243930776127812589994316796102782309618583212993353332968419044579822780453598878739258162609837988660762386951767451919991234496053586208337201441685405059672592765871383861931470134473468174227474857821652946963504927844642993610936561165041142974808900694622179937871326249008075866398571264998838715818495497372055423148318029333075504642097371447564214649547315242016518605242411537773691897347452610002148694628392694911086170872122842833705597123578279521775568771261742237954779358412711683126071767449006818491434190843064524514224005391649650927567673547042533794378678602188247322216316042829175523411209974366435106862650130611334649006329585309551024443935566859621954945470025676658969054920154717758988764921448129303014131586364065128377743935021904694640674700055059455931589924466912401323270838872720588234867766515902116287547370792101578420618383575030456192076819554697724314078042183149600621918483755184577053125760646087502137928813021087757010240965937112406753165279887515428627019059958450468377571730678757703376177913540106955306271366932094544430021603295581752120530474732324172503880467788936977285306816559727289341957609728528719076976042406901183848035742187001858533932988322030531208904597138818330984446860532114767159257847620065898495558366061383288021361328231064421695343735498475552601289988400372439431118878016170943364394981788459816294886395374937271127662640314312371237505149839960064638284337781639171538271436475786743413997596848819340917267266085372221862741699324438164422806744653903572805850595552425615670853070869746630963847002278005693380959783548139778505633931733636330501973584262533548009391598456773107636281949499009123203549887122992188917515112356134707562206940394932594643830468396039257765844035164808798824037298276258972786090836260453444795936643527546557591634533792483533300863920007571870937823967036047514172030687232201023442412739713801467446276919095328837944135915335364184622758632235324211000908714506297842240578420929589471813749717859610159641868495645128394456440200135422601129776676714890380235617445271288366379153641171784462164781142195429974760805036678783539442058134618624749778727298351364917621288710378094705779913068118498049675172344164494630185838253107481424059604958420818605904173974167132982892978573613802462091396097865460950113184853507283987407944531899235921983520153915745406905852635345676821880091027055445840863192626510110830660650425355954972560831687592143406462680688630128688114876628097798490450154501143686817837023593759186611893055031000567864772941287320216696257527717840874639346305708950490296319044970915979633330543037026615238290827993279986188636528634582693422065945906076607427184206185940814978624632077751829916667693989694310455990336309173541616904892152646000618590321576352857109494221962862448543148924085298518501433485182455343968303476538089895099717694906822955231623082137414548581240281525081741496856714726431623517331495702115545639026719722450008600128776715180616227300639820209649917243211583514481254111778009575726866872964823875232990133666234436765898538791454802426396376390871219081764236008070716525793759620475395462263678615762841839602959565783152174225370192820733079698470233610406562159276147356514924946892500677506597821928855826160828348240030556782621341838843679835465788136045060536982116887441972563549891440581418657396342852657514648341167897511375022519300565182011059318664764551591921709757713791450455263869349555017398565181805181356004335730533897747019654909930059670440662661060599783612714527031716304586746523549550454427629733091284086706249498469324961306454752944586754780773037128530738428971516768541248504436196427886531301479481212500413925251164938461657981198007268642870550579177087869429164396420775209860704895020943362998905062205945680063999669047071463268869073959994550504620011440463726795359882983005304634156986160883677628002425846385285744273034475073979779265905970716957204278506075922159896745303294474169099267898806816324976237642718325260569127697181604709786759638176075363346674146520041233818394770712180872796973038275684359440159581506855260212981799620693818611424999956733020633206072171329136757989899951512944234755998440057980729942457026393604944504112454063478494891181256574718227406175934110134581778656889725624509632040497026659750168006447863421220771734469848593723411501006546430432864242657719810322985151653107400006060340545940586189060821787015479757527349169535790727174985040913826220112813438992150932030511340922617120823571814475300141807823306023621573445983467245220681026878361680104002790070876873769061372477113837253213765177341789974504256103682352149344418325818926027654549175357362497697467513986529874308936658198685254115566591956361954931698727371151806084883919244185910341047210739508267787852964234822448993377166965844712224070927536800793784021179267751736954203524415952352613932770784972189838896312153928708177958744929844992400147664357393841454424786474366761048899791679233308215959558717495038865785802147637361975911857470144926858009600291891723962100651719659322119766410483259362457783273415378625049375000997846920929949621534839876787054266165090933868183134826276200934823320731822888495611754330123772839376887494918904399956899417114406093759949441221015047013973935559643360699327753140296892408509064060860980049953646216094305655576925825608830948613328846423256944053882925902230456504782261125241897095229214357552190260801034629925377949196977495933007730751694053311071697999487693138729975513853336637662216745139755574443320947961308188226111423443094433073728688690479032744316464963038242916102283826439923193367113108831536316296264000716187034774819444999461559461288702545321139179231414000565806753755373674027805385890920221366000272348161564889983938934403061299950152282517306902497472606564165305046655210738165112554403327750791194587917103119988996817220424780090067968816445624036140290508413634879779271199776942935095931031092032458819537245901059532607783539200686576825372370286395402812531000122378696228258379448277484391299660156855668532666700442777800696600956946656458829400818105742921772293835806432810563489228774835806203524969021641840380122286283495814681631081453493168796541195258210643893876744203250060086993709486430818411087485404197234389367509579426565731400290539761437155259368421932446733627646052252701297495154668183814633691667600186162119102455296626266048166537723759437851321794915766024524322922256569509781755805036364579009284928263610158212420303308583222613681168100769715221476969692391040266842268964024946717268196041619720602223815129235439344979020772687887073122232377630518513814154390202799802227098735540857937513406263781496295457048764523249400625374720141625509454991761104931862049846583628481332886641489045170579873019319976084954146904408205586379739428394561296386267069486629104220878297539768379454046208681425924844821491899405874401301861869567203180603051468277817744549694451045719043955605028795574377292927558301533169267905005978807411268425491193642303367992352460710652656830234069744223943957948993423047371075064231281071859262552673263449019247494814665706444900670101689029421348443936497681070563766418206882570997120253755752910995078115844399812552779239384938919763648239954346992262002536815742967839995846914711301910660280077594485692916819981221860978107003794231087840529333350168360509837516609771230299483696402855646929851568197995831879304570977930689054727982976491785484860651386108592711474764952826705524485162405246543593674991668366739222083651951930363176329930191611001408134169105144811098590795577752459130615159395845019410135692475737281876332555924979426289708731187974431634088863420878659707201991042454487831081656601471347139199950787526684065765981815219525530145308241406633636896628810015467346251851537796865732025955691250863367376698594030067620438266247873616291689704358519259559432041334235789246054278170654705958265755998333925630582818567524093718258189771805230063548011039325084132688250735763491352762365398368859833150166339987871514914298921438953006177268434527074787304704160516590751770736423751904678441788582632188829749446696725351068370574892081487719608920932362752407139812717958544240125067276962410546164621202144329787674061556398489826054663001726912031645260817692110481765722923665684206504585365246199025287095315082300379289092605158348100034292577298750234678467917759363954639747848938166570749559419897956395229589031491735469968460922247696084408613539444552480016796295733372396321847302939487743515614837087689142171003675154153443794356546575101984084513837714041427113374670637977254234310112437629244240127075623938994676693163326481090762427443974030886051039788727986347985425615034250514152212989166542210134255070904873819075192018555865294538255829084788814372075040038225136526318609106285096909646997066035572148133872841552495208771525344796350279052540624747925616917615941245584600519854723852984223117240781635539190401919366603578488534783736223081516222615177722008950574879414424142802758219644871078657362942869861292323017303030422423739426898932512663777155604538647276465352858751994527744703131552464834089739219004599810991198158554514449634836603344803712245402484984260376645332373917011946119663852789725788988883935559417571261859267382230736222946792627130609487247106840798883209515223374580921928596244669169312858093542250960069688360199499506916126615155828382574302905310774646781474129180073448315118567420487028263525384760508348101893971543397073702517719142228373753517312272616541571185435084488824815270876649761103901611799289831394750708453175747198805173077521259132918437307113926389097423911733126631016753152665539608200507919852352415007670885133345371872704214644142456972858728735943756579036572969127552609156049343114065289000708179693682490414924993680482950502858182668240289697402353463109808870355957109018945451024275743780381581766977507919984330595755947024353745978613505445577226193874539219339941381729315550378585876188186007160608352938905694388890244022125516174115527975423616847062348777879712905320918230182976834063717728974989419665561302520200389013221463594118807890239600694278211629449460750147071885567582225355982212859953451316744008379916631520230321319991531789009245111405991763519785692508630203256309018863489702503645895003683355877591948999570033585789616460220626610638813831737104541215183270666934093188203577783346455441070053719068961595660655889465300021247775180359934633421965226679091849169653473263453797267659619763359827919469990125957591171102050757449394871382227470490410089915671275686149879822722858196210462406030914886452305474315595662395200233489326017032527255944796940761877011975632518250123604830344999839918432474741513047469109891222136096000360815647224748370863944330389171713217859584348161693673420138242311478195128195475809649893994405975258814836813452465368042739399099396270254417153761557342817040641730088934253008142684306945344093526449849880637361210922196164649273022851714253140826711147135024296049111826994561676706614189274357619823010421465938251421244912975183788206365127469868896873314795456550755544217400377478019500522471612044059265688114862509422475654266199310851101890894324133533885978539475071024309749913657464023839926301327171618217615092384111840309052967767309030734343846506621158079895633015479980543665643028223823072884331725764988479014856224171969085468047964347123696351992795343294532024973625303591392496032497924586017141472482116062441496694075013857449557285226831600444403996707286788834115253870605128866589257028159093720399766693793840121247627029458941395022656079964698760376819013660352572278230210840015941227519320369505569385004149684583414492033264564359961197769707084310332380485891720799545292152179481884630113117142980895129655803394938187433064110647205188191247404881714513273417715916570414205234457686732620059017749205660043187083413043342664172199462497749527689557860351224164063739804692810339032982569347470530551935400757863254899136757298574633160077221453087396128824536392529875336679818958366172777882809899803574323118751556083668076798606193914423944673055295198985102286703209232046911332979957474816941639408103225313359216977286315576517647308353932877825683528877776066930597817770607612537427275607403944890583370042015406224825400096542488114189065385624949224453324314945343142769872429502906084101073209460082573805703606510308313693135799405677358536223721109795208535412459646603942417154740408301003112766272668895524264653320899452094062831949791104007967145830366143180686920225222618869973499270833645051179550916915896269399555370764345819789054426428239240425826141148218144252674522669808626891380845485427158197544633415021169974885597971758350527422203592285931419367183706692187802870590474347641122298854648279351348804995803421422866328032031196737495601195836750528855933243637059688033119022192866730873045452276989553374342709454803091525126335951113461390585017083632074545298655924534811050860048995924021295756365855331620896900233297547388387187623619765310065052169619849470860253383673885508070886704677081513789652355727048479841211308474133692311889380914216086577093051125992139494254762761797484638889873931401360887906186504443481393548313493724970451360831034353907678962852547571682973123675754806840835521415175062627778231632207457824656840964126425904024188295437504345279867089334891457142191211341477877906331896153727366545858313808265751572087947296021228548273102874913675257017297243823759479846374136022144424196084646676381501132019706851825102092877640428186533425726601193640995876791236245359447182593878794921696048994389441493839468856889133758923653359940264846358992720868660440497269339560772127424819229750749500954790811249260437279222802582658299106885182833983755317239987072850186409791624350813924365739596980986036162593497998921217124553940839527818987235217787421754692971558860433465697862067362269121072695689317692528085296810371109088577772292460207367706990573577229481784263747637996202487167636692175598468983248627469544831369965772377135982950544878089383559068381660034908692521197589381916689363646846128034618960500742666699575164963750864909986670563999058121806922752742600648527842257926262397380291831336532654240257360993891221888094050940212544754169647267275528720560359756163902793439098689636909969548348077988826605037139633117623780056732578853116492861234834057941699035727315559298138504217855928722324106877014327038806066850040564920596231882550281329372341338423689534065252094508189065304875453804067268493840321122658250786531820422752207654049258558705836123182320863033229742928739390697804666316354398966135109309219208601054812567015531407305112986162246836548762716335819363225524000177001199843364891848885571881046946600912757825859382043293487346916163869342710161304722083610753104832240500897717086050103868958213159552637920196908473330132547162605998619259734648962265769793929218261988216500222074603147639695449945699527651247893572907304376411824949344228155691566848115973424752289522766333631609480460512333380065518298593432194161973052034930570063527091783789537401484163556138541178400244623953407305839855289795114219882967080171072653238544179584327506948482626745245286477491052185379130685179147813235405948059281245335034129278130734016749175370144353847305225136028823463138381676131292446663454475383543037181456328306061365938737757235822685856206798337836588675565953510730819897794360777759162010788184876382759574750497939168442632761925557098719763908000017181443941573847369936487710917717136801732485005653069887158293538649942187996792500372836025579242162161152949571544111522637445463923717373078580185063413535684196315342431657792923846713047662351224087528770684270722356286610561107808356045356112347533334223959979765757553141942967595013397276654799861049725265552919205828011478960991655749315725111865476171393299766368752226424140858581731251902061800040175812378452911149790657625117234087015200481473480283737683341046780848835998022727157082614198254134793517674755746524872136979717092760087067106860705885562118801765788964169100367392210404578758326217571939674423310384192413197636502971666518229349082718347500776260974856786680314930405740322834966048813624868359122721195547123544417530772155853590517898713919304471125731441918313092183086846956485018995395436059067147852997783893512648960904545887909716197014863904688575325777058042905699191692750704980991933095947631514452736459497021217222438864638745933876334028364818300367367739623903514469265148305375259681360619741938055281837388232631364489654540428753916458373524882341390776941983257717664443625448403093163799407272104802633080905669395595125971339707547431961210779603890672737485467582005864948264887804081345411818734057004390674758819647621977247464549316814871164666551662400472495235811189371418111117417608764700458466008189412861210987527967988430412192403496362591500747828066320927608160015113310745077376194824891368652332991069595505733576360864517257384282991089060915178920292656319980009686466344491890657988271274548621992497778443878128191408734732525846801205258931366774528957480168662088912184171403303030856429535440631535166100459893657049819999262670962736307462244701884597021543687965405658785143943156737353863594619284826911969267254734491520311999614585168671178013262523103188020422187172872847009830913093125494444457861796443169323823791693575365463439868768399539042428770169861202434298578908489164403113261926172143673165601666692714697093111609922472278539658026791306991735884839507853675757881766298859020409335542374916970481761865188468662914143871820332947987260653527056897453027198556133853550063373805284020455466479839532174906726693177276671924293947057256618989215948475903773665303677342401344215039557682392367130216922141242953360966148513303293549363287035389951002789844881061542902198109668460032033512524228650035372382671930458464711807403930877850693169580344849123223437766913257295889020272444824222445949623212468143184727978327122750604290204770933991016891117297811369220027314387186859113060875514784365615225489918838351725939037588273275517266760879514907148386306719939620082275817877182537375378070758169303485352763798004793173084594215473445110952101632382073426585001098630159343945497148631372756692224085939309042487454780913233226937405376672081775909127273018941730521093836151575303837336493229304593298133140808862183500508245884366054602146904504152192315697838361059952742743404564581711085410232535484719900550516578320648353261532918125563197247729022156501032438936726753476876181572432478071053606342958189495736383822682800447914316795139248511551739420390019842101805860763888558166854689176233855289534941793020367638875405896952736269065776572252816928296777482433560615975811954974910346556747565550223070090278365934647389580157596393337177543826190722909292720978435827436566629056012102909110213085513465399883103357984383347314588564254697944548207996931957141353922230209357502419190738659388242378946996266591236568252604905541383876891519413075883528501862928394434689817295113951313725336227233202346746332112132138622778286895496092924493060269514049110615811715436142024796412806981737350247117129917212918419419297366568448201319225311558876367980897088606305202442262695425808028544251739451270130177326131316722490590557251916135727894671207660448793128047685557597604793861711215212938692140751649201524182630747944483633182281600063915488016409741128175110877658820590468281982834716231917508229715676899293803446532994075795220235235874346049703988704271455823119598720984739822812649886061722467737778311358124034421133728295179605547528850662749308322754710281970937205171233012473192165863092636204176103934469514228296943481960740638386688822002510900973037402241717290313727429548421392916520498414468184499569784429943164911133667126039565822159280123071078952388847742375575689985798977077105043344725268982601677126533476316508158367767030495634692581414073936414662654455070510296276526997395875279025898322424837168310682256004221265048426255710699072360395260976740847222467168202672555353821268537350993582909577290218393669886265615896272492086390909330094915714357380173930621053468540415416123617046188222522441680252798558717951790056342525200802443518391459159703491377796268726871412513287116587056188654084430704210897324802004530455243354490888278207536571563079298711858746514534045586021503041383074455358740347487598731505200309345691111732524073866956758570119245693690594180042948094923867121938386308435105682733841010340723704853407739309394578837376182323292037804450016894704328319553287758903646637546785265179665965914864205569703571265841087286860981046443409496974228913508059315744430799942624657662147995087695002361897089881401232249686495357709449997488823279816492654135272881575912580289858148620101731578522217538025307570051940083038686266462666295331088042597802203762037308517253513965995166123674994240052605653846190218370935107963061153871000646702751552438049055963297775209261348337554623736058843415072171310519268707876790173843402815062521145966863215450540842503303674650690141241751744519334698588435213062267354964035634372710861010032000127608408197583766437015563898434397495292846055536123036483674454539892936161355224888032202081230647316654472861151013311350660206496290328811011203083500861116542814054858829165768259157675910344472863874485572103738166276900372393246364671837190749421728008116875026227285677947378900276872660821220846145167925900479966256600398019895008503397459973456599463464307054201322510463359090976051525681156535966366951347389892648003014684168813722724870724833233004801907179303934039380572285686391255908817082435271927250371458198503285537594414481910617738649452127480180283654074623552894865194407522397002435919359673724531654327734567913101050725276607797081667382895144943922581116538879993155740403339061249553552675022565866965996398462213781933134313482828037511991481581748647710373356438788969491074123557543201473058861280351246924056321038182352426517782358277185503020477254439711511974770757996462434390739621086314460761931885030150110696031789097405895509058741215753441611690884279878598296862142622617535600290662208710812276438694617440289129615135351230148195285786456666383010070536166910806102084262097615092487711082584407259536881798793468713376161679031102818446459876180059619196224185569482834471505105410706823330595390722800596105995824400470773489326846866570819583330513275938784025982437932350355036083088556481317178631927433779813471213719103110647650559661199736802137911545639396728146677599145997034428465859493875244472304810374931667970193298020765514106988721303453984167338087045419534926569726260146498074494874864695810728013594035937461516147640180987110024844423134322587882391535098913519612260540487030866542871880024183240946212674703732151857448753484216052604615108985467146682473017500415059486875563844892416695359035917496460060089859467477488935950215593775738064382258387757056081588735930124276535308165469097013455662974433372350110793483436115730736886795047041221759687442016631265639817718835620355176174783540253668636027891020932336632078874083697781937268859292967082100303143520207664475240915087066982066345556579103840693496223520809674385959649064895250712069409317983023215275877712574748113925761078046433305646581522447134776529463326773343085386921937301434844260114389717196041041337144170813109892824610186221086538379791205558146409261270206255747387021281032715208072774657863077639991920372892994575576626494902527770138686888551226887559068762655371163131197496830007126695856200807093163706696015744376304699491580452983683776859371741026946607785741945700731493010205227465110421288447330195477428880846567772311192751988921005261472627079132097427130557929963381771119438560896660704028619312027258654857923291804497081012982776363370353414258007566239455982495800261994487168539094562882085935239410102177065143414495290424811577326480881281996994108662166983745625574845183402743971579699147815671083713043124318655066823850499786861996305643707109040089078303872709929448720434213712929270029723303426021884171562692967872068212419493888198649803071038347478472756866365736051181704615780409531534464834066781824413305729890703655373791689912117083172647100287313039890750955197638060839615832507106580833795641029458288437230581082805943309137688458619105871551617832504869085970197098159711847530762445754089758889029578475712555231986846300485854568630226359498808278646541332713876868287301029837125534249137682988777877280412193999031999599171820774990061941176266810305944196070736247374761916247708471204791906896555271894012239947508531296273666152993571929095207255123338238723675029455483643462629404509365199605148669220818073267525205041680808907396724015303168597995146622215873335019580580351476869490034880329513603386254326591424672088166723235046909523446826301023126239280290423398389734241217902724366909472790290739970537744571913665657043915752613316130299133685683339165243430097698989561448881307598342464171239651059564711720503729122897272797186839817827305481607566832705708141625160782651731191214167933744713539335886743215395217489201713769308383365703065702919737073730958956365256444531358528478545818710810776711467511061012954400040892144896657970131380997813483662697102402609051533546470601981553068116261363881526923292202109700670204959772994539006214719872703650345731310476153534011955129589448534907611659354846614337313139919610219664882424139048958856942403734653718394124914688776982099972671694680909259658125086859712827550891247579977742221625435059752921454355639358769614973231379717553682664772830601619194919190078635102411515703883892202635219266109336421347235969129566137112755954954604341907223675330159506574566223655366917160416052408361652115887239503282750484755402021188779992775570297555086435048546942372506067751649685428817197122431519971018699220370962012632144023508748614553281416440646535124700853933087037850312898414658596194381746005199976411392476532025112282251033621465680287405183929623405577074067204445653384756906490344724291709711967346034877041170477830564394184510831568004394318411900547352013573955394620953738146437632893467034267612187742054030096882294336619453039118339971865082531360533569319815324202630999909065653052910374805836392189069869600372788939680033715902316557862222413130652679667714932805397004568500572529664568790836420082077207719804062480783966392296537971672822589430426656043179672532362840394268573606528357161306675030656474618966592488248669088085242509397738839363215434359133434420517361570913397292368067912246127118305243282936799421778690960195259120617620911150623886057766961046535095392814685431186716188159778652039915121909881148827019462348337475029305003264162849228008815692767167463782961765964158038236142543687590618322846231254917303679042665680797357956127556269084698866172956417015215045508839676138276900898480904238473502931962078419950852177041460124741220914855465667138018569624140840255718645674576417330495918516771568220426242567535160613836972982948179727434331670707576956059112249205221487215167425097958777619409331018190546682417026018279816028905476563597466281319090456761394915993211227837842079798504720472197977072756458868234688251395017753554639486293705837642320810789280175371306381535875961667007716644045008153076467937296574284227002374483996805917048789251053380854187231217777933202045583027198422268834588484239720110214411095667685788533482062388233399125509568058021563085669924269233616360681914582477540195306776281896298402980823731267180609945792760396848790669001064723790328123690532429523247062129967880758430203340993981948180458904679389282156306826085575767940788149472144642811451075669814939527260842538217377360019752042182440174276204446748226316215430540419227385405467858553738021758941712622005257294888747432547105771246141501898843209433422550386669962350459953504350175791910818180190398680375580021022711707036923754873397717279607432868493206744688623970393649703541801172078031591932000046235909132132741444083320471952906132108087553204512611195353441587347244399278628062802033317095191952729768945307625937138172759042205453364653765320039997677405980939990460107033043825288982581078839057088352495559655989796082221877654988104449192650439646134001164496401724359393857885577950152108146022984216077054898122093780281942056840369150478200417972388759342253808457306603146867242372967029499260594894478233623102098847436764084094369643377893588497118379425614682221767548219387656073379233033006996394868276115660112664946682630826203148302569599870244423803994086918234857814983097097704251576869297243736510529407119349911694342203657949668650415098937304823531713730339692059100298481245588065274030967793085796433825065186441195799089349316657712238508955144643421394760159640762701368529258896466764180349338995695940815873492876750200726662751763498186975325724974309735536299441629572285392583719049593261943187435262932343083855508770332039368604847915256283765136048389016018991152032827217383926847369679548935005348148894403122441477032093645836585273974536772174049120550965684120198143201857189452609770286504885982608977225617435330332111612076136333932299069525960048767897960871754519836824812024116131071315117077914972280273071025156987897837634698205749280556075721359662833035827458676356053736160058689859718505998125938791832424945260754490725307313228487780197806787381056427987458735542525723152222348154286796541605306264836648804268910227412943490221979119603649004997477840261894352711843621274211239590407289943213963472341191331815683313054608267795227926953200195784785610447879607480027039953928500846657609431976977685872967837693801475174507942329199519612721919003760065243163254367135304209389144166272885319910150908400981752103499404365490762097345781698849648988773494439170274394695700191132399163552060199460942988050872458164339326745944455520423380228204092102296569617074992464874518888207772440781325743671148703667918702055635683948371590997658798132114639643035409101584163214435051175904916848271136824170452556936171591489759297366432197345137471672980834700415680460368948336993463089017918451440808473123516749125975216743828734424865255030486681459818727950703012858517302067160347085405677863651181788276096680691192360955807518435153022069487397556185614186378206909540571893634389479897899324018642963892074265383865748910762061766557167399367455068850399344925689747984186029624588755627433149738427554011917640875239765111417416040586033580387251255978754045273182819338922906322524996361959808951887884260968146004292287337617882245746961845481901734024654750710779066208241250691791568399672985894022235612246643273742564603228649933219202170056634538451265882749766574543520048695736230981561150322244826278111462958094892564402256049787904790181249043765517498690972586876639056321616941504723217655052009414884909038583214913517191576858765883118523040974083230614610372975174642921241407372711270804322505631228497140220752098950877558767150896044930699461085891765632699899190461471018477920672604205670512429139866530464376430801243617403410328750161637155626911312212219147316509110689914950711531837697784251393784700104040768891681639445068744481359708497694538298655773776170421728953589650913739366223536370762511149987779307820713926325469570751187679552605677086688958778588475175242788211743052553593333682919151451885989262148782032913956137361496794853212266361263473141572649890349549789085455274746733602021836413675436235531479209842568772029742002404437381041571361924220672786766481345534833244759911321010411635695247074584674410137362447852241657138989891888071235751778304088722412464338381277716300034901034970829339677667969792957788247880869530613554840589683690125774211704589104032716385448643856431690013954082687588077848771103588229342333871118458000762133666586831192275537557941275452714616620411345694990434220662910737898126007440074247629045019574438939988729641088182166268394203825874975656819906730852699048101826924386173960024390066011483810805706299549650748237921116840144901109106586264574097445181618123277883088449266895227353985989734760963346899844144726116256368766787343268153241631709068990705320008924991212991623166488137106158675909895796852325480145678964408338226460770329460901175960694451512841588607143690005586716746462672957014980761905684480500719074870696174352656142245991033143711700646398325380085395712146700153709354807191467603368465713115430157045927271306503113512080183324414939908290864623396896350391249247068657004881122260197976899441414692736132120976380107689533998871053018113142716120441677406151567399813020357872446197333216347072230123564821930216453874632888087312042985534058929715135440253421634826006052350301602765047951048358065568428461983029074551792084396238566171788939091255288425385362527053578798201894967933479472414082068051933380094073277021268370340144065326820306211301842353324864048085628274046348589800402007081182231109578827881499656132121050675896112732787977528745579426464927603159585654090775556771571805099699448139603493244864446922904237201138345061111348447143434788177398587865072210194776857215576611727772079376818910808214933299889669645968371012352434718862246064183651954339813929333481869364283599727992178796156969623141591067788446859627672691235678588244081068552236943967332464395709912841089162000208439446304017380288219101116644515850752955398170217145073328332674133034213858643499029335588349152788073603084408868093274878058334465412420071412651024372424125246850450637743193679156723811811578780184544136820490542955342447910956765302899225343316087596079333602474902683944710749024613845861199833837306867574491240598845235788674569074288581317798179271846606789373770331765107289074196887169742517173429332368324142459395709319294410242660935137690677470739640699340615120304161672011786006352443456896040233718970516929648909419124658216696427117623756494606898363805228743902289550782232810986248090273196214933706543859265402721597405392972683750020914687864184634889099515164989762596246624799399410253774968791502828431895101539183099294714685213644547850283645292731803714142784918454610755794888810907235773973567568790495800839233737578243742532491928257918998410549284500111119497212673110136581009292215327575350983821028869297504082870780069252401282333396093272026619850891343455423799749614862483619519836916488555805748479802213347037145698925824845157576633548426429431859824626616973930407714243496622849836759066128749709146422102281587066361470306983586074009049046569496980231395952726010088578704894549276436349506289901897974773916959774231139301853574417379056353496903058756465472712444424869148053433088418207517418670905546761279611169844590473897950422936148810827606638717832743171207322492688702542489866860285241242893157499245499079985327498129757786583450576639094682959619295370087341969637486885128839842595848253634477549519576923142171371494117657508868957860813559859896114620290540734047251056155725885928526971878234438629431991624304920913631490746303400001883616225830835991537626508547718966033719698955753936187415255150109665441653333325918060746647868301175627224757106304259556269537357959876657949440526778227898404562485430484147438804700174170830164912410728968452329836166419513886015831613379578060634746682219655349598613594434672213687049728741710687694919585097057907963290129094027003717636231006394188296999422729293733242562548355565110507033010950900051834665967710507193629366802688654148098885915389129767116334377378953821254581566710632246190385773587019155122117043303626585601638896406600279513151339668260463962470635296062308509551313571384079041501752514014624100762692270763920168847401945150859626619758831478357231290564317508586521706391542647157930599385806259783219010446429842254208764209417850193388316370131450701176646273845068692304767002895427916730145816034221954471418476702259042175245601198531641298112750419321316041569593263695481793273217926856719944254920847451737571280043242321942133313807407202631398800287524280786532107234725414130927407737156368078448759575177386200574610406949655319908324032774227359072793738973505304387165659884820531514938407024305973792853425706481634268566965058166635737268040830872424297901103523921073259866200658745838441190422642376093973317813921919697903212123651517318388677331556763169886417490668254145848585713906068487677696265048500816698435547206068518729194390814059438302639943585863901256801223482937369244112790547911993034571933860524423353276015192474645001279417946199718560768568910460106518583947627415291577118415700782949963491730906263650901748227935285765850315585020307043153959157868368934511486696553473689325994707491495671827798879043562416023632661466079585026579539271473532435989837076552818058162540825461855686845885247518252642765824611737812456951996315276222156265721375353136741246135926656199461030968218171915912103949977494194649950299816043746347876985188779017747926796312583769754098900943194236716769055005222820751785406815473813021362648001452038077145144253116680818628620281756045799058541028296696592209247609985187033769795589355425200914728842545524546613301424604734976424437193417417244079751308914746479725339968169521082819806210976136986007597639954655392883136830843241946169141043557513270643298230979493901952214501392658489463177820665505770349253468498365549474516576220938025490587664104776985163811936146281288256623094335148575459556944293860849999169513830070584624050889799990927329213843136356999644983585367711125839718763631229988758059312420116823549757317330799572907457620295681871433260972455551974302785265015275442203128583546265625607724103482830908152040467959393187095692123567532295470668002976744957348311738262238757456939038933584443693414323932027524341882713930930345140615399332168966628904655607696829717264687822764028195567739804112221291652451225592620595855382977144709180693177460257157049870767184469061478539301051730030907679764021151098336260245565311832758810789856209512573413020973447393792376369958081989551961091097140812599785910041226697725264746741864608357023600424050570998272071898193607271823434203830486625207169275597640728443333461357324847218996389470028152044919060990440284307238849009954286905562117032400914874226632531714626372777219642724137213767497593947321634529105520785128766083109098749516738798795398806616090238298839634504272015309958922337120464756630589397116833259515725004317162359109324413449658643495732059288247245498830138984105191673384922226112133717069421537072135264322811834100989774581151648984655868186589157605696169142046079642991810625084445878880687412894357910882519408186122391839180046940559023071104192998260875433008630166047741471069777983673980679877733259617256578767053438504196782168678757589414577857857622881587748568019312573451878998746428116860577272154977343161312994386712198488743029171463803045583940183992148849371147602695698648659336154166817489968618218373363713920988212390753260957891979562374149965840142749946159939194823677013142573617085499069213703335249346553475757464860089982175834263967224525688445983995369807808599415278905475528890874967839641725166145767376960924485776660138547466272773146200798618995512776011995309885138310339403770962813222562593957035999141834085343155399492915793915523229081947496235360241958478573706421534546034890042130877279282886388121420255398267113598466009968731845833869836902544004712070841606168899196912715230655140470728791587671283871748115585708214646650144860249548135450595829991302522116390764672881342032536717257381965615008535809389080021275491934737050650997632507569381792505134067620533440502906406753393904515007744165017578582623960214918736219329701794294724805578085493189485217010032002646670330156362759652957418989313842358921475543523695086944003747881013078565989238811024313028825767303407334169789815730560106102109899425275075346973011313801637345225515861271290973789442649533429449904215983742433137971492290403427569733252365304774714122502271761260244699967991897995650549557662885505162019457196310171102048714795611829061788805844234090282989210953536024639562151048143080224787422560620287345631443075968528634353991600570436197615830326816667513892589119150119034164073123156113642634606186846981443964267511758852276835559787464776442655072048829745859480073107266393678379737767582294091884670484100522768390191501552338857661843423879332244626314166387746725018507643823978933380546632597808088615378469567259228282236304630804304695998531672614714420216273972552084213692547504988550484799060028522659829423343795251180635808034979813251880660726854570227127354601715996932060752347524452296664189866594661026058801801744492986989378056571499395272498714184398970259824743114855884301129994790726332026580668896663930870446787712282031832628972369960185772808174819939600824194947682106281455279331010432034473613518357015403109832845527596303300943410046532005520326189578251654664463972503874321669202831932494841613019171414595131924220202975224636508943436879305014378004941436988986981460715141764515573705391686824379400505058821613549153466434661663084097309829655803722363902425024843617186454661102819444705247908009746362411899383985338045504360046066929265014606850688527475993533727707003366123726570285051343093677435463161989294737525588129942949237982311041657420318550851946620834656977455259425042176693638552633466988705521682544695651766493456868410035249203930767800928317294768401279801490155944004439589583608868774256000373914787703891608888123332011161675006991379948949325528821978599887814987464323887961774146991504997413980999206611410659661055950056564456005607207658028137218207426620982242390665089237740374603329959837775633136038678443586281723470923454056837770965008282351887051255217625296731800767550693365039710687396688232430030394150437514636420048548074303808481750538758616255993865353371644983913545692423687250351873449006950377212840422098758868659829493811303496410960892576436752009145976185136500877610595672324565774683146598299514422996331798513043424226191130949905685332213568169290793945200140042885109011094165156986998795277603906943218893064775802917052642647460213953731586635521472866445333470559996451133809810585406189564508385267364859444728532665756596988609492826769952759262931022349129841424633514460501324752812036801690651181024439077198027036768003207932979686446421866508497273031449863531093812175750209818413022609358087662202242308523262182020722512516112605689396261545086439930099515515148098073980139374592746862776243052944732947800622315049668797896243737256664219976359141550044344853805225491242232821672913811853422345840107087267074517722376055180944759861275070281924650184356948800482936185096897917923225676916512652665169708569951161452087369541178631552681770090448535755936132604506818064832469041119237234129218324263475694104116509730120600216016609866634846932991214121893056545626814740363631627159992931931396854754325901342109004341376633395731329787193757464607263400239010874129483235168105494205187327266070173097640527873185840884987357489850469729578993529884108383405621390810373006065025331086059657005795885309378089207521949848346300849273516400675739021840932569086613361087560496156677114632133266150003242176760206226315806145105856839434070744108351290821885958240685813375247324908752337142654276784839012272979370023016566848582620017670483197910723618944831638144353531135405895815144138602667551583928125116584408372137973416007677009550473036183038256459517829670497495074025092416639471788675676307028192985091414200718702625485727799402264943518088069284566096979446365991876972572224147230971599354965618268234031350067388287640374897703296170075582502513845118179012440361866255620278722253724084098836386015180432424052213254127152143613498989037031855994215078356676026704239006777960276770708943658108596967849655051122496108606724990704211430461599727473138321815053585629198281623641352866224635820742160890968369150044791844638635318681900578680438833035095104448500954464377993530766092583700503768764283673724362915536340650609308174356886734289798058561013345677101389678126927627999406551004149181726762067422140663163103761036838477660301890199143922660764274403191171084613416521253925893700577412286636176386890900737580901050720440615028023670702265394603076401174892920124498401317050868495092557829429417557648996066506251453899093248359418647514136222305621743330896065687922476561633399042329584264014884972661054981902771039327225335194508830281861644817495000406387767107123616021706210049265318307491847651802148881860458968706679248911841888520730365210425694736415137124069921197089495690843835728914056768019965465916966695009419350940243061899988960021602895439072102383156922650010087876193668247652172438128694899321118683705807855254335164411373256769325113460260432350463876111443302954850428487040986310233492174354013535003810180116927893342857393385700941205318904404769196142312509019851341690817594734195190912305314973865377510286357929209483842951499143020640469234085295206148168484494752126440020963549893285505252057374883378922922031968293105135637309943393954204871599270714240330812844581231421249003721067744448728928594836654308749999399943080168886877731122877806972250900941987458277010337808640299245727670254597887575157299429564003876626559921548417589864058715229246864227717394317764109359153891449537478263107250179683356978357896107813648301348609354754897615298738016805989987332961720097968179424892992875830135836357858083434658394794682290606415190257443021015279429858213284961255384078830753136851815414744284782228822776393949889660651678294743619499816009722957596247799120275074563959355139526448775803750699330678571257275709429394509616069190039519085970699601136657904474304786300202643620390567543017675327531030882730317939819907431152469123578286529257639202465105868448193349376928945537970516050523315760660320103031023828638490322483657962252576024621403148671274882585525664896148136361108385486330322209619890737219292925027234761143205193308892313717450918379073455228056649346557529119412017638615731295064233117976188297479970449100387365169506407526694471004353193351226209184064489801234057578918834256155330316552184709328387755502836121318536573037339072143058561606785002024401018034855345959062093191559744919293144147043198111670602591020252640172534343313787707837780595449161004898741534695262216253067757640015502023214754934875807501068488630719007640999162194020867749352953990070832200818532465425681342693741096273111358567950001035889449002974910083899986217578664330211928085379506668007335351927376043787382447945810884069889383116628773622515223758429859031846392704236570042167005644220497124847436389738628448703347396857840887045378080208931196605696780006340355385001036387073836676229891439864402972818849453284920149759541406668183685177300604916289571703932040474723909869853906412055587025758735268033431544099686993026079603094698508367033363598672121354956654478637534295677268738085531696268772778837713616223406222258340720033454779649027669863635533572483989129868296452725106047432770616042173171614783002625331982164261755566766794982838733314443702027727881842357729321743262737549702850308989608907714160775649502938725841161333908956454736932342979516623663179987700168978206449614460957904031483771476029371866405917782357707739539802957931181797261917059788238540053938558073263922121138486604037665559308974583105995051819218849034023159838135357551622792685366617711311502605663315805838651131310620935042506933670790154314610884060214312484401654636428368190918651085255747836118564920733226435382494482835300748715503357388053614392163939723037851065249260055632926786291517844773014909627758433646962683640643122495212316323383459741152421704984372623891055855326214062895804588500786356426529802307347706976075987423153713417674188949249495228473902574031517222030428809460877554286083891261968371732910009893221347191722701832109573980516951870773403572194859664234569763889342041939416717275334351453998083511232514784203007826999607508278676644999012765215662686198068301468879406391001522602186834334986846697077423341286762516774477327122307875198450836839143821943475340544039522816078984052649817143995547120401867466910252547619076057984388984254847985209190279920122511747353555055887294358866965236866014027299247543553231755497969577328257592985209644512875637113942696236547311215131770091018506098814110262587964735923876036778157343948984764964339022601541982002514392725851673826165321943745066113574122508142600351575721422794987308571851031784871227544160119748689112198620286991227629691918515212848475494084903788503358803369537627929363996090391511517035793170205060909640401339203881679438038093093576189503951860924282775490135132988231708834704192686174229773680268313645048855149226305472303039961240583716759788929798298135771278689506550407545269368975931096491324975184935779193637678944372676238337132436033159301939612564726619669323956312298839441038327119620770226433964147792489019572145526357692566235438741898097459358165825059531139792414850198252058714770389731638335410979682551120726884548898556220111320369218343518480674712980604392218518589152676025796519099606457559052473666722565685505160950659078680672828969735291048676459489476776466864197929199171289116568972190585162923254720193490990859197833969757578416137359786823495416154610056466789121398865837084751680080004785406885522340898947266585927271450493454443132941575506240675184203916185599005987082425548735923632876693634434959148816724142859442778014925217469720029738276706824880017600114979601898827481957026553282082322014304200555210831408965260777352249314677359520250516611323808197364156476363531231573273552600416263382750257269764955074520669250267176012944570747468717966303933771124455969372637301113105081683113135170834919337623089792204728608170745930695773222162489852560001103113464271551054737206832814410883226046909457783746686383137860388284077852088785339039285899133938913090984708401509966854620507586502337530382195093207175323262510378740565080195548827913132510955382292862761091815718637583678250871950956043053374087387628860318928697550337672065190816952041024426713475451716959211565675964975691016135365620645393059465366867907753241981908945941086958508450072613341140999960848383073709446765018774301636106352499502807691688050788790640800593612367426813163427010150519598457872653072298268970565746978113275868051048353462239325838151955230850680883748586439108354705223684261741216524667570840441598566670977855635111156386072696978861565916473302822296487355766351972627779229590362482191409158797822355973821916568264146442552933474563698751260705491022644621398264965878015463528753417504573414967046574447038464029691643258064556734917010725371375161409096923692824808491155419120899170359149681382172910534411864716359775670745903644518597337230346886788258076400983156559446227274574831489433533643873203964051350708027627856036588811943861873507919009048911888002908096535245478788252853650147753772760705639546949655205006717635137265399437784920488229819572980626433082302661450616258644427638014142778139638111490708104992893362932922259555193371034898530757507504062028402622358835438004860189188631156193420084555022073014805013047227799234705760616138058298390063866603587506543238369346964156212231343161593195782251563666839722618205639129987734089231536805887206436232662916509244385503821898707371180001022073000298722635902024606369310494849902678131419143266494274404625488036488316413110560860517134173442247455680374990491746081318560999454428366016571314462439308945838395008394090179817526568317866223048145868607661746066600766348566455369876991103825015956021547862359443741269737320127368290674428550018547960201983198124060784687286323548759740781787930010103631147126182667768253403444157390422468142394077157454520037627266254023833528910492808276087713007327501342397101634224189652203492482890623099696645847848308885480261922291964868723119393947594084735198706842164423759518339056723528900707431774610459409740099943549404493522233484623468767892965246795948959136956614035747191562061238616001541626719800070488097576613932226835322788796678054406390453007024824044465953914921445675470225290944877987156683604170310675432571373450695447159828086474284143506804663118362861282895626701635710791808845004316003618998273795979826398457826314387243934947596171072900612688835229607794780142809129618427615750574264756194133286789523047013945875186009871927975876232451270800707132446105535838563197120075380378506626800573003896421655170518215392644698815575118724429816242471834015260358980754573662034142339831390606506090706473876484474956805135195687747536506506926395904819078129099503975783450610934285847855742007567837576539316063786754243529281988937136598250008591705371480753489182101687557815199518846679135834797568373067540587614425243068425225903303435190611859944546327576059003026830950867291033036825572949591135365493698296076354044211445234169757868170560084737848887826598753068543258371030640078112845382045926984365737789350859757222904307935894331194845657936430691106808563132649529560341288538675854480871670632616053247859678284182885013531284152695267412708534248656900349810289711033798780824063651221678978226667994654008430350654101312836116863520979655361586557880689468310380496654530454010105699473810782622800558167769419366020530984722514890164708619176088260100582571970805792498414830705840406165094721078389778778918714665407608775251669060203080239809567775603788104517990764088605641489782066645274116109032944617800884806299291148863076946463421735017787230380525169536645928708021664013451188428306902119947070863456606075912089220393394464686827546936802237014839253762548021107960654340447764614730445396500572853944556125660167823981706897140061006057308149898909994401901065521984087950315350017651634255656330133529982492877054245498065349722311772210969702324509760206934774806719751952164399966236597305512752105549874878373306928341992744754563242662329590149033195525734705475327080570964832452747339468467168995294391737840804546662569885167168773210580780626906334913367270980829101463029783688790119968251782274148366550253693312960289580990775240910892050177048603131806933094300496900397069888497363980620753868011122375180375663757694891137248355961181312517385467047494031141871711031244069159787000892237520942642268323379198302355970544278937510792768526995268949069297072632357167509689307164969620905114203876178768867087711986024764936795377055968447475828066109724165559898690719034193935912801542939974915304903879252103703167087200478950910558802827884869042613189991797165902430925407612117098931264410215251158630206796306562434405893789614729001572468202137617957707109186131133909943812953881620648885344271793758024371509010932954974930856552370945707347422408649199827572283576515183146963505537779028021876632024549227546947133369728947415476426151598760160418803616071013494722170598069860641577894299896482258073043813852978087410406112361918749044721925106354112629249329016391326704668253874732986073033438511248930483242092630486764660557677333625536955373310664969963213554337297418161519652433399005821578227143831983913908174757231498699064095536943505903403395830550381983660709131506702392679757841462947738581091344281351077253091145920802725842828307419738688285425250720394490819584949345398465086191989749845675944656320823651624223501964380795787537107553398912675396044512191253593924790616917947378975025252409622720270373844270658186864212261031740621334245361142282115948598253692081858797278611992361547539245539018381998372525785354542402928365160381501919255484200309960540817577338703333600165979045696904844146977490534550825370319411095947213637068152543309445147278139493562252854667164433956147816320193994742050927537322816279253693916951290115564006426880711897034162407672924895694173397158066358280374443393165898914594474594840482078678835814858347203613653100971195606866609705464378583328828368390303657183014447605829272514560593941993433407208550428720297443028205331653700946097330404911170852129685855042918953250546562604692489955150538202381005345225256324643668009980694957285533491290635347053954775538197649584511728213938083674786524372892466734260221936449886103942282666822140513875582942143471021881639374947551527233986848421555191407829842125427990180172443013853004700187558122231366072754853290248064028754785650596739556474344584801096810974375673095570051369465291575651968380320884768990077340468229128339853228105186385276365224866909983896889405732976181852718690654731853042346249439011820711452303645189009355127526496058421940421447737054868010959975161924918875240224382882729024446484394725661261250379868458570437451731435039800723999382224281811427516286920630775112250333311687229453070188075430509038684538625726629105445298045031530476371346194991930036168944771690396635461594012402070980860256664284174313600013082051970311823121912359771059049131388622160448910441672718325692550586527431118856032435524943909017810277850729334194058060783866275657307389787869214915615330419989437761991763984811559470418981228334970952579972277628158560775421467069542607271244869630138751534501275991914434593730452578582912854527334668793476560559370340369631066563671465467636019671068002162036316899417091426391779921785142121743557362185979156970939688539710972119216155148456006585941394811997061439112794104276019587706233007501189635066499453678218203403594952185053118870564397264423664652705420032263454185087568586546044119501170582021496167113792377855131791997628042917953468491187558796119563292172108778874196477560532281207817788037033453204008562586667231387734088387324809880427426326210279238400104724996815178218062675885710424161381628776129323728599761536800356070972405144384119822575617460132195513397728732279146564883851764449337315818509634508209452575129742530361133992295962492245494651991233071828141281857116189700923658854527256196563067008793040695899054279396407074704218605960781568759582547257895310584376389852193189181839197426102335933303517496397510005221468887690795712072327267558598991461271618133864869348119935047135795280896171949881491299138058178252950366778010668992639551908635419315329811471336287677354101845639670582375174083376408493343632680545917678080223558134779046587133559276097344769101289603472852458723494185473482079429217196486830778287193497893397578640739373242732286638967764640600731770726183027827504392249784571604022198933292211047899648257588286561451509216328796035160187065150197902898453323184608891726930232015434558008693128081613634716318432088544342005420262681840887011084492437660358014219192584962107214523541476881941680479633056527290347392770599377402321424194283916664467335529727099924758021193966120885808957313379108386482122928819334403883245525936052123784634593886537788468364017247752720327556837673781446964468023324035362536838119711689338497168651896581274408357019834757938465920376930115535467481571631563385398966088484269491109703329474644508024400081749620723703589710794980237403025984803148969158982400520767721578683728089404157814393580645297183496310027331528342129370742489717033072964633765286742740775090121183783723025457183276649430407241024771632674645058385066242169040111226537676236411158917074394175584138812975371666822080415725884040757417685492863602563615545346904286690414194200892568228158154476218278498231354548234656674433702633354205764924593506925557721833876266519970072308752344317363596832521815573711149127978507590651201462059997894014875729731823184574999150938378006291036105814684513535331750087042094782299850476676855203836771008924289617075972021737736336121659857349019797642537281145825603930750162606607054166044835998071288156986345743115574333451665357607370177121327632816223898809511110613347652390598334884751691129043376028626998552480683865162000494144660408745029903797830406870298968260473415262741444436057679168945598408144001289974903172277723977514346897369575020214351468698680606959082821802839011363521929359258063440484105603506292460278638281928702355152762228162231231890145450989734212857391207559591968159068727757167669194092008402378079371285273774644395006155309469827888076355443154268635784342283633017143435655617548436205293841671945549289064535397822152756208461186972311924769685509731716604110483438208923355499574082555153695733596425882520749755878542763923820535824456176794690705737112385403277008901180309299517650133731662907946144404954995405835239593383600485338136581177114209192669560509561403655785319483653805676742572367809828477831462988700373156096809172866816400863632061776562719384775091513826807428885815842065480882125407674327702864058469054157669792136140396301557415784318953431853865376379361583659511326046104887673739367863917848680548168200849029070937957994946938304348500875818892501984195877377634236827535790258747799589061031361937583289564219465186164143416899975714606574239619491911992999462290943857415936326004273602960612448006579773336392623939055309615648095265215871450964021885038322646090356324278722866673334400542528001225270975789462686169779178782428613579345043931193162854742624922614918653164964199221878891375432146488268230610096913191288353606507755215800915609196579760652685896888783319584950543522329851904522384561416058746341018800282876303648316473033833024708067072835915669173858456191398682263009819530134052168985157601798294745650329480711115849002129602529780274939528181773140677627003282698044232995665750534057504917746857054821976363655798852460655876463445164959183407755203781406411947197229342101636200835991201390167451879747465236871966517336853691052142590180037239724667974530730548994447621525416645293562860590815502884577020660921098902731046675472753603446143059538813885580960701793290247547664135291056236656131456573349203555447332617617442705481855869834742865950527788499476667795463709676523421504050499762454026789398905575242400102410627456495791035301433711402143779148364955499735240480817488734154157873043888490061026502435022775741536071326494528944480150845460680254720316055631677726779292950709784472320076011150724868592552515390410685768803526103149456683476812234937845060063285545750122903595168557474913215392443229968662417869999069678266098483255392370623419187756713068889327147537655192200868943384833710214459943984718856655809745172142808910504216747830288723208335162312089126898779502131113834841522444665590338037095244412835769335083252961423584708884116433697304350428648357463123459468268484033385140257018862552092955629542826753502228835588877772567245514332123232739740597681998609751976747426490456491015284013626844808012550591649676849319699587082381268880853679898831885832589381567663380193601448131554137335997927202320593944961446598819133177499863102691096421210263956326772375616483439731977383055752958047946409190962415375176176210252682385731359766912778271172920304679451012429313423641978897722642975830395559578015235394517472769013004379719010760839318622711948372051870388423312099294518258886740700505736658581120677369295357160870801292825875619787367909905170332730954358681571039815384598109532361958713177460427740961058069524781598902635345543418405565912365483419864158759936667291498555295449609634532150658662845490080453165588069936143920507224109890519581948735166333584836336708103468227600033093176772871633812719012873899796914047770026725680999814903298503189454803508581079638095072557292799334710676665800399988871255952165740305330234704082642244338710664204918627871641922856791227837783346686446713130065094623518144756553544341172764010728188062106323296371587891014835026466258166575847088432147730510289038074662695096321067142641183878395142090553047028717967917940987770657068722085659508497933774004687518099426975487999023959134814263313759161123881332802469979640307534320612953586839760650760478005702092805166123530637600370899797822796975628429245358911960141556242521602353764651244363456640672846206250753715412140118845815665142017852584687361238949126879422822578473694288595383407794465452720777707447421288767755320599036724925606055157807895978874972916575553916855098361747472826944105044341083537245680552678022431637135274336007430466059908486902641352692549891640982660019660701710820182948178483398730169153621641864291335949487442613887976954574029038533495357488318368721026013466434699865510381107509445797946257587008209695584865338086814806186889216642236238157593027432855570713050314578069712677736106846581723227118824498089812231241678790702711105323864894917041795126073236650549699530001101748319329820478214181554752558697808295577486510614936010641980847057085836991223014991629928671917151585476956534476006325417414152037481827426294873873470084350736365286160165698640750602991493017035836472063627654375622291050091213924434918613710652046031697288540555656400416993605985863138390440545948124123100190344077682781621124256897084437645193875546306970193331581639450193777704810031542040232516388100289931856649595264493380368145379723159109464405855910390352182758661548708743021052964657097394903844491732167781225333057547774177620604294077236428500019643893944275513862406776159818353559777079060003339475856677910482317262380079859981929140283970207240188509863516498561536020975826918291143108522806904061296065612107277999147496633258318106755493192856300371195633608788563197423656744740059847519541826892574904257755043047928379343732313330227490944041191223855594273340426662397916841883163027028080217652130940086058064384061753418830184814994733975133653977651291077340923124035438520136653761224077784910991274472355956569901069370656436927852491791181223822784466490889290996457931787767124565873918410481403566660999467373474554775448049895588858313842027910474639686349457702600038553563920294636268480810659681782970656754020183146774754300203613936717401034517567277297163987481726853542587699641612770114151641147140483016841937355021221886525863743235930225599255222748494067907951887296882524052449435349808098060400085560077140877489930529098805451066365154518925994163146824953943596347260026486687747331229049694030700539704415234015251157377719512787578234343542448746137328417383646144067828709879507523309472120311898103591499973979186442309171679263547644758692705734919871822259346191659054718130473334196067240344916493615367726581703671857907878652985486978335919175112211301061285679145448872408160730870787463166867370913514484104619349358287870226942144425525640426771822912505817514942217352766355837404061412505015617230693448481210251147373964609100233846987322166463823213889915570422518818480883387050448662949412395379315322377935691634674679461971311681122383505010920590908387629572054271961477872277243454764547238757187426926642363690107728672025729375256115328261354742435325455539367609815464239419848469409255265098142769552424944196782285564386365621346710906736380701501859969837592102591792334654203912013370895504915317696613652638842563252645166875062261544294240949924431102744329985706746014128977582065862595856161648494343082117041246587698944230575342774602159271015343846094488495033106962302695062723995303384243303565265628985077371574358623719517877079327193256510797266404927675395691906118796886302872774726307452141594635910267624369858976931745739352124193755089934600781020282922920347642016071407181742513907366745029694243034647685132881081075511823190617496806440506886411088942134108023375619898278227463086589730311266803407398427287982960327990093224845660465697679768336988925096310884020156042501214421772126915283202498656975973531716517573293854357185485755924280139182673457766179035113416460031849749070297345201615055484002106987818076775717467256634038462027468156298887826962669536991887340316158564669443257124622912909121847535322651589004120181465861372853046446834713568186821610386238547804997258626273522871768015246527008008016047378407906811317855489427084357009094040050027209314276183849229578906339299608989887427846340522518956679774393588795442128616792061212126795176545483692795951753511877097122697636891479405257433442393351247523180393197725878120882751691379720711675756067117460187439270517664470153981810546416866265799829334303010972996228752996691194712803696969336074209988415308886497568747748553409045224262398932424309735544032127896887274572015081279244982820161479266164949991687606098645564620776097416705641861011917080341494806496809802939602387669749304901246908530823467633002041295659461034341255963908866472982231867735715096276412524083102159690745029971694844528082453288401806784392312099967947047647282580734283930000851748906607827533150314578200326317361870328379109774872797658853072654983911789178060986964216288225988816427703435790991343654858024807798012142628599019280767413546501541602607648630738260740769577319904734713759405496729927074478202710073184175728751122382598142751634330031520076138427411840650497574860565566131647162382157189420382494168695071071160860776260672898733730409818268193174759937184482360411583932506028074269232338495812661495251687510190537776827288915729068336284923624762001241548471072126307975254098671452859664692749619485124160399554111013266971907131131585404080973534120285028023122165609664703385679490620132351136200778970822399567821851484723490390041203822786368471183257138932638679139853982662071255853544716766859282213159678205242205307901107534274663787204713989771309675221998613584875846245975566127004207239504507455839255689923400788320609236195985907300983116430932214047085931016010529937125538273826493264432465456105881619145971956135328149349819340515930995431587528474783072393794470755223345314125620552482340441185082288217538821307850420413512398538498175537403582657038367884885544768370539753799243159237849622902780711316355684867925143469501191764033633472016856755174380350275381284384455149016583116772439996355554258904279097915198370205466557954316264207739313520966191925602506441743590108701624645505047360654141821051010020597987330550595487574987806068532593832579802203747425468075032674049846933446066671287736689771650329546286071681179617277570261367985668392672582226928795397420885920431408689919601773308169165636045556917610169360128090826404104471975641964261734132107082290337669087907989311430208795469001194723284448798057698304142970328779104678197054382745863898752374979405210817506440026334154200205686770379094808381304910485609399236221730994361648925444218796406881418572699790809057364930580852854612532786125716150078688213496315184304491799436818070209003566900218702737891973257668488933179067584390137592154133282947704479941067390557344407834201274318700450228779501064505711758129966074008652965034599265826239478194242633864323836354253301264278878559254613997228684232446788644421803142008844708664298027848680943807211941662532752586389576384738934361799915787558798931361757671176855007004425954725439041635103671096827533843494813961643438252464311463529344182909040113081854552264902712830375048109551781071913741068429207130362352477461348316639429583437158544422906114437456041895784802454863339397871754797128432382846219063463676135096845793078917705329042935550108371591977597782683171619513412911673226620768412921085158455648205724233348028218794595709956744503885310398216887361993007390309178646286333743476995964163483213460953775915202455431379762711830272847263596924097027142597079592039038482726869778683481938432399644222077564177390633660334056950178166088020274533327398061869376779852929161186719820443267382287330418581737046640809755602945936992221957025561818025573870054648673419783456620416451984640898656730920522751857876754806716279865141445971314479105032882616392990527293794980461838066716037972662538415649225294422853701735321784557057967736038124221185778303154707354201333144549681896041662247805934336681535315412500047047568345636986328535798842608630250051988409937064923525666718856259043295543707709866709670593466676444960557933548835960569645118344933463006049678388092033182600146127911764915219851257899965848450903144671220894350177856197904545552102400271005860753153606551010402915079242924345879308231191429740932637829777838712865252557287145930576967807143936417534355579767975921001469504932649058084980142224692305447959089406634584631804550242527649163646260751643035641838341280863982432182501278964528209665821392381720956081531070264314085080897301145466846002286935512497469701931234142976689312873906234571158681309129687928747771192488512489147661894572644962801680539459067129010220996255422400042732833754359040580356461197978219524580272244551045582736764729831705306294346873180777503268599447737083528361227660975507447614312015706012304032863893000431342043075015187432754539200108984003975230626625766099337989093711003242162210251778637363981606119521885503984639430515103306439616308413584602672339190526170196950690401113901977027384900749764807198568576185592154312783412420299581397886777018510501803831807746786053122479639983799080117491291453519521070027752910429356142447486444326318572801220118632610502039436550469464908752232365104480929324364121114291629360200580131725191778740458011672464354389447993144028846651984400146038579394613759001240013087686422665082851205958088086085192501839729904512224490334420885032254987432961653956183293092362074324473327801168160839754653515514567004352908866138682870252967050529263123803416669922734654724728297236426114892331333473165397916991658208167124503918347593424231535306607799237913568890313568179172087871144105374711971215524141627036069003111378845383911625170179882105872757530662539099791046824897544420713967978939013719201867186085419206638738088407907948967914376771788310262579382864082690702974195847889222648413119849931419129837871744237367285437328173978663179089666983711949976727618595489513028688708877340202941556403186644128658314750928438334400546386850518216714712032565977960912226190942619378302483008014250278958542481031127554665015728227036504221859415070898613472457789249297636253884950327801875056988748239054239220286565493722305768089032689575100556300647138934307303042234035576779410396624072741602768090160289648569813537874546867691193618219916370992268107566566194368185672300451377106928011846771368338405636761893562256436226849984105390789299620850772338899214483414714475017770345619906288366364594935634417201450873362183532406910036032976428642265848781783270684367980508798601399957101948595321229640183285705169611814468415729162109297212403117739391946485875731417222391141681581211075208620024462185812391643695790319195504629718668466713770289254399380351401777769360108132458142821772655279472465827631611637624967421634654023609752947113695273155114241454439306786253349559800757943986645939629993540370399270251266867589829812816202401680595196751627317254565156478078931992394419296081438599087338220514187799605508239419571724655424490647362264896960511016461448769285106031783732352524082244005891276488253980710485178949598017474822643409440828595982681454978603727400501003244979916958090200191685475579512059932443992385068204657974800485833083196319232352662717509089162927593640942525519024237086340560673493649585357216454744837979675190636098417632350568222182288215339664285372190318952383457142478474585351757088702794620777193794323472013761125746323811402003958575858572810302306938782567354380050703826355659388494984493983381224307379339611647292311235781311381713667642544166650811278115692606539059072047485945919472083055388468286161740952772821128546200564195202492695947193848947946310982225498515730238157637769690129079371233639648340620490208028616188401962752717525695909689644008333294905817639061736122925321975880183954690901459387966895427800606744120971731472728203574247229790042791135266359854424730621554507835842030857210891041372963747818568677228730158230786155329155808996709014040318916189259827915007016868579049580660931481512220380803260667271477467966762591853203698708173761939312675693058915005420936148086961711033064268058061409258271691138666997264529290430052941951409376415206931840922785619514067578779540824760547018758685309250159823547542177091129288727399289356912196445080071747506158781884690361510007078844761468607226493147083102031917165628440557730114602229060229948407588256084520658011322730771343039082703671558390707305839391729181339537968315192641447987564492631391649481160685244524458447331489609817066519703504955825005298636186378565366674244079925910396829963233454268667339829205959103657143337836311109026756588100463147836671828444859560150325058824280070639918272906399736549540856495175928456294050146017343513415020753116427223134830231230794458351769395987219393650753250263866744299710647285575878988633254764083130743608044770902380716580925824490022003116932810462834836814434701022743711803205063126352890743119168401995104008173996296679192590905259407277512824265098227373901044191171296306549725985027108078379449942229024129070065938601989966009115842184828633413634304730025819673818569628756539099129650965512284289233715662772329861872043834736197742208550263832058847249862241357103524996899749754570922827666154935478818027931847829647306725068022707553879566039826096801820253035544517187634460310452607509970295668296836854893284978485129353155960083587942100495140771090833012943879231098343433385703092951654866725147493969165282670387546502914075461684266773004867052459329801470674603323192193230300390309286243301927810418288185859247219438818278881756882297629331588823191921051066454822738132598312278902306639067272947082661300156615175456912549774268874763885752954347219636826570303604224886271308055932824848171305184524700186635332312748948308310892975265860664770972171590095958550181770726934293430742195167761511804286667872046740097774460349865738455390005715284197603522108291989557497057932314471073268135399381411421088850026214550106699480625068258661722725032683504016259430013915310982510391534916482201044628251978068911178668679586039215216661059228373358841845306354361056191200919002046488965655367932775886924101470899853498076910541949554047601247995297913985422772895796551361932128656901492725908958643875101550795205788709264488214987614732692105927727105113294620764839350881894830084052030685274189160365251982348206774563972298069179195469010473251384009845341300784500382933228906866038493085108310325867452621194209080732700727318330715528796023361500863349880776661100472077024447253608226718176656626247416037271609403727115618261527465700082156363851802963377954000251106132741150046610479021773996479605917161378590394417815748457036932710307100385699565006200946730705691237359844905924614187126099583056467475413780162669162037097503896195848539119244863668388701513904432482503715827666306213540181432771562538451545231391689247540919014119091926194654141426135901799594856040092780175914655929908185519045746733189410508368847939595814239404779490898243226441289427405658753762167570872466923316527723457210215346404361927913566401015125999772626352957084464544320073198695394454334456199422141231862068474284145604766993688474882722256177015440721085878563449890358904490414538618354472119549341900147263601070319122625110276596282365233763711486621293839008302672951102209786414283897835840187453795944598922734614960715634108379285433038463404225061442475170205284362876084135536875761747075975639273424894471742016904232759606437429283247592952090120125372336100996910806229821730688152409026111810441735897097267038595831938029134084278005548694221117180849954853517927505091088420597449742126136057828088278979597162275273413784438039603603064629843506365642803612538235569433018403842145927547370152797408091501026033349762786408876259525516397628977577782351821379839510397937992596410482549343603037420526638422850771915329454286620162989999121853824427749198494424456301319059651727511759489644102430152817488289629061007973407623244071730914504324468303583450861478346504743875817529249535142816822841920643306157895799447516582134877616071416778417645118934560754787728911338246161946054461694958907919365188956524058985178288800150893168683971047097764085120144203078442008376835301602643199838334002052033677378896369073619099708918311473508362579951260336615249833451298461968631687922115787638861624282181471562067895282878922225355131226714091524178092858066738255417192339172722287271701620083820389061745483763463468728909039383807692526078527069493763494712476044678737549262467324417257189954011228858443757030197610717787428488352701956909066181635984919084368369947777606702081484750426387711272677845071222358714689553274572402417141442263736741552755736473441321675530250240793277382617009705745411277012401944800510828803412825440153846994479700397372481678684532648134383494974722253422745585211063624589080544528238468171031688202794037361336100854493345105567274646177636714956938903486990299769291051804440461035893384187372536142606864811501325799534452105539569723463034821050148715509290650495173903592254693485161005983076439517088061799030136184583007703025471513276801187237791174448282335457111140661963158835313353836860317717863792080340000612265368531515502031603302474523690057990077613266496114313087508585847067770955995429594406901642129433997244596227664042474479412097088848839951630619170075474754098605613962920863954004046345063932923791275847042549891762535367523895012803945389020818222636908223399501432398095488838197403341827607637267348237991626875568241172534198920966194520482688876533914312960745257427877445327306911853370615240185214438264315133670500265244757622186721521300942096671735661079945901373501865953821070349873531067742017697040384509616537500910968848524548503674134233657391127625908907271119766622705655772810295315112993963955825093574439854914144888404466454915963088543189758004559627446488071203210838678385469250646234744937100037059601820225766950913459686112930437441205020328457946288358560103964875865546981349666757109532681426301635733966232028717447660234119102992737576807041913904111644187863445676365524318701567019724111691124107744575622284351261440454115910343134362311034312446345499987469420440979789976932236262841511085332220150602080142023606800700348830787260764519857436662305575338284401131380419662819475938085630156849964857681040942578685249185808061964383217071173911541439517406271068276552516583314038726027601473970059613339186040420980549955876264239048704129655479843874135970790709703185671679397443051724976129951454461335439995831661248616528437268199637355534342205182762399185797609064035390486250377528722151161568147190484481104571223237058819663618376651702605781513809505923650142142062923936605777363627708499377006687326253800382010825306854242448136787352222631581789573747794154269017575912361533357205454144898835745084502332664113131552814930516198102943570520842291741679290818640947072934459779802810115451637500324848483031814784816838201502084014556604971404986780710491681575821334735295427343188353800833707942647531488146730801194368646704189744440242694721799976275611563297981506439360099735311452681081597199291105337839293544041018331764190710026620790946060456500265324191058826281764917280403108156391723349095831719899909242944540869268103895930548232201152827750424637225997834222778558384796233393299223192338067161913035445922975253753995706409721565830911008692550288546837679183166385599075512225295129672835909521071756202796951673281448799174608476792486232476460981234101903251335549816454757797159134673477004621822570804334896560292978534105918006474275464258022262777486217364832671778703704217168308591284938465013535015623286892070778140638160831452659364822473289105597497301999605761509525258449124401190401842577355449330006582168237460204860611493823809981372435933773135854019780127270956937390175398413846617433017448620341344843636333275100336512074824555561950041703753184706872734927716870830241473051686530271568787169819031410263872239073276755772228985861926904778382278499177131115806961927635093335088720229608739860919332890165817825262749582724721261225735758828668190715431462428844090009877535524055315331009604131950238192140683020543737540168059095952700565841800152752058436632455848925750093439237050145866608461717024495369846697170203427181766800769101719313432679329621648317174252396673833115960283903448432586067580034409074069794296813939972141567264228269372405140985039012134910602367346310557859640629613453293358067076607567913036864657650441403106130825627466081848363892250462010717758805303532321379117260225880683429051138936257496111051575859296479335809980103322151669922991499841519459029437638050149114239584876030990312575830756341425256019746227915036462889153533477304325189954144053115735806433607379749538865364677087324870475535725697427304942514008338699466081306071211022513771800019544184555954350531941353895723752112366756402816194192424111247932133268905984688417950284256080527927035505908151050021813356811488842018315450356860530985229372046225732930370547767233189343039470804290933574248837496564028972932284928359708088221012915837757738582676446178088999732709713597521912283588990575954784343860512189098035319551544233381651156348412866328717041849319005274341726143421875525240021794607152485381868801508511487457258031194120671267118945660030065598249760405762800065918148942142702117147788126812878679779481464764143398970266141448997487750592416756511552857381138222523747377938905443273508919396804914396052042085776020151772226338357693860530919619596349492000475504545721594624261816426080449145773893892613475556940717419747145600430844367085704916505523814469311539127574443475535597969548388516535497193421740881387525963318583388021949258516130231412582674813472085726797242743149358528555289203891196760690222260753726364511688359524152438845987643762591898945456669696782040058493976260187271955057028117013523039366100362260976964346162468678890009756762768326784600015890392489004536697512914575701754406140370584488691350322285358423019132606861913646928402592445833357192329502245353510809221639997023657465631287998396819208425920191165694694870659307553413220940890858400379555501773275120065027023307768146690843197561705614684498438830154317789461438893749128864846404682070863248779221482488804312548975578596598035446133687297268727409108751309159692544281805029383385162195122632474375452073045098449642957396258120393077983674328552952408187460955425227836754004364037239234519685491685830799223826940569927228564547051590364707424462928136379927454495324346824440007968485209623060350074311136285436444214276469578892478559440652520434287528139556048437860684831920662008886784786891522259111096070617641354648492358684602722157825914326972614513004313759689632592994441897768450116375043017944481687138864528392995632605659870629382970304149665150378070701595856750896224549022829117421565712465906003075989201732172206311323776730304158683880430065241475641029896703180499313324489298243632007905514790788536125366497789341266678468395713592707814284324832322158727352767649788032438309479728894156958956329153905849726890833058948495011499480741470835562435816102100693555100934374659797924870509516961529722939478157092270153116303837004388354151188070805665700436981557280556763001210689119439634772305898282747709641524869490553269631935682688296874001334335749566720824703461190937228772102187459431744197822725546638099424894847448552389492921581962236987045774926434255154069534061891461796585730773328531147094989440107675414071913898352894860142872796468630354369191816790129401656580751392415344748770446814519908786283638979077873799582697163983126931861337695985315380280430169202006933541481357174489355788693547014918381999979571933904204842264175034778430391056753202194300306694304653530628722606256263873103675789536603470842816681097909911739420338812132224960315791555044790049712420150905895305602543971685563216223263546662513971555492169201340653694261695978355786291072734382509079252350304129435529144022379361469186488213671092701673035121742587769334072710106532074873804272856771374942465876766292244605236851686641378887121112456133358105018445881292703862259330988192552070326865418729069219737311196435239657233404508999853864388387761941829697265765364602117479695620167467515471398147907580864705909072678215547075202555712230702074207346162751186683587028686923867717197244412892880537299385321783260216714358380669530426727446163974519947514597654228753971886827673361536063620978932818340878146043878829676409573229011669029726781936656771012450497092234283700675452640797034339826323037445656149365570406699576367867264481414773487763254788126102181949196355770866554682773216225908045028847601043421825385882820211352247753416581323752685068546231823345251439889581558108642370277033837945975876520288237572645691564007861234123881139777174373993626122257028189172618258870785653930291544003564190425838531841345529941426650905935541263301821053643650683771529818366771576452568394921845764134972883583819845694587771233133079166878758876598245262452961247953288752099920451895362561426450154540494635243733928773635880277145790869529949674233184244019060360242102944902436482865702936402124838896096206112492731702522673644474068080622966812690803929633027325380548095309330017208325831022171237038091467412052308040802957156684776131349993697007883714874826748014027952670117627699155678928854122691788336789306721611509630046199899099162935075041213695867186754009134084666577844946489326909258511252166879843210888628171109569969718508801938237414649503497792164759491523119722851645568983417013359621032229663860115258341816391599967269233998975978952945938590489707501113807871585465576708995974058733646283765306957310472315438533122692284852217691845100725352702245612888264607039220307624519341163325174364689682777817094045393191135270874457217538745167481031331209942722559705365907127759769843238805894261633754142893133508998508111922358632217327350429323271341650528461706166896623155865857591664321455032657185440556120614300063610901858204513001625576081087719882290217545021562554286684061915452451157000782167983740170287536996928255128034601031780205584645956473372587129777365202137525176247396832044449775496221904601199142479610665744745821363627204711551874250938878187624651368552592752354890841243677708281549991952789396326965250087007456237893701499572052201868000368292599831381645009739554996209903051491323503534487339522559755437569358471066642022776154038962120236714748476013090188447505841999885272908937324765485634598557719340508784996437872996306219648808538862191243577496466638402342978904181390950230202487045208248985715074428658297924520121220370259419655954734961009366029045044969270288835589400445988438270456707819359745471065993936528995779976032576812622482547689414386757443367734098651243006682344935539175124247671767991054622471457696492594500585303149704263166225129224855068115439349608148518453468366979361739769656182715903489323828132577972890722105033788510314807489355453482853213733239856440417541158209207344023116185166918143765855915398503016913769969416542907120580730751381357749746114357156683712896882191848647724220631627095170700747884652798919892087039762625319573903183916924238501183663233074065770797768265528887482044202587247243386151651487592230231356815510324727389960622277188623195987892578868682180819554174003589741303309969330511386964274999523807623659936473963097294934467575395988129403329456015061392756245329982253777269020311305908586091213242300600895070318672327334395242039361810773607678526407620205309153922278965222096039934499518887750014456201592515306966127881882433219307611492714083905549699460071098538007148492326036025819786024077483138550346617769975839782331578927917258385245391387505711013804889720285233991381459848452509727212962480764777696118831975291431360971622171326143903504518177184280469521261046253267463280972646288394367456019729902076926423180052413511474492296101622814403643475577350649582186422439517534751591203951505127529171145347861278501930495824129481569385909166238669353743520271763345403889900980375911311809752682975200545751456802927409960342430281931362466866374792521843445303473991171244462521243764953872739585540919635955827264445956356977426320307366183188611889634243921073905684213122840008230279666840231056295218753889717794456401605914872118321659743775177529703260816877630563486839962158730837899822508999954442844450357142385691957949795865175576223337430942505489038055606648861803032275290772138944871679421959057312106455700822634630983131378308545116445230860314841971229755676934920657909370917656470444386007926809490815402623319748070491426472768308296446839939560608865127879745467456046134984659744067606070895371858669269646935514500965940097089853926159345491051944072519679138737548776452966802237824397759620274655549681327175976284583887144140236717277704397540492610537046034080395800550467387285483248120763801244857951156835622185536254058130611633762335880173697972178066545093119656922131930038418656845175973511581273518146030143934252216800825856245282982489329214479770017241844329718357184660218176692453451701062360060119543525489421815887532319682671736771602449578895869426725758229328170729044657268316298131433391742172686222103963087562521780382555018189286855044648007521318807822397308639139889155704028645913263763547084610306357208922818790806014591591417549932544264214206496324946793532563031000319497693862778840476084660029148577953663768843322364145192968345627755631655934451609508430876425614696698240456903981797092899089980727019602978245593179530748682353808904581328191286778630091025473101557107373479257266686111245204586571876277717417139628023631437999937614377309480237937334560036292877694226117261624184971112546762237040125603917508605295788021866348613001308091396660800898950135584078946404174216999276151956788612530184584270889049125325031282593748696137202472230524477412345743144718722947655773765256165186421047701883887707758827591079178040222677244109052893172435064798949993773081712928310707352979634941662669550524152539906326643075229918799053902936805490601492392488622204510427164639209254069150067362663062104901560123937450121201309725559142005283744207698549135616045781273999353679378446110955056262955206867099558679406323984622444794421406971612280170597477551758029467681970321845147703845176350314103413471722579239687786864441387711331655460110970294051972524266759702587309262391050598223072280295712157193010139228539788927338948937912169969786767702453182734651778711642158427552498632807509085549549726353856159529319858578125580840847845716718700308305915020974701502376780165103449171264708526774716441616215795727767908879541270210201392505958800292213658326797056914551089565212617542449965673582800643869872279095809464908326951071915569831105401368491785744634873579031100120248505612134812432030473194001533307315063802890595312425797319298069037761699768518828658794849729300082295181082813268237972564644935161948208604872786929678311501799542573559614792197198506791099588433050515474735509361784080335105305291148555860011845235519969707631887550388417430515601041149304249260494070698452294257130564845147888298485762266888500486929403752445195505751317275266792519890305415728998008664476969559518276596495071299048151832708020601994506649080570461743125760364295929385972812373061654851410814530883009862443275936062793183499276380333852356967668621059444410126016826425219615652769520034957447140197120950741620064438688647431404655857983230152269894994311045537010805594696091551826941457786074326663182093622253364415245507704663170062426435038028682876825665461100526823503859288476439979464633239539128942967720814791767693354694570183019999234922872385460088795240183544800159119258629508359670463930555960714887391747399048594191972567011830143954666927191520141369677004259545481838972674263803964026654337416125971216154649417404311919615055917145860607826768200334030104991031717946498822956603576209271215735949358949031227135431703700139643473778416556868419719775041187666428587693161517228440948984590149129709824490005716630996678943001670901336189359004253390612617263736481624145456924677132617730462384205831843878233851156328932568862319536662248399088906909939766189000051176455234410270306036001644034148801797233865226180750247742143163908540119147556872826354160316912073086649644034248576745749893148496665679872159492452173954498357546293869737284363893036510449549656181407513191818249485950856724511552369336596094068032765028019600926323192487631991819618729628649675508796850990560408525745660628460682187653093691631756534712235940125154382708902493178817569292248580326459590378653761169088107762499940730368975298067734646479566733658191559717446300721678265168545717050316806702970908893983072975241594686988258876261609550808546672424070587617861805479648903080375775139060460178526628990515727719944819944493886348486549835111147666003026650452416239266394555230732176668337065076561447380543662425654630009124066896403617476868721980360244365302577722207433645415101934884532778617002266475432443636953113324164100410308614031044602130961087638519521457373357026660904236175882813458531764469383377074911698856270413977308434509411748532694226046323891708086254695326505122672571579880352200956480626011466668255491457593771112430579117638089007827584297045383703473691223014072327586460754685928862409599137805943395054213285657796437507207236681285467114514124406461644081605354814320542829140897320263852210177441577305808833201626118195801118207741828246985250484297120919950113260161233709735622582711123503085102642062824753126528204128438741255175520585146450623387186544404320264340414197911024174250856343991233861705004919812364911284190399179991195307693101681326329114731343233070487633814034808174587526118481967330216352776857846057800648013861571615857276992017021356858686762314371989729482054327286652895332556297612366669021565799876873526618383026186821505526362437966974947548342741839226494987950350037627396585471221830048350962259905707327934250132423776179972307862344373156007940176596856226241473816336744473730336792011596327255336292280199394146570843402887726798696683256664677602988767624760395031798436639003914580132559142745022273634946078573171914307363618735103931642794204540911112734647159080073885713379909161623277196822370770057518807796369607817149360152192908971717524736610007005232932078405869839079493110474243242478373071686376380506521463708904403345143053298919643445608475542065102719639713316447215592866312328587154326433353550219652742868060507730486555851309509169293403034825884947295634183434297820992115775215001914470309750062860602280421112193111973045434312189954695063996888124033316429385606192525009126924933361412517586166542720166791994574544973338478970373188732320314516234901856781072353904810519462051456972984377209235150533620241737594476666303383373019459113527257976617491202678983589950939998600187714650240579519008555085576494546277506000476452085604013974789552375879721093674205231268611072528406174096445649593302470972361088272228181276298141664923306472388609121053374678092609171276552734850764876177804987032949071594938334604627659698100727240053722400919227509285341959003768205309591302872792252408841066186913860553353501812193533756952155654296007758103212909107664857882809803062017496256012883271735356411715878621463147137650902290974703090806324992841507418795054254177146782960664157463944502527555957234516997677355019612264431478862695843698618312477386660025235678709488706875079583548026842523762698159271941917124298920067360883183997170806653167434770575033007080922750918115149459454786712522086360317642816428190756404015879635334958656736060444646034849470844889875521110440051610469433187242940406687322509169933877069373616676735593746943798779438498921614125813075162579948465908027593914376944788579249797356270738640655372145844557935902247142694315557378027570428583678658719734210076007275146347451156811580642410021336745932761978374400824247089344175681234396193365964419729822499321445306990871102339430059428850897959421954906269184463706698433898035121145702571059298495226359187735345740182702131715401514248232157906079366951839430957341455626622919110091373799687563097199772476559536718694596398040011521279252992535518803557396933502997882602338094063334844779099500664027205510193585517199459877076525934051295567546804263895592578110628290318476567098936486236175410630626276605874921463870191716477770360472675530424232865645726409732964908406789605172439384243186363445483134532976493288998666170220971987754092581824173853648870017881192445499223965287839178720452399194407010484750413854945245476306093046379005475499166135072705442989654235682685306460263482340204512851922827312480902432834863973660264874307119456141615706262497669562337221849498767242556053632291435782087848257533437345432379281215907230357658988123181895826990926298008816063912771351989898757416676686265241273948829211057552253872835141963601187618728160385769205042293880998382388143708948611259261169480088066869654098207046753584699237876025038379424594062474591970030315024971727955294775072537198927837799491952210713270179302416987117883606886809901220561095066425600266804106300891206722443387869342368205076161517597611876631734466503786498036107528610849557524999215453061230644278387633648887934859552903593289460246801222397807437906057752570265298606543578018278907505157175259500846910065521202540827822570362951456619956717909693810956001910704354428315697047379374765733260707281750307378075210349438502555546961807736237134127334827632727173826175496375780035649180804288477150781058336067364793454413932666074532768094775400246974679590230842273049466904887794455857637532380784350046207723787198663167257088676889164807661559261105089030967651281310543965012445093739307457052385289226522327223232918310884581430799670342974317208922040272390442753410820555556881901083228116659047360718233737260551821312028328364102843120908389675698395770287589085818365222277094535999103266381266591337362821715608304786618263894463929886852296714879916910278188651167888043897691232691030992832234626593420001724376946688716531398885949942481297476319875513985666832976622456855383221134352884565475593879191519930698454119328772703090822300777252464589911885536860256995887567165979948882273799479790430694064772648845432400812507451084470600299778413064367782572873018225055628631794126747419339381293317029570278009051670537931358162496629540078607986502298423680773561758741762268797222727842536928840096424355501601920460953420088012403346878919128432831095098252039406147129437128682873456978982548043244052638901576002031588708304215301593354954537326796974307860841617376512557468815361230633691939907737528625636418905616615629821213034171004352151405256759123291340555262560455086368558724105025705084152597101978070840466789400407233921179014641132095596847183827918180272686202559010903021687545117336121464267626969013680410703578342682038330516171111421380966726403794102273968286882585775831387018525394010343377473443311708068953158687881613785722514206618156010596405854522738902753007465202675021467828954086223661523150611630576043439841123469249972035878431143997300444836481246651938777501277086274821444508778924465245891035882354728533769055330524103947375452106240849550462965600947153045110005842736885867102320387731644293518290828970636618785497560433329233313562995575367638934635162226796913922939781225926387070253277691608641768357567545632167431895523017180155691249010270279979768234431873049142184080731395871183291791962104480092857107350735924376174744767873556107044248950313015867581993974824609016502639074687967320189348423018980042699444315067043267796865799736419616155587667795181316365074182467462166403396847534030336223139686797578378171513830597108748219636428054117143612229529370148495487061229780130778908631841436578636293222902802047292698471655407323709079538472466091334284952223504074827461379862645469828357337734415134712936593762275952547095403629274055737774743928782689497302252683177459456721500269710780088053906268671898593324196409531318131326003699334834358458182738224179810307354265018562031129412184166800876583710766543549593384171666100105843347695901052362343936360599851895531039932835504268104574143796365883247332493678080280091987328002187882138980879745782497844528582308323580981582824645747563703947142737102111687075492834464290996673599124416400560468478649575905055777256526837909845496321132118430594960693550135519876931958914159933063920808453265125097825527999974281804846157180331481773867985286489341150165737901613901945978764586911109589569936911585282122410883770630425734227058674817038227343567969256553919269431513199724914463469725897094181534312228340372908473486550957884010715122616656893100624021024850619341324333411179596486013342657203238807018326270019628098019831390365247260864078669631361479350355394441285988638644843105659061079549942979801429090896201639003601436896058326991047343070231773127577974544708431619006730067479608405267764410555790872447465804701685988490648903775170461207862706706183428618167667557376642462615431174108552896681872537949975069767319210657421002798797660925190859985417573619590241423756811388257850635246034732970409126845505592489552539532073313469185975995707269536609152727687197804371859426012422496365209035960543533344863108302040721642251190574082667097916008646800415437740290860242872913243653527332817448140961540087914634193507534634567237670384820982017069560900514571565637650885996331564566960129521870229668117370964595456615844995021635479938183962666586468101339689933102568109028175252953204250569207140315876465752894358224068514330716721642123331936721343569924924363047013017049859935966040833888429051168045745145899076323149593713458424885857599000306205691678764240676803422117834942607003477268560563376965937749439929861311292870754914031991674818888785737267692760063809312726886887742851908265586727066513642491513305659786995073744192795763761231250052943014953432773384725535839676024267092011965227578127530022459233337845526473859441056461054667468805921978780294979565457386893952533996992623342311920116140011567686612538315544808551604834389606713790047574801740702214969671832442063091972784333893734410474025301477782540598509160087028201151593665793367523332177524548167552402586952407526383549216979616365698700320695717739966195984675571976173452831469057097637516840914428209087137286223119871543721250294499042400922264424477705802532091007283439136459224073050620853567663857444555343240754437519203039392058156008289178303535353550871929982930868049075783304703666126505189851876769270981860692982565940221665959390034604616364610312461818617331528908468556952998417484041476095382890758071835011136473562797367057578498527983079466109281900849112532295598967226749998725072163866153406095330734807357159306712266456568816630144833995544735910381174234857041969696298703604873814849914836853087557924076683237504531358708841405489900052482383299598426236944659982807624160329006682980153493017307922836271594966776339819830984230806058091126343001012153379793855188058768196902156515386010802471271904751209013593669601885708986366358206681783523290807464805983957445692669051232850534297481301849416251223003391464443277040286307988547051303204377173219583421135604600207880299537408660635534646071786322360280245046905398169568609783241823696135138357382580645187687535577858896401484943385613690604972037146662762083116380524234889013781304887968337844584719509922849688324437017285751252689917115970913477820638979260189056703785479484807082933524000753579809824146269516039300025685859616615479032074064949034587897940658973908159153907675578052094080891974817400043827549100018751626176886298981271264531695310984275552420360278546959079310592009820720955167693684994435999333386072566096910238591026978529564570751272248428478451218644143227053925679208244262333403415976495727663798413004087284849467236673741838964064612544663293883715288275305192868794315204669209989931135142940863464171990626780903203973719297987006804441586907485612466255779005379254216149745386358473451910932825143524157282064959547915845175374274000480680331572017682386294551647089347047764796049502007136822083185953594402530245316702693176327671381990689514591297976088692160048088700463307952635564259317540829379582729888661488507801125220370566165820442650772330254865159898944216064253471299234632899646850894014657937342669855755726884014250363372868934108692468732560642039924522294607930073772733822961544287079447689225371409986528726320960747011143483048100017725268944848289536817206804118910416099720577274544194673428658432510856138646568170999184389956794415885073194085765673182605903847788289253161636873987248856955712038917015689737965920835910702886112249825668713131493985787782928032350522714482414405550423646345064872565023179105242598474456253965876382479072317308673744004772307145205855802361827957767248127795457290139252839116820338413380122394087155997098552060743177480049640181379834753718661350557923524004956878594511209316322507331258598348972847872142487277586708576292686545355540327915200817670490256441873965208593252390389401255441360416207170971115013988431064613578101847406675822117295043649995209164097567875536378007014962813699217657288761913703470665532273223018231282996979237477688285717363539173268740411384853309443012045043222289265642988258121205029486961855346677858258213945032641000018666090204312409356638942731510700421722102555612936451512162304360895092320762961629876366412180286828930839659334092405784628169531033086804536090090098475512437201752470197869486236422854477183806825425677693795870782385687429694458555811365082394497129059556293105030252411199877825212943123328719828110332053493690118622039770477331523606259858475497174240343014302481986736613336545044951431681020576041943084402430406730146508536048014880384764701345821049822278904260316144814592144856180099079185640392266971741838419910105105410590592924761373054281158899201499314149067788465370844332342551474242722937047197629748244216000884937503956082536160365416953678074079897140878211388781691529856571513486603674326577344468237676310926016789055504530934663884908023858239596344496139068271057964745702851533576869115007657992423691745546736834391840677619597554373205985900707202402968427608535686822953617227895919498660194129532973915210863745349329404899823029094001310774872275032621854915116894703709707649281898715597255357337672084717655292319375101615741651831031723033906592466151084848694846063986786590086329044275356423187578324316176733876098854399414466594700233210912553061972609893447367211661788136408760856659429103708144311595338633518011641850352946901224495307439018259940667716913906883380537762306492231604902393880628070382368752015169055769493259115500852043093214485540847889498419494648100864187106778281868056243413553711093248848619183490425392464290412684950086291997760434968084247743193655511949651343957207223899486638364124601651797153925817859615025927396484397611488471534286494396263454337555823672142809831022151554037603568088548407682225213818096942523972873400022839223910537850958856496292377205375616618379827956305596707149456776642554066260360903713061532877547477468841607355821580346997906422565819508647774520386506149393765826340178890849777174528089916908162027252504415527765568130480635293730663726003418245876334423333136523417497163720153887201767952349039872815059467493460566809054355452015961683137792315958460990160648304300980508378378175250884543420921327377708368795938239548433486453099571720552235472985880220567380569977244651896207780879574740123908349664208126021575139547282890906274477385196811762600030971997967896470580046392745748679859777248750626360434888053696159230623160522531864839604426469324697309108508898623247254212522656173067550280496634873881155150603637624222411837318321489220949859136770795438601329500985670541679592282450214178779032414138714233408376140960971163202796973847004886713312735228576161597753085173168916169381909027355815952040667435326595105809376677567361900407382299104451040756203720806805106712176192580805545705444950333643556793355558717186201798385742163328234148187037202606059620384999818086925530197424240109016147353722507800955052994741381162967569857465700275961550869637336229005720538173602450429063134776674990984324215283712251012208043949185085748973405004908266961502230323203894409777014724878367652425360327335719501357807174966023237008216515230637046416978436683962436791366948932209906872526748216864535693865367287757301513651400466697564795105460422542985713330640085834271767198203214447756546103601690051995657821051308848907583631125115330072318697564744783833917831309533271517819104061732667318446286546230583308963711704083406926816603268339936527662099528731164129253339487709950515626961633330470055589455525597663267081060683053810236321635120198717847533388859768549087968908027493939482119532881271022642339317134357065203268303722430822406224007789402015326308701625003778271721509514250950153623017582159890877779817387387913632491201019427620782721290839962765402752695197551639809802010432871945777035611976925053808923577460394088471704609850921911601363582726752267919559799762289514139922465249981074785733385830247170919089324641000235267248869578881403699454881823041489547197185310319226944628327537291199400421393617095257700514671171748982289371704426430109644138193654279796158319684497010391739751836735737439723197383298611269445544823584328778313364603634591685350305566292127803491467470257296688832461253782727727202813738637895609798720005748213131069431591332780523939437919315048124019006758142660720377695905774643327443887780409334883603047114704518842506016003044769455198772228915173104771996003058896212853044599016756074228103837569831604599787746166847214195002698893673340191832330475426842562058509880682563203676992824076308716976465362436082507776496811854371717649267124928927398456555806359939848527399348879863259063302866003251141461432274539965393277239368773928370950051832321496474021981051340776752226945053862093349287622817356192118544665676568010595010602904363368832905712271468599512618559444251311534648636776430859781369161972305294107681788630867107504179283312838875666874164292908498756695950373725360730552111768854754139677615728687596449872175406549339963880518052705254762982323932414991701321868207204395195499355359126654994214794752775772274002268998928185076170989196696688534597919699878353785563346182515261148134184874979322547290066851651887084906521990392533614658454718893404579953019475018995123325251429973148796808968718685684823465059401259766764782609813293105055943616103958791714995581362658612596261382573015245608415443699288435932833617235340507152113555680433343398615219946032430966490513508636730083078578532913374136750096582585016106919568877999552047030240033381758886053426488704731971001270867114996430720269621541869777566466308854888225602522552269598614612384957884807243738220741609184605905725887562120389379027291058967751169592758371926951275568030628468497134419398805361251587091451905103677639928893572046149197861770404586715079056169276289897652690322856889851040638862673231876323195595325153481353272743993942271974450231580483043091248785039758499411349451474945194028018779321379570181636476819175780816509256108201600578350599126694815374972563244264549141591675630367068215842199519958092026284056969384954512295389003460446742313818625860080117027837414613446429331858326763837184774988434737297831558824460451143005352354734645566731346927786950434558484835988314300958353618571022983646787151905953822094938860236788305784133988755681141229689783481819018933623540033088632497082024783045558345524800057629928195793538533233743725534051055321124016965290770871951010875395740767007782667223373862860286648818902660434268617947238651611217605294680477199282688012805888421768366449133874821676476548529628432246575358522925863378041349321049142750976280017735370869315301899448742844456488247861741684306120529533916170068072022795370564967487426951272030391576857458175359671202522658941469703861567725314366097623595617737669713278213049302546658595652542347066395327221815785711143635830209691512286271960386693736189025239109928287998908595614985257684930459001253088978333735647157392058337894921181387591701507893538903202597404478465861038014834270071250363651899462551019085606656635362232340142830472093966433681987694508888317147501788666448058666487681802846450876382229360941331360840044848822125561252112989399603631763257464314599964097138183505261477139665241241070036661649343538277654345849664496109726809375674277526026578735542054071406840820692312339353088465942245545530942257770251188828703246440802244011513130845126154275351370435608153670016272319870164155139233336001717750608371324484967493423823649245681949999330254554420423104100442027662290820180922219368242354071185601150664792277412492312893750905362519325373745661720950005789316937281620490575865924631859579022817344815862920560625472316585678436422545820985469538695432862921808863707594999650840591660933152983736610922913227221969544831743204637357289870488522422422635228526408343025490391740669006964951003299858788019032626789622504562433814387935455155670641555789311875699078673512974081830491722581107984956879463111043155365845069184442367264998214916509933562367360838241379522610455923806469487146492044107331958883580347025824913939132914826383405502708378214028503642962842945533609685714076590825672637728954300961230340074500532891265463151407587368425436884594056766221607324609392009052162861197281157953621602958671795016458855681071606065117320845591987429072922541270279857978679266278930210625848739539066732784864004428977250438613018972376696333534017560942184011045420649135324331017588156387248071607686075429657099690970394118264865033151201334037608145221029768749106668773230332727235721240737974674475744032984322730432274822228587753509762962416181386486308273164317814283961045285170247204544369931091491969596123166449749172257023204114384560938992856182887460244627628425471760629459681359173503663941176693268115365481828974738292606472608061586303719857650739135920131203710692552613640637547521216397326955929563834836504084741330480513383893177154975945149604386840835133442362142628581290853578470091546852370317253909552763162999060346150596849937091449731591408914627544724475038703481845419232698446298115629704278997514428060956026644523265000449913091208944520277680217117870888593111813010685717484826171772934184639764594051194274672608812948426172202757837511763094662708226336131581210055896055241104378804064947620761691658897111397663150329420362232766303716159387258225051271595756966650275581295439478082377705063017894078454474456992736262062958134826262908749002001212953933202676305570903675433754324219509611036960659062695088104628978815992589266084893716393360423683521949526243458816276411841792041476611916644985220150926093881690874268629017316686502533091649836319889526550734021444879454277466571047087961117122400779124566362110844025498292612906766605693022471738995058545781149272595035351495546986326102969934225384032672578832954024190377281135481271935122532180940180272829185419305617682719705306802896193458290225255983700372288533246950976082428334524232975563341287978082930468251909337802277850233872490423121385008628602574185498883237987678380204883802162545369310365215530385761076864252102929493295799484206715857016036421254093203254964202391043229024891839085166243569178811012271109306883750382477176115580640690642542263949492364013650492896905462388212190232423904412389455790324112209506045161662746300759421607188733757961009043472113321971915376511320420958239284321040607971694540417711187133340666370606661225872671004189070620621577435085347707466129312586892242754928378819601802761225303743387314389820739657657701630841276705408637388133259331753166602032321886146481812250188328980756746401173907974556082778755604633455372740209207528761791107287099144902516022581682688385570186614020197309079820276639454386618097874307793274745757208804275306512853793589047935795983763806913765678785362705351048362316658543892090744127169617729240243112184410649199093636749918838359561464266628706990808243966735241448941517519331279088199958324694181282973430165191847275620187848135200169955136488047200306005647505105960044132253923627957890297468036855750385123548724866454272000621023986924995014877671452082671624591928006498527723301088092552129406532501835762393069356130848780855014164436069518299262712985108737310331219157292054572771563088078247202823901613228280312668354045710244975244265845141399740595958341152655230353365989771645173166143443110786646029599299573383242393021032326510949335639154768813747091990934933907418449087186218206827015380627953277204394952860409399390023448669211875983411603493427305102366151843300470964284156276660151835163107826256219148728367850915305455919393909139291861347126683752826763431811533669554479144239588991355716552541584899165007720364692850801382290591990172744927030994375541700425283517682138932199005881446912197636256898793925753200167479648368715444590070915653716074507599079605689479893111264047556769313888847462113987020768793859870683040282757364722893607994661804475192941828462367841703356857257348604588308038334948135004932833934347477088716697723395949394942133618403339627215107901331375119355557439145926338536284078406185590529916854529483411295808115827629753592802618117719546866935277829030122873805464871132321415706102833716818153291788278120438212490811487776072958449772894937828443289031282725034566678694039254660348684040455512447136032013972637075323075364437615213996521736412619865658426873083539807896214000321038748854318602936036923935430760213215730965495517568694268362192770828306150263567546186459145961343763268398661124542879164626539975285869204983269425040721711938274609708370045426552107778743476924391173059895076691291864123190592059409641765466622887120411714215139889460720859536200821057378113672639505301812267992455462266150765989142102172497724292229714995043777387730307969003857702327643709482663303347858984245280894726520229330579171446504902697696989439147858599014668684267381291026510145154142262064076936570497143908374778622305267983455987163762066481225935489029586901832164349435516329852060921173982408356546062616337710484444793260989738372973448380773596964741311726403118825443596278448273851449888457256873663367675872856375414733490527448784036874111528452055927338267938328705287293262729044505821978268556134355006646106200260550505170122154327240008264883890387140862628178010350215721848042290884770871420605796433838413718072909082034256820764378665481603175282119190997806632352975243245202702429869884820031349542863220363681043871027060060086726995907972781334943799850086800243463370300585191461187596227173858472008701628328820374552360270716158295230504855413702703801190778783932000508873224461755976464368491853875502416316322431640047043363031304776788035220588909428571928727855673828413749317559635352234992968664636779662990773157402506564335429365696786588478011925934185145089786918694215629987468091287925707105830668198733614371767344996540528597830329361913878007757850773691203619307459424372111153173749967787644258717514570359140652452662982645991150272936498052287795320902436755470424033645783086504850529593583533148691603548716071388906195143310487424648882907316551588355312384243939302958090473478897902847854139355343654586205682632776049568719809726795244202669244471410203530210401691400145906498767141270958079445669392325524540195396992982341250240159943612095953291623802477365825887246859998902136032748248396588185301046484832026413300072923475816462061409928564630928288038032146770762323864018843756497214933375900736053120070769947836743152624928348899816951613749105674769714175797521653393037672575036454515412594282897588375036208843684647912889686118785547161959590852161355383037437541552835602112480413386983515221937535167827791942095972044223221704581474087466227282438707833627713106153639391839187305677653662842678857376753619746000480239658211204542251947883692632561809267590138059361806386006699507670775591904316951063977311408902183530070408905813231694737654095466417527539433147682852654880706650771695581096783457808786470051321836785292487796116941025460766081361946204504238115357923984453891498582903656421737439415484592662746406573202571975220310906440779638877772547522232012874969567519140398826952563336491095574509076197768295191458191251914661851672925003235142487872671347461237640048726355577055310694496688078396391746860416445141721483769550804146035874805934874920967100812152862607186694003800626574690737516945629154858983894702132383141648878486549042376371059750219277394239048645683794936631815068844981374905945194418463188138155287506492743387296177960417781822688050564990253854160762474016090601907418500683348239404734793476830057519006325846874163192212546765570838663183359023825068076358290269908795389964879766361726985745031808532495953604976463154156589836828496187099935171415403299900857913626312063193138448443227011288260993922055294383826645759341810560115566303843737211427365604035641753173043520691232201215467336877211744489388547567518213959420529329588120250207585355837412596311833584950524535730843605867312210072549572213698089490174538491609991787186444236605164033491695469230913280602379264377299107405598341097355556717750466693198613790062984986972409636331381940825450159781170179137644230551054580041427124242393045629319501858722474942916335904364498751807819261708261240844990509926116708721936271066609816466609517857449152917024925170544895047273447611970107132700360102520372189401700095081839205840350365683120907330485059128631496520513418725904242478496702578366135634285270113930291015458469847378727267196008962230364184008288138992313836583455040643740927550825859114493793884448619265827801041461111304200252461313843968797969954032225787664264766470772579925242261891009885672180686485526005881543673957395093315409104203041435064972561200401653329205765514994403754305071842502399716822886387606632785865206682107054198779736085822847759395786242931608638847886531177497082121809463792631433302087624989771177594556444616909115300484396310388761355187186233780118804151822550754931656405304849625105544191214897861354743908075682812245327220110452124598034943824518997472377814674433204286209699388421300319225989230532515476752747166726846280154690167973108784731345652373284433648842933112357911354236805644586584191568984453727473495042497540580992979315919772405638779580598526525072698504036289988104654678342709571434176858752906028906337649639479624720073391410516998259015168960630477982629264016723005454077574616370089444850792639546655312653415126512564877413504721220816071398412252157556275514575416736856756875545826949073069015174580333709043738405519406667712048998043387240139344754857928943378244782019467297956018759121301504691256106479600791008691849711867754251587978000242941861684520972175561637854346424541365954743460678496943037222836741487918430895257530061661858045283966027976577908890374700156527711688588983171957411180276472193581367344533792952962914735229842900147646235983762979556110272839553778547891799238337719668201554225122023188696520353031999218672591898802079327033980113380022806188883913692472855700623289267998702644113932676101144037375232878848149536428917417504699199521394746501050645495802088807951592823701248466221493687298195915639227601496827232472151316340788169925278363458972186270823541049838249794658012430751748203312358656980502679243665293984589513624827515440552546994351102354263881397867445582573721879595423813712314331570620518827025340153700600431875179529996609740993716317639360887394679764342706410847152435732046301609570657865841105795493705391950580234070873036038295278366525649707258065418960673460713861479215599779692650805128136515511899282067362071732144165462127648494026472002690774941801302378419434259917837522174624497374819947404340859352718879810468148920293698530520820656602119925542309882379194636174628597259109039825971529289518242245029258453617101000110141903221680323752039163717879269854688744896528938388251009449967015871055625918722274305692716086421344954457042589028058686447511022585175894989920542814129071808860260912758897316744006599929237333593967286809540445506572159455140329360853165357062696346190008606590006120394815659520055741097912390127941948713251714766128537077330149624195311697031738276048653087134452890929824748002232195738595744851499453344651217504653831521420003606173016164587821696389099677403283106331455493050873283314257358025775017934762695019817587892497751021338189958957134038287638604771757335169355141445335355216816851758756683069889265125325912576995100744536664312938425314499371378484571568391229246253294180423605943146514031893271012319920891046236947068992083220951961252409107349016392209055544383685489242821963524315342677418652824625142055146042262746791669119917299071584134114578037170955857389568258454806520765810734345948632699638088842140906313638662792771945457628265058461663135307406236475136902028802327697103109229142605960467557426431635198419304798804892517549972626872525108488806539326169129852785056925515656060849132098216090177747901128759611342894924544091255656402091334334372897141455113579723516941649665355171372849311844445059656349605035079022085968817984634890038055959669339330940701918851002278915295780881954248078909486064187257715540614753191749659998839643947811290908643042346212009198315532129091958330466821799095385009204129226299839369221849243374426823459238529104141543349980123187940348955762368509516169960481722835054866190519082145022644171588617093076742061763531566094217249249851637851137003104394398681765937533594297207163920824936796405033725908115685778344156930485259670503586983296525590175602389071438796751676042799907990335659882470216647530836153040808440323421069586744969441119905936561722268111936114102613263066688512338173745214969414334145613456931515022345200086576752471103765167462803904591356753780111059281134971581061490308972350260955167733927838367720563039349803566106165161780799780694602834811099375709241563073386563288826439308981461703441793886081122107772780665926081176537421369917769942240005123399707392886417884514440850397077702495417120609347638891082085283798876033076613044464331333982811231468231426628433387330005057156028936338664888397437521937151412064843108584255311919276247288185552652797471492158140540746886265400277899472330070391719349012304655517452310354200127746607095836943542659315975694752521769959061371808214186163154945602052250576061761934758490223694842808186123277465227623390266306549802069756355841659245095086974126979845068837242244704123975759723493752354869896325030859781805528373367118400204307451981607465608162150933469124611441196016782602446357921267041161166541605653374628856232724252149260830685754006331732289407847298010713506240438585721159579326830923442047650623143083669898275816718815155395919164459977285364819009578695746888288213296147650224266283010254440922607217122940822180201604656546369698405027709879934939281000524195492720968484523543332582914662867342014533677676337853953082071329797003189132800666311918818907694584056786708063023501284601158889118072546699880499139328629027121353923211941808753393308046385489045262669494308086854567878290487034930144522691734430486369628748535620002913669551292004688486943337111752823087370765405839790142994144169890212162944745995666351297262004269328432974803881812413047351242974751302354241392990146882562363731777209857202715801822444596218258319754911900623599753898568548309119086855058318074196750971940862331379310006028752310718501260332212084313910772997493525760749879110456176450765177835073487943955421903504570290733782834340646848823841530102824651314975194075058376008724005963747773027149695311189487783873626478715657751877511604813686821125657089842743666562779305193663096100645388920284274466982082165603745939345334417253140438184784200155157892927688026392653245961504250149704338497796591215289996974953632944521677519543700558192844852802232920603133042033624622459838960999144843256312590466729177194546445772294094756356516853787948187098325691693293888144980158771830565547109731396429863792238125032340788942855208848162745805874703430694249989703580134192903461531318296305296350010931000809688596323348915172049721904668031779524333562980749220475300700347862920951042928975485277930101527603465061131462894322827222216058960735312393254172412733687117340367876702020996071696256005344631163460145128417661381609789810600034493231396513132032149356900756190057615552631295321713862397215966987763282146561852459296785098601377931480694473544450834305910827425625218310303587315975538837964921099859260409745672244026568220658891726378539162786940589668819108862090398092847815034582969997830092250483408898405336469563407311511843187314722309559754186891398850300161169424058852303803994049145561255781563428662343859043695672318657658215334471267614905317343963679880817541302916371382362761812783296933661996248314821833927703499737026432770669539752414892868032999788909902250991915991366231981108448067460642840345879464310067681025428227053774983048858975713540443570104780626206719755755794571811278315749368462710812360925855384678155681354192023903423826208693366093302080959568738788146178874983226779663921343823594150591011441633106385610328794279715885769798357201555881520362010091616205495672576808496085243403454866898726160631623658615010305357557052640083829905692572482580858473664613202270192656762786317548746287903339221500582314676868487226729078735215212733868735517497256137880255461066361416961843903006314551583850925854362569669318159493769649072927539952931830045710469121094932405752839701324762666006630535089357759056812835086459273169531947585825142338420991764731034813815543813039876777210221852344473568003922545662602044113317870724145078569061140680756497280655744828595723939202290027186635912683400186412314571248804326835419024849216714324795260620954390387717628397747166468430742615207429439015194560621624859347445144099740461888358809575269920300663296870804224447510836813591730904023431665034463319472722472038674966439400819384863213281950955935639805627735466165052791652904589904832252378045295731500836932504318681515468253784093815690217615996574567705189440397037710526924175245410319119228596072017802290715178656804678879595263189845580574927612425219937198792117334580185556668028672316010662278811818500936633329958745653916045922081728790078102669489363499425125486788166977481658628872104020368883995513842514650377662859761658718923582328563627556787260708262220234043954518274160517264727653822698840247266262668126816231641089567354578387796292053189230170644282946683840373809587320657971229253259494443278271461925996793601506109262431241106750808781192245489367912441779031026375233157777048312300545476759069884945555410412290916369211487023191242684567733724966747324379438073374581456386218537117498062536868381696354639306614347125299367033270415020306496233880383343749456630128884195244930172193914565921406146236459469139193239561259647191223746749370166375085316380169790837306864730108327459771063758485899482000024301435239413268031902762042373210944764625845314828779644170494115656457650451360490098949720110600841424908877492444629166827968345162146973389353649450858128230085058420996966585580219643574612883579161743917019322133497223780419185264914895746802715031625904736791636546216167047519457820862456233857514168572045301918754578321573897001123918930392115009048298888777192308088982210679651483567490530535308678784230192091367890850139748342723779271351237503290831621318230271287109512708899808213184751238544482100749441163279224113607664615282207895012818069681777101880938230641223229427579026908479361291356613571582440949949806423795081705551423646891343000870480943562829624817540384611866273618350794578886689057806750899352821314047557143261828575014538980589261932035322310428198755332089753431170668335767687247739450017362451528280468188822371695028142559807883681618402821208683282386337489432717249160293267727704972602245474394781009221796850446872004481384777596286277517747167325454080147665755985112698294953481458292729983979132809398985807112791854114631689839299166704704160625627057311870321304724561582453680193549592739454705188263888056734264620784899037293281121534015609343112351170261000359634435044353882241739438074321842646580734532071088504227165238187648009735357604085132696547589152517398648309232390279904902795441630012087147315618959241648648309218755030520701049921034528494708808078438255858174950564117036316109325406820005444343457238900576496181405033510409903281048351424477069408539219430902483439399375219002113942413241317875448524099892436087016771758605551182310214801861240525760755823027062276238120456042944705457554128467592482616715030180290803956298729336696827558305544788366493143333610440433107910166801882942959149796053980719569608694392331020884672704901173612020103211791557886373555323906483884186652334555044037781385722472449937670250310169860306517743489039015294005772158426780840420029654851148925141264892862691951614624343907863210754276050591034655212797130776438679304940842800904692054468572112182051417200466146957421482305391500626481331164791670187189612252831448709196880136273798251253995889886959319838694246882898052969529351468602441228377628573905249344604054153429754148759657263654524152074448460122449946547478492832146955750983665236024590084625200402080087666886167717429818685781785071972159943806489640579872660029811666902904133177891088116608053031895642151546628052690662278371128967223114388361837699535112102113991330904778745872624286127441204611112902771561048220293412938533317937271175639101067077835679857764270739839544854842917548202149989838303711904842326168157448343049398564714686949753048158397734888979928146197694113592696536552436996437658982067513365394878312899007435430202758852625333662467208363643305368308305203231813479816617980807430827330261704772203507924077872353629034580361965586459718679113188272082641921948988848456648500680935941249267598271560095824591189587071423141241456039886677401682543078207770629087812723015316486696508528651414848847074946661277282236619282947192834474091606502547842811349719692709234879324802061571540371079312304681749407683906416218156505240562736387326661788718616184152208786554809329946368524911879204246505242141848561966553781307890748027333418061350576482593270495518274011606974110894274671337721678323845380202900941835453195368215015291643421648209728742523608781109202575478616359382848444674764674832816578215891035303956321792927253524611271334054873427610388205339197016666754764426946906394514876847060227810994492159190376221259707091140644521212137735260432756226181352407107104268678042543893674392558429032414046262528236895670916644535636295584057030921437715078128232126614145624262944057810933287105400095386677401245788310490957453750619138256562084172436073117713527126827586236506017333438844542580033034964141738661997835437797107547028788305385007650293454675884302782970364669259358045577730836974910351638259024204534578037356438929208558118593814653093532447115669339893679737605149688780628871781974820245639677302278299431902328982274934883541843960543283012286373680122124300039422461600646551473354410300016467792122586893672314856648741758827814450328497271785630113409960965211909676495559576329908474177287020479452641723510439800983602708698474376770364705183020738077805247454254472588939975815154135081553990635001950092810938819124783367422346085697360971796161216417523343637184425701459873539357677676473868155171975844791382499191825846781078007702776246537314724983385665456176562885423788218240172644926034117875286916613582874258363834883685967946489489780769713869732752596751825324033840087068186461145527739593494961206257644080345512937081196634573688864371911215803505150244226096993526805375897266457023540202016266588498356059555561198314591138094072568262057040374859796171386514946767746836817797938029926598918367856674535863532571083343530231268398313793669668242638452572627239081386038651941779985435880535327743811834152824737555570809404315672095910535216093688829014009398676416894169720592997926108750457873719373898170156322015727407834155988160561761778870473084633799413745584453595302968005526977762284386927735111767314588325743666710241492945009342988394071031348599905924221185810276668611340300301123583960634868315921420468507009908728762689190108435627021821225052605232906240612633358102107164872673636024979095333842906086679876065829723620165503498575937834833556570570914032640481537015812137976493850623675626624910001977793134042800415247130439422608214434199168446373828625918607304097746021990916577860383181115686244453460596056593350997185617602863955954699748844343456343345667798069004672390296125084170338537990538478151435124893508220714596277000198304509358556919206077803217301602024649855146497034534941986518150860526637786545420980027432524478994638982495445116765345489467986758855461451221373576900522597533368418895677747868226882653982642384465967784258363594410225012952507817563046386867334512445705005150918996914872934338746560219574982404151624801529632662751296711168511320743390334764752924967822609123301466280659185645395647770037139393510903963898157333020715297404165636719587617274762238277928234328864255558505304521062595323386199771312374463956713632373622915791221993942749690114978728862334620844376275402536641349613480965891534621766074520836211555687837288773580985337415299890076919242198506605653056161261354632333027800561987632174357928127790842326312404571180253110885173667622158910335767680023163929103547718989135652534670044145229223875643383416540952303693472519619039668194809491377372634670856456826135580873551486313591453097750151168308874749710830911842456010542277301398760528626077594862374960834388683458016077691651809673242855686980279933991564624114277257084867157010822121161186278116116727671014345259671089811419864362382850771724371664360517068353892264460168200803856423285012522214546318903430737425370177386103688841286805112011270319855173461459927574201330117449183364575413315968599458404414261400842780505037500710872196404893094878115392989739327900723065727459885023113415230788076480045745065427960121980226887201344414929520960202786700009852085514803086230457774472572960233438126185400292779787465381895642439086663741239347494203330890077554866949736104958808810397597254921616937202948578218184522972884687931401493001568030648927468252526823709774407464646357693313671713515517018679318395979036032657050669242021518623497200610265639735027733100941817341701813838181261577838169269959315634277488624807973069952599074200628204171938911628778435412396966809010727545730563052389371129455566254356009204592280842836231137274336395122552051955501219735574492532147449568433259502028457359156836352399001417618235152915168114488105132546101668818759841042399898732887713195219920273892735160125049154168862420365070546989036279278066815417520176429989241078056347157214042721139721239864832412906929985959602479293204935140161191271446572081145173903897057560870212002198884346926672543564787233031045368930163386847565530162930926655284992587619110628873966395722162505320701385939016053600547968145181157378784603554752839838549716908362943537274484906313893096155471094575866679058882689860162628627243309518651679926243202063317587882952108032623571461429091242682854966831030529057018778344348602104640963540477929807206202578931841759342971439503108919130018319155905373168093902525288191261186612145246574531433750440289810950249336790191204671749261730220967126594759685775261385720154025864927125402597438786771030941735224329854180144343030766459767398991702188164664198230872754076282503915206258835924886307592511848393466795088450617933485880901153348721729390481528764734620029033439142734462559240501468564132075264956366617993467172623379168520915265260002485870385674017643639108522902776530719822865788438241968617078062917739458899134399762388617432420814650923615246955399517533714901206105113957599264293539069997896119924255291006605400603679227883380723256220275543772036078423421416604900962475600859875551652594167993237977535936811329271096997562402657679801948044390347476739566109416391989121927582183569454097220235553908872284807844676284508498425425494898914342959188991556384209660266171129504571104616295277248774421873399235291411017568939402058254256145009700990211379463089126323553568330568123127583952214615658750637504239660535298547113269210850248466757235584350023207700125323338662537362915679440812325076165982895050611390909346415952876436090836750383236412502605174278738369937277490401621376684430446976810454344650700939644829711230335806780746821024483512854200629828348397961637891611741033275392553950576860027518306260868493471653370015826406692844273764637358765426870381197425067797070445284707901695525304769856869831212985543514717361799382458815900008920217921882338760417139710570971933719406035746393159553300925574287300585524625863204305262033878526135440041202833684858327710193682011641742949847813703513988540585970500420847072042081475662096662776619434517590944135529684647066461799083944855622266363765403787863024000154904672627319560121891096911082823858125357791969492302247193784646823450896171209253484224085761231753798541175367560451122597512709879235549879087549844359452891424350323242963415975724345762927206718832460519933937142514273022603199847401746946274010746118330147015323234361205749498084134536959062292282388067014679745291821540557210640501769364121221374273889579170094119414372587258092224185966515716061991143885732998020095206378472523142069179690481234929878005480411137826180214192068411024166934449951015913573582807032912906380879124422634011706935980632714506766753854154784669735599373390148840050436265590578228711030010178638862063129382784686637289597289004345372062683706375562200202575520435504647659016346755317789608643495056225534788161231766445329004399624887386547952973162445325650125174301520496546809974084406824376960681542901190243238070733112720298861121652135385327059460892309675646251955781118026610686765435726416363971259562980497760739930388817891556168925504550427967624708370201227863039372292842884347220414928239823455106539894623228881071870829206455764766388006923343394629715968160502296819984509039150385386565160978319007396783122676416881247217996485879318826751572794158163934889792921319867756233230961231546689456037642167276291558589961409387035666906874522910847660250907171235714642505750219937430139927724542371176541844019568423402689407231317787013950996226335692732289486509070451006068604560446093846149911060347631315231663643992257795396658232890241779927252107571759400943445378212644870700380371426601931348513824031248399816377542976515161242115056609647362740690621968763641992821659645222758419735419167010140107184296039103302432873762785428367021364277609188649668392213658707577406304132633431692914953210023452518673718039837545929321913555655037482681372575602118963047074268012530206852350432282015031573273702798364172942213875160429409389230688288063465008664602166178463513392009835011156999603390451633947162366183139375593466228057706659349341949888800142294835302286775802137199933068983926705400624352915709492187607391907801434204772844292539411695975897342027850030351802388023619428166408045919864488866969012308409797578260770789984611118134588380227029858306716744738484471185910326709495990856140805250267980115188398866616731730533790402549692243798848289017203532230233473852702052463114396351226415934728953915964892921441693499887640458481647920511686621549710049508679578492342086399576182954570047200791670015553867661986514991011624075243676064412131427781249890216592198631024782479835808750653326967664232293884659486316801550173370918715940496770213116034250613732839732183187121949862695079456553114272721029239263734766462805718439890993363610084568341328580987611742695143375983611074455268007111708458647811076948356305793197888432321486859229877552308318827859821578933383636666178356716062582244800627316251548473658666893867105395729192565709877050087922024286346803991561138448042382971765962578897476926471197829132866833216106707436400762547486811326986320545434023115334820681885728506728731736021793525565702415903027768667670403634421313440165400804359984385893622960605945753127295394028162297821091792503371119138823017320265104833959263943435538672957497187453439336564015076769067846031193846033259952556056026536579413376927839655041310372751278370486209070943612366919169245193608871464662593905888271878153403479221589668849305649665882702097980613046456814410113837834393437923680659584064834282740759104852570224642129860227503373458227180540327560643413620331915398463006567911008571421838149330962038482262626937659173143009972398452647726848453535247519066916462632766337050631759222000413125701308110516715395096147781016642553844722412773456122136957805682581779707613551187373854457308957998171580371550698805680816543411683684049789903825842419107076132628447415815604100784980100926308108508544551808782316074145840458285915624933780714488950332901540656934409911285319152190037565749307650245422431658514349604457629247123764642630715653501017559963317338037464030327084887777427296173401841754657431519642068074266914447826689667787084500663517065710295823120042244913031262304599148863070892465872008022145615722353229207284412662717131587578535767242853872862476108498805855856031701190852508856088343177136987614243897391341517112825957703641991243711221625166870444162691161357348758167528233943403318825908186246235265374614764481249589574817191412806274152874927046105325321912890712729972674255227464594929164425429144007439076638850429054150087806014667319775212147130159459353271013465854675734969649644491964474916613040124017829920184723690388711710977171026655366892071278381892927238938125540671830848422762795176594972316156282949201018219255497450449203109220049628099243500763263653908240565114961996159931804111459657921834340508949243552605349095927066602150253124299044738509584547607357397921749154636641746439566837126716795992593468639972792911904468087242001950413499237515310921914193189572917504863823832113988700114602662802583742976752206236576786086156473326256788058318334520793881586553886919736950731358256871511840031883177177932112037913869798276827570526955147169534461590950465643408114242315490678875943296214847170175284442526970593620024003943973865250379560451449921645350490131173706164743145850500210044866109190280678823404357975350844026576960127329827880380179640616711422536860675638517904703887199126691870521603662987250787054599266424053726664078256317789304942258921833832291770554514674469760358463490821071783055208386907746470009250840258786033895953173147311620784948431341923525031815535544731374203087279326171639081053271616562210426258979509427728360041363535109000595841414111486817725439060244319634335564788269871759215920684412985673485265076413561368754388306343479691932388285867744102198916328986433733478641510967691475381847103678204478286515434843137484162931496139681701575498924909769985794057575957256610818317927684397847254394079411718325784369727676080964356436261086571302474905467757911189414267286359040359291850781132304302993851420507515762812954632363058315187121154669178661455873110422798823172090285767833532915951007031400083290903410719189172737785113119795512290907873596734470611447376008913356165075630118901721379019567597574761509623334512300881692912924847244936805327987402901280514264615060909816322903029143835390858552730929263919402405618016177356189520990317237840278161533656937243765381064377201939537311549021556738698837582472598503906342160430503642301182511133109907066004883658466663169567324191811235212023055826059379105559085073796076784576244333540167208350492595039642784044007463457268184376330423412396301598008704282374238989359221447646023936890304660381019597643509007512523858616813595496239418922856968304557778957332691645749434234204828188914423586746013766998055601064952497759267986956816954360287860660301303827329412849775293987350285638730130356797744313081773648043910157394971116101115216560518290584853142370157397227146631614273784685694477287386404036781304868405448980240048295389237755349885746935232440163739606262448983795591588795415083098469818413753161909409048294154837542798061070943951829820821207363592243619888931986992858032157911850482135685066326571179754974378693198961864769290548521438022108725363072141279852833760093503371591140345151297267859784173460209182850989051829351962638767175548294229385824682813869555956453957452856561212368219317118664276518824939474677768171432216699796780511710692756105628823151003387587843092098985737269815565166789955337077754749068894150483702389042622568341611382567777732450542385164153833910710247520401672240591449493515619162539577583919703269616416381271838962491022657916236035742944827157799630477665996613112795707229670311373593686156909183014044100965797897735727392977382846396196906552257325188952010556150474363986316714606348893960387874908583507689599784850107056449814613868460714676302062000013655990501670243643628610558002947269385863937000242156587240728386869418528064263460588606014094987216874008678311795047056362935175396285997029483447966294377726426338772582014554185440190499654288651626951335162191787446893395777736897918252442803532629655160552608389680647657549403303898238084609959615152487748836893205396950227657884181130598403262703401130279179152506727560279678190309062285642926900962999106052084548545407337185094545336053731636708496768838942372442842799052483891463165779970171814185949582719612225615163091758794099534153886376128263491827035020215278718734628572386172973398821820689472093421250932967350869923601503707808206543025944990153339873040317719856484029411304168263536015806528648573724362926672133733121091643181933627705385316711752858547924814524377221304135223513073105090153920144535707759677042218297940501990083078879960814931149816881721098582809239686933515322890079889109753762294711042458597400360703279655242924163243213287610570716278384552010004798240997146470658750598264032382587080146292900438842096599552398088085537807096346774255063627798965417941598721789637573511609700151405315597360280630609567241840004068885964360321542402384172890146257993038039556143342705288816544993555094094752241862479539765097478253254022100381657521962076865889749845103568488574669924762708992034151338633296327946732399415209745447045595997948235927077411750078343339754922247473598111830322337687157408272073203940786644210733659371095987014218620298857364740978718393139048886325685046449355088604649723574383124104063913192223954155722955525866099876148502167305341995688827292249913857397748246951377925480542399000416189503278422265317310961376862234371459301270461800131504385201789868615494779795675656967210461666395200516785535310876012574424171308259735501007647105326610915238496610566141373712165952909917974719977388020548196644726746016088401043724695993532734138436429330345670140993835843526115403282685625068534922911648068991148386620062459426255010041845617746371480336680214273454097836648197879806819469338338466335235675845780246713190052342633391776754592070605857828046940310909137135327384685302466286467138534908419109838302050531896803456739431266936478304379162352390619788271970204343795829875170601876434387006003297726022572167272265844835332017444774511930912144412061986814055036662784907427240855391914682032622045242906507745054143179973982404412473762459244792862609043527826668907018324722527932615084295350119715633716186421556630847273881447427132652028861392663105554513057841229462769827115872136815309783205776247871532181690202695626382051960003357071725567073635913293412196525927514532580980323207051274150689666902992910140536947830176455160024836607328569675749466155208362910666998850590558967538096823735354650912816419861111653192483088565130535240303134974012494808156359107487942559634647679744107447059932625632043501160758924060523238280424517808923800307100931333155040154437781050106147947011986109581266565591797572515217609420475434381994504358681425049923153671146785796905725614107549662155979542659372612673576485018734761192391850798875319271660010961620338528260303149463403921220347982017533912028959520481514625396807884160771160470997957680574374735283180033290705409652148037939684993832409997913207065504696375256153550448181760057235157049789245820648917770107929800908590303546988970026187113847499927842081771235830708648931006701558219854325597460379921811711205747918864063940734010604959066079264377031755765584785415211570807434139444187937323655550710049401486430641171659974886552115149115887466131822195112797316418824713650626373889382197928345331186735683032457565371717210729823719934942738478400221261563260336925187865069112153122469102595773080599290862909904686919622457405921391818300452862543598710736111825279466884281156165674178150964074923998200755366677427533849323842570771637864813833359566939141461368104635017468804200911400844800090972399290932106008886017721768457254826916857151134412836470734271052799601988480875433835695848134031373052985769519043346408365831289646647149984031456638168335266899441625438862555992305077970006130067791608986698015971609700200493544317776869895471403462287517287067929368995564532613003482226495672951447028039734747471257322689496316700770759547201430656343809988078896714921291678755515455711962481300910478469920546366435102721424502474798381324961385722479225976957897579186512646748792777118527361781805045803151686298722680695677527675842025429903625309712108959243950837823700075346907804767201059025623758553309014134880438155628473420767156348882432055604185970328644735304499407696039730282898886285099257903763088305172563867153943949150156397607436901168717010151451682536206511293217529036003609726621847952538834955527851636991083580380318248318642098499653173289931815376571247318622265214333898911091172953223270500912305476140046340426474396112241781500953775360186778461770055719483022026718211918182261655472873572051572269148918880406440559429832608360997666590372492651202603751285566892652866019692138443575641373075306726650807586399830465457442154305718792822031415023093555083894417144509263676627003615967762502756275859906212295059294691769890137606443265077861495545128778979657631968415647187247823910265454683080803021510435015410208840146664514551443727667365340789636030364120428517380936967270137894536726996233734309908920494330406885911492439708253166094541313725238175664419335970710773218144401302033697845620772842445690957534572401127920241466914055359335162301508663799923362863789403859538777240060165199322509637043372476405628289292224724984855671871607866403791855385478868074229771737976233926932980412518853594653420476086979247571153585051199446166417622948439190159766436184677266058588866587411765711215810763507874662218255855001088986935154824462874214710452269953317240509472184247693923441477835776463635622398996517564652715214955999798278856164804002324753764146059345344758108609463458627041178729888585238512822063225316671352493224245690764217736773349374716180646200316374313143177721604351649542990535625822662115904881476225644344584561279879312792813950489522263434223080700633380818124491470933028060189187995516605762222511230047834743028908869977318605309219599682561239342302229140041791239205777205097138027106821703786501305643567222766939885701254162241870167364468849380094715210420548892314250788420747455509066097758574503820661515139935790066873947547557696054305845201755541381893972706668383718672245494396910764920532222448851050544480592093326125553897466472405957668698785666881086873784793338371953202274750194159663301560537720358475117049127999619726929486567564488897157701048727313118506918306659132126065543705681538955060861286917835935489859284916595939299793795864103293369763751801540840302541207172816506072724613435245123203328392052763465685060258078079589923124418411908517343508231148272761004920521827913927316170318432916057922508042399322191949460446094818453242033203789212590082605073252848235281260351046677229150629273533537590777966934397845935891070457499618018093735782300535570606601180337968861744229845153147829388238642612179872014204211706156641480781557728109693644476900139021167794259895348700006223342768083099807809642949839442869012908518309803650365701769823057624829848076359349439362724055238536393839065591363487978169353048966984640068007110212523338738782084056418560760064319208503828807070751077853992339431809123247398146779636980736272507375754585143294321272736836646372122522830934302315873575144789814363442479057128561894621836270892925711618656625675583838174142859304288354407264637652211391148238438859527914894546326719317902249336632675885403888817931514233907116827480143816171203094111399835833457339350779781202467295574917895405870247314301491744310884130357341597926147752511928272764637722834219790126046990888813312599079170492946795635802951650468689918024478455007041104317277922297402646910373326916108820367517276170881154482352253697513491055742638350480829775846582269965405026558053804576467240005696527002429369506053835680461918264563062873788611692635751502534323638048147501020106569458384014539610432043542832973036924153168736611954130508356872502138546863604972370699181050741476724886470808678146706600369013690461212777712917631459457745545932701426527275845101720576341558329099948412559938995286634825083720899571462536508271997319391289147184828005204998012926460154448955655946475358048881124755253224019437509877379821905881229695674886238631891177303777026480526963680371217592396441734802588489537392311040500376497888807271150472142732878121672911423361910907404216025607018941440703384147175144895840312290913467453807501381461192815259907024242219914798700870678312293859068421150666298311616348376193713309957219531222563114240789732945222231234364329124022142247083794141912339133254141033256865563808528003836150494853386453681090588587339029939746115334381042588044411316926035148065970480293319814438161935802083570694722049223565318482916810160341565322926638359320674342638421587993022864531327766190513190549147283067517361984479985374989848379366341251497831497763034612302818176318051357880799895757826233196794279624627007861434944210312949712714079422721145385380370552456554829926634258358081324490340620365863585626143634081847631338585262035524453997834767360901770663470563390711886337130206349163851617533334196878929951029919762756493783283844928705213129369943753820987871834405646365664367113216073278877883710167774223634529671052628129495366270757988532886937782795023621114404196133620381307296901697076248787262271780782263743715391236107680669095551212658976756135469951985592836489904953823324541351081050615068113313118795498264687359449295907278425578306050093215777424852886148250074217913972289629046491458542628874158766675262379860746998057186511921079841335290884304899613902691373704067470414669693110822160848260288825603904567799232000433909105575037493405670279136540427559455254886768799625273950092419201292034797234912326428214218697044310694339318373447544580348209137696111197777851212822894211792604975214899844024903073844928947860640826616850028077403514278820499278121485660099492575079438978707899339303171406733979422343219383635842042617662085701009602214032943909159459887453401027154178176711469038073508169195204731910022463337788186374179443618228785898569075614952841962234843985509227157604530325985746137050313913981014331875149910459710140641958459864211593592417642907015078427885653158395944141696998840257202095136524936601585945409239747373181020055289953634680935618597910131216290662791045086655554647558046236605699640139596228725462116600854402254491470899871634091959077974629116441425453333750176235738432002692076868510709826926670348052628212610342576621253831618347411585140394926807423904048001915437374140538615760112082610512319596605014792941792427864997007143887283869828963580150720445850242063301405186549317080179095125359039081813733036891640656933346328344208252121573077572610349178685568540725609747928815527889363683284206243831806969720120368349496605892842552591672924715398640559445288543731990389128150117551222124894653486660478931412100374059091156666893579381738682255208950495282758256146439732085848421567396014211741755455102849612141316101794000028290194733384759409007142683845429474118770160777626837858287815999352060148433705669184006806525848490732556085670965744823966140131101441701361945179496397624469575782916495614763083332799997072824838141194833536865024231181279231162239923239014776065599587883994586131856288054172686954499915317968476301954886011369949582299607321820174889601255962243917053986687362633981631730705106266534958051679918147496018153457417657720573428594873903943390346683677588644483509425697217648651605996504547756226394214349359614708144823856879058143712124814742104244865532687854784858980016755462477376067824704700203895993167397464810438839265736853048341665688767002373405610799368069333653826063605612173559551876966826244519426057635678972826905539865205911537009062579857840289889682459194034509895277236117653375561586775169257745191410774365833533834837718848837956447746822689211577342286471063133443592596733829593561815873092321965400517019210657297659477765379327770095905285400374900290252942190584051234942491447147775656813513283091524276394571533395781620628055027404774476330602561915443310818012841956734694136984434654849392687808135326710661046080313024260324236974726558572177107449911764558526371624645398942840377130659392577866573679757790746224623117487916912317220877806882104685979058843335079794855579366677659494626804922896698826909946942242241982703659899595175592983560795245317263992072674504020054686938616923432073131123654604540759021683710243918198635077190366730274983641075140785784317524032849108833123511511467378355909612156537174596003131081285368484488934363359565932573716366934998379197207219820658208339130159579865783649766339643785436820462897643426774985770011073672715814434055027386796776987883263232832192770169105673402542559837150924534126275698012009192655080025964759493331885483273930820868731865080065197957042275409831890247707768380332542116930594308211044961552717356755591945987195814721141917699679948377006274773402957875644452313436565657195909758913195373427080552219353181050619867352658216737134293522123445647178632978482535704596340042508732116034033913440565280238615041833602420220772208142227175995049661461149920680870933171221051028233689022275756826434289987066524221762409517130228437738953310539624520822468544102032992287794000565639958250413800299527609490143226719103560526778976330086931652166799635856124272849050687055085545785033136501183428455759971026975290959851768498912310114707906103002274539237006715250836929785464446090742927008374747987221003278181739158966862810765055245621625492718244809345257360506662902574423587203192384777373631637180602283762660273384111082442571796901513720855817891100309541901055514812452281466475414470261033847686429057816974133827635248562775580646227120327282170784582677846631052113495606831800578514280228407345131149481705100154221920144608510572388259960149548265529629861154756519296980000476336889092739346181561217149602796888986362302021072349479792529485721111581580273155758565913147326295453058046102873856621820305511543591685372239034464865247715964699408904087709087470393710286102611037574759628914645769985127556164027936197984949165056290868683799319299025051750078923398851061055992211153923409165155521103343395562753134169746441100861399454187631113630116227608914452231493311490557573993984865952865380854659196456905407277204318624866277180206401131006314886871264190307501866775038646237633118771771247017319057621725461399846612598145266539586580657398790258873686461625306483271003320979828001816269068567262738641084355860012890073992123310632702660302940481909536739269353108727591855247957451623100232955034384355918753024882976741043720094315230470191781937941402356625264742838248195379720396883649508861595505707856571782080049451800053834029284304301347390112616467509969793606264786522336956401172081464627609403931201013218692835932740893405692669533790705355658721790598282053388988226871765449162822268500834109859051009247274675686383712374649285597655996683733585908603778678384765170567094204809214147669608147447902462379166913209373817030605581058405651012362955778775457549059207258299009153374983762443792069796000743621028879865556953812700432684318421759946055718281372270158963574028846944595069271677654267606133090727541240119089333760601285692995873150304477116859486987835572385811334366144144423003118101570975063064453276783056714849668046316475548325948346836811145489337558288128067409180771025855135616250718207982980219204368341045598753220323380384191237084690013952554031776107156260679413676408322628785512983505497911303342631465200776527413143486984890849087998179874836948123828499059059144490162704987525286409549574855862196757060079474770203967766912571517553274925993959043878074010614427748668473563353502011918196396385959058414259165223565489285533229696577248169858874015274139540352072841930086187498598966273705801777257740548545514138532093814587178699135436400636887305698657212212245036564993752385709349540842213739332468696847549091471544662012189428832013854879850425712027379573020530491461095657934769323192571856398164704595570428019799139870747552822458465514465682571617271052176948997235489663496107599462808652628132966649466939425880539234306544057549761953182029864379190459860574484560861727967016468602670349056656005039776720649034568511429793825419716378624721306899640146223647934192293657116174325802634135159163457250121348728044923544034119523596290380034480793235651999984582667590763470691385766216926436379027812340179323679265659565807342037156713863487943301855146846897101939590001866390662316954585757558453599101489773979770241990926685649955251043235622430582716310788338112144321566256486968662361145129782806295000418911398412214232016791881190865185450816998448006960626717000872179385928792808189046129298051866662618072339150006201609302047542937639684112502270494100209026306755977026152178600618127079054061721350837310994266554657808322996724042500531298512034843966374927942308129127508121431477240830398857736913654437666690291677431107444438280019197649426211860973836628415611861008417123034071528596440407183057244335884239080109990284835951599125585086201184347507647396299050770416809889535770972628290843380949769649586777657343188657770513167814125894113298913198996668883330515906135496356596355443366980538127969331404650848258453084549196743928675092562769689954263935833762390036641019060457913003681184154252685077710935671087405370475417701457801194759887883666346161048289530101487133674190115116508345465472656313060597545719505624304018891785242407348639564906935160946818680234107119705275432763543780724318018498530597335203493364529471738616246772719850326294352820036914219736054754026572942819117837499930681457916473838334396396220125045386251387122918033858648675677647933298809920150970755861549355831820098875828013049256324015591925500614784968873095401717445914474234919998342122762978767819990795683259370243386469928629807170004006028210683269492026533910263798408518798086747225409833717901466557290980110059035932510722408104914347449373770479544991286665812593801346847763233285982583489623337628352396773475803651152145332289942876313490603498223762996488005040073921331740540975968558595025163400104333759604920755938848915200750358577565954503314489732466515185763936666132739774564641478258103982000018381232270231890791076268375629722502287285637797971590194050806803668289420123032557813864927040558520752997276432271218600188112828575631996614190963297991444068857846648508852161038037069945133652029324110332007699350660376373585054699721225549055592616306647728767526610327363542153865736021605783071850524155640106104651172575122051674577654918296187740195372078444571030850994512072985449418734157738029089169308048935630100948310875332438169129778743314606949761837328598061574496746030388644101877298774883127792948210103818436197424607867665505202329776021961808558842342328991302518405035960593105903421074401026780234420755905140144471866572077434282230890845074416214698933583415335000458829626592574802672524819222538573887532460157432163433267823873423227611221251031060709307515024215460800521151785138217348773626256040038580137508888704409209688971629860824993473504411040154956455510565470028763875270149550605331654688947764244904212802226499620805232791341648998771433886734243810844638046885353023268927678344343563265887729661314814122802013136440290524350366131714187198661749399862876318947236888238071379379210170756700999162645239901559985617986073833341260453230129524728617074951475271140237799705289359795671933395079527549072579554450066593481438196007045998096627366279701256457367569503090711124984257498902682499657550893708148323499230270715562060406018569526393406540846341785265191208088079022886916368208841188632857799005201127887486308467948334190186051145485063958956656315183890540629690379175040137863528855545406656466580923934489483901995998442138604260173837162388336945139079718906843754532566401455907809992266971756598777095603656567791584144147140164587122013247465288339790871860096915975838471695714939642118242595834169714491108013605116926257139008987598255246328268070985095565163432618185200840935591014900037105945556120814093324465097457207356645491432787344854648623521332966510890245269368630576222575426432900955443309652117875115774873581262845017165518271461028538466060456907940263839639095794735692677992945130545968299055327230112874573841076509489461710249137732278890970656744683275598483259847140455928141426574261515371426375620734203493004408025565527118987776143721779020758599432423676523721106214533516134755074217130034778322761345531972328271059477629308721599376880220358861654265204089330315799134380363923527534698591199245423029429697348139881490692234018243460177325490672228031394021930258564691448181055146417673582412602150075118008342565329671839522386101419708126905186947187288309716841411450414915977305459552440225577249604325434175396314007909073590734654135728182702217862290516383192365787284581960278513703269095534233902502081911983107895754479551477739473432003402970809800514796640204856432693880806728145383646482688609707192929092645826805174411253510123172129800262236541519921196421674888840202172096470916526203942290853106525658876514745251684707105020024142595066624167829812922143354249724085212056293735579505075461411997734260599120914913890424567096854850202449303249128904568485504347335746873656302175261437139314920005831619461689050832253855970473361042018056716355935054912659840699713510764304148954652325611865999561982190477409481861337130364896509637408620264132049596153406162333811072894266606280596669270048318062310239952132606994245231100864265154663982924737115763207934452559579309428092516359275375668819235502268781634598425931384860423789998923442407814433048661475792731513062824001310886738553558127178182960366707323275875397085719007685618238584131385547045743704600603222893966222985882032627078876155263527497102794495341142046029597169046888019821562279795868190236375397983830954134536245327146800590552753147847404146854421994112336253824481836864109853074707240534731418414040386896906652076509989646900871624139459024085787766252207727312590016313774389048093755510512938921871025389960458587838253825057470172157172854733428770380247304380092784030952047198325199086122781306389475066612100449915750569462833627969895441925124547532984330405824499211496125172956706822032437661751074668373972245736269774337512234416183192307167295328451503909869887375203409471953220274189826535030246375530446235921311422721057751985364251677755488671619821710626854674173406722310783413417774848789708438845000730337221653812633533725475710417891765217446881181223224535992003427824462815598149141577414410363003342864611324684723568779327581297436836838399918037807104395784652027751248294023888923304218742657028678797867536777506224741200442719688122494853136095952201289712639247799756953774147245886266816903942560391226912418933984077202417990037603946367114100992440032008469334590300908318565320486963905327874077353632764829130823885087061660817737462108307284585792465320613334992956240695671267470374699734349188444284279155189161682484562093275614361083384792761344377887773581749482639396424833135386931479090947822101048112873225499478723892265511076242256858176896334015077227391858766291369707446484355996750698459865877179677114958871741508419348293305175652186966505543445617425268876331051511088617782721731036638802156140272574767309241240410835460612024349849159718042277415637763986953475791782482900722260802776450791989577731841924437225240216294607647112731139077415642768598296192109139587863881751229526392258522866350998742917140865307877598695124102342686329554552587501522875021224640312752342963840657041008812923762067840036634787141861949805174696350773315768070909997696462387516703884329057421651877155497081347570238331066346266989598738997414854527741801104857359720225618784224290988744506500877988297758631064269940061730928592286551114019088514794768057056987091497674361500320542716775253710170756966943654686502173618914948848247066050956654671673580088033213624506108751293778810085728727412510841263096647581317278784527562889347377051006101893296222276604190946953495262834050889219364928070289218274902844964117921372135005765726064986326710520078394553074959002760560065953746613627894131781977413007834994593727051874398039282110001265825298248665453721500192207148270871002726234935892467003434088683076643349147045458932795920446705475056357017252567386535512336469324120059969232296173804477582267127094537433481526592894723141215078065983754466790415967200280544300457396957533879298777911283584366109825198275391045086442934394972544945268736052321180033396321062025453302460591274412147703379175273373704537165949984846606112378356936960168885438399863877322678018369767691074766245328481871108315178837423878834627989616892510535857934459208805272108150247784798394190695863926883497182872393003179265926726660923550069913179016687712110447598834461733605473422009715678330909723703533170256268608790529920012894621601403498692792321033147313784927904244640884361930503203253990479154505949509494026823437370893162664906189400486708319143060554555098381504371848671565781737851712266310486171673889587841682984757327990073512440157043199717640752662995460305787260992378637302023588167869519964596151154854068626142401147986100225914951663747873594337105402232070277352584170249517128991352900428021278153717763906197127047458618458746760922584924492814323411403731547779119262256136808600790526379638316911940721336252713739566092697203419350917205978461042916214547122882524323274970850195410202240015311849288729548790779798791424144451201234021732279354712708597421757462800160465094042094020071454595506874104306959414578672075372756915876178697633592729912836760086365010557881724852432747828863136568441670888709041412609537590488129713109473299535107750563963063871880438903928551797529990366316069245839307332827729158082742960322593856114514006039606913516489575190356035106404884815382774824094991175424728744577871168926465003791321661089110271639913256441459831180169923091551618045514841987373851975039426874532516488412993099511896750709066481768934121867158395276508475882870778503629851721857996251226783408869724688173819463289353129213604166185458562738541534500056678979541685491043720958714007003418620458706711583444395226249969988756785783278166722895898644761848335526531201972165315857765408862846191954194404830775591411411063248164899264198967985474622727487156459497437392060191026612245409653615627619423174363340030242419673745997270378384685625574451388029391550762314792868520396530766299686854913380719344813114424649546812368722423651528658325978626271770519393497110832273607300638396571934683802739532746387194239999726119396969108729763646902311861128886542574151848864126876671770603848295127000479146691382741067895309957056881618329436449229127673813144342739251028659022584038339293804929549268679372098381421668323936200592285200435139748704898728467609075013199815691739594578568891690521003312358961360092735077123148724644440921029392441407570204699277225805337294427066223007820536340154946284527444237014942710158293548176133922616381183505942635022398142695469988318976099568660622920343995165265352566475661001757866934429156884549865330343498721748322527792487856945401147443878002564720674543082246408277459853250244651043121242135250296813555773899478874159187700253844345832365185988697679457192335730906598318647275891727241173133882461737348906705080673904297948910336420400659157632430880660654458079562964012970735638822670720595411321917065187971526257949895974376753189396770892755125281422888874503548033543990198949569266735180400992595458323934566861314912737677251159751274332888760487090922858282471996905278755916252424928264692641262978479492226942696214654019175686193594297367215567988189692683278261300852653101910808889520272759779918154512778007936273709885742331900363234597758013236831517691503362918642513181151442461683769913063374768164314149201228853006362481804401349474247755631243743659521100631224284180747537737737866000517816606722759631789760019452944924807980623441210562559418371814479773861470080739837972472046990671986907540427885442028541158114491821137109169634138266241870600570145090662902914438595859522615548767973515157674519960461724746992255064054947081736927623851662976456330212529368180755938374900997752447575066869817337534097768831893344268642017735117777349598458115536973821987808742611658246996128821033177297189230621595236432758632375342963452115586271069371313551349286700109859493409331898171599794846664959343031488180613230971560289007234124568869920675048985961065094084833745963608147018308569385862583853002336414694176888699556852026927258864586299937546446251681086900136820694855569796575975634620923807224519392115377645560163772998735949871011529059239037234130688234225610626981629644347611686055434225021971760619112285322191039515913613020307126944294983257886427329466461300134037564392669067210652454731925910950169145469141821835918298768984711708467413483348352941742055206787537670055765833955561219786562994605263044880116077849746098655491363034895678027277978632474432438175951855383363768740835634857737608253445212300080626350854386786525029134771141179374096533439874858803418410603298593002648310704192330161793645323330835942067131188852486999441660113619993149510978991807547629657521708631518165978951676683117391746784469430268971051660722857193091307422446348322848420549704954541855091935157188431812371733855032839966313319470904732372570607529753912263228250892608452446705923537674368563734930990862224410771210240876505835673730959181951925680875582598262498078800685234825359411194864264698675325408221613758298073851055738419944980414614670517264211160235030830807452987746724073527185040919567129512249587923824298195166614233789640062005508519304363257464167315125941063135086466907802505301877110409147918971159953164374806674315862892250011476243230875214117889693359095973698478695983614775280853368158332976437652381212378296932096800243980937871502007250209589923721420136173717484538582299218374471124239804963468664776027537611442135669102359621426315288316640965761506017229331202009229636354677489255201990932439495775332151369618644687278266170970624413621543356985997765761118830881403804316265190274520568794094143979656211838100358980804808288767717859117491016499476847784026804310823855006167702169192665374420526873582193047503013602844736013637026173241650216205181884403177364351593786952706238604600161155269848742921978464372692158946645708896213981554557589284001540200894662629804014175082453313450840026138339190574256424497161079996637963190014710893852483734049917322643420569862170411358844522264040646391120314383850942071408279965452191447286428023407229056007782205322257035294405242157559301522283010137024282887079066278210881202403153331195598558767350748806530301175616966419356023125945690099783048697334129740816940357036908887280226640663921302140948790816578346866326507593264105425814214444856815589048793075411356349128382268554613068733068101920643190897556816763741960070227532547114305989166034435024693486192322082580322349602095858112143409143507925904860754085563989937099623302660659326290503854704106721851019961436646405635982265849123524629867714440963648882263248561164799208099604112767241896285726889489479302873262554930424261282488910242253868754466375366264429903939522549314755879675206318487870588320031499471073602072257090293666401999525941119715545422245794220330986486452034742175950757001651019510241717319428325716574917247282329559215676694745216663038775064366762607595222836260491347380366858822882368821134468372620975056420073867148500929282282559578309488918111715399084876756379527119427426423295257080970950687742065293819251374112668704134268370878581036276658535217262702901748804123185963610398002543947774570500322006796936343911574573625884936644262037551118824257520882532485937786542707222173883782163055530978662743310810391658621689509639081094035028629448890866959441514586546632402369712767814336271111457686055593990223481709803839984090353790891138732243966318261031461851924211481547488340082168896672126629940670263764987521330247119218241772470551526252479833354695780280680126596719759333646088894708278301874736715013802617959085802763971339006790946614888464752293331303354974629144419228313775003640998364260716646104473447160313985231882729163253737506937590849015507189434500191658913889285403917626528991211171954739987186708070319113593247596076825362519820700111419506264327940868203673849644502385970358691862921541237822442203686168491518894733068519610213101158558538513567997263971150231319110201768010664405795404954207186717828700136239233450494096116647643249226444122306201080628426503695739888791520029021010081783643044661865013029149739915111341662228378958277142481004900791685759253466290137333274061404410570524964701585837488672963456710979567798741311189561910629697603372000657437683918079019103759436274792977234615098248107223748289155615252055136563555284224969303381992786987734203855676819863011942702423466202223351836769508099471718506631691101924390220784454423014334765077576907759558346977358577576169096601133093893470492356823309274551656450620716995191024827103165220042793089193256711306535156703253133731717091987942206628353546671033684231097564374591398704463164143265053858112207971413667366495816469685452705836739925291461752545755237703009487904362489358444052742554244308429403771632492360676290905962535991398673462285264215847812990170366803599696821194296646828435274340422178050075134745334443018863574792384467322991502565363126616157522987625486129941415073120687433114725147136013960108452098072337167042293889164158564142801798285296849094590311145465219091595903198899738842380109633879363155939000180307934784600644686591466437379185674477002467997138904212364265536831963484758714649741994770370251505388318620781107598647927047508190000453513141424087906029702725786189025669409411346109533440161756986022870781465667000737023355082885975971194051813500788477252996721635130910579728776119834717760676452718770843622316494592731257172592157999163316458898206129487164421559608733618903690193962954488758609019045363360635503605110173455894813364412222480018385799308031540719248965743159573701922856982322223956098384569472745795436965246235277396621457153915686345413895529975527643574974596539420206757708493805953721462468318359799820219500819387333479513115547372149107191617826920764435742299049232741350927827429029264770194804613493427574667455690336728771852904028520112285777068601787354407079337285650868343878480349542002730235424858150940251934962021117060148182405146585028599893138737614488518557062427261231713650683913540995232922630666545735278716785127954478975577132141084471877007869596451529765467263389516020717304615628652513853841331677037764486095944578529725436687157293273107038306541041211239275128440518663416342498076877844796165476445608209083629310016399316358392287173499510009774060350901311254600004702736998714918569858433666759844305793131434616596879794182506595964896323033576968787355248147215603771165524189993837363245155796383093650530380524768151584327145974605072936529632858396412985140611501745219197067161232016959233543533230140788784858794469342776368161870268246830374450828587030815842843430225365836410111533756932447090330223709040352779431517230259679934351999069792055088978602697476899796180021553752262245017318217934065317740082248305743406626149700683614879390620689928503160752112255568476683551180715862006177930438072371592839614600645703884902625547460265274720473626062646746709151829877902985688438279144296330911533567672630948569180905322836567559593947955476612408629474158071319195020141699898059432983237911112582922613919760055031938401885693264105861755801322548888511151867848454036874681622825074186533293692132251854627078091739459233244033044214579695546960196345988581711086990410907390515371092285363066834929024430844227255519591021585590171243670844918834365739179600682482083364310627099956376301744226142364717920076419523524012617028593402965352180771366455625195396274849128993918478285226603945564658448606523058287355543668985095208743836094247769095741066652203920603197129835536617841782473989751606972602681951379567008118909607631922935578782244055024933773146291315259921528711797885080720187828003704966198186014146599307641667357532134714784169692909291210421232667043176359701488859003094646943050756853997745379756528618983934604160289172550213485005644445893768201587694226311564277804183762073957383168711223330566902546320760500717571875920745146378614860535558986001626501837653960682846776267918143428434294518066796119745645790577577614171441683339130010622845855210388983359334405133619613470263642444066760383572736806839254489474551903113426745425618161096060566171180085293553613338957580629591620015140182536486544320320506638286363178379260157907905072150629114523452063937372209960217976035508158812334533478600302529726724971601057191352876829948701559136709448833037360590206336889697262097072318313578415783008799387990163536597876477330082164060552069079166151770725493301330727131442691715795993270875579498721156052952117955603511157465161132448709704381271384015393415507042681442682739522144128834924407020095697953153874019266307414040132777774458062366899071221156067886667932938986436397797113963158490183774165636709920551143540342059939774895850389376792683329438907979113985118003446376542044941148005572182254441270860387098003782541277638231163110598865369547212816346164431213337083106624289586282487731190557274946959943378187311246585277527437572146965241674850861127943617979976798953989578830113169678856081702394303977356094558866946614717029646215178416522896848825902198931124292252747181158886122238149296567205451882709829878292463875717164009992341774799867846341277846468448760984707505126436710639322298629869706287778359313414857137430541111260875326943398916177540231477729961579783677483646381170554977608452692811410854115182010942032846929289163402976619259302343185158000694150971987294933376220432521571006889661404912480017706833598938655230975958917980401343436161481806521496218471595585572756382549514575458060578683689964415259211812253444227746372342711377025164494038252645644156061669376136897224343211017522376870551876462130846960065130601979610716779041501249373170606073601116394196434254206877186848941365455013888191834001810018002982804675033947471751037292152445622595700808863992895802414517963467860625615547408753373508943904487891871201575515952305528073703899209336948681139701014064676624208954439764865303425949116082895481028646970033228208159538110770396305160714677825061203777941092179364890851542994134283684784679343147251002612308544361268039912945764229435221225882681354083894017394736197307861144302933963734184747465677225904659508704932238685864557831815581569151448062267405675250282097639184399172594335795223423383771417378809964382785195879388901286591812893009914864823435464370604651832681893354910719798018253497005717885252195440658460348697546603215813307996486656103595885131186590308981496504126314170561305636802321232970488033349165468893044853236976315306890377296025786899319529675536740078079842162492353951916361994180194428592490608691377776300170406603555650919129237234579479422024279274982003932541750114974216954283103226259552009754936917060882545760784153348036758715048793992176247112250162126695990344603136739564399837902325827983801203849376161011168686694253300005750422536824481393469122584003827412223764022875385616062366233255389542664527910861674198744222758294189943981030393813929007499192032554842794267039173039542817507482741896770783364109920834505868139889157430707893303724188322965825084788942795086157549621793112433762429924884013458342735070282215512195910660004283314045223094646769049332025970007254978905684087208839735045080984061002875808850888056680810664165075183210553614869022775605944083618828782744990028185600606385915916322270492572478266721385367006319017309244270368379222076993538110397497262377248402462272742668755692996283186823631746993998053766996637938763608207003924176423534732450436293163672828988809741744864310989453378545207347635321296227174765236191776109215848136459261630283417123704609645623778792919406914724774471477279156069177498200782353173487827927810642631762708223104940505401131447252108807414743434837381224502039086834989374109479221275838226549799776444864702106233904556765353482065263611023311096415289612411585534734983412540459308925367638026591428164590897350792603617644617998987149797586041440233056324668094607348713688797449212837374941484418873671256037095148347863923212286033268473633720066684509074555997103827406428426255427023109852319658981703510394404205844628483515527112857399134111394876639087696839720336241920723981426382004253427148352984075834310065867215638112304041388175827301294262014858143162438249549080222913283526279937330906264268916843094201027275123107522313877457877472441996153222836172547762164875049296520713664445806893974621097175265611878934985079236554204964590485718737236871312728095628070764709891537795698973163625545247633449398390429762170470359164295989337897800892764698060859455526791265645743884858635006048277406450253879062853590061523618717804811507225326347264518325011052997378495951882976057044996813136997860149405839957965976422690210974828007339214604444551440139004280918133421905856158362562782541315077535806213715715141913555982181935839064458531005257482652187844519918189216700217692012082503846038699856525460640541893044702912667031489120106790584899842215735403920355679530789812849834537554525321254734429095482338597745930164906524909801263353951779393750507686990412126737624096434755581466523837717622531622675613396723970146944904131557825435676010733601144542990119746125552484722252527720683915400620697838379496403478578591529389325971453540263057045440170567821997265020803701793244750316207390706798071936158692240073690730972089606597294503190048206351542889308217708589751269087632263098910666508259919851578702435389875381392573299852957354765786929085178147458216055646431508122774964855919939353942328689321608131347580985744487561134302711848262226015148085975426664319968642200981354298629742527407190432575571745662774388767124170871980686759834491005058358406966519630188825826642153447668843516448877289595791879249760369809201862525799914858861080868547399957446573622266605166953451680229189993810104130759432604402759164254070016033302695133538461648893910106095774812835503434397155866582246820092288244660537430532423567495927731081462044663489957300009912988199020539593815568090048005867499517932313280507663162658308855278935995471753356073344348511062651390827866662562315660011737114276529442386699178454034060915949604562500149893470324564526729453686442835493738888781362369877865011369731427119694404652364910163744930081308649229286467440507098045176202439294809097022174810024491716894006256383258638993723795414431294628697910719247282405633507685853306150444491437694112481139997352457604258336189640422790934557474723448604277711277212227424848299978781571114576708687205336818118238977399732935117596385356584373836489268480824130777565303277754880876649474338313271101606155253018562440494795371573339695110854507381687591130070190296805608607293520072576301334961678614548152686134160434083523136986958817877244651797842808383839874212025032130567288797138215361580249752057473609680699760813137879466282820732555644557603625515992787036641910983176787839629086593498769485796125062337712786909901392752004640467733063854625009255419984541494098650412596372101518855601223085244451414629342576966597949582588952162196280364838954717873830116254316357648560842392657178693634373960351410232591179356275176964769872176814982510424123534316754068936961055695797613284899990468903810836470890712151271153790399104092535491604039024200759492365542893636777016519790539625312169915726602232851844055916433531882120518375324847488232488050696687981269897854964093062305091554104505108134288351090506343035652243037301741783446865039249193506299544431950928406805303343431860648849481362341554895573587223191515463243769934001277882758299571654631887575572547603133904466748513895852726881023911280021918531929394865879929058993431168762062160169507493884176245448015180456602229024053902340544116733688998070069287801899653434861264868344488058020716362216864369971725015220688387481960915424693949337699675690917482132631571104040225044432479130713730587128001216242907278370405494329253385909151891979941820954825970890222973373268108350767997152773812571246195413012352889535859033048647055386002981541749160873155656084710138007533818653956957050450633344894311858748405403789747488227792030871160108619472259683333844466055187490298476418832347779028943236374507520856045009741626410925942123506263818233583276679326442377706282932048615945478386006170349320011736174824816607706939889569237960004198723640785346122320484798888650655835161301941019418852495133458032989574667075851402722915762829947911018923189055945023820141951936414634678478204105988330213422785846393108935544911488090387560760865695639422707782581874530219883980332045450999136789918012569811554504797594575063920383431090090920970208060635819834616630376895154509219812833595140216808856679325261011405897078974490008662908136636354592495501132594272999588908780025635351870080785229532377584026199388736409962965611245146659246463667688763608379133981074764234249353897429860025957676785379094499784591245970890224051449418015696872572878760208824544585892054872628993307564733573112874508704500186533741514186525003272794094817920233319785793654103909930215159757979298322141429803831555379174875432306657147054571715469546498698333129586348416150773391959462992772322337375601486634883956904011554051937743723727845567005610898354373133535710378762684146278086214328843392440982703633386410907313882160344277856321170874824671873856743510893664607483182232863119011293193565083146185709339613719416551769269901614739965669422411900779393467026093734540212547223885157556629688278293804076967057444419351666155147900758322637930747109435749771192661234650643184212043792924530935045839427552127494515561513784460013718682015070354471225690930485284242233989419379717723567156470615791716339503932246197731099626901413086773814233510711567899680908333119028134613070343086024113498954360116524181727911566062875388291547243504557131249623440558059061876161870754197714986652628475159503787340105477911582087176419338568252495718642850630934103524703396548748904944065875329113648964030010462707807843418833342639864106279275243523720408199045343908257502653977275399104565956994795531133947873479940883642268952290972122807385588222328272773310560744413333004666348802891089589314239653431575987190722875916269761859713213818690903841880833739331121656725560633668168404751054267551371327391042693588451932257264615478334947276757366915897636782061866570770810676320705629758226572958117379790515893735174733587711240858312582910839307391969467809398576672490308276518466086512947083892857642486270558140230611463780575062086836728096574151922525928547417331757838989688732777702249485536788271109659360839418097520347774965858659938509877730820136138614041357152085859149627780571729293553253956265033726066843145461537768171115867596017553588010033251794022182956666325829177905269620786404345834770130486392917466442450190615713943797547398345950026572157992192137096302772181001139635518899920067757860227260160724468715993734574938926887138598378472839980966140099344079597359709292674765958565621009996487926907783104408269231624939550047894826195793024032727393253197215750322720093293169589066592206604173059606868032908007102471077526797277161586901427678449184086587954451593556757521269508690290459858178606412016780892828959714501859138838798481098192971566445466838767052273432062533509061402487131622534076134188619667122680703111714282267438754537752553072559331933022982399738479321723073681246791781765959162843811167589455252533439019029400229836690707470190614085174287468408417886216802401684721882836227588315444180226105821604092404363707919329024779657971465147689335683319262816554436191546584584480625450780448436860942140999392273251157630827369525106829453457669447945987910129317684253595999189189410304400428048113518005430054395092712833016004819051727888404626951150016461835688600437083224208875638903955545643760445383393882092820863690583879699455650882311687051186497019284201750345686776259857695753195385127679067793239739007967402033784589736656030756815115607533989070167479058683692800988799055812299412528017794991713981177040502315746009223030833094875004103981414938745716149618078028087251662725798488102243612464019450276791544288598399301983211055281569024892153350947140612531644285827341069962099998295351189867211336059769919144215553924421255616667146352389546124808109672518692337854786441879461495182936956581374215017792988266105530103060477893886701222793351548028559623413467201638461069248527655342493017517338857936358918346697737805220379324289627218234529299356583595002102645570572573235115568837626196876719467765252756130147612768075088851627989469929557417395912550927692424903446901490513154300890144815704381841752519375875668372007822984349149153726998709818431276865066390568704951161990755601420007781378842967874394665312875327617373512623358013245712511154426938439069154557169977476578700631802146378228661752254123279332760819336576039406536018761758389302087876125319058470128000132397456141064066916713585647563629963117907898219479868205180794475089150292786901668465591360415994825530253759145240925390301016877329081992802976938069656918095562511996450744656649640547644421463654271972205516732698951067197071029223860821206519569579054623900204717830896259735072997168883115287351587235405456689629307092969350532799618307737253277867385374572266822449436450003314841362398841144509349556529096368010416686055105428638363670974198286677209614311924623273219739018900202188205897051748997631301920331741260180087057129343510635725221935050863277787824954325196225513926556285330706499905864808088553350609181494592350876058285279356715671876239872667817796078201569220238135258031999565272141795071438566482082150113540853525560467051097480491429486725042517641986709065497394145470116363285786963860359754748232358541691713587328851402010240666540669539613043015865173307813907765349528635781017736723427840034535098892976666583678971171034619029899181097743606555153155418821930315826217173261828299507426986420959329366702356269145320614392380523248857338832330554524995507412981730469238344656439186740068181049640269355496932562416994957311809939417463977476624895335824629420060846012656104641371989045339570130194363859417313673862553598277970098736148821317764165795959582625178011784374928775392424763488574382266283997141058031136239823184794479874413948495652138287826665165051892153292314073866314020716613112506148712705329547060740291753670262632212020871616639504068599969081620364213477598310353610657037192215678572558464121633146628231475037843437664462958319708780153279938396935233095763427218712869922279281599700182175047548245377460765546361741193933861877551460373883259777588283157407475650336137407950833521126324285076512788711132447527811058557297840480679388026246610444174039032810626760352655616484416426745304654833882336534350666172729464745747176340502056611904118023217586510099308450945192358258253223401475571319457956195692734169312091778707740526512841549663285406612483755478515955368719407347553942763230040720098873862277447921092159805614244910558435226986485478762575248877155567205759173666464628823289026663840716705618136379740925384911724428203813381550376110334531348663427017161153976205629764025151704900190418152317231692695352803645764562724584287601590269134201509342661370321363577463754522183593179427839422496866896059334199071959820928554005276854609935932215745804520626354818511027095911822062201617414597246927890686615200103888957129299566670773519595592680685165375427797591729258024556301202293770274621698941045851647373267052886707819588482454103856261912888289362980689998657335332823475099513067648292763030603324905703623523581454980393900175828308778992003947759065572989545790041011965401692153290078340176600367013900859395026703003510740621782966037295158893531581477062892230783016330231667839740067798445392645608735515324714163567215384522155122117887531369207643919839717217393828550108218150156801882082467846111328808164003271971259618524488283110810881239598982601160977579538358120401562988310823261838503455088926364059172277214182641449031060635674932322668055197498369008374810004629129843781306681490512071197034455780195278265356560693718265602500427414684173070416195385202269805562861938180740077808676519204110250538093953294558142531010369366071225860465344590650763295327162230008816652376319779511133716031832739526941586963551713106858326682766618677346640623433546774972374826543765060433926659785592066309353733539411478945226379217814692306850267106457972967409467690158667460167808530358307812232522876226202150871739862999058129869049362895491798043614767479883351840067771182195127968951041651089712593184592707583453906951082992873916478399851090158329359504595868001725352676881480855693454843133007372772696339446202271294534712161165560773355837352426412969874691870237697485972621203021194114491780914503305959532001234819768707494417264560244634550657900244133114597665174991355889969624521434424868194761732651979380545825689499007952608164596763495369490487553280118088925896540124072906544542944561377432380176712345916002036457973807713689230138674739180553620337207354359103429650220740870992993116806837174614075876774872437306452017868149721586519488106970289773673367248173137174136127062691855515159069303633378566657542694816229807348374343727728335416751121455124105036796738276818695795622478747525478505841184221503889679871098028120076687911110115858161243657092730380066161293001657109015413019899248264992493777509355397294999375864395639062634860376902709612528892924439591169237680319508612158003400703907406814469940235445428008994559476156218957988200686984287559471047973523466409350716622090568206609318715360440985757848073007049401960615340133499724627704229583927952497646621255705972172919083545967956761547687989067075866133388187453306395653861998224477610904114162119503444047656287368261549972892802374414500824196241089523197832986710882528780206172186459651455099139148594430261628271934430148743761676608896801318570666560614035886629877130996170364294251547524139089136366542683601343901986112235415580557235026814290321399387494930465182546548133130811399658929553076593865898575543571849499773754713914511117949803754485868881253768643072880470700617207220799776531101807275578063776055911410604857746061377698335060201438470768581764779371294753253345178380447536303022836143571715060886840299097672455106448471412196730248588395510450837169589005897690266271098190673192701530161088050181470477161527268217658720280213989615583097332268043554769026027829949912242465541151335306357153171642327224131872589426611893531629875557590958579719175694785280093863942212789089022173229246309567852326672763926693647347751466677073247995380548667189289422835640314897928640912552736405203172611053020323152286644032989464992238059738184786075255807278552719536347990793612675088352912831958731661954706445300601362605167400574994158451658341374392923289033123406680845190110446020485400834326167101186985596597674324583780467626712030943057382440300936087089267802113725823178795910095307461941722111056424679031728271139643850535034162694604631577699710748540122536683903897899487394751961266029539961544597280920324462417074128098267021034463970106020476888175210210576298472936636424215828096358015254802796396599024002538125826188006902145700679584559531054457523737324470269876245353619246727914449559308065786107490184410076541782414330470201952984573864871513029044217018446717649219349075748662511175809539393574218802953018592826228836249398512360515964709718151963038919655266191241906482012650119238535737423168096183329289734440531020846435279573323549188906944339077723252107442020114862828019121502704767912049864941182769481337329378601463862880917703123272969864607285994116544398142780771141610826668491125369754745539816751226021257608521057958738985716626939982412773945678647782567363589967220072717628415422444967349013895492159582979864935494714244971673388912804574033390974942815670082564862563585908774706498807991470467071527076999942842536159325107377373518290923613567486828234772727462665146165654481533556631450293465409692921105758038902963085025117406461937967283382216350880287998177976960013960502635638649548055648560976162210883678983266688149255914432925754365922851045889217041665043303815415703557180413862297656711693603889133845817290116640367260646035533272253024024545683079074091427086663885536030368497372381182409055214179184764509435325443143548241599127396718667252849706088709771728165259759317843541421607948981370898547310737337184534108642705944247486010677008296083550881284530190950825694141854503660691531767428761842913828748379772836116760695495805575830207793188668202406925572972055047751565431994424409949142109310514578618521823903101109269995575097646188637428988633781784320111288221320338045793271928086970981495427986374188085662767419242365755665973212379143528538829863615182401795503852989220844094691990001779488639193592611313492531623524347206175505150019031070215370555744536383644624671793546917306625043477739014550088439070101844519909949001661032512409123115005834956565583566604443593319488019416302995625934633019671945879992852297098057827105073912233354306810359534186391650354287999570483541262317424000761283884460579476558424057594418830888865028651245027620062463455392449725764258247961655389432851847535448990421079038088056946726156344265082876916992563677089191463997762436037735890221849178854994351755451574345117274465545150710382179230401015997615145170424773053729002348344427200773877536230929370067880959222056786261998929590953422337891607916042924776950395850073342385384968936776229822472633601152546078849545473888622083995764671339997561561343756544347836184115002472730068605675289975819402408131556388830731294131393693574076661005947169991704780934724776169905329276381769731538768549649490327472768356504476111250159022585355800831705530101053557515312990871624567172588996273738144256316930394355955033084044546822951740839234693645945139631253266463213176921870821818745530022020188546886534500097399400192747207420014936106279156016646423614483154514486970094940231128815402846563995437971749009610419435456571183925861499111920224982019999144149252625246649717348622465109740288934075038307375901201329160981664033827921967883662396291628517305450738869950856397829156964373125765219476427395549576570331418674763477889312061632308683247379196210571611439873252560874438907113569534074984775575157105351904716688445343742824955587674911370999651518174782347359943373303875073739773925853574215337643559181681313957717655842923458503627558083774492559242335130235499145297668772531704983219088777113357741793762055836044113903736987943309548976222327030376556360820334695631349576014258369150362879404597885984142179888057921829756042347920604778200219438755960277024994159761155564524354302592398194832962272861593584396105655985343401464573122944343952986644089159620528291953152598483395801605086997807230470816953728256167491316688297135650398885570794353430419469334319355684973966217538483979037726788142369049426186860863887768213366284239860727962828428282868996262306101202770806073020493114635782004362318678015130441027222768110534885723799531731868786958717394518816068108425768682525759781133161560252066537283842396432826584303094673802346583227728168519566888902101859905622479037124829555441775551803104766726403396793813624463646706565473559178598649395936298722836122827122216644027328632669878414374436330460594270089588852520806886876715465956333498950040507572318094937494775669936528113762869538523590101962134369108345414926507806802716268114940051969878360883788535014118876170374716444781919029405519247150750910505244339125946811868269876969737489764611804331624961593840695704273325414952776077677253767761628934719323983056903253124874319617292357698403669919447681269494394923973677885881021736075368062258423689088785498155372374989125506867937810103463522357094080209259504874450144027530518595792791130823499683455050911872015482363637726354162597010559461400076081456078756576304462145508857704766274759825919448490299370754528515438996461469441965101223678463229921792659796973993092976111412328368571176761175319564504063208258008050680914732497114948805017587730624787492501154288679400058930102345959615536372245530206509978927429201202569912604612415914323984161684745508678400675471859069594349960006203865894872591090703292525765426955328332645313088202694846683381592985035916405684340546811257412552164424932665909229094838821591085362626020240335142159238195002811804574036422081538586854024259674214530763193914714375154038772074365740633764467902217852066426410227006484974334436027653173312038841393501208596202076332573224364429043247801443639751840912726085080244122299311268353543797581583134799513222115717511122128733387150522895607677947478747798561033529982517027886945583022967210723738563258516646235732864985467613795350810006236570429689678206445665225082270078002387714872013795944163489724746610529668918415538007728029660484132865054375051294751661269863319902272590359303408518698673384081314583619062158871293101121373132101659751296253252729418507498612686088541476949573709807949509038800069839942461719710551703634680430864039141258363830193169801655795884738378273576157309561258337462586038900557623510190447774495859290223924772529594494450248728811102229584844155329357268101192913690295917107506974826348102189790972476914069474773996592610842010365322379527234365688923226828542652723324328402305086823096101560369451220664891414327394599843463385598789752000685998606784505057895062924567285989400766429454299889417635382068785782636493363965669064145143332142357746723472347570567393827373958650887049000549019532142636013190750218581651043317713808666628126742681873131201280410929096264230630626850147722716794769513107018138364441475833887037227058506323816679577005372621530951930311820926161760507527663071574538572753834274472388893925774631945477466124123669508514289392889177719183487825013354741580209477130713696545090103637179066361965550915184629104244858003248286871855087097384898141220458736100099423755601273710364742127662167060438149072933360652351835043421477938168573163902940366460690429147003211115559357278727143523418870639372545698820795745079466481055785724000889985801420853237905854174674431189572667334682282071961725799494125105170954721182942108588390190498911358530672439276983148496441934658670020467256061434482232822160791121926333361965290509907405116034156852676600127732008027727260430433598376516632895179388010356296857513687884870681194408415028410929860139858543496188902057679894865454660017327516027845082029607135013143306995671968374406423709282752748688904425614957655183051954046441149756509773847602435845738169735776630042181359098883852562987541095405753390930545268123576800929722711748300392796626549803623156214367203580560049699607443504612546983340713311402795838288328844064791183494701024422175677363559641564799808087667573493612814522677720306049035164562597906990456502167634620279048406842058764553206985839277479435240776962596126580052855100136633407575603516037097276155674418301139674222594100150977820873753368961085782025592894897207607364433575281957796507321645293950852334254670716412996537428247923729821567421576350683764489499191888485812825762453070951753546784878755020577574496176579176790798711504380887901750493831649688713771310515788949894415297462143046227334828909870800605414058713437908722784379333531031860080921945082102861359529402984134803143208260775564965063555581074014939664289630793674793899721976123119950999428112515237114226553095363438429245332428247280784537438191400248221787346807982127717769363188828049765709973089801720652065268514570613668474781328321860345167041322662414616710161005773169815359444108659890349586859792093051556645280467518755082794349179196364539721315996019846256132692155582874711724888843577481536545125405843881774625352376185997371508449408510956575913139588852941447293956752106116736634811720465988707206453678256218953616289591818040383041949707796286938670849326184719294775707381492176179233399111073959905833857384681803042267629281472266126135906350746135319590096256326316046387456854882150862453498406883718039850048935254656360826604567584131871786282864636957140927535070973919202460754397652962388445433786455253229638976950506473730929847270117933361026719351267681376982117125577828501853660155906262798443222645132170831579787384985798673493954458596672637192565387883731010866649385354266261413841293831829393894314026498473385722967805627968645375027434504302375440116595736748500927081051225694076531377060716187769149156667607991107884639394424550413119578732537458998714445155488885033412318267837778299703158598163739002640251671655572449402972649370354249532456843074322129131963618107619035304484540224122429597936706176846339608996766680469212600825801494771685623882488613211172382453216810233099604784276449430548121196846039434667114829204546458449468652872621859797018521265204767133865768851311198350632786895940508935370715406992749237358418897389898978173874652866746619621631135514954030023041743364740513346484869927156120393680331590336808105847910872709089837748736100453733071253391920977666361817442698648191756620470344858914992955419199082759851162940590541003585846814852733860588927078472958893111055559262980843246725653921801513283025197835369332424510628964271177622688496688423754845402888379190044970656469131098503627181815701829798140628302774720460833326739275168667887955211758511184139387808506025923974562517136646400066511231378542050285722274675283672442204517723405234376943366841138348024731223388489961813542843101151298997081539036952898529618158556874878646965243187896728084287596154310551160224018428510856642909751885007834186554743798663416194646720228411102762703427267267697860724159026586594667568628343458143755958727367733511851819178060100945702769466723729565012888216640535624961758641507916459474964309785723660921493651397915169096131008953452298366382045466290601066327061087739168549380085982246610337368115861295828868285792601005105684001859883970758456998352204127529135785401524654096865115047529790402123500000052198053312267296420031963062825061903791969286695066923009540259678901278738972850007485678940982877669446963833852868146177839916164808099987075678973630697033452026357272951397525297966930115924915387234766234084856678792264547956001586203206087610962819782172982211001454666001696444431363878998542088323090640235589653948775970681636884080215618622229660633399573578115077513885650873085316182777969075471074513546980101999061530902835325461480121937137116761845181770909369105921854547878787984535530622109672743156728843447902383545028011413984076351290077099443174821453289937080485141560143149559271269128992342376176005612275305889968223013061927906698737145209831625670955493910011563148681073857101532605475067288413931451753227940603039050699624975988745950455430580129109525566554106741379752000943878063664778096250463259823395936048550988656120223602633703933723050503471560553127479092242354465978619031774849913385686563837867295352927385237991287664594938300141889525192909151005374347339054731353699993103173784547679180251791325921121404345869635715074163651315878304699381475316330114923624635970581568861457337125538568244453769871942257488561205700373594351622858592065373163979709495753142278694321777412656595990169839242699010331709990024654956372802247391982148480589875780327103023603440862122718866460043348114574734942564059260153621777838156707216952157119739729618896852215691020275899908525131218379455556670541382289641710550620449685308979619056318307513198741591895847539808115125678580745877723682453937185313804575757363086294740603039820671368072376260934684929818854279206784112230025900753587416160349052036011296956095933795013056480919519004308971285205152808183402897666331684309317471569091118314842698753691771164047309923201712801239591112625977224012547001545671139506630035469691623554949954348206328390982738404337683671826839033728791728232794454308652719065153575503913242376267839678611183977371438300401185461053665817465273518138912800871190788287190507360288514599866874582266664221477465746342049122800148730978254438101081636910133497003717757585278237198472606740868153284248081702660794755087914987738675817357416185157421267276331748628373585061843987207647720843409718499694911057734500789797826466058213611868622320051300316737234067355570040277888930241198116945420359351177831676190639428906794934780577131679855895101845859297063712675579928648867044636904994243600336434029757394484389268691711749119852259822141806870286627243764694012871672944527382844909925147321633801614768292835851505212958787680192223854748610985473569834401029245630956194317002552744229231112001672317530307154992901030175286768237433884005558711404732750443336427830797671944061667197030138203069558191214997429311695055932440039441350559127861745236664676836608048952989864217444896683700045710066915759982406826478344696606367814556390434031816590085301503729221957718104140088769313475538963612334458914784188845516605815397812072794498162291318755106665076344626590279239215908642182247377031482262177001460002419761253538572765863758769576954507398127783568544366306952110367885397672086052763795252947405912675328867464281568659145627328484194498325039146779293365833661744152260142988119071015057674226636511871529768831072918441018900181591438862226672914817257594318797296879811763767725195893462735788628319700399092092647482454817981688747184391763464301212026144001210489656655590188237428790791682863493127944181330204112516739950937034277447815012415609619155867853087656428297092574430734265233220225663531744906422892108633737199776774257399358937659740653564610587575851814209250606267963126566549946417211703261775880763880237326086639969907782826624843463893094754116422002227566082865193166699917945268441798114289046192901535462420239489631351425048592519245336140901893122466581778852827507124769189267063925094533999210620036390212154480943738678645954015432197391218415267152642328527834724983032421300435094556220856058360133916766725486389601147887919740719582557183648592059033139214090958967147754849636845102216037773644071558898240516964300420364576255161859334973786594086470102714837544722756364261896322086101227928776612118358844477072042835987173882362073810891973538389340117595051762321343267607901433644846395587601762479082939542488527683735957431256479007147653589242000356098148863290675313825090906787073443131826369121459781059229139699769325985725295758122268804451724444503594005152656351683418514846097845432635140523496739380764594941356947247874144629245927094038145581939546001368093684083734725427910505406048182898492609397507601088876757322733128785761999255460535202630503424571399293295481259840745648635095783146232917840653369470536218086758681207016137988099087011848506315273847265688964683039540930609895282099339973456220761177299642512925507249460333846250972886105491220307077445532498751738793069432190794664304698834184543216492552972177499192398047902131164794495462594131958090322835550582226361622970337506095450511760875246625439579828559825079653841920689240734182100009837760374574214677013315926683409270989367462059710103887723905847142544823018826948249007580108133478706708860432731119709286514344984771058130517762990338595005377658110740311485625265832602037181657538367585486928348806476456458565165425662466247184305231131602381813736654564041779062915735365117202139864915512003740182690699979816279018620707246488212330593313678877495977909878386674726126722652320299100864064212945398163220223007237022127137133807623377812944618410839011651352567779271967392290971919934992577088470240485029402651419557748297969130809114757819545942119669288074939797853760828385709740929710976597842994766714063329683719542479585569899855228054223978667396688624009769809380133609715871773175394480356814042704544102521037237624302327476837084022533197855926855066664328108808543249233901668093865886061335151464414615192224425269137532670532460703755636934082295089598695661915049063974713480992031262032208496401360712854783657988082620291258492747406438401380071164676686596632056046925321742744552684468224079913309510065596064844791363114545137799273593660494907677813614175476257039230576358663713123632169523376524133666795357540285531337934658158735964534292781371126797064228702774331645892625988112031116884663600904837109778000636431964763809319321493858934480513748436779127095948917490937990783983179693670130315234942334289348104133693637262299363640173193235001716228457035431136883105697238133829050002488602030603574688822168184594960983122406585671112040325553120495673045306373430785090102819417619681636471078459647903638145865717054642592848437273054821779182827770240673811233840411256870148987916987560234258663767807711509104738284126957671270110552732211676735842206641715758850701032936331066136087646649867765997303365160384003138273198372077249169772636620882572588113435072769781603552137943344199960274499666217649420084235123981833219386306539372919899881946101423598038002579335952714238031745666518695224785433280792830646155269258478558163534502513924023226225986217532361966214450571705446218608466527827451028763408316072952908527390030582531851844118034929691322087174948420915831012794153893059287961101911792181562369104011258166057629801832231563117047921824213437409522681095716446341829193657282457657152257656293350272607710995792790204157161196658815558433985474268936776677072988486430550908296644190464110079028364749815449267818294010203702582362296973384886604634470933602589719403622892780802464955618554502509720804532517485080895469094067815961927206449325517289051941117576148448330705776595493977122656021222952836999082722579391176328227455442699460158238965437676421751885621308489654173518217688531957894327114321499507891245228794050248006783675982659600555348745568041700279284503512472746735290003159152547645684464181249016945408570534096918793458765080153843801487436525567476413562701871157105401436289477100093444961887436665137525311597842110786962527216167154772642709948854754418232620313798692492293332216804806517221604463617022754120350816709660381264055539537202140223965627314685820500485968967494089950153363102937008013781435597193344150291083496678228225496617870653397686495649228580173719152867495927961918560345769690713811565516992172238183996906882683499790479054093991405316695190480738340808051370471289809820719246604870465863085723161524829492264129983287024490156573104263201743080284715368586637988592144418868614206452812014689993213438348133950610045046285208367034858494804516676975640045771786425987066987297423693190915891847506910986101734731372626801225284498731986425308859662075605130385891038910864392517334321138849691888760511055283821911381387824339437183530070525957247695742554232510662362886605285793819570090226284607727804092795328767314690591894354306830256304690501788117712857236831755252266967841735044453580234399381226880379333878675274116891440303928712968773188060725370451978195763996790320756994864027920283988052056928997023988489043376236680631546458190366719626405819327919970001888797496986118993722712846950421869045813923177630299839521970853556702408423218133304127753013168250504493166465022009372160079111445129187828853313827523008703581890303346077348495334961156965876983921370816012008359913332538408614098879612028609781040268125666701623316762610933405262083597415207360439079033158402175663389314220967261419534559790788452040479970903716718652394599753639949437777573543171438268526958871019258058708663338473764683670518351578687521409544046522860834002933357759197091231665416488570775473443928553952245978597102643352948890009710773854663199790848962436269560370598302877541752741173761598496570738179624707095414603477061328791988527139378708816639959422125647517940266073164931413087077686992031136470467441099969775437176940296540681350238055710665334173607067092964976760163755136517343632896822055132199781678233897525232578495102654490276945502996994012130575527869088790214960220751068540752070547759384009042723446630174283650572522637777988380301356092176588653340081731168865251097772807831015530756264894295354069266073489319377698814002925672206653378886099545741812037396490882471896151404460131503459462260754182853707793178710248195907681683143503685935442354436993729032876659962453434695137793814364510220153319763886667410335116540134095794095414213729956472625707810951354445320565610801049230015064563350096950957266247563280224194227086650682480431787472738555805544507890147125166954091548497504615318896557964409414779662191152634122513134093495445414423736997523044328692125424503370193634941732352289672836883171128377003350551957810322686892091537444296781192483653692733299324716305729857340550858129758939776101482573753481830855241480771601473627584741601251800227540936462810010679368988681821519283048911168933023235585954137180163167798011753577362237428711936409985133954958223206861705315838503269672045102728903747867500769446462599792398040513001705732185849375799657062454202729920379670830578714977820397019095983999724018132659596707179817983512642645232384080089891530064906358882548387058883945969502702490819631172480269687695742333416079759149839457432547768487498344825796504029313121253130399981717020536551986130300671237534601538009877272108865096087941175649753876292044147614923565785200625413132723214066663801938383475368407683503768058242947119975280759310031355909826642450663639577209114936711633424426350664163756390929349579441299269156649417524872303174659782029987630932772197079523663271282842616457300796018106165582082146038810710702407016626185879322543378660090358785492903170324944037897510095003725648828723298519381858341907661782603028065892496066975752397173642119774079498938877844565550455419737278688095153802301882260390409820959135150307869033181946986463780386285011166186528327665236923426501554623189095652256070674892283501728400644021072869641753224540329161471608967334278898821605753775318000566729884004704805538584600225073592971013072979904518062684800526697630843434342944351321449387124862146162456817816742153217347225517438176671282069548712298973459467102647997653070274053211885690576956840916989544647999002113279704254169798967508639306166909880492505288122072936527345872999826257260429697388769456133972432107006455018750237406157860506067224967119276318377274223999102873591883649400687198422252720530353149023567808538457188850669174701127861349551090948881054115637271036557275919578968313317290061575426664783545870779694153993103171910182932155337790166178878847106778115487986532272663662012165302784815704872676918636281066507288187230427690866253467504046704758444962279163259047676819648040573274004504514289489421792022221096368161543075167150939566168577110187235935367401684917455981888241244851682066355813231417474919241335946191515123089138208796353526386676631768417313767392198979768455739623587615428729420096039789718310528277717924738946095259370580703862830026001305846976005349766039088066531836288377440238840178848576063975787896930184609823081356704626134719303803377501960744992532468962739572057879692245506136219464936266094131548702417005805305975757603236568204555018607085055462039362582161189801877861224928007022759746494641437228838460219861349394187152800839120354364640397896704608928201656139931831144234049305629053250583879820146139889959420434059882375624041358339921825654545134198280617731098313119294539954530191916976913782721393362677721771484528997458285819725176456361151981479462551564664986471601353999818204975940845908414740066461702779647705126557723193107054277939651783213262382857139358435017594777132067562501529628056227563816320802236658016867053695535392575974482991768224396739102876466942250932572252466566115189698480480591450740708513878326516978008487374712787740536826103792951865181651470785933770762455227130010516142830837739086742474837666935854770572258682076996120907395969538639454395681205600352375286715568151777315282674124824766966417837031317846784883638356072178735308397586633277202688637148713241751936394029157524980477478324275336514517523509630124493593910750049603257995089167440061124055776118219441270965125669015047847215985648803407072746128564153776053040032214731450037474798850145394297478236802273247146279783606094160941410567614932397324590342814461357676717045879708932486996589624020880338388779819866093239910631454539182402465293912447822716676072769271159918456615704805683456176912486513923840395794695541668531213748134197839904795067389189957185590068298176384319410654176553544416927332244651006555625524212803452180590646590204941660000371843547926530839361489417305331076174794380516676997421168535073618205547443349322373364155799784198903309519244977368709049251829584879447985304175144530231092844748466463903695522859014281035767536455222917513030061831314461435760787070954181299567902320412256088270800127396251246920648045906509974219164542720157922743013559848447369545831065857412862917485855386075329361382032991106484387554722497410257515887248531597354299155360835998246680068262242326321264070222881451628449042672551435663407328851428266594989282104357531509905435740474407877788791841621674648513059002421044613669395567386510288905374199760645860620259882437985297168137692415940222698949490085974934600834138651246048345505454846394578291460927514102987845826982265148863422178854481800780279878712002863483483739148857503118359612282861976396820515678075621704072067065596185353753076665159347938506026711275821894811273958637641316676389473306478457946939759523608079397121917583564774711680667308082533582908860994067213052950840413961443400517801260476504090829580904931788745593559982496548275429841674546942901486477351252400092579221283119667560131795141745991199215899727649484861040172255246569199977250761188818889068969052674261972463872940353651766977428763499897607180035624339936257296765236929792465233255058843678748514103404561174359624828274355795991500504140558015654330738309609567779141510863968139959753575339404227055413086849872088737983922466350908067000519164861995182965136263891921938081031901515784339211458777788628819407406828316935563557846513625146825740465364220240916229207350977114573162748957114722186882174840578882030437765210517163201420880840936583981872236169591245440199708780700477054257021976680230712895922321882842077406480991677643576440733632044226783764857223036427335509030575617624361822747789394142449456149703439043783398450400815086416524162463246019511175840921407681544039778853545800362096283862753263463803726830335321819108795646871808217770102804741655877269223753511669642870783556243282277478019556946033826219736315843732991548038459706672630296733813598960819995534979068943929549467340533525350622281941496619679934464274319716675716419342504412955494677475883093873076063048409053378156808960816596839765464145857311384246741205788546733184258300454355389251503053231279250363064913776724072075606932934751998064258081746312783453512424445779739805626634880856415280049079287051207808690461703246864912632473754700553108393315309450130605463437889805657741151083776169789033209557207451846988540720488745541347205138460607913456058426647310124040884869879814648903208475159013640206180888920492226042587301940046522306561726909231004375803739319161873834563933901342854127667185841214072446835643387325019331137313955433876629546760228004484875071545759196984845059294807207314078193811458186771527139683556721789916055314424353381716231735565288022976580271937792555295578039087664786294143323916638281923080459507567451631042264576397745305087379581672969722614016164304398823674925511672478215200912382314723395457942268352940683141980877444673440139631690927309099987922612925100845924651736658417835615037228150019767629632059912600215180743334685495004415229840760951886161937249367709059257859785596023923683315109212535203703426636772442058630067596730934557214485281172935126903481777401136360298669620638967385885639525842442345317142756598883603541727536038250789626100058551007184586732851901810640342172580045679663851521072381367536546232145997527534539160923795989632985787679925242444885035687013377320051293100432380722504615472729549828192315367163297050042158684930060136458917881443770567410534125916944710691440527114175756187831262640464115984038283600684872216829687393688667006538304459003924823869293739995401042309570589333458364070668612530769396704505600043281722558926321701017921983589437138452446203265841746747774160996906706128900431559237892420609645912473400127780721985490905278734941148096031087624757309353668397575984716237490166774046464327096349276642259749711001441705647330454581161136334135248338320023983519437883194346518355979869675422637708018893650190525666624110920370200536532462922797903376581680675195171192499888238012869201201542466666731482783440568206495393519441685662934610108170327756006522864022991113613165157825512228909595021255478651192253513418952162952298419349792840830252377899088022824312889387590824687173627488964113302386654120920184706179753595224375865382049220303700187690667657629314235456306572697004866162109092106392702386917899538870572528488747378178256968411827416933981746746851745878260035710589438393981707042745510360937423991096952798227379414586716816976555706898248238412786057676269138701128158542111014814376867746761140208713364928646648629436046349814884574167342437846300678050534831258711882209170755136626026515481580508298773091907857106186736256849838594171830748396423927117493377620591254743465272464880606012676966757920822465075331703532600762609561886611809475652636455020356526106789489662836854336798361836603340268744854373253626143939464266081768609923449444892848636897783925064176936703440571623251264506909546062129553200941772211267632396584666855344469380221837704663506010428504696891291294167951926503645458186141417167488865167256325282243218314374999372812872774250501374009023794301268231430097709688785195976527496065420517561476951865923417503968015246515079355352298916631583514656926948650282140191659641258394742748620199127559363405740086801220473847299478078427468446179267995768171639603471416144881267339804841227941597177795957024814952502485383274067352905625235804068772646430371653405327113708705457869552953451589374122263875093276157009677432411317235666865149320342375154880689826611298097429370550204679959480406862932172236181013033912672597567228462825527667612119717216324356645899086753810861102755279133198788512047457529150308609525222906470160156029005183166913215698771946012307050218296509664311598753027953283452498950301601089609160737003312672101416728917231974485598429876335242021395386042896677713364410055650765992985058210194635069209058829275992790572111044503449173571769919647066050612565767233259114478487098380968687778635797058514770588275673990273643592986234299751295820236820601416375621059056448178335980819146021578217386080786636101686067521482984632649821248072785202538993973653821875276227647796852665900809498281849808155591312204990884328565897923611577619668384057200208120522682030165091930700212061939605956030853893007837284456547321058496035397009035647119068728550637282566671159970621927554430268193605332303635882858530603994271068285076123385895927529413568144014910592537298058324114940033036954646373731278118701853403440478441861082386757831258328683303542979925797586991126165186042197223858185144566661841907202859330353976348840175959717671946994669075669332961950233896068108536531135412654927947909058285843278021325068257094802488284464278035094267867630595835422029527149494583440935216578896641304975406951291549628850700433184598129609407938094786743534360807904859489735972755895557257655483772153611480385794124465064441070289166666363347959670083810474689420856273232425054080449587132897089242066695039312008756904652007474873097167987582502593642529604031972264101953822914779786307692413471131025727685684571585477674516850705558973552120657678017472176642600239137333668795501274321519308267999113815605468001075077742893027494904924098605240608345952403745988017842273516609915843513037976498056177168472083570425096431547215460292167943188983795101264113470775977700776130268135518895166617939715142747217250680261154719260691280821090389084086944274939862355760109519690004588500590557955264392116900053890613446502831386123120148767731146088316876800517217696785074126345250984506083263054468075410250065841005816005417189372939724465778147138243518784743380891215009844331969882156393646607767201533008971902161805312545596602126492001581622708745362343912479218112793714538517945081489549396635213312429916636118691469394015875260089316150544449794894522118730487717345639197308891702369249472395410868131180118297929059480904000512314041841781151124642374108073698097619050424661074957322317282132024201114988777671630457459553555211926439939399298889515978020002073432212126370403785605646172565178232836063684310964071908363476191183432937322923294614458111043565235387409530212991965123093650433985972493864917314454052504674961547949607259831507809422904479854924891621917459434891377450718014074185042224461142117722607414393904950639732983356205173099833868399758973966451375459355262422509252568833012234330887475307354867409336062637912053540876176275985365639871425619793797655344233482681181578375995480062339121057289357369328547028364396259403771040471953594769686730522013002533466975421561159131359812234836414287580937703713593653444915427267596445835475783378314847107780918745002004652816048195173963947489087664869043396589848833085541256474343111929048612903035021258901589113814453532646200915852245292628887198821436502327157691989430806429183157517783770644242143190038794993681961822298346819235145741221556459326021402001654601156705938608973212975368914061306711666156520337946069751230788192546212507669478244129868088751306565002629410086726740275790610342260703666984121664463678632593066517424763245240347359530299532217649106210892994183116775453369222031306362146928459173077270433375090485104837817665626117347533184967319246168127414769635124576917566825717999861702179208098443201991684560593250376393478328939483793032730222871899194738338119005758939237285789682846097477212168719927093785973853172226548218384137589969611321418788880368267657155221071130840565674437253269975808594182133650681214346423893463803790160553102998706881341128222376328178288917160394556187107367922532590048341950163130404455894238967642509121510397675970873793296757388148418128831292403858524596019214231904640804387494963048995390764067338560322957867879961519117465667082926833685775232246247419577890291013951129450333257589301160623417652680567123704784663835946923026606390633133347191660909891058895394978308276652672981519771207561217573887549562780051517664917802186411402029056853067209787183686009802233872250171251968168880553549959539720237132967544006857032539196608004417426846317262984732436266787880497299294996842561910835280582441425324632939347357129712706402256713616415272758199910748669365907740327822990433014672671183381989807912327877342857006478543820564165024961070912920655978733576361481262799206965246384350008986325892574919653651735524410410326134725888333684454161270452841704312217458504735092506920164067814682925270674004408787072986223704431181965269442801956777032610761082527440829914396514458653633459215611591734260172885786606874170722159719291878857363306370041823560689698769566587280790622509291489025108786128808096260319499173032706221757682688172171678810216642938863282333523024063354466654505735537757585149414265300557296314506072971971425903973197709493403647461908023007688678281566502278131351759373124695953055330352808327163715346071798049965713533840537912097325077616685572766376975232697697364718209727349167234452590384880514471203062588901290816216803056167253977129402684887511315982001835762448383944372842211831782830395617111633856951984429770535883724886742869736798866940923810719879373030636148556259470106774385549493155194542333521082426661863152592981828612100964807102062972164709713354521474700189016994294650577671674889543375632934147724954994608502502596601966189763422886547186890189892185647276938701883324411102137488804641213843405674159444786556912504660843194105636496549876808620429813550258760931177677128435175660642953757111345481604845712455005328938565193166281441814528926086288942935727686724653846598393836822007235085150839061306692850766994470545327212952739236158219807474136780591343475420644727610349017716977145413132153305657152691755804244604751040604321706759642112589241944524134166610735176579178116275472369384063106877324851437015429989489565389806312520160494402477678546721345048001891066122987786776373219467513003301818308327732763887542212172137002204230963552039721414454699007076930378324575322354185517245000066570434611167629506164983449493544501059987242067382934018368301999378306708640995897241330485376403979497673149061384623746425138250709540791781700224844736900475339193792887793621842126484051876504281595346045491024421712347052410394161119173692780715370989975734409362325794136002249038233206798787122012387681946398574052423508638509373853148159912008977793619024829627003854561029418357162033928781175922743419257741234165286712291703706251736240609035410350201883521214046585649074706354209259021405422045299608841980276115191317161293051492075119813777307480708380297360002803043882538928621880800240360474198493712080063426398367502384384353098451353681151147428422416609494654616095003954856189987666772195321141508251186638552091651699557333118971890467701165583197910665798949294252637781499862663333289500156664728615770100461188107141483761417729384364124142257338117462226958712760690466073860523687688178457392972642900828035702958342149791526280801923210873286466625098325797056692835829286389967960817640916682202424907111008697419202198513203760691391255864341370616420253762650309374289577399039756998634161894475199678460320911221839711439745348225621896607508287042764505383807394490678717902928610001766840347408877838285950155250101954546582074561978229450241466171230726465046675810027411900170159684136087005655742041087358604768830697438932323466208041344882387216448987080824253707344026476211995041888311592898916796808826736183209733393008853310868000785100923484429406122988771240105246028180327205197318812635256890305948333483261445748198231955718670711104185574108285053377286355056642677910810672884736981012714421807592525730041786038372204744518058997041755998636261865853054252196109643557354883594540607837844968086441860673870041516817077000860689249466283319668411290580643668106449663264295503325405883746407077202261444386666858804451045505336592470828312581941941574697347846370126111841753769893128923174768595911367698432045007302008789067861189115903877989100197764995225193313227144032677501404125260191851683728437360499882582746787248161247045308883891716725201889562880240991045420740211708595066686063815765689984588638302949664960738860478445896014388618816944644457178011536328613549944429786184076665730201136036149254673799937677531494494962998206491610053660196483404375510446420558237391324133760843581031822241299997581718425242477399777891796857790062945878145140894232237828700278182223578741450097310521406489013271900832195817613032127233108251452089657533625855127209038098353710981894892173013292486917780281669840324902326612409924126184536166076592816356166202151320998434691335552294101263997920673158415537262814744557286274339920601228346957592895898649213481818563920926079680253187589705710568921027236766758608651416779159599292762143058624128955473179727685931844707738004650457992459559292372544736346716496224037265787665104759258256108254869924919797667732538049237533155747819351376277147518241111640847008438506672271276210978820037557848971522681282198816781321688580821028080883372311470404044292757331027807791512493907514803352837403656914246093243088873014859080556076498442044164701690095406406342501275481885870865764265738659835411631489118802765838326019961827008773081338101226444981849161565122949902603736365482880152394696596980474733610849322828002461960141798054698484952882525132030503842792546981387127804508033329523554908833686251082260113705630747171388229432726543293765519622597154699432118483245946468633611833986676061384769449010067401555875241516133089546354628147091095817995206857781788080509738044928674775321995436095250066101792615581669885608654844474993150882120158588261423937204367207172085859673905547827189259056879011615463430630006251649959980064782358026432991291132189180594277243332998541574250835877375233463639452123949415830050525871650759046828116689221120412703366868865528171796646558199706651492030462858808372770425798018491998257831333155772719165656321582224136137894421466364857861424543472448697949255064397177867984509620465282806948198133495491390672805366917368796829998220272466636155104672911145350543342760184440734975309262672635908780575836694502802910937076282461642806961159922973102128139553361849298725483855885581403092653039065226303179839998524100931508595761206368192923563352952720233770233327117135504360758767209907347390824269619120289488051666628423406569331399208260353806138686074338602315333507225292563752981410516163621316141321470865452078356457575587113285727704099381612115451691815170480759526592993642562430893683890576395416462052480477688237294827634955738261768298312594451874975802367715246699653079130646474553126020566753281248379612344654292217722462146856922588136888025272138452827724324727983113508816145191691043280552021912815548700630340195283455655656745092419322570071676441057094560650905876759453247064715414192306546399499717315576134907565922404179116934134963404899278981597192484030573796425541917921041462809741438703834267198542865011581806087176013806082509833734633614925986886773539371623437380382139537235376880844488523194476813904141133772583848034323222499775733539665247381131950748290116133732630847840943410056398968631693788270839530303498732927301247436608961306705675807166083467286811057414854656419686766797612763235004762696381706481240009657448059383976717203975278950729072811213967484310626575477453495271526270675937025088055266199179076814515470783424832532701726935996792611286433514955847861315709671701463271891857396148627026141628262477480337859148052298119724413169009034012197313949166431154990996886226755931855491313878186377999091156155265588431562726111626674803938622508886659527029544304213959108154598521832679872274531558763586565185181750524704699005218428848427536528057497362752243910608733687684305998240572092236574765714242374770441026998865867639139100714200080067417700658579959837514057677440399863364229337462508759707353360513197624045502917978471578531569242619298580693592773527482597128959153108906497581010655732864068567326455449091576627038535388310752126729457661513621033798718510859992531471659818208556216856918770182075484182623008135425346918192443152266826114046681408265817573694164328298169567319970621405314690959259975492713541480077751442564800851814955858507419514674469118229302649174566011760180129207370150732238829664198281169499129341124147040632537338170392398241592015951784930143622848676367581684677337244137707303748067513280649196389882483333386179916400112382996462780449326247259956231814230584081603016501520361276892316327588754738404491598216019375464415209893119775402818111176308894871308462834466973140634408156151383636994067370347474994686798044528233743646829829360129667948365875610323748534648467153746275512290669369749195428180534415054924482188980484448636060125580005187421842649903502442534474300796662956701233167475734239831051999499433947014120512447892146635671345301632279803226340765718758009045428562758256509626140922684688208131914934480951391790034557377171274182789882760237230824386839557798156279329784606426174530574265099978072920935688240713028207172637546889261059437589076417668530499378578730203373272605338625109174068644851143337582311244355062119320590906395687314388196706398424892334191389541967063427818348923845370055363448061652504960591250081972802432864688648685542251385036899627081963456968871751424874323526630998086804939787771407784919374167784890745748576026283358987492043663076793265952503078044316956763360734043174703773024882178585000653896818487399816106851507511665196641894365394750196446674973999322877253173049045866685936663272162269534180343476620240905661050772540511234704660425197005659789459518524588890588707106265632515275933289209658927047860099358585305790353908076866259443717827381995228500397915315005956260298998591479104734034820450267185662046636284737571393604736407328120582354270138922299400648359812120141264778415520171400318570439733798218369974256605980537144897685415407428893033721386380215386061260506711341936139520687837529132308377221963474442987661385094254363466009857398718353970098366806545792920293953109004273104210524280861126234691743090885320711245350061288789961634922140705178742448240874714737788403197649854595095020296137322756343261963730834309202873972812410829432098560202459194091734061788943219167113968712259748819785405837282361447119962081576319941556471135457936571761073804531301680818223001822662711916101613616747681394831718738052355406565776536951190750779702037397143142686097527733595205657423005799016040697528968093036547414860638738721989732320068371007470966582521276425043844681811908144421457185399544440657712714583622340831186276062173319523642069196374660010410395008973019962855001939025418340338418586585024466618511382857506328839084964864194763915392619745322653422335677509514915512863555302665169457973850156812062656281356750551028741872058664098030678401695297644851840362549714529528399251786003784925176750120496634621158529343649904580504390168043497625353789964894964991782889856403444289236414909677350079969364619739840551931217655027754252904657637578175477444610948505290240524870307871884164008512011854812813944093388321696296712630828541545171734374196042404460090059707515868372762023128469138422215323742825665934755362611217309426789969436392087782241065955827687011391165724130842597142106843657854897708056033397391693570621586819685902548983678943812144670205059003337499315639817662245508908266330975769350852968107744134472387756523963586992046303085672361988583665361844553996402716855021571769402161613960111218690172898237007408959440092675320141516004558252543925934664822416080687876412122368372777591698132804630834139661188323164513360778636153836213963402228309034099948786019988635852129221819449926047737557753502361720657128313945487857428226177005496635624810394158597631185407457292451231562504919963971112382678208582044438778194776409212044237544198941087372311803553575163763988836805270097220425851690559615566891361652947586765140999927478158232873714315336586341263881735539389652370726068000271460539049077695326914346247096944095908111601586729653557016924487848010371060995320466712199351155827944805657495201117593412205374800102609047414780716776460163971211397469623892970967936617893347095902732802315046826340502502903834014519953163037273780511498844193691224761489138274226362096476793829535433373456148266857218885531612274459980200364788537802301810132035049269185830987152912568935587114720235205024228054581139497713168331018805772991210266115539594022315709427350299805648241031306920036330269439116075429667216919045663156973696698312361697809355427556375185227444534810296529184199439242959731982286251355665575653738071826561395189220111897102981427807728604762200298060627510948566906591006674361284811849520960134513249732340977798628894526951016225243351081681490001977977370363195768253668215760024498093085315071980127776737657499510773795593945160672739073028076330496239966747633584051417552502983495071612662523340699984439540217322372925135096758392049348918942583861025055362728526726948542028743894234694385769760061829149487844623082935510582108423989194633251455560098578528458090911890475798744077005437492489644983646118869161074047376407024243370964912523086787479836603043346268299150219213727473091343115564784282163033822887109175614789110727502204871263731676217973329032780923847253066617642620502587609138316107380736269226402792616340439594501356241767757953004889179745441133023853714740666585429753121833454173309944715152966516098988145302076820030686663128337564292061610249052025784461397785228664156779983002406410529373998490141401140464331814672855800073101413284355139937843422408451313721372708182212121229523836619227859002675999319100393480286077798564532240868871525687925587219082415374178983826301329168628497401489987437558384502973528627616792914228971771803583683101114738879079708665884816715244218984277759653629024253024808813636502513698910497851285449934605876005803102951696564550847496486083174977157551640385053792754181750222573561006293639559555848453092887506087156299760467139079808059411722196928137969465639244404903771599164672537846850378549733191302221513079858782535981579101709323007827973393786275541368190949797997501756972242864321999999402489962687405266245695657909591187664304773166410518348551602698309482216115285010490810754372240591466756785879189730894532869403886746764299392271720690273508578006061493701407530029518619614397686107843828208475038108377599639695784644907408264940715093768492885930328812137201629709469274146886049128375713746232896384467505637281174913786907031253396256326975762603005410444782670564525117674008190837691356151630627315815578413668681254607334281417962786379428636321656440252194841780915369324442433501615212146684649959934209027733812895761518302299360060264502531526627679626402803491502858463343714309903853631228494654474662805237631648218160509650018770101541217473435809344902028874545264076581608696453168156185474454794654439211790488103204738525945222708181513292452584355076173611527129791275564654640491503501697330746471613022251736553942100438416578158245689521947312244737618921327426426961071654473457084192138213342679787907277676747192984265010084767067983148154853963143267814515804599648601995058996152008743432445332581334285686494459612999945224744874755338323059475927200048697115665008009825215722386606142319843446892683167430862949363753639500226736659753194441629743467836401126234514224669015011578817025049188442441235672951408016249146919106364792026664593939941884265505635314385262623169045156632840042401829245958711061516596003887381356899175389832575906719817675831297793261121713263306666462997995655573591757353163693998946080677811656809076609771597150592932209506291971437802220255863981277792455457276424529643432940272108169144776031553675543018409885884769576375800856308300665695534352121900351299768635833864506633438034819447933273211333868914165013267239834443297473707715777194989668112268429618103084660504510107179474379594515471737125035442051425038669442856136673910558340376203201199186265147204754580500642917253603964581595803818835106538964567056724948027489029377950669739029187436221067959356625514050899371142343864646583044137640157451233017704485574461761139086530598014266718749140908746289004208074141461808278605694970427701931164842403754466133399648178351715756280122256335430440747625022248313532479552207473202823621642176517990008322120061063078388033884271743189657102012952403804515602094907381863932522800127184704039749736664699884437792564271414779395099361818204613002423731401567815967345885420631335641027267150160390344936870347145140626825399193075319952541281623856088085925779143434034832780849114083393124498700820513096288110528890270267295727741363037402335270795420053330314088940629097160123768741512713702872024134211185574698918173587741042068953013275065878756119381941743317929269462268551215670372217843593509426723971748135783581821975667639333358705187768415466025954340667358784428639673535198794503628247421069220409330646272240194462560113957412421006432010580870161158853708809152824371309116552800377830141068682947940636069965244737048131139571113535485466564099999813555573707043295051272715499442776738577979833855515953661420347250189882999692535768221208215631570509708939497605487482521711371120581112017359972437472095462339535993269096993303693277711077738706365558891117397024676108418758899845990730637441446118045305542100657786577677701135407573000847278217699891630042778784798356826580821848440778513474279141223289390735432698215926352241125341027414536846170373576423379816743707801521498448538562609126248197529652015429082056095016367319093101332132145278177830288739381768295360037170589081115115850720421946386450211231781380018652789236421634859039448249054100734366093350119303005107711791381773930634392425058862042929865223787973094315792895291639215063950363972690395537110525776097255531720896688894985235388982237359734169635264453298830376344211539748918146620102288061356235770202085935317809426974342070855529092112676840348715776925234791025934619758257251148646687476023677339502138991680395547810299946241719038205372726595768838356395506770200600390105140394631650060977137637820545852360718149256915472030908054448680197582064782060336928962017332699544096091106641747109875893947922141364601027588652382881557930472738337278468058738989562275618815415897453971673876984424907310202282916023088815051880661195377623289911836774548024271949885632167609195501730438409048613647730806408529972626904685089080222041843176405452184793547321325676779919745166104021832041633754332830592216084958958306413366127189322700758408913304999951409224573409587280839260582411778516608408263521886076602192595413761636440561787643751942656834906290689779506292703148141613317843235987275155490876009152031353850624397362353871712870490929892364412368089479496938190763677301620187067149180033536427901413431446881717751383379303647654068597409796412095325299320521737232654682243493507939112728442912265971710200095250333754444980061099121038531146787389505959548128440080465576962133504757548749046470628090423456947506472508238362077132551810871124198953016601628781958575062466318631689470576295409010339610279399209295631561462741753010970283246081654111811083894810237117315013861813269759412296721270986439330598121840539860367610477521858913777734940575065346963599138828410078147067666281323953245940601072552890902442954238716665785077659685598931556976300277803490380776873939458536491552534186355456619290370024749486312099787317537377127277604160285042028427796886907893905546321014663712137618772850516074249340590127383046639162936371219987697799811129180268700044121046991916147880272338547447811563235151094988623367571901333247414594870710329383174754330058991143343101667967669068418140078951665996085110700463283105995727648367544353279170584390043723485419410996589472476982251014119721494733122928891409134410498581258702579361444794095603982152355748101807073021344400679942279190445738756145760755594302152655469927621128568522667330028707393017506651075262985928772114246547272066206296248152954672433519290355454645760679463127539581299120412793175846810413812375915497403760158400546330095817417269199269851457823868394395224884646202737337187065570430756736897682686626998106909111981735870949277319881891733059895442781278120201499854545856831666687158465626838486431164602103329298976998434505714040276275532269084212756329251926308300025802622449225467859141840290053965263496645362578615641575285934372278594184231266192358551326777249310145295237729803384240091386468151321884899021144422611762058459627935327018712184238660990744163992365418182109537556898830899256683954823075735139770988669645289346168331422508253594109044609403790172379017618908404982045262568850417837147054333815774080937658472387282759697447023362575388712743249508170669113700161229517501027127500006382479707859616984751735421914770296079425396812819061456257111305920782011097111371362943405850852766214646888922167516737597822387911010714383436466694002008603259806610774797713539501887535912747665338721371723675367210026794243728198839713447210357651512797594414629565059869766070621985023601619550965949542385318315314497962693322891436668081183408678398037316184159326663932522255497993437760108607104112120564634222694079171885473657193796361579952216014864920880666965464050312082871517614480672687028813470563527790268209943457393726153589092777627358063025264859218345782996084500920708033061366394543905629953848780856048281046816527829738282335191864598648598535608763269060038144219567959219091656125182526221901829846977054657931811142633898676112073709831259535083367951999497970575292913796565012443060114186926702844664312559373326261015455652803681092352197744653835127901140900060284035819094769429358433188492346776866900055310075838864723486263544636604817153180189042635739145579951120782373027661061742899392925807853495670677200609014593759926143050607859414445878969533789708550389060283413758451522930473019104476301062422432295410510288238185891907980657233245438591690574083064710765557088263310872688300647862237468256770504389980065781352097264468877716760040195519180262332271686846709764671859069575238625692745553513818696603831347275381804035493129588799694980738261091560170397855300163182702431441990616285053830350534561131056219254470682625511546537442786350599639752459717802019591892255393035243682652991377564382763668516124898757647612684259355700354684872363729305881277280818138604848298879282861543875527867968307089316378155751193511966614834269528847245356719161569208062854823507549959859624062453712224387173285079337623934063358392640441425548910538227699896119334195950553516233923028509990510371982026060078083359450716476104136158088459849583499262913748531366061080308515159770390226077752180392183336137194310204407458099350559299523377788264648929256636639268537878149674105246942121337703261787239829685128355560310738115641912089369844733557882655432643613760706245913989034220891368450906932810030722341132653812351661583257365165548494049587683873343617930667680246491289844599897520948359851266948796508462226921235898335372598323147730568685307837667652386666776132060886207712461413469993772314739287598295944290219257987193441286464715230534708977806847766871739732435444129450095466169866763539814949214460764429663155723200435448671336331035914113236927699417900012014110036841873547532752121693618323985892504911816912695201306931410881702464099082836666207698161877172744602902451959658650847806437917459912605323669580894171863219509087785028394126930982913949768890080472642212063045353987744047001156670441974098354903420589936702274370675781883738985919619734983764223384422757634350906614083843912700346234913633511036615862145720773161733537076559414907317818751647079795880300083129982732442350586034895183465089575124879064509144690928582354343613000575940217187534783562185532523234704259279851416632101774771977560830540002265100187605146906915086154933961631298895714041679304428095916984604919604003473769692579546095691599277689846756783034156156351176651754981170251044982397669035707903693261998043425655371013830441810365907774809883725808668423152136744347498169682991658950633183907850765296900473205485727578136038492503969964627654955845817012868431216000283320462638900081907011702817771038377636824784770950885242338140591704596310079400096516535298812441926473450393367394714552127877090456324133836797443855592419401147044153388828894207496386580019643011276331581121588511377008434353315398235235726181076039723827622766773645202943214845339189338109588212578699746033681742090419837050058891154695619771301792019221196933389578901872316552679387615326901029278242472201320114287580333488710019285874523593579769013959410137590132776585222183299431281735021279303411443240973380334807640309911175681919682745906396291040190348291386279544522564551519017466197167941482806875537534996018327208721217159641643420858611331623039304508151843199159115042400662967196167029579717491016612208464867556400860070562788562747044800689206374539741712804671617986467761143721423183791690968192304703407619518931173025048465769489875195134990195164597914117099711290661552720122902075106663609644132040995045193759526128498082073032358105627412489971222874927174801867467714520658169496191354738059655613757618089271910721040935207319003466083991101024540843194633243773912842899234680624586679578661006474490888203094905147637823956709161263020681096781550693922218514315930572239520492136081603436475409108132615845486253096130044458548848773850619465359413012877467183292190826868263902838101521038845871119713706548540019929736490025119375280470198355070764789761290967626705724734787057514316489945249098299026792022623825139100142544352607996251685352528564320509647870398307107720780675244604080911993184444481584957283171655062583749254155362371531707029781564003506477023500039138354617579476882532491481051854847067688291921663076096360924202295447414859973367272722255407753136170731618066279691697184718550607844203390811611830068495304926373825845465903500028089426088367642486892977336957015226723273711951160876638369370688835158418811730261316952817387594943655828754507563988093511033502321729750864942377425852304362792526274845722817055130439405695344698286317739998573503069321513238686560543148633794698009448907525634449066642556008450742857573796665172411555292659760532004421929633857746403892253528661647092377626756516106229882999537625945106457345919004633500261833621016433380137687132009345963046683921051219494174794305269307689538857263360328957192891240832418929805705134385387939980582277915816541495260776788589232922014713452863314803487047436473570528691594751250341509115549990656469536655572124296912698154418401682818503372660571767205815756315509734551569288670959109610252708814563773410983951184258908894510410932090941236452607608554470105960978753447475051835319282239389349963849137446564154377356581629768660708181656270049484320003696101010395758411452490666792782925857387840416821554585899653557784448046590532710664045064421774978295910038473679302367874277851214409501118998459904400427109043158253371537756980623455030631341260870399596958852458948288131766883791731151273239982216831123605281457798521478989986025155365367055238779100715815560042492759702265389324107795223849194167383385985635652554660421218042835348452040938351696772144125119032580602963854550470029367309387307319239470548199253390273392654976647843755790067790793266135854465554626323197942004087039140550433191561354399157595961307772193726262692914086816503395102397526328401383480835382323071753280327827278697710629903720774605834470529074539297891361793149453946813106112152658336144992201453956549995719292184669406818596432784387860877036565848219491118640628723162119959693760018477503502997894235073118289740825173722587271573106766336631606074476691717466548658782356792907797425367501664623299220605493206034186217201742936448593833940967299887098001393727605112510657669317830410304355845403418260394605816200920967245359769668702884169049504738899933141087865476089518037871656649634646406963752175524871687924432007192101050306441988700211969719783633235938730581735365972086894764069149316189715600775895195005971747052407937851377664713666081149209691541001104581546914969311089013947110073036604382820122985059653706607600596531415581655770713115486939946119282180722992992700414130208310431572940298366087729069663709320294092653676842084864962275318749348652655484887054844084565508210745555536689696055840998834230514104245549131201459178682298444967308360750589593705014117547162590378699601165271021824965616123674299658978308336241012932060779967058846353164194330675842942616364318797976936375458394326815073784918515700241110183543226845511670659856926603474523547842478605251117294531458183091461847479153905891521822452468492411190648711380452202264231236388676517250165355825671430378932208229995469119184062976648508578931598347727851753401631632711922172621785090332270047798020004001903618021255303070910126489764731399634266177857941880681058201965695353568647678219004502616300884865286197767320628561902660468095038167062593117975323061072697555861824987547083401265118546187841263570820063354544128472622716206263926401865903814862386017375043206956985169238701960599285972304202607033463355246081274548689075605364974159674056038912458710380959056350277551444581986997738607125369331957145782122221822491855379407232045293343110164200521740269619304686339877162106562044953328177314704453699033109425801248916916632294519054644274169936662053719907389969798687005527600094308013176239886127165812136316598796077617149006553256355989658567733943479172333383493933756787438133316394910851161385191510013305909441911056787802720469791582896819482210458369297754343808756675881701640871259923975782365147405403588442364234784105328421674810721273488695839171155387545716777670267146795615033521225578131893804701811251103531222564837302666479318373809637081843793838579916675957575774252846691074334120748271046121003986349569351771474993089210666200643775010328247055144358383750400980587647841763032822271330880141130724322890793183626929636394394450336906880622921763451504250489211293008292018089513828251480310535798559102618447135350444579723954027554180351464786499189366208064890958009406005496804962045315401708426357479689839193644985426299166289203696912295725125645085788786018027887897512589956366321419359264131935142109303019055072270113809870721934042208954630459983953015613721497354778112763117805030316477335763787857492070130140419618965116369131756488768417938817098225047961178846819861098563779224892199475237895674552841303385727463101128634318143459851700722788056685320584645989841232469185123059368547880637326715073734490858618171921294535607781640268088441193284623368157048342373852665584232150531831412230896696925547953883622420785629375892104618641102788133127539294973686461556686514329215592845514974529194355882737143251867538523481396935560295168937593037707795679027525676071634541822733387492569519494495383483384406369941142700528495794391055151383761640251232080140318934708393270584734999548153544535768609669741264117672586585143793470408558444631090452557971320188687559580864033609233931790981627883318659480342318322534271407152951549388702509427761206379124141237386516107890271554075848243476873215689262628740096217867535324705043966450296081707863229098295069920018562283604387284404045987794056567358060922636271394934005574447255376834465739352415002478053634903168191255283579740800215463561620526397759166201888993503997568958321633603649497328418176022769943273738369037978031168527051842578275561783053432034129027359642687090605581823754255047122096337535657677889634261716542515453255218069030470952539128440277584448811787320300704288620760452951567255100880790831114419984778709001511961012144180104656481205850320447325751804323939825070687169746723464432594799631736802276017509076018162849522171392047115121445897971158991568161437068503554099997531775887707539793870675725054590769956164816812067197512896372107815530939150396270367948186585026196873582274960923108286201875362586146965657237050437682919841927998875581531787750342151374313921949125143018024893516334589106703479115386507455557582682623171518885430746988020584001621700713385543685267468220719794594388653538556100345168032352242904906567628016527830526352305649377151965166986192726782646948371197741022354176831110095691223401271422072755420120797569949436790355724502164528282585759628220478882406716070649191655748190663310576394060997808651775065484990620448241337897570803300416599904261241726507885527971989737143664118544051101077087216851024413830954139319534982695723052527533268963873765049409563127815198167077182731279597366558291666567910169364635313170100945184484626938157678067304563211667973802453458005217007542439682899192356662415691948312963468491317961596747518773333358003039975480055808953181640354029587044064336775252129547873901884037291486928691495372628408009619143619983480736090241313859219284829036850775262826282051514715895444960272825642602678520054166873457434135738264045075470936464361615845109930797012315507677775173924130188311155548858346897005601062708637072344276460244076828022246091869146728219106784407936144626036571324475311947948134140595679460374990227254647552175774621961928435278693870340560770411980949634613675763097240737449970540186873218070760501723860307309563658998438233072482636324203935654214784452370425381022226087730051451498393416607939261053687075811017229240262206258064041644174545470438596452791342566910729793091247688969918927937292577437385142725366592556673429778243128278802835033941467779979415662075628966973643505811536246504530405811195262532202011945352006620809065349852793844171100903164482836827730109759281100945033697295883313135580887381645939160322933988208513216141057557227937406278412316731209362254157187888962643818299950203131705366353179114508761167531517624373091480715128376059654982230198380773591541693928040002018868466519220634325638755903498373266465619233787902227973810697692520953708344898021011153305472337152942789930816128263953456025010544000948836540995422134637601374816514059512496202262250725497893476321687990063481712836029990571751262265584997381406885350637996241692301401342168574318542035805952841487411888576235555017585452095886117348817057533977339500457065576603357403463866484597673928832090649712571085907479745245131052170414822470224473814652677511880902208067088406373190375516076892078282840858778958028330301186991197465678385229375944620556808939975760832606101816322723236053098636018032674986080158413220463958583105224329713582837307433749185481906609880324529215123774195728014524050936052988316871805033311821644407755183378745380734689848141185973816459675849839577709781951381158962813980401868502081257116423326649041262436753720813826136076120849855930112240913352544740085149232732975864729003690257801999472408436607732398635179543289548637476441108545783134001383760536685615255051991143042912575574977664032587064934256147910554731328307430247185841423533286819321525497897883594856605915147874709298539267711233682309409867079182040769490089494269114257299187309393443501786952069826859497918644185367556117253291101913203963516724233908319992317945662523945901604418345542735447936856311017567548296946342359813167300155099221601805716024815901896405443882625841032662301112016064059541553767535166286853748015460976248613041760545064311379671180294993036590065469581554725417679914347495997268507355276749760832674338627343092113165964456601752016801567769514722807640778047506924565835884285654094226631966223586525721698478434239342514854006384081813698107333979240535131731596760506417191259469268784533777301634741362222517141231461360284615269221642660375730876157562973271327529696836489178265108443955639893713781452341620446293816777106412519657161466973107326554150806463217026109851900548602420054095588747671920165942632806328623314083112103610736192740267694026109773697749323680766886617961211397056186397459796452714877691589362703857481654860541470473502609474373383529726997920399887642877261609469639363766098028377541180832403501126231761757608307086079936224820957307417805897524057017809832882515825054525711640536713402348326922357314765257503789831084951535556635067055307968843330087833944053095608858022275966326568872299128887419840348567875850772475924726555716254484516929386390339799048354801224879784123841328492941053503099231858759751961829591041060880141766975317738476532441897545912548406965917312867318253592757101678102931811903400191103943449996377615315177387967304536510087815414255069509493198659229194562244281906369348713826654366614169334340861860831581192201658485868144774699594679260133514798825226216906012648594209585493595487082913657177444113841378992292821121804594713155555145864836113523606525838676823280471418428012887957543094487971533784506987615876536261694911412411264080538166673682227055533317751817992890108778679645190025441718614759236274842642876463529009429081564485146207393862667251824162269838452925263380522003394730575797068241530407501696389732300260112060609729806962758145218005893439482022815045026898048459287861874834764023882861891023127428377069002845721843504822248966619724811174833186521369397241178421224542539207708946328617700214261601164097629357671785191641334785190421968672301258008878525081911957797755245064301850595141115886882700735933346990120813895589272183988135751493215193690217076300250320922070416784476377787307652857850536100276566900036084929394973621630367396074947623363536323096452387499393822692287575815896502121868910867159996307246055329156630312540153759273615138727126810142929389085730507827624492578317744324532486423690953386284492359772282570810694704785811758385890262965426696704645011913733279606438832538324233573429188663037621415731578536744281490797793016474801804724249834837912241550971913176589737706163774800852078863679343697777426808443631250914833900447056819909879271850959904504126864635739660205929262894965662131703367480365052222605063249339777247350913171693766412337185002565635606249309619757754457579428192588065748719082708159066475892152238428605596904179609453867166531304405644128620754899144334168353046194371708656728685772421034477894378173258334150929459022601660372744399377806316150678050203487391738910134000853639183534902076593227059902122142874958733249898426501255506592588731846453489259456458370521234330800395995749004941842661470064689206705251132388602518805411451028405835255326171132142612798864080892348413675080055355629986758352314382329432139690284529988874704176781671050809849722752970148628516551822749846057642766070326216699030937744921686512278596651880568444379007921090628791587736845904179779496570192401179413115607878240164067765224815182453319509179838159232748166052248197073320230014095390642918114152122448021578256455348309044605061193992900663668125907175451650191169468743332913230273099930571671773594045933553967248324215313681017497004611642735855475199591082889657585437251434987057513161517783105366837414058894708175154876554835078292294988069058516800472523836097885113293184231298365744978379819242341341301775031832202549283269480123955778507793950068790448426898428488586961394664308557844105327259521324986151908516973973400369414590433119856598981773651156586237867505943756117840369427198846884907257495399142859215369751376655058400435014905403742865518181695472459857092558799550848754837416192389208591085912778226767050940004287566350745750288470449308884498041112253494085502895965124424964200042833343349579607226483123141985545464151946553912422278760681554013640890225891785052940739097058903839907371533607490124204263792978757590098385216547939754478670209509923862930435511872203493910282049709857112780826367023829137308633837268965678894126295820498892009959625581406131077036823677066635002387715536241867388650808628908585496519137176715924532042137364625259639345781528902879134997523191567306756981520185255647485384305434109892891307630152163190204313809913822425330282803774553837382884235347579106471599833490106210320062356590300789737189745769329934977096823600427658550600591878859844645012343152522091572138128892219690400775311057743050737131268136553459018559447613548125138149148138650303330330591039456952714531266906932824893066957140541889585958175101593774587197691355837755923614338331224335619738841025754229255131551771034944106814080116723806098634728227802644498545237981498140359262350563390206476486330177556074890173216991487735984300482939516661205404145005920974583175325120728156824317331554556387491568904601155062689885628906136203486288031804674287261019045017158229251615971922012482531507324759753533253996067508021433760847580020768473400806815877001830747156402673104689029675168392538719475853582335482511433931646131622072569556287330925365083255366970718582658557349823171718401703355211068926607426538276644415021956051929979313223894441509688747990073511782966142594478891376236726745488717890390778906919189249267481614151036198140729095261618852736620283550675358296222969382577816440715287052019130200446636390696468397597921580410525558815944790668189217713194274475538175502540741015505798217574093973854742561128219089074967187928485774081018673478691542866818968748755494825121803676423278366691549140880586907406803772894449494848978918738274551172215705218826034782086472022222087028446591801693111013486697435671058570357011401562024762913518206993587448702395761598973885183544949698913302662148263261110912435931150064068203603543340167800841964799317234767932946043801392824099483458118514579084469818084235962463937661588377193286123643897957266357753264063083332561839225811632336412499906136481027549133720729302137982902354450031838938290267979859960938961781135265662583318076267373527897966416705015816643365445282446270697821261980839076643943020966868401305726298906002604945900110456423856005895993262743448937868002603895590462565608963526798994149318848345462010792625385522851696723207074695065764268528224517105123134293413834409934599130483342264487096412338549569841876729708490427419266666032721144128527784540013074838397172007543773080531354746774608089751238468152692759329520247238743787106568532332906470458165778575997497324336115089323235559695349133832569279019322810521391566337075289189098601495209202248647610301120048582033805639451355478781572441272127813085600441025680726709110088675884828927023777004077233205268074096275781835395575906581376741386131586792125104492565029105032628057280322648069409486073142757610034511778090739241362498653092778364339364917908481965478122120547212140008050269619722740905260180457802374481913145988470778480988693857196241415787324409215683319912675308110433374603004572804089173604783695899896923794812741337748543967920132907345415950188267184169578465216589057862058170311283906887228288228037849905170060682517497865122429000800686416008253838993033690796418703611037123750926591273678393122891808798992412901661850612994226821293314537147277289410048563609391450578200191952406538871362060735418426637380963772234852378423314490276363972412926399051509183592981849958956314403912636363679968109315883756502271590756294245731165880891675893088904071873675163278051076729486533239287312513728117246709703403308033131822140212587872159653276080708125029522670939809849244108985841203878623253371827051058124134209763782922132977830789304078896217328235226902025158514797962419578210117723803024596052954537813375436178299284267372787949507171947621734199522285753974748503348954957023325479100495465195357748042663119102120998578615359922228468716832000646100553770088282887595477717431322492675636298582428820927327914282736230380621402086212236119008140078430360693401424585660497916934331074185495234459190760332223364720248288676365469289700350480437671576116415045957169998231476887607576061736038449733145959498052566768386363426733925767795741578266415093436095860426343050613059547862822041557084200154047427979094704243561920731703710452460061911328658343374500322422769407725236118872765557804033357956013182986207351709707133943969109510182258449453573829219672155194072803633151789288686628630998652088461003154600351903132913866378642759666143364252203250022213308709959160308997129359790307040893260846562466943773626271533382101986352052781498902834264751654929844011030777042307280975303116981270908225318542719361692986477895256840018745533279365926500630283249705587902167883856255876191196663498668376902486624411631910349019423877464345262891045164166381151993485120572617248732180970048199031492702631082810724144184918424458078654914101703955064498984931686735349469472465326182108993719346180162683630797561370609123915664704576917806474599402242411213836819616118087481173474125703837631087232325103029433597737990689921873230302357590378583365991309335265881263887018512459777847333291005193985631875941756479332624914304883076110043371959248628263022584546589361272395507251782470283659475942813123868668974147180251060298448986877081699138026482768981322049216896510620135523619523526762712892371213018930626238874334859937883589389574688105900622592258114647650251259185540210842575334589788862570999796766623662725788745116777477678590510993092280069365306975611015700177152793583737649904011856387232689281754539743108676202185952484121968015395423639953952486994101580246915167858633173279462162772122946739014135454194191284102139525900005046080410739623748959886832200789811483521678735530305587503264872132129103094807186512873716119835787733221274659173567994124555263031364046844455070276284077669410484198956593230306208997546326912861168113453132945052888915800434408181238034224912024066359424819812491764095145813099231088088827576616016446194467893940777408670153521662548519353470392699154930834382026489469742809142332380632913514800034029211692204564365372237800094090973522620639598108022579241773102148295660069432215443348174504749717102006936991657451538802322234243806855542872829768081441786554178559787072749925167021043237189175703253359168595205780103260167608077924572396306999140963679905142893519359856250205410705717225528269187666671637664215624858288503952845486737154633027129368258087789326756393574279051723863905578786046914209873191143290938908641890844517368301874480172265298616646664626199037918268305889918094790978151730020952788152682065908915428311254015166097165530688436496862112108303420246858209070315552281399576243609695514670830945376171526771130653579064336660626383804723168736468253662920431117824763849285945452104946555885976376745487128325289362960337019094807562555385267413903056734905450769366609954073734964881543107316721210218879543171471194157352108146708081573348115902046089738958777361017200241897496741525370060710706591397880829022549265507001255624968970053600044002054094991506210357218817294499794201731794104153943820308386699386385576826089611134624537895950267780467588167738722018037610311796708354656892302799478193629060848388709267513120197417324745322018300834982425493461776158862559931811241194915220182913878261266981078075571841377340628355403436286957581597369553982095542610321999552368159552148119277850042523643157122225138382647123874550288856573936254511471374668940888677144011317074494262991201609730079817942721857573122634958683912107544130956453692306663327548418465661689386380107471474595304560408922909100767077509636784001823254523645540374099866838041241366032182071568279053984010889485977916682352959387584581090044878028753211255429449483350912750337599353504812637836020341884412832021450841652160678298429818895086272946398151350109857518996839221770187771567115713685931130441348665208098694422087353041414044699433291095133418839545281375590417118150460109445690465054664695895832624487745509247960158701080149157389431352668015585588839350055364308024230714337879266690519325440883985596712163663456114339138016950230546357902062682846681784933294604433634897335505442332702591795132602512033864899510618500606701414460824133234593733290967692974118815546755125270453455119034880636666018792624394293721998312847857775571446395590994969605722677925254283252276130780384798830885184060235884518471288493368246469192080611382821589323282185353947879863589442732755422406532578477196347700201886627993090658004764096876019256469979783726120894559651659311205618910765783915666543664978401851689615056237116304165184015812673818193997229941052618226815102268535777671380036064075754553298668524686165197845741056330546768033386005398542959400500500888373652680104429881569550380538226858459187534165686084478056742214718807189081035230305007163065386478868410980257317309327903232741447130827319527520589649400169214166331569600351674965278510738500000072649560650513730045614664183203135706410371071095630203500485240871750356334679629196414841509073744814920997163207500634509466925286275435553376794457028504560327469006295797409040536452570540494845507621881044472422967120130758297361202057402709318528279566611294424810780722179210087944030506421850546003778557513393953576109938740661394291164901997242784044497432454821941926091665294266382923787678894601780519760519921068919118431793610979327579602061889022902259311011500091139556444711865247531066280526650291516561826202582281595366377006307307270461898084321459302399158959396294271104310606277310463939513612828060052785417173150650748307640773177611821374401151699938948539206021336083929669164339361897766860168567834502310675302944918318416132771385946343029732718593660725206881471947885973504108867672299104432684488356613117272496356169658811003616220522502871889000677634352407494650905906212594986755027304841388016582520208742428394819952413607820693907607679830035199208370165670330986880996065779351223271759954822860559633356681008164970869247116524291639072349613987299036745764005461632407296836185950002127953572342578279051403621261119655635584014707487924965680454184699614994639932107149746622502735684354216432466212819449433318273192474397608960746095364929824904393027815366010689966894433520443643935653481877809053780557656107432087620649514249996274157919328355339960103945444155455087059433932335608643511264552896256092099951527227003962702626182990035406852141772379064932171632758506173201238327057212127099552389856206690626212683171243834759480560689006986619998432099269446759315212360602607456748778142946381990164673986692880751221250470436634580829639957472348451056321172427556081012407743743219364459750799160803079075546810849044354483072117006119623849107685805342335828999800927231058621176522321791740533682888121584043069269761794652305978315646875800546706278071231095090545815348143237067313558407128383347943007067719498968894274749275078268937446139190568675196108346621614913096444940085759155357386135979732013788433597898791692938262853315784510223050567762497829523581471705300138875520872729160664761469157537403000449354644730384538310257317911757500799366158412720177838342150382194565485755651798843477702129188014865600259761356436648436991342827326283647017460564136684941426634566295952166241148931517772749080524308238153618964462578956797717099229589431977014447407411684131656772317359803895918836882750471848912523971735158577624922014025832991019735087596823490802162322276416428272774285851763942073250935453023131847702494443156092788707144064216007416298130991767338785381405138142180694980210532041216301668624342986535688096676714841451195073812253000307875298122058387785451530465390158052296294472695419507815294403190187002983745122993466831197916868617690453600134402555935247894976985354416815651416305915158543289899048014537932680333214988285896355416636422353880499907135996490924854076422666432325168434989790464305992305176272856409588026952612352628101313230840988686230414645642890289902798563283493415278324262925642084319732087819753793010129692548266638026831352137782867917020086387743615479131824429718294023549474044538471862886136626357142281842362785113883184054993388426598373622164850953031171246785968537843748623334547835239230189654458058015275954513247760362853542266707770677936395870294217825797413909827819905109833661135637557564834677377885103243866272870403099476020295460300972590237977395720219694154938712062437022499411469187541634734084493825810941632577114291425753072661417078879141162193746247265388891009562485075599783341826431004005702968972124014793551681329342035730559068591107486020299893881380191263500498051084142396994009377594034032728687709326015018787940620205526414195217433652623652483278427994473099814192521628633576659356034218805891539538816318332657770372701923621482568900731053610882965336020211138879163995724622806805283869348955005161034350508580832294743838766324562072406947332020822288966920379014938850202390194826771148247162922601817225378099050867922573743319342377219216304590544151137622449456287722280060442272048217595696280532856283528199580123814526821324757704886510591798951425355467091180678908372341984330006136821345842874426510790734672414017247771115101488208651674561749111556040589457968992104426099831582190281720091082025668966980211075496315080024395425078103888025206815802036314378199964083470859839229986150389974881302222423391882094115693745461896670014300173358228222868257400846259547118807667153407947943612375296462847399324246154382698094324945252714102159269901648783138592885835873031867282711366403306438241870065158683952425531899057001897308335551499376150925252159730585273097972113263404188493676738904348294699520948087875269934295225776210104846277743426277092127686218853362781311815192180672355924162372016629754270223908665584961297272564995513402817989134548177314904686406419188092299696670860631583775519357818975216780676081807592482773230351671628921543377128796670488246234097732250355298809842132458681854778691328994590990054974792540095398149038786991709857992936853853621313274660267525882695871083321432827074972961072436510008777775146611524566480029219639956381111228581971226113041882397513360271875641651361664634840542097137284135059594166198351390706275312398484758627060493011359351160784124017935836020146588131839690628645317799289351717709410386109246946382926549269196700336561478237800678017921972392409746351617451376111109695697659676075942075401832560497413489690573393864728397473250346835209204374704247369249538295875352460080251898235955867286085366761820100398151442522497009694893544187968445507573871796103839254153526437109830665714786837099858897874321867262026039354221956527190301327960222029861044581956454093295160799994944181835091762358534293024737626703945928781233086143575464333070988735828733508112275506353612891627373543569800121141310760284553908044066868683917502483133392868749320160401147559487172997002806485493014221648532460071809493826071924826573857326567704909165454882811238858683832565378060562734617257966899952037447914402999091572332170602570101284631767836370938450699303975966751502240972738875570340036276575023299058495728800914385905563705846774378547647469509897113742033762225014495419566893328776433588049937872401732629339110199967218486714640215547853024357664178606239628829024832950531808066751097439411525623481057327531427339155484479896153023986875753349148241748186149913334003699055605620524997945499081464547767414439239503750136412463976329861521385634475272910389548975039280590286816758261244595780306515003947954708855734802423281083898863968470547352751747374515484830463470096775751619263643520709371876737946165337435377521175622557568933948874765091280012849274915535338785544503425154702442971338172812506868581663282524344861563864255791079504064155742539562190340091566746393571210123852460090267815684393447652682798452661265039320828404535016636561541701965059527571938272331633743783733866709774345812289932738518178743349862484369531583206769258096943262060761795214376253180429817152731594674388357391044907397971486855194975614364322769992082345597404554066081166686507584170495917892590749100832676342675830826847364785053504386273831648729637852564713704763467178244034559183046243386667879206884792877165012087647287801527509463899812552227628350400020391166003927008945305882717745831520110135664254336505621685476992579789697491482153980772432664363530497789325788162777431765157794674819270534734867343975843022451317755172856960484143579915960820236344044243556702228301155677787735328503299277405926676711695731577393471413323196880747419166048089140385553006875773035877384993655115102333914833033063341516732171546725142501679271045574922148486435856309569093856056383008757355723058743724975333520626150701563020871168749908378879054323051681668228516293885802100658515586775194056764906249282377923899307939069392301744100014995064954824542105294760043554270128677723808545496694814529662030258796939714338084840120690856462000191824412363817022264530699934554662356251238123075725865706671547073751498558861256879092662322094924932261166351800189127722409750708779305474668432534949905136423158721092495583000511558788999176732880993325914829928275304503166981857981034416877843445534425352564496668027278815884763662030769080035698544827535728152405851808577862081986895546332161597194836438559886550341979546435327362531952481897172523503789619595724317389793558673503126934696846295805857567495029038295074391228252996674937236714689782965808558787321399937315778488291498744136085189229695901477236811366665794232092272393784877642327031760392320703172599716472638508969153443056906739989474935354695736803552626809354816890642894192557829253651085781033350560704437546992305164771266441405242389815980458247063183683783035974663074514365020625033948119507766233917099668450173812188271273981948092642796053013150052740999669246924622079792495564628237084034740745278710068216294015610459711595912400150908904754544684958398717539333364075874023067970711269777234369095988278516583432929852621567123445314836359729474870490460044929045986436497474239393163352669650271233554967086378710692503301606814989810393166147029538307837259909421697655695586272717653888461368526519918057269399472548050162806916301854677919436674810989848382795011751880106871930219460888347766248770898320185018492469460162245438367947063669685777704972216662000706812489911427408681793362013445728804548844547923170143036249160379929456844780225848766712509105517757320517126767583455508163494375654300870455029456757865301318432347403442971926898721183403890617793856713262192191474313790604707851747717621777362663922688344753076749553168479537815187496325401540265877670468629264018936018163767926094259979679754395621340065549800156988442300517763158861501395765505098862137282427701474458406066195244611416348118476373620742119291619007658687894185093530551097966290160811856578012018541567882510022615453871948255120738535059970281589348921188468618276566454653081595917015916293756260388308570203331509775153953016851664943635669100346844353396357112725315318012634468194545295591235326167322552482667025410033329778884169324229737222754942063850561219921592209957737005539718327623201079432724153797457868373018619189812168811602722817390132672427313350437908065653206710422929299183532459331104102917453887406789045244566492767175217782999939110777743793856150404288249849200815124901333776139193958739784675457740407614840494679647431570330367956792722052487502153542243468413770320778797220250150124959394738685623023401967454308935084814981738284727555366624156949859561036162967986813603830688292504086571705900018304975792364167187347313346568373307078844061754715063233251512528300546216025448781000226785145073548592035956849093295355303584373808380398640510219731800997091200168709571168433017340639504170251496384584458268732093012912431760726093051987906971017292942207422469398586476065496266682431424168380405023471464979802416544525743828439233565613752931271930279582470792104586048771189724327185327244908448432519156641875025742096091418100253560815251393923823280484632340865125298985893555642560146818699649092383453185172082579792947259772865802552066249975985338258425528770343458054128910001227235541895085809715771363451326053631573338047783144151421465959667008930610513577486490046542643350685310837110809877591896452944913087074530054496671418159944129755906265048408310739968872045696678022153362935842361168771410531110611805357074827534290266701569025478167272375750355947091727020862869885776279200907269881719523062560587694979394493991339839539056773555474463178418589665048938596069630329352399245927575931302424038545930470762730692910446058581808404201764268784708242885910365822156275826835615889492571930134228251583757008315573839829662625721091290042024532379651423569958650113447654976135616013667732828983802030606414499659184640033602828938805396605701390963521979347514467779452490236846810417720450091338967742228489626010314571412071463211800851996394912706159927169524319953379005428342928230645433725763885314286044187514651898343374613221849163143254467159596276173524187131572574188351262663104647332355767651417980328905813747220981671031417714704360875371359422399315903835048386276564140222506908186019949058221718349751174006538789863784767599835868609754612290906945683628417804958992806900052980784327331319777929254003969487204529046275021745854866988940008448557642610684595060156137086965921935959752860872728693177641316739382602441854757218318470062881376540217399002751120762057647109767082564078632808661733221703445874600830119816547622779311622517957763744942581336467555232629605711743362714726546106981670982648182579131391939148502449437710351064382757217701212353449060048939404718682887928527881908661137333427695954169049697106324826272419117866296020036798500939213885869013805392672369917859716347637282095189673226182749317403225540609866539812345283373520465786153449867794202411751078409812706999040777848849396239822878142601376024929893440089599826500143384056518926259695027317681546612467468280638501144208093458379707008293229427050070094268667702197110013006833873289472728127034022474186954483522131642000559359220828035466639924746630261061481692716914115395322355021944739507983757897426247947086689969544866140613869497131011732756815472127540033035603309733199506892183685424356588523233637790004166530806476405005832870402574267151306178782306288166189022216952131949233321442854258322583019169400406667520271951563410084005335555399143248770925168202816358957451008629195927250821970571189480532953238964966183107292453979176618148147438909237527035785480819514110332348568458964322523668177949318983424722233645151760799646166382916856690747697990156762898894328741990689359082261721102416714854191612540241305873817745927732151350076952135918836052860223036835040097216835416073977482616925263990145627598251216742834433223336224429843943611266777008462411417571841965617884297052329942721602638967187305988108113772249008529796628162321984806344393067695806494864774971941000691770608382725834638034173156960589154004469311994609423483528149845142204479547000359002138187549442628237388390319469337716286140738870823396322481261178184628799943674134972743210424510780732068339363738469899325991670750036952080238373329303823415060965172429389018575992601323689743871661477283517265686836662122737307918285420183710716310789491984773842361076278962941842184355947688403741702465149712038409394767461691197815487088001424647894673327704596925034650308771118756167286266936977602696987687759894612479184037254884862720141235810317537749953355053128149769770263226003696639160088788332222083302773253554496610282476780967725351636646557621555391285672874169312270887484740765235209875371335176422047541139874511935037125122208423453341520400139994724371020445543447816408308405098316014179760695329035109520827304160708417624173230563797934895147400105068711286694023743438954307372079107978113169878445911714850216830949522948523058326301937441575181751092110028622205413385072671582644072101466915285693748979533395069317872093170037923543160086627009383803758342914917936830583173395362475755088187440922154635345095150850746842959651621227843936654865298412998849040108277671924763597245746293228313455144287764126461255786883106003172242956740736410527710968629962672785391535711805340282311814353079730747970296506725581267966624096780322046693669453714926192466440118343212560081878650345347425692299054244555928256449933073269658063161112334697120747495058028508226134747983942544840682759550071583980472043811139375818259211437424910013753136532501542520028965610673870334947624054179782203409250023804320379612276585835626901070997616960153402941946680317245056403268250256489901622831105027893183300021519509096167578922291677178159648547350600629056645564453024996811676384484296667724551629622317536245930834392840708886982145827208776162426330576743250318958644715451235047205520450534232360698683339682763252420871883314025977305237713605530973230796026920998529366912544466603390941864222535565165442670149527734878920817964117801147290233813546551863484238351028776623776258790988172480922575466450378324009057384468921945895400334458248088891982342227525146971095998382529688918253960713713433575116750674159359716332475460735383830789023227666232720594994168882487088646428367765150491019275934283628212863910630964112720066187927642083413256717420099353314105285008622058361824913100689727920892376059670908474592641227004687803207292267573273636812436870151852811864220686968009392566407350870179039496287707675868884753896963896633614624838547583810540602657345669089180388590348790651229506613562035982609735035329759392318675941545453064921537441813058116764094608225909722407941195703045024283025260448453493092620433960300052640238986217006705583754039600397188537256649197163315331734756871723109560055455538747742234964504274785100518096524270628149658050829933632908812485574540988573580058105812925155021046874123149237818133312259883808598657617055676621613998602054938005906927239664777354704328433371404059781304004923468883754017725726912518196239076537120985402055552602795055258142524272043650241304192412169755905031891275088816048457861206467548263258507876622099155663600722713466417500838762644608949772797600698512846789236269778145234322483239013971022229274371499112641118788480407618281572349415442195499583946882505659417894855780622369615805035336444774876674968966618597112421025764401423821824870261366007975239452859962400629475955947758495201994018016030322765012493327381876331357655785246769069677594501007443699542534355773722923491879040882592756988409747778966418945162333665533707611556305196916107434154115151735898112519183538163334039283685637728931946134373323648319342002348010848843093667428863449691034936996180915262696870355275285403142573293461040781409802908628100752003251315374159399985156888674439033861943722921075904336738881154349828083260706193555077190527777224495480173466184453942237059888364911588920890283688402412968109727229371011490157077886469109526826908125221398914212287590185525683453398086913938698764019733165408063322561571772738020679772667529539540941102166917149205479870320599308421262670063694984328177890028299030910211307565748901265443745664090768853669149622846742734819242133732039793547699151376999501876333247975375118398827321029305311552677540895058941278905393374886796261646978264213422568583981818424375771196475635031934201065315346081041086077060445847182025593130678459560829967664139478227736447567565976300632044282958683134071255376518952582431566078174904413408824970584560179364567288361872623776070224141455769154504805020080874104004436891610058008696968491768349115981072553398286726226218756264213308384356266999815491047658710313189784788893925909515587923367901508665037525522282614669772112726793662042149372858675378754912574284300439792905549109998148183182270630074687975654139557911743734546947249308367907933247074575482121295853581611297334531156196345869947272905592703630276221177014416610254565348519728760315989527818832729824034566468922775662867138846729174197656743413786861873257234884547607460785168235971717249205709398519390862838567393060041956781810869231180596532084952294841727572681480077747395823808763213643169146435237214820224396611245703060510153112913412484110482741607075627490887604645936581296570177207555984514044569003975030459312445108148166579303736914584074656166230473299783444690326953337556260620433086301374488743788013960714371300145955389839100730239958738760280352960404365381539341759420101706340872894908158618089497294678432577395838215577181503227872857503668159398654412579892026060370251232871068205615990321943300166466497134955740742918478756238831091793770245012050479628042733902024914099288017618542658040329867946581586971849477589514712886646748527046516322641199520973559382933455486885880389752079047230183665975228778279165672699618408293809524926082901831094462468015525857077341382647294686103628816604262597969263037098399287099544883978806396803201044963189946480453266084018334905349061145269245456514993735159196424829742090642568437686165193834187266694389246288639167442301499977868837240040809220943758105374814918904310871477504011317197804141483076546904074795931098894469734575894718909030905869647863896241432616756324105657100414811545138849829647630043303078945302899514556037336858815557308624950693234340752854829876184272536390311317082570521267050988281233507026748198255526540710911277592316640479870826245530162881654037556216050914791504046950752013080211105487441270445158495372592278505208590487185176622861304099090995617209454791019332406733107517913617246305779723608236415299962452626113543682971686290420404334379509572843768458823752552908641116183644734700239504418017245559589823905391692786458395176791809800303641184659241698314884791077086689926580783156772042738816016805779670444952951572432582383381618332683352015545828208922353896593662426116212965464414642012003497003450992312473270974538265501748294538093485662760624274827299968703206849250627405420433468093878464068452676086946918325970412996852707077066977063195103888231334966509954684861497028604295904493468738204543786737416725271766905645350834207087821082210734936522058742524158569077488772729082604447055773219369188087385585928388715498124390264366276764074720551272342431966996450860404387490093387953909608050120183802277284814841439893871971926987342892616189273382240402330968776295099683663263363920019047052194561934154452790026975013009505462549406055731359207543913982302000392408052833835334749822900044999017111778871096138728156616922791395297816809351091665280699963201905991222551284738291239291359020391292093909384646312628912660305256651833954139399324667596128500272814132742190467491096496650120322633171439128382982299874814100938103651237217699771577712021621950935634535625015163966093458928639776135430017051859652027482649635988181122787266200525466864050795895236048112997699493806303881572297930560635382692711139164121297631879068918385507584874127312060333575676832922977334011464969193734891642344934810325198872628134645206300248831272122864480194095965957105525088413044664369716140810165478834708174780613945512346283994746193786025406446197742506827806195732978804540964779554179600240128429612304477295378528619194638613944028477089194526015376133881534304453816620624132917759014938653215699438601053511661592240811922427908251415627901949008181490867099392093803918306834218388730758838872685812990798064130695021172313600358996662080667846393369858006567356399852599265606163209460565001608000322463586889155636574679457245364164700226175606650374481666620073405357205380360283087152677498504779055576859510717457190079752124130856245904936821350040627602995698819461313871323866910583931519157299151637668870626651027642048890714579026833136074315364496424555633839372233806760995149809590292387690349862676236856175298485245782746890712222480996436404994990508530748209226139582532301713259434743369358103899221344719450280906925275538792831741237548588269203757415941134154973594714502275650822186344093380960017903094744564510177195566357258892904920257481014267662023637448270703405967321198544885386439003123465795429082546931230924020660629322481967946728116818090208066382304128009200136174605491278903567538341511213163066818036661562672274154548682121383734406390057570445494925299523293293053588005061742938841878377801670516843491333889018282872593221820338602492744797821649383568088413757471601742624821969645834799312788244210527570271572590193983042705698023807845796130664422934825710760900281945019719711130516392680389509751996323388871874768325005199702946231497127474000635152136011561901180255682187157083524718089459241798026545523177581851866836525011340151351308691055144506172426174482833179029835573874999436218747208052428112972152150005849087316129829388987139532889565073885901252353617502575360308378303054361628236368974311160624695261219535519134195860398101185158161990166594705623187647071017568887859883344244827677635449290103997529679843337235598799041545642501917522933821395093277556691137237550416652327294662992324837761565064942605257283691398443706352503009333726663119489107762174120558869858483507317545134681382361970169179201614978756540831658659476013296484133220537997830582665166684144549599206501649693162192442651233358989562845616426268926287172376661274930990681415956346016767683490854283117973360585528241647336167593329146489583462764257663434057682139835176747113469721715052646759117592226530392631432816009052964532144061046261297740124049445591793992694345756297738747777007830769450241497181258663185434242465716622112233354555024954545569011617406008658436093100448556800665714612134484564131557000560981374872152074498982625473307833292491293257402792442247528285759798606446433607129823581174869887052984941431794195077272395449487000157094723305469731937015296941080744725519109326033589474404627178153777085227201058799176114595292493155441474550899301606739387798646237455990183096686491600281289904726581506660268439914759412380440825113033594958491812418191535426003785868336442373210014421244280423527488659571189031278170527131697433466858269947617076427273118648314910642369392540080313174035494551360415151771404388539352542177576376007257541721940704486880789312708729076837222358444062518661227763556575027468097165258762372610531160518219937092608338683688949607473317392752896699618608751036822088668062502200909658383786517807445264067101480294339958980238798384773415403630998264043476223349049905563494930441809623873408966881198117651956889564820876160017152596124876700331580904089061373743555266110487926934608936846104714801090011754771752250554489312936649842758140922189032775572649908226306093424882435573961492581409419356898301040708385640991623628309157258505790635479822293474031411795845425089763365141033019523387719514791856570257242894632168212356086268625620607491881907454661071237028682854452870462235758151694199468598470124249518713166696672022461141676925544927689096706382096388655852402596149826142026175757580517778287234512834737799841731429449966941882615954612909531046977703658143625612204460318914449263241335538634039723931416234519172577323410282863731849855357299808003765118737535020927375566253697027339666465518526887305595302048281300249866899716222721940437299903372214694623223569669504969234524269741910056238069989214840076265736632497750224929656384244374868131332457152660761851003484199949101958672764008755630113286227480120974229365784534565765347903974884707503961143584374356921374078687439012335259816158081753391698677818143271441601083886323977139976426149074766559588290206138112188043369555037035571073298949731522392076048013240411191168788054031393848507406724006195519404463427015486959011980183972526233551388262921809725353189192212828506244415768878382176369817036770808458078145964009553898205251094692063757809201777855108739513425798833580469618971415944663756499035318734259246506787054695458379906472105351338668520292115727278948280230481725067136402951365021106330274552886263327765344050889691840738297006221143595218906977479207291570906548304463787237172039752883075166639255299842451081304545914057781335224602318386020150632507665470644885527561336555348236269584263464537195112283749532444117739523874451617028076343182342494119258655543519350080336503481291401713461627308036524222431847009914897730944927170515050062485101764027970575285585196271653665248359147564428811982601312496937530124433284873134624172179182617536183830525409248538649176930311447730076922516769304241463921940182894210548288985165750587231971386798021962835298664430294409935055577414696166500275488509401413796981396193835856570113093938697907196980169198516422974633303622159370625601350820959569673649706092855703917350578316453425641500638850456626963187831202432753757214429516221426701612269571872828221898308370992067053283893313826495184621094755179708078938676418988206951151057845039657080355627629537445830861982520961213892174496258228834121599355033584212623837701101572736792552747726514316546364404019092579079614673455872265390085857928617220586329231956097562671747010526960309760538178751376043061650196055967703647220043242730702537478437355744669729777799596168656747953415261619124509085899006876793760569887064304525229512820197312440730623880161640522062195344299396086342769652390246350400413481505190318581935048788078493317483915484848903305409604627165315368454885466551888075627160966722478713632691130463939802982941854737794647215741789363529735501914009767118025624903161099138485984524819690175961834043643908663695659765581577146361793257555319616820705879521683220702659469955513800025196852399372604320372394276823048184640668957754790658965732981380328246369230601183580765636629827415275569752080196757850010924125605233191802952770249277184570151365094605620013648332973606424376394105091400206331783008133442078129446114880058135104723583003570369518084330118722372839922545395042050837880534821023632391001735561071232876000903980103426429911762501682227980776060294226861286609377415894358714315697253019087736729523990354131801103623862517410465236519259292933761115311173180211872289964923724998206436051236669789840768473940161633400712227513036794430728391669795977387304014141604560492029024348515599736243026770041526502735163564443313762255249060719870440272848594365238869516166830956101001197547812990457646260089895555481359048556274934236184137373148209757561426747115403074829657762661586180548761351118505458139827431596414050310391769445010385165292851203781462977637341459870114465732658171977579800142979346517700390690461145670524230369549224331735455130646084490628910421060304668105609427731682985994236722846001418821683211734200063259983564221091162471674927860226873450075759742192963627600581476550107002975646281060509239852880711962531624971246960809012165638445929005987264587955509605814475974243805803090708917241496308805417829507737617717082873089457539934855595447078151149209254894807619215696032192028848918360040400594563883166041113353705211907275459432753462802538462793508624346336524354146068775813892882445589789711037773171873350951608537462768394317902582151051267324442396978577020274337305807518875834273703487589968750958614119635048774826163438841610476265765917168048849782268468585717727066588998597511851622901083523903164801633561660464914530907578437804378787710783962743512749926550610727603569564257981920895400357199566763047002605584344959205005756544475998752002131679494537944166344466044578689452406623625104827754799354401511305632845341007239715325715173804489423328384027806906137501744178584317800394049663134747910372106526233431537698255499632893555050642351909749625797982832556814589598396356435520674825546958371239415719351309277577171876085693940973538157698247812918760680193079609893851789458819489514233532483581452346735775832223249350691815667928548050916373025797823088032004419698085645825432698373350658066505542859738704537014945322868158106522151573203459547543370281854933839993972956686317481494045615873485635847795925190863656979028772907438904467006289203322365137309992385094429958547480762886442615663421725975774631295620420085393283721135676611401750084711592649391534310035087177639053853489022557523834108142604361661900033356381379014399049996196669980207116103802785781989689218628436041304710578365728670235906222136135701831232876913074419976989811059926551861033465126583047837964103766399938394923822772962060030396814339456864240452438726046781937799336475526620933737771796574653382408356246279653760717176498189290787651781085223649527532190526036027022198737516700283421229902111274201439289121137483297719611444432035581739899451574280007149148393234404098148217361419439852348973455496915072097938831253204167334276536214993938272790804122158575837841448536196252071496643550353349862287476418486769543485010598480080306734198546893761113959565709179269447973891078369651428994012110017660827100972921509519616206118022821436816290826344094633335796930268338600019959019895276805134366662159282456566145576992354970147126532037505361909418327052321343904701418458373987033106605592712842634900992151155070206333021563286222662134285363408182773665028658002431723856462239167951971570200250898204030798099741709655849263757818611885515735934082980062767750329051451390531954788051839785319341707617286143743833430020470912445230051348305189765502516841991086217357061201215766344242464744596633111520465652316124415252895126890257588831848084274787833669054342370025802511260563991139828307658089744117138803247260459401116927374858671116936625267736097533245773726204341494146432761995902390025190967861802914610918195681945474901699111461125583911791196181491527626949880826616777693968607997518396964648217673608650033130591563486791814653167174380988312153927620410520234113028499166591495784566476774827990468822667951636559562965290215209662752477900220642824212176301055154302886041299961997476858508142454368492431845690248737919871450441956706003234832854224463005762750720774598611225053933151240206381506985778166727581088098536442584990407034441890135984778125017068889720631609208462704475724037725501314302152920936903185389753669330799964582740688339419164271778551386874513880937798086021893787631948879978478263941521759051695470477603025629607204814939627380803927696787483569629927042302543856993032283286369486594295450485873788021809990260677436957360300989687311372105976170350312449607359230179888722162580784927036483142284037962053561049335403505034997078266464483744772709322757878795366599869879192309872219556312556686006884102988648119436934245227644611893682418107939595031302376469733420572217022985468499168243917739706354599679206694054967901833909647799140228210344273551268195198725806350520302617578349459766661271309722407660539966730622863170789637062982880844922704959295127639073101640412344094756941087695505983045779260034206604330900489948179723398637993922323352081045672920021055419755802476767144163213818916630683049229741795632531710696255342561709349706688481419838143479316799604857353269043577365321974649471095030912864862643822706004516932517553178433958334136701249040889607798669844358124502732011877365785167646223325855008959804847783451817101481585620802002774006803952618509037121288241704649585738029803216327443400513371261482094594864515359940816172845010807629733127318842271209271308412278794916264478921803762994398686719624280550997437945261250610128909437921269516403829723172519220578902782329298359405705336336810836508432991940944104859323712403730474903766500356265104432683901787810539042911063367647812478968201084390694779822424236880211150044925599540862562990036219240324989760285748417373626126012055834668389903765879172917648411018295783740331976746791923984986231640910970139354800925724895412357147172273458506429055106215943593618979071162772655414757463333150790007259036874138351734352896225755319155896510903312843832821944667212942693464106113036942565065463841514148333296150181630126023663301325286255391132107237144773186677950081439524796531740576317388373503541446716927346044090579266505209722276058039790810434233867174658762506281635070728260618653638627270467435972366417668484528205097054882654497418606250798169661482649570728239538571736865319731220807288441265198679360341142524600006240134191104964209796085945858235784488329178320118990615829954947585942320039102427058266749042399883854942397167136791270361102997008186440985877185012692211922385076580050520401197064482194624050042931432272447100245628847914792977953928669037206882741621398793495929032913186057667694965011542180234463478503675341529092925609272952083401890922558218019466721767143033888746182879763129683850886513222285157529554446418816602043590472756076124740729314636982914092380915929328675662834961642605269116660696857150603717595153616240237475820320727894705612685547007545299373651587482705150956449786517572565223163210574606905029425720664494710313896365268152493691076768561477281102091418886990733001073537109831198408278134949255775571413107500680780849970680479617410909902966687398996388131350355883620200086433099023582594206202308200924225918328527042736720161164184141919401926362326312648243430483375573473075914648236343125145049768693521498622267111560174451151271943453875473694737245662259556699949594229629500431168559510688865573563201192710166020646928661515767820772164863598411818649636855424216881570396367641805464948395619427603962690111212670044873188156985586829201096594378828058802593396015469919188119623864505413170951121176209114490798086881832582480985566258118487534610459544032385587000506367538623087803670734001615059550417192802224760001379000733183274144549277925175298844853787206237574118193370952524862194696172277437235885472985562496993316294203291654845093735707887204368253239709607684733101337788817792008681206543345260564440744687955530035238807576562373374191320086585883501011689576385400583102034281069101792415743886020598958939269196695108935616581758552238099151967288169388505078236628785849496317129643103846371742259354563389558283922598052220186002963346344397693114310165921549649522184948501619195155464116441276908651872646087681052391240062707481444889244696144563879199820831313279812399012761758707388941788464010007799441453354276336858291240032883467208216184479526240249748341481979098342797304897893713410534897694612889245795767691575120714701272984370803404233289732656950440308093075377731349717572184688508818191517798017582849514294488916581647530699049523760234247140919972166588205683504133444266175264760276049920840801832433650340662413696716052100136822526837689483968182552853900396096748969659895800770385545351687088786120398558375649277389342615668124877559341837563843435698507789382868251116499505127834351132235655791571312145210991226746723273912136808785756948038527372849537552395945932783749071994717285185054183389918680356534811649048346839741560786260688738119947114278439434189625411784718251831866519274137627088171108829644328105270089929751773433173476819948733433275176107036816995756477438117940627818239190027653920904850791385716876979439892587644205422314625105760126967409142230345147918746782126072641184962978282403755858322833224841717476830275314367382637438802461783877928962750182241734029884532945363458496211591998406290549783319759791411641214112605152079503379749156429309005571059384157896482802948682074880260726257097109268692428469560930813264409237664757453661000649784258133603932725973480283624727745204521392441576762791648735795241867870685575267712797474250830492288328538353406388450941151177021192865335323093427232509349145000859667349081816351781776467794944619654130527139628079067166948480291011428993427019591228456043645870154966079748444585342371133928097692136827706244406428296753371997630631251164509872715412637601615379459009256820299379123592735991251066865416784128594312729841128991624314526333215916313281718498536374110732029891325453097190436583490897626183447624176542938596947355996546402067747144935372449883073399094030296174249638979076069364644457575214512228387840055517866019213381192521096312446720296879262285265933100036623034533513227251167428032437832619663722688286565572599825182859055876716895309853827736528541546340318909421767870567884307231982046924380764119762669671164724972143347375828542645023106543412958665249652628362690490573115583602560628120358377279809564955063788523139940201456139548476028189948945923323698258945152880888260161905182234159955836946908916431119197589584403738926106327735668058006873285514863769806957625848671336575918895351570937088008745478764817368945998575056945664074730498034470102584105031287252590226379163382525577291830516596135940094359998234107335608704234463548966298087701414414295067708090633910853552327221365095304041026622585391719634542100293952139578146094513106317431659307502887807418334185178571482494567287205960589765578351098026688740419778370513285815162630563397575913403862588228305149358569913053652863103278187404716223000577051632044151171266783332593761586737927100084791293805617878451623215269760650607277284104665278476308289386753603561393519803563144287269283114211939989254394252816243748773542113785298066963828169569251171842985377626257598724137941777328289488128102536228455800116268118635537229044593234655034542076726721812590480827662709975480645398511831672840659061927439494232067885964788800970661482364672610759364413115425848739547938359544407499543436807395368258765457624510250059821632506329879216512803031997556525785170525775705190191841756375858053337540129194101166129380703587435708700301702733564598830708955260171338422181220173797647722613848462107921941888549016197101146650080366351286358945181433276341722158420094328688403731036678132807051766999306689089497795538309527360107586494548011337199282591915645119347262843920838509957746240842412588545049911917318291429009710276996153210417254179024350052626912752981736098035953049614393697715314469205106784270950712213303370593501150110911705085571139515533948638215400687909609957951816889251185358648710513862631625099040657549145458935083563767201084419318884731391809564107116548556242004392577910242726332038680837128820185523090774802207715144915085184657195014417892630778923081563632705566563715309836974039737323176267859030046760104595016402621240480434248379344354312042671725835477082737399578971254825434040899012410835264929749546283521132130242629877146405334367204545305954391966671743757179369865170590468840634724524044444819294476307556591781792541780439995669583301588659662200049787622560958004028961353023723149414824149868376070291422331181585462637331926968951562162336439649810549459257647078395489483757350574566010707724333430958240823250478052458981273018471118224788820255899417297375818163856131966282638423899831283141854270455731212608113486383190844384467407860333300733576407583257057254141851682668127698399273963047132059732421863484633872544659886763211263739145836829957683287052055368601591239429209019900774709479462134111725594129495150343205291145751941402773244902943753499247215542140142033247520363822502060296445329550501244017526066833207026348498566945052007710081426745795299179644182505359868492221104147742247861120569179110811770965930515735805969126628911980913063753630660711953827572817996631455118946545373689680141366241771314954825305875746960304197460993180703353326161612786941340020119581028654782875618899216155330690839047775108477156007246410563666280635452633733316422339492736019296306235616565855966325447406435143971801653184135937391153033584339528893178305889537168749412671567236910747210736534501143908455620651015072454532264903206596490331005213485166863004715471306300639729044611864200496119467963405783114971512948863535053842349622976826361953326015894404151935757836925175557264210417911878763335748043734842088766902871143172858202055728704539674007242200349972327559493635285051260178099473942528022269758661071370086859310132952100095594534940243057243339240715975951208367710960495316812046305382705317374772213207053198601032455232929867970585417817239561724920894739416729716005779236401283849219453083380274288512788718664887544614672465641241250674943500731849216580115895299492308194025293348884640652674369115679197931564450433047919536612239753812668180502286310645495057695388961564898807822896347387411598585510827486911368791118230713176022229315387919383296993086471279359823695094532028655943879978748178104122412038828427410763539252989986450094516336454617878252017949937730939943004921499492241875776004614741889898951282307285026669667527482211949946131902690825182106404684497260112521327561127870258674294416699161805590906671174483813622744267465474917823313779945782836798127772621532093895100348105511111159552449423025011754419370382369416359666577100855016598393422609871019635886430263278356031159351986964390502212606490490814373407310489944029036563409558998408683182020313664244864295288283179414154887331424854309557449790358147192002584519182144980348493051820004878292562454364555549204405798612867834332674507582864107723103384775443751761447570310990249885929368349455392252649017241747772771515090406700250829158505897592932387483439813549003839163422588108869950222625506384837793370959498389967649543114956091828152698817267696548676168087761585072629497239769380809424603321366510635645410240742491948478039477660834737003464714806549804522073450720833102046801388852136042583803393334882616270198984375403005434539062948821242928178809608028753637017385075161136327294450677008215243645686368578208321692129051073986209009227745241642530405034270423884300390947119207267367036421090734441089378466989993031029292694976669526539887880004026694627829690074052493490435364301268424666855912807747010173979894696874197207724173379022378585124452960454953467914897560222225548439380207224786867039147474009119193291475839065768044310206516464237988952486561629048102277019470021324039968020360742918527073139924964379106000557993358938384080027708395591224421259874818290378955088450599958580497805743557732832361882655581289094698232098737814251820862134879927035151655559606081095093372344585328127445621746193790529962246631748435868963194646096589111234271399059451914983372999813315290399808632668303543788453167367041501313961580785042500306911765977184757064955201534688716718102105623515808553691960717327431128791549449064663032190265695613787957034422840370330534720562707678456110795597038036864475026259411181560574060596214511426724749994091178184492185091630759153019547962351071290495912792965443303402794913518761428857045865621517850858789763864459555862961650736906873483977104019034923496459247792162973452561609281688717742885862170807800938652727706951564584670652171879177647325204884740715803809878146840108767918466153640513680841136619102314593015473129556455427033733722711846278375904216099557419880725541888844539214638090881044151305374968543098886102313569048791829527179477195865688382097997601947893474657401125818256010408838568059605965601487932155061962886098092471361292219354006916110232236917075258111094646525987111392890099331926531998674361476718058251774632200412213253496506656721346447848172369434141751963300464897745328344413086734072139840227009648691724955450872931645639349276015113465970457036663423680791150374552075916675928705370732016654826077507663691589728640926487486521184630733237868701489994245850008908895785803221991572413984232624469809609698413939364970768000890433467176444572390126968409065756910624123446772935396266055680433853039823841545936320882823550856543056658514336268744419329400045113841326195502350364224444987094004951077469263172158951924013842707875140057642868988170718295909102551307330938237264938985499010517620791401424782326055733199078584914416686230426162001831795207368205064871313666330959334507398609110989553559787817634174040297659336324619216555573425108374155775976825175706991172035640822056035545980531792011323424787583208539025080665306848074733707716534007072673032953225202671617995786135525064295514176753724109720164966794984879792834777836084149241426638049916109118399840854180016723983470189429719236755125112571652238138135130617073304400413818662877384369770644414797024079264249625854089283354475660152603305781298639661190174824127642133258517996770754923431723794935821260195235919576807943718662959246750541638303226538372249594483697675285309497980462409133209777227004961057324996491249235414240527629826703186891350110665978427646421984928832481264938816625980134291777562830054822910689451358930290602214508108283957842824237328986161177686361255256454713610530775981541697005303187412020784540837403708960374430590077832880657702414594679929607522115270570684401707552510098879765114771053165768947223884244917693295449714566221225040715572791487465631265277316385692906115688036606879953844583843250360659049605256561679567712550350859363869700850579350327124766907522752632564468622638510168640878926326438999464863079151876646984125276908510890849869021048881717302090184095889690049156510102286559025987408729494647644197189014623591359487693723011286883632154866291936107272364566416671393559142891835469374325608336315476296827725389816394025765296082217262934934129784991737128731745318280907576739757498563212781258783823802923098933486107878645115458538486550277590916504824420031057843773823800135069118107411555725588461418194786812037862498621783193059148332902684367582849602597915572292533803260000389305699391039091738986728415394745116592391606368467544134249708623313537376754303394410937875607540745893516787673067399660193710627503906046285185693358467873392851946513708691254022002403517343913389691926009930638147209468407692143872825897693273496093638047298586518911512945475716074321032395362925496917850608221504865714602989861511203894094196070246954738145761544621714866206119272514793354691060235109623555254297205365591018955445110569570053910550187693401837125429613968171199975988990146284081308956289750309087628253599873193487345498803526868718795821841502604089765286449532777293475526591306176064001743070971933252986870403690068447583166525889619072586370085298506313371541208578058422632319105632019811344034097842414700236384865670684644215938634880070305438678956107504299149303435543449779834138349437701796555816762881282691849451202160720774416702043853192670086239575579895223548842830499313998384458920678515758567580404018788406742558420845571503606552509118416736634421404090801021800066564071339684620179003789453637896928922920537998568620679507603291425340490632210562664827857371416909691583253086582190205284985847328581523775086164572349281680654185912346923159299586351429178143817594170748080276432099576727114603891806265663687142392237799306189887946881348765756107028804572557090160727694668338333852714254188070311275932956887287095853388295037101943271821637162577127037510785912678752560513540661519491666894814409457196250611554195260723956763796614659197917225970526821418576025160402664507907200112454619588976660620589703801658148919241364578575795710081347911967917833906707582094061193747597942913950553357120365428878737167487357574864438042799818079342235163153893938345234024262614798587330497128490201870879023676287595223632895896233556155680675428392381756886245327981678573691703607019131083111309192671961738327786676669651974392198000102859027802815657012127024140978172188936012517592715069575644526679768886968713690703584273211000590175101012225427291399623937826734725233498957625934779232571926286918204850584169316789581677325980886184133700616067726723990613266429261289282386311172501939996334388401574527650267570705653900874219535279686365928765321122263191142249108359589590328544961521372501013781127507807651822936769607239866850458975407947166636062492095311418417039852286895425320037448262076639737591366475524471322064532636653507673975407419313406888921891335118720421786850838369093076339881630016383199433028225856713914975096441735591221033789939260542893992884419617324173429940215566581033319151535698672148929852535920814254069815396882684570055905281252219716556009572008096298559229819333943171797425670319060974474967560160605042347345835890501734015581714119015659880042425149458106500222668015121833398370278990368219880358300723832852810119050508395167422276742929740712842127122723406997801222493243271806575275559232463619542304891311669970857715290260638074246582205797314454860194883440540927793533729844655772063981072284119468626047838115662069740570503766970465809029905940484892151863688981233884424467679384470007551855278942836897679947079732787661154111408526192160878603292861941226381300981213105589725242383508778524144020876335569583220888224605644799869744801409569515412260917160624507807062622115328040341644938118219394489419445304320147011295719452928911171956753049215184858691919677766991993196605788299522082139337155785326883656789036392742146310885644541173235091418516622587039706456539555866989858432832847015447948097214379577878555258974625388958694391505633526421282479497471269075427450387867181944409680064582886617350910696906121273619559676078481801502591074912660054583726929379498064901464506734468009297681020610823147535194445597863352824498013811235707121131341229346479721961998997190331079875758349535880741693444041732446398362454708824943800737652977767895632449854911608419225996989352774088126417420567297633136135006234442303830114260167976533550907124443216995518254612961576100838004625992130217157123635981251566629844823410200146091053074784005456241969298539638058279374481024474394363674983684955370524036344576682698266919993908384442219394566393136902091820193807127190500996532132070150297729273624175453141235158846723620456841572466832777226662018289821865318400916377759792422007415525028196900240379914871301120151507223349186382683244761551247465368719554828268733099387622518301474348825885578299796345266434262463491486582115049731263602854695228831232433548823104783906805913741397470804018817249834519711010091965577164075602533360938592833849466258890444749951241805838887379798220714620444519751444374225591411508382313533229557524246135492209525218513778131622305813743068987697206431461211431203021882425117906999277939836630176067910935641967281866457711082188078487079722065853635870447141680897000427095311052687452778833086016658585807136569200560405487510655462768528617532555301200345546380675349664893159201714838880196692477383581704527011034575632620332616338825965802715171767890001126845320183292341651909997978272426983083344765635748532103857497395976530304840281459512079418789228163447513254975273113280599764086567211559340614782398972544595923737734270002369299728777550820894012229410124518809919495100852171614382613580341674453902146474173672774801027921139977195139980256436130466001337655258397885047272532300837570584824547500835174296219243946059335554908104039459675743169858301800950241273314762788113974962100146548836158941500495917532046701499168124300440285309933353060128700026504421831915618836926546713139214443262679925721102062383162054632783624917185542948597675418683263380791586242827913252726029413585145894558346834776179306043406229198789165923736510223083845173038426786127082039841985824788130459111761519884633049966340294285113105608311442314275499574351453120373892094106520967629108278732625938363450387000781961450340754455498508257263114271619654221981534764496924061572700745304538310722842212458614042096360510902219160759014666639553345710321074957128082326853352035112875506093683938738517840548901920268048230655769932100119356535265369785233830457885315875377461232658627727272703508631866279539195112415458854531799963421331570744859736921527360118986323827514633731178866808387777632418738651407187873703041926078553445793783585799809106559110673967566498712080121316291916501513942796730236922722663673130553131927703659260076898816428048907203758342660791001233947355291356086820531875145988215848906158427888404609194406400163135544813544806181506967323084355918441675327459982308044267472088269645014065526926308435483710483182318306232813723498609886261057650942996962783891902042264988255046887895083916989879308996884086058643036107238332140469999540690945300412299240706284855264270793530390942013476438862533642332570008198705344659156314264471339970431117051315060284157176994339304543512435690147690995051999111001458668194435220379066266985709445188036148790801728357329712258840453574793949099904017538287598280259620788264493168824968552915836457498357548117946580573877654893089023685772075839887030316041292993576944445672058773848964282775119758963703259673314031385617078281955883456106766731474152278946152831882633407587150937716040062265575680861333033660207811119976469937424034481588257248352853350772744283882451350358904862441392926172499271577084766988179977355489189785672379732810670473802988648066845513604439349257389895570641818931181998078708836291060943546164141508630039465047991150407210986349897496148660174176661603242376427692754792797792739882324271215752031709290541148764026534262961474773421897444157829105376257221974386126748019766891677026000822617671122233297899592542313349236377264883344861155799524259973970282436241372620153844573467878763631908823601176640097812455602007827093607211434079589811742519224891926768344641342807607060926374430373028020161852105941086870796269018720141180359309956495384703563816009919847841037425759214314978159844896035386730294862261060035900679942193678200048887608052377960464516909084376484148477906531133215988484715040619800315554786612276317099923324640941292022710294584010458146753017885578549012715188647327538803997165942872006989290726612609260489833572540854151553266631217988129567247500672904616877984801710368742757387369931307139044928361223587762450995238822637105412441267936449226721188776980986328599829623858292347358018760182104830271887127320053695530520375698116291901150482918514983542794837787987332372235347970476884823937092759140538642528126496841340176989671494960296284263943461451579262064178722800403908506673527380432440301831083035191115406851764059505570606332698407071761720725311714387409407408432399062076053048767614580653994771043893942256689342948867253668552917475312854582886007148688963799923573532120665843187116861030303456221828127961506139346969369194470084300605834278561991166872893618288337883225531397596238043716858932140388664886290875136137772066681618820989343241021711999183265213736338334649027895123266518402440992930008226917184079451166539571649826061006836712820405099204567020768109515533959403647468402973281312237178508725069809673568337115449348210142421933048507992937993919642229802736428174761130524674824928246670809643428619944282189765917408242023371890099626143378160604674696652936489577023987596470454489948368514383988051670990695561626194824665038651217381011880743705526089060552845379298976588360199084133343811867621731923826649914839043160051544719266119211342188758212301650496521100028534426788518890632866476201178846968101995391004199448353855908399310764893998309878215513658173503565949349497768234247994089611558486536248836690617351896319223230502130464462298501244937648897270725421149850711219705920481316508521100414486388828672003561190078921309328712457483985494481080358703212098163039080758468685919946010902302501844080164502022238091071336479864878788635846469990532246565068145135061123616609552550493728535520594319201818320749472238410420797765170705954494923791207438225898736144384089924065332004107528202191481918356364568797292078457601498170678403820862737310601713150825539925757443511728823696107503001031829034582114651702099381397001356532350261246469382594298542106394684761646907936719414587106119883584716186102265520926942776798818421736274653205319753274769082958464008929342840820087669684970643541036751982581765679535805423687355622331460551047184706215893659232111445393742529850727521983575734578898151709987053356360618996883310556757089388500502230867012962906309661414445615625939649075259428202769568650064260213150831780943986707755474711693811976988556046255801102774096365269731567454355727578787834327707834173966546063297712023264091353706468881063068822880716478591573995314342212924281516838813193509925609465188180332460076514628869792002199555423980002048212473123413577975218041712919499632168356972749811099465993252422915161488079297895144128014479690761712029530711025917971652658556449848925835868733142314903489766087167655395052773712427062897206408119837744047736294235165890553551340594075160287134923452579692544661251402600106709082014606281581546638770117367858235064253521286850035070702609998802985879875526644037658237132569529725274877513941018256049839664211310759128261664401432224302277039947750123522449395595642725365997156550982124078142196265830702568638498751623832972471656378465418101240908655364833129810504806804709002343701460158397234686406903686251524327706110547210618023847132770169539815288600160813435376434229302660596844595099570636802907360232425074870818293522332411353560213918668127845399323071357789647853117012920550964512392958249185059253348968394029465898183949989783542085913018013198079603643930479569638895530118777526858361789769493199085302635500342546501222157293693271630797787892534076648210170402503273367906617068889604132770956685632477967054075008360964778915113208004256305597493628659272922699019061910103322274730796198074871309525894903157814569114678585725319020694786395080335401198542903854279533704025739515571157614539822439242622277138678119150600639572482465618619933131901986869094705449922666415323330351620776411783451978800482067717384782560516223217979639175001418227758672911391915870274682846340603023947760141494493422875589014139497239035724214803528076107866663113734183750898627413112793115655038192637880180830975801715756266247013717869353368651662437663439918976273688252656464103605599088793878534358156908541602840902681171597530500461044884582142483259488633813257012336606601727489824948858651183846230775376471759298024163101900366078476687543740985160322793968985020785331684967922213849765214008627821045099232693425738079289828473415580190777167503666605907829115394248739596953185060311047850591549033655415654778579600523053187747997144640483509967232320836272684089070152459033867535851038328332915396711874343829320551450884457291678485377200423980527670429219854767666662662085729383700744734405942816250383283099596422344555097916012841191710586430274284458330641100460447074845199278588615652887976701409102501188459014932986181484998161296749977136173141206336411834757589085924037777887520093388976349034187944178125212234414545497005085629117215942227086243634762301712204354716803466332444407268660954898547976970240364420299531977851857207432486092082510177437389205945739148504000394188263496029054053633124433304517826376899242054909458838937250861266400460873316672260690871166754958823684171699207102797986918755073198406188143627004694725881528171999806804057621637260630798404192244469297869740633917107869666227455916333544116544592820297432472071862056183897939304114523564467135613106426952142840081081794790605761138209695704104150596459800947229123721932418463557033196775457830661170142890274327555074294985017998229816269708324807956000549910567611261549577691909559940347612581362092754835805204955698911165692349361629916870099527124088313494194760244200339340249219309572844812895187378874328875015073660618609028270381632409506687386094644741703772459616655569610879321877347660572418302853786236905251407266898104061723447040336559707436953110720276685549447266133528434660256867508052289018623484290412216056385923282325918463186991863233882835233336151354470833577524431874941519531579604241347261219879892151619638311456626889641647585766593283343260919492719919650589181567187353716720185440634654455387291840364799553155225558262927361995893770724394945863998935612251363506404844442789563920824658649999205698746932774667971035612766950141395655836761999921887800929509208293180709136183424246995852692923567938578183230503496275645137639418839528068367181212225158190223271420757154161003088620549878443366125544530527503140854238316526526439276771822550468309286055121483810882751392499705864737763696897076215565134030723073549726238276142579405215606047800158442378829975670555651311817352751972791094734081145995415323791565177630966204588703750095863673699006453505289579859494049950132382223224339968541966772002330466653695701486417417672023973482301624010834805126424726083323624438111444769758028790954875930497020012255125297762393449058789884086016717413466129292845185263924732113963255951915097348686702181935425497178787609250977611246133555531763495823502441061440372564396520291442575050830578950401592198881812846822256946475977771002731477331730259884508074009323616676724109587051488058993600411475298011437158562241617425661103427118047851322036264064140498835981596683729396622603224851747612917899785989137043258537307116070562584688956085781043057336120074219236125117061268334161586239404798642620176419688500531413879953847727279061702072942474758840117487760204839176721252860616981735477408438730723182562516942222189598765276057646335800051916574446195171209173859710305638733469799641257935912004725244357941993583721915558568445021456672097868600448483727825571214046708698041715504960854128290430504995059751207775645787035407140558001166604278293311864325163686895228545034239660585853523001718734059189800762505408417127304823855432237575112119986177993588423283796591435392645870974133123907152594715668227095116289429607667961642557255285737602604904464331773836276724116809784699302935097308292897714747660129707719229144870490959937316130781593724111007130822859210115946520571252412681005802865957905176770992596252833751524876704047841089113995801386304394850015825321876588854440262024242500463463752639460889838772166619944057169970181891379985128888106929065061304947597798680046911539033662306560564142735990712957631762775450109926493632856526790932371151838115369987423475882239492748445818257472847426568563262233876435793885720751227076687399117524612844836686946000690099809841149331284926737501302486203503324038412566340916972751237406938948222237350463263451528213604595513109623258581748318382878599288556638230102325778715076491652359956191461595792023980276526672039111053742693113425543641415981049462062503339257416832745007277461534989482023154914111846405723006215854516066008285535859140620719063234976184226697035377877160462730388635260971045410972792825993739512137157391398230963403068990687317634090210828634548846851708202958344632447996028948168404851754906476632690745934516247816556661944687105040739409471365992493843465181604637461085914521163973720842362923373862342435856001525663754146864999023261893974049477591653261269758749204298403679328584877174186716677604115828523907171051025297065944814423273601827035574403113969566335217651216132284330651160934526911660783371233374255365397061305263661490259106878934807535519583334163912429525158792075214483555559834216269245008203051151545527648241309160727200345156607549808093835100478762252188568343042845834870568996914155519915223595656265566957269248513703931007761554295437126511324011381927784737870662103192803534789905971419325574102505704361386307520527384217838163648822484831123383322672091816171960975475876099503768354510993641524314406163899630083132302278839214412267022514500073277839523288581716557402688112329676064321670227906438186786886666421402818960365870140844825001250450559558846017218598430715637153294814174223693253283198909296455789891089717839578014205499921265480346838401383980311703578816164957921572250236026660610547580709647350770852043685158509360032235867416780351795402603908138180302189566282210536144792705925926140119589290307574845310848812337062221923836564336913981882237274469284243401253103572633742631395390560438289992465936242556316714589467290523789979704510285202675981827895495380590875476504557527077733689047965346854120305054419001723834248085362217545837365626813727700799088174333298821464213078570161450677157060302387209047234430577032979193668831174503369442359735932318732438235243639380540884405857099614653132188388647243163225137622790626067088801519631847730819057773799521778797738281544589506787596027310077535698145084776777283739345658677186631249769777923613005261757255345117186071780057590090587960899762292258601826572476217713193603260724965468140233481266733598082690115894347139115501236455103246958819743610949132881895617502325921536311383124109255342430461387246692233860177889481741647517990476174813712264512862883412225629475802494271120747582337996537840644187558066807752449656956779265131327402311791046345346619918337140137159748284117838066920922376961206668571152014435467421682018965470356952925246670001438375123817197715923065447675526631513875398805445751659716519241427645483892161659175571164838280220317043761147119052712092418406574752192053629889033736434378222321044597792058657515914596372953495290031511644122424220385341933726816769179080962477643956884865408716256158234886401026869269685933239590473282583927190007596775159116589451490687711103478734900444313376543298531513887147178215492193903325902347014730327217004711870930256414446905218755500882685882540812317024968054344650237813666877338625784284875854116547750911927807663210289237712774280310418942968222621880929637543987984785802030540850572838179503001336531377273757884959863510940894289661721304385004947363784264856702487225419418208735191147771849861641398699559121515932861084411416916456733429077837209091848998416806281227937842996057937209640334024625195635484581684097262014775820298732006564429376003244767710837319114332833384818490307765671728295918393725389509678830425356630459727263651060725017252358130216842340193818850519993464022269342713340007293234144491947276165200845922064626655192401198292422312800740258739420139532298417654280138799198160303277798528148099513705418501342747864654217480894027276342652408853495657045761686232037963757123653957830614907914786704363805895857937738946880998146575234576881280901319824225030736445917111255474667153013584318653831781278904409230259906399566786887144043126210573044041589326189015143701823847913675203112679159946739693384610271343872517301860899122682083778583144368835991571768379823405063590258336441522017354694487609761440037863194414959835530113906177845868653088439721247936370310785758712184458795817330869951498238119617489940159183551375401669502303396843221153695043148832877969023234002360351611149190182102643714728887644316998843291844142399438919367094407919653760560679173710419316363319945187538235166363537735822896623317892927514333849011648803882545920095009479993786014948595412769348974408161141006933557114584926222128935661739889681055702819475940389222925465410040028778303891202486332879728714617708246451957204166125775888789279792728574926396490209856481520068199746918237447611961514369426165466236113457296307306777136370437224740775078846075962013913645126330786134245389106213862624283830211551607806153563372698659379905984439179112754059576580658888491118611562788481180689754886634138792808615448935148474495688779001714554022464520076535164859483297404344158218077832689148294901979593279793679475872963067329631357538255940803681754589190552165199489085455349510133498305007712064551963767553264324657005994214925674278436476572045360976488958218608198931409539782164379532461131719346210701085770250684888218161401924575069519948030634160429362336109739038697173794395213629030706331639487325131479060853720745219452423278634973569171827729800568567827638764332179093206027802185057358336405861581931127804586678625775974007159165041522814730552622774890163021368433985681908173031306248799969912896260665584236020541136797324364994809754738186379997574958105148894365238001513658822812784180741079579214531533636731093691072668557003445374905016708802011419749775063688311266072352464509614500843801681520770466107481421100240041092652551358139976549854460774760326565504949776896429747126280171116315372818983998809393707488915137406548162906835637015274784169994743670774059448972619569561374949216397453294411210663315946376600063798854241660856818276235139765487155328565524852329831021299274026745378201862326861176807519088331438106715870038861116850915810551249652263418204805018629865630387458121756350407453088466615110097525144386618678802498309786256035328512251286289574500446160107826141002203235003236789268603730417662433913016695614983393721801721013533315820360193525292986898147756626800456668482458511787312471031971457127295641618835083658231444003585298781403405612421558216838391642603613497232189569596064094256372916966502073598875174135430614078485580730068407728133131555831071246090270370681108736847764152316825512645438661977751640135107173823199097836613604475331829331823357258715162266011839050217905755475181488220788613390905418592400460775397092067188266000881051867817223507324701111163405493398976820977720834088123196136147632120633191447453843021807932794382038825980812401012676937503974930052180677523024246677624138466880105816015509159390283422806790711473961460096369677072927820992305517646246669822088164304659561093946557181501847919928167938775590297625651302639173460501169391771916295572297909965867102980531369791697595418498721854323646567528449074741106679068000376715088174945067681745644043277369796433433289281540097327139290516350650884402236380918671259654222404644024361799620304810586827646094054706055128264021092423432278047421938822125777360804004365564364717567306918012084649520641961451511910322461007073052747724114147921819654219667986718371775050841212781836087443049737947610949831100066614148638052413393131663172418466037408333592833602998433748271755148349385293630632699376607750744520032912172223463293203248378675105093501068112614419860438549483017784689013390646138726021730444097975605921177439095931373191052865916431620133023531481449706140858287541838400003255991216814987478149843431054642029565271233727599619389382549955780106502483161767357166088699372547558256036988960072538319349289647632365764138046100046504278973373132373739943293692293800852773287514140579303915720154688308040999836534201045488154129472812073671149607437840071836379106734591103186976943594429837890459396384384825693028922081801374977903816597331655999996377118471039915349161759976033465265521475008700078340949184505232229491344731237035530530309072926982836553006065571278378796887466569767270298961465577082294771418472486029134993183021781487931114110345367728434842875639716723393067382336886998349668846720350761860009131486055624142694333405348974407204543567185118751331248522891832975604724004733251674303021167234204498618806003321609316781937413470921862617081113752786395027447890138816091515449268569413015283222471626063464356196613543595356554582917407954110856619095940166615112545385762448987138422530211187672026013299252459795514391432673492126226327516571869398875851816117790404863693250282130275598144270704167549789668740355441109828241796116378362192302420466201631579402361175272840594322844993490784792025616537439724286529961007797892164189731238142615231610493759206696326857840434787943484473061206074127417353133878544613897028452607301962408595593368648498304874537068169285603719036649817555708914887094570355887544711785000495149376615895770251985640171912433290468787562962169333379566735400014451813867602310462456734885123300423019066820565178001833422933072212946727055037979152589837836759592539543110098519587534184090328996291764432382058421969068514266484119112271949771812136079108453576343465611310745057479884987641450133381155847552426194199677555748807522407209446785366327131455082899186954476614909715610799743650368449254174346156099902244940355341266921306675091993684065430528426975534502176322267906094946384196407706220091449035980906472966533251897002722601410530743439595981574616783706390690069140726344730600656033009462084375469439452441344301230678230354055143118484110392072329811315853375451979353161900294022279861594016840791173706724531727870271336939948548333862803214307335665968886190323811570051807971501265310976611933202666057606545138755867464301591559272353759939344075817951088481290590774006815569116125003253156317834199447795637954923503279278538709953400650120129542120690207567121014200035031635903614567881520027276551603446020904257881189492313893248479467981342543683094031753501168771936935305170950561922263970279424697512086130363172546288450357576419482624631380376913090092695964956182612610272481583317191751746194372734503431525965442431448396071643382306959876590318183298662074524823829758202254315405601617728856103934333906843149958282173018089297728482452845927961599502504145610410474313026832211380971033867674149417022250394902501351443605187189208632616606967566541300034020673802789408180337906576867487103099527883451530071808843406301698285348839050744627962689660486010012266990218775780065855860583652165476753943609226599805620359348709830833975938819049545063017733597085956462180292745491241071089859488027490419329625928280644494183065468863255150356414808069979227934896259943907130192103964032135376501685516180157617894757473804108221789423511139148779440413615921424306903800222823228518973729463097268491394636074476544031531728971364122472240800864456447317935760218340612160451815135878800377138688828934361630430083241819819388940173607946289126466073697259861031897103762447206500517628726746054765018247143679266524685934127105557923351208144898245830208738982008993830411953027382117295752742164789149316629072249943244230314194368945514147344979693057008828849508023355482684106577649919109013010532353319828919724912616225437014971619695718099776619717844176009489211304207621649556878573359096990236973780206588519986960623270263467587346569828983841405337320589079494338872008247419827708943107860335296251009879797463161466744053866184786983021411527774895867772253836801691857873489549837898230742913639856434054567597722182651862757148729558998907716774822841301642490627450085839374736374460284395923172873388196881091089325373821180789632414919937134076060917090581370614581679564610522445954259614029127207152491695363325610685713030499121944340498317663393553590025702008944556082481007051628685904170859437063917474290532961664226799624690027008629411836589313134459612388961567188996514962421171865113719686277266070082130469832980373054653703984714386875250208619236661242773962720932787222312470981309859238402494414365805942158026340345051815125975874869973766783475418447445669366261715381494837205164018962478333456580062248307722887813982573263814394823376369393675351190522918736407199183448413229800058162108352230379599627689159738962530030674498306799573248668563762603723581336402632367556404146493360612431521916253231540323737004765478968479268347966020276808975241825417785853634589295579649610627650743625215746738219243748226294809278461863747288378630319376142801355528548664281737249141904986711361097108231231165162576383874960932848895432112768287451048867829710494153155556088824861060497383980450305066033288441007959084101461601145660332559639977988430277685484418198674867670032136504534146636848581718678894799271370796407768438074229171576670162433699905970055861837848149936044068906464175278901986911334421734922499959385526098210091002628868101090976880458736121901191539911821864066048819110467164735865847695626822137075842941754118398623906285934853854710677468982603580979602737178283364401134066256605805191686676020094185466903580385650925924272345189730813460796525228947438679058895185697488767666305797441610259381089504366148233938942466941748980906748083423733998636358500729745019737897959568921513588916542732433315655792224880434815872392267995042539760052780176547137367121401624456635840942046503938421109700077239894231841821903753577333595716239855227747676162074559180220951403808821147179131132444140281806813898207217027979925903468846268211900834113335603168774283098531534727617879719064583201133375365485534024353464078439147959015771427075103697481742553709961395159882921205574985515103113142429489071367531335540677371731039460824324898953230795383202213308030429289964897431317381079913493498552328455721514771294354580642109040520814119270134506111658875366224460569334957709749101117751580715181215482042723362050764899901290674235978069036054460415985797618232015931866375236743563563690340849882258945797685416396956026524453078048718748985846120152590031839829728657456551748607674664911774481461966767391176099007545937516891907374018297101905606377947571858341765236562743012619045267577114530253947989345956455870732496863686431044734108556312632544785469057296533879544999189487718730367706129145389688743875451843343911847001647622002597305849697286479279069654603560731844596068360355331476698020992936742913471987715290431759562857948866372234538571916068619069592206124728820744723393350994261105076624960654955088877544764073133679731730012711268772828817448199614307496138526151466793149134332702001697648064855095331526411861497777899515309588440985257488167292327677032847820174382866834020039170569260799913482126763885875196402051411908863493367869067071743511789492088755883496287204386459960540883540267708256056522208653374860862948709893038059961554380452541545908304300194533884060406737591855105735697237264483666609163018615191243702850147114339863766849331526064832959319533555926401790463246423238564516381871460142158776859834893505936325858258734774713495824884528213246264126833339897527560490227368255689516080115324307940514839765186945977408043826064556077533973718072607637348987280379935864641756714393246129229629222513451455597422783031317980773833430639572076751967385542426900269167365128041109443413673602883500345645656746315722196998491075011219585828498043156211665166390581306194764253968889452888897591449927797604176971637322663802503004604768035235123596110410055170436658535828227350812242600556773547525953544295216204161760463258805992832554707107599050402897329838131428277018784235729480505758101310367595272484446115333599095120073352245107249864239698557941956452988915775665155044348673810282793112652221688317734262360334125537661589745228856262712682525419428252821853405763219196220458918748696531699425274128774270768435993103513330444995876535004413105732396692511209629606332911910296652587832584379974918815305574794175963616742922172092612166151179739044080088560824914591852414028405625237734885006978849602214839329304115733944603506442522892422701748834274960955482280547265286643395385823048673560381713191870633656664008048517265487219124509567159039985454901925406395613577466048517812036481541031802932261449829008971174831547620763021006990332205466117204202170723250267363614525131083019059352315579221462822303169109020846186331039790272663581628533239640822774689921537022103039477936427200399364953771343297848166324756089366482396870576686468894507509892165423987526814161125884142432459461991358757132311283683139039419533345134260683195796007439189615803967222883585170406214363673811737228703059889152976131342264163330728257201802412429362382297586821161680992549291629812464200802309538909449397542740603363712898186718800726507703993304630580234163330796001133200969476497030697190632979719295803645300567739784378654210925567668802860613864043531771554542313540986839903888076108387619209967363274955582366947164279228785762083768088571957472966573473170757041096626165903670668267010799800195590980863136639178884525427366839030613114374132844651499750452173189388223922908973878813805169191901674215547918597011884635122015147270639611109828068365420295865461844310338734706145052545547305290910138700284768538082097462806127405840310410230760667221602741592421875490724241582789681341186973674805284027017891134210326648549629312856365897139719165927265913149827670411299677482730931257691931392753324636224932239877918037996684185856335014093284918245081898157776657045338946277812139863205493154192544938754104684312885371401698612867144506261404265588065074625201555410792235471731025424493483568533120328890828116670149470358768981176739534308820102081046593651625661231050259364922328583906653695331446659252553149778018819658226683111928224081682467001745844108987144996271269353591801880447236160029080146280900495865904455208964391195825199557167199327939824430913181040920649644532715841565729077272906381289402191340410097577504036454543297265552844855698089288274920230348779659704301764447902678193929083586215829722871447528907583993446686056118439632657122430294923799186310973586398528568226220875428200831832130065571650241595386261023424252490503347922545419884449096131403068527053788639675721862295264480566322295692941436341861748840322532655558348158176396451788872621306028797911992368437268002889796108365265646441198918285200300475907779043719904380527122944189459924145854453820296633328881460455625280058047671263724879520431587512437138386999082454864726069707920761839008548579870586232429558107661380472964750792670370963875461510810524406715221583134648691250641010437906488111415045672340944486105390376883395016964383626090521829641697476526968672530852965368018839679973611581762935935504824549344947847498481488081703002386531533870462992498391690223634917667125592736114434134908985812999296102107349989410510995200202488857857645385409077401051242697267851022187985394042308739031314119348804773100707524074809375184648231130070417470410078704997807785504396377553393895796081811270608313335503221388015753170923454127633498831181726724276262396458964113064214841515853508428395841131838636258620120789079605067898636056882109809520481257058226691725841873183274723486962877484253112187338053779988396149585022821512843829001672785744447251404711115740487958966538781824708445066460396243379032334194620633446375040781278447686854306566155239506616605274388473523879621379127348222515840393656851955819948601228702842106454635660813987380151816351427952382064758187758288163864736346387864081868395191921445935110140650937909748994231323801275903884965985344731170326676275613503280324184644009700732684354116325905133050111463313056797206646715335645652710512755509907387385585108382268672854000884614986465293839679862162370537686775201986683566621074726166512157508668515064828647646866760446523235202648524242901365817400586990961674629110652555822031362617581640742568065829911783228299041435133069503565388009501290951571986123781467460364834615311019711419820694551245106089126656242517053812332554782342672966011307002389435030466761140716395637899671807628950183618542501194275270140149598853630982626850012010522828858208290374815122467587193985420261290527365795686672360354511346042547230339192231228103792638798594335806655029707934069577086475165085695675889446823243465415014270727077869732478308390061488350316461821085382166256402442402417902674475665907890525997913467945867507727521955487666167254476153346271891560681108390407881218214815888870438280967917586211201654534151639779794795462771310367748381369849732905306807156981600289772907658020588403571989571569003260144037423262679046917917492835409321462720385599991458617959841521649619987224526032207019582682693053510512139674949410712103953604939004704238391064013620103718239390558847363177653826825440603510704160980057721331072191856447746138251965739978649226188902871568919838817351532170672166707906301217079784724647021931913717017120785505792273097052666371418437382583550886164790913418938157676426790298904278346508080686652560761684269115596014468845386800633967692235943521010811698663918481334965343264764438580277531460142119331497657845371642134781363079181132625345806651325187803175924675471512602749046975981370103750518500271961687311798414307765749900046386326623818515294870485959646605753167472882458110512686380594373618916011394733628301660533681702557275818447629804356078022084198077875509040343405532268445671920152697261902788935597094860380021386210733009224331386476024498461856161350814995752238104478711072622133112039732347783043238218817428303876561350624613633272847748020827008795952289431157985957371682662243073502891060150771029782980720737215948131983913632484039874507560463897151197751197781846024764005427167627555444873200815831589804273651875235087743752639021562772805958321042697994413836725532618591614290022407940491629339388750596790917662182625321479715157904523814068089693755638712110147340974204452217468402010552502500189243352314315307259131292424757191866996785471878585861848864615287054429789883059645365456057720526679470895950733263745450856929121878696476051818369946527622689863760419344463545875423151441684114770188819381943509283801227659362866391496315858297256215085052384978494429645979134992811650337733594639092205571184198236586357659517553506678993407791733827348411652462675718421191590146081375407026568697949165677682976749791808452883054478365692761260780521515463989195587246233638306942450785314265757577733415748430947292163779051892017911396638088303364138241945555075982169223287695491192073806141762734933519092479182566861536044916525677557860882444451183483103849603300094273991857824272282334267476535299760572262737064538320391461643841908498990843443431611755670734154435766921294691222035764246945965683542348340204561590979466501909495337268699109957050598222269498552820742418864826429517328731839086452305703181976996137804303566680285510124835755727362920466580291168461549189784006706268058597521495359161537542606098836216932060426803196598496574862910328763827029779164653371644020103084512604963286256572778601309998007004258599857600272658101529867214187160445421389664789013840089029198750240940512710457052059250243002948246307597875144479858794655401368843706349617530173216565635092819027690688068771852049386487809708210341351775267570201774376980239810582874010597350577564185633557871980348591885079150837160371677598481571155770020778936791120837257572465075150713889465702887319075033750595676477325720629897671869238381985707915876400895442484892493869434714055923096554418833573133923678506192723557274343291804796224193024567206958808076624588770461601344087559882554291576539046183911823219341690514954385557544622515824356061108334149569388182178583112672035811041451674303859041919993634604875510777391633036938090090372286356443250505896592890785193321748431411975737437746566754886902829799966677464426240320168056443917662827078630114139266864399979203452628772681759061630569777539719267777557678814301831600393804249349583378872290830927156135081470702064835802728157536440612417994498809017267329343212403437539319477647056658008434717161690008171276587736880872123749381141607630550144631831329257696111774039493819972802181181430597463430618305787411329625172988790481404412597982768411333261411127218049115188381828287871405988959601405439297353875835738282190327264793853791135663829550210618115847953390823253648026757320232197874258673263091493797831029368063705511181068281474762025816349051748819131639230855764363470146266181418400390501350300794896189573600276980728335094670527388420734525384522883389975794377342002646147916791225880178106844432447442499700623646294389080575613962803335201943820273020474557932203694673201940258242782974736258868635836597414005941765970367685101980122878346261351288800727438691113528618675882282890641187464336631753134171192626756006352610027491772019945160218385829628436614884487653822762519012657230020414280246819446580709088370258293870292278421390631304263318990825649776155064736974829880595671668303893427941690082535645577697117545723277439781752495316045030956639548777055430147736410553575644968205241646493775405891649019233332207659393137971056648201284131924956588344711201081457759764529914454021034318866409263201166843337673566692087986590681332950922533967288698199219297140969033304235189919794565110098845440119311544950831690785062913393751138021270947349338062645016117934334730812732454817632195133952103739951622448618805244748466760646683416900442718841198026905547131283728279754552390890158390614696368735856404696074153995827425553890947276415380884190394830567593780831547623412965250594011880348807422407356842121309516726247492933168170652605786561148761503350358731268755530992472247829629680591498111625330437510024893297701807190644695283518326937755088307357296489546241952881388334807887301662294374842308031590050187261623923155520823219347078156433387345900234587079927641124813778651466791602886781569225463120191355461252574723332803572881537618625261049911194013846227388010055397019814143852404361264032819050403296039101709550574919585007287620470898962541346473470071597473968149435893997474473227861004919264357224751404201611663216621982763434217688056352030216701173457729578460054861504936913600444726454202789283023558910407598990913313789231574645927344046816708051632321348560550426576425382946851266337389198449267308033609995102562859941122931085329601835003756824060749118434502506455094403215933556588359375191136665157992144510524271302657758041299163753399993160793242885697788414194702551322119800484320058524829127382802760111941615377035791769637517798700080573817123255078597763270460114267334374380535970304212845426111314669724889504956400717089612517712872436748294005452863954846349554105821292022966543174949984771099963147529702951414894127463128545642404042824935384777035102893859558894051785439630373397621243759897985828486373923812102945357931359485769345719902785139580502647345348561169918938564216080212935288897429412950033480903380959235298809494400943145061859931024895559737327628955524944485158726099017643553389927407598686819267047725151015789395307695625997694800359080265249041231115215218353032222955077159361030930088591284972856768756976897604992731795480661750618567948300752518488743981348566841275941922007631487385029599060927724944970476667649325433770991066815776792622367330286612042211935470583056381938513490793205387593216495053592450407869185455791738776852274371353416044387256148610771429149865257667404450686343716905441116953002864060391670943095784105068279045101376097424683866457748938729941996607390498398521728518957530548394457916245619278971540623514010889322585807304561510902034299230664973895991814680405098924732833489807976988180123016523112214441285302256538067426981856591675254615205531736101509236889918819174150198063838935255003744366363240566309830326152949835776044744467550088784546479476908437023846522276844969993130416347186778598720863074493839344986055875138601670689759484237891656976345257423928589969259725375895168226203226144506863000813847152945442571304612790267492350498833135780509218108427739500019034537244897970613513585891411360188151994077587497886158996133357792615927775260621467307872494192845141881490582419937284633820075776731393991425476981363846958985653206787844601534450996536772753757832485006663144885985442597229247139938643522617507184430493418079394944064099806504682746367739539444709294053845471964257762253648579202766093115852781460840882252212884080591958256144184812500736220424940419379150920249312736325711269657110008160724510934170103889587567073847881477478168400894692526979881371618070813957432385978914564976222016355945539759637904737700349079844395017281051765682118270642530261935512656788699802586039182404761082237378019823252345350635985361893330763261857810248318248869594988024987078618496741154140651115929683240352168142850135329579173753075249226526492249992517962545324995120098617947985375154585908795963675608655592788471815376989421956204007103591769874157821378273358576775095070602131345445783167480945298190617581116882846112917872516146869336369832718711464037229158014017047101572596907711174486488369791653371860878270994100274347471723224503122655597523990158939169119210596102720918481072068401891846883443234150772197738420529561710777584045942262268662062190379415235276056585711687975410799473942153655204049446725943019164163561906564824315089002211128654466487601739851585932855977818137631669708940379893301038778805921511405981607405600046284300269598204046805380111566796783072158444247555844900177044128634263239102024672089268146830384518961952839842481529374073905614725976102600099736894547382242622605323732024477658977194465741043072212980565331719282991439007269575031447506695632709791290540278345746720115534794325408826882676422427106475262572464115111287711279330058656585931159773427440396206951534412054896194668923720277495215290988796457809377550000682847032623549210457663695738251873040082641646557498744091662552498660377009566486438516331946029376930852704136842874319784060681332484069942962677888120135479549444470958545471722047560061599661835178825120743445618306316135553645836551578809455787228985916305252463676035112383924943378687305910843295054402141996062030482643254087516868868498877724568090470328265640214919886268987916054531262447411070432003365444323127754696758583085705071976709844169755228673053707651146458277943239599065420423039861167540643541684652782283027597800265151486937456606935165208939721416840157168283246389547855141556916239941124482085568541625902387934729345708274143234281080979445669932142713885575899487003503445970207573752164130471576802161458939391362930237035975380624142984366155652487248942295484649086743894666386592182174768755240701237455217202502117606354858257621132844073214117563550672473565607708397409468028127695741037124063957282142585564075265549947600069261098429207872877825903751285090352569182706809227022801932179952582007924384240544539724700851231525270877081993938121961546936259588209577226407918401357112555825048276904974499145320481775016379545092958057249050480590369054337012954049790590458035506893739552055412936794453646094060451246125439206559817596757319638080338162853226729587659215974998620521991104750168229246162961832621719271094687072686515449091442563578391811867284481656216824741695240199309298678706866674406620127106607079009859647163925895748666756963987914494212738591886879250497505598627254659287295412422884913349572557688720270161437356897095868488265837122675349591088738523424697924114431634732703266655981779654156361649002623693048758484080827006092049482193375443499717164481777804531464895057540864482749620319826318634222170757701227793272296597302430449811754264915488610512856115379761483077615931482419077155076398967313287310929247642108489041342565472892701119624902351775261395828813961211367854610334259002996829327408885504056210870014655255741811643925360494510148886603462554054744890149751593607139594910229716275549550276059335447018757168436484766139645080728391339644251465939724652184461264654788717145245167566805808771384401601801760074003468939335992548947642584299544364223394172904037790018958633875727177432341651348646371726906762383406075509499330719058241924590158818811819716820902638652340830655841077444832510929729475007219377540687107193580228696187905925207083237967688571273315353735489741240585720708991013850056922970644910311127188720610384879733519513021960509537366715986249597510744985728955304473317258106743605085524644609439022217464696121205346995777252172811574081598637744802224113062099749653608666968458862743472861706272473969080127483466009272837249378108290485021225603203739514467677458635842281810746022498839884650264955567276433745354274377580147054827621459256096009888411008501582062590037721289255874074586129617252395083265808190304621340180067022215393254916135823747342879083901327913079815242319629698638874844414324724751612327350277364264882220099183260512401480720781551853770446865464452631919899013686970471123655007302403287060202967497809774000300725391863578186069651261417489949297557045392246635719114836193716790904001969425100221467073307808141343994347710989795709227951287990239766449041156086630509432336591306489573435687012180407451499616000803786904715210638914506676166234613486021820695388272589740264741110026518402606602651275253661409405886019770062466934223844450404425003222714442550467744026521750043549549396999745211841502597156583863116771721942603771159287933857838026024929157636359983928103109561453761415486706311569182765819677961747849826579691798062871597786308277336067870184222438096448186634233528993225328555887119670108819881007647227554971826482903039701003918226304214032823257047180086858512763263474364590338317743948893171873642828698301517781374189327439476669436504366946761835976001158001921317022578741585971781873835045122724662904128068496574322242074797733988078943594156350994374615212275469099573007457098313994303570011332741687198944440782287873249427406969806344164507290548466511111287559703936336228109793873794682435242866077037126054628888273620369071551600623895951263212449361493878822022385643072837774282881694978735121675123639823400747019272916741132276968286776686822116309336004118296910849679244390351160087045191790356312229605415763466762085676097164802208536349941569351100379722873663449765269611166427833840722601838591784841435953440720526892661492005777409062366594260884104479817017503877241272173645068603853602684096817074834786887622651009423382568574089874643896989422217498584956972106441494260730458182427255895212168173671992293413511207597138171468978158148488642702148935568459069385430435771835802534834499475861982074011786278422035069598559281653119135038239105659574671748859628232540558487210239291177129506395469567056535515852184030422800465845442642873434323323392731175817953591286359160209156455306126667927002780774607682558034888137587839937868709128895687182658851975579244859705959220556570907814278927473579696470334700839348505350444225385780071951431884176189747761809591777012901571474133153156192528707875454439802160931702455655907994913273184033653600029208019435050534538642174068221789819856290804727738920147565454111760903463191506265005024261863972208888686614985683602012910509433406657533629394830559559768500738059084458350594527588633296945250452691997706138357216537782064089691592116231948041308070435220617986467803539362368494257082762799886686619648779717197384211493558104240641090416108853825979959965646919614061255213264461408804633637146572348777423914152087452329196618000742038898396809418833049227287798229835323543670013942340552104551813407164062455080291083467923762187012443283075129217011695702489280826989500329582055891599016682226311716887297390642503153104462421100083339515878787319397972019941337471900435956245668772753464367247158621841071923666237495133970637928096531410236335520045503738250300467571735172632429699127041292719834885070946617079322299101941250915043676275310668870175202077239102744811880017828651260603441922167210273896340914167171399990311925188873742086392469681494440915060318829688365865787458450976801591742256744475615519534296026322211639191236267055388046593289166642270560213303657254018763735385990800795780491398395096020087688767502681188619288543596203054358544707337335460000719672700782882437809899816725142792556250821509088731329757466008251472865936916402234119501086609394067927077141325620044709624996266214345797379192205325200475509663594792318805424743242417370827940592922369080247385851166174660929932214852760214520106696572947314504546510276718508219646398520525064763567067893400075153978689495857081957542303305034143068981726020668661091670872551274864611612875455276639345974122132122746588815514299704377616865439813440589838798270730383995080977167726005865142202512723544206284969182265433392141555868711091333457406329556028882592626248328005410289781667415814740962937249011327766373986984867411002012571727259338853413589604025422426437806551399350493557520671083561080960343859338225251220981555068368228025853543514796703230590523331047450923009657921594894115997548859143124663405138915092561279734281710703594631421157948859363438693491764336765755813139658857389059968389378131683482851850665496611039151786507648108361507423764885271709805553937196023959406500792997939777377150882851323467306056388001852139253167872735678620844986890279566771358234607316740871696241530340152025824351301184453943225900313746418852849215437166463736594153922499371963676805958749864394820040769737642038437665917071855021353243132287966906002684573283895642159682687035373793134468401953028838302080631977659279130100569537414686832791285165779413073597599058669436362995531935799787392943560550410857879950624577959134443139942639617081909602998096955594019131760236773082749370369633726561194258775805670606071195220794810216731916314479762400753351363665300385808075791370024125378687866312161910437636898007177837926953448550104847142833140846326176100648726228064146741415491951324154640676925389433544457293937822904882287466513573657738223144124581683440489967624623625663483364237912116528362128382393514981677801951959433414466018305148875252877862676452026942710205807076675074897420147076228693842581737147595502119067587056107560797899289241566338148539486763709637063030247817411312938038921855279428300001069062280744007432997829171471556552487259111132863242998411963180929197415055038882083125965658950867713242465603533894616884205305429891030681460918870210725669719573018821589036474229997929708967034604476722380294160108171274072413935030593849551744177679836608622849147849038645652551390733627318562284635247367709571913972550324163282117030716939456257288107801085015411562272933971613173480045033073293260102585339848968224778346062500699840779886899399925277714986808832295054875416000845704899892175857863196482601479805395242971222385176889352572924784319648814073474500599676027637089400116097394606903036055955602127125199278471175311528352087834625988249418846896701142767447952689028168267663575703618780401148346688385301949534130339408637677321352931695343433543806912221309676153524978404746094933029299953487825794161195146284315185885727881344977045523974183936006742861068821381763476463837308421274955286248344191586542492473363604944674184130815796220300556858744987750176430198150222071633081545053148776367401550170138071780391598324623518115821384539996627838608139865658408071529234029143375648316186730648713221488038664729292815130975104347381706983001025948427798710405323340766890053172072643330885112539935474974653086797356595749552855856944636537062379448764651533043193215483031842300030483177164437416798871609011226272094100031337963443333188749253983459064683163548660875588567844859316604069228500237404279219611891931789088900869400236611362445859796114272853765501683216137776292856875695155719907049450949916108532780408133404427316740826291758192838107185179134468248970073468630684683700362402827415079497113291341960403220969102304124926332138934108336663933607281736141424371920257657461027289229135139426336728864253853053468567679311673004084001574733781407403251615648708354967504357639994136424750091803158884845697453749623733138068689790883886324220926936859656328190908380438914293807677164306864912279753712478144738118702420431825159735789691719477586956662278489562199855808149603350129385976202054900471644091182340062314776692059199632207896851626955027197851586777177166645037565218336348494578068468209192976255355025807324419883649260453230070664714927020319489536714156447175728938490331933014359861717640257284107228845165824874297670302134242336840122585474522616338196335988048490725889077500645780563535483316769141840669121453837951017262971365686419473132331613733848665530103925091367133676550878812186096321750498325556928326808276720848824352709084662356957322869678796951551794138721646112294131011960333266780965650638349272045642289352629114465475984363578374540851901307991132291091676397519007467348621245575643231125163506867236774354994003397648256389312934468201761420261258850722030865842226736300391081463959682956846939839300315737757906228412110243774526757044835836150665232702521040720490734310792638653389698737764639055256588752934393128124484328966862153902383094924702325446737684289505232887036290067981733054680227439402296939167751711402331359088630454808291027223571295716996757131398503525908482294285873747276234538550999601932567526586292059641907512185960629793421415961947758559470374827227187447148854568984983379537875928990844044051160661669587221497989738809406586209897735636982672862349182881361044421476354044459382514836042210153554577093679414066895176238541050441628687609181298186279493826142100001905627006715687777150352972482023721850146061475954144585313027685945018408200734153245541613893256268041046363672168363650786645210632381916305945725042727128792580969320500037541712732174548598855923765973212882762992945755133460054295555928277426653739700021134849989803136167896060374271941316075141441329077616030926948671245433945827334177765808855528348427456309753645262215072754386782383224907204463429150131144201279239625829255733815857002087502312752809516293758010049839573179640923359616589311829222842981783458333020076046265074684673384503265352218217445501614997482943170928352191769951240889850257269022302236017749691142060525851371799393336756199399105547524827849031987905380852000435122784969409188236195167576998646540836244322236911170427424055119160477295790956912274736568569999194527368407826896834604925255460477366239848912154343510029297970938390842769054926534473516685868689093465358604128762110037367693012383318746476632815703717198551859361172732903609271981840257029143702744645403324038273773075474377389863206773196722719981335747111530539835339347109580827267172913638176777068165686489722721395270416206822579433292111123114890527776470754615759195582145628392844096509857014598497516401151337854972698708708764309200765863222856221077268024306633073943406489043607184226567719632908797267252624790885956619340980302691642053539591015517790755083057303137394947919062994394733911475996800156803896726215138653439635893738472046939209474106399793465644959624740712797742816352403461755863692204119821189408096158780043944850211712293545705425370689915101678874032133758051410767560373659132637549131137713606272636938393761539366076823409142407605477214642643442655150617433804907576190286978925177914967827054518212673253231245730699423219216370212824063339209039460517935989560021697554750911340994917345066468852296199210538492618425182764095674588234126416225146382087398100754185197978426258153772716239174658278890634678847560599280777508733756964206613540566513443813406655654980879981771795799549517550405001924494061423800085433585358494222589471551283048913466888507281203942534444189129599623250333496506199062299313207831107913857520112782497428703936050411091565105484821896772761072634021938699769298238668225879726933562107125693983731655386168472262011987586072989388943294406128747744775257007547047391088015208137792419612402700393690536988590834694468619364652849017587533464904776032210814754887440003732776885978332644866357608494284213323950133097238318978574116511573296356578158146418511932346600306414202062486128151134340195943607339077062112856789024954476217135787123402816057271801182165235074681227882824596936134087498469068511059909694319268581959721188015519769051708255862948496630445811751718905557007198825098425660061281803902464075702420026044123362067412480373324732585001567896474300510485408842912051722903731786047779183597427875095188549688012847859022748039229937744282936865395375551566036259743605194320915055644689112079971597562482445234018840431011124393545302963078921943100760423399385243014503654518695002542204986878103107841432104942892663041418591687296879743329986290434831127274228702888540238721533863419318588948066628398719583486196075923033883509928197486064608486040729328502902560778797843345833004616436482797247078265396156252053644686357444134402063898564874898264808914308173118422551165386925310478143915011185252396123915149636492921313904382211047026059984043070572091934022096060464104280201259905282168156588241485871069290350374993033507829298576615441519616109933220958669702309633834309253841480106934500104461521363621896136075169253063052136375664264758829766778193252746855512664203628464968802580950303023224745504075051084443575029584394228916273936607410591054808643726610073390451800900690611133448005173341268865150129240616132800208838018650986103089931280995469341523151113307767011395091805145871907128965541980288827439624282052652905351489937786406290277525382313000563944890387314480297646749002005695434162043264030572421002873171825571310632890642808289678707315668208128101430161326430423805358338524448164299721615699031034657494377721853851689705707703038778019784416229778879858876030052211685133979155418304170536256041206165972376944334436847119304109599019824785551267720208109183790939644824613035670066535384377557574609171756823348412924650590014410111149201915983397694331974903006884596710046154729374265562027846610421328130346563205633287735543971300392173613647196141487806979330990806641233010484521977389152309565952205314699029077876664473847866318575748047756794573401308819881229138969164356519553234451150564628011355451110170703947016419303942816355935358782507348895285622459131055035379112274020617163996754804153529188281212462207791729927015759544920019293767664499433498278092356247743117759474731115340623017496572168436621369712586806066294816246856156538016932142346497194742133228771374633955456463839239707540160919165737588191774456131981538144813063654767325254569503136449293783355816652684780237214876358755568096437646499259238287532883908924001074164339424634163908173975896744954538625948993136871848543577021395238424704043576735619810482155949330158712989809339613894776937090122378517826750062102432401677924284989097624915964438534722014949096176426936460594090238292214841195678646570962828550888977246753024853075819577072018659827919829328714540401193551512449041316040472316059678063166800192415320106952439987455273867532248987091762846828203744700584608015671671025865253450695811539131096071172793584905846199430657547287469884212191316350191449295028016963471443667709292695622298355340925346847703850506095942193865388290576035262225060607165499892706947192230151070420589555277762355014409292215484055432387280904776331878895363651763648003665837581634067949540905222825902486949022401233325374231530347513140422691803036286070979386421134923707057543760212314697290424965384185282227232754998354802386468560463019595488836648003284633918542154068359178198546999618261473685608783289076067300457292567546861362202324938208800665079655611190214375980155526305415876695737590980001482950552410049144783360797089209994576957150307694847868560695820270359848016440163052661140536933497387615840584078948119709398596801390720477293017654216558134932368211298085213776531467595708119667927760179996768652127470224308864915728877744508779488061202110883551408513347327784042702913662386649147121993924546242009577588750778725035515388166050703626586093838235468149158664456253747214508904249604799147307895215782504968777675558072301854505088568177107727100613326706975996954446758650106883396835884378211952677773154456259580293654479198381358357990773526733735269437248836173990143678089018671310541614888697498598853717720375672139476386631835385052353188535274960144758988926668678049287077202011329920756830788760362236841684245379229507507793182883435211047633676722807486987509963716331927311344619362658968076910751200373627946226219932457974355597234255950941379470817169177517742698905692176511252702635750405254223993895382081700882233928228531429101249787661497742692231046554424081638706238719233230902276338472800933971398401351904324945465999993694260802795104077402571541657483915906030311555436362058987292734472085059074500620424873519041685394841589914993102080644439982414723114844717146798409674296508275739480176658958456804634963973350176777539780378960311112709528263571547798876840812658559328799347796249764529979290966265487956314251539649895172416463639345748721012938116484491797360177114485306950230073221027695165639360603157292741822756260489048948925363298293561175078056770612555133412279805077872976457445660499908178676544994005761722858206141912101108218076941694032804884634605069291254243885313465368455317238816960213552343770502217449949410248839836881899983327142460175015095480707489440326588804142659050137283322424338084498122656315784853303105768219411802020508596321591006004965986987750865854592210465596733647070869087557275284269105819626444001529157100730583029363729997440739156024340330297611460705219762371961426157854678247105871029030718993387620882996719924993544029310710295821419611226243807090165397261350124274033108960691799013768813535896946195319945790121114204767878551908467446371688680180989002889191185669703910032054574756991606936872102351271733395937222265746512758038890895486109981185144221361135984210646037591955249144319340452676840187917212101847257040333689817130457780168458932700595631521347940092500133814268292095581160978798650002420071530552139077929540254628757372247531673594863638940103732787323336596746011504570534206754137978982982212014220593256414540597373974710813567860258762610370998495784937044049982979230988503862450391510239862910112574068568175829130168048289294673371672529458804461851946298085524825219662887651845439101564161196462230442176043579367621085352813527242803228206438885282391775511789372465770221628452658928400988250675914884840858028874134083247294171003448955734484535537952596594957140130539843718482547700480812112408980843996705733468910072695864286365066748623905168602830433350720984075819331308850832967446185741716142560888455432131398936334108342191302374092781173947209876922774392532170761094155295656205519669436627526128702409432891816586448801490614561904232455168319358779252396736675551271179424538172988213505492978560540526820645386114818056913077046006745558270621760971902254341557956945949460978120617354251277519845599662562089395168414249693682207593547685815246089863710343190733136300734745762521528242427540970206224649068369187907159034530446292746960440786679097283624145250235160822295109586945666820183060529694179307816181237575383219589104399548442941388846111716448507978705761471732557965010860778298715214489583468620717166917338306882956374429654116689427897613170811436613327492930688407306481952170302501630411102641086256142940541661674580833789850646337409946836891653407774201291461255343411410816577004698703524354141063087055011426080685867038075359689451366581750157007499875206697106125690199629983862051312029229165377074436676384693883774503743254891435682127245931012727121461595712374373307394918955974068531328802895223447727141304204573589981213458196776861501780680475419473280628640159361387537547491832590154811763894877581835591066750397603702599342656027991012803335058802415994825732027115794764709856433539183579466402027967913172287306444749598098628622897171661193510243187164155535577826554754513792160412194572723536266816748933425632626568398856609364250303383893953359056120514818309708696328177139858444774081373370000600682669164205312393072012391685058924847839697449182123550474570123468687454587048953150519946842172162580682359442527515863077771896281893826190534617223917328887444950694123860186053782519778239284146712957917143148032315252739511185715839733668160553738041904469421223090138468459957114170911457817948896943637257686416270914007798514431038558491627625127788907524685425328139430129688043470427479267873521410991407796900921077973857293913359633392891430542464785761448190613276265145411371765180863729409594983616471328814185289636743947336097904099104469706939390552439407651422387317749083302051095272723546247359176112391406951495839169523622824699893690940844171996781297686153002523647174542311569790697791207139041482721354656223084360954397197643541890979475643657067745027570153764651389588702770447071976283346011498200334339218441112676320510889269109787377795329048055640342497079906301361643510120225646860512168093049700179922950505004107918694886021315495739931918176065302116141672500267057971120968383779564646712161595987517953518664572504080634234022814345369479202403336805913550344340013688148959972766987813700188511776685536231876344252442130383632477307747957447605090596859058583209371434404755539232004374752807711084975325911018294213243914861721544808530484920481240455150253793864515848030406354153958297827877254951334015154638882188319527228560162578699335348604167295910786318022007430459167306501562214887942721313633070741598862533461903700607176650815610282839336561766091487631082596036960109733664083663857038978108468094472615987520325424023977502599248337686584228596551030565119513095069140527757876591174313469507828592498898439483357877492548120092465136894733833949283895886542610607735213702763478716155542054409946717848345112056868839803088769443312698844049231784527375129598847577854139895361360144395487286878689913926724925347227210454357883987104427122629540716070806195736943922301783311380336184045204980879904687272827684826578157582819278957018638369193510104726211301502164934754010412613757858413811870320281256798628847419311059326840740099594912991942539970779346797726844394034676673535157954561483902373636238594828571012097395530097156052857070149825044639441050710072887713663649688876957436405682959737854747616780928756412318537020189813538867775720836819043246046376704315533117253409578358746130980909587288779551875109447152676237185974224502870809778989410519407215975916345144440131005710334131743732835824742283868356918038123179298539436192246771491156219578921929540810550859202074668381679925093014601733571085722395868225394496814571917067678332029049580672267858680262410893029511170536534928052155594107274533258689935654886830255551365577537064947762859197292372768344344055390927063546949369256320462244105015285615373068652638306646867338727957446536711046461463994793522804153852048877110770853533491144629586489465999890468767863715771964652973752723168807547543483910733612306731265574216895206971612297617070381386842695197280659444026969044499526775197252758330690065779651072175960285217984097287286425615782857779698537159665951674383933292557259664577082772026281223484301042016571070715827394657471627178198948711314114399710032309798163706438298312451893905023995902909803857019420539365329417292931580031689528622496548716119036683080752935311135719786220162483554792813680507969801144847957931350541842382926077283475165261006376045419140461573916236562839099904014721448476624945935025699900448695889724645044644815223354906225283725322401043349583709430765167030898663134024514601556726406864968941926628268267682409024920070808466367701419522367541894714623768404726333636896226738488971307301377152789127952696493568062827413672933665746451600375699247307759327174601369367606563858013861550736769646827281714988634728226574000417309120721095309834953814958143679587866306728949229820224171092859972323358180349018158651669783683995944055192248494151757033756532905395431107039384210521442447306171720387164951507237164006179265229072811890465412723989228588973826865369376694475014674699364711712175077049840037928991834050898218657340871476021719077427670771953139442361257964601542048407250835779572055526276774794785186364983424737432018296010536362515030127687349665569776298264710647191959030634430712332973795536829904279345027710526168991250642590339532959608458779029813221198361870283244239473264506549478229333219924451665654987591731658585279372564899267645614343140223714503280975874636595794836849646685501476015154571141823445069979661894279750709011637794002834672930379194961148280277196984111773970933380376194623844268794135727670056787048415926467678506860606751917810244913555443476715997560933728509013903755696979413627760565710483799913208269933749807660231799418474245641610513821142386838650527136161109239888456755762877776478429261316621861323475450972083480528938763920709455816092529166802289125776899250410117374573835160309650872651599076034841116294710459463138275000875319800480445834423894504227972564451656867334400031199532838468111279965026882619525836265182248233053767734082286437581622555952279806857789000567812886436524719720478769620643307777209047515023538228065011981570310105570029274951291859924720570160980779545586516344389670339535182024915422810757459403585797376263616332881101952386968815643093505691982385159123759477213356995992923834524757484959526178965031996486215757804927949302113940241850832244481722418439679898014620384393868231268376438211719490997279416805855008505853566034816047270332890053227327983515892227526945847527270347608514101732603105505672039461453274333915778637746238102463981189607485107709478682474322714082077419243163646492375258177839090502191811014589591438398997110436781651540199314859226381809343146910696543059391645419178846405039584915365651976146937026104243325244100146226272500799303667409272456228378362418363423050061777815090126371319148059587886917679817501980621543986508224703098088637571097223888983557545012709223090141238950059422457985088980962057441603147609467341336098154120683687434800590989430512496952529859570244682900562482356389646928386395070489826917818281221270959852961756229385692494348628990362206023955884795901170061294115697404221202944217541581987929907756157830487842970292417890746005270867733370544195403083551051820239105090323740444296882338541008665078326776313467034797933592708867917382155126967837683441399655738731238999751400576099082435667484961097649188448587168432780545369829659142714233762218312012396788734070765174245049159902015960439650237291505891960794071452933734590236421919953332108012815383975659658155763829782211406866719486123321439924447705040789182346038494890671070270133242530520941746939057056243683797893620464975668628392370306194350908157474233091281953906205640685512541054683304810561243573334687719536188005945968361334420532741546141308621212589584560371639880446828095257079622330084343790052838549065334642165663623273865404247262548574378555528980145057515104605716617221198498023128638510000017712749605315504549568422862284010933156021048531353901800042996877017294919056941527827010580452223615784062440513943787521934800312437228467870898259099835931729605116579964021246115127394881574176216204331839779790693043138289022730587378162348956269132471557383257052740453954265396036161691093142722645090387725711982503087818822481929043691474108568221251974048360089542319097961189401786764148389413465340024274104114884878470445386643431748872638328128728443004694866927608368305069621020869199423822342422283861936823186238182105962289457653021374795877904078753074513939469577619399837593865784016252319047698303074396080253850653486064826813368149706829202776162623415875054697643665217676750774221720941031743793054256504523726306896402932051015498422818513232640143394871152708043659705791312427995955950560985784385988972707143235642167048753923355989467763026356798040138929485258993532533318482460211128886624599874086601093849284743435172561694232586871480181396339440699383026246660085368996839269758817359202884669248936598715039747402884368717671326619544358798260111547708211561967073536490698530149467114421848679264064813228027952675415373089969166664714992615031893521340895654814758046591693155527489536692952713448372259988613861337474507758304529320948320631869855442518262511521986002974514973201696076472013561659081729816599732920514087663927073976211060518417131260418733897978415433207529151520440955664527404986232285324951931269300988688694667659680343593436372942847404039303625316549033275701361387083719172455936242842852408434235211108014873028400094217731100171877065385064863133067802852704081751187645417748830327646555271911035288126918578081286144321262795850558094982823576828670147540908555896402708816227424134909387762097409373791454556294574879467952280178314875365227380327597449493239763206537243655093713127875166606504642121487740645199074985084864292188610453806880512432367353243511485452543115913098292014462257532086000437738843375743902652494280251431909718060921031616141228207285432624753564477672363499150688872722770026418960481854557090661013862440457721694601037238781694768500140497669635147355803813180670294393427981439593016462574388070981286684010170405313480706483356192819963034366789587572029448337478882818448625708566978147068013903570507008904005037850623545829736886859380765071061706080778123962839696717599607389812825879515075318579733947655697836437220169209539720527225359339579988016344662518943841267418657193688075030599644216518903413160359118239755831518960931911818371607916867848414350846697048978006270344672352431017098472208262219572022216430381540832994236399513755213692494594948347748874451791117139839793435973086014226105662037874224346756746549657392181429161740062981137075701382337160740633533968894795901954765481777392139902991575329995213976909342121477004410513649368872923951399630580224541448705809824942316130767835405716547023180982277938381811486250263102189353045022001432491130629186288806429046755277563717200237442261785304791318108188849158945486822412297983624123915426091974861563765854916482783559440234639087491167934559624568334413441199370027593136113417395950277801606778530060650082356018791363737003020580874556351361363083849463175782366267620198978007510385547178297723744126512564934229196491400030995383594979973115593033981043273109939940329612342266563424068919460906889164124563008500840778027299418374801375621029422828367691581422349916783878992724930370433688559174549456891947474766014231867984116830686175962173653828432166592278469980556648471588058295100394338558371446695171716087147832893821527794765040338920280241826090168746551487543683983146989418792467586993107039503604631791858275466005139115070741486076903883680615660717911473075518105351991402296197541387652673238425300065349761892347918845315197161487639281852534949114854350772399341776320452891069651044444107513065911886862084200842088886215870288681955977212644967194550473566146040479553627151065917231707835040460730724415517631910113523230270634347728075151752801596507569930722940667202694458041905065709928241997543601204540554384987746344155687977352149970118054205584962413165418158760636547788377276163565363722273327381858413156530751055989356956080099782897553515847507579415310686924182594374300375240625877618727634777468185163828227912223973261588203400093796604496770389728980294620449708229668921316719607403710931278943437707729463057892490827630841591068257724024520184827176011199840814223066592211875908413526979138104033388481439864699155609267231337725479082226222664891184429616604662454115177459306166280142035559869233775894608370323701001377947760689747865086913951043553936976217820340283370943119091642233773432290708002724552804948774616987008246028598121762550394031195370793313379619045579769704374856509492170416117221229059804516688606471162029499320029337102377686320628681759409724743747847002991897319003644698990957173284851667210764910233520541280600973880278868501812534875943228038021831659245163520747542146924739606496807540754788752472502123384887653977777536352308805711339059195341153967910106851599903403396479295995764705990612623699585239333802506184626689333550237955393204695220049234312526492813941207088336873698552742575442586940863925347499794405673315413881192718562339350191058869322779330621312627072670755421623288702534769362035993064976305508677670412660635330487772391579691944958402577562043467424931546971936876737827446232338106030030213316771795988814002647293710488230232151614501241910088962537726673248745340187651734342732645347803034875249225820190699657160516138026990663946655024638725032367599142189563025058063688519427488780501079405283800025414275994866279499060655321400869311033402193503472268034181099536674597050202458576188227140978538858030286626396706243757410011666118274746279970219131696537840432507790272835715321503436732545296260133671600442485326143597258683846728427714749344853312667214261812678702149122598608139497164455629695368227808515389019303887552674838226821753366895069773595213489652015759452146102320262555514586897948058289909157389297626419235996587129869066493227794924098652825362304438947184568241873368589251889908389095189307954694140058214410053518750688544884812559156854608297121769131472980049423185635281793614582326308276127191881889983972550605157245392706532860733977831887592312691792811986968121289733577570928035812243614088334810329087924694913256752763031172809867497834722524681391409744782689702687067163096181579258398072670732170635090353036593909184732657307094654205878699863965351429955448887730130426795081271982644823524465800406525147660194558390924989985423562448722427487031698209069715420366868682052266989858871918473768276079126514650865670285839841844111337628222268836380295478227270639856773501894841123228598151731232730543480550996520274645676662133589664683741492534754955304761026627981341821830690580595871440219384691991493499158508098802751563212293122451016911539439647593541713722335478873014296919200368031882586216256899321617496928100751882962594673267401951283860243129970088237521792317762383844941392702956316450216130037457579470683377014532113848127345905891219736667340284028031730448909420524473395400480769585701557648560685745813828008821867300956561834404253813535646159068080663704379730983209285693146461492354838641730748018260797554389213918472925394535496556299269881662604094457953862147622019359243446841235341706304470411855138214148962363719952650958708657188871825661058960491398243207127230029724621425476563112058417136006887943699411841061664368665287422834758583851470091599536593417322069377000360398641163765804591370316071523480349827216311613817454297849231282552691651428556556034596147364318267904813091427626556061426907144640204713809390870984481331334515400572953706982003166835749016257618798553615390703458187252346420314402276816659230604600931169335995881035271200061829193114590986072116967527513148803429502732113611596854624168529897215525938331034901474249271156605042485027433793586452993537768732958910591243645493408055170042699528467497191090376708350725048810117999560354668661988948097639562872500286471987611430686261619027706681853492548096429916014694363373926174652069276779876837470554229093248338867657757208383265126678601935389951406919579659972937511504847400286002516131315829997785440642005953597763145659603096371920020428313511583633708115238467593607960483099833890659027254769025333661111281399016268466684977632763068357882607038541168225111978018390110493841010144782997650854523714856062076507316752114655457404320008399495226992217174667784802091811063990677040872812937352064646374072115561758933546242016281160116672847307982753259530797877105750568681070795516414534401601302744927212772862499065740337576817382769686418573320799880559370722631440448939320528472640665078841958241357817943861102336132735210051442924124542216899765788403087283067842897909831728741581003433089310096927114917685219237392780827981779368466358209790978776067569578886114649314159876466844336284184399005629135165957957357065055761358995236339370542070351161469494589607633811571525096996708396626179726092728053407359067851800370977374121054649463670760672198089082675590799465602861685442844946339306722292203015704140856346210423126304281742827638133941132501477197592170730362433838842683143957219275283015076779813305346993704052946547302475982018890104408077131161379054350802940852246037454819527385454699783594658915022186597884921745887478551989422539339734931804752557603017674667918239415532208271471811642056029587543059861259717523257635114286209239233639078616194573191015052778865701084411578059805738447502018177267341211758113070399480244932627667870290900012239248435356545099658865157616413439867881504905132248193290120616071541905274915946908204326488926398935797351153290532384616274713528788166049188094668169898683074363856466408327353939281892018230182630421980690144463784981187995987863435577128477013143829954738105253591331854395012664320198716758416154694453945884286712391476470723568227684573794527155558173456709233781303257170732285711189271195871677142143054690271933839573971322796407167563911904090736331976223858265564559895740612481558911321316761304918802573682011382718097231955602404078385427492471196824826438884647584081941973463335779109000865956849738905276262068316338375894490597030526124604203194042247334246393637289561638590787119401447306192665454153134075112131530044632839385802070513329033005328696901933636818565157707427051148670050201253016230305774811194968968473573272290101449865501143831943213457823263693217257386971403423639804082251713137561426101327976345978312517034164637978311556297389317100022702119042020748318666169670090615661517106483348336510169300166116265380043857144724819724791973856478342721855237092821278694926218032821696073470320913531059425923425448028918407373242027354109989737677557234231583023929165331566711698495667465359401538578879925474482227251395623975818702606685657090189116542059426032806948828487542400060136391189341701303828014793974949492547075822213559158205602190751601318328663002976718003593834113007989884909632060562588108368071025324696578915479877765816580298174747258028846067768091634861920976196149702885616729646771667963320611565948856340813459795921527659564115269432337004524182366499155118040040126035931810623094579800247405119113529306033554481247762431518711271457503043517865284198331604716514319142096530029185871067482945484978934279796552143523194090010023197614646964177989455140364682674876385104265694523551201795663328895582133393446725410888632967190694089988033603526307961757769648975703643050424363491880192668447381273798348482945651690292996542141761056274143839392874510540455775320167560460974497714330846586556916802018908208637647175449064292203141429915190390669948722306313104533663571689273928371044890327625783637393883499890470877412890347283397744020538963121247428988819754436795829311972766531959900613827057747387415005716048666195362728631438197521502411514289539582494478712282853879373070455645719573761157080384311209388292890190231497030863400676734319089347094667785625577621192021786647148623895453164352338931601791692424751202586996782737757021995587255507503202738746005972244429649867848746278816729060880831516233260724766242748061019179674213182594215015617678101699443636328293086195190810009033635724268623136432420698303818342094330346884751849648958081618451931514540300424754218989345136034076150508726666288665286134555950148576339420223660771663343749794493283379950794567257979287662074233521044258828868429583076869847922688950769172684016019445207216484134656349732407893553190933822692303096159208435843472269666807807039231707181862693896868483092895678813756985372417837623498266313031577848991118789114109203983449602990690346336538743265571559100156860913296518991417251501796183521622831549343146874495376140606888985831893235987292827669444786452505653204187094983834081716086141958315035322293474519060239327545896502058663963156550898259157934419139313688195979727855156886373624016487115999978707694301386039714773690170521021249429928083671551563108282825785805840903315539259424258387085290111220117991089275626706426414514115790543284239635444714358737757713215951511998857152893590529251801905571171523342120897223392458702521653254501382412298240228359946293947417196443635164755984247760975327177096519118933322078409628582153859257043115727067512989215542536739204710185303228366057006710181812691089729533593044844287605209027951342037300209823200400167140756238808072171016663463780794033580450563711797915702378054114959225750268170018857676261109529768547963704752900653079317923591320879639601644230215806253181325022372425979161010036254710893090808136528377359525845268284811510465634304562408945327458179121714404313142023229138304851585931318116739983191311785471775355251664433839259263835987212808212507427981593680165227685991305681518515041900164179058607850169784142950184955238338984583900365195266687545919752215994315875330520452471869703850246874518764875289194718712339640918224625697236843303178897827336365537652498361840570715964387913872298618625879498028389037410420476273195658521469362254148378924496983042174947806784987125270445022446708194731188407465310662968531970286704688750543821108964539256763080637115463767384441405445631966894274406869783755139392645730863638391242630828871226425800031623237797404891629616268702915106878913015120924525588218146653217763345744764457273134670203210294773119103838535933328951745636035632915723805316011562045078680898635245795619271031815922498270931967148145423551241117187420707560304846039078573338248851777171393817789142881183126449414860818527815431778292158391909018857460612266293682617126894510038616534896738581822265483891891046145531498283404105079150139982195932443376207093460157987661648522255252118707256763849608970050806754926766705978226165476665362248612192107458838335358533082407861452792376644691099128377293774016495357919288740859518859805711439383385355076631664527978640586743322326174201677926353436314276342717960685794991135941277803928254158191876732790867284233081930976147403833049318256615023391068705262093318973765037648704377202843412457749803959202819549311071276783978380199323002985037079898386193575850131943911365740876498952597957679188629844301663537383500959428152121177762732502237504841182505330069949943751111437217460343127738498108931641457318730703601145105543953867032152281920093227418418985934953758815801015834556969453878171886646938825971420121845795339547455021636988206033656415810888221578469737683718690796198821441873107754766878472615287297321592572658916375896568016666891866467958796177489361095353622687727833874394555793479529269436862921107448620484409144037475879122078091951800738313805387045530806604660406707650733805905276744498994352229623193460422240887222588609241242150736707203854173726698032492358815610995092410275988159949013285716572650992386144507814506313082626108158712535497782285332709568903124187487252860401877269592092649160044671021667972919787967774027316493617835073889033384750636021582001451306356812031946960003542688395066817723295290808270315713132915188592610694334644855276561595429941548538622024063295469134668843136282362797384099559751143897122294290406547093721145404162082151282978915812716093052443890603969175606660878314801276596339636492878213826082300923602339881767890903997061661372700432281086682264420989392192879395568421917202515509139679649917723594647597706698788491079028115384375568846967029621279595292323738138645429933768304423796331123055906216562720450337222319542618182114184370879513258094028946126360034754582490837763084809275250027596264528958367381806920713736610619297469533577121102115831999498297535722954333265712642460875429321499546668222386050642267032513222966996700987841178923107308113649204486530758756642248288248732997123587239471827782738915347794588155778569787208956219617082153217222073729924633646291034330877934998095619828530916678111029297456082851458044313595533742164000985407082984123670868220356192238317223994616242110171954653064264489187957098443142616080679202665958687154433426856455141513459105774359762585926606904958678065934534535542712393562922405330696757925955102080314471744955353027226149557651063625390047739754365596041440157652903269979616538585528781257063168770877234597441312784918568554894952300334334245237479004276730401354211882175768867188929546944925773879533142907781214477166821035077343426337958397838924875444872145017100849850954190235818934944443452860583800609530036491459221158927760501101057699069827740139357441167903334304583819154735566173666125839020289331279803412752245489612888096056318404719226805390328171165595626768007491370984623889273043447212171267650372036769167442990034489899898285301080272217056847246256527123683621531433638489809361353166200773638662505063823591080173588427384618682726450878466226022370204924679372978365108943066234009029545060293391477750934477978357681394420394231641766205673319588316555613757413932491646860854717711776403096182087943817639168371319362911211327275260464523815620863610899186094429636139790372227329261564882871343009262194244769047555748680219267907639288757181963709881718537382978554566858957912122864455581483082651322420115981588700856030280755397420446076682937662190120856659221537436166604336915274838604072141783467373024964864702232155319439760752744838223639525034970967185218361909721641846089219167045556833982169648959088345250852202221139407066543499901270534065490036537312958489106302910856231412577842111413261243223052141150601659287681293694612528985385495405947635731877810136166619398426599761437070897339753569894139541681838216218473649900175760638506299865954610874628812128323868195491811880379288671055007831209308734829860026001566720993945237647166443950366854866516104684828815780667397369653281543809092806425074902472429019494387909491704044861109208491314869825385601725174889136125033435780333559030053733205547007129268195808722597975918389762968213956478601750515724204397498513666591732837341180772751252801419837253221750014768484469950210043607239988962496954024339248605883649125260949065671407806999909267094999727823210866371671711620831482847882696012694233591160555597466447611973572829418268989057139134027109279174956012145452548916233120703092090427585964397523812287388717656443894342782068059045573476352320452203778799830245170644327148212292196390547909107837215284978114147712658499018029760671586551036706463304703108461919296591584170589389689050637889772358513387158214961680444679158412866700246509081777381414722748974452701260885530971013291017696900050192674161256235360234755368768177121772550650144612068065134941921254390204536160203503351995505922573137586162170025331645578762095550046106608897398613256428142958703675350560383176421664242461785695472282816920779910818109685793846196732619750166511379513578301479907928589424746177925768139931410270364023498069832968415406896485007215977071703903749816391763516676332595981034469290437906173419597436718484941802181410835157669941414574373797072439675240501518230236314573214050582399001148507759275778644281664214546383037256112678794401668474596092647090770829845600109232145217009228364744025434761199395962605784550713974271251024138153322807116478768014978463315894709238514055801253804618119396464492883929248057930097044459158979562914853334802397704735196166535951314454495883784316106395665490929595556946078961229538514873561467312403991818860540627222558512520666978104786542815557500488376552189354152822766555717680738603376680082696981021720521347178411043030829516892658584323356852222117156229956004214907043362813506476198421646752228934067985224416586084998846267465009008075870227749892147904962507409329193047481026713526627760999594442003146392562659205463325330144300338688994689425897451184863706660320910322276592155357676025146469099209236063879706263240030576618553097447970321174485337710229924724422518980835697404326231724722979886876672217716110195932425737001590375503996502689386682489208577284692993653270816164549497094993517342167010809144461542997474444695477216861341389982041576570850173500988200681616359887394489786981922630387761805595948052933486591546913994278904740282842599657602950167426748440988828270347336869887377374080095083627177198395638433027039525284296933416733365741627159713346389545275211442507971715305515872819334815439480299738237583812772888180349131464839184641737917144804092785506203082583616991186105590972105688661496786173275659833496247590288798013986158396682064057600201425790601287187094523125527195954087794557350068679117218352509502475284518696102658664872119764484759223750943858286843108633803406054874285115123415433430723430895002288892938322069828277415233730066124760613749837870046270583403749636816248444545181848932238235189883697259063795621988309666355934754146615037106171897132925254949183012420305602138318422855780198419263083707673147365174429414127418370589670377788819206083766296210929969658353035056236330745094633958438804311100498438433896095211694927634338749716123422323842696255632641766884444536455379163160202282525480137482141701908919621184439088803180411907603113718290096706932374166749194247561211250991157037002557858107920491320614665765344433850909150388667202576913940712546720011804107244994868572833326661519023451471041207677631638712413907066621959550681818967285299256569068284759864374217687373002566140599069657173488531226785799662959047748065790906117437832568955236940477169428280589775829715538534661724835790180742077630705190418491962180550076086806313033270682343764780818176981182698231131289003394187988645156587542731558756365709213443860768699879715440701231292232130945229683296766116985457427967166060126007455740648015150775338440440307395806832870914508017963886066718740401375144826551754444461885369631554183017059432378360434893414870862942971767197815577021007329224148388340478471512884973604296442385061106997364162730000490995078691060487709779545006859383247211395775090463525250976305052656362578921509864554704936289865620457605647856422444979539015690085502367692613267852883907382089265947227866860163865533268152041395101162208870993099587054515768416345414877087089854834205709721271865279805111510438650519189483180478317425787549890545048245660871320682741823685545256256023390787471834538009646970650329787194036655809720018736439399928446787423375978858695567157979698204634873310440589692749896307279643994361530934363634204006690085476285939883686005936088873459129496508859823277257465562590950250307951782181996372554738304774752704226790603920837332100583391627174658826414073904710397286053543175230543669827406651860149184137387723414661714987706872214502400027265165521527186086745670603118502527176609184211141727489987022158335077665970157905854647005603800650849724301173618161498034104584058890121785892218825799494645253009759308069967964169191927063183303088009586097968366303108364672348222467843575466159315083290840869260920332327059227839585319477760155978629512097804345259266037931938651793545811418570432111357171341384051083766323352961536800722639944220158375238903883702029682510765123976582235027407227231882474444189565148236907577299760626882753238105939485713174042862430018469337222558235025187219838012634235386165070323033520496473060948628648423548069128104359621035152655998692849601313669604572553400688677040072576870377000281857778693953446350557214289630817434429315214437912767555437525896031050541641104375449073774478354727090600349603088914049966850780508579726191934450436877167406603993111135746934435439232483531862075218913072504439972864835729729865611726275220264462371470624953141625653716914601210119820038270844497401706908709695781326461470232022563776440633949587102651742180016997579282825408928294379644162571880486384987242204028299493801797963531372769991350982692407804681410846398317113213433499756281479058973669270272451855636678718745639900159391323328882802990672876386321943653189738385938246598519765009296209831517611882844070785537450554425647418637778048499385787752558716889450591129413909218464119188125461585459637069508915807731112589204318857958049666023725777990039084579898988385602345746228818804673986302694911417366061210065424789752396245386085575175836759585105565144140562190035237465055034491793973147517015557674900760089682536704861056251975166715829650904560514222065504221890580361070869774828860282459497515074273940734982825078901749566724062259708666741280422835417999265575036757150088284008523431935859065228248449665907126834770355682094108094876648596065208646740951982046278315353296065637140197968967625433160089433760230948964204915965814405925783853684256096904724911214006138759076601281140830063652722518359043614181385910567199359048571650185609944340483846662826288437026308253830075255661291957341986307538876759865601980218962926652872035661428569532987194278328016717394122550839043160934828628606755697416217411368929089688051935624232958306060012970112656360276933694632758240715491302837241610012546252311753085261159007825168151473990501120110000660441556458257193095558182310304525417058087023054226499050591833156626333065052073193019326223909565013044296203015054085543518364816494518390072483573563336569113197257659582716440786786928461419650690362866540141224096552091114171620337707975820909449632331132640444331110188843950760887296794331393310889334038573585890861108006337194875246260121290026444352506956436532402968095013077808718099500804293849136989352928909244212023275818830070487583900923336092238674002640569884628586764791226024054934135995026353927981175302276933639845504417036829172314278316015866005425890059094206568861133781460041393117721288773438693408049541019886056452488758287995979562849314003855327045778154794563665459313600252762145106339416460701911149057402517768100096901141955329805366405212934478100650846308607429602487811001464715366592463048479923686356365594966232186994857417038909204648438997862990556699599553726088999309985112719966027116606600899597175728832726007682304251413210911815190748276954807189291253513267895049002760160170308844134027870794072830611477042015085960247079807057864329477386998841126589144866438748297653756158894697202535019748006756671208444100494640443302097608140260390689077748333553668025514611358296063048982090451613134803454032558503188987230793446247060979229219422914806449381090553268290283235646986301131199247604120478706259917835837942523590824246263839428645061533749542619349185675661227676408178494996472871305291993179947933374832547082411802695314275260666945730676597638611179768654386659752470084756985765446128127148691786784371989688762272521138794602976972906360060711551568240180318311665229238716430487608986098785049208793732694535944899474814594080858215035007842642937287906321110670508609091353178074948841155093377191899297653116199109397369227312127405577123864059110930323698399525804878989808291362308804847753157087554335541074610526806543038340273221814473514198878052721998361707882911740990975316787298394676228021907944523509295438783448870350467382372527827923666403572116138884010728785752595852910461606327865626865911390574397543813097173403133170134347992970011727821920748639794097683832893716163145839723322367643763401564936916522666474555582978203503148762755607982957571212554079183443625497992084899936554550954567654972642456908192270311957824896776685904445110546686059440863126148107698040729805646596192725318574244264553173593438492312260289570598964015860749240658952710028515130309318382528929784891327910059460191723439017794060915008065719662901467396894685249608782292219106912455005861585987454497582005616024133926881345364258788786677335244775276655906128262259404491348182275683339418474033942015378062839373570894102039780012340791623291880979845290137523524173552739300267985849864019877474584547332091475480035843516894592168499396668606293394880541073651861191249417473626567687835418585688518703319866991788539957275159855956338079524274670499572035642267514638789050074278097798657693062741819191415114931949704877482181208585769733274248609756488327755375708330327618490694190132222361273855724376641817318830223752118685301920420312048525789848798504952435947867267034828883657835046708999862988984583809475222318407750950191413901554617281174764147691771144378095153408061640123459181414043249062621436515097711940783602731374336313455926651102895068423289412209234141355008899903214717307845694973846744404094494429674243072590047353202288550293624733302132608061444073900126873442709052988584649259486543496049568307447435930530226770144052315177168302813010371126301343651651549337656268187823504424127846378262192668925552725584363907561180881623296113357786725842826123140471646691321851004087676123122954674012991149840908745816082887812622992757639340878019075108044450172971979945922955972236073506019349223513121775533418873914530666563318635390252879437942432813718748202500744732458336801609668791971552398937129897250485166569807087555183923959555877925374824717954673552358865682297373931607214351142900297232903246609912493815413301171715746232280527621462564059761633482621770075782398959786515574550561907777746830725213802110345315485779640995586503886652107125894751245051443373928874765235375580061526174436262567298676986110433171172613274857162242180783805173525075133287287275465838456707404923321347122578044050815538854480977823572985016957002292998801582769810133383626340502912043874053611260146178516987346077606056632387099137889722115362250537493837560125726501327937956063394079491788660916625423219426835071801060968920875233006584669646725210405897550800392529366086212642588963765983731125767526197652910968149975263883640244341391547632130855159783372309311183906703427705049439707587736396253776767420239403410434086572625878250696382159659266220087566785822517863511451014714086949189996391551447071105440699602740583485488981381744877258634737409442982020758422589814742381756250192869860386614414193526012918831433751361331369007216485854449796432860446025964676856831276141242425434437808204843341505401758268058715061867128174623644022696477312487208048333221599113809956027380952547197008415481823712389195724836165344683124598581636802266370746159160433808484527813255290516920728809553276942834189918583362038640628381118197566462475848764741367000763635625133797270106103603398620119591418846653756826852549915527782325398508003145852661004955389936302109984669346375350931971744502355662459977864745257626529118503441079992971637414421021481617352756021891272336088878885818098966223355014588172849136462227878789627621754904713482133286597824648073213570976836927864874585294588937520414809288840298250228708763032636620707471918973657485045662620362276822692477364846367738414577798822580745706414542648167599315939652406920097909389138461592641830371522573593933296720874078815958546420640673935124221813115578002612785546991639655921107230290529984307554335887701246823036186344751851984721561481532692675762903691252466409396221966061740198648976949937716561575237001802190787149347798388770692549679563600929405324004400912587129269018515832727195327975780221255047012806086281425198497637079572276759268210885739033511338308057180706029343158352513308565943182518360579413366474560584440505560394969448841385324138543312363396423131471404162246846747237603266953634289834457515503155346615014296735712077296360966697286098671083648101060386065000548565581811601918321946196009347693290773117778113587567975325518882348339543954374354753394641493915807109908796555182466727957755748167524603247366327482291088203119696472419291241582929409142716155570331711178552378438756419818391024902358634164249685698592345035922266028030221781373576531970916905453153162695492294326736435905527707258291961071315270937889960686168761033263776012426793746103280927927516658477014166578612583137540303319670419590651219884112965678768910612839831042008261241219501806618025921621479685743935369400880398206476668749810941403302858267312564942385828457490985128217269964196153691764380104258837099830936428602779746254614789688196238158253696520971067138457646017260971640920839452181652589650388652920667214606261271597064140163768252661363186632489020044291097589119772860637486154019060397618874994733083396402847061465191811078158684219525766482272833441533327819380389385200711953580897480687401275155393999871316074660167039414611084627515667960099467274648648638935987082917787094563237415017891505445052141126886565815870544182768434279209127120372681720702645274837641220316867047320883857937121043464360416207110856388600155368344858593942229373724464494252871835585815970811738834887161693796345031825837871560927816117203697747432266610178904656046718281999388276639439666364585543624138256907244257140749072383412736379213307825655368742808573151462799816194101398113321113315969973705640143738310658908932589750358373727751243710419082891997326961778201368121814359854058332444807395036771215455995581170577428608502405686019377158089157235371609558639961601572159594750910983758578606683341265376929747927041691613401580536218974752560868892538400431220581568249818034575418646050603907802434490931333073991098944548666358486578411306698808871782540205154597265227278949510338885503115164774350311493438547448336111735231390604782069136666572744579759703659763376638074740778357481221828418459160358349611800902116229007577444516387300107910548477741439969644369789653854348390738117466555572439851730478469339214995606191252372260275308994687057721920629941910310983170057737818768331523354071860497925907016692172082919633827279593277541998772380992100007661830568692697636484783144135331409247137800137866150901407969926995136207017013013916525625387065328178054098559110291390320064054221820604091134221006853760954929994298534678523543545798793333690966095184667796337002800398930494075478611630593327597535617356898057862004704440919246804888889150033482993788295860423799060306279794089156887540269296877226700639356877318146993296618395409074809578155611582461067374597149685603508135737335337958929724661898865528934111372107423382269419594040563030486041114655988527069656937590866827499149766708398290929355102551217167900410700320921822045608800912059397871110436506069425490095531409664884602916313885351913436090258249356894770339465344388875339890876289393991432273517171567777545689353956198630652444090280485564549336061799536056325267063735259096841324224796319878674244104947629396657737141946167279976363740448684433898784448481706152164650909618646786361972210503430068302451461148409193341594640716313837847594626155773253861358523596351300631984612628120611694111343421372102882006014661706536821536901176081634503895349833642194897843469001238718882578715894709931921818287935138738625680185911819103024122644760734938080419976110825558580828048857427488710067336202556823749975772094005625772184549519025069407099532846375545132943982699579337041133486594347872288481465963975372218135095543571439468412715793144294261405431039051532916872799039701533031536646706209515202901869687935866505481663277095023356517333579783551658296067436326085338541406814152572825212975303855789233985628421645849200788634115123125554794941030722945319496517695063507188209822492853449611467682895059960720177053621490285372858958847953465381287849961888612621744040222519535001080291929582595909443160349721240003094308277310205826703594116600042577885622705666920014540100936703717920585089190004261358240996957128791885597610023985287399181997827425252610361490545262081321688129536284106946370184657873465145264277140420783289423576167479593625175918612675297472646771762771735771259584926874314387646217407273171854601522805371649067002124251194550221167572111467333428794129105868637425673342870244398077628788217214037040911647005520174557015136078054334334343797773350408832813375103463131719765727015309131634157477117701620571640141912587957991382183327809611658608537679569036364982424905901774777713475007206685683825039894849976028774463864744140735511647923400301332198695026982668182545230789242301804543023127594983035351296385280395596248702919808988629060277311433552118969317423216460765139188195222583841429107186519878023934717134900730108524650683410709532642994929359984111552623935835650138535820379998203164221207850772318531484541585765011916197909547913995602812506864006431161524800080425340037859734114152472248704151220504851567935025000524520378725223367938321990829948548543846861926991047606962313205794258916800527450383883565436701425337967588979862691167308389689308993968228129261791221502921674969506668485657280908625878203451608299746075701985735170908862784456085567031037767876656908667241018951258290620331489674596470439693178983717249291036958966421087966763037399798232929962100553877225397019949944199345716030194083672841320028438041632595592991554773473411531086296008909969138804673869549694016316965935089427698756029327256641285099472716448711767139924309064651571472005112371960203537886676983430834143718568795564360165991217485035551557555285716662557408808363187445927433866129413943739421482114354464477787141056224032217568647839918775256253274865241751118699581040330367843073974543930145072943548444269619946170655598338523490709044113241093468087238104152381540146241708818813689822169250758019163980885232054754889959256807846156984970586877224644248532281903979909630762265105425855725650649448321623386481339041259777869211207342494479651797844986218012575986490704480997794996297573689104604011479625582266333512216761643625558622008810570757400364152492855122215789151300340377661790468917116978136229489041610546969502814761194015972544476724580548678586412573951642014220654270751245999950713915939476245581398237011593239491290113687750629470426470441483345935311129670846270692334566776757178919101364706317198232699378050130049184669815682554535835361599502950580530321962710957308078589727695869740826653691361661454447980098321346185291091540985594645503845830970843140514571235239999937934815287206064214353245263243499018329516625609467712762215387942607681119751167879906905556724688922346894098302660150624640763252669665132605215284563126326031235978130419583949529985709780352899132343179464515325058702924094968006999958547700277010329575038065828392832074122251670547560798256577103742782565078194523264291593578237071905875466155223711376139806168193997592211674461617265785039952753436834891962704685306457100125927339488187399472149439257942479917914841835771058062108665404756620862532298364510390823396150419403346443548320785281292670988954991868553800709540458824568826106452728011512367447838862160232646644641146898454556097892233325696421944464054335726070013516101945558949142604603499517494595145255794730984600322237805564620154339848844470172472229266504031089423675389424863478474684850611617961115417597396046347695508613932034949587171236358167110265431691679591340290045926014012762639315434215766450891313073464597945965306544608192277602838633691232848612184444754424623047863678097314273725171982831603007000438988507312954618603743226990139683154126264524634707238686872829999411472783427314040449516439482815284130527889968560057353383795254281303240169412197780597817134456652021543806813755658093875572375783373591882542599853622031201713462086077814774388123827872426085690989382767767191528053469207945156536774003160268529646946845226078065279924298562647466766775916902329287716877939979861960503646052731724159864852206219652052945403816061726765595366748888634093539695957575535905712966469292173611733350367886435837594368467394281963813122474691872667913263541985826800764150612110359160909518026544187113129645523381453454548042269661982679964192022647232844706912965153656637525604228579948417719912620534867723423593365979991447601683659237747231236574182799560754998329240165882413769322020033816702563510895695281561824163216256100983862319065715616789344589079310446072460898357564817226675876221853601279657333979481957485327768516349689510006643359281655433941986212844314010713540487988107695567320519049369903194027253703604496575803223045670611639916363357001328763664342358493440033652540974359269981914364083732599418954624360161561145552857950456060123290012235033232054179405375540246457112196729357751924550560003696699022820379515065075958888884120109146295329898942644696481906931497130374790142915450307537025114996223745762680068412898988358918100932711616687699382189404880677030237863560241818294310536674299490165351682870520810025489121324564360042980383217773081087826863743773893949371762375059004769559790531042389060227591649126080302746205285784025864174468946080672056300816785865654638432146929518955508289736811209905713498637920710103654535169008508429524491642409417178802533013271484357998863358474024490720300857451072709976759031237063565757237680503536097456894551377915217367076629326074301349048235223270189925102390044727346625469266329996771219045757717593369962743321565883977998046856839154278959539840132624263245613963030437492696261204661113223302474134139164064772754209946869760801777199749615343141120887267693357963365385206326619697851959942547230319796933139994507574845727775776346530972081160746516277968933863290002383745623170776183433990939583318656547392541809484506743510688509744278260138979055151746510293919378970713749852199412777028366189180613764261214943787401061657735187647541383421796171514386029207148219082437546876895707938155157524969601877006836829718294841460782103570268414173285026358051211569531960392347303926778809824302769189530909688314272802774834715424083479588750309494679285293686212517061058093514572165712017017346938511623789114126091171408461780888024920580143119645392878131825683855183254189585777901912610723938757128346995873883103737870226552181595687609481690764579087578118248972759411398126648245968656022957659654355630261613022362726634405140642132547161917375671159277005047618696679466880517218450738434091333064899553293673117076294446547286505350417722439442989094920522523602869198201131671585710808137471826691024456472912071958135163957336909698393581349523603616893131206090462795783566453433032851323775931494558801391870200357010126700882338808968858890273908243323962161035860430781137109017786053615631040697048799945727964739506731986271849302498542748982478826653357753830866713161524778421936828584839751587828562145983203586145208773938863327675902278915180144970699804457316264316654460981181293800242779037568580087297977096822376836823747081134541254507343121162055154729975161868999656579603487667792161494041514788448882062119786880707966995612896316048313817100261352353502673017437910795461371324786102284532471604957050482192695030530722954272647819470415405046033382224469676486810907504044120331968537988004071209880426986502389183535919135564141788258006808155089506428607223802224337264941434720087981944061662889005468007030119798764459875305355850755846740886422583764064747273844822299616759139261532891605366087665972266447936118806780051584736545766816913350106058390375899493541391430730282773697063039267665342697683603210202558071462497051458124018848940025292490367079053124667208061187240346526724166099404956527134813425124650603882536130713901619895679281179739331970190343700012548929854085133947106948415191840273144577357476132835096766015308493169531594490901476217479979842209214500037908528713189255634609068669382200392505161115258719377567948728904713648741980236578260005443268343045090710110485224991517472566292899208832789430636212749464852481365077743804695232170079760643463822396892524204617275772848775439764411822539348411387490084007115128620173670550268406635545981191555262246522403685676143979608662971868376310025367547804260448320201592767185084243917621563390194658112828879498631044013208881319927600959730415921207840470542725267481924805068505615438522944241573546998062597151869936609099713833763423955902304070178798490429389491119851859440665601247433662076390851524679229019008009240210939922949903174361023563027444043913848431673013604427568424066051360030440349661950955466921272885121759638764146999420504041948294362897761844065944622325223360899758595073225824092321088273821170322023393200153290027317942341202819352367681206093724408210963410745147366761919952906429056692095383702440939662311332093448018460495676592577171129758149811356158751112453817211458798308244387645692869629725680310174171547372195177593565396338350768741870832963692538292174008322827865710867714911626661060349037837738948364417678263749130284090279934582648058629817915574524123147296682847835306032937664202620100628634875001702098693967897045260346960412964663691994393938110238913410170429260561620902381631935489094995160718973953881224693818731358845564776122870670124589547515173205944862547267466150471169183190768408723767203045931031087316836568813344303247743720505474994661520690903983953264790606660224308755102702808947013069539804846932622083341286426550920229676724720678472590318415750330655296527112573830628422210002848265866124186562858606006389367512710052946249785764943319083150173156006802842745319130559755299080200199179873626188596173147474324580754299821690859570142323552537302874516543454117251683473143914953508717423684166542859339330615142673365241593759548625635340111825934321400638483421408992051861592056206324225699658718276459168265039776605271318378021746936697049419778772960364692504730043447598353255740099450001096828562127489001411885315015713932965766533870448601520452009990267934941915278641736391345874513696395083970862332055519380852495130950770895138073290672707264426526107142151703170342888088179289343929841060502306802553067217030973854315052400093945385833470243663129378285047728637580417632333284214322111824730683589291508462188340048076315971519597808419901821980859365714851884387423774579962337476100399393840018695601984955688475079845348385675221354019359472263828399166300264260987599242624924276648694720170607314009863667211609403971941962202884960995199879794668566344535964563477668688673731430718695554843373533792103087900320762683941686144197988242037404616267802085164598267678196586525969604204736406758929701932145490600858525413184297972702004973985181899174855607636337199109461400087765631728346666642767514630727181530468083237739115713839264531671789354090326256769403181223884982778220237770422118977599244693898182107695450131994643688578736882074925212835078597670692008569519445290972490204681303331453948262999279175629585582741874608502635442015812192998324516173319273854240980000946318903639319414995979137505324735202541402598408003624657328968314958343785647987160297755057669111187348644008645185244223331353685865574827949320605397293524679198810220537071108947681124497838255621101279307518687708877371218263427016714778759128420857873702888895207347688548618938255589711037196256654025873316555975626444580443463353473913788954080164900997734467223659483170378898684661866941505912860822697543214390032308478152049553546172255878650763415920105103681404309665778370247821000371312104127796978824830294200439730737619555899290479383060690087758024398681902857680542974670605864554190954051484722534414604515438223269201991917958082924424915773090830894468940707680203709519725808094716586491667156393038762371442011341209648358512246050234461412928499975593759130092315343673446279866701249955265672774720247182825950895659094504221229544891003333876933407859716183933827781322264388926464591527063010712711024269883236430703294176576905113528084605911639035089711347882572179439731237273653487783987949312650082985982852792080025378597421621460848767307770096858385847296595680691508259548206611419143159888599389008274134711861997500645026547571217963184478060086370782252808087627042102346277572862949568252741639700769294095346938952772656301723215178094923438730548343452790767669762563042527298466077097536331749747670149270803050824830257130519722716230216165214098290453717541103176828502969951321913476830458875264160186024012003771055574045657469598087124014810949181357321765656836701758169676873528902729249133623479216248174214930476322446487881915934406121210598062387910488021941783296342251655925841558613866093924961802473521057102467050468460396965721285469755547238125426660218376559763928567565057587828561430158239893433346366133551209597831909572300816823442737961688091442760545175066429839548479308687043463122910624220372429174101983272080551648177107496685462002552719523476618338175750243090554915112378994110337936560488176126732933755653089359781138379790757342244235773003893821174746233438019478148518744738214504347864113486034807689139280394141310804318659693579814414715650449702388393542864080371196834171748424800946878354776192903533621315953050279932129314892800083645265378537749593342441647519020465414515875324107187835518528216615953249097783129310228976383666534837755762917781595707926282524481221918756072276136267537758085858450498633560555142453499054279374663181098144693284600489027508824569553419171966222701303720531805029676032582944828070981169022464260177725469807958442468599174684727424751483922591083550117229637076132531250561988300558485383737893554940449227368503079005293698041823689845863714038887196791264711031103126975128935208118410333104296703536601162451812638828702411936759232400126369848896802283776685716584874352153086167667993138608400778374209972617576615340648363860105789343002268896467900822234259312168092575197228191805998372800505280598049088597549060245992760557833746606711548724629601058573428687701673598716961786518218169509175977529555476697404895428264272604595581377982138301858168901540188109111013752211291760072793600308482451631961098619891018534368380788395048721872476649229124124578487205831472447408838861961563325035982440892457270673407378948823949265494945242729844812810807709180561662353265368102114042807709979347887400976624335906702826525434637610524622944509693055267058586279642895723674065933596009874187520841733305052946398090534970807500930388558626571631349615987698267830891599380019552107783272199972983469696711196953819348839862441172030007232491760824618948288565197404052222192461263548565165085519713747942706300151631140431818443314104449789423715613202997490681848592808784152181756392764472078931040159281534333689777939886032843973923959151232237249504692531114493219586546144555339453492859560920085757304448816721956401076197590731348647902205481341398156725704447406555799644645195874230581499799385340578289750630466298450620925235980742297915272089651862797107705497182525036372356682290594406889771898272752248793340892972038746794807485183376869960400399013073364209410695151715406299673246096434884212325432006007313246567452698634727311151562670717567965849543021296019955411654938681655948852371926845125062312936401531880841511072835820638242319148992066446687311113575293683309692225045433077682647814898303651916352871304563586168316173262291470090163646962010165133689677934003416952686908948170285910759623606470482154302163142143959179920184042855598650209751744328566264169441382179726823458655556280022449098390112836526616825366884144404187465038894296988968101366144182782581160680006362871949215550343139886885261056555860329854584445047707645385192899452895401055367990516538839421409344356952891185765018872959565380438408015027355847047454794283576152194209079273303145457099176324273403030504375234945178332885463751338938175153804427669237840921715406913015783538502673543440293515178757480420923072936259197102462776147516037210565919583741833895269012765259759383895959166921909291104908838132852097408504667679400929132515622956277002287836345030710419383177563615048475393284596373004434041801756712070895916576217465540080975385474884716354711691937988160946629941404499019936741184304469697922579653607309706999854987810067987983896121189509072069134743771781333919733481957437699875659481442225354216137549899602831180446750276183710146188050859554401044699322275035662339985690516778603358648144291864675363163755599429798153104927837453892440390413202959543773629022894048892460953299871120622488626954291698893646382279264725120189224415489532860721143301309993480862139912950729600637108985158012992619846404739611658348839731749818532139762859320515889962312580544934499012823177362142536941768504766177401572952959405879649777437854608256687193318430449616591870286120361598893319619715816104502953092946677770049293245996237389739827272275834515894119997544425672279668151155661731926670494356504600956147831989502988160118672714218285206624289367251154170417618287328802982836273078938675182817241048155999787663673631940892682163904584609879618093479318898906596232811509083412684097318813881467588479941554803195859218987656449908263317571108987314244763245553174014658037560562451801928617503798465891195253160399898461793549196564843501951843251322004402415169142193242692835810167380866291722463595273624185098486665980101284769430940890822788159139506618964461194159508076309407122648350978391992817262301761527033414206016800318291373392189066466884804433894380827060493298689697232164297339541909534217878440569713221026055997769277827387500136353591570604295058107291414489501878814525983288625362245138076459279465474699340896168211827456177594606333527889637476501386281755945918701388252112321646129602656372004351066508841417936194039450078056212200864295502997370854621675612902059181140514127330164764390453093350762451030407978933101188477758176706349334589277666186566714711242399166335632281721917757911802003357991774445122790626146772994380914317666716322977833117627278415697656812576188982271601030933076745849168141679596774163019004957532120141841475812908429681975848482855058280694639801370486174773507177991672183475265241715121181278762945567517094426854735227320511739057201888915346357007947029996161201070338309082928884289180321101469644986931861522185473752100522690580392177565774543824485591523941431398179881237328387237282266494275407092205738475441864220721627198654782539673980575158672348073570847034408512299676691210705013556333251934374573859318245057064140374531782726002733171749111306086084548566366353236725724138893420584639598289348207790769009429113172351353462944586815016087769591708225897880106173809663416370213815009955824068523282467801986735119950813703254477454707660288707069466746769878041930675645707826374193310366362922592535306838877676363185857027597261425525640651402668656238977194284296992073792679530683062530937965335539578826319648525864255833848300461063582573881451071152841256419821768192874387501060904894646343352395778262911505005478399083191052635449136149413934432876283732952193601766200873529727730659016525789736526807098271251041310016989584394808349621136270825401891563836427052470759617583889032325499227630902524717893542777113599382787333680682540299213959946727669240006087981521439637735719062481138666191797348374429312299226524179435847763636062899628092547024155888286628125227559195930836065388587855367829482113499877269012589280176016482483680662277902701447883011422499455740604744308326348274976218310365450370401201757797883118944220643696262404366436120992627826946347891022126627143724163545953992231530087938178170603746441214659165310532092223884522472976084580064177228475944584252904124373356133206383002033393289070046386306251392592832460649475998995000072977258058654237330003290221776100525295386157857511263070156848094591099592221405910290682336364837486635426544204368365239010990260472375672423935304432690838627053479619151036218789950741817428274982085013881792306565444664064385742548753763694061171066343856903015295653828255001687101643587192421125734985927537966189208856761809941868990377554276768657969192659963885670770940796569436168501884505340636801221523408590303793989506688455053978104186536182480752818566659837726355642067995618141746536143683502385769114698918742806881340721414088453900499102041120862828285146195782998482278501059117716692150059980000610354586232784548727762830836702471533413290022566457003632646304780667940035185655146171685618978633868912615981896944570398138687070283171143162151478891606152168920484220630620917203479683430474015308837930967882929429710368734636774481573816993646090461909924321850767569176407510799292596606380992588106544663132611389686755918184540116280114107252175462106224028015387405620842378553819592044164433081162052476810625767643014933716051568610191237513922315021232180046259322590080074245450890430781809778392423356439226864747339449219341833694451310475050378014669095839475844009217117032059194852638178243118366676289058192178621023770432035296029774533749478716206900602233796971388109684891375143555292956229414991257427780284984760418389879047723308307046342061606035014875470760777215921806870482401539552438763998135742602658042377954893782039101719318259314940837327825521680669873526246849530725786642580894352684776325526747497924376806867743550953626814220445018167638157697642139172465042508322469140549053870086114263505414756758382293464376391076421594994064970001068632635060506635130369848680688946083749295173522760428872141350019247566656422040983992791310379246480292978892082853394967215850294312839743192659310342819981820611883610733187761694344058302386317429680732330338080436642424162194171658659125367387904946557449531208101753917715611423848232626191909955425429175614673759120186874764738048329578341963712069173796678751627212159336981254090064098468174332796676913496313867118303914179280547427990692868048037097434963859824337502576189037947896558396086451606272431339241561286988451667411024634542563213345146084926132902955366792628851984917414402554717644812707948909538635023831122974641376432919878327029277121743494929100205583200289822783806857753176356353519115891564533500434095568458122864814796070041552054239398954192470577389102413048561202035720066997991975974898888501430793515644266544055315211308906858715743314628863013450566022391521182289497353972011555476647831384424031163500559324215882811210058903367514387571594710242628266861068318638075806211658523732711872030548489644586559159292037027040602349103848326227584071311069241414729473441649769159556679015252110869068600742919300969548753642563911164123079874349841525399447587524366712775102152652236686749722821783116855004208677370426811116753711139961776772187558620049722098920989714042555408078686657051703823652783566780873780911017203721482189468008123653160967704425771043659700697493947710274024794356458706618209932384958139496555727792703712606934799365088094660255068840178775460774808845224459222325734862782859752843024167270517480230744233502235849935007859286244455858540603256417359741429485111696939895061726584294697803734669089399109105734413436381382550461435730999143546215817552062433005039542387923628195077681329371385189037878228251077579790174873716351974526791992645231870753135332293470363212332526309473728466335984451570175912762102219615612324127762596263066114326813492473900800157316168250666387132271571389340050183333494836129840987048276215507882937392549055299422127888872898463093018069474421436963505170145331504922123256577150923955879670310918956437482285888041659271855564470645731632033191320774653468659199418329417276878620742103452921695885940301256332475866330061982517800239592827255358114786787583352371412374128983869150695653405402923498780122410344363736033317537426566263019146863610011060027817720581063078897230646881119186854830330285777563389119321398986511277434069485759293959572347096786417388025465082543192992200847666745182675312539907742169782724681730214359820179710779318898494525064233549119968754699554115687240800025086279770707500154408882411072160440776065825798379586303265004242627514518869775451448031415899484847106659194710435522246216981382426467147509068450346743565221389061959376768693781743544131674506532748135058859330287875755511047113845142559008275156440219992686510807880410478048142651235043047138501613375521431361093838074015300697042254974945376352335803336876754286186440159501712772813486308330737679800238532927398856600357692947290309492606448642199933434281413965249005901371635614993438043185272860710195869792131101667708624489724875320253935510693347022356796666811607478350400586784259576678453284788051548637619360311727401149682533535407688183705069918722253874216314245021703224281054700105204218831848624379436017374493336259160957546030466552934269998075359165761970227988792579401422000871021288380277275080295722090674025869844617756828203416879348699673837058675318557408466445320152759059832543241697824720872205896797834790107764785626244979666963587886110264499832839813474555131212060445850148276394050724828378642571961034627896589956619324654589772887242801435108070076735079853209488510514957974438150130644736778248899804838933026017014855245255161345484054630117440633743461086985086739558146390150963475495182192548810378638021809390680964561713422448964768748611390183001419529572817945426368613747631794212123582434664185762200686554632926909434535992083607469109787551996162665585061627790041244994695913496110693434838605619218656086799500108041861440480045722532922475338297599751471233509845525289128986873305913144544193547181604791659002777181365006532128711615896922630448766243778809984988215426240786818642184737702673095374718745169571880711666955235205741437948797836840789686236982773220661937395093704684654613136869278044212215438884170916058460549917337615653939992784739694591421657647621165460851474167055798804812530650869873679936737008060829025498514752271048098180169636867716154746342281128245527204344153490913183435065272622661127868674151820574584373866360875268483892864343890215077588236301432033008051219314869076358775370068811516154698103265629740641075732927312830228883178710067521582682823277047117331990334591670545994752617430993419097340015783295818176981831559117863170585522312808172094143574938460811759361737865612607445177970870411862085725239639399938108617246599418917419543246579031330520518005878802819604026509976716198415795375770465491217801363583209462853239134600463674034006458208332661698823513999927045108117371654079786578304110178953928266309085251164277000456092260199438466454234607875877516142409733027209699559114912066016444043789619168402915539119447310343899129559465095215317626178412256725802895196836064217411424744982790930007531189602016230905121997086052218401744255063168949332204202313531420298917884759474771491125847610566347361602730904367760359080296922097279955103815856418409860100924620817726589519156772836816193114215349632529728211704225686879238610449859848235676157761630013890339298734553616449790465340238478021876776947322292563138853087005641342905797215382269721641772878543925640982876608812672752116573851882238869405172585930631187473918000026435303988436116146062852768240387843992898415253496924683926323862127740278895156788090030178464144369348749795232064959477682157625713542861557904354160488074967513168329146723190467957292317078239131929986987208204833417804006891086490516928775841241496444116489293898146067152214239097334316817050651255362700149305434256789425813547347571079026357610357948661091462345743136154191772597499332918876704550243384194312492920907544100791687018376859727543017730195052349454485160017913307704645916426674755685237655336419477698099624256791307560032334318292354460469653009400673684610404932511889213357876375188745044013861015736675768326842497952589368553684945289456532295114894352079790629024815008984537523345648170322312121782282931935212792776350452872236931954685982757803620414906567909802182437300902808737249708993755235448458974320662922123089751052244276859942401058452867489832814976242170789401043660626832654754437629488519807848478368342650690432990693000546938987763163858941225315332323543900728113840701784548765658861442210315716000097999774940732225069437152519575756951502507426288448141168221914011579011895310688534987369618775842657421036933343939112147626264314059616280406073183725484562272683681602609100441927814356905172021213359932819391697240139368995174719662331591325780517485761837154912836793963369722965520488079839007667962840775482464592727882401032273680709170066783554348655012822839182811305490441108067163264909323937276551342843557738668933300490997142039442826116967172858419267426488660117541393440266655621567238705744412343574543546639405334047144796964856436999961388223421761418452063351032577963761300582896179793184991576820106814463921361493012187880137525296502311919967550955636923221690222289648284217596220707943988518443617524757028999594810740743730843716437139720120512255995968098552787425195928745813108835761117283048957269858808667705690251792623768237897248488373824232931825202020502972438256194455520892088185378699507457811325174751810316296588010960505422833915863746096017487763320494536411525763571042200406988014590757999574316715687012000601090552413182928721930892630365362853692055991657005896359122020169157041275896983568465580103490145019259330844216036536446426196293452716711290130010557046455291783958715770159744744283965004528604900614806245886868010600236638100965708855345081836311166838788848440115855457029981384869763905285685042380418182553164124193786664551184580495240349219595324842211576836462448551232868661425852804405893668089353566568718177402482845365143230627801336488871428428367124555306030071892924252374327392285336593144485519180570586713522844020538980579678643259082065496847761987378035669440332806094124125681446226314538181625955148079518944994559179496214810902403060908926315133196578270581209847672296663563611761199146681244253624923254466998606350217701230345921830497198808578921279626247763688831671909654923397713667067101700267196876679332813371666230905204141880024085903562815246994657051505176179060167283909522864908272235921813878071133093177991842066144351536055003565445975603141401285679818337348517375236259263404128838600934943084387147481864639840366796262453364316283601991856744836522451319022743504295320018618654742389096010763815868789093837589036621567148490953926283962050294251642586957232518921936074371058911398380420370370209945260840211241098584114490103343884883286807592800031149124882096479606255697542765614416411358121544924949223763389400611203024620083080136419180851391312760813163080209542235295951200305674267758959656975899074559271898670064883466674245663293096029820626719979684733992500893408960814839706899217470197114731191478996924085088019150781462881697361506756771288148559824212722705037445327400252918326191104244861198218463439113794903714733481384133344901563310024818926686175463235390063959386633676042950487578750930887868639334977239088220148814241485057843142166685052490902676698975565308499448941445210184149024709254668956446027285270713946344565340691880307975749581223220389720314779049034180885614811155243179423548433669610061050895308809619169248263928531205616953292137941506969453027751513274129554995716689771157077619377310479139832314357620645032820130033654241387134544423131333011790011779935037458756898235648771708292048110105064716774102855503577273735344588688120361111256169611138725912820153214539935000269385623229641963584431395657661103463080829206015760717122222090475147457382114628866584564649121994071759664192727355208271831294820025438984573430957435598702652252513972944669374140644789876854112709759055371415959556422861663748797645735756658855878320343546584341378053483318039396234447942891873756285365290331710720960934748036309290486713086618114027241036618942659160654130172432031429488122913530797221093824502240607421418237784525329800078461354139503527741347221068290444431391108278491533875692520890012414336955403976688130238850486508136045239193611706365312952629380436033292073707801555261193508119036720487669802184633530312019549312114646301741659317093718718113932894033115759290213013763108575984326995722854785346253753655017433553094297861855110165725315075849142104405088258375012199621297548514686546310703542590976874413690810586642734909563330014614501288468251577173523022912313597015667564392721361899897384827621098147298290969531510095121768058126692896352936602631232552670878239781550179691991895356752177955412541117755703087437809690974980992408680972150479498549699346840319449163674528495035058789388046798072848022968798027537247534786888435535334146614751148458471973478788996453454642189327587822007249224869511762234614301075590250714883906590473359059134389192250087535281137487660521391442863245187165601861575595560322096232939331138273879076969802757720987920219124515230103615530581189349223077180642020421189853922241422341977221119053160122493518613646587334956739762812019246354531079796346693702515971284145349450666871662570881955674199236255088551250145754293859337696571282035692818318791902452559862323418061781675927573059854797295908733127197256194508248376924172018154380660787874185401088492820691672486811522688998881416855340397653462505302556109540325405265838085307547967980300060073378337197820660755311972684189359606916400846174261409017366305511143070909343047519506486166417789120313838014318344973140842094017113837717026494934631415745874538353494564809839342307228723527920872721982941548747507623725640524250146852492933219201447675434472720540418516543072120345218451190591603890213280052207621702696482988055314843880207461681505795795603538314470481556259153901886859012331736167588335929793238428607864029293074549402702241598541028316394953344617895793704338128206227095758392209787112908259598871521527498629383917403076148924499893651137565442810425303999704486633829571903744244486715578479066528133803387134879983063579225771608357860693718823712673839188803201468734911561554174455874514088027576319365088043890895451510524518720413878750155521225786782543976019155795223662700400561490975572025188967998664180470865820888008054529796566243854156485692930749392133370455267512372072901241900318196186743431232418607179366101984252453029117892930027457045712998286523405252359274901730051069850308736377371251938816697109642361479234821555065970744398669651171057761425550117283769429263578117634427245531659872453667408075274358701405914181512555675004297233576264300220124929498108098641635960458110853625633561998497652299448494603969194454392737448534690631502371879604181865883417427424997661359937883595524784925034493962894629129226844532888446529872088928472027259686310403844460850395444184037863413471235456560418601113259070259435731294545220901571634375684743324988760880499598713922305903154998900549370441067188900426834050964436209769067119053070014164533063452213965319419038700147156224895405207853925745300937228162201913411710186306569069525710754438791698460148987173881994749374578186707815358856494656062595654269802848628293295007654751883210545663375445930846260366504895560335709178104338296696882147744573875656371742250845427135573190157968915662103057258705393559940214195361014640603033882391333740631168926383121515672698044451616642484000179982748505091386582517101303627238282050274141989765904254008880681420394797734491945209004594220547139707155810639075368785438999844701094036492465881419412619523685979806102488233098728212507045881706002551036179479886462245481682495066120856131228684524828475423090641469611648638639992334849293372085183143318310276574178008545162808171244211116882045386356353113344407056691459389513330203868183708110171796726899816483198090339910280858755889532596245106651108257762242102079432491681227493726864125170862766331424952539673575840279437701221381112779935202906103285519089589160013297725666146275453381212583403868251677592235192905065708526070419018935143013802806887396766218023774196594694181086180621195874563815395857572600610910897282541857315372681020636042817750784023544091665341052542868578175309573934935230849013845737358935712151914289298736549009144486277332601483185360901488578597874914219070813590665061693350991954689195399294873981702397888158810309192105936786314659060756781242377679371819930916831161840634959470277524953422965524598016595967993268487781945414793650301350736333453864576207950688443019725084301753949795527552993626156030252316473159935879915171483639361169966920052719642824307731490852250200063977135501751764244627431376077694958220795235961753609581482637610666029101049343557674654782646987376989920937413421269416188176467761971660681336788135474251898280536382184474470569262610393190046201939574201119974525497698254806307652456686708158590897547490815950028303069610715352009825357019324997935448427461174063247226368249585329230021812628594444213274071419439591712402072599536656325925442967647360686543814557380500079984778426148178867480019780014937663168364453434347091405014745202667528859771711168573776971902348573098534670756070464640291258209095673039950056358103402902339729211344318799597542323337325555900755478839543300388658647308895727270416052398996816811123862885778906375950167127326510130125002720739101981931353520627636503663993126151076772170907623649728019948385228618224579714812069578186554156675191299731515080677907126299771931085082603160885465951700654458211696392655703342351717721703020920955783424959542619486981872420137992649373539981680751018809214108253212552427936724324217797535064615834228286841949883164515921067522643127746249614336663344003555479968154359217529577882935387317820376004780339527981134983970666511191863509502877016170420230434684300585455645474743059861101140459628793852056917014313012209319121135673320105831997608671852183240224435605907957032731250046124071471076147461186107700422180377628327456838144259079430919726795597415173255541065174358180585526848816304667043745534225155017106972785481256955123389247578156614615102589677406516336656423857462238867656028999417554486930316043547254754593522699882624251514130226755712981701408944431614570139834988388710282982637532161342009816138538756212991131762181200428259023423902986304302961745790039021050707420308029084285316648245974562495567502932240320953581428851050527895314254830989172436441484180842745796994535534040113126344720902343640784910900458397815919868701394091903397749796276275375103047660726517173130014544658425310210029761453237106246714153037630381791755249746365926942861587877178052842648790562036875699319512595237193674249766914708044985585517163281493060495928492271539081563427949711290188987093873058248268727002586489446402816949397783621523278899462475266076766802887265778279050255781013941978075373975280092731689223090264881555804845259406505641337480543390852579159899987078131038012037131377140945794959773123047489966060829140674040826147552598788707287467537980309663100778281534906164930333745522120446079343658197595080578710717922467835372417919606854531194573591620885337344078453412611399980535518756140437058090937098243724384843288223466673225173749142797117471245204118856696183735280812393938497538142888810367834800225804879993271434461217335109772744206383207063205437937345420362158671123245419048279168579008882983563376878431567931197503961215752072772984116253224577465248984310036527283350107650744673348663459779635104406047900793107887170420012707708271530380862003562557578545308764155881197034757187911910026562506389209396497714272178868886052942344775337834707278523675420173966091668596730771012138012003213405561326465829261241619967138632402310837780947100821642062751453378646815746616161453825809357425140809418174602747736206980897966143339157876045328894094101975829170895215813572656534200013033877983138027765472186592298037504328681648546886268330909024473309787568255408929148075898278792240982219364879703089574675863767834539147806768993990945360764179703115321116961526445682571679283999064594155958594905381044394382563468263024231971459164284383371251004063479698111869788728943903483082832274861677690369326242285978312215095238380312875513390950747367111519609340997430410483227345350122556484377639852650758899706113656437581617181257717162553197837968860530070215246232281068291956927919111860452791229775873046663021586267825880077557973180656447545544248727462021038776726637558354714031558304614543256016228167902326503732900381214779053705965657513008497075307488617545884304315614139608160876288477133432968531059677793241930369584484744842187297368795280681095471690630483746769378588565363053904501320147528469384899703177179624607535978009449578275950239264288668379534478212847295538891148666495197858290303043707224153269074165914463983499758735106052470374416036394033775730229660370267272892125418490848167986825789261655301073772247112918845346773978208731083461182187976687852756564200920239722272127973767541031645891950191318424637152005729357749023621549929188135722268174321945168056073478538405720863828982979874685348749088588688438823019256492466928739157365236538953882504991322687475822421165704460132995730106491933100761650636975063077245711382442192749137294201730847238993290946971287218840235862359204669487968277562929386758398245437032262172551938398755508265250109129193385857465450843585915713824785210477961741273435612055117702057600607485550717337787669875146355546052323481566873783481606722955433088809825557882810206336092814344482469925514023062633542055111782414284861074035708164993309345542083541816681375733942538407033513334045636640923955590351078419643150171955765180810849117763894521937418382641035320313205968447129258125494205548997634234967267713057269719498176000242046522992125911543059704855540403311492900993892334285984377322416993884850517489480292693732492466224531339082813572358780480291106878073542363153065936442619123123270264493943300626183466992459477481080519234429671724816262782688785659688201778727456230033521881958078812474992833062797330285329484769695447019571958456657671339869945415421945500417392124263121343278092746754249806651545794242672203975556513744444767234096588343039165877386119861024679400446499323645082920788855816047568410405024604186110853179886605752797032019670674315799190055809453566969571643944669355634021311724020656954160439567640746150398643578579099746901653018131467694114252503390502732453560255389211611078054764123678617817985158503976982346128364452026277479810623205931252123689416199371705271525971003747803741600469843324624008829351419194057034183224942401945778999584445889149366974681786379720916817845124237500925477581457847858627436882809957364848059764124726148137121881481724246839443385153719403373594482616656222283481490885950517977080688315273979063162639935574128770872998521808895405075332866958899090207392519596891958208802091235935244010001706897853894277293519491486609737726494915238610956965809379685868036390011131011827449256079065003701682185290196629662673797921412062802695998609069694193605950613841721663771753454177063785821010125336667067720604286632205234846548386695260848152885928667592299166318553423663569098856529684647651225352268689933821349353636702564714210111200869990019552912785322470036217943256642274081282009246275871827947880072429925762094348533330795158243297435477663899360718488600055901993591412054519952414731861976121402177479030847616692106160737413771970043431088883368829309485482252589346587454087644309160229733363737926358734294528643928887967324452002157308221588090764203317274414986977912649447159329651453462841350493916427680078582390084573777695895445447273677689441613655554920443311823927861297415927232717598046596197162161559832222606658643897892549836627755572022742466340887543353652292296575592252864508682510355997773054854814955363970211640175754706312237761633205077259435023835012598779399796610755167192451624612279252106005972322231655354356815936237711676152145871165630444348088936598094505323291711783815696847595235096906518696295848737517955282171605054766381037759996885686128139483339209940891653019424397366869138319346404704142876314280995582138597265876694428545638502894030244949340244202819784298076950130606088307751725057391283639583972820024159773442020127568615589078955376122239197790185565330306616509609201665908270372925411369266256637681053684374742557989578991566881942731486595421769827987033188122602361056765900985837125863420479444441840531992764532396469090769468565982612518562101207997721150356015497251378585303744231822340112304467748316368361886590896796669774554769952759434474227959248124714019061254059145748013736588993267319885711683296434550913877533652908632058661543949008625381711829645682789796108993367654962288965149252668120299356063583988993555889597320052468951618139476066585071995552177181380413219501837802620581212209174370320251643163614588928939299348440803729979120959397897934816095060809289904907560675221049535125890350787875513365968128718599967481114890685421971189539124573619171460084590760957957193533386692629290999350501196059186306082772930209649380330491830842050726227488148356487615018804878172217220836266874114130410375579630316656272609128241369167791896676909260920499195101615377907261388871738475153201838687627595191120570882599170587518526015266213422481262547136685524576105307763145301065629297293036364754969664306811776217149171417339185689376873579092240957050408156119724621709679137597613495039126843683830163637906191207712812189983565804149648128148292799739341706199910535504142508683956235077194213882882598351395208495148499042961591015972061433159236725991299855572179732123656182692070608156577150100113156668705892777124882000420593693911802644620661577899232862355851536283924288838388941905123579599465240668680224183864933712716711108374825267773111313259636814684250301365406355992970120966009320848114739168798742908626341307833612557376367435498567187003679352991620310983516801916995122563467280814211711870986504592107934012118564086469274932035158785988205752149812161036125479855858238372688907606174161754991362577626309418310682094570744304395940656436062906185134060856378906573112961349983595754070607441683825415582042481251732754882557588410776307902368571021931604182630391418241735300012751843003123359880030839018352674846482998468484954501920617624318607115890250502289407203587998754619677815006932043280433271136739089081657641900934469956703280775220943772194031374970525683516132458705190825559548501133542270479329756359525891407722240719603535555914205113908544493496853057375663788891351630397197975100462501172241565318017696245393614955388916735997127711772859000965974541235078415326942978927235322684103441161122109078352309958604715774582674345734700318747360770696220979429306787670157827986705716024948492767745792388638399888350305639930266960004289753443705482453420099679917794236385790456743378119443614612526664680543846110514134123968941825019217707957675220315481087815326465922405346855169545594037230951761527486867038151559469970518100024724481059351980577025141770988959734692382815578333116129516987511443729237808646535142160008264834453412743849872197513343744617460828421157274541343333402865037760054290173333528750908211217524527117372160717175717373663061690951995100838942005802339393913404078978252830687158890917773052413598055085033887479471617674904397631559736729262897944818649061386811298009774749020491322531438479369841721608232117347262182075318500856216467223147132078278193327474054188631160313641293028779625789549212460740879392009866484040433353678142767385585983770925978325441678496130122294974448563800040429119114407743151691817787875716125894775797029753103249545160358442400589432662538025585298157284880910448841570732976556459531456500540022619567930510918554365115632237233968313523851540115953690325109663326803296312489720283060368315378728055898347538024858059331599830097807265266326340180915013589072911245202208650636778266156715380242639381028267659963783273915239006110918077340298902243733303930887181868824772132644360118062195582078420777623200431862217431315689451373163978884597161023277179559264090653666165633442275794748659373252400173540656251731585514909212221994043888686739018350060597018995159155842420500176082903835027771830691524068391353498279329420241858597819813810932645100410405602024128753111992043664336042687640577995039449982090849529075360503835688528259119690901473860558454825293115041405569916058158880581686622903559739080909200649633463264075694991672375941140457387524888689956554246038864566581509808304040135734682863624595747305524545779848443097868708803422960201277834684920061552490779865379137700932987277840705936440654276109175414058911906365267351764121827707798723746871390800847848691071339378570669614858254368829618329610344719334804232070623973796883632989227636109421593962291171661170300677737026907246573066290359708396576753084037391179284953828141206026274819488151576546381924640896738990722266620760775103258904052416230520088818083350624283799337908268114569279059038164302755121433661802638995215973408218917263971840442616185270649314877003639822436838659178826676830106590204585279025289323950021263350073316512069729289933943178346943364844175992186357798146910844130596395546235658159083428437774586598743127056666145051847098470506247851777472422509891215303741561353417268150782874784524923301084920334334803058416095145685321033545824913630053903677338589236274569673771994541710098797694604483322724604865698261778769710365794570005238155334214918963692453155989184576576465043464208442099927113000284760777454026604932532883544825087953962363712372163647925406290884120710742451965300428837580528725913876372991837427146340756949919051759655048509291601795098352855507186376446770141401167666703015826744753249293683665541465457087163477054985324264530567222577520853458901933784911913247583717424819483994480517638877520907898163005224018143239538105748465648256152514421949368807652134308394049886155432977040284536256854583357335107034457779192247958845820507446210633331880689297304170679649862111293699031560431113747993724982088079872422712062616276919659254072719822917262842235206750222154402739961605168880148733522314823585329961210013665402766485575426562592111757356582274688933955433904283668102195104436189155066065745023223945257528100365471162378302469662843079853069978555315845619947891397559234522672925519317957651736614987429189844855608503480226276412053025737220646266274288467488538280213585754678252493436234177443234006609065262253967058995817531755473503724844243444115279053649946052653392216385034009788807459013403323975715768813208909177933517511200703941745302658548221447208128494744337610065390632101249774168653430247778421668200210789563936814969036134020149913129708460716230899347137818243373417540627637162392355162266180662536199767647969494279095647826116812006215406494959308512806394092022923712302264308090749538677962474494060214446509663562753562314034599800069022088855383171130173541033144960649740461552626075320829363786705652629834656086825595425662513524333009943055461980756720645567837850457326486296465458347999074083788431625902336081096754897854939040820879163664394847917111724982487281955460051276464396158992765557776273347190780999282358289117683483609822605474678216480159519047020062897815092435093959776756162862707761514071374477097587430057447768938425244192184765289043274335502928133843019195525158801062621361617910154746630279105997871416194751669702624059976029599667285659142642899211412390461104641451771554938933004492548501383284781639060102785051174612860975638948803897635431911442505428019595916350819639520113324850492924884078621813935384209037241839729596400084855895618834961575581812822941193107331557382563393627565134526562619671175375801383136867898885231757500862595503546353230058734786497193464284613443246792336122970625765256658637244488309218242947151300313414744962065067896298074241861264796515012866766856761275912003508364491353489033007060162967053382789401235630979943612059351918850232358120975453903141220475895804003824492321621022750522183762253330935879900208664436953041510045061630795712143058859514031012156664248841475712865952636472494426669741583843215172198343350070751511879690420609762562201898867009417299251823101033393505485740361069637109057015931130371903506235750411173358419322526923088609802320937986303836127325132169684705445426234147045785797515152955813253485217418461195233137420868411919096909566897917901126923160491679788944922490341186916621478610447472750319288568120858112928866842014677042974750818362314085488189230301134536744193743855875574955064348595505638703548091015944855378064879222876885313286560968424290500693643605549947224895895873637964381911750250752036057103861334063569574230157183246289259817670361232837816985146059587623053546901992035000866399700528455949417105063608798635329265618139189153572805700125735135821758137443607141216725933076616097741469619592814704121902844409696886428004617008713467545305223139611343668863650647632390987277556242916689025288097936370204009611211258771636166448606549498762619746704894766158300405166621116878016886394777759736895651191190376749818919209547791099904568681775566391355960747874941362659062402670430062886655651275081005654191427880602315485201683908032655614998690070932839110307728188339791369689951289803118446554290675257087045976096219593041755035975016479077932126491533369306111160829727851087659399403771922854510911637132156070623508652406031569543268502724880663654613109845792253743903740923678435040263654104207053750784001619771527112339824019689377716111328335311919855560235737819649642617029022030972420098869864879401737104066350113077040442053609533132464994536061582974563627606335690742018194674990826973074554190563918149901870869961495457177137307074121888501755095405969122257578222872279684904831084689250642078653501035939315319361324390353606507663964573308413567052391781596826344759392758527887715182567921601296033726002550198584709331035238718520609490621616768628399951469556539983791996499676592341116315750126308295371023215314188179550469053909335578284143891486948794009331146086280369970409499845289106100910827397429974884379986297819060763610566441146555157393558223568492716338398648180867805740046933429620452059033063595744293578604272286166507191847576700007740347774230635576005959625039155399862862107849175754781454950160593858236397805903041985343343435552371933495530593443182993918081087248600300650014168162864797627412224553125189243849436582399596398746446010806766477077546924081503423534329455989365787721792213345070758892638787359726883155979813628131639129089497479361291975593393467325652537252427037039175278821145674242438035484788173675311871233846704713714650224869624115230600547695090936919317836742459353230841375017844920809487760590666382459322580555136737513798202640882859213892280167930759181639577528912062548436144244778488276210866187636287838919921468783400448830968283182158583314078422987164931717347285666658134889824310687751179122775424466764560122708453012398576601686548271137315045364380820781252175735993898118945155476085614457245975726828547215929565578927766892853358996254299545121758206634730528226108671638184461375300902137771531160625186711423706741662892952922268657824590693550991720641893189056646443397042989706104595350704855424575442079737151740078827218842592097587768685688531201838430209424687308435923202068268708904153832961979477003380283597442865592980215418237555181051870804034343679936925850961593223412150062323852665076085206561524723644520281607014358564481399408603090810406681481001283555160251868306098878808964351828666220036145875748327503720176368867982258306346833041747322826726352398596048536720598425621877447759890576156527152266325838914037362462067475474051982327019470357711251903767665056277717970002885791105615675350317836898371834322810185190928248847871279727553549702146847427075259228716535012802386100120104462347473675814928816068581988832585083254668456633276517979263816692768022295624221519140472486857578378037103745956370217592260200689102194523586317035123575385257459663424963832215514697267858140438583160311406066557205677610944390955346945342550266818130866514685045137983966571830654644000292548069278463589956850739639679979754121259744601125289735003722773704206974254423395907716398791451065017488930655953511420963174126120435029790330303089775828597831636169731167283910383906965608487566980932989992829558136009871911288397367554946550507385541810039487486893011180495918154920967976319826509250041629166367622803644976003689437255023835016999925785317730084172364934954072086441642279846972897672548809372242656337180331666728685214516441726271410942620760888424162139135160278113597572322971883949625663874901094287865862577844141579701941269777629467409188080135633521624837513667949673257522414666471639049918731039870384685042508938232876803358448329510580408308982488147623503723914034541289705682403828153012540227408368720555962743079042905767299890587803790022657120878083958846506028418903767335940826666649933311680085562509631461738784362137947031812690136658192233327198418931410277239657359127861392490667448166092521084151937891009798020330551394926828380570000685204668393607328611351261118176442988549467980982401486884915722864872555931150966291466417414072448481404555092972171969476719244721088055554289711146362437197006298880934175765838685434791650669523040954030042104566244739408757582655241605067863507236200374488383294612458413868245574231548826484262953680125987957830165221098770790276931919353545915731784248820868377980020525969851236734150174058665767452679432159524913985291479471150052795455793557902007218360098560144760395738387819084528056456233838854878508966107578494883679531661452366247191402998623629640598417821942830119234595180555576340150115401936907125121762167724386350123330146608160985230356425629717836135421167901340033773816147902006212445214380247529695253446228501625325094679524657476792884514225009486367165521951672432723247699475542415379153789317970643729045649491222939104137206737928066357787600642890549751447411170442035216674134099947394774346868885941743056346299224298119357246564310545254841080105491200731256961850298088267181521761570627561033514607719619470737802437313473081391095414964946980576247354820923009591759331566038946470560881466897400386695761218109559344777331423066054237661420510317893583147055913249035775873229541173759529792143205943864212707739019963975520631058279192101561739837194915695083794630764938048141795766918882748070918366585657277470422303979899439838830774776083084281186801744348197109002280007740312303237971265601513425884967797394844103374750739790821882058135337020125239007559460215424436232568560206560511131753801524233657674740869947237452248152075593853218274795559041406491880790769527929794921398538785620437760780584930454526990724901070162067409594580651053888447662680387466435267682591859030805681778312232456775031680853246480893123059553080959838174290094808697802116839649633478380225745253301017135526739833751135561196175935043606072529009581870479699760723833103417934037093584053231802596756959877218387202919921157135446351480785394835198812426959926316189777968362887399440897799207453713693048514015894699229564117437264967336237137064160152399213367118753671758861036335223350236287385917286851310369473695943336228133765415849295565628646751633284192746556715056205840460409847731912577657064895317998416448670084401897023159905432646758539999065075911126966979547751857719212611455140209139023772591431007509680975486566260275891400087091009409661439586305323098009911132453480262600470869592515856677693748866280062235288105871194189543995030766512105449513242951993556511558806109243963149009694486491339743819719364449682961243412745119870258592662612421212366987548224295003825935353910311860342933696620398833229764436754310222516042221264899209355934221433824591443250741442807405322959343369107656094268791455543323823715965610409541535481172368980319294505743585910320495380730537596694715608497521218335645685019827235317116095246188986649669355427815398936291976002910378886956829402836398948754572169036626112999686661242884489565119461477160501685483109052693621573151851720281467894232440873010262493207228583589485204285796568265943142174939051331407502968953792133841790479022829075379943454394592614999845379777863935711658825001990910443078900827569667455598992038036496763507873538863764012162133223180387597547560374641449187035983742188472734529569960332910318180995160308840784964037817415068684765585242427819100630268321418919595098923405176185342895582553397735041309383258536693445789280561983953824764233607622794764657565044770233239180286975198200049266567518451601502107532164086421862697648400712459197214301480040912519421309456526173944715195621638218826447223406121223646861510143778036693568524986330817097194473818274372721949117026965799907873473512564447592178552768715677026943453136011993407182763345204949322688585993433885903632644822255172988396228861029692956716912099821940477848539074673680285733049705590959725287097009197393384471708622202902231188481105307908370455504009591514193730600029440978987541519061123665087376560748464929552483501139395344631331562132016094796528165404207866723526686644844556093074227626954722260411426659548859852414002321009693681216713431507116660972800499886704498930497115735184131077084538636349905672702106792572672945492272607755787802910689403096205580884398507329165867429177786892894228030015540385893162032822372801100866113628736178072704833476361255086622540109227787034445101005581200895368996012013829472414382897965450348142151651871359224057087482562984188419167135241637039824310761366441915249072392954535480940617967337889120591896400284947032773014620155926404235751135629100858479797230351259286787320270434572029134831241830139032399098947973908953182630237309312186371165772999363289674184359435945201198934055778407754346468263997360035580958879975771854509273987169325778974104830012786580422003289451070183127038583911012013409711929570734987394941081569104847197662599262980819253918463206802444140677366490728430700827092496444059310283367347714123231111024980556680063829022014049272955141882384690781113171817116624823496252093318362900846463685197002123653414306827545766200109962564685295142762188820286003858045456086724078669642777711911177738454570192284666999319512078313872928938694723717998832186750000005390799677911372712815214945308823145577767325044716431171079098666297922223303202386630358963714311191787854539072470194791019419817923550568368604895188941472054430551824720542468472181410149064622712323622805420874525310336957747327908149049669029179288246155186186946487195613498824816288155942084055373774121748313533352981890463037924211786016619109358456995372287776264788611845258529391990441161010849448814907584325299982576458469181845190767474858325600326478578836271824982085485669868063172151903444558888600321368591936691059015357167809631223044169838295944821734320217965294154491343271916355289224852941053945229905579121155491472386159887188746059307712670415917825844081993954758874646235491740626401676309169203683721546633615240927251111649399706133588213048605493731625820210963868970562237310962139679118444774370358903072814135621421553028865136242866038388812447652067175700609817287813318076374547904053989849891116394434617857104154735010153122392624130835890428592986231512757574579027280913530395885581082991850688102165176817547532042435988364218949944117374608900603242767246188294942925258045245375109649334975958211277311586160578740529279045774063077918440174008585960308319146248693631521420680149371346730308493992386711088556978598996279635747072865148369420381884880098611405217766678587018466691264601552513754033731796505187785779773941180573401828302813947776410679190894975595936412330346237409475137442553423712503000130364510771791453050655774088320434297917289253320674846068421891469227841907941729738455815797818292392604692810951368085354265673681538441425512548315864821557931078377132984241975913082770006801127864205909689181451259418067251060978227953978382812111757770965052174554878159378345450905803049505468938868095959902891392796547859272111597684278222044892716618098465116197878414626390321631838124776812340713743264326726847719220081916149076303059414463447355379461288705309233892867445969829366144506464008186752177648458211775903470418006285184143549900927290804943845436399379137975674530506085992104917398254382302485785359136155993780104444818244222978577266476233852497416268445610557005576051991011937901173174260830373887061710555888281487543659706823368699551056556198355713526173100158776360349330957010736504291495941442231344490417820268956564846180754767377917551059016364430000799143043487708948897090150816185151966340697447858949991649640457409405985476873453850113302788019465558237200569823389368844679770664982204229862345973730636661332174659118515553069030000383326085015469261700071574003131543741452325694631402161545407410569251518025325779675669758061093243017043176492111759996563307096153465258162575772329146301058371873502728370133256141302220722697779328856072671766068148727406043758438717028656595507746366219613293726026344254134206276860591958915317488470173753014525778377215497665412643636058726159146320926093359336570371783787734921276845210112621086846434412165070926453896356943342947686263169256253882434024272827067245035050061673899055832737498569506121364203800036347252258321394918989508672231610178597835170000404040894068807313880901041326426483250559926113772793800313522090614224262196371903743756090168646343476553405884588846857933507507277339535212913135556823603000965374826157228195120651794749193470051313329262246111882487310049698296296733252266631680701515783391233916594895868229316663108767120895572688339113359607242328483009424327031573446610862449697257102983729448845944646114770785219962679066907674812027853178586105690240117778205372452470654153351627954703369984497905703780077233061390759507848008453704856877715000048146639078053130318784792870764084522618868277430294343049348700426392040013523009928441653119429502381006443297407800512078770462242711552572005571314574461100749011879282219144246377141810062396667122067894313679165495736114514469259119294950463788060717953013902163175875190394285930812860989297434360209421461058761378498290432576027900204439834046832707193729064687234991015910358470558960333045625593891736608362396364245074293647539325013807176227296887344752819999634632366022153361634781698026852345774583471810577771437870983442180152066540611920693990378876050824771654783727586840021289051762161987278802548116395865272710872660297025033205973242565085248610561127853834670808442462895482976402533563137153441265051118750523400792575612670372976652718160962377633063775242446294480477109310894002498618929912461298295299052385094193464882885815096182367481780712693708052356139010659674689491866733062736619999647388010513679916473322794954397226740489256128444508049836645713710574234997161722510217474269299267720861682902537093401265451453689870992092262347252909961105583033591544252581320911169154456322146421434805121834673786577669985672721009670518145494266428823788637896622318046055314362916619494494991266400692649594885076894727317238330068327619867793574617480412682603892487685370968270382956762263396840365558560081493316103846275330348665940825612786637947925012215377525233840294723503163325921704678279272646280664252455476965199267728568455869159814339226089156484240044997950876934501378279220281778004440148805674245594893124086762197175784994387198087268270120059697498242160851933234920394620120753545181163196408875218433710752903545470867782028554483104048963032562571368459526003628670164714585234759208141461955098440727903860924203993089600300501135138430419096830154333374950999226045923772751210487095222999172186478154588578381587475674090352866295488642115491522682975103965226796374445915242605479751527511690134842073437719668185963098800274916850687482809627070379047772334971891283825101438199374911396363738768959534219355230739758866697017116489832098556555119869159091610354887379650507855749588828411183520881211901208520289976571047670764383889008073725077463469716591038481869895888132198819702372723602636856467781571680274624473318728737238291552399418050766122155012939821868689265629497898499415023192529173837234604908506084176031755385657437192381397176672443261922900265262653593363854638597827082206098733760972039933885784380293841149678682059914108496869863352040079461719035530471541125105011807098527090415486613737197979251623991561877717078433420166456476591563757651852229724605322251561853846026354920520147652348790419948989472309497702522686954993310771294460704124586272403973350870657254946020879389597616262693893061491504817111472825628243739741258820502221342597023889086365917044673412336893723855764489372055628338131402405855120118451961409867864363899751044158364468566369007371407167145955215729705440466853044486984177586447017962582908056311921589724033403152256559718152647051644800830750324484363650410299321119813212065811188260428221262332377492490543808510906837538325751485357348809455174477817107956993445572111350456480975949405293800169085077041905235598682490588972390299453830766739795862515641314519109621890170633731275575288802893325835534609607931525768322344583142689044189168929736697811144516612759689645518206477502582214813045260109705294708975598195040575974024917938388928588361229589364377863063401240102408349161934646357196022756478071113874079300245516494731396659143630866653322288654558376190573373868409001617887799364726935930653550883173144111660526352213022680234360431234335603035060800830660580217342307492925291134547226387336558975933663908942974710631534758689393570354745272887677977792172598085329341330538618097729759701263281599507107730948575834641842857239630694210233702811856985175280812719391616417858636047677277319577015758064394484722880785355717209105164119538309643861440572018217589437604717422308727396198107801849230928589739260587695503978846527723446225214856068764009417364874899034606098222012523482097327696369111656984840785868637184620418690539763157322433158901319549203085046878698606224787770439198838023747641893976553192153947399549034160101840262416101356888804973377191997954735723073571337403096221039471516506475609419496844867005747434186053924970655596539426198649123431153904452910441916048335696889335562121694508056984349087774611860596476984169019358595780801171277242241885543653282684578554977631943307350123224099209693841625836967749731681107089099283263742830655687112842477344420248000333630291440664709860956234009090270928616991627329557481997751225100110265308830161386165527598870961036609994146459851790807617031088267230922214707691454543361949531322746016040682017066330305334819479782269475428012832652879734912439998644538056885854491737246172841184285743418507689360539698001114457698398124206891933948936412295220981912598020722403141681319698924725903773069753987600266902758952701794688369549863893899120016041542513427286952536321395837295192175325969745946822888810343069860193897231186415275236349689833869095628131491147288003324357275217594168023257362834319371019716805905157707530588066064375623583060422317210508519254428757058540832928156984797364555141388306368683177166330618785694380394542460862659474523259061884965961159993465913753198456654594410102881640162861333380202979571143851169611381662316759518889215436281290825750930479279050969851289540629054191415510931753247101752884020765673925420172275586909603729304089083257947275449848543352293015001155138410923631726616023688089977700537009779832291055981798490389994855025013830680719576418988534250046398037367100712702344872951772906896047529181467752116422850281401714533894519456743576484374315568352544795667751845024299600236800324507569078293684495050631607440598990678950901396673229389188006362184874280821746936623443310352074316394737071116860351411221187345540470679199121946813507497742710342150271257490351886014707635275941733128981149551184406007592997606691368315531755354943356479748824763191137653118973583118164660967164208043016715890487009031628578441090049354488397328132429418090487855706623554064101449848272836948528687277604155330666908416971326751139978409249976815711368777203432310709051164040456957872074662980783890626822309151316877764346503812962372202556095711384925828676234327618424938762554753238851477851483306188398893156831005041293629967537147476161257652309034035129296489008824347708897013183536145215995448905771717877683881453864459230944724333207618036582454342988669777445831934531517507118938574025392992012657857673611899616786077130188177086390515809172851609006142666663171900437377054362510192466589572023799502617852518812672266014122710049984389895781008267248801705248606086427171069525241895517004559684911060096490972793636961484750480357523797216158770316697449258639758991445691150395098631551331161982005733991285946773875275978232217247240455275997844253755134886963460642970886143808031370830661855894192474499377833045278908076744637867413889383194323587916128693737238763046290403498312410151478534980605518155614137510747983962314696844172764978963267598389086897215085028730518740783930327398002954436679632719138730100155028762117272334067932319626174620960532362991966971104956609573680673118974623353584414959377004849667109555933254464481955817349877047024340846527842837192232569257242977122081395783303526546111904148310275502544414028096521534442903839412414944746644351044326733625871921036056590121597166705361696545838115420689937169293314862865911000876939156964707615254816854933404038136328782917519148815619657880552862418897323015683779774260577159220244492696854904940221157335616497274824240234495508927740832170303480336254366996972861465076063094939918857825521186603527238820697118966152599094412718605974537833490255512493407962145717391475688013319402908594293677109480451563245429672970182824708889995621634244281068242183002833007729901510781240656658397263993510415623603783004824337242326637282821330165527718311408693271790621073623773162212803246630978924581398749342805765761642124348406358858842448686371922110750480901647809960137183548575107782301867547543982258904274095181090165772217539719100433998729206249359028219024244411873477319473030491554490369584069429547408601967489311527067388589366503713109742846662352236962372804387393496555029931860730696367055262811892212301590039138131309079334579034821041088004073842595908063225639014095121154589836581584474745291526383778495128549063390121569732164137501385033042433581737809299277399827627469963024930177403383652114935968710478110027995740602879231147989566595913259051649090092500735258911149006353745488171633744744711663936522152009467085847280543551064996780179975894822947131758676871868476327302953391620797741746063761431263393582340479219424900346848207316689746813300616063556860012977975952956721756213390009891209243906730758941728859394319917716711076086795081542243897860530269528305427021995552655320971511525223903656832019538436840606337087911607889116375467008209901228157640147786857667588169996103686047543761173855910657375700458526171653833240561220162467877033021536700004261583677605572346894327031861231870183083621371341781265873060281568038225258121458566435654611081711889737757592597354751455873036466366915760526241686301082134436185168340325587044294274711385944693793694101665626828948339095098553570273703831374906200700179365113259940236884375379890268891262178184624103107406654496455301042623836600786741417669059274876963195166899176273648943639258856566759400446888814233779955948742634075452362835767952347060202656251961506592547177312377600839330506806535867730142062772213318615223054748789641944459901926744841460682202373476009004333870717695824434478194458166576215760336489168937349764162592256709546218890927421259384908085900095460424999775751673429744090383831096701186442024977525300457450306082737509928481820353752620406798624430282974762616289480525005506843887864168296829495489827566550501114707124716210890456634622422441269424565784774753148107989901845032250401062828507926242465047760060814587718143890019551111287259698963758268890035244476218497632369826143043931997501794137634551072726149078183223627437796627215195617364286255623108963387859561426737175619798037869113105636866645381155651629746839273351387174128026131189499412754186149702157054305365287275098663842166870032634078573534562010043682947373268460734247674750598570310347525725759735873504017809882248067305802863426975587799991471512314652747916553656167228977668937077829730906401973761891330690602288861992825263987644034701966195880922581244375154121326852373679283271610684373450301859789806713403036832049463431028326357867569110979195378796113339468890713449575836074807838964346953121015036736623315557570246340176028903562307283739218311928638085244917307678562703957944488018742211007504947537036994724792533810513767903378405189597857287135135703915812767399473830085289644559734571917291289606937910570247376943824417123553374716952530579658383288700626808917211873426398183747688628893702313147408984771538627250538709576081168062650948166236619237194108196128427527046293064297872209723028490224011455311369240115296028807282689394445659987933507748202828365933446895188281893953766672684109272057531664167102813288933843759094436870566446440039693493385235667527872754126476386356990026976102179878737629434223761301496530621535184020790781290573241844130790836316859657081026426633506845853841047357936952195355961088376455218968415772950772208068244131798360748215121390120092221099956524544263511694988715796224339252090001777947363613148061640035598814084859299975203732970498049231859096972842784676860224023160637473025248910706402253210729321081661236730713058784060356497833877285190339581470658194896591234910261288257778825585376295789790926253599299815359970816701031980039926104464624044842135245191514544747663072808771377377260270308878231630924180762569890636104587762625718749765378047628426545912357931130244719501815047955953323498167747669324919949746468296127410669832710765777850600628904152957768173105653441289560189374347493950824887566741501441653210354027095885877094064463402971906826942182874390180242509969615931735164124918723316644206775234613834457112155429719429509195203977792254526905462506639836622391107407126384882600395422055708341146482014355199053766117264606690807671311673043634257023757240836355288682100197397089548459800158025233531076637599533756707537673586525887875949390306032468636239033607039843687011807221279747753169365743806489234729916228920446269314271869168137475484553026422844682484513058548260582830348490177351303532715622484437299946819005837634535448485703787672078542678584492442003356781590052516771754061885700501884711636693689318137120636695668830633187297842540339298300744491715550427766013363995218569060276423707603962275790967282692249475568018511491936296727699193618398207483336148282889499620079064707965749171733003407912978113876017996168773162814325110147172479196658714206241380719388827678821253685392092474353014660754554055544448914814348711109162813613545599063085980465862007013319895873789485634206816924135922934248496014430369200735648385182381750198388140580672337911452707816954637131390781566649487407864309163146007470530058707010740440193099122101156022958641609178897241601474381251690910472037385143962759850820590107377301421014021988304070219266782321990830392388623321074428510871527965869140970011856625633851025193247018474817932784141201367585299563233925219404878977379910063451459993423893825549041639911311532885185099725506254550156325593153063021025620526293079940665638619129939232530324047700744048943783810818475988787830948496764458236177899078616758051477608609935549416733213172539705364791685384805732921040706096385192482458246460517410831088047787690817841179180473528814440021013917544037014565024644449668483539928268761601216797301801556564391165299688851207566940405719645569109831534486427909699444048870379557547223548743334557385116651574602537427911796821938288702828409415958853336751072407633186223032258359121970148720169094621846964889078680134209024453691045990638849136419877114749790538213240674544598851719196032925647756283540662711422464528167371492383843594415560581141713386626836242897816728981434391241499393039203675817525640502119111968715761933344054125128446671971241167923207230520529340630861112118123319822098432865633634327928158296714131840286537434703699595850780450126945803818751335934000720128370959162057794997960557828746658792198177861022544432956998062055687452055297296534217487414640233828182855414407971830218937892778066706011623721711943804042470085918135693458048594294332648785056438894979270923785108043594703638303574579422814214078177866574052511685310442142620958303260308032616906242371914994141681260087966586053547465288960750355070254557397664681936308789519928912767529312389759858825851499303975688659998726912878158092345271411024316571168184388037803651376393642693406783386746738598401571133944710808041599360079114537371010927683083453025939654118592878574829714438502518843132430863019867739955988557823735966894071490774891540180893128719816043447818493590358888384176827470863949150855054920018857764872811363276986612252994926255446296251513136918002713911955299822154174715737019545474466250664145557217535454988304821829715541644519607469030857821329808330253855326577455499256797911979657090533852704285303680335991929428219402790597063072606554836376147814701445421899144186211965729496250856079834047633371067994507266442373736377082509657255645177382753602683858130168108246544687837359933844689474043511391331532684678566093962304728979391388209389349030781965071833451148506253236041419528576462359055874217940973066337399114253212480451434786157007341777228114595108360819284952854289750995398693518560704521734577926066976573898060797035271982178918589521863817128795465163317296874845097372522831537673646011457128107636613399600361489701972484274064938867792457759759072853029604136638279442047307984081325903862249689042339336791572865527615670648774174644633917998828630712769556175883153646116083651124699819548170483691925196783920096038792706722357923233115393179895682743240916705085879145164167669004609037375006742593880025353067048609249806259196468118184239377846654453576513918750696906966637952144357137137176548503198100596577902319630216652796517483815064780015737808306980079815000015159835014817903430431177179564903879996391327618125800267019384453490847373413680290702812488267312071479346900100921119862307720646415586639189187641765296695653263358168529665550701915828300032382463863037131196766604534322305322593892405499614186269647191834278235078778005782294883033186038808916883463604971801952540922082141397836806001969033575828302467377144351642384392814924429832616781844330036444665429993641699934032505108596929570703280274289866749284422235473176267742841773833661180908496029860667125822266436690021941254933806177645672432589595055911515344146332836998849361587679129234817523056551893623746873834165431967902460085259540557384544353567326480443231453649939794851073775978315003839275354203330607379202540178806835073597324108008576720231320725792053384055986717006109707304864518440951531012309956992897712490728009200343287360089413227590089525619710440658391495452118731058939935481242289099068945647555731682114307645981602969211689719271537191747511581763908613985857521059104655794736858879100644763134027997082656995471377295489889024806423779025695675259929642168475584723740448232559319824592179581061243617024305817111756651863860595541318243579050714449476094242557103942438517061591017668470213812368105264571711025429590141015631129450734064444243619586296453491172428037412609679374169069440211551496695562008897728824918101957937331781635611091124861528558990080376626159777986170913821276845694988091592168691878903313346735397034308511685121226621596660197682877426657456617651982835371564603334963307031800841493622694821767034673027224678973293006561074433057994848182451548861609835477830111616969475475269183280830506266325393323679009887477089241056172498198354863424495462180273582371610738822701662756887774427268236015965407281376598316464301857921989303994994811919149694368557119745064973790019730683097269617253098805588601248656382442920760610350042779896457938253516257823882577719704141341669860007310855462982722182750401366823886585254678279158413308877836620140504927299388899123368396604776059786629527163455895313091555813656996653934603997214633033165889638692960688184924994965847674648786200962287635299850203991891493353398856657306341085433388992129376059698224548169015638363401053216133620980918042954554108347096708099596397237301804354651319638001016403116207543112901945852397738854652010961794504493029916814774651363681401158221744129865023529728854952226485328657284175766768734386862707904458417962824664161149097091447154791386628725464876226705289969833655538246902516654212075389352169863561989966004655119183875929193680408070829679372506111448641090844894660667967225864151668023930962578829473778229193356434870651788029291795389602927103843130087840998132848803418660240874503900904191664422601902490378254472976167609352340540916654930858492663672230843528115784817575809541271907382128792785825476186172322253754340365254185921900916607841772701315359718928648674766405325570281743492880075312316097534696690204843961390575833172084466200109209047571585340912889627237369357609610785133000842245591666040061964587033293264083088367992203496685690749352270271094280046363926550618409001560071840782777242995905216401702088459602139198955493272587086688891753271359077628925186398680269923357733705918820995846864904705476269364971840791674124062894004852252841763878925557860882114782454145695332350766337041851832209135722627906008662727009057149719577518561834253208918997559747443047527818535050249554035097064261606369152747500114813791026095158652492702659055202591665950098676621023277255796087340982045329092212992414881467481971504950808053745390420259617236436309201727701329565371974081941579000592420235033624787260351027693793758095254591838870898532094486864442972564771576755042714119152369259515471438451996780940143570744091471343404181694265322726711734291855466338844219086535120289402939575644653797318874290248142999986611857050562899611128543760793724013772239314972302366377464233207930191117345211290444018766496769756149149089523079205863412035754662489833603902054113027122610880322461257752521752762686746924459463693614815312693857427348927008688441598800927148671869049235402869339790503339941498705434311576738025175121787418367432940431888891849267863049867542382099699996311799855815111002056785302683893793218356035718057108368333783105679077800597237014501732836794146142667105340375207087191431205533399217744379469828609713061730973514883886557699734731906735159849757524450608064151520675316767798895768359365223892888654736113118007764997542781520802492011168655547027566383293588690968839471532656795577878405036153617963927577886242606498284796494734512628144387706240983546400251744398100481105440015460422718501522485149377833981122992454852581302928140536931102023574659229525879174316856965930248273851452778851160511570100122837484906321029979173517579185665640837212379579713005517880153444452346686052442239041877916315687747874760962845359694351987257674944877491987667665066686337205127675693513995602136298230503687742713192675937416605457302945088699878803224053677147968290827986394108183190470225723327301164296640237348123274045998674733755336641697412878828306583534303298959316923952474352020089792041868970224725194164282003513155152532056922822630295105305134381587597390481620829197435664414297229102008994948250946119905282457903823440782306351557137692417190226407858683444632286967478598297404498979063500352442766010562921093192184377652018627723879374276050899365190016342168518154514457175439909723358646285054360551493102654874517087035848930516751362986310496138208946163584975905224345960966028460494820225270570612128099001033160960496554696057842892137067848642443510608666406889342530001363726782063462365487232997610544892153609963959141757299544595762547228606747248044691142986320691650993695214422637833347334913853111344200717765522613860460946321222674651638991775672373725848654233088355281236006321635200224802154747803773683048236042831596018441825144411655721523686248718932042309193746904884521238892339196320999125089044012883826471865034137400552280415571344251679845348286261580928674578804781355646716570815877248107688792043907116412852116550069999747618373808889064016384801240469028613013058597467218585502764176317472144094914255865681341889522965004975029629580631064622351988943152985147773730232782839326727030441784035276599225504259527364594769819631162789171113064132328214040921463133584305189604413111919376803767314278821460711021235660634552055672796044590551180486507141033704896035201577599764316317094259558225847502549015000279458884408108716400904077144606374119667461920413796911551252333884275156453641525123578271310862376380512807804218870849471359512451458546551587258198545164531848385189562009356838773087690554296369868567584585218429912449704205721503049522615835760959205512869037944851418284122601879137405987039517381778939766443127931034139488560940111951695388792795282601651830634482983220264266758112256038357354416112848959308234863464408348380971626894163928915498719821741725089802876590996575996691225054612723902610684625530005831201401041441326795949658291990707980164890226430663495935105771801954791941712604230475710281477818559459894478576544091511794582905797694288274185157830318062981830440286340536760650804035872994579228542559078134487281266021472363284359133491974789764007785978613946456676419067740228970918102829514952962485436821141205517116454594116378159833369168783456531028743856471835181752715296654518070383008807976745800965799737284454291279141292625328652142703007376325800618497063021099730503619874993710939501691316439630029838131525994621306176757042403290739100917132024084333401788950781003492170103094026675243060117784386718354598857419346504446747530185981291733495622619396515581464610983921989685775835441980407283587581662984762311416537899014096491659989674131936651744503677722018353157318746121791361844168233423165278757299947258688051586398014324163655448752101923505577550735298622294730422431962444713353535436482698422080210434251163696044310893070694923046946435235242071820078550782182336029059868052268906659214666509102298794034682994358012024510537946268473194726296952518668859886620439382641939574596320896402570912527491655236556256650396173763588722779036309853635721281038269042372947413505924962098748264547357604880248722489420741340877090733945675068285705838609998302245001239764206961195513698082390992091134462002804623233702963019522249908505206695479797899576608160103083817110429232701110875127033830525066963064900980955755222564261888252201455379880493838484587879553708564613753648692820616395957599619750517301268971909347167233146721180437445163902733616465100423304394037416128690488292686404858045578734870553747699135910782620322643719969547802696579511122216835837415121668551941838633794882837270531012376124906579256502146763065823770962503131574213496789716045994030032559300759122737222149530130463322834667188326680518313764294063480570908759201002584739711084569692186944940900020298644961417542340685959940341708988585741385810035103421365671982363782439808226213285617052354799398857439613170650047356595540438677932251521089583666736381784979645405945722864622463439577324489710869123067942694956199528316810001084328480070370878208560571685431066735824600388623567038470299573358171558778821904450794508817051786319747579127875617785063083339797048564433128243017044303716871122133324180752591880228854911204077050567828441459220341735078474536397969045352098407922272439173871105363107695488774396788927657296432855538031112368884316854733984599850592794384474615486523004571939044830133858368056020242340817700510647129492065588636378465447620354347593197536365331440378421253468517514773559259715820473791034540695408865983001025282622528255851727934077540866397419529776917257049223720313044348846669775173032815151750529137433992375173105811786339071334549715933694300880282574852762266718754887329408573009950808266469781680352768957229725625270683187248758453335157650697534665129205181981534086726570956550023507495727705927353957247580912116994296480640468521228400135520298164617362174666273314222104340801072881751783024318463137645211222013248139162293620716120846461802130478083264678487193283013069485060699225189915140414625772646223291676511518178215073877789984417974212717637661359513265398455822050166316339390215598684076180237367183022359189153653035615226209748720764817979510429881958490689951382085989373396285974072052099635411637267140317088165382386430023551403364160034873162066127878068088316247665861571467250031890511479427580730837076598931829490278299866560658798929465615860064779258344671301075522584657458655970344607146792780585418638053342831614278092764296946966967721771778224752744855013594186942133481924257730833289952260073667362565223843730433858227696416409950201587214072130496980583913512659312273284362734142141789466568277194057706544656216834885102619454060784378153300009403548042144244137259946994655165609493988190020258452515122977844329563477229049943893407201990666541404128835670080365229958544735458573729856376111144694750795366772457637308672250956522770852862569301320693785452853303563459811670985081545878111056444820361450448587739919973431879177208368434206254846949606670905149663305404010448499490208931151317156690124165865396011799779256820071537576352043751627391857127806781525260666481957855502809342348920038638712141556369326709255452538396282891261469372487615949716856413607097497909881278979714577142371812622149557860245191447679106639749636379877417533166666549619527047061329277045402272536803138463853046001663549069425522551580268825226981286383178066783974466616917660921967936995887966765925307013315826570313645323145121011818276393450972159696613940256087040124731540155790700428867977739399141426881537338173692394375055406224682021911894123321164151031495546189288375263191618332284256613757482980255729546865730794620102589411685506109667085597049222927071401524663905242034831826705401516964295561452112277950109601641081668814338892585761126655475446214570959546482258071133366988589386910325799435387789814129006468391240991836199754054569640398917703525299050862983400203834761396526632123593352729454572972125773287729052064366209417867753305638522541447169238781150875212652972172693261601154994882625237214993459567275059698445741586409084785865205370121123244148782890585004161305716935392935028885380890346002940597791303067120002048806371845942764147225947252127616512176123752729115893619178108565057710055853948689203714339717887674067916947528335935508266640231554446317030829733601852376651765215907732643234189588664818143689987523747394131688374145627457966744416950917759321658353217606953733831363012881581817763420978599256967371856507402121710937982056131197388915659057243906749278132960621230102482230226588261013317439887886628262776828182783944526230637498524195298619958328685649135900827626439872614807863348527342292028485403151061035974246391015781945181661583769971232654191311488942283704150505571634053002107381381423149493288615880858484706656613058858267352190921657602066851753369425045076226281186159094720218797106094097741528379857005520732647769987279656711557837934066798079299692090763175755510141405463522155937547181747136821447645573701636001058295331808941997847858354027310698706214383460327379154577544905016283974614779576293034935632661844090016893282139558421093692943003395552825018178127619386037499494360014441248308630045934445632217954519953077363802543862069078435948081869600038528600609427404725341788778927228044820815381727567923212053422394035526918354192655662505337673357938370979875257088969378482537519053824178220596414181505988338323225831688772178289638605823244732967905483070121573289479849309568138605179464314256866039863163996334464381841441813152855398203908673105123367558852561355146577644255990484725774711716390973294177158859681729577334743362302657356354012084600683752025114148889253997507635510074244719060617687221941986175966739023726962990320136070414308209511811842124873817016185489772417750484750241561868760452620786014971025680008994639633781065589116151079011055237958706321374436554529004404105829757610210171365271897266266527794746196890484452184969141675284870957812973334282951897423430089537641241007467077734977036064508605981235137154081626129639717528760265109240779820323637731666634778780293865869012015798489370691129194465184415931118775803813363209733451374088557707075370071672819773297114551067352430696940717362407710319275993867386799663918445668106666228750939802571841367447766829484026217484101940249798848408623783531476691412313421488059982104833952460804409294403521357026445942786293744445466899708078453324443786304376459806698940990980506511299858995252249996421970691537033052908601656881804049513204454640704871951580615640193157995536679627981620224378940266366687061446226354478040202406689087239702182708294300139417512914915731212743094737322017999475327233896772752323130906452472035637888549577240333119776008951883679844702683697734532728694601051840603902129044848027477613025849377685185074416688330460071628992598174659786671553479979434091283528796149647847234313764032289778310569413654125704193332811885884670109031039736888586072629334353579447785987660379402555594752570818161571195931351666413139468229664332085740601200840110726779013275377652652914371940410066646956922885891265291363636816175230189282340567247138188011039889228318829182344089882307957093335211844135780102467259960484567028727438187616133779982758615662921033174706679074436034311417504695954033984014368651859862776804905120431887682254566812180743847519561429120530528505227317564660289491648086141836399125404213996863740624950127796271490940023200740207925301947699438083146826655666400480413680356653667610740195542602069316029288765982207370666092916969508922204334407861582081362538198917194272173994272775997149315880333555153518922037029951019349295957466859392385446005768084564807336117516961008438820073521002985623662059455196486120056275127883328566013287849295044888832499059013434963141936838040755714223140704935087269370840441124920828941467044632698741990027587556335829437545868289813603657880242268004693063976641639348341359470873089752239495780479569297643033877324850467231437797308465560269178944119901959655595893040901511387432934895608118749709590675396899074993009808903302997723523902553935005543739368285342473128610921770159046947713846876046978005896464850235249733242653861686263533333189675849766645038138064050176296652793886675529526591414933792505131226727583526160788875556805139203603998261818895055135375150075837959534615740167173876252135406854330924842891457649610874671124489662879397405401290995385817514628757017344722644169556341740644335506654061444348790917158589356282097564454075508969744051548117394377426310744272023634302070535647947045370811578508670266024872383217169869330026925725972176601922957973584752255218446987081198268982795101489429063210207151690939503106936059216140889842728414124019958944391749825287388834767927084844033857480585485550450544472059540633606458865837400727673393859319924742688448243552573809658723998059479671570640999104955536880732059707007934795307883026413770667231483293107701024294736008138630562482401967443593887656133231120522109298262716965214163000860660276457901656656231223706730306557078985540343081911926296482666868864677947259403044184903854229833621649924332087266957226128185148038036180398065684938706001051708644481677288350132352563949814229119445078422706455936600730765088981167573058172018243011472596040278832816823570400956515643479493728347860029838274969161167172075910671738079126553276053501057578783683304672876238301819946370755168247973074700633900586939261853459469573210550296747487853405935172151601254476695620523752009671166536191007690677441574926901780036424981888348597643688053953689781948195688318354570404119314579897550278878682853075052604127486489304968369678917800492401452622140092464759524001527847327557232882745562068463631210505163383792180884060483885741186653693076377502810205082283675268677557027176975516156068470497698806524434177210716951174961134476526375128557028684268651349538652528553482138391019396234709852367447915130480888392885022840931490030216225660062818749197211885803513068484431422198761422384798797036159855175394234050703195176493305632624317073910296875010427889549263092806996231945637228483871791054477648774775380831603892460009128188231866393292523774520776901637020454480197869686907764909359321359344016027016197959947280451369527501710603205375598397185031772387328404564388136851624700527586990483796584786479819903670156170238168613165138834205694151489963734413216330397250183563358352085292504033823533705204422271653319395667319789482326956164038179415054749613739069013974819496183065316687794058064651667724045705915327662560942367832418158915697009892595357565243898761852534699526861608744303530656235016084688170247119112650440786001336646524147278201595719950413839627934053039013653374283530772702028770266591292127877414083905171846094370185931138204798366477691543620671858914091050748293945113437704955633965044169793363931234277205047222225668936181161080634698056337146832362737553820842440698316053669915331265749082423033177940672550233664793106463193098347332523004518531840556371086512249818101117210077892702560218901524713673791129944542305236700929118821671434643521279059931386210851306889211719169823333984650080838762191612121869968138731888066703504854361607940538010329157805066855167959413159823789094026438035830137922975159011996102026618715485201646014009471531964446467723924490834722788267492804243941368121984252456935341407980236795426413169707714345434371290064542445642638751247058369256703478575817094519966251569243384395791981585671695051650413051646918068682174708279419954749600400436746304386456671438541609455109867812558695457823582572654996958302308549281900660179251606965888924195490593031707483272658310491870081041430044800242781504281812751217993079402565424729614999373436972440970408210344366419144986789331746697282924860204435615927521385801389729370461828910835620876553286094030560198471188047961217606917941673947567639215155993085816786418587655379778240556353852475348767153251348951104995840598923503775932360940640438886427579468635833009125700459732967161443341337128554675265036798149034077819891520472744056836753370619940982222440570679882066465390704231385056263284357851505269695072637101995129523878233773215911807218376917815339239388399645982177110927561616848398337030164364517503374014962239018000398719238972993063234836605292848773143997930540686483852869514032573172961660330791804260837221136072673127537839893431678900377201708311203746448432441746180106437895320625017182476455190981774920544725641683073422191620657751507351975901843302407903090453830502545316660321928760358507459830328458377105939577524874320238795724615383072109466308010904166952782857710809397482266621500489582589045685585118045454798022357637210762926533507406565184311743572975434061823178582450096954444330442965029243418250094702435059309913370272911328876984899273388456989487409819922149880578909218103749583069106442089377505491435358182974235977175876942617074702879828716621191736650929535411929702015220498653138312934525860772614273906514254803032866775924902496548252889692987618026876784605297393677858495951605741395827398617064140174237942844307989248925776150263493755427944712344767934528898990047075582454106423701751290635880224958092896176697897704483387358263669830170611910906588697961602146055018656556028006738639556146120009647947038995180862029056973121059740077887088406280506602994072473116566194308155075413841782025735587030069475535715105099540647378539799048934538919886914991633268423315485693682732202129051228562946983661824067132522301381843116716793330280615384732627214212826473570345634267164668420090979252435199647285275870004441670807078920985704731669817654351999767493925966398947773553829626552963444176429900455922094426924945938833518008799434201832499587714322530119792225394536014994140094634988785870876406447451933914876343783600702224419772691677101518158169908924282619290072967037420651771987983610499741032603810780476887026552215546633113791213058350947350657118655985610538315683699685853021064202144024645989123041597632824537457370078879226746273008103020385539844459458288542212661625783094604818840934464723503993462459148948161091049254674081867875049255824572602100828960989594333804247837034056214997133681645218938250619445717681472830751475305454741460382548999646121512832271225810593927339399230839405863161054145571594392643038231465905429211848057338100596172282529747137924906186815061757155668421070594041096202071220613488252536268529525927805517691148795403954313325228924906706015738114875278175548073597900777872431115024800500683666658548635264021764950068789176640933497332107380608321245015708946278351868170173334998158113106488390363573951319625452974378104118303824474613347681595409218717267903558184359931931628608616904443242653795934698323300766811190378342587288795837035521360444479221953233154244682957215675612882999431065800230592567671596701442429321852995272692299162301611698345217507844182902966370680068729840833871214821532737668376878399669881968993978570012558591687741788898952793376194401879251997268110617930166915953170637932750672331454352931436244486218067224118897005180568751253826586120274972823014535180274209545352097595532155111702451939550625694169765963973236911976609689542357953211938762140997504853087693485580760769631360807561121911420272321545397920593056585789516413159472144452934797331364616189969004038024259200161158214294274603152062844440665922197340836365540332854245918669301020357347297218124219406201440358856454123002239745398709018835042927773445885024798389218428461187771703795412946370051888319442545813399263101938284888987412537660394584937506403223009859560824263729065938825464606061229270388695057307063285806317098381692678811624301244561397053200722590630991960003390546215914171170685104535097819325715238831338976203040431290332921483625599882211411617058214946603371309470247290278090169518033145097486378882185646132201562611080517307839643301798205733023510765257917513608355883884545962689139719551451368644932028191315427682845302578161603035245545809495189063601902441320701050299652430381801436771587562081943902090634551866245096434019764665507399052316714888304044824060950814836252440572768398261629956415364895513685384689515166470511503762814800628228450632623301204912690517544668790519368157344606437284514355971763528150265302908226212323029741270581743754324129574108780649455015452474519076645413474107561394355224682939555747941410561761222438184212851930280360813704824044365462836850540330916431488039121170134474200443327381758708073007921652408185338259183742267272812382458332604735893900578386515893944354711303361113046041948237243255452879802429032867548706968621484805323014310579735388891632955732865632510949175403907226636355678066580647331427585655069417193144859605898022646127577461302052473767208701436687216023077286495310478318494454541532328172891216746813729771102637312222104714022181177218859053861589200081524493673136075570692204016041886693765504461084894343686740896461915851721271319039853175474393147973023565993921244508654353466903824222736685757892118961990502846224848730893430694372666884153914477113116422203348609451952982405751630933858998125067291465113651119066353055620044382635144787844266732021957208031913895326355997794167942402039083076466496679805483748046053925929209369379117175456482384772679050616755961096118351207348452721160132921542580544278195332139910893301388398746308629121175179969655822788558145027091007342755536725714374726961452328395970720900480936310262748654852112426905002490434944566759121577051554905541647695339798566875889242669530758204138638778979520539172902332453006605298746579255162815323097240297549548213177777951575363132954207523091376508137911382754722991540164047482971606975727377112165943256515528085508970561116301755553211945973552827941900573016421283051092770097159439378894932232597499329787192379001279015937893548234937036021420604541244448990037027269876965619394824088245345275193554997947930812280455523677401597678347959690336526472100464003206731776180648925809377919054599895171127716419916476328215002286638317786116716397281881288265536434303455535573210100688510150030175325327621117550838303300208876612613213036595478139315240536045826746406663853914130495413055273540538420112329602123488727955686407672972227742642231777209191884805051482554794896269477689600108422860277948359610679139253074324580970476260778006920022541282092490762854571365866482602140700341481832490709103072708075101970646484276887263434106320274289610031722682415680983063061401712658469952139705353112956813023134597641524600876533922808452029727049008356716875926090222759762436776181765908492697084871816178168461512479578862150561328935965423680801476048866480596557935578388836510190055115330568380792096648640093297868539678807256346302433943068705505448541523242990752294179926523005267024900873441826051799276377905407239527877672219964247267342840863931356210634901590296821782456846099368457580294158025333372401102388720576513970659637679119421903301978120257552843048032067543718641273211840004217574282040054188496372521779855748601302009797556541949339080941178155295814668477747994624250433448804697373944691378132656985848270635100121932693383072302496584548903689108060599371126369093419134453805967089802036728975791117751840457819358977249773824469051386161521197210822188270751592365942978114748411627012122892022638872114908300628262083832694031356662436049170776894229678125885408198903978284230184741547853701509457208648389012967941987827828792805411589001401721159082217125371511550053801440024943394098287737773037062655304620191259460900849739472007242978582796132512659212295145116475357953596205272260295787179486778215645621105186324224215296612320051842947398914871007929961336243189043888655070209407770734039026685749875397497266730961157025370036432534024180137557701951220404121587020922505879004173082217691211865969166574154826180285361934427722844622800106657863767440016819049192666444883096805462475252139179998161994518872560858829912521159839375700284379154414094986531606998846428649554132600714627682241239556661006822853515328894784830637690676184411098932074123581524675757832268061906335800350768236736789121073214833509712792506046204686928771946622393345965154330389382412294199170668396500501929604252665652035771447674334869920780969843516987027946982119774275789732508177617428004185837104079741121858331147074457581637771941009585283054695973922449305417966244046812115597059970304631482195045285145201784912552504898035708424710856279521800826407598344112010213272193751520100366667605202379605013407288044534074278189261897020331004199005025727274474872049451537752125116098698609847284376911792545201802684583143894421936865859257966299742344150884492199538445891018556978766160115807673610451195627103140256084707915894033186408379956496968106692779115776784529773336767127106698194008941477396420384257581540577289648423736128726779626836742205873474695067564163095328725023973435770898588595337351878548145654667479681052994777843288435839821882683663630686100548381423246227202838009087330837439269790924103849824170930175315778948580494779661779355459934289993422138605586051207493496606798479113970375756527432081985609659535806319245773306627737158255041646089552901027290695842610361471030153778822343731770616177141547282449216347978998398721965345326128247186581521153522843262080445058504155496498635161115192958676377227166637831892234107967632107981890098209844329554834411285908702874493768834481760035516684883391910625596148521334198198495373406873180171283005711266496373333603009834438355764141105503694524120131397822593966717329980099810049469744444646397155410436774567278365456173924233635278457237641495816940738419754531667267469330380713797739098566466425136048904726953220738701245402061594242305586396251294385180911123211005106721196311878922834680611601399959825865220937162792422857722707414060975095190228992369866571684971387334048877795395488438173841374579686170633809659047346268750149921853601926640891779741049958320895160397180418370837295930192627593308574287171507896507544327517858650583856765804554607061122053123386514118020307554400487411445120414844682818286490174548979566117217025403690315744692540830423768801255225696901029110879821368977108907604235204579229827812583548642867756588442297954181534079326294937096265356291586008869903187535395863024216157479388088824066764397868690603082310118086557178904450424098679571317586806959795748610466582064231970880557015589113522289392740151279540118834637276952986659142805859843686936972296764402583981848883709126290404703330546750142840139848613043849632118741078308459749942337093170869377862189502948510469392071022535339547357090889683937437170727045526024658960994266330823749115212937994621386380880708102298658428593629883658669417681344097328206849612006667845345131608754170379277368582848979423793187559102363672782511783107434137814993223155060134602680646836457710454756249041282958792220696230857197177070478806134751809590196804551835520953440069281910368164501532453761301174697268950560361742078583408861936174992417226917028603597544608543857698577225789229266672637042462693459544003834437209043510636086497540030328552000101679185567669904999924530791595104745322988274504376342922351108842394893821452947632111324224878178876408193269406351803075036625806143967535939604688003570373080075947709380503143227748253771543920104375584240128632945829731008462658107426208383496639915405673997940563988536206582757956653352365985852336231561639791649673382559824520041762871938897463472695200189155548622011034319054504338578023231764590291128406049043920028208393676721527048623570266682004464378888717210496328145595903314633486490385039894267129836429431977097969169722782432052814443378221624692412807414869627751747037139452000575268050508152376828009851621891485341967379771806335790370581140460042882408697325701464658497794146247097764846084950718349047333108390042897605878780275952159664313872384444885959662265307355531446797797341825758773475662478159624346039486554062621720892101958027973781153738990264383903093355903086531563930549982830645441639710170673227556988373887713614561692878764039637134131661554432175315070392018309421169750292955408478080446560337253120618323787797749286713030084776909192536776080350998903522547089328772638619510369063436129450259348312942398603334139128906026728920512878246878082428062964788890672019942320485212282142443468205456722028702791459148820738740483263726562506342988938124248841744847651097841738284616976515895676946006226196265422642588685633685183240525310596718729610929339296653985479449131555936631470960109446750964139766968186264693476957878740988097218816163417374132895503636865570327547875333592269662375883562877568570945490868225911658628872793904699986878910173589273537520974764050559276569497788460441868614448481026775300533536437336650979212965323095222102819356768087257668500083695297650146692924717734594339416689977955636879037393692153487899248460099145435558970947503998986775393713488458253583388644789254702771841022698505265538023031556943649366191276246805296292805904765119060866035553657063489117737188922240419582796350111604239053970208200564971864505619218249797941175897108282346965751821167401833803898877983310679639161553593789201782669495260933449634839246638208701102982754083503199985041178631061587571205107711723654354218408615187769068715399991447312643718151972580086446170660348455751008676411433678936834088571984766229745518436019956007269097289106650851262206321446852798915940584367497337959327435834822669265945929088897967963109102821455841503543431841455417135024048338467899772944275326151706553925688092935532819309494698199110806621031083865418223155922420877031711597292418033245030074392472146518995315299558710953220063690189429186532556117077922575123183727639399319910251228941928294252591268421135459215096517330883099741096567953770401968220812148122818528338642245781531352228502336094577946076078607309048669752249567783969740896969364701463323643334459433348456638018079066515193429182142445097296560644054788313717941229154967027757025055963962518950023319863921026750152234713154574559734004810372957553215134111368875722742829506194376806326468475962924957697594641662732267399462104302051856585651341640204522654971991761568423257937529922964692689781789644279706402990298800500417546327985623157875299280104328114469967111593460753920025459017131414511684006608551297838072450886928853061282720408974555257943341406062790636576298036079277399525829839303338721265937388956879812637038716869736888161950003688233177920347527155668212304715586137915733307386137472312418693788404575302621527135376216386143099302192822679321427741653394624907966416927281439293197069631982045570649620520095963360100387017186258420502305594149402177509678469094500050289339313905944115827805055334540773003224288823343542651419718767204470903560845491567932599459915644727678740618398570643017787193659641150180857487708685792668014080743454656654707430964632420046376368282749796327777853472137485735234835318008280576351694216097995068920398080331574037135552767077956122659977951654017534666014386131433440591813495574202384172397844897034609981392828608450000820420342859228164192578470409390465636971103798984036436568033589622129370552562069926562034536574454192536173185974982757237232056432185455083848437641031071188346536094033137732883745314426943776721435042864384143326798497332318682875133230290635949382998203777133855703318876694429336708071054772780480285934325028507021429652410175379548571881541054887448677825274768522537024285399391061678147528654583725154048419487624107825576998784066540870797371986555601096077154219077244061725305542868112352765887845198861313774113708250771297565320171574294737582385008917696849461445634963438298619547074894229518150186691783382008976819550036118286475137763033117260271464850068988313835967984623662887853043063675670467970676463896115150749349412976328179751400155921107803964314018782835076154071017461507054240450426456766776871633019609612481836780078747548755581523942751185234901291551239155119800332611397603037540707738893785144056911818791107106854388994109359676772440967192820064645866111147217313518371340551952983278913777192290350897442650444852299023386724199002988375873740689451142268099474425135759655810589258865175433854703312481978507182293384454637005355262897864830500870162008361443896340140454259259981567020707382379175514676553907222418334606298296587118036880560115933576972228465436497458439518824796138482190554032798666109198005116420997716268539987646667295563110083496454814195443553083464841279326335181323970430426482139030632088182534632629649919951695474519573646650193962034809152037819779099629881993516960523670019226832314559796590712607100763208136324270793197712203930569597649624797730262509836759923384436558799465473359545550663121212328072449997114845549425191051857522623328289417330336872604234597944979834011515523573977045110275667709111512757803479433323087597590105329013629696292440314238568950416666528773002798084505158886425638316220364353378395080572826078906658119289086278692247673325400224528497836728661227184862640810049199543885319346222322360926144529239147711638156587561638258353275290668957654370109509192792814002373488971785814035979642124537339337059760398053766415224301691510858866300141657587984475680518748112595103835014381909574569121552095647868608387880380841028966163029670750639458397093367522944364479486450200497494656182356560048253431131038476778072347494416644907198732578773754849315284248518820743757036984203083145889315419611541743581893629916197206837203128255796636268630646566526309676970022419140225873797349968750201131733655017913310855300028552207494472515950687781887259768203369421604419430660986068546317412568828154222956251627133044820764183176061202976961320237330088054860604649575206520929863066695233293479574872909627581987138229431755088706403951007186797621654654410449893097912663632024702302384429609488487177547743982576239505856566161347104268945880171051140925929387748049196196491490442990042846553498208403111511266109159791006077170328834278122371557011994340012976925220123485801848788865647979876532407195659919114369492256276132250735109777084842824788049189301724346869659020313649215549216168322906108727895910704953195395157965110864112523781816997059966592655026003415584662980564598994692232951737786523984023086825100212173826512686296603753199490892677109222125181736280190841261748357121101328762488510093143613896304836229309162686925891880726274789901820499504056473981440895870466768866374961694670648963594362212050184480161383963682263362026665105599118136234760336074263097770844835096212172887587728747949489138175979493722494509884874408435898738852655858273641862566012755225876334722906991291837001761060205997655935879403614021207803836585424503734971942879473030816862316236453486883134411718136600803669174785632068503378956124204080659720129119858968661545559280209663194623949740430678193065563655100644721444744655059255403671732323244895415344498525419988135587861434238590178707624958847401035362497758183353459860280735443351373934417976678029579242141914656066695515745814859249212501012802974823953655573468926144161787570963413508044158078019130723305011784913880410991637967241398431502483578801416872970872173767064750838842132861936967898234065657027689839287152006058305427218223618590049487449847562950842058517168958723569326977861396728200387326322303885694608258179577359878494738290547429025407438239681023589795934301948299094050318934133315676142909287325598727003390544409715885620269989976379660471027897241646904817626497580151770981492329875844219250447165602860329146114497706583924575801086112815788613376420633285080835512394163936847132966986079606142089668928377706552554181924210143323263226888063191109611660528720782906641950451686356394822004267579516910309241015783038846030080986805815641416626741981605151661973326482436058393509074809855140553022262817113119347299880607121049874235875894876574081678184990285838153511243327533052513572480535683001286201177496912397167347509137553097460716537967295690824200299125752428680212855885645529027414754331244941511640128737116349919226161075606357349383574795920750619081600446224478167825793241634269308561555545085110219136185267396328250001523185757603687624620341465489812787691724729207711051288036542970408601062660917029783322772569049809461181877647489655816683353758666612712473205250563275303954516410380926489263159938695654414649870558182268755034492699310840828365185277846803529740240112613972619201714422324907797264615940037058530048037344772241355046231844518420095873860348824487591090758904743527917017919329812289565156940479146076797222622684638960098908234678038880003830240037594622527085007682995266042775864280848771529031563463876549847034253210809898958590173658649752246855377728168569102149477675251601654352270369286149980379365669442339234623451683450344281435022411453596132799715131700108673293291690254699444235934814711551730783058019953132953322918869079605946627525482543834406490952353399906134198052009049768934691543861712393958961528024311824831332112665711338391019816870701632406583809944552033775677565202403654428242286088350794313993151893964984808748574241006270891423642990314369430566050799007257028767484765139402808808807139578778837778946280157606537511030379388566546486476856096662097445805891413196891442102939497397782182646994940791881574404582581408005693208103502227971708334829496123140285567815292363961440826542581265100589621388240155590111249355696332790163286195324648098234855262194410960045722277577288756815417425597245150528562567305437215287148416928906734031802945458769485226042280636133220490481975392001090477911975545403369372103832870225625859168117872976206235080222527816153382922314985026549382259454714905167616129028986737895580151149071135237755551954549518624908276810157850655341161475527180172232461624446893653124069259074840622969881884289141454264105066309404555066177347842562002200452618542224563787922180896381793586949358467809075034965183353456493638624977849674698454986067082135873596491483164611986853800424439352858696164994169126026008719010651342497957414803186658742506248811507223243432730378179278116192307285733963919529250218877260323367984244297743992428397303311819352619081682224787028642170801554159985971091751219708786270387413686524540710857866737013191161317889428950488885395796838024587358628786372284215524060879068289483524432568635745629882636206056161443186614680821133784645092481507112378152821183868596871750951805589629870824488543401105889759683001051001989217096271183780463996184376009398044549860880124991970824322834799929491801153893036291953352711610315315017097801878920607495659503946607661113593198995211432305487520189375367794555414676507685585934078076082670773876912600388520687051335992382989616022816003648557652399125695395393226066935354120603433302673165116524311283196586225046113172644518749934862493440109127490028046810343168421665612534708566075637377294067461010499497810896921333503131074725548097996550325649612033812748402832260163837652957866096585136134868248616465945662532765314306664328670401223962658938115786212118788673077031383581465648931992774762584432904158558879486916322556300099889912027400935756493013828869796957986599816413963787600136374143533029850552341652945749329942949756092411305454332707849411601842045078399474693056430758176826830594913628913630266666584167674581704541469239990999244588587585231205861182900140485919020756076778022735789086363132259212364924618398294494728406049481791246052809331549428996655143021546831403475231688100902965664917858976766917378755892287126522004557623968122821474300952192504524849047868807381710262225338085916574495985554145668786487008490546654764888230433301045078451496336394166040260993925718718165168306576701669602079563764846208906314920728801285013571720767871970490211359627584978248823587317447221399106055392710602474064185810693604687040989119358665413259852302132911227059302625049241834636692609089212880782110012149080748819419406527626427560799103327628216849296769676893253028861287787841453260329705075080483817563571308456258336805800587802364246860621114185549869052289780456916527176112593003495847078733998248458309394483620326974430398972798865393455697687352608679855922668219897406799300501665856220737959928090507834842447866265822217351838600208371936411477592651234821512336200404098013632132017700246053965319572846390199088882611549651663183166392109323045006099046724027537162284877065799707558097646719728618031801011805661972091459830356828643852000236794676766366461173162685215198659794642851170571323069384866697450279281139262276968665223885674385174581335105555310164855927603951084337359940175152562107087436479787639308283093129227349396237187291378693699132238271305439601863438734389775769317863265312247630773827924674386103717957013050382052803466603499922767376954139653793186477929928314955128292320497951159157784846874739177845062662922908868094490837219154052059172844738977071282769837121746186728342829334136587850905299204383577854766680203086307891629057898795820150552412669620078055367832974656883422484752493180686704539229630574465370044165940634484934996265601951404490910106603345228875475081926287626720242674955293533943928271247503091450575432093598385701079585890936338143510219701358164811631343730872200697223087215463749863363851941962733651451242516151687867664688122884139114526878983644285814987103938681258675556139559925740965275537088400631112998550882911494054759416186100736329642922149252344713311562367945339883978053009723439029149707987921754880262728111932238526022693292931942916502194719525500067431279335637172470445284091902878708346648804370804027863454089678071817986632910540788447583102245867480026838387194654549091405313488144455783677574528096027528942060274424870171960790600734223390663389844762008362616997826952893228507153528867361198312088580658582127092575404238060766085641136154208813222253094218647529914921974183559910980451146882336573346895349966468468903653322908413036314714225827278453327201435215743205793028592053148032736740437837402447183073745381406640123795110652193959983577025823349126035614883927577626269032918921720877034891198383813609362382030537259021572923641631102102658249066471311354918769668269528269061543383028011767261645746276542114055691262974100602734326728143076732915955326292449651289746582155717067414855642643859760358879892393896774401348536232696065183155465283297211130966959003345665722948216768530336703080252786419238313092648366162043640054737348786960801184611949949022384464212450697433944323600099303949318235985015990746115680325864546050357217432101376755569428421541194175122154525051259320249956279908810481412804799282964324570851343132418958344024699225662249091327397865597686956501511190730510081576361507268479337618044089493483041389719892462300339398671551289335804264638487057375467338894948708130388470727729501205695281299984572230157402556054628425060588703531584871105885280089776662983883220149063427083235234645983952169642701158153014738510084148359221839130126275001573011432500086482480529957237344831133780879061082196217600615958108318013784364681915547951849893147974886493908613304157455510477750773512252908150179337979150625486599858268458346484515438630677929320156039203896165443748723254896631353626858830481140074569920473785129791476258771647057442138828115692823070153448388288943866051231623486118130355756237339283128174599656994878127430704720808263558548689020573190627489063753939015911936198802667631699793148586739775146805366643425189412855610008658241672689758996246159155215393522236904888288501914386605801835472438668598784361416116431565418014477912003320302390122052276294815145109756181362881390615740214728960285939936763422852553760444681826982193477129473581618173222792192568167391900395110456300740784419241579551966537412557653435249519238817183043491299074164019683760082956807016743716897199146062818939498285441647281331218216493141373375647029369463397747293046254050820550836382585661045743969367369099687702263619096066094745881953823012661993804774641141295833520206987299254499164282878487386230999974790183979156469418197739926445668327815404459387444995217459853670269564592106826675329345754965645103600164162370481719742807271648187308480745048379179065040084070997747769751513650790259388279803031711931688087816599845330496746716918837238877333717461106551579702989078542471167620193542085786403417691039516293126203301505677746946078132137223540706084057769494850681053737421542650934224568003799368486796926293887641506244674812957713807729402496211348686321597529657136561143846955047870564360159395311479144906957255672970090531593185107526013583499144480483221433506854102810172849930379731617799078631323353854626243859894779456807796676823552782588788676955829617827722842627924934642530640626866793310146744136519584627805997552457030652454584486240518118082647349275893665814559153423389910112980866137016131143675686038409069586833428441889577631984354219257552129126290797671998463672004399822934648474030656738634677426909590064645213962789743436024859345922760567094051161806006693618153639626609175518248122040127272076156764792672514374286235437292854957079021285871976864022075903562825379055535741054083698572303634836444862536697262491768972662047054496034839365517332363473546253249787734842388391479235286325339037650538225971177596306394058504040506826985775510558069709334607785123943784157422300133438164969502195240655160284463310435971329476125505146783780922017556401576177990931520223519536314501906388981186126691199645688831059220867915290197804865695165905023179277272284322313949867037268705324703734389282166993053673819374076837117210889566229296989513119732504951008885624564547586159493809190762379672784161254318414341080546411561638344565507016391281483894034780855990231518466916097275483486060688829474145487133528647508858330612577960403981075439343799993235721334855326411994969998608094578048026311577588096412415496247152484732838429169292721985572367724790152590191581078482488630767253966377531594898185406341843225555880322386411310556862901032522033635115815062839020939726990919155207412407552172918182770046165246222103615635942246429555761730001915811163948753152793147684869307933310182389790809709624408960065104664829256726548880590672095953402503005627949571538909343342457505716688375961693347888776515221203524603827305008886545442610369999758066327662043737144423752405262093906261271944895731941566646782102938190027179035604805047072869855259250992571894915250675403460658774091165380408164671723524999648916244094346784429199063582110257649229011429682811809086782930213164590770209337057671067928329785262100899836362781956955111338891162104515434855931189645412379763638305779306961611913001910109147515816860690934003430036700641126862840069666013432707660197772273004900921454785960816243663917566319478323805192800048332661852597657143640329587936999318973591650389652110891199743173268364409270174408802389831965878123194122504164577482175874873795861227172451559255346100466055111789822429223389202581367030133759648956163373066006335132140287611028075431996530169918430504577808911265369091220047431065890203211747687908400092023048781385474045422383728237113701828220662583076469288149583612223418083302042317314724688272080902847074704971930114529035292195707244279934678973284305754899003084487650182748620908275365901071927382545439166495200847714252901000703905474858852670495378027038076340571522956663991385103849872239326984217625877419993859510432891218430435095421600768071191743543352938607096489948423293542725805427981452073946621501334404779292010309877281218064467869806254706929877234930979109805167060249307669050186227221021392231814794640867158872716028800632211269982824827599199553620243756289710146030847244382687007185427340187844337913955040273019887403731189155990054040754312872313796823337229001752155113640322827260774251438939073739066389117568454527030575054288848428828850063387428362624009969046027653435919277349567379398993454265912055680561548055484076860107919055489467398043643512835785529726970664636649349786035116729146912753848501918470053967855474387373856960493202900068047386850950514120849151623501457887332301823823504148004874842454385594405033373706316725534119637675507398870923375582516521464780376039500435678931816418163530585210712946690870277852264177915244805735106742678521502604204358464128616462361766986442584993697974553851040508186934479211202978858008988682084976542214540181624828890865842179189244002866643726818402726741751533109657388182288636864461815301885951428080772483697832106469163752398742059591909543268587383303441970308363987387042293824521494118132924944842948007663802603388500924401843820094010821950606452728270215455532928819908571273130521177285791423434026568920326924923881850184309090787777137466129107980107657201779952602925540934623893042869630042060890580526643901137156476740956609780873493612783913640856587869643994205173903763048480083935668253112079475003047854094074261175748047127190366635536907747583920717130130922332160266396617154024689680260862809031347792891886463320206360797154250003340914590525015888167125673924895747799011231964673191851077779704899557525802367876684058136886464570613718812950521134994199004438801470963906366717285663110483064222093638852836234666072779339488332508981617006570176577308378681542471218463792224722389776059091173774992962775036766188063825983837411372940853698752526835866476075626254306432436315577567183306075337860716556486344755648916568109776770192528351794603441778230564537068445872718349309985527493205108577066341300519575352871550748412423264960073826827334053175097288768332223941976144030952847296303004160350737771467542953361835237836822564455084128407041080327998842411201997568355558419904238316755517967407014079049406894419775780215029606383809232445579489015887537805585998264021392632032286719657472787610489640474203378384253774647957664574979842666219055076518635265879920375177193909229398838270012287968953063674553022126592077109577069516994517275947731816527444360569661115038334838640285356476561226047168203255615540022688433600805475381139575163999192635941636651917315123440700304500902748690790664133324722987862737966071455978632013857021179642536795229446898461816132748301024990422455614712758084972837792020505244741273826641563993954908998886210721792374549449933716024936305192543399244343715334464324623585434060168289510290565918625169369646032311426596838826131450496624345062027320345859928269588581829034935382851282783546606997501697524751403014437392795399288259205279431237645591686532510438352620585033728694702433159979195130333661810926852918541641334211954925610940603946915194305913142231799653386146808217268447824263626931073454931658290986966104622390668879246147206791267728360827514698887360358541978312312822274352424118699657618870314411875293358704472238309898907412574198552329150878895005690938682711950478235662028446548981851116077941455191594048006305895326055014015396468595137524717623561185902080399600214417702983749735250407663269731319512997351736183678965019825947393026033169456855085556887602866373594225390368275764960468341302920553379679364040271063038372168914416422882409249731615470196967138613185451078451105931264587817682387724360359436169345955526319033254780049996565475652650039121425726932755695750369558073972328177454756473406630033589870086138397142017522218885876460801181150353913668698391797934742382455746002427854269427202470911826564811076300472818834688716419288536151908506268065439871295898712661774985483279353375123009516649887405087640040939665296696128198765541124269344366182581832040386090322958850455349410321736732987071939669207528486202843119163393897636873531200263850003049967670657691079915937947195385739277517311817587682010162793607069483343143279881899492695246929619814762811580160562301444023055019776684816774752450363164259791800994264427663558326015958970745648748274489399450221813748496312029009711342441834216259382785279115483343435350927489188713502442022604497007235186870447121083912541663698633124151119733358593668348759280680485362607742402541697817812739732239419954734986744199432729537045789378466356711516974916925414957455079537270707610255031405984416300190089822971701455959083786758232019661262121319759588879969953573350108911129203281203011978129481642032856805255846671022684389108970275855297558249933103194918020439698879626748015297869247855656940744298099592462849061547568110064284289831841182985789812400697790105122570041110993711788785274811980383737804539189607204984602918336400312460152957725422081658396776173020080930801051017134824929328922794253303877168584562616071050966945054975302895902818115983025230224561114608888603741470684484385140753087354516546276761130764653719816729105782729156988871798382334067731911909860448386316110189313872269312734146360183861956787639520099177427917075547706859332817939054965673193223996175656851279185476042136701635950793004820695707929910323692893781005867185943979931516919770949109502612267128955960961414059314509379181319331312204073732203393605748746314667436570902272329916178060315274878198179970812234245403984641463687253901337882895961011971193620470860368062412785173729194034484670410105423673218341211568030085491571652646790407194766099763084147888913093890120800757663428808297956441167246255627747169446143979811045091563006127498082933880191818342806524113535596251447451314031895799252219045443532254818945335322633542756503976112096054463622976260661470973225350795045580487410032601398354947875947254992952769571782063074035791676493752132335088534939545810417256950018177439009333248678292964637692233367767666489871002100094459573010312703151809849369126088915781678309939552651587689003962429283756533042055787974029236756273650307186484407712830083682063405754656138240333900744840661545980479951417872379311129355673159110155343712300751514390360273381183967351062177758561792994887668276673249422905010133616616061220127556543502248142052096303469633815969509347448456013570602959844780049191760775303989096086386028625729781594647032508925848429902009025687147263819056895128724250886315389093071871284703186407412437806110838045951360677629013331847177022871511851451848189517063542543432793952040290027785233054708627974836339318010865129220492571476910183654298245234294710059111435244224811395418247975022158877577784634613245854097666043945430155506456226207556757789659852598225296996823877393145131543366437265851193946106975830519271644054753917860390669512632602961489579040477980473060475147580130085336326672100366656273610308356994053513169730743042838939912387335760663783750153096500578531154681915150339876828593523002799843333125318126565260453332762761114907175036229252130833996063595104536211710163061207397044409034833682396422237525152560621544377816453915150626412042505942672832656820439853277787279027525877422680751232685669476573015045413168877622686468082747096989442822832655239405153559155099409075073137649347407620865508078684437552919383254852973574642777237696776387714095719650753911273762391085005600838071056062632349944354201008555945467218799294570878436369444406734386853389905204123100274602283242946629947402999209751909456218270452376545504610723984429830804385741384057793803102356465516793447998969388172595415690243318585051894264488453291371875336203706791563835971824985771127196131255657470901121294257108612005558540811102460742043444226395600505931518024050961070798252200438143085465058648652273979803795834549215829439315850240104370991515040007794440410902224202241283808101132410335928858118162251853475713942179596654332462103302360135563340726526550996747175118303801313716146546421953159400989065817935019972278990390618120624350316653344262574386552984944205768082334457701019963395700684139102223851471835726915318419746811607475060875301969048007066051711395089152722084838772479300094754538741888422412988084155883618702364293124647041515664903479161542813529866270570889489292419092026609128626846378214087023610117824856957021322101202544519962472277571423367132260660171009144858725162742177253641708594874455640719639555732472497736760038671754704843250183991238847574213282596070190623072515741775094179414380415956581938198545619599403609903924124530197422453866436059217328524832831056368018543164359059942067758698953407877649024302671646786558563787000400799332267129310696814054231530036100050274364355886534389430355578708913834670315085993397670832404982607875434459780165808647836092225705956025399663898307818410594243722388183527670674989456307822593130651765490288123942572803637015176497797855521378298846154695600736769342101416735993737027042897251725209016851517088193604730142130919418211582600775586730641548993852241765598004842111038967844212116504672204866693534483893210491105012681485156529256159270599690868169828229895297212895807794887993799665058199274625202699532990204543578765019411147101417623595445061172442689144506762454119265764301850116594496282101325974866193644393193132910644512184550948228908353904589521078423522352716312773746754563766070503233759043613441582337569679488791994626217669777487820274388602395440153807556332802293586814578924916294178140823028985574885456478132565275433520401297762572118751303916060494904794912298681884441748470869608952623782244034791249225783417768862032883123524424549406198543714511971663515365741120870983616299873209116333104305775665292820514724845894382097013270125034569150261540167168487773687600269705322473354645959169353722305893879660260348541284763710474299235407878810094127993006446461776114897827997616428965662512707999718062045100742640327390793295870766444906491733237678386268145228252386463340849902221372609580909501875617755102359437467232141129214027961312331707488611522442259921621243148646045738756018155194460748003899714021890883086677703556340266483695846412534916904543313189334446631750277211517415481415469647723940858855399012972434905035717019153598741791073748350739476255038850438519237424575890624785586959378324964236067684241436584826293090932959206919453943545703683512300997600775976466865174697747741164967312170037941445661092807409705447508610998996087510726214814398129560935599575350711506340738101968937638697603903614686422909354655654960969040898877249116415090240623821326937353810356937401257610779828449087432494508135284510371745379083733061264850923144051224609361278563046897411368718531778264371093522075067607762681963801892805610656952638315023180266599407748435449492408043591965579077944780289338346721962432503990514624526186506190702918423623414601371598675981770159028152136244211212218604975138068685455089662003612032453178897306759394262227137964429286603799703490139753380661254948928717076416490488031176667792896811721419594106229316954550900698075821138807398024515458235318328778341937963828697973983746741591388606252949075615162873066297732798508612854031967824156915046586627370092823627193113186454209589486568239204918620275722673883895306510147176234314238526928776272084310185030778097699038565274156260723168421525280083589283878359920491643765489154818863321179854112706650872339126973140511788504789662175599038250522969040835619441138772383551115571335024044391673344700834701212081365305578031788896552165347303496604387238384387238398050521225236617351718194223266155169685493737757958315426692689133965260369387076497034964397312191999349800148484732546233191570629914844881106178455114052068848225006282961086739041159359025149155584150456075584528347381422775900996103629233000323300134781287502615628039815874878430879864454612083378171347148470573401856615310171342928419070013468612057573422971746501191100716075030452244082176334168797122413419033664912512556961053479999401125634211814998071030660445494163203472882769595673754192609231681666897272987437023036206557621494092584753083532932122332563281794648409756902438628102277870408032720838766320372833174344982123437532385013292415930850789674085204326692646180126038361734391221606516161978505879470221930658631088885678473538534819587829175202473467553300517083602982983713822285207128629852508757863124779389048520180060996202659470327143811350351359230812121778295990193201870530339207617788886583103738377735043878944794242084513542545541602418085580373506494191609886131160346673284254960056394829056978062436197260261977968977933510008070388424605325949496065926042441986122625383773382067350652482341918707282067241828891714114890176829482887665798839316627124972246705979364870638147754139866074496424437709709952678474584049031067311861629352196644331387846943676800846621632343325481154358622039304910097972499802443984313461988641021386095217709156188199485209313234481817421137233395506779557735867377090627314222080978336334573248205850107358932080786005258711821165025936751013681297274863485710509423945873568410667209474983865355653434575349614606689031916772542489056600416805781736028290973543570091626658772385655731446789601106822834604557610434519960244783802186272789039315930644178078782499881590301529544122819266056736560638363069339662136571437977582693574506742909417177966542616247998992464461552305869968285891621226352018515931072547889917298152117974219932713176961681909152151314538748957940905027114249790973800420078545394390661465637127717616755326948194454420897650162146483738812499772277688719252912697397824207904754876197964499965398573178779795886564378475231265549588062391372820193888777900967205845316247811939320133959221997927841826022269686746387440522491841128852395642754523096546444192220080264683273205343103178926817379568890111788048159256989965353660879832478085150973855941857452738071425561895948367399206946337300299343947804447362460672523618017840519461902268252236272098027834573544439151909732405993361557271763040486569467597148126435333820565377293349115288991616372446394763896130407997686941286927296134676690503948157612445229802965247729925162646980833389230806359656107132636488365778952100727601769109029553329332846346274105631760513206693602906345186336124856581552872652020934067133100770424556636607245023181099048553524762179205048036273306304705249712275373573015202023099715117367981483141609738199792873218399621341090430402943777299868487867600054960023880034560084011197343578609767532813910305723271707022893279200759748996618432795259381203295813657104460141247345997949893780641277194129183231576240574638478699129039082070652715923986892245428953774348645988996266476807496803259975429822532113571059705442951325590572810860137336998925369750096137525761627355004849784041033107799585560695340027770760308716538274836458873656060441065927757817671106971834545041025599388965289142198759438561188388531657085821512600237282615690534955538473749804395311862885219853057392447503631458480538724988458093986855572884897436040696803899669686184486517293048435784904671199474376882404546219816355460050806054270486532497814585565482513879606146911265299190330149133167785419854987151072417258927250996867743744930069288438903531146874505693656366270954852369106175364528394531844041736552612061310172455113444235699728895123740897739106990828661077857718930991696350784834624565683214571442348467499148473530564691578444690148887692075528601303137654134746077664248072237115313963737525382083547938169765380339398078170498291494974897358938596189107343216745190430217641018930016272885132106764988786629611532115998399077741145396378104615174254702457482541301367785179094817369095055801022725073267393386497891638851202578422476717945059394784853614469767504143431816989948593864795182952685365309562627194261427598783443595095895822635265127803864341414298063163247823151473563646561860730000833780573112086661379052774915761474137969303982671822002508196856374793592147887521029195202758109495269008605293125516959872233127779383116686270845659793079141061292831146431189627611297255184681722506566433087429916670020819164519571525107172602918822677893645332143258990002554814340132840372936996691512065928189900728322931409012853297029226264460230349366443299128944149408292526272245033510342005193965910329154729339739369494340403798463709139349624285265702048278994695394265138150521431182567392273578262961747591676751082151187972343588859734146562937180220670579882983209853492065544327111588690198817550731091816353173885011531603930645686640521211971382483861123838359989838555508681097220356191217720042900046559403252050212929191633730590289554081543108705445686522370106124034721589017976395883568177771159873499455773135323499793983168079518307988637154183378210096547108283820247990640050605369258822619605188625190930053798945418787325899106626641618593963880084399503202811365844540978130882622191203436119362061802693922224954236945795972992872407876400243478584500586483078723680962028517100883844483526135575116024086538464626911101721368356233462351284864990779391051741452377431677286443861187154275774480425958770490569254892691281620449430099985207910938062221810580387841126715016988032442324598116272019801945221988436872412195064382655109402661910159852217571692092899852367448419456441398598735472136345679640980029558022470522226936607312451889952178186074877479721614078479538474779021264123855721784082080068928015019457634195983859484589176300600851947324917578160742536493549264526212228643970142837369521599917969104988546062272418301271128342907440877587890142470032039270506423677000326781755597283554106257347057461266216736828923625294423041047378686087373068021322211369959725658365601240542753371682527156429138192103103336977526286221953462440150472230701874117587009596392425842661714645136590344631331438920589350707625461218049784236539071127892036089745227790688456239096531713560212184300606546543659619188254599044114053655040472784300499156639798251702810551978622071187614610807378498737825224324238274216587968565386845281748067407198321434910677947062289769134942525898990421101376640544949470593009653339098225246057635226231911874565324440221070764202206341731475799801981941607181843076943954254435735356299764563334543899184234180093812920086355819907455602478287867507933822245262398299600559094446589142348827023882752078607238269076314706324586287954910512123905143548889622674303738935884740783781664628775237706967429557579063294923739549882704796319308629652454042858299459745211854154026758424060018688044969095063457766256333700595154585438901358098447190289127262959392809501913687271737637461798387996519952918554735973941180649718398898921748824370343009854188369553732030679384869398955737456570023381016684006583181014288715317345068013965872509710379688701601385455115607372611798775946109005409779040755517083485231493668863370917192110760879756449871616845325270396901961611177401950514492209829913537734093448187918730778406840593616134594379049825531548074617327312344411710180664497649960102735959820549888483900434656241234345910583110177459048228498487581315416222920532009320190383418353704394253898163533230273638725499670269501191263210695649874589061001825746437765646681216097800959980469274679954940604857519314141945387394065634226689367085979287589888215835423587629664691172518939667509741488077006735857903532598608557802090472432274447201191042785329544035539712166874404281735079662159169538055509533079464872843271815973654169337907355547554275612294894587471287125799701270446948759129339195619331131323362882996233352471526988085494346493765103329058504222853912356249531628180695472233555748708445334694507106744354243431889956967781596522143216214809585454030337353883563693988077628946157950752741602093171375351166993364392207650225167629280303186825435626615106327882039908405927925411335745180453793263871100719735983311528452945806929698869521518794625801046639845364595431963625183415646452184137940405775456489250320112929334936404016941249185896090489805967311743854242978173031181779705877028838464905647100063625740716524819751064591964379686485345751164718884464021529233120998209634536149409175368703776430694561393667786983966709901305560248191677363506331181051368325201035445011609010981044492587429932917210449329440043142865644641766920084070260943590588940914731245921381987305738750745545392365426795870728750567816233326036831100670335436846761808621758667528847199885331858038991509980435742964701191521298368211129059069728106117925117818376925336980825544485503083191785172437364613365867522430785789589683249771342032559676446837103743754624676297733749658862150949532250325534980010605561812566937580815268572165393799114545119278019931640217353046138434602630886341558640784107274783978999244094359501854705744883136622610928923617301301422233219180708364438792630734529645825875830883956338095959171057308039605948309386735172524853651079780817972388159712354792246676759597842850920993697249249652683169751213621305797075035400081044689052320524803968531859599025222991997615836362365557991631418645785289898558206108826992868554455855513717361927114208554678419345614277112596403094947085513162905102128324341855313209292696061031555940362480319669482994098126353489225678858461349871186703264932991450677046252123746552228754890125115113364858178684896903267565385362363045463044424277499164782606351891122803878867742083213998866002441096610426617818536804836639952374682562033599481985196115731186245247991149654664903475772054100626426673729827336508428689569330875344414724073142382134179862607781684034121871002674312362353852167897645986840496151577492943454156658658149685849026974084113829080064101930960342314576996492922992926344036257903727047143795796466996897651002604458250033438585726474721174752250399883141236210413502624759614570086219780516980164772028680862702028799130134790918595107895979865381327567377980988116300895032424448322907041028721937430741341855638153390485365088409187737181338932227410318633741719703584057416849761352042686422617091876666690866921320550832562118513374686555670788734074408784397816527930473916552298541938420103656063336437804637979984141686171602767895269636914666111641637092123608697379765768862664959885513604792441623320678855506790056516277383574900946952553831491748222122392347524983701241874537230134019518847334178325355615723458033985739374032111445491815601453570951408995270128671003924080976571204351359549422068181374118896361712936676355796435791651256387545362364208030755993003230466484683668649081751177492842639555576603488610477736164232837821683165393468367509881485292964452815012804393401079614695262481486495505586649025098711968338133662289778516076966181553620649677291782543804273583162477678167468035081545858270394215436669880555440399157224403314901645744896363749728713744332551747138294734042961057723928720845047404364710090599415074921153569088834814106508567928138385296343786221457861647578541967783085024129622483736178246469662212496451146948799823932755398637607207870622593178735445923869589906857815347542247578185084570107137746312384874680675736448151241971416708119035749390962762727915930929388806412924613016448162372372357664955437299260689901456119128790857582863957139129838801839541016680897371650889705832658691901767226716125512971223193643914268423609196270473658698522393556391369566752241942313958428431899390441618624023929093261981286692054364718100008862961415354673051673579345626583403990834194076679786824303528451950844749563367862869382085607502411002592820060705472938625827664077754033132311592424724721531867616214814095179054919629028545820940549201868137035202112598046987042643857224741272724496897916697419037302245117926902783135419423304745828250755394249248061049425210201856646845904064518536353086336683476398057414667980577410580402929067401687403678702783717194044876635521452202635924896109508444747190548744301919761073305515530875640700152381871252185219277587601002046581915826470226832019920226841023615076031115818895702799248958836917606776961944478309173407133286619887755456468342069228078356472944701451378978603156292558834591230738404790052861534241567777871403907743602511372792002540511524913908497151442515740139316451595201984711612958445119853706275551572987941442765031069597618107817233518620684831718722687150012935856104011852333487008119651254070900505411570628160730365137119671487216428140027677192850221265388952268717223166981973629950658779214378934976424504149175471988941859008973210763710744724025894421800984259268719075822176475467174887030398120263749997603749468278046293778140384438630979139832066580664356281591540895680256971006500542584386196832597765030162571120356932120556197816440532406030446564059327862361780500374525277169026460238023319519793720919959620740913774061965140889834640894089023344755702165693127315659715521506296586641686662351834977365435047976882916167624497168161919024191626305917730574610173934908625429779983781119743832917936342196203859990772209396711455815153295525939797437951048828636750644766828852091847641264927585727657955336630426095997273108752992984933214209212625789407353594332973918076300754003543039254278203957088709573497938240571558162136655617708238470432445931279693577749591746398381373567951895659088088270024473104780472131643807243382199212879295948104882439357985421779080652228016120643482355793144115863821648004341101538936592714677642617024601627339941087715535085473415058261276918473488305515493455844000940780350793134386679769147143747332942799785993678114579983414909342985636456581777552642662531293953367916159273444526791151407365475796629052398927516248953982702490430130365806988058539189399498058485878680888122583560258734874818195567622823186033296009611950819241718782403594319569289137376784143676916689021181744501941776374255954058734605873639702146263960929016888956704404558724132725701139393280512869887595261298853432093386662771553188905373338908899020320076972037926194282074810678335019321217389336281547725632225506123771926188608990863109603576870086630733993312056057850975089333684798523096017682865935874352563325059950120647359340818813968623919214665804096167531056402971234732377547433112641885883506486958862075596878121778108263345191336620478904599789260488244547503864965800826165955545951117929660302621743714300681201208884090996456728097531581658757166221636293428280411015600841140934508046921165019658360594501497938413981717154767362782098717430081066520063789352441980145861858214899588141118796393281650953987779712252518011491339407854927918107390845292649144836529760752973743047257575749312783270163017843029223191860698440792144543703419685591081274394560590908458261534671648102602750740351402664012356786767619128833302348936566866910520816515590107614476273630817377715387176143438160452039541596365378628597564369449388104637758590598653523413030083409223036872465512253569453379184317723118513000913719513115584776819937416518960770125310735603290194174602825521883860454423991397650721110811988996759993808311322687181399926513377194585446373756897923804227386861224448331743983105008339102659913069587045482526006998552458033694795978292736872540930117720294666625883130607085779472572401904851196143991314151746253375567708980592390312429151504563244624332850596000915744369534621460648361016478343943404333045263164658256491139338290028399451280502310177487133840322772600105746197441547230565134313313483782612952730190622220215683815742490803696815222504416404871879020304700121475204649423222360098616317906275362499351213301709454029340017886942953886512144886964118076319620835018880374852002880809182071261810060580604946887339597131840838106198777440219956093305003992446892474577600809517627148591761532770748777515069654077180361899626428607195008847009294710168536282565534366940820347642394668373575695509754014566635124729737952819383199088750195282620573000279139845089797503967016493585631237401843607452022227114806222893453197684688155909843238941852430021572234474578120360094981609120406618119881427625371833583853302627805692490065449737765269715267117021395240100269284996550323978572597861289445729399993691905549342814962561142873908505963194336389931970901758789046955475481319537348811012593957344040860052483954391475192943243644712289423277603829888227733164472855695162905893338069330079403289583050947163635869127023085478211866568212172930908995279348492999231096172809539143994880928201923455479655942912942886939098947267849910223038186294607211294970419223547407600080127813408966599999118262446152454805334614683244549282110225655753206280608166872107268614650642056248427739807876301316510099948305445870305761246088120767362474054606550361883615359661064475328838810073187766624087427971921847184677092190759362434287189686101393607667287454169922377936278939124535110458850674700861492896041730320824188388779931918789493111429244242018494189265829396208536350852677493742623655667115312043321530671531031322531941302826931921805070297957065046698577952736163475030786400190241330897568036159007092020130564207778149224817926512374996339573073952013442123620849893768994010012903599114083920045407018469556007237740284195054739597540810342500438496980055159706548858011700437239506100678729600751514106124613347970859030555745248212456367760795083958368079138050927627588227847195739612984886322509179808392143047052952849945425930870332741499706924782460959161516497654619538243761019090131495700319668782948947688737100198331744774723425297153721908931859656387394237373024229605607758069886108351288823523613929149178716233195065570786203382399308193108564613223901945091678509073334223392336471042751892367223094272177170897193679893660598933707776744805716928015444429629172570408303124237004197778134582821011311642161462973815495084100511944820695219314873257944627868418413297902528290906081104880220417523701493553829650358109940279866964172740101094296065163953832131211224045452581870140855164158576435849899049120568087836958574054380976448970949044874829862059083840027831477477932825392435286230319525118037177735034018009279565884303493424031572152851650039694649965068875603659483810183441825977469168712316488039724744496979966564292788248490343197954952488041144880453753462729091483591614783931753569101008500789478474615850521966561798044944666402294861872765267971591767701375156091586008888799419319224738027542035330165136226273181059420622619551253701384929676835435085824401712079527318870536980272657221389065106568280705236376377699912334859368137923479450592733498460645049174870982690211511731666645979336855472274941012930804242576430668133780533975145871426746994431943433187860290545535126056492948988109266317104279082038762554669196037127496458576343853426506399466390031063237966070715339767049395385357879431615691900742245615394895300653192878611529795345728799408305664949488480364228155798711486650155244680843024425019531834192079201779037553570651145613744736204546234808541635237084325970985724784266076297064873695923164287544479572501615430645586859686218182999442556898815230157635765737176258758132571478294884006029530477162674695506629002468125758701131125424846632275765947608429090318417872686611017050033165156081514412789383000623378682124988239149972755962985464741276983534427698070744657724647332175319171580566934380227544244499950789476368686389375533027745707017680323827361571236616387045395602655691776706727964946821518213955094616171581998097570649930102433055239205300058546825849936469355893148796209260557120659316012231004121578861403925485000442910050320335563082226026131699790027641763701235128570692479244713244322759144919518876334070087258297328792600932724889523247488201944779707939938394291040395654888697375166171412462028682092400336965481979459293575375009737143781501773942351189066896986803458975266896186005308648664222323004003247636243707390791497182262847509792278753519467142988543195395895568661978317300390936669273034927645970604891541443350980575653584103964399632995003681438649119578865109704809698555553324649717761224566190726427076131980595546012967819809923316956586148691358385667334789466718032389919621628297557739547885797947548532799540295716001654468936194032046309077514936339577247048144075145864287845886979966920291025569114654487261756644955539214401310055526548318810381125281149418859625154983506870837354239303141492082341166766321841317227454280285882472577001762331845263529527352251607769428977281195551157564253947647108575474670046290765930688717288099150855157159073980755124225425074470343452524783718942001750290612717523841099388673552898109296393257459253525371915307515233916160238449353647888999948932505653336812804656094150108278989504802412061455606333186902323903624744840488261212990848522410869497083806112008617781439189679484864811717161510093325476940813020263217056184999820097449738572585117054188216735800018856132999967554747147525408733159605440580387374926002891228238468416170967719694601378453787077012669580648927225004157167834162709001239026850950202369440065413158529124836205103142968072760632861876185307726080146557395555398059344646030996956489915289653475560641125208160288047156280680809150721654594080338579116292266598764679690937467813300420228024199821153989632248465067832286686245830441715474071138031214743856422567233525845178035431091468639337847279127211406124500004788103857075321352889843974969928000664900991941445191013417462740963537618956395762302664011595591491416977265816171780692900434242166746009159687191963295773644959816827862059861695475711648663163482783986265511611798141442682215457659358212595676189801050210399666918666156215856235471613046295529583653967073786094018795834379407780161098321518648852104621607836377200309520860698004179861582552766440603928142099002842767890036344973593845050257721538033037600004837631910275418561355581100172121716115362559128512526584114783593693400406457753262013289786135794120114926340507051224688105322691571370164575885214112054102694444602027191953608102024149971608006110515527385138913711548964658749294188004632395181150391341670770784721874685832161187499785430634209153818279817695851019310311977898555117621430326216296318828157269364617356142135899999480261232674387405126113817013866901885738652123324975220500686128816023445607529484823326026122484905542722922904905460352659851644759840360271430265597134049297687481636207989685525671868510332598703732917237435301930927562387082665170539899765395373416177128001676447261838735086117868486784388461979895868587703799883992265622905920489576957469550334584029534347775610700481720619212111860157921931409996397247827978729955609147647470616702618778694909968688854617752503321077689270705800068839736134913233674590911755308684162194814779649017726672210703415550238219927250452094447128784209388649924087588548515648786157697394740423595860729270038750786329551479665694401782053282406670436905349202226702404354410871302317601583526980430634650366285063236964648221776531449863003397804732018303158730225958813714367774270444476830077285325251255503861259224519892716211281853727769425973201008039591715912355799461626842001135275076954660883555504869996705416059643842278678168379725974644541079427440549240635880970881083705795086035918878923635745446634855969004247187342764004001640315821482112534019828536006213277785200135693782828683005438990666715357904349652263639160221293564718052286801500716850627325790417641053196376745578299115215968053611216114302226829944413592423227365327834086430955784074619096167592318451478993204880889606025290627009088868861963146405389531818528486311136773898600604758658390352474414293194583808387663484836823129093825640790164192796144291420283273088006185046751148736978851007598096012859802268881058281096267477665972003110211197883114582592752950551996855285183835005605187149237513910661364415917419973774907172742022311152365088269700877794176998602322323321938907940700228969509724118225711237802547807622353578586792341159767370386277574668294776630991340376776896066783687834383007162650876734151090291543567086912782474628102785945766275733911850479570952329846233112667144799137843254493715406355004326936693703070785833903953583833787992393914038429443612710954685743880461759000121278506543477194753425701137386780218433791980516548257457519772649258220753757293031049777595709999739785918688029802223962845595491444963586222079499065242875278697142851253008717589183056344632058827383151993279358923170728632388389548325498937432486759864486663457704751836914117613931994124249210929533761863189609069377635100600335970808565835317382972362403389196771426465635485977070864523648600106843998023862553181770882068802943702172824422954200351070790486402695901817332677661653289312083162254483826325594583388534794061336015634303604925260713837165638137624491940053336282239984779624308732914002557672795567687562153995462306576230798079334947454109885015939138782205055498739268212860286188366220064113583975127394087352650196126864571494500877134747011426625929445665443844844901880224202474410684252497781915340831901227136395327397870674380226505423082355358915982047891959027100575314711200798812235026115285532626035005800921736704059975227828332805132627682779127881723364650301181287282266961667583541944822559718608211591973283775930971135113877530952966275235922976317023864843597181396603409191135439147336454746826390028640810665536843079742638426692851089180917249338440142647148283735573678221502175200825085583011163134176535383083597355938208308366027714807594667954799296388453039864046620840889818941635427688575177309094984474939749971439736402444271877796666537299874814556652523258439871069860791269483320308069296868581938755826998943678090956226165861118965609873112462822863284079102332206421505465410894860811885192896406849525099338714618172802181589116202314181451974700514838477550236685652156334923876071369397511213755725951698944989315499530873544604002754204909110858951014666656115059782515118830261161328336087795142616434682070407758881622367104749885488962608463246297410859770481899098459646246989824988725256775134245049668986731257656805147604476545876284676399288770627593329747637573298501987643805568700511370364951059341426691156629902524968768910637658817633661642980642434912792596288467066379888491671495306338635552387432512396010554757887004823845109699860085635362539172482196047113685949522669294135354455312884892443919099712251426648505018254542093235477815274173246900090194135219890466787065937854133115796000143814823112183579696226012050604091331843519934623189575742506539119485040546758780692706252419151036154957905093929675103416662502568818303976536946297195796370392761660258468157677532872166534959854533092587857482705335256744899351051302211771379053266596381281110670916957200528639913712634484921145626648385328253590779472478682926616146855799392685099276797631369890357592723723954794099205639529562407387366471523513753999456926571530909816715662476671167566521654138661152780588787845261373716274904848409844027872791560832383897906850250448686148299031760996296505092854758897387727506818055084810979867140640960839351716042885887374000682281228777076769494978557134552113378845835090385188194619421683287145252781121398970463281785271614143925146433962838126069221624423883648374857415615079638755094444882212218659576725191183837458841354599858263590419477258526531466705732144789596687108355186935316063475208891791375253463167524691729593336222775666192789385784003585616337981952390658903523678624447830949348291301233063722870899791303849493661989438292363653214725196589404781774554758615977003074543882081968861409203355107119328088744106079734867917686102295321750722555399923745856889438386247590552469579428161362287426476946795161063353311255204518613683411915050754859673079192861256374448563857861682549787084952099279901876216409170559126981863928672837561017242801476860534270084068925321857081296941529854103118281816966398927206217341496974803258899616968421784582185725909077535458961372754694557957841922691498428535706386302687528283092005563473222377436249973644847712415268764485561524104935353554025521971394652719289575736803520025597816155973388191494472460837508214421784471470830805233628024021992487556857698184504044755103497714469558138363433262613369568565710985584763143613431055521847306902953109926878655938791701977497061716805895845531399213564771378314142135381312684853713528489163796884794090278383435774935172477632314158914702842140586404153167439176073758764015053786401629844301587665841171706191762608059530651893452478973988773794685201374136924797801902044645897600640666070275090796292870932029257363214673096357011405185170973552246974104410631543161344494426725066666045902054127541348951621125649849025236444709161515125046289122400498354631833273369025791092422354762853917374099100108222240718568436856807063804625429119921906102694507992589160494344248074913800885061296016760563609680187930965428440913512941188362799403562355338399843986182029822918713859015878455712372965679995746787163721315512258096227782568882724414163499102331446174338471827828797661942686184637692038627728484428551419991287891218899625315840998680122584295522803068865900875933148212981358974141681498463076997165062931134846917677372607279284752702298493431194876141098524947424614708655202972048844713237792045717274286900644939259184648353617962039181914822174805603593237512418698442204317651389216119525237319974880103904911205241240809971742653236826756642802129305507437038829316363404113125825698683533803360152254828413810939497555811433013851218227951443607326933788044332873792590947229312454941336806685108419232004768888092499016729143809391909368803835809573425937601303210912627374458726824602836047994062086543698034145492719087238700637333072326502834794355362280228232450832952809399928587226206381710295028162991116884249131786308301815055021288498135219108782009694048646455026857580399390948169710074138978811331246978359909873749196601928352144987369276833618773280924432070214209488906075027679355100158041995597521869127892356438394759747558219053148283698888842015339914402990911567833566387211594712543093365173364359328930062306003747178764785076608196132197578376433306281129973071435195405799856809654567812814874844475836570930229701080742454244499930761920221408175657971621270472190127036777914337966076897255709740181774766644733916371696178947934767422809019711236423419179133131348016072693213537448761893816355724122247576266001835291933723288611707918641037149214709728692473198971485315038992277894907575466228368918066882081287922977732258643560105394203236989316109404651364866925347088403890574819915313686644694711964538321198519984594520715821568944385737103573039997026421818128768816625416709747788138890303031492835953893189229798935351188025483685640899800491711658679496440451416344013508792722157718303579363681824245713189783539922609203173585032298770016088816594506342161095685641988256586876704989224982177004483818114552329681546202502258726150576214898907333032828621439979692589483435266940222258646867248069372725892219373587730780793774224017805592127418141415505016940352404282797830439836954528575094357494601286731204944119757288332032830377763873355415967404970991793563003012159850260420209929271398097503406973990547682958697531978875053994150027499151126699178585048990923681244798733095558311457328380878568526859663226368663694727042405309263452198728672320730672370540126283995958623726887447793544412738343430483198557807474043962593235738544827774919987922549068077284767165882555191253918100848807031795790433696572597531298635480838791040275461854072621592408296651014705523002245286061351668253265810505710680266876988657675330216293850287035035786357085074437293468772811371958700649648482006841993406395957229926997891364992543614053305468012476545467120861536073056675961145787317837620759069987715714203423020376943098704949662784795833223337770880618670746760042574207695187270424638614168001812312022225343089018806158393806714171791769998472322740678429800553916714077262620940709780974837209408373374809305008327750992879483803403857626366495096758634541263966889646362175173099523404072145516627939854871028379587308528552258988597768752808595611649726036549079542352652151034206153621887145766273879027229983424997885051511563108643523745378595508116549551823816805937110349508458824700153900129276458299196689861507305540344402893327410469780412652730457602039078186832260847376024432502345083395540268253790185480774024440205860242218033777190610272626820616393447594189954706647773796640075583436836320170372836031884293327259699309317730262092306712647731900559737820000301818844052370213395814317778593553273870143316722265453586324016453586018943561856240387854744105259632703192091206749453536057723486081824039060792640916152490355603954947080356411230677773202551832051579504332097959702789600258308607153518113955077097106821079624462282121726448523408959802078788455145102587484944233193274852768669668795068614817122506956836577898825123549182125604117329226795598822476718501203113703257961793001623550274176922694259010929090826107174224670429112848758523944784513005059970885517855454763728118311252791064828265569290914846799252664896739293152923917837526886767424111284863456502584131751657786525357226711626290805529033537868880577938851759640664753293526847759883106258764785913618557168758668800240405145360699537717289576574265761061308729537384818985638990626725340312398876749710330116867224492484343563795911325691694239608322925869051411565703659419288878012517065924642121200367409983486259453399938542076362098564449443618345444770848062424702001374458346139632626959064134571105249491785241609329145762094498301102795203833345087993836188031616585588029426272926064512762959290243288567272809480955144832972149717464855065129591399863689624066055476045745407270685618954820830056049024413474878633732068918466704172752186931783167476081722695178560435477232636490436928201138358710542472765525677407940942780117390594262832401086490405267726843778488522215952604339567008482470753533938754709320385421112575422952740623277908469533528938184982770167295375331564772197705135291011002561173335545426574993787982411552960197532408591049392050505384971219967414748505532596237764433136672061229165523012483779647430227632097467490198771029620874116516308302915424211801765061081853107985323491416102032451927835779939538894166336405655371753786982729612255197894540364021647143614904470320814752695629000605257965485729179182662594582339684437088131012851867367049966451027485439732591847242708983688987359243481316828145572910022413095515823585448134014150897082985453263059365919723002894967342036574758991983051567801180764868430105226538219542305501314571752043811704478991577013901600584553629731417102091652615393368838359266519756669285821828178455063552573794362833734470044572230040410372545088798548420118208427000328481050463876125155461129044566966484214172229131271969555946385671397749560420948614727034872029390688652470711622764009535199781046665786838615398616693686642799868506504447116650125711556314352477966128929687711890376102874116424493348271078229393913191518676465203069385516399564950400227636271950363316999014989030595914779486587924974129879507078511581025411041713773049745225110320856526243455407908072159044114176665438569147718818668475749395259095110559740170944446440259888177646025260793497072787139186398115794828224972026578026771398389827264372835279243278816339515033797782944113733770947420254211350835371319622413352280441659646573528569235527623712170999108192512690032383403734624890744893496115534228731697373793940118877302329241047335472805446314487848343546330489129968192628108091774958633771719357323309855790635746004063274648700630845250024833053510958624163922551779597462673580852789561140472044135923558993491257888427234265728506115851167717266604970878918871260417753232552005923344071916676274667600280640208429989855287309949435324595817757284496805797099720158500716040763757252542356853718867860085005893294259183638911843085182163100792448027146140533056788594086494803303527998456492583801624326748251988275959106052994436322789148545469751634717592796932840361461574190196803460106102225676770724900908024421032170041797314912438302897304869046719680277482645318373084585456069022064517620936641119456074946217877875617008274978316204742904780322490441334487939932026458228705716871231202656863572506843911640476381928225671680415393356104473589308743547327537351016697533659979778625180268964732724548605023850594351382952475419243524477830104647587726030546395618938708711424493113598713382232804550629894558150436223794441104321968168961125123602685896150940625954432328276654148460635141152321209804419390632493910074225968272485600211129540047710600123644354425661577715264364453324631317849165709582095577630552333038466647746658796067610244141026181501466580448882662755544479910215162244109037619654829812441013382554632658363320377683916467658633957326491126980699520663495112340943023025176738908741249206165947587463765891087485799639002819131349713070935789427840269548977232883999024488428725349252434715039876259350255327303074903445045857008070847001459976577791921479499862266295757222899645437988358013065611494739771540698031066852886393801917770085274831814936063810444836024412827757003757297812366501448791393331025617330557715525356006434668163099855569594087230868069004360400359202382030806569763389700582340315550012171099340807886931987558974672496632338621333786597174267061916138619766114454665953727568788981959741831613732135218336052450809595743252072781367961253311184064236197968099701629714779158608552720544497155340034734977904031873639192247398449715116806411328922841059464426739201773427295465224087848148412354374830718947745138125273307226264563990158449213591450137786868327173124734555105034607609169289216310559039390799759943615184495868679190028339188400521908953893019755850395922688737404611553994249673615317513357496024830136089172082175276521489872765185826428648558545093992646905331417777210134966174651054843027932175992862217509058369881756762062257920279859073410116525651444560628132574038461372264195094153223728109044644151132478249786095017133115054653685644581277071792248461558130176688617570237685014768079023407190969772080013089502190706092386556641277428151395591278448117246669184223091160709727370176854019673095633002911948047340171401401926458023043626018257449881544139138174755686907139161379178889073284829485722556597700076058134866644913987478982845434376911681022345514456074017484508080219953630689901052468697858079971796049877289448910881787312739982700352368942723999039983682896015472590997546331229936637650712824136773691847758100279035689363268324742134578415773623893735228021154256522344556691398832020674123615816746278824048192088873647462750068241633871035933024682163338206200310456326647604385644464816929321981529694318102360746619044331700201745858028565989278478562213466204259437880770640833045542681061747838026486356520463314522012287457710609363836116046334253382515212806870774706590485627489392001901885530772116144269015567441066731145209390459447987581600606889108200397732092771229870672716741723248621694151019803685035562899953827132048721087429731986541142953874652655149165618311228103239212862362547092918017827174643804714860365009103885969396202879328969392652658972239707410698270752536461917276676775137093050347052569720501333311829187851385470208564949404696352404735237230495414271032107059228895033600541031591391198337372206860331180425888080867037889404301082057456386384939056050713904124763199945782557379507004586770202508964397609296504781865738454627127483867149910750915146282424651362359085609235509757949767566610111500782794610351856636360988871416709318690947325448798008775412939125883474387693269387383828728609444966754262232712038203765018957216004628990035550977418975250723060456837376882389572200518144003301173907157222753363912214707914498440934976061964888948038603783082084097315855645306829488693092216914468839213899125799038830547729681339332634375889537493705683911288003746441047481354313730693282054733901653441339084078391628935935554744150429416242548659458877846010030427000355996791849497460759634492028197540881373183456402417011996158513293594482239471061389093234393897659803200834381290345658284590362872609387148969748652075188668833751240031150039308453039304254641550639146239077307318512468433271491407987474868026046027898646960558352991271066211379177058015326229089770074753740212014792585686575673481931602590674999271590220766756361928080340258852676113328128498057692858423140826888733221647068650805030810542838793634771086306027083165769002331982661088260542879587423700536326118371573990225071844783921731328596147588639565974033283231876447064635384914886605722844164534628743821885856758644883927138839453096518968267222791589645776416631682809664277122841427116336362027253396388488957268800286012285948998200271086665474368801821771170872291308419109747677295900111496018672000961278109625067733194191044601243042946616241415018533625179110095876091463914000917439495675074634033287660611449247243972588420906618017984750425461253450674793601522000413424183018615131112218501950217348855917959384502042164492639173177225964557223887216423859765247171150742097888875815280710238757573054103815178186693645895939386416830596060648695475888909669587405604207984407370668542344402302100507257978995052399113335075163314393765827153685900612983838671877241259800780677038747758025965544457418859091437595391414693588841945760716631541071872718916538819124750918686734050069717301859767219956760334132593449929714455011351523145880247177648109164650219092180808120953700965774152581185365200617324342977933439231226976433469812287937496448552050998302626366134744858476937046328193343235480585015838418820407813573294325487662627716624849887634607921678373651101165584440520380479015853294239781368286645799305135817107763545173654887950328243057199084259920680705894453068545948121439727212056289267663193279518344487562648991529660179391465165904366189362274827015688763507807545565057529901567047546003111521847586857954520294732593635127629449032519371919421742653475289154590828034688613458565963273575455131657314137398013582005880407496744775988222504605583272473940857977430800821054493606512481916644266891915737182362274557518288896144492134494157119310376179152765171459725983291693389754448405352214442436416502726752016792059462339641389347197074720488322576823951245750683309062758919818568252145673989925349012489836842132951137651282432918712304113727012312997057238755843624146202258613170007350954363995049639399273725691547672495916470781101893752432001099963086470423618447496876898338849048007385295467143696502130234669898852118124575508921678018739604089387897811512676210426165995782480982160703672821715800659733888163052405994922945059122204570461885927209213603040550302887571414817140994192374581103884263501258303540837361694605155630584105608810697056607618023297017085024653638817043329065001222848049552352027786997951353369449203703136102620082812199921731592659701485436782459766153726840373322906223693807278568555476227583441648265952185293989799143467074216700870310661421233247806965557086895438171690884005731173683148095599227900319979557859726080536834683202365704027750405890082057684811962275620673604650114871336977689448694273365465907279406889114689806320949228293786381369663980204624909282721223890503759335446340756215633434365158572514541667267199878992152577572937959649097131605150423958969731320079512177260253914976791391240935271790112432622738159348588362148954585950072057116149977837643786271595562940887116819346587979604949517409393944937375602986070783689867613510337806862768295631177601978049366387343720957878760018021209920622147495912039307256370541524098852023009338653568825987030536835097273510425166161112548325583069076923134325367618122266458218701798395568220166506908215447875070081329730870400257280671916702107854954642279040186267035007952442206532275387603276620739996470744482503351960839037813800248076482599723651312291416857471912958655075538430674268740950073441412103591037185421463812656648571712023979682323983344324199565249837576583966040758721739263636081881250601449480652926010617290624515078737457260277178036436627961733455153991217012136717269402226377107428477470809958276713589304321322327372144525350265982415198895931732591984608003822857437270453775781240204827229227839629798442625511217129466655956044056953825584857703615921790129720785896758772677350815612557170457393292171263590958520562882699389072789643716581382872579594514572107279330333909731191683120686676696970899541031009853285302325045272825983436289897315834239764735969197564311202734519137245533838093552636549770395914522579155044546206651218653919219213808810911989387422787489475674975693210970474066710940006827711442345561150974447093418517960625119161392264549686148597780503018674534357428016989805304460523896286747797500093791825143531581553928120846285706602214608760194185789213990348092184332120478188197064113938869943016145985633120252101191261054328906596769275628700181969444495451258619094039113303365157068979887187261787346068964146018915454485946255228683528600083966542788943843089709696840940916507524261512838109945670279250171575850592261572599502643175632222449089719031635803307304392238961710479459416292148093241133513472881545585143862556332567284347936802178170750505038037121693089545577792463451921310292693267156032060903028898849611382198251569118122430835968406466060067770831498489977813693851661574393363387559757344117225036912378829608636662137902521066108862635509536827882969398112328082372359493407578024999745089918147562079082492403771562817196754193464164273749090919367771504340282656533451906972910276032243515315284187030582808194479285800948451933614343638865250539754659356860188863325985790705592172218439769300979455199560037096764546181553255110849921442353441363548043904378729085916584843570667222475105966133664637600189289830141079393252467153140197394334187845675924592401110733091711507130112833415467320600041408052135582086576734023243646511093344191855049583937524393484594727183361879053928111646477534732120254057837141237316001855101187756003128015526285351386809970589953372745418831533745493996624255606182859769287590028385247228209385195640450705204936785586797598332148251192759030722339445631865527220772285928304432795959961928077769127503570513740485205026107272601112253563473293048778992011114040678763237555105904968311314721675697718324667483891423011341328374833484344622913648122212763207677016404584324486858193255811113111256372569653434134849331583413689945147339263423482635328749242443034203114956242099899540233458561229716978817690276380510209514638795780441377004255348880569011110389435199620457785023594261487228101492000163105243798851438066648510826969476257154438116820982601674862919908804698392055134853274529850126388878682048481332261719159730041862657001926371665717543160321608961511770970275779407105584065907551089306059368992686009722126492253148255069439035670832990420679634736725938869440769926180485964128975948714913675946078149179592404332756339160868922987379959709334678002543773179288323179394107388674799306586354250897985500235354342903458444420230990879006172400238384720426513964286496333800729134431020254681712900173495400741521891050201796291674863603155984363260217939894960207186652142089097813201707592067368667386634345847805754470352033868010699188111687458804842025680917906924766123831802071010958656894011717281047224420469358722063357402783213623586823000152627186564467203571549453048318069933194654976100777405657928863661936159504572187177359292763209285469662407133711937914308244051164888642422834174345180320696400865661829903105148215676626903843416885810823070132352905925751404746542258581596589345386265049656578356556944483106590318917321703100204744867827668210440590955504552758207340253470527366889506252701114156150294337174609415247455111366433947132166401973419245963788242314529409414012669758679392394326307384490967820176990343610948098567497761224942858012585119959411707864661810652614176802208098340161787798996794367741018301962587637638075065658282493913747614171935470555214981224966415256344636590918160021484010827965272755832852188604268948648659254523528724431014400127549703081889708665128777889889372844062086858408661388215827897979027916739148596817528022241030065298836022414711660158258845225731560132429753861903956978881622310887044085684570568985139876409533093290680664873752079779113015191492966645964539129671838745729493360077087625320971000605750074478175954115491219536703939862899087835639543362083613451373163520312927154049794774918759035840414831984035780057819349756352280531894169940811156452676936179009516330123485073513247542513277096110636633755852653378175990640618903469961853524086702126714177438814362126839313329045724245333334200195706411805359151985109707162205554579455849064276989922720947673045260888019406292555219739415669902113267487870503833879387978345124924482376029456212195091549688206367641277359146398039288653560027882056619414233622169551528361186607922887195956341399118973468615683210141275366902047386604105179707667583585892105873448034880914544560570703379435193539869912554173713661001911498935835872797046267393627072019500108217864476958864535349956871327699028558686570390986545297071389937286116141414395400015315298048206628201189083862287300380952273755783382818265707236217305860023660182434184741151649867967810130925667741201747955851223250541174660799460842602815162934860826020628029601622929399493795541999129337230883594555778289320704614175479932936572153482706597054696119260783544535590600488285851378830502892134263810442418268806788242784583827525727157177770795153529295644278676595103870147499356658369416312024675909596912257871336436235033615413209174520200793443721384707089893897005138112907223576804654368810984415239990467725210969952819205707160952438358703581868787359650553443103252391465717898741568890350931753678275572531815886037586211221545806974096324482241111555249282432484345876125110088707028763833532114645394850774747595646658353626097573149734888210163391363398131795332022917584302432492588306783602510702604106116155890563480026899122854165205998579216466051035298292581945098205118157607561073328365512323317679558411318652672973156008781995922788468609981686317746734961997005751014854440896785824306463352613659714567708252548184190345661004352785933639120925733651040981652168409683781304557428909769769471907739722760256215248758246264874234541336239966054059436461576956802345933516207506770972496855997557182702982013000980292689823145603352683771766589272115132536888850089459403242462325068132890294444261122524214324273540610892920356489077088867698357025113415394403207158952776543354282214999469525124970750713034560953526545126862052391838624836121480168683983609824672210786988844435792729456787270372759440034553062633645676646391453059388045122793110591525628988759726614705459783365189813587132033453472737164259002553052038497819136297876929280772555955867310875876237276577053788353157417035388210290178492090830559994095289925598530708779992524286550101856697445549051111538058726649696562677055260549998718262805230133275859058023152492885476012745028649575128011206004915816616725086592289129693332748538110071671866776107355780427432386596573680128255401958544226589679180967494694634950601054518447949081642571129832734880693248868593833113573617241875165350567495585153538809315271263379238747278062362981562314572263515719197549179274390671760603827997943453787532303324206583451417791713355922949867132518414118513311836440230102785215995125580985504839253742435251846969117139807294517763677241402904478975358245369779314673363812400090231585780210173512118274109944548526228884051163256295168746404589779019050997309895725877271245009025802136373486604789420078316161695852917085825931624034222842717005506104470882876310853927649601777903447474665219285047351165044635599786429257786706560334990858482600009722805839372062041808910999514249938933133836309621694162587255261312377425169236407327265249486816923664875698304252407432669477067287244364897597870265111497340057961394135141082027607757582397822760414871273883167598513903904831283867325573989922682030445528230201958513186885132637124643869512396433949387091393589133847301178716924837634029152248828943627779653667987357135836515748179704375446549834611109141506009573789043487703176635106861760307563977063681247512192134118466647633891590578698833793342977310997700713549583644668205897037186500848356310298044388675645002738645662252484264197374991523695883825498354088406514170346302406710301639572966036299108159302869281267542066881189267745681529029609623467404849574529872994712005631248263736478030443526788593517060035055217247649538176211103797455869621202235715696056716860285141066425199367338449210074339163025640714820179206200080087059351324688439955053847648206161826819482620947881319066994557420488364085698589808543066837211628176706023576449165761054526561646835338330872070622580784117098898678674532807472681566667033352641693653921088866441872283518940625837601459528141961425957369801283767663699358505629135617110181767637600478004186587694929729415166058855477846247594798066394589171436744597579391458755180263256442828815918241438439296946357418581276551416906409162296591377040123671753402246758349498714464330088271052286273478413925424279594952138306890004683861860388696917967682537638572821764242324463722975155297509012326671674114554131359962761230060495565574616352507966854944309588933004082076738529366549148943081409686401055887557995244385907762023143071604964398105917800995683377142624748941221453284892412367197871479996919736213829481531245550276676104288427630259474935136832322931629440718443655640812733367893604105318307169490862967568054401393256417510567634256210372121989116861133228389260537877648113255227547564492511576816091611673597152591607149027337206270340772652405585957239651706104656607940772402521202841063211509198501477144247191644114724801357462997767249014906997002509247398226195009617458701557498705746964534433305795505080368088160422821738192134277885521773633131893578558666531621514652361542386431674114357928676260330038391721270951454881046963038915705750360317370303378373445207909596055760889753502618063164088861811824959672956400795762913409019517615802728018071956046266551314879578603234274333023550825969258950258201413427435299223815466819187552545411116567009650771575356013259960308775903149422084299888404186553649716607713593560898985477737355467183535215782940950586716305925229434168431445858060859846460225055530560100396947957967206983581038975661525277363111648893952959188161511098272940579415638189596335693999539345315238162910377917355229082626967436372350353231564442629762099158519494957915138667935227471051251661839169462517180165434007009020822958534090349333446733511796583549239073738624083044741630003394915128601202265663015796506256105906168760682547351578068144188939865227564939768033331177062947574513507225060317439767008555216278475930893282142502914365639408934230893415333662631438967093132897623828380824583738361236083095543102013062649159163047455295944783266981667746358533239283249526459290317755519015481692925582763427338658364999227617451617228792920474702945873066198536229772307338337017284099384932810382843905850730591809984361541671402889233609076383455873549278742263522300483907568548561633011003847762764547593384829455052929355704884768728667582446487352103779011063385336536755030575774360944726878528967003800686675321845766175763225393518741923363596922241534061693684239637872157666799629901410807679339128114346933733256903179729663916301621281253482372936467912170833796409959645593571959414550425532271042111280768554622575815536399647770885012673329652332372348098422780876894826960432009714203189684844479324319019947382694921700827264230419164762350385701949476982372078989577335173304863724880017543886346022349344766118067997615042484176385716605446470731461182367448185992610748219297303511750078239310712142003191500352944740970368856327637261453036677667451517578892338993376508289623266047600393913429474465528296699799482349336457712260126047255256375909379262921222611927171288262706177752324222967567987017207545492136828306056160951159135709016609874936502892358296677674443855104839533903204607154869230200043683852090758236729715137524468350456235546290007922079373195932910296927693145030885118451271787960034881363582539830673847673356439327802215878072113882091778125690909542443821460139652360737707783466954155254800171361585349584276127452654467298454189036753698058968238643877996736743302004107523776172816179827304537232422990220306801551722656244065712180982283056043094442587090908906721567342440463017615147771991862551319779870868746735775355200439957751618710733220552979550213489306451775729677381493712233269655421929680935493656839554200926304606380777569566225038225685168307721444827610284467639333565936976428347090098033815908143632306979914358524986132041562873104192699819185371296425452899316312005984350405152718001775462775030039746482927195072827504939212540389597679887700519566467495346053292197369902788774201486053153779917881931875084747208658198166990890856925717517657355522503149316754583466478313613453129822242917766243890915729336683889011769375830255818314946322695421104816062426416269110852265016541476057539015798988335415329608269723680140487667713429945229097160411821628464759660642443484704432827397480607950932754500659822431279119567830954811665533064998498004083162406512647819216188988434866455812934233162445874548688675208452641002976622878506946401440917061355823321150824592385599457028459328139839948019888478231149208571113116286224684581254085942222529208958445266357754736655776828057266606342788636886817352800636434547896779195662070635457619876983265704277721793207685963343151008553614887169685943255267845099174500146399400771759587245670943509766209847105826273158172591507786703987875089580264425440371064456457091635757464906491552304271197310203352644327378545004661743452694563678983575895338979363127834676795760368067438321192327299953278230350450031253130497670629246759380372206603354642928343665291572240216515130728434091104018202432730765585368034699506473893650354348403666570021726766618248234332218992589274196761382625495396446214134911818545588997586984761280455979801243569779833613570634798014299813307567472876311571953953318463481011774762716735153101264235796392633839121792644475696106157126399531086730913816051036799863059000564140918709165521604417266148599609005101551614824312934074686747093977080457964302334519448714549970996411745664292312914326096429110606750177917495864636282785698557200472977526136522379590011238495946267866593550990469629217615536928066500518993811935294403789827059434952096617728019690542330177884897368546626274187651386606942759319974667522421853818458885364959820417014941898020562618932070338954132802774007433324363255275527665978974115864043075403825795579133984816332392916447584982506988942428923461783266333826841514365454949007258075912486863922558132945836759089608469583334828455410996964695719701518383068962408908136533936530396445495714516175571516543537945940913705837431807203049547654253694529199346406169894984247399115250698884729761160337942201462998700672895693840656301991016354452678911811661315392236459014971928085563003248548486300381624889903181217713359684142934823291289470005566418940156448253402361440917032159620353622705996447030163406886243174331651472518438930353326271877389913872179621752553468560914836135990793592946745623723414080497193029739214786742136956891441089288237884525842616318950814536282261329521288114948606456454558533066488834364869286298510708707210090604162688141516005224015944564205247971303231239970735489140972241787530725218982464469771173145725155325291814455742059147688273009835916438349670309224222568782025861746659060367390697789682626043463314281259598946675633667645003168023190570369888326705810140197623173826416188445058315922700629683520309662023486952064819672029838606754810345602906397240961557079122572477109676798113136089719791659706548711256401493350924590547672137494958136232756249297119138864734683984314914454273165530439780195289181272126042990557103185311093660738888722516756803668447189144060949061526147181831922721254898808550415124664812723341700875594304598157374885287017495722035124666383387739213570906724935883295782968818944639231135760955164376682115561545813572834933058700338936685789993580957321161563089818189730540444721947922133562560579585350728640945274971929346945039646125475796925241993445291860682397079416682784063229310217866184704432539876492047759976762836516479055768417278131728111302404410387418087440275088194387932087075645531354878731405943535638105372008150699843854854490370601524162041216404527759346072746557578800783724978982450211750509248577306007936402296279573119625143723761193910188512823920610796619309769312650882890682785785147257643062568268448335604506462052872674673250644608556045724063098309119988461730644517489057005329974620610168503786757527162052812460659555566081779692982010918990499003391230450681068013959982254833782256541873111086263895629521249794012442451425645063788431047027548565300535939016174485277844796163850617172817406408650852973436838117961898769474985836264722590877673201377922911550290820828895466051650578467383274702080822045604446172648443184944102174548956596844345733186930140925446752073449145273678891124110507286045102869393331474973403641211830203157677803398747401304792682836532166078662129873125301036392940307164742266443723865196690374279693303287964448919353666649497396430886298416055621078292070608291405785719081929197811280268248950669949175030785481183297943710702253038884406488282424728045201515626280493260281789604209177321219141739875250249628106846779838199119590220021992442175337670970061702361879136530093682452438411858496839945111471643321677337198532752839531487924886625333024076262124345580816826750940765173423762662646330578726791506146238797365309235869552793638397838528396589680162828511810271526840734319081007665062303362511910684641043042781278903377159765262305244121880734331918711899423883063674110283170563604704310667926159191871706442284941130354100929046191692900576272336788541607628016443334996736374668523818305368667286416113450271589879703132516285291708112979379745636825762929789054710587177268380171222208214620527129599228932815580392877349924868957747029972472449025923510901648126128152943552088466617467993755619062719829604028464314902079480694166159767201904590754602906029927237589156399216881198679247042025562417868217049760318075047516999737243877619159349402186893614361527656833420556496095923612918405711851096836098295535246399571041532542890028977751016399223298557402586118994517474160460208928681750392353225452599474785291462720954143769109302576473145709253498188937249462751237876861222472945372852379299940817966886251943634560011126936398730976984369777258669793659124636076420292000008315725527919865604292128627719706882754654845756543890280633394310410782864468369711148852856724577573184931536435830084398470743913909308579532212113852476482242413009684595960517532780159931227127848500638478337510928303308533773270749208572377306436887027301717334774925042195369296956448264890832517183950034008266303695335365081661847220140207761352078771799126697803641674227931118195905028807859946728924173544468462896366036109356237284203492796610525290508363922919673498603161080310325464644029542483729199639651398407780332361056635775865888191344381640140064809271403835502905496809467679574230923131621203070403859657798713441401731134988575107898483070832893049481193001546879776713887639088130838034521722756747317253173842379353983459621121931443156441277193488934687659047258427797583323068683694333563453397369732086666176011479359966028336668292231200471632724070589011600069000748120155010730329369823314790168927664002385129557562828233022787182213064861920465264691289984291990214630389681279340338034690669923500989104010180743181691668607984660378941648851463586388557473597380959741101652652610667389443264177585239965954062117643838646483391120957376665462734495378512213915863441116207165945479309057611420235591207944185882050073383681272125507983234132188540136762160015582198384343823605209860890814891050333893673318811073464122896744373324751996121733840293233012394767678358678705219158480253195145393738124771838005000736791470795179455142795364803765020425355999346706356369447040685173147958319722187289732430007492084073229504366671742021440365502621129740857100902122204788318263558944072280011816943439941627303922639157032313150652864102137499452767081561044978615718350690166976722720667951402590890981168528649277921679456984176433302654224945787034236392104738438315260314436954165089079823178229360349463264834257932266268782303753022101001619385749352857775627832766288993493582919734466174668603821893923089917373257066504214466721497720737121458423985081081189123909013629305391421309767948216706393990297280997348653614574221748401023184340268617383642603160690054141456791922066647054698322125058465985687146334323142444816654687748171207825152529220176540440753002847417889788899979557626862204672092782717937967854365802804542882101987148880711109933395989492456690600140422220669921132764157604365345556922871307130154827333859477334990140256721884577781499964036455553661322576873996936252244685367179464529577261014224431380619413955682675722279166481101043473320506487093904138802028644977024771074780194010001283308500937639691307139095303751266922022923691452589601646720679628576651915057517186867685154626705901771952123123473073661629742313062133595668377876305947680443185820374178904008284284198280023605580243439688544348043766231301897259763153961132514633413050247997816020186781751233497825486531893951784059183321018768108454937179511032595194360645810849615656400835294751445167832205605660800215359767863854173180145480813055338623991638131718897582841483772027297076068088418126857759673411495968478934551316519152486172583837068640003389537103800278919376083727351246428366336345768964430578467964492948482612052574221266914157388463528031712340378257311598923214688415327885337344716545329813927845320270452613793890076353204148110228232296833186785876930213102842005078163710564783910262303050640336722262276247223568274011766338812691770147980311611567192471589164710841991993614374672404928847929970750938114924794351621403703811929863472726857160834120317056685885012019362644965858269244048361067448355539866213504325561894805717679040971356450177021224620934451261493635925488330261984099509908968256742256187702847846254411554526231413104908520549360064244226053038815929232035525343851198847963186959974233854439313249220837364074010097001706870545705157264286754240819320280234057815186186668095594878207212791938983820091274247022832046080536558698936021975439754762728238675886037910994472434871555775139167910745006202067981410991138633279991093731552994797756431513004068260773644897667541381640516923491473428663600388895467483199450246707425207598779761655456355265350423152063064122113625357069128338073030652130286917130013482052053300937442785092649248465639977015840825447919948815598027427288069285351973910374272479860451128285289987317336423156674282392353574275752401265669352705004507823933523138498922849677033763338089254225923893712498118138696461832683452037378735831474545418124482817952293899409958271694187681584664346443758157163300044577933556740745874299700121239025886335865772578639013986943838142096390887000055471060178259504218397507332797850786549898563020334271291827928536301451906456646885691054237509863095371586129001203802290330919842774685983691537085011270311412011368144968053957945502295889615981330111417788689614428804286511269016788657912305667649299354589771291262296735368689584734835909604527585087625672325049958560488613712141587565197087144283360069701085096579078577371283918038137718957546486438583890407561158764811833828375338060874487953232148625957017993382087036034762034439512467646977758983786775424628879426454906207155600111425874192837694014745155816641990937834833191377048525372728174309958720319356912214502448879473663106469949909545067909164997316629552096885438627895409744370399812578317483580894711911975895780085266057118870814487055157251808097441232503169531047581114853438727245065626644287607139571194739372918578747833302308322907161685147432480540947943143767405271181666322476363447439964675036506084983664806074722236263584667202661760906948129572283085910466321127852750654979817478510418370974680549628037992575137011960432094528845968974593958445452482303299201802272805191633331055092549273288245469768856279357579510197746640843160962913350326617150339447952317691877113458485862754627282272070929371099735348213386982751288394229724500360600996262575830448633809187104868952230309852135757856065069987215307329207889627061481723767123585206812156247082157651551697875999385001429598617118287769343058110229921461532650192630941127662891304416636619067195552888944055766075300698739284860955835514424498720592494832306625915398240315549644319269816098692069873400731583857116253950944886228121416064676799498046244421255270874849280794390566525710845502436987008053137637617052106650070670732739924986710390393592724697533796182985613516959422181547640070919063608702268179362219264077346075461232666095016458520281539393525975158074885309440825420172198441871573029330164443623364620370935082220419440574413221069149754905567372508142773184572470262195202265588666163797197384735011915390231112579952220710424520126376676545282967054233961676462352761003174293396694851071079462631992288446141972623004435242970047663794771077104910289744046633616388118063849249901712078303119324073500692323444410552033808149593987066377659685488102154726099145530466085575624435222355523263589653847795291084001861991572224500874992825715045963144325550600160515147513194363783878622452565554778321784826346064256720341526888870274696814522002176746343086277515061086666830684642785320688945176952260408194876085266847980856949723311692663538405832929659004114496797673037673233068050156508368277056765704140734601801963991434505561158113010385070216321450917645025149744473861964210968104319669855345699396318840450138519017400429386442971912182097885200085143319079781105070407289343708148641113361349761830283782027648563632572273965313970868631444028608666437939114787835552985475099406606524372996624376137642653177217505965603287907894593587556480364064548982679673553165489034667260147154224338728977059841097296994814866090187647293443736619870195120265883933834339555135973111036007920939684259803583968880006568230971570389604212206468397975758301626108323233040083356032086270906050391210081312612054760539333552127621267172450120094625228280445653876891729110445797585818061641293745215854334441546876180353426387109189871585275709843683695728046237283034916966046384700426034367001606043732879160874660727431733725234333154097106869305502747665526017097932414920854198412428188925651467751706255046217880534620150193000650188945903205790804766091622774494361603393502201751869397702012692531974435063317582144883927814497175484270749660076458240183468740411967370626482673582569928591602293570767369803722226399774507821883355629958738249902686133390447629844344578747603920433853124049843823075605597884900968540710108620431384614559720115063338261587156971748809318147910876592053029815714288762893744547616154368245453247849500708872220419125667577387495167443268217633215157886858568707428462142963632634124358004748967668276500718395553086994166111865827551261939173890095434288679373040444795389875550772450820587458747338005384922905228828953428272253180875587593545725146141047552194607086402336094536501945597439342343401908026790136136338607981766000435798638277274814767913535508194452443122982931144376770873112563850637175413773220283310277742155239318715981859792873347143589148477684535278096081358241695850629506468598231420057906244281294062672996995012055945512601496559212674816138639088276125322832432217661925170739732870811896490414586034408090202211149739681894503035641500873520329210490194397742145026694958547344156824001250496503180893556244297874570896036912413811773170361161563411571423224737626001359429971316389539488790551046979068505217443387836263606865289118867894640149012764178440951749487483725827956863152009730647307658677125595252651966788155906869924267245542246414156599572846392204479776742559699449907300000724162913546540970191100555437025342298391976448876770364446394838248224636844789698026371954628496536118698778585824480190698428702279239910508046224389894417740031067268571699236591589988967883084137314183513923945265854124720192455136486567565345604791585216391023510229881555557513599015942020896673371893306125992135850236158009115158794484535467561257303686536705594616840566736190537787528823181569044688115143161692658013604456929811987217201177960696441566933350057863027483352774981774492287055736331616266290928198204559916194073477976003100124376803712991295092058542176956949202829814448940839405326746270051117236173657416756728481082929632553571087741523594786919076615031677563348447457786003797594056915158298474962895870193147903215770063836123691494699248493911984347370001906068466909943474108880088033055056903416470489816346053762886508034005618321771020688969773310057881083028915399214785681554404848641539263419893106132218489327736267408531258085027388538764116113531789862295505114931026155557446657278217119606906965051140559899946790597152375881677450292615498292167896362243003888060541185071953964829198470501373998912363316360620908220707381342766057276130638545746979966804126356148514634959080475656603104776682404835093768775440496898625963685107067856463428980960164236610287236662928227287842962035486796218919307317546514072129685023388108644685213222609856970186830120337944694588984828611499016423092672607021696898836833964818257776089789363785946608142768086808903740005105306177578218937961244363706299985738017422842583536438619321944396727193794068984891452657821001134284292283532186696471382378357754337919885371537156826176377255941206115541841846984330563086073055865374960108896007029781321753150715199922682540653037388460482817541523522080883202808077706327157687904179112746906136170791086831985546358972634237613066611443314560277681710753127222914903143102722955801992587531239571609745435941679272151338989401462047725194708600564909020731037109316104605391906334919439450689466133767456706992220933800720792289192946810314325257850649458728998949239012764636944133510218594930482613124953315219850429565781660192665183061028123821066330159008928072740298258146432442294180149186593060584986654851560090392007468399108356357516724170750129673823531930837286712874985235127321869895669350290097830972134578232292908640589111992163855303500073666252203827032356372696393236390167828766848145673387716369338452012846462057276380863177222072173219924398554298488310587509528019799607413765034000389151584343507024356427200119176216543893796735028694982125304407318440988335313326541814467413490513231268939070937941598714835204275514009308086957660925587912575414097030111008214224114118955258024077451394084778568237958662610576318394127617884572778674385424911565865993931848586191306587434946672840363104127536963611186890939914996086220224094032701948719381497908916966647726531761290259240659944644711712145173935431876421519759124311099755483479846634730581442182828439090323617351978212957697232667886980579530111633863846420278904353117178326227464031803377818667989699706634927415075234510831147194715539895409267644143718175265084362639340781814599531818648795068075235028964449235603166396947330563422091341796954479831102369480436991687035816043345431359269722259968972576592962024409814937287255505040477522712779319320432800339498249831259106433000351837058583720957076857745844563788253649609190926213298893870561195566851576665755605266339233328632157440691927368778632443161312869553231730130260095765721642072706552456505411863771758408461286888088074098497390653629067976996625596350258035545488635667518522137604683391126822425207611923825181664604852762942343329218799076970371293697553664011996537468046829554648888460680363273987095778062402264110311330970254586713530947682382928385498750645291015139465477387196056260687111435735179883369938022411604548432653907286330692319668923456932103480106106047334698064652042992949954374411136417082113720253241981456604798262182532392647936350508447396272013813230277204586979936740347463656720395953516720094560098570498438635732714210003132266945484835242729756672028760205332785852619951257827781581371038388211294186547182087133130679684470712225173443612855720232434288680116328753780941356154743257833039890616417199102053848696405862629605399434500282411002859781594695216153241247932858304289804382941694489075127917719243250485720697973970631280152899706243061951224550352534432095266232273981418540535017764390085697474742771480453121485741376665334503852850589648530535235721254682391653396379719007092217857024942172183628292563670630398737393443161590091952337536765251470472811794544218773348642810811731259217872792616904908785101089164479406787286211729353667565838887275097590537542372988241521577238487274284244814013085857391027350860722819462229588949699403544858334756491073992504275493228583769466757224287560951056910052178673264853776131087486107282266652426937045043963839866559489042252460289513811483972193521185039297152482251557866660579068162686537624427157049707555208046824926154640110736507920632197390563013737882871516543885884149550813722856558737576853260377599337397359084723115306394852695933512793339331735667782230115478605732642010857559038979644892966075233890032015465578655654757435762789325217597270439755629478163788332785507542527861496466672377929070345528373266337238929467223042537537160770958516624055841056129666684627943790173766685665620299086898341231062813627739129413989271919340226500175635023486842415214109024127372346703504208099938956813411754987986052934377685211253056853347474022752110850660303842302448166351857322089356757037910210649369466409969735748092596216418020719590150843483208942131412508640802235095221032965111058759493481034638725896587808660842851929795471695180005077963730215277706554088710209712942406810340268564986291297864261412138726567677800511846961263277826459072973207607318800749424892287902682794869813031580474907681159599134519955940340931317796639006046139202579433014033981703500714156786131245698778054481053267394720010474710752149320077085523423606286078042603887670513459348303967001667349052908479670440751118965835989046167594412335899893902014304191009010915425994243926083032357763819046300445742315185281506197089529930621039203343302310342709912611120869580934589834940873440286865652200786793705427815580880993359375662418890792566804167067212702499546690621819220016573067328411444366493693672984123519525228013308087658832999778575776793283547760385943646341774112684000301182901200441137889595503044447539791637846889238058048107008714229580373923541369596582697432341026728493535783780252791720804140734322032041213717499006157772566637174555012411764802378859338240029304195169036014958629942358652149007782816708239206276443539461392901314417030819928057103965559195230320223792838992351239507414489313921621123658390312570783170112162473343092613827744940437269838378335926348418610338582326772823990604288657841108854135274355462328164059695319796477130006593496464020018594792230632121646375144746201562297862408363600465174389989704120388521621841088003272189182134254431354714136758945879572069859942957920660439938581602928029176851284331295519181967817873410346717988928827317182180608151162226848429310769313634371282515691548203493295733382743236203450152833279020878386041627716206198793167005837578387936570989735541798963509585532609670952679199400088721201986877430384802733827477996186639577685093360240606974989620718171547281525953738098870325135114407503842119960716714994080733412397494899530632989999233304969820370703671174051768272334765791019990952539754544377127267039088548492140218202629798812069233754497769640312510316992129652209449837287559907632190447141828335110111944433390940887955137026440778329302094686751443061757385667324744153264566049435036012391101597690342684112702009425089303038390205203728763516682675182629300649018551853690014848525495007074724902396062891466322208044199907301181363758245217891043220889219275806650999135839217562956444254252155646533512284008146185678191139107415333827646051149227152475848135122492714275344902064611725847141455380648090652066542425952921699711024297386289873572802181366062832255951404581764248531776270739056081556457086871494858307881232336284364698264689800630643583181799489681494165358554061744105157171539429247607386762224516735873015412807939958549336570004524277399898090417681513102780393963978700355885370171232553676266454358269046054017300464478479684360481804545243193966049119278477653946924946983557754186324071171693353146173774807885601310982455765550734673608307450938150944247242620826432215220564172887132842538442623091164601683713837321656430336203165383913787367114599521379995645526022737075659639388210687994472632315886509669272923150238404569439377645584731583247065358704370628212178026120920342354978158485502168300548821436823742624106992995390480348769259173639413376767705415680889518917676311028676005790928531339174786960623221744580528912536600723016806913450807343474853781888219827664410866207789618200885685691685915263385035364452681084659667432319799858270674733260209150070554222260852116038334902293602579433717414918963420560118264319209672882712430014559151483336692212263469586231936303130251539347549511969858501719515310665033284397368912003951408547843124272589192593215907309250940428243992503887019987164531598781591005973791712492325623312257677599281399271527292591613846145888848425942204354930212134000344396939524112094027329347708534260836328984371085056647803836578213741550500304230791776319358589150632961038508819231525195386117415937212946450298973254575590941649588124308733250352082013706511832680756917981445128809464204930559792432919377640574887692678023057156529482971813422826038367390533485081886788230379634678477895530722412839864735665526924174359724375500701504561300272642097534113151006429775292055463779596950948017895034988646868692704831582198452560002230819511993749928347759727872647197852072880149267714115501552445980415620378688909898098080248691234089422482249602556001115376568594223361130983729134337287670996640303457754444339798023861594095941550193783507098973371413668711944215368051680222318132161161350014838723471553004776815800439533605313223368947179096804354582667116750910400932083106870617628741648312599268024891505924883621602131976722055024488736882515148593192220402859474282261814165770175315856273800336116386511920794188536218379518182922442440893582507786448766965594661582798601808658943559375137371666375600502369398281710086869763745361778460345605964607414134322283385641448498801805127689167146559968504239380971520321465287989235263690007154082955774977785001107407100746732834354318577598318125696465939440962238749306680085654393972306885775617530346875518931696454778258608803716965463449865290632129092393901871430873936722644675558879019655221757607318395862610458746166927101309750047475733639173476985450982355195869779326348665391634174357162997433199058938403256044304436615505211257502112074146974181501686822330959791407093022302427145847029166730461304620250964962682619635219965878587826797165974345217489862910782768149848008041936087134665294204826076637320520301715207386470908400766167792822885773498308421786958841835573788561911424916261684908947426640859353033671708086372569615912465743944464201768565324919208484335230894753868030550372716645220384374858409900169677443860362008710014464000006404218467804179178074971803866509773819441245531995940827602633353306381610242778688038911393622127509577703469501599181045622434060520717764116269905072440302662838819385053883637108630654358619662720277186124674208530742682606280808860006491227949167736101621242563366161011929817571017925755039277540283704429596845716302059296373420977497372578805554265653396875078096094093613248285101574612588914349020407757975316394506688016415112162590981567303048872539935934957372593571660396368265455813147894584269159220982078004695579019795588681455378670688487613903577112300125191451203792449278232579451798558581189447022016071554237505725786492732554034370923842286623568195242419105307823092835757901949380850365403973129613092029919294233871125954032618328037987540072532536765570722607508394055833098648331355522133387841562614602480889600782431064072597453358466215536274691987525523253230145176933509370681726185980888686411075987591523730123076147321264114438901812177557227362150122466279287739491084716371051684589699819639639635454848844435598634936784655919245694406870965361911868610581637942842765489249932791141534774845845148296428398372379099507879713393593486849945997343389747126578134195233457788589619601862532546606400977939629713555624767305028360053643070546500000693276366562871400148808698637509844874228231509152843863417376861721450620964507179638632505206662769050904834463980556281714745765035630049780160764210076375194595750527894739439320790103950017818618786650018627475129772771804548162669785004893074306733992490239362048736990961737063561935115808343238447382645555712180789278108289260678567723557560081510904935508043338042744220514731996998906449792838370805600238535124067300719338803163131572304937835630580829370103587959644979402319860810830161855555045714528784280663063758710177036378913661032645618944307727617588183456409957393142364083390003178120918070034135930012034699255640393479975838326520488882746144414732807674755074465581878926584789627710600097344834515072379993650046066739074243323279857232506793879814600836905155941448456695738315393702984518392366992570641685693417517575002305853227770396830830398760085790990748634097806044925062632605212929857169797338538461239033365499907105642607953133196391497543432400103430292658361382804829529943930624201341736480050158856287476986849685823765592706631079715996520245855123154906715634217823043559150000147717696821602314574832289365196647772773406677299527084026578984345075476217065859145588642821574275662925971932781469699140422947189550301905070721268742439420556754048316005742511576708012502094164282983092314804676317400754016239318876074037894002264449708220723135286228360027058998346342623112514217290454746808000000873270008568994098350927735767151862025485688975100227534736054124865552292806482015445146921109021403779184469861724265098271832318616374889322238168455477363916616922379808935373744459789474170332861951805890011957271339197770426493209246774241439515376274639941240430981740517329521846584432057403356820156276617920155148777807109246721571074655815767343056405257052463434761011421338580382249185584292906559504988880008419151432877872263269466823409540100258891076148636665496978405903123529563999623985165021132499618992386563956791302383770928914842676308391773113635368146709141525495767166324181681417059117900267422205918549603187176810324336421191637965982900691345518012550807086724225432647092544977424987017571056733752758065123025504831122213192676136522755067983429688640848880443931596758506051091954429069221059613148987554796186305247985635414759201665676550417383870335035900381758496966306697482453945238198084500194151080166135838302575787369160309610466129883431277559459385933368345935871416487784530283519951614099447742955417978479667621357440870950609986241947293460612511737116844471523270571468362112721169758804209591432005079139735995178868575834422140443063469238930207023319690530787465689804790195281907479586715320438351311204344199142587471983408205712133842871402879404845941700399913077102758043436777659264984267808624745386130282843037055637769159114611649842938016831747339918487276406584990934343038641796041501529947858336742852118600801514418936477159946627590535549263767810179342540174796750904176526499302901177790112546914426387181302344259149007907755937864199140402290527137971696813842193706097907720982503187966352558485305410915812180495940464930068067658664047991605049038112973731160405459408737504716169422799507814822419623204591344687808527268810083610981065338629337635640601359858472042054023456578390937643501508737206941858614090681055368569045916940245029009825064735100816199149790231668853020728018714422717883247288742848707919937828498151896928317543969107017873089147523631386070994528295798981566165830656562851655697719978087706052270863540431195786439198282676919109024737476255017925640855961582079899208931767479271189446649627577749140532383454375562748811173978326091198909244806971641649067144550054876746826736642341746832637578690621061610182495482171693939174993241544383975574421276016647714882435041766957164503532001151006914808337908691931433321985451774287818187390975538070489073904541302136205766254369954821090637636697043672077825598170376629890544049568803844256857531020325296400614400341752774120156404846427997103587078910141640774468890949930494988478369535157435887950403708689681294481568069758926014562520373200375371115795928533501443702343704169968825161443273317568915124396650969083599844780347786624248372352589399681635190768773781045142486432911905296573526062767626950571590051514261433963539250995070628980523213387453487225654206804565541390681170373297003271427595999514595227871484082244349406070321706172145476258499730439243959736761344602045134895324754041686169006050850074399010843088765024533540270920325050581605882379862155260503075573100508363874968602319607155097195300881796338883856745005162992559094942355464240530429355799383402520527423609536395666075608888881040227714649577744982594248322005208299428535047595790032407442368436496015837337080153305588268980926411252444767970848905210316090177462372383894003742140872715730521990985019696811060158260850703109975068798628151089973329351134624087220370691860353596625435452261439175192102332703466982282021312170191974328069453325169461140849785966753197017321641990554174276267420287913951615248162251941503389565020036608019426659958157392909716686798470761936119079094138838751763678349582742775171051356089706841294104401339927873566994410782680579616742227193828547091600225804892777059165180248205070860269225135428550503226101575431498391876425475233412235185608319303021958405571757662043767308475517384143422020155288142627346842597510919638804801002377179137835146948300215128919718351033921926534376649880801511465960551394433380091088951846134758322287806234133919699048844855093036886628055048976575148378444587765989733615421619715671549503608919526992035872019850695869451151675054965984110471335592855909895775333116300375355782731450758207138416158960667739317681277138310805477977675238493948745661443683253858007858728781539659707188185908486102114197428165836533563809557090137621476179004414306425914956550849350803236292230511419886773442946767456015356582430727122277512180259627750678251784251957004949935019586724343700387883262718982552535664883178440287720485477730747102123208150121771860999879426733812371317114031097556295500147940456240296008244756548015427860163069743275689697514956880298464196784846110516961619043984539669475631236607160414772424259281233798340943841944484436749478181697415186696467711605055915666033732818867090837496288872981573275697737724998878012897745090792132029244781178662444987402136644433132635409250652594293914415021656716377293879705871657250875842992585543886651085559166208837533869054304150308802712241960960625773739332219781165488206613578396978692378968971335121939213682355616407245267648601917522288198778836845538882820080713585306037227469680542541488638630093701518621606567714083192334823605941137603010836887028856370300949479305318151258530660939557225573706356481071066614586349112387990905969326624741464302399313913568861840112149390900786125958633703195347563727113069599420667351126913290151040540289424052861267300794524976768890508703880181903995085738005936388554079183519135091289162231708580494600174291026991957080147873486593979831071428540529295126986456551028432597617837118778115440130373835849923676914381980440774027658667178759708202316376715010757164245004672400832443568469457196880478032213893411701836112955966894648633949985419193968531210619933911600386263876102806614179146563125526321168397993303022839894773314878889679948835424026677603954091981311779890511962346451156904995337598658788167725009604410831457616319268851857481740024319823293145498117972023042878982232173093041515191950847505813549639732281580630265858011424925154228509993846331932163778139894727576598387821616648982082572844018968440546799248958877553290976899804565563647423263502298681351487558350924905109748315055934824106143899049636644105955049466998484989829260804733099325353066557999302629733727021407163290707475896077662512602306164189231982234387890713051161206237976836680526286106099643949680782106774401212294681326914935191826752018489679612093026168309122864115337796450660156215741556671168491063546709809884675002303072023997308779346139854518730152480050259336456816705629919584720862423523912085171653457920219755286036742403191016977603425151916316235055209899643512075939638532403640691582828078473339587655838276116438578785105784786568366335270094216942117893679761306551244074117386525571642886427904752643936510309153926999588141719007024378835246059535943854527509446449183443309120467259995913110940934514946617314762912190350120784945374796097143659975690298595525803823311237421632052066110811402337866347878609605886658024317683198244333315615037503008104830804128026063945554943284527670732488630573485849597491154828702479672494530755763075019493267217817612259469285909860234410742373034678738169072392531686216561371057986120659804667211331769950849125262684265786983748359039610465746593442942377296575356013872757392798542387252150175086920366040824151911523857252337350900760576810871024525919750186045362490811692937389077573788217926495917752020032564209742442611168940845639072838443078370676396928875224582089294591227749142813272737344991190993246504191548024508398230964112780277459578878275500137975822996498879560116336035830812120292975386308924250256435706000153316295824018065245843610362335561563218636498387727015589614399661562456302985041981149733873610343348837493255440562200614073135049525495451945513510160508720196168976887834986724552075848248487635001977699507752331184276251521318027427050396696103123250699431336131159825337010086707640107561146184889652842029006943023469759626544605560601212603509719265112818514499338761827768302400124905935875372010956691720597219677492469227313273093704688717849957747145984342220227026357560372273710401130250739499145993960940521641744664410401280138480964764879616922341141909911612948756640293086700190158054544269926675451709307354177538913384584487470761264024441289425772539233338260987211770919870262614196056742943503249820797773627951567207289296544737642567861465673437217647689526971134100082247141629437091526793074679733342157466010530020434955255420425602827262117753646685319249873270893394791908868441104137367005842920822888390296269369898706984808048360490611919428424977395627145305472623337566663018858217625272238369276041928273921274014501360413395507346448843213100027495624824856235438015117054001771560928516493904446932148553153738781992703170035115200734026123149658663629489634093732807428696728919408621445549535176584721293346359132492901018520866895352051086267043234122888545710773336296502968434390538179799367034470653917027619386734223098546184684046622622208651711295930922419680969114681337929110390860602096210556892383210418597849222130807836960463674879737048213463390484993810406332501663183359655263348371813599467996397188110372858020759562732318398310513544057856802420012850679101193092819476694994821900624006138367486753257478995814104036790831357872036299394101343929343690809905020631981820811315017817976083632719348407897259200803868785805082470801585810931416865490556149119377897271143643600722663129171269149344073292806398349323797903465545524064138504464615365700349697036727608300588188915970937019095218624825002048478664249038081497219554885035893695021468910775503136228493922303278582948082376561856034314857880177716341167134373625005105114506695096613611113289351428610873061563918674908934714017662367828386665856156245583831597385187511279319968099201364412968587938032416972062566354348717995996778883313255585866328843199439526983765796839033341485539491313860738406822091405262252473665725074823572656475882803665984455268357038401837627691960439171203605862157037886258053001062170114917474712027719204713871769550432486300854365138176269005689869647179535112034491428069133652897768525839373057023251248796418879547621876648624137127488114458845841159107394720745503106919221729933278712074362515682818938979219606948344933467927422275448035894838099512774695994920425461533167854011756889404642931356944777625971714651430386831159338493260565153656320166386054494601548563579156226714395777195441607997815240367711629823064802991191424799307467314394102820140204518109832333551606087469877379884729962073632279312084195592902830482239148345275810166722242096532997501831534766528707757333363503217754288302490482470294619005807804604305771402861998127917553634796442309118122911200740834409261784900677252408129196684761517971507589092517775054112271911101738233139176982827994295376351155072367314970460525121329465994091654602006355394988441355962668216879420834198120674453509104230450022355638694786804835007944407393896430532621539775962738544203791537255389761532504034125049042933181749370093407194914473508120589606145323856056813477007108382940248203335562919447544893060471280169933007861154848115519738194679298885946515998726141246615320474386021646151064743792567673568792707875552469601824204918447023688855264837522723834617215760688280019792440377260933604878952490735206653117205853547866939188353946712616703944431086396374534810793024137992056147062349707170370919220938555364905275567010501258420674284815633842339201502992714779695432365628280899526770476883539951505227879400094146485787104094017262693298309500916203015268439875974775539347957989592312409197120273103185564510624334336690592549273189764436266081046159825800052508424397184538281038090483543419690405078033786989144482520059714424703574167576493752418846060702935166638289915560856536526827105529337613598468663390832312733177710973016931391561171443435138273670892178925436484459106215113041448817398693679755654900762816397868575972352329449460798613660963204862912968799613400953756305548238588938583925738073849399762629533099567847921995941057521139166907214179868648200907985533697460854892701745574452225379295108933289270546495508380047433716859102735063158970960113582142627962335675542604465579666093188287207944723099935560665414565756583167473331849615180227482033864117927162938881753072788134930753798704305951599738615943862161745938574951096110599194774339439138952780539365539898657896327702615760085624161907493906034442982190741493856481045456306100559551678946088550130683058668390922734333120065211408858423678024700042521383583899976129182303412866727844557468623046596755173978209782742380057248288695929376746991097489589779796430673434548892863175345924323070560529230678247004345508583806383022783543142160746886627522584686368507980131704191562323543881075946848646043354567399766186213678822320617302430641199432624662229262702862032646709942954482715804253217230573286438118724465514898130043412168403606373358225365358050962521138868005852104890401024157833940738547533654301904669209490556299248210512237340255368015685291893406381826921634093926147840036800535380586082736125849133792678491064769900254548916083400070161782851935932971967178659927122581508814146336079440364528585961037890083703394531945446368269967903817519676867467147549527270090694417807361776081045584189334982138791425349893464903402038429688619402063881475913004267456382152016423015266516362819035020813304000714362408633306156016084289004175243944570138373420799532889459675782459569846455317275981251348806438036660549283554562978887846057082547016801389637658668424262717093181704721918732096301792179430615821863787099783835641565844388397456717448552968652826731431897246852786741279425420041545470556024396089210408425987251115328447640691697508335647678279588869277169800777138242236698846394757152072382574387316977573338548190565322235850129075616275180674888051163642597626897844448664751146678559420556237292400369827404925754478545720141651215234949305188227159707204755375318978615634739740989188748835878976698055493857049009643829354365072197996237392932398196779092314193500290828109229230139278011766675509770084622531098888384520486755168677516566828132535207932507144139924394786009869107636933640312909307147920814171391023922855796922464754592660913288765276048358147527355869243617333678022819457450861160317109911008355488802064623407495566220236122723154896498237067707679350922311645721742194002104351634257152499205295598306132753336913630202900653603809823975573391642495974942884460056907179357610464149491512175149496239686190101094604358377619264788298548466193526389550597864204232135240887475681722012696767015837954504091205541523832843059198804428821485277472754726704304245310580335344834251684658270016535377199453243600389576276105581030925618901988327995490932871805369717557246602417370344867557277255957364621142383879274932861531426297526440334238189890478804799505322565679280431348025828877761776586828872719537671009575585291930265115049220263525988256999909137752911912702778660368976602919635342171997826870389129274961459518755283708336645388033622318818546811013525269883943984867345241240721007490870613919866716139417811419347969974310775997306522652304439044686105408055373117981776935500190132551133748178895836725243710730591258994026809831342373469632168531576350618244597478627685138081326360352879397383755755510985433261971218554997831791393802394357435756246465626861141795132944210218572471697223428264289886249253087424771739774622699639396741961216776411513458885815944139300162631166987008825066933132598552856255177891267428997285300812283371678883187045796222875391284119354508812605234040928569225977711313510351514114569196763682865838501126459087812663146831043993583628469210660748817598155861922716076669926074218481559431764290494204615590234020372195674751394750484668929453789359944466217058544925638672758034479554758352599260098692935394099526462342133029374653189250635105203625802179517618315817329287232123909554062851553653158039950264477560675753933470718189766232031207718018981676272566583048991329853935704005820441195119775547282836131552596882412451797045242869996062960297234096961014505694912789493978095705220341732106125420250769652831885158641828631714347797825771386093629708544011003246068316390794685043341772056493245200374079776757376764744457925849267296113279482663432098599820573599176564099691705179488192300006197950635455172422924401889124493871703867041392480422912125809163151343273278896400758524168890744760078658767464251077965200970376050300175633646707368032180597320893312966319872778372858459214976824654532312456634405351795582735818845634555443203827966662325708532485332420870702541283989405824937544296065037197390101166885409266916695447197772251129904278885183702849976910447045276313944276755613883640717677527933499008012796843482230177781462761257751366615561211832351490104941652174731634840104879118750657188237526705189710005178317402280867203288998672720789132481039738143878583947686670589171198010467111192744199842641381360920121394522694083243339683012106728686562716211263676460236880836160468168630317606464862836169772479401926664142069507485039444819371513031589966257702580788723765469033487375879523306021259947690617048013725145701413450629575384201242311860168572037304245920491118671361027675522951569978398409785014767466051734986024168828772880744005764232806989880376334146637648895349298154736642785808543837822582467749544760910039961945001701009712489557323351607670552684135176166404900191282350818749682268557646349857743372380992066671246716509233672976007272809908014737378700171330096795034727478491803642899492483543652456824109572133324514928474314339191272537875163699106069766660591382284727531882161129853724578928395796069477314052137578240880647282790342989836436203736068834015132209127627682786068001770224214748664388681192651182304168659874094780033569196818958959490133453897471865513792301460714393033426625017210157146312763382804987652037492913175308283665468495784660929855307300802973514430288057050865955159353035567489513816389821789036717022901644081247259395665478542724432781222973336577904949769017999327496572465236637556125263644492136875246615326593520703670129741504875302752785064673036308454789743637906413517312601465457414479805807060969659264757153337182942633710131878572346076450618709980739539160774631779219608373790587578679979623333955668180227530419668732973084830484742583651129278050686003488545765769069396826332896446771046401842368592301223527047758377260123920316024455064043032726082098979611617275116983551230171845722302253107554246168271768389911398195734646521607927114408470084587344970159705500891389859388970254672151899527858552589996448424065818044708011405388096969729190156954661573213681896096511105209351312680229167454091783147082175547418088541854998738536039172346089511692153093933404732325826747052140323268026220126600583518357676251324377421982757602627839786876305419900403850920908937995288440576628260083958184382657353208033334442791040334202922079045245555750087069770716666663614801300190756569992234078778581368397894793054239394804687243672114565063155267349171360359614108694803659522667263870848435072357062264235999420361325677131257030600837353614198768004751705471107437630218096823295202246214626867903701234111144271098247995244298779722659608178011205931834204914072819487997661181655178293468750058508895924433142556580603650240083457678342420632912897274584980186636229204264549640083018410949792686849880691797626678829495913586419600512167793105917517841848315291744803228478022516760698238399259381046817704894323341974068334347820416923986073459400249923479581582691573193572849518564783330237868385292040487539091024456983987550306684459437510144497144980521874289855364039219278935164440109631869351455196876867089782589100739560138272888331023576953617254031745933399941643838340129059732454002160959016921372021188195686508570851475328076300426576132678893933878152982289355211976038392360293923186675505988727824846024772901124580358617239341880260337501186978656277361110277940560463329767834558261188093623262684734263932661097937523751309570619499784836254508621354926352761028834865973731951710341215753300637638073045309111446728454568549040032752336493549843114846656373199750582990131970763625452944109851871397282036753235667103424033426021646173301975973613899774327037697644612069739649749304992038430928981110529650203200985238370609984050747049388629763837602163475406896818388706603895885825769496069265698132123557990529044827893129290752339311487866105577340879933385212921244272055021811954541072280155178019812065409000110057914277702175848467293043920209479783315142164874507645165766063911191735503807852005129954776205743944589176890351054999884638131449015658804975130785808371319562886255756645320106879860430571251960187977172132918703524146775972911465181573203126057956034565779707506252954123839345949055757716743240722936893071798650172098678006971674265142219079270120192364538362359486833922046621062614853669562783963680285463191577929614005141440829139360777676449314477155529375897260575959696712005784495228811995627832053365027774151663308057136729830090217732230925442627886966012438517040673696992472641033929333324836169183830904866739530977859898302947272271384900003715101785802347384621170428919571478236574747673771826668364115728980292767330668123452904852270734655917265029982285973258915947995717229940016063839381357217429275885584885425701440723528210930445180484391876243023338944405732010460672710986010203420923115747227701420109440657998699516387258416305494749874484528822638939140177007493832089509644225570156456660338821641260903457699000822931361466366819600602337111323993486091531927073140019513306444254066961013876593329501473913174146864754568571304966049233494031485993622795072236921423147640596537714229047193026274292064525874351907851080102986871416301426297775843533586144324474096565819985120865530649479998803180159827263765910589123547700211183963564983310280144551192459875225451950415499194647002464832735597585502906455365386875586832430248384622748402016517895661841248229105458049243979399609996431205008191144540006924652655754842406269042005666003530630551979295042450234053016194159104194590390869840324102343393399488321933501357017349266539662748574631723711232905795030312015335928270682939195315319039834064032881401584514649005044054445859830330436527177557620714289215985712058092079489373837724512146184504723204831802334652859971584298238457050622575357500142803901816580499450615573822819042084916592123582365195375473193941729949912656020249056163043472487714342764935769348793866012752726879472481250398476426831167342861587318283548067912972602939198926083776419034132331057004962136739201826997024892824776142570972546889844561699489165957885264445345534058241435555069203202724491391320342658963417148313136611084537987535128335061871267429858033955659950528025402317244233071533409785083641015077762848906207374914891346714337393546494137434737553554033577993874377647266409913276554699243925580086315615883565849351325783669532503548591399246889918991697727919155855267990788551178618638204393654992183397144135106836224438095702600344113526892512467156073883086346302708651024430581617865015769430048443066150602875154529475660447241013187432679267804365182591385018891489937981035150544713005870842078633678079858452046409908090779776590239117145519546133273278768453139435530117366219561086398956299476943788122926558702370999677922469182601941634690806500435604737747820093336473127094698320271002754032449471968966136028738909683369338761982132839520929485885730353743977447665369833537701905061301653360555699343355663124216883418247897578502098661495893705639615280418844628564714138531840033788122986025595114139275772605522543855651896119706391785498016820175880822728319208975172221771686416403340099425848138212987982798910289381982696684282536440438433950290362759465508448791917494650469409982554949768762159975956665230182582198785930206366058021322675151729441541011734593429353632887095282322743055825879706833212382881350068931176285005295626602804327333841226200284567842669187012925143912336507147541614651393826354312914584017398382764574019430275650703280594339515695889943862804665877206192945680147614894500308071863077962483366821505283274280256206606171111710762538097145927919067611281605919347277144504222703201411586423475609054684623044779978976506404575157630596665700427827019052478283223220606852684377811173023390698329719404265542567730688113870610536856335605714660319385468987296121104628490851578978236196235844463693098627515439401965704198610091756802299046884166762715642674088532956308482528136344356884974804482551814374269587271333865621916555096005187491024784901083976227558755180781701462150912410559447923902024074669776353875079226898926167642029141772695903554132202768027341579119778972444638086134010510013727432599741504278606146645523218812513277549625921402093381152853887988515226293577344817494116903826591659059682592863498187980817728575897769481479264376975009302689542760297178910161058391073943301635765624456614683056802051338869912606051036682760219372117346419124183911962462383138767875945811087278448628437116411480600284943592402044518264176301318614788735974807601086601686315863202829183618573744189659312680295033830361206221971510431389768657441334261883859804721559094440868887983897444599089670804865450404506044184297716238300350471219106423989543531671822588918791653102291078524824503855431636149155075459040398669664455973129129754212686977381591849390811647186650375684191230658984808524692972805052135795921301662718743161361858249802549552050547531178131145291706132071458936757250636670726769995088584522850156932505321396262870992427434712831457275936515444043823116501700547041234362276145535633661683858603423413540527923999977284173433345774783479992567530757608364095748542985411063605352613723964894024530045973089317457146634552457604314647179173894687088663187045855103090277172552484996285623960604458433336136677934381451884701607772346908998684931058282340397321246003561823454069588789574254796666039409825335853275132659250912131230608247380267286244119909971820963988130654593960278873038574909672315707748889975909044254759767915230208828322601369656898539601578188851725519138019544869310425764736999712256640699991997981143675792430860623023084746624110967803162000239518021283337997778228274703389121490158634386928468307184730839704549131216975338334278203579344331843939520521615168226911603104621376760408201340882397634950654182336930951832261907094909606907256473692982652889053749461548305488669825230106319283538216731258647202511061234161959723907667200029401802556218333537570799926606023060452914665909897907258937435641084117809156026298756816572751838423206118472332306660310666900430849895650563752874472608941190412815884372658417696236205045313760845173284168260521593891035130125954390864755110070688932818448093606401185208262139695286583808256939094881328941143135475623370867762674727428934084596085915222252436211667785476747819904860609294142899768230769460871169747927734188915421737348660126217613239931119565576760888685873233426315845870849325334216759167108225751735817780806336560547329902128051899788673758076328735864088221611460875658412551598998211419517188368554099313650153365785569198474381286071454503519140570551498707318332942446420731591377001189389509358472082279915664805834559771093722937500082394286126977457267812271693751492395377372976983517484560961898970549928098382525501103464684483681649979026125611577147580106096186899534258785564912072519152577513478483385342260204864383028469582171675070453155682383968607642856648326903696221005730797905978974597274784869815259694284809138448457438604831296180546888427807134722154302092892617385780775002642657704552945876968417290872004140839815195527728550776095580593168889771822329943863010431925356649255375723961883800170171913194817879618669576793341347481430555891720784247859810733853475327711077339357196704627666766446648113053209574273348874790833622394401523129260225246146904476367482864638627787667708147714228359998110605776005975783787459259259466572522664092820778682096021111509263249287444327725127504148196546476959857735408357556916269076821604403469900733742470948752941117855060260876073211677294357399203182490868654574786873320240101389409789881652424416481806010730457571879990371948768170271538282271588268427779436255649954223005201791548647371573484280415716897169106733918879377444152182122708808610968006209170946052013136692640907512240164929111602481591581586650850036765205787854264751576192408749028271363271155607086448965453250749223799119880059781621422796243870334353353398631876414592030629347222257410666217338001717138544107239368729009909769416895211885621340087562313837550214944175967938308901815497656107406370915601853074852974104566700233082926558371954675991244680392253941780158918003313735768954405043227168982598193171921794438450892106840918961610850681011853320128177670254307411929511125403021538325890156764833796079441547943356407483985201063570389076933404249640895979414586975301386442559735593938777085559100731018653557538335787658658327366862813954600071601165139690230866605198805525654481174685293696127582471296594911523485132094096609860364167532861352445757008210374022328048372570854260459514921024228485846673231410978892346691474356721144058277866365868933723625690291136735980952926143732785139043151114680989312073764834933893244187287189402633386179396169148976252985449373867279475921939144684044939743887541749730826457222871540157409637537677788931050366168551577399033552510289563348164580969724038704507112010352090257871845689887584116703353119326409840363502040290842027249228968669318540592873162234001038452712180757579606425789432150307432780870224013172280124808901361393762644433887306255452112303021361569903794630123716999943567267922244429409210325945034345499027073403375819673870715463694894495999785395932056096730407310190758311706382928267035298856076988206729719609895734029239847309713101674811422255039269366324874708224254026161975047404426792382833520912964682811466396050984558772795898155489851718212022811537609902826521752975846377951312024314696686196346554836443327985104742533351502815610918303577422081229562166529525359298197056872894026209191520017282303953009339290662957985154401612234409825873761931445165701005702969254848575953298202611631182571806030196504981612964399227656200826522904949296216834594928180976212034929940336222594705600844698962594891874451918592456362888985319692086931723110737470867627658916102736590216984423564291966169981747926775704861254501020625343162314394503095783939201649149176728261256941020186832887088336885293784110843087819447496454408695305150409172199116698331538500596183873301452090784749980397903170491716261008254403237430382622622042874902616198531949729822182031815713291951336163145760067592524003183383476801996649799803682788306581549097791802338886794577359720636144682275325675206446199452040573648165380913071810281167406501207168696445746471857864254833008812448357642885205866137439584932995206039296822060489338394082475435409688183940838466661842963743655190604137934242365673673486533049521340733305594812235080337020328762829531561841362272406575364467099636792454654118711079101775472303231138198954780239009085774167361693707968972283318728389595217802580689041924002975415383877382291559141640609574738700725613518172206393097625315252171872141390956780407898779687294187656147471092992247306731566194468840910934169534435540133333549773959142869733904642541644109688480207040267148630055590424921202221709039422010656613023875253104986799475801142153807930509722735685650222725956356779801676379601441244470320772298151154315795007542529693006423278302461202791354965997728968735904091851172924578038434738154252719150488760593716074951835477281719535400174033526919772728321886895845808130830812368549639530558694785055511212776075270325942134367542188235383408830640528882224914540074784284734497634295504624489433908009284904253904379104066622336729226954259774525915066895098333205386490400244257733143413129400073085720273534410987869291712981813897962180582558061766752819809121680415108881271142649819385148248539347075373536320103463673140037347000017124647560777061819488529436869034245956493038424103112356841300752346297800352347737222505505472215855183434736205844744588838895295363076662853151567960213966804101854163237241244498624815175236933471284350361768766282083799601534755833968164188131010369224966561020363280508919510053724092708699771329009922372844696918881071329021272382156403647229235194814784556336611617664696636508354681032774623975802258316135738085056087006984656968536975931159007418736065103720064899753270635279907038076919977724963812789400352844091865498204793082084260489122441833559084285252588568662368435589762226854523400573772031285105887992696633601455624593905331670286405759637340597886104572824219842207012082487555457073531583343069137112784321684419137702131756809273284116639287524966346053803827680215378522261263379226286129463443301532931389423035533631874257386666942595237768075119844212603336666832132025964018514921459019187989437571565343457157477130604312505357764666139159140830783206421321272677857332210007786996815242461732317828100915347590088968668261856404363107287391067272638882523797528030727870896696499104332000333486736728824569404044352172403697983831794683050896907186125284604879308434091266173072697015802620949252994318680891462606502398990876374069366444815889663564858706553852435389124149853709003831360117138088494506225516564644046991588852829584917571667129415804728587310316279603873045452322567997237520200145191921373480780294816756813854976255978066700895313537173716604441289068564296791208611003675592489881049331184155209043756105686639958268528073096442704599053973139100427606651472680104129828901791512702744958724273722610612452933433024012029928026394583088920481193980242177633644016426173530563315819642373873704920714743003149120760673219887712666526120171477510536817470186842219144105639071686558627653700283055175556589234544026944912948345988441286227443797459254559143548462344003776339439898806157633920585259687921246831396873665608673602332792996036919490044980832570913682650965525991237387375952776703119490900646571251549870377374357878033432455555819063481082023537058497907098931402523780019797191360701046178127625589568710415550475105334627525857045001156344214322311936922786405337682673578297675930486079607210211351056048775749584798269448726902193512005885763955752704955338631179027957383795287788308965378551919634246733931859994800113627648880008138909688160377474506695880089643794320971697068271079129844612784540311394279936813070162617972525375236136192685639566562636201675405533490925285342755068724800784835450290971258558352604871856814789681683929450785157088797814344706652048326967698550199487582197857117028217777916672935215311052830702203114282354780913831423332459054984111223111969617197609690586965971249532952586995761848805108084630167499943514281067834927701601133282462894316390722172156130783694952097389614571435673392366731259935115008710089454054566607002361457797983991653880400804253293066672551227269583902473413723073287147088950985822077018823649572440467201012406022241255201659378983930179734111763905524561917652354811538361091590052816547253627057790288581267326988729653793968075203247140875565759093005718324805119182544706571938206255544013152929279704070663770293527385655406091404324688159743360928813211798592057223537208723469947747805783152587608929608119272126937373881995817012589159900315916667080449462765321075668978028113728636131811353634760900897102717931536573661159426077743516723806059511117970017038047949198202561898914616914220048739929462205720019071563636025891547419788657383075402152060152259752425532716332150939074507854703826076270104896909035565191105859732640812227765441754247894896712216534719921485268288186386937772231836410042966905054429525045358350170972710174911711418413685091588930960918406334103448437161043227083801049000626154900216554083624101602292270997457172220215495625375547481419311886143194447752300190273173813154531489560027817665537548372545503882251960856629173172723239208485674084620263887635649736793744470963060090787709622406216303820039581141166792395331891064329657228909610727977831075712963075373440396859570135518682022721265523123812380757170196426255125624607076442384936539742198985930189164238219578911218601215183210922823237387912316201815323830804514959214932157464028455798944339652706113815933817468860283240914573646737151777977146004897131311316009747508318453774392973604885614283323734121562578190733985110412145781745016200560937504229574916892060336151982692116119777189334454130008751141710632794339884330003042404031204299070760847435124486714625611091610268143622825329696190479342949463832721957836683524602581141157776194282787505833194080925036584751432121133806461327792980218211926054673677722093263641780124812695571637990619055617704579545078567055874112478166611494379953836580250301091707581890022674323044438059142813771763957196735942128985725839938754310754668999673055665934308071260827955829659503131943790345473583388192247622477176247523245902461883723760804001667157251567621696218855862864114196134272850439603409535090694267734574830015633596107034083915466983717147175367597057919554742098754621134401854091055931663477336224195103900994719744765607091961202378339700261631696924820438815332924517806670375839438063204269750307760048459029409987258445326268881361894718013943333858301501934963423371737916353719556864870302202507291821676212107069728853793204659265456309771833731993639551527821411928356771643642130717554982916628231206309945885554406712805687223211304017829207033848449123946442507596051331949878110832386936429838997195569928208498369101181423857911083059959837125298723806826620132194146714039732495430491219507546308050387980573893029377380697040118597784930964444557312307944376986410278831006807023464857868591497475860182349781981485914830951224910187714409441888456407629720193586302834198782632925545613374668655068688436522584955660821280663864367063079698863212865296376018447028604654923553849221379539036284144680002484387429046106988589327676845448743060084169043149446978401623411989033296259736054780154507998992673177368564345506677556805055965811852722792671321194309887840013992092395231135025942455479036912221880371187907358727286188223899923353577883253948734461686940581794423313759341660461984189522474603482676143239766024660257758237146953773938664221437658022438242412955348160402214129158239477404816475431735893180794562762948415974682179566079311889344772373800379965821285485359436845247758577244813213396480830617395984074318005314001872308828438148864661065612624881056381654364634764111604300596311029591013614296916706794420356349972482555475885850230623930215067982144509076160305214073351742768195132318833430357396181085592966297883186412355043945011518247678790221692752106723678894591019879860831620893707039660180357540483587276960796954414373427079494519471160455863895578956745611911711941534904425100744453179985554572699866732398798302796426657233897711614596777595851569251470138027169707489188249582084330446137285886604587190649746895737432010325350324159526309515614119710037141510193595213530699818306683214037217267885587873363832933085864483769202509598603183877635906667107328378549178527050954331777371563872657503205587481585703318213594803884014585256083223430618045713031550331678308901972656874651500649269224432116813680150354228897783625294532719558568554951470849556991388351107337487516741036204470276028932555947964422841629486240718016810560682392602710629931839172453965955356895455438815311776358341677552997040387311211667624335599071025258479731299666256516823270171387632652517854479278814628477480780355638398538219786100707185314246031607943800407266935012709976406173276694718005824876203160490325127213123281819715009784298981731528627361692950497925963909867660204768583223284600137381779450851701112653554296256374397488695550603939716326391746229918357884755393278224161761586167096283251206326517233857908878662902122083810047262359880491421388556270109945767400871367802986152094697543921825747820348482698701170035282989593933858624080727541023075059011958646733264411485479117768999543654489058252639649524000858693226929956386604259559667269389655651328414508989357398879809902688213560300093930307952049515245382768188439354405605803708882943390073726314959760697410910795699212058525265857940745815529291607036261685823103053814760507946567513679487513080355043889735926974440827423608866198000571863145388633416773615612967695957868345525024333088560099071560355053118113881574331492547938227130565028022204497609018203506808933872801572639314742226357083443660154761022572437975003287904673246823870598208835401739228581351769621114056021922253225290466061144688175223807508972885196801938372814507691441238765875813698871084350923680704561924503656230340359264380066606759974795358242000037330937222171915665979282724358338386758079241914859012582263628797062521924481910126725953883399657277638509094711203706386550067799996983755570393184315545605526140326810342415569017011603261780873466909010199413775994554863300187633119176243173713744101877045417467295350593211448144712423795260156619974899523064529161703076151191745101260764883282522304987390538720283743434960093716386651444528225357457486509664831766659174139520783198018992315066535986121452050966613214910260168387876177183047909347766827142183931706503976420721192602747811299594850028478464016489736716222106421506794877914792467880600101933988364853746490593934805389490556441633602254717986098774189164950049623906463152290467906905021162110947820099774957949577896976347596957782234418298901909903197989576528026153118182175866813628128717937577636091000950374524990847030943761882212240088306944722510381441941135856461329997157207312684743808467694311658205387154406182201389947460680856508707460635295028375643451477109775525638879476037641916249549746172828783477964729360218429182376721431166217523839817904278283449087086056000972137922469589516222321812806337933529098537157708493472582973108497973557123090388273197022700683552980860393900674996469571800327594469514335146561078508941544512099211604853602755790685604025655945407667995656717207767129788868564049143411045020332136824098264976796576014128205503208082435078255318056158043456543158194957291643770427852342975982666838821595080672380018604544931202455799627440816818188191596706799907819706826906789198402153801159481041265635220380697084453954284687775581634803450103179497395637770438094390565626591222220358143532510648511716654114468945012987490832393549599959145359342641509364899929312685639003371988191562113831468456662541014772105765354911903070538509488459961662948503382064834830953640653919744357990508076593394540700376509002448375327341488523053492406315840087937374567548129700093506766315440536526969218660635655445260886981995199897420586092166594116862283490081703699512898945156323194610680171051024187056062094882157410248502670865679366293283715215556389653248142877962128278672891490967618428270057999253775099655470813504306823895765805597229370736604408686697714056611692031749428824754545037869149134960602033592276587591795620443000127191085244707843392246123561709468083445006654241489559003728199330928366180937983217320096624848671211163386843783293687739352189077603468705229148173981508259627637666795296624314375039616160036366430368862340958552819028982052875102708382802331713077304244589749383301793245109259624592104332319500761349099043310533400338011900648148877756206159704324643148727512677756920304176834450305793410260644608318654704617710125164702522011925295654468890877324031645263470001559981173295473495327214159871000705931908276433926376665804216665474842820049247964256941046283038824971437311100131335867151048412655490011378479308039428921041190389101019279412223281709913122065399403704856352745010091743084727811072281481947338657918390994334316001044846975383941261385605887434368381309009118561869627975246927115485526027139062718377938707200850609173980071691890288818450634968802973293920868160054459044139871982632839106629527170459239503475415826871212511311900155729032521683257044757605421002606001460988479452096435352177457465287777564288412745580747143790335228884359956261807737434061503008671379611213823357791481665273821474521498252798725431507889008979655683292308261235717133477524428388047682640971961579616748147364295043417490288619069962635800925449435021153134544457107126508316101613994070292451615815898581255377457914838978449426495242312467956911590162027445965719448331392606149631720046599599937061990873280352099438653468276030650846858008521665767251615107566901762365128446716461127154380021572201782461338541659192410488730873322560622359104848449816346155702177649215543932026076533857585761987191236894197344930393213648851127300174475418359320725677492166619496318063321788638760906158501505135834537994785627156967554506170454738105427785498210217972644181048192558536804813365635390428767208284306609054402142570706656909487123709955519109560889615999278897185858705474505430420757493029612494953849411705059055634323619679936075431002530085546378442823940813332612741712818726469572648697035257638031683876271146240710079227063302509555346870009042009517662132482013979130358752831038653844398402395535298168363917908938610861954741405042249795158709325272094830091358688280998303303015535712021796878368996789506406288854329451458172242579517084765881484297359597554840983878572090727869417056595109869021920291894895180218363788910776552479773765857840350868857866510104833269257894717433897769548100543986861058251783981971514658948625361539160504827483795649571977060482614388371031500203235051929384108548687517356920291043865936015184957976344816038628663668599292259745535399317471339323373516873596366121912219837882416022393238903034220533470231851427426216820921390449557706794840971841592532625914731507684312037090489443251443205959673933662643180318842793178695722087639696421557101282513460421507969423102201367448715215365606158660607443922054303425373509018990483422910889937090569010785247358313064666503139535010079040643173432910004769981517793736559230527819151586484517106757975391446908345528267108393907913371930352363036242205619179037249222369140376783685001815014366931408128875567974908355088297595410930245262577073796482961111201649838537946117517748795108153748239981862105984967566719337246999320462287802884740984290936814656125068090552068210957385316388967038401120999701656453489085875536133177937411586129583285633927951455627892212600771717393206745954329723935064718075741137054956826743196053925548911150455627055113786332020523374129567351179029729620041240271291856442767711312128900760862005695051024085968305118181582898335284159954819383020988386439295500308669676453726699382183491246306027962478502261977841776701991722446557174741085672390041760230586508870266948237396057410589695524916916329850020810485732457583504024884859111775541039377116537172077105121848994385075387399310555296587539880274513840537115158444623576059587324142897821853723598448905733999526529509567708813991458334778710638693199754032674979790701923518532439709878671660400113009210506297963234129127458213035896760483597329248700396574731451336115244368293843250949659544311276163358818807722123985456920149540360401757083655183891101629248313168768469145521636832862154591027282114369310111274099191617016432774723931706385067508769522196695322752624646996515411032553327651252003636304454781787404383739231868252462125389142484714603177342784028869749851963018408911338272653055580600561811388969743529912133001130630194297617458524343252317147426669219136043572453946028971410956555954416442555860378853649676749022040026349639665400860063062897964449321339888684686611931000619614479095776370797786935819522909590854070627710881209887565256098782467782399023922093829346094011407492960719558267033876907766319921088351690775772226369593261317839836457720861077048083834199901810865877702012209406333411978232472085575933442535018672101643287276087606428252874955206422108539912535163310786020293741058401132984849754502722174400233850194216840416503322553435512770382422534168909569149705082252367705968115105762117267426006004803343702963195834022482652993318576676912948484109686218071575230205049059404865351748281230374019227369822302955362709774429594176140462396897652401345223481356181260690692240286693777769295172197663531681351241900618796222550571854633427351424929779069239297127352786492617208683247025073479571170537117058409799709098313855996612439421748659837468361487061954333205377533721677629669652714336032665303550527843468243141626198321149498943698720517962314429416554193657508550451761553648285466240991357768738832478532417955343947991019135380629833648869127038923087694233677070896188794652551145152833557283086204508324479354999842296063060782437136776554390828734563806397832527406263012997692718049032423023379684081204506883604487401659436844245628781459124069241544060955518959714310287973652320508155284759940116198099963096836791810607102052933495414285097266651516568378211993075409291181796324835405386791259653743746234267062191676248025461334996694710153378301480262720559808126431017396676169047486488827082854643380380731629410070763459291864417003689306800676464712426543470977497999967504899587156898664276467467710651607821964135999187560393652541399532080082383314282826422031831212799346681138247134425246537745936111229812223724217820787652819710345764074505937655327392085399363302687296802235766585364672569718445178341608661954510015487078284669509881894349081280448888831176404126165205423424318727609318705086165530834094486778641333224247401850265985876655921693161643050029080749644040912376949486654580956088544885059461908925271576472882717917120056957531430399836471418352462808535337277315803757203288027586287866541222890283639747100188223865484693509860809396379937400511913993271186198110393749985145574730689763767624789493341560533125116636777742074373718631808655890311409363683320094232413685678792768605035365739603573456298969370918501372337108752264873175819611194452279039969409114698518683599025516461298631084255624343588567857809025412046016581873004614737170312934886757447425178491005666045484075340632526483224683804636642197309258185423035597717191525921700296582025242442994210627830170667525537994911156088352687632204200746303042226113437654622164623078795505823322348046366874987125906764878925798791126258753746261173504582785081208448529681296346386439088499348737104050783028829651050740090509875984466520795650483742893119873077118807435637897681776347552844752088811669971044196914677850326291822690792641761923349647197563595358801917475381988731950150426855694449706274080192085113266562075321659711800303007205479955334565673526576232505466259440443010245570085286153923088912259390036439080464406459707004701836121159289342324384168935226808298842319137980086840193575125354843782273687765814685071145231244312013459018562132331423738866335315456288771996636344961977763139469916573813335466030073097529673893555391513877408494407026658467478316759232290204618299122512649608955062721775789509467864004511664717939738444408312971214404669302940809359822132931120847819526730290088180563172409530739213621834967071324831743592429567715462581571594186074886372902453716766346546536888425138225657893811545964650377998324672947206759911885117020725185235331493265645763870895619879045443704494367573666281058715884102429269932764981674030929572763444441083046946618409169974957545081249381975837359055626004957558531390614028558085459432396777482942857683319188226787610129758438569064515260017185062541646357290970497867176277205575464055325264320134737046285425352747970436525586896025628135415289935507441212783655764956369972243480306733774430717461157987904061529829122656589723939612142313428427641736103295847836278798311417044966303107232763710144099665731846041217318541376523395327984302952692190693556616431882376605811899142209607378182398168162991156657312003108059960209270003945867702196179306599575716904407862620240145136057006560616533863895296843251238263006731812586896855311802664974640447115380890103662421450026767542279035598255191360870935985291383512388624461346380262504256871381926370184701194417881497402525461913321064305014646417204516143873568566923530762693066577933121686926513175164966482764991779619001132528337807581392856645668991883637655324054292326390223521700529013730210797528138478494607253240525376099648456743859283519140025955127654254651149379992957576757287056490627531729704967523120322172131014740154186676352816531111779094482832119358286988033739247024115303681611522106359249970045543122175554159322122202277829414385536183646265897037593484302496397981437498104304361539886010790314779878293793152118079890158769327880756880965686463310426327705145741416363272764119784197015824565289347778260108431435707384593579581348382987272947110704817019007512115170805959620697311390001649773847540866122043691580156703399958307016672286438128547293011705857036181349873139082811525274197037769055147234901230674964292335112480634907554928430313114315481713516631814235522027220038122042582701373111098447281588121145814299529675396710229080154425732641653313023819934063793799027164262129540400417549283695493422760839607475473132621121136540056557056029596336237009819459096092980698679750643989384977642367351216680598046780250365696838216160249007093557312872639165419075224071507038981987434163749043846627362968239077555318103786545504547158360613942235039354752038529276392018850110425441504002537848855203287495797108441984346036022282757090858935080903161188927699188906105275888891318537120241975013788078557135777911385735365221427106603536749059680574717003119534634383211665326970159775395096600223062784808091492383564582587503674157035506871061264258513431148301982048312712320523895287770773782696498838939152205888461201992921842332980313189700849744906732258869910149537261812869501013150842862109598324254080636944536785353209447752793861467094647558004077096387258779237261997992091094782546543603397896785866799056977521011288799547288532578351336863307212836310671424669762847722751709221692705713105660879669934757899834004062143687052303300354525826375765479499013452907074559811602932017329449924359853518126129273304773245857547588733434684413945619938374407684571802069959340317549409986660357984066108657649861603059119180738190978792462323372334259796922987244302525640090440888539441308619343954087641203038002974216834418818745428586035890680346238195418073279373709850978205858428816883026091333314662264059711141332991023560971905262986275193074207788380397307416234042011941768124534178728933451457130581120970923290961333322507201764293324361849634629241949201691943481697424426897333141894847893784201478857551807974042502215232621078346952107000953040652072862253895014731233550811350862295477838718626599339033266240778750836684468727209319657220757579947995771611255394666976644419977463651169853693932488086255053188321117012566637805194595276322600537254959748290898937085277400350923800599862173019436669610045896599893013140122981898668337640875768309543604121944501899064244647837476399409970043649963869291829647988740684257543730633846599030868641741956660009638672250294769853214955041933527252909036799225161879879920207462929447070886040861892600436340816015820981791715106511966563485350538920779499851366407060997893649428941724943567339496759493951402208545304930467948700264772813988964736662369253943335628935510577501945493479076958214376038418793875568005595005234788212062865616369883775471664278510191543272367935361129633028964076861489729599919597505823562774956172618901976344876275831953016405525502248558750345376996696585296112238202231344752081868550937477668115778457705495357145793372330936815776480479607191531691434395248753233372845859682328992453145216668938522344102938684194342278605228979409539842026264931607025441507265300636756125680362619890137069181599202552908778489764782993905257229336128316892408964144516641817144779451763139232089155981349593057279992454410902816758638206316530679155838429630735415583513026985936711070027536506975817024203388417126866360956168338411701770864790550365151579322278687141042796674057522885750322338257443529947233780981366678184883097352737762485407887222273034255622320708255299336037035898094528716020845134518031050665558340083010218457308347282154620101339500559616125322988507009068257684921575842886378160379516350762323107402487794807703545926794495954698450651765246937626318714583956196144866664565758600284769921703797821793326663086916740993720081392678050087007610243074518122786686764935187792968628925021122544906238556182391591095877418555151302258468189044704728769728507211510711560665460866373876771511853568813109769431514261389864429101747293446449576268460288246094288077707245272615924442095813397793352126484122140339391940275832103016269445566579111349049629338354219283177721261192435209825549866455461295815129667841334588604385488876452785708657557049148729039540461882568897555517970017462991401594123817612518511339686941263406662255638540636838391109648166901186780746375465609922055625800915408964107857945560775753650831384975526565243103210505592340756846698872271046471255099341202887506376941472127646650616847736475186266381672234668492298799638161342483807975590974044152546741642933170590516730511517891750610974385120926420151396574009057183493271506669076770159335702662352287657798365473622348055878915951663902224412328253533563459706389804915544927704721421017344134797585648293773831653440613828838995427725404684364996645509062780838499476870228638148531318864363804916947377172618431725215020961180058295303105534065805785123703168181978170139578937054789681419717141577230777239094711920869162298784588790524064716779222402340072895328031753652716008521864384010221110172372801415297174957373451389447641425869844960705196800320332688889415375859391378428593819883400643000405092711095196320112803383356817656474645791286416155818752623276070708713242452542544866375879349599131033457296204349085434366436281258042912819986335831071152690252322866709262020710399033386060184055152065250241525237367655602915782248113582577153863608519092083745359518614025673284163885965312647943015536564897377681333944407806423497888857922722791237942390315684798505499373892071064600461534861671831787704476190291068169949974986419453032974385503344132897674737954794563352119448267176151466971526182475605743287533413872231401268858275792196917275375647543306331445562349149609418335036325497937432739016284727229836157455845104280396023655860466319070261512969182491130639471260135482363916167996810709229756093284340257302701742484578898775692114474650404646104789655174037620408481017107942830106734384533204829925140370727487295511546381064879168721603311034300710892342882863162735431154783428321003432181274263054409914902807574152053566398620658941907761745238614323082594987509100372701422137947528869047598734821638403620060052733605562967099528962396452213300627756459994883132663282158707060641376294217496420183384908230279300612160570302500779765035854556079113302040988362833067970950657244476495122278457960238042363284453808540349919071791896763965603837765514273900978227712488403166725664506718199180651023212433895608262653648538988661382047764638928617182617930393707459615741163801774108349732470956313124398564055041257341157500019691241057600137775976717169924025252539654476011317778415055852110916756103859023486372669807673985044136198969850300458807661257088503570913727653090053359351010552406191383342416143534859013985365448189402027331965833742253385961379161705657279715108286415189792324115231353543825068144717240320105164816257157091074780406664020118515228630466033842132985951454619176971996166257162615184063156197149725817276895126310781022965707279923001869975793253179430991662948008579069586783693492428194097179134952324294259659628697983168699099513180082970138265402254442235650713969172458813726250849683024109973399161239486025986959414361419770187651753572483909787519022329033666229291074119793068470973254077729172427037173824442799683449196825339883276483309942995226488304279231728865972913281677754649949820743597752515015812921463774245021964513407683439822228364500151989592838463232925490950131026312111853285222356811413514354714490128730729254567792578715223226529455670706216512898400140493246247417569737175344842176870262168696902780278041880695765132504758574760210262192917756262125063696130493296528121447171822563396826878798256926534583865035949435119307208325267139681218819389218526491843276781279469629492139344658205783882747302248708866089006213164768310238278432236045661270261930340276224651289735400813650103400325793609209710101862220916553811127246338152935211286278370047374020600473795779247953471545860763550130980473958485717804994984777530098582079040158336773557930013168257874696354182960396390801616615961888977099557558707386496352522377012309469891165475955191617260851479131412385847373387555149436489462028570242253740511103998742977847116119954773448271037314366668405829734509138778196940433958227423402811521445920731997320086901569907161887490199119852207905364853394363354307282328494852363787208428662440556675055789771252197778180950505762703383046239332869105347594330352033083887712773875435496397026513082189164436317513246723882850171559639959820205683344776300386183078631398883783534731341319977107789175278731963573196974059924718508501097927233830352646886653516787855612469626665876671393913801335085061446415783178802017094197031957573409241136567819032709753915177954424575433620528511271539346746626653715634816612253104882323272894188240232422096693094206845962073512868130095129060331151191613061663718935791229039829288091105034868631540153182657154300445357527732374179093278649846935365506796996128453155395884620780126391502839802295195960053482275786731921873293294217377931201741424089389188737213225464658486861774437591688826286682709028773166488264940581190525039439057813223486312960413203060678500902473625164784745738777582027406756098628669952910086654191302159666267044475971518760388871109447302620808984701780519220475068489242558036858288730009805982502313322575351611753667010461660488111786357062087781291915338009847417802131921943575118455289827939883354646184791448468920282579949013323013410136409307685930145722128746713101366238333154598382584109597416568626796338537525330809935913203989631884161571353164736768700097923677643286973883661735435100708038722921248608326433329045527304445257799675791203456209459028137186317785599985793925631146210654355124769202199092711703180400680279852061059901814534426805734801610907154738754703016634159287845379218498934848071286580778686490207044671302682870931302143594131621948967302474372361871288730480212452771625396325666153574752611683155814884917164116682880827879543175626088174232506048692859669710036383902001029684159764296221395531463611770119854030771133344705611184854942944501575355980704138758498532879433306694916929193873281165022605133774086676920090393549567454013090553913481419003542738402496054926833113810577664742552509399194270476262662314298353365540747423782409198983420450049058562900647537115399975146450351709892667747331422689407278959665286549559088347703155017376792580207932482026046464986140830750094625915490711065620748229256212640372044450741769181262213413124084500611624236422178268574134793833612380421165657648454426963888374933812031178742333547657829289239916342690382468280332082925696835819571345944237137934729450558745960608781147744356737078525880522985258374930186953540340434114511743736450918963503198516888510142144008046279619334082851851010904001526516277921569778266047120282757091252526744395132166900927744537078765481886301922782582498742134452258907994928253837090144682773940093770028430161170652356312707073018660104098619754018050980791602603115167216550618259371613464807285732181181759075362560565361797996161206901158059498443904687354293663795526151645736664559768126713793474502641263636616030865332322105387731627900774782046217427826557156291148078730840514682392980291304114862454068560501311049306163764820646344498162016067801810634716179919671603798590212993570171000813885693682644526406664581485020043174360772621027230477648245710173523935285436313369155570473448718831478067528932908849154506825036187053856928324253210750710132613730773052132642421487114377337771772654254131922860166511614435528540773908268489846820612475518914364507610107823003455849374029491944384029863699057426504313225187860306026282602841698397060203865337770650739531652764464410812497617003773737128459745645189489334942288347258962852085808396504317379007675615333489081353218815151948522007066803100900449138631900864931813962537797794739990971245434202762655085403774837040494170539573886048713609494050554401327104037036000110380401905462666557228383352702762026495111998668160760589842927747329030292183973573629467172448460758411890935148968927939110969502281008799884466384455187303973414699773973110306313966981718658518814117756252163642171153769696285672136874473600062108400712714259366894430720492898573448762987060822282778409009791811665910009579269682684431579620151545808187204522799195472064922600092349974245409771590851725600660354400863950014577115555773618769853660093366675870460227578298275807564622340701061320728945585090728649370636988064462336472837338142291397187123710492391762404935672783521667175229560660287794050986067395903055859879894311247955480432813498703041033161102874780149231420170458268660867073841457195219350958865402892209497467617659636677375848325483270107302848639327679671976021749952741714401247835028931786712128939704040830286374233699114969312547224807763782914206784306265468262630532629287038416270962184411556154839087179013612396997957781980114259650705604184473395581689863027410507726595934739694577439016102850127185746811173779150404985875619020480816503942832074500983919979270257752208825847079241994623777210294000421742619550169511551298156975731491126217117024727167669107016133297183836814815959159800405319680611133293687336412943095181788536395733233958684836509069901742363013359300463428025369205485036175961801605116294608082976805965806612622291611896529918831718245593358880205632641512704720898998861522541626866771986005426045158532104983839551403051959446797820925393177379312377526247948964769896482862573657791735561141588103579890522797576876587784863299428527323859347817717886392026208012191864950485920094035400966785198088240029675193657585592407005073321537483558395334711249368697901935723574838074081359656966101760225372710745757320890750662727030652041681045836918684435426509925000922785914686702412157504314940416160406425371616984624075596596050560440694002303051551024844187599037213322151575271812830969669002962296862850164427115295054085472624605761597629034056336236879464538191191806167926787924572796727702336163842218630281727775551184916743747476574463286726878573355275242882557514312253740759065165875031375801359440611277370775263713861259743866989933575004923890271335815828464432808003418155488147190325833439617666306755395757072202843701873592840110624855629344663990112758357692403380579357097334206881892531052967579225135165139035630401328067098689662196473281172970595241194783507440327228356215981776432053677857233770669071734289622009157331170592590336602214062738768830356149427115078912814057299958349481413616633135142415304156184769575020581871650541043664922019930191255989676756138762743469740395354443976175459457306684672225308824065725073727430262031794775190334288068209738989388370385902873313737913775703907476215574144408777414325208442273495970468300305868415505278739457252419122894613703938062029810641306675999420939786255287341056767955210460689775052738123819400363484083101681141173803513140517983063938269051512016143492512577681302456448506691132397836483660585410434748834337651403497672389240633604642149856189098162433066814456760475271404872465759329100626738135890749003114858677466543308716311740751986934419567018209681385409495490810837333267147977034911153656355238710788029349564273731910070951232754914834661483976906124720652974510279866113227616548602619636443822682906758822102437897044831449681640442541421007960023098749372114128835974216334895262112344270306122327324243520862528466971581497339348189840107538159202217756914009769172764221274481037575099952750037434371573315717370580386805442406726710244706184568079621234685926276011700908666154619791278789494111678750132079718899620515077335655874877077086616723399599291254629174889014400612202959837199255412763952810117232459890318736322422847099492780042470432295863428598096529747489674506792227154031244080296235612338663396974163987424235260845446704102678946739875340134722638521273340647116432015470559812874992080909769270342309409356028856988032244456482518140753761352285899836636719100750242036286169646260904728666488209161262914850942784557001321653459480692530856176530424776559918196519274074062218565812629543422863341514559511116806946147014661667391793170682507737431633780769903653793469964928239114789887452718813141988045254257508325909846740797447868551024204175429636314392742485741591077552462882743132757470178706533730376790542612471946244132112958338086471085433107939802490949190034560318094319700816816405099706615027051943676551904070527357159147558626130868858668304819267732913342308836626350408539634370962463303431770859211426170977551722116499322259418335471197371849294683855363723912765454254050106690049109335871578889155356832099928607064548779811613946350426382332011679379134552186188044458126540638405751890100131601084372896510916169378380517853352920110966076889152896618349916688601926693601535793911163523239550933804868165740841867494082789908776780894495645908346536350617515105253728773758711663361159086978646932307001119587229270604433141261300918819163011051033809404188567476565408956179720681738104704172431698247153202268690256546503373654551626814503893317999945546616271551692416226306556731801909861859614818392333025616992469829769843819747094318518274237000076911708819422232511376022795686759222976631018027911066001561384539475679126469280851971550893832155217313765302731524381089736803137099935991186125325910867621188103943619866611857744637079499562225118869402405681000105346644458920204439300484290027814380377899470639868425546572344289852182253156391726808500787764256427973576278306786641819020459035614663227243089190173982652751987105741020491313739532365260707599304867130371788730849187970233038962867497157180319191724147997469520145444983636166867409881677907569393267834613588443577750602386440981343787296981881703292788715332161184655071021721870177706956637558580038056100755482200092141097526702268653995368827684473245706906157347049683310617100374785232078873055077978305641269396882261593282965864466154347493227556400403871124024446407274377978372904440911249390464802092124416162161774394565649018961294532987064008978186097142658221039392821218143579663826761753882489764180763048159715629758186966045932447458823989281186942964040035395123045076578922659492835288856380069043095352260234689100896836421553297745192562367168300599085829589676236269180680509950794452560253092834799158098279832608298215610826567565776094688193705485784312276026354183959176933937658380898032280210296559568870658359120037116879669321541532170126416945713144304005734677518407223082898548234764013390085814655516764200753350905806150987221886383601649832959041013606240031046127033301015850849466397438623424838248528346211822942017434050164426269697305301617906690641753527493309733184501918247981503233991534150267947924795019558669323215339288119178803106451291234950191441037901019479532759883625387684652630876721047386262007134024690721936937306505448972432611916103647159200533619294289530691551011361515366921606020643596044926089975992598747734734618726983963134646691225015133318993349491439277411144347629211505129400540174272639588378657051531412874479951137229442302562746329061084981281419492302430041982011012036120321514193655293274135194971982886039832425823452404624967400508534468604116459687636867957898434965689343032223619066052306359423034736361383830509354274982690406513817315062704242877352489065159897906430129920374853825746401244405748741934338196389612727830464770467758542927929376474655532498842494513292573456470594210621941797966965478785339619109503545854311020058042320843449724997317236269388712489699638947102542723203638527056395648414257511965593121532150706519498147686661838642434462849894899954082125818824638393540434719714435594619804751072658360048219595708635070129280366208407211094784625790165528504427672933083667879778381333047699726041214535984089567871549564674578744439056923844608954171861676119673397627507527259359407404917093911522980265989218066498409356790748416656952792357097598531474016917350209117555621681558113375524940861431379540395668137514067933754772742281685110713516326163088899665888125496467603187140303834254834659291429768362512299539894939106554633161364956472072090369447012644681386999437322265887445324773606866448693606099716213377034046646597952657924519026926493775898818204672078944539088548864688664352475920974537454079664325623162487274225368946935798989013049072814970352432696382984109692477233600849830609930802871902457224836867334758567257263157043105123189764698363223429946099163614645832303162925860789771884962454498443462955064090992641839762090743986644340423366625079174363309552459186480888929957110396931960884706120884907089011188814416415723487021477134951302254112051760079063367167970497674244981284523008535434207819183936157714328317239204798082766174155984481849832908189717727619367015874462230813899166778474965415670130256089492453014298022152770412731453345198241283461328785377660180698646686719525353336283489717150968617007884236886141342407508404752546269134721317082443896205579480338487798893221014591325991394398077247997153223353557903828540618645826813727737407048177411893809972645187035407462578864400643308696639850059428889998115312433617264948062383052932266413108296270059114451157246271826471570120884119230737770243047940577481460911284885142962549725137632264058609387000767566706822709128912862007593120702230509973109192679218500702700620381979222740702091380214360108548956524416117577355609543245945901487932211209424728512866917532476224464528148145090580384804129299825506148361465090702801038278279188058138318521282342330401755407047915612093271283972548023903689096051393610033477923044104408101509398235017221526996648819983197881625020882239359403844064811125668488113677806793774799866464229320895657844503319985983400728989595891627732078324155290985547365394519539809630261232841338541283071279270081901625957476344247090659570128716975959326517564527023000125921200713878044867166145158991824464248451333852817941316315418083189705315206477554725337320069408851948299324988628502948596588461111784395377271608560466594338259596768873441822140916553189297821758806968560191928096555352228664020446712374645459930728065932963499678544770555739121884199124395330390746727618638765767683675774874107887917076454691039322237716751539758531332850030194927466822443666150228339666166560209498595044435062533944555079452200515561258029183217542332716074108078894201576105614518289463362251618960486797326718736842056479166667036618133570627947932621804334896510427594262850589051051032186192197451132728565192096904321812470673865166608943252403857097679944324292947849789638191706042196958064493663485212109893927167903089468141633723263535679759425806566075297017008459450196213345985659781010484526547651749782639909283469369948383208161110607619479613531084654609347194167760256029740248488919662124506026519709244969443085736897028579133951675471531508829359965877127844803624240096341441037340618515570346125041626303617602435002366755466098900653924270210866298961447297823441887027759375320069184812519623019666122689508006273192879139960163048380322843508385418988708437132126003657650289325231052874393072370907943203922352805488868906820016597286595462566874948350995086138491522970434405116818982198699931053021593838124268845370563973361703651681145185396779430067828416874215873333515788250441844693530964167729023703092462285845869840629409593744595200054464081130839919022137863275711178206289509169965710358454078875716320542192715235406175624192553808012429657364942006434711835629063716315279033735217694303748506003581996093850896263328632704987423323100047256044671830259702822916787005855947508893072215699611084059286655181704418461948413932431320901634491881951759694832350977577559980519769113540952724796265698817255749765953164952588697293227790104803244133684532616310315126928202545454636073001910524780205907881752023098585059570662595564356704500469677649391045263317645057940907726057802332227385970957687071950914858359887735988959079189991151785250954139090564593264712566854571413264362391818093093852589464029375394433880674304319166585730918789206951527870836810912061433581794352892188153640009189435200813917641082006253172072423755360501336857016644844656087385058223615508939508940904578258615022401211198498043064737743983595006050434246843746481384372797825309482217499751074645564742713004865518930868006639210247892053914575241980443474503262638296823084833448388703602739034603822758422874493515879129725466475243642870561752430674036344513127147310376931936476479478416954708704745807596067056784497441852994952888891288945772807632025315778532833339762027148178005460955142811563107171219326923089443568356561796137210400987250996457051771499890989969248518470574712650564064250776618055456469496980441970277633631200000374005465023426854308277802965833691030864582387086739074335207505184752495829265328950662704314581245745048369239962065078863618813281962497087258488081147762081270816372045999143252342873584949718288095592123022939888583232848032168057753536275930979516204172095926964747443613540154761956768376038423505757555605803804098600579223512947819251094016824088268773921016939655147498915931296398283175049573454592771031866992516129584634554440183732960471386582973155383079058891001682643376352172583710040196331738417963992847993775428131983330163400050836625410277608834352750813233783335836048419356738185176719334360344093455602967048891088665194327260328156836214633558147900984066314646286624356102931748983903395833099735049711704443712665707555533925577148758119854965618754454982593776967300947282343191619381476263328014064516524681422653118270401207110266452970916177446577854154595674486858449325113430649042146063763317618076226593827809294555330168332637830823206415230594457165008947385109167938092337888785321176511464908119657894012847080879747747158298207727766255043091392651793385777456280040880837793544104580775061180765707441061275422126096656442799060134568274157661326210732361988477851446865288607720619229520419057499884070400325704811468491962106822209810174606679936504218671365603882159930846412116842651034420338845304859854604810894753534291558411798865297782320126329668407153666474870468739736858780671464972837320390349658530589412906168183502227425037089950804215109801677212199633906660616146056240897226540428095618628004094914760129147277434887444772721457878679837290651323777875440714613168856102746267773425946298432133486981245561283431449710249752019296270170321619007788282163731924780986965762444510075304772078503732659474057552222330015034725570692362375657503662358107403024089610731711011503752767009430496499281772245865266920390495844122361544542157785065125999333647381276904141544352506684501670967011447247875260068971176884212423669824951719075796616799304703958669610383525935626424365017983247366286512275491241025246716243758858616077982409793440983487077515807345556254617389074580903165046652143148704791731546605370045317952334235094738705562521849201231505187400693252404537130421754849331000886943150364372939372882349261126985330273766650495288792021409994860240220273304718229133243736895549101376363284275058190101014042674463225298432331680396872603727764890296476167073280087711350705553026606187585890262499299387582224702497197303738856671424824163734667525788793232942833070881981629465032688349810493503267718867674783512193398018284919399488392828837802922803469943025237706344557247586158197604680555326323810743862996251562390108230563856248409427028236742492462932563709412257286512510176443644806870168696404826004488286207150536540226085881401379221499821868578096800475795032585777410209604054682277894022279032571497664014725043507003760268830277628178433812015901989774895011998067266462505504845397775876650014691668876593346061805241859777525522823755533919960520048447916629276975400969145578539937831015561804905837934476167603656835936479387924888995764234224376336723356899727130062925361383856183253683790045237359441051522034459095511881193828217327619784820577874948073940323296616168740263219072038674619160898820005183143953348506391590627131400469660079964472009758714550944862510869347662547288976580046869781239559851479345162203439210156096239756274988649797262524836523789217168575611091719863585900047391215542499131221110460638902797943987811183377472186143412599632599175180774506447740527597863366938266679816907227158737497700020575350716465879068381683457869265362578537578998711074955754215180562800771824098293016819727747655975170328591019592546843263317444431141603321077146836735366162549088258300599541736659962099488854314467959758927860985134655031959022604253152181417483833850113253678028420681402253040456312579856825959541383417324075005903045654556418928380839328938281681528854981502597136099814194428937285851959772531628099350707189605604502123259708748773984893387566176193469004328096324889670096624934129282428987566896004669072893093608614047988594974807381407423003049711941250419997436186655126583198191055820493973783209773016390126946397772573665965209880320153415799839398856278175282836246578973019682144442815215049859182934844206223026095951699896220332215962370334539694068927786661936708778573031597469851071896717233810037771510465139275912015002534652418082956821894045608941528094156829949776493577999688024375460749756500939378455843456982897149040691558335315792094570086180278147199382730358045288850706178791686487247374923029620016687802375038319540670105771540023136348960180640396310220562613640703203600966738044743850838817349618383726962823482216102221690144805070101602424597901635910491827928484930854104388369790341362813574605404426758784428018197295432941263354208572073049280802288847775274281819899251152092066991666488898693951295474195099277827880328260035288708766421482021979014903560073006952034598531180844314550787726996079176539418699296429496019744521498718238496644190209261329898265829623954203487160244118976235121652296599039882130498038804008431693132419852042404729052318174020325860239150523291951017844159387589225126388376978728524084195921571813098302428917137248206152599056541603862570610287057486659261621099034917396290897498925050469229590133179560269169664725364270173040600565034705689294145169339230091130293739310273547394976664861746948894378988033072137018347624209265579351762389728235122359671097991946379370358123826158808691126415319826330373651303719959203790352183064417899553842877693170416796380038901642101824687361319327978384530447736905359233749439410051377693042775601769294084290835867347852256903110177036034405217447878737344150872921365921112070292343872335189284244893789952129654574176108528714916174047334683425050654267251171695737301034441837177201442795195627746923921601443429607663282603330629723025706290387092290775149721021987885094449672454018496593425993457956959979327178725313185089289489517948113282477080729582497365109883901991709667083818429119860100137211383617733471482606770737615281369126458705002957842294735769081484707318672796522490361706622360183525774133682286939966159750227310362672291387204712075612809519676258331506380668141265943175680363537953568095267961360637646254279570012911593256467171305284374949142393847646466701318523962469134192163187258520403960150439371917574830848688576609080019839885444625758410542726876632577163410842716298846331196959945098355966229345700552239396979925590067220502186690343692089763719101952502410315613625637664797204314211099868020210957785363301691648895324039170751309352589499195080137819940595918948930505164450736202860539660526391063269857064946162141317154752736186957685063103537657386104469700990274961226825229715223568754880785524171446681541160369162171452012839652551763547202408078607075610491085220250504869240431061009544036263486286385382047514098253235362952173032434924958636287311015002056676963978886295964885763526944349561637105938935203918785687812237031032647421099559474911397600285953241878105834948278883484324582304480966079180663696643647701000077633573454742549458821445436752981009107629277970203637047757072803077775150660640833952610095002988773740576887108130945497256292875969631980990716772715413295292262647014531699442323640350307107231954690828195635225158569380833406698380738645972782445876632378316356865711478645143617699729876696520365461441552425065186091464412303422760525499788147690482917479526295600397994184303088769898023808573224076783623764552484348022990374068929156609256886906102091724272476910470455932797000691726494873127981840677178901247257146057202037337052213903990737691725659730201727332251105810187068544539259843333077287760497060654021138266956559991767419474237157382930671470868713996014581607498646202005044951172887309712741589243927495249117099096367461569327343588218460018388738326047714103672477185899345246317470561051572995409292063499706970345861806910098711267537768892442733923135373384497990662647664967795890537094983102730457757526914019136586061878470273677219108857418149154965457265479811645614473686856038002673910630541977810820561826728182166310039736919811689448500091293789380386738221463419356861118118165640478974666066944212199329489137707054015912624761322158335961598362160805776804766900707409113733082458755995697356316608143155951489366474550892033867687378184868587863299388748543865853733439890703771396015166284404664664699511163183557074046802289285471627719064706151787970184776169979052224897649013694945400472954887788097076520622492654690111432463185552906152518029270819201664019195336268168868001040349288980278952858729969248669824152992551669548797530815104020326221765254345233428365262285688602663555726181488377390123869735111708295573129248735768009803085184444491726359432601033429767951116710800900494290546230634441703616787439339249522625291574370252985478650105100912037823169231223932525336477569248663908233916750311706724838267214493993822596586723950384159548792108255676181273354922613307641609558372688368118588133781071985022721287832658797851037596239265390102099040699667886413628063462721793917758669233025978413939684243153981552363136973904433860957203435175912084775647393869821773877998334043347342389457831082079108282477803401100903605417532828310558602360002655419932808111996559031636521734383491899695414631014638063736324131757224933429883746119980266275113312246987942554015731149099061488152038386205669891129967476559422966616857949178386506070898733748019233428360828242372896970902354938791527491945350459560856187906755907737082224084084312583298601000668259748243813242963423875941729309085365491399243167662818803968906521881119828507364149494017891923167289695251512048720809080425235788764375520813103299467194300856266237528179036430766590172093802645316328724933627201084475721876186915682718006135104079948831000103657086381109075223474048719428701754577746199164545806545336506529328491471113592839487721006748268866442240005299586354543266880177800051217565475829265989355757535900394753659659161353642459578369008104612274511410727879322606443601555481562262183923139204472565245639191617314080508048499912678909344650834655171266362366383272439191711552581352862646720987804532743140331720869591337278746709413964140070330013180912073394177097204439270365088954658935091158062149660181750196832557826577873263068975298215391422498487691407574633167348721752973516737479476640602464287959762699507952290871396881148204104606626003521120866032275401387797955667258958318013369469366793294712538359199416509003521710153269553669455477042724184918031131746176240437583824786880444059028051239951052011952283921990473830892590607898622957103606404911507596505256399039569312015239795900531449101013882732260426510183623992721847104651652467597123276922289813126731453490768729426101089595376612624005131483144676863518109461433377969485862035638560822574070960074429298493895579037161749020249094574471778537899290724304094100024385262746342345429992172009196079034549209521744794376829830025829500608523046673148213998177360188630718607911101264964979109706250666054273241431115764338641126365276433953899762500192168723130600845532768259623906596584194136049460941968911286090296478430114914747742794887954095068730449182242764290316378322705627217389127623671556719749644142291843252470743915944622996211928671171024617538629026115025966191497302842036473559763882863364172734819033450603714561104727110394639016993223081977986179984332089965181079591882247540938212613407910193822243845866642703169098579083114613421357785893333314825028508478829577635693716288774571711347225017431977945206416251254008466625651702087912649751007753321444396882761292599852566300017514795298374194157208453368096551250245650310025246570190021156989284893916601829762660687358255665371931077445694356096878500973705611246557236030302740594263927302409788821895935000267139465925371276314944330651358224186934432367015404503599318103893973829277556340668320116664539030518478425239895309718941090103271169805749082253458675596303070881543750053467887575366581100989066723086157201113595445976882461876150244043319760891770127571854511423484991248821404894083618771265422796588764465531401409396029857337641215629203382328305239483590387585618546843454183174393910375164200647895570057685152034245825101635360952425463814426249847583029878672607058861359535341792871823162695695265154545666607063053735883326394689529919174026806649243436360021329410262503772869948305700633240207957281490918893070175424290016041340296654169678578243614333105452706892572434229171075282122876285548580263125491049317787573841523055388453717168416893167526093934142587984809459393700606801112060061009466779461475285376649180506404506266114281513698059691900010577635044740476940194668688026793252925295634767497968174110763666758144362067108936209749487804914060679555182537697913769070395841806277276566779544947145017186180004859921455908024506124530294278929191174398577450552380726843589431945918805344927576593509477838652065024492055536032810499645156251086314620029540653262684762750483644569425826401238401865145360106016966548143015508959699197731123373226454773443668353239445335742447652452338577010170027854529121841574435718892213540686091589109711582691531384490523189607279523408467299899493946988742678067667826170857574944428369992947525409521394386521325046228587197324289978983102818819174553842798890373399593636595264523321037563721848718125172676768819159132112578132565246164808529810950311611415771372673296866714171119085170000683394476953270536958018770014990707047367798940676958418972421338675924007155828085913343245723353201755020174798340196975900996936397959998112726558382482770131193922578987860308879889482690599788147645024146503291941075474763854338536557252463124414488499493491759697226016284735484248469144432510976989630505768853781194979128320454155542411842131523731555313295607951025331458103428354097443597797352596181625241242993575058626952524526489677359033907309356390810009226971835772576709568832115454401137136083831208523989063959259650212674498616731024362486736873486131908686070714652376839171219867114641999939446416739906178035806423237307632096581283803628199250505741633731346052211702643292157631676208650793666907357943510126559067199653972162117940959171383670735813456481679310935325076667414790112546456836242491671094361070555296649842583562796625202290484345761502104863438557971490097679412460439957010933572852660702057252457906231467024443848986439326869488135674937612472784038697702111419066994598083474827744625147919051461878393779878653170949029285144910306392780412745193037557710234195007108493601989252502491620896732680651232780438753741268886723850400575694813416390344685850288049048323143700711433093982455235511174346501517099063248525683020318444074091941640488840725031019312517702005859138752073186335537747185957305724584806754749128798385740173676408299795559364046364812276266788838571833963024828587117828473562511670898677720417835141182944792752977188482718351390347771007316763838235974477876734625113006922810083723873602610943491002545001299566198436754263377466846220023721693714960133423273505372754033317160673164959237724232579132351717425714118850572461642377963597856641831393251237102099310166690064686841133071762231954978530064867657721970423598803604823194312454179235333042181502050037939251424509363718421071701818655984694889427218025407720104034624960796241323440162670666543791229005627289231151199740336887673376251361394261953830250121909932565519584479153847652599521357969287229663899093011248514001454692659196318999702653406294015776920213572581315728568465988709499131939095627978586356114548379857581752473723448089780243398223865810139774649498740449630574891156120936632178323286472779770332979981877315447778043483963803717510131929478111640903069443140424737918904061578392051344654017245543136196290358575886975135025994594739094811940296575066615994496599433764358082024736975422578855842026090117739492253372833541966958880238814217716199619070367510479707187442802525619921103358473593687635689478336110228100188171942956091483609604740251267718022601738331672006672487869196687719502554190343137292804311622279538584174641222927107173263622633733080106981935017609482870834297513591108824389473260803319255222088689000416768106398584711816521681831266105331022703236315774846091427616459073721069389419875704617829955013674786386031207625447148513511575918049532509004021575384547194072645698054825241690675474319842458330737286488723104997415744968675293963136542900092494097660893203304154113544735446970786388663900231077506397135878680927036159943109436455132536456810379012533947087795415783022686571407607895983389242638358732562827487230523928416351357516095979183999333803518992679408404114379705548654069101402222434743428592286665582313669314906928256697113948029658450487780683926890517559397629245443284497110943097020464610923346397847386036471635228423585929370721119093684879806806608691579624821459115071962107235926540288079542162804667445224256389611625552257599078435204086678010953709580270401928462378488203393565880124802191520458608955532883240484998950845280775843371246242324340789977193772501321045616637172084009280608204425666314746701441889442170412029321793219063698176377121747180504815927749461663295715460605530916335852713161594667499094354725150440156908243786011978174780800288896926122183321959150679358460672320283822852784000319228919388359977464230069029337918385468142540793361048858855352786752748289690537484910221943059014335164741848446547091204213143222403049309886484494514290910606027305981624435179010770866845241966812322100354352899345821900702725815241849327711968351806574271600534644138317503362454177073267738346104099949190995398653973472456836591357683839993136387411702130973663373615324665573840145414152474131575547240118075115577817904891841574947348520608927981506395250162106898200674543905867289806347390735086221079287156891162317759904940042578418476104683288912765821557433356572381804249193045750142071436078003386199625738611158233759295982654777154656144014898710833549479833462155896099497824177527011683389972934784857384562315954103734329954032263417107505284067308747344381834176351420406558539899924721556028557697837811723407220068878427756454378207395067145598927392770321890482668160023459985791866126971763057317464886118595212532073382077795137041694837594490002689559463087321194710180378444096853700522513701364263151505149134315079883927277256051380053790546020752070059957658156377207114541088589249327440808782882786174496831977048910475133734516765677483518015743465757047045434494677400541389589159447671912887174365733480825430870097495981003744903608102181272623573616702850827123632446620589473550028476389900717516990533190525798454997590848189578083963394866532547997801351791283666875528501275046165104609365890846086674131492634222367571300358867971691861187181008138129635026234619697170368427389278239872763316430788655948085306867519549029010180123607610742034673561432857977036936998624644326255724556474290041370917900997152197695868572219602702265581957802202451389834777822292592594232512213723953811152632793951400505508790312009783451836819052049795101970494572673929314851611783009941363730856642373832881403304810434131846524097971252535335318292689581659127936021277015476091986426646674716365083211275077441210524905692248984495565805541082164330228127152048451336574912530927316280117428323584152559950750689269763213832217416313039464767702993394541743911360228493135197681909291471742738538388076787279337400298773936974010536097134708248665055149848787623099990203954229642642809854305072218472902725285976372157168907741924310304129934773787497135751886744095723479306023872162211206035453533555386385749766685405141727604480302326562246152969626750492236453413605585713925439283817467883415494680642799218297952249305860956074773466646690250260880070483036008561230583569189795062430378580764235867000496544714773286817257968939420273535839173743267582757257452601671459617822245052734674384314461873290785202807029596265522119506776083522011468731155206041735723948947016885225006899627776699775477510817809606141602860234436370334127533850774618505153156770705404265889313990382792426213296486106208665729953472203212313270299273232198866968444862894020669224289615278934822703665430389139000981976307653803974775130302481008274616989787741400788633996215692311578522432453586957391100785904428316786830040420331896844068047910833148705392352105232716751094658907745445440800467278583965802700116211458458008836828128043946683560570258328926696848177602647340331083930563466385339094409227204835374213807817469246555896750583933577185276160325531483418425880398378716801046426416621570692003610543367926047379187355006608470303630587750243772265512309875770793979838934510897017696576468513979544799575625583133533242867456620213515402508945273220334227553241991886526355392058887465635910665785942669196821123005480607156350153908109930317522874755096897340421405659759235070708156899983355679944875004457061525337019040579548499848094725580886278914336676896364114797657604077134058901466310804944177498263873986235250461137151256373434880772199870648556825197260268318372665707055175994857897012903334583699226811267124314815976977443936232035900287936663776489343707649400403219647035169700689778305795187458982750536198116211291874788701387181024471211269442425804024288647623605127821063349866028091232606211000273887782528611814567916799632835094545085094033217177885484356240267956452397611538800365129559161721151500531776843463075224307699526529796319059043040751468560601395836881261481556666452876051302264051938344281696221937490322542855256559503115927820181601966728929420648078697721058307133220946440799349822999034609709174945362033599078334259800168939211493396345922950747401385301714381806751431600049223768864026952753750529691937103245804896347206706096812579815864876143888945210258040727915915064411887017578162930249672260133187517690824329913351299992065805677657738579223782742912070926794501604959237991587952980999995715593076897454106436675218644702754758969342425798659893942248107850261506663983950100949539831343423201151875631940409370833701724583005541806599230845753860263473289500595157759338153329383891897292361437348666066881690876741458142078071640086095547072647253491175915694120992575616452194091472892470302454664341910551830832516073842475713876903050978301770890108330527297403919004706731025221964778274740665355399431217919145855054912838269252538634961649980757895843981781591504513888239151653481710087964156418923652298777076366044695807173765232753210744940921770084657657877345690905987165406384496693989427220190833084194750669089115394956290984174472014416350955483820553139022722484573908534894252630271743168072321282797552187404768614930236256299807126967604346859227292451764148723392677216778395935316836614009652653523037391127850012313196528116925101989081151689690225959455701776613944214678697749931922507532451579713384127025075360963137885715826791042212885270966307926991279186445598269496267042156894543704925131850368193479957237443725562396406128091204747975932249323128136426238935143817035409983793270531249051047504125592367164758734734890904641614444658603940880681321243214899879651597568673284747526684147129429643069308662135695814769688220803653143978850130848281501124801234468103722690504086556935307770761739872107596435287726034655402387542064844708838851548770334394950104787430751463514165905970475476533915985200740131157801951013554851582455681828550378987382405519915046947836889955500951149046553607084610034695953285583081699320462357658418393190692623819081155548811092962251705712279864843385849098122374328930646892659826832016036237441658967404291641024719305737988422803040274710485957052752335764868129582199783959386537413405536126239911672178340114658491677644150097966362503569713809888112919383820987788758656160947089230778273260055277765749581306857788583676322837263643547928393745726609425788113075183983029423113402354884696073017347310193266150146103302886320923533234882440371014689968167677842149135552152226663173880989382073670639583008268730178579584527618482885031687507753815217860044037977329453790661184719163582697695942343053042973481102535386240707145022413620637096987449839818186444903441828736073457994278621259917601944170182799978900090966197543074930814366050250191138465287857287661018994662521213148031917877848656246391671874205090107031759923181595917807221859127200369241271672181620135870342036607764010580798302630349822214036556859792418885389902655991482810190626205961788038175066311992350987716245282406588060631402002983377700273928836487605273795377814969981099264918919533614540879461503027439398598733876015107401302688903918948808792245011963832400111180732969862853008634294037340675727449959195803087240910059055148834292650603849294474967042074558247070102122787638838814218181251826638943649919003599893497770432079329349579807080306533725172734950961892874468483929397471016009267268078579736250320598499822827221640532201298559081455142386684155606897184834388224878350998923442755919443486418748741521194884525256926753301786872581466456748140662920435978776518105753365389118595150488266188409483255573558397500588310534487896820274429008106498257131641469450124839174510323334276581945370016961411061186416184790852862250740710714180624787069789327973612376442848948711020366448442817232472441409739083297234315703963280442223207021864813342874925998766947928932372461775825665742324469668753624248568875933052728490737467326262790165009577701468803860982544906365063075093285099432210231274429769361564803831336024319379085750639589961909467628910863769029489617214913596134737107870486899588058875482395439203392420383294101193821315504330592602894909481299383684037300303010918930080590071892699472648063901741917869420527839629275985142513492895149193798302247109412553758505888514997029414140642597425475515629296197058038282329567687974715950716725754017087490401131817432675781630842747561834834736511208161681709524916815187912164597061947374772094955676726259188444718219387993657863132889976046986540816781582805032135934105116618534028033209916098735311728499192188066702025260571117235689754084925479647523862204308550455497485389254269826203393383884347561635413897964425311320534824620128236466450440052871960144811321859556360579403193156639815045016962635278783175210413333692222734038132969582699538172292293604606667549423381085865287454688943239622351419133828497175114507904074297000084233370271927105292803586696089735199558753793960382146753505659269147414225429328161008633017963899893946324186476720549607365646119061578030879726418666049611277935808929554057918218163240577975831844777791109153181307289087246543111887155056703765450831727833406766858723220619224707369707688303635571047612761672155401810954708164053779048422460411458013619680958891565146192082744641870073211310124165558331348231113914806774774594193380021118268831328881197694194073372282684810053312865518119217489447918751114149888705667424629208335640222789510530079583774868355270347351422962655139091549905676761107395481221879248728998864180266182668319078269405947210697796640722805941362914537550468843273679498738280387138801300279487141907683511988529394348150455985811451089971293842332915310791902312566333267168060317307096407607821114626618329391501601511675808612242491217158122754961643012658173781150664547583306757760274654285058562372205521489833874828386375727110011767096371560310257803025809793021562279713340189233996356986789721982033074360276013351018966084930273095488464271577642471583510425849547237897164498083854277132600446160793278730627122493965762386095525938839927422317025925905169344886705990665029090004102948702917783329734447673061578281676313845924381505298029279367672765637105290335673406812450224484362455437787828742897281772279562648191293884709007846486219391235356616589452847117860107841453930411470885632068569603663754889809211011008353617025417783432113715225232110156840973490100557543357328428426726734991409959564726682146992756166523293704554302741785674903132810830930891059402059910037812629766491872007758684015533312378941796979742170089553698862368169269406396141748927464109194958841634663514495543023141211012811666628994650643819821825528752647540625783991147866963640823794123586184505844887999660195930861286705842358797240492989277014520405935631079761819757958958055220183767761727805796529723439015466323748840441166179290225434670638294044314735970791544238476967507125734763680113737483206046644787156590125875398459290965048427071635515408723423625192688176078613170717980813774487700457294336786749448360318874692533791931737561157855513271892883582132053314275049146263245116615576238258903250094043870944387671625026762180753682707691669392982837555044455799090658650122957692046931495006476415795580647899648317707185777215179928908911094612542179981591861993175335095142077866713986864998934733658215182980701770115011521137467365675145796397126660080170512431572001036306786031769292820827653943736311568620647336693812530594128414119306759769465464031848876841888893998455192055959780435665884166477408444237727694676189982802418192274416728467591226041759260231400830863166581306825003039829545871494957813309383790232435335222091861264779971381550169788506682636771315259789766509212889336542200862731191557549636926042495320695059875678386513405717176418901278932323335400898626196586140130884207091242951014238510288185109750586760567820638418987838560451264580006239013515345133063498065492802033508488093394519260753111074080228275606686600907922302149693624869796247284171919603354847930468129208526774536695008638787601209407554267358765566497372786797590497695328924463360261549798727641447567250437706783815470873512000065911985764054009844379566808377942437997034657364744863346063912384634183629459229765191479521327687409511254612154523166634112588662843270106172391035378555377997923378635025273225337051044788868135004210596933314658393783124652236125856838050496150611455652110368657158450002719627061360431535288071522283027871864558712674322559844712040607461976622646426596677055915371707085053129337774762589470826247277785142969869738842442170324948580338397669167372611234719877468448831283355580743063158547829906141814235399556501343204733707892688439631192649436729977587247128319188962531735272227473382155904564144264136808079525740066287494798661671588000584829415858612985772020258637986142432125446839211411051228649853143906941126257544719625665730742809660521614671833127912036411209117023015557262379746150283513060388156424275941276619893827536742565222381139644052862764647324751934192265466855643687392984870899742682335672892914569895900457697457992214738061321275781408295539866146369990284572605203546940553127333332510442258378478082013217952223414804716488193918728354161023702276123709639830315162523856025586726356799729308991677877359601895329760231377444405258104147991303105055415591623797379432972766471121510798635134237679641062562574157841123120313922835647472942084413689432649867543138984326456443608255854988308795055816117169628707779508732573568028893603448482734373298389203838704467073160557358385291288141595324109054754323970322789641207335182758008497233358276064362179294337119566675525800365636311711400715689899831335110495852249616005880273835887032415207234159138299518503670847228416686020907815651524630527327171928172491260414376401770561360216249048377499574695603200014069508188302628116017248522804594080529622993746065646570131240879276644792650443986990257056964728919759235531244135453301429466202359649818268369845668091906983000588232663218336460756749480588821979335948610527220866066899858885765826985545487506434477857580406618044435757026746298310736967089246548643786642994932612750434739993358647255310277697371434350012476596984684743813175941237023295315725184673125217605123036593216496479330839402337309031292375821645248453994707006210088105809858757839928130580061695987278667297332913078364223623054199946799677150612274140076638730209641183091196915764550346528680437564742884361170544257925107266688176865424096273968056324770117714380779751077620654499763944862685666865803087403046619583308898472817994267872845796728876437602738303692438520554583947781709104022844910135160456893322722471444797588058133753822327936849276137741211120993585518565477828123812746912218599551988283962333663028047393821942392212525715578094050837732765130229381221257468143907757065534073409191618193580626337526471444412117431701665349714534272829130503373172338698067885076055733173041364206281574947442446895976684264632317939530208823385686814471465527719304572619464104194542473717651401464579893641025244426937241099018764577637747745967687903600701539671896527483947112316063182533156510106889962280711397990654543086611985087474497627523188844222302424204290485644757363901814792223699214232225199556831344437197878975970181326212676209407339324736359078357558771556868312294733049693813623170102918331565642830609843378278981946534855038924580847172102496445726151240444333373334485818786090747020959993656790823501787048408441771071854432456338563444835133418765121508276894810721887490748972063198099821628722955317816417165955911576862681872360999964071904921975508984297131055113085343806378537356466140783572645360225650429547059089377203859438020177557917538162449958386365257204492669165559390903001357677655184338270713725713856022947722672102148477444891021035934548291204681798330233334566894002917664630702960224058282305040189428205318376135861199398674044920407120501556417478299941458709070386382775966431427094092012726798085060630222997559805278977322325509455058082252484383971155161230880507349399704130616882652813112404159638661655863334316334206542118187455811303265765751218952881324643447159806769551769400466174276767529219589411316121443450818719471996786902228479755862549367163264049926772850086673829370928654053816875392904035787273998331575363635970891269615628720543730218954191446909398908656653308398670654888631696031542617216757549602658430192610287080188669161119844738635720408492883252310420709815600524888380211305092662163411431672737038851168557225148023644372386788379804356857773331690032043037843634172629410378358467537231300751959149419906341695030747245169970996369291969510674187535945577685364389760098377767532992229970466119095988043994723457172551963077236174863186449445614410485120571438237485620509695749204005424781242095071553365603550638745586390212926135904395560475552241416853646449449796233794863814373861359648704169351991959387729968900724170255755850052127357105945016797987649439790706972577681218749318090216423354823419350227753476647432286049937020405859514348077199553878459155865153560015790807811439660715027010653454297558959796194373221359936274692621765017368683060791983201161504992188186325805738243851801258611108435593402690496281178146263087212474554194660734586345096293962857526653589478279123453727915352834258966704857295611582002699670124145075796585698595581463134170180952852141619298746729178861796211110644208452913856614624310912247161460936209357731437141981865599255321693718974207184341035275133146282566622166362799613230153903895972376370774382823390100139611339096427266530226549974533963701674444166678840494751706383310883294467736443725684881561069610547565496744983644764576577270169311024533115761761752741280976458801001100236676382798134391368104538301027644677163695508417737749926482165362898425712003178580194446427383663821842465446228114539503142785259473411948513098192366722515617631661172565982681364854876159727199889570452922030973944956047099002654425153105551769302122340337091072426312399355785001282491577752519683338007321722827563097218305986225617542046183532413972922550964122421827187681662881761443970855537392815306662808432977030927423238859369104681373737689029097075455694739066188568991284195501119603002212831574068019152788022694169337376201951770410001616368254490072933768184804873062880996660704185818825563808693238036146384439273876285972978993539737476704018627104643125791399628724751015655853016447989466005858349171296926028904190393583066367384304716081476644403017243412692169673240403730211351020094190383181346308976595103703417398918950810748697734433336065204198592019768575212861655146351086952933884305425972857937047881668615683268273197974606881236484623307578452324297651047967105744872969211493547780204086522697112861750557640430531962194988652641879183385265650523979671955827926618085397093984681618422467268688986491105825831536858765568810054864300521500396887246042473017185184024288389173812397573100209297341640789915572317314322542558918725404759023967871198242163947013320870392447488832896933214585009873559013430862145816731152004071906063520257832875358509477230992822464864841204748125698176914027245681558683457353094217031892382437274277685813561728913734286334480977360008584429215444214521080238424173259644035215716752294980276152000682145041738875411776315275115144685982655726165166967299901693855903761822668818021195642411383291880708691000228182162391099145639470445095539415522157809414064658908684429826026463216640924167524529677151466190188489947419993227586724639660954730284192627921628809114034130173070971655898787565334098377179956754746002873196858469331640627848222359974648625218109390429150648573562848686743886412833726471343030389594533494467797458414628131267740353430189854827315293372661162408896720580806187938191923511232969038454575775745080338228728425121667050707251306304459169346014862776301635490809367163275386745177550982329683694404281319771489125191686238083661409613269292759187613572288546385742269084982610777071263281306199687330977785963827337287111508428711022354475044466555207734163266727990752578302639924853891171610562932661916765167106995440109299127729136087138517392590765711041524240079734257366680966162410129405611709204927865340532550606245986634921713272856188104858174027595435868983440135708419279648309394876231569306648590710780362927610694545276856559008620494023535091430257039878813455290950273330804721453035078865529916022813338253693202668376610584058104695829187001107939297715240284372171985388813417067013058730408130935850998933638845839148331223605452658346816141370846977644503903935686345194731577215012956141324107062121447766782430114959702139025292273017018138756458299663287384755992644355828056886747160194051557844478442201979674912363870571863726294921621805333804499688065349736875206717891635805805865767587068225302361690206959496690565247637264682385614135505381872050836403685619672453433518402752432216453004330017223738385003387735507939626334938212944485700841995434953068374584551868406172256596091024421299942017214297021458430330878715235330238444070657722264599676651349230044450708313043193432177332018524203404405229815645070114121668758342916108576123695311432850601764331911405589838534137174027588713999888855447110155143511391328247809291549690262835130066482081338978296663054524347808332605994954188865001972119348547249042723169410069169960552314676366652769428921917389450645762339689232197550851424416170391071291527776524822560102526092350575428641470599226811748495136901764828352206586443105045893136113990346072049590282605834524755021111760892415513271526482810022415962325241421091041993322433741364319478179666693742681807630625486086834571170372069506792716247687650893314499370575916080139316066496704324725288692490813757973518484727812828426007620458426843280018191440401234380415209941684457381807128929749133732544108329268764696104129430801025100881860347417305655824770148109005235713804958126539434987557527159882237168528867858449006427853155007676424493211324246995480809945591733890196627591286257132234651359167417737779279984244216208170116247165144539640141504080171018806097434885325893984028241507928381902528541545701236541689087023344088698713613370766694179434099275105117781675230066472484790306938397251358232121004565941818359449465860460127393464615046342088802680728825249587203823460979557041602804615641000699801651063479828212137593929399181948130920044885165041485600760634694969777352480076251018227465233301238689529807432131623023520839438563961528960140298320907526082818607647633350583907875643351297768739522697334981284363333335000632482175928341010494067885366994822711904230140856663073783890959699237687024151452878019788719602198670411510288695501591184687135539826928464551986618890904671410324058284902407100203824039475678344308969377492070859760356731749107155243102621883142243933091743029178858555600764793154057542300821119562086640544485249963120889720971655484798112310224835319004633089015138563292749064542249830940435565653502856944879441708939657018917098829811107188276750187252266840471577322527655720103923586347756328643613805059402448809551742936529234658381745724353735670846760951550060592999984063431846931214871774321873674873261321501879844583309156272296473841608577534225708123513915379550731972015926359080279851945996364171788297080651938880487501821265323991977551357949243619199811801527286612360456816937576478062190028782205440048175638059401779844360082434090924905119830820596712241004358446753599993571394069993563203887302165566492233164792283506407032270381909896794100535322159375472740259937930873948736943834705578508213674316216599879185662747619001057508217428222581759463848667927868989993580125706676241387224468380147865837968851920312985099527410459396640829887618416621767843724831817412319319046371864273798470394195500231982181632238991272947860704930892662159113191292707206940869844893749037806242840853796226326801261027327916116265054150777517111977580327848750899375324522695327420755057274577117001705982423524462175150108527869926669921260078415065791884832278403773289273575838616462857942689554319332639544554144282078762916448685874988420877636016682095060960548650924348215731512466875541732452848588887166636251796885577508921232682078228895116728798664146326989500430994994482194169921075880473625205078135670974762002025332769398399035119869117002381567807484772070999001773511626256517760767788070943873196399955806709368909199843867407118388568034976404878177050203436339632863246089736144355906687129849630376664933382102198728934539659551037339495531950525327527002804675593755730277433813796104170936678780148965951075149759967639221726187006053691551045390198571988039870429988002329352494580956634088521247560483944844232904857402484358957133003366477816335046739867581756675691142108946153052349327088048437232104527864282500330096674697731334028927087164450289333431695893844932046270375741983869961003442210310152271961886853813229457548333853078105888440806365562777819048042925351585272899727332361702567163288436729780576094205467533066608377962908096692906797544869451556861700314952194530209429617247710677416822844479939035951476081913975357492192402656540999428424939889166354567500578410388180563544375815193360041829837562261193696377361036798021634533853336216164941988419077069571308117181085535336260002515576626373135695626099411883845148327537910536870026350434299415537343219181117294538679466135774517696237951357436905707246286185321529836144976324217023106291355375703624129431988427620823826498853493539250945711477886002668968717698392103297463296037482970170239877571004409495831674635439992391811520851752427113305909093670258440914274970035250444556656022663619977346293269295930499262104930370752552876209241961339736017732176553001002499414918509268861301948394170154874253808973020169016604649282142295146216290414482200126516698858328891886711708563676801352377134247115578022642234415871433062243391556886979942825034765245699340626957358259936933348898717734275781726495044947084029154781173955610358047808308007005094269317854113481760226581754962959771886997855844920859116291955721275110929186572854346675469482315394086599908116084593432967339520295744357798143475853945730869222602014868620857413323693336689991510081805012650333169895627637105898227386591790321794483004262947150266070103072909881452370608051279879023415178513819036163367070995457088877580300310875880817499522709402560764883801445483519511260716656838391261402084637299719746864656976920911113728933011977461937794744051911782450868946530296470974004421874243791956044803653742557939969783096970502560861509797328520986918101015233336564266359884136144568990402851790598982864906136626818109035173193769083855577815149626530095848968644124817872240043073247732856469477329500420184254930275201525711056505948466470519177395037451115393694410827987808688688845477260764117799792086457970526537764329780389285512575594773215851925481984185610533030674330515757351028804586409239910035981505976009170610960904471302525863560229366869555066117170266026727346019096295418770415270284353424229908757208037197769947143479896542184382534806587897275848341374371172415556503723426888200506508904892568961011188749615710281999028284978473737510803895022096631650806148760160481488770125927107635314224889820149768382405540140477782067093176655580079112390592262077107921117280919599287471751794015579265443118048130601378561217759048088515335468243385156132186091240931058075053764540253516791651765435035091848901574793922418873423917662282911399617234743758050762537410703010412810404991583241833401606701816767172822911847622034037598614806239039518724972768955450168365641016362475815035458796327608495492404551485429965550383725438094485732606600171834649140054406157993477638976253226012160828292385369859126192638694286621128977944997069469291110166540257377470408087059052742288948583936424706300106376102636816536376750184360500671683328615804932299061571552746914367600597683259137955802092031775822162075191763760319943637524252446364668303097509744458790483034580695288994625576889397646461968466829425935719018270418969175644361155869250747087850073447307213878685953901090535325926762048382010511345739049522945839324252460454087752190813056711150246069831909388950673314594301195795725737874250217509938909160592806432181770428624469126946346625790706381137109987955880892689140789812017535700933761236451791496776770177838042437345920286754212327834087552257749028978384683236882860225412897470543623933092476617422964641447585707037839460868401169136735851615981355542967585801965755952655566718275601667640774200996660670354528522122512807466058577915928711712038822253047839271630649196204870193672702585849358855466453056720837862078936453598419198569822758591656322419960513911998166496328528912260385505488658117161913527717822485638115364630554741352919379377457329178919457919889580796861564792251753886003133316553653035055927979873956152982825692544531890527348202411169950824229633328342840017074105133652053366463597458609090959336471599051065552211653040636729187042898627201043154673836713961694562130332892583401046992880847380284776587056349113639799540882797484030011405321299828690666968184052241155651570355774902894975585861881311123800334932057953287261886019810620422959755374530719816134366934316225590422253672808096613220307387773099658591978130145778529301175129493845649708596982924898910293179678381477185546866120576897735874158060691057641595644208728085537189863663186078391572107403703060030525791007281425881111985503617847690075504717729652715558233654050116283031987137098957733714240336583301569176427572687496300272147727309829642272154631133812379620301216954753450879375312541607972969689940330729740337700979899976819393327291842589167203972128219529603655625975751242466667258788676794183692425359603366357831767697421209304627814300672246310069358817202578134940860508909523051090945123971250162887029533851492680867987286990579300797918089055863524213018312504907621054790575737917662534872589897297656661224302587295984190275112335848686483434221964199579798421374094741941265004440981484457667663610138922019394845106979237133330109492241340078274244362851937673601334084284091725174098272971767239315030835156806782920876497829552063644795217586307405849048685478890106672184133328579826203576849711250202355599084392233946220468273084226219987417585543718012515847095727783997089560771372113543355198455615198369523001864129015635136552766895210523832232814650931743755911388029985938096970972281815825163429874633940009452505246352371008377932045725292220239287191825778755909249433975457380640342957709332936050602731204613419136522515851376471461577149912108324768627948444264954714714343391018186261798422604830906241078589218133504887503746091300938815526383003574032260459676856360966036964625761093371000360537772037332365171836008716109622053519969899530847340198952798834441574428515053848004140082755927073916113386778059379051480030806029763319084550302901865155507139595448903516607060473167105967160941863468148446108045306531929537077094366437504263655404665334970320142490783994597686566176345847375462629130124506465533904487722496678017462394458697551132304061348019483063909651476518337704401192916738153267497772201586507721219468033983399039781916570696221401691210247437011951951997692592671744106164132527285049866954065957543450498913499131230000781260368081795076291462958866755173166924089197310232087561585145535936059514202902239598348784157313309770564313048375759988263509471256526213642359179406532320500514576213424705698380742388203589013842136720758050574995033861812211630814642165159478041293208108300743360008366885005311058985191138758820924379651855358407438127442792514706246128797323158425837578442360226141627837877085968161821569366331189906026612972038789965530508116318432471125457374156627510491167192317138183741089848203601064016973827050984722424574921329347859705102333029153022459877532506026470676631560717185592153153355465552333947214375490028270497389807311426857089605216208894119334401441954250617068743468592766912099139426940261785284387727677079136523563422888907528909913610375930649651623812713148512456509234278961076602868332847188595926976820138926988031270636242503357625905860737825602662034153400296940580894716565540278216471772693355953171767082429267987426290820783860074634966703845240279066022307922668984972586337258543552327647440281476377196351340982627260844792745593080155877964480862204571445962872245623412895484852555896942603437308916855539919469670381872519886491809147646210012473291278598714996519650044300283424587945799012351835537782791734788701636005286300575449601699146748104449242413481298020110132069842408572157532847468983091235972266843925770784730453349636513864443324017010844030332125275799281001464022364147073964629290474290643011207902653263459916919596060732570768629235652906195975607710788374484711271113047266135469984143416318495970557655032737556207268885093634044276008496100212880498490017881279598333431547361544550648473465966692755542394756328424223500533491104305922011809436339243164598239316335518714916897128523331990582133535727090381824466415053815210873542807840951807549353884853830191678504078970843136719695096378895035976649662581767676068636747007253620806910531979516508689949919018682219190537026178025248390576318754820547225091792259337702295876618129580643428035248676202244782468891572912723218274731905450479380910032658348354700412405358663500128218958378952605349203754441540880530814397053956609756973504619711899559538602986825232065563091010108088010242093902494461991781029211726507036350594891160821628707404270967720503158586267191303194867446224085844662014192670873856751222108696093266423308893726263707344926723049426784194622728158372938869552111949594366530101744241080060872043908959756658464548795736486369321668637121755902198430009468169249808328824911495606503967996882794461215916604562095589237736750512670628423454689356083316769574166767830192734790888822539322076801473765734398171297314895072281356397256959948164609424057635550203502749830356349491207785124750352612804396246904267533304188151515907467346345154402766303873727741834189844586367657090259563123382961681101509890594978263342402330224612382095866960569290087171708797481125172998619927344297871085414647171704181397075649658109180969057735523635623716631235794591727535181456967012471849060048807889254551127621909828070709293905962080203030019709682158795348095794785284779829652555367986885858551952409266524094653721116458693456629299541975867601772838616762222212078285329831752001397086058893037217390503446730156513986777308702664669694526351280769817340510429801794917552812067112983845723349626692456490520182637722995926158531474443269515442907135258588512350418882985549986154641415603232845802133875624696913447251688849342907450539286051988421665902028178292129294167228182501882785282714113963028717248483812974203755139694906846711879644537774104723673473085101044923065004927777996327692720528271380776428281443707584097636551779746973549330722716355262056867040933426289072273162064982199249723959614869602835847043515116968294726263390453269078713564841380237836586522450820530316525948175958509374293420239907226485675149735073286923486396791719892256147453093996502566932061540877531667299628814357095448422117687339478409703023825543239427415140056845549782071660234846657637369242836439226531132111134614832719896582245605439429501462577726545983437409128866688855202331292410291750904252958886151145842728691371365685857495645211322790905755383977958288031429316489124310468406341627809723649753556709061223075445394310092015219245553275411859112766534482495136063619449585382720608769776425479040976352967943928676530487233688249570814924212741053713063644978363003392008340714466355322682469793108507290502308766069831995407346495373372608877766905738272626524746684188264561598235664240905184323933504021013869703468734194380920911237345317133545957307242236062269973036922350104542545202329335421734530512654173563442593155810978847224744035790890784376922896206477248980664295670185989633524687288058611720398175899633629640829852208020165460853041150037569562123877309312164273552040812279839279197027057696877889504259788875145633396183488339692008744360288496438544440257490620611587197172816466508564947767101826232183515619529466635687083581434637642560929104788318586398670894041235917348063044745485829863856192935318887903387246588876978108847079196389016128728048276966859449448765606268596075680704770763286028539332218904983647563951024305380377584386110233779610598633927130024459670445961787398294917377703084369670836769708621680224716963058900787646653381052180392692246941533996781856064301760990019337367961838834752335095433184351566014206609170364650227666529305236864824028199469344047667759126594890313070425160398514459558462175377473910805578616582315656302574607561681333691778289872330144486825071564872379218324224456245285125558741909112273639453228566777100598030999695480534159301364188371848681369995575212722603919244288252321702858027299343852955651913062522343736045504091157851014791398865108761980831256829922093089206210874249418558582502093018092805827532693315980455411524053902671592076413187289881459090501010561244103994199166008071677242160821027761769900965001978165643750480050073166637761197792192544344564185329557792758569834301398592680580919643781337565534548783092089270578994658159955195877976568938573284668673757093290715178331882460582420874731676246377849838811140638705449872943386352022749551269713511584687112485689983635317708251110861148098870930124843850362357015134055550005873271191724582480451705513537210611905142406198210298038251202898098316463807344839293614100940290074226498821821265505406784173225463872058126802573787852881475771288365118893496738190594752414247212788079228879072049224382913086881859342404139878147126517440743239323955369934965343364305782463654552984921814543631213225629539074432485297738630605254743930800596036596200924795636254532288226740660989008807031677432353208846208165997813138338130516254825472584026164682887944916133995553763802100277611089860470399887673977097100129977952497290802004124941069631863275593317263665738181838216537596500693320533184827566302234502960823805495185349233421096257829690833602792720323094168274109011859997735435970312145007805172509004872994928116269416563026744716156406274070792470540662808096743133090238640531902230958577951088168535678377829481107568430975227642176696824254962213820584274537132384183796170523562783897603568141194654437434638129754272121620379570984366680080567393827774928647691059203996458104457442014527383406540010800149129950025368990001450312107221411109739535980835704083837798537416644867948695457441446638628082283696590420198107586600734639333890248266941722806546197878428609276023861268336985536359642392405551893520245572222138701372065185564546035430885547353778224888366038020077963234660463250111693186232643930622993834018868157715029154255735090918770115942063285045132214777089359149085165217690666274532085120395030098882917740487670976692023549990102319224445943194110270620519414313961037776142647930428209782693461071989467866939586317781609456258632764909591568750053897948789492181310435408264601985322470438644604985945130586445706719618527953730709346874363201272544125408842054410485761164662327044395329835446783351166219459334299078203895750837077969333689508224724999455999415491337371641379182299580140958370961759232185911999182049967530911637841587461723986928421572001481670566882710893054344024192068141096151523689658606412746491197715107357335318567176226717821113659404870768548635765712571584174636554417616680507339931221404663637022323812967389228565783954073789334202486341801984733536729002756847518643999087626505328223297157541201930752062782131220259072009682337698487663702927763013767122106689119178083658510628131517843407934042778327751380847793890438558007223901786796668639292582811953636830566978887693280579350317592881080792580344906358089763054382628395780587209055663368205695176544556507027984806614903954011061355500325301534706610099958589964673433879315767573092502061923987509212392251008951306444669282647266569492971685063173344847056445747489437851994351883130381320245356909060188909969170562898678695049618090018121066238779801181913858398281386710309590321783284382892730805919963985270244206412337028630949894988118605518490820814545452940199614436194114821846739967058153502502354384890820246103655022744405186285710618811485031181245369205245937047014347068061875577087695114703461786394058126601078201759106678657106610657287746987387292334115842204111882393330390960209082366330250107894160762396702342422796884006377148855987968130192739326724282097975028803350469519601275420064733761009474515567314239298452409644494255605571156750403684746635620058578156603633683959199769255060461556606291426754555032742088560743329172560892222033935942292990023853437456496364699811746709088046094345066210709888607173500573321603937092704823514868457907968400634531315096645637883030726900950622363493029276202416757160401342105950552308266627705241193998504881692366678821497101403474476257175632818354005841659248423438723808016069339085935079669019626419721133958320692970470829627423531037400622836803055045318923896026003495306964352739735670345265757809189734434613819175508677507533795924818237588784589321153663492486881621508918962502570293446577847797442024359478270639834570649932210391048636729801983901614990542709782713551426018879015978219839304381393870007270692720267377359073771170167340487944846700054712044800618244772426697524625036833136175607591768369574476318910010220543789312825033457025352765115002615747514082803113692196348519798765460285137447732432990961338046921979061612422653181305760142526913595692377720233093530961825469599903541082874389659641944428920167425491452796463633311282272764563440575206259924486730356759913064123055308161117853885029374510913980959812209275239109793185578151643252796977726970108207384518461853279797688793792491122847579885589475125036908594828829309557361763667168899135030964131950142241130213349940786467655677016906314043046985817679551949560699848643796473817053921064150039867278082427613247145534780915783049782917516496782204182374963841470356788198629112997373370457288038727263247971616326468746560082033024308925902027556786146217530682635777378563932539792384517758143671284764680600097995705383926155340265342757397458334197502218826788380386054649301784829754917720366546883854665616569466135628511856260321041838153114099933463822063853114976236638504572621895257517062894180070370311290936437749894524349633142737392191099026438001901356587605116832359984435639224894933030129676045075291066458065141305586691571807446887564280331244670715083897002643269484310234223919191586177123950711706742070913821761194977003856722717875093322335657801670119172155955865359324649327659231389886252729299144454148884252556496869867924749392992122731191029571147193161286532288001568664655153366850495665035480603569755827444257224375290312449858023555711435781146891758982229671400324998381029606265249590020689195451477503646053710129973490616260196629556081453535427923331717803029183257536609402563247907083796999193718499166859016115183423645758230331005878724291432600754762932851630254198718402822819818150125591046557783547059093875800336270671198880476781768095698606754169055664148755153694652855461816950011167549325396479306897018486922794374564363970008527007104460448690429239828687741267996169730023948887363322852343288170655102446707219248009898728044321450430783109777777112880583300569262823794285220018275798785075143584399759368278167627981124785996272765707532264937629047667006741088128554894956842692987365290604876367638749998885460515464913455028451234664913905787302928919393519905977470504841145930837869579801484227785681921910858906535219096002882082624593417363739561200940161945027694185642740052960363384515544414013144293086227485063422942898095427023921191924878806595603853933162805055527783386832722944565948262480131724485943462711018605464988723816415643495629399966650861621702281977576723960225713264492897365310506520413543570270504460517218647945341063161307785322309893769199914863551566261373475236597209172415624460892158495861023137335880179892729988608350591711102989290040395840679518977040418142950118558804436889620274861898750939937026853482166615812125380663081401648797784136759416860182717726122057331174473733326650240998438170012539622364149095971654262642575943879521419541877311835130476126613651508033003785062564863217769034065945369652270535311952708621811354747955761368077658893739584202261029017959380309340147964955265173880857562153870818163548424476816901758563710556276042112794218493048009455539869317865228365502859682410560950987610668593932935689055247867546848189220491839333141138877575259148378723357763860726621768353034089447765702827288183809260028695524246926686047249357428692391578560042419887140288075222543292374997431043273938580681708686682749874781641165397084711441232502564851548468747227595769605329975631987034813469167602328548904054191268899997274872383094411765281632132772763933713725027019414443633556903661785796924252451196860504305026361531831729276235497193487085576815224677073315997934079431157003858478393123970500052215046782369389978508792684036917717784552619284783951182610152002274511919523862606144682609325598141193772398536525555884159646302467533144872140278660733789200476191214029567970649127826174790982272106676804131782436155844419070023519794752535240407577568555042897707617899723760775577913033922571549152973363445653987528736933132906799949294092743756768636061747875154062152721360659408464162058681712985050961640290823154394362625885148092516640929301405377063814088223357698234053278157268935954848675214635423513041055111048538848120381734533602568952758745715061225264415802138808776063013927429489988808804474240160227468393160542139189376281326279893136849527435254056966195755615069316632936434385423092536571588103885585055862603271515574440204379470577808867115036495217100297737019046534030866426992247260422107248389392431247137260279196681437458601562486313256067684698685691401544906791058703436917472926861153383393494919661795973152313580951372247163382646960897111924796366746021789232779900481362346664573144395083346299098942597504129039918541650676314782481218052469740413041858418518606391780834400172813895351848348305336061082877278004311055624320018385281658628990798039341295867619062909611543371416955701915329580410768119234601474913897459055325351583732977058709401380974191135357941787496941667479033451629815416134264433765995957109018724407346017021279403893987175326823369067281936741965008580970988255937453256628547719456283720745561244095553454310068686154109199885435312490728492307884889758139270064732607362213728628083816184245068371235927093759272047603597742918138937232135106535074957763841668507149210231447855672072911954911736668452818038767464465684362335046382715788981897341750225453762281153382095466419368763570693118446818555089254804249578804186989939388436968216268889748285039070856826074912808445036519485868990433089325445289065685489000287582874697696306015069997390894713890440208121583201161850379851447312754745718840606991810980201260133546039732886607038759411542962811071812308897349821368814981503444718634299955098866794816669785163297368970144277686023529919571682434372921863289153057678038404939371689903857642320513197415398362944087084492062370586189174694776961831195157629152381684095766103786990248682707216636789805911931358538878598318031452298782069250301638904789364049187350469365841126901632439394947545968106411490073010009419209004351486420406309603203429377709556824089711422574801260291935418249497900674093363958797997121463716225394387096896622698746773666605007224656087061276922181386014795680882702757291062655533318669858439062332893883188981328171626397272451266729324120962642912855373266332883642380812131273987696202694657139074006186598553216076910360292559024274991944423104739453359040399404138463308526718545248946315527088526502817478862704536030758180258896792283335914290963927053279418428445629239025575204746517683481000292987202279645970489955158174954840945156812240060787304677109157006609000661633114846726538665157740323002180650643445488459043701801448389081171613696326778340538087522895818973208828998105739163998861654974783670569754249598349929887918111454116750595988381266488437759275088670170198775583993068329693113648765562716444055982821822491394418272752870672467176131210980180797282749169953815992230990343802987177834724533697231964287422762352038701256514560157990328455301913130174244633101750585161528588680193546682563887150523825577674037086123838104471101050356311737536119486870328126852721324820842652767567850005866670088815102257432575136048462161162773538153866513970230649426717898751738126624961511622534382204263906401261241360106758064032598346942039817249520045805180802400048830564864056562871896852270664663406771620827024676239743102316973391524780828143203877490369646460043247468315539611792886607094956883775396484223847985020811094679225389843631322869765906085077099309818447614746788234870220607508499536086136957746688101914350006332132302551908572960044708133537072618674793476764265589975685437849197156277168382009773963594642073261191161682195866831496963834651874027834243854692165368535833948039556128171234444426525990966548737095071001067522058780975866601313206254970528402927871515163651883395165175914147759652145820687965688209310732368451795238870973490996301103793409182362096917088241781549026605653891614696029007330164494014571892464013953972012417672035085164847027921058626261097441168309105020897593589250950866616157132164823367115464819404447088777370275342727019670139067606925853520550942082215873668043517595113337222636460954745066622563911530471984033423245719395185962161325628290878904638840507503427482833770627320757207107905975316029011353462809846739845888420984841136723406852317848031069792892820720151117381848263145603379574291759827402671646094183105155285811531375396188036500156889945723992717045631282157915385485276853976954598348769536303687642856059474431403683581636042764686747032065897476112998768785505756000788204264687100552454345282515318762101345719036424366576470820064261761905781201336603875558255387298775720201009721581128408834932006469266833792303867541704690880030381102622946366571107019421053799760220136317219739192478483914618862090884384107804669006120546507704832796082902291943068043570589489051633697357740843115369520482091378552748897011297239726546655243176646127812856995603879536314972709175054285536659371348494885182087267039822080962206649745711843074392109124566725765252181696087413348820103356113465780116873131273168111143983226590805847473289693717475433559399236168282487243080230538055057610279011739769468763213627123969515473137514633290305685672339211646837639629862055872704332100392875260611892313114933240481620293499586193965254306150626643633369326719906943854518226082595453911467645907072727109415075705006303203920961397036821659623182400323982729625870848457175071434767636122398221775445394140384721632784736961401173175815960079721592015546604819633706681116801881761547632812104016912904074345299310137165850175899012351529109221141810879977715823209843334243766098805444707784381133105706687631156388348621232659452446779753306926495683633065486714289248977903570336423243027740621699272069248042072463522770657938434123584341308312998137771409593793482482528507611500388477362200984278219252477640898132764897823038739003508477600057963273488277955976854903585018766972753856107171243708402323668928592475444693507093520101569447364810709862046641793667182526358573267227793644630560183285565707663689007607608658862605935298333940771233317190898464857559998454208789350371078297951345977217422683180606273495181857804245263756272901540268449518095333878672495348175052979072987018344700587845735172129733761179303052830741721424284054974964248706521879961140420008495646755657951501647794732613739989821963889207038393428656407311764028561655216782048816859745115197051591786346487830664719318922226950660051449934060924374173513224238145201237981285112653519179667134789878400319913893827687223168092957179716588565905855506674262964080301060946087454008074752539072520864164065005796106515012598454447932758322436576619810833986229798807126363431774944651763610154223855746084609897224484045669166934045239713712529297174479492209345596761964751823601333531339738475981309109709277858054731580982755061837842568619292626648315982523707232461959214248518474284522208925036865801730897310599872160222255421196348318396297268133243305110784830321877512090690878103049799593217866688952704121537342249178600564970077944378600159905726792463324173084669736576394119480326736846039545462952990751715777800082019605476634872721703106400384661819688444645529902135159175140035885461647707426488097723970780864413864843837302693609036237934478767646543068034851415720994361377393616311101927235959538808249902650976230453529142689124927068092996800349504400279758872795394655088597710425279457174906059342182385830447836253478140693901562118972707588656375800536402062221153833053249769458646480233648402364463697534796666174779068914810425209191197910949928734979732474758757209940217552599797651257976134840716029308466647635469437659874096879226177816178070137731820430727807878012960242370591720707104758841764837917012419788114685286407285947918805457665208923434288791012992454353335871157504894289722379956186148855819983100225119522922575733247552413551905114651168482963624911579662280169367668755472026576594420314213419081663640923587856107636304703562228183395219382897343314282990898828138821374331057467136365904856603194195070695927478438718689295602125709234098995183352334704853210559679354692819270185815784963235010359282933113374007369386104302349442193452873484973765058149215818697012561602801073433528358119148285338359452607384522457396276977903886041507362873547903937848296881490324687601575225270995627822171472151065729099102963443589938469021233433839730820960324623418496990381994537675157332787091863832762731369551146390484600821312302815483522072121264270625255949011015436466588633713539510805279325971224866639389573090746731028747449435143855405795396058680088382240630778697289062902965139369541707014815803140831664139106096408330185796674369378615264641787281130668498740527556640638658362772553212202352165739313417747376809399948183279918755508311172549715066709736099137518797959430696288639922393224278295230110564043378304617083948001100325209019459371882462123074333669965885950913101610309622119320191798672311283523587308474318363452601523177818757968225420942927443421746942643762683528735161569879495060997369811275296546153547481956687570592716388969508579158603621917789002527897688525740687878307661402664385377960012532788561279572316931725694413124815233899081293716459067763872396786711395013505373958402170733220410172476210391569578742700643520247083319986073263690110054919060054825003476069466695005668417358916608563295787289872127124845979365095682583228626930447570518819305132762496148166546849394378088695233640448820063272159074445607193365374121297014126929869701540795490761601130039804353524584104624835874947517836467576372393220303967653047712949402800839002985926569345193817182139678742174586093500766953557967506736157055068167122796489427414680876490828877772998551847170109524083548448000964213296662906005371303713659032362704992428429625398877608073271942609740574249972271965881876438817430765593675013796598596591494060457600865492676530467992450527913965141230366369983698640676345894315946920863620701610119255892986761461475199784292383927392671946525822176978074000996576402448811112625040016084034740948287116391579808335398233350845500804305183903625059412091272156014796026469002488120312162579529527235018512692614645273195437270280190209210615748229946665462244727153748452167645763934104659379715132801637796410279856994253737021533882318440473757248647895214216245383770452503479358619567455119386309391378323714692704022752870045260127045221471483907335565936571640668603337454660302933523099138536492174864029628461345348418827883775178130743134855154483207535323564906007471711223738305801961566806359967831935610620135970740461200858727787590613790517295565533686828464170401763723379684396272229578614762312280110940256771053921179197680376691201775500505628047231374669667642169295777107278376297450004858687356186063112077105246587270437534384503551868076174240475973070579153108383046337637072412397721079386054489022241474541569715320828419624547247410551590397079948961094585593591456135119255425977377203596650338550063941489314590543184373620005728842571836861126095056466555162787121442986539536772771658036788587481268509574027481587532138741334709051318893286238382639192288351369387766537993834174172410710553088515581246581190290620545480330266482472792969510493927417727345138030347174015603272570607960845118181951061214724564235198807661476656662661326230895123119789834251734452411238319795126106425729513889917320090560704056119060874659125520246261424308400790578843816209299758595781606299055381346716630465088166763044114028543758619074862887003506916362958582064379601622665320603641503397811337822026573534461539099054526348830260725239814193817349452800283614225895459587226718861224600912309751412103055948540779217480204902474907266944669006575451065492146662297854939735141749539251000734715647914428325693456492918382265692229763141729436375632624112753179011170795995453138072514586426395518204738458685704643260451722650532859401877069622362874391828424773246373218166454583389414433657332440799181793536711293984646968491106476312423043386888812077347273412953769068316807242069380429638227987617108222376228060224152820470794128470667208657035713239030225271945599503392257499766773700386294910328879517921839189392221363040316276904753323616532219321378733654715793096513683237585850588999674525198596516883555126534429824417366682236697161883482872262046025267381813035273159014264905151936093261120125659774905013184535886035086668961344180030145787610844507485239227336117914667549554178987364767726108917205644834724743083975246039086802407267442582927506052409553414157315693155626390184201275739454297175398999015433127380143068042095218781712384022709453287297275245523839839243265522920735321363845017141357049296958677819832910004877047558643549835840340391153710846332984118794438362160337986452610380543302638735205138160481546249433960992745848054694661336960368472661163400826450866159934859917559093631637883771126576102626223096998512275713923264223546007594639390274262342654649795417180533175641295186734136401340995394126899360646114988989299865212815632025109681812314389178740572751866337907608420292734989655774767143682699059243402919676190164197088741994372019773209935763283370981437117384107932785044546691603417248386220082601393750993242570516154524426059402085078343255421909211400533247179215244704653374309314487527492086170316914476047971807973063747979282208027566190589575060348918325952857555264793003574141523850145770830795381294963138601149926082762220534150492964218867784567662419305117469316572215426289129312872026662158017583344185600872259553249577335371797156431069015383594075621340544862716332835343793782068497318307931183253623758804172722677451835533369299574624634993672501747551082270839771671045457570115245148734452475241733255323240863651648235650909320315853965831397504810766756360691534734614475111757919030216049634892888329655253395873361625398742520120111435743526322348336702443516744210140455072943429883497606762925863632609966896715591851367249917474208810202141747678402519779969722697844809305422018471508739132572218727459365083215592671405190307897561203610319603740072097226733439805234951319323876167156439274882922538186416571501145991460127319381411863373409408537078893633034491041845306928744744072701242286740594086532959440192121427288994424930213165088206448422958962990601196341429978228583454071643129552670614074743615925065503422097161818532677166142817313045263269381499945303731505209671757204762289329041880837298501086857098584000493794190473655081131568549065393963099378879908977222533038671013042699829516868413093361359106029647330054765363912478168048946659198355252272516984531058018235593055398768454213385911363019707357150505790147535740162021107994073847186866172080634690158877719317265114089310518318017769072022624002714642293254733748648140573581847663852401607885113316671695383856273752182672712674381701129297069033130563602440630495598044782254743818427906141490272819196024430894272372071041469734206137555975364885546850357881859799379335673237971123072073495072004491252374574104429523772124143436219099063053135186563686363448606175651311162688582733639429258292754485951309330389021923114654685648837574866350246741022374643804430211201648696155317976810843002884804740517042015936695059195468118985677485948987557997715465440798664808069649038312149307534795783186413361311226441940608472380375148356300106330651611977021699910141802430064369976819141425525261901420481471412289187452017680340811563086569405045703389563124594499399034653981443659673382746219976037465167516923598059912978217164824595189652276384314202657359829886278181972710420673157366731505268973125151717631785406517356590492586383908008230007734200410628986945342285638938875916847673706554794847950922552844466799722634877276041021939009316825377204435502201586565895969473982374826334574916583451669354239034006890764860439150920200144960587345497675297585741456839460601112037778345644941754273245052325332714037083226299215904094734929472546871599328765247643346785003359250510858393003194515453887263865512342453896398826052689125582398843089621840518718253487466985159147589439018034145557817970575473626087492987645055247422547933882357148068114320118711642399239724780114741255403611246585245126193137028873488410079225403788628426048128912904096604149163628767232765659851989499863356573446242284940793663206950862208811475442400716994426421741478951131564727011438565886672445019930722117260205227809780474457016124060692551763692585274188311417123530835920745577356990455719652212911392636068853271251612073764020773394768039562736340026498739452130185448460298276944174964797948784314288574085916569447633347518241310944012580575287748535038508199419996198935197530317171862002467206988114742687650554162304669317991190962773588136178777969898046613260288805466009137310781898757112375774513628384090401537811568811664831938831111221932789330461630496858860381071233938787256581282832455909358985816887211374192932257623123917591304184392959429019091124071461817879563216307605365346911178180653280095925523026514677040508749512912522121304035975953890380084082265983073565666926708178463620154282694547518518539878009999385098998763066130995991069095269045029208235580502815465521661175351457649181266271560518085869478489131771127287027955244690045422709328573933949145605310701179817613623582884447904564698644798555712798867146977958471359292568271104835555324895573501256130616595393629046922946285555284127279151025173994857708335898626130529491003655619754075144281174961476221222956137612729725605759102387734763352039088400431155576725470983122948053804452403793155586984159171173378996440434459467567656125572921951742529367516990385705548788980283100076345256831610329935498439796424902399613988856183311042935948141353192662656479335730421897205608319480131434633459681783815547611613515061798068727631210456068769839004254774415965918105304536968494308500428083374660096814436065627261594394326740945570941816900894214919780354539182810426414422474826501778444101666827778206281071158413244387652430401215015098326443052856918530613327504600833209701366161260295515857109271081828400293982308159118854531135636361305619624398796545116652920805781619635951136303639602587576519417130571365358574080443972199336302146044386394213316998807785594707291603709402284192117627523722348577404698874171185989502400883155065254611168291034502402502484296330281332058553675382530041949724810224789161628061870693611478604842262121113919589078295433422816628046909775822547068445373642681156783541058438544246675244254723617637437543947369291971904919306293558650016273496513683591514805764044611537378963661632224435810359440881398102763644112608179566633146645291382164344767519821348316795056896129338609489080167169764627213464363364507936384206558655609116616370799321843976475613241024958106702021447776881124328767340498634736175318171600376144539941063877172286186672304194676365321097728958362426804297394608871385681772801142666956553412725899213575677795329888703083331644845608225677484297638439926850905355325149653091808452993405583733714535866224254914551663176456079096552045493911840593591263539266307210191227376975542200767815089373943188188704836130223700929638098718407876277945193087790096939823335616625907082617206449396526357460081911129089075197383717241043592220192901034899959371961332414320566662986100735063771531137573172628610392558676405648046486147844504102393975549631342322063162116522327243743072734908013875625232197982204039140156592671785771099923589237072871613575703844993601613753767578372703205876575551242439724463724860627151720374912005072502805430797576089449549711582711353565040535205455924918642637707244198868247817261644440281371079113876461514132457311448861488967596364839019460660754232932602375095434539320645689444796123559857109360299646109221670960753910917339139418255573654586692817657276236129196962266347176807507736459785207542230043166905456429125805964749365129688578950810036034927940847273027549182186375345197386902982053493224936332952023373115436225095301643656120921690769868721375384008251636099373631961474127108995830089213388534914374269462047641717568411866598150235145869480292341719849260984902027930208152255029644904245171971558374546074289252025628312944858791645065575438542814449855663617128631777580187239338615932888549727702310145301838501158508050041920235163295912648386859461222006714474380223407284070767543851998829711108655420998296684669802530786829012743668110362772408050399011084648757075532933466251194645008856882734161597210316371237771667401480087541569453417365133758896161342835354540864361388990467047851065035576076364743585494713333915236802653179912491161672827597528484882277568754763641538247895180509183705639312743670774144904804678001251865179041740495638433380385939611814474906844053175194529128697832894212466290693208819107436359363657172502480757107516291796118298724003250024913642828179220231755279973418764715516587485740232404712412687733871416862997372653808726742582080513312896470303512778739376205068021855267526919211480069286466780625362419382428711983753470389973858862743575939986661775382167950859978812437933831193429411277163386576467436359694044024610818561873070688255208399140720407583189801079936448758989694839693682813516437505211891709300809294746998617489796121267001512459519644794602080455594815447886849317082226962965253057383015939516646106920884887661090959330732019572789337462913470476049113835245721860873482426558163069875320505818836642112388786407563957826564155149766624219541287335696684572872275440875039324468092693432282514715306756752175596615571217412822225723993227241303629769108519512087373665342662545159531668721800378757956188622075106675970119462559052207437295241953248456089712173834394820664855226082482567876610762529503450858519407821356957573350673303057382070987776476663021134037654003959467111984225352653180100666196058732084459138550213375969245514255006649157817679550270617311835183726428699809754083751195770245779166789030962461047915892543628894409188364377874555113337140305865848439813023808651758202408048085179930901280228582564420167177479399355801463168970834384067028774192663709492833859540159762827497898486281978749315108728559711062326185498921093707574868719215434197173883785958691592213273549707434434771307121953386602101813066732057396781439264070735190827682012079116034596010936974255199622391669282822992950854972749543355866154638837134896060518282351829786177882188865764447316964062222442336322245027483074891617247991853554163669858111647059422686130255718446711168482143779085112920524233284393356221200683804044047667129891207517385054552417143907704086299856018492348145264158894082819312607017477616516706761492622894928640160297298896999701922335038690976914446392778823360103336884793260452387509091638512784606772405595352963276952063542514350372379533646092349397432783892402294371973649391974095153367210925896574541722350288241624833584043115200986686197255509814032950387969452403167112849548593809122645371562493400636728172495039068596470268658078614813290846342846012745315618464688024005465264413979949817468378695356905831123448119265827711948653739788996424337561752691647690232139450049915694244694237588060270808935466609831397474184259733705819732260688158092120334297150042005795024043257310189393600948223915999263524005342112103402736175378763647143385879731169761024812552984544790608683132576465856946176387705875268121101707405504484952237003575042272985395987560896162186497280381727913908973298644053735954166117555800240296387057453034639164989746107244806052677430220519776013793922565540013818916875820229583095340233021544789855221757341747809062847771599593863945084013556690046174110957728945699141211241898413964543769566453279820879411169546064827918205781998003952385003994741288285407494044971679660787040364403896545111273016168685615551624999506247278680827301444335733539150718834366714437666798066041784533592942967535502197918594280386127865273790209116944039415240856842061756197983040170981193716761032043801630161182944778706843155932656068140732371391629812224985829085947572299496622582183783286214146391908670510860211514024450584435317815012248448416894565073816256495755809105771932526247986660563093141154599006042561455405001736155827749784134429371683920384202060189633015433269374540234213367315356532148073257845571548293877281360805325416341838293588519518640021438926366188055861414581815583124095614871412827820430173903022253703511819461755647499374065749754342454593617682617421118396120696937219152154258481510514228601780042266605074678264698522684118084457032087378981503223993643764629257219123921021368248649975401876993688501542058773669612864977651844956823189040152817702377794719137706747196186111869372684556532023040668406046385192749094249362903655161206062027042637708824171502452599134078559873045375655665483677915405056433956994890616291033797513703808168212132446778349847246482359549591853788098115128994450006110652936554084665449678032544433486237117646679714528501626909676330748818807578360777615745958233868386254648086414681559426520637906379919208986398810555076598971113509878748602477337297328984999450424482691268776330244725429609664205045699289688870636215479319373078600654471137197540014266449747820328480115794038673580544160916629117183496357110358626783838041005051882425382786378630236962794066504056101843259491637289175812752034609539497221810616656472708968599063222847369896756199366331828023687349802571376924339852257737250901554618806589542669186332376391330987913841603605259206088398014046266659613878659548042537624851115822217468851423775453775024958049856812671338117510444503193539946417143095705210695999304325193940193379647686144601048563344898280316603066222922155111268072979087143727693097740763053065724986613713289960464626934493467369614790772694461909993886431591708762158677054627710164634109110309738510124547188760152562727597504511753810018374221494053419062564257937844191571292079009756946738275997650676710251237373973405770031276752988843508429004001384476162634866962969192290956186485292040452715732532798713826570484152084808046583361856715487497004516388692462790864162695930827398955362930337795839357347795862525975466087390841309451170335186828807743142936427401839338800256696678973911845139922544791539491588523621680838798175617718818405706447126608215744368596425348329907823232779001955491293854309729152710446303054944185384328457761381062333003077250018698365800525589813397801372504012375829988076140195960813468479018978085674109626756189332771327514201266241364739266651255942817937687806124887783016912687277101792523845815419639895892976402443496724891757290387494302664998969205102256730392543718901054478569393028076899820608259655161643437797729945371510287100188525402533783005391143113445420574793480820182953351454349236587071764512080718019418084421816169641804961575779608521860675133113422034450755271055770463162094429791061221818865894211950060925445352560833867147661291269338953467433318604703176382563100471389630483234144622846005945646480113099848284200278253182161395983979062666466693316728400034440530086327127436959008587615218995352331941801159307043949539519263351030354032793589128980168183579233171670959475690409467091772977805881136032018662780733081627078186246996957093946510384711771487244060376327874812705175048007731174758651872620519703348705359662862182777634815924648510793527757419740494377912039466415833277293499463793087657799723731853026368126188550170052662940414063051104457696587232407111902846567755505652893351761441427671068732106478719728111852979251005117069854729462777953678260114446920187571788163289157821198150180057164385520923494787614877372025000988642541900434187949550559757105803416939695530838768074714948409375846944483795142571278769933009580388030248061817499867373872277930315941750278342795936679593157385896820558047572242481486386839596921646551856146800604710722091374285738173419255486749960136479153382565167109436636783997072810580461401502113079800176066668714264066847501217648731221162807945188749365873978049219621245387070059805280727187263402491377005952833732725112708266302639053453114752640694138466514578269707434817139099334384478999106922943112025857361070204713841394555217482121406342942451964129522903974318183803020621643296304067123278309056567380570237598325961868973395321791325060732921899616251016683846957390704070158276295124640629613629908070192005053022831571682371960303295332417658857582506521876978495373188965078410916808924903397709254090107020288695448421423293973978182058702546245534584747958972691504866403441989511806715824011232370929282912733319437191338955189105498291788816686576608095428631362250365280314533708442380230657243954420030919596256161146442718657597464247211771013338348379451828389306665101161927459004948821276170179617504436390609654036284878487530227749950531442941866096199151335213305379457428919937795038987096932150805769793544350936587276606820939783765565690896820610527222596276895712459491726399373831501606465103554824950621669176963615333282151868132196711876203303818476702491365873237282742721450886460341485923442952580273798003449438967297015112559571069733916408370412584687119649089632694504666946424906511051857331897218895645704972862773329899852976564477017246589591850128885134485200491394109680822838581276186681507126719123787203433933799848005996850911168972262953257576823536175728942526719736726136851936273681942298380603477030298315835573176181156583308768324763105182249234445036539408875126648074901150945440168526500008159171927174176403920276204252163506475174414587383679101926722149809327632007614449064593650703028853272258649270618622538724915119395202654692859252120417756132706695564621290520195682193144987838823855813843217103445932722081866561787052378048711466004066478303557912511657696176021408404472490586117124404721647375502143052351011146097967336121076295912984223655385652793302665305810582704505269294719342040212886295762961499809943161604391479919041116769541767936478146073493658332512232869671550676302161252105929222711942711115849357837145689831917853611742687553917930070455494895835016227193284336922025899863959117656970051084917310211479468154615202660743013057805324757138291008218949906235401657557546402900356035913349712403487631303997901197949532987644483853720128896937688481174296169939068751386896377728645800774696331707091605961438923152196494314796268032755494429190271415254499896810942421564942977054711387625234483770548076259320641400436687546127242719769121921176466494174459984451729711824054207249497148667076251026139388598598364459572595924047588334773414162657114055721125491713394486989064385818567895608787379697825647022070648026804855674073476244747607375482900101661977590639146284706234577448255644199235251345046543369303014755608844728729728788531478166308981218448243916773871844503570483997642632120971464756378468899610871427808222900286214313121004554386058282692657950165686583544487828646370631153284506859503375450417195981943869553599874462637483194978096533827635268836169480520295311122288038948394987560064829339867391725930079306597819509278106156486369995366255113955476242691847112700135659358809627256367644649578832192683062691104058931443268098729118809099252368757464419258122387476850884982833753665553969228267247418035012134062839337204314676190892256466206722646688427183559450031000961040389675242543017149092947607405171240224322023333252751710722451748490263960816051334577426537657581990389677292166912175457162674398505735321407503224444013061666531467792424415010079983655218453749532967987625054487845707544443070602903452898768649400285121509165434889038486641878067747191050441979268873260817792693306822012976816990173204191293356785979642906655406434323985055487026786613340491577795626347886217664266506210891762288820663796983372530556163346726822114178885355250099057993546240338907929535583651834854075312654664714229242100600300243104949228092853449728191224587158584308262502986391836159313197437549453150634696633848511027077802344823242134618886872236399425541106927880871922885269857565065171498290574659243845691288997193989567313753184521838580184299283112623702508929786055146118205226312668073688466554678021655716484205463551092550171982795570147676059967533655091126083828833353368593605490882991051810768683698439616419526734791085930051420332421645579295227700290773213593940693183440189137410574572513993282533402776453420011516448156107552658665051571779699757236479660401307704205776576983018381175641034971751903773591965812545955176606238978425233514611764549749235702674201823839217849032314414573353503987565207938986269871551292635555303116998823436137819814876966796697366253715169667170324752174283199073404857951126441007357060556650411981815349085459069057572941865865081342700457068280622844533049578249171599811646608279434573576977158093880213004709143902372627787010202786709983944533822072801134778232283530530793401268641508960883982164678897429296856489859063182997295019512421056264534229720736377790777698846542404807809903179457212584310647349653014434718238279302693155294097387432749304093444267115578636789234964821574873614107203431923076333999268524795468667381979638429293188138345931688433180422668715606460272136999834205286147744145778234271556816096066964300874221242101841616772906602485377463928903088333199560225136509635691479219486835183625860975382308914251945736997430837660211107718232968229958876257457293755866850260846363693298427581855567269461225204225372076456866374498321737251815941970996056313516800685818436302256227918216246877200323021925131909657259027403723177153513488007683680645965609764388023738941011095876277780109000725124475932419362018011594953673586009582426556566324386950933931745057521744824311074263478982185264563167499092386045038904156111818877312311049992493025890608812807095252031118526736212522680445924170104937353319980899241569584138397916490834650198871858966312177145374294093142545446612041095709058066709601449744235303189411528868532497971421641530589787164457692037758837140473123410211109646349992336529976967908763378802942178764658494281889468469188058154511696477280984193272480014552155584428249176410824479862819162797574227251288838002682846287599078708671480954006701241921660171312244400119458046154152745630098896354914223230009870368467465302628196127200315566601286507681310915901198937848850903685306010879141360015081765554048619959163005851330008676926750561293620978970382109580454898583277777559180280841211232793163370333563680860260260834493046484396613171387034691898581512543016920873845827600966669541541795511204337651871690084855481048806092467256505635087810509948521650752531725172728378363582935938091388926194699120313662068320459793452357938092102469198831694818262886572628967919933524657238683317806699484310267417102675729036394922517062322007253022541354710545937866961324441602542968557287677392071194788421645494028230508644952261595787044956008870335323566732896548906995969450335347399164618513103000444733557207937119735976357451754269447592880262578337345974452822299923641803203812119808697736435551148930127785500363157008743647916843527756696176397827122489495371104607574571427803210617679507590042810746727942532497128897919493767761896186371030102223495439726455385506498880264683414505901579640891149335010443623213916489208745866067114088825639079338804868419815824146934777691881629432629470201749418207628837217619074996210879920295680285045522683446319293901668083835346053881156020002303908696239419992726406606848336424074317056680784627858301876176227829350150221603841500616270779820583789741805643211134091606594823614774220154615656833820889991905319860678853028801708659754533124541033883329111596255739514961663337431748767651147274175475145989949710168393730461407873603855793933321096048772090564505298391691625213288756152750982194513421533058614892766869288172029021639738157391657579815362234625567761271444002012531050091762785395978791715126423137519233946509448926117045817420481810722972711960887950502329102150324667146468730415534807171662600166199574800358580015071578577089445416377001816792599219860442734309209658054269984653201443032463100325714027234456812482246229485277217795810379393398326164970370449368183804877511683670934503149641695900714632443701107172773411942531406957559868671447273450855811602719689570859776297929807853621140661756790297935999084858300909399864937049924535194652548886246146268689932926625788195723750596401785087556682508644869058531381172026299947980632627292454654696002340267178374622470038518536499079551054782508442186159486074208809013704606596443287950118036247895696776285217988066016420687927437522762459162292258016546766357150078599767083255183952382336190860714474198788189797613583693665533068272278033446685048990697308054253646666905128242221333614375423236280497099933058494018303422398904405826222608583058846708347272697164100576268385337309439557908773486435920383608608103724182171103767144233179843555417626521471268393628829401781697529015756861779932026627378395038242704786160820398178055199078953797334573819418439570701179234424341128685979662127174381075576828382026918502448729178709264952757416252481148387968634373972908143291472497684450637290547165943693490849358749827910262853720279646952663355950799437260923454863227501883712201880551794615400759184609306236309824332672131848143866377642407891701167358830663648785692248647279527844773636942727870805458563096496517969977239161487216882515129590172109077190355496474451337435705010559810903718722149749398423077216980614759881772904599392541852209642764326882162910148493836117986639592073639734395958367593635733634050041813258615748445823686240170842335143277962227096406302950388577338554530239100656867944422027439611710880687545415335605533432539959184166584775176560716353218916645112855500998125810810825362043087021050802558415696745163633198390815827502870147306128591631078481777554839656711462793451960206671832725183214713079338617675014551825138062648235238434431200691286102030606504922674467988986345928061816170066677951435600301437565813521895554144095237461736284918262097389562615856661266179125553879081712323207496447452515123017138866086417846159172693144378283732232473371502923012617481155351147100423046055175057193044041848151980546897406793042463675697577436190614648213899876229772285895398036034378667627660786424556556434139519440923245588594738240208363258834019342539312601380584973820965580727426303054538748481878352091855512812945462654245631431444400778409587625931328959064481402217089980412995095301629588961827236264822373093566591704977483404755896432251955583487219174943948550771876230741958874821723771032366143688604001211162444323288808595121244810044979187989625481376883259265108950783993780096059338355893378403462016719248652359716355848487311115996055609182729198358311208666651791525713568976883170372705378449601765565061239906701215060453392857762658897102441449026098090900457785556539253054074706999777061116692575108025445123259673569643075525846256523391763281900427825421178448529613091635219386807505318718841016742372548520976781921718290037520574685976630992816562812536779222708884096800471928497268866634759549836814466172819089456532951735998616991914543443372696171976500676227104111651301638346059273095093674501774941880183066842788874062134872474227210612297736138855059868038928413355672549547360445604582663760994515330653144463664999577717564851124042310655455625977985935793459963361875382137953419050803599374291696441066220970410278804515923443509652759308450806014367407154541880561798124721939811837474310987706889885704826161801870920037248693181597865979425756171184909914209908018932598228415827034686924002272745949726451451312985964133471661108059267914357024865155751465269748368433847563768075597726317173399725785106601788447732722820013042509353089270299598305524044836582336987333008930866847800100712473861703301760927962837514767973004889651280759448647783813028992304421371069737624952875061710822158119636007489175604917544500695662519509644006487568712382865909791406128446212167449034861004958539277869547698261906402974749529449339085615376139108549124889231596826905844323108945568392031761535119525611364309826206074196880420672432592290385138987540771319597591402122057409322907399588144877332355819542946341008770644462239449070487212399736866642472292086035379024718891796706586697012041199059685382499954258577774618634101124898821079017195882287318707155180689123398491928588806336484312640527450012494136301338292615125303686844057991767333984623873300486616080780112777252489398284094452477627621281768095407988985222587285320078410172221729421104965237837450166845571205108229445218614670572661020155970431634766977634273181324420113530786024262337451973432031222237180044642192032361309203614434796764491392514990764080689143846770870031433271123303332333940766628538854127474689097259713936630508037750376538294328816190965207723131694832119017501153395729827320120447114198788819363791222580986373270423769456727022223221419054634131965826737876393438851612929434486259991898329411675618489043573740902151909918713660511007870907872240741628907452165630710902400226717744076491130573748074638346464544563785215322536598608444881482617491229767297529968978337135668009212724777596871087850353527631705883020917850806243327916184110459966081768144207748482341151145751365087041736166293947166949241382017738059577874063522693576244819626653348833390541861318108807099933698902132049743201748019078010766185351379721711013797190816230721547102338669510821865613526260615208567905566764608077322766106826115467001842734354915966895162284794304182320030417643038222458224720537720370657245062998386498719801170993300149882900318226649361572400352149541449548003589214314587042145857295908050204262591775779554450695231485129530413257474294392291882753876125943844545804525855640784806089103783006278340429121039661426039378683821504022565301062158281172952040510753472984109505892563257629992297942705676305595846422420290850322179352080168259259094724092695964057078693723523907918470098211711736056168783912156992992851766966952270894797196925691306508754108451697013442224524931447214261371377970693388400159593988861264497915950576739942757529858837494108135528841892627249552427527655282970412997903088722673816051527301878954717372737172348311608654198088827853561683989030938296302564246221790387018597490512993801830576437435691146098828606310766583493310984525054405167719603792472151267524829312616199368367410029471855839282355791732626860582352555751652835470505539107358222404621496519567969082449832718409560258612028120679372315173451458341878620222548005650989841256051822295331285322712585724497329663936174056266252138232573901664959938042806831788065878401501537273090991328131626476244455565447629260611317104525158658468474877684106335293846263969484195911432728075913740460516053570061571969182246487347945434139840225161780188680655003804271112177895003768793735996610148610729181905813818404903902136230453640300058534868881580062605199714966924547419626630365265279938330232567260804808751874317581719652064864784065828736639159984144102677392041800454204755982278397907164259660147251339416214139909885599107568810677114818918790784586663570924484229173233008712930889407127912567065148202932817350184733530029302680250538722632181993025831229731657901717824244624565032151302560120892699251168314402557250922980006689571264661101275964733965104655364837101772449957934260303086233992945873609660931132571336123270438275729136759026078467826839277214843804750113886386010563139149434867868771187615563915799458999585414486801499759036999041758572616024808044466386136132432330236811847900804099315582890639716806496048046548725634554707816966103140405076726379278673594844148025657117573571118125159173204237592569493351198496093826319970284524943273739063545522670729431466479140067670928020149440311604687119133921535692961789941183920410465308723787151676317984060339033232720326850595849366190092434857361827708620762687948949487415514579113623761214280222580945847335923300432710853866176305392858965989690215776642797111103044721216693087604169583412624178302605015827716397371925676839912159449857068449521670714456785801774753926948037682094605057892320421831691842521434403950758476750918939606586988753076182898853453879860363323544512127464500744944546323524746772800193388364244774946337350819466454957084287568711725982629136812817805324229493556364982117901250847051549072020392804252271454484575602257065287803062393184519358235805172246032909640386755464260767377855486718514572851552931264427118184513940269021450802506947133319789198468253129311106538915770555735796362576157814030663047343053796007383944397883957795699452851476108097015752263224793827379537300868975816082240362385446026143508050089621558331896353748386931436113472388222777244512863723246296895912200040259111892098312474270508013735438078767018650437347298500211975795071949457401782387124343985494765598642777247861951607685865891693839522171447735878069280686846031634848578469527835130914649469765084351244690474261713452230309422759340990464266544256690372922869863347469699011997602808172102551480920334919049826738747532232438228432851665768079062829139851792736642874602696828364587882125501093003693281349827022252793048977464458014237187077299375910116257530654159895274731344738048384996448216108974713166698897594217795271707047894742223020421804397964272646746349089696498481395272428378017903655870025081322277644918077993675174584064483174471563838736164236103789440268091895596350282854018759780058279404635151023341012016049898020089084753077151200636462467514502750801223249341665574513339767025860109536373244165611537375013081825646977189573081673092620359106976255757955672125643135182625200051589939822012783880550519728487072354452048382619412208215930212301498507119901628712878947579748152585667109818449196077311841819953129383011963795840760255483253930067445372011151835361197248845619083107965183040538289787610735554487432119461548180785232509772032291593275646747696220400331012617963397853948331560563657892156587901104690019824640933272285003430788204193960175691164847111437805397609535824457038304339451299244597035069317358311649927913927505646727921972047034823140258510413841533483482452066801884799312330201289402184479586831447878465664996300433411732864848962417741385141029489821949642012187344124454891019360411547187103315953102288109894227978820624557276790051407546203161745965345249339097180070059691715008325352831307894304101554140388442525684068085993467284348417390597146211965155935916539829970832374849623759650919588919863665797786254087087937026243374579671852902411436120839887765296826303759511216715780195241415080361914798886031680591595228270992967495378189697789340945087692339531692062147960498828673575406206913909701706129945304827563261803097576706377196640032805841368659460971001192597834791323578240190489089323120706484065290362818975402450960704604087212890853702074438028684189756666612977516787374921107932979744475350945298524887408951784715533628190918394147786976207805404224142453455470127611224372137680928150404211848539981694112541761623606363859871377361182350929512545948873971634590901423551572511479501736108526432625732722768368890293223902620688025450385226329264934490073579510261655803779843432004088128991279064856433671070919842088328686376861917431350188783611494013521402605970578710041046623732677776582127893489356442706768620217035403619897357478308048429972606611477875050728736638305373203617979096316868759925433692161166725390657227470263611568852726726667310117176075064512723154641414006567376431755415458738017886344796677460034738716609905758704537193266287870981889625078464380241537663443552457489155766881646733482771381394263609797197260372644534526997890965483369956472608868410906137516003902176074655042707601294457822636787152365578331847147185660905976550321863150422777770983187626248354908493556393913224243581514199110581144375342682130003007304215893098049103016493400644634182525546605566303207672068633817105698466642869708464797987361525985686094913766355648061747312736505327200036909815107419524543369480950627975594883061909137635213713491789582003163423072670453899378661640387412146851256179593040041516543091957741229023458460678731221703755189343105545175615189252021692335923764636211951856857068366968855604225024181951452514449089595062636826419354046848614551351546733863809779162308922851137465951663067338571060963156745885586351904224596435217259366439744559696927938285868621052577708076096328658122810588483543600060419991030914542209516179813679421648308593775800655258383124484475354709231113750628981183333644491175932258427574515947005311412329353098814488304432194783810001619054408552774209413070473345726510381437276901299024829071642160796429450327257455177558311920667249784268403181066820469766070298148910687441722382914201371141821471063759250018188911479674413734698886147583947468825055024057525790541340420120110623671379721106653655301440965571612057576017703572436023299070720963344233040991393035034414871513157708385723236933131993485988442986886118431004528300716304771339778699824105342320384917939601929124137393490033527370871002360078899642184370736472362497808526253123128256969403301969674586918602712945084238926886392842214788009275557667289019466213679079215837605582211796213349883106614759782750719640675745722500655547786456108975021122528766308808901687159347672284968273060993055395068094809743213852649089180281090213966964700037448853191580544193987224626661240609515920564555548417876957797936808247845317680084156540632760968793397053060108999284732396537479387764453484228644721871916419450747932871766964371970368674687190358506638218306337666113918179268194330952303581895198106459572751862821355737262928550686532274684864614690319124933196665481341976630566286653813993452887206110009120322471912823555876192963882357977747569811963009322573667128697875445935241785143399105662651491685982344822365832406475401144983364724143240578994625245062785116021456624445495740677805340633612111430515377965528519854589338971652525178331337831097359890320389620996534847786756072345371123993495996541599724285604025365148459020050751286096198916757990511999704442548264403672179587955823159322741140195164074203217619759566313672882282153432996533720247324569238267921013941770885024340991227341449554154878951870500520344312295703435739871831205350319589504853109294749895323495576535206640651139491028830328913402841256905813225956257949254564871124264320325171197531921291165645404943925689007924726924991553839857888088570244950563254894847616105645242256387928916978340892325552560653822873741116425589777811054457351152580603157023539046736089415363855804605767705733329388355010178820385221401515092751141077156711142645421129310581122557772270644440787964123240141949428026264785580073719614749331848722422657169284692881738184654393508187445637690413783180362865771320147868474156199707998369597020042797657466095318049181085807931835539209414252513418145332114090148726831522536869256268209620521899120303932832360962627082946474332168245892474433249617930601887845235155497860197425575085418137966843762816339889261822753856272931177220760166472046602335054543470034978438988358308962425198804559195479831763876729594933831234560997034089100967955885054465275061958037809629885812412200882976115815591410587021695730644233325841282882486596989191539629108348289060699861718686200701221042931846783301874275041434884977603973463820667667057377735090677809472646258592614498774779730939452413024469416262121167224736299251763924875113311306929280304657467287166263119435967489554796121256155088595801927776502302942668241947923951871733193849880419915692995974182446835159655849456317637717060182321341059311270614636228836761350245368930248974546905426999723787945610101300598249237284300370662606649801847067575545703833003669052891515397851094163307260389110911773477134538520697822378949838037983974003761054722707162517136161505108060182237583988164693481979910866696684665115282510653498247024331450552570452612659012377935755933622169392369840697202114288700178623911445397497395977375853507688896941927910187398225469069077496831061481543580553417442331852437954036560782893254365547284481254727000864092641596132817921312443919960538405191128163335466995379665991810649179615978402664590276772500223742615767990437316161937147343393732817807100973919462136671565712061920400716631370454194475095181597998720492783957469119533939454918323259617192164260129747535336434247711452097301779091897877996185688192943373604692277695117111682442119829473751559349270584764249297353131226132254945985637609796773193387736958883540186086841488889382859777771032183302231187853513514184553591719070357419625752677181434639567113788219380155299739784837017162414528043272088981308938712904214050238629590117500089231757687932198812975286714590960597811300668216691695409499294224340463336263422034069812534662481617132456319767569025323094071578894291493471938861556836596368246418127519681157447399206370124542668021981492935746281971705683480166192199133598697690561052038056287070812716185615921526435128354086023007880319908500513098501194264681731014801559408530836359909405297375446792561799775497470929261380681252591596528050252248000773889927582503924137888775977503182662459141715261567103703388854892291041355164637488722360740634323934543215708779113383777422331073178393203263305788152367890678680979755377641619567074244883404367071081188889254500757710450263724207710541900269392977255963443940716604282519660780712571617291728621202882438984524958817862014040669678920020767987387734106394515751909370968911560520452447505542158565918560746035811686487886670754164756368990485249796193807263835244181767454599254877593755512428940061548711776910625370350152486409157015014416897098246613150173613730957394780357673530842897126442293223862004117502698927865466410490224461362417678703587988540655669250462256955961320052237638270090559775296537263263354015820601343965862956838289210309564697566352047753134028533199101715151623946040949235482486954174031391844246797018170165089574763835428002589959246141809788634624651938264648320336075668573814986098238989029988488573644129277232281253742806095911499021628210312372962561488050150558117604347204833085420862503832297179612372893923735530507940076190297530312673421568996150337761054721198978917211812585908900173723736609623079507744932097890012652114644011046126893670724265411128770208440728184786825781205702106056186825054591837892276586034048107131898390624932836678459015675680875340671551483683195579677096968773537701844067062147610525561490366242516269633757593487301371083660563213535597183485386362045292079647842474881520904559153660877997033203660170417118925555491388992358511742241982920741912897382818552752632982266152379905265713490424588762469001599662494713474744682992050544307238688928469293145584569419297829818042972389933369608163432513192093113457032839609247172583050038282117301782862334056750579594217622339001286585536082814034478738871631445250089972029375371609791440695180931138692858387062429739196126213204079907903661567336711969536123538161474031318967705267162782030621238554008751471132221648947989785055218943440959287664299073187995612432485041348329876979577718235798499461730701998820965789532910565820975673919659806723480686216719326499182926942606664064382612904067384067490026306769417274688791903144569760743473347272510607357654027249741694146784848756690603817979111008656913998976721676217190655003273124247226098765378314107719703739827051793288281566134581515628248534729694697074365330758514363818801961785155126811317994607304983828893777112344829909127708667347366311975937561824630224133092323937207129720641275382335211904954141127467225980640630948181055122675830791856071582678078083179251991937667145105648853389435876573123661848215633763049716487458898923428254172344905153150824472408648020317828577978970918145057519920079017011131469314548082759498752738915651427331194766564324589079174522345674932183629553190390775717792962157459920262278529571269334515797320450926670951500110772960264216377519471720416554927918186406187237704829135565351542358738898908567365937395196917654085982021090249016939702764710122584614732439367274390093614649327643526904060413600239673104180455963785759690300173281105083353657248217165816080285529083765353856827954727035296085802472412085882507746681644957943182532494685844348805115954235036116792808275671360982163134434387525517922216332879858880363685492235496866623637976528493174255199696181697397190510906685513988460074437894015024109056424043027516778932542801604355732027898923329210912331471540939552548985734446388495391377386941465215643898783163039452606158134547225587855324761857862023596351796260670959116275161152721645869911702288907279455721598145658182634844978168198104420087677072404552982994694157936633293870044021472540386236397765314306397078789364907421193673443442255068214616739624688984690761158432611238673967759009861130190857035575792543810056819141239286202648917155918942117543095189628904910036877488468117532041511121234054089167074362549189821560904765714381352821191811149182219811056027963123885597867984681852026061222551019210118046743104995130541401994740675764396560793612870059159282548178008045746773186444626577188686534872737648893025560978653077698397332251970573402304413296895280033576626472661621444133917618933253054179186368883879673491588744985412413574287499918316409140210707297294477520327608254409699454658051084190262142794832987636781530568596174035179555146392491855290634355612738193401378283633229764782646731785716872547136352511200451171479148567976060083792919268949502857631960796368668130894820548987780268762508074065604040522322664889201967437832925875585841178357920999081880301826351159048970619702682146104954782113796664129275576308278087646311946442449053126471854142635510422629592297533259073728327321873971445389213152768234735409445182706942591797726699657609980564325473752192348018001471726936314464479316282525420798878685647927898781459042996892445425810451468975275031521256931550936278788101233907966092559867749227273610003829852629919378982690638909025038786890124484147975371700314236323614055744605775175385895306525851751068553925816958051165031551342619054839865831544437510008441836319678116677545261666161746737247034121477864643688732382912623306059940585328166758648077353973289043468945238137388196139681150548477990243708607328003202468182593470479811428931902069020138656504538093721400243670502609044563078034538806857514930860043626605022695517351099781085828052881948180135937513763653561612670973266360803567804222558686200044982618259768417546447172083536527632863241644753243615623544781295743501169592152249886680146024477905962118714439633497328921079389212271197269069040525597509782444754733366230525420783313027786145553615321064444070957909315787166366271239117613829381813669755666775473486684368525828992075407000281036826996754027475528834632489850731186753926970067788034478304791908632636993880533216905989540894370913535676044576384523783786283845726682230806326134343713270426170449451016664505144468200152028670161654365931969752987334368434961941917037074046483120110224962877236824708095187593481248300584114838237572058168775734773033030714401063583634842798456139177870373417487167002671272895374236351809142809094453125856302605046905148876346011413738566581239482940020100601877300416848980570357341567523350227645845782108315156400542688130099057704230385700587818670550148975905898703929136167873812682749576663322051800283129336279593869719468930798348031573498369217523661557760884608729778717461080777471989818783503709883395285881467350818230866472143738013717203149012989666084331162378757188060433805552436150424667424291911579563608941635265487958457631831916161184394830230588501213339031831714123145733244716020805154898187982137128954158799794384328890622768822201087669628834507771775071009155091977821307968464999463401367882635411581501313296539415505476662054034675061392649741856052620066874829396269953944062629642967644114256420750674675181199568789668487587531744126582884167255110753213620043953068060638064562871913529903265455493261489759093760534218391813507118438899321894048312464443553360756343454810316412269498830010860612398750315615539413455267281897238960241675737686459042260421581063226181802700070761013906138386735831320709094577481467888226701074321069034159646334505993801725850466035062436253733851266192684714178910770669791162786334113182335559236630637645096988425611884649575106437271377679209866265654441736231834141869960850623036653042586833252556063631622120761807108250595604812252427620944443917323783262882414357394098203658191873453472648917885526833667123403942609787840118418554596748799989263706465018361983360724103348722115381563133527029221515267245374135255061117965408578390410021699848485914171908736615816925313044767336409565037378747493017638909077296121903783394349730104649951640059842313013732554691286311869713841934669256874610569260360972217045328755863183040408898334835306709956151118128514476089143159067370170883831027262274672675557154432934210408962500531859867106839752333016698484265277909434432302532016804944953849082513899361046289087547764550922194999309658191964928918371650806131437397686172142484795236124493152138371477337169811233074794570690777190372020168255494240225714991780525643275855080532459900269739321774838248288696078915740739870300059328981667600251273860909877197662298640845280228452586427765069447236167552915259089027948221603452427074500986524072609536689183154581023168895329422448005279006625304747633072631840370560730947598776194413053972666668753593854735087424307257089148925950331553719151077263013365515285087587259893414979009906055804605711489796710421799332197630868104122946588541413815762509356785329321110692893484602904748855674350225596742058729158482441662331677649366807637115241627643466852460732161855001086627108151083652881156758575250998027218901480490230623124264904956791091096455109322478265426068624271160803924615010590244278747405924389735309325669902227039280601827291657223717889852436221335839947310981734376962497194943271525674671016733261950085108227355919708814865603463707855723504216846908501299045704876768518545824448971909427467430624621278353551166798803912361980640074235255037828024572257628086894197052039479527810335157714382862277891910204606051054815757843060652843416375567808800814188816603576750285798405193401917432290998769018601532268670840948999616311575453479484215778331667985551093934332244654237143754556928186994477107438253854142359865015535752382264927921333311342147297323603127683100155462676838951642697083644130545080555105808523269971138149502300008456300278561169742423783737690044412406638858949264560892799774851135968626514622730788469357997045161779610545428619659461067497599361606746107841546378950481135055019576236326222847369837105546913163837739056846087744201701204348110858074680383212188853006488025499662101657212152807385757581374895772205499464799977213147387626393138040930896209903516569246409617635873215725764264097224076391443542456999809694002691096013640731754334220715012165293888888814418425030936287663903207124613445149528920575040662439922042303848628024873347453936182881943695380801315664462824286565650873723447330858656844441759507687586855869029666163100511506490045111714397295424297259271026255887429620214694589850184607845887461307548094688097303361767607065452237507799138571922171701843202333810577683872311398537286065711539610785017185927735356471082683784039271158419775663420711421148641770742272402650085085845574850089454905665999544042296306745949952097030139501540037493335707063990293751538919003147932901184819872764383779927007662765300846779340993005301294103439162701654350427016169801645514291733016363404215361979383899866272529716121604584125113050601531291006186548153069509776434905362797546901122931314895135363456687587077462995172051822640846974316216270526254185906823785210800935758702586592473625842204840875200743591020546121109988585549200319775594278677034380569218217861315260918137697428163617539448535462586141715722779636165131647249870888392098258587558166264926896742474906199380429948968815399109505262878666288475718864375005492571650368346875918732866387856249065326076769691394570245050974892954094897020574219124949958391066567354202203161319859231215950935065195007151269405831088602853025205239144993874193812840803381643893061015767027563634868788330019141010969110762439425124072521969149298820667355344807549239119180650642026775006841153158619246482696540769314458350399510868963371921365718369696930017128771211397805424268576288938001676682102780833713119118631045193902143077298308313588205646998647994442806004074671069468600749468301731017008684541943973632037764631612917030042933869972115723216337614759700982319625666272623117249159072151566073273370572805241572767040901001036627129237787003660607822058922651291991967677567902166252570499410527128269231168999541066749845509721166950434603533809398891158307713960632982114597605088892263189537165434182831332438880144987369426407469518844129700686703858771644600823326083242267273222887813093748785018186015582052429265624110939106931938847724977557815141081973874603537857855483643457566205001905396155695055141815076082686112756715365638523208308789333194996821515576901198007929877356028474069739550172911493503986487677189262889924114033890553195863920970367806677507582526162556342190336460817660670220726254610622415427328736779583030969186286960979994687520489746072437673996594327707933651216455722285038546491796645059112568514961407158900744432021959955933677513014491299458609993454375544633565167233663795770603568514426507463039741791186049154219011321867623690716137726518447218989717710036466907732285385396460669703240004943372706821727450045173901881717255231630846955194481708319347944085041605007764656244494111168835316900115808192387664782327483853605943700958797276766994969467238646387974765526826634239430156133161948249348384472204699301430874983551648376961147983790141522082730700356743328827212163312785767215828817114180965950771526424862668174068116108601806652738154326405016620776545610343601067377971306708350745159902637222183356694742394948965515152757988304438061116197383813432749277009644117785083475069848663486097765727415799379582420595960188437720999128853482672863203571856400986804015607901101464602760990013866186623915506268142222501784836621851580509210106100422979156270424713486168821997485693295526504484242322524014084871820514975865224385638061240091786174767293674421384225962373913539773970464756651157027474167472223900748050073234809411057111771270293481779269861982172034886633029804636138333517762513307773253699779683573561296285384373628336588075536784805144434863630651390280478488682711639120479006622969188245912353726689117414002552347855222064133170686705007439188409492885545705762629548128821585474730288973622983928579368220809567082121774740014082324874887115996089780345879343403799345225154408989740481214679740158986568219281817128028055105242856832976934399181848662581648499682133398900786022994662909292476447428578118625958681590714959174293841748704751682493377417977722272905592970316914830497491776927124382362737172920330900094297236595736367506795972064018359239048899242492018399751858176967857995934894176373145506310481306154364027211206798880908848815169752000417329566203947238722463487007812393630979406572019849931284469217913597086093683185024729024255248111603749118503265344152596260806714338052196723996641254714703623054204173912235147202537875652899103367745775666079314748874686131253776887240888548236615090129103705393281485975222372425932011962333451267932258756722722137894463902670982732084781096784995037709926659376737694086585668854086130549854642733442327239822830789399156062428277777958346139574918243436054471838026880758373746176275668043324057316278270773693946651665408243236072000617716060539128475517067124474231987510629845671585420849033786465568567836835543213478657788159947783228192888472767983996499389275229170243914706474171289391746149786607029826041124767888123346075746047452487756245397441804755571696199596136128196223199411930516321076930336482168623746994522447388314709839238288776672907910829396795136170142758224954855164837403352531668902317860199767704330466921008609085990177792463040203316280601996253006266756095413400233419940651384601510342166904378684504583603079469732024227274746482627855535433211797638583674005821707727284575811048062489915640430013405047034800681059403174510705699312448092393678890792887364893514021663813980783215101062365854076968399579571394572156146775312820780936560911083137416073555572979662235365375051199484872490042251781596301268043442034482514807169888504018492626537920013971005862916248516253862815409069223968035215956513711802846769635231942696973414076824503288469919338466673832450560212375280336329033427121533868147922884152381362971103969619694055806433336031605865626548303154912628617328113279692055836092911496893777803677961450469986347808420222582743257830913778377124274019829387819092970828090675120330646562727785779895709888682509332615133458476291615318849423173530567039923915103289188498297680272598398719487864343928296041565325117380519034081610015469516118373119425810411003203321931496949971706111638364478095470860144149243760373088042966218533086138116287238048669033088027955640569899209641151112233433321337891869161128437787969643647656455874296610443073543456939457134417772630219156133402638577663359034025295920196271801150043108459117410302050612073183476152596825454684461319884204273468802661320972988745628403615234408108874412829210000818283098333562832499947974742335599931641537482655875750338384179174916975290034199854103096727382062778914971734275304661698337962069475896823875196421162220475490411921384248018330290009510063021639115998205691021324427841403503904963092966495697109241618841939069582031506298198344289860296765801167738910163113462052881967329354285523107105394791863681101622230374139117770152461550298975825218802622219275014824593330830107282284764501295359765676015293385578663287908876724413113684540622344821119713006595322450241262236293458626889281533608594488735927474551890846648739237364882082851775697587505687210357267356797878738678580906035621405594220126763392448825280017186733349756554157573997461083659653900064453793483095679072418863852995338527232013360647683470845034546445793098133513104572124079492406117268868331908745995335208271911813807703717927366140943715897559970717704560890979805298758244375281111637938774597590429260691156900509578610121177726138533296464552621277958403578131989529834565370478373605365762212025503613149568546494660685353256866181755125567267991314260396060685940150127888771806604297846851106840933178917486836889584758057720926070077715055761638977122926668235979378352671660215682879612727617185868638281492875547436957572677554777615897209553144131604335016916143406145312532545723936731565743208563627612789935534449645222175756181747557080597578145333233289205238078085347319109393923637204643840491305133707617440588953786719276178413217751494755243304203053906420421660031200899422977262360493834211421248540484288237649361191414881032136756073669720489409345953061367295556819611840162789604209648608204102906109793193691770966994739538987440858767918704958786486874625076303044237840109904184240108316256310761528111579897719007313755290781367603460376595698439029289423141649813877634245000116065774398675391767597684090096953322354482913976014607332498534971840481176264264799005114679670132001111716639995661788180593460322799320688815058545077744116977054721073799198046937092727028920995643198235582129532495820683271862297182001392402429702213385124970989607200823992727267346332542592164239241152729239979736250123591027008491160746118655232009425122276732578073372492405941480899320562387971972601858362144704908786058763107566877608005369027136196947163915190292925370253171302637260257775398935958127565010684530683735650425778265197881073001604757692564159327874337945548258729212820439803304791238794969357143709685144568852939549413244632649668246151234414168579321233844477997127395612415548989584388212502567347811206602384637177896355268554822088800769288384848661009123966514003435766571313646427643871415349897723441807024641366724472237048373189500237048890535464583555269551201441355856561132930080901223415146305941639419835775983832296417611498995010642443915763566622134357480406127968222710553118951004051547642246939959239358318127118986398794581470778729992657993733249363069857356673049846772945993021724159304486031782425088847199437240619474754136114797790432024743758192850654234495397723345687408127764559985909041712328438995582105398411636721442776852310397272497067622157588751612176123108423074989119947566821810296147435578710964736847351481278323581046024200580487113514662956656076407736151698442444186390867638219823608873897400823936655977739248751286158565280808598078091056857908011330333511128599360353529988640436716810568178466559013740406014394876451532284472231456743949857250574778873531287064709825594612583185822043916445526159287751288616006997437662610738537926652429043845011013633763220165262798334253158209537935121512477694798908179723207076286419779937896205039418818025737688325235218971453887814505154981765674167664688612009818738495418424647025374390546023671978254178407120128852771796284099496158581660303142977902148291935646141318396618389385530274621466821864389726733194180401640293775061495814315435766858529603652291834588209798366661894530325080154444392842410246135445069412373646023764338334681481062738886203600097315749527019010290704726015795772675515825667392539739526957162780591519891851083329048049829885859651349119390563975602949845922157533897869766521347940316851578883180623947650838323429709857902039599677042404020598782298074682514350002665475503418629610104153805126483196874094876082590589220284301989009560291331140028877860229788462701557277888615338983263786556159486136449395965891252816399536283399557349771628586301979448135830600117995976462297356096699269612471805496085194624123088768764567807304832055559530992131166968387225908156912241101963847839826141161198944988818205287987497760290976028701730149390824070896176065724628950238459814215328681959077032161168102733811748602541299041010903788763171686469317518387826195226619902919145490003475192427610668494918275794524639523136645863638682544292793936445490310120506043181123225205495014144211204940877113774221491699847911099787015497664910298258014627773034754039493615508420863102873719254170326876388295719373751667732608663041500491884355168637720809841088354135716907383885057237537839009684225875677393152525617792665515006414128764815124460778223673181666516812816166194020073979491720256695431569708068712257973538113585173530512241591252776023131472249902928615674870272435001224280115880214091826977741519931432824944053176193159234753555934042921150175726235473626363337386999023180204970762111342480501313194481643651316221373694031282408594651437199924817548373278393222143363056187194812927547236232560739771989759234372491876206727616400688117699484032883899233752902319237669020578871820888764362068372145996253126462240815021092466416047676526732975783075474098710962491964919919103839738285623273689060834258339009442735496331533603198478413240438834297470153439453231415431174783374489067497000619976326334250830715825425055952917653476774717953010302991980123500303246163380119054974156270167048950032583206629689831753862300912789709973111022223957959504873684566275442974224871969687253166199334961713970146791054041220888997592176648608496050717386583710118684491751546525855905047186841226382963456848228692329748144696519541718384328202928315083094022958182314395255236358461316070037313951176772202346649440125670806304457620021381227766426065911907342620960873085030400891742081330468406378389992682559178921771542085079485902809461631670608110204308145516583567132698388767705029982103077661982776577641182604987885893970338798700097824903625836286552994099823247720888914958775832891261399344465234649393337651410955512355639005870014913311443710393361154077952388271237280883813460127420582528445066719517220284915796921400726113913870117937696404866195948362353175024703408778288394300630246114952611804151214392946329112989768199916099739028211420980326013631038518339451305772482311712618253006773885746933229955342940602831347818962491398833955199126240502404216032302491601750225448455261148127416713871348890921380860285217768684185346803366796529478365382820985503797291899851804637926807461846509829977865919850929061837647718444140011922747405200289066005761631905107824095988914374102461610539500166637740850211826328739097294337392930738846108628030649447727686652176890446398589531004973159153567803051120904261109676989787853585099388096848219914714697661155254169106292798954947843056425011585256276670165734900616120112002259504241231274650132673933850816693911520506899463532697010826815652301450056386941725062991994901065687131125404805167429239089511270841056495126893220395254659782298199059540533367528583743600168001838368095708133469138456894396270698026316401246232787856742043989403029493302957839959683186622560880240953365400471571148150409617470443197454334766247418101218293349214701521931769164761999052488068715285984231912465293815119945707784056516616625997046772793898640904893707705357368691296797946153001681166166820373374170317123303040134024814294173417432186639737394784129656058934296873144453530689884345305930582944944185317756410652710158949523947410683611936246636921458391255607555897361578577658997048347723342667037248684652488729421050614155601649510112927018308583347384785788295264449827309097582696391633467414495242349920969669196158587727419804713955366916326308240577602656170718248596275126791074249997917598480379006971192441577657522362942457036137826436145445639963473615176278962211227898411604254568880740225369389036629706712968177449790569608769268634141496477737204290704907494281567338901788055798476175381869779325435922685703401205174890284754490024691344412995298341141997330695794650750176791747464294371484223711189764416289519573437034492807137523166933639821024384049366677985396959787955019947019306151316883370900646451988674399605736890227196532855143040117580567737746507322453989741792544805113357437229321292364173915466511033015192643875342157463395443682085655053274239956702139740843575689065918648616288242315442665794168973730516095960077932047397040200764046726971690477072436006167754759876338031580406192722703685771631663666742052305724204939532040920323503155402765338926649676191973792706343295042695590348365754423348943688271228036777715877182854814503800387829256701815975969680084588751534785146566405059316428895055592913887845678890831895922625449648499356765828528032468107104757468655299371827904246433168950090975785268596939304914040711932388859246443327328871694807115797678997059461826013639364259869329894726073166870888814290666146412678430183725176822951571189226358161322417039994513413628787997642420183426596236535095049974329252531496137422794900303986579355484406285743321903814771697986150622789728112772209311307266603624053357215303277103050804585613350784794284248353050945226005431765510076140657868863272831790009426516173918371266817354151023028905227059096154519684658320559227183877717361829408777306398769737607335697793826756656186205161244107440220171642413168475055902739362407986138421331240132642194201478401596880749739481480448911083064176762014577421889652193189034288199016787671152082890393303407706255881593825033269219487413665194953744998674457604426930150390460239077328467294417018459212282162602766724977294022652951474104624761044192379351288210557336540574857259248793089052346242792420041974622913378382263836686775177964386974991989567854174481852825805736735284648905802263529443282693606716979508901763197372472368949952385870520553418181466125360946665280632042088216002971819316236591551379363426918693248368962595195293214190047498618656119998427727918865264934052566618286283210449741171691651211463579062171606865989391086090876794350097991695303942620172015725497950531806523471345694231924085909550958742039778351122760071030693325919718288986394773063477407508357613128229571633321852807579874196730323456669976179580407280198485954542817357089155863410031507040268751176611502926717532827869249915859786671213565077732170424760748979470564166033144388281853579464681047581527346151169515379572773515019255978394342170202952388207623542646237219947727955154294120251124944171170870144875646229864457505312107499150132827870599839490644528546291505611884247483191529577468256722841077892393480391417084897436842747927985887569730161996957928926155502696115519189397252981747726387433047665550187947969810812155151961126741823466604150468198794725184301822578030171953973892846275860448457532732725535594458514163479537736160164356638852857659652358671047423453829853014245316486604247079643803583614293194934008171116946474637056571160563622612614346775141492279984889825460928885316288534335345305125900644827617148032165382880304877276736468886621878382871796483914738898552129386782259632037201481192648139500200737009517579205372937910358374322753936055728771357455370780397616857152869710286877922325197443208229116374633958454063776549383276226145479585783859568244740505739117543643824107165914119381940105888120363123167013498394955013265051616645458724182482174517628234038897089351555727613454077271693501324619909708011599187175567171246228644967100787026735189874549005103049882845572569434101784605315256021437287339955996249810891755756705028227196863905119591522136773992020852270234906256755091841808421036921575155962547150716175925930739925156599338484556448827008200215443574985145277857349474215073746886784148887245919072134645991439532643145751784601072536557636745285695717202064669282900150785072706383398087742394471009809369705886815895463075922437332528229132366962793565048343424526912800442587470757113010335557883733974449319732088906390114912126460861832433362131970857632423494255633940118115937209054956707584961816420366496739077368650395729521309849529396023650843664114637020681704580780056365022136363727867500325454531499148613501633510198367336476871123314258198309498591277700821491474665392927443762420069191288931175939436111362123028029848247732232739290088520548004060934781591300569593662384424060685796023557051684765399413750749974339706860369307090207621947331227723406892277163361621422526943202070507783330396408172661723851249384774273833823080660526937578245629919675778218395787853942206569317217353215191321755891397925872125402148493039347201658081939258003072280948133395982902517410827088700186830692232673481481994685046404121487189283299608040750773254358206591954988398924203168141676265538201702799924533372255816396710425878090479947872445393326447160298699929244121639864479228060708719814828727894792193551396314398532437477854083459012445076494440254839935650882183049270132841828837918571696033947875685253554157945680768185715015825284562895419993738698485615834046392138998292971224097085066209397447343249824426624332065514889910745533294559844174737561501882903720358488400027261929105189463267182515111263853888295708619739455210335575185463241288674381268176956205351756739241462920221853331444671168727023357174828878072988972919027098382608558217874377094831537423285270792760023402497120662450652638829583860629786840033628385601338169215145899596908158223615500078570367485856305899206816373064707128357002491912197513345812966154475671212129997639725210572179687194856143656820827748369605917188353694706738509333898945292085739339286730826328661966276843305641820813186161192738453802841038612458652144771715012797955561564607122384234602190508644190620902306988759394452900997727635898677312624429453198938125596281326939247012336107508186462602913277780075225514571276969278929548656899733841085678839776368490020208095755992475772969237515324985580935911868513827581546412779525700766374877259071675568209566138988177584586314503309657166316146159353035653619360197798365006918262900378001703766193155032275250602596032936673239568607889966409078271386118783602854512036867425631249325761149268489369636107618675559543712583236174309320144413860509850819185914012665054842144071234191898278514425444046872779917333915158304192132738203752647810295139512175119104280246144088671277056836524068573126747630247423277262960657547527694916831702755093314590146362049308734905348685554958025666932718358289237686410007743212710104059082672361995863809852849456573341831139185085567148515463148103128778559512973636348540626282284579155900877947830827077325224667706044624617471405223409738587908246726329361367862173606411540443219112067551728072813470561585320291629469244616078474834451572712307588442961906713019667198854589490440603083540255559226528152300607413836774908296503217631517675677244361740669163933035772826074930927495528778158019190422307078636306647857829702370965075137120210675292504901719262928566127758689924009427869118696529007356662514799018284763584177951761780441036343741304221983186734748559737868257177367039841914511424236164489315244777850950832410424334845790527047317687793185492065803967804670376773340739355867858069572685584955016161998887747487777155565512483240732020073059819096788298430387345767451922311484743410253456232352653508934616041731985035114919084463613902266234617072438028120986759842226736485607859382811243671684630500189873769348175493698929119999490988648971700923317636661760401259313666809465334565423314489877236458482792352347317626654807313644226053540435648610669996055385065598866131763361617703301673286834760899889567422598020111225706373322060080400902717030090400141689129327576978260616274680724091237721348344738718374514820961854482341538821845334489046912240176711922580000974150881781361109742672732861092191292668932062118583436171568446639935650087562784448581594695615323785859852050222808863979378221928482219394973268986109077364431592599715430036836501575555284088618711454854452532849230086039354628390361529864554054842051354934634635153252116328461298767566781633726559332766740391722761063359939266111876603823629275183184411460588090975098186168400315206269501323583247611238512233980005427794972520432713189490467873264518565060876309070792770966652520920545385711082404048519902816198988333345831495802742672306478876891637708386013478224207244764938689129153652739016913735365695724708636266455923857976547383185207287201926462008966012121137716233061372287916217062485366348866010317264342896120711833456490956192877226401515866888691060501757581338963154609229949423388050143959991898551293187146639972485488759783448490641977034430948471618559211831800633677329709062609324054964803304779495317607705673050521988527789570670936276556071946977714717004123841245855414193121382493788248529392578284825548187086396591246931469785108206158104659033545227668768283033802409372560498528953518205915458499734913677521817562609322244339584403352649253919953102175093851855400872527143849675657736062596992512860005302854621161438271744236807146297262951274495585949516875508915668201916378351746471008114955445271871787454164486126905638918022549729790236837247113186712565943665707176702365473814718486783267041012604650289913860719972667226289685982776928415879597440669135279540565529752144690470738913180489232262630009475609489588006942344687406330049487276243901467900734299995067162152298882987361872211563607533116636416203172342392897756610351652822459227457445708311611541350938882915157049204344046444606097866961879251792990944884673735861898951962353910164547764552663125038326502177674707980506369834868973031640087555466087263250202099227424691585863974944151104180574544750648864406542219655534070124232835971983971625864574170905864544315279524651126066925943092068590601055361298505497360202365669337624185956177780829495085628995109369331210080188002359138383198032986115276490820194193645561802597344046676803174280798063005862690361775704672054454723686615613835359246347013748548284288584722213056177513306081568266551027932248096174035760542596992675638195446585529455421574560617223769485589674746742264840653735637306566175262118864415169980247112633594363457603003845301817864651088843310727344632782735550838744516943292239529591641880229695871247898735391651543278674065873077792433885603791155173995970985805245462800081396595720247018087401899712057798392060556106604958980394313282584453147894553192995769600787345176204405188179852044966482185904691462682715218915993480601958385096013512678412893019826793127619574409287050028277332934184366071789793914120274056947753243937412667713460168079017531079647502113994056351319685857978280950061080026429627537247571117529394327222589817477202374460020931813115927787500595291335570897107385000116832407589724939600538954541495188403541075636555100665982003517662797486447626009834636103284790979973473455663956940995286569684772057657721449005237089277767711906121156449821859295358650135074630649213225377595789912065718505357583819007758518918903704305696787465617558561868652136369576123267976457218725521698307560511139355966257046183849858144465385900990870726645441570793157987169623771633685476065211411976103508212331087020034656957136921362313483617096329830720928648852821855840208526011293853738842616509402966356590442701594833608000642505013516507097124118359194351066404829355133020690553248481749856202983056907819039223347398363990858381878808023413891305025369831489290307490295854355621908255709872327089798057600991127521900172189283270505402459894395820318221418836386116647695232417172664368585579441996795489772022867358125987435224342213655666017369224676132410761000842980287301601842864950575699891631823200595307570658523926102895372509727900559056442531252317491526449334255107989469923319799786773497267053154914587199885522043892533007590439563865425250423929672572999729927253417806511562569419685234010840687864262433644677705636195902324431864065282156150116067530076345157951644855820624876861668609684833549407976059157898812225997372537569977652687846937662685501431018072930724251661186887696849525274219016804179034137472130518049945259599071594491886878866425175437603061358942082259082611975707376153885512701591430438470870107015688177903678513609074759711519572807310079682973939807710365932922605925550760047300964455929148336259804564904376064955622845938921581713873044283984889407207962914622936911315188071223780328151527949411653130639682649495871575850202761748594972266503146647229263869332394568505949822384773470342697667060935043264361523700443808067642586615536871175117648025180234453715402172534787996557887188736714564757196185546970164620930373268278899546307223790881193327632653256589680874519838757842931183459457416942314914178553969286497163312435242396436462415028066718868616816114999852103161989067409920771061089740993241170254309973280818213483297045257467978255065439526118428932178290395757671425247493035989823463320664937921401299311364698132314905440733894574524929550061839965949793904678984077323385694962448297804804358560154340991783569949756389050993503874231065709939115857881361436327321796460463856800653442925885915558971592461205026716533234365111948427665261528704025029188523637778193816587476849472882345622448823847437443640563136328153986936408366069813962081458238625262977351647416773285829417477743659024564177825924985398310690702146085586258041097691054419019773898353998107831113521048034932265477599589583927857791007327743169154874730473292759512386383425084459957140043600624324134851022258864034670128661695730421828333465166375800352845257088128147040734681564724509261746223698997988313325099978039331454689246188390785583298986444434679909423838323990395865342242054158881425589531572963294615804443300545405940071271703744377180496147807636538080308169386136935172941291364611646439677551906687917098806598883481041738402519451172927604031345862238557505353700103680808852946532250052964190161355412139427917003335685490570070996282648829298740289273140614905436433875654092463580692427814811724855418363933654026480701643815523261157984792757252555550304599814468040425331659212820837717511736555761477829964176921738489482188516873116835994392926229840095147793157185997847970962714664179620537430084777710205659809387959239196005527751851606677736420876232118618363418223185448480079001074601441459500145069025153133053803886471549919756209581138044049876700709148620594161749809456244634783803640104300187143263968267824035889079810779092681582001426526106631343431793061882495219932295760413211445068980182074794223317630370402364171534185143520282130254888538601924975659763074802497245539494108785451968081145446392142153834884164104019539451082502960528123284842863749603653839401363367548921297492806502307537122644314502630577014031623378224250073268505786523942677608027275185017955085593427627791255407739212132535410939062210535292611609312024506463816498252949384743416471931765826236482597178761424064540754246361981467141031785575250107047097983334042116199918581576726581009506365382693650475255630305342842373342057251601323442018956488629254327669860362689115490487852963974374728437871303586495833631594775054688510026910790959420247034461149969342720049850012446302318582895000889230373780389508797954211067499535400892892870781193617660305369139252305151091671897154779114846471866046579854107337927196451394735434779458038980870197744757004077246220632544886231446128157226191040584239484813980621975548277100158465447531622527882156753502117838132351259902374506810728347290023347584977447571272085921169092010696805078350601758607098951350750318586099386044441515160783620290317341232861118663503411947037371279297963493993941306872173484656534158511185474510921967429244046919145151327967329014771231817554497263103708867688298766859475787457181734780646947172546918398781603220480689140693234110489132796619838598997391784193760375494080726726452435700524295783802718612925592253310881092664513441002798339304880441013707767930388274841592932183741145437059693531894984269743176414059098999415829479542262043978726276155220256390671444739706161704815941657871579709146499743161147017629684400493715959957638747917982242850020637811622646646182514000475893177352720623524018061315698443952317761204519043095835827734490579733873883870339122077840930572848557671201804681058160184947615512456602390609973023390645826939375011351850659610173297385835778352923243939009943641178144752020091144912615643795900096187582232059631567839065928600815853351237920610752041165912880551506732593988188630437299454552990810226789401377733569215975865694782213537145219729648383304394671914992012722298907153267175505727014343740423736777830513122522094525193651855113094877644157415548248019636248889674688537158974474883506661275290085009138929932983111714279365479721457740448252729563877195493637201467174640664401969789631256831316330807276229801930043620796109315026044799638662747869489385419466024164938365331676625124392681042423214844850100662319466405960331753764311829062653004607376479780754118570083584768833273951160490539463963429382360816976795152739262295060631235556784184355579699880279376077313288150778021301205919168424184826450614418359839847350013956507054552012978732319750047628211364007909470831678156134330067553074913583085108407377310751501191657575344317388412419342476459091144638503514001029254895480438374948445492634452542456301438774781996073870499950525139649858126771881435034725578750038927917694913322155945044076238046290654869253666471746417426687543961204220070285467544049840083890474186567272827381668457817254730054625762647114630056805359906633416008692746101311086860888847296497750652731687793975076979465383298172191176143613327343897762227502184223310018390195618408176143552757001463677963753907311337980255810131441613839770701730460719477282268147718710928596104836964335153658992324748849404915398003290404244174721139423206608509827524413461684998959317698037396815053274697790330203701030608462591129161202510659234451531579971195309675719568224667613890439491493320571184078145210830892008668472431547009694497980829044122346771569960459386742329331293398881865372621725911921312096638679403874751457948216295179293049361200191503989512576994524218481617557318177217260549189069424555381995382494899136405158690708076657434267655688595854542876979541043622100750894202830372526421508618629801619991934288050082615868179921493370031609601412722487096037864849311837890650026989446014756887213163917141087107738884366752307667813646821929743316942608751085850845653659476949057362364942026843647403570193175276849817153137274421330344271145990613831963265381662959407503727493090661844251097381978639519569883492521652687943218213324154572717124982338883717720926059714538224248210262144862610803413760853800067868019688225964850258789731756392921141897341100126993505885110390244417855891440972672955416744689815612731922038671455132355192153460589415431482551816209499761010346703985862156966401672908807600604789891575553339748380763886376032530122335118607309264929676126984967992793944932721243586564574735632101190344879859153843997847102158464418064438903115290352854673139759589093579074654547633608184246090082583888501726070311548258287830301148874551837064561216890759844103889202796181260688940869056850552171513209721955187698074070221115041049682774429320935368281052090960270299703943734994992975496381123831362714953665708116691148035202860527937887454977274163832383432689320446406689370575953182609514705888401573666473682324433386930028486362092634615963883920762278320309671380158486155061519561123271463081107015348096588213597253682257343869379005491742572866262302407320191774080472597714643577696001433454769366545145489655854824976695459743734399354000793803104573802671297787215727246580656439537213201632029762494411535796246315526510702235515198069247845148229125726266641880029496806038042121131581893355311199215712482649320656533138403489369039007345596145756271438531786355623681189004522066929219094047298046507923086682005049879429556164944217446221981140977936105963259118447458474358468138481338376337552573178482303033205553796319725032355195782975302080800232855345210841362864779798203277667123636419727848209173737814564748707922726263617114630989879057304295161715145311142698504296663441391915293790079660047942495192169421769224211071331190848142652776299772135895342818848184491686059669549077333973896996797157134947966840712206678236053236786481428565789639452019163925377980862905341431472927170761329939002756659859005553383776692189734989786656137068279941752210192222087430758684710936244860298973046182449950289916394485399361503268590471863163270372135093072382681903095846093339136111811810692001937632738172219810478511906002806051751437923001946672346533421087132078541610766737865334973710936050728347279898633274135029110265951656760990048666248593353127607504231549678322255074512471811878500472028519185742968272849106372595801934560773114996226180136910888236645949786598240271961129694966239105110927890051920559047621111823294607074385652238673198681233892378892818890580920569900549104057926631434125759055871460647738143220277033288901536908035818965365517310272575999886123163095050999229823778619072904926888460595489549833683900241417393358462282863267572846163136114014450351670446895099338036040520146653501677014687032020399420067217913757660799650587999784142926519511850132681898013272098450063560445463491621312191213596105340901533688496191513239852472934059220467334393035226022095194254707598446085555269795545995634340674086006109138710252998870126651633773020625689831535766275698742902494096846900907055945929466125250729676731124439325976146011199642155447997898213988946624827092945095219645863419410671010865495833845890914733811940121551916770819728017321293016216360026044899348475109915083298360130764024900651632684573472600703156666125990808359454275384216822331964896158211160644964582101346974120836618626611540729941496452385502359657256558728563136932841277197553246014188675003733625010919383283562205288082291470029779077870003343378989584304058187346347898771957790988568135749562358323476301018942821434573310459332561631165562761218040540792721750843271654979316630902605866789378483883578490941998578628166718547421809117625784003673063762101365970809557670709099426219951317555253620901107689971557070989210308243905567344323555619213315053183791070957573893598254380217155080270491792971866160414096021930355186602890224333549237466247152379454390082446106177913600248562908571504916397668266428698124327113915728994462346113820171408459675276031920773100606134871089019248450084653884499844307500853835361315622995949023427721141651358539430898005440125043246408053457022277408857841215816742739633910377489094551643402564279613117019774907361608770818282326021332924748564648004040649858103669293227101707217798587665860752017563328064571630511450583396575378435163047993729404186500423745413054007686201842788025479932164021354904725832714826645994624382028396358148501134968672499583086680045972127417381242627103394681659730875003948325697643686381438093013577260092578267887597479975140907645028092111864365441995461725963637110778809222783281268426171451524266298055445281732383051403690398314852836064692141841692363130700238445124190600258224784636767126889577599133747955261992665670213531614838247569256647571686814519880947136920272626740132331445531984374705473367039973401744186817494310146108614483930821793678304855449336577672409026934139830151602958801951705102615864066268155573071262233355265909512629964704917718899349316900073233110127266607344353610812465812391653171252850393067012002802375287456943292240298886478735568243426228028662535559911889816295335144298018863127349736504300137624220163111742334168925774146204038441874499582720637116210276360511226669581610875009191239168937603083575808413435031859133818653304195076976574940911229062337254893219839386847618193231729586244731403517067904904760751146298026025329040532303272542353167758212459749245768502786484431345501381737761008499477975642872632133147160853441065575677354506050357283919130738756077702498283197752691496628796090262010823608594591957223949988895929161846552143952593471915551822994914505230534282869762268469789739507049519486585638086499614934154426807395819870199362782456208201279495674172717839348029756530368108751880422609853745161046764532868786859710579830991748995525780758354760957808203596396362123191222747303909213214158393720797239662987235502768567354049200065039556243279403693716163623640498659330692265535019525932424306208373890328954004299906056445530094152457521868539673700310823516997228063946496454885038686622787003535799263802852332492842508650523833821504945923955698169233652429252353601201732367292713298064296301972726609142189141811982254443725619639093959184450450889333907255777332779919958502182343564842665261339565218366266044348975104138278825039235228838582235038723360480296884543224876243100490312869828906275420885459408465232530764836669467095854676493351959585267230392212060823136266758920336996710588236003527489953612750705313106834966334272556560057993181913943139606558984249985761774079822735749509062642899881687701920974738530325172421720462179305994521547067432785489938709733430472806891161668779388697802360378929792639393501999559260194652579877291678438467454714490809975131089579669178423805271848033787122980391478877304123953981131846255937671885874013438034286523794271018647896897303145082434660687510813985531543207359084469622703075547011277980798334360200918511086494335346681542913003287157232086248038537494097877260000874011805955859910213948731418791225282073527701165056138417046431848553952780774150523276268511803606288309767163792616655249143377875927354650645940541317820578585669082122443480066997475338556865635711436057698096103586698114814821300500360166565588162281206094819731997040664116518109002947998573125587578836936415687440562663574430998232064283649930109920635962045655276824364186904910902950187496513633938120161608105300484383056077157156775951373391474899320508644491234255928706032412729046791111929975770001669604591957942902225866565360852619816140774610441964807706490288634687462328216373644365942993413778419030089967445645918271461703296181907035415439614947579186199140979929467603470267342748532757404877956399260717685592766342568669890867066002432007809250117534938632453741403608335018533775243344055900059700220179137466612530969754696636317663491329825869753183403272453176767414085703663813621222316989484036520569994317998158843974715881756232238319882636432127182488025306581610277519227174286019525362703755979581327068305929799434730451103991041879223999584742541792422247307748105030526083735966609488915002801091017708094389057467912616929830660082459589410332390776227395356044238705866477783168581868370511571507557372238146286162926231544768306559703976584318828555155744147595631096936680819364004857767393280156922801122904874785614192033370469436923027182746337188893761968506432094670549415862278107821316463199647032689838497786731312410596908967907167590524825335102295775793920867184491514469241803365169072947885245985850615850411202275651001146643708466036585631859269828477389467942062839235297880778226718303694489959607523748968850193192744196536041143195222137938891611637072262416874289166988444367519315537794462561621173443591032494055593581203695573499841917355327419463992741302274860289184908593408830421434051864264033260584536793359644997392463744755482952569423560159713678212607868757865383141765219851792344257044060223709454838311473816766999109237535210410266346989883637370969080713523155548381971510020009556784856295431443819273754134805140691269987134061160505753802035701530902363926290080844365895480991984696135213388021690182749036121507555747727629998487581672252540493145540430216563125349384976593454018353805776537934131893146946495980678823851654984737429204077437224745118693419539887525282430883227723259812780447149668906090786718029390236141921408962981220893925250478762937168775083857260989662509416674790611538192969175157046279719731372911102461973787386893779313739414908113313004906169164830949105254128758275469550285801638450129370061107030574233574209977260329779425126265299167750512989146510593841028140775126230478443444851620347721901625665144681652089402222797783478795485649822177836222073894592634395616077438455893738240187938768259034052535102106968624626760063413258468034053695916438644938082362130023527848295067164582489524507549347112291044384993312851005869483307563982026865074183220484720942470977842266860929533828359917788489032204943581428445741626793957973954559840989145569940344990435915671799298099967378837581747609318491818148717128596522547795521135440357732704160270478798968071929989995747027709541294265839737312147522284827110108096220550894419726972900418287588703858553219740502055892707354448805235693449355889529994997683557617465313314585643100922734908772363179979468488530397363519527527814795541124714306499760951201961003398556705312284773066085679622453421997899574789580979342125005844830172698257675268232427059789027424862521076607535848230405082393411703810059478165650884464724144087597748421081458630186275009957499145299561093174451589292733939018427519735883288772157916272960850482548264727964981565176016176362309548900845505507473182191106213689488894049832794140332668978962017627701674462549656188763804814391869885935931954526637897812455972822534210997095016259686964068304286678317217167786902706135266524996491800912139820618152557006805012439526063329993537308640054453071242253677326724900968736754397031618122219617289943392667270173054295814119686950289773057841017614875001267175110625536546408985762192162030346775606065246363620344062015466742371621196270281830765565242367307616304430195794225153343244629099284605023362859905364857402784648630079345895885441172434036316185554302625153549981122214309934533730075810539413109460604446316236739133782237483454076212730796996774367437829956319851637866494203773577892272745362439384847243890286643108883797644025492196003924475519062197356381596612120778450308352590066474675117836791513807146590019876148931994981239629124208414097838729078185202918656684911314681275556819220282511881804259632879812072228044321529910888605854186934510861602993615821648664249987169764666702876491934928997624663485522293039062855045918695138283618780378332233147603326086487612120460352316739798598707756782465638761183903669302062288068008227133970800248641822668233080990762072282174450073148207278162174174151061233424898793181568396907128705989917987818441016431468899755080016860417733740970317144966279340155676988076200925414746938214359938062107706819919038875721807854299769588838552556572386074100881838042284961281926370245912584534657385502887867659928225683527025118776255928035096250118798765808334084458404339865150581116195213791417670416503480582628511414880286045621625849623163101324409487218442956172603199182564827189282203691891090583325501007445205036056085141175912402536015192633208848909816159739589359384677073293138103187411784748284803566587503382633849070703981309762648293656844978273256293247099634924386487647423833066994851983615616922538738565862329572986329793200708908181889447916786334644975271526677823614689847102538326060619895611380373745581240041644797122567067710572658947055286463536413196923702204910268593250440264211886542265795674316130899809928165151579837796253349383924643229660416146836015999835758538657632965775678690922927723870378942857894056788369844449434767211831980698972045983041241446979503481862296450645657478635019029198914421951271673811476313306304863861544035278234020760309629864954567235770525930250784409140901525541678831915011600787353751128392397558528623304176621851020619939100196656342572894170680830911121988958015664642151586874945573973572761280733113801211367890410366028976769320569408869031989370168919222734336823954640445852050127311829805256086027413591850119290854655105234537051355529942096788846292487913875713584183306288466918683601488445407502637128949976282984171275935439807026389100004252207029403020620056471973895555984440985746758882768810750382198661250126037018305431526160940287129170761047623784409184000291696090709861127322931146846040189915249194158113796775427934270394446860967327978768616677706188743276545791257947433268474948919212733307354360789446027880931301696716292881223749239714191956498821539456027269890812371759054428655678222966624406638116066770712345554791486209035328989671681423053388990856790838010606287055690702324174103480806835284738563578698070664793796407395397405940666727771282742465325351859504205596424340069442701574912145944931829749460704478368565156362170077994921240474651252753534467782813483120533998091114587888015755321862086410685687601552531958354550952510034502416382260824523994654778193967156662194301549306458601736712264559981036750245540388871394332684880839854802823700859631881114985460587846759072161326620490139992653777915828310296801891549034112709677631097235688049545838660607098893444909349313528187963470297059543205701836215365819294082989482381163935543845257002313145380942711399265210214826196883352084590284942793127515675593010632989663592106514990431079969037676333774319285387058148796888071218398875786714937083616624151589117042279305046681660777111448833854947102803905778116520038400919627203392776889327871197577287744729521238356527990128504563598228092744188051593193797150912349675888048676331742612183705786627026933708137462772593285207531702575559567569097951631711542397035545129566686076540956482048067835100293944860561207632492196845535213743791897771635074154611707012191076833729956017043539191336581265409563990101969140985924839202169644426656530374637837448058548612176426434095223673246044865220499517546107652638465453585492047473562853549379398623398558399169503556327113178210277520446733883051400310943317484054386535436538894509671307330378743473909721262030937755867125316265843435261996632813564995409813809907439280715239578479899720363134336094060947858466117984021071139486678619120708563045556476698770544906483533597554434446997308044564240563461015599535188258907401100040030489241349631326147360292885588097856712930800803826485558832043864540726650681217304484605934085017886293067814184473547139079528147777038109182067851558980324919856701310741065895619185958491727810720059820724239479809620527093017254219743905112047435747670485269591035425693438814937839772781389190630354890522685992349948366473178341042209719427736611541466393710440836124497836381898915761575605488332143443727567623308725959734486601103901279487156709895754661467615693723924541094133396874611317683405647803576557490630618125406720697953941035732608055971614780662305100691872371226400476554334674362661421389979450840629264112930835404483999578496059143257674462013465587932705278565781184505770983227699815321037179348689598688485187513846016968127580862705539860141956361176428359705516385712459094815041205425175688302954486253040959750720104203113313299385716072716279527229429653799220516522221840764841118096115290950464420102787950461181029810750447884284949256708792018241454263448953548014196665008861055526948193924508209644906718403665218363876804255499373301892573091800845991768775230739094874856199023684110148175510641087735911946085014922610885869757400340400139305417489214754900231163599043555383505243486764235914997033598230587545431087648609649367946743365992072661427350732049317486771157145535319323617611278480095051707693285922653624545589654987991512247088551539356048281965203099979323511838946269399392032846253074646300645541429130672213950145494655843083902803156843303310866344393681744885132962991681314167360284645732532782523722336164671016250500344812968323760156369451374740141703781046549498889931422249749195444739485816533891921383442954633570786041613263151990104447079200222005508438880074133946081883068768889552299759888036231761878066836193979924581431056043935198258238757480834157718127820990033532176413008885445896278373323638720841255750566988364381210717503185645689795498827959917249247738251534449828250556983561814968329935693139094872397878318556496008508084331358805486977804091228949025281296262113928278045056739403970977770883479144762438565366878574488365181113099764896136468139998210796742584020577578706296699498350073449385828545616952125660758159854473603757591539300474858074167603310870833697913197918882100857766585072970647751667478781040717208262833608362287162562598778683453620440475627536440936222304895676714947765406527186471607698206195411555688339753209171448626094814736698485392764076019775694130894772947401741153449505866336118202594963185285269675880104621408316066825066983419304335072802895689027615708195545860977504816773368415859132067213765655581300557022588673622810767141828173785942182319513446537112403365947425334863385047372479454700350515474332898522010963116077403579664607847070477597320000162951204558765121288863257592730727530643705618577945284382053501360610042493129108928251333330373583926100260763455012247762054231045661991170306512238314808155721537844549147567124832545883318860744157563901848130396655396861383581585179162059136275403493714753952023773712223961700391132964788844926944129601490539325971176119274343681394872932697943810195497723097178471287134269108402714423269524035497267654876004777352587457386440287458283766475028252643924338460899141390188073451583678055866256499561991131427107695560626216814844873526773106827284789112217133319183565086699294868014190418393742024341913827674775423470726303251248070563593064490531219375626183243265514128930246734712887570994035785117193729797715153525919957280628280927526505938257406718273327663131585476336835649687890542509920357387852438088767564949128373967370886741667108031395627747827533109360595219630816396031383649513221092229918519215123091004247016078806217163706899124476849317221238559061112738277726291924445682675228701887478799241898866470644003445181893166453624440564722049571699125996798382046619115239705693065051102135160112399406958553992333304741056519941205795596964423341420761088262359753617708950887434624773291557957971540274474215403398467005532075977702573618372164897114002646033856034932335100532250518935791445951081449396517139310109617529816994407474563559711740501949243461617826811050934695706068646851835644083602079506499911558281291077530942613118120478207632452048788488928688535928005689012331854136201043350093447421683235595293901984034168119674858177368356518391251810961475377303601384835978567011939946311437523025312630391528938702478542683927279730131905501507449896621510989160009403615692329820827604365919876548426141336021488636005750906771763623618561023979917043533136623342184066301022441053490552975596559174135154965334599966321335613941358873240892674482936705900623745238538548820194587449076187524475753377287194704879773962122722159032595396066719666750358178372226211619310621452923736707514114509278594947752557006384889759774320206244097313899740913755920745708783723625177063829695759592731776874450372287061174350739188585379635462423906000934772730341759981748455403512551161745236463768092235404131369175912573401036274169223360310799990498674221729755854972639331819391322117063314917994258515405910383355196776356600812386424356198091754941422678606048250586879539514113170508154365312610984769255880560418968832130302852611080346160070098261344533662796428416828993390254101779533030108943088616953289374178643089009125383967002465197069900521352635393121972556820316068138193055855358400849254564134610222010984028475457384199204704047909911341621052292665279604677955894361678900089614330076458622404809490348097887253423372937297712518588421665044649938333883690186484439901016725287999921987267735304092685154765458773371447907983339272724648965581736848350895426617264861337017181263190599481413197829938123718877815694173187163373905736132469651581502435983971687396496144611197004097962718191639032753691080240889735003833142370576978984071150364301017101595205907614667031891192194417194433281470333338821439138892167657037648478775836567740599140909178680983132457861678425051854415488290454344468068507108908107701850986769732644803030020744591379382741697902222286928603573270682135402938841077445762876848208520666468742986750472230078766878088366906618325890087267400451834161974091383708415603258093351572571064920643302679288259906792792522482306872883721818383153470528737292111614157607858081221397932138240241595897456658991089031641975473753260296708779625440629811964356543756662956109666631105714030327028674516559974566812606092446612157986971293573538535145052410939738452096114437309906392824616777524987342346245528395976133526759891145820018450270188406830965126750608294641453051523921246973753252550812463838863030218995880007690415475294614645436587997917728737316708198600416326058310835813443534239668819235995340814510822534591212564720185128562545973417067233930903485552214347081193671338362180109769543325803053231559560548113802092915598950086865934691837922994949456465418482742120462038854734544372611689038661021778060244646486553180317731372560396408483741863034239283392288369265371400895510293723481011557194068471265254261867902546370175170289148183448644787788487248741950193794596162688074403614696804606208529246188299558719137594938142892380266298563371520856544977858388182547301119585883182661245736457349223367754942711643503890096570514446364150679385613232130792856438720355087248913997573402240339433126387281551899866392615765226212369984229773796297809602357991778675447911794834875289090012326203967740150221920931115916095797092511059182155658356836019737281377676841623539138447431053347098085097850931153979302194471060807395147082336197261765390397537837390652978087928603609272734552073810183416027086822652550726185033196947317198575764783971610746175247357543595122410422766532980629530815624666392850669410180716980705475586308535392959579349414131394424409247697430968653278270940621243049076729652628242692604317929588991620449413351457793788610097345315000266346419163094224443617659825851967893258155087898333072611231696765439811444583534675652882146868126049599302312207883698881432047145786556823516974261749749297410878738371906861387377951622510364663993607505076566192997640800681976498608566645650736826214091583573451734286433089611039165776272728264580397519071810786976463795883900711389442484496515929480093671067790957009540908902494068993368205126884209256833482611031944233904673654249928197662301887063491634123500310620209773303519529490422689153764600603434202581641934189616095255429309078159422491019336962089817684925663509789511082053441610099964646385722376003656810881998892605115485917687725664365944555457317057700515173634904414988481542821918625690790181659756651342799267571128650538711538974418699516929255999157477256219239050423811177068607304850968579757450113542530827378402939117787807824375107710548439573443291007242238642005329588473581409426116584128014529391951291296595347947492624254660669183021818459692232948337400977376999661391668092344552994738478650114299868502325375044277184489255765138575006168783405612948454233315141550396113386484235240641749781709167270275596856738896926065487238976236788680675285537310722570551847136674670240650065562919622419490037056724443803756290087955573118743050348592901373554625515831962391685481421918581384574655286447260525157756621339518772619930944141172826779358694202853809386861446498951142102485425856835578567291899733206598658806102674044434770161950130025953820711861374536953734459771055258280029573967969946883310573473009452145154409092298961176794184756662542187596932730733432721290058158320804472897884278064640758045549055499623191262987587660401417674450533143862286978140980758619992309966020045014798668719748030159123250882850632931941810097823551278494470690254400047101360698672956388673042322037544271848531201808676876561671447328959628353355388088918445336452714879311788243240739293023179152304011904501944733735281498259657250714697875108797154650276061985709406108777356067449593345515001614250336101495129725311123471132902023612399933568812141006869922662503375206008155386222119586226885247480164778861002118993914399143123648271502043898930603540651244832243694899755554805331845785393107846894818063435996868601795345396657833450411974725003979165862897400828303582085837711884589020408450036673647873182037507566825056726888251796754137440886153642202605767732052687366121207761759044513009624013824539058052251340178970130224192278197870765202341637496445632039632349417569025043996911556103016305669055010633063390656519864835565236960046594451906359983057500556611422279677767337498446566489119849373532312247263077759100112652787846739902460047431636465306134086327189273320751894675537476265265828765704251376499520244219188163683747586752869121381994608799523370571646367933709625210193242605377433762389634064465914522571500380786383174749486144018550958719493146889497715688542528584009006318653137849117651661437750175725513110717011017438358777720392252081713141918730603607658941320501611643007877678762192454887998985343358107686075704727265862207575806419213708851806813481618125069767642525318928689384050694946502739957280498515428393266956266959306869111681875345973794126328452690047878420817882933154863396405559191451898501423285427290653761610579717186149041505565375930859957334965369608183735642026949369712121219150667540062291962310960279439164692473503100573966254473037553213344678596260339792200772477692687792532651028980919257653563561406501465372694549621925522951624199502286781296915548307712681584168147183452284117792342204351873184917378933086713034537263385998383666138838070294548231764447407486007893524578274722831782892206969488955007657340234509452017823291079919093439389182842984328521530649576299068774188781575963147857347894117382231873751208076056703638429284321444896349834022693679077496116259685155115019860914034895365868241415323219830148091366660130193920760768553425797041936110838364108556495718021976471954236418011454625110656361142395469935210909615706387837493383597251883897182980011439543968592154315216470209329469252814844113718132587691126049503691723639898129092898484783216072353761909582482460214654782693220265696677944200432745093661442850157607660685361775037669503855085139228105264893693536418855269802191148560660411494308166278679621243691702260556374044763412577031058702133102058223457636504237249883946364231727063868719261464717895263705234735015259581526652170702700086094262873035144247848938785473302326615927883596151164008296059233929988537858405607661470747407154892967915053415032838892152712066763163281690533250815310688087132180988741074641655321026257505185130221214270965933844228241113780768886075500223664438757913601367031158188433726701794184028739245418613441355933335129570739869506191583520169923791113479388719867008365238851919892153660833201277503614841650883856274838969380540284895335506338145942228909126983419248585038645570259712322897755531764251974336879058732152191804643262676187758391000752981847510630709223552923080328175946779654534964277039088463223526351015458178341208814109503585698060631610881189949347436154868237265956969636841061664317294475308675164725977228865545236232155029128323732194269315948191366645502744833792573109064388296332871416512588461939252637967206654204605913788500407987062323720201492783242820742331798991163221784493753653957909782243609684462279233544220952221016721534129519173820980978349536460061922784282233824489701480818430852599744636033405492654502718110358021200490829662440563433775983852872142113296229169716742474703261062695633736164781642943274483003023923617953000613101245357068791560606138670864280576725651657679770501643730631612055013310965234283465501012215579125193643724294104787585959159572046943714336067060212531528293879518005313354580489342641405650082171299083899436877676853940512931893211308767283132145741353564493598081044121017006974964720261159218035645153330700942071740098582406443876835810894461304368989527175018294978294583594760092426570269937785867747750078666232766917257063910669528147189694015294209033548762269208457777480882474435410910192428715582828729926733595999067613468001237020326182606868731872525325408573323237970182453836349607771217493459443527701693397160816688606793252364576361057910779146794443702740361032485902614768744508304481462574503632520733487424633266418431520601306362015373233945722004292110445128348716572324182185774779097650483466699091874683204339592910898149511050608600336132218270327338806716764556602980608152717355512456677625363965688280648105483510727723358408364544366596978908810232933283364311219844716137242897632319273835288218518120495537274520405893924704987402051880753624008148520483259101525554308258747912699382917785252244401493274434905638255797737291265597952832087960489381861245734235790860641132277919563428687592193415959867272953155127103239695536096041717773892637965741097325253116685780157234620365176642657705972510347064227645507340195636128137100786806902783340826178709006410480310468837556882173769262566239088727952965503479978799886688874573564352415258379886110241394199811547423606260323712093885352965676600174207325757781215285474500850123861124717545238559955534495095380885520861059263776160279966850508171381145259119097667512262478897516507381747693093207316964368152606511822320160948297783602898630163007158056065403103191941778598468551596208611503871045707126879116265240166210438515574040746009291516355730295395656879713161738213340437796094590743367642100297520472975327055536038129851945063342790111861498039575044037839269372763885163500670572495345758057741590386238121191257496804267060328934121370648200269196783535128211534173684435325663896123346055840258853417719420131647878113291628651148985823989679049518941558596050536675552144882438699224052646854880472957397899481968282302530505507317513865240838051520964097457905788288734519607698441019656523598698503737634070128197122011318509218894958303451693245260287783135665698654223613185613944204149509639766178050179574425569114361586958463716260576528149767776136925856720930234403014659410812751815782137112079482958863056491566971236437704221361368358525570367749083160298110461342471629782268990946474347962752702612654859551277781739994885971428867737287890122966121023821066490061483951011083566704250092100009377403298466632762203835081731182032841917039583427667529294502248741278900957835529982967078671989499476764751886698663169431738191233232846869089939035862498309077805265272126924150792048341813293955353143628605489281775810920531187443739731818624298449022487648410450620503764263271343191666854886260690750010942971821931981243622729081113188966897232911940620027450470699051876617542713938070432004121504172305765366966931006321465458828787267076551406853532168320518663818175904390503885556762836887966875157097762056119074393849552542606331281193134598487731936335765663989348713816233683877618920442753242784944181683400577571119543212333647212667440289430532401052480421453687388961027092759893113702315676313849579758019589091684027608221149112560767811999968093382659489620290801446307371773535263259744897146373083247970572364548439459298730495887060953415369355498712380434812954920239868048412816164951974311018899044739388269176593987524706934440298850985428284600542471862125680052963897730337055678421155051569336548985305068016821969060226647675588237923651522477923285694215786793351555975867034847232302662544224824896680612969656798130938735957839173095218745706328424837943835874994692437664050703739296316542586575154681909714745749181335959436616516746259014443826444611217195189840580214120762129246346402822799343246094117288334897816476538542388003746481628300292087233146928151452720990972149075436220185658078044965874964676444255197181941858964176960530602122487651646007098049867162833113785735416209342324263186311294188413009298644608321574551231508185470131683332037535091384952645535678767307632187743543299526066110447200328569728925280154936276537308852430749994049425341805164307540045442800769618571737159523905496612622539600313721148142543620323281650073016717293277414128817141048841493523794210285731896874993745420787139709674603787193618634313704902117376726789391794244349271635547105069242523453502655823433762189518010203546869132981346521997535698607041197351087000305233755468019729370759673584428702163240046531191077688683799770159829581102598926926514885882192835354061983607347540763854361029255375413515273254438688118967468834268504179730659687237908337521760913644605375223298510759141162603699807265550169453876503369272062978456146472376338769372229095815992321334584290974559139350920336209296986432342989092339276873118034455057835857891050201254761161230745280170015449203271171833474889678194138142338956652684161544762676970815068702968734234838488286750362242303930146132083782082955267895728953757981043286487730531914071408385210237903764596698813824926223917643723193176881473026230154247786290225270020821723287376481273778375373883484563578209640487029340828903368863819701475768374628999823566562032051397862881156934849885149279106285134418831297099205234757000183171313384592683471210705532734979617401639882167040430287814256374089495658311086688365544780889604565179767210848918863131469420241482366698781622851893911008076694839825707632398442412965209579777032299165500658408780639338674345141508562338807283266696744013451575779625672596079891148376559512455056265734481405834487203249045314761522883459032013472745102292759870196638840311661232807892393405394274850588447246058637152274113652525278252953245022174681327283839751145942272998042292916009621863542539203344643892411651791021960436217848171471206636441142896026777489085915878443253847158395502445239725469760365187385353270828921186676489961402070126551385474750465709592683562653503643461874569089956028435879987555451219551812042836339861270371244306032608030050088347759034293741153833517644017665912657806142480833931954181217191370752064031412800283375080407828827518552659475749144544079329255335365911179686209247713609325857660809751249024262732833881523190663411994073084335188396011094116961118146005623429655691507766797098187097557660709101538142628741924265680214749650380349410011871332409590834718889493570184802162639445702213672656435304551183848840716145035930514319832097909224611740924270150699874411684376392016169598531261410945688945375718508812347545699448001651318330585609684199283486817871963750838064776945126876889739327198841009349774587000907167323757652901030175466800984679537081706549353208860630656207510459317127883926080209805462570450884457601315131774602206121677057077015333768900674675444608735763771934135535218406867500144767872450414881026595990235634828332138470165251706969501093738809396961706555374912249388060406711262060356392907813100965402343434065083821459112638880085246673569455767587835681518695481776519745056855032947794214359574909845579059244862340446756693719999126890022652658109650827837490521754358573955638525961970387541201980092590755491024440460389569576362258220840866931148307267806853681257166627046394749810474078185731889455032041127546183981943844042309903792698310834496148576443562698849377824107403261143700196999504263745631318665657996717421061948559264423379105007543912552828796462089563610587481915425259899148834552042087346201872704571432774160065411472963874365517228942512772016716819158472056851738310637235572158866715831975792546007791118106945147631981870132243266951117985741211138700554082091735364832654116783909213463305147934853810659284826828797988026157869102747893973882905111680743723925062962264416194121628751697367484624047819042304084299503872981193675814752694020860409974974931510576908198880195030033588971343795896421397621394714329015107429250709736820532073615838662423772935668311339109195999478335379639794042420031700478524260902730173995057068722287560582016713759683890781912870674572623463574159154700956261786752499468569646386928050852248258498160679181675890314453095234396702101380193371763422261796417520021182867492853047239513230413710300297239485175330738537618631312141445781295163546120003568235072778327538273093688760544291009351610479544433728856022582018727268731368120715378386287505572339769158080992518614948891991347574124227464305888795683517963139821049551962861148205272089425194518376604397336747826176790572384913562848766832030716800503366818419728113813217365217053158077981840069730225837727400592990911477131894150584732927213935849576721018523857597203244178031196641976885121027256599344045455056157760773347526957651173310824797158319849907025888463428299010040028433723027418901589839615068935818739230819549905608027799632964232761019878685505045936662024497524810165413395838941616840149689913832319673743125106621705206876398883982356064205483972949349526611111459661112551620269936124990005934619121110401886955282455534958972119901463832482144628248618410062848385829170723918319974315021276997649259813268708227438641617465933520444824686055848007470942434467268903331629664045355884573573727730442014999492077587928133771028399931660581458411255439999662367489329808390353134875140119486209661482317433588207081353676731799311280446168447332545610210966679481584103760973438258716224251974013967805322633682411114866564536343749032636912657299745669710674215277311813412098565897616492298508717490724434838743916763726008268595665256025092402675646204677298217616051950934111325588729730175375495196799170023164589666448146782324151801112671831073924754020614678179882120928535404109016340646438720243310494350759431058995739979962879237272068457859296853695596766832594208250947019215504922797788543042952822238173105440319675855589515112766942358786572185665776562525667928353623870793173551127018094974359861697692632137889063048480937600810868364742195111068957626215308224215769897921553375170064431892237772782130542010784349250530082881271614947088299653103763247816299696072395270673870921659289063489037765321434909922056223422699565576106943876568112496089862849556260066756676265696882821527106336953790633136391872965399760118936930664772768164116661558865103138872222873661978734855915877449705734668469865377286785134236418701070505599141117694094677131154085622993918953900549546367435357888334527526754249724543309776829876362449925767898036760286411331236414085634218851105520299316365952955247779845757850576940829873691764648922783755666760950822042534525509636907877749067452032904840110615147365943229252780409349026232963018719329388320853742807036018108971321365529082657307738976795233932827867789110296838211300143913407811617538790152975803935070293511481756482147687794999195354665392329415843858840291216530886074419470964034765104608461215323091922341840835813292788704373584111810566035778262911913805615618780178084437454246288537759782354745525595125549361093460249372056773963201771210534083358342711741258653220965509681190990797909522046066725423604271027837316698998173303102011001122446573390049916345755897436145777163215549541362146618072054546736179877863442705379630253779940158495958028710030676784734432213691271512916610585407057330499482635032656689523176258093674093011650609154101427269077921986668382429852606640878549095107998944236203169491722747528947379260030414047937700095923118427912805240800150127865730869664307905959979292221130293278676656583886514195605829803141116740193181757202522088181349174479199671723482797652780461746614417095968200891806061609873826779305820314108948215460546598467958901443221177732596259954031892712662902472555117680914537976905666732351565717533625730148284257295032971137553598228004527809075825365938677874131529596390161813288420969165407654379205317106644063355228514800505690308536332047368330492562775888342020952157514189741036090616770012144234024854190603595514461818642289188488590618347557662499754353041444631684378605178421006949437428632997231603104595637968075570120077329846025409644246266984972587145899142541983181556081418235902183629948656902510432630772372732519421384224772108735333246410731455450517563900474939504495868740280845338134406721498365149519059646824722228752672868773084950504766380128731353154201100308711342525996125895019192891897498024262798130698386542399008282117630256612112532507110678129871984248934386049573133298809717727396572166253077196814795662283320443584752501161969875772789971213621204559743935194814354889087029867638500542447952418953777583171037531207147649384267791828977312878014415630379463868915333164682386109140463127608123262267180850054675332085526663134135851292382611211648233043305385578983802535191307700359628270218169329658390189660085325007996760724737702464756208627558604172752017893822813326861676515842722836564532085046201427801541165645132607451572501073036916892796400140692870689229248668265451853340028883703779208120900899225709148461803042064549662276937201557449852158691233093688688404221082227158504871680644167446467133235306074111861954773853067219698703855390189751976478019903264782803999201067147409545337329503328018524399080510336511035576225897103357186546530104589111661977877902664148633067631495522183291800203537690647517242526610407632083743266305308484910365080055645280070042466109352734542643507967764880720051161051751097943924419744721230412082286401105952477086660604627493450495855288613141529243842551342047518412246060974775466202526531853501941400595666703399982264369210169118670162709052496908471443846152553190437670602510600323352716816383827645759968005803318086500365608079423044450668292159392871786229630706389141062218269656335797413626559171952081335147729772615432193942361632068428951388888053202859006290339752403303342738876050618430174865723337262522356049912210299463149432456001481551281476651609271229923251406240711649038925808777745185502376718152535047410677242234874416066885663736691244444952193876981939557376190982037310072479580619458400296079443616462409049819132428454560043231981696534029311592839379078631329550114687603062184570967173121731976036122825814964846402752744657483005666588378715772159247716016312230895046151278822186487867085370227309585724427928789945833371409963530721402799443982037704769084443280817250802164026479934505407516972898145680548225254117903719361447039997779782303992070693246758826459511192823946245570944384041418133298034343657151420079855151801540490940975790912022524330085078450370778310965059745429038489624065846503481085277139570298448505616998903867851168752131922897662542538339658499075074940093925772309934392921983694154775859790440806133022283039320866503749158181087391989582755857842221200129810086579822592883059560872343330297048575811569287619362512728581855273319645543502249347104618902048973600322546757295160413603195721908104082945712432731945321736017005799527457342888244743598273787343217000895254145358549099884380655006390430313398697747072737496434426570434552777106486135051547125699574960627185076705322223215676635722514093746070459146695563477560930620611523710032757448990033214572925967857103200072659310511930270609093620037795598447094110114011414092294282334910941036274335772829758836530563004023444042590748511250832982160629481121614897604178824371354122104762925413117193052330877808110074595503451677908837268966240826986214255999430471908641236270604966703322453224686138518899762117284362909628125138073580241955184421479225062037648101369408365840963769930753969094164500688800357993831216845725306314460242398623108703203146102659200450672681818419602331778800794052075857469946446575607481728220088694605022632363969846303920829094193244151532749996498724276623879665417747224906835436759817578578474239214692660923660041305720775599929417918075162720683360124235871965142250998462705374511223273061601096595294830507048019058400238688732600670604823226223623625524086928775940427578812555245540941549066779299442402724444759013879804970733178030689599236275401606560491622116225260560170350593472724793612766329131533158554117906188082829537642627863860731587429181422584991224575366547551912326531863740044905974738775686331168223783502413252286010908889729268767581690879195556424069829870456989845146942006846621945709897358407441343260861667356283285303961695965554043532324010611604078668178438115963593797473046129580022092354774278323456029749548928085401809438254595148902455684081147864049917294070977730546048741195530009318927306765521800433495192234422152547097323831709878973957976890327609854163117862756802250215986540294345146011177941614145256738389457340279949038222058888102136230748726706393214684818716385268554345029367953108167219736705881167436344893245674576613574365470332130363160225478251447152331597571298773441695793636128406855033696227813750846262004420024951396588633104605779137264182689469243576640137617256975412973641477623703198464395190701348812201085257740567412796368382144015011231898976284255589280786012497839612538199143047301266570470823614868311341435968121634264458725185114743488634368248467753354931375391424362081927868990270357174786418382778762869100211367468284301894650075937437871419569032826620413471294806538833996255635312210167093483346605429368599836543684904863488155104092867631808375860957825404498529124248517657929498249273531528433155755294648716153111480695687607503918339829703429150771046659624821750541488219352912030823878804800321575241384824253450608110653034680811287106131127758085193126183803114621433773735481355909073061287234507895139613815649200975888714395694484573835334730581521495645453082858963176117845933717417701200047746943913375622952001489482543993615128624857614389301414808679719998654151088313753429242459363818923850433503242489254192489569644526923293343822120305976033520572158244101078171182839506296549073411496549461147230624859728501444649027930907139903950937299460612557321276324689511860391793055809297055141948479325022901741280058366028722555424963498339509489357930592752170279402360950328940098700533206798135097728149099823121541325912013719842458242681857792959722388598763002380409549099716611273436721894011673246527462468613323549681668002025497251862144675743998947620137041126214688607838218240080772725674522064945965525689809486500225745260500951660875249386745644257653035778047326592627008685198633370230229505116509463052622550823719290355284551933249897379175334565612962025225235549116052813162876547877572333405681882163387923654585647377119103413559681862577236540776537649842022884410079795916980609002932348829420256268173867025205799157524270322172910038789174494005729428492151559400010915078421986760822800500351977963706019832095157687628257982697854082614453875853265997058796262252230869529437081286532148918747661877857055728618928178745469956637979282796595238445986498011993931870680431924178113518350791768937160682908888210291916880039178281056816293491349351350305239280746946951765506756575898997914576042279036431755515825689329407159579617292865018953653754460199814492159688966254459268189989097785112639745245258966842011512563353158031818994674624391055171166733809521237518387372439206430868726243208867828183353047865314466443057213295821890199263118323324005956905010445419300093762575344684061668690318309847199027419244000821822976500577886597209057010935930302770519299553372120837985394845137106573872053713324318992044327435555349101707686210703662443992487980332709854543611249284921304015482666131267706672881623079373432179492089482465596730175171818917903583248719067990391221256873709701635263964110482307075449628186838792825085569916741198575442544145729588205644080674640039346569966094712028362316505945409021209773818653592772630111203985940765098845059240601055927812033541400099918556164417283284298036493248278952239475101074640079503892870425600661338117703482251468296276846900175902826328103463522329187219856077480098900918897819654966713621872332662277552218853741150325183721708204839314594124386412987607246115040809887502578331406079131145462246704023770421795567036534996963297356786470252251128422296514467924005696285668276299302888158934786768703882431594601429492637634011673977019255143958772224085405096097280833851723882989831282487212456242591196745098601552905684518466071994105405843460616446161746244416505610276223947688688638654942419961078275141808153924876716015318643209638652419696048604982804682688090986938062831365734318577810940914242859445304795946095894867447833516133553099201201122892356921923778050039072525634232999643995112174561172818007402818872978526004440719014252377207844614082068438954018292316653753616808147684491367099358493396395871930644501789484722258878525030443925860543498793493819591912919001400486471919155781705428842342227660240172834215804412440324947145899000410284012583200615105406615493341997954331977486750784687200310195852282417192059633411994910370375955236245424745330045099244540557154783029166635972950328482985601408768660695987545536946331196210153537017821041627471522831874874471578330558144740171578635539795233980509298142299245775268113512253426415478673279094568049205937949955958593621307274442722886846619204551523758232324629493496142735718490462083294736687366843196088729967009172796572844446767519105518479207451001495054390883930138592859788663148226296076282024641013673255562842348136779064583775304167851273970272374322196490071731645317257435149763802927977445634389513981914305130196056889921214157516891489576668555416108787672914259372183444282696937706611466913485479700685280965708810853945146577961837521798331556655572576771321453354936225066880192463837772314432885758240462651966200435419895231544492237480246312259436208749960913833643220483775868535865602122079512086111773673548584163994997811697383125568047700722947748878506742655964682416825555139044419640853413542073931115405130697957746139155334961929749190713707942703661245054687590169425280441558080377768720022727397264621094236797675950524334268516098985916604787667784502622175614701408336071919128676551902842508658948220817517362460344255659458226604494804072550436235321980959497021214033426066522594253308236481471651029178103575242911889403158093019119415648766611867978475534591205176243297257877005566346260341921951445353713613523393464331707195216321459636038038107128250123895670572427872469998893395077826387102755227261872343715256690841574675357670115915510041166094759732205626349496182455210393557261222218455286194108728830183547064400723600270822170755356032252971319445378926645161312487711894160577350295146756469468430645908396469520665297715412896914674437048939712829858762882252007924790212158834630258293427049752211904497136552826036882512163138794750432654746395923861887899635254457329595355474471522511987557380039450324383723398732961135183732835623380543180886621025197213647544309129427241709387628055013996197160795612286710302535142282028160165393593993158241267596859313861656725242775233502939899004624134074097006918888897199885934712864730348370893483503837273661317415652445214165687760314777826984823847396397128438288944236091822852663615418327591907507901515644203071173401744159408143389486434447172490180763734581622908372946430392735129286340892612662532367067458506382861713950506876997780567208870406814241705304267287978922954323057293033388117841204166415433337904139643887367974905740414091967759695552962130156060659496300656768566879071154864377514392450780236254058968778090630764927776178797888342590645483933325121890909704526835279872450319401426646996875586121880868277933963512982485019378009089722148345495882704142878066143513688094005560583847309970920655788490318216107709910387831792646429026819642392134232114536645918718460055811162869232445694384254553160611069302786479509936224516537797691954053663683341340338091516857742949583203447919706791905125700663318533610506454182880237734584053361828986909170368996980168664641258965650194816607744150231198207580692889897340525422899980023795115839990840658985472452413127686748193177176612925802916469114308895233056931093514739775564139305054512116725131155771091840937211847650143119101765640293559869766953285513630334301874376281739271347207695133605585611304883953747971800265017257154498944014403607190777542546091757042090361746119334555892411299854955450355455609238651633508955311371130491329323957587064367294031639652635545879321900076385851473371544919319249857953705150873832897860891977114358965438099299098540258873629504727799410636270075528159029474254211894908353568010082013732321653460118018314583905661393268070447486093053820792560185288127786262226855447739675387986040968455305999990991208239876212697535115799034145033554520864720826675988437678576548877618196197143108961882151178071635148673599873818926256175645539253651301383961563732858080570267198231436631951100263986141948053646383473540566325808594227539802893376009299695270052487209176670297007910294313166314053864241422619254984301766189851971268213549770509364226838299039469209768967962456360710167437820998736394756026862141574260478920896686176435159267369778001129063687449456478290597224483856698759877737193876356423711567799522386914043614832128842602271723604710828486891508281502397190934307462774189898161627552486174588282612749574685099305710337481296153264837202532235868839866703592571040953275448111219649005581550685990029290017864775714374096190014353761338173458359386824642702839813860947386520498784233191836462825280171790831914649143582528934664760388894495417608636169829391320811533910563712761992482384708188801250538269305255575210522243140779456058632707766539777842396031336236074454081574000093797644338464570129397042233382929614549416810430605799889008268520267686435590024467053484445235142980645607061374496102460749631824650289093053201128178041703974504027173611948414200695968416481048531116158467952031749657772137365185360541298014655191756930637579336127038109274170332261640533139741970018896019343068323224838016700867154666231731847817422872504639058978308824565737584562144752162285195798540448312854992625648795227337933816480469106599142794079405832738511541678783247177515572754816454865864710413914302347447510019489848367196579819362510503045888694135246627704090175629866618270119251409940099373313863705847295745766950530920725962001037191018385351351744400128430471263061061177315691767688793883751207172212723709857811438324869972329950887240976925158639710539042666359634400374698539357187193149490537379983479569798564822489505326747552843565519130387157410454281767516797290493719205181377425103945207346201656909438514782348523531762154852241943802162469492000951194357616545877031722076386048125825223122259380921639863864222962109237526222322075434687744227262379928330857395760447131722835558845793655245169752948383360982122840748679774190907870423245419935626190639587488136832399550577026492464046912382698514856294028859084945752787316222859342531849298708537619041870476710288044776316999935500730346103413825202272394921111241794988915632913642552027608634377021442125877940259741746163536424191698019889033883398753440384116404953338124645009824024569772841199724288027516264420370699058677963180805011304744601648188554049055243904087566049419041540800279836330397473368983387549823402223211786294233722158120453118319916036766860782418262947438306982472361673142258830740954425097484083058964927022844608150206086469364389579153685981420186203276720473696815014808666607250211582130333264745143286929627179385755255613227812000359456072142000696201416713060425618422651881848931849912912076882741763339675085669637693565245385883581390753925923680249384503983010462978823715972170915821504128682926196376266106214727027857506439750467313656106976556120636877631584344537764567070457262680949826029010303406577324361756799766383369973588435269161560103921267711983842101954391322147737182878394876655035182140468608007199733494497215536926917608723237248847420934093411567615158237425584341880304786470283864690198781186032091208732303135556738586902092056927093382585694482077619862131837211615935910832213448983729889484879633106748996676815274143636667697632616388825966203037010440608194260902354712532577539063672804122208090290936622767702516105627200173612305877130913181120030791701067899050936459707069336799093129436635083689760184379352676554310056697620947306797000879128928134933599572119531398511658168544570618079755205544827425811035102196326530439467754983753056579924614919103560709684717477283872036044469857766212462682624274631530054421973588403706793996960471404600526484548435440283076236513302694971516028030487083808995727765281022023927452701071268401759980929770096653063182333180532899534118801547742948945959579835489502550612652095521978831858293959347905824034424572461876065619060899497484350964811362104341537459165160471648137283835077837400733880231073089795736646108411677574107119200025596413002448628265513741858418063614112993669225675997750526181363311995546367307562541365892071933605812661956152040949123526540452815319074562163193778737770797854866652142148817277680319806400811506683971409359230821670036828598619146847039019824836820098046568369956441855240066380052282621067298355686747215552235586798306569409438680494487891789218951627390920867416398040171669820606275174602786000008224162122515573064774502745258186855049161968908792609767264100632356902714532307750541546028396255659014464758410623175687698479684681879127003681813660312471214326364748949720245320154225436093770615546800809435123141015578365825307843722097174410036249061310269093072031312858556281162062481748310652080458392913605138117516572405476602485238234138786037809026706601748833592719208274309940088392158343097244014816909439806802632995630791724285366420670202127796073190458419724030569594612022672941949546213891400494052725137667479581176668288924487733563231451459809357964464122507854143190267275047235861975151486541871491924332386220308092298453552927151969658097998569038957214189414116637185212613159272398363563843018144621288791865111837895203374156372301060873747887390146557797260900102884502546695355606177242335992652461605232271120902820482286346288116445296902783539671034794872317516035138992962235321177664561768113525663639822252937679846205878372826746853756906334097269473572322534234528468365153596768997861235554300377099717307912709935409626761863483254662505979846349376552240033691888969375816945797348092186740722263929012689223593651621495413252055007071774538936991969699515894664900747120753251089820053776716987234533625608464064621273797070559929888641694248561715573129804355692312063138612620245195377212519412208672754035478597828914561431830517651994393333921682114264115918425064124434303365129815607017683454491437261221577985139984634419363806743671360586408356411375271901999685376165186213933949105150996264091710166762123327911340170683818203212581238160698497941646023614005050180039908521738378735160117579921949578588893622765144496902950172985316436406353572160319194328110754498731567549857301359281811458918088110301235694398331198375715956414917041572252819270977329661544496120729057224147232174366324036883937812624589783159033324736865947680492739840696346243134511304659883822315057648277517670330487642627545088928595924282039470371415801468823103974647932829542393851423038156893868460700541627355121702846732723451918716442154463939763602291114918811837757151874429912437444154224279953443367474221985328132032187532364541961344871835744805070106141721573063747687304367250272514054643599227703880022930848569162461843027477349909272132681169897327833510483016625384022042814282783630276290534562904895992206872174872953241069538631770480588042774274070011521401872117994059932839494946494782036621337511053891315327189903330896395136731483991985837514695536124007099823032020925416241183704670198181703806675999648539326259504088383402309342420632584287607697569880623735504806567655494435670783841588901115302442022143772341105890799954020389954481099452886795983598850600079587052482591073374852314304004658743981384918088364467238311371670295712805072626183157575020677211426484596834969718664764219115669016429695015705972850113346099830428238424340901302422925701065873463416248391113544454097663955997388191375560684872637482800470631312664259171532520831497192498158698111168599760653430025917461651687921338963655275194410314881438121712348133343450154936865483581192586197562664983318758976341618273362172110741586110536729803374626347988165083926750099481056769551639443693307557181613246136046636055545789630166340771048664482377246205565001122281219812631432912290119131899153415532350761818335203295810390182759213787874733202318040496023559843767171350690662546328178536656459291173740389999937623046918641509273754325467975603864950047491573836753444220234689366898727065914423728005124897544491659905382744256358128039065884597628167333995241932805120716613540922877048889729515214496831775208678813549960987342985341894715050680376406521663877275160597836515746206555507347424739218699822459916984521837609941274915062857243044597686490270482518877368715443052828844410001103508411206813714679363604616324874221904865334579949915072069200542563150390654386046342439805673866911758573422607665914606942417792023849805520440387729127344747894772435806363923855395896159354716372084638602221406201780739065204276121986773745760562892790412135028835328590178864439251467946565713828984614013960440297246315708371425511510680104212733385958873613987848384940493540962260768383356452154820309760056629218324044013701043059052394140441475075513069056157200743721162523041159443341853041102387756912727960864167212846928064727055772343661178092549016208612147910259444641772307382607500788216221533516440783150851714407186165246651235878945408580784604662265181998219516934655441749929413966622259982181378831113316331902716161297288088949397514357976763386508612381491932601804732501234222287092088736518750251488809133830275865788129712902819648047489781315823913940657797066567248086063849994885460087351292072277811272280822588476019602610733883927935593544660286120992497593221196768259851710913663708905954723597126520704041758813316467733628590383319207668614594266804725729011453939164702269030637601421514452231098422967890809925199360502452850587580944662877274948140939393906318352998863048629197551373391371146873511056790335909610884102726212036987378574380571239766591609496864387877757270803418157992001740800291627095247750699480290116212438180071690864942411811146233982578409676792666895685469929362068704233027240237703342704994939877823464847030734665505994196014670919733349694205214259298274210579318575750226491793085462610687457906873357313913262603157877624302890835178074867489632305573748730281750530365132250012977971373891688776838094308714267662184321278325969099326622719642810272385548192627699454168360961987678962204803587617439094876366013483355318039426024774174020858433945253603634622146404161421577196846120572642825148071351198437015162123971998757538472762458551544039317329173553827753212570948919076033385509798994470958967955570416656906835796964595948956469754588669039298264036558691708951006179163996118619754058558709228182129358772532542296842551816772249662185217805686325603663601377413473229040054580820569970208796663499537454228702566416409093600936152075490773607463880216599621487829792408641466279305274463274291117568756785472249562342586991263870612993743760391023022205553014004870839713706544315921643881690559889185414938888181029701878103856840001458758168647609811277801426716827359668604500978270188213851882636124331567201505257297643217433753569814341316881957777681364912348457144154133187745497118945245834133690480678030672717497712237963659803638039390790285375882599621924330769883094896945197545254182817474158352197842867130113671629222569017828558945386291859493429393152580705437450873231800938798866966252843208954619172484643646898268824355353909733609096520172973489049448766462942472937387661677038644534960801220894448107017464377786243005287150909732388992730948986567450279423563518842876172234522853963629357332809065771658326602055788198799691509776035506776865578412689877779959346776414424054427688468650153390745099433326181886285237138573750204889948553276615248532717555768294219595908866867641608320163380122030287532252536796504447983948216730260220766698072644953844317332405937626468359139654572346552349109159778696913128866242670040257783952694112636481424880898663742184479424913101444645512375154298666942785791331170576804727807114254030337645699777354648291115787031925070280821342037388487035714466530695123636747763746543280068932060838875199986770231171673157199150191455404695389414721758230320424542190647649943583784464577225956271213289677333877378498637049325006765088939386583693336059913773478535611721324047117726943754975392706943065130350950705992604520814312630665303540306294055579601937850878059109276144088329821320486440097950438750537190829533833754536306261013605724939182532371600569380613981716084516617582701540910208882225842714199669481652132498963806374666265415820410591405330795363246297297839616410989404716241241016703747142009045816849675095256585721819209758611537166585917607367753028519340677412901570001908288286031957564457534210700584071350357286359986258261897857049202093457961946917901668122482690009681005604450136727856646682677215481447560720005589056381019128612557122161204142298887821800051967571969449201758497025502566026449660868799233320795758984482090938692818145595851958724428065160574166446520741048795355575382338049645736523046064163056688457622582516863264308734884001282183660718971492456428845250247723812858955319005720664141838482557207129610409483554202949086529035389245660667337282868787748307906744749439594083390157770490914428434333011577775081421174124058900585333001463899864245481151535854069980716652324353481436946920521676090566871816988351334432276063537444367973729931884336809988227613171927982655456830183285466637845655847505120990109443236507516846840131379257693797129956547044896097448345253667815315509785086415030191426734904049736723134125465343374784319969971820323457829189997968448838571153298178358078491797032677074998127741942680108244520632106606783424683767024904403304313148098489184737402158380802448390584546821146883762842100933611334699775885221867155895664859561424829708020745754995199125594859086492286012715959907474426494109818828574719981111007033309407069102377848822259448011325414249652392683018016664954279499353455103090030068077555882672919891727670794997822950333386643426013364873332087384463964265450349233484927866503893097527948068911314908584600044396795042824648010957914670432853623992392738688513699566157263440791923742104121663800296971940625160663176159655565069677863599643305565999461307904036290692274603984541110536208285796913027567852885377500827540064613064592268594395916276522831973270922494977870885675071365554970708824601630689413455487273877704849122874373532606102565001629293155273970244574318783283521202443384824691192105880217093416576645801374899697317763042893631565522543723844931407709628606108257519748160748024013350608546852984311020820417027760132078227672155256241827044198539277973055369186536299602463871584191400738857386665087412762279183719816290631548142233987427527308647119940718247377655673620640455848952226712124306549478721588415226679339805814286345671085054580628976876104680219572699884378680985155162071722232354743312550093745744548456907842205875072564687383819249818457369801027681203122332327533566327554464489722585126037500232706180826479751631437358271534543275224447404869934303406940126018780719659665266949273817931640162751765647061377150567795438564652403934859215289150484908372415610551305474262686056371712325089128557736872500437777586243209698902740329315422590773741317377528248176696729482542739741414065294986420651296798623000313699687046636591286875791789936719229928117571842317418695403897209831028424728866074826802502528981094609578150618973481667047982146210926178837745690098570895321331735423529364340825003607596221993768262243011197068605474878179043291092445612752432704794678415687748100481670008321297249697351955441333108454053892491996608137668014288126368784435287231981917905941064997356658770282048293444900696555526551716081150153863852585247567583221141251286379919195118722679795417478064874943468745369834154310632193647524664331574146239904847215904965680777321500309111522284741616036231321448218321223215896687472057005234063294348979413525745792835649015732633560631509944301469256525301607545953365729394929707046474911634820016148734475948014647071351828429988143446092036224129406271512731643792948533384630981316097240520020664897343470663902632983092765942917675546489072799870231419104984132321152714840644981977812090436027062764526243809739545521178873279494035274309558068324543661862699959283466808961649515106620253625042914395956597691705400130765961338703738239315235481839816929600236369647892046370705168089728501334328678824734522009146963103196628003325174759941738694675487464409125212439184416415465273772632131848983097033256856710082885617490107167319952968643012189324545875591080171115066920296168316222322326518267046139832957445171337462449844362435840224789121771881715816421225886915315824652179266322278453219099622279781085442274836136545228060576084264158594420871984744325355328095570957166530718452169675720872484836154344955826256503763002161382011466538768792443921332792209842659096729850170337203073535386266934832544535706735801798708972557007631025378913295939929218880053149068313504937110209620242116510499710668569337937156362914380027566091618008705079850901635030708451566755041674479867845980692004008117127798595485789168157654402341722527583353547081437931266344927121461980139020251451927507641090049560088228428461586484781439389724040712895492658936670101078949071861497645867758054273988919264416712674487665228056695338498613241554288654402859381569607754341500004840032166986654837411193667782321256277735953823736303132608533716847615050620864407226267892661394931038078926187012136481557219728746809520044497120656310773198095026046095701778310753123105003715187710346790299046213594322300289069820952671219519289223675922655615732645332507967213266942955351257308651740779095463334191913430287340546777883659665603525457602212709462879334881631884560007132893294399866335123942121057010944121449682177239021450338448847670130524057585236378796804531751427428035872887094059883027951279502486681640162296364411634204006469502160062184909292872569959294901981546683407325618348610419785266464306722875549141468137489839885968458147216990526210710454325730708180687305766557754775197160920419360631044827188537016088858782754526514520758028937749435302444569161865892610153380980663295857016198468232206202490626279888058156073771820341886254414526508876820132383680005264624122814073428010341846012340592280452790044826609412233008889506258125204145583890604460641634192663248295354394539433794463116316156942858321559672129417376905344825138030567718462716019504603119611077971759158639782377129770099853050980804931599319071444024576698154002987852658833748022863354327916023172246252859465178407860828056239699521626302681358839322789318181295355767771992645217024740983625907589321659856597448727343802386943392194282367829776878436263015967556361647828893706502594434109206307986345978068573277116364190739810338983914990675134123888978220748117989021161465323178913288109102691922383456612050084322335680160528905254445416268319194841283741745989569501020785233587920917468224818001592413400026381541705867088003157491737096306866067312005990402028254344160356631417024216840179111496459495284765704533744112036472718272529934387050754814956954619419798893080021085898192632045018079581546146261312226482438574409183228721423618682169254710717041334276902572871591520945759904812730940149904675241927130202515989142566580545708979803793931747917739675532342189808832115696964231236160559464866330344413876248701265348582087659130842211903422331484515373922168592409332100444973947812238132460363380192126159597033201102121595298026855946087236892300247122701458884390462764570937573025396280665311950925566675453576127263683471100128882513556842965647490351522712001696417930688183503970746677777152700982271574624498358399394934295467587683635403842322154099757806778617057432633577724548070760809141706367530199770610994064250158601855560102691793737362595317708863894327810864032917669941231957538338434783929208221699018378653427416711751508635549144983155710827634198936881844422316876236632949607898876011847793197294218491609159411321200992528459132622544022146767319935032349777392863693155867020892884059584011282419427498927556981173413193053467419840726903302464363225341262056854598769721567335651180716185883089361370113666207738016360497596033307148651539812119613844379247291365523221670432478403668355817998313774912014541637316323553404172779581096256979204878972187059243297012583826508333459915094115237541096686525433925588062308755285567537032533074096051337863649083171108505378979201543854075908943188324722641600623636425428152531375242458130208579299678067029372744218593340355673897509999703887218497390549248317136292241851571852293086788013509780172772150241384036672585572152372664556741070102159099448162324196006109126927160077116524168030593956032819913455045701534726146056221644099053951428485550772490485533588305987718683214993760357762183001226289431316531982346246182900427194502401062902633750341017110495642015442872323832870131361167461945657247801223014866805792026684017142288967863904454522235841712103825355921550324023754059769289222074803932539381487493422202675171924841435400951452860339003598310366791375385654360868078543337327632900236222932536174963002732330729225519572896135010462159791268565537876498202129432701041507632076511432519580041415056214503332904483295224638324976498925614545451506529537263289365834089685454161561482716029423607087441886978981057451827752937473225472894070006978404078698554808882008484230598407080281465214761261481143532668691730627867372737263873330837401990977596638533683557457762252468752016569832204994114070605056771957773874526552111907005110356169093600741530769445256914502136716091101840966836236855380892571332775945512356348638065617815898912274330257261041311213558132783471491311939799131339958614798241837942262300274012302478977135184151957937882177771339914099858294231390190451514997122282967538646555705712633696369127556041986896901852266245349972853042889828052893376508376468103369462745582356101621212086492790940350082339422369734485785606290406329176137747116994670126083462353662038294740689907813046398781670274287584979766492180138004262771808510762600832184226134000321720313689817692484865249530551164903269017642302323980093551570733555517560322700231937683389968566273029627804360401000068960861056777201147691881548868675340229058308916153193327572177641996680612743848300441280076370603540723300636254759091600661014211154540629385468868378213042863627249720144985335342399639980310324779806552992705684171622779438805419398532573293789460622354238073972658453619276664949940873128276765802217119193226263645504445181158571506517835924654312532392532630864653257199962596794143119780709649449796432683122505839622666709610523550655633754391849321472033476195307840618806429774218098313990329456964666043007971428419230542537410216320950253981593274149787471754169251440955662570976982578705934972460968720817319057053177927887083537317668745790055487314413890714147789966222599119072030896617459030528374495487988779934916804567844748379258820735016746338725349858126124296879390082849737998068469187628078273873797485773017838965213748534017502767058066532310576997229149714663548349076807073196336279748405175758851028291088812931895877179963230343048007366419324725801710912995924616787531237417643403422922994716154944337386374074730342439794977711895272072672138843074343495647095733984394527569127143055873556143916397930094620828125091991709720578998243774868006287987390946148949533535565024451916466183969433538786375929841792864132944222633684406421203294148171272496660465284831983030398391994081658848974835364260354735650440503796685540444803447673551741158556331491237562570242532303220765235581424831898486400088088468849996467656057927365735783491193369020090441157430700176475604478824751061420724153053574123361501977690805593023556938830695733328052942423869716153523143001179403925618541667632943699198880001438654684631418495359061260586708555877341798957838298211676713041248446154306137936550775312084226648592461262271733285915396225419803465914380166787391967739258650236939698939778239153323467317200424592133312130865812596229757066559405245899902187122354939610358457984352585689079478216132939423597611515505452716216375032191608702756142190637714246018696310911107338039674008979610035857895814024894261210813705483371353342414438415672879300908059777286793917894624346068392138807652440430214532139754791607725101749439572502373977924228951210816014382889495991656839221036034586986916408017345260593152641850471062493904193209578261716534425228318016211047355596885400442998672961283194709416563265503713171127013516479419570831114564867827062332314669629649366853707508335045009875932077306909535633114397476424344175515425308986330105232188696356438130262009820795402484794697939466696941291305485325142788505097164549065159120207168614751023468227670178993523692014460038686237637999055681298198299341646282131447863142996380583209595718203561070344488286438442874290450623033013378571106218042458940619536473694863465502217531451527582657367847532265948098967399951109182782028611299095270186820611522068350743361415283902268615368354305582307405215535161029363393320941899817902189759219415499818184915081554441636669261191666683777708260815174556489704046360181716268485341726677952468120288740819958225388147198231862408378610867469535007965612162698166001770212943042195663526949500248754281143564405448846226922382049733312111993128954920941612476927517585943602942251745241405323122912095541885293277535836298894182179464911890685651711844398285818762324027384002389519817216206178588016475075136084407099179967717091565332792484702480895987930205303155474461521078484857618312650894231671910424167285196083066492313192305087201204783490698480060574788597844674210713291946412768997581587415392088193063327594146506876877675863512098077575186838802674093699216344125818977874885118117042503812473855558555052580040838370113776247875390947628359801822764520047142201473360600249819048539473398824051145282975039479828648463888286485389003931284952219681620741842377442461782717751460092108532536827368160794219395237376870908677343224928213259858181909832181546489587901863039318551218901244485312049381087563328822060777971749432189159076109387030090306802182945729714767032895691498167617969407049730342921214920932375656944217959345103128228398427834296486479283905551452592750941043428185385443013919542798634998356170933484592295143748443614568764096913816148419745431325876951701983160015249867398904783614891600873714373556328250883935092757790910986922551234018727779744865986542716462747956878637637483440008861250700670602129486875399525508572343071379098253939929507494708941584031385795580842386714011733570865504229479069036096436878117203655821794279389011590717933962199027721438304125426005158326049896789913617895106383891571142098663011526045307510059597245503730638870054439116363662922776899959319467617320044622879094049287059370227152681994816920740304627256371473981516809264679459896530023993047859337866004362505115630053615676409512085122961155987449257952971470506887440334858774904818189715597649277205666743042171805372045554893536106786362438536066038129638746018057324689073208903870093437755038564741030363943942431659330585483781866741943546134709667242910379169354542035558261434175643667866907069916564914205617502906949958435247337647526827072021125584419269066226010971602697989996231585061997444930478096263961238980640566231575533294282199245581433889083274046237705393582560970519290232234003113582599486344916515485265878795568541546190557943969310669065336755440754637180634374971693966823388131602052206859138124817227518168056065298830210606215598245037250837279949115546296322760592983865993073611522743254429353224488837797025186014337520153411321126648361905558290584942817419055000818009588901817455279095853356658115810495435523927723538240951652403719944997114651552494372148504319038863720217585726020536496742733862796185342524192165740334428379822078467482785931053531365339532858138740684108814687231619139609239303414838409550703176816221842373157996599554138336138552350773916396475021507927855098843938188891190520877034392697498805424871548662603706547647701681991948715905424705012545639649083849751457782221058452492669500491944415323610898636621354806426907045004439705100305148564838112495945519682275538591566614089880918533041267579606067534023088413378316871025722297294221498978237967383594410466243334171678872193965907365226029272012347989066797027767163759425931218380669324601049693258980951992214976329629985353206660836207604735652028900408411341787609280246444548428361913749189726564195723816014196183411222686050368430034019942019729836221764829560013692818454288141839254144064919430619100635126950560826733944330567882474249092021473593210021702742745087079344724836749322877432307317584087589939756111364830210408025709451664844585304170600233507483684888424505795102609007576442703272252856296204542294781837728406872788456818201622445759307554365418640696993498363657632370316255859104630319893468378739933102882786995139462641441184513833195963146372410054010966113631492986435719384251598914319257141939526960257906000597452590414760467861622926753665164598230153777724122591386861622443607886316624605652806961285568245834872583690065301217724947105026472766226163689497280122855875195351461667656839091625232181378455556568077225506355767481777529967846809823537770508982100550381882291177537402069641886367749853840286740316169979546259981640487918689526658836111285137878053879182911003873961012545622550944362554501509876616576853817614149365492156418915395755903903429885288095045118888246134793792347125287954590342301087082199616349435988596847658361229622455137192796515810192105914975174571746631458620488663460085184479565840949549727721898521374405777836893552470873752833269908695997565950148204165045888355921988169763640853715101906535579948044840526062006146424875741270323230100744743700270379519886501325461166311132383313267199416170089534205955832678383724846961132121005445671072230967681180829345225945726626862650162560486488549206760137515756650239315827119441357868624575456029724166358859990714541156038187178272718759396074748942401475822463779748689145614843769466363188514413354109770796481727177653800317484069720563938419813564333745858729265340580529683601168680338023204175124583235473934577401898144692077661722416832117078812933320568625143888826413194624598707141052627266331967003154738888116136512822468873659813779758842793251013152208841368612620704539831751463163315045137689592334040491787708751072117935553523216417670340959174477532007690608900365956980232127704653797284359488320887838875702025528899599876952393941994256527576780513371319724016083045110801134116041644844028142968617915130120307268350115013826516334102058948943484988185313893402918880040527450177190274889644123461177855121658229515310024967951202301611876855133629097206205304976349783822630901066764829986280245797112035074194477262000504742953018590580192766529529280047998747391744350723586836046044095480141387423340663700939065301347013656681131258426258254678582597155909973395134590669295962385108995825284450835154693307443327815742094373583256922682826400666225824196475252203039499817881999158203714751812811230557036470248264084642874896022523612155573940258763449938068447389777566483350269413764798889224614818152967844629364402488325366125879434195031430632099479136144678200745181535204088180845124685236336798051096070498605534000683128017267088538665460940944647638770505988057930347500075344242025654809123024028696738618673286157089739611813852637904369212616930354378946782394839015860727429166626299555341866087107983481503039050308373331597185615961236432502389483291664398741436616464725205380124706918404356711463240083909620682759145075518947641138835443971169186439683943147969638342186694341231302080510658119142590853117302634993712578006579287715443090452107769465824659033963935708407382260886183480147315643692657695751893560481280562513838462885001195137705334087517194698319220369790502772636023583026445888955572169798828461909916563014578773245750961694303137837399948536203435799899418168958153568164170731041035569523452692889999992478557159129612028995763776859970106563810560515085121288070857782540107649713934004273839363196417925973971200523643899448960937726684120962202765595792647838995298821414873714916262755879159084237697318835400463286499153641201119558514878275238022394036995526974466228909215677373597709194739909624720308339710205905854377036075560709860160643599041730168508157514922008878124716470967167858819948049699575185127922269795969724235266590332184187662489556431193333323691057774935224306578930362251908980359310277339934489625431830418910953724294956301264485778963503866254085915504014078321367688682814209816429733256292329901681380440057207161794541118481964845485384140704959530493872042259449852386195655278757974801392373664684656048349002907756126560153872793281785270600431199243938641765349525089084622170254497413554276121574423214835869235694959083421127120392572090603511971759184091397172524606160197289154768707555448864243514588776446264308537863450014459460422615794936317453118146377663213240717432338488957632778276535295976772563482838923815659628528879881342860775654049472936822732519406757442559105803225837377529642305442128596656610606734979743187811430168327039709748469515023355301946429046917479148124303368584496649377371569763026133460331395448079258968927620356659608026902323348076199523844037014530546888542184493088663893707056359774837854830131875869357991060595871621444548312620905005726019174185224810856469297338604697764082200040766358889937515249480922715223198149398073244920387874104864046782141075242496908566716915093224167264421358869365484816022241338289103775135634445299376669858325141619847102336086395987980685122114222726504441277719406473149291833498117523872807877152705071377685427752737865257329246294416859527941350264189989008157871976347705097643809721323795811885322680178337826590109493405010222849597492755400979448154581564178840624495463138374920598950518172177860411567697272587834024981791214252457604242822485512234396425629216705217183902132971718087096238515531891929241897525106117876315893386512248781597265913056473915053445639744352173327488450495313853688396503479521557854175534492499162768666242738877383278249454032160377620571154841227502266765823810807359827785262843186208690926052251746031309729477832123495593083348914444579039421081555298933679930821262466433786552409368814882269259830370249681104833297938372241555442762393832009861633199014686639800041445965884385439358791438071218773824616415638686144969642381085179423875649055300513372733515730742353074289101942160515662481478335855975427851280743669600762726759903416897878288463726957375254743366703546987128459422071447190560709699873805522799505168406768735205612467849650053276737040133508388200524400647308845149434080833387893128554178933117645478947497678684736368837179040103249492087214024564011326879896655493443461722230511026089247422762108662186333823999919637072615082714664431429587184791459128935204955347645618855595411790928849486483053407935222095122653888232032519070182121615555494706858029903146178432081636182305149478510920694797626257480028354518085307472470376450469378987840695737426549010015037444544250762382098187470085950536699784552644788184461926405015766714077920098148803143282643978475715221526542587718214536203294193033873984944990630866161642690602687374384453459507510045899639951632022097726824106573171528070528452310232649561959078860450132351940748985286772276728194049978241137007031827311936052595155075132267061032101370471517984300492029873856733845385852199835840434147505936068937415954620929205515859018302796934110041326899720899016348957408634925538966648788970481214443663312972403956221729943823734352135864391794173640561971802719496158142037541766761957271586603946911959152440214669260458443903225439028333667317102537077204058099052854218254085995007087357703633740265806749350372113652091672396156784299838808215132325528336365999376200236337299802690484504965323143502189631443188975522528969737925044692367522920694100126507398596813577179249628719099368260776980400683351310441301706567336560700583600303495477566794201768320181462267241884761714656632713288812417995199657281674630924363607576691468694952571186607908096228875923004365743102111425196108516320419439825469997683809612832935607081597885445997080065007807248939434520058339714759192013792130239063382746260495651481126801228637308205775773207650557258468033304948209708390213299529053531553116900997306714939307009942612154509026866410434196724628704782299839328918585202836455269416990198590283061208492662119343498082775815792809095880927522916914652096793527332477720225516864633261809276599035125071024126099201254001808003093131801047191081980630122144876480384862459241535276033500207705572575493824287734281588483796902271665763517289318074483048259425205779722520029946152464817728074463557127508263026915024333330588822451693999993359129967489401718787520069045500219126196212495610600731447654343323949204039987298017947788972255680282294246168805483855995977253720918512075092300049236873922567024744887000926883854505787886556300291165266797929647342498169227085804140592507059440093601365710777643743839652899982850661149957870524790502545725774681773404118061862765119193629885397783026931063814626103584922604772756017337218189325338973046050503530724717921771803790219217782283107193641137497692454889607492115514947820523008841946327611613827050364807151654578868216108489597329779681844384792183489527700277982360244584557843947008316554589858092427677940764689770447111781899342954257340175525169356687897520073965917276493499968111835550331650024425631766865894471468788882287521424856691599604654406074889866435169737901778514922301344717643922780230422543426679299595767282676595790069816962447732615816553993148433317495329970126098937510568709782160152863028855710447546837191527584376547220244781262281629437779225511473262037346176220783148458537127659965519703597578532079933498811294015948237586305407809122989438825506585358650238834405140542669678250253111372458286135792148368339726845535984262372848448673824393175744800505736962878189721976007145853034656362749908232600734777032410030197725887147961661465246370745414845660031178545886679851997158164951120291025763929174506180026350264403939252066085714553366835053234240573193502306115630259581257209416714226113513338313550651279301238853546877618676805690625254172528488675230424131138710696321485679049520235907447037569470505205619799817202777410376514274336607765095853760658074561084408830703679152167582116278236874175513963955479808064053125183406092986323988845664796896718794937212589734968086790145792934471703895606345025961372995089514012719914265570981535165009253068256480943117318500674673442835256970222999521227552932262274834947825902659924164036168079202539478996068308650333712125325831417441544510131128603459045855561150330033791535442045132751511537952979391241929413438935023092420171484899658038169040568010288913343108293001574036939253703846475493315913970446597212532045066568209695673449344066219623231375840094333477329062642491083654680655019455102783323852313795338098767871755783997580874025087164611808833447004252167127349258678920243074643879613346556287407223399444752820998064147838365469965403634642264132562713123352189299685942232443430701981170644600882130418671550045685433622297111876620101162949255238588992456101753471732174548046502032011111544685092524353947159202634338971780140284537461601381969030812999230941006395958519996690685568901967337245526879766108397050549752196970551687790413713555413329168826201618316125680319479196308090433176838909088266216519699943841347449288523308724140347249197427457366389751993814683806613197708151036979515251899944000827412984620063632445470463888222707047296612298289485893762948863277841914449013040158137967635336246808485790884964719078815058640882277488250332091685977854736401136513368013956337193951749115189665235229174832687132277880549663308807041184443538197584774908611580176945494215941923140087092109662043051331962500562650118621543154486323791551648897629247684110820265222231550366880010578567206273069840780033349175920592509142159125451679007686412525453566608679710366177925742208411611701675985994302266214077440988437295517429038300674155653648533895605682556444408716412487402423183532932736325511216124643544250566680010875740513415968769093886081963074423555069382843114532589110382235702495680575347361796066400732690185548798114572828340714127421805938953002148507927795362519835236408867250203318685691035662836660965999172329018031460916633011002608351228002177853511575087192044993899624113602992214889929228881184215226956128600434024833235205312696679544374298683953233189773243081658768168429624247514197958079494536343073342220143175772140228733175070559658250086429126510976752864436730935561882301683687429198438615683526193463067458436650107964638140094730779740199512103540229286202758784873579040378048078471041006493689287514515732750483731255038761697877084586211949563453115593103325160837691276337437905185544145821647591758528497829819289170923623738965869046068376715416146296954735174845803038212072237202212290117985662800471489507871571399562698782405452084023328827900485200792399774842864225473291105087917125707560597891549789913661287259948323179443156582105167972916917586816616134655916226376106982732360545259796472498083699222736479606783364113450429260292746672579562248801836409993827386348368590118758472109147462103369330000051727942605278916707706636134024182206998228132088792392567843207377007292557458696290188944916923185328912888422445497836364020421960246046887967748955152251054316206484851540243354029545680278787148600847152187096130950656853548891718542818595999517415420867168187720505150030304670290135977430275901034772952264700622229846482077062022264527063910849708513091701574451632679260128175502936821188699673220936755618466476567803426187885723384791442172740418762522352891560089132599957814035745747510329409771929935312756227013700835321798408327009638885475585044902043976469577563561363663962767926165722877732965272329301691407984558013210889739172928194018222524645413180191744942253024188596524385779553498875094692818306851590940896933897321627844363830771354203810705593006172402895520923850172627041161696352299020797929403554132382157224700607743428577921193644008333034780699250027851041498434430522793441913249320808103382061553941167644819014274732424584824532843248336996833559717076915318901488533266783051901943146966836671905202739732840236399541777555261898377891242512130714748887943435062005548407894227744416482941168164053647087086267897477989946592799646580143586731762563123678056044071166259053807734520791201598943104502948821801036240185273772666308095139673175455929375230532150507651587570739301729510823462766091584194296128767266270161486337831608104065842290209150946498590729631678587114128290349221791630815626677865737135031175621540087846747626386155401219508966878762057511726305401362299255255457488112360899886879190035603025342176055670979142948638037448619162225001482559356304997602062075391618829327368950600157277867180520364997868011357908375820820126910342265561233770974647886526545790097275204424704563303724969273783036374578271090774268348534288939675638764694208457828469873299412620378266786513569312459079195928244654966998472328876684900591749264381728659033884514816078575224981855397704329556703166440771987912400094664409393107677940062273904178985988352280948523449721458195062709288029948036883341413292053324342223357308817301029617923366076420016976726395815262707187726334150438751072452548237879828161205880049126467548806899404887161834068676894968856519380499596653417383358158748550496151248762820671382851423412635249755067447315510090593588627358816469160445182768111947609164846497413282772221658551435311031926528129811620045641816853095150509357155647986334596577355178496812532458754053459041226138616399642582384815622344615275912225446636058996748753960441858245161605821953566568874862601698825046787197641443206526218500855377655870547646416596423647487222679947409855030113540915816045932502072179272542004772039480809654695924076437618033689385946156467393315544877445479514958106908424772254671319617196019619436214942563177495603972284240115134005787415690628339240132886207631235428900210553212110274848506676500508395534734380960361706628281403251339081288615170739149146504556000587529036841194537878156330634601525730617717877430600168343070765726063654322609609779822438665060991936375276930511067940367595759372711028608064239665659281066447538573884540588164768929258464956680819943612314773328905917459600058551758860018421819064009915121295908572778435605035709554680574194716754439160537743835102892307310711660047811871889822757609064940933067754479172974020961516253197176257617304193863478102194899063348612311099988763454014292102042624899503297397157925274265187818841758257218558688536025398081786100108260478823936086766717136178923016539454776327939905511889892435498642205434411980438925070470305596124500831330023228087116950734974391982439618489215186091637716883250274444145360173407477084798656948885139248430430443426484845280234256699503800155647506105869441893651662101695148113702389909347354640773998602852093833387128545013240989366953769171951703204176021553494646176608694938221382468440764806188805940709476476225002275912195350075617515000206576142227122882919433976872003171898498871074920889723252807837821780446155594692297839703437452789668039857400843411874337588167028204340216628250722387320927631774368355987407642443211028832187517811554625401129083163730075356406509414273223074435933636307488591303406096339630583584857549204755935636971041217778185297441482040221993827266610972763091820095340399647501027259880886701710770339542510970406868483545175272161704453340793246412392000109727107279925315540235499090300321619678823550081971470438172141277048195507585154937772339004984207459166777082789947740967917599404148492099854530525512828832986707210266975093079999227510132619079958441334394837479301566757267629044291637367956407453351994812022373625587707172151562451102691476174679151843772930830899873140847312036505768928872545357439886562308021316764384449936790778209458912857144142370027782185095158992858711425302771074698313853398311430946365627812668135646694654390034881493764370376192801725531701699231104651501889311848960923898268458961572237840837698578495241512254188915679669834128628572277351237897441338062133083223892454166444796898189499341482502317038390676254015817420632105506000991564774657215509692659751054235985268440120455484098758793741154528141789616134347864699332091422042043689219256624726460019511066524942679729397676467928099821510184445117979287727989357333030622418248877096797296998866630494708898116466652895504951412967369969625717033686801812291968230739895337026667170100340896110668567287380693512625772144233834843801111076671387224070814562116823073381949242472830100392470478425986113826329409013399282563990197747209339699579678020480716802974261249491877624189754987958791764070513203755186836971416527731490849289691626029989372795596414709014261193525217208953987641321282015489591606540017018961888988918322018691242886495833455044225687410916682488030006410863706606383496804785415260674940760646079124577067446198608285224905399426206229017459675735380171949921692510735639446380115439663862267892060962623598786072212074572998059458224692667694082410124274539322901182129579726605187909965836697657532119180668629916388305398655750020942687906933121680118335900315680115223174041531737219730009390086320786310136750601265841668942689523314168089579655591915591605748281606278892555063952524610356815961784613015396251004340757036857634801583859976392942983815947289776279932297320024415761965475066030367415545668209073924928649188489913188773111304410224239102785598568695369154968787932768202568862681192773629497056747271734126980687151018286844926936597700288780277846361777452674867950649575420745739532310818120890918998623597513644789268356535811864556702039620564748651079772869005426976312411023877916800052302683559540367290319809552604515951308797504015838738478613600878832361543832725149553692728017427248220649496722593191307567066238896749957940293260878622093316201934623793190113162031397423409868005475737301157539928071244357107049620615575214615105589656404081457085312030153979900296751174505514335145174091615122572264723990245007725756574387274807176542953688371842676362152801489359490074224535002033194575326634579982263586066584640981216973950067061286867449109933070157497862945776114367641404361496039758648950747994641058428681820867803412190540893588124676345197951984149865275660135416438167837277486772290488116146135399173086589820374456088927023975482318324418539159178725435842154384823513616366717222989036684932681568078334459320095514933464604511608939049442144233260479860168708711912029600109799826550188994814532028244059827953336962066311141587376422538572863403736918226437073762668872629884096020418610924426049861764333903394882058590603024620345763384980376278306311111142064073936671721102811540203003959071715793853029898452231253683966474885503301969164132912907705376502574178062832215767142632394490947152553468447716343118361704305541233200749995668235829248437376507117944709240325004002715808877490333700954681467092587530755271370686147364759392771274226292044977162026045812307991601063157066620970214948516188830437556153301498237456088178357947725967290638135789822939439550685540550198071659177835393805382818159207108482923423713702397922080214566923079746285831241748821815783114544877466467534895358082804358784886184292116491397413406670116607073800557205719402240179540678196193875924758925589314896198678335923060175290458628259740428545918709359509711256881125808064500862271243242353642154474692052514559494174457800539140037471975740387150294819805567501400215147367293744832039854281021308239011189932369051153129009308008995500966957222306961102240627040515303446464317043247895367112408999638161009382633183294611920022222279802175999515848365085111940278763622130503489090689930196292425297758679977945173337525801605331160622700962962334107296887516612488643677709042538590453976563592697111863954955660332125927837563735463506350069902286445597889371653608019861922075105142430369371267082050886222097807441741032485263100802269477250107957271561909692892529290595555909830609282633499527511313496133031279058732998597016479407042265697881501246898360592576297089768380631120932435588956092297836480471034424737715881869002092187996794473603903307642166430097951830307301100725464764478284296009897787332156866206044510775332006848586519639803210643727853575611378850924651535401242483492224895615901656553045602505254528394375404554353014856491275545415437680908537981748746298052932395990853445150457784051317362460830745507562682906790035073693544788979177937491426824857857021945311304969261522510009422274227622486464456808258163885990011658401642600224990037418717176628622444680836044091852183444374286630243839763751945014268259580305748619217578013050909512232541061021192030165255679266517691902811232051143400422312842046203241338982908615085130471574311415528369551308063304896894828550850111338700761867359357572995123044345294334861119154148272068516920333625534570003529107226388199027840763482886683997120587037970545661573684532081493624647735834289774606397905011710070318403935831554849509012645976583666746103396516005341173499566750596136640421471530782119995500051621339647600363866768856981853134022002459543484910791613558556783387261488663445738381624874564491497459641509422914371599149212979648293204464985929017176567513857933346459217099736442972666560820219019709734107114376260843848328682274995811428075682433163455085329937468173630134753931419172800313186127259276784708171546150102532823576481049462090510947738099412137746708282270713707157714015320868106661208890436466970571170366006310510808413696432822951913549838521056913212390587315805047216982944194984569115690303319650233295825821049189365071547949753240883545264538136929446288423914915861208962347431529732862646804592138787542457902251713977435422379807169632570783637701535682885464887365251252898188591318261549807644717792500698247982453950272691780386416287296899649677762933081185491822840750885276184458847241830786506562915614512088513964561697364482000810648260298255625810620120472560734263152787830303010878100184295145915423754079994735366737192499183975240691004769276828743584811167737087281759626916497415609007866327352014423222812876109897458295685599409025583518831060571572524074601388589553102240852296186844128623823508004048962764525541312483618853782937250699613016546489924916327269489970030272956854335936284032505153125746207251773915566756937311439969835692586461947218470865306117536738196863644135214072617440736930840897386878164711199001645416692384958162459146540395057044317142646216980020392043267746505646563079172399884229065266493661156002904932019382811255330998242048681261171605162777479177213057231658199092949998224254066869281004155202122254887900197341115180018209133241165543199712958600113237415635531114640956136927534766462859051106807574667605479675746993613090599019490954238524196250116073416458135398674919398304921572224404815080517157060001570089432617421040765856090130463986259654868116951848747022874377588439397466669849532695977227498550266909100154299674778846230453127754436218047896822148524309765180159547119191989135723396458419101385289077490593560998439590852309645092270744434733081946579335339058909415704103489101314846923089310424117385664534210359719730309605260210416100019148256913265860199099669388485157061288624896993235651337276672473303081341435471304961403711688280550216955112623518692356650414614758322356170293415224398034695831713187486834913208411138082801662015239326449606548040080028465601783438196958045128740941681128511880278527278427329253230209514413861110598209470002280163575295719503703160752713579253858662410923030289783894121971916085781010656388843697103035786849838232961374745458044327270876622441309879068311447979698377717889511405304058808868204194853400910903129713203579950848460487403069687458850091556397360900598505008239380301349516592291731709231409877602152539548248510567047537473965906940307375668059370273383062299638298723874887165398832705360090758738121246769600118583766661483747673284377189628631578766991086879476382974691150595999892799416974697719626299054186908749864661652993312444529357696332178755949215693014170545101944647049363371905331467669577228492523005861873530086255736776112766531057823825722222382267204247505591334496262406299621898932877147255728788288427682206144047041439046988003763209576183800864367437105981789730850002886617980614659793455661891804791323441974440406001895210951507395106356359859406412006749754370675298493983395311823296749134102607442950949877795812412019956263352142622881975036865259070796218640299852279573557802424421523371300476514127468885916311078298858879207468436044905080340879882960280938635582861958923392982538272169960098353453613066792620963529900305514467298471007230466317938806299812069669018881998799469962598841870931964928923424894221695439183363541147540463809964911477930343151687096454272657812497132415004329887759265174097327184969309270938308981736619716510993680484348515063967879956422873217119644857330149147464839270891608845680656134558441904548768250584393433420550177760796234293725371626585500845714974835914319813868921884378325547308914131422995210941337860455636257667733042056488091718733418685713229289435947862023630191931021664785332943495350869489584845135928390108323500398510096301721628824286261693671758404861204784877726397607329307947053060843257871985140063912195710273955841252909669782221302263526147510341243027687979606252357765606706687362520970636179606038394731064539406884007503066396599781298112215672960473406102992838220307418577156765415554594259748194431858149355149699778275607761794003297619024174054074817368499649785867384623194974373153242196072527540454689405323750457595119361669521774666169553161273188582354302898864660013611768844820022486682062793434348401784941397239910335999787569398808212470214617735703837041440359950312187495663758323618572825617066277151537476556636086826787449889076497771994423039371460346665069969399401913971994245311028579657077487106246162314616723742831278525627695459497259499124960459601664827132750704614332764367387494079497554964970248519179588714016095778417190645947455506575950179495894909334268727599586810493495396556313124884757487695655520774242487746820991589177006768433234232815194395558148219159286490000059686268378490382184100692792640005828811025879555511116845001603804849630833941717703473582455531807451738748903839298726581461398935245576022578107777561020749508541059125273802404936266265111221002426581966217295444658862646353577267451911381641054781133744702205316651936338296531954151484947257833861918512404892042687257690385910306998682945402170194477765003415772802807632585431002752467674569079855908067672035614294795031031214583132945465330837491102805332591155994052765220928341911142083990170659985041766255074083915376284047070554343699369730652670506332443594814512006467986538747112950319110883375184096776349231741501757440090410746828018382270151650124539299190743406128855243702662454909205502174425621109970249720867369200254110957627560922611101133153010781884008363729731207490462068235961770713356245538188117403449839548015975814562207131013072470364417941371077810382090097558544685305898551069508407366417936041430326983312678580783567587650726271058744988573293271918655727063842158695851095439189901549059921985660767117463970137955279487916014703699650277057345820765284374401710040514020255949085577559137249784428994998779392957431954839636012131032261740947984688675288593907080081791703370772605165669624914316403440096649162442686079110100108548009142883805074954986050359433032131491241376674058598299618749114665200945749010022850724587042417871869260120752941776005209100316841797848114462816837089966083444908206960484069528588671580948801598781877054225612328397555405271268022257991047509566129752684126707987070249219874713831222949278196672944363738656006919462947332584550037447663992177209988426130290192166347739624609369792637172477599890378278364748697467911646861259227082983321539337974284574092790250571474981805582992277091819818080096111056402586285700752063875086838191769754141693332696359506604388905755787386353797686061538276174686674624890585213714382866996998258300245128422132962580244162302202253497769798984903302188580737133821234173324389723645608126869091430742321643138381260536836718499438589529937806835517810715400683531587187800579994264049075989045594788256345080116990078616294513301110309205396121951416676741409432762138958970470771287603588439639596447981198935666079189883678324985344822001751021665079798682163169173379726762219269952383108053975296426333359983287571327877485857504502956497135835307166145888022884082590028740760119771526422243372624668799535627536414009522280296676935575017552249939709141781771819713746297402529550989746348653009865952386430225937642640686884194491217828148811729535183110315663623844892462798294811000897121013241621882724851986793844716356886205272611698339981626884761516489378449504897627273138704631741646968513016884649288358551288623117172912962218307826154875372223835243316382748509340515374953558590389996510987796164872866662183791620552280151912532581924282426702526418305362279840420099782107596405644376864861712360563118026234846649857827605291554784870560043767580763946257645459198531837844865564013669780658327741379721056476808536317100746092878411574150439477975948489728122100304599883417041725326737744200668815822882265111891153893374294334569273986090395758498134209641702000789866911240379548621095618898333543944267601177465294109630911807212953698214383801131345080957101994107174490146245835775830096352805677618575079261781518020547826197533321719358327016357678820790859980576092441020083062285986244600266965850437260845436462793272185403333431262499518560092993265658079622309383047829620212963835986912101397919733145785027854204786540838922563427820789893817086406740042079838487305938225808788934329514804969941580244752022693727719097912300435802229878995841767725087965626914662735189228768412112747645219597853036942270389045697871749179505281729049704303595004489131387800230696650922811831993484329133871629878447080398486714716340602582705842358658971995253193352567336985309882110439588667059608714455920391936109633511435567833921677801956092362980696605643073756051616197982393655620101600113089932802458342794606219739114727757141427050608032498516735005267613969983059175398259424590520750639199291884664094112027108534714223617639057089816183136935358195962113802919525513717822602294987164444180919925771140760005931131226773700000356697280898698622395648527159080751536225635672229896267878357391956775488693871681095266302238764801535457123519202204365137135436346317974512613398882690287344041366277459036991815039990461856997809109997927168413416150200881555175694461372867886019196804087881733622427346049859862505518452145101225475444421145104949781543883296281362558644253622034005384424454866336970502605072876444601751999536527870102045477280439159849768443928291338227568214643492649399533646935312317926500304417759267421410284198790130524094138266713566647991210538655378177712360153903076430213798236502823192791341868203657890559688728128857929456201956682133005877836191674753082792415280198335145386071831166794626079341361656783648514734706262631503174217423891336020988814727077756791806799530796094220216218223050356503709563805950295994392505685717453758358732402130083622593821684692648822938882373465204833046762972454564642647681156322368931063133929722743629069741912035251203063460551936979565570888179677282752031546179297089009029087567722862859011546768960724173648071716551162456058204671130992118755289676249519110071482569555494184816928410700288365100893661098896661197945797554850874119666766451086236739365737496857718565915437230081922437766717007119104483416404395497906517501289133350634864283370558985702126184337480142877978788663150333416977546008564195870075295805883257401035083233280601427268532475240446020577723185868970495915402707268749190312084922832171898107127788368582801081046802990334326516892960472950660878770092884273752100288849747296608801985506229442178259575775655908565341242442746876448848480946117385491630171725906387629007648036618723222668870838937844786924321792452116729729271723928376653912526116516933184637606410680706231355979574728305187417091018916605230542015870222877913680914156823088686108555141805902717719704518286988165257592323028907379841525624046207906285154458709509334981947382428628753933727691649229171701295021949022336865460557027383189617018535498683655387459086496447420563896885166653661058870877491407457667853213484983743220326112867701484210647592755427684246513048575127608072370047096110528121560234900366004422523294670296319931644952371685654743430528768418455246742962638110975436772569477546809339287370475537144567469567868607378744099714153234193302384504076597220866503786509519826114102185073321197099208077394083919502719973131330757470342082235252222814686233518943070145089662996015034203350790356671505310829640512045543832854960466156277790906800366542662499259691075699905352330005322320212175910997270622005888964853123667276408277612631101147087534705229052855842133530410029983975889539459456424908286597674449290572365421303570536690173231554212629982368382511657802043187159693498962185311310104975178687899594234383118289456293090599362928875046310797396394807769833678913629428095973324736489705451959396664443829563726059644060406636615477369161761666150641579817262357543915734093713934805774635961874076557629084427780431888054414310075656670393564754582205447799331683137592212681202208056800678019751463719717568877422374564752997673442612197354959443396476478079140741128707773361362116819170253053066062820472586611598387479558435411306757376670359974090177044260014515582334669585094013261307569044483520563108018746737550892391930084541600787604844323994984662610119276067324045385336991740126885823354710158687722277246239784454140117822870553695871210116530641977503850760009889257075460397437878204514441340367273770429619725637390831901374676509729131249603362725439023057515448953655082732700786223793413527203624676807135050079327822563594896326258899796351783220901557641746810332328271895979895027483478530770563417145638049775766788225288083519817311986625950333680225155984385201422070277660419727081037465489703692412500120093234242315774918826941507538655953229267511752794461697503171410981753976590974371579039441457752884374838702446090696389043588202611932888912869844271061245062923029734878282676549040830614690661563188512038775692956818432125861880725504812010625515608881889774458207346308286456116748766635826686905135448080945389838496212181994996659312658642139542995512743895610972875564500808721582875151352526480118847394030482463657273431911300957664762368792210725769211795716957616205555422360194965758936356923257282876919937578036773973049224250284242416527459808625057596443517123936477991950853907647613917112727834770679160478942158078307009545010346261724647616529797382245374195017779174715226061943040546230228253789823837359839314336544496628344395825734497596433995659241631216660184875453110745599550906051944737509328737144851271609065973186733986942718375169083959431725733289751401216825791579016978224921206924174946580297521728027628416091802937949489741402927153793687277693974284794376007958483805391214374374696309571461006512041955708358237133110438246884281321763089523891352276904397671368916925902125550605958089952238297042639459938334258636333703261543707422780441767646820279725268627200144917095064970814005264886308154956163448469115484157144531259034382359984983592598682338556441237609587298071161095372757408929321024460558389337153152706666266712622021946463519468519356979302065055908046259670374193344507590329633093415456970363664715465061249805171441775166344218610980257787687045647510119363227434450653659819573195308334621074728795041699951917213494652991145973219356049328168209344447465804125625573060613482827927015023459008409131596776653716599335902875199150010213401147591135453081117522472987943496398621678492916805087274784697485352260111434399575937346672776148317985188870930857821505580459667538383400018453374499028953158369895113305707910291594351392756997294502224768667902209030059633799557113514656676353672912754860940230487327082780934658505409590046256935002781387452625472989425052734005067658697212425819912103994412490511978349361439734004952619120051698678281278660391598609322969518680785262958411955785724270001547116137550414364174770313884497572850003033341249488069499375157330672487588721153206110111722818014803539336093358243771853402160537123068384146844756174524350543626047602593470376901885224938237483040716598785978847851335579305071708617290673833648865861711715559651578967851078158877349746202314929390700841321528605458965814611170977404595496484545166957023229063485751765102786314105530254805440302507912973965735543087975428403951169953951262042769356007809512163678345156169326231506875795204709300015239580086951494512485418927360057138495736906391252071684618544790425165069691327902357433759991428394698666563215504021257264435121323512780716545555925611450330131067353075340355344908842487632098150301615511787956581662312600549581355576164527776053114538306588043328778126431385747830095637768811780066774981024945530184698415981510334389653949557694859112005322046858047071653383340638166743781954854474923221126279251709276167162087442761479918992247540365828468519887765203937353583554653375926827871367316831290896507404470535605665237400343394459604829858428018144642543593416563708061935177668168270100563069794925017071612007689967546616499588553148761179942055238863695225236859857104846079446663038680524693347803648799775523147339353953047264060879583821813435528176643061039992031888476736812621962193703785604321352982140533802448722150257863061904182272051880548506888961480070361387196626388271530781595048555247332049708921308742954850202033544335511845501961404776627259066800797881737775287855716216939506487469591189523058631168874212609699015531752425532894571718306523829229975780542394099989810807086625071031904497874447046628077998385395442568896699322019682608183209392314680260018635468545359009061426168233996650310942752262274370927855948793739167166445000840365086864375693434175991883781748991981861690333765544264937769915835473481551042506518706305550528971352710729748658153538617300118895459596649590616004160790894028570252932923487659942084201788933034530565660078812189284143858141773840140211990626004910199734289960029891101627639918646165385245313849590263258318274739021003983543531974817970418459786457285624445042871801040616165702533353324177766097405062054390727106234928626001553109484478496382385682432755610392131545071998509691231759021636416035832283737707374022598083903294731188781254407310347133045702554096641714435266139470674243620193944299983126412663477540054000626301024579664369053894194508670179274985927991169592681914573760326954982497182780639586183997431171868555864814223984398680180003144702635409015080148795112825332102065152876482868076448635745200026903858116217221322000480103084179256146445440179587350087062293674435861965915177912892640421045515470874833735817926212519821867244740366142485456081547972393087344588042178344483964982057621803676203858651377896236364107434745110879638971316447818962971638376931290984931169366943896576576146881803252877107795169956420568556917543298869312854062389144678316961710765017509031179136845606063777237509845997375473783936610373529367295963364015618265381441706359470212528308453136930615279828219704133676112086639740967064210097073727247747789210922671970389355884723688991025756083843230262153303317395196734778359358025047165487148938447046771487250023615842573283881732322460044833859428995104954786414075196140442741521079307744693806617419153492147482850549406188925673995627166007914893300127200268393485754941738457742361001146760912252861139770087956250875624576871243349831018922069301466792627260222403204941261260606607876655811299908833239139488721001904701879201687117512736309502917126537531503033487962144716900831827816459483102698250691733305852135591651664215321936766736586683828480116444843774959729623240642388101503862419139737877589697918369300588986628077135030811695524917121409115028703620213550058074216716783684334433984441104308270247863114824878561127853372347864049455954066730170789458473934493839655266128553830052388145103518656358027087367309719146173072807073889190216410958638964275038901819593333447186741994631792951259664193490877256217650849529427902243774997555564075607469293469223634194596253891387759295280212992392515433313706201594929699055399851423290896199549393926331291632070497097510129583855010301775004525700006284580417279470935536655469532536033256841764826277575763062674128552509524162776537419018568046935104817084960193070055379886118575945786758086767959141109453270884946276861052337245192917429324711009833754895279571148932919802873714370414254074086593960671935426560242743155516304550214861675768911223996624951956963143734478038228050653343875581136051588898252821362370137207872305223839259354158721803556710420796270002541853112834420406021068376883762442502213263375785908435224981359265273163473080564263946884754166070887083976405563568339435451572926140947403147243407993514318453103517141809832806151216243353969810306279194199948589618072659678526524808286533959771039398248803497709938229706153081202960374898667801127186070370888973764862674334013358950472871456049632750590269332595991506416423503028882519795767280756002556250069410388777167226725183382371973672049195312343958618720260841392613734432132095857757393948746894562761498560893462111346197517071968424616749398513375066662827857100900821478212858788642629835453306376974111693260044301701527903041518362207012437399010946032776153926516353199025226922051449906514451787424483992133563237305329189403395898327107297155459833609982428367559500590015793362981250094379853008177508030683427724441955014598544209548153366464577757518600209088552336667979918423263339540283032022908661240261569439441600302391947866265754336530732345010726702270850491664365345291288392493191583579519422411939505077372100802788668774348770833704207633381783179584253882438091582446446855300088875391381284659362710185964745909446692786307362855434142580751889821586178458517228333773690764125300868361614270262042842080224149394080468590091155538779145882960496888646178747204660020612411528958933204026907117390214493545315034032117261998637832005650918303429985905963091287879068394402700054855847005038953970103490162749332711973421954330926170702465079665750940791350711041495560866013766647030793960758946513295507527317523847110516326400078431803499010181217069492072718198146353950627169384995652814429040406947934804389693245914102385337322097225581758976050636892433201154491445438246925194496490653687274742309775669148049898014980396974968315189055446287764171610982726091428027577191717914140906136550166923229220559680179590730897380223213989792542941166303798271990950892985437652706397260706924549236603270923547349634057133237429442081046534232772023706835724432647154142841607671968830105752546506932919144962877198678268357045737361502119637966415387531876893026577866845268738859206166491560244746126124645181408276182663566698993962729439278217864364019598470791596891871713827833092685139709410944821123017817566814125181852532458159664633807603874547285073390292518189417697095153538540321801326726332216226413572294937199562427852786821414299220948360074764722343906087285803165490341903295108265245570554431936099164290199068760694960214435315961285356725229596521273417662372103119055352380993711020408411963882009749133256601525725458761009945048629696138887751844170554527437870709236723661231358949303889706922352637748743769344661856849486346693461585726111742125126071058199030243158648754986171664603983075536629073496131690493210121517731357031836640839448192756124293660674213053013042614347513606976981227647128851447413069231564869497805921075981097885009102684807551503544438204794097972911669570680765815964287012126580448191086771219025795735313737672045400553179153239028257519110584321490039844697292327132264198600137677841990215035646798860440028598190193801960542485977703429533141366280061766093557357461613284762406277104127116721196452759070116202771606028670259698251619458561367323859970336652926469757531315675082748621848399448448342419765727443371305796393997477194493087489113727001883034546152435244805066103738187966069726688998233876122133003836144163728083663311261540899537776768280730509421566177620961452562877328566195966579253530906025196082749948631128505669294808801533266552856544908388914646048638619366485327718022730987701276526107396056814906497145021115278812857192074294505357535118925156926173847916286359152078988713559523501239847809083430909265948190950382573808865764460793915680185061392633799444633432995800181628556048453182996657979055754579027909244429791817727107761327776044576858921381649011560051847849210124920210800017586851977349840238528569779796632007607287453352273531590917108159156915714954769896323730761014725522679959655247578236836518002878370640821490938274342045380461885528596024858341435028066418742925208179347248133054572711678310033537445932757462385255351576387232463708266172781622642926462679034710317047874161916008242486251948338534084724036692134731250533249299388387975849971786755309189760818782700236242415373909142037548108397591032663593974425300675674406787402589484181890440998140897902262021537888270665073443905005378641143922988130875119492522940148006172124626923954379880045210607578749539572596466825378461892496130327433638436363093162219539112684017642004118801546643888107371402682112520757194633813376752842853619658891511856194766783282858328810782028915231698606525371093665831566629019598977065708462571930680273218993539045992524644107315113915464025281538684593358340534041096253536474829164929074628344485435846840291924726297298675831845757031995786731183709940618467776588782194088820169581524396877412566802468613823600189076735390440861096108751335597467333148481824299242569776679745900267899625728519434703115591364548288231681448831451287415285224204684852748666435899910031430141075019696791631887463857983521437410406138097324295310575573509842377898800185395542556229149278778129314956418312902532819825007451121395921463352176112292199677617080560520846297759556126109390116706431809913988475184571446671916093278764794747207270580208664645606018716130071021504791353312770063097590050836806074175625610105213350187588238843967658902094271187826142448567189190416301776813705807090732752522417078324628477079330185574895824765208979464052319901227520663060312154058447622934569812156473354085715842479578024379668619097502262335301167205374609995160267306502154277376004743061069086721933851435167908709962535859296882063996944297231121800662032305984020184824617320624713999937527975583138072390984417869035238950960731226822708008851693546800200280223316573977169939617441251067034696695206261482312266445986892365334098328034171050384837129758335205020228274517419016424916208614906924423906845928091789627168113416595900348963871695960106287448112200411076812022979948530736041990598737865847345042736698180632713880508608152318535356169518694204514973007602908059906053641103874338187432732681671431338348471865177836770792655050675770324398279595052313144847589639257955819293563278042488743260956706236440696824033372964720664795795261551168579910028148976428180495695115999141984788589392406475244317862744036635700461928567814018724176771843086632107801803931000946951981554836383262103083348898088086553600098842271802423110958129554052769386074556068145130440653623210355927484655854525816209484610087152251618110653632306419914519897025445407581710505844409715525914769669595134495368733777708535824913517461544818288911265401330523077566173359393703374076425296967552449446176221637472789391707263229596817955481635258834961726734067749952160202809521616179935875925696508393405427182512301492997568756567389054057998904206257445655446881347211305215454691009629120300260202847105060764655922582962168810482234459566465979260238238099061468525788333096269171461617126257617971765539188792142801652265347877325655825292127057044269046542170177586206084213713971282954817314536399633300071037166191375917108899514813819725029985372795607622110741188574109970645568736110295083027939422883657780160170573342137582027653200850721996400551893786468788214771168980974323704552489085815408800622763285122772319908988496215353212322521143709090424167877192449025670059215990093615780034974228111369818067757399770225213081961846302231237474670494448284009440012896471109653066272381127062513037785522559353617180102061099366917932503820714123942642558658252044820375975900663670343330779107924999172580068487534337312234581334105798129953048426963192443154584440095027546382288511810910122458666767882290337033475261924157642861497321677632527913395735139751566993317351556922570608110549700940395670978790720506471478770970096156474370125449262472719916588939775236342082926397523774666516873576148270838991239779050292231274776313082080048710692830511262850069448976036269008528715245805786135889788788058973819411108094511981109052136817053348334547477016933151407948644832203502196490506601621639570971652262977903539467313514061152244263230341379270446985270331788700809179840664488416143639344708439648853981538515542986750860653395396180163069986461759584686339939245268204911178239912826270637230834729801204085150093896741033508572349359417799169991631001729735409584269510416399728172988684705752964099677100408654251242954258700305023541729160625536636024935085447091062475743156748209078634539162844214975906179440222326452798621339023700461753289258135599812985606874151404261888814035770165724740776079544701960821301781251179005233664809049922079609143656352359268777926441439110589181115832036403584972502995800624115915778806650578598925129381808621119425537409127257322583836869482177473365859720994126624827077813079404196245698823559111917359727473323092822377826193472381947763479282524720432498275942766789833939599792111410590764612327209494050068259353783244288211818638714640684665178579370379503266213490603250631093435539627542261336466541050285761531815693327315570317698967607361487534974484599644950708716919182397682774365852300289660694209198792120545027845698860360104173297656902895973008090632791230678722361128792978813973364054614704767298403225275365831909875031339492593044093663917871403833772421455148102753251723907976081689800169769405200729831782095138122367296754529311538381818716293661654572069395937294364975191304812926495112876702699922364976250990866336464088106672173813143256111268142982241326953047001295227146571106305970059832191487477273344720552680251884316564192893568337384676743771123317940909722378111908513130485198502680525004018369375455918888269995785702945853636892438189631055392097461269257596124193999444202778747613407096151296084920209154102513002112824422904990290981172285944083945536578841900155113969006400949910330476073448518078077959366940051449650806069173418117434740088478202248323063346686562020300340463160070121158139837762477963132271492089605045689184850477245313781331500909576577165620113235644750313258307169132565413242001765481223508931897887059992853049510689551633002730848514796218304374549101691821717728726564952850565327615678266300893687737235579295889474999819044757208190747427988701500468486147515265900823835065240696017080688542769366916345568211287330644965437750807860576579003496097783784394515443744652754326563188507743775732606118457963053101154735521882781588187398656114712124946314291396319067712003925809737105605854143542539802309173834233743955422016953332901106574105761748866671880349066501248852081403713620471203448462315485789815286261784392894041168714368915333607387551017558492660721832451833623303254000281698700303595127423314960122304949691257366575062518535773149234197523248153885250377610312717118715150402425789418686550868737171380089916859515052025717631238420365797908163343772466525680928801019726892997321753798956467811724123264345498528186487989013478469309932267677102218449615599183888356703312720520642347190392088224751367399411689811449217266070708034554826063903912646659251397464754420530497274003520572854859674080700868178636372596135766947166957952624107447525409724842124277897426588785584033008340573130130129868708796441657860201707665584699177000755606008662939349699620446163405725338710772044806543292700366956181547345320210654526691131340987361201643821774815840809304389791749670366146770757058958809321072397084336188383619546284043243746616017516312713154346379285062493516275172072719490666412680771099665714177721375051034848265325616595309466472533466552998022029354816300339158072205754712868140073146482598570804370246475168808838904641872538631744775049393441430317011143918351689160233604444181066470527641529620769038694737633842527653990271695468146147258393336307898319309187507377712585466252536668923691760315174440530420816150388794486345334924586187266274945844261436354744455935901948390971698029586682694899861808078306013179865541996853645072412833134283640645789069395798118783507693630244354871229628739760661193788446950047427885439033155804890049368499415039448134644972480216419494697822952232890168571156843638846644474225219372630893085884046202157783683490074054986021228999033017937465758394197599874636523877387867204175353991622549528300687333384393022796226956622722418027673873328190988783438903014770562225480589588104991562329094725991950148903019090154124925025649149759730187290964279486104033023570665390168317465379914076449989839719279196266961915297233882853137722988150724984148194608603893895522365655413603075131305528602907204359109967343566912892085712451878951073946386573803906683606181199178503033977156070815727138976571266349415500852987190354528211974666911349985321364028325989070401946711478695862642875085924995723369159053366203965879850157567288473468549202413387378440650436769488434033337369156696762961204950519661301293713482930382836268174363300639134534095966856165547112280666817010788336391769086031739921373754482456640340365172823616985858623357186257853341412093944576609319832387332226713736126026076984191364212936875468018079459863456869581848427855904450326200954736806043504455478435620031375614050786184870580556560709870268802982698354816607009075443775812091843877097453647955576046223511622952570066679694336516709682194956633800966868105688086016136335468365378349866406830952078497010292121400866775959830392307576316567367182307542030788244773509832993867032291174621347157770439770645008255447747064489633393338167269692924900878144294159766621788977953840487596984105375169909827256613067113979477117912629464719042875542791699498811492060267056513966037826146732762807656774558243312958902056272983542811480717835405976013689076793994337215809319412607578077573797442243528499346341894315392636065876026684481982383100685175988353779019862005141569587590415144376174022608075744888611310336935403041220077530169362540320549856368176735351112219980151675729631194362319977058774534216172022572673156006561455446045524787948941390365263677568125035915516484068838711210960478024356192351153253761826397605465246383672487611795978075566419328558829129057760126017964222697617771782411354135095042192420665199301276630629839643799490266615791566162426726392238759502505871630859540707366987869738846848220518999018768244662548814617555866969637697444276566625411012592641644047562352417037649509643425078741187943179435296278601767038946291941469717354064981190331597188923265778620290929148730670580835607744768948988858727983413551661971883721691171592526912632269678585292023530770358600305489622450139669971999561941668971672249694536279020744700325963732162139317908816667685002391144171416684375360905828105846488381713849380085178061390000928485516873091088957463068897786404760766844819687679637143984460395283115622294497085718333299222049201258287231786721120634270342487823358884562732595503290681131253103007180907401659089960132479197726309007627666031236175051556375073997529750871832746257269964038942112998350608703072448058227974457334689742312717664128016552741170248473240645731864309353573916086458535390619188445470600900526600953979192223986011228671287076833789206789102161578288504693134227240161620884235172145202840993242943527520145893746966465441197592630776242213072740812710115150200362444217310560768160494546059044293118486805291381548449199474248467761087514912398342895518591571309426876842186712384132388768989240778205531554271925438725749479124845447627337500270717311352963054895942835564404488771177643860998199359016018877666815249164866813321667322856947230804194002538654452974461709591638103339187193672522889570361916658906817897386047264885561776848627568743325133210683232322852741326030999320766782784041723163499788687321942592372634945489512514373310783836746847855187158545253947288486343500028783987196791156880072693869236479859413753477596231982520077099283374798959314195549235787990141348901081301560599141485892708304540133743360933260845906970093350538355026726420337899492031455742987683889478879611705483427858172041975871772520868899393166059500227592921141490717204184307267193112103159379938374627766503247772820522302861422141241722585786153123701566203520635661986026114525341882977644433595780519994287923677663458600680072260206885365307801878229106310070946095712721406302864636219041135317690318637923787396052982238609657234567400996497985357945907051545132919039742110051141531006357866856082427198598982857399295068164047529656159931137288201233704185893243892692108235377741848208018125409338035704828238144566027106302353605137650326907860883454319124613468154426174148924369388367268671998720301963092283528060983933318964185375296341284548920874829607131623370411478570172659677449035997688187247471490909890133805186513309015568528560372657605233231620827047606359176372088346935145803136798543257772504454215486287052665401366927322163215893746135767248884336320693736375905057012880987858946075662217824906997501467949630395849286853996357579769096859029888498730500466006743922105634537832049746413330008329008616177062314180956336325314443048937786555284315507263986012845521924219030323760037538797543473897875765430994242804565647567120050345426890433150270797583995175897557994537319432446973066366217101009569995042399565962451784164919210033611280835282421191429931722591873350410217697026225559665387955571577869929334790585571442850900646888135151249736274385555345936556959571842358576064290627919464278238953584449064164094763143917800685534404807946919587067705388528886836210514538860779241288594274433679389956188847992025728634125491133246697069964070487449507336008547231935357978494824625509046797181292527401837863097453783425606249153871328822351635593879878350663987079545937149964679330827054694662937043913155870435726414130233253468497084019718346779232945536203337230886855593354913098190877630463832993721082957831726975415478927265740224503265006546861165827101183099641097448223641328965953102260168983225634104858714892577253309630344893210022613628666854935470766349239457702061587355591139642558261744663784647777772178824615764750823218727441184851399903156591253873821899140636750374853820467971754085608617469100534089280313293675162096590019163115035270421329908089604566744920141914680942774065393523217753966858404750882570300812992622364658456566711692474539505792436676064646113400493541378942515323199334101777575233448156035763408891180441534499497328197603781808937863859709827636813936613874439952695241184670055900595335397492948315977273504703533659686007056825806770192577321149484342919841794358940899700327776826072413896940701597274769264446244564950592874416268742673884742809514028623301560137393425884915447457346617897008629484790251526585622646581218422583823071960164778053131756671473893467001848284538180529306069303927943691656098884435468743752739892576711182307479412251119191628248992782865572158708353362047924768618297125971038710064167288829875414341101835605286545546965515540014410712752855611304016398536804790773104312575469757485938107295921595408268871364637363878241792044663891078288008863996989159462189360727611429657046831632717346053875908582305831519783818816866931334634028311653655189669832087823670721515375509282328925389720128745360492576459323842145112047533632324465095511973433298334524194457742675194496486404987462311222092644375538879742117327287661163933269762504770385430254693299791983896109598346199140837232595785009613452751522110321131099003638260539505965745383567364084253780973510927805423866138739066065618504670085898147993434939100790741961498073532213717725535861610857542951989483253613149813710202900799923274068408026904563696504282541390282865360872812134146087158963235142256911511233641032582393485515453190678182455144264349950922723090137357931134990638205044051223604930490611175525895569365539976496495059578964565931820650864140207593228203219127158579125439313505067331743175381259985871946552311075354111153278862440934511041731547760815582496231139978396403998786190164839635087073870235864821052954407361665945139749495149886478590852210649046592256093523902476956415099327836353993190837152300371854407628166225835720972177126017413982830034698832926907722813066876745549435036392483225671471143684257836826372473017112529064997112414755975369905015672248986471181928511361690877473446850755597630850494586783436080234362844926181981350046861642071644022662421942636211970661102441215946068362416902025743497721066957166849770324354479967626237890604261193400589227073428474775236561576418960949326985751461503920484764807956380992734986941340117120134144277966342178728355649189928595623589474468723871273437740642020186792409194774906578449657207007889098841872351455455381732847272301746952816339787278862203920379860344728255570680906004804507112102728038116366422952618332054791788208467566352594550774301334215530047299452602043389926469097063804823801736483075800888840179698775522709273955710412913475410859031977156093776164608836748616253956718445420567668447538459909205146888829015976656894290406890761142138367380909622691280810091873868457005647810879379557177749579180299332950984610786623066028414494088368091483366287019714150527891661240719315959464959088339998881089033506723225319037644210044793802541089072019330892316567579423752642280842548455714916231968897908639580320116394894199703971806863160933836528620623044936427102464201734822725203075427041247145209073387494360380588646791242997821306179995967779497256992581791953044858619787725374402866836369645807715454255911605655452738051183509837773764541512126504014035849511522258618246197775800679774106621307189724697279997896072548520839705154916332539182020818926035107354120591518049212255370090140563859406157599646642346066345972222034687139408010113346864442903852105219570762318140050590259390760872230333314851977279284321199334338767211758523513893651358353836625269895522797920912354189256202570004498921559572693514513003323967517716620745772728661557695440346237951377389109149245291870928256883225886489911618733302969907893671711728207752727877030402791726362135602283723518364644847997367691827611931724597829906229046375307849927439080672903905313054064151069118920230237207352119460474287796572052432379412231127141528078775587532693748073718205171427803727240524110311094187919470375919303035933920674001556474852654385122734768099563799718331769956835323827871083699576947784528946105989974214787643099846234837667849196584321289606965594828820111400777278535218237372469560098128741797888408832335755470448714943732037739640173658367379692476759500393492785521016264574808302620108802184628695450964967338335225593403340987005424353110260969978485834820550332754878406452845918269326250277001319580225438703048968455429534503821621811654542735309780245528664180777136560525423408785358522730762943140132383795874061995399532624496172723221873787381411185192343096445132324954017137207103928719191532829751888878165582653791480620924294111766267557171879737017679555836156616853763886876504821872317375056252399372435114753829641130523591054991509217543150622015490700872896472239677224507147130205184208246231494658703806426424999466387168439275039849391381664525587032703033297027764985849355740088530095946907067018107332424063089721144145200708208383271407405796010554953954476779994891183493288006396664468252718998540347430624707132275997370390446465070231924401318690760521975581417391034823364912963407788285924754636962375461391183775388063072702339606665526323364152767063934672863703087662197857821335537377162094437286527826041437595577598915193858496386754646180009306256422362795618426626592070136965813462026188557356344886115522682896648630018942243216958451168909989560826881092871946173726270186050168773670569886980171088066766757983879021370751739389585269651014496736177661027321151352654995298973956564789411056619468268169892875957199192917851745499297953804612658889125123796717810164964925845053693020883731496152585270087190574542967559666063191171721349310097462392850616948485182383298467003343113935707056011328580061495462497993033151483219516418747413572755783464592592173416788636414426223263494429080485753761846293367843428557699171280058796858473710503132187158960636864325119446275911162410486233295638899858096916511430847533643913707657503935625509319835237132517252807435893510539308330071558786990752321769406928048648189745155321708521724877104592741713559109215392469051356802764518909864929327247272665671561384541865638411793266629340898373031520813916379926062837189339837731497993056523678427633871252268818124576233393669653097735793075082703029150804976751040259568972631711956027464025982790172082853699775900598752357474375454931152254059653228362139812023666256029342628946817744015333976043486021401542014339252760570849641162464393435712083859725482853073217087728235006666397818195773354900082725539390563775796244224093493739694956911800279129144724253210508615756427911253699469960138884865616569199864789645123244842780263653656740090601986787426003364578412944366035833826804620248880450413866452143970884963226601633323566876785073360783068394480455737576566236592652538240526164890882192484332546728768157170834310603931629916819979916101878236359224682191070784531024813494344590480091227802657603362029084333393416303021848827163343369047710180627717517683035356952925146440647290649481260478868124416939836386751584024967796293893821145393100711874552280833359742789447841858026904839997131808053554614120225003576138375504148099637514591803194548348044873156677837066246805065627956088550162936225148732071706337725149005067233078309052031563912372709760505240498092659616061788947296315781406282706733811926194220940541498997674823293151190192982243383126870006906932535111599788651591425082788050290272901999152596679159878430795344039829893061361413269130393599643530759958032995668657412473568118051585975883634112841640625909831476615245686816972382077306103630169344583437981273728435382955062423002548699319439259832054926063371748955552586375327554792691677836882523525356979853577993649838755577859891102924085398014583551429768391616149056240991956755443251658972568295317428476579995218313291300489217374215963003213736854242511057879429778010941208649063333994658608263194083528496312403552732240390116229694957012391862712077496218102665138947513094049186090016262101005820905361125687999552288010445030013964046037694238448145982076770509640967892441127957072981118714460853704606990744576139644845726798601778120957968553307618827156977364488876506069333894235019182267536484324049618750689618792978747679811267636128705106051162491786535451455416659997396551000955523775324800937238411720993894986103983424296279579338747381373050424519466920645606221626665870193302028174795319423507063683712382148342477909380256635715758491155155748139260810137114206145178732617701790235555671107079547702875470034518333982291943265256119013104214979158060160857671157535605300552549005787568762766753243246706971054207128282030838850181076583672300781176760628847547272651087813546147103917122388007902198938896915011820511331918953156655775577057873067076438439447299244265680193608616203543341049804555763929580076711059383855657412945111936194807018705529432282009755728111081309677974978019782021516046728016830457156227132372782284453970831185675620454283391942600666101980921909413303292504656546043609430302228476651760744436409269210534589364052049513017660296888684232312489836938118156153871403714240910499116163898919919002518840425882465600744091550576717977914974054490370087190788660034894016127515930363189545568022517061900398645917056952343996882088354468049692788661565978887299031477969610806882124938254868747503306772836278818664712219508433486309097403602912270800572178403989583515467556691795056176428046792548753581678284295282140356936156074551003927323720579734355675974248904659091270157291347010326362791140159091542037152825207448145078687737389533748455238825762099971090190109755981474599938889846828430672526695826721706427703260551077256456565112824146333191464980287239294533214952207372152655137340433429941305198548225741133394915839317329200680753946537924628670656658773016641739484210935309868991739027210872747449369653299962119986820393421052703119423250602365672547659334597315817734257264021636965187129492692580998338915221072428454715982141126069367915386909704962223634494124489058903924924103511645081345874271098283160734213486992150652090833735503665937580049498980035735603201530552793910711001169178430835496462824824356416816767642513661615787499926054738341226590216680997855083970150463230593489406373184789039381640462209643386297211005810149057399110788107639791377108472944360085093586449397680585073474962509288144243396368314957361614747562307535317837269513094545460753668842597541071570090390368832436453486788748389013593715755080826279443658196229878152653985576484036187343805081992024487499817717496654916994706538140595550327649560405046457162006404676587184944339835221744426730984993313367424862969403376503919320392183348147939707084401874549075339267701308157399448468106834690585021228754408920585506256594230515434674320907725851407408680644871846528474610302300607793414078264487364052820352273318275512868351299421605648253121369437720932178533346491182769699751670395986750938530513834760882663643465381834542920396108559454478766442555596471845884455381526964686881928415273399600241781709985325543551586145947580893751518001996447325185061716209321340093915100317474887720019176610669754102361550731762719814525949252230542241682144147224242496526383315857405911730889909608749638669009178651288080848954289836403196191846993480356762269430374416064790951085642240929555088408998697917582002414889240236240126936516998687167503378502004323704668957421400589970381795859986867365557699062477009237206354328394465530413183627536433002805070723511546189479127420157360119421104805247108531432100883954565395031322537471969780862671552450961819840091861547998853038158922847811750002952169985967854228988779767330377648663215575047108725292643680024802138235798445725235050879180347153689935891918468286242766389723095567426669447963254476370289822947298211363197256410802410567393770768405544998298861145556422419072795419241342684235065854330254803328493626857819169710764908038097067228593515638692655460143467463950313397983288313813284900591136380585419127804435778155401782122589745473625609250678082874582467584333911984643927371526389543174554139885855913480086765177375352656240881737792249861151513076367262878373693676035524241186157553922630775055260681754625880396247453312527794650891298384843936066552249136791394760403529679809819114125397307099101818921964482242932819449311348822441980354014969807126288533155690241186767030836548327812545606876069684404724072617051464757600576508328370298613504962536107233945920753841228129127715005788555104966694918958691857008350333803100020376513305104707771812023861314085127012580411223462732461119552956838264480677933688932091139343868895608865490593663127787585922746334275210937351343615819245911214465116180103738413476228666837338711500330835515710420107398494122708998219829618045236895042035316075497066856624693550060570545249001045591183516764233001578693604821541896540030607817938833543030726773561555030238553150007537611890656258905503329925620920553257211542517437791777715493839901695768271255764513520443629740972055258416407361803727115541245059566500614985025224283251109688957082360212434630236006015932592678169466143993119450159732991291979027157444500737359129060920697524042506340465387932338563659339068756565743921671034354612083083415232979814579303727364006062868675996641362695942123715607124430288253927780686746860704365635571589925010402096100985457216435733298364363421271765035853073737776890272730573508531450691752462158587196803802673038171210434819065573553632333760592915311809816818715363965983110606062543034877405138562383553522029230175035909725242936940808733545836441270041223937513785379260199254336747816021201106188997302929968478045493083952048612819417643691139075040221826031741863590837499566010547505454049317701270674353350077086085599054077071745657664009179003079741342168454116356985607970922475104440681286100144766731087274848718487185649990907541698526165837288249732424055869726717836921823574061944180474600217164303277314626284364924342514426866458224278611807325533688887809124665818853311481244860264907423849021294708722220451164512551320786172101093845285181186032163350847310869533344559587917794961128515577122734311138371356785615509414646599027972733358619944641234662635996742333580558670435423672234636525405759814974586539260754933774444889594658714466142647326938796507713233932915149978263258649881615788341379574397146313489698569850869309352998428988552828944301703627974256272149294875024926933401062107686073958964768131502219910779820054230805018377085729950080425437609225350372601267217305130041366036851738190859934537668365622530038849007944325016565825684095035651655191892478356746506343390561323295845981966125739486039957054322289313727667457531836980592234542116979542994757739183660181218101023123639749622856159686535178973571759518319315126561996828758529172513982883129284324805539842653891823744838525556308009877876512614455032874779643158895616594009203469498801135331406578178981434412893474254503826996018544737961898073341415340818006711579056959499544510476318051932083257933553402553294693267993058771797295939920792357146998551334013800710528576372209827773071115027841003439554304617747904385499824625470685036245000957806074563417534019061408610565441509297965537914380064219944291785874260712518763128118342538783140083554242052231950728613744121363760986256197390463046942693863477128861060008515075537740842363050894316174213562139680248614250643214156464475969015477359720691195904444232764122841180917147407397256549631390222489810291886322648785869261729671422079590458055392183421591121233642443708758592602928396737184895472657470009337009361516877390355250633573404948779254080061057562701438067079386715274398466574328759891514390744105550738713865489777564104370633352650296057014721988971808086428674864811525252909072193094969783235233605853728022718475396765707045411920228616186028421117541600451055072768843609331618621172967667765400270421539357506037717636391698278594696565858168716320074276299883950766329588932292956032932375789222057226792822188916742193165199094936429929638758504436604282723949583588639683134977966541776314690635602164922878873289436060793529907444293183228429620909995556255702407420572644307373117105605922345501660134871562281729927503850762976335938484410963605025045237191480007703044391623868573916755186080961597381791217968472076908065385915652956074935199260608894512800354432544291169763873816239934108543903518757581940273737727638742965463788533478496931618762214958381261239253661390678504376233281855509213322891643211780218063632304822241808855960424066985723352460634309264871349661161114019230644070282111967415147803518178476517760817174824335385477568502244934883683478764886492599039018312165014916053521081029427022574615282216373363875019225355371783008344469466346246108921685889774188292114251033933381844003192634637813007059862055519997945261354592879671740994241082185499815549490995619282413309353260878639019946313022971190927826910517613687615022834170082249503724858353880289234954024277731563131353091778131955676436132351394739365629046429316331441233501172429941336272906554292568970146202403004943025988189896055605198349941519257785748575077863977248891199484916471710451020201603859729863215951556540102277799476308662499475967262316660836303612825961947126446131861023721895919867948577268094977579202673213707250920100580277037154504345123863610221350951365917045799185168457760878602697316243817516668700242100450321874476728207327642843656680684911117893824497965543474434984353656520610254872422283399015140111765279738746186103967584521128498320359298904405006887280661347451251429940261426187303478753775544164366104239156941184100439813148357360355292951622242769723908220144823616613710030385096069310037289243012099975507063154758191832960753673426844149323335667634147550187527806578803689363455356446779107548426079222170910015797334808569566077773257230982009931872331303514514388008394298422105748225988342313833298365566570903824479250277198573798047207030391042871095346082245842424489020083289262432323194687724377919940570987875779248731100810437462181088122612735267944771728787116455266446201654152424596979707862619967130784770241880736577487306981680129691383820988339136186268538344234823274531538249339349647671798424736539467397095770468462405450223826579976876422939447715945999655215389771813237787615974476667473875572800967695238659636787766277378342252438721123641890235553080470687079204499870489843803846438163530109867911939156067851847109730950604865043023036565883301768246479343191139903796510238826996618798098998997960781720410741376317702138525284404412029297350345439043276693840256550337167421141890113506329414808608477730640687431183997496291603705982972982586382653662910676718921392564761538640175060968357695333866523363168026485386282875842130434994401544711964602767413764420345079544041042869838726215227662163074753593241998882330098721781802480469409521668061421233217637150183433416526947635644180075725778942331474304410357963470199543178227180458618897521408219112889894463342852447453787006998141535752167938269621162901646815266532132033179392705165918221859910254286810062499656105426126582999728295866672619193490357439303733167062472167405400519001417535004669789161038847957089078699342152518995345302206966678576862260510923209543429249997804754954307607804971963946702157828210522071267379171591415835884619982557921782355867191353961316878510068567796845892680081491385843303582972360443167908149474599059616501228434260246214542100011785655160035639121218143137409446546023857410453485923154987479320593959091435754704958230919148329534474280486777099118526562126359440519217768810738373824745263711751904224217128174836931391637005023395811791057889939446701254161790090767457713812187215827233679289911385360791741491897957866005557672540819676589130648182700802755394190004506425681722677858762548165282226482713370492193511985584964514664453744567834514672608593976566095157317186299619228456771649794628023837245169057095304137454647205640701637006878506867644852090670236356078966902066740749108626183789803442303009441628550434929855276861756284417768344317682052447539866944396604183922586808318597951912866633129770052586202280920906605068317272242692126409320448673734605371715228338863947893465190855501246481145081441247077270003985909699990780940591473505133303094597348077398410651709987302446750192307515107907894068693207815772942193922651857523683498980491831182020029878942960349824381067415112551619720555616603643301794546451591254859177023362776206626913894432038899650729820626479539086623754740412645597819984193131492762447029178755304097363032437773916189184604398063389971674959065748410625690652648190683345288029978670076118443649678307170119927972711594872732279813251984250131923339969910833984433455613927137577963411715328364756387189651660109918605562050570419335042388848164514063962194796795798372042612442813146306592062697731916110863126045625555592241881085320355145236682609114963568340307237150932046545423116103325684377164781455891152438880831242677098129009471337643045940557654596069087351883791802924514435124292993387100587951819879011703671274537530463683686680035663547954147983645409562645356481581588979409561357303965260553216706802534270804578105884602941948908444710261930318163637031047637002115052397875873388634397127267926003192420051818311205058521879437190793420302079241359682657471757132110136456787610858070780115900310460112718025924475836967001965090464635781500619646038865901430239525926603872083577792262156901318374366763432142758607707719683612524698442311245455406056266245088148922378604515489687294539860953497896778218001444550648416787393019260073369983307962794876710311804904080474228596757815991065266592608251914460710880757545713906587346931780807715848398326533832418513799505314912179011086143128412748915194225320475285138243316835989819615034754347811111998283810890935062457900126382614148269646008839721827617555324806875603931286313009131761529882311348256745967976352160601989812017481215679473661129758843018397732523622779001670026447832902250368416370159934233716931409859497257461006536228645137687899757859729140567584640491871915074166315207224469107265702051302480242754917194768634123745977502562041357868176794471823941216179986395705608593872778959943956730295292747756288258577730940750446283897450339993160528461982062433407249180151215643402730525570566168201542617782011430105509016510252492135505854423992588543465567977096082120493188658374284931399808127524990889060008916007428304017106317865693023941337727641063596232333081873830113424958253416838662068798278339771329529770793141817436086946871560148308463029997570264875308031693450667501002991950081697064398708916705195175191789499062288506347417831234944698223838736171191565510634167282586822958090154235054287492881003797231531088124720732860434387583928121639857951170515818864393044781893368974419068202295848020818634502394940491830893596545587304779889428165603766663331735910739132078764111469654297368978273072844443296308300183612797093931291226999137718240111907454037981634035594504781101653816364302656209975341690495607416340691266349735955575704063114883533159202308794545276313498282024615959867560334474629383549473601694751859964918250956749809572400251194663741171403212761291844154844255168163003854129701363667470247963626165515038977584154207951135601038411808966793909313869819164077680434890108148126805660597455382647501392039722391939209361977799590658511716288717796066121365676911648296309567413907890754604458141898528787047295364632442935380382429272224274968436996023199035940113295085539234594872516371382051139750660476479695465461676417782086623138809681863368885835497143854309770920132815100826454207722874910097454416867529617356492398981588014387510537480701310241044545699436468869740644400365814045384809118800022427983198141762644174854729034728183642248841620293811182248653808703326661157542023191014428739791199371295682881436237790036948017139989113896239286509049767642790964793694804427005953573502322567744910395127415907182276522194701843674825488173463954478187301131360093730659252749242391412261934363424552236904322296959104428176906457001362859807896843959220021575367502388284706830762482620829600614740540168840742654927896626203437045852948305323104615105180361280789645390802829596075529927985402070015469730988343336610793763151232589862238264271523476209424860372937267289123929468786101604728120845379434866272905287528965570573973578207657602248622445017922150779924053703938379922565852391833906793566914132785292432433410510040112072041304169536350669903169243304784250059295565590930075029923515958653286916138898571462243918453819582264105386703609208536534164554484502599363903120738579195391971776563263945902998991099552781071217372114855261573995692261124409379765986270013896934145075991809717132044959736089430305262116210205432434066318763837281604819654139439403857041071840901225123830875056953214362456111068268898852018387001194986097148754830889117843775686202684755159252382705033201206353267399406878642044008262163709297823165451793778308124601315362128272227799249227034924719342390438695605107206446063216266020662804158920979726003752994201886332899480831049269308047229095541089511992072294536836633683179904066486980410853250617835332144294931790887550484750464533890962835629453888110913034091216524148058155980536805619076669400098083282261706946913177699385059569782571345497397079065805164786933796898903967852294294065385343395459974342957979412828801161427651081760349788298408879022165746767775419700424026942264566334253181736715945118410493736326287214176703202552593924530031712655176443600952395688525062424868210510170979633826373228998748063629865195727254248667104511733942396746042740762380871234953640192802914123492195334186727346276155818574597287584816274635250906509262170289461191441588018461021570818304064835389940951671638634383412744959657336831097731251388808981833318191158160285443728756530775689152287715553744122001993914081611416413809360705951114091539458575349448627965633914057504912241499153743189978725716428498897991559948754776393720574611978408379784927544303916395861280159501025068993541341982162630955114530441876524443088371372069619535080388406960739657744152250014708805163000990028465206722691801906090833801887175568902844875120560783938402394288301150540449256794400677423353058082388218744455646096788426987452015482228389336168290041473913508987526835053072046792346570156217225655006547661290810074290907633430591334238518660118922858876022570139052613165242497299166247956951338854242815697773326726080157948283648012181124925566791145339598599457008588879647691932474444853825953675460934264621213281031381556446803276371330230927137874340274100558957285524840124500120420989026533274615839694227363480876760895800911221408700926699618907328495544023958811879513585002185668842991100861108878491214678582779987559966086505955884047004730190483853425409743349209349776258793960333007502828336957306807543902851819464340016552134237452449368142716414507960954852013150008137097268464150012223236915909747597557285967761535790857582777011398209548071691852940378037994906255373050494736809407733955707254017516664973873759159758365200953462531867328556441588327804054896971618479802982917797672516203883898240775004156096957644190140352381815897754030429771700552920380095930137390336057906313232874998327591807045492675011143009683456478990942426164708965804164608747187652705878641002828098983462040777164129233894813945895356223665524657433397352948416094047320887049799544232831434673683630773848769227969211484130579249440342570423294136801686072881900537879253160543883897770738194170052021693561574217670185686673406401743430206193562478832344199056040780261786456896884143390470209161781254889492533505729462485065969771804370415654541865800104998397136050199818299415872416707519848884695579935561660055323224239560393863754620046529782659692781992804050788837631253879550937499789309920814041411356754453521228019125165632371291287239407054049341527697931999296847960098669671387244647532175936672722842662598756553617767852282638310592378440253206591147803696810899309335298554360094279800561860480243208525298049738103999298941220613702745352656203145706416574012069178995314794349222220811646247543187423441157572451831137298412903556633066222874911838557284429351271440666130454374404219874003369390893754849957573951405658192293926686117225681669858649400834903697898197758847156093034064010514639783496513262285665467762222267818474183442737718867622899196292330739048920966940282271861722126353555881161456619907822516080738172226843397184446708194329940077370684913205260750631638287738260881595385697433149902577648566163672807900690269661542505076032976498374546044379466202151410901042916015980029886444974747922596997549640465697155135524940699311109077439679043875483830157644272692357014507580544343379011917623627391839091198111286585185772391180159784985721291412718613410374618661946347413639802853258589564561357990913686763595454178407787957426201522068784977425649699520058055484820854876737038815379421988101230568822198243212087490261389837004745879897017766294551994885227713529809004794416686781186221810457226977987340795870046423453907651014359243021696109234049395681279287307486623590019179017641077693295524936607669019179725362866964598722324460436727977588335219885129740378409720962628704803008113889246693339298913824987811266225072940767716999607771497060283318665051685408068982236844595993820530867293085040953166031921333848764379517384668306414357787339217437540483477684759812500556953397540226148545681878071572877925845129726625286615309926110332740321022132089494529602488063060644944372586998822078445205784084559883627424945969525350171729364693498074142350519835010602952530001956809546532127643293654613466951713113565215805567477765080722286357320801565851193649569639089402691463796576232605041987463118343243976565062886426400425570026284337043001206209123785266491462088724869465127995485358182286719396357155811961364726625088100066210463373942809408185892967933939591916943462362381794283840110385118747676002621044186064547542016091834008894230134593009274603486668373141089253199094290195817396411617388924061117979168606019769066146549854814611832769304825108510646207668496605732511270267795630106526701830673754458281266338617120544493269411398928951422552772641212714972992415455327527057938573444360573652040826154873756916798939917369690867246017483272222313473287386410589107873350593005182498533334281960361898503668130106750317612193001310893530852713701858300185151005987377248061447619246532602278317084992527770183026396955121803338226557762688689887527622454905987367736683446502217796286396763178929306433414005582492005092377975427568920776778600830283591607281239064473246664072025016802267852026541590387541319311146449334922282571138228388274519678932063935838594616556834013217017802075192669660814586046488790946973548058167231102728212568088483014599946765918995794311345359857779246231532029893055398736509191925931607484832453770504653314278105777554965175198637987509115670088860294431542888497120965722085440575359465641902907181236000519016300303694792659234863760318533566446066173489934899850100805768474112476567950362670540694110655527048545210778996751826798740252308592321275409474686601694687982694023379724203438663014528403293064447791436302395391787819617033076491938814428996090773244536274050546600287686753945153714952709851218763563895763171445785170019562425178267580637791177737301696407416336019819264230068987482519432417961926624672274104074187416133577250003994214665906076475487891566822217479587031955731121573119958646790480009178488824647174190552238908766657349139965893343091030099323029524577264409015977422654899895299384821578971281495124273899875852440554342082869927471155643237624000993594262951218122653330420048075632158196740259248195730724499736831023922034543077221850096496931564382257203945593806473770334847005853778204202225276409924046215674731857567633504399103287995119418728856551522132992649455799109118864347154630575456989657022150367206734562156644861139946206166326663066817242448246218832501271644331650833257315788354613151870855671616997361397686987655277501560278007574786405075638282611861138374532287554914298870801139128845181140602189029133410341695266903808695334460076954088419845723660093374321964373428404166250828315247589159844972893248096545780899113034700428725781269428303901539343337614419156288306796168357294140539703714875149540324835347353039190213291889823923896284580442342892948216192960080506926694772801310302769493365519507709739395235945008128879027743696853675249601853288661927542427232932919634546282869538060329205493312820664623290340600789122588910251978232081534367795237536138607656171469874924449780327532760056504969596628211426199367365978480473029212527964170462380123952457578045719004564829084884789147064887244422454697823437245509786951126148275448719500435952474037897142641321406828688464428369470640927911278322207993376659782082202013601479726024054672081712582992374500642782800101025144624693478543565894028826648519754063173340478458421408797787059632710158465454357866538282900116045257973193937197328981601672436834538135471469003620953155015262556718762624748806350615851988996814220487907568632722705344839023379206463164724799128636923172135788208840765260586120763142200437704585658176039973573241869798310064356782376963353464552574129056131699147785618473131925347481787432368689370555064102615112529675987331241657842814530394273848620450314987266405213744988248527875053493961469584838169121932149157370871512167592012979318561845069768225398019551230297020356440022987901329588787053229679996177902910814135682529545642789129873478524834712354839783754628580970320872481155793504172478748630385156940144917734543019558526321716355058293711640209888278843130946766313592938508976048827107569290460955232056814289126306137874611738834031803051487820155338296255827644118021511825391233715841432701668085768059318370973152103702717575473180765179796303806114312609301685686635568741662565114838624143879969727644881742223305484213141068224657235908799568702691265433082231222805723726077432642517819026381004498376562758043705850163691108886148049354877872900162623333934314704389296395585696909295643939581299533149081529264528007073408272448825455672480811582953406544931994202842123572865491819143760927016700994903073600880004522518029415241329221948207782340014517632001911440906494837745258327051645855594411800151194777362661406482227144717553034352043798999084896080661155011220015047101737883636886741075611466452725779280709344562023303364530789280136006034030090441714331276523130445590483251774727893609289285588681616328124560449825346213027111189573779884452551986586363967317479815248652418713351144065484014772408034410044519558669751745732832254902967943614939059650011896282700597805725107043984276392893602889784476856514697288220728180407300682021189039113721857883716837705938397138079001910525258704439230388595649409237773314383121393041082750828022195923983423979157215420455836213542898674373615608140455223947849954121456895605323410723819219114424944311344403940548195113959628467542329256723581695605141272501702329906572559932277036673005143319081028963393630446743316900499285063572784708105735530497150498480137727937845833436815419854172305816891716550353121668918574195891414908801719753944269130448104746090617533287307856895271179619420657661694994444101152371373944423515135549307496360272049749379927641675513876722073208260941508940557299516807845814825905171749919488986922149838171174320332737468530016107592059861091910377191286256761462953718869144031686738370874818342589762376974630803142422758223639154392394830687199395886982416614735690627518760387602830694860153532159331671306750217565979273697975316263166271010000105831408730012411702362113441752698603976477966285254533108694015309045628723787778302947893049139593529718393812354407488522270325101604971270633671540600921058625945014247055071306683156713847995713111580137323133372294414577508235414947506376514185926608724298263585721907488513155936515269717974260789557545243263677669415828473060151128313024891504481284549097785598540878546439129845531743612430823218345762601792125888833685408792661095213090983973630657202868639031753797880695714404566538454825549984678481471130857864021188493929767445892472245269519969586228957254546030069633858385449873607169565686359018582250099239494831191495996995350776885887682051158826707301375011010775217986826402335750827384092172109445553395783475898164450387424851678734784271538246208411809600145360307844080209351693801904032858924788562102576506702293696809039197177078603470775508173782767636752619982838370621961787083206822156555169870264511311363142432911811081350482865412237403053039602080322275834492921124023426851480532205481015940520408527552504074329425547727637111743220884991711153232761130240116303497899227474804493852516985463181008012686370817224581595750718258980293633386486298046322946711722782263747121855309250173156587292067987818735556921663955962582816366254713403783924496538698227091366530735957482887979092388258385201344444222608955242092125180374264787691714803519935969659635176665901640567103925755844694817413950504178762161142585529699237147282714043198442476795477506420663765389497794953798505602443654546323019135181975907915612413192928630869441768318917131671685803292554027476496956236280383012268036143043004214326735161511322925652119649018192218371270914135025796917330033005164194741406792249890131151482066248779444067801835338128818551810828695791058540746097902717001888058826126122493966704447108926739523362023848088607309016957807043898950775656896837323718464262306109072406369569742713097021484377460899274050744935441886146655956300713318089421436869837806366043897024801030504173594566156449626545881248367287289721112819303807760867740481206416210633325766109552075187334912667639175836480886904037874050328945608567966376781722110959102775799271087034130014044413285348646011028267026396834576364739857941135771726447264300290869218375731456365755770497277938366867939960966633582580054117636314353027894213466457479355831255550461031662917722806692705698045257106723677780340177737903568115490579101820426779712946925910340310960826914857689229243866555948569466140674807599119158064321802122986533791272507922023024296254406103159638402366941306254255483831069402926278787543734170614688681330111793086288353509488071258058496087232445558996380011353062265816256461263874745548159246707939255657725814029223296546534290786856014885055346093496121260931366782352650879605308573918186270892732059227290072150217105477841146821789319703666969167878477064168896901593703224323524526082836574098692182792025556554389381848750592388389631058783295826774409094475214719480653109716935456971668205763685577837651816182014702239213792291753921034096958878182044136910193665164915236004692133227011565931007664607748374385970178550384326477482060740965189716935433102926850190836200187854588341605917813943017865661759841473310019271828915646150278285195163790529371998873214039630451192156606344385534222772308494280792217170585143506616363939406694586581200643449366404203659818357495257599347963420981648549260528419742303528487877201364569929551090796777363862933494036107395759324064254582930849005443211849360835419882225002302213694729285504748191236051301550743044602033567917476801110360454554671470390051844220406474950699882122473948471519291503174718877825228692885371254589053993100180708349317196346829148467903924907993943522382705307810002095421258149594744621813920769725368570221356298352958681329665233496492110959414165177393482669744327960071231857260577568316179772711957555340717971739683160573526486427829072768147793469953600913945674367977492717107599789923136185144562109154019467003140301836526240804342610619726690172722598285565585622847512047439672639522345520717401492152461423964243685934380168730924498149503502143357588494411477776151266955633649834569025085129808584111533452766900222426897153540954511573546480805164247369979408932083601850879327262223506496763181359747204162194769505244626491100956117223467510611927264006431234607227003701803683208282870940378814989064595126684057538010102946392645693856108545419165538802963530212230973933048513591763059592660109083916252995941899792582219109991768876603014523581328339778437819186845594846783323619974051424748427545175681164248410650771849650097681784133297324934010717106658173188370704310141290115186224446530011221908994026855726783690095617212719768278329089736465430520228075597739801819559175597207305457244202951439560196594496257185754991577855915162116502363904165629014491622289808382744219822542662192110544788522499376959611012097051424877518031941040766644139101298012454912306650202579544300616372964939278099365243176014643176357232343092393689885795844856854228115030993131808203192351541586574488976656932056296561294368471886582301971105341680678592137883295034167575892616949220238369550564216782532960817403871929910736384570324150911074631218946356551745822349575200936971111550695943284607837332411852946449360188777873375268711305798185915759928904188565180587446269135418014015105377321238192029203135515617449775927695164886016724916607686250194115012937341861022387264035688916261571823778132127961241479022402840493190453565945074657393904716861944943942633333932633690573925810064025388556392696773807362431834183795377243777757881638123561601053230622058304002380523111511871722306024544383019986607416821871898960085757068575747156575973250278980951658811275594989629003893785447939986005447391669242175638154758690914125721114276675248992470763045361428148777149357073289032959542863172637578665964411467768381665026156378735416518424259328684519432628880208506744003745085198782978851563793001430187587313498963742168681098615069235028441405443327607007926973822795306916693721136896084084450307977728296681834131794484476021470672552814911301496332988403450744719805442449854797764425698289542891587734350617098895835342221999508727275221388905738217065132899194291490653115273169874150650475399138007647862738466786415000827742967787077821081082136554532048693451268962006917897676494480572524644018728291920092275624009186874138645392171771873292324099649803462060124354106916627756202408698334154136671225959528777570003693280196527778289720458516718250802530925290319292810447411619179681073520655101689811924312397596562002628293013374354052696460568846106781418027612389754012292179224674420625668482727489244867328675861298374791106245593668998082848493040768235548774315500876840528038866097295998978175283584106074171805491864972016703979434018792699375857220565942806077742612051939938469160977247260474226442542901216867559513701987785665469728875575506543742371650417897796641941913864713426719273583875268940537956209486672674925360298761481109062374324104907105125915008751263982061996910204759492704191711029990968312559133476688852450059137745302580234982701616497791904788020775064899866171633030189848041734201670880329577350976379010032232912105324921735469695125313043285680317667424664094165102284813648457004076601628322086840696340947036483205711292572937157154908575721874215636981726921268228627818975533371470144369975955134617558260838363628334355158352753776836234647931395579891380102891856371505898978095439097306506849052890043637737831126917172063462370794576643992951150213465818366232192400102378837465817946641525177826911094547018939072829426081580736223345302947249882894634350140933754198129356797410824452179088441548519792766214608975853518305346056350020232774007761884108463599934733538689906235718775331867938931075592807868114182668794638804782544515718633711502092353526651663495388729596263488034503116653217577778497716892671407964611835679333638627659783807183778506792948865709544534349732983007308184783530975147597467631370351544254481541075681209915664185851607733498880940586922971601367617054078642452357481691860647850157674941646994464736314794747181290263210727960458939515162067175057712947714990757941020989816962290981333110387493081661520607235841630804390365632868703927545828116025732389809194716417733372421007904664317227563850895072783332380472166259810147590948389358735446424615383685691226764375166738029683013410519962037313972106689823604164055213639018468669140565310409004560565551678296809266758444551998043397619976995496189129484358309335672162788046054158845454230564457883762816294923428849888996568507519447474466624485318886879545101405007544320532933803660042567582510549036102370824217277112778466354910347129521716531950755879675145359550297572626523834488379413801767185445364543146529619057059955331896885409606102272061947722589356249002313321676985411216477216386365748658751061650796130983729106246514304641113228236844152706440111988997698265884668138625611934780452814123606977283938218577415705946562762987078392517355747080758742487824432781134073969314360718870637628960214877525569253866648564124923752019575780657887099997755432257180072987509227417858173929827425415451676425626109717670888284659999137958420098290471939562185916318149855385147251423882100606286188915990747090595674044116873821296670675964345890500713097782523598741690741779480064195572935452226615992889857377038268273893642414250772305218373675660816785753559750459555246071718048008941165266982100691626714833997408657012395105734615667035410272768837976130196478982423442812619163739255383782968810247189821076659477984500626011691319843033726601240409837538969984999645642373218509021334571010144430708794293869501499388821938072502090229266856174101731435096987823865422536697514191610609825099355721897825554510539176365526095700612998613143107200119058175298871625363027800532573795576645702290606877755503702528385308549444279752145628987167011926992639143815179376987365958523686365263221544282443331236735691218118811670253410031150567761485751236393032976674805401167934697058942443202695844221651997273605050290141316340295910589639374598552441722475119745772432624361383160551351184367118227673778845950709278109760036595762216062660686797667137619903545455669229008486384127639204208684834397886610456851581289997052382787734529013176043613992503877293501562020855228948965447771391200123556296958620649185093768515352890849011884002726703994582220654473923338635301405650936305692957391110418002335343358592179699503325130201971644178632022488303302253233610992413304562878117156432388624770411498014869484005678988902208861988126754771583311375195106432803989035479726653932112235174711760802606073325663003149869283385303335074463088273801877920942150488203000382577514860304864442492545048868207464101315370214966783465452580622100999848432292566553671692418353715563505764255685329268779708402001516520448919224813117782661631647448435276074073495407381487650575500129016254500126905556216566921510564856726102279163848276316940576743687140868749774300860758713116469979538202029148331088749305789648134837433571244678734922284692536376633694652259843145417202199533563461980303300525223897366324260613225833162555248806900859486711837990359772078860164459371900569925841366855455019367157797986145989289867867528391112766864834776608828924925749368692783910342520939311612234346764351265747313086667457568359466744286157395138059339942352187510650912355147947540945612969218587602950246119631300378255030926759494244654368545640264566191981459810317969475878527364122526404827503090656664425040335230565191948779231760532905398724707563584499047030181666534283672088399041299030397050181795342892953260651865260153442497329427801008496257315487091802220523478045963178828272174979866336764149659417490993590100944622252302642527350494468029555083113101108201929994995190064897304375548906738497618744778119634660103441218510505021259949117581088151390351547531568721242775569605260009019177743897933438806077944150440372614832634789797788295554639012311251353672331832738442762197545036109633457061611542570168412301534107154665698696777172080128522819258593116709896538218140705761465274702282452666761217485959644409876633958571040002640270567961414457075053455527080280064776192849602282721010413554237753292417019889428771932852633682398738270710127385806450160400159829521189227051625985849862930073068435386250152292725715500061063294497502919378932357494079293508887787094639059145502022057357580900743641106390692406246812538845785021714032102315996755023392573050587170540045492796359643489788357060442249624611221608343933180074670878647622061098314986440332226109228496489685739278047570729909542955999598316168836027846188772544681734551448890752214026802813566138585062561006093629372897235073091924061182622469190060549377635396859042576608589679741538491706888219880340944446089464001605759270362150888290737200202654972173236272178272764084110394354672671166316986846641143341982736732565207644820595914183567096535360515143423330627042181901150660261577133519439146756209406323183158114205261904440549947858084637464632345437555978986385681479196140603022210753255320937437987428566393551587677485506667847114188391857007887049443528177210323675457719460023199330648164446787126197824111437394012705677708751858087128348866757032183749183958964830466437637347309736929274815003000799665014433520974154881985359675846574729896710373456079599120775220633699168544263075203898212891833177210977765909296837212496266214853088291166937614753692963605236122704077462971382117563308929990494826871400408189733429210890869792960645510579643916170561919430444841781422341713525882344159687763288680046649866713222037131744416782164355252901518445936977143949562723251790613693656018013860704144516529874374144668791575625310761242052247248153872712186421548950737845107322746444891760465618997729230438802655165548026917589304359391725354642282548110231026117105778539312365646906894802783524240129201352343767679811490162581843857212251000152122500750032331277730340268799189054311532214305585781262047323633928550849009041486949504456955444273351327209436245434529915365151898885810295856933521746363583565376905315041451199365718193997375453815135029347528994954803931856289682628743837987933324016668945841349624282829354549364414096638035174177460492298466327603062397578807692774327579534000610913173061192699105560677205846338214203058411448731884327247250331105512397032150513506165324048239180877812589850495095307807002204516441620831576659044568117173003347707189668129057038095737161403054278017554615088982883032939994528922617889437754896699691397701283478372038546917990378504634951993737269625958056732984167762891959342272218621909225467123770094909135556218253461175414281551688807460136359382911416361059756390768808720814228546013473183084537040187180215490616378082225039929389208107753256145329635118396566587833826083430398873559771739195410345875571004747347256024745895860623955503398450337751582879705844015290142718886764197659224119895532624905085206691638921907957635136633386687215348254085922248434510505585009573220446759221153310116119338029039360858706612475421930458642826735288007844174177426734099943737929593980584732700343890812545101612586418262288047336607438927377589684519779773543094524017887102526254424254681672063735245521878807922308886450426923705972448673449084314761014363098488474772254654161232122524285489392368581941991896077710412920509636273468792261960289949817689095357770588763992200960648233732788073229805028037249774006000040602817913899559377042516957248093711283029394745195735833011532557358819181319104834066007359738350534046392033935641945433771827504136797090638544626628150046627145939336121075426116616775113889256010856491340362645699656868990026662405497229240922381221628597245092053567319327242289701700598165767604697775954268650919390673186521389627034442109685212394803970069595741674632393655921948819167479552367532027043839730668482744820550514231651426501087305340459900072034024697954885504221716345843948356293214484111829284102447331642141285184375520863024779083814458625477135785760531291361841830882711793206011130906304609612152985169174458256452070495131476813902758978634161480384261949719857616224707296058315901343410722559128571689717608717838066796394172816105919376065075849278302734596904043671252493350064304989525951638706270217812871427876906803505796309828952882569063574672281708499662733517261549006883578552809538484151211127663577219354058129181487690397620063600545435534801855823110176358053024517194401443560309709340130307609988315786231991750416696414979429563544532273591450180321989888250305084000123741974478945695845294185634366339540029926106285985148459153446054843007931175753513816555646503700165806148837115111353284098505177010251802164241268042684629791936054032585646574044249712916258009370989658438225656032774676161827582212988741684867535497455823178254918561909772900359009557299840112570471534256723947565097206897980352876336284511492254187019286153309126963960709722658758933188650057254398869340227783225196258863117798282117831203467774651590141284536485710316013896234517557805516426645679270396730567213633814502662625192623534697163026106371752581024959479704244272885273219068348810157816548505614414656683298221667744429826559669453755987716777632256920367025778939339262362337639616787062717048136512765642140244017550640807808299349440610182262163580244413055256976339733550186407923455968486573055130671998820595365243981138626741614755713428372938986414592552025659449101606730925386858872970667053710460431904394683891229603089089523316076603048041715070927034028199480284029468871029779031385860335634239746809366078050646255612338484872315583681487793209961646687261632887582333613343836040680684428965974787959193128779736134701005198968229203131833581288120494193594898923422646302175207369677253116685456492333324930486858575424254693860730643436733176363846038957970307705341940795661273919333602548859001174117185812890900683778308760973946706892685130224738341738271795790069150031819698253574312806623049342528810960422010688375732033269444305684003814630292588067125215459930560594639431885953958211857144223568287261329116172572701901545379460428546079280564888809155337314052542842086786943288516652809035234728193402928320673296444729860809509023822211594112700217579647394746509119449152094861071342938097984328301812451718693527536761479692223101914094470692391951665583799767674876799709870613866468589457459780674465565772079093783859491729397615809393213294904655384513621568114844564091694514311794594473332614308561629954662774748634553271038060637871905924013452105577920913928792961119216708225868216877819101625745454483252242012729539911513622478128049022545525828672857938137374734027654044324354563570726783818990859603016339629534025338315495497058746651193573194674430463963796296566950521142330556537954407022404101289895669987786717302312492791341476058160837664097014510467299947415526024434312431034787418272841514785725334338440236988492980463550421173550414501687258761054898775668652586869410906412380299678136808608815908029414277554094440216888185297052598349812622545271308272839091639412034476571261687250552584128728160605424943562046778422519636948931744814692015282617277513464642519846079884369198049873318215725219727834082463693246284314766767666678366967937865838502239072294761264439949885571786275512561900759137563172874223060500472343455109113409137378351877963185970223215001228809378975357225906839393094159810084604520365981890228482769790730542914292793249626425202237210712462799547734536725205366914470388765466879636046654307598380237235056452475502231867980439780432282506048347535844877240801966761461878127380584591072283837913506568153175899510886789022597418582860361993179755435070781210955346702373290120997734515609328172274370317817547959391107962040979631074492940382793268699766585933071037196333504740648131468929020784795934045349195612389263419823754943477505438693743494165507193412813147907839231345128475000699332586559277123429742383590085549553884544099811105069100165834015788011816332625884935319267133819397025441950447361852782502979632853912148222893618936566131374847755656557313649100303612766671342514212135671673824387508088904256436993680989742044003000155061536141289427978105516499424857915869898942366961867364421722096487125579366489127543206556479235543130809930662227293095209083938404878397227318998896595996314135908015495657578114497152562831039971607071790407065424144733939006889680695166578448743185382834959060059147286358566574749117102870191150028493269497587856691091951033775102428036797237904930574040771446393183791297126706845736913405432145993476528898235783286598758145830198720067651972630610087956477257905892149973637304051399899471389507165991237672970122641849250430190556533283578837750250427860818778446948092142737982172991435652117823026802488375275374463849387847374883918399615599429186595603338875523853711411553836100507816105208927582141198750357171396481264199526970477791331484306095607794657282271026994425214775482491219574621455556284908136635507816003717378208779578413188032583026417250786415896456431659840326686848677449241256079729435109983976940318075549108725436415099377909597043667504167277152526084222747335000513985647157800657072358115667016856527719112988607412059824402798238973979171183171598281874894301433388607031726705973176234355547597266897634658966817050007277271635931913577760071581398857006405507154826790246381541345025904977062386363226156040072712613105113248879760979571107876970927040215063212114684416129366530980574417625365828052039643194253001726153638347367598593419946350983593378468155567252554641367518551604558624197286550108887748987439518358715361782062313977355814553585505367464492662519440602253447586677535467343846226755517437354170149849229952104732637726596382410313261569537942817530010636676115856420540391655107314093607967755634614327736655051614153759061268057711930739897698662826971172250630342491248443712754878938939359220609941466360461808036639237367259967098658210198134526648203479549771599194641092673527229787916585291031565167331850406177345174566904868381690985368023468108951654987538330463186577938748537554592556267396326414956842123358937791475410313727960391868832129371353906917124868427030991613437053518498969665521634993982573665779880400053957628018045138757722928709739247638834852393772210685594993125691675323548094598493926062466672472965631958735803177483390604328039341313002638798524365141426158973164096578344624834520971615694985557537989688049889139876594051198619405400922665956663469983491831334155703172734046800131175441905886015131804238700449053560511114064476801428785901381564164927613916491119379520584719535639605489687801338938234580333277863061399013756859151314214997354560311548654424759514334223228402903850490419072500140380070046875530363247258089536249939447011130839230385388809266458233745193912021078825138594631747887519234557467725099832741221336083938088499920166465225398930345130370184324712736879267714591027611496237976284265689921717749805548580775296683148046358467021364948708743894969917786539176684697592234357498201327721920492461244657131141204557973017893798740596393520409827760731271764386189545973518850977529019377190437155755202143341820972229721923495366518274124369631816542017190787028456947161567526141391205599609103441891284093281748704637054227847799883061953994484911821622049093586719479158598767447756910994364762312425830450821474524714583331485581828166508944495989163269882433774222690715962240015677875177034776779585571476336629567514446632719298057849336753003062450100506871050228526495104627505426889370442581397548338500052170146210528349230289623162114777976342755329527912215398560315494459863857633272127183217195402284830544368369640802502779178566717188152988782448318397868482429327641322373701856867018821310787105339374635426860267313642253715860540076470040106868800123335774735047368664574981380015758605091994246311574622842759148561241003468046421078829906777290367509634545162969961199731932727090874427265453926279537723584111846476810833301539099579156862210662446973806256849980633428209014795893563130607666590752128191617867379003208023235060125494048811133409100742664519076016311640850818623369785878447150256991107735206368238061248512507081565831661115913096390440845726311410358574039118157945380012655650970378150968857628968336148208303955613899091316120028319147885633066661575238549517005672103394977018248431061117094817262142185736669579822320795907841319296630241888387879406852284883119964210346803494846771952782449143943942561408580373062267002707006909836559410279852269336056300776805948825550025258237239034888095606753111834152929304568105556311110277610742493298281661227361898533073912723130850677448136495120655060244955077794089175010303764566052736446269953587315540046122944086435493921730574005223529615322609166294627734989874188754825921292831576287773929667183646629581858243995518244595147285276227732583405407644935367039042493246372224695503161394898602979475066403741782313481013309821092974789535678305737578495604322349472832513386248629922501541889129832419091835088395044430073587467438211303862498852406988662191368426246945267410635109594264288772594371450279525452570920793456233521565356537449784422304939771014305430262614927108756547146204646380267680308421406619376249412898472488155564186517060054905456702953679265464421737604502205794397707149976152468250285899617315029210349603367842070789696894501224772526803727469355349611897067516116075962866657967531002901047940345278595879238219331500830954804287862908539497642186884934077560787573246896188430407205671583641115128617181180530985282849462576289129711222008205379043022923716480880609278995212599960014631688711387856328332412699175593491966498478803624469126998355677429767990865605560703825257584434981028061887682344358945099391194635666153185878248118677328034049471085564420144658776301056788213235175062424401601341198721262217334132363333769116713735275896546857884579949301300762868125942045208981719139465087890611429728642163622068904765072816439091169259544542422718638376668809871848502057340772977139687361666369610749011237759925399389995624478991611194374694217159421208881600927652438693203222323940116389835967678607310910704724753135914847600293699452982065031770791355485664175110676189135353118038771491850662335190071561517693201068164547790261060909688089520856913312617337904593766098237265320903359123214989669816469266451322706360723857598241428233945356114190799601864731997090627178898558017438192499734610771799903735622099064295679522325519219220524561105545337723010957174977118141339307963369392912659069603552794237466420271083856339011425041067021007190988338820984759536470786289174836922259095035800846487088826704957260957820989434911785444490176327194784804944476555159188872495903435260405209365843490798940125890099353254501039938868635297607517323495312705098982439596593408592052190635547153035665978545216691656935149837271849481999863741060349499650600628565692242924630997972094438620414615110821416322356550386350888305209469597726667650879915903377610100703735062065083389685490411688130947587692274466386287830620903212499799495259200199546969700171632758734993796392485297251794677076449082905948061988254588323975565800479466102736731756423484240029639322487995156978161378949946371388909741040483943110004132158632481187267651641744791910063067530354629790541662026640742394216454503292365691070026023837650998176869253750179630327321493284337089392670693125812065851941097028988335837330929096408544087998684399895680201925223420350377583957820424513460902434554306357010198620704168298864893569676230079244830622434071114237241486875766659094205289274462696931476247140367864920746720399514415444632803430838654186570545388634760435938391804008591818911894408105594065700509596802178978547015792824707911001969046774387508932153617840894339898246736877755566425781456502548233050844129558778898984560672474672913605027251914168312559065430579182399992146520712896854819289996016199190182395531724985346065669566745709807552769996488191565714153377190806331211391624716414604252941371444771959442344722275880054730706489052348588353212254887442063259922186099125168719412358414451778516725901627302929292333244662409370380035106463739332513678708389863516922200930840349023283105249176568662762534555971104784659788061602617178455195927492846501456356065745943123289900806073077983085289829172183953983052017774021692666872210109392393320942642673345075721266325134557578918282281602123764501570974049143713468589823492804054238838140092450189846444633029397668268691419586513518905513361115231770936759052846237525090061325529944534725914677800523748576510639005127402246882136148010670065094419311921663624069644203227879540708568657177460282797336228940472313435668584247588159825284749446092726545186775072921523456049457904282434806620508176661537514906424256696699470946581191261556787971477896201599437003603835952788660897668671520376167799843825694958205900772980258658192060781474900235680187920370538412480125435215820477347285250614288813599429009854826130914145796534722453301819903504713778331261359892078752182890454059194541691621390077563956425723352431655052503075392565990955736081001975339417512073608896752477860550453663266609422408215996773828126733717480231833547443469541606509994035024965516317196939934918827484467092562706999360966136789180122231009007775055854584029296029026281881801607615263136580286645085008001553985545888076500838562186673982449729689652016075889318648647003686659924130748823179796211643749731669969673692134461231045147892553049180578592146679833934256321959614769167977739033674524136919186870245244554904385303528983038330644575997187298038794639994838719048725434916627826856738247986899242097022506328955122165630868234259883061148914258704001215859720383682602632002286683754563373478505225284288242677067615717901305392078842060343242042250408989060826696395706428461623942598021028262845260392276559672490864587902974022745999097221031481471171396880424720551176589940441550433995746556841932179979453173904235351217101743818472339462833930384072683497169070177807654601391704586330457608678004177350549699705767018682185597725690225436865991263836386207390033503008899882302135429068862061274538595481034102002811781196155635719191264359027797664711185169042530791897541015452239483160743827387672541391506452290677915484042091317385153586975339929611615385550655092965323632600102171899936928653328771226878452700736625481771125825020196181716100496440526705383366264387742271540572448689395465226209898624389988156138235912560297431784153255134661230757752572251919854161667120158674437415116258321473125138014377315329170954267888048459355846536761899619553484244388036448253480896893357457936231179635700172465616639464710779446210392398005195284737574702747723269891871368598251916606637463463675736373456074970683601556195220897810022550924040295112442769461926901953121712918014589055776944540034510201486624454770732670418182724082370687852150829651370724179485890508046470165239617783720216661834010908468092634180142651847788860140584121829027298069588159457155579316000826953260111777139012078355016979747916042230194728808456367850869041626254643580220086143410861687648384147353602762736633527023006995768452881801004622836533314168188163274848268047902583086097211680414658415343457459253038318412238487747713914072406819297449794679323737217968763709559110653966535488301098303926816531425557120501076669315277158367845567667675343608414421063390342739459898852591274806542718842290203933959829867545402159932194858077438356102850279781768214279284204708699064595060003581785556493579612537554887729028794261144563601147860688757211488528782109555602429398006934982728005133474733525021408404513109898980668541347272471909096944393054609149273364036655181515871818218896758001583567192785270363182566103904040555095037426092166502527033192553580523600647384428427456876575639758295061648846657722533515646582125181510064151733923717056576099775119125606372335955828467024305801074052734133830727322242676516712836837910572223305853025575093288098761711844281403808222338914676680078358028010407004491429923758603146229344413180123163390566866768153563538542456957745869565400705141986865056354439465792680147168445339519381864481463057576700648275238818584468066594985493060674585170500728815637188324278695103344732318112052275157830726177048726873021010896915924718180831037621445967335154969263316845874507245466590802513877400695246391458781926418271517258848854426942108646520841485197072178529701909576728836760276202065177188478813477603755506481011434241145264296505057828715103210946867427105056634551184508369692744754110527803028890287807915748135049219189855933366443507671383765129884077980800372988097357722914794312880597366495277318738603638305252246125118425621832843732895695946443007785492093881361443420665987756864939360886205125339829336237155279874417778140639712592142663393731525460528861713318744160727570726581414978842436504316279164916156995179224913587088542844128910945024620878588250383276622126141832178036434257384619433620755580605605448315923398086483229894972055895297268155164177470162506990826396787175778646301817509907136101867418949613076890552911209183458375523708157278508896377334878675943420064230450480918067852861177480441393834695888567574925264800397322275158871072561993264487306452621171012133337390178056411681997323187027136780471906899454363947644424592871947924237006843146178448418964043637826901486970895476659010726789352950746834573342370125142915591566294143914150455483200157823706152114712747195468723135195780257256305318167726398818294897134755369926593422992093321279718780204023978825576436530356431007731148440701539703297699226127839628533043618109716507248616000075355343166541387937631700373132264754346135031521123122228496739923037228544092552571071753718089946918224028347807161075380139731717800883173886625653758010653109312375760681260308517092434943588522858295628582746329461713350730078884932059235492553032128477742252174348578729919775822130523687718698399963824538597568783509217377455755297500061459225795616478040445335878228291470202566533090162686380128274660077076282612450588414880474161152940422368843527910047502245169283798371759652501826256719397935991083001333563831312658606687258874717824399757458355970605453422940351803256540217130886324246335741972869939016353708874945568764068164060791909846557544564450280740604483549404527811425606912519179019030248573207878198578810865161767271929794473425698216464527446003321086318604466070216325857083375133407851248368027750720099889591389449138655264820827161967813580734600039412302137776655723898842709707783346364042858257462129018512232691709064406773187287429014304754276430197767222726303428776419554105878151084836209051036465251233045042163241226353576354783829868193124587470774376662374924490009480857884752210182114571547806344846524874849150730122067099342830145090190167399443650676268996003430070301463805933522959338890523555277288248659707416011830908609347616579854735425810257747142977917858304432139740463896562597174165392479657201798707780326735870452221735454331628377775405015920438230620636704997280764234900381760383527071524378702111442514353080610815620251601983180830641677601510042962544500404913621501122981082962287175498584036403101172143978454283592683430527864056650344860448140642319322218947689796729033241598140851060839886386153810180346060011774724427482792247865280203398281913372853909112351806592279456283147033574754058959575764251914611772861052400691896443598688429687674296260731245731600709927517596768606988998701596157327005092636853318758141915720215752936393813300856664970439107527762884428465744349583752072595583855847983450512140960252684754412687772953229631249156466432773059214571420223616057332935090331236728955962938718854345501754803911291129628102892307401365917411148314746622835681778295384337236430339170423334074909570837408978726980700843577504266379870519698304379794075366854295450064387710041902987750040958236880387843179096692704793205349596721199544142336842166973077638112809661993990130512792392842315966588164906252048505037412989131580633390625688037347438528877236564714128343746706918868741229975122358865153560560745466760474568696642035021464896823080915810252209465511965956428615268507747748379265811187322202672660694613101356018828612752448345154402360930063403755998962780990368480168294132598346661821668244453564458511548102377466062986072922228427778879894818089106766495209015487582480280136909078113341069147146396119393443125341308844614702582267775227598961389298727288958480699703508006727452460743521655651945164737622428794616572722364254990907078367163071899608873870022567001011317502742131689375571218315266161480142591244095385754418886277409216240532293418345581156451393709974359450379678236272680948466747101165860310325752530815317307119780233695252807058367674296842812910955973416059265140208716559593158119736595960051287537947634728733262258363773929314739059650966120852970255118006159608742852388604916865238151063174019017181493167737570761417883218476937612066338424330987707853618083457544718999242780076092719886248741023281829080464462172818158837359851570663435197049701758718931542426542194854885792184620745783292808806386974282238895822994233820984886500501574286698797110060455833628695140098673326365478254527820876199208343975326306601632088914579900842929523677860613980786885405510302918609697613128723453081690200631898958049220718892622853415942919960804978868695577818260615504126290426703570530982050190294320941098084168020353915442908697165038429904117872960356268457259007654958060192759298052111238025499603083441860837410981120929662360702082217780789509933467451758053055172922354818215784014285215920536708380677203647015877795057525966882788784897451040501140441793313227554784019983177239872741519810253127517432957648118428329178948966508439971575258564558761860733639761701910319244806807619839110607993307430681366450833857128536380607213088632844740154152860289180952707991505164228065154104845177755475686182822826152200492512619327770473220929905537926800148985518433822788066115669692406478938826357540945639676093442652851583196127713086830642429469110167789387479260026472411748356219132209618214761737080668420897909698544165294012476167142635664240042379377998076569458365565026170298861705196944130893753627281337901189508509070634540657731247592626831368087645209471483398542300588303134918132489950613929815963105448866903965415302446215039370175593971263541971638022576685648814877088265111083037777817946010518099657255559124632963466936721266536768160138751202101938156249998095760522014995988564668001883817188941230369363703850096399902666725739654405915171417983001998455734317394497550744876016521113544008700645615442627200845020727680236334031048956131120135073023195825521074228583200420383275695015724466174489986525479960630404070412363343081957607962156041211159690133730433350972636079654790375420606079564204650743661583856511337212727582620734834411546198953733975725621544097550617366089099384801074555513333406259870234731250817392656256628368974228880143932601113041228276258437261268507707504928585688642642627278071543958210694069521165959215035633418273282219250563252494611710493997476481119305298748763076689145753268060472968464447504487362198983162257658326879472395492088726222062321509977945660720704250661306035277684387531927107436262497131914115199082665934203745940838609858776909275095905536060469642772424642911933815836461827476706138721964303635114231397505195847919755225633424764670835224476146892461921050220986493240798411858271380127756213848065443571447054574754923507446870461355269163174623565489559289746178348231284181102864863258591963178899533856396437002641913389125819301171512574918917036412558424198655107997168060884560490179687467578605271541114896774911728217856338331607422597595983191607315072812647551309754252390738241655805749659356066368648009235594453764037040585305893003176020576739075064284427776822571815179104501198123713186166369037787393546171944107433184711909817481331725040514645978448752824567468526785616134036627613630273726416787237793350826264367692883025383382363607568386547622728283482380004239012387631628940948036437848810712794185028815213680867422957405311433279309916677969118467308779637956251914467785560005035161570130328830651849558541160723955954394784232276293226684815676927407439636092306660615635078621861809240494476403153291756005254882022031615859833366261073033714956649524699991788750333293090392205782500980447180677357841861821820749869138015891186357619398988918706610147738980326320533924016696848664040440634134695590086814188973362065072598160485126977871299389223435147251798355945630912121942953423443304283813775241326441418678185551624816025287888655293630585031460887216474952633860434914922973522285138042482564009650929140802072262112871230502516951024111341237881871641418716250394838987804289470655697099483901972601245638564093159898803902387996846003349875772575270288271929891600005018626058886600716105572371844877706655110275615922362388879473249994714442491682294194873408144665711177230994970385838965237618052719826076122702248996152773300456618372775545938055209498059310568965547675950992316867968739839551538579564230296321385379858265093623578984639913625633595177669422381312243688307409766523404947668272192870219586472205531977575428230005139344978170881223430965526441115431831111095744265916384816657528843540133129503253857663105491168860050728058234478725258175977338051032530412391298347504468562785181728687422459166663181815600947643372912472971946674777132836024477370330622373339154534774830643600285897943084962312706069394777371995226554645215077338963201906638830774463122618779456777039601876777479851249786798966006515970280116497435632120183855617253693933608050133514384105703952226585625550756688943119125715002772592513905726284729480310623553095367555166733636851017132602516514104976789113341214102726997176951007441235649642555717876717462268361781117066882610733745638096028054628701022590899343474455320359219940402163391597279384593663232050966549883773822581045063830271422616566508932857698931005546228081787501845523155564001051894872536024425233283765448467379455336167744383009280686348553308699155779362192658355194910290764650033622395702510851156515385384297149346737979893590475106356828580731969739631068381930135322445040714223086201120912435736868848563241253280412297168120044006076567509154943191548364234433181030337530029743177916291537187573765823943230234829124528704955510371340217222786508591563200449174115201624887998424977007046385811166653772395929492297220370275864086938200474779160161262664861907541168025926598215333001640536214854275708506954215035230075802091330127656275408695696372418451035334469803822868814962133451657312757722896135862448765527990418565735967101159097188762931485359046408313496108061425281700366199840895154084025117268944371384376235913109222415449580658616101915092584365291219705399344118538083198771267046501612388362518674851907672053411328677136899069266064906300893817425765241160234030058200597422088564917527080841042455709882764438926859530191004889496138859460897048941241889634190531204634879047056324700791383478102852099698629082851607541206076086691724060303947032868631391608485950936895382841419547362373791503596735848889506249766121566174030961983800505935772652245248647649883956329628425899745066856339390543269102558139736538796460870524648341721753361069927294250324056317423939366690142989564376834957906510594133663584548024532233527521369394495994147817395470301827747245772984407356795420486800608539327141395631675289909787074053663227354172716471619411115660409869381898093287821715687078168502162374139821857267675528078857988234699405622956009176654464375781756785167448092594562214118692410150566009463445366049861290403431700918487978568462124632457402585575124032668159619981521872234910534585427528010122899965282641852242934932784026802458113726891749479736041775595541651134757029355550603042154936009402234247426263761973295670875332341529535639161154055266484600973428318092310806241167990703313513894810600237218448322537873261315782586267503615703669371095125329051266974833340766644039207646680747551605023625207646657507630986387608883837365549154418637490903199332222562445177355706158052928409733422654003625562010107960092525902759025145350298782146836839708956654963150943225558570304369797685373898019758136199149461320517566554940685411747637756763553324400511991515108924273968471620203384886942121977259425282087064721108731963765186144898053444609175232519440570194233543622460036232411023598845679827418334496453606278907020987491211164158587717739734569175017365821855268118966914894765795547844571853612487213952411506981421766815123430408330029904606642219178361486862904055730781697328212657782228050692493091413205704828734676873828934834663983891383871141824367575230410927594105322534659899764656319359980706587501409990791354227858166053879330135314501426985881111521040115900525570905042021904269819994460517067369893810741938058174152730826475029364132027494906979397481113807022940700027765671603390172784845166646536472805251812702339182333743641423834822192913394376321564218382868436991531186168271195289768840062589463866179348432288402726649927965968809163696500673044147267590368197208617561141102090359830820510020281505789923441266543335076497673541632137674420250261001503379998618300729578169517730664901998429689737589797913303133357088235209947633363130476995716629074855984119492688439060431094169803728082703486752369373173937113614279257340365574978810786441576502152386857837329511468651750198967924302037985710455895628101655866473218609384460176771453115891184388863807006409390824351438112843434167507939735886159988509120856854892191922816230200934433406459493398696145441215275511991096656553080881806243244500564556708907933352192002287718697442081613651537165795088434989254917598556363508313574924819633483230952613109824208147135144272357420680564062844997005975410386788108367932255343737172890620594527947989604671256786078192464774039918485361682180810654056524412625500314784462762428276716330492301735437091371743266350460359627033323699750954069538152644226019971241330584030726340697590707037577975097519529377023057776341426733900358621197689520084875806552393439611945818046701020824194649844571969966169328352321001999747167677384163285988054211064615697482990165170265856141801648168108622263387943245775112531636207295979858736476524477495676309365451881544645772261817406943161586729573675591174181799113210420408795052321963309309564107877673825615098598426228676647130206428087733521199441511836031785700608860318316965594949844511015390376277931719601465275446014150971919292000618828274484630013066149641815130021627922673778078675684537000218543090764533277308069421148229681625685104310813675874796111804796183519113517384110508989335339037405174002730818826213547178606655787236645759852506049514413160279342602130179762518774402717704322351313993301230879583146567698681524945380066403754035195735379267692836853615659873131179928164660379813702701704974634301454727928235866188413662221922795453825752448952392046328093834405409277122220751102181684182185384356100014606872326781233198630634797603886894846781856946833250575137672407565905923582046281800887891592229084485109769087794375982843947300946478611238025896216394324676632318387673147281405908796969870252937517658025609277348906854062559123713644394998531897724756801961398298116243790406329544146700479974518512503565175976042797668210956930935947733716592968592502625688936288826187241279826072443354483988007457656723740853680753921440339856615849343553842929919293804087588696926994321890304813950887044697395400188180654962904937186746153977251257940115758161362403423035803287837712784866563712805763622243255305500037864766278144613175485122935877989258553378680820291139678321148505942548942444243599232132997203267371860172315593370048432998213806980131902925514086270816564598927939281765484773091555964742253160729534531819298951535883953345690259356306994626048786878595712280750418882645202280191673273947453584194413552041916859420891335142694242263873882632220788597171730725970160114182658266154480658595961727662409975374354260437776372731065965465341466803371056526107305685449943458316955331684219732938365126933832309601348614643695653565783898885808393340874953278879280473135212030625153585163849401065481168164047395345925395634638260381843194299202841207329159256979878954955029412631986637736328929566084486136612444836781913977792111415964459455924323257570718637503199707940935823057219115809671657666513038288697606409726111930105971205066904669393331649794951449406061555142358854044160041955720115759818106763852899954659510191267637027413698638836110010970058647516252488263686145864026855873796812712723457706327242781705116060366544196428064859900211017253395613383241089591261276224795668877511491938820107688982649104868036697536989306062234005093873409957478175668412121925004618118029957665333959057534198688309446079178351394039230513885864684172614038970519530862279969021093557123403960262716859139166220122978326795956756276212833509307182255485637906057040649731858358286224512623447011613574127208522820946716827941345222083553459651571590860969159517678149062212423123231870256744950491171597178478708167628059557288245680424718953209135861344053378503624146724584845643428466554417199932556048822645985274827195708052032968151846926103074262247658179978305508906578868750549993373269671902860044719938348992099845700972597788945198291373415362866472725814067137588403782682789118823189111155637299867035135283681512403388505567691358411029914864359872524896851163416571790971804877529177070967781059317055615094445212880959466100797133461021554519892815736143015326120847180870995924374120026684901582306696394104120392893947111564866140115753127373741364371503146795516440753380161857341393810807161044191238559986462333978727977421462558239698000622195621059250778559441297745313223519284478846747821996383306270740108755243076487599582706862065075319465570302777696590223896747719852563468856197010869822031635509825057326390821548644186827263126335615951783819459327937548813003018098185546496253706876746736052672979491657814634516195681858621032142369172466462996137447283384231863663753489543099427878179059782237199862699390344758893869417351052664326824232705029611319734108578207615392519641992583452002579487890726416744693598347141669891984778750102695730648413836954229585546520691602184978393423526866015154183650935635201978458946721259743301833661738465159096046154732293989417203390402488691515116321293506131825754201083594413926869582274754236763158491809932498042067074984048040837410895541725192842493621493376209297577206197716781661547178014035565432144649227994894578849442022339648120540167613442639231350231044831807261777636461417310141966918699510637315963154563127260750641308378870947893811937291222829138123445717069990601842104729778479173718023549422668670698971618360303245335110111071691477692658111756639192454566206418513916513978476204069321352809247968523382579111175205036037024708769253459456429737954136096477439426269471855416278401232606995350169567204961820681517077695199979377597990535620883898913652612426839876983984522175344354708339182335419856226136179649250308720278876278325497886702961049029447606747534680352927344965914621290096643204429915295664049653132367530318534587790503162895301888534801150607098418242774620008864208424239547650339037192514957981787225117046717281893143423384482696757437758716490485026371457562770505155640125798585127356490525679837667692323203720873838764879105358723754504490734375292573204415008708683960530507585064092825104398517446699806193550698424627568125559209854869074600998047640204765788414973119719647893398700388043543200645889828395113036637590344349360895639933561977054598769444223139389398984048144567283431123716559701645693551408646658499846865256620120632013117119417790124280476929658441789115447373397495010511822761294598090246581494598493141844399887309149800593283419152818581930078329428184223391030189330553266875820155617173157761429155496809882971254886686277776737263398354501164023406915532063718168272022964189162953562337909817517894573336535717237097053807718885297045509022059706007801321529488429221503121003244834173924600224340340510286091696256894225965285198905329131156275367726607888646935703104664181739978920298115929321568982482472007541919408229385026523944257187803234726421262047742555693717987876285676895860867289001649189411410341970672425139668571048985061585232709403625648208480388775575660273495318253292038479786726976717796413559777778406967398526206508519304436206606170427266021808162099025345800630552364971532406716888493983318792588841673202043007914311350174640015169631123787169339488147642910213197141102251495340953304109717492860652804125129490462988723883326032317793681378649562448859714637347116112549291358964407774239983029694126794520986564699870104415171437743735857600744195367658999361549668563719383645562063967009980347607397105260782956865449332235859576957874950596454981535070035997670522118178043497018705083492551899717192810292565918601780370605812967151889236891734143349168306507251317430106361196876608833822581191631945885249626272988474437240803540642132788536870154310725257639107251760814113230806906437689069297743741795509311729364452167951734157430380643793582452718523383480892601004872025938345131135699246653027029395152252490186455894380183181440865289681745845979697711486492092102820743697428397732600764193163530429400191462844898505063445629409580957632616622999786216518358454980024687594198577009169913442755988658238226702389182844832893327948622509550603466902418956911928749855887877281461017860117664859860396040897412936726899487730230779364662166516410325987310999960258817776770928525861650163690828145921368530738559067473449440446739422455447370318460161900252607122015021995716362256998773279085872120138634855334985972451288522417087258949120792207054288478721615142284747969044720558840213771355568601442463819527437142767474904739962208495339562102787714369200143547783654476014217511718568950238770203790654812516349297584490869708018115788988518245676522371154102890879207313359742878116142789092441135809708886999371029592124767039433023186686320523483310129514322493940089006033804072491046897072180592119882929665232278603176815401764977938875301541330353390761095711692133181569684481875447370927677498463688384445516043718374963088191810718001365725226632265314936505789106610964212870521996475219585266923892753075263661747256710698518311716847781558741983537196362701055052463694623409435909650293303134250967233363554189971406509706329790298397119287764128330800756051123642477647893650861144369293419366773641483801667498293962439944771203871405000447179380361863962943956878970313908903587921782589742317254824171591473250734721366617932119551243827959295508441426195923653870396526815135648453155226008298467464443905475264072627589935986476794401228632733720863364301522456038248744335645441717115205770453000577091316408866905555170691196186044167034652540720906659785070233510477126649121945397665760851167691744518311976533633093189671094779574296203577331202719752742232767619224013607097538036385177533563826790260149496744681643793766160337977431001761611512923935248467160056213505153629204191995970731631395323284645466091711987579657848225631457857203626156942193497854940899038828715458244633221345449367535057811498249422081481141843189624857135482368142475530192015732960135335134425646019721683799935335914622500840025371441972239587763909560614382578044081898515315642257693263892057089868962161840480632277136134138165675172395775831933441497535823317878023638425447480014814188988128709131851043951175173821849414978046037051039484619491323574000827835389895256613462265157342554053205344370833233453697887430593723028329571247429834739754605023256615476227857052209975437692809907380671951396295414684044089615639540309632527679051725702167576826771414352340772968395617405797090505694655659380900216307442205847040445206557389333291384434162022111511750140705891053768548233881050246946048392360168594009416404733839233128379509802015415082179824051038608838693505941013651655283660606259615405980409740543713697773061974767681942040900862403607178871206955398002406287487743619706586363551825938532039232659652866839145064253361395055878961478541467370623552867886895902715708834347933621126284996335358451855430098368117202201603589867324069894077466063295907917256684601549852080972140629058876516271010995719300755930887926142259989181032426259767282600328071731684759175463232893056335758346347638158894898546511126215242303725925261426297719085788515354408356321404730538126483843807134235832609933036726092854921120437990124416183094500971531301738284136068917064434231379994593003434494436750485413900281295809781912368236832709077417797526692459227353742190255505287432306569488168598679545987194465072424856356381231860983963983310598901844602404567143029584468110757668111668797121111153224491679435521823708395209134577115032822289219546161864442434183293675175014090528991518902591264282543361513267885800304581977989399261382421317572596532245669836026789842464950899321623313927548515839600427692194104667362842564807726038602250069716824771360999512505914187864572359882957610848712921640037255861126725238609332517534317269992893885408303895977944234688940467889003221638927223512782754509120273019368576251451875627627495057618803092005109494830558611772848482306320534507886611511051789047751145474379568117046155532706011690674761124165049183174474962969665092151769630856354747491682586005490582779208204159398404524618036164190839596971451865248630746433043121711125732569301146416869634048480178821360751999950437316008773242185326461530872349461891496019943571410977127407338311950021248337426174917657813080647731157735167967582356457507722161599600143985044727097871204650847454874126986833810282587347645717287314472295667548193661061188597224860241430523049143473382603212094874137449821730361673410953692375006234296669151745952122592126023031898778329236090702489544803688782235484460778775745547864569312285758415589609502068223742444856564391669562223098130963420034274919548608226481504914358896186654032788384415249609598335053979529795470484095838199209456860670382301534281977582867141771714029797055566897646591882001796652564358318198237415380950173016929220307574341993032414823860576403580385111793311272064198717607862100755792253164138845081683438272080075424658743216483690143395613478668198233613259521594369144614776456018375780290844472983137915525013180140767822801953904337191949338372220042166967551930645027617073942341448452850698459333461711757063321557313724418982934181770477516722608930605282745154486777973678474244694857281774210423922322254055562689375476313493027616284130187418342024964147216741023565901073290419210593382101477229498697433612753338642219295494827184539722945831666474335365185267465015497191033055382058608781773528286259365484040354447393472351211366006670865457088890592017863479837238763634244001174320568869493498512464387386779729176479103486472742510690278108183838377146488024016680943785580758716304257791069039062589442978122525800924563521211297736768529021282461101105734578374566994602224710412503792158309570774934562502335048140814430722071105129245758606582270041888427890203147425956331438903095542357202695034337970322059468884169112618588431548142725012005529014741559607882381296734689948297471024769176645297428704160900843766531363269825173240019862794448744568896019329257751124391745799825073177879065319577929331390256687108081529547785737448740164215887656846654455259682042676640418717109288666333722033138877000570696968128617871348674800827055960643365853158426798154865044248493123412552387555446841057376317774252168378504902295508391942525630106532700839519977037852150037989663675147614442815553723478830426185417012261124867834077914907639479275696908054517686655368232823856389674411794541503290864587741084704931189937911157111393994506196486283510826863252970614790676989177898043358975407610722392800918612996591929733192430574346140423166581397839330362343151151882107003757291707634437625105873275564555153606499476294232616044716770214810885948494183216851295294507608778990667402414759449101493919571757759329355145057532730091708346881228992646803818299513157105913051584525482169369196593534939877806016902692108769080217157796733627819259860907514802418239096458198969234082358656000367471870679050029791840876092834784579820773005613228820475335103692545854931696039289388430793720486222451977067265080114539707281473374024890264669729814586309658662435062459679569759986072071963677556319366072019978460111095198106360302355873635025612637458350612266759835171411454802077790809092042147595528927171643656888145699415994134837890316889946415780646708502025235411240283016054453243767005400987575068071521344071013087221571723130477355781318960953959520959988623332692834926544436562006336361302561557056496426723719840807034814485075320329540913257974950102600691967020451063398277222071609563960593814829302646324213931537347006637769833965472652874402365645908494560668265210087150818739515689142194041513484320015060423043749190252365531677870191475040142264624926904948260515877057400176943011247320170830806809383757521012925157130982805551356111932657074477842430259912705508557554248545040188585512371284448989822279934227952860740242481193507836801146596239229778423431391321365954965345464854084280217064177185537922374923120428056124985142943006162057093670239457137348432067726407998437316967890911425798578251535153208125518014170199697615270152920689911146372604678283077686133331688863166387181379286653576366604789865649837588369248454889788346062313746252036938360136846945803141450528325916087399834082853808731474042644972629934121212352806578210437179192700831264257033595545076142329080559929581606372426368118230087763311153746087655619197105677765356039029391672751928195772158806613679239766176353994161045614284058861715082844204675512841401355760974463579264944567687516251158807704631855045478499183648308412793457503564361714118612176787038696571517065845072049855711714323778311081541320613796361583464607177790650501324734314412259102363307007061643222236156685115675086408262295581208709865649164323296293423391879581857954185152997632247300377708310034374848732151430727674392194282238826386326978744232313043029512614358788587041497434168603225007476235142531459491314089244092739151730250075596443629089954117053983448744728469092154145147498870477031799228065242033293422648625722924503506106546398381618836301566020825546372962252786747028192157333997889946488440816394610772974185728331919783631396126780929739093753128602908190268226851840635808435760601834894378462259241633092828614102314333532144045955921626820944585221556591119807134749829396690829449210610433720385157570285160705508052042626800538614981425126837785177569725070301202652798524270064605874576404712399792159154774671268064674931676534894440190267706305202230187387703252269787668888883326273742847448862673322182055978375645846160501274608950277088528077556063606372991156340216699278599097804415015762052096216230332474659627747696213678026378289933599152471117120428534162165771548609731836400984641739996650723247867681202367134252097794723862277515622861724758285630547357021833960306054719854405663573088007927893282536414516492812718761421380039701540167555822779961271697035434804110633956964367538908797115392440101872706402320367892289607801198948507749198846572554596286690173625436520544114681970728684280926960290035792899691064614488049605124990189562041615452336333657600314198454597655760093348120484148230869319584168931975251310705532527996587653423928848823816522757441014035055302052232756559391110037068694177848931992473565689632886243610397576074329793772216875271685700458659288436684097922058556197809271855823671720718070739299686791983032009985409197382367894261924930742763081819184907049310845851661118012867466728676326271902621126136198458326616507188200941430761314142353261335087384756924269975181798225265809310509903166590587809718544252470308038451427362043572421523211288332173305062194089146006690835666187390670331644090366797340423871326265024753703168583274454961053404131222326266694354385454377475598443640976360739810316176998347707887568577310469513414514431609399429668695081066613035802408428590632574550040762558479634772735795209953103004818806826631682234820574759572710951359952535537591882878545536627851969248473295458906312279567810175012351515464886804683562818726042492436160774799294398745520409079946730948746701087585669538582202805653450986038771065579707958692778309317515534477145201950951543967863443180972981989936358973527380109905831529064884353038195175025312498001991793220010013978533565252710093460039693380880101304645813978235630975844433805276002760886638867771540843881102327777085384584806471843455065736203748786085763598708904278272688518136101042889469324179363395105356861558106119294331030931870429745994193475757464156949036610405240533753929967914069208434115092680226477232357020970229322192098737435108532229979936162231333024606894008195729632094695315303331771179646738824357790381194422816009125270682457682253361699005497025241186873278184996589292082862045405896354045236652871430640193305910777982318259201506057423565187167185591046486329147173275011158625168793979641995194323494890740136318830523987546623878139731728849787841202073958239588371473007949953403041201832250883468537649713454227412054109950169138630675792182741428397934291531852604815922013143600959380059331509348258586230641611163395992956109591154611201594925328022886480156944322911316329284797509094131787067546432432654603106732259394557653312446003488476541744228519677520253041179902934438921327643110010952323450720414221574340235336533032111067925930298314731470800026592493957185361806197328658472789434722522408241393676221555502044837579056032836479864623357970654696116944664403019915385692952595830785248998282538744938204832905012102926117732997414613937496479452778550381516301125648508009316693725423869778436760746560860792059807785476524572199866845875835796828401525421567713813441366009805121617671212575106276636602488125836075545988942964358926743670503411198692275447874084847733091758674358026338379192770193916962318441916840565372953431444116682733041660779638976492062941508703199203982926633258108558692708037917308794343252485512456003082534747385919897415292175585383111927000217983525418885890059193303291523023250336265239482727933965417887459404679889113086059123514039480105078110840694363691222206165305507876897942416638279819908605304957012340857626363760273172565250058453597138873977580569085038182011489068797512763896518139908494076736041217684691770048803265210350189412597964824308167989336635158021103646196010790700553338881385848749094355727184903068450616759739720881828425686282766312338792724786929243839239120733938886058061342979008447348903905678963292015432787653045485978762609923613510975522089279981807434804774970788412976188079222406687706556879487437255832887752890578572199405410727692762505884086155189062276514377816801145965893320052704084067793368722401424058151661523643671724482563606356988271626511680325295718472051927752540098680331698533145914280228307392326508984005452672756393811894609663789910364670518670196680794318272584324449752153177334656284161247271010132333576515583072098176572222933091848765658325255455254319188948976621651695866166112941411704696069896617708380368137990744093747616660756190138079626041126528015839720995884355924738319076813167842603339626906284289876361692808318302974892624841838219333875693144839053432939978127273978863990079212946485452565992527643010524697879104888688464604910562766181357480471868884259051068199208477539176665511733486817564167494325056900028327180527340448870369550081715835273588573195924893729960882434209622122440405222252276451812935900893215141268525697727958075358091379106830658503238014244522324021402184089211373398152992553233787572496161477801466935166312661878744276388657001717426582503197872574724211952711415095981494015668091755037954747616708323763861999975517524099700657478710768244512098195043622404245254398595875588237701780640878533957516437435494932599297429452214613503769058097321969001870204553169441000800676113482542916584430735526058025979854376922018963543150693315831444812386838246888416853913108358375443643555295606488126440993674691837129133102743082400673490366563601832906692966412391129147961907048700965894861615102632050233883994439291571381905542833238226439686738963184590015454230513146805451004962518964134914993398548772472026182203549179993322412634892744354483959356638493935451206050100564447091163151773024983414560446572587314015246915323679385793948426463818582309347236791485259580643574647279461064875206740792189983812048244862989168409471987847012937066790981066614093689308990715634085460097345529904068103521567941051499225730324028201620938795980753483010234790924727977892256656317049292737624265100534870758018187911594689905044852061362402815320756322357922314166474767455895375512058954033634391918642684459324356449270840588066565638359300300642321111380623231957436475237854044401220213848022082620645052923036313027933738329354709317085782453874858173157901746373554037905894174209798335909034001891244353616376685858982491323032724015289351157605722100964063816722127209569336426726604206406094096597949863725309732007499754142248535784191131990475850963775270448016111503042619175420218852847100737160346645266698740239662285212893846705249063877213424866857412632939701548795380309639217361215684527636247486962773191214178070479681473493755166210070984064797579928748919174970317263484144915266341064443414442577617577168260447601874421847304331511165365581043211884406366965214921166132401565562867048757821494636709753154221361318829759257591634200341641242424774778553285739113375668290194604395810929109834985016714771249822937399345615136092342977252995176254774698823918452810806229064038150397594537013478857554229986502675098566325625453435264727013229692242613516801866755810000381648400699217226192620929974167601684619341478633159487478251008204856255140619122022144245222946113499919678881727217796090479368081267512290183695377650241194497588117977166866925852601343053621070330830771750591035713913172580715939078532865801312358850879472790923037498502620149050193710315734040031354268431908926910174609685459843053210537304236531538818035841968436471130961623203186542345326918333584834609257814781463670636339129514677550380035243212350700367197504243314837210165940881843220884391347997816997097246757559317959167638023118534078148977947266635594828647332186122322255523651108190095639840877987076936978230246404845382236926413468671023017606554233478379664636513447950888566122783494233168330713775786826172709258710934952174811975130193544609646430362082178174182897612923259905414176778815913239528530452973831516349528360074721371803441852152490787185528400424458804019928142239021085665179487561522670306676279636399124575160923159893107727665884804515835013402524466830591636279434457238472579452825101498898080472041052021090782239334643857900125714972915751846056605851673664173298517501510838314251594008489586711254229348785537677055704609229426403102505776364197990279649397029925946347827782827750894073230833627813367475097636271440121170522105642926469374206785674439191628952343695251578482829582615008379487931641326676674692254043939809236395588011577138619963943860193218601752727049783512712709495900877892501754616070026069405912501238841687507152017753472936814636072157538114764143780613590218236059882348660343088251930767343573492383146091584583035763258936523346799207448124739419974807252075715751803266077741357792322442888961668813776767215895569974492028360646751216434546272934793539740926717494450675474220368085101516203001476348977054640803337766750264883967632232950781894533167106538942892673322385821723384377427570437099820585500251879031192308029588307160600143657034677593158559801591336523584960954321039895488926533373516612636465411640963552296368559750012898718432261975444884297117021556179996941108216391915627166229342063197861844839217867134049291936198667615554379188917836955116223380599234460621440246415623552997963116286093165655833057819237976636514372672008279097318607053141267309909947222178721121867766768061033914400677549213883377696419647434552248452538603055177065086762480119563341960497095619854689687893194662583290011872977454225195621099415865832067293636852531749196280974580554101125077226805035976094451702478990957260445296017430496835121038533293032670991301415348204409181674551026835451705656156512137221391780149279311612389462205216103009919761187366976295288171271524243286834901045630827939917447799878853864892107319639171147293734958182501880560365140213555937303699436280996459804376137291020733926461771628790798986663966550352334743568811762887802465649954825062918219534581143900750000414026841438300305231282862273395369524786295941052271390356790401566814880449735865642967391804241807333654933423123896433890294818228332989359009900137768971645645945618489921084364836586722669775997910926440388067793185157995070819686588830495809074509580730971969050298927389521689714665946583058610620412808305974118856047936698836038816676725815800725527536125584720018035446527770275278527368195958638557730390281345062571356223509083699616789493123131749958121567633874316811173344677654686645166344656951979824524479878111000598247514279417406196256184732089731163462884493115339694458989085798546057881315787943245765951843199672953143569413645045052302087464991047392329313843693553982260940791052483960213852374801919476363181075881468629736777964507496318161207156969030726265116518152016394161428417967614531627154189540000215708273361591312446112551226300503129285290542203885152267675085401306391585329977339085176922217642126289309387576992999943522340633227262482828696618926661308816641801221996394797630351065839918992988395274114725870652820894456423454917537850218068116055357541643378625691482092943694953970097758349405970780175545402701044384442638187064212138974780538875223180680590885293826369024170054840475659404148507269345997915386474230252902120213802086899340092869773812050093383541658982814266462024939974982747595324846507465868322114472940153054041574334618065614553143290055264544832687686939976216202850100489530592313733395710848479554151579927089603168869477895983078792167456467186572355117334906770414180233526837265942168705042836125502471444307575157246091892265151513298497849825296877616854472841733173950961897278175825587241694314760049367574898145718996703309876962467717578270622290195205817762972534308889008722214259466358134485710442599925648267098264832767875378071180038272945077723043136193708448554310029029312399020780041916401474045054611950601075192014670952770637788982932318033583627449187372813738484367732407303347792469637237816165294352128819630823615175746388128168346485572013757993758022032425630437425680755229690191028054971788037303217323471020617614422648578432990432504657823130309703795686191871789358827809435661882098789481602348970978154213831625350881262225582811641474397767631673549898333723678298443349412966979953675342788196771194587959923777116573215990271460134688427074275570759587445014121410067300997219505227424251485058636105478722002469822827600294736303613129065144654779602877780518504645874937432645238966549820762800264302657548422994468615229909085091446913024519267942641894560553438945036890172707260892809674792362968975317959821114567333665650493049840377354450372070687818606673032097756610133587810443296974534387211353766673424555205711827491043852693859252599446907545630780858558004489396887840511090848390600047236296168699191082785883180573532768338264636152066890415911293715668620917199083023935740231463165528568263307535731935198590114027554896665156075706932050662866473832092092742798994806863805843154193856343860361088530054671610457236490920125179156523117167858501413074939943148165813702353916009027670181832536399350744905067496966259857926205215063765843235224304844343494726178348694550785808551716818977681853261025370855141341002196731215927029025114374466496537631796482425772517817676419275470877951359868540936955190758479515880386349322761768250456195802797691132571140529249381194649876276099844337045485729156041737895833549952548397938382603477039076333103742327055727855154473755929776820444723188816143836605013780877918089543644594467922251970211572346348587178838382133027240260856379026340863095731850929952068464781290118113653628147484237785242536763992417622003988198651477373551585987903643446638984415242133582579242455500996408998127825113984540479547387879482422888366813413101611246915628578746020962894072603775549382786233495514147021398836179821309078116893376222091987584247725871173423229249081356581432747875215259195696041654481363205880293369608595458749626124756012368143618160865172339140676328915764257875938195355456105477263749133349759314840515227404031537484151401971588136252159736559588024935149804723631317517214384391244203772696035363357669152216306746965597030114769641839821021474022050030794235530427378929725588910204538282564542558094879565383736933369695724074755587742209336273512837021886268812504921743481409212961953362559111796878424747125281105210497332684691695124555457787972791253403268700414566226533722523703466310693376774038749648224783571952800481995325015913339252364987136506337427896303495153624948910085693168997207258776374029959021181208803059837004475862478280118249855932258969073169314272085430829305237214276736933875830597137549445971155684984122955796490083477026574465216396833069153618621092480928652409707842253073093361130800746568904656635088579062435057417599907990657195013637243258108668123688766507933908688233498928156534945790923854966895517145849515496423577371600719284653961024180944121860556046731540593048745651741803422190959183505648704701254079916178930750696564535458840222170923778366951859197083331957920321057542067108099726741042501480204261989279643454365207132986226651806019410553009867760458094468543529577366540226043224448188312447612424234747086404076223239292771443970760967683337223064559403738956297557692747723706151364778077871981172603971307440031211847136577328450552373559888581488156043944455079057426554936753926061350244743067779360407038299772420703154780700980353220568637603580752500347910192617438962884326888939905440290985062571202627970828677197908131975624931914153978973865098134398581333480421951519600095155621389774246128150691557089898352060780402241351592391883117105400579062237121178818645272077501423068277366326691974834845883280942831761527234300472511329124936716614357191435052743622997120152390489093715989949851587621329843510200485044038052323485362392759313369850196151650504433989926819883014517437251550127647562195148582258266834755137276893450194286033819646960730738591944702545877945663409987107664180892996721795032123522695042471178078781275169512631606232969953443787425080928663593120004943139392602968702747163929462937882839354159854926423294773427940186851255015412277097479662296105727519842956814483554822120593295715469120272459039397730214827593492078361303855000720100254008366829700404608428499018065453728915550358029781244399297579006699012808244736170657760651139639923116240200461918755418678113887443166536096662644519860207297725835330220186183447876318394196583795035741757439634562365382797476759941340722068945731503054867628021149630219079376698319888599492915901408235660658643751728586170441076702026816903093602278490469657717382401350056681139502837647966641535771314204978281964138178479855128602870397842865000425588130633154093953555826210193064262583338368970447212032284002876170668891223248277343635372239736122686965558126824503991358511195895671350184612788869422439823380576379767829370926686750266214652078106807748075260655210106049094624224118939283279442169699677679939891794682790010248761907001980828926433745306394356901234879873395645943241311504633816091787770737444299400059586715357107503611169486811084369699600078529457484487641158779958663625799538666734180999912136255534851171560106150471021912981850443202712573096982168899318086909964738900815724330399975487176887734981750160542111094446219816570574347827663025226318153463778948171699286954297946238780095364921090971464409922744173638758297596578734403538948498240483090489244442830802067211178446731291614758702828010379825295755990969697759232708532216834115416484847255529239985785186010902885162337290711294812820057632304239301952538243267327871395983286128813913210616993154847747675809241792385259329977659523624584236414895950886034929413923648102542463786266179912146293337510136414055252308808916970918436445901816909553024193098852936042921129945675017480504298564459644093641008585111097141506632480279023339216650796102385372364542774524445451482645663782952831060661192862968339642571670662211088571023961779306072824629880157277733640495214529213803903607496218500106181789066250015316471114723622586840249071323835228562625651253698694096864203878333807297402456309336979311663646109379617466348486564036938586259444006891270218720354689592140846683583777264899342427335627891860493123828932718955887972082248846368956079806069033618536954144875605327768226641480892248640545710284352347107688963070393760579605596698644132213103079389903454082215704206616051402473574333279065187827266013162990977332396036419511843704550555653429263201573637657361097174497068767706602498302051207907755595432979971217875278303358141201443324621597189377356708437376757062551262578424640257407944682451778773698091416839894267545263509030950332634204579169537780752902595629073532591597930736893772212766983185806794783032722138450431032266785861024057635198300038842540632059834439121303515149849579359097382101690844963273166418009650632334739316835694782623696820904485576223313007432623644419163429054115351486205513788546187839950342318203791991020016092360017096919590714478852394166983924836308432107191987198198346861809043593535465774129741429750714934981009084823136070091674074717492618617727631302936470025200253262732874040257204672336797265792273017007182317538238864241651569885650507735552760187836590185442160745002183398596403360093559075703595115496687567004993116130990357213279818493858529067461297670163139605121676741284618382550380490529083082249655541954656372037293131328212678813003766584278512641531092670670085951454109259761432443427945439976503074625560889341585574081909271199676444139036991423130673605206626818087245777566399669307176355088618254668227152389914817086322352817749121658802561076551087016639687075505551705842025378502763085445295646419179437313008634079104997203073242059149242433040716921687894778536191474214976250492416618145571286293191478005104345798666696837106940979935379213586924601023267579351664986048422297211630701442044781765620145603390143024271957789623558436756842277970880809659008959581081607863387498339530385140844571405239089621902386511023910564760350915362063661207989088299399577838329119510285666732041008529886584087373414184162998091517963656602939582906400175591050640812101221420588026069660953649284276305992401683654724650841362368832696641858326583921596804093031700215839631217815184780181129376802736087508714452459223054556435327121077102336816439855856031648770723848355065626959430140882693323500495452400462297390903284212026409956441833715411569002196620219056965215380537990752974932847277711734211025676846587918506553914664441671504924044902566261546305224731917348929519540397841494140714324047436928859673695378354298000613319542887647840521201092815978254603934279551017153683073835327432832056058247547258949690217595504653776156171699575681309500908427605732384609308986689805663750187373408011566721016314558721300704602535869763977759834864270530488218141310152330726663842711878834029898001805955913972127731538525485213187634257532456701620111759236886596224247376165640265937569336137629988484321762223373033523923563588787130420861853156364341667655752352768511205324312806823352058351991864231613856341441203826753056457902314932081492329612560580654049526885714861489967145792280294072030446670032499716668074666066769248447534552633197232135885147782264050123116987970326218612732793224625563263320944635622695143582695263622150608448039608502757176483901483182054236872027535333597995050134063347993025529752454106216852990452619900395193910508461597786933677090780732550250332974017926010229530343453328253726610147647767095683868817790301448975354207081848442376016090348293835170932508625611397127682386264139978161082464717209246071757785894941334427010705829058815510439647839638061535758603796211578347372423267341063105006113840475766703458879868220489040138405634885051146928251067348526376510753407472548465923108570226576513484835871520272479292526785834467118320686458434776370303011623728823300413600415359098371158047605925789664373534712356242049759263281818770539496602689291996100852174302200707879741199148770942242192128423163442992176480895681200028527184775415144218836770737420245493283881587089646944494376735748064278744861446522870774622522457200564880439560426125130095131564066492170739898224599381890747981236902375353747217405116904829285088063530938818882533560025148328327758082716959013423544192289158802716646623991128210202609776329836388282843031020870151247012486081986386158830695999615631286134559702923690707561566423265813767645644913101970491946671419914866378274595506650069458630463997120075056006748229839100098891722488476742039118351451409895270291581061107870270295459243484663956482149615850683707638546657367150317859312515987319015265338418754184318361745043118813778178898463439939868652253833458511219921003954586153491670667455088177730331000883332411741304915859949021932408120745221018083155897722189405956372113738177974612228062002841437145872956700924838300674269572650931964985763831678460112241474119219721645205021522315116925507510138381767711713332263774056578381601393826779510403310266108036846661222089510923398316626362256531086276479741155234639642965620529103644041358538907913239500261197262026421511941430189869686013479400127823954969457948578710670653582925388180359102015104118115104988109888871810618918402719188300045297058891287896331077882320894591307483604983870029881675466404731571643534333495865603722269022355871570136362132433730441852223988752416874272027287139425444693174179969654237123512486843576927444272228199341697742680449280250678835999613800682879732070685262836464372133870043933386373724725395523615615889092047537063533512831311840953532953587542629691399861755597248668671771540396412001251779016815975869265817452329660726778147778333472933340338460183395142729007133209929796666668942158796091186627343101458698283056386603794768056999888334580601459418592382032802555017747986335283637928053491967038323953850385884417882031646432205779823009801515558969021876847779330649835698427498680609604876399866512188979671819240149708168529610169570236976033910648511349022582927935075549885238394480385407368939891449325512723720152159413636245337723590456280159188309483039719565581378299554860897719334961325328674098326947239353079591195642522193884946646927007113396183876282551988284889229148375653485842699375099687476383863352483076605704823807860170803631670217779151426543824978260813938610474716557844243308476265347098363305306825331024213011177084440095416425334312173222383843143271168819022979022787417377512238255353733088971041951762616517717211124272132106470279864870732959581638676627580325763266723760556874056927197658206175294878601556240967347166927015276105141112675156137807556970095360487980319208606865940729781537918857326971482622042369772788895252743150955200817332650971677135059526578805245620027965097418153268482594864167547204645334662918316954860807273983778096329363953605667648243150413440929127843835411348559495527286185566795014950720183023505832589659117028548840386367163861037904159999703463190166766633247786803253625385300131653382580778732695339470150487497457883322131712270439058168952606153708782385066785010722974456519400285997787381509332818900089457942009558599833338811338346903700830901970804334413426133535858714001989483936466389297719871948969895011005125786320390391045741642226317609473573934859613762134160621913136751604634091554769667378583934162117980921535060754145989388018816467012583467762094965884167716209581577099319135712756727553318406670425655480682092630887561256958964301121742815378233312637070393693307219321731544914208430656394651023067928344735788696236806820003637479435763697671794929431752163525417558848190091735223047729762633100537661717534007576840858040913422908892059117051317865369672321306341639095053247661120758202025128534054083970395331116018613447009550429470315136991398822646540948706777875719563210070348934932633610709967963355385872265726706459107926388547147708811691885341893020703805406888930807677035222892591799509891324379639988882492721218106494623175291026461628329431472720595618351934164844743630756319681893228827388076592048343024720112853792485700881787552222742886190722949021187465136432375070237734690041418964099526044228848526192880571181444662169889998290011792137787958748130531290291466842480594016151084528126244979681449768793588222414966329718544759349924629203172663717166999363197350717760285822802924888972859023012509453666701836348082489380651739683367230383128435772970534554428928463378569369063666800809609992748461272948424881382546279971484984574621465452957340924618311425264858090450429405126233431510382730533186058909692589412433761263779569285604483487502058976635358522916504468678545658319162257793807754411134551774762875053626182210339443054226508015435003750240935634121366473155555915444012885976795560198019926502577867174817758606271516584060170040665161088560171303450197470253246382798904118543311539206713906842106901993565550768143028413499348280830331095140630666875072474528357604909062892562680222418757009683153892103520876040930146651154607320285936791225820968826215824469155846670891913523872067825073234048814592510506359108091309546561440228706157997899689602588835927009614060492603278075302686377917086833811853037467694366140318808611319696422558950129301426382879318420646286695583530310832110219581039638703265184884741319943256583775599611011317330652627815293890793706640408954958535077441105169801194157502007714983028762677629264460178260386480554584085406051953552271706059315877825333797225684036451436461978400713454812872498901306614474829934877743558697785987316356076095768412121955183571610254965624185401302282136991505187253668298005668199642743004929166698321000892989471081882708744131856031396211180311032760780417100710377020362453982412527109760094538091019133085254506490228373087230157680089626296589862272475319008983722246421777481758149074874655874406125695823432393964312639106822746417966591117878225104657177525953634746387475636121831365695454575560777028349203172488316432813323327030175164066132615811960183140901617035409820124236361068292753648530483430769710080841705816933319818354593246154492604282720034256157970262716294809872764883781250686383439136525819085888683289791221475245493070842399738245156184938063131834641978464622601163024842325093028603331136666391891679015822467571256793412858284561415285872642201909403014003683313963688813482231961632854927509708449083719888765202629857344846330266678818807793898584032451850481924082914317476599778472820758012085990379750122911538144681477452830344442463778029771967723585281829873236477481582496225190778087185609022700662358451596841566282850633432217708521671825576537908039456981954332052961079128535109144519038738865684470049549821709749928787057811476785892884540081113536435574019426308938807657426877227237984307929754041691543453693837391430846318101743613615204554752974548026600650002665076310962732421010317819904961488572038296508140922510760740395394635765853111829023452419248784624638279476702400299082716149812107036257798642878365433789706980787650616973802936714776476923841696874493807956254938809664691606903725128732403957381045227890674533558812437947768412211699525911391957801425395280868303929599192662916121403971914447825249048235557462163558384892357980120885180485824300811348808779897246998473194621529736011676032577264182061687001367224596494665138888323566165733226020606851665769533998392663203520832619890945691930862701227238199905772364346655832173187449944576795972871399917602600749811321987977201780221796879175101398992200285214386419272127072593421952565179876165955260432955737821204302376154850289190036545104017642120499851261640608559743886185592099659893703000169658115998761092062022329231216836556674927366104867689112342108856257688252781148416593637070845792084845810866330669763335977097548529761004517399503797357288381666695270783886872863252994011385983388589856740466641312472995418159986788945267383022111343468885114473770412937158959085105096930636536278990060200644810043900911683433804167377781741551157851226203842105011610240494334346526289465308067565054493960005323820955564161533369353801199492375710125885578030819035645632285009223701072350851109354409529375048982149816130190622212653388192594560755544373770611600460843605935794444524200193447894113845252563384482312928256659210693424931568908380062551272952085840250533142135951302481751051374163928080415760006676390317368604488348878314593761878440328829862973744976298961665420193659517346584580926198360377175937038512034252269074970887490402159158890455103934200985066962197295600604613755289947214005486430230121215804724386537412939080058472525319566108916929387691450409648323911266601681292417611967205112313127573796384335401426305852685273549474973572589164199818689547012980564288630205991191405630954300051313280194352028380880133812677602601194927055854165117940254609249743751243224958730442049895210572240358578002234581364449301329895337534288810499358378350748291478934028394274331256987183368451352410806535749471305417758358641520591106527517504780717006300827184000191180236308816103410868211650135943657908870471029722431420208867295252028706346015172192744670187472409408434474674755847430670147547206205852664292404059164091906967328426442018886933935300523817063075332378667501296881515967465239984995752652756711406741416379030891956336602678104754087324768909810446883211066578980248152617385536954961810973752529515909330968336797697263704691387590051950001749888942783766897964644374350328437004218788053372126949576824367952941349490057637214127265674919757882282813996232434784129101745443985572531192523189384612676056642821418019486781080281103418680341918395190030927742225800976713196599545528600594637703717351799587294287938361770190863470860721844388635322641475872076586212198474511755906059240755529172222503574861252369990612771393865696705796601958413915843890011758900765067091861357690027536338799131235662535932191031617880945019927541013185150114030536803560779443550251080214650963275802697907133664912199959250991056359398706928859049819152440308024291313014316665881225571165921686154582175817885815072059886176129950166201306790977000506426255675214476030530842767603933597697989072779802416941056527526649637767975092437675782830219158953240061161363253351764056982006813454340023353615341068568125806017784006622479214412512902218983574127660645847919249722234729205768849624203473012366997549421808543300456036655987491650144066553375526339192579315039457758567526353735440311361233009505387464340763402028248032855550292133726136693962973394621841504697547321666896589942927512763860402154760792845820493710210561930805527642921854263407068744561913501166071934314409237978503893802749825410533369517528717199822599546609709901313143483633977627179847302668188526750604428914913512062227126274265186324321309717567472014503024231078368160589691842760445654424633781652933871890353127054169496554594111994291507865161571551703933338262074140675845463384594975036556138049305278862395736214918423411517736564565786858971675517523017831209072500669311861470637519256190965788287694811529953447467411895296111473619518104613919280784771501493676510755032148617150341537659183176205766163906718729596748944842267597271282651142964165514891950019574102486535164793098363306152980797317543397068491264797076654778935859744698350512146478966911366116682269378146816993828566967206179711159554516152677737965641005733524357724927676506025009501076877342285410305233972390515853927070572379398979133507891637398321963143560716441426850888617982308011790149020326883111385171307260738595926641886497716992216869911096470850421072552904060863773581082611400282786207446527668578760084398591140249349961472398949873321944409486294172182221401814397165716156293605220964343900219057468344851329189022318637312338638850765542407022193935806248849612357300411814010909112170755711499620948439482769821293246994068273672611870219955665703095443838551779297263285192126718813671917645211632519286770023060409151635682820936387973923207865804941546974015295550791125959954345518484544840724745449499164478972698110699951414909286553956533782067946746977420427009481958075020237215187054073298284850170258751110488805180815680615752410594781686094107955044689328024702392995279847985525567573578219092163500795052932633780727285012696337142535610035398805724502237914877217647158071545651203951739008837467712807311160015469600073260737518871973887144212400753413536821584921008815906090554535536427252876873289431505885313951745738038158823859910023419973763066350497808214113797667232542626633543901304858315705203144851093784630869540853176315137345292449131517722874438774093935396396409137016670847914413490932357681846969806023175868981864434168913421993372019620712234994979935185291839208520264840247372535823185469550218977268908607874178614127077192803462868996507358994382082527761531960873833142805230734179044033875034151718323343538548555679005224062192656013315513990174173529883108467041476236065201114688073205875766727908124432814646885912624234122742499712506866330680666706582954628642485296615082247416152630805464008183579926409325051734186660724663708499681101389665011799114811999340891020322826337786195574106330164800299033562688333711154457754930757839419114741881420583294153085624184653257438700670846352482494801974200200906212060047079619518944173931127859632645044037942382347249274809163852749419689296033807180465046803681830346800468097017536078177501398804706251539689813839291314356107982148246225794069470974934038318911285851264429866078115867612482781194167512880558196509172684101444682801019230105323042076299880723293095042135583921756121084812319022453790084933587400193044754128999010326624618855093344231429414756681789851586708453806096797135869968316390511938572237992689750507133593282961801642813949555937997430101481978461842024300572173245016109582773142297533860167256779169841728028534897574896283518282937159770469232164859310494412028447705239438112110396241542736687831955636090514430437331877645663804139985599763454170024679633968551412565412964660016366869648490616096618579128613815808568544475412682435329342460902065141125689819531969804901814325655730949085113134509704036337645122549677080068341185723944774571121427992324666845210667792579129834835452472693603185485912607533404163500576925942029352787722504363941796921445332107670868746367991546399783898052492092817121581889120305533836315859787978358613532737148916499380801249793520356095875354073579643709153671381569757665905005693133200159173638342518730596357538258042293715649335212162073916354040042552429688051072716272108329464193145187184768140700567908679956658460304346523575307746105279295138817872577799679959644302995291035213664600157483809768948779220687350533066971256444737696880875249649194352271377132250597279694366169029690743425254771213675623098716889737912151359408301650130083994479861038547954678141534224291160464422137606278439218691782982231183946140258047963174155299653889626532100111495516133546615601264450663780897033123580089832565929854200546908890668438634020072424875926867587515464555745825261404884522354199303786412372142289277076876472919017057507756997934702309805063441867504002035513265262608286556828440388262563111981926763928854066076262995595904608035512623256300722770031035873618208844332842327967842346415267393275540122819158987813861473012331796882523061296743500107304740688210024491995016004848122024166854539694636218528509221887210542664797481443724767751456281117501713403840008337886384740711889214436305902745077404855953861583608107876715767859254739620546673048201385442209527689939495364719865950682935881760320292286157671628279632975985549870495987830732521131098874037483859476527119342069860109252825984518217984985790708305318172398438833252327301858992725635629157878372740595914030795803565217248038530430415343900939861232277603440753703579956796840173245002900187642054225901586677053138741709372800449265084092156710908444633117648698557088352628249365302711121449226818742353175186839604971279834131020425946648218484682661473702609262858668270723006467725857193870189850679188149713038439273176732165157676045873276620191105317651910625776377454900963402405955501374034337192001861066732796990210643318233385512642734158742599908005614029329918410979687303742347238168172179786768692025672255595391378182459854392641298336061115248570883719860269768889180835892966412016022768407305907372989539257112767633245984687520762775328078089045776201436079608574841044250758377454183315415059302537970929834797373933379533072032238905872909880416644394182774822418872471825860150645296235761565779004303781300958334147029914284499668317379553423586527561448133396192460526669952026874771074711936412710971326521633628818800913096626437978518190566137662689497572726507076529690655454092957491300123107217003768469449405284661751292770694552949133640638002221917006170478037372697807765207368646606477917587409312957016346835700308231531368002064822050770658331108222955833373966377437849205316638792001591476949782119453192934183709431300986910448165669709264385259271722713294170944475278248564072777590333751808143839621227460211732009961850008112721723928166723805252331369607823923761488140195294085667486989835018320472746185911544150142658259323990864853417954083240886583079410693923561177426004485941163023325414986717250420458234105706734768450718626616393940827030479292826847980927811898396856845298196515808776712239691013023738284923920885828368043812789197797266543339225664107493940722822904324691367872651131508713944879825757001815756112563856055253567926006560274498307625401725330143731712613130617539735496168367340211289287985935203590042902665350140492192399846852882095036197410354531611363725440361083712527191155271082580731286482873001377609169724883618738380555431419785017741422110939713950863127654591874201410706572881674251624175860322480970003417158392983329665459820409011071469107770995303145098588170308055356702483500125471215266250838688208247088382763986548088276913797626603446195277884274565962027491732381916722442690637507933323554297974717875762259632871209734824270766507098159253670592432307044913460151403571133180034411707963312527248667659924948619715060795741779169019829854836278306716145284113009242434549945528618482778335513044070766635719936895590849375939529312394375832845579877316445053889345647585212861880604149122236268017137042327800001069499012384693643196291641321070362040492692376640520203292817120248124094945610580272435125528457392957775005812280671193139515762652656257420511656453182328457442087734468709618262909626540430685727949550913766680196192097857784768260812788434369818630398505196807278727724084758500142558394564469170050750433774958800938884027603102831986854332503672142369349740057882041188136998969527666778486275602467266658089914455925602053381758906018818750864491409429378685446325791017677144545794128985720397483602562638100581474708644418801032212723805383394830487792508201085625994924083761097175232986577913875446837074602006545347908423230659744770165265914244338956129833597269170389949969201979469796138645262560475999883285750185072218657832928124724901849050131072039422819995431427680474614628033293369052282350887191422204288090125398113508119489675604801604072548337691623809631228031798870262476630018519496026592978992747550473471291951974618097209164533891895225032415151872453507405240956560515706616282343149926529794614642157263594451705809774182345589601355354841621665328796872389869081967123779868080058666076084831711742883112446167986602596985881675049768207144510443907077219593803377506677700385695110624147109949574747362738792775140879878573269072492689121745358952861435236061041913904003657960854469729077979085423297616171355915500741528387997876739917437824118709111569777864199155220891046878818321276616812795634837645431617772709997201485890338044636864332747450801495887455780644891343882272311040387226294497507631849869614719141883641856466577137259139115224489214105770736990476730803112805181561149442027477630906378388783569416041857669050976858540923324765416186981458824081678349594606294984249802435657549845576401171582533152426693059113571933487633730095139289486755875452549669330942200500224862822139057296910439092876585070017730295746421172746406960788603723789694395452028053469538236083437951053265362379044439985780338104290634938820310297074568284905714548303474933765444237967072339352208981248024558349458504841103847919887587976193934224095068686275468042899551452787142294165471528346634149066123569264793019401380602807304537203010077981091226104645306943173568770031860665637510871184048219168217914734316350145339949265481374885925581325307445059198251559231414164867952715580363725250639336229589699844268624382404786124192140361492961024977259596579875554417045636279014450244540793062015778129215520198826204760795252669533716253579339628888843755898148303621526794500708202862046798670168806225387554790147021251217950325471443961373860987867723590523175408578456779169591886226677241240863621280906178538694994146299290327453072543328466364606049878025569770979197657578060341362099942601279290666992352042853656489538749599536232008767123932125210968836874002847648286088353597257952126931949610756013547226739696705607215911000768247992634967617261997640156574466396203854749235228179111241092767621269649046435420471419329965350011505533854210906374121390019015705051259613983978764358469912514204695449970912088491288801628895503275827348095740957606836165467571997857630688486477377123469503389560012745280463509157970099601372362796773073819569659475958362053179790398577812873061185684085716692813003466347889882440688197028728818065818893520804116005269472025628873178569187868203207206606212069016554561011317533813425167476778756004606608945849612835616690357089497568119592688175722167376569806773839986413622351464264899634538976741619021882200385314255332242472903328861859200263359505246687308354633406438908097236111832786578233016640666113262984424573915148159054601828727914436303991401667487206163022463965241151602169592652867094982707476003631623042052093253670752875909155580586798900275657514312968516880647260718086989968848184585197285290441715564261790087893389511904626842212354699253856693207469277415516905391222014016359292465997994226666936102558273162140745855021678484846603084863145669176808016162923506206420374006266828704004920436355176093706310170539582018213671603145652365130292663123031233345522131245080466217007815266752409311684580937418184850935744379445648999538092685332104847249140354337290921032013879162010355512194786058659984959638866635189874914844501160646963588491273330063749950183088342147240116483345196365255730282604010131796392878847060151526900689879229436675290601875677435628025072853621330402482507457983192571451845133160234234670541047421626396718421676090663717014540042149619660452525798348844955720097331977267250665257756373572554878762545981966320187715175226809932995418400514269002916738994938214902431910669166777697314943112630630165398346048130072648316865910194073724445285375172829268442837298340575378604841316593191872400573249726257947972212928044276486895532849623228828063458085276652910538756410595186572894096627055213988251308916769085234528253084668072032983507520669678330703652244371749641115436325916823372461133250100243463293703191490405363419382581683283791144201028172938561752322608881320356552568952132820079960016463468555465209863466482482837729315175189801324560129995786751211736201863349223871249218682274608252263144706365722164153090868431560088211475004799099875340425814424798438917966229487212808054364764484474071128458758711426541874156289265351651776754770947918712369048053664598979657200993860623864576114357831922010988117199054020789437870669278646887479331437326982711208373840186891748441138145533285382456230783582262408888111594728606576837659508186709094533826599592941415473814321496632922389999518801881649181856274944173605500762246162330451002530267912381446163788630414746704412571645202273734896263200252004990909963909750874367820365084697176382108954646070401483267279444578369683946738963452326884886228753512025775092767742090093006702053334672181735924581150378763541447564456476752160856170594808808327626182526527623668633192523214391380334857151276834514040561782759250301288409249785492471592501830331023832858793726198571329683139197333523185613070485876132445006394601242229074012103771460657151510561571518564514566348701134910520631838291631208419068059453988902280699570209271711964999117565652254450834426946377636753765553662313741043904564135124145168129550270132227886987917332342458616442674372135276336812304962916103784509836472469827230333732052552273565821361507245252267211169272832923585079819459642305276150051927355721782138325222828880072507123043236929428008379772640652640893631026127524647356678991882476650804801402428258174317638281403840816863311210418045354199155886842545528153981130040437783991038706431961762024483902482316522347335359630587622634939766261189301227304353172064683004350352526237613936824996526806997063341431831927769318310917987821995538294735808799278039403176363126336776695534154806771656645836200346592341406221121583335380073231146566165584111328736852245665673360864560185298542984743078838320282630748083148409650506626976486413661389590238737742847619497492063062991544284000169303210170471412091779737413884444905977355903540405705550759732029359433832135578648513505455975685116405631911865898052375749287579786308210140612834200219511886443138623993299098368304716079407832019876402635340175970701670907019300858660204214784324336798908620092594952114907511279261911305861232008897893894779142830399737445140887627890469471486722056095019880888106469085401173047310494513777674640337918729970254492902684885885775308798023417072761402651868901697467309659338826832990044896375874986396054555135582145009684972808256152803202460587271272182154409875079284821055416861580960701240781510394393622777793466663131266368327785620676208675276387550177294372191334487568124192595989700887675186127917428798526852732163627409387224905456858656258743353913266649337899168050868434039953762118011205542034229205997148030639368063154161006968147306870718591178987115243604598215962717503457745617448952820780830639541423459100867522986504488684598345123477737937582794651573400946988678559498580123634390635767086893440140844719409355817214725293591116883926564972130466441511358932880890842267786133890047686104310071538824886298809702651258604904826917987252060387430501278953784731281864040888135421108283291381827522827597734806811621946371845245684305629582858182282935517142412458075240797885049211422664909803617131233170793498828334051796470100852537491910984808829654232875162208698549738248802413750972502004401356848447037788485991231985780642196857578634216679077028691653387641241791715243484760680605869596807750433609767376964067380192790823201874277532611434891227212661919843382359553858153713829687067039864425485421546246551578030835257142591047817728197325465215226445113718069185170144136544791760086888341481393579060905181958696612058642407184845372267146733191918846720739095034746148105910529032638569992228502938885226760038108191676319520153891514803142528812382149616920494296527036771392252832197212939637554509947997090476761127346091531565401939401696442236903416297900212470687047689746619281067171571579065422516602486668462399501688942094098728627446121343581846131661110095091776881224111776026382405305098901685721041686785208819049926294244410168262099940634597976204928918402466573949276533260758119508584707873190105703205557086010755004808583620201241960448669167902428834796104716624926813853981845420821161282014167673075304971452739041105863733228306052936246029536319811197293193494515823536149957788745533338603667354074674175563651327715488569842647919992615343790286649074858463766719839842595851884590772216842689135804615239552861191238707193989068734711932537505269554680996334168109044196356688841173377990205983687302310541826392693396976868047830003106929884873891667128744705367367965045636644726819646907627905578796834981346091307868507964648508966574356585535201679806552690283649097824019096471792092688551609713860214959209672500128832666587536003898775671123611997430376369222789266129742887166927233863602486145578886929772596967447411616255185876153192048246320437755326510513960552440466605261867303737166464571264351573118748390408563268732782230781579704018830308323050582688856140884206467855598580582376097635627888194926384813036020987482308452892689907636921634817571920375623537660745142109141586516518857614873957157377284407501436413978080108209012789311621348025254246376901823193619347625260585418081696298674095110216995417685222509024897118868097761591299668481606989259086816564118485296522899903861722153317636057321800141743862614795459795215866926968327072835200726669404633720704705608932785972706114296991279940577237371811036662019674688094500648742737106672199027167674362032175436432246960971864619568503779947407066592806790917804844990747091092443210525091193845529374511682530764650203601551548500224656376566068753624041965886213666465102474993514699345112190027563823428974205458704335402725292684833453314616898833436400615989973098874692205280470899303030792067775456026434527177718917449443656584233587266468357569164814278945226044353566691180552123842696586576432698321071978086250889063783950443942767329462292237800799446302140553265539627114564167374144488998796656101079481460846263790515205312535899348619916340622092262809968822421002899949646207654863416666706098155031436469208237789342209520298569097670726581495379291740184213560246592505265540712630039018263843989113096300624121564252402123567692582774886397547554169551730750503040498851329615771356363144308163281190292556681107221939666219653100438550228529063983834660630816645435677395799141821369907232922417666115566183439802449722017094312623563065715642867368338711478363320708671435674047487455198468593057221260721618713090607959152282717709977793452417438087680628464429648261877691929375518983475724951565610235375287509866751053399880326420340547546658308458953351541120619504902223276875914521602741765907685860170017368321454873755152123998216910634502221694657047928727828804948905688249477589861723134028438140976875690046190298907558513543401542980321197926298495602729664299041597715080227240725044318520432269677176182234662701055831862742790654395594199285895433375471349514125568903922908899280794556602095000119270389863564588109476164262089285059089380817088744500203834569747631024198818958358319192195760114454272964350055013820919823848467474083949146902889456263939421296086401853616647484172369589367629851609665409658116164460992392700707862247071918187847926538371102114400820517557840763648425321513966235324402811852304442723331421532275200384699095620928065225628308697553861889544001372355242862730859136046139608120421585604604362541936263019231776655814245795315900876191875367404281954691797866567832451755015148101224512042817262012409335443047152609678592319002234715940223714215215918302640026233038711834566206036086054255869261846711350584211847441123576444829844223751830338098156438610489798492555988574260876001059970687322694491804211618924684552554659063166509279244083321797232416886092330858942855481347492514320821230425621080380654648222551771642738179842577434123597027907760525349853890804004953717656706071372187029960458361968093704492581629134935151814544189685362117283836605969045278735764493188808802156088824561520838243070924279814829591448115040935892994933447576197869966191126743151531118419658457092239422027690649764807946905836271068174133782363260449902085404024800210321339679626897303109992407841622687685519942593794162711111858813905275430387028155616619564301218635390545244606348093811477269809670352108726536964126782967554384134790144036224309428251494316916111995900200472501420223756244056596912189907263137119032114811797129058953497557130798202806161460984793691899589776255332762247086613811802738854375643482960995752794482132267020491733274732822532946467309076806919966389728289008321403615969564499905975784335901948319904090814195259499816890344990808489701114043759821850332325427546843275150824478412411308500125180524165326492382570212150249821057604858169586664415262379016009206398203609251388336509404829253413380486093877080229331903865306455904237337893141710468900366693546086427215378669833247018798247398400656928147645988994714812708753161236587708054056621616062127656485106747518604120704675872037229721215318772861015013580328804260608725507232165112117799802669345351975535414601995590087627214045654543290098570971961987639338963228169609760012178809732712359403836960487553277514446375895944602941051648852813200593236731043708874861198645956674039301679440949634433167122764441225856524857927117893550668137188155697936727119562764259610436630579475911600645767935889619488802491369293191432991707412632290432651615604299399232136413569989929230465585345115073219443895130980559980622008786522552401020141593186561885960971937018170184228639889429855610828157623266800872015364170266087894367705481244814479610953034662041205386550205593151742995994958974055046748052419267374636086342795446160366622667594444483152257543236796446379648268512626275223730402934803504712945387682435709128539969134633069271632909061854397658698627840270529160604710922515863948889745043109303012919356063658813915833742156561490604375539950414276667161633727122373788234275099189798067809315955408164391766113219006008084335658899002067207816832717893222248777448814303453603572006869167815318260485624507953238562989058451690521455323366280825802782549516195122109895494984659731706817622670479440530200754963087072272271142582718056067667067325490622585153537576012673137804633380886123137028623196604705126718751703048284952090908023773747837635353798380703553144739203704042053973436727033601449639264371678398952350327005673843990537027183605785895185353955906002452727683072771626024894615688531728137003134352813074398405596611370263059381739828233966918453172354681532511897971467495350268463192435713079681433412314201510548632457791946760723765116066814526611111454156725991797568225129479892191452913503494861411421460671843293881832200286077977690862192771082963518077181598651681035493522709713461788831934025810767214519999830391098629359026613196636647176514740348432115119356720828318986770182420215928266966680013295195725509368380954696429252763648317919337193385273160898416806084197958014495680276111450265713556163107512155645375491255319803783302305180858532175897160370003960254884393245204865037753819738034285504458030773524442816398142993665425868110162970791797071529516372096406726278497692310132106205851296355156990909521372302930332414736048779915625695738453767238537798207518434459148215709456641841685166276704130266197804738689663665291717583328458431691690362674758738864274777666987409142553236715304377172850666080601587376399415670973828615219721226641299222962681892390790148562253400157709276832418432708182408392217881163259255790086954864653853602873154926348149057582930520133438251521007283580694270395204475576619745630058383454630734988084809232689067896848990494005752789258886385215091311399109509825322311962682119409264873648795063245002460881812314579591898943704986070446258354499658730567521524080774466041163755904777279476568444214380035981873778472627029051821842171797530644653061762607057935389759562616750931542957338117490626752469724410995589125920965388836195428814533099731693029703031020174646819967912529499510064507229711593694866661728159123946205938660320399038875224558797225130311179721458790335672427277643364080742931709673917108219780981584566900177872520254327836664284685864333454240343245198924153038774617658764312700064887269451701923226857320823155366242144871385862777323926587264064691235231762219049627408273813078698065731647750101602164154341676018265910475885301006701643262892147910816586967172785201127679351464976914665875514079487284188356713081844095365638243715796380789797477802467396004796920851990082442893770390064504606390153240984762917724803588697443859222507251795211847003643260023318493171615982530177506133295330354782084146611212189126957714255332277258709035181593305098029747044693284623603497308287389041886818463800057717581228604168156750641028725894728062828632211463835798302706690304330417824934989734750711388521312191531685870048249733288270378678051826924761909185769803739440005720630859195589125160384652190050057195516772300314625794612410476694682680900798884185701482887814452817655471242270275181719534832692966451854243435226484231516161528896146378534942191022837045061071879022898787204745687234823779240507638876373054279530714095258709216821766354693650338390298871508591587612805123372719518677545724781152375047078427621714698821554771836995737581252352162371435287738216108514209428119128515791080206720223667118683115247967281751963010959469272523030726784228559640612960818203182874756876776023079456314266462102733745994446766187535938647634247714347718932412399394732101472648072777592531412726711776518265550421122745768189084836760846695177030357259325169918757780857621593045902803051456608933355106894460556502049047835506689822973049343105806382056784712185241259289365640764835851782473172994281588986727333279696927539169600569687430369987465842858522497959662026682800394991240720789737455594721939981874966458528108226873538292607799129616364340140664005506594530993783863806315580405590403357271607039388792463506120176187953615161905642551622515076823830751712554995486592160457153357371940207626642301935273018723041289791963307848733112205793154779768332913225436271338845512455124628569704127629878572659199646476772600330470930757583968898848835137739973587770239591550759750072100560332956246925961004022076869058476289249940588181230483628145600985666747546326988584604943226240887497341629517998908016778489725567256384728177695277533798839571275829104113307302688830955347591049410853760463877741180939843901154746004138273702145769236765531726211727496045025777024792904426735166887563633914084263063224063959904282220089356214221360149490819856185626458720162952646538100592761198554956804112054074436973600117170974400082339043174360288797914941575426185518084343316701102371345982445760266970980139170924351121329601690688219407189604568658827095711454539044355343320261784967453700991751621118660626154193098103095347844929201141737152258798871074033963793021832203070066577108979535411153065569401551260048287787980327784957093740352408260195729841185356761633846263150039082231112714182136581967597560833453036161120893473681178259820720999247110005182841414481722660580057241502623747390327538571900059239034704114615274700838353072856978479057451130347443167262004560431211254118324566925060319328161429425366975834940163752829658164723488439858440115277703664558294248857722073996000949516494903697216119607530413961651775332808688283424652057463635088681069929947894758843229202328216208203671989237420249199890131687833786156749601222258432838313930063858351910904295025111935510898170882137474657055383093132141321637823354472580338707448568389193207165527889167070744549637978684291261318902009998402062870030013122804608219516207226670469498170944699294572758896505185143372557043697255428777746763373183470819993758244420290645161097448576221764930903162780413202201107330115755803641327202316358756325783715964804783525790396933789054747111949909003038486882500449598019763226189970056674304116544790326195126113820428233429218188867004603152366602012116409073744055151929480401668439806179524309669300793810097796918052026405692733318913580808494888048278252225393525997011012211562115824640732436972680495364336006905529593044252405460711898890241809299465772135135539807445723586950434206846162660709493618234005725422413995856862453118001386588598452179791640555125868869466943607446850248648530302473869644652997701942430813994908707581566077510471661824992462255940514620871343535076935729345320273347207366924782530863087043467814435223176572949780392626844185140216808999549622183494053019528639580582131277615039404895545785258503715058612658328599131054676177183040972185099962876820788053765922244994053210085291200361958641838746319885947409334784161728900527388446767394744606500970485603818460020086204658270909111332445495784623536394804619713125610626233525560666725146774686383351502950323556637044733549705275893062949261972888457315592907668448464511355030251071758070011500312993819684465640931680736570171339177053886317097437464955911453937846619406334468820860990668965111782353905803770367054827471941780625896139808935996902138523290809611555915538261581528621532453922228668953956042323044331763012444566379333960184635989302706121303823363620351888709551139742368525825378039238536187517546238555344156463245520315023839850159302678125800733694130363217753871336622731185243511090208729039451710611473940985512646427157678590810406257664262919691202589677200577817838401051402800439147464081768044358457791788430203463137380140329538334282215217886950839199400574654168810325909771701775287068736165826118338114814297574128119365455952932730890025990187165502989102048206685283722439580264588231347164952257427969786214773381707153750454842189447241011617098915837317319644890131875941771854094067891265309170895103466848138385801851600920855912162943207662676194728696465298950089001327812423836420145050467318972638200140024670453557417978211556653436985856928466402090686772546464071839742809065065621662311625796429615548924262296417583815637804893085180298981304028241319060861530353435334955101460875191527489002057313861670835027226380209278866934766102079063046798080997286106571069307116219803384401993622639477939436517832889189158892850257242300108432479122288795293290695325275239114925368497270702284546846638372200510578427198041991813082815289060512178789710464578730581847252041556507726884785102724645096657920725642663312205174401936292161913614455423321908495981209863428553962684804502059012668222785387825980125800511313285474383180587070993532204270715578020639445584287618138524979693500955287620707104958488744419707009516583779883093123098378510116075243221093205487525397534379056552623783232479770519268301948033130426450084481732437390269641186146559712949398492901174819873317520783700785086322388454362546938327540885070811474789263522196098010387348042712694351485229799715531081996044739671655307803900197338150312569988718947637861073368268261680266346460208160200711957702758973485109695399639649288448014906389387812579185355853797610692319446387747805893052487467611325323036560127500481033980539965748032587396205866089275516820039262465795957984829986637800864734787786853367942957883977586017643138816865210272216709961277734626165835668047710100305449945654020906167614025476811992915256026090607503552438754089333701358244447911240285831830686677726690312517194039681955613617279430345184822219097962228885540097556512307181805335872980667856763741123180234280120403464203169537110317817524302701957278926418763131452621344346765228487089327282302316493004140453323982684866194857784741150280330289959648346756087490777895107129574238358318923188071169526815369885298156393076810745935384096961195435760980549061170698492243279625821483041710603829493284374140351245245039243897115827029246268644998981520214283496110798973830781841268199906651312409142657448739689973630225965112801605168280856589082318804120843961059859227592890019326286780586713915497648158652180335443250221963810605798282971248827762322110985030369598933406591614849114507950953152663113678646331198046975234293683389809595589389909305582843875790300329794129668492775614623195158088839914528815327521350262026297524725926432489675031375521404123030999555917810798332178852639139513971890473093017552899398902849612155721993149342357000716062292718807795514357867952919448850835443135973233168816502213196745590773709124467080230482467874186879623122641974781032722368108091686322841115408416336777350459169778919007781563928776354960912636935061374017686186783955834198322815072644566823267776873341414366396085269461902675648000686018718669245496274018270817345299337691898532547474181730075156126674692017856051855589518501816007591640594034074961601132904471784300402463072445363015652115228025693561546830171852660260434263967313428069134281010818109041741874332345127561428025062685108865260933800601811175392870364914054110193996232470193983184507457002876050050712777586235869343534702441162544839453508649503956658666147390072026698668714942292596800717835030549077854883284045783919989836329975783765224686959872117106122537866876236622939079390469364453347651542109711158956668600671199663057990533033738888444675432982212968504773219155631890968063080183887452132699197959426151815561631427541825790990734368319308065119981054052649529474542856688974969580831140193967404492025140311611659302471968340930884151607792204733498354276965286456761790116005980131959915685013022426117622317727150637528350303486819758700541877021698291619693782940614222384147217713275029574626240894054938250925138096904245491573423689594472532432468453207323030913632197818113477360253021149415535591806009339577536393975558151787932406450368799306723812891693123275137168310484107973606928332269872423314230365790194966751896136844515740504917522588634638049310509605426623479767702769727983440851374227677222614153609729083175212947015094713380127698120281299207643785969602925878011037655866781244978775882032955694208895609129528655258093319913344297161251095382087583483458062821559601028093432568337724641328891937412781553148420673645005558778263111165375497448613224167055382633997860929719847161166431406249657298654615358301131661221531659436401405938206446882781187938392079669763130737602677233359261148829505034937312172021373218800675994641117058663121139083957577838245975281589085757816271315158652083972172940949679731018411751803261827707588681599419413113868094800445813135167098422100751837890277180339863860576477844669345299531303013433492649560743427574325665106044243460610358343264255708886235462815552409768418416576013274375167391618760099253965076598698874490845623631020773012187310256205778532549365586870957188705071814774936782268971546248888775898635194466298920274908389341008711091452148893398396296648509459770139688256161094493408563547572531457519773770449867281268112453366814377777722273124064579475644460480793240555874541610570523913230204670496796315323318331094472425397249463519629551290542568054499129027028873128440897070013438282838553953458216943087373377173051724425610422643166081467689490576565842791765924898821006137346700289024111554945526907203660208844151726797168074237201704334811991802116206357083867620672854501957520297139175970184046252767479865943365900726726151332028506809702800737497766521633701534998501049140543184843239162052349092299967618468114069512515727120735871009935390082279689857971022427669259131903124028038026421791728040483880856776705218820735781025996838405853670685883769868955315037278608317826835672917763783854713803075073609648766951658159278664667552788017443076495220109539166743926349739388120788392051103406194960776578888078797667075011548113404540926064262617942044887374886497920190839266199440304805878487531493244410121827327178559173623554208286619958942512195922902074963140595731752624547816061863157360973165414550226944410013197505488688800450635029779174502472454784887803915728323016795655268639342318795733366552509910008473239702686714029844213967623911369962749287315813236893130858973277488511248691942788731997179809636087894223797964700543853824292633936821683061086367355485160294170381561827939502234251768000775984624857123440627825019313817793070942029647585216283660111365175637774580395692003042068957495741389258017586522747693962206319568868913908343346865164200792175195621140411352292833093771347752788353618778863811683839379949162024244013028458197697259618996041086936946606629771555651988324877682903160799446244909290713351344210230661813000098970874728198506729966451206393929188416234091620931893038237872076776592310166973492826832782083826442379597610655128246046350872810814487253531214670312642208278930519589420788406078185581374339897957343612416693452764949197495505050021863673101603264837720249606722282460100277137673633251612174642058168337544376526290811947661545185390074501135132603301373650284245202855449820863525220104833614462552119773322928460483505186253425235276106715741038658296440603613020250656367729462394831852399413798037382512186253364411205761110700519580360007214240505726018506418677027525245856700009051263256186121174624241050109219711819852597314570076840318102599517025038095648205207021437422252669777800283031176038937686985815978608940729704804595457951691292942450476597620720278630902776452133189125435202446821533764495685710806493225009525009669482839722502125102455238535290140548067271317598412517961090867947675043202252627725723851271258499144346482963620134806500578973782503955206398341001417766292365566561634652474842925629190152788646792984515701083395068716762404897293230268888193832053854321418493094265151543539087473436441424117138789267201102015428399172240609940019364263077528197834630191304112971226041504337811498699993115442863787940407132030235243884655947189915275171923165828409502625129369698401949772694257101180983800871075493439683632635785927036132100304775761858053424030017911106198328317832414417707364051055878035095168123829408362963204409602904000854381503962271437523746409182585673996373899624150125416735887541296949230787380624632209351743960886322947023951171070545931308447568166690517035831979679550683131252513220992864732145305297543784455696949178115630676289378988160012010304558811674762971524104683987939148949731373132169486054506681778880039505492200370075248664563430005914115866754605063093873912050994387891647737902881844281885765859943457666928434536698725824696599554732576658907040466677808543814254641624468392474670343342518339906989174079551205703464723608178622006712109389191340808121725542303745695506341283884951922199120273990223188314297906573768222260220291259696968426484089052168384141678480587999323839208982220289252470103861849749942393574703320332693239017906580429588812897518688660324145551319435809252370218292698224375920194665438310251869490052274527929972766651222913798952954866995137300433821862605331887565387316175621904785020730015370642807858627129465034281186094435157740573240911038828278877025472838009810934591907299025014854996668136452712977994480466419687507309730535487389044163377306757741487923768836504624421991234997027584411287673893431795782348685115438690128064345210809954682828858691042582429004729663440478370603940131824213276290582358570876715418158785300755231660074841935603555552098941908735660841530906501542134141758349571079822613905087097219125407968222468858961176502428951908823425869188445859116359598113175961035576076849685881279725833772106438722107258673303209958817967184151142705865323070561780077246746617425566347901812364779809127728704415532432297308170516400338576682077221223577174039365745227474006758215039855856445385754504066528194255497790016481285227187681276577598155474812810058421833307264955259376489169655417170262446933309784162968003063892324712355743413264664057352860135489775168326186233330743574970497070838961959882216556877438800601483570868153895009889594594837833375054423637073791866451213331391912233582006368867946493327270474959016579196391591737136242895277389925356959910142304467992867494892257432704283612160126420648339298876366243607752685156811225889049389034513601076441889784722698500009721814985263100300130852067940898204974209310483617846149056469838454225644924547488812909834274233800047621725198650074813967732951216732303980911107516415853665313615089361349212489641259720156517775144460782584294359767975469343974103522485524093994562397554682541990489483605435833276880952809712955381716245192206876404283447606609632582158835709669026457956899488798648885268970912292092644974287826254136546742873815572866102754346001923098748960555744788337319722316674259908727706693938892446804832509384815117039947687125226916436951025409866207776416685035311996529613263334674322552926717093643403757756420290601409238910681329694412041137041286860885168914736592210323092749875114701073327592196664942673615604773285267701566050084331561453947622462588862641999717080984753136668811882403491664684389932184287586944074166266600092252417547469014480638532291516775503057896769478308074224240557358926361048468574997676567573374772080135123271154139398184692829777174442317979795001766878540446075327220426918826980210643977631786796569063984030936111044420366495351454803251529200054395976345839087776174177172113112996543528930694652892793964562772772799711430726033775622719296439748224429917946023362659952026307305660554655619873011062089157654938863965087707381091193503152032386225894729774137639219236088477509109824103567427407243701796515280424164505388611316468359676701502042936463795916244540538667638159499117806822551116253214216041933165371520532245417466140027129072963981484289591367069074434876259214488463074095366679851591503299059939135067978488750613691967004676020210321629254195544613505288012822516513457281440544365551569610166300918731421254470844662740508284840087013955710718780049104224982912961279108441155711434393318021116758374555408001502610205979252015964391413821283836699134475470338533351422436140710531917281745554545521328031198383038810827054417681419938042619648537268466616092580706774079639109532925762089413750115275700157520603670058760425543406733379823953085164585463073803771879950530213018920595889587926706533820151301507260699063680208851132131811324497422599451069216521920844741373347735306786758825971515210210160610497452477935551953830481202537772359949670785349935265964730980239877197842630847329207819005048432376468600734428796486530633491194622937925930220472900219021548332759968642699977367503334745559967221105290200532110423430181821734435676346800342129000724315298990507067781791385262353770067023209248550260275068971725521686641559164639524550779366135043782537617391010589882829269047430174444768819040016582369731189843620785439420466653803353289135421746441730122531176437726670147196605237960625377802318755758561370613209869960259192726977379067874967558289782237183313443198195662851599027583262409651094149218806613777378829973254786239876031005185152769408373344558424876210786942809786908563254743366386082019709127817247736119443738522285787363399089848666075255608157110009051594760106346480799964397001849379460139497693511960620604204162712847286777714426835118690551681338796845500553978421125995777003886359581198845995513997671699461626966188149045337029631080126678464262077232285171491154557924230128904055963386985909613531958523610086461460156938081857757273081020778055210346977690096271612120831641860896792458748989026331724688897971684966984176077176924439288291174837676063494571554681834424754517000943649786962438860002630850936779763401639218377708160413264324863956138192367174287988515715150077366854342696602477377813615465674858520895248254623678870087871267079433651809299117238479677818742943135523047304269672111908475200982314171085406556204660606380286082178769801817822454029993002027254872248606673075040195710844004117250773823336462224097431659056630766085394718682514845129003521380380887076811908300550451516405195395085673051032088779281868376578560533983231063545659133278923192748942316132574581883569655176851868165977934582515303112027529415555836733807013129084291651392739265939029272647050175652914579667268830821793800672291889722784097148422009538318501564681996841349038659747207359299579258371783297789286941186506019082235156874637470740247247066847221627091935067852981053879841231609005262073939039259707961749411188888164979064775146844283809723375621133940271377605751578382658399961616179586264828410344560608510368517440688490874689913182751203809500070838287243236128716711648095096521764768865639399827171349019630032149009153196536450671972764144190582080908878202527739110691911843480413975653374140373054236910778767092836334198803997941086577947156473597988848616524981417019922533496795451423949759898289682048850060927435420802035027868252804785411881975749929148961352113923742866816203551360267610787634851869107303131580028804294359842049079354294039804036478278634973057833843847808448526179310906626476416309877757981002802303499501191379798209363712710861796450796551324480752465130079367335004733092414560905837881471250669628113349164121041639890425077187912713125386278535349017871959449421485799834621981223760194500751382078004714622611121133953666075175169994187548958232290294513814469856666505380771261152789841044074271168898561649649155768050553235696640872772467164095653743111683680415988195164615250889682879592347419487741319138316910934509232252701084462979932366570349770694882676150916774792153377263638243471574975397592647207323593235610369469584609027886594511545191344449619883219202695472101844411941104705618958085946012011280800589399839316685542569804663994847545226572058999887471493054865321214239083600425011274340676962119115743559181031249909953204445657902071557933808978076614924913385890152522596858206293938053260075317968751180219310009741600985828701903807555815276049477769504548262044307465158909673221224777950512641414070479391479839744343725909574531639020013753949034996591336737632458609235734897775153794452054600944216806954438652029106827364030140016317241032902746500804906115758043858112332352160111410192967914736748456704094406046453466380531879764430869444456212552929735052261427636765482649566290338867907625776131080078417285405709826543433568902954317018195604419578197997148080229173288548733943958216112602783004584988554335416379930629170910438313298759084101473941342597623023757743906245518378620113979665628502398746403510104718401796168013811923984144738002752860510916977031244032289614471585816551478857354072108089059638084649252457442158832221041296944172534738931773904167594206830320502334033387346103827760661671324607598289116079965879782346786679621481052995092687458586357850579696582156162397487668302689135610242554923272638157097775244858394933033914755316953823440282020370670546053291700873889484925039571768644054473883786251035033040964716552355756918007175440210779805861769052283219821319761160344869703383873567058243791102295642151315919313218626417097921084089710830293185632511157821794829278610730601717749822230406066077955653855078611753130234822020495038879279813920658169744847346994242370945455773565269709929846016503787041091932009658264907344501398584013084372879927648154402939591967122342126734782762305397107198408877871912594960651206890559051383288943144548755240491622992714854711022829612325573489663118793174210238464334394321308041700162400151974693691269267946808614403817769106110042715291913686570608684174872705663378421345247666479906798076543166880267276907071570730753028742401877219614849147030877148423702259243044589625605499206918306998937660220528604889826181236697967881518774634505194703169914541035910321943523572994821994076711165426144044741884985460239922412107527407169552167223750639616768080290961303908460370971273377632622999838725198546233560237799062976244185937919535997743163888665486068982690285482656585376447894640101707754507692368287434672011926458237783337359837986297083008668532283003877319898296079496939276145549028287193631798381848502850095141966825995988089296326644449533792539162155161495900618251423253150439819056689299238921368004299206754490155474735473884170494756548104239216012016854350825172348886263757744231025652201650999637380376424547505168694741738981302714239976778688171099346326025918059782919073189363748873782145694872278599274210140581583733709597219866324746864251365328794761226988589864347219921351732661956671678154593796535658772505132224924142315138250037719718727432933228057071749779410595857464412247571774289677221905077317494361237624932168405381413370245656141805832993769107073656846303885115134684937528062833802498949032322094242925893097703047318501917563134923243472080757384286884923646915129381566082840084463626654833649538332924597720779635428791468736951074435549126135795000916959909111771264961977923300581784996266038248827453802528809027469264901021621499588654783473219771833767928470595110271967127200406001086254605171374654444143469998793933030223358583001858573830007338819588428429494027829011170389038225327845095893453231326097601308143734421790624891980522415407189799819157883722420740505771429717810491418945348562348157384632334265253503890391765049122721282842953347687797606285089806301008107761747392795167125071543085574606822058245625124721332571023832973330934233991902922129010827562606279190359571730379484161595699622082855518515708688705951182586908241669365831481029056465173419464648590967345880453282927541374514581839239360378592496571345348176182463652962529294435232554409555367012343801944648774226508486711116237679112206922672971148035992096776795724126845997068704798281477235504121108407851494661991274365898961789941231069350551367183568606046042864553648785056041034947342252723075088464324838237283198866947062089619210702840818443917426584704385567310893290630079477561733655213593185095263379052750717202578013636547904417002790565862694931383804647880584917787013760086547422853445243079476598304734334127925001611261601547345293377674504223160304883865206524200159902224200994647072271713672996848174842505280574455128770855310477467410919754667655734702641575965096589263896055716456275788697739374126454480272254034852457085685046148202927791663710294449313535050165262701316602403889146932218166982837876657799124421627833582342051547584103017572038281799865218944318644989845330370607967920950347748555765511241289880166046191785767487395615413290327352978472870710026741436676402997256605147215516792522083793948249621739250175098456897377213589382656297246820763614058021419612235890388290183514963076297391849634372752736974908349680988369306642625672893323134977524869112303857766972651578601666489203524731056832592082122835337213058701125446431209855522465052768281791411113193589512291755141355330388887865117679331143265601676920448560603035891562119590864426176051437436055106696335581395631082022582567542266605038413602905479459461421336960213329575873203706491997547290987259645611501827822638881798445183358954460615527812995408046375979349636960293510695791432096773951962243818256641968521180642339652208360670094849806967264923772106245226367404448231029509958536173573110204839968447878960322176281174906202542097213383924830536913553527884313705144645077587507431385782215345801650273773416027666146131386173979455215453157752653662282595985683193903432518525713589838943877098251419596106285588325496205813986374424876361647471726838751229881581325378459319557866636910042892978527545512342471502208682141174390233522931974148405214759337007728005690152162936293543942935703932236158369124592336888665464733150396411414620344439710662417089665897151838274195062041965280634569977707139833938519012152362346219922436293622116106721165680139532144326229428506061058286421286139083210205228480665639524159978545900636393257358595124278121561211682841139400493418541361323197309528833063307148601745309920421821176095765405812250560812772597384399730145197106154467862077822895418291564479270024467008193493172212081301488053455719619912273039801014309469318255285282633548881156440860215245901617808058729521658581241290538049822839271532277206145328043357136287768176375360258761090144296293744957593081607063894732355880054667691468598827587107787785441602486829450160640203145059293026098004611009082286737353526215057142694553386194069628459990368332734710017446902372712521483741078527562053401086272736290092074414388026212763853496327520816385437910221696914463103283760889268807991202380354493664747594504383701759058991486630320936465970090060281792075485125267701731829088056846173455766129004300820896755985429522033486800583788505065335179207585217767363084545718074967492585084743287604526930189127165618039098016998784455896584494129411782876779418618955480448986347862448601343137613917411274337347184605106131205676638963013280140582616847080771948535322640835478085731124029715698237001651265864810414583040332718455777076782547283894836730578185940940367725081554744743154884641344742179163105677142507803018867886368315386092934135431759784253767848751511436399346449303535122041018872527456158909767783344688124480021604569877634061665626288494098463449183142100089438708866072404306480718163803026951550940405446224102085852690592341782554433410598299490756798013094026816567285800493991665138219356188791810163601080987641229408256059557605852064425891164133240122314420264401740768882092590231128442676826457730786599572592240964097568697254766779717368742393263921168717283225330890632134700643174566480248474578408772548306770327953982384748214568419422603773841844460588598489782535841259784977170280429880786222789376107942504281523991482133254575633636075718292508747930163880598288557860704843247300664809011144794632569365255355359264541652870966079077587938860192474456759435644305928424966273530643964139656983700584927072014506358957052647640993234044484076543679371995367912134080482481002235785402125684289981236023916174911783678411871734012014789015788583003331100683813327187182132334872763969821568539888386661897679379792591314059514732645263525171578189137529611563295387069767731666567373412217060325682523146592213195712866702448119272766420498781362646107933206476661358233221985661529883086220622754107316628842875821064061163129209773524608866208768372527636377286842362111367988385310912486347682908768322637164789445232411123521192752838696041758911421386562035483647319653085034717830085534094186924911790232540206147668473913365031342861891966806991145908119840020400949715718768113542511329180131978878498840755288052448818440880032923333261520437932692768611658861492174611084005240919282068846149257598702381524139437999606301304586660820116721998097677026435496943417745795856319563580221405152198049948200633683639702370171478807111649245521863316270110845464854085045238484977077766654016297641586123488827528238900740787457512214920578667700406083253711840276223136331097083551681823951372085116497294510606030662146583360028625430792703030820854743943834463553154052508871696829065591789315379305251431433769879272689574849763916792834210799793454983617817656077719836854192381169664938804406269269459287326656459521532985260661615401871600630148768080668344288899196566540284589269517088917517011689262578995677704494274381596844748389034824710383031801683101809172365880713568278206757021550049438579901252061690603213658932522810309647344892766879652608273798700010047595415986389704245110075573932974768131480054488055059770306916446731739087070773809448595416050392712566405014503188492215529994431013932918654386017373886240356671757269214891165990604800318162814752642609689521939035951707295279966954563578084767449445457192855249363849480654879577298984125562764220644166208878769908595623316664745612032924537027897061139980333637410767284433326416099242122600072628083799827624693300561346701339171090441583819149810468355513203781376900833340577969385143894226672442037024533874236888266008511399093255553097849440410203931184311155039727837199906128739812707416475741713681289620179878100717627456110963774574687966472410216423780665569925297256406901514444246255868420715121111324629980902670823369217088590003795615596802669098100052404219518455034216335191351881932523245498173046062307297944470194846181570302963834616614108434981281384994872849947114083378518289458003601191860530426213342258323138557938842709574543766690372625949746905939986583643735039876935971561352522833269348545874894557261624568288375250974384717843941280014292345486574240323752021787800706636215439853378720662971351673090021638292261811326912946008065279976874707743812101867672654869522500861374178183243198774226610099779313447093604108710617927866558735182673888801776810502892022565494184010546926694373918078352870613602610196607338709970691892409901535722861999070770431468464495244470560075179489377861209236270026020892264729099779096286087029442957866887425822653847254045952899018737856708778584454233346430082926814450824858779801956364828218049105727149448954256492580515427646355839145174082405947525234843209430572936688638240938253513738065428961774009600405160653582471925068405135234558527064059089750146169551452787464875903324223530671500898438645163606554017715339602045236201768768405601158610709685949743520069518308335510975576752897945514811800490017439961638582554165255402771641515690496456378080030141394804188942435438307846911822413407304888894527068008824138143954920989972967546165868419758781613022276548276191761258811187112638428968277619632570764222696821920245365787115165458150767014249136194586826679498845048402237065201199311719705331696090813261505256887906297792196920625742592314379705859937036501663828726894627231372040258055192019497609706850625278083223080196761664414640722883568787958236568662481849735661375265044645849132501093298036965070051777518316724221043871921756773230359733090492254243201177687630641035076695997239967212139899202816171123514216118208828973184476805126359245820431437597748749303611425189336946284814250646412017071023285434204873778459230526539102572475652473529660419757756109423976000335079227294633047120517122787701225495366538621175029347222640464856071796377937922329747559087411910403572396779916217979502158026465099667436807585229741451629283351404663410793064385671946941628344236464958619016362372286422470387495940836110594137586116449597320647644533810528156542737060135339141126267706130081571675692498274747784522612800220479844495437309190756381634128543469439985327071340309760914637096551230483759443128550134555484304682091638104014794345642679425427981959563087471332030970325985849923263496170125216790066252451740119678573530255538074968534582985841323315426945493295895273605260400966965380010949206804155881481570348506310667709696505404869482435568115683425342129727536865241321765248190063911807649613675812869870348885133672465372826718543654709017115996409754069421698570674541390533208902936542166267461846996196703262883727216297106176114101150170722830515479198570718958098513656015615427103632891051931931714167664298245105264861087845829357282241420528612764886376560361885651856318253980981595494235339833182618888067578623660855611379039870486079350174938507937464595616155848622255360595131865797010946076076834720041510879388495601658509205889310248053768158153841197236255283830505722916208855897374824903605169785790454958342605163379290490817128105630488123999729491265458023792405558659020072021986198592730284431354289273290201416046497563012078413914891767929372793161299859517376294470360632916835325749440156395720417954528635719632687304052677978564771338445137424439764523638484783419515589829695029316682131000942374976353931759577782085937526643094752992886465662483586531889432292028334673118881970303279911052070996690245706075429885406068094205794830602353499375875284101137282487105861487231983822911548361503470395432182257309799298136677558714942318939311404366726820975510441455396471431677924313774027034107609660577151816254375247466411831334087657452356366797413479286965919961537932931309981419053483011248968483921803321951845078529550451308035130593647485443462712205325398262868755003389433046910715865070701611694080037181810721137978115621443573899397738398458882247645102050916790221974988256200175833272525472451847828519007416668663236411705487504073422532685107353751066823929592334132544823063533518898064888262304892869580185038440048121199506565397487082759205482168474003282172869636124308984314451363413698059995263498124396803712658152836510369862302323885386298298832152347431690331503735867741627601935224781862856753375292570944464891709593265313345417219213806716709870168886808937354097541690161735260080556676734387901303512548240318966613345175585286544100530617253920463707167922573913142895396606469174495722361019951627295078767608355104483214354999086638734091141813780868904523076903389487399275564624348968118940067788181220092240526211799926863700952981235476828565081850143355902050213165146484298100808238712937702717780690199814544603943703220668512074966009956961936326760021018278640271297631081108443375865613611578227261862249461301099436627091305592939501918196178449353603909530020592962353299356632904510960046265980643122791805330587659785069622989697987429033396775214322648764289514605198521745687111408582963238021967844305497608068618830144940979866481196351759111986499115303306258952353137473139334652944793281103963211022291062868925836651882523058511576299771018538678271578693634969541807055658359615865267253882249202465977226616323205646669047139330361069032712336948452666762013217940597848696929027279053716590544919169454645299306637761562840793059225373647344278301989301816068619125950251540067587858595963035550115192209104991449867226748347172336832926282788846414849891151384275185101945903007866625764148304605822836040695006807401268059669203089833146608938996155842810542276030237916489965770328819011116684479674218254782654633803506429414131039754466263654117444421850529204848221213167983131763741423630847162082776264889932129355321243896097131415733448401363982733473678979631080644049936394997593396876849118794694124402537156460552041258072960563130140413671514681935724348473546121257984652314303370681571504188842317464759194101129687154437545766248600745625560754104191603043040598986451478294486002927852910566559786498582859452557315702783724860394655709579759467942351359323222652108658615478933699720899069047690752159022560979734250493139126547904729578178054599193339446631621316536657448972766779462286649207704874321957771643906246605659423678761100624648010749575872781593246936052307461107664105944366334320688274902332513604249558844874420629310902080377963392986920692080380220409966406772474781518016480582312336048592916746242800727421070838660136780246451394924167021487323713518156985886747998218848936617975073746233323192771425984707208536465665435271209932978196707426092885518724601046784822914689291595933777719891724893928530882531994106177030574176711183372463851966990435092120885560318630528208626419464920966837906179152610526807061784736503595788596808933675616235701491752885129370762913535960518231761703335381764377357530928175685419059554438502652117081901991150119751138563451038518437144417745462696840760071411735917975323363094544472114505912823430395087265720939400572230796302423966401349645864562762970546321467500113360597297260345344442285787003398992802209570326675165555794345357814884823178145690859278880549747073571840512580215569185205521960294480699368169359860476615161692065921473539045121876244128849089847967711586161964557909607160351961490359261220399018047829236605942856947058940156861469025278283168244527284847059661439766145716034851031569363823009474616600528749499740813382248198345856187629210331904900146877191214658053932380315890029880707531824858631734151949384468330348244314040531656269014466614814560999719347920342977992551090140383673459491279731565946485080408667028289767937286672552869167059835158445071307700985272533206675280121080603492132580131261587936635552202568585524716370900889468520436833707271317954008724919536394076903509155763466725374413822441459813838801045845995639400067944137799132694153648686189695316654882389781851310338826040325838586964757082915181229615327013377360249218955852180951344931116087839492077374451515711898606048692326957411156649972277961225631021509284359869000715479216197278146491222795519181185060337987692953965688065767484420039474294646401784393713530599224070881758305616638678977328037492799965317895367022003007124913715655087550261763832040833414046271246104585918544943924847758360178497985404913115437588498063837565344240733198563337684759108726702325937686349463739352316346043368144482591396339263584372682936010496059551886283801278549198850779720543819249434237450534645255662373579104174703470115545323803855620863104739231705698022929200695037936494957050101030029244018763542875470331439713659843870433088909488769951787116801048876853221059839492625019210369272827991525153915084838885328397583533505499231093993455306420429031553826874788519512597914711262191395097173926285283463974857767916778338856498381680866773946548971612638529198367164981580286052102778741817649108023966999252337070555518456495138031762596859498630878957983727257432821662686479410721744769208251105515821852149738715491492586258480943026588987046160131297695414110451765438547017819915068127434788433779149580589847123515403783948746154491249351237485269873182637968530405899547424238116474455276565892242328301235301523327035501250451465624869160625135313022497500770191418669070285770558583708463815607609463535066774826547713679025239217286813431621680421359175083685955651507957299802131312241241734959475589244822324250568933490220254032463459955257583318839916429882906077070678027622203887074078706065219582819381526586068225299640714102344139437052967597092692973279994372470371537110898761815842384764903882205281980196012664574795834383384919365185351941290011958945950152191630662168626148854758227974041576567058537205342797726651635071375656554624426544320653191474695574880496225947345456625982388802890903805464202344047784792337588535306797269450481888794251355258618459231376820640737621039030167803795713846742983793780279921685588814306852942080908521100323881590185186986027674843063861865233725496627374537613488830922438452429051469865767059954581020523932578364958965850656294402941304534816660340294666240263851689851233052634615307114662019581309621785120983256437059565785342458491618208171338321787620017927138052973631709758904194148306626430671105137881488280780851831972634346324848344641781581776881888496402150804376006026357911716732491473793253338571759630816555564221374070523475625084070860737814817157674884163222889722922232870765097539958755270854791438221814919507269528622137835443229906574677496131635336321576925418008506712101669174655811402651783748993930161788130175642632265075125869187548088785204756636208683527929933699888844304999682529155159817302369913919632268774579168766025629650723423469129397118124166651577856342908156903768513530976850076550687669309984725280451056655446130664928395209409335843444768713543813344693118198022177554961535687155008127809842769319687541884057199236557665844142334183219735055225762027155663268887837948481972849016661684644789516195368806499315097291908494797199284881940820985183118354427025823506519972808862940658279624737045737014352448508578787488805152171540956386268734820385215417138501633343686614792339372206792683150102375496745429642035698473620367141707478042486384308846365419944804226198341488701866047298369462546826614786233348587219998046259025833462051948538420445882097142913646353524208231057451033377970673382556914790954917279965882748995578886278289026818671841492690015618791584933912999400751549755394980907530586382736028477174234694141690589711306873259474712346571908740077104004765306110036255273910961809819496066353593201154570603298158774566717132372279478905038469947516344030866848219641054525865080612621581500769987183583939142506805625470471481326437498305422193295372020518470707340524266374147806914593600754631594444501478958605501679203781552889243298121213936869629105491330758871031407471199387892309349707832647523904132484055855450655707721059381302777223949945545388729295138706017697841204877493430381049906873243205402873039495162444470049805494212054471858117627194970462383320899731546867830088480617706779541382032500849764936213095504838627723001061498615097946253912533575670604699561244015812969696464290155949934205714040653319528570235195126350035973469425715556641056464881057523382453424134313440271922333982096336011877088724969833210418867992317989805778568069593932838391201631534324566607984600605038785023575301761740198826964903746469466963962457356858849468174101696893999721106185907970965421997999324862440822325920901678310329147976453175823289896247070134617009460665674896243874335118955061125266769039336198223660585731621985632906588051617027721177015125599767665874153494939255525120236080415042577842794653821825548020166078475000482760111527028235450233415464841698548987540679344501867601572839449722346215998454817371499690359910791228863800835428434580152903398573646288541864719398599164413903823839127670623851699892156056299872083630637748039821910025305679789328298470452836774892839451881896730087649868490900530401145876041559592448954102638986232746058501799047382189190802940781064590713777122475133645642159722722050343345537985787859030100066299467826710248920331606972124130171407068469764810818270816931113783693249117452754931288579612348716021314403684819747955995116328045939816814793391067196331087988087629904112169209535616591601592597907963042406961091095386004299622096594979262162772792523534993125810835657622420864090751843620442709260635050594254695358698313334241516768272862779247136789762760888371676325503606538841521899163381214060574824635149378720514640572546957704805353090194612221773852340999718614105479908977407173039201194583630760018008912567555819162116400459067293339004284775410430912258810123048873571058959714166121735978106281664087557948994576342104194836840914712521384633477021926963133155658175810999412660729705260434462890973930449047765817399840642333186627323590068164148886323291972836485215235721031954226413917042205926895532268888202084554113261373191158696992766051137129765254227647844677300986943997986995606680844970249264206973948205277679158742123141014521644057130213945570652719190250280644954799945189501119370640213134108333832061472218041073313029122374684009135233913681590980696551661029726560501075886748933767913525906427569860885614924286380078723795265488409065707427620092307612055442418576044064401585934205567238253623038149100654095555660653217623862246254478869951618485038393156494278579257508134290462885235489492065378494100509810522381512276454218452454108852480236578422857482284165547988703006075007373126620880010212980423566431870074032998300751571688972748746750204662331237601426907421124416265472481515498737894753747209224286959998947368379951494161907556101521809615234845128149960529010290140322894454812405039106087530083801025923259567564230908548595603102462828252765496711494151239001748338373269304068025899032210907138198521179519057541908432918927698921434692320159564890793903695749484224370399227343241562801774494849012151315272928066637502370249255890184073285541601360922727030315422209193528421449044564365834617014666537834501445403301111951903011056483845961885908265562747757766282032991464289331986014551899315149187266234810887173102303145628929232671327827013316435115390381524566638214270293902363754814310029661349391430947902507768957869744604573445196295640420924047321916037949703199736675499622081297836922066220040472210174862353660485652637600276991377681902188682198175842918782271022075022842635927468796033591649820363760068441703154893240919802332089406943801444433864124195277139311685751364684157138815059401806350706912564076311396663416810096402703751409197799631713475458868794745112303812464487696044067248717876735492415554348354101567476439090858115557044391499279624923221543129257717923041796064679520965903131610153187051183696948425259314733987696992227602780429005562966834734433420507240148313698178498592839914946654861137878864035422798990547376865045472954751328363497747533981165896272480977980244719064799409395747563522879911042456597618310763872076718335440356596180144450008720835948691574857225508413369679395493524038027713322982221403661327504772360076398158176409304047718013829870625163601387974617413689946707066291733725566734958264233910008567116887710897788495364248174672908266393954086545167010176866833809049467743258423947222778827206892692310718088387623710008962303281179609963259886526368986106273651116054475214803140433521849534705464258591245030106933322735205495946662267835202933739378964376671190775792706967946968665752267775052152476580815979834127076056205662997200500174020497984309508503327897738706119457639450186452048778611395820191020354738258494550209546035436409531023342228669845385896772649254352002033903308166425827884552437985619124356216509160683462660787001866488505719397064784596498995893976543946248841055507549206910916790793578128418510734991979188804539766379056269922245715312250081149842096633514908752598169464323692695536771013503568045940600387835704750788485452158991053075814943953339116216554686001667306266277946150559848846922102366809961083739847247432210149325581749338200179552437731381268615104113923702056545475479893759474819605740146254630175438947784967817803061087242778446066279102417239751225018578343025337688097499018820624463512801078910733966980945828873942903505369471572332430420711997486100668373159783718877618003417327567664677116137564336251275080498225161761814955776802387628544218891716627347617445166674556825840943290172226214084996046396950478279255498643170991405854553089241435475037013551438752078287265018761967105956100183455213535730881665735346374922639236917201116929225383049610380257336909006291340280594862651741961985324696265052570064950757546445427536613829692108039250345806028749172313808322414842270685634986557273023061725388539915990912989210166188984871014018183322954754970349398217641681030985908401805275913458579599396576677953202992702203906384825331246376791767248928352908487669915529921610314122701648638502524178425462328994881875990722736460227487229173001223859667226776897827054762402902790999050786274931227060002787936634873957078700198707105521398482953749771640206255909912036398947343772880364409662111792149588493764968543963348840763726447196707967954736109342020217409943992627062240776425450445499206095781786886223829761221805933267296126903869128895551927903437887030922503287128003690626888091924327549987213914297986354545640597726272728343961296301438207688155683235401386315396349835709277454101741241637116663710838626304802249642045991222752520287358792699407497429450915961198713943289761715404426248952769098721246074048386433526305689579679693316587816397358977299554273882141948920337742663238904613171499992655070583218008773927009861529011086183100706659490031219281628587954662441302147080916809634081705520746215179348398073469723326626993091643925796026154128300926366640999595901571116540559557317055380410482354613926498740099328107981035285357642313514267565880793329170201402257174437931912967034727175031154413198810159410746940291222126137590581356650479848418458019065240686427841912119724527151465978971419963450785405989853563000054740550231722786108776692336798714299231239519314029726553648771812264723870738424764504968311310944111598183971368258019498347337143996904307386885700671703744730135558241845211226357640450252552127087177466638565190358868596549822238171460755284665883916662739000388086919013951933526938984900509189421358217850008887589835824814545792822877254282456063114611545654133593177454389062326665949947632148595725249177054125612023162119170677234943432640212514942991573129598879299444420378711032319427224114644311072160246060250747513044134476653352853971008401451535317931377821953807188618423468544532011877615696685116182177250414093066173917328228363469450884000169857200500646605009574327214881581211933434959856234851490194490213903198945008732500151093369308008600199935610272383984197044484873208898158686629234754432848901285007093431469789990917157988381257257184357561567915827600186036436238842952437961668955356723292794708344160682541513990358668137468305718796710209273727004202535838088434954886768265646097349220644738357670354886765248948260950797408134867337244752913553335310530339464981247974877498427970252284820683744832087258167699031981833046799831785904450477257481107984575663581104636617185718338014920535201748439076572437630864630277769153208077633888718127740795705275328376928515494733835690529216720944166324259555312761107698424198409386298464877731934247631602629954056854825184424514794371847479904867746489476765285819484111236704378664978640196426651278148346027099217098767231698668285884021452263083992108148705210801000189927654584067273820614551848359187341739354696908321732047202780394419989876751574988201243890216905987133479933465799081186584906567681867731811327409808280820413135473974658036731415856842439286731606324846773057907755592322704416146603493899601837750318755427309479117947389012493936181123294273803050995959088093234099856046189639250361451584859933348683557825307532422700500618098930212681234640685533756756311633474582476665056634214803293450289307532381776299813972836461192674013561317017858525797900070493446282365019351288238425840688530136071651563692644035802969310343064863111045198954497186094674415649507290425861998863790401029203023931965569057209288747546097625054629047093201805128032888814140891809310249939864424794737449343256202141944356789671235407202624009294647800116957671823531994864672376065617771448366441159535687545220181410240276755729006590354547068556190460566737497577711653583890558808592189173681013802249680802802099887861111115061484168424347890008739252902307449307951967468875018738825384630421914070063571736701922735524006969030173998760432608961469391455286036090213208035022735977110877883115845619675844117132107705340717432267638621584176028956345585500030106732988592367024725253414337041787209193290206212171565651174791051495451367804963772831252433856239148157152732074834926400627571005501510119674332103015098475194925074782238432691934514694865135671425638538878570405218624920684541703837304226651156396407136834132719613242701668972920667596260234445964336581917637912144894034352389912777570738333270766034897628877828256515034035784265308420173067247148255325938090644946416625383665114612906582674642561618903996902511835734138938672575831984874422052590206803062637722669097631983810792173196991522720822795640462416005464922000731850074135783257606074945214634811990015870056658646587877875588218323548507535454782515380381193374383158696804897885637722332990977308330161072969155243437288980473688954651226530212788659643676335100566000094509818201509246920789963355750847996699552237452937497732308065188900289381061329289067494511078160420027878681977555164686649999199245922371806122698294465075040976706712683088388452673044615071382929078320138981853138461075469147639483358258700576938018556115467464753440590019439604807193600680007947218921649654571705375217436170715311378770572599854311791971318323256623924024330102916951392668947389664163261481922577134762927719839504012045006456531252118478504157176481319661542954587841217912246328153177302074033805014508891960492881099606374900630863909139755727291570051490937445424180363416086994364212160906663323150597684581731020841729498187622841222224034782188260259032624289777892083372512435335610390188409208851656813852677251173437555065153686854093907328949146170565229751774693070687534984512145737020985520464211016355273887663995325165781853234418971049966229048130068383635937353092852426775987003754127684131941218621725542495071111960875369270101439611227126485575631727887691885409775786423376203902573875939511388414825335683292385976096769462188535471352659741990214496716353768107854881474753629056461454960814265595850716127530349131344920290854070033505266031005919486716257777673167116954027383018792236662535935165641736385149520909331884528127498139859094200364748204172301883064299133007079220797427460929330962338760060769022866482057373547397988617005196557349417835422674490676247168793483010689356354182091907381262166925565101328340037197817915696560835714541533857239694481553909092341966494307434752898929390970321305759899261470805074824296496122665225028592820870330855949509284888541395361029750570654513864703276240013851745529514217173887312849543534540844046236301171457027915023165782897565402222281531600653092743645372351504401003861769398462587120555776255870131362981041095851719451000780259202779857066292505184843976253873442678110492432300928908010138690576588364700578519346834930402360287042171977614474673920664218479744373175950241769224651144186326211907241808836406194860352324229160361587092021497604498142770564884766283195288092297036795819851312469381856530835493907462123457751303819220414634961926261797387708501236526484763766082124993230142017947457952645364687456975584785332998496813426615566602936602115139107202885972374898223345544769370062302521697408616539538045640315831453387747117992790271899691178557834286691298673411961623290632499775198027998522403395520784551032580953016016441299018254876478368938950796473968040614993769104977809429204811373866965925091109013951315859767501237568508368860132077534009806180864437675599166569146566579741044505796924035387869949866557480958232023256531224518748773683177644803791625573490879123819230882442256741107724650828223066345136825251205214790980712261435665983508425144390086071537501921534358742135874100578292593851052931779795885710157988311710927562768026014873316836152822564325100778984726279624651311823188650995836193471800512368603286947664118452514263955786371234881545981033132978276002307332605903465390352761816411839895310830160458683615695001368265402498004242941546349104274437389845962726050877324319609350334627606726049899655091372810626657609629209181536629393793181081797685361829260481941858711629756693884210304250967300417628056505484780650416843754286313419227452569811014653501382586272718666421410418540366097605943165695973349383811295944954111131188037103566038648760966089539185513767254185305334647731833342894139883772317361660916184853652783370159864985433211809890605217985862152766764076029892495099715236301784700760513439885038701931672375856818326967419663105997264149999525858636552132776142967495250361092366913682397681905761311971786925760327458457299302565853809000118789045704863312603571016327851766703913821299236699260791944390558286228447707805819898754918317539903350603625112198793074131759336891941428042408476788109666157539296111766566293979268405381926002340017309054663573247350567169080826981550553521953467727703675963180056412480386416854592095975462998449317145687439678512680052377759273131963909701617412117410618009968774572532690979370699137077975402903444719202370829054476808420887784368174953165620736698441764654534632004411076854994490112938232687375571715886281883378060901393532144630936324035500427315494117892338308360438680982610363962060852801309270747745681959455461771298474322133830093466108540052943957047350463547421184474418444777270799928525492255064450507825498946129539458950168661254090625338821552657111343226206561064325443546616717070198415228732329597246057297131571921576668809876092409547991521342022963701630742589616956423625917865869759284507364822197323286030297242789980410090062976387368358812975612862388792584401104290557687111713570014115423875895183840554487261097682247479389248457976164356592438785299206105484166229691592541145847468048806743843934044871912762440759832084840233688045816892012688413076451436159992386088022586982891671782041025904094618749519627575881852166437629212437647935587102249682159922609911697740673236834571590869056400171987466088923609119141063105327594156136081295030273998809040879042960187664484084574250332202764281133315507028046363132286608774454422318456681214328452106864567614541877910052475517396717918436965043097437947914716563554137643891822522385259045532217516757302585295834259309012763536224667801988020217462483704149446952749997089026830559542465908264131513066287278276254896355455345966277757592583489046399478081606381545458364151409754271148313846417627968733833451831588768785045087419528728722811376437388666342095848982891085892892572941315476952253784074921719492151765109629649420183686164676795293325504541256294326432323931424029204831288713107440986500615236346631534984561058764358007627408835388548999013116248580812108874940210572490331911267783971593630642637611867686086024751586934871836949738930183785834649903614369931639657230753416355217767095302397097076356682721090003995114629430009980089269468266952571743798539751373006837928415307304944381388115922821562014899088627597542375439739284072072506696230520868522932818307037246215317584305669188474656315850606281937287587020556096819657006241369058012274578304162714741300769242500301842959452959615793027688645704339184628102495083666267526978637088051932291974145032635298291574200678714399569614122004845462281538984351439155911087291737418164887511871383447884061913306524976511738819659233681766288391852902232949699253246520902047696797405301769186359914070085219091975432250025448299779470715119608411274624741638068956005385525825795452764945620908999754886653018005645135726025316185539700078684143396569553487177575553574821482236346811738991966406989440836856508750063647525831431630785702761216678933784379434372597243782790536043303911015823965279992738613811575329050499627113812474715904281387194565602712204845312602702053049586287134485780299991109581777113194997392242908373374175709553904649120508857808988498240723687609822736896001500477560400872632389786209676851202726996007122204951859723894775483315485383726598534288967083978938362211053673920220904057867056124473428905180191201374133957295720505325989186847153551069905107229379272570181932358799381812931275438635594481094161352540765475269632813937349213374075761891535317488442881664587753018082510560893445250729191709253234531144515576663791594228927699109920130789700311425558403647230335966503354053874609605431416327704081238415947643957916228033562263020044783440091591539818112276887698100228578558339361594260342070413178343983221639752136188055814688753779678177070624118948461102526978842307857993414340748653793673463788464143077281330817371141745303938173868673857415644971301108141990608824861603546258014889575399955728349127087735053819812377453945998159202003431185428861722986859551174846068130235491462842354688347306071731434913755264038484471901919450409365276751369975463907627779689058601940186467016448650807159616545784363665260966998863849322557973656309823452402228777949543756561804884493077005883905617101470706401145652835214577527219323573963547696726707780745255040255943491474748647999689545849005619884285105040447651848311742679866384865196671843369038118170332024726496755391964986687942451770358043462044691162067006967030431948685573213018220853457012045205891672268620876495518787109554768591735809156427848666520500284663035076522035551681451140413962783677786743191867388637364145229146373057133104569733662093782328123934352009035699854117665134753965666515139533279931393835222398675628500644092760922709823715178223348957021291872039495221461252154563710290878717073320206802855499034673961865066431833342817266623799869657845630916182194837577537552169787195562798416435524951307212834956099140885138106127334415674347512110587181866515096521307433221814289095424197084124599833006876558701411801331419601701975916750084629970340676816322633194414396363927294495024649607200701263567868784841187250981886201718646930636496958346124575079142678178040579089880653571620725957167176294987573576995356240449624087444900125726152375313725809873425668903412001525099112002145273517539390422282394697188973363203403219373246965683064138197433916851075233229948226704657436603296556745285329449967669089580915470658419747802365356413545842556449310298417067571448871537874002988516744148096526811140644539227504607324403866167529082248056294607310231184868981177030008851832136213597963353179333712182738648556993733392045072323497116729645964442220000717658219851468580712003462992651675094094686312199568415573685747409755656250704251416710557728390843409233946166515021894192396325265422016497478709325475752202779084393437030911682764943818907157440638670239687051426125408184811131686659058618646053927587043981001407683364348964589116515573261434440567631475090438934422840313358004091746110001526763956175976572040971886853379697833457389912989364955869662464642048196748414777117565360846253605025859388371641376922242716499614601847270278377404161759778916614608057964085464947997468563240888822230020536642309885425458424776330103217698259855672903716856711927835390025891783428372939855914925052111036618557605136384797088875392706927735881819835364245741739339149174140525500912228361225163928061038088081800427445829524689602741965888283306983013384111814299398645573564248716519838742064392838620138529249093253060730953144834724210805205417253592189887273069984390568230421846788693195773292650301725717402682130939924593878483587199680318806195256083025919944914797081686216974095687713520749155491513477659971482850083106425212567333308473717835477219540461942990801188674583331660258399796890309594107911888071561526736222151043990188973636350039560542440161573919965483072263115603334190153204169455189337461344406961865189108056806784276979614231840202580179499070229283664365442897472102297007718944344677925952078929207646127429905238279611556756916151336452916853687635173597483527068463149226994083342896965007756099407424422718749418319515897639524318284999604322972201127312923437518094376424596354065764998677748028074979935520019178357328719808059077644260316874524989760403676439731186329076028931363326050027789090696571427503246438645833478699431683308270474237297704590133673017694179087153445600124858625088364947397521344052005396566631611210439977888791860201483228804331554426681982007099035960687366423976926048705919075003961356136641657365587416734226376190971494273300503758238887919604985958973632422773953115759578964533808999434268094267187190240379727005809055219585027230852051441948530364747652955040811532925842652447516308407656891480809624790893454797985587610738439600182840987316003442605584315891735235084231550009350992775801168600282150319636238557069690793383045102068515469243422230874420482183345325959661372029058016579244967840058397579671183962021904288002507467916466602297560608717750572486009495117890790578406846798256429151812349737087320852554582862698294021655234448187275123628885112296752987513281041456234229804102898851324538158747612318613657794292595247529059144259815295416353598441117187862730714760414791924407507720733772797664286306170940276813057368985990149197806258246728272530345383200797865797537065467086963644234702391142783889299169381067786394358404834842443528757872840564782122352503987493841338768079248738560120313556533932966999298513683961992356408818004357730079666631026791090271410531420759185993855663246282533545824188241264371636626232596812747816856014601261934914988730137709370203717757421625407569644918996555217246205431630461883625042524238658707122299119064964753555348018603817713065828212450320949797851873891791373222636472643477312936578808935684811077913869982818587478665430139541134572396218916320677644563818196276058569396879455570069156971059867610113608520198034018726635091655018913021043908848952105590152715873164596091717342575769030704516920688283996659926123779157358939413550182326995352031439931853124054156672972624073556061720148610136359833752471939069741172611326154366058488032599917454756972131070497372023095106335257801151548865654484872314810034776988950823492122158812903125230517265830173998158780282024343706004065865028275776419149191518643707286631635446052153308647507321003607855478255387530682068707113764152031203803027687051729942203844954558704564697217680810539269631022449680991977351534069035910008512777980472720722774250745910152486209376480488407550305849296951306898263883067322439639175800159994737257437313188828645165487313680114134583398719464453582403764101640700064514701680944773797570682619860156103114750467573088062471866480462184296136909601199080899417442937522406110217075328570816162256994909082521453758054471519352388177929421612955058738386884207246820211936980721170162713136750514627419549898672948246949183594504391003560978299619199389515593852044540531491693943808295530960960540803266719377247094674826858503735593062956406956566231104475831474849880180138539829176697772960968993837391798749801194412641850363169593435336714927048645384113420195704699088785346391023533090574721440456604480448189598826163219906911654111902585673377536881972370245089406675981781952173156677265241406762417796871960041660990856937582818860852622625155974158113293811755740838841629843263397526167751021773605383164433060896947385946167178852377067397521976295195528743051679273667410118363334949688505202796370578280672107114878220650468268626509449406864067054293759631870952023320492603375505500610473491794923332715577888671493514938077081944368055343962056404486622293448284586726081344691743523444625998945263131696769328472446725927327219097581453582870947980753370335615776147399230110493990310630916318123192084909064142787661887001679463178768669625455997324930467062942715925722225241289749681606453640454097658308789096016940420472580914951861474076732839298114228267947688655171598953312344658054567391087022958585217118723563425783022349867216506628751636964360978931475498787265213276874928474750774229816243849832872879820675146055660050370985055541221027504820391816850335631584273879166053018977063783178138236544801503205609023485776720190963886245649878330147235760427253328669518906396994046823209960908176791710111494714328201197976919234110110857815468980636127669590622968514306178836775009589695519750932426939486050496378836883149568241371268134417797220199438059289211535026112793123135714590092715007126401181311708806572293285216617137858516920282332078368678506041949015350905030238998449774438955845041269285459507117678830784809381068808115192665275792880445860328299370519596135729366678512220794337815189540445868162957625674002803368532149226484441347008650421723896329817164412247322472073073141242170262520311608443927052688066052596381601977479878638441056762502901811293714110902107362430551966949939003855277571708212777957694930727385553584780037138400761979548638934422127093138246227541637299640638376555656072460679229882661323204892224292326997543460319597657321482147704071992490469707472316612610379693618826587372016707714004585270620274505711080401127877538152021864356724045221758121716975716510041113582514933136856175952351674894279105101656144679251698511464311596763280591124249993597891024500183618953287035832986601827436338978188484644513684645939089846906230374154583910794174662238646716183913164862204971172314026408324735816932610347595464424267741612075181148516180940540762596716680244978659184875258002312895994120816601716425512579113479004432202106312095905197244652660784840417051562592173503243854151245022099900361205037923861441557878706963520404587804644434973764875950797198627542854530637713529764387353078227839941756220490181799374414707745788774086325754971289436635768693589304161359221816932590433823128431320035879697682626609838381897967299161567590920627159144211405004495475080458165058958116804291163474826698142362251563637108167527686392210312301774942104968637461055444808623508938461787141021495823106431265499599473518702045087523729360824860379434873384763382339061501926044050830041431151979494161170267522112649428036233412424879122956839030397897445708205271972366042099371825114297943660816004117647196164331442597866934444628051630860156837947525272986803556867524877315988161517844525581305393535979342873802075240462668378581311481698146263622676631833359912991460777042617173495321295113371865438465072249613229913676490999484095926757311225443008608112632247038434768531611020392466768703295079593330337820208347109904362898234048757165576518372608881320718022200563935374767870300379614826085713523787406396769262350968565396089815589730999931333192221596616545307176668925287188949867550704975447939033659026958727149339715758069375688241504633914517714104192437833827701892361955518405337905455938244371963966277977634680847202597600404381306766612076456331739215220333609898797182913260902543080112447088155949415809533222402711766306047746637840753934771656376696141786999239438937395507231595211812256733620598501396923021464769408085605217619110342030964585111621477358404844229520838094108590288948150903314115279222014348931562529191793968704264301468156866101827503264409664600231535002715703938654920998584825772202243514787264807987761878480022583417188139594929188315179706044966169157902800298159807418876519303252726165219725048391622652363018090907637245621552906400601727289900394852272426182885851944987030946887744531371365610398067282819247710494590590704475990749210162981095890634956065988065016999594866373312523533027585163578217486251584183835202244839975935724427908542492140251006473459578125444813231443556300271433007055812447430770114394529091015721959726734759431145667293527740013087897755418213115901834798474515597487745526720299936622031049968731398933853512261806595012689628862874971706242321431713205020987137086582782231781579967119673048847198580828509756554529299631935903191599912502628986121173246197538250508268253959674535839432168287136262361032980556339706507370019281763950814279430301866064305925547560932030665395904235308443601267677634654882355894193517006607835243963955698627506386808869826216247889972013921371138534178637082610346091007184913454714950004578905811296651309417031097949403357610087030953002555780143074694396471439548467338393219482292626396851473403072757035315282310155181537809958403808674191438588119273790354593952211341207167795336029678394163812159393744578301572528652566347376776828584971060529382037448012956272624809353506223012997996180594334591672447719210727087429225617393614701953710588604741073803234019439415339131377971085563118833922462929923814287963831482919563758748313333536464059232398384191060279007392727150950252281839449617232130187953721776879012755418424045346833060388350648489877244477738354836738678079005282041285057806709803799255274636457430355130254873219512359480594147271968260454093120802313890758070201694566829270335031396085309032111853832188619464012663461100824669248527720881571057795703705949726870328917094756145335374758232146218588749929364682976356119454271215894292138533861612657728287991257750748076231372105342729613261782625452096129099249148971912517460716996229286933154023532651570916478296554630276711041191092492076843395496234132930478448328121919739493811106852659366914742412583794049227907658820553814103831144767590212269865389275171067160263791941093620961665892204702173054710820682827243813891504173181967168480358047957464590280528837218414237131259872993706956637391405214975598716501910113877363078792787316984163115282043810571181239767509634617622267277806019603693670217584114874080768831659601750586961847071753323966359008689973908935469440123973698187037021058897242447047366024992567877750656566063912066797391528557975916775822003105088001075408640389316181312775588252547829117101323616511791764510693127397683586612473489269580571413779517337154050826927229550684024546213522459723843847918651852906305170657333997148473793698311806049896543932445758181229603822269376420610924607877207167721848352475512184909457210138585969320144684490974149543650356784599740969771698809527754034587570029378293863670448268280313335666881050288810124618865018627700766777956732214980415434523793405133699713231540296555093918319895424989659668100036560676776341619263103655704483114940865068802374208469667923197372405969185002923537468196709246058903141430052399764116434728224313720544633592064243017030644801812255189294108340358412828768936071151748571905839013373538140300641149803106102859138175467557124213058788177012213943250857900371110637049651290852707161461538867883070991757112157437637384037506489983999340527939542737553531514062165300936738123904555463072738426183216284086352911234771616324744657144267325932430424431038176715157438270442586913028885627495055688317015200833682389341904914153352444010530505607952932368552295569706847495241061439957840926792786115501689283268641412767929564529676366464814149125827538999445795208249715069770776643266095389838615512719028490260390238684010103266137789528550269521049152904384197224747608432530555851131747589603408406976221885086664309040688075832489454491450885167929856377622303815089848885697228562316981537774750226055564089902784217111928410963117346478892134749423958668276397527924448246819082070524993728734064734358831187224821666922640479222074972759166708204229413440344068688641229783567109768984561979863617737535554313997122429323254676920451333367634581951890785039644750219201712742528040484733502452774048832562960421274327786475731542255784561618804971247811029335960701239071255658886466303025568763372777480930017586758537433125875785018826236955608478261970620555276940920744171213233102509099020427340643051414041952109066011731842885786021978967120222245408780201730163958982920685211024491856325576493374921253193932053441094046754170314218293639454820128166663395727013916869189009972874528827004519516673275261601292912901293654152665981817641815478587665979431135322980799138423091319318441765046634121474285985386250739922591686367106173703552606579861417822279143428703202642529428636390950571335248383612260590941951532828119341422295693425007021169590178765042302336916964936831418138106868341500102574105051876521044319441015700755586617390390294695370764869312854980407512223438939289125519482283914774782260998861579041490420257086973014778533342141187248716235424185116085356664039698692259078312647918212699198715895124630677466450826024923505004830955067019543915451999022430241685579796080675159716892733116496857248866976050998454575084141702261756231269287465623530838986321933828098923594101227470913363721640711560555826439553120258251762610088195317230585248307445657893228369583086847868189024776586411372215830536515349656515294900984166373403828505126744684842885797977817611834099673293028757736905756126414094559789084796247894627711828685746956421251621271848817719929827118317333719422075097332166129964415099654139982321112943327462919980533029624394168362254576493317492322676948895521482693849403242800155634191095803020819980851283496998393606017924503133401565174455163931575965865733857242399475638410651775398244510920752784760557627323944362173119435181739268529148127020129708964488347011838618322077902515000042535864155804583422498475341544155549093950817449420708208566297046070558863904879989319509929578035827860994837861451977081980249751727705649524633919636516014917806609567706891340813501967723831500071835155183071400454947239663874514749429056785789219628194789317259706891899816689126942650476657874978552714525801485803974530892608250162569327033828204116808367842878671732865221268208613620020701008632161815513639452227431743474034964406372477027894432298329710018185680586912103873428222708347593876902785339081239021885574377991744543437231763253171189246450435924786446356422045656311771990102220300340596636011327402836984118385402008385288214484220650195398696066907707892071248062891505951859781742750590525827980706920570460350681721893938400812949310135235202848782212532819439298199130206103778220805701429639444537996170772296146584331695238877070604397694029361679134670264352956475594917009509574130213180164528142157064961174386348588143955943576800966581185208516625217564691087541259819750291875691806489806188728867815301222743582248082647409695225728343714885389391008558485858753657682375489362291070608250986781073767579855009901287978913004581974189854336985559152346756477605385432775826071190511512979143492290492626042636192574445864875317794926000395497195629934937285302751972749551223997379359255347132304833391735886921240817225551790358942490567226581529293505237613659958314439083943746758422092927741815983027141761632650818418978397890855895433151957626338875059394750987427975763147508702280905589371008789617042777175719922017858323319695096873451959182316904038250759377222770533634673570326681843847722402496650598385712936390323259851765383316847652325924905309405859855997105345993557987764340251334773530306006706321878186959370809604250827668049715325119188512750239078841720130263469405320701665521687458159925362941171487673114414145240865862700748337204265412339771366459067492568125294545976926067974418822384631793498198390968300626254639134776985522620658274327896413872446646216616459594844062359328003385306152930256319615162479020474977953915779280725580953766789243648486360363101825034815787698894887034625583228549301246085114730965909037395665382713205423566453286815076510347078050521126442085044255006213117485088480245842679537742100397945008973411596472864485816492251279772319779140932060813257194333564323738751123085628642010513601711791099399504020744618586908747660835765529723825086722147574469838832494883744493857219735163314140533415726182738101994506627034124020157852776771613854302917597648536122476445543742268837957994657613165781459253776663590963752844269514037931423321938084746052874624171692445842682049639975571664377576806702785701402664756744504284743936376806361045064801273333358588869477881076801751951494810695622573872769504196877360041689583216753395301941864032649359899542188032988189547550891668403660306826671708766891778812526077248353530598749843873489489109504998938471019371265073932645969164448957381037785096802248570227098989048437995020645352001641392557033433266826946184559472024847962109482207540711390111213440477704347070856023026960539309533469725813500011353271251921595989486639502512402193355770395734874589491046446960130002057241758785254348760418017493954415785462084351206929021145797995548753649130793360159918990481154087635280737870104757492406645905915973072520183895271343849389091920446464441365466949449510508016448581414756879622563472086763628520677225838980764065157158186440897614724859362408702903638055341002331596724594625056373796054589583642243464095433616053531142444960530814582100150643049048707869215214733484029517666250300876103906258351703234090584585552414478281450244326752637035762380079418025989685270608318944991624459438645039615632525743689695743229376744496540441548852562653769356892980176103686801012341185435685131269427897764153052195940857920533970695844000345420951900073083106141423384005938425552985917861735191285206432346893661013280108921906620063500444242872688004009429744919934057833550887544500226191747362718985817611111208466070703140857190547102553554249936269834529262681389681671606221007126616524496064247405367230349752022177300483895036990310543304627117989474630949158234198602536697657875518482429163507732530214734238641938236525260886362479864233530913959013358635255818975108023443312079502032541343072465763513589928167456534335779887398479539002687361273767076359395332933162837079799033233508085537830286676382070207446295364424582772646493757604643933105719539960558792621537886320446161596180032228241708204705420581930410687043827587373565220602004070751877397230564411805335078784584024729215452245188878467931566229098012953073232285281839766668495433329220494638339983288281334432014920363086250992446290132508668520500971688990918217081559139677800601603192337739325966093980229135030227847234357672973450753468558202670500180116841415944387431808504172525128107553235885760284658339546771166181812261359181539771680017850601542711415734813275031797820809789369550911702132325053778745380786813073346923329218329640146840871748010835747862647564571122237820976856946664007724871170639498481703387674076970691158928768581863857024107426871049776218486919756419870912373900229786292661740010802526498605260916672179838791974068246102297729310782445065127758006220765242051251903268977637423709959975765268923293521912749767447484595402306636817967480156535054399644475515358793790962317433191101447254414817785820298769493442567043761751648965796924624315625795454566192955923597744038621005919244216319439508124348553961265274670664627371357061252904067517832817060565011581171678962574170331827421171813142997454779008181833134281823762064907620910144434815644943758084330829684614032282212340532376833699497005655834327835005174497564135356523014903754164095495032294939124790043535318601432312419631260047231381569732011878393361361877836989169640659483004537252076957593310487466270274039853886942882182765787759899745227001569007303816851274325744798543381185451092642184983862595567456078067212981059120114409201669191317424536354654756500814300929073310325374910403402807064227546440319589699117050367314043265643322315209397472289482924060016663723952734285907519787730929231603741394423719267370358628770552425609360958454860234877977388383409687131801831701829600974617548100032787271595717448263696200097955672694728324725003269235749872475266521231657732188527129350678047752811960144009432339380430682839334612507891271951470910475007921301868007461018840328869559993748236225423019177570327588837539991578001815086988561623460851979733931433693819265250756005114013777660083665029884976362564191695934635723350197708178943306196225656639008104963989648883913429759894203691946499925636880664596616662956009191660186605294163664631135519469294589630593853319979343553912365396705939601103703149615760047211913322094189329005456522939469116479471433174640012255866457256849522317006132978406629900762933162179136661837956416612168161035273572328364569296864654951313227807449472280574942734411920176109513560133761383430882148237319412839848044011967982818554650758886033377872572595418725655032230415060786946027797310871546476777552475338948068321199813845160905313292233540475171063595660236774171168620161001334190873949401627903110416053177925417516892133380198564721281709746462323944374064097161709370445780538249841724111742861784127769263970287906073953547493156446823803839622365695020617852509902113112126781977948853341750146574477980062126712476753873979238574261522515826621210182767280556265136657509093793359711943860360516313194792778233163598717383292336327580469285794401153057117581366206924545958551061970512995261711244512302809248918299669340170144435974862590156948251938751764394281817228695313850758286576637331728245535621223217148740598716919653947736593822576485744518979772759134963890881866680396666740087793440974912548398515131056547294590641703557409660198428169756068093858706007437897419629841874311652561401894156284544164572991125134983760728042353916511979965175570489355352434987600394276406366630144427019701775141872152659592079061081046616188092198452339851080091370632766904552584476224773755288567421896681746157209408167748106565282043475802073838253341155556549000719720965393844065810258430989432557490337128249424359063537221311738441518194533705750604787928692261721631635972099671480573435759320237213856045376271706029576061679777909200731876695482203481049514981238021307088713656664053047942943794595490795186558942512017264164428618528010193221505673962319505392430362131864699969341364105663684746853215685773529995422159490240509302846986747743240115087207628077906622137700377418481354115140698063877059653688090193749099098588018436873678550859628725568655441558342014447230500381414243623732336979359925016377679495885119321220584985318883816551608647974519732095043127116207092642051327759290813999805171752069120074705662409486548217369396505783020967363248629112618900991583549884985777658631023061704642923169008239792404847136256078078922541598484104024664359172757352321708208363580750045742251399233163786710876330269195466675159895218148171449025434661112546483295686826394433028092720861007436619185235718447657112088367452258134899788584187411638966914996341619656785277226642060151420507345591464921697851724445870134660103498757736663034521537324452289638957200777085650162442077693885945547618546940470838604674778297076790074218942176001158064432576673577268329598188600067478236744861274234614061554068226039942772891588464675304954243885128945218737775963140065391108935565361644429240800862292302618007517783658736013503917123185975883100455810830782952998322109961204662681079650229936932816610442010205820587337798340337934038794467976046357135897659039377949368032894952413952482328453272571154882227975477218558280087459218336367068353640217926264567663693392041840284886071775454481528677153164573323745497057336708369064511593517938998994980811459160984054235560521914083696623129251718896520603496238769276561573991589562449557720476781297455450739742604611028631167987705886553188253639366063501502570992665079975943152712394914052571766301363198842845850197326970554493094109931956812753592940418336864098550189731502956321666095949417962286484831116666468351407198334145613936479532125967027855451629423467924454710549646805331401663594647025464441818051792699993220486560664963651441277674989399772707979741392269368060764254553907843013764722045427434354247237492053526559154586262621664227425311386819918125037920554573313941922441223245857088834600242187182316993560725036978599509823182246483522328288111996640210846386818758908738394784749764263022274891281561422681057003169163091494315945304769155117017268923840416673955226661499452290857112107484405658243259288306984271973325950972474605582273054556642752180600031740857600151633548023460463225966425792739522201855048015650310365775494488215680588734706287758075827626644181466652234059708720240084910812302252799813770206147963693904720563528036193130581251566048171771541872871438713990529220174357593835616390551994138277996716429835813421973631816250684636309027437645421031324784966419387998273370640743619508895241466180960019574009378180061759473160090534732261282757384442754524638102620686123571218818213051202084372615232041122062682865063371930481989553394295079462845237958736890681796038926381907074020034392191409973568390983359747031564185523039013447856471974506366471541729684679604605368437353834108748164169838211756396698287594229052992326389123971133047795026018549336867056070904929631371680191883280469905676324457092463791511196309887567256503681472720470555724698537232326533473921131709559945994294232682266793975621555692674542523687907685885191626891208658363568236110156091747989998896269895192872848315865280092433453111877315363179708791284803584801206541525563427063384555855168953814510778347733739733901016109909174174561254986437505853195123023353751097578231534735439509328243865390380076253117078937782170536046472047225265829106361740178848420167143352091303032559882071152281361931756697354047291611243561828417220751170736832594162528267060168130417403412042919224206853315226977422509258049896976732455894852418126252324060915330156404067523533496283035128483423252684333369863866944977786165987631784772583539776806209104614300668941128673012974385372420278255183191569856403415121762998107783190556834161190312687478311737966075469664979543700380789993437114734662251906136806926681734215481973872685069176734964032510661241956570467301150299488005830146333754787793745466127988713197138136042216681158815696216942768628703799598765317678435085439879017056102548866276170684671228056529904823278622173095064926207286468232563115899860763641766920100570393133275978346256820485496055001676790166870533557830154776744829327992459491775197475608167458652740657132826271791326904627527277588326759815992494296781148808265076452797678902407448059039565957905984958878045663329829574710645363194940902527491504099692143410307601089646349786456948150177154636842480608325956950215228818276771356337638930087296715462084719557671650533881810222611333949098363514071225572082354272277033324380851800012171580784534602621064079283718489291214793808133366896576367900445916651491725243646642192652386782500589153798657809152935394971919718729181882891370550188632379847748841058046095107053978032785907717876663842512216349860499854291354776100162841957399363076176368502713903391133946899523232066134001418243625745358717378325758436730463103830343132505665772463745624183666873793322744821228611307106319436656533000774102483963832392163455640363351204686368845806258882904964444756397209658950832081560491847306580236573416637663520143772857123702413970509810819512157719765001124400489777711332451690009896638283693989758312996262376120144127243562597907111845999010790298298003261345079598267419519307568632347913093192288732769495251414098309648633904964446890878487404156461097757797817841806195109556748556501760775830463033179692443862311469195274111299969488523404321789007570652927894315272711694334937181022094008558648533623180850283566954999143305955887143104189104437613438036726228283911154008552860952406077556844723446619306000451045266122156727646831427717614501282257078478452950320297754370876399108415541377099751181287805392506725804234713922637376056167850086924323875135224664166549041295131860086307913696807773535304771840139943285070419256417113005996228976446721133743450353823584437269640638637369244536688574556210468162530153976112956100704212152068416187056753493175140025977403102263792378357616252320903138856183608460187906398378846579405954164108023461909191328466003213994567132840949780246298842917860306016688049240819728497615610955716069064401333121365611046093796739388918825241254456770809340875428835952082283339630820672147193985772865694361141223325642082553242093625446338161391026332564483589590476356304750328504756267487038653152310732335343387751703026691557952079562504042042249672451391665529764137884695265876931852880858976986272382428238714444021717342335481676992706955493889673387103156517812153226508529270195250114055155659759200832397572041259748509126516707425835231862895572857439358808971848759320140255681833147346234402401135080765665683696885374739783730859961233836329050859930405348533244965319432580063175450226740338093146607535718314201237582503910453946268908842800237109175828334845727607400746470521055853129516185947240931595623777545829457540290761774464277317245244815881370749150297939332577668833469236506952879095826923413045558491665852420942219240409095377737460030693889401730654694837443109231842234382333824977798496324075168236013876130729246465578341342489916648516730198209600375413406212649988418674080982711503694007957566515615565490671961665324648099828521264836051311661781700451052108317119943923259431551839994703705174111423902593403107858218050585675623181423015168484112265528951951093671627903598685776213111810889444504166098159239336065064945786939150398571754248514292191286042199364199446276254045144559590633265948665375235108613792935204409527585857655976818316477248977127531503696027579727006867212022146022386628099348972564177709422448950475633611534543032793340910620719646903513806291531835255836362102343020149805190969473677964395245191820542660494556470748335448775459910488070468294397038035855022998398871916528509348114349165679817216474023251146527738173285757204458679234687231885457904324803807523755489288035896123316616477148959393074151995900916828680825985955110722765768503159082280571767281512552244676456041878611992850282475266695219119491351381346142463703908492988627624394609568011731365393657266869692162837031906837247570087904542384805673893596392869662356402778671863092566940130681355734643604840117361380638500246455775267330318652176765723212362358794860425077834194872660015736934607265315731824145202866853716821718972360231873893269554216244137660437603671344098789961929859148990325138444083816080711669429927685507186715935833316492620647796443035096445669398389650000068758639973816348220873928805522222263632717191829342904355251300726344781732691263786897859457602424149326802566715548486147820544817803881603915927961981136306060884318446002756313907107310000639597437173519063258485922938834284851875458840777117219897896707867668691151900171418382295314834990763959664246286602354721015481064092142012708154255407425473005514486075967832731607951689512115572793107792238394368725414405095344704181158483612902950725766602581946753949455024854433042007380955759213971049806594549416537944967655076420343254814961475573576493193324222498685521491769522362766909246595390460928712916135888795215164838399722958652472256240724539354222827067458557628982294107089819523769130507927210024685589476449802518057049476193849825237806495241616930200451796175524878631050076789387561277075307694132838339109878276400932800281653314308329803003723801973483344079099984098936876699710327435231262393453128125432396089968619291810393922420407949407618588335299646970414834486115981109642062033480968522703196943064482805218989571780232447782060611104763499991840844987823490811210022307870963067494098624806976719253303930484255530241771225577053121750894275863045654083704717578178742012866541109104408093586075080463089630368928129465947968803214729520666567796775484318096869030932828986993466107353778646939519673114431124005705001506198789882867214935933664970798051877453679047372823633921227253530286501616272063034687801102179981679692693392880209158375132002233002445441722311431805438325748478605198110760456136838702214234322477116671249722338282918004637861473235552588496481416325162097937861619531356684434315357508347258402100639157893378664834035413251333969004597072550964912615759213955403519596837513338627791697220646417979824229055959162663765684636224707068731916120415994961537120315647671225508832364966569837702938657609523247219981551184490110912789872467532185488248022668582661535829733546210975753595771566814410799024665577635502818791102860108304545146671961161046333999050340470641569001059049411605944979274034314208027432638929650964271253288915642847341288079176892570440301330319741891372360079790340525806940020777811170947590126303975658425702116324747303150643600085888631703243672121047017444271034261945836933889836218504056396429703738210539438277620109469774074931982359668869347901815453133204342157265579586447341233596369131939105519328588697026355072748948910243844292273458189516038346537071367794097931764644940722132956854777940105146548154544238742465644541614842055931028548528875860271673096777284928648858310768800293245839352804851410165362875465959166545016871057726288570770292910519465401464653972860621946451960695645536060620986068175472299461279281687721660332592130015562894962049112520295243552279789749685449434818930359710148068283011980088213693210740756279340930999036313919860274918792581622453338511466115485054705835552620406633042627551423844110225656853789939129280091032736305569464597735333928277690087785691826781713475582908405251825486850370883003916736058307503481525599066220914627186676685337857716870880536574584387402602779848504545739321170098469258696798186730733371718495593507269073255726984508080807691726406769566306637066546213555833288791189580718406974389045793207523190733357059653780545761152628388818189123278330599842507188211514125695120314116061602965747058572232392396621922290914301823109924562722801588708276832986303677297938980931176452150001977123420169355367315539033118224317609154503471469823918539119283688967886556687499035220677516772039956449448509410179731753450016380929117826941117985625204071841436194247877252754684649541517925541350971178073920457652367072776109246105068250547948017594592513913876521156889501726995887015094892376205582546192178400238190678651898063434363111027289991606174415181502964363815341891360473180926801969990269001812093182704716962268286022574444656779594910483806026946093573966373888558124281640499210559955212853698516291285791717193074936637702551669871524925704131455620380854699342392421871949949799345043739984882585003983244392012281182663399252841077697480028948268404159654178827822825673959516185294833490390636087566749016504189885601951374850098596755240261161638658538014162603044293773741676821286044301129885725239288821015185533906109265917925857641200894573469264528509291942092408696468067643890916634162109706397045997314996661063477426227050234746449385034178403232966522872908037093462224393247544983627130037933731650981651309017269343192779896609434160574665946953012880512479744737972162582535620430175973023960718163768644905102977835479229688710932956944326876439279238849792134561336993522453586889061314845258811535161384516961089906039803524558967744602696074039398419703506740976688146503100999945418979674681252300222561544271589237343024566811039531113618821036435149573224899899780462032144038813252192256964931950348844638088490207646839432646932311750182676960917883233096860496025658017123352947297060666708736281468534963394340391179062306159782796423559466346924316069481435497016865344597132656500914947709612467799176522395715844833926011691295373304038454635613782863938798890247800066603890415983819952873292564394748008073451738048632043750942300666708282800253718349393495203191707847751777447230952922278956838663324726380177431450817134841904908298640061618346026065617862615314860631562395026154405334220200789708653938388650686626547774805986563043885244472106324064594839018401380860039051692840050395857788757758047090645566110995701225956715168014151216144322968408797983135239250213038617582571521354274960073429125318455274980809694016996775911998274216818985956547386020079908715853768973374811087164581815414737526503553709411305111580225196805842149935812645585473626796932002398052611068974945323590200162312185886396798766644233505518869686285600420622411626009830763281972617985130146435693989959721769582851997843633206984331389663584407520391954280321067047770898618610165418976752643075020850432433821179148536429125241599910223337405480921905202675786440700526475246121895700055418838385237012256097583659229004935684618727191878316142882687667123023571944373877119403246229835948080712927827762472945312462677731492224781683544627141599055180693449280108715055515715043208031865222614326127089940933789466515589089430277454680968362900093614283651371557642907294877630078260334222036148877000937922820135393235187576474168059482648561088160228772989324751849649677035019436555896048086108987826907310175947515444498919086593233433732705783392098732852814490809328488686970243837432506787266464554196153592272721579016052440686371353091849376646496568038532064008263724035901469930408428213949971717357120268104076589081524037243246976860580101802860570745849028865676577456840576814948980837095824197599060398105244022767380405881357101754557096035707946327861182070536012145833760759571297070678195525581866759107205762800818910205407565831580247933134487519247878265110449795462401885516102807187326554728091144129918771066246560813772735017392361581619725990482885390067496600734197253079926736573801357260493087827928884700732530945222832986435628649154401424133636225903911359987642877752871002148841499776816243463231842552195847703647092031200873793485117304189783971385948411692547332407669568163076012600917529269681844450579698521933589464900742070499684984983835455933856604875309776515505034915163092735528613832283101424958203509025114873799094239362619509444866441380765643358974436544145654461156444958471818089608383285176873341549005783128773423944051288461816361676555251754504808200435230022305214475641385394851437582164124196973479132545890143165260844756197148346182048843333298234585612901035237975903469063775805934832306335264062412453168850299467047698695801178928802915197164156249876397349404801101032091683423067406324345242945076693920633295550807096428100726093193766445624532001088871444998937673741993352580884969116347084096761871499013095047167927411033174569985464150824963855774742435429457609700659643247153229605067367086102284802252783998255937653904725726784689475862159404047575564967919537972403285340257485616560694961442210410846270401312392445425909483242085036717589061482429355508054567554561757343405854784694318104841040747329265862154409691978176894714217363802136290085290119976189141741214523411202187473888256477295776108370798983018210336537982912416530872238013581848459642013054657689292150517407135304811934033486547170109679545767904213645504753432893815999523072873773932375399302672237863463709570412795461431371960841296252340979634776881126152829007041812546785923467639734970167042954230712794948854013787748035927738904190051812808797775828170378021895039773743085837166932494836351181142377250466495039713761864907278783006335497358369972931964045893324351231991104820725104202608358782737682576843328028867367880930394093595440349993383524423575046714752229098962309842440792916324911987588370301110510437309446334651325476817009666735170445590934522896194308342425269448501881299016084827044147447220656275767511948292839817309379129679321252536462555729518051029303584128027086143554294125590496811140042474488306769063647548324669447499129799122939970278234634653223715846277772863134185912652811875457836249169913630557812027398198502417140472260629682926365743641162390414387517911077397084023861092011780774517091945187171626697773205186539929645147615452252985063559000705395966434384102675437498139678409542836286968095573421925455785191239342906501797369683147808227830636483930602346481961749762682203537516932466520785585472446181473844996245057850071576837849723404086361449565615090465575661529934250217904024154876946755510052112490844057416246853286006382298833020944059721298099858403240661722689657765184178435401678891973192393928684507795152919556005077589740737175895667052460543374476965997054423225610538372783449418842767357389972131698684546573023039174767622275957918874112565638081457342422358449694831324826577755438988324350608359842556953714163675330398430849320389341703983948640632289499616368285073493549285455286968005025463754117546028970309317704484500223307444583835855604680316437017609123418660618891080466342542497766049905138278233191657722229396861131772350645261562861107909042974212296798048581509802814380589603715149857967266554562202069602694598259936333564922697123914156329755563787553840999054121479332429328774703104111179910817803462250850679232591923160243622631193480475706841101360355295446653224401321300437747009891070893911060593189282939543799048381491501367189804667006185892866902956807679701260318965381719452062598264417517897214051643115590258678805202111690466590752094850574662571625567743461022025322752758385879253776381204207627496738956480402489891807429366176864335393054642627740432839666348292784646090016007969187785749443546095326988655611180779203463168105512939713104836828051654074790862063823441949966325830416049378565222673660202150846780048601086074291604131131593085159489178994668840216238535749649251657807285111230623476676671700622214885149529324938246198982515685512541022202249869960405581729299526919000108015349846441375516486779057440580226537357971469374740045639729368507645758940224602901264972904456318504086510672938377746420433360494187989719881873559451208405245353893313555745540018772819566714420220889492271530288241384205210855573450024548280518892853555189464287961615026896372685707019305877548825633237492181155930439256049465448970231763495993858315209542351997702671043953813935975302206500160134962392621620957328070735762212818656136857517636636489753780940614212673576225192681937077473727455249745543646091709680629081621459899838253086508498830595899301383741884228524721283522400524959388963360709170628458950421008671897565072435766941331754769496894519037208512218553283608606327057160071618475130702440584149795376681535160904019040403704991927227083826305679717661269602124240311556505377910157293759395748183164013101401253121551602695916438042878085842893391524055310991280786679232905213447461706461045587660442427628858843417654603002215437149374691078553368067285137969639874121646114909276941346086811657966880517306650209452432433292647866975800150587299921318440889852183779949222589151231223955566196986162561328555504690981885828456119495530153364175301104479325500391623882647711397960715651040012737588757534560627804044517687989549607998126492937499482313275248435604825434590708383459921569925784057601277810612468897022960278856122982163227349148043242899305400500723969534203323337815271902445411696167361505835575853197627011709673578842945649173446730478122792667762441547482676140715652142056320780448525102491393914597617789557436464813688051524823593052688478132808994686992374222380143427805967893604712519181582451020376514029736363444704347812302793907301366588279097537125964764403406524438516473967613735206259551119733844312097875624444032738997450571948831354759842568393688149874232841509197194947314005066377216411390708913638836863271267212694385288575333474677823385089553599248541603741717844869842749133578176606924923542571093459130345747098558365187074537466838972394356064166300445023839505753408618204695934396786011854403085084101324159016948788193260163177621825359561427888752801165946485013119010961940037284365474994866336302617671317841369561616005795091919136604541325296218336874286517538766546326023668794221033619444727118304690638811706911643405625159661935333595561941333848160009355306846043850864574109090954881316601307240565916946049913805786027165723845694328267583168218705363741230318202624309184861119755070881289800216941393695975644028983074420042222430667273939515938991401117761505523790785016070983244352830788548575545930515285314219325091878651020436869545856123221825982598545153146186951123635660162027459058660438641505634076242885735248467631563253431281724237651803779006236265440259673453082056218026203073336607618501125369197288639111878219949246235720065166497726376069362265515465630107640804658376377905065172580304789322521013092372319735325142701139324237975508648845553863148049472244994321808472102257932461124463082164423324485591211120430461292078843513423077064840378609172619572574080266949579829869069857942112810121239824915518971655125087177961382335688283364330002883004600587021026092607687582726423413406348763910503339126664511064732164104177223309096740362685560662661511150159712991915658168423835847651120922046288734476947964206921575878661481546028554674775751026345824449617135632600055513251702850459802567378246153434119391255635039083014522154431121906220966588224981055397739324811887212958627442647136664935203157800393477283653177908190865295553087132372029709716496587696303370470308981623893963938511529497250155565173017954917035000492222193944289097654492252815824817323521780826563626269034208577037965708735995935514819095337740320646490448983761840070059265533944366552533797300477790291320385955221817535934756890242398913829268823495676780884889041125730373848204337460589302202233700668998005350537392068268875941892628877116941025121405408004405521437861484433126223735374702577397506350806532854490702777304118015002645614753635356302952051329075082595025734215304856741821031623690907424674082183765133046305083558690608323237731931154975824159624441240792076285898262274183993123895317805738244089079197690862821075966141848603060259521514519208871068333464584217613599621202428752444441375473075972540886660579021629974749785664227731824422529223720281413937788835130560822585474176750453561946703398904389483891366386365348227258026602941152390425858839933376684152482471794548391850636741664806147929580836902730989831456248268219855813610125662194421623874458364439812692979048111118965584729478019052220646737512931457603632842739758576714851693092705254153601797482427808764031500254767044541613884173243291257925816084744678883648485393837719289527103046578578952054484871835780258889070293056061827047523984767014936216927031891774876062765381915717979159008324316275584496930864673538785155435730419715057543443116728601306495063026747826855079587196192405247785204465429579574625696403082291466396426254024718494869139997711351987948836359720235539966488667310151638615548247188414081192645505202210520886613908420961382851907926777415662413270425285898936415352898999124212799843146341333265409527730925848738358901054178796616015848076353489075563984819781478975806413396850157729332992972101924398397339526019389581284899381312246847254907845517415620083086452020056264976702766932223512373336836955668333152742177140191235297317141725911117616617108513345587351622486622914870922681748587518859297385655403925795554993073500476736829479362669132524263011598012783655771709120393784247716446470507620496132974196265831459054194989178641373167647160424839794308251367998354558762708587908487025970356290708957329810910645859175627922218937963470143492265130389864261959275008864459082221150464085679322387051892675296154842139905830306099354428219374132555430504283456002712904225681367128540215782939439745901080601428496873049491061266490635134503910936441133789799039958262855986991585978495403505374020879015358891276130424144734638875950470018132200436072159460714425767648212943200687218837043845589147964695104289002236236883448971054388271173885688595353397096170162501420123202176351968781560077320983870460808693145591407955121633658662593184435652274511701602608027872897770873216289678176997665423703906060808272074406009111520402446315450657049828882159291719664480035394809939672666161333800123723695662053097124041007453843467174410165991710160550624078797306398832441432235768678315089334485207800029529335805271582412546089765165135562850466248036298708884970284525845383784574437294513539271710556147067229614955269549379250295197680530931524252624413366989850967406352069836560151965550488481791625388674822984916510858968834458294488438362373289035429495374586767871808071574225186496837248632003705856508808529953469402487277570275988496009981461194519176098582451043537909269670632213895158826009725825950976431518555627150527556493301627710918640085450585198090398110545330327022744826081772109076993285953446001314943677247557264575825308653034312736094815864547869417993755663093777318992911657885866946450037377919770663157713501479678404126649836506475643469379993638138206118352332513583344050199612026779801723967260840260592914926157681523414244729533208141913704291531910175306638098788285302957423432467393570897312206097252723667247856206738451639605985471623190252697495152027915198060491150518749658851257088563455091686352936981715036833048502985477972698209082462204100807140559514829206298609479152509010274840096848047533803681380748813457316623847236169488068478706689176002672465205452054326656451710803576304906337728103670340524019947663563761623359687371292758533867239908684694147388145719785300918746752791397050150706332396920593511327248643624098051547256205905126116146401898614805057391955937205651169214828028707926955445203275948763234750430251180154603027035582410480551478842202237038753231384894847931011067742138894066496866613525757225708116650853534628478393767410111313335859552383725561804283352418087273276874224844490270423110933283158928111948029748157897911413650650237166791302282003448446071220352609603297496435037694173852811686609994783549440871989930784899469602313927832706056490365972652954177431480883762269298117936261160100611286114141367601549392761846093258202621496725968896869613896457435697395770028271355592526805502318091733673054299428514223604376497358787296514634699665527208061160832480536173944771304682665903289711935943669765074459965732287108666992774449685666995432744635657222885349817751360517973136061546241854463724889093654563009324591975006945063039100859563344046020117169777817288608071017478778450792421585340367465350060410561879693844370460156348422016775400359317333789092723581357757944329032046067240569719070248685148311631209061277679382366871029166608313720904661928718144831708525001987667809488462717771101278734010546919687651936001929302100053823381373339948173271989322903989251874479749300944713089180711650204327437331226448440751361490974168309046042787335967291113671939719856476652192378964765428014501874968657952430490699469184197001277794086408947949108528085778338353989480367807510180395740339570843282065818967026563794965028516480759275224722953122808764105090461863028580260331012558825121257598360377346688136998377124526926343248073200373766170997793096453576558419592748942889115047486577226685452812882036794385327601904782497397626007748121331616072585062786404736729521130932166886424380406720637635238676959288654887134805095143987623455360854853522830562243366792865796750704532751376287477988012940880512330966774435895123606562321994016848993433782680295862878529201551987698212552954009949252410053673720435059268717496991700381385792115426298009843569552636357962143971097190557758324270514431465205623031407928887612099434798396286739884594037817091570748017865973492227889369402910830657093794956153563222643881207238961025392669621572858837200544972164813750936691563324048490227927753984941957273895503616105515994664963048689312514930789861359992552244114084301230746993887080121426910989598937099969501157271630971753355834917571397965322881919391961256304821241486395491578479598475668898251616483185189932163410284943276841746618061575762162563161903877630128963723014710317030572867146128383887310810459191329308874898222332352029652766579900867384324058266143072361978459435026253334450762120488191096784226842786656106403011577724969451614663489628859865357986097053022636721251730196136530004586596121582729425214295381138485738043191182357244694019842776728496138046680806474354669503564340915612389137560145404306815210137461748001492227423299068590220321940887298589539056644299978689172157726564452290818406196974655941288395001991893534475268072844296846377727031933695464051273176687659880404065253867465238374063276529614014091006443552797519388511456558402594720293668135681346047252906257739921983756874213554050517020590975155837234089451699288508159611249820113870888922369601061058896427639820711748574852324533961710038495406227022595924432041342172336598308096200264983549292395119640222960772748888518813959227619931871740614811206326183770075450501248258248472457537256774257432589846903337340246827159869145973845957921997768229768430966374394480059966560294456774653526318643616225431773154925376142461281507041790097265820834039904636949068456701515640498926309771725935678524777133159300724221429994552423609324696460711005393898555004711771356470520201068493736600483681482635683309673752879742289099841365252218281090319958788711332569882433028283651901372893695582221917030811890193724299193811866677340248541363120889219806918980931928628613776798475881080002688336709574288911748528332165241685389736854178084110214814059712512501681961039228145339420805451720818037546779931314266514327180816588932110333353598445471750152827687618708280508742981229677225496387939937709807032367523924676064080443662460114219056622488019715308839364236813230023360361223595139055258886950504992373950244553286826527850539639892203395007424521916988004250628660608395639338420953648692879585888648727305278679735005095173907567771028101010281012349777881116331451352671417757158886935606102249622077130257388725161727420289418092220862980003268771208119496907805379896720782178817455666468580215863600482584545905799463770678150207077655634748452877273129736852259775464507452083866170441826838199862538346189594596728884150172970334994157390889268894943543087761490403681700416058182855475247301776710762575713443762332316305262596850003779715444435507090926185838669712308212544820082883502676079936446808001707062167940728631421589643933941880101723139645051712368576275528865146816601740936966146864175995755969066969225389631575310727393378201621778115014030413398788195776565283419117253561034781650233645055535800086625256073789343181269331668079093560094052949287790213869420074957222372237130862977325917774248230801716562279428596357121742370134762309653672647135437380953367816547890671363409730017539891099252426065408073721025226240150114495477337122514713187359975582111732449240324504240267087925243955620815671570752290116724551021274015286768168738841518076465175891588308968322294823555527324963007775900773326777238400428721986218393716558131281272122850062592812626823167307132741894049971769202040057689887043217996263286358858798466948858917140409485391484325593893088916082393727826107502663094785250453180427386082849296993588967738668968724676482443137601566474088630921561376564777071646030268126897042050322787001328700146572078386492100583817037203208974939454642478175345601431023514848341936916672247594154312659629905181071633847445252161275576587317841622225321197430448223245215272260479740125594498987013584109442001455680314828269932432945209544807983503335323232348421671667191787567144349489131130869366219583884815140504462491229003296586038805303655311895412287658040778266572575779886060681312454485547641435022461533682475152171704336113241616534682948116717396740111668854850226448943228910971676688659102148678719540550071330533899078619340693535172210564802813803761029036483429135394926050029914324439684690831306782990960301225911593814885532260350160685593469664837738126640614299232158985275556570419687996145830649729188686443241498021007073585379579533612917162745362559195169301929540111408734408870378337689297380089373499596923694528449998489305803872771003848924637336118938659286976062895193918036299917602779887420188205126017769440167332739163769162712482097487977199320699262473777583283748023981773882810602147437039733606081352634560693702331376428076443917287577314370603221544708096049064832453411378528674446114970738997680027746529693155620502502411872376853105112215038271809580093078908547413421302004202155242665113077029258054889491064132782393608480548296144212287336526529042817134788685057365878967459483651955831713311907486806607481548854075729112461848272997880821842063487049306578583663518778245506264141305877913348161938971675799319295239283110652838847423188753954887686668523816677912508025007272598778207642079399739102473307492742960449147933015158151617181503470269274912114096630184979998001640702449134773925443268964936655777624846838453527924656721281732501400382861370836597916523279923612729438420045033682557554899022358975779838283341491788261900923235079678439905334408114842979860552215283506966126976921325182224649874947923425270646627722632154666768876511559394394561022643135763030464727790766761989982163634138259939177907764131387810092221997815676459485486432395307322957022952539557291923682720268735892658989438444820458788111211083082221966397967512304729565899342471210761986511648182024654790739218559485465163409650957746158192658320367145595869616548568901600194688821778374816834273093155773086606635324698273124450558408586954178905183916269563952249907767579910611956517130717005382238990809578681200052814401454100317758773446153240141623612340026180523572426415411199852281009699014781717722736162918263279329733889653826962716467563543579360514189324521790348719145356173486367620812073972944144953895257740553703524108922409294288031541753051348198123388999687765447547089328594969832810269245571835073909159602484854808398357340173669193740863183204122226347705322673577374465297493391950618540316437234972501199238752590799227783942344051602375800677879734006106033810386725468857622214293974452045879902598283902057391031853356132565436996847125128020869176750033093928825663679346526194774838622262707801009707373059466137661036780447611324653619643353263006511182423343358628468040064319906898137051882108524928234144604150277096709846370348177555369930053260717690404574781793791998399624367422832667973895405092159630402574567337303344990368734011437053340033099848882081714790121394784306004290932803467727895183622655857891780645422391549238999007496723198298416927226670415795697124481368547005240755178813417592667265446212707479853169425767203087189480516725506472152807453351655362796070279061087614136470302427480607497130447937200833003859980388077747254169230390189552637007904594536188868179772318973601701070694951510031178342405278030660285087769253309532383333460427593280366613618123417875524933224719374208292769409694354362582645762750098388907319532977699836013398442954996516022257977333952957092888298753826883079439443427358823914024941590152513350235676403517998543218693194096066364940112569154235017163930017170556580935734387804075899299942821965512856320492236226003196795705686593847282524044563996725348379648716555634795262465189159361716287087647810024031033884092188492068614619206054810681277748431670733682908176049816214733487482665837874173512901714601507992286046461140634972790905023481306417496776878305066648352804779456131433391206368196553842690791113692979937647771960050407452512045642044639974680231677656046111843628277210800123754462094259925282285447984196716707646119825732297548344402915432988780201069461841807890973501709236774594516056935292246552418968514940557866034925213541680393772349593841163557513431080287246631677517909843529354300127889840094565584878548416579594637214326478413355848639870575625147018379548027415364150529376133288826843365873451666320190828125546587689074712976782677427431432561814353554029643743051275881099336655699125812636291757155456658198658809587765138906200957865650958940173218813927441498690400005398830562928971267201860283633437144770652654751267797617637626752238539977496091898276577164948408211098972372596723460380334248534426023921304461980191424602808051543777156827306390359633875337911756726563534401913577959107103224112689589705880367581589092125502484027073159722494678519454646938320583290487304075701765384453348341292216972733768266412065777109784118833722351599585624303383784728596510130284773270337122237307969779426180632693519038368657511127225304461327162791669882128778932182356538649215047262435821319923074264447389175199644265324486192693367881079861571116701393580446984110138664648494290259012910393264926473146319407810516113223951944634510525999894662126839798677328887614816641362313606003299870823771719020885895855146775023266194888301525490283345495353267052478753064467788226431346170822037628431171824780446018135792790448905698498799618911209192842419811588446780662796813467661694918300830134724162476403444886287208310622264793975362346945540996232389977154856702720146576543204738214675467824871428051239908946193277816388931726395041731030590445039303677244192110964873832287261719912778025056271694660304905701436453352193485428211090026369091774736382143017896142369060728422713075349128757326837198737949841391484384530533810744402699499439468138102676987080987902972605054837756093606907899736113148291974482627724421265796192102406018846141699607635469827442859470530079090032331741892651291883648070291918078830352471468130736621261478697033064337486319245221766737969280233211565706822599250455585720148470647102154307960608407447457707930733709322329667941822036007594823946105295924249199447778534663170113969869688454709568797551856007193705710719574293807498400539350455148795006525117801966554529991925638008177246589596863568811499450076387207498905357242253441532588746046028386179129555942175934710110251664746581643498075461585133347567380388833562588791472971452350051707730516713084596586245808389167789826367509323778389567163107519497528909556025855132402037631456307533255445376372922846055796465934862312920907608265146127373113772597713536956481545631546609765781656088962878228449715825516420057638275383167633000577327121874266740136770463740080369509390646905735780617688974554323322544904747980209286691728455689820009421892043666604675524475677596943274720289396161665709744421678909632567924668544171023768794166893626998448965467704612494383903510661433136922333865667826487144270431266058982181155300981528175443921474567789764678562951653608457541851172143002278858540205654533953512057738222299219352748255516183837738008544239961389223579579644360079815870050635937039468335081296435626304172254739447411712850016312172501006242715903242057435527390484313609732913145275854413455239205291566526136242682497485207472067229437253561011440290808857354981151674410817887665622564549284155764145624102597907969795853953523026521095825747019314292316360604110651149300719102698451132581191716859311730312512935468342874570858933595680742141215795821159735921874695625739293389968118752659642897154072632293348096663667891382760911586909939202866635891623256942851829400598878831981244634950592927904078086598614587022348485619478522004363249163693614441818849263652656348845282071979363299918164404051489685726832038830664092855464842155924628781206677153788466690492917829149283872985595474037378895807372502583823711894672602884683306806884762212036647719881770186439970993260234528652755669637322227894061047254838226666195315535171514738304575578702404671225357462384984068973798666959655772621152277823325562240556304245989932121984016913301137801689524979527914211158896884216964025348029879142094273105831702033327000713861236378480832394641395433842398454460616325774776606581534269489197507864656209936226142840279095026277847079166535990034065905743753734571483468191864455604348894829391592465715740558368647647553738152338054044029019110922761246768424481316399246111003203179796796697574304971090531476683534939002405283538660290951661715406383486270831735274826805078914174865684081363651868079345762447137242903927723605109507195436558727293640571513111253749397725923212091299049426438835176328333008044181761816415353430506158903064050562923510652938112286802599306318843473761326617676802302277607381335675999092490188555676912480932703239523109893096081139707899023681024188533636054143719380739657978592993715136248692164187999937615170282674385322839003694106394568783898106586484695858442680258503524382597375795855454136658341672086289246622933342408303809239493603051519954089874405392796055511193987997620118570155832461128450663050917468992924448636438567413867314916610192719194776080790267389490373585646824482619596261015680114772393044337727159319326866990011476235738052204277337428958773884911980053414969821736067103522800305637071584975710105444550363543409702566935509802218059444470914007919386502025138881203593694600100019836572555038185557621911359136011488262035804713540023182695801583216860946391187172520771824604135324905844367391022368667600835254251991837158173767954496849546218754882743835810641827078191353496667826349830014443544922322380627055325963763789401224643012386442415845705432368851667506002622813699882513006012962276485783100316291480298767495191930439965776768949909337701907886938475662949978816488728442229135903626521284834288746450159151192722236633003610120003883938416878820112810163267236910661513047255136732057647282538255768168601792420405636963945639242529967400196601498543406307971823408064873055737167210796787613808547395037441976255591930417546178261228296653442042630992071267236528107453015715984917507387699807427031292879862015626045540361826948204945354488014015644894038319745796308980483829005452149253336717411662279334902198887374020261450670203841901155765409786179518039197959340219051347740368676696209275517884950807987421360234201201446657176155898086903923426558306334532051490396326342533197333186187221240549718262404683990198960316450810467424417164692859074029536200097782888440836634892475142094244510054695790253323606882178121298175081268695817501898769694634150750241800069057968662184619740761048819661651037251329874230508284446404170353847617738352452730615326865983943010750388886096072614983911823823598417810222815058434111091848056174208117753951867861458884916746189149557680798413029501367674896141990065667193492140974209661870691059350071031404335310409075038318727725203537050462915459466324045658834953433074353018790617516910003295500722929635606547860926910308201314548398640841421410384869378226167402802612315040430602860147397924136387504346215302680740954931130685221997740919089933971975521978799326720332796059449384299725892606636235381881562993359450888420915204414766124580075214531427812641930759606668898424069608014379757539950585077448733121305936943890599379775403787624180649563796570743609202817307591073626611022673326353998511715155222797413244806924065334506352840849005657937059695746452277870800798721405345873185537196518069864063314252185280217979543989234857485745705080227807378298433377231843321561444200559253657837719819422485555070336593138359880159991722278097479814133678865440712443166226719994265512697016966183608269010884278076530845999148505377466562240559897132310687375063888794911923756778445062184362094652656475498500996834953354904763139058888964444737662918171664418547537510325955866206156238175864229308758190500607116506421506604581384133916695738628177572026499280605373273648689717664750779253056388659911580327949034709131470264805851291983550724464045965217436401359928433203574596886236247067577946155973101863860211660585551376580449300897124451764623302071689721316837732110426481827907158898693103129189074843984558035327028705217785495709593860804025340287725006581166288421809753226653913423979395259074352390480667548942120301814352253944248767658943746002630966866774219650950023072263644091347586432217502189409004479397752139094931966307266948421833144576005666709016485328424074543297852250478664072161899177354331137183668465303237122158853336363006646937076081000992695553062044784068324118492683591094078839739628524893866946470110230143688915224757795115119128948577310442959664374540153522260845633875838789019098755783407961895081053967483907240743776634069856991184134768140013146999605445333154100554617150032813525089286814273856826694250607618347626885693835349116303518521294224974947278761148381340078293317737462620246420058235163276984517175377757758987484851564282207981154802953618977517480443392045067934398404624702917462953898317323680822714866821841626142051672919314450651082228939938437431156517962559209007842315282429801366332487437761341396206303125739538033413061420993073974989858230315447091039788992268568321856688801728974319085263278748124552293367954847590888597561775529366173941720556139979563957681652273042109490254596658469147803298442284257194999368911933056131914876674432281717884468248200748812831187787332593421036119005143545840183825484135886784781099113495814972606371268337634321661516727667902166712107027836662450872888898698941155386274883360054525848308009065460207974587381846445821056783289746077561138804804424360435524566045332613797691556169569695231444882789171175146489091308030529277032883759090762789890040083711181273381978835297401767612177686881993688392134494297358388773990297550209670144599824112203694131917803972811778365284176423588946936766640678720725134629155861055866693943016643335322176399201548553223330956739455026291674689797893647510357063557233938496555522850437884637430385335942502172484296875757365129092630995124988474070526174946468828721167850542024794261562466842436720419626577676239986493477971476094094798213907682333654368423318358143830969143429458146783483275532506918222594279943143260293341155350932578025844076219598793183431949873304310974153766498823424482053465761230655432221281714105223975050412833212742892717010982414008102423814009590742899866974462820700979793258260942152053160206552219179829073339857228339720332751919678904857230902955066376059463645111615249322693268594202348707703915302017624006386723844170100641267885862371070075742106148913092931188531711268078586296890561214288589541372082656458839745648971371912484974347468547482460061249878752884581257715854669666899352679921710030183426333988975308475025237327296208062891750036109344670575435661289406858475874181016379649094626814847947595244136870143706236575237941524220344710475766838224640388555298587323172865096367867547847857620467430020981760582196371663031488522094436430530244570100016049804196412056349630859541335407984777334383225875792213248747420541018409315667975378867820761511378336785679509059534260387770104649348460019982798474493014638253705236421032631505187462124675203458187366150680407411780891650125397577116996325846077152239913823042429272555821024053660948659432385119910580659330835685705095605747243952798550537175180575674830085389267108703763942528887129832897889463012778557559445498389145821748773946643019984411486868982420045100748057867419883565921236580928759767336835554834965239059947262779801055326226147882514682018736577691057285561208992078603053484241990559490824798692966249602201301758150467526839265666465338949346053583715868262009139965546453427029068712085660974098840806311228929648999131611955816580175270306622678913934404448134824911729468128190215754341877400121328382026159511847148013000202963098307643321589615058490941587630874326153594504755035210656649393027672100707130577742467038357690559505498672489301703191899098077155856289822659507988787718209785341391370122962363870696892700301001001890316438440669753623918084147602845731808887437774013877969815754749927558316240605078820129229412024408998771740518904520122511103151810474298481665224075825660336549424142045754046552793173041348619632243361073192055777237195465630833391634774154575997918862587268558718099764339687688888765626331471444759711165969503895404400498892507943707383472930747410202220070572074020616126114780479411979016649140797264393550529532241668399067530526222029082575849132526029103201315701397722958687200610940550861247795546168381280482079365900759570884543485739871038442052122460491853371972502356915677107752830532588928975766531734273841658576449460970032306640960313831291896322796382617109416721881900916457264845312320120240776047949674810214351766254556762585746164289798552266309677210598613645445331155065957849765468683508580109396432333911457851872678461817301945949163810801242982032983536021197992803057257637756340694577101035730788213521849222105874109225882174325998450191059025951041155114029909277603509300351802031508974327460557703621724407582816213916025315713361573055070888270207259210363222613095753802935155774921465388793058751186933625139369390408323271627688576384969883617586707774315005853029554117995029480462704044516655310954379351796549187319657123051668043817225286458371603180456579498534285197926841962323039223069625591906348799146415401902696674647716915767414340065075936036018276137384266384129522017168506861470971194622483919812427448039106037736436411228615299210424575789345182469781822817757643510790215460656265242214556708710106674598708619484369619305041576074005898506273169913645958169013729100960552430624877571305069749909090534102929100240185310847438798259206635212370779166897094524098879670501565666354020548059938087849481504910242992408910975098855803459094689259244831218216603051928516218074091781204262494452200064521407820608298663850535522152707633413100180566832527922176172646314457505585145340065543591419735797243474968228583826052702766632783168916709598124362006238454185971803703955777641059480512757193629842700511994570728746969515381304000042473060077891578445436195320329676212482240157436607493996078474666315534695905076532368762555373420766721334135388522312698862141454975770511363603225250771700236915476029562213439614660818093131448775399853320277807297029112483040933130557830923044538590992611496066828843997268264346312873657810358404282016086675198769350547933935738374726286820439572865859883579053619202741332707853353310961994285218761596231120818469360301598120018314936088349891618018022276113745494683718912888966209776340468557971007115409203993138371093533946437481870170746245134830122837782495869087600663265418777111552103268937483454290504501187654264579286836590721463464236949944263397962386890560187238824520132395986426041215072811552405442070764560924123744770714034374574608722394792682189654565007512688779309255477706967965391824017329361720271377663525621344904543147268854572837669183303503100917327666838959592946034876845342725922187862126196046359308265948377657718828294441643050009052815655654646450477266267405433004071399635295774737683078708253963002849038093390028718430191301098548307879990456713695604448544942546307907027283196722700486013650823468619177444234282937415400554358974840595307079565793622671282958156084965259220485034577081277520851398233114706796260820887650273295050078035215389006450366424297442901639588181975457084141429234826812622746550260775198827988657588630146235604326383322604215229660360083700987717840805339959125098087597425468884919825008739477828154672941059066067323491599966049754822858465663192570043544069008621756521454489238394122338826801645816574164455339319885862472097469892466590927715387571800365822142206084682434165427215181017866647509597210999971844538608696996165022529555373225023178074836981882484864821891225990907315663302295609521214978275649947455502326333895606933115294077819426569940237079221262202356619672127106947260509918678082425753996098742574191719717142356977909657357882546170240325081291568556893548898366819312812758344299984152401306363500115454291150335498116861122727949322471815989445492981702754736976213673286810277264713868804162410240456505198014643689484471831273579233957102784390737427292218716201783330870262763140083683868082271981888522444420416417682066432227354137563006142260465000082881567266067614156559337982768130488924104054947050229623806559486308069922645995084331935520807875192717441204172739722116408058668386014186906026116615337361143511989636172899820756523825157763159600080851964031595692785299545192031845698261682129523770377725422713643531727271931360770528318657329984202020176744649685236427645051519197914452407715079328883252033655326284632312589333069109494785816197067408796713760660900332697638506383508164079923437325116983389029042083970404392771282247077407085475345043328297871237732363894974866553024595449143401497758955819462557590903414637930661418891118649877191910490868494387148844351175740692291943806859402626926667203802152011152680720617365379201675275474837134373733649551912446234260510924684336903196255303532346991632878263754069710687252303836364901870159521378831809833998467137541758692993518332050806145174373530712856228706537624524587003135497133096928841899276200241752983530774833684372449437244050341712648833958437475400073210654689458781921774870590176465960623543679777178130401629395525384879794998811346684035941659302150981438808705272733472469289062153188699966460048558553094391884751136353406998287248424870330200022718903040039936461594107270381149698694495735994664688697807039472669139292523373616442123520202462893539297857033758875437176994852652524389892813548891207192577364889548202675265355889457830099848250041658921690596309132203410453538051663841462132428686923167253416489889851105890234557088919466404401442974169978254754368068848290432598824969169591694709099492461080042963300047477454869854489084662181548334418006135816573868802522374911541701952770210688759459027420788744859173466888124051340583877414709731646579905254375677875475401829193520864707658547745511888475278355078364692942227668415094964032385540850169543170831916824545228480709365856836754708229851284073989269531195442056328086608903748586964878158153282802468177013186046621707029725222121390674635203900655981577295025218253164569999178935890737935165931815862155728615059940672894014873483495718481861783851072569724041875657788042037707651865714038059711153403196414859848977459787245077952656335533602154856513144571596683782423097166746852462719337955606692085652534347820781620578383551649433691659756372653349191296966187646228080625041064399232385891451754848326642841826713200768434942092425892447962879324816257733185994693900704733235755978268946242249355813352773534614530231245933485489999631544888006357743180009002638133854042679995831244535281007934145747559236246848309107650790650505496554669001196040434117542392264087685073988851269966636797812236345028526755088594916674934846343321485494395831696376561397321161827340576325434846019304517568071687974634510200466172759265470582504949831867306081996375975411444078220481396381543721137609283437513899516228705418132964239968584722932796347847245713618183586691288839573385607060991156697602884406066932297009616912104195215664531743011827159697809948849398037563034138900809202799466885943309186861005714408354314309991316738945086475265945712700738951490636130189103563221893346320753780205521436834910523141160340305626567834198586095860009720729400667985309020294107165739115304021519425993172051487957480725848994692191572784776805645356202860130500414416703487047339222182230307211279244876774498306883558692795003509980141130815164406062801501205547545650871233819719742167865767662654435317523963046355679770221481396086746530256721953310399924741766122157395976578600737077529499603468623101653021677798176250097602091545820828050498953603498679729979872030466308037660038264337960998345799333475077433937055442381654215681369355600220485811749998014325019296267290953379598880830033998118408049633034810022956689967472336308806988104696306509454553618785056509212735183460368541711079961488693072473535735753387209576442474782234120105712818829288983688748283359204823681179276405281007726079724329928958587147220499174697077931322863791439121963555885557687804796040823435317819331432704154549183773141653457281088197106702825607437622701469698037798089684040286665628984345176552465475046666731849098624236348957162692740838917904738650805092380701561556406316496477106262251790584252625372939850955816716623579939398805803513311637405062975194806844934958163345055236683541342823971242594852950307331529341134741527670757736059591641967091723837275898807004524412205456710465637103418686132504923778924372586508672865963645557358767032086652512763958695025954036237210861081046050568311973917791412656341870731657371397556968032526548083034475347693490796716846242509927659771742043624737132817811088240805546594630083769820319488887207679903682373602945474379939621925852671664656526586519022435557335352085676584598742679690297945756663569167406150302752162336859682900645966113601052849995239734758904070274701658072746553364521948446388925625863596541864534259143022459788330534443205863845838180519147999036284521059731424981356066856057336623708889700739317249726755333367950464559845400769124582353102049322652002726042974953570265691702021530673341908085403633955508680941287914303891110853100147288071699034743844551699509981016396437984356093602100476087641508074099856164703893137881640005327902349004055912969858921954655579101129305210685249272192297426908865202680494230561675227476537007389172675576605334954841697487548837810602479587239938808336186842364046033424857961351746572862021446763258597623898542807305514446122792639615062668312779178726602160025030863560135475468213302949000358132691628458780469708468539595740551792010386084563144654629684383219682791106025984618479367937966052310337922824570698209552664059190628093744103301094098936531713363272112570541212788948515023737247349474424502756915006051111591962368113286417581406301962020284191684843240328677568446747774068007970070054542536867039265837768582943374942633162589798837563586847099678629080521143893426884148920159368681909043770574373375753075373862305249068638551832362906937480801775320528846149177849190113220747917482968565501277553986363098412751121690409267282499776554440808669976714266341733755736515316393153662932324336487653540259001837679952501448465515306373621371796499800425857785945090371053369217748683685896013831145184257969311781606743663534291592450151246647443483736880216074273686950707966620114137089800674575880182411777083660845946006455764149413239013853946603358841636744840775034234609637946167137777415373517330486979789271238469420817588835302610729210870934964154728210876291126180823986440948319286617359830357726948916777980492549619793009580435861732379216727908107905765487494031708529824125725981351877565180963625764373728181110361437273388575987962246359243040191575880404838560531982213321136586399456369755627078654989664467178428847080363966554652622517281734591113967169638189210824556687802587480672401115908906209000746176833529562286347944279805517486974021503620235596458468240024110979234960356095748922341277742637520630370559558880791147152007774677740477315895323720406971900176252851351289993362190389804622533287614815097027565347432066510321605169344008914081435907507127683107056321937097897715351498680521690484477459224074993385500230439831187366475484612126075322301119562312498046670693425933139119956161253121774594186637840301912400233936703171258059064103636609792134552901911188244722712219916309622135543722428242790666165733347405774777558448142511482123273361247982386640158448502554111266699846437494053605327327349301332972522436629129804508587909412557823095847045217777509758877704700706403953600418063360438529735909575842971335265318545590598390978286549495658310180881290822781685040380373998774829209276630138995698925942541843557606174037513506086210789922273953877716334445677123611083083252574086601366691871055205770116555295825779413811991116847735942256069754376492372693561007646000522919364670431502346207199206761663143630768572581686154240009817342978167018432135336523999284591327466760354472528885337815573831129296619425180320553513140867637719086332545066591503131873392130571393449449810521517257232762360066139396277267324533562514569970899256171072306895030514988871689224849796754606352706308558936810329026560193701208143722173778546066362316738901490539795819057750174991473748376238598446002060168546125658399283913726235247669106195846651507553061688564992735640809036911598937815367586622945207787834666630747268277580699087119900068834761549695896121796398523180549783227402230800512193257111660609040122334940571445466984032670440625917133847986200032451001737012061780819800246596890570642070138581195731707351475530067850538194242135337907529773485032570807602504583886486989716387798142835081560718844063443918440984074286564768392361801653029972282354424105059341347165098585846722022094903928164120768263633689153712682747410011494793135199741683106629954843785053704562352362101240471894874710480010829460049517148145866534165715615588578753120857193463033088193540825228396675506484008913880416934707439817159316021425305283439402482461536022101826394292452708285936185158774257483928402429722355876441671314033800794786764562067263755673863228439884038980108803055046513233134513693628965712212928869635964308648711184861050684835371566749535240627711453062443765386363801175578431274799605315368961183604575742163251058343438579403571149150084576705500063671634746108506508699836873733409404146860745257832455446723573170761232542636421265104200957286659767519197603430280137897649317516258815419366574047624065525626842517781627219376015745038433272038199319431327725111128630002504377680342998825059512471856666983052506208691479015319150740811356276013497322184630199605163388306201259902984584828644271922445400558653551889783731858788015223599531693169307104636687058529834368201995773944932608211474911314261692845290106075954975301744340684189485014828239202712838510834181827996525758478396544909287698413628735089589975241497628228891725572469536902939008907783518951416063150042396992000907528253130973367253633451226731617807342782633219456101767477455218976601667136514349260517080229431152025107075304550548317135143836487131531637734149157385761753453708946296180117837165446390104959158913424084571421423040308923416482433595622826915718849721814843976265349002031031810937044906824950672828542994745610907240504478965022483883640769497723731418705740303144013026155418602372403017105030739624934895697825118888434164989032016390698143825278362750989141409515723794739853768448649987942807932967305335427409033803952983827408037323009469565126833867677106198973715681018910164447714335845955737121433970640815730455316188107010706903068599020745984519745132352671057538588389013475314060132168660032574407482865752831897860884286002257688529200919285912565750216006841819823952821862584532866008293764883836590703557887973339913993829910439078787726342026764949767810051199288631664400205771179500619026908462477757113821557329253308300946917607822088523323142433069452385913112727310063553658736037224390288658698325830627049640685063633183056388791792632748296238268751301640190279868321061398791191789325129237286044450838662022862371720956224074749961806319960080626734057270742168190721214680987770858465336159377115550899381675847979095621029413292798944115874794392292627414753828815671123952513976807902939391640488596016627262222698843656190957696891660301963155829247132794686990568208351525550318142924308001436976737187815188366366870509098366837721054822147243206321780971583324609806718411243997900661358483840389549796815719251589334545043518828059125456830653776145945897950234788515554189622429326525528388082180141856227903184483630713454642149682205064814899468378379025975511709044682517892005385913278119293605150075825883683322414663679203812017656752238508664522411371219825385243894205625254277248699882715541926682984139968018864251234707121353274860649438990521095358147641980623360248652155939414931567130346036809103818093401907981991926257784183476496541586022546016485310880034578606103683429056127261806099681538726195321916698475104797394521632319893473321632782008911016358093331293117365972702592053324166323892856172322423915911920146123224300128543656445129052765303971075839936463412537704068012733074096450893906026291542640333128571833747413967131447763329110609692246566238267911912148843438616097753390365509865161209849984421019000249955986818286220191883834997540145931623215970474022393979382561593896519755769604982131387826676615442677372927222270835969377248982892498379718376227680158038880150899250300937385753600399324982468423491610316019099217542819669355281499140420596614128739316606986592839055493538879690986353243747895751893262583998387663145099471741327213162889734605752633400207346751000284999904262922903351767087632303535671414173240452530261826767995917710038502381984958050637555559910892486604181647248732292000899831932819905570206239866758589849295394690699174323243684008372555955056902280389995748644478743140243907421144353364755679775604829283685922728075365882299576294063378149887579558003559471707896191706400087516248637763714838063807700019884301937709436759440660781844735395606531121523532268014159167026894869097698929810850738044268025401933673273557061377853166676214263356763439497148704829789753021775051862793077543884676365266655337815326620656113218416616716989717422885288053004676448590539230637006846467287658034131868279646544743831235441125324243738382926014777617819971971308089130669103221976629835251214852983651267315015875465795617797532719904228131170872451299925191393305846781974958289714661263590745811874186872594018395817395378410673759203537590076170395642163589248750256544397964776285889391659655417868177674591871441521006195937123546573398783043985017137302583569908633481494587577394369440028791389692145985095690419857283767285366360843819910010372073340141764367012274952695270608855053669248177229403774118470855542975037605869775072513011911691241712854767898627176174584393047925879466988090741844307468087944023965925864812599473015286550201112204234000341548140921778208042848764794355443261062404138152045257078037266503285956256967139699872921595407411493416253937758844067956858481321928357547118452783259985307112659668997418206093474367835649735913838007625780073181597678757000978997817721940421540217982082978496151625721859010603683238564458020465005610065587538191969347958441740902731475812378196412007076712950592063301093182001908278862852540662933806718224436835168205288107762871543226867422795893372365565536951522220673760535398327571956660316264271652909096761567092996659932467678419507698329458517971144244736549012249882533504189151745765573537934524221457136166151300207507641740024148713038356556975870340071207227919871349526164740158710583058482584183772395556579531244524451985961537481896347419830716823363075463257072658443363664649135954856074350408649713615660599307032729426007672045474122645883998441809239904332246846435699601329271065811705125478456922745565693533005251871592257556506209292451525749641100780241728835735132395032263050004411928375881338996082783428610569287358711063250353708124575372357911012883745177078253308815393091310213307357074822039767141200117428765756024736316278183989435749308924566058020655654487014294545743688252981540273695681194043935533820632426500965809356226016108596593872308341806241839511857654977720892111125376712349753597736526972318897247538847124648170204400682507632267589658943158273002107929505136108156374563471208830495849745057702507657003246536498812584727476921464466218070181405305864555969034637178042792108805838532143869746693510496316611247922159729594249265186506998394579089722769515104640996160184912000626224274574385980270194631699156731194221876640480520785355075989964718304737384810661844957884437843376224773400965845864514439381230928594088707190541293963338756279020616687266393640982772046754781741458927357322029741435523154701726929063344731987539427231038775484278019699054879308974937044361601599187375676613051574830023472423110599837817333350444768570091428792916027670630141882161350785922718327274139123907939966494127815829575460679536689506931424220417100079746967130953164080066388623451672455539526206998830061175416830206934565316678635560866960547136937717395458302238814421599106630554176607940989517282227076257505562641586893087158928552461459059624567652520450703022149642275124430562524608273430086847105607343246757000641263045297697100020121721355803639265836598265652136280421093889686914947864180706904614997295703757334976051343115711701378683257274761232270276293505221090243442524812843280367226022915582338452467588042309096303963986430855227740667317693558019280053786357799615195722205819205675122119614322266181773080422526717585388178730207108849389868205694148589035267065040052720958638232382801389100100364484025107156412555553755366200112377858956150059711373244140571606632932657875922234446347012139090168601521817941279245637364943166105709112135488387734666550950888319510713511845443788548794451894258058694173288390905058292136937589462564485911569848745024747168794196538197041193087398738789281798021743792754893001150673612025101285776833390724319754211278026906144624229612424291961091634143723288549185704272261209584069160994275536958834628853226343458316283631369272017139534959254962186850931610245586025737173697192431042888523354722851143646157184406406308506543164213651282559463460468368093199018726286694462938127385895124940133826684438342166940432419379893106395344181660720999958310910232999789698951409565071305242465229020030221902730383505650147523327299807235296258223948875088441779011386224302431657422208447646435255460694090469821408969186811948021405580933176825175398012281750756885400003970379184922150408529801208910726312539479156239388990025479660822296479202859902370571765711404316697714059348141076871133162426587852684277992267924477689654141904942458094071224574206840026861900440464332740753396618317895421337301207970612774368949909085709109040292587425305022656037485241080063814033114439353053543450437373830895507551144962186540413713349730652531714289290560577468138028175886656250199460328895035874780280478031179356626979740956205659823894109986398680602925322555196879386640944637102663481486971070013032365586552619373466980131422641878941444465972223214963911233047444628435126397171079427404935262373602481351735864398939106170934815717055755732984515393795506509897534164760927695324848258340216711442743360644527405145956044817556865502469857155450763407922245714688025102588992864424491604377392991506105288003466350700158552860142072790180731190694874984880763113610028039409110760008889739364040395986116695128513631758304172637222437070326846437567514924859490670938730711117157490158203397723483199088418861441498131701280040457099621059298783377973392757413570938532413413793711004844461726361210101263086933197192552541494735338755904936184477020257379512982488443142419119069749319548509518643558350897710586615454167218966697351273472422374643745951802623923857332548355333953396874726024942943892110130570998278020753821108398056392968609482094186939705605701078695824450720853013182265248078871683903019100129451022645032621170095134359374813972509346140572689114610202528401436198260765614628657474134855720521857217470266804642501750427288099923376478342292067620517992231466282400881286871328214470085415154003744239975248743052466598977022780883250602940822538150430547580206821636245249997713899388706577096562109544222594380341630359793831799752387984601536257500761173922441888661357782432552944926819575656020734051867675679772853958491288885521147338792986486837382822136760691793008022686757117336130884500245190027797505797772968029427085186834481422766215923672662348980940807889552525550173504557074290976901543640891358076438442170749851178072440548126116808187733765690123300224644173764129824244256461575146375891968030639506204177361799865806129978018339023595117491772694686519899798064127862174145275409840711477358402100693631497273893394082214823126073178583042190343933778189818967977058313406643398598167219401405579408274744550564910502334300792946611301919432725441974492601274772717340708442916629512689307749058819100562063191069584282761849034833221293404976106979593906474937471799012537323316558606385468599675543941383765034478284731032891876678157262832193235910536201569576167815856667342476305488133517050454830463689530776857243482595524649384551902155042497280934584847216637346719112024055560698213408936072020051015119533156181032323063962572700797860596199257492547354155091654822861267211715945985403018235783586578773888218176628075171866224001138246411872348561396878138622814639363167084783550272511343828961718243267481134926073205289244839246776419437149590491638994630639978940287826735633499576717344544457232045797510693932899617668197534490998532720747953538680144349169821682029658718797953087265302235492555684656627198380637544439955153016391418428206002890796790359703781506954685540808294332808408213379895146481725440899719100902587560334591670309103090359454775860144014435359493085678018793174452201425026700144872154279903448602187806740811849095600199730857587412549573245193449915476151646011564403692176493351331395042746255761019400757624785149063212514839892501158327117979397218139423214301174543926254422253595751647519089179490582791346956326149907859491616300738566774252092698505285873834846509406532177434427530466507981591516163622526862181471698821692695194776205799121946318786582253863235631948926136408342036565713192877509574950904369019624859305356273798819443739229003167761678433636626910841061228843739245969325551121739130922763249809348636412318924380016405737508973544202942133623676265788894050506407747033593749579064779671785864909829984116356191236777747101670473724243792021325467378020298261625489596263339137535101858644967750885187885229355230328439744285030760078383827080350856788397175881014158649030772297714854508281834646107211563573259376085484844579460931408151602400908779567545813397188223068095557251242666757160406624750110686409729243103359417942695870303163820341671130906521425523619691044958190591795316768801965731918774151304216977086728723825252616562158283293148904404391548591160320443237055797385923387621140823193341324888810268976453926032598944123613394357278829875531710225400300456856601530378511031891626975599780873861410770939603464759223442178709646296249642619520301368485954636306486686992582768879564986293841038732348403794183354053024372821367710569086203264328775192887967837751533745936682683460461142054891933723455000537075558415987639003036762817129547253993432301897031029785985343526430175714463515769629581452227557372814851797953642169399229451525442020633149352531850757492009429393172342506624837643475574819099833807099882926386014336478008866629301648090252743986466840387237998984960365735352161580231346633749395634776611146089320320058148464188960841023574199954051276814774915982928973924682269303051028506531385558184185549877021825820803670747707650512991866584614335340639787650526506052781073369655341590770662240398853741816566050973737726165865635363359231494099691093572730277249336333545756788589034250129222205091035706278515209429498988298583422506541230940291244118168830683084936489421974312787482651556080150099194119171618852466573741760355007693821288898093946266395786506662528297740636170696758028438925679860638938731743553690963061887562390531007454558232997568893928756130166103608026455335266185684271016730097317518120083022760193909336801621879691893446323058272606195375533483125627231916919187901844547259859001393668092988329578427472793085044946440636126180760462628832770745060390943683460038516202661596518356544337813310033431666511881718292454427138514472000528243111680110302396826232483747001191978188631252504006965789826608402261254249432094040809962571579767221051523864412823605710159990653401856445532220227384244103991830905822539901931197366170857349139923771302948324851967188313524737059724114615629493730102179261303129817046483256725660285906852558667356336401373815800971498269924618345353628049349395078794895405364534704474215340677024591184853998425184347280770952617922967765311622097993576103799984023476771061313388649261721723349232098392760454542417940932014101172811203232681295178004441356715475074657948028260344369542318884352476691976213497815961155319806743142822461353407931663844252087870836090508902266130769472176950605567439426612159107123673998212145264441872480354317946411459675746082791791768576091240212051916380473372709494592842572699107046703479556188657497138048937635280515484242091620860302730415111666667910530510779049033393926423466986888059231595908393182256316634644173953349558852816066016471442755926146399777107666497874916604622479705218457376774184664426181712769340582206619853738186805145580870756910287263727652400510015795896172467353145936851188418895017464065945067217479002805029207912305255568385753986219265818842065577055532895348511814561479998107183812833544569237926313673871612411281593789984543603349996954633778070833085241778556587926837949738907947257603812793072216095657559748704311765079390088473958279453854526651996538336754562711397876527401592505697340057370009317701757335697518208146613102916112452596172975350752643021799245281745017876182946582103770011045784090451800552901130084408651632568788740971240645803440314352727116791531891789597602829757021169708524635998756498933319891326688142656330518423233245979123307949664066633660817476901818042883418481886651628621449123287598067693714588018566795250981378336990008114643411198162587080324216144609684785367267315499143900230363746795050825438865679695148252792848673663596149006945069522062159658532091394457665196954317456286125107041851759486266170317240144135026811049205674662040026162313877087151643584767410111060318984168340355088105559970716446945972171441145963549020491576186314950243595543972131707362759967863696471497376978731605712008170025316506398893677511015575028989493473536250625323504610763204697084602484354762356112608520826121122606545703397276649677864506009771069218447768386286744568376704952601572184881963882821579614777192243313478242658724456459909129239640272869726969125470836235707187081609725197514904549532326769902551788490250517339107464089867070451091858042837584764958525163474326870438811189615103193289166537518196516337449360237933825826427033584965476540052297016843996418244052477492032441662309321976641489663541968386651895485938196050914299583124006424777248254053287830506853979607500829978458119734633816769303565811119024275861978160129514632870174565154867917226161417720510718303867571128593090649873750344971526821158546601946673944920155502921069756555525053264627948849824366375174985249532861649350821625833846279885261875196275871426402043601398170297398032979251275782384497756235710286465198185482672691399167207434390647681973550100490078937636490097685663273851164705824227003576298768475285080627491985495425045178709468490380913434954542699030158713634535923468846947737219654924808774957184512224299571048573409157499506735356106757550828008753589238803195041906453582485638170371082491467445609947759644698665696197702964009756221762367071026896742234014450604485547883781254249800325822517678760494181273802307254684106777057662380357489831444098185057384604529257234003028940184494705926817314216983983460568033789604872123230395789110656145793725746179534580216933345362733697537919091880021995806876718487513011263680561924741513586302310875334076490150480897952717059466555497537393083593399508101209355760458278572433661340011602169818573090000113266839114860517751868964905841479674855347567568832678458256511348914161829094987982080926974503105386688267144784759680499595921390646166134745448591825722153558056151911481681585293715781520818303025997975708781792317564177262571624830372525714661174883425528876926924933928756231344312779523789802869018420372382131620763682273039493391862357467894681502592233109943638782784775942459992079636782729373219375417667087638397470095781145776870351685417697018767416302167467274229606167450392654320080958287602509821070810182678345105727392624090622083035841684355425357840839743307624878222817518460064315800917967061043387185493695319139978678369975694489704838618668765986130412077096588628621375531123136083038844091860140484185145234692233298247291735175037285463660237268127615728188224793981815099550430224424469338377157486887647185465279527928381304420074887952365853200679488122112195166967715738122698898015122213888523872475790457506494990112422530427479611648695712663230086515547128019341625639086919873163965925269767677678730888680944937827700934429007628818850754085512924771242268093762303892521402605985101500387242319338838988731915145181923995665246854079320947229652460094235976072819185755355786776311222673280687357211742883013229816420003052385173820397447373817791704181660267139657653699121009521108555938090440967733590965690166560795618195719553829229705300299039619294266010753706516194720868404623010065144675218108194507783429644992963089484570130472430942889547572705355769592279193096270936442282898594039221766599986258430792906800634036936331507903784177512150392414831026106357282710536417606060857745166531809406439511138245599436824634960155895490573318160140520391161537778746015464260219003580788227227873360402767182437702802056847566311748825537859556529825253196649209111717338427650044355587619565303503111283291262355456505247748573669919357220484162626361748255294149023519804794661005519554277924304126122217111820519038890002878208378885501971374532110780522309998079997474244839731149448041262373724804234270582610608425639319101177046649031713712559643005579722328865465763244956728848791154329561645310777376266782469155050461386787071246856526819185786159387407204536677537351947094921876362276979397753172995647123294703469983200362610333009320387076416061878223257849520030167955753104721674348925293501837688903825210191679954604294006925990031265094912423119512389303157241789139240503818046388426832175503909785160250141014710912014371989033468409182665876898779578561008935479769432998292936832946468992637353583862676572674931639321965347036872962271335999498975023137250948391236921616208468462248762578299043418652321143090615747913185959414708751875585482366746641973712086663005053726151639922563269475763883242913373988987933422528547792242942194683184392318097092682020302943831762923786511297513655670771369001644685733367053793495974007492354914048599590209333462548859687690409447099256054089704776621221337094654420928704210704506814876268533533540588954496729415965086464278660231033307818243552423399787377678102942064138502924154294739050661138972868583786703922856014460817835608381928735433296560436498720640707545122484471962703088166512237109040283036982855680011436470652395832839047491021886009914951711242236270476712543724467420551887092069036031477211017976740249920963380289630419429901222848678200670366822418567948555321024774062627646082161367527212406702615218562793184188459292527418038308714953762202664107821949148310692066279625542798639417798483715882646692080753447100322395046366430835656155194272719826421640494606604587937605072736175476295959354757455025348170043090452515606026154270589438669888788875415663881294633225615763104428683715869698735700086477577531156627228227609299990393502906325057943741921126546631031150521817721594318795778685531917177573888349911041656004614108424064099364593209245845720142640873346744540191469579898951570537652483333785624855108312819218074298267225462390304617244772981855923367690870737013277330175046193111153248164518886436179025602553128807065301071669674097349823510181189578389472958025890627463950372982603113501649978794886869693160829090369606880054778634668690273383938463606623572215644849381456314975088113421680190729986991812409123227926281306790512678847098380637931297487529002252312347709945811164524732054068815596974028484935540322544361618470398525783233085855518508608484205600221174387697328588032331764274678863839877097013497035919333430764926318997242714799811551466954517610650765497542716877660057602313503053993451591657915371599112180416936282834469821763671600608955389120700872236880646579284883771594139415979181079897200377694598008226439676380054067061746666882915808462549906407477772804207367619460942660720744959385295962632438768586820769323121940352249817432000063429504213083570835811041156061284536296048136281428693231578493720137259213974730969457313746525641981307272092378374219133591034099566500848497849848825771959310629636812575211303781383986409843203929881284084692815094766967803322998681731903717438828414903918637689160692941687984436707653772138301173043335899870789704053881802892814681314172102062083895143659413279169251388140708139144720913904458430438025368228967537385453704717089762868688580472331922069436756210275279376618703398372243731909031681387587727089375347544001305156244874630742155758915101300805250595198561285821249701463768400184230838729093044118853319917065775922834731373090566221745098432180210019378295506837035401426015579782895803795960715925330570895827455994787327499531918367472663628001188561362287118585222335959972739575268868873568712712312819721421594058653374861456970238424766277225427763870811882657595802726322092807346680441333922194727901578044646371196151810539619460915810366755746181349584339260871964977474953320081383937818867954011454897868933387564370076214630261255242627408325643139741507145291702613711054559246801355728720599994775479093812391599307380937561492849405435015564876204996775940501428874380284147739107877108115938037954638177284687035652302596889442205395861855646627202637443524419042881612531995429445480631553041603221566755618008746702995550038276126609883038563786876858092694477254433142520622946154347755642597017276686408431709210300336690215947221052980993007380269893119808128859670807019429884308640875969459105576386979373712459984628311747308350381103481123215561120439998238012177006204725295686081924437831039087088110363814506530956349498681024249886868036519593707247938938443967596283284777889616792351138220132023569822756218874904292172224725606871785810669961325820858451836878558713297133716462067194713272328982633332953650948610656906671600466495561019450270703727621985458141113116334599379764360100779582792474700696624370273538115582255389168965689305128527617720283552533163908733897865788748026824678347390565155599759608786050822976699958038531135958247479251680129882826454613221389642082135650633525360057975517072053081158588737251532345173712111241291640054703112744352746994613314450967090673177940780425534039252127254416893328028884883567265068142196736198290765139352331614774574909552179972605658892649315935294844380176325322680249016809815707680322969381555038549688059654586388859203417799955845614187595934936769022006284464710779865986910905084110366923886737685354799030521586821551671303407665836636396403834231124213630655404208401925403531593745725361103867785460556500943632071726950915730607254144818965442192373247024010006123628011574333921639187734680711108323645519506189836671398554834605533352226446370735151791605294490241760107729414486519320504311787748876504291174687125536168377156510316757739952031591474489839759772038964550210914012124488050654248945026709058790393204333081244576238649428186553410534271970105595039260067140964537206325349967777880445695815359909906844797133546645141698840554063825152654450310301034600972750620479874944288581021619417439425713308137330351754916469500766725359087375461183598873595266077692093068601641964060089953035387021054924633223342135781223751582788900141130917304546056940930835297902185272022358071255225095236216549413926712668606649154353298467488016547337996263801950969802948609475882352754440253408654774574857872425928510415810552056303595925970137079598689699708590558433914577267313232255302782895674199705546576659535851125786008868875286839669279493265465848514154999245329594373420401383901882321741167319549519428732316306732581710042267394371839059515656987007862577542080900998776823248680475538366639053058869716147353021801257634945109822545828152523593580988985924173841044758110881178998592806270342550415532891810952927208615814978378236204596625307578543592010936745672773293112725940710612890410968777076426638083351477714873952742948096565583251176443423793738714596075874843430973584576479654889733629082264489265311362472845997073151552531610810997333897572580621689836785295306735979484829926038159647706293865435355760249850108425231151702775561494608878433767780248547559401939513075853565890194138638830517553176183227377208828828913478088149279510735446524771414527730635272544168346416904553038555890515016330901939645021819683611515241661593081214086241430165574254607100802654690234373386175019879507364795725369213138497446671009134622777887590142243867599729606961468852666995306191960368713867454258445880510050348920290139186487473002812528715489781658328169691996885457681651973285496239150428530746508425008200719339575464753434992184793627728830512445497312826898680047692441837094947738003210970095219545603248978213838898392442127877167385116419764282584382884446418731305975998083663114222220793016778919193212890060698624284712550640998423677215742189729639869620350279486354807918579154995109375507460781013415988928249893981731610244006622170225806208585448625825194230527168536788042760728876264495490452420925989822911825186227623303300066201716530302775235069665764197500966259065420202927761797083428278799241910650240003391858262490074675823994806472664692704729793157305681853323190547747586999692155656726793154505272592102914641312224826865828798133978504453866272457966508205583978610766039795545956634014706809699854416513799419737447619565071385322012114227460269186650606962440693646895058360472454633566455524456447064329020965314753704352993540024826873383959710564083917413534482314144313711993048554355966870182393675682432309489216952622348190441623787130862934992193498627400973603068806729802882510173344348351233630064343948568696391275101153684835280367107591521017645205846736097004990372350207387531307498384365673676828008851605361718328105240336412969245054870952394378857019795821707871661706572790086582005873061261130209253568577025170970664504984179514159196147817983432080096903678324274158413400495758456162726042539932466913283944594064641266715883492198642961665605849365242641577575200469166279015137972254236691655499431851182768461312730113075395527428538132600487835062453690865190574890512965537147792289232549022544510193079316556116537332429411064816807689409976259047016609331127042835240892124174586181952015788623694242674111035069304966605044130630060437334299454388617176200126153014055970896793711360709143202707713981269045168144727592655152268509199163297053499740538513109148360416017553707014058785306602596097711457136017312848906772006615891724218544612838850157391378664930695874772365250697375022670323649599054328815338715905548028860205628562577784682546887301653985487267375780000473312647886968768163197159932650683433214164587386956609907190049215471919624432260072923758448313601849630913345658308204349188347720223844383457209103712049929883098546843358655519403756703261845044550943049436680729696377438173964579831652493608090680311493942035747749991420025945047624891758064444162868518413946360855997861303226984855006905854500623561253835775566603940638155267371213800905656134482161659037817006905119098447352852705843592169028912200075320537149212294856161695433488313215917831391137984195167007854965023397744129192197218382252413684373257660703329363584100913271299995537343926075780141186056273730819777690893791659585558857171554281521857568707822561420569132188360811505669647164253192175394266222811459634036198692385215678328735644524958421816487621987122399588256813144250841849791750370897794275901441475795992209363614746349475037837641748695864632665068824444248542089665054360825315806591649019689476823367608700603659689240855992401058238105972775452354431081033222273998465070101558708441520966255881735548371412659636065803825520993178103053847640536137901947700743527949362508571785730883814585043012170298431645331541738109828463510009244616835986709193489596664150479209796534394912890185420104167241061426276753686078915077740988470399678961984671152506554402340062442755983794044199972052238793905886255376464808315424624698043550812101285470404304913047887996615528284168117197617879711305437335921935651278574589457838133420937820334704539798284245504005663386645532282758320459057479925959923477710526480578094098315096376829803336200262269095642603280989556013265499117734318232061944379506988279553653276709839157833446003544901545281228005451521425007688343440077038442880365802408980246554561800504128201716648528723247660058285441995389294804130156248817995398815621451608053214551035054481106594506990565886930046028980988507737852878487453736906512643115789497335560066288990831222995238629820205039881175138129101826123943962103047834594915279012556028134712251733597369459744464314186386403552163861064456642947967421880336189442186756472314647308361131137833299514731854428329836139613803719576006116557388013533117421203716116236754482180698267381619861910837503448715823962648961073852523447320848080612231015853803234054698583457783781270875833366382109416145482777084143985173657743806273400216860318637951235729456658830909834500074480644502549639127782585489083141712535509669591545952678568805066447283962298000114856290661731084068740095706009720126594198982927886016171567056747400013854955656369218663123832554456097516271765083568222449897617128744786925199839036920983849065401323323336693632816590705562822693020328636120454010843383728930843355371851407312964953336884233105768307570592106254139554122032487072946849776331386092067344376991979301929677203759706587034671440767880051101280943982686274389794193996064583375091442389328355689150646453094629649933193251475351697112262180450916215667553314418293358009030225380025904663383386499683565598271629609695411288013124931084483701219777962494432723504310434730903364712247096806566034193362660709071878115179141043653406359836792799048252766098419458977098751650615398395941828336261953887612997472499432612312252742918460508850089793478916401318781201993700033008650259805405766241692470852055246460561328361421429337018503212481608010304512300726667967326439513762220793646569095350123773966646148916286781874247757996755250554897298020282958696577015766850414445055654683820803319803872726175393150873246144084340788924294105677167202725463406323506046821297152477173868236851478232506785009956535277730210632646159742009221465301672980574285891322767597225874698922121178785241211039961629907728831816537692515098171201769374580316086081934275656586371171010532845729888175129775730339073480028852271609060494682836679830377193450663353302255312934387478956003295217334627231232135535173852809526776802946604873128742823764091978604058582676421655288831215214706062269502501404510965013777387544067768042247582886152727533596619440812428926138284055462585984838158728586932591430579792908477337755848578296730830768775324197461289292434389509480194986138413607105033660457625262768096552955204935925739355049283089176765679647612900480877536796956274388308543718648396001888914569782499557411343309444069478230690410535107247050362611415285131912846673348721377166804385638153662976035964684351631761420979337113380370051329218299551946720309756241818233700552592139396900584815278229229907365792519220880598125415662122709378511707050741874225724210169268486431917542351309519260736465892200072969912981156539794157658561054519846164801761694628244283343076063498163564794042876878905539017900610099622909979991985719371820957622481811059431273388247456418752710502044125981405687739943821411265030366119900393796819908960673767437583849474830250843293105976684999513635031708685564536153237490417534492837375064615947186166771765944972603614791621049524840437101032805854163711989362822144805311339989114056685340709432146460487432542250017486876443416597029529612514350822085988476300599177438746645501457057645630471724412523434612520884491570829207135880508964721609968863381543459653185159887422367902623538863040331025164808507373695780482643998518396627346837477959828815747090279237917647886454731715768204451363386045022963288332461748698349594302201115927599044423973193443400974083985239562604096472093874347155159116218158022947415722205733891336119029516674363033280174290945149745677752714117297477343006085783948199563851686010259801123818658460851751867287827338150771506522196495258670351844656689539985400085669570173734777908991893965168500762128763226063114127504855093243645831607192792078868748264040470871240234406665190533920043215990619861578914966390916466563309119895367162325171209639868551980043232177853746947504493733902736204676567646695054737856891562341590877416089168819353606731413368875554072132089816150213346560692827155329976562887288194443646463699974814768891429612462157708002197430177820177619580645943775265007205745868263881508441982767306654490180876428551253946850850065484846881135263004858913475317801378736429713211312164655173592088661360828499495289811253310485746779539329385738694047777407617731970138186320985471929028664842133259099311639985103245699892727790432839583028351749353276778192353739492678825931472209090763773222487224945976843073492101509491335312025541769228845895496030100939553747539018411231621560458907888209279378050200847102546494068847254762114809780525102883135300982073658701975520289425763371282576864399263869004519052647775488157878950954390097835740232941102805773124801622435802712075119434233219052606248460842520450190277264830901727088261474164313749264322153144567226547794620697860389023977001522428344265419312288262871052337129153068852822036534766674318013129285043278138366440898314605046315299971888143261530553657804137530102522406807900397894557671452312232188666071491184822404910502836866117373782154815206779509798437531899286602000846937721942689006571157883851142815902964601837792885551378272825668442802388002934426765246019419196498373883217300863222306650918276025475999847206362045597050356407536277591077990340044368588800908567704692617031183530602823479502015706074584883157133472408539376964781909925524019080469813177281616486805284498961933771151712882138925115811162057993524042814050917652152205462572384580947930675306435665289668602221804978962759847199173823106970219462349450060656704538383289397429624598827225930037955996703040937609076307461185415166483068676750253581913444287939828935844375859993841266999040071438750936768912359559808219597501947264593921615203384553697315575181840233551610575868710835844184663250996932311690595837704723998701583439656176969341877813798021615964031530955616551294572490878340221215879664977841518353058082503855865024549161859333640012433032397823643445942959665002612949762542813156102094349214344724661614442695054367435990820353802887861293916340028291403991556313355934661551199382659025109115982107959559916142963139286576754312582315708363680400734827452528577224357699819285387983279698903243439871617178860012450441958714778807776601798060411676489803983946236721191760748247566255897861972731780243023522696699005437710200833379613979260775195972732753152869352091407185059373928464382800897675872560277330354031224726996758595380445540922989903799863089283239036061172225287390810322655713671574334978313895483181918716566192478033426488154080184215101711683139029585862197339317219281669960760112055743106432414297799354109428971182552681959241504645225166178333316947887646450097756847289280738067502960306405996256346230603425417654647665061596734028808481970549147901363516423917161648654472609825138772157508265943579271357162251876831394645584558706725384733375392523503665881225814559130940581514176005156456493059670587755593929179561329725915437650410970961408823086622531415300517753215045853067705308314327558239747881200815271970227147385815943553249306226578797581165309728180163659011745210850499345283230648907656936162070485681009118782744422648603786443821150823859947290435278947947464620145916477577522548882851448589415466612152222044949981888323068920479515886404024941520840042237748090208176745058158771896777254674165741245845385243286647639993518521972472503076774810588147295301588147686404296748642735943793331878587362776771507526453050588828888250427821856656880920639958148651273081322587913400819016120972374057759341299443077680601876736112408492129490680500553668755354440152432573893771208565155543650800109402824267827991380816387032326862697978635413578588372460182560988945504846362595223862864505155902386859731903214191431335015104026382633133940062349047624394174223115763787429337294622999098408823004906602302778734437220666658818006427000199884318762626793202741431936685808606970736615221403408492601671845554738431338928336579338146712028151067072484234992833350627590578226983722614191198600237961600274550766611964999144811099707611036352388878254078645275363439815917481675648677416637122736584298186105946891799656929896042272710924431931194843054899600052080151648079328474797171354954579809401366634789701775754440172414037134890857188008056310119857337994337068067177500778155104238160941270536272530281971753609598158317336193490934493146687342415593613167139093753499342185845183418152345657769071998767503085314450525324009790671005479958804279688507260124209012440803848223680313053590062142629273879770298057458558973935766043594935776216811604306701741503040101755192022709369263671840768054279619549243213110393309892951895889649882134610638909898003031923755905950750513034448505362744950919864055272815816879340522918260415148442658901495542897282574488640756614428658088230020655350476925432301299341245328146823534673416676026541064343462768372509851140068163033327693395182225075126122746834094380385559006536294822788149908306836431854212512444932281935159160031101669887494188552530928129881676013585779069513107015654320547342186031259971512482772064351100509969196742052504669155324064339423965163302638850880184455061029010707218017967632227026493794793572307024155319492783990124238091851611636488559961059662099530653656984841769755855243476705792037247909730594359217844033227860072647067128869781241878909554031803213578866388471372771248695201416236977433626768800771245122411089927509665343964052783041702208326954984677414434285311626374635968444924531084269800270979113150366181566761445805733029643943050135479308481904576086569414751087278149080293560021408676417898283609212536103223870233341125135292969864958124296513191749339712429637656106681718509854660075375907862460892940411578629393218237694139992244417686898345845032942882710574401455833325158488568553362989347859293594002416145029591129227061990676148096691833446913698860789612717926769671624641220781572379541711826917021811111645057901467511333193468501031794190745976907872412362390647855984647571118173182400696769147243406701337320127930572503142782239679326678410191119104135615843735886952412075638746547532469359337471747865518499066853969525954451550219983232733006579234747668192682069480114247603708634156466795511030449661607080906868822112700374352662661415700115397550633710342109410039458232158689570037127346394767590426779612364275265322229104407500596293473085762544534468620515723601894578725099956137665529078035314310844999808695895628888006566078344120857203752022594626619984896761470029202539196548942954813105598440830026384748233487794228837631114990622981460245324454788726680722585130964749044744088776649572570581719607101689716313314082803477168718699919021962012052847856805971433236397350414308599555495975434889708772944418020662568908562564295041924627544417680432009984003796557851168778189991530800118134084491528076254678027080159117303646088669383893621966325619157112879542894430052562336603067428481958847279489193147015966681775965801947565353479363237938580259243470568337642886347791692980029744057399632079836534909321982127221363599344479260057751846413595118193745163829350865603055879230173985427050308930286893671329819371766717040402326988122705733004894526167707233933584518949173826458660338759856037704578182585077630295910593731857387943691914382272979501684380214339570937145100320207885910205803457052560448660924361302364048737191920023568897507253971717458383917069425502710999445176383162723479270052397226216797726112692624197359673877791061356160143464690064514396157973897046446599395457481534306239809559473442321541228849457494763847077809483404928765435859161471972284950707707358132213599210150409660744363746541976540359070050220633905472359735495266979965685579848738333689836347448078063396362335547393000820472640017137086076163861506109923786629681861408735142521143124786044283709068929057208867004624123430672651734073025999745917926797263367447696504154446262171916599287603682763826821572316303328923371147441541098463385910119708361559860043822775705877189623397782422363833947745587596968273219057370194434193469251343201664984776773332483200312141170887901089414734437860735547860037514384982192252808569092637051930260107403361128270958847472559898300315280771614431102809660581270653572280183991277908648089855816825423439908015405967909663174994661408132862327226488934172505808101834427309426414779128716251486981695990877007183482802273438253440506115969611369972699561946127822313401719537354395900130198386719539358654054319237583188207947673981538370499918089188583882552076681185761095126295515292565968896096045869383330318943090066500027194435518369309537458993169437714790734422274574192506681252731729278382714462160830996721936123351595057456404781214330182304840347224305335815174571244240513933229891046454990209860974655086802312196737018670706509983402700130566199821085224820673826432216307545900071520647354541042508920728702184921618573039033618943742807391133137870106889494037466470496507028155383271437153466277168544946511163113537492054727013405659260971892129927775807177424149691784495202365795006926524840363487388403921589807691680865941786450744140566460134826771787657807410011216407136349040611215487886113953339774018660916450157344699398964493808574370557591130651199299065738162931874631737321719960878865514553027515105279832910141400524799014121405936162218357268973331587306976639133812921045429610213210949710825502604147806367068161985781249923347222666489401467628282683682323314827358292777810318724662032901553867943910634405516262159655704374640981101132816885882425785331422042360309513283221942183051261903314898546625055586226908562832158705654733441923710224647806898389143435255485288099276193147946000937940807857910530009841565727148451583866688412079590949167790998629263328751139021417306524005489359199267869034314975274185563447792855623061593296341863205172815733778369946371916193829091717004924869875108138803261027374357356746098475947302709809299926914685730139675261380653419274397411131571984911933877584910436299866282423685087375601058950549248907243891954721117015886575463416044856772037239339567059121791084229118805974804947417832084316008262892938590058024109030533259208993497518636681571451816676231487817354466087235275535162679570250067383335580496460618895292734372339431953364169569731529767079598374133688275659634038794608097644304649521971333356433364454119198251596288297289902942312606344906803199860165887139915538002648535424821082011221655931881364352995148689989398269784290694568184040648825202301169802506545788836622554489089559485290899615738406648442363214320836074784514089971952863179973315529618107803859772539837799371767947448001462798838195725883921819510994741825689628141704362435798318929168021935800937048917741379857939680621486014725654039027427299579094236260863933723573951073085787393407252681029215640904934813367166890401954461573594074607019024044912716755510165272056305876387079909269688057298907470097862572236477837642595634114082384459410429583732488516692836885220287833521615596128660217622736260580061797832176520967772046906367151110408671300779111574577210752927126653593719035590429683971375612780221608318919618374400693149571078819623503873099678473310700714576761489140927921075492286860328463029028219209643877704219538110715514867004461375527511994777276870387287838476136417446755823355802023078957269530849507716255334098767373301022690949753763053254560398873353997467752614831712394839999976690809424493422745325377100247233163251864440505602033058688469230550222450504479849220163696869228424248638237709389663549811756889739595719358579674249694370189549159766384871540352450389144725005838759949803323068325218511972717571248097341026766730219947065255870849023641086508311975367957801435990424544810816133540653228992155864101059180694073433503102212535194643429933732286947894139324724140484287998790983315352508852296499164038525558690307991012475103335451372951211212342149100230276540170225285882827098831512659213895297894738129934616372732314881392126144926708053618440047281207145133671746464441973715553575539913060975744525449421103292020456945979314611920894759422661060306435710076465636738408664054483472260732654869950466511681432753639854569836586630201956574510834414126829529065322427437322493784842861197622494389194801145978044135259674774140203769232410756149595124887898217140375654685496974712758534670009060467637518608595313549045836878328485976282748048506140722351121836570172626236700372022452776736974617818453964908951424195831371851236441775883165182638891661708854679269945880066271075044153015306099670627667097184112976923140141107525404793851205546918604683067390477424775407327941850234266036611275814718303852381622074315196172300697359205167471012008095658538840462006838781615780658225865305452509861383521621969813093857646681400388655572887728281757607124422431472575160398122531088734697980343047948405404899978004198091561129562892445504056406578304102469630767483553437792765625033077625570862830457709814135563915269854807556212198637118659373600484267926039425414596514705734024652236824364673373110558803151945696525262785578241542566729724583972093080514833241472518361109992391902138129019186311609699728705980597258273047674327054599270908386306126964656568563093697309827071513145220022472893002373614361728754379375446973088663746149923028338679082771120798176946896525506771535684266403478888787563445234968675372358944811837499306842470476595966106984277670104495762841777105121403911227515738356482874370608278358464488178590685635228011973109856640575060800859939145552453198151695275476607049457179233655649712111659542872114157486938012062598421485316109966255019310332793739879119602222798030157174308121571115447160062181982715207840052507433366614673841932314013215954502215168908379809354894633477005074010628103972341245050117791522703398510716799360962871441589315579421382273571651436600320260456600768831240787051926706078104333541760374006994776492467324992221794752715444713957060096618864307526673345029007934457086497829126772059628384974414545184723704562938699492652334250467520498100458950854091378899424184293624455862936073041097380103465640933482394607510004800621574534777879029110891667029045028406045625858637274903836465012533757055482292126630480450094181959806727618247211022821666397097644658321315417111941508366941651416395855885874434630253659807277788708731865923563883840792337784762987412285933632020971024849295034037163851819577486451831399032164679951962604078727179912266655125932431122105910897742728918277341306744619007847210842788828204633993318701271436320090586743358802099181329362266379927495500075113389116505310099064624125172771987234832416453414900074686331512425983050806527886248667644828216577495242400741203497007350874708086819133867009991485753345522630778757511625298757037184123151769941228656422316039874505981928479948846217784146548861189153939377515438558018002994577961311702746282715297945726435819811997222497538643558023753152056664402590536605314050315061755247352774811318905232061092158965344238662209114215584412987401513708901401835973947223253396347880374917306038918497720914507368951360215922273600300320566258210588390290388704846971819905460539486049855352593381367842996615773816143391424917352604907808904724690316495046166563800715578015385943792579046029752705960975991126599809336469015854575197239618603199530378519472492072538479438795847596339803791475248114835982282016317286177743870405301163393967792565072689482154829155744760487173873240658405912417512170040886532922211420886474193779466528772535868421145712571066593279865025571428160526087722564235491805416106436489370163775162963220253840837587783363073762614323355587964921357944999754987698311416994781021583410926822052828868362951659358225088641593539040107465804090775280832803390686146288980007546749271516396898649300743830975750428262484900685950323437766269884182500332082937583766513779072607184102024368057200944909495711903136352737902093849226880714931988627490341495079736655806079562481402697225713775762585723271244955525253424791273155675191280313253242832212748200604218382645583265701153848455098246963499321406118137027852387840901327192339000356624645200508955237371941434279507296114654526440118047440954900463456011963205237006007269639428171849846369650722989879801772466455653158820715300879413951961625768624607335880881240040771223388815831572348460320297467900846039742918540577837453333314336857866290054669655649314139742278391631100500619496567322670321265083025832559695186940479159004662180767964316541896449196698894558017151605832707469433499240742820513982151570019223112909125891547245312459411500596688937371377748166917435772097616124840271729751054167094740741940650374154529812943673930667060808526054377908829486879807008998055593566272375395546382894131311167884047466163189008271227388958468009268517838180098681707092832325018586702590107590082019235004302621125394520786941939895364356744512095304484039702448651002864366551368906040934358576008880177168226894262889561571979992860186131303265721362525998580538930463529406319929270073234060236516743597858357748026295890988172518292575175823342513033188116532496886894672514373114758884602169447015468642137357245659722321454989721162297682036133785884971289871356488144749925410165037797659087250552086401608998207436743544736676117559712144070021588124588899574497769528200773750455213803589579924729758169186170844684974205288496845906276034126317041174624595345281215178379183809751209598023935371220539750092584909297741155588334720905472673219132975698245043525833774482767404889038741138111765222648089457428360593841255523709603237351713708774309169666412917593399200958889475573158672500720471328404286755351975966615174921705615597176252411999340573289538067148599659965906785047325023592134179902975763150902811438431463315599110913749843384642520675127869490872718612998264655637099752092668948857517906970136629196236504864138746383645870159372393906929330113029427171985406005806329017313530495679500371547234433492939833887225264961427191894313548639284159643588511842423427214806991142981122361477231345338073851651585777730423648918918776471431594486746786433665143730974444904828901750044193901644610914184639542896244693917835137850833315219101976616363975539990835583888724149950105597942653997998112478989281984279189299756344988034714129635134282923951916291152553717950042412401327145501337416882925304858416148259305038098748005324288344421215834732541840254002776463251769336965645406661085826126330293998190601902092488298097976271792754071609058780005502958576635266578619471602349366291274976135314689144499912121591104129405525745277824159702284220149532833848392935233158018880713090330680503702286580840304700075774682763304741175337388306152366898544932849182393365108813568691400613260720876301469437890166131398220298675376740765127286650782712929844656366501434012314771767975763881489768004416385189156671305092123247841377405168971946275397809794313686338625285258402636372085954466635664541799367590503161621349947248800377086134207356746915890709429602894802514422416705055863369324671936075235610655259113396094178739520838764526285229969891244318857721282967591225362527179907672665312019248893076101516596921102008171054120897017623094805669651790647835631669242645051541158555287447778414375367950376887428955799272956374463337306747814823125067221547298562000761694113822663278954879200611270757541639702937223097339681151092995764203290574389675466067497722484851716622148756124967561150293943974696932473104048829327445491074172381473335569288893011753770698372112600518417654790733835904252233772907529814728030827520447176000753947750581414881937825772984342852686186658692301308307077490914803199190819239283815023289658350901959248806404316775300724944592045516724574539563284782798820585089678754074581243448972684258903881150646867959325878794380793295679763072765506891073882200424556305809033161746220476001076197611527547531220250939624203599226926896306454096045099657609097265515487071182515414042183764288129617153810094852892063795353348828492324319611802697965240101373496273757882015950584613130564605612886943617401671137948135116890934284311811129843888394481992881638437888111068590093911262545141149121053992629873429493754381487236791083761229800057394477310427174091314180409997935430245418174915391009000988008762179634058883517592565965638719491164025037125489455285871199592173964741610739956724953747877311038406016236622595710707353575993877426735004158851711467882737639855939303185400929219055079431775605416699338020211438829062238328817669694466512586630718657037824085102338175835334366991158698218922916301828362575709086760572233522018810021344882876354198487174295666216353749477581359983932017802211177655814381087816187191850321239379568303902391387933854159855967958384946395992985411107934304441659752283507546874314797963563129450727711538503008155655358916583290631977365733127733029983889389931794961070453778513277059973599213540320452077136590912208000900931349525940854094609377056878111324019296938008858904701920229824824552697753989279367941270946949346027427109429881446979453012582816313171850343464099024642350455483345586731736379710760898723417800638053740169345664567413281197193419499989238717020802491298231463783754022012583115617865658028503434212200674497940130268316520173050471131735862818383093481691998625926875754394197642817640470471478928463452591189107020158392424872056833641558020421267648475289936304525977822658281852083876442284200237814155668356590406110650944339631337396668785517878764596867301882468309657212815363671761881117872667791333806277992741421153667111901427839081326688986432433010305080606409261995323387529517800313093325054905549284589753527790442181875471182525915815443750360462795987941032382662961080736919043369632910231269502833284540288711939426779178939581301634515811177034898888048313990447621284786185363826993287306085104807987410946253924273863535016079227872045477007305979533214298659617469061904616852214922395881616805148119044116465702841381641277416790185735310009786622396152195747541967643930731399607241957312111381202468047813842813437946167739325225348116167181122529847390106572499599666798527582955712108864843499287050360818753715378428181001933814736038163667622878073466922059729595886717938093019774224440553004536687611528578185934880275443382024064649918153435549704432991264858500054982581037021304234372200946940008855584893492516459672828987884217991890499024405358315191657903961389114140426631662345871115010028586101839825250236972097430978217057294555824508202232273220317062900380703583070021645018829405364173960644858438295754146253280312077170487570828788410746200051181302557560282543615310792958147376035313169051207870436470594093471944578964070491735671317291337233892397884045379354715947466746645931126381564612568879847069175871552405319372863115567056469189867107943226504883878584695507216509376127679113950523132289693693453305319559901782771631254866115613858156572709585219469535322665321749581296544671367574447941240373415601571928709703744002102093073798319316191016711525017629682508837850333146557931045400664969510477707217175591648613107594150539243962683143168697638321219261499304455073390388291676321670996304963835720139338753566326134377687145944520307371968007100419545507735770148233473802274996035910941812485966618513804120247392403492029412349322123407324677778982650029098442213737751001710700024267873376099424872237398321550553922557343890469167275229236257235843567279112625667911195217787922024284450828094008313013559675466809538463736350205256928090625322361610161376023796324247585607312189989102106593883354575365673529786874474457259513380292871600755539550621905547872881968758605952856288991051107283748818998943319862366368220219954605178722301921465957400266795792088683797763965620762382936019139709178857140887685028525799979557983224134955563525079530381977645304936175929613200151217713416178523388898589272924924222839812996442349252879353153913377815753193193454261102015587719612990913338450137604160384638800804733769952167024031556504557453291386112065424763513516094166369014767433609010382208445916020642178201873288841965557178300831664891521208996593304692869491054025032711810592890381309264464077500387038547607034966814203505642630063338767756703587849412462982845824618012414811612287704607940595037826396738009861212534109354542195885549406809070480242058270395994206637131231705680470339035992775813174112051749177556817173921121110080289856976201864861191488822729905404439160890188460371376750674906062726809203262741060228026467060632636067488532032217937205692506062146725933129323460772667060338320307029031944214585275155848560929324846314817211636063861830324588186175496238526012988144370534069328462094411548403140653808979356867163297634729660328194652492068582432459810397495709955506229171217480396438136956066674980547708296280723617806309553872059743728925687606988331599871037313759688535475079277527155912787842638146347660223519502277616180109898822927085708802653285977731819027516962600892387465778214649935181799003402350005423705802969095981879535487824807382213789265726908131335050701660254952331950451230832711447197585413291087009873233126799689211549383144897183522240905530695237632064268720937219638433635622089797718449234885927874582906236432607775273604434038007101324327502408211954296067066020021045206371354210086303426370073419240861520638527212635769378125172730368113310819672291296167635390116493022738837399452777334443362335527874540720417228912421254406427465488784432184127562049675401301449827573369462893477024806931961272649381717168582842494213157250079313750937397934386243774475547810882904357896601023278687472977404486991585608801031523724184581203671593509475493805238185111899234700920079713310015836380698630189811730258571210495097721987800643565852133706683237846362258987894424750501393951937540195701584660089986981148005367845773038321959005021044635786118750218130941901549433833553365710670735182914099889869561563899530912826422007410943798172914781890056233045851567352117749887579505656411266047491993089539807849056269240813945299514689014632072251663496902460383640896253762958935689272879568257970765930832329544082040577017922311286155235355288434325450120351056949998529331497778123785953486135407680183733407894788809619781182946949559375989279751158113191250040998165585827949814642914027696934044431578659361342983647288459410438013844829866709611327034473538446769236995986778717508876887950577603330807142136634845001531440407620693629006406302590173889385254723718047123991912484057299144500226802697044725916749488208079536988018917523664875753225047292223290010028394966583871480033810217938181145031224373861952666453264219271159052161504130199886930473277304438284157049336085225091688927489895204054390239170178708023824304408713194552178593147018234599665904348740368608329473414902109340849510578715073655040876526569069332292975078983749438069936779670600354944933388338405857898049552045660831211470300390337430419322839853758257309315573281352317942394457010369866425010791548934329286526785440269988488602786616734469720939463411139830320058599870408445382856676299993389139833886561504770338905852964676862103376908723556924097917980378910493327726029422782362460729930983709985742487226242256143534209545944541118175966537515247525360358908703563545778003409329473733924856031867012234527062218804080686520199095300855910744187718985382388278960480913313578752512507409387894795592894857484227043708448673559719997952615789880100511158506235562113248077972956201295091846083078899452241320619423115323500096932493331546816336070374111380453915509182401113079394321594184374039134237776134248015824696744692144232516501169198487673968216955150834312819376403270868383973257263330258558744215527706520289709257622916732125648748731269848545203315547868749168815349111036012723585255281831572680240925470447712167419198357419826171882848093192387468838082212322299176480705925440610855888294294472181373415088022093617663158249056065963846329814384846135438836204192341908209794166279943446039368034525120086594084479411698775635181261014378610982380630880252836992919783721358276047789831785902780649337919871731749926397790038818617575308419122120386359258517947742904992748780641232952483283505050674059099869306431605475592161760541501747677945077285233483260147845336492807842542426866453231963156824601843392640456546145308979640923119540925448198046953980947812961222334174710299085716946720099441230193482359657292249220423668160428228587596753493543632069395646016098819737540422951245540292300990456884992766532960992378097323872537932415519962062392104645071698234399468105556271350011096475475835162344109773037883802502922093535489685485518839437882526613774398507191082647981062032150448443968226769993733239283751291813946179972912813946899254489455178620923902337570112941431687468737450096939989600149328862312027303863971361961892688541921486833881953723608781578731086361977372189395236153421070734626998918471493446323382900413301956072758207779279950105636307795335114605823554386389192933607066726555248009256842037834415243157099798333166273080482658825152260525798556500377138615481776736077937248292939477061566491202117933104739245474791409159058851478187393422116423401232271615405273814847750101629867227171256512804859230929900933129962410951538450905362137751919350261849991829374488711695308855025124854802167108927398272081754594792935713611531526906384736631278219807972420260919627884976339224989780470455312235310827308450482955614955408718226795125401375054339464816800308739519715956227622907601454967367255845533746576223825244619586119300592002317945943378698661029630812243207476815654181262392790270755220947808436105103793488023204881229175654854076300316813270673758320661912932032749987802976865062778619791505009643675603629542127710624294655228218951750591016024433154437058771515423793608285756120665127900349956834185804468086233127592137911712906334189350153253688126737101294086855039280291161966323016202964384790610707289949333629959493807908397002496259892901711541628232775213363886308770434861062166164468181602904512415935905845824836881384685888281061300712144647632700682607709945682092472076083998908511401253610412303936884456780947440385371426512008366574502455406229145521534111178984564675140505998586175677869944724672693065831039358397926491722595922018798439307679448342115043984466582045830485235024563106985233674504621121777271755410997003870184732929852530440463147911036488506906091147708780958130057186729315024420993357300333166175043208093688845624910844225219570795859714301590763839138273070740145855214910957193885048683424022212717874451331449331931292718582932833873589223392609713053643841955646995547744187873030115898300121318938556748068133333633302915015481405756556908433564374096234951970675864735132711196874536524329711423109751823814890117856942201261473473139912315523862478087102721844057804471268579810752356713784431579545513773254934362128967998448470008805755430269647462947510124140530131647052471396429572449144811871177999364297101009802357382850476976731795867313442227745957807025572150722304676171462216439820021681674063621374494114381558988572580219104882089400213478927684346143931109981287786763596524060777003734296573681353966063694179962251769486660268950235693438731560273179083013398841147819728564070591263228139704264669605298458034125260496641791648846786233858260853926191337316410696393998202284910299214481891575235431217049187222018899450065761545242180108790424806889959782676805248072298077984128288159519894885958733431238499145961770400395528041405571894763637575280490117058840335746001240097599315483717814412036360180997065428175061120720015548546278479867754641939541344470403089720726479548591919705548136551414469703379761996993233034569620495355632174258574022445882912943487071748662033504459158234785253854566348822730311080680858331439240460008577656323295001610363444449167569230004301351290429738006629240268949456791532238162894346228315904750016178331047949712147952390181173936836292958026830138717784252564384294155077369558582999406210059657997729808540884735251619814918449626087581251622335896295133484027335061143503407995320859970822024733129932758613909039541556947231888852756159977045960065464204944021104299337993130417535039222538498289205344568508995009167719386701463436761432106322941477367031004073073713774622695169564299295484376021815574995587517971770492028065613491544957550107107469128758434886817611538260929321915087708208054139080410299013077862437079089859061414742114441747404512707271520957973590730048702727507983288718508618705833977687846441095798695458422000392061317434941918501610919901632914901264113395386441855185153078381037774095350306935192585391637693984647104850621366292012377841142724142244632062613297603082078341710077154510934632014194412407182739736731418148432019770738076503993476924107859234319124270983105794722330189182981079285267031311261406744175295145461227314654749371107312710293963930367147500681286534505034338401465896328129852149179973694779878016002184016686920204354202292198778411631148850911967540932603449509093305504697509762538927149345257213032013737371734549658976261916521135411341645208585185748935174433798713233612775915190163353518255144436559797773388150875864338576954643184968604606094748258536009039085683935626189066962017237260115369473591415195614232636713707331675137155515476347611959560197591754518123110027542682497246102464723555602784218769033502322301024657523490779951704955642818181601742872166391418383720093192788585306472144865986975222952333165734256672256264499396206441188958623700297618466966041176684958419686638964141919794460787015696602922474419948648250567802865996803880394854810204990383218848793958611911594977854083475091374527246849605701485322266072115452447520364600227949591425006339194050751263050665913347556405612473419719122618456475188985858563873663121744197596794549361657679456877182072842628365825995345313096858121638153156213267637215599395618540310581465069252218405619322115358579570578936613683698882076394873525012595266947762113983021007299605542596610935371599959025519080883943409115942333001952557914256978354772439536788102835812973146464235188157028284497959395379981833550636138373830419846651962245334773934996272163158561661674687960335803064467729114782579189245364062898189117511322522760964851375364994112564963362333993704572669734548140875770257555945040831512789996196577807699319680749348293141419522465373502450281666528019282511609767759422737613794634882454066570961166677231471750147694277161767749112453515540852739306694830360917401505846785780360698011554800283682414947894978562724326492442041143197172508542643051884717194197483120344502606756652753661320417342789722433309237004637264490527356424473363441224681071501043865724374160833675813700029552020874140684660491499255215492711289760641370396992304494156682543207057302691683776542199499740726041430762276592250104577592204343679949759940962286966873662866252564533680504242558348215420819804859238144976965548467880346413534097624284722623759197815141856991753834888427241734262014127047020835727082271129708684175519052476546369852004772604034114754331982305832270354834059777981410734860384153665672212552554700671205017805330243622402821446870581047631529484058717602855953599123969298091204884469040333531686374371459242030175225022996002221789078182476003793289114771541531801065878065632578151823144615755052751148809298972850489447959176041177180291527728661073059522524842996192876589761366183402464385193084069208729304923662049937725128364585219708050845329947302243191021288699905549646905600359241295903102296778061013311650232782838256720001029096647538600781209619456319738418672963299145735937581878674827936784479748435152492698386141202987754726134613369195336304158386654253006545790552387777661151730161480746138088630948549161013103118858993383258947039625727508541234609879836122312095327591209385476356856152750047174140093101006528785881193593597014999066398087618298009461870905267169936614798691611190180740106384730272298142257117643703519596412798092254744731137225798652225295655855987717201079773122537368419237866665773065338412620716838654172434333047906012354526900162098923898654000352291125270602622718327572957878093764873202541030085747727061457639076916677704482662209211704741194588416395226657255788322183572039478048490630734197512500243833563296522474630098221765365257802073484305874755639178534863486976902451490420050759312619539823710767677266585338123825357389389196716394706044639548755231779414555847229332418478209515835164922086968354729719842005621355645356655978174376819591970929655970956847895180253440620827888344880148505975151446848424939980142452690742347758242510515939662203853698576318892046821910762749707626187010169777895540551103680844872302217131728738069261402798052317172933938352173778262313270356670754441622147461768195546997863751470823093523464913398007587793051489901034642019985868128736906684568934621041776536514174318946879622283616572021231281605912098342508213676820170253604588399266855709565910987145494874730335210818775202343837975955315311793538425083008325372242231633153830252464751866929407515536345896472217685233849128789866019746647161146722964804345852561461910796178619710100707971878342083851220937581226835058976900620551636384249780189007424599875770926500466287137914964308571269008154192267209103491055078091433623894185170364099937339304396674713299713122939042739777718476065214042896000422299993607412005511451206301244787116588661493364969881175693731086543184996250562081196198790484328407503791447412251230401504250849701759762284948946407409567918683481072611040487029949940748658910941803083852513108153219221327771122653309556044952931135313174003737225632875144197168293581378295466706804185212127141824476793147478963367169598360745828585853131237276494994694628923780542540969321344111413620539969152065916697816465644384382100302178557121018303478114110336362134024409573558348296217159652288725274492403998275184178386655937669625184429256928921881018144029858838104400051300641949165949934307286660452331183114872572230168861090586770062697950320133103223106502501568390750495905286206153937802162143329654890466561716561470622132020188287635025780020123766959212524653423813145969030669190253138819105530725367515489394732523598406534468838522962294546394808674233970492149753382677532589387852693189350448765082491276276593112467397450868227735697024122361553651209730489392247871182476494658423334499454931807693099596009868640241623334676599247805841059551579496030321567313272102394136440206443466629484484312131818421118280009744487579513024590696722560321234561743741682692936571050285634723238892553148572342031466621129118478317114978565368354804484722857683255602244592678304266915978430215022963846241023264671909201192899319752144174482734160587509959821927113745228178225532783448729792003512658507252298227135288142433253389213942099748615220251642452307028658045655549196154783811441089918970818302674354854333794991068035539599704633454536161693682382199374685226873759087181084652877433291210767385795073424511839699210868756859224138515429016134786526236317450854170720795816548913898453527005175443589314328562711175116684141263704990745437933712159176187692643900295453384329466206178405600758904355053535437207203307612552990951089410810596627616496287994460062160846316881478742622466832524780408813921497169519868549690521713677899445016204954227106495422245831226364547900519744190839301937541684056764306131500881394861797473129472282787212390656097324696632072774237409071160491088168710700114585235062905093213395684000347162560767910864841933351837642937681751271384515254859517002853780194515549785188248027022315098542597389390432399100100973713516948043455517611958650600429737266550983457458314571414838151397790803768790998794367491975030049281784759728089815328937996439973693533127992011992698191482700597128648805524555440775989371917888435128349307941777149349292912467677342563504972001260069676548368558307488215697474285699541539218948219101809634370804502735868712792681155065250972562127115923503046765303591397463826172257930142466681431670945712543514773148664103236645537332099679635851306634914016620413660957564491898595759047251217772107379902159911075093038835965219486314421510212496887127768831528880152631861073221074308021036758998537075677719850590654104039285707444670270214960393847332812376494144307784787723896931209846922219629563665514690835082832427828116904576225020459784756322939478650601773623171086814314539902003774433469365232097097918008254788444488664878680258919429117717097643569568263197100273969601161230485696544836075791850799956872900379006409907494015038949637326367830433732696772273485290343315836129631006332151804481346871845020148146240075442924193711369538539577212862020900674618793747853988577097392491095058735768421701238181595543352214691768397692223962609831911710254000300771855979746716645714868096442033104718262745154699464599946064621748610340248655149278543377163795380326120368974014888350039793283357804011813677022160257055093156428879059915770551761027085611685392430180491230750844534625024052393637021559845586360363997772280702659805869058862078532184324572124120121710634413172183855060316091149156210956612543963161553015671390217657860419500509502831811255259298004992117579300690698041817322924564851720112642920427407845782723852850267028688470819351030465263737407221889492052670770107158285487618866171461738730704845552294987001382607558596047223018810754593734910167263004000272496158762033966293762168468056375482346376999645375296073355247213426054502276021465805104438847060030462022476602934408984576173749805016910836661545769903356879751063003613552396944910981911704882318435882284128089826769161553765147013610924714759366581974027684434902194281179201972245173171085072938309117588618464728795843218910360157167148848027579124339785318445021048471362458361384728923673616420176363716024778618062217305821418823861428051811402617290162673771717404811509929071908205359908126565004262994143201417302758058481440632210298231070074599133716129626072400676680503716811864589976375902755603106835690205737397465631575367253458112033020905404440714998316920901323315321974551155262538118064765872261540987241454512452606023166055334462346920102692407080470497236250319501795717755829991314750642160489520183450999460275812875553325923483953459403398146054935453490088479228988279429365664007709488902425690833046091795653048198288447405220078053336475659881294851068422681336193530752214865269369806435439210957401887119974376056855265326892203358824265217405059553703958250926650048571030383439533414858173839140380616192181672251036429666932264167472825063501310091217505235736885635905952396368684609353961888050967124375851840051882619244521754555422751517091871841100901394211489474491052464467502467992677001402352966476495443491056144451462690476560623300416849565918568268187002640252097145454880551587800210949401466397892987633453945595640392368362949394623807514108273855708631062718106625787157850919721249254613786791701463619272534557468528574731379445730512819511882150122302833908369815804941859782216012092851610591042131135994333548674787751127800454086637532061076324809902165216760926081269702699977250922893992763576633874310222713730329868955969107783400951606171376485281209781698746727781037388910451433634314336222879175738530181959801333210502261435360953196171095738446336654155854999420349872012509308281201764970480866205398513180821270505978356883736839493710166853141989430825427689251967968109008995055775147885066503096285544097547573971089697262114369688247966936223555946654024238777889000996616843925280672894463621389663743907513175274581774524660311833400663284588549427792529521510404155741720095805933911753685906517293533461559406251216643071886217970656903462988740721448213072412580601817312384411938360840094816643187740722951731713138686071546312399325803171574413921455697699524328121122909238404543149577490224226206389797526338820005856099742321350653854568506499484867733182142481357312364214106769384455774895818956543334804180040250626219263806901877505655403080008536088564386355872619610516637581613287583692657303205757434849199731533854212126609295171779341999723004260711499967773366439336909532727873308684300736658513168249232910685484060770747572637772232703671057879440785252553816864758971272713079881799543408294867889658334088341160168800053196679351105756430529708082116770654340214884250011661176781130556461158998840267818452514910196584086999446764132466347720376178040781964727896607659172264158164304322322451669645794512430678868096104297219397562420917627401653857571730749646209930099940410605642131313609753820289348013693615833895631466117676767792075519579458593242229461973884154812838676501751049247428262506424847251709826438360983662235886789927287377464036229281652042455643548699316950517851226438909700015085057065516655036347678825934020225784564433566720176398679105044815141148729990786166120912820184551044786116578591417071261768763210380872940735409206774100581189453420114468325161027412551877211273739438136916842878682566817599659235612059219362652333947408920828181241682322441394941885353489609938824355912736224144519617537053135439438569289599453600380211941629915006482940939460483732138491560213894519769832599583674685648385786896807702398255044272625690263963240813524689543837500796644251474436808802253841064779961938724312687604290848600455349005173786320043679270386357705906807257809502534896667732427066095118634764719258059313529161180071801605035057251159189466763557622201873271905275553650531249614079595636952647024927974393732399926089785968404686422476107793329895549791779552153674836173844951847671418611303698247047244185592912989749634279827189921784823626366244569027981789608372799557371425506727151905200611110221107064783238003049622585475417213243460910356886495328570924560543497903644692245048218455641031559384494162032846208783471937199371360834570604101427013645764198275583638534146054039567317732999308012395757732556473721271297432178932567559848228998507226629999074279663207436209121385225036803745919735634325863267534371555303754811319992208711176611276162882735750862481928133695146397003326791648628710589253466780433264329320100197143807056988011597024048874959280402922310914135788721596161977316227799680210693884412215281918377445180284856779897604449277564863477602432520402607647733500680803621823387567475075645863381880990888413516638382455532159815722703422893047260981474377424970311633317009650898170967864538932404805028769548355866050565867220737254435523166277983373747024353923097828411190764437469234241248720311624591315313398034870010448662989615968478951569053805587124158255311061165970979480681108308420684878369007777370137426915099965998734663595733377382213311972159775246232317589827558084708149333933314171123474401626361254659803136099532787987777496279387088724962575945911743598540501909179768606405749914050069229274871570778050032687377844633298351206962657236245017416909939120737890552562950918467859666330524047475825693882408458897430709804943390442326837486489960759272848230622018721944939596071875886152261370892214100505718637190709342052571514817185414923582762732147214912483357446505707190551192423368558606940578510198462588887693790550656739118498124980775376554977034304504247323425239099499740847751924729401595669565055324370364528506570347114681197474450232071191019929957022718236264056233946896111077578537165129187478111348183651446274918557839988943531777246792081249273761396364932218872593894672874612331852491862254341744039391549154398891770296037130814145409624115612799480233404854890463534662635831058762050111435644735923239442586406152545687855486432618481206277097728291716405926894772832500435985549621930263260462500086886971156952276411175064882760709335648567358070364436909506857692600590487765322097518334652973198877286261764166559985901275847831257608123413230496594349994407202725912483830660823959579831699525920574459108514665714502219696062221867802800534783628404759543457349513078608479970585949505522851313938932293693095506648235822139018155030605289851398525342664003721082206863541280771698164259591041139310017788716528170123829488121415118487398713815667815251818711716625737783874016344301873169852192484961794343087047035970479122384478093244918918370133350756518454584987451085797685401222304251100311943310400901731993193659349230367418137588197718711945023223943380668486083374716804969633491513171798235586475527257778413048920380203767730018524238329488210528472486601874114946114737420677536761913821651672725837926112383365078370474785987666914380259944441502611233658141932674337091100050359635860106884990944634572195411349967602174359212186563670665580238322501063006926251698431091699667683423748045601549789166222155445988452526147449179638708270132001951338974214770324311350820690839864405034411830156049331372135968942410284596340903248753969462244063334294276429100371684028504227915775886819647196979824046714361923942834269889135013248025808348423088030689755520667670001867555159544975417328221451806718658294016491318809837589467588527281437261502664117850114735000715766185030692481889882063719263860337477099152725700282505896412161996731875623502529068790576997887606641801248530954847662860962541109821438482004319791817836054915497847056812207252796414705610129822641425984021490225227375489635221887681096758130992368375967967178804387564508858183597968990853174817176062784356295103199969166716255704955388238647096172925536430979481214702708576195149268381433720986802883164618321086037492671742849150436615509110138928870841461669328769865959619064004603783205292343769880951105963836759209110236205277648043678618415422182911530108390678315256827445569071217702805332029090167751674516736542790915717821624217991364321183016276605450379370335639269676827375079131350989625809159941292293467864363744363976336279204210714939077929264694973622832650551408598705138300117843297529557583155516548459632940870352616440851053650171461726565790974727171487680714266243635951539162399736452210211158547308173635773591190740821321041192757690691174527477616673759271460784878674716856063046737186327761449305223829412219184084199720007568628831599941195400769982885274708574917040956451025367830445691726629956587409634132696092956835937133187167106155817036694443231829942099033916422703621914456004907517479681540184346631398785094968365591434166145877292633682479179622235671883182988282317684838146887223097674092267065513606426680998806833123850157720898355187470514854411315221318306313615906254813265151360026287682972283304848352128874673264252893157500276019932760782629580550729760764489536374252125983713382911163556959402530092799982575967820783340856630959659916076667374662648424893439729384369838275533606023044763454655303397653432168531027450666485042791676002692083385715630284172349716797033672028863856245494410542070918261836140673573379127315109509062340757214797381120143551943009076190168829497791705516983870867053353774508111024458647933731528996000368601217791348102322354512986994474745524855428864297344756824953290735730213254035327214589761249952716332596787897020746583982670726674273961352909180981515997467146270179460869492587057038600023158557203559259983726527952450591769339165775849136274863029431438942947002636812114758964074907449605059414066377112330702317408124480095357109617685489215662242328886852557519077494558274286455317980404526838151086915933358071420881681941667038569769446626444311882354232341509103433772173984485660750466067339810547109531969800831085415281912647246225008436357101067800875725291384788685621204303869592611845845390531816730555864087180752483262342409025489495678349247087614191995220393744581673064595180874039417719531416111502662570360269517334504061945778637712691579667103982007625145724846748177876445143890852903359338777851223450901766208034641913930519598091952820516310430594714537005262553758936299727484218513021019904557193400302630908922208200823154280302783295763941541633976338895343706440946854142594017918207727309589388779411063412330025214351177775720735567993441374605360379921229944616248892123834224038710926602167150518541299211408544086084953265706803287432426950446052777397959843093103975916973842894023735651317490322714230363408917806549741694486274983280958470978001075185764096078310353538482891898293271065889411204378216508927596409413411505489921265099586122361030928423334043670567746999373278988911017327659623872085176074238442305211727079587097639681330330092816481903535641350962579497527966786191635130043407611039987118418393430895064554607633007106324584026542139706044900991907562047313697928203108470779932752749329475097225667152624116555278347895487433865264807026482654124952460033092811756404943044318606524552408993778261195574100838957985291949716834228004474848651506742960358129874020249604598278137343940961660518306072467265818891553248070864989572773708104425184864259099414495746128298160319043946535241483308948796360320498352211051327563725861086473781594745849851151523533124198265164402988716329147023903630975983708779209570235565899534128201533997026422907059529954032655342932346361880632853127160634793529607357976918221637613835782599687178354375934719582883860399690691774046061219760055516022580297060518387392131848563402005530120253907894369865874990831951508402259937615187617654054455685839477463408009360914340369670527844979827654702935699535666713594267301512593258577040832270153273013840300828462305515893653653025701211112498523537731009611522768401241149104699119720553292075007970945458093131938897834646316002020408794542057303938284009410152918239886574740940886240042022259468296117892005636249393170296281035955372426762601604258850668128558399339948186939019620928314874997843413782805688239928807789171798761725721688428036169947691807737606878405459502909526424023076547767491018742159761134047117240683186876815859257308419842286591617956227505363330021408430786397674996306405753773617190859282897486138222984278470502278496453552600963377618212459278081294378300456550700004108404309553063659047230601619204177575763320729547886435463604907434058829007527216402550740843592735240378409834240517165302316398470301771443028454604165871894599775517665203591539174100559345730858011443878717307859157406325326386504229963843633989660131809374310659959124406733597952741945432468967545563624400565506885526133261293066178152022966199910957384713422590339065864991299953167381969059417786936260242879102309298701811177876750280729526633519070906907057042137784384662772129511410917006783513969581059965118355346165118818811396430710233450852420313652317628325640090502027897763127220256376080097437023971162986843355202230855426855792771550093407239629040207378420130880868993205089089233597719438553756710087981637851127894093677929788280960587287936400696104812978315695817791874475330006211524453793372634450748204806306727205363247171184869438125054914300654002635102898651347518367241762924310568978796006777476907188734111196611949515500339839871504251108393131415933450145753368534299061239249142295064788534190668676403288580129742587831389677920964453303065278324648486238611576800793421445796668570765931575447808894111732711832785960179745672788909223703251641695580015027805747429317025275353565353394723212044571571143341146475886239775956449313106197109824120344118053043453053761186518287543099750360741859262709976643542990487424968695609264589348327387162708276913532778658602606152623018927002635561744190532427965680243557773671068555237825833209364951523297852152761328261967757374974853585962366278438370198151104372510210146691551906850914449204695714898564367692760435543228846297521813647820163041216848146989436399150175174099603298198566537101494273088560862385163857990747656636773447316343005796322667953813802737548239199532085721966796720232722655071527857667827172416573758675575211514860719378148560698851346318262884551504246016854593674111467851191247116102405990691061980872483370648663929118908063026793742638707214261274350019242615678430086693660741504245569830816332866962724244060460209131416663036748600511312985427285323296675023683693516927334587350142143887395710524663498263206164940883028949091053431306047265559077172862005605101209867167473447370655522842919172774719115705649072139388625702799999427479482011166908187847686191361887486826862902267476277834389174511618700998349860395488868253858090482175040698142438310486563381311532045726015020034602330249287105227391197276731955088099732104404445612407592146097687674558218038950961429078603109462579422046871513436218133199117121204784103073877606018112543890393350189391109131081143361795240783752255512268855592751222670125253717341302142685977939847977610926440761712918233488902174880023366251114420602858766913415432829848450150623162199590705645222034017866967353535448074164262591977837163414260155600162894403830715586899823503815564439259628746950111389445171645046366549840088331437034197838835108961510199351641572431694948573319236442888684779973573708704328231889619774066155025886088366945215655311578584140024300039827739615085384925134466950629770947742347441409747926186502902248749387215327569838806464001969841198829733319074529204172171349192538624106510697622701209799470189262352509867937105704638779401550908345580878251875764534648140791823661613137572185140909814420251076222795481919744258494717907374851065005512416581504206906320361162242491786664299004262083252365575312346720983336668107069401054464547195736115018245869639779195312421923893665393403053958100680020488940366202081584726574328962236243108093295723107056992976119861401927478624663349277800220990979223358677301105379275978833166823384691074481249313843721038554566414525157926626998379160950821761842210418888164608937422116979295487850227088649052302828734312323460770290961396573331453718813596355094863088696904545567959099862111677531205118323973450923088077748422207651823360340643647358814912428890631203963386664390902564676010944087398720286985437301836614707390371182670739267818272463491685578434471644683897948088182949972507818048814829324763420780069179857105779959299482434847321962483785252734173198792338956800010465870316977278498972920047854069427201156083256314006506836690492230926072518599626063293165366414416663061571004055226747324275914008254407485336443932349450010191979688840944062706342536444297244250037922027368208080228932023295074352896910933653055602280890722121249078451974730905473228658341773330434000656858691374607263756124228363325775885843062268434184181741632233296679616507010528175072871518639817208846754277623422217532601742250233674006657014939384914132475700795536211004998924003825940156023108010593492013713128308562211654127357043449897673806536745788138438003339571249368498916006026777912577159418552550179368972216413415091762748943778111794489871823829542484238500416584937410019592498500395268797387149552247543473780705357265193861626181973655400555132029844923549775092204142555675088920762912923736467145245997957140291371883021416513240310271535820192857544442152871011513761528135602670246932804140396951432446503323143805902087657415390373260253412736037961025950533229468561958606949610164901499211617964139705219438045264316762867243876124152658026390424411421127398204944716890552586701095158567324206995417874051318834007506200583903080271539855366453774523266046437664418549103553030656319910885867643797624973330110439016910738461051250584204823091839889399468396721354111612875083233606652149484171100792361815043160849569044038532838519248144690296217735027668203661808248207181562184283817456032825953498308290600822714643322755694752317306783452278305555395121694523555258732965176876481817628587191245533004076041666957278640874626603814091906350397003406042681686940283964514232832062837212868480645298771280662445957164251619858206123167984792583272750597295651714839310997252216891626007465679429604424095762711530584899944398763196217915192894385197816041501150883392165228682558345783237022314066226235615277837781841559522859790577601027746705817558236973768200625685415420897039008173723813800833437675982569660796455132783652228564072495035223328098260878499056722311481506306426008738554626637420942543378517780225060184325014381567756338654313990396421998867595281364346916532729050491413970458129157539281550547712210738686414517580319106536172568040679267846574405040632377794997986401566203232457844212080918205049204125187953041707050341886218188542323007728968548397633369887988432940705714970465748527041363553700479373656562252596917142706510346143363777846891102802857646933356193379401826600610680195006329610271425347280481663255342050703914041691874816261214338923108015715205685840466842153106920171678396941803500384828118024861162766680584721941380366518144807884174700772315042410163426277991257070819401867906436776049406422795846022601357611631663273419290595723181451542469033833347466021876308103604846442449819811724582947617606041421215244681736377984169223199189184087386667554988681382601017503177339176703883800474924733797988072906425820431447729791883360673598439179957410193546309413685077387620082534072302050043688653138389920119810949395698843693707461065550753708963191060340483497835963125624756515001140104831446637743945748289101535770862983339892989215782296791354118215636416431222787767398905160786749368760025155344343885065817465200918701757844952814585532643672209202786750914661051024651878418817291453636300235749926830739480997648053919226467151613433261035360111249840822819387807902108364201623520733962800390205956515013670351842200943403611635858274730502505982589278592215013954658365843335718552222041750079425578674159644119969875616295177394833093766900439266791779159580778822080996432703191606174298216370642034690153095090626994718853048179621183509672288789511725569173822421814453846037924889891797294393342253243145855863713800122899243533337972582497108748398109676187653757341686459045320789639412210211810182010774588531359778712028245722252438332300237685296347596788185548100273486894955635153698811966876919236081739845666689966782125396900441779483774422025495447912045586168001700599915830915800565211162521822480942252984641244480122430571944045424168146748416397597156106067529272152881623365657045630742423571015909395954822898184876896756548422132112795983965493630415338986066371476284657119574980279564107677245804432995581249754216445672829146578524064643279392112606936974984939130510522133580894111290355585404697799907723611155984375223791104385853102962192192587362240108693200835408563149185394370767910852079376040006900315467044625691599143490854318586484130917730271554433930705575829796780600228439479911863987499050844939209489377835601306544928153714546149002062044623979427147062830329470751592511499998807461508021690418621801418468359665499426537667525510941095239718727319044756951980747873229357275346125897999179664054394118001393517885372088014295063177986734288548897623557491779895855494838494821270577568217454691440101010161578670732857203157286050306722758679552233586441619448712839314804726062389536389166217577981358061925703477989616018628234809602009429963565667908968483146206461234559909673929042344017891056779413177787580788845454694761724208306879767727932215628319972277188081893358636630263809591947591984147711458144314776684383409578138488220046261622712636686972837784859305167840283756951856715060894142352814244279779458084749851984538981411026135328363954476806195071344916090762342180908033852348151843774439442989920868451306429268018929433855985168166794097742007731120046908462936513687847314883222065701639712303330123052628831154673581560456543423930127188310430248522161883460235056745238408574010260651384743592865949089280873130927634158864600776007094602675233827257575655133979299001799993918655243473993716096443212915483075239348345735519246565334443326364631183816531494202806534656786374474685843650003606699796575022543020486684409620698189314739709241820029360190865393034164628685082238067176749077709896824817544339121803796808484088852902389362540108813459263865534307066974905803772068838110762090291674903114237555366689283833532592905779980659140160841494338985188756661152100124136784382396759767514803167714101539592071975001775303993558141011787287613027151897341520112939343920843061603281401063314451189704149148593538557695228197055389951251061414013575686070663330941299524441462166199207541846859000512988003364570891723681530592201116861971556876765707262415507004240710059041197987355449334232749536391954703090499108793768040138039010691213260982461730650180280696679897566322189677631296451818053799766156784859029809543401410983863862648089874542834236832757667784257938687496790176009176141232412452401467279148875105471978927391974736624691223468505682512713098997387743852996670096811239435470668377747950001087001771673218063728764897701722221977604993182798910982120324978534523539304678462706929689046786975121739003494427369720102659824640642424947929355394554127734296579517731081846658079089089967147071567273993598090077461569504463243735536630548311348188767216773876470684022296401908146989740614937536275210137470369056566385986232301309738869486805960072217467323025532224708482817185208737493149494223292667724153475702787929701442569906484654551400709965111180289310344231852282271848608832064038729183232509440372349701556818090097430280058138957705002354527662275345207174294162034215244355411162767303503853247247182792689108463954386772866544145229232640869201547887124281291747400096284731776543567501498242075172837734059992549365741484655114200386122488291844024137793059870249241497612961044495106078874508369800405150228680130151934458355612033836955325406028799976475273567757989283950402988508703292399450730521836230128764522726401189865017906705860235878335098059109534881605479204613197708328411120876441119561463629586773572166448804903493946526159314563127278020766866294993291477457077919964100181400360508867091339124545321004997800004393927585958689052569724201612554185023639665709236682047764646393488816904248018628611401340919056063839053222604314310924488153992627805409962185628121675455227718599460104372863689161958711878402447318196771194755676298468470463618974263050953704897590842892452985151022660918454868066464139359748675176247792218034013330773125392774548367696518886001350826783097837445534772352299338627318286559475442352454126316538455028947502555433487661558899310239781402742632975737493316565587171435129825082666533418883873819533786287414218513476081084147456555772681210826023349586966596797029239533947310535717137720412840706523178532692192413512110393652120899415940940322677373187887323703777996272989875174403847074851428711224941562818921573975874854676084401898521999486877247366672161514973489026027667731484284613759484099098309296468595065197633955081476884105944589517717914508037698299913805744089414197147310388652025977965209984032431072106565603370516019874317221945861998724999665056817398270236039166485417110899722394926083771089903927056949420403241882138960304793297720670509358328883364506579413835769696121948827727218571071177127848137746024106209362983351470380609679330727436169146455039582946847919482154562134516404584523702941091321014659710738624568629400054726426810854903074892684727622535999958352252894305728834441137709151463303443716316629935235062203727231283284596027994482330273535311501482828590496946471386749633814574016739735654079158030451988937971965917510625737754185062869535818095932463333860239014818815795595093335612373363583020500882542432468513393693735143287723143382790028905177863168584708031790106208922994022238124625914520280480245367507137532322752759951488404734263926510228683895139399843378329254048124513779301934193397851150744228076188657984632399394505158179662466237381127108970807798063548429440500139560920382162064991516927439762528294271918944121161175898829133514816959576125184551834898027236188550138230676612426144106834139325563005083824419921135301958362850649477672527376066388992442265438440211519485434167206463862037488299416611610137496934142219986963202407808928009842605654576294744282223340828493788558115127764331390659749048913206645583129833142268451679053966342052485545671536579650614933327856321163414386866373774796450139039996442042511303847652998706185708610332546733914268479852251100810142611685184587043587315141079889855768874719147289706973712525574689862736286725001359078078479193159789622210455626421035908075910817402448138357245613306724741058877035000975430325142447431782222482967708850235494690754617214844483357977701099661759422370762288849626255671195097949535817290562997628636146004405755126247005327246018001348270389082108586460578425386192823928492749697048965156417851363009288352804551312682613438360140513795811926900180639417928374075894653934689129288310855849483862467349733798588004666600989790802136619358316230407295649424081813255658150880412137056947024653121398637468098717268787614207615226230432792630965477298842817753811155523689469566796542373712387373462481266050959347443576879208184250372887438789126996685132449497525010118721787508538785233984249443123166700409994689658300598791788730240029978370684956564176834443394169106348887833618447752625722039151299285427928680275515418629134772162838371833028591160685460072313683938488761847440633546553353019075861202502025642158843194846923463195089224993201770093851349303686505465960504071671684756609521058662580082236272382668854558503615240892214679626430791022432588697116924020605756704823913898984933713617772457296042939964589261445309407714709349724031337344370256840841547551265834094187506451606886070040237397932674182994557451851167322330621322668795373218669775147578391895770489270727844290962839424294536879779615700244242792146372655986685399699541306287363569163782712314381927309116971876524080900427672034205686993245098592120783045322276950603786581058042715012971689255099656990453410603890279037186515087006652019012906187107520831948549223317545601866609292797296194347951376241082043349555576629427927449617320528051225194210149128818668840145470321322741957653860161491579312348608304586809976168213884455439788865311445715391685337968309098330800884319037319025559854238029850172203368092333230429654163342186043018420076163706492245795608703430436741713470559381592286876356147566205768853110009826971410911954861174068733737907229163036929633493857356624135564857668870151200747868596113762822932654431715090269430888683677994456217867258249082907913693195363589643168877888737226472821455796627912263517771565370545919246932615333777855145243917431425619237928180429869571972943151959983560883687817200981946931102929766443232063322712626503304532879025375508475381147353386249240922561100883563819484156586786997485965061807211605019885119910779835403934454585784627683109995465739210712795391725271036006028802281731753106855694405638849150310521860625956785162112287192958051177381806425276908323283824684394542277103249788441223773731764467348645429427962714604013245804139989688280871614331392749845840925480098632403966320001180615133529710065091341377332932108556933152558949480534040366341730130618453500679524459117102831353834374379197996286350077888763325514992651822819975891315014208875595107517953430094505356688982965055972814344778851579506461403047474001633758132776713537449516682813212060459999299221047545715045804351030989006451194929812538570728110365499701649034903611794163505012488246486871848890351222491689553618200772152351569546766134975397873800899663771322598578340767937276487772495031492193658382530624466139724217471989079797697342770173040995028804173789871304525470109550868579365987804729263660931017559732718297286635501438252836018145594013610706890853572000672198847242095302881372393137834259679497396753247003350633248698237460733939726151179990748367170194295837612958148717765912205224505037675095403722284034596494644625977653718412585030923506447584479352496907605249772351663735027893035826001482918426957942174144788348073714358092774637982802150084682930722653276534738190375187239450728369941364295726612651491027484102437049327147021252906426554998682110262773378137737817933496015324876648046294009635474076930421006971225092607936110157686811709870031788247075928559055190896721105435251799976347603390983593014763627944761073412661069720590797379494326938064136490275413832869676917404610715953594292815910795594855669741590633733878245451992070744900534365740303918963154156518142587439929575277558353463194185008676811072675812691268891204516457039352243991119457711499670540414158941919309345092040625248811235214030129747961053826039057568172854992596066026668907086145614352722008134366853049738318629121914829711740472823235015024938842189767894708275881858828492313596153597611065866426063826908372666179190012481514018117903373883008602055919119454162626324999211676324117329324252430850684686943956759147613400357440154224753145207057355999935926535397579732661681709663056365978863741286785182729020870401443287821035356662732287156882932284115992398414316252479576216118922278631713047560785380095180318539490198723566749928305425430780244460756275240326302343328155744286731932744654748898183257219788182480835317507634016473375242300027851743280815276986988286013577262231513660081826461869759742036558416791884971563865017241378235429616537477508563476635284133226792643121466114294874644632159179804321639507205445361264525161664184688837531505457169755360292157655988757531999522351608021313633695804375671174636964805582835614504006626252872726147180893444450584102039921548827419501743840852736034038196921736984096021621055656639919195448473050938148432702101167211668105246626396637588111225540978257191129919828879790814416442450977624490605504433575333168727681456144859828848228291226628216653835033283875929260468244798256809060742537105290135904982197182002185539170004532320876321519210763214070384556740380574949649927050089657343684144975269878208498041217128090710484637218409054060766402161553996478319317031093951455746985095957024028999944584514519141259018841461988108545892188508463185873078485014055118614865996737774891450063070818374056043446481551316802328184290315500071007267876166969482066323924584543663898864967864750035920178267130928096267610460964761557159474328467485213070020672692914664515152141939591325674023886340028733898320733216530659757875840122978779818474210889555493527572823199869372166005300941175181338583302159034850879791249064656828878051015941234027370906782515494380892532534498057688836868706787764260367723297739549752518652964974013009279554501557463123500610331914620286842270645860720300788674891572084012730107876091526827244811157272050708519717709498356475185962495804963474251247066908308303308657276090173849784426373927396692526439434307028778818866814081242637956743912367585853147275921949510569284678070020583212248589815359168259818120452485029453592557240199650395127738205616769670502074892402353362632678009904607265886620257326556722838668526349671033244580264822921472774153253151350237695000912235466734334397069777396208882132423695045948759456526038313365843417271587050697602313803163843295926114535258571942344539626133608557184204712925714400011159992482709223715253946213053697942962653135590309288774572007554690080896600066641485106052514087466993057388264970550280053375687215405945403204368258502795239323314263073750783881450570752647991423628379837888917655798879538696934960588475522737608841961183653017727219620291223747999095919806258181082182467722687337636943254735686502320851704788956389543496082245807235028814351038053176791246144869087914502452108103801556614286929286285531122120473599945375067745662890036259957914618762039057850364273783586437110446717318338060992431862240978153932230692177891107946577767276494048629924851208076091429830002455192720811803343672677595121233724953366631329249551436623067840221512572361837423171425895551326178263714131548580640039362988479936997992419816158936916831983383864729239529582197368461129780324514091339797653189146022730168215844547159581073992279343638990601257854207069240250594867445054993808743561503223100254484255210620973609013222402673702926785083059454612381295692720317742192361149765640388582556106689146379860155198098486394293578007662239825829843828799281121480039539224137097486791380215225451593772036805144412825296685644745187982262322807424636523851668945151546972653843688941809633830699781912703119211564615312613135014036703394440850045945888266519664641519700717499728288120722708949438451512147623111714372157707275367727824048829555598126444410076274649524428063648954478993276014888294703769282573968541691231371839742957574917671273275819458410383931936247709954174277935694573097203489198191770961176045550921398946458502718764789935614700655461543646186515583561348856703246890755374179283306081885228531709907100363340229278106252697758683726337919827594478665600929226780466279968160324523006212872794950843144859751454320467272408054077865802212841292874057028544079351275722176675990808032251287553174017144833664592628567141828384117703026049578745703151989399853927177410306501159201409039662964164378501585250398310395272405697168291674359318395362286996697818076450855767776813469405960104979299189720385685516429671417388661404112002965614502521988184134576694586748206765878878757328299073957643797385528243030535288975200072128233449669289940788081594599459682947976146768864704586849686381229446950270447487137514509366962712025395044502046381538116303036572595830857999417902996331336366187629840632096093660758701693807711173966935795923072361655323301368361818094785520658693134090730085549546370479175482866705302702611034615911878919442208760468820774630237119765525463951110451883493874967931423407832964795454875160896583748390353723727726373951069955007779437783341373220292697276067541556167222594921161346240961936659274005398413725938148302408707662970089437200240124808026802786874312705319657965669002580542328604993538179986679761519798447246284242822972322100404374783473072325958237840516979844214152976411183134590470913603143736309878960792714417644844566902448674116966392640283651850015680101236780481149351922325931163956091174711801800055594286946032597681801769509690991892596300278335772264325709471783805884878270253837385833059893523626796673990113958709745212694670743070616141802930834407832014058150389154167091558977574317969540761950870872842031147265170281715261693945193549357152141032247887323514450678812555656751224231502490143293987116393274848568382976050789006697477727409621065669247703098669604372259141047107578442097256320438632657174628582355380623499181363756070708424169718255323753926334468363853350355763183425118833530653066021823607066847918330278826947601564115549624676972166226753258484609615752770791952547556690759545255331187403153317019015612668147382338987717663780931609698103950148810370877677554240178936731945914872660944760268999199841921872696454684385374450328264297491260523825245449100939704369201121992066106219996397407156542853995189094961851672491231354463450376469648431344830734244834654443184015033450416177831618335233422265017381624036492368739840879409720856541277073571974948376550263084726761881752819854847077943621299828238379096981865380740213992913025756942341528864835961220373643954630479107809090581851702005462706121617738840871850218570291349369751245163806791637127421532410009143248432881237293856336477613901660025174964741129569202815116720934024057058727411900840927294432952648434853188770043974308774294340553964975030745132808776623573828482763022275565177885694293447830992405920090933948147512869063999552836662331310197802057387586303651021090113010806793123422327372414824206865890753787086168521542576086714636231082003375979152711353892052684235148474726483332375318300261707282871538487353184975066081969848077381633519825041280995852710044204046214924642732218162189899549559221313782427174504951700051762855496176515026344729161259141628716537985204777085227742187622719111848781706686863282385101815715232362402603717704056171631570461984577950579974841352003592624761144767517874042656356965350851803548924266416187764815123476285507529310340617896963465329510745081830666120724882828804011070138219199319471052957103460082494246419893432465430725330467006012048957477724638121906278305995462932115707079913118970949481216791164816139310903305786423266418347111756289363920959179397352900136395503338802510748807797398188561747040228920212403027234387446116970906384714241892040782993127129117519100941177862281823766025552911754955167454030205447632428774949163248293741449702436865870221719090436020943494063563194231845194417416927924233913817214888764454272335733332135069580652098938840107014555955008259564326416444909554368392151059949176794414742978944263749986682308231359923747157514214287041892901756748041684998039686849344752890686367270012408285552276954458871128524293196569549765503975598951479991896745165344950064044279941678166163433048172634803834985377260391427171950122440638519726484565074153073754867560189414451569691737528506439280554811930746222202216552024062838475786175427988115579353645585167491586792369328211531858223013585873267283991232564060865098018149367611536053489420935593159209683554933187406942477486563796281744286218666429337311058439401335294520075671730245100528642769721713717514829050536604185929315211072587702740522156426844167211080307811227479055012828907678743310757785329983482563849216477763053922356508629429672384123629457137500068207323413553698777645655366219756371887424523490380042303472483963052826884361676271999318288421743570616078601610442415741902834477383168916101000897704423056125160533072229871884726849943477036163723795121066279192237753386339112927037762096838984322237015714711986458594916955174020816831934119659422921072597159670487440272316239696855178913975826281948965977898937721933929856256597361621954144040202500174088577780352014864363398174043479757863638200624575002031347242425379536897260877065722599397158425267038342556347230021106382437544019585107482007129922313223423366375168338933578237140116561567206442192440303116091601797915362125858707341334239627183227785967930037944453757247747005751171098787235116990386857892473915759777037760300457369042504625102101031351188305567617992859278119554342553368586431722549200398818662160003657569954459963438636833270060141320003104006542817473141293895668774826417308650189176761945863820549664414834686250190298567466915251225110218587287633118118876862368960210935997221936131785907703513469523469611623405155395222919056826481880832896460885488596248528047031377249443318541457854231577085975261294628278134914215291929361051066603361751097565647138388786559946583018655260927095144057741451587734818991787403954770368938260832047587465079394333128642774924744254139204801630860429805853341416259457878885686989060083716302360602624921048682063507689997079387928224368336914860199857477390714518586809555000615398809089590583806010989634701839870149938787475849784811940745136832366601946009750227885198343021635320661946164000063423828178167585732163196616525355126436341183550651976750467240302265114566687203521755019844436604358174934979262092335440150912090082947748156804356556540051807631320434717049145605209172524626158310532143985335847276997004191620222670536128660910979013628304451349089224535466215673256913665911308605673313821202806885052690522842338830066814158781120587040801673403202617895660736356954372495764618564878230192393776064517405748872185631555161830778148251515839055370269864559451973336354526948287853451432911282339647553597385886011589333623069718112055382729908074215202701381581606727066545582778762452547787054041041925751322005249278969963138625387971886136455644182833633039471425874988798674111063424427612618324321685146887999023602684463963369993841392473182790888291190843487549131831833828105343133705458220567144873921217554237296163287584184054883424887132235881507738360643383537489570478476966743491577552162167576845332157791183144781827176792562185899826457918969952817431683220246182635533130040851261409174446550391029438770910383971472624156487168897830666934311694643920128740163676521020894401358020495089005913535778641712532445424920713102477937212502692891908999942887157595348769973878607459412923087830310921355701175419111123015712748988496824963289279644077286089890009681069569402516650731992063973296567646859144892205599408578805380357053050471267685790796774684509280928845114833037906347969656984805360482338025056053466475067944826661643270560034182891822285940717050225138217725015582785643488149470245217861962662911885873706258191297894681671355479771754737784847953290897392736803416037126604387795065596568298143813806824240698635686131724270151754138041804119702515022867519493983128232068537457014621280600777633610714027413063708065691150051714053181734788448290802119144341256719057701886079730907198284238590201076642707663372959006161458308385797464441025519198786794667910304736874763634894833882951277473206779512582316976249252817856204004550261600886812706050984041398269340585620698987314604365599217470453653028867045563261340450725830428951780942229533023633546341930213742919031627934000885771912595148552684740205590540944179136039325267948517694889363152147715685708907484378071857332207501394081328142500770464214765177673981312797413306359223204213937443724522321516296231920241706331472283683717069318513312480874555093027014365290038712012445929913103613119686484482519623839371329382988674433368419084401347563587699875148597357387738815630188959608856322056726322355674783700544332159792904236724052762031846924147580085074138600086819865475579560251211506295306325846559129346441163481099608086070952103377873286624126100586284804434657296659922463395805940049914584412505147742475128836827863302172415600605979098675600607943429092919349772002921438136385032223723053253379167639466988732842417133701329840956445450600970785304246507823583303461676861814808369941215580972434247374715952592129390665522801967681350900434879445565022032409653990162521367517280993242089798190107801650198601038738854219319060194384856791301395434094139077995498039154768347481771162339637831689554916307875869666239097942696161443073344309505352499228008666222620539638638133690282063339762063486897758244393800500173442513756405687981403256011332381403450639414881242170440073097600081621248039036373017278791838658343563126907446112719470037826340022176677955148656705055268945799197026194539476646861096933245599318789998820652499184999055326086377511106949927737959824109614428079648423525988482603642341050069117258819748509336728898247244127970502098752440444322185566279093527850599131597568442593017159721500279667901970958384598593961163526713540050379089929627069507387677571699410781214718927671388510405988079123395681738993059747208335213411144414274160381853670020040900947791632674965703767806573780407647044670069326472498835628981334021646510304782029287594232823264247204232012451530041075624855832049958934496073849719866050303679694451283487571768330759447464179417634292769185364684158540877000689334529211335106238333679241969243771679594289813214528848531785855727179092703776753751446807941032307592727571650805499626387575868883147861727729408940344760740452782576329417450289449425136280981135502543190535184880556219319569576838835620673600983443067547617936623109641781676028653066781865887924517793829108305126210806154388989881755653856269422573124283229407439203230060929029272045072654938499117828439518831260643623255742749820684570032686691534981991996904139385953172890560734668004129986402504743272668286795713127844697571713584449350863874594604314593772330983496157849435716090069517060537705531643460267210885093466704465215396094259882796087961813097320286737886295073671231911372152046676480623837386689632302332661883234482650479048020000471228453059890990812096788643303810119331352824376550311359117472114725032614609344762474510713815271120177022134767856733853776312781971119852655514171841773611228365007439377067486650950353361953990360044775868807750349308016338736411545488900629957168879987361151756223857848168510862807223148989700812712039385656978262139110460531716488581554267590184540254363712085736068721952892755601884067714076210506674246269112101935203702871246815104938772229469012134793883786958737781206049027971382027315880406771555743874888278252980150596553464905329606596912704249700061905733565481347458305987204018895284297949282434853614324187674180249758994142794806510887159098582055333088314383056258102830191792037745575198317991552810704796375962664649503628542257361521203792101600202405409210550621542980790143843444893916268134144472398861459663862906089674969759662678424709705590634090556611504356580601521768504561740047355841202341282301121407474064124826055284158040823412475218828304272013657903392966850472156931849609706706942742240662253423704179103912331402075004141195078356539607741689979567962614815892962341882612560856182236354131800186787282240111512671393147960109810890339292122202317402465461389421926537723618642742354436140124697164360572522589259898210144113272946362263488647365142568577473517192028742245915884888117219744001475913924511218840106573058532778658482410783308300315289505447373231622350274879095635243916699318472446101379861967608370557573762417391688719900275863592219546964981129705366424677009573381778446431956720819598304657578432627836437550285325588203887537186518862843723985758476152361147686312115376398255749571390750196756468799143701968373047376915990427775622927293475547061668266494634911114888886319689638717510617112478942895135453583519154136729753219696914783123983899396064424377579170666505315556768596852517931027612822354403067205074494486666171976310011728928925150228464020476958641920505334335159756644498196204895012187815104991897092655320226364721419433710217183583578974246045738026449820016978566998989266063130596742668162510547580227066888531036914115390842291826211382959272979599775120408055879428762840950915213967870842734724845894321522869298973266718444142635844921574775254548299220636202364666401093355997369405196484434653051449112240891170350791513144371927908720825958032778475302082865790340326897564851627792128801910744967415704378896503681884065078880255613066000680382760834614193212989465763501135236378483897391006994974417575774651856477080557464244989695865621339109883987158609792580116828307782422563879625654377342202985431798993127391180983005343514149662822895906790292027463151342946182417979204861854017640143664881656612052088890701675967721618840011564866341902006160395087621110490162012515252332924172139300475163399905282941654019072589476344585248760315605226189362852807271476266448977397342249935502436220363232684419646981801720744220345353393512875228657223726358031020599349546354498868285695187925938536060042411370893611760694193077539575041998419880312889777858442253138022374991670265226629336173430646543001509655957626464788709854573809548731192256272711651374465722162564859998239832617058148559857125501701740007679390680474253193589461182970822542165966270465004498290116366435537275011755362808026627530787454568910919754304212504084850784019127849837466398367884310249989761561400050306559214323100234524658902626298027413384443246464923143308009121845386093416146333897246056281402033588654775069612381195086557853211271665159927467231215141363972325196583396185501804668488090449265040400741408568114986007344454569039164443208039835388108785067650049337486200816442080213789360646435303550875298128612782952381339724273497361862959567490589823057372640810337183880440944883674159127308164142474943791179152919230231289921329078340858891950578921069240561468782142162265994310725739587123818678201644065864383682394080977670906594253055860231729026040797240960768107242743239061115495255924329539765751703877876559034526014768148942875569580849270124554613253517421631448536652938315994148117168615591898448478690560229772872041384526594161385106606792667844714989127602591951804943968574419889926357079436789322986446005222381107099683344347160389921932938465189470467899251407242529579577266228618130507351050900063719231665651942580662787243689841512282405362625630470955860714279210206429185290260619037834316225902930670452161786599222628626341872568111619544079097448680852082553819961168028175504984925532401680773709445554263966690092693591542324244449564537360830861261972403526300648012425334379907491306191194729826929616025680893267321398122542498818167630822816388144776820370333911109618296676552694323429158292009055228751821797384033240630870805041454844031277023591233174286634243953006170110380510137410741665970510608076188750835599070302113382589041134247998230717129753571773007108768818573099084851429747921243800533776651460054459006855945847088976337544412080802067609952108204522191201423650461167882423630601237683485374758601635505511481378215366486896177730113740635711036080468761426204786103637642778203315794519775459039052374791480123015545811494166241351249603525771002355734195754630302306085581887529086398192926279348882003074653512478064201081668001007821622649498629119325780120665681596894263183483346000072010572107894241540389155742387214823921904357788029700034240558065199944645742775037562340624481947976144172615049661512566872211819516115553587592509744206288141575286775083682697195210595458954256476697855734076254830508528669939037861230861226147628969206450747511232746655897172706303801363219673149563356770468990592226242050328124460543892001260890023830940493904898444400730907898883650727745012939479837988585288242968356695334495101721238682688940716673805525327389959137252427042830800034162468851693263525243678676139518039207589505849668255313871782775564427952644190654508386871093779207646637995739194865647964322876777031780041359491533940326622148125401503313542270532919917971093862259240234581514766501777125467581962090571490202274655903535743766007392079495079928406380529748604734074193195828668041760421329338891112555766475964250817480682908641124538538168264170244375077018256202871437765153874743279421970519258355263097147349359884493578313002679455114014298112998820849736258088857732166556583887916405724617315697313052394310261329000997355988366527423966996697594646258690042799996534540809509808597055950093707797975204579349732323653426508633495730398947827952504292594493051954489150282294205644420602905227963121872335734538761029537965821851314312816993121884072886797032558538265163655592278859941170071143938831877324774847360341969591232299882653944835593290658799149487229808869133816159476973028123539736486860913272733347995216732678382639103884329160162085076476260952682039694497090483068082416329206539633104198423572393404830386866649547890669921857631295821482519701811898757901183598771802314833491156275466633770644869080423742750720061345136768268455631862686768792493670781487161085838404123659359025664800331262544456087109967505337663174795377819227342919550163275699038317479637947686876952935840780873277308726349859570295332222960875045276942577243569761977817137914068734760689113335157491401863014018120852722603428925548339677723440341305897976918586734257587331426588342480810611975507919552336745817706259340387714330389098309116877862433395768260170188759188118352091305677136377812660870959432180397167498522852153424536873974866904599941532315207308603583355009080436866669647129497747974706425429498628181537366037410063639020144292921302877604068612459351538914451694065736734534534000338864889549760807351507893633045892887776003451205114068857424539196922809004058641860898145778867737090697473582769859731290102854047830412987075545681367597649927138577668807397945930689500912236688761617836985903869011403831526733941458507649045963991677767662397813991258287601717293265583276496432803050223920288495719223917848944068537160821864744858409178616942494088122489184820742656630686326776806152121750066479319734842673607082692119226130738143391281901546938013890303670721412684919984164055980340115197986952649356611331736178040686891197813926919180158175432719062576610845682923533459725767494849912024971497603890926265176635793306956193492674222077653114778609789400258563935542051311293835293597529853890383166598328429756383669811026132481312388544140029732859461221858968430872913789148496501699942364864419279436393823155217843292299824383712303001062501691190512346130010341410632182767871490673176822470658729765375570420052149931440561970458630335379680054347931080462196236187467461574992992063848980666924173138172162846054620101011531570417457405619193397648844881402542972987898050526178082328406761486586544196284453933254845491716959388134970023484503976855211219319971627769052553000087826373289438721445953764038418972498630822238684085386417482932697979433691058616228746781137330198901088663254005025445705914425071504111508607138817938821175587735875578638620355495816762139160823299816949562138057845928478715700351876510005157304306821183023505528078720289860179476343534711513228390787331164703825879285513496928119458398474926657417306727725986327271838363830009904162065537785584790702860450705954137962095616624379147921272129722772171711780550150700081680741558828852803034470624064140404395353020566011356798580218799295716083864998372327216237977639808044435600512347727710957387800292610290136578913872735265856367080004140942427699266678246871938297268419829053098050113180288673086737901643665732591089764721702274873270149606268916714005888124813227754151712917647098171167946706762950168852735054206544588430736298011282173594666661569863977297399796279631614167907729126353830974150744685641556675335865333162069582968606655385550234691874776853452544532497419176347927583747649036054026958582624759952952887558864120299350463919358907323285629356025543354525824712678649225884430816992963084044152636506624998054182606804520862864333896401925397511543561171501004230846522574922591416776351807986124876778031486871125626085350195301015411486255091864774345694051322908546367880861513372079626048261737869967065243979155038555332256581232418182097025273440947885495664161602953357600702440070798698702778322537459222642572870610422457146430300251319352918375425408762599742237976205245134760041754557207948750360401754029119604343036199140625948632710604588851737852101000676523433643273791946362276341043424242528416978553353023186633398305643298975534538106211623679806588039076873894708237632357082688399300931182577357509372064353842900991580068608674657079167165100073392559237363811923362899465024111016162545279234158545851660243841403401828148514435633432120830160671491733515711096207605027868544334617860145084232553057131070432856998363215246740607110113029264840127148791591809109726658261519045814559083726406320912392092513223610989208283788436152716529029465452175302336196500392995789281201628556367451228957466722377126085150978284566450126109928788973498454552438814471239816073155513983465360339540540373666429606283387442719568808028055614900295997113596188132273302453107960710958446801266699656931732903471918088042374710548683783410416379180258722097151958316605181809418344246871097992263248826433029152561917152958097105967256900743746207110053511928951624311609577465282070961431913618199572410577992808651625671214225157747468978347717013576528453659085425465453727383855057926520455135798517695614875691808803414730780728108691578728193401457949156391184373921005970760433154807958380585634631889723667370278207757169782993705579216843108043326162955549442176239727476673304981138352076796475500188450141892779429916214829977991514987013326320374780811391914133443083189227759966984373751122573058315716653097566198987964143698420040373315074028950887653521226493750894058021396928484189860165109796784045947908370424732863089849578383612124369934298470201221173252244198495248518459687038788058409047210543055866766920624188937791146474596125659471176890148538889854230460843458186697784036480281031107544375717693767197290449075112796222232939209266499349085154582261096522704730065408700114580592564302621863790481349405764732238176180949609449504013256028381264119315154798655685156307168258969126160281856036032483037271998237891585589437108288535141145120903324043769075488943331025029207988800327661749702639285226714976491406338348709211512545526385013755576069808816366654184111120631379955267182511510576134314239039529809249368324207870347228998425674922994427519380404184947477010666004139725680852345297342721691884742942346731236996430501385853677047195883003770217283412826001769684583656936831313748298777891491695563521201337782142136679922964198231534259995185414446507448993656435440426915191988802496709710856441013193322096843982149022775266390180486571534313510906855714163321485900290571459540030122760001790667967100664816121609032987054102453999046621843996111599111328930722814592989056042966680848977255052014521427454498587826379431776272909176349209186362498075625304373750820287425066361725211285381984792223095455604169274957867448373360629532857072716550545332469653765410806534101227223463489255507289944694298682095411869475879231008773120051431830242417806472360803972802473439813331244302606935984678307743272705362095522776073211014037249866573324577981963126780493133365795897882344781751477971061340196761906308835854376162566409082849760890990188454683897811476257901501079377590115365687620518915708713471254496715513675530047694927241243662662680266173390601672079291983280507489966473585428622461997862902082742490227816172756239380437157487834458640607102398707597395411321288138366978141816016015352309145809230259301040010651724559247219846803512952242012185815291329895699916278433269656543112901135409605118483548469908646651272302349010685877056513611049810074849200795864544817341345307447711393287205930111617247365375818303035230648591920007488455744391255667963961255412069457068605236577762552881474810272538762211304696971252999435213899549784664511093970554640062114132551858523675356259101835738662259798144239836742525119962494241170721433682388400379743121964168813312509954825680505780162405065880835096242407561283224607638365214446468098981278567477207373148178758947631022559224635746708038541063006042457982403805257710314782887947843466822640981355120756398082347049438978423806429894218597578378070876525624718778920825209043367710184050780556883418651493582058674754385842248742542344678799742464062856493762748340258701963679632166316586754790488734629923491730828702450659140546908640914577342554748382618005172916683228392076545834451208759973970390204348735887087488414450696624884571939783495200581991257845327428485565456809104237840172279020126269976353026759207812946718495704070120170124694704571092578905413839799607780791202766647726559905986754567614678306967591648633608724728212933160300239966669283185356028478409496772911063888019368436184195030110325592065211002490830964763313646417943104635873721643515170978411162377057239597201466619385684833794083059765352262916400472787973312175219788043432801583858099587653302263402044285781418853621523179027437945766380685492873625763106886271550546370813900357922707449201798462746475975316734074271493754737705002047840521353795530721975918590057499331230592797131973321013188459683375979597922969071539684277713977592320925205922597611697732654380133551408102358495804170043995873169274927435813776468902943315149549192606981637736936107565746058736417370026814083349776695463034185595755807937673958074337526183383019334649601861295837643254614774534980185969350168747805052725369885233793189205380790595702292476485843045424257813912627438711872020398055803941534703769216066369488226925015184719479353931466770548847863862356009021478556793933410234095710344236570002816509972337674501608768094206608475108730104416226699507608484058315745741284247875413606091187867002925045535059525366502376180619196588704348196402105579630747017637624850013742526838660899278873245330793915987210275812854947959069388851250187007930200051473624855975905670213183398750719038883188604659872774684126059243063596082000388920440876960404906654659211391342964905566690078588046066724530165895874295437428013415401582072552978465622994149721825538255276008124045101693549174010705819711194002897272082857494516571650390811486812719607477335732066045042513541856438864634299160013899055582832788363918687731005598427923702501499273900646735121748782220736760783431511814370224742374890057367304293972696586255801611048823274136860834381438089397392025777527297482135365669808576854014041887446159835368200494653246581891060636510231836396625077051636731302995898054038945308719599998056364716314206953777573998387030190554516378204364053119560847677894676867714524774169814557515614252051110994814827379549440007654166491349344790701942876356917961057035829066261325947642135496626260418950736071839067438972474732736666294007328410942661329071266719749795976205616259903063784032457485495560259337219038350347522033252403474605181407576408951157050449942798124368339092335119548518822746724345125761169656252346461198687888208664549846528266892973882175514886270657702327244305121246464952896565272393851845792800281123788283131101048535308296766616777292737086999511510626081963289791070127906576160775101379330890233746385968732284543993904937426374804343253192044231343193673516997074318418493646475639306590286732100134069441803342672871421222700709549321932191001245874231636244109677792002361612938739125657587975174892390196945386477270955683962529704657045259918659293210766049824927376062894941676605628130897345728634426860104586751505964494764156916134095104110305259093688767122890823512636965689304266844098877528503577918823316230998951948866334743076405553640558656614252772434442001067835608707228755949554025659803446542723651635437394854051420692746214148477779303658594897081864764908313882486015515355361008798933857830070041610704596881155130774113390946041743721995322753811892899266380220713308865438346305874803717489502330211483100561930789260938917337480224948664705164697676967928082213276954120986181312986404927369342222975716988179625578124414269818222218643331261649687932497555609046539865672809093565996756829098433447260567101622640553830704769749377568535065780663489784527004263233031297773495364904580250313065534725196717544718643496735573781060941969024769023362875333184819131299676232727360790318859649948134815976243565371044390890065937236564952013682888393354649475800939144803702905230771718824466369725871606465749306811237651683697545530373168033358535293972517106527263663901227121143119881884687191573875164641590145119861847038677092871995267692132399349186601538754137349003380073189101943026219648555735635559997692206999612387884206813631593441180989897612509239411912596990424308297735078518408613002192679229711540360270740901664270018830573625506049554919431988638540441989127671185202814808903989471729500262577379485219350432987232613997988634110446424970585277047283947179149558122329847081944979256042105438194364400118652563008539874829311340088926104709459762109109170061307546900191490836896794475394772918314982343649133614461907998032339946473533769319939507578912741205917518513628030654773263579477120846551944225458254746996354581349161923332040816937047806178491197329749313111966904773187828034294886896100818892806424258748890780212004550965304226863103355824748652548762409573540188101762663362842082750986768879729901575377251184195235953822551792072799035425491630822670085544338607355127221950499819589221337976935067820268998865058128948505072253676925614677369826021451879546311022019822456846635279367584941658946266920829061110158453675087361467046023636229476044544765827366275841273461658990232676284678675918838806066929533675097532780431634668674357528925681356270353519975210936168063564583660638707740078278232125382906511681330375072701176257968519013131156801607870872096186120008820013599448221810038316961448758573999903165139194333980485214597308694244914493715340963475490689836531098958197854781521245598589657574286723224516483454141130956176434663188978110664603142813414179632759148171657521982329991694183652921932975336350513705373232400032300134983332684112333175810057040054745701408776965019974502878493966900149011605124266895208234440759151632682727389263604629352373386748711523867768786813883102555854236198424145070873159178704763067584540429448223508894903147310549552260261693879845038785052034778076769504092664883303523262870780571430146838718697182560833405775048976635895983232603988056745241847394033860786003931706988456894619422572222864978934547428249833908318175134656743731934721270916010015741564872664154065195887030275350281648203152584952806684612456963073221765824321675833513062730229143973861303587926011652400456791098547613529893051654182824554123958677126342565046425093845428218621333040417182110280925719628777615438035003126314675199670997701106448411929208109727745655524402809008365774198193760027098211575874683474575816254691026657168290753495075839592799503421860833725489059043300766759696019395284263188541143660891815558148921196939375728686141783119118508058875060985864298875533393185318288583295673501604053620507507185371160770953376825496915033070435218740172853950759776531731746359260414800164641388939607850896969474929741936691525774418484456955013815987897659712156218186105517075767384623525677443991902475856299205077362241096344297493308587370475004611364466263439049827768452960124744219245272182826761697101433561581759139841248747638688577537328578112911228241307794238792352709464146472337970812405251395324383350285840210875543892552426042797053620395584559358974495434144957240291575020372470267726383817448413252518154262323976528476224525597305734905265671927417502321756637990145115996266768406395936685727419957281568002472899068752582998491060516031438080345881508661362519451724273588712990671187368289910408298101017596946614293402234675843573863856645905665528945872217547080048579049644511325288482339499132548189968211113244053202450993661237785694011201935758778415349335877338921834767418854225999583890819790930156376453394975066409477514563158510410697852540218700695523839190064165018009401208654665291436191387764640844640525323152724575274281418474341869639522617356569661557714722019184483135672207131911381595625256885643951296433234638292364768639266969812521684133219549553886749457282012700817363795679980676275715631766487821493603367612594742084441986673184968275029606038231379087693248256633055430466257860782323006969751381480632675580440972896544161497926834932872896194552110893264436751122664002479147400715264791514943634760603908349012758291574220943217764313380204979083792773377000520526349838368082544703383163639801828822875830725574599904867303754791261217214797013765197297711759570718148023455178791368056655844374449809254710404742513311149444084406396764561380590398517983455443155163026275000516285367169576881665897037379957661081978037588572180680351783230103322131891672955382822181837198305358714152685803060405074233419222314954965944897774274868461238488429979105889077861372207458221636091904532223367202302346934287028320968927353562170607896021477723023994271762670919440596681834509033895227800366638795878311752915294317230663598491920462900090204598217347270694004883000591285354817639188884326948960391493559523752466147511545693685898460326211496431039162277703235545125469899303525487483025330177681384918231334544838815644832831677773414627649399741146247599449016094563874066237521335305995842524293587442049322171901416884023223271983166198919997236995627607739285216251593167634815780593209805448030445866392142568498858914744340160325938711202403977971427608071713144027489481478950576648808411113314719436559701693262899444239615351798647737190772248487231472802564777804558400851770929315295555512146406831298727756426664239363176172327439586303897484663438934698595059903707958055808338680791430476695481587034093827184419572843886489310593422330405558645093092798255455829136169427946889255046573638060683621321081743955646208204077838420336330232916056641636541161743056613461280528937146995760198322126826886585097865842997105974881221260301747555159860169475527439594360486370531569749047858896851754783210864961196604377036773829552424651927421451884223969330485446479826350026938577617687244909017928766237637903675507608378304027401016354112685476394011075604141857195507177942448373737168818687070665470074884740219671347738962361947156371596124773978294441915325330875190862803506481381327554862024539191046479907072620056021466921181982302177173069836971746880415771146676158516572599352466099130201058001625732755899103009395374201357125999136726137216399481801802414068311086824129852923236573127932909546839237327435543256452372036765493201659329775139185938968222364568468359207344031571331753274924011385096261680768594338102165220420022874223301200067555080472165205802571186655878155231543317717338996965603570388169044978240312877400830448176117082404197505796845191416354056708794616524021363188416692442461925514226267856560688254668442104567265584690243229267572161732608069191721072042171277527142304843499470390376972574392843867839444845150653552539673214682145756583781676528346797613964828039003376889770883310380623053609790939547707918751464939725559068369778772181660260546999423077024130423706834516748055046664728451962759817269676517790467480259029249207320268131344322840626928204406635117031064906645090670327025832290670213798248229888748945979585102096145498672777022324292242648815360000356477568765048492051889718563121418990165267941203680420578929748770983490809385030988525609014500961541783741345112741436818417418504712465726233666874042831949133316418809471596144377722271440294944003528498424202825576427936867864724697707770404275905954928183484597407900379777941383027169761234326137394487281939116110757086377781113807461962154654114402585287399225122877554079804126508669259672084839616628399985781163982523425191703358746115992688912406157196036291580375297315411964797494973093730705970325233106238624104233530580104044618094004821375434754785854216666615759156678965807114533620990617379082665083797683102861084380650790445205494543101850313270646421220297020536018784913296450638281253414822630699059492245190364644869833150189401943393873269868761453115091151647565359313904323413869950543609077033021003653803182010516847315450274551687499077154211486102148321282886734656412031611445213239829072608840704470161295894925954572920733322350507766914379627638599138703212688248939112474520003706284724429087031574164643966264509062416136566179956695928190665042935962598485403444215695399093273645300446028881034283588539294520842678666769130414831339102730640216415492954484481077614343233962910874178213368531384914450459111912608018862740143216066401976882537341586118303904592267004652412662008664231256673357711860527862925235599679912886007386956000187790190758756886309662011734062714247091299388044564365576026046373245453009902586570952589891504008002676251531779232483013718301453320586289027891725251963308130773707636656027350453880065821072835659530492002530251617471881661877748319337479517989315211213199757433077053825080999150241923868201087873302654974358033881410194311054861566575352069699266045565660355910667234583959047447171883977916436519330171978092912558675112765704289177308918192694210590031908768374065371771241628259456884593163506323429375019726620445263011053595239257517194275256558847957228149222895845336673786514842642137507880362698617904111133038538975058025028106210666376253994063020752605348833330631639853445379410373872818175014785015414981576925089043374835214151590930730074011757586369379441024538934127200598768624971192305100309254808148845282837842322111978797157418085527238262434532584748961536369172943970029775527143458427113408330378871059495215863160148525045923112607850125755897507871503572484078481769370850908000112023416509155727755836868439581561736097314649735893226696152655453192401503365995836646844216602262069386235033550655825628155595610853967410082704358934155199265354914635651445071531730379589386421648966951743008360678147524790251646208778508915936788139874832063410099741325028266592101782376461316615630281894491920395342576076941604493771113345958503992879869258135960961784514788987847113879726234796178517408511349038767532451957368586356279225710728226862606400308736438473418093188018145529832646414551771450703217789074981745764079081996166201869930874990308986707734986976626341069936244918402039937335143182399834371437466165446355004662913976516090508529381809276613082175708884906470920725736267975609300956891969349499637730623468198638091429238443730101385937761263592554984361741671824976789895573553341553836272287810211936660449623620979361276057495789161948441273177152740235355565732168309698573183837829525590491192898038995989354698016402686063139126179630929657762784699694369088194584547553820747380400942978736052493908239985575167222520160052706867720661697193574885207080530033151646377250395315407751049635392609395020606393919502260315900408032962398795023821391481446308625582115901302076155582950464785582985045342214355529951362663628526412804074494409282325496949470886394833601176024391726532562996061023463205615571957655993571195659645188933413383855264929527104140941860838470191370434557540190545791300949416213969580782149262131279473142413780279088830844082081506280477884574802724030057826601886814469054706470509192559567342223901102708818788496772524290300425568722271671836757941765157340294861619210739955219542357781879286885853397677072407676457291672714995616676224312944414247226240882629343999437094260830942181222701933117283622867094336410633735167696345317233119005396727767672562023888500912624121328115418035565117065289875816051529132227127707040595029408456857499538670923070418915409210827046159363413623922433152487600295757320648884660987034794852402293709451240557720885376991272410116784659922326410922378536434327645810711574424081158822760304520545792966870605615292981064330243614773342837467608542916169766571918576755873766172451967154768348516604721466482497325940560908083426078047591840986408312720379634684069767339695676393472514875487775608260506782806804700465744848936404261316128443363449136510459879734601048922192726141659931869859730604082288535225928777312286604975717192306445195946804064887919159825053578366863086962249143152308293809773723130994884946331927758567827683640588172157298791435938290617937793572346229546417856366816528142763548043622488320474613351965611418716340780405247303643937762802808086149628163001160695547242783345267454763036115264229353871686405452927928108896830245354666953901663279855279160464309823087474922301823733929395356607725948592818957085308424146845199584975604867424461391631284804946413766063750702429498908969577705988644545852627877945442337064329453525970159031628564393364869636604813016791489764549896601491942325452023693799347449446930039873462480480455813433388861088725214434823935883389591233582765944226212735651667343359743917018282825412523214903927457710171727073568290850106956615499033869755050925790997975614415305373186917176955440426419670821250642457488086095975230091998205524428436794035767368349959823424634054666978307769561708968247669857362350489613365663464931632678869771916111502472937680611142154709896082622805950848517550553915897869167748703729814785037017631492469012994250005374352944336204763442342560521729458487748372628151227152166924598475798643456518944146485879070290249860848742558548048270889266734657958132508314930982826468311626259459710759449684215680545026433324669132844015282257003828492967628997561009881655213486048605508062838254583172055891366101007022870730163756762997489842639680330544874643471580730221499226690764806194782748568187796612193858134620077182836187766040524998568061524210840531585789515317835149373844711048316791933611835122633069036807784769343392003758512256974910936272966659598300044759816636290487701793342098083165406379105910750886677100171695785311340490144442117693771067853694619797896873367772360549987920990452880063357325859589080886331501459915984170314420489236772825806185731854287877461025454399501415302797714448936552792826048452567382228732655366654844693913057229958653252464187480006332094103766198012244915772316930164246038473941651835204587870269900196710856573630483197255713960309221733236724744881030752661807785212559156334873789734516240194578616213008540348196584132523507156170401304137125480257970697817246435385361920418656551941055713630586395447688151837653656135776010073080824849946671489003832132919804420904746446669514221451350450072146183659672141649319393929449020281609283715179588763124416566433138716893681769066099452550810296825378395112126684368966691661933634835648103642859850583825371433788024198428500467535219973997211707444094348761954367248204476758480901776999443062809935137918638044765964809974234408107662640986420922092814246518948062262666126114895221082135344572126080972595636798301573509473610254297626460957728450615005679712212194138594229940560296054667444664431572222642973502719198229986397485547006077307693429599614596018595839156801428867035882820433335140887761360321976902315238998585633156066974188171603270066608120588866731629622823551001073940361295389327402837873470279764274209320240578437453516927701538045809442960644389190669707774861252091077496989245407304990342742222173006762609827959834506715247908080903281190138619583501656194581910146293097161346806889665082206890968961820811670898460186598892183991819602021774549763918415994896658655352383085001998255027954987839851934818273124601777336153659936893058423502067042801772081593990049469280783957019738850631827821715784529617467393713075758412352701394760145793998453378600813869719660722201416416205826241240449290254578222220643121268611752075326525669823690975111882090630486405683240609831460763600325885449256241953386305116560820036138640687391658723727215644280079213557751973999483917736460202510025681203129232222574660645379047789784339147126156513366712791584420802689320515520709711059165786281801247867151653198342103993969349245446455471392900600200709994182656585970223520008393138755410262244122315121483279870706938343942513625959082745909915108138110282582985137228128437532744182687812598123606814199397983134706884992378781770650217361862244097042303333086446075824961199062462254648296670295098955895539889710274674936672824838860804759204826147156037738116345219877264971628841765294358741818736388746414008572549536092123626194574404885557136347721236771395527209952969446914252497487869530653498640326004246506630380891657284491645198038154475584071554297538800023164525776188683001521694220738181911701223230112094782697879299468632577755787759671681345425401923785860727529159276369085051637288116618971125895060578568008834810916015206678157143677870909628852628835466914531350119235760937258368138268350692349971636834503392731305240984259567748786593850727835298917259220133300956253703271537668099491391507349650174848897985950536177344013592849291323925743250238652345157299421412924696120247317831768637530580192692206057565118667309012005087248257296462994067229292012236230713825383761486076845501984615218521164839275053252323770271296192219714326516856209741254262890299170014884842704459335187485259963338792606263301688009881479355540824499221929987651558308342918435397081290827781236768284030494216506670001326450185029412499751110365102993622999980944312781209855246519159573712100908134577383159020540412856378486397211403869364567462494594841418597856557044899990326185660801417019940892403891714077403678823655980810111611393991813824036805853043677259025459928986718601831534579064339282350561888139166630921128020075762858268021594971356584993800813482546134993897883561296292494639392251328986838174815891979685792769774981893099974968078314291423397237012965690973583237450761587381752893135591523316932731918231505439470375090328198340774458231972806291517399387797059036718664161240990387848312746750852816288196915939177477432500396654403703730414478440471072707906804342975949710694086561845837366686307161783812423841306377032699115116781582095745018864006743861149269784172673858998375624607554683865217988340042655477336513994848927020556249168096194764417340433447474815769454855950025278947955753685372669872641833465161487728369282563123262519931508757458813699357855585758855584913919164681233617935934044792797444586943056655178693950257031893607768346511349880972193651256992112767667353385617899277894419223545549387161611648088072293886533042599015798073897961043640076228241323446203360669926427662973250344253726807011358730730970314143829153862929470472971594065875431381018308999128876357517569287859404576472702303335207221529277177979517601764643258313783463829256348195489411472651269672641084263271248274485141599628815058459464622658597110561780466293307944878233380940426151520786077526988575152436784622705786672084022436674476710831953469285721634326722537011986899024835932737504691114916706726532735465413766661924150684794225352161891980323334878938017138162941203118776562479644485446051113579965880893059715168356592282336658280894133139961588408597910209781127364636416847248357368006746419032666080093412604379966448928006256870908629727093440612576882947395680210203136677549611782818853509632699270094650876430621509227247234887321346865289402211570743892762218342776894541746337861490725379630266179117645467330157263696897698708537683810720558187751006903959161533747020956298769870922962940309547176201187651455614882119897923496128627544209062728518417201958205072884515817290088934833425038801696964771537693053349101321635093536841219545019815717891225500239981198850405268371235966991589567715671501719460641360647280123615405737278423535975670785421150906645677326591829487078513995387987477486901512677656261159305820121154565597879772949608900880170109867303545383787564499269840919786903807689397677883417347312393732223819329926128072915926034392136473431622421066280392950993649466313996423918150156665190895749377295756930119285514363365975800284275174312844641174945469246746249589797752860948032538951852771167290970646649632098689935656802063651589857517198992822266924503630430302749499449012314611009906243178309498769874954931757644854746607528324798348767058585734616478563366707503101345434799700617107451537332093908653764545181880684394087088893973825302844676505052098209593102005097039720659989911054396929198358911166682956167473084744559960736896459426105094217619419400518046934297427587149108541710274246941403052039135711295516733773667234037566153009312331321749861817808821464987363289068285317969205931120255718206403226231395384839778342613990150606896995514108504171001292753189746154882314139881421818373976883515087625156739909954611955205393344364120055623127651509331522517934447915597874037455855054735076346517086027994621934031027987649620061365943444811018680282043365437272325505139045482745773626659928471280550330882044478303296845627461159619937403147173388597381880986299975190609234454323526384025722627532537580581437493404658566225571665979428175410050442411140121905791678023996997703782587352161950493891553506348692801228702666642224537398900515774800520493279537629233027946219765773957209727217414035976667894176502683700598369088484795571057017741497928153513746877303591073581736392492742546007275824673880505909044471585170478306792036061759451414722509401309958774356678493617991356572555759003435928162798911780092191252239329924924711152895514366794439641930662782463019577670508534920304485653012343426039033831087236912357905475674272159696119164302464187163420198483193016201874798784796084537583952035914211807941447857615874212898016602328254785221820146531472247855364065618434232054168289273369793074464808870912444174727860291857716676059791254012930555556824706446238356284135690559233519339263631185267680036717957103980755027386598495515483054772990948860726708932365347929724009172214917881515916816133713101390202824618919857469248691275786205602797743661148398282126049220897646584656581421457661633622472681404704942319857012791820435104535972785198250383507681370462266178954949186021090862636626604572928656550098637785555648044466557699955467009800671495933883376498087730702629081070891567753094323710194071784177484796508519893944614761446260519216771299455294648286404688444476132663865305855990394997706995128181951431973683655235444473299970653681117202019969400430986481736230090857746453218925724936421884820767189603086368333806343297661234835609145284688115746193497338675358336402860479849811437984634300161389471498698473959557157110654287593963237367499814100482923396104618594721461151219960299368289874310041229251121492848900488202692878788091669557049107264875177652635930468081568546132569729282489225864355528102852784561175809225485301119206507534175445136303694943887397318441266935566498634442438782289662605849986147444449098267794368805747552179612555075117898486198673448110283139794689763302509992181686245295780555145696495926125171980589724904896045123507464394453069911464146619901049309197602627767412321961015273788440636675963851129654535107921678917961422799753393570624119237104346805091288360965714373167237734352205853303773129170247000363257330838526034280138861835123671952860538513569013038279610793087635174331144357833928928706853102392011727794268687192541506933425977958052087356907038039997407428508986900448104829089610748528626996862894708482355538750582031025549408094607066385504901452900176614589812965174957400235631425626963939733845229253366127386503811841244794100105127360542016171856981616233105923937314011199940339059900602499086699929853609455997715188358520154477057008480475545099258127484492471322787079191389068708691196707180098822229520095423112590101692284973477750060538494239198331859924255411518187892719323715322077450305037510589249297016170693288215803120359269119104301493258727659282544483154532851258418363057020490729031113270411195963255575716733018749884084921256299738322615620703934004081523558515522890093127830760395544957178059274472136564846503809496466077998529254718110259361251331072426020033434937097970924721664161253836969264597060990651376040862421039134119098107543516208869715215196302171925644649533648100356302473001237489451167727347682769786288124259108863935957711656600978859932074944371702190248910556667171850819856939931016874040308517363704781519399529783217169678860636714241926301472415518477662918089184428202351942741010735787643346260572410518327675606009198715955575534091755577163394955532133072010605388863102338658702631505869356933662591430329512145156089775079167297578049352941861318578429884564095600495684653189358721164289420578953009348570538704769398246235167745405216180167951985628263686948427464271541731613181347052981731237525614981608613801755890386415447842447812126819970764046777416701139676075314616597831633163604060996563388767178269702033088933761951475659121070377488409007641102496382663908928368130518293340079593214501500372390136244141371795608789616506675259864861364984439540769844791950449161621918144798641582875920190942384895166295315191005628408191875063793501856556109196450150082537868972687260669979094470499236772436569476643770013911985430707971436913856027326457642723281975142187202532418753032912691916140620652454731077843411816577316087196552584932430722459347158351114788452365289799360913263429812196174459514541748968957725237106419963333536512298435081917638955129079551090428815619134208980641049244194154479776945847086108133251738070616154626528751638599461064590701128303287058845183182921706377506597859604905830227493971586589244213407251694063689761355508858844650970579893704749824711245179126221695814541886076359728057106840084003894105885738299135839311038208372309375577696186027861678834613150766138073374616933527800962925550867215022009775775153215126721329393186303204951866058733123387106319391680408202711499300764938183799169857313054649695820654890744796275440202938167358562003915585127919703091714129406539728045411258896074803829899478870225726289434563288236757648527244230242710101206749891814817690643709432246926709868984132486190813505303306214001484259565758752586194461728403534840494848389340119535549302585274056906249794601502240153282257305373993007602664896657242380332530597197723391193090476796570210228505126490535348967446535785288025051643903843368485391985709286140996117882751803786313967180708053967178171134064084397086788209441879426374423182384655578622418888022661781679943915925283963488754308093038539579327518769037376861224393828760591380940774837321238155223628788555993507800334212013925983245647033181119820006847467124444996041311059738867967946829652819479672934683167056490268612480206982337507809464073611808953488996937241342916012631570245169360904419953521914601649486955965032259312045150804907919832152738000294659924972556502868234143253612709562941348257501107400299828998609580194282664550756239877158667001639519976711466106046865112547204295627738304633408544902847955773472071248680202697110884454148295643223809888229942427978623767199838996539993749429375868577400536382732273124792942934865427877597041275267844982397843625502049532937400356472265386754522959085300879718280722270890381069089506846787517053268826626927159728380077644530495780287715718745679772761075820379885176274589380312477220858792324211634500477468003610848582065604543436920898179369890478588140861897229444752599606849280606060277421127992732368594240414738839723893181666479077610628625540524539193324656425117865351555077299811647361438881239216159343575422921547699940086567364293372009212291878073312976891852067105152714475765019577844921591129398894521263265881235404680731785256077752742903516593284999634306559079375607797868793027424285864283852112603291046977268550573344290753822100276693249638842385927618656179277141449390362690283264551673680150960818036196821667400927840039306784972387564867308512875342221794784074248420881190586534448739606320825352173629432458033401802376302770266237741545403284182827589667092703439626610061505282089189787705436110034924723786266645143005166195182713899538012547247516551223090888477405891304605536882596972280359086877439819418680030200506177361754361914893903321297134014591828220137370493969195007094570836714176804089624325721073528837964540547844554826030613060948569414434801023782806944027722353120522247874297583349550639374917171790685789155376965642233949869491997583363207784706692747588997120871519202957668291230204104915767473862722891819300961724366371093552612879280216515642201435076240769784139613570011143540574697861589275995251361037184046771921323422507445914853786760601547711857458964205945153365951585719228667337407930759222484764975065292605768923043252567197087676446152595099202378587503640973144705985658229697194500416707661097456755905321719605932309917060082141367769648305066970906583334321770766164587830235810555506575941361189034047134380173013149422819164203576897748512815502579256017280814573755173637960452282026533754598057287273947368115714251955527592559798541799619624565098350772925525662756863684507738360393534079174241798508411617118409814846941472102381389189890218483869247441844698939010490311148368822708407902805883526402561597855348245722637427331686364037127702179290383364789734014162338450407870982644786381094584909619462600623994653106422162362648744518960473775478941143109451488574376943779228469021051785193211833712748123469237251935903158282405184096482423507589917322990794366749817341467884710458161762762745327329262000245850020890654948535783786648394546575466129316106029847944364082620353399035727452220972708887424194166681389441217017404845312924981898645285022612619731757822173394931984109627404572858241247954071235545201689246748542459548435377496659336419430628675348352396967037685657574810145592431300393485094577017745409475383104388621969755921393524175166941639924787222901954450275977458611428248117132278609242296542178491780185131083435010912045616623108783863409237765253350321299349119637444168884851246338626510797490897670870463528361922430475515414230617882837812875224363483742177765682560275952015332171658285653308896699386596203048511828843310655514198680961415854497632483987364550166769749117042815935324029445492953850335097653691860659278210631232917299195027381458579866117809046467468602066880342138354287077380304030699783145202762061991175770832834521145516311446078746915757015191619980992615351324295683931028676165515914225641348857853025790271898991066865926943725468400912386920604011849903545298806278338966989544540639267507486072667778350546630930912890425184965621148506204429991764112146357974389178193914367965275450734737355327481313837433436960433919130476520815588357055790969005143104030925312885134762523262927595907424434277195461451278261909539272920393283485362324349169250106570377442696021868570729156699506050930639809874331863710742439736938812422895861582704374160657995362466957042638355179647060973106401049576285732578273101350177854043730589306835995376333811234902342690127977397320906073263507233737218292143749896638133559432835710447736919895621150303620704373664782887138161408127081504123587065699272815728476953283372017220937214488231235248715071488065552622221931584727524142072031008591841662303141895026908850119331770785892031636367433131358813135883186548362091312256661069972756012215463546280404685993627529262550497126169112440880391933503697896908809249655020896208578311457353687111188194266136610239229590226924409039793597023601486619579376626873527513661384433829129089928186793372925246995303257848268557795268176549553871907519416045363005718682289480055418414469656122556117412223591419697309407150074562569364819751441161080238194271750022695488086950849340176225010615938770325871717309520040110038731228451951505673498021843423573147026630697381499628033811325844079418612376246653205480336456190402001025559235994964277316779904062194078350692965043410722484484857996648201965584534924244760201088304908290466145370026238577356905418885761808140552354047024620707453972455247467316880351858093888595688196221409864077106679372496324281882105087088214998272990828064879345536361556321472718900834996566226015140092114596867060238840440271238922270330874197708952336494403399308529546438197941612584342563793944106672433401001723892956315079547596783817664581398058900011896618944647671785589618429320749278354680623538663029209508466928584319511705917077670482626897341179560654589486737030062606848545978539329047490593286353846376199462899860732536496020888044208353651337032976023204432624860630850566270836525356519066425779330678280871394783079107911266877365908083098735287497717851405255260473178318257866902500873493395505984310771835292250177189726578246588965327891183638785844505657291565975730709738368056577074489480770009058631722266443798678884590756996198909393392463005727269390417412801836247715458731811526120035802400764180452722113010380572463775282363864142694118762996656080418602168252524610057599594551030445527037323921654659233585235722701469331183029854218359795411915400000504543732132731308961129770240852497535888985554951172786993349192533841668386431766323672391979256373720481023064894961253235404657067147328935611474498366495013412146654049898120687781468520168414191825483781201029531507095701965842051115042136720976752395976326148212141000603059718320252145493414770215872090759921795658216254639820817791737211855101269570036955077102142112517732972540908301924297718905398665093311234510911239259338730763417912394549351484467002879580758062461543360719283713971254963832295801187947912336734721907755393010533907909983404475770133849395366214059179659301572393419232477217982529637575198512379951940587706854412753697954464100370152130352050495602903402445377354871709306482357925962433918246972409065844304522412261698659319766020943252286741980049615624396557966177912720928038535358604122665613403988029640964612859422363799632299089333055413723619892552784585981793322786097917173765040059967313674764753377745622713006199121325530581115508039045096325346262002073491176446490654272582439363934393626563884453695301368942048742820759196511948011662405236271470051367038804947650548486024691482007981037998629722519479891784207262397065296932908399984197561262658923209000439367698229635684594349856031286376048265683747785654345830909899894607245167062086411053551258218345876981047509625222489060831855021076188856167345158445345695508866284004473212874403923874645377111107444382328620529024591141020750422545914723180811745604453384718098577071630438281747398322700797916159695386828863223277343054232126000570258593178332463413704128832707502213729131001869893205699846277692726207335829957739160606352318054101749634211155506080190340854370676195564751313388963337864115432983658372104942402851315652063530571143899698058742151230891293924771745777395204109015080514886426035454380297437577146595055375526342395688394937014320565735164558499376604397377476908176681344545005956683335256972710669100448920751774800273634079950127957301227700765166046923310724064890798897885779865622679988903034687963651588092853865630413961155819845612930130569682540150876842275772784413471379793675533588452891267727976099434051965252669573788472259472626033552011087143595388444379214120776550558085496981452718442086216299721231439271932976516228352376602951361639762808023681081198169922309645905849521582316191189052658905147464120340738009041346959583292382968653161537135272536113447885599769953441529592720927023519391829534357379372962151890990425073051620912001189667053922531253141559022465342896977123938851522417834770780804648351735233209742804681739055109467665652950298123080342583814968519179199262030706112840528248623644244982333349424307171493296259685430664942012974297704213075597482437869389394351006100221263515832366586432358139549534324944816658066987448549101882397174104600903969899158703611789909908592304229453223285338243548143399144991847824726368153633460280988847832717970489782837937551868438033382038968283638884515458710120223929955323381434123304987386450828704110849949077039744397617903541414661082930639689955336955266970146814131383283397223897598830122392561146067685953617067026526455498019023331211528344340315127592455238584379599974651936703648636509609821972901502744447388463215728855730254354900926724156562654555024617951907843000019998526478454266331812631922157028887792823987323249550315414699148073312161405325454414770282639205103000453901190118406215268746067770361877161252522070869199783169875910047504274190614865205652751314710468159635086045401961419810762681062922988344470264067810375790644389043546391814337527133247358400246337651103751901027472590906741561613128191651654648682246065995662353434357094651035782491211994938468014224202533125616354454254772401384436220670879430891031623438147072452176106837674996172998653840603824720229341247824652611463101610328632285289328885011977579532765026555561743675119866950876654732577228146524141335667517430631388665373279292071982254604426091653865943160202347423446946566136323424003448947008376380138563442706250728205375156390281582490433058637621238135852383704420412419421063317033129582875390548671634277314311675070066521774912993094650283102472657768357302595462403597682881027327613476589514411236741498792920497856694401724861206207050357991559155167909824991926614077441748025013299730358906316973464236640257017941508547364594144677439999584423026662381797438213389519479568210014118809578752269852281126339011336758107082689124611378310542553454647847970443892905099364699951500000765756223782910159590132728694616265959020025091734138354075805694766082381941213393218603929994550451542129395799772408914204652291849893650430227445014529170988496224595633792803648909640235565010059865649010024294233393526659966939837400232114823701808168746641188928539679038851032094483892725174943068331330972985442109549131438184800175957223149771381866027812920510668632685522627705965360641592837586523305849695071542058698405772997355027896162628619129895790467636304026221698408314092117427407043704056635202472195172699174006920764868064447337293929550098211084101964946650178694159742299430044635935713404545618464965457720713029331277307850656912348214324807634453518757211702338299554599354504573980995757697821021731597699841648500053469569810322768181706503205272277545746146898048067343179397563765772766411265165318125815967071108461370636420500105671039231280827183086386488660146514073744416863569983602194171525272563012137340514791426594332104962851120422280779326609307405021236208123280117001903319628456203002486755235781343845321811598985261500097220465367308673051537946689791233684918240318964873828905486756735617546610599768769953919325120582627084302647274467736280040326182565427237646630143695104688136407254346759813979233636844770507324551977350878859597291101195556927222955258190033078494570260610798468868204616083999259491881196662803207860927124633647244415451300293450465471835208997346135452963008939547734155245623346898561173941225446577689446600330870667334593497480996628365195945869002293995375690007040281224413401796100941162570089314830618431467825754575600090912889298921489610447303522659554301573805849975693777488456561624438210014923257278982577741827461915080771862982742660654215222438897499841099848005683063004193501657576868083387413596943426378048321765847592904810654838360816881128492921028027387326758755049726305592308096255404443598953686021717784364677819381132432652722220936801983223743369919466259722985484859301444154508815794863992565841599710461100977445568230355879940599776293499999024337213656548479683223033685063904585470937911205033309482922224710117444162198119133760522455536643243911624130711459480923781713779038500012417470622216782870880192635991663912435711531675038877045267993059912146576573603914989836295979792996357355256523650146095054658879556168483964321646008731287862233279012072193301112770924375072157021992727551601226696050309764430252601524721027931676477827683979290501390235076828680748983018736872382496917188746839956416780541522060052095336526748452035064333311688716224509005854697193983065524690950167107147396328419352469656050580143495912031452399319236416325254015566822844629034353063838983477556923852330871444506850943822448102661512054482614406135018414062965413358898749563396437755607194894022180202439693182762399924864703473782118004768551293655094467507824904298103343134741037967654282628951443752068573758503307144703955987106952634711053301233789912240280264363971292604933123453778663585073619988717195742037948468766452812053700052772900639874427715558547297160098181063131950298743529175384171097161841724290546570360249991246017957294584394795571608327614877437020817167443561327823619164320690205734552359127191705985779027472812581636907297539042377447741805982058194806330289173084218563811034189880263705307808301768377961042941801362933744995631398504882238015665219506899300350537939880246800742420299670176459327747018228702810704057131051133598399503506859553212221946867751664849200939326522519537777920974275296271661663532680526545086180531308742357722113190378365876903794350930668370435575590353920922701254704073586687909477592314888406759368395464602904137038900385959984754707712182428237608282620240888984776590574226480624049392146287780585773796203523185967129319618873484140254617852369052041471685275511526079432184540480139122829643725022867452007300003591647309182723802229240215991075860440595731751884569639737890904359692871640863934348787237659297167465949870365247725410667169853606647400185080275845157258841333192441157031250806633348144581658137261416977801656529976318237177155069653126460671875625786994939758492195373803133061674952617498878512801889888508242835006893718826875465343935223164366022669825834144220456116951892666452218645823861109604430180887986302193147952338055843860340140618255629823326916924945729781738015244537865925196893701374032998838566587992655791740235226517985740711157952482249841945690153610960066870122944146468591247669492321657876228083877214021620982660022336113307364271368910481748603113130566210959299027891523984906953321930569722665350609019035085280650113994099129067254556123264410122362471747420593435621411866606685628308786010536978414477188192508848901619084074345641668812831156684565752936193446438436688744432202636713459439977389659288444852029491161418508603269486432684652881546300620046806520893781400260554586399669981483755934747536891760009109221805863525761688849706665184321393322030259680551902688823397689526451019298697233738947606756786977365733184039543249177849064237417908515917801822705682505397999837238932958347644167643345151202106740300961552283943507058639681465699121409724965454610031022032243089218373693201601238388306624284668591242709233003562514774349400124444009190906240649472430729776760525239256427321624745755914147754159911218235419816042611276711445053368060651191882233167281093422221049816097852762359648681161873313393154096379919284208222035244986718848602014655162577330756728304808471273036867697002981064047257166561614716124055044917602451977308637818974530777954871604745874090739339007640733317563954212535139962531593966767665089366253925738176674716193214403573744434357136364982445965636463033034878610469416713036161309886315634483786052137811493080769282487051046754010637288307682365579023240259363110156546843034825458922934461794522572452020306234330528453809567113291443822349830620691181927078737676641234574678856186587125652505967304133472557962746604776904426621662215553479901166727730205099400109051335488645227201589025453332076597454907807768812455291808156502228042330246986056058857671673685750149973567034065820883903893248353070871937983574250647527427629873518155536961715123969353997029099101868676469587623657448292934726090003106732168213040894905097627180787640046220239077327184780522896749330702644810147322669125301352424215134631049592681631643186048780946475515783876413759421146146651439824790372695585348706691706194116705256845157762850633291086717096816706023854100158663225833585765458338599733442126152317160416368064494161758374390039251663554286506701386654945735983814723629463700737859378544923273946873227545185786997871186495211719039751455621103662890177902304725432219747713636044269559898594588078214276611782562257176080850001443247754680848947384665297762406247477230200814932882903866098931268977506823846002464693037513843342625909366020782755307589846087497343940210991379665284375285366063741289084484448131297276779685638507455248440913650031330414975155401245851725687854123755828726818724676505698345654219858761874994144301101139402463461426472856404060103493076304636089163281118565360134150083492265543104463211129615537596122890034898174372475146992863946619845153104962108545570540873566037634241126433547172034535363887410583764368631311642649531597526341495245942510846732041213274469350563052294737320271548914983658538000413634026575911911122066683999109306963609621928513968232196725769737001322170664356214914786980347175746764365648711684533239876280128552113922634814229316595062145540977858697810705598867424546103275702467487219596047060066801076530174038953634555365469644272651776057616014410501883583725476799421141605248991527291707240136877173421409897440547291877779986479372954172360083456291459791492775583156821878321583238071154136880798776837672985905369928835462673715568787925039766084966238774024972212498384548079915075206029058020491096133689407438037661491352532637501335908776443256357833984034182022992263511825656017821129143948246259847730199223665088504567401259274702008438459615992342120081081045038765109398873458164455020452338421059309630884660590174336131576016213971430542357658350192743690255986153383058674745540398507561268040263015897369672441438153948329507875338749514817740977030644650304285666329660883710424307556627648767068752412335553855094139804220738024662673395861333288779506358288990060431181195856309476012484050720866223800263949421925928634854061157986911283421680466520407104342843103378068599797296491841971465669542148282163843473877607459515752743752342993206066257852147548407186756392629849688573804090424358552825628416346397486000660111814037022723319104745448963332757588456269628566390279363808008020085324002919868622234068879630282369882162604063683528747452415705723406863090227897473178352657134506977671673872297059029223990411446993338379811238314878009562494445229495372680032994338575728669348687157603572822534777349616387993819816982324619136592939282344833410768504586170109683039200113302532835780300080807743348094026595291540090775487826670172310764398650733068418358541351222009144660866329284532568855019976591288416214919619267244547068196440936444502163710062986828818648119093030970563159444370576305650326266047981515268582811839885890643248760475366008804184671200097520245761296838901822997852633101033368944914771488642885594346231638784898005653606671838275662010427027046184272954823534742969904392682455439655550770606996200088219843060194873052392515498947955472915680962404849154775109065863897209651367262116869903163289495633066911838507883296825137821967226404907706835123287966306514126418639303948064711589375171538274930605724426747612202238381152200425813061111205183201255297882217409769187414080669088835256431852306440621185013508793361562610772281650880466397781466759119575849875904107732364871556951535275383429095091672742186012735856125968485949294989767691827275839202741603559644522990088991284818640450932991774733220201675942794439153584878693341182384646680863981795949674810132618748992125027423655140096320334616371020535794404704220686721949201056602719400113672352352992696235715471634506019003161703927812811014303090705094499387274523116560508277767862445211825246588943365877151404925327342699565817226820567029049814328031726833787967685741700868642195423943777250331009065772243420885073452180203754094541681741009936188020214342963930090705577687477605903029646169864247316820258291053783432829286481828790495522123787700448091081751635579859974129756382627777659541614330817916558945008795127998501166441917315571569748423628350548323107810163809324318484123415853174430435181366036754861888632399490981827892422504416997098595280419471740270344564852177467316933681910213371591819972999170116554656776587044813388512991544950313103628859364247897678405328775323539193690267631053329847363595258969133148237130328181433443564067595620072312938622940719327808093062211674123547608406902255596451346051182034750583069104605529760052062140795277669436734792765745912453964267350871176707288782197820493419071823171625327309087488123192348824463664594874546256825086718470846231151558363879224221273579859822183461421179237683491288372560738012912095235613670395731815884892499577107432886655531618214755055676286458656498311271596261437994918190843111764988368406970811263500088137878709510313184981159478423694342436044965604356322041762224994211810443986307681641628480425757298297503259012995089581415658907415242643823350408880201550456772286614275366314077518967446699546473455402596630350667372984320330717021961925218838401822149395413207389699389397297704306053598577844188889333177995604840219871659885325336242586623450341956641734507830841120833083427579332620989726634391563979241411869894054451029750647306670017359957154793877003548271690543871278126623405519977407114094818097699949053990964554969253906777333493125082339411259282453235938898036375733519348634355550267496250295084270446567400560624709720512331962584221259814957741066199177380943319009863331509325768690642297113872158516544435174954508757908449978961251921694741996835490015614837183567070461155974165529588482557697247204447137203814783631316132139424337950403251725910353511036719523400774431647442545076304042905002934576153130888121026334343502777795164503497677935750192030726986974425503725231653023067721473388568682903401228518689854688099019419892058619580507675098471038937001888758288322412630721836582852610638672775288743982063211393070212750735825470804140664974353127316028510710426993161428054058727358936745478797559828228671368129121759437742513032228929977391745367351987513359541278623382314585806847100145861633787702342518917878241592689142941722554609006702480752223117234244879334310451066213853171471276992697021040878136784293047141748254846542642424948877693732187304318344563856546664655499975127902280150805461406457808805916257944326863888469265219170231121679280211535052523879547033962188176750244625103546349708762347456399583139391770177263979050848943258739154299130971891229295240572213503148058812394410533422038645846214587395094310692505775805672186028387726641702539248758428952622857326297399583211346705091673344889971458359463674551046596620434938228408587020029110894017026663698600407352910473353637503699156069204587358134960703041117074862242861319519705747681986001873749618380343951422509679562176619757449937784090220126161008068117569129888880491510617790965729907006812294770898502776697163758729151531179500526649625236167937970150311221393434522880645932819905826828674089175866690433482581204265440951379888843039715761528215369291970046356591288879405544648280706617456277672697582885260767354067076656762525211956908568252220519646659951363637635958962331639570452950137320665388986090109575082520156804703431310795992198589823776419381425194047385494296356283514505564758337639050734307308024654996926512074350374701339816145868260255011574163872061977907158393779069071516447682245617701682074935017410066303779516795617259571531045863661021023736668801414616177744209283522121387149816312576469528096159134178582985542346938683116279485155516019314463812687930212970635063079442632388862869941146293476074046447171315573042619360258941760161901457082397984953192903505939269021253753986880162164937939643881109434289222132814715841830295507341159061477224425834064998803588570462030897964911337720700583162702559819592702608320854358969801580820897356793890242325999330014191929828931168331032640253287150583554063914117472388357600343933274870733752612602538007486274779600357274116289463217807422592970461011589635201160097095363056920766567925511764152118187128892941830821769260596095393871938877451876529239702420718839219458921507816733361920681322282946202132320816110476718349034900081901649157794192336766712714975228406506931207808485218299123488512146980074255127434163847096855446775228154985926427782905111889573330973396782461977058321929481041079703619535783501295939672602589580417095990172104568273988092222831727358487510263487279067624671210341910598006755922201584041349382081293496435205050868871525925794279805482217276334205068343813972901882915179628207413343363431291229638174796201014580764861692525444083146938502653949515824348225360330366372965383626932872838824327983071344083682898511535785063885673359270203563175470974145783150503981915799470720767559826902850699489233881196458275617640919637188913148114428116042721135828320501887866645850989372134255070101917818889716557238907431345649910727750521733808035510845609401785606769386844442780950180055233983224478318441649617274469775275525892527510580704522479241066787391568723945177037388580577795645228992597108068392544615313226463584295329164255338545700950505477810241630094804169050158022353465408509640697941648848076662284154069686266843574461594762284501809270364132651384388133931299215620274301585100169025993569879224216737408502049496491614941547912813379465077043188887700519520783421379383184649313097121463889938025421911627152705713168447227846558503964648558044758787120035113523347623190353852963304226374040466302923495667971198914333699629704051873590520164842214324616445991791548675266148024342190368527553497224994058276638001842372330134403745500097610493705392263314611753633884599851739937784765697107222463057094875761913046782726719559312107949412651459118023649491290909360882814605363687857441491588580644798199461909367150778251572693811796095645274259988990882672935466579379619397594967908707230513032594614717382587944818872131009383692517646017276294829914414497076197510505679677876322518464934544981562795421742589486045683837903445730412067724485469610218669755068200169872161408748210175027633420772707827651650095317333611730565076195987187424039847875643185875836042575615035376067615288345303524736409779136605391338094561820040170939415654272654834010732908002301578726524115576942876903729119042309062978411517217283315697004856937846619488063881200524631142948038616014069004333837834115173377647492632434892505293752665421270413995199604037960266762788787522192509717614768495417529855584512152641672405021511542713360924215342993826032264056517842985405348337143127834027325367287623461200948977317385916583059982131574637530673585504312641333308643406289479610481043149827169986620187075720972522781223048398239181734691155867098452088973641516213444302369864054669920507421295619173836100002027864636411651969202722330964746550081634567132416868187110344012626022158113528366197125182065421725364048850362041040907388327598027849185393867030433127589337728101968976950222672917222817130581338228516254182272253220783281736787175560296385334102799676939267080592086025082248594847613956347984386040552521475071173235589610321249782221995991706010532732490586323738248398765275149872252896907362166486309105115472937732162966634833552694749655688401770414317652977823233238254543386005416089086054480569862455522263569206958157674647300825487600132570820002217990263391855734443851187491900633626599152935950490526718059241473553509656973692548494584398541477159851635123044667317573666433933437892708778873642150789671487650863580420361600522287116786559519557554089696719607032972387444932634359487480741907805409878082724621824409677326779483868955227313985421724030881871928877162410678143769249365346544598669879152966842489715037292000729952579785820184700595049967230300596392766200842359349141351198575214918034782275658061084341455212113475616231423868751286677640735205578416533649225048310955941559491374651891378087573321733819148515341878273226841987147063346988443598866780318877287899760814565527163852338928814205030758416337226147959561097725413414105733636210046720490726835779398915040470867927881252709964464880262774538046439334075561619854240262320048455942916051994875538790934834111899263200881563271457615238160813541504626465033434590665528452864628910897393308363868633959406351745375319564220327408622886757546025041460958650889659622421526008858390597504596037000035017400169549148980385200983447829044480311294811478984048761768139332307231073912370553091839000649608746106969118932962655736822518550690020215244278556825130046681087401462145914446729787013607874671682758976878523857078271018658874309440703527640033330561412097936687741758714553452770510407494649723891588686245948656845972939767544163493957948753425530668109393518541830897078231655254231934282859991085729613958768196088539458452863037528572516417624093422553486174648800825336013629447365666232078277518016919594811708025447060776064222709499647136478065460624084540998420158463211429251518977076249526448239451480243062420594696238646394802420953766864131895218208618104158533423540238217748890260554198966484065397053492302968159928980452645668477958766555856038026551220947809081058645203571003996937367630825751481825695160845301431735286482468981341935115791212283000836879769660473641874643312210505285461570068190779032047149656089184045424852749615647083101354247524372716035521757143049800698034245731253381356815389364929013395109490230557670895403704439610150087619654491497518106452683750055603636465507730124752557994889889415201254016134402998900308515340384418632099951194275765346396127831989115394673382541055559657081766271489390445271727699095626930013331426461356180121370753203848035067854104331432370442519823727698689416486608549320417596484501674972720655130283208208752249914604706374726226587075611814295370316483097602324070677018861057650177172468761069682578670053315895640875980950867055346070199750156691261517321845920027523707833596289129605095844799671641399358095636760034859872014542538923311140619057422838018251350754304468291543594517156034676872152093348688290992832715105824364638581226165974587351276397975925112359272712088543784643180356624524052049826011854414066720228982611049974587365249858570458820911529901706929723524747556298779552301448768790202269940043737406535516215959538441783847647168455044159357849924021267000801587726890755854736058949120666952901768020809882448734069921270165221464561036795904086024072368953388865398913096608402596412772684323735317771372923676574626436839657495969045378177623424912500103985372849461062706430782636547893608337652156313915678040199981841130208332793276779983064999887530653943475352771649279159390959757846238050448884488968985355837120392320136214151009662997772077590081424831566591856315454695201796424870025712387330270987959002998323304504823079336110570507300663016557129675482642776059131892312907525992170574118677860179511032512256825779991069845183323289908041913939371073648350938809022460419019095574358746023800144899018969025931835982479009068220748398416309464246581477889843037532307763398611789277396516434979699747717308144100462605067948013628668562530316989985004273202419369639069010476883683171234083558605401470855525250037162073363307225509911146683322947820176017527243661403068150485960622574305837035605629651385819510389378263146981780188428746321641378416541789136150719742005941473049247808226343904733601924733952863050160589469217423273740644937260730251848978716206978432684586328176085136957183604955207763671979458993293995232857621951571101119109844503959881829087001037490786551118899917272392643535781070071816539861405354716681350888403444781990643239251364231673835100650798601283358576641058326790617376206537565223403979279932362524581849573789238970319108180944033955535305131394224441216740766329202312029245656878208373987326492578289473385325611650709062094646134392380592392353869850589166831236865168484491406135548356981226972507532931126483581550273759602959344823722379836784175137529043826118900299394223652300018010127706749494071176674041991504217765769846687524268436059594134852559393737177635756329124892773875460571919528840602527667156595883717241463651619415805785769935348754303753154303124903748893007419691377759292060222857562987108654791155458440255498517361113759885248222929916198282853964434848378834495861454246504134533590927312586057711075579760049605995508048006818534418979738132144491478481636321972435258186873990690090360949401561889349556884444464238768008316004258042404763288799039585095387167751645709963506053170708248252591646105169417925074720936902458805698342345614565150203527222086925081634276893319837175570919371363532433607422665639331091641135219130473838341766893437349648787043881042922663155804628810024273470904780128337296903966884319939582203742542145566029060394976329606123939274810791321052929539135642071752479285103599037157964473191366724288698236509849678841855323170616740953186699062537602688998119526663826305809508790676237638226086101534071452522498201391259706001682615236464821954560920697011049957340136305439928951281980601425284863512390191480618707411179529405151569643494093572933319574205975560409436917427406631758064676689016377154460502105733935734035466082482797554779607023985844969652396302466419767792441960535401864503892406005722115604835766170706898464534946975367727294964378348902121735655819137088530945289662291253240786711894593014058362422604287155462694643767452254547643185690326748016215283842722562933788233466380643806466897997576431298996984740080787472599045680671380068272397477157036366741066555115450279318046223106255424510543295344716658994942179836505184805228919388600069833443700415722005287086508740428104077161956445147566545413986737081893739283629630447707484677659740986095797223984555245541703278205328935381017881090189598154855219911692182916275315251463492394087546874027902020473936625960350712472757897802131753601684947733695631912960140087674535590395103381560837860217469060815526583186132656746150678722320552688227387012079033685177929483218319918781528278621990122289699454766046055486366808930265342438551014622659427741840893008593872167188066496758465825084719946186526651600336318913134802178687546584570947926065222905154666328973461413549645602351395258631083566388245355506284264749256606586709007227031505586079771193548999824163953741420182283743201847549166002693860105597921442611867401828399307275970173950529853378502375125827474393184467310874204643781652375310534504801381724368507210617453671105454830591696528339582869258127653607771967832051879959861035302771903044724888119189210849715543186473314886206442935152333414346976418014616448733270648701898910344207034168445214743859273469482305719292670343477902642719000790184388970252201380187642830563225608526655345344001145705897409481341502480607537545798182539910469493008933979417567502566698744091975064994504998416481119669212731812737915469662367989100127205857393951468099265944428424703948738789538944084345667036283688501873214629967569130962456849557734998056503571559256193973438370467437916438068442439774897485218542123432011688774780637590760339278649713565963589549327218801294169256173474972596992983909145299079946049882823175664725920806126333410356732192066939965083049961334436477803888616462898085375117564402381506468273751500428435535631774483346258483632372323398576904356814685125875570696845476802270224088774479899093954081788236877166449641445585870953687595198294587071903014751173787910751160656577645957513307128833141374587163403065562170624456672620554534561981341782858228492107898261007835901379905038330993202223638395573851423959303160171064464309852891173710861151294618664222169782686334061741553199045135475001062081426318564563391854065981228755951760574459168836279497366506389521501983353401828995642739902643392856000587390349150318640037963057400348450134130154723705155578373354656445231843311668159295389234425882109611959138646363541017893941853838614857586265443467745829458300452778340760188164788459711450892950627401136725541505684730711046280355771961549300623414242547240138386482647005150437460719848674010862553159739097658760056461931537427792080684518687918322622245034671379187521494842416386070771580045555977570470201149556183123183903265504098081784871943028224542851219496518101274807858462864098851725697824209021999529510861082179767534200333193610459910898970686483121749990148847237582721987144941215891717014830016477667731879207260599874687362939128259373844055814140006562348526485631772017306242486898612026469301970868950559617480583350123639656584374377183932887008748995941858897325246641117916983825184663431040082481443423968080967147711179893805890890922561471163999171721122510048403879024043945982441845244508545168077701218853909057071217648658508136669670279697160115896491544154921305275371902343430829185205944047377498178060103818204832392620136585152123751771890403643479065459246348220807158015480287823002412661566737797769835954198551566087543087457471244491337573203614354821358305327201190646070842932998892003612543565567324221617680406201813595208475682285106714743069332003125189625736427683319548142078437653929867464454543106165033569651576461367485763173319755651193413349605259332545430977136480875416516799770654889826501009787757977872935877193902105453495833095560093821219182721494144627632030972642620556088842490522746161947956005652417229846440569873531393779400351354420119070314711532021939343509895515486846523458768837314635666141504266023084021765945326770260245820316321355382024887999463623740368939842973532832241237620621468435595966213006319428777598079608124326350262151012699891392163770091039219301220976380956125166747449882221818549199599674862150633855570680882225141306813989295506747796756871802386700737748071889900120362654214716555305904807495773351787686774206591668037064766621870454983770709066278570485874129560349782001134300407615561478246684777814614636553576590936168307007882271671286878533872966465856627971780045214895949835802119836961654169303635153097636006088599100987555579603491152101059050301006431067183672655695641589512778911102496477529407795401330054047545698308059943509267728291117459905650755305303604037854789438448460345632608324667957166951023146063509937946738397542979082754276189552471207605777674946899978000373913087690689622458024338956541624666597507448072785357344002246508147931380632143188885716647084869466601084770043759217413191751774134545381280629194404570706959432538385241024777220995307994732386470240753299574925407359296176683100247094754933428892784173707001215859261573242030039912526097018543234685916705643878698846809754678964632068688947523318801915380136384003786487095188353711538924796996164272126555294129327371634276377728359216757117032725480435155027065831692942203714245928661991758413786298920048325591658997819792055644486102323154324354075480381948786356245346564288117834161912271552590845301268962920786857955297461639013545644864423733368115548492028908585775972977765887466134144750019737357638305142141453273892030714151356967047110366068347915113220025267231213826462889566337572240041161531312714250450091284069202302298448049993216535579874533710753607263904867873412276480684071479208699371234933605472700915394532340845569829684767350325014059693942850244973401786215685291353412927501095859639764269723104014497894447958780798340621998903930515188782785134539630916708445296094137738482923771995329548325897955960699578785531666174830634035757064124927776565343524916381649649651520551242111788369470119337615116885430641790460041863283815290382131367031031331349802436073455134849742315925954215603295698899913484889723119841480500632680580469663504903002579489076150521896576154019563112391782061698721292124261624080469260313749701678342143020454858884358037533669452481116452367855698081791012681133143504364019676637595463371785597577589680654196457765124627516174867073419148373745736573438265285656917530615375514215915916809428341671944016527114629126512276651610500746753927672736956743353917500228551544095005331300017937794593794660124229967240450086143839665208191443142078452761802320957687863726483119392389215559472213974467291207516001684763967069185879229050697197996323564098263304197219593149071124880995075482655628531281873415906259462900576982803035275553013995845480550637086063671926685650138595732685682061961518831512825801912572479128856129411730419354262610448557580158602450944353011770227826638150561853192949869621580665097191428978883980040180703609704610828705276951695238433801947866083715640732311225132836034624873463066367639382150308075528533778313081016872032327995374249360846481664308353323715199212001049807859575932694268742234861968931650623922455415053952565786386209439201860659587186862478717547993582151109043907800966384506247993578345677755179876953689044292066544973144508513084744796655336240787092725982140608215361138314956993679216992713171301772667945022164343067383295293729716607340344072828192819162039446785397001941341313475929538003916593097363081358145818864939835485972231088850309987280198874456504470379890566195427280091349668853700411808442250992632835099128151499588948132476045027655127038190100591833175521744862714293174283396097289261156200385660149369580652868506035035776478897533070547976943207328591937688982876566521115436805533398986579784565731774949860567259657706892680133101346718204972494987628718501178058377309201310826093689652386944354410924837314183670569954857452179560427524688979247073678230943670933063276709696274538046124470727807749600603343056123156996937928509869715520738159535289310297778454595442258090906967287827423323854110989349327205962853814051685377282881034707234373792942391962750544930690284242866729716312110498236170554523665625350479714055367436052043961520474518235007012577282408538609477729837647467956853911374894141702524739523251567790943505855973906908865458737446509402751878102467684629562303904030258640629554643085898319281611181948057943796385997762971314778845129972671301213499310937814945653045342855710354230254047607544477791286419432519249441688278888210917247202077838532630225448276138832372843042065650734838010169581983434648727451371396191233565481551174273136819874000305594528672144807899216143105935461849381251114996260052241964049171037005460781981903127811296043157866165785261835599385211047121884539820744302194951392014277461709609010320403816000193523764647938890565150033415193986559991562863422840821781483960597267436363226486925749767749651135960871724375175267100716997741008086417913573407687639882860689066325861452332513216285938477752066370510636660455035330032104207350919897902813823375549139092786313866593957372950277634799544101564123523539692430516605339403249403642192608416085007097136258308560539896492498700426740100081564162909785775822122893634503279176046572979165032366478885860802387284209051884959188149138998272197329700018092609564825947759336150971418199715519453124011144084323351079259954311253796791800831136775092639643088515272946737375298160468082836096002113514159771315873453379427694848531458740466820887613351259531550921819811618997340553115916601123884335855246377968445970969403981484434357012250982221265436491766173271782194538178949504372506323095349180299234471219698701107742512105864742687145382331991384550623923174335135825014784061385567828625910859307910950597867965961740366317441191632996015535411888948141556017142459201781841770416017885670531603268507143114340772281766789888095285534622314286360391442078441704241883478744152577291647563191459089885966593641874438914381116314049376341260899597678611396928941944701314725705950416068244813312317743901619492354400554000495652068351007720500787563475865778348962391113934290781844576421782935526803035630386176776298475609329180848775060626636277064627226530243211210104514557299034315459159861751045205507531791949047724739458554938492607597419564926462060529429668142985245450634642711623701554911219261385744933729184689247431373472153791993072701662350910172958983592849184849952585238911554566582728410945015990860599269358395951924653519218289998689969370408917683642553044978145881975479067475777824534908646621162523876593437203702148909498366442466630899932421377518765905134076543698421036565116071187948170187781513503479987924652887337843370111192882007654544416038287892971254024667567582181294359323975575411213341621970430076828243391799429258476307210505933189694017151244631729272340030269929046188325625020652509107328982718207092025201362115859008027470501389307960800649537715109863295639584735253155597635333932908498885568281456511123004721013042308634016378371445100232979585975411135811990594705405283425097804559756928703417999646601741488190933146556749856330058404227169389383127643517184618312071784931633917287475578222161985423975056488657002645055063271211961421004744661623418630965888225260040628061652834818234925087236522346134592891410897442860948667828905960936199028401714875102205677239721202496353702754338099021134342777210410426990006496168951799322348088800481465808017459439071828998440622487095560107387102865543902843098265479061081827581020071399825913225173781038534588597373383429681813988451230929214651615806186563890501569310702605715031645571299146435402420773017694146042534966369273444762499787555546616801128181958359124101397434162243220489891190666702413078009144112013397177148435145535896424186896559681400273580929168649603619112861761043395727014097684482567758761604099227046614613511282860598394685723745821602007372748346003028526614592739019742432439098662487526714341354205410535262354098821891913694359306986929987379343971715239471873005239426478017336356964399574372475231425273099378668577155572265990665336090898618821161485275127078492972092139946124122982425072477242045840670079964628635822623066944507234815812652450485931746856364602282902465419339738792690400552140450665209740295892126672264126195641942541605027057215899989601407987556314509042120604312273515062825746477508078903163355934493987676003822633233173770791164232421320319832073642726466839498697921365155947567603765052104850385000203837228374681436810452788147156705421287620338293422799180210947521599620717682530681624982201852687318691815896810928233591818239170132979827871596061495645279180745522599092017233927490727049335559793972077461684506603268876646055015190367329353794839438145793077971760432497012526211650516973805297550586268291870641723968437695107275280684235865125324070196090129367774494549125122019135496928695220055520663810144260621994471880781408921357334784948714260762502018364340346107111112435078499543787244233414436611833475769386146326112851602253822900150534513066450460997732397835188200255284729623678756350724536924404739146606885490914099173849369947345217853686917313438163332060861756851426226572689138639271878447605932151586528837024109294853178404035937491878305830495568927375099222166918940838684947807996635883484216048947381834155768015005322895082919882062487032840995962728082144253731489676567225088440017612661253944003482142035438935877768267123082590396294910417847225938590107928735765214848742111510010564828616307320482281429953124650560534355982536832196072058296844091660142145365529999250691354127657755715464257329705511036706867425093736981663417278955750732081437663744425645376458898174717665141153351378116427460649604537009285530994990124737423362756229424304726666105961019129047075552684259153844375660474999591548213820451799406369512217909228362317036961409438060309750402839155084507101053688686780252745910655703276323020047459027802080475261708150479788506378755120116502924361699625534998507240173837734418030767772381495834907941360718414436015504024799761006898657897844984235750649697019432839521823391909016508454367263140227575536979265200380829538497495625954245393343747816991126131272981699778377555412115883565876952042768978766626406001014942684756431715920588998439770269403183494529860563557249016041549189260697596410954191124723496825499724140229553843999790710463618175153803892097357770030486986414373357445014965583473436645743281607448498999335173143771211639306636195844816956242896531380096543603104497029545867963694118853088739025211032007627075836136181520766824180939630023473834762362128100448024263313901913801897599577584619842773952442854922798090886006845859301465812146429260981856523161453343675194281111056308009281378732044633179784675243746610190555254251477604431181683236156503262177150859783315627264359556307757560219312650416520197458398814807748600763534840177752313243463744965316021386215255586052580266638535450926557137521226614976957732786827976132468583957713861212632053293166872628663744897267867570523117629503883351572612721212006300442962495757753370947687329636142903608149610582056520512381932775187832706208548095631640738427360225200632546172666917399157392788456967087702701467636367020567671601370161633874729020203941037503960794577691490375965595944823644217277468101754539430594870084525453460105844715820275394406350879271698753516502675296609789888191816873054108753837906559278026240596356965070497665560561553705315413734009239120032223218108414763301327836087298731775471745841095673090854116637532304599138400015972472117708926137328552835401608320674312047785254253724421539176360577659386674662594683317166542877289751651033584959210463773487707573940669645821631137410601085603576455376331210585087567880159770574434476792615275985504549409244477739665221671196150526582590090789801902067707864402458840474285409231475242567163914568374507691891297958466378967531921061310757071877325841052366106389138372611124139902047370239494054782986899391128115455501645847470562450607705574036415952487762929387154243423241088920876131846112738964925888055878613608245284643861047003329550594052551535346129567869659971918395990527167833591316957394858852486043564394285270687960546689312357668363180314934625227269598828416512112884617467019808975567224746876520210588655427594628039376912780424564261723325169233245068677415862673063260609624972271627305672301950487544885557163222108755649294571157927629561337555373454636694473645292336670734723065449507146660884506224808527881635601612084861902958707227380354879661905903061585308644852667691086868861286767796938984698773650803863850711512882630671814895377247981491792451128031825983642414888772647195508988902605422276655848127650426969289054378396786696767530031679495958738532141794431028726115712483437937298071301852476378090178170138116209490485075822765174534270540298555111761235868846322444436042013884644132972449204722099192336035062420696578959870050605099504776599814750996617151563221710884304546557129737016318722105716987799070083107194105567992737134644297714007567993027882992948672650766687700816667484390488782910290859283180888984847082850318763752110206717227692702783074208718555671248860405293338568802263607974558041379387660565347954615182057484193983215502257539360394622307638659760102192622678666644819181246847659951422404946728698940046757588699324676788678925109330236227419295756864682843446021255706826738297887343886796856089978839564633413843761012471167675370335113199223440427341108673024098679204452204346418933951546870123364780379886556732909600221055042483766661185464572306121351950632064946843795107790224966717772413494532179102313691192373273103265765529602502189240928952325172687532024023186653372887339644135421399879164063060937697947776956960098347406725193135589692080478716092636749101025563528430489585730932236820333962235393286458723001159525973082065774360464849155531949734583166577459472376991142163913907952849294744158527802597654949047507040754970940595492474143432185053156033704001843276727067376080905406644357331534745543829334786726040937946952975639349470081267655711157393030405481246063452805991262128962212488882517576769373814219380629875359144655109871342414652183922700877606782796904406749718393036563925376162834374508028501089003874008361921372706226715105991281568912040326493828977525332651789027177918698774889669121548081482635043102818600154635710700565495095313028000760302212274413322377236846280721743535079682106125348625187260344060722919024906262829105213751596095202717393534316307184036302026481248024370031272413660341816341310086239115817422603896127771042649880846140327123555818957848343654532706509870369990394068447499123234727947700076277629809949203924217320509805514099671511537914967135532624660115579042313199372509803074732393088349958473701112482323184907732029518165417999147536557800796734646050086539971159012187123341554095924876772053111753943988528057519582960901407954592021812296289825926425105975406436682565361627240947362667954275887600498435127011473520695080764052483144224102283855512894108153496224190139353966480022118604821919869783170013972198804819342775649899772102077214627656203663032664360374183412057498351211718649670989941406921465647740528829201210415571947085972642021958328424221005607537783482809760867351863161655626693969372238028228488033537834572602894689439149405833450768964180984212964060252223132078987685500755099307226193330949732003775170329441134953652457879350693912270200393485351367148607773811594475166976945364924686847164353922238954442667764858386746767227193456379422522263848864135563880407108955197770011761588332823705527532973721699796337758333356565661424538080148341533075487100748256407455848265018256841880361793800434099878953495480409384609156719606531363866422898378007142596928494805102106719723794652911950617334287516909637486884262511225418446788340016948125468283481337780424043038149298680468150457691098060963214198768936456462742009407822569733981339863217672866688934980592423454396359359313424388873235882356897167120670574237210610927329242830247339420506242931049397489084377078868030691671273866250301753283600733319408272678252170270518880097390176241561940984646128237605937756275417364344528967734249625436299008731766387459622484071849775108975114545896316801498397492828170468134094881872990512898323373276719213705935328449088837975516891536062589542475696057152047194628930185760716062825908320647896624898829260115771968065187212632403134523954695412322969942739255384562739981526299140243021474634824054293711653451168562746404471092895546411715619585222916396386465855223054040878710840232399673332408990697395029903598852280603481436362659018707502956773144844091195353952112996082132301085921950857752695857069317186407207968885787357130104591901625994346929851604150996881587356378843036416241766392460823360282361075743780012350981602625403733386604763502890025138583458614061539850935579008477131517946708311125753581536485506227215302187382321431178630272831073209035316420534910313164743863795016061231029807389493719831112031989233331592746570926644493683302600024232936702425375622869042843320455802974866512496648296635399155031259367704877154927261191039919693864594000313423192292487932802409529859495655304296434712547342962869855571949785621175848924967234244897157070841975676666282618618962097789430109536040550526418232524002018930611293576477058793943764338968128833267760954085151282173458236265817974798206761562557523984824897964454258291357042172467146552486970313879158221033892452806320757682887956777397074019505298601384148919534438668877230613338532376322277139170090451815563587302913632838688874992480887983487293826428914299944335568916279519770629629702015855372482642471769206613357206510656437557379988353627007440276390648374488464691024234046848151526518610768700292124349979278420209006329426807252238450008688931642370532171728729232778132470906007785324898046879614146489324509816907940852957628806575102411697467603273582345686053153168205842111517105389157158124049561668682814297383304630528390120769721293112294908603624789159766412124371319583537573688775271603168773805441156153049056733207948052673730036822231391504351806899150124254270830407967194275583412205232468873291954811385677388786314449578686309311292268318291672598900384390726412698299206413604296002611353170331551482472429035650118912868260053752979849798610800312918224348151445129475677003642787840849082385981657388308326757120542913363117449767188573955253016317779510861027914584461397251794232848122694648133228486259858598063881464925839587155800575853484750224514945063137191994933405030943765987093144326256349804024669041948602093943392746258209230272044972091721258554801424998706380752816232834294582632134901703424490634009782470645199178191915570524189074134725206310272254939854257068861817758788466330152721590284581437770842688149801320315219827618739919404421452246849493221116465345593834710980499735975752050110618634365802359888839692972410778136547922431822540620684575889002350563584895089213084401993223932935871107939882767998393102158054521302809979981828007995948756732353227472288976613126686116803608033460517522510623301944676596381948167635386547411096102517352644583297954356354687293996724842877638152613457634747023114993277232081430605858221391536848806082818092787167190496542430370673750192928503722053986214580398791492259915607639389200889496027064880446098546059123141920139244752299916533468682288879172088839603021983437875190918512545457338297025029170277566062355344885419769109548808053347297109956962752975671309976250657292997719948864274229178724318587859206320440887196481978373374808828112639829501566841824864739675053238408391086261330243361061082498803953078688929702777661618357095936968918797596437825507846981233236345297777388314028839983087670178952489183195457894885918389321376975767604882186032173475127367004387503465624399096051145466139440681772819127710293150829672222584203404841146667317663703375620432451537976390105688726523923207061207587976637065268162312819190596331136712637674367818308701999310100829173550733487533478274419510568014571808911228966891034288419051179537705257111404639108284948855255026562243287674976234469862334688594761486069427980553173447569537912917115361396748648073732808295399018494852419746403179231700380981621995436324760974561929063950910533883249761158921726577187242418349964350130772406139471922689797579521015322900137544047999815899315981185781390057425471556019671293410632422040783953795930754164145061932870345173918863709248324598875772668318384389384801349905258734620146668140632744460888400044818421979468573472676680175682607276262327883701887731175155241200045287822712063477200268973078587137982814322792103937449241120988176298957770969158347868764028101470736249550280270996292891852983997359662220515351982782987562959880792109339322308555428266459476010050466037169607390187141610283184101242308429479791035395538163585513590649011653490839419866016255620542108317371970436475892397789252393686606260123358135800888528444688711231753721829139401174149215847379974517072760084713699325353512447134043437846329069082775210551673726909810115306718915237956708337014538527530283961578545957014784139886818842186797380761435023223635162911478930730442693033246628356910195524977417690516488724894223524756461364677626867162757801274163551738823660388668355331268351708398202172709086361658334990350887763293416769689315302051147844847224387856930843705143254044804800904246283766394332702383268259340273101426039048470612827212555044982277633023362485104223842748916504503683686936456544834714847042579816042822629887366450315183240884099379131405790064358754076200306382852257842237439279377342099486032831196413064260073591151504460909883716221158778035411275738498977117632580801958994984760335390878267257242579706321324885307088060300089646204560355345596907436024745749496704458000085870297265400454000175434287511917882266680006697139390540312253395343431998161784224920081798805198108602418764936931478870984888869868121213083117333764013616750864405108319058640656816387137759811469644431954970522053816549456797940150185339730783159790164636171077529230736692415415427442340058911314138043454748521083992199674261557627940692833850250581639623496018625454689226955443283328920019245657942036446844311304561042882499116758228233564732169103710789295157954469463122261485194755368180898226162739505394228422956372313566095493890762715773277213066770114726558850378320355136302313190879991316943121755735610965503364608814849244393129011345829281202037957328442961063631866939795685143140563237166021565709097385046486094776262671621804451492200603527973938948189348099597499766391700397283172653028021056868488440506757497755418712431788749238792303528405168448201099357654443272091267451729722547966148395248984848015997841679762418155687715656763343987827983118548216716193874506660039955060775169109422079830422515907452381354462948164390647528822279658858645961729022054302789217171756976001213424477560741616107190764746588231992703072744300558352621392676955614871479439164751889406192100596743067897090857770031111526733041545057894712363812923819892194248023709546302360002449699052098362338520025220573097233429214782639032279031304006042116773709456960316982166506698880147549666493401231864737526225992980108374090466133010457456427352005352851697720879033400379387591621117624329312640205086059805373356727051750218592440917956477942751392350142292732397878022880550907288516759300361298616468801887063760359057281237938267159040650872983244878015661465500637718385876562562361222250961532171321254185080608758013545193186677966931622362604438767060289229591083111302190988780915037056499019845254232159450669834815519988836564912061613910910773873381872214071461310458088178952950382891305327751939618238252678351574822245937448140311685741914751821816788164536992648536354708498023823213887836697444812625186431580806375894119266652090903839517169751762082288476726620891680634417584106950707195462200314310837379827348670285008712243193402161999980903767535341463818375353834494106389243811260522777480410148069414234551869202240377599591223669078033745954150734421519776843575112909030820092495043063667349575001892888422329564793126864934129325688245783771800306316824097166088693625390312397863408816067609949684130935936380374302475118689485353214498850933605018049040519339779849034194477106819221037752353594995033431384236666464042864106133727150413791252055096115428125841542389149968438673802910983876116516877315153815957027492907904712445784525639908092156865742423155072098270845892311927901434886285756663421775653384279296930571969859729976001220112124728135028506321673793517466007349207780576975253958606525586659178591468030087087998273771952127060319942858930565999219576482868417033082692643170694062227944922907025788922185532673018579152895774178373323102571679058843498376631837623996611783390192591264508518353122179010823832083058326024949367432327695878867818891818234558140458206421595707062000850788513853276582186480873745041350568025071680199027389610725673702783684947381880505226015883587680197615017204659053734488729623236178792847902989757461510645665927160232839472668655931784628299365034229401264108131647976444386177681852901436160889393215921256886408321532439018780285066319142840853085199501550633945534038911010418850258635386682678987496499814303698658174558027530127278828015318238930522322954427242515979287050971925283119151494244673832762708160343759395677507814121047151884783182585089236000004404862267481824825416399886291017686441830602267727578981634850100681704463472000407878022724264939777697926163832102860771149345238029460992563037955208327175837761457575522880838999295013404544807050000438405036265879961884498593308462326331620176831411581152564926852559428679518170024202960994576389174750011393127383964838416590373015586980498179380877306364249705911345117368689464077966771739587769263998768661264984254708119900403972396239607580659522178755195377546821081375577062878681438906710287961381928705136117450304727635611886796709657518432941716992352980769557756791440049083708654077941583817402607025595160135479166532072562434451543255483736548862565484740176030215692227964274140126074671390230339979480400526811656666667165557697417608994363060519235771824589624718259100595988391835477413871134904654457908355853147044849290884829018368562595606340019859726515762211469333783723767230464563876348159228974533881797550338887495666213434135176746144921708153541419197455255702120747603575551728415718152476965278972996673466221616328981464349658889835197848220622676091315482785483588222303132229087244736110799761602251318278245323698030542298438027032564634446196405020337701072416190139750777316646471880056970940566264499920151655975859699085029541977160058637920336987570492047147084812940566785201307205258793447255389750424202071174057798401339328887969267844871684675524429834913050391762499628142360086393003957617128427234685718383438342975992283100518125867427474525593630513414402319674488419665137558268515021765342189211921423680081108862822213860706064365653986840325949149249143384246671216496615839869760053327089175643613676070597399857151666929235975029135083399281025612039942135765030702730169473994141014258733989781421095321278810295061544006898308180906696461661409569508176607826659275943150462513392556912837325539963577959236113088077160382451374187815083518313740891506471589306403625593770826621900150942125362661208908307379781210175892543856724867038118916428425634517724942241415983749831968547458080301771434127887223035941439953438821808312791152595417726806292619368686121961648831002954404542900978026334469067259877264896171547895466573251328158146206827314483930841954355464089597451510878067207631507338858169470285614187617172089057740885320348186553803316318663174718147937311951779775663868600418610852389077428314618697365029308563251746026604139094489202101367404668338184777707397107840248804644183485831220202825689999369673518775146812817129259875045517642727444921962693911211217436852305239879494406423742130151170792208103769156513199261183013372909968227282874606277657306253147406848775929385193545041692235263469436041271514292186567689862007693505700129385968276200845026974447758244904211605138017550202393275762249176764621057010231570061222359288988273425039727896157577509745830724773893749680527696885038492165176289306972901305657706647280088158669371851564710533356538899037059644895054878579084360739849799459298987199401020820344688975278322054580248484705002843414595383880684284201588966208159095613223525743754340707381135717097151210706734679782281351101460953959148041231413406463079298581116184656392463113618570673539536949919077504846816148770228080779941379306944292134730188270204628298902537731763764710996513654588451545086855963204295963350037936026292695083079658850117238740422542388046319578021872732653483393454900823778775645770806852414597895188544605841954598511370876049951906603751676885684402693874533383842698550077217074121606271949779134655955453098820050607263749089061843413986897241210733769607265953854218734686092533409043901616925171474603517565141556495387567961907610240253315651089314085368207696216530593982326218204542156927519375097817069326446235821787562553608253723309876674636219014605001235175590308862697189264677500028706301918859649425361147883174325065790112072181808448742021547743041466283395018214771713019858379031147234749383290364190524184493255541000479650889408423053856211219570647993101494960990859494830842748572756882613661870823162074587933278129532496425371827379177536317115986378181643452558499940158493288604521385746389708788278918530639677502425147520031450774454553517131691009974865896784830942137923105358818659585812343592714242373292479755007091635673637806275210825233010256126361769912682965129173913565217423228116541219136343821298301550147859059109506876262463866387402547828137397632721982811541221139961590072552806852274955295682290247792807761759219168923298681435220480465996397600791653284681766880792213940259766998419640324660203062390281723682012942697261908137599284113966423692313823464215332703978519243028660116298662787326150554110700830811291876887030084631258184439197483734099280119003862848377707621017594116772942247792043655900139188698223740423903654520285145955986521542389451343576813057521035469071090648048152377993805092215837209439705317400133914569123819107225452674750998920009562373117673898913341351117878986601060314643468777538213432306605739928334755636439663737513731222795777655667861987221167285589005282848030452774059990963674139162394630377036394843793539552813508481245418599182312292925355495605445542772100242685574988578338627399647457579657538724135414015005319153728248194591032574761247130653751822800003331438575600532677225162601936876380931980854246511374491590328961268050529297977676266913820775090927350531501503194977473773589022641526230596878663971817174294208658484752867813559107047096340231593783644767206983850533522747313281057863031474924013989769225889370064037273611243457106896207153719471790604543627548938879496514202125296117011865718741183003924398016516328896111277031956763664266970913587001114000904999552321070655908620425897905511462036885766317010374829044525686848269883822396586618228154521198048195158354701332394989867754004152957981468081389471636644617767881828094464063655670987399241072801058101136705681117462900877188903749817211802243300545833646337361708334025668951595125664605979020517702711981804357687780784626214236433209670210289528361465885438822319594468552053452173914018654497610503866955728395056052182041591332965440955669271273508115083197786636932292211952488253705830367939438660055545550922600567786585446311366904402991456395216451037068781747986939725881364583910621849126616475088979724550556583454423282134928496502459849551454143149840606711386036086436747732368708883357236899418268598798915733425738171249183715602918131527845667345448067770810819077237804873871783304063766706545215408933117445660903654794519607855515857676312926829497021927372349885990103489647488510215326686218554488092241164940110819053909219829724510346489469379070975809060927720590617681203576346600774464458649651610758313622257387366994872293406855586057354461822761785474495691858261237380368320696963307772000348910120374667339158444193099145901505005564335134912267947639342129076006323346994884142646195993427199107353423419796717276744959868883947193770582371274782611855679412484677859646608640470097686531578543683141700476059754359668319455549991547436913000519522437379504307312983568524457810490513943202678674534368318053215064663842600943406013824963055810463557541280173359726922974606543300541322699335044599228876496054120118747764540676871429323384990006719080846503476750118854938287996701263004847493156149437180607228691223052632663341608986140126678216852361239204149188184783280811317039375864198326894323997368028327591030575563670528570626382118764139059076490828932802911188729797414868646478075950859500184075827242197260142153200812838853141320515060435991892300242799786826395860627481499728763722616236254918296939451828817568825906982851973998199137482072228620300953708125197332447438772864884440649746573125571050625421644607715534281089331736723370376210339034545166412287934636616879849512159843012880951315451157742370942608953012815994086085991089163068718729232794012573372709173320445977275302197931888503266277373467213166291117570816789348933929554217095750107050710042604011167525573481613270669418256879133012089004625116507111824648025037201152532752790766179746571833430369176527358121970114232090317438357930987888358271795087805797459916924289111133269395610483143120372833234923644452935821186758085995628650830376582460803800527992039225586038797284960808361517991817912692212970262486926653125188963477136862636972505468269111373322155881693893217343917210611585281637740765144198932662889028598214494956925414386180091444723667402851693953141660926460233547014678214041336944907175018836253431196811624037511685308443364447817780218303668222187802311591896115705127612698963105227889994666984085850249799719301383807116101513649971097252811461428500495418048335264622212938699677417619317900870306908021057342773456312757842782272829427291666237586854569714277359555377812012671519438840826962989722695791909234153644395440793255031801344321976369675530094830708949341848560933428928003971139218808819418764814880610430803112339115066341674222315925148110941401074133955434411322628770519937439440206004185354306430053875195748556376679841161049356334930777659459403974298303622186475492377211134623442950373110426038975778956067496740271802116240360501164309048951478562146912956629791559474908449674880846666164838638652739742505039226153523809387335876534803572721946175394897601675289422658180545025362957591782462264567337838058006417996192398807848879190940645903713515178832535744543002486382639715928146725790776005599505187503842921731088311863426818090159590320242210155687005239793645114667622178087595230304129706599164912595687367135802127596830335949835026578483145262130699853123386640727262416458233892370316363850409509209831004780060147649178209436456352054933737430402368394625952746076128617396580409189653700646808759294509666922414142859325867715503095253088465656857973908771903166374416218342892490861300969094699423962797123249026878146603082185548200777911610540180245873546783883283637275751419378715147056895258304030086168412913516915419789150666120630863365244768272111973331067933900100734382301319518643173855442224621116832113050749242665474345398256994351475222917455696799617685226962294646356919627758028222490799940258165465595147636057144155050842134031775032960224971409472465094126916515234190519154373225095907748090026845105783660670350983572959989588663189169013872197217125233539452284990478074020519591871648528992009402922750007874083024012223086081264765571978349632320035452885083642068799803236181192330162271700624790081728855990483178119038349374479217396829283035651943002355243074507707659111285921380837217481368623056909097723649564972440183740653785692254874835871844454682108958534281159073832785916414036597496619125918079752137139568443566496667007087776163016737974734853579434637175189599180969085856013766877077645645023050229326475040595310184684758200742789474442207783231897017599941822043249748783927750300554024857966790717561654444814319124411267923199231389346310982432712748682305823771734408177397438129402024932244878287108119790858477365798488286289924158877720881354372314859031692009686968917789809213777700188372020847774467266082560764568013760949444008618196375692903628823330669468151923432073134740143952725818353547276943810089411161227124307708847058614195493349702523974140850704633435433074482166790799714848289910796597960703623152156231947612403319583113427535376500574553806546996267182189829902704036160103769830815436339401007826925957734876376924999746513064270330822132709468002064060988746514258224090958789843097674696731469377286893173441439970847929710279555440332496479190924419116666817258799768784064143829000587772995223609311817571154955198652588009021351986973041007307363899281316651419088447366646396245030242148678261009791477228959944278416230692539310602657388745137212636937457707498913332248430637959628937429092355544746686806912771227113051921828720926331064254087095775191948363181821219526160891654792660560949963258322903850210040733410450043221570883328762813419546535969877546564107941964133432089030524226227621703703547251436543929703622081982009618081256002143384012123273784610791886448000967971386576696075928644301921614518933806996299359990626751907450714297247144859908969873596743494913911087032750186187773170029211652238542921419939205272767476680072166772183717356211670331214336909086757439687921765588045943122661190606162599717771816467162237966250462316886112805276297129640949204213310560540491756425658555534537672653237624975494768269110534521940409200529504542307858413257420872688534450483441583152964997811248118516493955409621172079189901085855632659956400962423064940441884622684169777745015484331452881355326307377159071682046759125343004719758396437357070872228385305619681921401566812751893913602739644537080942876708820966227343522364521534563125873383092501408975629971382043344715673794616697932040950607100630162528656903161054269700346620149698248478992273584809322896829810116148091688027506760380060108293364692032784477500786184140273810098428564037340663367806831780197870891857530780656124286866957786641787883511029705741552836191379404598837322520452919681718572207378031204490466442965336166245521595440911183034850050241220425628198574806088376625393481549106236934131272534572513741266560185082222829350560887960790820019641060331160130199818175960939531447510302983450315405294875499046279816472990285448584191403619664695752583275930906220266770640921563324796209639054535843200396253994347360206459753763018913021980452342048027247103884399993267468547631764691438327693574062028182768593415110605205421484206707242972343406760283423613244301737364597945079681969267187768006397435770496240967850516838164214238147051665093955359249573629571041240325013423619573388574432297200501167843133337495390418032461699154111702114212606788729355634238313986070012685867647964000083314169456339218763211087874034201046787121278584530681426994857064007701094405608192592378532923026551399419197009251554593614566492300806238334782612706931313727487116622648213594370112284914751804180250693818660687366329352714910204278200601219944600028569200637596523756982153776360625064703714157345479510202246663364877479799399436637459179820302466178110375666938733397967292840860708263465765604196761219190770326933817138572026414650529684898445838152235557651351296802163657867296278873729965128631896616314928827577606913627096354275759704813036573782033377727024860699810783467241931056813991314854794513364119842534609423173030787490755902326876375238983973806707694697358563973153055792342417923533927259793465755898379893754642693606599714714708930993666290189888147323144663631938746374325386664067458793826912604866071346453426586820535761259843906127434014999764580523927011280571248260574049341373408860593473254632032670414621702927193801531773941631592533759514292402306631944020016252196081184698012004430655482979737484956825270620438120815268448083884810593290394898338750282416224771705879441842219044201316904011495633246227463806352976941494386650489588706421912594141943215324016547701789927984287116904827791699526873874140065344770144336272711053839230715871717251361052122218512996263130883956648448879270395934148591139032793484250187764064426225394509245599026050281332880109176071004546611558425133728723809421091853169599138770217169179587590041809728672455063895741027669289824056713176859367809883277551905272558191866127901630722934617621473660790673183359716742634212282656411086088506735342885983210726346217659803900979163002537175083037882306060040326574296434211215524329850632669581269363592278051200654428991757040314741572954013054792960880909858402241565735986578080033490301831722787666385754800506879314098272457268029869651216542416879502361407644482377724612311995297920795748364765693772546868087279826138455478128618406456429007000433555666069945567247790946813146283629605867237261300010804631137932348720094396484992585936631984751310622459653700555461594091293548797056819122132366214733320713020325637789752913572760002384721074304245355413875165752646220690038612549198922706876446513339365500351312284077336201594461279974814203642700977590455097685001579083756126410357265639702054802552063586854526170173076622385075231282058625249033831954335333072692439404099263261395988803193786046559581953227226010315862107872559669344631215876836315759469809265348843620225471756536427244061230126770707411829441415032287126282694970758874520934940176199146973972557227896502397756696093447011924488136075876396753462025087157368748751584479222479654220184287482282420039863569524484801186030041454079492783153940990653932504368471801130920539637292253293928845149292814686627785718068395621651549195873737615782179398660373385998174852044245671659642910458358375725956265910601268843553535286580201651124380781820775268374270366258521968355333480502968422334576747786465010451025499941530809000188665791091455733432089924907142961369770002195567418971090911664813012247053227583131761559491359791000394132400686173077494405854436285113255292921985128770864824518923008623927107233132212535809214267593147988936016032211640325852376186136726531695234429772063593106665525581204422119207654894554156844141405855113956837289066353683269552082325499861683534882580176580166214901967335359984840645882074930614806442867916549724979061696341689422162369809961509165134429803226152750521097387170396340741213441294037584200733525332378211564120981475300096692524682341371521352885338568034001405467671901261069688568350029698624375255349112864843728500887031619451613549571308366464608022571913831862702608416368760587108241257927180688182697861975729497768963476243700230888358757129899229039130607728584828496680338074814768935666828009339722029185389936308022456381851944599469495123354554065138509275832045614865316945589089090538756273925573947279796497891182121410949340119487287763255720594099096742441967752544812355338863245158332313633745373607863799775196655796278026421210980623119415405063463655214559706371134516223554747693157601496820585430775143508254118446248142180629603695123626480308806037070484018594532547372086868223368802288360104889544432282364898879950013320010610831088715384209421841819951565069361668550036903119868620342120992132699349005844086482029666719154030389158201093366534946229424131750262717672161755379594849915819281652179767219105691209641218020479524716246815254035808829518457558803106929068822923159892827313759680501941594695940617099434173591698526470673950221476006296126366018986109608079479701255221182791015790013200144093068871494323778681506058784039908392103269927206665450313498742579179744141963307864632203645434293274497304168655045112197791967186213282944136675776565301619326757300313532323477379469745971743613922910169335414312255528378766787002617589606621079606870096051680723121069955406684933355686425249340323044441090841419414903168506285062904452622640759792011733845832315877331348005696118098038704027134347693022467938836401981834205766455657821421017666468154455995921390024970044971841776070689231326181182109843932880887779754095649168318863078337221978913750100794979654816855726168946492562185996946461332253760988868680006789299387416789707872034403208656233276449265557982811934952113505667352078955286203790620141981382329995520420235342563244356366812349321164454772050036270128151422673582263079521420318915839572483153159254643430605684965044625701384379083617363148890692970963779290629404191922477847330250315492761253647633271694103843870497370093511520627433401377868856438240922252582216578804971689643090346075559032850399949475410593361433402707844062032186746995439916779283422000401955319458957323426722562053954723713922680825973119602843468530710413594249980594348511932421779930389380445261238146257119953815501001640346126165341692421270674382072812270454380090372468132727387609691450900372852249626346899750500490239674920577054963360889947958076133615548935522051574035654697607515870645707187480492541452646767247740199002530027732625058310048410098489928428158212152384126438868180969476992774168540454313963142846246973459271713040542130072535268815620766348604569465283112791294118371163078659540057576536492991815462796704264890247511279780291472945466373120563047202920224387166513007471805169857167982220144529472069171382889563208679226785281979193958115342674906336866375248351975831712839051205147821126650350738908883638781371658648166135946485936343640024345463439393185542656441171184670035499453976870817040576008988528890623214092710644873067632578239665645237246950572452716673329999804629932413498355527511936405106601007490851367683905807036199862097723924117884232500042484740065492113664874187704826743669697851748868318401442900370866995331780358097728471593030862835520550523969313995789748169836411737351331080073374372041114309562970341419498333848086436102866042556373813998913836307213997043621844150705820355186772609540221115032964587864951150878885025687826618851956008645301863078798539639336403772201672435012875675851408934103506702972895844244454562960211873953804680916727973360081017466570643160383094281554098809373417802148485761583707433735630643473120736748578855164744746310423284990064973705071174607666773954729223709191826864061372400639458387629841377110666578007597217659524593284113496221628286641458783511985572465747121345742118643405501051188524811011584444525153304499283171528386239876458165342123856874446103165113970878401297733206722911636635157076320900322433013492642243778229722838906625810033480423435170543647690656721504205944298689334688908730851548771453114581246686255765727126271065192316644112810347438236485341183014486675086147112657008455892338291532275081647002176139356631924816945639922477168492336191718516848196123088277562608756198896201238500967023201683668057686483565802404647577852859299559659567158470959598904123770930627655023938343054594912644967879127982153177907083230769518634425138086541771748636480579259353660840523133759570631770319390841561664545197513006300993020222068667597210093090884413434936929613683043874513457708847722127446075738426283502991899978997406730016790957233172895100836059074636925530825248953334329523256158866961442321938942275742732599925586577134982860432043566403288079478580146553743651154496720655007501064246248471501598502004115855067986432544754407703822710991530752634565783475458233462391996244580666205713162652235300358303381000257204141978289563950854486458869217150032808216657676414603435750347384270715119000363859952029624470112569740386035708025129600510595902931072749431158580094840096231487893319814030941323340048128858786664351570694245632827168212288491619527294384990531404733565091459708269804757582224480085778853143074391331898664981737931001999639780657886262716154305840292722391644211188415116558542932669732739245415494638112801630324643546841497564691854529803864931546950855520107865089914099279056005461662837465987574942156378712455163900746878452615644809235995801132821726540679607749453751881155372525020023833387038181903349983286442802582112999618096432748198497243964549897739635641935481596950168444690667066817635011606827321758029584189249277975157383042545454740830619993273909341581960302918567795909153164839948731276292025339493749326585800968113706521863782111020273182833666052855210372309368151054842912576465055433930288978233911462815384076541970637628475789437348279814971264071013546444316952457085802963976437797430698666533373287825173723910622430691674503406685240603328417044982763767256417775020880905301390901681292128745428670964586753491817447638698414817894128132713972608610522147322469292638062857467341912867259754880241301171508266387672448888010755478263241127265054730275105557134318640349704200623024724917329584396528447562919030444501206592669919397380758204655969719879013460069376358475690588553459857830521765665412500094685302967345584667328996185466760799273460171330292984570076091594546604769061758143849639846735855500844374736920614379257341223317925063615555296789772734920282982795665811970466410871922470676059507058742134045306240857195773876544170452872589735966558931589271607457652427221792017012571401048034698936934120814879269408551404492962565954293707525622261701469375323066719434714057274002602480812972058518969239457460186938722973745288340545141174997346494551684971809691709681106078268325476372730889466806916470530898466015135965926427881574872631897992022373571645220855782344844300528222018431937055554186822228000384457287162315474936539100397668478005001734296988652590315328699586122766484433952862106902179407813142072057488160975705527756169091536178314713228869166656047948821786081962228610807352652304695357754968149621472068757389621817067675317665433844184329365095261369073715762098644395008316684017541484576306196419143246351014671058379141896376215822043737112708782345464118256862875421472981449749846313623086855227567858663047241939195390576645354847596975667271578385572834087113111345440172665111544169916525006658035355722689179859330047621079062620476701219223483534973021996593067060179711399652529290219671861051360116476113493751271295060322136534354953150943808564148447216685866955618975973522398665821759072035891685782272455133882538499201678523193666672930822831238154941249871809119499258234461967596180770415608641530208165682547069229570674779659988996941905062999243026001824269421906716231196708550682844582989338111267402054404932000995135451996561119611769896020543478941108718417147805685301840587657351938475088128287221072995859572893317040636649149566593897864983107025214565895924340386637098513347167796347072593990079026388953481662742068503579863664305042682024201659179502193217967387740836176999494777748813480230492276428783341536042653226400929017520164403010686684440795015729629545736920052825718097550059690810866885741129899977310506553014414539988304491637653054298636315757654823641022289099931967679380556554029785208266383461235152560640734154007859718953618301656573777754843689528008111210465880379847298080197431571624080961975137991137089173969283718543693762149623029825236051314375569384287931007970613122013954655460117304053293266248026522949836824793047564012449926327412376875509284509922228466524168746775502411973661671481190492778438028097629360704978420192456779461046544478908688165280342664516468175205823832434467021796906724096132712402241015624106319330143117084191898965897350319663097286631289866895743973283819297405368133625152095189605251912728574545539172020226030015564764034099262525340876290830394442240185759911005032699921289075921287998956436911342899545171081608911239307451877376560253005697835400944887661888694496565651648226392599153534841986305666433131376601570616780154383694329677820215052099413302973786545488832951535464425367167914609654524880985856534682891309369306229075683248253948842694108994334378183764443806115083480832971624035213712412084820093942376539086026237641948047922975180661545933529803851604621264163120824268707405308022048690388168841478715534606183403921500053666261208029744390743642769773971560531768864979541667150148385717401967470308664695471357449407542293859283857064386555212893997020793171455406247399140573589527615348415257661138206785340055407339023826257718528648129983033415213369002148714390356101365237597583487046365504891865858150302238135556210282599594844147859147084387155034111551994010195389465682669600239566620374073274151735784014462652862724408724439356605673290562218377021664348472411593806338199411400144839798885144169884653822158249584925601442203443343744921371132956813939559716654404669091970030404684104290986566431368970794910029359022071293979356233169056099932681143747567904907127078102924697016848791419588495008494207729595169561945434953319786457056288972767687446567012034466814312946780391260396254614281942926868287841824637777598212582654567691898681706668468987723440696954471322839290628860689857388669185156109415652266865621369647233262388766904586161715652975477571093557036223288601301217928455945634257113513549786863858172373334513419189172361167500354604953966270425106369748354868993013537765634578294190287192856717519265257271373740019802718620976027108440196808409097654126695717479242156120362610578140466950968319423215684929225305271473847390365038399481134045950635445284095900083578725666464409397002749408905396524628910224653784314252989554014980180712553561431615433260595843190706705109119241051277346642922934058523916844513618621026346717262655151030391589499468085777066651585683611677155554603908316298255370372399938646717495774176144582239437002239877619945810064809772920493357678013753489069341398543875223218598331969762940185075575715613520542377201758294920926108495655594211316771334765800528041884078742238193106543593347489413739598930014750604570513665408529444906608502176492077250779468726675798280654047716292604159317387895931160023703599715171490925941443147415612667442375027620055401561991708532401195541839947092785302065001237753152839825097776084705962625112679077709884451387369933491007845602863385899656989653297551792454487646578253454638788293556203731768746353229529721384127041377139942302493712208193340175871325917702576561730887952815207760741944835576055987369932031168632760889614072153335706069849776968157591880879037162773136597838844067276613904847339132074769098455543137228839705433840903856425527843950673273892240549362274177895063176085332283661295579693866862313693273592541448870184971408462023308947843931867039351918817213776362481075842490962787317646337776095885494848215475991948793786199395982416335347316133564354858701864024805483603410371964816685853232168995333804956477017359457568769541260638074896314786312608609778457000078443759154215720923755691722887704980981662954331176930065241201795495692506309870726112550187453553455394769664335574589078277046726043066664087409177266505910488759283892548001749777322259183534448771215426291292351596429953102484137429151171919150626930713430642954035328334009783682907669633105952350422107693102162547489804742739283668910111825974627167476289031487710956038300898940449774171783312190253547359459535764554739246400235409295898701760997614615116055671884626080929332075787680031779590964651687182465528627083115730067405930609759315485539469553375751413506733667636907495518457646951636216211133026015724076940407528594906894257623393378075098084828816671153042730961905151458679665905642258570348786760668187577036411747816468279727725708861780874677306657241881110912224073862701074376723889026122020246750290625768993490618803480872467317604823090664392799390523572226769713576492585809836629269846790314518886759816756970225619234031257504597735970843978785397683923662118825517125364766110295893610788227017206346928023397673306615016926165807031980465244495905472048319489955025039959518957844096197175442186028213429869592186594918224051524576076671219439475890591327206507051544809282508878307719901956395999492780344707835567847476260660486235689215009763234216255529674906136078019836075442481213707362869627256843020059644060791237988238249438906687342577178890383721321956955375167732289922342099736544677276700842924984228159223054959149752755076085124789273732471200101474169215872083951193626233018729147619788650298492761850436997827082746789928047578869105307019150639820590131030313849489053398570060534008217631934344629972143944774268659655411866176316020466156262667885112735056118974978223870858032917745164848358826341398145629648517601448315531116129996844830204495340814457445126970288947000288161037170036332423503446843170640316481157965613460248193025915576060184678373878943300538151643048239893221986652026846318049889943697390949596550964605068945368988057623451242834740063889919709643799124667620629588781426291906854330945721058588351643733476139095477825107889944736201719904530169917655221170454438565008698058976493836854479696806023899456438039200971893820560388173111962677828889618584706132785769750395731436441207913503107132591332711879108105128909220758180028691934959788768912691567438538255364136969830900513227860912151235465560353532068886999725617857971235846466677764411961382146535203983422402210254569814500652666821804195704523645745225277103313998624639651338332088803135265822217941841450748957988035121911589366743632600788936668711847580796144750354553148695832025060106683588382576913522878641913018892451175449524659708430805195528427172624274997043057982596057594065219282206169341048452115270612068061205795994302273504411750081158705095646185716369521456483946740887620148222281225210731117628514135954688393368036382331099961281702728221721320235180257194475164932499878368447655218853678104934808665440102903996647022946722041640839299315953803427642478765402447292202000245470132798041645427944783392065739303575344987885078794864338423583101737697673391736236998179802183503054079473091784521914006078570333788568868639045330721351648589296139113022801596325640763200186923365244438896872630323742436339096123292941135976968631013393830837224681147535140277950661508391238752537432355782381762537395441811918833518033391450727223619784630682740380230458778533116625302947806837294761560223080905479525660004707193470004265585818912232950621829133538918015523816382754623872099241063254218985377936487527576947845183300932116332985923601120799226192511079162726504832176674689647086865705156600880733745010155230281589134391936697228905505685900795054249066545250481103537955743552078105316121681125829726217462646578219247881673872098438038859445132813857004880245321985654551554101519593295544713926025939941072760329382352902107743842256764933522948045029008990753085581640061252178223875257566266590366775872334704712275642796712318694888601570325809815754993620399809027637381851821005441524011298145079660937877848764531073069636934234973186137399562330493921656699476791816153104541012060033285341686517784762950026978847493658124271728070858700845239408172462957915404657814018369312096469209718178989682757479792674172339869252216830786668624804012026196824747358080171029361744686541830596988127527295006689971034234403861433946709870372940850456902574498912883206298775084372019986450214495194552362288472565325957088145062327486254742759853524077151928324491344271836571371902088937456255703806847105172860606858951004939083865224976238557530936798200564677238725024568162688773959776224545687636655391738316100101100007881605243857228414597843107236882768415334104685149406721861415004505812970969805185065858197602268762908994974876216429631919541831450182667834047028059752349022008128021238633134687286646530979056909239373175738791188369732398826312598273011611660882000116160448584644244252651083715637757246171350469820714004659919221147201221628943599315661877982383192719087235732397402996644424434653074188753500568874984267555331584866764586480941476602557229927615500560405426809629431159595498810860956609993025812645510178676931919956573762111287132791885033560420169229576031770255167151184937331600193787126699508694321952635926828647904737753715418792974539060152664985370183891083029721764065912716609624965675175127321736168564003075270306787976333864586155723244253805777673086732273304890040080558999508386460621191980602971539487344337472585993955779749393478327628048937730735162090924977888433407173940234147134782251323478411984296977461300120143206327867226189675783368622335620642142087180682917217230871450511036081565618914609888871747846513267186647626873987087786892910692639837213946893547955479902751284369557498112670288394580678374583243466751331176121114445398878971593827729520718930819960146075375419752607606778906787954720268356794674748006044524264518359923932451070119859399555627463114951522778978903710077310702536547050441192307988925923700109001519606025900909120710282380916276701341738809000643346333626933523510072857919406424932789588393431936912820808670286918008973669502295587168865155641447708588170889125762050726002631804329035699078957433699250016579760494998710913350173445932012714086963621724813216740588746794632399532466370964982146106218026715656727471452390897198953137020885229439906003753336105299159954326438515752343103955625154212210421162454743999491165156087310728479771666175619599874577163132263471103522400903608879661467300817399808811163111411859074661178309117131163602866301963379678810592999284977713388270207915124234010513465005858691193727701120551219281877736013440400785421458765725118919629377532176584294549107727886847252647937751998379381872857476167698957868893417015296323893916493078820341984120537326964359593585588761259341613306228368704931365811899919261223455119488972453202837964466404779301935847427342488834305418359374355115022634943236443414819253846594578119326255837071113518888023070237374309115405610035757564542099682713372719062895957864154245586057439539175669434259358075943349614600201998466087343157434767343286862326657224776559931140541778017980638981007464539107655170432976138907505546974944124118106825518730462763524069861111088694271273654652650515551099501943213641577709864110669363618144051285968997422877614781614359359705160339505941171737962464341014372268337577136048833352839167633057719968577911393714547642082244993052654620560387593864613514950420921111218650451106136375613766346765500570198085666748353336104181405092165795411685537728987024666561278659983894294173300350004062652715056460743223261309543875308684587525508650240960383452688765988448933212648244118247306338160130622524751228185104332273489027416075455704205081761971118073386741086502837127365174210885691979722785896958824450227145931514738586100843914608709170872698109262409014474357112658069011478723771499040539904212447883342534162486072060941753832928443436443371405738454797281534136853801903244900339890731131265633961804844086817269742020520884519243697324165597764898193125813711933714265891625603356698853138256109275215892816036397287149313090480960681163448176417911718613457827586565356670608591517127591342502032471529602239356403076073906264256320138656873251887436279254785400713064746301387755116154531662457007442413057057019450043344408493907113298471296337815340883054304682816096102200929947466901581366630121439080036575566084653673464024868163302952759554244360172825015169581018882632331138484412259591873149559675286986630934952393395587381646476899138233705737493031349524044091600629903901835813941928642679177702533841084847379801711570063841168064063285494321677235949965403228758291956272980127367911880430279324530111105025146470680579364614171894091513390976180643478003009133045896964956779428752004246824755628415435232074450458632878931659766171049237994802630796702128214494699235775211945355274467241982617322496079983696495957024341342281875809905480693465963690091721504451376451296881026118878987522817531871110547728737360217823284121602305837658000581358980481988798303758961634213438700898427164137338788113478042130429434990832688609121998046213563008105404075803072191001980770027260386063946337388533041661533720772757119923109203834025232981233817441586728666893882012339600972555479966230609907352535600423629403030063138131970755915718238357085007062538897771310384196996148494503830343737304977629377563164297288459532103967837533498375853627785565869684660517274098834666567497843567190418022792962847738616468322821028960655046096417229642517089619722930337234623270747767015854092381509307734781746375204290420606509296943117482481468108234823246384226743118787136916322746054714114411840532473750015334309687373338921540270806629010627348914985707126495576460071069120466469060182853436119951695531603340287567736490667770296486891347504333186621280267217968904080970782867416155661305204731192165565052983645683084926897249076512190438294437195266564272883276263022364694628729350032831548311403285520504929634167869834037537400288958980932325362896124893712631690635094918381986754673988371722397287160162868795970462544814459367794491643259797682536683288873362400249418461016794797631534067902908506142523531178983586896948498244136891088347742708979211195032201604183228285328276908561385763456429773674523376117643456288110232969010982396067359936280444563519955474247730998267930838096156597668362866737622315504882336282105189116866085054421196927803822237743698054791843029485569778411923036585782650580235447857214314196103744307484003209349638714187950863377915167462372733513683815012772435858597006761497013392197875487144850394639883518055676122073912674305293322628442565920690144362233533085052962177132314294740089843275945691411461787585766481378017135401214840276419978968719510432056666135099669795980590395362945159940708471651075517786880539797342353212123717397625807049274628390763488532750072296288966244140151081590666847862253537654319331250608977699764245592084869575943481543632561815993183861181713366691886797398281071298229216928490045952869136265166451803696073430860833386109425492718465961441090681475889194906390190391923136918213519235452480224066649885177354648809008438619533928790894050434707821460289989283528004105235293734087788082925060194797846023191815054986554318058181758495021374831720683774193277894516136813417286955993562151641075833636124870891926235114222086346019165072112840374070189514158262839647631587549768546049644951374731867326665858269764175596612940305658595339145385976098776962232742082945753785838444013875047565667543224915618340448821192079756605407935188335750403452381237560932937311251538018532083476367231211137770670065975189222452296240298648218630248539643918328591045280024809524894303772103658104188293921315387390201609258810228764437342604391299492142908116384875204066935359891724091895357185329013495916941652792219777972243099199053135961318203186418976496852059074130131937411042137956235265427592466160492337323972463209917114918492903393184488859699014930039317621205206383243122372114925541513109807178375404882336721028376695623825227162866942877165435274259014198170077960953910752920213062452504931564832048060073577024068956647662542537487295550199906991267433101424267504788419700074903534396029365425877203850503704688759836976261703207858406204835422831354642899444498034609955519882229997350063409921987353812110879865575603858637861513258732379635561913982652193375119357740036669059372439622357456286790063359276422066036523617955855099515609730384256255621931812890740467224651065671235303698144860308592126080281078310931911121978919039286563806741373975896113679055895905945686436257624329707712917265239560303332177869729734472648409574525439506985581612607783181507361418274363152906527881247709337205599008701026540659539036148641147408286987215190741470435756007353846251079249875751947329675666477015708562244404615176405137279093554235764858370767107455705958089595753310334668084270564116090687242499611276689698693041350237642373250741352947830231297812788060610737578978298059318892591506483278734278685552493274290432064693203126863054681681114114613844635849089630048953311860771183907695851743307450360645034197542947198579272630540781984011387995816113041425124323252301518472992709215162155186392277175849204099565970501476066519146975488028382933787295883661691381462657193962254363848954642766790273961327726827797127687845354788962269782991978407934798495157288948058074385501096839530253704035170214237292333722520037322701928144210656126223941925676891223187538603948655194684972530954693537806845292129651351576521478329096035375825326813559826617689399133648189076171778011104106754037308905437503616915499307194680498204669485375468023237377793226696926531642485389008020687757851904711310649979784976634375703626600842427545315738036655987671640071059909380749130199845298857653994391835724233228958000595550989662082281808934018760666805845821037496944918327123088370691267668720961808548802938614335270992547408746760247921322083210984220618513513015735238769556188639730142044189960078000636940825604732681504931963918659703013000735907994023721064065697339862698958537289811560962661781581398137735741076590256298511556320501498703574646229565071203873950731485718520203062024111592459049340962072073487286502796318526334592792421158360484088510193235266240734096533572860218440207356098082180475250686781836259595998958464089116869139178060111652858247875783026963639257143367225889774293127708877023497770449873787728661096990273041793513335104001763579636817769083208901348565037514091777558523302223547271474528455589602698697763588706060287131550739951676311196512273159691945040534359299814358423096954583303586487866260251814150548486355059807044136622269408146410743226305162681902445604634485126881399312888994590850594534170806669301357627280019464766216640258403706639540057797661711671329086371373686040829160750407887832095101665819326953812433199566780744511198912364076466473945037388413542815557665480601513652546767499996311632925928865274789162317053068839860585549640056902012173577577536685226803718292303327106974404931927234954029527974162908699217016447281281450721917372578903680681412522173533606238260830620993858207502451609013072930877552237858999239030062588809734612259258434437720548360714284739425923021294286593776825369922695227169649298072962680730986208333534857436853919766435994434433392035187062031584796741582271385266592757606664534267606361933514382142130502500627261579901541734463246083098242741407080226037853268709275452786384465609226924075820518873665720542007237301799506727275809182888351707218253120113333277313996824961122732488512471372056018821213169095119414114711487047349808281671095014778946932062746974891258139624209887737618006805677376043377505344370039517253118361523718942532723049622099626859498412280213407657682299836490326629518239515327196740820339408668167598719902847411629431128960123201429558188975552332641434943219765896764861211915084700902513184362496699282201508777907719184935579463110983361766668482424558791169380041791491606489784310053294317732405143671951351375573184967486560135313220787035286083362039910533437091710963108170228072140372349222717699074089190726635683445095884240945563272669483909306483993733505649719185456999932963423421692166049652179685869019984707256119330023784096399530387204944886198402115393062476524550132586520003009742898695360797672969023853943200429328183006318215891102685355632261468560398515550040997371094699422655560143099989147655752426478187819880207880410149830208741167125723770311565102883220638006820864544732610408416953824027015131053377498187502060456629108552670818041563745600002716073172447209198497773655733477686871295879551202580083568122684516316876770481426815482997537928951443638995879362445168362339216035795961009054131257625142368808379380781737316205526314006042649832126991967909924069520974121299694559253643284233807808293527950405705255978051459344877462653691524316636263212881159361248789907923887322093786098694518990277094750873732107448613151705260531753873925791905659697653302298415250009291616092673453868933984241840159647206455347887739964544558367277881082411926883094359526925851642832392119397753271779194215339181236451016096892532904600418621955593960775089786638174348744990270018672992306541562245945229643944209934287598846564568268466588491319117842949130120570578833215517575538678154955458492677433560672144392343946565423248977497179102105091656571778639438529570392510851574850117611739630396687117656066806031830005425193836381100419918870719570152910473173865198217379601379921829066494737495700065397504736356269059434256227145725746082142615425942405227197539253423237211491826356875803781581983621966795145611732668422165981434690759388497839270522921384965519155377614058377238947761311587338058741871090175248655124642430374882624317397433705035828007687658617904871330090153224140852446088981310253365602675096101867756511823783077091741612958908632719498676729150045053056690006774191878471761120350041238264311750556550930114897952099468662104089490984016689048473052439637537020492002076265122694457400027710672026393978878587840799111677675148759501499392485572557662323705067706902003769052038176987347724951384268257852377375264061317430411441173440341747824950519137174042738178818743988734319748569725091080448464550290271054663766529841952647742170431691775491937847541618616695107221046199661296197289155668832171794526374063375803424874653679750592855582473309255452678935686043947794862223799916494911870757109676414659713441553179988510820654100440334884193366273453186587577260427485862434834240105309328942514050738342095647134748479471314902570203006619268521613617226439445812564429524709922957919397524863212890721464632067824150846772910291462484452985576062054694522436681854482386205157563255286242332561304267997842483525343796126870877263698153357810692238142468640669355618596661500415403855947020488063682511589501511139775244341100981527182175522864806715970386217244813173594000720166112202550723306239433371179193626644951402096827760622820432550831777971670567174785101151334564205121616759765036903394635796002433373125777507046163807632510007447812459053779801406971952361229315058757294406001606175958491308177926839672951509297783491797206074030625667340865350880161039695446323999498056774579971075303879362899251439035016847500298027982329484545735183892973029944241058676271444983588535414374589977424426682572396227473423247250537133346717652370724795550249433097011612079868415033217316140048476153620141809895713273608566314359558042071558664650663706469651993590911103922766564245876020836220976857606590192769724346334801513523498026264913427413387872506820292561440181786282813843675645155760557378432682411637970637325048521669269831860373965916180612998208294582250209214726457332182711223062136819354760357224874023690266209909736029549516208094586590898406093813522868784501233865014604016364437434082963317979644442567847025239046150010889886277069736744445817491529854659759267116333806378125541024351870817612741718085109185964479594966618201819618233825722223376185050692350115113770074639291603095839703013222274676134406264298597413833818032752048766784029010802507586825857855450732119925365731268477425271281201491808062109897461841350430932577453395280598306333234731675143382474449290238913087556255616103340861915585091629997106869753926023852090828861305239833964755066218161050372743464139644921271400816115101908201373963366748609810017703373392042098991509570953383059060721040109225935875185691990834785042649103788283078775619461423807968644655751982573149682852857547787827211239646510625004895441547430372146313671241225157775263224644873122741725469784037358299549498911681562077534094572357975824079605623314013533697408833573068599368139039008622100190923633316268630519450340812045842526707735865389281137475395556523507248834357058190267394885538383906367830209066658130358577155575265259072472039058852999376136666314568506709083412321466805657023423259760628823506302681534374888609723978331155503195301208791474109998510363624049786753777919280893703631212346984757569918496093153590129839874594125970690214729040745280249552746311161475781143583861998093503022575838599146547889803064388746575070008616569391294562472418920059154986024925320056569518969693515647515685267544706430037994684803528914138898525323603161053440491524515300084059906589446517805275571493689541303590958400568978021536404086768217365504621415429787926177126695980656130389306882053962994710125508337758349975102076258543890135265543354799185174176356742248430064417768247843507349000489259840030425424424705195615112272416253196092740010498198129226248636731382620721829726458026932678625419063121811270355987836100894705435187345940116346608847569208646072039896797467709166672312425106241670635135928833981076059780397138758281620343478881305021373423265532671816787978305535282348101031863646856713922744879321653207682924501078226654971799897738143926137938475169585818321324955212132273091752463663802128864953421764351703196319159558731014875062819573578627210728245373931519410091294866011724727551626531328275173527362806477102504949953209652990132682135393908449675386958559734824845485815646304730142576742909601214912932501637290484685546983829114435278708203863015350791356258755321183341592547032369347913288496142632472702505839622549240593158550579451430881894108653820946795676018145160898773411082235779123624197701882879843616137382554210705510679520985755156280854488825189360013802518368920255843797683417466324802500352111123957440337869083046754535307091986476873935776800997277094623617000024178705340607733979859838925270668836128595337827376062105562253887043603450840990600076040285615719628585720704998666136471888825987828862533277878570959023300099444380723562194549728918131333528411706698352218407613076854291424135872231297484093829977166784256098153728103443495909328162432219948398962579676222329581053146716343202057193346634763731031172622643592813330687749209365551315176195875525339352308397617977860658324254680043819415682864228200975016089165157260237850174039174287070868300127723377853937007241828552327528480651194880897995558863084654461081889179221072566398889976266315159666480621025795820227333465126756306207282450885887416423074024351949208015963712759609288714024404821014651822765244427495202909935907901893241881577212736235038396200126235369639730190098411674481387196954356034747818990891592556069089236163846765547869557679372332470922030278633770013021718568560842339592690800853268031346817084654202262433509791372765117869137207863936606175475260027366613591802138098277844014798610733560473507870964848127816021957821553043023935720191680364409630062454986649831555281432135723323611162346043903175507093050523698339770076193154916753832267759857020611646872738598853422177345929010436194557197053633344115570007025481494054044685879990610770382357194295157878838262536096888896299074049252757783483672509570024628250822372554214106048298968118217757227753769340456434369697908895112494101326517308728801068711827273759536860324188479121813273230712314018349245634498733213526093337488042515838777366990838173552728840434253538953282908130412143680590997523252255744310859541819481911542811760669725563572168095929017416214213352777570326270471122685769292186531866162574601510299181320273750680450852275727540685007643225137914053744975872474721840078490817391628306189248393358511445867312109976605435906997315976590402364673205686533466875734034444569691541868992372613756776916221437578411309515508179824404249954088033258036268230796917670303447792814799494868750366554669081489955455722966037026728784775141883409416860120826491754118232450962662838784018481067248046243541514607980209156384214099509955212358156403830256278131005558105302298121986660466507550759718650427469970297447778296933160132517469575028023366237722148386334245818023462625417081161447276842747167914137003852966461061326960043873951133751138963683558376210274684045051621250053490333247349172621872976112937008554228500202016759584441476043347295423386739475985744589157326048165066632250860968413865597100563215491692960256324065455885788626811501729284662417676675133211600658180998095287761737824460086978044312308856107123554786119378306566076773393837112208059873273251993363506337746390425546029995368612552455422335712420633743393449527633149701653280633293622763564764493766990999457955768126107071336490769924578833511355754178326802369758132412219004147457578655499675016148735945288758584361366423683717640999162166721110614415244105538773259422640403149663278832662197025482891221261155013108004875597241654551099496459502318395154482160529229986452741260069292853036183515316262872126858514130959600270536539779875384019428558433958967269055428988657798400748645077306054636500966364410128115901725925795275935967719618973641703748915905202482363284942958972558625266957369819486155582417745622592863246468406281620630821113840594298258547464406635328297721258962075310643806001219194432242258789794176319299563772550643106152627491475072774707859701329970725191787118541797400856819265769726365145804619022581187547661700780320098739305525252724363887428525997855109675167545000742105273119123060186119615972626004625495188816783822049945538249849038143100311484363545155471228070050240174813011190591980090186974305509132686022381544925075513939848207738268942579789646113607817005363724044477967426765609769502357709892314189034178058469271719308923811437156045841173811699632160907130118258332978033043393213014106526268999653829761096947010573217918699427063679371983217805842384869826760079210354142243059691704470596721086051788614341160560196460824202929091292753230450970372193987415087143415234536470330120544382758597834039812421854088368080978596855358299616001462854852424543130236339797703404789037153638288849312778324132481989420631466956888607097626475074636001763609555847068862312977008366743136392783069684535658441350570062823453737566621998087612549352364172325969165888712200313150621947103659039338236151841954774259101064190786502565433872872197237194449944592513711882751703749182279386135895682091200183518926025261466985319008073769008795879440916393325267915628981642262633351224009403561526363338811542214216174246134307756108171769712604713573268967111471404828711685328697496236336761437278083564974703978775419817331373511901759644554424119233719113567005011310507419799027072588629768578321877876123758392560089501847324916099820397948882735582503401079005065334309978246543393722637037784882141852528982624417422369048707082431109623113917418206660896150733489100107850392453687669330764249105855807584249649737974679036754650865674242816475851288495334641762811859349369767896493981098155587798433694175114001342828630648507196649422456872539212603038760678297654390569091220207854790582487427356082960086817345560709493865246981325845064287654765590426484971844515594829776453708062262843937020054475500441009896466527215018051000471857893294102359497813021478563300142877734285636006230416710426592517891187608982719202617702451476007139601773973340362096227002132313787059037453048710051735606705021795668241052807108592529230171604906417240130681765909905520511313234488456390338306067713539855577378739906385100707842054407708459443340995966924887117582752280331551835031014132555834304516890832201310168457989235678588774860512145725999111717118296327014720262976759570368650137595683849078708064451107107533241700566522901448644328687630603931926441873981216293145075723427524813917579057855667489211738557237309500233734156413533057106942248205578500531930131079626856617123133524253575654178517786843503387454325460165753252131915323049955961744065556331310852625959577192499084820421924810286944348085957696434229536431509361287209018240825117221264391042411727180963684530236034446426976662995731930950079749812430237435389675635831687488484485750961809788911231420404768028389308851092530216834923060399629115219446005496459656541636088155111041226235958017727965061725312211912624369671642123489847803953870623491551443044894348871184716006890119248339418114401290133480190634711196959507904109766560145521098453709145004853995402652021668059927093528060726507910873568957294180733845296089682298923883551224158832101586341989545212234556518506159129972801460997936191017511865827495503835162294344041538097811161763536276272888298045250238120160631512013996515673616807674535511840756416218124178354716385324383176927074219498451638578326295713416033545876289583682850263559123346199063298171525976670474122616998367984768237859052387728683728759466291457568686768013327137496364879027371124910039157003984891663696707698928131212798488724232865335142485034724088973883351580041568064903290611154612887144020852876137652800984231039103048636226591458990008329074426035788623086734566312362621901640664595684803584610673153546545787386275857522329015949909876730629860048250497493618918476028723416185000253744675863609213955493894927010932671237219957770483533114131442548994752897564889276182941497474202141049196376867836008175647503770207080573483727332987085916331431821654366673999604956325411028527872272514779289067966890382448904795095965189066789665111397819376630557918175343250868026880356299916620091196780161171075560525013290587861337249244815226422306080497422342825114241969643709669471037410174749022504937213304864023570536228620600372046077404370202314026590657387939520384860750800499194925573525621710078992559160149544774420701664979906935513478539683435030499321137115825506845746257160960634779479666773732507706750790107093177628431403709883252514247538526535109669971974496208440409729248093974150536870241592667774096675342198827479897194251999041024347976007879284104484694272187690749633796358241209482613942928675446566426045370863448314895875670442285139430107987998412015999325665157849645014841918120395300870346427570022380493724127792604770124761967533393747581566142541989544019930030282345118477641057427834283645745579172640356339353074421455155430338933624704809920145542008876210187185816639198197493031517116563289034804078135321336374095261644964305741253779559481602538048660152789342082560745489468539949039528244482371303031684297789408917479740630556657327614876105522826074515796923982722900447693585227038594721965403846925812440340408907168677675722578605234616218285839598655268305208018594275206815230278991737480777995589844385165105635974356082548591892942482768741920282527255340337115920806862707893084017154861300167607882151650657878301616937730623798552358623509850715802178485269696449667280451451308080033976973986192099922867666819419606731615261686754503347331700220622467200641582960755563242102180164780321887250925217243986880524859992147933131962572206488486649282267303583430416591308366746628307773154911666807967901809469051460584604697223101640295998887748831742971562073297408215801574005605689257127720831281204574805613471805108689148668999395249681288907044256952434200247701641352221843710119318591502179196220103411515230722301866180118403444118904984799347723739093801648061824389786119401659615657580115179328172024098955054230438121642996888774159006718189568784087901435575576948843486262229514946920874194854405207035060495727757688067378912391714645768823768095451242692635245173911093823554457231711192679374807219924901506528586502788180404463903467870166499028639000406156201164254376550214668068124420004226633903817373826463516882171899000093259145309651900630835754199614437349400417462367004511365880981702831113503818812170980537950496398425629823088293009156528924372446295087539433100206089828671652914045048836628459242516905539214138690599727260798746329052340951514815043246631456739739308241947179264445647011260762982755556308976060187161420689475517568006056444487042780391435296365136273885364724430066848508523626748902682169812327674511205522735523568391552975837201136348739839364767758009523497898894097040191825309703129441147305257095501931705221357877459551808375605643041608146008346536080841267356801908059758754924371191375544188428241774384287246269131515243472785876317098449421490751287179206145678725696515446635292733577516990260533422344667289634162275351482911612913504048760409095648114034394064072111440443977284355313504371969236910831733561983688712714726491693343853523388059389788402263396194228739627643244040659642731046630335951580863135798270617900852286502093189192680852918649779368767058746096662168078413073446570932605973685277923340456883617642135763680058414035450596364707569056074513288760272574514025268906603631867083221679229310550745951751289560916828691446194416031323381027176692819395613836067118324827049913818157182757327180362300247528104047693721961976679319489347734289673698055569885530108818808243416782553442073398723384512829081517153488387806908277445884220443713884167164111907482961182025497402921650225438728822758694198335942379837671954849948045160473290767454297567540688729758955968879019254271634061343494957605246231780697061959953612802527298476607984823005954038070678682297123210904192496582148510612988506628955945656374731625980670844436788675157911811981955083544095692255971419774737895330382541156729854091450068159327711210215815822351922604527903036910169703888530987841219374199729957926525457510362175419722901950913953136384914466968293309704880491263092802072677297350460893870755874758749798673697655341157432590206108292908005428636898757905517973598258169888848633990382390034656235016282971074470592882383437860269563408141658348983424860632013844804152335402415987193508356390146975163973421146233288283045749673057314850827541381855834263047717035081895777110216342401924005709974647804152893289507888319890926760246229520135313710955281031035309888602809171456140792925388687737280385218474794360023528073382458972247746732512293484277227848341559707692073102578744543562736430501053470588378039798285925415725904352661444542719429754186433990326585867735683360704122148615077756640166848428086223274154313108561967446242081190003204829421219036660706496746546293054923707938002081322058470162588828573591910169125108101271313410815811065543031816776211657603207489960175187939845096009238936320639049861835930459753201060955547382843379088749568047281203876318382732433304855575873529974757634962848627898625994337628170939673885557546809225451120113452382074710386946271749430456313498727986049209793712666260015510262411239736157629510355814314013530331390071644059870732591788516422626183839550954922467639517095021578176700730039545455461972433830772674942710924379850290235986815300911136894509894555355750287756225854080905363347281696765070194549087871638359932225941876852177816635529120011068979519414881575967503453947162078270486474192461442204812577119264548947830601173116817461941152588731958648863698010429739957434359766517078986958489201218243587462801439685447043578737202015568945538170985563751003447168208864254614605299862144579879187103184379281793081133289911177428150688598263156088455500420293019394617687256867230438797497121906994675497699303057134896870789848097807703976200543323259733709581762089370195572085792022670185070514557222614487264048649593258848448337790583566258471170056462003359330877848891747286039123310872803620721563363334972721692819362179514905954277571046151089297045247047448353143769907332026621328734727036111508669656266732571636352976228072053671201724731362854767988357801869417511533092880532653839561070291486238653354881180801127624015674491207135987001881157055164499378103063518350947033902159937277527290998638021710258285297836468490980989948978579545009798887120321533530624435975927094743089640584291094481890256322421693290471544053623952915480740830548929218614886622253292363081533913266263149038688609066056842644816281835644898166997621837737593038892195244405592506635551850346421779278460737641904833279951687928498734313054479052137521253500203374378269316910687970796743521126610045511954185562124510474600504422500007869973828163590742744778749016795121327487026217413493126938889446317589668392011539435342362910437644955352634503179604492400810647668846176403595300504523683459454214479833668330609296908995477219649178068543421448455899141522359696597229768917621585496127384073737194959398965782828495521438156611745695219704682810582888059056131354390272543634043837934558780123862504115032408427243208874608826712097613280189386032367124651398915982604643579928690888294110567393819968545683055485235402208891928654289904632247264431054452072432222622391415405577523389230634956049387822344260243706704237728533050033556487247100061633858162742531943626485926656810805415503792902305099198685106562662178531874411231565979256026360488298176762792300974726946390002889421040102226516217192993050275545462155854555777679566267245809212461984184769117092233618812564841060711431372097011321854499291753330965624347221742661461416980730972767562130413767096841739796983911254481093474584412776439583271499052403520533505197847772394290789545329666123939598542634703135997257161622187480896904025705570989494468259798806779266279200877349915243416812763258336480196658187575980253430695778468461350355095218405609955051445252463128235405023704600512816863635083235344343733498850558632846298411426125622149453576545927020456802970669487589000049282189838287081642150321074525900630708981904168684954982796269662246995070718467082803978666329377274728971201079972956989121997589754075316368284652518856870875836684174213017706262707007397131343667738388656215382693086572688375295620196149128016202739677967560486946866069111919965775772463740600667967881681735054155849495461136372564314847057493087667867023731452891283468962367569069822291549770331597448571239188760287822837917420836191647198929229556849735635923149690992793596236408920795141232853352186906065899945273858140369695479982094929977750435168633438349149086317605515625436623179255623434374404991060000336838106926890547053535558587148732980052119445814054509434271005142220343302653442394923607935645270600672177308039364570946353243046718123435276679980845197492288140720953338458320413026719434515610704836669909949173495378114461214900647964755575202364859534909275091373813802462132645342302701969355827924541529722152766037090522370422651066325487693013521738061212927037098429071356753889040368309373187427904076862778362508919433135369861073218690073926319952301769559046305218631261137614808872783090588875341081732813625340448932851423527430788761363370509450497260101832635639829562887015339842711979852977687291444884688252198996961531068656918952551152859836021674203253461569668043571382781297874447155177276165564537021107024199216688456725954166035594558785573839183960588359171180095078149066000802788333265117180051285873670022541293457079652983335012901483255220190131539977609107776907826988238576835569055905101761176475706887326169786070335905318637855444724279566612392208827081672386218767469057868723357888250879295925504535217007425508474851619260331981025592021100551613283293587331956255001555400665615670606664682106752261937431524180259191947673631130339388322346317919911114233949388398187859430845359480957212887189019413414136241474242398877448450844753849488271113268290963777540908014664479425384401489028593987418265149834222995260780126532416698532341609299653213642214720796893034970000613218426936055776999448890913506656069107433307243938025969739328243863670886536922042334483606976057587180199914319340217075544536333326877459535948406993636802791523971583787892016322724492132907334147902113922356570191705625672358820657840093872090209227980403728714918555925828049548996732625427176156972373817693299878533533219069246958671057887484919268563426670429156819236648692347853626883741038628524149640274020803634565576699488763257921498114272899064501066734826750070012754307908422928266344719729577527783847781999359304279302533889479945917530268148873937095735530844018094664943684017144399161281698140286371968664857981580546165118067031203286885679005663991626827665864178623416702390742914536310455269329343717278451979242531680938408652687432810647906383852798585568267544830097726638329028187889538829683544197608268944778626816288417190383404301172622200184825074646702425008934644182877189098238866920111797903965783110940049438419345320086721285521536863568975455542077957513015063608196328087773855643389219993112207276025310408382008538089184791944386216166565084625415357276269126114711325075936862059957931050873732960540438355700295915518677085223011631719191460578281118939981850758719339913923339998908549249425303995908951144015161256878989426252693347858840935848448062042076212784011344784163144147622522766234414655592340898772468536619507348490674449503277260490523078964810548002966870897909644921753324461954107698291513845422225787014370352498407401254543936205165019027055751407580503442250292845456035273393417400830383216968600699942356489030805415821454688623041277394262471300500499035263945425910589363577283617813728808793867802760120505737310246945712603981278072970557862662941584057294049434280369754681977393674740818108685382431417077915892553605478308086776046658843152025425871202384260969321478220192251864772420112399186544105350179134647349335453448077420864274761380700234445590271257762701556272713357874519435518090846066332754008023975027883543678968187317041535656141924628165250423628832660276505021231216419864341611242963755973576098563791134667992879135312060270737417201168517827232471953712055858348303589019613256083166584164728972413480319370637860633278488681302812884947251334150008820950966536064635851751969825388477611270709826138185513725416408110145581981976229771099874003113392583419412759183683628111391379290053145663521727790430755867864100795916647583642663856889432238215317616635982636811785513863983204079775153801514946184144288315078575957406547695491334299296392584407766176261276127520663976176808075298238576571379354177530231832228724752121301420722816874103833954425259239018717020793993135955785891061995289006098371528728736824105124310886470186832596030261334958797599177834035920430848236668822507063692323637358462637903657689087291003349828509538251433121263119398215930644112274098535570373613728015114392827143133299785457952569303706252309674532778646659688442395076251428485793213962349192704402323842049198699099363725061265357699456367887846711810576584438379392255895373009800636072095682942983811109209472294864442051618578005695844507699194891008231304563657772152922052033943316919895909168032768485120743826606389561284267474259662869852663514214318311307581854860025272018448275281832776965676100854860154950004765428936132518176485503337557774743552722378873362161653632818722032120144912051348132031030176791776769875601117009352555839357698431163339783302097632176303596554004207171475685938466228571208317374296981325266975759204933802338581957133903273837606888194988265883906858767305095830448616374209710160709453565336263186896815962065001950737879213343737677838767453667560680642153160183093854084128160804131788142624613837690491468620492993108153337686762478580925941487178521237699560437389774170160262919748248449363287568162431590145859555772314925283890008031866001038625333135856488759355519473925225608546261148959273176501015140474386406704008285891944207241987834211446780945709535161306894199279497084078542614396280592606198349127833411374489049710520192266323968812414164469056608944656187255467175875822254012285434094343755693013758025394117836787306558343255931197085525815721692491845761369820800675306570887954995083028366852454136671558155926238905687738218456271079676088316828662386965712609355643894967619417619541373744806592925752492751015872617178773901249142996716015267487505077654997171152424513276299783354402698148062200858020068238390451319363282322055793200013400365106072728073568394411376939200820381568763747856058320686158110877447464806373368007122777599303822619847896742478271985748339339557288333431958918188061349514255215683543515161956815643582651417004470223239894008520757873387278411698998798958462391347091984574496076455317183686647930583098478474665966620019592339600377630665816843106442119530437808756378145337292861689513801348909331209274156352402821701563030740173598788009344055919923507422922811416148381023136193440624688495106595454449459098368512023812989106615337425639787635831995903941431562068316351729171883574087846632755166598753509442921366271387534208746083434023897248204903462553010436226496708982301322777759999597767145114434186557494690042556162396181500126855763699859852097377180391371449048970440428391029027604838130885824807204027153147224260992368077093999813074149055231181993167821307485727700907167816424147253897923411486856068171996485681749609642278144165719518818006884195912377007737726375159819146869700320735589829184341707566980423750888474652982533393985411930167774082685422877951432060887782622874880009897760851930799750585842713249491465363092632169022847158375516537334137347857715378139859963006172114485971449086586347243246825088427396465779953631137350020165567020181959556882287764920976069920839902208345437541843939771503265229941498834515749281709226571448670388645408680966911829946047267929780628353411403720631294033268028767673040109021575669734847312109149369715367661670514299023721713242589553611978519784446788078627905757457286046325214684419199912069104404261039432216212478642079207073979014281164590292733692075490504523224547173035055582025185903708441171132018868716809662306802636480045793277929350334872706481984682977222874137501226932844540196429107096491688317841241090919994500464708209548207148228699284895215085209184466088377507048805989245350550221199739527839211514318778066663818476541582025928734677595568681142157934420591965736841563400267818044112605621303872828751861499639855334164527133485179194435210229522858293175015467655785122786439021390398939466816665297854794595221684946959935067420045414956446612792096301539004232504162645712539706760290923514537698304992431887260826638909554305225033504641659729913100176709295353205797138090736650855515675570835408314407333186838038504878837272214104394584866801531348105097231333641631776560975922768815106461375960936894796654671646115916682867833146472134822302004853979842171153371101145533770940282152644892568834698865905950229270361999021297763532044398493975569282093742876846916514813740784916483958128424819939721597446545640932169994791124361494391244994700554609462909455571537981301460351398903458301304456902115682968811557661808956625260322588352901786667555670319159675463502862210932474898029584937816116630388224106699645842617656613958046861177141870112103378277366200279177106691099540668948684435421196744546871713314382901911062393269393420932894816285190447866839473314549185969272625684735605393189215877704506058259614878154039145990189699247317545576554933568557600615588539506419136790612289741382068481212094440903519284288084204520056605638882993000192434948153968013735950004711873194368234714360560674439461722334167752967033139217018862613427258666972428403283474653424437617352538385679393010421994687096244809401210843888184507344167694934664614255517044776714251817644472223849319449180082088732576210791810973498670450887805222611283527375544295981562265841982163422859067752565274766573915398770517318155786646679681620644195523265535901525957290211006748642023214883224330746925353226030334458584814622486859560599296568723404596835890206863335064187607353295558707968222279345160979428635517124116697759914866453032693079480582627287161081742552337283574213417687118676120222766812253464756506063301000129541713382913147763317476461689643212392723874695884322223941205347358948383220824629209067048549592089295423470475884838663885566752724389350815770274691122195367269792932686443198638882290276380039024892333761927128935396348727086278751937322803984558438079673051130021638400870446494624219194201235241407524978031373387329846934021688652930673495550067780626992551372168810052982773784663489973287798113421916393503751229115137275068623759097013063768239823451822931220079509700129188053003446419588516704267484735009554406754360897926001590762166771755776540732552680932143516891070581121305967831683783168093926219207726137401835488102390944778492294451868086634482093532025907442133580855380941308273098131806615782912157440712561693020670621330907208919884543799851408521448950512859486916457325723555840948065856718777125084703394406579902100227633698398990351316190013548967621532887763717168931043856149776967283714324885903500046428651037131367974976765537929507381622280325387950872059886047730508161120793939293722169502647721312703440985447242603745857587968189665868275149167866684828436036347954362176672435851705949869002084114439353163907412704250067239935661709826210970118591672684755597832120139720145774006290022016503447887713935390681491778253868460010210563336195712505829417867595616899283848737919185668994557298036444906139525937327505991862250525169574289306436082408361331936909807420316225929417336786787810514714094461522482471166976181926760299626962644263264059039465812996087541863651578912309755266732513761201607374663626608830699925950428838910578939445312942332265375714896389063560841679919809119535093644805991605306718794764184453049167169354424702380963757957568840424346763009462105718118743462278731567898626941607723424634428148100388574063195730243986144019447950995432630674165625452382361852948983317217264925815277226526904869243202973786990728855926333863589160460706689381581249738306065846124737662334111723718573243681904523446548188866909807885261905323493107289207035910991774132359184259145587048484579410911482742629699299489181807107234544208034849607685611327348507078690381889340841563410712925543621739378396490469334838572807225866304885297160365841440190876881188754816658991350032259814071585601778645216880265525818260341411000256739386878506620581164387271294220876112949369298922160916860919684271193253171564732532427644865490848582338551425360372788430404498253314381495256131911912681498133481469932936253364123366234620280633032955025884653542374994418777326795289991777123632371783519694807176165146444981632539687419084911349529352924872136376230055852868694771930849436930729684995790402153782417208496848929305557157240038792319285945000853755229028870317384194306377695773348635247031850648593500197347900722639409372916954374149631108206820227295446697530032386947726239823781900141511175166569226271945618105653987552254519415892639095720180066408826369966235124841067723989870386248125047727017720065313583218657861781910874229693234859202978050795992408001402044811048028588546181026415120745516424157724018372569175102005428732584064344738832613868037465112420767295054758993062596289935594132999989255217983140980115972154337372360271331427928748085191118379515643742173755159752232070503936110529032661819625512317886033777974238588490808966908437532673707339109543755568384238718938536820232871458911561627507384165360353576909680698642111761589914109373454841485714073127663052766586803328764374315546056971324429253230822880604543984213897948482555176595563192573328858015702446541535634388244546206351414740504782373642093654108714709601681214454780848819434212837113040461296178250811611657146495804676291154985822198797904049774580704457903378495624779665570254063748513137296042097267582515120917303963551080560158616239157372364785857917025797976911275756312682639171154438399434009501145370072633363333250335158761209305883219127264160776236045638431596473316132404230053097850843425060151827167674063287298613362226828014945337071317734201141867329845100795666053954078708317526011246137361342789930161501309872251099203409211391545457827919929737618737482177230245935068235864542910570434916553131506298118782560386162479363865849318993102918458318989409943779555095551935565161958957591438368431540636950207304351208253939445993172147312017161522546856696473901819248303314130285868294093640805884033171487219861957590048085849116308365210433557635463751192474225533730520768353743517507487442208555196920243210987607830368303242834675711991611967406148287605633791745386892144301234822810715389562734532006816613573917909568142359264347042789638126648067682649334135936711770377580651325574867980166506494485958475646819246341960822128833713142040901341665074440392580511546433816355919597308061261858587313351418874921305139258869193361023602954715670298226746713018851541511297253629040274847190536974648500219669303371305523175902092102485569509765738427242206868315065000818541638731618257196460713433064000875692980356849764669736944234608289598013470720213415754671295673615839506872150658714210409145685390669839650878538666700706470971180998527862717230395892351460947003599398682003049768799101163097647770645219368304613496598620706717833337264972529809826142028659071949790888974994847222798675429292111602818522056192758726284177807673150079085476325572692628041494915454058813526680099070329961451330184706927356654980892760976372545321638843451995284522540562442878560836205387058629014414036039530668642769289533256144150945565746832090410324661439990815624436072030974242713247622297234444236658720260438484306940124141664991111622657642545123819218982768479317624615083282364584729935273062620083981879089467503419208628412032180874648615990371031385025829720829722709024176137965395462315788656274155463874630309489579882018261069746160124150984575913771932527200231607146052791567557329935232940163622493499426299026686501900892628077538624229781976860023075528403467335703615736493382914859862963925390116261750529957502531754966538340611018786537185847139660677482764831076373516462600583715040719625691960459338958842124044943802594452658310778587375679324363722599011589302520341723677993326388746515659968141957163027044691431399198422690184240096708156015201429404764780222743500845869977321027983322337286756832513190289736822428116898663556185538060714510731869584563204062258816653708669434206024475905410759749976682009842965955965600116494176291113246067448269341872949206443315568439312839440044335007655862620087104206936828186627152843633802181985971632784792314716616195799388644002128264509762383334528377187331967204471807954300639200373413489811880237046115020034243773719161572182249632499687139564444805987059710042466598557027642730396581228267433155481940378843728516351334962667498022603486675722346053393875193326017656278346354026824528557025356312268335877360635415578380588614510802088079044770747185887556819877917801377761796429766983323118639024334699459836970941494985951291245309172197759949311405813444547167977915506667530745915669821396847682063338438415677034240126248459800767545244533463420559697197801042983787427225552957101034182291896612753501676660918273190534630789621777183019594471969269823387580904039549248187347245228270026998214171106633274709084237063697215743267110066719050127070072490816978391850744878247153545173787892057324250140016376448352730718784802378433818521437177662983274437415921695338503560778576461794114864086924633218456729990270268005247025496751209480526543876495346951517960953759495460807947776962142652358668673692354608959113202614768783320989629323319920672762899696456667903860425823338741149348088199071020360493175259001266261108491388605066027216424333165263824979633491622998842159329579132234493589287938113856714668471294143169879177374518329822394564001566587621319113260934991039711123011382845106176409139900235350006756631962308371237313112263175937524531130963241177575457941518550037596387482632721960224362476345484895814459413455904131698350018483240661515077602076071635196148405598060453125881896215797370849104800630875266172859434467576673829257697487983014739005946989641267148922609115166261256316542028780662345500284243585443129663808825196911229539861998829886035465564011049489005829882585539165862793634885084492556437048774456339943504227235284593001653631690054731877702197909690121770008078360188386003884034210800677412099244344465464806760551157660770208757818305368227187341436369067566015981424632258426270079832964131712963624674100826452836803102840908605151148562766327569655903583154374722365898356381127926254691649426797718698640554901631497804872513277546284998873989204044646387792897233849181848711130085569108637512242181149649980153376005717743267606467386427781141537046596508496647085553990787506120774195596141458377862998938645847431946939579318642791366296399198095555189495233745770317355829052372337607300655915002308602539455346090871884721935461206941554753189807274266251973214908182111904726210456504898266430460174296745254160852933621192091783570455258965038519476691649759030969556267715596063225677727795185562425622239698016206731214279098446639204573586859380220422807602601797167539456432093095542089520970223045727346120548554499668265772351498096885632208905371686557837788716762986571020213626550095611750029036766247055517462773799054247458884723797403240827663710637510414531349653003631451175539392478341391980975446922531918341065905461039889855236739838181664979834310432462884027986106227404772461162134784556542931587543899659369982495544031278631045795211281510650868986889285111344608072955854202039979545464891452824814063026138100154126190937460222757639310987376385894384053052392748376576426283301880003184213827192092932614363344681873476665046954385987392913951097606930001583180778404671673996994256875406758869313950285180117860071877387012324119580703408349892361089801461628679283937072809243224541178524794603977385567267495686242554543456968515522160599244476864185984226543259124536151882164536989840583420782605754074744152628757937467221498538855610177744822028231745068074667111942003046361237391100573586462106210567659468365010567601697011948538014181848699047966854484569933644251297862694613290896189482602264123936760082634993589981539932465633321427105853569696974016489234586902780209986503015262767623372295915013552245369668343476615164111721978475806750015024256870960139349136423871957152837549230158701081311713197694023695031397972515198564519448538824649520214789903015158277506874079645719857724045500707584686139346190914905580591272209750191259942812052830205705443641782780288054518422542142141871244552579101662032315524530933463852378276321104049021283495381796665565191757779584949742446415093074772666151857618000229850287753454064790665309888597889832945566395129405712157809136934860222859300646667437537058411403410024625481446306650571354849477228229390857981606998981963607274934493726750531469911695926230930349967848072812072463644840494578196588775131059749062574805539073298343194604924618455882600575009523904830467136296682670136629064090951185842899357246381452897244929611085812693138437835998539456010534817049152461417444295681273826405121549496328764598058897922635906326584127643874189531223259193082146723228001291957103377406465806345323442864999424327584659460270388520569280095542276873701270002148696536049584552716202916225105425893979104782201211100338064777681470919999711480673985781632579792549933312551571719984566972833904559495803644365357408024897384368936244266513727605539012550098877373706577747368129720393629858794066124192558990829527348790161929741266742439383598947392242463696045942377124237641313365553871397668609034865233638515853412350736871048104746493793293271030776192918608072907369375696771090665813120644168572692694338036487656315471028050915329664990096233579682979547368717451639389453715559737833111144015419740054025990475603126136726054845181292134738557370675398512622003211346978086188852246895919036353322992090288487790867368096467824974461573921826314861595387562050414851858985425668256211399101019101334651893469109907604190896404493845308501368650066800071965328191254239212366427972221522416732596353095089111001084753610692968261147831155366050814195539531002753534360711974878069520383213435301386296272561730861741282852529850158317311055329134612570881329566791432750817754973141819065250434525499325116723709026860158419455849466962665738564355499754312595554396402308599410882585630216406897873353665596079863032729007147858101256188351027687440626734244329406927614824263789973197185298252199070780737430164862091069356240063092892187690178634168768864157998306771616926742660263992657731878662069131755170145237283847595019697724549345703053142913910809517728709258133068180553908254222191189020006427733365894994112690692159774549400572177658609590208893046951139161981834709884799786853079458903868687448466911596102754904500508733659571807058379782600417386269309940524630731241801471306929584010098593652986869039193071153698490978216674890233077725323523581339684215710745873477630246855416574883278649999983361403920232395076476627021453476765307560921606850813629343454974658956777200835159061452089086338364821683833197169509761849521672576462397975580734874552824858798557289821545494230000939705311878579061809042812099286822985006461306130043332519665083529381271322238455493101291622625363991828787500642565554528632585372048811200502389910197629778203856905403615257661360273741199105210805763911785876331766859160260699975147674990555688518903582941470298660141164863938499832832664474160892634195212947867836918937145516319598321117267118446063665653866635622793003935150658389522243160595636656529860960583504956538847042457078946523722671351860543655299393778715957820507997176964849654585249866735135373222794111089280464782080248024357198421895711402703674218507054279698257508870837024579877798481575541706381470056680608106625411918079698420445138338995646743315749859925248876763167968398478277842128270808809487126539084421550622715425792648592505628135728789886148079805434450350632631465134950125155244394747589321573683369882898241556125112602708487946346272550320023604631628279683702331872513719975832482015527882040868096969009989606195667385470711510557707580908043833026993071223128011918743548278646349746017734847542216490765721742210931179970511815316163717157294222407016600472294655137703635787130506260873799757025490163152116273019054395266275692210143954040289455641202583944830790120773084984588843672274849444462890397829107101925236599047207207747875146701760768594666424979003586224615510038212036910412642907698399866494798544163536327771092067094668203266745648973462979184326482610352970470513968303827117979743535783944679786219369935778948739872171023590536306156955198206271032731001455418702099462747093091139051200656640419106942517348553130397603662705641074658721796481859405519164521503712327846145942249576025507870464571341207919211293709781326442208150226480904353835417496777234279809327403517283625764839989740233230531296988746666953137217509372223145435765850159151361037891855052416992562889299842686784085858210732337754916455172474223342107280515841488419423475112776151044640071961073698943897270065304641364450967637303840770966645920953291509998673391020370807138240344258511596521273465344493686014087302322708403947789023387108036963072143575197465810067746385100260204838440460320283509836944875321019585944015852573384972015419013779653299277806118157471047720389685977353656749131159192172846789820382226594457702021276188897839123283513951423527555424350181914862161154417422729807020133354269180770934508930129071515680770568544864522508027888253906660197684851518420520184317858198184203707860228246267108103024555488262651761500139956368417001699556636474576158262451886746443427104339320582737721740678066671370090810940773873176240498330825189050479429550918205630352874378700498575221368716391529744122272735402314631998565901849660627859226728085550189483493876645965458409137420866082173536486963446754441805962473133588244722674892881979317750956209419644032591754243892926796665661218170206829825219142179534641648045038174508803588414843149367280039006960443737848196199314287170965264304080567887847374274241060745933861510354250164977907326336884039690059686371896729624443075104895227553475310794772266438101331843993593385103306501020777369347486008774270946682980881959509851185832097542007974255274526790941076123179642612923897802316542929006675514870462950092461631216358808568035758763412971477289607678542023738843301518832636834996493093267567804547621062122374489140427138459573944513156521192094125256556949705582759508930247793695337225735408643815807406649589062524593793222281306776007261281287969237430417092253071906255854455129239963184238990566296070060582811727944842303946805470480616911263173374212209363646621072318120729846566918359225886508045528877752966032925763551773437824130763612203647879186063021286847829607024005010505257702504031088504853535446733074636337327614991135422642289065919095815869219747517721027591830685059484591226229162960356116806929411724143547656924442433830981673088143145940298682106429828054418527898250419057652578942622361092496604940814046392206145015454603028240455243782519907238761997245611844244937821315565495381727392672911959978815895233763260547126540835533119803382316455180405610403899324945967481498939432362006755931242293420979142149595770640505221449142123865609747367826037160729993717149250784656459073279954706137352409370207064247422578023678627515567097891352316707144609849548937847640348534089177713954594999761630921942940963125800739894369722648883117138456386839176260386902271074175080179909459984029452187581064691711038368701444359860977439179141399126979091236076600615318730604539737552858697252055097216497551557850149903679001412726055850601398405501114437107789377310668219477643411718736491085681211647812164587497085382923769072846713343354664104207043415949548388637991419579236499861023562964272164667224120649118705159592474503901675310964697519353894214136523607889135706437099790118817646160395358461421416889455049648775184842025715357363458022884648335626318474336657698142755781521569918886772504876626151805629226354253237383269687720413457135853772552013885370925548521568278169084185304383470839560903957556989435980186673540218766311339181753093129561651182021718408005124568635839115626157297747104267565637807420074434394989816296152187793850842631167100108077168909761153497062221803288381554105875024723583278853654506121431708912418369452971198284583687788898475752624312704401803434799363175279645161382593846161845274743611198831790777447397865675610987357832206044921226979440711263534974604893156122510749702161777193369291669052776375537725225052636897273588863271033732272479312878978728083420591135985822994478612564267959864695700231641172520233637748657348953613633641557489000566325551343909090495773097520712544246028780371657681854522306746876436254238926466304277237595957469294476825487660213125343884073826944989875957817243702239828533515211463056022777462581069851556971433705081736042897484424976348718206342842223468663174345788451647568678093286780253460527406063959431582414566116972230044179053566793493478745652823058809240809727013717821063836217981522341224215550805608159809256580471685582758402916684108305715543107788850134011465857681211385004321639850534142017198852052506675568131306415970517729586513247667815623652720583617082515431491211553348283446584958989942256205049774882218757628195908387223825126913644628908671508985526807688747502101623309214675999241487627887424803784107290403806521771470818777781525071138085643808498619686157315710689833342158490916336164690779789736989637968705895000933238769606360093887117062313120686831786624177872098494783312154061637579005448909941975600505620471391894980363918792682106748937075387181994259097141757518685733747135953514920950384844450412976932653936481563476061820750118589909393417445103334236797394663979746731678577349663876319942178976891133249244090008631673440750898480277398437596622750216674467427481691315150589654747337121373465366096386395215221481048454587483225793769271585279443323161312966120244417401494433199604147134848987970043232959292323527886586735382029925865955530083793167000780283526703113660557456617365086180127214775826232618152071001388672626622230061025192640754377268604038825399400199130340225272593615692201799096194710151785479301367810463514114485386136541172152445524839270657558506383928412437926273678368111979771152025836832384775961789289448664292577849095173456921898721445925707306926315144767634250324850656055396565887393113460540129026253509284042534543436446993793362365062170977216684392214782575303933557472641608845177708402391710183551857774071130230937260094002873259083824145528388276428100530424555871525526511262421703867302781662558352552372756596723198872308838314528633616825304661100072564486048964832776160999373006518117555946606644549828697129263670459424652772082591080430618582091533570669915181555761355287936458824307356471267767195427390946123484879868212485604294482578851525954773450660823011738092128262044809197125974693615724031139434535530120838702880613633983371405134028333899353103993899145455235064454024837901240045146301599687347465435495783252634972068308127233900266500223579533094411508543066610101685335738779964752298109579235712897093155292009501366931834330836765565478903998266576319870259918120987813204589337040430029438144085737854098223915072316463614367101742034328811072637241490629143847745874373461525311148760233812414630070176683082925889493994765208381509595084280436806001974928337374256763260471390189732640349087180185272184354453203495202473564485733775141434130255159228257514458850120524353379970639682992253131414728737920431689631878519102388753528671962561362177552738311760778838618574700951403826203610691967848222229747755333605175939799048967869822203673431156900060825916294077855632847384301471039695006203313422146708632834274038743299469050667116331975082806923322411499397296731728318066233541226035747241178505269159589075843247704149277418798467845396555958803714735882720163752948447514351378100730159152336976030329109573677819309772073070531313027238730613116806004424249621927296221919411767993727858903958427579115501723001557906145049873329976989194394024493353524040753948219232910752547015441868740789922513133836650876659150085026984786646315256499110995235788553141754559369540653336045669323376334546703404066657611218161777307303465270037830786111038129503811484360951335928668162379731873756137863130003742814271376845427893525053171796070219037147367429862723217097213643806561872877812173347452246978679878580562431901544059088194175705415500024025082174496012118293309816939531250688782980931254658618843381831745767450995224727612744545015844788628905034671244052280210331237667585501344123238207516332299821813528427909063397565905124204388757702446233596045621765037938736700401847786483085787803794326786004108599416485605250333662872812292019492080305993081088746862268811469537674424777543449487219977170665748400192901703366264156815021381284298180301109407389905364234193707020621022705240911792145474900209030922136042842875539177707626974466435755450210433380268658367213258747323530715172232098474896204717636780124038436782505004249878983101212376081443363806186257635911566862932663896726749357439972407293067327949267554956968473179803584463852615275251662342602207041693387430251864362589945434625563060214453743160964815149317591872031171930136670245146410259508167470261893340513702553672823360346199436978987965930746398000607261945119851293360301998347981783214235696895257959436382396301500193126950366462536725834755714652210003684514173192387718680895504129394463431680274328662806681567144097763166116487006298023146072323502578866313384207807503012621037057524851268109440658174959967819674971058815477261710866682147834958079443904978801299833673211799537002561467757901931885411251068180714737261491355570581117910264067156152703995699483805089315072527426096560229736646859280737700183554607425385355725810202155059874875190184190245852733437556617069688235074132289438221371461495347074892958557245493828167661447118095721066835522367120628969289495259634230393981799015807828281434908832859227922565813956304939969618077849030210366971452865131866021493547029395248786813584373227954840441813599833319754310192239098396039818421489299705437087473570641072480094663039686075257580712012317930960870383272521707502657573402045676191481816506818488585924216751944124963706684844798959990236976869886509326419158030146396532176724248624329168182248328404982642027596125292350036621462282965836130955727185057828620581415894035405979559243218135142847320354814181487849717392909466297775915945002098894232254090406057820505844797155801172233882401844946120028034492070802571666582938806584977842195786694099514859358505991341815025661881064026906516086254728370398617686532344079940275602891099335849204360976026755444433859385724137225687708508396832413388700072175018934462770060388026896620292606070066136316634934638943118566592178205412378214019747048096907172019677860264775719643011769450016389262522861631150421387796144985464065656419453275698914934397725119642077860919125080262346647573647574118345906799586204580461199116523573776753547688734839192949793162075814153838600302172698242422877008161321095087703255450549657641278251045215625125181934734557994549389606687498927892491972852077569350762322470809172678855776232534332240687541607881487778579533252956207256838263616770254649884896809668953146346864150064122210024288519905286189307251403276727892637344760232793951350343255356065215058000912376309432675634914566954465406108597551551544630534641929740651467357926060853672950890453241418729365088388779981667242442181185115043496202913999631492206958529219618740364620542412134066619699562725556219666338803297748708212711975821641720575531530643803073120478699730078008473227565839926953300600407117342432844038874462384440028361115775480651721722341895147007203300825123152894779620240602204133136801399880573764851276757512476655100205591031629099985866330597472121288675290707593865484162447323134382573743969355637930587035192264989649814740220229359376531399162997770540951711259039383478318556085710753116974331111984828219003776765329560385112442880390514898882328002115089390163764168488221892630177830987226290393364761461281811038384213444793281035387396272555488294065381211605256897038770880414605799256270180384319204558907419981068918771535322114197453688202735528968959478764642742579708203218091669324857135803172758677591495156231308161927664274644766969476564207614460340182638413557491416506976409981185145592037318990633490715645473931231283565611092494218762749407235908865256524238090759111270805100887583402129809391747892827007277814752193718251987001006040682586622340894503405455517148509407232982497483697193859021335404638441955877845750353919096006962261005132881801692478725882571303809061480635841172547306684041266817787262338587251720288515126627102208136736933146508535883832925560558376281956192586145644643127637350975988715967075525389055016635387320773506226244259222658965020816095491416682167552431184761554068831208119297257033752167728656664907375476847150866615791289618409059679769797633597166967269057544420873521082379628695478157771514126717823884958550032404979730480534421053304399603911726321180312446924647378699636780732236997728891825861386189925670048294089072054697675691200547546884221930192045019499155612349450643359029520167009871816018477634750388545168116662215470880171453159177473639633994561323239702295156437060416647519146961749324080591793455599577031302762003662619100534453226344845876804964504943182571417656711231669225139518930989569905546780853384594143652017295191305828752433015499637342371201478452267411631882067865413855668852977158560982902970342386414428214329584838642078722112918873339015702037523684986410460781026549361198761080596888887167934390946855694516041843723652639583436756224471846959703473048560364785636913121767101244054725067041127915507218592546866450530372533816723821255116274814905180800800080539693919842825231174924113826286215099465753030560138150316016987943773818984707748187577426759624606976536362308342584723401741020733084205366183041111769784784790019432606979622685501264584709801278308679663130077338357740161746170439119077729790071199735030280371280639315336080665497669646461583244310091888835372186156023251031516749602288708667587084566220093872880403810155676854951438510533959390718240039366431256898674377416409094981235441119648747189504377564581695974677434556095805325620340312213113082504787561336548639272279660258616977499953199493954131082749078445430503928641595064238339077936652812064496687335000925998226709988577284900237325171196406469400447079782544619630556485244391702580232034867053031081415337166301931089030828555105511347163060226455545820734554739078911150281057077489402842840866485136811466802422436784270314796906487166291183888153026056757532559697998038305646720238526642472418095475595098627796194236309968802323817269260569649902702728673120207989590519845635098584447234857426219024587641244239667398328700115235363496276610181377118097635973375636058936922212228550369092846975641019517430511390003755212824004576487144246354140134605128361536044596266361497798574635995231923012648293548933571731121745896806165362210207475134283299248293175787131278149564915941986280615833337556861080443257814864704833826204347390553238615819420233444091324528459777502182561136703275515397140700497349427490641205432194455650099017690542921047405007487536571063421763722122637939352411104558965944363123364283699844239344170441796555131173670311265741855513460722071482443501346514297851373514909922691720029786304965274460768398239716062371769826610235745194759504719773880227320262814541229220611660758493787764115978173843115556252219381514637132720759871557994104997314161448978646857243388584537968077598962547266513386865638462601781362427476023986114874891139996558817471952682676109361522439827333353782787398587525619258514660913103121037016541919904231753018029089099819673706619957775056525946579665538279665749797468376355629524524861245199002881778660523473528355722920661626894388882668728492725916169406713508033352885201521902630651702656705371728595997575237413356058882522749744255167442595656970657260937114442320116448787848999119396694378396711066059225854021425460553367722470854942987851886674957456058862518035983189703115864950004768102846919692788521382406285669588426038236048530792675286274307440787712968225628249686922080642513331835451935292458225580014412524084594100285205915261058724649286122781887165901446575797086795672823632115419156445414973791323521251081608692157278510693991390787415576952893462295957787539738405114105562336139822896796897471514536758214132299688821727597913629105845006471474387965206483571936407488034595121285963236310168739023121332707018898029897809802945138810862567759413945038433122730089100530337617253190094100932998771658576038281547843879289874439501003630375971420184453979365241717357658805743668674462961369750770615499941227035853213123002453758378944339733831763726009448118850997046014513933698592382704461704337108329177954883314837085381188847592103040119418957910299708591415714942349975675483692885041392497292173088354512025832983616918610666304277241572019944008856843355353531404742194672543044777779081655897380708010056345370991031442709071038042342928832581432025525238650259432607510901562974429650533587433051082276759750551915263128225542305265450894346406558863517533577275603403267360193763148375272537091945976679228930985466944481328785367062055047303275487272857997726552690940493982369864171811481094964451769778896046308378299403046491965240982062235359617940895338904606274156343345081044029497813576254595585985220631106428079713279367123279689474528824690934440627523434852852681623917104147176007862728727657212441685477768930960198360550558488486539394859933245501146814809111915796754642584777188806848723550168161862410482456683339687503698325342359836116399808377836915440802693488649772194222978270057232382426037892757204474127591823551443127954740528148497982408147527635217782878747633751857163884092282825188543733728780111880024341363958354335413304573355795302155086709881593856656556389689571342634083058518634157134562732074191975216907493617590710447749818693053851564884567854672151694117418332138604458249162222375167462736549970210693095265345556871369816581332423707849493279810416013952831820920036147884108276841634715004351262632335759524073872973502426018594559943623156119480305607877627571806391439274593522511994424017938016802073875157664624788682250146694674264702387680523856139792481981076714019667095376557052026838704929825865496211561841124284830154844898386835009154164919212674492000152471795368303179508213831626639884358043563572528953585383319025514984223065513423190473222187481005465054473632369872921505973479158253523976963156387292582034215596483213714889469869278791646051432691588760142086928651823446401643761914161369796741562815218656935758322111392576909101242434196695311524529426669299990332748169545031557474705403840762249488300428930855435398922346848132722614749943322691175676570603074282517793684074807559153968548415251135722039858258299458897094444090091853194883452390903532061924704401021238051862752087412412829132066629868741688370368947895155580613106354608703748213711229125488351404900912985747853361058650918350988873631684055967026733848511801302955877080258955028765080431004608370019249676605551698676825269862775858577372443114505750163848860687457242767238756482488975686154960268675501515625609956320393551292991619084222594704371395461581338781250062496355116972951632232801195022820475134447892495601455411157567209925906326307409952312228800498700319327203881720469272661961224505049042346061526216302534206766229569211679840651009203229133533938330602706098201250482406128376999355219947315115983545394776218223672362627943355541440893635535217626769128411003398971191854977927480234779010092388102417991486535512405048703417073328723533404801381814560204223886499348599171393121774961439831043319137784742323679535391023802721663941293630602746612020211944249870983723076479405988263122838749532191468476119575831123162820498235319038389258332642088388369522971918084413766960257851174079774577979767431549380099448503691581524212367220091963645842765596041286970961883620773379387156357668793903103541019751696586311271307370653600483940862202932119700639567833685063171009387784394210830227632143826293282558178417600213011329799851541478750385537207629273085408414799053480272105731012479420839958347185097853223665379970398240290183610626038969137983562364195216775199694521048361797324435608652220999756187222239929377548269295602861708415032091926821302427377195306589183012124305943013948823432135028464825476197620473333086176298817620314810166551220264135090691487240154381429419377150007484278868812010245156380830895712065006369791675408371234597516905562370212002451057851440021532155804112269159545256798005781519100109967763235206692027379446504837371803216651413215396861014171795769911917307928241202235140452279125340587483301616473603851963445152761597336117140905099660096725517828641760887656469392486968967595428285954576916226621298736974047051072852760932155745848568208633667389298106997014541876845660415803215769275349754047731203533216023166048196470201547539072363580185890865061476532497530201777078245122454855188112678572239503745551433932663590650411908309570565643348902821284323935637442128647186005371951831986093734929015040875392686811569595960530391714586766065335094155512349367490936152033339887555839122452540450709164259812396190272362931729200197839130513965753394490897545611297147626318842445627292439364976491646663275230274948330880537051942807469631253672188854059227396180922426784819139919786440738153472688115619748099216760862016911781506972418331181317398153291716370807477574060558830655119528990700229153245020387761766152408530308358085229545536764633215005118775876732800707193169535230888622509589317525016611974953008228363334394938657999819746571187121533660182995611815243278507521126984967609981248015578164151916123461096611039524770325739014984528777577631316486361868251607699963657701577995894818933523192685288389445559641368011739116058247900837727057833422112470641129989837403218197435991649398413974507067064874516292646969518821920328892045460871426145607936649726721104924005591669923583740885092981078436944793499720449639393922162092645526271246558501345718139369462124137988549136999348326907389019423928176597523556604804008564146484157175779526682763617981816386243221008182573580857340905036693560693015149120494778602625456831629110561792752451662910172232037904678213769798700674813781601014782643864776824138355824182768111071724039034264909095625050907353522596883161991607780764579177070949019307432545926390419994751642439043075943772726487077915740366969969607749293347012447426817868520420285623694177953852958223457779897391266252677356454195600718425589660423767091720350280250273854463638814999716931570581968751601858320925699549279456534262368957002098107834119736402813890743013597800191252243754037192874712682845037019740358681349777806134857016810221487089270354210958093732164183375751089291731052371135308321125859310694614333589321252301375084817677987333951705224026608778041760419973252380441536534871133121719460094615710815829113372748881559536982799535209178317821637002322741463279527636077426919364456064386424781602615858666641000014450445007614070865163966311089005869158628752348069876297488270305873122594130613254581645486454729476805136899207964728623261164955913608870539072850135334076918730537139683017872443924216599439000088089575398388246163643124180463570786369562319315338373585085375136647057392771891582878104240118711363425867882829465025309685865398397717414926818146075562127531412030652249036176024329780186847501628844562060077592506357775982390080703124294447285710729654103452715214631593010119823331865824653212796194661668479657835544650547897403720930085051674796392380778740489032007403535398654513433283713755049340443102627398971065453345797155325542699594703119208114824488035685430736885029083906739821774772128621447654379260975814488106424723462501450475578438671001583051986603651110213946917877648675811990616309904528001877718927812816949239494889629787314396436101637576401822400426099355476819613965120846820419961517494193739909888709941785755109119541951292491083026077599293970346606249111977560631407925602849334342632727979282226083405873018389179124415312050483682390074055012150971063183939469920438631937065192085143139935008353278777310867003061723164135277730577730210705732470244209330253927295665748388475447383876053488412274623335643817919142120200124845770078700696989455210881079252531206213855801233946142493287001953887187805754962238753602561098909806222377161718940087927672149200200503505851294813961815028935692825525150911037453211415186300537066087086734702307440579523749294895428741580617889178739853740655885665617150836818964281611871959103407669700033319106094643360358455024345619022452260301175801951767633540852216045829799101570737280239459137740983363454461947279438470204651777399703035212797866181702246198782230956927513924313210714283755448248104753280847346432499868206950977556205197163794414998424855709961050116594451769754616226258344234196732337406390765148003296968827390735368273624965549833255160191351831976886868909697410763559348103009599211214345931649637221258712180646806507717307277627701548835412607291159664128344809643774043128648388739035589339864558199684912324666046393117416014773115489103005819503621780519711914452425317087649071453731616055494881782018496249389567143451252837506513216075614598242473534224281239268237125009540586302100088593586115062039309737785025608437105280614967158204921800787843914120982467464579904436505407374129456115380891848313185986840949402948750035221507040418200795444509385192524227182234727141756737597027520088903231189510930633007627210267319609146582908927667559392170053714635019183891900765878624030679233135702987738972247676738390365182548922726327027304201017487523378426470850139907348019781336888386859759894535724645153813428112246281595374274808792008207476793519622369710104399527281342419363642169771467932684569692655728722705206469992725311405304025014767666064464902561614167688261990290517537041653998894311628959293964271085923330267722344360357583400586957094326893187995896135202248583648076725159632575652789097091522292816870311762063944517476038217991980315712181449940936003684151921842815480975058639646907213282536690853952610812921390801323418390323699293686863599077180801261459418546463832977895548204865952107235575497252128149438434732526873423283144804733165591107915641871318757332248511649860058228331905821649667153883946062533258525099145084777618525818456429981691397875289131389787133097225014322454465166217590466536456993417365141076024207048217010158028708411439274808664603429489789552283405327150710731817160737337480748904780738395997317640552641604071744218789002641568396152459639620921357910155019061185784907306046119029381223677664015262628811379255224243418806780763787969441829040794854462491915972980042813537307187089066154260555296069097578044293468237043034092061177224371174950107122868868948094306654862708449453740053792993299844541280767332624206251905679361126930893790503503872924231696554509857316332402827401766586904074654650203424729587989475885357599782706257287019430748389698254512316850973433359284110182553973143378242566015567588116384898599108301268011571197619953273776481508927203882776808122285324383642997111493871540672279708516500984932177750858917528462240202921274047331172268397362325504856184053707288314670252434796961864025684935106465123096891582102161780779094419641303918234198411412682228217271881597673010859496131878314311839628556037446787773656074225679176212870664884060146577291920477404991916742197267620348045214341554965200641376317179467829789658570020831297133128928302294676779022308235205076929988019443174454567877502009888182294327851305495149452849163778586172910636907449963399578353139717729127762530859242689432838145448965384108484687914823570378160883405372649248753071847882115994374142663397048723216949486697447554229859005099821558620596934808645205836526824486493546892772873064101800929428877303220828128675165023255501467248096230679238532447604167282660545577461807927250613116311650856414274925968263834194407962801235807450442930688117927614871047620747575566134249982197011221661506717644136024965832429776543721084697101746427760227199660600959693713945308854626424375257925936553581487909985438795439222630639089091119483587911468668987896772428818220378876165207796166206639377225455246245982776413947053486150831021241059109526155025048347181765604679241041720663598555894793915395285528836988457406835053991834998833710768262869427271285337367546642889131363455222826125586346558926897374843650795558743171559426031828736026013083289217213262208022288576264211216614221337345385385184708150939847704717370015928527449333986189897400127110042370668358880371981999681908360841919409490304684763813387390471742792613529446882449451069581688601376172797389141794113545422563043142384195674184451397722399269759306954152838200553073832798702253355317036878573550644135349966936239784199399916851929759700903462612099563836992251970113706568125053814663945275169412001164226726609402574650074316128369781709203900991868980526123302594297539037380493196255657121251905308092372422989533000512773738845468083659177269487425853600843798623685873949795878753462273907274619563851481950834458930671138585407169794056914427413233768872986841929461541292276969963068478364114431390034868499444640161481063556732967777451509623143081998198305894876446729325941702376879171357739866994144867826675467537452804505551447086488404061134950697259354519238037407769174659143184575923107234969942039861896808877802381943067541598603725642127649039924377107775033663744969184333336551687449415737231446172083338083981244561190557751471947941695306298305823873419606756195834971948737154547286479039733557740344012192047511267521372933941285911246445088728652690099450146083934596300012733666456310734296476170205991123124767600263809886956160303645530780315768027793300406867957116473602299215530425651927527985022861430222277936009224868749441196347961424775911568391102145508535093100882880882634984636050403190412771139167868083733319489251392917443446125815453039332323743245672675492577739305643485779899001188389292064657327370660216108308258861069716128424177783530860024311529432730501402501790525487702790872820182352875610546137360283564957738424396437998479727545525033483691160906484946808917835608943912710939830713103965201359843032417622603759283067319138173147328595124624792823974103507640849662377854128177200711193903443821870101827916098549423931276977347104028798127519432848088478235093202736323174550391339688074516760263775162860137358085045203983556295426576448708546618116518224183700731990314836543313356449730026980764475196695420721985919506693624046423759592150519177809100976185037850527048380534965745399841499542166880422327809505071812568514685390239132538290484709540811125521864437172017297303906734948945220279266864988362333788734800782060978772442016431993853384998240291299462471365430084339110918218372035409333663842258515107432046788179258658143767295661187585266807701550968737006914147817791061116222915676469584057527243017226801878541282213916532232442120291510579680037839478934591517615515883148200620878941513515666477174322914052867213437869636239908621373914075194270417397121958099629755107490270372993821629506113433962883136189293915747931863351180238342852590625873551833694305835936871624747776778351166182589026479660860514781171860181608137966505597669339750659649552589344836398981657428266794914960618681958832009590196657617208913489872408615074455262164256189248711454616648441891216926767084298470095953029142651760055588060072290168841907421397775347101326543825502408352990435756053123028006528631797972951584626740780900470256681149429068748882119395675117642675186231583624979016915361809730499309732349374190213613066117208112699440515299696238150442984753758972236283024695226737103495033798764378572872741722680367296244642348264587165837458132483757509186487887711815472071849845861061167621012027841186130822960550953126412384058625916512156561198124970389813878023951278062513608757754143597167124002467399237769434911869298270636309453722935334004348807146764941599133139426775014746104916985354223592886338847241711799420427377986541981460173162098302227505087521802270200864179712063398070626480184622232019743006220991212439899873813831551660031096996355770737115143422702155007894646094000917679437419391621877732508320619390764534611890784085734399743278717243712331116961542506011554638597434213751230481291254041739620745866572048894229377086793805540163046800781994673216007002847456220118186362756121330835359717337179500935916014524766773710592053492171653771600457908504781308425250693160340530078556452414453139053345557859729728667786627302383834067598969136849638110888197212946462640043275351529714904536303825170102890840377841448310725810346269410296278548138988258025039329901742220941904768829715683165456967595380199369673905905617595155367900843018648572146059362851535028395687461346638770232652139778958487443755050252829271376541038998926852474563222917573807788975332791547961979147436529834566152461475781065187724254079532717002391136430148905030934492678205070563043944373439625132178838563244059132361614930360577366459221548057868753482768979465080431337466738812937432237896952144377165260079041376137705058041313423491801632759632903584839116838299734032230585900919374432867965218370525673340373784277261155995740148424838617428442382405515875425779585007089809184635836067062943406056961257930769763658238432593767702933460416947978089406692641958302229952098008476291369153551322408687961482752420981911943004207606603810855880418448408746006898271050031879355750867804683623192262496412530105448674586681028476606252713917022567376820526221349676336740640726884335342542168727897546272460451365452480771276384283242482924287164207763985710944330698897277295400386070375530193024432617953786504983852769643220148086306245391740946259620760619221578005343215536036733465361608743822009622087764347772228768144144064389568886452737955270303402657582538147884822025516289652227064473918257496725574024950955776975064914043421800497753337788823003626072310032506217516759043048187782244763486564491018049435931439630571432816759607600665782033012363996331744223320900822072978018979283598135331268736342458826569575387407697264998191985145325309751181308357481042044405042689853113975323906697794767779197397209862517362034437242596283775015247168553067945191191706198863803989823289988313359874834540247309954928915388424205409824788641150183482712512140423767985547740485025914330569624970929121435648856137785637136736497732427797810071895487610194860718257652234038651527548697806148248291137995873546299812050924328365200935685999892747126236805139896989519822508464303453356756209097649175312022845975869312151326153522436760012836853313726261670098133482868399002502377669155315189610622298879976893137480558150398676337460816043667097948093192669219650980091459848800654611937575704604679793934174478703664386282204525408143783682911213377547647369808541983897403589361100877788706891150272066036254661749298697570400156247725586572035129895087186946704333776510413974618336684064121356137914431005232111177293240948462510197093573982400862818926428002721646875717318983220893997995358693877531218202484145122681261102211619933430142569122403131000175652993752338071840965114708918860395337636038318470846379167979711289960473193964951532136306393735639313138792285780355119442890429088422408770251658428055589115972352872932946661735274354222321774874127288189670587379475567149136543455934914396266140298549127802878914868221329020903749032728414944684428500735614073157688255204432986498847723763322044216122115819609242011750529411281469620960247454687965389596248908083262013767879734101829241475666054600374829130176631739989228967604636501072726876518813636766059499847001192706087914079843309845199430454644829846690807078342377537490835784903448971097583846606697195351838168029906629344921668552022527253594841811482563258577948940134062696161881791449577656952862557210829453363967294692309515964245475786847201006166956846061603525342434516969771526634262711311050722486133774595961705034131825941591891594703978903515959867866061557106348267214756996788483469950017504958989802988439533592048249020720903354374651449338558329827346260957754358766320103917414998068347957057181816611116776918850370368438129438856077168788002773663377768668878993282469915875417674799108105748127711824723014580502180382613877534690486805411729899961868111440263565098965983562621078211617456988043477105466388566875959991461787849427117977382592547661269197825739489392646115474864707564203072434056452489503690186863785220175745684403087596268146766685215968430842396968199201543235796408901968950838214091536642556251647026961597480113195326881247324648274020393119728159034842309900248456920298327459491444143579596889935905491104276519594630544308505454291769750992722820860722062371323056542598271930095289316171481865254291373637339604817481595384841015754083473634899033866503570958420810872919368255009859412230281917144362987609381629475736402167582442174172015036992003551903907812695783961803896331433439845132978117932024445553510245519726911133095808320691620219249475833452468243740885126325048149783170871930380524271654370446750411884673515316065577610502311069261529664701049608369219695535843640214310469042170094844088205632880600273519276881094457874660387127251629173120602364801562158804112112643483447878763412494877483953603879946071913133211532762296754693668612711155814310472222106609432148160137250559721226949067424206554981994443247830034582177464615816168357446088242473111565340360768789878887686911279401735277998928807360075551519576944264563682969258322978576075499756404701317625734891351783533183738884351384974885289130901257619980412280271187940575906764142483994493838185627207001840121423750806988061888643629569655685282474443324113646716243999545841193215613061880947326752981621805387201588205747844457049245229392085240353587112650891363332989168339842339973521974125659368735262669581398724295549649534241270846839640639801560354901887002770499400713748768474444980959405753699180578440503126506870379351981485118331821552635819823518987391441026412597984214359246236086850502076228086330393447252885871385853959955199859449418465036707920047897333677194975501461279853252334474784220163040723580344107343127788859754989913444980330520800685494199250261064933994056592651234841563830201031478769071718781968017433676737458281241123087489818312524016598871690324873649292297577306521746337160104194200614970206382546334403127713021192757775830510877842861361876662602136880994107684610902984037529095821951025138176384370495251252126349481634533425002964220327441004311590632615093154522064750553830854879434896327960200599236725279720396337978403783784621860454572417390614536029900213179633117710919302861711887211909922831584354674704606935015222897612584117438744055752399235829320648753035088457719490829953265911051631296947279362946753262699805742055600318315674359205516663974669913608442800353091123471942426642472675445870098059601992878266476544523788179679552251257761387949494632263049477568542733685441283824019171556265056283714430175996558438676984864417331080770726883320000413295953670352591860186859323923322459424982895311145712524991293236164362261872887772037886441636207178861333741361608450204899589254981107258222848367627615800180801198514746969405558729134522661933361525564439574634871504361560679466517680575989466096853438724000991807560083908487802651110448051435350496055819367113777122068841782247390041217892087716507642877919545068931149169627569753094282089333222159241899808760950831576425823262050682614966524003348099867386085418875067181349546751018581609677754314325042429192569177527646800549322614974969756722137864050489830564233612947212652529725035932647215860954435552139852809677038979540359578160934129615798386626123316612724010722598771540928153702549786284436277166421487108924670836473592740395717115410742150702382105578296552569154240337552578094809838111855600360873512926760194498927679012074085861406127540420347168450426244350268779778137761809487337597196781515813006010268692546766244104603978339325729195102039566074028176760294623684203837457476623542489671749970385663562474843349756937513118120389159386454754741739166819736718931482191457392747656366373960589509060708395024636436783169883812428246203119112682497745457620307708776599799621214457833296688347351104637151734224723415325710227672094213764154065328201734564913771432702586755564358111701846975330947920746033116637214766267458057070762898752020895675022168303395087068205131269004691214459053819771315044690261565656690852645253176824671985512910132845341281910557708955661620213667578478313915969392632707097817394075299378536714069513877654259889644470830628009849157822736021549809687395486035110723584864757903524805070872095849102164910361964216340391280685598300497534425508852521047019067994277260201817158190888428342945702095927334481587412239851177418923000330134962164474005418812497502095642349009264514544197238728865681614363031205531781812795355932928169230443106430301735783997981389136767667946677489811388495372924929872679660806261754295544335463455788888504911049291662444455677525302897073354369271759093895407712622796657361421206210288121165490199058585019214629359337576160556957228471857558301945647882411366431053606538785075922108381006253913429657044447404320945541768937597537593875347853272049696881919588704971814499510885730344165740520790864918600504048861268346912848328867833125799831027496187848834650300033949104788344856395939593217050357015371032323975288271402191696433833665981724041137766662062266029595955389099796780903070353516531733553217243649922149679679932497589713211818691049115249552505432137221975796439218776548359027055343659833743474954497671170279826549779861242610555445346177213297007619851718971239025140418731428774093680907001336545577290363558265145299937736410986551049565595574404310528773255842916517142045683630902700689611443464099692041006661286617580006820530041652535024000424649242025632869219090927171739618380304699596518896019777813721624157556509190040070901213075333156581118056885642852252239829324543134506105277055602698664369592471871693745682460713721490174226513642456438399148188977969421319515656902420609383088913502121761424705641631716606620321474653942645270587080741295905503254054383709560728380257640301334708983257035934463800294446573060568957575426250825027598567927437193880505943068217292909211520132785370884951221805295430127055817445898400929709613121413554006251629452677376206377845552385154929119989545864447199432057247163506060282953770676456125856388172177449555945359461115741350209278617122994781525627409791778978885945110205976820493204450375810494669496765469840495086544918860713393123120494949393333716327532165993410644266727737044329468884349143519830667298423361888322834806838036076200954743422561613416833875418220676037664969266452866168077578535085493109224457111612896892299948244931270180518734591882247353464542945166740647488945916485827477655346904487364406428115800297583642168473807069477462139188655491035274596520306685350681803124557264581277225721358698272324493242181865883412830421549249060690975465564900713783564432542655383710920657677306139606621420617393022479510961604660749623736740769483720125186844530395787147221595072461980184199380171561124522938428522454730652124576603980853166752996561202822749291817088721959937130045693176289696857897408690878775517955399587108555368653790458502413210910408660316434343061006502240858343166947277381351951964052143641976274367040698953239127118099579409816857016950794449308652738791116762218360489098129718605002766598527936738019040113052436935709146856213345650341045628947932859392121518460180362658772507139278658184112994460377165988780967548159987457893732246297728501138932381834731870638207841779863261950166757430430551153032352226366757286398380956774410160799268337394178451792684266927702028971111761029332892914605448455460907030958376278551073487709336774338886057000330600004436672724758022984801810670979483048766939788126681903752494697936178586259443713629947271725144682016901386246951552106816893082481122905943077812450998967006956100661871035581900225773440926846870752892713136991789571567005961813302028554008840509983820482941907456660131656311672109200976371146716249570599350308256697147875334444640046567224015376395774685665893455821199294063656176968344820652847324964445040960438282021482793504212695040381599691585064306189335601866736786776637407205808043437104469520372086624629901051637894731577846275033117574866307485350853248741798447086635188194294054970555780858061372937543965162164889396916618956629093676871771760459204163811914035429367414284149253235291436976404145918024508381187281522249085050713854244802627208430293751607401530523706399434664606050226890728747584338079736707107852810247107344353093751641087599895949116275808971552503564746498176487971924495230961894970379654886122911748157153232292315084833099054661179953857047050621211304224442035926884111621420732001487907685355836904247906847941680271804457741088184058863645751454784031088649199759520824167749395844820441125960093948124060545112458025788881463422481364968207756402657130416789431330923604797399815731892932382552311472972452989256915616689115884303204675377120220783888927400421828412034924284164103314345248593407600280793700079203689850396321551398718408865246579946349267540937483252584646637350452084498333114067578152229569989985994776594154504430166938024184895592948143109784090983394287698130099633326616942366108849479909959655313393037917391602296093910924352504638412204446647412805017071548249472951718027381240474123851729697240297827489410007683388688624835811357632916848101155220870626131922839662943874944862113888356041112562925724929744306650147265125045189678604237386064924085774907656888413080159021891209326344590881504624348469640378362975864708622432287102044973994888425772181028307523778191085924981777609852271737630910915834573515512667286887574376628411871739852342625072374729223527457747031588601726966641323005861123705512514876391287769245311239083884192218246010544060178801594612725060455814268497398033917806172325049603420020946186627349927939971593591149489980887992870742316095235324346615803679322536299710950252204775750966514553598142330493910581786099545790403196456596176391852291403618417357025521132501976388384849350670676097060245067883725996327635075740947552757359449264525502660468197532227281019831490969158133913414689970452523851654252056091916249073687042095434148961096751774747310123008156053494016351835589739827552437810003687317014076131114151506366753757104553463329409610228062156948210554138305503211141085198908509765560538722656421029012990598646700257412166582264668582849665330483118784476395657535503842058555108352001815945910341064389856409335520859299348462101936593812979860857064054568754022619644341726730961522593189020397074390657278094639463228822498360877206420631727997134187175258873320147038905741499947666121419951913217791143627793857634685034593634665413512228021967177806715029132504727584360436260701745256211752431775324671364017780772183554976050406500669734891377957001213987577990366477660676415905491904143493549324254438139715539452986316297766929694608827012937799088621627708947189266259422989458328431058377036238350375065434140299181030570577692268984395998453385449661813379132977236961453789055115444077175497347022493153701145138690602685990036868824913449823062853187954777506858625363623482733562590510894460850503027022952344116125109533018917473585079212877153753740204717160064070245549587573447693163383899728096391357916300103720439805077982484089055953542707706383985074192660698715250688448445495202514391722595314572553686710738242801853288026141788150773415606030312658200446658350723226772405779244186760551051962527899249358901588233780049269859507736783086713925668086816954147417488842696270437455114006808134748641169509479044480115352042823703318408311383232434769206258773656203479878818862660295097541335152161854626547157039741845068281694716192688695042671854145320260598164927540514187495872821517481162854193571453671960316938067039861410926447950104164892952386400666326737094862913902032860648948358502299017457732646944808934374011188159951146212046294685202537720405851805850394378383219508793330136026051006057860117480810238844775236933617762340963228689906522813998091321936368175006433936395382307511885543575487283277120013352917919808021749610733854715351895809046605123418514735114583211434885921701641848972273146026313051735989755924845444994306039763447360927066695533048364300179406544494031769515425613477556004282026398896148232824147026572336012313167613681942119026960384496480493315348713533727629065875490734478875155165213609720734274960802044028294389298910053108310681938663100734186007647152812740825286247639205475825559173061866903176445215741906005837670441988514529588694953004789962883655470546477031676075715195448523196519546333800890342956640731706761395461469742931283936664340587663580143532488602368331844075507124130713477595192069043405747608776125821329713580278755201026897661906086564259264966138346268027727718099727126231460067396971028823831874439712760489750679902279768783862370626770688317253745288927057797016005711287407786800581802455787258852869284561510015070589942050007213371053291882850375767784777199499556200269557861569199196147450086506028166514522551320132354294513484351818523225139675706500701807988646822462953880721307411410093067792177394124783179090594200204745812093932739812864096377953512874532581790385455679633087707113356393702869826549416660307211082942156861136496612577490526944883353555967860673304214007841636658202317035276433617240371301229931629974307780352973543700837348547733682389549898599462746953764203754011299522993871472337618724660009188836384561200756292315587281846390531684895667791084541447570541783468332241613092792146775162537219925923973798937079666742236794958899043121986450541069181049516488935361691968618899912418950725175489525494409885071719202898613514208576689458181206730702776357399149187964372292936960632627374683144084873516379469264870092763415604510321399922133534948959977825605109744219826336326677547533820563848792592176254582410428978170146143992921499671506423243300753480184821124790452345252714520464806305859958008467458324383336846843198665795504505934059294053742648667660236551735127240746383573958504768412001063185673198367115084112811993412360986581290574915157669020798921870557967152630021338451341149146353307086734013424193343101710570144071518744900788242874133131360702155582613117252310162123675845671639140074568988209578523387314223535094261401597773506050895232887053551556210549980302783907319902239758909358341016293327094758238999449122917698235921941818902121405520088090252413351469678497086770053975001714403173014983297158464814447394395340205908712085652760497370504570286878392318096740189150408621124933497087422338245162358037568717458011113413824444053041224298570352097821336425638454454849808010857054730322761571110735911386787988518205875712802904182864935788346729921837449471574341780094810996826848328934345833931176344995564451087545130774292621042013465994792086987887919270566016904379567243063122029335449464850677046503038323171431890265658018184726551195955223245965584169403955037923137212930408955192361479345509419117162637243986182047651447966361379447416485097990702023894958773050967565302424736592202383395825454378051834209065885801775398536437348731975006735340451555989004257990272270336337210043203774640207093624450755086723431581897232217910388339911271679995765174164847006093939352736015292249376917563795199256451312738141905146003230041518979972163224936023146025281308635057857383880249572884634930872731944072805583583833435794885265535541650199508190332357434022777369353969621151343193203340726408363104159322479156129465990476092735571147801056296714875108293850338617603570640533012760608434262322152118874182383148568215554607358585795322852328830195960119137080451532432111844652424753740672496557892478401829522049228735464181451376898304992044343578699965038322551371968483563206175616234567883619273428051506462869739737574391329341678088976479462987416976603723252757895796361893933191440002313440112359883259958432738019153485686118138184990074700849965715936860104361533510855653535669051260346920929063980701305580090536878123721361337661954150559637343651633226644877337677459310188826768388863451526622880138399116022853778282597085632231874933338462977994331215957317637053384129671707785486275976054434451021152491251923370158662601993195410446215293131073836469562830791801984265577720908744218009489018098191029026206708092589452373364306372907818361467896910539753304955653457297213036783321488536487340169780018454805429837299196784013739671342161822883542007484655547077963071829288423219501636888573393909468300218380081375861386766683357748709314380083056424293609808951515413989484455861314800681794445693523686930460633908457432036632456715017102483489439189520580178700666721588575954676712972865095000604603269850416644248873022499336995133481833719278135282545124166829297704480426167172444804638371426874872752480886538357893287664745006025633641038398700037149842556176927386682018384643303777266350289264746813498400688460698119221184510219175327887189257230056330105638947395939765709835149215412719222519982138585195879538980289618995583577093817020043271940845506448094336944982422465962154514183322978352602938223957661239379703740885215215696319945956567118695864536462856293290353899173284854235620273969076680512915288684867376241533641403694729787169490498610798283970230283090363565109598064632455895358862875172843439423577420112623154814222778489739429846073474099389698034557717618864073586363627756394610312157422259050590187694461744567162512795257827259690229984895718047932725120712075713488938820362169361930326427531681381172603070086414127209137276717823069099669234663379518246021035432914652563555332704236415340651318040794188821219398547619108168460070407973497097853678827170446714124820375149388679265079374124567938366227331857194356963115636606558880730413278548553339134415930036713706570359025274214958338532213912475845693794584108226293458667042287237209797730576659023576726784222296808208673195835525139449457584694529916681248090675052189197032907893243187906334124293275338283869545446774727751512885263391381708352561277673739356466045158819830560537859879509426644249853357141621912987939803642840299312318441385081030744730629500017890918182705646850909159018900189216209187076421604106827251945451008058079694288119506042464234382777604921936970338891267956288682308334184893984937876569807718425427903838929598427726925064500555046157429321736946905612047234275785654599163024635075741199999835543170763761958198522320149907713240330235527336870054983228254921204900872079947190420767069774847197879757293871489109017464501569396797530340339577626340065949115886368346802874498246844710527423175027687708725340928865746505226125340783248314034712460604898492473440617269558537792108371334866806554203125164891147671051370168452043121530065589968058080851520267313251217650665920802711177613922491840441989537897178047495724600775443370991291670004744652637361438057519856818644949336117273352137707695950663983393288569089813823023501963904718566881303397981326190333096297328491588086079902490315688956012240763447451631738479275007061758693589049714647068692142513505925985965221474928190114261880661465594261900699625435369157221897927065061588812576851790823011460883031655968658800581601692910678290000744402327177724479679740127630913304581790421709240952682125943028724866575210862179360482809778509929774289382059082020925558064088927391287059469071870865308754533308532557462040965685668579078669097107206820773001678519388694381638179100325310314664611793376848403414419041985366131083767417513246784339767236394926192800011352353246079036816926768656275468765480060254233652396328404670185545915373250291158653928612695109896412121741179239172176904093898517846508029949859156796311400916845125223366345706395661511613135078601536758744322203802594551575909741027255617778971590517514883787871273897241387283308160809564019123089783729933725216270516932938241544318352243402962187970814701083140866576012715314406856797033646525212530160882982737525561064510420722495552941110534200248797623197003221419440560602998031016638109224919343957284950391261379751937230576256025055557054771623102498427605286965407313243989926331089635100367382308585605025793133928124285281164685999062716214092210421724260338330349922737434500105333260919092845346914131642500935226272855430635137832873910456196255062168909989306423368903744127428818152272338226096485529559991316084119743697710330782962970659553706854655728853724494648350520183775598823587219241580662113770614030567196782129147303249031568625955577081252944518117088389201008035051045018857157150997682311983546893564140035534044135189060297052878358342097661089393086304596802604298062993723971351922451247309506860987471581268738265861109087533417247417174363479096450054002217583041862712809532837963344561013256376238727240118230909660983920922178617524260801874537344256433297044064811395429663189606763159187490631433203899061784320388806867894206639631813806493052433703532183314508433331319738686198137076780269180516724478044303730417322110469563255363834798301525628885631993252453046879708382624976174282257233353715203765364446887539825115477589870759078243241797830491808042911280214138349837349666610676951188279985004733780893161327937445505332521090968429113468187021420751991667902516267575400527818010452447961803530247436171098291103122663588644296756322543528723885309747608745945701340978703438647520555494530916570331006299675626813609862749785094264400082930252939106259831645902745251348074683449582205697415288582109723693436369689486007062180635500880684591869354621103913687192555150342263739560865847797172691738841565240055405779695692429455400669092223557141741233335935424371513354044353385226461925049731777189182191551710841330891517065535900640491103298277260702718559989080186182540580098731868557540322757790408027524465909440044652065292696285751757414898329326929976597310379958052518692273963090957244405167215290994088152599438490920587121451306304225474157451190492530259679075071826293818899573337150722486056175039842087579478646261711552786405702575314067047432647519874713529601574768326838537841824682410924139636635703792524018316756123995395392529945602288679760427768598553679707105933416674841700499216881969810557975805756326755004749794791336085374764316275512152581844272182462486673728645018647973794427623518545360791661829568255727604722461356423653802791671142552812755350354026186579076461112038838875779844722757084626783531423494726352495300561114802072339677616177652271127135119956144169896312635987936298279518440038942392507410361103722162653794648428715056560111412129956130661962514242562278421322187292090272565784541836116327454586366149768976169609908427359456889710983152352854744439403630832184252573159293037786229527634109821746052557964676079551541862891004122593778831604932062779515979617075781530310378415271547184873386380365969462293495976365187707024850898487192665115825721315824628795246969864416848931752748821579582084589034652667813379948450142256070464463070584397018457326000166512981037826907512372048316203057933273538550817840142142687154625158431187703321600062765899252085047717023196283129663851923512152211896599031646948256587123676206060085143670635744651016086273475059621287991178367542077379298557567926703381599335273049053843111401727283281707398355201750143026355681476092457970922054282657309604339835537676486261008058291648003127178889785256978122988278582437889007996720787924770468190778110638348789463745597469204817312082511887369422139201490297722891824456700896506250955745606191170674040541569567686832199846527876466099217928505249268153587498012094060210622809509275419619782765826556508701297007616407407226923136098474767605183142105150840578166996562976602508643411426590652777690885263082426853255648682028172170187800166017745530356276221152651355365611033310783628320400135998935308571532706178335961683207278544198250515478243662028951468058534611121432562137773060263040634191657081206931396287176840233467255071705179253533902282770112487926741026095491086824924816580966150614454895770845504196201857531893283384783577958237283741971171938699389552680039054678728715377570221727504128648565658199066347225801348084124931516408804007054389092974186186802585765655612405614016303509319019902179333013987095098670030884090414544032578331100416479699139428233677706240118296946975634921811690163431291947387256911033327571681258824411550973430513243200601202892416450507482104864111310900835033664897987863710389785583424939701970021812681976017173097617876818959626693214414449532005679893800675383042860185872572241044406376007227510381393880376091977011741621154490241280067794625963875589962104549634267346124096157981934675546794668232354541855953137901951520836135670478540971124910204455464746546899402911297187673016708176933183101918597943256604556076741151844244095441016180138785271175911285287119580677071497498114627139349614906946949599110879237514982120140745205624976202258821409690530063384913174737442593604339532572608638327035580393743616301555927468417132049615180375691157727841976399875733749900370225661949469723018143756033823502016072899154579454764547789751040853853305530473707467281523731695026576025461584732878466293285575754574691391784400398129935716005841441887027050180168570770212615362927756114401466088228588206354269948386206963020277555362302524997841123911277087942797593455465664580438648223629291143922458046072858773339488259430247991912283024898690358957641237777945950223503968757250861454307929235233775625507254553735171286664440992879083545725251203282960349517207657805792064669157091890579616275601866535264466931429934576154212980644402763882047460051534291433425997765096126495952118984724386723241663221969735734435828251571269837568381852317095313072514633482086569262175701916831019425851035799521502932801864679651151607559953518768264748262974690580714993520941019154498852130264922821040762333959554892175603522609794778338569295044080934377537881725212346819558983174650699067198784326155392757500015827960656306115640012646108525777919361831709467911836204479338482792104491430606850253735173898523794133943382649939787267993641128066191155377744281361058004762717619976388907476204857069229452680170035402545302764743334052924151603021655548482566335533654811081894705375754981282657841503760566722265975901017075482253323373583197844002523967293164370640832055428411645853285565578086659850024851603401810712415817735913414876590339298806747772656488446628642110219365776077561279685108186751897549187592362696267841624646082879400135827045249827010746325377759452941556290916259638578836446062193689752807251303610147363188949504794853538553732983542762170968977022270087565831287852108943743930548412701701608571571915140634312418448556101100044967709240801986317010126141971832834432671608689827513955490796061775229970241636704403801864187425954937472300534057338260049931214600375633407418420164707999219296902955596190721109521061735187100941831954943276609326539532220044569806107173732984429331410417623870180546907633875045601869819976927876735292534405414964205222611614712360458230771836202374205047985777755881773172014513943419718910136591940404955538267908066370522938296388577915486715309241083298379601191059850949877641211007149386942007615691540934104488542784839454876873099359556577385957413758532201931801803062772585825849837646552853149685954930061587868850863726941801310538864636995636332515663142794162624289559422615298157828265943464016729979100957157768750814005712015856469677123432130073214044244522152337910628975089527514606943151215812973981959434075225504502732466617365299069457877614095052797852253620276479411458315894354966589386404417931830339347712635427653646282751199655876191552920990105285442750981680424753691574004118038888529275156191364269805276154022838263251207318901365670731386616009710903020273438661152050396103282349438706786952502072379871063641437136821422437885846156325218096291076001518597292891792905157490921644398703498064879859163347132386453264549228650561908138713311243059177771037657350377660983796933905852101836026082075297821318213817621014511357412825310498956536726684141334967513591034151607897864196585377689045391413476843031210444833278584351133391663288448556663802228404643965294836386175945000754479337827148352862768062338260162688419433178323694561286788557492613593815368213679907082994887308700010376738700929785751880087893000853632370975635678706971551288357243472402948661641285871264289644980241708583528494702393778103822038887018040851941614512074133020201098957502373497078871802674817305048365533267961652786566041847787770345683291854339733758210660315970826014623741716777840056832000793290821849863645867201273310300382921725117607272815209423028229073651535687283995353626118002709681898387844292859858122099403717774810456718721158590690778405108206338168694393588284839981682862491334038827847414812023203720237280881639034046963240881543072148779004930310313085247882632408196360249430328095198001454441784076501607713145023342316893662872411985055389145867844982463658004811748272730163395975459380448722496471217813110963445248777306538906659946592381837393982560704821169335459540711690736623953722704189737780569853479922855681143824692512898186746985918619716414469972511549698251968341860605961632506810541422760103444835797047077802670603727314934248728945751744428328814318514857051628094332222839963643648278885694815962101318193180108252178235497995228217941724356901511358641095118654018122357033517489143371710725900053884550870923225157737749572190563177514526353091948185902167941168351610840557565618696762108816034494316652546720441542765709563986215899464181213969339754781941056974203095669837932329795866468920520271234079117100946094050848389250244779696569328114085727666730565054081484936620339006091641940028792352899880187818472914369330329193112080518680785742844681750754900908892213811834114220504714209844675248733238742454241651615560069559563465941903853811183952479237745643974894939560515062825350456652238570613678628478206126847934192845219057818296011920249826549746453786449526268442176865599672378441793682459242753602081199799391831929517525532474733336904826059679831699463652982958057096714519363077527304211270703217111334287296231361379374517321888711244509489602601864430889152554721363065891907446477638526370955768424744219998497143101690503593246089255736450145983939881467889838111176443044791401992453300495285289183754139474917284444532956152723453623127669110735328485944889317680061668153892282847500971683123961251252907120102823246478566208553580802898205606173797115463756609663186163569081310496434171905938629989774325542486597377936914488137577149587529411188209223235726974791774276330635715092859868047699778114350759314637897146145960136378128491232545605553167011023961816959750500157859477482817383988748735333188136451213160302298863879519134381943564973856266353987032536484155277143412915789697424939637084582569682613756385034828148636425714713604656941268227155064327756560757003230921797380742341634271672036069930375576044683021336705795591923721554671280819342595300927317769588957092282201052464026918757481535505285726536855263130533738947435398466345527343235456370466442747339130143492394618690649793670716146149723600917827511085350606257701350041352954222638021102694972796436843464961303459993458356539570719221429044388477620363109095271240338006232671351133276296199060586282483768131258102175580338123805714045413042756463847318952562701350447302138451724860360290973105869373677805485324576446081620830694513392723629682361891330082371347808025506140964194009969697801787408896293140853808483973427546038302033759473401985537162142419008467813334008071028422782638926219834574524765832725571757629836829019681286789677828296831262562253947969393103018492216721053658428366243893658921190997943133498745729038224036053730089339282623729629481297249897050494328518404952375933710477868080496361887828547325120749418545367303195975730031597138160574331625840451083407452383023024675784913539787164945531786393009448626443244400129089856752043485196334977395446322254121643056197379431328271180372233914251794103220065195583485287937967286435121499765046091466578831880412695277229554254088346455630603215746950064407544574194105874674675300204578413983727237196061175528546441388311551067979539704918120556065936678200423569679404987603995728486940451299826139638399040232558527542761434410520987641523780487069573383431982992038441721399066660034735627447222218356520655949968203253247962854017020819156916830350595719369827162622393643317322915414710790473433132531245595206068328623061948938763398046370401605920825944233945983774901805981382163706655453431841234431184012193386862391162672863031778567494829839592178215294604082879664707846263482668430274425647898823514582266532380932669298274334114166556251713066547376338349495810227133259080982345554538792057271377447646487033371884811200087839764410585279952536240467193474970776158272605155316731670084641683474845278060346859408601029192550840910298856694390320992735796791513937558251469874639842202493861004418702707738865151776616461428283430499414203937833428962900948979414410449972732192609765473913621026269854844003749841791665267350363697357243590874173503756919461554935122923890279684086425143244782513336095539936516543252694669693093614381900953257306129484051262858898546679924245204466778281544309982616859684823011837291462981268401689085118111456156643055116352901373979991298724338901523521509404735551148049353147093569643448747576328423413506738416905273850719159013561600243911330984004259055598232573525170259719247426185331306395541941940108856191147520258304460875927447312641307403795067092873983822018829913403004591828644055076614502464686729987374956648841144208298592764127770329766584666636038470133279760945507850103175044491229340492829825118841429850272549595070393502498070810202999736165642747814760185080898838213295612554217167991507007609158781104042607012752927721469692918172819080297006402602375062097531907901168072566884338958076587841519973339702485356137855019088075334640161026089461879680211001009192159885421500806764248577445182553431360133134696643743818746916938925013123589071178752830663202895461308195972915575619550099410430018766414492067847250735186486542579189384720733149663754417973472352459101188139417867520160674766065769555792545727412464986784106910547773144098550654298090663693073789264431558909620802716128549452071610022664737150467739367431986277768783347146671205389495986266963229059485285201549979204253324967730484477399757324748474329524191803024962800108443621294503366065147162158459892710886268824976423879708367754554737060191281290706880290861212185869114691579860706654182799860929904618645190122261063359262197451976773181281733316537676315439663851585947172154823324891304104984778161747251547476906711923222389697396561002066124296562081398771972416060956088443002075543701095040313537242734417805398287632809585727056357943381044685436462052516323882723758741732905058777743388665810446850763700230476930338180454373314347965856591911369804670626490418003765813228478330888657207764142013877164590232999189086485107015595691472436727407640228592696510977359577593168153109862520519711965547985707927363690372353205617960857334681039592794505575701774350130713312594651125758419046102536523226286657474435171136515355255267370601566416017247701349219858930692662843705576440630657357896848669661523090287948504534942653669386509379870410022589279772775408815637188550012740642717971703359041055933362725071478430441372174553624278893489251428046954238667490658329172228935862620869304352402187641762213236863303154764421932022854228033822451103924291216021708736694094408799432659417468257802327918248513881170101092398739767435678166416866954907853012310295918585198415989045418535425891907909321136241168929511173707204233263497312019607252940504979051767124619651517072725335958500081517030197126577865400811060896630270240541828030341287449856395978143549025212024359600425236957879323363761922995480762367143518979783769785864739219363376800457319335248973054866288033507380776496700682853933756517107556508141967531090072987599184496252413036217776442296627721095466755246022317263755232702935550851409603766046597446064643548694120386162214785650255077785063551241472057428659477686955807585211989642864190845123828782938069980526174439170545459002471411213608301892584135395817530034328027952583718092794591305164595540675371118042640243093916012825783153828724281804124355704367885997658800038126089320199806530917005196416894687695177211527434714909006920511047197011058188138866258581068027300743786957585613469401557155651929983547611710311078281116655512601762727033768047539037789980904921889489616050747667363103451640103606511036635328004048599530974069837370761050434932526877830930543139442383747986638761735849652523171771333144894338139082076168276935204487089443848633012424727417408782480441304945341417333761605072832539106789130197765528817026748379030060306434099546664107628795587814421068880220599965144393310593841828353739356108077124021086852836355816053603676789121114342189088343773725663159099401814473046123151721609045103269575261813343511838879156513458455145358244744401961401879508321410792254329569464900797211368699344714494915222490380126531926125018662337743637236246060192643874209975190657918791407146608865077245710564792626367117486118297746051241605920816286208551555738676738633315572223435863428847168290930947191231416480510084293278561728230442232058814000851582150151132703629587182307733804537986818642625277198004384487262797751727661805357842248816338302206571345758571351311481798992578420033201320056875449990492302957092970299904061727272688048984687822443754424580504102057151926262638923227899595650967775887516881387889213881610337640225496337614133172531483746805780990563264370840114973116860773985148705178956269155351797903715822991662577461465797914502729497394479718013579455759002663752772816779117466651754576445006212801450763669341222290567789612090301033650194417899829532406385435015183543350263813200668499716433542917787523671923029035493517185375224778502942351958115387807929243730462637395135049331376947785303511859640737578826056985099848402223311550853938601984115855794441856271063383688582504236797902863326839762605855844845946374248725687719816566004189300158140784546520042608417749436083632238791730512026103656866418657977961168777998425714038383588346631857334679265668303465664665984738543755641275429362012157332530220751210742923083337763473970331196039713000930185825524768663007144890130073367889386542449143116620424058708405773341180411922379462533802911732963843572074051730586571845321351641856668327723354358314748136587985710903854652640889642829969099381266645901041251351521412489383698442680834951107226941056922588275181732445404884371010749921452722732064456122490240687473271375574224644428938575075459833479833910790868259554603872195378223299453739334196529183823069648911230151330385125267077481180311748399042771163773013014692827359653313999655265673117469239514022268127447300926964835915082284746484036538321982066613236364041216769665100298206771763957886000037862458562813516456084218088074518971964589316874697971383399750401158408143264492783172599746074680520488243663167165166280071165320864256985653318933119789563787022599467263465871463621702752929552174207696899290993154954893979989954139615985555907975007249275273447623363902928413463059655622172059072897483748804219089237404148605492413834107037466869574779622887319698996920531393357036806610629096480722171172874498262180850685469914315295169225429214462475025722825655612878623838852323840052119866079605170630421296199023627322937691387970925293761164755915060486774612560812481431065994154466958522046769010148802938560940743291470971608573618734515758151637526593115073954834327861274937402681897521878849625036442017465948413790895330223472240206501163385452713552606864762573369115302319879186200689339264990129605109460444849363293465614318985010350050150095564986238750567334015065822085121505104510626135789684086940893524288501773550829289424262561597380683064267239682903736831053880142797126680165888754530035367393754080793760646988715798921160151911024147957995924242154929842523639763711345930559830930247024939200989334918723058507161799229480545890269298632251822217151824345984328120738078811921884274921455514403699856644945351609403006608165611976012022566148619956107106526796511316015502190084195493951456054892544741645516582424921759586058163928031121937635079154440618563051592097804170525492716881464165349368957495669300115045663185660621932716117746596632951207835880260427141268031992971922345709934608917730836793474324914181195998798572744343870634478961794175969284963857472272669831881375040601330740847202709304315330206816675489515947440433024665026288897175372512556626872376148233753016737869579095285751234134202120420966511849186309336040434449116623902351805275659536188962135839057605226615360776029672436930434645039992916343903022235239757835143108771857305306717329679162410859463140269970213776969955901581376866685484818356469846184066564925464515830741572483683880818695957169380505222228539233979567203611952592978916825310524825297275772316049167802767175576296741653669109469377980442330792500893120441670534991741816071548310454678272087845618503681909896849789296225613307652646241082006324638559001416443905406682589578848801412709692627663061976049460583181390698493944769320899440070854953219586232164299794847808238017178474520923855333773277335051705442989429368057452984599916382510640202397677892564926331184530873496075003895881573950497916003177574350131196030111613894826233200804622275464303012890020801601229282418312212744211323113226278955809012716097806586945343613866300419730681292731782249576558581239527872533527279694087697389489070522192771356451935099469641886123928876313532710931651584851956870986364844389872468310787476180053177534596861721289572956852734268623388529625429743056038422378935508614732803799135953370789098661412417451946843352939520552828293427309256206197578692257979370294847945323957350556661982416765428356276739492974215356753328526860868380741755078906288246706675367738557332853322216902135390515831524352471600041526576323979352700246815217036867623281697716207125360299113509252522576684604056278658451112134330874123937497500877001326257252527092350068889805455224576607679449076539124864590064832092690092030615964994591156196478485444916424160276557760583316757236107313943769948186358173992449999425835774481206879165248394768449854616598372565368495906144227829006373189602395590697513813890016129486058345276856118828411669177316402877914361661277088528677624439439743873179926497197999312471769240379858318147028923900361249687783548037594170270816076878380285811785803211011369633377345769699210424206344091802792793186836528154838479726120845147655382713918406550266683566567948871624224382236949042751100349809028107299822599572118280361198398538006319287064376551375161933127369482358743590941632977819449457812962377851283897642944527224425782839396142192951288007053819496537244040175081928795215831328136818135635610180710418312998021067216710769630514456501937172051607457670021122958238216081735939425749173740996096170507391662856444065095175161381835089028033136535601128968624041433490545857251711662429681446328756068850316861254545834087729282741712585486273583895575778459157641468165880680086949176979039087257322059842805007474915275778040261920410234648400577087716214861836705308992290517291207809911807865456765990545958916135922171868639341123827903905781067498968722739948816301167115679385856869556446062565565353549823586196312942640309655311136517126104969912484363066966173896750735790067880952424619319682937285543175795725577861470463003550603826491781601514254345739303998648229987477884725224673651761092249107909704246710838200366586812179832987661901125533424613102262610189388875717129935859655209247111153421660018893503428592387973481732310199667112620956932727942674681162173711239871991143721459177050147764403581759275918506858207040372530482080065385438427113272033401397014171599638481161568263624313524144970466701357704863754882041237097902747262361454571635822127829282242711994824405291599595633709096131454467922925862030532971213857432080927686446695105081584014826862608673655794609337691983314692247139687578143095489901564247818010611212025381496143257762837497202638891660283634584650770845013309266350076243676768609246848625430842092518638142881449932139766091787306291570978817667148851054459392629152087994506351627760817970649117992887048814125590318957557027786538614732096933193791265728133915958621105934383512072949042450608626349787585962198541869215983418279479198084441329765031870897009185564119866436457431144480876506857166111455939060928856256599079667718526560615638275800826200543637590869051025433334467282441411511848477584511363380116313236134475754555291623436097595745526349844618255930417958994959004590852871986205707778332642717039757369041111584049190008313496346117904711001288463296212032835570253634923672803655347730109067580648970423169950027551489876198873507925040049591821122164758032697701895632405753706491228943797313849735622578113499937158412974841082551819269540719067148876629274886881426229310304887186692561848669893548460472361266500778732895086837473372269006737635226778062204319536315975920354900269766075653460293989453321975186133582704381031814889671007104087105474217328686068270007577290223898133121047683233517539273376057045649646456714787017697853012352702820915011446682730162812432245057536891207644636104402590031299325401680555673587626400805216193233004417122302754586867075728678365892836434002752396329157554772123411027245754622552139167327357970017717027655436570713978144260751283287882040173618762038575487492745015353818731682470449546710260366452278502149335578710693761186313200143561980109258635525596035726330850872266754075958463244372337315221113666691400768908033415217402534088074778284035195440936745784936356351963982316116299168123542396248055332260124055248668138105947085693804275481195646649699492060343476187126787814882055175056534124447002699913854855394522267482347319078642917115245140514132459110560943501289160915317217003611873355438721631069296106715695818415216916486551448008988919500474160835369879592899681683191357193711939847595482185338252090934138063965953941654961673580891124326784661627941122955610389914496452177658131288791620081205176078449793760887185215149933287199998642747393106030337608587935303332496316391621362465196642196546033595650846748018768069839221011327700027887621344472146421400015021099510415164492746800740537410811544427378688132518414203224191297819766828729107612893087211224047896286531290944117541462291336952688123393600366552274259912479811337383832693731986238329677621667234536874742477611635073405203492335724348999358840386433623496346700951076065209754057502180410661472274999853764985043433519752254619603796409620290664675120927928765992369879756814101884733438603655344276479434328435799354836147791827468873782025857611337155690735886742034310302562978168815980826541153475015336855741931156478617462250775367542411047630453436663565945145705205781972916904433420277901840454485787568071112414366831686218748596254790409331159044717921216268789058922398887545690537043448060149800567686210511495709310013082994730281938845797424240853122226433399860187019516408326481924956334769250927161979741032083061242619519315400413728530045635842306610983117194633693637570869789621762552478703403636723945860876566125176937070611765997939039838467502155712992016288061785635269182426471693363386424458152922554853917818065200925703627232460363378874333453592383335731354477746678223981751549970416282213054285572284201134063094800534605704436504398436389506136979294741985982583974172764321371043044363052763143355774404681848555277263273275541181112149065756078553782860072300751465944260679025249423842916321303591277308888103515448116078654222718346117314204707170877817875102109776974445016838259935772868098169437073826344623592971592434204650289103206235192870204876842302812283534759957307052523747763560526636358407690600978698529863592992477093993363313551330420096225201812983704656349586120948492073926697896742174911730753856267715371002100474251717775342205071819095631614251290347244753133602375819623530776845067312230632962589355243818722434965363099141985772168598515482743941895333398169619531348159766799891196869348156625483770217494201830823395593440941709365198769484219497097677021973775988525144034768139307941119429046296286462789473413479196143178454624876841448324677654041984435416845486026909718066462730593453923031272526328014288224444562880360301013621801261054914416294832712418358317678888001111230425954594840120448651943679150392279786625577772535133105319055768580968169956140790927706874240793137551599475393967504281764323518198930696216418857203583058366852713013449234483215622992995276554628695102256629641954083800998141539985422828212261153132233857154708046366351356826760819071783548975003452843501166369501393123555363475604229859641986129807566348090867965217055228622196988212743392102128972281583001416493146701970781544078124340100978053219629772124515900061808613694545192165822089206459066995422483023787731034047347904061054981304882070803227546342087448785672552864878629289180613986059243272181363831100310010181824413237329429005067972398245641850536364049214254889423103931190436974905512970888811997780787109920935066193959837656345226562659952200557044627127184344518299673719051236962244034114096390300979717141112065135551902659490084323375971268690077232958254882119265877524855059840179588363124338711936368948683412256283056168812996719808457467063249461239004130227059746463143562504272733936344466160289651308728972991167395502627896186757788649493544324764860257181911821216620815811081016802478360194983172029880758867648773651667132820202291884647014755513257743898173628325295022420875826860589152828930072649515887375830015575162688176512534765952741727660359172597210179432800323665340506418228725534213026913113790561314047903475691269422711824929439567460669282942943646991378533145950844586390769217848740653382022548381499606983442391576890852159537733838374851771451867777832286687805546176962788206529882750779173222136357158033921911143068179729470335106163738343642454324861842372429338510953268066028917219623971516604276076173119308047805726461892803860277528462589223253176794362617792649209411207335157647218799194942133535264000670609824460059744145629711334404413397488712302747193676831504787894474541423183215447748134575599181575147305758088186727934385154532131737752079032992289303850274835821629734168957263796746029185894695994807399317061683059470951961807811151900304658661841923903179654726943028391272560998280752452731331699465736071565119628147868245327427535126885097441551505495442530096247429901751330135010514467687409595994561344973242405037655771551978361979659399735276670821632025290882462168442641600048603634544163197900170679660431857285314325059929519440192756544564395353572700594007738387289743909798903356605944618490003615270692382026060423166553240529569333840327208269731630058170243901730595666964336663953249846628403468503372827943650317756433115262818669579050237097047634209846737569050477667936786961817340965892525866446822283385434477322650749032672123009240928059130017174299033114213037038209700007789477579607089322012552959877828475360705700418763830947770764646916713225695502271359644184516360242852535279685953032084021794202022335904793568128114045125223659099449644575861709953236765925670808144501797237838463853714537512288934004134449716780523854851941612020732932894590433611366410484333400358138626850296826390659851875146926197705234441164556805741369601440517859481484934841770022355147302577712838920085906378239186055577498645988280397480116217344861865205202724104016474198207968064291064747573032223009965654732001273615459622065626144811149631290350623128567606012360772676193387950531454537521226980081782131943776509324583667175671215109936579958252338347449917118574438196517701813612794719377059827284244768297642960585179738217301179209721487360475347349710927645308133600350838540711393671377254901204844680249526935649866713009988342114771708538498797720287139132049407793824507059760664273936110044902043239478020743447304749773377821135772652496648347879951038746262353269844016994404878984444785360733227499288342940742046311896075473373241756144077289882068921288897259220350452711837311329774555557223539295966721701149263429441418602721758214208093298789877811330791485353525607084194096708805760906674597497763406573523460990638165760337429788364780374216706256628136847069530456265193617212725823310568551566033532781974464047727811491393133904242181454505297909081558354702792747121415134961647553728453197736541969730716650519352709489512892480348190450249677531837178114986468042163871030670284918323595754842285805108350622733157011868775658318063848431252532815797330442704123518003528662950749494483191428524674381293850941516613572150808856096653785086173184767319513729560067027968235302140394564392387034679117431296549832081840120724153578116763873062418685677626444072964958372067211936320677982538445912061778222737655490866445982593231157466431576141048765511721331293842436442415156658046979396236549881477343358299230205623952248564242689251889824682618018998434536886134784884149389567266829655801722973947597621648800507665052715440764360040860776112127238949537551504990606975788476641103451549971182867568322685023284069009082375526997334937885677684255254427078640103725928965869161487863915535650978139411391945213867522383362259999583230072624735797850056279003599705559112950457334490306900677601333764236711092612617678709497853890660795395432719448107088818094834159579696651649687314628872626393649102877344076260938608048756513839697517110923330015883797233896704568344687869697242704398692478405022266576807342165085620718369333287388907301721471895745753493444697579805304692757917141554510136327408712504876061895939292301678246483793688031096867299750987863571899081443979284545177056658052423226434842160427442050475501713655982388552599456796549925345635808391025918573888164857936400055205567211029564380481470929930958448821094801966730058282865574150108492754461307393868166029288265123540169402605165547583436297212320643570068372675037830686867073949824702116171865446546920821783338314019514706301375329739173638651054152066718156119896909562460125930301952244083821044852519047410137373926127217090430585587594227545519785662067694959346541787024887155666196644150469519400410830114374009751087933537895657223756886049102684871710884600016484303533634428835230602221309121780972716667104440460452203193472979428434411286916588133831396254587933227804070504237524621809717316933115595940115610511123627060190219994612074203169281606568844993845494660199108891379526182618965613197307195787096088207473612334122206163002607744986125743261751167657267162532535335471647269274659871046396707204904012409273214642120684919521217251820081784686413186701657842183421773088085624189787711343083048041053576328523125268928459129097001935107474864526504883711247770239741509328008744433692908576094949589027498716679890468673330544688034533922185326707401888400620970951666518573297508460139177741589842862636737936347850409482701822905462324018197079177149052945014992664011033533576769868945827113909604112078526864035128800011009243162796075653703191160637305893505069641914326181900861516932378671890380600965129714914697786350047283829452807573335885320218018441013836700350042235007286343969445953156715924487639160276800856353451852238998048090086377203250730151826757903120898835236894275195407088272891461567683681408608213925999919243249151869110464982325860022076033309438913153907062112798418133062043404302067077131271268969509445533518476714018353562034167690628284470638712075096541666909746094954909983025551351457773100219304926640714144562302617364081482133534233513892062659680133829386310820455902729796856520245453767270811040147970312165277740284151079864932407668334093057613713260589854197260053085828706016373886914411011820904838133272318834748798196583527972182697757619646554440038568489018398638037621006802590896411761517282747599182875481144558828035791723833819277811851422704024191139490557663433031033719818687823844570107525577966502227752592629293000204830940669321915342606940314667011358834274714803525647779128102565850040881488648874840873615190479774727716543945759558283465487036791858605612837711098743308679557704293192172147500053831928658335611318388114046954778710768210745751606041753062175096951928922677782939326238291976506102427772524925619654611450426267732419475710401228639696024619538842560645228875045465607679605831015405083385944000732486748378147793017728260542682761120122757595834291127771793533975685678611548690118946229245375611413956827919768219867075632444107388368205356363581780258309601858977988772511485099381883924363734329137300771603040517381614854185503138795319371503089951103994590901111320400560573555939005933377515580824948369773973931456500202605249380913118457312491780574773140829687880354987508850694140020570647634711252189010276066236959184481620287222653061170080488570633738600561636737724349580521460526799763655967351282976011752088623994002835511806655483400040004602977789879731304060032140062432494653749455330642316149102140786976486390456939275551600187632693920705523046709616892609620482947459052801802040280086564808822168156790062922804688582019700715608592603264109637508475931044385793164744212357502291826928619770164071936491363306043956379866635980818154300834024089257888507268011378477636712191135506593755092390737942434559751940319109701917533635260107891659818584812813419556919151960740334431235680232349421579116611107317376054804421029189658369222200019260281637340842026620559614021720714926729174602686626952184178556644855360509573025636367758821109693092632770911549753665307466781279204422689824738238408848982878702751355001018902135929069999707243210356094763461782152729341326889804946880830622944249844792551824273237969672886073957248731706588865789256140932513051619860031070307250201167045080645970463806248301259103892543303864781317851161909055646951241527499055149117888928679947730428852794495694835085324533193122037014171867073135840822209205805649527695947581308630546021483897383386282468278770441872418366164627621515675380178080852009854548766596011877418731735339636416067058476943229347906966106886216749342447189515733225655102898308966360630537663217029921027634498542513543443671231548074654362220975359977095241578494685768437550788634952684465825584562848778547373430732795944410775882785614690308899647129225917258417521735387574286598761176251968987927876886462438775805330288538000420426285612369178858153842637384333097401234380621309569361419642866639927629416417076830605066599253350853375462803429388415099519173613946272369755283546068207408655127058069993469819841104627662232213158826533848124503999925330323653316954192872463879712780865483569789932198376414298874208002948368678582051611208685267261320534712975921305677233506836982253197003541563422579036856267542598312204967767447234760468543038560036770515140424618937495648158483468637315944695109471081002637693132314817984612134867003753614282551286701825631857348258300972144689940760936271732491695064707436988813262210709082770559751158934902980974640672318081464300301940844008116502875709130988861386314580057269755833337792251854757745497594781525443061735009027758010538179277166117589760018095740020571795256450044546582902559307037960083731514649098883980026383379113114875819400298511173152098998767241507567745532103770988326246173649672849767686708558726483234436795643881403330985041002471472422360972542641578002488180585271010572375624550637756202538765668819534717314967552536671207412079299696910242101935213560271636955780616645947262404380939634114932314759320090622039027784965553288765361360147027669159430487924791441719643384135259381089928085115972001357042007700737428266902078979327402728507053809339170528406757973573133090080763989718657891561796380713309230862832096690090641875281074112220861138735611611836819062458426415731086662399081463624213806172804088875029120110537759899198138155513264606426398495366914201588461151536775400857723293228400553559439572921653701952716759311547238465243079639315791541824989345135618141923261745651867944620924951173163167390021949891402096618544350822968748217886414960168824426450713062649490873423924639735882206654187648485920733150741120138712657106839626350587316899549605185601790984887755449454217616563635387814486213952586809291129692333212999332199222308686993160999253737261211821029445122966315684866397304244749565314233630031976914425932011718279959211577572477952603234189693968347364798270021803780546635517595350279485352651455678252081123723910694812002895544396298007559099680646375254039875646612235258215147987654812574338984247601754001793124992016344434836722784853711168328952214523814613862268917507695917532006218420107120526258212303716212289608959212326604881534247190520084692272429229739050353712946579475168370022772309605908053605522162803846160169861090853430303816111672764856220065775639448676275285228157879819882381931029581100158174908596298405786320812545213951516916688429399488287552411564971618398908483801664575646853835189546741347190523721028012527996251184359664563915899210412555869631770639222810244116978607286900832102561523547995077680081227259113533600285297373280091837134014828631994246399145728384518277545469110112290593894275673238862358172002801156400267691386640714653539142394211058765245046485917711645864236884621761330918320584064754646688198016990613112816756036179272783889663356090135079197821844629206289469578299692626924476251894639234078300796453580786992277647249201530656362502772662251415875041842865041104126963075908652450495858554933926503960076299581731672801525046951253028606011674161111230488121222385509139448936959246646338811989904133210580576532366768496647298499880595026587971540156476046698547031762992958466938896568085932141443726201091841039253562335248943509070972073398272947305950519698864198912903911238174659631446315782918867781390216247993915004645045111704786726632047890699405147895356102656287562415955987575942920168686101214218039397362770777792468710528688830694515231574927917007467921549848877953933143991991384002652340526680627461747277231204633533180869210807858970889676226403024820551189479546584417434985203709487022493477067223805802788371885059965893430189611564500833647214953425185799697118205932768624530074243990408847952881140140508393166855154411060248971908900827900533555271308533882968199648889933297891422435595554389507441931833163973301629590881836987850717522462723186047220671510707602693182280828518012059754801346873858041791067196046053806784069606270448900009884989131730554194129480498494769305001811302947899737715829527270819404718007493320268679291320042667048382129445465889214811090493895354958791953795916166926045651624703375185408230309839520031044122160921838384197134295327590194216856241730220787808925230704097141381232259536800628423478527485500380863504501073805257532923442790194460781955253669962031936412714918723749241856881670186857141285239753760488003475096994671827532637999811153187108706910893814187036803626899449684258312757865444625783523501111550456664083373611471448922585428430668764691361916659849056256015892710848988215566609165921843246443226970802415659175352744335861399487885323965672355558868641833620550400085284526576159357576729167728663025580303113548582412624180762998846089351607719281817122469846414914587677827296135089192853377476475973520533485848412330038729259038957932790434044761054077784825151219843040829104443578713486943740507001243819760768076614726426955124850846246080733264088044107938202594198391511718040449067001789387597559747323339351120299771167664698709914424740312316411920963852264874420895992651233986401718642279096189053580299100709023680613962345641003901034370641031090510004849594893463929754835297764022644761996551215757537487404124147377880203446362606688466594105746358643774401529334013211966369808714052922618934235017971364275297549922111942699241212076879827259771642612586724709372398112367080236086877562928417961986999804509188963063001708797428776226476231597497355237718125826910851119070934291872646140603193493004679044272140299604655543152178991038400828208655248696499023213537632949681406162722595406867937004861757574154064898548801426016390714409388673481201905253209979109950211273739103484699121308063914715436781377421659259622376765407352701060357023384761214581786593584832745779464718503286670139598460432705454523882709794266419871411129216071025632351865629032861550749272923364340183325748378080313767561307454436158634572719369484280356683922097567406830139159334350553825128411341890262780353736270376382635744681544957439374874843045648092930408975171113678432326629543828808595656415789012558290419541074004434382196498942476261888664075792743348535018928830880137954161266178849094013756943760128901220252869444879957027567923677831913605059631285918598216866230072095399469602164822712159849917754462551667694842480721223580905986761734366295871135049893005917872393073099435003392067287712792452940315906081880295293731164439131037585306162967394727598843863791347358199777989257455533107480392363320027670843387737120214770410490664291853162906583885734661708466492527449886320299781507251074676783176949592171313650288048818067138811980222988212892464583648802630812108251881263045997074257630206729320701480302353839141042425349190468080986496119737119835196833214576053250075014034788720084718792883827566868158933722042116622902037891396253996103548037285992289889231263104201477487649784932158838440600988933750617322076522134852343203366257569645502272477617046468850008040724557990081618457059599226676348792143387590362269938036610591415669187021201439161803294474611315866497070721573934392911315935738909225560752344622299653060324151487174467447020131391334844556891831384024941744665738401314652330890499623196443573336726890706449994130330765781270851930626323936470662191990189722183393238454520333696514853330137951336246064832894753397030537258175820086208038829042740184798333339130293068996829480782023352722154195463127572178474438438271892169490752981326984288487125888098307843478863591513267602521067858936594932143638709084292987737830097844419049195259819268631190138363400067518467901326397605248737519659572103763249368009458580991554100960969115071412070010723446473006316257317732812030871235064962019212835076651354878965188606246249215316613360617604842298949704440453762813466648502891716089176679871344479105563725149147495260276359283865924633366718363736213518850727655661842596575275885618787380961386309040200216645178651604091820618324253843059841065498951029885015014458028025264111380678861771587065992793738422747464357694018877671255953545723961842886095599835369315553033198207184787498086131351565641106702727173099434686941605848588464934478570083194638188475448558472739697100152102934574501078483810008044888200495135156195845965226252174423742573397758250861023488015656209382183505596319923238915901743091141817885072873670087874270412024964142817965308499922088605002115885411455855022279924076619019916231289370343065247188775363133068123250352343784301401563999148400120587312227964195105808270588005298436054397691189204304867919983294214310919337981491196108691029894382939196316662797379794319711719631476607667419028184979350626863675246794593348265405751330165129564631505547610182122164883725782471925528726539895076421811459276622074215326338552376294611015077669722030149206798652192176385941633089657298868981999881048002074595607482217720921350104511714265712817367519296103464067452414620109155516528192134125639403747981221480586943584174610973522363639956477323643323280341348613928642447141384480568166460986457914122038478234550006390685006349512246550065488489829319677616109139108255835025912964759162087205334205378524757654286668825989997191062503320332000348815626772341507955952633394940682776961787412684438147413303473949026133863655455286127855019817787530533187549114054057501476235688806310281604300552743709094634496899279651060433148978511482559018068431214006590689668049806203232779231320409439159675784882450969312384457748922322654584758446583848798821369652591788787658646265718859145706257333668213187974551624703214856265749471027403541099556970471989758974054649186073446295880400044306612912644559439855799719914043290866255114415912188296258236831185119134982559861353374374551310477928765806601703250925813771997303986052251039197613413781337126478629279185766006269845491562832536374628383434747341632829044646619901577031054125027373581674398567151589387530684107402141861156399760930935365600760842168177059309682562815517419295401946715132133282720112304766255832804736097042554193956831261289722326957306610071869286340598031058858561544701821416404769405683283081669010451094456138847292802894996397929704159795358471386783232810822141344367190100651392954773368514685324377003339863522778705900451960806755555628605097053327347431390424106167584867450067718311276573261739911579380648876770648038600226846227014364328158778510855843252358883237616693917470839404386658924459430175916170492669791459091348710982597176196112190021635455635271595625806236324083467141763380938121038722174003910152020076612605537398674058934862712273746510835759815661601461280102274152996685728845972025789693778278914962766338908467597991665454597059105090319091533413676383142807644476348357906873775726967402691357315159096094289326787821342007612576590858858462008640145113681903492715642036638180114123276553574274904490679566413343935079271853681002261840692467540350845301174760921925120517048845668516987981094704301952171805102078218842150683230012783995612823824383115926698381877798457134630142240212169985359295390143920014840637414105128700646689755293540997275078139646149137416174654479068292885369542499773384341550350167748327631112961226192947070855067604159468243831019069997766052639779519949789741312871425508971888570983684224893422880919205179324540452445711955791901028638619915945960087581986890902333565736177658645059545127517983342771417958742350269713857513948900330450704934141748795579375977721416777727119093813919155581955087609734703815362150749310818287387360568859559585124234712691341578173129277465604021714313654780412891727636906977458911661720446644846776150520524688340065484703104768779900019452442972391308206876833918738430862971877360401198223509959094606811111469082829331778331575307570213074364741806893119872462755291927480125620542609543140763048594647692981929962405238281355597893369599278351230257372395309261509017859123544112257708849002375763620752410939624147965484161069329469688950396338108218450952636618588507505779876511975645861926297080687823292264429504493738946193989736024067365301315214053876790809540385085205017029372041020484747915614108859722088844650791553822689313434473836999129284459268987626016464497220307500101383648103539133501802346779057930957430381670162181425848260048380745021219434880455713379771153761946718843892006196186428034284938440864972193748470893251789483423679121963650791092242307271657124675563904164525417464156222348195967070104161093450173126064075773296295487610350664074360761664837700806730128167574959134873810188948847553559582508920432790135800363823517718161862431030366999440178083714197514413118717124601057631325063416733937496335494500880156759390941673799877358376543676870488317126332257743310347037026909490308904422568581561465023690410868134316745730581079203955743792174520907642771186342827188200816019128780298402410506669439494212964863207869449952878848066085679949495433579145837917469431301103917953496531404434626229703413609334311046785986903624430051292827060135851326661704663023650622917891915661179719697290096749226610656654117980061938797364998723706697561914774577720851068354099893240221305630088820564924325870904092788922511890677528764608334299075743167275977051210888993383077983441903521527785735887265751619408797985603018853186509297786563750434072907714539411665640626930914197352902835088695494371710437185801983477414300944135718022377336075012704476699246312050921442217964628277357523757330431570164951204214301328989822851147522802631580136162751944995632899129660063335453501384062181653469553384702013238708273282759310514469452567332152790929773746185936739279014815053606190725219407167572581174274801863804004850814402235195213945057925697455708928369633722938336550605128771287247568901824814505890862187967931670230056178136329409558706859210393200007023276002501650013390113516419491165244413543500912624562335530920533017169088261149597672641843143002948479962553894260240788184080678619442834746368485349041392379847434661073858654594103676999933285806418453632950323857839975448187238395698892340528392380519507258349978089594143254119138224967730673669663492644594848912199409591608626890719981527759104567428604391696788673910347711264330703703767251307754424709204643349569774783743646431330468508627653684403580019010741008376325856781533992401882692366176227029599771922207408215687591177950570251756409718426742272420579950418602250092528177225208770548580313865892349386537899234286676250703032062018843919477738507754043627098325755950138831125421896867027786132085883080995717815125753554781108129861926862944993944123905650964258367132603121738832656790519930530728239411743216022079699113208289263449721765190091318568296339451585963750234608085089194793654537155304694524066651275430142894347717652287257370319612177043383349925769409476610457580827958334888275542943783091114179927569031704019920959779915823253407077257534733504382284596826415588379088249571826786242804108374928473364047170262754131135649118264179663102257013050289015547218050493909519402815067936003021092367507849650144327554026355476776522117470345999674201058681046244981239432546798155982268184832923105135969352992816775233273094375443356411497735895388016309083997279122716814011018344116734589549860280677609427083645375449492778148109869747298671049966372216214794385071284552482066637927494649851636862066367742470599804903263091946456153951550078295480543918286593864544025171386882925082015156967260888531658660408667342410700771484804265334599155503432348925276507889601104196635275272773549627286867295634467942979573638300966402435348154438445580364149681730121110403706953989163652008582895542132238021776241323618359054565138820572732708708509825796672536507507680610885657345587105109451215422516804101543977571021464059549565482318493828944859773272813011816841076736351310621213357674560741322047696927949660514171177004472131961929513295287157401370328604211340811812933183774354766214882537131880905619585098856206550068378883827829637511797688282297766550116915774837268327448597713999406822805126491283576648377489376891992820101041221257148101222492554231131620410250075263022312773936646403897559692502669614699301846408425546368774339215072423909170649309014205885109524735903236862344066986048335131639218525156848055065692573602371054213112569704357568349027840906040262719694514882824503287011827819731949937690932837948792368601483114125901933443509718888722406424925894555847463065858578730076027975295464303802855051472463469460816478546343892000304303700761822801129440353791159257968757975356036609589411750780040004768550224089075452098705654829208450471363708747856075232933654355551896629014590580508969849123528141325579389716740189600718131006315152492381210373957216810667374735447932057291429196242036069554334346621457305529011093125945942216619568475918177462567387954459946443418981002597541454853991732106659618567479058893915651914989606016697137759434414148853123670371207083204954855227593094638116373812913585324036696909495707239511207433542488762751470166009032727721352310433675212603907471833978390970666880598609267780404326313849732291163027215621240464924980266076520231609506524987337597144036985700980170051971294813919088520399599342237923917007338873751002000852431419247440379807809069249929238110535925686011388157515884724996369266114408194719533413399441451420100051139687183830896459379012415736859767622521228492084495416696231591326672032651094516268168165609868953266797035485670744297194194676606411135881069130582603807752817253145938227327721042642724943754755796645559931934206508732708630824178619465172451510966257704239291470231465009911716314216266223631144798065761089276166956307357404991323966994650028134169194079514493741408191831088308170209627225207589040679043729313192719580554054528476779945304260222684600921445797127641022915584698348582197662254350362106747080944810262964289528982028182412029352983521055795120810458201063830869752136111296984306642602855404362676175909000786401471049767459715921117883782395616384893567459259651387977777697899678376627050170867866114780034782474622438924899950917528964524914734971260006470002275659485444180305629109302129814648557784270416668887043607492773139892780815437253510104549648226142268671323767994755164571431458617587591611829825912760834236791398671759011581098518105429587891475859744916043637867891190562240526828999288705007754946359116999894835620528579972428948831860999035032010232912979186064404874147792933492151394646703443184171060819590749445050808303923841469016577565569379665993687018364104944290984153444439432820803149445250656104934858665479104910271437434379346755704476215873174950630644300610774391178287113665076554409913194623842290089116104615408001898207294623289896202004364118027075684935874188618338455802787459672777776334907239380484253031359567995573680911736751009903322086271828689819356128934705786617201591069313510987655516446337090189727506162150746755207655644025031578156313462866455979338803177906219419944637425474941653235840728460712322645078589586360238448524977012641590323657568635301148970546356325007994283183971876578579518559593589409981133646057168668313354722598083502222804918958945976702679421201110797659918388504108600324774804254309259217095843558359259315253301101479586741356316093758433957273091137101297379996943361541135526147219948458313922662568856781228538886720375814674107402686243145590198390338044753674566876984358747694955742509193104395900895158001717943765854932178878504890074989105240603274455963977922443956319427070943870971899037134439587045814623074224806797396109216638680283749765540840530344244355921521254225902388318130731967816155016748313971747990558575759973604323965136858200995066241205023786984232411747587974336113288613985751324668474645784396166949811510114855628014068097291291033472935212468280218827661359038301993971249906748939366932395892828636559994168051481949160021020190773227025234722123288782898931798564852727745912697822056673704318398035537446830315433698780684873822385457805876058742236841745300952110418262726242910727967319835157398637563901262871761122048508894137813009309649906928357439233071363897198769197349690042144879937546248555841986338298882672829066324437441149313206060377560021386984323853301263851820864800792306876261203582647872760132549870460699859793664481290182313081097405017469854877798834611004845636108433147575711369161060812252476896842551020909754207696720880474092341492372970962764875053721170517875630584272372696366289869375276700578658675792425443998095406819945898151376911282811055003432888612255423456217627482279254522245344514765064014510246578336755518690368455751104350396107534434682683934547813848532022910743244388221650761588558829238143772675495982683995627238372195601617411882173374497559934376033828620214280519180501295123989926763721005346389032994183240303273971609478567586479967822143825047530802427992938991390398250660917907115935004599605392067742421933791169016515855830005845503539541688371282616993959039216844624141971453487609308143093718583476759607003739476111422702788278359757301299523873851368222792324705286662259665072831754115986236760730607678250256548869696872075873865335326197153444513637752062395468720189854651128866580437791468518251063366384105050923109078927768903248323150031280197611013737557906865474971158367900248170263737551535302184484455394044995310960820381595976267190667394678467497938011452015003272962278885573912590894836011048611695175647277614986221428655516834248175912879154478871548509665126689577642599965869050502502019048359347326162993829289103885952526180567418016540754314331421324518689159748601793192758623552937380397565176330951824543061868337739799027245276252934694829559936755344181616743129048043634619484179684184286423226343453881573820996238257829679072609255990458319007571677367881812625331599127919724214382883774830776616242276076274139777894549579209608206504777140715585325621780969075565584671808970431805848199494779625070726555115142034696179601264797044758764297399329917229969453372587096638001695438595946343345072156515326003505817797252657479393639995011802696989565953754566810586459763683511861697314383471608789812046364780236368271233318157588624170669821917873821260207348073193777266113028513557505843365877811282666413578385592767892344214535700062812338032896549181714730967467107180943982134564865609512455365547308584256499629821565635529521725003506462722460185198036687907121211555294687712004585710620093019321154250035232449674017335745319315937404479525740790750167119236471317090415827285597538320759402159608193565240741738723883102491184365110592389898251032880688462567925319773082420634397468489239949964658177554521760291407299144937632206161462957308457418719382540674964322333619945069047251030040347945211825840786574186193872853551468962191181205148167641650471017222368292558683616410717415968953475741171530870634711643311391235461864417163441462454308863939544658981338284311450789894959118859109428190584709067710335310879343362132174054628121732617091758082306229022008954288165638305571133684477364626090306572722532904585141131078631340902522491673405110091692478302027295652103263238326648276494961189103642944277846897584959695656008068029497326808939888469248802796077009753427166228702626598050803067075604678544943554630173524380029865695232161699298580063241324945367822569881696780270720331736943636519182818358198512430410877869138188965450893301439222257201643966603230664643342112184112786021830125232725494944298464557421994804976304107930448081228377846224937591045966089560012611343459413032033915639953416520422072054092868251420707333317249503313062905306244061637806695812227119573062457936842059479622680441953937263725159121181217806693319830739122554621716267730859816371889427250945516936109681524232453658872566507602751429027514470629855329334805888344404669843611372362209280870304157001244596909641915725930393741419723511346908888790455523418590648035332196780229277219217929439250072335686272637326129019948370809736722848701396105224146320453856823837467194589111964850415835517150913419706364487835116684491140601295347449883266581212214452911491002962983912000632376057738184221456488548572222384234227303989357158442576126960803339034813887363224796511533293346743248196424058350725253846740214078436044733501626295345994916857089463132165959482716961433006960579686400681161836360060092024159115357507211960969590645870801447875221409191219759637301273561448233966102683602208331842063469765832344374012035081322555979309198743056158253761469650456584745318819642433001360490264137901936004017078309348514978395727975953369254822916773567512834296389165210735147293120565026243183847705294533762019639198777720449709136296409717806728449198323165022508874800699903285060927381626796698192283881690933727611145293347256827546794220627475794765698750780094602440572117463027404345112931485287250028822436192769071590030340853345631327797350276600042180932582499670640829078937412925670895033964079495693103148595555723924717568956784999238506908134977353488881102527858183753990444716355774172103936335921790599124148317776052268872847954989253551678646839737847096916289859751309791164410554092100074662875846781047709342224799672910411883295716312457004204051238432444627962126366478709176452493210801642714338888296412301986480096786023810771129283586960584464258755830788076746911664846699053126438830150677712696426559777941450211756992579095529036126769955228573301425608598965622796121969981434201825166989367511641523702926949424173883395351825073330921727252520551244741221369027153038837193660738453426967088901271247230859987754511673767866497375401768192084702057090228325799697803396077569508099196689281737765709680811644473445483294982694602433777810056819433917078920046533374840855509086584574811620692348775819629533973413131233632716416299368025104005133067266216953326259871711427477326210895611783636686097169874020919897852796246303170443536524073010138206814040473328432504282188978669267459582540428232450811487613525982813801948510836219624093037348408706933096818776358216329115719837230175356451671600230259454216205226452322669163859391903687647543131883634969084760930481677666618688391287180282370809552641968253998127379877495926106498860312226983185760234284489539095341251410504532394742106733108863200761203963769020020315295436132591942882734370385258542059991630431117531481551166426768920987961637610375083453753764468080789196299639601250096495683545193446575339105397625237862168787747989102108269424759406145948313476956744463277372631598175222223741984059791363065355432636242192760995241388755390941267892789339434748059765475898839919483126694885797221179229115608330571450679471314077761133944179671041189479411888740372879362734985984619562358050541856974651236844392723309629340276092786326008983726702370994981174123864689580244196036471070629806110190105442208455033603816973065588527822957619331815188866865692582666016878358768472743668385418972968192753809349182677819060249261191546937848030811698782490515320312302606965755970078750934075648632220193864820930022220449746960467841776210778745035986140630374218145722130090942681695214143637542705909337613218343345050961977537453164972536632769602687097355976217706877490387451620034926593925908104416715299832994946648143741917700409913559024189044107449677366079578220210091092763596171560333713688650237000322623649327244866217762514232867084078275821389793420862304314327999565079369654689911663636683550334257351338062279078946990953253012270494857824454549634284608247831950052953795425327254585215911409755346999996064600126431022946656333012463600619669188934467934217621435973405859540684366087892258719192771226267857874461886982808719161102827509086646482812384758179125273428506389037239149753483834742547721663636585135662571666598525457953409715833030313342044039605603493586735753165920878701160317907829789171235120375600883346719272292491284758864656713880596241783362289895443580187453634543546616520628837966796928629899881881849980050501540774371635316341412194305613701227967624359603270319234370381091471034642674531482128170634195999917732373756423548678374436473346671284774368603765642572252366097964411667794995874388897546623622139313695121366660395158097431242984891650924911233720255624809555561022891473158865160435547425067755767664818811837708986588157083294466071952323343367112688468324151238318257596102203526508338128888829517578629988580373350677915238688131707106891273720951833334376456834432141161124084795173635007350678601213076804355195730933438732215443602760921720666640492562113249169297560479020979906232738411677686481782136412879748130280459279776039723566950187781279218423704459028618647382035682410419789534139546898260363373967048573106416320791780068887880073289346532864264223079105685291274196812719072418454612013574990173440848581734228385664119034501608186163645955718442568258644151852117746827856122962786232187436757520296315462140541562162357479032698302562467667446523451740629395929796332194605624367097392372613885493016759516248980171008658353353222487951935946789271722939628401470998398241725673824744192179629235102389431694323398472245816384155440129771990417751500090209146760478916659202652722776758287891690441906318771766498853828043629277984136679788783417523658105139557833302307676305509891668880162017270756500438468707759411928814338022416945859505643701088690314228617585594556481372041001922025404507059983269011560324509252365732187416183324638173735849468241604132079334115362356288448210198878200154276920881113432494991122024541526463849662755332292571953293205799630763074707988075762316871933762427026474849536263378967384441778366728854543118878244891719549094035472321119315388941655564176150867195726681608600523775728610335112576128474938197065792369383952315098786285977303603058157408276344163844759791810308093876184871542285069003300244273916016232271376426184858121493674979625168798300462689715939702231776490605169483417759392178691702118077100356126308171459607200719714179033253430933327261951146007716248500716068308750613598979076518168501881655920359459711160084601533909117678644221485641306764259642480635680385331927242226944664701393263373265910174905465793839878892031666912233395338684643504951582230894593712191254341528092865387574159164914531531093484538689189363954069330363255993253969536819206684776158852989748905964604917473881008834143708912063153104593932081605735235320471021460171496208732407141815996028863817448448384011284428989989476703339494444117206250151092535995471215996272136629273229126594139990778282588439367406295491306212899399508547679940897190078451123227177717564195016617554585764787645927705618172258334982887209880859238435707286206578622663939619659194361586504380255909746318262461655551508375902381813952174643645568250498441339839688253838272173551377581847613116230829507371951467632813509954923013042806413956487865565078508549587503680421821072343881026018199740857694659458199584392400172851810141016070065743004127327855019171734819351816310444231889641425970704777779845354422284278476407134832888321703126845256713287881776952666146753596204067010543779156860262950160692072207322063759958437513708430736994801807849799801006112601624483407014813594444652651103572973645282069275028972793456784296943572010720003269460577543191292803523489693159542643771600060852525990992408284946738714202589530687363139386274608837401906839055942141069468227163187412579887193450279393566315908736488310007266379476316771187956992277114175812925657395866158494836234661876768983044592711157269372398683600337951735528312701628037513392647973726855112872264719431749212574418218493968579808110888322751294391133602618458757130489624487413623318259012563919835302441164804438605948484115411943914866227084953045383989280411247183402719128950439181599596395775397855739079143924988978433014496778959985232882387242213836856583394500477725200917157852126313252038643218046469481554361700698213356161007960277036497584285793175555475016158996144734983208907196645845273679264821970850591271821580824024432794280988548180834863161663511767532046703223497934620192427150582369940704539950397412488814923771273216838831294574859596348425910597283129045315118384998304084593050088668420505184341378203040422625900783330742464250136885775176300596779222242093193208330502888802758547491339643627007348845194956417436094498262754705964723580155884943661474215871799496051272598390386711774642932498532324486847754245982589445912155503901078007580149790333409619336005267860309798246126484979683656482056759943801279849984660975505729631028229463291540798437536829960288005704184055631204025022501348501772348890811338730995784050698717840960790919297643990823046133447213294646969097562194781732144098174800742415517493247853211631094900504076399925816807986518241462797220742804463501705238120681572812757044098323237427106948632055515168110186345582802493707458590353831723859895231321722906927460956548675467242719472363604378632474550167450726498391756118438627000170960148263547020581676005127426554363847888711955217113284613898881071989177756600126798109551054535795934582284578683914921001686257708041317977509060147566805989670890798458874087203248444487719219531844291613410793641157460775558703858690434642817606009108091114266982431111957960419604963885464824328890205145759557965759458389992580610063460534459785790986156012742630512727811406385188664183879133599512434308977325319558169679014757073807043619558187163210914000986414112819568139178819124498917753353231795498885951410142264561957444171029957381294956752549806965194398079759649520492237603113996030228529385019937673714805835309638134969790266075896234147104549525011507001569096084259830733641713845899692099480057053669283374716789151825921167784217121301673944883208850322222752925653462997280845122746207569984914252304571168478824044413736228676791790809874938314656442189264854604155271764808107392166874072382475859524292949623452929836562523467048889492545684422961128133731028682720440588640014783645099344605315745942674799122133956079492206952370879222111410828844865874429887923816700729344350782371216246061772752902060401323124557649652708510956800444932678759120782901963085992624543573977329983174264325089957759542735110887021023308167206471815086406927385021792752323535546500152084057490796141360489719161294183865056167680739816827469372259551705223233731817215875598922122931633486453592650684843480996489013632430273621252023482195513289926685975977314965491083311608074369054441726930345454853993135117442620122109953262482559295786981796085392019830690565810986010239873254015283518858656677096954993861957664475553202159856804185177274525014188778144127375615839930238676027248204182038093734074962848399505746290686394027260368503494467836625201808583787001609498304090920891386153852665831769348494953627900928212724224794170126627932101052652577720998653539728812686878614417416292465638178818730671249277981921857688167390465750803525201438633165380155179884584162169444917862738522731187826772685070047989619741809160981555961753585909267561485657051580150134826150438532253719250477855085029290753477560845335111483307467618989955834949245450810529666555168471730919217035540776251327489373119832105271233464760140476654922220218719816139354548189852633581509203989333250918251766457890934658433484888844379960983257803712651227530197068091749913288537826565210108643160099047539509907547016977496444139363992178777119949605618551060119840981114105821531761667926284010678289250293322945064076545830342835881520458060556779151840908993917792585672851805961308299173071945465030831275648322796128735663812525146624185382396526724638036530611547569990293810128883397827065714544063518469393962140476415104836228940393271238314456796165964508955147633521557158148596845768172343811594912739038150138945209506738032231267312147661316792440983094626342008210095473644596756803301375159026888022459978975270148542272623740735551156480778725310926735330312007877364355897454417115725071514455838368935333198423918457703649473739646985136838770110175058450276391384465990944166549667432544691801904011546479107818461390210303264035095819582148683935873575884473863437607444323292348818420624283906453279774830311073246738087239110830963417709301878044752534621866083363294778722725550943420710623604556334699066765007854372767341915328113530670334765169834886748969656899057963981003983752687923327511929839045419376561575220136672155825602926170742613466764347605606659409665762917185221425966656598386266323544572678601860325121108614462550878196085282686145737870901340109837499578966293085972151197626930860667979067205180910295774822834070337407110867640988319308567772736464859994905069177500616735042447135621002558224651649157326313298482166738761823162187459960929409526560773169386818748321862080914027275972615590668764716460108336097743475507262622520437840498189042653353322133081712447837172159680397451251092209921490042583820197137856424434276064161549685478781441347191967908928220658787503629220097366779031228719016892026484039725391975963650893853160168942628196509164629826169135253386442996556527065069987738850835325038488662463153848536882913863492274463504969779185358670694576647918807364424389662875995145490264128690211876814499291490971173100032629669092568074633698916942159214151591461284223033815902104606803677653009848678001181342214940354119643760313152992982247798845216352422976976976886006111826817250786402393050725307756363746161467269160114500130244841525910691391195393398528221145076460543253833523272577602124602405640234600016207860396989663391298270194565249843904480585973065797312375310803376673644377657771596495445527787690226630135456851575345899265696935853903580037558438278233932344873770398254571303124183620053597476208489589846981539626501848952480882740337590307977655263053902043443455084572538606657217276901387217671851745444499105444705001644951627790919330621026628293033383304703076611696982434441489595088692720773941936109993757906261780026295703950421389954793537993439116713474189530035634685823593602598378841436071295455171067439443997328609975027765623285539564279571499490157106272417705814428651369574468267883051040062212965965234237523692309860680250429238350624288473104918526179339598191754134924047605131607714909971438499682246100638493980690850346286439973651111648220763521901410855794624001491731260770369522533586092816279123332946247741202123893353060278844130958433443520827692660549222671078730380876931710517044381757544175277890590298370497855920616253668308333911299390769072408633031880805105660753208407992064715107293563724283362916169020369636333425356178784202313793072571526307370546575195921649014580945628198178669527816943975759838076813176020813787211655375315926413594099153012095559516745297333967570288077367701306312080883642424305294809747917367251916820853860549662625959072741224570301295146331256025665117925647518824733882639364193599018509633713026971892449307643229255716511156152068612032018345523051668482331242912792235476930803258956840723543460443116936902688186810669499224288776202879013711479292901320785401737124202522802805613679038644595863932730996304444810128310918202129568012385812174969538555386661449069821685476077879177743841079391074710143400860540609772373074554503286966961588070743477947906030780871530220402744517515031872217053206219375156486062928834199733309686324834741486820428889215897348311809687846321423087326105507350192417440253536472114629290489256187011103589774120784892977744795351479660270123809724803252649153997162697354383547727526442332943079216656762535295394987109710578733863346296775009627454065445241744882593728816012187373068474585727169997341088215359195808907232953060510269096226248931399849091400969867497090405676964067766553287084555799625015095093630439198234245637654338272761356662327724977081181449264088611648556213152721291765821238161182759303194167538241191439654059300717485716358017213071862848831441320405214287476515430343622514379076065044213833072933958002801182272715973525511526808675318954364149006366009462556788768192328781256172868781369791045336385372658248673648457967405232208504687399250940498688280103799664833730095783219574573478276468233941597577317846064795550354314963629939169577548883465797112288311509558384827897962250933702505949706079465963474335589752110655708800821133788054334685680948713327711408689215894761686117058795117313218175021745782352932015860447159963574217509234958300314793469992825399861611398864962920978089343400111558822068803571273810648314634342046610250110906174166865889513178932650057739141484335017153007740432226532359244408129597700021882637771665935308715862773536474524186946012774286705858533217839127007605723151687292592174526789946569497594298814564839260700111589790717114151754221754160998052872825566411061342288157225543906093354598896490328976890473176216615523209611690784381334399757392280968339360626141493651470502014193760552889633226177867918397041211234032393373152889719178222664791351791581051454252856283984973116287782489410464249513123660960192985505253271663393634591089560823262566461680348642668061870811762638816376369746777922169400351723982526906150821522327718128047679014042889943893936295312441048806234200852151177888084480537572584252602645022304390626277767036117830044038849680114667340484709421723375859050554330508849367713845015694424494981023618387331174232711066325296872079977297213462696045914548019267688460873043674795879442036064657330276765059850154497239060638773710507059457502921129091905504531060676797096316128282115497647084267141580976153877419015881799500632397786647667276930363035968576371406111021287910145102616857479550037576509399706929096356563886977309048718120081115680109153582383869614086116759899964689184846705744567089113959899093234263360969188350534736796830808600485884746040323127839419188981232221949112150719845331817337882287380162210868300114844087012142467247313292683984496886656296369493703050203919881351665082817885477004449440042365681579660060834442418484537700207410046978710602416477585492959111183492586131542230850267723443491188018912485370069601212025330050624565934531526283267078817625456832602253756932857309501267599249627861593511820975536141905299478236421402319332117445376779997904862112242678286447646061388113881055795348246458401909925948508108522543088746496220143217702059844073645293108647116175612672437451593172345560643332037307360141706006557340150060456662189624977066120288472376112334405265629016747754317206983013511217342575658021489429501598704441778526993230715869615637511024100167088973959514028252697925665108950058744062397200444255070409062895974266143160267045999195867611017739484509075147116016274490687087802899502457102677245515560829979033811424986275829336714497470579165631389986546001305149670887715765064831571902650836294394431763697951499622624971234895810893299304821871271015647899190421331590678035351516419657931647832607457938521178247705132774358328824044232251369747460212291267331918985094136750164204499359462980336405787871050372433755422228142278480403679323132523084204692403592418400023529431584031130980836777081222077802825532619444854377486094920263620415241724639117717113568549532531608898458427948646627025889289016846808090647832816242463266256031102261854660421924348676242007917487483311353668994170241516776135569415705203317100000901382780119331391586590825332860539732367858037259127969213748998843792822485533149744007387100971647104101000962685099323058245293426575639841950277960146332904967838438898219842541296107019740326985176712430977892740593567277839258933419232600479518394666408932005555010281674398449921395325776962313410182283507205054077635753961692513423547151937574957802684185489818521741018652762958232845407715588726309591610818054097832572743881881812791566467567319664279309452752330430049291913850742857566811355223147550147466795508691139932933998317658516024625895156293268003471798187413012066811452090813709250557819566714999380594669685374854464950706163972216577510227012923123287988339105882724134170538262195485004228846327592337872210735410519429935048024212208431650931803039651651851809889272311595574285103238853664996226222800051598032266178699748894322054475994649962490977344249957906524211469158111039719246751096125471567861968541233636969487717647162388707759803778450799028033927447500860488483784771912265666923096050629175203579687035828465557180103293867410596341641213033680027037786662606830139964053156323033252281483692056988452324851387715525082875757144284365742133286945986556767220935245817848905516681757167973412174080853165327701362638816548334377749810819640732751718587944937962253833280651038750271830130662805401436379741208209267988458530445547404554826618040256270443341295411862787833381972879401171660326921945810923947124724616313148874361623715973954043399530515525738920063720336683524231392905579406977992275110848578616301235908051624821394373257759619433809316765987142395234925752990586816364126732299549616828827393061773861887608287620966728483369402572657605672956651258288265670927079007060410896043763627642923268677285074969209336390719280144875970743693965499216505482591078493877455861767009806385337095869419973823609075494816755222969533889182660484084871660009748653558700558229325791917039383948602107882341845990454012817299381160292885404137137040004374036588524533506354486499636046428802783132464408314408773595344050731879679039719270434177362843076979875256657457908651680099643791783429886879290405961625145808598031334926589270114107838924444886743461332101256542827278782306675525092118419345646888574818791053022907377900207105231731499961977244274791037551739602372106241594214657571362048011793239542718127968943405375028624636922029012574794875780474737296576933699287497814356189549565401760678913200412242208959387782638251376772769724835357366872657775302951945297114768359475253875616971681738887936470464047432923138700490227793586984361538191605923994763698800214179233306920684647771094677011445531318278118445640134495092035235577808456309149340527572398523135424507065291725317954363712015836036794062876059769062722345878527070251474687540015019657926125211676018204786487724768528999450453773388278371836823280556681776928903880104567425634014083489808029964934886874033461636178370946550827568376692561469778425504298929973630105285581304936574747903392758627378412294234213589353776523122360752589062297531102120374259725176318675784000361342564575296937016546580974322648984150510163441799938363939992914260381534754244452953712950160409805167730407724645879929391329091259836849114474738681665830682053846537759208657780477846208888150145887032005869407279573443908464834504318547277709569632080453276831986003560233890530485271246290895406940240728151237712937089746643078976119627779815057544957981478802185425540661336175671185851221975308781570787977840424024992655036493448782002041340891309027718195147231537535108796714903974402107012893708283074643297886798854821941815825769780679513430614225664438135927289631717760368157056857038814971600829488670166885085947289658338247259595071891993238769278823305322415054138578479582362449956135317701065743316931487306354506741514578457709795201313872446741652498430878374958650814563203853945637411488600620192599460811046951026710113443012906562810793410943494844501131409629258844499445139033934591116467883220796909032246019959357000117606139345600022528828964250258733793139950439293645020903405579693199522637646099541501308638415873148350284668923982855995735661365108503295901810077147020773545735969905391741135101258734859600116602484019966415742793698375211983708953675203026392411499800150631126523172834216284949427251338590495326209308545680671289897205862228711246303284287862433808029890004500473837811219763071433477459044280293105431274609909130265895827813516623377238836773151053044149286602550397214288789060359939353352371387179134969845709903362239111603906978434751211549759920152191388182070515294908077238196890058018416669368845496926001565799026612079801465547138657754796787574539717779843424727412411307254923105437863383944950791900596910457342843321497846291132273179543981602722659613335263683896788042321896538687221625098662252145255162501288784163583908585321757518929597970376088014486953153553259032712895133597963905858674360502372261089893052897713394840628488545583311127162573805947130153618696152312187640852627602944841736843120197679975081429957079425142662915497075787325320479746036328435488432895789072630590373160528176604616306255065095340876248774478941086257703125798696432944631571450589916338545001862912411901694714563035665177588013162175030469406560340127573308444405975804274201736071146072651448288083444816059343415503668726082260246475408600110402157077558605652203932081870729698607191439754660543405571612337921504739302824067050139932922360568906964273735329480538158856280100566081639087621881728293799070954716310677000617128628620178528382150066612474335815189992194934630723548418022642934482242577945402259834315169605049533712302372704819089847382045546236326888157512537784723761035546159088490687352421713980156247196621897690892967602674997091579077650535637905907121815559754747293137727535691200336438452772880636710895123266298054703224116649200651927992267245083103296764002229629884105277802241383270916094945586586975194379350713655655138760420498696520941231907873303371469342046730136680296348882477816929670437255366984325296989312702186565060687836685608631751000200622095392028503520757933498025203994598589489115847724649440905226451658001368651340507727271719561647379155843915872265464560362138481164245864705018568386867964922935175042844831155838833150725552616908049302847165989268703654531702968992789865315107489048971333036168935629701023086965530550019519126910333976409502738809609695640006281321956918843427344522949793678362582760554928341678021974131051942603993425734530214854896035894243452446470190308802509007052433916869644088149397061147379401467840808493281058583172542512299576088656154147939821203245297179632790037285131206765664906119208104247997816521780883411344956377718866069799135673870056234112065980456461338184109835667427269903212352724173099570891032699002661574215867487169377090584933979724927615232180308822682552677177089362085727193920747721555960038165117564837285501306616817443667550647206170817409327410595756446686201081065726880378016699070264256191529803584353206489644925002740674121461018445013013526123841998508528308990021415021250146776390971708176378164412591754430422143046579888724834305013442904229435971587195241075388264450524777548660034587277288969870139253208653065041615125834556987495688454928526030615645343513357215030860162490240889275395546536641094711005825649319604435571035149636408833632394051852670519297520557921127619805037260553147654071473433080907688773584031593858391561666134367958089045179506674168327726782617235635438291044413204301264348231941734606203489004075516007170878910582672879485511341506970364032956039988187479993938802690120114989942772647487476286509903568175487884239268680428333395643831888739928050646632506532814975645317938385536652872042630743696782072779772659564675636421466129204794223764779580655457060127144139474321891339892230771798440920229225500835494242323893366270749776402493955283085067834861823314610382669522460187803469868507993073496333415634362424767288645176050374658849217479081351670113923808475832834547523445468821965977357567611612825736622106154622674309707247632590277935983278147064237153788943914217614598853725570170058824409266557505633247363538863256713592982112478691791963489876974610836294316996980780835940463634946766718825205726604146212071354183484816567322789292168060037361228001874404185289689762672137436944802760692336160723087181700994673789306826372441211268162413821007814258896578865747924073114063485407249519506417776845239765467197935988233379168136553590188037887149813215100700030139415767139689237712256185444294452408615135509119113036063875966419200985282146385483556007841770760244726878287384963875409436783606136240161692263621762326880174526686950529978812349538023477624627263746892539751815431827658756663292936081951351839550711462775850339626049233275473752355764524298248227877387077347897130048861296372926500800540096473082860393291103358409466592683737563705736339382660828619592933057236080860375272599613668458879007772515366165768455082563961274119725670391013535170349206200542554883112242603907242589015078947058052483511171636546971492986106226049915245694236646576601405898769330743211390875521899210618404342454756518730302232173086541716440210023543045287655740019435432364402478176037006698662101336660484411010311753013581240599082575529256650896880807335010440865463935202462889801845538283668872407812986427537500629973043042989886157220344698611840601514236740130878733475070097984934356759891544241582311129757183794011390848032377688013314204288639926015129508022293433857289192564390737075259555482476735260161226112532410621788335236003128888404959356153953089644673926213902443776488869143291443889100253789141436449687323844926838869725797638198684117599111915638370602538439823263953636608034557588362509163183309191310149435039707939645827957635066496099484962920223833979545478883689946482781146213936210095738473425240186314421615670579730032380170284583494455613268153964817461267225426822301560992215178353920141073299488524375707969965659336747221041961407254583101987185068046615742943021901688600291032864435190041862931048329575534804319048657336728690456516348506096359704245013071607207079972707373448476374865766829662199971338609270922624410466373707366437198116574651799634678803163388742054547165803604696847623654080748729582894723971417975557107513628717142187088725444410124780659145469750203950854391840667142088284390540329933309891959906229418830914706391941335496301454726732233664444401284120553038765211018925692363910872366841355985119687041884621726625638570911905166189968266959417207148032311356630515699412032148660209608970331368195731176393184331923212817288887958254322177725646502309171767340353966059759860910302168935871899336371436756369895620561289403675183991784118061039838905747751209691484249054127724755840712009969775246485003755967975157414012816228652483824561777516417785317716637032109365431371503092109973789732627126054365262666958144681121116680554156944923366794255601529714997220672269730590901083897696690819771276263427086847399983124766214779162782059453815473011164048842643465099442433504866468986156794421952705045244663343183874185594719559937688334149435006016641239634916383686850382251834492113852790657432095603557221957858089466470100461827542772253828281812199549346558715454005123030613459642295705044140854208300173922160320886527674353436512092772884892449426960174884250436283684794829824479419698576355461818965587561155620596057298407790290673985128881153283770355377808800470906502546017777296603083534521377279404131830255622771609729251980734730288978247124953121952713284971154765252470248071165950485209024022077211636133124752758983319464980965761410845657849723170020618124256611423635123834205747578133991167250858720947633512173400335008829213372084719707993883094284828266779050812895548792706025822665917461816274437700893024441949271145239538023383658307565137476151295242235972567257517411706166478302735383888774772052545438205157644876354682551285177736814522959967747121385173250515832358615384460404752622718817355917967388890165189711486852946138027851110346095729888159360132008853224831863019194627184803258366282636051675391472626736164703262638225502091710840412905590586717735734133534463786340858806438598812897648410858475084174631748394743215312075206766108881958210614847504047504204123917332760062737067103132216644341163235896109536410500701619417107619745606271903798894030168519639057590902014082086395495624346952431438745423275256870584990463550949190759207533779838693129066258970301762623897598380498833391025661976033832293986402211503676592023733834957948564871423817833189013997914668975054734911215317313241644911689099740579873603000837579866766468160253058546962431926127323744643599002717749850737910427999834933962846619621671389284292508157526045998755704653478003445412587916359313636010110352586760128602223276486297409469974116564983312781607370756875326094340650377222816843979736259434414396786174822294426804799746962842898058541771503615867330554654338237181588211186583919310030280186864984863947702204087552038180913894296635467152618839556650916925063270796119975131020386112489459450881617878881126819802751736709741170867207202344166833575282266386804763649098795088610330071003342720752071677511143575651918751316357085447568309298989554433848323117904051820358097717561266694723126246889319607361107942118203395794142052102384854231263496248216267253111682867194378689537328226122844787575754672408229157797336906103932188720349904763927190294177039284248001443616274961297946410359266097784004464631565235927090771791851241022948182297432842629438714626974353143946394789264640322691464059857677063164581600756118223905099409321439731173231247297575752016263450710532298834272353651954339914241127426258953498198838122805656500694633008042960986101439465662044441464600905026475996303328058833237221782340945901239640555594302388737721281790546862508443487403084525390916339814492422839690329810900401429927084838997326158730165727154813305574769181014019017590906351123158366569979609728684187891416545541050051720540186940398880313083576152251361271224717015367829340442304093504091859440751948830945527011240106406155494689837577004339352405633572717077821825708021022726038172364542530623146000136711206124755452365400492748203187948280483921288586953181869800766336152116607586470398146998525219238398199160548425983084391156340888187247322219866308714286766621784935708885514026863626116391688498562896896335399405367763370014976264717210250349939277513233330139525952247964112044424144282822512023572490348575899026841884712913296836440241402393147046436197091490764999751687254714170602270605454746671675754138137238584604553224001045080566409965682183240141924569929877245053560805260912801284582981408629099674605249157503830451869209212244828220049405033230880760974598565122917962371459836957322768220861667162154848031384988464778018235924822161296971989947964324108804094132133716996756508993396438076813757034239460915065793006833893585092625250780451178317988951169563713511925756589546389001063456116109158966876549143423291666149905682540764266593204247180272301528810911588421947979566806985958979945818509824907562202289108417496474938886946873507538596245485450174002608769557581219449230576862364895349170237741627296991671196418415769275464007748268999445943352827126977752436995526288353522120525359118179183544120751744235771532220786708333093689318535326076750896725328727460993683469319727688710895336206685256483207351745195096964032897888797284968942341101152052093538341069143254485142070258566163224109079596889307655435544404025733573193169651548152994175104486478762529533189367974716394732460598054312370807086039745359041382650637877065443979228200088991918461705564685461182634024382920791367155896206709322223929295465884767458743319933748765023561270511028640245987570605233145437042484353929041137567773000231652623660316175364548520278395147920926225622650424408039463954208444957534833187939712040117375923239975155404201131446525382023289063054153931784441246615448782926176206887470168702733530207373882397849932050338141139290270989879425536508438100978901192861414569029098255248372092054466078122886510368531531246464159588608642214922413773200823207723077663035960055471659574917927781003067877789443949595985334656981793817639752737797228078245859554804197314505337802678290542507874138460145007486580645817540198731483278539706027151502588589693542077902958012113578152891530947565300208428009344039697164852956706135911304752686918205084777516943256943339233033398537722054124483147293110238511858179952895680442369186020218250854915399330390232458740588850490192630878759494850537675951041115909156484001388516289954574596650545037957485111019985750410070997989830470584466839864089861773795816904634766165770492552629810698167571097096541855775022556341565539375881680483627810566829400549654841718914173623125892396099818164284145764292330050620187656430810863206647125579198034281309234734521435641222504148224610663132499334310521880600641526535740784657151198397585696435504949634194885921288103092662748558705767613136709493338820079613425853944525707288761072651989335138148449541345336897074105502470908174986590472628687471352499495343926574985352784673039585174513553481518996949904599534284697781592681975655708529285366527142658025439604738537501285698550380366361585467854209245771901089969682252108955280491339194507938004360167517754932996019779219948483840143948734054350102041778871503707362568707414032783258311253096114240115270766978528181887436026594197564878082005681089524609538725756474760831172536129759660623339653098057263467348314346435816354302109246279334030232713858341544835563894220249473909300540114160696256524859250229396866920695602885566674854706843168557792440645158255286203972610551565889576328607810332574213451310008310063505029069068370628227950006311578945164961310131691042393772525951964757393468017627794964867622882904349038150704747482213434827126115618019110455924324371700503676105458678190339658219634401646710356589285403333997762056039286305121322358600400432142550016540188327604221783577096240621088111255165944349857355791530139579209074010010371601571534783043350937735563262133496486101317662181401494011667502949384240541833863651108062781630899976850837639499168665973027634899495680454817508058479510051408031935240113790460804056467724575979376355519098570187248255098041764430257503808654738584769859295369174218828842438356695873302768821527546501725230785627860481986811923426999514099464004856392399417586241952071823170379562409386379546548564345697187428065411175370815843365768601085448570941350159727438100019390254828896718554488091440993145628272538965991083440410785556329109342198874879853372041231369675326907162051413654428497850728368542662568914103348141763358046581474835117343580059816240868958528020396583427464237424113313749239654047498348916568955120626390222496815123671464993676115200948019503477289951899213459123777593471721175977351122377716381862900358210090557588786120084742036122971663815720502054358113869479300233688995009670878114334846566102166930627816801160867103206111985841477082840002709092521993539353987974098267037719536336064701033365279962870668914603296772109146811225482279592922652769024896266329774717416154866785678574729844902945954472104364546133598496476121564412966581810825272811377618044972193609859420371701351791480793249876210996352802061073058406653154438828771581120661079282066066316764713175840695119313154818444650459576364039507255387419043807409956988178252056446717445061302855013978925976942846643653424080869215144799898204675874997454634188653453648017610905594476274608045695276288336745419021332366617067466656583474471718504085981263770380387835197361465787721853962487292719237078873890396445778083120293433058054752380128302281478825542520460807339628419018627111632727721347507581537653781837641576508809286506814744310961417586737543568052157837214354846367525468981684723281204041299488059917883004694554308797106204596323542928615292353917357158487995181631824807402218850631899574531676636547243251718833572342340973825102495206255119740190915948766709039104378098724062841663342795748949184853414420785140124022420605136276922446922082871846603974352140143925142115161824615260250370801183997178242857449328480660571475207757833418255759151734344619242861901275423688596711729502419918934607081947323768980301717302167882218243171413446446765173785693936944261227529892092861684394757558320912576044679938349650270537674584464302599327847563075664626613144579971844044274259950007831397595992701568424933228016451408531994541045536409643023476172267480002336372287959739702686828077321731467514408457529647469767639616827048044172903492119730821516554032135303798138118433572073532526733900926688590928038134906994398868852298532755145940075066328144588504087527155554197863946659173713780556239138975413415322522726383706125234188990338269691320862302591508618355296817045585632204873519166068651979165365416533535475051118840622073341216117696178927232661608216208518597003287780921020644446224591407482860367449644310086437134509869648794275469917643368047500400501051309368780553216759904630818059657882587082140231905412716211017276178534554841114112991233360796219345895203132777376863046705764089394942420173100275261166634531844619932301681083847336236027563376804954138208302296596877789474883175940656703493027317536573698583729825694252874046635299897843350542208740880702488424781998674634962530657072281639973351105797959456872094858964642437669703007175772972916123326866004729247500181298924969528987878689963634325546950633093441770678629158067828781254745011427127249946259332912523225004431361859166163802346333021838814564917257351458845461051872982860947047512587984845844314065099885005654220729994496138091439021945478791511293358379035862461983022528641455498036547486714720003145575985815937373792442414123632391507650343700843599732077279762846995433224190489319124752302142957769460230509130915288387338020184462199205295759216535428165516994167920409001093642652232488544614415274135354355409674605461252959573056438046942291603080981885434399244584852886749975424610480043041187335946647717457278036053837661613351871450766920669011793668717989292303683375922756105730466980247565935912755796779513646801317221020153105081651859723996618737328993948151692593109944524298641083512193589736834717585700364243822643197170964225341962004268204030469112321932617449393529100865682656074978914097670138481260967539556778014618557402265552915912988308299326738490418118296301775550675161195812626289533285277153855541333632230401629902787631914714901556959442462069769730641897973494527077499646735463747164888093191775281276746945644199161854448129759703772130443740534965432439002475335341366273228163040493423467031943498797988061413365627691097923349188112584425458834805402022133357110653887395695723476182177427424890430013812481555078075489995364537936828091037887253785954964463772711248904816353567144585377965183935303767489440835587847652176338831222320084907440832446081863167739952915275732707667289431099075504346128599855316713355444605354848678636725095697798643012977386744050008269887270466132309034758199532729612892310624262545858983519464742303859354967813086072044458192743505721387723438626835199287333889074147412197791972466889359318377946079067491451881278780665601699696379326543662029654043995440655593194668150034309095552949837592707396384341873919941281198385580553619676608457197575089320367816289376353729506359999263843537131559895290221189864604132206841118758911625708462453562307914510690909272004034771483147565926625149745282309700992863212802649379065287696477773430684239130518972946234279231268113967694231623254385940251499349704550479991345584358755715204403295343848987964051550518430517796572460631913081532605590911779650354125952281324516426233539768975955088556350915672414053783304758670312322455171583048406019661847559645689217366398089330640820937666172034982610187515097345409800727166080853669688501828045732051042596831903807666003216477313871487044698224978138530361774683810278101474544474773390910356755641195003961138277767516575414558164654880178315882808585757773678096654078383750997562225699229293042078309090888868627775954035662100662689906602865557770215031434781040075778001659645724037201098029345077079076016684009622907037030275925396891515060096825827858731901907166659941495035824631041766577889208177063878911147702555835831512161360544524255911089094939822833492470339003472262208795733694127869057207736144552332391650819007048708953451811088828470474563708683995900708664848635445876544112372113827752135046236317609180371441715461866198099010573458065016061030305542329926170525256935310861003537874922047557489583129953760074151030398395409742445870984170020207773781403121513521619883632023350046118820225073279143430010628755454062885367932464862768759985028330651200661131613868472217400970696284644256562257824877944730988289726728231160038933697134068535029359551564235479687472351329131125137257279994420606296221763079659207811662371898347843269516554124211721446179782200194506703665462587843096839643650438922154887079488485229464340015409671510850050297693970662416223641522393218204744354021399354549913137953746226770366168405840405014997990256550812066134882866370755803968546409408302741724946151525042634349127496737827334106856669981398883765355273806448396461518417388477825896513685291102085096428306441803892776184802340230760946421862850706355900624714102715854346239331646091136737478713498339594487609111913697519185826869363737676517771313290881220540492917706861147809965935929648386365515709777390509198531296644087406806613018900320646827787502072644126983562963060141130054454074447189993231035002949255571792783089222368368336545151637578338749416781665307923185778675540793544511427154765872412235818755112251294099775975292389290739394755128173987232276454713605212743150242651383440174043660592010310979323044133054102371889287949243921378307795301752772545588115869599631016090225680317592900890437642099999609894498139608640871909936330325194695517306414794067757083992441473216493364519686706787296168306966670692715418525336966047725237644249842180930718534786535555183309616698288903877190155201893232851150046876349835196684044799975534561851449301901386338921535541793901371993635335580582944289053577856011604812613417351210717967678256969334520728241247370276237691815385865993276687187533809386145200841736364899746697817850870938389365546087085269808286664933413931661562169069903960162383287677792656239879274703641358779586261858971256254294370218682936007940159075903620125180704146394283661931198349146214445146247630707006898592068597006676906683800861678906713850078960729050588568806453687181476682716122006492772461542261731281266487789170393261958320595665485000785970769373855785974091135587337714838508456604368654185810174588947723879322286754014023630482839854766196080556401793560076362997796524899305120570403625700949972323806825635784600636564693940863461239179715750965113078507835873865884020655404381789560939370487412455198433138547163581954758945264994207316843519064016970240381075638932949559360018976591413054944020843276739170016595983286853821447992140171117839397264217365497312827102653716618230551421378900904652016326544935724191334467691704636289405281102600255594860948514436139746583656516870314513770268064453935244567019665272349336960203397268708609326014682036534049845199196425502063672988103393969384308774143116883973534115587205084018354544979637617610444889513167508783981265048090210291592957606107938341376851344481276542029323817797876380190666671121202640583251407629361335338765745004891800016230444473630983828217290017184539084838828682669896476513269174933226548868933577948319983048496235300346581478896951111928273017565593961192191486972550745321038927209078014377365740994445368622086048985099271278215106390880979828182291393249519042255361190858759301160027041623985898405156795959529869808557898456218840225043857905454698485191963522968146265719693880788435774501382073873578526494723796554117373415901518415255354220931208751682180982584440482135116177334079983525354222866979986056795407045798842777567044004479537576960751532120119419382451694497419145814917147976589434369439093098552779935959949045695454642643087037097949245163242415145182236763703388881364625370102830469158791164809879893430708446076723700329620594852235285502641750213730327429583531253336861279452086651195279096573807224523094172466490808663707955268785184286584102572219094185480013491941628562616546358455857352650410208952164748486521051158960566719734117840831195892160433791865802829590890029799838778975708468679462417973137229116895300393616292250271475555481508523079317047499823454137605587627054804338503203396473782323722237404931425983046913253970237801877859726263425162479480560944110093201117104480277175371400236708317949083990553146268874011013022801387246567655742902334533502544320901614138408630476839371594641988942154104571847777335357994813403431473920924397348872704607861520144695631092538305588682452971646546349104067378735332677435202543335358724133105462655999042613323117695060278445753410465955783959773875074149848448786249272771957232086089116705909244418012146031882396472834271830412988312722119384131749803144239935513801259945140609867856247410639637378228464437146554213931521530900741533516975973926175406861255229628720503221336987358080496318312166426109981521322275442420040128202535202799874866573988251013056125462649064027669615942717122657321934548456107462252606993967728912723654448559790086043112268515603237648366729175773417035339557584349383474469938266024875557283535425981669112096781196352951077005343580130150672134891494081863598754934476325241907589754618194640384881070570144485959876749412329747426630603198185770277783507164961430368529087884912415733452381792521495718026062795108636066865379496409405611528886261893842859316933306103889932213636941913494457916782238512049728896404147128668349253884996585734706211947892000117012558392536022541084152399147357641685615113450803547804825637757794849614484948426909037649905684482307097714350823669078913167981905938025537816817951672667645304463220929555897523047554489479997377336888030296530078794131029886462589492826268670089084695890013466831484909161279709419070719366541326048063107062251086800094689829392703836846977912541891030682053775590195495264842596538299823391744954251203559896824858679093033614315368150945437114076094390738886020840087765457244799775543938153176019625023124171383985591572320457763220168173999111720154148450022893936240090274105878831384730564373246746653331136486764041745892962324426372115994774377778876274833104717100924741160319035321578008159264148802333417889710586970014611369979309858440178695551578109760551467673521727453348565341914836169609758398289650137729886111579870462040438249246548563308742507473830405805383784849694802122409083025603662453210645143042805828423765416223230869860125040279065501404329355865670279856131435504513695182585692342588327974949978880345811957698643932801026415807132782011119072254226097357978775684134227010996151211884650245823369512429921123290816919708110247269011598569807255459231421353281107274564904579697798770767935232362176254845092668338164751486375462475479449304694028584786792161350896194620223147890958981741881128939037000421924765387533351114750720817694479759492406070487711972329073261298147458544889759939418038769812849173618145269680173109101920466956750839461179822589586162320973632089474681560339465001950341628258948263916622512996628154350041479868604134613385322267937851844806222940085450967966611064688381888822983591976918536903134009684264132587356553539333049355701369473896499471944119468337369380859200049782191509721766161952680107354330350155877777908560074980210988026522492755497631393230916406259191415317372305582450964726655898229186870795647675625634518697194434245157767844343058764416906160967008380431662739774439074808497094233894839402526430409937391939919615511947485073583680900504704519747069853747052314643452245678759387722250816391912220920503484706828790102808507470163549551112672503518294977221954269755625620153065221275767071806364591152583089776985497398072019193245681308514694356171473728531139164263651436274719260997988052493292598026589458723658739573153186287899824866858023068518348500835772847154447958247395071559367905029978410315447422891499766414482695391255386457157515076342021278890464427520898278483724306141720057868085127918483105358536580361719211512456720596088169101076401316301997015329075602126665252211102499710219051155507376630104725195954241804139207786827268612644918938753227496406317001599636055158541657473345743386442660848173124356235214389083230920695369188901954015859424473606428662466574487316855345091579971925899147274930493365938799303560592943986264123033987409942255129737405626873698087155353368482841489592314517015628413860663397708253777704557147719216802244922205690073504809773284399292565531135726167550083924066951059821082804699313531300183961682751347409910443913337498573200855514982560784206093657747603024875755899615014652169729513054965583850853736491814979883998166588786865776528570530628440101440171265836681503698807418908718666741175540029011023751208684094408169900814196098560668227009450405737271667397430875331797153775753814209083455100755316125648687730244602732212216215360333108389438522151558799920290864172202532842324419275096808053459665384761775428092259407149309476456297011150282748994532745100876185864253239224965853719834819294793893271712373008811534799133477067006172501014576204845691215695534776622081241419515589578698156689031845838226990998155334870310302164157286998372346323139341406181665967808315720426762158156443731993445955274034177092185402803571631165633638543993301230312498782181293156151922282927280709639195459482283197414971225440751400231637641857893678559179867505581354432137846596380220381256511957129180556656557314517143918446671890919345675004748613719960965371320602086026517671807879521483339229302244466087510370566079570278837316003622523382722098332168275470023130773874558623313850966154285098000102733837052507071949919900591850603109629930591825846153083251558294691286965907509657002341239529889739720893944582219397572386328405629587050573629774082972173025131942110015545386403570758157512818863853950952484537807167033378299442424651311811336384433311983187670824506335552188033586979171011663374635397708923877518871932303788619761474309390320375239036241336204285194632350777327539266222640540986632160769966507343381251584627927610114874780975814640336372672263524813783165852438909710165317290243090161033146474036457918552103729877210105974000118014670390669966927086447807561571630140742731767225393171052008781041508275242791042895463498543575926981493400901674787626626247412364000735801624468151908663314044726368491595984093032329267496558837298792909556770664384614213500816613552652378760093736416560012335110701177963637677354594294520387517198481317317456370082109452408293371925205876998859716638105767357794497420840584103848065563190641224709347240917026547159673798629746727349021429607905557548383089944264288647627015446612335192264394643060691877855914413447804945688335915548475379061300262270043003375821267570782569600267991497173926894633919829261189427394352250932186498810886566904518344707990137150870942845890548058199824326383106398212279484635856401919984090408298550089228614728697481626189209418007086937903720852812375036277590479837192817518641867091208189447530953723169793205999880922199779340369696974179039623682155530704172807764336959057532449189333584716394094925814963739004775725180185126978264708817642107616725959536821180521070121157834350089837432815619537404513510675155495208507782164415448914486744528842217692086211590047953918855611645568232643067440499979207689839607403576409193544658762094633729998969929273318607105793692685195144832411014945441206527440533466065284415879994274909624957391325055431318661006072563579008751649767861777850704108523164333681064757365953898273705103272365874251257424439204523953066248034661797454838702024686935590352070733896439554521487624277816477901557298549026013594943456407234161396708032391583771468022955263014695867829510142165366514355941693515166398416057257171824810027583979363213570881713790826130622101730337950203566430914840618927776779330355544067919575685148596839125147899882448168605201175059570039689673470835334814030393632201126419885724554483292513341221808238962290291496704017732424585304722214079673984008355375189088726796047168139911870958750489278702502279630085664404185309618729618916295778465099803697371236675268168972906779671244795436251151534342304413424358114172641583581476550536580051382195890789154459827022467362915005312590058419659427905080377499572309554716714650933379101637193335732781883306156641671733712828961270384880264787001416196994986268218850414267107611517237757146097092547879323141183308580533921388704839051757153998713779648863008900289156872764103077765748583230691082482522012802695410783225838649088279649799287936127003478740171753040926515815193491313656318854559279430292775573270375394981605565973763179202572179458396855694105913445927602958943456536601648155910796539178049510995101253691375019651895440505234581721917009064668041569097741805892036518392058506204869312282007109268522417447477929042054087061707943616830850659146339172777876685760183531956305927497848768491426125979116774832960095006573118599726662152272349985871586549515489866368279251017325087028590679250752326159018559411363579884656146986683131999727216762750515242007452454990500720945009893023929862548508849308220711029640295591920365128926436118478883927475617012741609863969695084457416385597676021753324562112963826163488124402606341753997472316026366376626409592634658878667279833869257128351118653113615004024428954871838418942335191895360585885994866131562860350897264282274791622576872156340200315135066058905838840112798105125408840295901260615755647875359662598835461330704066064059500969445029638068652437206720322544602664091306267776088544908285970223510650866879812827379404645125419012807593437883357094829876431518708095484370236501362158737414077360207388988992716943622217076246143410367043615207000138794233353315409615108000111215797154942365717395000198299849193676520345854239610439536828384026966686607110698038349023285675280446952107363224794203419810089768852712728266174645475996077542372443239775645114503085538768548617496489701063412259324613140621712970783498695091460001029803254551316917157632931922143973957319116571758142329869927994310770838696632160569476718553824663419843326068181880674066097352048951551300580469492958115302867618963154729889811699975729026167486682034145583554532962525690926788696133781078568023358366738510801190020490180908455378639207548268215710534667950715057066538882043555520896154095136241741042660270190948801902027300890843387747369984189883391677882237759250140300650249234121832009000221276246602884757420377574955087143770821117702326809657869924286551293812273123015310895842909652685501578777291072641159106553326087059967420436314338124062386413634042303186872375496168071398917970123726778673919046861307421684566008550187525464711393739558737282679253823017495251290857264869872916852988023143365711876391483698013205218632708975810905683913818882442021607984080615704599808962018675063091454416719660379447333868492655447187363989632412117861317907686999416355816241697099672151060774530639565647988786539118245189265804116485476624633682443813707109373103670937698895313008133538956582749087892089570372828443259889523100818287603356140600204258967374705198045120494554168476478508202430020805960533120310337251334574591572376118166704666877341071259683386919035817385984108832523866439146807335267875383468231668013224569269793476559347016887898443645148652501467919857538576145547483731283274421353513620261068150351808657014203291457248524095266943895897207581458921737225623924910451633335300365177704663399583378660035175055745809492865396081158352341864235588377894574473574072385569956282051261336582576582561240261294552549854405541774315682620287632388248464294655302065950770340210541913768638119719970278635263230596092877164459456141476853870960308817743329613294504820908840638297571077722118800923748261616423752972820962199223929319705550047291299285459329079052645561086747156193682325552462161825556823417793897502580423560397012102808712664702545383728840210012353711290655099283074994139957919059046469354021688656981783086275567214540149726338810163931993543139187196182030249557957112535552710356166044674465669193671060496872647625123563907214025093274025775987587108384295998212915164043399702351524785273711869550228565896451430507751767566219012617142145506863445020981742280000627169771148546497379022235845102161924935006871731253261733111939443111191334589642296712242010909109841430315697638867092514171420416358235810347578809736482317318237602771858554581930717973299528383149115973681641809450842695816821195068837481767204293012035142339992875657502982034524637638121608299730487634803491444653391820145850240053657400381351082102431237735466099922930486602545849348674330618285400668796526807785462276113322860500127322963431485570670630251947518740120130073970667503741691760997185361648745801995999187893252786697962293291241541267115142711064298893122860518011395754538496021752211351143757670133260289081516631735056052261692435163956579652871858682820096486215910348695868522397430568120041631566172958315323274251771545314813495557388276320010416233635070453271075015462065845326359794656228595810297563752382137885922087771549363463668769369000066062240139998854505795926427122590659445311030984239797604770816275855231013098515408272020212242605590418371400895177341483626163583167823917890719786129617949457882061623286068250830198382074165291466109766720953562970379568445194256108156910269599452644885414306220459337311404124726280728372219554069110541272577270725390026941118312694528026962027994594117084298815638691687173792679270701119507092095873265807590166704657821796966400073226027949004126042723462020512103064610060475936541518623104950570673708989098198270912550543359408952922094539850402000655435629864314246298400177561696075921458490984524617064675734759595486915641926825080120748335762928296233954385080506341646031374243235886406943138707080062448344564022064470326556919817073914054661695476890760085116698525341339165263212397408583714539225835820248879005695433461485106427315976337390757279525464950592315527529815696858379795275396357064727196664481950442684413607619811625120146342958267505724816026542042442380555300475544912806486104443728603144955248182817821700804236911965107791960947938018226476544578748219150699179002334829862234303124656599234087339648362412181043686525249874722944414828586795662451039159100692181210492602487579463922974846569056684291150199219334306082757267617653031165136026943995020961058381277805810841588812832017787555599476954187943208952506268731945253661520177424947181142462787031339797406237280656559709286551225906040285687850711503027210883238437208602029902968195309593591723575583784129061686942015924168550064615169380000445337968860062271405842401222968364690673948654470512161070873767772596424588105602137398451517165558093130352838979752411830203305464203621098757169375666902597052987662276332492047144830387532349650027782238851586766934055571215606749596526882129204290687044549143698998747372745079952353545296670204279435246740808377935442920594203603636874034541557482634247471900820542711298845876493731849162132054810897926456956759054641185898868011699730778829183373252227034233398175099201472839465944190046401739319511266656630814435550208278208691777567199911267759416416224511975464704088247338330947482312195596612561808356916076319326779840507791960255715717904620003414885084912653385170243573968518827604697076078115665904501439779008196643002771699686554297052875891930957101711940129217929644191679739920564438709247985566978363684809882900870893522388995515405218219452958490169912008597364579870956505085586408419731125222298171236907561099542539153366428135349376536771707447793241727313986998911946071407659927808929544018349622638149821648259464738219477260232332975131552161701952854016458239574613454417435714963326718154544375839355077563766206870961059219600915050654354142208118609150685248881964885692976896223080360761166643780408066838801236248332276986109642786215391923049630443818598393719630816146263827713549363279349206080428023839104396932972294994400424780038489673091549136078983439935313610224289964502089243153068591635435864526466085953548701552356445294252482149753911471274423104113012946356003901704412368793491053895153209590623567697374268018436530019806675024992707224812649273702325847880254203352349621192743292228666700032113260906161102302744398370166813591109906605025571168757083261025077272031384146731439832475298603059192005622823238177639528644712637677006410103965212774835571610051409844895561024054672378097333896342893556405071359327750223011988574961851616734396063329191778378573627877026781257973730288723288231207843348906136061576074973770740653113355775237061879192776491027107821881313013497748052860475313302198852195527146724701472613363538221975596750465523513640298136927265125961583890674506015675065516150847314811805802217336621076011829606554355280836263358715793834568776173904950480994384091904904270374090010692982118344858913273019388779784525979742009655227019171394121555742354970861625577479251887810701806573480569095481030660221255013617596520117747027037306266315913680023904441436050773490615096330937667445018629617203234597356085991564173316396335600698985827103426400625408099431716218126098508404791775074256668926916108038729520679593755252094363269430291128062653479427553299227401574106884351049121587556355756139376751773073382341455765061523895974867043870969144790530254600136432073259409470258834837286793396360733074419134883315120039973733148754100010003443161208307512945811636933905550249356700741764387487159972317098125903559475958151859022501477572246655041348206730823056630531963560595628908367094992676465148283125168606994785507870875858425510510833549313954191658156653486673088104486285874275407929246023702941852103574001415917329630904317427622923726664991703866478584799789286393229776306244174650338457439504654111351835216524667291828157245997081685734664825040572593095893819772797852466053570116583816566893298022956940153981871098852239346124934984082923370859455960140297624087554579570904477657081569173319559748207143324880060793310341854336878820153836950197635165254762464690845441743696119018096707803697159952925682098586682283013977883213806046156829046989380674569672401341108245851919437239526259711521683545587296619446404005079255625886724978168827539499718547808002161877457099499732350131549981292609160441335754884034938801467985680667610271265509244373954266924138023617230405650721434421582687764490341724514037583378841144432221732395130538922307378933991554531840451050495902625730285635643008704403183462944284542899215829893893877242963878159282253507727737021855398446855271109107285248021632179589947708421863613794175027843449477984597143814454631574942221444728448199476282259189889252247108804732735792105186934881650340504028225669723168756906738641362381481813863135845405113522060651990273832917743633856593488570845495071287936694581641236883085932482917835981150803465289305378230689643076151055589370346299864131415512563587336568768789044421322626331045082475954124852151035460061041118894300358804138162341108804973439069045256153306879524517425610940779708257642694874808027778670425452153813636923212523740958522668654705605848417211335353277022313360255801787208442911511401222467139630828594861804506137723146299232256923919251304095488881920388905442447453858153551938074887447282130107524444282286821268824671922875356835740346870823255287410861472984501248157896211438172940420504920989112265335535384964302918655365068099078051609826493542373563733178440324235346380641909043120758838563079157444303398307844009196176215505963197759344092871386641731483292374652697095560256262485188519780785458406486315868840996173451126406468386851547316125018089888927750954488615100999993392692566642404484350035458794129675465960180818403625918624197964377638285770045719838645393093612072467838760646833232539982106498197906089740341925397771446659695751014425117804561641417634774028335880878428774036466772202818499653273625187168797935331415250794836383848565896080841616274050159408959318279950713645963661417402709603457211709981272511838436020663507417656469936537400130418980207258204901088300924951488387010783429766519600038800863607746761607704920504592714190764364483089379461048028784794489347198021848773420673950454812982885145174253547762676519124994877059596382746093651349110151169347341138052623196851501633146228420676598553313121270019974779655693054926590510002024352006053169824822493924232025013985638592735722327431282115175165879240577559413358226571793644637682800872421286787041694014264246149215150885129302513884419980232178910441536327783653817914580748880210266115785167607819456657625648117721576236006302384215440589412724616858080417755912223714728250093643758924148159222165953116046380782045901179001864716973990439913629178361127599715354896703585428908691830855590931946465610479168234212930238510166955000633824582087579787931819109679348349948438592163815501812640807678019322421675506650551960608162856311221007008082013362237632301732185189979741190665379043940834171581501070532576748630779348963667526001020058731185284904038146638896421603116842315297520280513349079254301458514598492164713790189653409039708785579367535976474348079814133040161955497907468678074397452935205716264322404651946227714608591866220563077045570236000671927874567850288442117322100033280615731231812347411114106104263576100893896766696891378109616845059468403828263136066787940571441275931565798292797284077736637133534849164801837636818459639159797256193740050535732233222544913651668496764747376310464794543048942919576784323123043155321714853169812789487788544207741984474437566086931856699145328568352569818427961486441700175294777862646044983810014066658703762582105493620088639006414450036442981055353183285204902817999837556921533376132567330752378983681181839768904195694240964028164995997880548741134815034122010841816770041877142389666218571415021686914176349612980369453139979242988232390828167337586415589837315686683588622461850909071678405313471256598191208884779578982802133900667942833849481363412595802083117429070614891375112003790079804454875132925817505386611180401655817355673489595722203514400730841068048713519243347536135722667430280128546753974446428169316130119210488982150857733213049829456516134965633373658729065424057677822037739960746758486041279334405769511746895437281024129863052339705176811945252730133989875611190630530106681112956949678911496034976922748504331329908677981827072469543698396278105980074736879934649134518420563272478448153216081215262807016706189306717334335931013480038994090819986868978459188758179427428124891728840435593209486536142175816795186927976967478801534173925561954836502034489021530456977052723857917526287422342721181330263889932099294429871428632601110166900949531466553985454002593405881890992747958282257537384526528080873414663419883727281515568256300377213135602120804422098186376771088455854438263923147542989730968918732918174428373342114132616327858440422110365282626416858533294367841009768835035264339378159291053227667974668829694447344357916251204194375786322854202579398576658384706450402287915515042294077193106243593374476495618526853233355605999830732836521129198420587228018177358689662885354804636980213654289703478653542887741874055533380269711758202456662598737952413515484982411221931015316000940792583638510903359146443555628305422394050550648119614533378194955984882200798826310174104759541924747829176268038910692596854280428065876173073979412514760524765724931685153795032372276836420502740529391092050360772411646726042000815400138981210477032374590401292222583233144988404271258562792134304262167546441570413939723597715674317179834511592652585650333570490210139165745312439213140787297030776798336170161230421703090860863633894709916682564702428092950164713471675075553679879526785736343648765205331374437283164454559702899097179509142805832320854496548244267366484969884237256056185307747929799996218003316593360346575805289980876027937327441974411162910186473059531959325222086551743810460994849955828092770797667186153671386558419359826917922944332042414894356029050377404983231697550437026498086021828910969827004274558437960388416350124678585207019156476685047360409511585091330303151075365787745698513315578838902759630543904080354645439462180964476878427861653829693605648744931231975357767085384833511406865748752066012345345526388447570735677906858919362537152443138470385887462035692718087731952054613802584871833490049904236912586664663656756900135646912043021252146925823876040734590266650649017211700727206217172701662080977536126719170350057479022821134468539799902821914782652666232609043639184309992916030720605699531927501165339882629337763672405479107457993459920895345675393366933867530814850167622157175835390697823129874472453742470117198937167293388863020802690716449721116165255209930752909836489628633239298260196525558519708750089186922802018417239278442292836936155595299858604043446479553551418332575000389830656270731790472753768234051418286784883874895453071111208765579630143928196770782860468864762596033016106098047094638403623051418731473789147713829854696931487319830968455364066412162620849284619141336241155364949769729140351535720980469706638530143747206173696232742988001081215687446581781992201494688659832177212195817749049487528141954042899655826815107693504254405353521193864835163620189541977948654501928521080427014826030160019175041923813284313705159701838309646145438583971849405582561771106992418573510437494883911240519965647437643937806848977967440855784737349031013858369454727157854318455963181681660595146080451830211717931826842757712422019331118519686165038652501805036218517641025144676256467556703381772594558920478782268821853289205946038538266690396981023530252132815420480074949329311513641046165236882093229083173952722607985294295202552798222864718290866036776322352386470786683485511349206863475750713428777923536126969257253571036540455160026599468475860839629470594366945057624250579139664568487438910329368417417792968794852698710840519898710227743331560296703317750224897753851434412158596033658646945368346377770379868392231368604442358254610327115923552629348220835348185044194932481303012483703629621839431079856215200092594334215098437019962500274503300370377815361032747843648756908387213312423111232650599143003916274637316575684150467062569230678017416047468679968957347507339851413865049915012219085592061195238040664762788264578217243288520429032885432767021151395609525402142123157526097082589539489211622422191868976773507565596345239163920167096594291691690845965380461939660712673334578933213657577993968326748028574516369070354532261074222698534219995250920256576935179276039115008456743857500204312011107681142788024076886364351390727636934027259017652976990907112853406077184752953136427755280551662381229108242057337164509677785994966362309830527575383909559444400686061270243239349655050741485058716870665405493721360168712052577807052502947528559739960577527824287804159234763411370751188251654968080435442418296538779099028753891742089476888228646088606344394232947408459477807619023983526850648147432075759647594643088798899350361533159976235000354968041955246242128403385295283970191785482953774594256365285495757573057848917002996628935967659296435060617649071247211634788870239644854991710441906624731366981241899492209060666901628615680313725968521688004305638597830361088134607929907442746589117545904085620702709842493565385050219353453103649296966764445001124236627056456482848896031381875054064040401864720845642877976482906543127838733152599466264514783485145216214835806344608013599368087931949708053872641930589363968521746617690392573161735337637488777228046354178598937727644814260916386501651174240479040053175179978168419004716208000782552585453569726848168452319360002330702645755391172791075853829379392534743230541990629009740227296207749691750715835816612170315784532785759223528308473423015992055563734627489714858855226464676005580612066411972809517797016014263514670523840949527145715161359068040047768054587124509411054172434575132209021842575347958647557253471912413609620508411370856710389118475195101854993251832901387792253214196736430542129984959727326565566474262661537540563108639752527890490176148522948395172246491510912682040257083752416796973025651505748645858795491907561251846067950347398168768706163253006354684731865382263337134591882772532058782479469301171763545284549036091134255251011901359414731638041965479114177331873634041523753609734201095183366070506529527463580587802051077511600735813551415846400506924257738053971900037401953334740598587791008681245678458796766088702816147759765395250421277167533348446000308096854148303119279858259761974355443060398648363368451629296511203861666695777576558588159388853113808288166809215766807942869897090576381793198433832962487209469897515784145127113737054135692442212244020433444126175596190854313449098214847805977911071145502949161096940953350352909205893124976436462991769976477534838453360927179484259284613281142027921233262869506912921578502769159979495051827344703024515231776440508905479557678882556736641410704157448047997455545325936990907081828978429047876657227836340132104586383924816350626088303577927278790426693707010809367443297051059324675069222822276531529633597607893527053338635822508041946502137884408280010690004404235726309171097208156233314640430522567700356358356351761011788854482109823370768294351619933275063373414768057239765289789768288056934528831163487736357874854687405533700588302742154088589468487577560525550709149124832297226961487739655880872089431862484149646239850053283185487254581555690508839223212923030330835517262611550288359868966283875369580673855765809968685477430456898422862679523684629049853872350269220802652239107613272206396382507594219934592042279025048458245439795268991969855530423011727663527755951518160279109003340742941734415043169942646486420825243602650961532630799777000929971462459933215817222871488854626474408585225383678783680867464435654182328075315877801960242268414155272756667484849184366101379090204377081068773133839686695591843522281442133039112313493903745382311268183117507661128654227440071330364792605293783908492215653808720612496811519670261052448628257981314733752579028609254006686652380728337824144519398367645558549523292852634973269632739065446398331830093959316760087615565308383253008768458979636042532759175705946964716864638453537817964036736369658056330890173386420078813278069785865202886302033470304405468167010353467891527192468060121244001509486176806297821581200079267620695330391788129292986988651563907061433597312681267653902576869210522701994827785286686589890139909525838311849487622368267947460684251177633453842001597388406120181698297542705489060351841925290902830433218437063959888423861680268624645699881365139786238223952746594398750588617362322422943436233584622702028819985892622948967842721158694996191985770822327637570787484601946476252864250584173764393408873395723613313652757974500749947141276809375334046932957037759884795947031451689264660135010903992647304559183999508526502984481958069092711716220891694824528457280673771080706834564269494934215809509624365671257788356991452332943082792494420864115686800234336605406148809312229687203776861397624121677086445027608525235128149402021542250200096881519833705918283599636932737272567970199279783660860357420325721694400036011576985188397526060103522761689778355508752801033090053757423899242886909139179995725494636429986794457757312737579725929089333914895999266247413211183343675077114795960723744911776413390062034430343586502723120034024569268616788539402655441455226812223536264107566391565104938827330170531326935365965471216465486732860301729073529903275961971127149994355022893257195329968264186265926416927503595792185781421974056757430555359827520887885453407518452404109034921410894575594237125023071340979062607048282334632726610860130414734827975005440516308601072915239547759929738037456590836020790121531129940309817047159023785016351239902731942745407818904637486560319031523089398820523900496873120124500060938618142935981635399833715593759487484765796923543336315257099785019812219603976652515963179765180086108668337878766353704711951436834786629199765916383865321900710966402778767702708634607682387177954494818316223484151241479643100606233479667752325215348185847776806904371249262938120861966318287784797667102117735648763718889859085368945137488087205776272868071082593436481003372508668725804521482485119618292716629239010133377033010114996195744158733411286331488179280475995062237408351935024332006277706983075021059906696955378210267796121190841643029370929875996350608823394375264050884122292307013075265240094286035104701453786675445981820667613910964346542245003910804927390676972079875783274397675423699512766129996172293421190710570001459334117145772411577868723796631840228316202812239877277660831449300721400931758719803658238519316523519502533953633389152473330288236570302382355272848705457856049731721001155359367527253921834201570703974733080409407850719525504664489932863418125713867251542366248280684972173292691446895662336932514990681513935525523181964082631298277142589909802185080007121968605108727678608292859809707090220302800909481995355975340966493687444506704793499236338669484999551507258607760185394577594015524914215892655468217251624017762735810259551558241895494853786869833448449485258720704295732841680209979961816779265648187444319325961892592347490162329154110309085975067880635712697175944287335837699473434385507955634834571641493950335925912043142517445023877937132250748540863400326330230104437950059631826512502481284702048899784316736869924092001773798810070667075865900457485640754732072032101858689953047206807607137114951348276832060263934573346351610220131610013485135487019350382865670935372805918685801346553210679594304120203495863530642840182528646747051523315792195605367976279626622581574554942876937872314480573240701312247398903069703351313246069059915281863240822148476634409773071212655316378517388164430666916700614091291374758963398558239495892474663200034328946641633180520836130296577153263311097372827562427529807992750710884319971926891275662125299584173240032400690655006701098107401698793322174774846026388910514811758452409151778320633498747023049192760147296143860502207445027797001137117668735623941189213452753295781814622814884808738491536789216039872724180233328101325718509302138366250533468119767259740050006532428530589436246862943463726407800226820338723762480004984832491619190965583976598058471381463054949701528332481915054221654795778060291560983329349792926218925221461586729166607123014867834948531084603876046747389284209649831921826023300254336766048635885130810495326239483685023402059823716665822838645448532152571875822171596366209630175554761759247946101024185689107702760286678800808645815037089981998219026647554100373340086721818585059155109463114693015450162331139200487344136213078453854712635569313358364262615156425572458943715326699337801421206996379236658974634840158617066027779100289553626970782500886696089017388957466380511646420414458753359986760458501710689073305903355337581940086482353474869095834416793833197884080590506377147332562044615590074846233862483701577675297355285508101654459267152890600313872021611086210798080826413483629776333112450742628698764065641223773038178590995001640285328486671648750369647070031830632947087572569252471325881442319828065691995675502962410208281019841360317796691438876212753785548481120289859302238190181747301355050769610133637559073818025900070086729050744713346771630270517624656642198472514971318954244333882952306177267162293501997182912312517350063477617053041569805051852258296191764721708516665840259375108982350499307173575905954807702808818676191754475152664097637036341026940905060793556138539566148484728743360735880018804470382211374229110962701159357560332970560578485081708042413263279358230535424606338422885634101692285401149034822261914664770845995696559048379401565791229628060254032383002958733750680232302342039232794571769902597901968448048318849946370377159085994710925193602758323027367865100777273188667119907424281451292509718597813484678632016479615891145485662158419712083192613041467630720387535528423449085520661189698149837589329766259709395621573691544200274521725989868343123808429042854821468033333104440163338271894493750158071367326563175410814809560098446814875774923955366269558440527735329473376993037066756105106184694367276455579279605656931470123472319693319777205701214887541465239198622377851040339360380650151458461385846529324263129393555370291674631081099116669874995832431649484541094438721636164674945609394268829319928313322696640426132599836535407743477477641424057068514941393486619866797247400777857697495592648935835747584387226938424452820968886320570258298916536841053165535800611620709767888780947868677561766121318283467023896234537323554060879029874002491417513636018403141858864348105852091073504696147132066580790013262330870016736144099108685413955076471661003496851577060937579618093692405837551198164541466057879376608527599990723652691988421943873153867744342699066895666426226895441299243828003175902136125522551209528103117098196196060000770503839335905480134072302088127510658721425523313495369495423625721041291193509102086867813954683559140982321264848028330579832304036660769405973578570096589061489060531196446670471856111103708314570879857028525427389082895413284553551421942907906830135481753722515131352160270399483461036727353658205953175661786538561696509114584619506523520358872992257305015962053636175904292529062908415802784141497719034687992527134915688783079629876822706196271589941789475468651233457242683332339706594434377060816182296615759445148338698402659825599829556430026004832970640569912780433145111524378189699680747918533143044783717573147359975887946979302323864236226892567353720983157915594717177349133646264843347430733618242219159374605205897554791113011204963965518777496996886375312540118400144654828083943107167044495079485078900461395283037433970176448819311999750249829980686542870692310346815291849792651308501414026706830907899987184246185985219679449473314280866226338534531372214105067100381655694974823551729513734132599027883708706603379763214648715095378338898665791584744255303988299646689915217710156850929555690318283417960379083162525762507002977510102730274021698025067089450959936971143377757041829144556909027068077326100354460910445766508876351111049149499516091162604251643432967952315388557793542784376199159751337838142742764464095297233165318106756546674293099772587657433593521517182450323040226404306727451655553227425476637890701979253250468887431902456859790104486913114526927221307435749256152170072678774378020930639199162991149319033734424774263383221194940833369804570807956679280035047220707975367353442331335284131435796012543072332436533314905396789329578068379779486038101502605438719962993454445213819522043150052337487361171531260163963547561615397655474978839089481830716528579250853261205507475386180464433276834079086969896471557741285671908765668971172442058157251934026936477746386507914428303667475053279527613095883791732081658691113583594952913609093889187553678628370474345144012356977909864003866493931569660195410138046514908895275224924532548582216223667572272851271190746973053282457290789363568813341853983888561108300283092478849982148981773646110023518464468315842779804426282827434372494451427211131090668416037960577900350988839306022901752141379911316762333182900769565816357512471962653003531971099993087293378518706108346683577084663186441197928143240920242444705550808032700766039441322373131152389301623290722782559200050933629690821017021527966173365255671680715255026193642366229367646396346833987608311844331924781656286743454163096558835668316903582706750122663713890279614710998481017416138567411115785806219131555005693983632278271551451666817632019745993120917930375586119822948019208647182047326538982245420879198691860690140826106892712464639933471394059529511226622336447050830402035798736639219558430557013578422034886484547173885892006933734948836778228732790929361774729931741401294574569967115293096719159277248864130367317626899033049097942695822264278393733640574663964203061373288987782482409968460707558158006165119599911878021192254413791410789342411511250078942006236135200769662145265362915644498691459284687601248223010589022202944053931232648786809387149277413995770796945531700350454285642855614779146343484001405715037943155876350758374202812086079602934606521492946171736866168137053096406959523996895817489528494732551110754219147322138364866561277094370813571362796766337157499080658637240656863226155813221633237567444124793250491766616829876937638614606461523584978164771780811073540290477195252793838445069645856712644802458619563559062884250891578060350174822744180982080649627419944893012371614270950528033574422901507373405381173619500849215806145826206306694460314862180202321990288181694455167354790567144390776401430998716263100941662519854023517225785132881504953572227855423136466065384675354765335636821095163521476785530030255611706375676679463650831136427570610875571243375210005356763518345427888257319067843292339777088048762565889332428825384143418150116064334608075674303839458365770646849358034148154855153418268838321701754065765401328448374021830747631647578759618285789479866092578679569970433646166921776360923039077011674671690712321582673745140265255430793301693089375810075853056852174980850494483774113554304041281624266203250410248413257371471782964522805181034999951660480861832084361058682569630955128706881886114571999657050408633742252639240734673440632634974936210551255697335825746816679767290421975151473632980694978566710117230214491300283836467419420913584172618227858156084604300876819418536172840537409573435069969346172019494248640149757340313658600635595199072935742159015974426179605154067397103536100304476149727269381793547523251308081896145582513760692477556571780670391491858970326065722101002006504177035704470696568316001467350195881424034062714769583951584341636669070700452367112103620777506730381551149708462054880048561510420584923791324809500356453809770586664526123381302608532558288111521155019843486478186089643371156304442556989466957265526027384843798396201528927844842281740584673866761251074591361304843121440815949199359178950410332845426565688745803691306804594429386533929523643481194610787917256781399978790293759994980025511642230465362787117467057485664396757435136528525971115612329172537622985910301461947541562318170900979704458391158797290137093533498118171971459200192286692665571064973441893492345992051907738238191310661914294230020776514889414861641947188430438290964973139696203290017645222710869076507383287408797797614603731540519248640336478656180203995464898928502659583552915106764505127268640393283953329319714836055113039454952722902202572384011553676347327402409698679711893590902691419594063426028867977980538883374028860107319977050735332565739469712427786765305303132844913309792612276931615611403072324901812462597585916677994486267635533178693686716650677133157610819019650820848609107087713808776475172155466789035158790401467905542546384220490655602598800941170186916564966114666545825799271898495253167406037056039760911622268737334118933118247851808711592126603896340551431974500046349729830988240198199533212691733458714448020455269253851441609412418081846135852237207346517861418021405827885122693068537964709564056187469655682027204596056393671835560085467746927131937463739449858928047006453793516495350691958304578726497010308391857834504826959012622604056978702332171950228526720378418924234203639159954375898626372114163964446993828535284660034213612922161698368497443084919784550052899955215595493168082267830662390005827399994373702000391214425956309477455533778052680669790804642568149143013882703576167934496691351494026821973847130159247592717994832919998177224076023910101115147690162725930397332594607824607342168624542750897420831436029432305385129109867443502400706445883436399635999743495271878699960254654498117483450698173415238670680681143827051432239292333838738937800151929403690160906520739230237250402807683952363698160875038209046188786433212900722066795624814464565412844743873191887287789458004893722885233500695076060231617519123835382735820061510486648731993784020402299900395155605722049213365741703004376921094508363880450451120097736107454756335732423328924133464886598202504561824849621443250347168390244198363677821919707240315326942326229955776424202012810467315945298374276622706242430783494752277691156077602522692697070505288634392351732676330839500340467523650286481316511409248800974740278554570970811550366036286427684964045159782003216900853367962874297306108902492838507547343760447681001797960610438105675454193654953124864358606726064731768866388232915209122180092048674496767059897084677460328946700485763149811958882416066045679882749037705801360471671816526353369946471242475530160439319559150312336482756276236470890916964551110468769067131599687818584816917675842425939470040096222338678618045864495821504094297357674883771210628993545427088772227115880324873643704443526863336431748049116021527978228211192893358842581476363172423982387611894189236042728175566201299419767933882183428569293805840782285081830639235561114195364939151232792289400073576444771627103004810341662976085377039753328779641142557297029656777550288689585851303883319651302290528759652486383511754543159061272829228977115281162493395497868336906703151818975764536497637349779071051354172275152905380096571814977707165637898063831231435802962413131777086899857181422325610299100148328378580132097189064242803778904532582136600124046577977836206539615423984532312329702218622705838222280673315115213201841044183690432216843929543498300443116125038780523573790852992222342381969534419765848248728364445814313621539094346937108869594536608705695095955217712279826329139189063371878758381568891018576476692393631002005715154034878156024808711270212543374930386348289660711962141046092393858593508933458551041887892119815239419355356969534174863704665979796481956464361572117613587552048818045807270901116059970402663706690143529932097847132543517308623108948349108507627649378645813784714193623165134815473870060953535068966553579788641439780708550431380973880859633927088316699202272739408892801960601393290038030432049975372978987041890493160872351824411231338605091665382785887659196308814211395927314165192365552061248365509556476956072263297700404312753619416231351093362877014645314510388991373721300937421151672642681941684420332028810255596642962175793133611963096199307678065212344227610060862157202475056447029889409353276691932666692213607692105438869628699305649957621690510363522110102743928160648608513736088695383582408621450409492679007750691635066885973782763455460775375935067262725443984672767597494241399702308050428847424987451413334761887118665579916698628664701620553765158542627633056711189740409560139790523144449842128377083355983751575852424213709254802099658512505235464085206065734033390365868858028195157823200428016308779097395226741279753736579334180855112782537567492926510611093191594192922178572932066205347930146230166583738155680120374410274702415618807348724967354985775683961989948947079015130118375727491982365180208503418677903001657933032787949984648737432539881553839079178727564024694962998164667248671973892738904325137732221474739512852231748682091316393128556574008066114962224424468641031634395414892822374389447549837220835461157797752694833877850427484730419599657622791815643474657916758077495026275635749971183518119696817185018845483719332835124554199049959332382476289859095696614388718202845844545023199896831302419129877747767112536004202135643291803907067125469407680455502340017893769667247832690300767248689396941436085309850033035527348951902822696832175898134514394510515487250914829590857345868645590325869408338121972860311042115973111974993313302462314218952707755536851868800144412467781190141502598991580542408850988055162902251158800607607873347089189056861879017244646668350943505320469284769247558274149511973521252943945049462918483271148350830891810646430936730931023461870668104154505487927062382084256842696388592744689970019580007219958561688268908344854369638368327493418156993055100478320960646586804978251541667926503380230278780443929105346254394756147433362460832943721528202809018538869472094912582670998823813129880782128995980807517803537263614562666575354695624478284110673249868476545090786864659326742001735047414233234544592244561915877540772069217616832036863585112847813205299959426467930610907260446282648006494159027268859920441846469348000280831540850647605837717153090143130528204965404305434359477433848757949658007186970323207612476319626225118593636845620940565244175957031221161844852726138516889023737816449512975279792907198636738648350855251358043518134737261928686314546223557009832540623441365581241672063519088493889384005299770822930512818665110702950468604091691759925400298815949811811651940301972947157682317028734081797683025256435424347384732543361717611882559708258214386819134438101871419692038225411442793838134217531261592849784130474629371679794792761975009210407156418911015728738882931983169177064430432522158738635231161717562705827878878774216168292401252947945941737404981159098839410804564664417042342078999110419916978413038961726847348499040093591692444151695072124324607882178523820907145382497098608273409445807667489924529546332339989292049851758983778399782427616217107897526423267500645383244626716540780175633640850288165226430655359399894134171185984909627377357505653968874969870406562272284592119914852025988342422772250671588245652420801174784054813110144600856152049787552661658532403998470344910061064899352195782217005290517943703225487885236325876924793674121571882046298410830433780365727477366397285262394276478039716679884999259716931759922854601516016933649582892141937271789506226994025433732071818362413906180765150320497135096108451417681797087244600567531265490324363087545029604936407115728917051112307652656506192181709668595734075468638444316241187713527318392595830080383903547738153259972129771162865810623626505160655924647064089303605893174686873038060528860523842747264966560251097264748615666130425822593086917817554323946832808278095958346983612998708542539356544425634018172756702801133483693363890778616702898902131853190771280175431535390805786937083973139659875804839996024280503970795745306252038326479988953729245855755290897438294446969467822363604999511397443663608893560788211902065719289460122102709010548484026352450601501447724577274390221629917171589092247301255822636615213312223646257486554567151607832522517876618108556591656766836728051966970644313873341564851734040704450073337314640381502276149563871758906923968041254330309063531034298077179804971278727965063549387492604403970937737147838196662009964946426490184460810715035386675158386220547207034688930022711615857949844194939407928314919749776697587871134325911070158164644621311242986284754942798189627591872771701800540310512668500867144289531254023996792231906951634525554264375832245029253880011400643458416337722902339052934142530241063601103243891765603614107559894361533102243717612482824557462307262799628111904406260707765364216791208575718868271477023872024202837010274724511228341789449468026452771487041791432708666926220709919773971135720480257378132610101704712447433398230117672431399512294709299006565413626151159236708425095376516519201782117029142022693051515145020161145400207151834869420011698178441914999770674996766382077314101164216982537574601049690592791877551073380797482621690820314805878047331614529581857328312427606825985810886379100188115242170224789994948890380663123634730486805763531730008473292299351339554290653468921410800468820480972843227662139693736279147888426789779992672610118156796438046240153724384969963333191755906883894461461966092033939308806733254651767765308353408980537599311557385096151149049786696037879722375624639512145454052337801288804764919789193134271031208346077086526857565027818280927386558950500650136306006058775117234220203065853149683336839103803236389028968304005648790284554790471965804106843998100778938838316435831959272393098792492966446282862065093643004335434180289757343518825325069531563552919786687171261258820152255159155280220282226444472007118157390946024538784494727117399319943538135027114457206601537689224916365995595000460361557520829860057689357254454015293353243038713852987618224445078670458427330926845498142106744225850973491808918463030410741775768118963861792597952531936697472689921041294951510946808443923455369993868603189249566164591538640680084894509040968958372879538032730444857967525931770289961058456504162897879539243142051854783418452609441073072981521907615581281414638890533757960742863232016300112074717737305286995158316977985992699736855032428210238950746796935165135048968740403847431265364518096998554916251601823239783036454422080009786648545677862977174654169081504665942359623265568904368947782539841735352253999754130382328340005944396695448132189533170536888872229913258397828089456587904630946253519226864777772996749346247748009626192664023394556917149837089810124032506596847236018056209955022781289518326563451557352980827521572068191056474894151567094096478256271994363525449906426119419265903166739902556012187416955284830120271310121019086479909881588655998294864464038314096441428328732793458784143314978329850943645938849076371802982940371202929385970649587534940563297712387395342727758778650543408105316018531435181512199395515131688702149332226548920367128226185420939791377384051262536180440486387358315700596450522916161347617910489925895367996162829484196918595808804450102986388376787686790304879291806410388872392257303449651770358265286361705340947387946961047961285975829721192064385644049579251137929746561686431467468713817213644670676918009668005053553690571721130303705197366721378853672588678629000210056494148689837047083522111731440014892788231295658090783340410276501418371393546849657723818697145967392356307226770983118686248764818407773296961468288583904089150549203016862140201397899250252365225080349565568135195288649871132873303911861385811284724944275026168521991662222357773015812542273874154738732362090727279918662662549332218818446799440690353138142285595409605727032890719085360274212738567109359447611954229944581426531223048047858154620562616766696272167006978760241992011585739310766046698386168374708105399847661748312090815367611662840437357273887955733152235981185377705612151639477188162053066014379912217755409233241084081639441116766853021000100877068140914167354790747345658999378352026709442273343512866504797726425593393527343941842437584570652021584277138486611175584113541527642186517959589175561603407025614720307059278110435945574270098053281726478368999818574850497193660306340079312257816046812152061179932472319225559249727227978043506450820147557617564948943385655955684920464049949115689095291577960574094563937928213816322306683978756476690111758037723498813987348321240838095498620420477345192426362532685920303474166808163774513419796601854564678740094505167190603713346682086936792483487524049506054876038298811448503947934922847690972541225443701992837648389425415842411356749485011837063551973292910119657202165725152843948515876028465198810611981295468117281573415040068956350214340740632131021355237751340255018223459120719457030684879765413163666865597713653979375696043687104469912596590377858437310884216874907530241987402023671809798991672649062911582782096433162371542149906654757430597042832223148440023156374277689427589932793520220592425594075558217707251832358085507361801530716265615352733644909980245660044238939629445283470288269158513817522889111097306317482247084288055669329372845794487875565942250845401541801864371891536729053560918349274370354245736982653167950902113858020073850795383815785809363181835505541639820579766439382763056095345229273360666535580837112686340950795401338709443958509884029535701824512448737850499221271882091823457217060158489398365054111301318742236541902168993721384229819591159730427410966273667558658312506475211805953818630775178554579630016774741501648993408122690752837044744605016262361302062996219475374860074169427761476539286752310673364631763481917469262227650449845159346539163916762805937672476708370795975605816436011404968133432797460119063590137814126868044036619523522594051544414071666946612626491023902252375894622392433964153828702687318041038897417196682298116304905720918293196530016118207982550073203325869965457215737468833079669364095781476002946137824307775200962458988299146807778515153150107940397401555292015683998401061430974790066215584815972374238586202612291935104258018171490195129941311159800925603799828226987999032110857008816006666950960365131784947420241523855901448414778436716100191789101326317137259303803072529612639092792312282263957513509848720635689272624753420242422807898818905996154488895430172295380348897870513597257365634682759226514908638940471923750729532785553315526502460198445643666058266104148230025308601374390458906101827676563826216323083260030554527866955325726533485752241118784538809995333939284352602279120020154348811114464247721836621370100371639135657475512117356562778643528519451319651685142269130396616969425412320147253879651691782948496085336329653163564824203346419294892816831638798419835835572270753689337206029568631619928933331154842393192707054517042437284871277533854259842430300694613379186242894230910112843369005836661038600921020229366133424209668581268461272709083086563633975558279541221557149787142586468260696795785485472029597620378689603808652580124340122395278695937251633188347257844786477486487617562349367254176677893247189144761399604030993009495548314019430626396885501466741261866247390593594686224974033367798765877758518113515302575732561656939372526517464721977409246675641804412584203344812170729319618940395294542019062913475197692060470724709905822031470976764849470018628970663979390844813072206244040380315386337200228051493879428239687532212995928114213980229355302848173556204246631591935561573968988894916611993838913528663427150888604039560087589578356714386346783487225489151665886775828142920345071113940490524294811602130519774060540472700384309005123821268325347916878231179700021332914583718629491714920994576166474259574237910371723709303595504724494663685422966390793181552185293201583872339605262413067274946541567837298410554320885327008529139394802160981027591096175073709540175540541197157782204350668140788981884270369133517648618130833536229178060132230547084798383608154265975038010876569140489637796993290526644494944794958535613860044798645833865877269374759192470751001089563715181538494885839322615151791884848067139115334289639700084837939448669018719387125934855814632709973960263234844956367595640382850769893353071095148508054205945263431947027862751865231492102973647063756789290584734937818445489681598102352413144216743095524334450282819786681278961460503257105496571125127255099732601481229329692589137505964568655465247255202832840749089260348652269148403763509258791269400303299590798614917317864828990393281625792818056055387244490613141491591947397718110169114331658506067600456693139739581075772039056256689052479159936812793270206896943194495033655491610006147787023949143239238064141873193657083828148141408178554899461787140008606674552477213073758305342665432168766847571747265581874554370760815312399266160466714332336731542983969204501817323562519036145024607014352818425747331289476586703462487090586617766548101247441596345387408991681585295229058922595351661598066866482796003137910293921942525737788752057571138152596624624514091899613753210404263980697079396000557234628732671993275212053618014965846457911349891166499874559847045611406899485168993597783861901897375423409100953990923824754852690210291681935725128498032559801890831277169968246489988319147058320227430489365102999007221645466144824406758680876473808419826099101980184500936915772556566210283133882959299592177586103353487771399851193386023231914054118177834593063480576306955058479945080753396083946305776278861802000668524364875649702280654265349856412513938324295579822598661400940111920797433121941781797947345237563196347071456141590792400358072322795277805960188174371275512271142194110115257577071565896563375319423586600183046956436209545496333841746144309887014075289468369321419620662534562262259188200556371395638263949597752196288245957313035301911528511900024928943237277798172288351894851358870030970623383846716414499252845990892836488680223858551025736793408470490719530957082636015592203070808578718749358919505433398277542518095355781444112438861268942137036906956238636003220620588478904322507491346287285376422062097604524723837671163379931109001596150773558647786234951032819616663426336569175513553453885223988400157698111791388720386813198694305033576088525700244940329097542999106542389089851270732035355671873257836144434658905326427731478826377394751461224623435357202526011761731384291387924325380561811010990483516733482200912137717006715475585651390532789773015637523142112378766466709254685709973968256357506774203873370897373564615989786461468041357418368154602730227483008591488824816927882195993037266368882996161440951907697959906720925445667767826284584181957063346905183958718783831135553619768090569187306244761554577192672310196691102632653578842122754799293491297763133368911933748549672342488903922806261021422304930177837887954195879136648397221729499357687676175459891968801340410085506263104011730544496599611136410492770345598261699911637013933453201222284972897189317242382832928867891169595088027298380020229504925073325130563576242912468904598547070814804559060287840886164366984133595736010564781620309871581906328894680316877068788276890913090304067116485794204197565591384679525067393471751431009087058928962308337090178506251502802623204796509755002628935426245808670956843352355221894003188763298637417118135115643295832197514928178088290070346405678495053757373263247332963890603010526200732232829238334601078208316105727328693792306307444348600268946354633949549353385459703388994741962129305849349394785563154918570615458061398210487674872982403984252007594366452177175080831418446836402457895621208788036944426955913135390807901737555251308043003203776871437522098275490855912428295811437521058988669331276754125339019297841556668466273831356514933376205215335572675811844982729930706643816401515068033802951857433734965312475391812695721161373826294944222560747059449119461990045987886764703211658444864820012488317124999071389128189228838023854430498145632577126097307008862239768261315949409334910416906710018427012707409765556986742530140109275467684948390950103514391954766394677248607298089144971636248615664332350717749677465848014630906519680858811504741360660817569895007300269558173961653952834528897749408498691054580724524899735808828998553244269113575713693834885398558205242696600169499679883052485010251591130656817566157524376889111777521223837204010550098057588344178767233617882370563508223543302143537419689349781448870389612285626317066852742944788034097734782920929388680437594959636464708674505754406265430889515669510422479787088960608474500540748539158480880189718744875287204951688601870551124992606197747454844595359726714199703412214835376529844399776416909549260662228011516189767328787127826192890797356500367400258172804433230820296335598137647346323808798648292646466023847938493952716308552505006225316476462128123706761439294337060798567299847636286575980578458463356206074575900454197978917201365535532153559721787436480087760779634326838603711740369454783617457694778848837766845303563856645101685943686555364670472431281866959380813069256838312441428458134353672334831970879602963288785806511515852843490281315438989341070379009242325012867665341321252426464971537385335126352669999993692814956166456863641804091912445861669971429658770017971583929560654132366623706926917446833317412538409601187330310123608554435803453900851110548705432631351220274275507972389204377916773441341848042412087714684248583907677571083442741232079992715320426329507515997519472202801200041122340593546763776732843614021415966481514716233864192908635032307368863819399378584132173657497584553448717858803127693432036438181621949584449442649711391912688867355090112500348207398477429745826139542263374485305672053249680773149511116297092812213779118717479460747149197877195107487640774907771065403578811712595690413018299814917416362127138610322185583031905007477274734112404437793420578078280630805016367100614064368689028635138082236909778136919497246084872767948072981232368485801102286076599236868880309442776044896495242262584831621358400398735122789688271276583234277538222978499077829235588866710339847243180347195957028264661862409746071210889164995547820175543031777492327433998663043777611930052629658874044465191557963774057961595641941439202729309268925832662881134914373935235472300462701428581753489480923035203491010687952451945446401375025622885277004703256065255808010136347795513457826054514992122366746447113660564872360531774054978850160069277366585053209448667039059826042626606074260419264906032462357049853410655809437501367385502343452453202864445842935300812259416309325127581366742040200732540096388413994767004380848202213112657245055052446116584017587630023541229451827385558936297066779271925238548473831749088921671217166239422512414811776594837644521310693690319252746236712984047903027777108410518686993427203722257495413779871522838612737843114036169397784067539652762051142832428128826588160187026094685383824921992118602711942803789847020397775243898241494594187501999578518010904282714190349757837130514890576287639865538303190352881483992310954353829168343694435992698242979018616577361086517549277893014896394841599984947333760750308680965743512320919591048824462497464897114143729791768969342886069941409050511960979539846354500426421920561237780765883744423899822730307228440022982393558128090064730760573079521212753674416733278323053765227456608247155953334014776563958027803140175910060443333415457415611394804481169375919335357581621243640250961930984516975203421394905489726013171764165002372887087198274192159256701868669631634234623385427428428674738133893948948369784206878997520156690234900634621174517125706254475840016759052057725266619432454292434569547710340417547486157488538617660273571119643866377199414662229713703908476417530789507729721764199698404741211469798899674969497074521096822858185208313742394925542567748292885346209686627341186828347311106810030129555064621367887961568614108084176140390248250797537265733702610605874098858251815267841016926504560114532237957000537955530383581092570633475837235249124684127930516517181670532778425510754843164922221110944523490970779770295612566977395840067299956049094739258904302259630027711451097483760750552539692910995671694583902659176573329924253075866627578856697179030731616978469039003078104207545512782477852687158408488730400634761826244181270190498036473283029234819694901857818636739598163144510317535295655237115797251985007939010374040891091746065317219493034648175633355491772979361068340441282130865668499263135109234886847440330532049835808601153782362597427411442664962373352288651068633233582514322754427561303634145984121422364049636479606427564062889872661073147900965069121060548207298755639378031298721382528225476348892093806703505078945831394629514199226238009924386632977897731176412735952807156639548778843208830058270421127830593404814688544866934142388764563944568475970837712650323114450345216829115204137455207749153224108482959034759154848800219852488775654162129165000579969445087955347275810302477109387255009994415352272506735474157842385286756411158796252846813678301632787197111918809090771173852539347705704972277857931703768659156837542574204639382833870452599500409516569365470541309256470074704996543308781576195884346127760186555114395615691582300689968085823678161893492353592024190636040993447409851016316166487814702863920067700141087579196392841226166320470467758625756701134406697961933185156526222270022561179001474339413258402162939809611282876262460384116955696349408635661806005183581391639825711957563059379216731404523662182854339985228626198937597505267983578836994732563228416042890493778118960899652426675932157753966960040621649173162789534026104425492851407006828786637540869465137358923164249315500009748738956063545298716000352860858103633161879193101853866383466880868906110663345605728678195432999961199368448472707986584913455796134554330878872948173070726974674669903980217956590268407662720350233187328351246883875321193290758825668145035800369189164435383996722727407612588692141485890373027476402167731928374334454571156173656406035281403904902995743232607949395884658539993727224910569834741273873056333146001265468900514847825374754839423436360580361736630655015721886561061126028569025609818410174453702407249620029461538113777894256120669771582025953735687575225479058160712003116033487870921873458965988958026895759132674819911566272328826520276441708365771058188587859624492512331237817741797216731220668580446857037355124783192168338066909407735086200893728962938890178697047123861678926246301769106065964546496641686887220750566728232533749996789139655078419960754336099927950714052781745745542291072439476583637190808885501941590591604118318499621387257906755588695388381017156619214199914213940005457042445221904746391416573049865172552161380320360966089272546252651575318761060686262654601990574787767623944767227938379684141092940694005455639348458906303337079516946849227190122832460307357807230169135716003737361874250043340158322705083995389818589987656870129739838671999969324092247154294284693474600789299495463337111043792611355904376122746306783338903176079372767339935383613476813797311058832538516229164424901546884540768105401096149483806585708651028216227490686818519669469685109725232542660220975750843987301822367800886803660147749412419762132758846621641468070156614933761576710156460129386602109274200212726094964758200689749196297884114575198017469109399407665475875806310554090649792125553725194978368687372969733935319659897467580126433411827643092368663381503427363136292813747424755710042344096396889288953375486354952625061256755361877310965092874850794244940886902831920176056280143370926419138186778083556824523793927222686357313480573986587006264373280909857726747624672554896224954260408490788810641201290565875506969841774114100853122270210867070183086739758414664934329254695877040735944437523828094192336527995597054910164834462932270084355678280975459696226420676472815783030568013958435268362408746641424640523971254493464374922498713896528435431320615701053880652137464720326393042331035452844814163925850845213629909720053896677443749693506690937474707032664249503383017299633250262968066949411354543161403412940738336462140294044196440047523683688043575266636141110543777200755590890660823245882058164042396510677846886110847714754089794537135843911008748546350015732448147483261428449969012831941743144595494436952634513399494727076211890056498539167992594810228259099815830012528165706230854797797758976014745927036266102666895136789592273116741202255756450085013980565966536523573081009061890598325640772337647212523687865488480668736466318795042321499295075451634395023073207133120626739514597956326433488321642574994773745050430616243433605325097104904612337172697634498626122828115798941400609763509548320553712115103343280909169692484876878968032656621103009084080150803891565547196812685168695453514739156102102296580879856286410466763757399339348507602494290002587622518816508483230540858600386721872238070410840172907776083963991468587552647802089127823837925728003877953508906163842598604382997985664064399791370802348881308187063284290925765253602526064823915861528788823613231544625855640674380636723398878561965447558924526162981671309454813322064563841128041889145653743301479913060139680765503232845964194129055784623432261852086624672707251000013173435329166862400784059642319053740361934306104991827700460105810454187957497810802789171639157937696123773257849438758515818926011687703028334655199459709167615192972113097793178513316004251675968752490738104634407951741478548549060176915081143239374116914129549548650214565600597133951420684608485287118863245539207276607328747260954505512779717886034126420406129008544510976075627366226238914671693761352068130711495791381870734825628545195727639870376573093570046267195821634263778535932159608255168459698074084685295227342424196057709625803154079193977398593098280324115730712876925589966489746509884504944522689951066156621427486689153645254907365026812289314728533565310021614344323562072188507261301848119486772664850811104296698936181676153201296945562174638778810349418812280368470280727131629896765533280960124791789429737719039170672709745999916859031765203753882269483218936680756303061224002967343295983068907298368651335706681748588308254694226191406204082857432402858658930971877121968427968038476035297249551356234860356035259317250410022670915953850779635044426283240509174478268738034792117111336702889825950232250831530111711110883992582537858793765537562256649542906853078356214831438774088493864680624812187570168686783685607504350743013994689023840286242944891609291101654006841761867065199835475739315287169878974583461092315001345997155080464907288580524657248017931481627643554896884858938374863769841277038182884371499847696556347156449532881447267566772718558293226769996765940451818023986976073439462608211831269275218419389578152577632951407291298233402983128786412278439081340309927546590135949249005059933467937197597369224134302270015158110372703714082294433632386455255220830752107885644443187143908362542663922643065757309111485128893828588512388675530073081734328744426354275066215859720735303867833862099650393381588562573519075967354366732234863314140477248482728577045039735718732614476779764676929982827048361743734852174709527848101979436742703455496194811744051320454375747275217033044220235132561046039089213408699472372192946981472944343921333469504131952750545824800763511062963115197530466814621945430153601462195683505510601046217939015871773969747645057209533831755476127988798078357608630007905563964791575768263903102151847317877491435564315950475424334452969601296085801081475101004037368650176078505790655682083144684687139834311349078953558390656850511943132728964122607818232585981175596230997036503521205960666548847243054747122481684938250766142458768047441666475109630093424514779662780316796274292503562316203332394175730595320649565343938569420415016243870997408295303720263512743645375938608255333950616137313568762703261065173296376461321192531665546229754619073990021470588159605703673135496944384713536633716719801379198831788315247623842687511524520948309488188262925311415528026432893869642990984033631306839936643890742148618441769775061675223271495781468462399139399707172357967766698305987799005727214101873165592118953807848719021281110665848873527286164586804560303669678386197263651860222525636965950364498903085449321773431510255720088189855567710267814771546102226851573741645900133052538515574636532699583423332403896280932173565571390371707927330927255770147056081500535545289012309922303273048205711709586931782219203130803213674808249363540109082363880479015703692821890910609313564566458741078933954702170475569433281735987988831247512960305063132120273735541740968555729451031686411596050168223372359110653607299366255521421104266826269396355464108296044733326898987782305929027178451903665145660413371298129973293424536345465430218246807918857958703894228668756360092907113328362080836311737223954846123276603431016484361116522714335206743720761690669720467711425516263592521806901509609125944916016546120422053999925276822039359654000415795877691445578548630916416230931247595100631352051534144316767339752679147777246250974304417680175947823543998378449130292661818382609061895805898968606074627491137739653305872512058210136081258643123531880591857943098367724250279279359524415631396642918833448212064787581152822902121038754072490024660439161707351394208248462147370853107625886906915440788597225712110531957491659489888424108146631858877208509735435868142987995709003032260710006031260413606410208811871346084384017723117131221585212747841406872504019221364892899251043102259341529260401788728221538917302328136412715519117550675046743134231205561621837932351828294398841744776680326803972318026029463237619176738053836306756753050746728262837630640213089024752727384943605826576777490517421661585006778210735426725390860956810340860568227630796023801789187686495276239363237403710278656692424497448141049887678396707610843451196574446050098805204320350720124150795758860670513271106116149001446543712148234659023830554898543295431456010101394896933741861466967270253397692096685367317583960536532747314539400962049805657308832339752250423714516836113800797251602017360866064471669877515033547488884306990212930492731282778664373806157918998631154190332682926281508859060247202717294154955959696478452679874563533734807718153158308973180578365155989978944590710102737257568589276933137329620880743636763449662010191060141083554775729754153103244499076692973587724292370865530648140116509752117372197273421631260004071751914160876219498192100325601514489901705534064058932850341288310326434573982524234692949197802438329835434561894466474415616580343644081874279627915973200372768089429637744469283892268305454589806728617296215839744025574259751116592225798104017902706493662551543214510379816452562627940828997896424611524610648989805633293525992877245835277097241184740725222401873602934311473134648190377915219428200239366093399517337229930583664485892801299336048898322045793580743604051487958262688763806969870257044502993933608866817488712039622932253984745321281199420612617483823230380446011822616194832574385863635348628072808669404714979761189804980129390568955971757381122040800879779225489152029681785299376964515875656508103772571654533366320971164505689068399435144431958028291513523019520602255044720103897778516246814861674570851379278421669673313510166656880709922616058590301298025499217381204280154103761441837384534676256951296696372374573174859183188661266457426721983971408881070161814569180177407490530480144585250564554589114769082012701096867733123803556524755974953140602438832376830939226958465975152454366239743158417338790897030230262782462285921328585759776127574346995552757859082277818744230901215323532580978170935175104705952184694950365569418119376131685115421899287286586490590552835091309546942663884096965400206818545123755991958124602397682611563378808702129796451595435362001390981180787951322268835909940476777927384396439573983117401371651949655416681094217937503204831960829796584847390667589091883376591457249105124360949196013580752767721896179766725713689630323352779768180800555430466338929589437640646344138702288441031511688694364246087194724690869299869392388630804483709797021766909917143366062208112004862073515293054760013296491383344712460577078799569407974959116719448421791100776487072903112641576389227504517346712700032621103692148598883096828859400270088527757640075057669363335243533184452500818257289110238478489510737739316074776197423267130608162066413910185267069674166502425961920266013248307015725788627706857190608887321862041106065810448250238440798983391989038630779735171499877238420212127593288289610418002990955493072103051643431810487519562767396874768038474803057488192096617043064740722845075625340246687925730066513108135691961128129903139271912855338525666889254374799371541685439941540251681711429641557638241195350400991998505563767529935919828825749470868375590397211995138834292918200534951626955785328792250655528420717957315869617982778012303401386376093552284868953021022352498354546662471659070010033520695890917877328811181068326485197790577568199587314020125051227066758633534657302471485615911731808519280116727048991356384889202479799484891577330211454537837743800032867216942011184271105800357840186643701283319097164589039080454013521270356061391212282359944198056732833380922271558495641305820630416378538180675533298557280547035939312017273227049296604435236552917565692319596475782009341918494357026039275919158818126550757968649400456468807696276446060665899967644794447618465659614447481421789700338339266167202153374864485702476703676781309257525715755122746056694261741958482966197381749460032191329472721808298668127175644205381002439432557842834087824779720300735200747749570910483715545468583766917873027125960962436642596970417056028845403868356334977871911542596743893140829210088262090801144404623109969892060464888122268560332653791280352891143655647427701260365829582700491982461142264886075459130558205585289347487460891297300520594433040832381790035027649456472445217886528896594710422376065536546297064435382715399929061829612506238148740059931661229479069309136062573061314386242253593651771682886347931899688458990514381778248832930780731180632922681803106507019962922282062715740231597602497921428392874583396868530656306305652687569242139820831387308669966100069255506615065548574568792060538339945661056780316950056927638466776563111098633559119435121645514411196983140596837212734204694660868079804269437029962040258545948973435835011215228798739198574620185050237006610045613172451418353685722077244567802480213492833484839379843611519941062907758832603832599880964618010020525866834889532366160290803629709159651049027802549376555740942074696237477383180484530861272067931352996748294842736365609543206846706087130648722705716084460037635171401835902008974777313049627578570751355443053710960905899642415348523718075064592981727296709673440164242912584981376658377977203096862237098693470941039749650960339262630771996010057337890408672439406583175564326137805314088654089543076788498462204059367463248189402352356126228096289754250815078432019823073401551367146174915795972309394382605377900369859008772512467718505675282607684591120414214716781115580621076650332717802938878360129208720531895971249932296490836674618002118515086737052397049844584136311258394005128007352154047917978799758750360609378708257926868500251527778688868533363472031168758441845434588451537493309964105725301400751937385553064746908594734394059262536018989740262043535202090188020323259722444204844215281672101783930430206651665501286440866043611816393360987514136148391314071817407477948011727790100600592990667863634792695822084606907427021935717167626894951967688641833939788895747390361472169483244501940329731371155268101121607602654616607815567641878015672093290015776193538590578244071211557663866324489681128744201648787016091641208455664731400771745397714986657568947543917768010282338791151630049336286556673818883424242875934611462273675311196755753366533831056543883801725922131408502675616137544953890887070888939262480561838021221987602769531040126860502125521384964047103571484291424844108138171854365254036408318606875326536626454214517078663220882930959681573429287506540705928985363911663448789736727576341349085612025278215226655331452894926590198259941104094304580292396533465428168504421948774986975003540084651876418009014677374643626214016542617532995480727067617444623245834889640647037834301448899695852882340840153514035583926977339836959789260985450048031713618271185086107758329410892882810056655888250970809438276141929843818285033600580090260997291121162225570538788250695812211984840506492929318106259931183437367436137778414397690828063297232859117717721136203679339832916790038066554334308137395481350519105565303941676578707274079667424726005856217037497329050818192103055174343524789201923140855571532930528402735860844716520982904085363764212144511467247463186649061604644833670174136937653081977857898600096740786632532436826192656721908349765859215208419617199054701826688696902250495993231850594673221306768028697495290743019005129447687837019380820965654608207267923547379416961678197312340208925684157602965378835516670394419439516596844614758528715802862864678749641097623960294843282128127375098289895351173535002159050218087378580478894532640501219849799481037233141266359803000898816076614032639648524967566341796744387590007709682105188395534320904199038067835402201057280609718756377386331214529544011491654019983715122289043225987631221321905679768903139065787635855026667186256777148437754556640867953822877613154880188584149224472474760057185343391148235291720513708868040491528201632798687000327565662603766330912408930543881736885661865655014621151645742278946201797623760385277139302184749329449455640674599726495024893199000047671970831294712909437567219673310151928444279085612847344404901406701068502943679303132020108879142926565319053342013791329916079270943575917267902313874121301444977763647520726891953737735822366124727903256167886021901037667752503147519464724820332399970099740810103502534218366883964149012605978088897710822675135667474612275255543228122230004439917720442156813073870480003740592035805754635415767140365405952035533100083524481399849235417126705311420754108817351383552820556942073090172856214831486883866431532866098298171672614114620481551063034824638061970506342442789040618438444997833984154083304600537310272511231795106944002499669091776340387498943145481882261022730352718779612655939915122759304302558592650912281652109537396815578512885378680750885660311419993168110801572058041380707928717733700594640133169362593883498636557852359212040871511544491227329367531543484383906840307299923869612723342538025298677642389317357635060123831559738096720951661719488541550937472685532868398474092116032173921547567687890150859689415583351206085688366342470509283634712221088424149253440232090805030827552111512670659077403814377041435376803268394402481842928716402975921309380460083276032290587173216407562096336278500855853580495947391737262215761156237777048166734606393463547848272141488358087969415449141548153567816114893227288577157137884559861862013690321005994663962692333004577909480712516477239651021536195332805496016989453338307725867147891162798559588583965406910083831041287687066678057357779100132170272836801472239871424378022306046191323078031203927859048990751425501782751334150338097947926498103015422007329260488615892679340853014645440319158713561388751666994317936388382900584072427811067690232576979357864203434932670910922317802974965110465425282859888278374969910049917790394500180170805500623279055454884258759529337485829970941231191237911264504664130508662687752823531454743070713211366953409423198576393921238862673297822644242391157886703986725767938697630604899071532153495840050350152096861587724934520066433364326380308089087849306741885445901870404615973177243671241430127647089741093182855877214292809715275451437972571384732875120681363909428304478562228371758431820643983767914954895993494000577643902518618034123304197617349728864762407297715424451221346366142904723418367502435606253959676192070238263760171411410321827642770041538920905490284111365505672908175567086077166586919316676934141691970287228381657715830856394530252364121142773606904833972766979748958119016330443712688347971022151988851769334077368773903021481569167609384996482055135218483085312786059611080625682791052878540931425353247490250991273175098508219616944485941222972547439455991381789370556180819725587886355290368918490527455369949808607143517162886167618737394827336417425207282719293354047495301878898104861525485268338382745581702671564578522473111318786233863855013968427744641941509827434491913973625046266568951057668245052330151397942197997003716548123948526491741960098796130128200580155675171519255270689025081180645381575421630519215345666951427583590276293985407108557012820589442262957613793276137061989189481853739762110405131345754714824066901476972895696834483964324657398342111279761654808505168324840836689205308383384392238770428138259580706839124439703835398248388485467615250229176180841187747479703849259835423108277396056806792714786698654831807423571220520556541130026304162224586879320666453204526259749068400980026635827213623697703813827517515915293315887038749593388490471575027860564646859124665472810383485743046190476495448849864097687180652573968968443958632282464653316399077411783439890520428108328404623383500300097540419660899874793008882031090254094852047606749477911254236455394125348924066972695508376396657739274017470821855357747453379697418321799807061980615184992044829917041647993385105399872346745094442563755216671020737641349331269933769038715847528460072533860585725800391631488891502788631019605535904989936550582959706226388081476013383243486012586997364042331557376792178257162965884397030674959512528974516880936817322181203114033548277071422126645268333796078421617061749833408979517287061306235664821848919561307791012890540317837600735427855263830347127316464717170955684111755335026056609651427545742102940110363108568337749692786901310424524184449193073432472432838681668045039309354788684293427716278098351805394450022526267472112165499114214707826809341561283247121171869318018808554775931864368833250257077117150650484262357071028206530940174800212393159062945510821875418771502939513227957913194135409853429751189502585634246496874716342696638397988196183222493123556513527755712898887928579251210862095012890169311365676978689088781391088646619181885903793185176248229844482109304763038390656963255738127091520719372442404622104622721057139478550888913983436155049357077874942469720781080981891913693409424317115773564188234157741725529354291477456007070353542721322711642724944732065260044441327823932853235039357559328807426257404203950503903573303874281040119376609941384367655896698848386404683551856230449977659348753585248717857409037514082756299313471664118926722979645915708680417661173914039175390653414494500227717385193554683886449707240514202431458744667155471201014670321416518673380280986130464427260107179081021258725748638218174442968412601051767339026561723848145295197890969598096479179251693883126839617275583502702754334793492399696136696888298609412383085020479968886725975965606671746603374739469297863498345048303483821685075517795413680009141429571388046500232298477093963955383951347133988145723366897883312490839169959065887735055507096402955328617182007304499256001265261673686867655831196687233489526625150366962220103724991307862407409470380637541412746815701450967316029447743627725824871169737420128449023296302448946392324505050436479020039664855536414799241086631274429405484183154453436089345462157625375681365372584171880356568825562054895840511371482193391870979637755888762222516398810702039447922671513740434942323705844391400565037814016158571541766715052828634688353184905819450267186661913940273715702130146862219127208273435117779251958680939610504211530254504416447017687299565513995800792350248799186836257009209651293108055376369135587531961057495287243335051173488964275790797850112287554317944043262718042692582350272339847404378871829301392813792721770593964538356010912772408948279746129917747070587393136949419290696899654018305791713887859168757410244677200038004869092330300980537161772543913624181764169720994290248862291650046158854536584991662181412395632698173042673372730328572169447773928136872194387065846564582896064206128096834599063337433311789459903943483028805809573402598053893825045386471573617967445779445266983054240334465645315422089697815747829686759091446895588925359337534593076564229829690974231970955807981606169722967803706911802312326714858020862571137920305683034397867027038752842178841025117727719399926407716406073452902614108373121101450317857513665912555615384335534371301807678590825749221548393219954716731628312180776148679962495935638860317729873530785816010515294721774848501059011320526018691584839161147054467905018140162174149589693359527176597897993976508201691077499340270392717144089809747372571272082110240458654318068277345026198882325030898285639243506289025738321234784858877275130241016940424799598803729201233314194509957223428367689500962568933400590298521075911845930099066770219919032576849728124064372659534003669221014491091132122889999872889595756235348399760141075103159839879267954492239644689405501098636090539231782030021202731438917721130566426104149226172497424832730219247409711895126607668565420543898144642490230002150205767373247803844623130658966366199778008236581964795707947227355884840753827640658295853110053569052335211786160244208629125870806110016497870168889942404201496594175738823413343736771364460578915382802151842980910189726299592082244831265774097400994229737334860898663083689933358474829020436054905052917414857432092652689811551748975175346886712747230382811845465023331278531332372273911749100454592355776073469189538270868126076115650235757818575943691121677534040183418269542693420320070386523509626463858385266147536298085139821643698151917884015006511354742437123924068217217318270900852761231825048026064095061021454371799089681623080122765835399869926382787613659028350984783784154974396054408478227300815711872709694325807318126828962982262850620650501382249201804178538490175269696858374555471776596028383580359612274405738289044206703600596700262025757136049350734407800883376902047185085229277355363304440569095428880217158875887686986844773531985830008736547340938409831138505347326650815703496867478446263676276228231132380422044666109281641954564275106870208466473401144570450492303215640680100582956867914703517636928425856426946523698882194439569270542326491684528665930910746957609430050320263733419073874546570477256227641980816561277742640117473712264135062921145176782073340910005923527860815676639718411306637023897006925495429480399907895229850241656069235191012286355824720009527300493752842561458947393730155682992667544898419256463373737257714034600017598376557392078816163865103308850079303280175585655726246352210228876112560131781124879000454479145189571234547721655866152905386739791430560953523082270708582695984168275439955476194271485979500071348942566824668442420225636098001576070344593879940545754241812339648188421716997668504424815786324626558782790283831742175102716389826814761900398499507158548606026876132592514724786979188577497777984767100113117591586797438376529942451727364506237909071644422459928187289767145121032905741414103567552758661193429135112325197758099742404785951182812583609725125803706294940198420076165777773705679735823777033857196899804623110584224808899676071314569695248908109680616075051076061944638332794545785661870196065467350481396422327025063708941286168665784398368073540054854825351768973690383299126321722477160740135723360116683186735115099241418711840614845698791740975284083909541717640673890329759128359507282960146540690532090379836219152838828522727901045532202950385970224188616810530386149749866477465223129182383069023354443496098130840317200847052468040437292164955553779995796888304185580141803249443792936277432076848188228768773774913585693370164027025803165252572946322748087858823900849023829865116302269996488949182307390600684351781334280594086332500525105301569947730630990841006706612603064285699679129036205610333142347606249250757371379428123386331629677823413391334545030070250210649703756449645604147642778424485049798078377519445493995888456443721406449432188283977315791109913796683962401958139177477840333327447018271909633559721626520496835960271332553509304674032277086501369118711425361441493366048576850717944685670267812029406488170934471599786298315089589532873943025383442113648004602069570830776422207635391021559267290025829922114673243574753195980270526442558022274168687664083817486574252128993144028994786160761390127852771666779075593613476693290174370241047011447485453009859996593326773859905425340695383187108096774392561973492452853907054268228216123027235143230664538485681857635272417982410277187541396634596957227836799965011117996231009130337454209534224246338086944311686937717974773927188691355128528841051518029336376334424287810328238956183292557813737202634852193757962131794720845555899395155143543218727814140233369130163481587830532375825586200422569971756259583278741721897248183335385719183757237224071203291685783407522716568799119042836787308676722343535031136526133683204642631296803372198311490898223031329563124275557971915679146668181085746559420705169686855114083132672024067211203790211947404996245514465365005908448768968357488784560699175896182343071626704582395087623835720999936443489363857921375374992644679244409239856514291408712570871299699919789837743799918051619009770505204118232214672452199128800026980640962350943078694664765223462454281859257481095556947914609116329641744706617390941853219052602549363006461829719844101812640305120778834328527659034226785224064511365944641541188484066387502004359795015562592598728960870859356961593817128458366115804964484172100542556958719504399827474860136686020868019019414044411117608358554100161619799938186024269806713774358028347908270715968716855636458134917749473699699710415766903198360395059326232565053891004417946091485270809303896702210900225300154452234931006780863209444932997835060190263270131937629614225701294517822232494537577260670543853319446765551884808808591976054653762069475478901878005661724979533410001041475061159633631171042614884055200559710360973767139725271997339072980652909024625236025946182337969020774065487328891197544722764976923146547056882158524000831325863807919673118689441093329053444061543309930486496153137621978193015100099552475460948781972298806431753240645999531290133434383429587816494961977830269400443052371764005456952202337246954719861165072085094179826528188553187081406450876401366047467604120091024140800782531272386595516387838612256305976348711015412989904216707693244526251335775571543284385674122564863487212763639137382115220042993542788464043058816973637110466622715342831652670184598741908379459393186956636052504513316924756607058664905686790067838397616097324754636833281820783585036402045095566535450327115421266257597218071860539711177435863766729462738214652207963432601451889778219938129152360376432553452049508077587321512672358481195280149055524123572796118833072305747270268046583491637533063226909866794361067244268149364246710767225076839741889479582365089524550560268521385382963187650699738383861627396359727931829761884292435747936871562083075898022107607225391098089884964398200850258528016779519964066987187725136788966057066808971852421851672897008349974866363387186679535061325798423468286203799055564419018393493946699358043197793139494662278869750360455200955332587630119917982595125019569441691953027223023261920258299587485170264293733310983702125403082482097210363522723546971107909690838866392136983453169071349115532982730675175266790484996418667830062280058391659122049618820958092532269864046161327356571590659373542494060169275823664306702166660476983387933565403018956173151046355700279983069829516523495356559588159100716246920539679377694034579165995637821972580334173515041991990409374840298061472044160477242883884797526649739823479975853865911245368828222393329924882596404086797172716594272175531249654508868688305348974711243799988147052791761938549139099438414909997110946742980366641193546717741865292342216538308261401860433415931080935995454444711468491871466710187060634576692087897298219900821438684613763787764868835899320361170350095825516040390304905344194329777219914970721025390858644137077714436806132875103171166130661170176492476529466849695989868963846821284802363964080985020303770063382515833537070301628435747398136049924037086541146968846513301762684576356455734266337768284322684242457101531418419935101868679729279545235727312495798504443469612507109841831662323627007545450608839543031474877212347715206421095577886537619571439373685676251484235632269468351254148035928152347345461858186839770607318531678065302317036151601732020798745004802066525556329094373943884547497770021408000631738956061549042424140955462884905493340986915250564310573872044835668301276149251522704813049025287602417186718282045784706927274756742845254618650943104270551098073953703882340952972676696051906320689750264200579214963668061772925735496128064595594305418062286636130639706662875600674498587552258421923975603946041986953607040472012701502715960603398720818626231455602158192117873514108335164326803910819609603301205042763135940977964606946651387533116206834116733827147227676222958370796675978032660780534103112470625433868585423867004030730677287870735414609500872054504953158701523397470352388417096454135518989322181768870956809630949513512195918311730508178849198425685678347215085126176776504574820243302032440277621715298906655210564324802921451465169844063096176694476524077257216135061791220327833983844991184233749521475783393531422496261007296714890085867855082535604033521171628428123892378662592503435556662516121796578932820453099722885923056175459587284448342986881752632701696559962186188942916310105418468115590672273346875947885441469983955179055211215068427835085641245742036089888572113305244711480530860653599791741227103788912332083283993213160189999836219669704735953814600630414445051965885889939959992893716249038198956796760457679263217273627206933918908931365251366609384213096127794087924395641300158165290903959521586433385271051382986507891401747373886911410367542428405064936944016655263221678704320601210130093695729194341263807887170974895078758504414563171774965846341844065819149112463170401394349578381739814188269288356510425331622889218734878861223681273797881387036027772370539550504443240835284898186513269180345282370467194697174910543800337796777182911584318363150727653159489892409467849623306183224364366910615358095931148296737182414174062611046977847141689902567786618741369710491411940348635663280991005422170719004338684572702490583234324262278892169784084039052068608772498473654179600481119041295555268508253343769229472669312022403888539400294768973624087101401116886576058661113488158763349230559748923428038560888320579266817155900737436738198286467554446087348581466989101271964365208047738041424640496363496557041283310575415318946209669674432874778334812952140049596093416602567929632493359647665464320655436262090683013418778870335482195964978551607227704616207381235188747304379442547033737864443751364411053848445377736279689505533206011502768481656184447980400461249005942434130766246151232455561360800103924143009897289136621041846045925313077599838072505598790402881154467184537653866190497661116871704858055263821238780333232444637539149513689727198227006617596657519474770393021489957176880892711922110129650782640891017653625479376572582788891817408829055329792637456459263720441347338440420389144735735001731483285484328221125306562947421287828069474180246934424927485231309705831609172064614972034767671251188009512153304869607797023978693376486672301310088347431980814214438670739517398993462850901021122943468139881370139371148541690332269816418508420664513008282355696145315224819833022954221544858354134777398186859247503402366367726456653028434602335555377454907427149315388807306914840009729994050510640990287947089318850718661093258401858364726262629658272231430300366571089334815180942028083850056706024655959030057075462192835754175859393005792687992277082719395309326886857030118183291349072397646648446560195498550682017442583301843201162578297869688469730683733737712908047936003509257099023455115352752493139828389363504102943318884480736502315524127067357428649221494311189873154843465841454811397497498688410143368113691431434045935105365593401213047866398039998838097893055779161045108803144541673448637409260060919336817590314134471862656778276270486961729080300882139072220246495446383381610294284005963143112084472316670137642420609200842050915508238968806311917347054777386337774835220926294227893640895454301025832166885192504494461292200217739983181001939359795066035015614940229432224369085527525087705307550919657794279743949889731637271590525619735124358974485170118708109747771569171313337782318086493715041212083400657295881007937408094332973766763233027966894895753524675455785827457641766761593178332396744292588442971357659113920121837479104977495943699926310595671395350866948237782731783266207161699660222692881860919493598452753271608376667346220603010009513112464472337375023855173852456579704034753929061416593767744030472027827644752642384643189388275422357299606401550246318827649794458296304611934233127388489443259992770672944591569518667375379595493699687354063244887670504792213757700847358966970765320850201575077976649858868403322891145837546274012007334758322967185242712819659609992031306060952545988839279932258381652631918661376092658038745568188151017441722862533893178038284222445302590405422581115874145166319611283482649607804746518465338905847073297234801965845516195649189294717824995596340840445575213179950312417498897738777394230666711518646373094901890574051933005342923124165530729172460517248287254678526397849262147406183094579289840105955119042309911018565663384424986447084904978819833816130131700776303364266307900567661935340604314871266705691098114605524519575720151464643881082549282451294757944166980377818057696104170354375778621512772865032951446519585907351509205757581871031403932937801374441584605078555562805756218266079769833589960034321854308668426530779814949113136854221705312897024881561872135807460626690334850892062521343029237840371392005227891264600363307596947885647404412671663839368445817416504337912914372090996073386588731533417851257979655041831354421385187158338497289516891255831986038164070614741137983022744908470764415140770282396424048027577215169153786667041439992438531903971378677806314463603820272333685355393551308479071244567367471710456554775251060312691373585452711059670491940057789763236052605745562157795507481442435627671186447272485211469162008165403995812756250184482386695504725322540618184174691249293943370318055812440883846559875407802786086907603127566544151014707189475070132907061895117308777197036484499494687032136718148899643344243115293593270896908953371749056222931850711630398724662709383889634356495083981746964732722801927047650896345293616960279680492557142111166013688030835387005252570908368711955997229278332314899777499094722906883516357727182468255829627995826867219714708011901023568311686071319810088952422456216448025850350494136249190511179932365200966597062079062093367127711088361603149868889931730592666911818737784299878917293655355570325169839597983657969196525839804265351944581703233871198173948677355612995283315971785351125021031378196635000394627472320098479853286189022200344921276022446930162873477215129306533122778023261196913159010285990634780062525233630256419521623831665497924212232645523349611559750959954304419735182588166790352981215118169140070250837062690865354205922263324400022828530224876597476337873500482986547597477031525449664606587000334704548640459221941845118586765405663486224611600041249156921320327486554472322767567544958391371416442449652073387595749156855453303740665226286178571968516544361611965055493568804865916565934724707907703963769541529472624645387234145010971561902766306638856963652205738191020758817419400107666622089051198610965171956651454968468082769676150654137120386755221942208835056617180057930641806959630765405336426345619506747976227392294159582853224243406345782934985710996721168243001411802909394849739679871244755271153501519009580694738950124980416059935904425715987817044422363039529860375099368067790132578367906609606507773493574353792391342325353781747492807478278424206521588840850010674985208249888138250240277039336148307576467681712929614271199715435570840181177150220599555288408911224253731569107343629218619903176006822816603001399677585302953686472278389016566976691453283697290304209912310611186674685002684246951678678994140944991346402228498455311808195486410820249801796009929092471237698937928372273273812416871375243293164961114095875536234631422334779241951529572652082318174485394742809059695601461672596187316422134975225040931149117906339475559487498723000077059055925031190391628772786375172533690646397233144795599186440473769489920263755575995433608646775363263546447489198365661858726990909373011242675391091766339892789663558536278498059889162262862586166916793302757455904175228599983843080374367743467516809429219555104819696155390889276206779677805365503275801254278650665717225702286843562672625386259128729092262293588976304390085022962180767944600964628311174870268312965099664206905770837889123366862977756570044267338614399843296157337332137918120182088373530330249516689213217885738311896946549529984115283688589487489330137067041254667008743456415357773754852349414133084283826225321112330502711531760138859317188800754471651292283151221476080601723770013746763777913402350828773002895106182734383313981063282985516040771064511602908854224303743189955381865569043000481294094901650894838894189754061389277634831940269183087372763311234707089060039348821706303844444331666217064556029414835391163565996678924507157631132430243040048924124916911907825129795886836544883710851536380366870221392619652324186916643538200148437892897721421465405940803370473543469079386017289653252778527707012692979769466297985675967379169409762778580953517091122936142237528811895002161453394043333902876189249512287058307370558351188062462186124226819414602642570442414034657619818311514864244073945888939002118746874466451662535369663519494829624882736805980483117128615654650933361878619598044310845763675034234291084023165868536223760586619936870871933999774265536166831138092159636639809417140702019175250849187124862930515970102331143159884187774710289829704090446075005035676062786806033243729660094491475887700660920280892037368241952712889280376477349367250631058603483666962334617725918885530823480623148790120051492140945600653657744100286973196027911202282123017718642761417416200385499100816541691827500258066582580325035096356974385203184491033937823013536968290387481132929815431362582197702611186331281999391800122327618435285017404691918618031675399319027250702597733389594654092806289227023579533683764155333812513167041728895582873170284648368602724048400107470550632152721481359852899114804212350176492069167063945683486172777407355782865767058953535672285022344802246195221220372401053815682678034024929957103643038564509686614048834320152142936752523713639180534315264666819504466297960347877616349702343678768891625144901258492267237656574733106054455439178832494621721082623790353776323760509190940961897729320008116779443662764743308144268787940892032118801068312762776369172117839223692433822228662079235409510344830930141838388490545860624714441377093982571794407771231826994830941906751607979994843982731908114756469939448637824381338962055597482843522054470242126659523913592909882465241393551680401567872904257412489488776705644573229639014727411103359443018615173865099848138001990795870363246371849157008677783159401265317052831858376149925323450057460959526690407413919124453607035242885037990526045787515471919639037998000264083740727183708409775088373305784032197715340061509591022674110892908737896110445111914963904648248348044386624255703405275245127557495133012805109947076266336426624749307708795511594015644156033656970725480761201753240278489156362639900936335312776415902845311915622305369996118620211685863686506065492853996758627648872534718263946172152299431133872516789724939539928995209501052432737211693055502615055378673138286928626639940931333780358577502469149690516680939262123609999581850627021497189672817100272236590952599072464558880355135383736731582628144951292946004965083180139068194992756233333407376091914509565192003795379416733963878550160803102013282888917483856634317339393859215612678077817544866891284740657190046462937438643516003818209755146899819696198821329210275195218398719795652106317063464062952723925302960210994951870808327550071064406863173645497410655627302215756960483873919165163214849683326877492082512948346080486927102629022931975266083415044033994630609684202825756896206268383249654404347264648822701005533838010368344590857866745522546682130881670332232657231848580649105060969485969190832016756550312785027544641998967189847862003087325077651710782710309968134719400951501231628440065501231427386168710954681542783645821064435127621088168526041717714995208772158849673855396939385938777394336371066579966700388732970428640000191238104758021272772887082940540203310455509800226434542672932414111636462406598950479583072141492241906116645384553553419041280249092499977926976939017175441290949153039290736691876841101985539611080774692979878588003483951593913988175495533249901624635260041539170526782376721549787132121858790705853979942499718872382892913631872469886187935263046063589562619661530622497707206886221439319862873694447884748346204197204650444419249901923971821905354105438217333119958783560890519014452853229837148200563144169256894322934431229531887606792453664958548763495492796516071290851695775698134590080718272532843578090453567147820844823093401815311254334093199648115623153216487486760332904424635609460502946811032670519097961552694309511636555374254980947136554242629113669243039543713455994540818129024649011818036104718430093561359592733163856922371968572010369747134702328374118509597710375022584009145330192905898985708348197954058538268518973017484195498570654912260002579341398249697696557436051059046043654105698170600300821535508032289538406532248712502430110966061346220517708647429368606528232822471494410659926526759550676001749498255775706072947445349511775048506532154939083208892973883697117053211302624418827251474567003507183781996491129121539105995842157544235355433772636625916771518386341105015242415714384019577080189525470802486090309699522879913632079434234875448435934470925398204156315565893218127240700731035380132371435406311638345250514327765294439905665151133159403897760688302135500423998594275195425087724077032249876812922337502018588849786639424792429941121467420148053680263262033456223764096999968216576307693801703918461877287090324023308216865385028688983313104606761012648876322085676340200379221909573933981751095068939995419745994375354010670842501961998515325183362126120096309700134616539369082305190440491161607629271912446766513043881165234616811953952316525772479582249770625806014141671818264457972556154970554490568529423744732317251138938047310959253344085075493985808358952996033717946636504974766849639093971827752254095545269514236510262133463857511716448418347034753567019475989341182702220841653333949522636753889386338259555075586375886854035215966895432176865658525109151793214999267074386692312154368702026287147871330558500450372032036647229157576658596963947909942728133951363244887809272754023632325319913461289897634203480700957943464378443543167255076136283470864676206493091631973055845369714587126636145833554047854546723945629552112792039128698898020999534618749523336214754597131611129924450657360835889914198857523329205431037508344674505138499111096094976762196996812893854099254904470832557081407413716559291776064109129034029827608072114316912086576574709234155110531950440695041752782055106084703681327197978488536929659334080351596534747579226111753102127652670921256837465725019717677398098707191431901230638637138787236451416175224139359781527369466412877576394820362348440516207562059960526930846870765147553625565324209454900340235076069742119400277222817164095919051902885260586426437013274536739110751874788631824523247877049938951121274711637319224059855103913957752668421125692832455863602320037148280524070087022008817538535701638756898522030877675096152558248881824465720125863996053939084535127887637217220467249221414450417093614764223662973631440176707130077182486764288979485363144162694767963069280899316165055849718659129538736923089455371677865078186227748074269324684390325593618859761920959217621770574933496659823980957297243152313101874570517872546842409229268009614419253298103028180531281641747741778973723117518282290482066850964391453944064549948696269815933337443496521694888410296107040828570216346998228906869899864103418090651513448909679623318342255351658450268782021812233847029273767166492527277470198166059936956306837191873542855682929620071249847381771585774245230221133012076764963590443745685880384431745957134684378696646440146408350383920739706509901576203926163221761393634042833875651951240766128037727763764236947546611771445096744987944150176550573496324271361626261142696282319000515031315581576579033469608259904760787500160811120445442980219317562650412791653557961546986364844501190547009826673757771226242115424027731419326800004782064803258142221850378492732000557699474487541948380259418419836612795502520158749641075334755798048894630218411978309926471979990275145361329617976511024820039710357822733542246059824231210246606711170697851609564343184747499393402383219225039734111177050901497695326434512312286444718586715326384992446624783736086231132222231451064556750208640453599622359252080704906983480054939701902574197794580346903809093791381114543223260337757065012819735946794946507502273953633027186658217101069550688320297318802488533814678064375283685539082486082379523833279876790057210143793529432890405211496658453222114286865740923071036567207990112692861018233483924448656495825295043660080653402087163358370137477118824896262907861302718187237976571447618031182623323199977104907914108530903181329380328173621742887239162021235010859703294842942859347096075727050394119436822593935491935209082832970156855210400464714405564223250383439016000035809299204657988112820835664689273501897831821091133286985069689822568873303531523842093820289076326752499379921153699310454838939647699326528562376572725616937692642158878065379166741102795247670153101298802841777174093114115130019521173061872682117081789071444097091438218454958890166434444013510987839412256365999823043081165587225300194907534733269864079373639194665205234776983416734151791470086378688407004745872193381667477989270694667439573223052611414262506674785087374529338334347537496534567704621997986510158571099320157548851388821978054202032391201865063754622058873014498453138986833199872554594835507432075668495302538642140947103871362063185755698393279245590199305161993382125197007716987288122650496854456482451124252624398726938902545912942382568361368008609044132346726304810384918560884439025643847633564089096421313657886931341361032761515545123650036576058643754255830012034447201318388010453594027410012578191573040971690902700967449196098868894861151722033041203983509498574324411854929363285061480736931254197305607208456666669226151977926251589247602076516634168940127495342916446247339628764613811765225085995236921227221662867956485831082173238376876216682058579863377707914739822959370405349489395081069937679234154803617901811820759373489555619155851514494320062303310629360045471286104642916233404264766818597255761563110187404382883358443844790789187680525525054073758976632512467531418287694541748381391386206629316689802960555683406643687171285044791923496297368820737434753458063165301301262917669601505883901241297260005584122166367267760585530747580900646418539789927306318957252734556580345994098366780087420196933904957855413054495872848208553594462353218444729274618133530412794258486861800100181530551591923621069180889957953180653718681933692702686215372683342735582891993086242512746242494443316954504552006447510193674552968804959056797163950342558586103735886531560840292437434971808944846869466334435296573621744714555255977761478379396676545098524006816653464831138604089053277111133202710059986165398862533600874192356798350784540070888241631642346198514801060203273826195607237313982054068158194357660224229909451697230115968319757461796172171009145626882720483319896750975168190620758242594080172274675916095796190375921595328880100907763226084176679568652950980548533806816048281255659854431470099964153602303715602914094296586781442808416902605905540963590654167913375728633866404962130947821797675840915269008827036677010301622766749498566848822348327604239318403884846320714212780683329906583481710960028511904731340482597720360972007797459925275284595619102692819986044868261378883430031699721314457972999558452036220479125337993948850195155196332792633960076908006998698860630810540035883296039549015857043194847553043738176229286022116638951363560041997666042870320864024707143830305618087878039790867689827258659722166770220099983541831682697895934712733076222872582381398655100507108251497246209874388839032186464522469543792904865441457133010652588577789855900510942535401624962700711257573014417811277744719077049055448104064123589927910361967464189852010139322515605360632701912654508413013069722032781216793420353394437521417812673164583095484574910868417707593677178754173953784079806043251560760019603836821236687517951467061872367578970570723697399559347954679233769728697585196365313375141225379720582149419721391591146772634069245306322482456467345372259439519432308082250054477149077157630034255122319426287861276639358586444841947382814533475003655849284494015404697556321175636543129957559289618781651903611877110527612530878514913556739700082426979899464821386374814600696853585084951680626803916637797526862205636301738153586120555359349508773695141540504104314435224648176320298076152134432369502778308998130342491598335000470575758748190123899638840044308068576400607262962434804863614440872949472997632540663429890338416151804592416259851477297679382001006726322463408816595030730061213301331199520542973853114749380802846527047782073369421657918931074282923867881848823199881163490216596679424557176227477491490242786136533159307617042739253594590981104908906595128365457014890696678669310624996017721769331537713079158111062443203678888541385447277707494515338249152246371462141258642969600973363743728855889908627222916039416305481262533305923655202503153825460532168395949973056091213229992772164372149079620189885581023613137998603472314594106969867081659315779822513513418015092384106318362941619715910017382303713653316406901997545665308624195437333645826129724170520495496924618767071548349192009266955918459370736821487475977165353792017797161545931234946892519043914182900810066757599292111596324827412503138508022297165746267748417312688142034206510128595223335527810644708723982250588819551915248139710420689743118454065613336158170110915466474861868252329980413851334592164541533795781285838527747641059198743605080985807304222142637836211779987359461071778178423928214780262475918289207630212712753002040630121557824179638290020208975364039168466852915492809730761550111204262643637148138189816073811659537403016954095010448243639952102899391703614174651660457252567691671728905084898478816161118940184358000363339687570727399324075659595094536423813443978231342614261196724929309051998333718148456542059871546145057106460044688388957778437285683731874167712954363265548017155430643259027908360808970725120027448942912481238418790105101256277974809184435193728192415058570516090816574922107994923082689386971375464305287456990028123708578113009051837020759404240138202006511393972996474256161443973318845893945589872840804209514111990025247092453369672443489155225523182197553914385213064441102316363108179205553164504354516375019440931961821165057825557660533144834034836634815676612734827944956879867060226245441060191446321342852191210264996332883991927790220316812575409736359483078826019227541004910530165149955918250881289531073099579568201616225601514127421108432228646937265203178453489517812673184954662351501602327793671770472676789560461632595811201026350931464376844758101809424374194088237152570601328925317140927265755901378186609435091841703219567605152059126584627407806177925216883837139658241787832474983700749366158158406451201550200857710948978455075328278875654022524820654277765346968210353403961339003213243157006117214907299125388398022825423964122952724856044730116969557864478839528420305722681734688806754727974088254829127339005083241851233470926245293131277999515655986152184777481749837893801114723831718316358620585112604143438918052059199538095288560168236012158210987367995380233388330033396573544914602501788414530271352156188485425023598812419537233876843282969276451942422471487327318734392707101827489042009570244155468068232264084913414739025084230743925533862138233065919532562588849303721204522092471320712846854485650419946738702690814521080671736211680507567967561156749143006091072924740972324982294528206218019215110277363023991366371395277574546977121707670578800144890744086676568611557951814757775805142847226952258884349562284087807047675979108678185551748460724784872913552872185315976686407506487086838299331621181097013915772647746028177845756804224054453430036416087139725786679774006908530419800666297864892820418958372569707507348932315912946648705081261748433803208181470005724761634570158912476403738544987050227425457837655358146034118967900304228374459319142038235622476048501047336141824227528229005576556660611778463401552966851749041868370411614224673302981863551184368672733086916404219565643791091682001396179392229537380996893732702767884911374101838776502318470041019698459226895654453574689596406552677136543618703335735399172437250885491512978460517398484890401777422203298329912428287387958660345654249826771431215285789982476201185639101797694217993026966734195357974637626918509875620302616045510779851660547484585028387257184352253159958266729103662330411809492310865011108594334338364139525710506157199818094589340421209248752199725668531564634009755865011654610471614646064114132471065886913703218061173806699166072196200782207658197839013050443955178128773570516531185033849668542803276766896975411466980348142500780755000015606286932207595754997792125066582005144330162323970314116184142153119914323208878869088995214725137160166310752950206364313293871539588570490158233520162653394937692883824379731310738089461669993996116855005626691574126537267335625973879848919943311911350956163127793576060959012179537577421649230546413225306609015395080262058255641623698176676547605669680590192524298458089851426104274982270467540588842593846511056565897338481119896779836084956944657607141338647292130281083733354642154300219670809778488493547406925278430889315158752345598295953626345034430953122732555106526267224004779651090847819927136088608968099132918627536132976904830602746806350622257708791826719619477965441198744567912017912627062629350189241522066374770076204476558733735069147729995406325986067974387856495559147167606481489374303283345097576792963173936587039941582859699665914719285103267120669531557707972619639617641363542745210130223804110015649617185851759411583436685923261061480664194414931518978692773011747012062139195060659104235783929368153529922313520663817164267565710680322622442477912242539516818219539790495376174580675783104152455571347093623123438829952897449682929102280722340997668809980627104565243997805789612057305573674431507393271877611081819807679978301390244407693404536525024725770961305129657803280322510979316113921213726163433469208707863962920110208418245731627965695758084074183576500205698105222411536475514494502685679659959042298725652092715030630089060185181339269808366102771934571529606499442278579029895145266811112533454539442573832998488668472883219437834443107035958014429148933029073262167669972829525753450603523964457787946030634623803694960878886656222882291342794595275845247178982876610432045013230555672129152687903244967450475418920096739097207052704631242028440388774625150071009306655858726927653758827212524556890088539385170165146294366637227213259093446559436738305599164651981419518637757688724537801949431188714964167730745506125131531441420090521964788715676790006897695643958082365587145539235923034505751363002833795081964545609575314653016067899418236748228202833187219867322197949919174225150467872492006233553448139549558799004466661961252233945756511830324864356463558561638608385536151127549752313332065025598126844618524780672025496327066986018332863973346737172038901235139833023964746863494818221035591499072075468146974721071138870718986906256691554306653071577328127723973833700346230679895747526875826688969863210467251944410699859838673414927285631833388581646175056748378214956191188994460816229077145209377200883621892445732272196863235283901437504292571797647743562599809618012152585159619086407208833299410335488845935147517362878767048948351224208687495917012319017226615963054778898140553016355597175436043462292037302091608690150759363816299366770926541763010424700730032938464560263455141650559604039070930167395689343751835744191466989427879353835708148482735821078740073732583816092913850110697852718645337417236440028599732338549377331374193958659823429364102942241786703474328867145256088006683565830673998393026535371859650023460232840004059692416786452952131072012341353247957612941071794898291548484131391298763782566133414442984900762191021368545138069308500669963728783916561917783089049840995857649825682143119771168977000632615091430283598085164387240323313524940312439872245125852095154834797426606782960487436212707132732576131289935129617735075556544113630002387259050262832542299454441692609553202148375771241364011770413700938821999403571924764112533170888805628233137717023745667290350552695228997982433532955482346813307364724222678956425479655021689994698520080024737483542476818302051851674393615527608140246189680953240309758392099379302952986191938683800988172109242406666468506753797978238714788691211829380104588941630104509207417961994380762804218442397483106622530330886220193229698323521701015139998289325165028127262540256621693408340123696341834134468989161925321068946622606345796195857168819224555522809587914805875543367392201043852330777012991854197055345296772530412147672083158415453483849514914083234804597444062533295952266469507960359225047768261918352745119644627235194261224479539332439840723169582947079815981681690564427806505326730372706139882190664703631292584529653463658795548087542299274666253621579701293066377964435251861407734333940274573758274853751846938875158561659083958363700849759240539187742398700847343361131285031714031472595389910648647688574942725962062284857885735513194867780605594187614519688590600833303573535874353098480642670535049097889516789503384086970607209863019208015436248969869636593979412732730538137776795409528510798031318322470032600702908263303368341833640544265265906789994124173886223136906315038687796000149081174693615246445792985967362802871085782796858711614958573671438307710348414668535942690580294866388294686914951795870903378353224783830803097820653324427517153731464181512348847714393163389567069474032376010008233604839981004962751994095467089074586055722863040664257729174752672181003476141783566550952879672363156145521507134843287302386779727170271537405631847004006221083062906197749302992272129090359173469043368410992273568547848252009444712015716892890858432351991177030231471654334458979536507976204511151700102277186948553064394491283244121222219920683082457178389907739465935521205769234265036741593337107562233119412251995870755171086059583301299671432073618556322298328467515023883816853714868691678479486519577604430678712247909167549679235746736593920881072834238159009869400705014098841309181563793450427210306842982098854097567275926733760523574666421161329686831547133720103954148178350785261152873122668073954354958616428748993770881106629190677872887815215435776089496613008970778979818525201631806040914933625680859850020868428615640339800701586416087676719691629484077317186970075981701462487903688668794252075661996248033184475195455460592332452399106586212490202714749950313909673186714403694566064986696700568391220141184746083450398946092931286158019943766695432562996905025750093357527866577013978754342474029999111165306075910520895459391319211962328192622057841468428899316204654437468711648302114969684824619575992330441870716202876151950767663945368078791956481327640456092065894080451027469257455554088058137681726813414124049210849251440647892129159292129851555911457914417858931809892767794476901111723952535760725384779951454220660770006031086332388153931647706750752778271574486394883596037810084951764918529208899991707851662225716497363477388079744759898080123791196905891696648242886116513999385459954113596562278088997687220132361912049866943512069539170576989199718695035789611897392907860746470386208052426308089257615359380332690152954791407231962902216622032612206453907027346009575388696274140947305143732941716787204398016925444155313605021387461234488540911528962278686490373541447878330113308311150985393803820762042857737604461869558026072452779871419576040757268548589624305839219140455634669201844273142101420262006927918181039350329401181168013107994771940234030497432484045359965800680736563699161812924819879297304894359605601126816851931750561606168577524992997549112690313805303753186370043065430927325126727836804694743352726635654624299009374410797608887729793104138926047548407889185795537129721013194198811937218120857472913088722733491979253563812221821647912027772332153581720233929092447712159430939365820249967340649086393141269712471823090706685433731614995311605361954516935826238024350570327338428409246964359353342235327550830605010396429532598698672436552767402571889227113231208948530592223736805471005106960587800208624911022506734128381216008948089008942790321573484271168681405247775978090636841530219960417901828762451174846981496333962663726090622617359498984596213579195196436366381204975984430510155070558545239414300099839328105403887199994335680990088210724163678851928743911047264106309933397062170074033708558119644468302255241769746102197922402363521054014163549857099791021420259615308845187247091706846474921468771521162530863676573704964347627353251986616905088448764109856135224450825755280071475065037577491331348941301437306861527139334593225149448637972761174923665337961664812002864159569832157674289794408841809959537600080397723436957666403035540815108634533669326901429966238250150642771048422809369539259052181099355740284707701401309488156950776108490508664780508233556851188078926182261567608466892037373063031291748379025419745532927513500052653217098533539905275356961088980381761563476490846282740988391741224199750910132290868505785714311904735233013281400722302593802981296639739459694139762305885954341636134337345835491613062114472107575286005618431392715769294119228593611299804363834629590147405519948885688734226569284583718206140082178988541705553570418756216813724597749662166483817672362522150392466200505369705106225252980769004455087599983593150346184776163071455058506429205724152740419194494579221566263277548543719171461753764116494900999513414054767360772752027965550653398957866236806801599151827619406606308985143979407447542286220764332070156534021753473426492590212858254011896585321380656105726486893334507474660706954407604906974503859716380383971079201106538774644193570287443853335258188721794785759449659738759616910205824335045518341248150169692541914080657389686383400743244546903868930027700067805072514254892150486466072041659438875613958363769364870849265945239523091184107121613789866363400848892915644576240256772049314611384872804667754472976158613684280577667436037316513392661636125143108693046375937540315400770931541071825716856048231194194912129827619364198123908695348705038974849383661588578133108125404475581009167272795422824621582162004655689416346149102576802415704296561918101046888354577171816440056753422050597357060412205490037564239327831467083648124509336667501163296036975897604107308380082515935535203057765258596451840855958847206718354150003512839434999546654320408650089896313862341907217882939337348428257747179891104163656465481190779565039163138783097640837182258076100379147639139868436120690499656141809201279426812623939674504700467019995375855927210725251476246118447422492305205477606536895379121075875164958097271830230314345689448224525236409565338672818440248294548531800532957309151209087408959813847749900827806393767224024676077114225445516469282409510886328908440234191039476897170419935524173229103684290017483436669426824345397884286117870308831812360139559936705133861069570039876428110774702664993457119942630686203009959848260479087250546496791136318064756794977284102772850050458328743877506379603361720474672790474854984580888703113234861294586014827141017883688997133645611003744707655449256324502674339655622367837585022180607457128638720179718429888012542385352694919665937793035419048131249864652552590865805252333816148695280459100898045532692452065031329610924996182825596497623599905287668120207232187025219025728500605869255585935846480210993669199191026194468162574366279506985303816991592482478888366340578506597941456701619430178679451685949857925510286467985553098706858045788057442166346243331426783929789312424272000304852616631148922502026138269008789431625967292161267098692755582571827107808709866766530726042125763318987775286452179527819558809137761191162217600481121693208242674399191358277200192178158864923517882208677733661277288958201833679840716400177242377269049653019106720329765081907256536391961709303336808776298704492648780120604602597614151856961871084839990266210867178262187432695999125070511411632012207439954016624600177776721022638475244574473596697758079521686168250604319534229957654995501706333121707865591813778216259192872129466412117658859329551267999729621743190981856533028752049190796509829462450243032122066676708836112887991313603882589041255320660059211910562948084261358279944283441160980183247277575521532997261579436165662232834259299193930538242497278410918602316644709103115077899547944005640904008874690543681999887664798164789948419680910432345793726279023632247440817469667091668795621837103373221115173419463607752267779994140514447731104651408908434366086513614053116965159254857045032623041219741372584608075134093512008693972692639234858985974080545695525665740475415024661607097317332727719667096379442489798426839943145980771233920171889694863524772737067745250141887674811861546393128402281940196768878583776161555797491053195225238785538589821727243887433091328572060182048307119588187192516939304240337689093950956677574118805717709309534018157011866259493987254945886570868767295250077629555207908258098445781493749060178708348451566211764342444494622456517433414291012094066639826675041666729024322240633810854399044917456127861831650190179175721119494897889705981375697815347667580443292356973067816346646142805485481556635266952481532410992491052968931216798646796074204389021419341162507519387868038879039499025055121476793140073553207675655932881684398337780536410235557838594161080748630273195644777898541907383571071068531422415464719317556405714047861266433756385514395427143527168777365596213280279981634170504587101496896291767875513909415313228186854373410654160248053485544435286150237851869653833096206097136501611706666507481426052321579497361144952054702428198635975030435367138609732772832507745485474040635085704128252595487735946513533680969176285789717335625359192892826684336554313321547362955369127673329459724643459251843054464817788142059734702012786150450591164518708732400607689113902750958013489127574467967181877233562818081817025297189088764844006313499268486761974093314127918726571856081885369150995776181695810784850348641318074436418903994144491368570348513224939660885953952424035045703458175517059600547764082512549395380656524913085341600426154745749602990607491699499485874421708421412162796089929421993047491466942318232053331273011162552110279176581418224633872438319022559249598396448710814116338569903917220650019316851758446557174238385605997876115259322820421150373168702754497502069142037138190028048856902449781199469525547629908536742922698528655090383616592390941210296759332438286073794435229697731556084891791224236176744916812672359466309829518021307524095397509240606813632929419163443675702447230782243079075979224336000789045137614192628424045897843698254724642329252669947958098689276993965878686742678221684144006149591794037452752429093517505780755008688076119175923423833743430186474983910483756525946081043333290786314567270324292481818331757888470656014311219635873158621458849400949488285355437170307433578686761963342524263641086984984741237410330841398870688435953166739511575084781886538441520754823076073007917244475903851078260320444234368504020895633213108439086994913623194394000373192794683417285444475698987738013909520237640604680680272690521077166513529098918027369857332426129649018565198269680800099330298943983433335844626076769824081099568342741751365028123772807174107013820402241617093384757108198704113799607976331847201799909571632069237465850001112710584067152453267333198555519574316866830857537697331550956160546124031174010950477456064690920420984279104856969698847305321839307096075868160465730924613562833276101774093954363462538268471877366053755987143078082649419178356720463617305862821770260830562362485153482895449730823686085082330882904421862312211114295209649236159006436034101300277915803364873394896623552843974646952925664231599313670379602800568390123365245051164190642908439441984953665685519259487331805270669778413483136356925414963308318174059549884553800196952490643800788438713693894868744210847383477889842242817489145649032873769258150575517700351174468730450889953699515442811704436914400327075426348617327742226486185394280662629131995249269714362681757009766152181403011914579632265009207395336739459036865513803460135051795544624677303504155635755877087654214889715295150573318313962250811046475044879817225827139148777238837692505698123422592081265768591002978618340442778291750110170675256870974259832905908458861973576810134173772174738733376368018218055010443853858501346170812575248948487089282266142124519839833207773746233480932049975704126452252882908696558145060463690502303751919296446984693209674778460937567226849955952480488172886315142622018570693916853656319845065879694222388988196247342376855310622378500217179490993471068135369694397078614841904947001851214756565660301331820719084342634015633660736003210154053055062048859463521481420422202654462290246880532560388479316077540940690550290086286990023113076760363163169743458835949750078294258368944062899024016362760672870710597982822781351543857351452200527703754748008747080424217290777683658773244236333131158331439000002202375000482421384523795264369500639173100093124512959079123652522221297305731053835701218915481537448030446346900674467063466350128989675976408890836254554530022199644726229766413174288605355596024516687660579114128989337185079900721349702392172937843882071640600984959350880273563509535969905560878668871414734768252048020412051849323779407915511525656959125305086434742718414261404446295033324977658390048570781206784290894919178017595426331136867530291185946044644252959839395014632010896803313899556228409239503926572928690010183062646428060165496479864486561552012155393884639787614079342127228719348001435598252957448908077285799900534194511477390610182681404210514668943587652797126037725351334129117181228460626470298113422946681930177797209470282790779561944009455613220552243101159063653560982244029268798067519408795505492705611994993936311296070312893109788467594569986405558902446240968375270280816031025836573486688562567093432877173662209836027951867670868215985722543530815691279126130512617258696747485650709980883628856793221400619362688449551435624267203258433191767678794928905424524993465608958133070247698253334890388613476700943675954799381788282730097560912028614279277642653748967994842655304084483651022442668280586641375523193967730263789630145592767813634026266775886505879895603059861432539021056985210509670665008720313774951484211577402543547423242098504453828863879684481407217930178843067863723614795211043644101595076579962096973136068840858827094665429496406039013753737514249121236782601110669383549650723828038875586911615867621859007745499693425045169790746916348804423167266346203101398064409074395216452289121642658450680151018051586706677356607293909018555717919381226286841240952669251768909127343690214654972961265691813396754169811325884503187058716901623704530467825730703006800031067139915160422833433444892755599388064090479849649049636582845534640376365124305442268810738040527754682166405332152818751725287468789020505011212461209076629966669769012574389796150710114437272174483424556442696458603103093643944197720285450353431508861543710808077958596427933850486995275845990978775086016462618245454958904919416585894787514834826967998376906887098453863926949281903905451331308792215668304857424256659878870287621820367776750787137954268218647443242487400876086095501095113347323566756518476345603531159295989152259641862769393560817782348151277029380725301669338757839793605903655983062759128453650117734341952169704605598868309687863938353219239329012279753283816172296086856694932733703153404182426108464252077997783723130763463187136343959772781428468561173484878472840137170623815818517741934749461339422408437359333084126680526019288721543434451430957829097693061179182822177250161676448976985422835021601782243806308576399622658948686521243090656558360571444860260100178825133652702303531231858345507503751876880566377177305712011410021538922703099133053623019251574909849238375539164424882849789686165302054659589856572461920151856778882808466385398123945137100753401229607327145258526692173184042147832251573926734433688221208822710239280868988960439145318749177617255667430810316647163992733257179446302887146756523978977829464498510761886257259082870124295584868423582131722758229616242518230272193157450672359799668845424987024572477928548598348801158895050821236305194929216021033913936641939580829270137230030228026477321362609248688179145820957736610731802736744166132120785249491314472775771211108569926855316374714653990212085235538836888201426914005172313574892840560932431463217183018561855299686610960389077874706562869735760944456340886002452577442407477018888166314986867733841904792672334399043050340620363411735894041422556687315293109381677619238589780228514947818177185306621057323210559841490526174655755794192981112500863520179930616169185833451182578052863762715454897330471577283042246206753687636727652045660870739606486493055607210959726415103898347785739580557031026982731238571943104314478851844283783775221508451229900315339952133343858607006131089554971921018439561105266075445540325570327573565880209540729413534100765186473343722441070660361401757051299498372745197623527530057880478556512617760465055732975773379471213593819951987175273199011128363247602709371139967926662135837745003242574510085637538440491085969222495462917281827559543042393404759445134612558800755487344300127159108438958607326194932622173108594983712023367131048230450602260537876013693020730829492487868426853279453323503582141725539355971964797348412314724382012979586266821505846731271155792819787741969699587109073512338937484396420015431460386114905923776932347435480827277330703188478232420149744096291447169910036439020187909815411783295551070054632525855085197331675541957835958341523521416405345249203947951488758250362228341148853401192522186711019232430557489747036995028065106632495861212448378538906940617013517175643778329306897832235782533451201110969657975108014084934534784663204709200616941421065320861008508877540069614294129004364650029049574226792721003771545990675248948793508049710393749775580056185971609923740200143195804872736772884150586323380081787542593893577308854728529767618697930447515341006856296186946507312209880027961119181720461789847814185528265582771486412320802329515291130782223338186996625694502551904057353210542255545143834891136746055631598972136485210460963046186205153894624818475591469265756035364856521445370423162660374081942377359278601035794821642236413953925905789823847186446380685131367868646744534551137242230483022510198210258444205858786720484269286331638809132830026696085842189173993175847527031196356741804985583750040209009702247381806503769895102477140896048713094295515975993489370245809809990370401948729641616767212836724952733273359212407718838434492848899607300681917137720038737911738557596242080364796203049185166687807492317511510542751577090920184436464278556919052248074615697094856743299877883182565941744738872464669756584473821261611448197964553402975637722132402860812479713580775902980176186529936735871345231365609294561277290014986021471005388170660872958724221805432403838616808607367980403998626539181182157424561744346844138233598248008183118120687877221361274613262388808927373197898385584482721382989713645251720329841495371895850227747451918128845185098715216484382361028417890977726305691111088733852677682923323953551590504767880270245397611406852273850553568643467770690834010151670774888706876871652560290769941191880888296331456064775922465780270778204237924851631336467917341129059051967132278342437890750214407767303749259894935166782094289709265965746025259538221952629526399488064337598525895142019105451871004218124175052983719552272188660944280877181502582931056000014940516187898901811662860245945093629703158045492963901265613463933840201975109760227660238308343175886768840277414339470642187636326625854832673030022642461753528517338858725994513722793234021708140271953431709306576682894527124467017357452712519861959189864928230804841092507128361431441789753327690334300960649953587201485684885409804560668791365131472815610386776519750954679364845494542818750919390817258855007978909583257632314770464674463670374726467935377166858699501708923250236194922261294610483835725724674482545808977339738815870465373008431097382226371185557554334856974945800050114769007332298729362251009451643622681468636266201618566260889015831601140738258439419290439795483597571897480969341086665963324752174127670292407173862251752637399664998807042541144085590291617259983416712721641110715115167093326149399420211734240297735421205626387598666370080349805821529962381064822105514762559872962413723147562470227449304124902771804056217645264369587336946964288893760180918789272031480548093346880819059507033370556599447121941467201395238020584593961166173202423518662228485789413193785615383374815937035666582766062431348916112420285063240168220807612942028730633991922987392709333345496669167891628477261722275016097807229565815940322059354184792429843732321435175923414871000024919729903115828657929199324730405548230059106883313190331599988676960448464255190295233564689376066179808489248775141874251282405037734554415089852700367021489068349222691537559051678586400181738081181603167804382518971271122499001450863417015438149285839169287225206310567451985845224567889450239578129026821310661558567510145314261142702853451473932400189222027786635690290894270778386694145365973237826092425026864600927471334204558349765481958938234321556338123702443049607181352221960556169360913243286948622528394416158479310263814061418102534965487292133785252792381580513066089758895486402080359975617140851534384727754699885367628023167795286107538647538525749939033782886531391428368565303159278726968319986871315534574262465549295771916542727243978514315210636367780807949405232122979818351720063947905833438709415741528337984886363165486912497069737859925969096713493845046763552122420726746369093634406991715960792763174131669032742425077924618475640790724427332740132018810844831020595938614692679449344022348368279753926736741548697250749556075116265993122740128717066305080737429749726534815448597191716922647814277275596725775584297622524488936613788449044089212293934042849522122553699084472512200367915659007057869022026439811106292047676576445006119266130017768376108574843097225115427572412222908098153859463265408411504565591023231231202720399778475642901855208481149373405220675747530269646275947202029354217355048517436114305364106398440769349936518821891897271647672429445797420024733542234652929974217773123506788239938768633762215702244582407339963931187514069401576737915182587495658935562525868362160179482654649900110674943279434761899078981911828638067227058822953466523336065125866051330188369982643624512792583166316405727808763720666065339142201693153274211012058203927579921302277475361684281223774376921436299415479657978282582068801781588632416391915027566674039790154561513991181385085762348519485542977148194946435345982299841236693691968382258840694361676566011820231925492462430750559147212933064507876565357650284805775766315962439119310232414361021122401486651684185868925433008416707986663682917289376416097206927870030852849526316231536194974460610224169755967088845980123178537835319601828604250510071957201511467468557305588057544355117395424466180066669854262074378143117787953943706348220253597788888279091469992619199334162161075721513639348043343989026639545477474032528986901147370243048481283299279862111936577526248461967668392391375944444311929219163365602979617380109850311168201337030746422506648010371727148592989658324326861534874188749045610002100278698631795420110176812778324519288746270546366599713477886482644063091726446607833690384135045295995750411511465745487322915049429056251669562682357694861890574491792425756162097575517040353315458616171281864237825918220129054024641047859211127342673176722673593402963336810130879366462150155753267156030044769754593877801272352346676644566923966530137063167595407121600823634750717059839348075280746691836912574280627924409730562207447944528903044628930650491044771699633351274164649527537930314959198691983662201996218314957404781586027684867909118801705326637795298586486761238532499360213675502790929562779981416780563540929218142320551151618426954773189805820676767868331943734409071508105580826125202260265413252501018626944112651898937626827701697524758923397287757344849790966841198647815209409455337943832840954976943479215061031104369734509374805046218879876572044131878926588353323907494872986425968462866855740482573281643167566066919624595704709972372162845238624226206762410616685276592083694195213754319684859009878450294709780758440779676898300854446127743078205442033597717330302337621303425179385545011461872491289298782237201116464330539047883074043235365873175410336728509802731819828788413232424757255111926599272621610977259544222484838820268420899464425042276457986440931523647422854956770379138185386183703918909491643212328292036740355320769361773455563843348758709287600497695828350774021778300076566092361311611978696654156238898884636626463354678583928059539044180747402892637162463690151981224546315118213116545583681903242288397447494816675958619983003021731102522767441024142397571942907768967242190581483801473950666073595359269707516412088457202461970855564971708241065268978235923715101020186571290898705191929322099834668201783113515514882869697554113960117325048138790293476202908991650714488798626167364909847694173841880288365506171759080736948545629090253512206494768787614807475180625218095296547394162926033854536099358243949265096725200061350817359598946661122941886050149144143651151400423978971621631432269436844038408403669848470870030520558214846974503372737456771604689427076783706133639225470991682205078494476555762360153585121205190606565168655497322025019757376169900090477413529140670892041605186683738317337094874960127462179560366966276781574850630296892620983004867305469505567675593546296293232795199763346322717076243767380054523580635274467540716545904175157541954588880944150625128865162603249063327484663516784961220932362446244929219952220143582519140110341652363199150410547869058478660427068128123116848535899423160942187838244009740496741059408526769768023563743273667702933211988775939457294645046666225340979439855360503443039702955276915572820134092597312993811383531942014529598287365160257049132553864836635414380598487466275618333880627027244400560708314645607047519145845953561418521924032877928763920111170518408858084806529104054251369124857246667088062388007610026601569599089540009553884369067270447742568626022922034098427029937517816068701121447676879080759482796080326626703143078261869275398012346620033862736393141781901195478823801375360197009215911108357458007256027217926360736406436773139567384261839765757879410532618990873066775121360692934107848028642560351602216809780958610442193355481048367270337039773009010014508742014519308489999970481766825485900344129723647708677777584010052547134658268733799641942721802732263919510383940024802056408072480668774940761987318980704352198850971822559682559838088938993788598773295723698258185160824675475092535841889905353393849049506484810329990876647828384290624493042646960073269620288960564418461157253791699911678221952835238543745359279219952495282472084412759481310967543424933555610447368426657999663040516783873046657104662677165345268503722572449744266384136104814377473367551944506727231122625874194294875981735362095029959710208855021079553170568566641308207854308366217637883368512663711973729996970840881980341272202510258807663564410970417220104649879526114777167878408982955546426337905538420654465343491567937919686941473920179159382438485542428198612053091935868383873616193771410024836217146392491040455435354648188640822574456696990473050980579560105344868772669647009593108031804944462266941458272674351070638599705774853153949778097759679639781198126563560773889991263177563397173776136303089013679764536051703110118725517679246186337323931436429009104005121746200789533900468022497786349481741896178333204154543542472856196467643548714180470796075279109890456607781121661868057723641919556353097139095948013664149977987728223999381932914742078896707054652085517794948669485159182587645722065790940204726010660367377712228043151252261032872944377019284278505329218443141851225275815669165333745096985483371273593530197956951487391097454197591660524910448343074316890634211560939169656271005592161118753659628612802411095987272997198139146642782270461309232708036706391954741282359035914277356564985926956523479155159067287972034443507492490237836677108345681673184271729716842065991714935646565020544144691552500202870113837993303741471632575219334419350820951523814111749599693743923572799519834002102943717778326970848539555826971289896096990129806094920925536614225191657606766941213577294747158269426550153651834203728580136127290639649725038243687230491908211136594711977359562788053649116875218745775841928618358038730612213410583388018142146434743274624201969453462026881202487080674806912529956739975290682307120177397743704731396024847016515425127794378570268073079284818637800624440142450673646248506499120019056697581879295282639665965315865805511592948491120512832148240180659234597153702967404741305366060449407253496752277286146139738512870856158786804601617387767239696000521417879358290886851504846879627546239604810998766818507098260071162873379950617664194341431015844005846423094263249330189471937642441273552137831014990360468353589652310484989255932858970048880914911398453576463031429218778096324113603322790925280882060280748545696081215999012707836860435519163908297026903497038089790837364005094474614080125540459593808688920050231851487562554499557866724535938595599592413866560563372976263019373814240045528349408390670950071330238399452476280211259024745821082882802469459986344789750567226643315726367986543100928820772687623349520790541339226636140505796864548882114949824104987695664106009910542831085554828880492493273051377799812796635012848559356458558881017752535949239884379313776464891853838811658968612711135511285653944407680532204974161136637413869611086446752253695849793312925614843305180679352697175120244790304895378229824154315715420031920860745191556228327458571379435188314732292892247907735465487589609365369832401077413349390522260743602589236549965191016149104076223665262353104613667376104461641875443816427162950550868409416729193615642468799411233585329147719880361577783807770990813558329728453709027795852415399713111139984384326329201671000132379058780779987003392040912564977248048461493154956353088142601851791740246629069054861980108696506528329910221365097591505073488963767746677244862996855809649063550471148584183085480575147848854783228912680429733934805777135268108924545982085829945208855925006609545831554080938470942659052028473360919911919875853522393453198391193535795398737751291048408475390187510936044368024112547616134742194476251007589204880022632816387700242311441514363157673372293775092447536622011518256003736470060088852232829345687573702256811635978872353786214698522005390579684710376617339971283497973627324874817344207757039320033843696951965542165927511288811192288894376253566822300830197142574155969208723601774583060856809743677395875516974416410937103813724701500014419769645134929935920569795465142501707621286734247106589620777093889195104961621641816986090402127921812011852454111363751450979861571664904206753344058634011163006424364864452779047542330651768138145444585901171951712707454653825586899488380214420708202433825481852339443780034223607471491384051463487641720681246919467753110883011225255884362625673745917882491384443537641163301177261378219597106856499360927089601302765270252625192314785420231766570800706386687919746287770747234162759048873912391116399755380548058338160959625559014592933017210862415403766146002357812947037404459175910498757461120868499576457324929132922368100882604188740128010819325326175569815825264618172324600527724338286698027729305956025382786136162606966954026459737555924846564562166967691129061260298492558431993406720455037456920870614077512004623786757994757874563932031465956825944380890078002842642964055275249974412461310627233349810603444095974835037791458751988303115916971250994094931588708927319448945774426606630223564383868776386063196361146448218901634575017463079599461733708151453221633925105121627381142755155702004647179620211391038511947127282411887772542522334822467428716985737043161464013183107314226531913119836654889248802379088057822511138840110438518089927183779505144628863419457643255676992403073831085387862445030778446398296961606963605331850479448649569682926762026338561378521594947490765468689163605866544190765372571861891198406834528839303926573489467583309019810668983305321444341260478301383060191392378848963035388145508100218175732707481709038904401226202011472511768033071129706153192041962224896110901083003603890065272501526901001597123680431365082491002411101830901562976009420449941293237759550356943088757706209160782769573428467936773792790121544300099806996015057687755904167962420729833253248522152091965293793841212713339541657767899934755249243223372294831150329126469841007446977930267997780653678255493937202449509875648561393100844414937736262840701793032261280773721054899436352296913599144842668618316344264748218100761774074990213433899802991284533668187662187583555054865521202962535687754575649269696971722653044616039662066800612497339396234781580448096851884416606629775869274509932076403831707106553592731941193368226234563374454272460539986336839880081085068358962899932345234801593279474032884995022063222005540032861191257100252806744369632056107522177313711541653197519726759757944923275426155721200535868876686208866442933284476679384969407913182896913371936189826730062302327945267807312967144668407076791800833686407687665618151025771073313640664524925381020937597240713824243067274289067406352496259300632515983976139600390919308119204921019969494073973143694061686960671196389051649052439243168498059260748495368558190524907253147701466960348783230051841989518952361568177181788996346223592576594029632948780715969402856623633016239656072286444149933867212407850028177285032054759276576075693121124030676128494964764108017736394482626233642546945204795322705230919143493066870600457381491558359833561849326005926035113651779021391481902273598702506581979764536068740328897109359860770019467651005082776180184825200919466273464866767711535388357954365666268719393106210993748329999900900192293536692611357040717937017219034310318019827792709967911892248064760667779837329970091560068283840915229302107143880996425463036846731216044306422400000603444905032791204849978167712431612365765097607734806643440665092392934982304014123505351325303039518060229472298227431664762397452142352535934842908048742784423795041831281772126922953663731555496596042068521151386131189841776319308388589093569523266741237826955201909985821729558815658411898405491665866749410802503523925869370437875136061764887837732946601024498047664126920122090637249805876714007037990599818921384561458479601632672712349452232219191418685230083524541818189126211311504798328363029183307229573879209255944182749653371985418586589899484834789693705289561779028593551485842431327572046753249156770776839056087026128753379377035121377476655686465793580705974425755834476749369670392582779495772951783301979115188572312315450018848054651536211869560699077549366004696703114639930154320037082720882948769570244441084511728165700617582523338197414518813704182498542447860434889929961240084648742028602744800410213721752972399220494512677236878233707987828079132256586702316398060123234020872148249905557592960812141529592460059123915680379807173853298429830465114110023840369376467767686150414814373257604548695977694206053665694783021717816571594473344666949985250419579642863540271507270979581259327338025339932811292199861103891413646520895717646797187017307766928296874895378863261456123513172451741649176138023680505647643999433347513204263616500542423120683655474213904328195851509595258006042534482796212828735059862580425505074249271173000647157429958504308030105999762511114179787751515505015772491047566714165105463901964550687757855465046071259619364285072267390040410450930283035195117773466066865752050728633092655031672781409987230645994160228439608058003593171754920735110026522571688330457775374966569786803989638330822815269981167284940245452949323049467279264663011866899905515213877724422808238909925100977518969630137136360654614011541223294496777253996304120505701944600600683409904972602362227268324360760587051382824594630878051631088144496891184143399038070811793002074326304313621803087672540695704707542751855118120988199788104831475086427029340968566769929395803329172576108141770971552993263991819119692771013046583182210740953193284151995650274303582319365343323062073254103385902488907151779027886611921522178896636589228439624856071073626248976609342480202820679686057036579913965700570217642117100054561396176879296410932877757326239712049181229833761778485455536362257019610757843383289735981212811857029648868004175070462395876772493255114471326145707513446929952391022246077171277958981231848908293714410122244719468270423286640901003100039637056629101409572196225502461233439124019532856975710905582526691175944500697465450853481137807584326220518395568707493996489185962974163376833892759063567128817590852597270567271181468018639758995553450566030935873049987984967231621910475587246284427476803760785758889622474658550789503365909938326943503628626019908926088205161634838357636310088626450447369621454307593889108946836171230725813306289906252387573122972959109587512582441374338583359350628836821202424411784072752140129995425881143308640588530035163979728243491384289006259672709783345294450903861324818417789405067696266715982380387645257864349517929024199711287942498300120289682904631960913361423406163669422319764256763357356937311440769282607724468515607348043356036602801486317084780394711719680256134796596467271691334153376504204697075775265167851547513336696891772821488298868407805711159893088157224675518157078847766470358245879392143552566984748542396420883603186079498837146403180297511298723973445248227318305584127897469970917148769894950224903339822618068960794665460603005220792777530833967918930236216095832098050253936634588842833303946141031981845388227343443449103669937369677558450518706365327411075507460075718862044512326682870383374084760905477238248060367563889608371672761870358957525962619481955601477719277788647157844738491208464399511873049972206430034974006391550608043473984290187756539053559394395925570035369232587470125962443762617177115398476469241298318226288367014213535169116783518498477504725008001007036470575149308697834543971358346432138537384853516825199263610951763478739418581971214386700678981552173574872065835448142400223329022818072273292010558670338115117524042392143686767184437252539964391820219705888663932998692117914199810553967653128887029293245526053796264573794948582569924033686049839452796585302873516154361718012051441753888832836267724458323044194173623982080321134701840310722385820503909667010359724931008858606856517178890141071892239400469537051192367789623954314682985383726353044873654948145363305545963239200475959904755435281251631534869400620191250846870520197167139904105292839624070434264425466845277555105324301446738594905329755556479073883772159120098449583675338552543558716455525953212859382159257189078739762931924699015126818462941875584358010123043339959543973943724787470469252915006395070736983437163926418048274405259406652346207838296416790261156920694223346092151063436826695595346926092939303880304439836038887700317639267168084262568212029960586123663072985353005843427905552595808541819462691204300512657364664847152266671666221089901102285102019392595670072350571809648749416923567697950430861895979144662262588307724865188930026421940426591747582432415725339979447081893063104944790487102761592170973590842526480591607305988054613963059465277274580448052954362462166792657307694541169158392662860642284108248448691546574748064828404988304472944539344436670006791740130974661841701850308167873260195926997456094967691830204810850175663823507696007331151736116747298592401154580075528686971469775058290710227016347943292899695618593272276939264889797445045235187987290287903069128607947379663957938027902534463110460252653464247645971625696465722479972554541944824696886334435930333165570134560050215039729990376773916198326203583793320098650322353081674152995596782984800296042377563937532267893540231330954340292452680076545516608448703740730040516749997854583935910118436211868978175818671227867748096164124594205967082080312382468330306045401591785679865682059870218299206688741312349309262290988266086229566619255902238981081662329494400828907678064551414142150544940987406662780443232100177037709138559260895725760747976417086093991342198762033840819636497403117313797191954494069253994952686314615577191518064218457072659677284690588253805345316693400945370985714071558148078678503744198121424612199179942574964232343388596002020010620424930363437582627353807494610665871587798612686083139775699659083402783665442002355106450945318281697122478124462278312151942786702668494272393425078361141718055758556764156554870316946410239843032593978437511268500248187002185666629900553232884992089635734109160735248997085659397800844016790449837065422686299627147995329114206378949928614554878693847522062717758868307504984749009977723141413350522296149338314867273395014071561064085319448122221127690074251159667394922691623113787809426203154469692424051890646823880624987016264100163109534476967356532644962667293747314548804871194489209394210582617441936671641747336916183174831993584402326417559820272433341719295271165914712545846063374916872439699795902135258941097667109610547030852282591032410212124721685463915301897757758255143104822597023942015162592134136353350535444673734498365529303423847707806639927548729523203104832753757155783917288599871188248405401021963805449918774655456386452743074229476184110987109069236239143606820516802860908131576463042460720063849935078973923750665503917996505087646626606935265416621147691484799032777701793295589340650544195578727588806656261282321559726824860963553761395948094536068998199268205495804274629694821101824918564637567679609625811771933644418653213557839848369682925235074863686047408182321609343276793754098427100662012463101981947387493077714711133191172914244711220866465332192559203934797139055394776874249914041708053104795753572268816867612257095936355780170867374769020043177714333067695338907983761413810444754515376941891944725208746278418958176854894728856776178697869753287107548528823977737658446182127827570944538320388456218568873533701476671778498304553215467714766692153454516682595907524263840889542295836573660043042964260174377126561327933001755640759268688941836492629830814333569333093335561029378644119490755305981522442194323353881519924446142939680037167845972176558885326136972952232793039764906032412320187507504432586684281595446859235212432687665264330233775456990058478953202699942102749846910047247668352131992245504597407125390870139420567307556043149039788281546274631318824166715720373809588062097452186341829861670875575779469376212714601823293111462156926815130439005435728760737058182519425474155042220981874070078983558278445230042858021937164137428700734519818893491080014986404632201745335657438690596525323375377652906800688484837283885735058697034156361129722234573102904325439812839578290772215136388014376751110818317075127941079513203268042623017831301421404546346463967305266711631613315408953813175010681178805730132135964756941028089209109446799504677445326867294929093335905691585018360330550132998411806366916743363798795521703251517327328036713236619455446943129096327484627024299986395283438216718721875041193035682116790955082914997015398298048423074490093535103438875142237017974122181285053653003591313068194243914121056055990547388752061379545917095148177054624850551480454632257876561478677435771424886334622796344898964911652814815762999412968925100242208860867234859267914916208116994325029090400364424341891946376480592459737748462283315101057249193585971127141840321364411565513807790363141805141454594949713001966844774583017093464990597428880169012850216147122646169715312139251167054078836387746717613744933052635456478593967735292931629231479571851648555177445676509781252679199574280436024267903146549438854232409289163517373307314018866101322420150280342889253111327829180136430942251142931246390704837844461939933871152666079682726164164282251094584133998612578240109943081053528077129915681038919530973555755633184884803159197019607874432892316356275866756164851452480080668517228571417127781925055560537172499802429344866832483619787079766915589272892536406576864957134441637608954325896268557691725284876945917538753574090859879947229421280267519711779084566840546519340980335461049885980578819603054377226464024899311499973557580691847543980874407399503886758763254448846615483403280634208124448368762098625401856970776757659452265132674317074076674059368341851107350742625259389283358942209133279621528640951848743236106478585786324619105073654705560038005140233153452376004105686517306465525533440090626393918244282084079407219908120325406780395812791651578683743708903465231016128674645063167600385814679343125544477305118027778483245431163436138867358028566052191487995996446411823340276950774130862527675202367654742395940954329006142266132312648764076175648762720351083532120482461631791073963880896199902920111072343327780995051722626228421036754113229574881806226953647531591345421338519093931527226626148670025179559719934049984068144400005982662522760071041769447215620244536052849858970518946904431316849557065827455626663550430057486128778587932558478305246869926575287194563951536865065290885979552993703523183992884006286027759973375696229227553260097317684709195720820855628366627070122190802316569288512446248882891094277509218548310880174904058950867799888055522074070056196697363829422355560063913096342678766736825735151800792930824372155068486483011852104454619475065696706760976034515934569753558302430171920280745437484082462125534834132167457397177631022400243719426665470837880106984945993710527887089541540651171080507902262256474210919552196807605328649932881464705347279877126572325000755365976861081884970199523666429639473966217506949698404007200775783012274399682709379288847175421835741474712305907523696082726455557258574888306256807844864820589601947924408257763235670278452247562731804112230747045587126776208418563917058067139869620448764614103200749251782938859569946435840878663975527771489076356909315564444076727916319409548847649845676297142394175136311321711792248824346918511120731721064399908946700431797019859622337824672836113656403194923083183976437393828192282197277390790451836293784582378474101085703100186001392546211878051384410036434490813746051440557217959539503049237238389589670609073625062020457083374126662482452894651792202903624008886609644459090089551971279552138417725845940440799888562519678588158970218080502202897439731429245814604859106440517186043902950873893642501486617368833924335173749002788028947003207778148956815591623344853512617895345966293046443849572588622696407702046411358080752377159972680035442216130948356261511153431066859812895024704397037534706707796178444548716852305956539741299514380891412142641956183571934433712136487446577988527290117725161578732657596951290706714196456177746105587865673732517090338538931833486625826612129204922907688746748658869785733681523699527970583001043284555651536066922688060446751310263049820419639561794585404113975048733605435378352351652052248273050013266876566002672462327302282456500315424689459975344469268564893253233263162143358642215996514095863337782814069475989809114453163589321577306603459242065863873587808474609672463325237178374110218270199023632454880592965221688040633089755774641377676019372952756596143134986177601261405730636455301682368285962500555691750737747941275632633849917295634019661605366197564599108512652771184987973452878562140863636513737814320586455376481155323164718673200279829756627980730379963523929644204965608858076261077702928215622923544415002939646161230984261631030945001360479125582112773180911363431380253584580726651087693125584628744936383164393039353776794088518623255721357458948575110828388301537127953244265121826482818350110224693028408740670157692152161922502303557612579409562924372773004078368323094513627000323287205541244410841903322974663049032869845654145143050141466647113041199419090573256142177019350794118806173498915625402075951428086952666709599294872686502134539076581917056680064695396685483948552796426887369241917516039475748988187482196292546168100545455428951800148610816120589609146964648641235598782727493513510220881519569290768493982986252503685397806502679593721603242694722584700568383702174773706244425713333391705113297049716499682764622476089929109527208450964601928108851844640352914245490886625924394605092159724476893322035068875137360277527272884699974231686654497265583131088482180037139991737883484326446871647563728800245635844370725755748724554700282124347854311823525967244034732429183846912371189489342792401651625176361653930657628290447591408551488637341465885807098193875922026312342510839587937507215361132351338932446085678632178759130439537326864618593360977930904237089330826670276547927337731152363777829834146639793376645866959822714400711435160857017845331347788482154648574747750933358601452611115298395917530576791170347200760627278541927344672987317615106712548191709911451000519110894999969235533029350168622199103204741469869166436818212481143435542322671947300543935198812109035558080434302538980624429664983447425250014465718701647190122986330654738777155691084992488303740351300671963046328892479552413587904822242556498481301368466154510048106577571474230233050681340447662656176106905521264602137913425909545954501509245769707614780768344128650259142162571990803347294856845946475096350525548782287481662930186888279336674672536420836675779011573879111696623099557581278929351016808672197306243465238340573155737585975953968452744337461674652183427170481008360038655224291319022814498949754253644360055173784764964743519689786232691436685945226130214808558058957301187239644987270333786529079504708626724473587894503283854660375300941297186835827340144655546575555963906231217713879203663444489636763801488459640204608769153861962089098617715408841531587673477778425625246672618888190951982084118759707621014848358905288392777771765660830392510360844360459132635212407710903146425700441850250777027902420700130112627862109417026586481885072614776579748331221658052715583984427893713270688865631370305869909161456629201919885157317798470614954496948323999792861089776812128238353716423447023858974448847141095496580405069390377127643636854876922863904494379693595799176905971900832763637196428640785881714994135164316349326523957817217052347559958350451696353512948297006341003021386144089114326330355833265016623575669583543848137747839125153463018310707779602145700572440067229071891024550538486154768708955938331182212011887282936195681717411983134712237747687127832380110346749464015238706643933162156323609098716631671754791822261887822500479416417356038661729855090952803420859619373347391469621172169692528010744106062405236536094563811132839372895631751801289626451420976130166520398271769240487957106939560168625478360928328589337408145461284469895275410898000990391422988613621906408240369451072720792216353563397560303991194871883999598581972594638155840650964034397729025267807554430625219540854385776636050638603119431857401541399637551292302690970938625978994692834061100013108978460896416083990334641563319637398766524030964084733148318572873689295715340132522447158890206712750630664386123586513842478274208397337041526295915474801658391781981246021810587445406660256139111599154929282528350766001194683144603233810348740232281084726854772223759955416520638425831099322094595152400262058694112968674737933437854133692962699798156750961961845221589015771831663162376744007320494233030200100722631671941703823887974257829322636200012516875004489102906472908255821438387861828154336871997730025233337690069266911639091830027766899824323416171920055873748081377401112773880125345451960307629268569746040297796183704946578328544806721866855861241672343886495989698697334947715302586495009948670922437054483094708459910585810329564749906365387387630123394985256976017112282919404350966389806714210278169277282817130211663415677731420943973757665551320883418792943535881649694213467232955416174218657698629350342302731179031766534348907612345409235206255913278929827596413105401615131320071648658652836134350476145800235664179422508664799202650223124152845776819444099710722733346458051565574220742323216557521755779583101966096041757225192680032257639613818157316471644428482496425573046849277188682113283930487677142814462325235359823880697674405820126256651115838278149471954051475474355420744456020173284290299417604673354062778680645401650381466157931508184963727207418066549712421078808367972630680744530744094991831235822701310495398000867202874054728288497693191673970985052739262077981852918301670811459653429823250903080512658258413575316087755955776231169167612937141839492175040049179619941623222841786656141831418923074492815802994985478001292875715342697500436340613027616587555388681656417552220457850180089068987753451463826379209048644816993193066296325776481555058086428849166090047464792946398339204005678864075184039157870489360108114799796739252881561427520878254515962400817096003038949479848598339714444476119401579392036792357984537757581055737537931977787621794138733277578342179362600565464695871048765207917220638754215285158167617000452161940770701715387238551326480799359817704779757917521362185523257272219758946582597331076113069559979513249308202010433078418054710164610010964226317591756333857509293578987485358650889595004284344654628695822464132037764311764759593790407026986701261784074678743231551352201015907058421135157219697957272815630576705710250753718013170329446927307788024073163921234590529611770523496534574696278937940629009458761138521089705657975324619440039755870470177234554758139945506707529362177438072641450956871612459514606802877667233797541737961796213630730025382024803517964339639818489301203824986315971487123434495593989988806693627853018580902123857783830257988440175903176946011045654969380249287250874839394525593177176750143838786797183061308965523743235647348390319636909317228394680476130455470362745109662138671230132885306753811541819832796137365510226933823940235678702344781957840405531853925872077145460027895930456380336206853079053021353295354971643058632417257913930972583578687256695202154369667089828645776407810256492760612994038317713824597299383622561642314856302209022258067265763218933320131174396896366999057463594503662353303390731310392695955977998686388199374110533162592046184385671494415684515452585434840783032184126952011111057657777694861989459552935911592417190657073994757222841079059159905384835936670949088343383366341036039008085560815956507279235235123398546689280389237928251515344347323122070249127612058120991083731660410113864926852988362034280870077622744261102506741060307314954898497086745816173120685154461150809839659211472218033444968631342349799808597042644266388857133597625121439462360306881119800577866674216026729513715731375549742991188240275407611254578361843658596231980871786005704375435377394251268543678223181461185381940655025793153255284631849892684394545623275437172025485430584943012036495204064191799302404651372535908671050613911774162725014383098776367004420024707325858717416079248744057235477316029842752980812107600281794133556622812174372004468917743390920469081654943677771441294122230753082265310081202799330274037446221302643295909578172104585732290795161480793772850302586001848408835067057950911875732017993844085063558351464360995810091196579717405905371452123151615223850543932719936104550412932484123110779847085049513618197840203680507205138398453767053495822669976394090947935204998484326941091294179615026936586154039745196666200109741315819560326114786267019533604632153358435670577694911276984310674990461441826905362917581991514283490302505734040389493218635944486201667413668652425346831020072802318130096002574370724817377172372290661362408774796412330700524598732487496829162404051325588386466171042091879019817328941942295938330930333269798222440973524725719765454538341134102314978564738629949057197497714551687285716889864700877900326960554321888274423708776896514395454726142917079584624453991330352947323681213451451167921906256347262392127008970414157051806045960689668225944105688019572932548101522476200598085579471667225822721422194837572412087110412559801775392055030849405990111223488265522793838191748916886862128705768629827621445528554704679686125296840520194688631961388180923187863320067209467080364220807652018095629121460961515029340187097964894027047556227681598460496440757005157266616109126396825464374485602604776482133501047121128692240275956325918447667580563413951666662563978294574595214960485274144217067916114671165649227697609448852541831893983651222020904566234115077435905168172470683707502294266529702697253743241412689565565674228430801989233799987821178370582743045601039224105404771817041184480678528573040209811537524972514941171201083017657617107443831128073965040408639265715141720966200902561738027726306828252479020088990957663225989163524546743172580704187384048338679002657723847680672984578697430950579649392566651417639855780997851960586499138850230337225622483669338141446769383347401014391438246201969321884117623305275998247809216885680739725581685224949006670480352157245697732255761188867528143779692889395744642953167019995981486360683271411137989502192874670089361393148019877295150532794815390826270277056926900968685711801342364562696552511378465862715465562754843003633355239060713893198997899668206102190076077532845041967205987629053745219889597077683393263182849497130349982317259475498677249580164728958868988684291360346690961879130382360377109260373486751336986035189165487609545945760841137329171920320173324242286691271597010453910568482748632562752885368549603298845223799007770267020281603869326149933193341027526352935833297638983301690145458604198305723783950828062586967740367633767647439053390111595414075600401954982698124709026506615088305336279893121671215808585324015167469876598084847952598357451642660528116191438350334565732024860959550573543261017080080957008005942823439379886957945290571085600464904439784913836518390962307839547173304875298878366224531253825184556254752866480575432664232878642894322721935620581871285248794992293748508692495368573188435864946359626977384119946102954541425355581230277906425643678516361616392809891734286768025147925752830820478068840840646418722399112612266290108759395459070129700068886647961521824843305273441194179267596409693265418257595757275394016314856726425292117915228427298968012061238697014468658632253329719367757057508975236637064320427287823210007881797561715101050732504718556613538856231489449975339574193740894004123877270341630588282787361962608915049924775075821888264416509668742444172641344534371587270245499526309842964607779442748428553004938049112577888947256551550399785121532162012110595831487608361327607392894443580012747524032237235314779898185375820376792068337126660418197183774658273045892591240607962714278449972992275561461252704949632593838973236635027513179847442638338522823678679117278971820126792791499507412186150222013203015479897431446457809462158285101980671166681033701044832543122675855543157921220190979014342658597123939770381200098471706355265299368725894074778039789016233037599061003802346314662761339776215045536095141523017904539973114603209982286150034101788768485530945604926578766078468454720513245787695556946843025655109850323185257838125791073090039739441599287035434626845392539655017702171267392840781218215035496881859995513674817181140892239361309588580506378723326393225626009381504537713680887511051557919333734986691655128252233019444340529771215108659728661485722055027642788184891640861010128849227367112435163453546843554319315046794254985838718263496814327681547778082238311431415898485814903762806674208968345695069796236853987491530097051044852439434237308689238547572895648098607161202812427592491634380202920841703298999256179311398804508659163523998255921180763279166083853406279009211403200267092269228480630315455033839143899660210896300364864757043321347421436172670356978407267092030093091492146209258277586990294671833932841034850576663457392779633069576948035807777619572050981445114752635735724287704684757148153326447655273056810189834532887175809882291065890251380857893190671383559959184517384925484807412652598033217514766777864689965157362073961703343223234129601742492832212975559148269573834416607891681889590157198269757987747311157426572039489069860888227629611201911700679624475766997908302350174397159732068234187155156753818875254872484016804178954928009731651526767388247230708786988593236951028104540748463248178076386991358395211516479953935439014167703924950801992739990226920864057828120348838548945030326896682215389549606173031886262821664851956578176569973313712060609131089559202448536405750956567226159410582633043994914656813787829675738734467875455383259414923706517491636522738935820899998637924080488698208845179755036362478187155923756609869041501655636360497985509270901034708901116608632245634631930162552212405391758977906484441777388190832251308912286201183203217828013664185575833473727621434521792945566746150817477957637902582343956028652976188274737479347882215625178365681040106882842755799763641641878373235252830116412355084528744187648450307269009825484503948858815103554516679206425305028105722944848218456974795939300659899168723865909640715299790773082959545214123107583079759508550144383536262037031435822715553378048486592486639682152182690438207849003110665145960566053558711702707836066045836970659110237090097621882669399739915867131633346700985262343473429299297688911567764064825343941113241163485360028287900182856221622235459930418035719908545228231567627064963116881574526998200015414512774518955821784780396304569646852025212675828157349420060044599394179695014089898536396490633432914541764577374705373863083846653122150499073460885829833890370852797334626079698047321182337359970139743911709212154743171462062352458913678800425421165897072270352245455200469434924116576236230647636869335356073258103118894453154145582670686584971423236405760126337065188904258784385748300995972392930419907977042057991640392458463495778096011969199738575706259515274283098693607122588310891080816695704190659115447068404221156239317193695527433141317360320532888664589124413077360180786809126293972947913395977722094803150457783576805490015001417259055053256197903318605696387042620472800475250456540487816117714149359562630499130266937249180840811838022739144692963915091593536262912231481617213527194969579491949933774247041428661919736796467039732114729795504405975353660087416196473522710272779270554355415413070960644661093601030774564509090679465715368314972120242432521528240373678658790697759728571923116771129890536858814052629866282706388147167192561420459265812544364920860926779291078474428058476620864746215898263113853941172693053701228304784795274377434181158001171588380143562534744878657187509800676227679571881023213006867863290089810800392872733150068437978595903711880137690679726816212779453376883908361948595586796526938569863909126634783800220648650216568076437106054115987205046938960239887981596768406868023306800649116939632556861417374687305505620254218891401021943350412068270075190745299472234231081913434335785932446184744807662906509465429128596879225511084916734101991220769895854597276956485387327571218192707833808159296167229285172322259576622113841749651987128131773487483994998216087244875343946980926779821115966573382863968931185590683697690332450468374882552079642834199078747670768858720588702949319140615307443140888782496552934726776922882934180520116647850842845385703250493902734854519178223585595090884863431406723066921704312939754987694097928861699292579656218644813869646211921155484588414839107283498558374870949028608891636022144396676520942257208063652849298414166793582121083624374157255965182532973893268913754199732937459870792461735995911767193421217598889535174749230661683144740187470151553161910446868662828954714074374927525045110592872418703709703140253310322240056544496739290381299192293359396505371767368693697355922292461043054875662641602467014923412478610016079631585992173302320585621873701961085933933544178666268252503051490092718744067036824516120528372435207198041779702533508537344709085201017941306145369370920647329247313773616957219088920191116790073014372493228320588718371826640847737476481375910143413489030970536746845527062737171393888455722342787107686741699092855156022031314053112452344385177552808671918610281008075614758070334152357462875804785855271527754350414246547870129061358317890386593813950784271935783628462714083848494128321930156277957109194414381997374822200427513367918832976866039847065314007662549665207239827915273590609732912259088371065586315854527473056594592091819055376468210294505172910422414219548058527915022488605999375640593189927794652493497023477644424344035035901020717544788796199902105195891326560377774205127839599967937768918389895823313060524999230349596157682175344318093196021849126867410549775615540714012659119984678977438007898726576999253558346225285078247947307270440523454176674811187154292621851543153529505126890967508621304615988052325344110260988933676009208149442342682097158850168435067515104021844772594228455305517340761841815105548490487525950846801647758587668499181134752121727622203549189648724450600329504085558074619274229898187797528188025862209425272016865038852466562310498986593914946893574598031211679984214058688772386012745880864846487229510372200308929139050280896663497779018230534889864941154727031729293085987744913454421782239978196857017291680744415619116497451086810613847840562665239885140109148972386802007658491797805465548426011696280681034156049232278514775408582210702864819439174238217623759694063780633767352752002653454483191879236124957087981581946985527650905028507764322638767755564517539896149524971188766287139592496045582776593200981324274369942111691461170928609268965119494373468394148933188800969137809962431559550270096759644832586992025111684635787479108282206653150045553085317786832515315371439520160127478004235273603941269359532692803883740071088860467309733190091845473860819175285364843510015422601496857960674916536022490137926208179235807861263341870589175779726713753160757270422861138603234036429706843011930770806174943125249282679650556647829338355769085996240763538666860264832013159321205313065846636549145612675984183768979051412264042515615587899668204694411667245979996565776640275947702694395710789894653035009580559424374263264843648179747474304954796533308613089214611346204219434057210016153776608934822835441572805647471992905800184465260016145970295227160976783889332865967594817772555121429048592118880052286522549822688813252200343361037041740246693822107224018966373502154630836087477698196490996207302231703433973220597364252265875232472140260675415713236238556670145704796889674859512207280179048151120227128817455200535576490431233145846098923391691565671346767097485293925390862910270820748647411955343333299153086034684810815359270970917338588727549013703249754497593773998052584236304126028308012966692870356838256016252593126222428663946331043148770265093320440620691056764854700558772083710935794437967962381029556990694875430708045094220756105601195869174593002053713232104024343654411809308727728988179025669197700846211883001260257612550271760220783665090575685606731097382945880310487211490978485909470621190485555667203174684367487105463482908524603651061809804905642983564567475410071631443384921202005385419864759497549151776919170864749085723885401043032955884544456166084922392164213892868608122632965249148432846251338125665168601380833975873176904947868215504772587560084159309963669513577080239983872126815975134996659142097230706017352893403148666998669284261550548095576664668293792707195804945109991602184000500278337673220547235787777335067922552316864035096649906200380529835438003456443675722956171055061319173308716652782941294724286208641256984238556921590052292702511255581253440461324959909994391288158075915720516692037559504979728036106326694739167982486357436180829129304202078907827548634314813263821677890291783371237420180632532034290105462862658003033893627785452989616412004968745581106289948784766498181929873148174408168935267668961716243625621161299417568290126782092475541900900983264789852940291677970161279611711632476637921239044680729157654269429929795764954245883007891103888912087753812005008048679781669776012575136133661432153645457697769612610192659404285189532734895136626852936489455560450861639805279540602368479777631741811037850601414228156662571327736301437537609921033679137243881016009195450926674192058158933015005733977799596304410560538919731516251394338816358028988044376165251199888768724320125959907268783123069207469751591729321406378036647651645397078584168198253476612704399541086786955301768584622720014089494997908867947484911624163352425456797121947883065906444331236523761528742730772081565071725536996400683868653394329379574871734010426328180415692158504824665411109659498075670306103452316643445453614840986550168390929236150497600447665749540221761920956495969758812381338915785991399103189103591224541061098097245897848052687640506216617451276182127861900554472355707920167090613424853688568418508667468318943570126263885543351156850527440474752197316589741164667132948678651233865428361126674056695547546056606974923973070757692290344897167560764687010496894713852583437934424890549016903861326091191546720477183216495046849168187490660309411258244653665525765353862410301182703422681848196980685150368318399180264200931220296596238719250092246173384446639178970769159178809340068141597081628786930269516407373008217979728791726870885816599002296009111473200342754307135263610753439827751736729981737731981594672947399713967375712012471600325097419460532248654544746331651759847429428704986197594894173514681870769749752116393637129181090529249946385841130801285964989485037797514239955838884096626470973736029638600846963183296794033607791028567542267328229500090377192794309189052913366830263027722112668306069650029850137515282607756817774025039579239261917488414227745817903500436449761756122128621621822551173334620141184846135680429930055966487251114356816741057454070441471819402020092663668530290615507038196802455445222571611644000030737851296598238683637298934164564145165023087600392714710798443542911774093489283500925155624263952935282016913703243239979912385866450435832745325559019266135990357538838761452692938077090337081511810819952070511712441150831489817163504184084835895503569370987130168830186296722888545662480929861563492886290680632330393598053988373073034683868978180050204983483927525306847076322161828630319322663738331847307673629664845788205425228772385687923740095816525852300678035676381386968834901600888631366705908727810662740038083978335273011497569124888194170812047223956524274944128040318659753850030709281477154349683783230844535062235470921675486294660872400237235689544607363485842715744213358332927064480936750122162432638099046370305640034156127767667582419392072885533020839536241219941891660757198886519249209280807258346289277667437787386966285965364800973098772190201189139312760608261647272140200675017779002040710388016731560013038058759388708424334844493440432094801375079448480702898593725981128499693483350245662653311267900824753172339850974028769480879724089929218028507921505291075288105967873034390048685902126102915193118729280096677710613050865669877570755292492697434588108277492900703981600297143903612967257359590532453952701460403652818690779476738646748188866087607006080885403287277311430306771598266672744134754816924428202913526659548818969912420523615737338029725006772958389577266178785676948204946872822733511833143632159066130633304001432810614198039743051086262536797323228905237852490609883744420435227746591767865181954768571540475549233437736913789894445905453053860122904340982012200325727234121669179723453988848429896002893125521807221240241000201678563650406847543110542352427728918638662811805822534903589804119657785768350365263813462085943048468252902577510283346137822756350257525997761483416972564611630442891103071219654018296345119863075160180349838345060551713019043629870121699840277761727706414063263976757746862939402539685423413227269244672685292846221873846028261063393693035815851430046856542325761170976950005617357708644166010749865648383338518441438299824882431010346665321146998781063932005501008751514632275775230994382619039177955379962555809577295624211237870638976694340686781219562823082270909659525645085559431900053560969159514564511538887447600197481182494784736433224043548191018883115424381819618897089366655816755569883935276334036290232481918211268034105546130973852800449175804462345481376113471445252139503333453818483244869988718748415388823848146408188292329323835950166375318247719059662412780303877100897681475889304382079554087249649058237664328755621626008176424601720411973736894733720746967409254411496585871821632604633590304936273297456535688684503816712542056498260681673620276418680483603342925951337800722380785262018899456044471728378451166474334248927922760684365902393617072831796493175793338027302133623857785347245438646186944280960715859396956998831282340776388744521579201213117067551284203868272263294546616517634800822011835449516871826571671688486174982069258406517668195907407624384865515914659717130175238948499703455737273403915459548993411649300602819862357651324110257105970369243683997882947027545727916795140526688247227922970243501092528515616677492594302773075456985850786067515347634018975591568690490571495236175132687816792715305156896720295061302578998840831840575217925556356592856210163668926472696066350868928830458935032045886792827596001430855749379049966678838651560634642460228850652531249159949909808254342751296972056603341049828666911712786757899839373986828829061159055261755243547673014037475534506322883669549787980578853082489809605975426831143000320695095932582439435403984643756093406682179340550317974257345655206852405461356290809104666121614570070988038238052608791362252471690328876737787197246128216340286952684007657513127720169649994106031064445812403821123604913175961826532709159048480000129476413433192972886838749999959881486043041224658221485700417300689902848354413297135402501254325813971466762135391120566080279840217284403148003205545235873684786297377551842618792909892817741994284893395155064525064454439343318369878869854048948121931133391878101891688598225780733538470700074170902996739687753595847655576264106402265220961735452905020303489194974526976714609797545440695955262359340753298892764084224825521969881269125958282803416835658515997896821878025557528159194875003025149899134724203493526550711869663324795080529013343863102414010147768372625601872936667701892482443390616523008459082649547992017195616649429402835628608941644390415202169818926293761635092818464895394104323680711254975834945379024509964765420573874780689993247486493949009251554616529408305018986106961478247594852218798548583149308783303326617684725192360778149536059355438214326885405118919125954038805279147817333241736968783229068443352770587975326260342812717523194776956969847503691563348064301370278079000504261999265156073544662385626638454850433491011427016498816970030506032516118781442002131680861499987161433760376548655098588601200260692896046087765149532782349471567652482546221130734449819208953879759372138700483588641027539616726180404912460842096776993615864866089852733907384482373745405372944334908089349591367741370891733840443768170028561408921465219011801414042831191780985438856835122636007794421131474035123010911858191303040748611259342621842742855816076529410429565697791509807373050372993831635189628572146100361380622128573601905715643616325264423128739474874804845767018504119513417764391856226699472715208402586051312524324855059926252828027416352740833681788492777069141421501980064518624893191151155743707547460651002383177305686590243035962211629777279372522855572824478141808607177738556081936739521083674006296794413180754540747232967262783110785136017327184386053183790023337746090487985736315877984602883795306732008000236427252595580484755944596109643896369577494866617574469914084950666039309788974715309528113965999779965706482894620449582762956118553151457078524238479042869175362026483602363446164286822431609041440049670581475568399311622592371708214448492711790594559745127417532506979939224392203079826477035826152745503334493488523745021970090869892491757372719947792663121643773097705658110829593213104342776011013907847232384650431555150004918445084231830470080051564353248839285436412340950679382415229471407797766944247638911052644912457521843182068116024222407426061185781271817593610697332897440840050767997208172721288095555941815491286650206985409400701402772251173496795365387124366213381919340629247182288232715013773417969353383619093939813484635293523075556275060371279620300562634276126648943396716882449703846398889081434625376640703879725205864141761522278563794293256743360403528175364464816350635040507842112854783897742520801069360715084872640967218536416368041795235984847260919759342225580681724016462212182730496462293925317435555298832181360758576480039847467224054514744425269990146087157944422951972509802744105196066404681785007679339621446073462112033342874620212694944201714643112871107738437694883162960116863593992597902275700297203449106715496922404715486141548150946080353619788954341327445764012034256723414786747447416352971634367868931470221691006206646852095534902106249354497754608339777713660933525773736197803655339272912353634724393225719495563891403924643573026475555412615233648358203139636222704027030060476307576427526260071540370596871169476163628932080501950998381931641557812088763525127692566257755764286833598457225614830033583859263449314769682040842733155387961078709216740319878113932246386505197647273410674076586914039038981850711814753019002068799968145908666853914001967519186153630316286072383790990092531474078709231013426268872764680284634100233766782745541688380112497664047597550180643772795389896349713479657941626884824671787150046743974756523983044604691437595589588856055713840435265936192370648681644243312660483288312288862412500562726731287259191718206730411734483949901921256746482572529426834686147304357863796719739482369564210929344951886072523439471922656337055098149425336210871583897276940749576612143646452343151504189203551028867469041532863562933116687361323721030751462032173798407374719286622702760836822868709072012697567838087265759515973551015210856037504491512320648828300940245922882390896165817495280257935401021594562159371225360370998185937690822033618723035762677945121614428175839847728742964076638687374328264928211516307649540268744162194068353988437957373391915117243657645357686434686049502555489900232074266197699903791036306153643268020556010593821117604782994165086481214570303348504705095435892533218502214219274472389681486327917773488549557597260664863363824246212460843784178322088527616142475694593123039496592391015742088463294455735860165015169958905588773532067789387701616325747853718242669947015957730958191933786973248967280176309599376385980583611774909872487823796735644348173422410625912969612466323111270760097592930672549887841391216753550307298977348648072868352909160682999461322448668640501153904938632466364851240040449990291656880074752430503471867665595085846477147378248737671110771966149522728741126835872829199344955796159893480374779277897622287400019631886610722697067227783622803280889341667360245071591042014646349638772306507477522544912354357150042407448372279000315661491134064966232848630450661738330789423072417778468257827794486734627945763419173478152268469315729756957677538112127794714189901378105316124395018700343795971006093609856853062822604884335668284766194116498493752400220945433782394712652519449561550589499374586743263840060469455059945571964223973632308268927586339806627871895414472915843788958919360159432334313560211754747476217625116685140878114101605020321009006485616192200727403218318427441525725163832436521243086842544359546355764626885006871554319767091160489866485075306232318583658646859247572463771230792904721935986652876547504630068504294014877511208340863297556912036352269221221756995792240159266482611801292770251604810289918646126696739677402560743007824608898233167232990163790683594437243163309668259655532466861547603228379154521862485029638739322291372338514598280161019729214724913275457999352254701751485759221355334870629260112248082573633683448895733355835888425865042844742806457430930481996918737983218793667428491664629387443015811041089093364765832010847823827809862642894598888172814427464097616721025230434670238914670925507330344997248486339467990460264509093274255849857411382021321810278241434597213005692648434187458577653718820409477972286116382946202299232693244473979419933356874091073243877213321674108887875467820152680917282537282783567070931268337997445223437918030502934609100356613461948096052353652206273868191007548656103997749550126442220955201950494023104618986897092016318989261572297799478613281241295944421467517123410133913461078711175734908344583056207296959559098980443854878964858500531712971453588779148021508057568805162022189503416347155918424680665199965584935287780956246749617289601336271867704371279740418786351602364935839430206967002373490749166208050369645421634718484218627608192910586606604279610837261621615579964763235181322703672130826677610772133053077867994299705030735765509511578038719006471966022906672344745995144931926417690364594975498157721123036418598531690843388295176576201906287580253989779681627610986448576652467676596269886902722099358539766924837047061004644963719560093137746001172681900625744833834190313533820607614598275890533833081200042553016631554413117841211623609634272243050891746377213014526508554022650208187107226386060236110627269455111971813612593089511178760808527664097257513749283950714593361484394230700668884993402841101743228527096611856701135440946700528717891657381864136547982172598242808286927719355403374400559736377984254715296705477818352617378569726964704680056373099989413395319372524230477856862096623245022524821308619209352297210230219129741045760470537326377202279335385811726419954944609434338110311093217017342942589944659082555143207990126431223146911042003398511357610676374809570680148087763869183045583808226671679801155374218297511530216724195549167364971220114930363547781595429779724976817654399350159719925864931960918936985389029658203958593269826973310010631918871431115826489689441856374602738061509089498910609777877937946797891613643458661469682931416520949944301544330227592060114599218671767812057486059856953017869472555027985989269409112409147813633153958510312535017578438267834122459798140967336553675405832843864686595018919751404209506639666152468972136738312380769227628357758789755650926914430125554196219268996532993508864231593824431604895526177177513735289568949714477912384370876116802672157993190321110487596246036299285841713138407467892354310679458720024711493868619127814664701773266328911354065026109421929327770753993364634774027800054318090422321291697231026155911585769799259049071216925061576701423882452485953704589160710322102769288069576056179292887582291945925586509222800189019991397225691925000786829129983190950787331092164246426543329622931546329739286851737922608187823149358195558668658564821148547028441747925739780035652931073192756184178885236441919780249331031983020111721379946806905627485658581408199291373797762365330101757648713935138067097031319036626057953945725286203452247773779392585337407899477550375031233771448685947933340088841197240061716848103668403790551172806827790644928739184519152477755500929168564608536442589884925599170121305583456079855062108924643744646591435991660303019778198114535285772393399118961001918970802268758909476702335884681446868173594086722846041217935508545636302547665247182155706959451084471432189557993623543056025991503637084373098091575777410234237510882414831507117180265117845264233955974615998368478782642296558091374057920027469789472567124526500632212130788509987960261879653681336388004823809280973454444397722641210475846936048920464379892896743981402190282058593395559957668237398432497531540591472831746221476734943242893531213769342129043307045694424528015663959255844611449541089410271177481784793681733581788175552578640795039122665821721577210640380410271015653816795152467674543101700806526551904651468392502827546784833295867524227646363591872441872525570390027876435956905065902726633678119759111309722762451607314024374778882000696666648737119769793139508181137727132462500750291111686416833740010564893910868605460265789535774710595517657279742739238878262068287372884040789809196562774055046039729370144852758465534812597244327884305034456725781206627351225420124854901679714850754196799205449712733994761300046682589077279662110484593752788275978867344467997314763044414777303557505201343881521327978256411815083453967575873069573126153345306498848987274825259141149606658001086586333947206041764379799054657474545408014121252100160593348113921771227568477872659400348865908565866330830877180172751419467508129483804931957646536675288087029333632371140336079721520963122875391475672540372448826540473268215739800417291408570678621570172121982507996948071193629624356464396285431736242722444160014605997687269968079481231177073693166931933388623145152354482058164939894761352530227052592726926204537617661452524530902055372361549171176316284176943681579716882557179575125502225413389193787504532305862613315728192728664356098756296118286828408619408573934836902403428101022729371649019135632577566771395225420488238936120094658588481758459685807739301526228737293447441698443101590765015470767474940477651904736399239382438739850326523967969511236968869346697609234075274465345868425030466727717920270909458654468005728511071790488880555161579954137038157334490817979437303838859220102643281547069361743271199173640899773161999715003009433627744197513372117811585334982847042794989875744601681789883892346072598037331587423341825632544682460821533196372373305640366408748609495681104188960259223324881161049978825824658112467962071637397463567952579054505530409802120830783121673915711129904041999291058278863857755529203061260636799491392157610875123684980367247547227452754070558507914820020637285116872144925067669620763687483288789063120085248906994311747647853968181993262585937384635400327403408456340881710214344260465981219337453316679458422998045699831222345441762449912467065216154890301248572261743730378426049017368377103716593406968804723090549937828761013447305370618382804649028606543514066294768471816283545170013058653728015905127769757482367236331194285513393812925646915610271838056196247610047163490064837133901994919665267588319998474651609215395054234412487975535373292949550016845984516798341660274714717951258532516376805974787254700650443711458401296560841312370745360747375026351325043217979503485927942790387941982682574039798025244251997662906395404683460984967923608845782948858135234429516900992225154192575846878971597132327561243474850285338106888879833901924775258540658702101569302694056462201941824300884549407130332012860191561438199989965198032729946210841003985863024855764609812642773229427165015858558343798567840911453714703528749964999478368659932122809877812069982435500763882153761804382334710263824384147669878023632005709986958239781120207666933366563464079849946749449891644636299207914474156486492292900434160007692240403665735217413697566962008026920977270531553427417778071230137704694829326682962037355099537648152477221076964883499086194608620004667168919558874006361085863136375196393590519054949035494096416499919067222994635928567132821374191116226147812056443289790598681648995857319488465593785234214992683935686431276576088381287027512446154843605644399180500462216599024959328406905686424998412725860770493889372494128692537893802994869094707380119262726318884266957477769072489630992363578888784703945966919423243759778260974254330594019552167868629828279279059565307336565108048506951401103905809266581714693925540772980382544389855948081178100133678002085501600818668890695630840550096824843349770968418621752342605019831754015298929625059361464532672084769040228828502148580278772663147420188228663442285481676076741940641903177309735863887721534029798078622587057209048192402605031503459079920404289694486145148317087351636058231592371627860480786392998606636556155450554210523987259687031235848049296783765003843103156445604678670396098512509911932753086902597349847607182895143471300254859450012264712112346242635778510773791887215194792684574715847017802657393675569945049390072030564451117981270592375648930382819915614208520867639888704667340085740907560304660018429339779547840509659540962074163277603531096771310032994671524111017416372294860124170662805723820207877991459673075135120718746273283672122708872018784370322801990688636990218887512347541796254443328180578204495408830978322793047769028592280135284081163416086166452701417407340006888073369335526225281237755929868066951671207095641263108063902683908197497653958256140375220303115710208329282384801636838214048800658736558851397591986673386122427191944842234984271502986536554475215468749731281807664687608124947724838081126408537669828550266759539358086856246799544340381295912202864827415771917608663075312429251354078740565356699835961477496639656743088157889995542624986510146026724374277135444890686739933480000775280890606869214628690155968949729747018178104228096876413594651593912202909049630821150413756075324175530370090377045883048150424260159635126031480567262495384456173191891253018231381451553434372256053498642091802640552159567548412710309819958554374550776335196967290310155955613569747926406038722893028701260167070903697751566191102367125996036289759628573486132448865173421370431756483093912064124656472839635936892995924497581551641750761673255174242560719781465881679008299209597986741499741403458238763061431361013207849461472830540009579357109437025588510603527265185118890002320821170666903796524686827786357048381081188454811123693747930412879274958142334135315611827980278691208434017865354958200007684370744564869986475533886797844559962084828322451842599766511733646251604068334212773885696779143457707059245354036021082801791109398316245788315748881377758558729518620055452689857051619644355114089124946321089317889657816535950693037752465507056879834414879574516430002703917265401209572292869761558138874342399420507162977251438205566772003409984875115310422907921502645013670972751778011915873989479463303277800234733111527902332500115900307409629970445729621540848822314211427719029317641339336818860006077379373741638779615863940205925913762508066778412225080091685436759074795002689718834319331381468810455792987481795075787978985463034909920247698943432940960497797220396577884272978214333785042378509441968269178561991070576361803285816323790044141055693449725114322573542515487899367580927427784236066196776541690085126352408665209003596411994356679470027089960275685968467930456074688585455777938208781149426591549958233199960661795323944305052365410490047544019228377313931199637682166846893718862846918690378589438771190294249895249542021019986904634398001726808299951645992115573704723581082038492520283169161197701757744333613983485946738736224155191843091093990436588866338444661801923128221629951728728837091267383106868470465882012897131329109550621865622715405940608999226357094875187932637577091122248974874861473942182302285852172252552885521136369047371206794787084683926539615044051776631014293112533309009437817228506646153038483251736046405775418591093678837469882777321971605588695986060631033975564583558244852767844416753173813957883899525425034998843356542863729991807842615522052180941818229160149807600384552538204466359459083859482262181412798498829538201895818429712216915472893256078248816655472586407548173501945395760826439797031554655692529748917743681190516303602176571414820098538224134856138522591344381353007835357804162180620129436551019515736857131946658164121885354384833789084358245561710108777615518868518721549694457509459480333733595941461746796814225168850081570629095747424978158926105638641090693299516085111827910036885613673381092263590222622525032188477353420348228354951971805377820839744087744177535518802942214194342614250528583976872452886380869275066430668605734748050695644093077793743172890229847928375726738173440357333493640251973789243900498586418319691525760694162218588160245096084794650204860211706688420192152479924708513058673745473841940015047106575320763668469442278579131817201280524955273778821828407951632436029618922342276304761878449261699565218957817384688429867900170479580616483617225105405928972607421378605467952514471578810388076709922856173007339193795813857011261140704114207823174952748116356147151407197042729434076874821408781641261516619957754669692739647844402903853863477610786971994698185142103633156231476856675329735511613162609185985656327205421994111745999117188888779136621146143374423065628098514197669308783706033261194567600370679399006582088009303984047105333593415889395950394315711716653712639714019320386824219979160638532352389214383682340685074587119115010083383566443828095187966895234790415135125842983258784651532281760247394452080058223366208966130328165549708964045596342671713889121214707782432169145828908674019204000991960441098861581964473204005371000555630198908506766784276809619235953322168411896319353573948876651187209635459857768801916895656384599612940399077326148400408181260735025375521064364503503393303434204628728153376101740098058033759326245209709499851730694758305019129566335602173701116188758636476537992194350978506536749005451233945761592419410810198908241655974285129299260829393235776018133112696231681604823631128476463503947674282718865653693331352447938702965180556487971520491239622945720201097330523448367360509883273148199174924593544820900694953891877986620709174933604451391241036304764485129139042423852863684198215139984795514590154394176877414717323598897328896116985758343282669134788284843293523788835231303240215958888865033945934701502455158748986491136285772758873510696638253108304360339200788382140947366644042193359303833306102985224987184722203695679479839572929380264543963339466961896514580620113652577098985920647722914210711334717358964188599611802012893473285797938841905051819000949739438003666361285890428458227115625235616218844180717076265602735316317105061257633530711661826847855764983472420220764653317174436586334475722639415743950163892969555374675088994427280780780975069661118825923985344984223321984988834532756030177159797515498556969737185349308008860645788309237357674642653017271800561888033316513830274677948663552299166391833647823398106119805923721045762720321685820586636926811009191113079300176685280963943258461292320568930242109979630691585929611727919907886195710918069752960568805649342119971497857940997382624363147254955154702007319178271171932068635303881775744339753306121337867514722073996266293872715229214240660648230423254925627563437184715024010681351265389466997578159072504365873015241277924475077330107525135689824347828869310372373004733632256351556428113804332747938612791193823165447785558453919783327030449547582361476713298376099327583849789392058964423296388299118317113484382258035000053645997535374586792187154581345933649127060586781380425575515132222188138841272063242605172724422274458099111261728422500592128227648953466863882342071937736969304414808147773352271035646436854731352106571015241666603265451940616344686145501688040248642970628287330644741609896135317463386702023270571505400694420980086612353990088146308028904464515429796647248287571451569653762091848469405212064970312621461753815713364578416327660824139708845259155187285422860227376131943283488324970157827147128791384251439048739907522669147816319398093412303410271897346557504482528132677982335906487460865301760812671573860998126558210124137172030795147065087852539040752179514244456284657106774677163373630174522617210405651692734304691327088187692991095744358641115363304675506214268565600444530318708951534484323495547950659249247172366443631824584676420661094297080072256947133441352947952349192559641405793932282074620137606084510836307922343512883534515943092430975497023459327961040760566587646375922648863289530739706530214016613008598713934139545949063048807399057359151258646517452057422251508226755752034822118907438750476190420116889268070851897385365194039263061849373687573849682436888594680289307475746924805756818486806309549848276688408142374896654863070628743904060226315268038259429296398046545802062946444179096767623471491251493223855669473082614304590786787372298665894415010579872185253422633508187996043569633025485820260889582046382647606546391920264395256963476903693577143969996468272129999818988481809727758839504081789276009259676815034114583326495241355930281101507934354999770008675542590892988699652813173025394450108707983846724908721233933278423926139994175196995066995826436867776891114683790658887960639411267053166708412852485372934381679390484743957880065435086137986232837295919428219995710488669432388167751072398415279281732922414927750893324997070103137799732432490053515549250029796629477368153963280555715246179984743910392434971561859778905832216170379497824402190682844739408669264641285907103425850088427119469303299618941898283265231353534832913109273544123484499433468328243048932802202095298308322188946070173820975376749328931564517899975827715116778198359124689705613090865383661149579891714986203028514594503579083184005571618148331862182690529094382588362448875080664162992970618676896738184333584437840884735179914319440891740259323757824395647722035799207111652742406349430116325305794810379858213666545397934643630438733418088465685988161218666596660140069738025274431650212806769558822438803224675630780689089607582301721174885342537588301533558884772631451309223490774008724601038934388658303636024798624735089334764749657598658133563425764161481665700793129562374006995053002012041552713789570307937873831352277456996319620900695991429412428142658027230196392548420630232736945217488306413956332862439826640134017358808893204548399694234890809048240212661918253819727561024638579971885163317702391669802851136656701029398821580278194018760511666298745062360806425692741530130917423301250408233318706658238833580842040152011135681486997147952355394783716991504748775318901638626546615411610890016454401785121742667651568801537219391498431357267597805431993320548073189978608963511836759495356647517482403441329750744679255789659783369522531835729058992179575096123581184958999305689772502792554025702570177280486068528144353818062960288574995954830676501007130786929163666256193848129472684986816368787765680915378093007285333622826816162388167267347962320331265365648416805389494660191196439948465354032441658292231043680381568530692515244360913604340111680995429741893478553739278267917745273375351901587186961365272937115468175742898958544964011303422578853217041097567456227282380086678009512033853065991552323741741500069940709668944667338848218941235781837991620347961835437376139617069279587911642347559406794953335800613515314220635772301848302772811790875605100267401706671529081339522735239990107331073524486611859039218013206458151756577488637212606366460944447072457592853896292797078769434312977124999976370144999970320748750747926618116314670454112374126097842366656052115780256998367763422946279367517007221742077292740960121407458985874346566219262945884953613326928030410496828220698226846377403504203979966793588700833739376142493053598501801903499997104562013880111269635326095747764255002240429537113407306446497472069234997682509733878666599443323523705748398191667673054546015526304147145713350969901998180655044398210608017090078639674932020355169248599455124505193450238537371924917216641307314470761059793236986866021191077453467898228773885335267171946469191530021414800738929913097426904274001980267161592928575672740783721939551194079099174610186025245058856632892363710395055680057820938795016801776993322132650383639072418049255113221940492177036210500939016588669606759072061746284488520176181581147558099877490273736432770057506183277121250371593223694266534815814453782159862289258776628136091019260840066648240620647102415671910021240066776494587878813853169314855349087165757932512487798417779388301356933503747661963721360159181823035346632459225413866974003825549702282823697380527805992314627837705337972035622976057040051850659095395048646641143929713671266392905581302039444919724679304116931309461171184034682495821891336697359340546775882828364396199997050252701849648846632631097927656381747484772344625582392409369440446448490041438775694995091612399556046356728728149657476998090813692907380462357557537920363268805072835968447489189453814002238908907183675469945553105099568756121584996470745962430036552184738797503001445368998429179759793977281894667620936088174359120152869095281403630608453211720663494245042450911039210805854938722264368426230852310557003584578513621756948269503129793891866041450765350212211906176540049137770500284743928668765477291511377660457982629658676809563045840080136459003686339912342904962588681191435405091420450576106271818968491705592831395501930737644883559253230142090919418182475234865257692038050687791136019893815889282891407892150639708441554155444814180461592955683718481518760693696386583948235796777092536824329510361205036943098742048531107607142625370045920687213788601014541907157283924419921128718825932637275509234736938691863286538276755272405804707447907979373816244113205884871625767147750370842493563304574449718148471215110173580495085469790821567163896676764422450314741181787305289088593674987254582317495140568325478065548751607228640793930965643480560477948119390669890232445598877937020602608242972061574741748260169294758816292230890992751340867971054474659818367591125887122410305524555059917049807690980810698520667005694951498794284129163361858750696296742747384205439212367042354894733260486971766132360627680457611505391432783325335386640123835861563915770672747235077421747604828045119678098274843767538925344486804102247414301734786066712124618281859283800835690050273305467654226946412171934782853047408005687668731607674856542512394074675762111374320192836517668262862621200240125441794507593390212352708235766396617395742913658506281719336523129130367511531432231825467274860744962848539778307800858412292387110008029560275252589997558533796640633977149493889794325921531443939948599149774333524971619896659215161525626421266988042959791455273685015574467431521583850058818514572421016384236678496394565767992526853124277157430632230564341868868042686929026721792651357484921273887850468461198579884358306588110751276892907506156265004920879399151790219054401008432456037467084809913006443464436837949556044527574274399284768617614495140633566313213112347212474349371689366237389577366484186939543858096320711503152905016360139425814359771545955558912748449464817569458644509111658534350688401347391688132077417809821885347297657857714990160282472043197915562659045877934762882165191401161590444875332944501336897454131956367757146295788205187981322501864380989802007759391568347815583803966684235570199900509533166033705807039717466611370134313104859772244056475364731628410766978408560901583709577816669520755101096313061996365440067054257152787542556186930403324143774928842921612850534163888645308769751884814324240614201302770236631386786441527141459724374291755774476015998054789210124731596860990567759524327649005113576533153833842104891554153754961909515188754491941752176994003435633681650552938437244472209049577578037794430115573538223464153528841797808740997654551449825828644635872792308927495146321525562131038615129406552114310936961721476242328147310303612730719970791081554949181627696175082111355411078049725869402561533079371259492035761251344796663229778254816657771812689348420920787760885072977721231134995131342286347547900873160019542606144193594225955185987408767307471987798825985050768970782854465938718025358476752963369095542059736962226719909494688135751501063698276203412490853183576746011146961227554161124478432816810157168559549462260199373632835545190346951685641871093416085293632193236017481224894034042029467350025512279792107625883744338087443422675151486866917918213107211395008203027882982908171230836961715153223787121653918695710297008793421682876271093912197046419485166336370990757779667623015179683388253891331705481967648081163865353784989142379417072468847900947142723248952013467973050588977570216019109779444513175701094463965794651519049636010404956511459312288236775447081175689658650909119766000335565421947658935780226478385493756841929643419884910380711886021151466609111832280447328027962116189076419925401870755281287196251016755367695303168201853169857413429583209938409206862941213451700425494597274099290867884218028488395034181370964892208187316797697744579709156185063861996730205073118398712247215749395815263868433934131427374654170661119577043210117418296110022751633474538475934595941055974632190327281040140387402549153761101473536754454288555564813532931180733427543653812636934665935915214552315399996737631929165705808586622096164749078412866220616678151306455478138749998586449557523908213311198499916447663305100090073680950612270925590206327126618758621538605478636997628203856770617980621754378267975120348593804213903014447326663690277418438617099695057512983268269998204235562704848995760004731447142547206053164602455884065354652877877518975057419350133260328000248599585003679314746412892924262184372457104354052502868146779655352071443514152145993317732979203120564255057289320574682352555974585410334625033281008028550088246813425615474200153889177121358428732009556352982113037845265047967812599230252583350127050759464946642381911867112698220486893623354192621376779480275675233451329582255955742381797261196087014817195645003995665969621684901393198622356807883481295940651213158768771088422689519648816018029833799693285606995864773638651914561723224818662384223585922859487442757609363653867727306025643302800105841268381978006537685214045440840936094995199092415527492359942828210770176293235286389182567955180199783810660225269306600810340246640184977156145638462288802954172380839194844356054177334867840480272706962519566986613478749162051826375142382738464146666448466911516858906782064246172711691982876094626914891502295188018070969708570683884081706393629539515080154957706422471282577400661871686272756383675390228357539086424835966986117724086307401160158128757362068770465773361078543021014836977895218949128540102616058359597767246756791444805760039870719759298303688203502291187986873931034376507496437678157344407364902944151749604556759747035337465370248477178086685846120109600194983383650325684187918921692566092827274962951461638664671702425760618764631431350369165757424904132508553727968424215315627178820248812441758829374907687213646750138937586167651888829173754774853322381183903055570101781215267688739258637853285406520123861765515315126711639810548588734114650653033741049314222442859818644916978364329013062683431880854495824397765564587748796165002798412031938547693238327487305183016564298031121145382520784386175529911891766598177650026148487948801496887072036261952393244343939611196928849651123667286189331467883291504124215705253390662634712372380561892917839066439010205766182098362395225247499970169053041337113839906486162057049177577228195524598195663614447774043161858458532442777173080533218277239051294034400621391087513527012908276285751657140304157384542497586003935432176031164676470251437249133018915818914414235501282417216267803673183747010152096746027440971274553657832817471686903660656458577142290730911562694221503545446725935217643624152311094730546293987816402427533054312419078651680621556128286763412250398970149142045880366745752111922372225973955356264181347560409536991413278906416128326528121801585642238168269923982421615654405769731697567172639214687070207693690488042269632952182972849895618817290746618977612050704659424655081077457741037134778362182005114145947187473720674492285334922489656248779846459220821724547482575938656833190176822666719624026425017686291629171166366097763949862296027254785807081530420760668820413179303730757371651035594378200211841835187486389101719081461787557173019536667874825223014163084458858986706960820370019333313605334399132567509479365845213166215037691195991001708851347320262256478649499713374646897114799431282294771638714606270865703875246161661934364903719649992939410501022899711719011959352879080081322458669725640137851451273035279786289913171364842591276877523839678775589998478700293696091191907344800219702334249953727396074175286424128726650352417915936696004459755410403893812309039735168831407453727360468640999886764032680867771195912243991432894158959392737011807736586211886414609667764923778512488887852885940231641893353545052190498684511913249059639000145333530825860498673584058875975104505527490878880611161485843319886630213177786408776931401197287885376639586951138840844049256927436852547819174000690687633028363314730352629454993852583709518361146392826096167944906923233052278085852345809382108011062856855849072410754948970556396845460217766971021784265129872837250934898189578237199056584160964667270697033940450625395813416887535870041585520495413392194396308059404338167256029304886624139111951258342944429602456872415765167762971967998265213970366335649752499936044790935696205123496948412655556238681366459895455195871149943861227059483242720184650239200295280740046943169568261649846541577399990676210702257735141865064324994787679556405581332952405857979895595292035759996953615508433144405217823014584815235028114500743385976676797971133977983956823071575751100551137113725152974750753831277639661513451642803631262950658318624301791009943174129602416884203945188637088991603298556263876334439360216026520255031256630947137473465612863593008801506445693170744834125571294623128561853244001716266393232982202005772191926159670808025532764938714563127522431120998133978843611970215691097029110187037516626473019299421554169677571279212142214193031325929579078318054171378424817189041068288584371301714341786978969651463832748299162751654502089119378837916767528959281154594150331214947724000490837073384529206174108418966641154796300348982388575490026974988483223103742247584036358411018231527111678074994710702726466210015776866227565411906619259705983293618764645282393261274832542147304690145677943084888298234625033857933291707187015465455937023756821024439103890806382679419664983894098031835445480505189588206572546147134252452431872136836552002041132091809603628021350768642090661249493273901650061218906764559958851934870675359064797067099221204738220875810577586335204542068903086125457838872486854432900426482387333140750458870161332370935378871300796123208917533159985233221577015444268092080068627820697196185841075111339158738032479161225074927813109699951590533039937646247684035049372237079114341862333517518678955872912252464614521619817337281729828840719499195582465184796556430799467169338623866368425465676316134875699684117137143511881961611717412594601705201745516928076692489503197909019663281641588325236353500368272113538301398519668540824817628155873949003528757555920394761121565088787330119016270948842182630649979074379126884222990714607854384816683313401218205029033797776727380855500062549762380427980148314827163209299664170144572308149123136444485066158800742407247989075419217842947199246504623270028944410002318636261451260910396191076508373581274832032631039225174963763121143736659417877309153067869029694746560566375249965671427072119896152244352274130644426317412894039648323070284226879321283218732577506525060923120661948210715253856806442970311010881683411304735533389036694649792053346154452486518842554083264217148434108205305928550967379310759290295662574389751964934314929191446804516978429611571307872578592529149708012750936387585256186711448684687020541816123617910484674244693567444242209442628629058169079356219139608849966464973670551108014830114391968304177745501241287345940925339249731159085166542580542535636903368369984821964337385860174334976676497305191396699247406714417802993881484595752509707198988780109987175071353615166136516984452359286416168535058946775801702034258215234736660853697772109587907857227281095323565226436674457382183536056877389219670481061800858047153038339617903597781326437794080265861131491630353524087345028447626453877221770850849278431056924161511015017210670190120884669344414290890994360296288626439645628619297549335203237961984849415364053683193070634636239992098460454235116473533026325059814424920600331853814047686769165486931468202946651961682186731394719082828767408596866827674034155343914038768609169422808047884584748657089587176712428347909788475440145720099031762333540945531445232681445377460319878285532972494148365853961507463990242446106918712509769476651381896021643179089674273838293950125930621815789017137114840910488547027957818503794299334892110220657558429777446663995327544384236198830352812985641367945090845626643009056400923805601198516497986363257601013911579683402369460407845678252108567504174048537828613436020202611664444750557267256550808140536833923016114311964600558345109856955231811165747876862153948363443252779956329089444271261149012250513054902915314785503526102992295919113739399168138813134579029132560050264566059170892089199893199870745208934707300510586020077107460878713815572003623703910310427865218231106668927181886910862292337996077015506272766457527479948778393703756129225774613824781137250827264800640283424519186593103424601800056864289112807110901094808491084202986503589427873372632369892793454226155053248209461354403557332939203697350267171542490023300102359399754709072790981058735724567516065541137945166333628647583528495901070748498015518217449382904504180617038820417208919471941335530527763681772888051580079552928633300612060009054157166109083165894906971621576631849873737597031749960913677305284252097398262670864013472419519683188585373992703458644135145001637483253008839953196835219799156811782191628797770762598840358003103994719528086379493835668977573611118002882320231275334672378679384472529479926019587948631565149870005373989777424536389878180161548499493683392935921975638263173259544080446358559511118193153325572677440727447388641651143427106804622279883403656115366053909229874181188097204351190011657043473001808886718569328860878493977292257660908889786788783780866360270027084628011038363440608899624917524041365323677176459974051279052717183780963183559066429541071779078391977624322362635296707276643550493769256203219814534290329872058117663316061956113864665592129391595240367625926248038302197673695661208734886583500229221280334996252443901150201675996645853365361077823380203630718247517759426932999126792904482429811277760888361525863252571576502650402996246250855138689448548947749892681915719805019329521835260962880847255153750126777398494898171908516545823222560162286663684270044344916702611354160441617792962830323331703118131020031464108708706051850312820415960905238643937268466313763275487889089873495344262082117077722454040978688170736744225568632434357420241315528337521424260251719434406613902952547367972261109913227618789524609046148287665526733511873294691473485338280405668330094530141005600933188749029733680234799429957403381279429796401316923670253495201638234599484182890406352052759979989317642251958408743281515772091159139704840389894894926614143537758762272158492855847457106863429014004033526348626113646203944894848119578055306614877528476096842039224784059621557315215951554710021719657687002738345860850806967565271307695677416995113107165630144539315867021222977457156730425744585965277492661396790536279305675892972174024701780562230729419492598344681369692069558902457259910366154145342692398083473651315141869230309527922430250477663893032047409922049751311621410884945892962321727360468417845004122996626237548754255489042167005880080753203371239801433192906139289232049007370795159570841561808322749180722846186224683765083232290270811895916352790245718639625499095512956612895073597878669944760245627240214664584078313121627481330606112241157338976073187317237303900359024045599053281310039115212755684464491372732990367631162433902473534157690813129435147026961374548245025900280834022919726050058826322111740062310300950582226769575089159993467023423846745981576889961052370429914578126802320303711380547108717738152105468552667648010494965939400706515395730500291970591190201521072303495534668310375708756986477563521271109440475641060848894220723053378559814195482329339817198605633981896043983858295418442965047720218234983563591538035631998785668388075426002920533746292897029159496590453773472057137383757855955412162096745638117585541704511490245981027622763421472563252742543908279139232582649389722659594420807500354321047260355654371454869180841426294513034219263223066770226325101550805891500895528963325570396484276236648406736251790276984639877197087696080019967295018380082887491193176972908539954550754859479584426145092298621374760230314457576524181154575286232786303405014192004749816308124887397509796463681097561499931858917448604292131294735531868837009243792841607763411586407953110595508039687256587482510648467319404046397806078560347644250795114359797489037486663657526266907343237596310932588224368510321269487419538096682178927048766266351395921646471193306522897744590876441723217532829857871416874075846510010685171528995177865513333707452416661833856871320181015399701315111070299411238292915112150393099011747334336270511703901344503491804133398050459238518791985173845558594124514364219691097630584944770288156756136859186638057315502096823378934698127656118099975977159751739547121364803633787021510745388187865500613038788639600224347977812412278880033270774131204351671614603706638037110964819729567619135919811168361386564971685121851896845498247626601514857708187675584487059096864276176218507556643978251205826594048873784522431379155467983714666799098482214428198851159888749002427820444213476304698709242879109379513993695939436548040350919523175676475346878497600650489640480048363667474416864552950146385590523501716686993992304442927919060105381136007991300722035754827185880778193405615381858810880732368228764773270413556574627548074428135221044085206856234528610015774661897897602449168600668001239324719905956189600717938128946329812215316031867435050832869387396123668138024709422894212109307513527433569352021617553453614049337119532410242674883393426948412070654772066865291564615870408209864446991135132600667974840210653775326694164573661438685474037826006738696845172324386644784225267706482578291867389116682602186971064476428755904068034897333579073795684409381809769724880776601332165140715845558819648553451952948643706753066774284936360410825237265860332717339822820913918838493650157049908754636188552326556973195093901846924320754245666295212351392732191688332586987007450080715271977773454783584529901726399910243627509498668361390862901711108380586288929828322368932955563070402902897244263396891711162661004895994635417955952919500556081807527640691106488282712938592375140591301380427301548959569865273859799956737875001098386653571528199633642663208488954331760804918376506965670364320597674846746700574072216324934874883784134820460674509218763857422914776335607266204745528151717017636754317599147963559520851802109446682401250484018775496234736580248053129275466297304600017466211426915821355687889962597389905150002890803555345739272312581854047443341808767308179228870375263475040663522510888811321291421409743932209130024282053458090859989370625127326731683420975943367396350720486130187340964226317577418303340796463710760783469867655405462867564787445860561791382843091310249665945847678728878693463562741783110985178658710413981027277749786028583916320622938070967738821434525226390993590245908706146394181914881426392285917951768831227158539708253444545220787436292452489699955198257727158971300369071396995741248602563382613821999324489996141150894838396219846614849058587156173599750970137026027422759584445158169001127203012624268003398877891601290942896180554976341517259882388669682452727584212275635600753596545303029209941594411170052019083010246137920632306109620041769628543936579703165117447932067870960987844887548218349721339350005966733544589048429168341032581059722069016454324766285722515484382573198707767413028272402505953930560109507307618216073169765076728669053069402086759348485918419591749798095895792329332072518476592755224345169993277664083973602668471498868825304997071066546461552591019820924729253399771075242094265021967505168261226624906634829303751698194304448046636209791726168561027880330612615409216286818857819101483523440330021268773286519286235770958627751870484851860068509028972027845562890347079011332236643514210900964055502660549447307842708888812626595434438600003490416307653382480780143298698222090747028708943474378530674354781288322235966733872595845838925270700636127474928754716041335892284111803048042246782930890642220982190993447703210375479981519599271200270507139285651539843863701457398554942187719891241364369069925024086006011691972320447355024667901927360392328408088397402944507055379439091627097340292659659556137213495836080596735904805742366322447508262432453756846813873093048022438974365130816747855858671896614890833248468769267556370286525483706201043259915857743112537293570704259822650277467209476145703083407656848172689689028192135605226880596521708464553333839219081036853984590939443496156028322011908478754435505543584850623495931750428676822056763154643857065305343552193799980591836064710479291672989306795718498485151669984596114473251715471490013345263752671349249873683382938126004352982938585635036962056170689472746573188902289857179321974886096556371545179291677318150963403260224255701080979600234717235404920227895111568078275977338441022500853718801876018396873278496210604709251846967124904372648930522834711878972237358578029363869632549494156161706136883195851690358542870278377264758389713105817359143538109882923560259247157292604154673685917712852959427430600252152264057253747946614141237061131865673945453794407652883427430926339406420928718725104147971770899291169161328505238876358283977761407548027798445113827336945374555802921513495865636649232793552984575171402143842031935313872514729607046003327754717497605873966089288973246933386460658900162242605460364094479167547637026368890080669096470334709477420984378608298792309793054707583541599708585485898591439596701883674395644548344234275706637323897867353418555673268305073832629653580109522247672597161526542392119860725713429757732261563809432089903870497177797326442192202912246225466662130776875637985297134841621574016082636403285950993244386590066349600331960283393481842039504933303041029682951559786090539920232364879422289859460040162654155944638002222010235687459029391230379381589749165640156379608869907314965358025353636584103263814464412668440593740511563180149728484406832859068470710550511065162047337631497233197211555023008989867704315520090800421009100110509836335284498139369467865112510693970009195515122526884924946755328575916414952599353218745704440043006078429030018132475462360213849523850600898379477230530213876448111131751583620363452617775659449303004010434029892992939743305828412878402825738686459236445077302055643181173935787587939188280123132088859427924410876562651720077833719267175412275921219020681581658146849273749215879679312999161406341493925381053343784115491234623788097619224638998620591570227795002181907532510234733099087347605847641124432105805108072674974149290157117087442188514478548627612050133127351069828253122472383837775659196125136348234082583676035149095410042352727615016560676243275128481680342152726855179602418324988984672678661205406886699060578604324218633964127267274946732895066296319327463242375210723082152592332578269174853345493336533973731982087414371112992536397091319641876391709198687800035433814920422829094936546762759366026424661607905026131130059362259434853205051630348107872036428584465132127465307309899834537158112145292835815286287730291018004573487278248264630163990518154900231204084068878319108627553090229670043738192112650715609180590408990014563251578506284690262812251132181682304130389589516508316718100846884666126473830609170643931655132641065122053662020342707896833708034619875758003440251437041140624365599804779300598091260248571525603601980054341203418156165356872552824013142597132603244425960160359200343646656413700522641718342825104981966481048619961640640337141405653518579179144559133813075779055761930144188647483604154059674465213791733135776140694582305920900436769571983619916576182286312174011305598346488740796471684691008297441938099683258780030025296747455374077233557712602449485704654728682055552029994911668889754496524840696437742878220326406191792439687300942335631452246370799391426360209691119262513396483304156415319961396035529392240126727090284822217640435688067862707087522487378742172596607343960425719123141597244071992230841382636070418434185449554093584291113474500486673023739125632779566244307432501484337941610534752290216843472262078591408835527747726595408961512314808163814520713263449389667281155051725241179543932462402254257138678378236056154413542448591970607576865145114415901299967764052721349653863911044637649677686439049976590402494067287959922089239281980371632677343835909579427258321915006317969999852429522391465728432973184283079014539561950838558295234818753499592317414845057615568295523794625284122538410250946156505266191450294008456564900300610898095254238257244543550193627352048541646587876512026530196591857889145364039631260109413513133162712859622621810798786332428668465820773568149871290833461530909228761094691704679178474463284492813405480723382060120049490642394084992462783495808484508453184669571617650304984545140588823695790510305542421174533702931429054464904528941712164583391045416297044392917500903893625824447288492124563978261493684427488640910546828758449758037881037549307679716093835165354692571657532289150453622252798446529695972392766000079219698170656790327109493541172067345431732095456949934847570866596595903425811273320672857875526247970746673090119260588768809896266507781284286851519814386363248261866973824788682429594244856533041336956996899122790714687287831287649804880530694090179975540026220271156623822127623701092613604758135966349543670520650458649486164156078760821987686266287100795130887206863414428720116053875717881154183597375916778186486139488686809169272402115470890251638135232204968855465564106948285106965164472581624994036548789134087306663608346331230539328422106890823508690249855196355032952750286365219311190298557502692650044834554008736839081893438162414494338721786874402546738579618096609152760403573563158947272698980605586482544854765749622471657086551320147786121406272229291245746663827218250452611649928977943548097669369953002573897567082911524921227067166167740576480208030059818622700272110803964742421507364935598604831069987212084620016353885535983683207552633331039060159218964131982377809796117654357969711840156958499661808254912102858963124807375777026683922353747807498952877007404956130320013668176996599834443050904582399859817739234830125354707986617847467640886095743033184731702350864600149497151086959370261363400481425483173816313423245151316427136174305301632301282481419003648459606842842595471102847242051815896058948342940326555396222025844639058776011076108316888022544462734699952156497413691923675823286553452884647136815548797796670198340454735976133658749796042334470485784536223195201834731522827878025249761373676553691896720905520529612875364646856956587533351234517184180709521743008818942915324778435154967217998975418798258450392565549746255893042148479589592674494853407168510527320997416623245764745084483497424499542891530342174033592392289718892563189685376903911853854772731365838026967577638503862859625327922854535702603342526939807903619729373154802740514724364198106656719812408590847254232042250989477637398498972728471919380149468332098804953934510901348051651172157946939884266846514781760149510726905297081758040610613434131972318603136478471134918178281367352843904899972043820646273536118093104306015163017605930871459333013128467871341256568983158583088871387679889277201532599973710660329162520118338167059527535888433963883288972045048053956989357151909970740609924059347898317630893286173022111092802380893937978066893367342211318228160360933305340513812180230618539107230853865050178417897316250725382219648724430486094314841594821037050174946897557061377634187872456183420552561329833646393521953167250494612677325338042867309360865001704749818322818262131110158345985602481315315744288064200001520235248570861210525828193589288255910712101810107754264825004671119232202851391326342282725878263611829029661995918857154952545062365106553571788103281687449776341058877766307046558330553798485313219142339594707069766568996462151278763160263596202270842661904290982965022030987544888550133660359992696863383086018529713758577161570579780876051349688783874861215704865874455970729619034634949877388901248872864443158759999637815358666609665362146914954520960866552633098015773748885834959965642523741591682740712991513522922149245969478558049848086637373697590317847141755373359346740604364932821721805007825110538175981548226381694666750228020909035001224365208092646060625584347793190938829946064293267485047658142030462978709110285217642592590251633203257527736356901516913770558984433554620581755889217758177692601162614210878327232677808612004160674013704108356694095510524722116597035539188780673630716699999542186660450619260683872389532723847016648071361293072189949037982430166215347617532892895378416226137610727362074952195311351938610845842743700652201372102269124886621526365844227315667961486194771149468702230411120302277001027289141456362631869176517114073171943739606397953054430371038647694911032472115714069943984489408787672180587352025853360440734294414724259423122464996754719464238424641851395765415138296865939785023489304637797301349070096774532329268937436373958784957044952945148412483712599506921924117835727718956871787867648537575259755349921545921190024495555887861838302610161174541201177712873897930937339439933547768891401717452508648732410078645185319305878625912891345165637349457195646845487631584249932592227887392025891061175904886233119221023746639479773649452977187876918758557436886473234778422406992794614108357364418374765518639399587851187962839525815425454962087933941855700416754915435023555657058220250508042432288600478604069747919494445679649142690938980351203273642122897036479031688743526136219707567362851704624094950003334678697379070381759895521271604334615992154419834536780650770549991212333913156943653632923089678322913116162217798097765319814307907245420172176510586254915645824000105516386093681080456363519867465765148367984626676183687931633816212037855733932041412982592751019179060342030001680059124396623401812774341192784479010704877278942888865288073178776144881943138394171318790045786620565140568969790197773797628952098630467330963705959876677260821665914055573052856563255155375685138495814714770682091695030096947106197660121484694126332499704165175267955655734403604839210297023195688514252504925767427791794411056430524305023871349357845373950584089292795179527784251434749058031545862569310061862225158876501942408373481134349438670896249909328730545043438118429116200366510775451057665034669184947162304425605573456068336808198383865333860888087783418280898114883348070587095753616524068894429581846141159769467246535132742958081162778644107496558449741479860595723262672467288401573799777067552659633765707093757164188934548771526140930633463027915436082858473781950425794518128442048280025266574299924366060828790426288871303318201191676950807057138893081504088063808831764598071109580713755169474022281102469462373028879100879874565884618569845709226967690489721529018994811710774297474672340989791740308610084302130285421666971915550523607529132460471006113424039987363812979878876346942830291442752758921971081978014495027183960408784748030339351744677329685801609060304160067410371696026515192728908581153665043612591314234169315538675419283355277640278595900326393013269056616083438023623892407514311002739110688881405536938142213237661594751433786828420468076741835089889935821321459146251827731302294537338569529116031973805655279337031232718174693427891701416008186641120674540619574866657806842839849934371064371448191025226247368051018597988711042869684120839045963862601320177225039853078077739182420262258540764553536870465251228085358467827769025626308252983509678799894671541351802734077290245111204928169962538047483830437956760601468222072314619232746217040044233937481712211363530394739320787026889833173163473791963954053900119144798359846542868326924193186674131944877100186911390564166191185300524583042481959306334855862264451403895580479355609458212412942923790760572045230786457215298239101288875002455909091029407851386560330754170674399702837933301132546196868388631105175570268834742091165017167458258166602764933814559121279001472929441615907500665362070060100250257425871720855315385513127680559940218452389922778956204834405265561342235139073425512546465433984626172480474736323235622968840915560149525653319733363020923827925776472546624535859949677653419192413377532984729544802771481557887238888415958782243949099801274774485755905328913641720011485428454311397462769346997538891840755674684458454270292043349898329078555155780930777551326400122301298531300295911418879606543801013489194156287278651316037353263535021642900370158911477662835522566264072109643230095157491265187971373091144427461749533851688347178863289789643039228936794053253240405570741935722361371277942205990407898896984795381359540081259388926641987771806946324374239452037291224881117063217634498332801746383755122963622444266692407977647373685891926271137459603257184411612075997788624916959450354761119631346211913829933206574731610189570228086856958319697717577182156830434341985136978562791265210710178146307024036236875202101969478090800462678064380961984448285312997327076121797804484391218220019829827255710699180564620753645859888351812184129871266887641929132644983508647880443299513397806486606829138195826329492914610116739688247720809961896771767219269296331667156794444611120305452275448480591684476120169508351849584454065627824838726586616783207440772997714878738475577317107746572870557038286740194775527792143366520328246178795115355988822989131339131297842660160998207507460136770235041518081667116448969310259947516066751246935686484188028554593709295384522399137633895692235860206229322891952248950777045199392338713821111850887470385679884226026362735429177638964365110985909441987908364712620149545935604845713605347833770822190162694504928262930002988556570922636206121830486353231267037074333535754389600006019697106753539794244269431522365724381232944847252328534229441090539131219297390169536420493909472716120674578447592212626319998000518195365828690161783942722491344159886304330494644793630651079837242656958954932961200371917842360212806292158004693275901385714323256015149614205099087024350081329052044273479691085219478323112406858457483823681770180655195456248267931419979943458103630171430985991790250975675091291592344552553303364699053355286361363795180776197216120201320534372445707840056642859855412534857289485191622411309282128330098999389715336459723135337728765357601970022258385772635021354898190978412828981163079421628221601253802647664796425200000649470889229696340892255002977736914351640358855130383919919072537386333100578913315220250981251244797799716025207971998729921913525117609084414377800265238777379060288830488244156125917697612264746626946204737279670933608029714465697367255820716716940792988976805878544876146145186312023872427747375362937538744262589313846961253494438899625392784476136616792043917106901687801194444515074200445511503273536433417738611789041964421245862829373247145359607635901936606036490111299214164977501799706329434169265252467982296667657284375759737584949633298819505874889977551695927683959874394572931752455437379530437206573053444220896766001865034398434191402174214698531273945243427464004086725706474177162618908161023288410022617771673381308541965735884105402114706155642590756331361252704797685474508760720208622504551313341508612731397315907165661185692587767292946881481977474324541227849957753246977775995430987086814243460535132692308795546449923795645831217869710344144157498262181035444433676545115996264545835593400293951139127069570806226256584219456024105707129086513180208894189786132057918999091471707761132923652716050763837837134343649811251022951150104512254333655934693535245544287866558877488388961858851258348714121755558267985839529599419787766718990716198109521993799311339355289583449417080695333402506034606174493095079281323499449373193812716438554619881619903333199441269155895820283663769526459628931612978812939233378254166686653179962531321693485841158844269002346757697026579343488134111907205354696919254545738017928073572352289868417034261679580468229931248110189165808580005596909272797451137218350250898082854262379101759374466387445899708417298268365398850788528163253294903853744774998722552928830688364478272332579184904089007416500517117447781892416851460177410664161490184766361297974612113841078414622494977465211935041653170857418744697913527876376771587538220150029331497781219021790323886060383206331678963923992545347308559534087939166595789015469927920156952965329277944713205144439575476771416299209820310205183668547563805491826056032896239861062878402595923190291564762158016449750337284800060309048930495444923468718873898097381724820772692149172262318316862638532978525923588383191601462219268471538830143727661347077625648158580721521998239900056179865176412467271509798772938629218881716788024833949650557384886700980173662739317998466766416033632571835054808727769296020532861737786199637161993313808089988289315135047778846343361014946941973824154098341603885267368190448191905613396308447238467252865970451147985176613077658047212067889100823294968352010010573991109165501017559506882462850519402667478106065443959986925690807023354614991269052606083083090713492071341315273353050108331974996751110044880451404719528764424797640074881183207449020686460483783785292718742803274817019533401882804875716604518469994500728218305994668530914490753022784703533054448951856116693546520688223015166514362535942173506745484988262625861539719962277822745406162868207012480964253604300669255832564541637842797663139540500557794666626063589224293378708443702898780942346693423764793907437507788334631702601811809888570256947789201277284097648332159269499425248342844580588766920766900324498868187524440881544713844066577219827452256337311820084094975370385873876847278794782290795982516802160554622155285310981328351778846206808100129536152174040359332415549014385016540452238838872537870226959182523436286589804640619684312089918246643634325094347476242950721913318156792428431379934181792043819065528768036888140432448551234921284490994921650750498658788135697947234404993623429988264090297029952874220773159064802000757682084816001585727154865933547478484301144375709426974477475767453817962741807796234134983376245934166397933277838968585854687629582783075528319911504037946147527621264174826398148492075468278511856673158588024674067324663781535755015751248383777081488401895293814900737177802575060823420228071708754871491985824589427282732865316848533734810065967283095616342665960702046546579387566261018045137667867679701705479219094759223566062192449539744186096950170335263347606685396126591498829385217736123583278808474370428398823582384602968754655527711205982637945119547765378994797574483138067992849867154540672832200966342989850509934573066839611183754105170126171805531995045566465844988048834459606070442442867774095758446531819901500631284077531561243460387391380765484869073862531933259446531363151366348610140804131305696917311365998804978731546846202826679632532764340900562364529734311201639292469184567518472338545690365065754719197727248215372430590226477372551005436799840976469213195781976583685683325258414047611744289648065832279300674319242251562471389323625811840969010457827219370842960700304772035910623886923444096554873814266241749092445239127777778979625663079835665078285646266112025498659086763604103435927854080916011392375233829767365313125879453435200764733168010605147953716381772291783744868247584824954323824409977143439326474242155998429820870362202630271172519622388349645440890472052338317959700047720369335029235782601067656867758848646120697837060638901634590210197250951827208890229605659018821656549566972044763040913275743374915015772308495573925833859946831613464668280445377881896265674535538139118202836450124951298324912332457522907173538616983050329758563555840877614672786194393673650444364352813724253511872115525085881456813537876775306545266693037983832377385457934580859364644030002178503068324277786483283775869371795021220873540244011286427471317011756241969122459018011291678851691276458998935555083224433736363447425825978406211057027602085683851167194363552755426921278551832557459873683113019821323352419396325861803699951885452274383524380216400537241751405680791267703102938359183309895793497553211091470676215098782196651273534423005276875341921825925367133591873794647634808607447473688316731522975493630371296357912879756640386280357538130226319717581355692257584383223895627655348570377773108852426384073080080042871046772491941375139927487737632411070898327784014229067428417348525549411404921718856499010306579402120123205502603095066833082754830402470251000359985024220490725238349888853551878747437930435864603406586158020713760890447674889346669672873391730397170860816562932232095560007452978166071297991548710398695206362837161960917348659200334367228586706921745581252688260851209341072107062499403048820645517767792318774617696037464654750173725574907099564405726062017958533541148207732354025510234501509518058892894263416753771112931283677094926802704001816330548497046127989905451365285354391503273294995244739742774300744068415408418212760348916846238103857395934969240034271440104240350681981060270600509329836987672148006648427442401343757670992081443812779542862715420017148382282928446940584118194282268466871803785213803546692316775572928877982055735975307929201812569120482586671546338445980152337100039205146055342932261145101048427460058263656200438636210629319979480942911973224951200886818974147999164946088384715514662125624616090913078109854241970533810192155265216946574159223291155728498794504361828759386028373148896209090008819075459545491228210827325505614394049354442120736901162350881143893588440696137216776952154571182640848050663395928203542749050723253491315368947922710845369906102982855782231458380809368919384117374914623592147225989735663706515296315288554026420970628655473445754424955738182826321277705631379138059866804541006544062289342672492541944697861940421506135722537483721988235315933244943885955045715274902809356109836766781776937436092395376348908492013388303217184435833172429531399681713794775730000853934068944191511440334954259723902667146233084715065077048007749382967490253528331033830540573980283577190075987463360571994833162715326730240222728845905701559200048253559957838967366507465751724111922892682009262194709621926348403564073804857793350394026567461043852607954548590158632814741508241546135413845510727954069763719738577999946691844974856902249420544203122789524610262913700072097905691756993157434630390559722753353537723311107394818089681736274349100461345154679410828364287669358024480388839230118265510350131450353974002962297753592292276711703548670712306851690395604280130738240012177660426435443301044285187889587373413268998917706725105270815396676034528467649140801238764866288053133566367663497369205813244967867003568012276866190733943474066708495462457528081322884907610316706540697102596333371229341963114679208597067641929913889594735736715421953501988086655407102043479840262950686814802491781116147168303643208837689691308891180356623551202047415589564868701325367191270907053611255754399438954190528765017134793548661852387041946849525290957126104227533764212466520062149130829376290368458652513549283772807963951850480943150812657014276941559182228618601188503090124353857177210099995219187141044384622605383966136443850551046770657694843800210814517592586035245082076043543379017407328981353077844531958606626324998569239629758320621238351404410463142181824567188370730559753263718395857669839767150072542576628548934265244820405221498397829409816924611341716146624321354139732815693928750203894642290427474733606915987327127445203652109566620948082814020707084995997088439535100517766903265758448081502117905368032935991323320526668511367039164208922371133631882768119683969231458073631938146908200833473804434165939326549610724605889658366758601195754088299268087490123747236934100317257371346965634819996294966299930722737577698095741811983635822859418542152554259670006716356821082415889671920553587775000258874318256972966077114998064307962848987343476506526136902164708022645968878678034302183511189821179546693600510561360536979240773314573244380083874523964753946211334552987678173860853233653675797794555106707117278396472054341762858303012304855315267567247789486123664388960571212742471651944416867505480242257414546817728356777433449368148521224088653349417328688817915920703119699119989826667773048260520175487852202483162934565141060340101274577605335140578666124163781947257195770321647870121534426262959319472994906806254047634463979845030145991224748243604286194561393080637445299566179156862515581028175205897897858730818116785097300132558171028098957828154690010123094693474579382390043151588129552067363986418785288022677679030943106512386424136348711042672375594106687037305963599487495491169942964772882459771576377412145174407276608575097140022467906223272783209673151129050943648229558557605061098307731015499006470061582506349530892589005344413768684254817115374747986824082875365087057064698871204815796239698965708847376252175963827586264401824245992520823104303819386210140917847587189630377812063288304735866186563520404875492978270356860340634482651949303747941914283491522100890220621849069672095551646263739359359231372126985178135532725534794573438123865802502905982272856270409265241399125744811032301645289311230777549906808513726730552151458062783400080462481187509763468785603674239589390690603545940631465056056288916580808690620067833531751816978259892352767691858280452209090213887395987000440589890615214541769704210693505617008848122136011808066396745238360463737547180914814045453578756098364294754082498302672871723667382376533402828378438231676544197515776989760260700820043669901371604464008042896111512525007203329816070654094595658692931550103407071872136994733245885485912784628164868345540715217008379894399472927209664870351792713292169249283799426633644142739111457052103373179632510228772727229216652481598366165465826210831218326103602655361498567354074142936759553038952591118121134729901658004682863594461057794646369068018304837553875812292519677374108487601625739662345098138934008257816644489423118739389596280990580990725781981981564094719144155887292428931390358917396578638745515877707226647516976190547891476956202754921348578252297978545022468878915971374537182348224407050417725326236421446600845342387897593903327785051875405241420912238311654515791617588346966988904793227637670032443344735450261437167079963009260376814774321742641052720772411283804622230611205340778646845966248195694764267551855115628024295315553053155986012065283698908734304394687620551924589612462847930650614640619446751612849288300218507950625580223431139718190572153996469918064553939501700841480363601480040137980976636595091899090590755148785666256263411836874407640957418241729681859066320539631179806474074935579696855785691681201817385021063054496576765662074355400275242341120600895156011814634386682342807556047002601918665042947607680103439060694448453585399612642723197790805031773232364748484908733922524489044374694860408378277507684912620280534433722096453988181590119614170172257136173101401875913011294898028941156085317151397384230425999950462652985992351179514871941361188177131959634653366349034820765045245155724243928035296501803286615471189390146829621520793922959598559695294952861847433271589145568627330114109796104555068135703582337926752233072388160244540693261646350688610987648062133404932528697870979160696913037762601807194481875321677941744524120171811377087224109662643643046701656601039712014500616457224834161692317350030565721029800877466907473703298868064288911579267254189952072063614455217488588525349277746985728070978751502573029006483586646552205904253643473572562998442693751978687183299617877929788463718364370251596769987356483214584271742675262860785579267703354069168453763006531423636500620526910303471925579334807862067201483860695347527843744951404690153589766694013500991700015483817078679802505481364977354331314453694195806371295123787251105014414416693909203108766860615545059016969505151222379367853582458185077717074983052822348808792098032334183127217308976990821863901393480397343157673999541826843257883026533003622292502877296729461843841716890905786848117929234868015054111468057834865767597095318751486798894648366615541753928733134933529889031404942405109234087683758162214911561400549441467116343804259983316596062980373613970281610374707072168249414719371432240709700906208527844044466074457468080956730561447353726160246550729863418988021165116804945485585441299106337753305656805054911959821795821434319425078207121055137849446211440260718164734797531926871891297592215008898144353445326374407131813083468812106458983288805969042618651395314782531290614642579190509758114486711688781404262353305129146960970493358816804999810391582709405637743642847533942606566250596585106950122250095022719861214698943265108004932122083500364698979608971456656939937566605897848506949931768451864295834553027458095956167011280498606207520564374286822709962202829513151791679682356875528971167696702274219007993117496268995773764515180880085623397182436764578338161049106495281816010631121573560418241463941389468177733422626286263217226743691018259171057590690526609697118653949649649447900452302561618252102721222437227583653756481853843696363366878868210270065881268992260473587118969702434857774499063582657346664011831046803986195000255065873204173867634166753199091895388006442385168571463896276056937577529726473328660094902976527515996266867100125300328728311448755030041502204695144990816476386789834270869317186320916032067618133104857361827098346141103516510994634154004602392782508385496935002959102167343887452131509959897617197423232500478782644034958898994867438473210659849012081778793825641108421016479431142116884968119177944907456359135281310619046010707766767020538137295134758229868818588011421457612470852617196991854708694349785752884392181808661503681775704672608350764055779872768923070595886863232007917459929525515036547956826590454603663004664946214452115074655301363602369758380175881328424105361205264193141998060629083877582679044046657265610117100633357142182208346193966928564733798318450328965678074927644363125861954210971186402010804898759617329820413789357228550631052219227508496565442211567038125550564610608722732900602648112628883589229674060173788014894556666493951873327316957357538978415469174980207195446735329431972789350720933185578759378588209873999247900630531313218278635058752907446651833688741245607600120165256938405530355861932964604512064047514153912331749727398080589260331641262797618555927194108703697679751751667493931788853672176265819441249317188197717843716207356449827936696923957743052113672648866537356713908526566385703118551662603364911877300218563676678307668727556569372748725113741727072605206540711536902056106723792860328973408627463884538347511050065072717509250486476138904855362956997604931297343509481996524469923147591684212617511148517126828965347189868705545303741479732491508115362598954445083732798479308220098132055828019322880188771018804773203106056543951570349697326311008063557274185087840858293801321062405957812930420910648601666379139299197672209004165357529527603010599088133675018278895580272202425946430434787081888180870106806392274261913172607484057229542141069395265662741475565330744815882104595833210554685150085793906115715808089001051274357243782074964611320947297430839851032927048835282866934138162066443961003056335823120452741850632143661179507439746907418243507254962723070203814722229173475216870788429329964086042689376764010552794876522563753800280634561430663573629452452764723088083950051671849483052200572404411121020810626506249356620389034353465034549639824455729890470055707773696411914622667783982643214915525633934740252575885706486381027805711337774069832252330520766294461577777608493359589310580632856158831314953034574475885551301511724750568391421873220303803013776307787893468215818066985328788443994620348166005361238742741013893945295474263007689399016811635229730758635683531100715115253346729608718339050477248724877719385273409015011287486330507153199902950804826703192535184645181434876205359312599912749044721270100178186230784968120492801803267271621621094631403910236115227815256225303972091434416184423425377854865601526226853685261428638233592020862973974852850672531365452706379629778500850590967464774255040121412734777109288585639605947503755975054965028869490486658720522690511830926305871072763886555889768162946151074926553163001144891282217781601166065218906858465736157971331639903449973290550453933652765599615660245680368028109444209946620258564536764158195068606391827971435957698797388586372942113765092034074712748914903773359756362079557158615772356472838121791593855732871295041578734255966843258597869673725364172190875291688344636945108536915727663374330744774177332211242954306197744119089080469427480342968258936308852849534258431893295795046108967049664485443429318339025825831648716628906716176719180813786820320059957166372247438359653469727328837630276923853806009459384161852362313635002879813724858425309691845791457637598786171152442313126627420643916776342891458463796323187590305259598648115291741582939152252153826796097881399312302084468918210490092802143132149165517650114151671615072378710175968176331287695347788569865072218227350735091785887050142090284749755186968256575960985345094782269342413286827333008554597186500080352143308954817970185075763510535789392770865351872042391839756749662515610033227088032047100604334434732945386114450969835956903816957625454615830905290247286889219136185012340358817479058720324624300538829397770068467315660866216119897522967283915034126555665928510766482907974682453382307997988266997309128089751458836783095514897608691993461331678919872973061343531838778748741645799675744103049791928539579495886211089424296874096097803471478426889440540009924495800392718275736739482328608509339233396486238086503599001367422057030267415053456861369346488764667410855376874920179108325662264199203963548239475803387333613552439806670456443053709711937942060532035511860832558585798896271162111847491586898976038850333076180717080070761134562347617209707205240408256719882876093102543505649967329292270191142236177087240917545010276961531435003974684957407920702965413058611987079960070380896813775213847745107077138771522946583067662396074108937969682702049813311581432041485842803628263878956584466158538235641295525539488990844952904179739893302604148765094609241142592892392431611279863542283200253646320878803354885820570628440438456155149173372082971252124998024818863597541066079946720080977855626888834178962355480954295067628984313919592559692893137820331853527961125432163784356566356139184605723620182130789948322829594368688915489889586113866207160859624918163396428519628193002178197804306542877056187422114467729900037839235819164375726616376930794755475017976094275004964678103193201976471179425168554250375451832171231727310482181044746159828517703629886096922206913705116837320808403691396089311282291449864513694472790178386299006345529358530494463206333222990223938644093538767333756218546645183545292843182791766620820162117448269362620444311848491606957264242607254020234924157176242974209519994856979224056338769758887762139054080690960035975363610550958435361201069886819516728257365506296925983613590619074303729241940695000189313081899824342552674349779909550356462319034918650731243884430868576301796004291389324799190811146985192545124789789373799656570872443069971098787831263020676858362510385008899027667516097706496729657598171196578462466493548319737370459398500677946518615745837675790144859920395370956700628847723707682605740456553723755483084965201094105009667343881473828891733184884819258776127320298465420872877788797806055375747494891267764401072153378237086612460238147089569929908201373342878281952164270359140348646884550644432576207625804700124838470821965220821543998223178020894460360333805864354574907596667422386711194213572258674152058876502610344930970006958901526049554168854077539611839966733597815380883254296667446672184651365258949641142671660760073923842256358761523548483400792707075543259872837957215898171960015372258954182491515526789976946399437111293546716676241386842680416064074954422515670124787231965470833901165209410586414710989285163338301986953261638047688998075244065754201323002911399619916572645518888548211711156833257875800310392539374304405395277505623716518290942489902275491294947999037641722341613924399314731496447156898087457305520684700620413789231324816647773354991026478832374106599419611588953696126488067583162999644584541455100718368096877212952735574845467119578124753599245956158780004164835560375602232931857337326742660280587217584539709056741305608332614695577107276946802226669135351303054688201747399189462790973835656596733930254348122053433990537921683428540491215983031868069774486072568446682192122319485883002924973810100358637587386440248539424786123492559873178530857013446628018058639923733643032172844008310910892307590062059038348297122902600689748180231201467425228187366974603958405724088555807119897026550697817388068163297965951927034859568754834237726773169674403925098909087258990452368171257809831511738714694119514777777726823137769605424356422379374879637159088687691164595492474107503304757304128854981330199114034954603253596542552168246289668267789365218400459247584682824094327107870862657089996209751921661893512051689137042978632957900327181888427763564555145530874438446603961433134588685252201343476351233560937685309122510229546860927126414735268334757712640645714932457854446462622870918429228381490038954320788750694248051641246427048146053152356330173638517740576288518450216862540821145491082387776563049011717397598617700423067104051482628470405581752153869527145522872009250106834595216093660258127594405675482801324288774612744384359061952991230275628291910770789589623741719958554524456751414077947902039781801024117184308746678679583548055319684755806367930249711765533812271530620156116375409527983279176474538282804284003177049651177770902483422755260773631240056901051612918994791823483183294586265925829475348994196921978139366589252877598678708627691215100951512113881061529855767355641553107321749767265464074580465891099446681820693603834759814126924124904371378884077589206165715706709370639757736296256537595309173415926684595505990727182183035823351738615808036646685173163901786677825361912698971418247726186623777572621690245817028409528449811124329908900712491239013494735331523565599604963834960170546915921269719967051494205874284450329786827296307094503083939492470934202515161755448732408190890156685160410513355732704901034229487320303493532490899183267389150277803560516142207578621179796768359349716703338846789375819360433937536851613765520277416206967098619743372384484522752980535568590542561480440716998925511478310728831285304838991541093424772414670165451667501002785802504244036385517305242546507615952469476270985738516800896122596621276655228584377748477455980088109287337724481481869153485452132798109838077412941346757084375257241334281601940112744623725658367999960344169323676673552515037099892180941919756427121284572324344340149555684472926273937897971644007834771782142198309931670250842099551969935532143404971553525494892446481785006813578832152334973690833277376474108248908057251452933135320124185601952484770620401350572688162394100872740762878516487820766519772145858075947780418990380697878156925029728688239356052597500985926145463831955499825286215129319419524242409286428891506065516279964790391468640587116895985748844978893217333230825107485803467094419793320750592923035528362415527437230970094217742198322795794477815050445868697713231494214513936586859560901592366329957521360155724616803702659571901396997038396973942209531439872045580034058666175704056118804419921467595449117638424818672140438824164059544397314860853738322590447485352933126538081012366287762672296583271834270915074462530880479074583588872110257535919848956826657026320598396422599309816681663222441393123405511496255235531346046058125002050519450811328448752893750489784051584235478328551977134397086181686885960725651445678835742386183217890826957437329062840757379322608216514670644924707187113920141202301559704960639610826351014002671690729193676292058246920243377618114642707068302395469557524427492872504444279603147564774234930671201668506481244670743810215320206135404063181209640332484693776946272581988568224662631921645775294929750809587842718246350196519964756381144761149400465246370276028044340057204972075690184903156249686416318472381668986232143612548511240844065476640773822303143099028556825632930694463930472478870648561881584629243386221779717602248337422231814470756614255420689374891131777986060146217372078212344267917595950880085701896326696661151783973001699087624041159530296517981344442323435924246823457914108640860394393175208914644059778673314084153885988325555099633361276071769025827228281543257895788130150865044998032030235141971621434774280908568359443029640203434482936173948540166542966491472618594424518037297069908213295120307054764136112350697626828641255062494170803670581891954314622953440559626009615833369864457695533894246414482206990641303080746534112652991526475677562908913794267584691446802298024542126288036045333553518217599784954434744028163060632271246625070030660770172411287757924138340242191323409948131601395721995408798021136825335489009316422289357907089722165682133018747467654843094257116729665539801795764881529259164572715115412532862564235877860096643588173626155376578172955139545113963099519109180100193355834507982359693467755838217381852955364801416338206341439094770407011057307646424141891597404939737621660181536769425895886697996473324397821046244063328662776453281827145540266454455532721979276914744864997408562322572848996563417966902409333348481634092048365856878607473335131653885122405624655428241176033590489471378087921319217569124106256340819320860779119654123221897967820611684940363992745975532166341781660360430478336612857898549345466479775994123960234035373024220092450828184659952811875358218801507528424760419941795778549939117671760981455506347279467577363567197848870379160529865819970244565075098829130567358036288028419744190616324416356787291068282613822031008934217123240377067047652566309766436822718178593631523557009833867092773205007480473919772745793419375377924564722927202218088895340048828437161755797980956443517985145475860635628367417581643457620121670517589366825064855033351477282384515667246807073893469385549742552718142456404865956584171302194259417881315545966132050954551138682403953079618037655602412682942163970651445978166889037307117120872222509279143061987774266705327954849886923146356779011962867838369296475191697973275233403960971447366003871891446047206597950339697258687963692619404682342742078165199293503453769111959313447098933369359232606653880982922488527826708965416309139669193224727237202763368497652705375996692419331134135560389613101666870098503520025821855685227916653930012449393512967737295348962145339219542138374164614231620182773017178622658164561364410075788263013790819558009855971314828864047500773978201721378804504284149881685594271023022096612524522724934721961646485442196293081833801087382552929602335106496246557591711584090925511093496273920417336337141609833312599588048631253314940167735091319688407443375924162596796769486537619550742025085294965972723168609000907748249947022347851815407452779702786854766822131886778662783396658932163645281968154136644015558421593918712582582318591909531788594132324935295234220831811734311327006715635409479637779187751300809262561638931250728424670375746231747194652498440053779016565237368225840693701806073174758573255712981725395011289030504871966045805441052119711558392088069916951328022682557151274564534719114484234818534402782599202158005079759866113401452278055942087347728183359907645232976330766422802094742757418965335217244977857315906053798443586764268961685672282589283816180421861177441929930959912398783156412162454639576862744986409172256386477293258239831477314815441823891807134544332413451636430804727903056407095842230838918241374074239478644678227856744402677511362401946299092565370253248128914268012518783896808261741889710217985325822150904201077431034770524969904934310183956329565556278759337292322983765064487617891882718938672651579743657523949476368651064399115781851917780056780852615187822653244560280240826106551177975551732190093146517252478461709347643653738183130683904266593075307587289030300585965430206597557976577458726471447887064541799646759298101083052746028871127661142447155144913822306142732839113296433085424681383757020514036781597218113570002138544795929633363559170131562049884827942257295923916503842212470590636202471804780263201300198024957699418096641535593282996816983886043789118145418929043261549990780554797892031445211552221468178136580223251186691874995043318088928579200085179656912490829507441962158575408636545576667880397373716972400302485905196448976137146580070085817348880147239939045692604276064854263355678597324114839932683295990111430749124127795872501803148368508756447231084516205822633388413189717094136055447850902197587371349074744947098497364318557367175744944125204661751668565196859226911051798544023920421330977586833090343090264918023896965139642706133747818225704287874114495708815167347864542863434452216889751556614398406554563498046032185352056337476787084078943155962047624827877720660613106185618180675061510516314095620325460768597116789322163005214872680858365133454841638252508156003437846031356026471517805719433164318641683455374534035003840849299173403457050557706729667883160317522121530671059696513238939628321129788597706661187158329688597696296485794508957217751851233775127718526620226470915958931573410591493100820201327077557336276438525033332634069223868895096361851675722942928048785007118160621192860728460798849933772967166252468401654026976544475013752825199323839893272691663183740544749663364419634123411540494732331251782136074923718177334754150173020781909682045995580642293104152973795398273591171011668907600395188555720908620441475465102788415654270696634961125941787836455373753778706335121948794704900405503785658342856975011623873670584474472496214866252385907103356346997269304821643916208520286069569017486348415320261445969408548835198448978041957871478584445454480634941170326481912414384509678875068165832885187839534371545635515080965188203855606521612417758852782403656805553351354332155614913442390949691281286191944504232124691044907537762315648500315643962084206103573925143077986546261096889530126857933690739598347970970756825776645276649469393839421469913464790517409761387146253315808021908026439209781348559764906979780826340616407083701560772790202583253683323112335677466819748020549122147153300693580071081839942556638254948316838522379540725718130980512628865582651485171034168668237246118848966901724119920342181646077031763917207031006103521653510208713751085961752532682087057812569243105269343930278243794359982560324379324020020916450647117141058913336227358170545901519203462371466393532346187352281433221307870370254686259720619810489959961140455507775705762919511367297909555403553936617515705863706934341451337568632527953135204897023247485875628766451496283528813596412745207561427727886490781462918681748926454930814925585324474347888863437193934526067222301841667368057703670300670043097845669081156995438205096691435193417937621104632349512302097760195547656875802200419702254412781359044868517767589958032931118526057793011542112216243107622576916240021676263522413300802548434688197368460171523143751162976438145259722520305925065046798529582771100108440940918357140742435889508678997237842573090533495111701884651865104240839955415792914751572827534928544684493236569620175810887425621292716776344566564978200824675374290089875717446654986312481492743692570538182544472896664803100840888987998111340646939592642258598133198996648091843334182349794682210462091354692300674831589195894737599249355602111564850010155808982675234131553311697896746818897223467776503638714020940290589258736684863525359017580739575001723182136558211391362849896536692272277863675869075682803987325395340403743326397910038408142303123432795501920801568885637267410633776055835232552102366448923962346907049635590240342495092297105638243566322295516932361396763538198618200749975086087305827615234245820870088065462801340282160235364617558121790597398362975547758204676042858850158187546825724060684385617265201821905222188413661379571109324937659487722163826573094870600996922406201607784943342510583390842404423813646138677529523260002865111736399817537194660066479540033498317451462088695853363801603178815482826629440739114704521691846566618456432745961175679281934259147418888230350445275261569309379304570320879942827271628012123593500784608676858069715247228570354629325608394049709778413106801202053884860879750800434835681094072794603994553060445670388975577965307428782186879265973385897847888067710039246263057592354439570517130787206907210685273892900691603517115386711987267844951231735660423179510162878927745937017703282437987749864142772311975823626790707469880551709225629117605614213718547736598893064657175859204137436503741619969199112179394488199678357239511809119880027132177479919934310489104863369869750077441621768923014529733499611154041193343570209940961101092915083490476623285051585686872541017344203072116900163708337417331156600478938614078518344306339173603715239837545143809333552307312548018840685203785649127215828297357799318558849824866456699594856888202172436962088344493839536653728699756337202076724166406494495133824348854286660861099125179078066273139332253261666531490077168546080354022891896287046141285060571806030237607337621949195606163302026027793715097076321620561505821358058427724068411709343521996253187641920880482240634251106658422930997468447764246548527133080655564526905954958592055711677163023281349989449239368794137575618697912347189133042986830874629788227233632542849828015025323523946472955213488862785742315959671755922466259790700263019851543398294254070943178681560801847455170364039281217730329992077409453840769107981269075946671136039472559633523755724222700261193233115493831701798672067283225698288551694201796567096019841733390858464582610631004709266983404613570051662504080797650672489832404081002154584006746725769824313636625095689436572697346500908295707779179589331700384208920632883074064627966719375610837223069985852910820331317059614699308880931476643821627041957534824437354993841571751189328673893813171238385884351271563091533188674755791696247357091525734797987286890712326977297714385103029127455117043581434174813361337370228322523846602044845063390736878856450517070924859731903922197176754776860950714920050550869770212687355524641390907403463822276193922168894599172516048142447223191978465274620147858962063018374693020864366220093862594080527769271308498269671176218552947602272704600569341820856107331559165068033512858104740380147819609683157710959102318482166728706162825388290862543283937114120000993108036725281145435159483338020898983128228343293334455353721019731647262898514978314897951176607027452768302245623219466389217365764401213169819216508493804621040728049384219061166723714202940425696397427562841991197298029229809809802410850983274840892504162283291313884252867099065842189590103576861485268970740706861579939128857640241724170322618431564950403990907022735010378768826694820701321983616753228853496442966177015859835445087761892341856202048939088422510098386000584412169382529222041483820959088938801506778997821645332976069208329255041512099237841717682654813556410536481683072640012679034382648233414630641017989381531149394627094819491621668149928057289596444818016576433897508077985538321431729365113984612866163844988863537970502751793442365984997945914350115493285924528187539134410151135369147385037366663499416822130474900879875014176216572760305324835175380153115277658155845049077550695185160957014316435475498942337158487451904478032437269815564258535946908566579991739583469720094122429138682016042004384344085243761032822675493755555296826362005546358699581048056240060047671373450489134646242823307080107572007921636213002098829526955365632150178002359607492946580632614993261469229612924540457243717909524947237153246749171123003445722806354243669501311863995221191641568865388641676113829803864046384911760953973229834564348627764817854847657825666716143171445293355787582499919728286675645506380526352294116984429464957511582224707403233306017339879265069308845909086786305700107267940154780266991804178065179696325143466908373794215463226992697060786219397957940039905167531344099689867243834400376464216433189423320962797389974920393135537716166043912052400152751507026817190007815666401141334611859649130900499163214870798597755698970101049144395012352084646285543054617608048186475602894265293801699805120776306742484950391006980650737109752456070507071685088541470919907837475298968159218099201199410328586077356035440584579119048678733018349877952811311196617788614415228758944761965675596968351873956895946557429732631109935476174559789096940294072280891948901207709316451805350121054871482078446040867025539583133709335123843695479432643542961912772767252468301239470722921876623346533059802679403956453482513934332494174552193928129399886373708897872423923494272305475601395091040830396177363379575501927654454062395569371839116550181193553381596579288793678778830839852717854335986182981686386519576117709247192701723742423298073465382922184707341802722859842678081339330427384266985302276896156839625135560995041573532597752778405692845538507273786499967258636933252086797847020408455808863924559556524438614332569721838762163710802989505701042428497147448418892628481030980017498621329026413757698473273337760080421614009684388246300029491152423228310114736143615183674266691289694147321835028582324502409377020243219116505297433893346298137806437316341778232246954662759514940188019302703456988779314243925898955713294724760373066349478828036863006319289830359158622683442968069603034720215736575090512574202708302368305798944903411555839831936903477525776379017580107954895999146991040978280027555851051919852557965714721316511761361181937734082494619892423451996828213012543551753445653139779262312735060513283551944509635940435373320769818179442315363019437694142915753489451162803464026572384666925601643098303149237575546006598709930096104723178051103963515742286459183893652881947657676815389897719274971679409285073705945465532678826035672797160518070830892288935784024917296105930467650985551787685837745820227949787969023309330876760932553087588604761169812711010710865128106369191226846752643806170632892884794602988254746726118439176903221477533250047564778857207996635347112954213125386783406127484194932606061844911730546307261232241374009171018879091338242540503160758936275067443211716280835238515511997805979600417272851908936764926792624615313068304962547192839996741694705695258020024892277136588934519920566018736851590895184452876540079888903605680881209964727685784848750641605379307995078082322647995316751606303410712003815681691787552521509469914037100488873538973691228877368389583598823267911885433786373344365557368023189418705712963646654577097363562538120600946161649158054693355152398399543375066395747468097467686515659535566221617812049992734965990713839043772829807491020933780566503470447507490752146750359858235816082037064638948830028511278781705374009583679628115758811839702447221352706366246399340027959455331380156095248029251107684414252124938734222115033972353439019506939299399335736757748186769019567585317475699591692944245666794341198518881582787908989615420950745275415475839321999831230854022958154839012937342084938411745169047803915827768785821441557752402964924617913951416707660707689365552429608618679557613262080780109683081762556823556264650611315631283091135487434809015595965989404586675750889694971733052264382853836255962642454822698302002518960217988515624782127572320705328656403424617059237792281608464636055541669834371134917591866163150249013210076466795372666263721390513175527331286344265659243304107795728895502460433158226456152513045197074203363897878915816292230425255125253894396653612241517057644189950085357662526791365368885223567820125334218199238782960575704903635059533331444968829586329729502741557767200681313461155150214516495626157240283266940759887014029754578635857039828754804158683647208097893759260862456237723939673670773154248090737171780583257471007015806373617252345337935018905142024757823435407122841183395406839188234596342679516344150527835429583428032407720335080214142139911923838582027035732623609335913334590071058905502525340757522756895951353048006683146930419368669375347419170960085580572967345471152759127439495941487493644833610307456370532958009895016868836280571980249585405789609729273515625537145055351156041251208056104094155541740563954093344315623774456543240658656604597790716914475786817329187550851331709985033944980701360046159951354582873715493251509757758713871418972503384620420182048505443019731047884161944382864501788516985281421470439705744852820244079005665312035132544850931544545110607902995453454960738761474851173144793603127250465246751026117542536135425146285380021938656448507060059971030711787329002235253459680739492419767281323544432245264803219383969509132055272105096185585838752916386689735806654605710715363405410065197005146859843915690395439756568744913397757953002297785434905374025629392373818904866256945285922400293764748317671795530639574644544570803096202711292679789194587164709133237974722763925683220810691954883996213558785007118459161541571839478317454778045643396860876074378193278694465611067383111887718618771511304484763043986517318255445711645352967836608505710994166548162566694649171888069946433355595944739524881915359207946759575429455650343256830026377280179402469770294315633548875090781782598245052928715767796017164454524335450157139447707053235382156927424686520380624769431355456636780281618112111999215012692957045081364966073506009498550248617253500696908685839961755609209314893736365954913343805732144515156046071196393302614215507799469252184747426568940373809076073651265843579014738830648809430690113543398345464462349313748395341308478490364518051812847528800609306797713764954984535866784698646032672579732309773607989915732096959583743998226627788736431378121384203950978286792731331694133937116370909716762198156724582372491944894883666560187786761977967197685313974093656032694571919584478063958514273254322543995756031857162341090511952942976142029367437706174935607535004053955202356225523175212837855916501510721778336834065360151547588992232194865240069178199393008729574889157660411342978573825519403720714213574744395431596321560850495051953718275589777075538076114072391742848552806256859196330724762181333631393290005556277205605028334300323533313926862424205692158415419115533281839772254307129574096660685196669844597268725425277757322221162435835105420396127621282500779361624616179062299968008261884807960726878588917429933546311422276977247464408433446403767770012253698118211898256277706713334378689808652752957942523862052502524609078825490758513235554958061484901498676195644426828928610661285223043885456154679528149373055705393556098504604486119533932243506912084768174288020674308991705767297408004022842175015243371451612172093423577299819488249778082288787872510844095220748680769124098852956938468025855407175075705055783195430386230823010635380289566793255751955101473126645912854886827511593071371388233682740174159367455326909047193117195874919401094773773359712727065378965138961582325200928370085784430732763228443292158518739114232237846526825386157411616534032600348802679132857815738887292753855961813081114964739683961678852447413342962825957181575764743344356645514536712650086417162223632181825748919751051221378697982972794527893864946159689236404430896191874804161635748741895002888383600634039322641143562094630780775001169260085990322929214829572748482247263372789660996576668902078216565351326071065218701602241166765377947849199996397603673152435115005420480933931140587320632023985301042056966905216110586987185084222067189416769707378935477578438862285463057695502289675374493825237860054292762349062020262705863299216140400628281073046690938374617762882613553524600906646763205134371732099887762815035483748930437542448423313008267584616717576307162688732535195293873841606127397185210477979913791161779498485860177047814358947094696375356993925844217694570637097304053766865380783395288356354597709512172103995743507247641669594541757159667015300139279978321989234208320928552115963687755915443086023069416565553001953090413499532933238881940160078411461849482693833858855717297475356648326975749923890151905127157562877057149442968828834998197018316317309685474656685128937873872991259434678769664850928003745776271150569408710034289991713654123327950915777537276945733189963306401942438039158407747745964845854813250999158648584043716522203552420744310190386357152977659431484852289994605461334900049707217985669739350399085205185213511940330900747717049713562402692467384569382794915513090690554383908448776180511339379093477922237544583224772714931744608063811981782103561278091913959121895287007784431666994602450881898043511578805861363302071097625599197761669451728087360758072362054540054980357737241583732783543168035337878286840083113582810147663401385055493284301275034959415076844937559153630010377481406812254517536594862394922667940045078898074624750199723737290708988225777393239858890971699223115591564554843933635333011249567672133032320266320205210900483356141685481279176751262481947885239338140539668150694262411372690295903963865002351939850908056698750538544257001228993978867258165057620409314822188510340556079678872448962081469573594681457975742316435691586446973404678780432117034211096985813814864284342655450119679281479957053430079025707453015994492126680904992075512776048624644566821850199293696088979570224593623159916760649347207916839114083385922884175400576117756950962787240215408824889085607451984654721247174826377404691531331707298998794816420056288213953114383352717996416634894590915055060835648057750886987724731536332945607763452985589495855725580659845212172007624186612270143513369526695646216500450418974053234803348333255124972250880510340423234667627981007959278114300335624893876115012504591034244467113749885067087287339038179733775637103596011529917256382209429742609787702225553888686425002122284648507554656731803425828431655760116605198753170127395017625297840891303153981040533438266052607444835488216937975786541080972080854044096306728393699778280577068354559351824303431888007490065201621095007876574231449929262123803049391319625390965773696782914613346600320574184324787439579402458360076061960831162797679612099920610420145105485116302870584088352171688377350110094400824407452336944413464627835181699977383472055510397847537992375084557479220691514092409079849409915362556270622837047517444375860682059015694273537080358082140868467130814111572650387756554931223090576668231034535838225512997378262659040510332291342511848105378646120203759155286082536395910532076250343404129681127673349213028975959699621551548549417977167333130559073485179584283607170619428825709622348843189987808848882653913334250646438554806309776779197944043069782497565063319610731717357248583324010272172032050666479251548458535641580608869407107145362340825979150217480002170627358215994636538927874892966667768353416210667928197426365144877523660033469872681206561738557445681738331331820363043214660466804985216220642733632011926209000696864422486990253672964779374148769066904177182306640086302595958264037425412842099318174466271687077775710749247990142070279794217091981484249525861206090682233694541080786428909321166880929265085064787761997844069984504142324872765885579184400576917377405325817696148154128686508772674366053639155471193553455691779878713398101913134504787653455186315501544380310139875093548179768866092783670730780525873527020649276579487121709346494513164923149912457885570233998161582499584329317317073544009570427963992439356654126853538514153420408961316945385312501678825229771172066765325484452856368348103843534744853993231612904866150887074417944790418838878478835619400929591752322102175589456376496501909384259136619476109944045035829323693550279180783735969868512665588808254868266292346848211491062663573279435568047057967054259358874630698426092619693160093253460739881217278018918646010883702965840377431677704912611288139419838067709850055086750018309662815445358371869639149751669805220991329253471709601087524976550795429361105783221232582705706517954310518338433288358323659039499765428116956144437904154914237346703877607101934659825238279139848559800995456878729405587438998017416147997936871871812638378890316347492696299589664543352975939959899938351767365043170398393039116085461847251401383355643689590396598620336065059339330879551147099201777298081949716870303161725017068497357417023897350957507087540961777689677376720524133914942442501699047777450742708414153012775207477952621719510597116111410675114300555626232894435796932521239948703934401454523826716030263413761538852595418768137231695289172135880205613356292264796249111886351049680890391217883933200878936441935799367748924454432832768285910037288112132484037174065048083231289769838359140845325867241983118077831959062694784386182244605109454107578962964883286961860961900826980564739444106422559580159812531285486837712557743895422693253257338946368554357470328949614331497191679562406921641101847946756155644758237133565353153137953196318517552131203068104946353202323105242868560734005738475411411305294272776704287542364374855689231533162595485541292624033664125574771303667311135293996450767563896196667796216961991396202632390873037750600818444272315561471495485953778081516049213696282578900389388527791736434000790279656477514325716710696659494098052717149196712264694324085981202384870991936013414134585013592266208291756507973352000905781277790801094692660793309024315039853028018193872244828318511684672214549463172026293714721640939327803142966896554909951741253486178003729328615201961627437212523054577670293777770666565946184046371225688646561719598665450943997165750150349936710686815495194876627222833277609460649579435920588009552902224599392456293260531455882673074128707437379476499766292852632251052769500302640479973039044313300654619957086496748202243335597272056466875891894882273336317207536827590730218376118545922259673733202468319517296784237172721920207397865999842821005847158019019740622981193976228466080470744316442080046416015806827058702189970735539594691116450824228159883676073267878606707433948876949257355784367815375499181813625512197473756471496352109504225972652951505864356213644716112301539737294726021438614559261423511912879674173805015884711646643841586257722649957178061892085654291386151315942722205901523094937668259157474262461288985351328004017675328031787489248323448421436378576015190913490614390758385139686995195734972723210784985945060714211442176077054718479598124341171964848182566354384707328489700370401666780928998130240800501863506546738343062016455747538111682774543685455345744858086043000624768200993433623233724183481134042892517034359113820483716660846643950161129383064549003856601159902050511840692512103598127639345740594065553754613308134168205232798001402335659271161373487045844496069413249856198230748874318513860144003042549193982668493814117158002366525830660818437604036330505241406423413611217834760880901922407978727258306092169576604603377954577538627355213740896905206749529553850735025920909834101202726552014645070810297474284896405372880496223407539561717713654651726772835970856926318804578769977786996092084813019131709496987374415138139553958038049925145742128367852102713115172929849548558483638066026111364343595839907289818831552263109216312778629079544619953162929051243362679229833804910239546461727590171150563956472067284778221431917563846414329662793997327530294732579628502387322217162075241410426716093206810047643841991425182091562349078476090319305292232696877747885037193783810277432037304052198215755869689936267237817571688131807873446461172609727973013240539132626932262275748910724740060498284790794925361639712897419188661048358893405140112546451292088176176299378040064517356998393611558641401276208585547775633818875546119421299709104954962680423826524378512489496827989245482332605152615372109668504895098436714694755974004995966563281735311870207681838800463767828672570364761917293707859465275481397978209808892628171427878379370417500303333959413426197553419925400048732413548819294069894898619866522069644353149790968298246838876827630894992949247937549477548293771740614321938310795176177826841178371128287293844960956379463569966926501408659132490316210774407039712506441639541040731872203204963329688952513711565789792775312807572458262473937786119099233487062779380300087023897833665202107049716001448791942123585046541287326608316519419242036695041080646503600816547162626945676000642526444104045423013431956977131425203508042680160990192794856265258489423480643892956631338546357381547589303086174306139911108165175547272300212374389404132731380224734925757717338111950314834437602240505165696688149342197170805963518967824446285464599581931666239437460561159872406134463020131983040637959346735580908278068495762014009710954195911325816087518973833717878316522199838497825741496043570031651333890675842273398475663523007543835237919356589093008374542516691585538577040913712689680775374158693388536558058008941613898245726126940067951005517234644858299175386043391497847573994988870134878298321044217032328011114277095095977248053215164284361344822942157030331435810340315113230871035668430616093377586817831689106877105498806040374675959558226512233741550896185969709696145971980843061474955552098973341281174174688336283999511729830028339482101063128586084559926078502829554938319952883117111327934378027728689170525979933947932151284200169321732732600383129033548179880389697066069171639166978523383266242120327552696781684757024434721588706132584113567055719380341114378835459279466223904097001943042464183903656512809111363918583175470147956298319148716686443959715446078414267615620327824301180735377915853148814372760688017573306901667378910107053692320561478990958066691592207636771223801996296819019981431879626427182186467234512219776776655374846260579380355007825799485572391708667736146909506729839675818100049702790241124739368350883462838608561053953050725126421081209608231611169227124759951940496719671253607529362574315882696971496612678294544245690839916331399883020463239771461071222999371477855853930585022457788782731761749741247793717590663490150206805966440830899579962650512039708713004441714722419438287537400876003027427346594001453746224986002498301724903333014829351101016499260477906332362519575751729077160347401458748795708521538452769295794952587186108264470642225742809246757094085987971607345359617532016094975315558896984895060570332085884790333824831573709891446897764630198733842280505932677346724433096528598309191449914747155897866559978584895037349316764758414373570159881924651902556912523275923951629680632974013497310441570640905522027107328539675222269195791352196543057485762648259997306960399803073201404141722352581123711698358694746183403682053098028170878035193037149880406684220703668386684641344292974994616026962222876969269606270682961483376536140268723746382248053700051103138085427531263486370253529065571695362707063725488892038256412561151449499606672094511769125931590482144612357078316791464170057863729609268838183307708900702635949809935839730475925881574636620092590641073328489950171098193109552917082312302087403808494804275424705605011961119104345301031927423431085049170169577672147147209572348072577065638803053684419030336103541360986459532450096343565167591025570817520545598866381834109126603445612154694290020489830618000097284926554254523126699695961612815353794991854668514361725797451349471730701548892979453591684025816333346344937628122207306632987574258194228422461000779438184929277211019962468471958655542273743946573778051538626341281457073924243536873174236559852988151631057112182391731363134565361566469341134837473881261809423337677998418538460302259680343869303798089673334245860706822294201275228658757221957113608019466024455451728424753486146717167997615421794688935107811638141379415921723063863537720870980562885699997507992825641261519197206745873448379172886371995519441411278184052479779902518313229663978973299423791877823955417566712925458733687257475789274106755660691724165131482174344455978092866118514990654809037593862326965864684625452891575773055281921560473838824966071405780195084082131257513510193199521244727023977035663055992972433690231944722070718920809338591608227473648546831007204061909817107993750517454104456961388239384400545964515101773322817605103208606388813365242488931759042752738686480935461459820290888152665611313036957533717917929462279800433293226075269997559335373758892965049000558179402202111742367645446805783943293461421957871456671380760730948139145058147884482417713237984099112391020190385916373509866050583013513055796486261395447657501116872973327245149975205521679281104573436116637664371711383659276030554503436431998398695965005680918564466895731705606798314975103583325740609669983948500101346793329977641443099883037516201357831911758369681846250109784350492077379538411366473248908934062827324426158918110131664407523121905518998599974439132526148316811715688198474323383326732035787775303283846376490047494602040466700159798505677165749240751776019589288124351143150153799667152525329879456819678153058943546140757034766138739038652353951608396706237759430112600952579750727248349239385427292503368936749895080583146145075022069115107869679938242283225807270964405229809512634919918342868118000621584224139599897962791718950854736478225021075012949964731008404254925836245632464396973932752722304686771852090020734607626629577403934681050570530652338775746309157358417847836258116766330687537160213945245666581359500836282375657914473643770739351214842383074250419905102655748019296128819736617708689774315770209620565257756674603800707522201868910218730181306024068419603001881633668124367659246954188351843107335165025301342780508828849307665403088634118185113099979157726655177395850784472942676483187364337032591036095805120196245379916727840598199078436846553638973716239431181358198617973113687546721349835209248039059848209642466983787985655499108556255243569803013158612519570372639869702482475935556484102916812767266447380716030111361323293881874939184380396345149454213601428128159571665992398269596095140947683919856423800565507496574123374794016220456711988825493683907998947634029098055935465879127218804917336700037116281205226658183437756713471703406137187786427972341069329238964182898702585290183487217349063135801477465657361769035331782871870533020494947770988513617992666030182773987958183282615899688673139035569201356608998585269253052921108908069135666636401951407585839767237910595740228073408519110437521548424881212831439126293297623021295777346989380712482852327314593906145134897033716874349312847837356565505659646520133574075373741187574100273089254531140418829453044094200959673012219971814184286452366497739437083278710125001805710214152192910005884964059635172907443202010255608947676134300842733734892283308996554740051304607757349822596297537284882820168292449853220075540552436109319083016420647882984227637160106574488362703599706973358012469969861186498181718159296116019071452181914026994870001573800110997903379546679337866837942495783953605083645295086994684677217003206556412375648897421926694811225949206017125800725825432629882889662401189477020092961834703135217930986538905326073471685011073254108906415308437858758949990074882509992037921123925356567790215447216188999312411610848328961942067125794381458105467790481912080388240477296613285183864170358577626100075640107768489552211458776080892555904626967267227679309845940409110485903771985864332266373353358126459957026484770112230539607997967798010614022512074042984655983568844517948085723790757790955069623174823011285451144186461596530390585008239366458364151993906778451334159710288318796211367077734605916370116543497640026536539572451692958427604563185283990632256236294619319856287302590157414875686488701716115237532556948147406931520039929826300418579393673096195935615506999812884178789295759218428108727603879244638412199319392519497504574629390399182228170702969589047771170558859987545578740348367059440221511352645888291427630579829016450712418070095730262234747392473052873372199174840084656291776298625016783921199193715725124216177683690776363260877400248979750551150372575577036885588946347808315382564935717873891754806883942640615182261467368359146249022050397399866283993767773610483104094966303594524619559262176115783901124765228585675131065377987917819083613887450252224336574715971736869489530060584731468447821230558597350849170304551260755989220619969234206204901981569737668838761829674372383630709078081347400492786768621331777838741926111010859898889055632610118204868136500976811750035460722758836579313800448239994355546476154223394866650722430830338042209626646202058899785607571396962682651138751581298511672907704121084649875561231262228016884051598143167551600251653220486947093676432672812544732982609576254244391735493618544148564819405962648818868663483857827164998164800599138896489995029562407601190625107076095456665902234563244072148682395849689884516041339694867798300186615970565395997280708499984671675753851076328502359400089113505450520239461042329711468192829884033428868732467848430987976178682328428432378459845604453047688442477930021924665340267582112652710648466726839899269080669390428381821719517834256209307691432318444413755266512180451890093795705371804184832495816474445060173861717313148027988605336447998245621757417659011880508022088426143977254590334400142096859845309509184997663491399784983781761025082995927837783160162931404156224490522325747732166051936452346584255026596795651010794318008050595071915097292037804081201997104685132465784989751021091029076146397342496259828084308234201369881125261936463386358671608718541047368403168451591358312857862090321823155378979924509612185580345485860918853953882555309628468715693339732971242203913362752229343710781938858197730984352048195078438401094923134898487531780489931305740109094527233157222012922410360731226635482505042059431566952721454648417522709885073554247172336318843334784688647320360066071935258387975804531445182876779591127042959668279777658787093590380794242326664139763541492729914802947225911895116378042557868335725555440181735506338859926843041658006993380937244409706285851356786988442823964526081210733680485953748900675295783748614062858075694212406972936496021028502818090342964525490253039270461190759357948541477021717167727057163136907707237473647141724127664674035546995906052755305064181646388976748245994130650659451521695843503200900586918780760508660177673422145486248929581299029258148936411627999789236860219930234049292390936273106290167682387703937037040598145102900489542273808831757937729108145499077230080880388366650318468777020663600206807571272700931374110669534719760263715654530569970839093357083005271809210649046466120242897597638455438272962615086561976518902733151451997644519911888520606391416760820942757705134476653987985998927543889042076472918749587024200968678776201883860689004544791309935935876932515333993808484877400644039133426704809139522623748303478903724552553590937038327602047883741613649544797550231331127622070091355774535671704394233083275702207485352963846748922364172560015640887484341353259799674192193336388405508047803551534051723533482486339592177044952045750156356493299298897909610200910565562413463584665242185274516454953209050747655503445875749359336692380450259093355657110851842575176537523065048331924926166078690003159052938821687706458031087732678428242075410435998500500148284528982289719579040182058610887957711987029816214822331780446994545832818280698332255107796811494147024382724671594397178535783051678359220493237258627032569970788691919196066970147213305617365497861976908644329991523949398007494058763263132317643495752086719828414208810107831376740823278413901994662987096036646248364194688049977363935779503167398018903401666504171928129018629131051459227268264447339074609576339106840360085756891693064348202809322293151536020234126845300247814969125000696074977956260579447688636147981018765979849446258098490965420095805698316383591278743003700545707391198933957252911436014835380644143941924590918789546208230023045975309656229182447897563207209008832885262653522672043376620100784167458405870296928226355992997616735493990859924547277130646223969712889407395749430667464816132223825311611134692723300228556783819583762871151407602210987388730774995332714131096387937281878044917773482056535623186376854662728798302462280446713561647230834753925351102610678736269048877816420730563745815615716161761234046213649470105328189715013260314684242310457150977588561989520259642586188997408301211186778021145446954745986134624876793164709180572917187305967981870283042058648184146374658481647894103616414823510195265811325709333041925190287139824299922812557971178832826427605500925505139790082295866141944458297752786435750326731755238123247653434818849900610232912461133423911858860572137661246435263912410141126072849956838619769905273274995135953194192663882472814853152156013897133869412558010936093768353594816557505272919797672071097390101399540780986041205829326840048286450399374968211410628002440912852216942228195319756716993766975964042061813224833274120733941630675541306143443868855392643660497753501903915654129755302515383615132008770430727124313550136665186967863645844271265458249185507382162805939416860375768523129729762839961679693784050045544940035459524573659664606196212545609844141817066951825045248442206030698249705345492249719465529320496127303348976733431327083697671364163276180166975931853796981275782388016104021822095724559995815194960598449000878016122382474915449841369939014916690088152939162763069524283557643194076987243811532414194268118584134086944907329185078447358494407038786756099701296104571702759524216238415408142872956302025103146038370350878719190671638699346151102893618402969901707415289841599268076823707854101270222068938379064254151158804481769442870985246480483725447065894875234050952900226466064549707156239185211000595283472908464741684670578291196562034044762581139244758295987603352608606165669048686562962304389601889819174404881795478249032368283359268765463576091468042788058126475310544447644267122807089970999071076003873286205599785302515487294370904622416550295305669191459880372095097976971147911323253247309177802548585673670758310996008880988562233100156084790840690775093796836442726602341862016992128831678356028383297355251552047571920381871135004254761286652860916704903068920040480707428332768954881850452834899233176747675143972004435121824860982445671430556630715810276488981940384513207597060701081232930262323540903125630525835547611828257435718822844257524434948016748787595224348955096849231067036045820488700341383346411964852350219280350029175808085618764700959258463273210299374051817282884868581193876319486784235448654246205772825131619470624021087369447495827394796191579664076017426077366195147324183838438677247571456888239445668321728588077782568360607601427184085339030742276438642627365036874799308355004961380888042029888333221490563243969010624670318422519471209110694444138547820949143932168089613169382451852089537462129697885980352369072026718474389909967455345363969829984028023451524645557487373170910281982858531280509628452862101999164007743426547520188507816268366674322659657095842720137719156262527445576031422639173243392678714335226008640600966328431803282188291452038089825611969387817595537907864828872050131328325830845980944394737921102215257399276371034924452150902978810156552300380680661848330704526602748560226558103093025065182165719614096529692549072032879556284085643075185733904223069323104071284821894124995472972339761872345874218862871226454757698677870828934115309521409384185162841383147121282669848263348410826425266778217501451162773039154555289209354931742385626797904582221564526705412683989088038090437739965448425259664941104088056667752980844982982866765507223649391709722190350982093804608003222565782222681426815040088556361817319178418334205077523281988289131863667910727365410402227258271273943999813474759247621087177910801447146259587825583901794262042377241751331633274166583769712853635756621951427454411115192566966369553702236172989037171780328120165932208580589269157473284359788465984097435468280419047749436765969297537101544684765029655289487359055843029840888727617369319225273974134374424854692557050152004982645074641714126359141962088647608367151171913771158989732350936910339336725227533109284960201670111472072868024655834910697814787009119041283098613354524426608051990790624546472684893375961989769808417330662260414605025118141005899858005974941541022506926372542117884384623897997675041826800305794329721867849170679322068665710966764665420868069699953894037007799980343083506972635845919154536058580926500045655235518957939172847617654452612185701162996205021563578605783185936761917722497656543845170478210901336686090721230433869015769069844439566344724076809212265842532356712886528564716609631741330322121386102365758260532744180719020101683720001620107285749459725988158375935948064860931547463542538327655933941093750094513358383438396760398059461341268070198995870874577559719079156160574485033466700349612006519011563149704119200651320864859790044600454490655595261120774408275529371488915046292515969337080427882207731429180142383079896861524589209503451872788525901829848244032570824035044167741083096098170340521243940690324930386235572456814470550717846825545862216317446175854408143913000309686147255137768093138715090366592879474950142598109912282067444333694514769225366868662323549854386945597097923313925984809002459226209333797926955785419245098060300510021574559695431796837711255069688005434295294594247385938616776144695548315728032502515160071551387835115887677461913494948588821198887573278316932647554852741927791077532122349893385925150462509447945335171128953140070511145657271223813145341987215767722284253912627368333082342623368660804543765285360659784516406140552994087470561891232125411729283690557127102036380854624183067780440518071844916586756156013254568362703975492713653417180447780231144706277773036102899255587159031661445012019466957886157489706099228992619052160318102018021993219924652786912616432627731489531158796946981687978767387696269175949630891917150201388382202453368766807392113236719752054427549350077626558599180028572506971245798665390806130805857639260724158424789164492974947859688305454124725468874379878775960974538601516240019506628919919609552705853956655534935039888347966980956527966340948738848680292974627852306611502240960887487342268610506810737720838975941357110261641647284461983859761574119657927859326887465043351617670941444074826641812680424527414083459149443830967591346865661020684514304965089710408211978706196191434661378639074183425784451551105053931445589328062028780570966702894109294625497125143631334232594693258454066007096333499539817039725956422691839985952810385181294574132792967470574366387317917560883770051248763666555281473340242114124471898628902624365288493248184490019933418450704783326771009900514138042500175340587035229591136555703289314557968996732249421360991618722169590428255201976483096514972093984922014654022564791810195619174901226368571117099438664493790782728414501138316030765412388182515597365752171078452616156663827499987548425477160964974008388268082412434447013175428861383654995535333503759735121307649600358067276616719234342650253352009026134915872214677253025182688335426628521074374049682391205044694825647642438312025376614632581387976216548608396104756210058785239864619007009418254382568193349562882969086348312637092778861168955285837914992105778373484147634674853325963106109152993508691059380856427664251260079687006594494654368820080596762818296117722903693242669418114472637922041510623256385795685463612403146691013207478409920740573670041391788878331584722424247587974592224879970865553568225765932993304101545128179570209902787930421777100783809931926318308335767707690586933043476654150938551497715054833425921424039179331057992075147658256720678869042242482569836138128975762427323803053352803475861653953978971394149021076438627833320052802606326952544403170731325360344387494462334099451005664242488537883943815234996592232803869704162665667045195919693255341255236992311285970802655419233593697910465229378365733396129104019891292353171055576982016406971175713100319249452605828404097146821838366608921664886654187513448032928279939831965329314789096575400143339241575525462650582930394688298505428304002650173419560518489697588073761816694118926776409558228729557363121041414007264651182314589922990690960118963783936732751966757284294952494867110336400510772667744579764541225416055132305349145903046169226348016212830040675273047743656632177470279052232158743750925202673598992761199737695368303971535004618738798082387452165052167292408335277405497157549244710520468649268808582784339868753944518300301231202466453455894478684360827011414194467297845557579131442411860716724490181201622741352231149634447950198143517710844701057040573665378339478507966328534110480546058551709556053965408628794276530958352461098970443369280812446356638689011100936526757002219469970529441601316753192807314178257077039010469368653110803225427317001279339815448010769669710135715205534874316469562259670494471855205528697546245598851548804146273985293758685567833688652760593378795287894939781556584431218642502619960019765509524649934849141604263616450382560508582102680492011066500873395975647172929479145517657117013381961901049775195551954414711453534601059125657056853757986419543601884607399305543821930005108835758479676329113736279118175879787074672445566505268579247557075394402333856634229014361853689064860286698567894495865665600395161291270289791484022342087964597094523790605762986628511985650613826231820764219114925824731336007706284149707888783307875243316207673087535306226681034654038396817279897473516727617586192304418052840232935493149618466330864516937983671956050639961843178902715247654905035384017919782046477361365064983410198897213627043347827936180549393112346001494432008521919383894769636617579574990228389311272169318619487582331418884981626655326365863330835743232544889319586345674017748319535167181099836625680318881451672502421058921103789109333890202147937002470579765760834354025652890722579769016139666367727086042652429558044511356218566783053527142916142175625067431349340142047285474605709463760507109354413197530714411743783034124656642021886529531085946110612024752247190343722788960104720727351378642291700321182418964895775470659365754578509074713790335347528957350691722160089957999923200938811923345349707519671489139128376092319721863006009654491708144152558195219220051647131874596994202111578831474326028957539729149755062721607311166521096101775373200142099071388184356652066652789100702632771087249197364727703504556641744380278002117197683459024687009007949312692604320723057026443655952031068514426143747488264192280631044603499153661860090077353307382592248987627335039781428556226830031507141483378746534708779023333412630093655854978295767051058591819456863199511893626137900266550116443011598680427745938868387701652818073489834512212850648867812216991746018845569973994279023180016296002694693888284290907957485797068572348643482184652555233705469384797231711922039062763864328487904274732918675768470192779105620280515167146736289467420365279177424221347052591199337466486531333907405659976293421059926023878000057838995280421855145748202395466358084957158273698989798020986101008789340053128510794793915062655853697864166467418358765518787347722933116550269591504997854242211720854400976142575100350672821172853146238205379196937596814033291635778616650504017985084808847937935241550257414083291098281629571132533375926162707641240675172101592045063016188726552635473351403361839774048829265807489125842064745242268937569765507414073888850597037862217394834261007630153364566072058819587308247963967423918073036071515206215916709525265059386786569718701403778367994085134662135821037988601388458899983913588849862034716094974614526264400889766740141847600068464258333123143460659138248106139839485992010492575900271098890921889239269677804961065658682710997619643078989880316708891952033177055107446331853776484151151950921725281926515553109321853437958532381837960472190019423375798946614456934422346836791871039882290748405734778260063717119664848552921853725712556477643824254454120440928474458098032556548014470901594369650528236430315091887216628720664649968136377863497839322737091483523694517010280349484287144378540801267802114523946126592210707556067690612008149971504987813610280504576765170092304806120589534786187198080655864552133932522600642807118254197335140053407259284047815809049280372472473266302908544852798520807377257033771127036982432549820787352056965431840426924238312799541489094012621073749083136553522813349315385584519226806450050163194913445762868313794702521682030991269563118074272539230053126002720778426829368175192997362471434067847103612313185380558901435761928454132035544924583856077390640424338374755798737902313524751890368212049207053387584094868350242643310923130668986803426648765265978691812948572132043600849318424434331611417311767019378992698678177077539692841399939423405035481958237338369641677842517096221269456172105470472491980188417787916936920616398326820291344640576849660925747507672811417536347700512079250400365947617454216495438443739072962616810953455113777219534738392104849351585474449008995009472374273269136729401824168973362270478048361846062766444816852634848982114415423923701305685332233042321871715517313024371926069932394972880690585124099309185357364031509765994617071273853031610041714644425141798807060631234697990152366735372077312539391001822462036537231302441267570417463700869158037411634220913927729628145043633862597474036516013111638915584252920781701876967178831897059912603047082804423276131940827606685907737634706612658793738784787780668303255721832104882174752460127575754828848809493644951082460391005986509129849346161074240901231766530352784637526448162658903088413739755211013588838502915395153733042456889805967494829279384365699036527241176614451732686575603811883399383324710541872986419982901448855606205913824027524967276781229229458924592321402104294045018708138511277391685907221216434441082426464090614657189840508176170184917076834389639787686980710238286279480631450106811254737118424895476893043139140085787512627398137592529355718884582866058064507436875704576010334515005048154856722794421918842728511724326121685941162702414092994726053248303959092323358257555467167352421069993191185403791023250213208327560903284747925312698638380846703068978421934110072045441876115788615060964071174587485473655916489328267763358045858884705864169176320656181845852613201251556119086397214851593777682533279010953249587561868413868752727023576328687611023684997932966990755640237367422325516424911937406989400038753609336571801478872694531226380957908789197742017957391241683995262193510773014671052819511281130776053000897988713601341367470144379433432474764276883231647767381979945677764298901757274630078007942569576573995733587067649236179679570735502939479645234140339975222718465899220693726991155364362149345911033778983036413515836508845625898776896047017882570651077859946874617066610776125383809947739901222653036341173759564906132501314672952341879694429033321929082371216018635903663974276345974986749486701941643303489566394635573965187018264414315145602287166807507924025854280301435288966596591203056210014111664715713014555240373417633795631182525250207352282623320250579153995555421621502822183945147419321130076380399912616065207374918759129999500641967977977118133066784695996297297704136420550416927110728446575648739329898772720265878759141971304316689457728496380314463992565268541275147608133289315198658168645926784756175431123190827452575164807005773653508436981769833753016268857204444060729250753354283861348147414762757592627924808857744766304651352517693187679180280995251492555229168486939547604016983957425109481348066700156350040398573609518454709821374971383321222956197588615788794840667863553436481573996771833643271645697074121601274851291768814848342275890954681209276547596622582846223967853795405890340887199181741262142148298117845831330634445563925520681116205725891906206138233749600371416542771527115003247707652319030017541069804348603751846097548995455182881730048024745266836081477834610793650442826582086418442307831668614163347083055913194865394857228130026843077841502818545416424552976029898964183646906060284157794847936092844744626713181712869178090863716332159246807065587221076290467965702401429787403966779041372734916140640544081256736606121357634819575219830055371849166494966937696938985709306956317567406077427268283679956286548265873630004821302837481096725818063547461748473806874836600329441459813394270807320931058362661320926898677862049453074679161669901436083470461478346471478848155148742365584580968318466363910040972887648034653113691016460586298802360009607397912962363891802737376671033509843481741181323142482379279640159142135725993471344987470640204870654369242549212466755843804382866011740318501130865930896063831984338744532782362446916791718286321134222820389694238872325465656765644095248566168208790533192806369837753422128085178348561742678213025966177557285697355834109726413529458246074106243160947733394222561934150102298978112502131251818680811491426374720879310695771279212760704265659948058067811553778492511265035239219551562256623375725902412844275648437210423586017731524411754523116948942768336074906941174340461955673200287526737303426533369035845096914897513765750762951242602028537249089699111143188047838020525234265444680010067303983664637891556621482727931022671499046948322277392186639854138187019168275980151516358709539315546730180204473648601130148523076706675340705400898621848625078299482321840935261592241451889187721300836318316240266315800494289672754025632282319604561227103419354262288900134716925650430586963841449114743506635040216708142132071321285313125784319179031478499377669719310880462707429196220298941590621846776954691120882536316422084680441793685934722903349468232502836155789736382262130651269919162995850910897131631355718718408649310662167765579185459645949673854179658439132040783211243062731793965572380680061783555259608028332045228297466179445707188774388450240674269608551047018025297009824700672918946128679203969115777930535249357272255731913466472099949737423233054474676089227547077815618528920668756136171475878513886741129927176727384680967845922473552957124360786793803671921852191594824325987560294300743384977821784279474367755166782688269689855874775259970070948345347783985547198216343808672181077443234266174811896319081049900082192168819267489900368656740518714933619608757451880604700916875706649123028332378998337898871875122433380450422838908982492247315949075648674327131752103018038669533931756668575356122862730293335551003273895490196928285552544772049694130265636976355902992774883021997187938245028555909447393669922357057780991643957591137433839329936883947596581615626902573730150610861007465740183971401466178696664101420549800199653859793131203432357730532349547606317181906087009271539390344739324457677827908972314787175952436935278874684407026935461955242061582943395614174242825693972369342558948937947620400898564951473366930379973072462049647837705484790084353181091692300762824329300277834313803875376459125160826106805425562496282184182863454099604839738858950252101629383780792467918371487620220834839954425144060011350283356493852025008526673281383747087038481200501077640147608491767912541420545174216716781118122318094784100230176792167615374553032967154437260963495249944160729516470323360408180327291866693265954918425447403275715462910451289450533247055396604425162695387900269447409093659611033259370259307343861265846766196546061855116481716550749294722381142808174810004214541590249120335714520628074831711751499539930806279035576878037150323550261696456770571632287027840591984805341632029190558282845100676006239215887889090545996776183740926642812662083606899207495240564406084914989510927592205546331834522225802425966479022897264992490823827644868200259413976070789853595187562272277571287212698525049335155405326288023794524007298888042132355170330205199781818632162622976447949793770584048906307627893506351721931389798735676079345050584309142243124903737716511131761634560880335706083051476725216894428926842725087741465051270934727084629374748716190870034188712486248515929029287338017633841920135784742688716871683479855246911052179924713388562654284202602848399066537162540608730969420266518926916617653036715591596639642672020340536104139087541256923578687539138932708928706167639095219438681392518489878467424710878153691891824900198488096152374272121015047228085178006237160649787684332444627775381351061411019639399737680288218607557935363730050081388135384373472933029992676937133552586391172719118164446671805365785303401642747930242602160782470907580753541051418707980644918909673934353635886547460845027283755466258739443569846954960771358243624729194691582819189873698640679567565017678488333051897336768121051381965169435560634333205928544799193383427598885965345202228244617575549846640672576122970524811383177706067529800643385860506246766516600864534235311159203956904954085628908701532606948552075189864704263031222950673425099165437756898741321833010413099282845593963590269334558964132163293988758044301202570259723442199767577138064685828630210693401751543542455434820958051869338990561050305833751340799410525854693333064809254570634949140485149209170942403036317291340508334579825970516667575439264816931765955191568705089454926354257605550377897936847559173606843361476412551825561466826931493213767302524262152454832044116963643950819490799843526979098891555562121592769135770582263969448235537255708848512573531293662126154910838684593297611660370887241804269983522199038015144842024751319812562615865101963009306719113412669199425873775720275066420069959587498524308720883129073192092884578093393985440203824036636187311820726897646400646557856741817684114066835749957922052498359383187535228356412682600741562543945243257276535950723916152491067837353363214598088119471417235911674717467246876720906244874828303772871351869484875806440742811053278877310265184844989775168674813967595142521141141854686936494390134200232606513388446097448105348824177864116820817785220322826692141225923718165917211217292930356668983179891164073979028814997176897130615421884666881434346411090817119321259528678410121907235743254143213239206542676317226830144614742823159084390299065562837731276378156757952317516872571916679878821323015336490855897022198940955975323921212947922193818109663260678991604854188358310009666317395398172808935942890551192464843131483087210620961136756213267700673467293690707930389489081045756207061936039081849351084348900187099504007332394143770718196872815345399780843389436007449356693750539438898531636430405710492154575003632607306845977720592747520610461663327735423764258116638345621138135017733301291380245669803351798494493330624314584053702552114279955335377680823496005477701957910302690312218584361451804098884943929381196372979438956466533397674402117954882547451293856879548249892177815480231749319920885383637646504651867823852128240492414634306933758412193106403468527838503594979694265213038920189042954634952037473904474693928987304333482756702431298178261394677415968101841867828683397205773003744679512347420760806129347914375412198714002471558838948992690120842050177704094512015292044104366983480302112351597746276433664885788347513346778047458668365351808827426177208187952892760693279035146331160972715075705749780468561941220187404431112437267157591647324372123934997943288809560492230284203867309086577479154317735920174807572675275656205769008195494434137480838923777336430805465787507952760840545704537021973151184431997385804936967502464619993919056784365103123402943047475651781578060010519974416884418162753940153754266161065677144261106637501008326701654145061356375712395981971474520996149559883683054873195195987842069700454000207985570011152101438873655787423179166622862907222305536224616017838243535324555642679678465543037895195171161538463861187562446962428352741785757430401672461123142128474633147785385193297893294562629888719879932121090910104238148806370145943493397226221569382074016254608457346629412683614377913411112776520679762362865462092101950764146441460810521801168708201283125820059213834346303360962752875753555672411883710764650496798815046883843239371165202158894766245724428797524848747379062038879985106724342109553625709437348787765350619750532104303902407951321845155188171028417395309813582261084962465190416609743036037334248979086952691349505980979461757691908971902278541758971080304784077526773162669939067984668979891722222711528368742958391879882029551202542989824129986938237644325549439728896132817956162082449540323334193565529927937567769626278136334738242490447718689956569149559321261339734463433614301697496019945313789926971167222531519481493757178680522814228801219050991470373044997514368053405651556243614304811326728806475952318911300449432261571700905526221551685875843632902512503619585774582042911653367823146629088271727340454354810510283463179969161636499162032273250970572396182799232638619008270470887878141353783455770989077974359801781967630076798903498008589375478878587761603230743057349540149101809095889235707290305113499955880407834130419217233836901065368259347859280063153529934483873212268915457017673830435095861683668729264487869667073668118184081125192255702609451876383089062724958388191525694639118219306164309233673608277160148105902821715405786680383753812575364875144200787972677480047268755311817391108830101403793613614002707432111143461894753279973084279693006378408340830948821553087042910443347394607103078925019986864719605841031079459364555230525895403452767551551719770334033877406138100346695132120480718483967936979585567373111355079881753835140136166619579524243014766918421413620680778911979146735272476443629003194528137048672202570675958698656294197187305750771410219637860317223164530942578396628108137114836889184764355955550081620005190350467361365460479282016838189168675616779050606644566993983377784610058671291786546383769140124628090771967050903418364514364063522591433025383934885142210844724608117033310450690578351400198257330454915554714263101337187227433292201108090696861547425056939705309719593378563697270434252704496867347772593453423873711307225140670011564376439567647497700326260237792527536456030158666165799601833621136160621565838115131773944369081578222233889177201883709145252398289229359435063073523141606471796135180456179249377475752467860205288134711775509153020155124648503450802777574356150044768372843738663525624703108885707491302621103440365106822739656031557242718818772273994203662361152414846119848769372196578177437464824005602178905558353182688159052782920065907061541166889549715548811540292032825028860625495730362866345503350990957589077213239513635905857203087618957621725064142686394010851870394125929303223870465446318203994690836344851350989461654115015703220921841082267198435157547802592690324499872760939378178837384016821681795134827662679636954181684701679599627109385400503565572106422609835810907041547792991430381220339400041939868493617048363738860219504882831917024623098477977293584840544770897311947544016963963956227469829213627374954054249851346537556360576362740527348107590099524601378157320808110403502991477157978731773293534390722790814227752245917799531305455560354053388569975939758222178664425929145614286072800364194089267274389808064960392315455044920596285451767079762155774087678905727335756884805822154626905421363337371079527632102800292735910784124796342420114074270837476552828440107498236864556404501122826579813791089646790952090121832858618074765759248272319522008947213026623349900137179700695213091789511523105359234072578791478985535711611442456869412395995350559578050309346118742408971344771454994207995516807204508197774264793608520331788774503090495386539611893492990963657084842355302693388909999050984554697580058439083106311899884527467005886064803572794145369980320264091073576913224211989749611071576152305072880269507032582338894364989302530363507214448350968608661575670048700711730556804850796762457709536750006860710620973925832008983438878376964856112627149258221718380034874165940845128785667931080265945758181293951908094805121658261437051284973542615350015624700833742936409387320890849169378248679759916006928759738387216337423660485742161655174242049542024741920582372751055511013356216245098594065268127109110903016957256293385133137864432427526145181458594845987845318899084859857671575102660901444304475432409834617925867160527715762279963257820544658691446458287796738642966511001897396285556666232926233640804410998212346240061995244088235190751541184276611171132239471884676762402238463984251508320028017720856598349918101540433370936280623534138615979065539033843047912727205049222560371441101335372734552966001101446528221852578690542947931759125468749828002824974750650272266292155717756960404566346243392495309948629726891842053654160733495818793925026498734954700376191694623573674157723220530250872436968686416743278679107749416293317927435655151155648636775257735041391113228187144371114259169324043978682569580167642129509148707497766027078211037240071022644209546186898044511690867795880052625049781479911577665111954171836257825559570366002803959800748392284365191737769040149179402977862367367099239953560665381486057761907200449879113670244188895432768908340071555372903760931259042517101437320980663839200389293440744401781733230216790648543084771438110530507844662409840869876813788676226547048294066204437788477336216159849300815605138758083885753793835772804594386718020560378910061756055498476081337152000876058573723800684138949582502551941499292356269161873972998167173356919314696020050006905443007502721143535638806793736238944465508467393336314912877416497262924012794641357491992141001503638627282410597628224748531471426566674979212648919769934951255834456339776586015508462799759107558441489411095160476324640007632647018932051745197618353253452583248814173548519425237020183925559059140234175123962681833996402373928538218521997495331124288242677067260848406944683348081028323545711697574446196847511541203941604820676923736785621907730880944209437768897910066840339353044770313944107838944446595073336433915310686718212765940372349202129573999352580492233505335742075111870926954403119191981385322617349693883743905804239950850989181901625076137821798813597899111677174219244854627220456282956318450943100760378254392490804204476696842165400099168805410037720685866938046058363771441713338899280662114389574714961552798647417110672546039288103983990108808328323117851079311218248433097855825619093113488827847644319420332267316708220614414931152172580047960711312730087866391709484813249318117506091611840382926385888517075703125785352893689986783637372123589397227772315788670237112108316983543238049649240363956824471190218643403457674882010742411553433418294915757232608136260718351504621709534005283452431451729048554756575061609490004561768726671558814909995793846789029762336236572309027284685185130497088036373767642461104478575502737807042201017837736877035038383620734301762416666700266435753800447908790798352997812185078391156194487346271846267362892160159174521650572559873216992949131586390227213931302553560063921213262474788128593562779627980493454900381139740148886148511561391312798601621639300817427373162937373771073340874694934669659814043880914926496598420864466730710491713170841316959509817324881577556529360138271912792273169776710574749632551184201799238049254270100378662708625406341246650228039044786307210025373187812512885134073164412819392269683191242096135145216002680493372012129604962203713710156857387268220208643226666217326089211898612594136040744217016755104117014844621809662465630644408099423088080476584634593812393303369100389572283172430209080875240719323756264826466523638669264598691850433218012159847549110155253301090980365416954637633365007165991950479016734876965651042517870917451731872702752694142366422690210525692359921173839111072274402867411733623746733708295691524200532096811590342933695798753608156282379488648654259757456245151676060391945075190931097153332177161085474895734914668891353665472441258969198622130230896406356230335660514720256230467072697673641074000469024148495476665927957270123159996955833658097405037941870892009205482077284163383281205969649653702797462365691591373525185488652169823463323449291399467662174939935411313418770402827511190206077092863129802418843763393464661285353965220646828052369578441653495210609554043187789526713102709107583555878561691748072839463500972298561846694144250296962310575442523242079509848860043551000765454106416751870225661905240834678169867618458687229102050896753093467658569002370413852657940208387628195722744043095737471136984256987005401812945610068718327793735187841797242894731337449756141821916617851227174091353525116207165129020159178005153795538341229293339689219542214962906271219003319779459100725737066561842784127748637051245391268054621952988467008142491966694851699720345258174110423079387189259588671652101731870800974799660868458031437950635232980123637183070755834841532525453079390026993935053768422270919587898102408772628922335272537000106449518379728857719022145982651168579044013377644903856811424953065260457507405677899925177181743149402803657191569591450608590477707777448512953253857769623176866338015189733584921820651038997673763409247073772033157309453044954994482490569399637036995516037427685285993966489591315876930502090999650977040823206832474000831612975862549060582444564678065185691338785115306123537526976705438385163712051011082065840271674541402633178065502655715307430116402738704189787328450070701822061306306739302886939772088250990228483009949063421034723401087187106994182924713699410595586421694106319801427249462423200956112352491507179904071943975776939790887664581254249191458116362457402108275117475366352075163099028616524501286081389272716694974463053006159643286352512865165597775416216318580745863583929923557177632217747399633887800052221659356800883026242360677512900682182655638613727131416279215072645913251158595047216109147864872180228974350127961276396163743967910673956630220142478771845009240997113016394911517530882482481523532955960755315858703526264336689042154424673755909390607969196117255026871243414716068264448639925287262037370690724239351888030565924726459721924998571898361521812308595891708631618264527584959584041207154071432396613456594326877642071452464808181937007946391893525020570673594664956176338788607726288149974303914871353678732371525248791061373544731753471710080118046566711907986240578034176319853249717892504681968732197387180845473111142201567995187781727033217255937911355209418963578137413708193730878782743724382881089938756525524782555426643976350447593670142601111645778418608748358178620914574641092614776981324655548580711608222039719471722981037430422097476638868487597366714143011288418069634848787786902988608171465418192948514433264172421967754002886712063584538045930082355783598621535333848764380972027597139109630105141578264553299330796273000271855453824851220706766483992794009748465401931266945621221242046630563505028959547038971178866481774521722841109261693063270530480643337393757830099537279623244920852596063511256669154549203946303111347108308503783450202902490924737886755516219585850963734133438159334091161781022067976050576222720808056883756640972411970406224130486421828644216483634365988321096984683334153570335045332103976913011418044067414860902140564658523443348118152452061206582027564658821821389576305214288047582442563857293819060586354757724233498250595039545624449094792449091817342059099821442737772985933162439383714064828762587911000682538134566273048613216339485827481516589512271936467122576198452801282258940344639888340508722142834621658885509517158748006792974797684751191958907243051529943651123936253197200263627757188334379555548189713000657512488797000166901809442797364382968668002940801417692711271470885567687134631138121210354177160018512068394467534496261527900190003020274208738965156306898714120684427404492223538861550145061792330118140377445579985600549078834686123954701141935606009768934523300541385188438523076949601274430030582109005324173136395964777428385824664862304000474114912052802209202196767146896161845693017105903330565974257379272913443103120534362166855809997621454559239339889165750109064211448509860658886911716860207569512282124475386862273004782250368598503391378491218411851609033820414351608571735079078698738327170565008640359588498990313986082857841673024678700258431226811144856947348325906308722871838243925045907288537572962585599857346599832921032542233252779669559923044365432648089131630427520562628568573658834639413374791379168483809595721196902278459490216614163085615498863486315925072971416425889857327310401936527479408723832160224151137510367010604258587309452898086061605122040166071997751736574353969769257591026207652850879973530588332150761443981890810814373115336700979435967017057116092256356015876923121159364526383298323087005371491584860053313286866331313740576876882651425495985963307374627472562959818623056918311689842163061900369457151440000872311475704415776788793947350243558607252198442697481923684679300852373014638857047882323599015493985000932197958739112263335955086721128006064929704061493773827132371231520741400440553490578847498118700263230420423293988497384441738234759283225736830895006278958749285055109629259647359846759549670992765283547771063845475498564395679329786495015887989380173989089282220625915854443528378691799487484281231303681056419776025793342648177641893926053111768006563694779079026115471194215322292120013521236262738312523090726434484626775963219548188394612471887269300863582655043517582870206140753731708276482236815017303291570289000699060357516344478879911673060365921485180262196568982143712687473216239402769645897178908990620882167404672529308770748941363497162789248168229959817707823401377875792626327451781067510310420306501165505609540303951148371743519492959464736322744119447548505864761315758277242904341961443611108785231446139004206183819669176013308036427912575865589817669368506368443008232154910689913723215961615865613038807718707940346650867012496392529625585324138473778525058428971111074770462182571501483919805733515394315542441159750291245994262536854703046645284895440761594776488657123096114431184522816675797211605864950718622566213542240313398213814746679713690240854598445571673610411137774598740913645474481563369221460724253017303771552520919427680827107936053337156494793865347865687618827396981675194351097350945380164129953626126423359912339745555532729958132994531026467827626137102390341712620002550756258659658710086737898125465640763096634806344902011695970156536233200998554718418786571140896542289421999235137413787451758860078692296558696422950621990776519668638323979159157805020540329441941984503149548926129824648002682776946334132404473694477623123462624974347405342418652952456617699199980177925606034191153422850954207958788933489479824238811147464110899981526551978921388873674598715897955497443692726478215917668923321192560807779146641284929643626574879124205501268794179251733442969015552963034456290977530960425468223521470677104710265775152381771462855071182668331334945017853737520167998184449069251049979744645859109356593614516484474459747289499371200755618965793845933297200651605314502825634606148455930447869482475868994054972325119890977719133748576158314224276980482097202647524410769021231626097279130070159789120033064113743724625984816533343899241008341296753779668970570681070264541500477082889744347136867695488912808993046794590844076518282271382802969492756464880381768960314050286570480638876615503274257044756109753622976842814368709210069322311047404252829181304617504189122673895801908532926799656653020383143104699208493798093318712564487219666938950203928649939080723293977199269331234377672417126013720985384422679687730519546691252195695276848739420862574007189184536578609556907546923032412162487338827252247442461175044208200032673876619453732109977326964223948330208417048196716777099798407195271519300588674579601840748700366023303875881351011274801971733185763913284886029014459021547087579223561624431848950290797359830953211496558296780838807733202639123467429936106971434090383667561841809292295065322135930943300278076393908276983515616216323832514580626684389502601406270735073214566508972345814116283577009349246546929066757659503290967588847993994988503413601254023737964492851075188460450997514332388562659723217818314964759155951509047719512930065577072665539444691747741446458507266011214000926737837187849331375712138125830475035719044936077123135674444883666114228207918541704794031239089619570125114155301651007625734460327517770778714646968042233608157834289201847779700228394013771083357478204282859525794990586910110170425903341219134207130061690911465101009416321608908329477006462086870677268268854295179869175732844889094233472976056756864276983519877907457980907344474623903499929287361681121726662620427768590148766262817268635089560861923229552056400783769100104840583803087711887465738987411367778778377844732220298990309861619512653513947091626922290432729846588190268374975664216962464327783311999900385580259101295631346353558861561575633576025888624490218107117895991699972623355588562606396348430983426299204580540271834097067566291007717150664633922648490164882178972896584372029336277683841775924746937643777479341498712852017430358400793950584092762008199063193050495520735626205199475731669216044988739242379056223578466631323149894849894570362368709484496685497714778288928103855946465216121452640048525000007667179678842499598423159263112675448256476239554694109805641852374438138616518682596301816636259818144807052044853774868130724183102253603272665911881905009643269122407326236275174215412817289336023847482267051310559398439491458009110652897829076038154114518776097275558095211585776544277318412506790958654104104285083773712477013376996914757249098926202219239902975418576426238984111033788574526332652720407049756779579914756959484883045507854268813662144086452735394448322483706195968576814755687231756244600245349460808279129112887984919346942777146664735771993312301345454441394627974373333107838803014835957625610849270226136064404481320278438778141677402127128051589731703416811082792419332907813660349230336190684159108449139947630917745156119647670035598780538488938586145629482780022428349718193458420684402553505103383148330508508885712299199559162049510208029101200565920178230197326117561698200681780636237638872875847179519918840169565654005215739566788983582701569570300881359889382928138199612362988975164970729644087511082859630760992494531558502154754997553232625765089626657230126253656351595756813905139980666367637489888142816603644554245724955836104829277201245074943315752750642664849968748114673658435611369241046604126534904726659891299353649961901211986513178027932882640448036834325668169188264231501406384666138287440906405205856311041333247498482527997749275172366676873633535866380999910778226270454734814725869603742154532468571349421744671730504145343467587545118833823623980384114606750337630400632919789315527646735102562765634939912387893080668873160969897618668948826692164294984773201054268051523227799520922094647579809760619654902946953829227148175996722375230699187842332084546420840269308392758122447170316154640148051781182494875670125633356433457850268362551371848277314289782505522919414573406115166077570564179574310512684690337404384197593604827245948417132841488854819979143692959806580206551059573618688640628322078105334967366121085855754706701670741038851624257035797710318432258180649292544753007830647261584894023410227212824674236813985754932277743686896898471211466935644876144629361483579388540089039166181363490038300222401349993415113629472106960502894276046856020644485220761998392177658995737325577216145058934458687866445201443431097212532916447310016867902349244257078136381307537846798869250588380018706909296763784334451818194275637985396929593459549492541409977070612831977940048840130575821571727634579757171207317706447081071631741235879094825885035716246969044142077044993449012053587301840551603085724422849996003549524300457043002749879202753604436243464009157726971121223419610284865701101209931005517372300992113934274851687307118235453511050588450024916141511282143320818475155546283044900485253820921387395632506237412359072273153842925296867041328196897356700690289653869292664410186926051985701426481441109687927390982811728387432228806540520172218431349770975170520620405114746293363079508472516711520692650957920754191688531460685224159584403093626590404540123209768206777557010217067136626537463097000438027188808900091740085278852971330040633785729038601089056780552606315575033983985596114728306355387354930325601221039565925167685112161997675963119015789779363234735557650203027699279486352090186777123699890746545714023660724767413824242579125175695835131831793753311845627222704762421879146389333664524564447509909447328987893037851167634768518508043893781614049280105026581913652649360179375091595024447830645385680959213397171073863897041448406520440168436489277306416898673725734908546611675787543000436433813979173297281146367231744760503380459783162419129501692959406295425423364716121172269211909675521513748067280381486742649871835022878007160163935331718434546621196696367508575925034025051491043513763743119498073805729511428164523604013482799864590944491042841664775229690097693619535266598998043091038443005165903947832820821323424877896355403290250625785392085016142603129017383898468543696999212075055299954425606842699730922930163457544947776415052593140068324620205847196419761074887753979065709390937284750156771043443124621440408947387545659874938553266765555236479935326721702111063310655190444171420159212679969851863634872100318021812044262998218265827109689093734895774586973359859271444265885227683389869351469183968164360810959792948488462786110313718600460823526191782422267891757615819209825681201357165798976690625410564981529026463700599269221019158143277535668724709564439970393428807589933277747996180227408735001487439618264331083082947161047052001434225217437664901525286386600419204575699306886094002114890223028532924653593043155682132124696594071588605379387912191563118224363538687955402468915434793897191530879203121599280633717776005909775340136708935216163458897766496859320934503498908851194808698032179882069348162851396023555291259172711035271110694173755217931587003253524685823224500711049885016711221958862575207927407040758022812598540489205236313458976421632568508950769117175126393825619664786134377072167579233425772214446196545247132829770820505734927786867166255627666162694082024412046085300863586173987547634436141804516787093627103329880259889404882231356161726145751635400877359862848144632221395914104041648038014264332793852602940957420234735916297050565017185690906296208191584049769416314114990202933199459630882984262258970807531308388274838457139675294440999098186643849248065116603470257151393592245896938632548330790497053021265366809074861314044583075330526928136490429637426968764858108827388569357019526849060650187925273746912110112696941788855972636650333408696763406818227722882320320858335451273024529139450635433125767639621781017988040556079860058712789129557987638357362435531534268400891352284696244181086705778684003731855485850301089547007248109362286828228414439325713494454028753960885197543920457474016607197554059701089947592406121400827628539223149305098897862984737391171723106958968607839959571239252277488007214911999570426457714257117737734961600570950092915059191253264600923164502595070383131902215279787794146818590621735888998551568338579064993575217829520328175031097538957982407131269833360720585841378520337420640291395429980784182680142820253585544910101999325244600544561398254532644444251338076303231844265833551540860457599520155210828079241668859341870722681192990837231161422950157931141508513542312187516837249057280300388231753383521681849800298215180979810180171532778669292549310610890277541266293178783894836739306518851872326387632639257559205761948341119828570659849902377801752856137449363556444619715271210321927039427670002095039158655199126817286541474953496256965762318926334563003268634025208470462502513522097285260199348244959827881745112702634944124421191178048044321593979756266331694656792957001948405091380221464620412483356422674607544541762886278094117655523525332020897112293000325423783961544644228598678719390244271511518533073877523303476707148482741567951742571370426645458740463965586042584239244467726750665064830674280024520636131642698755363124878819937885236694148704561047359974986498367123458766504801183996974237658424329639559455134642583812982061813345488555601142544846906141939527270617709428576580366454282862576868777830415765765169281431689351484085126576566007438077212392720361291136742949933876645797988120719540531240705311029896588797464703883967433274534978802037246280753817103492801984189264877559711602410841754076216443763547476417874920361306125856625022331232251021780925878393298114149016572939146822008212203250264684644982008432641393646093579898403048677968159008399164978872553964197640778125467457800224254792950298784545677453394750648678116030873485979985859863101772513612550786225931131930692794649872099712044112178518200974798163234908805574065762607371207313893225571431001557751708624954051496134306629887234848435771288414471510836479822283061047238310148542426501052170116958898391465819015854356254194488621978242412940959176477504518451761276769080495545247969958986775563059098461658894326336877991318142386123787055868680544524320385283486125086323317794483617178090013207678853910998341440967972280056720027211214625406473809397255931199594163327727623054056728615914952766673104527391045795475461623349602990972463900882639692339076907498299416142705396589581605588047610052480772753866223854882741703805175064610957526706696550922741480693371591473490320886263157851652781719593510970013399366146136281719990474211099607190152445666712110834119898599852910104968151202097491308591035564676539113164451696322281809000494018972101309602072447349825969917565798463751111634140776756269516045472469142629737362024669163694578296043925774279759445050219493625845049341358484614225849525216515761408231108559448295609725339635812207143793869634177467199316279449062742266343295087482776676947095531762494340214503976206219588848601495650392845825844836465358087757227132214536955619524707977983795931701597119559108565055892418622283444391500424555569878943563200462175239770747600790320038664373834820764151234575795462460794392039380257749168153496703701090860117997556625413472499498435666492070235167899196278664897273859253314255968005638495977919768752479088914445632384803905002709203621056130354372589368424603445884330933737896287252745118704156893692203741157324469562170557471106017780447778007238171648380545491716354010710535122456119071802839019492918118278629565493278031640993897482658997493571526154923084822992704809917015397400442020877452642204162366749844003494443505744054763445174827101701944128146747019300230248575784577101644043376288660938224033594121468834180812168761813670810121056442990629407844641092888279894392177635373272080966055933174803459913317277377014673305716170211778185045823672918139172874323228782892935068597670975773386366459470592585173359978405630064098185474211551981790150176100554651408556960338251732591507644548345527855562038503426296354813419945635118433520503942587300761919249226265964919655969479853970614106761542528485999495838030679613415388008545284062960801934982014749204334277929207644613289119068898859655466226110007268246403312321430127593882458313736732698617549849283637610499935031123809661222224403015281347574519427319897094840794113881046215009750702691356345170632443380009423482382858157020979575393240693216052481682637689317111622907893558704395290014812451611250491174801752893333981443087591711957345874998909079008101072610865803934077400443388234209556956808245285426657113631865481960290292115730070591020591718992464176757746730683520603860556383364944065496959312871849858912002882376741734724643637838788761920518681698951634090757016846506071713868802440604979133286465539376755443347295801191135441227982711575707372617406053662988589778082105057490991997937597489622013485141121844194135089634822979778096278983282080274524645749872821715507150472686339240309703028341457951681656667626779441041393723567751446940805021210346890401835739511559493404015708867690796791565676017351272059094080545245650908849719764278866489891249875838738670000151438849325945747847245217782135948065229141928889484251611218611037670644146849527143860858539583520716001420304932440265948048598698213474871516932834193924158489412861191995868767063036375745703327544334776329974848900277203649956613855800170350690640108484199493582183269150869543659054307399063910302653343424565076178820147421232362151895861309333832820524168439630767773164957678323429793018825220905775174213298609051227250628855204328651960661825800643679699547962728923869410979224897115314457281537202662025367585964647996227217788724132386297431954139986819823448226652667219732395745013170209306328296611561131516324002068084431370391504629540925131829063323782544655352981537058314061783152951177356230302875236306552829409610773580371296399908187065142923025733189005184284133839962167949187903344035380028417585066904173535042091851821551530981187549240774289092441373994511545213906657733322743395419860200689492701544269675384568018386672845491567847854108995119782565769413248156999567572883528737160635536509546414311504513600268662415744928480072016884314570672023488973225372643104574639493965272003297342541862456631570175186891914327706845527054625225283036626361529783243045357056979695918597721298723700705871166132252151172586738038496250471409325694679059594325458694434934723004311036856067443690060870368797515427314652624592825725644484171420439212181152634070814121892292270148135246228086707286149280616948087239267996336304412293822641366126056116334293057617439313631947853403089331672207835098460083764709156991713986265458462925961498542337368468732654499084853088142472306580295392936954743325134239324164480406371323973639263883373701837634236487311430959040715588162511888256474951793075116498689520203087893995909032843846798707461591085767991542306149137504290291508074320355617110750196197547577890343080549389904727172784171215340064688827013424557142501393417418709122515024157909159333736821220122783552726209019380376828305625842215496374252118376125908524647531873949786742753938422979094743232380542260541726441465570847170520468938453256216300071897070996803011839583324359079233984149586879278417904130782145281114527310981268244313819136440637092950986608568370373070934921490680697933883229607989932154055858368365724435719705254961012760253650015210496036257528070388687120739715754063057392022110485389919376794728263439783474236610813733905597358053482169713433135864832091859665661902942592121742353857139750345448485464861990196868423406365772802853532774412864577877754595411894849642441847103473531111789196114314088412583372168058782393456528749089135393190998006328239729557428424978905279293293524347261593939142263480446109106525696112740632994487194343693480021791127059904652193893501655737247835341477984185910862789179975190773568061176064658660171695786863719376845057768489221501804900043373717501190861962675059870363422957264893090099170320747901362242406802521416117384902964366250238881569355265083343227018774466130227816544896041768297875515629506007228004958763134272244355482334785348972956799643440679736687823618142102260225416576636579428121045120408514840795500331090518579428781261512874799996912758902146330613327963454319684761559699438111643213193165042866270492351033257013826826989563827394480704486552355475381981751241401031612870218944499018960995644593915067508698544602176281879383411512213826976891813560068063057902629340603968348603971809738535949261949387636903220299478652177363433721778070813504523010862588185142095731897435235316347753077952465418493426987015440746753838199450740442640288691344439471116570074787853904036727033368213419316559746029224508114344821895827817800422471108752304493303941826726537258774603884572729231050142606656475861349990302650510167621185584973120415268024264569162636395746830531660455337122398699337150858090769654055314181366620442420212620409920880541774589238081263602963086588048739369735045036520371707885419338604170124787181264984323907479990008594662295522360142041435412919805387616389775238367197560924770165966381512261775270971139896164749058222228797126555509829536302917457265377971086368125085605982125773671060792089911548785082122270634996348795889795684678123385491519717167252763962396793908828274431017760718531940829617305700921813164568007820138234131595523185387217899039337172289732636446013917022763596152024504487656877697311339015453943924140669221074873895612020100662509136569304834754722173117792253198635784323804231000779748924175282650463048815855839571241436641195246848476748848265800306959610281221438891289420567026542436983869419266172092498030625584218637866863999002267139133043628817069520942929704785754070494952344504254924563343924964114369546666301953479879125375999538111122393686603158563813089450681785248102597236826160842143708078334816621767720630706514294488483635295025970993658763775194074741930443456034542683343644337250175062000321680796782351462929634784931854039528328752487201677977619018266418691332455339084976799778006356374290112527074535384037764154250287552747659152292806428369331011805202976300996857915200151043529996761023747690144808361052075179309418995399143627781608350993381335558360115906708174591428706653890639757219403206347096229003375300108220814042243824126460966864322437218658069725018360869870028677322928478406004374752795491943295614842309621711288424689974035213118252505299947866355016466895192336608982163486853817119478397600644181840470432228892105888793781554358073452227843974340035594172464391558563906613894086438872168814201339642150547110884951874247022487925422378104935839589622544540142700058744377160569045676256936016229954990484378741428490025890533778805138183146023659654745808781538682721789756428043411006977192695916832340228521716443943957891125176037213422937272947141654193131235578997768151594476247094812412411832335579555866601803663506738103477412272535075485116151182646075465441485758515289522681019871028632599089588659799827719263545515549964922802531979306316339917617280114671183989878478880317257328671916171876836798710700714506904322372808498174199146689991955885769696392757960276420390883010821249523450966239605105336464476738738270354569302252605183100204740313744989209211961287472940918468683215835448846408083089073941888881993685480457178967303316499655466744840123375963057339030868261728045401824477609478522393306120409945461753500108281058848012928903452021719307752077638151768821392916332010164223722662477230526363465350942930808205602384785419435018179121414093018829274230027287345846144465849927800352417528468667454773904308855423821422903571175880116182852271060577794286803277116990869957858833258830344451752105517414644547847191435836048311614921052369865801575105033795135171886631347115539310096293284415034142801776696762483793250706515551830869070342477956953044420253464487274149756810723824728677869424794496081520167001279712898278506426244824825892981410498538129812139204242320148662722777352088859877392294387548812358915262777853758023511143326884137506415337871775250148477148862259800575350049633471915024690284504404998636051129564000355422334901604727426242133170014004688148033393841988588578972290785148039128996401911433025068898044053281537006265589997698482620077212217155238351413617599401609405825914523540848320688691686394943505731779513014715866182142052667825986877732740042539466536527366182578425034105343362588834250385221735428457734554012224809169489755263195517437469823087157037475501210655766886161089113890221758151698091452963729449500825432011245177689044518513024627178748273498192396420684103918607534510941889991833347998002926131352159244147181896129474732606874217894567666066808982637167867784010581893261672487947234041342725720497812682244424300898633182436896985759151082091563002438701797098924692727760150261378894583552334771253627936788464771230279504457565448817250433290949578417371691398239587819420184505728243751958019593095366350595932102038012039406457242517578609569731167231668093397023078792496522501166940604069710153340982163972856261210267878980679476526635437807965288640929996143764778037718055909271065398120382151080856501257951490429665812895131391029159142328756852819403650145297608487934698214693421752329077232166469189216206202354261295753260195183102313578814113413923076191869052143099194261833698366617339932463598668405838917743553416501435118320891144088529750600798014308195035091147582618890890647722880841077299290367886993766874491280390842745733668867984003738120453200033988103215080975007774141003849705684446786497571862466631309879328114403388655613745727977771518988462218124403730611880048090050370998486969393797394357579310334380487554209707931363097382733847463982396243129649729964600298630550258066836209944985600830499959961314154251055250516959023475194456587097151827704771215542218686725815728178547923344855942403111378933242210211758018484108522188820850113914930542366541725352454658053473458982636208656369626814740738688156209431589553460558887291602838910239706335365979625488897802593410815727090656892008447498808179613634912298474701646858645516548812404514727380670681896784168436956418071772124033792447524659563911650627379959659846267510066238673361264218193356773694142008123259851154798332344484835145028359837888674806144613343093190054636033563867789633644907660119060370468772937989235304154151624675809194535475383958872500777896796385571894484293223867911076779488069711622268769469541603236459350630649548597161881790230748287090314897572799345539968707618152386723281506721924307588616173133558061447652131223114206974953152456128410367304079549741369479729007112673838678864403472778662089850185995470478262616736907348148798722090654852081626271735585524609692867681320415741003603459731970559141803731019878606209196482199275660882586073913881861219653733681253971282298687390741857208903009327278821311931971360606548207502579511157012737145649575490676805540590030409263384669144168242834654382061327771130724007573339197628617768704367458467625108872278106734315060524251173968178589188462752572924139409899334521631488779661261984736265185008901850060196376640457515517801723481814329048487122778319820326934315074821145273457766808801403678239633815108492799142798055369333602094218714352570993149380322464705381509581536754534435313645606963500524118420918734561388883365854541383318867180230073974093604766027195352634848792426878179428322752439754071617253657314785254467663811938286189225262323905952297364495664367123746239937958571272183145122480686258368246687226154809611716485430712866606512093477337200959797235042952428386420982182845823504463446773142857847606074233088803840794003452453251164060786389952716735778330481845996574395205148558449459733944628725659312196678112536226447783092327930968330346437399389663876380244789484809103694342511266223538273600819927768992826322752523975470324121567939300494346880912967588931137948702108196061605727683888299032085864531430011890637723824345109578061426885729591816255212981661909457893734848227779835070520258121122800150411695741732427240572956186607963776055155951470589045593594560459484798791283217574864695710778480806875890266252118975396151533199141500643227736359849152570132250155012611586293239843973817282885522800750716945368761279451574340035857347889792866060165156457983081843342543953510590805222225055250136778491302192684715654458641751100909070485242210986986346698951891826845229136572896956361118817903544133038482399563392733256483331790184529204902797384061900917944668478424248065898285768079715521709226136239293398112031659557740822633942684247070237701474165017664427965112392112405809509310623443410706414697874544863249297756607200265598007083527787378054314528407537576320833434589505617724390686102846423608646481137237866970755376273882996046273845354222111317257073092934521541920362014638964463503103997201550974161252560347742518087627756183391229069254942402460736923793844048186647899377934010649369294008312205350103061078154704031237790680514613113463971605653280695809102486459770895711378072435627840708883006055578458373482789289078653043647766310715154770301266810164161917517517833624531234067722890594863909949591976882584164709672279511110666607944020800989132310410724663555598010969770383413334337281313526498446823419567750501672291540292677519522643315867265379995884379568987838930079748969185167942291314483417486597238017946155792037253922816247518838809984202480190176517863610114594617924973033207611590695821391834762018644890598317426905829931186419789906881169710815940032116390433338514452879880191506823450496325907886523867744979960238588962741893900073310680511394734268622575978310047838164856196065482183697810841427511919932084910553879505539028882221383173515898814629620451868762307522528614781241837999898730354474166705639183366664898531034673450698837920946504852324986535185685484879226961276018179614821179844942559650550538767237642697894175729336511450335329492559552298816494893655735616479649172508869622212846015110957949215864641443640121170609515857250486534990286390079652056623360651266415462720594398404495322356975042613126917018434800188094234556360551597150618191055992054053671728457868179206853129283914010517081224085269824916546359469894253529891526776279335876967286132875292857358601859670265437868895679121439544793823116809049530700766171773641683460760160281166447881263165095621535966849842399815125696956228402591598242018983093215286787693085743792963346360152934436550349052780675944008099059437064107086196565971061753669585512217361056922838695613923758917420558891628705341102611682800000454689747335794908297964528667002967429045575160755308009442211933744396993258328031353582815369031427584321007504220161717235965001792564306387465771740303492385995242875137603901295930164516002363061195629012370489078555522762953999811990503679719882728361350334169048462280711274420482242461737349182136491027261540359113221803937311477413095371418741369108522969157095058296268691193043050630069061837701396051083679211989343976945574925753801758778831552476381898510661838807921910316555247292358983476526462825947487568746283674535229097713518453279824434156657310438723569470686511124512532793903992007936512507214141333733738143422516831311024923905957075089556249489801794333799472246097856979277784014048591347496697218871907601253165675013967077823669807929127122477888941170271028517513698099987442061137599382335424261294543339171516106207863336966025074581712924854695224014019208002655452938603612056683777871740423916630420792858980475171511176099020239831634810330313592750835912880706020309639394506594340365980887562769476719851747464654800379604898091980353544767467735094812037937602119535336920492264249936345489483411727532136586518549710424404440820978660358564738111105314950470320166598829620987182309320078143060316035955498982823239238099078127170348104509171087591928715105545878045460695121685673446175359557697984378417434085223271946390214033154727568627982428893499241110808914849103955315201740749329886988730168475577317599074000434771832505299056746642011644845161294240708157268746013288883461884195628668586969838605846837245983557782752583026229775109586998358631155293985131529120991172469114116419451363657163327563955976683008371132936975951195535363048326337176105178707793566141892793010117113621885680652534329668810799803737703986459677112763329270592251774757181570718939840381967896934066921359639942334489686507322427005778754117543834965897925150691367235391053248226122109496852260785688550508033738070240201163788963907303244960964124753006731749907854293290122055664833424603991734903085462518356136358105728042376717520407197675190973719366555581523202312614042524607293858864343539159036995264524488659227236492219917793060194605174509286745198756572550574278871548646049168376951518596117621340226838784742940740047793217860385367686582409476529206997800324780258440811894260962447521302816736842546084900237888694936959255625180559107279675882678604933174021942924585892191091815537799037223759294694893733041557821379143472063943532635038907451641998699671891664716916043174694026489074891183110641482853533429680554099043000793555450904655832924179119604303890390863180911383252213243486570872177043179366512997721822972612317612102259458213568412190333467004585267147101329409930230548881977226702078593803190423690662362332534285741028272163598279932627757944778258156277710213264589882204878241801652318653142896417520233285228633920851877508476624736575795816730207505254317648559659477440827405929126756085157052086085607132502619602957615562876350703914252808409661539831207069288582164048832528109135127949092862231081919816648903179042424227296811095293760618245368037040763037290682763264073511643387400192689100445213708522046246483345253023002107098841039110858440993155729748224886158532880769013272486322288621210373488901290567346270013773077326705909606744868338447484657744136879994455399440112843648614494430985735529648894893743262777131756025373323494055455162014670192721683366311022656200951379933788284308838517374349197820193088056585410728205595235755162949971959912925844995192689525086258146489967169319622869850707557254243878984465407501581387458965043626935576923591117937826358828966659409314939994763454925522900740941142493670396734375643911491811726626934069975245500153525103949473344227736616396548869498015559173063180806940445568739067109035806957395861337466996910100472315818947951055437884015919437533673856690218838837258971424760379124769518178009929735754716954739374438111578297886469362787952482704568134411141610468176882349036933156068361793626689907110753469143537341701351968840236219843478358173657521812202140248923075976184389746180971253068411703875441368618689502335635585372889265073424399033257806925297310338245909217099654557915114082654162352577410203982968529683573282044778554560422383136344468404566989186727654884072123380293350343580621170133616382462031962432796711418530683741500347529798787638204701100278718172920478767502050988042969480653791680269052652539125336765571981243797755202481283579030305907588941907711894104090763428720633082059846241460274506333870964498695756281208030232270624229559294685818032315757026310591434527546248956994021903057611603047327781080284877993569105896151847676699446735403185909328037612173392336463000189679277967959487493331138635545807107606926929050414468184099939080465164663523620005419026119005581508605826975072537943151016442364737548775139236911989737430136914375742626431329019528669899068037994511813801741866407307195814263268715047246800994556760785162716089051084294005572858151397128520289614368360195832096245265442023232319760745969235244910358610008341458321237321429939860865740949429320263314890244797877064422264545143698121232479718877431999559292961865638405185182097784804748252001173268603986408144973335378928811610421256899011860099836439276610928809749063849677422085053716941077912155399501520504160433189377851306982771221423855143585760774834840641959005269880752359773503956075172662951828120509202338723572187544052057548241238709619569263844456934488634719120610594241421708143959427077228850348246455403937612581006824734867179318473918890674243385989274201081735155241260443125664917001914287975476023503012869124788046250483574456747972846049836688270421483056410631899629611970562786843593104213833263256941831651613984672033125068035866353460322052427590246834706688928349812487638175032547196125534909194991222883520258495083596899387835699672879089070792636074946438403856614378868359586364387008200706337018010235137912467664496467981498165743050203678297476253695341757875586493033599066884727160941206755867667364954260418514719229475291543894129222072489084458980727667032162770336126007613089600510381368726909355086443572135307727077745901399244323689639849487510922708405001396195574556376885974170947359022635066337978775981711613825671275712007269332314142997214148471177048485122856931748195342678138298039681046747867079541077407404488280582886000132411227608215536340797894885736721652995568764047444330229189360887086209626947360898430660393729812062302878552293927103012973468350881923455196334171510344712177336615714960234828025960796850917293049594727206564956726261395702530414945040500022186736674013350802981409735644178612802557717685997819522824556546573473869985349961384809330907265933664872150690288463029608966024267933506456135024929340033902354772922782093346556366756232560257732310568092548708907151818045942637215669312082409898543891673663724957973438162084029219879749264202905823127773646164874815893035474808042775328203350512033934409427019408234184070807270459056158516532186755266803709262303030336591049191063219799059133894307150417956753205793217161482129453237312437967077889149650974030673995370973773874089407087331075637860480914359564187572967527382402090697785679822396861115456220418009810226452268801454380386691579157554167633786050024546917390562625979924942872381932967282783777667205142546744512768175573023124681117598567566248153710490170016439299479626682475873871498339645366029836702023105986420830551139515587602169745649750535043405461725525129109901757094567142541351605928100649450593752842428735241932594593292884760568160732949541600204371247418589843068633395004645203969557890804200741511469485415340797259151050826376664944679033104173355175175645469418495304715218329271605192317791601912213904734483664839908948977998316513282071742016714300023175675090585257900368774210467225851150476741993171768947866558074940762923057340682234908398742412781305339497285165648981786930162826403617619959445502841910718515127229688976667077679528482258843431848036774238231585084773399762851858655819723282687795367316028565274140759588991487742060778558117585875215198589613344777614195260863202699384361733864478233991392082743142918471392657987394090306751117994424411139473717523131082558099323865527945968466442870271640763309356540609098536231034265408945217135409608092406089371024185139145972337523487823311943743473833796475669464272944509144252966668590807906416729580957103170400753326338916877143102840475765438818293473820096485296501395986879747979940257440415554129555670180329798663202421590816266624654056113004977716808915479666003833718295971211060782217421986889193956839075523959340045951581657631930445766326791884206456464983851718261966066555011216287158398047108007864045578441069500563973424603177966214143980249592394428612689508942281366061372347302047660253146398253460518283433804689185188036005537244017880343463775909469809606049198167330962507397179764048891489995669921432503760475943130242685695270945230705852936800900164433667126538246272749224229604193262287902102904372868067310990413829724002053296314870727420682196260167310141036990858420393605483465974645960632865700662461390077413066288363545988526887297936740765613957041412959343110278792419528041868138234341503265882429529025520312246421660369172604704501974762265454584401657945845530798425333178413498547122124930268637816443032987821195825610096675472025959128997304639435405359690877422872146390474514320524411052763799810074319295237327795285008504322886112359114663184561400246020176449851507923569200292861617968077028779047934865832993797879121664101906945636757739880002685150581293662955424196950518218198741784143808346368522889423037118888882864066081010279824188887689258850136178720171625448302050141840018905763496965168469497646181048784324448927587252777153799767010881337184432527175850703458552382119106773643385721769178359195655816364806806727363469201942859886432765417387130063535479242198517608095846465983821269788902309907296335192858287315826211952042269250662046547881694613027730404127038657115260728171600379840757066418896767751562471714371506183006411544245947724039253979532408941358082500693327370615392629641481259329291097639708761365917030512721229269537850114578186125403201246431705260286135552283001948065556396628726754116357196760880221340527442769936293507398346565047248383881688757738123416190159850569779163070323001503408486303671815092834843461693879542759389965810870937222228625553132582281190984390671939425618616249021960997804945872937517617786867802101118884749308523191261809445160251571970406477690840642295367543606987037108449799042103544895661470435149793664534315042902127061210594536386598435246993535651245955300391482426890572224696443681163777606625614202031360727942116819210029365312864160085094743057851094596899409971796603947776432892978481292342041706068007373871068863249248199801992377645297335787722622397376913074837759709840156887554757141668906739307954281181328328949763107989141939128411054004476076472838114000341728980665143394943570900762689380321396961561061197586405234532376193055558325645145502025176080041961763549482820655595355386203082210924740889568672469550097095032264740870571811578396725751515372143373877909681066688528946531506836963596521517162339918094789364805189481856944634092858686488312022262560718654040417597014997170675767059846059640968413250829831447461111529209048600372472127605665355811827087181699146197765699519259920729743820213470826642782812776591868125213671591013635862764509442753096305050835815399153378544267722754958687583873358720892021942650518439754218978366621705386114823099042427488768410578521223936254596092940272434240934559385617480255096259443027252471792281632899678632522148810482809654166522161479969900904169597178821843538415435343951669316015827050786239123159999751015023403437606264307853655544963956072638296036720387620166513190472846903339902967811859061512195797855642464406391330817783144987270932790003336973930819667314867949853775759953622038949843136990458299184676727576385639045291475452576197870381484658449480394119522204241719738238023396612788806738295434655694309888962106696662656243634691606561824599318038854047836076541884312637805894851485865920869612608184393492337201047676984984093359488968423058520848241628678511088132700660250310558303364628199457208749681541222480026537037560322604713856982519303462804771740288371276108953288913552907951125066000842308238824613031527279916586643085862367420320628232948041524129583948797799859741935041344262445233617670370338875843561598424075272348636931092081956992751655747405193612964662780940224232558031201519638804768365285771221117313319567324183699693373571146224077283136996741561974794882283855554659530595697307081190275212393854874523154269114427110105790101986942785532963120987239593205487710087732039084216998395564968320947105774408089357424299658083742362852005431021596292077996138545418536171529368147299870226540656780692682195550123968807265396646638690228919486627275493579090452523097129861090757631642394034927838636681201886932834769411623170525563694936672246304291641051380333599246856226983235229463727634888061724476920552727821042797486123272146093171768418701931401696099179451437208472175844126045703304254461499720000105254339075032440554695156103110441635229357642420311880284160291129608629739823916726861961792512385000291118535002904545412913092155886048068129389563537272847390364433106584505221246772028163599538854061284693061667088560417458830903044713508255765953268327687628233913985030721850720812135847039231671758585166789607194281585857956084624162479670327921978838972482664713961918789562178187168470878555875723574483632963690461838417378410565736800170458240256921423222087993098761399783870867257342783226104634295321950885604618496858375548301192635085692688615076278135730223896515047616492447721602865620754367568521150765146504283453582720655724678181643848553125765817979884006594922103827795502219757846775050504831385048995344719643685486278977243213388854036254843363721372412730731304637967038868445165839070413358178018888834400955194376598206212124473900186680269104449680356260175883300492781964818916619492955036213689659421024890353299175567987747030047452225648215732005022609216354839631860979759340919031981699090331675182729218622634204685119527071651621441919482247368299361318421853337333660579153986661926308307357814917900279040227739295483632818361354182489412942092861976985952987674754842899098424997540053931716452610780526241956172028351400766492472928096006992876416691223740058207269463027230935181785346742573538370398598350470944011767291332874096637377599694767106833760011617200458271513040967332296711703012236940600340367257465892225312037885177021136858349768534659852647526900645077649931375884045365596442964163207419670463047506272736198253870020199900515660125408899045061831185755794486317125822332573630003136355863514869339081241146625092855230058036801113882427057474207883683357484268315177030824739172525937019021177194582555306456910719357578072367838448899300256799380402603854855019886318927410067659531342884100581440470773287023329609333793736595971754872378145577727060556152807889721021260663924626587642828086404261349601024924002038631727610449563864484960551278835905011829280634024675278234194080427130775756259910608860068652463868470666158598564450928077600291303396746949553280673230918678879836190691434095834403658334824233407758476767241704859201540930156127846831300921320408315606394710866737103497156068103643530952584944868695627774016278001720861431028715464090481139651200783577285205345606597816585399650164318347005861783438029811128314794333644489586227492473377857939401829174146368629684493289520443799545473206310410759213240796660449496134556558879444276940804192275360854719136325707236431402494566460332955667182836572769523516518982903504214323499076781551344580824017795502828391270074183870273012543714200681709478022633541426192906107844492515413194023964216327505461615542756331686815154856416608178038385252373862612568468505398777294482105064722397330838869954229328222481535508147550382581380211158092084184406267924862336099615938252555344642153729284075789579792176131206399513401626325301547995581437013105852947035345927069009637616419947010703607022365043765916471433759127873068885285310134812945110037154168021329337681753084447989456293214709150148689105496911583011091308085909340769303775572845978512119104330965430709985584663320235765605327725009361601440894624392402317667458540028282790938803246475005214181024350078255633311665602854649855869714994491046163499013890357648284896036379941362540073494402805780246740888532812794873074296288479998454548411735254137649628667786989789936549623502178095004954923206222600231473285558611177499329902636933525993405522880591314536089966039712953721821154982546376667189951386682846162229731023222089835099857923273135729678242282514230374211600156397308821538533312236260696951347336174596636834907812474229457791606673058171201651437658088963021401233832894836542649398903889225120453608285958804514943526976402253946837065046389500755662661837292640170264631376197642873773189361210390150842867543213483775257981329752072501720229557360976383877066505442645419706165916111722110489493573326488392964253696469407064925270422938248965473501808564204269196815483334156487902412375114380071507349735582202019359659220128413282171759138905366163811873793719875083694708491968285631939769420651362326739166982543838512855924838750737854339300206803331138234141657792383764956999944336648012487664821110496048811515448322245090536028812523067617649685086639932058578245480638784992547866328580648283023620629625528316289052343181502931606409355720136468026834186480648776849487736101565328405806257628447991244797950459625624788673022491640908178035486387860121023161941904668018114638497472018420722912183016928391657863241244546500354325617714470672460536902791764113548575598936933393394661121587760179160438505551658449335522615343577376458323461426452135429493151331795866219997098460582959390127727046769118482782224327143721910753327872516714099580877496698996815234140966564302883163400164696639375329691560860161907421201810659589996886504305103498059999892295695376067739176449498669082379768793345876894400256642545152908147377121380086495282739793168547658165394844631745277246041818740469718021018498281934931900138077570997851475793556725197966185116753427306566008707011047990958931105896110121430967306010846425149720484934078232067638252959438552898972723734271564247453732655852576324742325749418524488170825008449441749274318978431347396991048264910938549736391808959762297215057961471020230638750492302387168206283711371834882618805728226144638645787490244636106582908904299820259099303960922664016641796197610322790172634801715989205669590473575298890519497564049200235707106788177758322729375429729861376430454927415582048849236592206895199824231713023507814456093335638985225288300538732856015854189321739909638160791892262042598690030097833431320210889699502662387313004348849084249224691112442636022220314653171468079587881310128360821011414804918929694063890528756789012046901381014134157817174473274528767575797492415378643671616254956330357324617388641664174667433863672449305477441754616447232454748863915745974912583555189383720088647807495286651629518315353262129834457003726162714538442443823307276518022027815919195549164499626057549283245919921039831947652083575844862338771751810864482572499550035003519119247459156783253164237656409524427172035330231499403340167817817335910869466369971321836892752642267219260794936161831108354930167254632727182536843749225148398747468126741891630249711965137632095359302737124423280560695675504901917275977610418217189922470071067487496989819116334636772953460841408406953862675809231643091935901489477170423794611925400230353273580052208463146075237029096782899115110068050533638155672847017846711129722572561061021743147834567473878745347529270163200588262381818247721653356726097045206088958072260656671744955405412740693126436926586027824793832312857994901030240618031124055614616111656052076657038296210289336843418934031231994180419996143643568555459876947809119111090130453280397504071538502391009308116124939906716298086186285038887053457555757478842371794469094364068267817170462805929676595811340755731393983434102697853523213438192252043960119987816894544346665416968191190297567141446173063279750457949449255873265081064515490088378093889195318173687607547872016136767703054864309239888140409041591550261144986639599114989936761531001165505658883169609546996688801070901059473787664951279472529761445773316389544016303322740132745817863310395657327495059303244319778944515244729429769815723264853022758698915234734793036765554825990180449000413235038350445311981322260480029298078326424197154564228661831556414255745071680787456426775287488864926911518135765537062284909343822872138635936279031297992486706693424872461330234100849604931308689776996234143338156775102461853478309318752656379276932371478695713871717619454532729719590895359073467560771082342431096624664257282200211261704420183903038463608931751812274346818302587532531702450004225864282209618323693719951121984230427498036387578967895642281020426395829479967887855201775081647766728134502160304652929609820786714361726160768585440023447449811750580639043405614387339750628899355364539682413928166223125738702985610810651155506466313745652285171513716070478402932058834368300372706599910093848452159742083355356344912081920024992199282813869336013858710999057642876174333321269124242188029051834473633945136893916247311234037826128683273661496348881010516266765906426571313731887609864309792177085346467610715272150594296152281666798513886081909206828753032066265179265211408025777861926092265134971454897241459311982709398174004336711998690041085229417146038354840792945468123137220672173948502254750476728651076826633129396373154604192591969980813704810614886902785602887567805639022914714974865494003939376839576603096762601183782233885291565677846103043866868516150366730036194048026785248129305399515493287661577302336585289145419518236360357262151861871216761954887840181702703372299642402013618523686646246681629522693441485248051747025899070943367799876492859105673636206854261005772704572864493991716597863380407240203409065478546563144753020433991692538700848636829076558885649806571741021251414666369630982303428800794930255882956052555403624596881826788450582065595206283080552074127868340194253620424455965859585527318077620068626684428977056032607509112911551203370800542949385907204610047993361666221643555941449224818907661872804056083052490069075028268905251429170158750860374894679703401111990837827261721993334561552489881609630398070163685710250349800662384233182176969205950548782012633071133359571771020554688497400592662722948897451591825643034147341583843812192616125912161711561894780140893904763086822606916583262833001529829204276125840339385716821601767372144051673602416069690636440470353523445780345597546434407638372570111481317449964025416973467437541848366198400121959843979579262196436126011541228715322363977097929317239362740172035808986098251543707127151987525970514848441783565005559803720677691235762098362178334202950628469737193179673539927723664734279982203173911345442438693599262433828291972541501364971938071701563696018327528209010530817277405881653696979495707080128451329510196743441224887368512807817231322311745552183820954531814304191047382415611223631338741912576410675326824585423755914274082190441472081441052599917103134286103756384949205043755583328756386791926892579784177342407781046062340516438545467982716527718257624385609607568668847447090876653656066664927930300587962019610412392232810368109051100455166155702574426556856633243927513612461897589636118543973801284816632886608469225605879160894054909022239797424524806719666218733086987831842103358296172461902955359505413576084192688513578783196567009733227952107674541245272966290796812840654371565683957971683238238261124716651948006844452303198043714972477725703136992537683996102084860859260075773087346031985231996353337744633698107382302602774006359121250832224932719315092538555250337923770835420180341155271213748583892473808841272783789165833583515952872756087241948873090802536663157198074425765825824648661457131970512058029339351289311955284309939466214852555020259645436974663482375583222072363772789170504366808480713525947906970145751376395017296058870766549179485745448045023977674702058641310278396600423706361399421871198187227795421876508699500293650309554701620178465700389780431322190417948582376925585223206193847690137363191840731923002173529996951496263502184485455346465732159782724073590664397311001123543159485321266135143457822174034023467605307959592600437880632973898581402018566289980809346104311423724343295259617587514480178358860480075319746771256173714132703406322385484674963688908167352821139168519265976087923450850723215133912282890042195390866535225342014394632648961035563380353233596007401372108392960616952887242866874018253495735608363094367120776509708125254454969976411247220872287975367913438753503228989627992763603609897803591582076841130824098808244662587269118665994220286960823816612159390577669676704269319797017152390323255304026932331357187812838804866716002415689752206449586489141528993211605137419102875547249095819469089854041435086176266027196168788327564133881654548586450202640310737380870869563956895000645031787872874728974081888719411117950597171893537614145014908573221111776083742469389485234386037547591063781071630114854827310251676897933843032278852031353546987113965362877332160493458961358912334653021226282466337339881228706854185997373105459586203296981713199674120327224731262741103185947335492187192943667780360169331604399867230097122578925058580447582337127991322239146044311671462703669706129134902949061985230993862233674068413499927501298850751941351551974075516185624487501465469731250078509413070977664036484106982070196605409954730564613256392257364784814154173174716291675668189826226981205829234516243844424959382468814084369338149643059150875301048163793497689048013397775098062079617427936660380964740153471640508745889110352351471591635266696645542680693258628806212694606000858203161068538946081111814209485348653698929244763288368033350980023018206648848052344345215223453085246719281210274487285337517218933335916791075584009014534567335940301792329828052695691127737525442343720877522652640173783816500955368132650897433663273907433364386223941826356884152950955395763412624371790530329136111517200539550918385525705295597055328126759741092150182425404891108266837916973263370253401216610435785922729715094998002628956570505003301876116907453858163513990038975243649090596466581116914857370596751970074681997184896172725617147826238876635661155353354158874104199446459918824987959582114470288280798526149404367961766293997618267301432508966353782244182346495359451197315847251243269927177968749407543586562604668025915049404436451302775307995740486710987399516478299586731028805231765251599060477910134395247769535055099084555239592852344622507686093853188724858104898928810215052683490388224995253443473068140994586852440789565724436823941721254610757201738970355197159776045591573183478540324329775094153177789649370599439882230230889952590095924186435418910496721825973528121932438283190305050019665710506208350626683859732223427708687742945685286541591279457903307136450002225005536124802958127039918593985810412931566201327614524426635997284604956602148800182468260615610512536640676650182266242220296831179046422417156810899418918619505088192699368822107483878171683312910924703793519961429680927488137204427173618729254636731204335920284060963940703977282563509099449173081879797581734330655787461850330032807921640795247012074064215860838983359450450263391453771599176244610021656398481459821598027187150268176586912500996232979791548054068052455389268411396305065470679527487715187125691284592048580548581789908184860984132816204374099181939654668114578989612955463325307793581756241875746801457274213963012977637354230999314378606213498415003132089723833471235875713113111470992209171352839554986564415784028272292251996169850096982839885096951619188552018171891275187652317461022397042020141781351027814886503242873178698479126724774566136799559881993111358266162421085850802648103026062580649145187936694241359595587463872484193484509927739800798385112874466955943584496962931361637723442818395794244564342020808869554086641361762160043459295789171360266116717129503077522828072989452623287184615366932020482666866076196334324077506593682427968896498075317510763848681358565720374915886515660357974497507229815612851635314092998877983353474051659853988990243111549694437539108169770600798845340519919755715227779221073022854318574574213795973936524525539579708954165684526335197884397420038378176280799448343194882664013435082969724499520111014954410299538470073471391698912542920677653677931800753106829076435972240615072604729912213673422714190902198844192661563407021305477347106496862573358332921147035927192201226302294681713053770627868813007747790194816098509835722611236208419373676131712081093280646507387611352558036116270266842950111057005772374045176650135967042570068914299677973454357037697075297420493161715028157271500611698812468673562573321588572022354701648403667934160559570341345851007033550947990299962084156740353767387159265484429082432154844867123790748150391989610725005130003769272011751298823882504013270253840780195418128447176590134579385769400492180577101868682177143320067306470089373138236568101394971066026504157491147056790725052018496489475082409278350656227961452461598746156660219533409236287049227008633427350487329907751747092986550701173402434779607449481498346786380944214961594597299672377994650027666326629550628719075781885965506605483332730459667927225560672749907428261963383981905893204124729284344397194051345827418550463024176607199720145283876750974293885457630770308826834140236296479218644046337128098182473079879160265099952373950531836119565165240706614368035485332072367942090880528375548087541334883517559579349661920460587043979311949482569374429190902331614259426697021820668600181941340100783040342456139705941644366353750382231955061023356599980548763209509020326503469178283489823897172414273415613768330267068067667740701708988973019294549096882245263426775124969659558949537758853681414326067403146532341487935607317117012442991354585102775384618519032381597665513030164428261705575273100146070531708153636316246990873583882816850556708146456777173253827825430245063610878157890068408203044256214090814336325708547305457846467671517075970763087665317012447211548238123526925360384286188190836654274989843899860048435642787265455152475578582137069147330189957350806361058281185997607259918062248514236527724249320477379261218484168039694862836685427550338258372164892130501113957598661525321953726758030877916410003811222772399563276909350985723184720794008679241559856653466287964006335176220817223915380354367978732113118140086986962446784014482366917624619306409232102869530635887163081945323421468944235157685895274435783663199898176142118077064292028174416804918775861507548204083746684618228463163686965553823759970336887790501007373746081801346500164182134877866146785288280923053852434142321212547108357493814034720238434725277826811314558016019100794652149474608370511066929116710078611069162645476854198694982215775207599120837762723163269455895907442484537025494025887137540789508092112534998438374571648478715238711960989708893152100109628458774323839221310363958301036080851813454733962147438377519205465233987156868229274732745752888314662024833348876264988867271247470105991979430772932083907479263570769007818987349867084094285486501496881910603703344047123248651679846851619271572138632499477840641474066480900248529943304208487942862070088534822097303087675937728610410781188382373919537969303360203722482172246285132226482541765571160748156588847561886504035525917951018420397581030055833032745109596424819584191191784594902336660545084055483506603399333151274571138857687543812449403881169461111637360106280195155956434806574049592932175053060818913716902850298315461088656030921782779524577913313883302493997179188555639507460948537321373216210721436982845451180109816624290866042479526973117782179818322486990017657058754076320746555225902015424110881597865498796906226678076097441812349091331797287125646439179944044593975407828449130443437833073484690966219231580695056578964577060200724032527472103422469657313065979186216384425965707556615702269294736249404031656309089990806142704095870882474343220823693355342660738035580719837784755903908937609656951487047271355661794929860773082972002502986285585692343375112631165697166598295548868364943820796782851300946477340059865099962351632656054881755456933224365510986626690438500796156044326037239310553598708329184395491768093905255286265265014031989373839089088084026601312896026447457201408016978742572251501169413559380226866187069183422611921733160426274564644231818362078951685220527216491486825298902280788596278709193394492097655078281612886867021845358990075837813249748356402354397571626231174567942106220734857720966187448876917439647624799244193090229851089536903690138098640319119622899861952215041859399346056689481622643308078672115576440877018257563643086911252529809958384457996175035799288362323474910633896278682187248302744933565860456470095081528108346124848507219048990749081141524584320294219147875536226515370304012694372850583748251962041680840972834846006749900141684189275662583875364732550721588596062134927027938112647471854156342646498988903264010816903708415216392050632986285856896799837303315852402981308207237995760344135386818102242019442566093347456501844634084454827401066423040873411702991513502377932046269056159157555203439553645954720742016900937137953627524624761653330228821167984774440860294925601133718500191615708934499966253396245032795886423277091246400314229146915142012232087947438413612461644150391385332727919431016880137658900671593460035700971200371129412120577184172681122886880728408834471546441404867228631990611122894767265401598961026974250337853969891311180989762677479707535736292515575573718197105532134414858459349045538141950233746811799432436229780841456583338042401522782373857883655145020391376309969844946767681475168644974617708642838474208601685332913716830583344892312708796818236974022060548461666756995059069756428704199116757803158723074545851380141477997854190688214936773389485043447138739466608007334701387084072059030959861896424462453785043599937040190329594205784742987276873808476138286820314536720682986750003706544441753111871315953760280894773085638429389467968391453007714921582737045899194387962628739867370110259094821052459698935648213491756782256615513378026095810983653451499129342131238963524842842246711106938567698040406417214003497261363164325615059202120422004921996265238225537317179138182746672523125916802065361779545482697518225253034786877891499111081763268959883623008368550845139881200984506776807071733388635360074351561994891361978727130562704187935706524140176108846550853138481794189350269491098479481501841372454826553108055392642774517917021662015669193085079968243768049121726492725999706788342387659064036774218549474539604689009472121343986721959495127468187298650361317008194493650583521610641078127467262429451116147818291450169279869272085449947870670225524766830840013801759553368505189385957382631697427660816226845520716255094038151026238169333884945042296765671985234702252093708511258265897592141706466567506448269007707647957326679445760624019574618871092938071688855729963526872086233157704062205850654909774824012235401407285599137833942964571549169175904187333796921691065795481907127162717617890478672764448356890243907243380762428906133457167435607193517946950585919534337026584125187202323338935809021119547279063024213827116644805330595164826935379683597057197693968717767336251512385078086634029791636611332827235588459528131438524346002203559869071739648348931603239359835688559667524477797359190295748953452557125003120368801481861360555153062113432448403211492433130129447767871168138267708934832086473148386736254638361165709807525792244513922952475176698049357331349149211626738428271619825876549329193188609652588411260079314341162415587334720174125987249934155122952580467252677884895184495873877556352814386779677582281485721385352386458448827788494065938095847864848083855470418135728243927444944804500601499202670573108364347839505978071388891124856835127020929079142887292307789332452361447549328280342120942963919606088245392831938300727788105944416294181970082342768680305289642050360471265636181571610757025130137595118912925372027107292477940592748583773114230397779494518633198041567007151668239098311106609285902540396827185344000771556420623063322148746963869456663221130744582378817872088321703557969862806146741064506176508129918626642432342644050170895764062216401262102388594674518760388211676217588953460556774663942017956293412328193459382029378409622045739399883023582796015794847265912160614159434414121596701560080166251234338265049885633913094694590960016254257121532721065042871042588769850686551767324272336645093256593768441367713274372553788158034355344612930175672429591040219183883362832563086207775869814305483652129840293048674988036797847919575240182288275822082371107490562537736497623917451084181109365909627187719187372191158775088881970468700762167880101101291451762627295296840377317184751609654360816180921653403928132661411546773772108611089399792096749784631715504001563584470225958525338925594496079666364588879393205267820941898536143052168405130687170612915423610020291426096355350275782903205881278977733249148831654638568583146407412662306006741206903660526138894468842143452183195742098783671674581445469689249832574637296564681762541577358983435314580790062271689409583388133344591518116452444864217442799277060404643889652173733419000031893684582832626054188318539583446472036296792042708668273860626939705286191709630509593701808477840253588159778221040981442453658834124757272068951435822288945328161600909270234833705121689474685942980220185902169933249969159964981241886763175851894827729483038518414677843082779234450837383434043594191493916089921571086475316530416349731544131602076979120347852011120074849027696130704178720538407716995007044422525589234881634248835136889394433878952224656888860827945329150845126144358410231707123029104709271880914587454707454251358910142376872580516452934094536444343761434049390099812501922333591606456378298393649828596680138268822735737518348050545425006032999013348382565757722962830151784008483814586974660885493159019620436575731389142320436637530745191723000665032654755906666737328750896678653318822231241504847610663528601169223180882092741607290942179881544372333673127108230194153600034324831816727847991002494948759833098651038361445708097701603427401068503060570684983891148884457699104017347756503353799723872183917149546001280019806957554271680889045705873749211839747619842225394032733945883757653147076779195217922770279110322263475609724510300623090078174822807428788649755995548042623667235392764149642091837351327016613593404365819756317643082301593537137851282084842865775326247290615794121194585171707278414084199794866157045299766426933687963548103314540266859479442366114083242022044891642145236464673383204827963354873320329553576156166918339534600264192195573185105263959397515809610223930781179042839644506943915173848596347200675121019865410189901584331938218164730846584565095675708719177899674493501180152056568281081321851886815298973248919974560723856773107220940642431960248544985210993896104806130368108547911601314646387699906657590641390807108564984012630748739587757391143477338920633750811056453639141303603552253408701271218504174918060683600956182830368990776123995198400050998201480191475187128761936776824905277756691396131095765212207974867054198406424203709766189104944522053244385488580035316752655424374648842713813471355791100458487594449140585997665789235279352837540184348559655461700863136155494446628171259131559004946513279154451983135489261148257490597749855560334419180598087188788756795264443474810758844168125717805224322774484386987134657150904682024923102542015514121382170968816536239032595901008122687570212830347994009685498408325808563738706248242137543961600670975579476309031528199675767313694071454632225974713918060808685441152622669971286937251423514833321742409328160658469863686276690988059714441637768114769037285111757116635566781625224634063118892378964754307766757397619975379139234438179688348306563389862278076302138670649249090988674888024272061637866277688206830899178893955645721040008752867387440450100169570891757031991258472919359267283286889533770396983948581911164478334310297216641709797212296470551490519644333695463202270684166862345840753684954795369538578965764126370368638597335914362900070080889284967337452357326141924824280225359631758767311349133541764468463745896611535184548067994301362155627530203318551276033411961333940421560782377761166315998016616590353239069808606031861455441500449196587724379500352981391526547615586691852769731374499505623847907269754136207691774332585518803945264912185572908876443506851659955808421794051275324202525005581988424168074174807210391118715153807607314459799950074283425933470833014525882815504732580185819282627508664404629270406296531539426978310055690414376327653592976528242831318072451493401269808924739084683454099559508155090486204181765729831895362328985093657548885052374306294354574300901718731959227992479762181671575504624114952035186149576260885354079229280238107770412398321567716755554997838256142016846847886701155372989170299163172779894927736713771037922577021798032029063904298762987929047421530964466129707405941775409097620030273889614916659759897917642898290171382021301482825292328591422957548359547629060439446927621204607028116491812196327502220667323371904972765809709242311601655536305603041333662894229461548719592448133920432835419340211799208215327591551538160169255256663156710361353156148785742901589634733767221740187799326389915891607371803077638633263413678482868036020210292324866548044051801935579995420201469698108493437841534880728691048630389353698711179041394950388404679135553278580032239183239258015625654981938199092665843671382142901947361897863264497643539612510877771052448501679166690136822366259418863043159560645842985555110275073425200873089480653359811768225118723928862593183632944907372213446835305496422049024697689346379602394741683231153994579725093388702030658759739638347297951372124263993802854103730957879346347369483425985960870761526564912197451701385832412987370103395181332876838873631665068192836002996164935852496939480781941618625608211782028191021188878261079344039973135226968522794566309797656456263219224136224788666578822827535138135079281321765942881544477235462871926253487428639086081304622191100314948617205248504611085103034144598123408257485566868528764524154343425006101007604957820119985959202127433382098094363727323703584672184190239470009867307027301934312811490141603574505262406068381115779853214984513019712964339898106515738873883980282576204366698857272551370570709428643859682521984067121439686810173477153262508611522418457717598939883028366231952092163470964966530949887085907588975625711144467656806439754949145655930876405226557441860465588784635797224849494310543073843081472876289555326781504626663852813265464381133526741673595734253652854664643091935863137979738652984148894574029697222734094174365161516977214808372774848220475471387078124256935826315161303571149363573905660384267055029119726936130222317851097818602439089815979089158965161437980687882806017462231086621356319664224038326907009344002757488256417841503430185299544049146253349538480198327201909076729054908136355400038498893455697614948851294832105282856152375212026089755612004209509000482011419069951469391679216409721481726257891830785317885135423214096085852257991198566935381395732831490562598647354470361168668498266549272038441514279193866650846886720422224410487914498465452389598838099449970108386588065053496735689358485862984099009374548506891598153077640090466709334359449454121342550964403238206047199883441772226763494353560669825703656760972703736254415106388267797626493851494847308301744725476995125416065064255949781724519119807040562327547577132950049856088631158447966997644708667145351964785577912861277251045353953567990523072775659051801014860618007009550622443450488589498566480312805550008554195780158511162089673994787773416537889437236046165295478807815543282006349520013866356355981633574706816726602833517643304406152444777174341668276908231822583529257656466358386225579707410743255620972540310683519390324617099754483842114397769570495593606916704135878946859165797923700512276976157442685803792870826756396454168443266201219977727077635942588851031287588388664656315945545891679803489145357689598549860528355155129848472271882100855463968101569434971551795501788430507392797786845563026909271217353541705661352682471935568851074987600416452651251373610539315912892189215016971715521971028477113693856806182358048289590566782194218946024085974605012593202848615584873201145351463927502096274679012339750608626485701004764576751782532491310037858322133797590754783380346022103406457455461790932312865728534818557988261110089448594102558896304250237587786736469938853223820842241454391757471478010525026486827340858934027774502633528329825757806687959040174686039161493258719918987855388236817912399125585733014848932979798958391137514399429293263314765346278407167941289006744786292724072124583792258296814515173586152111155935720384987400397969881048544066461384672740499549112185952565243222974047559474361020134612098240928596520243253354902237868288031215348460029588681833994515008106308361280311501786621173426032575131222057985985882995031518653355588201423816500678811130851281499809036815229761378013207024365782245102302126131080773434185449852834626217220671776570999942013667999975743029230024329740826419609519584201762271167402105084280334510287381706100640885405577126497567367584240704253321511923592069491669975600223180217376244279620481691488238626403001768066865023802608495118814232981794580922299552432478720741842653129876560766682754154089372052844447579439949041865220122934481827606561814218663352555325559510515998071107748037631029550716891640341016616618970891727056953182112149016550105708223825645619077267334387386294549564909819687340564618623366357120642233776758017185125945915340189027466222863702188550607471294428538679709099167085222921266678404463197951620250492236859645558272581905954805773387826596266910811621577755369010010162055609268966738536346168836921777429471262815471954608734162244464054189236473591605513033402505989749102576005166287986732043843047802228607190154697969369002358583773950546664769173541313621059807189122113119618990827882641222595495043597087671416119132791732835922721100876325880425518389939997688334811014886674059090210384780311019344555986424733529435211523069742447104527786944553449659072755451699388237807991852448536518492121379936915256624275747890013709977484079520965284621293038698972945008206584044257575374335617215188147511553742190259298106247236908770765551974741982321765828116476496745181141592903569730800168628816536993480473185692380654211474512327730036687240183817762274033450684956039378011568023393265215737057203615515430968347605316446809311322416961590098054064700131318982304918645654984208775542799584546610188522912243920835288280546716774536835073918817151548593847392369887132170785805213442008717467839973142576082289020254565541708032037633126283848015331611327150048162354658336490062569063976321918845427593618200280225050102854740087788462938070672271683716928535310820714835305908367401605554413177462517027735408786870447435094720801484272516518069390241341654014342373920163075198124911192102717968967669343755039709502074848366479912857528658878456126065310442248370860652411171691528345757481694323946653698988358406071814021294178951109452070102072651203030783925436721657543103526059853492670035924396888132645199115370528390410540947465805749474841286920941022676109500498569882816059364067296907823928224030487750474518521554323166467359937686307273354659807163383118268728131823160636761302978210386534581961860288076484135922760112544898809424795196568013101575934298822778058948166235364640862984821727403922959270535387849262446795653385033272911053503957278788325037168486914672225576448585091374775370177910791929276335987319099983138825999470821434855290551094229647020121700258101505977694583465314046920250551278482311237158731473736505326464532204715842017475292530088097292489602422802052098192390975778447823449597525976566461873945708865192501971394304648365484329104122156442271546757675805019804679006983140669121367418648461983513048759854686063981769893483150954362406108502639488140293905620209347048432359501227037902863048909552085142717819284045242261066982870086642782790947235111200158529829895475049995147953458991687318233890158872683513752832930399717489778548366567298972550501614337619783747268458266996112495483187474579370102189620235008944700474334827692400749122042575766522838440774085535920398016334434757538932793304865352603695055273331760782772290571744193473644617978625004537678309940758861258028600785241060679955737050077197691626187238618111531415302832264280696124301672034550177592812245501304613463950590802653991931469870377518798986471368085380872418393159180788406061415570661625233262403158547754489592372287512922325005044244600158096376982268984896175994139039405502703108028167411399422337701074787557344699523143442840933759366004211097396160990626012110990213582597205735685062806380990375903293425639276526052823216414280354145653648825787625118965962391578468920548348456448900849713531410326794670879692347689539100739829257204019853339159603381620647621142478334057223794103827871805500571155779112589362378521215052045539331687182086119292273295958916475514748966937223822537005469014302540334540905507825754503359319644421144479719820074839156456858862878672818711370081981076189382394284209645808094750777281034596409562308251076339604024516455363109226640540155167281403403728433503747306748523449377102300880455007063452770777950572053144648011074932987858260938889694454390487938044786021305980597845473937083166223727946225588884336463924748129425542850544942749931030218257432290744110962515353995394911990703133747460993344900286873377905436096441110530050510784027530182084281239045904915493150360530331544939556706071833248122599197365448007402836782015165279702773979912876092214584059910714429839981143922138267928986986408776998262671281268393810722647291817476831920092825071271269269369119433408773520616465126497248184020969588935928832539854466999205008530104082785808720116596155614868739542726625157363098984146328149163841221408790823920080637887144351063280466498124048232268376168547669132941784965971681061638491944542232750506802508708217638630597751672296319028455104823590085371125428219893527223732827040139373392876597749607940346096064505467325091636884316801977364978825187035796251247405372548806525296896790666586918240087406197300618541069585076850963570083763494469177183733825433464081175827912731441913954618053773132149760754213590160315008211952936555492070663773292559003112689124443143865425439573283975005640019416942199391445037315550137801640415563513050823168211164467289257263499381598600843535951332033083027297115877436375075663927900813335594539343837612422857325855979288576357530784070041874439717136417635710022996313021040176438064904185843312329930940399370321335660731159345302382746988845077965456238328062517594841977937662943124262123112047426917188521738764610560867808889355072926781163222448976539423382414723472876716771378955309623267016047151489774006524175745788738143572949875397913928534391702724027800368660687845445404207743546251887268306247808394405872479855398535186106871801192271155947761323293016871582380201333584893660171074018025752572902902805802191654699436228980527555038308370109267612518563298340574993629182060300889589010757660889285668045912998228129060309361740951772261223575487011430404398464590345424541388515370035087351826576497697298995633752692203424212218191737313059735405420379962082433130646826238218008522574783085537084771551716106371406697957641044368574218425439466551024355181382035710306815054262546869642504717759121444859727087459089865786118852000137225571720739165554999240962563573730898643116228357342158215717883330503139404349121211791259105828161621269734508390764940782693517138587651452143233040267525293378740892236681183200519750592433898593571569805946041906610589804006990024369837235158796933884759456574829968322879991943594425770015734320988363321223851465512696101180262583272029721757683925545997233567552603238270443622097975897645703247961783975735738054234340378465936986471477144403866716581153955948156202662585781844934537875096845323104692133107876464951197827345443261268640163673808521745963948724131818170943999543289595827547374709805351075741859127617194707632006164299626879237980842379400300619663790731508833256606706284139236796194050608166783089952374615155901144158253480439211133999125889675902399695268235412448427305403679535723953145408427638989296866142761300320068963580472448011151918203899265736041423267173623145043478744134323708645963268346385553149642053562504381606980480102298330521964313262161672928911838706933764560985327017802742916389904659821608057358034270985490815221836291317862217533719500266521431271047469260171055978655508858045914520247130331049946089255222198353590505942805617005098859541076950362036707414006264544492110684979618918462718064512800452586763518284526763774902847843685274271852470790856518195825921467668929887992139021684718786306278286913783933713599177027760843287316761012574757104351187386107083137363477753643882803375126002356663616249472146769572374222993558496572612887937456419918278695187310760283375873998915723934166907115885657577344100717507560317514736409566252038139025839591717931434798358098257742542804737332435845430171517855851101459661662535589109065566410023708035476393113037166875146492168023307396891529396404731378594294437519446405264203130165158922713651567921583226186030008919708868179351603231577917838504215126725344190231553103046674209556627081495494020538386925050334243196763049132170764538262481801264408713932919806694232190711096142977929661216707189126837832835458703660864412843004477673074424004635379261063647674099768026483245031513381040348431184673236953754678780531397642868904279601411292951522217810459763435684324642296363845176553019392360998775679239897803341206941972802028786302571942214220360032938848528743741302157116301374150380353774086386354753104131916290339954150013256118023518328739879680305027565180602816319897334757468192736977134628891503059327450299354710409290647851532031831679879655987339413983171885567250752780790374147975658548731427514434631516043651590435442790696364320464347007929047102039549779824197695147654494374338613746735941312839581489111378402976044319306171051121504094990140392785553256641700468182347919944080278390717125091937371504709596649050571804305413251173419964620102084814831177557521496282334523385058392650061469697281302214913280787529828019220802761293227296352969804583136315323725187599122491992898982176227659384625229227417829407448882009021566608015167628757423340707737952918382550331124748437529945863716272577972669655885181178323174175491390541909232257545004450636280238620166483316925689189017870395944354313930273832521411550222148725266905800358965593301034486238155434119304585159360210467542092662132140180527317364629864923941923906404538026242785641711692773369744795605486297391737608185778508799038216344500964808419072268492872197706417513146470729491090872198379175042958060340054894049044293502141893232062624399897162456171736397587414000935551968020821524454531155471053742722601456938512849685972425446204979522348373516127691477488159690257077800773590784949207742575425332772663918094105671265790991859081472475088106951067527718171671221485853665408014784754852330838286054973315324907855043960496582322451082259535336389546321756997922733874425987300160207721404142855521105182443262524314343975569773374259467507239025078110168405645105348807398607710479377881289463096477555397860242424536284353671884105109080954979972027145332908783677891742865415313094642173506009750611227270133539054374315265539893792996050864510966700300523087344672261045572882248426611211349437740430430423282217349808874957576313209159298444996878971456410856031060336255743210551883751905322524319001514541229508257748744298583520176898132682676206748395341905797427619403202648499149932240853332542023960928567041207545350328766037603158621822464391011978510966557265579921189006149635424008127068408902563714491574557212882484495842851597595806041457249214675421135407525212682994996977548064309447836094555818728359446577902937340857125475699997069112076447793250679644030617253959465069178860405927082788194239838552810811544512465316274606388172755960087223136427237846594450897155792804612765546839065872337436797493304772266357973967163488897194269621816371826716668792656940155116305158539591803776358598176442211150849604235516451785842892832383899765139932125083414727660117291276509022596986772341679837896267905044500622149277246036655343508816878152842701291021904968980259337735717886657089309089196286434389033085394765822298094093865665700598520299844894257738721637978843032293836972811282037495746784330086891103962129491730729613871856774664184847041526520097704575825615304177816992152805516869490222916434592476649285767046613339248991875724805124522159206326165330149948091565729989491542097948131147168407521584887721463973763231921093576373571035316963871205429157787990356549383944398726390292992190979782084164739464152372576211551684709629375285954553067543389599140453557036097125282400711220600103001548283986783686024235792322203312529475546738823618788799470903298074595576723514434004215497997164149552112561553224263631304471138262795671125999610712829972620137652911898988536608981468188034068188636685430602769349418425246930505518012962614574745369589017875920360295204905828942105157448439454254914441712593077598878838358293740151250010451542899427115337723339633058272845696435037480808718437784393228595633300076085110777267517909812346108073208551181913523942429126301899531567847591062006969749873631706709379702553618752960632617512376413296805045888101389669104408398099150376201843812144183967160645403406626356744894812179278840342186297767254451560296354397515363657268305869341489833218964844027409917859633557853895634291530712591326886469553426195674695870655098852375763816751587262107071665902563552137266359409739902950561299510201622285347719345185441297373084432238129711656208143842993619407873820243244809614196543607806074591245847806437310158236218835654630335563568118691873936685930074217479593313619484235857348220516052107704112978908222529192986665977744481510335622540460342546879773663907459335090914304435036955271538120827435371046346569249430233828548501651757304008447586560875023130891312736881926450945650972966917661825727694636345405482275062857372506351728085927252223646898371379406629835732312652573034390745116965261770794602765020554834546795589100771809522586691440667110934577150678741997891128317838324631246490840438488967889211587989533155200233765850735601341520214653261998893831974090312707378211725385361592766310012221907374915043677507360111939356695591677991826004751102216591970637459538507598198348333146974288673052487300466697246550642458289212898855078642365307938848636011146994907193074342995090013881548483425386748332324450730315386477514429763897237683355086463539495776008533400259507902952967748474763469035713102536219660038646591031697173220353775052681787156562787663284273648752868451944830020971498604711150492995267793546120962230730464849538586710357533802440026587098836914371390411790155586498678852396339174398212298221919683416871710362712260536273684909491759159047452667237468347472311552514029687380190017903422690402376892993683704316697869767860554319002781133146731491349439039555160820817145378624254498540333879227896297768774153216300077258646841299049301623864323752455003122895304532441612217594964912542551479459724515988892857543698717920720245142157581797383777115004015855280799610155938932326297862478724274415795532141360801613085523243912345138635881084807556039010248447318731666723777998414803343113714645675727562497432378478479352236703524188748449015957148026012313661530644811289148054575990798463695230640486291529075284815987444613414660046848600631597699928460782798721351594400134013343965077006242947855138988719209977614647166728510846159093180075616391050205345078308429997970233080183792403500703325886527338209064683903296460942155544785823602148422119662374900171404825473251392083324608803667199637627793467657840204395872528607967794287334837230511355949227480861392515059925231289777195066148284915376325797343482093035837490710243928807095404318924014014849333167699816750098466493590913075082805786391892465786928116230131261322083902184441799876715698532731845935647387683520064547440259034479890845821766700213822805085500258521584278234584087574745567331786110847533174979446037439304705892336890079502703263826124632569525683629804394133688983345309034560893368591249737371735743060852685653779139956142296088010296562529250893253920877600481355847176447184988391899228169069500166042673406460158564793279096050637183469782957985447781212542055029227664708016233048356574274573732520973767905028856996296491081717025933560055828976238095490787549937156937145438386797863684544207408326800556649727493450498507520488598845798903138889554136936936357435689841599928525091599051761375018448155761941027712724110469562892664653062662698886978778461150113023177474778606703391029349735230355161044326130562922170006798933233584979956172396680599825919714509329672211822314285389390658211852017423110361645053607160872671182952441449206237243847855539548202889201254118740827660674531925412678322158103998351958246300348181879788800521247568682086985222285469282119397318695204671080200243269018956111757630136565896291263405502646811516297311459466314092474733668773670883104128678173545168322480256362771700751038236851989455912546940841026388291600394610779975824641774656097798460168431965055093115232920831462959120645669757386208527320887982955275004520493649361683694208339342703953477911992027227350835195950660950922457490547178360108989498133559424904861145715195112979520605159006750031814935764319941671747182075546653501778952797611909605784129891677855633205368551839912365729166048439854310516072480746725461430928487745504246948392311580500620529308357909615046917145402075884303971056634912525842142076713923535648443324923633388372936421629291948127871257117011147049535532769574135343511858486305674628467446449555722886493430548522282900387641841962262201924021074925245964574562714179886778182499732178812637470044057295224629961714742380790204108486406206898049489265284198956161034644657542000926911861777060614468300125809078210335690039451068829851035528408960741619275643511724267491751283712428781017667400306834239701209285358637539117890124114428139413322108987533289969156808421553640495922535563092799949638845203248306627273933462554847087823346195574712033646928275569375242413515344779324328421422630332451123595375239342430092936127177908782719511448894421199446619411393984029452316374149568221312590591519630238273163873211298091958929864150465159943509488993569671837133756964392911148841114730142162437038551812785717306302833856231623566781064920660852437832918657852774256817569046086701105486747659637439608321380543712524933941450548047338900665209809006380298358208129312402433119348189191164164942202218614242092865452927976791750599462130565619035166854146364918281130639862999472514536093000959516509070903816366806208807335561989776689065897031234451407282255445193497540499433495989565688650663713807319721957367403840959342701581828046653350858222194528584897447427590022475762860317348346720757131558876434306015996603640028592128438274106824212157171153818071244308976235647643670949340193127724903011359496076418398016115397616309693137402086570661890596095414773532785648670188644455293214486935961994329657864570155783712619534586082171498907965814896679329676101781679133432055441453696273855385079679902799950766060406597422084047674007921468178578902686027057324065484026724233968988868395743254046022294947494194408722388523714323298749873960070113494718272001144742365307780108888907882060484316702553434284423632274914229797451054466864110699533943080905050632894306123588978999670954311747083825942699006466576289823048776335856456661011066998859694286495971245396384594001069140841580803178526745342303416859835125287421124508535001272309820294444811793446684955505291646904012427590396798723412859469472526878194911477652211970010337999682471092101496518917655399092968168967148865520159901253167774418844072472758024248466402481449504209587221498310041680060282380615054661070891075817285758031533616582091197578060888881550899565717573111568812934090204233335727635906183137703683658822008768562849817364344467270517073286263089975143413637650307167465044670148801449843705727975453680708376733002583351908401655544748496654620414005707679142221563177684387417674662823018427257780978342280189195614907901209952293056833311766719490669240602992081236219591545521575560856354096264558234415790885416205542633624527286379088243028725599191316853598492344236982268798501487001181716032288757573602010854611395869234020648814754714734509186912655965599356785577731203170865975446320027569065683446133621149665476095113530195945462876728260589471343836490102193687938403659106496976750839942860809291461386350008264870795421080013771080695028970748796744256306143557419610758205210698180664835689324948912589684458746986779234926014196081139303606574526192600117477203722461145858292174690263369091988845446793506803963039702242522460858384806442248051961728821668813135618547154991939391144055355100286842497932421261006612058963631307013844148940550074105848328935927667798791733495538657211658393725388574583759136850063884736727330168406445573292665694041949011382031401162967067891760870859568560805758125816097286592912255006868776859681788334064266199116421747207894211139897818754007719113501128744091183184024965721831859527639999696364936840665289043787877405773829612772093722161292386146033858355638401659646814601746581837407000232831104015477217200821910952595525049612594646063022983366177702553339193026797518248195900542685458574284195070712249804517754697168094944984167657987046299192722863854678432521817749870366773150948334159734746569799138670475523350557855519653567985849325435728743004225132396887292942737374398625721258832424333763107658456877177817444951957188299336610853224650850926170768437043062291041826848015196885498512477368079362814964077985780211808749247427262100614487183069089823020008763904706647004824679760799959025683141887124669558008340673644846224229274219112365136807605483956003714064484520228104330642671587969141054113970652327524249666467936775569623257353499014515061999839050821931561887157424556324174564947761870303764508522257463858018917707807445067648318477315532639258526122887591498179785981862501608716492342396388767006049546286732440715939736385012434097343856119317506366523437042958382059941573493593681430293207877258842319641746729431852122447425994980347898988035831431222561144599721116484383949757430529315873588209746059921234346889715661330415624205117498027750074932710656519995229158217809872912713176293641142359518008638087669472302285796824053376065558753991983551894635917281856314625262007390031392884831493397428473915427119045339756920819256942474852068282876424729547347645951650376274900388394009167320628762171894407980170422854454604938836101022650025043733462829158803073069759336377678181453933877957646846905446186078850118160934668248399738792503713143967593596718122707585185219644842342558571185467756079745333231031861782082334818625412531098201434683264758463257536981017421806688602231588542817616367920858815982025014564704020937214554568786027287878409515692395963572434036533637035253247858177716970350351873847915692555919810809846901408954301138052602510927225206621305624746936765840691606059359478091396533676990946835454973367649771246659278504035913222402083263772102422214389157933888207906327222799495962124960538543555901185340742850811368841128398781687880589428314797470846929439096178616149949417697861499171187713033984590780718435056326614878136882751034797796267552586031017789766600757958042074775322912086279272693019200011377353225205913025660554218217780449560898128874598102779330239988806327487021805345772513717308494721051323849801892910786898274687025573415810754188043002404604605062730718693935682465529818100310341717339491206152975592847313665719540669387603861799144270572197969952343321223786249841950553939612527206902987240900116005678881111016083306949921231602413117948297318689785736137662043405377932846510634399832752223831218655788557531497128502698294891580328538967515696418307571350013677875049044171901345107251343357060069847858296658034814718226134068412116050398841455718716095467244284880423050173559590398427679380270921727292363477072918054234256573271232410753246775554373300262824157441760380173417479672434018736851473401170951528671707002710454586818804841970177256481368605510571899535741815713903280673984036562567495733263470469219160204530103990900213257987690397670205042627785580348496021931454550350989255743601669423303375137798564843460461654493539624397587969418972485068963951980608823373572466067527674731376640219800483155307985608146010001879312435789222605999873850025841277441156474846423057390382050339635474985167851992199567680454562245422948654898610924224291956296408129404178874932164331837814989253926270677404003657543779160984708516457333500191309961135199904122882404171248553543579644060275608621336685081644245509991632443515708107612311501582938663173330575818712500618915247362994456223973439085072033998754569503351334212926049091139330577254982598506400376348860611713145475478189610195985507736086198348399751433611986564099270541897439851950660993515719845774853000282427649760014144511328333081066454986583557561051572758555072191479120043452878928476271873570155528724606362497924825870254601686121077635958273536620362809727224088675041206723322518715587536560296812846489124690690376242237177460474131878438896001445078906000083414114776370425050222881763310369902442719588368931036992125127753929215000629385696634367594084370335376841509318607616930878448280153440293844010236331912342807138587301197488446023906430211532566345547448513141527508184543065040187681337649516552344827254113848171764078814806442115329029107136858591970610834878213339510732573374525095100963068503119022190536374159925057299176764171637065555492221664139711126288207207875166233520865951137619559063313789755422150108535372499498374613970543003298317401858912602997300020441261793194534387921437243930067070889188812008406449925702495398292686603240577611586586192373236000329908046922965761185861457279380512055532346523443639344076788739994915527448701258712393711218280285213497541750028623623717116794696876214754925444754276931215903732834050286244490360586200239900541056788610113603356954054550555285867620691590503953731338830850017081653988429334135778546203279604038441741901250161951322769464053267832274144864057065579310374789475618952231728778522727534620700026977565084020963902726492696814283871878550980688361174454918947743569781750109371060550951209777048040611139155596327146193860229162949087364223710925912158673444413765147988422997568563168117528833241269579600917469533541225718129386937724181954505229959465581756603393623737605270886290085122859285215596194741236219567861764251672025476221597020143071165585210323605230521947173661092677498884568276073456253070706679497071406312676425378125564801721414094317512227997292604965977377915723456413618339380644515147518738622421996779427192569987694646014931656860518466995898592722447155886371441738497265012098903957919561812751614847085818752910319710489955910505842091441510778834660235667218743377960794465710417643181202845126899396899029695060154907509256055462420914033125558954818408388660795247164571739920792168217596138999793101030186148089041921208506229644303633280062617101597486799264875381422023133571009233014004395538329988397809942345556243499217516222628465304704351800038002286547938130057673864828424064904264268759607809339797554448099217142922279845803643599757391399264343555542804461300806051597634244431308309475146193005334695746553865987950016492693741230607578340990406904129670940966996203845353665719974223509218279365260246519993901334921808130751261712047853122785478196159947064242826408642764694508363480457151051352703350840440131518424127582288056422707397782964194575086273290384391264955635712892452425303154700522520582558383352787648377576410790082804710211458146774378383907656217421291983222126427991185228351473195832746539099032393243496756228721539560196593161749923937696674759569924431711747744185678115965740811164758916963463634375132334672446185593367857429050452143371936928123588071315097464366159629517291697103968557332631896079930768162650071369018182326733043124417359382916928849830104376537366868528525056336293294495827451969421214018485817591807251539619236981096150053222875556485830994949173530546198435990519498428899243823076439645691823118138774872501882002919725035044790653547784548565078452248137005299229984233251228917868435268996652204205102681538616054819024805715801100924354859477534423198595839289642361966850461809783258172287817052536019052217912791715160852438836135100263158982041758876984465444327976126414633141169411464229480424871324163781484773484078503046986295854339953794925377339235113550773792280414358254595129247195292538633004152330851102581523533547645704169156225614916946748837316990578888216821986718767734974104840394647034352557371625988219758850882936163216743901603065417402398322010312856287693628698598684238925709545774497899797231172536536254471607593844842462588803734000478766320153150892279669760345721297020725101763749539885189035707148536798302373502763164311936137328728703459354841799538450334900810243741428322657075847134806566180035901295367800474441706600616449619400806474675264241449512648736297658944225322421106262580857074759157003595607208467049534277386361808015929710692022971319936755160497110954476776166990754634482346632955120941144499942438292577625447030673318942369186566284875583722482733740717898158879829513832559891314954414477641084008797164040306956247927373009419382310671091819092482090944350626568632734070486132919275806425141845766356447236448013895321723675939816203697054647509174672663168702114033063015548375672021286691090834447548783317866104415424565553492461299386091552141390640663427658384126321234187597890260010409257902027969173939000265016107985324994342023578164077410650207624072205595785812112868287984516684993190140016761431736870774162769253188067607825911522212273391041394409561365894133302850433539749423585975967873086775531706816210404377329782309816661297430442854014725035808125192470851828951838421585279671657445431397976270966064017788267364080733721250923360039806999855883196103802714425090224460341436075265788104068125623749971638897701042001828645046436190092847679145774416298443791619111270502963899498250893537098806330645203343529724828141739911351097871601895423051688930336178747123759557218812513909380526327043025480464123047120430847728282640383528118400953904633291699062086330291557117538486104954296060053370980183838562850647353197475729276123994028515515058518962559748387766870660344869802728690901349376458287065505775337264736285593323267039333995535258007023211574322680062065193569508998221437495165371639416756950627942768264317435584878971561880799232054999232191756605184765736722048529350904171295543732794606478387858902535144592879115231357883215104770439711603308077926367379175428707694491842747480256921799417962143603169904125342773554833135600170844527689321034941226042741998419484061938455387408496955664674228373744787672803071484975902217265818993739717042249295469670851701117667829413757628169802406247810720831471386483907407807016950556541167358758771818060330546526819813170339840172443055153042055874359546653719086044812148057023366330201860114019730824631698784177382232022384206155311200801052386962772586420605060925838110832248597766630009511145145510864172971898347432357986020632144266965970769004444028995400729340862660546486247957027844451629379584180531466272506873705335565094218747539863327131942507094888639797831586683554871350591292601694409210905837014234032680201150323196197531972924771275286300985472177217601034811769908009214508185034936565189507080531001813489808691627125781004679725634499596696295514159127594303071671798952830679856308573662947465071073402861053079516224342687335008921916317043558271846051911256310878083484090939356047510782157144885106316795813121287710014550485686636930686255548598294344275477133066492505083883520815881522131580867434441306245879872238739846835760182546048341802793768841032809444484564990460255042809056836313115845364731041173607802982722598222146308961656996166661637738297120072810779313071486755651640112953125354868524816833244085313347974025401213578836217426006706412350188035064322661045730271227571724355481760322929940121141169080871316084260506444565254215018575561050635875485151527906188309170986882581655901831206803751118571205041968266910641537050304038903711170485770360420697868254261462582695938506644987351139898040220955663230969624954613047627138527003117672111152558099418179879447037666547235108379022390607020488511739188982292556635766681551690284628105022629071262602396901307475510511991086549657008543133423628149762984082971387286071657674177844171496655095228339500209779184219785317332276082823688470138466583393575317797329222999903205712013064753654555485540334196323863608925756214029225056402194158683967817366631234771449315175989352960605038905434787061048498318925813524910546042319166052412490545092492265684372764691602326587089546988224303310599349902635212508969510341459259760081277585375141718118258807540918903895673699304801197638619372483218620340490437790141169663863259598206448418170601595907008189506649351655922084502849276824077808760377814008508573883307840223150749403934676449987463528711813572802556659264998983662272753221855502348575181385019957388932928039665753752094722295610655321137399072952042579201708673153759048014382217913557444988360291295841861568383267263635076041660272235758992836821747136892285477497433452964061585166531323943105226405329324337498104165074522552334649401101676883689674017779098339133200852424343206940538213404327962209989331588439740753076866526839606542998079781931896820989670214882386658760841197330582581106632550498809018444614144925289589030012586285268163020312868432858774534474467616519446447523219329498808095045258692359832543265348218074549518856892413011314191529099624314014020282268571509506153873281871648272543865409795385596260732893641370747972876322902971395469030082531127363524323811614427315140559831532249201268662643404205400106447812962957469902920586425064902399672608250598971422608126597561455435412445705456365206448757850588296638112334328309823447164135697109271021385816760932544656071861831745037390117994043130801407562240587718761936899567497292760471868432392799215772376452915166006219127905651872436464516823112536448366367465175557132333463736077752704901756137136152517911586462623282630607506799884940297359864359348152761431345969731222090963565451022658456873790577027851825220957028693958305590838027960143130181401873360420387120076486047304182439396662762860263558768095083946189565678460378483189664649356395930165559269542857524002930858787906274676309205302057310644196677733496321629609724215419166836611577557567473826362464339046940264552480863831281454047038330089134067994742775957481966391937230816665047378748401178924921883796987799970525525940951086547563818782138569629963724864989545206090537427358003225640517567640796966170936273320404564641740170703815017002685447107612664200170905191022998064172947484220195867293711762164951847309872860781036238226375433002106423286806982834861858957282421549708606448985962995869043893227506728100856370989793837082531586107100758624133576402006903934292233892347730728612433291971522478156240569173279759542958320034395136044894682612577171954384667498813557135708788860508312982020108565120352172607785396018320350980586768625748801924507002168804226116474566680835351407433133067955872413838053085906506781211038797206209742118029599972284222564685542044809553009453572480444373460539436371371050153841053377662175138299563756380194834875917286483784747615146123501538344536905844022717271534046260191087875178222655333180100008513243521952390065392538288811029119819929744295847355363891771847977679800638245664213729775106313277222204966066372120808360745828487367692363995538685441029170438327470361832500706376975530005470681127830374656446306275584071022648699181041304171916105283701545955834388999495384681190591922393001602190838379435725548718650687646391947047609627011680587428550778771554510149807351052473798560705006500625101948502568461058780055568792558868437156388777799802222514738592947901705355635896638133320712155546350226881297935962395020420570535554378140839406778429598074043975342365407663216443587447990653033843318247467425320565935314757414678685458229348195330377607867147296128416002534125470826932040327117447729755614990910245409685902102302439324281609831420618726898102516299853843122674970418839170665187626385080082280447827558787434287620001259578449613807032788229456758662442513809427334936595011347823016415591761533970461856742743989770825171853843361271327435967192099545921369561312780519466736114887343984867303152073291300419771764190905767922400454450541035136333764932416493044523558858672123013480169827353489769579362200761573999624425997997129537155931765170168381868182572998417324807087398413278821818571915612543356047495016548626846106928655855089563957001323890693726947403752045226712069223734747138016084285045021233439981578023371888700735160925504037010930609368275306424672778222355300661564837481446436540122665787603685925460237366089278609537202380786687735168146916904751049314247812406603412804348735243156769291311131205304317563961830779325202848602054024204954560221504353149640576075077031513779939916777784926198350103633860466377165831081673060924705740946173393878060329162773534371814697488981560263274879944029041491940125040621841172832237274249032463877661305892705370199594224489195429052633782539362267646963467118980846775046774765338418368164468236673434526680050108796758152536802886781792035378320013989821651465416691041471959577674269315925978438451640100690604823630052067936748205595233053770637222285266457721428973697324207538985887000321934935571210359000686582422586728010922654070552821894888902619504327429031567659796396253480675841306476015349926069673834561154932916691464037529160716369304966672009698838388912538885096104548733455667572521339775968503442901569147173488717600564680733287130904781015287583680626459769393429600610217017342652447189943575891071462821490808627110793924868007614917278111821423955097704901551123505351304041982503031137930428466989850694346240329427332652578214070977183167849476231807838590721313528754863650635357043372425950561164796432151999583889758174533409238021882380359181499692565667104392347523657689943176614760294529856736573260005932842812951447012182297717977004617172826216240164087113605803242752029188066923951982534127868445787578199623533986164499348813103396495261853916339081417344231131028033192134290152739541254969606940012536679721427829452130352129245702237122921907751732770860670595185015301309282461132805206595758596690893768727694052433681381297132206523429604000605329830641091277904136437354638176171772198469974770617810387542106542760434324444045651266714337727809393574451794502668850058118655598746857358553950490786477583217081398452748249860672403984212192519950198215226011580349287006783803122116039038441838589350844205038748033301581969385608394536428851063637470906688179815579793656886600031322978708412431651886176400203816318068437615019648154333466793564316415857375469892977665862670082574037524584391495313104733304977485600097627815508161367104009478781938619918016971234727754981602622348106594810444035939434080796587514947843203018872817082059303075363405119579553292479227565270312655508410173805736575043325967361833956629629561152386401205198377108987111066607424337651557751926571086450403073134200439560240557138548166178791438180388121614253313213841338153811738409742172846058958090105561392879648596229083042430410907711132396845088055485738300041777633365301301094440810628034739947902460383621099370305548487024797005698557122387924737241207186476499892673927493203193167377484441436240335360043043133189457387276689075014839290118949368962345234766828392494657870179065674488381733317662208867490080385105231306012677661019598545345076300652115543881667470574424881516344310649904676096305600141911916373447594988897137201665553050267985517200485282742782261363926198316090647534434638893526986643067645830160191989744224554378488709249269892618802137793176638919906137327787057610084174894381776022585817760672571286188781239919761249250577132658338146396085082831218161662499971108467155424252674295110677401311697021269676171398532388682767496297464295565198445134542686316112425393890197016637029898809415103684192362974275625087755391170162664852394531687767257861570008783122162323585745551974349100336090732576440601021887608819842674026506105761897110705012404172206282406170065096865659263379460290632202952293452815418267610785932277256256059020347074443271932519832107550127872179139883309175473318676947777761107661321742395621900671044886641196437214064342053976462760817747851822653925064680156776538121109406745659785883497977152683784509057456247600009126427186384113587319585950354440079004660600406302905418215742438784704523183945666037638606987722284250001399497982327720197641460894671189798561877318824655873137404308752931259559698594211078941784998354378175135292789569033708622462747923806212934553273567859015919568199661898900039773688902776807164687960428514815330164065829620349944676375080689079560686304857811620600238007980317451589326399542710372661177616169497564049392276692499297157525235509574121195868341122902312985030933897935256535749082517904147066412859192897616664045350629964817644267945980968633950019396308061243592868463521154036272372003971908246883137104208550623302522265812793947042863129399123475221872765063209747304333157653777189880976692788297136196162337527737079421000770605534863528930235051192558594439422665001205600802247896175371148142801456521076940852179581368944694206564188682040981645974878577753652777589862646922199780866409192041734195953575090276479021617773489223559814698042420640407090464363917781490615959100243287761174428839071787845448133544044633945666892153462912922708691889279736893366934683235112267737969433241017867437812317688749318750419198833376976306195943205749506570743220337986958624575964574810806543686784070975140296717306627072381677349681217961983270252104958547067211176094283806561322562853281986264641060767280074427538394278351201039507079006157243778154274252887842829545998320534597742965342147640223578104581799272955047476218439608903163879183413133844361239646567690356457033118618350709212984402789339838621254050284950925282380962275141412783384218221552762225305645219742735450358621259584593473863093202078340934838183684232552473618358878987200085040609846638899461068520656638122606319379661208975505160656302093432127987028999723812367107938892442927252668786132254987371944511931432936619046163737898433877740516644561048329283606874765255141177576747518697292427054157454748006268877289655501647436865773157302243540998407339157592167669142166381531592293101439825056187570142759776599111368528959847082066217554190678455448308851696515416492471283508441808200814527849090272273842747394917652510174831296772010837490233002922632988666462931110249317576955291131408720394072990111714452361990955259791474345959738036796433937714759737694281516835442814110443567765337351643055161420245705108434143902171607790337403948224195913464629069998078066452376208020641759957690453087183545220986208863647986080942968961048162340022457320226746845465795097750475532188305770330852724428451076707785824776360849244403050124624423830336798592616351211115566683073229315623151973093070940489610399761254347391058904093384081095894966834748138291595246697985965651287762378478614396764102254821827006001833097034024009793627378911129510911335093468019472121562644637122839229865414929149500797345467802325622109191125969620692838255841174656314398340586242582995834078576877489966254058472908959258860966818176641377034861307724036539841996100633752198231489116416696604458617084741558538396275650457090492248541473587296350436737406841259696729681561089602799811863169296628534600372868820218663274147304493982984596804795979190580744660837179492538667073938859126690706818830405459018964836685566976779003811686685890825058136646366935934126735154662914127517924445963702801171882386996316261850107900447249959084633645063884903518015359848528866629629693158668234149631848234787735776101270172337602055091221522843043537366102358380715812497757749096432524724651451274539725256404039983382945206335060938242511554100340304215324269252221741371497989060801717234690969018029234865362738019640409318209889058070171803620673634900051508405252998473397687250258194842932337214124702325909488313333812652267719999558096417467846999954966446220234999068899228468884109469895133143567955484309945146556514958928697727431209733350131574873507329666314299094828393582860724665711332017916340849245053885446234350902764611996610402196030401788270241793276131089959707385546158553385646871211501718661767000084289052664375841699139755090057858277805242182467619565121579180464042940297849339715716490308104174708177789444079424114818996269596679990630836162200696565662540383792241191567590445936977579256327921654279488388050077066878463255026042961344913063347943495449630094401517322863686191492259968367259058911570652899250161885615835111310400974785341728995767639834047352936794489193226911938599808414775125651084212819506819079854771043798242322866579617039068646314665636007850504768564930158222496309313570617309221428079736049163294611417062931750599294605808901290913854916168138713777420485555299313543751053680509714093844928605984431396485941039110648873452024245323503448940405087417046694542163105711793954578189599742594652401617507338393796420535586583433867896478182060802015744912007851910390025990389078043762789143013852394647970135331260464481146683438545575722255776902189886750063181394085480556823866125762977113328519490035938166139651247383920357339263007027445525933551005572619703479920826016480868760677000388735076363056483749043196867182928492846271709156230945134133664601198522980224050203232036979968115753513755707184086309541769082864360787247835762160575164397887182772150840665455042584810858792121154567634480230033660165658432947639567664311116485400922267029539136423026652520411226726387024076969942560842596996578482983604133761884064942730279311123006024661847713072914611683627809702199565007767657961617114706258513807178826366142266522758837344370386049022420320314289183639462017897811381475530444793069751345257876140123851283826325676916868234753716023940800924129357334045848828284849143476595124529219478096528287483811961398410146160464637465439776524849335300320440173683782805246145351995728968521781878696997127584468621080667399287695561501173191437807304932433153221449335965299973948079434444909252438537540463191194647298381701035922433400144840938206260109804322367062010815065479997390526896037009517064569702012336349240462738829123084266880164942070440083658195477957516558557633333619580335066472777776048267848847359815910566378024419940153043124960858874164919524122186630901582525199761158640740276346426953030794069754449581581925713398061323960148899210321363517116519004536091716474752098739605440733353647801323435702044009467562809622051285018191246388519849700879884636153315517829585931096918339713852585911387912181484291931056552534747077359740862050229375232002023185732957312139365247150897089610086788141971042330529027320290833530639121692856772315308383105068652245752685400139302909964554031711383937884243785800372553177110085676353488932746034584538716031597721388969072612335581524942888915241416069054724716561663825834596906749695964034105998006175674249040273476496475074440057697302872029451154733748745234734385115423365370755386492853150376900435318639071796880620487880786484040815310865038407973033079220909265715106574174479179827842572329685227877844981368687237826816503930124633757233957056034305221043831999404769403299458278379831104471755487039120422405529855474843277328177258393746477556311115591273922947037123905675816664985086824852642423126056274970735415609190362230986583991205311418933411947984502110840909413019579722389404288087260687711997793233121403005122254232689117707779734250859848317737934823061592752005683624078017255783076661881358372539309583156883761289900730375542566140849817725787395086287413386506127531238430772847380542377085783777132573630260710335558670619005271083009300409452409949160339503676476818902112233712372549135038199396675210844208915358328324454092886055978004603292401822173104803782173532723576155773150847009976337482117471691013020511551011922020532402079239536686674393099505931628123400099913378004827669054303329460147070754731629719533770127717535072565032863217254367846758281907308683579569197018483587231707513056814216638875346574690087731660864545008867312664394528802106361268126643555991639489008154003702902733278855393345655797496652610646838550832732035566682014998099018065342456381924501961130883806955866210126635665964519817128231553517522995245703545989391712967634509534914481446285439326321926913373910804700847844708756625189739542432244014400897363009616283012706895968341001154886824484528908997536831928389527422354454611425741736071677847543761837619820576138336022537949996809339843855899460414109071235080584374463860237325973049957716121711472502921653699421176180360908270083794115067850275259176019882261318129801838802287773153886377014547904303045636683196807149176272572219244302033259598242038029770362052679856486758915342541173371591476906589182012605551701356386825087071927127598007000101735193332457834722361377478600876072229986800625799389953101030387931671435890332617773060265783216038319903592097566906620974951689462177651478120365202860498071087809159650759625181506327672288389719052990350983882811718828822782651284619211710340137970406803948762058205116355199579296818293185680075945599905609248931429854008924638545135698630868538455203495679959362461400982073259114262795052064976622467537553159740156170423280711146614896206617476152666410051629184763752216578216725782133496072714933440649001409285431013555660039427407775712238472885337272265289768618276976002104135530938582246293035147391828499478723491917819282811731834631495721387250027571027929748640083960822540201429647507776188676485274550575453319463271551547302580938736740168967617329793544504467703123777840745157289054440238724209173176652458486133365098202699078120329479237793971173050004601151881250664564998761001342319865168339441738560658394886154078348395541474813943088721022713722429204709814877238859531342941340164746606879027976487954271580011902088397991512930937761030455662634903913236875597144969147752334284698837156935654016977029309271630531341179151147962744129832019702626139899686081984265125477520965369653608563181938130094326126212505509268627131174516979488914581709535401245077834929544751185359742292136260082936300008700434119137303284723853568145165275842677176623448508621265248411295167225562208416427829867244835443298344820475569324785999300058833755768641151844050247258648034172399821948533762668711282909137325250793878989893914962738461296361131202130707430245545470303469610236021931985841483000159968031964081919246550028422271615556532699177202762895458227279535708117328041335544859231782087445208694448848889235130923731294703700749150938780758007453884032516974393644639252434751877644430969468343299523894994217653717459261971753877607114907321703949510698612771802774403058688264207077438230722074544766336226307803819516110615007283837353420284048703367464321293963305732290271429593158980392140608954749091340986606422049765195436925233529099236115621756217378996627023654446120218350532822612398582304379397994642444214585360074366669063195083146728583695558604319361861698304317166930554526048306552421551456361339391706185789252165255683880894593749281553957125327564593559980674077824683037286167717749752532518134830756008921323754616213263989654514407729472987067437279578604166568834214029218530584653004702598406980871982877767017042079907148144561904018846221458643171718819015549836411172470494022790973858479632017179284109672503753304560445436241663657918055039698729652553900919128158284275789306934654111235628694878092900996837332222178128804718097113344567498538783019031243031373608832542027167702442672397960246430968937131811730820857658573307866738197464521182689407378200107758217031212943095010033832115189332858997826308261985617013144464252376823482121622106999901689785430762845586157738707036927071512889918760751283968207572339610722754260565673174658072116154276598148394102879856510626992451817645843065393216943183493934001887553804962617386873319419881181591629507511866586003026312444711337276289316155577541461020870271290673130339532933029617839665263263731766534124711267773942976729922784481395766083948178790372217726083052262857244304353278925464443925674496202656350562686374258743814821861242748346723916297587809074290103636285842634733256787350873265338187939785879820668642751347810353579713507479195762882155010730355407257246751409337514831843077949696898229700399409441943945824209948793103799589353491122752081043051467543652469970122220501295027722921709850443368913287522748807248069911993518573362517101060539812459556676370416874199064565762032733559966371951148853264795243804433726573431953257927631636810202761363758628136921473497015126401823793896605271035526119407733893023398090374282316158758269940220562737753356316577694245386819070054843260013017172119393449270172325215331588432146039592661573176611265701288331153925807598530109684375265073603430276291109312391086736010351673533377445821483276169190956246016264206641868804105549965345956608837932928864904676964702111040395644396103322551178769384370675651010521004950731865973637413794540341011249234726407822402611565524571745538964156377564070048551928691928586253549245171524664161532151079985652956319560322251209836145133571860085462023245893609228815562768344400460173113379702698965061403244460187226582836876833883458068770863623677798222298604621077668471445213355108764723760252101015692433344441926939864634626575463860810133601655932980427052548839212475713051260459982365707402315261130370210844194242245183656247951769818458873331503226818418590157834332468352561551130547974811439010853458438131029825041135018740702099671991862242266034006643668010277448747347306287249656564896153600519406040585378026176388596096820496095406349193292488573721157901476284388311751508407527188465718348481269352803375666258238076046227954546819109239868052635698479701582668961071984285624641515146940685155042743408829200258810730894397189223003907346453692456532104267997973369113121454021443400261244137646227574081214803821584801305021545741178948125503221999036290558680936232343165495186559540850127533858192222431862467833168035591364408697831217030865871367535774673112186799997908838771294743848552099458364414181089209807479455967738645337379418390044640432645678798562308181935038470225410499862761215246037048920685847548983200867478891299344637038665161369619473962550789637992323574439692980511959308283087177375609974195895390562554085343418090038982123844350741596588102643404107947873173224099190687080052721921527693762765544137374615517142802943739953220892207075621131604467383458460622127988511194832788393144370789786184065740907230210343931515795765907347799697523495877375094285849758513086793703061262838121913492411115512707108918787812573815938478129405849391760749690898990413869357589820482414337513440490065396864144665578713045755210577679050580680577117093163012054876359807636702370008000260198713888075355604324398805644805481211085790611277637383192180194527091330258344502593376182084678027976048235871539696041773669565042126450695538065341609415627692701544953975588800510352717810686626344323620584103124315270447946156260681181614026481739951921547084010655853028362483659362719066515329805894027978198509765304973738197418582277791563652629812812009188972882569906885635851870587326200401008724952248334470155445160768864305369211424483442875632558792439124587003670168148728739117998372672175397592620356424088769970922659785344762624173238415008390180860497333522925078390645989568105166032961067817361204614029260896175570589906204162611382941047583641430699848423715092209556522599656113818437415266259782420355251774013987296037041721323209957654295696824312585677261114758955113190788617613988506719824545005870188377805661700027057015716716211013706619281810737601277594867949335851677514364528698319620299702667100590550386060282229410564897365866558997675509391088411658882417758739693279194153392480860428177400855949376611586790815299145887473112419546113870464196517171039551092420393390897636925845686139335339239240382698965510661947211924511328766468239809447617067398395208496996967530027086515006318173554972683209920009387973372527809872167920208245559697516654845697353884318334460817341100755603764394481966270988600607747886216366302901729309122633692716592630666183002159999374399607260204009760340994120568857329876236254205933065141725810912612901316479971083684196926809381327766813367152328433048973618558574192243166630653217456036457263613729241691365382154690388810456058876907446808156361445799021427673848722498839641807868212256263034877155041124037749514324686661428213792334845695835114452868619234978761832814065147006978715429587796616125588504757896735062154346167777511743582603832132758082513117586922976670723464322411380517941754669626499486801222937623862787697575229900698856954583868601132999500995116216392174025077794660951851309194747776179947734231507719978624359201945172006967323244313907962701070521969659060225990582347992135625195727278594157189705319606871724541201847869584134318855270506636158873243728895513580430238042183253489094737873611718826904315267606964178854797757670063512701195445594062321960103222326536259238497693601017174593428588458322374679346145916051178465560793928397169311976889135013042611702959675556050076268694253812591958067904910169117372678634026134036668879360285799063020941752656254243469845409436301994382519684641263222372787060755399367229224675906446095510565784385826635761621646564874609154220638287766774927677879296269378281531962395695991086377464969143603729512638390007599276689182435181547391341177779654528514868729816413879212518055534260700611289591910853901549458094958631935562555800411806777610161486698800916672220887190217357318196953912465641678929605202290858693125211884394288555164639070091516397492243993663361635176298064427811657836719238838003212928291736599498164328622338316665000188429945964053961628299158653045382468977480536561194555781558608132038715232974985097437668594946699024682500479012446004419895351438584072585845586013000751251544206956063455690024306956039316246288767484654221963978078621725013393477144133943485919002076182315016217489506725341580558292290553908990874671550497707194867697713212317305721737185482711692482448959222500849400414613329025664166863936610056520268274138650313401391454844360090542478286327885976365456213720716235812545371976139801174684923975526227514783516632008183327778341258704105959370174767890332604798366853022419306700211329072404378247172336332974014149731586904817956040717770957896930700351444673752045163510713383473574762056957766492503486550682218840695910873519771808654265413723795818561562246161237675699643734692983711087902870530262540069176421331671977547372922978969149009688938519207034600805630764751555694176887671489617549055900987995094659229713231747070584649009070040601756672278927766208111071641393446992874470968290628939128012564990434720790133555907101317497313804439934646986260016048432137432888064636054295814400029552445137670883408079692196920613917782184030052397764244105776448906792979266265052988182387380013038822146683066658380771742385516667137328169727914829519885654241328169769821594100924805799108930900366750459440754054646974322291101529891451030722699406978531704906143500007389992736154070960205098412502384894017824561661631863847903572786487719586126423657120798197569822450345425041037518899846598652923999759278747366376904345024673451392261433888610753615458097307826904652031151960945630117372255918283555026604866156141344382697843996350419274384196473669674330325364787562696978453322742853082720071266662925532457043222034414499330934992011064317749440473726525441319723395698937573195643212261916192162851997156742606753058874810777462144189876632922235121666647697241567168468738935944778927444122768080757124158502144444160549612266268509876795833174057131548757016196183026117264350531357521809516923456415258237161453788542019982675696266352501660565318681224131881859956395892921457644479983208785417615668955336442753577520519572703631242481651536995452978201036424811846916267406467657503120477802380581319458545308547371930434739734148433375977100875265197279910419243374880308638024849888459466557082959072704655727960720314189002209047075607245413354349887614977435855404962262278401230189547994798691718021950279665092476155790333942619182350105344135676627448666368520228655108964564122744708549266483315782484063960786986284738246085072370578397030245952905178143736972843151242040411109103536009495041500063303659998303291086336886670439603182999517817553764120840726922837527947898783917678632631725485520013534942119242585403481668995163802928146077886136126185319878268464384453573037487120927913462292033735994429408514162882762864728310665926716300296708051851225625445428230147711796387773502892227876062054370248372718733672230964552358353258494784711724285476106658749652312348242092935694392363755115464852772179629006519883754050438451769988791633764895111287349380792536536614660980766649883618425270968007839367383571682761977966168818892267973736396395991080163494029940636806371697661184116347316116943720653827011219627579751230848830276198653745886501481901492353129797601414301955942923850647991181139687115299302468522170954427127333138021017053115364782254901612139277687092164197150757004465294465561050095355961684052318837796732092434024748184207957297128500140478280789010069883872951943251382295844649915507700756757437395055723422752519202924529647807294017523051524311208643393752970050664651333458753196605578548334558583771579991529393793361532227845408739509066725234663304585011213708884456646972334500879233237755400263070739206553229656157132551950137558718205898234271159645940857792592177732659038200265514966643340719257568058218434530106954626735240220447849615407083960388016595742871596439772504076024230557045791641081627109923006752612664053396962456267394663619580713773044501607688067207407876220120283264472255209443611270340916200571464696476323531720126235879841742696846704756759366062892105225955033172913880692733379525880955640913148706058195193203785473259443528230800551919403797918030011865226358007763770718653165633945225436952194802223061981322449613089143028348800826080492284707297306997344713470915672243968994673474440478879525707273195151751254928702792390086222022124669121472614680044669793113094909189358175198684890255432963981217905714171582359074938192595341047124219132678375571342188811325070827589853159884815178967060422722918747365339687340494264504928485345667598106564981293509056554235012444981037786360692446690253458805933972409567041829437607008891152582904619394096549563059180411847396529144888057868317014402114901667994928658160809321943017998938018335474709257455276669584231514418666947933244565217955874817676076439058039764747141803035625163151508749584220086856046802605090788123965311458865875417036848440644690538432006059463484695170474426225441874192468601534192685327386675221640025019566952852922543207467835561097886338522925008021340664209428700425452238016194400957382168282908196684754428591362423728607682877996838028700784570858692426319363189859878117691713578814631870046496783444255693763444869782611828172276507075689872251375724582022825452199503820298080510070869809022268868525926829255765782912623966518397631475455283451272211028271970121659564084570168961887583987431753715506597323438818936699963314605794202260120002429766869065603153667699483640047769294522127714788935835777145378011853405066089368325537362907973242343011947361192138045099427068487386728363341266098956936844317459192987342228125844843288703889449675541027198583687334286062484641095636152808891101701492884933318271855806288941732588279330193534426921418326970640716131065280519293126677654633662041622195044346665713371944961438895922518095008175245348533762267264208138127245503393777159059851293871399457542313247319569619467316546794404692781119226057343407111707550657879290429505067909058326639590191664602017667915903468862522543883028185130044474803870639967920715424120745462165967169384623474234877394685385331359287780654859484495029458539273751380227809525233165919204208300424392276080807915835212863293644653414949689512956792632908220258560319952821621927690976238321428444693613959358235910669004280392775217462095837305082117295518073006801587172890498828632389381942474327226696480331171978005721861446063569755178539097367853307059506892146074785018684765952962326657939820620874086483322071827494656395946503460767558237895546536140368754965783188889499433605087161509268290722576685870461038513352491620051737952110499220873301584241319501999937872152064286970397330278757281748839998695838087154726921182721932239489983159141702916059530477567358310451161908254549808907882613878333090177205376239813972906076040552133238840674444922037594343252113175737409513014728841715855321082220325503289433110150348333274271857916307062253748538840663832885173794100920674279575675986933043329132838072805582360189740866505961818791976583041001662746902726410097772503086590370039399611764774898633979562899513904117424377965330999823269565188770018070651774824807821973457162598634631560952420900798087619442217582710043098914547336131120334949296366248639204253021297338668823411769605349218949446685980362367187720021362748977984930661218136229503360207891101120951390761083016358133095566733824416834703075238545666731731257310033280879549773396699793250305729442123813764837185394326071775687992239849138915164657749572328234436741595687176613467261670271066169632184689928853430252917699879213011444521348862420663216669139263131441347107979309298895064671161637991010184400908301349825854793471875264484742460234665177881073263309562913595024072950076121792194956453172099123126008814897245599974555679243165096395127692332467286887760388045729372512080633270590608184119569165410563273247410561714191131638690845182304156747736505871342594860452182644853618860259983317396576784876211442896074395939607687717762929716791997005798109083056774928893881798709229427227253558211712292495826159076466072907828257434471081989083032756521065035334200325227706925677215469863113259177986645272727536143044062857429031041843116519150313483827693192053829426175384303214705411338874295274999740378702849161168551040582895076139940448239569925489251622797814593903352272350856549327615072908322207136481843710181124714076434881981706641097040710462708548146835876968814043218180400098304031956184569047867104710467370924813222749997385747182820272183669465360017885484070043688630358339277777860590183436810138041717186603694975213007971420614688238860629089087737101294432795232073688098037344606200021885402849518265988758183610960496713943461873092993799031666544435482219316569088034406365439145348831741055038629011089685599775137354092446294817834087488834933062575333660268805086292669692351494733290558551133739639787887568197704103449882806507666612851471014852469389735657087256079213626386211463555567927698718094961093361549709578392675384116494038144970432314585011876371452902536718278273066779219713039088375096364053817152889257632774674935717884798482352812312796749952620791554570005660445430759770572942195697711308551215363408195326233891502008939610786370091747186552854459914841415990236679247781145869977536777981269321873740603879917212943129273255789495322941376683025027745774430587580022085209467955468317157477874904188274460287908342183713062183930878952167703653910588635305285943396113710290320546689091985239686685776591740537948477321160976769474498265363529067653197360420659229987405774044691196395016347568544902283136842810124347872076128355826954562965459623039022854740359836226299860241300484165646607630843931959250150166568639921691422143769264038619968387516901827828977535646035658389531402092630285073642260179337083119081440995043123063852054428814268868695465576499154906506755629433584790591766155122743355961902481752394653283786914424408534413497148765371721495739786402967448377594748917762542134321325649093043812884338216199962255741341038648903306874868023244725462551037748706939711517107469805606969415463213391103479358117222245060507112368994967838115283783450568824642387138189945275384109949214817034454629987699292495569926139932229666937355277683909230429907045860314138244235923122266301448009489860789144889899678244977565627982946174080761800841497013881864647430496596295709764160831718760171071224244494474677213338044936637993465600302430667802617735515012544101137607881933492472626832011367004283300755362512408592122191408243033396655754009096445456591073135460615178410303181965976876176515411739198585706964575046955895919059871564398038918024651385234014042222456785579863526631080197232773238299480451373504005714415518357994354824506925271480048769666741339395140224891615724784897261986167083709373709958884914686150147235509515897947494730602153493909579374218610563805059074443277536926048457904406038455259974797858392698079994807581055064485940262704565792178615900453176368722389442114722589641757077743221946404102277522176443237182122285321551763811747416689032635718103379549881465642519405206917041806264234170995500102370201867100603059627066739347448344339332246385350560526092651355132860772015361690215127301004091079935991011345987212345448664591238942862531967993193258963138560761331036895147516214511183237949286878842800259081471066776354733862409261665583103075160392310737595917829217956455618241092063399199422986922525234938739178876297277918927528246287405274390449661329659790033074228037376183165811806716045627822552967091085467631453465043054965972736478193003822135236204549826032551751587005089394597212796692988082041472855468431354792819383988954840461262059711745000931227396072454862233915540259017090274671578576783983110714332219762196007625307283930601341323683778956366616161355314014413118839920938410984051949890000610832092793432498926724353401847207648732707166765209209533689905811228656595520774967245284086749378326654611449325302245414669954544322336419024732658969634289624959018038760565616607351032359241558196136804749291901741082049191169785173575302292107062268151564873019018958917868031706001876474336889961172087181843918472163916481159039503105030549894694969145737270370207141991279940399263460881481905441730706313118527021186756496229939370336268852414523037871579903406641910936334231015853244429321750850780296019639425198196399266416938110650923686258820027873115790574778301788043479205670605406874752831252686017859830499000522659210610482135957584637388468578645828771705037244181884125207361698458321419855258926406193147561751508752983674182929851160245466316295142042397671730306230321062484452479235132533960499525130103713576616182831727139118073313690262171145098837772989485666378391513994097823941903485522393970806633395701636378352736659599427957010579104705728249445737379999752958129753337018574378421167368962326274541970654089064721059468957120263848410708549674972484091564816673942002831382594994177695606828303570853805989906912011524679751263438886876008230707164469016773320196844637313548620650582269713814983685615238341137110534428136137578491612019782023378795095309320716687344527505385181972907999790879919913873562867697363524369187148380823099256641284661621694448844464073412263157136738516748213177784860291912337155421009761187067452265263559154971565445990393935468372833314670709060741361526247667518729555667759199808926619823057696855299344424517412774916217332246689679157261020736536623750672224091412989235819871027587102992761594548052948413542920886971049058217800411377415809191662873860276455793982979037664676524138173264423084197502834092230090660685477342609228614380327355664751027151847531854719886224807610553379025992879576399253716118356395922743144010979200856680452559401186023858925568810092764886876791613011675475627302612773062912773039909770186102011290739722162554152081922155242121877731714330895925617877661813827802559819186809735810822380137615174179779172176235143414759644322511885283624932077501442926971237945390373325888741816088048347169303730704921322014067035796114642744574110536808105651646481109136213413916838417168349103399793008604483140203932756090151217559032401955838319853651166520532083518531211972756475461834898360321238887717226604797324799746496586392388278739528201330106731752498338645105825525239962252830198693406755587127899172421756355507678385700396562819410874900301966138989782216939344129444287980147992487861306244353035423165332643810391474779357215193072501523683964054816139440086426455280010667370518108488952218653557117818858120932832780096228908485533264791379787531785284270052565692864391736695963401902806562619846475489683745986562966685617315562338629567136049957119818444006527481935224573745576295052078847470396724195862575601378701640156019664222811978921323562625007799485285327070732964456861106120918844138976098406785955613462376168442146454710761041356523084745457987770578663863730892682281055342006390029658623807428333653161550893518751639062761528058379010342384646571754391505366208474538977276776666629327869999229437194213747019240183815004236788929046419587717679258382797531112827740591130456768896979024445127150447868307523981465956721990529218833361962435319466496869340871239914698659305774010103527576221898015149317263056441525755699608073448879937353583922517881551869105213337158098119995028819344990192075759181762401018181174056825774771226408910613517799502140821432852840971652694058934914176273929246886025543833812567585856230767391242506259542849163488386073539814451410877891364620481410852104334685233857543696264210691168601291952620452334074806636257865779384586764880136104716850038934771988496624152394372488705316291965140726909964118573203775343355846542786296002213326931074807249539882890555825789255380959005685530711255380201277087068880155680378605140905710893769931661821931450106153468197574668429463419118214982335705431895370295009483573540841607176649456676741184280699584584340123148979971297811297009910913001576930085488294101355991326205050370497035297695811045713318520792524109049858400582609812030839836522893999612312972342265963669994936913948862662160659228391629353647444428051982744252859828958331548019732434174715325311941384174226261467476575183609767445920859081508219364661202099642012016161429919602583604065801863145325674599153790691388699547151715004875088667233182798876936412031316170032996693244077962346090217780813688080198551143626606092687518235565737763791690586246098047051448838155326251099091271865459915960682941141519710666695847797249292485831888531323186054225719590043759804397597960096581981125206697695469523219256624081707923149572360437735723535474182189233972712970598081503291418965307579828676578961031803596114593342652275575117773075300269913253841420926534919586596386145322207366399283358012418568478738190652377944750273544962158750265878058112510403479966267742236789552311493569068151682735394319118187157617655237001491013537695786969709281863012652601481247572588024346618395531364619262917395718202268250273909996823698041910465469080081381700827871062303066925081314199701517854370325346397119395398836077590645726326464341266794405518832308512761163475711258236704713330240481894146496152360909559374011134051611122901314635251776374554419934080138313348740989394460868909211482877133490206991307012297379488739710257581550254570074765414572441743006302798213466426159174801351141271700849035073537125770503089695854950824477729011249960821976707268163697709687960884796896326965219656764771591729106883095558922472671419314723752730663986634840729730510407281263760684652668433527445787293152230750724293728272735888830212823414957680697526154468897732865587307241012475744336273430516684917360946473122075213366648106273824750879603096706106190882768615852749700077508519419976000730233944754218623766196849628791925038342405699445270996042567447785413625783552708749875406336838243771549686539697142182294475282590447236749771467823047578441007774987267881086876745192849358665113715510864302259900952860108145638806462334829769105369623655808102179273688660180346605152556125694273183591485167523438100658203061443944638650857333497264287509127366424323116345041678347544004799851339567250525339561596588062689155097926008984437011088308677870210645304648700988987566939386852647268616371939158596254340010908989299948572949162618754036479169465643538169984587917172152258241816709486433128524378686302088310764699351335323404359411217966461779268274088553522333692352289729515063899663996687444338356333193376432737433914897868521573503565640830277697894081560763832428114404597199502880240817835313189805215124571489162290995184231164779063426552898325455603384039411519843399695543180691629274173133411353980877748064280632266781949278938856152802427158999186237078651093444918850454447791266842604582485981216244357219507851574491323470190782326108348731895463088443612098133508841026672885317184067199448296063316383970994707950285527439584564907760788298077793398500994285175928051699848411742716977718740404114254666758436992701360164347983476824362360322041727015899673500354624212615904798429804162844621080918057522809595419265106926766424812992163678063471954945625029373444167235614792624434657044275939373108331494287478378263645426694350582051428866275096026817251220419196504011500586613103426488325211681217031766432623884918553237747979963247524142725125651559231448277581848703057098252663964540981974202863784776906652483876441560357353034444531043583011177924192040006655079031760890064274014845903581091106827711294734931539818987752391012914507194288011574978315927087312074034830758896747542438630039276248185166641724077509831605510101950310746617642692933151324467647554738244190850063999851224709515660983490284058561294157407595477979906359520576059426148549299746949105310463834229360400305305795362452061023620180663564289646120962532742438465306129952870688739165974352848812011721193925163023881819716544858878501407656266908454095635602391187398393047119205265956352360905587105386412590103221245626103286642091669823940683129059876059803630830421248597393708310923873780348299722632658859879301148187547602399578557052405324638330802797973864149397178576248656573656785722546184697040771220338624584720467874125745629669886566778585978167154624935126539859534042305316292285837060458122323887290636758918721049683391415216332791684028225018425965861093176134790363482918493606491147263072495648048864147775955624333263186586305637001387577443400099291470323846143990034606705695494472366889475401865901836595240874285271714000472129233688289198186119194938676828920119936036389469327661278701446166509431078100706329093785801996906087009363286711802695864234776781549475533192329743979863741958716902322571571234705059034820407831907500413900254302597949423744183917770779780607401197903749635527255982406822532332183443543374222919660707869641596169748594196794165121480986435085446368666214089519150901251714107864840708149900433885148384964588612828894905390702790749852249274143306578199716511380995652690262219149136372678174145278113558117443236293281222978292758152618460239858400547964756731599398612051109391417746114470623655255055425036985728673210061668226410830492099010120198318294928351748783364344200868798611831326757199881486542641038005395690366455395760369694597834466453782221149760107820875586795668685494446758610400790245665536049044320209411296822525760921804172983448666018780750548468430131424196465522788196215011128560995560818563909707925326290798856787153602448326154039637677348886058113433686568786559706229704684643350358741575335609487867171351508352417646569237890646789953892480499612728206290301212305215803623950453238981311005882156307743470819103409805682185022155413154170815927587833713522174951921738248368482241552181006306262169030810035118153855063709601564797208873449785103951049367208752089278177498220121967823670911825895670120649422161592830384918622935714771640835096429723987033785631027336356596883841510357685585401860082255571319470933401073415125591904646357626612008037482488130559175651144837646481794856808694309626054842308201265974114227528774901056700953873459851287185260887883896653548998381840401756004910119409011920205417145495782479576018300766116314025737856360539794492169587687362596541067022935222181985948934621574933835895263059475353263200358984571606617021182110037903117480713297550055805296241472772151491137572852847073992240234294936821855363763248205602726550610102680303309263080761622296792324800592116868112500630922267838914792820134480510889138850079833233500807853079840126778330240670980445617223461358139493182733524100090715441538186201731938377562161018838982041283246034637713312061090778793980672554943405057603052867860261985969290682398052390763288581569390348962966711548494824695726974240636545702546107382488535263692053353062080256601190326432168687613954336065156913648929284029695108154233532423781470856729740437698160228481475117253041841528548687229096011430322705416192023619972425669923068368243410402820330602400668349032699442712961225029834257795495824736035335489208545930550689042822087342664305292830155968144402135402506000500919690262997533787674442111397368649497314990598325678461317452120821411925177863053683328936840228320088790989883280529718309288684755056583858403957576753356035113549248264247041338373296461571741161858196286173153535546416436725569383332754399971827226793452916869089363931530695217022253027351709188002238244031704586277638825794134446613634415346138289610491131710738662048348323412998966123119502615042363797487565778003560384573227259317309556800869951801042398781110661241780866594158831138709559509701791621325160780693387078181937260121093730869068232373079984391309409268859383580537575960004153790313232367574636116708418657707332215846258958943225248109198333861042385960045597221159205914309314994931337307181485720137544057465416052228784575406576596909167897508382594146757594294409293685680396394844331552237189755511216685257284610100650825522928006274450363808890876628694570779493221102922829890846592915398909635996025974681142820531988122631353084573043740278975225310704691617588815193540606808946833700097315520159368252932406962364014209825121570673523458104297373886035675669899272037578849437523658917115186502722680870740221953311189181723351899067735762275297138783039262366750955157818733935246068365523289530891892491152597861321557212556551311110205182987008492915254947258013082414937346068794130537971350993004244820807349658261381129603246730087742369134163131516272494537428896841767075818513768818942866848712709136781271174436417038015062600060861919066275175063022935305867948957262282510935949154074085220636021964902307441502795246541542189508997679447332054145464065553530567230195756702278493164828576126764369372690731767793150535589539309035179558037185273258485792759500346481111884343322992328528306804575827318108420164740676148954875441225302825653802925627162572337774759569902350401454867928015987317362096772647135075829459792059311904888384563044149279376545267244828683560549017120383446288928768590308041669903715047158216073779028648089101272510253927507974854430964220009774825576188335247689195573175337273938533197986370806351297727220845859996969431272272407597111746891249759166693639719385047009602608250451153040315548215199575967859553083062486830469393230213106623537782281720383584165582803059690261825707063234970717251456939774449530457449751355240942376409707254055896780904446864478240168427358268414157619291092246417691805307273623727033583418325296031775474261365175784941936638205473443631822932434681715870690048734378038671554595328668544126308372682901898407431802804437418930348326032592747348497477965105629781071771340485224388264068878514168076724893706294277247614516914799554669367574879498871235120496919195662787479944792256433685869792884643588199378949779318845819146787105192050109187889911189619356912577955494416339528445355440087583001706616490201568616132283804636564014971511144334254215100119225120383713896786647612866626582210424222272898165274126621246878949186704748531652630585315444749863672580296050559827870399539455340860277147603836187135391702304342051517140988873072578408540341332306017303788959398220019314264428362163623602370323480735235478600967040502843120222816579570106731608063018411674450741056493112103589961484676940906417929242891893337359328954108057141793742178399794803535805486783073863582844542190098835766932452754307784403386240266495479071500037959510360313573937432951726809646601270168113032882624626295911489286458722401087684017298949047027591893324979673505148183653172670173167421602107040695411672328523421134285171301823911084735727161360676689094768934947111708164702878540044662437146684532027997181731066013015784569166747502333902563253494527166355782534132281083505568789048682901028023658578534419556780534063855584637096618683180396919464959477271011740354032204606836145223958201271122647188368943593783739475930669192322426095826038793471037153001388903770090177664820918053686648852482339319829986296452024809629568688858968403026484646744056433018988350209142780988882026741101911565055942525614413899515092952665320939204776321741187339553733016370003461806144725983733791724653722186914972423404624466303415210690779415811952488499420490495078552966136527780653946053097610254701167744732224067511671923678359987299574319483104623428030435846361432861369213551276076386859688973227750503241130398693963813978620129060651166733631348660893818613069833065387261631740447508893887723887202049001512407981159649669214941747713214255045104781029433965643049971178049077155810962063150815602271714089779874062560397886383872321103049535765746383565419323143816695777558090222057322519899687861878700206143990822263559527558517703970718503874607914802698347843139549853412156027734878602027305448542887637456409148819262937997733519510472454138066150339629304690927967534751506887340494233502077643700774087752382300473743500357790525244267576000540940562495849979432799130793948119579662529367205899001418089931396681420907430751839544974962958379342943181553259792922841527286286752512160264182410922735870217514408641933904217111720986114459624745813353039224336670914447959466318011623993837771413832828180930865384787836680197063375761494253039000845704895625009135982366760877008421603957454599705097066681225531188252604048848117166573598942698485254954384671474828378339164814283559776930197018908228837497242341357266231419002305963606414947291769071404631527743427320064594610660908563934533292904064618322961487146360280898214975328066352722038961846683262509191736968614538949342560201120143646529564212787910228076280929050908152656712654515507354845328844382424593375639655461927328556784945655812249439788535636190445606773122695536487155827719719579513604488597692966049250416988752995979053360663874794522460717971030622010274154180974096999223794288018364456148905220139144456473265266293540779141346086594174089800418531861782930593828788877409017535682718126897762272762428583967561035054609517483114017718096633574630800159232155206417547766733334320997221108742016456885609377094243437190423566131027636526704094531723006455317805777120112777280474606443864766199725248985801435149335417958870125098152081514417347187064339164348745543829263630015940944675254287838595095863533555070975238195727580182653435769938083620693707990947460951145837986855817090628308362402229197661959588324000555464281306777833285686090860416495550145622973011559679728095334275722331895885172087067915448051522334065047579818867445873411940933602644125397623630861913721444308757311129680408932895987369391158464958095988453919232294740092912101460484844522828916941427815774801896100367841590258502328577238678963525631569574607816431584809015219961049174725934989869928601263280456899466448247637154293753823634158452109486706478783462544667010928941566869876156467994063536350187201621377972453206500296944061249102314212331440352622772177108943316968224606952146047470181074759696718308412298562830205809782915442064987379013551141617109989479956969723403724916087446204513098864910167759813281154098392249419448193935895184118963213390827484808829121183707344178611059546594085232650675587813840852423379842437334489879001850718397561266113463421434580309696009087684387916626367739004025620110602700230630355781417153919687334707953283343688717922173780267396065173015551442733310625437291007942122788201934595464021955214858693444500340780965340163672653005192544553868719599129073273042014962484352058417947173498935763581163830201763777543451150660311779529164513777222063260308190392396705527752709935199550657288018167564869303300666512292059780707676101646898996081952058783598257040481018894626985674215142213918668477699442009278275654542959690517232515896748897428867669508331984379195745556574187262808757119131264963994928908174936448735859803725304959471622003642011526701207524313610977294071520718978430874680016915557312460930271249459018348357964444374371490113756172805414480088966034754849186451060722356371140220066218503265222069751006249107183004183095546202574125261230698612985404494973004156441621158475693812581226065944733784798401329608998418622530250209615022481489341518843121287316579717457739265167394919204711538766641895108823148637608682566229286569470866122677647073209244792818881275978963646295035128952299529394385135086369688390741822455966061164764723550828904989314920128484514437538454645105704615994076105243152548467102053454275279392933181003252005053635921318439957638077326049141413496240096224912950344279046314037617141796877832572836250145165872887495212449707541334866770777618373772629027600730365760971997743684625967584931959814286541819490837946557562782123086846474470180940526799917574354395400660195660889929160687975181782968164822747628935989932519827529347702565742629642548368834216798287686152193835833766176498999623913619835207762130259606765537235091378174257919972717811304108457310402379914436894944957531367922773365438469889992653033562866089814317859258792101324059502234737337143193445378286256934195529838299999803788536404218538352795817075390652865647160835186362768639370399814256512673571539987342637550667299515573309329436968290538393363448333037586621241679625835385426610588801881383369810917865158509334283603616809466044141133824638707020818010512687090968737771083615300450372528096799814511970057637352032118447746300080464479519851423739834327374722375081877183760852714457796153974283690191672441471727001892339697052566457357843594923876844491580360612653732299298790693673211942477759465747087455635625930544803161520226420654268634243939780795217713721309589825208502067551842302005223525903654455317076239634930376347084603691543426236491965613417925007967966359368755336414189009872387259235203117218279015471342596680481738194454181455491547541945684866519122439734176935737314073262540671254278342849993356939829657722846785672787137728032766696900440482811660847669830063186447626941222092792799065979862261352559817102523643615062711205676946097521089009291861439216083404136504513164746480076348802726184391526671032897957947198618171264843510982788000503154458463662337335335746107231145618028038796091924835060414326925263129680468205084372255168137103913398938419549761848935830242840512466464263542022733659093387770735272734731109282201322690611780269748547479902854124879090273537140992940963114273112166776823896190419767321137574646688267323350914881939241530216493897990978569939440035567198108421176309330616544766964349543671638466125888033913266116151641302905161741760186162076007929648974421416400148207933941814580942013775330225775348784106724158462977661056167678952630541282230594772813841422372927105253673417185000843864822456744311039601368980943437303519361385532299703720739175725570213561831430239496242421037540861201939378697173131618187035426566912983778399352955773201301330051783665682457902335668426340251360814861354562283587940615749026743630509219514488373178815267630247968459197153389592977222239746954705911001633044942157190605255036197339625139940652527990376804703955348319737281321886122045804884051916861116083229978901559029341484054470072602226896524187155030662543646591761214258497106257536364117348541426439935412804724783409273659283199250690198516861016939761628681909027546199262950019569416251851260938128922370495897766592046365097601926965853827501253006034697532185857398238000007944121021820583725463050771701124996037132326439673474895833812705908320597921343411924255367995316712986651352110246518938063999158169904385566928114226449552525862574582431219560857789628640205342799259636682738769758289983024075681721707680344997162040455993516328535129546076282853873485828726272770727725120251771690091549707628780666126994949050588559410549852699647161967558616901885408495546551795945796585816461721265303534007816353482518772766082393044174908134932879690694162493651543901667089346686367741237203046204483526399942462253327737969295925200879697055736386361744379291122747937780693581155604684581646972493294543966568532006396518115101946894114326751008890806614657199315466086316247952057819124362265949246993110965767118177537253187560945680760540133205194609625391039461751668451888053676223808881569298357502868144470282575511235706413521632852147205205143316938892319749739267488481460173308319534961583585795553978931070844173791502407882362562521553147501172592855933977657611008600035636342432456170187519897001492739452025298132286970347173175065195315171963968562364343351918540408451299497474007432316932445113395028130684319912404391687232018236818051050382308859502575935484998366766113158463945392903330265515330478924806714956251695257050849851643537919201402331964475882651807081428387042210211989459428643502119653248192424464695609873890526121721431982950494920793621679418926199773453261570194189896788005125022452749406161799712558735943519602790675197052572589219569959137117591551199080450231126715532484568400040792970772703408532903666916814909782639983778313282542514741046759731771849963257341540716987656021446141005341537885484180237723448742257950780292717387902653734332739711733223400818881891161581181079623514798978092397991999902578637756846718093194413644336446953066270859199130187297845781629413201377260782910740247149883909141917242872034725703452348163367656943770722401381953437131114428736646909301713953295003802354572225678753659212502282891076420435394191880835200046110270894656837606612279863016677503951347945839497477815477347793110362691336751863907426893081997848162861106045487439681430976030731727544235222951043088798747241900790219495745552981205743093876900314548170648073051775467676796454445555669185902635202536961348380453752456942779758498505978995701824896039527580938185028016683524238875456530581597515348689779745590939536792465665340837952296010759792022222232646974388592911946139376829817604800847732765531587422385599664734624984097191158139330715461049135407678322388775033855543228201190607919976111505552015990789774258191207346320704038015569041600877618849614587652193459574463192003254330508369646233784313958666456025322741278852350125215475592372773186622389038431006832524874111736056947638826172176386528756131279659497086383798647052153714636295804580535846141771577986949033204403324481635749712974957616014950901354595556469822761063241021727437424256531226045754242344528683814854492124727353649153926899821356341982574439205541153746341792809240799684751597026519154421077509042314049243341822114032835033142632147254687040565273743438199189147666828741579999162511184412896892664130965711776724590059275289751398682200106645298298377103419277429791467959393551037832552383063150826448750384663637649190353284301418588363149836598450403203306604551842742233270198192897763957438539173444609520702566178725222883843417211320600800899075256859454048011013253812492148250598894880198113561882764586712654705739704300272843066426358294304973180058751103560593953917322614215950867636389350192626990149440486237263198305149040954029497655365594712416519326988369184888435307511708035626660376152392847387668348997782964598634085205542670400503968782892214518330497419536230544576371725418993209509238826993845830409634265466258051377347065378473144072179935748066110467160963937889679983028570593582151335932970063250835487194413141449808500186075158913620075291570146229690922735346501478318809590343354933891922477779753108475626484856065674750388091604193870972446197279187259200760971493312322282941221781414819354200610725518959802123788010058870929775360382162479393588198640250276627828793613486520441238637231754802154944193284661322448222058372662194360011939779952927175058756138354300334169229247561661356369062794701358380972616240458831143570464796860645695073651656522581228593876038612484099535836291566967014225241790420226990513391360830741699116890491229624897358526508235247641079364238121483252794204780185196201483654263293496224300541317309499949788159171860971109894030460530735970976349860540820756988966746708975211067335654495899699054984823216382609184413589694747841532981039382404659015751883584507674035201434035635441927155879109052404857348404700874175562119170096708660154519448976130361429978789827642163864270124423700497065917038985348853910978513785693224845720905582609215189685807138601061031937064854031327050838276406576224863098838783314983133173155219848302835800534852792047358635300345648086176139032215238845620771710860306444746711871378214094262278346503051722119143333737507219800334240982843336954395647931004531240668395228549670721614599267743400117749827171356699577956121608126090028547092242321665651004131669427109856890829292384790569323526745472756851272328673992776015957184906803558279841252171426573467346924928532107980452493193728915030657052277846608109421052382885464566217052695526600500839169186944287113087951344180726089369429745290421503990122339231647715640430002418797273702039451636754739629339943764205158137495792545901389772880176936122151734267426610436692265124282743337794439580535825036478210868313068809265033082255461967538281554216948718090046263104519351429390888770045661146634694036077245252643583363048033151097731549853963377342537881926241991819184562476015339032265556494878068938573884588166886941493893306577351963093825876468785640554561556112949918171907862210046378394251812874472718493038004794514831067351752396568869868587147633815432658079956149370869562822344835608962054221886671598929585339178556074551089243182595620345637250010925871361595647806864451074768725564939325996180610395374357681101109190906112513039440723733097590052798326937125922658827146263639522147218747877784186177624064069741443242191886740180154815320997081365201228809154806668063397786280958514385224797473823549044147883101634419092990407640023211323230569899545339801102569215408803224864472244287609745495767008384026906205853874776069859645274250830790358950645347209302223565056858012260242131630152918692452264208019193653787499566631083509419702198336885249730545917371157685252725828803628260533766257728978477456976745444977682807097694687741372724872950287269152288453904369642158673566728911877578791037515951166269210471822586072597947966224594817410917351302574446343506474829977354245415693383554681012401741236873209636270232424791431517864021124170560445774226427756176459372824609106534578581191508414348629298389245513768382693746864559245725297654708832102801388955200303930499010441625008247889433038962449911126879846479969435666396038375199403401126033889375144555073378243412377139523087397537042157868616895973208106071794346807254454473337371459484548151145860221642372243359618096783223523852936598662329234313643639193020987982348714386668151783100939509611977011624302804903970701904123535553220767545892996603917428220920063590304816237617048382790504044426645240218649561126974362822849444945935367593408713433377156338200827218986579434136562445914611196042877407843879673841693848351764318679553747118882430133281678029712769025391265750258441383689281564325153614174590719388256652743245361403694835809065285977770665752956180905597106698156430235166539642461490865354251591942569306947588670799797753173018551982595551108906659829551617752144162552284605699184587006435185652738362495357456495146897297524104525906726694877908528055585985469946857705972348884064423463627038139696330102490788798663804831097042179716847164678003171896425228441108363290577099285729362381952893950701076040190541488805760881831372494317444770171930511981086605436844414236227095348279217288637888255573454491033446578765028805249129341057531558953061512969700977601658013646319831337666640832154256838136820968050400056917607294412006405253174279064498344830372209008120967444773741503995570573726424909569509946613941981150958932389710252933744535627407133501712060700312474584861354313424990997202410379265708830681295621540594482930866678827229675032137941980355037115635432587406831609402698272987968071982479914647893307928371102927720845864775925605361588373787344497125265089964720203388318018573102829625174185705508452166004872152275979884775360675218725910178921380051589376572612041848319962055067572212533763340415125499795774081571437320666680258929758239450962062047711596315993862894111831044292257422728975035698598155732365687832455849089500117648204691627769943123741713748005356375545005636953147059594863564262535482538378586433685087129767744595390408723753371856052629558953225254601598068406728873472400989632553297177307568267288950483224959587495017101497687465239324774245482241349132743893347963276758229046391698269522517965430047040225866466055643919296906756145872485359328372783753495089620060626715499186490404182925690381887702183515340382652109688714500745723160621813879153418703539468087710947857311653393283110272053139163427292194805746431709805728657725507597438860715769938437442351126520343066482440020543237401448402933728255173303353097713061597419733347913483825118650613475148107555305598341959781769456177312431256011449781692578957076764999623179682479180858063162722748132086004920598747157484707650244942561943143902917051795281190309916463730274683007564937617425026808925559851237372973083495361978212865816665632516502706823963781047146722960948202166595028211746387519768151178520535979790017665246328631716613341717867383965625746692762871265805526728048030149546697888018546169716191724581872429910271964689936356414569097898290049427414390820911950276994641597011022975979939033209333432791308954486243721731390508321684855713240012427409899419931707588745440295931616193107577732740182639359614899836503594150910714993879426692949852936824728838034576024688956052249383783736255877943740049885111475251832247227721401459930912257445702328020239303866888163359367079704591853842161805718536944401635109145551975108755321872559844613799798444782759079977075265980757639352489315507878327292616850093694990935538349553676741136328572495495374682089298960302285857383195428362444322926740815056717118875818382016224122192652689048066800426173914603604990716115616340061129903857438861573454895849082805700624420139585272059007807184523348490677547480937178733360021131974546052692657420314634181688527666968064819608580139291339037179817340250357217458702240050991222635276916828339197248957407134093276699114135155248631901037169284551507652933489230376240853260702925774399788884147367865887791613148975955733084114492124693792648889408586567448017369349458360123213242838827644859205485085159458584974660741245819790430690556750007976155076581794229342961186645046284377649523558753838600655257076918626826813415300422899631786226065843284183119387747957029059826857061389244509298781198706479116610496905759200412700215167406160668483006392183814237246629173205229849243147184165156286625742554519305663651376746102602220931479758420990298167599633546484121328671994494542108710923693157966419740035360444170225159933281880178296355298678424519814021031196521829633230202795204847007918521671532970199828584615448148775175659273878697873907683463275657954973790219432819403858776944499646372243707602431116607800347430917103400655259663650108117243173225654527200496111661036961933114280724950856848809857108842709299485146865644341345967506330528052612219570237613443267686833514650876468359313028168982202570755849854235662197327632170632470686064255406233309870968774013860849011586887700221001914260360339316791938848646659162554850399604534901213368189853068511866610015253906341221619389395270980598452287136568356448218766450859352877826232404162613855866017825596929499274622118782462927148858534010020159160519811231712881441625627518759762476392181634257213118984360765774062775275247978574431900705828341033438404161749091132001216727416858273441780913476892867260710439822780394413900908822270742518417438618483803505145824824729619274186750433827052663495153208311446464409286942452037173677395502411682796894210928084044801122980797642869340429374706759699067153890117625942025998701226039323746848673515863883695165267208175244260615844742766685862719244272164734224283829308870286725144210510906380994618535325279353850714408191389670191973904580485486795053898233738043633344936868084179133220295984745773270056897331060845059800214274572819136284295978362205919802779142988863491409878305650644598538581193258988407655003173215538901146291232448709765477569671950924725939454783284401203444680691147169680608477746408531873511910080972807920737344886800170652577987141384199952490313360323487207243268090326740287253325955270081002393713627946713062102254294549576880198357961220331032308313202357609844238812346570872643848017851662808029247181585784734297043947173498564808676696413551239050408527060824323428572241139387667590318859382043911954988967995633379226468861083172443550196778649898670308442476822394723304068753142194972723344489439793790168738432843028131062891419211229688344936113012253269530184275201578591369415673822413328805614763489763289496672177972547800700283265458710496696186766425837017337766497154817558690541782835421683309433236965852194597713447093209651765023346395228059914912210810526847496117018750567112327012330895568715616819944993403092476436679701974311139919028684765231992077784082872425575616731808012377948901389604869141244351546767204374570357858334781432887580729400017640875101297925540919120163297569978418596726704368190962992130228030937812882999603638350750831427628145966505673307721636331589965966740369621322509270666990835926226875951024195371881484233515402112337442496154934798877699594609071319418769980464647897681553403394908223740654578097270499244303378313286923526555278708248201817746210228636266844345310508097620763622181959548710706006469210375244325687484550544645993588791636096338901723877243021369624709214882454594557964206371560170128437086659132383456461678517746231862752994423269326538405776153667639714625889615459820688305236381823771868992316630476099499050682860724618948793892882527154963823002582687016757007331992069120815681349435044980917974113865169039193551538688446946965732453551672348318676067350218581007847448869579191203372531795786243320039384976240033512898012729632391418040992066753036542280425347299917782791068351649410041039229085116623678310902284429467050539628268618035906188245678631487803906888966425211826934973509670017240526712023046868878625488982070625879971957820596652542438635562357523191768277081462603624142420349889841118701777349356294762807797131855987570937667643808095876965329719880910281733353697091854037452862388590662669928738767955650251920381082123024631607551883528912387347223398154438111681456345117713419479442941564414110233894614672076814640929419182462701834145431757435670177766122174460588893267280034326235773819048069814780100257254238375175878441541086199515986774999276391051181790043361163199509655105920445467318849312106459363784854188222423591452405625287062021519411273491260050197660982791758364688436558470507812814491376512823962018758213397192496805360048679195558122684094217113525202929445655046298100934864284449021700766535046626463981521877996639117099083275629560658017293261879141961083289821538363235842069565816434342950945835937107195895523636627506528668690304327847423674341617440499484532194156044037433782804010811847139154540789021881811573053221154691878446763964232378708009950820283405034307849897391886387390176081471566933456116821814346589511146007377975249617964657500100669316919273667465807374491039541945265724627743190996734418728926717110541783701274330361517609258671585444683690286939543669777507674483415747307396922493097491845476253925910608437463666935894514946587204902760553678498423145242017689920245130296964530561476151554173628962807826503598824129108291432803932343723030127063356455511338420814446660276951673934156331945021135564151246993909074170078695728094724717473226715250459047062485148117962823028943413229867778797655245964706387981442461156374124865064003921901103202769964311032732864200454550620239287750632489967271265797791484272846481709974827051011717227444635529444104236488877456387549003032664878450596204986019150234580585654863640061849399051392438487235582302413390512251482654938209742805002409771364911916504895757025181879965352461346874143700220200232051225579078848965025538610184209575033527478479605621917205134996634661435138150814255102995036167210875337892847025388368080345481932586367032738181735677985658293074075486358917117022743421395147590403089586917358814480001672218822038090422307752768707613259292629390959541113877851483759570775896357598547608971763846186599790213425921521268019457100596670252619606575504547784025694433799665417877444919759285571982128363582075448876248007082955835514354378886239036984207068331630147806871809635550006215048028537289208451454401324650675486867285626253431645059449580917648976004769250133386302090887670585483427732449601220721055582977714681731814537404538160384906536169922684335685907776865490062166439109829249537082668321589372804979265798986368066274877003010426791789927618127310753271424097213190363788323633034916769443541526053655155773742270855214792686430658284854787414361262992477634579095734884268343866419955402083912953984494687745957548144534387775108873139296990951854462478582173127331635075037918090969528952935966335073883457035006457412546170509941262390291206813345620960758738511830692462323878183256002096879332455495313731720213951273718127110189340527308737759440878528448786556066981694871599988679184846131757003296646574278927757073296881500809681297580299847493093096759614760039611553549014673974660943902953155260449164474605921442130800050802580070675145110542083284878730915779285045635733307832918191567653971927559771809437874629070691279410418930257314534320993614303977146829951279986576984227721694033667699504185346910876592742787720937201700771820479784342220224836426562195720668643116101501290959645539167400888330292288148179495434323574342134780071312556709581129648949932816615552911333013273862083528607442060215241355861175012466108263533086611384768489085971518563138274660506327647473214140275118475737578635363746223685809804978513409757584786789973723478271481872069563328458899267830019105049111555949784563657510375218263139296882453527174161379144149364190976325623252791496464712149707065395341015801282635498839009738599932797828594748791896226282441457657359291604812302622179346869871488700245254244829721061898172947715237396089447583682997765225378032021899754709034155958816074188905943422850883093997188786098723712394424547050092484470505793513396867994886334704864604672414691328518447034942567306095974107338610597035588682630619179870497568596233724650502018462393439003949397767099332612006832786647517989480741707463670318041072475533696993764982006965052951302985022618636571953026837597048972699644487634247752005551538515212649842654850290587180333665634153934756514780171553420024399691971217790070694283114426740024398641181001640081081390194218886073258375622597077963133307219561784055499854471878029593332648339791439313685770267863355885934183598440359466161468844262709387453116559645995702611915446354351347637529014320617034633956698786875846236604156349074611083474806008371151055133839693132347835568613050598259454284331297827157125519106961595233835882385905748463896109675066816711594328871219912220650631159110012971368206297304814392341743933577385699197029257560457018671619035285445713219434756873256766413477726565581756899285334344394392458726726440397249251674127240722104370906589373264007481586518519760546204295107920394491034559938791735012530624095850209015040440661653040963090817599870332031792606272169001258730869130846026256496536900643738832247219529771958704465635550218214691730642086551227098916614254857332371524764774251214460611304020503374189882038366720638441110772511319477008500134674029237954277106163360426495542028960944794902168290928083442832249154434326102498399829614808448130614129436423129280600381155706488900012483897020817760693416572460797829146291111538480119428177665585094363210772462081538199096127926408421941959143147245312113634065405375660713247218782607457847070568198010379254591073833804538597057494183504025868403436827221994091373204160600600902434257456423354893995493324869961693342063927486831134409644029563137838593181464520245504316979054229129166665401812265733565163519019513070332996473748824344991165321479139947432104218237567659924154477919317398586579075720419468805345991033809551374991960136194440651205713074653411856432441468572828945048891776111190394467726027507038064447305426144260038421119952005276160653272221376617685963770094213861660691213213906532786126945422117240456015453375472837768775807236311019099573382513940192003481664788424202215139519187338689497280883120850943927266197014757366129294635947837935976229213235874763184103406646038186011069516032083574320868269125550246138324994671843533529812055447247579712491886992163639385787355560674047888784199249601991264181401763231310404333759904283810800129335174280816517652689839137463841394738306065275983255108142634995847558629382582533526772847720817481633535353047348937715537620156976840697203899168730028269756206763788338777733053551438807794999522336919874896883597896099156963134528976554469139004997620673519435309573522895445269184384480452453294372712597309786308252902905204186677904478474942159779339430333656854833292399023371533124457187485824885040090555455614756466353272062469972653650709584038404858380495289716831072831933715268052832850417423558250884018413188934710775626245025245421545710285463236228298450912096333331985039957757385657121394407762091585181438181945451977388155291705679945878899748658521408442978134834223138527681049256612430746428758982450443025550522039894765286464305869930302973551018651333523012072734618739200754581674240908479756740953464989463714269980937657967363793713286970232712259582879362352317429711896877890483263397203968756160318337308099254703093658186398248645851983488142091383948037125187301825538180695714792929263025388085382296027870725975058290000118964584118448358431229728413304448803716250026639882105330258066297470552187180705951039208770250213429048771380978083394578276640403507133267747721327234724835533382702866976337332644155739375008344837873927046276631836947241120000865712019477303733443767024271168858974370935382657232258893620686374230240008803085167831326114453153728109247404837571468697117544585057563797894140876180327953800097955388270622638014990994371092168895032190330229913170386338108957485246599010749117982721956312844423350800567067448023516913481627942947758192828468025658200515288904921856954256648160803492003753338192705035931185715891413851901760853941076845900433953684963283415329095329877972871980278679994839345006200832153883765211000241397709125313007302823781928217206495502513036152479337994308678288370171995819240881563618442261871272194630384030372678440006913405941589496432304784929077958137912153155906580156350910430275564880611944144497784564171006507440686994004341369444021472715727256548622046676861375593428245205319677712416229495430080774960956127174564245106621676276571294630005939204206318841009212179788083429098748738890402521770684277698521858740928958853478779345805067745401816124600230728785493990048242690623586075930332687516316215157061190327901182659366663539190572451220246394597335001676696200405168906092454353170124081616625031883911641009527708954922438584928295267339316417586621400298225635101104802742917348994750394123900864085758480965613774919776967944315180740607528616944969493119888747301083358735814072706031655259232143053489259737051106406778613852647741085342752321085505348395596034757213166600323783296743636683114685257673950224339768400623510499220509512474754755540640063289002430200482656085312413746672810452916383296497452338392974841881151902118179637349033984052776984148861146359307861139357193574042989362960469403099648468719383239275713948756274990788188010198041248161906523243167850570194998714898091619244512992734721910048731499238839945044044623512347852722727510120027832330936972101847923665898354510043527811817421509279055261432355807513795564385066872262786299220814509461291707444375023497647921673316044839993244997580723074263988740575004083391222984495655960187371020138311035251069574260203007252200624795035516018015511990646668998747208087842175196246268650623661666555560014493482044196689996069043380226298011918637937808221234283012337270855341518096728728845298708611242186805371108024424349791455439856854901165066241711302764690600238442423923948178410504767148968037430670723441880299096796808202312218972622272406641520607564470142088613485842424042750474643494570593874389922049066273775808078276058526344513272501893877437801365896814544018065917736963215293788162145470542274561543047156933494173124710713241807805373390239253766499266712760788537096751733617215879294663859940996753855207652523071607566619379662822387899285691290552894819810389501318876889872186294109838162075917069670191430950880571351777978704319135021877321231307557712234989650267481972377771913367792618575020542653916086211912480471155705775609285756764964333180242730619970568580456318693097749430893094696866853614729646880969996467493205897605184781738915393960878855920244965699334869852313748041576740361729103929991061511697379161105237270970162493797506811733726399742549410736075442543964415502464843838333573541704172608040592884871110030619983787301510418848442520344586700011919936089079740977341245610176472265164135863750049615410941457020097402558850102016501407746248655636727373920738562452818959164364479680996548741670292308524968782928225894644014708715962720160778387714715438609616112529910534501398050868649024645998431796988599979948007790996443887110634035985895180788654063828082756992578379485368904371155950466064544099000922313601386706588651340264595031220826889999391867341538902029119882015368478290008149592163768068816315016012901823520913864500599259458922867583158624916767521492645467934302704156382134039071203995042724443978990713239180372455423226825479937953716630719161083821624474736035064601042312782215771842811072349846976055823140372668023972854063973083615570490553605580383460938484444705895039837063408173265086791472645427962714308934616728559551141010723911694826533640427545777136709105931403586192692423696538961416160651303769598076915649742831226255584820724626611591170770080148178186626411989611645030779668425440067431900528723173217306522509532401637886700112948608794231664954955427655815554011621863061330894259953435454392749170685802278127852619972104520396819016544476624713369146769030494645385584956518977287749040468472121158969642770097908810194151901613612892310089330416878242946023937916037040562838114707618457213548541612831630829161752997190557681935999331934867297762532399552075184207442806170209907786923631622618767239689368526871067737127696936825632344946107946403060609924664262228210494726497421085900376680022207775556491402728245885500114973589319138374556428957651011617693555567400267565588750749124261455902506422836719700839264608153481163629025059690518278149118909631863091253874812369902889404860422243313659993981521134049546227241085295429322403401855106806578552816174286923407477257520082629120032393329598398599441678122214399018019965348629807959555372040705549417214460360456027609000908941841414940918951748752763014977448985570202394942157674819613337160574838228856153406343927431175040114324237852922170708296974861130503054332966376764294618321468533982297169203830342961820036021197271093195549077109407452725027790573182557309309634485407005864659392550730481041233263121035330109004133101030657997144476198785956049036974431055438543959680683478903352853584991614237343684366370107822803258115071330695553892854250818503039727290063306018934496799397359982149016312888319195998406595077423278037390946899074869358365715502275699725232707662198448224242732000241419389980838458922696410349023315106022082227613453357932194308304811134897822462959912990309577514591154816659909985072287799025946833761578651217791113751035686780703619271257992833345506652372903638895457136106372737703257259927720041854115082628248429348445943577455713187558354561942289307272057830945161472451910162689278595279446671795611657433949434788441563454086663741434532337146216371379339641935625869684243114218923662189979098244237242305745013470967473179966256084236037001701205831095759164489388945110090161913571935957624356681927059756489553435450020430887348598348492463923165981249923933687331837654533365268247754166134155040057780031463566892524611184145133684411687398363637134473842596085843002858770208009316732945545534429003828833123466647878136004004676109744500118599817710753548007468529136294465827519605733974731265907461917125859104268384109917714035916801502743820874469195532084171708831633780427940261532931749230628849311413963377505012756286443404294532199802832399804166460325572332752603281719880188561588025041705079921447562924330733516607879873004535912122350132159453879988155588863303220172942831960052685353669961476594375086894418067551403843903437659709026267801826899245690419487013366223546331120719685335497924068297097937188260026761554751660707910974160195441317099066984298855769599211239786798258409531185705551826293055749629303401967208657459803254087032343289218977129789935610987938087709941437658245178895200859759057154702426743191197788228448597759911961809512087628676301633453272199975151674140570153567908094892847928209421380140308533345534615088205661196426918397977894981643148820316867957733338201308344544711017542362575531990032848106692403887318345691756811317801682228191045208048839645617029024047517403186332620429169561154867981641144533535209365900272765170286657130218509134511473916554316544155789081820341898407228286988076400030715601008397676922913504557102299896633331383522066014307846873527867877840611590500149678098270236383157242413988479629958509299606196438916735877888385345194953906645656553044009089788309734844748601274941165082324692728223866345927141408009156335418621858098049669412656352297070354988043374858831663833308933159233357027759829912004011376029400420237415907220936670303683115174411529845109203315362382743420085096284784102747301397937094523415472918826403399707173688420926424885702307157962882702349007128046082660273385409903745902080375354651727845693233475589829578890650953110439059365270789752769813223209057029749086955762664270953649182759302744345459986949175865272034725801475194023706456960486739434112701787336459004014130166359791559346166567581479949587182782885465836513675681377001157981770025309933437753910506756824659275266357776144739843381246036445806771307523540574854279400491295386222008216566782385822631274832383460697782022055397403805365581407493057768867029891769109025035124913657702983168442856417309754333656854294783937315561671723164502744998476989777503883092849827141574278511075657581463750229769249208782089912995840480533740713723523945744195786477486113468424720516397213563333323247084648518521195289008736100954084769425453760026205348564447654670297100538605877332312287992611595867767007745112407942356162130621018160393090892050446134707509620998744879134726316894407116434264255255868877641481105688258858588179487882111398810703028393884513157123986543443761399658848438832983142755069644504398738991977736896499430539532326189660952072939427953185892913772409244147672465033793854216008179541364505335079632398316743545140463740125995125003987260445469906481692486449602685273298648399310252364519233290906282706779796939583711537244928175239781203638373085218395836980009582704119323068088713073480560465093579048521577782944415500953234831848696279114095025216210748696601317503830797447758020405426722418497918034684763259804847849535299690609375568066344854069636837340828029158604027151759876256114398178973451779213104001390915349509811056556294097950620600832163596958493516152683229067366444124651038556088884341470141754072260627415552287341227568861082854866609925589602761142174660422031615373607788950456418260182307961214864830023900160626580486019977711295817360883753470072622026111884126774535997709590262836784122017566046127067658838015175645703523987162277979946710441765227347402897341473121557289839678584199539186192713359361405664662188029642991952951555115229259417419400860685309389714106388292287938939179470664722192802686696250632067623818714661794382769050086701610809702351334071203652352437979734721827676196365019866874127044005437062660847755191612200338852381338622192966515206703312274651664718659449892199667957886519737794205003551099610228797808002455096340617456735956200642247710931968913579215669359534461302995905049395986772636282965513092185006486087227854401263374765443786956228690968115514978281635241383366035964990033952862488043720842442311766510884813387021208463905922618120657845126905416076465650942277918027519007588705045807525315063529201259142735374178096926197234840554418073992359995006308411276854940125949876306297977145782708397654386592567113329770802194091449369010827799142102443843613708361716378035372541118125015292381067595316248831736081009399928082311957180438317931459867792709079072157363981857889247820840982148786827932343916904522152646379641286037143623439081980873797791812270483548305874480696905605407676604737360234026015597458093113324285991189541822958754237515129146890353385308122098174595083555114734289620262546564029014698869622592803407006007168503903418799236506132333241986029297953397588171277623855807736543013555347615285471390304586328687120276963397043915173145956621787982001725232329891266982083550186077513569607196005317682223093857511848412540872972335923234199025499941510802633331964414000783995881957315653670408158423809958660000121093958579858511372157689242470953090840982523017638978965452429725509657241287015522415196120742568134410885970745943643025034118443728463844901367870995039557068483776246451873756851341578287431851981809523931293928495094859260849548747201859425347511604976311083472474024754039723181452574794876459252941634723191030940175918631835263729703478464997629205962908853498852323041812415621142706088939674289296986574590317484549785306595751904656707015839892013832582858525509308118551940458932766155947431723381721951863211543413110943349021742891773532179297241297209016509314312787362668273990091185137596886986583226746060804055910303482662470322239580494308037766623355966910462010878859405156879800033078865808407983916154054592881176295084576785335028554097711074928957656622874620253477466012704853534549647771661034735747364514897453060414546293843166749595800841931537321713103681141351400214577529532049063926771510309804389284985791551214102472338131907615557069803116385936393704763789643571737983597987696797359023860065937285825800363381269028638411352736159117702524112779978075707100277712956235866703441119269806806102319106371389840475566255828141644516403450446492548571409403264599138132517620335842109461106152701467672698473012621167593141144535272791971315770988709369630309001753297551571879952824675977291238121093180686295663922428315898355790487886197313768406431892848972525600017821723104433365189026300863445175253251624355760963470293609575060833575450625443193171940777765894696801627964198543977628944542635706164946203330337775515378592592017037281156473264801329399063995224541693167602754414914601983332914755604235055700423001672196291973084445772798580881839482973091640916174652227475303983380744890360422185921806614667625524760161761586755943022175601808800886119047814280001986350024065055075590527933339289897845558340976664824324308027387008833389885980467288453934197825797820164502215632097554208957237853536162193199073096476284776035801094995302296333449458020626890310117327165356654974123588223156078137736354653565060513268613742224066760897797412645349758821229388817098411151561836684738204809860730170734907076196416634450278205056342443079758068276525903757482580917365462030443165527862836430468019684656827095264012042849435965063568563532592974143746562896711523851812043468134063907453627518875384400820130550861126687229756701234542717995102876635152936667866574382958787188517258693252633236800557795950586545096338115504535759492151549504881287718857314718911496770671884327461661055579410575966779366869479170739434449130236837163973667010636648945523317926700532185134519199389953843131299711869962955147988963137188245723363147190701282593717115287736240183759380341948426028150338789250637522240202809905059735478186322570885841609925317686924022905896495670551171526656800941806136193870047659910822928210397893133684801148619585250146510751951172653854886248861072518709993447068289669114559061551550782504339919240909788709209848237534560337176907849654394641751255044200007655793432388821736008917087228220515739285003602032442281911491794546058716713334582678378428594398120830070233340849350941939452973617031290667563617015920272744473797895358039488744673728757496950934927090036732669898733345218104416119208367420358739261842109839903319402130584366653995281898237158427807036254060561423990197153359620540801506876606206159989708035870232833604953521010111092697783705308356312894201292938000294620550222350052286683079922860305255843333524907619244470641565885120508643321311725026959509372790831917582946695965583784918933666982242113541092272536731592727126557369111166663499509262634865745030492740964550163542188049335464201144153259144658491917496944130000500485390464243168365340974732206452826450363130157230875459983239110028554542314193051304248062874401805244736452841421962306783403367939592795937163264623090456923612415724222706743429135040636507993465471619381945634247373296071501217269051098834944920749719617619007474140063624055912933585811301959661357576649047120677452462755168846013483243555063588549628532218963830467505013809331689873470049322900189065473185080803292981900632230768521876978399018944369427241800489213249256303497744367551537893966871418444717058089747022559261058339167160522244087951836084768509042054865809460692096021425513206270876665426073389272924930014758712637217149380864842680106707566025118743071930619879874982123445454284429690384219767301122892434237980427986694807153166804594457057297845947000182942932542628215787180027669877498746202176803234538810575014125157860840088525003470088069140693965768610718467829672231624012539224952484392063373110700967722149980120087509419981488697806428481461146983078944524531946368536685927965369527003856659769217375594497577408196960435453450385270410135702667433363086233792073325432142287080480312015043625416236655622068554139487582955689737365670932055243455942764048718079885392906692495629919191361620542893975593249362341905709001246960214692597791545929444330978374922462259179962337026113833073203944122327338575981184992243290325644456773371708876160605023194949014974737212975400507348911857820079499054412584156392555686502429281016341521056016533985962057057602053678437407038168487550781035317290023000698311033184810845267629029160429950028911312956458230407546157662020853514746214034001009810125617989816838838362645635502928171472896345608269272652867282792568362930611534598843187581887607126491651816143949087253662506896576567804152018289907969718213629792038330754054049231800946940157578301677542858315104741316192761782498379574934598578361338503922836696328943461291209562820161749703578733407220433373137954006830742181573342678932368160640171067068084179866531228398439823287784435915649369254312601498097104386250271377856101340605881170979792092731141035013748685773879450862501697601112309501892045742471898914485949060269685895224350181346410791892238346954090362840025182584791430887281799914845656256018106236264770186581597494440789429087613679330126642840627589861670319055083404448162089575048532590478084455654578919956641779229053845867021199017171495637231458380587705360446441596073647615735258540942508842064024132221439178345130993648354479500403801521956174419911809182066261462282762014332149576294415343172760200802043788939139965997593601917321223488494372345623851796375684044733687578880656095059399393968519989868767704975269480886582105069203338101629038477050999039540624261471893788451910254760322077364094096903329806041827725936448391789516230989214427733632533446551877662727606246692007444383481692589601333251417236875419412426543535589284901208737485641432394258064058331852444894655438977606057246212495331518326585774994364457108691057821785412528035186223069628049625442716182880543864687428993557072177868317882645243095510523596324149307793952398726683508459663033882415430121622174856338017247901801512112795086798875078896324264328811102580968907505766733712084499313431061303943164960961902671657369811809448720008278339210038505748215616538853772712505451958688379647146227823527610923822483232154748894905023345268897757532824587788060540962081311616852107599272434346553989079293802078841844346219226023310195905676617396431428742471356295012285297381144280127200017603600790902814351400042216089895597427830731763670362936024920897176660066165395477258512875673218010138123041037748763022321196776071144381628722628556012346301905089382082301034637593868609693038071128486782590911705098188517564875518580987933246403810076648386022728438804565963913709393558239842826065403704002186401049400739201249633032393409327711432035394902079139149053463673531775255196381321109990388438456590351704985689839678963654396042617357407268640694851997519985762721432928077344012357429264474870719358024277325705675227668902051462544140543886740778190474447223617306582736260745368242957464368433608631925278736111157347172550428003238340371657037501961538179282508257784984142266239611586004976702153412913796319289882379876563135899433582159067400079195737035150389389118243394834128958586879198646703709274180943386679362170872473387029318317634009877698418529105731196830380669964401321656190783576514774044568583812972001058686387621579737204155218644035771358707540967955151494360346112349367644417389208849005199372725446664645286453067032542422939450913907266007096722819460892059624936354078854088173711513946236339520246646099336689417670981129082282937513844232750823989899096543146854113632180900305066248084520889000197520126307783918549611747867140992954059338785217862315099767149462345600808835988130530485147262969905831431927384427252906852252096969829554504581507427796223304713521953088588989962079248485746790122050110160737346748679765707588969505787104123123199927790196956243294095220116096210578547375656314066761390139391337128254499859708868575040674013006021813141816494273069702095900873888203641703668247582799885091086289921629724088625676252152682458181173777626609138604287891403110697692738605517092997596288459319471388111104292796078517701351680699236076743368742402366938574857418814542141994366062375813977676462912712024095539298090307157979100796644155535972725595855852459911891143900948434200836630166145339026909254898535386697119827707151665516874785706638990247487021515474202421720809945593753084703819822957726211530559095198616102325817345491488834121398174125610091851000640619952263529313968871115182602998987134703131443887794669837412351274832498658056533311631287282714968771485281916056956833446467080678662116130863378424846380551295940011285416878813109088496835734235898005981618890538564872969614705139899675592915046498069344962829310079925747070071214142675741557964656069626411772374892211747892084726792495855280859387731408495179495473046776008593659330127309719910606934231975668018899649301235789108199793278092986246259220198263682342606253138627092556569078992433621835013403634797885790762643383194535274759022066696028739927394098040105829423920200890880798308695030416538515248585116719250623838644922974033640544217217343497293840900236186001100934270339211339936933871052346803371537998843598089518361926989075748522368692095868370648146896848190219598086498749694892062209350803442266977401190254109641273976810162053434807165268920317244674028737664491422351806027875504247588505714463732931987114899482438857239018261029696422726723532742475639558469278753064314726435265026229015508764865756578619058041225110629253253309285931642820098448446632681883206441385771748818283463202708898816604897966622072484175964341199811139260421229344149974759812775707003885409984850143744939601340005467349165895066010095075178177191099871818026637030101741367894959773489248573177507968644327924017937640533271678786395615162286873393726593035916375990271792837928938055569282156022682186520773543110969095704434644096161780293373819967425441235427506350600112795917133508073720276306591237780475256053551060784495879580091739637797063262370755005623671543012120094506100553538056271651001377051804433760181575310099232647137955799220730575561704580353517257402412648890199504346538548415625534971369379969020942276719501855284122893828299181302266735998894482733837384019389273722428047470740808264678761421369694893022982065100974033007874985974735203141374831000257013588017269271911393562338304109281204993764473175864708273014604116084177577807821131570248031136893632610253597282234833821481909113438888168760675440994979489281597919303422399784944203681572599897871779916878636778390472609239537247886427714657104256055965705179124686756421012623943779896828166980419422847925263670310076766839360238486194777154147386744713663752582826046191873012144172083118185292998958095007926476882017512826856402453166563833169081269282171268635865033272570772363371642826025133680087678296293581438985555456488240399309793370169174698713603113335863815678024704537464979209844798915331602243859465011843012289718800019770701523802673008657271528020049006538898438341925587238740864666725543046464618362451757246391936113376851467937957949702239805891551434728774702557343581570966447548303457116173342161663725363162224004948966709766535469008674254713297012258352695063332892712470690420599495528393184666383784970422034757000278884356828884276431211191140345642770368943040311562457907837496139855487605972684826059150342779848354735380237156072428804785221224384210646425615239701207041399605004039484576703846105691717014386311216036380254022127383445494148401108302538098733201667691868821162035840883313895670712194816278304811834843203488695645557415771172813344916069510685003456165928078681245154652183164119279617379210189969055940901874447440914537801993881883465034639453445844557706184525111924472199191199700759975099017171126523408386291175064986542020911149065301084559094232877710838722517023761507880394471316298170515016247693047272765348662299623093206109964020629456547386718237415901404552622406005964241920400887151662960801440739423076135558145502155869142751106214222909188731090026905511104660887793448395674886439881955025547121677309649974128286890663621015930140075262872265907978914476801746813913994497612644088901371193077057957518646866270848733712427184607574091605050134533156791584389423029245602836230848738397719665977681410199980458233502788740587989534744532529727207944460709687724385840926435194732363579146881542090286915948226754436182105976560542911755774574561956260338323071645938249500094701534331457251924140727340803346349458576689947971791542605642695753059814328295453101573221838634562905845061302140869034059074911036513085248346609220148057918924598652233501942528302616347727229728421641036904956743605421512716369380293307310060213433692292547686025179030170808765335253384203835668837488368547930592101403786141318222825451925000689423076130997377097016705609760607489814785172771464694178977826570824297818452992350575066136796563939141592049807393786990561363565586131683241125647180982535482227525816062326959993011278237658650210388708732166683549102385112771848254408052347688982636376617396936577884555966789409962514915824910693300780898347470608699314723357374114662484708610251241333910051120778681951749495701062040197793400237271917394076049292483878229537717501007058763376111901338134064232869487924279632097244926625914612249285366981296236180244228036115902612894027513603607309908947709147613609134185786219954279519204963210363113757018773636851746960888989570760949663673345984580875451018944760374138489451284466839818758472375237681415854281472239392184963116773799733369983692044400647546644640104553415363842355088637257125797645287827967614936443818272766060801876261280838333395006178752421969731940259623564782137359291900233008065396682950975010088281935442177422323974475980231466033599078594863514366148083686125842260847698681619026171973620776574760106718107596798120032329380305798666373665718368352635394449128907355859039927805799835838960901401220347458536571615798439620047746344651981591869532907518815482801564155195663300701571910218848620471425789540261438143181558676202053469954728441074501130195151814118430775054061906741118054883599802191877026026560266526618792815587518223471889068478526049637063136265427458541700844367852051172097553300064885209591543040605422370755143245243307903067654685401843924692044451718885894086781159147920822299686375679242633692158500688279600773718151958407204729959293546470979471317681776694668642595481149552333715836853075938432479139021768126611144429430202488889009284001855496414739265034444693856278590580854467818333252012680043913804510284496855300127492571336042909241521732462351969662927821107923776272752454356248119261162306582177970739435791593779810654037357185228625789022088874646020535773079040203373745923887257020342721204460908677355597945859014478309412148784825378978524973328371379884293836836066931611196884865336765354155641699660418672177181760442173028789893645707038842309806439652841334332764189967744224332276363030865683838200883146289143623477029113107249579800574132208856561376124696397969323633116713740086812701922236738484065900173629142972283285540119776633101187538154082331520000748082404787939473952178691624011259656976589062341625517958569200295555832941865275548599909911729653053378857378792931836287796284983202819028129879430095368475534074522247652672027250737894928552405626067369551673196069245249619712625359323687784976141189444018480095828195428187948131437455917519242247714141762564872873681203776345439338915269118249681617484187566604757160923614974379192050657902343980093757561132393759748037247905024476809050313837141289528569415578364777969748106904108413429945519851196745000819936124436590214824855989616284067355544578590107667652040897247867752795435926695170322588678787131985253333196846046729194850365447880848903186139340253802580787802032447150359192475648747624200955301958779409594452606802922142440399615776407277824723002409188855013830560137901845054125387275503171141442860232184575822037794884582372960413189380023247749696018544004934654016753608378806428883166368742579390728410373433031590959278389685950245915242722679324484709201518189447195639421416127273261609303282684593286709646607455256701218574154272846347129522233559152126004344094147151312646582804591824883881142674564710859367272667307128687008299407150748301216328763080021943933286699114568921028045086211622270312441165625128486346807391093038774641034272487514243173627388476897766221158149911410087509892726291647269933452002678667610531764100919656960741459564364994647586197592537050998341349136802123591421727684603947036321890083968452335463780091735725903676169862774654732950876837182030405689606029120285055026243812516684002412385134988727313046646646108742877243844130400865068505360486796435920937495903513708091401359094024648272488004455071025450756148718723843118797813472197366668986035276431754016220864191027337832090615923079920336900246329074017737895957861387696227891763595669693953695494028839461594525022044319558427409263157802324488045325633146888835548392717483008435873590836618342432313052148341236750997806941663084104923949839502956601990448776491501346069184679488321851515541095449645156959887596638214447044083069933698226229267380724733914851137371926486234837338617736633241183844709747868317495395111480637211815214860901772665640954710158416324047696131885738511400835285043907682567748890551067961155866911383356140135442758657145122712533610191400678604040973857574024833024455485609660074788894850927491346941305652851508823986948356581910003918596220870304667711499269274575281880236941163974161012277614605042633033838715632199909097285138173050165360550627115268279335906592152995368040067301298581497703644173675472004692038007229000249809865763783466382191584966598331124402984926916906317861296390627949911492730480164199069853179864892570107850329651352194537602090640698714786438920742688423270287535049334695048643643402129609034027868597450934382778027823648119668850616649135275607930968956182693331396066428448365144404123187010036352141840893868745874221166048424360297700935706658913823438658367632955716762249477916870956965215344949499097641622849034232679558582356987893320262761042848968684690605210714164007139726188064625899789474661488308000910964879515578476123720828075753560115420033976998301659478683425639350322818085132268396297296259515256496816146006166846790267567584566335730876194974687392626320714737434713640396270575683503183704441959275532269156035266376517226714131397957406822624714177175745716020320240722430131578967409836068661467855168180962951443311743018429302934835309105953677229657164903446774412849515281772534769510513053987024186191849716912095954098489270627242909026604374304002051002981713279710277373213139412810470472084551628972294029785846463862195211716613803101075220071018647432471605351366902185795256213557380276370658508745557447909781132769020384461000954701121063567981174403324779972710697677387092391894363505801416788871517608674099377108558331293573500412202605993749819595603629322240106352203404548790802736117876259589184293854700669533497039071176442060231072869885658433783864211763618221952311276988041318653077246705280503438661633984261162561524480597101003197073171239605757165401199348986682719274540847637641365778779377752828562992975230851677049563696877788380168573347650701636405875649127815369596635379837488709241212049816434880314645272298756698644926755420329863223710747423242073385163642032027158562277604651691012129891941548181443880960937982087312857144177483091957314369098104147732195511369575414866420615905601617997510184695625518520430589889561047620678928195625849305319626621128647430782483050034727440483550176348598594658873145532671357465187685903701478803940306085120165754147665897459246196324957319414792024320218657910689026611823516290945094697261703859126908691542111126606660641975611717360830085075158617913883889703606800710441571590385548435716891184820621944331044697094491115346460963807326273618291568480392526356980194423135822418142138152876944711889858393355295931456847243628175987652469179392338185964286958708080346033615998764672832825797666454950115237516702982874401332987471369824887573547770405595145689880755813215901977299591968729445212246379206820818604779871847152311516057876898213528586188156980356910058192158581641617248218338778791412495193369955546096833956623169634788780625750387571451168306602581653182112841468717501087622103902574570011453382760001127087585181693411257570232442989181695646263786169895966122177198321637723810402131751531291784529501171032890708055309752327835193657914654580892579825947638542227014707078286259879199503172234445492362966312018106772693673439670383169790474288696825239073558253744478347013969684071517061330872516678219344570383568586226548188084269953386382402679166365389090905238417553125024742515408872143064475733216820570891624487923188128339705122274646224804169886315329140207721145167408862925432668493601982460404341663573478583913195922906671371887840982317737437782581833519269050456494209216806453652029384023749960587376586585865669775844340866351697595781011131277189342809967395965412171690841976603752578148010058401749143413889957029444146374623306745672687064807038210972979371426965317445763632562703541311290601351311218720126189294137499661526240492300497033817068647348141459794209421246833024807213681352063031578853183486108255678474109893225288929129419923750809917490975075136192468012467144771403043309734978184020141641426785541583673747216835614902204970132825209848257553121750751977485431909153470724083732341964975972425623201870500334919203106356878060686209317849031419803933948889178440931217006295129159139394870075031602571339045004038916435608983137818600647858257375508960181825456064170730673861051480721841716152801426313138462164120325431254818034867971453217857997391940050917881178725098906297670085295551808403168488228012905712187486221344724662077003576719315167501537121854381340119714078416142310484929161363032107221153492399805441544611491462123011684062726064865375239681268925541493696964294402171979461061248483307171685128737080964137947418807721860877747084696738484439581513663983675467668587618477139465071497397294419332842978676215849817748730919392196257700372464004179324953096748640872056565118956809302177965659885843388946280375754780304407650516708984652874319840076000793145833763250787392662895022297619999999444135060563427179467571311015691493857786911102166808111344448229198415427990528727069345703158514951851456620214559209871990338285445836550445405964712461310666028108850215657693352028958093005445369429034350706807585978349275634137326734190808656230458673172412165883867557277701889701407770458208548055328919352155473756126333050239331302829258719843649761872753782151966707845414176360704457029218682078912562880837518078195467729978566862741776022643139499900801457231161857813136059941888185766608412250982435197389679801180840060745040208140002986786187864274838045845622731176154203031007503205393777608204399454436718641126667796974486030021573518746340426561199217593078708790620709386347270843454407479392326869689690378371372294203683614633556402520001172953207010773459712222095231089683737961234003330304396367119560925291346488671823830069914491205551282365587823914081440786663886973589909819326673696166272241976285108818450303503970068772025121659668933292255267429875734189615611818336480650325992469686800237784701424863400193132825482831390901463726504073865644966467845095645132393404382343005504277860844746516204275116484063890612758166259218556396237268720747494832463217816513526364153891991685933100591796568933866884750552882433746493266948626330608716223723592798847299559855267315280274476830433980948134032944328714827834239468108941598009459433637862848503026598280013245868988690343807514764876701578443715797597128485701210645915665162806661581994044144353711914962998351235983998612533092719375974571287412864381601810899293047196041476888846950106870902221263743112708138635840167600908323403524091039196318052152947513501434036225711947984493087227442388209052290420518561368073475510901517635862188385196850155573716799511776346473686156665626091253336414938990128396778027416410178310429867172327593877828720971827403345929477406032128534408940424175268757788507493644664963183744586599661387820422867852363581245198667372284506590615563766381147705552048163482370851682888633644827185717635511299562223439104250964271881987536921143837151635305417077155485858278564354409668045247622204834950908599707261501500501284953070859269721017258504211976533950423475052592205947373036943695283902387021925319862121978056068687219524883525702151963186403791625692214265353241951319837863421748750773259871478546339421127266815697675238635340728561297707032593733926552173048999331309585094373032402069744223844310708545586507218357308312316964528682711779808012963035991809743370299027298096430031759569164497353457771237231028805557403145690709967362768992635538999564365031337006310314816824955256341349912029978251514890290471462722934510127857309501858923518971577183954895619471426031671050873579622235168197801611832198022597704270851701161959244974416900418745086845034959305586725354683797520574721368922700545051745401032594324764927037928144302876237889817322931970260432623928461672683884413007362350687629547668102503151762967278260360581995407631175725172053186729538545652502780080202398717719767810742193668695609097192217505168525220315997930831751459928795309020640424857971902803647490391591218537891005500955529874758820906619626680289173209611200947894396926756305221710998745441377286966064449637634187792054772527474738458825575407229000622640028667648000793588145354201433535727514540621995457674511319970412894742740007298564109494874458079362945328096040048290905856017225162825304436478739768597432761779738523801325185166089592215544225612068435572483558665530524768697219634958485075533690804243762998427071000145327479586647285281714493497253831550955066607347686407909234909177926979805564500815305830496920493397572877236587276913838553662170890005099281395195622428376276126349178412999229623633603634492107225609466611547622689580414508504510981126050942884304358962041943393649247671478265942391634556931639588290839821117113175027167928246584461786835911492404693844837967992776502019925340589306241862683138212218086747180351055245432369504129747600997191092956403106034112615899165627787759690149615848441871247942179632992500461486408688712169263882183819694504025553876800183723177179709553219388909584266372383117093853268566386804700152121532227784475998557061491517250011856554594596874701931667248607459094987787274156136751249300030484303390312101236509692371406726756054904807925078746820300522644108383554295808190975538112414222373260182362123262362418678205242506971604181992594605566544759998611611690519206801703271050967381441751876738254479658406201670763822705123374131135064138394059906106848957566337932010777265492123310419705116946264998587827536019734643265101403570275848553893548926346858844388269600229390495783420641676033226876266281284615200267723382299422349121182222394720714065499447131507138408767494682216978226691581799673630981118897385791129054136541212093785944905478953784396036949419296918910174714791809024432600982270970009686519851361691794528421461509896028685853225167468210154785936856536512670087483282126008404353481739743238148358273539008099718739457118719930811566391534039087211184783694839225894465655075695438716343206227579775930697664946898397926216008744636101705306940066565280924105924331676983581669577313450071899216902408075226642700484363903831017040415433761919917570592212302005023869799698552029854810330529785402964743408050682665435018232413530672692795410116101507967159681064459373825040311253102921489771989805015592971955079147588676113897172448301208852403752462275577608052773209791232743821398738398093263777112047148961171540088969089331860560774907433914166577294640094218096142316208458426066411066056212161275134779132121385426042664764715201817326042813557998820766880054662240727433252211725408923700116527193386378737529267456973270589577705098627131751279086469615298654063394854370029728988066030051677779657138668962628320055289097082939182058015801174946023062129412575341870635210756449782644224180280993497163881905021234977765955995906818784999613111186125483532365188254961756411421812857840353713088556002657544977803188883392413221677272238091991034316994432021975380453035939983816007605350821014776596881282647965194131309682308233413784216683188522311401607774153078242834637619182262935218787374822079589759223658245190505248410693631153272827390378121193231715757056294720194661255311094253383384014955306581789437250236620717086259293070786730282259300491123684523629458204822870180598095254840936311437972430144073090538019358375884776121170511761294089079259207886438389429719669021261473278791523624010592983723600266918264241807002068956169830982107404625128051176063661158477198119539828929908623116451166320862783701863133156234346037738071699810860148309072905713914914721266788170180420377627969495480392569250485457774440510808239490349658802334461527355827076575302054509584093715005939082427018583593125908770183582094931293359320202735848186317485334953429392088949662253825140570975233087321352375540910833538169232534940853982686471281900788612590055754012625649296987751454004001880191395358073830275355406549475607349924104687557013592939227591297064516396738786599261510143381837283168482501933712412157055422727276024911911989805908627059952305571656707083170333905825527730918424276481657339201411862192644971539629116667890953280022033630007977324325194829192703896674159581813339833053819478664862575406122022382117719493678701378070206339831028805567527136897580961593688399481357880961941353163464340854141888697232563292681041039066227855717307355938183325931030665562092937282057971056489321044767515772910494231869455649164976445607408238337152769056988317531143228192419648922694307621502076613339885478435738033492284151432615931157598683660254476945896774390189478325941829184735772241175258244657142614192966669556801256116737793001518311989504319982737473762861697360363045294421325981523070380794158027225791526766551635742839559263200070847058684772123043017392831283952372727781790178308096782228428661402279946181695313299181168980257885779265828860553364025713561257255877070795441750738526320657728597716921076255324426747902392961244914574560280255567315188993612050618560833586128496408027535997486609007305334210207302300570042510746876648406917620517711889795912226283674026777271519422719597002977901108736285105476367014961959289425433130839729919606741768626015400423860916818913796368131890214834413627880427208159148647649974758734621516339307818505729361730675319487120499311494626672581404092009933448463868287677886304086583980000081411613287811285401126099408781736304373296971729371054101426324273105554426900377559882438788365128849230953154817580614130380133745090645781907612522288208503855825790107623543525684195883955192382191337799084539224116188012364040138988502146160368217264443808776480552486473044011673546806132709439419456349874903354885073175359305190258642389742356233692004757160750035164630683564522898811763139376074654461876643217342318560873643974995792504393294664306918364940223566210071015243547059481275799477366742662750131397016006713060715851427450804243410120560396605428742292430346028958379130535118832966795924798707358942253216837311049455806817141356465453681542872659602976484109362895509076432763379549253970188592833509894753534049606202226947133338134609269993200132616111942306064720817741802846601550936856901867401245927256905185543471068239425423278752139667387131933864030935675214826185923635939193080447313960225868573051199871317167601828854049570651655661261034848443823216488201207154803435531421877271541884404934229929295294081176310026151211395903010683380386454950046566793151642409554672320619927453986108522425878457507600476137596892392304362575017588437510727259395857510575748726464769374501802504756287755288258309808497014289933227440846677393385637344881205523103198620856367067495152872179248127856488017546160561892414188749287894935321850881129303580867280732393432197480003838156771415536824028707033793125921440614744400123901643781306192693628261538468175415229748692233882125656464536166420541012464117801826736513371432741196213352696445270797806602823510060278871789130121242066320281875725515147526718100283778014604390883865428700602475145588355414952971474193772257170310911771417103284736534621567394244952675709619491894242519298446437261908005681491909414454265207738302318469403853798978898538928632803732449107030550173616205327864628557413389544002334523473638097955763913977035739834551627502617418569197616156216282730461254206146830643108441531983535406760308142837495244950033237293511098340981507134844327164386541571121593280097771509418440277457950454509827228654850785486804011870938188850039685785362329904386487045530765797697738236977401858447255976200016658828864369660590310563988796104922807732144547942435858168068277695011521779641688566803156016598588910244441635318773577589113451283439519683014874852789149372931137332629217931512578954547158600096838003493221350716973968487816265073151048479766871615703441466482293164675576517127854138587556950242395380190171459864119119616855212965048480785826698494579997165624743908790386188355154871106353394470849479620335289158023867051854708419640933217740849561782522698441248452441153877946445819446757801457579722461885168576869983901350550553668133456485631466530160639146347903695124887482309137546817959055714947235078509412932973855944994544677002797952943574174229324595460017002747315499596252983457777699229710131171868687852518378076151743697268991132697534725445228981478114820662620827478805458118693187317837598267604078263271641985233937950463337850638763512873125726565502756564730318344251459413312556526632609951600359202123687234664771148969462164436990027375038112165676686684932331712625991601452530975516690906211213932052700715357005537439316697974186459573198072972649430430531098207932694288033391965369996388999403807731813813019100477375761387611780889500602317023022625783321933247525202975994421127946035290685892056323790705298954726935511077334962614627300053603143783375661513889313134940532775483786033076338964644938619610964610349842338329165594650394291406980051981625867956560049304357738694690819539864473741987610099282573721468527709998855070967046294991505757429713357197292242996644237997058610725444353978147878957534113336125096163997375107046069965215725422705165780489656440326312887486387001746530131691745877383787535728159644302250253925386984443571041653190503038762281367567154532302143158559837372172759744368162101833612439197196799349023953721639429522638193205984341003428146895421591197390150363586599638378796676307859760510917540946547603501634679460919989644450529620516981921178414593551019610308513877740893897936028341885539916777889832108555128295562792060097197524525682256236543557280592096398455640983746688630649149524177722640228478172699037035378669132024425453490588999436190023255136448312660073595604133910172421332027748295407950370210675441521283775975116541163856301798778184072036613155209521370051652015269722212749209826038394276231710390790702166173100750552324099565298539285258866958153440313674150812378198879209011128420742172612585993959624805202472501186428132469793923025581583606587558949325200993834183162325882142700742143626292443572003511559170238674672214606846149985952399081246081922424432978307414253306292168433353276925589690828559511434022570376359573399405175478290631609800964277665931138633816214897326816483284225364209595444000664945356646460299382516863372921826485031302607463898405392833342785930929309159760491237766163387618334719139853970033997929346241378718498971999966922489310160324531868909678974458353476715405309656914430877716939817054721233850282989368340550998130954965249076693789218578545744781496309257324209139043228570428074235956448382960949233592487635536461213918918182783533400342587057005498682597171004424616228621587561732170760780726214794239610415526849859648434645347571730337910135788820005745012214241242714891019739625453506496597099183590666234835451541135742787939941346814788150420797690996081538846574280132162699731651061325752482967888585664153028150769325700339112018258941406321043620702577816541209195255880831502459312266654641596579535087391559693698421392374753542951221641027941204035641632999362238366436777762732671135361939517062743629293851783735147588355108009457682132472949819249915480680400400895767897818908537865217977699416981156648837151405307779421136365942176489373732736306339653196693449617651005597426643016343612474434226220473009364012066238803656910735723794405614148895253883274439439872804272216355269027818388111353497106062428645969435824763800305797604312495910726875356752790524945737276144658405804025794001666467543529595888609806984945023741538570267247417172982145658100158022578635908402246524449892609706007194526281901464401103789693195861743424133350957849513060782597153751015913857473354356714294268788931624539975715463794148214715058230091025847578488947948475458622115007279324267065726650676528049147344740047835050150796373832932732136192445377309315496225576624220201481333923274304341703475433347318651684385612037243946972522147897622473135356348385688831284483465427579916758394909857518624148251200187362075849917482893750406415408017952785163272282277497506928234913176058713096502744651262392137287783264220546841381610509283779210792360755817760551521213907513352802388103770529572585273672766851508399545836955689993319539120526990735238018093275818588217176230154582988721332940633784580538048834992470978572009849691717374337205841058370263875279597294721258504694120299221914716673060241569434530987737385727833311202589935640687881699347598923579791809580177710878934318972985515166270788875818387629894521252956138270004672159180671984022257436837787739058308187633646406061844482346171380533516529099644762928354498859047957467269327353826355019817811640077336502195468884175491732056856438829920008619156731914184310098459349898079902499865695513036318337828650029430339090961838551578606530381815479006165675699683120755027435564368506535661763011568987918399590274765924318055856083667646690685052343008199805334274896537621447842615813626421406121493015437791560133560004755227968726812643095939369770278373044485262446309817270264670140493173961019044041954063945770742310536939143685339552311268946523287242321876818178588319320450565960658075491664586096825111593971313053862008694707418706753737177607262846214378112482245767956660478287831233605135759405109683747828206604623594408799230599051296435063183482763395311788996113230405740304267558848503484216831447026598067171080365823195994992498031831915699050149257798023846222979384717212156346931159384851748989005591409605545573059603161977450567013777545102902416555634952916872853586932814435950265713517137037824340434948422531517220661647301222200497110899216211115818867050601856861909465786405477232727413486444725741998463751450737206664080765398252991319842040562979243733299074587648163235405056192177287994886186931845317056734328308249423418210862641986342276484230048078177478232588607176010150559116511574912204387423249753375974443682529501014725084129132676261973037281964673254376209285003136403384672134275446920521590735762880826403770002186478115187864579731860946947195534285660752208112852848880561480402677391293732613179408290395178554249339494473110278181922829451415774311120814202847084136290301974147257066309241098794766248611994599504396262906495867278740598705959625192161416278224528678578924661580874918923049910102727292194646304940853796957328417694913285035326775560217135885331984956306611851573061639974895091615204198530160485811551906961952921142759872118011471803984522423608734604398097749457222993617914078585860818703642600419171897388068370730405925888630459099386473517650345636736202447968645399360108576433511571194216993944171998573034685836210177149214806255832024613652997809450528741199122910455361408797228246282240543110597016469033240096196691149625854180463023372408642853101133503340758842004554707573573521871208232251673854066916895137555772881566256226921454159087688564335241605442272078430014980356835279192194217122926627804795825999144480973053313596793598238959509202679564999455790271487316842206070333972183442964392256482643598282594676155376637772371923567285349942225082803509072879486985318777242559220786737389109421165926959308392907674817409375159147557804321949628469931061911576486173834795723105457972844707506941763444121628064330194551137276717476565804976333425571998338766094426314685204597133340656317672026857936565080131127534855292990314777909389071210141429681723361091457765610224554387332961522051189388050086660169554663183465380039022626995893933772503871644768368350726993495075687838218998554155030592163061907771905624883788892166749547442952271815727948939135575721438860803143816615044996355881841822449873564995536705505709048176390044723322097225830768500950432200615506954692845794683860426955897090288837332276296062294452649552963224945686852862056479227106313046245831509790186011803629554661600937543893300608795034392832661601676534218895504273055191790439072431755828532121537881739579877243132754599732889160408273799751753852449242270883329498270287925010032154554871342107526203035929534121957903823085004787215803978972617984099903723809088230550374377185604137652525214560698071486120197069867163437224821395930088587382562957773880802502037630910515239461979396456700098957589815979545497706630427211874595849382735304158597541995298454897343943846386209599348254563133534784129718656413069016381512135814713189067860187570881098686627649495054448720618457776436540452353021833654905389200887572882483266910013917108940682116598817315971486314310261322985734823911742906177663968733912398963402410596013231241435958132085486061986995335766893566314991691778088993273977667740748321139897560077221581713858471678084029991121717694338865733985823324313415339070386497898324138178614687342582727318805656141150482519672122494416523638532120190888065315285094037329775233656680195179217255466542929197763747254884720713410758931004221524921085462713201988163760947031846759609689345633466630957205333013374495142702874067260397235855764792218533367821319651815444410750414172277519327344892739155215394623487935207217001122942088195850901199004818302511294156112741229569376928273222495431350770131664140509627486810209615408228686549557278541876117202356985832308517214198127967706148713052614613046636803344088627084884104526637368137325290966628533334793842359188907184541287034116545669285490203831781945430216165897352541849674967513120953429820537584496306083542821143761732153652846493416219244134535537497313434840523510684043096853890569794290089045235596520612195843380729418587404807464633644121778464889932130740366576040762837557950604581511143273731110888940264166548784575451534369129255773117530500454616257950759950942723043772760655748752757203258945130448942109869261599665379536442921437360999717085695066655117008654072433360750297213164639547798250321673337451118563757210825548186507153497855054605102334688823698169322059138457755832762327295437903780545565769955728101916875990496396734085624046286536748374057181666474713894059499849290256647583787776414772813956375295310343224182283602898075379445077310311790464735192763854072925347264990126607725211220026207001506025061801171231874314895938234162199757665585148503466252234434556116552317555697478264655910494435387407356592407238812820198477330882084364582684426547387032287424163954912211637560123011824142900125732273686778446471642691177676448901034823176631728982057300324566230715932890278851411377804278221149160711628883383259551789836689989488772588881992948136527876477859236494213332985683985241379823421624609623874145848329312622615946424118755263335993543433119692214082518024353877793116148021716593720963901217480970788654920291022875851911710420205858089578436992047379613052874484261442304732062598669524019501198799014760016326382637566136145023795347145230054624756491788398142601095495655094541253201207640770578980227352647159486036315287052499414703895121388946959636863333028730430035351714956204364962651929752330282042292215830486702770293722252107994020944563707399094889710928305455431784682728072102003568658461714876262315686783525656297203928979696639793012525083648962644296705668980452899153020670638437513183516898936792162955953366528709254336179489546319397981425175362334470335964215106282196631356270252177344494898665016294791996974158406128303403657905258493485289446768402680586950101267729910196204187215890953258579164291693207068978208805826820854499205189005593571789256218030421640446155115309414437026803260382406309704697745495529887509724903485301495231803239874784320134014387649817869404105718193740978957485529324210582670879625328904896140743130949538941466137854869948765076734088483336756457467289985117244291954459103353786256547956038014691528262303028155844953147063100570970755692046156304692746303939984843023067958998641823849237605800761146320957330635190292846400810495997206539862925788982689308695676054697006436849934494034672903461488349870690250528561593062031784180322294552538327849210757987849020278563032757357670446360874543476836474094164866518477225056207291860253302735660634199661643833698342888443597227071688938526931239052072644215565587290649247944996415740238686099646278531466948520744460748503572770371450115110972229027499934442257580128516217554817601287156105578430669384825756967402847636680000315871216427889668580289475567846907924013245476771132159182581538363083120459595157697969297254671703490867118015622210486297507733299459633542221239387196069060080549644672633884373589328742433994976516871613955098490853206483457967367143342058659775208884249835667299441957704481294100788982631262723850195392766685407003909811529528339000423532678839131062269866176445433187895846820348018490652908122989127277605922447594564220440692231042454438522575880784928814336708771309651829724238750209726571761756040958359675070852434670259013145966520645191953349586666064058558051110484646401690927536510479497348704417669314104307045957260348702202754720695066147089668572271943692283285698414824746188559209092348047447195250411005967968108946411019729519240762101791028115622448318542354899702663461775404545292587236702628945761339167672730762442492942101913886835227815785019840164657701279052250947730083705777991856645365180945348893729032021959966797505379487930481527654294765091377601047804830393972855763941051126289991283050010419972188745629733173154156025258060107292919139310767565633573475095182847088507438390295862863170606096888219150909480972144778238304186356566303778652990874379905647198911445629861741171145497865295420266968073003910269155673098084404871915386318011770436756431870548029418619381639562403263720886820471799930228100249557433897357360794087780991923678469712803240937984428061083954710698235666407716271407834536469846269864506061166486795928575386101661652785348879724219664777086613558564918505007680602387490600977863940856360169740100480147579925948983842812249278841490550416527281186478300686547491034889190230944756711161005055754887508497140338993662811402348149187195548556183066423724137334763706678342947480736608620860765367811121438371191765935072054892695389733409702155584807095157691456642397735594263247071159772682983254901170235799463182568389067254254733631142734061410002710605565878716272004131471146310654069114579594359198820107758894070148546669700037385096229657148293391327524051280052685864487398355730119979777651786612485204153690254619673888672527229627585275042918475946587260791023945947005491545685236722704036599218348873119452891175475504314864894329282090301713441820498437294392621635429965394259743734334998045280659832679733627159330308661432400506621662652478717932685217916621439926922670115375591714574990809661124483892554843839528328294468743820509799888272828698168351458281957727270096199203882876867011027894584879637375043461641104759295828300776364255562607138327805609109511666373738883204708153788138014786685794569587702807684249253877857596993550052484690363797732211679062757577697101666036269814075420599520024804861047825592428411801994833621406702553026199630581922710773355711315424859184259664268476277809710648367297755379343698590167792598314461676098140503293152151286318759811129404307485584893114095484076768045295601970895155247097458355683291776813234301844852884685182947377934904305846630500651449820771344265328062156109276799958228174494570918253886039311378653521112635597837070423085306317464773698943911859929414965730335769919846441862591422018811932046494938180790423564136200971452002447150163348410136326783436280976011565488262655497402699777479595104629177954447433509759028678315699443866744164022765305489102591380773851217351155645878739789166319635997170547500204164162376582663597036552504424810533815699005540094929629725232896961652779644559142736686947518618457955281405496720726866658900901819436445240573270147562605447417508739255026521229985881520745870004459928126011523707766471974804059206615404182551467747859023698882298630335730533592125094347835259578650317126966660894586025750759608104068065094652891151981980024151160315005040730967208505328244184456599766414305953468217669495966470633142623507268462443174766535345269885668332821335067479995295113011785745602777753613909206823118108675913164729952206586222089145001788018338330573975484293195370951619392576747834508422963841804651145059484105064015110750732393701333904916103088155042179965357398359953698421472038092027206991123698515489488115691589148887603622813528112557755340897966460792754730995789323165269472714038332313076916989515227344577630926370987610841745266465453857825813830124557970527450743712753477768652023713964461346102589510289206440723709241103948276456873916455327898000266651198424334048441190791696055640977647694618304868487928259893236282701289231246992705424658222946185940014341879719686157646202970663185902745853545204774952431428412935459487046956680302915351348399757220287180935695169544773520335819342817677667146479462570653163030281399486703907037254344688789048316879934879478611699423893673550954627325738548905446913237704335798460572644273552561185140582142811262401343948724264572091198704065738336596097106091269801867076569533267437077577367207541310560769776014065863816662900627926469855296955205524889102216539538987948023880528547845061208087399567878755772229011660038037062273026491199206972341320597777527582606284022087370987365356754030214748854974430713508443602526750471844410664290238157578110300892381608103224490102797557667355619166519083617174006423124897536902968595086403303628111472061987911989891283400232832072446200419469540449040107578879347715841591289676146079925755524468632543344829131643621799687161667059340735777892212449482324020732478764609301806730237148545273445653324842977477211274564745746487041958668619550537212855876067887510174698265842402835710340634807784276063368603649090466468144506753510503799438547746435125524537459081809725834090480591260024170388516144457861637110349998181900496656591085365724683785102329521310806806689394155740316399983382587785554993775628516099326991071808842800479187412730558509536322794259795919973366560703495833530494042553706048049091932359657492871427011572043169582022859584228484204066623062929583819446417082420600888998178226667311094428933298328784125597158939187992580591965345852039535382555362058077210194566349753299896988526437560720176320474430701564234247708244685240573198869512860504083052836757652207825441564261506175520560317588429782110432769511938693597645774978975521638395475395813734788651342301019812329554070332463997586894496301876584553027661468483107616643668642714373900263431853045382479870807702379291803301894797823867091235354697713970592745230961171594135799765748017601747902948053077453399843878787626572762043257196218523928570001617284895949811209569256493347837662311808947581412746068438503957099902394455123839798679686611386863990282297642101840817630890193212604245804278406260383873076325556848397483371930309746434502587896994537603482472290531102170090775248902713907121826879851652060129460423692930482862336019639907046068162119373652640580414968598624201147428885844300202221567824133350746834240708494571255728984094116484846547114165391623914607820053758198526184291430336149090362553547844026323409427074021628713786629544640978110879518554875670148235868621073726801920381092088335251937794760156548482948250648365086360534763131446304662121595204515468944072356028013063337056259278187912459863067348331569643041811556484444349603637495164587969905707538249405655895475793432913668424091968656914045051719809736426511088299047171476089286168164438829773095929469789726057562063093898297730804655993482137950176718584305273992570151886056793497795420412073052692286914775307758603773252064445969282073568220684585714495537819822119983892515589632728918258297010172458193382782059465423861915613755714807772960332757542381551561420939022409622454535006446345630696854681186176502204829586912175584031286808162029025481706484240303257541642543187064907742338544722972970838832735805645209234854423661733100887546735104808668997972224645484313835796517846172700301401188553613904704715758580655253656456356067316220873078198343140000563728202634859992094238895971645502069290481531231126543644081825557974080267464906792215484123853705344007537250638614656294479683806836573699159936975984256296726980224243088583629466463266754459415865868092892367650932556764401176645046476779593102080585545180932751295774717870309592827234336168288031829625220161008536316058323162228081855903518771694622827799764974928296947197778103937100820491058052635346371373414600994521802359296836243891458065151423073044928770520036124959517624187711546309196310209036862605941192890580170802207673026542286699549108096927079127063369226795977687791168206899170854369474228122924488775829683620206281401031150856151608763567662857151761805212274743082731933980934903338767531653086542959024270853463811064919340020458661354953677812725621533499334869848454543453163810201607109033355336322469930959921050648196033124609146210913362744045382771450390521527924937633901567924107624587411053114795610295367226655053073673144285675853666990133760877151375058722658086814271631947604096879456762770368810050740354492165846248717629386552432012256989611115594572368659113712650817703657572835737086502458487920863853483367612319734763894176831008988607584410838021782802432724641380936913284662045802077065428628795330556245123832922806662574946219375095970197188480492139281327416495399125923402507172509384375299268231732790729097380356346452780409880731370368927288339819728906038454546527232191274391610164043297393035836352286517510695908401863626160702317199289248882083546223095983184283070109226608420540269005184668250325173866086914047982157529511716927996121872320891853447150036642234460770280672755189620491642847150781073818031086223494331436530631385911090900709605524422777389653629784497950909141133574903152716415855116078901163128616894172593803518439805369428560393299531976765998730233659357240105962628578618631808367729436333474026588874815601550384218306618552224830190513694702142266218654872468802067666145905242595266560536109114712196197573508878569315917964782937128041326302905591038797110475787760686299103406996009303372727653561246102388275416841484304679792886882245921394236156555333951509562003442225513460683906807061214036094362401092355002726409947498936675853724486503194970509347378407505276420063001417372987519369503287653020477147710851227688774435425018766989374516740449129781694869259217211476080296070806797102462193012765844963248954794570409441348401244643782024487358077840509784088585934096520299684417995351172747181889425035927959157081561132660073901018258010638470157857285016821226500253127525634108861700237276965346031177200357368733396011319139185382562712389136728247173366212637494531342565197830681267918530719993976535085607329741271367399933172061170394779458441535793938324060793034636112732950564279928788619565877829890284752907383412648340293595677155909341119808677044960993109880623517722933427217597033457707811694383469272410974428662382978422672904444124125437196351038980264875188592370555298350438235638167265580501553715955987865383720089936292960057777807591821515285497909536304683867761965579846973230444581536180060072500632206623777215040346949650368249600271704516047176793983352579888869674581308338407818504385902502189995469894115267535555982918205396745453616997387644219876723928353318928401842164251153929762031064415001978175241878484298131551318190977903466681395239156104703928243695564292525505255572829737473844698729945254463954766165030588073187126352098812120886290169814697949429984118672013254957255826871286887454294377226352720370227011028514975075089173142046897430274222460337479105076387957616944916386837236037815891765433872481393950543628197000102373144012050340703431952512210506815596242376396098783548104957224902803380622687429102393699858289870006912887684010333384411343029860016409227685517228874118158030966565229989482327943377514017064303753149440116200704680228833861806413620376455344978217627387653217090093316300695121687701163788263284007423103144261311904919906735912278993197334362892630486454374590160290998446531973688909403968398571351236336966616930536632763287002690227853047897958804992972157778839975782738384250359314334694952521978066993361757950207137452670711413347550056284856270909596011293115312200569778971722671220494702210835134507083754474735677745487734575325263300990939391969544474870426064629393258194665738861202248550130294266692179062327755850234479140895401468429919642236202200070037309557965459263336437240706153954550513030894352808029229216511926890990996457920320717860097852517725030391917160157390713245399701616628340876173303872212774874185722447006206435169790077537462691656169238671356905525739932926576440948648274783911561457594907378424481018500148769920717213443973312519565978584722834728584735655114840841093661344707103397066263153603700713689868558573140361110130232643883971722783222988712403050225512515156892949228012578092544110304484966270454733586204655019122368090215286788530199832376754982567542400681118653516608259552314790139830100939179692918924397716556965411063183729952895767718225380743066162900402340590878295882762606241603688446062659188427272216001967699367279198958867008873525833958995527843122924053801941717696266180937125117327090360994755806939807222951796698560360950454600114270713318275715399417382846187433791684597555136304195408924753191931435408548906153606460807133652859689787301905955510316108077825949739183075642293534032439681061806364474921459941966472363242171302637909468461251253507895927256700386438794869821295597643995752178976221600672805326833300540310475979148540431820165704738438971790247280662767565693066732523744174675589599616308476008053831760456681865425938463434541201979277735861760886603688659029814072193898822526104317213618986404576732526745125481816100412947196384204843405807026502696141864132722774792583173858475975568731568528740777405693365286714263353134954279318124485977952573086145771754090246407672879789266927412820239335856844735501792378681693292962760806169235823381249808965268100391601167683639448773269212570274627480710308716474289137627719522739189691147423687434484208553485342441582014388694650609735336966501401520761941993730851590007118387852055760957152860258902932458516088457067203833882653962134200298782919933845463929276355017252548437949542414000209338902004141399543679385293029820918341135727136164633488305649060586914850525575692067364185468651857517868685817620786472725966926480361627541015187715007692036322771963315484464487585356744216082105138539638676039949994906330860692277171152242665334083199463592465510907450050356861941552349779323936745791348226344857095826889642211560404560647078935568612593777407011825936663267023425326944328658469074794677966823903963528351352071696395184641307996489572252159679782999716203846085429312084764796719818060128568948969870610907867916281691212559084623837256643628807045866438393524922962383786061067714244853831755487323332680105659870125704440124013172311271077623645038274380571997693413712309334165954816279621510979687203506190741293871378890340029686866992850162661111762857044051901780316901055427475560905925856479162747580872224464667008860214821265954482252984843282754015815887990288242713070658030206293186974471575272684903116479489331477797538805772820767856760332509164554780022014721366707775359445030985974831550970477014814292966606215377824269759073473749112392970833468190089523384415073241326519400149511185573524126337849211743923234884334596895129590720571394919628836383109744423198144588842734818208835341901498567887604197502121388164002316842362281553351951593948686381623660748962290312198483277336149266110167735095918793379120321431152010391307899387190027852669378412308841119997430356111835312991611005214007170433179816679114253580441729173467574303162002883568434467521686351700640183521480315075325379047100358535314465410285358524453004735205866067534224979730436555598930563290001779253566609577045795996237913381546167796016595245648851520736391388833029158497575621714862740947303489337041503129765051624690030285849914548053955110394992468155248764815748972750251458202792717601405608590564414939801180433528146311871748812957015443891963928340490384482210371559068156799252476006774767715577517274261303683548622028072920164418167418133419672435067130215342074183094569334884137393295732765612812339239736982383595955253005272459969309090158791938525511553110632135678096022722167233524209888882004669731801032176976487557345334939141603925846789646299679413212907154564502675499659530737546655104455004881566744719904300032228747149034911758092064284782656237443615057511955471788045104534047116088918587505895275597239443599553271377753801291864169742636899397730492479707870875487198505747917148216550226785220170872534809370269385162579860466259162866504108221060198731504582612447932600843309819030481907428293300007740871739402096238558162582189851512737093910133811461097845391480234462058213058547921408961411443979631759824075377457158522460909910554334251149163703252594524166115283356882515646911616849868609860646589820267143489425506922549534990950767909710666507055945763583919435853634545366787701197998645024264016355816866222011651499564594779752326945760056307474422440204295581159046135015047106302658798994453153780535280081186374150770316513806391090878020218323160623039181236789649235048421832182634888934363077189944247910731490939604092836186378732670595799012525210389601401951365360406831364987385069111892215184870619848378451752943494407575259931017976535267206002745764599962259426395723233474201902776894705416085018741671792931156481805335556058556735403533280214217575403598057786485215739435872334227204338016423657169550167628465734787714204388540510674857313284812413571444590661817978764673874956143592085848457710936055163779188494910717141622017225728067435088394708633038576970603239672492466835410651343400722281791917546634955866852884877619167059031039906654678570047965141946567031519636324184198646773409729536885550384468956095940263052712079929635485124578188777689029705646133113804621971620242180139120505986180152601557714684662979869636383311988950464187781086122993860899866363709446228992172482404223948136971285967380024593699491460616649111548845729345452124566606130806779986900097217213571998330406964149154526261358575440110252801153250262203180839058297620495152382467237582223973304368327095858754724081528967786696633514562932492413804271022374763300643121575834293371541268121402765154807487628608203824837971920736858686292798707398619643320473811372797621629702506311880541576336978654795595426576780840080962326339958363532669630982835289459166494688265802158223723267235398145515129605982084268467154743505723624988563701684994562457403850787070792167990691409846844550924700316278074167516795581117212028234638690244914683624184076714050417406299076954349959483138932190937029942772885835915298885425985782458909166723419840718739130928960742766301398361355694180893727706253437976723158396864823159494161329392139022527501838200765667562540735756299743723509640447252883332804396937306280325806100308469856824726969730968942919176275090787280531965151341536536633241838073803521660432655394153651655977666761347899553800304267060826647394130741303260190255528824860894277103625373885104200419110637811214336731267506002506131649962261702640837355247258327016256214703031551274693354659387655287459248150255102816475521719295126229810373062914964855352646851643181695253184466051276293898422191203038078781002873940606704915600979737921721086288337649810338141903361494949258607577186570897664671309922577344371207870626009635133891903734640429945468767133727167881236757739853396088198322736036612881704586960735621020778494965610945125727476910358021625296707957786725131039544808769621545708642582931020120339674379622027909686134901710628897074359657302847915726048748998292013819809233611648790476636081813959486133617219904052871195864899838332973055469348731834267280174653074635761354348391536408131071713950750265794331923174659634280853769597609467557375233193965432908464281685041282107501876877202419999185600984230462237088158149202810126080941934888201910336650314296308795274034858538379875620160305364744924041941637624061082679831764843571711283089609219228357801720981655621651699035015289032110222649484349854210660248374648896631016394517550856596438722940950003300351995615508004014074487562548763306357697198284216891952514226314081133145432290316217408850331743940917663836101073678229291380745196090248241341858680917835418868837206373774577100597611862604603389135950414688215780966222683124991780097890278453110085429884028246968594597612068748921310360700198724865207594013461427929877460382776456193899800570338755778839158547317530703417951331995459052369286080706368737422116369926887681313346164565480957437905126046266565648026012707281839443706396809715354123618990171738173197492385038233268715702851429522947144510151604823214316253061207275156689405038820458361873490016464334771696160837500811419895587186236224184139575638983856796817648901341878312787843672322439226671642893459248521818651589771018737266873661970018088864269355734296047970369982017697259281540440433757887580913760009510835799012521727696988097801751888638258893047837216263818644074120384003214052962692506631569180039408270590456116395780687553300872785063874255191849951289736001575038950497535099306733063631176076583653801814662974329864335299629312404461884568548282577454087045877522622519890745587764010367446972985319903300155381604009599780411185853093305752182870181141762283927281696363087651773064317087961731210003310446296978735094444885405212654033510765279288356219338264036914930630376216749865257386464637177158758659673721086587487884178378115394052564857602788090140654775226596349647600909456405651891415327827661669619924232676961525264492741110917711262380254788546971317158264389700005183047064821266256054684792425423093577112415877493742056680504115312182778489145737113875992706453362989594855497824726718549690084144502184932616024884455892824519140365880781407106678271730211571863698782385869583085618167849181351668392449452002901126928096680175918678467121824207436920429040117362629045662023361667464173700556704830970559164123148115058765544884414829463453599282122555375495860077613674389328732995619416830661811522339712188718032908063586451384970104602357358368654993309008100593942853061633288158991161689652698778700629513300352101137874222494760252196760289580863577031395449694135734737647167469178780707136452245882775036543288838922337936097297126526182531057942507074884917208621054597148031025119841336236619802888928854133731821079251927254041239540576239980020411328744085323570150017843564971518760987677569609574794921558456667807291229826283240064568280030845151142814106098439541501618270322855815916607331207794553321503202496617259265554860232738493876019911378301217658856298062164001526029370744500772663193748580369298231118459703765350484293710016274010893755095905139719804554850390967491032491865089310041295246806453664054399493701625118687778717643171992982406459150508116282131260512840581196663928397760987386009321875773759216195579202128669828286253117928535996631701649548811345671757441301391556581052575964576255466779072757570488647349761194656765112567982178173716126332772632001489653127596862870395616813267245725457029628260345032181988724807645792244876372083282953798551035883484363712762256209571565744904533441838701004941828941655228315864167793851294407879760146022784904186430704272952496167887130292559269015345726087747159877535319557526793648008906949810893646927374015636649293886280817270501775921313122938445926364824838721131595503246191161375424964632794549793047529998650423475865289096738138288899550012050168143968148317346961801910283515150144634083061898203136212446001268870741792238656036553047996557980451716419079522210269372907014303576144011915917533534816506017419599920014437775597872590460540646944903532021622686280529999270824354331134362060398494548196671082131725951345755169671939229884377372915418373746826548487769755921902391865168727630350459284766147773815973915683409401140732878673163337567929965611122065109305895667061990153300360857775153378422421280835536857763776751327008599893044689343067589149593679367201497216555623349053474449225486412894876818745705491807222683082021507919282229172531363886735731776539466603147004352273640341378661965647287216107194553743454714002828145934577952061187481380553632275939488832296871616539013114885305633944386128085293513447590819487991951602006741594639888455536927540170330353288659183796939141644113129745514893044013059706160946288598481799137036605092575124968860319621218061229724183022086520358424113424703611455815147057258833265768835551729090434863220259321724443458072972255061714629843729819584482124089479820197517450718063880015298383130617746598409861232304950451190405549348673966798624889462640981017778556126487502075415338466709149123907086723815376542080984810755850651145288459977748884022781085494534049748476610873153386709684731479932795596967989132004002690758749479095070548449049814461604639226803015682941063693876396993873530491578339689820646913003459092343748641571826159675452481476879608371366102048151756879616475114012867682522583622315025683971026699990471131722163087618613455686650959753004366727313822907532552999719358961314182165731022085403657995921412634332739500020946430689344908117619141255775589625994068756184760001443697290748404512349107926454517528762776633658832281731457893343338881405846871223663537972746547155658641347543271763785609710928742274252264192633990881052197046906131590980461270171589588115115126261279597170628500281985313080621325733871484160225821051026729551503040427795801142538180504232324679828644617566989472566977724416862309556152721542401228321139969835773373467113936641421286788253028388608113688284195218568234057439789849263903806413846502836222083207770213179635044797083437716729298662847332510491795275283776639646479004407681784906839529622456496567491039212335414710980160644240325033487195355224280008467439485602166644084916526318647573558423640749280900433543360005060679775611919277050375261753985533706082496829701980768434393624486355619386243224473807886071720140681771497525849807643398606826869890578836105825291145510909921177068706525314001383872716904683357137101732405078789533213852788554562176636238359908228489601369122228251575577091881897564273233487080245954971215970103692763871978720575293033131982112660631048731382157988789832804047972015728259994489050052763081457653214474757407281439289072053805060586106425699805107218908831800561452367586216971082659251375555417451032524420231179752447503209578636266231247948257573032939937162374814470466103959395595536272423360573635184331087255526624328368578442873662871219686461246711304026854273493043852365565157159531356237416528884134335714769523518101861653187562404603715101954469367620837447764551936639242393445939066899807218277656297395168186148860451671149485142542545187570104232840472806625304912480786206993044572236202582235732284782279479514128408121241445112823495480647401297842154016964493606660008478528031040328121823184433077833174497686267887844082895279897479646814235315936596542596530554217576132639298302984484569328685177334380549059752323601974278449094799755128162246896055147899830096114809249411006654864040352022034671343078316183295202728556046827938126577055289376853625977499806145304228684322101568103875115163376053583726579231990339304923085579277568473162105001914268050119572356640362920737608788591409578697625919466381580213870510908204522340078405258400430905879537592938585738161507512435765586081700939258964596464882261300205152754981118014123291348278818672440201945908154979061159429429306222408615054050801689061513242362267883889092638566267432239704825061124881000599561753489313994068033117791819199396893066934718083280239087957572200001175812857749191729790851308475450536743296265130576628395293530922624977234077163144333924869426456470239234004129100107805956397735064198403875919401160447765450168300144698887290113028527987468790125262098922532013622092492170623432130281043401259375181513071402991607774100734606878879159445675350644637165968824392332743122355302727337410355205805908158979361317136204667439060912560612183063424616096550129557989174827371050514679512255946209796853158697196814538461371375670579686426440899447638191513477216023670030632480807416225057519970732175748289885292628982371207034622762337557669042928449046069799594968874648254334342718181706938431337000979216176338545441453379307940621764235914505314882998797422943573880709662611483580602122323621335150947435982840017612029312621754147345911312521215957306133681404845902592146511751564535271634963820401986776843009851239497336434740080228824300638191343507037154440954185525022267315242527917933195205731019176118621571367492914836158681051643968066638622073562756634738265761074867387187918733199537244860702538463541514113455991853297032920380931155354341686222902535233964867307889652083927873887167850108936230694759914587788747281268827578576002961300479822707481947070099461773016377440882880608449173687588008254838413981426061757001510861523104816371958286896664193510094879712659422037624834392197263425831905925723056048030398667811396719859716362234478110575431815310488116961248497894018289740544243525572888759774147977602193613188999171509232284994297621554613347687470157906137354903220998474309080214460480713860683488274721573349294128604024973040957106075188462673943062948677446397358758430996080830367803430901550192403273184397628009319907523513396789011205941122826923386222231380931894603546188562937614481222199873357904979536986557441656762458891528953954730960867184296548731028998015516388900183464954839657269945808870797742587646742761645804961763380465069521116681815708552422584467462124219235499629738956782400042068210544163937014459463779674563101367596178256389263492589428546569777685847374445096982509951215857201354314550538246121376654699362194566554217105894448084721659087661616912999424473696380938189021086876003216949597694428852101097957423838092194856496516702857632060913917891506645523334448049723978459875355802227524780833742953544431072222613986368883330943760589295498692100776342063065370580151196813128537093600375636962874605860358700831845706622874536707439774497846963664516473936480335774576223789299917754875906075772821219318389793220793258196704782153163657543070693064664634204875865282359607751301123838848710315105599014404709843156622409471902053842518655518666363832953907366723161128870622599715618377281479978730611640689549053603199271087624718007249662231680593371136232026057037358775876059872649958218406681400788015485008940507538237367495077127637324074723252405939465743454825201253689886757948897346926420844835413312213456995576555411426007790751011810490339184773628637700246542243734524188365213222545780035070899648861960269251309798621906435985564738062486575382741836007558171357772260372523428754916860234127102178200324285839632407920799197961441583288332709748004864440753011384897764274070803654162705206507588691575520037562919878656464789705692133934969507006286321124959404048104274500305933663965722596562722671706552088390818124438339854915253604666384142465271360985184735748996051813614105546973011386217211640497626881412483303033575604233763097998503176429747158652185586670243102954265142784920824621097051387938008525625986483861296721529211561776620387291437957420254711611916678829429858650658367511889829398094318528775090922059014195152947964105832285696424882248190748784709601536118142278080119625591193833564962589520011620916046564610198898335363115586299786934215572455494064529337471433832973554283346664283890367894285248721592088087244619196309854147138226038757045643907374153226463202552500995091687206823548867840592220810470804172794417474098974665996320678716992631014165829920025559537191160096939809374136505437242744190723402798539029461221694736590445906227665644103616681443753769497612034194574607783210036756661883173830609091394239655510397885390938284267206102281391526834821070373228509024892201122627864086839907126155274503945392661882024653658139927747635447037326347616729840103964112858801114969556434634540479253376358576048657177357935199252075611140811354065628067516967706298101433577652203547135003239094413346457253632087905747533428267224291015254420839076173243398869626842120936956241215443109802874377955075157413452521967024770841042379272158480297403355302897746647286281383284228798505600293457391755440534470620453227775690298203697958718237145991034548680936802756621580860057497981678851707411808908917435385798657406260012507808607909033294916380888372929714683968687905821657157702046421000084078685265785599710329291419266860068811367931793650807700770401003962777985045592990308743037818291525804680664852136898103590951057846766796922655211246011473105093849517939209695361964466916120428483463178756626850703530250746871960416033290118008924996111081311842389351688050792229338716300591062464747320879712267691401401074854447075768716710867976985016189665102711615944719557874320930200666778030022726666734721559322613331269497422064653787953716665712272761478058700260887734369510004705901714447482787964434129506959273965641865703858425037763215290716276280892695247483308870520135244789422844596295088887530531541550934872670611163824018085998146586893248289436275656317195970454213710143934322885459060792827095867207866377058471589539199229681461885807012663775942114078429330019168040755090694086676372361139701918329189318612483467008694171998076145881952624736033769007330025462341351081629839211546432453213281620086334340813199981198633061187164642811015465654850930828549978443219347329545058417979971726526295243094273705409982627523129103107499779121515907195258750142469370595714660496293849224424072599286825134402325315043384857136895207507791134321930158649450819031797599498656886251505166953221333349177981171638559925753888889804953441821135166318778976973848199691494781282839428227192903162356888704571971015704336189437524687468405380482455805345868207831622554962918057177734349142357013908228195504629784897752629018445564255890305119073192766106090005481850887593069500124964345118711757478160214449281350376198266853356041929058193978843903759226854957742516246455740381313890734787271673506287121649365562232338949316046567550707365838119122058900847979994689488981352753422101966938903321085653251650652302231954803195333157889040350182662343223816323665750306730923351335549867350653389500980492104703188904754877125554808346460233199103024515445707096273718721588777587585865656657291484999334257952718886477113433481808701223941196490076555082715454934477892187051082021510664344867827080527511165434376604685508863712257977532918280462020702325611048416408710798327546186074404739200262272512917671208231226097431873939685168405784801520692070744926742974585507448202199607789073088258263195325478602458020525546190704770464353235662039501288783630568349578576786130191001393860585538986054271367165556068798681961086213911930740865755372873638070477150069734259778858829053554376339083960238167055615641063825823405907287868271781289165589750969983159653362953805773099122862792532529399378293060371234787076810465699669667057646001487045404893057264082182958319432081972586619020677196114150508504941409118490875625243843809393118867097106637933372541313147707746951660558294469417807476706094375173448752385573086770635769182544771699193384372611242398928865287181376690933332589116468480215580656421522242202288374005061783181099727355587755829120228578856330723879587618564238659567889555233589565021462150824788635020043415455726732293197238477210679932215637434366185790515325845200752888919741937382335761833439981876474796973042249852382144877280032978735069209771782985606527224483624040820647409907013064066396039495736223531713363472507658307665378665780454066250158900698452483558185863504327872512950592824108504339368517639451328437547303864707210504189830157578468198865224075854850535433729631959662837624045950630594804780605479927494088437320097603607422790155665981952483613450565900198098060762745222702956750016871246931767808047494348979680813923542410464571208104544266753234819870534827496735488556634009358928955379552970529918601389692240382712209020994839101219309976097571189709716055054863120097305667145882168584472911196338184387274746342774348560471428845150252771902591087492846732059804847146725215775751880864589015708523151492992575588604033748116339038318771097760877041377041036878209403295289221862759293332087793981329810268338342211315131847379819827663862822926599771767384571271351995833325492613141626440633827269871554378973236432412329758446986499435451555254267764724225533234570043424287545427862381730715184678549730668807421203479117255166331713192771883991285027348686562371448950679027729854214832245250353188500632099251423790183557998125384832658718480435430857855440453815510305659638858710104762594068052695056708570327437020776591094487027073509556634880588547586105229299166324663328004538008816548906523445899202014415238585310999658438845933488895671200664596570784434219207017818955915269196371296682173321991995994936038290661928976360300225920031558157580484813481038416109125613788095776410280774529807632047126759661835798512676333976922898371730711133180767510267878837160267863842057067817384461777657696284765194268020764585505751919866342713618387743824476942465091647667871740590649446353393516233270532535356095595455537291598684376548918365123950228573692627507343680119051104791470993232873204337126929680095748233553888385447731692778380082169406725605122718186815328380675834315642657008398417072691708924659700457435433437419135546548858082266074052017818513977012037082029354250810319561215039188356218711361113770253463365489239777104973227847146676489142454710285557521582857506363564495025543844908136083703405337468491516404945196289767070979486352627229184208151233336220056092229588237609029243713179564469370819987192580430093963412797191108811815832065166127186046011838790767961923362219801423207492834886415112258150616551818219371685400922755669779286903251039786368215706935443691518501146953525842801295420328679169898752188152683567397655860110748694786003023121760632732581180227029200905062226918088610102046505344386246854230958256555599597540987837326707330792951848830695386642508498070810528401022536073561326139205580764647659686622059032385872825454123121011837609122474758649350717430212464319301460638429620854401511993729773385857759899128076704080934814306649463530757689906115298941368054286018836218174576805274866807423377174050618133999972454411963187499853339588572397182618683089192155946282381318811275540290893603067837277749089756910735827063894837101961610413945285681250166383217906285729679454928800157433544243938831891829741604075950658087299653051534060127988022615272849457562878761920725165229069050466144022466357486256096780393365159587978226543376607607398979398273695787603192142680925925479709724040078125904898570562046154739591221089128102394285994043781982320450894034405978081095618574455177827682387189825644463152514070505481183896098378515291078280932000132542003174178601909898174289092113400337924402855909421295034701911147632726913417111502105378453576386535372825656117675703046871830950309877306820183212878104781578177251111619694669084139831457459758273588071957477871059655191340905081476674039649316170008044830430373594990496487513271921192804903036076225855472967516948139729207005143413942366590438514063767766154558399176767100196609038765135513900763565757530429638616933907366357749165114779678962701402684893781459699419491634342100227838420190428034064093964262154707410275372467491952514002027514409839468530432989888957503990871934564912167912083536686353255561989159088965593376411301788634819042422224626026564066462618074050214529738707357048694734108924957809914710615155831785494822337799363813860814384713606422682478480667691733155249410608783123146180206117286751240734289249895630648285334868849102533265476631104546118340562696575062685426313943496128092985658453459876135695787190174059796343694074140172498636682030031677737182099089140172122619516177205181449710130819304986597283000991152910140963935598074208323035649036501904896597447014876822845870104947361502142067797498285763990199876090768908732415892550206200643603196662471832259869744455145460612955968827313332396193848586039336756341113233734686388804145433079112840797592226512500580616927746313391845105311765512115360822362595877756205930506098711299233265779378673973172453220041015007930945882375576014278078134393262693349825300750214884854569280510519090615710999694395689472543044234674413763104664574392099792637055572039353135994540117819663506475237266538615326157433563973646412802517216494307825967106113852190248661308882293008818875005031526515472189323884561601161053886943969782512190689709059420150445669827401987994096830617006287375539641757805419146363266129934852984287454062253581032937770703309257994609056376919462300077821826765359659328887032884745515231717827170268071811256260858546303553612649282462591420845238647997402517596635486630512571995519335249563070959289500619055135658711463548350263401568755190733126859243131143969589966392256102890565222881746924581807444129350873184020288141407237963033204286333324431090117875391381934226385407706965994576156790972740923127889250225342944969970238580379276755861868684575222989569198554904957675588026789841078663245534795783333521222165617215650798898479370291471289218329177843159064952608005505690926834665260992003635716043685370879715058077527123520886283103396873795530632797652093145453346474921912911812082507341715793578789229960746948300595576107067383044040430588482235759069533909914033011713820752054788895442869166602067697594226404956587817835221645526072345553692307357388880814354157384564382626054547660075251142753106165639931245533637065143325783003750107863946838129143715380380102804779475519249371906306099110340466262471393291789206685945744063787094759310600201218053011719836589810105094406502299181368669470583399277820280778203912085095408127348056152043549054182551748403712312892059030853608873179069361226234893586057606363771035468188689536254021193915527675404133785314155927122703597282041704488947477284257248793615773802172210195496362552595147700446755334383561844989164943172725148695176787801373096077156251383329271264344404629321249218224151126368523826840555828576311404770593089858471965117206331704913218468661342867724010803568516349037651339867170050929983027035680379617052614478183547731995475450846378587852809835561592171331538421919287655069623234007807572702774952391992207941952781785554907806925356755546173311005560188283274929137665291547125025972320112527513941816408693729202107413427545283443152012258302321184568779081570252884298156969512819592570697175632334945206276661218290098820973603740015615403645594969038972358618506709112091491360070209757024421847376431587725577663142017291387389002348804030385523597610148831291875220826623744335756549704438080379718442412018153365732486269804891924372527797965346643083669325132488844663005387129993056561646084952682680412015777245122735453795671425499088689422972120741261162746671148406497861606695260603255415925328042287942164480138061575466481949612354605842080368849844955992285556465294543815473975008793780873180935794010925967617601414834135409659708846115345165650646126287643314935833422069413205298161396788821788431527284811628430034811817891137312318795537915689574718141367995230181577459508229818685409337528665826947515196785700495053186176270553369101764443423722410590944508383581928862555765671152850333782061254466138221800263173914482329801908589144971352955050433887135681050536596078958345328921007345663345955537405044404903037876371071999578757253126691543510187847186548812587676655797694521006489603874940124981208103696183322551393347894436703522562234350061830902455488077916893996787054761756562388262803137617518882962627436692105523809423780953432421980745234091543986176868970020302623741823009491880091746241385922696383990318288251720424488359648469627836752852408307330104871049179264721489766307797542756146306734846538458163613068059067976471929699157677937367853398712795103712656825251082058594358585730591043237113200798825659065953733433878121310806570553788541133338437363204685332441657213956822246135508189455310629779615772995750268617026016569588407513384771066132942103446767864138061715628688571413463006440502683322430623846431296416354699223593529320702276632306302802263205868011272842802284483819941133394475763701628707926939443912537959071149223511153392649274807400795153278521024940966521058716451611199570339753172215301763720785080661193849431842157887228274704321746465341503689453453043224909818467239236417184562536291919112731453719078600305560547643528366769739028539237289820063936342944098667992797617370857504008003653384100987998279465831478005544709551734607443554408488600364203858180377376461300461720807763430451330179866071576669038267309636849480835766226298566252299682350167488217879134906361612911657877124742805468639815873156449970489964855116886979307893604503395410323214616839144570510265793777113104937410685884219136952707684011226809968669938169905136150080850703763703007894259927161923268160680672834474440543097229435051751950959448547960497670212821866025620782206786985787208603210967249754837346945422875643551645832484955165843130601177776575040131964754546963775736487032452652023304732394063473336867694510588383681149294540616151375336990997085504895699031684848871373172942845808166559285639775764386877653185399657066581218000119132312332421667527455592725624727156347980818167632158856363997014896004710422677654731119189011878654440896107589806346430723294838256899177556408731040035650576783982686632728972240538372205074687312722303887432440119325624769050810882109433196328201831311480822757612506751268622096667346579982496252809994770010467408408389457894054371366633167919841868249322799713982763053850472638167022414105644285033768669011753487042112676895119415450359775613199097281594303150931561618962546239343105143403368133857900343060925747228000647453256579321678765267999828151650645117818105789674196534908064007182612907671131784948002808606542823625289636111796977013419661330720539024771702369317601076774671274057376533762071023335308320314787549210544493847676429834205800421483169263772245013127287473794467938097895149284957335065846042356772408018659766652179573983600566589345533253200834501661063917065611442777825844345468589663540042224183030480846316976177666104400896236268316659383021686699617585882496416411420646574134536862402459735896219975730092911546511124994728014086307976413563990247104154152604383782873907862249883452570158606567250164321621467536014429148510232420488813404073165663741834992754180667529814818438570985984678818651671001491658433298676277065185481111233723698190918321114085556892037124531502582425926924436915203413395701337595656986119392710378387667597393616302684725187468722675761798433441717764767121794660857417731987738913660677566390016732813610597514246458450333198487501653744938662757986816905056176203218992581061135863898929493509949356461268302240574115252641466830453823370274198296380391537210343955920768215596970319616773647800772772717588413317093042552649452013148909630430720670502187365920819946990268808218772954254652876090784188585286402470888395286470253741122885940805686157575354297301088195423135061015929695101404867833336937682748110850619985637494423444019093602225850274767112580276547171655295961123101743090534834141980065356259683620058067834093349780683001038368785309411939062871925883724620293414166007568234635050027366719968976623630351580595348873623116596100989726057384452936649898087807648764768927716724185671144463838068753278184082029922553238608369895530578707665026826644846838717106918228020302144068839276103155422192513570475445214998077227525893657535766782044678805094142689334268458433521372760690113966449516966704913315236094365528777181782458079771085545030187675131195365050569639652583167988080809153725021128559048265230401760404008219113820473403733283229114131918004072493759896981498107225563842313491626518631855118031318933484920481575924241298458019516906804184824678650761563462445586233197507351475668647877352716448894684404091887051769685781188774865023776017762356531595630309239564115264984389194191219801918051185042155872460854406712425658301097972289292662866367252640004475188925850419233962401009452360671211940964754040088668994484743568033009889241528504726288443191502216935060404729150445273088522355493185599191163338529350692235170797555436488771522363053542248325473124656254964586812599196817517290575107322804811552344406061334405673122455155537558615005112312152878600989031440296659896574708290722931607920401822932287058702823554978786049748639531467048632367423948953138595245415919683739830654970842385846855713821077663192164473906854997385311498739557993406281761575802205197167990330142275552858053878240896557309681222137790759858021276197549026715713883516338807206472261435680128968802876410541472506299833973199336851688395850580126185118157588025920650048279441039460737521387791537343891092983712000735299834187693191209393436053287299978247326415041569678433941080571298567749623302593402763600441295422936589800570956769631307240504228518933366094272425907222857800868450021825559045109977204719850430964802748248528532425806035023443659740559396549535608381129224410551545233566128642207402636855423039967684413738898125257794333359227083037284706482000757895399715772356716918042974811672569317681975267303510622747191024672493832221395908180286913384471888471718227567716906588321699849933996696062151802929851096202125842383124006218760922893954876622544186233568406473511880540375490849238038454973021425355802647087265611487679052277344471642507493286399988054304893009342886365196990653375557784498489737057736653957434888795970259712312221206733289721365901584559938658071641934800035923508419810698416434999386562649650219773671919034819157206227538339864922812617407536266384944274975774778416301869536554107753895037512264468916386157246616203228895982411252059445230894792136944887773786417251927685451010418206373271419656542387043272527192090199318537363465511227361320303593861926091900280183696526891904223463670266626581646241861802230341451512067660666021091499635449862064147544154595601430542271358612728097016363519491681404409481488572128146466942689029594900748684528452830534633465850833322875140518473627124088473467511112530517265943746766850369855839654840313658832800862542381605363000308811209980008620387136003291979286997030446002364564047595986598468418195029060987251911682388523920670107377463028517228119303371757249248842945401199768917270337680416427415553115441434843398391991524158435823981915102742868840420392890056820428719666521489465804725726254704065386262615867222390913570793585304473833814086294845093131789735277966701349577265749481928809416243594023525481660219684151061255040020899890905677448481249067622750009281542368828980954201733397858269197019933274211798607857210813564358447490982606929680403053799327388915209068816425946008583630505507803959415017799658898995117967349251329149549163559055369713709865504113654529583775264343787317967384756106544949150457809695969926361576897312917544758167873943850518106679078605843469383166887251743943254508416378412280208826146993580700777616646634804603613866816837062804298286081719220333746164801959016889744784889097363725476436076734376052626434833282955108482962040094176338216064874076697010987709207132609782697293151990046414301415362695480485482528798000596318879184645345537733397400842786561737831856099016621285504604308589703747816891305094211947532203643180811478216780684817541426017089114220678806686534641094935367914866617092794184721825999000740797799398103341966898494946620135067596856180233696494452267484082344271185919965202003122304199014104239489901164993052730841789845662314710198623229979814003168021342020035314564591760753940168555560963451410253224002061446101574411574886647648892902710748790828041361909148049574917864699148301303116436588788901665560555951703956507545326988928987483047972370255215075204255123512554524625005220002638350970024054503098825002329952351593727888327493369270573917665119516145020550798122813028041202681210421491421855436063237449904118649407540117497441059747196635956995698246055066974722418955345304003099962586348682808851963044361504622501815821666492116796186001410940367376734772492584946895914508618439839542916158462013545621162811459450631888182020783428000091382835294068683543933736324622340845444369369005319094934004637721927219804243311306372701193969227985132025454034123707146760060935877276303125744870183486724774926502720251625711048585547547299755889396234752593677661349390883152064272622656460245061153128036388047627564195409135146168212073829031490578692942599765054263198407522518447532184531484803192633566255111377364296332661072110848890339828777010712316232935640748096801806666737734794821264635016640258831408263964854116080624495833576760474454585752521842724621497727368134637485000063047168840666050364558298992149300851024420265875020778030649653320423159896119897331629151649753683247865511205215275817574415326878430401105853167527920163212441695504271242460430447304148942000776141971833388209674600832681316225725020011660113732094446631039423783092029248988891748043281101115402814741563068727333474474568427552063688198539805755777878270569004141516471501911288461732992693904318406779255946437594982716107782580752257653135211515527914605285583169749385074667123527731918667084040467376494214319698895001171259650627270120168122768391903566560690344085015548649017877646472527415234139987117960398913273722176070529960905609093240917924297069256623578027464779570344310446815724983886159970296936661242034603961417754633742111635753932095030565474234108547883279919944143771030691589348758812613656833883993294820741500070552909588958996622820564340342375553686071423182245511675327364477785621673908040865112099176443760552509606968560356182960820186532521108998403741361852673595720830236611174421111225217467611296617689450999862490574936384495089552612076315350861578966485032878935038087223370960771232731035335008881739962456323065720423486303419136001190768759469627131942347898926472568841407641641152937913455391948573399873673046241734938875707814955938957393114572272976994623155009946127967266534894108022172363741170897960916289849232387621840524273688118635522445410537343124228064584526006021579884820672312706340845503281670470935424359892983261087789402056693313047400869071300325174774517781025708895483215419485178690017799422467505209849299545937170149080041700370834626724071060566246041951110778378514232436707461260158458174413719151641485508560137995960331634963574307540919822645897969901880556453486445702359094963296144930808689830775715513493434017338600241174776911391145969684298805525813466049642863468099199239122478216905479629908613799050472591521544636273710749341945092007612703041177635261847962619691220533008833342096330618654981545804587654031944247179731693427000312276584531027100625358245480806127790903069494467649057458189046556626858876759524592453607912073942546115600691004094328850104536066575553229325175635624197236987883535353146655157542354151971136605559580199019024601328991613643875070700291710058512110106700907171851064979929467068870493591836883008179961140162751585539990483198357878323524228831840512941837593267282426662749461612012593183289929539457515639033383147219967198424508216460642629026021464534139662944288720900180986821127253977763905020194707590082465032258066409833478689545909715133860407563319701449092030023598674309915788106111187064924932213005982127129002748652925500474685879943096083436553721282290840989128425569904270909622744677169492297753470578053109859480872769351917538476710637457480075238893448583904761659933043966812328772727757499721436798773777389743723301815974695925146571747937254059953166317605260419426308801029054965377237168833510091841955139486245373328422881352683736247288372091040452269511832870687232462078101742365967693239453367135550127938839411684726566998750282867603036300032443881181807015454073364157986855055690880411312159843081292392895053031670378576100421241949031117864333059292958833690003121958209584061030941863021512437682314344788756279106495497869194407231818136294663749906684794504148708669226044844761579747181622946534387149019211589605093234343781716180656922586894193628741901128167002601354974164278882410799023208473168917429797249957276827303662858214816114213327921731665129636431423168178252181235640697894774540198496970844076301074446283830265216955712672211658153019444718858308665444230756719831426526992123545916807423446664910402199674186519092243543664710079785538957643106447917631790252722711528266451612344140587074418393610488529683513565288540448288994487597862699852462127256531727330580294910036167800460875795880621424193514636462414051814732647509965364823201364626586324758333535530256490164453062481520434224012839821065340426503586389386443463655893550769641595845572801276293802345143830271301402069653169808011480324369431616589177206892072029237327654816044584443688257951449205095963995022547254111140232550337044847603342917874255015110306405733231681205861405041282635750312305184518769004451215339432181704084795405536713882965258866353814748937662928143950742686662397437507287213727732877423069831403415562119703142905533858792859211478065572753969576956302105558136837771723518135166300478092922541698411494384931554739402019560885609946930821834226290970355155290448191545859920813589742470373659769028717174752364762053649845590909220145095100581932621331876774166850913750090943690941707041404911268774324889367932433742792803038713521908567709565763173695851364369019182944801943857678209531717356683281096909697315192452930409438314731897611538615649963454426564673532151228274429793321994199880636031087425027092177455233474525121740783273907953614787378981568683993527146274788188962653548155563209529792697869281655911946058327293971583680223422803152594227712935315763589909390814474441088443676634415107795924993834506122431800729947071049109436600773825873983739158658097755468412425147874917777921358642809073615013335083211634660561520327341805239326566791925145194910043382363991714877222133004929063713403868172201521199998854108776567655995453854130829203452081517414982851675000381859475624442209991389992957790037281452385887054617122888614745848083659152175194572683089868380137215797497910980503371840432671269454556998496739752698925979109742496200985731008846997378194149699163224860518326408583366417091410843250466919831012399622060445581771873703578144597491574760988451783078032214157337017786676413225470980882819135652185902568483461802150470518409062785399791753297022030231086984301434224775450569068020045747448118722633143147930057205619809816113808907811010974327276324734197215382379048609669819960090601794065493856428669601978537463416577636542132299846117070000398799984740522004115331020535542305557993862945538999795206716438216296864432342266384780324901214314938263387173326631590005561249611266505079317165922722848545429139312193235697390199459319365974603905094330968408687252224281830617059857148366555191189831415739806262899364801118292866462669843307516466213703960419267857789201918791127792825469571956833936606755909922154231249584129518704302012919129474134326721828036874507515676357525980633587029352058350205713997409825813785125357564757670866217424082278913350426292873473280711553677070514692375962577723870764349744193418470800358198529558927143946874771454201960708159231687247029741455145744250469418015759653299929100899191531694543212627821692899123387542695763753020166566148350178646774486635426577330917412388147875636641188662764676510778390921638774071266721958764100620468856493613368997658179647484592167977179755170259668997732850887404037470972962726782225761124801501997299119279409460559300120801994736168061283183334330797267661884328834300691142601486716250908922527081571959962200161359845955168615682870324217229446006470991148427426216766039919405936906807048725448040199944848865443673787568807410235470703993534250715832323252026046362424525859502169592428348618169359098308735451873844891543649828363915939044387354413112196385775585918012869219187823078319692457300261802490331798702528857685072728207662991855676008892371335259864366236028768423591548780627438586936048575863934960487280075808185760929963306923489899768977637616987651819874369065217860561048655431741811604290242562951567177551399832227564166250918212744874316922241846452623210716674369578970293547120589187124046729637852058159735038428628255994495822091825616727899967531832241410311405654700274742775608050231163632487412954716863272969444906042120664939425527069043863272036162769694991004124670045971167579276923759574392901369500010711727381062488963385129165411076399740628907139152486040014556149178521169014221969474476240390864743891914696017228224463271459987159193727675668185660375723180287032584020086065334591299081004075510640182866514546959101690712557617422963937657067490881304270025419518150195731812338519483785728063699631936170869528158797010716554625381839525597618253972629172501086333672431813261477095820939199280864321032887263905185251568481016384814792444123781164647691931396238790515816990136310885145036790994251305026833714817055455670942755765048038572978288547721997407168031881896445696117843355863576484593314863392275267371623251058147467434116846226143059439131653855969129517025057012747619208887973807412098593287597141152203179691122771711695961487436264410473268045053266554670507930477773201471154040730960163433996340304482665373756065976495346794937271147464750497625912616436680631131050473273929612763978671255921863134677816856971325616587131150066044626701131847035432206485172838054275617443994652568189863408785110570684657524341951613773401663853498167958370534628808539156218645886267526206742629757180342237496189871008718328379890000376883711528262809007634715639400906089358692142170770377475553407039085790116140449489870009132450121220541573312336966920785392785379467874912822165469454432176779429530830680082368989188005244444053414373856501874869107802256942533780149733360674477339691068730700104212089304398613248280214749750957161660745702795780627798250954418121650163374392893149502024503964507422235850795189738382866578892016220643258748862904967051523198313686271639071577300816550908109874178895706367722344160362200192551321225071578926215618935592513605087019469385835033059490952024008017724814772721555479838679660780001385460974951022323824707369526482707959006364842807974701775002690319527994650615440939972509795993516968850687673899324742492852658141987227210106279656307767987669295049644192672064415060663684902742234288928078437407084397847293606453539255488791374113155097279311023827373302053723871326172770970588434632472036962412048275333287885001302593783954262189408421949070776311973542717500734750345859440959827686960811002890711447809960443394781283166154724355135675866252468066196476087909658259572169103140373734034691153696954985611781290553291605019219744433082236212357803944359927023108709991401670679494935962570457300936470842430412699707757632306136362998707976798763797824913063791696815252071209770376702788056718373732365286224727820414062837510697564134481347002393599029615115415593570633282937988830145554902733319140977611072227965804730875927119733416650420263125850915655786766681018076714719357432309919420543874797046913512072028845197263413427251903109986055858626838788152742577136364680955608485045415202119551947459686733004330246064276202217304910338627928102071315573189734746695945514006269876220937810039488704750675877422050046844240377163121880765103814545467690360532550466797186191558410884615182848071980344963603719019214822921748482221992352479236848905208162688724312314708317893990461993481474876314981572578046423482031497281560161793349681862558571000618128778350458425065696087815335549963312903348781176895066620527697024181919127286540007729301004994038704367839855424987308313955357211070339338888512776498778627135753565226886651752009904455416502052210428823223574422908999184037984426426895505215974347477698703946679303592693879486250371192975444735152761173309000039373334678700116451707420763657733744181477903580388080206664096549183560041857045728193018360388404913317471434040543708232917723632173379471143543769888806695471199115899271468889323318065395918121902320580106627721160611485443743192525035882713081840195296714340319270056390257312195898323866086541111994244989358954989920320532868049774487009402347981803177633131114471437158192730869842983914916183898508139557773582042988914797260599826598567314731174780238656423152219019982130324732132660638031880981214401349257729687953656445047113633848257003909266302695678592042790935674567938956133290971442870081274302048899918550871267952293849760949455723724213954236443731307259653538768279144968666328817809900035640196884739942430837173040754476323399472538131049304416818062468229069503870809172554812729650257380429819955933678508064580534846902555336104533655391285449106653950222337903135107544062705787561542393122974174424548387046600442543551316409423286237532616585419712549684610980642917989913291658428530443204741702803385843447943282837408390833526673592380720544497050826846202250078827150690819364900899133207239662470140779522354267198299983786490205062159910397869167736405104467712609155278493489279760687979015194423662630979026236396223739101847536357554258323382988727509013751564881332265697251918112099422710865714973992288879816735758549757456205383543551844213873493493571344902854506214892417518300609742475330833549942313176648242517304018357320399244236211680129742609775866488473504856155431723131762057430851057335403463116134112862112312042928829063146141763506820432159913051424748999517435729973867711865760047839975929534606704445151735364651312560105446380193336088587844638388552605691024614369867076794309187988484503979698111594266335922199759619846991866008067466908940185234125098114726274432018981098344575166147572660273065876462309333439550519228408735502141367192242130602313227637542841694964661958270965889746383288025622613083066190067202795375212092697060416807321719944686630780370794456660354952780310124287561301750919121540971539905325558589416641455248809503231643171679055719619569148362683082891098850514903964597148085200834135778515799314329767774964765021967347373151444476431183669484875900552566657752986830370332711535140499168627768535188245964557079405132721459193435238780917977447237846692475393112144619200626939163686635881420248907093374219996938844875682597195281902897635828360837837130446976064971562713445401622789113070504387681284361174808767992916622619020348453014870152926668492383170938411465532469796658955184191390196048420495914609506320145546034074736248052064423346905063860215259894793178147105435163898900282282231498532793278656524939767170809557054332895982383484162431631877949193100507033655126885894470857211475952543973570663603600240003414874564621522800434815700484648714142174786210350727316675625595968228751084167962068108727572308805059950456139836157838675788369968660769827754983094596886978756342025420957233683414054968157559416894958598038101140442624002677124181371614175972225202523638435305776643200378677597392573671510074522892785216075152482941597712407858437050173155033954997565872939286249046450989755385059606088585662665732674052102553179518805821728587013370532209382526485177704195261097730593650060248122234961192383182077878576143495942643100553473868402632581838198183159689845479674281130571495704673339151281977684639345463759606263559124268598626436321500689669776984276248707463900168100721893189757948925780301048181524178911619260669751215043636717364412905549613346798235488725394100801214121508220958355087229261608799430666852063818968015961780886842462969106281440531273512422346776286304664371296214465124162440844798365246487484536836407150912192934322933649284206303087755522045610502203825904365426266329289281196158217786709106657463430942463477674778854090039727031700740201584399503866412103045813452373416950370641796880775672665492170704005887993425582714754557410101077629888269020963584767003069750155269686359026301838248731855415084506619738565310154144860697681998847896126759579072780736817470326672696526895748180963685522782062131418705432259278729474998361414176691306668618363810516808260280741083073785889121321355318063128940537917019103428789609912591986208117291431408315749934904247350224984403303420547690981235793295856850952673623706903378135356022526575993557063115842162439665453454730053814535035952571580239766108960171177116198167317106845682107773301759693470625749923093534093677807815059700627905403374394210143918990391688815878728360516756664774515871289240823099873867516968440541848813451515192328488876999985817020198010876906755439867042919757913812666107071083899658235466192326990070094766011149546026088350279257538448435362006209444630061143047537188223903538713823426050662529112005927422766833458720931890091738232242485262730336564804113596270985256253529484839077044890586373241510677112198973433038942455884008647888040254382403218366341044428726717971530857146979970214903408567204534824598595243531827867344704840026365932721049306989559471176191575713740823333022529411091546968630420296252632563291859339605850053990742210917563402712836852875705200806243295965672008595707085248171826822623303242575927711594622093201250285342141603131435851840527217366850374740096086980701943020015156837830933121867491513515550106899831201515506000040566438003166738528416095086268350598196429202976482840636129389212319247125838395980343845721790229847353600045972749893905746712839614502319516839855402487098707260553199517692869832687015735866352134805960161109193185566493766737520197306659328437993077643260756656445468213596419624902994204200192291985384975058799729607487233071748353410037889563318666461966020326034614657940905817097979269433580020386676361932762912795415836541660242691108312241344977693499335953425780430600324698007852416754839098702566322402650182520456274041465810104911655210363710635694186056195077408516155273676792887673831650541527131124584569944002956956143091334020986249224884604567092622291755386425310087565505350475371703868957248935121737753372000163977392105883203052170964473329686528514901669171078371060957955022805003998433340964088833287629043719549915333678560794901292450485823839642892885778316379317716221122099628622168839619648618174973429621461255720421843917508696643371074890579798921057093559641886020744778742429008877192192666809440698920383957285856595446427597460380660195012691772379878217315174666187048547559494918284252467583256548035686104075362827672892328710531901422726019935601868405469583253359375052126968525012503625686539572767819060951113460300234418216032360227286250284670473341358610755455800265243827533607142068922026063655699907502729615482043356936204456105103499509318462189557943333753053177475246083182930342866801078703999318462566599192417584429894283726204691313152556534755871909290506335624353458697866121332531536665431396624258310066526610260611392083683957981970669518400843210745965297027412642563667858827674268846674109766665822491366608090952040448834775003210793431571947474050116780400308746926732914274922979793578941359221165382722195221672443089324025649558402331112990203967726163276787571058672921646485078861041517117259103848081820865243113086777983703001220620509612518692203000800570439330908877805373029556288262240149347499194629189878246450064627895559147237788056986652496459818632025174990306408437728432532134056481852686632460558573117308001303459083498393369959758568448163815588864014649490518063174171209380883745630781903322131915871917284681517650732787776952549581578720876676871249326445827356819022085701772771474108538995512494588689539068228133089325541594224973221045970007491459648880493468144942648714209789800489723527623504008382931879228804383974355830795986774866624300212319275645822623013587204025696693213311713557232646998888511539951414320678413054396413517087389499354942818528876357624707422727279965154040751903074604039810726389724717099412737471403041596381162097535929288038191181922743299586945122762993158321109902383501660104011960296016417363091285433107981275758331502692831834572242216142305918513843976906245593839017097015045854999930416556939452786740649951730712471407529063500506498496838641337548582536878482490727663868418029147699133417101446685377886857404165977965229936418804660853254744361330247922798232177667302746982893623215360154513643167530209940633797539700979433852719109863277818285820787768773341721764529788724117008242481567654897525225087168167010826170837930132372383680885185297222943722557376747005778017194462548182965293597411367333813142081826692467492903760281713212489958782765311744956650868998108422164973929642458343190952088666326028855327238491842883030606060691855190515554196324790317491022232548884252403965326886316379810622669033521398318732073654974254987631050780103644975781106813377359092269874045780415285870524935019443453450519203823139188538456747007402757697021012645272076183424615952067514920099452452019135402974365257786875484361456566207121399045866093807447080114264259459158247947485540787933531084518368517725329051752043345694743453889114285118105365750399839090569314049273184247463513187619669629407555451999256044341399593005214868772049825254690561780415899043745102091750354199503780745021665986179013644666072985427349756050182691381870529930382832439657014405647461378615913998914861279795709650622208163142537829928458579482816136652319917077494961752775553189699511316771745624369001416943500224954467382894650127016263538309108003761290233643347938451192324944066461878520907896466807846469610200219991309091685956393280253187548097369938743711347616875995490381447385873048673500369275428624141797709587566885323622279455945239925938992526241951443232778407239309220890285911993323769476631455973539089122077383802256021030822204211864993680472338373963292494489801216362942033380183106015189056918844875398021755262281732978295783834279222089831167838534527966273811935643119590308613882235252614753061045288614746524286077262681469025909409727814632517078895080449956702007145160449433821370021983156335224304634070590358487322026125621896397814280127187532819987466002792809231964647849601052211016252553804751091663031483772723617873483307643851780204539032228814299752432714526985722117457570849320353898263116428444294512189906822386907026556228181850117143079403147848821351748350258941467506816566322071785603950431149300446128943955923402818708230448747706909654976016307230255655777420272326025095266044110317014323395511374569838399789758091060864703367962743034295431096211992011463007333158742615317417396700771132683017985244325738144586931798410532469929502411719708809268410694131129522205454943048329024229647892618828936489460461247498002643688978979927502045728802409522428478210022359275014216256238366760749090022413903854524369203620580650868967816940516071637765121763865301518554357964958455388603742510742289835340332110774584037384334797810090437384047430925406072882822649339897511807119348231152096398351312206436869858596442510107020129705862836374030812858482889485609869591027066104469292987321764271875500417766139498734648786460997146303700164366337761969703898336766771500840418416049172233691313324233497991413699238988119406711993449112716906851224237307214763128244205014909823122006333598074889480650006953395696594730094860340335858004934351136428975301292620123264779940827473903138358836873730892373428013027200417250623174343410248537132496451216964830016009720153815401683276632621016415775016557022838145847877949021394439351230845814772438286276195096677490352953366211906555491452917650519991781578742982770924092355126641558407639904823540230863178005211844631301051036631407656530559984373335116258641457583601420023806640509979227987933170302540396959892864934091568538301015239420383673994602684900228248659416341462219352381707579815790881018779971638003140947402243713844362740547187758640307936935157870636350148583272485231191404749987527190128770069043383419547505381835547977681715166331077252536278720033772355887676218351997875855426786730613850645586356960480580704153371506451100370046557038047584251048958134778393857002432467647134226294286071114447800704765358488180046127026525504910718912281159510137233328646397471145714005968622350331870857944666460480241019902183656334659908944961240430878000661301105576577205817685447376054499385417070058634613164427856001431237225812415923671031549472471339748974624028174345840630929596678754983828965579953260748701422848273974612474692344747516535353870697930155902474660145137731081238673951846932400733941403478014597127029858268557264674053000044858888127861927066831367972236952483670425201319258643877856205306974943207535558841984866041908886721171991614645104853764636109290263038926463928321060930359987007054160238460029426971758601135182474327976300807809071766753690855198751023819942826109165479015752688903821692873546778513724788708069384742935339741706668679800975654008379495421674585248389001789954575652715454387988684679834782034117602075745158445175912267739370580179894700277968407889558913447212227050225047743225008687838415062022723230444791775686207076747036861123391154749442789622497404802402793485320461785916805463203269758865565767654407705039212137199386984561658554165369729627841267517236990505716168280456673832907900316359002999420819412701376721783344730877587649066660061444844032144789142754109175547262024494405550794956975152846365377438647896427428544781084453789183914869296850490989204968783231245230189547352785307982738504595671520759684128642937850262864898965444243472572562163347920763126864070720527516632996388136692244394323883969843168292541373006437917305446292591760421066425369900041314697319746143157212148815054254558145705695521121452569586675695975283385515407414370863682427452861125874415087990123876619887133641877781125418776510631534539582690708588234448959697719492882575780866656473188992081937059715018142998355230808917791416440174478337172938448107770376235590351779645448997748962657292145199048867635347385989557741517532421026730283993561712841534337963728927657940316400929024261801111435919856511932756347236694575515096814665484069545689474161795516525107453859969698940904597958884440340462099573950174779801962412019436845370248715141877177884660898089645730628550231410841641450189737912281190739839467660787086240767107601329429987207338685607266005693008455549061449676641155535446228585295654074820298256910928763842761251004260036793202053687197471604071028834008839661068817669843537081021113283031495945695731904971788032974344801936895113313506045434008026800592359815605631068854884584606679027930028292573777956680919605169907530208960356590276907721879118619398265187942714448304405927473208514413986050360070520629762010738136018095095227902630810538585041273674294013318541397706439514681812194648557404920846479607268045928957687993812775227169093074102670477867256058103878168358454177681743168785627088202802464165863221300638773803964232098227280314459256413163810517900204779327777829044344486814220726906098032602460860892996459171141083232304329562501353535135994037566410894317825396150102170598319126395535542465684267171476801873522099172173726687236901220514770307339577790790527042285008334689467797825598248237750617917790038896888183969486915279897049914063897007791323219122525230411569580852987291660466410563748532536166376160863206587049211453645201312930977280342541885628704812117243616964883559014964677893708139922560517355083468902810794340759070286357075301499234107809624004651414554119559737316799480892301874662825043976044311288551988003120133210584868750965845437158601796611431327046996384915424056994166338068624262548244368210534416162354399809038450017041406320496064700601537309764993699538993770781814939925071463222745153079410233017724435662543016261160899812357455611348043352772625067321903963043408424317266003957735810094604512174299953298770866415589328214115255822903151834722110538864815272796697397811412332592006374480787149183133004011427984958203076680007682227321288631462031241959088497540763940518260065904732437329285485622127965253580413948441674461026011450712032054700871735740239747120976192192011678692416551351049818287219076730330583151145479102011264646394146311053369051913818162593235108286938179552282992651668286358937942462120573254175868361237758503374268162769649849513556938352184705699493672178559479135696565918614493849518282060490078689239534482099343716656579789013675050737338902237977283628032863292377012382617046622275952549414334021277538678459668100388549654932761411394667551763013463422429009323937850710873971677760514875153810337335422108385274834967213332716417542996804626537110106345625139559553361101053266176450282996815128008757551298317794982854207844000633078187761836078858477806081271683042472477420641792180451701544016407490437119189614121118128543695715707811134044425461737188977255237618519579241615619459014605488578812481615195492897935408174588036899302589668611997859497612992717567780964934681506358954833388136837965981202290818086546068712748784182923690441840679522703343549591591025618210226085237600255440547494116868376471454157291102475495178093840647112182711766613221056801860291217977103199428371209714771649775533366694501605621851459130739911130523921677695118669823169464106092230428732260665694873849782416280334970397384084074062472940361074030565604753201598896166274600907270645827534703792795525424645424894338808752893880732528398347448152764206283833092593107723864753006221522448819275111328638800846857344478618290477067998612569433067344627203968291097459365720201492848453148313840951515893508538058964533135583051614921478800676957680698634952210726308685005425495862207670011525020303774895739681418389761448176402864925230579864268590977287777888777160584274460453509843389065998801714365554720233460184294620494001063072531187618997590880417602301606061327447498723818587582061722262148097751030189318876551814677766235158146720839726510154494366407525254454074658238311170665644275041494836952851229620320546374069614871243994717511198914162898830483584899197961456907844254919535888443767637462133486493312403945745743788066293201682182539168882634877752795695355066025303185550432161213488325972507167256731570841412122895862199456078361734377195376293021211640872346085779232588180391883872366029286506048824338712904954384381591243001895596515079855568845746839100081663452110313896932103190039949796676945341519219810384032479097598366579542308757442288898605034101705990772399760897000224790087792950434963679407947845694124579974296920426277848934114290548588527324140681844194087401642410415861007766023105589753881224421462604226072625734236503412133979094779259264726049013269317620427248424824345814057802419466850834301862914924919466074798444634389258811433534886786195343273182571997319877773093497388079701054226017839193913893612793272867025074468567091115275234535115207017181088338786955600519625131150800858334930567960214215856702105343973105949599952399536396959903346874756544444168583187271592820717790028331821027319628757486550791037039937259908254597062662950117809309121335641924120100678753962451528709788106067322257688700631339579121863471511670635639983136364572519564996016592054637417350161632800660269401924424654084925046217977818633301494080555989740019315712290949213788355990084143411237652157974583828461532339605028318056278055885998153795204487324614923831587408635136610589122606928673202292043128826791572436807116843461460866996551267078521227425587104227387447557899101679103449179919979917514800610760451759993420243818350466215186542438007544955267364439902532553208608964939489417921135603360655684633649564339931165398202979429147671487731728619505169501620274842639756988588137874457452469551623342850719043795946859598762566958611692836023517151892313816358959760345833209767085030670895533959005746859722182519283065944179046308663669181702096446836592098819216649893458202139480112170868912304526571389657939996665359174839960908985402922660528412454803962182941653554128672520762332926894727723119519517072157712406739536271268192088474180015568345225967181458493378960249313714276434535779014507912749690203329457746987099312636060601988383680490175636833877571072597133286376197380426422461013138080924451826695133684827728129471983589909208977091268251728492217002215039072747354436445965632671632527135598223974622991427092285988060120297256923095184137211719471841534183606403870409886042255800341042086451345246228155418028897797373732797883334170115489615500236296866651338772620213072184465578305197437541810738877673604125249607732061312627286983819276864139119980578512603045149559672860354800443576099565623422879956975274270294498388188230469531012365750164512369082156148516449539422178001279745854438177548722837811557525742593179532249420956313061180218881978318170536885694798917593899072593637024960269351708621725507726837426358534411740204556757670114255174048353240221784121432348984651134616938562834851427172770729473372496380947002385367171792190237948468157412776407341809885465943876582727054304357840941870715665170274884529275034253313566690383374423332584092189288228614628288486137770880338395194406906398180148158457094323018994413409004349602123097412102177637409834657342901905124199680897074491618127688721043452403251379966471120280930984859151729397699236037680670609398429229274333062675778339580576736444689198943181881090472201295497077717739242222987373182376648005688397457145638475371564084586360205267789909892434072134895157665871319468069591375521627403042347192724232251483767335007330690497055995012588064661885435971614564806320446778873025920771854495257991229228421935227374144840163986193642236744976805095851476600623479901993406498279497188017438406245910336067646986386374866191261693228865116012995225659636881882574527983672662870068695574551982243153974959247777029599092616323546172985628565861788701646364589716822294628872814758069908298286362246339305598139963140677049586002954175578435932591817514968435157121932172473621890809008616882258077149995287956529343161334314984060800589435779155568186605654898610670765468593424369028088617828713024761966854899456974938264343804843224144838122147973170128421388969668397396690775084026190965645964500300333761679829852430266393358844435030643575783770884169553782531603893218107668498083830970659227821176132339018851887200299995593394732223711720604320361708445553895498957198113118577556740379709437631200481677364062288392930829380168796118081130596688368658665579000624388922711813913587732223749909813291081680679965400822081633712211631609806642598396726883647318317862918171590673336465415095493264097276226139923917349601043665175952738262233946518727253564338647696216050625761042143406463046350445017458034658953869008920704739051823785734996006079804433850090614838263019131342804642029437718678030026793742185866251618321351778155506034861596136666139612442599965932392199029850609936394571306261190402221583060136309179365068160695906611704339889696022116954315804916326013566233317611780561315605252683894605148508919252715035344924616100061149843443279742979127117746132540356444323973984543600156892317102748264221278828623583663398621112730610809144112868334313960406808327271945483516731036566265030208129276977732691123693510378755753489518721086824226872092655655498207020927048928999230659111892982946473066204282418573963647083109604170668666252761413273872397205939600446518253821713630982269618591559215735235962880657596673697464051119426016801038409936628276954834048912948958032026616385784411433836348043973531959113759843391147478785017184687063695527853684086116513961469493236682931924103687385193422692782996276760760071687442650346099149232958406065572754586923166045871413477444336913313154239158545339762497301475593141508423413897606745367639674172435085953987707798833609620022052283844201559920886748728705523374221957232799175597608554058230521436371464674116047893490044515762496283219322764245715136474831999755589702462512910813182861177152969437156596299029274618695609998449242072869403743629095211987831605911655674284371074991336384222564131504589843791530782126860142532583042531946439449921129149372444132484973475493506713910399143575618370419256309678522696963330812454729114121137056492622285242727081702286189087530343699982085869686766953302196139999738687583643885975504977812328458324090455513698394835162224653054804209521120929989360442602380082325919835552922144309299871508187637089851215880103550172006646674808327692396013364965979016280874568905038432235574476829310976364623742124823772401079022422379684680400497394084392919189393878403836608571781810424281874587677329978457403502991377212952502670050700980979141514995711542395821777178907210877472139957891129740904500931052802778260373754781380709440635701997278724086246754541901150368010516557075876758952021309661218944593935069572866575055574226588663755053551077485084905161908841463790921440651171699519156935402480783536875006732326912767631422002028054386333223031681471132076314787031391003102720156631936844496837439870015603485709515642370609057439390236510354583127018159518815783563488356994386726376593306974606054391197517668758018646269640057276375162678819984879409556854759281317196758503287435272178602767998555771315016030520806013683769129887599335675864770390245663358938595491807926762125715651033633548754705588465863745407850496536443494563547793113406863866782816210317911555191953069104868080932308707930309926133650965698120249332295494136333072642992107877506254868559417088738942559634021919952419253178266738813248695252717603474054426944100481437329820099877416311594412799122141147730939078288112558964415757439049935926985085619134964927601435668913072494312013102359473237246613166858839582256881794534610659912807147198571977243004261512172724510912303811139228951255342844793389820778519722364757312738576538934416650572721431514621334508433200103521235716985606452952532452002574565237687794628282643022553442596649733341448285714402858708839546120954737999970156452360237818858622662304794664456391024023076179960036925587915727004419062879754189894832245480640038321531477509851229255655527947308206544722191815245415667693640349724669145251259403448910175442325205683193953164466110148876588536084800322949389711928189834802731700590432189026672207861747156717176028109906299716811887418241899082096167398537185147542167071519900365865385922151995887542515418129042350358845206442310343459884176328396222092794265664814337008277643729427344739051874419197261523279779820559384928516975143538887469004624876979673314954642319580216611047165209837206084340817121513240477539433588136812278176075609475576873249116586444907693779552260474946014192373329356756808521363175530263102147622761220981895792672198463739039534044283249416282291341792025630656357323455292943531044796099450375785628233426789253687703950221611610731766124283555057968722054957623798273572813853705013238020690629597866178409889854980155336511983647256936218031418656868190835537789584393717396514696048889728479418606819105259133586580323158255132633137239661911170297172174117106083362440201190981528155333960124763024811869296783460397709831886108911487810981293219771411063855000665688684500958755337525071043892594626460100467311038893548147747498190052976988126942519003698330681228104129590110985741762961594238917280077259181384688892412904819932418901887057199004035860750920685393605231299040406745498988192019491469053159121743632340935620722111918422595248691116252875917906087233792134581610406286864161814011943704054009845316877993118155965436340022467836085020587374003480188943094456670252388292857448781819855589620122613934173715882302614429448648603886017928103296498263124857323643610695677557405668847682786783549524651532888255102843545366383193760864993919774516378329912537405319364799580605225551211754472718657979603992484111919860919989780091032542261069833934550034370545518829375015581386585515690065811873283302640406952773971027472591248559437394829980519487572306411418303986563339889311262009551640396791423553751042085743494884939732461899229226593651690170549824361707935534355580571870634527239320998226646831177658508179320035926288068578589349651641449099073713298253180799053992798410600023035934362849759672480129778537707802842768516364543306065918998680331466322939633856133968329422832660125279190332539390786774784132165328631064376571545919154540371495518440862550281762004267628975885048828868371390032704796449366204609298543735570095452900796310476546284746400217557806571287186936798039140946062361733722054430013952898423433137354290087096990313464940255646087164454184119563644490268716809743972671855338537882326544373550964352553252777773131045051930391804584598169539871224489400453855960419294277619008139747902386879121475460265407890515324664953369200002836071598705275568954614567971760165168733676758134395134982542200461791450343553755554969179648997928893828576642396206614034729035502700455995945724708107098621475675962508330644004805135655937825669741593249454492794098447292579344274074146797732454140450322125884154446953301573606043172997925156374931804526403488625458684403698463726326415138573724685123307874270624011671790441351985584467148969168423769146438529240853387206386999187230891814618608086326334628397773008385767316373826747201725181312435573464235206715763165579262848552077985568265745949606564483759571870514508602080576052864193394572934653239455117800480789821986780095189200415388457893864751229496220458560145828263552703808932400158888932925633823128237628197972947520313983040241584464136682576413115372333716763556918036520260166837302572249103728316496187949213881846517887608246760627652698324460741502183335700787782353635367547498405673596942333888782073841062046700820740888152928672475037678486355530002029243424455083565953489322516092108646962885337814687076708197578664828039730353162784584206900429744881199877073306462307624776320024259680896157473576813020623386165522727314327150389898949024627660609851296967410876148233140999901705518018711788387865607748574354099882465599998899746732882346688748058508725312183921946821593644024997798156980302047580841647000042413584832164330985822231526585624097048679115827739236479366608508316625636207782462518572982998367779069413129314622057658061724333286739822366334988682986395418200657470486472074365028479168180284588531485051513170476116250455384767327650959644642763950274049560328845218665531518912532020153746608187589212593162739987916414268732218082960447067942982095097661605152922736769384322038542584320793430892348177969902963527060906215812816953025558189633463527817428447531142089594746715753546029664695091308001356846553548618994771661972462343515900849940783386472408515374261306056969524979539311329039070006373746762847390828165180833453639241700497402307555303466459325276572366139188611511058606807511642915145604318658392403451214309743525649421879642684450772345547871976481935646366559604651487515191693671613371534335120893435071783206049104832017299417456049450868686555805942702478849889510394297619450579577364677314866032843516809165592084735155769603285786244698785480086704708666051065916071048496050601164100099106900535720174960512239404498371020691792294000126948070454824943202719736439745178083111334752605913208378203768543649201260603074474525455983219338232968828210082913074789861282741636424509869675106138477070324779428961519281859573087399825931641963197562702827926076672736733487022384083333559561234833934421848080454414130162288820481569343541744206727151332293004733716656615610375451813519467128200103194985782343074228041973856898231439846590741290159126477873148553283630785053166345211692621801176953140120673158491563759536195261486047095537946351249898483436944602191746693748868026257121642732804279093030578599888860308148751374599996094735148134534580632795165580163027061491606024733066227294272878740685097561550703440793618238644162780033508770838359087289585901056766161968546993439857318984162244869327044531705916869899961531997144740530997955300183160725905257532333566400863474820780867924956925926695346558169963200966197863457554459896298303013564353203431963268322597981253045847198698630356618049048737610878172462132706184755163942902925779522944064297194431344687905727972073225360866295056486367926024145391867326653737899952728241845998008515355029080951825188729512975436869899342116400420884860164780303469256553691533157373815492762839260590788654810706141164864849467301592055092391343435117838077628689067930202224974745726262302831793687250549059260125945351130264236716165625021342870235397533307079863368665434851447674995467368835390521113542529843478748028854521420500854005361627298302561287383135868699839575710627047729471543902122858406463026240295455569109418976925373815066110002875508238794747259897839618035978571959629025306912739398808363108507811949692343382988959339636093323369997664862748806243366265038012389732384030394117382082872427075313263021770669974803437685061274609971146701116174756550014221039849182335296384583722997903422967677353082331046353813460934952983064560184940383505238557683310350786228987703230531545739989937115079068553583690750295706289609280355784331228669206009673153567667376457440864708172078525288293870378746978852016605381561731726263245200457542819085982770498158133974066220548836741212227255226130638307426094136006075983361054818528151596725658525002853357307427052504306469974861634281947115420012173189120917411145478070697619582873087438447666295007521716476071042206975438387037273814704121589395527638389078222866137214276439385159317970368984478283788207884057592177134724142912643697132036340702346365473273412175413561253565545440538651203423835935977209628210449410498478653568610630489093493764040706054368143589695709520390295979472708459635414345877554555501605361207327535698816977754415388249963337586870415301498686749305093367488550916511644974034437822733722512937550477020348744550832707510834788127203749437863260114197603070169046769174885639569417918786761829224009743893234201501231924207216784811324874819289716575426108161929558825403876276281161691885502589037904593264301108327889804189238874683945466237816554713821742931994131941338911645697365752067538808610918756266814695371941094302413603205099152773231280972445087022836037655010863759425292297365616813172467686714562912482058059666212999611752191750323403998653462813520125004466333424948535528505806062994238111944520330232327021102722711082837268124527032189835606396927120654688911786295014736402298267295035611515781683441669109054473902774040036688121059990361119747521183386411202051811133365753964223470223910564357446203417544807115739631015816810121486090063664421927581814096766805462577322819369688381203757154598551262489257655509674873543087181378344693995431608381424667261889144230034472104098235009429718333045713230669285903687654233801686391491200418048736511427088220748013983829176090085605854543509057770432812285169789316213557264551460208637845050469570705429977394947613173245025721350964190226298435134186620972807101507521962139613319659561811573524139486405895403277822043644831301731728932428992697579163396310971862681075690245533929081516854351697447619673556184916860283493170442428368354427504352994467376637086061795708313045005460174454530574048157349455925848537132441280174930189959829227466127746878497618370897327388744220114255597819888345592855505135308363229102633587019264033150195129680300652971326070587002815401107293938299080274664230704220639387314389231087669893224082156056056483705629963210150141340840284553173947768957190853486034502138269875434189781902028979834056650231406035025920833262657381058195378268014650803323477196115540347386149982365362202729572717799790271640403735286185143304563706711136727099897775994337322178697170826683958660863234074030879586378298617336892696216053017529410354435788358974929098490141742672322740886330025914398944510863923406798960114475250427641403138171184821641625820077353962779504635627585744228984316460678584655497437838944271813660203272899077240934838776720589897191057660913927126302196505225961249466845976711335528901503052252428351381338383682426687035994443994577673142648983781790416567181805461090043311748979240271211325660088220191869847033791747229113248970691193235722617690670656371102200446257191571065814671209987068255309199532424172125981201730291617117068636028996639719702673982577837720477507242899291072367532889119799711184880498676162973771448302293007214190388790680956988267981323299431836235410839949789450791166784859490079219893560931685982827172423563154782442813438989050743430413127970313956651947822757633604959208702775196887704516170483945294268309749948241892450114736599693325922561117407161809024385591825782875682839672218228957255911198943871356121207423637388645700693520070989918502390923724685385473316733645013787268809362478179082391434481204134512741455721839492465240697107040152679077311432218331356415792510363416195138383389862911885578722003637733116148140759438191502106553351143437460953586416300727454654804146747414600869076168336796026020182056896401452562131450420311003683569729769813834603843068850506529352984686846479523217920793067276415667853018953078497649859956001228464320762973726332508211092334493402150430494752439701693142653555932403369782616455815550142974171468763419585248242076572601375472363567787224170264232342839197247832715748119794967518432943555409650608614029028920341166991395614233368418623463725961940142132961363449093610077422636752356796625864971410194182607166425832985897337749362213759901893212556334123861387823845336755488657623026498230583374602979650122953877779326882391742165570870912487323552898320010163275252219980193497654853240729561178024321914511465859313349780897897754782293483065288129985052479539920165470239701193702568245699875107332628721482749300562395441570884377718554050735952548273690291275197275313154041268648228944557412733282235448671868515515336202611634313279552247608770090989658397461025798513837379296144356651169336784334265835822116542423658218711583683631750841131028877876623773535646988030426763094413069157158430918790378307297382792237707842579739396066753073195887218521591691659957899310262467368741502484859832500441619103329006229792945287364989403936422727987423457503959889192358747392571005017055834471567959056089335024230298663579198350141870005697657737795356715086056915894844196977824217364027564771786099787590694823045924355606661450861745088237130025628503478726115506955297241185873225756738431454713054458637908018772701389560668455234967467125889866153935765546088832418429717298151427009672405812990937748348182429439371028990738479616315390392199332180339183739576720799218578282912771022556738133696797462418392670436438967289772948909317816632374821697375199121537700622611929436918196426849576686971097041466483957738608958698875086782879719076466382978926603759129246735842457553239218764425973632376159788802514349405033707344473793556373726968505954502476187393241466496090815532775120272356968542712925515431208733004872227165044631988731653562528581188100781235690106951692624941095907554798337149924471300306346102124827286294607169450982308371917998900398555293526592273120009587891383401415205490297006702679508145304877296949015108707041847006558706033563411059162114434077911732434655604194034432193482354919538108072296224782554632228443990704942514554514501617671147071627808146123832417782849437028787903851708204255940226554450033418470084955869612715200502903234898369951002990965405935934820045443447120474234363034503486172325596463454940824105234279098556577950000663671332864564770032719429236910180791976709923031849738171966538916515707984724951778984455749616309660168289204574841499439264766243407461670142215135150896661977519107628528773382385822478320145911115615501758489701811526046747482506165914002959268133846526499232992639104365338396033942771142466505940461422522282402137231870704671020735907145687391759647215700398573461274744010772617201426029001464454317809338946137050370252342671661140146474147735271892941491775683417490416639557719006698573712672277840905399168889713779335876869727426227948307527206695122645894681109425443792550742208604050338362693369920548671264930350433520944080990775010535211855198671065962166751064729122642756884221365489059341519644276423798263350246581706477383417986032527133224153200572456564823016505755294609580059308115461293748289170990564767373195165311178944152960905708993920813971923987192543837658549077137133557483209201086357057684477725821731421064845362552077367076429740611682664738288367837719135202395419535310736519306884746362601793105422825821648048937121001639387997438597445050287934834644276311848120503284740525034216276499925716976077059215964690840171443794515727555389220951162320278244337986003255634724849609601080890387602528860172060508837621674243884983082014214599317392359426714604507901291409064469172576305067114328335872837214390501256581552139017855022684545746948944088365042460619553079073516153363418666441846468910597341632350932306549946357734215449723301373217212568567840920919824892806963934013694320045770616367123701230305704177899990426124461608563292600923132260887268676943909167085463034492209192655639888799888585669862542760665790953686954458063285303397895900272914072905882952950306209022510802763104329247054202134122107449708625230725109186196799490200793289342569903105541521475447912219466181065657392906372561273883113129423446446728478232340244753226006744873615377380906474987598852093026030093988763481263467655818908333338245149135330545635255479180360077404138898401710299587290598207208102239500458404652863154910790803491620926774756369817531478058498963673872351312885128822523354966616383680413813871145376872078276863552070880922624415897457693116227287764647944188426079842197616812385063532914318007908271707876954196685785569275028008036804431950584188101887443677435851658695223728107447881006759905061509062678241773729868529822315993183041149357143509723297064137170271442369880628267460138171900145234783407198000132986253524490749576503704922808311033690967511240196467172735461652794032177673369708260738518330000938548034221732714076640584078010241824146259609107934712189727922730961664040060887811753347650704705547043896651006357392141374596405182880219808785221322635869179483042748290897712917269186057032915187245769961558788512397999581341161999621834933355516278886914940290639482650201676692587535990102378062367782855640907737716097320511509423318811262845319704815828894934606282947909769732689067616267274357599941449206302075872195052893667446722394984458879368466488072788527386080450175098705226174933050623963468944782809450703654727127155468277142281037038474538886911434424986188238120133824864635271018330916915183667565304461009421492762959812839229432428560083381628410725799114699270866216555702814821355309580884632465623368422150282175459593915393893205316665161528868338668157125563395430299677129502354146419719369973080430788734892830478075805275989564842443237028305735929398165679497527859645544996145185783308704483870712160034433336341386437563404787555504264847088306739487215969994301896415886899357036952092454224905375737516153661562568232622821904293558217842104909787916501239108484191669484846422491197553775824364262707413803978229380966682149325768446893060495291997200864461310971010225209348876832331529376323028852603270779352821778011491404277415740603161568615259766938729881820253817526404113828392865456510393996408053822881749845097952526915099181742316612331299945898699443653080651867014340316677264646649706156087059720598347491529356272605973960802111095563282035311522958661973975579404165531794079840779612475803887120407346240288514046729909104395655728564133017584521414893686297041856900007261179154319746882005697054344229269123129582710000012485133588711819521084548063090054421875458624108275855943928108448141046684083547576899150552226090032118752067654178721410601107917316290457935769589132095022236753034350785337926655971706776467739594500668936611407454395181730403364701787886505946292895063303081595711833233188545481397188015241567313146949592291544085511138704355164306576109788392622809126285144301454864687770063178046253069500926001920822758362946351362965257709498648863535353660345148019014210658291857859400174322393132212160529832755207754587148189035273160660903776271048315577954082060207226272241407991329238551909302534618690558610775733691894186492114761298924433032264335362084414784620973368859771043423997370246914254368955057653827977901065674067135511589058682935800714127660162114030826908923440272026984114842887348507487544234502299118648469941299925593811938351835574735349011228499010639001917992687072428154606805142488648663770184375343411556512080502925989529508272960839746673978655602554973801198916743571203143496994463299372159637867490479695857663463779826879678814731071749889717811352876605360644407015951430390338052455047728998315444025015429381638256175130740628265363560050557813722150466682485854080717564569655666357464363458547777858209997260113736332312499259508037816922705406842930036598042016465412719469654101424968946015757990697445252994147821626051096143450131548021300411121923315585882889131440857208000861606068220144806743749097562937788328168385316748153415714305773669697846718273680670439487146209635018742195706490495715015936692787309424674793789701465449539239530601593417307621101304722413172034022020865629945249539485571186582437332282538951708764347751515779002745122197951358433077947024919520697103047584848084964727931473777726690159240759383669660901803104543104389944105117015051640246356516600293512608987133066219898410985437081333411565866403425971729947019169562223955037808128266019279251369679985263156380189617691567771315305438982767294985597435288714153308319385403420907077511424500738950681187046142822756432042666812234526177227790583726794452641431509836989174986294556421538209908100500751521822151083120779822721068561118286926861153911230250483361704756174990338642327988281176193270402015936778469942557396589817455767799347652821743436080904705471190657037084998681910630916696001022454244672311388472316695104015869335602210254819069887986219519317873530818399821189062082340296177070552748184834603952272973415182416330095608986121923657747838214453090425681101096915301922376108451653709494340134747823979020370795827661896526877129577072998215555198329968195022562102691311869266631554786898459097843764232198213509296023910149377723407862911110311240562949560623318073291966763024838457593608475235746531690001823479438863885716095394448992083436746200763051079839929801116807585329780812269513458409890709479914328897081972518846101871400503999225587102831088850034278120449963180015914247546405784101724600300309841001469795716629789156505035485553014283537490412230342379199836018837428715018594021315442583547206058333120440489942407008788487098790721130014684581504953285072375626688539547491403281762840048312690936293289467381715941822709889925432447287033220709680150866586356714802595506330718056146254740726584079644743490035369049533364876319045676086977499033130181753465995645381515001099506388974234360531443289047327931638380328124742445273474696513685039132120960715102168090041785166986823411867393739696779242294314376952299389378752665043581952785790073484041938009991661812465604919415319630498510132369468861679517942383783500117411807683362209208730283803573644529471816789063577727347832375845726498535868282617338681437758096109017280817501009760517965950905478219535836048784731002139014836411131631953347555739983371194679220822857255667852717955367319344110883774896767199601268521248082732743585231524555272312136084456760379714263749890069050838502239171337167404571247695116343133654552914501020784290714262123941255197809802150300355241562419367071682246872086766448867981461407806900487273349685968047776595764110176389998834045154804898725171778727759894930432989504699044877166846849537372647414504273332001650481157548678805855987629073250891470139915718814964139055646479406450703271826329721934054192455262337545617391820758292475441566491497053477371382299483721967609126273373885969816532685490419169046137000559657798956944195516679553280822707016380008722277976025025313372709826862305568919050472832401158589500292711902897695589571645004208896932770192549237108924358246647060072920919438796490976468819401929783234179556743072687146308625344069893153459995940196782079232904904073512884520112227346205557932300388911153414595154588386391768519645835209406704492468623003726179920720230135659734938930999664254390505428683952222167797226287136662575208204013881651089154033363978338990921165787671387724191945640787709189996853878284284621608440470668206522192481770230149987987129176785624647929749387046117446631004729141463395327199609662706291265233292757789411551703856462293213509751714415515036056424241100120711541533271623372330121124238461611078273954890559895675882369822282452804887779082976708118248234703794281221941495030996332073993266956866139200404444847100582935297194417458009936058359778294025675291031063881972440207975742044635198936738207988092838045295737910644175029583603115055729715066809486687321038239245245123921137070389609321160325243773107075271221807990384664103271906907671670106654120070373727432811638562799930156752396766205886093746545922548025744577856821821146825140923506225866053408910452504638363093739501164080823995179068158753702387941436271968898982677538083738798780649754313254340120056011288466573222447028941595408477058232483280900361525118703810466504613824925492490233244072885019039379416269669947575328827137936183451231889099059732737332031137007760137766992649083917006874008064231236445272760468187505612344414413054764367382122435071828552038884701473010946054869963188194940732434800326542452061006525383635895418242289796443633213170963885161957781059899539348645824929117451691321169425982766024016027820878946435724164633535226285607111136813113637653034069030047565406536143709510336296756250384500439682162551961260085409739998517742966390197999479480379598067571436278708473890457489479704853126507180142320406967068166423811167432787767464221296539333818271943997996639866245786932963725645205250387788947889905937404414935607433650980575847720760886665006398171227152753890845703524980191228164894192259478829772340673289828447235444561615914711929723654264764981813784678579761035626000333629628030215057978695761452234983177534435890149778838021554856152078863147919829084392239470447292225472950969721876396211463013031499020140645703143491423722606247740611380401900933746633307133956363732299153979026665035984235701113585120479001747487321294480116251103079819708255749691847184907726785324741651136464315782466336083431380195422099971788842231313421083790060834429835568404561022614184106565466185154671391801432283033890815994392127707901432283623861385635183327512026042868706540548734693769371076838503906864622905644334536655066680696348060150859851315525742299941637773359716701205384043542635671251282409763460547666151959043487039780281035800349192618481908737019211526621418509296364311137114337916812027752620781305024568548109240192232889055468544294153101641752946876396118375094218442474801494547208570039646722016692638058973145296430080196187623986017049683731177459986036624556543572455082260865193588623872914627405981525074038107122367434658668762197334520899682682497701184699192093545663947939276758199479754231048645231117892173425533613787267670646862407752080768098770455349574524807606373477758748137471805303840516816547772060231631156996635463857806398009190675941351726792346462738931996488687530272641961928382605603745701837470142062532976696046516960526357865589804790896084288705907644404020591786066064749188771701530080143800874178171249900934257175733832204955456933838329368120519301999225537548175966965542369397680422293025908525459224318793877275529144486881586252897878851688310907699930288598407003646279946176211147851067153977298171302680967299178148753178890938789378334936390708619842638877847575187582405376582525916118333007112741037579302345395202238154580764789222023421308193679648311399824462973514299731571143067674377944705104461972239679783796902522826594992432457432404393894696035393202860131537435944286071005265583076654854288495406762311650226149563160382262494074502807126891786063109666722640972822158427806391219838030286025193476903482091388588339072810156653293586229574639029163926623822607278412877525783719977557662084336318691610623430455708955254263163520778671678242789264139401150792512326181695729517482881540133263776871807550421874956354482217298504794399824301856813498780984570353806284028088491510279450184044601597615486144621777621761324365988240729119076513797893256727278965794571110222097620345241433522970384248321232644466487961281132515918547171094438190836996950552683317810653896107695882718403986472481200920145229655717082704122310739573492164402564384414522630695456327707508092553354870339825482514523101385326817273701094900922227818690512926638463686264108033410445879238248023517788855406424044956294439050844768067067208237195577877191710234394597430600632133054298277095519159961987042926918979963507776482015041586153134946357074961662946619437697350143769492964022755888452539275035631501546048045895953622648429065245299391848422745983735469174128276576456006623006387281772397369001641838592628435362385955533139775820443581449679761831355977380374041531073650177876483630156823922851579258442930944207757140706252870178714758835432722070214947151524480695512440048079435988097526190500160785544738970953570740018645201983501465611094489784450154462798945820533275119533988285047890228179537073736760486833734385780166482657902404216910639193961675038118189887167782776730784867605909480222675535414269345325055475500787449603639889191671984864788549627735984853866392284273335467964356790111498976264565461332779556231991707794053161812616999626522600920559801146645301733964833834211246587111408612229378547672051803426516523215152833586678057025860629540428752177187123280882826132993129865207676281170211866232143169416117563554915084444070326949378876234094458514809327516059676312437866179857556609086618208631845300746492205163726417990781386277070023138800713736314050798647984900650201688918421086049887353021740253084693350238608761728458131689377128550124710858689482520356990124405364578643378381820580209458915724576359215353732855824367144416964666674317025214793408952298864682298422560734081364984008548585789168253879223467973240314213851727754383963439174145213157725321200592041864609218000139001942952013795018028465325376148777362598685558263809180973718476298106954460312427359181485743864627285044997154380923596974537154876438321056435081084647299186019734933570715816940361231479142754380469391876259226503607076781397518680832860919221055361454702167249416250920267190669073934112910719106063822965434976452997992744241737342864668054552447569151619974891048205562812476925125456044980165381637904557299467899031384137765043010077139178297503678038113431253806907755194466821055247783203107787956090618155025025629533026174555650617225474887177655552763817973775655595556647332939277231897601147894385979990303510496807466840705295688863771442145000845580301261674996125553027975051755094314349809001797757128697928440417769473100658664648094399448867438202849999619914946038894071412089421385463200763511258574042681417235364648453138368388116169429199441960678563095060171441821155457177761029778501163727097765052692754272632855002633812739811384109989394235181037483494050403575762980529442555796994783483125984039994137959520357894480279112598344308183857179249463356037135747813863738923362894590920555543943669485169135102188169974128630059743183997074220880826562755420447335604449687507601854078419934223172621017652296445082421108685215791807116168394031864933041604350131883723570798386117823899884126924481379267951907854011302364731130608494056576012579187368228363311491613119505975857620578865876785195002413649644685248061816647171623241983070859097135160187250186973405558969368309073637528241929942154576911416526266134506227513755521114582275326801127203362330594257447066308437328681503269434714014345271216985163999344769563326223465430905099094231411684391288758776367020951551150914239736359060307627840718271640572107065568330554163601356875735933751808337456881127797031565178267864542934095138829807196365146124862029912782133826879507410435511011604035214827808235904185630681050744320239633347515598879868643267156417231211281011539276474037824072225432581987129663674645890832312843153922038823039664336378106517518293410703670221273155654700228531343872398780202541214702145631069793714145202224860002909647344058092492347560262110982118076893362511282092547444783108437023171401608684530392093186556608813233958907713732250684372897388897658536894852611921641961841114454927609197949238103097944412789293929039364776173788829905860862697387543808472640532629008014014975496973755097526316645910626874175186474564369827200374784152713670482656869259711896474810449639980135566367020897320084401026225192178141065890480501555580868921129347492428933718227195180714369875355054271648653433650656752209264659021548003109727422231537666161177299807912920721087064960146693966128952851712756759435797931605048836823294121683169834401265332221796660948052699061274815704807324238614394581201952757715360488816127770687863823379882874727281141809880755921957260434982355888559537826018497754897967131088593154648053240888705678104130628225911523283338758482909026204662917672312345409475007822543168804695374509763645428184590440717917607847437362123627475445100051867867336183631621419426780679179890301825555117459400099587271669003971841578131691018762625168874221670690816930103142429861896368419947379743418328490493133220815096191478823330491133354765052583227592115101367742844941876518868358001701381629644909423506143331592280288538295328293051501204086608739106350604790500426979412631478118280983793828494796710204291983617340859555579415223003606693176890137946432735899223653024346435991101512025217616767671446846163331002503871572982660647727205233871037776986423649783133500957989750522599390447348370024672024093294928389455237963165835092009353690914157106823801560971098535557250454541913574786383922204532770452505415202873231724784644704214539716125877263019341478336240278385585706616230998368788158986071189871170584242916297495326126176198061483679608476163463228258970108568682773788782465766208538503861448756294636786075565198672367959589391994979171625568840066072677539260995019995121200579099540910738502856427763627302667391000487930074928564562931932161396941956501764194077277507089726869190592954853574211688511165924543729147178813227304763417875414441047546358565825557775729325870794678124945745631269082839996991672360538874458940881113983470728480774200550070586408096571359268442320871485061080812697763755402969086192061054642710537599593602665622291850894000012642775442923222742868273678316242880555466829026186474651017809887479245073743061402431254397118493329279359092493046303584911611502187027533791122222476511833215360577734432888828467400313707984144413468702133972930051058164985711670261943567938569704449052185437001069418001623895173158250894842270404033444366195539993991621029814674900797532806012300519725602739414972985264587475828493050875687982057962892287641410080002006078944729419606049407798095847754571262124459959809694521360266092009136747884467961942037367248784643073098089656311665197347785752036196878121021099158809698392811982735678542491893837868858162065813130969461447724493020025238864705162091125560059912585442641216266737714539559599829147725792317622955174377622836986347002454574277227189231425529519782335930115004214340388691129075029131261023719936808216729032967214321348784367504379286136234320732890255197826847408948973069510963108252009119752423770546615797013481184753554226859248837439404256069938221571327423417922090492212558226844339957085083865819707684006473582354652186890913825646780450547329978880242246865650167340694169489854052782454048161857773255250548763091280301975425450387768367694775633947136030499319205006692309960669644200686580891379259662063125603777031400305668764289246847584561909046098068527023182900504522924097518632225444109096310150048018173405600242190825981905454193451137935089465815467981098877840381088780251555527927112246975835296033811954772271817316979044411846751366411158771096775817219237668888616742380794285734713889529499110932703834069130714275353246075457142906974881199011128581949332953733120879283256055016677945517425846956000243039037677558023224161888314419963976608545057458804082375160317175636068317323422727056991433430378757437632939588548024101497489895497572315112393292025658991927561245587367512971003798318232142257913235506472804236425032550721456214277785105854411719633422501513424979789213210821053791254843350330633272188937596937168274553201642915389742918815717150338047674531088299454128188581028987357418235181965635823414976474313214157281001770989306591077177383141040616573409240677979830528768058727583368601438879709655686609828718295065204340857214944361184951361330950108076840262973874861712078638981082618929500871787447101553253107516820223496383881403812144011034387866210586360197942651498723680674781737894767084769735835677755673645496783371349248254210966208954020809387699850521863171743588627457995031506750120430171610149058779986679736243889937677525942592359471930524909149448578456491206283974493552216420032926460762455276864098588853917542481611889516681974231848527265153069997530364435148953373442507216733714811138551926398654824199242702023476761494429172573449744622512669850946597856974438914131559944725937228935064192630895603630907684663487832797899142448966164611339264906623417589661466784742097065571094588428984601243791224756209677679872570071440297748653726001912746810820917095677063810753724754871331438085876385478518772098944868549628634804624411732290958821235981978962659848398006725683154115577269263216437632120981079369956381242885274732927775108888114010899718049920568191546371721247078228985669274742284995488040833254737503581116524899358448161087938316560637499969222569418826773448180427737323287897494892952656776825722894150459448709380475709559264961609675373741277357916460898253022310699528248172091540903071733230292548220983518046752193008076951005035836861635647872021949147803508667887767230684261652011197722798635973465150027046706679048066008646081448699671564953686118291563832541701352398731820767314236914702078653400225302449142061533493907579099865373785956924776292474221558486103590251297424877514986268198648585390566375024059952286072381510556325170382420682010769895417360419752583149666714231456657292029300092504853185885608351774125642796281048234220444359971471001818604721366943705953350677814574907477830669273027807049961672212652376297386896653035974803334896355603526761069470443285062927144171040208268542094597585665905318567804576768177179020283010975648343349775872458789954551501634866340321694740676433228880471996004473228525428993669288988676006590270101223355439064124752185354386475847215644911863987772513893152571056430125264491138293332423096602146173544462847446578533110542558184191123255655973791758434526232945057077734136333888112553846940915101038180121224306082586711198986434344420570043661485283082560668868297044138393490968078064795524061797927628155754350772211345707387599025481403624390397867640209263519036151181971366262093615974131385319660083366405683626233147239901518860488274229106157165952988179989177011296133585434831051020990077109135186127924455440616500448991011513283018906845577955396849489746752661003417363914275089377946378960130509300447921723444384417810070888630738071781906589535807813919718717473148296501226460025360378386925224859908475564618625519901561856411931464477954260310265979755013848260626720993472882735836923340455938792986531070779230396496934702112746812910968991163436673300666966677768599234030762954021412646292398307690024134548597386890714615967694834188489121756018878453752162878381416215341598292217756026017178145569890299437976258824766486092140463886685119160452587827178147560192643910913140086330031141984991464417320195010137624159752407035672629506477432435329887807227713096787725784481417340328946126302517859706079080325562714311505355656761595932603158221526704122004331823517422950234619144590671941140441442944860256037326957865078190225663176003070780899370169048909348391729280444128898172457646493498313741566037248604142823948839344996313483398776475367038321923095072826153960676954194517726523814147064588913777743030887879326882108814671358197596801258587462762245427952966043933056477367162040341650348404166839999184430971003487848770584449802718233518752609443148609233913618962007732370558052626044815016201429348531468751702744962436345984375158579517173952347461803802828472767555203722246716514485297899849806131340687858887897053755546797492937416285370196720520416381732979112907779952516571476270581509270809798686626287133771824786138690340012196635685367971193015652638064445510765777081246674834672796011082516435641280025029480128265631599221262843568519959851052420288179130851711457093725548228019071299868197955415822093523118107345953505439107787997303768364067217711848116328478887948753225427534003964459086865474916302450329684997011157812487733454748120342128721410575777067813252520733629512815377710622645188784651770103193931699253425975012729356209663783657862669180290036599332859059748427636722173014005307378280432989209132740540214416630283144014799512684684368408850299963261523515862480705431018614256698649789609796554042472530195082115252228913453112139028433606676820005451350511111536443610884540494965701170268236047334147716421449762162202595882014753494786658903522980700112471598269107597451796940081908145955983112649572628963143033947481581535832235998018379548198871347993146599914706891343791588943949956669215832831529484137911997733082845435274268146343950450916852134077770922952898908328992421137986017218640738428988203299965734538683198921018394554906998682542157752668677726449098746517867484458731811006029873373875596802355738104339705094246162092864603922566865856121491829757562854702181697150294967800043859709672446434438703335166184182720377002944976067168812573253849767930253857576333230642675150305676837500731325402310896951472528719543800800769225153095521292307188802608710873521085028417342957153188765307005027764696867588971042733484082972121978303719569581428979149276213208666070226476109498530903415593373266969655185684160589092374083438078239149975116162999290337526641298025544035601875663739745898677027124260041803311275708620788207369807015405261762889294227556440332519173078328807642045587778655102192928029011943616188160418984626931396621780325443103796173798687873060433399736425869435288078826255906583655060488515229684644681971299612857594018331880512627866488541262950213884472966851649194185221704227063214652275410059092820076188487245381625123141118265550133479906340911474065939358267888162064442210203398342517504426664140051285034191148151029332230288534383950736001677490654538683201148167609534461497430490810064730975716282565545271958333120578410136657404490823816728165738907022514862353240484668683686571225653884528452033407644599123407979341252012793507399948642559695727879125556928423365573219641703547795559776222503884689830165738521101685915323154228030311415679321497530257551292478608251842463740965455078012544700794154337674388238061907537588799916562830589340245033038691693044862841410371742429687858969470716462507346961812365897907388919850543680735510862144977273686843410144867502906889710881171557447512335066043879285704580629298987349071923851886686998726932942147719681313194725050792147479307620305385509802449510397046626964556064063690304679054586157237506409118779946950827493519560520682785460813807809525018709706762718959352600823443354005864412998712933025492028378372423630279286680444399937347670669899644910582301182723462156269460832940788492282862165248286542557069217397490071579472330057931786414833747049224551751963536338561276071188283009832947645284134679787660929853518229364370280430507703622207548104452695574570182301093438795641378343595093623099616157387771257021063886201876427810579627367673579270397896845546970574111521854888935151394707421065039242367166285771860338559844437435236388350361626708889073434336751712140967990214487074627202849725799293981355350483526054310253322634110503921749670201703057063743754858000093313520404634113279765994213230004689692143476714114212655260468986250484514326806728292560530814190547299987326168115006809440543741029985148679450868168120063946684125638573156476953809524657026891914468893567991855724731098498809669610954276343398841338284581133884830606757526365029218444676955767564267857016543996327522985392073034463294961708081114876184772234325811517855948785161672273505587004707833480235698044792579553152577331665179016605758576728848043146537433854446454392251134883655615575979940855646088664366729264885080812912340566663813926519231822004679146050466936549975759932658127506453888630984950474155633994859533074884227906745752591731494862529702408223994300907914490801073205301899122935445739575732653972729595285285410951158657694801047957155878400954541205154782714068667571396360941878667292937567369113783836169464513223974255070527356384175749140060005318597298864806065050172020622629042781081025662544071855803958790184189758399362131616831755663565197458904824856554098485689151394592044748471912410775071340926741071590212810151427307430101096396702607970843778616640928330114428399372898727949456093868160120156863687906065935989444433580202777101938746737130599271213991440459784293436902101862125416694171105735594551871784139690609960890014480302501015793607508772000612622187684054704794445009397972319305607799261098159421319281741857640789934761370446308663966135810434562403870558280884800571324983187052276004402348510813662377626804137905452998545422287761247134940278606932057867822944869649202484719235094880816705728831871837642453326147115150697113350310050556401526472802488856372799681810438158080558929831415769591506786450776958755020169480819947201120056594985630120536210593727309396207096026830424618257707297165464057145127975030369312236618366843516503307397718669931582736978464868394409983777501047177791493840627550949130386650940486180348103129970207532405975163759910999668488556847394636948535195461027169019134129488452180315110625522935554694455864585821529178833366142633345555258988164069917526251502500919383625955772823669281841805031057812236279386201418284808891568385031258383397465484198259453496592637813547021733768855483999255028510102248469197376271591205042448149476511645433267328580565876587340387707063354853555688369827484162501873801506875890152999759927079063712353680370719890475196677848753079845964621390441187134768442271788675778926902301952885307670049737762782377692878218113475485814013941841112064394494222560106007243687275573090043770525122473650876416500636953386145472535847957487056222759576114388646253504889645294850210149860141181607906091870320699240674791445855179920779835377685216336900030778559842631303801883138923275162561673177530796654329005091160430022588683057811012247649971487652682340912107578434989453822550586156395387539188148953617277709619717195048903709730244235250125336296292407214735986091770659969949147752517746767257594728073218264053972114765330666059423742757806631272919105431055228425543985183230405036044815110902428401892924837606601493630478953033015852642149325640504593524692520977400180076118528282528843443682758269965037602633887879969726040991999563060657596305176611411558198096196511502994131858093548973353569340383305851759166656170448468201915764083766904065083683129869121915164089187344241579821377116927651101189149962342042711075409665488706774190134789608994048970198235553777973882674856058997135623141845647099163262353073619280846405583830950803994589111828818892929596403799369385147226531178285919235512657781645978597967540542617387150480336039726684484091839277286331880308563458104578517014473158269172319979564334310712142076132686901903679335396265542009437422133409846304243762524879670125067065385544264354762324968911119774165719996445708557338575510331698641098487236687680995539856227521588296702599929741168638996368217384960109744495137385299151267124733593859828627666672328056500168514941756008283064060194119515327407989549428475725417838753935312794760430950376845245492884436182139607126201274745169365628353479286741496528147995635828444308110596318858453890647103331970055443055038212536593082325486113197105049289892861471110197491396281260601513664805652012249000477757104757666390464895390433339047428586020290656921658991630037587432611958329765813556171129398461921759035199456816485188182921485933564235406005050545044637599163642201373107037831103489883041862883478401477322894096849039801666916250979904824973173629549098649781400513259511722999593687211481427084321652553215321778881880847122625974992021239790714088350616928378290509380276082126200081870752933553067755358371434348297281034881850328815874983256141109112477404161705944698412867363519834361917725497343938246302112510538191618597393843930155487562880329304208003490848454193236654807870334419063519745848178706191654129757904699539254643357370573451669571433940175264950076055039800477463665527568616981828657948282392119047336040114600420502195833936108803617658197411927786176853979112737253663375115045839649143611668521628806677191758027175941606264669937745001128564266402985060294245965632006966492666388933720575727294065912396426417917383157103599229737511723508378744348664448244417753541666539317618203603202148538375577031686078230687268599348971177619893828854096674406416904625971923968483759340963990911735406228640492112762953182233822475796027461709613998224483314876441135754553668651704375950575431688399195827560603767662319701512569569710909773284332036099447074807798332067918422885585202694551029816551101509627066480170630316549769217438093139903439503352994992582686216563582373639120646215253086128402183359984689734248773830920119111875496114268722433045688717703366741119364418509491431407796108604871667684141177819131370180827813397831268436016439395377058360743084565222710141579151430173106157492454846687062781940798357165300365327820346771445316777278185852518489460004009944581258295825777477229247052719585551689937640301037798348926276412290237723857715198052843939433335174570900788262256532036969805110482426925554802297356767475601960711241828405705643704115815521621136902210112962110408696304471413698084714440537589660555556052114641945772433566083631053794151505321444043072166470610805966709097971340570730927082493216466089376622220862594534167521218114996670136813103570389294454267746422293813600275203777087241193643451877320140692388301161823393019116261767862197233440586655254256492388233442733207575832627533774295141015707370828102965245322039183438404568762067069837657301430811366957833047390361399072409537000467006756259172697708642138417163425110660294751464201930047420922594200272194153436703264612583356370122455085444078312243283416824282362115926705809794224293465090666259808797470258369364240931115714513287376112066883304176002695839984489137531237501902041096171016857825330711648456508092680825043419404640181620005489427019383828035784013646289915834647083203631328687936494637600556271825059252990867280666158872879522110340413184418017077430493638866171732339401993122127575322619461619390407782028562106487619664959704590775820877374721914480547715686347258981471296122706863728057648373485183332197606480373228112626258133167557000547248453412650071800688307267271451563320575188058438601582236348559709498944748132261092305904251278413954924093595204106558770915612594789301660241606321139583162117539778122817572520707247655018203370200736087456091965650274061411878914199103306639092594844737144195629708104202688049368707525045379034367437551677340655655834009247036317963128018668726502842938859249123803175424203542495026983198235039281737647548076357599184829519680937741531415650053609455473233994332487406666433080846822836835344058829428600032912572726136432896028805516903901829742288819455477244092446479703844736019952958734915056940950741627662304779374145633291231243976992893051949024568431324712096604299584495535612377303169629831008740701099068900964372859100594822900923437420728628778016213171616463159875743642690555029293652701283595248977542528559181871907967987162421504654195580182093150962360365048884966071074434324812780100405056292593322833706759049042577244611574673941626827387714899827063528681336856547307329677115577524067569289208793941350772464111236374007188920244413410469908348775639912311651587160442816858680636831360506389237251417090852607573029936178524165528707521938377887229013435314068257776146126876106021533836065198380259626507370501867127924221162268495897840088974518623543277341178274701539200601546459005435182535992422384635212104205740930080542154149815361957578397154201336070119343165632792589683617144098796315341512450662973171133250200266199942828670764252953399019952460788899801053553505942305932187411586997045956716580545560837749237876990672159181074989379045447478428448401108852301109585451378198654354532284994669480406357709581642322335745691011104737807547431892803234041529786855699096292370604517365671943146405951822561977468354611977574747345140611387276681056378967973131302245345139665894878551339711860676829618213012017579076205899994249952227630897491321397663496714154795306428363318880520573695659592369369843945501843199485749462120879171627422614169545171243232653162689557268858292328212945223735313281999611830585600459160083575594953010007141151947155753172020717383882250232293596361537958958319105397470326952509072062307326566800597588363962231678999847693931600723920960070089851111293416854808753850540249359471444271693190966533187210556072482191739177029406738445983718422427894938262231728937837876741865738274068944915079682944499444396083437968758606144991998729371181274336861292952337050005376679381187806206307030108196266507790178554033450383994261182840173964655313551701119174760828969933519361556130439186278192950169182253191865182588896251396079991981741515736007759437096052612409069140816249163553030598083442241079325808539118878037028212476107748033818223598767434061752573184629017455861575133264178838022305307063597189257443682578269527647408533863339393100191044667365124504194256809051301738462713826864391235184410519721199060473395957148685598517349306618979392161584136632199182828624933492414890738223462311902788343984406357923113904088041218841510988958322010614949409032581648233093004550638572914537845702113075984345435157551584129651156272009511579258579355091819081151747389688920502845730289965367893438558206148680197253981552387484513927642921987611124324064131328210157429967367790491867431625426900542972649172517743491655878507604021070960391207107301619317143837444323533354787231837992327819440309707644009085994397041253555233511265874791053767852143107033593799160976561689371611506055802232717614221163505593232574178395013821230515089532349062543854894920548057131192903879545396490305877902986390123894160123151204189744539544264444743878311514688706308136988708631645457828113213343984462748869608377016995873998128068630591876000723207947458197178694561817175850221476962490482100091956373138228579268244907825741150922364108415272739630430164771464528982966992293225491923773676376328886034241000798858963656953510283037449210008604141110905112513756915978700909784250708674492965418136138342636856365541694826232284737801532365658781275221712590730291021571435323611169203872886753066513694417106945926752472599366510961092779783288565602716196275907026840913541080843210531110999626741732463174458236364219554427627132293212330149978586541061761891894721302918793233477981238536910961315173710096062584143344106313354880866176881547406672262498831380988063096605318210361076230055454665378935670570753941955672462235042577472668730238328340646619770505973731412293269991651235728158529151767893709862565009608661276278942624311400484188841950491801492574422962804931125959956865098639423809163455168772935900935020318538102036088111362608802287549450423733274819254022040177103068325527826492308601839346013323447741412344666722150121714770280841594722079547264826923779822897945876807988046286738076617533358246350706214137158396179942482888972630268404099461360560830078000894606206243403230847701831635940253894727112360423432587344145047719764455611850272385695071236011310567830313959421959510046953862702845612520331084954889254010495599337557795286995913253991386930277348177158367313288299599383827731556946540241432619340311289297446988888450504622919752814217724580661903632248843567198140008617518478502351239213651210562140069765176122672508444749645160738463563673462441518632215691914409200389218996667642402653864222070282827813039891060011892693505169957532747407186290235370956469112799856778088903687372466604194025403619371657584023940321913141779941866757394005408856222065480339787425685792729003072246047665255258252026787585079324171896778339688684886633704723863805843510544022189852011203410447939230887909611307539723266317986075556787327993130596822027549879589211945711454765298606027332198605999452361554969253607276034764524415136762582851297157364731341685868522463799011471870726202928103672607493451540745988573354210384833888749485389437200713512921180523340471921748599775361507868667714519613551184678477981477291280656431005492865217716689118241006356757429385741133642932610951376210010956342286930808683601896504687772166154373185598448488623675224177211129690144983093440017899628400979448353532720791307829327850967469720083986213883355767219392601533768541326077015525577403433804423634692131024915907357975650079906482167514257652462392478148860150761656447605030775645510467179427976191146464145441592210604176106546001977662088180343263340295120290206388427119725710041069589782504756200239883171545326118394018428261016398123086224980064143053445775631243407867954009460626243993684996586171191922595702337609624047003467812151710737310739980292159691433057277689311354121750481801490657731885471289126543996892493563964897212681736297327915847551037024182731755755575809694762922225896608776110763587786874266280951452517824970669564469814063316037366815109612594187418826286412943857896499743394898553583721802694921918878040353152011549801697385510218281932903120605062917421983444281194263858738694909716375746524240113261593423613009174655696002827919902214572501510841292116388459816183050866098853493249501474947098406715991834874965725782217644089176998032549852266923939660153861759654094695285568301576990045942866525823309940021027904515553335147717288710582558923647068725850249716804604988031507608043253342175193131313368836836488502660081393535231070760763643349360097030532573289551654148098508011003310654594389832839681051720123230258109270131406845386628440815200365852635591628361182045841169496050336025074629433901442817567864208720049288264199321039100727206910720078113641758257563018982881485660447225129279241271584412814239700461552494069361960228556981838728269694507030918654051550397957163835550505519992875302316877803210169482743716495822647975839064386568304082329738309827065328615147732523192099493264191660561801495678250701557801223953275943968296982100996871540560874810566220763859145698969134059502663843301614325788765457781297784985496751508645866741103078867470072514479538073037629930199062686877216285247805193216285631343232037576607678668659193143432496906921612631437152424456704556263817209755512668814901078938975132758849790325324396503942191126072743788968325988844532885990869152894795329553948006663582355068424855641375879931833043078898914622288833409784208224577732111668741532592565618936541399137946663068083026123474312578564793669957903432621097208459691152331391688186088792658675464489669175245649404374308224026775925676159298872845416101213352354448836313816355110994635016273231511303426658170579877665537314304283163902685415754230053758726168854342659967004128193489316254195189759167776310826360407590766903121980862871684076775444845744662604864984608528806317936571405288144819426196676444010492500148011145323885940663039147028044689704939249733090367174019977667223759641680491812184299521528386278014714225599853521711827743972841053145370887734465118501938494318313216847366914839345973061480507736784723757489134461538287662874680950499697845632986974002903141357571793360416270775104650828579886619708531722090968378399156107319613147162958953245528675291609784842135683077600748687740052481942750978382992174082806735100508828881701835353802273965066952646807678506008959953656135904677579275076893135793260908637753874329848104067056618967425979987971995298767658775858956903503883630735383624558089786886750922334783447514011906188303082814075217661220031661366185925350986026939744601978686680634487345798418078631433525883083842003086094831732109272426524679713381379276979994847592260138742919793165118250286908553136317261655231391583561011822200457839945278579043652967953519125713428854373035982176025196633103280617568827390206399358557865324860897133333466670568581569611396922640912902371111154927503166783231788456284052033332266795935518974170711995655207830776487947728373231444701881183269897629695335777651548713486390516728232959966300151496456852193536069790399559494922033800867275948668708169746862922429961738084354394160641580666100581266333188290209647696325062384419941640450407701633605540276490272782530909525602767390786782080379360135306106366198021254413269820054209938760387724187714063195446532456523237377758642837072331169821620517833474763881087390212774459166572310911133944394991960374008142384274698059342026305638640063055350914066340961073609395956010305887912177372293546045201060525552151155177798856397238644476501635003157862658425702467473327831129669451770240318230969051341016355488009459309969261904289937186197133769768838926272517420742366573382279744094178606118183199778874247236419787819716766769895497172644054465414294950472639977582037240495024433431636686080368424294291593107120316732310555852025720747997891847891243589162479166081408001869990923434502883270497641844820512452071180234397077490114838184734371468323219501502887690023294651262866796136495706266542998810187746378744694461408036870353043171430393950603541767676879937206087880779266879353519707356483034881930329014472672990799527642849765684027271680971900660776476478963995171706804043557052507804418192634826860601959423206106478312089030063756317659756569288399202458345846734688513724274638656467645373170001857627790001991372778734520437558318273465749465238391598842281336488999540640313225151826503788602469728765346989271283184872459395361486058312155538084077808907406339251748080366116634919891887432640271727419398470272559891295319689399365727088239215900113393540266367481244990949722672512061912326619715795793703351494289152192697379910574602701646701494249769333173624806401408422558299128135669049498893244495342011726539403069785783823021677145448672869646677425399362715994097215374438670047230441828785274414234595173256626671882227787380698830795393689558072672903444791128026719361346356215533750672720130266911120189100792628279777296563850096100902177639109248442274790995215271509286637109560821562804014513792760045781270725189233311458479981747945544040295558677739060265416506546207557103319267592191329494319224461573899697421778175765168377315972489490993297762395748023010338566896507815635525685077677243872876926543952908880659179930859810293052781350276077381677551351754987235194151582270157162638208029437976589854941051501096300116313966346840734361086287754136021386867725705787156888793792368603999676245873178996097251930624534356657898895639572902841145242303266564698144401536465601590225048719917227431874544265984874945813671537439215241534609251212815122226972998137743617023274226806323947582020285686395607173996502854458516777809966265615137642925716335564304657771816608955775677715445514910557702784001698061885655402810806856507800329055245067219405751597261930129955116353104505036498163055014427136900552892034985706137895083894999174714098484587478245107181823221427083355870584703173367279257881400036123512310954583134347452788451444234127682389182518812787631892912252448067492568836630510130783217696338991500284614226395383860966243061380987660008755425145582736947288453069457305887496498939969004473829789349481087176049933716030533252579691265645923991728099522501530663080216880307699559198100897381761945330319393349574564679964881422607571046904363157019233383599356118387569288015328406263205503942141277370767705388744262987826493122781274737044002989822631819047405568840271220848593494723597220048426265285410392158699153074330817105538698206092729637067847046392257063919005764939427080082876043843135185330484288094617117698968865893492379952140262115805485379112550228782674695371325374006738969514482849943335000766393241805586277876043296626297358184972618622578857422774907222728711988874655170225370913620205236780269452256828862710810445803612075666223699760944246350442735673055770475902786922610816467482418394620939061824752368316494702632360433534317537306675474507744939767590138106365401810087791340718105620057003101525137685927537188411614021933740992939078503336890481935000818640436001354226633524828855117462775281996646311491582982458837688366583463818949263352156045145208927394008350641797281544929463030907253297897242416737366311735733690491427635974741375689722791949568602796990958758631818317774238066842689066418991460692485666054717454042572524344159175498841982118345335378618436973332744141478262621839701150117526992773607718379449418139366903118853167506638858002005364475659109369708671587983687863545656347219667038906776678374999404583499842901489329282161652405170525248923201836282859488762072701212411578849939496656977132089105941642352056994721163823533451468871285023557415670742961461593126879553463758765856370133003055971626318149279527165369386171469042617200747565576252034876684751479449135216416547083598345306743579727128471267315930496619048185524169691313240702351968097770598732507089500759796294643248525525064715340999486662161735440046853494130498517774959353412881734010247357425104689865736010395367728983011795720174260806608821787937522395437895555186538728270548268972001302396878593070414118121944507159192318857960244085356427992701820856962171685548432007165286868679400191868558533254923513726943072276160670823423231097546930979493163471873293574077830331052044118016958146069373484945443797020227705535355808744728277203367554804379657854041271131343787682872719611210635974012633751276452964618557937573792721650054948040827306103239909940505911849504666401676118046930286050665096439414327184379402338087682477275493066476519155126023200993260029116508401144615235847049968288226235867407137632072396339892143112129365122914330904702476120649280286708466084825508743034940409326214688241657889319977310802514326207222569701970200867487355215127549161814517261377529675396448415071199474622114821265269265029482906487667038615525297370707649348575464706602166495714288384576396432410617554445819819094855002629100156654367146350673130366724555189944351684583574310646944694816296346304390486703333566840672099486694277692039710651538878842659566479853453658421391430556759350109093891967302692374351035850539096765189660186408032515394191231633950665944197101985651215144998234517899534094730440209120660876409008220136765352999438583168524069790894960632355376733284599314164440779566032582634451705861156890231729530770732346851293778773977929664346726829778009887651327609843252884745015085955402524045215640319423736018352735389379414657898902748508289470220553245803311238869994528536475653911649021785506413770295830285580848831260960709433944817382665196536728465291337074935496264783292028131424875972091489978514089150785741528082428095511311300289212236714944174915350431115116295932594584331462637657373608380704148730461413689961899938849475815426014333903631553847844166559494784448400145539981415861620143579427922438169568564299489840106405151330728559481150777676395963787061572670342532383977504296910337298553099384568889296421382723884111552940877591512988157708974423925425654631721785669902401245685665851179097473597314955240514164196803811017462047700223568655340836321078051420930879228789704397961653972969079333204842666503650303442200577113387159732324442662499938274012544286431952029725465137059476261867676889252800858728539841887846872925798809007638140922644734652107326583453300178127956503141271044056050091492345002766855293524559579456237896003384521103028615700807056301975191091396887471964293715005730849625334185353903649638660237727941063449059002638511333989568825619689521937595358891831483904458650269928588399884018638741579692073839557369119352409131477535191085463600890779837571260708535618385811446848335582379025376318043867395146296107954734798670301522380293594400803694590056863644405684710489892811781183371646722907295445298982556840591270069455124855379066811831765898983525808056409827776432440961219303452305241934219620201719707667169985140475741317058350081670305112032331786537598728826975416781957867337991141428524276584125541642134082269380986805844555083486380496124885106106153089087464489441834004367270283481997002859285491577934115402395922936246559881719607048201681636810893223640685471655359681590683706422122603540777732826371642153011004103695822895764644636647796405913620067101434953731550226828310508925766225496129296648018713436270147814897513819240931063919588466679013301548119860626034411170833815283112195070440158730980617854740140724415598756668951102656470872884923905397365993304371028354394940587728799531974981178784827124461742762155010766524867312824494767541483019998608256598405495978912517767794922357288341495259621671866828952619614230188491700952325734798486962659137140669072983897968897102441058036254397932351171875890379683625897859070781288223378643526733955131305686068052870353906925388944852824502507474160868073884427937519421247332323751818879495092183079596953376995955602421513281079366165803651702320638581424076395581402946690396225204642223237223346891370927780161634037142203949373516362383415589403443041269142960996228930616836757229969703515513745723533251660065001078649894097625907266144489976733152502534411939806815370573384470099187926182391511422024846356990326640832852556412416590015721315410822018215445738158300279442376543762873332820029791299606528975928607041496639757970947514322640780620414193037660567340969938229607715465046198021316671072705291710630781655478904239147152873349182592245020231962374437380156522991012160281483489857339261211686804866108597062944893527071922593701653951952713960547040689543469174440271827594358337545747152344299661648747908007105079163494102892312143570762420590182532847895173915008551655192331298097960090992098685592342070975255586060588318715349771281053695250953918394608586500857933992446655566137156330754566239218764860974658314642989809069842317167021368151853240263288745071116258901870414670694899789375214833994518146003048042922442964775364896521991350888198051122292649254709810945973327358598191765955983676626390646009992542280387163672145436332706974174897322238312797251183773357045566881821766325668753198636205127958755399693845848414794026189429381309447994523691514295345697029411713389503640812183651833844405924215719883954727563991012713060215736360986878848991940663433005579456333908120837323311522656817732422230699179619367792058198476197771114538185587987569190724483696476695457994037933106247464267754912442947280537051481953922167719934876283660161708614124953801583680210266567411308897239554999795425750218679453928523942859631926817488392261515009086691961994257268784600035679233095946042736691251660281977843137178441633058411281588269652374389978035829878674813525571702203301933190525175412183055487540070398691969963721124448680653892067038884188347020832028781441211347964144956540188974763419809248025454282720569146322524872643977327398302413723743563856964294792963204584364384324125639552377609981776619345503405965162651904269105433985180865985274960416478519275239797594429457308801907265621780785874415739269214184280567593379589050729548308470506438803773917414068580130406064261242745896779129433750964031480111309276668485653965860582647558878802105528031751567511159090444277468414751049519927512645523471244143861681250318077107270295694217651540162325205094431437312145062002167410899022982977806504712290788652321245686595379629892647861136239804632469194471314985532348519231340558324371489733216109925543159592060004299985478527913045462005387167463012515871526018845935828870281660900038977900946627278284460324677990107298379205193988106880951101646070625537615583982257593894910476404250903356251505592486628230545084114123035630535595743144923339081134500078183843950932291416512106318709814704140020682822684882272858427223884654429872732194287353632272861085833936481339415738483890558509040526743968678153715491410682226710872877609999246067204133497558764761586269697611071923383097963498073923402493080384180845832690398349005507098152773281171484730411205712446818585387402412753277750311009816844967523252413311007450508942042525227960473727953618119382001281553664097082788960717247038916112949908006629180664312526190215422931234344197350211442717528848058841270089416015062318963862648523248484652520989704052813921121443186777535505646645387725102091669339023990783901029387551725868366157728237737335263391727647876214617164144382625709855948269988793307502488771416662831289297104796518069822541018091236957567899942365781586172400616856221157843391295168737929483496471046111260794665699515229239410419171786380563590813506855187453685591208925040004576823950226113705552502394599154443009445279314330241485472101782265811888896769064683628336359078981336742628017627550607759010431886588583932872997949091476768950304886685966160443809109851775226490367636443068134180213938856571844327847579315330018823544288827350006342197790678086295988114834110469970272569092028163430268486798494795717393163853410989912718777300500892874460953463005033339402780375800067799956210399527290498745599084585640813469290117518719837776920293654713402746366310818295731197858196369214227680378890364962019113554831517673134899861362353565192605630931199724143689740629037687673697611892034974732364839743300851125808093387073893720994816365748773055532025814650946687108870088151391567431790130601780471757841374277132898908545414945668392114523630635550033378689691375298402873478526253766515595804344757299167741509871068815796845292793371782707954371965855119592599542694181118146570129345095407426023844254404343177527200764218618829130293440363877242624040975977986611365709337102857606776760669640039647832223123597835240542240023027822521372980507341542856524777622792094619418827604235916730950099752638796538894109167898746021654875209454593916434096858791695862306099321300803595306318614448073961720047682159164031125747168337357711728809815601105851371318754282453882630567710377551087868149292559872198697276157326950638397411851678039747057354887917981851717899477347985787941438289707581657044636606442429630692379673296879727755981402965089203395821989354438882618182533864857191657049241711542618862769475661672270101380196396091809261467804901482159365154514897442234196889445954225146797836802681382637853724755748130367517150490830470975667670392866365280607469238548419970902763107024438686200540538396292611168301503765937718830077549639587663009889508582361754362102776101210306779021402850357011570286940657034942374316079854284976859790724743841877584946244617835802941119966485365197893625607612840101248295272074156981149228335969252993941530003972414969804466296542158363806258693855295481810866291495098359203957119312913035978457518475994028488337714787496952684914954135832041028124151826955450012401988229947142012840596370296971729733128207289618082310399040773571254391279610663882516374379717897967144923427267534703288154717312950492555971297331586859447683280433649670441646444873179470364362128212762971169103163449233761972729429283557692616990233384553860290538912481835779815892894431455307423964943584121449937309227419206835850810762602427866038186842477681977168970925169151091630239721731616734897450364895237646999196037374279683369773143137604520305049809279250499859005305776265907072278148083065491724061092004341781127202760583048688526426849496311977804032895319924749797765269513172608032458050684056531977005347769952208348169272313463151703405871773668417340614707420060634298805512644444861097783224626880531174899626927075483236395318011256389305520292729167116048039345464601330724076572579615911765020477651995576780049481734623127427043273003321325780263048479196268662527539505555943991882245855557312855868533017516394402755684500369542067432871206314945217484242213389462531022369949617209434387650537473526185719452851343588594844197350358428563982452484334508189183016708014575042118292267351450315384300823708174773322390535810385472394398685791747431311300591485558766655115661434530056768608967252589218934118468568226334565057899825371756517285458687151943204378875339039533517620301007379721797002924773438354257435611944502846507651750818656679293331975981647574608766618104953095163365306556550227099559678974969446331398448263607203072424749813690447994418577665384316712336287971818703258280900194788078905722209192194492577279604029472650623444545451006137748482028745094267469927915959868412359698468624671696104020721872410618687116669669083621407622232791066168987934884752468777200541386751358787536293130845369247652220225223577964446099787490250660576737398776425732149715814799300417459818574186048591457765590752790608833976713923312664389477837914586168692622484984262126911623607078575782240332350923337368617613456852466495124560466067896633709495911915618079943405380977306972320823402038991046295678028830128794868647025795074567546346513454413607237327127283601103577835118286411759412599944416728293581584892521257604037918506639595355846028058680535273969261436971703406969682647382420673037515152843019186349879198357242458299914446630939886153145439006494497753380797738468017431948093276800308443061572847279373877767963315239691269988332777204241070469161310940434463974292713284737530129989651612547926479653028243372246277836567322002741709728994031040490161728034819520611685933667739038805340416814698261788436428088840063375806814243591085981948014894425001213811386190850287718108743662137977886305558320593712073263981656475220886806167203409435837872243545611810987241854649138866945433939058477212620709083976499245226860567136804839642979496909322091457108392960518168043267831710489092134909480832719052732105534567450414893722375225262669135849337034972473067078005977363419057511084243656801470731775179516374309522284073231245295676962352737280844029139420442819814150698297044299227333019529901356712237860273868645454702701392551032131255706310283888121927316137399105636763018526894855765545579018942762297659339703743048640336491053202339870167968323912633747211577339778917116783890520772316900089048628613452599215821929602663762496143096215597551723510888997844581599677156916909291886288178122200869208711590216711612743399151390478003385102988403820122254624486880318850247350933629855991216361121240088893079400316012564708605496340483708301864284097585543222433265485065138550043780453921199172801678119947983457933704458149827048162908980050283889693528591752510692362114215297788518335701701448438082769605797397195484518964879826768959110293113111179949363894502713158374612411357995168778742521914912399229285679086030722386760437899062860056314603305625669970537141657932047482517771854283375919571261294130213704341273650292996797735256757234030061258139963765778076318619233331669467361953696970722324420645956941333200317314511805340567446022042950111916928143957024533610684948101693550646079155557113607242214734421970434777857139432980295864066364919646843223336717993120314147258473853063021101772456061300594172405884271288794308921794334408381640453362991390427784542654016417277770182327805119197404363747661168969236196383653245397859585481123685018382938490904595307049867679090912274089669569208846855981399866595608016498095194583213365343507849310897272837333888668959143224307275246498813962315582419772010126993150435546567447699238697979115893963318211027981989279863915253640894589723336582763997696521582220954835432769817242542428371685150939557997835502603269652435045165622925332070930168548691084755933281451514312106137336530732847682508732290531539671586999738155719722602352131473804827204863771397058722576180127691197337607697935098293331376888490105163870157792955853591874960734410141539453111137192509526604872233701219285362958613927485999375845812960064230459625519658826383285680192299744194809107594490539674873917217104667479291601248143893068170812661549718258376671252025300088091482978203700833121542867243700435266780055563288647803836105458549705020903265119539482284038484252798400011864318324009680043123129714324716452955581782069716874581301545877846327727632248985062007874254977702441810089111709029669064466666865633155229854160155068278478464175207468560635271205952119862514373341213416592698898903866250838097579111922771509839307154882574627195632630848119599765426619724729842245434675698712802267682072201334886201438463389516654406134612630526477662867674748354702415281180507165595698947721554639098444481244092179283672803958513996846712831169072553133448739868664480425212704872332344367570264298650907245611591709277161934348509220859250357505464250962021977469100358790283723046320597925834528350664779313975658035724536867243061500770702195170040980964862975314019136905620056178625486420275400869135987046692223617525142763358275913305347756434324670631583397390971620442687826079346276275405493666741996604776842748727125851832432934843535818458807442665905634053145109664621543678734591298124747614969850890006255408274825238299561895892430523402739108296895644253864622810054015472463267951242888238281560734766704615852491095393699508794452869329239544395339506117628544058921208121312408179726289468684922970428558855264988199088089093484206398103471278597287734631072209390596531555207918052751257908352620670115356233788385328741533880450184429400246918896297039873207217282759477622981762949326191859010523164846525128579060975933300993706814726441817484097344591555895074412128307905013165891317395426713928010892063551792210308597314205101806793193216508173857115895027676569684126339061800678759611193092700408361219083117309776058396151851778516378013411575825991903981404466722282917552460040194640823375258280409083899000059216553459754742588184484061207107164484211467705815170625516936212965842608568179284815874312745818343494831900840956009780543242552465059312403476386730905305363768729350698598770403367447829398438073659571465108088659763397665489651955169786813111582005949895095352323830976708256237801230472435746920530213011426834494647609529052309666042567930331472144836345103493715835837938681717856386758189798971457471657488280457174308013762727636610459149094891772799282011523606487693110354066971258636954320203048643610711016008737706183542962820524989987545883711010902289703380340824212477004757834245199413862514704720602752142463664025962626632300427166082764109878876109029570969296694497358467509388867458605106196130603682051422929649215541896139871204473363135589386849396802854729978663020429043339637581616962468932332935556466589827733802799934086340064065100709226474443129163693352428224410154936280426170306506665366091193741803728719963790681170011396724685281325916471964560241703648884894242082461342117323836222199537159898306500919236588070071788068930210175008618632017101560494000452716042604585821363950677694527218924879346598763903155443107403165262436750435327282544655463575262728240716722354190144635436126931220512011037580043745096701503647489104893746109295549959067079199755178854986719542018432880887408785975966208475560675238712394408789783696030739987425611695234632442423820509084183090233521177123039444525136405401472162307576221256885899209715427065581103047463548192591925385872714549939362248451118039937402455764692196617317648605932229857213977776004749025855947337592193935241139267222692847296713314486373746530066675396920432084944580542133343592624225062210271694492147295155084831504073204230302750100020945491967177184852354673147637335435541928643193892457507549799235946393777408918932801879993829943903569948231284367193972306806177537724925147502053269910860940095359604510731279076413172158324863687451647688883588074413399524958646547680065662184394803506597040212718408610828117597130774569062142837552719875478257689700573826382944104003031451023338584424946064400357006880626827711350998262101658921170554796001451168135927955537245465662041980170420211232446842466724524143778311433131553078382065745180967035995094742498214201298562844805607734122061288687846150324748452415430895683427409473543604753768603340281524179216456071173848236586429573629603341439974708452865771907886135580901955560867834918400985000767295759694844259531361108574033467786273413651427433862089284564332236506828414460678741830085311926200283916095329190963755561820941114381530335937434017538501527242567141924027059540641663952123763007067825930016558224210230649637103672187952676097946143217182471577569503542782161216033773315176651942883927139488901877088861031991042613816546068004512534006414325948045233344297145846904419865712559067868344965150499124472623875352829201715945757448714108186131960084505327425772493806515263269573828339520596039673105088509992306657277049763384047571642149897710269736322338625029663840945956762119085465470911189103772584108629998391903144852923957558888631063798567189400390781565244311875817358822074401669061835533987009813293121035935541820691911446577836462154994966052125088832505858735245014391528749547551166726774486386430846312016274669470669178152693207461671624215791423166575256056941576418670987439536857875349481336494372174511832334255915268130769433327283847056739718222912460373475958657863667959698878481440112997835014926777240136450246048685794634589200446336323166773387157636821597647227804160189675641682218589310482458753979467044914986987122426449268847461446577863169311668544002282254683864889966023438215913653021429472578615688762509606506078705581110329798191409335398391500952937130593953785571483200980735502116740734225700034585672244591098186983763872520223361229329302555595179168711855916576776757983295321246748412278629167852169527886899045735641203808080334712307522677771532431276197662891340856703918092102064540341453058019092115307656148734979360835998142209733289567880158262593012941033675105671532754054441098906949541005398966561043261337031277739514558982878097789218667814193404057349125999750916878400241560906765810918265290090307701934244205239191086708748944450449986713367762961638165886013295312054835736950797164386035428457027677425293661927426591598371394203203644310553470596583818884876408357296368554666509864192737963339505133319356474671307835578504436022606898696166066655180503600678984859627798844981564214249619965158750966761177429982069345193982673421147242394464406763380486734571572774097469745462695305804580950019528668666833799747677621701696538069538447970197770904385857019526429470272070847131349902986949446029225027052329317222791769761768708757680169425844404129108205699776084924096779108048775011185547692526538275473522385559441521093908454461257635682119699663655852144372669002096482254365204784446528805103040827293138427607584564043854119275804829818846215216733521476897896055239276548886513627029234916368425747411882137144942554544504512213520205865149073542942755117566276123463121401763162021447532360539393488241986157513402775281229080776482265029547441203667110352893550652699808086745367399476384452772020510700043454418577840720450091369859553465973843298856972239872818880070863363156605696446623472649580473125441109426807370852905034613879989755521580639946733076823892237985534762850015872723528900245841027318754701373604033619170606797672850131885931176336103256828838788169972076872042729857997361610696810866173904448792772445453557847120221790414175234047729326250669693701122551192229670977150153381542040893336028553655654768598854909789996522915014598807241680944218793523074708944136570740604933668041857405275969896038849411455954998891840881719910548102382140145035288320954700813988742425645885354928965233717795150190795458546573960658729585969511553359098925746666191388626911869167222609114765076610395451877200485965970760706239915916366960820538137899193202949089128671488406484082325401448125824862199566433670151652319331447039816871378215753835892967218762044611867656343396733418207377952181908758274678461675740073911728803969935932791707800911575471880366886927247154526251266253240091834604983917336449594382408753628782308661150059590607796322547445430052692984373106943626884667315017334830755185197358318266460778928918268279528464635670775011809229047874507841641201926561511868409258714198588082533666821563941776202751123084955387692430454960718418160468979570575827695466306114382458902252187740258112332003038335393734155350091124720746584175582977102492332990173512671807741184098181594857602510309750987621921692159465235592627331344570191743007234428794699830285234558273739455223795911739168359167096800680760366115865799449761896881216279375484258921999589172913129593311712474952186139880597873355997958182969597308242691123714918352714959892066729238158475553332251748666138736790597655125738578399927474211879883836745118852873769699062252297496143258709972272821114596291805864436824974370989149047296863127771630817629785019431702784389620159960222155146986756778082832907413504887522324945607675010758843917910344066205565785821437950125991787572055311820505355062402624273490190048907561724577323408003327937867831805275725407584259796401441436017485273118082607728426742417409227918907655976438768972872153894175479293428439474833805411454401702317548904536868348167430281728186607121282174320282811666847882154161440935881467229989738701463539314308182463671823232946185839636818708762641007704013682761113326533072574104760835724981793498565889795671079001221397021687270837935676136620102016987507559310255973804553824169102969671543781917247854349724628410529866574257379332181248806241529155331858252387953898594943029790537792302317860579294206773069439412111939675409816504075159642496264356993037984029531528177373786807505830234269912544909131777435527458839103051081048636807087159989190976521629250644379153569484768832521925824822228758778118422973104410550142786662742608793816057408860886419720808376311005735364716006985093223586270217373610933112075994838629377628961408519843953461942891006626938063209796582038045039159902171044822563423715164935028524696564732308917048083594731299374979177180336123202468594875902948853012241410142771335640421315261668790483756787176374230403499165076135727700704493497856401845693976680252990608099052707624873267815416413523107486628251152294554097730140496625174462173798601617942734768177682035767931787427348246750806264334934275979117680013762764934363432656771446267732102184072399749921603374703555303112527283225303673614753666227280669645820741478642418020783653606061354942872383681859247359021049278397732357739956710988797734114614482097392056980382813658738020598586121600980128332153397902885666795667826045647091891016259127930790260047248052506273782572733028800334987302353756300432560865595188887446780513022454561174841822192610154616074598227227565908233297313366585198586235383011015312010272935783541240171362459277311871297397061208754006923229357489419654560455232267116200295308404097483601133523247250882560493589297680582968977115108381211677001271978705189877789184635279943542917429685710726592381117922527917688753339451437928555908266774764469023633213092982145341571091084854034600228724589123638817824810566864082088357117173048869178309843579443217216779053699795250674903366545693404419253942166618533822966972595559294366018427257895400188410918741773343797577323031950526645138505140516349497289075355656782952606745119777701826204203638326926698491369631501134968139449448053659569454272753077763934469266509835209533939854461705441113646333185295726792309082146777713893966038571688887489987045526101150358203275381608668790802856215928596784903671437399547638825670677910837754414097154226753483054188571891188973837592961775630722773745984411005497005046878982782122609119226827713787310797175587402337616134022698820878423010818470209003202137938204646567568881205081469393571678957000460578497726718066025352551299058187637376822378225978239022038876594047126419958419444064805391665563413671996681383235482343575755610705552278787950315607022776006921579664309653287345921587042801176186533511112091404917781419732380277550446226236612389093542931184813643678056240196175817507350674132204148777788647568059002220853789108206336591759251255333122598849106580046920822147414709187780512302343429106808912993151876606981182340474247173511814006621831522626552711348959032220085029810662082908395335763139712518070587106137850635158182903114183590984170543507230059118999849607410791288644148777140657490208020092287247330062075751207991338644694474269321725257148852926067272740691281619622980165982539271261843293810794990766415021454496265844242535049497506875650353913312975129848054944248484959464959837872250353687310596360787986521313660795121659998558518705497249852614063589227636254859335510200797915536911491215214501205257046550212701329092117944622749651282419179166401343199022544945312520608890374073199845717267245028316127561716562666488073050842551070982527272889654904019183289353439721595132569284719319844753995454965267090895701759848005050832166564534143834363966551470048371393705620441263807227018294602892178857120428039188879664953490129012463652062245245689454979572560631438959491448471794724346652133795250410107999017733175666366640031609625645391937493736905316810172609086985287125126001055054302708497661284146847992190026138325070527477713217817742402460289315960619766498246704542574029953362168661742888071139466248355445576305485288197583844648899103875655329756029509380681766235926547683420084033534948239213479177212274806048713534018262570661480488290597807851113726083761072085644388072135910308212479702174916502594277655489539625869264406096717697791493345209541511000001015124431787715940082402820789020215900730832115480567000636336224967160580370867690033850429466510462245903175087919989238281805490116183576663046747398991350574458666787855131968862667067933339389943948163849846970727152395321429210556196083427973712899434772609864813099806125540508099538801517161279360988878564490156186074436225516528748087066267868464260837404440084793001812797809473428688618609121412397219237916976647020989020862242500847733988266784312005877664926329093227582161347147035613347395768276460990694659894892244572231509915592484193761179390859971351654660860571149074141918368969564850004783609538409621344370805981108735651263491216362432684813969069905878105110829591284582829475456129216481190145483931858708912643271386779839463464594490649799681026510272039324304351562459328093927653994870692443068235096342206558820140319170542658718666841835593342509172751707641823255215358490907893918618822338917614203540414337211769298129772268078192367002992457493744060737560117297836927978364279295486666095184889426441188117160263094259464192137996058667123791776543198570329683977035541307451755573009647758231784860957032110694019499916339841668267685175176461577235778202798250063333658019689213928837161724306452936002778154002169586622879070401795761457635033492363859949636838893205302264291620188579153702731516632657700167092351326810927446322443880054035858100224692738505137806989123768218771117876373286934437319872629238503556338823857198290002723540591520635285826399707944647605607364821814878307287621653646351908809830891611083855265452338082507766626431370027829938209637055013037903198095003210976413259089456530368195728305359354276710368123958150568328945566290774811514786984753288419732876207348392617561637196989119004426322578340508517174870447707701870985709766380011215855662970096249209368019489592731730074736099252145723221667888415541918035102060846626239193895353627108569747889416626896798589134329140673066579072635088056058145353071359807962670369864576578098680354166465519900175273059771364125938848511040854180674761849674898716351979706979513397948704901148119251349889696025018440805468953623452568637771206231135260530267300783619921302790510407271263884562177196199543200803971234282413783061644988915285833050882554652038515244013629387515952755161427809806272456191528241346441243351478209800951598960769790522912440791507968242682425900337167602366527458124520641360996186309996003638475462594363793766881573492354368624995996838808849053474162834908293484105925250786931016095380687704461111936441888996640343088258320618405125488670844841995177810142892859311382327203773695776530192579559892733414061675773858674792194720401376838801148851221982066585878400724684692535392083800782299307359633926503169572555573288737179093941288645884736002512809238478468699278342752780647135098639598669114351653625204199692342043863361154514916286041566508934695754615986299669262953564745106299571099514300875610210204728488574192548381477733979478916929844384453344167687276244721322780549962873228366207604291460686820106379906111344424311194600674815153466148474953835053891949035000890133504898685288365926107161486434381683484471611921286402403334786043583371035187559393225823147055975516091191257352345485616063734234498401503464429702306650776751754371838645370980723234837216611549794672063371380545622877376939510543749929760978229053054026088310072793173778850784806205981994973585692293180671433261101317603583891428661026534102942961869509224780227045855300935057385790269572225129408050186017641717674847832087163381233625672790005726563251481065712748492998967529832380240696178778783882090700235545418385039990419843442995356156194009860006939235785763085106468700703348457214833346040007291855908997494708259288401449596613382352324422075712613844878133801941706870629685754669170999798571945109324940747020087736128377225706290722026024849207287902958309343783297014252847915808737472239908271017809702806049341884442797240858024594468895359890722052246973602091625833707263526327842072580893802761694917575191102509640899847988551107816265288132712364980881788222441105749977360139259769811868088498024153674829187688171922281218540935429291887658774848269003635816568728869947364020899002134400574760490634275728539122987145144398891877900399426807229666400090943926791844725454416575716082420623270101109521430201187777933306505644297409194913394181848841415854159953142947344040456457364018408726056001892495383088590443602914017788035987456811484368666666776529000928942915619468007546278463388094572698848957954021728023463939039545889326107314726535714757101493049909635228537771326546310851235061423545905453667185507276296504468487123254519492463329189044834005606917018309161595941127420693372416384269308158673572568440113326408967336508572576937692798080349467872743960201896851975136233639026037887626962011235739783586992282457252429928272185666152892751897972886578025338800891422616528341315593672669038055814070678696313864691893752245135060985820893655937410350991883431239458722160666185223276652221328559437392036468054451348941900166966916006330526396436055510157137727301504812867376686501162749649193266953807604336455652954138481164451580323807723372823520173403691087681642333784472973110728636354984809588605340467016954098339429507405937895811488497799238091860223244040598936956730403571973892132053393607444023265311120948999618821316999002794747141993203216117955566589031038315959521883398432707483389125094455557863996407195073704104093971229105506964780585293898633358839333033223510112679470165694692610736814639905633297370615364999873626881577134013920340383869870318754106993472694523655300251972216010311007272093617008413830081889328449956232230756830484346998041980148289006074573805139357017234793959612750780683409788242663973535135861664695520221272731435551497355728834914936849504467227755086648912234135755428988377144932865161144428101799607119225781843330089242765697221581103335197592391637520392458013246303421614230880932655707801807281249854213083521440110918281261973698338803729127601427289067060816285580164779740836125828477229970550601953369447882768835561948780505132192564535293040775539373878740993398155181588358825432199490269915060045933809673472536409021206284110721970703799266755033104020335896985989124433371563067674717570926813604249093012615543160733774376817746876864745176665817539871951317974232127317211623283653393669890456403285268607563745085577777393889042386897708198959615098347050285067371569026368172455084518260926326679593236058970533289005542618890022875176138239102459389544192006476890512718054405475836023988990537926028192666529443906754747046843899904096486160610869263882811341151158404219066173035907264453657887131823619284621706746467309307626529989459688202131765220255639909685218971054529391768336770111155067298604536210308574158267683475205041495405377502594499201231425069045831785425786153609753341018514467882969988616981316191896579926968353961187633015304635050215067151665747041408993368994875080227512261391154859302877561603255463180639141991906344155343639938625585340746256912537124820929712215683221971508955145233578337705932177565023270620359420684228177187323003115154757453364994809551559908096504352926552006834617502723988306522563039634570530700570235010129458240387275227796033115677615828147735192358180416883661206415670173182508356903106855709173155834284184086099518991099008754103262846686748573399328878161908929734055069169207386634414068791532784610233917509993523407369195652347270260581134997529181729674774720227047923818760833139947462773850495528318486797542842307035379460936579761769102328484349494802172944311354936003888428335491100628198545564477733745184624921392016528531763075248015514796844692069192496476087768479627572401929499129111190326524111132151622308649916988382763121143061727662271917679499345755658741757134998949438683484826304700774701068893785784902829962879134347272928046106650425135330160185242599095453586374957293026510585222021298002033947398647216169488054569326412883391295864028049558843943779962718934702375391106879405076737846800577943553614667513375796146076015277073834130807847299753895505395291384627952654847076128130071954842910838378056223857924213779249599648472394786989459111965593872462117273905210238763243032136599715912170925737304302700954390571813642738299210217541655924698252084347494092779048888516103944009217718613803063369356113241726164657547512514134193947690088121964636453586809142602076959584827186231824890515235590409292633173451055639994550498743382478909793774420557017423604894704028082149203576370947916727259849999118010595450590321320565839678928047052957081295963096631859514816849164758869859296264903706585578511061808159617035793475143508239659930134994071180550985880070538575372863482844887018145354165263610286442242045347252393599690059475183404811270198923184477234359910139675793273997619156585621627788428974413418249038495742862604701189848404056596714663669849125976762446613993779971354820876112689253327382824568698218954436593814714935546256451784664099860195965584283423299827365997272565763544832567652864957541555130602298501735071367839744780653045162669618486658393094022749245110697515311069912054499158919808404676596793926111869655737720886925338548059914578980264706393346850666986266206443228706281668319478484329783995026627993306611494561733590664396734475300715410725625600163585959019952778104515098975593626635136551227878491365706123076946331580882246642593798827049145432247383143901604940941261645948775650718368376567703275460703112394037258848684376426164431352392708745546917214293820771476403511934722595070791804049808682079275834663219744918125308714864065297232546843295556921603195305117961246227930151592729856957959358305697131018185538304145123192362124743590412776994257242588249081428512902513027887158801269356375814539553081535672721486987968088338883972749009848430470001284161858124125475593787625058829319349239544324047131853449780639990112068820743314566460191251613478301887223988534391461463722276663926771224463739963609002692318918432188253060388899534540927383515829645928697200433599016468335090930805636248409342580928552609723080096864322731763400021360430584562546806833206640202676508896989992844505736409619576645188857724539215157457639236067795374700990958864915035121073407282053086195730552420712221172330301771591658059953860080985380032656361016775153876026013485175324887390973643928062743048872406553459472260925379701294608293416777782401476323935347832341673288541003892809651028140371558914332430063152858337170749233642374454361134698978603191781163308074458570439542320002712934707546809233777367431624534036191967116519668365394470368505027845004425909432957399365162117274325617110387459352790372571005616333248278467372264296976559870702171324300725125418062700715651338018039043133870579265884811949738510180409438005099985401364863627832921987122175830671766165492128399169153827182363548985209849438846892805068155920005419240464762340655258799042847375384850178046416075142976358257403380917949774552493503657775276482891565209634563110479985419918012812266354584809077355217320967732599223717627332851177328498638359863529568178946177844409486201989981652117012505023487604740622299009232603218154504267194172391048740383767543343833381566833470963250213082261573003224728441280623527362022594018236886311280318376830680485054268521251051388031151920141616662325601995609051295505709941662386402012750887779712982877289867670604739158388670881346974418002709824125028418614564876601477093806548892674242171560642152122091707392193264513843462589831972660961806172906700277424711039311713118445669651614507251402537985559429092844329978823813051360915814593874975080926736747141558825908565925751299038640242561031769097778028152876408658204639082167953736894942475170487660436815554283836641999552589856073245872925542038095522159468988321555288090279106324918717088934261623153321924314977118324835972094838188869321798181852450794910888159597813692131392808931958181012195154169715761750472120171777486099863358916793598593825853049796443285138005781391679092046059374017446468753038033321570132333448473282001936406873511548639360292984360915304760562218929954761129755245222080478339390474341536075758411807377259874976729724001324074902411522367465697773932672302775877062957741161824318639519567114516499377068802666095236091089775492928853848793413145521477381004012385916788304877659473317794134973140303666904215144611447481651419324428116162864977211235786741233500647321705539326563531709717375961268072172156753855603460628376822386704424231509598383612102916815244754808285199401780852181391187187039584400895524982434984535444925324520763484468275595181429885291827867559776070309688050321227124383858172817315254182676454525907723729125547406991692110767225555501907739248623515712371021191273521465648135641029914792891064794193884387287730331766634498671647687995006140767756032700535647758509771470567959365983464479968919944871172166004983970589962395025794388775815677764349084873290347300927785600806910089197621611756388990345147600360488873310967198670369207684757699093645208326783062447396160276548515423136631163980401300470745810885006832993707343165087775847716640022827809055356492599779229546092066091715040426414044409454159901568125566039340476089343347064241497572256563491300646083863425444982656866528274226433372102725111385625554381138544963380315066940768507436396654944663405366043920837248629101087221184559787429238593205232317832327523579406871627941970092957994124177851002511833026277466331701056284844725821768511748639918877603146676894742590869119756481307160878432579129109006542899232048196209536190247127179652148501874552911126848749175509905657801231896956761866777755288077906552014865588096545344344167297518081808618588415119139829134284871584018494172524965317924583988781315739357247377098140289362480219717357876522933627153348284775493231705954400947465021524951450318679216099259816851338043334973872135314501671493673444042256555480313081877580811784510405063647709428483037932069438180251712100400890659742303542160006421376854812825199504008914822594631402431067839958887436430468789715666275947121905903546916783084942249156001932603893229228919860787117480389208986455667597879587877438490916504285444132375980169870093663558096120056072539513834525479697559902148011080549198044698359295532628955375240035363105468613486024476144998792327633585683339313270617291607925486461080486898596776437011490988827358107756691463338936981399636504750900523108859009854678314528307004779771219119649854800984700433117002088020240683992189220821250706839482398352455699580975304660998455087420728621496220087580479267691278549028620796274462303511149797596257649599778261848664392512335402794177950245582584746926339125251398518406192382315982498845087579333252349559023818881412240881280675603598307383733303445465945190205968425690796672587680163036289945138411278709751284747337423076401902565904815401001188305608606265935919067749577685055990466000555836317414370522885033623604955652247542758777666286969094527689373785780624727880332591318317372897372414082099540241427863991994812662111292554944603344350837467785439632836469056285961454509549040117671724327483786785129819993972848863817984012270155185429564342550188913771601485065180584797782720100431132918387429457564929323626991149095277576566599529828271756511937483631970335882270024987874850300950253450146879580410096040873694313484398931773041070094666301747323046580992450505517653781731035214580072411106882044866086191048052688560769390179110104351304504089364676218569947238777365196917852224989562272586705723536458281857765600494502920435536932644664733388455082466444244332211111391928094711246127677207301755463940513643082071114808555577162050019071587108131507818003165631451798610277411061908998379036964978005475850783607667360343038527651847609241499724810486895898267337909108674015643231924082985652663897981959571329135507506554393671271094883355731898836460380753157915625596393337339487829138751171338053466605104346307676916842044674749922721474863010800687290303113870618368594716840008157505371969819366971139764544824215511681886565005996676531965594711230190880180413849961781054940755107094805851351479960979197976991845760562112255695257851568179594263970193189497011987077918101869849067816656751927268207869190246130079867975626619262287628979077439126658145242574184304984160926506243322691538151546760921151651111259275136887373885443515788865688639070137092895026775798607151182934705430718981789482310035701116268770503356620330975758530089110034866637987644097572153827645564218093186780421674928119974713101185145768835736293851097457440620321046814822031939258140604950262999047942198507022839723367185091493634926714860435481354509436477206989113634665175094216620748703114021378995440522376642468896927232056801877795602500395455549581156564606453487419639228511276142845127152302154807789157043313778248433176045183470219268248563430386302597710724966294489630194710258058370006124677597213268494616925533434571860278875513689742994365764510718117040679498301969488934941743763985539287889534120942759902548266668294740427827495802839734105421159703544767214808698730183445236474426864195046501474127792742023163140530980239075236531999053386693079435069230666333090636963730821510793014154604746799460074517963424347224341083960661941693805708931704908096334739980129316658929252124294367362146480650148243460858124258162000402607987871020186860251831607008928183889855362732037155133753159491408564690677179415889197964436620439184924515563555152230785597425015688851644314790819453418516526734993022969642740367140610986569729475900530905369991799869809440505568805766327607358062991961566199448894323694508199466808902582856994419114864661102345836232326183198230738558104863939717937782410447230857648057044167690128875340870489682174999736956988023596305723716674292581622507142776680857981312524174064827330363816424435169981007336064645216690769417604764351441278827328827248523900047072969823707526108015620751317460728889770708800888053019398499200705154738878774342994564035517943123807252408059532512038861729495956719609845813581425538910308332344316218799651397973074425752204631449307409425342412169112387427142046545878041336609642946852104862950195750105132631809262251033467653562722463386606238113167427490851799386024182972808197409942146198328385190725039790489268004369903046145088437475298260849420412059349552018452896258550683723528008550648281889756922064221961477413962483067648334678068323622621296333552903441945279839407174705235377969051439112488321145931618685308027455633593079376158104769065748693827491308372141824329423364115701915106710533545435430192316929626705697017933177845701603057347279025912516008349355261491915656077521315712508949740657164296526270961355658422113195906981495378166942145526985276956919149586835705810989911701567667384937213805328062582932471892937085940586208979323611932641555451564145866927551265392326767046999371187877708568479678591672687686021950110367936271292332442866944144119167902506482414001312810500284451420938247578607379651037370301663954018619030538351846290824384256677377871046444305516531444327980096156273145278354503718531179331480001971715188145824071177189781711022390935512191358387868775873930413499344534283936205170294997746518831168579931105348580529434055347093921028385034365727350431718511938362207606857145084363487074052797324560744134663284447204397561132620976354666941144944960653240936624212265837014758212821871793109844714528972194083553168207106657276182884886447448591149052314294494492667427704094779769436469058644473090115041510983396174488254671123833359335217078921103555560105901281506922760727477777518103014587998910788008809348422019721029481713439372526030207307431487478880319000391861656858433476556765857357930545455043243446940885400725325970773782828589898772303647584521110263558796015804052301170003800513383183003004392823925733862998493074512997917158126679932976749879404639698586175281817072824363360203611072065644953151189246406780374251599085395748151285465826607210456316167904561617327870298277883257370934300037959347607908622435311972559806529620366772590265821937606504835513627416609142244285595009076069217017521911363408124716790661166671495077228368291419445646442920180045464673198703918208491484904333136976091773736827348933498784198546272048655446412680833432252498511825601263834917833279911781875693554332932289576201459178682984228745222954153238346995036702580951596788569431282462066250756029851264553597709735261258979903652336308526519316579041175145021829665930459073505399949176561318774846139894692277003208363250172389224148325056441089776108674091611841346947211451009982679419019512884518971825460605050811703463168360299668469787692178845629049505812744203867858254813770764279225069881249042802766151621301209773916243833277125571889645117881967100432817585633942874759448097567581030600408381878555714848341364133282498788530140372582806411173684167505197147338896609618988200012458695425079350509333325503519506172572492993637825890619100139166321643654653708119911763059185444251461437373160621075034505219975424445128716502213416525353566161438977140165735642170718378978812077285245084889087732728017613177306654681556368256536560058836969900830997908381909070310624314039163425005289749849866562588386453209512386521860101204878750970893762626721108122864724754636178051157960061359523504652771511036040154368385006985962460878403230455279528790747047688709377239901308881283354858811408680872927905455839930851099560614854602550129325118514116347625457100163367107931864678251603575920151102630939528328004478950640953417502663073473815989962276165368860504293640388834776551015713606693114473607335171018204680653005089646458608037622082115958998685209284394878255098134927285102773120311991764777666436197082480987877845248778905049777547550771578372145743227951401510593429542504653204347304199224014291209640086314864114517489156369287617394294402593133937678333590583339060472470316138470922927708904668159842668016573699125367987230512313537712227385700099303891147576713741365339999863296283563715443019130784518394501662306516432937398430452126028385714214792102933204930365598434162470778582217082042302008874989403252795026130098250583435543222083190263643173349921391660075141968926616820665314599315471534815046049740848791816302523803499956950214377099811787710231791973842843979389930481932518123027339850492011304518089017255133507837967244876295702976168866168746239514466845109895545100376505070227971272081793041834671887045409880729487510129568987534084371204489362781477802992344964522580276970750891263709143779282245205036304110386765839521953748557598240105682990806418437947337914230339177327467018233039668414995884954682675095457507826812307185120872933838311488373003480210712769360163817821025118954788005766618429746138708491039047980196342633019202153499872513222743768600614774661495674316661484660308204722614957434658028636178389585792376235155816848693492130565606286198507393608574529970092392127812396941333222543100171208171832476951566883783866060129821982539396819549263153330456280558286506440786957313345026181899552671127704840092709276196674410589302972852994900787312901293134223263863150708432927016225879065123636453199220912553562288894739273259293832765319508824738457912132332582893124809117568602022843045672421311277862611634207155820024917863480574122247132343380977967588527860665050073573322036873204697990720982437214980527757351719882971488699043489732219526136473631469588827488179821681905893785786348407872784032895646171987957905373179573278822580529343922024208527036735653336906806032789307883464002284131450942742275778623655716972709155453557498272233411592726810867020141084639546293742767388491191877341409796685138481759984224746355608562363727059844980610111644489470208078131232843022100991403661264029717328630273692483478545388945099711305622696088276230069440353942855193214347078373014229852073057797781463904812879658042815809207212260956781844643340934306524347028178783005904502490048962312022354681415137348753872352327587887749860588033763909571185689920264503273536925986243734588438153750005050270767809250647255135819988482470020227498536217588716555231138204861216521572729752410562842779885645646047532669961069142402853477618286029161127664681350006183983105656042114171983771003281823072928250248706024134639019582359842016980321731385432492578141775227640682073054541768244387453966069402761610518357863659871526003925060862703578191528730711119978960483963949580476899049173177692513258576217399688466627487819144071196980829828733756917482591077266124961603201562187313331844156452285564723293940300371273442049508645975448863636712066700695714879310602244134912958735763063294421264269719957436483460579353980745181766856751989906092900462165616979083822106506906422504381654463023439068311190079453276029492074285771235598906545392773751670220801740089959016242371439147136875513106505253766281893651642433014041481744847616927293434046973818384831388045598250051966802599321954262542364500746459481126233774228531765540365109226042808977572472578600771616321474779352763968629867262301162149402095552252812990706137643072231509314439871088502383630639211943550158959981251368895042722153184345541887002963082289675836986460936430507384624099405144201622948290368936197741665109884117700758548627077915872021776254894111930620323714614439332891474518733375566938880214252883445141636396381419985446485564375550896533521296374767946821076520565388353539198265179105642432573172687421297679735239724952993154500950778208540935413874601517307184415388551140955831737008566227402496015824411822436623128501899003807895671451281741789478429256260240128313293882018462592260751994083523007312018848106465361327661239628088010843011654537611595177952355411411669154103208745700484407148499031399433648681051878636087350194189722844608898589433799326136870562412563614278870493350879809424478771715765834968157390183003034324626882167058212522926762870366620197623381875595066835992320653749763397174902870260873710062681641025966905386024343715627239656997509160382881645044290805519420581928783773242729832075760953182904843295186855006482408826588875024814412678577822589189324248966259693077198574683763417302006346248234383731784227367216696647895644033797318441883927451866752984584475120854089951167003906805407684215085074488232783901084473522528177345321544441757851540764059976275914030258498175124807160618649187068813509800862658737809607808412789397931279901669249224116675057247917345726718302045727141644185467367625054125938675209932514594649243677377238838830556285482708861230703563856486631403694167723266396772262322484526037462885297048286130638850950207348692880944385994026858091322167847804476165434196603262936496720654160775187928882514223019402986932561761295043098637477163927718765276058860763745125402925717784062027436089159048827056721329948132642747869163260789250373293682820415608050525103127256168772673032524118652994115059734130810220725712776926067440153471238053560842911021933227002011173606057585958791675846822268237663687102718696720176106601739200843871722306982035525940315582567239635902171320174884293308432839608454108002722743933053475077205593217230868824264984764675461186961740564863622722482067147340956761554649966823831446067607411495280302246001993555949788138989544089510534586353580161692892389966622997492429098563819468601821503175331509962982826875698888908454697984860653204029363605510842439169370077831698510405289593727006799593133676061862601322119378781798547094750599573039051034731174443771290163011938665909234551892129265352126046717765647629398617726986406419718754286023515672261057005602001945411778619299285654715608483928533336250489066456004027757670945302627343536889128726635036507900455184766637034341947299190260057415725053367075903495514760115821101996256438015503695963269832690403662785847148327799215448773205551102059303819290846942593993376788179580111795275756181988371587802567304374201936306055762099446250668430372702951500134152797668912134732816014260013829669106715861995982572699670768920043691871949490104660070927786906402181993091677904384752067208560962405392236278205275584818787581634202373848986045825439577763088475414557450707902405521843296425674437469940336853461331117103726823946945537670751298797266694670657036984626355017763435436686910804936489383677678883023264944762805619722695737684892408697533779998858272216335972333764410488532827328592683634104082324984132244570341508153859338929057543846520635146071594453795798920240659828989565018869526373406120694791901763622186576397544205610621354928383799593163954846498150470702590242866508456614902077056718967880705245132803737133536634719383210877534396239670434492153708710510360824494400967854268547182924582260838059815649371620189495305560796102702043586452457317767856707653914407101041836798428234840600561103794535806512148516842796640110631928006168915122211601202745712517188219263190054260919638381022066143146125114213931091236192195292230577069802660805901479642708860089049041605455199413906768061054385020991673222034541985563947269199192239178568942067304912559148800371525110908754963845385945597912733979406206794611107090219618148504945095457628487985501265086043771250101007398640853197841703712400369781123283089279740370440788364786045965655104662474018200315882367267221636437980680699386142984439813580001290923054615022840749315552771255452049304454658842132660946938265597168357793865463823695117657174951389350093764846811541870476662936937186872037678514965877493820005412790674588650962572413437549513516605287482790323938583143316542257293257942268298702721109042512858762752323448658465394761566708756308571391151154300231274489199935544749726630277137375795722181084588004385606917657535448594523675990976160494719400779901585078332586488976959815879775906129860657812595368662837946239541582073316411638014583810965341302950237763143546828511569467267232182349179840772816253154944781958344603672847334472809544339083974282988999504696591999006648856690700234055216673186720917732909069077623058800940213638966702266820466065664413636594308194012715264920695497158342420292670913136238806670170052160343178641338771162553471031266573273498511062271048947993911082067329519154290168935017852402563263053189087385765303907185289433277219000960158944346692374060754893349606605243750487377173869650435302227354500602197982818289050551087156087114290424033067355234777795708388764401671767746015451679131504195244081126448023950737063487772077201505207420531436498365997302800502354010693674980960071095461644682419468821837807350901620529009737722815349247307886338512005879270300236225641228540701404440681969797483881511442398456266094500419051261071539188125821727863033702048343013024820917268780206040220751141816518079550370832939119638583325753074137102758745651919691008025322836988429991022767220830578456306377144216785487089016332089307504316968777985689256927449879097135835895262499013157819364654069909871890305454638194693277322454391540240544981406188134871086252927165184942007594245395104816555210328401257778103236515229207572980923284603943301128496579872972258863585439873752974471356812889867701446645639735325304078976187500301047572879181101537896802841146232669591786755827283938615830999678430741490688866419386503310566229111984363023277226320886041905000961678007486624232420087155101748598588764386188629558366156987670084153537169131985357605928035976728254926259412983689115379477299558789867112337890572812451238568591112912505196293587753118807282503842480992744293993208919853556126864823092289944005858107415834437497782783192266577828281782120845839439821255619140456468684691468727850377822970592683792027341338038776794192581882023481047573930252060401394964604904108635014806674145401858216792458821567163247583794800941048196408493788056150486596022106412441551887717952344506510403162463104735619137499979605394402936792590865474353266264615926442210933577862479363515490058406224286364655479028353078477751466749789479430835694069841943658322108627144080642425445785694105592952243994726421807813538777432723911054231558458440154582408930374619123197223072469859137271920404331957281323440426992541832144952360987022459828946703127707031388902581449931068689548481553726368836178747801440539117950994378943837670081145428101950186690889223383821179141321146153952268440916437538801459570260151550562501361970026284285248203917222630840910355269978668120623289276525896220464829981729724638497382134097321028283962198148367214683187458699207620374591180015686719432871044931112327107570030715777490606787760788012440261300697470660243092663979989707918827876272565886434532988241701475319176052570985357974333935141795345313745721123528414259365075394857855968430169509862924934848208884112839600626588319665826082325876106223817044184872783060846136526261859204935002937219452938574526092912870719953397180648796928635249583126774581043311632604913946307385929793863240345941094181209722533919485101435897695596037149275212776883109451825150789787568611680583320672553411410251001029518513620856983020689293555831023948928326377613341136898226181021351491790606402737251632799021285034384212927183135599605374347350246187554187559563458064173461928747476007307415111784280019353210344893344118581377764837300571196361639156821735842811857394262000588345587833658103239835431497978280695014805624507770223022393844132510351951168004730845329304119698824797099230933920438985592220541909942097943978624088869613934534476568230512744505604398850164021429547948477583919957822740103762111808904653480102629722657314736004412732568046764281641752645178269083510900582918498972924384378917190951776363537933169856882848199380434512914050322008750522785649065659101686364784916732067974400252643594350733567904461981509707252322759508006365703556882815115754048177371677232689863344330385609279231050436230590495961414001221141623290089736855658211749511271069184901183969222178890030926713205125619612711107929026477508490244974724417412765211422710311506875290971984449489819281720200410057311640427212261446376456819168220507953327175621876164100905591058364787376533550341648877839600962612159243147948215609502959180230525915848065669222783697526021429950541040987188684202626734367852075637184710597661238445652332486630123254765418023546488287963437812369476432756315016209551237883612982670857016626475486784758741458484771036796053260164029709733135966149104179334217659906065057435428348480856742415904993154207299222583724172752681297743054734442704602680288714180425446182226508606419476403702629578649920894346852411270991574298569548381337722031550078317825903642985882348642842574793549574161805284352027381882649418336209178882962395576330115220612771746259663690942745342283777445274953357558160222174334096243525496010563116632258986551020326289206482333098134145453561795029178907707926837646256316399437775642742784970123879076074561004563632362816715546710842562885022374489871973981857969399221353172486984634481287498364690384852475329489159217394451572705300813667149879210867466065733203731762509454341588309757364342682431197017135936557926695091470564011878496969517750360423341388689164265831201210802838931722819103219427816528449748882366303506964135697065265557185517993229897714978142303073031992102091036585700980017126916944405414152973483522988908775530267164135384747999053594266910505184277981132328605179637713837932518700653462016109220710280359139493867709886651180122166955289508973509370561813155241817258364955334483749733766661568775939652926410215626618647449945313631049153838304189127205446436980343089208474453400764932085462142647050190735455096075901263088765770374863793239922683846650125000375169330693007758016240868115042057229038202350981747913813919373464414676116406162876254525166317687476396811980629558971297276997871280622514328753729048102651392362329059608395656835422415093656806415797478321339152353918210192001983653877857860623401784238460031621157539608666917526265163600978077310280531644027624318464555472784762519738760138042690637918794832486005003180235932149481483143835590874034328600652337186424137153336797062586577871876353798308852226571109627933937835797965356693836550930283517564704809805027705847325204844826286092565482477381582390976206014844246365044962893482042227856885205705693556551350705896679533267627898127458969769214022032416309387953605700361358935465984340385513774383986042806907242126332375317378597633028415751927224401457523051293250720447919228001605777926745129396939542087252832603084426478313664978068368341994626199541760137917924011915300135699333654410090288851064705172105894158238129791450501702133026297871458281412153547468612519006412458554432506672312972292504847410952532094682477974991766903894750322162323552234172159592675332427112689670277881032714016169418801872378248990606002671187027805110134774097339308876045015136104840374891514700187541372368686925606594407294048933239901353725552848810299487641659856649448905294841322563417093405945080976995555496160584640951331664140685998276316117008879014622059833504679664445313938400655698345412000615358242156108290358977465175689057678987502371892273861326999708909967157858544074596727086646604903387498404117678362448380649480264256352574655478204460360211982327847065261312784934997492183940928477078164352934484610357496066480068357157724773311060633651075270885896158298544699359412263291643343799861070864693883544214641427469270834567813212491465673788327664692800227521024567489535672341353831404177394229122395407774737585751293900452427931359929679913973892398467748430129341775818366220446035749537661919642634564975638077709885311290607541383332650436027700979764546699322412557929956254304395174424199501471684672058463968399510364462537618298381489580889100531898496386595122739850608466867921719863266078329352972361924271625782760041553615885843018422622154758784860363814174937014822497628652413713799415689576087220294874992150531410212257658789696858127395819030099849306863178242336881067176917799939847581244178167787205654249200820649892485715047735525836441129685016377277289101860314272791644228256080558873939637467531284575088895054788381349351515240961817528291997097262075770197413334999363296851083572790298761299432732657237704779733926896115591267612916355004852119050994655152085807054788531210772448813080656697379594493142340118428442837588922791965258937191405252544389706730428719757314893180432349482643217843296932472633760382683042752626097607390662519990345400361958925591201356102859218037651887390540965632599286199563663340923998839971877855166514975906003032654306139609525631340297295653744075171721478717637902834869044043060329555479923131840550095754764417876210592616698185901110251922671336542677064137584461314782482596910555160528228058909926415943411983315165596786583028333618299090885407108053485574649510601020890239016913150254324464114239909040314056172798548491267245980646426439937177952626708575868893853418405863612388912022667207429915912390066501623669054133192966525142004970959557481201543511783258049980226089688888306753893974996543249617352957124765286665364933030267919866686455525010723031119471572668709050035057635331819195824052490006523134320848214219681945991463894440797021123104412517499719060776854719282907917944245408879153050116960742219898168283921695537386907908614241642065506504233537851596526171689188002310365992651883605792552547397565522012212135975767126755743807983209603534965724947882015274885367929852981710300109630625531206436223071324408996824756299007694503539086585014468450807313121138000273609571480543501207944949927914606059642627625909632610034183458937641866443833524355311464722425229909648541222713085080854395465351922181854331252792151585144047381102151411777399075459553824458609971833402050170342273082917205831264890506063353627238224418467574152539010313482316145201110326810152154255806946871858304536779276522222650781141797898485715822672340466991400087759690343535395478381707617558906230176608527450229489958624017956782980605548827908383919940634470580369247081553747228329803560354805996351924032938595168287479962985608369799856029935170290023515661546644070079275745535301166411139258471888629549089190688626444621692554018892689911910808791226978810338904068631821511662872066013766858479780938464377890142261609045386117059909135564533344153082472109795844841220596443024555979825747857141643075797097079320361565151670901042752579239809246797695680951051877973131689686731838008011975089937996142105853596977421793831027409335611207729716398644793844096978028240861138480442502144766975205043496014388250567060545549972628599595224388101716353608005760684027903661212373693838222035700777417862401015127944603935278195999995335852504006494984657861572547606778433952441751821518218048665866580587175314562124557210343590312367399209420230038530178158958784135089335675802064872839444182529764089505413603615837739319459812286447068932591580819157428251414203536024862625053520168124552098714076248085174064042732970674338732613074264224945473250282263319619206297747053093280138097016194056604078373786399860380300782416330011869390487186946400698569004484306735201293270276087630032945271358600686104130326396918047242938441734880457469367551005041849565637167862831577899538819086748795188377525034411324193676478787090259725426411854944175574083655778998842180223564755009741416643384934695968441675590525574291829971768480197857638580240030422525205788594710733666971276770383154106555820313681123517113415277436617145270806733820264393345465780116139846101260922553140751473648455483233537162437158364303740490891228834038051184418723000856408557819043807867376906506419850931657547922953595327367312634837724304030586424240074869624456962525568087271604949403088709985604890210637705583303917321843312626443419157412365126632268067685700747323026784011626587168566573035560236552552541038596791958548153136844739673573662504397137944037468984094801127959453061296194130497903467902057242615094782156952614639721711227943303495774240448577483329413825872903825596986958677812510971988085522732648070488747332746431803167495697274654350131924438175780071027061599514959731754611914769887586835398758188590560200080994144441718747410903336407932171218974760179357555184710392248817064294404230869872668477018546972729846450192411555955751713243191620261875170501369898066953454744884055063626687101784414935613366326217623571064148133045676261254826815036703387290948931921729606081771127176186336503168255829803895553924514553362258528614445603836952235781776850846318925368489734256226107111267417016350507279185735795075564473522547506251009987750655295848515391818084572390064246982990578091645850761501324884686017271326928761801192097993510103997320456358006339339907414233349640501781127850457873262837479564703271214153332528294483969497516090341520642789588453883977476714543975713571409928049042933758229008547576639500109116970079217626527653503734568330935792550650801822482282259376991046246533869582933864420495314353667375874772059083261664876443037660636127803057505957646404202165543942714416080302565973847564318003145546847167278354149007372822254075879509637418496586963711011190190914673480239811933349264644282922352198292132756835765450883028758682872826692405533105212465963080522530830478812331842655199410658521937211841241711963529410065600085760717618055722516787441379526401501940985290179773229505714052074326779855893158597504981175418698602671124902399337559361624971449909666334340872036229345197757590798647126277288776680896719759071823483433173690844254329806026924825879288796742322275078832224677413279085162729200048546010766870516931862967981911112311970090924292358390306437594654238505788139504964080277746290003821584684851160839824232198773134682998057914399800096188858007894617736607914749782477032377130231483822250741107873022161743960435141769883150006268977421270838275965744149413397292761519327575581076565445809662171143187192204946327221927669487360146929129484591406107352936661140457895305408985652840206989292927253339192367195788161699771897726222322174460377046102364001959634772181964134638099402699679419911886815764606076156118341145747809360665403383588717121230572141235051167428696565541845873793585158608821076914749761802564696562840997178974092191441062366862037007281875792230996473224939996171651581597609268394581529898036882477875851894981300338805545156083351503057940408190581597979258833859011492930614085045280845432083851069179991204465515888035002939785797301336238131677864401809299536467713201423005953956342315547915457218458836796632843435200323681014329662891477541133338905887180577608024859605069568276892509566207010775539012375836709450055960960581628552287277291352216040236045228884262680334050299656339551753308694132777892120286710652159702765588446322353735590674763235380424035160531787517601032340316957083423248634902123143352798168869246268867594114543633926745254073577429627265768849566375144707277158705788389285445694905103587809745718719218964237539883024996285282598596196888646664731417099922107443225968666475638705512095138355172348910824319631696455114355750082357333049162106375445738260318539993650657378198094524107122678017510396434281990600121263623857338274912305480074110847651568999536221429482712104979010395785492252556634760706513978405935303549753242130962633210152372084521076660369644569910026317888913784619993877902469072562442835124936225614359321254415895470377588325182278745414284995056419989698766186847738789169002872738912466318909218896638021207643110155277979919829980497660978547889574066822135842931640362860173649329447115353882636626838958557359906909558375407227228165453018911946628976820975991470029550297445492613030386049624432471103856269428587385536311406427947670564801572033874292716925637462174313996438583062701167847237843229623366205636501513623645425170844756937841148002611017346691037538794667398808127388183723330227280185908088784120443544479082969179724493566844593327938155743283754530885574807322330990009495514297147822887286836595400517646183767913581537103058847464681152913422914109461221760654533153196514523976170445031371230639824460485739759904916277031916201599911010344275099396968607600819838757797971303505608538539456493370040938344401319948596335745794602681993685035373060132821346641332024588901849315605474951982925211513077592225433460141737881391130230499204973239143446445848741753522493882565699178082861465120953024815012033810734293823421263010363018010626156528832897737652988498856432283227703464034199068320086511447591311411256127292014400479888304806805336530919141227841908968706432569666481488302033521885765332088609894873131675753977380974527431266856425023911172590127664607665663600804732779663764981323874814709686339112315671653862433570612545743510349260039372786858544708913168879437983915730470758293549956407309480135030839433409685813241554012769753766954635563705770087685702760321759347772767666794737999417283593059115231490077110766292354993209416716674416950789965884254708587193011833770894192904515790556477072946717195087569645161370171378886570931869541473739003427068698530956829692245748971255326289533396338567151822315912429202976030516512824413430643040223577531330152277710341404179244633994043326064016884568831757596546128859046736563106192647512247026310614462847723539983280247690856661994802997319078838367523726732346742651701623795619398234896729395156858230079424536383056409469607026683792624956746364158150280032847537839261673323786098946038407971005062626296999784207647009590370760328006978673945077350486916879206034868060101375774058019959880419439037791998322391217766938284766709425301747586964855259988208180853914626686531572850097096621046315364056875836705058560535998416373176102221645327916662139253278360221742283798429571375879840035165372474846662389941301012523230346474363309155365860346848861022133628828737764603997167343563144765505418130392147576288822957530263900505938769399516524192320049573834151002372085400967436418486497941413977893613549563067706693391745891532060684473965237898053347795154621780889491355588425757291576404963398427673696047502933028059336371744471614080641821607001549462752807166666650819517555727185489601864024534056490318146336938001560182997116424385215961762455117274022054921671362529074396727802955453173232637459531058302191951114003736707515564535560435700636573217219083880484559051507322972540852410421899754850714566253455625899177159931717552706299144784153893352076933137630390164950615394350347679407375901125079806886148276222245352902859961937564579137011022844902757458487924142856625705013191048847588633648439047651126581933715090005024727741101702341410717962944011998372402521691273170429100514434889189832478037594773737940671390268598340803879864009005929269217180821614707722897990622731151676479948647761618450352299555308518243786353760115013286661560556350793753910028802064904571142074863053172420862503862682720724499576648131021164345149825693782191363321840581729160753715738236934709645090122917391783522027241699669314904528861241123437031026132390851961872326511785444259442998371772027551408838425806198345870499942564779967005326847362333630131604098881699393263684318146730885283634834868376894537537848601957336941123957352357096358218073218965138464536381245581592564498711483418567627301283165490248851572017578684848303970881382277184281945370135075240815707072177811793458243154598273342408454534329906074237701880628457354671620691863752714833659667513655517378496269213142564597752487984201806209187652392390841184152971673577398525723667524195913436957222378445539654089736814787799712679911225382407569758293543652274410793647962892711657660290047196359422871580972832686174021433376729703256951446912074536376421008835663809707366143589838828265177625968570107325954890471234330340739193562976697584947373098653474349136477069724044759639891607778705642907891813193575294915723945137652538774896222219646764724756252085248461009017040660117224381585741899703256755815538359931896813875887345303470923023669398054964951645244107313014240623797981374928507245740359042331850503386524535974498660778149543885301226211540274693337510467658625221457646042233846583236011248688451125588859175731101048544449529346929148232466335282047214133319803728185497250899773885978944148741481449910850791696786057867106734331831940942911608074827565781397747340819614188451724325075580116581988416660576434874568825910677902197701282551506726085362420787250635588615703174017863662215887824717962477597497333103430117157686435983549982242928448937931131423249715403412331223600871725713315446764669841574967452464470384282747949356537606569906527980049401756156519179845607543314299463803569854544250345876157700361215534704401024884101894124254335406734617690279186307209836857326481748416605335571674336218234833250158159994670327919798677560637542349447024972052549906597228542891228897900193731360211214350838166762371890169000318357687138583457522281757840098722034558692473989614335230418551708297308843222215086978632818668410124355639245161839366278116572999194970349221900984601480634951718478306204053590494300525772805480217820488164894016865712990302936900453912544449321295250666551244436222866602138815603840024862594875699629623762791140167786181832287513074905740393414442900828484127334105345469999277234794816943400292855970296959662517550021624289676982620461370410226027222068772827866960119963564904052722480656834019339422613178531150326143704938056752067845890864437842267681311598794425967416824274026788415566717803044087465066582942934233019200314292925276641072331081057012487674826843254609175183562008888602384337973836450846489641677385097584802369797669717340902858433633371827420573650430855370861763107183342271722447588176616330611043432751230583956133927281617723083525717639037360582715697704010991939832524628662693843684026454393671959183990527191250298373765383359915114945957010469302635488155172562751783296269639001908566889417378283340421307031471812971663937566931992369469394456768059556091229839766858076435307103835496742653422053601706047937397453819532852447542843023109145589078699613704643540775573861317348696457137639548305611895739154328394384381560566474204130744154376836856609532069468806185470062264763766776394693761227262905125918335589173607083576145154865344085390278228164650405524330618329106259597079478073402342828658043749593722032704387353015279661805008697463260161254182069895570096839415144329939449609697508576445152207290005500008942149182984785908816452336873800550830218053357674325495676214598795150929316092779334358244196326473253129920452169223330563165744550144556477617454661998056916066885123936598197170383599189037474227280171890190927667694458201401793965340778531391171742892038930561440952971858113923640996911019256357521307609571683601350893704208184448521330249207784521345700612738595390856868450873231874008611020227773389048955811234732694578526175932525946590140068384867001650452497469320844434990972811794392261663011147851399862685335675776048303358622569175474956863453437201817312657337010592576634816581882710928278010955859198855326733015848293785596783822057908777746903572811044395548560330838628768696195859373991956433520363270758531539616066432907530481385395857883675396237450391253047285054330362940138432778190646212264529947020021991285394483883815614285078387629422260701587272472302803503643493056420137629593617151298043989791115134567271521649953408023293087094132822701784283673647822953018283138378079803508316681292963154030923734106339357574285948578256481786471297509801353732643030550825057077567224094377314539155166008372319569823809023011879493816152539140908042594580811919943889589054806762043555230367177814949142219685479966300072694395861294581847596051712129221878456477560826638046091669247379875502318611734085027827334666097336732732159368124447594779900877595726941803333635775218124787611737184268428761666153291216386150334920280272554224538617864852828422898037530862450865918853107157817041413063416860880482065774801711441158384112475531064974677931169461648540739652218045619348591267856076443914065294778730301270303931630772080445041616768562828730355864061948714974394309477990261435114285632137342836200779205835862967566855244298640153804451987815998809339776838681230130090466590197740418903795144043293252058580030811086038924839410213254657506720986522473090408221569905514563228327085876868269281582474501963271899074002417777170803632785459857743313950532403757694412090313193360651792302837427403166532878316661399277153295515279888034197606896025922998518208339975319630497347862442176804149033745420787414386714500430512564886109434324343823657086775772272694835573201666962134194326068701701733473361544195061417962890839532849081659807867035604035721413176147637804530551979684987532838128383752607385138385094746638032216935051360387858772746333126002929361595034092154050897832454739942369841815590897137109953009647454423131426303207320752711510864347652648133465499902594433471153111544796314808211740263563663262164338124325169723162179732190940278285761414443511897437456894389609046439565939446556556738916827391904595766229122695626024569677461247501209087026390900990527543249697700541870006784093944804739697173330390337923674042968274224475202937549647975404463500969122626547555077661226953971844693245038991303640232086975314171704208779329366375132734436116092579480054016034696547701300323345991134706015333724376010168340192257485356605472784798486451892550709573490875960763581713810389584781904160598854969098882688913791204163483882126974179419549144728492504012338613114874921935984467075039326870710951461028563114253148729269823757904789706034599727767339200297501886424429958228321376515537991074390931721933749120432429989183394699463730555621900092325229842708353663988003755520218796331145668421534229830323591948264249607675685306979316740899334372549979325973118867762497318192453627916085515781814086362962069101020324199035040452561055059261306847959577268472060239860247004987279234913204619953124063382718579017151711589759177962624626990084885788268724719190170065600120201591513162086215852346038423118756739334850300887819640740510400102714356888238657374114700367893794058096432962942021228991986874697461133245024057779423644903265520169591279115607255254131125681620739384841080234246447919061789600230942514482474393265156172000364071047001166271582609190579379681793463951061997008591264503503488543623844066143745109354541600750745409230545147346228422416159846094678885179508727345052517271811218730933441105276658742726728143289725964531903803681948246364057398026810056484000157891903290118634585453540916846559212155993108632978363502690419074849492329691689546678802992105967643596056516361449499197212716790023873236298341917450187243915424418237373225905530480721072939659822960359192151787357299618948219797491910077186376574619831510083178826447640773360509127100612138296826401214668165399549426049974845056811716709737409342775783157120838584114341887820534248477974211611040527747403453662427827304109135625560346431756297643552875529814362206321712053862689796900609312851487604776811033384702981975102338544100938324161557933798144115218512495352684710021444033529476778810132333860103047914032404885589544021090526454230142821053312571827596532422530549044054231992160234110730124883182451445669292793799575869211878115833953556391471005544157851761095387625770200444789476612760391663622859324529260921370975343077485911290960339161143359368969109829844186124973953898957662401103650475057945761005598650984311022578150203830549096514828607204470288387513821111090043687841708872996446004988742700774928576680685244831692418487569157302607331933461164994859575853947610580703112086245016919651528386700178017543671988036635102626182964789805086496450464136802728140697132021892768782415363555525883424277749168893583643618207005416961997347688133988938719441160264271199538403066852080061367815802497777294355155950724171573795558065366952014103310961901906366575818621140428833571841012070595815116999770560517822546480464121638619148069984897054147856934551959102510627233463543578798510614529910800143923219555357593635828831485421020153003482524084647964064402163499700103404925608711248172990550390246512681130960537363784684685241490523773148157228426783728565427231018787068988599118538649963785487067646911756990706905499563853071738717627645503059119157197315837789531831758859997877866854168358004848485021750091668587825159165330789274822262088283247531336716721948648753179421197302950237628403763779648659001309361321717189238694233148188633340377352985738420311265355045399888500526899586505679050065832970967230333697644007276196538966829466665689715947361772658692448416554966202822871443495918795121274384672958770045699350124836789539796053955887332498113853243539574209008726109010091030467183511012246987187189038264699971012211189654159822707564542245576603525665459339326640645710435102033602907166595871879539414884463258703565915203351978207210141482601849196137216132272757404024414548309594699832682754944904645249704750491923464731992230767795898979654018106425188263266934171558755057082160207784187989417477370220955604251245301195784411484676058493007295233853638469497897307023335571318892568233730366601069331867658120877307314113397449799787293127514516617451225907446378978572047666167067777313499079296012498791211474422406986028901684866948232883619388700913440832736472980881713763901901092754443012006001303544676418928573525097255065859882889582268192198677980099257683203507533744760327370123530196600982759964667329061995242407166858817783978624411486167727381592843479165504683110776674848431394861718906117181065009055392202311046861553421725530897929194537261995041275130731908356969357407664295680395629380127924508813395072900826642555469666342042628697807028043411212731171917252462384608153241533951726596669434118114339597188499410134571927165721180715983519944905772002401421173391645974990545755695725022487033261120338856059974270672878531541593174315162951678786675632809177994696943888781495649865083902949326603790405175640621270951027476035010316778921471618115510291425534016813766614512593426747775350412177473653956529028640858250514129872050588057218326109006074668689620510736911844913021508054201895363645551347222431169595052813376255226484720937646805165181822104067005091385105912247999973761243560564379592509713091259981171163514928229906162476473515396848402732768221939239781429178832922704446357732965078617185709003553563942757212851526992975023624832630999773064422150908119057203831731578164314977725594207402323368517083874799772139362306815857214068133666790064031891656319576227049641455314688520413083788041389920036053965242377773334161536715878351712169965212175098260469382395939738090366094261782444744638256499379237343870670794735818200770193962242427082130049618539205392311504845233154365518493134177916355772376471881550512455931435951634101731713757781563148780892452234719171766950915280064856164287806488430177259696404757798102327404523826904001525749388963858734451785507029917901354301887374833214308249163624748782039004319909471546267265307694091538677084830667027059107552295754256653244901095204099577112237981831909041387017188746180775884462428717352724605695097469332127700806074427721933405688693972615190091752058321093917023351358413243880630009737752209653402548417158419914968033761155946483147486128861175561842732485974038603540217589127292354701056289406715683905113362265345511491645926178534488689520747590854797055432726699029783040736930161364761223259314496639438347258585664871917734359292231557545503321680372958311929113097911192762299106467468642298909466465165034007596945467911462880235217760252291429416608691379211349956612220801212426654003981615296593852325640017095028057581165643522267024150464419909740448975167657600852124923518507032288576577286297217361681828811375433834240862697131861719028518218165130345958124366636260163148887584912507274555999756331063907142262565651279604756173937105359635993477671682478014405730087836772017214138587379940489075588008173787207448497792080578638497418658807800840654229941400024842232483666478781307407565567233280997216320613918643105739475562858995451844289560720463102356211515101773781539967596019047748348061298858370434418021871472432250162531458518221651916361557830921373209969170837559381606888333045870756601721889311238482586166486454781663057394645816612405309330312249145272757824847717109732236014321835586287524202334095978201265507741882586143771075859249773808566532776507277090745146201881951178616264508130860778406280252214639252641091841363363217890249169895560764915105589356015627017200288120493830821839459802758446554303511199814940141620717938297257074455011234657203013270545537425330218716769551843806489496354579651262060108141761626046035370561336241615172712925615170446962998797901597378720067918435122950600160169333750590293006704601916092658022375931544791304103420579624901269992689502563318874940124181402570133715576261630128320513424254712131553931865325177421457871995531781519404320896960900736153759911129039161236361130169255459455023820289390705991229745762424301560822023880403429776159434508020580557409214126287452448538053252861075645072873909963866999730671847567516517779031092178254050420902535295544041737581623042718042405389208328629008164514906517634345197679543932185782013012995085770149770605647121405981958139680864344305805195977790939189273705883374591836731178103358223809111013823821919233221312492170207770079950109889534229622349999712207418193712649503262654685183087390779667519439547940174777975566683855391293176464528314223889979610949325221124560960770944537576971596403954179774733088075030435675857640092087231596563044448692907915789474818529970208794879982601233069443658184021973398833104118738705654116024356427467918203771685240451128353307795834403420226149242337948653253517340215532672098162842252947642034171567942582363732710020704429413740317346979096235020200551188041151691601791884961349640752301896872579707502316222998220247774186185753699140811651080387453801993973301343074283857179818761325067802858500505037681140888088431643618666185240441387212756345091146780396302909192871569788127432429364008306404312988065870791775693467734156638899679565617901387417501217810198370368790283551448398096563412876887865234770325229191059186684480782062348614747079767148126585480860077001201074349024613276697690167417708169209314793381250425590642577135660034483511870405519252281252583268474993348293283153684475456443585871046727401777843637911457453597740428154027678519746476369951280070045357636948482630348571886136001141536843294684405445487411631225380604532357078345790379503708855162926827502681256793734285230900787707825259494789189067233991376346867342112976257769515761676522594525111280914692873453715707347861028366261458717343159542523199464033082603977867337664638445921542915561707959750098456375683831021862493494471239631798149123412078096829914412513601852660319998133576705932259797250698905773567905421179617336904642169543770324446014145911924045116598520460575076636236192566957480969740954862120816586507787682960933519714448441918089526433723071596571381886848436186653497297193267437319702330041309282206281414018061340695547223007695790538517538167161490776252265230483223117232524731916391435898594730076016211670735649673252509855157637869690248539140218520885663878699927111374477845881189399390060751167099699342822750541302944488879263118936274592912381325183562243091892489672317154244661375683745839407734719306018836516295256371986649601245102416985731374484019900067964724636681754066135781719130684105868465344195946375762410399739922348392137934957775880218555021804482830828483724263194293712410259800008196336550136958208209932217808481986353036545027196421133241437932177807339355303625307928090808262085489490835602910253614539424101290596003976984291984243982707590410525325294470294486130905961202144605991757642906445470563141037961564336781386252541977666352458306154422975928505126792020418844932921473557085822558566291561196030248179317786116301984418246020865594852448525689626270303791424395636020679907762050467131045070114450857411032057516230173498451336811277045064769552300736563815903316044220443022090478918465490114086941239723147101006141961216558949138363492740944012678633741906093179287897485639957784939190727787443160001197908023565623941749574706857032705392439813857832716587651203255400998202667031170737857096267226665346084905430578435017225417497548864006510965666376730979948975059288419285391662252779604504444972161532330988881299511794141503795679670842532508706092362195745766287952151234289152614788285689178797122522083110910453431832559086958107345086206062209676060624492813952522030665520130404518416111370127681565307174450690282080615675288571812189704752437434571275892462816668082103994422869063830214082779343051247758393991744934985074296430408130427957844126183395348060370790526349103336816061679890461026678743187099443631076365476116625157282904602305093336775289209784164462558593066905626077243007910527559462950311040647344230248964514749888446979146415134497501101394941152210143847656027923947252973374967220423333582282824183364494629916978349341639718781797011115667424427114160346062160220799680538299417664812891699313459378726280092343860485236069738143239505885318625158478670983579392731941472434744313686921975319333555780042178141436789619276932895219273560902006579965998023204195383080040804856347049673706659219956346746577801775851883701055358306548593739868191054884957923142335080825221460515302808963954755040126932032951611742125564565444345497102690078184257244223168458941789863239689989803608857278798970457230712628522022250478609997083328935847005630602637924512208536485764399013180747605903703268592077822092020328751960475404891926670812404930247003982481718220277284299202212313197718015945578221837177134616423120630827658059167004891512215190542672323771147206167046134972148666373644081949525173237837821206261196598871525967698428632797598312045496842608849407965313425489910093327040598313752646173241147664932017123619363823065962348537950610952656602048563891401271918383716529400887971438407158679192542545350694981363643724735778131425372923945102201377489652357656170964505527335365019096394692492053853843060114162799554181953214730663074839754342352437441492060613120992086013285496395867946908866006836790341591968917179843914069602296400285749963931058266768338912585669395146434980987736060756464934579122435861477840789996384091163960125551261489813477579252442492090237608133051415142847113840727419422295016743908973744752430149219933942526098442975461910187706510115457121120300653149640216379518851750399935725288314793459858789300338822892202287784189065655198803495394862802747428225606588178172861960492642854787867632139066495961239897794510926980719546040951668556864830306203007096751901646425775359904470178349386136892766005070663094333241850023258576735832427521185248647879679334835458016565793523045868858233605620879694653131592534959318325592469861240351207175430623233716362348199099972276341381529323994124184744947428736609623534309505604141190751469378526151951393563998790278246584790707484713555428110264782424044839919459340912151425648217028786204561819306699761732315025203591453818116124747366444005840225593276744187395304628513511079862096833943463337202857168795131770430267713549979933095726385181668106474879032293938951710118764430035286670781314721138611153650059907756029568223276978247396239970097114055003190577352511129595669214627310994063075413052962634780277074203704718084213091134881149377343314339434298696725072284584964773680433687672605095271638145634050429864660375901477715007067900207053554994516877025478402728160279347382863884274101446432002415118913902264494966971270015481227121484715050382018377297429007548908362285458548342965558236608855915426413887503939508449401123044556488976555687451604321295766234371380409544183994550480952642441041643633445988534197366467575090334207165802909387385679741007225482973955450211888694566707584688911135369890381693082922391920370668051170144665530455565287173612260060481285866925682682612400457836162714584782225642912717072988555549153575582363611731506623042491478909585951676826628948616448855183865125801580040436319560418714483957520397467058706966688503838166512811955331514639140019030536346966378215123731419400636861725439385087046689237607522456419998779634404307605659513943341692317938503367414245262377604571444013411617690237443801447042697304239969676665122548878987685343970313021677992401388546770399068958080565503771017072283797401091892361451812148209013792613677830564410301300494767556624638708205952901608832102714071994217075579301680969118860629104339367097833983772698076810495617108578528829674331798618462079617719056572201256564787643693000060270630710368113414136349138421201580253926661581274892087724171191818611211322959700892885593082569615311199188201717882036924090492703342903195305313208458896707826903560293725299417248410423410474978066990451087140048454972229675657693758862744556640090109691538475631962044979715976864881564089733588687436416339311422293133781469463650030803347421126908299788129084870907055037132650380852652635854535819459742838561013566352800092802173193147672422918831145262622586180977176128124082070814710953331456092144885198954745467947603572320190607847303161284104325714251698494016664086521542583559235598573803818017755815891587258404188093364174446774066683236870347842896826244525724793383532509680612713579098571467749183519766219636065836492706678192028309813921855650776369009472575542948595380217359041493795968855490800808674708213933269468652756771277003858857301067603099225956306346474160853801034863110280271920996341298077773820841065444753152197077058756954335502408285543844045683862996532833737443461608935516721965081902198141740918840215682523216805486011753630981523430194159013704154921353104972123598125664815899137984553136189342040724582817958805686571737037372322909884876263404009202699066298552586180021823975441066176573929253686912133881084809158398036609915621386523154717798026721234105965958843856525346370222618430422361268512529568373548147571222759991673618096440590547536920918172101518129884688167142738681327151364839980092688803348781338351027021602748104049515187697688349920766896068431699249731315060967119621618501882571366427785028087381864338592961889003680123542971089753454702492926396472384535770687610231306631274901712083568727266430271939642466342679912477942136305405611539833508580053537899414257662298911685612853715089406505078300153700393578605482875699654299515462759380709071314231114846013539796106962246403755610480339872057792255018271312970246540290169100289374903306491111340033591838439081982682789607777705046812003442275513936682659691023792634979240915143038538147291694627357014887956999028867980743712356466479498216800045059752509855610324794096539003857815551842382454433997514723185270710503519466179620475922525876836039867708118194848650661361979164362282268708925098609510607608999061207567609307161559728090918615616156851608425856114800256204771026871760096113859087663405943614693293905444146200310120333129512285712173061861361822194797381911549043789200652735594421490110443104189633046444863799666223919363664176163802105721394247861576115428099807303077819590243565306947113338346367463021693387364619792217814649033509112669052523053004199845091785162461769317898636091369475979430506988876638578025739422162428950732995792444536977722435274468704766336922491614759988436390698267053113681508026967256205040048273884529962349930976082409356070851209824964959378617806087829945694464327968057055394301695897678566486804123186386173308947684194934277026159470316952092983181274320945363209356191123667165832951197836236537187785468883722495011581654308027043841130966306305017631557732733799649214967629081670013628547094998396721059222447322606052182131259000550836369175921141355636804109141651124547987011521386508163255000317900586207853873476189349259642538046183829139404542171149180010107788371778473477434558648737206695727452448256396045818957803604469370801626228638061734590259239377104230413843917900375611016870930036270646777877614391956942829641652554942484967982000133203737151006143553554815800910902812114457925220244199715294298444493848906384192816786144843703225025201672612960465033105874289782860861334226120924079320213254599567982579064867408878112039312534717643202821468202252907754990403600060661599996938533671109401021709901856689721235497884493918889358476881640080864175362797679800775940520531866170625692293175956058942325731522123834002349705736977948788402686892053167139947748622443664982924062567239658986461209548727760673861899009756551720615556782294166089266242153058728642564579363135948176637662583556236745308240633390140403223532104664253524741261786011218731952918812535233550725494794044003224077850411845906455638774261064803605233698044211037593322358210118351310153847407423872747697013414043806264533187327547455494043059728910793716826326260374206695502517026377272802623536038541220256869738749951931576356170845395703497468304723461908123353901359366982332395017955770516150583255764408189402664735485530176346782498007622495511275505975088674561780205013544913395343168943332999789867098686285302228213409702693300114635651996506261127436513039521767177118252205375737777697859795883412927916300640460252088616493063053961051618248689087370228936419872728572310098233931879780229176600464467440353084817537621286899404161416116617476720475597770588905570715713220031214685142568793937325789449520841345033735716247017613877791862383795758061024162429924038791482389182085205623382249919365956709519899039959500349417567791887917291926121604528281172200753641828129848638585693173735282149728066795226045967541941444329933402680625427311646690746259171515209414742195463739863014827652319473917325847137120232397530135079656046331429103282788094980369644966592234114570281380034743584562555038080546537498503874389635048121194922275289535442313185241920394049373642657639262554023765332574528338518327993694550668489358747451618725823568372390155853073910857671118127037345798765553505723159664327264826625188989183082506009991611046510131886194403658939548258168460580242753488255259824397468046067495255601862939960877220106619384372733884120517022976112185625662748784792699451912995914466297931516086231014216569993656008686317997856535070472770764428392366413105056840530387593943268840563436884494796012933026012370353493326028555795979523394767662961359563233502009915946553541290404627611809783368947890291140373472642064639188851641347525682784716951217445833561197793222249625014800408379307458403682330789957562575453733062551852512612005663421740131574533737637704682555327609351621851319995406275964881402747242209725489748771777719365804822027336980995438645591582118808335632272511294041110798514343203692932274218249114473651206394280498463575090408911150496184738865747547202580803545831807412925368780363449484154539321474247718843171590015781172363101818233207311488651690032187740065961803455996402782862147137750629521312034755267454195291183170919672712345006530003896125378598924445292355611505723687381305154728314457055411488384719133204033186869981505853410931444435580708970211810806233820861430804620127153125847050299404204880735522721546834904226862508291169104450153703792931898092311157048282459920474318484947055149323309735682200056407648281233021834312686256022827685890100182655800924020018179000623974156446643667232373592980340813540299654183738555182286529397795971791619244591318640250417333450498347724337613480288102067558733557485244691201977190389325025923897998515057530785691856620485729676853000474922952358492057279490376956113817284282778454069520451247699476549465899710959318385429900787040454687280999021723359802828767515319635671623098449672322092540523865053964737708172963380172854792825193003615950546307414835735286084307742493343649332586597549525211681565800193039356340069414274147990081339007675802175172990167733588304953655140869147937914828350367298726205346801205322337528244526722630608715864609837274535948052747733979175256705714536970605955843165850416967119876789381659621943977170567876911305305435845649749882286006400361834483486609393973315344531757117229274937455334449349151309909755867894795717824179659384380285791241048726811203033630533305376187983344214975070843581640539056465879412476834383097945065553177163913453206869078989743987216090041586078102176627208405303410037174858112343817413177351156034719160791968672643301203910545003781068030934147908365781357647626090992520056823789565247722600498316598358854660489914603757607266068525598958662293070869620230856855378557293936275885036809869158967131939747041659981727960272740222908022071525109143949145980628839361347912640512355124846164626207183422544933424803802539346550004631351587816926258471652008407745420494442224491857830455410683065940646079734651765089595312539657397282548567072446546710209201983331336310668470578256200746411209083938408536601646786011587130641759886094401066124423194922310882021063847759735149408436350543041995080170241639613720707083744171333560739098468404393057118708555781964674397333345838918478461414093460485297483213439278110240595102100494381996418612412915817154477232186245931291285703617573765590292431132382528308850159733463416856964207247387610818732727742962841164003828189407285976739148256156169344313090531022411946171912949716850208526002839312035111321234613587087071912379631000456702938980190204672041266929449555457579649711116506762495648673827921756398348788601947535178164717209557938613847681558398697598168051669189965425022330613039265623476644359562071078248415740516943176444249435703762080737840744310131351090715403029174613965542387585773579090071302335508707251769240667873463182249724846939211455547635707717805026486154590343904699421405839686011330167182322722928659899494509005478615032811533559514270291742676022144504318969066899656291981782554770550585320210587495725258064580632276255657398323965863800306108862238583780187296727246503963015160017563478661626236151853063930975718128245927943902895951505742562509722674747101850363521303554808557166817153928784531955719518193314655685293258603046236683693947371989718817054623525124148051546550351545603614618418164211513762052984753708862135268282184386459300019347651157906384174231107124520498499003338995302518622076031525155664709473043857604489243713024180540653485662175404149338545186115687482498508493372321781395508592017634073158111159133260515731587441633899486928560385579474355131813411511368184336012984410118973037685219592939697239530426488070719540325731865397374442544876273856107195698100075300618428362365316635572413054798385981243624962237668384252541410368569831894275155767587314746410550196995724544839131354233251793212954847126771063103684593715812286774292615571114750933689568127645885013258672316962547694718290994368614928148055020803816446893149830013398928431240893866319565599583829438256056402946637302009637944254519825051851286129036997288924711269200032963244411510578656829705281579343248991769551196118418241127666975151455009173455389589441913559829298785299055572647318917398052315235560306163692702884397949737397326203386244117656184451598254821555830414003676590484135777716145144607373120398146471564161537447008073069681085990283411156119379618255185746172805911394246710169373441100910685939740137272357666145312822357031036297675543984576321737900132460879896932634945955859391974234818153524697022080306774359812112195573163226741063523128388584219396906244961185554051624733829600050198612051201553111619291114628097031817074721650824093309383705337958573727396451561874425677714155168667989376657746761180699851485915228487470384845998105496314402986479096181012275988603698032550644059230818329039651844537445063525474407693196312721862331083203141993171272048625464545284965443739973604904334764320054571990489238871192506978850347439271620297730097388348200429710323518823715690343268058779547513809185916447590768677959317307725324607592665662860618841204992178842470254919001977091999585440832228876868633694552760383752556808439858576924732456076751491721795688144211196915482045479908226613505750345184928102577414175381481888934802896832288200993104370788665466207005026105526930996081424561260002333362376235495063193301285888401988271423744023308020379354692743226694394797368508521141822454293774580987111499735778897616641847900813342500332983119806774351191171709999618546838059282672706433028235156414693045451089274809456139551439480448673585198526822170120946929057492443583511796672473694826326726113474476418423701271933058071480701722147902852512414633909057461460597035477500579940100886607793556688624250222163304082577571608753818505834437516512272350648040173712808600683196302049633980765580651557214933459947638405441897370971582704019196257521752768187205255254035563386610944634002016133508952700236406747890953664305709047916973080004157092924053844871776462270711324804621169840615587151954925694047122874101727907537630723860044630579796153092499932631330773451577861182848509043142230468348050142608664781692814500147820228285897179959197204873162770865512754042416293799980559388884561064890793983712197419134841701421978084551685026365919963241803986952548201925026254033461594673335897737150302037573573958555914578327673953415214948066571168270908805629906204921100290481022646957561687759735199210673322799026086807746564084339452771171298001593494956291357394543213633070419434340640901854069888124973660471689950974333122734431476210176685444504365873746244745123088518375000042345347718605682217524719210045905266907617277914410481034449466910224441360005882935301938979789363704874590392545407095202826352413663554067530572794704596829862517945544041546661626688100583593677970466791487236953349886166643535631388298496223515318162527486040334024551721670582349662704155974853436589947204120941130491146468958331253435113002352211152648603243162707198845686414665062215695048909385387094890514770756327056726209948130746074364728460435392239415998827611554515269782704577957682682627872806145477020015673222263684908942075264222764453641327767312599974219186260439110189812999185134106694052989535683117307253050881424961886632239469961298688983145954138606448062302392521028584068730486630647541536941231366614586996645499808662954122290270618311356936067271854990385669576351447164750283279902096217337181930015118381036081812808456557568179240223142235830275553516463438037697909239427780161279636921845425065866858366169539343069623453456254137581553313292747484507618408135339899434764321189627722921441797236906524084524099121003509957693094541692706441445688622311817013146724178115146071135446952515733612150718036319894286585105275998897117089845850947798934570438934896082531658048516800323507081437526508933272489474485143858063556748975207938058820624494952547034061114323083778310338847080513002520350398776256193766660496367297851294434629119752939407225612642165509373256085913755544652893610577164895397309838940021289562155830160825301157253822480152880713638784736592584248388987314567507697744435135374288101361037338952841197832003987729583818357147564797462232988278202098272811068661654075360984860722351290093655820666801091597489987372175531417791092772487743887727552300158298774400555491768784705501335432221226273857625359300230216394746761390961219260616885331969904859829519723682501409988657161904279198470550209282359712550411470012705121339942132379130111506051143138672854143773040775625324749143110890162369315734676583227542293900142153488779614497612907255150140001007766566913109159299503040735718467027108633132048158842128533252513389214569944635129564124029151850012062370403659257667910509318802269066745460768781026133322237765043809331426133252814444054714983678757119710762249507836929747663624780199331581029830290184649626454746374225937053106363875780505871835594856843840765780413710877224366524372818061213862201190186938110008133620814532071072379285610488633034228911165894180161702761289336284445577854582231093135043341619264441490153063907371864902834873352416840575011412154151115465540632552355112207372793839680677632133080568485205678331067277631940538612998269207928955166886052109123942738811622106508709746487926773608771405404787971715696216490821075778662057835833066748786812056331364241756342315367760453070161721600418901837504511044844982104181552895183815096112157444491581662544311711368621324718663040691983670657892867130287953284250177230334071774932862944010722714379048157237087116949613203736384903916343724669342455194769635949234445796619048477787416214571042371094601718997423163373817752438048050928946748918596976777783283903802283202308305406193822837968595632326278656066608906228823285261643036578403015508413347319073141660493836865382088455100135140766698948936082448610429193263800126766104488970656983813317725578712689054277877073775239247501343489104481784208712092668958913399845891686599921194478281909434553532187955548630206978320482807890918714270681864739795745487859228505039628984265822088467845670847395794757261396178668407659247164865285794338983016493753320441334008701035204156358762785408738486409434643193638273132629482207693754794404517198581323853997596539456221383397070244014196246591327016456761763398559339503054821311520546785554878230864843692743821216757770402626535064867308974332086641603206852854410385076677586313179940890822122567172832382639157905065846904044839314595310220655588845180363764026241602395076924716702098129778875723525954830536855365983513898860221162023593769247818379059720189948504678287094251903973565046849503455330314387879063318986976653697569240568484902790385936907786060088387415609846188786084324545840437143382477404676375713575238596027307398808453151354688552936313631654566632718825311954211319710067774513823348291358080134697147212550930142074327052258091296478101352599930534967986195552742436101712959262907490819355079595948853089844899739497250365135210615887853670651946747398206410038473381319070742323193921440243465889458174262001919206624893304319542907605529621859633425366764334270782827150002806087434426160256224234707639010076017912064361029496972481179726368989615009737944546622998460772355778925398814125700109791926853774768883282980177645208759082271938029018527368269731250895304616044302208573736759894544555274400253874114576622317830294798043045214542611200944860517874828988859158381887025203243037242522648437825868149199823658162134859574806642770558721707173151726272784092267595285390713228432969565837314444176925853471720302704981440038431091607778834505380829220128081116468674544845881003953159617798815749016287191645471301453199671823859852965824834048595409364293109352114133669904354350876931366851408602483953002458584747420581048558160486849299355090391355289389383441404298447728776180004417150620128569906153225021311046832362659907988598739655602747339120502380880493093963328682791215246085766124119798963760034015442329147842086198397553158341532576005271434930827634326169322641111410224272803435539330610799222554503789197585341354357837100270677442635725413531203385814875498900541657622566184570228185550051156260036955849053674815844709752731782078231001125268205455018224228991958900347892132735699251884445462544106233344402424567610099079912426860601895937648360551038149319130206325730633240989883355143883220288009901254704960681019741030788704593350691976026418111175366897044168180300343569553606654171196659038232614390695815086228208799148407306204738616609010812862917604127806910654992660926526560714677908759800125857846207526739026619448296518892949482017131042237248706777717546578927573567279896836974736264082452396147082604530311727092368188288359450766112523125351862974016816665151922208974796966954300821816621636654394681629684789450842170561874681719993265229467431071050236817388963153516028409811316863750888469017815580637912359033353641674679324294242955617018185783202502193813583834047771349446587640206717459828277220994811057344228325434685272897937083013171485036843179411448330512121838256802551848107854342571701939248399090852589178783597588119435238144180957787677275558080669390425958602829808389291431944859415156216059965070750912080439879372276325142890511371502412275434613359424538845664720671061264819094663246757829584134791848856760016352436304294720437822063969086415177330345394334766139078356921850623027519371372783871967476900973595799983862047122944985430824502444489595445850445109053107802893216720090282802945893749842426516073659615643600607045762505149593945184386449639426618602024826210203026923190631296580435163761465218213020288051386210729643637325710236529861485618124812106250958439864995229345528488513694194590726336087188219894934480194748322389070327019526733525721266976286814116538657793263003479449636634636387174673596288228848317264104213418698973629571669514827407696175166007543986234543151171535260364871554893246826091287349388836566012870190590355495358108626635837903391427206888686429146339217295197976826861282044296636978961723309470822890365324184294242238053698014328643084847276141096232286194353202624592658380431653800195424028700743038740142935439468833449955620620651561119901204331178532335446505048947357268115143707037158850755561931381390264497860081664753313639388212594689239526880699197241316362503319382155997121733970454129934226358855210441309706863079534763781958372474801171187295907942506515894753323816369422942471420150902703643028634281811397616444166051570893153781021978318496503632899533259485605500829381882934238982373535908800989900386256882887393361399945080757244724219478586525175947846245275294258849549487590484473863664812461699656986653108322108287773441697603125415467906898765840599146589266024396940847687696391378474976184428552384931775059122017891841834134262191496147417545249937517445798052930964525926699109540018401949093992603678832429913990546951811520009221339649341256665486160493221000044824623012943857309123118598716234574121580338239915893524963787555687080726213395200739386319304936303283824625072744239229664348309803049653576272361296608866083463609413148632852626532546998846723562078983796141682209078205300797666799298803769313239132095278105425035572960132007970132056857607482650262719784731519581974716338519423147370407472653656406085594551497250676591415863357982195337764176315025304819336070591305055269588477944738667037899535153995822438635148257831685428722996280013996950732061445626545978388358879500447607334694566957623644862786467288809991164776002482376239472521930470574922885412677729815124071608022941523301902970221580278398584984118078709021708441109172478054301117584835676745368769121669458656482641020158905699368031938414001157949711961402439398905160822645612603233536246848110132562073154812287777853158690041270820500951899235629259769985356352796733334970138780405380330708985087256411029659299685129699648233311261241478232791123513364190358153444188790917400263824486104254002606657703063541415580467767846681507825932095511582363364882547559479620856276676548195353798838457453225795843395268142010021554014088310833457482918793571060218627933313921928171943662462900457737454432900549663896758088549136140499596867345589468528042693591013429635898813972571855940683121534396566703551533300861573841185359417771312712475517087234548340677532426856315843986658579016159712037414435608986506369948233404333009568626459138490332374348743766156313748767388140399146014354423538606156669374152932315102212895889067409411837518833366224630148829411944394410092241273042015475677762929541774632884389211343617517729357496696437582995981981505542706545895883570589420601304320162907626210720672305735398875032676323580487562194634016005484809654962424736462817537623353133537493480433493273910564985343613506156791048132232618947934631427834185525072222301033048832019670792746846656126600236120133692039709291250430152420155572058498108247749888061128133408054821990187066583405087980610597023851655246860142180105501883246254732164055150759374742362099243434462063876320842583712242641047308462140870712657648611643225761865347525969811917939139138959900518336540774002931456449479221060811819352062560803843466262683428811017768179039781559100721520136310896749067811222106676861926453832107474697218625645204985639143590082648454169384612131243784193533206678286465894818284682386636407206887509033862480321989566572613057296643003339629205908357252148572360051155555093515660668929279344211265695450120828229785823372663046681779546496152613693692123542667258271206266777768960280716379678027301916050813013485749573192068707144592212025625193694889488818587871413888659649070203802289882703203548389591110232170761425192447537337091533321334857072481826553699634397700384339884843255492368592536882831325971652588035473235537697127425819164530808713422547569263445855187950793564719547231322543724821062290171953725778463758721725822837809612548625339100018137719325364423865113494948219501787820076185246573080420826964371303742887966159447536836051196745942681539793438973393434229198528715766671537330902944811989846767480161182775703393588035912996798456867993136034412149876071281513592490498403069911409324702999654620202567861282654305507370350222500614082553820870138940918001755234834005123515227168327080531580588461779536528527409154051023563864664395129047183279333889149345895235824497646566249852871816233391931003900690084557937582699932939475933772449945457398880242663182018548579461778980019897630412988857663805170087050271015635327579351903308210675936111851612881493975768369441227951487923864682504356031337520870169141741460072747965085507595253157652183642472853050554970397932581502431452457946995613924080940683036431212519129668638765940924177424180623193596033621996435140912777867123215090944972775384838262234445604215678034969806355765806147776701150850271111754084125651594646884046445802360162405041632177410303643236385977650457980814833575438381207294454624845864302464764461514125243578939520063295811689726292688403937049776314875291193885699247289052742596471700052397806494929270142497026845776507870238561858008935898655376836438449446444269705423135486542722710786462631306186497552777403851435283661160441671123423273576600000975295862733820421654742266170486219721915861808301752114708642726169075510674558470069923167837917287944353857979425880658895692897240333936497512507391929153810260415308688100390549025918180461923919645003671164282051689354472016707070091761378335264752072543123247481859323133146835409468964160744467114891905234185653877044124029619150881780198244713420004550995131980179612150596332566509303247022637292747750107780845204277973963137381501244174878600210894500126208797917963685680148878172957572516107403280592423301707669681557740110411848085695583212855525638542697054048360487609693852177875102722110509460452806497040705707881948249641737821320265650012320189665131042470724300464696080593533339770126494474709106747983359733017251434114352152096274918880481163353700938245139640613021973129669694437554737309123991720827415018236423615814168190709223044735644517114572157981705509303360827388616895577402798714257886951809156983912325048781450475426958344707624773512535696032212067830049715435443055984056764308158381701724025212291507227875049219357457622976178392182039223201509317024743488258069458193796182987427244316026979934531434618932990687831561804740247927188891306843008003679918296743746794250402846284853140935262391530735725931864897428873085845532554206010653773267075715731040727063607769387278659166715223953804172525965036364975599343745468162262592198249790701280433037238629844301964953132633498598434240150421999220799588627014889772121618923669296402621939582274849656815504533858701031434556408192972585817429457150767673323252193124442826429084165012525242142893144896422121786896330167535519916299982526629169914736026639859681984278337373925267431227006450928395605024924512914731353801024672741705890476601247877315362365784997970639426299017361327127747796551028627946292308610470876362416739302021442741397567691486155589791963136042769882490103178387801422601214744423726275349713134712655838995056667143286994294811807173497531686307203506192510505543476573311976764416640050198416027696382629845325573511684903051444174444682120305119928921078483201229735210773934736239539776463590332763901104688268379847225629844194877983526780327931196421921363229543889461764019282667923926867975525629969400032588813751643444769421724218302582269022072649701911387462072888573029580433555282763036550245567779629308480683298873095741005236791351018728334741188477840890661954533057180533565312937571091232242866301148036586499593667401935784254199149724467766581181917196456563367815602031442413355179454409241872640910041984170384973352097115406611935096758084837642651885938531975040611546160251734502206181354759642281444234691937903535871599738992044991733621348097978260907052281120615612501598606924085122472140635287001883052252290235871359827058368232162547577007546662424270130363871443595079767825364156636272368051447896433330714932434428252083603411850404248522506919754814148048032467069409414779573095570911846647018508533145539745440255231869084569101280941217301487542752612654864079243770098386501276299492205898648299026858903643316071882711723302134685423452555009088733176546251100630703272778933217289579243146879606153712090737903766038295116997586093884469287981699461210466040989380600837944181335830603231968074342975934510088812373397053335244214078422847781111788328671297430443381293416525286327682047907454846625231438380028562761047118896495276503294439569455107703846477601908067678115650011882007322021124677127672142043240556739706860352519145261142196254471606136835519891514796938359675713064145018301406468090848122260810204305548686972605865573710159595973449370462493555594539813510115546256382185984992475014715429013706463937884126139833831355703860896045549389041642887649855847417358278870888443033477133483329516577801641867313211483732489241391564908848618822789229084900955443396537775626626117918800817385895479656269409444934911278019366505911720802490082372721980641101091076964224387737248499978129809181713325294223388687206407532708654306892287615056888994476553798532473852912406174066840693866573590193338851678069711551903947632087494214935586269011957545993878955666233855804661708131488058884290437333994211976431231818310036793538593459353280032436079128511728252553611244162557313601286518268560702045363289926150222914632759118943095940803611358588924005643336366730991280835173967925530046428570007850274759289729613621044530327375149397765663059393620330345815137011551629265009081559304806067718131522463278906254581609765080641301242027942778708610075178613085441117737258200986933380711774072064010389905020928428610885045579247493643413268874127151661346189820162405964463320697150229406573606000142183823725872688786957017193252469897312371305811568184737740181777929000527333620544035899969313147154270983858591001258922915079521529352017130315970152434475204283853968424686789567824092393180178622487293933156411202513936386254502172222318513693903102161686489295432132169902770405227560620317711698183319367549900713434348146656834918229081766730914971144229788758528601818142198027850408663711152629289754714795705200945052806611750199423221436597078345029020223905514542219467862227152952121212883283567144716021655874316369371547941992658497572113181964064805089838123631719411951335450552931373478207181387460268576941407018522723184815097129346901991516303985554211319023200705248796716671144317407178998270468333600754162101716985413349079587629077023209647240307071752657808830132109657097210324358401859430505040526409509970283140380500194425734945640540791650695224417009853214218965113936648761659083263500201744351793629544684663495470057937137751499496149892485888938452335952757589561964366206343073837532183279374372083270726988013681388637959369132113264156402318626924134076887030406420194762265144849575647371965993551488452160500422901418688766977364128929104127564924260035793738356767164271245558228367455455818705517021471079595484454314888627489357063687210419668650897011924294325787868950986718552357516720814510305020873351905356387609341229264164628903813895655311446084441312214323411243983753219024875138835305521146487738717500751775694109248379039220302217645242190217488250601412057790588409954390120859430588270362660717081057307322843596662939398494357706686153272393926137032036164143185809770955440756964613230508936281278449303376252629935030643266451839526665165976530687109251892114005651325980713296883509138213135799630131964062438372196752101960849394630505841343403480247501857806231503124255416675935696180645430205114901740899516523514573889145386649372773282296201050623572353200417613317029141007817151687318770267036334969777338046034741784492786730533217745149276675447876582434063201119904877755632013092025632822240730984857072303118443209122730262738377802385471700448471583693940804526065712458280137249948395673745185461496054905621832817184906846815407119994110403727309877612237771458043211574569317502247284464955769190462247193248293496328836714858927718729057600681024632335058598429764783494533801194687638216033103438743889383472726162947788038623752817649658885451308179216747815216785271694610208989586790996064575800524984302376151608458605507058638543534082300658712209188128474209375338233646321278968485295930649115893194200678328163068194934305705509344871572714712967006688653831647821597729156690889628603060200121385614846226452952181448805149853151864224326507728144772886085206295835126602818670681342254230762616363531164097580787497132618702573917715737740464255699603715199932938935965634409220266227000850060121620081962792347825930617542513052387766664282357866580483023117094634600280817687757080397767580829734014092490674733482607067629422757452652404432632157605307892710345107381721370462159980484343205306893112736585590644230183319980687240310448527473580548141843452244438491909163592096491556584582429649684136649726142731371721388640810037501622350386285035451985670425658741163535801300570448438121546920927237938334663275170813687842524205981678180549102303590752682089537289314013467752238071622023116871580880397502904611819230220241196738537988411839116239036676368113071119187957803815038827580892031955535517748807564905690729344194635118176026330841792788164954188479803249561515792453009046483325225662917010868068669693905102482063279110292840632165134842601646415392376540287165370748292958686133606145402148800597622995597620020588091076950734081306087493406116746780305623335354115808823558252755338561860919520546508069065304871196563727671879690235296026654018088393589777098586819017976518052461694219169774572188041335601693694105173657716485866440534003099884495781765727944003887014096411525550139114526692783240707253501589384139993409723768885823942319117989573439338838248907566398893303219389721079736508290915743510363707716545467265444330343650296449133296061469374976703600505231021229248647343129151542295981010823566484191460514066184141108699012661215599726383827789264508042717636956144735663768365148397535571607753136461190072565966472908151170139018921882489049266661098769881388920665564092749906150517310538499688678828970500018848993341676012320058394606864537803335197357129526172494560374832556927205391114846385164025569427898304455534738091756707770010818050443258061185484337308668911081985716746057499958097616270594162317626667419678978536404549841836795366632686420388964923345308436699499985152414775641606518173237460213814702483786533305029251170674273608273924736425613354176898974737264612015852737100927930324024358513876987275377047473701505955118698170248593498976981466480860417678620503687394870954687387833839682048155502568255812268403424215399095758985035520778004754866991935444829039355314290849084466201422334266851303289105854652555526459287549273999427477333048620948035960373077550278636339706499346433308604639974726276500963026463162679007355837159883697760876819609130344540429806253839155976722724280009684549499322867272728439655932427384544392020322246482462969410883484441524643096229660279326985285372486375558238298316604865406649887194769051260583103997735241160105697036709075904852693264792337151932252563349232281551230361196200886347089482626523932034741416204689638282161314704871743346235081548194978063091679675413086870574890028200484967796211231113708572309156582388954483672738726613203063093025653457235599670206541393841377771314332431362000279735328108557764919161103267333355720975632832106437996841510149724379083544359411461041667862156039151947483670980143941884949572649551372603491655731481103025768799392400875887196883390540205139392253390496814522267140503813930956178058249483940984558140138242024806862881187375111678984425580390661595124175147264855270832120863280226728978140669500196767522620812028929686464853143076849973202397654089972910166889808486153867805148044718374429683604574364628415231048314934137114492282010572127414116239775054353785077448852833316097509059255375695481212184484488047039407084874001587792500949270141437891843508712886261276108972958181855705050204458239064448468284708758568046211646001143659560626245154202957851543949116754651161468238988002253083741002713585321031659160312704553696129952898890942538599671943801247641513373879369334343424892598020503985922159040951781607873621030682753256835817645727765902861571947811358359338766999544609853456178507508604918374425107245153711708333638536255115927250072798947370696819068136355900249325750762726075858267877069349742850140556795816012038723951472452874484704335447025840698272934326930372955588083978449821490918740462652325500268635979762972317737323356915635995615690487496814410734197705186944948321864979494462815776678986889472306064651632634435646478194706332827634698340541117758922763899923295780629822615034010735732102636589053173684548032240088001540525844135127905392215050076510988604143115356259284195006655589179524983236977363660629411762584584662628106125311232504510766145559771362776872969667917670639709861896688254725085872688169976831814497132957669847070950562565576536680832837185479860357308125206712940025385989120098268841556810311373114386036862867862767295776051497277498154081972342830564742893422449554751184978884334046764629200833292394590696871741016051011686589634473513724206582070977158320473415831127413676030643527070308418659825675393476845527139907868821496620827346173457099210600526934643988333033273715643151712406961648763566396510781436022094539569747417673159557703333161655403347311247015306414894408489852970732740635069349318451620821250713045254980645884388025309398197652011764887209169741360379458167749783859821055486027103198465175151554108172599953394907193025400065799304666756660709272007374597326323178404670596272438488850729287104431216699734343849891925315408920370504503621382441662941189175657394224787811786869848893085745217591139344270773309708055523055822598312761669921884184021219035102270296141993200751295780976190289071786199603478806071631663597984966346246677373818667584162687607481221128252987417865092418715193065083895155742251466439971080881642689029239550403415983192747950753054830687193465722096990975618089088728826630256907736068956947426760898753413068857688903645923807963473499640784869785499477878795306678555985365404160028863257190228928437072583445277797814115430222430668640065730665711548051682480819073291038217696468623773932029395839165402171767978716320224783918908571557572329559601825329047517804250580858623400656966526104538234431067017134844611343899170058370213524786972272094842320704628456439707660567411463261951493580900990246508637121140515227343314721811563078892187886936869998576916668331957014916273141223350237561574180242686498766402296187222585947427874647282769673366231513190826714495794190611141056714858647453746556627669871905320937739530377199522280061152306624578153960506988270114381567170985918094379553447092585940430893935294241901179620847784935252550654093711247910456876045345636789626250866204918992413374781970436311909937777736796902566384764089784221494274569197149901411015485833568325826263731748624250658221231493209031952212579998085263748178360152243068135480871362285859922712145167293913275184886402775332244376058988719702931676840766758147069508188832500376115521692385807414006330799249146089018969620550622720377710289706182889505248392570958817221776600481576442162550815442228528269570372793802398564279614661506115858979253987289778513346217750914436806149549220004345620496374529087585296576590679460678942095552826658186635834902665214929264738805988684818416133576907988122760022185207636445931392139228911013973320301743319311271410188785463208670133119678880772320574180630523179534809681501856963402049866307191437793741434242562665047478131377480066327847810556417304590127257782890632321159622228741792452053568468081094040776995064980296295364577977833255112463399120311516028713164405183190619487368372352380549877756111369012163289699376329129852232661013882852258735705198051604146912801554606814749383496679568787616809796680585772220711889852817397186758615221214349046104288802222814404955057652429115936223551922717004144538141399122102923359535171989664987101302418408287138226922312922597576150977793254896326266646149229118587268793464441318635898050856972506288238619716412341700764361766598313459939532649988859194180592967840086085058946519672018710889851717851976719606779383624274392755585444070777781797334899423504439636141139109856065705406002860844286491692085908172302180229776967747311977751287285339259650029159971467424504099907325361344868894174659185461587466409000402191122209558553563015167217019939681421253365048752498115633728914936393075773689776327991869706677261533475583068549381854537460959604722091170061220258927885579243096750722543369281518170039861798188239340275270667933517195871991210521464771348274824569785195259392666302829699799514401880062954132704156482112012314316407477670861674243568715579353760658992857267514670516853254967964726655994312947508734119319894727689055354882871654928157243213786005363444062375031454268961214976362675048740341118210366236582174837368186844482648900449062238420664804238637305421166464905092140304179963153136180563046862155758156103648769826702753161633142894712855877716420691680182108327305753851132206572015051478452262133571755517150507813149442553345685626525851563069047169393025725810135000777821629234934623427665094119167306369119353666574147142896748687107217859217557217268698791468543036442467705794375992750818656509021070161914097656067792354337364357079010171991163992237920119296709767858650668362811956868203901776132312333465354686290732274694067935479157807655177558472564168258853338382483993318908740655134233217879809811324958364076938874230316013343649008103021442435254527752970079404721164610070658803570182439116819195728978232672169159881743665553631313448977019104287923541560794464911300299337884812360495692149517716156624997419182484937802682193094696331090109268089499284321926716623463598475641390777503923397868568421583421436515688014491433182299580359850912619845318820614529639509716837233399863088238949998193600500491339716844291022614634134532365622381707684997571883486762746425697250710981184720904066941407322029399014603843177730777205765624249914327603509189250428571117921893668600137193746127583945431281543746115113380748392054025389206202224960706212049727612361580602905600471268855528410299800181629764746489240540050460131273487518502028873307975449313940822964381193408988898529771842613837392291506851046528406864873583511978643960758978345935546104351599255185388400553977987673109981475893494258665713326868175449919903603192977095830271775398301925271157397376702239341715267188081152440631151662842136927377111691826712964756159053161536065050408084385781169287132038334923950143809999612039044195462332002685904079198010710711540461113791364790750423119381475705368892382410982015332196465455017498027142271457641115290282943783446478562290374456510456869583376446225837473706692874967317821293137142068537272112111587887749112791198685533769558479823541946850047030111248924983256769068141616365028588683481017290204466026889640498642005122038297144135454893851352993544048199128796705962665612734821824096841561186532206041548498026472293265681644222150945220628902866405800715380809492137669412071539487250217232085328924774627080624755875355524442851481796447526079026625269545533298031314094059829799950401260708334986937391880279836534268460835070365000548924732580343156184902069686155457987207339290395767962432560043752338559209748617403435682632635852929618117852440407004620574299048233148935650507348468601066919564404026948377307163331352365313202306634098156788533779144314303364080395354560600576931132873669105210540063221083940014858416061010175391413790625793878183000192578584668517027351252055952770467769200681740580592662124192782503985731090094743584499295530756920006905293339967439853980258167118321945595439100097889140173193597948540145313003901420668939039447373528856584837638716362775398582160106595384981325477035780540556908521983649380537343432265708272976391112246121166576842613829108852657476071700016309813187643886525965841309762148467337395728149778322742303900071216641205966779809312826207697294955707206091584845316468853666655551325921986064245098501972577025341095355626969819938653147918722927974193240520991177168830618029450904321058392632601941400310764854292757485033136021352219386582080421480564966382889053339677337124592810161653105459761830839771324646195988806462861666097529789904005705467223667175027947542883247068755707545831568602711586533014590752243283631353865405777661182721685491452799267156730516930256462319542436111281140733303343635037726432636995417698106362646436689340618231740646078278752865157652233480251597606982755101281523017673759458458028572225471155659303112411740626689206566941826552510395832832591890384559761363840345382350868436250554315768924160564578943220316225645502934446278996595612414537413116143481437800495395776650982549798046525143479645625783946266892780195961902847649358943001866875967651607223177117264476451852744119941470638391524681953871247315718485772647273250293745059416509384072663655934613102485542814973869234549775242324792497986631201337185678012865300389451940341063193113608389853354061807200551975558802008763521437487528972600337673946617803721337239410959454468861233371307952251263837048687932628024760573796097934712555315798992913723122591248160416757443591270489141570383331869825366515369288108350114348228510410440995692092396206317851964974641687321080452432187696629076092086705134396989264518800475367840538860092840109966999587318207569674503213093602867291595039308819561539134201159857517832121721243457741507384222400829303373672942792252827789043741834609486795447470375366250854037025537223766681499202478582966216610862327340415705654537988674543697645296986267079843876552219271509819202484465317192152861364223527057134843485970968747676939087956873486673138983189227794700125795263110049631914862927032510716501158028587802188417497691303615385425621111012538949451416036968037279340020640540325828246129799442193643555473434008311690828232724916461289312801199772963733457142043573970257769813778418015601501647355806031389793711456912106501685105466363535918310881877291582532962673779818462692664031500258849470153294062343247064933091205730409128558044542852106525642679033200931424866300534397039894776155062417039572675230729470041822359170468498481853229532536171125136620161335131448688731912192910570368946761800733724980976744879212127098830977733595356067056204930047835608312717541394096053743103141202793217751921167061467979444152723763150821096848259934153323091402168926276828860900274829224262382390735203462294128392811640662143782479551496179316619418364311973138621711648256736066710960256955004225179377023379399583623963990797544761378166061120414296993479102192819076369102546280151379466098216074758515303105171527231861415801312363877971997666207755848407731718947427132531598422469251735657737468340131654973783661912616417976677929981379759891831487108032583055677020063429717615166812647339343459575090851219526245449583161222981903500719185866394966244511497829572600922384323874324240803192431726350049931648703171821510788410532486446905922441281556860702598725224919168781501275173454635173080873274049883866290960077363154277917683118402730527367101041452727150893985766708998341997450628003119947352484569016264310612453392623660903341349777864752349534258242713981567384139785968313210622789128504922893526977662584839792267427870753683296319910942255180256122739399673141433336206554368549410320029184703778973203679111282379735329788264157538934663454098176989954648595821163343109526589824086211543517859477533626823013283558444682114605209456928674573615431220256571258486889425458463714948667963389107106871765182760465002386406020357943358598963359124170424160565024700309198314686129344482793085318956642801150125945735632165580842378632568707969491725329253883546686596797403379010893984487908465959150842858533312944840643908280983126104756050509481407468473187041934146353016689814587239134428923857104693878289303825685213415096505328305692075429234260836644425621002986616222068547384049391363882736229221558882459122337764618926424995427803082211938069360632439022111190095170755965806386137283281423022661159935372970082292285112378477551480557213522820112805290808769909278535732438759816733757985188611911889946326224753900924896589595303094722812687131802732541076873778695561415222526686711286155148089538945659622118620790589331704785055672744375239774812925819938718588453180016390926697103619332453664491514573188710729085603014653228390604034455064374594013027298214930719654061008197837619913856566094147189841000456398041021068387814646412920150278182503530482193792667514690164625544942639446985707379243715966194813604923875466901868425702564836983257546448234581281298120510414213530529148184345015264824463702099742436140813022974422166492872646582306375919611383677558298336114096730297766512211300399328190935126872190199275551543463140977590556513833720334984029934471308726267011780894166815422918543514077518927461718919295382850513137652041253836062302114393372778190375072089121528840835818416003146865440156449436068491416142151263072286569863528030811792939662329969380044180612295512710975769275639655212722304224375618146130487891297917030085189776301429813253630125563728296091549277912615238913485489041531480741676058049323506765250013694934748425533920309873865070894558502950327447237313782526211853251777786750137589599976814961956348257043809237816910636499156871496596780357946989453276292656968642126941239403985630228155222110136775328676983077262217397907833542241392816890181565368161807539824046685955787483110733817715222320444042835897323744144451319792589750183140758624775659409783815530879310143511714134235785590523645794106707199318578873869244244097009856628930229602201687622747559139068381376329905127292640143800126695121583932596830490118714574426664587685129618008284616685223075055913009647588406180339760180385546885869883410942319318280712100129271273685028280247920883243018903522508696949975346940899864723089763810673436941829936482006376423894562988442941319027673034098531519352404978096994377224771794526918624703174317015632473987493190965583494727607523459978946157291844229046500689738702899330405144011451093872257640153514436638913808313116205134878225699580653178603283035963223326853750871587999229466403222407389122155127940590970186146554331619777013464983912519623395838660708952203475395649527646190649469357174754766259595079373296589130375776027496163522335770608999101623850815596074174177320413021465150291522000409536720066503571478224989242756127080290786528691524017731900267084122233929534023371680154468801454458889145186097620710900419867805479833390432085146652884832378805749760369304702605332944882784203080790928227211763439579069408777241662191009797069652239218478794282002043246820946985633983737083707392689907275336294061460436330512949956314888672684975321586279326063212602753660452075402947130992143206901869268662246868765238059343831772732068563793935266534042349537766571200022585819236331181325522202845790176910142268578499467689287754612936661890477575817995722164603449377203540144213260655882538043469662717742631772700271469071176879356443324129333983677923299718908784264530562222755372721986624431397816087198959354667626498440551519991157929397010013635683334550185812840373972842916204014555319417995919517816324967272426010158395556300733649727971313429654982615752623144852254957076868731834102947924686951358719518778418540729797318348189229322657500901074771998744713660171140857248042629283331345958412343427845622983022914906451731520260919349027654040366170493441568066580863877494129439916035609966048474582522279111770286664555983210201829015008605202893091857896561685136459948939066402574789254733163413302220510059506052415305701944358199968855080173004119183592146513190153236618213113603773612208065486908270616742721415425837299817426754773265945530106885786635876051891635048111832632207942120012965896343276905180168768590061591554434672531128426485724437323372021939538285190534449887022425805643618521933028940287708618587141160036183929327200058532678722966039224467391940047454977980668327811792027020225265144164848286863199980808896783929345738334356786525873565000953984374454459869654849017195308159433147692993606645141540540277172213232026263498838630977444923002106649562203015958960828353735461101041862223309367450945312685714978105884709168960771088012286098709155151131870166761125551210743017387947908146098726274232294709171914318919154985335317704573974862613589896984334525171028839609293709228553617378167365954300402124301338747269554630003939106339709413338290733198770652045639239871741576863590691015854120017476800055552125311654408082785699742374543539505217637235599265403604878170104763940708104283270133485175248507667343103363603610575315829310472589156604267562031432746389488490506228815770095837183959643574807332174951894324877987350911249920919501330936472422447183364573594701414625314787285463456407043928650947449221084633026798124324448518657743538619874990360480369061577001206547317951089201900001633351458943665106389535572122730974862505041591705129090736774674043406569476756646638801541978264628808987156738033528578985068275443924057659641886658693903322059742698453602199648640346654459451934906172881691055340637635307120778927965865363487704885415226840536860474736415686209246160725173960402047937413938456465829655442515416882014977682808131091811416102049332703751421093442567008490399730969805234722968944999912656854059582393796818111666343398679376034982543032517261155766236330004970564470000338484783516766800641166734927371965291506133853947548590882851837375040323656385152981882076448712409592926134192240549182193186669911621886513318650283510402507547909708723016779232794973137461841154720433832361232015722268616931140279435277919168173326664220706489162706201564766443220104748497830046603076381341271571488415148375132904909086134290041270910106529521900924278645410723949474168250394033036385725764833636225355187062780279454555012260384994476405511610816089669496515904031677540991808222479344711152567898293262973328499614710196742886939064392008851728912813795082674544189983093712313294403902984034520972653928695915458124915774063568572765560884727469088002577594476449139940981994612963747947295606463349576878878383184126953186056026404723501469914931255128997657405062874127513417672524440942822054895036339334503849806679109870624046880173105489426874717084917867195872861812808156030319717479302633762949143177109122067677203305253278440040041120221252540066906270299295494594916339352148232985320591894553767967905824381755246282889548700539267201784562203143369171685621784585628513863258713245728544043679165285465823300999511558439887578725641114242649013571297492042243547126482977803695987561460771753921877269124852183971060700830668226644262544725152873052686700126450703874750410347293663129446469339510382792789264123673350007809625920361857573185461032706229932132660429902149500596728556438104546406736674538572723992804030667184780095880417921341940681901165530458133162472970036688193064783809076520206770020890550976579435966333467855178895711937202089639588074567101586502025543069828179645484281503671774263435748559937330373667986290965493152127622020969240121774876187731319708327900891872633956018877418530293301507235155185470152922966724864167519091201608361400708699583406173978843423638210679622837430744516586591185796732553559321657693639572130154345885231170973209742400690994221108914509342994749742291455374101018548335069157179153023910633781504422453172518026162602117289533028148383700238847103727231438828126549863810975365313466394540004928912279208316978750804906342999610490170246436259750585105362875407550915210647548009164304857269512823502914902680543031620320438868598279332814684699796164234396891266463029530554431439449674437814639586356228000625225919015687123189076991447911814822055016754625350969588883375114109180243644833137717530352829792308123846580562878783471165457111493430588879024765749830549216096305715263778156307905164631124916626197535830381577726410095335198714367450292958640766740207497772321002783309964345491787541127256284839164576471426746128334999702784533241181729455300962940988176112997744004316794211742683346144307728530011519680438091547562861123410956054832912840304408148340131274404094085025207721601267115149005027503551217082170279862431859575169315866824571346071286464494557980747465057394707509214756301848268849009344745204063218742459508970401882584474425393087423092610409888477606084792502114227228679507744842267285515728672231173393359291935677524363169254552488613933477444562932960315292297409976379979908293591411117381594183661095755304500290052370040916389583054506513053269642965994359996641630441880003507284937448819840816249397106201140430043766938011107469187371017584975311939883059970349056924461647553029484474588090363308623911820386184214930312823490801175986805479899689864147701126980308920826958169169421784565070233605151412885717570517581484183981703489543045472762199183329510428136930277346631455492285496897789588125960913898670572070716099000946548194814618388287912197700726454651490036526963108363413294019240926617381410770597833738871238709124039446596904067910623116648619513282057486806997898012955069406286972662115271443565262343500622693886315840939237771779660594426223072948714653593412164233140105459292653587886332352136359392224027184404886179367483334903622895976101518648455955948497290413670186970593617235537045166531217807281926014061109231161011174051664679481576967951009170626387282038172345536468785211352388211047829417653922912230327562327491610277041655199953833823576184743628210427514816234458683963879974276019496711511613793912564637501737345344220486198181153545784287357382177279528282966958118838888113042187232007642426802287250705465701944930115957297514580346878453221419500325473790291097188220046013670958786448028496162307649779767656775616674642965816411826514598540535649787989942950110826175988639597933634919183104741263241873424034035712173428165259754379303563984420237056023086003555933458648714746883418294543965374460628452544030735715133534484999777761388831520312051401685671550999867352243615264504256492728160088090513121564597287639911877321648146059835251435016838520787251828223452252031270326599969193838866768625604232776702995991837060687267719558615162124568441120697365797476390092711950856707970423413997759979871396174615240534200123348194221075533373686021845579762031621241330263283783059664176169065190701081191538409443784420531818593685132374498184501530634199020979593355281336329345412706594999589201515785360997026851184466446865961574928494623006451795192482321036825020123345433205486977491648837112774259420297317219585743004760332126363501026818928361307179232425131696020936260515588650416094995843519708284435841861258676216905471611711097880846145056297581859076658246411146295995628319169388550990878228236903226437496402511994693775930928114244404330449090984670823763835663731073665454123368984045355981883088626451786013723486156188825878249320643948357415472710592867529647555251992073730825632719278251303103009843877400752956870856906332184529441990898589514160055358934682710481847058245965074682614735210676087984238595837714874474829432672997906953326421939276660856260996379867960581404221995631123095009775458706728717610603361734403634343120499040913432746374659804062691380601436233385696140773833356558446200237467608182679889902495108328503696258848844884397946835270364648743262918909153230850407740929275068409410480514427964770874972758832041662440979331253759800175546690525205230783408981827677401125170076459250719737022055855305964753741513931300020381342160544565734697978638884544609109389925096259630089292827663893474739358733828530330705577328457531230976491527103078918407613442663634135034269293655555882487539527848030174947565747781029763394281363826410223461294100843267979326458213463021229754292332020857579556842363543510508780244701316694288603351000514808368841332439808871956453526178013649145958364056172379404691236176368677555602386195593854547006601200247178101181146285276466562401642315459801175304437148390951105178960172394010541207289871735197744494918808327563935446149054864282986713923409976762863657791203085263581786274469693085549844073726787391271244984126445908781727714789828599811393323254225561577729845814078236277808589505030552598272688724040229345104482096709070204181047662466164994946030700404500080453365588886737474150971961315479003625223227465722806209705337180124470905551678722328176210553819990581404015156323931758046591816923110524596683973695607646036197341087644840931549736259481040773478253657137019901471759770853910200336277560997781022541455662431757178689737139449592155013356831499096117594226836921300795206926109290165172892359532930037815623379493879055362565965214614586764322241570899527127810351845501810409535261087749850872093985702063135098430425608662601125698895556813481416393710503802549149434722903964310603323440194846370924425233950371213046923698734222697553733607923569065003700841924623006490325076538443659226861349041820710349674385556385895122514331748967718403124585937414819802575641015810777782599253970685532349300461556166466901022812440875204402961678823698421817297058244656678507596423741090299915449327118672620558452247455790039855534226704370619094388640290268664565204950051814141453167311045094765745797804895484384294724187304842803858514558058250208841248587661146923206655812816232587380161220538004681128081755663670552577136113073438713968281393609554289252627881028534091701018011788179082269102486029869215498586263048148965883466274415132997088938569343593512445556110604046797935997539939433676768769718404065451008847442501424505794523739215092915641573382385522648506437275364955338505357220177687473647641470651283843691155747798846569104479720138874392747405021177769882287487058435187040180745937008461060788827932988579005842442437541427671172707127713494652054779475247653423581803318057860767218584953181072693792623656654279512249527968568848618922055735643786755517840806419806639908722249707875136972628878063401474838085868413454423621341911637166162598610426895050791520290221819077604286786003027446634171301714781882642292394464032517466847969896368234945911084041922449392729212119527243723348809744775671396000074584369333691285410849441947219657933231461471062044291108522139859264686860600632070718998226135405466043496111947003952898924779610709618046739433586665980321787391058510116089211956761310702369728998533490050217202991458392125064477577456827582147213955672145292766977684278311749767864687715851383181057606773277070482404603641044380327188715676121815868611312259954448464579020285712635073636144022339159443655793230594988098336386990493556029943240064274607647103352524448648498027140623549977342098289385215183945704882622699684699451274382543468395213000432746779075542746696262638301912614073873439434442761143734174260958714757891479166808239384999465427903733282222803377817980708813933243546003870158146779354408869044806551760019593594651732234457814222513376855371222649666050994013761979608067985493660940044739714507470676722357323905635369623629139181823079640383541193062848245861294500240225085708513557589787177727433663742104811179982649179824179798726848337432350227149273409598385181110789860429105906109189460209633640362228037759643845848189100393845311845789004256294829204984386046317103487298364101731311476692330647838582993442383209514633141024552466214369710714705978522608785436733957594224482948853514034259525984710401032429614232857714132510090507589185815002894799961072933425808529060938408073183379164219283319542967275442859017623251105733508192494566632908888902370959937987025524462542692798886733443536913115232683237412644622430186072796012810941860853669212624033326440944321033637000030819689888557051223880046685482948112655145003447965021194306005927623723414259581349536772451209657383491474477901303386125807378342428094967559559292507613346503445918133229208633576340680957475849117587054227430511539069870099164877140727085714610619742062922649741692229264951448205557242394795897151254755247291467583958461993141116919268659499180923971531982166809867714134687910040637965042282400772532179764828823918851420961105083553003251987298847142037109608180621438596656622110298537868196958490169512051656892226419086157836584272198249940298606821573194746151798536024854355716602471500953819632906727500290541613575083353549985521861871497994642912668897981474361269484804506171860729076748637180391242669759866422720679615602254141636320990558148927470746451642534971047809157423136640190587364814318001182659410460528050045669262678133254780036839015903236576706279623223182400406571590408053073218624082996482472176639492651883059951001190771449792574632790651745738221522946215092540637424480437199606909838597700889464729473368607513057978479430363348171941194329601680111088705125814520800975896667922061619243064235378799789789400720357114281030195065668168677842814874953860713834543209059720167738897129870805124351695165478896668936240601112446129669313132048446422713707210543844510867401531388523572061918939384548317403705451050952184390569309847305669752349525149631200087828367000013701135301557965247669956286009901090102237503975971369819028879606453712956465845963132568606900658829031004775337219397772349156200110048777592256252931320620254823850520240753090829514023725110496259190644545991053908388769933259396034095655463097834520022383346674836424446870971151010804797451034617824184990997819537140163572185017935340183936495488238830933975893514232481823402513737781541221956421936288503935798457398110907470153057004711879801857939500320357040473298324660548066951528858156194565290642805618722110140643960625743955373180528142197863484722058739247271404692730998768917418668439944258072045456890248630456096988986847318295399219142289613540187873439099147440155424652091103835343593256798336595485260210947417346194903034527631285319300328500596057772457694188462967757708544467646839662021109806588884375892950643380702722875130233216674203262399474384970253909821039049833742203317156807153776857934509913867561596204249093895862486943785201592808499631307591449466729018778779645467958408045298494846300543790582530988613811318966773537226212496978796594149023070625226756720265027126249955975165553619694609572541836938675023598075673544315453312899792193247632156739280092423136706212190493800696546940614318694269776371271050886759564364390174195939328036329448750703743605147224969367417334930938474800687898078623678265818257200026024243372216239499704018311189039007567169139247754622643396246695981441847644726423236730705551201868448387165755917249438110822792720074420897076160841912154966176190647611650678034001722810552167818772520561011140171461476937760571639153248875657420401673628636125530827696751252278659136821937995699161806843091091427900070031965446807519371772007221513272959874832345537501707225421780243221269145725662969392601975898451349745270631683145447502631053467406953939702551599711253851827251076576275155088683513053753748982857267373921222447385779552531339085610890261375967239969600517909784670038464348449670317456956246287872850064980881669330110169981786540032049297452219401570018289364916521622470838499689788028429142313692279842623448835990079071028074847840615617041655058030757013047780297982561041074152697579464931816371138635557664793835273724526989536241314890417663510035375425484070066772398245196775259152490323888172186426342300997189325225026496600289644504494321291050487673236098702203639949960854440661311279725601428184352549600467480209136438964518559317578141650419390252161155185458242688896884374331510857381305756829757222964383299964935904129854757082760989268191728918148641272180632430552302976828856170661990939175616578495805209662356599112127431316049092035748038381691112595140828737808417611574546391357645497734553515451265244937967894463055869952828287853134401205325782436475430666192832383489819237988311521534934239901946936604532932068056375609927231553277489772790233955437085116563972942359278217096842108547130503185457651783736398967998180617570079637853857607160032858774261677946543315663743616443493859838080535270136532644166861903285622403337599902228687400642950242764195288085655863611618013561380721561804522674093325067494245875743705194138835574953005935401290078075503459110762149483274773757637790155975996653943123396516567093957090552061413768346169171108963094812951315805223413275475695989829486002050166256295036762919624351491909935631776560302988463799934249019422528405904649839505660646045412213268928691467733301361955988971030990718935167251789335130932685377406049957312667151014670574430903053209870230735609301339951209200317049413379026068176394992551093146128648595372985132301836412739058932064869830452172581156534261934687113008275272074836440146982272098972424438478497737516945066177903195943072507385746267945622977254413446982244685424313071691580544152048320905289960288372523245995413514337505400888564463541263535755177053746926572184589714289623779472855043875762582871574974784941645168250693902213903862593398401091311775762507210527927074783319296214451080669380223391827186007470223276498612194220187215626249488162668461031901848167845415957093650514887135003341164705618387537538122852021482718403047571255052662167817270856853025855878322019736451591081617498852564787112045370920856417272403961468192100937148520845978722795448720951196425661034685367291306187647620140255762224687504484016004395829881573053122549152218787612262342094668593114513001014654769535314924325639013646619093399209607775924498275540388996553266946862409157119181191471282462847817336566142701124461899350653903834938904068753290391313140164482309719602211985899832302771242696262957707681282490871198031074380347420401511159774516868684746124012031819020892031998557324204603615495273667108662278040865725207043597920882884733263129253414563572525564804342489374793078220576891864792321073505940683435161299992758392021537604420265839130190814458319277193681863397705947612149978593152896004182605021714934956643970405750384819032947131754039364483871275148273761298409921313328301726945245751689941826098869683037620775659471351905010221148234427594080469191228926303994590513693751678146643161702366645983371459897036593340988271569053640699275922626095306664784186862711340855807502685161975968540170681230077863389309998097722024629241560499969510550358597109239715165631376959326435226150114492112322976464941329339206059334835364907360330459152090124736107906871787595308044235690228515416056200472198688213772596459354734343086251711422158333669134727620389333260162952076534993440346582090157819634728242771732192295296123391179271565672028311763530081626438511748990010068279364082742595884178994059908712806790288141577717081571259596661559202030788081588275371321867110045228405460679530495942372278923877959538338077209565052267951587054708760634752775870016478840577033597700328707765413109772313719737190006333434320515237412012884566722857574229016609123675367658003656093308956905403167645735966820399398320681068824486847729712550173392093477391139577690613813667793966072703153351477641932396939147139900214024870828252786882184271903407641482469941325121011905010095302781395254420845778301656207039120076955467163661157916044855928794832193410414866337102754692785816037219487042425468005624278574500605532239502407365254107421576627525896401576171600856716094337364840001022850746434232930500912995435958246790010517345940143592338640481563203921303687187434701961666206488142380249020409582870941964643676024931126649320663156032320631263634472226006311447903751892084387529667575452094369345099531382157228707405874514786368384939138698888333087699446478775541844590091321822194467133066622734205525158548359837424967020187489400138553437016569534262469983538382545033756583685624775573819524367659851189472757405241769349593570548663369987315658899342039789181001755590590718397670310676481779049262450920584199766527212445076408508511450781527824803991744554594511420463594095416366782350234576870484738437339703666097863052795247019676458098649137254811448855850917688037304488130492925904638469816248760477180042771509969030252758687409890269066526999194540443448727959645452738003526465782392927988720587300065079656912155533014189576218786687341715669257062598188162785917812815301319294760095763709050229520481264706867539943236170974634927562575429101294855488368498518845381723563717464013142874051408735727099811817788387890615614232579517312032217714299162669326518953437946241196163557677666902866693115447726962252004467882001684044240692491944437819700275325685305417956399835055723560378591826762491598242869867699648701612715880521109088746469081198799937362846912257761458967319179878014332021218349455806355504255321306089975998243719695776823197129021909132357123889710465904654840357985828700144716829398538910806295274706458151717827283697173403725241589344771931384625178676606416041379333840755334577843959937230527199676865690575914216364692599601279499135303640765354722702055254071890360659885770065541895292429039549917559007176927414423973849137208111856580834958483189277600140680216734388115935730910618836035323457645068373805436578806068959738448310591890833169062214864328836778323773787283802479671448264880349977243708867858167112453429035516127982488438016233013487460379554522372254167724642777420379763390841938581852047909921360236089997242636310484338807636294611534297022490998234607447269531195191170208210893994489705160213371522659291030811406742177902450521679872289330441872275313265486133748100500295295581790671145040667308703183429776191120079965666281961041628839088006954888783373598252422948222812092682226417327872359222587232831790825829743301589993611384333060446445022811291553204572447153473905134460910092287358532889497993351818876875112654595306882509502864776053289507381531893072127292074877611951116599487617721545801762192738910292216881120879511744633114584008975506085675735686797869869958711568727981458914663625667211765370316985659368473240757193508558331876611754912453991261286892960937573938146737321365282282136702775232498118756107684030701481868492726822527026127228862372878495589922393334993679342682356830700654878700529699512897991078147336962801837965245290520942863559569372410339554550579931064354475047826120239450076685529214478783327657542900709186995891107609241520705256852877037482551109455745684287003900533698044237355658323456453057881983114370454422411355332315552682433087977272839074957804511252716537671387540485820873056111851038984560971607154958759973603076988064031761984427122451927599530456387964668327324752997206645924399084714426753402851267448802494944041909417842776317156879333463652978598673916158910408821027817075489058898761906991960898352952033829601789334864739592113529741204545545001470070739398369463499162543710229283635759294041247996307541256632540080934448037340444912676604334333686222654272226029444313714068936433764855559200086147759086520258864151865610463825385047227573818197626863968416023979919086084110316675154339224781704138902399971172592129215816388425748278846066748835766723889708722550692333836497601098841790071755422716811851852002702144179814289347452252219126907290189157955668288459918994029425595543884911103400619134880288936222122200231346424033694697539638426377694981006504027318311263667588717124062218622105328512898318190535131458738589080685618614651018468857884335973015466709591671379206879879600818275829371986287170087514361730572804922371666700314576947154180863270371430296483169978806147480899160453251931826838612415192486847531972772884700012801673739115632641457868078114484536992219961647592975238041138395958840906081205540915154299649633665730569131146744750361213910759042464617813828937249060694134102453146445755916176025604017461677996263144783590755075032051242915725759232271395087259348966503053359361948566984643875004215313822989591437441370547257901915474506874308161632547904906376773721167669630509762801600415750479214791254190509507023565282597308034869354535068260577143282981595533415847781806643803803638149048651622188852789133175785063613480966439665928677638039080824482849480656010347569650816564945825655080525310426761174256944318638631436443474961806792643339670360841123117257498971476622260351629698784886948759147549399581091246836335398773196518990295734035157884541057785252594864816423673732806490461064891300819277840315731826670005370548427119317411495549147298005100611015561124467455846038586024875174051326687456580407888484202762197698975328602204233878394341257831980430179543175191086861198675296806513056217118433307508417264153518432328505671203048600254163522177904656137360288970850152634628161124724507892410328065065372829248872598545192565958542435592809129003350613543983348721651558066259196714170010280800116811683912185712532565139632093247050614905906256967467675679894466765012507097501418684061396350739554182477943677304908607419410630025109480200458814744084263796299022684093997063718494995047953119498920736003660291073731581420208283714008137394531688522376500119102227501683351590398089985686427362008259730213946948855641943679448149943610754099606980467275539270052490939047518107121523377249902725083147439076419985346245205328966691986433398852181368510041251954407831823436749984841939180105680250031988125319367095488026588415977735171909957000323785002635802547773476351596886468930239159174853279959584177301553584870906241442126340159025549518132841636132269908605422551724978161377258340689467290367155175771431172005715155095538038497567536014755020811694737012621330416530373332878458409721649140594371558907565812515202753813773578319938984631525894906987433434915890910351214873114321022531692339206649305831356901152197903804126178477448937106140447967673822496575603255645376242887480879913882652876926085303253548770336688759283030970372468479583655717084075336310618986491865181696390849926910396514014143381765882574651853454052840586613497584516991913429056761032245159100838679783693682654131415444090872025869208807872912621389686980979122280722321957327057498478180333934883971941208280192672769676092007698964076532991416635816841613530851105448899858024695223770340564451781778070675141273916443067042031315051591505293262905681505963647222216593493229240477787845644735172381409410181100634687191658348239121742178773637639360033640919573968445468441318650580506467621007636384529943306601670690552142291126212481292689779616570687670945321552412126059912903607317935244669842315863512029377963964738484677062660053742651203939841774865733457697055417681675834464286276745823647803894139951996145312023926901088314509604676525557792594110508639579340380663705786853525709897733922125812946075184722247148520720699941454856038032328545485162297203399127580858862152280909097710801204473006724738943131216361140798973964846905006873583575802116526397384486804430359778355951543513992214075902496206848528134419867633781236408545448198289512202303374418370975353559785029184349597757597219438360837926919149774641582605118871997305810411604021962199202726659022854738935881309085565348483497650580498342664839600184629545262072916589480986439100090633297576766337540948361411076226728136400420825794353461610155091824316484473768469044319336793382050837034430504132834608010874177944807226010313941815950800859628886679170689451528648991589921393709244393073060036054229534148883795582599396214758290557692196116895155733929861953353588081868819396955374543313183158743466180746385999226935325209205697696253622823848518815866666107726369206885706390352238138356112475166387858616526613484861514569536468314087079089777207716944133191652066397113046859884575747067223058293150769715354692317882367263761399511243225852816899073320880190801235882621903344713229617657420136922992798635873889572530934212563363858156952470865004176965949450842935314922312262776964751229522870685881037924705608372131066752908250970773879463047445042624360390589479693004662510658231442326573595476870756239306308496901754403945679555327382046299358406844084513331428497357534376590389224997972225617363967716480383365696626151141368595401147945458630022314557706854170740430128012212699020043498566153101494633641775070226520620900996234214364293364507925246875191251754507701319018924393047548691408740648985185796735888016796406840959300061021390118373029812250912780540709648479835456228376847606705625428310732832075743436990193557521818771157012489849106682619263928757860394377313621631397129177497251245973388618745057488937190502615566268482804377728371358062569200543716917256391523974924283618668042723715363986307057045369589721320239969985250998432078680923792611029051450079043826025524202507224736007542790449080387028741117037154331816249605637030526346140290069055807158432965017632521552272900178019457747055666134683672317576724464070356626648774212510715674782791631825248167376177380058874728998228790981860524654268036012329841905713154818698505628707374017911285946587943037031067651009317547110590564994120764728675834100200543941088738263712876227157257137320717380455992310111111701181284533371959538848746952177047298616046534291899851898639236058950756548468061982878595678256584752667287967496970063761761827552677226986646175275425384259652104968121498431445997687794221400496029888872364434520849933060022215703267192617186831985605489158167865349750421908140636383553943959308771110657491406740988931317983119401156900014675223173860470109493476551407324182784590679152083327343286792038318564205536950478144955581967590741198384041539135433795630507238203205701130981703592410830737854863559893011794109541979227806542079242214768898658795710732551870006785576126152032989376894574785522055061804440973850806048702371524140373392805928814192307596115500990869515409112532177061216400569580558675345153290419675183745715620237275184801789537934146883210829188159598062562179872849026150156129031727747128676859113599712587596202883405970013075067858098075959629777196119218220045315029376313719290481024330858946206115602052070996679898068307089638180102956586494197458189416587540435174707755888951409055508430024545831991761848673720650917144623734980758724823368140653356464233984464724756747540723674550724885634804490728009491307666857152446396984084179153335684232087655451208578052271333713285773128725842828568442042197018105289574717142466018053693649873329606770205475709956136304886496884333199441022080479131408683799555474920026836837942571807719694102935836508358259455162148948825333173840056769975589102885785556592815582375815937159752201505856648780783494042660430043247470541205893300471558256239619350518112630310718240226194301571959308624236833089943883703887543198454023753685989551490430102706337323369386234652444406524964192286158149491560358371210593818920278078034883407938725980364755017580521479848254400000486866042772472151345401461462830621881111862562875213050860764798589679661826778798837678549258342426692433830882290423408238414114422445116683221486148753394938151599357067840818100264214384319321194145736578193558141264954747511253401347147454504906762968635226615556728058901447506651376559968593059159840345004737583953871482189987259630553583938067028831029730131670188717394002712930989626331841807273061359688618949187152789594021524626123548293283723764648321845183984640157133203322101952950543839552641966581572294563600503637890890976322193200562180274197687663726586454550309734127843881868698694450800378983817490768032218432165426281265162671361512447456195160979819539751891978525357548178420634891004869750830170558163488877524217549834749035516263476503656055566258773242151966984863107106262604562541139146979440129559929290040670727939197127173872253964428009700786136625788055380921131184114673208332481166067930420858245676688327859290610122387292533508103810150651385757403392606552785394335132930198302006012394458819827434597388368729427527457455572201543055912546417583135492130648536244996850007311221696710404040688412040245483112221839976557530085171809455918578491753982887874597694024227663179022587414128219063574369003633032776177815908733586890695940885201344146075409307840140696030466247600479671633468841392006260814167925247571181081407871188988043008556236966194787088778700036240940678753347413731219197856539313727414669170178084394129367242619616423630682101141236692123577852496417172522784975018992253691942141940451484467738961747808207836269999588714728824554464053518971746138661718268163161798871359158957293334738436117411092836308933314166891338331361792430046924809466711725561956365087850415660350191820008641938525732666157354832078942042957695153610951735557523896215108641842672163878633096505876357552008831050510522987466339152763472706587985419933641548729899763818495829370014660722304957611441843050371231993639363307802609230100056277019306103711012809751932724429954712777982552922670837890688367106957984216912184264598034261399539471043832791830548553234972314251336867042740494660506540895882781087158522716477819861675215869067745457734355005328144896712875259799231210178456811768789242553693292064287526601606040270349772962340012870651930395035342084578279264194750647641443095384498438276353144256128071761783067869024510891707433972250252965842865105480847159187553057519813421145740574062186573930779515027374355081786534952447153370612905784679438345418386666758445578239222171575374632311566457461620715340047326290336936873312743315967792062514736059380406599354535548497434230803119997690489624459611441602994282220779715090443749642394275109706196194470100626111923996046251306122617007162297412330581893071614759138426074732075618251381184913771124011147327752535177767070841819364211367908465379979705062027848169075946455215753184074735936459927288973410056240659920842095551378147848107290645959879780548960586040697626734929950904348782465590881498504603771668622781618092365226865430511821863675693208852160949058097847532860441708283131284122931724593716502585306207543468476455102300542826843974695144209771622684045460011604591921480679821683605713962814473803474010132826010024847903168207539549325795442544865424527248098032687800063662259170135660583433436021147670307804789641172674683453881661176727289373213652189373801904445671450020496547706181714800686519932829232757798181203315279355055574356425965326285490096119691358650097215422338832064069320989523725575677306252741145134674513618835008915957411397828961569853725415294982171083854570323818669885587884088567623442837941408622487161622195051304094034289761282246288588454384060130224880868591490803113457812626469188304694700772424204282271007326685375198961673580203063825846487450974638213283618376911883153396358642207173039459065110003376157286014699941885459149251351244208986977044827747716461839128271828921404581890357305545313816452817161634910278676442701022222385500669860604864518915164853140940463432036615780323035130619578106753908820605292971692923941895988597910950095023024922254062515932005339487393138372821233894196509022398731124262673606800913366435398721658089697278576423041024559828838761171210244450628551071238183601395952399885458193249337307547399197357773014165101655439036907407078129734592765628035561252198192010021405240955378726710672142202000563009595844972977655877633295699535750559864909845925428860176355694992276496786227709642487955418963467854396722889853309988472799270581098578415043085179923532704289852681914052967534649300459201849526203859971017532833592953565593149408697504368538298279511337517217261111696400776985153395266587709686105379392084819880896673267498417242692703651563715754270647520922418172383452325098639731419924922986040036325084220092121361198351821336739486294223398027672715519532665118565538312121663442938863491391263087039935551369577163040363007834582526354002569531484205667448313274175799478071570111462712206714446745771282121503938752186022492529623529243964737920383084125607061090590305792601224457642970566817335532238500790973065478366843047762573124917510274595459119640280762324420434399338772510427500128847552341155508424640612611140963952764921698836277386124567376000098706766296076235371294840449617671505134361199079398323260972733005037490416791777251685767821216654975463797573730395949366745544833552394905476621525923231685746773748427534398416612964854615053546501398199873536832227577268614480247423293151066287675552932377320876503669471992524393885374393880105259820007079083563406094255505608568416097922172198861709365475924581112696693515806225009650443352471987117689118952729256930162338965154559489433592820938816173041342021132827030356062829818974141485612300281883041476901831590123531462315284486478880114660892610175909914061487829941415760857645254258796748554956176988615125532111126491570475882334907785590398106834661170837467734453261575148450156393970548965249475657615987690540392368878410604581544334972852613155135835974235268422247434080884431027859826886552766263664126219423305712261633845798419527642722184038959941245595394001974758055102671126478112893039581962323383048982374695694422937983933997444938552261994109178855642623081420364736944907228989367944450780916580565891960987998016109871362303672864430830341506265539178091880247140247793509204510941979566960587962380348080425646834424058032615866851926679796157809334354064361480383945489883627162125676726713000630029371611332069645303299815429228363196705659622417250650840772125418363348644808930392969205026749614930308308595629454467036767435311291624980845997838514084813502774804610188293386358869673090740949464739169661549794717417838713750341282079839790992195070106282115125579560495223409633107867881346828679171266831609945369364090958976824907900177820883755346040094432963555417808150997217058540700980958186245604111993996589516900692091372678331975318302502423783190469173897628935531889086407778508079717720433404694951514259669613102299615034746474847297281704724133659123011227038033752742046591635051574982279006589942423153682180552927453253158944000031633617775344739648504531836789181506349643595415277128686470906913237887621258807700429665689911604965328314196229498840169366128312609322900283540633189519739814156181761856326087241497266463201197744791690147589526453590424897042271519758361973321285143900460767556283915789564784795781758014848343615445476340298574033049351906424320686631231838896150467732944809986623302429021127016923597824695787227949406506020484033657367257658616374303294095530791896737912737687243837889158150476362721512793681593684547547713549684840640354383250335217304240141672189609544261609949502199877467443135274317141573869234945053043378596970040618901378952579884125580292972959098132201287060155037995693361602984869785852257582566303534068244736223962503498651731383071275899269281342145410052454680988209727552808205977643933971042696288246070789273840581555027390272487416028724764485811847990193302400342082380512686703262070104003456515489423410226114600852710684797354777336912542104425466594762938970933512980449812629321195025335596093166887833347572880497257995870640209201524101262982176089805807052069225614637926499680984506064219644996516417050637223387441205582383605485198232442952424494980437121490616568789179626817057247674884007494801544873341730930137363755792690409753005322018765169101596112757722787352944386552811367420605367903083765383752818055363692826497326603598628128700695225840449121722885381632422805949702535925375117081007833102113600419613635174165457932618987235428387917118899578651788306245783303790179729611917967696470345997257639504132195620868621854620137204601766936555600876501871292771209836639268477585791858357166899114599200500823574629604997286226369257427595277948012172153799085211382907934632559248407963273936870706492190548063082098582614789721741822944903926952111156503216293720645415556970760218809825884965858894434510912436551901476092274968784238960803648958837621651339860444579078549376640702909904709396078193771182085591797815279982106099199589337471197644997444426033298179721509091353100914883843733867321430648006657684873419665863687963178141764961839670184939851011714155750681570858959378165249019005662700720510847406579966077287583761619881991501862704522335137298679825015885320946398166770998091043970022163661231565437571294307805145552957677824775679204578633867101940533526390139585021053092408829121949498261521288367941420882021890807531620213941003682535103127944386046322171118630947571668444996912354049711795921542323529633516033372474994281423436227524440730235355093166387849714256012261549455688639346320986562905937013893260015079882341852239056686866980216784667396721692369694746775556069545491644326108437160238126748468246921712859415148452558493382832706328372738633138475056047726069667404293276422734548113553411438038269233513801978921661509971762065391760297470328196811421213075299860827926696986557233547737622314943936692253230841681042808436807214401671343693650509689718219607070216343184302202069507806250795567272073428805790097552039422211114264422498781891699861515292781467076311469205097251288370686873947703663846504157351651276059627262090395645053028592081246067185696965458867341907171984439038414907829959771074118089534562847524805757691402316907749740083557138313199108143615780281905733917155161543245243191831397895186631841056792018994180426727568948640841335880719328328821478768665217752992879356709233176275634460567340215555141116841079945480207831010690354623526942473556959850531743894612563252495434446169529447768531730754017053702415510117131550045389272128856504370355522937906714552252379367852773232330143184776092791612321356771296129246930681314358275697746382370762383552092508314178728036619524229760176972561021816894986931024722263524344003769974005892913709264613718972260842890245133650790008962435144323659025724897771331267070307492650781300190514899621881797884314950786331658204337197249025022372099673421194765118897961894333925152225124738700656498791129254897811045711770232747572471795556122886260523732808032123827846865098768889026736676258350841707862925980863658683474345407719084843583954748483774443589882774220770314485950534804773915030399091385735178837128402207687772481202580438549569156462568434530009675038836371300696506298136349045854774810663356035114913148375266420997851499093284686075099659991359894420471097494043369753509272971973955176033449140137359984324275874739597046180086424702334434220753158064884592803834448574202322834883461746322922259287004623905041907277829248671953869371357705291046809505775581091448670103988173619130729959514411603453167991472128085851856906860892768567837891990696824614377283781147861546901924526089651998348117709256802420989473121341174944065892906216039997815956810436033173675132019667606178648239184616086819932499781920477785524529883577320340495912778989951287954112617915030939519380885731052156361182120415669533253431489768635396903888402989514281369062808266796874927487739535920162242915776812319798614737472128141223436490257629734856877065637554237596789320955979950568496039892288563696954039129386054926713819628167259720449909561718575063435047997858146322261068318446931478378549207595431067622785111117711903035886291766225781873078942665792145491052398160147564147661855463376296280215452280159897203782367751558873417339061579348298942569442863877478209033142666636875064110545383218636008664276704915455310215764595705096387878172773092671735986928078220048094714466997087876278445820007875490487360843510250220691702020840467477735705918316234920757359379666780074669493645043648239497881561969326701165214856538460087913154047261572431501328560640955411101789572245301184609560884845602188308132263063412601392111978488226231501910715730999171863766972397237647181665913348659500579439118763779135762234821787610602014166562092135393706465380841196966770532322697143771031833230441338728119838678997125574140670306940146109396651164494878470615579031885168436188675927577328707958834334919828713209663152394871696057887484814853630151566416954367844756623863300985424947833995444929768232057470321202977016149416596250841762372618752164865320468157762305549998293858820362174955669327716934715833086789774686880773100893368744780973139291593905595817636476414326595248904591947630989658357856098490316567788999874458436270581784239270135988929693204215165859138676594731725521327555471054571811830234331747538678932765977053085073442512689742401881639401705412014069017407643361964649255768015907467427972949091826858187353746265802552361186381091879505590522175387602941007508329619298582351847274550267792900977153132035227863437866788103005102327650743246855946235421117337189309451011634104681641772267266969008608564814961249582052087283148077719310842996061258300936899313742337349537812240592860842966601875399495340703873752937002382094527750898969412195736784219507262292122402142679652187215383356111634495236980395608253125729468951964959192741829401657500845781347207713011157259704654075663968031252267213204429967220635751747905019648284992520775039256107392019618184521669045314884332173051976096194673407947111070648706228813122873467698386839150220184118105358974011163872582217035040043103730333941489490815851945035038757574494239674962281359194618566628546006316629858832013578041640756263504527920999673970883771784029365968183873080706484657241824705978396872132509663381715328784045250463139452708583139646627434907285765293407925761789511644417436618374153968829688547996529055562548358239319593713483456053195932778571578419246340768277600927470524356929336329817850626317614662930581284356509226760922216400121252688447477232269086606331516794753835078652483608423635223202577284648735338288446174522132753042410685679910723176039237308407220974660303215682613107025891163653446917462623256451038673426058140841824903732230503787862180175714980666378375386671009714842614207251817546433730685817253623914623642877465325475566739241449705797962600671300704786302470200627413275786025392718720308466047382105445972579554299802440119475041695061595547426829380050835182723486033221580428331920675856639537604429379186809349220083179194892946952341478510124768500687302795143503094909688548047079303200314066174723363382740236487915637455017026791982149238007444887658465411919920956260970329551707256916009880935917677059973461548501585116616002040040446953280789399862719673611263470924336091500977639498302790024999186154114490363304562263480153275664443316509063088543606388413391664764183909049621467981003871129351457171451312664827602715830650098024141735424122737028571815019413473563973643257858228929392489555377608659314999613501084054568039933970961114264237797278130646655641662377373590141200455317436162845770778971254411213993065596847580749014407098115967511498886406865591481209411195257686920639741495873344029383668875444493742475031305969796850951858314055230582280679853142966189659293010879066829375344965860503010521011152163305506236659315095872554780431792974442142729120285405203060709499463946498245513872950213564425593963765031662180133374312831835049617646829380756381116995535884806314120032785849432200546534273057938890084400514361106452314993186260984661888972799610094517468502563855445022372709224147695146438297412465026516507433559113145632519654169931325054025265580268480766059482722841221698068222115598556773907845176598661166826194707383931484815489507694995978356420493602318896619763520720598230004614020913868597749187524948710483362626664836293625828547274790911729556511583881760371191119609808033197421806871121868622174622348663500217268078061737030168709544462237376316796511424129291787054341574203889735951792656209752554512007754178159345943323660848868478094944875970357535390834743370452518505642960155436349470023664870142799297464332917555052998014828316311731067919268268714587896428293976022561711512872181105212220290630321961216686759222139309317808709079701925228090645144566528491694612522950973360389665270580180650251365787759266754927605007894534665756358243921166404395861330410893788530580347501806626665193526885336290864278603847139407712917860499314266606530603242259881182639472149225111128818421136244200635743827375100308526578000681498769909037083233090849231506207085027770713461614682515888592664810042723481199767861163604653718297875130758654406451262772325178705917684000029909672777671966717627164848121361552697598143130732860154238718024121402389811493979511063568794913617690779870711537214274487946664273456509472248723475074614323595759287337793276315383953286129989659990486493857659993936817090268369430403335432438949131681015195074254894944556849514705660054514070867404932662239008310623675760751422951507118292995095923950639458926204144715794952705333384901487656560813989645445604271783030554600573762975632105444550051875344412760945457012382165248460804678726837722803948943073916615766039709671866465904422677192472042814275565462589571871676524642558505244645288622983186417589856300159152589798053184564860528159761990164864996857843786825119735180549929524493353404824559411728891956350312319063511584539547166759368827363846526880079310531541669596708188814871856163143193853935235698323493331885028580956892222618140538694385925540263871350573008565921773662228476993954562612144978057178854416222216592972913945614968349624218440806651705440350884774905590396675634171361567824351384946794064925658698181018281681449267505925916091410830486391557256548721633771185826452266095514578170865190530236926063364721523979559297316962654236125107100658374084461305656557515569175397733853473072386578106301566937861130804465664411347973547666523561879719334877479195774725074246048725843684096859211002462685335609703306850608940236910248502673995096360072853403973553416978652872708584545514915413966625903579304303606678432792948993010285776286430963314921998795666161345555370270374274387810603115546337922173832714881872595019276895209449773535102977683502210798708162796415272484783039497092326316434350066119843566262929170931764603898693378867388534128985924259742777735718179901134633208345439039331290725947328185619309719247781470989807637496414068048750621663491783952464904883724773589358216341924216325740909286671720962676272283584335434228509621982462462893759426836737788102105329130366649846644111528068342459853437403093838866218688348117842362542238628248145375520159217193081580740166509194454531935381184928136659106617132919118903676380585057675859160046383042326335994940250315880963649103114776291874030668623817187108383981341421446641764200970008185932194073801313646466477284577347441912486948530794580248949194755430735846113615255541090444284069789406902796528470518640629182953925034280347224820639446236628465105367312549148344504828265462293647403548890876741552068804329992629235355408451164206167911583629809436197192485315683628514232739068434281817394730673715222877668635622665689342911325232718023428374122726496501157723636499621200672438315043935320264154147911570245501516108957096698724535362850574822524172322382890079105318541860692949709657762306274293026598666726200074917965145742346911032293270969135863053422258486697377090075066259323314743369346075526201341346973871857670871647249036185404302261905489128688481302330412606012315559130948361047824568027515747461886670284817342660988235923627815836469306342596317659634206042022600835033537606626553876878959617303838475335577873693471559898666125241199497854082447806459710020993272302512881338669751466896891564231525286272000807062214323320282042161247653980477278512478281919329470910099156739453241976020663223113258342416143200528679679658890697659150682006026168708467972667927885024025190235777067721750116140289451493613552209245733259747888401366596905792717594877082350718514841593521438993646113907419714314310986222508565714878585220553665435782999723332518694010578315841701640043582180793165409953717784555439428947175937776346572199354995045021561558343383458065430687206382844124866498012837200509943187349298695670615697598708868965138329468213136255813942327986388103387477060928172374375042233061260581952706964137029457117403434462510858701913566450223304124307438984223141324621491634957648023147846810507709927554944244984066496288409921694585917268552628692393988309784062823106774886422167094542011419457205011042809615888249870366857360576141566714101947472568923814469303461182905080067261390408870416669145772056695699080922566193205731231198949216849170657568226470317254754400914509901363609076749798692935174431261277774468394622271153188758985822914855383248368879511358315655552626294143000352906156468952283086785889284769420515305680189910890746862683626281042689553095022812655083835086099948850742599799554066010799023109836027142339645717133316167135506858049564901411673161970265015030054536725677843464577553016532362251896698073774612551475871806060785532302523676626546667316337527561244450577219297954464451330912406462896920288702153229842271276751368515841088214130987018829959628239904377218338522097832324421966419848160207054097569275147415835633000188678769599759993543486940944487378880568716407092437106284132978941607500558418682010319226844391082032013162321684261583662749125510213400996744733759022589727248735205116266447788243323312665660089831486494777620861341031616597064516506246503784940394318287440072461070841634063773452206304782645679975422091168576910133399577657025696057151578047751393301616534659091466852484523724574812705928434543814123318853859852726122802517157257577316198825963900259804182804507991252560626047083735690101092049604098648258211254421682854930299141490845665021411621900150700953507973354185865775746559948406875549061635048576091748100483725673297834629980190324050032369024016937592051470986912089388006106660539765090879919556000922808444181012047187482080171171579886736449457689636360963124846417311456095758077657160645897929593084127552393549906188828227797444696094689220311628146701723351847692015441277162004635069955846786460861767724121096482625100858797007482181175230170312955720795378705515505772947326141263534463002838120447566617774201608556714372009929263700245474904856850235952458705403546123198797583140092574853363444410591367280997371412496865387931351815462088848996906943434750040455314299785062952970000171466050875828710073869524887815154876794900300588320389702258366033259618294292653277893338074778722157229732855728196133442385056118933422891603010054831128729977849248717985568844544420402112249366147443563352584191567598073474762881205589241673915200525408032594064563997507360785295547972762691112568687703935500395138065166971303559244142920126772671219865583788321560736930456754841483313670279006042609418464850242670165124581494952084154337490650242480161712813793447559962016798308311603643586881020307988689898909171937543611714267643948542545641675072508084407031951406426936125562762681365574531578520418368822217700756496930614580387225612286768952845241424373328631280766935327412783301715050917828285551832310976843427125713014260258496967251464354326002747977907512609116950005292151163265546245953620223041938698033452037756724917058595277088881710432010127533793582953385644569696251686643189336221268796953379921054576247699258153738743468372318981801916003276653335041345678966157406536048860992455383161602353879046830298196879218572921094397662203622885945074474337260506653737749118063814753930029839443732698663446685052933539616549855889991115963349532665626859022768980231808738045271789940946114460959093145751558273152352284045272068650707320221962777165679710664062282360167136658311820274990438885923127435658779822049806708624106996953685583847404360721587650316184284482545208794141720038787602117787701928347282563175882091306922767835050339822669469891620235991629315420767001456759824642193212287823878972186867887277026729804223578593143663418992280393734586935026901073349394670522294769471054806251745643837599119940875597924999901131833106125930764240584074678680145304835687652066053370839309742055543350704599433501219958844843945211379486891387474639398246630381430344374806560169496949896207976597180477071573822276844880386152745583178331109975215100630977570272439995500159730692974932057044193736448428141040062071898171103834435038673513591077787444911731250290131904496625540346802152672342435737936832374536807073766396538198017408498160345640933948346751267957707978320144102265332369593679848969824500063109832302725229679942627573225771024180108312642342100879605428798563821467960710931360483125667758739926832005131413702994075062579379021348515118562263829593743791852511143396008793188199993429879685374898327329517303614216181243393572436585836055845151423156264307446360977515815451355987000787369293547388071956850744240765206196927547820997159887338822768356289578306826722314650971722824568626048028179135793068234788626531376202274318307688113731889221415760801817978146973445137337622031561898187783341799728939887013283596724584722988602572760240952513410176008181462436311702348588490671903877145715185794798844651443057637427683879428343870152390053347255865596010788713743611116387933984570987929651474994717868996754496073913763509403815386882820791727586787133834980223287899521309305463515308316498945222546379201868167427304939499784890653841363393789916427803050694146357633672221933195434991628000110815260720072790941738025639399659687202741380981165096831917531307580798135349950321081761182080313599546972842866986547304889838942711463548316977760419697760607361650947346263211615282328614741640537994464627337272326323342270428059975959090590595421313688586342269582676270182328801182935707035185808583890592775819722682814343005889816298725559022581863576989379866879545132590631747432191259128272428445746316718511147882801826588405713599565478573730741594502081696152774607318265345215109831964703481344409732516178957810319655657904915699132800339507463308834511520677768824895074456579887757712574557159896189188846846536220589876805580886624991537937313850598059964213444405967965181761061800927588730934942046082375907826876900090012049790656110145121293434292683182506642918773352689774605542872001557866049128245883297858643524160238641181540735774497594220148480814301327215698085010426989712842189669469745352604346995115090503828013255601410727800547087524403965076305992923457330708479464643244727819900503433090805497418683562762168069848129291251558662478806441983083312625006389938468186301895981516400303676466406927082721284507350978318454632919442726733999179333361680132449137711937749341763571789247457026632098425787303146804880568240941867357882539873570682890178498335281540078692663056163656256077036038432300146053156604736365151210974623648481161742602070705629225444952692703476290805293621688259704167945440019740687697874646208440864975286900899875260019462115221801908210104051166640226624586191969970590873485211635902790765143139388347406113329617811721399005142836025024325033618396012243351557774035674310639580860772257195565053285500872382878545288592236971433320149182152785909286978426792678062376943295767559082937115583802463897656204352331128383628647312692460851527617318635984701080985452429129268008284782233905173892373438510875690203162457455239644598226116345393160568230173127706353279693832029463779764188926385282504339146731210686234124121337789715772875812607690815881644841692961217680944296869898536745911066743765390786669872957799832047813254008569319237911038286405803944214479163057086622213505865698331677725349997251501378126049743426757526559136733359205654359777054580040372516258327799132095960428234751579487315876038694897200012246986752830054769681477457706257515446853428436040291501759692688961547722283698805041448175320701280226755573713653942202745343240280856085555059763834475696012569746927118061287464785107921910261474327735569867476837457581865575530931103987691362385478323432816887033371326785891434119452049662096092217052606218225033805418202695634152557824543657827236018068358142764677336097002969106333656188136789906519024087132876810530204438547426166817963757058684108094055254156608275958609087830597949192395700127668418652134270417175159825632121824698704692911837976117625324610106088703720361825407401141634051172354105010188582569892121740134494057098652681529657056979652657512103243931257203333429573331987114064449787182962707542382701211094529915801955767544354397755631720221072864861096163283954982048566949204192990176390492749642385412082833084079534029916355277317201901459799711841882506082049693189389557884239895131781492373182282963308540712408609425249915035171484098391797123980743987951001555486926604311324038438282363341797211335720920722643631195197350207008856334909027447870692743346908710713999238472218776099400921941176052826724221827554945135532598979727720779112684510365001996853588344532322960397536754215255479304573466488287131121227295489685343386449798047049642412207750493475979618383165444006651750475488007909490730609105818297347927868343189406366420110710375744974200458681835543483500999851075942934680071801822455663179249855504652605681770173158932652453497200409177781850165786481708078045384521891517383864160278207850881215521649177455682403027868827549916306457129105466172491308128469823827410637496574696712482439015146380779567707659133134964218827950109454942224584326216647144384107636528475452535388803770671182122038972457004636864007906025155002567805263742870750460476943602367485685784707724533423091850593914404458964966934700692980505970210673377648512644309421199566190753275996135810382137426359751669301176746431301296078544508432539694522208863666232149031180335717767938578322602282069461632914902511462482878179125683436678004918927434942637610779506955294810372503088749116214168876365423499786827445000527927169054900055505080368695651852682882805961091102365985149340906119958618352304377734622602583616919899046648294884256096826448024863384453376748063967295307987254933185369235601371791881907504697857684826455238945971970738625348516922626123018268419145543650447331138289943900293103603611374565484798158147270838219165533945284922700606829926091435022895463644687402496301757023923861786683217306615554045662354081345136176368700042948117231490190442305787667221132440470682265661846723544213863906853164156449648796459818397965471096629624100448671904744430100795951795610168255119579262727626248024187118950675606590279040506531969824377521688938434720467657267608801978651828771607905965740613327230792856282586369201948213713621629597996124085727148737605415737714606633031431633072611232260061487974774688562039326526853096640581179124765630414784471438440324483476603877197189690442838575881294872888972057748113452909880019038035769178675342860954908596320664630695195927846206818105402130000629593076736727452130942404408475398002218771201068434191932304668143323881886395330288691878351800541972746218480725247668247408016508445493113811113319493200551170433030019024665450279986664672759734554762253474671460686049299461309560566047801605795860180909060929537632474464062997950516046741498877269182901352153987742758807361699991804456670169780526801096071481767679153134329617561225483355530503253814486321600401227135291136161512214534391914395836675164048048174885932873223076987778820949085629097676836898044480338016802607751828999589912769671356140720261771004180841211732200298217400297878595848312000407448966884712775238651565050177443970430685512587965305715414393926721663314680225553146692434196756490338495433521242935054678713968154555744189597045726107290159005577411524480923573627117179267665037224741546481485160164881496950663124181709528766863665238897936770206986268365906554311562899211347854792063994964793009910237015573820502721539819578449269877123001289666438882290431406254429416854830319900128544457111535320979295555867061210517697251977168280887895032172142209536835398990798396049810360414859359014593172302693527030213988070366739836493266187326885406002977692108286819787305539354567597605503558906795807831970695630714132794358189280499857333530249503683293300733384405958962119498400502484935946395695576842438620714092642327290134577271487643672412392373834602210630807428501256991292816470460713553632173732811901837722854096639462286743162056614459777115668124131887769323729335271238877957472003695947842599822683596679073761303237427908545398615980000274619317398862508422808615200848184268886151193740685373415315157225569013803354136038268271268793087639963948154330422118858658310811112670391215818647480135382705300875422355047614090393297239223974837265244841422975641744984706771538947634488030488196702938898129036220984555959601141913663852083439173300936938459064773530559957060308443843797770751070168170051387412168826935082995571388286804094107916570824539493808901112532136279414972617192275709877595528864898147566736292085058089642451127684000725664223434391266857680003183125339330231753927688119042221447205241287268340355257380732118159932365252095562136086752599033577307464574062721106639950941861267130655807318933586587531956622159711317734569080472527888427203297585141304049790048748802533556880386004897989760455383276431109454815502378155371517335281677735747889914306175451456201911327302182579203810769079249885337855169023865074723947193516823930149923839804451034888240252242161558672502360838415041614829272603942293445340915698605948396814862049699412097638756752926465506480556447810782705776410395140588189001489433270012937163383862323566352505074526459638691551527177381271629375539137481037970621532434520142022928130074560129977614569277922504308185300913314151015712028426440336032082271972075193298979169151466360777223270957724623611968298394125913497616051696030357883777591884097423704737711613838731973290162328010108556931965302661682901776421230429154622041535713763137206111754343759663613611431187496223643680842301327506178481305986726858296067446681318635793205325102394986664790528641428085156629078720481400265740516924985757749540187183976124237978888356207175773353040938408804250679489393627197847735495568612471439774008675955743412687276165122102083634700337212480786471887640149044595416816718092396363248760739463939009718524461314668672177012442091372228864771270161848397760812123710672157679026862183000390584269722222550975355784868349345106750274089463548536838479175465011978290309883070983135401468459691624297886523253778265402174632060120156830301769661786683675080243047665680774224031327573372543566944946332637370372699354626133738319058642997586713440391931438388610893228009450604997886316973807416752611054996341374144617217945368947186757194764942884045476247189060155786982398177608076390456495630173980281340044635442739375184342433278017284542231995613118055231824960101606515606202346244468418410459922118970994853573501543482596492633770608539029431256808051006103175687018437603781519102914885804609454741822651238172812356938994392422310463642971866622925628568133039084604556404596625021516759040271016412684765127242243771336923366326400257596899682928067436613356607436802795890520683149245045660135727793185464230880969220392550508401036682081075120240544998315562928319334867662126200146547957717494496732240940635380574241816786279597368951653711897323172310592828118817642671202481054507715103749525470539384048176050674989872225817453815695476161003586520209321638741383566080299277372928803832098489620490700302875382368045755847628086584495568605724384114316512313947712907302029040659570982069543806226367546975904999466464796047914891264826141848147247567114915511805591712074056221235173848522625248368555369779220091794286091878839251774812776531215239939421124966774076925087509774645762558105898637681965341592392537576553666985196976062241415642893561064181277228117438999854023714678462954918574778395232580360610717495179841089021786601051174524870894875901208655095325074440406955663507437495579760014740676526978708025813758959257204324880636996018264507755293882720306497298106436022196586424453122726126773525699642038302842103350555992866664997135138147220070952740978311400773297112961642128099335120973335576076185622022398978875070320771880460750744667550163531624666086536801770143934628465074077176934135321640023961968726207095339029047919146743791670421347891130092400480874380165909315952649427799233725820242079253528657362086799735462103292258230550936008793311200281790839985038140275621453103042800128987714032235468817906120395590197534567036996593164421327081278097489753714944385695651014905857818390101721831220735381381378977728890386536843656828461601335152473008680151646833763418626484428297596650914407406272398377420798432754320320287038702927114209931903838178641901466192579303684505782721900639810152453565012417672069821312043909585004564303734565854522160628377845961813943867991550738018486476343095815192204844374125565826506498864782904253811056824295793007597020032755999333693456648517871212031718324985784239321871647776239119211561286455417082067691342690559088468428786465176098805537225922461975670218856323923170257381977805540311092750892054038025669192335202774629965148959623009546666445664157507756676572568057278742107217777849149819337420539860740170834974580740811833246869199197720135673298445273281552826267881445439939652537208650398312694306790090355476403676798067321764549431046238630138278637491188234512105655301178163039314366471772451234540562698193834116947520753637962077125459730268429320728496949162177627678052550171364918607210058052642244479719433326988596143231972764295163808185204811783518574331577945061184859085695512631322666838572637676844379913050096794911661473034371578243065367133157998300971549514420444518323889307292822611293260065459457047952099837822359366788306853160755194181643892851424845892764914517385551569873580991562358046127413974348229074530199645279873528064577329551676117429639386260097906756655832773960791533654478673445834003559585989826558106854592626221476509811523804438448354035583000855997550050028499507919652462481758520293913255924988938717757252678810866643115836983157122560555050254165660588087391009614071933938429788565759815487681078505705559697837444013128574127917209460965108151365288084002369302635855971558981667451173226318566437780615567957220811935935972296709964032563304251316337846541881539284927629489737917073299895401593191970711912930823042037183886234292282321698598319646169314637193487907880169584824588655494685613998668389053053909732577445656956210544913614809210349462843266653282208232737937568270118547198453711012241174825893992317756341510042816206318191243246791814634375123897784126397050480027439005421002216400051292629960990402107915078600408460131965201443797727680251514643037257495716778132261838749686507955646203144795398758500147612469924495454748400946791157822292305051986109502077288484187812226964129315177585057586934966330020615516476404176713076847369100193870409494647265354748235366977184939175672601063065186398755136871158938265570123134210220127909863620110565687430545447530752585518571651811060145359972750067789564864514592998595634344846071722369343768491105587249614154240814198484365161333260317780538221601869839501901293782318412592029793773525060365379719464742254353154579076459393976743083084120836439597584904540191407628529760293135166739837792088708472874655770198416517069606155543452526582882690397882641995202151474124187375430677836639847979614838618241460843504534555779343435258214949545437478927767384489861794473540823204798711733405975639300464135614561407130639953851323070353955256127754424110883953376169223226319205661808688636786073857458976417947332964528901940631657044234134657125260625783797321489664513827486370518109951591765103264004507403805462320495752075218088839525388146964146397778668494164994352145110659214218590443835887244011844249431747324376347926752682167954944967466260117337996754574765329401940426992217679375613097855116944173221781274426654365372761735318751631398226531869686418097867200437350012077313947571293527956656796129609463710170649404546194597892543761595624455433893469927220567563331810227349908979915413689660160563024154813786728794119065804414688275650473307213433720900971035610256995645736090820454916082812017003148121108274192829341771600355531179289187303688151409023724695017112264024319700557258279053451043291682144660967332294629677500930523963819265660739931000549968166296405444229163627726726557338083520068533976026365842635071367338141086699370084042460100943405581357020515626495096511691952783649125368620557620130412809252981143871461663184401134650227488536331866892380911231581651599321212481933460840872290573970147608038867329568151803869373792317616461547366574423001510225674910713620934692505350591726965248522160844034711946677182418752998296081576030662178692507404410452327070027031193350903591311523682305562585490112443691449427449225002899161047068351402332300739382116921914599246141177426330666985415919729175477843355033677714817170243108222928438688963667547854882946013791177476460354748953995154271759591274948914731734911535725652379850098371058544331154221058114909827772185684234614927380178687051630814061927656973226147436173165499537451341829773816743294147296466094861096144384089804934469787249332731085323289616169878975651970952837773142964680184657924172376696907158872009370820328523577724597609059406357726373889103045105207539000839417437516624679904605010362742785134628343852251394062879057347189574201357081115573337994751052611077120292168128660337663826790637782694008003058722699905536702047179113369972730795313770591250591582197061540460909880308282748077622309548448747159307646114363059489469557234872568692863440216992558800007627105672772336209786267496137544488827722291734823042486305723459839737011024577901591965017142398239836077357068179410194755146058707311515226027297423163405942991413965240443450974492231321956437411457239697385797541607165123007834598043423447554764429666418011587135353782611591623260429001678470255090967037724119131905225612195346068786367073170491400570654911990374032869531974402896708647078269311206919012534997025446437965272403632192733928273635241332046405564964259685661427613816794615927006571532606720953660776730070220297092509558322434642530460347626906161850841488184354779882389786776630437215429003919169551036383026920526821281977119614613423031667534458176015927438204848377334432473088826443485347410468537692091127836786656630754742285284887852955819170587124043754588682930377538776810913815049303216441512671059354418409903337832959586640972196598583112070241953726625449332300894425058421158995664469396575848739899790600693774144854989702281819764367294302370015615852592526406001884670041432021804374377483460130385020282345347061441131732968240045564169359615799567215910393932005242765880082106252560782774788096294281112338327234458289554634746558758451422798752760082692039671906830344196455997376539196855732535138840282375256299066604670645031729045587065886832006569516851023144123111880760058790660533438223240584188442175301100241107682009876292151851389394088880119796677673518049962932516807367246116412159425502205126371033139767011015558713371538324096342746456067336738151929627309680349641345197566658541011637159335051308062025341412872192687271253810392507000824555200216311872560156969748916030762571654570570949077774102388112206529083849208715906402132138807804255342021040353404617813504274301051820292228994771501324293867860188103877301045154143779216636099656664678904992551289913344890167431863048766343973923626028745355746079292564110707873823398572659923343156100201120156740026160281523324096034514124122539580041990978243828117210372447189687420542247415571560619497284094091690320689402177444306275599648905057719315081933145568600770647787130053179996484262853143629837290493083993228572788217535329106586671322222443837745591802846876966982126883974217513117846980612937854966686117981474021771114089523068722831678326475431950857607878780554010978493894629816123357859730045999163702312872110462407663982799584480743037945564039577715969766476118012159768203814840565664941201719404351524496633106957508038216612328991330913932438777197659161634611111406192461705888821493121594107955381000742898628922197338376133959616661829851587333390422913541537578866948080454935266960972666567767768161286864690083646791839286512707407493553504208910492671346454357950793089666923608570792665464854542769523399405985337442868109195877213231227279224650167110617475013398109124541523658977936518167800299421563542561670778606517377300715448936346529186857830343492427555281596482307878498863113071708027434226050661454727092060774709535272681276589061319522867719477407011583285931502672377474002808971761880418471623895007722332983410521851940303937378965490172341301289973313214586560983129572329883852722221418159339794665833080504922647172698606425927198735751906220281671330320939202326581265542985424881752203350846762510666907495098766850997390385057190361966593435529535683825066813304826354691075423273015943901066948686566988037615688237601424425749861800128925668439605865182202536116797059710864004555599149765551914143510666821478969206109634812167643647594303306182474127278347529186329334432803265050370831306375529285754362217077197967483031300349980184824504306354148381670419946793223881036631100091054876521360956313739370228081211204946246947363551190478876869779975266884074663295416635442520591361818169284974613834719297711713704195955774314633154040733071647889146984100856149302731861675662634097776687456644627589065868225182151241603802221994923695309881937541139738780895995098836926043056076273309214894814523340992139345802835649161277284364561810820453256265443472170375652406575831706750125688156089431847909321827700732199132489351062541135884453301638994708303121966127782034863932152655845738111597129835942545672101256615705794385147103411055447936903846389723700975616245162952767085001153362993617050460747509156154675407802374707985904039982690155174821571454702750739506448118865098755186271497647285816683237464143828158242892569849681014227614855354149065958812090376002531717380056797978411684594446892056189529988764106444023972108176869421679064446431907323424405924384492882734638301886586962543434639662246326991194466778168773210957051617691070572773981005175595693536286605166930365340171900461375910411566890714264561557438765291331512425037005883145831195962095651067201961046121470345520791098187334882136520732373706802238486449586383082013797345660258939083250312483916149392825026684019604463407810782856643799079336397668997602038939970641795689857076710081117338922338312259543515662168978570428229878134205337893723256857573611061740877119364546697760658222469618009335259924826471148552394755207784521895731782516772892463357381869277082362839496758175655593471133944208052683072923469777629399630025435385031853656656840424054749636386493244116322399698586679147572834426669219969352856139581409268613279026620670295740681540187290762604565893307248789318851553624434574875147646816773509686393671586632155551706017695526261083954717439690169897607820700298441365948928995311269924792121509703732214268607278081041543853091873707413750887158297447727718827719461171946347504146124471342634205481765279842329757048865981389200301105159041381460810368013889894745763827686414285087810061361635194921525183363402618358745081526472705571305435995835815628964355445174020813623678352536752003947747980040688898424753576048481172274156870321047978084871386020562322617313959996935095354018822744284639216665878581547522054650003504857310899915413496771806804424860763543190262414350786608741208708896780950786399747170312475258940213244409351209878876678449101280790097098471069544572548982364398498064126753534715880424307745920863558334878861476752996554438716861568458917329486361099440531489048918417241934935529451340771963210077841999829404747648760918686165000729824331238762088338605811320261508894538036666148090679212693767228235173874285810389640064979785101279500126653151642445632121310568876119555313265248679443314857775935090809372588904463277508837381475186053334705449639988647987443347188712171592678681915280031639898611542487671246958030026239073448599198094306215754294992352726690054657779173402083990218102055531714855634427516512373755731395084074307169581141082790261159814755001747578616503400950645655034591428958407700458640705814746022780050774652166900025326295065852706852002568987479854808860147429530970742546784576278180274517058296559647484849800823130651799515846043394989369686175566420750809817629599236557654489011371680178014492441401252251008952260667572994398025922770254885553164204922806969104861312924986529971837547113297738281517879645795713943734763705758473571990371546445088950740556285331525365748828370489912994582847766131311773677893676224944030475782419265744884671000785422772097313294886157582193865235810201779727156560323343946291091943874831755095501615152824793670451165647024782172528800389950505060278324904589083003294753566763538997540347622394866992913074047501717924808489225030653011711535713649828514837478024693719846769752753179914556695029506912321088584752449288070977001199050026156234478762501203667214105969849619496368192325714555179663417038109617387666513168804529994425561938787332150452212270442436618966870948196959815001569423103990672857343721529509601411892585750960451206098305781830146496405949041107508533629588605609673545588194996274902123475300338478613093349958903824831826942403827209500773557992507353772106062363234597367821705173654441508266439951445611885937242701088781808993794844835019908222505612157369527478174833926131972889935007440807213021731863151319014559226872313470196948153166134549982971078565390328823703360951379507087691893895647973450899539337845263625225324158628332391410928196705231200140951600547487472947469892367009502539344592075965895594503713039528576069148415889653011939290095640147537858497565387038645092653646310160340814454682060643557788320524202873941545008667293495181234249709233960167780695424194703390368183069759195479830170969504598211288577464635429617401684001849181559616652340803278726614161557012569271079915855125543327688756306065670241552998521364212735287236550488473116069917644994674759910573263574153804828556498884549605185848001462113588641823851140021664267975664994941750495557660225037770041341876764510941411863497478250630298993974775406470522282080372219818849069265006749426299114062302189752492786201480927871178285959965392180299492647065712927340877585201155147437218448921909321496207087010498094090588507560837121882310034997337758292594053240397006451568777442442678064465363793263139317826444557554795757043562141880923311504922686999855911653607829678810908014269090083663690026227142809911256640032332298801974187250626464138647012235690341520381900250704312481833380441756018351571415359833203530800264603584578414737504515387095894988626856752582613875656845500210115357239180986345140540533484300429907948049204022056614957492793019373905182192173650066818338512907846789031647186558962894658861891539102479762098134191002782687335972098462462623673441666249373136800829144204913356311345735752582357673727485373603365137901266485395721100276900025489775211518182500147418576580018269905663863156966540898144492015585603663962631705618430343549610205358618735432358236795604628973212153789875185536598042433685464113680333605137586754054851663672116486669036231838246856743045868567253511704396851757923907247089582890819015426450476001447625218293373821457016307070029563196742949708828899295425165813298048931692431875480550527755328312179526195352986926876788413433222300700835302074681798639371569031711076904753288738123831157527392198877844602350602758558489485954321601354025228923011385297867379551286919143236903996683908981334012220620044172467080347771503018951429228896809967057994079489173607341748801249139915617291553522987393399799448134652708035028091046158558514921182533902025472297690564223021061639516880864418647853555895237460002583445768392953660349126694029867065368511643610451244375141924245833468656706814434388492296947526914581137234899433048498202902637417962193666027538097685503975865252038581247827843879043608859155876110611011661967744371800535999147114153402390185003062664280707534233854563002190545688557498430932506282121427364868858128015521985949865542060637037605248995466140122973920907378429625421594503174017371494401730522969499494571828781744352117169151821324410542986602138853304021187300629340720380421357983152245945794474858470479456285463643687084503006450941223506319517055000636213702787519715805231403784360084596806007722216736886469909591656384347513706347748687430548092187394035689140316326582894364409677741320102797227940503264953584235261908850605729577973735178921602801230266850072784050011015388877426072759982574674414072195273672937823360614043786985095401411844244944170074219640971766047173983132710945432502999916184725160781050161206654991095572319719954539733226408653663567243207219687388074459892002813480743848891308416285279252836599677256225108623656137156467778543705036241673442770827658787745134592713880521568537233978555919360029503299863746869070272953899766301436123946181522046863875496130976153482336155678941889324710406647364361200028961447533240099705951155204274159136326085133101527825623800265968329820647173510534786147570876391481707549740676349853627284411662280852341726469552894614716730068561005779525360012036881795059702679214379660085095769230030574370627249242242566238982430663621572621906882764838359369697967326159087697348260404396502317648623942993964873620759819225531630498273764294242151428749546489010250021356923119525342319700253831452090685312515651517481829576722684154182546012747082398550557268802440593098034448850215293699150187197478865955016209039209576587125536642126851320555145619737701903872430197164827767985489425239735306514975516688984629556061738119554913503961200628453562695548281687407317498516365363009146704407659371700652583053845173026047516738840158665922045135737887588627709895358339517711678405644245198954744279089569589896561481129729343941563103869193790298504823936352870582094446069862287073236214304250059192607373233570525115080777996961409797202906261061662963280880255360529697379034715099439209812438851869516928463213053590078827077791979441475055565386092260674495019551559239558644028952607346311491217479834240855040688972035003847081858755399299998060317268720007517668503210393936441334768218435685146313700221653831885500445618317738670096285345450816061796690543724266296167628926267703506148384814641772913697047466899996566651928355501948877090437125421312152245161994891212574860620169420047295795773412359976669099567259602892489438903154510626524473060260234241990979533084004967193548432129470882701899745904981852192729920059270675843617915647257675266360506413726421878218125840242372064835675366675218763663128248564875137612012701662416755387749377743701370398469130789908245144829886586823423698691361470580741680218435484697449837177263003735036067092765189663401106189058444044563835281999842106455294401721201786440896016610017843619046061598185814311204120936116512438316765214859207420162903104562675557834914291153998837010577572726679725364585676923521617128835267755506171586496242463384008600616922132376805834839327044345536289847755569733787983286202372686271948370581608009137456678516849953130827715819933791989042385787598957423324898861446137010723632077216152208335401877366883556221703264367664478491128506142348198377347470841123461619243758262404802395993614273541456151115097008324459594853728646990063578591083693076787920955611164598772975433676078506899745906886047940996841784907118632913247931104095475120277585677594182089457872437775941314258290425005777595843529527930254358483658603956194156072246665760551276777383667444349268685177848807724209949924044239472388623785408483414394873807212643501597422848935814367239368814156245689128698945111648309744892914921802742243199859057928411462341658327755360146729621733549672747746852614548706957927603531997035136743936365327219929432671940332054162450832291507868390280095077150721376633957723893923057287568800838329020707626412356775317634125451832910413977761957156353439285158846993658257500946528098525151782990014169136457868324775170319237200039783762559026001521307232456345416608796966428079537668857460942973270247747635562039049143952634641480134193919111692877546101339518782387252340733776956736970824132154233695422412571765152097674255323995196127197289961628588286133157631149015462562267619400129219617058632524052499115556382249466016850554030917718051094814385271632701672155035404341180662248378557867957072489560653174605737123072774921539477697028330638089682543011333383752121844528083508564087377771010520884557143395702845787758840113942969080879218676780071476920187815040373021982244747269040593995817011825426011303306293992576538487255325651644405691908422692716575457952467318425428179588476520133709220399104972416530996611973055156943774519225848945281847926011236542267011160846065525972000049297096151148914608389776502962903627004562858246127009192361027381136740179173736001970404677100663764627524476096887336548240213617130746151379855856159852634261353535526908921233612755896605418261852727221422836280159302560042257919656840335583939226763721012428376715031978811754832605633985236195809575077025966710762060479574805081949841280844449356034902279026046948936664320421012632662316588286161819482071148142156409475696661387640877558940071790220944019931313370702684393126635508845151069686179501322772807425453018260202302509210476334858978646921861101282728501927711753308472669984455325583807858214161000913398788667200344167438149415721538029404440176533894536250139648680865316630044577309714551808468511588709296637376662164815613952696056328344940378894587055378208188481491988260856856923037150860305045378762099418194718229527320641683957017889868440546418364497684941712752276378038491501531904383451472037038580847609725164012704449317724924400549100308310947689880187684235680701982251438863531188363341376775234131416234441440310861114605624192321225082242207554515785800690767644280436494136290799245655395066443678534623557136196653567574895291406525805561042025161494876745751109524015421476291781622561995728022181369900558990210092201432192210571981627190895809164468909598380249964910737620753792125333270505027231469796807782637646034431342853222863080301378606570188734674184458911837025996223328734518024211370106169647250640664132221833312663318683076188433430939981881886623278340519396787760830993162536704459038116220154576460629357769378644370738322370988512217388925633281746158094022885524432478727469296302858397962406308076591272361640572563939149034536077700460054999648937902708132396787110474442401624654053330150483273979300523975951211476217935220863040932090612158364808755748174463488555165429694803806969168870885917619996080098861383623974196662763311801484757839710746048742337159037836948054242704104945666621039626793956081488232171504632875280151285195266769507435191218395143245095196493295375769199438556694416065135484238745419132736774189303176671333651477261782645333510639265909925190867919218231180841322235192132152417765693081760953005644973948610622349141531808764781908013678014549839483518359723970788729519406366954548288367132875684374309831107969606149550670910170436585636212219894014033870875766344264581232446806400233121034269322071391971127790927042053371405696607837888397957070206505690986425875265850604617765933519550838464973674210339227033537456481199572942460185850418444068068427051016996754345112132831732368865026284066749373808203067063479074151964701928874371782362820822500732289707491659041989785184184122849102843424473216075110542390405913013121986272890245781350125922430338796026977303597940062475008842900319377867121598782543054145880182520089769383853456012425409685694218219510955821792573270344643219584664317859365251139995783906332871068938858161333077695320170401660454447464402577320254020630424261610362856011541280110282472576095600153659614691074941885992256821156377061810474805493527967108012391986458815348605901614616873124781763152712694774487643398669532132207107223136091449196316500496367906366702173233297444408834511501236637478486149596714354238608644618485470372418780006560391868774562074514430080062558506377911340564063045075996559657522597384482206996634664325693028090439185433609465935705687659075267695238929380970988469339896274613547505926727359833042319233152742836739382671688178971402660868652091976041457405997011042975768871157951818656997053404970739854080755727580786152088183113180832363396278454327623654769143893743559384906866581908809788199424545553314602363360298382550863558355570111637892647716268099203432523550959492005320247695798594504865490733297945575381138891713319458291133730261144441084628351835482988956284667606547661770805574022268630911597019550324543453753104940978396346710994310494460289828054039542835031235428184344194825422329214327741835107028157001198536687434185874854801679916402054270248483795761131504106913557372826896990272787363416325504110112445224480768186308371359457195498121119794106242301105034605184970359864731597822816369853388881116117336411523072798647792408728846351564325850231930501488928023675184486355018031769730477231899886227122821572012696584190582901955636012126694216364365596935828827888404601224539451715326235485656062052324657487348107642825429350813052620892376176702120912263801281355652180133075227138212090326418239674513575553288430667702829900397206692545978333630566230551671181048243634473173218460416197954743713204413821029576570786555177433577419411648223088039075398637013111757329912527901297284178291266588408784527974285869304613208791621295162493864814523889154722153175713942080612493210651957210700897275280563816073742525701046693750256573744239153264748538856238814242777448912316294244218052935186501675961133925497962910419463568937429098822916216112752147152995844356509038172119282749073970975127930738075803862268496211116050672295975809423572902233643178584618013973613695237642805065020711019977945209391985428384476221766313661436256401866597934511109351718589328454930010908886565846009788957265170725625778434810903600638700723212324736708730856339420440268572794918792772315455957644052420146008581341707382640543112551744848757952486380064431029797304549578182383492249484988499043317277347545078795885645887234476704429362514336574288766889016501300142587402472972299193468093763110212540922567245877292538026131142034738944824617400194586081070365715375901059623384481632141515390037023442414713132860740588453335444759874361789114571893090462025547554057218284467044876455995470198274484227048055342932107002508002224791336077405667597929422586575107289728782015943101327405037142655294695820101185907320283522190618095266807757604942874351264043847950894024511569140908556913484334318756951996446052377328430501998665655791240515342420487597233603743347502295797930779059125388424243857879287164956419935363341364411767001500240444123495891370326138002640661376423937479967762872064641666017440670735392307533864848322530619994722842070852266220685864246957017917647935081423537266281718630411143065720858020391603827692961049677210770662387243625114053415869983489089114701372515071267412097367897272535321445983082974804074517977747426690772332345052575778052022030446367853655250776041948223288347459756577670153110410912586708680091324673038593356118865531837878677325839347576801948338206199477882461024540895682887554430286810316645979093297944181666914731080608901117824884636418106937787808916175708708289286776485465839883721810358102280961552904577424773364899590106075157720780193190937319256272308730344940727267779346070380781441423252285866767693976949107823684585312071032055415309376231889022659050181826602252695497554650897690353771049635662528182385141712418397274693350617749749268668185775172883770056195428299617609983604066813391388451536474089953629470673241300098644115011611899233449804144266977585712940058087048562918523710688969962496918627558329026223588854256901998004161814891480286952328026853867806182937483191766375396030277210152767341457166464204972641290889665173209802462360845366762332421215408703937361610538325315743994354538880963716554134574740695484920610752418841614265160173083160859721273269714889772820249174305811764713376336688261619991897333228026791864392202582897421090877567918675616433914023396780239487138616149141995484424894697456475390967548416498294625279964075443038719704745566490675970013058984413280449551095462840170804256405059276064922921304290134179294136369100305513217438745111452227295979674720287707294327777895090050764419290231969685497118699205534394515027520477274170146166903073445997116845783142134325924677893671891799204871825275562823916534620412323195613864161805342106597868694126466814428391081470209053650200033176623729772609591565701131186837646933044024239457690147455023759399477081743356307479441641958358871390897443982103982256008926484855231004901287733790827164694020356958267055087071913159760540037240826115919531936278258105627717699019168112118522260450540793569351807843237882381299783895210310169191478727079383124482126670643308684751423697080593879306222357071165816944555293831250328837048829033643276448092146299601245664933557237523231810612513808857906393598807416839286572394172457818380433076226207324454618161876120206429645588016664038338456370099428526460900776976573797151043657916101795159951009010156071606254567561542368765945531919616482560744152449229297278550295571313432617813327455231174607834329041748932140335653044984790900147397084824460636387041064850892077134123239607476037510034333916538539277270008170715788460333359001009433151590770917999960696324726837821539276428115046859590885356691888680398294470831490331407494332614000506127608179827752003993240593136335566361010002571034496852446263014122460610911075137459445121125495785271007387367769601228277271790903323478303844494156492115316741140462497775429514038452711782035234769420175828637201167740813375453916035252111881400883005400911946737978627345086879092376546946627430053827873999624666574539772981320905469262353363449593454363037386393906888262272351569990431368476816872191391998098113460919666748367583391420997012081117251470029902052521401587979899092291421231922559737660845266040843110629427507380750491154672347885539912148761718504638238967526409173864275442574153889540968765391227709615318211988495915522729106380270349695377006532530644623746875079340574155261541618486277817298577506409717013865701772638678239313965121125475342595969365997732461754256479551468141300758365837034973685892263758296356444069251337009537459842683718014835498719253280216530425142180198696437978320770119935649034594480920563587744153091102599925082180485103158505547168856794755180254744593383809310002065256375381387831249043258451808889726494159876911768232627073147364064876664534271497935108086107595504132588129933076278148131470261935859782150593772929631746410908950348274426543159067824458679262629353779940355600529856814445948347232186765224879082433364947576538071643842942655278536092078277513623198963916897793766526372296686468025791102362846083897672488474713700805573135070622115491827914387039718647157096081672956063231436394938652017011594986309120326470690844604018291913240225219004881782220216620865550492032711999012044644209496387920599341954131996126632426622794154970077486223414181152669432400481802691745729837828195070196358746488566179945114619903745584368240694536838058419345723474889832384976474460556132132921291174292341476349702670230214369648095407574042413351850909445264542020084496286492402614776953619784169205772775515481568189238485714419936710171213096483242744837173783115876791327780131461958300516332753495279880643432206618920909557105289057777211289303568109197699153763851251646775477789912975011008745902239242257620592906514617578394649530733907019403811882870769676999392700349006506110846443910578444796658039666512616052531865854210917416316367653986181051116532625434576728033801051252171944526622987308670670310949468370537161916732737886557396850963706583418254791986608732089383153732981951693965725466214855862552214567022167181998635442515642525526049614527891777798367220716799551755679967652145328878526799706740513774378796354507204206077666157929590838597327140849566595214039427073592017418276212756770865464630052898285091596360119304677681296136097020707311695529557895230135397166150584072611467347354815710247463241850765337667755913104914464828250520533901366171247227878900914570726762244827826631017904246409550499841345548402178512683212943882967039305085993281912145229782661605498225791850487377440281797283695778985654396765607350994513617884974839991513963580855890317257523834150340912918780629984690098228677755460709404838151241257744656669879015431840903414554734605940511626273039411477627950589619795132730609296289609896548114472628464021248173131765710328987433599006532698958395663919198117790317455916329837698558373283025815853818094035629891585987629851826040011303761740811044979402197210954698621489438461817389871433499484359848974336032018935944503468407150498929969672498300932317993505130540797253661133789100569072855799917106151804650597509975271629733927754641745131001692196462962170118031990653401250337734383783549528927300265031014509045877189750555261366116848132688732033531719872542816071971083923702320600100632533993948394247347238849699788049415029587117531197132483675223994835161105453200909534230182667686993160515429328399164619884848088040932390812240699893205812526017676350770278729930577334486049776497301572737511620199706107639795188359866687007428429348286873502902506428146275456231270693344590907001428105207911712455258741116031770701825007317780535588247710930150380233475255620862921381799862840195788412283184391187304119124959629897647528699364896167629340412254839313445613544853657563389199221347526787712893869458243004460441359173992090993773618781842162082295645098926699550106966888322185720593058096086081658387815435290002075339294057420512498738747814787462070594190367037463426167406017105712231031728057861383552325991782931388317681224533898551245634174944506241306529431163511417712045118309803035719829497338393141008453265464482579356129236548473166329409343993163318441824075308867911326736883293608217020829321127560804292517416804521123631145283538297846671006298677788300674255388773966947870876909572563498071536240008166052433611934418677994092828385126826240055198467722857551462822573904564382143706375496700111280912569107155797035789892268781895272985111314042005888879476842112842707681934964800693532568697280630481548530174862735066417381014838278688259178126784181951694207555649413622317005133758227903084421199806517030289149276041452960608840316117075791649697091912310688989502089843656582935202551107446761752672463570835740251629982210206411850534031090220392590997973446318335725933363750645102289050657270173591161221532675585894600628540803054134246163315418316867031179548453483188515765616896569154652066562503292535728590528424469912822450438413290196720703731656701851217956924025518718765880471742661401957146002411345360086319501826897116578685656640648935556576599342563014317629433822078519463371059712713841087695901776786503909924783903351832558185328984107005677880400860500674545544558343486987927576033260708855865324624528684554663537237541966866254081382264670929147306922815028033873213248226668665038220313422549491414517692536583242927775061566859070487402187541087515615837396369614796210418374958857145207463897548793528553749051068776736093393185004695714084250358530269002499136558345590436394201311403974560112115319478333555236480384695907046454288886184334538256019208246409777328648165178638347075539329246511451077456817292454219068007022071539262630474102809941733858482756347462006150488668789288363173536771843731665886055618585472987576633618187711917348494642558974927726256932334040613847886886097030927844981251445799768746064596483787812062163074596817927385436033828504745955854362384456809953075666252713839401621889596467085962266553808040150118351511439950954767402312532218734133528776005925019923303765434038490553947149543338861462285513774441371026045848733189129950568211147739713224005274888356888223279069866162851896881277709869976486112752773695618952083014455304784559110350298845753221789598386269699033852281232812762878923018338212909427141775408014086253805732597043899093071426847956089790710368667546397508244088199943021157502559003434838448840516562754189734085113822367510001419592036519652484555493869277369359829463678137191985115419023485006840536532347256781747054419097831953702506216083924251288641122656764054988056838115259654239224612908790798951377516596954666093795676005421212043947257036267845229640147143935568130143375006295913943676983516872870782801917545152129989268036589202450092559429764062700647220518725212619418555524899475569038104142416505737185619453558259217465209026167036233760800964884358868583288361164862390546907059954342500010078831372942764047682068158023078234210806060324739018512474110182900894763381852059091441456877274225222925967637327069390787551737015162166864419682783500306759778138514044436518784009389499775896552169006824561648105713324707224029656240769607703380986453335631159225750798466844389373813699660132701688206533643631140319583522995544564050406860329158496952298470589448762395220989729485279128703693961281212762200327865938625163044798472101772079443450493380410719717565942036021273442035991304408194283745050075483847727421696187309413105353039651630104384181381330350346538354060268815805642397870375684356817401337019768687212517331073677499653221468809894743243083098153056571103882282831383855699752169538162487004830332675808691532060788944952600314969778922099655808128014773651639827012670869480513380239781549352320313003865317651228137184321125916678150316756149523834742686589409754191769685424058612777516569100802777302073826043287431553336427569246604024831554510212344760116480606897194025599563590787133912612228050419351613991833452647664459594748358197599802323986156311704648733100116628902673949350380097366432085063846086105072091144486582032802346511003173921620586260490437610147203074213883743586213200016305430218127612021887467172069169440274523121530664058449478671886354114340391347152992081102632982803173636628795917729926808754066232849438266525945421075470673671887731487464655092772297201462524904959490426232330945597359526366039898195766077556303578016946029309960103592155762917787198104213146575940236862560128324870392526394907190737067485743227127711985818755483544505788148099145348775498933270318041550897531532048554586614004639176556459009236577308284430199842290093858160242571689654708551974767064102452347074396419915435253198873300207597263612205416524095285598888819610269917972000696607129720122238382943805909545092926435657015637680464192738494226697678385112619465092926486521566635698733451346356471122266137429653826846676351970826303666312198470095774975639695646628425660413868919558752058748280617054457610018609030261794212964568384426245639898128454150269502719262484998723060590502955413013210364262158554445031536473781708311796310073571197083743333467542286058405761656320103934869989746226522678563217179441047453543522820938065802914919067160697068415251155721936393369515016793565674804790744551126125433859083881668578659323770024360875944389114565616855822822627279036673673786254935206134460068144874284099492757537766900156167018578497194079925541834109088869594190711280436398421627811014251638201117322157242724907817749209846316822145618526317236812414354850167068557585259561809517149925797304016195626528122212092713323207464529159647653922787085134359734791014527852780424097756079883215975546119741081183563821610088607868056053135739817535341440304299390502726705861289260548514321016192891184558787475035859471408683777526429681708362473228967140699203980889129168891873093039048685077440665073714261129848149263788351993293505143484979226428799981845693515573195110381296713548547622656529581263584115694758071550595349447229979090414510444071922746607225063034404596348609147317354842745424404136889245687233262528506301763620429965576379547588789284555962645849874407658794155299582534142811583204730173457277142641599942990353803806894826019879777135922532103549465610415015513396581723094749323776379998756187319376229668639084444162741802975727819107766650687740774135541168253864797869079481264627262304893388673896317215381129461895152195765596431306864709043226099011349649007775908207584328192259545899321371190535462373486107552931456531256678046728774436055701379440305274338708372385931741874266861299460793074501771186388531017733955606104273111116562433569363311001157836507740181500128052670432344874877012581509556157812898202089620808292422951924309073459853000467332268969042357204833759160218725380565252282715439354004388126489510230165585766972280054607859566740213356716901351632694276282274917612665106371677190447011238076375934471296828806119086188908685219528136221846345281860407785985290914648856483815660940143912333672173750010332991833156722027485397026804675464142453323949909148816268389796663504743148155662157330639958019308285079428070571754643827203205351383819949474680253414327617411990850112578433289364016015422948423449446712638726591491240321088895141437826166384077207700055469158160087158249730585055306075292356008844953350311084251304183081789639623209731364689427691176232379563757551113750460537982449702167039855292300570768339230827685091480108401868689807405810925243958611071544175182279099602756858603516752892414860978357722254866239497574198808631725784713438583522465730764199798982667350963255645859753188012912689833145861126583084095837128751327233253405004980094818432012791272214508882674676330666095676469908372179181504866831929543304409108658187992951000529797062778223487870048064256071307670873737553946425470324075691168376409663391300146344302002855764793661076251998040149782458352805943310157215374127565831732872085081229101086190128644656614811616765651678246112925545929507140896205610481080183335753684499357226789398427647904313443147869637534866406310691186546451971237873595504684752685601710073642924283796816033525252950484389120467798094238649272750150152047803362419309680705832963540715600354791063472935745254102859074435536752532111129689704897934765859536934756685791362314751763205751056530119696623055581798003087358319045839253966658862196273170187374328170801572845160343850445058033498047743662858488367502787732857183624405062487420069547349429158458590436556477512397966634862788359367959936347344640210871448420756551801000540042537889709045285863422763201826874109391648530312241298973410441506615300253913498368853653126949469036151342964049844005166251908189999242888714905102575594132623224772278521157587471485712282546668217570367826247303346709237130719658828851680688905281260594268232490971550265684524343548576398973455910211408316600953501118413123382169835941656750064388240440072407742140618692303055931416268599448404265955488240223500042568417367359667869645840464464266464498227896297806725214828062693287532792160579922365738217334909044479847821049685354547684476155410458098401693717378964015832968046290767388843756921030344462162858783042933681899478081579821920713916682313490917584937853236857728526618062996054119219254488044937796378903344466346951389175834037674729954125035929317639439418910799703940777018122230807425308003112018722586775527880186068903108117866745824802214482191017572939749434254937797368071168272693109009607756223231171097540996247068005279147093565949771943986661258836562656150969643209624799100142730328456945213860461987603094965457948035713034318068443349436792244597798964514891393482657813106405440818456691558839998253967085323980299451770324346314677957896184085372371334040301296603230570280341130018639999998802816691713435282208806978956328131316749493695850996424807970061880861313655887149323402776615560101972821681400361514524790684679716979117970165983220618791015648439127956906194921160592037721178890261071815773391786191429035437560023691648123513602816484582689396868561362199768913682917851324220356174089167215489472998528164352003053446760989527625184525857874458501515955195429862940156963854710009420864847332283485854555048521621403147119261131059174299647210140298050069518131034958336515210899121367668682508383692350002986736733579790104097484363063049334370346184743219644381480244081486119877704863048380297361421978483402671401954051120046645544421137930737211770566003568951408112609690895071611305130458998162241469908699892533657669460049293633550073544398530480456352913510325544782858927057587500142884468051808845560289980641146440482048649544743723005544413267245924219506818952178486234245107115491899418180023180764978820061346743426241552386001002475425225543998918669764004835918092311098194542364020860841503004364520789540644657271714951199276063201423207603547614952907630008103814786528226988434203092810774060677373374059587185395287055565492979616336286311044028074683058308058482005676119519557664179822429276893916862864792391056000012114957755989340380073690034721356998995837441363272867858150723123170956668294877137973791172860855035375750677359745666113659400551626793684092091016989157112453520104337232871145698956196552370558919953909530212527120777389402926683538665757815342594907270969979454396281877261882309666774245283478681367343790610729241887912958625804916948510655858579289418362736373471577248404806035211855361355232583644699960570637902684117288481066607113363323392299350611993358928412177253202993852422600240789219910578492875006820397377360312324472335505160729271284923439456872291321765666102164984206410685003410618245322513765820897420006427822976920307280271504411230188592684792937237815893856504497640211778813167598587371191696016256144197634028508193580620077983922980591873404826365407846252950196222440931387660930488654990933350145703132138853036027319204872019969907214115364275138456518173112742388198994875194822484359110890477395937730692190569955528236392152679195074768717836141817217365228788362412025665114553658745455893278883763353692512573615464543710442287899231888561186161877687290744725087185503744322842111863614013885934974690068290632410696281992353537119418834575631067724844140750898892273126033998875402840512840927657842412782482516622992615203981064717880869734098012220540432025493527461730911074576215477156824520887635110539843810437000785355737520449717577493487571331844906048109135052825811682314140671841329632512125968675183565407010282710802438636013901928061456755092555219019332230300662684956661859062214348900193323954713755641383461727307432213592043530992405678162122653305911128489222746935683896432546116919671122526624790743039779183243524819257057876434592657278913090345795857518504172721772529169492006652787140930269943957698789222083254147882766012259698985991374187399345709890366097345201791234678911567391659624978964431609143405095293174231987806672997433260022716291323052486672491085002366283711067591414738918050750140544321366600256343976403324596207247735919598031550247044368322238804689388561494028181813738212384020885818615009105186469209403869243915870024364789101604701086972851956843309150982931389454435703140670128147873486539451268639012430425935098530261474855679254584243963392265987358515949548646681722493141571435220670048882442860417042945905130890377729247368615550517149405017290701245236628732559504933323598377281645974728494680286413173470093560845319351972476293208509132525863132297387523507763678756157746807227023096126589402703549767021524179763519144018998472067919111161064997188574171513581862740404305701045992714713325669292079448045770268308055201478729906572544308152862388069854638483121737975982083139232324041450602205805647601095392790950404694642263512014987594937569160779597529383557152189995932865441501625607993408866533979966748693341106194498255949820212822772235441389543304025575991971459098837974143178784334424645176511511340637672938836735750269128149159672093886189081275738116968501788570732117444293961627856967896555554959644582973065693156554479611144284767510210221103854227192468791664952808376040816689617327777846624153325351153039966334955386653919980961989173298298344849363641198034060069646233204485906050529888980437058327005017369128233007532965921254076873779657576272509609234597494938459089155518446692637558067897906466151260439321136955500308759820389105578528998341150950464060128657209417262036598858633701631987350061265021846024013045510143672618216919054274160354673125292039779585234139799362863175817070176058210512081460112509283676999877001234330858696961659688947263684886611107384620811197744194956786398808095441745676797717138527346638067449925962675427147299199596377028500932204462860564778172188679098829367636175792258438076557422526447464942474901854092216323744181947544630141156419782855108704479484798069378168682192479884842351321371559099803810121949675336226424341107265474197353354528050415251583106192929457497516576643728099168347318937952701115823031977823961347879292332122022498141772292622908297443604445753069181262790581433319318239679417207874379898049937237782008220819536516127705379092502613534704157316745456414678333437447377818344820744763221700447993877174541730497772506072965824295474800595485689124849502006547781223602915834515824475618509731942346125521773283347638846985706796548971534706284948996801475137463812032403520359494322439723270775586550246021565991084993951530821033192521117651117655534196065405326112357326045624144728485928157807526918952459594291782545153710024525246874972058247391893767322309370656331757990923482959406113245253914089842347549172644818774791092108329213945062921468970540101715113049486025069111606949415128983140299734550065080561095255620767273711046493285876934446466832271063978832622534927063301778090372059507756147662277158270593480311061161979391041199854955813960637886397447092667025625579529904614976344383754665603876030133837268010161149169918120508840305896433616051218346862162637949170184921657202748623743450927840875272231751318862933925413926716118391493286342704530301590594020187263098515242626444601344251838721016130560152481383757651843526255627190747532303570838875205580806195296150513381889791595781487476507159797934074060236063018950210483655611762272557965009410433462248702872574264708425690038481928924564407226350130684479158911800424758519701661492236354664390429476657215395303984070536297487229386084496040226785275430815133922405027676373050974203364880824499021518158944076751247091479085183988667432519285035654597584861169463105526622109416009299319427147196925724574825143691524853482692697501581246433056930556341123254418582377195459779655599129470758880087731657678976980487981947735059592155828630577371610728481349100955674255182496672894372171286701290101500352494283042003245095542903819855256460879117566852797408438607328992190829443507467086492340866371431746302366984037585183988344394269544292927653334161838064354066967422174253646135341491956480867765428769635030262403252236278639553234007874661083186342082531996304086860905097408856886953173336548889311067080657096164056138059399922157948642567013072252196675431576750597913669952391557068737959341118820815266619957656054181347123017858581183642994511455941348429657697200876874763055502209717412665259450750574933876406305660459915902007171812479327561821812395141986471867667898972471930558465987481226773561764800440447370665569766201862154892278013069096821390377699670570421688594537471170744429499928082373804482588127192172248929219945929444191609445706126391299221695048917519806414528776788119749851497827230678284053977654291550929061198830117032765514871100521732835107311872205678906587483201569515747717807087591613709761934649687948142252488063785014587752146923101265557231839652962503085475510979730274833631729555311177996246219419114322221733068190583920887822186768545660908097822359662863741555152466817907243100029978079167060091069124272332791319670733858696890866365509219172423534476151207022815608911947646673487238197767572640140670793919780569739844010081874661819923742634864941561768358294543689936812634528424594772488217937012128592065257838458982113007847195136559483849846864959415637658322078669024881687249484380477319344053014676128016174434028562616334034217694210277239061825617064059940759530168898740799405489497562897048092662640573680095442556928735125790091164054639661055613022196941110126452354754642050582912814792681258147018058832955259544812337283260233067092824152687596313778286337510104712224378126688114336593279716071150082759284853113881630599037314107843689312582045150105016687721490645418944200460773821574665706704091142564543867093183572096586515009320434211944904237338615423994554136483136370947845362210182324407678432433430972193545553691474055778821948816098342685157709228022332199244386968829845694006913614596974120584208782403278870292667549698828129797608444788628451623810136324443060790786599704029210035911511194065140313417612187672449717987109309528009822636350487773701867848987855707006867889514867278942546374967547288002232155385272761321256409883407811952846866038280918502747105145378027177500147902876059693431697811589711927273090769888265096128897730117474069186095588327224915022498088323252072564768580187685061892675429703534337027077290125613086461773305839927980336296753488588125474808388649276250691726827647104753774926241899238294047593073135825879706512024711853983753659795915765537562409561672943700330982963501896835969399567838846369308782684680207487661684153587473357529867069284881230146740730703222624671075317962293280621105549045105398155365066273763009559673854073092962899668024093917850874144587313863712045936615052021709650542942187057783738555038991141498197109026598240144884271811380417257020200295884126082860411824333553060879341046715016806740194651941762585539964758068386386036800273494207197862713371198087258811394590196947364195881153814445397288446707262406524837614258603742298461508203263099252716615842194366743562856845894598190367728516505548013820739967247451062276937614182342208989450298142196577502658098715553306746091508103673526234393665692066631551134420280736135099082076436279896910300856416263621598456780541549350650382913720245039958237320125685592790491117473227605880048194440921930786401474106663857008190030225226933879358300678694824291567746887558135399422259985029876953420348522623709129964889772332352469088643385964383032457082582690254049656209714242195513107652114071759324141736944507391632867172005071349907487819393636487587255106578140371142619485759435222271746966036524533979792143363106363314621852584234491869488411774642146869108510399594048985473599480509100560042682192490081155807108185070219483587629303775947980342845522486208749935441365286446954784227986101054854479526416230492927512846661166073942506880113346560897134487363957800989911167630744719978788562394886528399137055634131629915659646979820024490205796806700436982763070866038041370325806440115652541961496102243089703454761503236891462312285517494490354002029510313943805837794215280373307752753067724151621714469724806241933191128881257296437546264278008997154626171653325626575071002676198651029654950857517379183965099166814098238966755756237526781397939192600265514122940394200492892939687181551588333571082900776038916853666142109237592900907530043332513772024594943406516858353264328695055714407347534327826212017011884395385270470361961191648000248749401038601854729600187903333871290003255735186474328843383311153773688821336439233310865076579439215741626774766096352988186029591384535766033546740171026124701201313275185668945268497709679527527669648293386556555404989589448610778890222601001329163373249472949071590573699993051423870718638555227916110699560371131788209662274096270941073795817307483625443451912806763324820151980985538863027040239794950598997170108183014935484023960056105405462309036091960860925533382979407180228043509771569804005068835120051869806574332588267888241843879285766297118254622213357355372220383977099566040380956031265729273934424267550206250128870214773526166410290258506509699669692988625651890303748958684118442378491145892686942862696682560769514081283473172426849563163005398004986862718064087946250142831507466625387938249269939588676386507010422705968100221071780799860727438739422741417427020148646741025849648973741680170944110517986588286849987634877282544105728288132601434328671320314530531623674847251914464261765154371109121013985527716714548313416489572085929611296453521494240942829507699161314987776138651289956328565620437050291931080194448462426552628047367683049698944945721736817641441243645924155788126329997877478654872082630100218903410638831214203879594437911845861060542306304056820560281384154698242365739709397963657744359330560304657818808709545420425100754135227502598403858534104571861503636516204763989759159192044034853076117411731133811875659903510659189396580644861171011964620644980907273035706698334413200510062614197501143994808644106943979313152225775604463018475550071459783156299939165737949339208042011089182232739674892993824906520358707231021807467377792187618498165559326963900696098507620727205466493514285323688579940467501865561506805850533467437862807214677971080703251787468823996875392378192566815181279096536215518945703637527182043291597359142313859647243108244327276896866648451931102313351832164714551160359055673141803831388742976366555208153871455090859262467652408189293235087016888470478370244599010214326119285998014981155111695761953539621023578171920690101938136646748528404865695074481946116313211821571059879135707733203906769175211744402736217710755372155135064777354427705841340939138608725897968091862425815938669323848602426089711714380197623540602447705898683063222646465962701448990008851602054679260640463293254768799852647854505419826702227684672383433591080844309921155679965822140119849911101853490281428994807514822871785632247461554939609544483061033773802939683753910086797286262924302368262488899831661085918873999681137520018527195175439369264787128666864165606210309893258117147202235271906095826251749166452626733558043355932482750872925580599883015196966516762981439298876979549915125696953946900500174880935675899884820823831335736889604438584530325423901380568700565883035017299004462286672162389676443533968380606803630303118248094127821383831182742157171258908267442742582730048052821657892371684131867254276835661737771564036682722764245819133586976628230665163978476412240596404959336991614412551079487870553058217483123482004327815926268341873896498870050578511132049341737593460414402537790518726670919155086659079665886805792894266281700024157224882536071591645323499135193139197493291360479444439010644778272847879467962147616232713168142746629574554328516738695948513173207291533455968706583841885724148876869111371581898207793174658856082934712964614124042629348133275037349769634551211085948368395036665020380338842103869916588055665946893299893660039197519708582492677884659832847517159624310503468247639004330609625692166602755896933061125645718524715453000345462122726093834361735322214477881421478495630564405384038069912911650780755458251430233762667717321952157990434136127069540393494179585088512397760428727781693709895565742073367711894306451587809773427796551583058882279362731321457846383555923024868715758188599046407892204649878175512544553683474797081732330747521312343843642344333093244074648263432671633636291345827547984156843227814976320582833991005429247709162804742475141504145029620285759585994035453448245945899489319244063549473984670946163524822139649275007595103807019366593449636645428898874869639574460771662599629445061924724327149034849600493698340744184474640832945180684054635946314915586886572844456591182472084541587960654216707241991410622053093641369213572666282080561737643455686371172186608894373147750461898546085255805949026499157058300290289036627812124175157617497045818029976675639641346688988134950213838357337206732487091862034116923694167098897950558828281780703377922789936200066784342026254559465088351636563849174264851739879390305623870000005677881391767597364863888829153567313780211752568816920848059952330727438594094448121590974154217361609459048974168369131616925449347425111301602550653456669676427325944103217334028969196089573225012807879822222064736787968749659386825043108984675409462574736516792609509785831501844570685243878042226924869983655712465819535681319765420408364864282128440336590049723974111772320878670979766716968113748302571314482219039388478336918053950687535617776757025207926633789147048574482913508734095341103736782045938513679912567026389995458379245120415759782992006844170211206225821384853467699024471092720398978482061869715947384078637456750888999394530976092452444188116715091388858425708876391762590497755169263705352280276082372998443100270156986513499503566950159032249454287102493625512631203355210810085217964568457005536769791371034232085753233821309223889302346127128244265019253308240567755776106974518145320678727759237652193281838649468362322208875485234098065488464695276654755414118206568328056116226776101856353781691413286998346733454782384048485637976502692952555318704761323158611285651720453288989530644847114901668634618646483038913915259023822607234158702543301357368136987626653957313301184311478365784571737052466098068334585223915825627553670786499832407936237535672539005102258862135428767839043105601086516690434651210604339589745845964114986507689020743473878088038452203509847194831639494410687977604547097995303854246927698926697306325156262890012783969779369878637141349646902219055650427917513924710851199007900726444589819014859300149380237283977403005232768509501749658348692618282104254059079239782772344696571499385245596632610335875664249708062434024636611141330593075065372549915500001302019234829800188713234659706851081817233584811707221329347517844187763294709479242256908813703115621010631809605339799953115766067909310482182869715347725215912197162735672060257746425861779190269397527630644875870243913800703380911719290332404123015378759311738807479183170327136241612392060221146054966909279139769538208091271879351431525699499613568389092229623047417402434180924379043819741546665979095665313845042680618935267378692237018794354954947190095601163353613615821982779973580764177592234487148008515613309534784584499030561151430327542168823724081162675791597217728085787803260491573470059906307994995678154384805961190198047303270035569286487850035678930676313868727019463000069779737838232526148777109645880639623469356219119885560282304599229012553417166010450469658895115012170908631088036557009934360505201208605599955783654905224786843633524376929997129243854478587490089746412881620987306758492161298475908499780847978541167734536787522481144703638523941847927352786685345326464775455745718376194925101652191024956855259644136125437118567229830435485626609599822672265175956672546404660146462098573113798546484525504903998808544840647787419965773319189555130127464782872975043619838392755738003618094877920922098619456931874471910698452331169316883960622750429408544810702376732611910941867065151594848263253970869285437434826975675425895619866487244896380116971181933315564839856870395242512105827400310236429967095038039660024686330868212190687132309534574124118584237007058262369746243352699440542954662613998488172617163048719855908009321550194414673889290049789937817585878438478007207945808097357763522831369700539685357731463522439758626248299299467715761869695207389076976775859424980126506739932103166493187411951235744450527150734469431069651152395266446443449164475811994771333503312594907324663224800573189355644612599118261089669606087761307917064231869765265631925226636172979420607027287585121267088210976178761519230465108387311166322558859767869384619874834882698688432433883481134956609444773206726627280646387239280692725109110967595201773322387236617488710991588616972932361037480319682268501706314298823658294540343468380610357475032522723840695883937712759423379797729220734502126537723220096949455732617263403530785013144391089361132973675584234916218831185785543174039024111630138672349520367669912609849798425597913371159901364324381665330164449336828208116345784385083948579121081922557362646192992986778271172114864199971847323361820681358313483372959537491527866095872813884172774323789793801971490868655081850828221695719531794737635652903624504283057009332839175435387869592695674880440385880736411688185050708577286964688332238323386582508937967779473228568702724527027199605478220978160087075832138444084170738212661996859379504365848495917402413257363129228884396993215869860582427385734872294214602506796435325426588545464330204529333218374739917889319517539818462272582481958657305604265645834428024341428412585994417449851754377369428732239657429785144470315821083411083240414920921248138824641833706190954091184565816351425852996760448715361050260466505942464798690880212176302869106242033365396994343217504539784763116245845938446040497916993028338204759883494773803266587874238432344847118703032244596089438790394884939354316690103151552110240276897657011016477303272857308263849272489030069400306614723284668710997811011365176370289348190686142871386052738775521894686897429578815593075049941963198582925638638814324915029251245811884869900777379364514522512646294881684667230467362491926347956786183630300911141273277397593799330974371110870524328802187852036228521643270910586254130484157223639106406333035114651993918342320999782011091428594134043587620085089394932693515328052045113057244232912211280630180288757195995248350785917894664913613295166847296347770430002461687408155761983388906491551817942588872416928171833387703406337820637953792995939243945280265939162423133766427459733820673852927722023185871470266920183717565687890669994988991523296141438544892687198431808426411802794877312312515820259879152564836453820865340280107909627563888541209337927769928973907993086366803707908625300894944433309166148826615695906914211244574037036074356188503268611515530223898870370400838310469808606992998581179496827152662712935889655028053923294189537686140477511075297901128928067909829829693851566614185762816494556927774364801582295113484826216854754552844554194383134713598644503340586499302037407390424358133029299731617121298538962463602831767839544938327362349969129164823927445215438968548735705827358668847602390088949066619585302654712206565990407145052596344848484416614534171592572400110635711871950225214518905139162931477422758751153623022548125520565230544790913791606059546412907650804937386722652754487156900835902629104477882375165673726553830407679764684810090613735765403605741445137269715372863143822462739871738250640052027733115047519978453816253047526625292350095699576780663917595052083919373218180950647554622378134818186353684700140514271591034232329317485503192375577139544212994873610965948464303829297885929524496698417695191286910945318604206826390065552148382499201551017778743130467326251857403782051802461037654140504389507437582133624411358917551354850547816009103394377963249424990302781744245977835299470287483948959268250692339315001006580277690987236949964808980325515854841621561588167556654796497808812565177288056738128144863432840719687437471036948785796853703016434978491331943844402403737647924270766178669136811362277351534438303971480554129590423886565437836029729463519622423394950795227292811229684922517652994678813826982250097174993891078823933287769936951830926839764370906779200871686683611454463068530833561799903046401567017448515253275058988399506020719133440809868693389991999714778524447815009437312466250801209187446077615542057132878147994838478002013476468989033301525546637577851014748322268416688119585204587994049259109822962563197118855916672197908380700835281474640712167259883790341034471443137392059681244875773113379428950491400270300186944620623625916508804379766850794418122909190023103113048852497170754651620092310753713304606440029191335019551520787653828950268505226002639546149646257303464596560603534149729662007801198764740136701808372485860038499404440436954948394932686151444605913148696342582710360737911872881094382276349554420590889490518546785116682153873366041444216832505273122996293149726944280486563577341771069507665376505164903172927201737265771503550657323372763135812659426806523289302840881868459593086320298632954818444423349238723186741011672395153330739261228049244257013901597452094112146265771504433990037529902828565038494111723532537884942528346882131749699641119396908070828743504939644526201342283665181970352634271099201209323303999620652926551949537368317191345188238237711335267972125233712109664997097091514559990320878203425872983101514242652778567155184910906842636660746891273203755294272024658452802242516619376008029525722414012750635875352252214926699746437335269897784091574047233097071249858341083893353312004399803021586487535734624704115640924422938352669093838898872062888877852627259084945641355864661821044674373978634289960583901252328608473657864802852722031567076911625636225061022772512323649729372391793375998732080254329860482167247743237355394404218465823546889051183805303230184564018085333920937763992040788135616728808915082806310493212330227075928046990563638786472948882088573513228907234149091531838795245115168612692445998855196560547020206372244227480046128306404767854628948290925917916635785124631576876520341791173010675578060970169670072523863883721187449941515127505522442288274626681124153100663474942423234017559590588673473447630357270968053860547721838333036105613861291067455715260054108790869118860943044164755900899648236339487349550331144726387158737330931126139838313591079332120345236161248747473562441503111100970553527104302047891493123290481902843752771200824867115856823654756515788365049274223640261612108199787569347583432608341269061108805958259888852847370091349726046071363149858843840609501571341112068918444594917432009334817576624788329415534900067499762022356921395317988895779248590250053259069288381024398883562100143464384589270448138049649747811812613767436047962672525757813940989103027171180907076832376557180838785402072014229473101413511991434028602234944045802071115364374168214312344351530956861913971868020419798253197032318072569815772745404081623549549303762858908893458045944891544057408713334874264669158524410784973048862413910133347580671104793610273274314153745808556214885007335935168422681061945213233199609366814327081469614447023142999766004144211150948119994946205802262217653930766149303291908354522465190907858375958718207186226434718625221150188177382437580316485045225065328924044962461752208987773449633024984331289779671621388299795049115100114017597508314055962281394075557083399665450675221976724056106606464932016401635578094906064211195144361210503899932330323085435101215786516436085521084368928701899196445775264430642543315541779240021819775898013143677017574383021938431365987504924475467266294116370029645399498214066205432537922172292512645723707819009156051823980769757029303548835672976764255001390090778451787313685038995260306883012245925998819034588590557893467748348591416912718165784106710659019472504765709117310996394943010418410451282994903773138267901206183271933568056907620545742712136214301708411218900758665536572730785586505492393714692388477570285808010509148290623289876351860745506627550570522301565331466714835981019351372429848784244389451768397739224565174636147916859866393940394202409543903643047769135607076979148699045944982455972490591376218681507960906539486772312967600941677634579617598938950998503556843163038099220953927575480133834375106908300697243222640805743822756313514844136737336090744369939242459490718386998346230473604472733266674694393487378755816953515284331057992296653129497765177184112917741723297519025718423413254502715320720766699363343371457474062034622586747044340156934195813993150253352306404910010827749137642078373611860253759083823133358610101431252538771951511345660376125926752934686491088487907342431203090752526361745840831712293225585066834654135496960650928415161586482665077143394257276438190740585959469168611547758210688279333828090392565922087095059127071214294275599290242935771179826216198128816885527809970292921478095599436123752060337538914766127132727354812922987731838839246899454249429417055082548195717021788269162190240294171754452567126495514751444033435829249649519898949015611553696247408500963587185687684292624597561405299276441862890291370960518806593800847652341308475884892882099572255108312723220732418552503860690785931702698306543024128746417799168183327751081128123048097268788866046498704452579796578839476808521910967606660862665103853551503784010537422402965763665770888443050560912673105630470530551093395632936092416984053238190576417226015727984683267204044350696420816546179142750974600550753509468427287171893902595807839783860228825182292370890653556408578691864479546432480588315412666185964972700020948312410744678075175119576158212857529687188898909881663205819600686392910819089831974338923116899346416641014017337213013900813893468038496265062741966821098075384567437871186288957767222459984167837572929655307791065027865771969098014923366161608748572913988260080349749741090574955840177891156483129763493694610156137023447255038624924479261699453918137725348881714739082777722793960178873479751065101721219254349072413553580114274031076461791751770594543060103887428007047096137360855817968164596514117458285770371015747065445953774052520142445415256301440460422153186635220133504795501271020699048988784855162667551245087034355466202041514235198553175954632345522950420695146415120084474932756223143017289756837066055704254921734376593275073868793974650447555878460535713222282748298208445913747867996702224110885211632198464612923027508370569021601549024569211969829384166751042735264724480743104334712515843709561091869632846566541826047456318686986622426127766386596547969744259953531638648442592866306371216824598851420137490863139079620160238489132748449734029799330552291091160235155861919980567289505740098198445062822463893671585160365699752451218344779059328331026631587711975445592756065062787718100671200561485772454274015788818489355315752143079750203784245413344504669962288540148431662053354856847470494399129111678517470604844106556417884732355421646415498778975157588620686214844909931500140196189883862849138744837181481612125361462809863476938489760807486802902235769098151918591338022020643420409183708261932087259348898086936207749369945086626120410990874065105249488387886083651323590410633263338101401650281153477512320521512799473058167086931032081644309747316135050471439143594619424321058984976188421818745770787993199283709465882062116255922553657850498359058545088346088589179083095527332843506309675066336479059265104934145389236456073213378525908200755581935195735355728638005254677820680369940904457627759891742039648722582931878808012828126912364256799955280859622776415155458676560256289190751417635367703558917334422512309646605084302562913244236016840191759708056313647690491896724699250823729325830498933783045654273696750507434059153593506339024526753091286415519337177288120048831213948143020164997789630693809430046575787743500097204116927177611986830029514666465053854866439650620831891801436629700396075312879622978300118188054675869329533670707411583126120124401666870486659186083315782115506361778155611208988101836342231855576463407019330401249407525669364781638639771091450932437651138515664153015946207017275387350813606699827286347157626155769137858291099679309988592386176069473158458961343157314619233288544505593119937877407892578343889259563972139643895694870782877789143861558134635835425091958841513055156678024937642101259846880950453327729840216666980136194200895420767372931514039260239190697968171188335421014722418179739025914154677298596263029578929186090119417109172451285953137493644505346411031140661731884277814015984145013788827791439589963116118175957567214884166191969520429480451852992212986935213404725006575145225462164212630204713469732379418312720070181477134340629303954259280808073879971304592289927152281065726787137061755433483113565956601507923760421970193240208240535991504636003730892590469419544742499550356945888551142489969026163145957808240077222077258641946246804065087980986689507254483115896245335792511437993703713197333140945526695536778896857078450762293383209783453512495567533956642982499250013544563216468670909917455840642390281605188826890310639336753029285338224820486737245773594500333563560677827855816979059181367873488046020014172545530255546493653072395120559346229617799079849955312378799127731997877819321515324288052198322435580126132118070737397306173419246962771633232729968892886580597863166824339049632683414034324531793989616531504062727059959649122758593272975512123663829204863806281047670849861363016889108494024274212986716149528116285514668264415600122466274805194859934263092216323252058871054011792583294248447617408403912882003993168889923764671771527941434982406821677949985880308438084127212894189897732658187026116818858548519234626554536117738558857449686286392963841239506211952693600426811945108381784595618029310208268400333072035915414657747225982611088216604543750081270772747920189990203662607891479309138604756742013750104412012068751622463122518739590645354394401468501864771647442523616155495991824375685660321772576921019621969130590057336341960774291747165538809382539499268855285109569010936886990725906125363390067579760547182436819393256085372083020143619064370623061600280577567490826640475729077157876398849452461451805471262547626764208816984696917810991222408337264927831370524030034018517379963213735665923747260519794267596245412498686473657354749384250458102725382594317012164516498572636741885180955144634327502889101653491520147216799521612856941936916598417385620936765667164571663402410470722638952030830712789886013297338416031777435015703077900306467754136044431718777274666219552351116175626299039772157718722007962094103777455832180741633866902521942623005036292938061748544235868350451507873406142723323912812551449279631932160032518679198750503412330799450014015741992815660508897542935197316826896772587224504731735783143116686715589950399627087355173620671793111989922838313904525206432492417517447180939722608561124686489380156937914718903405684393549681371969759609546782082287196471617519475218474299515533105547347647023848211308157326749579769289254741926477567127143217127243628943457516757192589169580056668794425233181818206039631298271707363697196493381710135676881007915656435880707569813596238245058326208494711204435279413497412212769441347216162276134383837516488121507412127221669039580434936221568431116794364485844127177149471940469166460550948420472812342221271001822336015315456669729881816787370261159336734587829986617804439655215045238286503776309292906728682917954947698612802308400210547566213342974701902008503009686725985291199496783252268719896954704658858981186007046239437178570036008886807435274448713253708354455071062775578700535637136335216110405206605263036208134150001966030312069754921777944489706287317526292524716257151777425424833620687311655377563834612325885090699727997582508300035259673598404864331856269254001397940322742669638439202745846714458049329989434252749064885090417691437366989053238941660442602975791910824372771285960731084084587365735358539502432315603765115001726132759991041562939309822655395998375667686903533691167073010172617415044057465042981744990416081424255006989153856495349698082679224651144538108516011176546433201179250742851976625973769606925451486135960504350795486441459812499034537285849353964311386311393647225251316828039972361918159551603270684441824410568953146688469526206599338899858272982757191418165164830099700794220199029288030707869730575474617940968535169166884967866081795603623868397773768634860602342329655466825461551961234421612281254078521902688105420382829830472228745804336523336299188455664224620475324659193309213841124652936244009870456962597314246484141207985272209122186320269304349951500215862911598597784283173411138416852230839421908019150469355134293611916356890638810652345481491431014003316647682394949492069509613145570204614348193721718759818056794525156159685439442264534538307838870965100908572150046177064642414870950380129896132081386070488574441651417295450798462311491101596453062743421383540099050717638749659439806004275483282726733113664775385042487154279687910738956341128832986002364110854580869368775328501221683466086006259533911422534563801223137631713071008414583377333209110593995858946730163432975418452669332252488905898963419607004906442250138757678346997616302254352614352323192090583185797166409821663711041602921787301117785884806727872003675398305343241784837996154789558195490940292804408013102440741585747100480734228265168553766962347559778006184340881357983581184782858285819285984398965246861364905587675389219311360147324452255048668855395822835434277133005029142170551721039555813536210315618224143791873045099053594576639053430532239124513943172445222361972532590676990181201621482176098389403409634694313075282049763218470162795839813321300705436541294819937379291253877317965712183030287255039612638573055606579752743400994150933603706903311737728718136249696673595400718104085175003422552010020271373575970191057675374062999325283596262679954276982293788389199633706833412109022584794778165749273610836257517951953640491179139792212182830566918823570603099060059991176820156452165747319547685210736270755656755814984423734964917924643644889351886325059839604788662934356211442333414238708398542603705960095028051462150782639646776966019721361487798807494647324783201289568446669906350696987914197163475353742912645897510927173171607574993268161654014403054405083465530464991065026669256438321637695153772134526173958172788934776263640900689593790109461551606125903317439887587356085049965273331061590536364222757255611037591473481313040974683988426640700875117868127622302340338263100472186046186283360882061637458246983798195667275729200304197394213512524051346878455241180349604762835236137107135179595498433677218415532448493676179371908766542073302646624595359317206003562167409737014471545710053909559490741351887755632890667212811918601030621492789699646089789216337015823527070787703952102156439746167794643637018457816777780908521445165783924976329612078980802143414695909192057752099231776083735775389262713696324886448842352394934290124623641155364437727946823575351670629306483506111230516538407173482344416664304943842952651059355721221974303842927410672140576789447752913051220786589378577768880769384960629536021493095598357923403900081396961254395166685668967306714544847051105597952958940343966987248171432573305000336170595930878665769695030656887263863839409237250942876289406498538270479333234593445640669029364055084701511965499923201195070717953487761947178465483653491078808853601902659011120546799264640583383685025762078321243856223505289838260608399685980291826007925040219538603625349185826137869298639717353252320022729914831305984909355048980038530982209230474716432310825724509583345223486572624830408648304106522108358106378642589304293351765864171909206614983453578709850378726426909688618019996866589921797639556623598937658354699397875339329242304454996300902892379257881124374941382259786542749704594602905391682164614107041634692417925635033490166576720803676598817054640203594391713787221994381981546434695173112959278306855602454062302806248338234263711086598990804129327497666119814228496960608227156351647670631061631081414983747598889231559356644992802582114344934825433701206492088865584539378398656777074763266469127732531373165311858226861372753466876525211185374926764009289908380336096909445449759288685629926050641379098919676544679404630844978717972702465578899268090560490660819034107437964165699927532410405769412186910668820324196296819977786604421653180492638228089610134548041268873228880361837293092197002850815338076609180521451353936098297681096220780163281093865835921500432687855507302815104494338771090499135757625134921040915301924397106062337593414208547903429204971661650067017954525613256389629008272996872464097739003965750952065377260838355209787736780182532666094134948871590557635310439307006523108796691593705741453276393131153767377508350656031028680070798866880122839009157796696883550337632326672001808083939247387683119157210421464434761759914866259393789258430657265936429656145887040072989440054287004266664126562321337428611538546840586013988172390283942262197073976706444477880541636289259221401948658037329479924791560780921834935343669831964923747797742835108528958089632679734834222820894501294793289355174926894414563788928443080930392865834161179716093438090283287735564155319536971247985729959021692357490392573369995732110471535389090916586721315956755032718047576120862207595669408159053875714461535019514740821136191471929173361155780767784710758656671648613012302970076829417750525853382476216755778121385420001946820401897054453197840258528548469182124567526213756892027887497617616042335585737656719314493863189838311018101818438715886425397336433979823141849452684665481435378240185536426988436174777942448969098415318550519535867812988965735264463227553397495817268934161426183891115037628812744962307992471957832685880895751193745702479643149026623543571916718605487713959847008330183970635666950037349437035956830192956325984703081523068112407132973516075563235626671043632277058077207753587702594481551213922539176561943765059918549528633551194156106198035432250960066491640576584323833875637036626769285836050788914415368482947981517713483760122979931735495216784421285323157995904792756032450763664076076506340118502331454190698647967519565968636431831873424134431822146775220730817266406717439378302829712194110848460192332886885939748227346501608948374483091657047681596541857510733578687282894583782781903629908250243478191957830771736191177166506885702091054903261890346827968761611450885917460271956801746474720690438906561936229405505736056199765916278220467761584595474633113078361084053581141172051589367549163111406042348179649655871503273577940991855041190312243276988122678255561283606010730493035923573143166136962742322643556242997562070635412787570502996691152979053664851908467068101135587719071839514156026402977831147961627087121501837375093665210169413416748533231401533731262720970267948583982340960069332935582213444178684250188835223105600351378344762730558195641895209952027733136802477612310326615925558054050544526980668736113654106974274989191935595197497647009654330654628111735887709513623909278394225592449559993822925479076544270602937113176836562626357003547678256301200349725254634806695274357031007107072172425592959096014732091890982295224478970082266629628814898820324784049168339944069392478428662788061308548796565230987871759980002972550413855630497575541888268852831785685511038995867345281607341590256353146256239862768369490060463684663825155261271710021032420798270122663077773648458394744057458361132160817875421944786506846776206325825871869513593820731370410190556042869690405894841417578646888225897746307259168897213364085758659774831884275139208427158995232118677923374175515493499661164689949250688157506251369187862914395013721167024264413415764324818799036894223815603386588519211291822197264125417537940909334910422780099987765040280269401934722395716169918914001783349239916902472594070862186967905356349822858023454819272326248132937126293307879198069202821437303564476290897919026480209686364369572592816280200548512564763623760670022027765795551198188938403102875656571491174424967229875245688454149723427934607024882417950521240444777939136977558283664000335892710649524939033567806510657862171107281227467944262542296338363899692391671503279748255383296134182646428543552829861010043089719728257335466903112556556117025860070188328979907545439122831103166583702947006546055787064243522529024610882772249068321911175514269179024986358970285836289307984870825955525883207668312816631582698698344420961328149915004763419373512507978750105434752803934850595909078622111131761703036750009200096969372153100734669589079174858925398949833255862184572601302468816998065519214916460461000115523341763252082740024688095844493750229796796721962013219874416307902793197795217262699537737891339194422263190116500451312062065779880980081243458506957070549951893439704396097821607072954484480049477939134259256111470150634178049861626413240835871575843647212668981276467197309692611085933873307894739647239349296812166920473643567721763481391274297143771941310015080270660938152518172075703346447744553605756213256730269569446024667021913321102306316001702533423455851376385787612075262110310987570989491099675027279000189665576939047268855743467911269285029369880346567616649494191368693389318876890418149646339226680849032205308508411112597807396825007769721251447366165250664481846142931439368283892272927517716985780814060818493272582904176981800445505007605344952784924075336912290040275332361171201558484494700086398377472660168464848465248758079255973041031862680967189609887285686626427309318665810717157476939259814028712084561997231398462461813515935777440035056043858203804407946795851298558659714901943647654990650354653653989462323159222656395212153175701151080821993251998777426614076779858777638892536621591808462924265809802639028572351766108771513200494405638123120285837491436080633184505775200860276582980013086984892200056289782036964595048379099694855078509174284015800347167590127828340932054014104021141830247058171793961547571713668048219021266286642007426511472567764815283067094388933026619403141074699723797406368552524875187794166252088233533091587009046928209273551800530198769159144327324149862855429528000175394637330550416457950185952671056812385033546941762572060216727307704645041962868822747172326347704731199615519582891624422425640053921771938230130852231551145177399123725679838622583718111714309182991016275230938274763748191795148111919781505843514688697014941828631212730542893658832045180630282698419996155560538080227405317694593757877365680308946060742323853298491314859953356145417569109604320232287032448098926695425669496889809855180603402350479656972369227348043154926925374078219435443644297048692192949066238854682144709108769181440294407121122694108473668543865651356473958596893556498744059322052494442610017726252943580812921258071571975871064688642115745472791736889363080632735058960633587031328363330987923923078251406596754366901928547683618168316907973751089604926333112626484104585027759036482206788416899524001244905813536258627558119206855210785254820643155376455139294850795995110233990571602855623931056126146187377943051611000414627699221391842433011507778433127967551336862122349812781514912102031547091177949390203050108455298249663922620444494914477714759801498641348490744715828201276852171613308878177295023815065665004087843649184195075269920101969596022022026201840506745153548366276253664480492412696243085262284440622281518341493602199445814844366480613214440299504714117170489591389020070774453517518212524857198519124465782879390424225836984267880572671536743746573960631098794141120600855089340324223100369597123438420374011700608718513555266483439347032883964387479389794056228643640455350513873838740027984002936469762960051862800016656464244667905767519693087897917543049852245932482516846721151706670261427770920268388152067210627469309120201910423269023221285253478427625346627998971007114181798053353335835345954991713820000786335431189422245249457328159955588230180723017589908508032969968942359823906852164278696847509967756430740824402839306908252285812230350011322621875903097536566524779389671308399187556353787088076005278208163311888784418128497868446875755301431816676093883331584784555056081697963474855886358359893073598419721634968949873090386835040681132220153798172972080650148379798206684952300401459292539967869732528434430348114845625931910330933261538165236499429197868859426680726954175156931034847661558342976673843044452477890339615578147758904590100330739596523953178996715409881186647193263886274545730435601536895340553847906741120572782452489239070794085497710322400456694752666636110656747512072177696128267306426113179563102106091869951596778629091071274753501967736458270323301006259080353474932701361827521629907072916770000571966247763968884881255457250094118815413622316503474868248904514833533453139694078990554398967203377733410519785996841368823370174801388904787083186333695018945698335106303665674260094676222848354074438717596787385964481016733179592971029804623077649641786520195664449482548812226563367126286654163902122025033278573932784006418745035552566976155136666436414556924073067125441632190776133270190838947988395903952820059166286431886389151256003751999858988152516035694921249187961694981461276231310770760694633187586968753364750436379996672388963042401514795877752271318719547368080534685337271082728932672288135134103640700314959863578390479030765694301545403803031022998336381038758451790120603540265636224279591699153158536604208518206418304493619858733340633471389132639136483630019783579108749703147127363376720803273321700205781054986032612906813589214401766880253201197519618648629726121526598775901034089561304126763206794456357635393228183000082857078694234715543372769459157984567301357584587738377788893531471127523236138612618410375886895817964323609094044900549023350860918572879413070584405398182264611896481155407428755695060631185176509459448236430452630526023000096019646728641402801786774838532789215833701134327645221839291046154392645482772462443974253023142613352642440445874737643716968975272145482773824591954832123617448913426256133265603530664604919235415322412586570554784663268901926317657855303280893839005352578988638076269598293354874413168063061596938800895402053112455029711430804686737730825161655393498050731726676573516775161380642702902718223920438967507804077914874680635343362924570963879251693208175636070141451469024402834377776916314262547088427299640975902362807974292908060996699112845987027768455140662519278462377318148637738475981480016173467395534064098668385039119912704578543371233068029196542383701449450008670164473592377668102956013665491933803646052770009149263238650845499841018676606551084290213318799644597142311582438157654881521147408623220398139158665539067754749489708839626002174522247371049495261907206263465284586809409778748080833207163631022267946832531825993865898663744953009858341726757626922447704708783195978177345753219817050311275847145613129403001125644006264244061505581121316595368654363159040642810357662670447934586606209177888337114720881518843991678427489720904921504419489726356735472264455728443480315568686618642160998368215529063091972624429325097519119681192294297929294457305064283408237001593207682539536868058459752828338899899481763341842003280111781756258660345045483592691542875127162468407938629999837679482521172820605097352403803960046399471628549731520132650473379770414086518394333607407026613510153866073071100673529837796293105620924699859428360571236993920217236822995440831674772986093731583001360831771747668314572233293203370037287428389461217223632397804816092676641535994035199221831496751450631848134778260121169263717236900158129949601314581243023142301402319220768120933645826018582171371772680981411819584537518624057394508700593591628642268854867853869399840706671523653056737503807999497329491814473222086659896010400092361550429167859435376723743957848779888685991704399142348577640065839546539208631316888799744139477663362125647739435976200550319086671868956486145863514152410123042745092584718191491327486790849239494321757025664014488781277340323873411865366519553879342465404365963536540634728308751970579800273621801177337994984791260244934207619287412528928465740391881143433902564973570483235940267152615534102885019245400356084953003654335805366186961154037880058382761354398128050711420322259255325151109444507603489538629259040819107840235613015682183194545488125431299508965035111778567352798396802565998457607782179143735283505439252024127908584786571049271317030579168800383914538503074134286450592579558862298816670441181679136934810311735472046317139613889118681175696135160559741928221826329112987653508580641303160046905415264554802072881662515140243409208120630549990965490699142189511863032494372850626593250876406296413837250744751590736855491828836822100221169672595468559451760122608152154198334150939022959046271003973411480614705607904329730743989044385520175726791742621275238309141153860020686050156450277224681849634857516644825948989609345560590643118443090117115263797381144358070944494865676182991434156552180479433726474431284824760061324309041582390439305222024503919381983699731306696481477778161945913828486078263542498774339035485886352881701448458468982797324074472898061079582118664169371961867245701824001844950269715613190517368585361531769301503713451529651367840252314019468021471141470262982717697662532878227215999343209567726875889086922351068107063212998160167784002044017200717072349031195865211059661489903725619699863211038133473909305292780828520058406452635409091371405515618636194134680083675299371140447578835639057216914779024565454902452695699525618827887909245698904744291433686284734242681892198149564879057681069137177521329919896229079176397879399948983027691861334483300304311980505462820780074855381281015548915184851043286567482174286547838241442432618036256885990880670461592288708536596832228262839209628621364381884196646064073202850168389682133067872009252490086182714947080120424416816244092782820703512794824640033074437846269899936772420297108053668780874348285204008253660256973094428191125963521449562453682995529174313389826725721154322566180457949838520089021015685502425038759763107861705628828280333101472271275144004168387485065116095086156995712371725527525976814401584205805738060830931680175486360710018800171597624594977598910946612068468684510456815521767789725590520333711130926207345328218196673674086532980965781421159684070010739520196994085006559424822179164073169249739351430314384392510253383230314402671294995667623263820029315902868778774908270184836285418203671880647777109422834308887371864536531666161088526117032630960686225697830253096635492062859086170210206977943430579766398100076412902393699239568307594454286024730081127462754188514140760895706116042405304421828332125575410686356899192187278558242015639465514733794327652175154519995539894416021502953115001492025807398692611685448629581062883949190346337303894464853999622066369630381697517855651940847437842114878099994513739365356844920750881089427793815736889322114969257432426080596635484451207359861953197199178560422103553063967558080668511096846360108607388007315297355474182019912642856656133754909870191677447122440276141000374710820348840213045314784145995146145144369144572691199828099752137829166658619088818177327314562880034942260640640275853393525906789236842717152223272739283896977035909276701031450127190097486632267143299542495990377375842414026661215188246563139811671934593344045686055880590904882174664337848758813071984206986163377920467303570542875340644745876986634791966111309425090875154457610818526935038011913218786620264157781026538601453791945209099875604191862010096234288991238647651029888325855838107571598368859557170403712114567400039007710137326405144625404419332175407938063667087138433273653610199297951790530542251389362788968458455623989950710258290936501922239940062435019100524578893663492228778670244585299545844031877999832536387777675216266290840640680468032943493787747625080083173037813849295477327196220546560055054722888674950860603172137781821160837033580802889563443172686930712144097766619969208522558383896887814985501056816998532208245386079456790264230939151032832410695082709117576547274179066458530466270179468191095345437246491271714879778262630728687800225817802931670535379236460160256392311561694810234562025177778082012556216964464931518745124224995372646252795142986809273440042363972970851564023784348663032683951626856428969511125930149518307870029715611176747247819957561308275381412226066119473058468637146528979605856949471669692327860292279087645855985233067239807044025419849083447936408756942629223948233572125843908708991063828206023516315878525895134757751049058199792298871055997141187256272052258212195589516975569519151570556557727714945652188568795437025761715902675259386681155869180656854510755361690282731512955942260880567107045577973870037529334808301619063941935957341865638386465140686966798855149101541946903248353471516587721563697753363013268322863620161063446773057274753661650361470458869742610688030684908389970171225236622113363143421432832156342865113663750868508620582874736895052872366785110668007837194404686112556756025055277006751793663012961105970423209241868490530401252352487880164796396948349453790126295676687931096000622707813934600406898776118674405096557497922761893209301453815826908111758891033065354606302224491834454507933072583163702557756973692469042401677305867964274803838008742965823220193301590397217629935497740529716581121343033548876764818880632561537203818331687470439639215467116842722949601454856302052970070609697379328059919827755453109691921576164532129209807543720615654528961827090036631973604469690202919689432015356657374599966353310351528735702869545028138660492400064972202546239078255699573187943243255124297043111131532906640872404770902920333055970760124040805312720715490387632194196229889017316559220588283495473556164612621344588623111543586405982880802330657957670117807702194333348732074701492837397997872161901766753468941626466063087630303064772122034647534226521719138253040578851299441129524535268608353526354016967559477763992056976809139391088770221451586988164336170343969094546555115571890591576553644552258114766695963269504854808563513523539355036218926791864711194123639387496677483167443628147619477940685307281787286284144016377865642483663248613237451194605300220360968001740611199009367651117562255598719447268771724641724377816316393463241009125924802022203480559520280140959001875207966198777601489892200822624957019925650375930075071558398030446676048173526108550309065296597771492361706885772336151383696409915694265927682658714046737659637103091236883345387662873047805699674742496846131478314028729816052299635698199254375737239888622511677228802340653508557773582826498425025516216012697241346077965264590136577443942806070963208693866690014418741612122216069938503202564863759377186668664140363634239103723312143881261428282582060960070087442356137497804161771744678791303944820951816460798679222954056900081237923449875684094329913482368206190579670422506367286919504743660234017899032350531103411450921433191292218897875767147894153711458706683282414629174527689432076277947237490599565149654053426438776200930604572848437593270348277497839693412869756380081876337502259482716531128991392731516064928280642937641738499395376749152608276950971240297014343988918288968603041379504997708102828508352771666138988414655302896824015908327510583198279306989110417537960029743209965406851704753560013389716787721801508181122392596400914918849369408778319627751845151172800446675151724786538437820162619487387378936895353117218983006515953275896654776008005204387116178925752888931335941180588137471551258075022341972208690509584882074334225284716559980005107960762060198422364001883053280862017005310474474850908138172122720663455208129406102256162944592688862713789704535730206698447335370850054229688095746764013692713082782518308159646351531921180514536095455657224556908732158629410995135475377167746355225444559649802503146708016570404955132239379694352055055788612834575794210811034992500707578560822465239826053213518685203687091679909386838009122980457557850855139812103663668843687638425654608240121780956809152452603337776810275486487587563062802614826808782430046234826701242472082241425486134797065742725027795704580674381879191829843531369982564772377631313256141439410867429750585922086500802696675817992712174440489603100970330903552540782806689538958845033229149500705017372708663388727893195293945870275052072605362862176572221795529367559261239077754671696356184696102479506728850482714842136895468360085579459821779078442189488212830782230890694610444069675750627869456947073902341300673616955139407193615310391536779656598280836457041922177619267302744858176417546464469877315501004643161661208014013724655245704198112623280740122878043165972081298738012095291759310766724876435888979531519697568741009889552465883604651658154333157962777909137447470730010357360939993529316043742209716725917508764360575368114264745750995531179192916878708253475319962377591865034988748511150236948956917018685799118465144181682409041159550255071462365416695969810805532903743185317990219202074110420217279049625171636899908497093981321937325534068971189469051051378169623192869902179532722762286135891761627802119365704973457277488952203184729036761949061504797773660567290091632617373534022417308040000435212638690377701030557938799045198743050870079094755578976519422276030509030095338335807739896704219481631321616653893184188925385832109832069482212014948769579607362965904758844910716405446890191811104099045329334114860245314074672386637783465929931829819571478084044503365861234762350206806873308763023348853746318696231310168024588465948535004227327812607565058285515765433332387155124524718367843446955416991668366974678811557642593840669420447305065908535458740919176278698370361737620958854938830219573767066321126007202344520579412959472389930508840551674171849831416733811484689014367188792546022037755187822747337224533448681314793114758808668335980989779732156004693307433420619043669056575732857589432992661514551351348696502808990903194389556779023905212195041032756692175779917926580051269746026646468596538607614200622662110006247815421609177889176796591630871290305690860402800907618657893192871795986329695033523480593907682693218357015038665987822256015376243383137738102369089444320237140607018337283755112236200691741127437252821012184403009029344892709846852395198373175354882430374543232194038442665731419723938853781601165287410479538078580519570001766150431550795576973968160455752341167244445109896813910043175780804034134507946307121174206778459250810419525344124899582536547977976743371782734622174534803705641849602177186735739506283162527860398569918800301671285819542345410268265445250769297974869708622733118476310752097035546423340441474111792119193181162135766097043971801386660811592941637591997071094623717279367533458188064654881174370698808132289417589039494114235007997613183309475923967295517799354944983718834843642330775140012013282448781406396877849757604726478620592899916484342505557659617226719289638276861548439681971655631503821167846073283443664408618970921425482307578959424858868115448785687664865180155046454798284661033920509778767710130180731762597912111532606203853028962865287025292446562690508577521303007877743203004574305017360183492310846360129200327522205359767960372890269862063976370437165530750237007512611297027408418858992174791967932202829694275010538604591238528186942802437872161295799487527139132711269729197907753226967883933859200649018642002517865330039524108782255962748610685318340816245276551660085757368470644531370264912728402580001197452280213496399165345411451412510312146748950578308958441603181130083300229612828052395858897944762345857119207815989840645372068225451627671857177633629192453604349326349022788636518614892518066541804058112745780119835741997742355007033832286650467586416254887893501139630585027745348485137011969463577717755244934575524384282720720199641996823833396134168183855328517799487971820389803709498112104936138766332984222072175349191331978731951314958668801807971641761034828775571504386540584729189164842362597730653480696260860955774415928862274814053947196002063879946782923531366304959454947233828859526136816917317300946085493354680543382531205040015424704215876654000459198058722456159180557677918619958989120625418203010484337791513202309505901301118974018862240218067916976481667166667695324518177190383897684182481113911520378646209559951511091550953243949836313201299200332299630488728769862108312556239287435337729499029146165033368155119828832965046621631701195881384913586660624838109516484854919017118972218259017319393369947972516107675871233767444513627818785116754778529631880870852512825730474048885203200139625358569843502773029189665616215397720240580807671216253886905440635601794101059205132334559243605151617504589154832912297956424795032369721980180979153835386797515711006865302080102854115153606881055552656410863779466910891180800063765267198625460069343600625134118506004808235337837620112759774395705372320985254334231019600349508130951402102871765308347175790476230128152598367780514092089473005670104402883299287893210139256349344807325478601332918190216043559737783348389200700146220385421237543331163130943391661048763370870709614218320801588264506294080192062065915259095943063504986957688957363043032865273667160067277512020074679216639569986736803173272448162562615843377025482787896872442676035663523267197903339094428642938533290631711966699202619822974848219651447674721389895083914762115730422119264043700326607798466665336808628175665999597495314051018661591502908343876560462273000723150990067933843965652298857834601018417657720318099735737058910444116768482629339090746207254910876389342689993023347571646248191687136455333722677851971978950975279034002625232543910145402103750206388210160351786311884322767024040612209666078532478850991027603932652763019173176517623132683658276820495693334511644738335094714759742075211532847723462922437397599736771083089826981076089173772605555358877742207178839057961087570776859542651564586837815495640407758780939503743759613141066077817733508402155460765187238862308172191917802587323265017469582590216429306848204240259005886233598109913032701732559123702336064343036514077712496988947555506387249117531437877368464317964290492828462344716276574611490161305610091765321722612756716867240381614333713922204784647881137095226120424168634287944930924632884947129926090173219204628450794297545604754781152155973126506884328804234646198997562946752728587439291452568523839427545593657945063759752605585878166852020038672670441060588970546329585465885197216639469263853694924542000233468608943674456262503480235504620555724615557579219230889888083472517388509567572035686973408515633076727484590192324012012769498327950953817507438443093759786915383417606469670815291529947277911209279395594471252052641855352467621519890979816557256014408136355269973696719428622188326743779172144422199261575120620618701314921585052663902711723732930838137681158012356717974477458782890678019479761617981107257215512506591102364067318955425606023667204545650382856429865093790689770347724415630005557072722610287973039687666241431685233030416846198969735032122802060894696827659147574758535016801480499031302444861267682593954958236183067490708647198645425147703663516206089091170489899970046477941018001328324572898020659668224542445898525814010758566598917127325537408984353004760296136200410160161076081682262281183407316268931289425372097465561150815744686593301626582784130256957552149773340538402182459822945417366729345115618350158538835257279759546403810763218559901639953960148575572803794565073127257205945812632423844825451775702284269795987063073866459578799342971852690623716340523442451696167876654092961784680124226246443835722995572911703547626201968536271466256590555115013103861400133779147163858107480795014745425879265873518472580028235527113845416647727797823820811238678442863320627316765568096603490715961196060074073561024001290772080707090170118188274641594072913816670048847315733669668427919428358103169920619765380614714566318213192405258398619712631094014907292762934876643977365503429232265468566865813078856557229400371103245384118221479847413603025119461119128558810041790931294901474587052111689589260509104433965609882904191415752303290663993296363995872484271589342750567286855998411595947605637586157125635421207258309392540360866566217455939624329475864958327637618061678918987793699745479626144513195944584830761318687648910424052888509244243239673318863114286388766033464294528318584004544564465189840689664688310131846060543203478370344692957658920461790337342402584157168457872251184803991917638063204923724924428062888984697041691570207979615284493828779230429307267720566875892929510587769866662912726892130972020398335532747049504357750901598740482566044102824122721340143632830287772591011672543702736325905098739303698596457901880901248478123631626875289835474096424675952567284893433290253260684856714954601364442990120036568231598878527207024674064578214287264810021322905256536092922095208623721849262858101005561322825246572281173188409527663868652785643311458324941018734546198808433372167049952528317391736273589182004212417818371834103316599355035227474437937942424543787543967220790549960479973376426261911240307010132718340077477229348638740620128194418613099017261911615178139136095041789766428507006804030575094033956270796728350484874951474123359612944333188891640943833260629312219483864731144421263153897134048460234334070244050630795852997472948890239075397125003910842591543789976371038627448661609496839456163939364571197948293185252747390100218895309136866802527282898556953144207148873415613350283088006458872762172083902837456185546010413488803682573906654484069042503976059878756576986729256788668946522747343794204938939449693322720901771040391857362648202583479071641353301031861180071145077139460214257890327596818362963977509469585622126268087684860081323171468469895532416028495840093300563973403363286842443782873773860095306208906620495587795422336556463660017903221916919488915051658997304360631529707640669561639809932546423857735758970994833535949941741390100238541907028247433554721043088976580719456089007374446618916363536567346077630906122171498607839661128750100739815106146114781907177649631248450635166345211821589792333348219074599994374843348478921250291592765218727969564458014190509785287722593550063384892451036570103151146974031678021748280091023257940762769614375220816366115004591084344254455746537744812006141826805929349951753081613432037257979774233400260799616890969477467059392480583209887168014316710258506342267561502012153795468917677401470389071014489302892076596118484019223935408912053179486716400647507359655621371994949444537689617327882583401079853195040479539321983969063380435494623141418257264905341923846778345900730606797135646328164769942769322442478567071331146119365734394666937060620745614499203268836966111727685615776080160372564012376408649485313666011037981409031224032866751530163015154144637344748950174158858722205776996617534897198350596697990729414353249199438633560359828260643925408804606107801380298823755765868751997407586755596701580918579155345722395077722033681030841121874217875772511633967472742618352919540814668585203451396583492847366118658594715748811549355713907401303018027771454195551940823646862813635727104480287251220304541103502490567472891172690135952626138666390423828041465851559518601267815410165091825693521225147605807716014042923461879251652375248844581668683938785299229672907012531246692734684400155611576871041292720263942515556057478897878329994890675305133011459494222085709838864357905642345533532130472083292329982489732018152103315709959158003541242160555221673650611936480252712369342619662125358212319015040111103933867598950437043408911096832617134560687152785822682829904102728795712393338292835499313755831576227789440162203315768788276955595674045713378713892002200846213850649569736306310872115177553087479133212779899496293492549631142092205833147425581232493268547063438118639807049080042881748291681789375513727496246856051643557543601454347829687589902783994240909597911420392340008670256811494557648756354704497641307091813627784432276851698424636101624405377379919417430669412268213954222038929403682923285018016248634308832676893132785375761660690274732715567604084069486105428197945162088968010378194553542119235708356579958361447472668874067965978322902506822435688637488590166567979414457000276124890713926948824391862040773258492986054679200285996192135058179873315363264323314043893629474147121639836077020707864072035293509877997136003765609398024898554150372004333167715316304573109402517627873777227051800369745322564697571151205145870887970407155396159610610833681791845106757428908689215040481758482704418345465349672557958378719439024608776194591952728747445489025670701867850577647979954541346207267674402675059609752391922113532441527348435078462342813653334676127085048555345058924660923815888986406222246999808118664451814809771723748359457928382995983102451773730763104304893326868945534928078761810826827605900627936755827897515786710820707045557876526579263988260893061637338857213930877307886558250322209405878724386994672375359496691209598109053072205417218726210752108318739909611417718061449191287251094766035600217737690886412433648955592647126131228351726938397141003630072211914073729819183682105874822293097171811672166041191277274666528459540575312919162146998392106003126504822566585224434005281064538796800637910012753654374531122029476629189152004366668456784702430989851215866114522932393399332428632382214682727902505163730082244722645998984427517113115343539720949116164278446542546403638623848499222904879035575321547310891021845717106137575209486790282060564109601487418215841652012272487013557813363739930802047484585981575247413510778232813168314187196982020145098785819312903720459604283968895242385186343431411276570801204625989992020691115487784727132254507105233317095602300912145446647741746443513156343191009693600800142087714359607405989240092858484157180046109475143625273737482166784490179239199312597806267988290182331478180433701073211279098978816505739961196154179023877598804258952197382670715628034067495395390524460376786121827318112969840792266685472385770782035126369254085574401570701155087546391681375121950149310668401108589621143589427503403517198915592540787581972943363576796813830097122721826007270429947441984997755327487661720313607715425405865980218958659295203821315147558549053576512363140426667045081159428582026205580633473532276742185799350060251834731940228918966551403386157980730069264497262355368034737887576610891852966990126648505946844451418778263614658983181288132298732035322116220558712532135817224607133937157759551448452560875449112606763338336352281282290376466537782812883444292607410671431550061124489674625142157364146733864077046964337975230352104885724780924077851070142131659123332009835284301784321510888150180055908005821729584489495286387948602584706280024271430537598502310738726951627426675438686573288158093714260953581691695471127775866210643512207952244660077884999514818514806470498939408904721968595165695352913384713502611046298141891710471087506557788759694142785896612267039658485815505848243450425180707627495013197403875775132284876173076041071358550368955145692146417359435625504280556827574319825946729743935648860622094643880997208097210463163276448228934275089774777315642921952224599913526291320881816743764797777983546677662923331811877655362039307642945685602207612582186663210468362516563302430522020546264268105980459746091652317309627575002114678443095679717927774654568632010204414136070893186524502926288927080550520725006642596285734273903636548571502214649138589510568450810325429196684236158079878650045499249349471103459365392129442949430505343810544706365805377709130424271149343119855423229331415114117923212106608125509583830491556896819476918087018036309435356513718949805129459505249484730934661892845110216606922991164407770344845599391255694888359706698670940249356658329689507179058908940908198659519872929711507878859739284518497740354700030469620030128875698449129435005806347149515622513672752218807882679516018664773875601775376460736415809570612622445076078955861738244897886903855174121128582054997711353185273378755838141026244695210525407651155758581317303092432079815772066916921140585400949191052926511023769243476132166449971352627481953471374090298762412364201043452062214967812391163320390077088471109159601178786561903177254072999514285266295947635667064118913236074704613487291205052915431547959183301924361799125533900627053169267778151990372929007561986711079067408004274406357398010258660838952141941146073082768131778414478947145846335208139218559926518249695217392449018781280074467573413063072122015347222557159529240202358752010935507785565355139519216419914551979737111885432216524853681134420793920786050054642832662059608671486507456848689542848364590418766932512570710182865681454090249500832893307537791344480339973931411195498589657433171797984310982298512984728134034158309901053305351992057631931114473335758298653855606581335052126994912535949105116135962248814707553736695933800710242441076749748857874782181850227669195829530084547115855619724582723296736450271917134456343587292836651534391101335558754530021450501209264093038407137719202275650241319817014900526504500236306661112818755106887568286613727111195775546016216735401308576430378822480181638865712832412616589251150221760554487498314900153035015004845150099181361337334023301250366863286288661324481717082463978369434216930763385253598488470967336794343855687779333180071397271144874752192156557179196734376387996175652962485130964448538347060095127164182073802466592489288227068662830251631716815325325173076259456726628024965369938786746946806071482916076829771574011563849323587123116379898341194240371129294624753384753638977331352061929123331450179309730851808853916020996867011363374728720672346820015238401834374290792326804174294877967452378518585822509310643360140786268500108457803753733366896946973431244921501447177963949164830619576538779567013038530094110096279129159533452255943488080442409841587314800463861860241184673000888345772773021866190411749669949138049156843868073366035356710262985452035432429797749903295602964342288363019378214309594225044331029126349160725477653532109197391312480246028263255083360819616685852273582767097864838663469814035680385638734335320579510714229743812550005364022526778503850767112453981567833170360259427409946616893682177331514630167669373040798479301366219566150903760840790083067782171400621733057649096804317148155929776506013507143548175530279118567879916927147224751453020324195971849390014106809119773741016873616189658297212998764393363734533843040074176862365938691818785321082472912735471021188661384812014954179987183062456892197168609360369797187812118864922298542085682220906725168046053791236933838429123794177779919954690619941210296050975006249560332947528798761322023770172865001714218407698091153729305259926364862985078669662085833267809818870463011626008579454731553184451330506619496111716882853536050080597488130197596859491139071892740158782946408198980959709808880470079260817871512081328381130008417919693933392870994043743630719189093001832395643018729943185178982520784457112374561662655215094971322369057578700438327133073258015404052001982733992951438611955602848621261814432512638231622602692137129683868322058269113164046386284996606395368744682708613038811135583604651053276572452619885499446419048812900768673985366417456087643773878771700811169035269734606295503076549182282743965073508320287069430773000003713028741860518932238460500934031313091087856338255539632832154880356503686603133023199429087715902749715248152318912100231092733974382336981890737249538942196290921149035668962165775572313522399026890169009703983507648958352849760608500691486513571595689367571694883649833708901742491546107679162051946617252786861794659995843006727024107776224207214097094986787286437091266751962989297560467094770243437617388774833228279813664247656872393995788853816378272999903081176997252664622286861706916049763756427630371981062848146586414617461158514496244475296826919115713117881601838555475554088056691063726998412552534473533434477013242054671281538752672985880453289537964167913700155341157441383257920446621350877630475080428559110624120027378179885520364461054161156761769715889946941965063748421829489072779392942677999406953179716935570549264212157609916443162393370770545585104514012798157183775818952766105699336699852323196581936145220746980419172481154734079454419861497477258140120928639020357909557997944944152398477543183288211057191180682058539125046358846482977903514321112716969591304621280225124654836919609022219414239757032941290608565900448843748020249507112959468899260803533262261285922710299198953436792576832680809212912457328579277370304043405451317902087151961559197870679359131799241561563721069148193728997202512200972063713325885973523344940113914394956010218470318071114572657690536776391048603397779795132097714010102396382772668269470985294507098887701715278389610078813701084215845053592952920397518228310629248988116591679065365881218860474835866921218078082253062169304119765427716741235307303389666079408771007353513917770204806306471255976231209103433110693795981243325886431801057142859211279319977529640715823011109737841228104034349244552993467149967738670927409381216975231189991988848599029295920436689605798731678462626599723632269875212249027877189502296512724293358709615293687826642094965619858574877145633702324420902746257925451640011354620305587751782140755662188218144681197539980645219662973650311490050454609244355446578741781191861169222945627690551197981197696001988764298487145640077624203312362013315386823912588641568808629152023832358850905160845828420667298852603702251096964331664922795272809596711306145001181764257542561450931646374588188559634193053526831750417056724629964612866884858189838996177391471854856477771654679422832375944771914251250468445528194912208915143857602601290820527589942256086293986913469496929235172088409092067144139746601509162741200442782053791358833980120019155249371616851824727863315272728488103644648863369904237620904039311616859022335068722597666777448144242942924525628036624448629034478940320886557030843583485329230082049490666350164575994457682125696450315504294414257357902313912314117598225844656979119295063278839428045507568388032230371022561452710937565715460064817088401388491691115414844633411955512299534275580647399635651370795788226437722313660695894443974195772457345965658847869322647952035773772254239774522993162330800582036901048553849452816459893204959804272539420676390869824270943118241696173848707323098295226564215521170246691441326937990846820504128914499332417329943940608204312976384270759554313387860706607686337337528241707669584775376155158387514101690752930316233067054819100951648367939627948803706937128995640678159370238166295681383286614920336696065429315531588949248033361182468061995249089515109706043151961222700398803435862895099453760466925011043154584968342227555355881725525773980905665240437124754807552286505958660450109755256985797783504465299517977779845914689844507196642564843415046771844214655984530514811963285432958560412379528738048738319266485476359616655624464587114896681122666029496504010219109602732878842375326414580589129426736479627098837999301800572495675461572142299106627790990327635935983462940295379400803925002561264128051689528603296898820431412453194761613154352929981556348510379063171688605634073852898479687292726305137376726431296682953065790340318308550009802200875114426649577055564237576875975393824904971939935929904707954721639283157885606139315908323998340813347944328780555712699999453149666150265233608570606856526734694631231887306697303616158846383696983773260209136043170067429377037221576210221130319856276998450497938508604253212518852982854110801841834266474297374218784982590612903048607719253611907880172517539612816613871492340599056552692183397561796066297790839757297198984800274611380918516974477668477578315941087345773902048785225254512634009744351385354899070360125457335984507880471439036059502952110439685193317107885754269170147106744663679524473142682118615135847456394663150572369786762772875898347858733733444474696686040041662441731878998555763941968023863039864070149483715456425399736135571693223614578188803036463777097967596466424693570634957822835690906093463837731965235405755886192340153833330143232131174292906992514883895397828703664056696100912446805645270899909730169350317131792487032590331347662026593424453739831585757104501766211854139492046706313498965375799579224818339070091260900648410300343382756207705416544733348320355309173090264722777119783140150804804729804701897521760599508894275342879164145642808648229398333043676932934279832395524033660339990827499350560435305049229992970680086642678482404158298462859459219570357372283088126288151693458966216587869251137027810324956636881633437471319125589684163108516599921333785399208895990631734554481437269733320057781219228559897047454414888557687565402440633156673978633915782676614503543784063219947154015060792627530039753666883463737375558407120324124300203747101958020468269992928049756281636721347498897595529456082501497508431888480557732137558522036459791247383880623088501338227158096755463803326016942747031725805298070482367884134792668608214664691020208063620805657454010481813761232342091116015392194564823943526474633640862773223597313303675543680706724258590423005784114363250510794721030790007953991596240060731078256898310281240805914570022735594624023659912525451520703524456192384313905080470846427895135427454914210446028654047709882467218404721232130518234127881250387695307240230131244312109265288197353646921620719925392728696854960430142991567395427570121878094329526093721804756844858348472422886662465324964876346737969425056986583996748463393790587619880878174548268967324197275782053279545567688886723073181898044273462564641348588706654840219821652586623714474022477123366872746941787703603111217493237798338734323545516120414747603433411612046531281134912490019989827105162323663379405522110631479380617605590739897745375782697770775704229137238586376568900254683569618254902266596406225996331089047943993401351832253666591939925380519110283843478553884191143894390022746006595929264087264036074092675309670832947892450607165308906836303030565604312616979520054348265775062563897066089615525578423124349777586098179673734566412576533378770812733284418266823443958473907776135654920051843383453148237187742466010945229417318174081369912716142424253981367348840003344398870256029829194130339452366793124531238230866167925465959926872304612428034443009206616554237666226469377897112664622543351366217446250644890306393507591879302577686872542510291715338467094093257213213239393978879844705717848024761818958251810152675083582595075864972818225583306418853734047963068937048908399850982309910908652022462536196702266667183965758852482433896344880458499449372785763327456977173311786895442454247629105386215784151295668023332415974835642256049784042155150938775705425067847703851803963156060206005205034217150912789110149567636731616874951372387565601747224629125904280750943082173109403722692253858365964720301920697577878326427518606821831009874854709275009088808947822869023716841111069931986799134006096738957223663400003028392568235721824161665253957514337063333894105077356964118129096266604194191374121096760000155343883475117977096721040640161336376351285946572795055558970378554646501125714292241195881128197254390689843219937267839933650937916207238067434396563684909784459379201994462750916161928384478455787104857383456208049709736354876962339275491018403366927504457832915854042773427631607163548613278268124519437526403842453224210734388373117796540448343364198540361865748511892187035225577589162178308774261335916225238245326509375410392299809704130308035684467375445262268318887146201120566118431678173715951518256079213926876957422453496548282374942871734914918984405597778821951682246654608535670668581637974733017988975894264043534550304111882538205762477072559660824798707785819646771431845026903115659951907947912912380726957549765185900472737097989778141197299830982229655574621139803484988241999463419301756542504707419749708368416223222698174519260643282417446714525183983538488026696887400161310617436235092357153313739001131712788330810270685720752272321393725093212958655334543922899993666618754880395628412099665297485913584484552386276932840463081865610947197076673714622757968396463176602365955170577339211132618274090542745539637033556880646788597066073062368462152465275584870519318399984850837864816557885846289107577824772366073252859721302254832523892902980222918820563619428358958333215988356502515028339503554109517079221563809639612961156415752240661857989085492759431650613650190258232989269286767020353788258011483078523144133932889945367093752093353237072588519388981496689949136437814216752523581510408311521351765977263291337361277581240159218128562926619376478265864716533053022531600000666081834349990321946454553810291256262070533321258281646610840691520190103204096700566877478818384726310457210295085893533197990012222134472182118241525505636765127101431042515174523265772927261344554216054863879229676401351735037088759031636147067243455086825575853973139893693800633537857243305967901208693593648390638096656110439032967228811909627133511317544284261655263427128778146897796818876998807478793266874594923895560374243048653678204694291434543814246448078472614944890930219459722532382111123995006883027022753645790147766841324199547493820885463959079048636473382296292884795768993383549512975661798735180692246778786471832876853884633062421837983540584218145073754557440565268026391923179964645213332636636759650066397922145237455923531899087007508411225951918088668916241826411144340404231486257221084821890961045016201466667368633884422128492656666881065397477576679564316526486147954251511272233590716768608197724774436720739797154212352952940382544506091767076502180450035769476565108713310197755304945169206385412620651491027688435127928405262770543936492041621277100980216405103598158554817129551912873837822950639260051851754979611263997561161095502438659429875441108934403263666162048967189504821274241126912853048623581123910559064774570844219796000856482587803026423246508717257310793173814926556916873385799898982606560526096404901601907265109229513337916899194355400227313171304113177784718969901834715907335428344341748407902599268263375016487676728715828593416604008703061207950962156625740746923135601897656994678702172155439443242368145277859640619736732363745219279830106927621912277656541908711727979860222916267125661734676817446886840113118307130404465227378865653052598700321997265539808241271469846720106573321101090117674974817944575167756038998587595635844891324441456176567789735918143119965756783029009999564454351264271126378758921378781529472250354029726815995558793074579276595121994065695990987807023798060244196135123811128984366099102306953920963826246336942582723773710984474723161598951567487495450427182864558066869570518853969647987351756639286537288725750499615910175384454077021758748400600670989503227453001539753715634971739432100897346347329472940211863965381139804980992796429859940664502194711484130459383507359860926442985972490819467694568506358011334230194934219848419683054262862521250918546879238035903513010030624240284132108933018017122086167875715071610478387849640547922665663760085015813444802012202733184483790875342089618037071139231247366207098386506736743023300712279917041557172661892799894213158112156237738020203844085500051254495890811729921857200052064385974139394374593741916330985018764730292279143730928953692448918650990529535644343886456846718766705182148568404524765799923784859354182699601177690262880863492292207019263178807439624303199955457280965496437948163381242805363508892059395895597277065982594884075352099490117198731581361476758464674827790807942791990418521652606655523840290205150196533568808887280768833824063416217104470237537799954050284726710639750087166563336445008701427703411858886989979189126126997208730261112888862791506827059312665571925323297866107849949834947908138212095228031205566801263985240373509024169764278760871107628044625440112617881258546540622633247322021753781750466956227820259794385788308128680857939703474312873161825350428988424180904867588851670138109532099710486137423542392130782548840478542312145827354335388846190223704722729214551138138468713158248436825842476190782647053958308293642101920721883264331546270699227638918935081911651936018027342250904504568159162729064564162488410771179991458959464070305139512692353070354008419138056523423706587204201649046333572051455238107662006731862005053129394608213169426716987016843619778472597202800159995353815082802045774668340556857114735129863759636120254465264059246424682155970234584010179760212481931145189655464522996319821422083824850481243761684373982631139725129901900048824912930486557720636678807258846275698367329054499219318178785133460389973434271515965875945952176863573100383199287952470092080434745118102309146249648690657634854661609611028290610254666611766581939231914893500079218502713629833904519619189366421585974375098600787748360650568571729554919609754456207516861881839209642343394724477933956037865621543452817408943166064607520704380413415242819033183778215111319162831526353671434139034291540332132660187022342175492776025799765999324281612078340075334752118486843683575924360222485174385693302484813492851951299713602585208804896998347813578509218216271935348068272824426832572884788699542313472225683255746129244115640487868504869752151436825329602753189072084429322369448166978376451139454626902594547848715500016674084446779354473977056134310738188532699035543176912612923573999368700606934220701916845283882398410195935793708064808841227175407979965002723961188501694675465657096898218470114779550764958001157856718397934130455838081486468883932280490682751866569175441503262279045018710122274128081577637796011877911208191789149225277197562190929724334840515467611190420267564672898133929636552422982463625930230838886707657755040474287438434597955563537488433833332656830291331054685805392100408295944352052655392226185367869559935527515253665957953926958164920685884345493265048440416234865140625048626183526836692447743454034803488604060330890979325431683831101086596760463950646546796020204726023542355033044347853309922937515666924928631394973419543550943419572264603791362180741824527148716119449436358729533586464014821546491700360784226062299081355638024220065353565240882315319409664746561227149596249899124174886260109585467555024190012543845295668342686059907574213833088063896389528089749718268177086823981961526397235052537860089376137606011711816061774381186744362888461851678303276044350439084933646453933948775079746592151234928341994175191224459456222616170774855880047691278453411478638289213386480261752502592678592443005414724722636992445356859922407081402046036315800695692672993594541561822140395758564409064266588145243685787236823234258345154653636663141975184693119000389612907837246331524214049461735905161622908070132184002032527783144876806110645325409411702381147558584663144467852221484001115259702293358020072043573538836003332852238538107218583124727331987880240502834475201867241122033802062329495901777060029970264669392450661554564246890819094548967813977677125091479429986271992231868590253554714341227504721624866599506014764182895837595094677023269597004382394837580810181624407650563364461958176229166789575863979972138251057339718361581671709369917560885317447187239969842068757491163553772652900190790607070754900864819025523285905264536356990175490693449682695809917434364999447446859175209766143002430208482054323998532990120139508447283436503540380881906390192539466695475692434711390032245493540151899979285686355165307919966833276816694299223663505802913872261192052355482506887994900176877544281178349874553945004489447827674986334908621380011036541703136914185199826972606569963695621290301452746154941757347122643990480153931491680754108766257533388075586284651655740864480935829717197962374012238832275432529737456377104590596627963807320509904515816595184466282071109855918353012200565435476402222156541314580784001037998966763236638043942614530205038569974937389872378169548054138651265786679903976893051302411673012584456938992111019382284925280297265337617408372096660583157449184254563290272518108688841229865370578581507196343170303410456704426036899618549549835611333414078904144365602574943279993802488683199119836919219111862257724085114132839609535012063288208459192456415812290950912868152125802569034708049017355246231162024854508676810368518010036096739209060092460317716401933707383094717699063789020384371334326364254380170399597837785428503492475914299728401113244228407166756977967486410854849518245039877436915798608415322372572820761246723362553970123751805180303697006170145007338430122579336564817864367241874211359710551624266943459427445396741664379695610099260976313187174759013590407318717191262549399004257258603301171718570760932222478363293130083280439995757635306354126393000696303188226453069012969374480511999714790678342717387779736015044973734791831879599696770150750010400842274349555788635424191615722005123023363658831235452301961335417024790594732648406480658604353009302467068093867976246867142998350554674260891385855795432394359860779967849176063827153844217531887741021419655135698491406783833957172981823854601503604306026856533890487013315543161311992930963662104137942827836717185851459438635271267518259390530438251218285705567263594542008096390572809572568110077484327732788037597749174213983088171879990285246922704641128580947001527753085017412822878993346008188779311786879523554260488145106249705609760543334150563335863189431413571935106763845264603769340684049432250459281703095355426050695856875345935128912763364299664179247798415306058125022184130190265609360337988986291728761310733217450542905993435561445061862732713058737027921692807525946839331206455985869907254022044676790940391861589687375262969191710356118767396735032615881262702568073207070081741235052233624750128138683163284306483294182850348289455460151278639061239964384384429155820709410424768162366994875222069803276670736628541701160438908566504642190917875535412872236135812889608972453084196694349409025947548856405960228484108624172939104297600210916829556293801070880245167684890043702464163760470887623057158156799582820590664584643333550013846615576785307273089570816278004050195439093509345703387688277049180224578385398992600492885733150763774226728148703840707304379790141380383344782836437140940691165363900387984213519977218512658254772831855359424450290360418356200344781036443547962752482173229809868695523202142409491339872717271827705097184176089535482598982035163496130299856578430474457643159898305547188025476367639830488376315061875056225758324816843946691070426740526176877393094539612700850742485276463348298332693756946422399617509622576791018737894668344372004512277861908434453275762894361530763877729476550027829403539871095930677076854097172114380028462876601438143014726814499965726327105321042026925560076507413674847940681078457825469075184824983858882390781809416735189562658366654328992657303544920452624364621428177588028156580143307140303657177808023799460692346449683992911152795955724673903660160397368709747278391143469487683405869449335066384863906500383420167426321869409356897086699627571773896845659536149284912533648426117285452823653354851851583083139529496297521687227929316964233055014635753304940250348110148318756202192432976897191216421579442397304446191338611217415683038981506524341704941543083401273365187943262719236121116676088060874849251079378197842646240037254373263017556254944170162286520924059142714635700540372298921694410457320575976334943291184948425348993105637144231576473945889742866403241997455739886380619752168621057143571754820394413315822548265407876595305142553971395355629943193109209979817918262425975453841898698531830572630712675677082189416927458154017894121845562679886142916482539311528022462988586298858392314187713055873192154634636150506934048197550379586743630895729194758431093842085575832894088701081072274158473256795300055655211419628221445095750267490517589934939320739789930077777362239301036251469718991818791820081497630856432203897463707699060988885288706627106579495572596191529957617099973378963864787914353679635791736712589195111137645168739851378133135801330333240731610536520982604538037438278567736939000164782191262365808665238159224790737195357207843030889722159520807083207696239151287461640296778888085718878126929088036974097897971232059379111862496639655614407286762883890452467940521356118786194173853585158882228589718624673524264722447725908269421279967233872958473475454957753347891275423581439338146602029403214588669768020905741980994241242329297522891171623749831944729567461246436861202471767502263755679066839475323624573645677918345557307369173737469851850782168801820863184258694622774762082107014719363357887585491481472737308176346507905586412153349882135045227694114364893581221429159405071426701525336437255812352551077942471636438416785238587812722303192588759761826411593928348666389394733811615990403744293806076168233257789463771241135113983862826873381414590315634434099703549765419906295559647027469721254631558387952985757299595204242989191588819628103654523202041588183947544488436094341032851370581902157416402925740737780734836841673389396734095905907651328996890510926776560575750129087425210270702494347494984434211367133809400870819432337808209873180851397103613778739963472269576642554493581459161711763709272652622831074398084978535266758093412760262641501490513238350090958893702338661407616734548537370013067847064484429548638746748349996823803655534485210673313995920159846964189360479289274151426768996785059348191163263341951353294811985529439920236240221013640617035686130875083217455950805437368650120329188749475936546565182195594613549137252384645741116592348184348877070387090113456823426292188648574035013950822329424887856446796050072280931353084264471102583971757613877027980168684923247718827363315485734853008102882312765508594917093778956914428833329285467846757563488834770046947642220768604695804315798758942329736181020908341369142740761504233602061748186451277275833874431292175702208088081623086811119552761123816063080850848876017380712583730436659715166908140364453528627726589430271402528773506433298307547633892269545297041997766100792452484504408200957034968489599676265123193046812359151652058825009424307396006408838248672576542206843455612456948129180104147255840941554107030601342665624883355649229881772243336313583848981480804622293002435166448306485462099126491173384138771760466282625124385368892490305948626489482544361411403784845280075572253997610336302030379705366905691726457704512988706817047847668359066958910255350674449735223780407238584440377907080052426168797213485955416526535373524711623667230908977825804246792339050389222967649696939939897775363937192554879443206592045938460320616828775829227175391954703166031407543498279327102108515321000993418115012504469670364030641324314463532085420354523093843109731208804505079660011079267527213939210288001409918763147980682448163752773528933063584380617812327305824899985000063005410694880843047819563198799875495047841885736352247130416857221399640516230127317993161207706649383853773101828987971607541217036266996520126584877498856157696498712314832874623629991979778686272996279245566862258475204615813960903085877398135462065371831228767470253759585832212045708816156903518009338249834047793409028328395213796040492568318108015815179827921869614062567961030371237176123579338414737295019025656511578947150939453545469413346970192727967532929390596413675350306454150362016471813484965728634796962741754774961015460652991232359587328764958255168593697103517568346563489037042107116489678691252313130941346436854534538939761576149313475694798703843204338022980724070299522323969855302711875014836389450896036798705261707366926606219416041483838338181806628348144837889556237998416766355185120622494312679074593100437148024978689500592599777164850237861096450035316781973177389951671579132347911507717514224342540668290163144254647907809124279816188357092421956092243889633660257272211135088833489956283390620777743410958222116919566479753468069884146985443345968890051038077266153671513020628737399433112700773738216690596670239019295599024974912902422317133658961163169797455009293476983640430877599736058012122820084861537316306619151668686178378416380075080820927075566126957114670253565158266626848373285459750878867747892982675000926307092013373548310136312359421955579707247729140521246916706402512369399658711228856752727501077947243428022138834984379434260911345474119265768578841920278055888530613892832845005077243297193933932687852935780056290136894444026871101013007113609943132553066543134054966999299605218625827637356366712377381055358887943194376365435923185139310753402993123485066153061683752037262394548408868790816111947074763874829131993679735069988793726922084134834477422021343287124454802887269562821251431410408997464640560205745099837011817530790118927405740354808624138550726971777028353445557216677456045843882269059540542938659369871426224266458579976407904080295866356924957321390912641409684539470419816656896504317451920117891194980503773991489092457337565675977545879056045709869736123318804945022719491639377688971457823497695845231129066840953693653035657192128240775783811340629010391412498608564172183575029199462590519042686887761159402467220401007747795027415928931104352162529041803603328229177972417557232677085067689181828314401909849528803914634477140658394968695142214013456773791169013992714680080270963491511364820477620552283122205269390731312122942284841618848695823885805430306559104056189374310563295669967204191256678186181313886294170390596449183230175955929331758781873878215233554982818042695212193170999440335882173606255110691698108224462376368645368366994505114833361212393982290166693805977965294732631152520406603876990898801624719328982237201276545436206377944791554844075363376305404217508935493046697483548555050210732381711679177291489763118592677869552101293290030614256909396886519586948517247171403249266492063919966299525538537425696034177316813113427140590402654656560365283357879879732856175080681925748976888572790456305445364430835072577275997608497827644574149784684336244086432291238743816432925312038059780982565507215155007771739798874465734978006929458178896668778687134629058732141286455238787857561248238304879706279903032178160077022725550884887712839179766085812132820979803407894506791839115222585263170115842607469969277440398386180495559276999891955947462150941068850590533920926498564755947146190786544682457642631660750121750177930466519639021619518847860071156960510984508343545171098262170845339418764061923017835895373011372139665339062496864196302649558007351694312069523937342253368230129757052007226394434909559593020969536986682819616058077788023957472140823665127445501036094289200752926513582154915765105581399501845797491627853217093611033224059077679772880156677035942819580311701130403629895877785116895766213478447724659631370289834527154072024371239764255401336438641589459046611568693668829977230598664055550909458377086643148206685273155192740074679552903387193664358489179619874331414065053306551246252412931175269548512031711401046595617095159991303715120130760418781653007608989549154318559304501692834593424068443993362628092984023875305955410582598648147127609863407262990269315499484050846698143007019763154781283925186454041701933321352115596948169775989237874655809445834861861218561472118327609325176410729431815957605293884062121987584376160785748027749015885759805799646690252008491073406471402942356585088212785937592459994771762253956974401236152904514944414020842459013085762711670528346838266060803275487622509139938699202840315436998692175850079413899946222346862863436299957255964575066663052751665911158358577387751949964212848746953726775995365804777243116082992467695422984098224447167834811247916737530648043937725661454840038505594304672785926157422842281395208220677364647838658656109510546441412209606213102397921046286771744068028881142398238732338644517118160981422670680062054152908774546220357663269248569605157267586725842393300611057625410433680438185364757816748500434529220877300418053396293592366058523900447427932519496213480247196394178836450776265422808925441143666589989790570808445354757496213426113754446636611386943315162622846094009382695152571569211422615820748805490030800771206719906149238839551420161924871869991482287795364849036792723303912697528838778879241876143560764391094045630973264080540203378430795891972441850604321286104834824765626157123713831649614495060709024910821739247167920032247727442340190585747599293026470242953539432927810811298892380257358472682346785659465950637627318059314650907084273859451865035924572939316122878213828400797654541776023865685211430395078650664232492353443820177356130006109510103156456964252328802606584603255617461894857047300924348151917830070294800248219258177752648360991584034706798714053265008917009103084434001391745651952405197772326999469885147977500041032491652050869161578742518779447473204683344233396666678665651894688770609127614679924259619605869445378842287393459546888434030201097918966414737835384237269542737891493770729891683353193236883083221433016228154564391943316542570442748696726313680396558492044975850165713264423748446785088658796305253775755987654842418901759774441973040487033621032530980150984233108169220930310870043575272884128929370823773882871679567642596931089709530732281879418031602246698317288549160441393909994978534324231013223567628740072046977147879018467533893356224107938782936598515437075979015544593231290955060072796221234240757505959124873594272507625116624007735942625141612199266184312445364952115638455578557706712824734978576039802747317443400687205913833312101992914881587504146998513720506514118131841091565381725132682794157273770667873908985802093907251105411212878937812146190677052522141193214702388554875819486321928194709271185057526610060680261626005383221741020906752901140843887318949247084730390815895823332461213609510512285031419036401434146538299398891075176343184007972146780405788127482509281365226823816968316635101537306856773644779222725839182971941571917741138514353555664724963175782405942530603205475618814749664396357113746052091183542328812030407265831431080954290686156111649382988885814381176642008421974545210382681642836821797166533726687432324549855935867626811475281742012618752091410919784210661452095945827509935496094090538586046277078176525234005174764684705540100608899781197370281810784796111860622749063746932601737625344404708668435537991152441705470493649559070068491647800957693623659446741687011237237104857350923507923182187395690136713399062391700939116204388487985320773086336520926663880064675349847301179370178031180586987469343733028780571314734551823723395398140589923381496356121561673254620520185815576880859694447758587696790805931247483070011453654282289781475592585652764333070567128165502363175958764811961500486995099636145360492084388379864402777011267983104719347733788316285556931721300870116617752941067787191028767767295856682127601448575465758742888611249095232775514107856735556094824662031626541563074250583079743931868868599107968890899376480426429505689065924375366801832391007284286908259181469936182321793983498239612579016494929001346651293611651779562007295508915800559239629998995596173356101458782578133070629158099911706826393643895768362143494767814999041775021034119625141373230779631580273362264581506864519320156764966934839789061982843849767530270203352021358359904048172580443411877107078053388182521712553625340417975976344441860902557182769449140787972459169202268183183788908499548910887408251787149454484783997823474467359004431638397605239755939777900052637204451622161730888824597255884780728862178304769180917813405091712674438625639375202000743135346226901537955217964736944287909115260630560814589945300183905354184348136146522677571081560633454562971892368779288571413963031052077124254621994627532851883420095610908243007318690497800232903344225691336060546987420531513500202947801086845827230133865536228460772338116583122300171295749812315617182365377061718358578787450321229647686894471047553790038453347535075749970426777245857224248386953426245078451555788452827297824083697696274695166189560629487756215475525769795723562086492666268189844488556873748686419926094806760909430892763538602117041900389984977064942708785002539788114742784794835263563995241904456297906991493747296526423077954755203481304415464754794651591332807402763447303550378772425954058349806496447578066589491971175204752964627486694502234442034989410599783078564107694911633202898747950747231617158081826529867972233943056414209049942579216501451644375050610194853781649544769451573034387097539890560514350180609622253803531303893557138402777205088156090261368340909584618502155747080617247964906993855686231053139378265483563129459367983290499604566390218440965418986295024427405980889656143063619492808023363737595239085044211379955661344160625182058330622389773851624614820688919768625898610884082812128308033571374401705640432797272169969835670214656242687064784286077176955240762504133795046155948440020356496056764788776566250357686780221024606327212026289641235997713724521243103207716599942896184643728447187452271323154375328631336452956018255201855699724249971901679047254874145939188931986585259448460325304321940453397127129299039562959900000700813401715776107269588872825397313011174980481934495792789326253616705011294852167743802110288566040393627057969077391073435597876991574197166841531675083389171934394716847661304935710401922149450891499959062961138883627777942294931954982636418493807474478734176359503041598254090933741203834431487171551945892414597180111433255494992034678964725646079146454301994110968473196529124084090266410742722976882590311004802270085076192192670920860798226087047730715529842498015476011035180810542906983297370929922273213858643763055794122492235722795791932960825006890287457793688826630097197734304798543529232317109458409752203642023928595571992229446733863769369453343380293318370025721178823352846521176194814360493810219480304050604373602797032203134643522885963614406583880825074298045770192841208595240318960391096955280470643024666214387344012587303064470514912134388038623944156671876355545809849351266869954340229392708609082411844234812189163891745714606365587174519045668308751914336955900604218080695464746928765780287293281046092566067047564897058270647461198545926826497523132673720376033268185726213187522452416615167653618226998334175533152064903819791668498364368844348046728167510596477540006875307308783305889360844927054930756499074683352103139735741779337735448919432168468665825347159707421715165712311913230431906771376813175227350802111456608455004605632803788483137228007926700479147245966109341885752642890185011873285900874626361941911918782825008852580891065716184033448360706296335363716571867156420064553968984895250407010808908414610599614653255021086683342291071923414008055868848946601871536746911309652594046926405307791218643552797371980999858037150437432108009530070323214342219030625917146859707413108536686440839109752509273899707020066461281582185335389048602091036189524689943897697427611253239385381997611047050814643417824388741977305237740585027284904327199359918905135244714097651989569434559326513242476256909612918514530712863547973420719481749912915936535509936290795318084050261135642347747264444855955253943148388509579699204468209565017825000377876319027835061097222905292956077679104423065084383559644403924759475572877953541192606980329383750709180550753499374745892001184531956493465826557922206686339197012296650713743276427518095208753335391275572799352700114441175249760141856887267255508803770388072675325109399816831932617726748403299756126529500604806839833708096801642043102496880027733339317535220595828661410557989277569826690464750737289696028123366850541279077778683834501861881091981233897045230565312332492542154286522853793469264374621667479715511489501835839592473964801069599391923027697341562245448663693617919867702264566278381530217422912379200275635937220091159622063080684743166624974936244203760128645314562847848803843717067465310222143581483968758145464216746404434714351908490681868842912551702353897307090501241889797424231009992675368478148167851613931329760776495945104803120937566898251340167161786858326180158468499516470688393065715691624701677249181689186789618288151289603296410257749213099741943346638646815466275263846378757481464778724241242942757632699244340363880005082337143918536689073352606089220300870657898349929972436707503209464270846703682103187846801967714333035728004312313277736135195494835031211656163758032435617851494244053578363852115825427100866664364682128169423688220927268728634559270487175605614501186077471775597277706882819440542196632285718850060101518717012943750489551503701862119071921019055081599324153809175648293221927681708183585509266578869046514219994986345248468684764589266014823924522344214991978683423322621312179439043894028141638045658404395972213883958388967982971907450931564775134518606858919419186303757354242119975067812013369259685774139882003274724157736166828266484520033421772794613114829974603695624821924398500628494671334287258221335844161659267256143410654822259415499615170833438294845941331144324958433593684259600539378276162564888544028615079102089158754184036369402598945029386156747136765665279339148410904326434137881571595202985592701130460999662128931313832076954886645893964676056594462453247222989110145322250025833190975736940432862814489602458427857556787589765768459703402032385657296485288091313382290880626454447445839356848363652921894822490513901090379328207824358786041746838694040938997234549916979867355448548509294047038680285478291440802021248568979677665554461804116683608008197505387568415265314675865159580704389024486596034852294714852237677253962036228107057346746403238971257137337236840067257031620581572261134640701975869366232174369821522846101575017866524987215704756287444735895810362979657332099207977913004400827897874546191851026388887397780446557641255575010792329472458686496602401511080022316640410857086496542442933979524772418219455579787829329466573275294179611256880633982562283153236375455047287209487981347558092778746832884049179185277749644446579074399859961458349587323798040876519450203638829122569581741447885706956034892138833595384192717097714327916405623144559636051304918997225999832495315296195121080239814915626859415460414507151539435615899718166544771157429794500277097438300527377512388335168939384854989813805235272057099245294258039619594093938398723361925291304971607929818710165339360337308619711037272122661920769159475654123795342961458940241067268154806477228959711958800430066136720468729618372645949794084143363766499469983797294912990336059077149036945864845706625040523096373728076480112638711767626037605867554214573465507439171854119328150574649582647541221725090321658100126584033893732653408729649314125499913350445818866674792804518915323058307826004849331216927643671702416879410186772217197427584861010906778341301072307336990192279844485754727599571112488708984120263583763606514498005181907072415196353118028639250848340475124174029974877058728333101453634007508078430565015238144100291855041156249951910308775589190858010508287037643749364142697368602565379916301812286017425378284877006941549362607601596773744780286335897700639237082624430649960229552588872816970488808010355813556897952349612511037788835974515659704703980651328872544673983732687820796552988359062964633124666902077306399025134130142620979460999251023237126895331507483361508218060063833260897961539813428047357548696279728777161369127342627534095543010499257260629170703059139838726832888103001062227440343732561855485226411909253812454752718165019591413165942166756998471501728488096226935110612764890381313464717563598896076388127621911145254066543842827135399401161288393922366362103147646023370545456280621237367906402807434556052883420747077941532303063679463884353195555509975091244690571537774586532584181883456532847319107984998768186689058107361942804557880778618885737245835066048507147059416395853224841878679945474106134784949909069263484253362699170509137901724967039036114974317204815347484561686140047151359216093268667105777914445553554521680489102267734034418501803903865415126944257246901110523645200481082235953868628845891920463029357767356524123430447425191550138986853344847521433365790471281327871882908515308395104464839664436472600667523797520802551378314158323351520321090691151811260458585702615125475650692186114990788282859715810106582220620210142937563782719941433205043250667305147636730738230966951300327072806151793301658618039668291936500748485168245722499943999239182103135382008439463785154369783776864144614587939029881339878474737141235317440810967525315288947346927593754045217605396844616508362967099866752391843513722060268988543782762682459085093350103736361032079917300911969021179053658042683826794017750079645950846036953245874223233976336642501504052082751591487252008960531964539775065146580832096571524165527114089854420537781211089521408585519267516567110962115908272676966166068861101917255249996092584168554548420635944392184396047303595473150517230146799525370336198904234619093115864502759543303101576892199684555423300865854441813319346259223353218885671612995561150996879095231744515062783645496122931098145245126068526578067083614111400393638309697802052910861750114806932869629459635745025188939923873926272018981719010677828205720985429451564146788579659281112937461190900254985247965765059055277914521852023204724465638897156781778034335209620516430642876657939360803559754411789149430929195919194949790029507554977497007765468331760645263348424010496350186604832399013065330637516047694299346781067512903244633570703361310377303715905129416258309428335814128722246715171617292011031398447859694552629608490885595929746757424197729181168849530684886324563284530829709228678122286359921707408962334701534251625735045055395077365912239800797685148714234177189406778352927033039919967380642256768385518103105754261718599597416045857719312605029000402633368775911113938365006215915574839759018330867916301959371015459038149234107457054057843097439047346966684555986977026861655342619285303208702078191619534495966136480353059348910183852893836486156503332472131069449129741537866045880862313550535240865151688388121275722854401191395808287236156923687960041211466781434334285552351998161793942903257828292612492548274426307804532058200095631274405786096276503880481096387967802644885614783478547956614153162258542470001704342453593019313791863248727378591165425390171746104605867209442497289282681291936842090880741859097378123552402076336157001668413991126560210529254041795061949914979980864332092834585957918049230323173028352062257491737763330331274947553623109322539493842110084835699889966292826308221477968544982968846224664923930346270981029907827586746201545646322162841525708019136235509227958077801411216714742038925629584928868645940204676779328532590478405536021363583790010953363648385883902728543643874796355340782042733978683849262134878891200156817602624857099526157031802460065903923207032550241537975565752873865224840650979554989806768462561661064902041598363444309285823629652761766346133164105406225043246096152864737038549936750904434901006435517783735431470923199007138351078548446947213298748238500216867874885979897594071001617433776054101247439133657128704014030752897993591518840373310012581749827540108533397602476805820819956159875911657074657613914852945798475652789868545619972149573369646273106195657826876426739348610768283585250687693825703787698893565847396997251549987874277828059997415586579445815881226633362034829776569848089919773023170420502909587965234495832869479487778310704426686065932389277474272580957055692690053873789566475090360172176914861035000304770737014642428974388510488796126807397713161868249693976033133407232297414106023237422175808044430836567883986215663856307822768934094850931655629690504595931422878239867110215612123413150958031089510312382099414681205159080794648551587066060232286285132298069906668996963886839137786921529813921044156058150238002102210191134982994551201568165729769825752646866213740111011032454869280999929712630865455554087866505811156615221432388472563260582423697269536138213723480194488019615707596615005062005760698741047235329498936794033998443037265262811060649034520904368395078579645494367629565350162330804067784196653291114195605628831847446564512775392478257225143443672770750729578296339865499479564699221038355704379041104516390649578840214028031579350485631109146853053730910518100980048687280672939154634192235437265919865767377605914349517649619383548016386247415863270431867564299141610811350851357790841601427411782672741000218439593899592208361428199359198454963566336324090596815945933497323647969914380572804680988434157072323554078055727533694439297044888306230845230654169208086230361808656040853733168850810825006826334574095809300183883104637322046119804165162888613537002941861355697890790777217046334423454460196027216991262873429265628697904302737041488844470171910327296260845949013875675045168872400902831008836368944962500416058490715241443272396882384387900638274911028319425164596226327733397893818706448598755532073909174350015378625027868820977713141915903541940479092215596298772572684376386238892680964058646999309401796018673898770705601959362259695116252696438680529867470765091287708403227081464142034548805522705085114461262343313748830591325296627020261669011218677593835860067318489623153767398458940770702296928016432269797816481673869078708339098267499037650734575633047225898132985126789382694003448638388473708646596625228388948754122163262122673183111445898597488849546000505286674017738725329492648242023893166766527970711657712387208149662217658416039450550648933754324012119403422488365495964251714605077238227979552934753215620918643447570872032123590232088713072702722420888124434920394863540385023078812733873789552339895182785445992974303157800246764427724846702240478607009990577681365375624168598771737381158469863305506481076669124134605350959248483815476306536562554828142775369832019333452987686447879800417162007238146532042533337890554294548774915297786061631095551606159376536030054402419161725884679519291737540224803487366568731636107445658186551623480137257085906245043822731511880197402774532524906899744431798001107752991086649490983647501756830832261383324238782965088274829570910388403087162885739146401282887796525152856657996127271993416355858073308905997490649523031707004962398327256500446732136977996248644052263767825318450760902252526027691317602939032134454732488766269962966666590780014107914536306359718412876575698860706344618863275230935169278100790112766544795279154428023844898660125193350531136711442474324064469138691082311452727373679239822065033323659391416424620497067450454090907888136478612619916102076544371252854998783754871668113919978564518897250319503981437778435618261539505759775695620967889779364739394998313047883197699612205664236802247640896312903345417495329670957885491413023822418325441018904541202816872352500544758662663311100668201934231263140390475084465381471664768604827157138245545986204343126014352133682126720365200730561687574125332285858887543297281604465771757652866704491343765941512771213164445943650313381118206464369229225285305222938285604544682610732540658993140247056221322771832413664903441934609691316747060002584204274690978990533423140617384919762254953579954028455255056557026384717804260741530505073844077438564751095304779992867776611340417455208786371120298078843630125292298439829329896746396844121408714759510286283330168774771417715484178721298250813537289912625880922862772681775262530773165512688448689137568207311196375639683215831834006051270395819122633800902674178219650657789882962880604006091035030564559445608270775497844214719633463392116504221520438326375120917995209080479371095161391991847822052861980547849690049500295876480434604077023226494080850670721062876642529554913082435289492071587680000609452840944709194570204742542231716942475930115972617571316305050456712596126915508035824342441716723234222523287212220953914025635283217432330886476854889118875217187832590880355576750357021366777120834189803128819104875834942238566252981423571347560880431203741472298586403261938950600855852555907908013114836859247101300474479753910074046903614782998221958819782127812288795001168459517596794252974506402961283936085790781909575461711683030721964706334879869693672751600676998840586897975400724099847399668430951898644775044327246493391019547633791982727902405526245934902131611511783443630895530116056757678160804814644593456296084421281508454310891337940475218641835441015242862112519411677298492444238616669168149725408682208149685989245599546858677843426387365800377180525036164877856082794587139781335701726324427351258017636353768523649093706194310817607260224753439723608230869117249138271258947253577833664077661411228111153438467127324587623468057708326539998498646964001398996115771004458957856673662293415533408320390464281648331053893279860958152846502903617140064890316800000536165076944285478924972931493726846611942439958861189918921456012865776386823571789669116992352991188827886130215306180026219704767649393531519137781590387921629197786259019737310618183636462644878074104093144679986073567749294936562004368447816793809451795146731669566378106258234063638569335103661583526789877115919352094381257425487091600911670823430706273279837238196589492408317177061161716799864751957759993199575998929390631821537734362485599934201644574603443145982096716559478487203501759082466496434178790271518689760434173414595694986685729574611482423680410837591858012169804373050924869307146758942143196125529533474582136043309744460637725976592373195570601165988910218142315768441488343237441021838211164076839442957775702479278254731682100255855459901615859018387337757340963620450501938111173964229804740262338621494274398380725555169908469663952803912805858287611405338859950421546654969658782866988716423989377631563862875623425276037669401648244790836420155134072670670335540262869292359835974414672789577868364611278588184970174923393188325812710571175853980283934751113081426171396379175887215954738794684764843316893437604655044234960406735793645758210847559546108833617653601784074229891199682676757775771694582940459759584887258423416098756486768480438125690449101411114849252195252386582913762254481109182137812129212378336098920361187684865796956644981755473923991545703281531388522560026622672522331565606257576489659302601097451936525290652768636266887924419447922201395137738552716876368159987856359071879550962225403249366039064863490682973450242514379575183722705732263932867734121795408826111194710538426359824827997778034650381594499906972864360249288126134498675956019810257082109196300226222036595583059301094372658275531567717748053398104313949879141009824748650327372491447460525136258197768362489129314105383182883502255273805537622373668516059944685065198181583292502968420498515302544020091647239480500872144462532709266086998712100847116857795819002963055140854982560708559187521330426369610412149454973730673842742320132343855512679371892432484585454700063795563118249099565765776289844950895527681464523058807734283276611895174587103984232555086953763794518866727190607152739307326038803908974586839968661729657934688005146858793580663655376871874230423145464375660189746396169438405852626302269521867845868145647863785511912288767035118168607126886953407665382640095793212863633797208320877007959625355581924452567205834248479333330361244147543060937836839541025569769388149587897890165183930447678288702153638279554551973136334242659515874271247248221550236511841820463122599566984505659623638732593042183259724144205969583595010574865334502214155299898094117953061698577344131672452221651864721538223753865689105835198096840896886847252303532822226470213844354005446421996346810697129376323062003594360738750287514257835508440058716764690463212753927461003523827523466523519155753360777404000994013958619974864928836165650179607127887922096069799353788692056797526314578562603638675568965892673946239527036354542564518131688533063104621133037644037959168533424898864767746273617640621569741281787065291346093152670716174381461980147656015054129491260389931634832872312364920666702537663007810007528994174680813857803461331136264291830853479829664046380742888758702843442130780466067247829198625902455477026566957854582384725256786698939247750784847762217365418530825353765461325735795557086431063990962808228330107069255693217161540114734747920692165610375652002487929089349206124025496709492944345940114136738209514936661251050376313816633686126899751092899500773495466003004536161438327297263202234249725199258145149618059786424603123179481625373235271111309336737598528859276685348565885023985921800276027213836733193823080918392190217244794397950044597195580451112823794958879856002177804602116739200738221891514183650827732634156931128238551893048988978470291379027866509858570723564003240134531356448884057546957831608159861758224911189172174648016156047817279646219541920090445951008653707197088325246318753395977200857337631854815993383913039452630330327797389641850927788248085674071774381994487685846840057183068152887398196536027532475507206156417269421387112148245626673635195317435586565801177495727414580182526518112483706029309475479838970107501773935537999231938707953056994731324502088989335247990190234902339890997964962343992447239187632089741169596789946332992778076778757152163851062412727833285011826282064639917915177628392242424126178669853717390245196258089193538308514389279588886946312002389847073594047677220308994617751422578826382014300094649162584128853028416178812424395149515982232624413109094750189764969554336218194147673422908831124567713904593588488054031678476059580943354388465899277938996136593167282051618237050433078547435448758359377568859274075449643620767478052162583180545042385008342475320316192790975672345015498028547710988714276390808680083209802896772326800385241324108699897074822021942932030959039564858527162669674588132950759949751329152178845540798365343369968949303475964538135454493687872523890542021542082476450084216842654360902503488541163711653569642091851757403130620300166911719693063106302234273513941331174664251036395611742411926724868497364810497691120367170124829266650026705143984165096706132173067108937288051735386733033008603461863193566748866803208212776597911888539250229948693539072373996033410301368760833099642352328877506978126419527334400145337990589022269087364414148706090272409125644652060565093828273724397639003885997082764377303971915778615147739621830771471059671263564931522376048983467646311765954720866421957392480258692008512981191985365597913512525031269121964814434936969230604149437997288554253208708440305232184554288190178433054206341797238524505746424803277920304060811735327230445939383314818887512130168463767729362276192386650886483332466255648212176849818532482245616795256913995333980323878485399423476036042524773603417437308935072978654148211210251580199012843247706462747494662521791295635361671244897089613800619160694065207497393332054822538332736405951876371714509669893388691686070769963447761761600689156865735013308841130907921239117143783075005822777462571820109980729035813628706958064542456775930150283990258324084331922649985421681094665923882332528006265699998623872301340004964948709178418629811986494556173015088929390504137512494267511156294496830801729972896919615303016914103963406495211893504841642078051296247917145677662229768873180695381596742378857668063468128437383220163790621800325469597541487597826524280668273641289135738321290604270998141038777654538097551396205430522816177109708377842782767304936890390660689725163044765658476109649980606469395319389922440977364079437392982370306810960740886316197763155298766395382793264157119400216416654937328229292633068337171886112270420533576067843971168865336092313502785083793627984098145706895374047527249335720668487568772019702168805638370059000797918206282232636997319859927187244327478440362736171042694079033090837122588830311301457738105176641478314285591725536645668442103322645711968168359003127187251563323374981867849963729566001378193845021233510724218649383477756684001373684169542803087907471861882074185734701762503594567917373106175899534707198631061140493530465408293991346099078662853300593059984422948763537417280392043457671954338074322086194105036789818355479538483510562829343086855189841176394647425787894339753272484831733932719954266670742019538999206294198963277062703188705676818367109054433266027203152075037766616081428829454965145416554642077308846645586632476447518980539664602522651540973326083922873619310155209136737044598197300409359537907805729969127721429893336276304653009119814138309747546955075017352379061237643152433496262988243379278445563027805209965953981675235498124508858841368866778616253504157483708149117279774075502182759524248186523736212126906499060975201135177724683246835774585377095142745348413259384288913002409109491185705890043230501970599520744026999820001183325870237015902660445447389176875735274246815637543366632762533200884464603540656865729446832476120820383127047197027085760073899627113023173082929746213369408556361808913831905321747063080915122200781173684075607621047940127720107743822754717065149540140862243589164682231620032853382373049657865843685747655085640638660436524907636889028039076779147195806973106808789231003835592056708406979462260129309367009639262314249635920153379830297006233725560191937211856924651530386212535278978970339725666109606042339962448194551305826303124429801432686555953202975865011028585301059558865622217678331149751982221213786413658339501159531324115412630394470253134758557129586422826504060379322070809803961155338914013223739291339417770953721185151817473880715890917868495812068058020876361904371115330937336558101247001961207826194003618415589734347419510820633883088090405678199555366296918588779521151821783086321759846879521745195228604423881536506178267807349458169667850993837861896319966078419118508800240650825577720996834175559140040407349646000955039806925095955233973892885333796863910790834838947614198848093479625626162723249282201245644154728825763862387698631330706771426498557675336918313233456353895253594055495797080415363297023780946981655789485729210256716421515930621658789727836201601954658490302321030608757811659775588911873665170035735688426013088762500434911603473862395040989805736243738259433247617890840630236139857087673516970507774141659036360113060093039185960633500321599393944355250415717847712850846903951897771603760616562369594188894479338995952266792117093855671673617310279430599559110842324956511599847117389203913884861421210432136321225363941454769673939160954568745191692201512709731765720582621573009558691520532179489398926559162821023136179759995480512657135478581503508415876234363694694402769745232648458673444321049289648819689185801262805072287670459951586385614676655596250784894394088309058708239717584286685770448380861701242664505782417675051860643037935992804643933601034391119010786250449747359778438161958282674188603175328544338710678846860981063384267861069284219233805443633525493482016758892971419171899035893530182621409713048482047099687068241774930704547007685379759653721757892646775204385573947776186926890667339174966445960145050324288215633710312080146943674485255872367254454826896257057122656156340383426446694683922268113057048736900612655939385006157894401365236489568331190763878592788681542288480196025803898064114839516785013734426880168773821477441852671764019217631391881201859845912708875454025282945859569283410725224382561120501616792084223490054242510773066135713394113321972685189020758780167530419354656436028281437341896785810124349264421372745231880158194321821580579535060781602418436568435881367352818711578848208188669457937715005563303760189484187407295872155657783492955053698740117652327622421476467298250205365842029410853252699904487452254857607837959343913042384574804233362891172673554896545203326313400545752200589584021171293011655880865273689191250718479414055091465016000440720530074264093257251922454063251386415134413389776217413839223705841805731823890486136569657731040252131805643486259131616893288193721146258243253236517255552733827401857368281085306981650136529444271144572473501847409815332159956006258327850498452561144726301102020876111093316305244459403409929785042527325087907738122279950945524017699258216165066502484818228402960842349521713431387550656150035040124686580452651596554603514426765634253024018235757135668649272255052510109631635951517498889661170915727420347264290463077736279484803497239955905797004012664131203362515749608540574492090476282730165173570258793433785441745433891159988241382664418890960053138920975419291136598216472729060772185243235583195627398734175236401871083233608874628633665582531680839699028768350721046868007100465433860163549499111375412858978848819730628080693509746646193259979145696575231322434500754996597312259979898580073334702371066866897426555080445290916607418593217023899092198467069143207252778851379763397968263251340845484082150948288061782663658307722368345870849301998129676258829448148623438087014240621839435125159395048321280656247117076536784834807751389973143779631388765059667379425085407200136102983681445953178585086692886903153962647515708270425093151889888744859473154610963672967955570024024641522612803206162832542830148798175439595422568035655462268548897435556354931252369947039990782161049530750033371617889969273826145212210152622694977957958669710086905631976537191627119161283136649436915865139920760968125678604772777855830161377317704519064987043846396813394500218116977712811559637485845855371271516856439210140923544361954283582331166495987719199704573438522664964367790468768038762364856728486745655946863451269087876291390278623391916983813360781803917739407099415023477440969512203673364691646109131027359964658143098623423725350693849509697613368037869710647282964960603828744151622393714908541748956832768028425660685844532135372428152285185160147309655633275923181243678238700512706441125358850551024568356067043177757328211533558250829201921480401879846439520491826997951375943197629562056639623080045102817352221398211687557041229536337814226931627307765056062228283524081076238661168240248413823416262901711719242316535681595053580730009085868971156841509414039607234151864793911032698712755011002663200917251529667111501291049100960990264425167452569487509165469452393683102575512156669361576995949008210348907154651532794603614504186217753731500815179258848814473611980547647771833847261876766996399009191346471287774239012193598769365867478822519095864526994992414853924304486648192314014818278577683597934204552042592557125202398280006330045766008767920988132210997454236205899907245928686215323342920972088179299564509991702597952001029142260065094268601053634451670803566285023877443965193785898291878271081672507428393925675442549271648113350711521683919479220899247930716409504639761272614533005524568050482256171962303587589069368788451769229211916572855409541052779425372947408296246528563952284870194716947464023620196917915151584623039556113885201196164282747464551573973781548160092183288012664145455899012925876533592233204686915553360189148146208238497031276374991017359087879614623551607999806553327195853809729495222847850088230061414572192644366151611413553998004397819711565715586564733807551252116711114334304377805772216643689610026820866555147850743660181749723622174148939319311838127232681515466103957499883654954111254105844534252787265375654825538709218190145528445099305824498981925685083115660108603033293000175556336748213439385752997066352316630985336053088762503326498082095652419883732482855540595892900962250621674090981291800289883634677881757350950854257021150442035548379971009507941501330697695191683939385000095882662044566359804653979948459268145384370021926555143569628171223629655509303880465949230681874948211993310473006954853086691841453277209355484120793618887502370166336180074871061780570755982093271450646820593889408639828236867739042279588078624025141869411198778563838067237759152981941228273942393497727976490714626757011252040569201881127249675282864455712005288355994523571761151928029669058689690398095479870872406999372565633224131769783990429820938278967898628815675942808897860779380519375521236505740160701008747503995309934464507516520668449285460326882513671524201226692295523345218627485048556219764903032971400286107770141265610575318237874074380965396968388895530239385565371222319060275381628475308052391161574303955867757941076622879795733843093060707923603107462886632262981768943921849673644255445494394043209007417678027543686911266836633391793273361046990063601068955993838790332573162604548145378608068218255128247357851165124801665246804107043809413254014670050614715625501534549729310180556211803434810205058238681636742319501781349995775028284980350886866155708298740192880501868824978441680384536133175522487556521505182832714507327323639893421856701479932653916869862035223722434804182322579049498640597816653999956760478483184294537240164041353791269817907009005345216586482353052670714127999788491068038866739225997121306640149020305359870095966616769098279612927829812944936747232775916968533890523387397694784065829245078626202264834636426446607093282936281082927827799332519323956014993760265502130889236431104141715054157031808978226558806388754752146014048789684112452023181775269945839438486639204733530435187412858305629508709315355510288107283594593515065587422236543937544251882612163728230726239238182965677035374263179210282346135326284434221392106924972726295284572304175557296879554826777953347838666161013977514833743208765619983839503374710124550543379352643114880161643318593758802544857257897281727725008640287942153295628196238862461798097879671283110386965877494305739316137096342885393483466926281044952480786379889852858981997750968592903342915723308903066556299046900536570572600661116412052889979794962880296347533572045663224467700324080305289244981772091795597421877878036503313121406580256146705903826375861818113240551592098310508695602387824185723988583973171473173177681156650768505165904580395948896848459228412075570740454348454115045229468288007980992484052655354206809707253277992548418115076087358016381068131061047038108554993083468267124319307461623230019615804925025354753768429847907584404757910984648582881170799599142277228534365999479422720127562094739416704581761045746234578918335025998881775381737048360340047256336318119194598426137255797562754030810425498579619791155055119914992561176145953839953075461345971601997236152720628296258718922490057154200336863931859766042530847966755460527567399560153622915537522233624587395279842893595466928243976399083547460352069202741883714428268892755681016971628889976637855239645567665818611083518208596002465158327484651301516028095697889347263637645914303995545579048476612460409883979793851987044277105415488721291683204643774612470993121983454927853653862529056695813550656056690121915053798717806123306560358993009576275312114428606140565398206720135290024936323297993088018084698030881679909669153285085348412743372694744662610076358660323935139875285502596098820270031611757182462111319349682286365570560004176020916569757155614139002809100466632079395964994086304197760132193727145595003935757477314934799523954595192272842487657189614649021541242990732518874499992002588463254026951678385669479601424461023768264126852116409131344264216515368993096715330187037069593404720818806950834779539570530008549946040055254640177871038429117288931343181856160581296051880799774426335199587398618108404263978611705682130069714776792244635025602449938322576215243327020664637619802906168493476987587178524314878137674540315572198203806002169040039343614186861770008359308788309833156080533284132982913785800664522309038180773363358977170794704622544704687443857651381600605125023593372045508734717377007408626124108935364214566348891183099648362409016899901411629434772560867119693173193600488530117205106945276278950800085670342452221873301721155043886197595034979020986525202101162664555497931220566723556951718943178550537642394231055735063011019314965047102426700688165859391053643438940366700313545040366119401283264051477265629713796036159082656875280543425650431451442444547854247900789853892317367338223446184858895283879536488043510158853676735948018010345960961931659991048511700085225266001191497197660546450666123113113031660388076754934826409573920333735575469454518946489617872348683805089473174592964990470513664335895514693811489141619295145219954976661572950001940925318286457607617293616725980502706557569147154770492458666488511100658169061385329202538301441433535870806592613817389682370295130937105433920662372282405775842993090933701220839419038405906198414683312986771213042892851714231038888064144192561272185933000711118559183077401889746950233444530320512444922328215254156582181590543093835668707703416074262177818953023854773509719558106460458632871775011618681874791501899713117099836539151096256180633663542784745869650057945420409264132682710805771998986110418701989641704890622201496269371678141485887730691000792513765704817198947759734063538110200896121597298626932152997249102016615718623242581751804008335546392363184291417177237283596429105742416536677060240759174975964983165442311615326812414704517497439709909519364040487135954469372334399989614935208566930339722633528973918691381260015701043428170265457257575543511719702482998386553172215859581098765471352534769116826533914747713110527348971213508205635887169617560950405541235334897833772979680279189881920396895525120222992124198982153505990110932955533204091591875608143686901700870607315055770748228615437979322133972849906546073992231556719736464418187090910155480095119970878398628914979031765825646448633816998223406786065084995472421464942915234576571439822474757228479553950965615532090825099308590285074777227793602034856053912882620954288888349078270796685946990471598347643425258795044833060029404308688122770261413582179277031577307147493848334345478703597383185308807405824999296764249424198720745932603264265979386981232262635397223353450073075238095515866406600035276208693519716842836716808231299296769728463171175852393295123643946417422794794071959011722578928796355919774679731813984013972907656912092442495856031594470019556043853559428466828611912788996602249691781883882763405684815194140616781305245470174012447417224408299577637909625792381977658013694105250375615489008260886523694861170399718732460366125232538334706768660666541551296444445696490002174072800940073014423366776831420747111099839068413109013341520147195707771523398554060887944918349583363562153585381620743138139316470500076304779485829425510222412828936505603374494072581101129603499934423571988779885476968478260935168425561224046535164836184783207299592692825707311407378287858152912247696622390032167724673538183770698097777057352184126066945387753522535108192786027153641160082466281159920114977594722605586013944783123121008231835657426721963780657498681504326976203314034445042818873839541977583391412933625517347570192375943096900055547019158136993890373885055261363392939561664937438382064119713323913966688758593263985127461014521440167279533780257319028185768421806946455546905244956205556433249616918874520179266055612266270073121265234475597977092382378822758234144465389003153719219159027573581946703344500914815256485744843662736633802809937311397137199483102699005106093437691284331322705349488380302321688360457663341432576813337594395646462143252075653986980959310630567415226427271713307540967112991616028840158181869891291698489703774466958338507373458340740929052171212246225369401784989990954338662998924194069933796510540646562813426177716034440669803860698060690341438447480451372050533166544956165967073500672195799169203690678142176796585109954355641820860060371305106579901640864948526597980678658714757055967051901822568602858719675012923766494454335151832192205223669755182008051900072373550875894922386975725801638201235985755110538447913661518189507405951811656398943066566398695309749408424903631128403973295730965845448780286798739344031159945155244394830487529821401451838917386216366144079949847073482125393323386785740390425555859117446736551749959001207259695977777534754958140778982124775945249163224082652676848313177910199102245330495405749169886047716834853273375148128160324520256191151079706023956746917587424537985839804288272705070747249001206620928350616289518337770850470362517256593989133399782382234329201392176852098256382766182885882715443690776891414537573928165448516767934888459620716820356036754820472726609993745600993411381535573219764631712863096410703440446787871358676364488272892853144256721289560051872124933677432110453759290298691643675138294447041191494800228377606256656585679462784468620184116326416078390432815791118936294900259304740238606887584306196746891059895472558553413742676781038135299253619009103285691604061005718911544866642164198575887499646571109465002395116109981940121953354778749538823156394121437684270875382767017763756331000288635144072740205453374232526175073870884635761168017947444884512183423484892553044639758060041137546073126175542695606139708932148766289019287124676605587842132103206585306900655283771073642313668028432173849387054447612825144962144963547731794892798471460013970320562453802253962066015626366010330974318686970840533090511887746388129045676537553429614224218004919456893558935984252760225929870592398405275825286416489164781331921789608846403502122010967202728532289744977198056190876618700902451677228534303185849388874774862582503954626836113393813368011262369605441086146664034376961918839525662031475905161631343978698112134230690402143355510411224934617648641670957601300711841243207524210744266516556816065162207038116865356168504678575476195201638331874838037057998170074455138209946524650174286636328048284293354654757921484006309250220304129782446954894314872843676958221117974390457370861008949079827410208687967305389645186991450435517326155545389033097450457853100839574672561432465273864138981618345866729649299658595844743900147644737183769588780926592485344351377137591717897441376245000605245617015902794017957790274777810122371733158843094758004712062009684923543686320577357515747030580515956461891660905645066608288551773469077624770564302682296598148059760659374294039384686687695341206329971672314018918314479918758688051337196977843823070725242518943748056136326458956344676393700456059852775189223109145017744607078588204868359646603003131190308957118921029304421914568644864223840814737859637748084088028745579091365257032623744355055889769611738214023891503565804852094852250528074362927354175782334578114227965285447136890654845762657751410169709607319024393501005136525997710422361757296813232002865447249312730262604917203935190344474082246480402228764418601399652204298407904309158256672534848507288085363379847336161253907313096004425691089950874549595441202223766386936097682063552986604639372893961476091663915400301340022014397034374508654366533483684373066466568685237390653854060186016280115573580835173355569077642132146031864362907529967614454114438908329661283456070233583693299160189518267353482864128602658532547711809703332322837257463332702790158642599458183159308859074621033506682150135245960176395854646558266553915441131470269866277258659241354786317431688272301679695851723755879537705456975369131623641814733329312973290232875816251497291323674720349666275204814995324278265975654057114646030182066100685212801893953877053630102249638009686000951338861830501922897499355153731390889260461411165965476339305526155717088086255233718274205783760753790163599428562208534005273848444223549924111211136287057707351906123543732132272713337477414341664209773147373491727733095218016477068628218665117856307108476282621302219325817139367929335981845133406312488055915397473258806555807374686928210245242833335605830221303733940879838784626922947065095426632918173531134111254762851321954512668684618360603571920424525468611103068109086029729530240570713439685002206255537013570040185396430799071546302118619598300039505303081449927765220409014995331547788110539005625957505507366329227354989457103205993059027420258697677190056966849051858223963198986778840548882067397397459707766918408002277292583099736649132813893034150080049653710683066206843751769270088411985851635579479840378365409187692593105385944188858481967429889273179417920876049852457779737756158120349308709257533678930558587115292040867124670452138413646821013135665973718016173351238791090278858706465450590345567865031410060478574489665607522199315286536853914904273962414784044804523124163270374820854831119450532032000294398471274309628978537118788515746086361875689696275003145494287787539820976645095420894037515103124399972705341273966142988386591533633821363594659911212167991708195030532991056111164927053785273913501777063188647511102885750011869144044192891339003659611124787393044069517357115515442417349654333702440997320451057833218915189256264902942045432674048172780938545925226834609118149644995121990105627333474391463687383863588190626258484648752054532398659608651526471609353603092781282825653515315610428073792303036954785727103409411565980533929060187817206930394683180364527157994743148436594199156761662896333212291941485380790183898502315766272931727650829183034342649654863773468211658540612282595495008222167207108579129356001731633323633402833621111461400557640433367021505330531551562365685136325484800132718580737791121678494154377068864057636711440595059365540971381138485250203757973007947852666307138014479935194861508364315588349389207682505399834152913277813661554304615297193018518715781220479683884787512714992934832912723529893877794562990480133170858138931410592465224409670324423422265977783949899496969648114445078513196982801182018560832166865827797416950659945998042662400904185207074622865640351476999012136870807314801259466436060938954075501197632156913572688020300251676464503176664636945772348355962860682320940968354361365629736903718244807405056884194411337931002768093913490717551117714876080714996257495857163845808258135915574403037377519118209749196270001866031853282383111354751587521415294052533534058223143192272425230101963583224574392252266499928951095366045754506988018589052118895425964077288374352847110606346010249943713747650053944645133585814337967137274209714456937549074288078541207051980760610367679035476140046944255382851374893494845056900180988150448684205640803858086275626685626928389915402603896297945804983276554558308052080862180516198039243648025304461622439126533876861669827777705410334475104034961226446183410400618232367041635822975080689646633145089164178969213699456500329770854829439299027343725260226669570568142171500851927103109682683594074772914118427640478545836449863106752671732495703709799316487950642571679334790800596992288004261218039550094515634605589231920134660686137720630773199003852637158262984278856191178162800729821805412504083295973442918133514059811497725361927544305005883930645889545639184605848989292365932753114396299230697892760801543664203972877310181843027531821908771723719925131627336927502678422547386720548734131389301200360957767113877989132276984760348218620410731486656017041737178545432646659701688988232681796627428912044037713703755522830252930928310601172258403033323651614725518430090291691607655956144575961112003492294336700852490108799555213432314144931021957014487273575028720552250533659833453367134104562502151736745118080733077743072288885892213601855152320097120224395263009391241884412227459248425587798367748494960871109663176224178286140620074552965663326506734332906561381348598591192643885381379061456227134297779736535541893052268918199593652326515966916169012986697294864294887864746976865636052163490284373745601478537611316605350012589317386225175542801924503441930681894390535654523316346932377160147393485987556329567231173141468182135557156322574232140627839886253310324511331406412536184473135637747390369963647349540347142186288364656615391508430657439759062947703076631192786266063388052533264052235929346553169958617506000214010652170545909437019972904868551760295484011370145977320694957341419260821797012983101412683164343967896858475034815554013450045487106557077302849086052456043899595192749188053899842057022866583307178256514404216784691500213958815314178492507006549999436873065944835600064183438399300814294445459823049232706635802787786531827424626029552874112707991161349724855681127272649832131560983774417130604128163254036122553212497626755725682616395803310297636274346618451634525223231617190421753219434075366440107516444814636852693211480579714057612600305272883955000274632553837441179259378202662164954483429604707620752781578462631579231442006929570760685982125954332917612407440853524984535221715072596101646288581093085624683675992677707656167277175160957223769374632262295296051029726523454422941569056516828742692093596913948860357457171931280021615970107148740230927223790089543878609607451207807476605487897940723498802989055892830866678642323014354608605709250789628802995021778037867779299146535197268423561886647022595282419502105913546726955295964943861630547261636964837101641554809783121754282057196999362230389946465763267359210131748314825945261488388249152519015826799317727502871995592863467154387598667527090883427902693521038391667251427400730360817130202391170936808835433750678492564201703429472285452069746001705828985420259663521058138360998411861709042393572576876665417941598835469767734152413378110112765729211006437194938976390301206514268214202274174824177125590954727761868003135853459497761976773331746377327933686049687419007114679125050895185081259108108762691431568005202902741803295663427062791759526869716010897242286811102537919143075406066209373951371803509805666953047581488891878872324399797931993020698990849392637736270858011707399063289453836700419675584941224534296548891766655956549090810468936028776052307040861640670858018901895494596226467085146033714340426885224006795933475728571272104784035180316197668088735192769650836783976591349129836972679779201006374307616288152510092947468302720858891907826054500632801774974115499699742470677397583229006811867735447369390507835040570375608189256254109291693258245663097826198208812326032975400832087983705419164439400986453069320859489119148082145813268905129778917202023753946794869097468031498889871747410600161999822934879946006888368095212893959893403561013800296081059819779141538622859766516367117700293949308398312932591767661752762811878613883658812063633891307454565156917211520677508606754851346578248121407365748158866540983495460253221237336120348129146847433044891779369436466545804894009011759570058185380216116743009674418502199671583812718245759471013198343177317624794889130395364671292096152960505649699316593888197063862915551877508367940067298677585765794403459904185580000662984453295972993248538125805785983095235423922656092614588117068517373818882185878980715399173630603010735012106543853166125238973543383800265607839944812897293833849234949406559543578603046333661392151481330330166991531720069065705904802793199515416608958254548419452317163915435553403159909553709678917742227650054552034439873934950326245621056780131123464702697292599672393811079942931863577553029198091250411065984725326453872451117154334196301278400463434570869053184873719766866193057203002763685751360999477513316747609205557848111602633741637150973674934644281480956846020113994301943786866589318842797302771054454521618495817365641384341600206542370739732007490232812696795206683053181902762534345026461373418833237043751196826201945610915064972348974721943525472683229561501324693224499319508568428162869341791637977132693300310970302156575082739928737433648039232190556872814051064538871554182657348929974489834805145643968764030391650689293549425400636899185074963296531984103240662335283488508680369412136017724189235988464229542969853077444830488147096207787646061011929151469095527234287835561683292196125350842960348344850559572962487059155706849711203484508333894740041189281777186319999054755764160021874892082675220986892308771081322493798499638300213867558646402885615022504583480535459333703658547629560546943075163155483337527173992041151121267216066771763471329841997723791434077769565141601394085266726692899232542395079446163510479105210584828459125773549773144438863907095007224361685434886568780341599877399415321965351104052974287467836752161639526849928820315326429738446861085280016836205845251753181383028110143339126208633262000709340473446334316623524468517578937059808988927043458363171870532766424819380968589410863344436302591871116943189309282379805582388286360900294526582987912093435060483127910329808271816633777339050016875226402356576495488728651997473733509990552633821422376233203459233782453651679142840132520286244894972255105974656260193706447025618729219307815242607445951658931875457874669611819083472009091356329898720053123853816991581886856328084243923465143007700963243277374487038403153251869617358696021627454021765016274807252133079122626888173073438339358752032786786241699727988417137581385076200378146114532787915778221862413344698667980589819205884074135401027197783441225223211145891532529217062253863916328398041999492139717151396372285566038341014387451495979257299388958267219521675578195962463926902925687893850833141916094535025022038924247816017581222579798543857110320346371749004956352575335410935615106373557177925382675939148066883312915090197068079528015370160219800495912398568887137142812709656466244946927144703655459479622507083480390690953560636906252317803327473158419040873069914764367878925498777684577899066301121610034263192498092950920279754462200900578972823519047488292560893525343054218239149046262557481211536218961439195577847280508020829115077266958841284029705024928451103445233641703199157714560227227060159093648626896375461329980579564806948514140529111633616682666734068480997583732787926347553024753921138645989198894073860694031275780981389819579644107742050265153234162849555230395875059431479601696236550934611190493432116373428953113136947899101227121710662696132719223504428084676732668802773779930677086172515202535109883847118055061014856320861684421783914033391882021899715957485850003848747872080684850235126787192939604652883900786129473072900683398425396441751176039421828569772490694760459604072011192796552469681491920953303158700829175153836250622544982107390278273831568655248670379536436226833405406356846562894939971982612464931507506868005398546696592613339388987661026455119813038215034888719037741347574561488539351812577006400677306993405468604758048931443149102186035268615720419823881676863767969130584270723113288910394852203189307178105871360040075964198663239443471882155757091462400329568711414580094176304449154961549815372177686537340221056224676532489874982641812651150599998773070825755515977464205879919396657507438899004046619362399651917735879809037115788965651810509548447371228724345821783788137190544705578334614222711983904693228087992004395894737731357309831194492009962416898696142159927044528105308857950544638198444046482520368912629987244474437143671420757663746168813752862310081806404612980098852745403287643133102645414059231035380391289638913293818574799990475394449954510591638079030687912876407971826320198529303746107875513196951452956738805075179799887214991405639908058593839729639628881157238325010490921213238845387447406363210830039199744243906577086789873156159018120217726150627625635498450127982229335047287689769295520329022997304457621484847775052420889949421863646728206026864229332864549499972215365213709801962331130401642700598495703164440734327188534187188129533400425074306188861901947506660256995742270888803117929044435677206064147690255384532586425021393940727776451219588608363437876528820543720988132508872743465144048359689569247786641907115922391244081252236484208319647970143025447081654985049376378218283599287993645783802242646886634726222556144323959447690680050766470176088916077706560053482644323060114880894677781180100328310245314671826930724971589125274290416625191076891605056120572973777204147568923340076672926348947687017629165090404923569648975671465610612143739048158275582031185414727069426859458287387979051721428127662370088711167616408303731035363128903538154691417971227136759997139628228301526400050163551590320110206197149093069860993275349307577570904752322535545876398102915970161387491162418775296965121293378883244518156678154105938195047145016581629564472879240841832628694525120561349510394344475393624497280995144236389089874103474893798152316044987376645831129985665206424918841244997455699622983931372172328909317306979172999509744268639549172143021469678878738950643645751012184127999608371551930417272731083102513926139350888380827921292678594864786339903830297921173007818426850171567494042185993260627185116362759243654775132602727914876931365017276432869721635483566119747495361395448001912094832156375329451037058739494481267371344332407711583021418830597752089796910110082838794972113798916687655964243538956836708847998713275348086183776692833840765779296956731134335634462032554033215139072880638053000227988330013239233318289341131673530780655929888889086621521904279272671949964348841159701411201484029459641032653168267649275644459149908569568553209929466042119545690796388107106795308795231978453233985781413615175084469195830677599808556257882447657622470766666003907803378879983850025494890282788468157722675044740303387414864426898616785686550878681518773170146707057590931155822475335085206355807735358015690029207703186486677716306153812901915866863692851040407933405737329861632308270541532104146086457364559035918502429820477352341525528857245568361884458053168736857768049488637920153097946569613650022212189380935933753911048175194315151464135601231107587460238838636311075509761100870842383043117197961407324676870696552900008242118214080373683545502761093750065621051075233184308965196153419250584422642294521219860554786460293745775876883336810464047918677263218583224374833329901933334751134092862979549197957390330302945480624902544080066770377133768001218201121511236553582068724740300575726501579152413976516015300708763216796764101264042958907500783508780259734367458807122825932137458371773221867172147002590935110351695561784301683155732814710810855799791342783091094337988061846933805164924507747125252465902616331868513767174518682598622683306129950917956543365922851500106904282570971467767158735718481187093549187459223717546887282753069451732904659126550416998393285604668505742906526400919350766933893389997448523046107057322796076741205265642709911268022185828468772552572694952668993825295466337965470871427070164499874611788464791589267555116802155286147613645762273345814268100299598626426028237190186057228611028146850047468628572626100023872053122978175164422911498409553215598209066895080155868054796367024187869299332634448307669680529557241796632975293316843842081856442572738776068098240293457790878272867481921469143611999584431116696752198183117631159457587881290957917296074025077270477392389600267337518323804509937748554725571791504247209630017890656630184324723779997438358990660650896566750710377769563949846508549802422088486018738856909883666380592704848304658384709289706423029823363256237490487135715665980720014948446144041286102348277023960112653855599085511630174584004470869623236322265753932258772676146144367804464058113874992685458052227936683632811640509722983821682092495710272115164555164151212953144496863579817376800018525083399223830584188082704366101277932221962834270772575799021322086631371252564287211135569665795645520417998448293345429779846950669510289872302227310266642068520218373542441340107334806144475648963720201871598252471911087571363101274978974376078464471212670848167782616899536479297072143333019237320712446689950309801113720945026722529973095950063766637557423402065931135829949878707233882429334508619491341166738746557996927352237570971627703250916109511775864534277589585641865700536569008346561403715745367002697843905179201621707030910693423855758157040580483285723601102396023309046586604727023927134848336199557593734458925863797921715614043764373642695186596704418335385967106660370885748494412073326200879569626945370503170918620873200406763473868553815359797743256298210999584304192187909299007287881285921230264535498800590378309650730340093988120160627280282514747208854278694920980806608439944425448277218339426018512337442056135471230163238412262144303478590451978484543229410385191111377188525618304108706601230456702698905209256025560273639782663950787310657908467370791310488427546824799414501006177121855064125499398334864955108670070865766539426540689869953376051296683892742652386690554595635306164091137549777271361652860580620506589307770869594405438248639587479206866243418412514473754235207521425240754880080603745489110688063360214189925313054278549105660777771159451072891966468621222344478448409823836591062881449448098457787950753995936275920722528319216633872353200491361008836069305498916686552190514967561559336937869654665449153043258789877497689684159851262535499955097781144261822335382764466123559869617046067381905537627405608343638972907825085646880197727437516768671664117036747223100826770686483342632014393710256059346445781019182296009111871396590325617210233133920602525872847124802411129142061672748946903630685873693140402768559792358317842032520179549759090980226470562341239781598748294588880467870569548764560677699819454728639342404292889146143515219428878310673725624345511212059879474867879638136087622257901329696566176029343122615262035552416557110977468042012528300772533473996967006231234281256768769197825677591556426208509387951391220255030605943635356636624214551912076910503605841770042909873323546796226290260530435622601842989860734122678721741204891766702335682443346297508778178200048820832469919288821113237858009520160676520255909871179410670881654164825019432184102380761639578265193161428005076576350257581317922284742026742691870420172907419215601837170527957758825019950304285939799264371725006285295041205234855824631419031470348056710134629060635447945814797953739179363313352772551272147654202897523696470493649669744125022472131185497590370118272831963337429344301302041890123645795471191696607116704798809124339067221298315687399268267511070082728910751481043083814597005647333213408516111425656829153582228334680078507336252165656907350165932105490978236523083274731888913678067127238158908193372820639763192114732034653174151070513304140826535266586440976834358843561604244357681649972176889559550046660243279451351661025231012013363654442807708720161460375143505395088925394093531901975810852557850888342786291059543318795772826982858647647965217267500260543912188843941804004171036451912780010881032926660565873412092564927505314645273980938090306407660830666511867148009733795052127561384139348842845599074231149723734999271642598524924708434064615577791911661923897553440475590958219906019852301371096619133622917459984485910193025610010006171343384011802919564729998567804524680323072863424450787034500304098611525078199659713046302504201643119309318300255262005874100354129690669158282513837894845266012049589998521370205042235497220551036559505414387057339358328344884748431550069690005306530716493083716835494555378569679517952163955324207665482008661049349295827895468061455139350853905996002105464308833225836166146258150330329028014619857926136493236850545292272605429387356266628598862086750830854267335550776905679393714750844661999608646257154399370963347273965726969868586324204465906543889661675089309153347159917122655573342445835360594216169612672015042341345265406692534803235047989140213195965141045024020472305954428804774906891319589930450533200573851160592068534733894066537120860776774500625694295092689142797019326822929146993348665442997161413959864267017082727351751313025240706485331552383432315594874448218124187620089228638636970496334626139255553134867785383311053587662459420803577558187594558701926353529388930440346183873953923671904048524513559997760325006046950518314776847208730762759624271271449890788259932513553303763375542906501424186249821372331924782919000097094739496353262136808133129415526985283186959245851159681486320500431902302158317480523632783798377648557533055442000414674341922009941766704349109953615813212998858326310426314115910638295321513403360825265254620107512476521380122297542702689251098512905173064477816440667247878120768524744875644601790204351720723551871292117130325125538139627377017432024718723252498345584567954905433796873751519661848555297858843835602593911545787087497903660587241915720479372571997011911254662879261008433817474184562494014356321938001985304939989780297044956579562842732774352569505095825903947429693723551470902570609725922079746816197361398455656631048329096479360665889330418278640419816450974449514317463351504214964229129857752498828577605896648408895550717385265734763264464390939290238689692824375766882493387154723703857525422723733193312082460603775061108391069980646188670205222190763632551603638587437426217391608693187566190698721157782412944249216661405902058289861366783050168090434331630797110547716439134339178958294511523784818310876779615910487834373625434879298827324018039049525029663209566432847653747153830684704144797319813122950654067846447679916323348618975350956924150334013749334397087892326003899736000368486862729963968191871242382595487009871460906160866296661538491660174799161822052505559189038985160045094784294867923974187161574797804322475484044639477494358682979179834965197032608540382043034498235596925751070882381066120999218888560714431929611640858204975090346843310033783911283153576046112637505901280856737669890132532158741558913078128629632513200477318175977921060646259071113380436374678386520340059417692273903108951015881351940044249582544672034874245520142909789945954206047806526821668260677424631960773820377239673013096723612734898427506111007206771230880712371903549464714779643605311867235838873367982915881779579340696472973735501083077581889159919762226969131542463316757102350103939827340395387824384493927084428044732778397580726767096059424202214832806636873911690760828431738204386519280067741748913448989744524291081503139398113131017469062745754812189635708859474499988500493059232754047462777090091747779000810126953329116737942550362705039747357075594421258575035588539322879904916413911300153354793032356710889779406031477653220504017112888519174814358149342415883823248375017941151464706023023702037021787959944546262218216183752582772424254994123153909334877946025976857324664912966595044109164136823204701751187472834320293486890880965685197023847899698666392364965267098913799711558692007756430031667072151466122554966916800472952261372836988960641685410744149222265382719543400169923879130288805915163092699832462286162311947011743681422172086514724145208703541023574011142474522061219940599282561713678147821398613897329604671070751017173658304256664038924184212268650756327628479898880050966060502353938201041540374921302648745411150613071674082469457380348201771945173002371364540126654200937308176328932016403779685312681209986106674524758760806453900587853463556933158222333072034402838540274351983766234503767773800199351773023289502338819834223387977035776336473371922770061819345512839034435027751546259683508690054388058651274089777072553614352452042239949713300467591782638148052215794964302866623467936888671369817771603792957865782617214568499668073708712225362966476668576105449828986686578813315748283682519695127579313963068358989981558196625705559739745169822397780905798030098120563885814567103172329839712057176964384568249933385525543442140596602674634245946489033032346130580482092549313287822552700524690515532874746846425065386852387054253636259747401628673383070977973448716885363792954581528904218232237158314391328255102251857422997511846530847492422366346407541075007368787934991430295706389297096417922465705573664635961068012422296757405515175383280783029551441082146587195898225758458885149187986493758611453259134843873562645922434442814205980295255875080555196174300407013148140954172548445544341140928638794222178249950881054303137397421881420976806744342447122884847408526400536020264717858017506138974835301843021922314565198397615343549460302248157609894227090128292856485273760495424411662817868238124340293764274300867937121033054633612019544536625059692354921355637707562564474004512048596303280346365812832839860033114791090139198319570480384265363317623402711549805786179634019177237218345786332206528292464982389747805368058381263157295620464636074239623047199596962743554030318652317522326456330760568020860967553078921858303953757752097792213918627114509714527163242416321538353346575415460732367869937591031430655365332834740145955237744982129379332448186509897292314898747191384087121139793983704611093910857597117702626132308026430256086472137584183121926929325898538414349783215468803297622911302649068427739835539784870973022625985947799244741751546307805859244679447056742802188747809227079558206395477726031754835050099690641747942061993920955402729629521488035760435168714045690357688423849257380991725567035027821977809431951297223034633620426039952649840106579065999288195324057278792260271818274560697957449170697952458270517664927381109553951466652779342960530659040981619268592896414766939353702310845173666089629261600317092826815730012136087294165685654179063442618342663837178894850136699907206125593249320929744311048589127737789308534983451938308135579135266616769637616109262161869490105170981915050615247267200666489257462545863188313423135862268471004607233503565072847695796717882200834778361492114928156240180714700301536377426737595393793963858107310539427829454802822086533619333000026102369622099630983841921188113997780344658744415037921577514497329578762230262659319544293317889499054315905575738485878978977670076252270336861304985642155417169114182261091432587998976728684885127080878318549464605324612445350537425507111146755032980875079746751464130596274759222255831820456948484798114155720875598689216926376626638352936119784285992101468196298379924542907064552424818280228068190458158857195067340321419751690299506698357474881958747331911443025851389645073985878062770836504407395942284706493317752591497061221920387344110111748672958201791159142065793151705826190041142217046342018259804850275348595287031131368272572918931697984032625684594550156628204342670541692625312829498982181664684174647818880540410761737298351606322944631963938654044431505196923478869949273757823750174825061000705245852032291675022707739474169493821344491298771177548962953306429819646265794578709211074438634274938929142146709218087428262607038261398616791978654990727903228377244736179161411902674009235107409741737792082141479583486716346687806428660564424612274310310840069319351387173820776757968238123199641086706497132859935575433712794491079232885923947964927989991566357080384540871390706411837734448537518949440154107840004479893452987822452252205829515110951565495511451013429561844417173341587964857020971986705916337225299869135440504059296280005431249611005597781059054550323757327055711130465202097373102825731133933235206822972153171495345427941087785357719789034602342463940193329016782959571774022593545730405611227579133443749773711910287775267683789631394657566499709664280779303770173104206550936205501087720556795950552766912177368582465431327865635563053323993922939335131883833740878374624051199575460247277896272761799095453353070870928919544012755770051745264822476147681141257571866086841870452834007216705197203513357566357706775326391528653119719721837349841635494941738260116409667854479803689178930773525893691263803773645349755409218974122797266759689417212443189151485431275129093664746728425742418362369671748224729198817447055824425295057461601077639561687544528929222988592757180716338732692788779031268774037504796675152687394737483001203192385507161518474691067477170196928852915673042333113087756708745087747122799184135282334726721294250212820335271266801006741161292881806479044555914456927514677717372441117721177880672207128555200432811530822107043473289029691057001077470177155910591834468817819162170485487437678617262465606943799857382091221490403691546516964531271389165872224313671410284647535531652542708808572317109689006912585608486304640717434212312509907941150413058138157340214324830429277552076529547612504655765365749656501439603312848576679132372988639565895007131537853095779501965929681069276446726859553557119096149965895903663019472330879576717170213516755783258381772895052994493710065702280489452047357530200846409830531714677906839220864527523039464791726698933889752026926873427899984259505464676308626747498087729959667560797240965839386451878588308174243183406460484463675092412620053632954442385830972736744560292016212964084234431578327483497116925633370552410042987589619964851070721571020231046864672848931190315946305269162911106759113078932533716600608188616826408833433155085714418805443113368051183285916712130900833822141307364153986116341860836516853399681039988099684750170938234990262955488284587595494939740915309469586314597166105408664472288272788177482124947695012493017456145446498870211032042611735708729540372621113672593640269583415533095878371468372934268109626080737132581542177669664527796656198110799059614468692266385968062305089209795532821115534080876880330328242554437173877234275626600715175591269755011563652542859164274998125168083914167335904732268395672153889314812237766376201542988102888109096798881668873195048481632994650343332010214649012874670439761361193061657077669009697363613910851841174098053279113971031332289248592109719019673592654080660771332119937505225946508151411139526252079192398550677247609971898679489256337039225341262599360105051915160500702443826696653538935534080912863869272869288913950330929980451683954143434952579431976642903745172463327717260227243118747734920571335059482453094189995933671704356269827474040328508707353629704475235839045555898456949796990710022833681082209618580020859849610353759542474129835212679527546643598037017184526017105474019793967484524439009801118623228291530535327280521159863570304487394180166612985894094139196026690790096629246558242249556032671350578061370229465942928109334434624420834604023617769106541120933150095082309764710256271650040456155460515878832011384395092506719079893152648538505944922081940915478498203516115040334206502375310443948989723739970846075715610969024829365700604464961279974665281605683820115854639043131045970928778592525513431517877138325562012759543127027488754021751704999302424344767288292286993522839156944348619630468072036369784749235305741248415957065095432338707199146587765079585305690579732220698099609510523056602650468824379653985495198182872075040390514159196044697096882860869828968583309575035079571380523746026045188393886284716890223355693032525751987478507290668155473970515691383731570880916331031485787239517494558097733383140246769391101667300182115916503316883640710807519568637227297351356803516605218018692757481466553594488090615550821157539299701833048054568377376661457587465787485769511229881155144088887947260811725051579693814844763042887954810636445916023674649893250238792342900969370332473882279793514365521825883766159623142386425543778141520032074866783318313519284797427663996225311022158231987543643178521317208948983754493382225695763440266579490122317066885773620065898408445787179234121484140489210510770868683513291135933563905610150482628805948877786477330119367169191009572750174269226400637660613426511030843945329581478485123467234571811850995925109657849787168556921124498726305896976136011038859963186872967340883187382796799443044427491737318963914619606539108941113327054454445924873201917329687718149512558398204040044032287981838467676829948037786307876854148861870600812159993350312929277661925254094819878501123846659807317918079533169832952501756264151860415782657790447235119598335815874810400396572565588366382040197855034895424148229989644998089092659566245058511432099884494763557426595397497471783079786659031128773455533250981919327544141759450382290467552006923016360547339372872617645798771786235357460472434146659533161958746881586566001598424231956222910305719033703518327579546094882160057417235228821146840875162905603267657580909456179763696331364252014891967293723003875871279632880942209196746430877987037608447135352141842158961471924925981571604028504611241152409246537933448558211684997260914163332132026358032365373312309324215232561292374092172924539642138638917433185855297852425848066459428476983570991158427110654967755863942797049468178360097334959255224765110326085789898992185403591937147969527198237398477364290084369583629731124581866594562875190732562811483936067227325373588182608753049799776753651596400201203848990762985921731830019817499196031274321465331692721539064380316214421914425964876521902828031349051598458743124160801105727738136778905681156528243059801348416351256155381878007371122286853121594237241123136161972699990539179935459806953464579734456705830196626462017437538760547527255661524775345450588963536796229906591097757573475119469138274884809029803262500809026552600625190023731761257243412690172026313397510788246440169314244409251869745794648617095925362001188988281068752608522609629342295649481494800134230698194783375080609465801186999596590611198851404610842144068467373108141699550214522736506781075227693183472119363575861068790126169831413678300447436267427283239159137787431944215082546459565482367605401954359809218435920063414159880988833689090623706888921553023756924529684784957212587399638529917620011367411579994622204934890019687172677104091343989219198031220587144742743175776450752651284019086350437649666209452305217960637453924716663668441999512046358066038360423834807544867864823707918191432134793690693603469853571423640790091585116981059229201684239256490870602038526387809190043065269089003656344793635853439764026225352734592114794452553207179114130289623679728753987289154895671911024588603776514499163495625620496505470419498759934111219785146360219786146671631372928938457726537418107984411818532390279203670499977355028183180307407915136890994909385084393102828926898523480785021985483097245658362022314082312489232507228523890139163208280947979122348621333136127853062487742685054761275476978807371327039743404600077332420479211300039618485920624433365893318728273295605340884972737513194136448829969467443629665157548905424230972669140995873061000652405957164152939531902870638383928276870569613645363933845870640191422159867850931955438631691655129816969306676375651117642316766795723073698145652625353641480340655512647672949062293163663396003419058634234248850069422991215006228682499295438062264966222914424123341155415095998289011639917438369830377022386128060152316178501822273438370124695134317133702654724502617504936350522961337292002812121710751148746324095654214737959998973630146755331684173159281013483346217745886300159858846843498162449776241589903409612302952691677008837921326746897316867902227262824293651193876833141607725219416047723329259061027990776461231890694278075697036452737354663359130591372590840110058904584850078243355447702287006832763781985141466821975988787352596919448287374364241219755205716163119150760362583507593240953003421938569011210946154884116601860144498119611955007899210501362528914031307418640227646656215837102432656966246465537866509066374148684636570189365987482858941267304256526429208860887474630597454435490061517474222307075521968760308932771254096875787494815870012745232807412801094689357562714827385496223141182095983008513563220857673724539209974277331967585915137793203683355332417528976925529305007635088857496187677922032818561299132158249445330198260659126002543980463594470653456070007665953521444110911236596623511195804370457398045244572835314113250567938026936741073432821584745426345123949372511159420081224247670892769605706151104960719489664142349867334143201765361246811509616998659181696584045033677286813520783858749399104847976331248563693118773691097127070354621944310922756654858562402056858967061851297581628496673576324214161139932208542115276209220301928643363346180026155566778240259022794420389878000515397267210978057061223725956390965500952710401062709780050986923369504485254922994923184402948517481063673532361822911693112994585345815854780148457285613105305949766247509309604355591711430636563203501618979884928630919586285351144025675883347297875925171436498474110265743814582755116301436042204367222711883250800788450513042753649271661326572890842343893697233649824302270966842001176851318912103817827850293731272766947296350947068658254913253770777771873236275753691962265367243576547450451280111403165452637203813629492322335314198958896867335052989314937758812032012164448826847833924355652097254661048843634667979315404840494994245010128910756530543951800033413361722666821998923696579231472329706365601133874601562934992160087205104935756245305865813554386519394152590565506683457951499672008253174809172073523556465474607703897094369052973020900922952829354514814415517144631014238166790624868663971503092666658048727910827183119385869322880071313524579078974399204359451558368666683709352496633977821819129071013171206046440582118481180214281930151848873232179735518277989782433282196199825672924631458169235172326520446940029706107162323916034383076625547927982451159551640512992253662371578291588518016882975668693562376808413523365308370353645479674445838004334604004288728973802491284216919762349570306994785837150519931372369522596845254922214194716584051760525956173001397127036292445517907893772149134883514622821765466756369164877563842250178425383475467553343055189540139555119312744653083923610853378872595753395783403166422616548006107085818760602008911624227349730101975921428205700807028789448254533037856707944445749874300524454926146913812828426282249656919251804946464149593638535452204788206486163850820697243074524620943453691192329966324861541463127560970641063400526779070057295927594786414906123279151843952949403995196315287425606714652625226853125634030681918116286460647636135687953102079157732789911033952284092153836074667560988937625177913946364046894845873549628772373242496157955895915219009880988786596144419359661103562117207323409594677659492534472243194798765192415379940121671160541756496509404763927514553117226321313374499245129015505442130314498180126456624075297830733525860706911495077338096451565894924398896605952439819579913343916344277184047215199942853537758558057645128892843356257296350027795414512918903568005920417330662570746566088623634822464321647595863426352725067772434686514984462199419817684729439904641982042274110600152884952061288954024976465241110285715637592916491677463859175313664488659851300336547801549662101994497670085736887439770788586039022925035305927926804583653021735437046814983347264033305958809292053577630766376759990902395108979147539355772309611572135683437258115548013165294168886105241338228926689673797871156254641306525927625242314239472218990618856226666362728828098183873846066282094382965294436424646146974275334755324454199246550173660762331158773822368590608676045725383414406718775220123519723589440714088672892235168537222820964636952865743760517312650815478460637942659121572825111380877965063464603267103950224854850198356128641335067687930445027546765811215733749996131596745738774539498757813848363611634907302236384796809811557626890730483024522025892677818828009020370578594875799684187167266566654644394436398750583284580063618609145736390211837800929316726515667570669478342148790787153938070805939930792465466641894278535490851907612043393259531366049406373991280064877732936482546138828411213205929320750526495155430967024580957133501456199164170844651348662301555611508228913804388278396072863251999246471449483008173305527466561571276315203287804058556676658457626655163318077279323803899411232343357029215960334305702305030970620226965661040168385604724652493200276402872850007459299178574738851662506526763394484539982847027030505409985560731253180191125217912844312559316822745771212665482321349483191143465307926820229603653600253644790176445988363582004223271116431308686816246642441526100284522311738549150902443699930757649634812711595482368289667048205091269393356680859166237094417099417156813595192977940153342383790693747751678586738706392003238644183413513240431905468265096292226849134145165542697532982664389402547346308334098919444338378858669519718267675945129993181567866604019411777838516372058969082849963414040379654287555005485486185518028824823528557520135189593764980385667684821147462913468452884181554956907213155758087250776336889100485566135864294116594322032799669877387925250013538094155606006310950924732379822614088497323758638197945189450137328010566567200501443142771148486679553813772167167246819455416451928148348890621091428718569398054501827056732583067531836346741593696080706337420261921217745094880963363622627736284354664470166060850810740183626229579800973667804935780888582127331643686088051989852906258880708336181118772515185157014592616386447265314223888528044717070533056502860389965807083654096653242977601887736459740854349030590288532095829283964718193268869219492784832522874847952063571526218921239280103119282737607246832067802691715829589665475601172098937161728643881671059233231943669517524921408263820898063998432503501413250064418407803017984273777676121539296651074408318867523605901727161064349773470390878816042289410369118792374042500854999112314496323147524895550180005512702981731326249033595611152773205688581527729335831760137074998648734496237537510999359051981263941126820536693136986687207969747126351503884527961844695559398190660867746733596077696449296044901990433395553046633484566499225031438897461668821941428271164071560889842600836116030409839074634939327620648495830349952840435992257554192876034306173405374632415488902153044102382648777240938219449223844602280891401438189028473813872021205126183401124581649729830550587522886076257286712975133235494258940013742709618913327746331299770374158226948409103363891223428143973780173695944744602385885010027265456941387238550421181708209860348935202809702403971115365159794016227812879015578910995852437885626691817071372979882492928030746876789969371018587951211977158378394875623091309797692931319221692222898187291570173201551594349813930836675891733429357447596439390191159403316955089462838246072522960052538647543972881353187711464906417604903992100994099578297848007505030985343558976391673143023693490372079168111428306750451631188684301028327704408054475693241304659471591420676453703701158477955287686134269607052264191307759816731813740735330632103532329704292453015755124712291121604919244197634322178090779625077867055405648682722108720025627070127772690462077264033814197138430163670709657056740782286235612551904404863093177193964452535078652236183188926073502205346179800069237680483140686818855785230413841200317482366816130648808545850477335442320638234134069386600030219334139028386259165250344258009224217659661340352351470458047643329294101455727687132913660568377948598108006327943776028805023333845530703977570940526172133042783181004306262754948786575849976827446587804672027386931485137438811853025001250625579625020987111469041052192508698497719730600731906160985495030636329213652936351281647400085767963698313845611049085538060823788131549900995033781772677515728217652447861582246818124183345257294306035088637401909521630187406223826199922441122549764210437908543787700636343994541327381016957107409086992833666045348783024923947854960333418988717031497894650612319292821591489260161159649344164463911674560565685750087626889831735027942535352505773053895539372205608461555317876782129944770132041291122753781904122657194658936852821047111200762974019393450987269101816729930180752905306720306821788982424229223571315741074208310085883115518704468480122398592717664175245021956052230120017943785377882856914089305240503863266646465447780345452001694943937766507164415539414244411892733332838819651215869873764846403438902799254369821576829872503094056332883920949500994412034562086764757346671770246777903159814838116298364604637151318375639000727690073558999451278628636933236893340102233883475335594946859861444413926799207606784248720354018323483464885157987800492323215978159363019487577005280922515295788287699980212450662264152140999227832136451132505435533624542180365645438614889954860234553750082947609295386561706369755462805926324865334350972366236190710655383887894161745791257980195072305425710289467654312519116604011422587430877262651342693167873309236850791634409855163205004214980259957903316621144682236788958459837359438510773691386316945208735120481483441951378113636017793670851360600148432233664105191240616451375132205407015453074066301855677720891533980899581067464591496981316325871151103163659822734233710808618854847927404177323793736086249963369584078705559682932992086505745658924179626069898207123079210644686113656495695587358518650426869769178334244882970364147665422796991974065023028882276725889588092980417239227001827888669369108386057373716272762671132259373045158576331317185497632202412380212383251076830899571541765592505419828712862570319061947560537532397763252049075396047999528514055156045968279796511207444176110276458100357810362235762146434761727781645951523248307723607698960912854866016918540663174145454295897173882391032984954084087998061559480235373734467819152170861628946642496973300470350798672957224831504787199613024228859945348552882255388462613960122566528085880476506701317946987479189773311064786618342465668670403389877234985754237514047511556386511423575396836971465448601690564276807853380637179889610876747254874524555677924201304087183240577773610783972676220036673517143773370773070803444692731185578266297031501334206353626055367428386831813274609521791426059517991320255445127466505619870100549089559519855633469247535838442450075245035362684308482650114683554555473047219123631787392783132506773352445062141082193560703485298928710014958569526084444515723669660379548912402197117486480591132208429710346020791382461931506167169638619025173183860725920177304292942054689888520193763426338675907913558844783472214137593611587709302122968451848179073351519764632670927505078485876120967972763960181310136203034056720707048547629384043711350799773314616837782315893140713373243943920294718399253137020542131493273862059607989297882517356010607566328497768901652697334984396143879891618098961457789888691452117480784281206404215100794857755324761254181778405387722710177477767264157648309232052290547395326765471203624299184958112568522621878797318955056880009572226959429531789235193315531138268802627084216393747688656721610310243922675623412117854816068074165895006733744604841564790280927173334717724677999468031169704547807693848141594254978485033491865119388141707051467940323444458509822965190997413347017140896808229260494058286411618387333499172343588622719597420197509673726959356379141632940237564528856588470108838092454503518440674644986400607805780634824106467085336417476645574667717313378046918618128568859733291166352313315616640720636147721375279360239911586769377037082505348653349508745935793923771477509504339361312501341233774195096366133393454424412155885459564582472139371710485474703531291503075886145807250713178326405595664648792760119920322220989280316232504481604476137153645041721247613256753052251089817432124859245348279318112875725338051777219796971224177138454705091657800313483924792362700037389602985731195908850976591492700866835869378974977360885367002332334882736318878706827993230909986609373284794384082635661360645350818991340858890201993619279935379964733976886659291567959262549330680000416888718093582098747490225870648082985787179617329923147433426096736085922513443071939597859152373155574101870651614380898806675638187952940566747053993716034941104060205915385211176167404700018388963648495200199147062996082702284497350289962401170546675534246728850800379004919272153651219576423178240078385520037650392903865125980953954790302404152668818325949648674941171327158388791725936791814662460258693863677276418630709992376150789583292461556566727545839516794989524190538427339240451223501022160740552117191783413667687198361733947930980547477458745364126634998441682056919043070474054190064302668328190593360334205266579280156654211496630327511968716878106876234092499155966373193846052608132238532395039764906819190514171338568736671823275565752322044521567836609179105966550921304668603600349061523982436908596349799882581499206398609022947046937157828662752332293719269379994829499699921455304044626579942351345915973870279239188767351414086423752859269523278231198274465141649357043388288059972769659007722712718438948458927432768092197251867078586716180466904920962781574436673362775204485789567168168819816979517458930351696841812470789173807088660546988019526120232162770088916131750046663993928867506868319249649076908642158490242714114853597201235594321064415994875321382229006076119620485705484226869671468465785846928302368860198763315967990049204513009106132198801877332634751978660515671245640656934100297579631819227691811424014737284165995776242970115455529580028106529119984946947355120661961136411901163374232683050793684493293326643700288523840651761237173015198109865722331105921537745206026024748554627632982281010434862291206421927910302461021342330263661855942692797311039496187095054446713406592776578162696961133341560862707498609888753512385988214863996045651293917673972402972022932845782491110684911556509040490475128395895310240145913444314894382464608225360561260565732719401642747585158112130028725134822911014028159220485834615801357645201775871924092060207553115777455201927253747042556475792091530028545706410349949591660442629007443415345680681879546705444896389536863281444519526456046262300764951623248858382940670321647510294828245900149880883216455486342027361535739889516100199685634548334621286668073746053693363687407943765382313225397763042671048270470913862198113223422738339583959725878867359476551482068348918821384594097186647123304688917987340585025201919492206282929609849022678763468809246865942886318540018676496561195834776854466309636307434564216176323938270727537271118900592917946462228921818297221481170733519309839848601332763427917918353015852577074094150102478740623571428765973969822776323451732658154564304047122060611694719478003272586443535807018252022669431473272122306116075195041285828822108509623985106593461111592443248364541136753264854537907782921846814673441350388824890699695685400932125235776344014223618670894319011058229081640011657002356835672823053352337654554303895492345338310636349447877505833709058645788882811980522370009351815894288076724526291761071671476756164791516769787769834075609803286782783066472696947461914021922720561850479685779949969754771769156728680434058400031764297824361116879479834335415072340349287777495826285672673968326023709239656430372635130082250103927236679896521687297682691925809175190088009026469935921496481270722565946776038362614727197944046040985307199311958600941233662170260699279208027611011670560333035619048917434343292831441315155994684593612195429835563374203735744655546728489798145468902191487871116199130346412470569125088958175708590718677447702610247616918183673912569474736954177383211621882090563687563561864451107980947748509430657311603942954612000377293347977808178004262637156649546848611178718221703579578222738957115290307330911130205083140014403614660836112424865246056731704023806599554744676592185241655181758463374520809292866345746118717552121324162450318750697932201237572098703421801132097060431405949164975656565512308643412327923598077129356674595749895447764132440124867854679030217582881567865651819261572824031560197638950202409008331289028685239624895896105367191740168025658646542887191884957647544534499189745085465448416597329234967768083063678038098926689253068430149647784580920603619359658610744754448314396310904403582588379610358793164456816566561882737663433776449784568541889814416912686504942681471712073106557609585804758677263686556612445208139874212587731813207333560985598990296696411732538382666070449271797600423235000074078534764446941349787322748267930651406027428354065217935199457016218408140244547504867994233452281539752720191341950962107433387804997523578150737578046537024892775625867677571987378762342646877691943558948321141185897295656462416225597384447627068703582159676734952172246514305088981941717389490784105528766308756067710084617602822880770466423154546562257586643514927893486894233614460884550386926289941734981403856563237310946932301594204571040341750518873780422627446046043069426447673214929917255324929158611736070929918804539027786370129665107279530576891885661224392556036038418249266780250253630657927756646829535166163093218455696871075465108950882614512161911280698969117740439321993602271906857489385429717473171327759066689761761539386415732436604618334608543221698394432251285623675699181655634516246470737156829403955587113933685023939745901866370270628113659203368195515770601201772270564522782321679200527993031305947658295271826302937531879525963360127170980146230487491437170395328661923518847116405251379360235764213217677066665354286209397377209534352032665255497335624520699321781987113909099806825062658078656030884631277115544514115533326250898038402733948221954202261658258480231992036245779136724542746669007510179339026400366235531165619245384890374912928456253676916508927065158256594135768661136052513403683392819408731948896939541098459418964305980090662231584204383085694664362708886384080711889636223763251817529329012206710641365466790765771226162860628385318568635331947727658288617530213659773034140864796355792948716130153405997780438663973921754812528515577345206437612997840928227493351814485746349639040490973108556622795061279255522610901623162115651902796014020811095525765875035579260266118997828933225355203071782653217061093923748181788347654050631841685984383923186902728404229528464027172986734707670594092502006751730624793147211743906438565095059485674120448234325206630576239127516342654973369971154175934852243710332233474103147264415474855788535654639265157806512765532607628190682868843242340115604683298254809359666416439615278276730016834236419970319268179063801691199074836443036673181870210254552693096400392568094399264095531793878550471562857955004150329843291303176081795006802151574012939364308299899897579682682110272591138896593742912974748063847782861471674564100002459717146176975710991204457644420161461298629744501957274636370373846113126470824527244671203482737523335243869284659033088923508059671583062906674743163370465981683926292434363594147223062265262041428865507653834159700749135074258132383774607917652358156334801221453363252034394635259772806705101386174617355825688465119567805453252922006436177469766202085446103216899165037641663723304776270060872917797797831660947916891199699592418063342342209096423479600527534959115075211127141497197123491569947314839522126351497385464410500694473610796601162407348254601871852091979638573836490322440293623764078542000448074787969717683625433475255800067031844005696281424825734503323488967986133549291965798554292169081030377299448982829688092380916579075547058938763577629367857020343895796718568891321747319792334599976130843729949941620416295500639712998226849714084839991164052873287529632463293022296268726497719432180970933375588397327060153884024584077350175109251447721064987026079961677485347737984495230460281394104611192752877760938625322833318245244927922680559581273343504663619962048331984109738603116597995614220182993944636148756603834263043915479388671710497270326032055973012751832227403787352102957784789299965189917993508369816394239903076543288692630404024660623273045786331266315737968391595373054060490410667351113686303007646480205600018399525488313291272467513956075594127579066615366634287360987262572091976106133056285665860291930676615356563787789530210465152319520498900602916782441044769625183036187937372012641619394329181545613540039502230284918004630744370491542339175413253544086694164284991645953975246916513456627406967192689372436010474745083975749596689544169914909656550140787028968821770284284529482417781868492312266195926932769781071770209451204609245380317771578926690414489593563057218345675387971308553736932899509665284358695215905041791480382431014982968645950508361792515132570178162868460083874556577498135165239487162560056577998973839397120605024923864778816520692638252094350487079386609176813941707906290245267258414024922436654926436442536856523668141460232731925307475665455610173603944188557475671782063106693302060614063733251147200134377957630204283528099226295945451622842139517435684690094414299136870423253446637118886018205793115866717584697812530807523554679200981964083843508803877154681938910234613513722135577165392481282788432568444157103094706285635046921876890263659691749161682806802647139836032316524817880819301443746537077151818012047985492588322995039853289390938675334780163079430695627159043234731454204589887569470041240235054905471958147193942596897794010927416103947471627822325060368433375953008876513146454241726653744997660380099665118871331558290035741946890030788972482189677554761115154393137472658594704861918917270675316759388811282143710178543065831667571416194815050022939756959392391295589889248447091121906079761393637581432840929119604728293906171455294663290155857546356246013421979909983256453430867531655579795777237480906568206944064918063316100570329674245956720560683084858862041498992818534999646247073569736226932039512910043893520823901749687196483269368790990766157506600139841159321617002206098948135716694201320749016979007621553422511805898033290097435736317303705699493390047271815241577078081345541336749335188089148806469699500540090187510953049300331059373551983312573101657236631273344348210696421043576431130111452400380367024817352054254907533436303422984668965427123779939474869391232120453335789060586021152593282458160437161778076951550631849582021267237781387218778580334129984649567657163237839655499698874588776237505570356003020803218158708055446929707618567795002063891603504990601939131626230753714568721064289070538077605498023039375210094594344228171901315703241008834092561126060375291400566311353579760251058029670449604006187460579613694941931247622198980171656825739567211023557269149694807705021570367666906012247122601964619338639029958933618312223897455612540562174318609091647043025496677553411253573468406609458423103245600004427785306948081624589648942448977078415827234269431827114338781812853735663858782391617150868056176531118687307738905408021594189469780399637127716356789733535533307423636311079365130182082031224580453014157540807911540435550178041571831790188048887364860098435225353040666077711101248798235290320263833303713181476716402922964653065566084512713440864258530165022001992892299202421356857722332780315105676600416835625523678650792687893000596246228575920330497203026821626138633028112361436181115035705737471400699674320969284166584132700145076821391810940998314754183185500859888704206519468276283914887061843319997495954408612004092927491163503166778962925204012564804935229915706600417366333348219825366817870537890108069468755035147625045537188520730541903361245390986377258920141024589961409009166189720058333194222480378465135919770051324494832551085431618619349089899625324937229542816404481656512334967667476245593569994740360651493449659655233434670410267149887564356283052627596566075973738141122719850813822640035005355425962863512746602030032635526259154624159949372183873128363083435724001027123548505271415588331614492087155757822006170412032134576301266705274937314844437992003794087020570894537894227190627149928294496775969099612474880807964411616343209423612531491467088146580715763227783655004860821112979576858952077040976020004333907235662430271845552757093357013413666952557037742220833712563676731291304731999649811946413754947584406121612514316488332598718394125358491711686217521426259729336819825375022245016643232323665877123133564388168887226236255579716002079109846830565028159362806307824591275001844328171190839977023630230802849755088148681704518058170097587759677203538344998143944741239718691142166407082290007949511221518135765741022386453949088201517590100185406788618818208272304585510555174713476160271784561733223378392079097639391552394731954374509302859543733149651612542804406642746375596262726984790527429631205010961884920741469005580519959199889057667563830786667370383309340395606229403527491902087949334388627210064607066307567945443053260534226465880690120446303333710074569673091183957686849397245402898666351744398857966687441046367565464544659821544606121064521872031805597382039769766040515017844526269314979887179054544105849787769874498706273101683095225811155749590389740189186668602653567438185209385195096418445790724979677293426384408073454808486848785615460374080773466050925657830834086573750421906244673202898983261573884353923817268888122771715669778512028260487869323480323438402114759330754955473755060049672661063213499917646610871059484567698053851566646525942808030280570652051820225447589100853462285994127139032940264000264272249666227930094411126912447009275700646899867980622885586219212790488613671426966183043667758335655247079658855178232436058436056105735216059984496206990328321855867557382318598870832051711751542497078799537219919828666580739960974911131636287778572188619257306569003900232238395382466480982626936503031070673830508205912423257327906221881785621538152939424523284257802255552998436427206412975172589434783201356367368117298511437307134456495115513686914487657804977292776747802159869896886313985791674145874802144888696865968397929319065780876380951944637070736774211349108608482772003630953600013116136176964110572190231576217013685587686175394335905034088518428531630993444394894193593611892123555182462828041899428083891975106505300081221565582337193339135406334711630397938778085412043322107607179220704186252685791101483275418652943548016343387774028710385865360233817816498887264751002682228942780256817112230548932563697406671958503424444580903000347709172583400532360310614294507967063121799304974043192341196477853724312428786537893547522609999123936875241953280828441302807643657875570869351173497794824868568329852965012642164813946119779226081258557653867444104076320709548036775206285197219295409946079166229973799739990342525383518299888877557516415505156476508041667571319549808297037254335788619512908985414564024753444119586735451256380122706416809775905933778390034726379883526154617594780847562521524771730824607713840281009915967630428206715325073659883799233965931265265878765106082877008695090380057753815173339898582657715399662705559696182326947400205078482154451134547955473052309823357825606467243620375524019259341912237987994870981004503286812856066671005211185856825021801448603569648714528454475307541024050740935933212773191700215442413841304537755188093287142172454965920864087502275340935948038363091542484379928484572780473909236094539630377462165212304440169958791975935011951753570392708515392020550808022973359886399519619126577578724534428936378945422873943189691672306606513103205346751249749506553384631924850755945073655819198674968558519671201524594948850505097952625709392658643608348537178876131084503707598840350614455723102407640062484190704827954132362626748522516244507118063550323722368446377711336631262395443540411324434059328994792845323105056852464394331658055236281827229404357418659884107831339520086352247792167610776527601189264420566392563962890096781213249540579178672611533978186024414561692670504140876146326146113183028201445546507256846321105579704716011718070743123773877866879021182455825287461701841166043465003958349254171320482349527873072822673979433697824606250889705284065313741106284779823876337250176586994279919660710619970375571612491367063397911238967836644500155767628411926135529243032634323191899953026126729551329642801513843917442544350501056692514278213522382802701176233223124184210915727567880063076737696697858082207750738802166381317890814723499475501284563406886388442785595911469549723149978601853445495439841342668111376419813763907398551415351835944240271724777332282812349472917601069507637407208766557355988722932111877497537528771963226637242999591134441700928790723496058148637178097408086426139753325229934726410240884366188111810422852387771260618229918125809532399854582803382710343117449777497186488218457542191577337907703862328617889457322321647612138518589356780075799367654360506439052417040818155178963457830694804544362533547532890481747593176675858099145078807508704589156043543452543539776737322378523265943393052758625233327248388685848222207492027522946861689270593761724200953961716967810113849270080166465242726892953614459819356684755265828765183674839888895138554933616605371212110668149072654287450514242389110012972611603483410677450792159293605828343792253910070053078782794652560788163897325227178992958437028336837788813844384701058060017710336953515059952814890526154037933518992670559633828191328829746220881787893438647194251864047679527682280360277704672051590200756846992399736189645421783151905160715237134818438612485940439921662285828898842750598240975645904472154137022731926499944672715957187273342483015341716392885497113973099140071497354823545568858473054335516569107454182013743165219777334620781554176721549922224979796469652388761958480084275351221180295931708397827453127999541856966604090460108084571216036354414336205501488354839155810644419179405107914780317326865108853425927216024647625998744371988475482525404246972380772617340421270541823947510623228009111443584695356992070229306216140399214414412060888666360361082912504305427879397866778632609651338272819602531739288802002403887759331603207060035306969033263719161732982701010265156253160957185698197457719810342447210238567076085388471748126866232661178359677740027692485357016801862170461939344710270150627034976027190513565345755704124354104230123484318097015905685677847662782264020379405123581342036022062779699084918383021187961219006243895236048177801738882235969628989941490598791820617578543219182444127547673934620032870823081203834029446860821777636556933162845792656421631510952212151076185560322684112171537476140518453648875005822691356206850191194527363616401574234457656911252786747864904536343968738169333780467575203286718863492975814188059107426519927660733909714612397641060815893986114723591568690598511864523544193471878198425873378421446364475283847324559412309501347592375030753717643221148828588426643151791745080006857953351351345562693441057276641054947571022474418724863662313105831080603708611889300048423872228574055562519259202314188774785465081248796913424458794868032526416674455061825331078336502020589834590965236538907906293574531742431305120005990818323939097879254418364364234661029594540371367161712952194913723807029271934379051795067084777951593276502734739887647906553797840116738065461101616465864481763192904196570351036909941517731660937134130333214184642306467713892750501467609817323306492833119654246289967192988356610235583156770037526508779463328058386172650496127623557687530099958808190564223880727007029924759392159719960116091332607353882803514989699961961972168120034479041649808681584163040428052913711314360336178392859315379771511880068096247271814718127480246277643271315302057235129628350374791146633579646545150782676757956321324341377760275343943967544176854268161180195813738047298884270136865703959281763625101023867496826567077898928859943503983306882884955748462515839009752125360687598082578062354082026731123164989610776240046959066098894656466455847199062466152163201547217109870312926112322685169865102822987111299592126481277229411163297481678409791714234846595621648693382815387610103480348797733766413987086043619156674776081730281243902324905473156302087885711083332168015281837409419754338305257270413456639338103004115075805477217863832661673722873679140565498265498543763428830122893010411483992592901783154176831406782556868491402255827943794170228187734847034916574425941646879937890816740795234712169263199906120104873327499378823067997555662995987314236538080381302685559666018430476804543914220064664876169894144340375362750704236235517369324144899760483171690113978919633809447603413972081680606803565935742458963373101791851785314345944972452958457200510792122613752066931047713447315336428606809412937283930414156762117093605902826308890880857817640576602575498403394794788641597452879840415100172563320555799972735922102534777359286924315834762682659323818558483054100261851408568876066308757121557844219500504626025031345914819379557935579105713130219796809775356707296033698236550028986328041198610496777999824096278958056174535580568336587983937055376201279367769495958238349379045365357941191064147836693519336690497747095379485237295036959609809246673629964798352594246470023015838617557322946717620337214526497472737414115228025814142431279866902571932621965707045271226109749590257893902574130517867904310678313427269394040066551010884722471350462252888581049135955732755999031024238871023735482105301637212727917038930185842288904462992956975621393559511262570669453904995241771579541908371144616622392485277367827465490553226637317683839877565585438070836008943437573289983114029313973332990928144389590689140665744623806759468641653844026096268633682705519192813328023615536410435025904521823987880650350985801976459517560955886496114205054684761003363367934502935513877921503506235657640804103725342837520143977077976649468115418469770293125269192221340136267737245700732173330865163262838708864235869259809935826987821239070688794321206262444658011034669319085547715819782554099578959333256152212504438765441346325869247950129771959161394107962639014676576349551645677399549460297156132815613832676577828843844221122141521351211252246466967733964093411775156090333586474628752675905483714457429381926150173853934572046550344998196931707709783192130775359811430516997396041765755723319446136021799708441344109605185411092564908170268910547935519023187156705654251431848638696388904044703485175317101916279087146916139151907835802809575425852263101835181561573037300582872912173502312288324675631027961777812216185907567382737632427349134127404399307318688178256286020322180581639531447081818525372134011401125770516649989519997170480184964778613039561875006979045072924397786200997922583559405516645358919906985341109559031220017490622302617096557128328107184253699081152957967902172113862003672320531979404982089002401044105349566944948388298668145043111715061332596864198954899936891106562020107954758797626219555654143554888368765139985553307324053884939317310819848278099293250064413784001241204987068388001373082958513460874668676417687018290299152161053299034211857339054433452591227157157506518021251562415847107870342684865112916011731218590818526830434674673912879591200253153750280609009651131144086669901624401569354292525969834750895077561549179594124908614145520133231468090347160413710643335965073556874208400362427971230079499226442341950701477955333731847419527308807263584257880326431220997438646642022631651673691429952925854426456503957593046797053511313416135754544174763111170611239691536068995701124368532344481892988199454490973235821503927698067742624886403202503721361598201876975948886516421650230632693360513015911571739191157317137560517680485090416272168818707040701016890563922417329283288112841472109604948457349288816247892549012239067776631394159438908932655213340741045454471580519213831306357532845994826722526478949777944058201760200782781227825886137966778452166985447672872681381036926332970712280052077205338695275700983012358011835035728722022466747111420616388532432845591454861001442830456309191886393164100323573095753521242705096265885354693180263813376647328025596853734179816760652178670068817668033499675074349282507077962504258812837794552969317004900011724148036857738641481842140460917947380223762823920998460981670332462131256950834040637489103035505217754544174942911502602295719546074302170601546356255078333659587008601436939785647867245833283970566882671773686877131813353608528127506597466901223620998907160463308372075817462876439164519120455389240303181842691141763770476133829211509846887875044715112975445891056777713716773555458492526257839459850448944654110842140633228365341650941621076323221219331442221970227150385183932714242420624046975935104944656206732071599094073534174959180033308016212567311515198429545924496903327638231573895889027213275211125172498408765025150490388464580071390231399840570718335061738556849698530667922179502022876204922568394146596885445393194370270217383993668354515585835651648017759774241951594630447752194179980682317206640917487265565588586881124161481586865046320001042886140463365204192548901522877545284958009711804227278143461239840404350079517203334999941761224918658185050357169319334968064138210457837398150491697705961841581370081452651005112914488773699963253621536600971964136975533664389956794489353845540899872254078600213608212094806242806267022660417995674259687590359037052146870312210152209300850322340831877306139980789759164884099194617694139889632322972846533992654224732895071395977855354745736229033316259170094950220812536620848905438568592928051708663526999630856493323734360431713061926970753993058090120423500898600298332000291217096020929087820675627021139073239171489422196439388942786036565567164981915293579495569143138739426420237629451504861259225503667362257810765151319819064815557091965162709307775448511689924999561695070130744205836312053754294329272925920665439387435373303089577494310570395160727833109245081510827891003143266508839198563284928067352702460602352240300131257208278782635005827739445727766311255959709473712816950148622634594502853029168578165282877331756290185282781167518251848421240730566897684252726045419701715610382189660481355783525549474516200793016543473028795201698394576679365188728687765099379348850008733563631720409534315293155947335686507740539148869399996332433631719748303440354786260688849035733220323225149553038433705548573850249958620901712181044076020773560060082155727219726736328099698583782059956825128764881723247937721163022273125301280990449511441462365747750283135158337629637884333945254423214290210222782010290514675093200896593518456408111590724926631713393752046905213294974669554699909555449492508268423111830847305615469197250936470344395585815450379412176399329747244372554301716455907285014257935129865307540916190254666316084994847381660239871223240036017576440201309612293795987258494753646426979118004698794705020077666816812064104425439099704026846539403290887414597934950645318001117304616503583847748244579730949779565236098114922347626072707199017639698881468508064759582467230895957805668441487475288788306795632993582164034541032050135583184132459942533998492908530213268418279223259585933779071626978154527069274989025042018761544435421940489237813164606461106350487450595500026885753799734506840975969458566710352318451054274527998320558685412765894505953419664599775595022209906855190308378536833148245811245446980097907929321270964735437109198330822258168753334768545718353491641120280680545264675496336630882344395505029779485313102375722527655818772018830677226164720620617080211087524797046881935511516968463622772980774820388404309663158294604840240382418732741025845601537409308935330436698632881568421698844266647836578504653466450332414510267278404595375784361438260083571408032299867185400647298182777515703705206634776957509743677455545168976286839467435176299950729387181374034624492737254638582131241375828161178006408030078220430982877100713664095244095717991984929067481966320460287844652436459098880720364998142057258816505354214612044208397887205623060192417539967032499228746309961358363116998817473041142517674136922156221991578316451471990698459000996190251277544915018533069348107004604202439752173891670130492604856205844511917262358763132094936465671345901889075022236385789802432212829572015480288683751313586066044634585312552864948954724768476010931127408285867278803768348420720855873080627348086023276106166899360176881975836015248812461120851850090692099376886961901062290953348236646713496787276934325552839123447547408186546138132814110940515550569872760510265191114915512486952530837124163000860933279529829782978661002907216549188952980590699324099482129179443706430529357368111103228680067121985796746312050892184942724272164484414696440016762416647983447740408497099004244748276884743524132307455057580050002249578661154958455241705970017278226654042774500651049471486026732667889155950262311339187168170949392313259452335922490300721179979227309826010171948494273713508759632267582744086817016909334404754271141792301515047011491673079513416383252165099683889791049243748550058462651575725917310301369965547063988764314708225742351348990144256593879833214756070481909863799160782480166685267181326258386528380184990916326331326800023978862958609830961809693050865590049438676912186621476606150770857455625777982939941002514472044399828589402135752611403459858494952285568578956975060935503113414441426577908675228607108240865546167425017267521532855083615363966135782475033031713431285948211110146293528978002488849414991899665812433431241494645014943504347639912662827596668767317068045965635789824544503341500686614601377590932795175042264975954620328943332895714904050465007090644659667932349311012530278010386136630016868474973121964552385575079252162997389018409161658692893026275686526183306620810380919094375835276638853351481396446782692004511923787466595661641582185179454303730637255863037213473947405156713331454606551224982160265339413070265180164245499524457507738932577785762326310926706039808078809276149154808308563363292314429036733180628680772446099345803564074060915546596798606723510864895448778909736569694571048222638677904325907926218403010145887891633644777460034205736959404828471520040817255083906909014204082006391058462939733491785638812733661722184572558337078052670232722456354478590054641392733662524235233440681440881818156158406869053509503476016287531715039614526523319254307475015082358604989170077526662377033650675981150522773461657244827115199543731007009700690162882810009684012054063134716689333070051590849989513781213587446568779570444090498505078226504786428344916443126374873084722604201239182780003822251090936953172081425922112420451327745146588712584483077262816020170942454346368012901467856011316730698364801106077858671151228625903117646925168691880650572990082976243587707633780754335949178118066672796206497281108079404417029797560557843422702565637229007849176974814426136967689772983271918118406956506687102529424238500590385143453594067805584856681170260056754500451382215728518160855488731705468306698540605887238433979342299605301957370084064302672605945701444985747342649214984957979514021689016764752114787302715438925624352895196765163683904716275298069025911756334249716035552364845457877289771343972463491900333968566506179252191160528658843102374724518305350940351059088736884175978599434347502584010835502595061544099852312670624051495470641341113938542617562991253104329069658782330660116337097005180306192472418216314774021375669867086175094569926309664645363554655846473145963203972384963469289389067059775722826988165821302341492151219945657175758300451766754486445953981110443376215772843014723995297358413115764675873768800168571759520963462446374784473293819804448391613704292770710817311282601300853298624194479229518026161598110184681622990754167227184376688740353884051794468848702532018752048466859435128136603423547434486671559693076766126028295567910543962394320381014493307335210897535766898116187436249554801339940975074644106579311380603635136660237011687251010586408601950107030753804440214231543037313429836804922579679823405191300161132100635116799738693948218387396942287911802868509360184839535721533891406666206264714391480075206592369842711686004186220970885752154589123437637530787005644657794560732340439198450808101698612562668355093458017461713594130993525675989245762020103179286710848777831644469680443601963557118158914264080200460874728221657325741625820691626526232576099595018644380188503235346269900230962900402497382496535686091435216406880235083960862202630909200505685192249494666627770069480514237186968835860037926128454104263194921101696153936637508476938144907289552237308860249352703007267335463127490885624838400620199245297373327262161601655731810331034944871420895963779018851595279618661226325127191955677786824343409622541979088436674192051187172543424476268684634191876882425540255440548330515589729016946330709113401572472468140847825974688238407016265325942804658095594065933311072997605260537811764968120946716266555236756570506584144432058434325201847333027413106485790474924878596268821166459817012749718116227897843131249494315546608326138263084133081428769248487444148702457736704000203975752745742283915925415938666079654642015871600939233350867429182310884565635111659637905730932759112031285498707352098441528288270034510936249967571220898375828076795534811377149712514388568843602977594416631143492037991051059797868021965268072030843080734230502905281825792879358292639281523137930185620663561217090916345622518402312718943966791609143554538980189410384136379882270470329529632617891652957668971209929882065073566611417096265217220224869581605356661136381929239417537090299949375005851595359509834863143644208927731719708157224727729764218546790944135235614419176364132493157464753157670745889980109678426175874821647608915943802374303776207300864984020909142769303582421856385574610596855838299570266801831162341330244499218786818178604474672459375283053730859236258917557274335317297768621711603782191535168496874991049226464947987414932252738678206706201136508475098605569240717697062737155699462340311218010902394861762766568494235733508013769480237906142955296181626617884496860546754594545080746771827015483656448978504657212864137413806956736216365527298031133626192528031062031516645206644893512529886244101507016666825476074380231156831938330323757196227993597290725561119124475155177893058430911989527315317207238906331426171679342986848459477520359160663110253521198976053783426770207410747730714215204079494447682727966357936844823820452613367011653434693362609694809543635210721293309963614107284775364229214434892529005702483592718908757985693010205268074763013744426133840298136436262545992053796775852338417450311708065144171561189741164682916818921310843555260222329288428667408443759485129755638308733367999180691829633177055715045714593480022372534823052268055641632537448080171734060307654636871189512729686109831153311219959239254815454466702030555650243797079349249073634604524354423260351210952763024702201043007950753082025238590231058343814891513424142880906291629722333720675241061822414717422614784083999042647871571265101846779323729111938209452697119103098264756642157932800293091018295334970046802256758027705609860133538091704262153388167952198707039268662040040848551102012112385955449916901031270536946241211819192469894613961032817864920388566749030564661031238783619981029615008514000173613838976324816611753640506159152890732547137431183639184352369655356142537275625603276992747133427040972913377441665256633221508993339104651945529093407918701720198788002066124130093252795367613410826475176858145286956081495911478524813345589457065744828362855188121437415473713218918891020188302146943996779315542765654709526085278712397105197036952427388130753249159535440305395371634727507450759048931656016385523676366733275174703298898220763009193750331826933619564481772895393289152519999074882791802693500077237562855648466106262741446091906240953620351742514485541880740594594918412078672977568319859277406891241102857004058507275938948256776153665220201810973059802626601131578060149116016849205851885037710990419085877671843448488647285382924883766724218537757182050708397549239785179246008962070026215047580674729206744354992040444553628108050495570769462467631235189410383191582921644240328523448040871243140473020574077537574174148462344047803807176600319728101462161995201643195133164524047710823828121436656811791777708459580434597827993738068732011350865060931308791333052937128296786663892315712408939374996420569700194725971233251212627405088583583160269346544273949336303084547241165946863298937104694892265363240348931915801181902266251180746590897967410184306805129783993745959514931309246655010035919150883285370618145176712719678989608897317321620557586156464082636236534894216904311079199852315861868085228273812308443537837182577799954742460742479332000048405429687064365557244645564776134730107931546311360786332952538178816452517717430073758020098822250419551059136129291487043223834534309294454981652031260195448849556951815877597021467055143151129092098893357716363560786416924338924782382752088875521115214188945478764084224163395250692704749768817136403847851816926852599847049827961409999051320062180304592664505169301848136086293298673770780467509155006744762767001860745134111960391438457951359824337507875124221552935203030043237984333021053237312008898689757286000919072304476584432943893814090736452303065938755689923142295047456502401248205895217944219220805797728189242069522413177729006698981668865120707375992054985303322267482718938949330588120758767041775561350022675214406243565017153752660118747914567947596631371598677348258778701400505227422675250760790599431777334565532880385117090923141240668694250533311462078304666346111828372892270417740919171282012371616991055544912518920077431094536171562307704442149565898946245895666950580008772823956605390265140172468616430837101587157858956012153100545547699445619214786101636470611114913754401409579090269186334176431545946297340851532545705760376516285443694893588234925840915030781669792504680387753105826717519896806671329670734373086998443639588698559662125618802829930804461885749789105560895784659356155084120987131902594042315578785757065327563826137781411133299361051973507187660110830511006061813649629938289646124689421438761808595863129246037382908375835901420498386412504317671315484870829070543092439860845806494893441770063582965193548653224980447492728566880846130777074968586337718381004626716024315216661946162200304346217833684417222650589942913880709581212557498847959679468057301460008263478263288808593781260880593015884370833854454480079780035809959904414160570686111538903895252353323216864239602564815650810762901303752629452108847905514541511926040835563277700361152614860116370200033427396726537104268832061847806466331727783246388891701027740675012722582836536765981941624964362637471101446479651557690724931982124376412425775850386559184923424584670974282472539901188189671348067747000716548080974754782753830767260219807185139941873750528406800532032515270184090152769247098582429377001616867824171993666546830357429757694439303159773111207366571773595532302970026587197504200420124647662233147059522314428158490415655587601861036857992846050969497746552506388284806761203272179226766915255042731117747970376627950989465696228980140334738628645531171899230610288550744060718936649575292797060077466956055827838586368878443676132886384067794540241715826907241343970058580740123001712250595390164549034886105805561583249032688836098962108103327113456778945687605785368618504410520825835367666947807217903763081880582691397277670118495794033372668789822970414176398837154825460136180100577851849104701036431195841156045314582223570661044120158173259898857940097891354159343146271603740323450774259915550661087194380866439478488379788179986476638246009542124990271029471747985921977638165653196345480089124015977094681512176395717098599571044033337477483980487492259193080742405266068874650344897010948997072730744877464284247109502615179303286647275104374272623641108504261758093470043489341161119522883010812400717795780952171610584964985749472121975775268667735881523023202597000617330473786686226914207212485826662625603686752903666741643706816390611543968280975605282753016630956731431082215058937085494309127714588638694350875027082957080281317507020571097137643435820406430639153899547903308337128502086412244919087550632438768367423438616608784968601314328708107489116176755972115316815333166996238818072909163978830932817828595965499457818008018070218075467588305523493698210548661273781984823481791143800356640831329980262363560016448710583179683887317300258411482581389535100654550209518012483120126230071718564504396096955586351033554485249799957657255011754295128525514124890489875753238718031749153905413223806041046900745397450198611304124895548726693701732262960420898051197639455126774834486309459684553811874593495703814137865639271492737846504995916808585695642109559811244923308773424453605745991228493902686907994118152285865090514965482715044595553499233555579400334582740772831961683258690888913876647705655836829946699114910298412888297034470926462839350476936033351761841393083509871086400258659958799055320339056633492529675981004596359879213256250082455140603993576331816180101801318100482494147446698271956157210446573418291060413457874260635086518509480882207274123695941301663137520098726568220970119004936570532401370693110326397321449355270006607949477654522149095284985052633326761504677545803944401690177135054056024006275887784444276155503863937060867885771066476924680126483809888922289629738297284862962985491294455446009825728651597034411707763520014723485920627837439014392178328927331911772044325859638291417476413963127777130583652933206764178479304421689751894028391183887219744757987310170257703695041457050871235449702171120550251129833289780340181347601101960803564693112583195638906726017968819071632428126447807818006257153704263561815399924092004178885307182279135225002316805395821968912447795608763244950056541164937045845379582645092480054505608372281735622753432193290808345526189332128728305901692409043088817935262538564486246403440816992106799260526696583551939695663628267679871991417463965238937580329865498959101640017103775541710724315032208218923879947043879428761623144844322425621261721808634014709866308035327348174284258410590032069022881199269517684377471468611538947372395244309467888403018213528210054214883686353792559989286182260382355287276120048302882943796798010109227775517687107119284351395341194150369329454785097817183151692156317725469077169065148716447008407873559532478146770767337914989676262066381428103438823220363149167140572769485243905256432615279846519770888633228434577083208818016327738889307039740004918968688168165024274263929317520533686023648998541859319896607418356250099837232590210010784784035016124010136457478921651148384504145837734372300734822371127046999419699503325488611475923053062230795486685964618916567391890314017966754234921535358503496433491771148345737211904497984359439603906315720217405291996391992102335970857489348834964457604506554013185532044968710034920827449584284612527794476994357383432487261358341915654053711398103212080578006801094405587916268134298982231053777095146726337132755401181019927271301008034172275756246891640853849237639953785698948864553450908847072819368539793096379075117869878231375370211083266827080792454830272604421729281351798561808666451602186338085260821133340318678348441367189489730866006310516065359578073170496759876002476746327192206951710256484684297617122082130331374119777654271415411597304815658098894267658870952572160466669752411182733258210375256378882770179156282095516268877759631309350913826779594308326956356035481234838792036694667824911483207723973958817178902550779959081836790213790234860404571941603404780465303094188059987172735616331289171326614495630925911475567831212570149860005627226465268653289640026049660496427646507104714992480508246928381626787086089262018696406338606053480903813690589305138933371914620776181900194655718841267069095952975058969053501732017415419498867758770505496158907812885831371171655763343026037796923062723944676429734959293842786491138451997569978039625430328652363713825695048613071019564951201177106263920407949296361366571715244726902360345601805996458551257005237191424224420870939112690986066106907746231674148484970535565108767280696209354029965680886015530909973631335406890973206074492655490125384641091714493895826083674722077409230885169807392145108598997663131501323776372424745370216859921206644600059261325792908496476219974938144869556667034470017103511387325085687023691284430741076953357093180498474778166155378029579241105466178989376781480623417727543754406232197747770754366244266688208801882007095227304179890807484825510550071264803025896586955598187081705601263549387226341929148597578155383369635278248283086645274337582337367376445021221517215036002181578393799155837633263044312233976526200896319478931153889448888087830710820656402343335890145606732639241774510612893937937447115223236126918984535867698766926247159237270427657289682024597713725916861639408922191985841770415061738423301061738135368815028674418560951456060827097343715839262298503003594515623390836190276353193006627252256847291430278108504996371235813552743638314675802859870611632541016820930348392708173162436956873923274054761603698237909576986321028373991555951784800973208966479095530860762318919245408101131472782737718925278230573030836534641268546110608209095976417644760279820024262070761591540527960944902446978488806778392943923761578275091991869275040865386379408255706612440144019675663753050965374617660512185665575104880845252891964044241319627452508435771593785499319334512722112046341758150656766443852923535752523391185367467339876138258008159728595690727075186089008000424684258732000420263821545591083235777321709086325875289577724242427116023128868825063560911115797269312140414678710631219947222403964960467787157360445341128328016585365879715126975930475344131449272335735978461257265766406303467987029230412824628788647176306203563276893073575596861394005443241684833251061681802740733241229150948674907118369344582607770109809044776204977034893607393389509696402321380308422393733925801739560959415121248883166959057261538341162847167244982000456770937511397459812656728421807847363946340809590933458941394643723656956616596889623420381501034146563663040460545944400781737928399044210226956397401501635069642036296812217831438199943382062625277801268710630549424215758440426798182914942273492098811649347393803227141187500803015259573852092420866277677982899205610644296315372327832352143777812907555825832428390585545216977367567358411926120213606159052484765192397573568219384412911250716026236812029835819447830544462311988391784141439556979595497684548350518907085245403952564678476205649835439375457512591321867247047712205523219157570975892950875897349472155122675567498691010842119075207941319643350692608987017953168608180920770320528670750582850495599172379701673587439335318951869597189035114769894241107068000119437895938975199210810938393093030159739774408858441198980980438046925711992505672465107691011008413989925879302329033836369318873964220440589952266371005187203240148442131821937691982733639266573763764393835330249168236444786791187358788782847377744311431315318316248708215839373288155501910131858380833788123087979264187248438243163481871515854200220674733467426773353836338983286466380873557172188835514870388968659528274221134368473450024204679057404058109426744250372930961073396621190433086952525237063693032350184721974876037967933388331532398900171222984086467511630694649021455833980718789259642363484313108806278485061578472201405581274554944377292727143374448420950006490653552363309819003088506403986396288523257001452329044053755946279018353945735023232166165517377434181575568821817468628817985917408157359516653251742862192463240484631843844975605468117881667715962735474994471717528266521536810447310214883183341701803699936173892258394215679296517034381210793506564648175172245615132578923445741791165519861009069245098777196258523276401662681622656442140576576414206249141027879609282865122474825845569429508800751683731870697234342047337839427271793269536818951443041071381835480028910193037117291909829838309721195806600109258908988243894376460431961443638205937811620859825936934149293095530197299143204339698756783743342294794312153472904721053326724650564822731257941551744484779023491799059897793330586877388416450632117341560504583580243134833638556702947468393779822204007718064978772459966884765297149110876042106922965251344153710498799981213780004714377848873375851092884453627408934274078009368656694927713754766612799785353376940377068373840505887297709317771482458302845048223034082922330888845925281590185573657043904877238284703561448746094727748919263668730444147602134012182054192212611476272120893908943327087478103006737662826621946150984737106344123243910885598377886204183071046322969970727326272302944081620280522053118269666105785156184467057262580597827072633031933968711278075626259222635798577840265282573840233652136945325270511142135528394832527247053173895752321229428772449112502545152675337503914902965879541858949263659523240203203983301369791524480747712288690270248864127935434606741563895657324558484174793768535268604476408153811970501239868697571272428316071153211092278009535832758289465933274146469740198712064864636484160464338993756285319513818134245717398609985858871125629268403692988264388310095997615111153463936756092364929081571717736713405178876435124215229939611492674184850599824020233032588785509762818041023592939517305655200143404561352064568298107945307894788174967205252953425921412445033873301932534532322418742620402179667604999071922093121069051949474268667888071300895724428776594241704767730325497476030862188619625377201547145338427018686310368849101622091636793005302527055235343482965077803769492558917776778452384874847096546618516551520242186196780116619840295623380266740539094366617453403944444460248324322300152443717148449329688606038234167803462454609854056840706557275446413873738761219082721455329827646258049919950518388136106274146681621330697948180632387047434251923541007181234123856573143157544308740463552662655250622999594499001995839593683235644145353029444087167595948859748795277710928091996152558104991119166996914742930377017429242607854371521865533264735013374532799367288475453403929886055365946588816850944395758947039357844323286840038514359255811591593646588544396348105435357403083511088094855448090551647908795577113259248848946206779669921962281926636421591899669139518114226340232899556784505368982124097380704397130695299381196603179873244455547469394037277032714060999505435255683877707278500690604503396045771278209317128869180789524927962082748151683303793444511289809194128419627921508039896174771683413340712947110438154958779619389294706800362710867053164492403887623340668826203144479968806571977869388547810786566139084629349652032016588342271344897691493139512833533767471387998888748907738128616633046099514322856250286395948467032376146614639674498498275137228613494686868949237164287614954952454838171781710356496631468273337305040882694552010824757726239848393654856124998485055023828669961105317861956504552114865601093222500024425627912792752212334585984147324277783351394218381886022536544724362013244558233929243616942844441287651427552082428993116414278357343849804964446711175486162651980363146187479561192559857553293870299664296768608373655884684330582069626178110410518735592143781548051156759380705045762336127636056260309174707724339857754405472623423587260005024109475152540978948925782614696647567896854730447092292307820236432849538951892872983337279843651749256080986337308143776637764827357522633265129696280156445395220868466699813935412796695473220635304709475859039751216613768908641401614235034454532992306562070679556329821738822103736579085982442707398456103989290432800242283130096586246741112070892648423173313562342336005712954602919011932571317599359988374090094494701881727202960192147216932227663541936828900973027903781529471580178768569298858540170223209905266256968766051943515401650383760234596441417551209508667823391228938134541479849069024392633385464865110179126839364341611804234698456608391055456409234360456106411218007601146228300624211644103450553581257008615688907848855708742191104120238382691794954910383369839953266025840278477258402616138550711766878161222151381920420757692677994774891745037067502345232636067410329953020351935296634635024164869581916933931583639891986066510887738112729446573725082184225129027161467687149360881514502178914264745408590477393487615142434181834879792750441427098733796398757877001520268947783858575647053862308171003333308752067988533685609934410360505458830845047605218636468816972550533091717574844357352438259712664282160729142077705608522943985926709197555753939755430024193087008846211083104796291220826531429583390104417997762077301910027096907502770095998294622445840170152130881969079328389958597644369886873184671522803829485607405212575883248522220351077046744971711325309213689157641549417374404950381515259241467607799873905107538512658064248364391603377550077190832363410326602141722392871091120929994429981021031844925534726744308129926228733903347828472185344743479587782657684750748521017475933441917315481039258122480902082525378941971747247953024157421359271342092967197909512876917578500643651990596156791391040510467488480127434041387117811815470287715168437128648079007409955184234129951291436000760323481685544348528537202419840513581393859099931588261163418187228438267542848857849440680646057754198853375940106007999789102188696052737374356428507828144260354251212047155519212205395638008913479991537225732491199762231208971149890805597009298700077578400829465034721040065115856530547640939571088000444132979038259160127788792580282994762734036449016498981294853377949256627743344400295508963596965715259364907026671289838653989937532066028490788124362859829257166480565494280877491129173779668960063655050660394569289992606923508171253739680616358068144695608570682102467697240410637915465932965247466247026777454681648048578987169758304279595482441972364059058610348999724793369474473129603540751719328661348366716362531734912755670988092311840081247382314746093175768180333999273454939538844378935721545098410800947392102829924199995125519416550532644108720059328004442977189427311677592267528074077992698970898930003078856388703419189426655237413328646837497100189440093510403316576687161287457436241465741675208952209286609814823107130614780666889422804632081516967195154508416084406383916345430732450336022371145807736950563286204917221686834717924087206176976575852551366478049018053970265471881640853097130689698740935233762740334798934270705475783923948297845882640449218651468415049784061600952506809690618188380317258387096649307886701597868118300930181250190299620806760160871100417806355080889649366615440320545119472962365280677244771323323287405061325634080752984946891089278836069711546460045236820097979395501437913597492613330515666014218074703469120036215513067028587406997341512094894969281458592375732292749855007579608913335367544375117778129087675431111414066159639275792282697689792529587362321405507310218615627470534357064538858927928644151011795982019594216062959973697142974840072371763475050737776611622103163531096920563294664458833085618363625518934932237037463195019781338401181695201686929369131813315557073766546274854139599180032121539058855392350503453593888447977052979098994303492360273563418726926049286635536022271142079880755599917591420169479847312660352625533670131024208678330961096458606465112073530923753305376953551439587600444832904072792367253140647005195427931515681567292760547443342115623891119015242351716686248172452340193416861489844494146469374691335239929227731498925388816996129555018724351591694600448059759921488911108313359273042959161822514191533648640299171005034861428397485717574743290043912995497742367091064587024016178082086506237380104317113442553118986944849970486623562729902672195123885874792012239622093382240450727028741235394000893323143573140949788751111483600174169845666284469842007679780111978155127853520877864060814858797553280112024110947584000814565246113765729092317894178143078449420873793828524711936413679244463715548941988912480347148766057447857738652197219866831551298204725333520313382659350604086828033826264543193642147565947663728482824034868489062683451557295674688147231508246583858338972021053550278853902228395337162698166490234111302507647524182631605722251065304058464805386354239888275146306153811533047768095613922144694840032685182216617389968649630339170627099277701737311774658072842442878002097835051466389712219594004708497893035294534517941870950120417434995333727786862225559787303788462152543461383516080452797599219811811380612876054801884715325867820421794113657843534633452332656866268642904257968952997925934351867210427009286697628844464027680562529376215418981673958268924254223495678324160634326165101053449593282183914067965427191231425518999911610022960695311820126334723140448674137960114641350260172753068787017581093874168873835036276553811188343474525899170965749678382595852453144357222831218784037803387397138222981182999816467149190680416377599278399005909271799463965502229619054314084966515752886732505659839115518655273979994044144321281557641446135443092200575596970433292678852515579194663231136348051401164180878691354388343866404342771835415726570472687253216703966142975513114983376377132459493192028995141770152821355952384487639749016558837265823471685727124175272922333427330018818396195988405122497198356349219958196595357302446884837868026829300564541439594303600249043359619918854155538491342780761402974406139911503192287917602643090536419572104777825019370020066195517414449509930555345088539029662361783565102728091383944915795524961871029675275940998391855059065388183474734942715963086841631912376871422694472583627458454042498413776566546396844991114755718905261195679690140041389673605736583341944379676244804082233405632867864484219351889493701207143315258749323917551937004701415079531888750181443809153837827767028728965840541432375295625880979172391364817894492331379281146552840024439822379979928287398201456123418099007319643046551112698721797089784382063090900644412549690627897357244955627511790852514314875254391490361419066683205635837191670539684078339806425160327966299027765837145036648427304342984101075531162154470605017946681926636378135699501443218386093882315453522503114709267046821424594877371382374934363187104780764338518739862905677034336471676162232534503663431919726879988971770893638994031760710067452462154453103423732329831253820629686457006040656047810522703623398941253926251304931909542784312903380881309707672513943705989961634191786234325604282991586587879290345355705249120612990990605568265531606506234753057107722983742240273359154790309529481931300637371618452698675051095298281544034835503397473760366739250956396572572531070354833823417207155148519234670587678846488510968392903010830614319519784927743044343627292735998455667061793084016994206832645067018945344094213320292684428368541669300325472185760597378626440749523999996544062334677950467105821724979399696195446266964635618650477617864389239916554580150667013432474655380218670068435362777621708967016516472064626443698566644754392578998642860246880677504273401603876123437757268357645862977318839503958191646070055197046077703848569877279589525692878196894418097484336315509893421993941829750326200418653477469320115319764841788456171527229261016244972032095005314952021379548580346409449772543764809919471049395101327010256827274561967909977050425343553668119382966768423709688826631608630691220447287228622582807905032177103098436161671842238391454964868794410137910890505284099201013706873361719791947967815393877586155025868687935485997645351340631950398917108460074676851780929330168017354985383370307085740944615874286768087270085090180656509796741914575023485292805201199653561899979092145546757991905827333257790463160447964128365485602637102008870783214845333591218515369453932256875707573172398447954908766509343411168061648449789498159795987421757811990710205809847326264126538200572560078426782497547867180675162890557791976642057914784131753788675058919821408275592707268711285669285729829769245584666323745906214578435466345683461393488349288633492663641841050773660829771456279558189848904945772645453805970407980829322657491660931116447271420132808212197912888276587514854988721675242030147288008599961927945173544711124381528558626062769570460747022712618972371972412749216353298995760311296558294502936071964355597536061539255451936508449414110766981369357329602460490731531030495419460753777082620855495901338974505374057413746077777497488834561972185772729172029972933944508517029405848150152603863973579239357213671061561205875284230746096900293566180820388451040368970434873759423322829723157544954691104727870836321168691474712784218143915498938433301304348196288996242685965136784882466645873196094024364239905342282855625903913653712307622268762837997486610918203468118258971707194958431552728351698868205576509296312304034030592270912692563109626441048170977781535284460771095549854387783747168764699818631437415300071877274877198843322647355743245138828460700314926252686113271405814184821768877767791236788748452290956665838034952194730637227903987289829272524060930438474354779550154540781085298690958142196799480221383041053643686378635205361165703541419422345853052167472218767327707858142923133881664364902074811250020469866659813579397939906246328551219549961154351264142339698602195929547280091827206770733375737597924657558954456778167870594794568556787862899751059067088529796411484922378662178009619103911658477651715930670153561272227843331406520754509621372118784166188427833802392461034708185745819955807672776006205827881506880475965105604241489537754203680584972530531291014106770198880394268801557465153178418873607523983037230717674687667535869644083915346744901716361928905091089517595577535542681250131147207602246543992670404254275651602489303846081260159549605334058693242646355295406003439608420474897788436198116460595850561213239771700986281651494012563584821168239168315956418275674515286781070316221408571701611971764721472410635897377569705672311671571238888693263726836728781372468572600472114698112184476877489724049205402700718936970263155872724464508615111045781794442938446647375889581067711202648927036485868508815087956376279137450591693775453199956757104783897967581567296482023102800137677835053169363790375438172442144831108432006775270279765621634088047235807526073953080279757381582476008339647857899605226448497188154866401200987084972717376353356161667250377313582610312356948369688094115194584894218342089789090063197943393622725058481322569599231193007134863195141983518364645467781657555596663821337584931510377833950801904689580633842384998212051840576408181872572851804560467247503972740049381317622886766546833796026485744042667300797672052635530402220410370408876766675180423902090003259490125943496860395890829934349347499616208723019882479085366489152924859271033499401733498835072837382912482563215890074582108818805750016758491893347405951246545367323625888835542497568222296923753057490736180893568038273502691385074656764495603869262583099557121345362359748303399552124464042677695542849857788652360556796850549502104563915139911477110196780587525230141286899087457353118037356524313238060609763745703572017108396032765195167125730342722045187556033499359743608858568746137042788561099359984409655195089869199429373910857208777710247080205393516582162438966192843341280442861169752970031260852376527626751944936121950861154495154115202482006575668639172864611583631635014006897123101710618020668585242425459284440086188911090223444123775780340932220592118877491512932108697484510139689616508036339530481763576832528305993691982403523109868539477650700329419527347172928915151816587162147556760413282145771911930920897225432480316241842205545949473929599050170524604655319060395838074626753686311883436928379598573814765842050568721599467577546695869606301259202708044166319364091052020941023209278348850079620891534346141895026983251505729987399030867994163848733591519922324376046198611708399224824257114506972964059989332943691319460462053341702461744771066308677790323562803734890308455240433778391750201413547306215861798138709866599787614083089681517434505123480801802416886892739523529558671860513023642126194781167733642182070233553170453719128978449789014331015475612841924282062083686992196953067778341926624278433673365002029751818219029497644833152516866656560699168545526020503393012828993857918144759387513558376467900632598191597090948281600269635582725977577454986180152233399753533305601093568224936081878909750819814277006844216149425043706297323772280570840232285084415337822122767536601649891046695227518087488191551006709018776103064314715093771027620982405851751802973872155168912219857732632465533767932464141772877596977790777544425297732041283585619037205613589551112830186946021989324256544817865159568508483565364837098923586385323802235975669538012847954753532117345629987646956419446495338571611223997173484034384661163693508049440328106574776815510058577303821943966001229047089230952521022260151695929657032872535171976966462213300986607538054747938580020456137240202300951059789061608234904862520652631833226506235163727262807746548997973610042054485186111343477819626337019057061722886106250488980220321700453344354892768466336289599036312372289354930160367924147111714464590758194083826552337218637857695525667898475648590503619348781068085733010446319618937437199330487952289606595052856001163001183430342530447187361881428677623695667564969108739308789688727443229101811481122937205734818830745522955528798922017772482402341667329032464001397878313183848369318945126352376271825584418582565980169818319900551452270924197194482572579675312301812636013590440992279392597764533774518109471770500149164146388346292359815375420045961449186884857226891798360994583469230934507981981349599440329103776070906012301413430211194297953407609183602025648321448307073143964108204260226417509284657839616529787274795970699380561111179202722414344137872578955901291972727087658265396865809030729166093782054889427558721026898245114731575888117102647271904437518972685500304909481068530677495832555390914966007332000040454835169448406761184337633802353642334805709190792328473635474225590941686766223163673255018644344728047677690327747244786984206433888165806697902621149657834281640563777559025752830778717769363285501403183793680642483135977147961371002489462625297584965874072182366006626228315232223004434802353805912933878394147793345101826534227605573438001568007373849663316064703845138080235057067995932060916045920784153099609725002067186782313702483233245919492130633559262758595947766909047479515294641261590620613080589283959067108397804757973848761982344124498554775070965361935648557384572490232674760701649929771327643668096305840494913324316867581132025106710080920022314151369476751968205395873638708442437914247254112284044032457466195120079308059818126074459390853037139378633649646204167643278556469464295698493207285324867891850640115142956186064260125823725199744587032786483094533906797374257509169930365468921826897842209097514685455238531292528756155514267046724995090938148163899116752235831667868558095514056291178690854660688065363085924760598421232010968952275042202762362757166273790618056000242174667038751799153056297674646344135178962710614040141323415312868332429217890095607589125000722651822096383296325059258772991296549671619505926830955751591077222445220924283683174979562651563849217223638916518220978312129274744234973427755912540920223655696211828512514820976487575877948351068048997266860384650009456722638609097210893151102811755520557394369648996803538379436031549577252877761261318382541078182728605321636022471209301892191405814697284381316097022531226851268985646063454901515438260814781261179557496614039344543353734794159610140920397018991328755157956517009318655719875780205625274544479651638811002780689195744008940048138109996802006188507836327972861417150768884629308435458226701467256852984012712063696723088998520715839421860835949614865524575816211084147601731318623952535138196203939367518911919495783896940965931741395255721281556004281499214629334743995042998578481312877597692450846520633355844798154089970025772893192815938616976611837684835684563231337029917409683319519871179660734976130204745101051516280636484142684750278251245410586457028642188980402218574601925928494543734260951056926413542711575188790593343527721795407631232351997032758415560946457602464797619164996040323606589430108665541350437106052432157013493232628525525404016799981177248176333110273478562704805302399616288483497056143775032031361218188903622521998925636758711312945636581014215174623414242950449672027560136971586979460953144307642467398516697996120457860148024591924726613844866455873359894386106702994670058008381601238418872389494713322200994869269586341777605637907929954500862215011390170975847778555528459186343084758429719239879806123932343182246029198554873697692988342887524122909502861387230564559039480486913843310349348666478666697857894533862166494191531695923375192655606738568568932021603334839553301383547820906614418402477364487881144410104516453125340483850739242009493545094686899953210751831522684729587314918837435097054257669319841455799780628250399303813385821043331955546105447945881543737921295302756035450866002948335054662979710649648565956110106818678255416230613107784482573627943049518130492671489117992416797710231443492194945092798957681663878015918102310779577666818807964347109705601728978887749523790458209609440560015223748663820903742904396636776639636134556053945324991164851093074430560441397483234260457115465520987962394634248481478117109594873019289417923994967303118171951356603599264093318017350056618764865952970163450040160656771860577395877267480313907098426958461564850268349023659693646855621005739717960040609762655110053734112214369496073203235854137787841284011893719339970925210642249895059203936627232356013715856489649452408125971984250815787454316062005109235091420053711789099776708561941884618441846434739564335765429320105915836295508002972289458706322752218567388235994259770088727493310822604926695444589983537414957046530166264646137775317184040316553590770736215907257051070719907510262046932498694020998144659554755634895692387522447020114212038463882612212555642402865362414224992885958807099893161728111677615909794392041703480015925297447049501878093227446529451261142326980335379597550897199458572340888038795325956600238568757419874206038185487259692600011274360540763624265748717120423518829066674488960341167716535655719176664365153890617175935535564782256489094867467680239799474632489870455299939488195753876273426053730225452702733435859154326730515593719070970740027783311595193231209765318339058502223674663189001024527840458380035458533141985503659466923073514421230913153916586480862576770100556675293728579707157395029852812490677900393961397059095961845821594156023346580881212302775194256736728599988318181503898352007712301477543869161945058131778366946613750914709528958989651930439245019970848079024057730600512240488005312514891990389886820999096513054059617387998378939310584555882278652503162933769164253767921010046550740460560853678314151534398803456718153222127631859854206583366553077066001620894138263993423480334531925812968044176609594513368786237760688391489472067836958776020217111560837436096320511866555781800611577000236436327693323873769742952551937156033939190701047113337806849216556087694867415273622156154761966522303336666432529589237512898144364828828801137352672919821837468709706872472184177973077969918706621139123720516006774270516310227823128339697777558110620802280090218968056528168883046825508969246900042879530529093777186806355453017188678695720493071560289262623730481081199015671270951680611793227469026377817883554248301859876779255921725138113440877717875123802681865043908428607849077862089330247685690781794029385658941550357022712656204264773935648495556397684668493115677085292642328013539597731312165655987852133654926987798319938988666840805222330791577643816409531537400494312044067147176978006918227300941805779422746089136932282378279637719162442401143022174731430220590950456745742817157483254324641160405058181690541821767144840361799584743322183533774405694227812080267640743184719693766243758671619677245349629221552049386462524277953923001152000425629624226987938899698836408750599172099965691727222215960399708847630737803316929894917832414599515066294975891023095864438255714064870482576192429121935207622990901219012064146929603654856048319550695191622466212076540312628768810963956915922467053867653476070138391443398392165950871785687002073621726449005459828789319739844757163102391021488464797808886118061157769774400803206453327071014370040513173098417225385664347150861066838029121011829797349948841637011657489513582135178859329400988977734730478630613317830395597784135032302959748709835652210450119514035825740813727079390823814774567643653378737629073353671524708708965438850242290819006535159010666506808444488283654732654110845095416633298418930461734524049335190498708241507821881619074215776031303953561146912363001292056514213393785178083769210541152335704805835032613311209615775713687696008434541567240168265521654563103015477007041574094064368748576088347573426404627524899610844171436171577676458217639560964373896294871428980906536863198233507013501821674015623238203977100760805110892276880794086972947234052067677231545402336793989242974902322633443643279946604823972083862234894287140351220060697755378244906396784278025482283025147556934855694099818663880078781263914520832080614570300754379415993441266153891523033139760137198860258906906426902115368496946965712693994679416083950751736577271774087154872793947430654287159833549678583301081096200976191977405712098822556458778684621976476196720724579911319045539296247075950686454460081426829630289591382230715428126686095681559377892288724743211683375748613215338746938757095959243369842446720776192422703116084393736271962371259219705135653145541452214372910771199159410602472185491044775458084116647346184708560264623465337542628105233542661785864357239780693641544168739293738330711910021624103066701978231097189524657436544534879886701230516007608548187170915872167884121409093409247793478564426720666730710608807971028107419853728656461664003004225041611523034182717597954222651047108824245215913799034898412077911359741747806078462822798393348479559627804627277785747365609436466336408086069182071962101850481496853818230805664174734500838485106649224268154459392218618001705420827408617439345981493842088873541180333451255552112236572128893322927646880527407798410132957072345590638285136307167434964201133645645342918013551009293858377734440243833715742979917125902095746825585395584746112928620044868632407543098636369019166228636202606624441433302036782083556498493624669843911129211909906454350010308507201642924375711610253090472358220375861183313688689930828779252134974142541375693770957883239811494628658754597213609634377294643076066653688592977752885271370011000486604114506056871528702688987325660103108148891846443535787169523688288852933711400692795443254396956705896628317969751296225574184022490816854903502108453422265217890520404225532447880986964771231784315094671567416790283418365803810187859554193701976628019887763478006405701095726405937566641238713737558732669325798442491215571553963836939760705828586088442261102538912835150500998239253336336587093893065319309931702681594014310891775382173764961813920102013305094957235828564550597811459433724867469754285121092165146831569181553589789407862509079776227578777110787335785075304075654484547930592983791143617080177647964955836673436201204222920795418795646948707393037619929486837904616253155584706935310272221447991501961316376954400712818618641573450377735087615644818039849534309991410132364063800774894141291745526507662793090792918037800694276981754735666618144366134824816793605749942207314686555998350275103856464602028344789826077340645010003331744840976733714644792235912046304276093461022145146392578852041536922225273841662426910329346353916226661797443097682519243797950126737197585494639576229461787687708102433518403492957026851995892615164018798527397038580050245176944030799946741416136316830534543986215547543666656613838959854375523397859534090835306829900283239899053075464836103182172572206468346946792864217101998771334725965513076801222458621878854744397080727289411722991088129113566881626047760324345174686773411090469034062116161604010669546380013494995578138210487672583485253835959901420850055763143716024655921171562763683819979122897870785841598576792414789127174144224069388406601312586427461303974767110168914890088748118201565738207732681213155561030354848120524118184864719285878144661820777672947997990539764503948660266161322908091135057822912678386666498360787066407493231466268072247411299196903666724064942606907724982006128382438063612682652616877281916391990850982183682474207258357966694295026251554430636066230827196682144581606611522800780809614733759279461210358255368352761933466100346802277485544136938715872981658829852970968976586881012580792413604903290562218876523493674088205884259397979246351781017166898417492688341160714800392913322110069642085575657585125873022400798581075279300692100624602904840586937752209763537562390518551550430458864679951658686298864907785641310967277008835700606376507663984924463683938025240218713920139236009833612003822861282736120007470916931839157212843949792409488239260643640693352811445176871974638645961810756453603507365117245041326289880164607871826232275220867377820736432658356933048114095085429634605086085279398486957232848522761920880090623881435601631191249803101485661129993911642533091291186896572440956552686175681954439874348641349834239546333222166477483677589718097718546802380371841771268566734518259757313615996120305742492770344667993269343605911670403848257213550511154338424232003045400453293907088526243981635575415487349059913590118673562303615888872489299243213523374835673197480108297792946426179271795559316635382136222506386031219004923490735277518701754146096240750889215429388346045862144177352279648317550100022729337106401527814635566381647141037737885147740748601444980155699489897154643704410165303926795680127266877095111315778408059115801541170167591601737614257212368149441774146615026575459819019071516923336368259724644879834382524499344181195179639869708695741094970030180812121194445240553518142799756206680558909090943236415068569484305891122357708249485548103247688299097188759707929292304894411143617843325873412045567493626918148939663152331633956727502400429200789262890370474134986334258200684838715921052185262919835065707160432720371037465679257614848256574985068407794880949174679812908074632695375574451630398391627112305063111483604504434901825845460660159105614417303153687219021563395794457166280065443536706257223912515642747421428409333235126932970980471176995082429950641005412977652434854413301092498177917688361258277286477197136395938428608446442043064659905663614658234902219182943089629987782464532578151668329296042413214139237362439201280898065351703538282825320138240685533548239478058443938872463987365201421807236800275463185005138095923682776111399696263485750869808519136690364932124674002438909873793823809310892353275875625857213386418524379390797931271417416430865728320421908260766532882920268787460219897827089432921726615134796662505169478511745882195392030846783536718721896530291116194014712217305351407978477906368410331294770554200618104454060354864004554057513544606037794628756000100380761469853468745750083495884095974994510139308734728462998290340218696449565094266289808141631807192254220906571524764889357113604464454614879602811530442420256955279233577352068220061895942252913963941568360300134299527440973310661330684880514384717034177697656543941978357715833952198042421430466193424707904636656407376470753411286013861111804943353534980542066946671024756746071162297923490535183612268765342921203598281505999917801399416500029504762575778933222299996100945263483054309696602328468704900430105535080800232534409032243011949894927269070330024554387769950874018771213996860767173673470968876411057144703074613577294625124887780762219574806381236426527303407276510258929089085366551927193884272441684460797139747810789167244655081615353822252325886950645440633530507586419160789831254004899214515191133100946515606228393508366785767290784473563290094044490711365047300512142527538506452651245718881491290400322267385995705199275273821397692848858449995573886294142009852462837298075603756538406960922588811382095536060367607245717593909310969486751101166451440201239008530466774019365404274799439090950385370924442811823559153004469559527921323083714725636894446426739384223273328114568215179861028732091521307034639273133152134146368342935416868715502032590340464164434005093729374580198846111543654236404976835262340027614876146070219391164813788754200582106381823732319945436849939828814133959595233792446781150347203146136178430239333475029718123032868335290490774627544544333304392515183126170005124562384002876907271299161805286952734529320192768436732339127771984831911670693677056900173106098573284439414143662502918124585506672625295932760952525387505334093804091125261890191805216958702708850894837643203563020874843336068721527524456507202728643799319162822336754141381030037424183881557218419642004395435483075994031020180078426267327866206178601905734443883838855808048433546668486935131292711962169344252444428777267093774155776855404489732862438302352904594628849904915319513316049953464183891429376103755518178772279745956485262278984407329253910938054351773747824078630341312024886444735287007266457009509477397331916329128532322808878416636696816111896347044862830638013088774154599883566701317420017332564882946020642538157961524107842595469907744180858347887222451502201062205572835448074762148894512140639131954742405116842016348483573017862351242407388793328092696689110449927489971259963320710222481815210045184621104267785079355686588028630965943869652462786153406327981407633234959872504905660601200243022632089148935299012465000881767401970639109668584044288136424876730645894558205302243841159000527864719959881599437502142068641871843215252403793737255256074301249842998375482581643889980403922334485356598509032940096730938845545913395705507590010350013893319889873958443078440365120577363326428072249740488251734771773152601861036120779834349482374063903401881415546735243150040630142208468456444289658550781827227242057708226229672613551839236333205078584410471964144295209178706621297142935320621304986904844996265607575395389335879998461670707843197256255823088892974728999813265787965915770898300017465583430163067977389521329337525267057140587824648227936933668926173999617346231417402332572663854133201665883229432044075891689480045431397456304219058230896842336661998460865907366562724601061355699701069742384590875535633718496360820956606823375884686748962412268049079543118035686318212734564651511757052614608071427378583780583316847441304553248574656686002206383998630946747233508647308540161991611286323115396641646730497849545872524156449307099045031328715436642932762987719483407619321213017661093528892943632329141273681830807599627228024620150278456588777613158028356762890655754245609588505525117376041489673121864855115145745350323970513472728128741982197600775297031323051998885680850687696700643489098186614450421244284316186164599102660706657829302526459543203604549126627751950996652709750765302064132926894593146863510962928575158974293900756927206146691047989872331513244575310411482302359809881390198402817149508847557162228378168686103663537106919452417443242370439121931201155459189610570095935323015268021973042533219294677206564333594659157805672212384748182727029580076114949602585525819032484462517308932553725745773313213022697924990825357755758693976731021145446585798376932633313632376033951776080647878142781090748590535119540898901703539521230812091416455973747764885682080538504892347318278343645520589919120443330768418987165353192673672023719354591388518347310581330577210591472460138807777314497125697547945254357842502721739743303088805426478279298019843281711658505360917122912477603702248542481992036403229728111895327386081049298160549320898590172980517105396759729802076915591207083204430345106296683355994194597159407133413320848175844851855953760410930178900709288991430368283631368358067953735839595145901519227425557036080997624665858763605937540554347020326999489363794169691167854928189435075920864149775884539287315006438322585993529473088812348265453058824332162192965061665474753052281865376251241975446929341924269170687886442767829280392449657540451239587674946764655862935879062404319941051755520983092139824148657009683783616330937551493026023911230918353490329637415053729825636119767853711473780062228432552292179004527512897538950616859952679585221811712880356295445443064731402308927934517899126278202146006620877956661184776854544459049421543265440147082717183845548309306659765648145038524175862385912352953220561311843179397381254166590534920111545430977475517856448239091590125156897980640802566723270138973515677359248909123347380158534688462425108349157288806271991956965428114837547803071120229983314945464414722654285224294064181134136998376655759136585418331054480955771590588513225826473192164964492270183784325136153069414731804176571173726049086524880910094018466837686023062740886674483025896674828822899813672164963231847771212672328921213551792789454508258031374830566952235407124575880532818611636130560503111932189896048147498494488789792170471878720104090635025476194022580032077302083181626036650999552095752388848725279558259674371496331017523941731120216179713101727304256871681326979381308858251487485672095247550084714726747062283872331160849829942443886217445034778979371962833116186169942955155645670373213940966602703276084761668672663471677428309741574766337117147152476820743164128946543166580146270561643547120988655793935669655179619124031250195528920646247175018257725496280122106031602085058671985108432859208205092093950915599240562682516411573401046980850116206792394059082420037749069347905221743667911889202900374595660183217673296366842978233740363404808931208549547073870336944728228716111936476311397312022791777628246447188324759346527351958796367986320066209026983729743759678338214292480657086792182379982371750731634128077898395998908926743143249954079224084830886479670316798324275215171106340045809175468515607555503233773209791363891001627238147132683225203666179269923743647650872948928490267796860100230425084126963039010489515928553501050248672008861374714864389830405886809301392960626150051323383299315999896409175512008470869523962179077085115071096868430393800771026739638057284249279982943661749870409842959960183977920983698063384625311375431412678561158270265508780589094448818550944991134636159990510943454880532535557228517296821201530812438986023676335916736440320925941493422128586510053374017154000277433146511190881294763347809805654501694221280466686548677181764274249145367416835609634629584331957515684615756584383676608924583953697290258813716602494474729458815639286828083199966425976764025552279274127461605296601351906170566545844166134882649965092592735247759601826577635469144863384312827276002192550430724243496710671252499017476413384241485715824088432114647592349836151344807210370045266278098509875652937326715828755399803345468600069418924313154361721148115054391635224054562510750684901156521876254403927642406901102044582318086749778444268396433963660962944365083095766998061813911257975222850485645358218066195887081978909688499533760868925086370632998302593616815160652361961025523377949818317465461511543555412731963615899428966961552889990568050194242231079876480162662456633887667710990577918117485764975728464713616996500486508719747634257193228837014920510206533544505303345026161757721994907275907824701780942874781597319230949116482742873047442567674398978344234567712148720648618353736226565982180229831840838980942876158257052812213739443170565569678626078308237447642995015131813955044705926002944069541492585758442075819512818349189418328936835604131534636187468725346579552267537975970283240796307671388567244739737409628985682045895654487729050870929650956977421570861816907997602430510866884872335086840415568438102780423079001840776563685268341930974710610544684142177430717584769429389201991689796733429184204618427451582706035899353506607175018988792292781423434801201771302419168900447828782688256185853486539767869217976558092866341672126188202039266990448440007482027120715860128054692004709235274992153113944669213946159605405390449416527221322208843790801415394149730182270815164530997314223990494895261158532305557724830043518654527066434952473610513038199435003556081819746338439946595155889354498218753825799140885514148752531209143568237217150641313872965636124958474089471445456430525423411617764973499032090064534847841375076711932753060808201788638770749087552222712024431125164118543944586399381911660923249433327870130025399654292830060409437480588354275403627856676213488602134560323493712031415677506106022464591657772289830800891809820318008471425050702777281875249415530311444243915496096121754900044828557995186591020556695177975098878908998660452253934003195048390696379937345876342670361794211177410165757626246338232709706235583899142104543073252478502904247004441717156043560033206622047834987462888085044408993134977107582412766107775796907143716497707027588084214990328458851270884976865429712235079474607440734761363449705209496770285450876420700848976050350262643903643133713415690678605751247645577755572206517573216494042510416113530150760444592616288488332444882743868394480839303971336540784565508252752711770197946819643903296116992562342669377543020041681386857387477343849057266498981458358248114676910091162600976191748133192920671822078039330493695264451579136533073283457920759937180020341319147061330303760058150219625904112152481026704279904214050202419764201010120952190666699816126328461880393358737985210159651593477941858029627070815552548168928401783573211170708623916338916279510893573041313354020496879673652204445142101796714750068546607895106159553376491094020674356762445912645964862417856460089043938347509092520499074794295772181143321164173435309804560863215362599405387811265075377465845755716545395509767052360198120462622519551420342349495399476827108276876854616572102085806347298358263717707744369550153876589828749826121176659074734659893803000634876247417813772175974434254507536178611845869503134308582498587183899676730589182954712660047819942345302498476151496639415929144450188122189639349702249150346260447513182177146132268208610464402986993710253010001450328287725782518103194692034745108038527472030063843240868355521279790787599857744178955836934209159950786614325583250567776592330701744151006548086787645656633598562515208549003089217228377701265889168933876154134719497007135312345523424789719347755053706469289868142562891908620276761683580061898461103560820642837776696286490557689427313320630066470239907833736899767129159689192631726046179226938982932070346759192528663781345861996602171423139914061120360857213066682167608431759839307071979301634369748261904242987092666122344746957537090374896272633707701014409071842341783747307893396913810805950169562631833392106379805580293926606707341680537348691384609243028292869118677826010053411234677258675109875889064726047537565259857919047823656156670465264536249221696163897896289182578040060692497449713902479483109191263199274871634515787690874108626357692627051349077554636166175638777643320187006681566239055185989894339899168605636080834699821270686949893673999867850871602335052417175778810084030249383133476037505644459911284172491090630321726465926239211037325338115623195318053420728851168123174517145347987754646007153111555819645447003437565892248706579626011057651588069504660222403499100234651496463792967376922397799493552285351475708027469567292921283277507449823513152569305988970274084742469791224928541033475351603860414565963384878908974252639334032280216071279946948800223884150563510953787300029944010055903372208883755218848897260272778014516303884379893620585336476574551362105443956079252231023308088873927273472846193694920361018857813183422964844996628471024870650674425449991431986215810037755811353946092455373305371744668237023549147545783918662469168851126863443676756585029996738217760222652902354450151422761513961233053543615260546510855713052377744798957010927288201665531909819622717086854121517285900902453563370298009947549639667777902096560860119527221148015613948183777507538307865786262628598475391543546568183947535702094365183922303895282465778602177413416360980254095072691089155819950306860466368843318979630467616977655423221017717923574821050448382287550076571891937510440675544615273501550947724155378890737089570074147685578819965297504338317233685750841892618284632120166823528750870271255948071616883148760987270272013282171341012223482230275504844226556836526296360888104557502092756593360513630620912261221080907448392626476771048159695169994769605300889400565558469851384654845720873991140323194553424297357581906135763410913326643703996273254342727390916749261071009248274870486995690901361753796569102490127134939857871397645033811758991031214220708247779195254975107848552870207174622084824056856176831638252687418739454525830437032841925431039244122481450780277139724953852538057632007970916723924464750616375174438625017380291930876160464618900147884609274093455407939812578936602420995026856182524749925903051654969540376934189616783270340433381202165897302260267361186133524779232019284537291956664348909510162379019905679117537822827710376292790018982186777332279263415226278643189502977294246248401488431584445408944210119236140087059928763616173026297549478431987667805769013139940310960036006657062774382388362609852685578272404119918167748446429002856075731912150886516025046076576281880355112435194392269379316404600728097409963099751342115135096637432542220261623938042366549563087600782667851249147186532993992919808612373322687742467158791718502836495714891123303679719342269870498179341708081543921116017021209695375164900645842994270252741733049364193315944650808316074881733610370532581430446543735993234818162720846179173553101789836573069980299053408495608580183593033919289598696099338951447886380657036947497429372937648473713400082505565206926733290576068101863674877655964846052556487803841939416931490115838998383293065377355615213280829458447888577936342927425279568829855911864833504555104723593624803408940037531340776059832486912429313892274706623460195781817084791238059556575543616538393758247397419545851463369222059143672873210089929900819857300647475727463050983480817293781370126839510148254619989575219165178464170530208677444027210766656401785191903264916171683258421566906041490092717557376221612138001687083278878514964727219504937090572998713013181191929914023478102838976829499776347295629861256628690486922399715217394472968765267545844089107606291199979346445644150230462031902637260050348500920290257343712470197751528851316897729278893700308531798359248012799259686549673687377561149325821719441598131714701780590297259962716050295748569996432936913116058743934613531304263759963418725110840598485208110697342966018225376275501882446824997006667623837374944356559800509265379541786198796017445889860230528856550779672074890383049365721079720726047043434891061184418208754421821905077366569037404598229889474981951736540550371883910900133808994916213474664924369433846150333222460958411386111622759631153056948800837627442376546033949385045135493287538079907492233432845576192940998184812921048047318798076438494705955703593304898291794584759105558852842315065752251490922274367134040214710491385340148707998487529879779172152516188669544219018759039303935397185517037300064075665494108301007914693898328751971541800217314991091714419478979504671331976122347146618929684931677164424999361276652687883546801012678495958138768419669640631298918800493741228260073643205662911859288211372992145011668645712211339451081543438323238883756623538096425756372842932568080885506181019779260768238891640016734501283638455684619813911664689985125162717375089537839343784733540124620654389766076809106855559584025499859767949891319042166503381243421452187134016823054223456379516628729224174092156980515273808468004144349011755506782910151861385913477771635360620495106116308553549340101421616570406026844908962695709215595885784445015553788848871618782009136739055354407664006163243177745400462067746480008171734641373029964376960001656951505069073092310634620559818495793141889343385098252154412641929032436567637207255745259836792864683882243544149321580154983449639660041289103286846838252675492794737946648766833176614891274356583588317741709663132952312075596093321214641030343532494000612508864882743434073398187735929380316210749160866463337428911949405865053292234581641469862050168792708575522489236676222792898315420686813981952167426509827563990167420570504731588017819527662274195280430600458504067621389051553793512006440934846419550439438684524989092940963684764187532757158570186331616547651061099991070547683069197479440038588609851268646951615996886508051604830345395832194429764848331371650493428181517411755580258795504801402194783879469560463840564599663662061324966725349047943763828707275994917103418524810616125815859107661102857429367606829020236477680771428704163761482006099188225464881145316099022922324295086072156576988626773097456697569199479609324794770152186700229322116572650095777881272653939063970928500235278815574415255036733411179245151588524106939294277696501111906123739180409722613635636228323471789476720068705114378743456496583761281177603987373095158827220789637775303473673942197314976022917904130548883338442921350495425565449339161282659484292958805157611843966911049807765654206731381976554069665503516797119376833509745238462634459031578893427466787816925199611566529145059379332361967637516997287596471498832806669772174429315137477474014307891599017131465344929268762408842647621428343797154091503206684480718192794719592781598855500938511184464853558257407106306805881375993228109951909342644091012800188470383832899709059324004518872737938169509391397332333212756265733385984051555127242275468717941426393917100086802198520214775945115265286094478783196464748654087111988354181895159451544555037649123887399946904205630731451976272345175261231966402249120775232373007442704908513667733387543987732088185609316160661247765866527146126025719074969034290869352821208728226749526825799294791184131327404512389660328727749766828826429422810356530347549510437928790063379585119175666408940889157135296050880348054276349840551077490215882022584566391831098457034688909621650130252584784296440787259148820656950356385050238858256918983994057131642127697485077145608488926963391990909535900983157135373869352826348813319159459557324164646598689802830478827227484177680075347737757710765738280731413929876048148070959925153698001825418781544472115007820368737399176083034153100851323975683171062447310275523937453178968839956429494307775372936884396601833166615130442422388787380185230248280640735090994048894417467014452512221826011890423579404663517341915549901883445367042589732815870208991407647941539795815923113285517011503532965778234182073367580347570227408341495263649955680589837042565548324868563766175571716553914368582584011447761882238391876230997694298838172838678537837435324094049027099108066460524459031806115798839148263620694656305256838056812924916164872170780822399150114030077731473506783861700528530805599392922049415158399644928390786193076016661345059793332489023124500845546022487383858259202052741014152814692533684720589592261604747226599680970386955895860953646404547076067014103992252547619850475074614667759557764899139002581564497489319138032158845535189894440857376715196113681042087545464549875470000316615332676575161825624937648633830945879320987355044851719365874021824005749314484023057144547709077615396761647986493444367679035309651291339951410727816808935688213565846677512333418390344493349385490884944324605660819248461040870152532137838610690808991502874836140897749263719329994997202148160117396636445113310810000986580684037606387864105198813007960073834493960796570894059717047864677642115708627257027521547305494737987704354271842166513468445885116643855616768910194325567352705692553678131691127877198492312927970908809646006669020961484797411765549154121112675634880711760436231729281209671075392347810840176322303428116222178981283931385526084865335627103891465154782227347420683568622618351551148735547667147603053765425690710956007306134544669873663346770723831275285976041898240634126396874620467760940182674493366440506426596418382365910263935613545311808255420764414834374916642396397919890960408482206421289845360037649935558504172598109577234555096219640619236899967267201018555592846993149573090867999779287234838745693759031220334646403120591390748571095641872839604004443512134057776515695502144589579960937914325186576437491093329645376500535273283588298543334337405688995370298995222538011646117074804978570170522943506425761995755048181635368115462306591915897820999501496787373946814401383625705100325464401252674218291186966395153074986780854472888694865803597224387368159435862402272431492883785333952628739113914140929426318515854085231419079931377266384621107353475397977304421528822581420261982879155047611447120684608169606910170028967415761364036752253070689941573023566710382492394348377863611771696146035519923098743620720352318554561926953716685605231670789688599472852066273065517336000705816188573036960489611738731332892506376010641022757680745580859738911304334458591838930665203560117770458959612604183584832419597436289113683196007349557191541841885419313183693557543871983932066004822971305218260757011637733347348548855210912384788987372923834420576698873078007296310127355415884195024509792334071543165287936200272572266837720281993421983259779764906642314053317816344158000434230800949678560894760791858146529374056594330543435882819795226502345291588246994881994474203570076360052903915698208913509676883751175703523135521313284177482548247853565531244757674931380868773936911355192701654219511379130845190298276146714853091716436704254332638908155755811498713083219140258835669371655731471010983576186710821589509093677596709410127833748032660057674840764026575160087220892347436992083601908054743748346115992451383304939847533225929367049098279675244934357898902788107967793807455389882008844780103439018306713379287861082752701566451953283155056889619797222513074487793691072519432484171518008502397615652645555565154944123345200151959733884077023112152992560051579619497980730288021668096320254329120216018951684456196899554976023111043767124358907475240819408002592624088984103469998870420624370617366557864688515100244379848015159841269498885588751710064397402989345809823513434502654218606156622072348217636487158921034631365755039684886046979916276527801952019417476529424054523224107604996568293939088513909035860860036391967589973212121072317725866874804228334942817775369793624983587205148116476813938835726995704110270771786837959392903421909851842240502246965384321909354246184077381853354636918824602246208781391126270675465741314681626999979327945102692062306789806056802109631473470558495902488108072698254152291329779528738289012410651824389841218613910514243129791849643065298668075447866881336642493827836408973498745990795237649624597187084535037060236587619234193182759012921502376789742238784044135327249437033503069592743469201634851107632681244209712140587860063451000675381542012406922490850010580408530204886960088906334748817359306121896362370055468504881798812945440468148960199384347116857574408482271014587526905007270173281120094148797807992360045217450871381118849543626086205682661883473486369645812225342334504847947864350948309817530630294802326030696438251207722516987674131660805243615128033897111121085358847931305822895202229819905287534294376570836170769478038763307452197700843071148569714425161579494540523269780353256399754767620540098764010053640428590609973594367969025003735294064100395663815687846998738079362686060357957224614840632885459414457450482288316611706105215489186060536619273733715040343180956863469723778755884470231061953098127052250648051045865004508259130192695279730836038101109391683824988494039781815641941662126521187811988475223061006665394176547181333741661671897505485815870251165627358947717199236353109026780468468792378363735160065997527200382579176000137147652439195712665195101409933114230361709654591908441028681274544022113220688306821285725900487694458059519197163684079996795319175022543339967755052621810683402064450609075903451590406632047174159718220802056758288065440706566977422684942944469361563377367640334955455101708533520725081597023311560280567098522648844219022996688264648722511613622327594604554513065714899570197130593316444969944011183060703475719898255086350657809986866302865388702681206481852068702710144626823921208113381030974659818777028180665309354872629518531284964451130019290549342178381388300036350939791565931240448844747177093972599760177652372120369045718120790766726277142874364055567382242681661792181772099740305080086885676428101526954226499799590326818372331504329809428719065704249043830723255097467632315203190003905845773317514590706803785737753863071341093112255967417907060526300827720585103026057053643665926563309713742952545863816889638820618803373559793464579241327700596280705139784272594668472293321453838901985790746641085460172386155247233293411338127120508836448424552294946990967779082139307834631388991017257171003025894793565902298641363678705235781201945763533893667448032339753263480792445047554628189308692795366341629576611892746560555462115556691094395276372379131841279428539291107312405276342618647633776214986009041540304661365510795811572378030465684567748280840630027483061251245034389272646172297206986936208819578487911299172595884298469937103133960508903461666865486467850925340901473877370702278010713671897434254048129836001317327374854320388195577647377274397703649345982525133718145768617679324187563889140298322812153628170162784389314582207052208534826202922148015241421954741360564451772676300088237930469792647546706958289302033395243603625090732750378227298682852225843340388698231125390267194844550373879259278473746939751126106452295307930167709565079793457017523561796160737124785557259359911071797638153859072351138786498673400341521134154592383361623842002462168313394666158944686509637927048255823974397251043678776330266606662641834227602048253549134164164599997431147802132916199366060884497448751792961926543846265159570741600164878477226190335291777413906764598374977187425670140514444348482206932148155886857108788883325558916592760524706505270379447091557924301738908775458331627536603647886811957915898769838153404092954121681341243750011777143323303290184627284543442692037639974935330242547847687621884748649371179696943968581947397461043169920461149887188285251375246252602695412048626498529084747366619173146018079720421061277939266358729886166382183481520509192559708207773244954916457173621185709798258225020321094444947157614784224873977680638810249507790634087676042227857346602299823201400696562644064808304963865806206823552045787207749553248264135299814155881425889513748940572437053775051108793229985907707514341554065638259526185830468136052300556128305071374326171269622750061898281563598805568204051121626717030125117740172558109873893877702318366256418677475123846303613530408069312923154044165607918109685039626444137540073884839054159075782830505620840721732962302937165336961355802559664103147851811636744701801177705615002514611852152880752803138459329920420900562402454108196908701744491017457708992331583726167663472727703839895876419721627172850998033657926074639243142891652477580148898623305097467194381390677667480798316723373266962837518696938793326900928985816772796333499720714798937017648956838147050539769383913513034525607075161505398518908376898261969776843672311725020819980195967626501608135246293099876382364097297319574725337609711123220585822863007910843549506366483299431765985613962845054829370531873930866390808413028055793660194891381250480384624679037263104627348527620613916915741849602022790327063737315909366759682734450250422419285021486440480879348588371427720952502628090594919814955629340510030908718483053585894656609398446950208759674265450401488305068986033416268043663599940626634574804403845348365239492892347411099242826409393383848218285208911343883537568548888422651310396781416516005973510682369352646997897284887698990876733861066272347353891176330461117030739528161220294096145152593224965889093879474510113983246318712295978539807856310785577018359276272972517507900419012982492644767639101658498541709627532648966270093056676969734456918328277819152126526878539400596790689689507590211821615490329315523145610641065575101523083496299425136546737693737317814622385070577744361434044731644037441823198127205579474564438559674656514765826379460824591322055650582746207867625279483912148856414539827343970332024988383262451465118648041406432380114958973999942909146667444812278679648091374276961855276856338586779349368726009617611268554412387342351138787167085835073762054544897308920941213707401626436291527158078132664022604343906410886004690873851686388210266574252247649217010072708155931019049913303533276060864109104668116851801986896216567475613401813415917035701483386242683029469006930773015052110059464396608598493921590776026522945560178245254352273116396791909751098017688989819574004582879231471337638980383983068392939480572631024036091052085938910302350551277067491520186199928031936228715244652810328981895880448482324167704963150473294041710309669254166715053551753069947148696536731686061963278730822720732932184404377195763815219393915995791749627234786611093639124458765393446802544005807125055877904141357810980206224513983497092411215523015647882471453974047192089378244966664956744046935769241523356554755001092689548479307051851690907148911957885370247562227324817452514532238582160828211067210527164446652839330987384981371117904644635830181078487454023541244991747262883493626188679208481373681439739401242679924523245468960237600863926810836106205726548091824543590004018042888558390731622468680769543542873390154920324996403129441957398905204375758173711049953583395614849431524722663214752689526313503854366382737219660536668731997362335151861281947906608699175354428469838371099208174822417455011693595238435890017485357603129052369357686193675937971610674530336002976687870998776455810352430413863588945574881212312318654429327067224928785959256460553704709901807225122538645707817436017254330217370618626158228294371756532670964656243711423198789174247543772495583945331061123996250926261333926666417198936497388921724768555249867589602275300211711308885121868121351622808863087555455905531846858770776559416837750314627679298577240729141040522815963298231509037168730819933524861404214244469357722949128465463478657263337537515028794676248196899819423828340896724647785863275070490429229048603158861216762976114279729613494433023465151065399260973606842193255644019697295253310135157164513048869562853575254945331765038732197761797185260757853132892800364680658810130994813763917103035552280184475428890946364384988477844836742091650587492823418111855377304411310538231860186508423699844976107674229534265104930938797606595481138853390802362909219968440654417130312336128415057056795518361482031795132890411354517003297680621134680455505878967604162799946017177915238343870670353155947663859063211329739017162698793348295023699314229781655795747156106646215291140968616186310529389696360916766425423146200584108487335755712716985234093904027211848852610253096192844717821444000577263992946670713754269458788575658435707306141238509314173720711450015475124058672485102707399797315314366290056682507138825678705668343683830460697348344812752643456080981546002454165278251995127241497842755990161139914516751600421866093865269646591138355754890380565874257168569912750192645046761222596166467858234042888622484313759562351383514715195589657389711456645878480725674997367290494232538921758219264093212497248946502695264257587084123416315619095276356981038556809610394707989861247830619175623800529690768596232985791001815163549125650657821491744829795306183109375212569997478051107411531312091342251018890186380447478259723742615125129476749187275157072491904496109871938707100772783372491839841180159538974299833384435147009539753981352961206402490659098614243365867773653171413176852987936666190347414419479625465989399039767177181521264721656174650111390075124304124052204910862970655488627188197399021951162007365753755924191849769521693274714748222387972956023174835293971077147960560163403651250462731699588343429434270828981300506978239886891607035305061023121391230199896604104328116171448450684710630877003634387260707532149371265208883735012733517884766822794822399468300743762027492746964263270345873076628762775711585123154023834128275084186907465972925836578270948412958564111322491158873805847765129992330632482418911733658230824190434531604305739899718979454755684046411883477341419599960179519881278065803655455285823264471572381643720940954646031125298616137800338014452826183446415696776240616671391765097412821707592169294325898642053926154957027465619405792495781458553960495603856429375510016490512461244394794690246863720490858526709930377961650945598103793278594206408663711125764937298025524210090449201549438822050792933219945966401131741551456239766449967034933363325638341838254813343949714389123233051196561772412785999573061984810562936597731605121272660124762401115171844430814167610340986729401534685173859685996226151317349618640926618329674656254916128258191391560278110545249289213543677976813662448517285625179248307933150041943900076673964192832264279551853378585205665984774573509637559817959449200497186237384032152020919787728717439790279002422127225641515112925610417724264636990594225186230834809748862954359123556546731359645626076949374249627707347039008334966289379836999590080773365188983562318296925668266739656391549189337285200252248887476759892704137206534010451151130320446553051773878616035963258615798892040559176418406710466205198053509930870786507191436433501313630043732212535615837070280561752930890837260962781124948510335177628777645663913556459806219485101708876441657056483929315320587910234323303215252715109692309452251754506774134278694669556954709445065112852225003927249783308644534633034922223700893021376772125783434943349712945285193547451404001265013382561722022858122979342181539442635612493152051753509760910274323867870849230468448819725054797691798485128916537339243184234267948761301382008758980233021890036410791372416999409818433250831953623830364811195358635556825997780999077229118156164670420501196171362636252171516636604504351854410618381421631288230127214454424451191296907759120296982062145495556578391035880916642182133405140971509183609357785350915825767703555478029728224459094560465351533953877247347936417309366238704970319504578741424548496008023937866907965821861088244587299033957900771219606531602068261563035785896993227864481955676445174415588225337098299114291254029166147846567377901152973124291534999729338766024152068169260703046087999589699123681986666427020162600569791277971156774843426384727813801743534669108956514484691401042238581281342322788063563429430884055243409367764496030090938023288909906040034045189897875981906807128633372533713191714750908915657438597700839143762256497094064551787596101883688941331958014859395835828429264134783051236175778012298073613398256306059038416646534409236250241248905347023270561838552383269360290871340552024897846902834528526933448778967395613635980935306401473550357760228907484151067550708237032517245342882168474517648922241741690802784397173624057473293369740595123107874264790765646271204431049871180105470233868373820484775774312947059009527122474546443752353827291437831369538041942355591004662868998116794245716216408007181545401989322167919246304153328286717605713112156223041608988110839852133601338247357844568334406429420136985039597801739686097124877471917989847475388155476226567487452183952240659362420181991221814139645314169198262617367949739449647394475419466003622238803444456385312716062065130079105839189337183339515266558406672833952208564440770067241116910797080433461527630732325742141242902849471866546402685395630023308549896562345960069616053003313270054968910884037306346453259105758561569092654840296471954157829304159291657053816528813938216324095735731739463482779849676589284730957529036129731059312552317079242258935497211630850882567527240369926143033781069801653369138878995187912825381653074427210545315657911347559633551157851394134675548056180654467009896077736185180972090732193962293323841746528862465163555684805149539168931314162292568011827241741739724544360911390958133081230241063801690496120376539978548635157969451693041112970349980590670901459447064688978900689208332173673784206921314544475389038840875854316637294250689501402767999070911216184382508536388124016630928670310190698284597809034414068864163665774693520926537925111921243748446009403766124221158823205666723724196509435642793027737098706242599503241037341623868860485957832713744049380955454640410613273132789033860030921138431656111192752026947260927616530628705057996397309980676878583374368342492635283037438614854298220715794490015324014349847341286381786502571833722003839307292913102354420588071381469460834589649784690898277665986555692690048403611573292078208948616607564017707755042518650922156005591170332666202563230798553290648754791046906250756743512071876913417255355217525765785127219952549544682362232182414625664685649908050934512370280100428521374067919605398049326906254788705384166171323419020732031603081078811298977833753409271744168542405793519412265521950184084264732843877807335882445295063528825427569638241707171355168133382969360357513699801182911197484833033432588677201321817731364925422701627492647655165884012376141398061135137979257156094961990489974535984921029566733695085432693810591447757470662952104142792488036527242175086083204833617558264995727077766306473715198192368113633976068796007747332636306364743496611196295414105524864770160614038475932936100183686970516540110849269846239734624279520127027079732424065873139025709992233463010739667737510491132534043732477815467721154115409104209951586003274394358361056124611358148040062063454601564587467404213215805860578047938763670339695885457636614846995130311109277981683098850889240483467632277313338563048899405516215977487782093525743970945390535838386227407870917442755997912075567524673418085533263387362206710737852420494624995803262582491360940022916636270592686310222306687183816836760498959844616243166393120295382370629920464269662327934573378708175660878483400888318029787007766215624227780306830475119656890640106368506181945533131965850622013557652153234618286446509260703116361868913581456765403019748000892231650148868853326871690536556061390028865861885611361762874738859164938404795067960660287905068638818214208061167159062196837939941456866675754613268586380301069815998258641517859530541974968909594706646226691148432981477611084787098792294184054524724150427069809831219201008216247295744710720180840107814171877753079787928522961318608680301905636731973974417515036308093772560366925093435446222718689770724070979417322161902414506348725842572263279151047036592471285651435529019483100540543282559242284633406941762301687250877691812785388285224542367764308870494014736782256980235268593559874217908994818155587997388625599109485189350624714575343449078727582655990553384202413005201821737958197302473864727989826083791814322162627202660934722734023938007444309282533173978562706945806861545369687768072310293935914760205730544580249673994908424910729894846711016454437423512823608765350659927348505458464525891787556372116383438882685032215944492258658780374189269985982596214249982946052635562719108498800852533574730496296599773170373249375813290953222340043624283994575203619132211608455851242931424122697437484459119970812792253990424834492034906102476478094117887564261317252175448616217512337061428856545765519813138285141212450431414330065621314462646978745301005760145047377915814344529648476391173644306091198923862165622259937834065232107930258192053362025139113907370310218011505956583303884343555153892530135449137437406544923352251569375325992325590330778424840468522653228153531553998196661912912456084201665589206207932443161502964166551097461701346232532077773520975833276278119477502704841022087792556195908111428910694193240450144036746944142404729392916581782858901436985596836100099235273363439790146339448777985751584485031299273585861233032626475349319581409845434163729594994239485059856611876906296203066869802211535372048044084111314504206921275567810001150920348911050976721263301523164164947472825783761728409084775255586313801767117734798796584800765711459284079524380501492064135215100678304866842376850248908789875444452149792120356420697752057620578171827084458657479849067155523197815754454372087226964785723782423558464952672222993361963274500456662312142466728870729082913867039118954307950553116465769272101166666931866856613370773617487890971709689765913493993579918675111747479308377514079642167649087028609979027954026224171327179302493876654262118805382391522984167629906618427614968954427871996672935724134305742402369247206116791796374772041418258389700320403992024449621257378950431732108177743879348785194127625386392087340298480234367919653864844787911037556243095549111394622633950129543673292405551461873753704657433210528093237588955584048638564659784869623139906104524031530912646558549599091386088163061137973478346593866032904453927056391195268858067602384780102007096612431228048224251796189546155411273335032680406960349622055015795293630832235080122202072815254110191045780798846985195347743454751834614802571326409121214697571658797714406183383088953169938250570380263858361742485824950191281391752611863403043504137445397801865863442148276392204735999637751838254294625110011242137649103929869328421757797729316902784621023743124961492591264163925791899013405098043759913965566690050879660750160053892291972611576268661742365490030808347966263817027892081179345627597379270282799141478977742924168063392804198668368402255653994974146342689389096250758524245152730266621335212788333578230426811379352504910813748433882135490712355721050782842258594774178273743727194684409413503882281977182375121616126430508234868397818297564085536859099377779083000600784398525706603674910328997295713667320518973930690547229002876723389375082824921409619726676765524314251052572658010069232958556698025848789493709345651070843298180316316573604645845967338411034865122904752991851427674533378516273422396658119377306753584911852257822401406000930488218959261398777883353654463510484343939056993799255738772799507978775640038165761204685597462250350479867949837094514283087981254268305768164239756348611631487814543976397080573731829304852149643719293028543387732475541423362220289174406612889592092964826353013059305443662577937049629438404964319557130499776335441219404898274706496041240029142211231515537703052993040256725983536809097604958656983312000673695640961942856985399851663706666695446624672669792637235559075463182478689299905712480486439479294646258257149341452290783137364869591710417913720525635714655209994539918219385973707904729062923563774665073909427618157324648675998059932368536024531623009357266751062510371588367551927037457463754694143297108844802818108170910295235406925633773976153924307197369221701436527603287209977636787529180747684707135982240858511339940994217815809720015983243525634642633373551309906576338438974264433663733499415026042778406473347666152206538115428817423311784987140594833190488916894832943913488233069660414264172219121877875198594588453402721559382867882315687858616983163658644303906613305818173231468325487105729360788747207001079317581784734967111469369891958399536046701712462826353626712365869334203266414829260340301423156853795855225263643217258591015975960581728288234608503325718075680228480224879551836519535056623427359691456098398339862372046722169001388596852307560490144990664820998898575420417271925003967622786350986022786038807034268812622654954508062734522981334994229753649968556975592340659633915749635475011508779691446743476833737814692932530059985538217705125566790277980025894804096596552276697845968632194669856782306029408874562534205635211590386513490620770948509952142877606758584972209642982630675377234023083529569919886464352673307609094513448598206845530287666763345478774442350095958811067608666840823942729852017131253533195241643122110555594966115582965561028822430716013141322758216669635293249568165504347152341137356182166944949506179065248590962905394818638192754504609193207987703885986384154952028980430555934697674410391423897026185363796023549063257562926406834990520937789285371921686094667839318328387629938312886665146184494409898121654210960078228935465658714643626798105847577933364719969366810422769968987041584507905650526289540244240952965625721095212320902344293832895951590663127846373026286114487455848530197673739017667665830378644000380391725240104137032182343107375881929597838072498263114634774461480203531867555026361924943396102535603331577627531320276470194958595568662345316795500129546323761452402499205962180827221187914519201637442583192836224222373329436096242186194377992425571624247265268168441944729979078914037678377351380491568752380834007282668643981732021537280224376843769409449525397748988252509874136658844297880273056478610290065727272876403774259311579033093448336869625747408920508595463712971812991590248269052688994063246243273568863776417533966037024199169875997555253772013996605969588965369370530984215815596098325623312000885421483421992374186146593878241241675489737443475549064719956085996088695526119152362832327697872316783286129140498647630533856188290483695123185295209054291316278702785902711504976374708010090690246042697148798972596552947692919633019786717200596899350752518021518949161585248697379122766191003905217425515340994060449961235649468420689340132566801514211642547930414484132865398520003223407411175708059942601879309775521192560771190710989066047391363919172341178656272673079626339014446261903653838349842356710784301880453889102370164959577426215751226748551708938428147223965468349921267202752496497027601070804934342237387138205971547102933568815320870693731128759853636064455714432701781441865956888027529202152366616227119825808918875175217210867796258215228755370323527113030739480467520675338659040669362258530009340682864766948853103790327472545674198626181208942205027396672484632390484371133041483151244899811249087839961528197570183567232679646893710269222694508036869637785868158320463033567400835637714633849853694012108828537343950326881690462379436173232737417130756415228144182285998386517236185857199473266573005657064421842222852245300754381378237769781418481512865045143018904684864230651689630880202661795346920944606143475870682587736779402605826808853693066359512286965797707217046967161456797015943823374893842770069556869043108929902199892700149631548331846534310835241299107493327782825984835111313346233977984801773637536135494821890641817691355626203308942155862150575649318259533501545764986746008524159498266154890005207096242540236273321742013566829062357846614447423982080667385417164762614758579993051991516974656563546957528505185680864954213427552502010351979596186313851589059523577639401133010873604187430541005150642338163875105895589370640266103603225617637146140085828567325513507274657738318261147582985998065457068109473370103094488145424506440521088202506736994772382349237983010915273397073316136063962294682700153800328418786476748339709148605643525560869888012437975899511740998413892039240100964523609446529385149282697528900169353879148978363980306619323016552047706355875568072563456944593770879741340885306452310154180596081116603870642449519214385366122576918685404264721111825890987559819785093788012668647240211162865827682810711927251593380776282362093500134758067906009334785347730350177759016432100023828335000765330495840173782656290576873361657691433901623255267234265391945629659125874923036615261706494834981004359369737464268627228397871251110329485228459733327783480362305150838694874805336899338014856569109387921622768875612871607354540410002529495864480632142715480646862194799958714799520491257336097898196126846031385528977179565870848265918907269294713241871788585205636174473714651485672583109211362181868859531806917331913521914529541232829173399463544341033534044509856998438032147933235675802031245870922616895594682076669984947035601117930681396185488582048047675560846619369944410836603542563813028734924168571218432071616023663293799185494749050402678374116851473146138918682437484071760557445473463047980019102507868313164453690678881979737133382735385492038422516959263066160260350540138990690437314066482739391046177185578948100592312422806689706635349437241581491582601036687289049505942355301813848125588697421383360154587205760634362840449467442846388713277299242574510040077401865494107091535860844064759605794421384089622971112708405828301818995537582825722547997565942767408529539507202225034831420247667644238590173926760633094677237183186063506918284275471689754906284645159043597145432741452610058334218929959919270705991981777475829717745014437996176022534048225962579562692238837895023054335174893348668210419196951818213219019182838386206720366369358073404603868257680499751149037687162058867102952399604881717720531382217359566226935454577057819778533329878244616918473419842186014373083154407529656123013422490822729613769523598354598355665394444104341223910232510423666652181845098660610067856853022019297590444893611030070116925044042676882049324194507653198818435453104493089198988260905610310936665393633788321210438880746327245506361874635185728660415359987915785760863819476941623374622665490560391272541503622050630125339558439771378686428040508959509119507193295290220814310997343331648602191829788969488084778334217818559166013511087797700531406644838366659013564334848972106128629155711959904553852634011326061115509049590208727077684527620616189081619140791494528963085219345427030920903733820457511683843598036201161749371644053605901111940683194724972786366916998254152809220647679243030032357875030802962566432090586301697471214915161265828868681555539103316136258042348815353350603555627842617524963753210351337741095228115862474016511889057036869865272099400143328344538515049575373108185906078482115126553074287841905229033399609702245390419930133261777874195298655269351159683342150623510619369079682744350884566323031283410612109756654827339558945125782521793089764566933724406635901916886966963036484186937844301906182599123867057277814933269873018907156317247267509212153934540264197200425895776894220440064073452201318679735996683286118212799269460631113356794765644099459915466128988152923554890988393956280056506179249968706092663603351618323107101728384438721842525862579259807888363148813508807115283204777534021677395524105458376661407940602011843693424626965175041832415419039380536449232963514526878784449956803496755921208866415660297323401703797357035253186783883561740598425189119629667669767777851544306455909494985147807760207731341410875064290787034535171790874329790684724023433653348815231157680370832103389722907643228476806045482302130242103986981020893406129018320291289078514816316810114468443661271793300700942804589429700213676995265850449584796796113853104240521981454006397261341953794192582210764129562282751090335421597146943794582669030579875481896618784470966753725258415522241747493097063898135603013826333761410548086325148835300012718484053356897104337962453254748818564407780082357265558277970252587278863286789507750759406229618549130762530490165569554052565955794010365484905872115793960912540613055929960088268110739877619296346112538951380678945148668574893682575175136212845853001788958213538865937621831198035308139747111490646430114906737524650912893670794051482776883538488416250102538510823274175697129843912244484433468642211806481413889536926749051154869020307297762597018908108174693704897317803532051728486948014902530148864566390384716063269673363939444160226491876020504198371257161660404764115219292900469407363069976717211495418682799226006503385006453695798279327770920384049349754086139275052337862987083076340242107736326598356787992884863479277176321315963886311218248484506478554220148175179968702115596874530913316277742320409352969375529384077565792084852143780007223422401567413806376235654532744491103771207325030681773510056135645147434270920885634356761695896920765439874572575380210537719571816030624817556161595782051596552316338166079166648629334118901658698982121751219517214017800399931904621809070697375387427737000536638227886688549216762301140440031683616243645288745738443924347425317618647932086663926214936198736098397365258406593091256206856893267672703419107791559277006580046365528119534807573416619535292392839654029233207098980696088782163859060939084959677278809340130645092920941886335979157076195790509657456658289793961536509526460439017599044666468860674251197958092544602678537886269804235806196994640707255992930859265711539305181284751625081339610658424371157541561646118938077174650501901371540211287226077745408306518828177586405818881276790391089979274284539383111706514450411401159268337571399487773119233350477704311335015763196536638590401475747194366634794842166506690344072432957271982650628533653826434057589463124850220776251781129160600694405244688867870501710575156083459808697871337182585418183996997986792383121976376723590283124183806174032759049425025525561826952374753425829496711934290232774698990422856654653207805278372665468225327185634581560610580412935156323982159557293791791664204240586764839270233578415027763104380504516744385167113612420703254200732448665523494622304805940715811594473072930255783744763345376549935855110428876402756737967696082165826341322971297108678723311978893241465212909446909153858435527118348092969472714918347362899505069629598897546389844368238830318767818699329100652659754506584866031962944972360157901605623882861798261220919936397783537910641936339069599257248150756987121073624623316953866329848540699377334166172256350845207701846625536056425339474433935456558631246531308985468735853509786060346991178361226850848532884639488968370953464419758826464814736367033963758558140872028752634883226772884469969576808391280775059536426589038759329368026495328440415776061346913022167742975751546294079161298385671171336979560269898095070544806873800675018701118507788973156056706624341947990355178635051980237551464983052568386517987071431709784716875688311483418692547409199153357240488936306690955503577407040674222926675105990482662465885134529773465749295348374454552687479816092255755485999193916794573113697308703291262698691858615174870964696565853869431541689276491296999495605385202729400544692359017012160783142523040042845257504472936820284265341527752968517330644032658591310064806869234777499076442217437441864109070351939735816121833988244283190877434309253558563655701238976053488259927319882158380755904848952677684884900302876611616890689628897493814345203166828921434118647531731122662341678240698420756726709440180070706302346279990600193449199841273351184648451936501039818432588986390464580837751976211797329606896475839195529740346916634407033590265448824907911512152512238223343659372385816200534677229115609888867489223477122196108068993776512222180621360330069319619422050506287659626159066331104960100814123172818451843495721621759572495831226935862341448569481026239198212922899148549924371439452360119937404646077857830531936155085716308173223206811221857018718462326025195614413583571677284549132519063024418215233878563487232557377049448581893981331725056216500024269791095406634314151177988838088557950232675506853400749978920663367172677354254397200722852709129074383561684213749556125741862687105659686763323485100010509895560383720923599885636865029848547745991874077209436615459671984004288241045533483726712842088920047979618885671640439347929899884765704427069435677850016117153087534287405202481218143109502994525367414034796223200511349496091210996537925039353170638704011461972334392523969953312320392369506654519221127926455640279698855083481314695147422621355673865301309456668421644262652327680931793085806898080611854123100784942099737116914290521338632413746071778443875883255879335027109392877562728683214078526784734861978927494460410316874770159668003514528305251796818830943464167983003641731305596934115659633899248748453265345767002149630441053919895697051615718940254848535819533279578882081079529886037167877082726751377682363242398456583027217864706078768870779281522913917795253038250928960302399993834742942570964701576497799079547478638233697846424033501726674627051205601168422867931366297519774137416819548116548105136257166251636824960756507181196201876887617559827120262253689514966257353553690102492770347334444324693577989259488942738732663379889262277946713462811947285641195189342845584163198746314836742350156694966689170533888447921261999620743447188789078779640873171126252049337382635700701111601890146486602942030318202586301408332501045599103797631063470805538971693265675823583855521733815546254660260418302369117082825458566046402230505764357364263954432503573728823186631204747267100077631039315982132292075608414993630736120005628708602127951048291320269637194176723082242941944896018817622716872183425107428937458991932409227288599183860062962234244837894513312346465917726362176357625652739546015419853358964664490198870935157838891177153527543573115419385220099964622512479089109276837276746180962849129058492980401789155857490862676857792330875656980578888801870307006326475597381385579782908178894018473972986573476681522614301391786823724714359472455383102332341759001305612739407208696823085463760003623287852579352017655823614609314746510074057538917141333251835684222823498898839334956431460473472297998882878138929673314471157658587931269712178058410658681692720907575133278272889976391191726179745785822814199672748202801807002910798148990909790932291324725615290190699405516639445572370434903449693415224322707331278740672616181406215542237730741188466615730340064767940434011806849151753890701494026787424260195904952153796189684467457001066517364811811526631711068985548990230228630368698362613301732051296468451410145613994397937119144425292403702083572321452477110260266140842436986424822274333815501375512979497322946590646589097713759761707738176538416128442164649474786336743935128910688867735463927967819813837555804253224513263990988250447075341219456390831072589532597516478164442544171119112445819232728551590333449860392864885816240564883614402879229229810924947432136486748125436747366216739443803629359155844586466827578091607172718558065370575094508433661364518414974443736361512933491815551279432566357611894538040451188548072731606897418307495685037951361075519331248074335001370913200062027168318043422553201093689977754335812475084405285719139881902114909943858835396911427063790508743371215214398485270344251130621560008835829520312492588733815600364400434783455667382827463869741558069826243876862419522630751060449327650211670996147004065248252687752452578606513524869616635208258648516659327018201868284345990574025554285764584909044102968907026014070830192402096874838250586423033182539178879912660179315786502327275488083885301774767606666833967509996006050669366710720244509165646375312587698293812378350259332047335020227496293333912092011817795539714714487901965623053231503584073547685896901865264228129692794802929632523406311881742840991934158731437723051344612007971341977979674970660810133195360735268450726669346164182233979329218917392921475237841829008916123112855978620250050617238700320301312469084634535699104814815941232241531525108806863228191388140967018703590550969350121570357740136424343555867524145217419547983710483827448086023045696472649321960228638444526857500977872505364477247014184690393402705510442548240505326554210507006421505370206948024369598116571988926954087464231261364929516290591709122509633886496194529908575899869110864726167185425166489654848111627864633567052369562541054117484894529798136789695384394204318600411460476761971649733204412130774616545626024807757116183443009222267034379427554649987278314337653319146341419453839706354905151077090162157402683706312999270342343872302296694732442759717480541005876219387064027305915652863827760583592080920883762758358425404388335816562461498340221372814037661974359576003899637074584645298516550158165510659341303421594895225033850789032754576352221644208647483022326908264855389457925604889755952909368681638428031791711391864235005622194736562927269126203909374099742632957690988898654613321247229063393729255592315292516491805746763066739737306229591669634871620647664552461762555699297147726881701694954828903551154210249812796219625638166718197193264847948747507072943090654393089877120683440201095833402047911601792801376657098272936729277969707741090735230853883786040977584762605061472133963041285173752406690091545355767438680683072341727810770338060332414179380254573053134337726185549812046835651498141136774270929924610902463960003675285921096229505296700004026529188498112549680299903231242246595342271262926162731728848807932019569924440102135986948578603013593089934211876919308698964460509346925917451391002603186997135503384196933533693515112415924991447925498658741516540485846279643263696953903874552785988045931720049627692778644121953218381921007370074335046276640917934857573871427559259363363252451247035268968780549893928986343410720990122360821195126317969539741001471165632546459556659638895451188892082281250238735791955961097778866378584900744257874084552997631173205334313176324045602354606781589566980821177080517324130268287186510134813765137809229250027340627012119828678319491894331016908972913021271655990158259075755705455632246453994738727507047250798526856976157803441335853219319530796291322524367634674177307859280268903817309057181751887393635811475421180139216002917428943751402053775281212620775956399730012677285979283508405778389092312101794746920524473138042623995202171342008527764965570826023591865024539092381254106793603335766206699275070335589299006033151846110006261922419185871670979539965062790830372391522601382963350934976510611345549768994963823523591218133737239263802360638906722393479431791861277503182168026303182954741590062811408381043229245123501801478469122952085155565528351358892453722600419576527263328176827294112476959627899377113035264725261442689430290579294637548081346691086669261288964171931225185967031022404509596304933781899348597884079678409707775329173911342118459434086513267471439286443107106301429095539312932816940220520881220156200152649411980203081850060246038481961872460454611213613783266451292831645682517265939817402162448923574053254389709475330102004298364043301217886936084633254084323170013510903484458497000973262190124802810099402224794284007236150398269475216058994589962601677628632288714118647490205421241915138737111872502534387908037295174733408591530459431217717539623176930628015190286086176041136997304067147828440471377168452859176833443131646043115544423195972273548795738042122368431300861462485998106117369837874793681974575132332181120062310241407411069356497445434247351634013459377533738999929036855502301395761242302682056648580003432170540928165404641337944194799988678672943214830255009747729980447894994719821854774330517046068641060319717654689790481968848141360584970624928966922703014395861149355056992217874169163294898673300751645352816893568851310475840175493789049772498750905425083220865442761192578389702310493019651911355008290269114268543892263675244423112160914527381179640331792961477463410926203322829746414974895217618447784329191382822846865925998765960560334797013799170494791129151096568986054766610148549060460625555248553566423811262167208797639207049466633364978193129148071451199577954723083901712459621042846333080373738840556979839268071600933338978634513043423462579879286659839780403363021972172269304658536870731545835948432477877147253148744193293601720630063327262966208348394753628467612455904946525914422986871982488073121282457891159794763985020377370610820725460392787926838832735980813538769610246466617162776534751189238255499121504314369005213821631101583622836691425539646177017842958562322529955267280800410382202208978733720048979875487290042724733572578016925728197699012013759404384087111208293396365193037365315192278413025647846035924266066210938095689809677008510717153560690760354534239408204313072973018261092065698767897248358006843467704640152384980327810900424472048185753955382453833908092229100141034593293846931426802539565233691927683231517992832279935118710918502714719098718064421291994610171307771051144967154511544570809281748491070988307811712850478917992866472004711539452869122426037230101349069072825293059127264051159861341066935316186598830140974541260003793577257391268198574852503965283127239891256336284533064546395286724865442680135830656124525357482668233087226310673836705643035018825583313375370830475925215766643620487585754758362616432323820545561427953960079351264343514359240108396287307224203689483415760890059072313618434803602742748264473452063352786429364669921310508018687472988414210155886862021230105585577790233853726818896916109645443727322436202258205850167150168954146262425743290061707182661780884166157763860584065292771351390502350158664416274844115475839424829262264473273437373868509704516872754436323175555368464707630227414151654000898150085990082498675000011653580513628756336117406952747639638239168289024535815774533952070250850815084709284796117547903117816058149539120069807115984775222872711368054613866415273861571979047968787068277993612854258031424847981273573110654495672916344895107840062253788503373892998149572444475501264427588620600683663874622854326177626451591291823505107986141572518893277598377859715892789112133379912820564432070419339406245766196986529573280309495795878505621636157413526984441095513596807229346490170396235174871794733938143011753962005329848187623430648041784611121829600563901074045257135396465660417961919592606954186581406383099851674426618870644920052897155398880165036570086585388496155734188098694765086569024891197919352185037912257360698158633220210366179143207463222219167337968279535061627700966366351367671560083380799392121477807561488060377190093237740901287429471538599063878203327243614990168269438534259791263252413157237477659401993884017962729317762385322319869310101608274462379388138749076500637541038142623862772626727897592184576263648519314823788748513197766933358792430703891417755870340319567916255818052490909825497184598040651247281701947338297627335237975629216098719824710922578798874423900720362081362758402434923946394910338047770966601123931550147159877921637774347289964331811074301601014181216590406511191716575320105379438755447696968171884153599064795329160040647637691881513739124596681117627451538741320398364935067783388314269871610757891855660407465003843820061646168971431097652810679882375785266604619470873986640544073282391665911675721634335158981876895401702705841618026651679372645456422987987732587876122941733530549260692009175783857942119038586277192870092920269194293130608116694873741532430095184977495242327566738431746580946865517130981333530560438269913603502666971237392447805226992861769193347867645779526115374951893901934388717612657176029777818794202616182183010734998997435894401095372036685690206700198224709792380499757112714900533864613037988837927401194766739571320181881354007447189976980467242983984299617660059234794570622505961425598001193942968957483037902343683296868326370952707151053798378185087430124780684304290330531788044499288910296573367993529065937898133010482997634441597878022182015135679773845723089783871220552247630352937562568620318690463884566423887830077906102234912429327894994009303849666472165517612683538108214433431147667449333729875418889502721169669609176720870206758549211776779351017046973649319828496305126478509018883692854699617397883819825615662478375597612733815859890446548840014391370982691389888673267542981202603714949926297920898461403568992709490295472286220398368905427955679872573706389645451567223271891052188962474475567952819165719415104129685278435442073198302655142652747828533450270656808111945425861965363642760342328508025638376474319584479409860083989034905867234129876429423534533429413756356449138210165143801093264621382889418806306163624297997560974971204975638552335465755843607149721235738326050696546583328406578741882691108050915413160818795121297822021010089698350015264070892855031184899420105628710987915245268576773235092724299392588748685855984355002173284253318014753017045547737952612905458030490083960648261537576500383632140376880647245101509411315036965878768195402571937300288162016328544825054630180882253894473073500227606822769095160582238558548037097308283626707569099801289676890614004598075270905753606199399551047169440357964254041904576933835961752996645305674620168708137571626192662525319008708779179971476162725108486039451906094329485804768716098822206312410640320475737836436427472988754456706158560110850949772500601264346324592036664542549160472534912753222040241742536293765078668743393695445028434996889352444785701577403418718205742662069419849755145061885352917587233905028256956946901873806420115700697948270683030275505605366590408659272989310637368977905228702507657552857307346606203543937497284912461113069032100395883730835229134492081667611892421469343286528367332705367967617322557344763614996448919234471547717336627831666609393285221875242542877365226034294510992602268022189607154188394181988314712729471399537798053273469789051332802788752598146192724115499929273277123453022034868158472968735078214681914688422803050237027864265358084917950132728654939780398173468759294462850134664354931706901310163675189778667179898300004765089215197044266961290927187772288290768401826321648628721189075128850882391757924968710880970762082403140361080749874560620610117609624087019738642700049721279177321003884920558316148301206819017504393697197119981167259072311589132294651180884754735384749713904768365888148829317521719145884229109697363595670997454034542837369675928155487228348612259164712456937600439423875733682663650092901611378132070879457962789798254415052909847161429859985655271484435302291454024256266950676109765330164637565429765246243712255957003805596428333663732045739003193024861179064252518176413335123723948496189197868772090592866860435682586661696279315268107196772428510683265721945744175629277031985586980683249933786059887157824441186277836418693693646602965806079731067212214122674228004558030139787082368369597437068616073698815026963979121723049804431573195059310857630930311526950141336150888913959083086960943932889640665873865258875377125357677578486450156380940351886083391237613111748014229246307532594197892803151754202426917875467153164097078100643902155263339119376514130157504826307383196356641554907915826519659313459408308364870253129184091604788299231376300041184359027687974991137603637923132702241619170198125341993162543889577929414306951367133675004921039282650420204425620215846420792913051073030941227131728435313078472614159213281101697956735816094813093375867829087832567989606792212660196756516663456112260400963157257735797837619892655077670931797820843149018472465776766223706314219010885891088308216757166607152143832981398708228680883759107413082895512509796357774841377562438289804757077600259079378741951772263860027994612942627595987336792140769799281228253000376360193168187990958017711492413480782005738737929528912574447522884872561929569590099833186060843113576036683755332460483188652396404758379681836281880982041268512160203503289971541511722023860430437132313935048132123609310594804545794764401912807578958232757907772764393694398585357776448264699588188017906840695529689404080970179080940695898675106763801448478870894815889196089272329606673817682001081127051144336752295745903792325195525217344344391534870092226281028061680624826215923742717044469199411391627475374075515189993393270624792865470541560284483158377606071006848071857986602463269262259015269469599395514362597423618597377803300020466153684747618731729690454750502397817628796167546601541149564508654092217708464147887131270131060397309472520751027293361247519426680282541683260335399435036828489482839689964980424876605944607323666409900908048635376573388109594483571776584623650337398193443780313495091463797608247720131391918003349609672936697803618175431899161902105498436523359566823631693498856969520117581289549226637407910917913417716585647313809487393812398641910112542990665979486938056659848551715535299885600104869296421390385741231160429320072086029462137414376022827602955194013289408801504927441369637894151417775309059797988449426995859394632470605255021225884737418703547910471571137115935471510945522343218892854711319957671483904666986898813484679529158225522946411257376763424041092207479973865505395300565575167959771244456748879058166159171867995361931280588193285223783160180675315157484631979052780174071774639962367620426487857845947118363442650813267295149053665698362588555660389338828872545061678289477040041832930961968878858800358089182564113412323791115100979446366282022414223554030492877977755571392020311165214928880061432742366173883662928912466919670887360763831504919449569278603653017729099145415127521316784962627797265999116736592340412641311441251959494058389898373410798585032966270320328483646508480555791983487208059506065632156722135229911830391216183886143496289366459374026634480102702179742260125537246675557651641821769393238087064708915162516769688900645130421491987329327240241958196270741602523461372067512337412873215898686435926538171313912616303615265786453846928679524257755484343123213196298171668607172058526469016649117532796970053393506458068870442362278406807396428819343203651213406770238379351195306594607827433447922562459098328850156668799705302901508573509300490715930539109055929930373978791085534235563016234027878907800662977629493910184925928348357315709857474305217175369373034062082847924543994088739171543577949115467490459841775764464265586037681574815018771090905719439194349378499521098639844266621765036675842994483731269218462327050002894468372752637556217166010448520249831200824512768823104368075693729708375355108813182664454748456116999003516678167310138528684938230599869236354095229666122172589495838207488296028589128376598849092227805787748413618192477544463774273209229665153805269814201477278442709110471750307210510463119489650415405404855708697403158769795544637216803091338641219736152178639721276442209164432595643822512529444420670958811747234630733222806077420210312077085126834238990738783346306501584278892387315704887849088374402000625752386512249311384816169135431797077235211116548938139158808778006191858232926200068006686451461827815226754263891824887723084634907066411184397636745095086950891810039035242596952665325873059570464695179937879316667805960275707042564866164820431438063709061162782337573410083594107655870593157178698024309659865264471519134623896442355359401224304428212622233275853677851426581237883009999915538388813106248772061436791504167729017749329172755967933353205319553552886130729703210205027609967962935868298651259007318649849029840147529693228910652782314262557608520725391704256178663502065498778650733928899093233089626836069028721453683760421609296319732007683857362147475425022608025882744525821768272993592452567588267159140877690536423223730498977675415312354219902718097932998990164516846451452763809450479563201048166572082449242071896850136672715146800829997210321799702332034992748260761732451830473285958335125763875494666671900356679103963977836044542098214387346714421168249439010044501277389580290890991024511508659354979509231831469607024402617430982458205329427562840011462804804463903845914742227467543477532365688732482083950324745367448064652972969435098324526223792366701856236124131430004902887772750497306567966285210795627153936610847318044143234924027716379774282195375471857672756657426279805574570333174222821017966427359611724943711459579670696703349798368151788397241014546716223326762512991064169285475721767422819011967406578890226423530972645204433327967688267883408579808362174701243092327519009071071814426390724826562446676802636837564558672604025791117958542803013982935707515469018104766700972436238764088033936741193794630191715941943067753736290753216432808404627700003458564775796479527595201703030503398017456810730696150720060478726329320987680997510294895006671432494042144216414755204068046849241894480507554608760884974993558935668818439280867514796646491535166473058812640447435479265419146182241250193742066650312559946081454241878276909272914110833833083558938878367893175648606596095123608618866795300299051819077706154708417802973979573181456229544332602864491352025689345366266034458862549511343322826699460323294543412899475262996335958799612296944695258565146267730603323370168147206180790334353003665721819660754640045629427127130648899883003764926817418865736057316036573115966209180766267129612680039358806401403146039202577308900646070285766269558148292197790102263159155069110672049642910371246797599820058072174684518160737102898901143743512612528250221432291849175695601750697669378246777594414273335752132756496574315237880258387797102885060702624346229148774897299100524202907644572001725097657446526101020710687905090354266500744851050722435746114551664256528720310574973552218798246100192480134417418514587281114785507449898422148133095400310874844964833076275032399483786244423950019113659047889105248400579998411736552074311753178990240765057986662772816547983361402060894522799506469634864485242499549478890700178847592110581872784492216553926439185524855529342828875726111700556525153462976546280159076672555346136619942654918849844909794033628206667443015446612724321908493987115425145170752169931891220645308359315515128681599758923430351075463583236414253798826418614896453762193592958373990584149842790407054316070029715885586893042915506832535170093151023845382329664825495788496260105029208009434920876179940258217997679459697882912528069462037876026870397903306828377682231612752341596563990573446792936939652670184843974731073748436604802338769214376130074193804677962388733160231426157229312201503302442826740002693001151209210611830749521472092000886974692192225043519563961762491848116807775280587632418023481846754713567891989200636601245553383565721486801034537231702634349848054777617652279543135086809683128787944769699355297597335067765186090048812026883045208794286082865638678312899350351166945492443878535529664003743399328423492698074802700732172246061019800060951816897194458145515452725297161192154040954502521476860348969229981855908556482801544499467559087916540366638681847934451668248984145015146651260536890789911643744482924398968213524193240099825179478240520392877664702531707533624445844693850739957517762708981163143161123650729736954140208660288054189543976061465857328413490316852267097211954619102721872621951185589953249608944064570044909523526504389164424528331554260341727425442193685400579581836609917381388763868037591691156468490889229528551169989571898462075440562944557541998287273248478496009092619629427431318593262779780289321935085017554532046912467458466133185697494450245236079573957486420551544784309070975777811817322855131289624727903520055047973737766496779645772452461046730115726317700847212531850424132669515620312487303445935613573989964831321580593580169288402103803116428636050332447780713267718370893814244049813570321742318637077011965609603772440199629202959836331462205675167221214605168153035205933038073391349346234061390529585616794989610505335388961412686348918632199975188590461237202964263596452214606017837760003951439543229047361497963016960292023460518418008800937282634277415917443803191600214241838645040499933218473460455803454570122075416198910176644327596833736527585509629386452580900076835208392447582324146349709339512923412827750167367926359707038014058911403925846499331424789656546386524282206648209387279164827451742176915544882598526331994225497372579911912617420968230203932407927437141829174183782915412675452529685229985447633292633648152044703842421285579440199562605487253705766467876956604337544632837866169995363533042283302642411220896141675505711233610049504701807363933223062714922201815344575070761245098897120437885928948617556234111255667163978674339499492959991691934293491852946337478642618444708354509735179545502491725285229684023811451338269129210445107539346973935133780379728771037968322150255273474887909210641886488081233471374025521310068220032447663224012858222003412006790917369805558983305051897023138551894385513209887078410955032660750195081377440720470761555437794153678920062453151754992884325059488380730108134617187740038053059492592624846342662473062395944123875424873662519512925569100603677873732748680568794957371174796569233714628968219400923790927571927657521426476706690513235500558344565794217475124662420782326532469627713370332654050526566518550882524846854857743163302758254509744009067529287797161969956736585246784286889150793905451980968031145242554613320359236420502562934935119943308117893171209249654418342159394753254415484259866727514281083134081290172112858923473728280561777995114968921328323276684505559331952852851161409809628665429196267570912749336710963247385074263829853000028895927206727066856116426465177522883216321267461646693047225185064358086795155716923328651011398657434629106036312164672908228648162364919429065258817768170048821409856734022994764892880169639567041098290275562761897314294872149655063064543291608063434640371248563917290202997208736016476672676659572439494546881544442300683907912850807676541876820531815410363251439013696214399348612404266100446350411230407900990857461900154880047036330496769407374962106860658312456533381209012928511884740495589565357562181137399998669883936883117723650531791247298893488388891801679585987055080226113715967466286228136815390458935747950571540323529018656235537785505880796462634960349498170612539927192470185051165995090623534869457277950079968706389444704712578025515845570005230244078687180700708154313475745859209862505482756982468796403027729355770689610519951723304569747749222171007540184556919617491652916400671282041306792347512952483369717618415499587131158987808397576581345616992269164932035578402291021098615392036154184095073026713864555849884738297523035769804916494376913110043324073887351491150183438136038094233590384733324274559617250655036854168746712146647465678745333686182550182270142915936822438903926878335867068628507711404174380922440838256545077910635971515702296141249662470090109726659644533244088807326898900954732217870663651204900544612890719502009260832639582221555243396776048501453063653260892248203052563081771824551178979077800159786427656276998957142132533599404697979601747410548073407109209248657303733732670899075633522374117460675280224914362176362654686855287050865523162454346758887888468241888651129876295246176921140532042617492005979182684118036224519287371532309153381143502705543019184523801838278370298750494594477588011878055182673534080167665076326018852205043860939655802129846210317802936103481368084240375555579437721678686079763773568651291104482655708032519830266545562891287058330955590284482866147053230072720438367402400226273809224248269673515107412640297654045667001165119383332767464105865357455272696603197812172410077238401953605726952584445115194377792149666728703126085583099495649164349457464507056740443691987299171950169522671535056359663477081760888777198613381407643974942056917969362247923178174973954970724366213689212011202975272648569873463604742605199391213100043679306714575669118176226123901677482842810055492591109000118991368316026867563823150528176090295395400053881548919315848670707489514351791054091791376009044108755215352147465385065697987439663427225517301709278184380834036272922557421957858668569562008815235008734625157185423667334696999972926362035507607755570160186419735545371281499782181277130224330745942541866122943927825207258782660036715656140732654106054400264495844097582354286378791070360280937033927290163072239178768036518287480563092238468619865845280154233511484461987180798673760611940706896188643213380762742291457434944402766090226127842342816913816432349339574366067217095091208254088347273774288810214861474912506748428932452049309369051510528124600477617472566314271865476856862288763727220813492944608138293990910682234568357022143402783576007779933565876048003715590062435604770667389331902490675451861344976394228255938961094241001220576157818983354533901727574288100058294065815235698485913483515544520295972965994132551918158569804255782559358540140058721850711543518055260203233304388959569216947679150936258225640926352573336884100327343153011932381994186023326635602693165903918805516485994277869387020866826271501448812387538604180941744215983837552018228389932519008371483009135459508161028459516421119919490900116814723374690448588940734569204456729136769361297848138119273043342763910605721957503861251602668157388193489955942869665070315204445650583913729383579972860058155861672256699704114941553114798042460522032971626605529599206363005214386469444235006442279620779336567774793418986247296320412727534703845611112340611357417794942945866300032387462754131083525338322879787986581804027067456487306531355489561754888271587828855127235500136543176384644410171887487579853759236591418391351810976538945419022667750097475045196298884750868948816383575459257677648682407463530980735806563741571120280641601567779378939390296316229527244712189679380987514716434390204602563042232179727238057691731946824964118668555006263247901016032250315093496552436218351721350500339730528804397681930435761648970503085711297596100250098807205511553224751285544465837877993216525692536513878542855596458242543167750422162782161112655205012975733894533767321346650850357671006243294158104417904106005511944257886105641803643420781961189040512070543134087388100366133928071662870821826202744102514781156706226174695738190481132838284103987981438155781009866380664034645934726127961020554111739058861521765357233290154444348868013247525711247149364760870679179257554136980551409929782504913094314581890921497639634522885721540028837576812777998409437387632224149841535543113775215957758415295189299958653459722606254192262383880727517583311611045925632476166197499779966560695134196202770262573415802180939619246179052605705943769434293365570884219394863572161262776965878408938076420666841764878776418795165006901568536299165432911293549167727934833370919373723357398346915237973654915082974194374118132747240829339753345187032608569545250930667410670517389574057744491637004428777571026024745618583034285507041796578583188572531323111962751695445731556491676823957857396765126253059426328605775763904865688381543397885909350793536159137809804865205098177196828151121765581878994283660961890345600084872032715982206159937699878333302096405288007869841204935932571178766356472181492624305349011596645480524567011877562876374223321970083901767216446522097120525302341017520796759992363496336967012412412941840671841661367619624482920284500910251120809211539738641915278583330771184566419041288616867726258819639647006955797386652669938743197760465409073702576595929021115797555013407828932901277692998547404765032960715367056171931257428547969545396901231399417921332653901423790242387428455357775964509884980095096982707122184817823094986653660235472221287184806929655369177314660741992176537251384476731482978280753368815135539411370721591210817314418835598825689973311470618866060046405767853582680322276179104579333510976598490424396140868292766737062989158730831784165253295852086858929569508183410762153687569470600176388139221676332414664866163669547481540283292496420717783278015471260004410059686217553565348386103948145527814584092133391893704567619539961484879215585543046782906997727808233502862064946970489037441088534988075510441145427744982294566972570581976980822143744517210926651245379494136466660724279405598503041845689540787413171014883138715950998962565074072389128117191260234446612635822404406940391719340006142776066800976967638262836707428453611408390393257568448756835131069776430010239326720077541384292878385315162438209411631746788691165795807280830733117025789137836074367355486687965243430545089818274325080835751005961397473127759833954203908732778328060111240964026291946446436135421878257998290180676090036628861686757790089928224811884201209286954036019111681076018560667660341394977952120086081149906523897643310814297306354381453111118710255482675649500812082659153638122160607231266783287205973295429028301185833585500612015947807330593790845907006931646463494857159765019288333359659332711531360500320935461391266860296937111015734072630004056972635285569756937461536772960138883513612976206634908939363188662553832263212850269442630849151360773178425680577435619177717436511664616630524799466235340841820070838595215640003361023114332848089755168173788519990202411984713826556840760305590472935938305182741737413128634956304857463779736811807886963085502073682318927093292197827378509559145605324907959595310918860192524803564574723763082884724194832711221038631001434847151156189833799303514955312900667615966158274458553778498449507254098726559152314614016478228084755651405773992088359649142986793899951654878773161162764429935119606271975400136448847911131516382941264354572377658582552260257429857940412901038457434325709303114260043203276215310439985498787595520091765493755723346095851759781151930482735797276724069515102356290284050792634141897655501628458012843935142313091533928380675613969611748309259627366158776102392470668721751323965865383316369472263159702577498325319353266425702278753926639311153949186344783388049009413730456988068106847919378101413727547951451852457018975077193122862462791642057974523433488788791669778855146864609556917287094319147823215688064077129213671105926595874990585809403911755335618868143801400672599946651692089651455761952001906857315876445568288487505600369907763755468034642900413746438489443200785639735146015222306874168804577108798017256583117087657498468288875946428206350475427439555949067200153012550354858505305380685246732710729339110430842980762555999317776075882498016771918566573885735843260335718174463328280056869854570696778362591849418823097368369209325525945698888760382630251845465137221083805842491461752277005151146268710790789603264526466312006428725033897663453730574230363277319040204268658863662529670169210614583525664290712570390611023434339909879754564814994546354422470235226553075125576988469726737772567495838754313218042143432047642258079575297933664517388579129145570387179779910824189238202426484370150403719304192987835142219662879636331313588198089553979279101777073725304755137659934960587937466544495126714603068508738213107891369062804725044553967970118862523922270081796559304534753454182237605463938416004896709711444696083879031418042173762729212925514849051897248214037308564558049093968326021205802019671048798313642975253777512911921171029071515891760285746023869096126448235162939051659438876376653199692349087000002871576114926487881421863835103805904981586635575946009866542069031643950320946757095884380872635956216025540873851669795027249364569178530387140661427848908424791042906658124898061969427108410705912838434292552404861666613519188043900404162863362871140300659968971235005775388405113783941687465796691999268601305246847448578417729843488859213862487517135041032375788096527442611978898033537731606239489079529776282695569366279765709654765874412393253512062303116678758329567340133707553751785575224569000733279737719625003865102327782298000676125199808504827660555984105186376144697879224994136912811228506316386370124325629226411938089557672944311985253043371773184111169465991858616046990885685283499041729585078557509478453050630051252057068967776236730860292929574976161182954826577084107410781737203238468654494043491645971518197872932576255180326018522461019397575685816635923364003148928906848795635442325683247252439807388915716664740571250505145033249726682808084357818423532951534861315071765862767301867024735455592992084364505236876526801793436718760680367437695399863537740181423209630387759646088154068765723223125773241794186495279789770404126723940214290406854561043462402374512574999999562644351916488839390158718115686664618938359930656651943756272735694142511313190485111886214544661531429615178013323826404319646372159287004338454602504096605402343572878717824690959470575582441319046358920211270812697263251749473266967615712337851465996922847813795402504328307765386340104367747790826382936849064841696942958981456351663964858601594373595841985258951932042539083070334898046688242654133778467261554396427045242496086373401870950635790412179525195614357756619716471275311673897554491188710504065427619059113150085247560068824725277025286673375175810006651604218117424215913463497809649346857402254279306507313974483980306688614967197057175439021288240948264840898962696328274569107633467790294452278806547578381140990501290276645990877478536111517586592291621467600101320561458402731260953349010983247734746134196841643989136466784059323232622243157190419123313834680753262028012664429881350175456700575205416038816052337274232606157620999010952630932396378731502490240416727675007049596342756794280778981567956874023722246398564475269050528569476327769269491996590270864912128306656161814856309631161633205531369547686311545544545677846925874464396502143386238770101756093785042547054533145335032390171316605407615770023330409445234700095222623291006844341653452016834505814142831627286650997578061374886902369103568299300789898326148119527409130400325733616537500321649151109104400851410825127453818757383040036839049551251617612305544825219948801561904480241735316253625804324602387206984774710832491835830331465432334569315394420788170741209522246051968689408195350971892209282052403327620197938734606360371494952094187936106552441508018941410208802387352676994586633614745563075753746777440576505348758610824217701315225374188189196373049376079058850505843217310283170594331903602583984401778065372794505760057639066249097056498113607473463820054859697114237864072482530302229632190144380834791910496677021185531129721358249960728192864272610316385571308877083676340828896886586123439906262284535529295226015993985691785115913141472684464327389863206218879204402660992021545028619456977991582235023939191700011996867774782373045248848962766524297452973198498397581289006715184299244918668210613841166296627978801350358797363135396272951859992580070133746880126302262615871769198813385810500269005100339978266200734512445621949035722885443403891314390295023131387271766308939603024602458139514998888654113140669662657034672214853926085760728115901506025882584733161495942817092520239427069009993895634762819430048824888590658669638164566147790096146432745652842395811390610040925953405394755057271508933478392542469162178046034180308375976177329271623538067522589404870114049956113454694763639948710977877446220322108576719189181673973343534322830301012830935769468289868630186833743506292138758758834251297596845764243615920213172057251277102623104302319640238906741628912587922933509914277599677746966450737721218017517226635858602971117785137617748556564727618371850583632545416271256645585917607903649724170131028436600711962908696902288194359688661986258318148661143283121904511616548902710496595765182659570656850417627851718239294262391509442497750425420086729914157974294389809284697377550308906065942626509484256225082782909461245593799400966322917182879258750090206090179786128130377422672264613645199877080820568651453654597389107643752287504973160295164511685935029425649349171964961897408954820319885711868499083204662242312864388585428605504822664937148240440175487727275028291354039514451710156378526452984308131884791131224151262200195206827994009007616907158801342114958098414390473766017841047171384184926477291139166216263302473078913546441391382029932017411455886695414664307200306653860707092433185130002190402954895717060231150259335640127535993216209082942653734396116107393304510812345185330446556436911427166230257351725724478990199155008756727030630274864314379364747940537798716397848372835677033235413102320302125561254278376923245164839892347754993408355620080799261177246821130988822440424405730781054477077965731955288218219927335534316443298840013313323897619460210760097219735885501670236008249350472866826128372345575142443439051460134982355540433130725875565660455239710549011745821656647277192822669602012495491163637390620555849975339445708445321284648167450855069439850110136158633007756125514142710292408659326687655751377302130095032932013255703100285122392565139435344074780299360063058910083469950528626383995350481108185460358755272558778840339178206832101229645024227344827678916578716519756681751780687565052154886653666948439489971690789611089231809503328980309205908843005159514857525685584517917273644641069671896910240323364981589547161468133053291385626617948313509530283032230006645567323411196462254328917429670834864820429760005979579602385433774350825882621441721631849989971336218634554049086871844479586037993260112971004972224256840768195774792052863213992007208282049805787387865996921865420298421911096346891840107935311986933932651150852256228893530254679289282793518188655334802149916870240261962717667919411585189266260471955726483904798962011109624343589359828323584697626407607600035421197800522066360110307480257934445025236160957427695696223693844733323716724907585920895756369644063551404165948448650403547314481469487277540674424754284577082221895638437379479971537363357083187510625496603628906437568581737774341020354363680839578148836715524719685592258247304799610459344728642430092792394574530983777693646856010881963036971149802361345841724108259330979088645926922284608094051372684618115754721488431718356909014707492665818389367757117024983542613147247698751720739675809522586164885768387151800928243839907946091017318992187198016112473406885775376310366385265409757566260160073951819405468284930382493257134342424943294748859450063341835240213256461022402976976608985323461937918317210295212939463218370739354023749388002398075614645107706877315979734437443011924825973242844509993665094777640177149872150174345273979598306450960963115778265369743402956917291374237606650432381234429009290440467605086261359066003529405243848695228169535868241501690688700171007351144028446248138675538115237843638187662707662382438368006845368239060892058341870459175576990838372907433957965512794508294799923297010631662196888406088127937190532114095365877608782913151428610053786151637935416638547578229039691105211609911127067757899877483235564115885807146871173071362916083129180194916528164563422296849865645750643376286459329089938446703474109463273015708187630123129479707662383478827497964831525342128452148064996528859788412059277309216649875537828114033734760048477213224533622758514753208227864658791810893781971225822498903023432189175813679173756723878803751112715586097918468600324383462338358280953999384181041451396890756097780739621666174588123681767486204704353255221968436857466008383490986637742550744727945251254235401889105687318183916465082233706773306732076072192722997998202978796393390113451295480667888871973059479236218732921715775916149850500406015249616257598230824152111924978803221474571390359920649398467775871726145916079036632315432861955672805817019643419944638680189385776628262184049829788656861307681728198540090137771180455198575409582617694226037962135347103938366457269003962170981469136933107890411608009183002417917401636559921743554832122528276447753891337434986912489941420078151908693031518763579483628878145881941451672027213825961761029966543258538883790515836345732699881629138362609820376222865473454115018803623295421620131302564216572955912775128673903908237973616917929782267018940106654232301946500147591858432241198161724059743410048343337355054984133238721898382132869585199208124214173603022682650271116004681441476185784442936379272430213271156377081160872305014865479161298454874007546256802527103655940572810881851831875304979354932444442720139575014703013845776763023367842726813906690662844300002384184572512406342430704726868026606917903750901937061387184006911052588061058968270345075251353255953475672668432713678920913942856656881685472471891565325114795488458619499706370035095053377229355846145748315238073231034941793098509686182869596815009808981906640764532125108633609026583587069391044315628913151728951546070808000081065894972995792242399405672719405786072732548767324932443521919751356096056355965530535005090611654067609273869110083874223871446088382174511827562214531877403190966411087815825398785790215732805155338853840992497122700118214614832197056989269183987504767023252894890414808052035078848012070447742929527592394117803762791338918336553152173763291513620323668340295437556261011230761246537685392029883854702298912336856046838622242485043351447447935871395309455348674982404816912461505422412931099723745474692148913939371641124616388703725168872820023791312032238766531341400773310304946120117539566999295155178686684377499209475956639536681204531966464039296176112559726776504882940346651749226995601910110404119077067383380816877222204686068568861649572747259346837858317023785643037606337610745908207764281466336278256124813464804049717814512392153460391272210611615080520398434239587591804230218172956186214016135298257919818673562578381065750075188166293129004720735253084945619744974608371012380705033415680952615384496857077155050027688056282302908292702006134865643959542015915403519146702499932338605109183253292945336779025828269248172103859001568493839751425563361983581321571645530546255411621406616093938292533451079456958336052950457419416505764929144976731745681989552116816001698072789384426920818507011346729636245404950847963645941183264775652099415914237213528485777961864427505871284340862099743383117805359805548838131976034021287885753511015241699383673111856125453373486076779339880586848374377838429976769034048123212701955881947773134757147235897997026820563128422206925602297228284949320777027020420628017726204943728001813685150952575498472081069047193771665461112186891822268380156035582339748973201432745730892794276098154026737356748148934679034826720754846494860770474055208433668393166590760757846816580546706127431755403197316918895086469025505109114831623163637520911846681755897588254144187538727527804067426981986952633804488651281403132425075258354352772291488722287857314315096825104386571387961749900007253929137483584979568733374200688464415648002237204463238093235041648565782603550352377025537244561600667362693369570263056346641745035655039431553673559182265538039657983917533419246247393380272019128527331022789532429194050689143867435445245185366399478421881704550335592552082531395068741086366134016707857242393512491841474252832069251367654278391526870535171649564787181427788949796599003527116132680437886106329785463924684267709899509240991640134189022469980167524060351963556814843469162317031627260557063368379078434265772877036819708307135989586635929879312554313522473593820239726182923759572387853810957480678062942979411405856039836953932915647159527018368366305733183862845453340451868999796173526779498895172886995699069505837333766740101512221451704744680864461440132464611769584679666511384946646764969605821614447085429253461265568413593693635542707337023631803075036837889035025379934917600341624377703897687724569955878380089204336838610840707368651134231119405977296936477356892294575613444325073073814975743883517908469623283220828183769073573416175690560473083765095029211195807026057038071841165277942284216992636226102600821273119204202918287558598401872889386572563170471562012040541109609236860446803694863944873513228086891857539268328313959806768736940756427466188726422199819680595754113102248608755763146021077522764018263992022690776971197260098855087281344715622802328611819983161676401919981856574382654174784498554013477342241215363176118167947128152495276071759822820823401609497522014600671439452418873107230692702506321566212465006146018770701249351836247940301061605196055932736669276183475346333186855130749553476351659563745059674978021175131629573047070764497400628732174097520294388027768685838860709219394926697291564358262722497317463209103021407165728462544858946308541851076108716477866604315455612115767164401954947160156187190139658647207416407174573696134528284174771496907618495438038373357006349540371076938157359917457374831601308981929262695928465594430083555381154705269013004935259039798256051185629445958293594380580829472480829009746611269108370005579726807578099452603602206179623365481921339152441582637436156392416901791364901018450687143282336785584280403965837578524654945245575105811019617883998330413135855681816376697395870779752262452210082079797882207834959392085945327548932484364931745315904436468628621230150586615517471844120204466440448677182646689187408997007776718774252266757208643997062038274091315912171593988265680877718066151846170915460784782126474753378119121944884147026368481896348203639863539120992151345903704677889730570647730568304298196232313477926433852053467065176344097412999386264696460933102574062221275194245532177463099070364178827332965694759276312806717393219928637804460954544273874674071505481167906115142926880164442716562699865406187455992832039620825894864825217209461181467178256933121681895992721233705493814695424074257401943333920131523462303305283247712909036838770041093644757460771806993742475215784733628730420993185503838494081985325166061992884998636110364134675811908166616945799753134563475391600407509261357678053783090607049613260992911558172954925627036729550909641833164688539861853460849644607381913870012162114126344254892920015146945100858053300299309570317909848190841032599706791448113396786760114723340494051638526952648113468147631505996035639187393015064207138479500485489588734119435869828911922441950106245606517044283206934351841255748210113413527740814441571422149240326406970553532779958010887329083696600679459237491354623957300669292725873587268420229296287217513805931785570710659808313912199156926356786202209302010545450900199313448934978243410817762581991894698822508394585866059407553459387182906831908957379282837897064373238782165526034718875409985470351774571328467501331908758696765063727025590643999774703386051868464343130573708396045554110779529413090992522236712686163192900732927596694980777168876573047388570167344345539666529486307612895132235840324142201245354940257713753564543956864904575025219946541056690336462147890208432082469772982019734944432603730016182257972233348215252610310229394015728668542950708286723688719716510399184338715533114365267690836232742294013647725209145031755081980672008886009974068526326637710611910144587366712356198653094370296172989711832477639111135184163925586503376641942120067087776873805407444898403797236460548121727664662690691704779219178931289595984342263676193777544920898735925404007131023468958866030874384475904619849172175746406395009687944493760063267257009101446064250368590666708371754570777711843511513269045250795514768022846448036444013726104007498249412553774266082484400694079396628714757362514356779573433993146674364621672874149277494596471184799387927406842890971516668572918839708821793620830483881333802817548226269945073610906939169545450942020076750895272231980054891987623840896504611316706281140268020667951895432205321921259199430484821105908858591756335991656990711626791632714379766655344372193384835441642712930186605360745591905401817420160694358699002511766100919468915039883702064230182073787667132465903374892757500806167516906324860698363943819196887440246285301081513956335499750382809439818680518760303051236344584517525956803054222526615096616860212696819842218119432165661177141390837276076579801974457603004508334523103777448473066084797340896474590670011245538964721388462490429585114114715028304601198332032458372940509634336311696438931525129728311589770191882001159219280581329061242472693187294931610896121501444486497080002201309954170560127755220095502756194986486763929387528376948006103073965621567416525417039669795381337571159088777428109248515427971739176673796348845648884501921208273574019622056339461891403019615775306632329265081701836738636397072370874602246743526563315374641421437774138229133529866054665595510120938342029133125602457977064204602067141708369277030093478690641114735780014629678952405233709211543053426408509063615688980013177788695744894134824077938891676663040058740577537423963989741218930227511413566623509754400192402927405872951425810075679730154105398522496046371805775165291694914969053813245599661267246528250978071013424141793069952277379359074343267410649889539260253899268006900368758540013371115184623858754661775392530515316371180605742468561021838364248785014709809686584275730350437820649025411978896300277321758483301474097720384588980424404817410268113564360527527727160952639207614657162699832795157410092242594861467876010073532369847950027067056442514059194189272975320411935343326290430625613509127994634701019948628649955447926313156643203722989932911937850584561532769026814168129838924091739007040655660396460967084333791884545244412110956839912286527582808489609408340260422862485514089394742738029429173673559255094131614156938172097336946203857975731677574237417073512541281593708128726922171511642898763530187079113704941689054067955779182556022585089141531066429137627711578838035869060031791427650757095988516774097861553590399242887550759947832228319752421461425582577843445386168408916047486735764892689885555779532172311085907685063630397857937658275407007374261357110605438499718635283605628304368672551932778211191756390327682595734475288579067435154936884227220217268212646439278834552957984174741946060331358153650381065276625827251850065927324793721885909764783337639872535734741150325845408876181507563732430355483414231583123826744194327876074612783385961836368076865804981547387513450377934518731258243380530065945303743111908080493728000736476096030772257614825951737179352818176002588003544581279940574107223839415330693093565469636325889743131992522186625025400154740370140383242827293351198224391745091878436884787116407625128265467333664214270935435513543185833196944273386315282918972082182069099640438000862123552863189320548379496128765986362084566308716655362284451335208159055198775098566725972792430891855292001049326688226060489288890477508619143724750630997194153524728501246350326879446750736599238859716772680496257492979946764929227213518851940709211527795845797900911829338996213445582340933955259473346344639774996393641378899387738623040087861558612417566241182250442602511916915048350025171567724081578864465898193908644824253134410299485847509622615577910722526782858984859077093829885463325460839279669614966507768266881287012480425739236300483819415407041889684676803407334344488932754510994544733527599877266878406288942059636270560236015221553306961605911820512835853501928073071339792264989397961675158520430982559459854956480716835037319029500357761967690767036817570873677140177190717911967492572555756124540127445299687348085465316794202663237528972396171425497767048590478156369318211915502206233194149029598168958023904363831088652627676689889784118291091850455945196546766492360601353474664984460104827755103940805799488542032575813035815295978561651089657505073819193025385886624223218379744188339206002300915934403647032705630630489386618125541740729835502533510878667880392311581236307443127930477555566432835159275780272968984880694881377320530571467307055201871844312090000593862476278939899479692584650494338874631697789721859853016069544142596200751512829561178336398335593187521744964522945083534889631645174710103651934417261215127675621154211096527133583092323110233204935098744687701962845988971771697168755640877793226836140104859627810741713887944826678618199135316245106735467771466142583641421200186614247169523672868189372693065029653271652047251894006782304187127656028359383906522411663441307476433230579201128391723495195526292362724620826091868109388334253624942851286783722131646880481706832655210742641078263429610328056770954402679778949711531116247138346106891014440167715887926018852996738522404103021703799562718132576444708765718151620819540687147980944169124397627713004130828510280514479252526655216713585357324974503360050067960512071609801220130155975285501743437753920883118665656116449214226854210370440805379973965433495694231647539299138460031169568883281865623988196756997364697763283379861334209723970062907769460739926114996284492516076420490222180586871900081374998248559947137367195002349307988344721809818390241248130699201368990288502047512306790650807178454007693158728187703804711942141078951401384165921920610712348644947540101040288670747159148625773744510348361968584976891818274197716136428936724135473570689294223660722540799914162014320117724875612124518808205794548294278420770388429672556912149617681833457326787813667364109272455611922207013887044166227061174529679295892961898882286056422234046430010061733053696602326834758808850930001436805207736406674004657014696101681040442261833944522721144612223557674369718939413894181113732294462887702003329016511181523823447688961560062471098062345315879809133998447092883718595741644825349231365372522071006696174691036375660624177591477192389107608486495272540298455632582877737239561700582376210776694866315524427038712279753729340872910653755891417692313058289657095967677018929058979812769538730088605449166344858803229774123535158912304323721951453315256830882611138563755937376331548311844373998686452810144311771661180623621029308023805026123504620624714974994151618447138113557250021814062078858232339041050244704424603716629060553902314207175470876949725598465386715580245276858086862284653128951420269917532178452438508112391014610662382389364720958430728648525862951228773134756391512426671197511484671935667877954030276978765734651334200756442847412433259579310759757162758550818731817730255213692436507667625445829309370896708456265556719743586192453700822082067309580253910243078926620383853558573152999360499828457099546170813594364797451919954508828331364550794749655970202731968955335659973799033068788717769460852807495039724785478746822765163567468404753953920995563737452633069126986000396026449311418034435750098797674750262023101909883902901337925231794455613116002878200667319244681703362605439713794191877306106199507525562183794512234759396525570911416885989944820689734806770106546957890924395123417023084340520146831105871393052315288771341866807502912019909828423853688827810761066215861469340839758691649256545984857498723131565918899202012954904101111776615167673163846813385264819099807013749365643975750632471817467301035167292384199408771849365840189701129831705155601510816037214580318938415288322568441526569303411557855188204610440283571958194057470120206422287903277846399973287287257831073046066267682017590567856192231212662778258287527754359302859476576909810421846447164466074028503011485329238508992801591074621788938762752577441670766919291048469297683901483796367834555303892772763097623343567641448890278805852951523745658514361781497861143158234846276574336204899832667881927832242572361365183849345337156212916943218726048108042092480556202714493498117956363312947525944462489238760586411150692246521811630940720354658925328086219106002156101194841396283185462879113720599714477885200176856738430347587258896995997615410831165313351215787458789904523945198426786512609452918943346658781917346595756748777831383156539133993664482106290958737540363113346141303138016236405135255244694432733465208144815185852254361223919998631127017121151505357230948316730859657403832989934574108325995923450645529265432202227705930423661699501344494789109285495623588274929877676715082248206412524992667209759276485749168037895661851812083297894052877289831291344609325735969257003799208977642490894468021739869387662828866872062217709470642177371005747656417794594778031412768710868300442535124253841838312153936694874024154190585969900999339572560388148578145399874316177693648581911215622536276129963857616526236573068416586639472315699250980835226124198665790867487880250637887069557535843713903740785332208654809631287075305300916896218786722723909617828631217564754664330796655748612601106951186832121382538687086265468366097588294005034020674430789382067335050783612747814971859587121279237786904622900987555261230643155527055330649156127908585816042816527577026945523974864771381576931528638623692075732190380387234125800435608781954649710548088585431636185844446771041732901941123450588070786148902770902724541171059535815779099212013740836026776910993061309324466926988377154566158920046362589416949741189788350784770854050996974142931267058176412883141553024342201924284301949168509115857321723516877392447615612135379130280581569381966679045591098057007512983421820296636400852799365403856521825128508547797046742328193077397352391223482313542113928291549363497704762582105956254498710091187957929090618923194237931982244169619144236952436225058552847615314352598685715821535912054334435421391542356957675398947664503448601041756757003093522080514204253067717858312249777344980030083768412096507128759396365527167493077396163647855785944201213438998593904891840567208526455976068672926008019223602535401748768546756661809048663215873821171585987353122946782910994442264349876858680382083222270229291372078634438795398754485179087655789852035066760307273214266501598766142097535701678024582961683138854502719482139197258511925733364884985794594927896528891803220468289644351795728861902871791229630887252363507632495176868132383589825211828483629990203604250900140778690924622853179804546297245542085373533605993595898386148313937063762998901763991839150606559426595747031896602417623371742060205046408190087429128564071843002725560692865950606953561059117451603036076673586109772561920794734867898711394858152630898561786118018555497363429163101450800641774353783268467676779954700820605301440804161435252994675793459667984705253211436901139533948342418151412064728000885723065973532028391159747575906386793522578816393180294365250689642749105151134378036261784989292547572096001093142289735511126243307069407091947078347237073047264381438285424708575453816577871976590312263784469495958531764061272330492479702762785741927756594558465400862554849334832984387200615822822899507953066106638845462079376045625720292808712530950833632577526742356261131643577214858736686796099844511797043738340575622291874101661182193248144896506073851704155631072444098385470093415297772367486864994956650427132597219084493252245956141990926496594472103076580229964481781300703156834622690233144916792502134779134118026072785304794925580622402325623570730953355813433883710195755792703856002624868883972646490424832141371449667044998249860930001925051844109567164332057026593179555874895124526617993563614132080570406780799676782292399542687118733238747954692133875919679696125209979567877196445128966544376715483913451644107748133736783245349333873093446503996080232226734265559499297357114943983641284672104240092611677815589288871461984724020424536635618968643288001765423364771649172343104008022465490253930529818820483181500887812006009110346941786265546530724835234327456182815891570793615287080536499241059038378312808244659443378144571313695127072790541642998865850949873153938496807947287216715001027350900433136426502347184640210473727515649309863920740099414680363826497423435610159405255420937836720344181843928881033451272024148196082614462208050523105501864288821831404862246168105249077300467323959779767318101471562716325089901048579244870965472898542105454076413454520882155518097739052510490529290461612839936827109660142256801517276180078918962729404714901902625835515470562218016991285051718898051116430445500303427258155413228494960956095257511350318752482093927066480160221597997503831954599480801620235219794012879073836483123062001690477860648757736243472363935143437377914783787294365469920329549838168231616794068588156183794778121334799435637164740019937845467932382133746482508442224093511919067983321217706868877152023035342928087080051042495613896242522009370258055759831250023273026790707156983645588453393860195082055496754542477613932568595318593755969319327260342536452835530407375580140367707437526697776655708138335382975810747188953946541044160140196485364536267348343833231903781596259570355013047486340728244876812795788367982884709688752272783690193916606688580607080158976468678735693922768660406260061579687591713154843504588361484615980262160190677832907852529846074617166511629704249318121615510272732518349781278199142711277653034240323630437202619032853103593682205782339298156137404274263436143470954696407190572836335425892861690345074299678047630885455225134763471108027686704583522802299404464759372415537136201337128182434594264535514250271937142588548329974852831309834735867018361560301541699055444877352452598116984083558075969691304995062311921115432838288250629592700311612857481513776980194844662948454228949120035371139853575695801250371200463960496625960808020757703328710895896214796911760692325536576072756119043111036514759274330702078738226993725597428595730335848338976987430491036466130473399851182341267506170892682131929722290306858643354329991650930001787823120027891965050293534779163303361203348055956800167944803754477433831715278157801788656949201901703451947784151578516861910847766898238938419408842106470801312288921533817190678985767214932397118468638665996757356526084676842081508393898836908945283165768177509765557697451988378278885173342465600231620209733062213711997080447127282211416159606069352412454123886730990510601864483858190887095216469326796920955124534616384772672938027531621252705872902201643261242259808477521489995276668668112186514571280400196014748790200834632385745208867313925367269671985449254266388813768490595567736774466744228525392692971079353811300001752004340104843843330605021602049037565312222881221397467302704533273109826750719712143167815736432469657830430171091764277683797166456668349844280040340338798221861400348904260149995519903772931525260468364534770888679917479445107663052755188675489213973484704359313054156472716441917386513744936405997454385392173848569852993732405588155551187269101766440209070695789001888632860277914520527846045823236350736322839312096362189840345457857685222267614079028606201784234194621725568619349929389779930456683152885893570750518799980685279995063811091970015163246317555507727903085687653483643771770625753000332439025769288707792854640208414460201327695174358810443396496230243517967539175912759813965125231094442462700323274280652922026447441406965827688972389238305277226083734134799138102377666274841969192561487177271589309638538645741895088639048480658737724562079338626495613656038132706653455400651001926020059214283290098790354884424541673947073251479829916955299520717142078699966935285775135852202432324007248886313967187042491601064413093425753542540071937088368692128320012534076820512785732486372332699449243526841227908942832088733162367004231947559298931675880790552298530538018670332184601625449036154512548104531819373137794105063200391228957308591074541536920164365635823083307267314885264649126397299093846434045690108870745995236930961697620801118477273731176729689730446355937967775752138309646521065836804500890086833645064063104329031672742877312337639385468125484671014606994222476705911111650372867020663026825065493517861527483001966570784287900685036028394588561752943819739216442989537026673399591315727456111692437260441535278023362607859646030484697883691521537443905302722160784786764296111677582439958686456918092703786673400448481133853339509164951556125062077795064860481165442635618776648751233523776480480389853510193403252243669093013070098570518480835594578695326256855571191565385351043451086556943056959012031405794204134200255939780367920197708016314553606312677833317255880905792211058996318748875650004595590797896457039135119278073335742321024826249184374913265725077451259246233180268356308326243000551526982562990744999468179961896910922574852211187896204110473010085352533899308929723405033457522639393189350453563478766411301081869205684476769993715153890743031778725475646863265072355445209944959360730335256780119414395250002354173261255492020300009312829403963677981719504128720679249379480765726513782789043031194030276064048087597165356578552503291722875608657659022954240209679321349615478140002173849455033055997362574433604669885497056929775797291153485559904901978463067768994010845811587306946103889013360358384869712057801728988110050758487530549415895166281153653120955167766130301241007331745108008012193290449251803202202833014513553545735160322716757459778254164632176435109005187904503298957945711772438201453234818783549839771528027958393237529741873031897932187519846802778969578312638908718013172953602772526422662744744296389206076425015781243223881828249499245828572623342127757262825370686352000303667842847740100055577570539671967548768909458382628503187415201281934797552614771663791275059104067198249044431683154756544211200752870195303880280074053849057298189976939684900959633006668787837244297980064939947092114306369857133063323514184750379564585717653613382510362310708095128237113428797171686146137822080495119155359550479939849149667427473432508282210412456284707194636947123863160678298574732551447656999095248278443121238173731851482844063272220865735869321168166103434847419690686432787207023470213355143782615555408704776835500826277186833984445972284515679277132823567723896312658321816512553882619603046976348505958066891788060479587505769503931671845047375992977372266274910323690439237390314002424377911064297728178293376818861612973485324015653225121769794525383642221413049114493453292110479696497333752995616027231298373727463575965160086130341401091738148373790457106522777054889264200896142708315847066003533991664017594982026999132234291615641652717770246994764982934803466616457371273333064209632645872335067012590883307517901066991211912321548079669584916401758351616159287953254637094258379708741538859314518014979980173228280704927711801365661160676935608862633297137004680798387478704280477298979762281523725161389027667891540576797755929350220944840600003606102073326225071070830164762856385989150814012296784096448895690453825641254976519975697655993064544468580866548052100932223115194402619438650293809425725365388347376973031660114397345118287195973347097819071073372254168418323479299480184103823565846229199816652867767845619473180620644087342949412283756121736054046147309635754533898990705849689967401815109622907060429288495942602164918008828852566867823456963615471256031606616303623964206522816541309003199421489818287937947704681124916058898542626700141036268041615229449167528586221112054640718046231656123706027470686376829091559863455513372780489909517259808505155003895707562987157491002153039853195588548215865495726134189750342430788704716357320758354296847414067807576163011583260198369932445484783017542183837799318385821582811750209349929378125663437476949921502946516412869371634394694920955984158240100656865008601453082394880035694064977572438159453054832675233298922608002110259118993286705792636404174797867675372161953855698350190208457631320083747495194614274057543132357279273229151704081609971251645163047101098267983156504909068528799752665249257566375799700582281614971499145167729895249511890738663727186049703843277029255545031385632581236467439760232160131506727248453801669584901597645821299775471068160660529789580470106056933992596121469316189533686905205354870815562383389089072219435886637007389703744768837816341975570381165920587947939900643742181787115696970971565865984011179581812221665233005869239018459201342250118664682606293683651482427280023413755447822914085374372339371956830491723131812438277996340366729712933103930159514938900717006622951172138938843754230314209548380439499778927236442731401759646159681767083689844290118111383357837963333691006655789074242543515551089694597741727953197389324912260065282541297934524608362619384049518183380148284435494869471531427150787485256094762858323741642658249451864654589021836205613882860404647532769143036583225064596097385774621542999537187743679390421063801482039121002712593080186155123224017781356933872916051469366030821769121211177467502180683104749288342019605918232748021360628342530973508108907891761117577078942067010637546633024260081325885029589093588245859300728444233387779179909126328897673507655701284449818492248697262069481983407001414116268095187775654413393900750388165136972393462814089689887654523401902322301300225048688902037530911067606309665261774236133247385806387982897913755861015169646019188714281088901897622658363463543766681885128341531128521094636591986187908469361766725420069006368039752497666843510317420145105814896884470161800106985527142003200179332818378309368475044895933179650117426439737513038285317060729632234388445501446096826165845660761449733423893676808920858997158682165990329908846048580371812123539599148754408874481397809608797949409230670999237203563076680270036472782453766401424276308805224779244679208926660016461876791287172607238785260162516392377296840568902142052269113194335416845506100035925409914047139141658387115284133171786484138934187841818192436567558381073455703880119454368202057577263445900522954503235743624723914605157881280674493031181380687478547918018539946098922514752919029181243785586069431664646026236803449404587273959746497452577842020842400347968264615484291584745548599664478765940162822036649231871816686537796113539453991986155158020159012186811141794851057794920591563112852022734476737584178321264967554632418173279762337514477378315284376553984109153463829315550346283899066338245875300501083331595777762057092078859149184051786601468036631488475268944252567367427201029309961736875400434331777156449025705559834622509359505326572596276067429329693303917212360453790115552345063887217646997509827674797510834026274726554426719574431703165773751837049766393919896702819503006631709009613732235490698192563427810758795780099782243960758342662162450640100104554477283409919793492555023754732836723864659559288699155234021674331058239134197634675646447962491504255414947254058758621203485698834548551467746673386439129206215529106746725699061205258969332425062287000034173997734127623162147482675825199277507926317864534919322192665541064938023966321444464788833602663129586569690294095924282576201056376927555283223661576993497136113380550022435495297725880579375795178575884173835308299193760924798685459188323966241849139897270462424571907622646330957325379060431577163550695689183178044100365095427163087871729852451671905840036931529707772713172302169429841390780997032747879592841078180090675576511938701023741700096957884492621982734633900993361175481291474893680245894153998806186641446571841456866974576866786017033758152070935350973252375395912826212225593294459140055910262615221445490066837839801095822128884646605141670741328442370926188409451256717784975562526400924889554823318917623353427268412572620732669251518679408087055909839598924704118935451812966112543162964960893031157181547046036886144696078846559569093826412703271403187323995321785985561277908670954575592761095687678598373462354620835477840033031989065087359818396134604504091785150384242958550564815238019533067368126340706088546720039971429028742133719930986482761064227099845497176059892837631170087990276468992213812639864230360708670808938351874470795743716874909760750757994153015007623017208690239420009534800369749655218525971594042866924236082623743806402978133660709541420193689111344899070678639774337912792787944913906939922454870364529407227724458318317763265450934452612346851519040964934716163208546469045766830477293559702892545929064415918763471239881837183787347150926936387130125222154613371145041459793097869936362940525885506436529075783979300784275802874664864017843198279500209981678272713601870015951671626897159130582326496632380653182243201142498163098526912292328804699423294981771399789279304975315166138357881195087176673255493741379021507144129490835917583417436683554516069175915918113340764058575102288240965828686324854408715131030661782928750309074924361463387822310884203538264656174709606997485091848272868404455662573142489643056068669680395870037149868496030915587130686491137039650154216362720647339032877621711609579079311418658644463200400170775071328666656297564187559399738906826683610746408650982852821117137706594565010823615206212595852653228832609383172077598211035318693908750894801840747932871520446413479458273365606343284731045903918507652591115926227985919270394595051000048727628030252774652807821329862516225663309009211439177576847693365846283545638831740468312949503295109935274205983192242823515295100773634580086502405214232248101570949553257241093171630449571391172378585514732211941847613695593815374554873395653752697603500881677158895871701826812742818107566463475881677667666907711836260931324365302286904429791455569592431087155748114208568000548769021826868433016754021155592870720747078699684183673875562835516110945681371262778723937802202413515295990993870012908751671285785737961939960704296696483770246760773617552599691861134805514490591660299968516386188555152986563987276618935236748696566886372057676437897333898194782983400081529014945006546731935865909390034477124753195891235494319194638344341063717852929618475986518214217867982397147818042551034430147042361244327147748112829589742919491677615186096757049870341380658176874390395108548869573855625676771206279365718130064630889332461056892048769004153101743162430089566530702519801435944602077122110319972893192220781497718785754748442544200442453886530255410669489922248120402628725770528155659853369709989002491524485351243901418514586146863374282540741153417020488278809011248683051605764579458079911748870841494295624688483030205929106790589165976597465353907501978686585763846708614445210573833041605754091228769795514338340513282945881259690870525999281421952808510302529049620619499987093295711115803011457309208802036662807695048577541268696726520163830359494699247365562726136193990634417270959390987483768570951734514700741694935977132898442637304423482660910531785845918999730386166791374323370584998643867838754827320868386819609545327993188113328557741878457550236261256659423826763743381986870185874491576491246845988293458992641097995885908979757278302125800131454632269145616067020885161704953985457980117995298345564133674285557458040924081914439632471453034515632538826254203675248965501134221947743922102086209023893791320483238502732387731044880808347359434076513177821482863069204943955722106586329908005569713683362078573196517531347227098797302832566588358481905414442826429870780612005370097118490329156938190676665605059944393925248725416031281256417122833219572669168860070262077066318443131698767112581387147436702196990645921011473552309659114682942917554112105525739097219779050662853877045720499820843535077628969938506012457685872237425508653263408806480106244410565985713032288545957748072900172084909293995289984919385796324427583749902835670326417328686095175006359190857767777788921851539935847603823579427349136538889385479177096870811715799404558573809785017404711755462990865065251501507362037510336637159148063353822517752608996134903191295801938877173434902453808531743690872205760851452781024494353765986085879792826411974688235407903209583338466130265464154588329979115188494076051169238652139044419265933791788958391574702696380725225554569758022242538435527834899970567383276459635850660674985396174357288992979876582917324799045453508909427827850675269833386010110226946316477445279675336831663127463848224505920030707864455200425504993392642766494308280848110244180776302204154066360592841355028244356131967881292877141909425675922824447536235946919502040589282418214456819581876596902304010855765636203449832990328155079300674991276518284149398866821666583592535111801736529399570135234026349986223808083108517388219682032688504355693569846691265738523384132641596300039967452879022269344638621084277671992849473662129314930010939197386348236388016765673312998275431351665323743129876933395867090428929773407477521212539999701058733161520159355817544611203661378296882816525470829663299571874157453382745294183180188085960868200125265714397566521904684604232247503531501842762057751340090915384829897195509769820854246157591977405884117336129908511329903291209709589187902523062615652806446940699683718035590459254627462019573753176157936838395748975272976667948496276568725432234959873260552666332969162525239536969708508598987616461816086678763068959266824859673107324819582175403317292753574675895693860496271688535528466827796470866755043917615896488831510448453069938162675344769787833385667976408867521028746584279111288575461970381223421780059723025813720584924544778926175769226806202923180214173991993246459718707477670986633336052636825365245671981747599959482143516388812572425003521810159602591659767940322835710557290043096932852412723583590931842844046500116742959950293733620331384111067047013247328509962910844427843315572394292724223714694319598967765205215573157177299435879780354833415702427012938564874577419639637076232146510251164390173394891012789796662632897539408699796353102572799787474377224069367840502270064863928628235272688974065116430791863989192959701147868372407756581161265877434139597673798841457654130171501772765030191988575460396177622320950482322051199012198052426585017461884171472369669500965029061690758478329121953486554125150274901105230548992491104714426572336454238847003103059303111891376983913714300768750854509822382944670912935516645199634838115203794170477243961568890722235955827694606594050363366232072793212420277977224334623434592572121072334852773659169475996694020559076464990465874925175948907919070287292125904651082063276122912568930240710469802607669136432243673337770534849266017874062161381385518680728664774090975876406039566767234845060389859356369147848437819309213142850239696834806209394101087194318860552566788155201701585835458061112316989296398537720294748086235379445232519728199977126437447927037508230146406870674981031119186592547133392348171209398621609105624182167580804876157861344904212458847744308613881336264032422142737751398497081558919603118734766348705726895328065802950700618152750297325069825415140234011080575474330001720708010445949315544169609017503902737937565197113511138573160769792185151646661973863768836691489510905096119933129546597084879918385742008361753031564925182377530468289651597003651270009260806145116899552756353679630955689360077321602937503233107321195491522502213138532699383697868063613770694825161933209558993021048402140074841046777920848335215075187315405895905087510236249958139817330454412306488713526330703024502159930615957319061230610703059503367363071273511817068402800856875303111327416548802506385842100470551623422982125217171501160612653587747481473194046726903492964069184157305847191809340555155276585729223350275731015938821205396939306462728162651059489099222511546096955863419001948169032025299107031761326129163521810233029157082737663055718507353127002330248724592665282270071431777377683565316276492218007302024539133072180348845299671418606675126213413267648409742240447104290411512379977636503767438570380464915692703560008346650589367073260942961293304761657285435749878659835145419974547672903078988870318234885625837908419375386415374239901199917559489543658343274262801758037048620951131392364273064010020206764602850137906358623705093571648653036843757501962949633037330385652477426299562677276615647474944190142893832346087005653308594574232372893294665058651035050344283831749797759278093762442431317841560889990316626627764442068740946181118147428743392198203150903170116580058173122202871798407627426790271071462737285991842352573693452387794542821571066167009941109710082983015363054135327400656142986496530236250948623142214978745395192019741618486005402433573860358461063637873300081239380390810883186407027929289231445606296548378857303975402921227670356684492193867233697490602490630367905423416379802949381444272862768297519800417597322828655958623669802132867026790920505086121797403556033432661514190949289422423559496395320537856465338108066206619211299490274913613735395131879318235413985591323124311955174599419453671770231392926713600096644170780246420435652534524105165663880438881221220782270277583207160464794944446449639194776595515167381602808912192379796374733263288538522109055229945348502308104474408247194572593489785983485283304623025320476101214599235011997401796773013143904955694402322669473713001354672044848000507251480678605555213083493335761560008561453466837500111011752296176395517327266455353918390268829476463233590414679153960929346869934139014729788101706964830783640602155825182241828201623709405356505339970629445545983403719649358770256566918571405423311461194754941891095396144496863556169470762994703937012305034571711619030349280800542323149839509530515916756601927359047146780496938122709578039169450591779237776487737762833975413263491777297498522106676102266362415031974911196766915807844834668867878314135560531440557633849831479145586797138396135877514668573806007521736067171082522517602879803401163403501472372677143648017507082140321527324252221151144864296569058339378107691626293595456579306038445477641490885258670749342731746552893704095697923237483389045061165341705619444731559601930357665766468251392419258934825218610751862269533346954337909167890284947879383936134352568542396262523296672349716195667289156017705568153590346027223408793082309450006255114449390130241400570266995163501414648194213198035861153427915357696139393973329994628334029622570334655633974949614624057827336752161657831677279211377183025258797841500328749009805820786619819370153676515830034721710733502131663700373137944185544370472404663296016363205523077332381617847234943450112749624075206407254895383586370895570813197320238839174221957951990217294386379210042193910883935178709400637641461435418076303822471881801017464545430342849469810277471878735920214667603024564356469158575309496251901505417497403398526262613556765963918512401468514035630066200872115444071677772654412182315724682354126404870234293200524345803913165083354274517267388309666484145736318689458426616733752165389161115575924777466050940441014704967729629067981224699229155840396712432385009333957432086735756813079332070811733393148843375252807116937012783006873859779124569347603310903595085650415673875574828842455450932518308967209767346507957297093722843644156700615677626147134895917917566212811044882163205743190513967045390252674978721876595253735137408371126210786110246484036098913141508859031282635228067018260510296802147221715907121416507003523475106172367127504081993166144916080439051176170691233385983302305094968859685485979161946700245754696650952153848295448679988060816818834088530188784567258715294724766819351978434991805431468935032099503437563617123559944884416899862244208784243606633733161612825387599539713931575066626834625340267924927478641341079262132465243268115267523973022132589472639048241036458616646944211761591550315810161040903325046252197644931713278644073835058497346946061722994698660616474138670563993211060912487285071916096385181601320530455151995053288270290876082206365035419296501068006753329745074469931584066096834224355785277608933445113754813677205860656893098141834791724222871141664004286793538883607142236352905284381291089094275957470568952470295126778521184151458583808516563804604593328360000929984570471848543600281772927766850627575937276026383473476596251821617991245576619871197909770562487544293826298663966281422899015789937240792076077764975936642465738712325443333545004781607990502127347379612024970185990662454590060972670625087514287498467249298435215583206271920936252026470688342912082266681736362267405524213846856784687234521940304583137199680536243841324288239318674403541482121033418553919622479466638889138698430404740757739569734007702736350246532890377753540656826330267180085675967154511860596743439799265632262192348653494538979474041501728318003748830675065595695721847359374973128908919653169522585289973866764431445425071008247258119749368361992217694235626029253318546287376905742089842958121751984227904927276799789693022490803923329036859560701474986801109820489153086944351053965125983827513277744853134351301657458062524904001142282246801061180153483103194920943007987597301350386622687137110898926963806032977603714383389146043205112360083794698631421969571837008280177014543410005799963128563833548799273541897348153407412832240998080930385436250744871958189901284385549379407613200322180085727519132252958186867988926794640566953626137302807496783461973292968556762194195992049436529586179867560787905896368558697968974279047804749288858866048840953540194791374669349430391170963805785947101220311108248852711154073143892915328963345096898358553822184259725769778618426579484166023462594224417224755877266056496053008658022965034845041200037303236569868908705628465747255717822118685250988534646065683340490649930418624875534639674513661807640462026610709494642811437434599436259794777969301694809189941278004621554846233831393412755194785874437689781223276669024043527543937594033155828915820892343411115686178807095277282334823421065373041918633815422753618063629813968036299174122882316384375963107290145549885779587743218544904825773665646123766329297418084601274837811951771494475680750128440157973157298234686008645812809260831741962116151492983879111478449805318957735770661967340810919881416203613501321098549902802650573538249887783312125373605814363463547394798164240272085626962109846917013030441633471639505758659580636577380865398704622042547831373809502215952613452505267495446144362222254352912397667372712052140607434245409877418513905439767984224051418087983118667807603133784602458451767284435954044932641885729912866698590861998474057185893373626754666844919339585328507983391675629770024198295396995374999481561827821001892139461934453296804294608020706056969270824754955633226088835344686184417629689665594958664677386758295571729220914916040112275986756641672188983743128388383346823476824622923953312823184647041239908911826186395459273077840247050488031969952017049149077004040291465221666115285835510314193016927842776808477689706757049119682686771421517311382467034831617500750511368666160670338075635952257973249852473683550669986338659455200286378947348996960507804492553194629553385875517321139887549077658000051909944903476284237121139102074481535282789090369093724754089114572720386989982852242800937810702604344074659412518650659008208248041686638808136490159926864485666484070729661384024435726970512311515232119784175066425422264495055483965855836644907348947525529358940484982226318864433896838513860028460187546488953584989544222384553122302903877965942704318490864393477988125748692632869118835022402077423019520381829164653452351703075382252196486338097440922265518793023001660183597695110567600339563225713890332476420909004919654741875737233214025169026590619752583591675011538018074110423784940548566324324588411125166795376322106048989165312068886775520729651256034377093659486816796169926384423867835712181683682062917373653744432936475992046382241088503263076259808758587512229981977541189404816008967483293963450489743667665915425194840813107311494346631717001700843102462692245122814115462856116681259590855830422547455502293787382649287890355884678525779966188373090789744134330017209315800957117153396499725944874217525399219729433752498603047454859852605299713267403483138301380440326255346576293155430925081531933405195314675208923360945036867118506813072544729398675919600534892436289029990269941853461803424778159447878491465063518244609410320096154484660534827599796868213564921544794337212139880711404852233040831170353929929166374419466659504537960968449522447462094584693498695555200979509197423878969747675571169499863933694855223775978307017609567477647179976173738534734568207914509871490526527946402417728072464829510938327786813053876577833445270371070468282247458614785255313731252476154485240287724906061642871971747228922887828711422662257835951976567878997154688798164544697230279589384713152429619244708421688738497679393406676836874987312339178167789785729559607026779045279811872260649306184086061115189571047531230018152696561358345889053791069876699860471737631990712929116305599204447470657186316100584729088725269179740687121806346064257651898961576758535852911851566785828888236747165767611715122713717344590673756442286118575229283828843103414865853385575025527770539476085027761837936941862388975692756045805890639617432914136259688667658701419031082953749936964656186453230269087407143382381300533234034509695151958051776450999412300279507324636298420539982438314144743754427745036959397129221549661925639087861607240474470111401841364490545134531943406312129024886419019927611706846600450104210627250990958556675040302371248275485353224559380629343968265604668091478568830057030846279902491873637685238685048707182752052698908222019522827076340814951724207446060958903130482095604034000546427398701520829411501086870897133341771229328591026139644983329471401411970616610666360530906967860838369625008493297376873138144109413304384053091061047139150494779282365944763145796174154836741903065001476152707361585888126125618756150479365752704697447798391356233348597343837590645980542403863542796309723920672079092743099387048465961236175975225500297319361994589233299058226864888537019502998003252468619493536712862721371808299369377453021925915285728783838251802390465956787310455762943077839995767398423538561462301079776506251718241189931467681390893544900070073562544167597300024027418882604900989168680128204631238704921753725213387908674228071064536212066876691270834873543265774879754312713485913609385303959486752257570595877384185163886013158270782852749398342157118022429624476714378990088046162450869316841475875961353710950078688851884369174850724057261369752345654447361491529227954547718984103221572776416378614244667822204652841740178874129889077280863055647468259165205976365067593372685310421123799311063619868110685838774928347167719797961881923679105129513560026829343119535298971663300875124901708438749020458616643912189492251604749418665244452211399109370673109352622878902436966778147310790566570970861523315315104535382176280142114306841261325329138766588087045353833123918644208117038303930688778862593085081150469762314069545145868557321323122802192798344269744233484209598916825735309093910371949520450588785817598297796780093721329474261176029582224450606799999634896445101108601307571784791568420122964408937382355980514652909038227109343544318411633607362087759454110054920643021987757362772828744592599977442258391393257009951995345882402873493641127923337930345532830060611283512714988452547529635242715448649870829761523253654745879804198608489866642009912507515161326626994645197871368873594042780495770484732682539795294805425461824862315270009391718601877633926492513651813406934868349267440975546972572647817408538195137197712058437166672610841380982289063983158404687403197689772126614202275485586234004214704998920301201614220387268366038780436537726349364342016957213805267882755066329878855651892942124035496857714873700096911588610948649786189130699950390079194704070984742696471795448564417262920399631399903269572383425117513779763357469021486751841296189054610745530729691399650610050523268329809619429676961298527267428111744497472245124603133700437366904229363290963412380171396312849846308335948597405539289935678077500848588468783554663004277807845717534240392124567761964672032149981576995093832988890258278920509265908532289918992689252123794173449727227287253905174154546657277800378480803912909393052428471514800442127958642427120258341522502452352770715955151748998538496894632881458796738406398068812591724869865092906921171130142980625722606929991107478972358350680749627356159014460259993290585566580255242254410726502577585367059361841338105143118269700149703235001685459363684002081480536404232387553068303579222564828462478354470746121973793998666049396186726486288377774824993387942666675684660377856624389761842905744210357273838523814262568716173278534973697131349945894507600894474446857570132361448053685246639212707624044114767801172681742670244712611426556868360990206318327041193290379329198708517517168556198646135677148770080706137428936853341053996738510168893917186594180792917712615798300927818323143803231637684844143827530169089757482213525260950489865637728719261070257176802097224534414263174917411667209554630522624143174946733115050332322791800160629291928079326848606697593342847534065937320164169499290679965236028820474151291584280027742522899535298528331445732742562885125245303365826527004756939514832548236175368202977910908451752013427262171342377094006933292689167930365902002924412844477331560835177292018178584543528327283958809229990102851759963007857784897393294694704273362559161982849784006219988359181959581531088697705426238771834630901640636047045731648862766230876350639939933586490370096863167896966756426520450913167680134859090643479439794707142434552911331516120708231445087446883103544866854183380328958936672664834710656910326441383863436642789375002001508099486322294448788313775931125714801083308977766156619068292722798168002959210579937172727416995276651155510078421353386510110139767455111134204486319379348893425581204710825353623279875775861995661891866405165583900635858138346552765255189704783907796554092437487656528508634099330880018094572903156253295648313766615164506216263538255260179970133737831750953434092585497404421697126464070523025077937624577665267883563225385701729541486724866526566948926740000912038156249026483043148736456496060218765769411833024621485634526101718564189525267091675868000898368382817847283917442724980502912647703422942605124592113328311534373188597384270675344462145976670472504749418657938267323286588917131557795808857271433541010953486250456788023545911872803170960764905518126632304716737314589037117240820570635766649666288901334014772697234400023575896902921367054318661487370402272998690031729388759913045504218731885711854890999513788643247475704382235724877109124572727258331875288980493093577982408572084977456523936426193131410208370216723545002888666232941960091809302526282185560943323345432755836464072603503259616900379811428879587288022227871513713239590768021194648261119146608715270388906613607931784913931073825052325038830212138365024404352289048063333254924837257547068833265405202887985061632126957996053275277881898496349418306737008934961825905759151508436369752345602037665905493005676218663109600763912414576981047915594294231020978306046254116545482940603080492008264596616282718871347567913219233644609185558469079725993892253673468714704144445783869565230228204966564467267394297871206247563149226913995931051677496667003972783704384719175657399979170182339173128590644819514397488026896294367900410849271956549487502384597892328162327208277753612023296392907760699645515022585956958076612860689100995896896928179464123483511824466358428085388047304459578095398170359380179214553796754146377305461624876291885289492576934439795956875481506738287624839761378698994552951531347103588668742808307771607607351385411948516374704319322353754059249941503151921360054171033924070979570327546002193357697788970979399759712960995993646327409323910676694670113670068681060481130351947245152494976306876040632735772691183488716004627655339074404619166713663895034346199363281468009148787784318554035702381717246565254805557802786997983647920972891003665186193391450533603604110438597276694714096239052167020684154923135999085737424082926217020184100422051554676513784595245566552600297006002388365366590447301485967701377827363137586305791576735022483203369433395760269455901343641232026993047231264244845355556288507580910702882445439456294374162036095972208843981756223631377150705655310412510903850798514313503316465206900610605847460312833923813153125981537259141042364131894600796648452619630586952779191444459440131421638739046639593873020536572378084100691841488653412531427243874279391298384657392274323713754089046723188734912710349474609071946682262627521990498747029569453114538349482253868292025690706503727264448888492601627519645614946920697187922420631566770969699681397661112936873712356946163264265267296084248675120016345868472441381683204924693720294052560363030872390449842490916076563199281774336606386431401587708216079722705207612083640973094730157025970848896914325841292597386554189072784095298500824915742822138382590985207733917827924877420246480299073972862298336778466300765016729229665787371689272047887049095002945230241629927792495403558498467439612034695154731105266614433303757625058482538478932910561270783303314495793260979308282864087513579354810866000400480657912000019209529525691264281738332917892949623413723778704255370315243022978083519032693396743470891012329904243837452392560985894085496980423076156818783662929982425074652212978993763064111823204896879726122615819745504134634494831677296277905840187511650398374120888396093628100089948920549077318373611930474777249588548796589337798904387637229061902290057587070576535121301512226381631010963061392473446927635663058148165448781829975917512706302695373343858581046424684334924157624388764133050774437508123661701162106107701786137454517034423834209718184183981869464944216514968615208063620199833514309948364848670872148782086523754759562303078994450363447772844385742977504320005953117132377586213466813817846368772667463466286546604961341868172229067535153242306867919301255652104628252150597224138294606905746207288027511783013556248580224342564809416768831670886895577400500901229715029533907157712208872221719840186974409825673824263725335747017519498564607974421368473952070715513308764476775458569970207903278856207469896484316144453883764011921235544394405558256206065066708342247249397008540990422626332517289985125663467578108985887097485876336290114100241815657419063675462886369973673835559002295841214674684263542937177437540605403873187175881532926719725483177200663110646235302373862816862272096032848572876337342223755434317791177609952322226579807862402085073581201971437518393776035146205905794020409823253973389768994072197939538884116183084824496158988014272339270971745868772126252281739961684794308286885571518826690550543283863655473546159151203476907790931785286810257104875388291873774009483714681634466110943583382526482919365855980035017517460630989409375497462455908259774172532058269209381079037162974442538881410707466162345490409803141658416505449619340272280140602698071881477827120967950346098395547479109986877565913791642509387915353784074384773131298674392640068702635395480696716401074791447720204375329876753826345172491850748986984659864432066130063482788040532088018213017370841469508460586653565908482869151260972633090052009387024020403241840701577557841550492509650553325272402816118126345065846179143099871803310546136455875495598241740808007536795704993495517256644745081521219281326332496479360008460661233692687750894414947053066316907934244729525340790540011614530755282237942110116315446350230111224316715607623709340765884159482769744334898944628085959804857439097360678813466103854196843932610739191300456904730606294307366077296469897645736642783215186071902819786699717994811886451435926120645605489948313948324546023602335967005917402861261485450417879621267576905642483796102712530530731818272530489147626660343640434342581753039126030929530860882546452118355584367841669942391658256218752786943721465398387675890968230342903789963846501982813979822771279360844728635152647043011746701230928141358788139117436270393366108347798642495130754049150741911810071902685199959440428043512404164595171079369245448683653152290400657458477525587465735993124671361725326932266050922213475692208495463121823260689087792750447095957920667853396804354207384818169569926654684804625273442244025461389136337120397770092384860058674146925319632464519167831884211246623143389918312157149474771065719826697974621450928463391431097628569575223286353828202099365011202236680412113221137334042375850774021351615473291071430497470325609955118259234893259939507893295659140102945865104968544943311930057925445454516167030074407180266997833418259311976936285878684402540355407159712861087581548563694323826522841153636067503624451902076044567575810937435835161793074244990548590231351457990569244806696348634293255665337858585590603619166828890838511155373171907678044933091190757194283661444673860952434342480916403770039451947852836366790891657747027602789657662097604826348410252083719900194000503971193492478936209997864582283383084711117288309941113174012290891342837328665014863552081759099201183111798722529406238930785195305724965186485041955216000417050147511584404178232930895866512548788034564653055915166107770116573888378535361124789240277997590645777925463043676881540119433979131320343897450219074625155806011394618719089792920247887308642266461305263787988562593392348983185996264178640575835427999138868509568329559474405849372550168242022351901688519192852531188420695684557972145730702382703086411821821653124282983207475582436687431413536732693535512090535129940768559039445917784820233527621495528759706266276191107254413464025568174924079348032488417522074081005469675539647264022987910770621280891004821596332068470807692273939268941174401066352026159329622894926482583025481974046367075762196639023994677737946116884274695522527243051812502701925835913546392797252543223952588494027380746715042351406174307966709409419494224299374887234454767847316406353293596289006908560024075121084379389936795044618220159712434083526920375408110212097019324027774142974697902177178020142486415981067415611379334298731442035924903783518283713771702461579806088172154591607926316903110993050932051314902453256621487524938033910182128476654827943139096742985968643578733893021273136466036027398460589089188865162703313946435671646291026461418154186987485686410280950876285271336140850683085282597733833328265384853164597088731997907876437647676373127193413314410825015674664586119448072524079788412131625905281635578119151920714310483082025974104582490171216266728306733710899428682093883060032102043556157967180589889565560689446193086915392652919990703355003356815032048107519800171827526588314183984560471912494496460205356177475207823930692996209401867862562603697631067215162057783944420815505315358051382812624539160654872293960641549346839358777144732772295120167394327381994609586482803805258274264644853736044426171508894743330870349192404920146530878229222000862289543900395636372367258059609382419211253672489812299636470834667648363200591645890565645082393296242479002433801267141156725517765231561234726752460244402164532816988015918586478147775570589342299424602476771457116307109937612838925947140081043877019487272270656483440037820585113652749600672473790109376355160733311018678365521899441147088523433332813472610440152734887016496789043204032792361688898747471490460908715511926306838940006909566477535285627556819392697095422638804460585615148250266418062793519108609143868942585979389076313897686712993489050807724733513161923713117979232013777758858901563332258694926999682724667378745727779911786827700634966903165840623012435737532583612789499809514008271941895565311796720319232761737299467648074026820631035626022972818201129215449850224666448916951352548414246030980374175119684244199270386416327890057586729430016958607260527230147155386655598152123630910903352221999635220853733147787489451572931011119307631825492161506399589452627929443720146753750558502515446821889243624642407824967972780168202847506101586012650709627779938176718722812423879170394591694136618957096113691597903264831121501132228343978773167706679191585151472077356041062057095317135391706177241441865954425051198088511050712469834826615991717125002829914014248493345655645000256671550083366725075998074144031917798956334399989147599207554345389518780499250731878368072306251627104229231411462043876031682349089666338685298992043455344334399222415968713148654160229864382869453617307523148573089127646494074480030853470582047589329994519178772056374511362116883419431378747795722781086599804770600889591892557314188650636266209701824532698723648012618081635577576009838522667335685793367746066256423057160748275157252458451432466114403595482354860400039140760816187108376110071172398164125493567147856108184430895182239101125069186980954516905576824519699777031725693442622620883425691851468103374533862335756144692803501570186554840661425155691605346390139564725216734280468972995916584588368858873681305882321880280865938171703283011350333845577721399087708392222223761305246547752804051318968921243405201342369925950367586372499207223447873301910719620634402966322400682037562942802635191225414525437312960386848252944166248127556336708979582603862089262263957736358397159215942061241065606853489693482587676899609612851831978091738529535977855348136501510985249389316523666029023521550385848067699846613111395852328975673306468495623553742059881006362902771158352989660186089094049557890121547873133781036227020136952451848815361279115683657745338737108101778351653151897857781037285344778633853769355469753352059382362696777403361098487555305362473032026858167144220359822127172390881137510909194691212362307376707361496585503373521469809715141331780536526082672534334366067985173816948455817897778578299329079566407998415934058100924267538087349411563941536632906888536306980218194088167662839152338564170525266072286675823621412033818034446646098774101980908287084711115685891790111378177430606536476021506630055600311834978981074744018572775761773497827968904154014128200208733294473264288603506183709580668541429816494361733753861394132504685187933624022328040471203782954711922204287066780279332151408351322624156182401667616938247036212578849939358257725210843771788037395127009189647884729492162787312246612744113835874895882837794378582047057123998214578716302168204291403231523288024502581979750902059771737708876068514793872815124872902097558470849201764908634984368043280953762677946784902244881778954990815600637402600447323733830352297998290069634853220367494597494133489814804987568094009589042403225460158461718023922734036205206858906769840427185538001873410136472835450425515896968412971998655229242487867542539676304551693535459972263231047321843403775270107038194608008699562092790891621135156096849517059598025854831110839336148456288333473178694736789506494165852485166560499250954552776566416204423512166141609889591442796082012010026390245242431119530947803106671216113486825371930896799494993806902617757673665686098782064156819202019135497152033181726362834613057287938603545329872664697626086327103111778811606290951994243983361945222646798344597764732168011890053386831620603050094260909330635959600239588574302335948252433772404693269545038573055575527986370763398968565482646646881764805305702821872097803887236787497891936435139551952089972810039519126438521777416629122885628849234637638280871452978698108125147188344153199180502613567715984412135552807543971482826752519086703297191106834493281144350721462623671880781019620542088027672606561065326081799333062776391311047249135402387416245490544264525121657960809468259341477369739588292208535306184373619557578500676526302264525646920556915945390163193987169014255403160050698425533695811483739702271927544260117062309965716256473330934989016719204303614528422966243509579530950976864817992627388920037977262745915068967743032069017758184610691535102258230137665649182852575046674328104324449784324015379809033057677423488773807471386389640387516406921911861005787903373806528941904764756697501086576583502114125143235434469924852414129247198179714888875852905026960592583842885682069187233485307302314074564153203694445698239754729420137419205984935446625937510894042020593230555414619777665823894396447829343198425255668591162900239522256962339654245879232192619674442644975694461763529928215627354027349445761796062274533975693453019033138061105142326454946320602693385285742262792107792130999226911539075268569245650238136238810211166168107402306415354396972423226244727696460530616092051139955004197064652662637462634256785429586706523156911969863983384693692959814338001169516788600076869230826683517232102414545847334084303344976673426036071241646741781271905190314073635521976369182462636733174707879902207283311710694529694710864065528621818185176075143189063365460665481022690641039387593695289887427131119972051113330154026733359034053748513019284116018715643510036499220240633881128813383611340417441450562516986960527436904390156724616170583750887037449689343354324307992602439339778316209104985853507617293482732752598853805290179118727675502785886597493330376752171719077030244272505979758007872830543227160187880363368345276958214639065705561800552551849232778298784828599542832496108104153313813614715098855699293622823366322308082333452529627890529513886914301079527108763971789887831823013163053789283733947983643808306985504784726746461946436760278512486363482712813755049914519832773063354058320473457645457694656582931466078193962978035836701418416340978159283940958119010401336266543108716275320515537241417242733836087053099363378279193554241133578261564771357408146842174770089848550761980570219071301689138233911916333435311577335276655935557627085383366631147229173033814644568937922294849471578429863941687695500983162445818197546178829742882758838408600280872737507701099457694984570897096853575548193035809490600838765489439378308745112620588214198707008145988487380095815578732784028149417008500656482758507954033877942611863037133238031087064477536348710897208542303353331225916978617791006943659777306466301246396428899106801939933898505181875306217715035557342432355485570952090285757358903938119927117997151543795172323990444405987961059724200073646339449452644280327975463200593741502281325519092708715450147615358834694218388588614299743606009920906141005512813823377587763354575816082775474537529914425569340109040553991054185872184949937513289260014979909411847613534934997490270280713897215219324610596914001444015563922153496111985779584642453353203188312835290266273664608051752603982326379281043751967306951884555996582246164734096448592852145490299453666467344182505213797905556838991728244785379921746989830489688214119350813906980155667359209426928459338885450142391420665631825914780429462767923323305219759933342618874471448659141535390593671955182791845753404182411477540251108324019592366982117801439051739504131933776095130675052990293688637711703723193527009947719573275467422905951322892129369684695833080778332203419291264064660394523950940383157180372248682066132662121215875665968979188041872964656165488021200198706286101558718046686782300576241633529570437909585624319090890590776478027365262261795568733106644386903572088702677122487305580453148865901837674354298982986556320545949645387615508661251037662974955561614984736213020759048115348903155666632602601045425383464045157159276777381328014099324776740840361457082180715969599996231478843230920666134151568936137187608950821036555738417679631236557725332386255529776504297245412373911266504395520693578031315902918213460787933242629000267366814468928122657675190992509880205918704377085264881784103775899458310086704295410669524980384840821231874367452667914068218344734646136574415928567294813401031028665336479110610017651154776050697446333148980220926372394599416265243131154703644005788092450329613296382709988174417395830163552133264245588720981483254472063755437658344107185198682422828650759404889952536591527590766320384644480340596504598273337032372077311456648511786640675249581174712229216861985650025772823752712726420071928165027906432767753444725812353669328266795564245984462171642016621374339052708789562114727413757794322705429342290480023354451901507255412338484076150439777771913534881897177046554641384307723507268196827330126210613771474201955053553035509021121713232760200020267607041378196513087752230374862409222321565992837853307934769935376587067685403509207498192756827900679984868535848801095269541766593375599609622798941850581136075835393203083755749999321334293944597670649235889594845835160478993000241354422365050516853868928706518146442087852712357875386141636689068339650864462921665351138127844166916169787422885477661713680021320591899483393632290967133295338929687288946344613874825729149590051804829016877009054719626579456523929853668183811490878888326076472980375323188666603287410324858207182246527534126250257769260948413746655248278630056754656611109083244390339731639985891584999189764214924723242752917395955564180068969604840671061468689461878579627493902855243243912231634604324247476797757038960177419890666367306618807277351645174995702399340356968290715418374309647808498246455332685907776028123160565215257482644666707195650608099565209526305103338032695159616125909542109838366608651847788339114320870576813591934665864987832949861596007698805766881860503914513268248956934575189400400428347469504542595397503285532109253452475920417375888227449797999372551100175725166447985315944208149120962798400764404131528729881748937671905408814173366075690753333079519889075363249588529143000986854874010255144844122149749482009658489565885988685884835318108336616722587273491097402684225581000843792399429900177519404967799541983707337520706283046684112602572521879656200182942540983110307964093543378484236050863128830795992334915506454582616084035515493654262211450539280381693418534000077595881639528035612025059148929376624554026913535333432356484509123024301900390803499917253196189143918574382262098743021732763760486629026136263674534471367198144207802925987210794653506961614469128536158800658503223856786640337419541001511501260073825053349357643655606830683944651836250986757413725932370545214793930416255176298496180219891400987631903498336205413738149165888949468608003274560121416009103455713362886782830530887812117540699560167972341014717987805787935571287572223324665159204768436827324322389695627376217905774744084428576384573483415078345155261487461074149138978632923557087904482968498673089991842831221041138588547502861204270277440460520046078993515638078967778247681550705599641366313394409117354785862201458091297574912856673843756265763947589737286986497046274146232862283296523146960930073289377927571908442107141521741455713197492646859478787647726400467887564113291082773089511244724760188326037565358216380202669235004962166407887938241043188230908369773580891569407298382225275608739939611158315947941092287587302314383044818726644712550437295891498953358590841266013620926227803145189978116858809241745185212751493082793816786306652176858694591436598486547116199916693835583925024475628576956878809472064607699175434881065836150062994102932709520643885065623339113749506057302036996085975428141925345094436795590604803377614972147455319468203784342355672544249848865342198889874473206021628807432262036292430672355283469932512058750336912566185264300386218900724927794778558938418571673641234306311556837438259072496096454338271957722637003613536000136109472570189605754558379478387854620967529359902016823748772535979382379021758664560334446086190391291004144056191963984960586923312758828983128856463252960284798858509597785724945528261461932972047272773736414806349973823084994655225410711420416856639685156664934168344339771987809791489436747242041476812756360180563322912565315712232019547501003429916558582313782237846861582792417110437206902749275144817127707976557358982085277851899988636579582564250950280266920080117045648811588666304866850593496640615282016112532181027937104749637184227165601757075172518634370133178850621448258841003075542753641225924118169439710458201889418451622462685062255418850400857585789036383128207393875419638838352584626524683539669115145330261458333372430879286333831822711960560226451827942431483691466776363124710618993735598780463698694508550931403405471880458700617944845727733869667604422651760980458933179247609662578088171814586914940662638580047418391929955286706545207843457841380425196914643081415999970694199097049944584726451901407810060064508519597926914989418733607434338036917393358483894070333646701729710661238886781296220465060636058701497502366091980757237956712444774818989142184366315741525521169710647274618620902232647675703324363562713095750380028464073437822871223321016486863558393319148346216862155130248917331022565873498047492530759536130408036932231005757155316046511567804706547259743087443290018074796163882680417431750718877779961417609007490800045789258539789201504846798019132843202883738442047287515430305606404832758400543523696218799208307411012953209940937525318562471866225502751892418233193349561101277791931234732855276639069284439225287569950272167845358275126396119049089644342921171084648913967727934169049609556130572829646152774049777989527735163601831392266410010933645311316178839923358726120174613480369952524452711847554390799121917494135498877207149638833309201551862145366859223261091538019603041429659364346671880227560981452047076429220311772294728165778526195166245438180722406655924545643042518101105592740514419823968998685139377533897554779687487939395503460140917636394919226196972055958525485475341823830367272268279612090102076838022799398673298657652800510205460944388129963815145172598002107128579194367091992171991817918327849796558572553385661045852483042863992128756914584416329897541016360106573506382906291766252512853429659080941132634642361085104679841427582181209223330261546928645173187347006986610631564795131529575430289791480806484660882010085045958246043920089256292054402034202903210082101887752462084103255408341933859939695587141019649952245125139577625805354369628603293481272787255056451486646711354862025514737834186232726517949911106697918926322123549164742629585860209925353656669071980168557946442690354091829138120291306208046655888554825615059757829134302680509236952086092632996082572014852019836121238588032344266525582217221336352215816697391959944150332512091924572960991816317411039607596994149220356938281457795726631728788015970689762781427676213639163990559704713321644754208820662541613302686702551488646775368895914990627918390339054471361650698119813939330007368638685363783014092079030063170272615388763849831116747516500837910825504230709439565217332496381579476104170843169679252087980196227289191523991623920702638263337355209358488805615600349520627515210400566447024512596514486280972424806949175487218412600606110950215307120141884461206956519158786776788236715725821452131172754662398875303207386468135213543911761191517689562331333104411490289365056792496608026401233025322991655172166499963376127389153410827960852555131000154119627678128267170247760549607971487115118240656134025330359258217429912988864819260752190016708771727346310974628454872777931397691365355303303187401342015953935896873684555479106541294157186959749067151685779551654545639300795420625536453902621197549208172415379459813994009858778300652383490807348266598284886554389378648846319492916015941552469520554467075860965173643357871524274229358827944748246326614060645237975222829051693152987272783180695186549559022744239655808479796327113860855948577637929562023868001257920768918874740209192155682876990254557471495669485273661626803875470786139098339050180093580450747496600261401711655900289741103301430833265636929668828262121550207790489059734380859335388554060108407317488482627351030906014240769623403972766605878934173115537030600166609312724843462165733356314969215301066767492717699472407859148682325251099221880196652741640292385421846521219401593871661123150349794740809555270218395883285104418918002195644707707157282760586117946771392467839730845314203903723718803041714461639796434555489458195332509911363663516494058774478327870277738271659836687398414822577288713051172379652307902646430498315002581146622535470724793399058241850002978332137310457154210248061665492716895970531418505774934231785976999006788127645143950419345414941132511531216793394978052224429463279148262604046531827192589182335938559788701405713316458824406011850753633527692745008411745013982481013037110109585180743381936717062250268706244327028844006380156250033282754813303444089347917516988274981069769539901661347930837175741617297973293578372126142006112676762474853028255834340802827452317423913333436338579193011063350599688971179762213208375193257821188453870583269448711972453790796306539156535865103944303121167035278730000163201342872359912077582819098060778208041281137432805030727724797672388361377593817738074898864110550008564603048369791861857112336137209515382685970952448649950954662421271676147053541450084739042650317516498035176548404394958950583919895443114934147042513407186239976141435213569728703800840055685187734429676577087472405461500224607028460061738164962627639497417393561115705199360329347318205503720320212812723963579473449584710429704094395192424091010625201247058596340253045017466025857326567516856470260270497468565089351840067704802894052759182411497394511075024442487474803191925275846743095771297484851827797749699491175994825155119955330437605862215404000835766918597573701782431250471409931129415810220126297775665611472618519090392683318930792871542002714547635165700073576271223989571391239347042876599597871799930305943363421912962513545939683248745319038808643822008320952660988964060623409662451919660163739575373239081786806517871647410728106283907543386935458932308514921324550911040017592669798239908995203585722870392143966572464063188139645640931595082985394129750567955885011476206523957733146777359164409810166031960771310438644691020719670122172763584305411788436906790134357897996205240604230767779910535597424728070860448073380402749617487073965953680520766229567894559115994120357105562912024343092205918284168025518906756609062615849646334371101664746041836230171203090178638361317410507812050988025751381034056224073348537957477203942891005084147933431888942919415636647862214185633374651091795360478228445350370156832326862543987800709431578674305285829087264464719186218494593652428823740146365524500423241871956025035788323859946393627111561772289131426159121127864598192988822986168425122736018049464081981297215955945029952570696405985367915762027238678443054172200488339722912842423248882793805645150375170071105489126852201078798624994697640906587925921373166332340106456124971704725746673671488499290309203573171407105863701058851490662443041226096609125517707373311543011929779752929939664652745895337184716978399860923928068976954001241450067313606708701271694270220277058220069294811417891245517278773323706302708938242353532420561825075257956712261511415351015208842470781125238028364369737503162646313499159769490635493059088401919107106165786868560379934345441308340855141572159230246027467002844603369592400125679731593277499913870163900151573650875017074396820060318184378590405275796139724282422293718973819297942970447283114839011045297977525706882709977571043146081634992674001507073163123092397035812686403882672668755534771697627571764359438777603678446001169457580738697677951689451180023837522384025592992116972634226563197851459143388774595813341712939256982592450242492574012525061572846131630476412396305863612763153102103779531699228780165055080041358480608663022511953915999157049004320117234730230469520127279439335273653863308827901135114728982387205871971832602672790991551708483817533587500692725244230537657419932738552877703976494482833308225123636833359209206773522409585786074409842190791428576209756304285906780366568564679860991676534122652611150269241602671497063927041807501680412759254619590143949148307051798950550807600456497323615540569543631296890665001476140404072149196008518862088580957478315466332949965328858103731881149434732469757580151322343878862321006684197127144246857289501063695923959317045476521782420674692053018461470917746918855568910736542100281124941224013049871317149458465845041189447792458444845570790468040015732244251124390097978481755143627913983933615217170829723848204009393127870711059736468846258084401461582918738734957933660028979191460502571348882459410793772310829192733527083778243251657481451153543340635401818219807809951297987940978605724168741764117286090351879886553294787359464096915246690238631244265351127048640975745542433281811673025725423900492731053980543533222606040650476144746175552807429531520577055507909985577185381509694925994166783744190121718938583800391918869441168732915484468112673935340432134386059258862203176654271496881441682941578991578426423644490105656103774657882685203286977556332999982639729472864128262271997185801036209243312589467740128478452902965428483858377586928959404637245856928936332779351613343322677998644017076006481560867319485593351868045084180800555626728687639425102418921586838369852424518837810393113287473939164936958963692906216041295036064921501411200546782603906053520585636504016898952043174383508666353927290792841488077480904155919625703939811357358688692692452036797901675998687715428417673603239490630031996902598340209565275111000220791643798138239677640360053326333613311711195442820157422649207564771184003104264472261304469124506591006972842238671895960261041110865761676672283666135346382554676980649295423512865735089576776207133768983867351843583618624621584044127631518731942674980273654718164756087199950926117564232365916998179186122636052411982495256371434533135528727267187440071256664297909881346640534303507519747261912305704151411459799903703674750926767551551874362142490312248506080252586468747326184779581616551293573142536240055883844132971120048716954515108084571612082706999259888694338322435771195206382510819353531235880505776994805554592090458740089099592080337233305211451945048510872108372620881944368332578734046875789652188455143147150167715083800096075698793091617611323259547577139289859689385366746604797262928701585475339670418992782521556980386884476300547897038039302010876721465005528595453324938978516129902415041221785378025886538434676237763594310028630394949178879174084809452261369466601692421328205073733455526637538159492804873105011487420762343217866502767118650855951742992758433298357285006188807484168846589271763528220129682347940372077217049477264698804568273532772279533347977129654210553995595635176114144720231600632085762276147016953263805224329243929381960017856501541836938850932875388327680751126806365870483821782397208986804470276377019861698881091551813967513721782668436391179834987515356107959683729292784055635580232320187637970877962645573034056714489675527800451172059372305191819623697249501668818530904257225835086431828096250033431023635861011848598363986481284680420967716392549935586865157995832432049366717976573691031115804229261927408098029472754976606851937722979079130821242453811116919916549921502902173353082008818775163362686521432880101925482949787104198387526159475400223652955727045544966014194715813689042089881795769856732054862301043596916615770336610908709813967149015639901206800138523230565676773497385515916996763017973676274885673397411508353744356441803732638673457425301795804520883836424149726722790312758060915163866387634211666377662767743565187916319924755456903376955791320574096605428567490478164086332561801257116563209644960017449386588006837091623361186659525068850454768078870230220968720722713931210806313532515761953774027080564991450818032246071452215492215893981512347763253701137303024390785493351960255676002819108082872524083275009068502128390788776703892570752843594376903085395198478421232037274587433054436042509811764966687012663418618748751188375025671622090997967059022485280179210181366099795153565104928833460735465108200934305505313129187405238223938260705255041480195822900930947044883157297951710422780717361952196306209713188135785730960753610786584194118147071387329208483045142145781868668438999488681948170796694303172519848708679158084034311277635007747812706038200082635668749203182276494888422195085271812317800313210153748821925112746046414679994382185940582405928788623485297035014380238853100425051470816665108687271183024315815515291153956828617860913689252914894683185277946684606977046520554576795241676218543438189851259702361921726239443866143349191524627749346673953609817007453057808056227087741000376142003266693574864045989112188033925862874264676176775379635437043671665987461388662414041430715258397217025717583901709637346968246252892895597558726325078708878039367057980270082016849872418709118774764923743498183350546785480557592605707894821200346569828569434165291804171979990827411527621880310919891549248422007402350277636904065529934076654433240565081928343010325860531411262233007622685815066682284710002269846259635931607884199110327014901960501569042590703936115942423482827053078955655807050435494979592046939255361423477730615212546513334819940085817063574743951735803617780149079138872881320608193739945034719283786283896362889094322777056008413563593856510761046461804898146970459842339913120933538256103276878060047119992523272151163343761292551898912282010592457661814524877793671699777457977154917565045817418475000750013582599919484226023675693065913128567196854375063236519760186531370263162856301918182481397285860731714606162073400214997959833062854789725063231747666850778498407057182608945443783838797791040085423369633734591045617817343866052101750711619111186907279178436884807818522047855624829862755774133455615678680422020658251176235575170781713352716229397711088691541963155217677816054497120378741725317838302486797088265037878415374442951340500036466793720282655910602057609853733181555874791094182801520975507496911779774032226844767739940145367939634668920354620571539049592598165520409956535186052475204826273054791322456990969656964649187726435322886570511609244645173963305990344637927791275915481400669569212985292604248745522322662900062474262245988990437153573139208058014272028656403091950063936947383486936194537752096726081697958798579065861852587682693624585037876560730719822668890511749050491272802171330958946825613374387867692366174387173350353318720700662970689233180839305425530440967599376431164792463133170895822679364218734028240164939794355273920111861639345479939171274820695221605947524885155667555916376933131031253009376147197096929331113098036535705172346755268286083139069500804947299430868440146112493657681201049158421091699850583194412416786278089724233650289591494944150356773267347416522589755200085159140434617787718039943972244058462267947662081644731548670828482661869746730667822011561039658671436394089692467154167935039686440820939106808935053134578893093319638897568448973808108234512017805915567480480435690212963759696090705594115358804594588064455698778779161017665911073895775261347927979622145430668926443518546157506477714141091453769538264154711731783080838093674689149528255735675524018235437999611635905525402035706177346966595319382348628163574268677765951750679410693499213265698659140345733784616231730344822764090576398819858289659382455241069782683078034398986869621335304916187622721393511948691006963139996164325560211060378391127567765457577409879675358272809254576309701269567430173465288508882205834733582283886578443813034549218431653408487151604899457104658535334694574729513799362543248687811740768221706245524557411962313435694554538656881521924046332396703110467412421374105911821808299304431799725196473854647203998417037836830160838723084650341075801857302712680012417389571231233996050507718612941335101630272028651333898388362790043853726268035332072566381285725240508127342376026357769168842781031787263687277664040548140648410811125588978625344801045598632658859088331532276566052315466254623767064219851193970073646672581779975676013281751457142063748579014337036624803002319571450533062692945075629711359190231477096362551943403139767160701276491231675465643472752145214624245574972241710427648533493686874967764870169427239481366319427009440891646771203820100081934969735165253235473147767795234887223062024297399979394387659843549159811913795477299254293243375790810453004387552749544379576983151356763288515134078475966514958093204631264882612648848034913390866597372640532904236583522390347458955426754770260568110575464008052562160005241348838223979596108668867460534092490906743214129178608673620855830684457024193563394677084759323298682001280349914972505331898704156561534330355956747537794014692591027013331803489005711034002589295044433405310223269112504616956720624948240724631241652224755682439867035262832170030341612046398134836741540373592496097297394371682367725933278821904316693548887915380786249818502389660669467419094884777803215011676317674895925955647355501946093684870654695107272528494650726594757380499694247672395169006771267557555135803848406833393781023637355974362821508706345985603992599475717974974995208339134561866571966010432817166096074508447416203917659934322457269493330742532859837172401685749708901100139501123944448459880605666098056163461644585979748251334842733204891394103684538880043084556863819008255604610785936277822066074275632962159020949397811304922937067759031943388499723336677487842599390966343078805719259037148279451645888593529818645660629076797536427252044982460203784389390732661387769245710892976029864600839432933936386418569144981127947290930596971906696069767946451581439856828134034075689793364992840042248471522929742423877324328269259884272430862305899811570729401031162100917261103064971542734782957592274955001244782487913002002831218377963055248979354775987929550746382089512625991441870769244227526071000497644079502411715680772078382546720050824975447467377709412293861014453201126513583791821930319492744535885989682862514600652633601397137598692390158458303146256823490598740377592886625519317066715896072559761612486754819023214449967546032644823854724275132786755840687736936077831371339022084439739413181967991452313026484355205479693398789439803793508764417702547842791522650159428461630861154741062619242648941152760078840725103427888660547465939475573199290193731604090220370413642194147671353635208899245315630983405375257243464480200220018523029744801060745408651486620503621541946490309673406763318701145596964165446135632343041780428159280180773430780483336326357724974594333507642627312751182579737536206536983681621153178270955277600035892557680126422022367672015507509023164223712122722798479356805465294441502448244077664189326743276543651575037921101264498856484175241689764655252776094713640990949846542162412111857613997345643546591948468476377027467932726145416894771202302689469608154938367314321768856320000077075724963884411113034866136464449601130152293501473562968489691007677033143412411100214027037614204078628417726579075924885064223001005511926080093912204854330106533065624385730544771882849932961719603669641157270774310549397976870436011777750247522122185687684823802463086594077700421389659414573075855609559786164505875778682190490522906462982104291215090840507839616514867714706327484189385463017168385975553667498793567248920080370779674853384491199773312836572997895363086274394854572367421197241197570204107317507608610681103742616605830315580311655938967062401454367199035649847387911208989346965773437551993410571913961322337787626374645828500219464454665884790170037603401454277581214136146135956694506787078356210848284069163007898012336526308335650697412690764830945516362399800139358298121322993525987817285460597962498232968570628889034738286291063165204703217821421830751502059679688562526089479403176333200437295397265728098375636498857131305430329801600216356334987318242737393525466718322245700367697901311258446498127026341814791005493252204311461384443713903270198625581609221871874186481320495680560740427687028333202112381122552848770367620532641383842797092293137162353587693370193506018937490347564061390447895665853280004406123749263749528412216422798309323766615030788614131456922996030030865671161378179201844778457878010379749540678000256610940772764402020909811074845040043809139773178500674351831924456207176912071408992080204890010576604671336455296162697163037844582171537982636798879635780582313520103390743606237100391140072256587481733733191619305326325028748120734860881805258574337322450019658904395071013450512894497227672090134285651995903893017892918841395658902074188380112158688263411234821360750560043106618055421061100674648067139736357892698562168166892266620870035157619891027384608745704683843269966485580348941866762889569456303395049145634517516964936462027298295708153549770620561098138289057659985035611889958055187031740646330615898513381160083456492979192372372273844570514501549010466508886167315195111257578736000750359080851626413035003794903204036705285117304677187625439527415982514583112376812316413841431784734223406342456515371191820005946233919666941619493395899916862594863561772274577821305863954133727845938044456116290195144851409663273611719362014906174881127586663798478031451192433348453714258415486427980852013897030757115016849164368664379858594757382112395366683193981917013020053750524962891718509140828161073257231636973720726569700415397400797083294850379392533441321224732358228879707983640128695781822362759496705444947260621891459839130161741429990138941781295151078885930407328270337002507306031950718183649449268900205745581708075757454899531802708404788519366349083165962210362314776435390957639918078707759355586538648105544348536817137756262506549542399806560668149396825803456991250300715275510764706274407109424565201399648085319181365943891881516156203312672905506076851454044098460930327862116416601260336889081414578698411585378318551926059207211980237491437443370056170431115780063760965916052375888991991774581240467579764649514709907096359798556928052912545825407245303851019555361280062312512401564684546291883447729590632710540594647050719928575952535743880329045650416917558718371918491998748567817454616711587195724575264016025179234019661750706343420004079567408977185353225153895158853168190217468574522551772362766202203654185130102788628688552863351116184032483112897321411790098851454319153827352474769652444714573255384397222988884868122985247919126766161426432504177119086668608488954978992451863832192850958350977897103167697649765897918007239100289607001565043593742207076523504578316504923510697022124433527379113992847441999958796221508030155422507364150368473907222267460560910033589996412037668117638729339269357273246738800013278656934444510986438775448255316331498050943530119270094351235625196439679691776056691907228003246254066246105337414091815430101145774285456913011976103709823334194994832640222358083325670004731625420348663694669635231908354297846032597752164226156581731029954947530362181960011590664934541795073200434432210098157149146935615545767758762046681170470245004885068879081196512494350065200176070426095125994167021498190897081917231182114976796583032559910349179390956418332606984452039270930816371947749265103464264596202058702196615067879914232936575165431161093614309725660089669980259336301714781666654458181255488481188068549121900673911668332401243692755940294054741369537563138126761197140611911860251849656279364620446998201996639753355561883993199030203919198038289962309376748956270567904065890620546843356273951591331611879888936357471138455329821024456689449678943409703430731777668414030165935347611577696157062368150363876210196476408763165603724522437307475687343494660356145343288460063872549425067582727485391949695644738469546657625774651396575454305137092522945411127949099758748402267542093425842531714986641876314362595897114319318323806449665038055010405965268983263806892760121340870860223903474475473123793189570376466910051031719230827338939152135323605087755784496035669286933874927251836337002662340708105933300930947875210248432583401156776414422837595400655989307151570294139823121440165624334201953529812471406301274266313994342898420675102879280285226630725133337372765597779085711734241276810463746865386544352653254065803330091379913697875034037545454792838732341204350967415345929128786760462519459721640393419619835812885336134337837425232535974033741504843388667578664324923044984035800048384510831300911051341818533568651765690015763197905079046082194707062368087687746641956513994484356694944542364374053293081778160002698146941723685303787382021427886431603320801180277391085330678511253106057114499060342345548885791825239589358122924161351979215428178398040039020513641533166030951490329434879594569591894903877699286620815377483640667184487608276024977299121865611332768657361048924985334375377380901439274015977697799147492698278439119639053063048924602248536289381096635707573988596789265192583349914450665275316964176916225700217933030466320030181596177931057849922464943037941043874199920161486126208982722816415053180713762204000536585895655727479019413230425586598250754677934825354280194537402081375049282730776613639629592597944141784465807458352793043245140695288816559778115409432275239598003328154693021169898873396261510555735948503513339087394236296601684001585152189020109189287492657904821201763226329708693068717868667763290277760420363542525557521674050874310449159608531891074293095585960133921484826794961739420828772971846323261720328794301306851880030177919413441973171617530232572801740838387213485820315188193594507080400071528279015297912847209175249220931598670491274685597527877517475682441576614129782710480740710892083484216567178497524970112422453099909549032039362231376011650803001789595421432514796378404462442045791596865016089044220244647999263820276890820561216881548261569124828778081120403118367059416714210588089121598285515364571773005957293388630359583092901940999461582323377991347115491167142320519889595850349319158529286710446682073876278214447953954196074801091222539438645265763747539292951595975188638054739127307065401667621846702214029351318598616989751349467643769590356981806391112103642765237425373703518647158501720633897454585114180324567974329353202261469911195058419066408617353496787556419122790382850500993532949394155117542089827713232722484004642359173049051331390351495696168159514100926046149889060136339627758806601927624965944894531472905872965662108977763139145290412935294945804408416707137235193165544404829181564144768700986988108168639208925870692570739099553320704168400307071265984919541412474941556577232990245935542101142529828630205380147664783976323916211455726602396718394824856723309989311314859165810000708187054680424617702581501626757545461961061747816795168007039410299057811884636150561784047530133762377485462093040247120780955204152999708003710182147972106261348455220272110810361694682238868708438749567526089400262118540328599906623878689049133336160288008882081611600844843823466976138558928975647317775365270256018381860973618669393607131262637293060046714083939124435555331639957003506831896217845722932270089174158105226522010218139838675277843829307186975141207305590814537169007096740122107744687614711651521979557251395696606656244658714308388937482526928531960055217168601920685480763319709556650806492931775187375879106234230057821972116666253396028259372113208842383541100497356475530548480313548204292655157544684022996709115523237669328645669555075169468891464809897605834527980030773565425911009742844591872361464165679539765227735727346667060648415544802858898301231355192467960906215884254414087512101077030290240626223662525763766689094802791057486875798012563840043110512116638609297540194514451449588011954031713150331005787035619652099916689282622391016429526703046985738247881096281129529011952827475338362372130288655963401542399642368594919341533242910188716696356803597165420348504811173592501169234899816342386162070795549287754859268416912285764879787465486011897996209004370996409855636838689819916509245352661126474369516419879185098724879650118333898702981841823116271178044012607617145596131710940114446491500438796687982861345401876818141413175068381836201867794100349826587914507085801015178169898263744084113847157969045590139192400095947583751017324125676043352009097295085648929428862782316465133332003634232740226700133072735929783159541280990597920658299016335817651166555218099188724736509047509248556069345838571261075939678029647894959613514251048326967429482576967094040124015688632168555695118256446981522112370676239728832500469390155194390176134040785436244910872450038349608632869778643597435750198702370174192010620137617775857644607392639093938562004997964649178117666159157554664427810040392686396309181764448025953788978440864645897568315811490610343434859483347676740206797885544330663231104947488626767056456872602039133386551784620350938018271471126015361570997789716680617827241966807562208356674371166469999140613996445781069440327909669997830060904127328833484992817293376390923259814898647087165594453793515746867399938391385946052304643755195251019177454859252673706023799130545250469465508305825535029140765247337908577971354021266020393332046939074482312381350137250914818973604543817221925510965321714261802654868559175802318809486932046590957298380309511223617653455241655733517024261848019392472638104041048145906590161788392829635624111632227883267384937492990754693925515791442021451568936953204825514074186568185438118110993237616563480284498737635935887884411375185015601506218470195416543736518948306008959517239712583183756404368324424434144481099699298400731500631574363383112548786150632181089814202279204219221730525959705289315409380626519306907332015120497875593393469627991142360481413621338463616563696905349236184947542767787863172666915856040478564067760774042281563425577947092999216540471765591636770991512065522883448860672857472164018135691301072967492806679669587757311416075004653442174597120502227968776359156141175073391214883467762863507803617575732563149543744009831929674204765057189763194673174912956633222610470278832633494750958876606596851524869654649236735987549384674296416720334338248750747029364487190062827444683825776047869675108321950649290324239045627993286956772836855025191503955738367504689952129101901836625378694264431333778565990339786738118869675163960752129943527787227333417976765755916482384916385218173492836713139989844456850643282451486933453184816590012411648902711468939076955140590460556659401577297202591442207970645061641877983636673040599695471956719574155989187240799494635931066001264704658147903241805173126624052619515182963743860105862769469963858085230870523472126103322241705520493890260746373201650584332436765187163635626863346018581610892937482218091483265402963183446100542362892310031982903280252568978290289296413434330693098423251123610354940270869540919215961766382784476024528127635734511352168498693067277040856727642382653122937114095354276076895794990004320737549012491294560302513912547726457071542189165212006921237385535488524357890122389111214860660985041567022519427550216341048030436036336969068269930808466804361538356288274812463309953413763815774301244988595956736078380849588358767281902423488957062376452146268316202750821418017546521471387912308916702162292061734011848004201073167948555585003992147052473060711763583845529212747778697851616127452654683260442155436157822142516765933775067672559129389269519287410605549090210281248347429651380474668948303842534824364813622942127311055072882643593555548486799899108342486957378235847351728773062624724379999748329602229451104179189898537768166776456410792797498992924641178195337611752272866675643777228504230421508957922493221104791120264320289866227346744085514007498121679893821708844343887505365264243395822786105971591397209883152846370311978857088910455428189525947920525940686159910396587296493842859319242748518666052721098770711747091232090290498631401038199164363339605533942836721853287684958379527501891657472556220295717468659996984631708320628325071901702284000117153980716568172381516558461576540585385969400212981477741143420291605770575146202228797656324275506537307398228431991508203102811955478930244700354002136954884410722079774297821359067614990544204654580612053440996686238488457982858385546388866807201370958407523540558874866255387774480254583903551023119864704340950106784313377355962633602054051161088312214909358268796314917132801072123181787976424571323353107114894092060454730124189107194055606208594917013066386684271438195125324430624640681428007574763676448838101983331041715842002068540446346305831811660987239820574314206985593009881013681216024151556106663058144729566104861669520456147936981477466426629865399431053343631034040030258996577971665853961273354678553306598295683888655060148061223297255442714069067847691119358704045387871855528705667510361348304541042871332365963629200216173873894838873612412743119261051776500100438674552404662300503767487136848875199099391728363093776253170519095723945742119580204016377914332967603629123250431325284176999765047077098751147994865863454986148308232742162818071169723941389938476712333263776683368147328075283741989344910574024718298689882154199135645755463793335888343332621772410903912300010171078500048160387990389771132192383239655181817232494729304302717709160826391745689671728050832349928112545403446093457922750606955409191543821538011402882628419305385383427870896933276765326586051923335688880409561268783556311512826616509592625520270621048902500768992545218290110461373456474304522734394987747140872170818231882162704568197882564329896081377866452945875284954271495293806409751500849499122397478110739218210185034235491932582194904386852923164649278597361880891517759224489891693380526833042017130697596074107083210419523648604034076705834911190449186281009550473427039910322337983997805261795077741064142982283485585117219804442309539767024261348232521803532864923252813860746120186002586454500514915846854356590412929986755499163496686232377128068878157980712133391345889877612989574384811103237442792910658501397334529846096551349433461698693769283209697315036776093395305319497943794285730083312379414479569930627057826995117202976931703676257232658451662513986875030404862186770632068255506986831441384444867309388752602175661018528982362112651971321842170001812715868894757275298539601933086964066996577187532517987836760756741183569341580312339988509949307628776886011298931223946178110798799118506388683606465093643050569069013283742498147506265872628106215130383732597219054410659434195644773650849287610522801575704712367910941591559405483592544860173012458957686157006001640298634849991684043498579956182916342155534577165997261368907762886756047383490125329651157569165291465992538835308516154664696308260792507897672847213966019864897160901062110074521110183441909368500509729765457212134864483687366620736418355814633001420768619966307479288053234138354668645372407395003392215924335289632006879073729222788876488688188290754480550864331551140785089122901903962793343538643421804518597671654567973507220194846374677721328806518797608237522299285562227724687564598371971269916152218928362843527351471095885668915328334780955185993096839054489247311491102854455525743295612592387896075944372082223432872684852601668710323783392668565403651746161441567591446207593998620988155908622689271682391566102729754564885651427417996805174105273293461014551522076599127465865707374130119193483918792548013367115438674541318856293621717295103696020131683431957590482132953889066390464095542738587715736672712915424767862552294851039747348392632514933772958469498195255488932332046622014013339374103588713018494769696856599145568324934457008427321574820051702254896031671418901031620867003550035635872374277032597774256837168398660170204106863755692562326572852934855197619127478499381973047454857262017166747549820857559410008791633173671754790916351158051504874589285020711309746288523353309503760661910204878367270067259438815584794694167957573227151912764471670201163113112763962140584577753767442736152543360442043401692341722655466983183967019969282916431833373817461859047399263962540200763204042225328777740413648120323576909303815143532620471966410417322069826786548575275869919599702033423494019969033832049773677903438648029389151797701143296453587375610582347549754876589292102013798788693169404855778620646039454988407968298462792716462892099898598194701592937709231392955427737884287683519589596275559760558061516367479645381978881684999707306725881140062227998011179702734078155761984209570059820652936288194204721979610165549380678416083547384832857793282023094027477337069089133196704036049265697486626563644962407513381717101392434278487807660372759406628996605510295183293149845635596150919814811413672090127702755248339691062208449943242618576038342281841763296555751614828808046755572385990608632887146821464010153850546421631595081741939013859549037867951525541558751772072993856220569177400147187409398352386944505311834923357281176559108762943487539784975200494313345261091360409777274791601809489397962021787543035354403568230623480214146818930129078264792236285086847733825792789284522002556264175467639871722260119825229438867644390750876115491273009064566498639574787154432232474851158740100422610485902777527006062988302677119192910323760586995627535310930848690449670696845648021111620683004196576854016625361061265163578046204141422691732531714595318530517694318901369640637296668985281208670500582824656767436064996206466796604592141627523337101891358545093914413205438480749205606451885138270067699678848809660583146148138285315746928626699673247573838753285893688311804277326819664242364445901368575268569297487583961126954084459077315129303577684129053298971570609638671748151299828749136936056974898108153444170777047802564585633362829165140287427104177250512208594177890377741669683114944707827313632286147930208902260075706788387417463497976446408468006549978959030966436447246809657675985724353440671899440748169744776801063673584527204535290267051007194521013295797109168200499544095906166085519092065436938231801789794993020911123649222636220834859692192040502129736695919103578249659933843928272132409326750936014285058020652245618664524283957855294491069659954979672388546174335816961292207480881656291891615847719503487006305432199870619933995405086055390866600225857405530624549126758337424691209331678523366157529511746018368554586017761934444592827097610469200389899908839522244614000323525336331803659491887751436797617454565590630303588333723676888848611251568314256817719538570820896034427818372464772666403124181532551758796799148085083520544456499203275942426535261039268138067843699529987814160602700793637653885114840945413502079558400708858815641490716567469062500043320742455646349478897054755034979167429717250663445902439253758264196044038569605482987898141819552095812262182411296721119451511785678414492362576202398812122535765260133138721477878033999222259644460960755675440668799024151118766455713933204555247479341269599160382504686054105358323075123362655150182275030696093552056532366588419896883020421836853828982874421907783620895426950710681202407699516994914161578892184167118787518733370645525560707188028131087860426224084620574928310697704594609288574393815287573576806721127848969802755618820058370011996772839673897440760595068736743337933405268083028861945803995816496571143407021968073903623037440884066146592290876897848650081893362168516166016472557520336105613367120157678769778240687884000660758964248250285499606262221130871048603871247965379686471251028627304960157007517250020760248425212014208315012142193899026788682995367976588866957270066868838966849027148943240439781875842852817077873276013412923178849116685848613329923981579936095944405081537764723961310733932291689470676797768339024042520419253802793715951781122250478117775942613697885468100477292335089213540141893940434991432068306551673759357968116199311257599836463923241462253054808438627533996364107852594601962550278912867700616185929072400374178059664454213016252542650820876387827837495287481923070949432575599530388561741570969463275811608631414718921886526673997797408353362138177817969158763025427268189782729279633676525354444012014188512234694939022793842762764107183023879067843418805285200424819422102641351793617944674243539977623178288671051717590361712088123195288132663723888902465385264447409222764152369240011313572926884222710953243666268144568206399270996274537205722807121580035635700925638693338276063542796872467175634384939170141869542551786275999224585417954647503425944013230957472274401683896118696713615903735505711981401379781665571734773647010127522553622377113529819904118281737596837273679855238092843500210855859179195553563802243210284706997203683318568289969567913152572074896103393636251563785565090748542563396224535688306776471865295250346030781571804721976987163233171762445755694924473171732810410072112815152637463117061721713422864706713211918312138285523674160041519887604834673404976415603268484436969195865806482365597539584636836396559667651789519314099140440156073656566127484304151097937082196263909208218101823207404222704790275256813472196090363524928452933173224071872032085230525824142252852088179803557346319728473560754143931658312211696411565497062810752807136729138225822054083459643654336064039233347235539993129335655775837089228663227969474997513497917237590666236741266088613099055680642440486358328267181465942642396008512120198404789027906154695090338737316981768232662611978193087230507026224908763233036780985411208353485825277676414229600131384023188784298039821145804665246599080460137531202110806742818195807803353909227869065882393742168909170306174182367096021785957818810975879258786729898111134262427849149344228194547980585635299531944896957548669258213253189476173533773396428322606213860742996975628867266173674678122122836578648978892573126761473332494757217321703863239686554613825461891721417924833880010500325282391151071009419309157929410293085313469704740571931566814609177982928748756782341638182302649865748660849139291562313521899204563226880175431442489726490059268814549493320615887281858119034700030018134382732723029741370299390764475108614294662254717069024585988160102108924480408122350820041902120942297671696021043598902920469383754754858893854186436526811393665520691291288294069193488661781774743293878684873520972127754224347747602466370361722499495087298128274626700903703741532725867537428892951662906685540084227556497961283078247213177796421488579870040553665075742429191094480664978399178694660863347497909014222688866655376411588363429044003888467613497148408948450916788187892431900197023394894804615793595563526030475884891044158577873465552120232325609073853611450755642831175099988013763688411407854685643798436989124741170202650625432250925088438323851462383282411283881146415598410172697356833116775801729226805236812398595949347611379377583347843409890989606647637397256367593215404481915359740958481406321685794226752453356819578679846173478760592325301764909742324259633982899725068976153173471121677007476900942227472327725476883175901282140010759705047952483507202563180070221115215517993430540787962472908682412597487404513872478793634109851413915463187287170841887265643826015729858334038155432494452062018222939149002285261776175960423507950593768395460943969766531057205386119666191923744457917277503570329967623288334926820106616837864984995114597968608854588998891239828749845929001752202710871244692236798045225354385529455039375157937591905064322418611642363887987028487625204227109550689310363264813192636585028498143263638137011803192388365273842096986322827937834977686375461565139519573716576943656079761880093775032586466824238522191976173461747885436489220183661583510805220263343900182995522039934870410714453062270397511632673976690890584779532118948258198137866262470851208249095727671522349040856493637108474768367994377246644061274088257602495726768783408849702187640504439686048365899025128627869326616110035102796566021515648804005204884765408788790729067703186515753057325186213072329728462202753266378249814706968524196842434929604029882573963823218983497968632582762631317208881765731558476695095305267851121468819732955503988356722031185366684010581701919829344746708760681793261019106744394546777824200114843939483726161608537823316117441848858695052754367398873517588015388631880498507277579823468397470747899658905769968398702000134851898918548471411531662347317116985790371573864445896174196533960993414175979035357179440576802730419475412083701404843440271628739355033637284683019548496083058212057266935706351535066988522010232157688447788553060814616547882352179805990485536657963433135986372564077125685739394250720245994854471520536626138396132118827443237321632269139587768924878062348253012247217613799225740851369772613167854035312041967100363038457069321555593555084176543633905988972603286763665355539961735467293192786824250546559049596350919817813237223187316553033249941631308528626978765059074247878219993089226482874870170006910057982136093141120283951545558302200722068122554669723495911022229864837609383508654176559324911043068539429238624599780678318506453003126644849953772008009386561237101642138355186861611340153079398081382711844861933410331182131114987319167084346882805934807112931791961080862637854394091273982402498993594399178535843064680773875832146233757539285217744303513320162554862827973282484151975423015119011256463101841468677525445101440794345906122185791747726920020918575218093647218850238523855115102003565374410410944194753814528098999523164589930213057994463251913482030098451010336044339175956238939730277690327191063950048354581866925496692781798107608390551152236631288343425401789348396725834896456443044400455110134059884312266679345460012284615079989858719528816566604740708615241721507653175776678036104542907181271133325046428674320510673839925557945072750944183812306456117975335345954911283260683967557807009213225885543844692198212113555866525772503017853644387346983468072080180365597286609702538418042731733566543088890927098310114317645766289972491848334798544218707969443173738259676913804409692132527604373108921780380568154602744815471156963111061451646961140240604610784301098478109604159856949916116191329038158557689841436346248422120104805049437774483996764091771074476400851491311876221292170912557007808923318873397347233681450732345745733935410252744365346858379260948964861404946955387026595301148579591566030912009950658140971037026113333534628145670989014649036596975665783277593551615890246250201950665435564713908175643304591177485914183555326189978854348704514960079200237358607836202429321164071560017308931334542851179989399695134486067910857402992198479812757770571233362996624703916770700522594350477703288002179525069552441859800203081237538717572367415143048366154071570838177802326565294937225359632629649155500171397662544414447644100152049987234567135421170907291629937024633115051277160020062230882381218939455509610496606259058545868790388368893428804221962915490476622199587509159270193514139160623398377756656735368164900965407687257905481728196400138746481668509253480289485536208138384458520482834764284392607829330623275347098782226626632852219063755936471408384635330197347349437779391419854792084753915077059457529109632075108817293370566242557682910263930839642879676064213319276370832786134092007541442474916172637058574869401616154224570257863823421382287051540745840929615753177454952462966638806188417754701048577185830512332756331845505742342236919336791911324709504170809637983103474232270184430176378527304719016761854515594978137047295288617932721249144292489712565768107242161705146826221650244816596020561846185073395210017080318122435441065782700188892279088230214215178395020826156071216668470326451763922161366182539174492116465768463092190989938086561243070052123051560379570866045528160379698512305441007329228316138714643807749279397198990083691605825233708362509842442977355211633629992494745779882962480675664260662897681605467191992441649214883855656768450053339494667762147505347665541265824831854227205525368257604781625366738404464864935087042967095519923909374703943764385877758317818410275696726251886078799081604892434675638356383798701855622603684797421735297487552277266155251498769648412645841062440623573034899470697796013998177741319556536478886391560812550907600377768680407047548158760554743784458591485588932558553417617868778971267422687526678699599783518421788114465436338476295502392970161887392810803412857406739866140879732630444708876690448045410069152368097793769349450682064908706176908878236113828198737722640997714610548263375486970470790940120483220041734044814323082852049864772034678302059960446382304695814092264188715610410897089279324962874290930157045969571869362209469704523981623381284893304806528810730097754423791095625009317223302611458269131636839124153852332257169819201104247471114181590431009485380536844186730329559491780505043986964373121135675933070334804365740373772756798553984321426524811463884873100766709329328160664340580421727172068742727789926136454202240286933900854871396039153270771166552293487324427155252052832687112662621645492237862773018516721483355842023001226360813774715774097960575305441715270890554054563965999987864098441611992892257922550005020762369479800141307372255676874642088369196266045194016511067176257716212234488393707694761310161409552827992478621497942948985564591380532711697740026720879445784806604442208879758773801594263519112987064349705486555427371145676333889307082333076321298152050888324246122373562786197935034486709475028662700189505800501170130814954444915080487104021709381360130477528041490020435122457102755020833234220973982429472461546523584213760043748046278109700541539264396787935264061378336169471682239231921438924797310099324252179202190526211145970554426158819619387222613223933795848334409585203379027025382311678521170467785534941543213029109485601004776063978072456950509662564936980137205579854041689712717257375163448810286128381850624694183805599544801448202307582338551073021742149514942355977555777372523797959401675551818625975877300287831042233501581524686009411038513090180551994043942168895527526245547940757598026320920746647882409498187883537916859013333003601677227924207204212796360641729927203610061422123035539479628538679711267663870614879406827263752408015048697651061868965403187397932251221338442969266151189894660813279185304361476058245715455017268138876660003688155092636371119077375924009727300627128127585444064097104130289206528290000916386773161984657598895824915726355937580513934173595393711127348076909654329044980056255437399121705403745856212111777650892968735916625286038890867735061855881998545627268778658361236362267665595720915722462833077107142278309526108935065371617520379245232173303129949380657539432530454747808878000695837505638808738191930643828449115774121339652784306534866157074379613681092441066809404153466527923064910670283435942128555971206237659036993511255060394289813061517904136648443112860867645922645363671388509086891375070102105932239317225867016650974079592472004429616251856532216084500498855492348999657532324649781414591704511121201110737454942636831528466910466716680832259306312146389036238180511037346638819980447961003861548282274349645318441542841260817530481766392100651284358330065957706196384986856598342175606196222540087703335170294061093878756835978450589532865371151583862528945202427498516675285767725553489227751303335984830738542901837874012814602124675559909608794162194699072576478279740850532170391909561962613052682947767811074526248558995327489443002850694523723125935600645839804743731965677370828904447258591596707468943915866584971880117636990739883100113272192107794530427133569080203882701167339649965633917752979747600039923145865667591223321360875810687786743992862461562185937366760346381905742715924744350864603855684900034882143272239625578808813384615970632534350900023993450339239870807713361937434081992381472296744643524023008711098024793027106824804605871665908035365211670926524011437107103480445410841876737886621549055060323294152269949172779258021078556025747808542401090008912122198211027589441664131355238893886928358418980402528040974985864766714750273555288738361622620562024316047718491992975832556110006353400927796344650951600024172547316640680894689026431489902560161596244277816227481611792741514704574726746301857152815500972437617313479342513599564547999813223533691044782346372545452714566202706654884093685267656455107806921943867511909386568086686765259922192398641738813343737774093724926919469782580468678722451302446280061147076246686986735091271178005975620377326152015879122890554253705042803317460711821737091826998047403699887484280032256045152099933846347425091960184749861959866170633366133727532605692774429400971312037042455806971165742452098180463751929766997245160387659812599089644440762509432443881859616578165876339266473387103241624301028233622940807995414964084203336298508646205670565238051957843446822354203629752016065618954396759761901529646468104190605892677626330402710310888988805741204903647229586627625311688159782830573176263218210509783425158493887487675690858034406242751274205353744790439791685518380258705724630827332727002906729684305828240976131013101183237175589087416783378122582839892934756541856982237089161640697160044242007192431867246067263003113766459236750334377274653059769265928918232657409565669654895555996181364553242100762076046212343503121545667468582623245227949615204207830316120649040159627910321069809543395201798591451943914895067067808110130595134482935280043166876032503330248990495981229936931834930687310652083311776997226299582825929545531083812503693339608037717505653644754299764750505863425792228659984684163060873276336956158696878882003850858543996328681510504721466537950581476014873156444183877445990455526907677946981452689598258201303443528469827522433261914443730120146422604350258761147653771980907998156608207229700680200776339480274845149908413207771272593904208924669792972152947616258824765821427944791144048006566930550097019178436279059036404458895557594185508538621653452316318073965500013870545827857855907276032879956388420828124966712309809753772846034796213014887066419786487484618106529746431495690905683849415363895591487044574366214203344694252867204692343396554165480343029931728706634274841796445479466398921000282826973846305495459731807242450717476067373846152568078823243647881639582278846235576495480691610319244985598754048377656809170306833598105206648083666303099314772471266155166650993126956231077551613354421303212615265973607385541779125994139563597836495485885433726742867627765104225570958547857746885617807339317389540538778791429026704276517157364860739857767170669227608137897187933991610918545413968118677687110354809243759657866623642237584614954701845932203732545065196238995599068886361439967360218498072688991530626762392875431669875999840232689812693420539014873554174897978536212544632123215976521953825848791411904852977207158836947776300467915079310065480409620353149079365444692420239076206573755845172190362257533503063477683687496026754523690719219237743959931219361419722202475623691443702130269617362877015126267930474701085704829857665272821337430973885907010056259012182450108288329711947521642939899837826847539327393577633806142599338759255377085105026517383573553619276508416544010884346701362315500733506373594079617535930511416269613251216093078709673037242268583093820473758874007549756460658300447652017861983432100775739703903405483727766244390302225485003463409490836557685688372739985981929013397064723711361159657114865672438025582894471911136692477447484254211314479257945495895192051282180777294042659073451716138657413863774884323053322104640924538226141896822763730244910310087084608638606244044329871993952589244367436631479988223944765276886133142017912243465304810051132582738897367491250345211106395108686759697913942647834881901596627416206847426764113809907666486732905804225174245219704645490085003063913624199995110704929569868154380312676080542100739243273039624254639415611068055099140365310687661341476635170044272899620270287951438352323839531381546388765058922868776148213239013446833116594946721262789433409557791369961588436834476967377791255318669785277343632769842645993450208664294640610444820478588953947828190204829525330968432613987887515141132693831353454321294339599578730660538925456528051703001749571784543959274403646471257529259790249941494787294149164416995462891399393452911513215483166413773948105302413128367390584288015727379207959112931822452045854041299006318815855702810523488686536115638565974227748057200571536543103822306954913531478920669639713523039489622194868236887225630253994773271140967173134321866147755713906943032949171141234781004517348972820259502867323704087274251800089030267468997853043352810646765177890157388746203385781662626729561201987182343820303494793711950404718958097633303403088980411319829446120562607846309746555442192195183245995712621028003129082281357966971895045911003410483418338860766817275762761943638314950435750653561465238737597440233210072080322816955530009150632654784735097767887376630181023004335808083439774854733313660010216280775466107433833238597947457488215730424771494919500710865165242321739043095983186777664571156157084618760647743951443514320919596847005748075315330952564093062272918235842549921688056516564467378887953401557957911908174706575343992187833784652200905241465857480825679614635499722690032814922691679572114551364908473185302125316653291525167387083145583517034406692651879172807739521032842234171095233856564344147527952130261571326798959719212981483225844681079420700139734430743961295911418277777949113690051145481035069936763931821036077309050104113430588647134948451878097732110751176949689986063713964327128265739009863265199911075769147259361003950109404416026241269538459898061564861460184219080403100199888597784285422915355802042992163458039771587455566983548432424665475405605689152779356351342036612012467812700347433423539728401977887823393642863123842282903549123635263185716117982836033705338759526376175685747189904861601999581129758650668398732467067894779832904088590476501606571986486894640147283791051792200624411808344211023193182254986837358331859020552982494666020259978991759629122000162983940586707841579259163969247510486666622429512671885416741387659393088223319602862169641551878799297690974071715992642574764932661677543758076705969190627192598924200373561839285681284736104288970809475054356122676060992119685989417294987726106463274123530105996312996000589807857575958610876086582179172059522636999328467330630375912698515946220581701239643973674129748769274909332763493836189347045676620825060339347495184017574162589028397905603324576330713647959055843771225854210896321362252355293881130104174685122064753926681520260062714458329565582479033278502546944497461028108082782736413081550177184512592850945065092014619323915454690265986593553553232330443833636185255818877858581877124122579938767369178747612944833903981404914755358570728608835406808773959882386839928156494595930627326337952665527771995814516894838133242865738757981667023336080848981386366181721792919950067781495903136117758721656314910753965294259861534626666834357041078225646594533363494983693065584614842966011251868657865237332142718680908626924791874317768567717039280251689922827556477438052911914038795393420478982190887951031983840040532977461622388038041883724593231229150834121752399675686899989992751627439933006348464436456795181798456254046765121397354893054160834361425718315245825684532393408081278871959932218752502901252887536717117859283228034200317206466706129935607219845570252394513522829351172360885764684291996484069223269203765030177150986475694917554131935723351779726869091645341522656408745693615335008671061104340809358746240363546674802855022987842773659887346411021870403084577930324883139432204515349131891621453888861743410203101587026568824605823288552682231343226258825121780130710681172036463353863223703765486270527663929478153819021980933106838464383621427707601078620874974554996532438283984979053246535514705623526649956994123791516584942814752601607242247351592129052458893386869998063015971205440834641401757772444991474583142398747877277574056258092728383869319519675607452506547367614640943204062169128425356358418696185175265059466860127875182369491474468659028304028601002941354620027396578307471936403720990649509858287030976859878089156411044684546565622307675885004224563450170879521805738495856636985984103051689779755276569890636579035647870514459427209033815771229065160083811706317461490030434753593133222925367700991696418401888953403649114371783112308790492769819740965507260099253738754473297264484132146640549063468197918689943913777676116713134810609416532844203853379358326246225542682583922869153086691907804919480454555877577702450377421965681996285937996069089363369624187380638776270556631844878493505888876086601456546063347717086041685926921386511961544692882796317946830869419946556899080873041263209182403659772068662041091605898432236222189165801168014617067223889696930042238935366525890679625011400343489719109523264842572651941782191657243436690997490157993589065812331642208103185867924885613545455239049740036911121858661132035800212453741580511513148079095620026759894056597464619771474376160783430884538903236190062819778914323809272333704997321797615161141372190573471313789406622584872565488947532542296366219092305504795847884130034658873390132910950373075225289263721516410794991949543523843212750100839532053619612558637482728066420559965897199944623999593952067454352170901652903954312197071600836838728939700287453247283695566379356179612927502278512685729690127213237904178355188453082067353226598427069362423641557601707116115629082852301043519998459730780329759623137983038604941393479682053351127350106620540943124885741465182564115837877999261096131706177073141405722998672566507544089268941748731588268775483731614699156863024692215083425884587890240063756976449241364999504834511782949867273184751576493602877250890199155359212846472163383129708767410591060431471304803656998720970501801106601172884800967940405404393006880735076739187857177438099248544798709310682139598158160281904016790484962807892193434864817964973391901846013036390426664393742633013041698590053336844269208379358699412159426932470261884529714710399827151160924631038167381290637273197210363278196725182964887956984385157807824575055539758963227958360975162252688566511565529337877940269595974684788234026468104153537969843701224555025547140264805046953159967369940615245039739283983280689806213014004152766861559785403496487685456109709138946039494164031277212839292905062540466510573930359293586347609721434583393692816946949003281044607072048864652776295184992078964666317671944627431470874334460126959462440792601262977217430180894257560738313139293968254714977790155124999320189673993641584156411023160054917477790615503764079900908817475213829853777684044521980858068623733144683431624094160899651374647014055766282256186463136100771623014873195445252164139504163293502557081724029262590132322463599114284016659031743438900971567207755964515418812557452688414062761341627364223569958788776324443584421589025408650803069555517546334076054627592317596717554905398524486813369362367354486423606850970469882935059243111143855934391861529393033857724574865003980566255262733846083824794376370575595663016322645900985597896782547794733125752862687507674023436519873951128148058448411961531575446309793779459061106764236904281277278666980449907532141741230078972304878295300797055619845913446852742400909132181305337236606241977640211864041641153668393712260124199728687048752765742194128211213957785856321858830457040268627255048916156701272561495668101029744977039996888408294718315147791141545533503308409825874648252446606986991143747427106669813133538793208987482889110789652619828201506638573665286230654516360153417750963818031589427702263603697893155631769332059977830605092344228236882414335494095173865161317546145793205382693543264117232640260963277017965779363483141218149667867430146244472277803939107368653018263202585218419056048580980114559725522616194561377016879039791783558854910094635665078844275296818329018029645167402228687735504719257071399198532404111942611912188919922365716862630798278082718767067151953140596055028353677881817019430015471983551220049069992498280608693622673010996517678375478530554762801269925088633237954358678214372062403313190635937815069172800252364606573703729972363231354858803943309759636304010820924545827499860781640037531156801523908019688757599936405044711330003334263723527246306615183639851477227423391269823378163861976765273919396639639405505300743413298043647637117476045012806906073613735223169702439637954240064108145755182386261341005074825971937185759857999257350622185378591819436824014448905429805320547210700830577450720342273550257410884724640978571545230924171699523988117614164501939569368530811161655828071396097249731574463500311162850840843942220793156237637896999613591976345207725434711424305214069858747025731773625767833052071243247991466266774459145445627028710078685443314661888557758909054926029374307176270119818538161958725148713482256450665348885307489350835321128623370910990616110347283069850221066606840223466397019344889313025214154351293421109601097057636898421052780842889744939222812023352841375094768952387921367837063500775851454818786471975562621150395243313617587590695655652488346872025517326170192359915984113713727183702231011507421535165363661390794979766929527537510551067134501816996003584072479762089652481799828196709671307489975868669173098344624984032683275987365834105200447588430527772765949840007870208790705833200725057431986768070373379097317794160269827327775436762247740450860670615806159265646571626940246620479218796812985352597495824110898521273609898214292396319115522058030200473319740636599692979206463185049831289299402034768857531712741521195504957361617957224117955815496454938495008738153398571233916743475384594700550451758888749468640220382746969978476581256124849663194702030223014442626964589555699790758426287611111989136157906403071697084377125760793258942259593535779713302852326727533748067097263269579361410831655859034238936939439038429359727581566984110058844777065589245962565265565116518998512340530092558442739150900895100907609264769906627329867257917321709666284398649910388813456668428345443345549708469427227529509322964256974117401535043213765095473303876430089519218365849036917600673381326313184579937740521119920142115450513556499877766744331690098142917962687420510772842811571931717659351950373573161139284243175740351432697506287679123300512097087460686756241574279244050810439335099217577106470364343551748557513694509822637362131146620427390343519975210843998168604201051187190299121706585424626378428031139755907334789000440467913281985864498002869490530482918262788913885033736919532052257513184883936708443109387076703478296388140393430867397553955556532178110369531047605464134638961482877838272053945753846644355299677375493650704065838014232363451589728978545498714857858183522848494711538323903230293014332847417003196341351627310045405932412966401802607362033836664363575450310735980292411456020439985565255671040911936925604649981713506498059901076149842281237395665122136696287410369259340358859584870587170897565920351903804299444998373155338629863229079648094286888379556100733614024300620728014983020433358229130606630511263782643421536377507291745767825922074673643241857436182826923293430297204354749837039490639338065222817755362219101122284374443003391995759406379050127545979110053259655440511644153124181107794043129243017552073969891258210097874187934993371279431286497345797533473183429675813122084019228166986750571338566160625068513099566582583254596520052962921977491680958754132440785468634688264758700151115677652348831768258401342934170790258412827648253556987595973581208276878310962682621432089653282888658278008237128619379124926182009910040937589135291774590313130109657094155805360420666018012262394877069793310169674449090800858043839120768362378173998487892044698175049575384945015040644551188846364815927826873488104298446040810036770987631223226474369221486604054547098928414884285571354506967914838423757920826377249066279713041465731944454118056488739367661829446987925970898790827659512374304989425302789421617832944651512799122802163416916959774404161863339774903133690682204307493573663701737051222458297268894596936050228738444137225342699969183520472330517408480902204173896205726792165862948603354817461218813544986084644598586964955352790493748901775640469669650378673848800970524230486902515244984868331689220632294086071656972558869680838425594828428127079949893086319770858369098551092659721981420715104794747590635685644327014696450820474009343972620953903931871254544196708412066904324985563797233680962797405507819300550632162257723704762862680105977231279212226788595833115593304301903050193662428178076312675761012141123721521251256342613070420278074282877447424809326969098266531196022711399759415470950940762504408290368960719433992320791705360803716195303791659113560883934523482131388165656617300610834610965559296467885710518741153224723192695631214148906055455155820245912482747929575526780287556638329033949353435609639231738358097713070876245226735017053398648378495803493943444450659683757535759344928496246829530439822807082978656323525239970195905040611232144177968314409782562315140355576715316000957051833912721010711196387636733395688654952977925894578858577805203868686335335009639088749035979868590289611771933805632002687435799657123964363575845632793649987952665174095136455449202969878449803157601369575722035646524454883510308096359725015061546955469500765210892101285588254293968167206846193570332302760189312435719422004029789760327238135061954025173740010800068385626216162905472157172023453942957104245124154367699777573034797616158661601282428577336899350276785795035805773968030451858407636569650073584275665774121090989889273618684963529241498840972516112103679420686413269963365856613023203774522097803717451728399103967842711902397628142393133663288731607292909751491096905028819057221046654770264335401596568584617700669922492107435046516888040449554887222691937637038654230860676495840735731650437234349281539201357732181973578189008316019877532391395997409486569511398747163083634869602839941642572626064912595692177234446109351361109804709885399454451538058367082234953445805872126466137105413478785712222429047498616516452436818861706275003186601080734184745804528426363430224198537710000270415307420192425263411884864379398638906684358783804755048706825781387761659430637349173757328049959341925364283065388585652535720487695375239343755048060551544260328196950016432310135630066567652923320009071773139234429525199239467482092255604643346622579202823398403290201149897007575181661603004362215334055109727825201639810729793314850519374259190084033293357634321214901235754214447449363379376583526136380251916371084895069194409947481518616697279686256914344574007785155650311190172970494427045114029978375658257417501001540949170512987466107424780002086437853868014882001573708222034224886094387220086756612760590095527804317852482170448458562220542346641462760096976859252917009105554995919536081497043271603410360470432764802662876680221625264190565069904198477261339482465085513142084687128487659351706952330014841343700745553194921113278570622782497581470836673528469312195354258221574709265244253375556519095790370458092592412112408980416994879244645556280474334654444292081201231143531358297803095286099736408569958332621676342413510195135277079284934754193217344307966573621764345116334380586744561270906662780379898171013343507423665332837759707484013619248061564633200531776954665371708268583942281372237301789426355446232773389362656527531882529007323907338608308546860816873329619293734138908065797252620788734702507623888114255631174690575739519720956022761274597338893907359190868808097167000861799797482221685812632451073479414434185795700237160426981313931659949961845341442922216477470349213469188897366939314667904857622914574221182424066055940682966081193602169429241175538685181406187450319350227273514904673301015129885202710688545822021339196252733671647375031140136243909704083916738527608099906043963862991074117903579291182411112317571449489608713676795538288010392919638596945019098721858896359561540183203808946453144838637930382124948496455685984471771301793543817591916484979317579538375014435871086066996634004782234536422077403816534953217808763090105601729716045589507732278297502769890966487653102393519290305052145225492663509403409144149907355986211692461787360492528259677730626610649113370707725732807631126348081614769083816889882605716143622273656319274981413684232514987814831239790930667176403821076609101404314355524130592997651664842255481820761548287195440327625177885246963775494596262887014416069074936761373117015934873007450650587550547270857612401536350733268382854784527814966165201067825493580451429469142167911046506920971618136858373067922157554667995170245367156842027452834251384747073013615343146203121398741264991183865710966436109421889264755689027528772488333634420529078729423610494967553551212393520301098483617013098687505851516528403374993020639543796458828722000082956671052126150442339255324349702454251235267383207455795609869324378942914152438836216170771345816762609090085209084819253625691668585345256623988038174957482190637786667204844980392274325891552422407000208592234284551204534557532344703860330614841171194498406498574245105209722654522278021258372355084528072105879523608687349660400335366912374727479182193267335536952892565941480841270875504686569937795712757826536109174043565660787153706160415878457950770239686644882484585246455237720458521438745032156585215873681067988149943572460533028465482601395294678584681052163789398443489028271849078845996231834747364001629394211466408871503798786930883133468041603874081917954819342051416409100046951116426114872912950258740291243291902028604089873405667564338902724499914438577499044095996459813844482091734498902756592612041073708879023833155856973948308532375460373149588895478649973474223904088745628717613761436904991350271215254972925503701667661923884130204218553591394798741691260945196367590852299768974915947334947489835350044595298378389150422145377129088731082702536406643049640592896519629346459032552344667123329931553526285692284158600263756864842058901030493418241334804120420707993848570962124759347058339208471629794707801022447770934857739580169394519036604529268780431451905149209639383952442968324605328211400156345091693378668297970851761631009778069470641536921264296326469168261347816364532366776099894748111682416265156946312918541229809901980000188380804757868565847265727063154062584065275394038500310190754326190783928324884171919439991936626216454059457343303972230954688552396190125120493036159595024854767796838135075595524344777174563660225302954335496722005643898310679614404884527225890764328657976678118708503026666046227497145850854624383105607828315939816107766362438867299779492661452120226409680736090940299992368609965425123879285748164119064893864083958542198922121725079186367380614482401717892336773062329338998379243605050417133691945384730679783369161594530492074828668304716421091340309848291513753213282436500464009690263720603623954035555213130876867402527854982852964217629502509363879644965666383220154372701892463567497659309376706618953834587565938689970015203320315755169983756939398069091244056045937708823973871634944213238582518859806492594721777676799032593073024766971768298786052369520593072644061014035726844631450037052619489387625658386245572041080549984725390901145059102498473775664949517563666734295319618420960946861325031392633557280407625840648045788938905892759831212174371483685567507675168698234351084046306153385133728729542610729868244073455340374620843682217569655846812633424845748835529998725232838681547577738351020435264769149131084310198010697476163602126263666161531713837065393335732768957119819002725798025842057374724683800295219719056739457603977147632082757793978778387454668710315522723219465860341856361463808193590914286038209531965910881137656685486839094006566475434741496919213561991754200266620161539750994050259698025419748640436285649951004500133888803213942724413443268142553722488226378834146933077176950808378092874276864236806126456762770311272473330870444218132664902028534879936869290503517474587105759343973443630352458397566426797470764989373781401757142646487605838429587063551220543671908371403986558762367034050605216180005923880887148100625986580352147245817280441272608360716685107991540983677171092301452327872956144802506900045859708576254902656004994452546737502091582229898017588398456473844070478474377567132288311041526970316618842165901646193080655021713202175432577878952046563275314402777100681019757129757132653830514965463993993744742403470173866462896131252624605987207404421990542529838248652192444443269882384039970137027399532424331517033609268399198141028554697096631370566127609110487930183075769164585905403557021533663318010404743006379439350222843677033061851845375853303034956090941943853229295961429716721559260786174252159534817981753319290874194484034888186633843752676528695827768282086629268362686276944747607637919875065641256814890149611456321358783943144195215644720195158663163291789823562322604767373992566618258853441553803052960509666821714526008407042931942803225536850453441473327411840094484989870471361912546234177054096762060935122800411742647790336319240487551142799808505225501089724436804885904013168345335754975332155313362952637418368251163170641601530745348845250478458113164866781332615043052250918485823674962152919196195863994466274832965338810725540072454744220166139080700423042762703172743465058918537085457733871096988862000709547785194649214324406633513579229709328165964951455246209500771876200300684776768004006144472071679521722734546698987509715327617800077424572424523553799012582685354574457217173129578329773076795515064565983706581657277054382454781336733721720909286178079216815451652625060224409851944588708181453294604565021791853831747356678454644836131174334253324380649562622054047505908183078671050529175063628812403750358242177474135750788799873549079675858332186497807793443448418393688957956598395256992960106932808944699968248722261170193047101192042825171476249096774311195431782191037474510523221313403741013948182059937908404780612181098947073350804631055764740783510448733228720073645577242816066187408448829487912757115061299592252637302529815240745489504572175342699401970777331777506904828926010916021171231232758877895918774018188408113415485879391695724067811449072990329364676006816401673404082198130230654335932792851407460059729017739379733453200328272818617117452844147077257904299697742497211257521378263970879573705891911299954223991211414001836848513574319847834181124945299215866361774774488889392282683953922543656135268748175132092148454387693328420072159994282756032871934170935366603688623717747065482017886324870712739706489879251267982492250185521627517176940516203018546711720569416762376427814033581901737097628782526040637427357600356483956456489332231613854350300924144492042206311528722602504111557568885429724903979848119830797222089126270984456288366477514822092414928569686246558705775352313084985300710936488839786626882222115095303273611089752778479690054671326392163990395201308964512702240536466688656219441314699629129046162555207394888691304241590992577978316618924376034927289995330774756216462951390529434898047956190220863938996947275196449127447195428812941054388960298060637705336997439048408806275154532254808107067369807233789887393625482099438585392589274558450744016944383183066706215717607438575875526340323880209617977771346936339090514937941807863150222741881202019604377705214330112286830113270204103281488397651388807918301964700242054423877467592445820375515689492472085190590213738354336669875265779974009992694212436816378750123181123594302684001959731422271545015884199106188965707648897138069711530658375758734126899011762592517576152259956783790607627156033234520523734355211152648310074798592276870074730194913434496862272595448384530754985376685609977950940227058100217476589562634789892259509432147091035239633748609431571152043174078991839507332955742581967630114536061272950262947539585461696314999840471340972525964589328074805519772549668580728130518348471959657351012909170364944001324110682479776284305539925650793538086416846788213787245455991572196401711027537319098930103046735425397141366331695295876956708138439484675526654792775008406403871012482534645866171274446409078437247666806692039225040704601839248022696729096198430652727329362158980811608133494102867611348374734131206929211740165302169283086130720801415882522090919767623215327794405356069327428397772108963856564473737397806979160843743948293706397176400647934234176190024018310265211271177427364497825111676491276857172869039671397577656216564166513970390088172156571487417753183305553028481133949108292437212433776491893503691798681200728673242320710903901862273608258659707393488729368231213259417883179537067951651206175892108234610927612633408209537846213961482491932742966035815764015985903886954300269240796436737943749239359486579890525605991038049140229186968820317792777223600793841577104713758863829035620283277955140400422511339174389970076560999793455026881259032002305591654069468274381587584207563203026899447052611403732136968083166964633177858693163732718517837224515263554144813463515600218582421795743487080075626408978720687562658259272769706557936045308967376665276065058455227975375800500433654570971155644904079169486783886878183402664673459390386970405374630985152851037772475642780715284614859292045748516352860187701742381921772071891116319828337314925135695833923501310934684167654970368198285547206089089712702176487703018551558509825439446601083786014217895562682089843200866144120497458179195742364399420573764590797063462367753899439079383830497907638158327830220691651667461381403842358654690955141775334273770710832105114119278570645250581316303459365667547509254944716796112153253929320291832527875476244022149679161720082741561018269816928303285379001875987014730498369058845442169530894819379523286268464401567033868222188576683899976168946549060152165526176889705001544052945499009153741474630632373728350218477111785403369394138942358938932245652682328391506489753227922099420423090600618484193807870054976539254862660629688983797597014047622108703008130642504254517580480918481133801357150962508149336386042569380744316747845618560732938981979475265151598212490973162211032480490479283898300474241712783265152400844844419342787292627264132496427623758787455437195126093075379277145017557176396967150782430367396970462049536042783937544375219961649885003621635691451468735826282128179709290741955135694438350739299870424420538399803098050077378220342354906217354502162448418641498281386441869986131361772853348768291915965954988494422312056724435259040817428656676380471385529308397172374230257973283597064922813981170888815346933565382309479019461473020599831540533566019637194428866056718808033913897953843581140878415187978956021226069655424812899520361606996323912856724619202069177170820261213888161394650358260134835325027180008145566422355649342341183228704953651419132042111472605608762475301152637512200492875996751134856825301800468105589288996210946767924999367465869046342585059333934887255179588794470988446726182392684262164635449733254368749482085860491961598977989553359733704055089300503157422378421181133094010705949182558999809381682496742731819485910498829601155213715466694303191612804097712372218030267163129845295729108906753337818705659282922893081911934642709867772775368146877374816480584448800190730696853518389102133991931288977558493346143764510985181131279859173121340826507474561759312957729374089814433116456365789341526448092971676230395272743757093346345107394252467596484501901128754095733147991779544164921914853618172301511825077801091602739779822489325875405154118794224741862291748189298547732232225755463108687496336654939038497044281936150216541006339927400938528215822236387721437302433827488741076631363100830819038952752579533596171503873133030780062465151128915323706399377401269099498019955159657317498342277462586371311661812482752158146451996805292106510865505218735934061785712664470070895848886715357022405454168525867996740153013162832025516724441449746973069160728686095085684464929541112580918601102131892599660636990473306727265641428382017741293650703505225874755413193362524369128804254938248567202750880157037861789010407646432455332386154337363582045257317772992575980286786105687782465254992133923687909463955289514072518500823928348290959181720655032341265294001421800284076315564926816143991929861349258155937496427822369170140159014174553164125772568049134778123137229833304367322133460324496369071060942958666704481129776839320061324259124874217181149101252591605640061948652323713721053761045544253105765058045286731045627113718395997471474378155658717756047278434110210815249884179873030639275192041648744868898371804802222907292354462060482446458772025157499023822029691295793586445731018946762442554511495828320309594729898165057557327080514537408838308865144878437052303637226153363987599232521255883213752002876235112920439049207024327255625481972143424220265994999713715061895095669297571795066944261779410520804722030713066579281368961991132593886457217112682716624507236456055886544138569559087706277573726037258244147527586491151608508307267358003735899064062227409365515867334282387047541935171625697518014767152425752758385924352876423721171985807204717837945610152382433433558817467081431012788936073379423373829008792930954910038571050518288004380242638840353181979057666412158966903898441075290621234066435476103641229386942855270130435162215334144674832944832885001263500327906648311259640301435266495259353896085808308221838132373590164718224877119624261969150505571028670924834230264033767255392327246859053041810435277024632999408234589593165569083941267394668933824369204364161666904591239966147142008410518264690233843556379798084225636670517477917957563162631838889295804645483038370034484643180279544048027242960265910129460461660263037023120896544147471566254670644004946546619812176435862158995818162426315382956493206122327355651242768643859909142851572326436762821404502088934970248116875342776558933266820601636985355356833717154579884208351969167581958728190029682910220735810157266480334774481536411803230881995043370013365328619684916832831155338725607753153886669337191370130117901906148110229290453557123669743234176210053128578138701357898317219975354916287205366186573476588819061873388278528076707550528585658049531934777350361897945084149195871647828029050858826723978231256251905195762692401164943388915037650629152548824597603553531930780279333798991044506961440689963016413606246372396139343350568654428582937414045109396856429975732571687782624942587345627330137381000874742975598542159709919882099337769267346113544344582660455801995985751237138328353229211829385090264595192867797091538073963938591045362674108477596235583629392409201981763748846510383316544031065758259619788006705696995370196853918806027545724100414602439480348637521354747145718108932360596827145609528166173780546148046187108008918134699093652589710106054521101035940477204745052147502207081383718745870835179367052295008158982910820062170450378274761504126684406193869307537469776473459434944262512989480426854201133930667385797234945746647182717373354023015222712582234998432007378239730082023976883779368329991559569062642038128433888256672182424566012081607834982913172491971100526912946947028284538716250099893180673751724345016000768976856289491226270142222082596959530447290839704373052530669527890860855443307843714111459368295564296406518843342621707745544189658377505898315901830342643371726559592081537897342283008596822549100834739003364573104876539720500656494118297291648394912998756602694517224276274498676486913153145917279707561637947467678797633514183381576529038354794934356919488972118525570135612536362045484398668903917368820324826805287333426373827148556069716232286066631344416469482612420257430297770165284432432533375201763599201953972453896651236478870171460546199093530147214840594778829224384431694884254184662440353214738746203434271778381334016841262610011962303634899413610153322223527247489770496161435721568426776821796635063871847006699445587537788591273449296506898234833318750691984634514149038621622348598063638750708649725909408418457920221764155551479572329433992852233917335014743904163791210160896371328143873943321608507280576971977752341419201213796713953954715793831214385789594299110395627663203556637199286510207743180597907778409717079793637491206936785939538565100638337594745558843145428766101907224910919835074297347459538077747995399279764003679575942429681046520427012904471443068276870335682362609240364325232756178616536669161345951515437027032525416361648733642401467813572641701655504238908090192734308875672237761477094180810416269125506659129693603784887579286099304313950061776528421720223630969227799828235870907963837943507665910168465067359819254492438097291922825206695587791050291938182358124815181528874755229481777292361139737220861229464528413087070442304477977481936368897984534275534624519186907406900300455710543339755395862369030826895542201517299184340056287877175198204991279130473170953391108817813007184633563167800721181422582194354039775567298906546235379263134858417322600284081792035257970426705819575108283045811491428495129518761864887342323757386896991594233440043647493801600831972827652879967785029478551741333477540348196487319594027389480690094525816532625190317203789470837451604526266900475938230715499198388272442603311122490340299290983381207400058598923801071068340661354849035027958443395590988277318500906203074720053610454744207247818691337361961464449728618713165070197265616450937551994498183523133874133536692873665030525316062155798010760279685325495601731678615608283848949302777574232665924908693242325578750362271536338052444415710228494912611139496741920763386004116816493600616513545969679988179735456642477221374369870985088662580345247653434534875318602411254947350628214456320187420611952288915816083683233269956228993682219024024626744757281241322460003920220033226233009343163316999711695512261722999727123258593102639465023776325907794748436669532871990118304552534801934155274922970901718068087885840655785456910544875149944896902165135977526356126621337608978239155276330452340367613493977692413377449589274118561923551566072436995921476313711619888369779348789500589111918262442874736694532645397817103841755016420852562178415504620942101791638926669386973280254014308883001340502534028715462839457524974758129181355113273195356082667598129336572054265860450545616670241246465946657896775417923167763173473400899110433651196996047853612897658361321481446024398756601804430608939779146923136950075044679958953514635177215711260343459349801458212735319993313809230226475385774846548862002046509960148873158868055453645230452582764567881169363435287694387144243435674162218324733578572791831131926413505249074665075275196571139142112360618963093955678055655355567710395438879438242941122235168391064146766972066722180670817303549192629707912287369453247336750763804077388380758592834985071214966838915547730595592474388587150788680975532771630135995389260823973340009385644931813578721172966203580431936142257583255086808776655016762821816192920621080164178246643660418874350376852945017981331228277436209281304547862015255243015473331543224776647426887578160356304330871079090697809037520970916829468236623971282590493125858919317632635469882715693409290673893454164148077057030126339287028283047873495001206287525799264028886205441982419091824924646667454982631511735482561102676749647421576237582909161710289577412874875453708410930210346687906464527819676785317499411919127414704876325035497177528527082760489109797564801525759616898865099646025499656696812824888411807135903018882931227460753215939939154964771042633352454366162135814788913591833012182178604478206305907799437708248952290967116830203997685864894359822665686159903026062084615858853944120040930008153864298784455255317540863691035747740289295869433091305961326909444418883288804682083319725667600327455441257202512194793784983005899256241408386245395490170666466977028240592583616214169719983945296620986975642020639023976801039419113441931901142364179192890258536219984167607442024242234191781393080874148464339452275771140912854510751043337571531754852926233538913758526382124009539529169528104202986743259830925916247948020766267080519830098484278743726807184527978531689986203478263755540491388784285143094953501874553168175628308555748805646355310915183688666332042122807161734135149729153609088680307059536359790766578760697693754735940602183179833673890046448693130865410367737980352316292994113501690131999047290968567387412182904126448245248936782905852694939600525933944738680232492387076060907936403117351038981049134750074897760863495420543234956014601738234605598218668489216630975417973497797148813932298384127957838944214284451898007298542986586685686079997075219464879960351472303581505877277924044764051749836151486864707371401813763865205880995213829479223955628579860788924561106141883879219182467026334605874961577508932349535447060007115796675226558731305452199620615850808177510766203394406071895718343539303756668406583845191413867166723073155996840367778404070531909132529652846449222640583913153298014997165882448734070506980693007343474961683776360562747485646851644357417367507559906346501841843200749044741304580863052886558189746557733667812691584132154221968950748404431498918235535775089770979702423905202753035183062226180358965175604282290527435273040285623090952021946205821621160282916507662246569586740296887695736756232665209472403200471994715984226326323590958533382636200953904810336029496851315924590214377025802355264393028473751433706717629959293425012719948035353849017085918863009334121527514807899539098658544088968567034699540865821275590835543079185385658285613113701920758220974510807752857348157001430112276241043522934237354962606642263406901612091525480316069894538111469908477936801714197773185507585867685574804254605178775731742086746050841278495440730472032450230695658069296828030948918151994413575601308809665820892015193675963445507045040747819948284174744257348868043107375122540695949369518742050368060817065310618600061593375938663668387920651973100898380693675747082594781903550528932868609396617636144341256386614965620187992584121676947708081230661507003033564517068972761795099250515459291253555881193141357377250922122194704270749142725572645788990229726959223151387612407381830547775181491055759503978303790322819339456979115663771031270887332458350980024364262111238185348714486948910336627326713653418440381032055400091373477294599548928098901474121783044824958817103380539703237631046893726069717305577382611026405610254312636950617030957208976437380965024719442147629140428455303752872877227405671487968784446766061143223295129619383857405522597218875079207822462034392760761273659620857925724170217711885450055403128632397687810385683180388393884093054639445591364294316998315307351584595601998660319234154829527366178450496019803261261047604124764473961620976236855240735539419691375016903979990705942426577046323006090368739160086248591936959692032033156886460159060341569665747965117895146718455846042582759912748920444991605055351412764400496379197167686878887705712737202433606265216712808634909372379926641483198115880394781448070373473423701243414703962456075237550003986098436611977386954035392538365854337030575257267351769393596789976586684846194555721895278928185453507267915992281573462238265820878642169434419129753965488760154311947717033719487840374339954546234150676327207297734375909538231257331476465399431683717857794331273426489286102673474724835162592854784757724046278027216179698832525048065696295642369644248217164823596681717084716828139572683198361074025612613832385228431330373876835498173288092193181277317580810864912198277057712761113029219243131073983220752593642811494569045254690692628283287227929269186862147399610008713109191226259690080969443049441156950281161688255646631405242025845474981684943447381082020229797965951861078125574213972121542813272431414862854654746756578290715110894629564116529126999499768390474276693717279351287808777948712998100049541481960310814835464037238819250145534682803830856907163513399862440578991007777853657463016090489239075020840345202108284542217009956773492451791384367286312885559233638642206526133486220886251570505431723632796493609750037715899507249742631720808020459045563368803300482552266538477979275620659935278506615334001386653028423399813480740150624415425594748562340717369842405614037987043325459063682309104989461123791020345155735991849368884931021905912123841980621938894577932432427726783883719950837500594023419939891764078195911729601640335618069055368379874403615006508534535497317264351638491118557066035449694706760663116341676387472544339846843770680211519207997778632818439903860893195482209361326794924667789634899715214422175285420472754011792215150603682074964913049351223704579323337749899761964236010302943006243921298484299655079047610546875225888494463010638063867932494860563309083001548910914441216873693077094108174864205135480988777600406243953437476804945684071981867037470293803007047312187893576839360295671938350611090895770904701607037025265875803849812989975072472606485392697716933131311186288035710795238324295397036808024243125225055710456449409863911935208093172596040158597400157341298478364007672263342822546493412171551183776237338741501016736016467543358739490403458207446193819248484850610240342427972708100561031100635434234056127127778802365615926642968884887673552592750913672831430428423213399195388555567132645043219030604156819097747934537354257181663580124426680471208772490417887940338946532179590530380438748713452049251855636492595601741189000555796461577365989703742427026466777693710215560390733871484220772644297630589025865886415241884441211187183093872668359098680969447876812900196067854370448439145902882766454229044640640238342463162574665312890506597011193681679388674109618886456001130881297888772962248062569456876383530862287381894161178579663144873824838185520853082395259054867941740853218587062467783941115131316116438917775522527413945841601526881360748680697689023421649463327248214576001698604763060589930236137130792383119411724465822848223944033727743583628503326124215690049384145664726785604758050452728089459749537392916159062022725104636097990345130520274967852965156867427608414773884457031570140860468998359292783708058004627238386923281388390641173168710230837700653061711855832631376497275150120965245130590934134086753974529844876783138837665546808764328229955352269526571087828600442680249022129340860380180083371858229806920310621281776454125790049881945557558559876519615861498687633179484704576533675948226529679777848301398434632498497131187164155062210748911631766817635235050780357495237451787130612156260145528907238288306747065392260100924781419455766988495105771175907864223641769659263189970599696860100649220043665647797190880254182080399743626963624718076209743147710323075167180272430507880779450989617152385757417811818550813352463610676873073391031508724701724560156024578574564388166283230315827347206469459534987970825294344325995128809205892519265416509913651534972666399185022296297869837129917741427937918217668848225105311333743392158146081638127449933333619098731831163965047264507946482351541744170946212636544661612874598160493175331051140384489491620259275975577702962571655905883319772837110464007732420908389975587252809950614693083615219000940211925748443180342509258872561861733625340586519701385100437311373110265887608696067583535292216133963475534846514999100871486073800589949500364843830472468029629145339493243934590322224108842963542108343540357363946826814955319773646245939916347187637812329328704774571543633541567658670386248918235623239077482956000912414696233027562438641389720238161404146223423501329183882852193103332319523360225486395972091167528177641462613956308487447597609969330969912619998420962109790187902151768642025626477144671941995074772033998412070281582219452270411135089541079372874503102550448279771689213852686903588110813195315711760343219410691378949346786233995460893010691287361556036277739044098895432453059645564104042875432574512535964807193659778204821373997047318004320499914595345986987837352845917911784899605862451097836756264367935813366256783034543343105846356923681087153517807128386664611692905245005200888472501857148850399406172869017788496139794065931716137570742668210464662159740867075497508874001397428539853428563994797963220787741956715745097387541002525467477836156366476065432249427675133948347752221170475223981196674598077502447732435376103917683613565764799482676382795777439992458133362884420557680350390467406401400815556397531932045994772725921466453820923646986517088962798124275978696673999655174845858620112704936076954882989364512379108438504596963650451735814558803601719026889932230699749862456983827423757073852779474678698067458621131156409989467399796704752225914403639278093074744399884851253586289621603303259273112769863783478135956027819655126089520075163496250740651088989183769432451870034819056405444485123706947808044874331893860894153936110672732040627642135457017436049672223288120096951003753125257645677946355136637498057090746214914145895362735867819690198515368639260092231252123520588674768952305291963716136069525591621393586457082707008308462012746642816115627060862359257004966016877125180114492485395549417584911947723673411113975191105299712512877292939663343012865283213398119046748136384873147769349806701855866864804190810271795182025728191861670369209474878498563841189678894159523141614561582033484105454740542792647069395687075597799194155556489323717024842013384390863713122848381750827433619671279062445072686934527509754414548105559754449319740287086480941653236444504980435367591055552477911878255411900948167664348236123262316494453461091469720365958133156271140649163711111138304350630146724920954471242805274692178841898844307386707126605621407453021913791689832218690058030088817773443714898442091263771756696291890516555868093266102265175278187166518606765078416457615917222618301911855564661662968153136757587586137869359954796150932357299416015805320101316230890459299239789999447223931464233822673298879407138151577906814141053450485829135859935571085913288225110454407056724519130489205646908803591221555121614444133185247037269943432649881055669892178979984841273694773934370656593162646419576847716170859948502646943249956091097828614556830058832926533039477569740705645454635624136310836273352601117331118184297810064177114714584793362242923573188714069833974051236502585111639490213835510283226394632167582837728466897281758124335068446842789591824677847043118740931326714411133824208918623966846332102430085164856667177390315020298615548903394312678912486986458743127753340862390363092301136207776903044618005364240203656075105417113096555115666352206394062041017559113362316698449583517422694570635169714557441679213331313130787652437073080724980273053340653608492125016177030541920132381748625796047059932484514513515622620878571529033229551533165428399579511519007436018995088310920520073646855786798074026032385409131608151091140621003900766091670069714330904615465659782037148040225331055280125251075027541252755551040373029660247132900345153501527114324656729992601978041175392395577524454505738797104274643798458442628974782028589105711720107405863318194702762065663073362800197489171971964827167552225886287659273049894690194106459049147855083798082434763056122572783108211606368729848519651100919960856372406161539115379109605075106075010936644225135243981867379130614793666899225881919600296880140395252635841306033961898420311042556864877191977911413019950575293400633597542612682081474633106021101463394667639710548612416213570926880010074240202974181733498145224617871462470192592118420109795721260218976917462288502974815718342263952671754122891045539734096584100031493128571885218198206782128792308491112705762304579165870769090114490516850107691874818840835621921592971316502562115215338115571814981699241772249311253014127169425815504756801488814817605959982965080583489178389468616533583234677034195310306194697837675014823922193220702444440132698569401310406773507090334260373116727959635303135013804964859686804192899028687507040823827734861263594449896932450544918736696334875498808892009919010920810276147249716723294131844539048936608010120677293673811485700019296278165874455609295235113126301495926078416533978987068656213828421704977725116726817591758135227387618301170584628736769102379370102460927625383739793899794389261408025484017487021358590466015356391826541304722388740617842654195612958354681160577640822828019668101650281471780672450261344343637966343835612386595422156106276629680732295726953924224629655743118032840934613701710893912334416683582099009983492858701502649732731077156986996896529519890558929639159259643986732580183913589923119038675868228196285775623746788291041261860725979577870211538201773654561861771956763031115478679474540134064497534749616934563298951830794156094348115994827718232350892945966711971514810088245879939585220736426818923973301589009178754392344446411539605091770099573878375140226500780034167133175438143082729796683147727762069641238690273131933844251924714845713384888155764195302219075885824405835988624439835139959716179064283007121746393601172691378162263423108613927292529218459049333497800739373302483852596690461471669059328378806762454811175855466166880953280235493838096300316456647274028553909666359699942567634569859380862463943230133892673483798035117293994704556151823375591285539292994841696471909150202824473319342408672115321479263277047918686719760734346742220012980123712179416491100074795151178996268892160691593204008422597968887427832141717775957677728191142692100882166965041155262107541496936175598203804161545630890024728375622860374979486256976991615830029624745371911296749286292919334162002929271862761625560330515300385126343868784342177571752776437744084889207014925190705983520965897221740027944318598797984975432357023939727784690253505991766683606150054829415987933890671017789730327676343131501885501446394301950949532907247391379370010208934691876579507870564082426949824432710552493191224033386444309078742510544212243794040165143549455625381710201846142017377084863431673538171896296622458223306947146688407236206606720864615250363761537075170011988711865293044675318772453545482489213761968108471103716236126351458877116864067094600849361165599444139945183734895516198099861954188734495295901124929721147928069197536687998252461831850355242251232819480217904470864409762396479247003813906661594226312986375893202306290561768636329189963366748036115647284500496150961286891327122169251725066349223571921761953968125486861632277788458785984630123083278288726130043569451066585859150552215753645951779010662119332501338463221936075578843036113588977051878386772995816841104215676818214820346828624223894430460456703240521027307852996776427463814997456677381936432568171670553699813654634388167320100058750254051463050366656511939055509050830270254607145599864672647575788427971934491529611101980277416955427620126431339950090905262757740916902762906406282896429370669645338159810079150255533967649598042465486850787430014369050005582350087181234288411686671976980600415811225249570867706608979439359548762343779910551895520483239480703778912884745372091745925370688520859114917207132959148134794452781279917934503322675137161387884509659200673450547845788609046329371861976336204031942087365858116346851329676502513272292467724932383627263987996336981417694186676069048730642844686145520273076501267699186117860211334172613310393546207565797249449447234612240026384644006941318387454987024830472692923567947137423992415354539212497523830722880557815198487647295777854011821111893922975308426601023186451782330476177918822039950519801532474007099345161927804095458664897215568885229975521860805947892159282981125227766593864891521376852143349120493854412445259873355192458036559126752379125353441147076940470945632180767474140305338764908325913081997536802988134093044475107833083769462136091838308002473168838341964677057079804848475077971575116999816271603671427165401394907465593955158011632308094940727572804221120459699947897470539146842285573267066991189932079202956342355841694216649535420453942129569896341244683575634666026991206866830282467315036555146341052856931509999603097681564046419779190726202347763658720537963203979704707257673832175156937075845238191148015198859995388749906277846248693273779325113738890861977540376574963939274716715629921079506635571505130251178832446511234218589895330474511543162154317678725860846927120797133473779377294254583784180781396278753941925951969776164678293826700287489769939054324727064254488864322257487503122945360771546533340010653951755934987037906995920239125379426007448775561847014485438650600818359890899689013571305366494485457845586367667851307751838411738582117986318673324915341528277193909396686827155792856145589856872954697676261658969085617598543676987167745799038264865662586753195022632877590868654657793853869294307686944757118113509524722127759766904948861250057097932215180117608434432364856552557818786632086350074327890303413758534578174738621688911775806503522416644011135121081550245725926570590906486218908602943601998374610114693750483199460914423753958204649403395096560988425229041156884782305802972495255037217697004549315049524964865879210878472973186089562042262597829809644069653916662834190517670739645896264849623930477973576402265892299525891928542890796985476727829739090658240373589123059679651132341851197118595067107166089981451827226923496698362631851161745011879350586828058389870015101449529156900976875718417903310094344868856230700235887244189642773484032128973466182118587712246454657986552071381722234311065848782571898394754795200253882688250632756088628366379336225673066891337975891872598258005895832120156982476213112085239859872898616314098353560023123615780983441594167019524401620032185219069106608728192340431813169129842611856269041939982734264396157814460254933362243915639477516472901210788455760206748265321430817854254970770460840677639672565025674971517046046355212344116372344280225810418399750111321924023251572922750299417141524502945156029893618500717666767760842346560646774340591042447203822692667606458346352793784646796080648544837791498275852351177991266072426379201761397009458165760598347747979852101383917559381607824701998211275825020628289782189279806640475494889936994946250858373272245391115475305900854358627185554882217929133904510406711270710893378236077211043762858765924926458001052527300805821566841047905376664651935449409588703666136809478865819873835351334393723369864865847898064763816835563513489383439772142661368792035302484453737432531175067489638020819129610803400965903966108373483099410477085784770802690223814553885780524731548484649473492934940641210889876704511173264318041560840891011295870671420566841993082505037944905967486556454442814919511749221030064113943263019251304279386310497826329950754516432764252737969078621843532539371711062941958601384117444959234792978208333145057781056027492787768093365834366670442931695865403526559022757197686104888314031877710704486407873190149698575517494200313452840196488471682705170157503463999619589560292130048093765520143605530074617070750078304202639560773996388861056850010737612092301469208799201701423160972817350683651730254243670078079123875477970941649569826796254440713546177732636918061400315481487879801832404072336125432963240464753288356565612208473806125658353306983921791054914725485895570133090211994720299467353697898290241369196066460953223658290036486601448425538761309321848847127240340645781691099103295895443193115894872729771955957769240872711212369186005451212466530050050594921871405291029249189433948165957306106022857640792150275141702559920433662354505057202759532954668434400233926798198404207292751528410285400128390006612848008347405462270362651199087213547771147687843827550921334280260327379226828514424977021401695525030955726892801334019972763629640056075408858001921011896724689585379011913328965318047147351498251381948105105583933643615137125334176100674804550524807129218248555481582760153708394591410185132075350510944178138648182667970369299738725034777690306105816052758499858216627960507824069884454065311340162385202967403277112895644760582845733839357369859289580933737585954676787282397313733490819617770407022817612449947736341454605179243602113293744286680138996441073096270216112433627504933280294571109594681471410053409941160271792049863201710232700726488821944926545559319673205312005570400710580725556843033039522453871666205382771999754542487444621864087801391446131765182955226949479965905916168098311304209588211108295497097391905396517120184967934231907250777682775794488858715497360335395060832775672772170779496427009862694320037377373258992231613801846938178945953453133737833280993697522482849118936105958547995235989670865838397706395810245466351677511793544642952396696366198386887882512024420937621310652015782335194284602530168176659914582637564707803101639860525935087131360360115054711335780555151096954930280190741511490721682925227427684918962167785908483989847468330461883276805855051090747872656279102820393510054379722264069415436445347382374391916089829218213540972377501264226233753292615727082714544692007400086383811691700351410344371944044994306710701675052953149571185357295682997360841016634824826030049103772497926993378135401629369151518353630700391349767518294208674368488991670968180274696698172152642917186451265129258028347607267043976849053129674038855305657390893302709513461786353425559733063908830485009890496958092495026189984158344910659593427137485267530005790968535117440966587099888140484612290703847333684803590996547106607329408624635546310980610963259178688477045309589557120765565357264085646849340403337079214688675251445602745299205571222742553995563050052357790108134677678381833907312798648552051302434552477054298469753242901544238009156319943803961140362029314292554428870206600581067681874152252049636187714744701449205066360592365751894313371566003153654345535708862864502131824520674588153320222252654526143703803756414479593120182789638942953056180098024070780361904942566470018887200439103824794523605231492332370700205452703225042027986686568062865434442395960794650468345048166741129689104661219891164842380271182050530142793901500643615892035409368193694897140620307836485654102600210611133434224099362939189576733854204762670409672236945683157220307423141158943449962512266630951618666693111755925004737757295969735328410247612465741182304936787576288720950284404714345247990602658469671705870686123690670460609445407855309828634784678218210567931597524408841488018669139564263927820990299107902763809906118664024251862766889742869570643589183337318621685415010887139093396965224104066937582249191035641928065175347525473485428291478743249452694981013306033730968570836555523066675011492510465163888190435711911694379793343203847302875970683329765323168826568294391227021553953235073142372013954312394405265665520973411784122688275908729951346369607685645858551248907191996790539285842094202256043114894075475066241924239591605680155488419493628417259129440869106082951272691462796665396270850095377378845065717587861639052203730844916632663943517537182268676350253554137730636604105761330293425305195223975344145472081017888003674662819258349910452108166307425617615621175808927864012419385190324038712887714516460897176782820680555513325809623373648599095772576632563809433916602175326008868026182413793914933022808313249183487402697286328530202144604300851523048176067746376766614228010822936427608854529274487307364953565595452005593941746958996092140269230297325288437178370072489826099547712945155122338761482029351004605097013120604236122334806623011506761248804182781247628416788172535733954946964163804349595970443542245353149555872789249376590072835435340886448740608543385681570507997744892137522426364928278719501016744241946013466113689999105770489525979269038870351579476453521296419083033030357233006749713128812550540547650005237042581405338561199676256879146299015775519052529228776219651316309436916059732015816170138896389808878561888453474273702776343421297122631590057022616358001344391781494709229103730853012106156115672364326257328213635963433669987176070133519355399413549780552672267967448214951318282062570050889977898169887922463550325758579303003534244308164964864318744855283548298915982614185798229052798516001827269471017664328998911157772182243563603381756608336345073125167624843592477430515511097264547198669133615122176465350877687529354863122965072623817761431485355308065609509614510268012166315513612076213085321757775562250345440221531082250709075792106335815809765454090365403452111021678735229766569772222784457918045217196843542960321553516987113009535696404340426113806079765128135517257066366028624027444431230396614648440067759924434807797194557199469659142934501247644960103002084350431264126458609627276361036848852521941224434220854566591195788430282859672562093238539751398091662450782145712365640802357334065845286219568780755657366306539712599605986876206217490587902521623079824188246493473473492111789354809155024416783428491758749664996732800869301919504138372947019189501751080814303991873108991011958971010321617148023974008106028198932593842645357231075708102694622872392686944566577162012415910565381696553976201424170973834311983137163234444053233288770699386148692430522418536978889075972756217354387044911180717444033209951401709148731643723072573811943227104288635129525126945695789798639869648490244109727681630389643580941608405510998163684494298020938737089088532191952445990143765112231308878682602027286065961726557207902531982178750021190305473314360154022765509850168936795168813640046995244604005121841672955686724625201975475842394638964682057564416099403087880293040914892644113913580125502092302510903942345126648010356491912756315390398677432183123584670654833520509626473994078264904799678401065181775478194524247846142138402225666315276394580774522422534376365305776514670034223062542949179800746465277552771283229356295006706777315305092175030909157375893221341238490883091131320837240626954993324363499332914379983140096605012207888817655303586778288286368719027575766752886047889781634769695209322219469106685532768055677381179211139911375019152441603535451902055737754633184373266324910059035550132638498218105566333582033578543959854461901217275390910044745935773970135420134848924121974236207319514883412559310863331596290217923507747102401342343259672682522509180711851691678949575511735264390525328263079266356702171701264750232021551340485289598970963674947148044810957482477013615744040535569389954302003441244448034764718339715607071188604149047556588635713358924365706535368037886603254358698544742072059241483364380756951665906439015529531821087866102075065271414715543134233075673575062496747603102333806774367650751246162691736109624426349263601026316094387644610245874802109831403766193511023229050480201403077785172042899821981335756162474673099066047572881626294911440685489481086667135841194653205107515708334950735744433182257532610042117233986321558609341184493512935685741391325642500355883446363108074758986628931145139241476750186125872506266390745276784697883959546366792034883885049607427675171625276778434465111621555595631889910704001938187992675911525580301055211633531602819204521137432910445939321925199412874839379833791516013104927759039056280716766129321576261789448547002475218621330258146396814794136908906247124801672720831271133999253222420548112478507169811398812541238550569185190025156947700383400790633732470497555947002119019920705532755363756056663961657457030920134764892553014326377347558297337378048567538340864680670893710843662223210442696754362750348839988223279686301245000731779726884405015051191560142533918096596574911426880003284636588676559905562282995819755392108801262813167052462304297534026811891066551164332347748612735059730366452398083290053748690314581363049443564562358344064342032163375036025878407127770913399437207568997771706516325327672233286558948901494274598382252923643645257151088324983489182636700569003115011769417636423746315857310921743454867886168516087364876031078413310261209117136033678600575711800840193308748038548821108610122367349837403493648573836460363072395328272151099585826507392125270289576246092234527876574114749127941456615986987958295991447942394582296725371251428062419451737457375487077915166982264445540313095472347288843163167180405198713658899518728087680653994252080568309134529921521942668922943795113371552260656480151682662755669057384971021219983179579088425538166775860012187904382504152784329263408751679098810135974086897777787478756578350298428303651878573510949074756010586491126073824931327550613007913839636852412937230357328985459580351758867521465525092926728557802247843550417122312019590361842784362706595401823142717935907312860845857060259835638079476204774468453888205287756356422275668423428914648695641445004472861095326897035382278737695254220699347538860562495796232624844902848900383269847624229400438449074785998382108225303816807358297050444092432442221150575851124633153436000281619210850575519510357278157723565666196984878559825066415724985578527724356361751266028576022071754665863623890584134865594926102970571453023808919383836560811685977156687795673623566280212579513733442275780699353639799252518665919090329069983710621553264082622222781442762920535657164755302475467206323697102305016636483945109267787542247746702264564064398867999953368185493513041110089635508315005860985853454180518847451126423376434404020052112317291176696776238241901041940614855141691323408609429443957318881116615943351409011407223773700749631360630397898963304051315723142346931140652213598021855105274738550852833901217127569234556595303397030060836650059619584244300360622679400372584988565121496925571855255474473018657492097305068726867675523670420224949927574656289194595570721270771411930408166034817436832266722391193950960664024801718529531980279750587898665224516646173007613380273489223419768299226680419815604792046206340772962376048038858731530356537875819083577405188635755466084231991931643183502583837679968923249545898675650999745935106732709995610047611874100493620493849447998603802670850219341621615869799450323895017254050504916969075795772802965059802770938811093697223404242770499370269078263905246002716646267927269019061948671494082999521256845271000692551560062871843452703989714516585087127815985847238204102767033644772207395200018974286274818376927352767387028529157904282924858884129189175311394099158688452619983192438046844838462357294917393018037945226245909095547471785949871992970356572254168926248210631714151063779677670004273828451866537567469278226944134422833279250078737144392332146043024667962632879749689566515765410067140087483195658672836660754200550382975294378671582894835275596184264921540676631268230243358915290809454229681794542562505795658928606968683047568531321613639749333077919808553363304048522129677372615536108951373170954026451467648912911461739930353339096280575229640583044806750911355888818765398922233502874415291451822459920753723052778034556236772069100632634158724944298198859968004707440705772927056438099077594445647917948151840838399283965461294254060603968049810889402323022551915484345961078869872354643481499086807147860596823045785623711553106983951276993439657992234907947868678452984223657962006590537374748291937995860435561655237840672083853255832962057500679330036160188139747530496211938325361349619663254661923193575755763677454110029009998306565453606724670745250502110036061064522036350618572016516275107222197598165211220372216927157777488422943393022582056212403852575844985493464723616802882530380826717556907107355231127502021006202131078590558066441606483412017998952139037386505561992606114675605236387498684359405526855209183993509206922008084399222773131174588791641035131460177954709265397954885105440536177650026055626928500387713837028167803117598414978203936404447503137587025454820476589439385895048516967126403209668427881069285546040827084266963025709263732892562247088926604607636724769375677292313433058235801298698100997112781915632672680796402033209827612598856477683412510675890394600259960634422041245928731211386652215329501569739960709066713403221302687120383054489595304540284387651236720537292733907035749625532470609713852311475756015443072481083553166701023953918396747861966481783919616844538323919662519421474629743366754795401971299831483619383295112280998114924319617287902246122790754357171656853906337452018729421137609228081780083425229880073508916776404140324845522121339752438883371856660271422500532612251223861289243450629277409846382813460784598772938871695207511305850610271042094812181304670507700730048201127809964422368994648749934993242446115027071538354434084418790401593001176267964766494575004833934167681272784081732765684849800641320768072978044567731041292860182371036673890383706855402358174300757655433927233937556791824849550234617645502357961363095960408089471802359227500673500141212615656262837735329142553843302255226491574768869806503750591558273917713391683206161340465023822706116264935131722173101337904850943300149812183825781531003042014896862867308667285288395884567819137186969110784666642474317876134758486085607589086646357909434499076119943136539586395216169631214866790394281680330997748019788289829181511806372848792510247162282281894086823060906803919933956929172183886971761041985901773072891427315384136773953028543034515228737890058468628882567163143066529398353781700456616364825781193299581273726890053944922471164055560761488506494653297696761764643844902408660287680398849461022984243718080256472754755600152574970165455178055840059526769176400586864667511155673201506515051650644319810131058923447669981954384569772897052000918464368583888505363604004517826596361727716642150297285223776983886516522234067655712604287673506183741805539002408746000817301585312414143503598550856625065908705160169053112569832075759723007484532236104309223523471139362841418024689798259905844195511408223735002429563997511840325792093270007024559251568903339550943835156343739152431892717398285758706035051132551923911733139649777946417868565500416082022445393029053334465775065341085177029946348504598723919615171144254824468442085325364087970434190685381594643160871766440156973761316398789948891528224116704255757676498015599599688422642204997711948107296645226231676919282140938062577653820928599451614911515932569551601799837615790629883430305777773409292872178354748836196524919794267522180641744090090307409737111975234811004918871436289358476284294763847490578994004769637522295012093597832263792253094415151549867759398280428915372962875489195652349218768604214847962635785511931000440190083362395004018989586371263516046748599197547442365320834392204463219843512450574764197532097064427029291954228526775824027524001805190738542473818965779934507846188694497082881244455015916127720818707611159062353173874905149045560740215063247091243031334638492094319222925544420825559086683549337920113233268626300192469511614334690471741774408336593974290525928211429790998156389021345842498088490138186060366513120771769019482481641888284760599660678187856429551313850923246883249843108139536630444486185393955043689663517326917000990886859999872681421878987884468804630888875811439152004708190199677993155885117611956967844301873564871533637979518566756574442358153542301611330704715490086027530564700362559223475199147256560692734241562002254390846705673086419133675245004621412746135994839287890003913896631362910938930087395890541941860164626564038245670802895504854495268579256317769964252879702206520499596867600596994779432059249408816786924618281123222999609711048990200474738932170367491072914756745064377352943319847847735276284779745002886810600660646914845962796807477708646931334590754237096219361162334919161758368217072119652421019030900070979595244681165765628197194308071004500757668174544853931822493831504672345683874952334127454441472290705805338233875047467182940193570031625681453491397630419224861882664591266687145610582889062189569332559976766589934205748946496777779925664425458462142978583082935321285071273139059122398663661851833343242238694802567418592510557663941567463385007550244664625335729721407944703022259475383302272757967307286611340635812038725885796659686669528883070395593941390631205711989864600717033596852894926537791050960472264182102089753187504014836304733465136829223587853907463015760480355306809149268484984379575333771456456976681956616507529347894625811374069362761502863363806630371972926753775820861081932468937565977674283875101387528061561107393469996185764392542742240211126288773454965781286736311870933540569590251762303196214656486654791069311958616311209182581367064685647145128102808649579427855334784876331293874710237192702683445047965715285196426941989063150282100737919794263897844769359136929606420626029103216000648611589432028163032122265753201322922040674308519625650118409157935394320510364163477833633038890132315216704633633708165531728178629485002408034052109829538510632010811622784904202216780058195310138478171995988946106445140198524844627033603456658355490118475813523269780043508396967204211363867067337841276646636613612859099781021029097899011742908934556393276410614339365192621540807605422029475543378686611039522698983814567474599509170502079014654464803042240423964416114311462677072057629927436584520246874227751413480400104851757624059109195690363665220555746956140443021441758118995794537740155076236703170349840327619570702644595436111084449237293879396977148455887050705642700741645598946576764252559403783896780938274605322973445374231837861340777991473929766744614625481002506697104395046885165851436822839503303569601438573122297125934011344465796210512456308604531090329230724093653153756717884833401549754933275711982690251370550558138342533761028597687615509899133266266501112831730653879772994626469364671249384688039983653075241184999647604694349782123952263904173506455754093301616602725805627899280073264085284824051635286231952381009644753964259826327914846774973464943023029132240252522270094409554757244566220449463798820965222908434182988497014040235600626052502122008475198322789390919128112560051845159390483642426335088250480268026574894448657565015680785931644198302674229812649402159242905991754257752463537351492309110254071303763940153736614301063946274201213376315092560113670669056633898152262195417510025747057204382316160421269971495370815873104459013487115194436107140393701895766346231888939732790535615724975366671558322715795166141550068751056864591854375674237194726106623693801382377301468181321571700483988993865877224338654576115917342580890524631633332191498608361767064807029187502424198060512696551835014273895913426855530737613338172609520971080970945873173884901781638574790547102124267924504223084656789462698026626261483186173238777388906287778237849757009441775360274915713753811066824627174435052002635740697671651401564634621353490644820490545427066303137671843179204151904373475859567314891592078225195518286127262830557201328565462761277992506664279507444762583035030848108792985438742489411649367818286097043432613227165663455011567415825875999703959466599993405053278327272075817509131448306512692805930674475980396571982111352550129303280635854720802801514882311011379290069170982527907159548947739578894494058720787092853899973421463201674434396405495507371213503585895217273910960777724250325095244020201617024305164437462014909694873563779024113697815740352792257761795744800935288363171850333169891769772428744733257291483260824373967133484089069370069536481968077144603299821014095252224282178880057867915275132127621951346614535289561192199509662845914976994760615593530770073854927782310110693920284360737788057840854892599776371438299459744453590981865209823017767866365578292219882910499313011879857331685523055973273981377437690285457969568073053873052312860348186729006290218354383875212131304613628940246659815533980623471434367970736748337801032246820466742778970853661453078072289575447860333315861526803773889243815869477372756400926182227733086225510010895368404775135847103335257475325834364593321300407978069008636615875542025883327550379592583116704859369723131864038235105495083578582334387796286355103998108428561854277859747337889321815155172627107798458774017176955255361988139968881620315603374770436577991969868871642537311387809018507191838960197715426103768161619462696838811582959194483851408696597267711355887407215706468670720486150492234680538176056310050145713194341461354083514013186569352385232208570628192429546571752021001780529048493239675180999045645237106207792588863977956476140957688103626633562758543168202743758017003529674830550570443102270012597210725533859310378789005796602658598827811646185262759826855815320830940102346216690591015847343236430564693560161858971439364918220484134315395040103701233654635089538384027779492308990024307921976870148710267735709248015200490685725003301901930708737995010425784054018143442097118611754905459403076564835626064421551979842649803744222320708516546871904313595267512647401838844598201573157818561580699233104320642125591126862890733208345244373255662744760255896852715842187654001079429485945924520916360262851291527298280849241208362942211933049479494136611773868741041440105451167494966033752051851551794444945365695038510044697196534347513006831097062630217433158043362593677209336386821040086853976097943198804793301228645131740479021255005024507231352777118706222373127164742300688202774045623786733239618764647103441036554951249440422741633348713849107844640088811416382387972681504369685334888347728470894695014412094460322637477451701743584650840250288025233594558860614760649853648306248128317436178199646128125230044959732810545645713164268405543905268202935365688887853352351367518585136634759611694602405470995099236096890178922510004362378805409733717027684845967087318715782434680572941075702183293401639095608451125756843219494107437231664976219770613712111635990160935846515227691893135628651479229285933988232361908653989689515574558926136269749392351777309746080946227074609323397397237860643170912586571466813218662576934157723006444704435400199299868677844047325400028161853226871449551202695878867595137241006148905638719643661772334520575769599930162925037218236372613268868918565792484733866368232599710215581738927551840585172715661392915154195654213373684511733148600242957814699995093559106540093164646156699778537472845830233004225390308255639134736765325933790742139666387190144409256857104510271692272872665932083090953476129398326384297315596949260991780697005856176119503693137393085257759898405358816605914081267565140022872609629553602855448917907172738130777027512073149933934021305063148859668628860225232240927751261467246560114659507734333180536442898460967638749437195590825031172539031285469402308125040465350305433761363074652551693768531070671208968681281479817071583397367903084655178043094585212580410802674546063807122904356625008329916606549723058486775630900008292869903866146507425439747255280804198683909846082608610362562977452786644478445674396316250703917801243617991502280400287165828826231742831540826102238446811664122684985028951446486124520227919546404828401002609565720684476907802907940897600224836874724873500718759221033500871666458336675852225525689227441546734268075780646107886121425526319721806098576995552164854329783283573906649067876519423699443600032235719060511412613017975043479413058792686459486924888406658907426335947532105810656771657800180166711498120048770594015952948149366691591150031215417042694973858943601185261396485505811002782777784414027567278872298612925803879505404186005145949125629869987511297545622047474253517675312977205557112612895298827560899533718724139808927636144533651250916020040281759511484763875440016508978354035633505942643334688217965068687689369502425582305894975731377021986689231356719877661425752244338566481395739176942527275072286724661366229458769490602445598724990744023375567545998366617249555549866965319649255772588852819108319307159993741446862892948272422438876496646671952030107270964704852793961207841587427988826972542929776817250423405378398470804339981169153137877915491181216749725091815897117531398095334669146947933946141761695137471930060786558045369671235027773572165143806368674330263062924223953894279300204363867800999448378093978940269163534292182799533954033686593074318657765302357749947222457569585480723372511421284313594245299228483542889149716360214812252884927701015621169073598460189471514137265383407590299022972385304203567217177988937843453372298474526800072883724882686151473608149710226843423759543681798463306485957881137833743020273942342961702639660203750105884639906999578796172359430739617218515570474707320005757399109718737219813584239998714366990098205732722360632805577422375261727852152606334446935143425316240395337045833978552424944976150113699122385346989865170985203662410591846138229296741325345563099846454082940885137007801523325625453474659491077652834658844829391980667986309916143381797168973264047054366957277841246331137900540599087630195570789428750802770530365980554856036632381398896888281278636164177526650795056215316519670201308998970784104135948623307225850534758500885508340285988034794871543564013907131402671679197504024832064855598538798770523306520805692859192205398268127302067681957247626003311869205903256446988962869917978922762679916619473389073577327999194693181511724833972447218970156578852490093084473332318919192402937930376708290795489683658747690748073956427754518977246362702903459759482610705825903907091211751461045442980809202841281126475918258894754881473222504828343866271407462359856658128926870070092834537927742016214797348933258269620603800739369739292820828636916034986907469498136305456129729860534892184700650232904107551824982405735904073471490223142610711419964261753442503127170580849263000326665014221362343782790350267253848605548073002840253770155736263803254904857432251468496163906442817933128984564459289173930496197679821772127480461827260979203911991470690771656322232936869360680226138248802130227387480408793977071438952675652380286021086940019889727817604313817281210441959817997464442224924545809721850510648506149179130997393134578437989001443147308805481342462051828393678678673020997306721201136842266671729483453781072395822520702458514300388794500651472753825752175770641600239173394001103252983152553737784557256123338565917039799734794146819157078304635178083999526910104221025087596970418001818697396369113052209156589290941666252992445269859957170806335582245626948730182135087574838828873348063594061676091629177718032471367830697454748358853250259011873500087768117485528589150443307352779255546079685500112080342728432886795407988480701990236899916463997343898243453290725581431684473459255007878800944826944104474994603926734432663230618039570798329051857941592478174182810602392467291524565376793016915706300444601595466899850129903629537671732332695728675462767152630830252213277129594632040094365620287339529358664310588815574609123208297624993036326899736527141365714505232158039622400904351596523202320565090757819895326009554162513858634052497087991839104388391776630872280694260999826442248433313759356569200324618118156939910387619889079305817222353573992428599643427666493776243452380076140471432524375033552855105156260654730346460788740418471282446928083225333120289426475764278594925451777974445507132389301871847447973791853872501936166046742865929966014797601996710995869467372609558659673927053565797856044431155717583993856209571407879168344745069606367415909419000118258912117236305138923720599901741883022492086602743774436173389438074308475072295008274502523264583552716259032574496458030984876939619481154404980303741633782115915395200238215599610531202343814527647614913035629633472748613374960041507804745979691403557937644286061625015743988859814084082994429761869435787378164622723913478840938881020065964788436945165653184257965408057880031393902945570552514919203357159879665844656833741682649118944259499619682045771800847268821268682676171700810378565508465602228817554964675815997798751523778755657042513414638275851932779056198909664233030947715655583016860163071048428678186314553875156211742245729282746443918135104254055765675806295315154802770917836889107830682541404169647853276047796425439879764218495014051846136048078461786666016529669638124782602653098886814031987087209794498065874211251254374602079948503410045640833422254454339870325828971314602468469880655329715209967984161483457628324224007069354748162028074814616438880873540738285069951948527994306256528797695704499894726256009687909063817900486508205493051552371549362407748789226445505561842088323268914961805538329876246257136698273304381603770101892559841768732101982316442355487805647339302398021849964719792638957301987935685105922258750319906965847335852682088866490629401630903682601838325374719786133647323681818386022637930759398370813226437275298732482759392190349210519876354030318324736237485599881260899520133617160480215010979870373790403023504182165560158350096081887018656890461859760905154269762556053394118331249187920583603361067062056214723711204622719493519285832638747325328392052857667214508513186410927927429477690961676034910595007976920144636180688174906850677572411789535981131453961381506915792551895367760750551351411743227690076577961867425824152530723794242881004391488259899905766707515817914167954812102186566826320576931086017963974487993869397335953615622644562341085861305409212437138076897586649003555195728218134737553275655017556917187861366387927541066682492169454298603229517761171580873446543588232192959274908323794327672366105785440032428238158107411278269454859936258161206429560518271575480335206525992080714266827600538508936325292615485358846382247838153860742788401302119586051316855382671503864363643445275866314315089980744315200025676543410292158744660481902912276685385142283212524407786406589409820458151608930848368654632296285452814454143402842376429338732278842686564268341233603175791999337427843826901230027776843373375172065974469913052183169700979953259133175116150797069960470638436613340104917612410519091873012244108262304859570773337648898972065868852945391166314873057101706187336364556806849949588290695401172355552378575346975665585998090047995913607689662438616980862587849672139135263247648780342313972587724914286299577928305245624073374122757572061339120544016202114112989053461067104760779613761498433471856034316267353445308904457389355961429437894595026407706303426764167656019357324400879867501569891062380700505479964230419787723326705992955647311654632313332373826441696822241658184274072715065823803499786874923908734093935836263723663044717961558227602356347601985497043833866738516831897534148393749185701799196542047912125078589458656068756066406502262331352462053241407766330526735072351463563552414152740832036587525810300282746073462102570445500723424413321627636047387948339185959536761169213430740573504721061306769993411008352864022243287946000463187692367358263452256454790598045825072182637314493869818376957130990562548633784007799195828082352308394163118614786126379314993087799540165214420021420794433160995809519272477679309640416901159574673731262314200013785093837110909618181001191894551007983275088234351791802189619512043976040207687826455386541961761190588647080814655234314190867950591949792328024175035115283915409930824084258018087179478227691534245804624311582564074178382957814622429189624982212756563029800644353001005365078409277269771629470936399320120760037020683169868827200961755723266951216034465134206359563623761824128108619717142564651358282022722328622775566914741415915668773486147763964332505641887747478575499240980586092262354578085228199009200455067044704934527011226502852976005381736955998654631570347581485304976056297032764855562349787062801192088589255446834414443818382930835260782313596962783264825185811974105042051338507461791553926076896391636422081703882392069629574806629575282974574791179983893302573606323041705195389069875682138410001593892223126672300435475273936456784227076692225118976367951326734587843610698217625962210182306784099495832650766647057229169210975369751997023199982817251468994054445583795948051645672106912544926061043344547760709725437224912956530348346548026210543181796832714240188561670853667496496884660918599760029096496003507137783171436579654798945832400279066304937137453346350570053003760191604136842808178151138237093345389756607229662155323119800346891686060694156795333373360912131265708981309963616795716157932886909638081217513522727293011001949547727599084079149831375162834832409855898593660938365312638044428198639970829196425422666931413901768137410446627184826207482614837696860644746046555992273995245213180020540761731763880986468929618598844134577140457760581105173076111067613994603051634092347175740837440459464788310984514897300517374590090271032603885023865091659971131426938764721387668370280827459005032027452751726305576757729268459102376884430287170937769816629298965174497888041023940680433020054741073762146560195369103866322037411967546680664171692491039438637714050078875660820013259467464990986578091876201282074132575940067709178026446756123639468607750296823256594168381739970723493993510164631526376653351195696252579480015392517969387389836279007434052239338834237972482638592784073946837025278257893640886984976549166228341015110773839966503762992764071048898814031006773791250249012192757921236081060065685541411140000598593372440522325205049842963140177440927916152046931420205868574521363343734286072789945891162526621855829853303884117343480279778593907744445367938499277218148828942405823813685198972103884657028915253881913341239990472064542212176127688180833605521987540582038503636955434342555909178985940367704930633093971960332094841863970945018323925567210688340489631118696439896562008932979991244719736004974956948219251014407279796034273846474993098536776382696153981464089904688712027063221458817058211339484955747195495168751014250441449388026748210485488817360912592437011637908455702716568946373168584720097081537409094094232102367941229498831957239130313694136263933015497368468188476336409770991533241217150340541228626982962928702087183194433152143806664806038926089421509438828786223096032042423208197889791069763559801182644365622663665078261160863444923576631143311604277444876310176521207725721842103053168410431091242902296493839538842090962379014274474164495320620191627833951016873450309691445452964921548831373444826359648626913949180401820756117956139811115465777168490327797298020279871183590445617913786137306811285765926749124340752998588392308359499116522960093358606043479276860466833102676812862943758938176790957049239685997068488192609379998761515593727772470308400876764169016827356120208348188094343968523148091463711469051797991909660762150841406661005293667892362688470823294611429566930077383236217374391787950567682649973278899482732496166493391346670996997298598093966234550513885007958214716115898456283981885869158573251138948362583688267740667385532511367118640381502598738066193519962943191380991321278007756243891191478170041985126236937880361245835992758323964735092618547606231858257370945784453732188648775942823204457768837193143659145503165293427227767704697114864401805371748221955033563465589910655196986475766020619812142802682073362979639384850413302121758498263892510260618493599894222433702536868509004350192164964294135141736683034878441902857542586705644503059720045729569647011946933430069899059684874760311423639157952677102438634970391609705506926312980235814879711610510446654338202794129195446706393575144032564981060408597345247017912722397456488908843907677040321925903729825058680863787222292498917462635599851697496291929289077028113141911183298161682089345184530725816814654727991558262314128835980533040895097570445160443449567226411641880419364976912447698639742042643856877609766099704877464864460575557622638068568745545799155831886213634088694155213533231677705874323258386923869976314143372505662073087446317677501508219443975941436066905787011631148864050141739428788921149189364378465140655895941466480223947243187312627641947204808614302557725791257122874429175383434658457116908602177387408948322291025233177814162842959606443099574014951970259568361478646430612982244076508588262320448602935190738392092008426678376769406489692758361872037360949023556430668838884486321730373481808774568138479810935076616523009679109551001795516631183121785457310634762045282098164279896361496553368123232936109100614985871208891729404033382409909120158255261967434280794359363096789791340880152901541586556210138978440361277624760892944479844044237081431641777546925159279745054589261566619175406597955559306939208189909315233236199595900690121787432580381707776160109860949085123578470662291150626652829232713269086085675166146269857261355590023906153636689938649456220863398157440187588734319820804974540447170270820862861199714753208004841592191953740784932492281523692321521179866486588826220847737451383779327091061676845896716225064928255411594674649205131689579051465385937599366026616921411514852972574340089499558961455030706305637461433116085505051449583269023857262764969087068598687264201582494616440146673030935656767250981209461771520613642988577100143784170028304841322193945665755991636933311539756718318059983361737217663160878066367172704706076602393697301442952549302307818075518345018647037970937496030911986634025819950262041411841784927925309896436575421858948556308347993202314123353377155563216314341354776960740033977160645507039230408439742508703545699966731758960861730993947990587514307864517024254286201884685545166837137732441490589397910978823336460943086602820093363611999539349508993900001013913716283389110968691300452856338952046589801501890185173411794779291889485359130035316615685483858410591402624201924441021281222969042629911616408942992528043950938038551117678074011895360376311448319192409782029190700443026065739346213772978409417503277573316928215187013271346864775601661386272019153179088341893193388108795007808888365251924789416348646924819170575753469264698473813663240179519849659978217199089030729530456494712359002284948794957535722359259186491449231382874728253404196636288989532693888657167961049783675131589415047649342321596798227605009072470474592644875337490369113508484335427512756458436842455146144947023079752410460207146859052711809442078148259516772316663177531846254247368075862650643350379055220052950159711769725909599970741748391468688410351927487563648559093386521241936307802105779493366069851037911288594066281579151760163020609238176045575771803171353377367796457723214589488635671561897495828385900498462316298011671287920228568692141739768025081828198804319428512395114029750187844416326735369817644699557410304438768132694069827539984170692883325306692460980883897218184130041526980292344737420816377398459515035891116592905685336230178425130948401021762679396129538971060977576165440572789603472458261506193615581726427064965469319626646511462701634261945061731941631278858709968493915983672376131392094189486615286336693867581919049967460168393579466054166199617669537366512893821114809185155740574175854052377981301227050303163507970349548572297728109002174565753587329862537719472630394707978768613309582115104256113975822469477841957987491000547847735948685413262937385817327282723551543924270711308825928126740247303972050367997704620164214413183650092252078951577920943816755730859148019847183366248068081219846138952708417790991301296427778849940061799196588017835908406203801676898227580711388496262767766624181348435786713808525842820635800440701000550630837273195106909942546739791863507830315320434862342359201694195347371151282188752646506830787187568447939726265251029987078471307022032264464737604113827237892025920199758867610503174836670060845853894778205008708569062718395643315733849890062939228844951853944875431992906646664823298991469442356403102992856966303366134731886129460987252810432802731291831107418252367663502564639369141970423242062638573132139584363752575850212699029356137178757514345254557164659971344674700046516614364546871041413308428400187544256028241851147224152715164331485224624446341618411791908372879483551252572101003155998227494309685741421196866207021334391430839393594049449186049890523871026232989668224905338325100292602703224720603524025775127353197613881632130506772540137467642154567325598694710116102898949222845929110378345802089657881675533032667901048691258608515227842644003769587228787601612692340938758156719011681636432212523360546406506247225042971562299760767502396913668439113677526879515724553320586563909963735210482276203887248870726676024789468588810981150387409548351447449611457114663429000344730009575990754554256091056165732186340562289430305645926673259361183681111523473590186680930128397203727705672535062418772765674244644767523540519723076558228152524675724801016685079178927242886437836906650007562197433943254790103402315419580717931721773787375373111857201331353697245210162477736290220995515794239021754704715299453920254416007379512734946588969267363871140596786624758332846034538338581531434097064468690851322659855353139591739305016876423337665739469545732026396565434886653871246557878404952952534241168043985073809532604400002467789991801223083460854876867679526982754704936649059089927629832459307841454294657148133732179093691147732078020326690391422458842657341776951053356841860758168821448494476284007930728935274711098400431916521639795132133967283862679771577332640588023812631924254559310133455190558518086203482985605142992085602571505467753213564748680597264498053729967479430974779653491407733968138889624408209060801806104530891234755160838196194106177261724440661225952862862698361398825575427461088201102578476111018205752111560984906313913512077397505952186762252604798182133220275352927514052124359357229342675215207307249447123431149584855683569023227977723358129734874646519467290497729617065495216650250638713301328140036914084107596565917923850197399241073954857014911712023869621086085251211303586470419108027692578167474192918395792768820766168555445751439816547434243093478076251209110694598596404803851947616553059808906449430990050556082116679741054986236595754327506839314394724504028089777503893248847348873896582187385692335606098592223983916495443853106648160426961734760335739820279374696100953767975763308296986957140611187575012515003338739918923161604557947738364317162331721546417386515052088778306603382548437693346176742113028745545556817636293106063736958442410963337977110475929382739667100020729196955346208187678252758410721097765986203413546995701060187392130653294333269175220553086059715577392287913772083131751975831528744749235886218097772433132635859525731995180767978846143660163100238391636007443571552335301762152176382288514519167974078080203352238171873286886669559723202462218304150379282918508047050139246193729018121322450059133949447016807260856650687814899870838440246962120503087818833397400910406840193354305387497756939806011977515468927837610146037962696529026826206801332455075133258828486490559944631225469427435383748190763858098373569952117939302647731098726774709695712072049404179841868865998325422047014152294331004789447308504613650764130668019683812468918850547136945853394975623136533090625436213596703684936471674853580648004933071738707457678483363116001890795374700191611912939581695028442631829582827486009000014947376567884556191400131346087615103071645859199186653077501497349979484606198519374730118648302247625712207002254772044071830967191698363443367502322914535473092233171809833844175682711830266203152643519590709545873330479434856671487859573919376618168322733102604077031151388923871325816547777368167586168704581544426399989079904840914900835963956497521790720607911966050745734901242896930882012436109846388925038615999371114127764398411016417484495974821758215460074774600732000089764513005983765043514180397785094134403894534795932764981699169996085317332110249289488634456965651280921567047095411118323416397898350259856614811378364716327701645807413534413426909834627521730175548904671795672843760932752153189413663807468940978319503981702163227808848462019070846388239900732274474163651725643179712208594627388422533310787074399740392991162294289088123532104812037773550129939069071554133762883878303962503947241276566552229741302508862581260242297936805879993682508259019562703083821774594254265281082642170329061927378525806497924447394716652424002013603137052442313496273748672280649759673248309328406639295191216608823013451659508058301007014280898982178597557912496877841958134703808504147042002142732874877888290285483081752547241065074337433963346233730009748718077639588677406427577511653404632667458262735605115475777132688511558674893805735590709581862655171130295931598595624260613649937882623122386605103881383725562930510955781396341764740287152748250040809500998163726018905910325803289454230350192758544838956242474596567001590711288368267395805370835998730934529481261092049244306500848067111133735518286633083959356192531260110070393969050345597023345708196934719449013889399266946760096106871245395342969819563099917888662179067046919937036167093573976930478070942140887171070787638448632420124344606435952114551243690579421636626617383422364441652136149141760284980230974400194176731895658156162483924229556425377688169727008653677434880260652960438816246030684396774106442303415327655406498870020711535099595289218875859361203970285696605445961167191530722329813230967932991111714947170985518419114443116814436351408998717482515635431625390138272728536136378861229819916643346394852394216379468149956196247229134875183059588134461181855919831693673138689060094163522563012526573901845151169572382461007195916240164997109934650392463461506522779960654378440369448465303771496254255420508685154061347189648070728752605499567198288030589912672575025749916846466492406646065509951468171362981480446911112555007690306398323887397046290247612179787514349683021641188993644052238618626951628275226025957040192050806339361503875103947416792441669782233527091243222195752036669006106215310181446093967590719208455875045970917678639475135470061750849862286019998009931854741297600019542464127123826118320469650564131499732276923678525539183393815656623117282849304195833538819655137065853118788413674229451607487361206336602270897486391981911130134163876414614396208015734685875226415694943659625813409800280572670934965014338929065677200802962745698428338055507977926289274633506519497737556695973818937937994814502875564670493415825842686396048290453283006367440091930458138423947270621073973273854061152442582586937558913032041801624144819865836529255043816536181199571137320977057031157965766592823351825874177580597260477262812508153850744524903880537872553851497666017130125284110289113686219413534613704948888330674246320694275522583847068646567892024536858802820400504405457752924368372408072800665495129432011612076896642480661827303597581415851391149490143379328570943123078337431529550417240713843105297121492373979795048750285641347745055939081071089052868292802563047543216126054377177190561315691067011363246740750215001165399493239185292133531360947447475025837660717248873030467819876726386669329592088409128456587990968140958821287399472027672022293240182529964978430013621792092690524112315351884048384368150464662080529799322842403138477864146869634874986202956114853059896386671385131162405053873668997370695967935512477194805263095532256856241603774618091237131161788626589285572453425408067252622504656451820455415305109690839644740990648740750588632150673531871753758317739615483694071953402308734510314784335248880972085420730384583158694229204243966203257391045259608124951267327763645670702340736458576510356942582799990800285084321225251726635631618855483670325203261141898042260869793292938249338338984774895417546578556849628010573950367110665225601844503731648497370676968218452650562588221356588292523196156486551589258935165867139018173037468189381172422541713492512759360671921679870895574208362075247442751187856441572158661126432615471074463321675689706241448866611312776262790164154020766417776954981164537269075145429622760551699587729797427246816084954864614427836511298584427200754830475164574158886261014350300352475885493345167154219783724754753562310912915264892595309861580322701144089285394888130536001920201052565150900293513272294166890486907014902401471589027970570425411181851296959583529132773175527578398433391517979566511592311821759510380754094460991259641847869457848479235399418596094970738526345546326336417166527185902883130867102960019298420260745526300437263759572858379054711127413854790668285878212426216660079972534625309568343628091996681458191343179141517451378773938848341640307239138180295885375679076258331584691433511109630677355280579580932870481192158551000760415820314083987590972823477521564071084446477270573456791654081902349452982781089189266278331616452287134933920579136988206957467234274341733322399042511418573706635927999078419326969209068116038890598169151421711923512752366944690598009082619182666171888495005984710474070696445634178307387843261233773547377274757612723844486796934820713263955499041592332558458314096938688425259620825625460797817122914565219588480072825372921199311247624354600495176772684419790703067286574254128698504902259766833724896110253097832476015997791758179456713008495082521803503440214500940190062373387734441963806511316970740586126523919839712245249766222467529401756389972957528293532389784725472582419023819377140033871848795438171569154470632190504564942186087583727136158941044377730981523091277695932512612288937083705588082214592293802474205717338281947104608243637700915039707591685985000122613943606185402024161142642354625223793979662609492129898077675693692788439595266003107833297353727814386620459819410611906234499553780598020481981754991347963274300862621567031179900960095554858766091870087669781600631684449458314369198777398996394761041424417319639558134803257845758048705206546101281937581351604580435514973527764586350947165392474161015464912660185702901026828027252995504396790571335063736149646173724755188710132956765199345371889262494204398870832110953410062969272477442880389693477491082631477541369022807372396473447446894244435246735299320545474138846853937389117881084528324907369491057250580571695186369019623070329254984237915536270526880242646866793622434400325968634028943462062540468494446946108086380149776561408311492105992156789082129838414410992345904261901112954027408863373243125336740745257390168358299668757430938149062487293097167176680754082404178978471181720670747873260649959273279853998124281350559553454124727774915884682958665500783250795507512006363711650089578130296458554820280512735792824258700175159572452547874273874190121318344116394507657011276781004044665378837220435675125406863527567036299348252538712764039094477728086438018766470709980739884141381774105329376954547533514870091026781828036243448082363434492220457402776612728967061641880847116632814956073568692192065483026433578044925891537759390972359430766900221269784623351103755541965440640777377775820468896897775565416003897891741801091132451180818724895315560399466969891397399579608306883321531859973260346469729574770613772106193191545735324891932419388903405805440967805822685298453667044270442520881235774733036868690016333002450282050766182436627059712600355657374405921175649518998792631407912981585390347469875113459270014666440421608390716797958285265857314621050911617064469537670725312470917215199219546356815738406919900778181847005681571852722617284135483226810464521796655137093366053911467841628554566938443935296710226632013368230125532529835135123811161435976415708172404466199296957568404355568650213520866282022886392544430523991810280107699742005672508492878590269497752661727050003352101945717011050034591559338363907364661648902669816748267718914267006921863266371891024072370554593562286286349940667642077139715152392615861222127711396289909097580094618775042762850534656978472288520548407383201820728561660915165304066575722649928843779863215780495564401765411359446087267401623670406694489513365919999470450427307465973436677184294550619988485329201337729237088406977524006934305161448924988971485764685894858593828136665594581460240526856023687423664670219692365991169027122470429566256295904805694169338133588569589511025245283782376936475995490969550498802286873776946949227914528374645270587987172034143782324634905480546519589044541162676597852049559486474439080260862022002235671810014394214123559618811184147301622990939193484788998375846095691431943238577966090100129962339529421274367783627318732888765247336112059087833078644952630929515378475748765281233314319630150627770986821795028307405841514470238297035290846208738030206537885493970501726482144953651818799476895202173254363199705886320234206979660676323856780859740008419566214447255626008214579052715486478584348966464247411743085311296779200309345148607508998287368158633327509028986929724270641703660152722065453662961282241447218803940573557774823406425828978921301917966443174060217158600274343013999661833916721755260561123449248730819845407104330652058707153230221582559169045450203110485966190535493068413218573379048715064196963916887108647395244089983226528204497218258292325037160945812909847752486628740595443535212348100536017616395146082768702878811723817587433449447238185244321836449333216720573282176142181564361580744374493167157166505732528140470964066731589628973640030099857627850218713175513914019038664300535064371446473962457619352337115856764828312171657953295379805046607664178164660894814916956588143506142051183360857148357951340178644902636690141365282489307049367255832921807813636461715661165820481519193934081502057124025321296439861657185984627199517332147284257022744796929664082153848657698833144027043211955359525954343279740279734013628185668022731733533390667810201699929261354693797404231652429504100380392797802992695134667807092255804076017940859102551527728321341810690443112131778713492964004070760320088064697468902848075816092239313901091749096716806128521128261839389860912927980440377108134433353516843009889184684525358926574345461332016361213720076350300520348700868879656022081567612285305240050060959984098678867330986641982706471697596808027597227972445337588913191035350160503325423159062193809556929978783446131727374950138308574503450018027901857334323094352039011674632765848617693619944767640840975684084485828212376215111783986017603366905644274253759507626072729382565073528148107379501188246172755169569796490679519567610122004802388506954733262041575400880950435773750988655259745669543019781082795427366798062717089661414918387692629154319579960870152374122407197634361186473940962021089876901677862764509821699656277579089976841441216257396488667188471855265299848228702480085611111364482574884332759607279206187798090557463413517048413597305137377902942418973034610147446917473768722036586275057528452990412309765522985039134808324533627433395400959780856606344633722913482581313857736303110280882708167819922296137287551152199132214557057664867148589824419377010569349191309992349700346704714838799358216190956615417921426404922894717547374625846938925934724353443758496001716083622580945774787128457524941277277183732815560003175120112572351846201361185030174689635971378823415178415236546094961607847867139161984691373918684172969564204689060309069314206958807675051910896972776743944710921510285153744985669928998011949833524587788308378062391177792639448786865262644506132327932761277340618540386812786080161947561835721349745839370719335786468429746366137665229985302472615823159273563084597851933126760473049139372966238609559924050356799168351134805815943854602069774707825777335881551925705942844115783272899906000093942101038699624965667293643096439196164483344459595432861147839523115641450511743393143594646458342561317895320174373043792037419505001360089088731000824815703154327973879188251611768338047550799701255657549994475629572869867170391118073180736304123903258589336364799860846738547665280619547330076820801986658891451094641685337523182846985634071454223833733451179761933564061104445005175152346373065198458707127901751706870153873565594095157866179364854016732148881472856736902578060829538865071168439068961465138096669408791075179783560783531561643672648410492351564197795017546986651683921057843816440606664818839510113948966600341594398968518819352880561342697862665376517875796731972787953651685062316431088742436856735786832691008501322412935784397277668588423739771465326534713117868749959194519603595828522448989799488195288406979857289455572971272781917923291380575409373016389506830644448721035915199218187522232102362210302281910526090933401499085482537082808002231521466753710396673890506552121791673138534999048425643498740003978672242073948730557111785358930671456856723658551994493546455516330930710378470431615137816945126745572687864985042835710442381777835230534689774478866630938614486997343955009578169906018245181766499840863332132167140266829617264879655370549526165129153829696504139698610556012620606739149768278623197473676798903520366659206203590746269650973069111067059125512957719436864767400713970986064485856461883043388904811713510661263378464774706693101377418080794397489257345252963750567851948643627589710251157998137529085318881625594710514764793182313222662917575507789205986439804473233449129703757581300989637501288130872380231646516150046603769047136173349631183711276719311653524989862347602496687651886981392178353808636883931099225959911800795934774899537348376113048506620791243118354457824826694117856017683551456563069544542137338164974032754328149911505514607207786982603404091150482281609246236574485650532886117109622333574692205482134570858780512315324710361224897722328257640135445800977597960126974633220314864827081496291759959009630960534643670052692958221822130143990660561232081566574870502304576844211574678148230430370257004447008369793672049695418247553501594165901407609448487867611373764104181500691300471718516617350937875712605299851685939935637582693023424688036791160502256834981508728538362045291624844366895572633135070098406483001103267562495365520037560319359289578725051487269200535785213233542078752190773093981899479534171412120253642048227331356916183379148036148318771228202700455723834921841843655998140698056213344759441834711904592966382735233228987613975679516467562386454018980036967738187810948817300935596334496514974255060978669687349441264629417410132366120500053632337658457226106066467155840812762366503618770354508099837774703633690644105710013159700328815370109350379593424691883110359794568259212377771777179948249015892513601642792264111893253806437664674844627920606672964906241952040209388749066148225418879987090297509931419308831627527709513482115686918753209894223824693870439817404882126779877978190229169956050169356572925036277164850470667567732523351876495828021803615054344920260590536644358042475876926440404188008163683612182729956506627426277290330664749090402433727714481454270088877124098853103314945665322602035804011735545019722592042148891605746168009171765822424548129199092307769483671106875801487467626060391744531693520648013984529291752908976733252693088550029590853815551957022699983307003726403578105279417078287347239577007803694139669130086935819729127591890344948379280661732209687757906841116840367358528470558480480018176032582032140525465049413531842329963417267299223727638537115061599267397029899683860399890111810466212396398761631103873000331694968496637726538642985063950612035072191964484204877660240596409174867208650385407463085994072405963002671379440645035898094123144826035555437619113287335559109557789686793147673539946767517402561730195962933362713492197116970125528154088114702830837501359176417577758839059694804295430205197650366353759138082974881844414265036747308774217137386118634350057409122831557130668474756962009394100078555361701825855711501387422918072840544168963546667594306973194818728122072558876526458044110819494682482820414690100565343337448592365757170936290151285242719436523128145186405265536419275537428946902689216128619488395817073322378746288519045593154407747935743864733729812776628859707337404352874335108381870679406862071013711361057767394073825619579755364806031620183918200613405758100966802828787078452352547478209545222334143591210823599996717371988100747210638989990202413911846242431754341045927710343630561538734352421847116569936265400065306150741729648257711145571889375916612621950625994536219201244440564773356672829102135253502902653401225104325605537415158925300339510858798683920602521114621350922902737426995737770490818007975237149790188532990706870995452080131985482442567374362123513385419944900625082739516567250192586452652654483804173422270396145134175044960719961506527982749478108494328850366738632696110561785873432225122634166233336272497311763381894268902111709337557242520343375062983076306491412810606034135336632942322711274236014259929014053638351623292789588429573960748833346802218864988436804535350013500388384362958301515625280381826112072752931212010485444613047782131795925846287095459077044862211487523491018240160754404682787938929788463478067229080701240119698642053480993578130591748437961653307716618758522240938442861431912246443290422060867311418416862076667120815732673579376528143098303398791102239065568061664800907359048324044565135711250146983143539776574025241330266023976363735271116500574471970057601490959220006900168013095556907576323824445881668679859771924969200684601224577268963852742465103539654969718009569423110207616799488945681196686507658206343917168440593001834727178049411535440067924537192184261969208720606971467025540899327887821779849812524470958961555898121132045483829758481184562092427905201804382152771011380508769710318153874437612292740266346642283038865047423829535639185019678524410365147512558995707143709090510548964296205799412880409656862021433354688407225631188879148608315652277374152610819686535435412742104645622382306122997077276367035398053585414118850261041353463715641817691471726469916984058481558364410234746542042201103935395370258576719906414790564388632834411155787057289022261474497980852838101779202892359144197276517401007542916734849623723101361876047258672768234452006783325304662285726355447472845027689789913535301986203563027539729132837263794476894202630114180728765681355380544718529073107505084904307528631684806096892150936465028707177942137400841971024720310087867704659351233371001999185282630055318386411505882710285960406052099278774790884580695126696096740626756542158700393456997059564540161992464705829216480006216239965891790735590612934191659529221220490088009350840450396238975148472248070231241769818171673856004604992610492365875382265309666527946061956231212985754055546938839550473744491057466422446902423040458258703053220063093234850416714511509371241908855167032411358608985307095714580170821010310139922922256876672855237421844376425668160286704752479053858620067057844513451159724115601634028677870512120668549056734614294934199305326599667293671039083240574291067335846203825303540239412605099123884938950554164109753325998613659415766999311746468929447100606273515031721047202055050114453025402573254265649861912484008233402050020519276163760351097697511545781685424471846567228472409715792271555933931905236404447696496003134186624576832506667182006623148067431279835461284645730281885159716147999729843629595866759642902946213666821371882803979625473858598906152331118245595308619620844527598110209741961641533210791577611182315456378456249786177390882010644564136768488120271447959055357558395236637223431734507755046169403141221049048948898221909929683752273399491643886851981432688513262271000446021859887623408832069950693928283245265211841802627837940400390443669641973457878245101102467010094265523906247457073970041291443868049875596511135601151118021250751323052783727896441575589676423404154048368535763923012266993979346571417702549319985843274386830824243341772653230103158339480485413993831541634083245081935766353858490624997760638317732054901640676610227598644938578095735152315575241731713275681411327770917873337800706864340878094405984081407843697222700709092868261086383639155765916906571727547625236310147441053775023370395643274562843119223150011756206785436866886331353108592525738792151208889537703072963073114362165854115226081607173450428270237444001799235216377779484891976543394916616163851299778671782467248640500244962811787827394533628190750543882882107593955556262701928782594916328831310731217569049738159532853305941113816357543486303317324220164364741937370133200071871021802148241641414904750021607472155749143216964125554847580903339585882217952646619555205608877023511451310915950712566282001061411680628546854106898057874878097947456091580481758202216725507032559892822192891457711109260633881195292108419647887477738395861481825053481286927632283321891061184924206535744640467502564714595564731852978203127555549735841798545969663307175460067778523892382337031604297445793660716642529001025959961390158030373282740973589626911502431285581446349100056169367291321155199318245948689109539706538555259124450207885987687246181395967970972537140952512980044509545187344902389296129827057609168640224709387703870431341336754579068499962741795358991776867579325836485396599324942805486751335744855581800803056061017005371529427810554523375886519041436109774913308693391353600528736728668518077070896299013143585918838332471910889274711417949882782713977414400161447802773021615807531449624085248546048737464816814908197530311687423363739971905923214234878594113313119341250033039059914281953355213217708979759656575447828650668607861426816966782165943663828444329447334246876532930621101230269062252052804402486524291142231292417087552356887925745634822178318183659360478215577364236301324204977003095468386069444807561754433676112400221131495118859907565194372417158654912131130063234624905999816615235409184290242238273948404961339901700725357707444406153349176598576308983740477946295055677926538119642577603019491918328082181577963727518938907469829553157860748943962080402747642416532927092702348740301446234041215753197383977334336072893585041487273808325813785861650326024853731399556329187126575046014560648175842736191427103997730237372126589260394107136521528934172976498640347859652434050877778514453667633071551388059047627129448222093979113359777877708753888443028186530567669611811550080089559805419443144060708059840008823650061556883776940798059508355799558653809836065332451601143033194107174469662429128579218860252094841511472535454690556729117773938874066141492314932864395771664162581700422821029059985731232215277425710758285813380887576197471407579989512264123781753819886560601533076760021186319833410445424868478447062363798049456460598010802155582624013342934283243353287893929073985499695774029931057319379127792391664693415345231134732899916438564551503204916583293744441923278962162101317203949885056223915462210541408658422025327429719536741659172845347723274676094256877079595450565609949886374611253262807427717001340921780465788908253218820316536343183019123376209013020683769175857554350877016302242782439351577309820197965225533782923053615353148266070354093255564908093988045925690685617560248053009542234701124087733740369050245989203155888949873011422873614382066998728544570112637136471179429390144617241951848092341434456686099090728937446851124620975807589183887639689858363203952627845768938277129298581796440361857240111482124385844993484768299696290268250337482337214888137750583931774809573996027395862698564753197915283094267666375570326458114022325302962707407717596216771589117069214137130032501918543829867961445382738231185406746930392828882890887176795910602609752481740787783468309861367125151049398363499068295184116875937507887410987306432120915090034563032613305006456565062268673734727361801648593752820368980510147638643753202047666772748635251607196231714936605054505515700941209159753147123591116969066572810325288022097885405037219245869311238244052534257974300460995483569989299660121984517423020970563021401998392906737631413442324725273599193023199226648108877918514839525707504802438560700980488114191044042734145167686177219551705431594512149349204605963780217523852026802196083408853310069118486381332382629002657257566071128354066950058375027826267935257924558260822907661675471734521361280295067157191989868859149359643475300227730464177452521391275527415896206314375104609643873093134403822604505361623566913261027943489196422637711641753275006702530543126451282141151374252436470023302858614191321567421424408954784900464886979949365937721808460236061753056420317434808281683182875730737660896527565758900621579081566469689557682443023611788864546439328588032530855412143904955473718625241610386229125320795241034491118946508811575849194212018043823359592406609598440890646613464818062571895001561802344240487438361417074114659391569147080122440247640604310403273747596617296243894299051836356688689677702451490621559953500627682472194061008958591556000750140188616835631001381646117317919137919130267064514135963376356808213814025743663265526102311223698415052278170864187941979697800915236505450774959416032214247285071893120119404593342552102213095388997062280675550204100931484874891995457497787013606709065666109672509866344404158271843313934916682480553668640921509266684588547458416944065678389304287908007335427342279865181076118861985203360702578211997718678350618769509314993165564445792491335581158210150264190916268475618767319999496501064061877162446737653783288691243490602468109194962824920907866640413403687163603669051826987300853285590389720220124270946143361254311321812856248045383810068818236235507822220009200365016017037513013112259229191430409609179685914206538175213629578391706871652205842822815394666081385695893181897625019025206478122010017530448681481392259945328498846332170031091338981350484519259277275102085778800543178456642017804201642360991019654483122927988319439147493258563065998009417153822197054660364942345167545336008218624685927657219691745323068117945877560780353063905135420684495441643051465533010711764606555361200336366298669463424919132861899000597470126663940990415852594629837833339196440303785623270674025281514293567517805686558987874808537163584717737590179639447395487099327998011819323394539638625348404079907946344537436844815803530289773715485047811073486842555726785575380588578699078938279822334841202488143062940137674090838772925421959134338205837757379719218615543196063320880445997508049844035234805527985381961086085976549582354811938278719562613921938060124019688901902409814187085521688848570255354418828797701138561862094025348141114660772255923459737833812137295331750912496244520212046914414637012455869613597153897584457911570243705354168334570485554404670352767713321910626073543547673146912809277862945923490927008612795185961543804356007321502466332555814089386035291386198064389257228843908291463017488905822138070198811674821172883825035657247027278228978093135395754486572589544372006410562879245180778784482322775603111238646983710702624586377429177808206505692238175259218975279172223529664905533512600563928437158091217255795394640663403287469874278630079625598655803729731541892366545667882694882909825391935211968708344339571724921186167259129117421528393191536338254335431516105730132335692632953025428074479029504955123497701427150082303210954663640787007691368247427122625582256480460878849805055370180491923984321593981781508423508895402106906016333494669365964623758862182591529465531023904813774997729008524157934511181088474587416820009501816476390543495155754569486256914167796758038594319767965069486692484839389587406230854191171207451032129629041387412431345815126497893170488986054039781886417757019427463340944990188740317147742612096124621899827523067253685018406381795425027916054033030316884812765843843414343788296556575534488916445707515799518135431973925299152504963523805896537221358225188784025036758701785536502361201749194034192174757277422316358956237729840237498633994802549284314337740676855414807297663024662052506612423922136614771764408169902912811893505953513571579490446469853609989598259203761777182276555229281843869536919914714994866735693935766868192938162148020185340081986736458138863607268391694933326245455542919267030853243310891029406057750754634110679878051714557181644932144892018540050749621089266908484684246248319184648773745797846904155694736410851909964340891781770119633977963083975996480744606932232052684073774653166984381745456963469054995180120227373237447993172171052580967374625967041286507382833115984155981372089106482087055368429465767544968746951705718139394086204856393821878682578267764393462567520921615433136721846713901382123172538904199097038995128580968909779892002982491519141030519089091889763612271413320575674428931558294990523288361023677945466734612193320243924700676694566373841130426422852862773358225193563966468907895706305152671554012827542683888931305527267410995336451569548859543566998859267304068062287637119524349400241762968934529016305654581536734916611134931055289518196019089597631393174564254551375044159061243842573869176253268564997381796907035159716032887546037008139264465434605188974608980279077623063634500611260367883438424569574382326221472923049923155885819015058503572265488170654720339040566729170920981755727975443489721934278044053384892325593487210607349037049887577858310250291208662523623632534747642143915508207819045664838704223195014529613870060291705287961366022582416293211283765333581517482091792057681032918385146120497782104306066772926748849112925728643009180113350364520774227692078093492261135631248666778656031185936158998762620848724559919114096666219015821350044750754978843579549153205637156373011193657395193654326515555306561107736617365761830417167546901114259875691186968980562196542344499291128700429000576046454739480486412072193454028640939019882813829989347379237975305040773202613510632850699252852774649585240134682168228119582100264741535751288785564059828770277340366070384722606857617509271800890342708838137613948475614880150429433212261026852093771788525138874645228905250576349425416426244893643431384688462275540113359575934480714932269353232283146078866079043580734153132818303019843319703637953990610322472410235114713783182125273888233072996505424867178604787817393389170566879902085530342664650183298748233437993657261122230958669861662978908736868435596282679806807391861667515086324593468174924015332125297619997090142375697685951107606564985892569899835458831297720938096881961808190577569498703283316159882282584896675407606317534413544146468389010970294576332593398183493884473556824080285576952946509662304451416005471485857087782719673155041396123561863545806907364453974873836691796404950579183297256607433223108458304809798345023036520988272714140310444907706115404124597697909303637790613672189977715580134313279821105008833505005003176555781768698668176123597459404270987224151537350089018518246278417987530378402851093924191121324380925372557435019905776686706679160803511786557402643111344630910332300880932837356124194029790443706780324798323839713795426530172844535446312763541665447687747147859315505848442913858703178121192913420790853205265792812528044977332482347956276260402932428794394416498224862766713373031243640796114908202964665183900914053491344464492866351999163869397159920360994329346009235813245996912327711798447663502203324622754887339225626187566315616111561612440672860069295934892162833061432546872884160001329086668919571746814029125075006748365901590821678063215539217923376543662158431300525909936966699751857270031194058940642346110202330652708801139271493085983868888421241014750722121355388146901398557733382433232094584727916389695266154076357058622335351525645104764496132515281423993334043972209775584380706548010510886374642471023804943458815752839527630013877108404968924518663258920340378479432154185649494549739379997211536541299740559856498489941076452962823198300874612959334592996312538322402029712390391227553709587592235987457080093127387125035956531720405109621010229379277364095991402387243393041879145218255392262968205730721002558583071183530204777908791758531058409723728362816639138484725386139727920806185044051980399908487500471730762471233290417709426756054861340497415809849649980674017099692873237935237182615899934328129720095930317183127226652417542244291350595931132545418807884057493159089661949458260517571167695080347609861342861933682201639689073240629361782904570315025298027229968970349369233665685462468130701859176789116597712570384756623327063302300835330549222982302254060639501633999616231021329488489720141126538593787193180094241174124726538829833757181060455331121491643954379704450995443307996382751471458152190138083500067455799413216581197740991082594580295045487043866417076666215050410641540774646144661266348787007819189391675747930483707947526051195730611981706029321393797918375863471982571178733620530815272701799879743034519312580381068929276975601916334718870336900608236927169096210019620623358641862494223874212646030250100953665848305417312471561303525791777301729725053174383669361615751134197376528698549931099520832997675017412698916208040596342762679634515748428038408598650086065233782778253835150069587584073273723032953356678254219099611033690531643799657254690741694101703091423789930728302552635146818942042234594906842928634662545895890018433899353188026415279700841426835387768951857108819358416601198729086486031482452770770409616177363992406017875050055133405448682178441079245519458038621406955743131596100268939645142369969064377944151699245132551869408058614466455181882855294078210296626912850246221719267617369934630354449473575140932204173499420273292814402917661679229063984771809469085426527711814213887988156623162367508392606799470594094877537701203231255798762862208602575189675474847225346522484292451456380293895185340221095693458793259741526520266934680368371379046559778699821409806449612634605527716477461460967478003215852071389770212128012063014405690526717315434144863867732157080877862221726067753719334715667425028934854936220418363339157106253127728051001799285672092404144744690630645505112112174026995303968389769262670421318847044799566608045911662983435569184986560525000637522678493599159491403509738684549461280467493143184036948060050748572313136934074401831735330742307215691944100655805887268968074731639527397480586574541044565837314136097764642823302406340491148045605710327898273224048411306264483923658688132159631975518136439465164372476687214905457683230044177269768529533776735746767238491696610381388726177929207422705427399013433695873750576156301816194624008256914912623399863950469481131260460000163491501443621665220100008303050495230950321189325475433918663537450053790264302018065089553784224485758938933642943826360085825534376796419562208759050917003592776648036616275248682750180574699594547633442094182245765201458775517786999293448068103944987122667495303518907635978909195685262712477479523622533748874051511223175246846385451772250859000205844225793771784366392733322826002609681892597629136175577927526932927824977850850857945095121511652559377082673878916663143794566198725377044266960396979523358954877314967859866846477078902279719234909154049618614377482157140054134998695701477904088147869222012781578122028926014689977505208620929803373351682418319856461864580985116752754731361896155266708326069076647333419601448233003836920342797841014702412984568738573854811300591318722500964771507518045803141593923534639719910495045540579237630218290874223159946275010104020782480820241148875570852573167299395800980111734297007025185427125756450883320957614631591983748737270411587905178672390898815851960282923606203745791061951341816081697712936340335566737258036584384681070360103805345908982865008759938847115752854201829749059510595384749257208153303073272266100681356280433103866586055555520626806908751786106967556717054649944982753655248215422296242653212433049360342726783739780242010190664824618437750482164476370715516683634806314617928853306359166375726486635917039585812385654335387262914045600869870441155067832715523390043903288401328149629986852980006260683429153534481336642125158351018384692853192456138755593992220528496036022484720090265771172289328794457453120649579343289702586279288387231934335532652238566110084586737313985204182049722429051072723045891089890626290946333110976727143596341290573752059692503598314506635454761906043097251956768920692439539777079263422389915689641494541464714029330179408315721212934681203903832453217219348434462420337878830344549330522518728473531843714606292437437947830328298354273492118109434409783361913640288731429988501125827708074289175158790255723561710399264961033716992144384148846745464330723259134052361860252507249750690758267852541010356563520539861207089095834103498141057797099923570502652910568573831234207617218108358794026710491972643748344855891092175233547810162597368204960143301888847631378938247592416591498355262582953138084518047075360280379813617293650342012851107159409351725940829869850532526159973578407684679159754687388537848420557619238786807493836904893432918295770455925586973772267452502367055779755605890370353211389300304671142057858870196541290508742929159505042920218386420167296681883372843832013241691898415673974067454162583578066590680564138766926161011239169666790030532228432277060524508508556250365702158333532474375762248033995872125613832928421163417200249018520613956823250633345158867131752706242912305950552344003974431847078077468795570821278302914724009289198769342989623078262985739798469640773087968333326193565218070318692216231202694871715821712761100376624946398248231917955985957091195535020626427460269352319644282233873672844600309014389074700335487102089155928850109935980880345904484852508495630332985318937303917778881910944574793387963887008800556075675542220310970749504208051662085702077014064068491014087058491005808578308237448647684321436443993714373040693215469993446040434848689705406413821212488523344457522167286486021429655967058466362425215209970337090886558091851252575960605876283111096536123701942393823710705715059893393764124127961779199171707488391737663409030141264417128837143443515168516955487981266822031311847671387102623992329141239028328237878854736947553547138883380180080670093549616815284330478142896731199991308453996083463782696656542570605001208377135093086200525049616702171073958170709846584151962641388823988142832455077401489290196143604508932388003490287967221796387356344008086512443316745202916066638672189081886385831508329228137005260476237694338480817281026774848816121832384559268744428820864151869510540367869656359805723364523540551418080476583362179579392005400382602347336735326127471492671147694567665468087995518310832193438673077676117639945675052946511359034374831090691085555662192499859240945051223305656373702265457512591076250162105550868472247535308171118382435312339416147990481810024922296226053531566847858032722183353382616545747588352845551619492477958087039224385876045838208767368382334514946302461217583590393880307081458748858641173310071199138019222680385972023722782445444182757438949219387040965097427023303691291836093234609074790763758461314820723389476372380196069815532249536714756331019847284955909641603440508071960984349204334593423553824852328602347195442727544999336675163611139851321584741993801427382566988290480528397910539512172407117360927670044887119399731473678605565407858403175718408236284001341314067237072628784444763911967616012463819044403975027761775207625783175292320776897967289139915673575328302987580076940514614784440807202659521514964152260829419455581440351141908332434200135192638579617670745892466703121919507787904916256871986998326264137916234113114744703448469732560481530294688577286048414544857764878057919659736304424576125974873240110984619341889717632070037803984560068647700573118314071149744471247602941249502143198266956516903758972687243491561375132128886514812020360139533903149503321354296129819880736887598203729999709020441630837262098049689922123856816643382352452225504053321458307493172633347625664911053327503753714092658367817774829572484665243940734107599892399452711638752919066153782696527440851504251839660672511130121441516720102960391149232879105011914218840240606027496814916576045942741833525078844657492438052819175843844656309765779688548383594890931119513089878311187312221097328521527721683583638251943852281275183716121464157312717304973049634478255308378447937841476124220913019921629123947935533457843691056975856635128686867932863344379457528160876259858733171940292869619068738592067129523798978825361429540273253668604492175342000753450416766383413687420083477394888447995393446741472578782651604226791377669889522355977474777165239856055048404144527091607802785686298019588238206875028272468751354054696254768405662035638746894100873423469761405272629602815248713727428109550058990975956684409817348232659061383019975100104107282720979717258880461116172708205285024905713664716559236668792661247629384227454972690937627173279556849163076690088981114783001932636410180068218828569354642647518544077417732069781473796478966182580077673626966861020107237909979999559530579172438339787222868461362092118586881803729880250335760672469113856543749094327522407445546518322116883886871274002734985868533617635850849326926494522070526222747463264051969526313067410909816950474629128185056897275958861206020953074918940145935849991243454752678867892035311978915142842322290452801238308629892751200098432147608645653199904665032752776158507707642007218129934155509007042747301499843454641539492219933576673058632399515580879521883400974357929404366943074118588807407605092818312309978573675379435695718133638821630187853695284870304791618976821626932012628303450254955705825100541920917385501550949684988469068101860555012670629705907945060542501808293602429239411411240883269318373990777413889307157080724519317245400953265713103883699093876998643922464510075619830072505675453188878493703224890416668798287024828211093071552628549400140158101521829478685148821550322653094549740765831919064274901157439799123410023179843337375435561052507663726271743420700088684218046966006501009830576906353154950128678956981552932209104815603759518385626873159241390325095967576619878832044784673524783867806464883309700720296504152133455519537959703783317974297540207980455417690511425475240833189107154841520554019647416140622671754886973650399355264860050861868496552769993880040344539897852366638863552889523227390317821232385144719406075909722220187108053913217013697699703513677966812356067734287171745588381696348458607523872789128356657261281846762320110899631502503410694532253414005173484958795398167216573831935602307551586496265493412999918230829506150500428324377603425953533994611223767330258603446665212703619434085752344231795750726564986827426091995031742727562012744851817871574909947600449188629028159920029328670036391532578135177266252409122167135902891813559771886142133613620011177472270969476897707202744739709518876000921231709099270181904204609327824798728109195729974129508465625212711259934970844995935604672608846816194245634069921742640721145545564960680227230507381042874192638338912905243357563016532770433818287955202192272449056125904437464262753143839193978980815793508770367565640037228987442074806777989222863990393346202599127097935546196767506626787276998768104832590373072658464378890336602672925131170689765419263265250703587718903352722324752973970553491328522915586920473467047939646299054367844754247709417204010697110596534269628768057861298334404687570542718800926746456441705686985950496790462376691723623920023450634512450812643853062715927816343219735653857007577222561528273113765582338215007314043574800343075140216104134583964517735129440878696877638559704679338807157649303167624825495503139726660273063466700647920013326773869143188442899759548354812741285210514290168095192099274364249164292469150855797018438195404710674819716510777552669158650937179876050025299382047590012591903345529603574904301203689647913798367637255954844279050346190139099486771035360883966246832532199919356512232125084467860938928561561644264196346996186937754782008683946492299834310270342884821167290531457570443380161926011178695495487459134424588518017110027103893751593396225040582712576459603122276924943945194850495595664284497529788005198030065839888101991190104958657225261133223770495693011278837062883060486994402238976669907685999330745049274047953841968242888603756131161991527206400281346574208165763111971047268109107563838444726664783136970922677174103961770191963990732223340190707976246137947598096925619782987079971097564517929447490468440998624840863779798312434402625806185762128108241710800844789926796410893689831822789371762772922392840531923389975973577394308710545744023803195125965432643281756795893359334845945378842216551310210268755197040598662982340585820976526369801860376304617961968638715852637332947435431172189879289486571046336794821329727120020180704228589746278797185396880902988815250720375635455423793047429393418193693161114865781683422998677409260443629244884053851406752722056482674985118626777609725967608182247764456903851641197399399821926186650996122284397917653755873698261597203906226946839276859405374200408531339700963648472312205867310751619900922706606836193268468506165397582461050269500043263223065503418673866534644476505182867644278695840871465713157993722346563796059506574135080084219799934470132736831536930024192858945163689670758703906446166379359378307403350239381561119686200512416905690598676369915142218561471288026700523079438643638186769641560903558155339666635134566834098440504633074873223121547025917939962241691566615202427657412609546006123786007989535937071416057412521497450149027056342256897895327147096828422164555615444078263421609677866360466899028249497803791182511915737714655715821295781639761423274794222685887586175874267944763921765731802969513976323246991416286176395108131459187549279241659211147942362200685545200467471484739418272935734274816274049426100814134581395219409304472905713550636132053969664748425818076556792291772038159818103569150661398857784266769293341307798103605859473276094650676938378179257853656048204458730048178821019653151751598934162158226972488035677672806990536751693259152646261562558410428482808966929774003926859355295821882822590648325079992842166703185585799747031848858742312354985082526058722830853578605339669731093783329656541411684232164563013240371941406152794846088540039541690417559638068314714470045105784713177885594413140118459116232477254823732858750395049912494824815365922115296998219104051691477451653685286671653691042017095098215422968233728158102114304261337154654930897860586936616978224663498821099116789217898007016436279227339097329514905336817589269597460227101388701573764956566584684954733118637314344511507605933843924368828196805622640831504358959825929483693409531069552036002170118048981143710576954874170250570866097377347281038853034507683996317810838777966430448249058714787554134902290694133841030110667086561056070502169761955059392761969677287852065394672044758864589548555312035869644152923200646211552677789353685415545699260595482347437967101435500841602770070683017841147033911197912488633851310224291162106050187489655906596702654152524895123653190354927313822570014642926478790573998002086095302370499590178855423022530767816886042619776103522445615516020973197940897597005018940907587102919611498961674963757987921858249461332948186050766991201948804828261292537398665486925153810454924677669332528645642619217888867787499725364369482728668572646638419110529877408100706331786378262786717708092314555769066761670877128132762773037957550202654975285146759657591869476195670327418191186247754929171260256734803269726349315822449429708528571184223013248871686611887405217494418863034670137690959519022124346290687496993721761736386226470718783202924552654688596854196276765588915974323405143594041630538971905699944791197789376306218508824110493583096409929544232252542493514449079981255551129413968380862991130847611065072563866617700135192550203449119907733508716883449592463768463455755100224292643041221727610715489714120824188532036681641008732471413085445871757641769944373432159124660674332866019151394927901177442073132789685752513069635108934333219349678212620614253417540207134068982427562105357740394807421279177660267434702536833269357628819733314333583191214022243073474802418883221103150843879129885373427716552223306376027194747059896490140856103153174964783036061018790975369442762042792965526761617032757915876095069058681544965961604782049480914843013864653370426305067625610606345560846962718559368716446068955498550282855907988701095303988066060049625419433735975455182657920342947826813535895289211730799907762218932093240867180376876764484794764929731555455810406255974789477185834069523712742983539286216600107748324761558166300321520388760318249558883333243056651046228612233716826071623507302982760803368716507669065937724276938454258515154590089112580255052891875257128427617760536249835949858037217527298008229087569532755293721839223100374071278786630431117749922803050442543376636085442085787347497045522984719953527814883329989806520552275583129698097698391139857025056421544791932432620127821628568979358801942391848442721720277771832359088910948181269304550210064360929840637062373930673334343211800366706776854075090067353551500253043671781019469751636197852525927375842354664834140952680474549207220659566730326823899879652178863412395204704401643583638019517885359670556954129949194555339925554807565422610182662275421642215272826340305824826814345329132236856697167571267331739534580611917370732279698915560292637131495498397369157940447871327513545666647894705602251937298637950618537767905331134561634907805268543220716101689923208016236302523454641785933540210533590745485994712404901773854850183667690244341238118832413202947067276773898120152247631909817781252274597460211171021277893212924032719543804263514288146351099048225270392917760788466947939746128209586048239913454410539998219345341907670718817770836838874674211787369576922767922077522586817750297420063851798399571654087274547699657521961584757775927602763535683214498692366156040946468383774028168251664004307987888857112117600694061948356841627580576324010438698545135414025778519246247218057215971169445754877381622730371400810231143738470878343032218760804984769168096983661331058534960310585484082816801697635347572442663765875062042490955776269198550228387022744800742736915854213783906194739371954083956145114550367027015077775946085824952959673550915060230644644771466929864206984653689342026949021446895020194907055137547528854991780045053469176857500164722621770341329173588420269146573061913793893764798548816934746746785384213298739100756578305934488524368480284835702795772731074541905544898268939014212783224899037623610031636916994992841789409837718355188201612083754820366512234098615990129965457664197535928546032619977847157891688061722812300097715526686052728083187536957880300544938159015822241754457467701956350636172107248006461466073836610923181635889751715967566795344141571025131495762289587725526180718974626135711513343626718883968647266040278615017958539954082512450059383522598626291994375154623837828409136032690733689282090803278880741738794675965822740258362987631602434347011897196126841750341230977176342789884743507427534839923278452200526259071635583167231256707484537715406577357880377941067766811002376357430362461527029298302600804812492686056110152310860327518454587792203851695528488221750330914516275995165379782977220537365446377702946214292573059334025278716349745640273276971651598581612410142869487638667405877691965791517100213602068278640186755354530671632857611047319884766344948081951136444560557990739167182628081615989016989135431157970147366577890085777433270359057894620733967315859984659695306792218267317249377869722627928126195020243534906904211371679557616712514490290923088814411424395173395750224633711223079744508326337201103586458110425441603274293089644370323338887522025465445153541437962332336289988297349328822755417713006031184807310632311191975329372332039113654796188655700691247224854039044672015966089905392863853469600619084997724199946986145664088332411085218235295451902681540993994358941146200002634545428724838395926373881696786554206610222198264379548595619348246554513060264312324369742536385010046284979547711023405247508412099846119462178260427226152700858976761348623526272852464744933593381851586927385294994915929469528910431419152751466977832530774899079109436460277127041723333640474862811021406294425413777740456502066770636791011172002553644600401342955489187211086074377083205085823982579071005384434001606960552539733363289738917672213460179453751854484509924864529305223337491695084696981666413135661703554159404892957404135963777743325352234183734791122075881391234964479259750247645262585673001483204269197331865588323580060577455455459060538868681214452237054460812914088730190965982916234857768781681600138003338483170566596293394886090303764576871188184322879601062925483896492975469557947470634761342390050037192901851543453409960882387097732682879555044300950216021123755039485390933054318423120640911840250959938410405794825309159229592096082111373423169067112999469786265067627511598687240599800826274901600388525920627260460198758929510440039413395302087887950377595844390708696030342827090320990161862455197345865923637805088333544931678066957429664530178329582565659893691540487409047360059039315923731794854196694085231449183485300000844507930716079077276001135053275849935018502406119179856816559708339481649871537950914342005108364405648665536200154338685126431650457988097334682799014064657278860654289613339687976645405378479431188106293390360573129613204274043762602230488876982872866045350101808145129079045976173907493947217699780593974845021753334342305017041321107167302747153697812139456153568559777719741223639447725295495763318984435947452991886568819008653581983533649971491733590058690718753842025522158207864291720179592430786833515481376270738418641793960515512774454905915793425922327936854692779147729466660025722380970535025152663811841711754326743301761328712941899154615825105110126656408491067991166773651163521814459099859339805936883946655115984141759465530503715878364728643398707935015883592059485305915198653177081881264536739799252162317040870046259671505012119376004789726902737830073738906393592664109512471644805021034045220528668484580695745818328777051784379387318761546674465632397687830037632137936774797213936076069609046242490165965181416525850052324703488332113769439369975810056688792010458678270780794458363138163512806535079646326155675390982657220945446533186346556233760294888840898318631982484859594956557692886442603226951109945465198341958690114305679901056250228049769259309427641717364714567622336965581661575435140978973971831797607754127191335385772245613292412046760583048121362301997570576737523059865362447818553047549132351579044563721217852457240288686041464148373674456680282226100513912386001260585836667843748633870755293450182384351146248390587637623623683048033333772481381185426725147689179035372556841963119694668026651141838485353135245705138597739322193098550315291088528167031645894420452620656417561648589033111966355796654449697974020594490689844853839018312676174837161706256319218098340601864770695200590876421860639883646004137572667132103776898991752296085699185593012103391192704279846500804470392736784264180013906355916059336654519953270273033693413924448555863408561054541402081618289330565845680185597332397402813673346062512474407951558510805648738876551840945282854438907224247600137523290656718652876832405413360244841353864336740835959881870305176712485342177553204023486437045456389814312562471548565583788642935599867739655791320704083034487548728370957979019151696765474003640277981479230657796434672029915657362941115995618370845315317550740271659658534970861337116321310824897565430381057210976835096745166898383983941154653326956919825840654825431021939893712750060106395353389782605183990865575512578429217995752805110591873921392929923640937459596138462559960248947336551597577465389048925386023669248333458934744620868957443453620307601824280280073350524913298333939150622450829106316562410849438314964767800559250826020381866116583136936281992968296761608441071866083878965041776206310677006579652358446431858278418448069874699757247575444668132430502061290890682583839383322780903783900903047429248004712689164294757225973940176024733352316653782979063561240144010052219407191032753845545853124179138017607864987547228773943771723231583901894922260461148054623277695597129773210393430937910858774897829193622535009885665666276591473081704843850883889609446383620329517485415090967834392967004105309743764173440747627663080794870010461774677805584162264219111582596126104640163436730174072648655249797448098734415387875460730999691380486821310955593007979086042006607483027810758982392629660791551511506325150947454635054165425785818692256568316842077495550789526098500784701656611215084623377468437278265215064603220093020635031954120599133799761178840262688636506373177090767095510073303453442985835985128382691294085950466520380883216744708297318641900289827741517582407983569242554657523139350068162421418913619132175651630020333510175997387457038149670882916671348087851536161689698162586634755786177921972256578726782524494891418354074399264333443639636589161900636277347087755941942947919216752060323233532781554793931295991012968939782002017694156920241383451165992348069963800549089206638460295099626765413789483190403102723670280638692838005945548570135851967413343929649238465674246558625056971196864147672307799517950526157779138180902029204676274754749442304661808349792746201324192645071776864787729683540081235513656078582666814796286800550735178052183344909924442090913235899937709783796716610929587717764020006085689464904255132332221051900436432728396730400185058465412922218314242539499085866532592305532034454467177202174022259992458255622461276693314581426143815574042177905830126237435612335163587419101151946381846257898060271072777957849342305017137180581265081798189548353893668987815625723969777778574038495698051634151712678740900226659364562802011159649895361224475815392776080259407026401310838005054872470732845263400446781592108887493478808972888025421580352324654988746596088084723745253416094734789412646490699468610060750290579318614939752679604011483939218088721290696758398368040675520533672617191472439955414604695782067317871553380487211682869512622927847599470111711895688941296519446407130369877702808237585495803335707271742035512535291871985238458785512611472925026386837553584733039260736538277929231713037216019469800121024763180769138430488031868138134868702132092422550946957045200019761587390539809779715515716721296543034408560191629729296656197294302074983062123299332090134704121607254625878123615141276093586045146162059516012223591321124802224141487002447374661759604837734320418553997273522579487260857846742563706153809351040730912012244566291081012697529178349748469427921118556581961541666350029338438493761782613859643870199450568001687274866070491745287342344920759788132138918253737046382325180449897960169785057707578236632612450105758673829163608445301436475237036809402737526088905335050476155493621577035793889836487791986585105013209494211382975216220897806267986749338514206462634737685127243445139201161186311312105182376598503926606962083550132515513610101106720147226801569279347228144638978722113842798791635111965108603780715637130319503431007910779969953452540662152606416988013067078090953104980911507624928867096136924462559828162381035421661212730302649796481854446204043927892124650876365646274600682981795465664399121774638606063295978088599890584756035571353259471420396800002713011462895799145413307682463701442321146525058211207085236540425345684823591408818480380557178051464180654167202047415361323074516982165114915085854294053155301451348603925311939215432157423830711954105569893358378123944782912663433757968711846275530026871802550973094570466330331174096221557191034564835835327322583972635703397397335338622185420196523296417737390321053317684207099165736228926123738239914638260102509865837041560716552779705474794015529296880069201468628491609888422221980824420221028841712194996668466906480894449215916387943142363616618061323028261132316716806989606722216527139998998051986089234783216489627555918332967894950578184462883200558550590353485942737388894708869262774319810722377883370742487961107794762054903714902326941832068861964780160953294958142012720628681103605253559296294996040918560855030447681531647010255062504635716715774053110096846015576496466944480002780159534839592151971893774164832160799350761679372199684974163652271523519768745085167175005106749604814870662810756713822721269326900003355271843983711807605656192325945859541879136379310375093527228990184605248367685289377144792473251158843221127284499123969212640727193899323367463875730588232496832129155060388155294440124699545146270519888869897376659064956350778983654637313123448563673881088771387200385242616430302107028929336901798145061111063614213863270883409184485543249192228932292489479331287279915474734498435095524619762029179562076373039199941901673303304708683880841659096596118861050203583971823036347726872098324803691387739683269005273113291414813916699089411820570733995397600495521432433378913875780032643731452622482716073125911698449011405393313232836994099159131267507700297603402482177028663749273828093173532723142087051597263868634105072369086158618906551000387655388505755550469807592275439915989015906263474932615848440853001134517693021556305006724588528679912586239362806716260928382650555531373660756433594837014922382066300792027107828255773211468960078716829762044033282806696154851832902567540378076703010871117250775076845780488676132110080902653489120911458722365339413486105650380532696628749472260126305817708282863189320757064208156020741681085211610100882045350109496492153634571812796164247280129418443440486851838619384076297313957706093156797618636340383239960852818347474750420844711935182997865645233397005716053891781738446075231435970378168266009398287414217722961640322321408443828836379410381514770147976495868792515000126491329686403740957630774157395562102765704220617408519328661290413135269191179726326824165074804971752182258174473856941761135853396587459445556821527818012555359462865123374614893076900949120171909519100639661779826360336106998582187845951239332950111343318455919111927546158058457853387204213694774074252580629332016601508201448469827430029726449324189947353021368654922035965852226298174934397904778204372147938493808305285578701548388708730156343611798532576272649162501156573096080908963070535133205024063709509937911050408363445400312451469361397405522140673695942643461528298511248695439019426248839491491114058690198971675537630825799364290955512588867345775867765510072271756118972805713196585595662535612478489982398412904467479315257149112662040439627222612421805153062756878342684672230587471891577481617018794592499880834720694295111432562374345251026651123761371742799262208568375144548411215247494825170624711641853057736994505492892433727094134058333722699610124901604899229177613748832069178028550341220960859020391309967547849929418943079085641585343226169845766876669661904227458031396235298343381399888444107340263791787446150908294096882718541319862745820429514106584789002716468264166492472890845259757567660187142568804229651461887350166219503800454599115481777344496312889476281304516759070271462057282227422935323467253608271799397268669115317594690886594188413728490963320591995403273916302044108057980119406189746110748075046056882913873097036506865019132675757359129924001555547132563793976116282596693795578939165650309314104711228059390728567413546137108437702233633846819164693404565667577333950528753491684499504433923419341764608613322810667027628559542626875602829568871250438682799956976332734789529956393362560565690000066769823736132371563245437581045758528700211849778791238371742059678387275648643476359679210916195031012657329046739701201136828988386974478869486864930143656095588213561081136616533903805361054937984765247161707342988891539165935487358105516839350358886349230759047290081876958086034348030017320593073518708973256431444004660378776459104318673892203162178430446615677827851776481643549739683802809321629609716334918628175112839325892980482049664700116056941250741901586837885714579772723177860543267750739946187447692961233910669109637641032171431746829230137648049269179705979494542293297761805430811493277172631460648782805798316033229143284677694549628078499058522676377143099368238953185383327379581742668896658537639943235726804605486770809374357652675272523477992099430126124359162768734413421117885324385002815503646240168966384735420370561368839469467466834404618945616977503600690320021204529163631403784570839932858793743721175515476099652813726366527521723761243033774074016384900322338073846425154292860179895665754867979258242887547516450057716297770822096743783430174289837411575979468569280761595717923913231736489328776202349550537046067188374572345614971027038790880255696121494256831286950697908988548519145764559365617353638997974169298802808556989010603661361464195855127814488216807563225044117118142011805169797679617691830311433691825355308966489634898418539328648191211106053688647583714189755186693654112057801773097389255366336939444722617351176268658878687267233713786262227481666568293906468154126525169476862915909286158269198929974629761278816095939474391221451546895376678810250657628817484887132349891033007519234553641970990440288976424820824437876250393390842094796921811837065455043775979082703632413128926822432465361796752826376525327704752779802538791296304746198844364036729976099385993293964081717208804542711943560149395717594669890853949857013501066581903093325962749605632919040606125705612261281670839423616887456555929862615439021433455020943613592004741354425192088895458871227418572532901889528476947906599231710595391645579298027384038538807733147253172806667503858006843015498320089711618253312183828467844526356642902265539439769177825925620433482450552317964322634141265546797183938236239670023178002530845054145747062025080406580201341100368649259508835968836149457262882498455188175696917079003338119252634870903233410990331042976437883975337133818689545319702920410410630519791336894258659247017138183748229038612762265939867128295818665379446864241131581986223140095696134660992321051173926343062067200137979540358585916301799137244068502239869187961410860455220477732480697856653556027942556382486672608913928534838466647143093070113395672954163648165623362311724558829486480847614190648960663542342227267670912221440901871490813964596750456379023665873524418301126729795472219716420226186336938250334404283394462219721504400312731240139556116179237738235906435090275898486524977068733198188961923487097980258660776042715014062935895283059914100660158007349062100035002400425116408030053605799132165083701506269998499755725079968436382666358248828859280137257307412461763261675963884535432721990963388966662490253265204144249610566342190456002853248813258160643996611264980460524242480519771609560904519239977216381073472731047766504471005746940700997035334228266497916965257069716867099835879247632554375051145625042500121926879860682136908427936254332501778943288289980795022832986283119454626671052324573015680887097546954423678138079377459907135097862695311103154039555128106692045310194535712087229161025750344421507908873798132010894390569525189835142171822903314102431628829028685407973896056918209966239890210784326978903330668997465418251771905187256928874317193639045974725358344087295995684953889768473297846811381449899421645745035560090052933135269819399884826177865945052903533859538842652114632972220278357773355624617136294844818515417869886958332543279750548986080099251247437093909368356624763516935090551371597819698525946243948686250935661462887259410153989933333065381520836212851379479189661057839392915857686458555252759367237839343159888677818175420840395599352407022228110101936549714748001676442618364212063331645004069637282421285399454086034339906999755978151388365499555033606800297888566999292680755342428670067263529070659530825703839046052692143681770818430375202311878886716902557253254054535299466430256005536172055965299492572159223384596988908111987899903553459080584709582261799968067307124354870396646276752787884911042435678588904407825363823458636506365724547644094101000772417577404463803349926915416909693183389867868127053282580632652728230439679166072725347396057558830729039398947920386258039707480210902720268708987225444843581752221677203898936481486921092697099423534698923327625595128249857790638569137586465432985171214794456648398252402364356836453783172380825978384634973390205176414832763241140795603079897768616832977192562295944787762740644224832765200627521120536325909563139182058827553840550461122538227360574389262339187873585097566322256288325415849965167515740848747731582340292983752020448915201436440974869049471991036761411934678719252929008897311440536117585779903386273581431812093505860048198893223801138781159488448130501992357188147338797921095089952781008332769385417318601594587646062605640831266604381864286049047027753341557419392941238493821627862083540606961859094742025800993549966094627478690163362178583093774377193571670448108159537661007491187208703550022053331398092367050927366498455838145887599821295625498352756511628216103889769127603372315530781388198201144100892723186043773360624239867050720360323376020642130212946218448881200587662029275136871017831683893152796736078373817476423485793202668883908847405049025189417383965534104857125629461504557983181499942781050681614165704520737819217472833483242606271548464613455803819948418176085070653336294599807271737409495379419581253340639534170638326537608588959924816977678768384706940761562905739901887065964555597424436361470622347255506015989149407154209919011721925576698774851312884615210066678143321112688040013983892650655533822678433526971360070874669790881118007417754405606726268469967713985381761013435842350450447475469333252220421280085555125832076554870721770174308986078730849291013578660628120984865263538574246645519552974585220369529624150232700721671095943817351354560359939191061358127097656735717622426842844283709514274772738159966054114881432745914814820421901100703867842291911313046753365220854788294917220459509582928034676589539452813067076409080518544601640526322087494117501377225784258544624298558668024658758308817679912500088934327867479052171668991966958018154998749755539093509232054520925119181364793103810156831872562067823590468542654765843574068387857603096304188597278855209338605079434842446083657741028905449176289301960891216713664103126568711671853126458800336567938994762834353982131744415208699684984735178996339510107943014944925199590437798711188854400686224355825285601032624782501380149793555589805006230574978011435348145138182911649718499483815844222802166873812926827247121049937715473039534887295328053754339317090837881537991062395868720456341911894658283373958467059922463688306002962702236572395478717777718979306609535359091288263869454674788462479525144505044012635834389203391434923787564123576124052935572493693795747361355548600629272492543865460550833675630525420495538374090618121309056664915561935698451372516912847568283577847316496266916517140724558852918406025987007244712918876807728775699955386899603699020175562620029082480776478875680825388259538977915006401377325227153113018031091273411965441617911681267490227273277861947246373654136672950421333309576914172670688572499209820678943752564174418430427813500543462146710250060315018253957770270418321884494795173582933315366402262304371146919030002340566510670488003466905967665988120344667656115761106724800220222966611157611371329494203567673283999763370502524883915446289108185279173018082258480429227262669210715019539764710316712876756920533694614622314656945114808867745113751840048794747182004841666396388919804797067160921037934094292322429861543585168933656696879419891796249867668805279179517690621851783748096947719251321024691593332340990219775053531914875282970128674869041151805387979403747189819154600438573652703540318280166720372729497840989747006123991827210485382625715975698581256426231259613078135219462086386780834845691156888096419258899514782979231064015444886948502014890046290246992468629459862300334071628116348570950054451679372201590376477784535550989647577445875136234411046661962362866133877113486142018263812196365921533180966096631645810966623275668523441563805896749725342161788831933757305298308908266370996315031358815119020296135701340889196345223562628897236213353108431057100194554933481080464320541216258453625972933593209625909410944297865182642072381125113810386603999188537835492983006961586153045138439375445002308445268578114805865546970035350357919408090516024167668135291319663090254342194689459875396890872103325192949041200895362155625148847523490078245579531334198831495426831289105006981454214613934307375621298008472452231912986177670472323301275400258421793203517717978440314373721392957697620565602866846993907367625449760419894900833651235179770858083050572555543436888184996965677091791648815652478459559508714666508470723631894914465917588776312138175713333035852652154814086770879955562116745559442771162767478209913072939376362061956312715646430808610191393406737974686185994781159758967730763762922931388869034064621299925884307794999633935122914152675533674427673767031688740324247486565169049404879408071261371196540358585892112503684174559398100804392205266891261419631511541466456683532982276720475993574004514454747324725751832046339886266084672226750956134049682340788125665441656087583076824171603635829854144814681998568703963891328728760006613829248919468485806622829616754426939536140187185554869327635160260566689939618011283065592493052409711287981345321517927848689692173810575221303711823062956898713452241725054751862287497736113216973039100289274260704946316035235670224754226048360721535858539528832288713027691405943097872442949272290942158857251257880613572749510866471433414073224425798153741621597707379521227722205671802338873606909126020259787008221880938899264579410106789188203631373174229088310698211441333665432838273151520736058106745425937751670016005259732790572416603923626915932180645015821155309578154198452023167233277871342953314327305418139837820785445812755155629819917595960854607563046649239568669854791782636462418028430066795444841655790639536428793397175674944577865492564037311364406393219497659180433145130160008069541604586240870456290566701652082824946057883377477478593145953878930621036758450122241521822447493918098804093603173089769965582277258881343289368292953410609218717569579599215158477355563567705460399197662287442401661609190774471556279561734094379795974542710208922586830389558897239477088732997820117991093855666693666656216001050179028447116144685627172790484780426324884063162171941864453309410826773843057323194486257636454724381653759839836972982548143321228514924714948579560065549141863614268249953773959782315297420324426374280143255918592183996380063352562579763509646433309187594413253704535261304712555921637702812884714641688402237466531361355072078047077472574744165655942787030555412263867880155405017854241173447546800104697304136267124644694467322379361065825961975152599722046453000319273448958070257790284468616263292066053512478981576106703517764702356587420707798600582191714569240966568901964389245699934511763603504536911932840709060383862964084048608862929469326853925369495335325908319363818237872567740817817951697018959172256744211607980692567396867551125548964575669335029953999506526687853184103259283770611345998433360177707923494091169797508976632387819832027221015691050217081127012581050393613822545429994430782011448893460534534175873736338241621569835699021815368462155505388928171379593127114387650751745149809094371082529126796611190702807014714478867001365292946454337049388635648291541125647473144135134318716604304410560151291275224119393138059816156378238351843127021395715495693494156340481637278666060790207010944799620764586779815268468498212261244676168969154131978417154725801150527559333794368018467391700216201543758084734745645966696983258021904735449419462825360814052774843558859073182618378665065224048157533214062226846188056010145367336007686495242246484893581007673299336866828221503786972710921299139204011850834003130842415930519228519053510707049350560798722352720787396711348128003231263821547312814511288341974827314222366366602119312133428571603277490509128002263579243134384115308427801518613968213881458698566122338229412957772737721072363780426110584839349259520788462145422834255178090218379691342516212847128032328812904180437360140558555117677162457916623960874623554501008154294203819890000560707178690681535113027721855816799543774490034841318298678089163223318915480706469874388666132614045331687507411398422039465934305204257125821681522992663318417006211322606127747524893427960492639834909128513773943514528544725266998894026566728627248957283242537426364611641052937199092567738127888043500872452669099931281641961599703532205178497470223571772524884988797097292527247392514446499156025642389873120496725204025089407751510610508386213049010288865870893137814662598517343088686264437849150446385267079449944084662533047355181241827256713172425092377369979748504148709975617344077444426927539672464359243949588065909301936577182645814547614605746837419250718338542197693976906109069256898300505528716069119482097604211224532924895242035646080888787391793952967719481361856631830969849054237667482198978976605224861651837740278954962483676379642432307552312299140639901182904249635741832512920050531527906657480259954950152043993047207774953287273898009550918155334836645322056543142963992025537760199320504354542096830269082793693896265892233769718587400535270621518794164803829570517939890633343145423292645173674622310774998163060138253395035543304556381196212135419667235824422597276445904612849378348911252003302017669974445621807237700925109028521629616936276391876558902222502636632667236662254515449239826408762604812072041102967404966817381301045032562978299095130502922836363882430382530555649503945148943651650107690309039938110568254100002870323337444335626447833564465128788660182720414070659112113413725919143033943531196786719453863274922052087053263768381724857598705539548221651405258185466638892834656742095585270855094249739295576428550937402056749591544953842003992819509466393962467014190507797961946302766383122398627327368164556343937566642925352493661400576526443572381157028714821713857645090323752620894523833351980320621602300352421918459044008344636052427375215035068519276841112230390043438029338685218024144363130619197101862881151912384157361707516110627677192637792164171616111199539108080288533276789496134716961035602667894969003027378080758714747147386234307385033658279523488507167920618237275626780903792339256895363926737244957058891007243581107239923840827689751491898415702929012876325462868093459928746709022948000532267385741981730128910529339656080139647160812489577942396695191042310940367286286313282741661861625639482140860473921369893302018004280862954944877193853090350598538148335710918926568024704083921034666285630147922458642807679475622421497537749273495143944944362761487292520462070261363348644831219127675523709546990652480451950245558967141208340550784954398506409869632634771675313733167156783352814877007028558390471740011849909604616767799630514965589668966964839002808776109129204346460160525831551377897340955403567606629138391239914979913844186897521587065045183123335667795961157934579672686895262091333570262679253680738947223726224876488992719711084799305907647031702739716306840719193868359369798986868920144610427146377097729060463106743106828811639486830608866843878899777952975933287190423972023804695696817121361645096751009061583871541182951709093047828611118568700722742645848910633377727437786556555874684777800754308785687215788644970576908668094130121610771128849900120021597614476310101073920899690960067502900165354166491481305907940650217286826762410727672331359476658759105159541748947948995109877806401457071037805911172693477194492132038870852502424876059934288918262798230411959495877571277407733935885182908749502585891854065446350955416220375948509695417511056976159234998556185015968610440095184649691261351182256349374281066016445703627657474234709232690479861037364948466000099879061495185267168190222694747680497520797038687876707698559236972572779521931603888692788379636001965400281972095338084251696070520624265071170538172292990348809206625847360556524182643983005249638511950772954993403796842619767832186952250373804220527283273005655089032709548468587663280182548658497112133508796541509866777019108877130932373876834805000215329516626060312723507992639119292569168888714094060643385298661993083176450419891338261935067370185461331908976808813573128939226214208459275945466238111855199210059922254353181179419089060794578882800195084211576576050532744255142809935730815655585374125738360694806751990222623223168243781391903859335545174977663841175742436374999561274777479486395042580974174768511980990507613438455384773165286414123662139297932284616060343319850187293928310180674208965823500455329664448590016024788394964422585817086461173105822397082022622741441114005114750164446758725739703719206781286948077807524297990854148815275269838401512462530505036295335005925649985526426573995106279724154843020275788329843150408437464899654990236897151547063548611154823322193107230348526236729050243692317332965754226379386004124457402990572977372024923526103577040868549307631107568398419953200280742309162182038229005025835948030476157124231158990909008261540658259394654686184096834540158137090694881589024535096150886624370789948108072427793385115689256081217106134487917136323446649459546801132902621308015924333403892846694035066639729538250947004397722597151912048197110716718720905265235998025944706033782017993212452640065322253736202241176884137003989886698277497564702729255008434288186560407549741404080971716689037220823938864441850416245880403086042964831759933682085191789175654519305345081847323749561451903580130559415479355761334460997236655264018544106842413317135915435321224175642113674300541629664784736545873090657984580377655037074577887450374468143057267898792885882402176468696673298641822826238799848964983486615764619979497504369719791471700740513893598598767474429577145350124970845898392760910109222628840903063109794662210762556633276587567592472688685213579361306727590297003915462383698464214560948119344068908609392617715559555928384349508440005728179875542133334310075274959430494415917048010544144239077080234445248254788501346191631780189883627268532966604804711481758998198078798332761396987041496169944272147706892476760450457742775539745388178115195322244536277398263823161748296536149964069348012572817664671580268506319480741449235822416997027226801773037156921361404764244639528724272702948386370964664883790038232456837266053901405425156009539506801482506472078742322971096066940722969131799475063953933512410900082187903825878783837919298453790300056153507161687307846458240938506002548015717324657374509949645455579833101348974940613004049811569032623689883599602409546544821576917879604640105421098471666151746587516135850476868294637252608183719837707587925152232100536839822571265275908295404012460178602403204501225875135332740249912741415615644144356144354148694856006649278760201561646341439374456297520220461370362025966670451306970713223816046817578556781891197603249708200178147391156030214597119408359191871492482906831315020308608769133858036934744615190462690468438411735022320459102970368930439873488474069265610595395087547124012277577418401014815609170758063042178766727151108259813083845951875309551983268848818092271922665174192172487387988356041019586006444374039188444591106280451482310699619351383511080990587591503487767880460291044997145052405758850047793765901835231096317389878935179209943345161312075282026429927880504034689179397215051278427387241930755164215250229799478041767814411182687083490325331988476612813614626000580277283396722011914422985464415093593583644738781938171015987401569479858496562163402886605884757720084348675096943521794787951918000884652993085228288949054521348159726853471129075046255077437701302852488522712825690940611654919154571051522313398936297559530662917529742211299014592627707345056070173236490465201229410570136231759334365185132054175375756397488595387921841400586778478982799484720912850785355675840884296118455391433930038746924776805432259955674457994654324728450128912284733001240399804959795713248396957252977843263582848453882324058618410554360848464023387103882129831642721841019338309457606678376747688839916502921488904438077429701676935814382830013546769917520556920636075861282293309055818757160236057299361843739817925856839548118307503483336881615104551595902933411547223456181175991894242806718022230449804456498991080088996181646918108937592312390906226472304234903470270828509871755177285543758852512641952473409093586772148931674225788195162824685080070824043975957614639212586789723523743700691232559628018581215456670827297091814754029267604635076793626520695556966410702706065336021264383660053849164034921049667712832799924273700594622000334359073107648120081244198071469351233178544232912495543968704828426490464804868421159761081954207630856266216570564924087801366605858227289261864985050312655532531750128399824605271545202974337693038465625679307175369622759128092700685103905182487269652077026414992316078147869861248800625855229795454900124071510063114909409848174446391953311673617284893332769899096027605427258575388556678747085660639896571189099261674553365787858517751797854724221051890248264525722416261463279848977369329600967655473626928150736151743266051649076998503722855046456164636694941141680927947958032456320707569099502468336912130800801109176347660812084988922146603656385058222484850874484508216903170217533436728289353309799994524552381453038686977650078543931458935273462962317657769182023036241033181710853734608722974933858082412645291627271020874296791359517913076533436064762341551654264175619710322930029249841376760968048120516457329082458056032522835888979235771141615061395157771492571404688142615427493705647034648136939343611270956551942347867728222405180645162163742705104240886700077896926821282401574917796268019656601288848670196021198703493825661578489898963342587415340482170102424086038197336312795237407080336234132679205766275876943264778573419443985242237494868361750983533571662489703308954060542931684228015123507928041293473718939120827626462656368427146340265936457670495711963486561486400705748397174647905984320117731820660385988781977779263787321093739338270689800154653399441951813178129499236124883779081297734746444300485462821865367247178125206100502330655535244417288844055913977988564453616353681381176524197891418601485246227729369227225948360234024697366992055374405488080920311648827369584313879433492933397287399757149367535063405199816122321591314030142499001150155050475118625757635222421097297746880132426339490805206145143712595404173941407525002581448643023447645716065931463873513392473773934446442322108398375244055649369902549572824078618225990012670730024345349758733689226227404016193938791869229598057444804009255867732414383771373575122184003818344966206647594757795312944412580414626696851188284602553476322250715141845041127106711063897416529454030890847713316747610586519763271368454893028434108040851471638000235502005827022813060764115728843581185857231965963579673592205941642269028556531471966307165904106827819892429672201255545087640267072204333227799485769745108609112029250749436714211940151549878073115480498438544787310724148394513070019591897540571841137113495277540494635185934125037554546737747897160604567713461807877026835003790912668942322207878081441275646739244055673270163091084120846703232498790758269054435682252410516069950903845554882610440992314413365947762860623770058513626494972431382511326865303529810964020925017719054107550132110856155045970333759936669532114360890648489158279753313803905933484954154157807033916812244955073913512082146805970578184771044093155003345156959391316121032551933617638044312550482422651089673538927746501869762489430703924084931288228173845264077811463707129869573196971008098228579877686658342841035810237802131258697337342178556750925045633537374499891286242331458627181956144677539785310571427688932242386157027582407460390656564483044361023787300524424996324972321542326289863386782679814437296009643641815934062203778408405135173005824178647647481430429598559490852845713490730167002545632763981674953472281099747111000312315953578063166260589054661926969686483560385390428390197455479357812365167049680989765881145426419222409951883938928426715813661652700060621981386843628357358297313907603447926890609182881151348565676669893018652773981870041737295265740497022915333808886843368701760591152943872302446963526332944958848015556163786418382670273970476152058530709748668028038276370222251148045257610532928438825793715164487950712367588508826566001637964509309926466568514348162457447326424404783459593935193645881955995477794314361581280296130171832954465287216102365269976804849170106251543565151581323161606423873127607267873964511214378191622467974976185502752266896581392710448686436466770891284466344162007881405985319100580011126699875504406167357018258473760244957805616496060711968033591546354120042856473842466988947037317441895103953482930715924927856033295884194096399057979794882871704407961907401193362258675034506439780177217194846585426965092744529540270294421513373890953599633662061181245295110419018127528041224703705787399167974184136922738494454954804898708335911021815490910313330470577621080695313450099930175406386063069365801357793829642577858996563241493205996992757656144054360645833668633350183188943446667790209254314602297426491989283222667541896815876735430447414857095465927078087831279487249454080317382129660768061101260154524639805342472808175329945204108694132006776242350446781023037889529070508095087758976987083747455313741853119352174534117898590377484309741107937032902890548193259780003200610371580995561917662940074415538275407287867776503637345756778926339009565618820958371150181059608475141910269499605902508746951507237195796568803418954280953775461079303349318679439820871741733363109470635475065600092253021684764965550060932672732271740630123415403294295341136205060596127189463787127955305777416396402224355665311760215274899946375068692625608920801153711174200766323104720454950852865636354424992740394899942351864520420791562018343955735399278478839962322724068832993892734346981633414716053364875565723669836237009871993536628711208838277242946528854002360084187324309018860122293680238687568208034596422628945142807534794343735342032922007750166660520588370961562235647690444056647986834105621777940719440572389703042340618120617539006013207681763161120890286049634333153033569447877858550864502359227997107318239412636891060423532031568621716624332260725258086116807692594805542108062156617311570172115516312231514589717881776555037345083557044473676224408234635333074946033066691839502228524043730298507410871389126464831341076919212842968421615590731364569329782785162188567660109369865569678974545873141323781565357477708083965423432023911023326203148123970564071377833670980096967764304613986399643949069629006376907514301390267998824719790059900101288466645987337708113980574547889853836648494714684261493183012953314310521897153010922173581248461623280254946884788446651823345503397735931489412238066703891713628966800524724715723878722369368098195563729401038905830281319567579239793936959895650410354160168470825709414285038216971462411261654345637727603717364318650017765099146623490016014092806725726132421597413800451755011334728069635719117956469413200971843712345754020922660738981938385732901403788213552011908233741261366752579236915962088839694819147919824683279122533552841286703800276294666957076990466748535194743455993308061257620013443577975327028826847602723899923944266807919789496479356035776396893057156573426397164483264301265229111809051921601574980620639161508158818404261768406151624760504978387566713559858717931685869210126469556706008517064678271172052008392933181258995694883654381738211497212438938053426733402351641410509266990529362389202159416888752657445275866874150360528052308549808508412858552450090433400570355785326576442949229501904918775618607910179222285104891976634624289882422495573750935665406363634223526931835688305524858105677534270001534330343548459293902507161668710247469734043708275919117899850232248161866356841958350884685074361003961167875567801504301385068542822684355658780876901614716617667640962944091930212754921824958123910394872775179542634337320722988325780501553570975677724926837190918775598494019371131342246099535982424361195801750466165457530514037582624754874052474153095603758509773629015885534598275349370059485946317683687316670815106681205241569598147531443529913197340761348595047210025025327319695820178763588422286409525007804926410899718812100922927023960833215043277321739718512557796156093936947362372260677643047341766409524790108611287912322303437095040599258240245950920432878053153640922365026595614552246951626782223789882015586051223554639154152582580228142226065914364865636447104150702790073292089724546236025874179913587233656293606669484535682762255634724650370916613420408084052864484832165615221009157991712712942549983150772880217268275709041117511617078293797469192716320398820058410440233099234103100771394121438774260924739502245843237672034505714395854136327623034002786670766612600290645003237979813184417529424207664802154649822584906855742828068838642145999069027546143382669564053617957449877915434900940264708903722120244620804673832953575743894393877588781482187658441893779536463775544163963828048777746715130691602006139124680605648322703720112845986730972793432916188548520715355552835910150508726888336161753267007526664117316257966364489446878683302507378788832321706519430129933597817184040266296096748798222084238182364786999458048024204319320940313196146501894197143878893082833865969707298088573055180200756396093395927905928495450836859277583717829211340077153480225051694142123708214936506230822416418313594542652752923456998072609708764765464235461396186254781165607977563048130793841984023736031670693595846614475542264535545203124165061677166625563343308687314492760659101296470831418953240905334925322381761142249318097169411058450454027988684310518663052759589391765059186108725761518752926810230033331728119844549226237988528111684102805489918149577917020279606618716649718091544452408589258630307356405076441597452651616036671629691176196303758215404806548553423993411854428756408335955573440898813110340227893875703109540701526282061711745390827127241048803068182989609059817252627557520145451888016279201655880330128838125456780975302252745417876316283066366033040731334089617413222658421806668626194966132095354453151217740359460431573104095319492856591837777600317151704541207467590770899699895585778283872885163538438585984912103675529105889365159016927994185950634784284306718469425383597298100130898394470229355036571603989718342760629432655141580700314319795403213064476762619970627831393578285836778350807357687622217766475057946395112753529804971927718566254915804155722134661200612721760898823299751460945201236540408899457742293856917007378894173481001492874849927900811046888012963904864035463314286022401932874561674633521297191019509937764952432347901092174117569197930388171904099857532243123052259961491897430063509344350027493305533485592411530935899705051561461600367856609424711364134781896140674775694810877249856404492367303650918299530059200966616707329490220702860935827357267381831836573868436485489796994088116673211460136533399586008892772730312713174941723480475230517023490323456026989320032448482352888116620246437946742606842525227431423221460224581727151778233575374155951560216577656038050944932744043673455537426105451772686494510106424089002229375120935281462616947409368046289102368320680000832258954101313042184971585981667878463331692920008748594952007818445771385529334615801855204626039769467812706106907765464763168738213912418331960114070239892680253565597601723727480408462630025887939663367939583368186453504172607553737964439027289325656330860381856801089062460355194202968783359270186683372741871546903189728420143177258778578463223115885429336509780565000819903366543468264800067859670577273987039109619542814699475165077565563511410994648741222295875832929073642676996927984247070088647734594362642552637013800645161280164708171322274601783291518135606672430557244814028155883863507384941650347707095229872619517339356617117858346764770438948362308159751422158511011866850497237452073506014595218287793364224196374898810111204491310659887262856339839127083879651029251876692839895778079543793627143566574755801403123377807177871097149683349210299682261228790699080863029145942171615573546444824489427953934068046579492253895655766752300473324148238164377083436744789024113927950583749386066842128646546721462278086127347046331592729076270296071491702118501537314860002446066549380587541029196637521541916103245767787463863144603028480363954508726650029817482662391186292090370605485517844126798167182455472012937445996791415378587363581999576060425414906398261847641839966596448389969503986689295029508335871291468151176604948178280308426982243835422505867162830777477731709219662815807031602172470616971582002213811413035445412780587267051474215638110798855983952287024893999633858704267427904708281715372095619417427506099065127504950626347252935474120439370671729979198785579137383775352258920374989563352140943547672452489675138873148673829900509805470714116647710396374862175866229822012938424712096351994203834578100392353811046455512846550778286226020137562164075211920454235213952246456253029307691222350321116927308806172786811861940302520938574252249184901261991526105308158687078561112717874772806238619705135727606689027540298440722720431896629447518457129276832385906041049760992189924309380069975676872103993776241125911092793083602784843737736301261584700232969595565289217633025049894075229085387000035246301666061480428557512264110827002259057093302262866972362323419220903194683839759503143093709032864275027967849940598654936028058966132144042073615607685722529933579534156077878328163597350528475666933062458493654245940925559728881470405331303990666245449874154296045487662049634929150133543637737084165442237259611037778562468117923352320616708944310398686829471793534339836441716141416273427618041752750577038303827279656294892332243161822958642288250357633952593184894959817221994684464537913750582370365320366682798281597183332678860282994754400275799530721151296155800579643424077603189474190493980023447395907378053169478272406707717077472576030781659321736599260198776514728479961388488810030401400356999704707935658015707295306070748592219171061587669493373548283548557618736698330348096865608503340347457496844636401887989940421701521314697643433557825143973839947950411409139982356906645275847898633810888825193441545713637377641602743943564283712155746088755785546304758574029528798203880307476279268661018240350091746174435675575582259887431143826567555084777748665653785350196320306162197405898532227158382052917603617229636213975814074366061467368179187161086863899625194794851547417627264268157881183819242394497992015671369922117147571894355820460934652236922179817123451011083938368088480909478962117352521143224720672223421198230423721580328944460500342383371093601368438089005690540001216495280066055085812389731960403201281691546984961412862879010539229833597047374561207552570548662966529816540199655087354411847528887208286891422323647203812189665300217486678161308943761742012542139983632056714191733887454428794016994846874211062458312111940629958746669119177959501522712357091824892382145378245071956523348536982467109911241922738623876322874330850473866958358629162248420207307530446528257728475140066999272734668123234986563667995833700275980357014516845266430130274954156995437974231775661514510447623079358113368283814075642041285595523997004790985879322766992234756221316831932389383953526973305666743559796364484197302086414581961720778584177720784662810138429579750288455908816888539477855065749336924555578032744035707718720069816576663646144915778333610086627880637595209790375385746486457447055406846243059452578621938761769438795469072399911057467555179980150340853390012279159758546553870780696715128992519824880404849738776959143123768760551665631831888609905566701877378815800602017921974046502841786704993735978169324579478112918793939068828212843238522391477379504179481582084278849701802303110997739528805361385107942975055256593672502253920455851904970446367874986014311414228368442576131791529886526870441802196978061991079292958898344714936278425894630092617150146735992316191515455484055740424663941366755426529759045996416406302258787316287567298358964854276803161297904783774952908503632646211641407613907001410587279330117829740499767568195068978475971557923742219832077290175565077829935838040308726016793581154175794049741766257813562995239363957888528822598930870543300596784966826799285121021973092648756830146833763504221817659195763339528340975583915719357508806036422670309985457106113968099255093829132083908608015139109285076242457465701533462746378543332277001668578680201115228685404086100396285168083656136823498576236627320092650768162439389867332907913767145073077429099354278417583001693818274536599866734808913221312782551833388469670695629622265863844851704615146816945936480766025485478528288685841063168887275416511124123484518352671493225430512125413847480780045120354153499393435972489633222241075767018351734778191082465641022642012071707526113373146740254818018847757043085380733836419449016812240523857455953863534494636112716368630143863621788655491255136490073245570284364179634634598468805784265626460367713282520392465125947128432766222020788545950654777409770019142482852420924719346252858876117889980668903172830933009379984122435098188047994008002891719243722495545330249175917721164529531158913670014536394277729238204618094241490549665607685744613069281759520614336775468211579667732417474560874729870798590337083023498585902457777467488051477402054355074405492849564970213661105509395185415070584138660223723540435457828429826220039989684620755690022411208413733797084776634158400207268451857764957216152657968917464653437591808231387848091631111294913885274932104054252246843243161165486443996289143080682219075045188585080729722043790934879701862848618051460047701939769539188182738167608837256622472680689937058010961953689479305916064801320391417801596825840191598394520821202529981979728677510693154674968669913195603307878593500428138466942047400895192445788429588912578528982020868160207679330226378918612242735372563388756440479155671766749802231923223939351168525653331859228215124717037684999049065645929552329810134167357062715632665011577311948385688220378318099387356316578809809235519111201891780117382017492501772298506291262654543911179428865039281359082770999997131799966332522972538621899006303477318752124099196553352807501112257084636814715432965867983477476506860488725194466896967900633175492105232116923172686492553969018509821596147258362978066827638846333378916285184623973325168031093822086534439159018948576420151637710823409468451627972986549789928623431096621655301582856111876391400570489300054148203063684515995971906487468528635053484959969278722560616275572194825147669544827510474194032557835382686583570566974539619981684727694905728855095571652175755933005655064279017276097815217086394370042058240682550274571648569470048275805302392956836571139777362315110204200879133000181930575842149685894824335383115361031134444747236020687398490178846204501699015515824570059464676575654369713487396665175651770178314149437964568043958009769922718727984104249143173219678132386326345902956753871048055961199544189190560911721541422865568235212874672463399210862575268202326923822546928375327935983501465833972887420717665215481599453961112329662106246681238292926668659124218725146958498623505530769977757341861444973275035438271319712960282128355721044073182321998564456307957251753255782624713603625954798642280428526231728662181641303319663674165780036009151596336653345876488113194064098167865220385920051333779146657399525683190312289873922806511399675549312922002521809680841343518547424562090587509492970385399482349004819867899189209216372875835638532516550972421230110077835298934498729270922854437165079871159624997800908370966840212196010072920992128518837857185521198173570372864785963208168392987357303867871059621710703376168873823676872391138719304901485518985767348277954122375879561489996539844746348013643296081843357399799054600428261536145016822424510781957117662624831332635078763865209705535234960647751179515811574487885682572137090628939485814003047610059575819686611536403392015587273697065637083833731094691380905267140765412417561631863270636290268145181613017456927334538289961311745469076675609717106447079390514783846756514505956658875067107039374164416979471263686569894966953709196654417563480038304015394951819626662979699233384235637739975834266696893933844776067206470954317764102021032772463163987709579769066437702305673163078529890251642311207075508915355962840525558428265004428763600518239725122543153950126174957464282035089254461726164101635428567714739638736209775732968445310686034432015724868199101647968386672413720160968848196396515300540735249327934850298018032395400892389263347380417435914234409451012111392886685457754976756755179583760649485611372492651281232159444881962183754758745029823036463112811488943597986042446353746097403816789780653407516508361663863523198861284840734007324388303962295464249476996131325307891290597175005731540705870652451633757063454656701862873244360382309065184436233504799679142987270447920582842298976506347308160425868224265722587280982117209239275589430262689478856763386715581067013591560382308479653822619632764724031038382145875087914801006178782154545232395868871572614029554139164381916362187443361573161293719681204808870530157493856604463640261160305779669307040114997257603850991733240235279378632112938034841776347865636251056437801546079472563942108028438306288122260317313545886045998195992225277236354561904981055572546830450003982120170706705676499191007568585726288369590596229048746787833757878421177449246525646418843544544810292564184214351474106591413381547896328039946480683804986012351656817256725072277782354988903285994392819480522341673270133107922109205962501860559202168470166776076986274916504797237806145688443170481362002909244459486859301519890094284058628013759904816807836437706459118087091986234049232258408150123697623478863567209065460869752886767381608368603988016251664712019942178212656391318115320617161570376030676119894839420207746030131328036663226517178598562895245219933896529149671403242794312953869280873358975948796756878185292784095299357333571610114441794846691723031177756894110451998999446031739900752046329870624929609756910145975888996643804302054996913348089032605909600185424548302438886374214276293423268554578081144024489441793137746774495636649882728446978788784509402043522957754204405957384641291493727818982303298794717765602025720164879026397885802143818644920764595366939851686364104666631216707084342901233959570463696501912316629302892803102361450307715470660484714025526313063152919225419639851864503180485773244396910534761676884946551190162499221490808439517800231379628440794948772626487332936009956056704041952176217127484618387875754580962695551967652701252956290325381899222303464236216490860466828280287811057871478716692527622174684736263358153766195209592732932047576547435006239324501955860282979213537923356209742254122178147987447713438207171077711401118873077013878901763183648623700170051572915832647936075282956831137134772671133655882943721012579357369895385031928528201912680462232974818816278058043740175514097656237541211280740403257187550440993604627418226766770326519151542744329792145806326527774827298764837859348832489627820546568228538167023840673653187002022232306085557510515915094661222087191453839723350192214988157562976499622181939571694995288935132334888753601132362528915319039748333353462580959464085808209581391733027400643371662962248976705599603591208456651295450160413868210636214286947413833955430157847537846960730747953612471698147507046742375053345487531547442557188348990998877463414530309814018466296482483325712453438413397111096491449311232503148249187228571679577242862707949193211582534318144472486167425924482439061328298705114004644267801254207516318849939176744418368269838148499492193982197554851832955669968884726027235365419017233126407008688867719224156116914018324362233246888405048925422023689951684434910226352400045051220146860154055821287982135721802130714608581988806291791903873299108806446029042371367081255817979005466468551848605241501511896271500784314118249831344810775710989717784485175124201019449602657136345420803352528367773847475379444829170033204353304024382252224474990863915751028612244369157423194589575614085878304499213572406074754730509611679989899713646065618520638105930648916609971507371628303356879340197198874116307640802779409789307813236758804358820772820132116483128912995199382752741210348090128783385826523079595131152594497519733643749800683552083259110669040199968996340030708551379903267309571318739388155611659352166626573618466912610527629033853007180783431033288641434689378027838100457395221184033781980848057017559318091275697664785152702486242885210350563860458120914109092386971865471226259693771572262650799844591471732987646369096269370152827538040769348054709218158288783877782545523967701546861254016639236756282748080678288048303166083566853583963456881472307808159661870873623366329777192879044349124197186479725376959044409976064210080139259850662825262225655364451782823133873473430715075450245659390705102112800362557883710296362170180371780126658304021534811031227925731393213908976550260594092417265641721659855117160103401686907836458949403324223762773832868183514844942756306447336044058019796147202360864303928909629271916039895526098896581775555456514378892704249648851934853208663990731063744022025319101033189678539403095299822724456965877045544209563941148417413083326794062101927168145402838688606258330547715668560707561234666287973764702135892054188226275287839099718455602183319014568586715255476815489625258279335076214068643433202469718027230802691201480310929060567996704047669344830154444948915466489232064128280899759418815487929778657146607097760526691309294949076497227181949729035045130089181166170983245085930222198445521856772473208964448327333260226293702676050936405634883232025407373671570566724735478650468338741164229816428175103943536350782752247118877046893592022684974359992467472982052307684860912101850528293845664179774743893411073359470587729588298894870565620842223769561233997742400863776446167876849991609720573921106840363290984069838590519048798023719787464194134968888275083408378430745664668861203193684896236964616135094561967604700109881749416043373567371247424931123417908442847274436554337452721335491338313490971373570767018707814111304795385518222163443887524459914448161725694552360834857683342865505400238557735148724880723801445967264965479167492826080448644130882482346114041434948197762028873082671684255903676053952714987942497693825030256701101211058935991220083042326428890460741321539936526976124819097243312255719675830894824303759239411482307013458757345833397467057102608101609728048279826178069441182604889898482962556825981863958318545978100804801860500456048401971319304348492856573530582726165517591351257028967607633378113756884418201227444125309844327399050504170669772821957251646128039081031800643271638908450637501737080337626541416956396087629734925642994125331644230325831440727747276213471235103922098408173700017081262869752604152164821590951352263350698574291975576297573699844055345039807972715567020789086609907042231606585582748910828898232086907172199456763354970049042261517973808769359829382429405665259013721488969572634833646307464739745044273597538507494090409312518960022108645100773692923374937700387030691810338501715691741641888753999895008632772565437782334744321761219463935132199588680716239432991140784040277216445617743579119431299175153467022170239279084123094673697062814262904671095160278648772143691848527244267945989447472816289798473628096431463715629861738660142209206828970219836134081384764139072083672154945622779531787003097959189060956826039432658768608681356314465066217578639893807486341972371090752914692957137058699767617490296785960865937120136650525232971430523107128899197761217420720371954590999773637102418171179587096414860435576426832808352746811914236769636846675083267756624411931464234409746277036325807393465043108419729394161070980454214288025835211900984063513714758821669600876834270100861023934913661393789729642343052628712974480956913535848596154823360757816131447114105692479702603134471151915084949320785633950624499034682090953943598522678753332347327568117101528744149536206074354370978794310386452622931957070091391375206484965751393747212831998609670713774462413696798174258555512987074398403779001457656768748134120070818128360494050311937704961653430437137889302271612697503873347948775608332275826163157207354637169594803332824851160417190357794208979728954310396571863225550262919600235171802496902826001603722728413397818553732512054013275758935383017516759143404560284906285944754787998341532543076463184189018547562945819609116266248977297665003997933745815844791611995430706153319217866943089820326122767848226298003096989282205676363746340633074441898481512705577553459754318239164555848266938067351878518932994704227637878449305918392155713672936531691601736843036731824507909070860697569257540439700481152211957909221611162760071128345250795271204868036876160013484898869270246672296072142919049043414326341946853808628921594115995911811509924463335111155305187420180989997752790842489346436947126576017968030089606156457945774406154677862407160003822368501669847163702919784881846260011681268406347764931384705697107030886387640504578284041559624499038542172538545767729692418038149245663004841976343024709753235720559591917872139143608426065514839848080483965870147034859005067726585278863885981572360208522512667310811558496654232120965584893039518185764948213890108903568885763077634136089095142008452002826720393891521691810167318914967466763315086481807178529901464897124512001163950100673830138719472936094850958129863708859073882575177084788715283139465892251752905229024593595812322484791750311232598000426576738218164713611489250134312878765740053284572388947312944842980623071393646319928094523827815268102065023498243914354787411070496747809611133119055502775359761628546172237084949197686876255710317714033575526927302762723715807600495530833877623183729326338811045867815548143446019286856162837665961761688076293113681782653029057487793039157172604631030070478574524843634483910444922261589446227197337141732800345704487403718776430825616559815357668077023857674433124242058357058576866055923543699400016043858008790327630146809816021393392845078871005921090069698053521411102466264490044641347081384411693887968187966663957168019697230325566284708380222593871981301517132323107828522741622355472814515397593344035102493433036593876869025976287589073457319481218411380647091434106451412271312910439530967617465527836605352127962941514736499043756447528728655720554005456183843896811638055126028309212345250778782300046440547333797653058215313554341737668125676500020664881525000175887695218094798866151946874801577529701092013644262297574235296629531884878947317784953709999029680151308376227544825462872513339085615679582269116147643744503947109661500867580757965692153068137377734281715923655948297519939620968199751349743264169499716196154561043793061814966863678369935264655579632409189007563205913249953848332045957172220860599853889317709337699574672244856730136772920045557344469241808986320079899461850696151166653276409359429261447983598569157077977592098904505541513093955584123434116144672621547777210682594926366729508255790943878076164786777229862727363664824792228889357565881475428519906023076072337674421370004807902845612889420361379241491141523952634252278771275710789600579597292343075906266420261437629574979343260064554457137374999275946872450064758901830105147309516194816345527883347042316956444401925577198890230456143682560918324966372464167268112345955351695084631277401193912807896538040743130642090868852660273752406843491989189672322801474267033572955306277905080586787691864498186950626216419475375227734540032087788303314795789231490666171962583821160995153093218732766945803149923018684597648718700391963197626145420982824101370752190255886987787970672221064077450767487144782317755323308965870472001328059642708379322105490842044118491307973072649226319923525917299340322176846801033678908368238278537145011044514916364950193979577216527936440602485568752127607359458243660926074836187742082317412252127350151658035682026882849182478133513870083439204768772894591157578559563709837801836415448396159189630764641323852218229529439774682917459192173131162279351512769811576557537803715177787377095303966849325991147387457626443934036273156641385766934913232380109393754177156972069445928802765280184089321262674998664161679681338492606080438201348589536245986676653834405206669036548225403061112917690960237611716186071689425254761585041099056052833885145856981003229551469128296332215638177036960789109213998768283317876097087141081760805654942928568627373062869620112769324849390361496005024537725292609370892415234504213065457001691541650749268689464139299126616660552138432806932943178797197319908333098205304130719064425892790613342160974366563268263945123940708739538329431807632627706542575499321454567572034394822223272287082115379457904243571824043333262953737758313397138829825893074184860046295680935251647412897406007212423896349206547339029940375236377059908883446964628048681108814456677147126300494029461621012442403872561221648354908122915917469258971414342114659408576025696297723569053681208771959754609445703849785409665058269524092940275983005229526524096687199444613830602253679627137309626526757681588920017157866258923052447250057293062319696649595083604118273758891908155659380202123134956990374054536822372978502085823635827905263477962709880853875455599613391069522538200095883605064180457604188692488518028878387133989759827044998343604184408383786026244698278738227729302821231954602738333871620023439274163482134440922197451683241622374812059546963193830017642493154155821147628428656642357252042314522079381089173599656304567618094668006283629808342608392710855394098908751286015668032294502319917096051647876820744659568758227591256816202755489924759224489656096288741436892723045822075946436304608211594693777600368299190852138305784637862649843112476026473462665439062792478053560244400206695533077063021597770249406366687898075729331766246989099066923662427540022067765322972207796092494307425721548329158622508973920307592262202514423477738324685195282670552963254120145878786529346239980873583903084361038320120565924566834845627091647410304347234823262234349662553368302569477213539420533854172493682665837338099186208395906276339365066805345163018807688905647121924423684956421924405969685829072887422078868358082568684058544256614514585938340647132804952133811548263543739272884498655742105809930566119469016953083709763851446533924478052503342767026206681280840697917474373423527555969085179673330711967382063283445569689662755633358848716931633209842831677515738416187587795295255892588957286801509170752008455438893033308140192203200555169994978305838425510471416097353850852197427256064796756631796707626515000057789495265925820109877723537296561081770850366447481914746358112393177583978297813614174219936449527858260588036492634480617433538457224877025265384995477037462947858219924487314633341799095184907003780405101705223802696255739069779218390975726752863787500086943058590948606794720394364103284611135756575046027110206817838380783037421163464807995702569102042286677448324928975766010250408436005870932425116206135375819094500705331984401291520621922723849825871085182660735322486495127437401273039418644475535630339973484799191861822630626797590175962150064252538217349601956582760591296411104069155211675042236584431531583471664336716625135484134137514725453701653734292258357595612170155110800653007609676614282003745987960062499134501311363286807590127131478546798428017096238607007368525484888799642954808678565816012770585925592244034131679143692691304413337788910047468950804913913821059096917184031212479504221889570640072010555644364897693056899114972294846994624705763246137968385407829155577395607628382535447057647855056789557780566717150477378655249521162181093978925780050938124623009965147225278573319389345897692150545821033020648730670035435317422505769539408724867753156767840413671094025407031986058437884476286820903209555439095972610411391240020005975676432316214821307027056282939253288287208642284596179919461901994856264560757220114152076740709389452593181942273324439023959931371560219301221354660355316025107620416312885795500648061142116903406306629480784913780077121433498383213698923487637635689771084297610027611319908248316502062104598786577924237478532616351223897425792450607101098685078240056890972457352918419316677819306925842113969764761101538315270659624939268908028735897387255439885588601588276267116721494589534789854899917848688616792438766507572227005256248240246809091521658785593850766863796062054471994878293325079352582373378772509204032182517904745249254154731373331572691106562137957962997626661548493738669279736084807025671576070274298996567049664186758674332942352854781570699340939627846197264193872602443890159154107272405584750764883555281460554680759137094759485652603120030031360347552672673880770201376197358461805582504600067028700068821101805272799306351041931665993904853773449097504345277353527822664814046177144584805011446359979691280862269488919630116350995525369300321181010399398292614680168387213155703050079049398921950692306544821745623151865291486465913219026228496489935523653246664066651034001739611144240850984913879245122794400129687725865413823127480695027779571194573178067014498857774537393382575126127280361021402562413081419604875559459977293510508018258805788684635583262067287247765180256504530950104842201251614354188334540899188904812388893446177312672486932972304845550785457783814346770272163955118690499970443917651236265120178572419856900339344749730198224997321649945105190846303836102289413520331292736217935493752429455092107398493605204823219637375448688899484273101095300143022843369253242838342152361450934838952337592354462208946598394138251138878731389303008273745167097717590709993332798280798284344451147123059731163321013558344094109805350604748945871692768527009524917747965750989949838783390767132116717817550774958121390062711807235358471003205996373981007214549150010405599504993297628054986446701992297763922875812528528397013153344207461068955806043065377772506958695575802301698799987368724760328002178826665442157397488135497300307139799659304651315597548569988788986404745968604153706095663993686356144054266059056734992356141676173493788765381974222251679649295001459512392930093898503415451658359367334416925129357192525998458141120238472431955931824150961887343551666073310874036920930123650298032441470666744539852035240910904857675555515929815031997034715991042155361177380312234525074268645907749274799387891829516896461270042100604321286427064955171515811075124656946381589598014622022676852186450004602038759500012186667239251781167178026673993065326232081198936296634558162690128394008600151465847468016004008803898961753193542400546440531623096938085538986073332917182400882775430818417817508115770121192017593666673884887237550323827603231119082418693948262062895336597268610366785913122794633429100272205628747429799946808145696523508479351708185574395556309466225130962602268655755113388362446904632811779281563650761419171010948944645662802303224480628837132481883734974312828141115425691320748498323785462196495718575577122160801702741310278808349127424157931923340131257537770344486422373753102202359361376181406530415352852614621459797844448884950605216607065155409044187712003548310908964476778084613082458900731703050522723733245573595939306180420532900157124411572737781305560513605769347626415096989970522583498774400167477902209071689839557824433295357926261040695096516761855444737437835196753274433862613316936329292374054820335763937007772936800734528897686013260746318529604789439554563179651351900673079483550990464984098652834848815698212608685120312167450627406462165004573527095197084826968252803723093831996244187054286530833312149392643778642006793674631862575681845083086620360119210943195904920240628222941417919375967177781821179737308848367941105142238120135030249083822269621612708502285368876101717511693545308977853178509061762525626670659205725076308613828177305562246240021800606808679748337534881668704546381550288911050353592579061112091105566277879856084087319517201668459918412712798558224833593700676781078084736353690206321902625323986610278963434786053126318441950495305554924360665892659135806925546956169355932489843911023490263162350541144576433524935030042830309357417297375599380768780631917728675277914416689677032430314724887942525532832365075683880930819615065841015058610537002167363131305497857126192548240537753228468390502951683298004794858954894548366374546538392137341571044672580559464916620776580597729531903761640658154423013125201932884013948907389959484781125938450889385158589015628256781913508504930784080418794726103306621942475803188105218635587791734626644300944982096617719738031904147065597213602515300779704449345850312148964580027711461067371086869152146493822602833360974111588645708944384659196346672684341548212441525597340924074479966605241247910444759772235481941797173599093139842696437201030766965011004018882326673604440768496164650864810781114972712198864676755384094824940581243222772362891059531310418326232669615770266776061518552842063916408886338683816618212383869458887859130023109502264342330365558612078260597865549283889395491863726841226486040507563905638132378264341958458564470442255853549479607416881202498481995448753125666236159133990932267159987443122653042806025209752970722237644056263548117038110127913390349232066115092551283213355536642098620230817885110447618897955934188295138105222972347874687321809016097497981356003864462094211168099973647886604813251268179747165344208372768757976756698031158471059819556996183275565379463434033395441482269788827023012003706632994355625833511593868392598256937916332313676195080809014614125322223118256476173000565825546384241249428432272051217104434086293074681418016122529694031221845725666098960549387740940723491301981693867143016946890524102389868179240583806338855690169770231830001643835869350319976286129914768597375717724717908185030638053568666273483363533289708764378141123895176695480353401105406274588510027154502327625155668643358665040129420287450325837836489547080584861447645922841660305014668597641308371676629971297808568657665643506541651262479775276471320841497504377932191522316326668701035393125574193657567927431545329305896643643447324106678522516324104824557385674967982844251653215666626477028268968292737331104341483250988673155113145775336885352125369282396092539904961351005214761114714484614640933088092137686313980649828014560501272519516365577616370976248051232212331960457666028950855268209919907765301258803313416171827014471149233729671050724199805600223930752521625233482093151230751067910520831417614504947428398184461068947775921404546962247171423470132450202879950592094469468718160310596996622133522543676392922912665439311695382584223374275377188857744368183028863863862305355679462709196561037727971675312692077564885726643184602808942302138504662092615258830078664270359786557609609172849073990810836675556287588626226097742152889916080789088749688324952209373581134572272648759564380090317230883358135526442694240729487718203760146021555125997144097859989694604541335263478665597385087730310197438169333844462326545365625441503411996729480881181167688890944943836585772846860905995160172438960758026097402499927977512731704661986722553042926198011721773084728671113046668221536155948174708881308880167098937425367477573752769642879968197849826308768869892660961866836750277144040971866969447717733687339110477928830319264366110423203556544810068526011550220566358023720087624282939596149951526418261058919033492799729848369540545955122361998258518521498786737406543220788069835313087797184131901576251038315117539006815181204894996641899866396033134991370369351750120865460866383580278073285550486435927706908566910934452497138409648829024816559863264551935819464291719241590654073170494268753450984782393180459118662030679998156437290708509523199702211747178853724879962309602608348602675963203126943602001574629314435447303297979954896322247279513109156446145287341316745251583497421502191700277154704179562920475086554143144987740248578952392288320652694526904606435288620463911838834911484658619595825705040899758231552864610598469813054274334829295503394857707387491788773979391271478629032748579427008637473523763704417532802648378646801624550215479677257858375369446498306376698131155470260695145766199173644169349614010383639717381743355979218998042158861853061959678888125539474568116431758999448567954123027462793586037431224859587148967450880766105740631148089247342213869257774703906924321101539940935141807953879062917433714207234058896664254297057967519746528518897627456488988232366820337428597285818607344065213797066585097997888149892770497697787042475174686965744647437623711406326985280300087086078552558336289056351578515593518690917456676336013671563331166486364643225218651056385247578099908858061086444333821557562249959167508821552501340508715185294050380223151283794115512859731841467357009204487566600882640080307905147197257375021213157410539171149738260664196120877522593523947729605504005881269185924141372105146540567908520320890431465971217555755651544156377307499495211834660781297672596965729921516859371278376671780484096530287706944303381187171211799656397553229083358657423399665205611311936065027601527152770535801680559145713937258917281622547033113233098924218170282975505826663590678911883014433682041358075194084073259684371122377108656203504066254632478218723936802691743709656930918798451868691410518971325521023203725889385388805614254784293270826517407413677521411302668686214463054462875101475942689157474164727258048531406374644881849507453649892542560495498614953769493528352265966027472715874499741746982373272778683900421573430150534177693276797876585426176948936539185831506260575339665439613211668117110646271509325609893867821582839040146763218337864287959292185131770935457682181200787493182069499262942769228451441887507722283346123467130198771999968169760448264369871564321833006215737356772238339422832315583142282763570859263760005482120776633465278443348654008564550778682699627505567774668291697533264945414290856131905555706776219784772261703340989607708023817810450020955014106704979407202716610082297270753055424904076630314525950435844446185411142786666655442501533304638543713614301219948239108334411301501232588232088364592470786701554263292143037032065452763079247195805796443752612927603444379200215358005079361773436790354030851793650253705240735463503992028232772831063629093129858209775208371885875170472262787691394738813966407489276397910682799808007587809441444977106051342425418969463951705151523943028630423901079075424201700188226619407255749819418757494114671454670302790603812114466658633791814455204098188830199680724178970383304881297573142787310219983406207436348669828525149770567891546995434029306438205998456010639616106233960480847220466362851691667539324530669392558116035126670293213688203848229771546897990128196031719563613142029649903349802382692871706389172581490883200093598509628711621161070835538616561102268736545111594562229919192982097237644088900127846873870470666352506745243991502201703415218075214403258709521755665397345565743423151082216457209002405097487068499417933151445646244584851658929663111568653490231973071367002446419625241141711583704694632596377707815445995149836893394981223876811292740409228765204951623333497432049066311660318755662677553378947001140700043837724333420491591520369180243015957705322595450354542676510613270657751775624184523610689678585325173053086090863883804612095403942463333002170709745427137860689455838838750305785338116405063202490395223350504047357464807172589338256068221584053502219712460100962578382261438139217670369707759267094847403538508714777192232783981692370573032060642401742335342867655837472457480175544358871086036373002459415002276136015279738012093841532280604424370754991259817458793221736927835411465390904558084522924314653615350193204477560742748757183371149376563719069759856751948627875628880805182103307956226343396400575088734035816879338928611826194954145508427046283872713044490021390342373134829389378128253083853697220075465870358950612878762253642903430490177471164887935884506452007495843447900597185475138394788803443763769264722479060786678353796824647699238942593491300117244867695918694051861202638950340411558569981996326037474640405028960033853936297257551842714201257379626913564028808311881079682522670521530035030335597253690752787533482959561627311303733759292696667235873051743242603287157872977058871327371729965575166052178124786229739966923437199262934532700214171551179880152151010019327344078260238942910804722792189386901034844116747445194076355726195605943520460570314115599259789863305622960453737099168889780193026712814773772867778503054546322569913737972533638545723915563367885910974961789108693342008135922849248401132418637377676933237425022142192640307909037758925589390641373188314239371972698075102749695695557036659622408693863649136803332176505500401467651380221516688197175194607120551171147228290571911482517405593050320262649054597120193586500345502624280640338719314656093658176036306353233963840796583300705538079856757191619569670470479060507433275545782383311731095467224955811990820562157579785405679191894575411993906249309605871932109076941327142039583187238815081950811337162658028859973872112606311938922858535761886229239913582607036918003338737906515200637192099230296773522461573552379673625513876427113978392882788385741574033214731067164953340801164205984995122423022046926101485051260517178505429352249364717006998907920875878391511189162455214098611655009313094775191216793466133619709952489488909639094359605202010279557486049391830690394941747398402934758758310160159324861020266513806138444461039179812060100956297715645008071245007516289773129440472106211602121176931850879805227877063441824335241372583945979595793679733766033307641424372036393498520700498574080763341670631981050622521250285355669993255026270219415306991283710713211838214820566031732370436291343451272325392990803851034276139850133114202124415035965923335750228351405375337832227945959358911762293529667460687117822649607806934362976325317298027474928096199163911158710804954204966681964090780248414271123829071158751878500545643278142449730817373138309241975049871757900460573925321386326608081184893762607540415980565032128003344403599552916975705369940255956108852837709173534474495573827738421531373148800048245526705038127952627462180641096434054034814942311358889447015474975357225336758920203357183947145827932793712992598850578442796898079100644518240860747380624041365030952355594802925117171789884244430082437577998504088358597491409257289116015698144546689467569070501074558330361571436241759540569644658055991797981442253860273987805612745331634127666396638951950723482087531154876434056277534325482462415533330693293679900363820310587273264633005156171581071643542945670369170137833195465980229586880115555409603880788165749631839584475501188733847315310525936220891736381296550142918264819591011864401849549011727330619274301326873770034885919393587639519859771023264169728576058094311099338888625106234768815103878605051784706425959346815184552313951964385783274830521681403558696536332136497995648746844055036583224103761320706969803843347614290074768449532506570045429635460649669807580392687273317023564153611565281073143852977045097064085400501222134248009501931519749523640679208528969552424077905202901294340640354039824097719376793848192543866845631257497713567321386945732169880528366171164382379825335523841978844701391222297177477090524266003532949776116029201194508376337515210809892791133795532389232882163728977609044467655234951567594952980539826165342125053790158743370167178213703481416226187354711261328224485689323194730403325044792923868751144163192747152091378007732739370583716474758572897825849612894271751514014253054758101145651799842058949099825264724907573810351764367177496439806277987824960371123369139969127038974027715962284692765697336692906035340921264536375949811279225883320091396158557873704005038834192564880526951489876434895887844851097810371628846018363833750843251577604791671634028150639671269689680663283190944606781466308273134279772823272792913750412750239564410970247054682268889668192432174464819594883623655187037554928857886309633088814816480095613658206312208409730915109882439766502795173173919320189140627214660831029121749638748740644296391758465379152715410710544155489369258769006434821703223855578052335643292993068608319971402324828421113347260908161093226177325750292339657670104884328693706543170351799867660702143648670433715799976568811332674780013217893963918238467900683978017207916927570345289539477754070894923575683100736853791564042299874710305605885014094855004481088962597289242823456206688559312145933743941663254654344387757687280436322079838790318187245152290262329809142004444794053736711173390562448336875929927461404696749479114843555553304546815787756019131686741810369731390012841047490968980038951543709590920389977185310175826488857558722640885156858704556052716980765091511712061339542991664796935990678546003763265979606181102957124928588953676754269441960773840687685543326120368270002290610379575371100209344724911361460718407613690647449004100291036300872567821702703889290299142064376289596078474685485580458742286876361899654275436143512656658090387648592397829641740633714450879078077216567976242642210406851274593917782130520588995050282590427521527335870222555992418358737237594237158302728930444186831736111353781408037736569569910169049322240143754348104795992151753207657797089328997870749064473135868834176737547467177389174978751410907695436092958125883248513999342624608124702983569205527021338803184777097187753637155373383009813312025649500261845832699212530534949295053447984204443656920577521907149168599702260034200750939786503616689082841108617925450342551800794514925061910799021250486117121298714979955114702219887364536423503996396276732398670677761628285717397617148735126937648352776541889377877800998391096382494993086494241472614725795793107852948126798578103011754621601100753159199690194135561524712015283473649748316201924477626154104135991830686990336209056791977574037854582195112586898778464120209447339785694074767877441446181194373332731807008819188087380806518639651404114453202274976362384077898637242315580822276054217395561006336744989565900388156177940399845650866941211016684746831543991065176910175717739503816946688870212251283678490624313288668577701973772456808615602654635486880114363591286571313862060201299528271289406553094931432653167212598716255821564901646748416224138792137251610148538530451856194256605115647582779157206027968635488931250267157336308040806194006314660891961231966003374233807244940914918132701081226591705532209982156009555243298627882900186706659916349741095380896710346980690206958828704274579604046794491983563851388249765555867906053643276377814664142145981651160374086801455098191817258923383659927273331249667151365914442728999741175438540658860341883685207156994034547000763289969567670002968337624965283929609723432363220549049026444135281939862096124607397368192542013880302789466652160976989793280183052209411707829338924911273548509686870799688168379244283741980165652304435430328076984026899920097778119339222939430341096316734944587495712558172309835615022648253547916581775576349701930863656441917905929305371980951861195109995242619138646025315878493518236858645303280874767642420174858717246271298020958325662302940726490760382165682434165122931371804474710522236470418587275579677644999319406637253844148147050436769200167641155471749694359847452389429491082916929929768586079244429338590675615301226785487276406008029160688443158218970014960314265860714288567890250065353520234163503293008063713904507754425478225342877741996234049743778073702806700289401817564577444277303407312676495325232690975504992932169845455317624897012071680694326622202469027940525052058824030980533552956981501474850996761987435650252374596505183183539220901437348405737224211084579405309861831879672926904801900986190883218922482657503226319566695976066932943221743197767891091203156121182030490446033547762181594688983391098356161689557784142675229739356622596407414495604639332235265147979867134279023987976803073963151942638008721901843621209588942641857789348280552387362011565563184615158414123466642959100355645487909239983571232407017019759780231506259542400314128471927065910718169206899584312218690681645364553009979934034508449795858329274863411570050853029011176453985364650859719536145531414995801574152296613275254904698812860959429336705245719484995311095491595423679080454554564743383866005744157002585947500316084062357347034120414781701694313226069244061676535621183062663157396056319724568582372173087904571210338216624151063973005965242552105094351462829231521206869988384602765403346948733146720333998329484721737924574337416802464280358660522619728615324157829770544816537657584607646808864727009990980457923808270127717425521993089811840317980952353893877632571558241109624967163704502707146933902254024362434516014029588196917576137085133428110038275383091240617937243202821734663637036530245671392716474203639657448686451389315439074546467715072228724242182167373079024129093334570227027946392189179819454684340541654922776584748251790794260314720681712331421843607529703463157666076395124319032230219266967794301816349576159143698850572599473295962602861911638208369242150035886976521177440965826167961275615300947703163053444656314179769974550454002129759057951445030879426124532049948930418563795622008430638625604984862699913351430055159127927875753043014457602172732107288364639184654665382655239526433956503156260231524072599272937653976367472275912886089622312012166200778186740156183993157283243804074566488967375704493057410379657550019840229886417153139999099515754516511986581980365045066403495880952416227288483624338871563127184363440865625693715396316365660685450139790513635597999652726337810548063071762100763600712828320239202436465654361579704671987510181911737304844002368406599082584420609727349811515282826166597095605423602926357022966115500766348900992626671094275694493906250098195858945614002292100111257817769831442562991237685787839659294139858431125002035209399576248641084920632587369091100083200633825846924843252939529054913637701704588793419987224518135789486268560973234616472245563568978142872851379163305301865402072574775031738060472756015975365240096395439005979105670045842339267096971546241072548021922153975397684692316302158083604185498494177150112759322619405926171191745290938906653096425255390193688752666582604805488685028918608581343094134357794462422215841579774177001233113944919153270489827907205813917015106632466014322243607835094658670727265463099717217680730387777709018544935670644292258635358844553104189097909167516843931195381285480069696956704282130573426457614415858151916380779479758762292640629710836620202357081061295086917374101345972560875724802980339687455419830456189758815463688641784070714105078713777970780118802644933472766646667462119736705693095705632502486566464416897892561889527981411956146888913608758579488900120507858244957793283663254242443570925212096123409235272744001882998522573727633119770148772701741773808612077588375892338963860469073666248616807880581994551624476220896587247892904965090823422895324723763479690922542912930174611413876644669589512101701607767650001372610051993083475772677997896094097489342036694974274423080196114730021837550349947263977635981053134755780007096121206010136685281396758098901845524506779404539667570564055315533036774744438557984643072266754840541224098251662883907180052918628686959824934974858098721986367885496827126722082501003232005317861161473039091517451260979542408946093883114674649261450658712753659603691059201595984899378825260564679561867799758384524198645595743977778236228009223765611728658253104758127595780735148575297181942420552912836170520965809869256002971355081411584447262811773075846717667335345226133800536698428571947671081731174371695694915114999361372398634692703649873291892109094361979229677296562439014455587951764833219272440392723366046262507265948129981658795442649813582781552329436077335860444440506033972376902411865158799773929529844842330269694434505091095522887747924426414404682540226591440972376596294184931304568994751466269549971828412773117542388350927953382477708761440118877815858815224255050629825388652580431913657077000443255719758535570545134165502673658528279684116542389319718149342352568143257684246639680952176393235262394783063283443590390403253576281035088065800649118488492156228200129347182376502495117357386509232901147551560600275033693202672240627438915429802255571078208034242236160032950578740063829079825984926948350468082927994805118420402818328408640639714819469769289535555307000002746486758859657920156438348197180576165874347360499637793888517297207285105980450428325888264314867497600999201368557836808472019633197143056958976057298180297215127569514633481147920815119993848306333237709053714948350739738600368053893659808141851547456318592334125249295594607255859210442967459583146500056918799910662009342047580532739991645857617021993538331587608907007765350733180346356781162684561509853243835057656926451977534928709998478340252336238121604256106700331478663336631971285506377478880194562410806012909032497939414376931799671556692158441407261111422777847008996949071196654066289837540277289740269440322841897440755931412723821262608748282143432058130401213018252799885859932621777282908583190409475928082682247618926231614036044591726027189327340459860788643599633943249409759135068548135451523391233386445092087617058497339418334027064397856697195529677020586442354779026231193533536196333123821670309584233458415967293491569457848115269602238004732656756813405461249072764078849600370466069335614479344185524503065639341526769756777081488947762735906384766527678506284720504831466547771348645796943278240319834088010991828903962741952385584190201893526523487354631778941504146508188028292058576020619907657853790663739775884606023886852928079811334500264131894965007862115379996564953777033872208213091498073475521006965593341438637904336653394848227390791627481285760006712891537989802348757692484947200969010563820489694325362609088024957133357661891072791410032794092525241975897017441762857178381597644775960884270586015820990515296965974586421496920055368951806255037778057245420010122937931364781166189280752305247320853353160848392152207223854671905343882181606701670790402148218428742341465695429086633110760055656126209153316913740754986753985405240069118132830943321190328816160946032723631414103291633051248233080835908637292266429127519153422292681292643110207590286857454607178112292726985183447117415159208854185696441457376271567030695233279449732082382439341501116971723059325755665532891587514749489679581109049205279561211291251589360717464153078707326289782934158454245957589987795185112779017659234343998372198048591763110561879330085605051686409449467504409287324539431873194992462905301179718224627094915204771997716728981748836761056160579905424588881071367989912890579244647956873385987877701818359543010619135008781616175383843141681210432050107998767555359814384863670575659316918836920134035401561739325112999373977188554629746115307688934312546989781312780237649418708195495665057981549414469161999429301804729252291014852411673318971953043715298802152109686707198326930586927966830358986690532969930537673529621993748971127695533787907399998424559184437210230944727508747341349249178115527367206083836324463843837080263823127474673185091722074348280066468510071323016285279503315513643692631149919129855902019908363848561664554948859568429574389659244893585677230292918422707074031484603180333468935118099640784395812528263933696949411898900223819627930159190287888767106837875830194508396625229682636482172588551844032066823627866331550743716700256852860453237223827520395525782704620319555589086247539852246695118198737179278182232569367517896214422880212575717471114521619735818470516386332314557537222592376101075915470521056494020046462964100545646882807236583489822932919198224463312669054929708681492550148560128562837398558161802417532954900552300578955874744357223728319767793854013647285135973991952269255747013855610476046020461308346470171175568805911194092768378352895624071514715963970728865391987483822892226609437198615121307875589630721786159799381299577636068774155477674187402702935367691619787350632521730520619099995185232522199366491617455041224552958845166459564573542936367495763593934490878702098637535000696176706305107596545703203718346025162422390830820858800721955209251374743966315480596629628345987408412720084319418312178048306979458790827499176329417538801950763512552002748429805468374275198572978728004666500326650103821663710254730749664289966651014827085432170108591059412166033921875126642233623506953350236634787051876467514485442696843562626856682536648961981106310829356617979798948878395310460573933107270963039361708746440374733283781492412497626827144769131438836772707374534253170679867075811293128077213704735897680719864294318331288510958122729727572805057043137462937578855519898985679462449471506185809928202951649242433462346828096051206702093314757808468117595303132778715308043073629309115398285967372940023327965474906774300681112825318131820245666594553612945837070561799057504598570914015090244014673841001515576597895790432644091648297437842007343244204620087494309363163524476428744392745090518214340804945790818185261225424709276725122860031275805991840499387703583228206421203586045130235554873875215682627712376577573434553338140578892970144885279994723518267544011627694203082703095180576929020972459466627377894633651662786221585110041002309803501901686887545070694192989141958517524695992951058550906238005384793293418622923416914348520868809237148442409000172232560129657248303388354973149792269822217963571714506976469462624771471803396182389253902507949099486525721436967274241413201567395690886799480052765573422930084986828102824493203535369143067883131534209745506208769226082056850316831157605939323907360290127080783554459024883763204147759320391809504052561530404047783806883325170279642611693762332787882486231797243247577715604806645025477534827907588654467730633731887832793799736840311061529970027567777224736365682314762819106012751619806195719244667028252057090300245810637043622465672570808602253519518168139996511358167908944759280497845157031145477557292574986985038167103927955761014381900796433463729323016611388786955296089544863922794678383188663688704038868338900890733168513025692776127793592602701464517758230687371864309326831108959000338342271093912094390799793894562254823940439357564958205716766834535274374751037511606608554630139122411727289798307917933867461765233671256365201256691180650175180420157348804014024653510613910013102175978735236385814046608448342723008372784395107496048053986866547896371977075640865942006174857144572111568077800366107589534009209378591520567437485279977839208762033654859051431733719740124757604976345222964098755802102825362540667947715186612383760539343683228419667324937483366191181122171584108943887596520849246602488378061576014542645445020016727447783796151234727337515633463688631452059901912112556659754634981084494839362494333668078665823639521081263279098752246435994510359287220772710385913141657374466273355233007543099498731653897256738580268536328207862791606440113886318448707739175209167800093756020395485182613623341560925804850374914441842520422328301688648184828212251783134875038483928447680884994769342150968644967606747345971623234433254084319192707852237002767205211516397572540250310201033800746840898207328828986715376097420023069922493509908717131274237357472193247517090642423828251933331509149026085814652179559002386773323887451520422027203801472801655506900691922043876204750269989261984206108342064099578730103049591831460958080157307385581912970181036991141876064644443302612331561432405854208596493609657223867511675834100842428722936004051371956639390235842085102944236491387790904044309161752107316049571455798171097802986086685002380524905848036059464263796332340699724340999777387497873813207398956997149813333386647215545481411038532544707777254099282162738216454148609049256014519492569764932611431146248214642726209404328467242239579731230137300965490224112501916810350319794633599811971285828231642349538202022168449495353188350756802669272126262411616119111314782596248496764494454166970838837104889419493896938640038188253603886343376415793880696682664208893759956193989898043015170950458764127536301023711137321908140301038854952638132827676324353770629397929396561303817988910363930595547796511660171860722725353405699437444415943405108077989981588026253951461449158017818011656570843225131666413172221890014067980087110859112919907613517515534796600471875165114651572220416226566809964097488873086797343522137688646386161339149252195019374710356293332897172497163792357101798758829123531448288976569225478243501902172491041830464072662749810540190164763716085881619281120034388993743511025215385640199823524575291236233238290088491688889676016283507640271107871828390857240588534538576513165813557963586178092711529168830652949955135141022727533413118859222685494949500731799661777548448476373060347968767071301426374763098920319343729359673798835574567334621593611473810514655386312477257157330751841149636714768834054422447874509681956767341243365755950452160581438247499061770418162477240111559712260625710879221692495029277135165232985755216370432689466806136311047671252568542201766538381391757943799274480867833784329501778112498715475215237127248262988509002665781483738711743604697616884094327501492774023918093160036646588648331041940962706152812309448994726975403098897133013306528483775177380664274709111131945716834920303440086688483952829535903968726537368524173698187419597826667899980208337815957115860011800682350563507999212919475238907166299919542317823051344489365157649013087742277232242673126302535818796859987418466187379703268401485257437219896897570274197152763044264265001675623819398693733980444992341425342943091870423920195153799756447708248151647479718449508292476034686828333617023523488616178230701134671083652497423633621110216834614165424135906147430433985287467766996178512975543395239470058579919918804156276739486560526500025911014304033313497626915418820707763284969648439236237442893276038978800446221502784331886101477188288216858897467402001955963873691930853330657674935668008243014050491641316220412561907660601499284554365048083297785785656538668332946385790596625700571845946801382781999883374842775365821025941510771156808303701178577952641422697903006408482718910831375923418373039303979354899633535544065310016607219366075153901679963907327865401718604761370702338870601134727536256341328104519970991004244677172242785433893562693752875751861430799381998604777612973188513320557227593165188193216140193437164645179939340911976522159543245822777988778503437878868152179225154749137137623926354408232006793211270834315372833754254851223620871119758711317444461198365968861424283438978516298488349779374974866195653080894058582210481935813170309954811745583534949912894650352011356837123821906096443978376435347106486542159329601991881670306591859268766795820851834381811602054093829371373281287286745423039556016107927596405839960652601607716171654470984476644412442263276144037654274832770667663093713285015161286550044032688002769135342622341193855438400298807279452979908471010608108392680482328789949948663337189597598126690227089533654134398548825718107653753100533716940952376702615946464520938023134936466362750208217845191839433543751569823762640795994141343116831654934953983530793965766409018618985469887055450803339496148002114656908764266126117272446484271440543886644240239217427005113509258699120573333696142729060220749160298521608264150827846238624494516856307454915089792043206976656293187855414079793655802063991737368074404083109801310391581293860555802753509736634777525319979903173288358541845016338679080334100269777793908219439139602525171824854842349035674689802089208846289018309663406324893777060965909683426917819934004347050365108491130648036911907493142700998523171683168145882857277414657960787421889486736473518306907918298346859868656023307045306968955115145373764047268855783318795132197953752551359739681157944428565214630998544738017912621866868938104133538040031502804380250759236053975770144211551238354045288986824339175511219655073206160673188711637406686234888917081239897811866784873435205564338128561656918749249673568755728290279803983130089513556636722946729140514815204050784710318863163750557296107185702091863125216029896317683130604018053057327593956574786090998129406753200472090232612901885699777585613556526160112738688658735753708311464471131748039055349936897321427255735043509904155023978112955237752446804748995710958678747702033355615445423125823462575606291430155445586509500871655678035642692318661952993321729324946113466721924672005352273698946652418108706793482281403084160112179205951567434035836405787581909873466642403527470600904166429821035047519919335948472752390876507089177147907807049260203699926323566822745977641842881472478399495547975858060084976621607400320749803971399454550434808481469328279311786559090003178512823397580486707178489465008825620809652892238820347231436926235183715504738911936339863018960669265461176564842275057473473917014883337888143677014860523889454826723197543189523918679607914909303112302558769795734827471840360370668827851263557512061474036821494494703921888750912462657263758268296886773396442600363310333150475489156473437712234191780627643170486443508187726474287409882171453419266203159679153821738277045503360980332249626175804040474741792414461157414629899813876538757151463703291255594324125486197074664883312635750650472292272589392318451531310097127039199430008743725457980589371858175766465155130457555171978399082511268124192270557920679664925175101711854224798491289312165006324899455425370112118769799301015287224446824767745137144850739981080514245914156110299106877003318132304894183815239336547517295849059948577452051922610137910881233081904377201955848305063057030596673563531309516204808190159933802610525371404683397784245330111554403700889522842515329004264702302596299988252469958006225008628522683707913726457063711362215305671148829306280254649796274505420509122442514620402653286020772497500396437523651707267939253464024310875678910989455160115998838950382811139581616042431273922294371750862237248214903957495612889483162909009119281385027585429034453170947222651412630421728564929400028007080834758776901788638465693192954674393391942314415390334517509479501942294828156626792801790744416189144861354642302416496645687935087571588954118446305375432378408554624495805712207711803110036491095290450843039876394854570785835255986090329999055440535055072362560820136169200286277027824073474773139142767703028653991891016631769515551781594128928709022429349845995751590812938938362131629386899686197580185791268977807221844107499959722377180736579066262505706617899397922064543066235670154205560055592439569049760475883048874420027656297743536665306054453083466921527687893096456652716776185922434589407535534278131377184498623682697159075562797697707916050273727026152133003671999552865331537021972352077971700975484072349052234771714081088276686184935246088674456145200338087680609632126166351353835515920852940984864265184936025556610454045241748237436863723921956500930949096778769446081492711743843678334369483771866988203149746111861019519803437558922991129116187313824901526400176072568244919676658012381819366641863077594721481560153818952927240282949177084414274697333087843613653373010457161868732242698642335046352601831255094763691305686871029432710486237700073254004811989129217111355736820006917109777595957621733391290051004978669081927609364196538983838927888936862378422501940343614995805255056244077316447127264028010917580758042638345108841984440156942486249970919375817507289520746575923921430556403770772829752731142336573019143617331815563236045254798052932525600100717158565722004409564210795838441805784729230275813767538884405103952592417291809629183874042658716025066465058112830807068344541901126764590638029922290509921420849384281095030907438254387469292527105735530208925346931994144447226328889174640144005235464852453872666626279146812436986866873240813654965136622945657139065300923638209549967742814005376911675619754897757846336438306331453153171138878705153696218761926826338812961233505872663998252173124170115116006993376660079130589252403296012996538216773571246264702679466186543536673341877824465592809748747518104538102138301631998516926666031067216327790328536606094230401549393799220524895860551729577266118189620108204930754756458727705536965659624349254590412170332713429222049241713606875565460825491922840302695712892051460468371820305042218466588913002648180822756151540581591833780739771723535234722510210952804323556673412954121784358534465897478153837707327051219552792608865380036869074475894729620732836806005953697200534334697600456309999472363642359598333911628966250666249933965649392930368410279058871427001146310835329713886092593803299982783596456753304361467631102144326296268423709760140657502039534230121820728574327192664572873636217950721660499051852292197826097862013181039710935561474309855235615423000185650963612696017897638159195584641276900626054184037701015417765707652280886890638298384816073458463893506957188763003575962179712960715475944666316414498004856820359559066239117804862367368625944932262471720045484046797154568793487974828407698529385381665802085845730671199331139974260408393819169609656740990909143893730006241337465206275039878645925731948610515727016577028511748697677926904114732385263896099542290305706554553751261357279898366833249932124161502421067489299164498495291407741388240718010156548814871458189998830430747018681079265700567917644925901660328892277629755631432941281138036101128216570330753078679506937598240905372387544378494349074253999027850591689182424038789294247215526252766537892397255818539085294076211231334899864381200616223290299510103927887813951262670427166738600773695008832965171538858409124610921886060295486249082297022350851611602698899757394582809508283113894133738098429886402141112856523114952896036583980929209157838011896359557788362717344810332380343321981797419872022218414526993266112302738012368330219348227114179461258480154915307653657120050563561720009862626323983573547110119327201785155097067800996889390825176654269908004965775154039125950099705087012913076477787496460860310744110442009245137558743146380348203484317049324799461558995914267753302107368903410910226760919525961961664244104250544181516812844013391536696008210912666285669520166046869465528449332121987285526778796612420162395163155328532894548698129996592303651883824471864405115531149324258675993686491373919358231453871137666708592980648751634455197198705026772456531253717818077507683305417356989186749251414873267817696541200001340210840964999127164537497419438995360580107202526394211380677974354344927066252259856322005226262360907862302090115150436975810787873144805057203226288987490321135006172975751650408257182372921092616392821884352538661691409598264899526287007312235058878912157978997968903035431977744920386173291945394193471772905855404639017090083955773104540693507070635071655369039028557459210325488578858467884839574946750853170303651241884233334189403335896010842476230136025581471796878276745070692872661250699248832807454678045654364110916924019218244382963960341275566485330898387597292542276173310325385435689611401958649863257722180499698137811835259874411985910294175008313343791240636950790967978011526684525236591817822134098297717439757151951414186769502987119406403164692598805914747462190083873930657517845895107820940849791400389274528508040153777288077263181969237888910892601234728009124184399251909798177503169731770951707425318980884402351232318238739717162529919089624188809994103405276500416301891544948238937651636623108093115196775647997474884561290450304791609298751464547934814635692134502263712780601677456470625288267853729575899640604100838263409769623094823453985016671665822301576900132362178268346893271099527659152333081325611841615575975552211727423855111378294810375793381796469368578643148972977199450672381524978988602206628194225427965524913752961497848063650836418679102576606254971937825915273461018137578064864640503987156887410966941524957188316549495335129944193403695071430004504213854027641613298067899353112499978910820613787499282624275027364309304355788340267423198558554064423847797624279448139628162625748163217433516411734956417240296663998276230042886998060727106153780111107648843814623879111155338093868458728956784977532238018749593456155412611639644571162076639509873684869193037367727830379209294027484583221181349772482095469066845497371390649094269335213503896897027240917401414428622127027631429690697458196582907447963098299283233856373426724399350278498391629275292012290933861825483234431517300108204731724534155901284346161636993487547192536935234518198873193404892000799393288911648758397181408750627303192636760124056928990070362491018548741428387820852326899902194144439566397973304208212018722194302690464013480451544449907912975153944616747146165679212437040466712980654981299237205941652589626153774019021497221238084410141214173859786326672812778676594184483729816378862188860421286317500801841084383996892431711924520171278983147154791648570692091599415130604303943014580295221990850941082453445969044152296714773711178230516038740567179586056255277906564979650400751580948995625073395641058570933002265515344887680433133339751518615214199368488364414406324152284799198069436156043277704824171846899539749915169177324909196672927342885723763459116745470747457633120412348110887743212807752270769647377473298536645895754138866616542549742891604517714215811022955073043982828714736065936398157448075686401913376700778398997166249339304850166401183180881113420494180797259397853886464553542112030418745338237050283569191849463010610109739793967395882544036672562324891193051615627091095330219480811770851229276945546375769099189171177469416881669974820820753349739507908967598837279527991194040980931504838734018934776726696807145699681470769348361887143865768204523169923574681524878287984328626935480529955633570103413872649148888909766926377558238452960663714393820683267720298489777635149711452093591690060405958513369872401046099115567479410504869787456084101968190672147974484532937194001326228582582151678626556119552874299628452650050581261625321968165472279547172068978476795206215249925393097171275208940592381142119217565165273442932927389830248935560838286897292543993874666903876947784030954364976209368982865538139472930898393910800647839892676209108007706315455314195764527246583489012630115975925237060736313554640434660996315574050682430290922159567152826837630315998055854702731264820881448627711868796517090491216022124891421877153794176130730135868525664484864736219591217563511973005762793380761923805452577714879454768955912897800706652599881149519051785196802534592454027290174668307118054850408983552936895107361577560803869402082929854662132887915354907453598719966984139002388913711791291479788692999372482475830409780118470317419150564506238525017745848647582724110346120767522978061311572895936460154954663385234465020684455693321522058180300440179973370917445312593102232978464697695276024662155724170299058463238268816423413967898091401494223503467368342863446529170289962435825158260180435065459844723051383328311219375605228500674650353619270990482742667221799022665834755671896588382083944940700197672107451857845917129598598322854484605254833417768347568226889105232252028668808184875663257757206212339143736667472763539174345784379774586255087952815000930249428549885395446383078256246197743906769469548457225234068267252478305342647804955378426133021565392619756801528727901687616655630988957957301863386062351099649959393699765173612222578000057869648247867348931144627729198799545626490145082489062931843919161508352969352967495088494915631489638874174289783107574959287163968349571785717094843671866559765403074800368262632079256854938507083323212470300988206235094471788543384181849534250487940042471916682964816875286862216684284396578883104941323135823940600568496170792766816481221625914124024664113246719429740246089903309472481866985445821709539836996151363702223033072970668515234600065891021563103916502466438361878857933994785167046913242459889353518787721110646098751681345429958593309313019958520139336332219516853146801168791338596281273897372731054456301718913847875370457961082929794862105447304791255679824729382753720373928249559002360052081847110612614903490730749870683146497243764415158927634333457985131983907431431484481479034713300670542447190826815333531532244064856152886691301349804759201640209166815178966462359952045059401551299699648394951004124420669842041061006167329037677757864970403723321779319581120886787482387594418885463067132392656532102273043875634095224852585068799466903538698731625534442411489247417226599083292204596323809927827691729757706070681494229194694230425458831099845946364240598897297879570388947400959867456195732125063030685129803901226301034095953342018558574945611716871169451222522701571512262946697861219596094431828151121386706239466566866816220576075558657173313289436914038598144443519821575486234844337911456686245077794051577556229868233747217055747630214602547109384486270878029127068977863360415050311994563077706156065685672341324956549480925052445243956027797220733774497421961538389751791495608727558830219031580407495477354874907289254291643587803944688010335893611177748655827914095086216348587171857526424108881026754369130110976901435051908617539881763608694465939879254102459329112051413220312731439624077156934157085826710396294126963720889845325775579497347235639722660720457001801421593850312485998269966971910528726757219531724216987240146389944345788950004820075878056484448617983561192585332688786032595838239513580126597367908737387990375791284844413401855762295420328482873379212653664125723271258266688901613269156299923629397860891880269511946199378782711615838108367413912390551275536029683671982397425262904243229461807666980930227224190848618589804365639274690178710000719936915623175638933597940699034986756854878216293643698305539783713381417873416300159280257647770457530393189947441957095985309096556878558064664478845703652324630664996256835396995416865517945921776182897203564430487518576419691180827437658919031149663463140800757903742605736338162422136008970533811999649314434827530630654504000660738146902894213583102586851590059886976183081532836105672218451893227485073259955438958354183222738337774466853840072453341774003452867183494104516541810276733786757551059871446836813076652746874413447786149655537086376810007943517911070590097398307414501078465502845108606844031194750034231020435344569550809397909780906632447563413845364930350861011072306729767466832905833791862893191244358153164095529815035109539226740568219150007441733272357092008269212565687521085803890717706786743253841961711128921533553955581111022205977847755958531477142389467525629313064935211474807862048944102826793445185564071186214655363103359943679291216330280928824703371439515280023413983170688444974171967003773574896118576012729532801148480653222490516967201951960154882044220423740246117497487012620577324179484904841660022493461094032439642749052780139580088378501385521683583413912876101498195779529301565744516658303389725055950605547830848700379326318678070373454278894764990068885575345849451275380824431175206640655688469606051492069298391309220804858013337911544172338519093363491898672274534621598543284313989257946219999714598152025683925776636576030140294387189720038677509027949136450177325222932382047693465884168273012278528853449574710819957163777913219094928125944079826839038753682283413054687356266836614758148849673280934697300174049248121157171165982248894291530432036209392886957816952899518301211047561937899076431632367048144772427695806556311318831481325971398779661671984151936878849264975554851932063358604360599935194315525881176305335342680264610501335777869740566209270296749084190515470987817349948471412570132912005846449865707508783247803380550375309701607810311980467152692003414517008160624999888932430484428053008810646643134554126740152590349381693458031994070910708284878700118145564020842243838380745021537372099335289828683875149139109000906875111564673652786871248250914333303799260417203743515901079185495487256036212745980265042690022291209635070692816756385147885600346472826639263590652945885637445557607910872192291004376566424503939962225648753695664863348106877580171401133863056158688061715540852688597523329175555350446068292618478374249592650579148977859450620457476426352024922951943632121048638014622469373873250700805655142349575720915429181901403896545183016391057850681920083380073826799805050975332981933765549360132333412197147594562021664157822772795514451098881563054429629515629852526887094392699710321504551497132639109522679069890840237168946780276389366808997808868384045709217515701712354244053149098687098710444534088565183053889618685148631108292291998138021542215769362699027273570465105825697336250675660663169235003758049123098155206453337885542764824760586943233407619424896897712787395012467432619236884917469400139272879191298803861720998540893965155484684966298921603023302153521575669863074249577980310669529402296119450738338361042461766906309670582296477985387689394747190069300741009218935019512095093724286205461427156127511725530707487313272717643584735145327201788823398172995331666031245319554617253376955042246811716373246598027004530288836527665390554254754639094530708657189897532803331025173319691957299417647216005291028775195258072007119610934982640250684064488107052860865385108598964213964845229333875005320844838958965472238089802864843574309806855263995167320131077586772794408907510915240598737814641554899654321856222107428648541176301939858480445866369973272050071828527870751774065017501503945938584290457033746710673136514426431955386780617242451776863459501741737689453230543789850453821651416634870336425456453926631686785177487025394320472613040780839810834163057558193003483350573105264694495810872653993979292435751734871795419036563238692470655638369779029766603327155556032012874820703520890840611220531232739678901233940079040417767237092044212264306229599912791982188301579843571377550340560772542030295097029146278459688914822945112197420317438379773351764338676377893193985366583987593653660118918440709250015107140503962740655824267418480540073048851879864822164910707829032439935198908825407363059622138442396107440314954756159008523635965382979006608111144432344005763483723322743276351642241159231589295366511101767650187902096060253559042576388225133926187837703732351628909815421801084069895233324931503584854032556338614769480541479217435327315350841146219808534368618707856974877279185619535959708740548913902481328451435784739482428120904895897355808433177959756934880943193418921520283113993175419453243522842350167559818539710120679948558646170247211838383943064806517096224433790512871123405372218671714290841020674202960762287813495717787215677727877114701244548610029477371354074899222822554637536975580616643810872330448482606090273257977964770937533689738739385302047746921505304351520304995229442128438191790755929143106982165461712797641007398195667740107566922179329067403642121872187025262391360523437859727608193192088153215023407297815504528995228057474213710344598482875957268595298367996931100688657913558769772866975950958822996851681157961733248918500172882030596086127199164605933189708139930176255680929424182514301975167822378730665548802727797726369248951491211580066991504004565748970032251983134316750510876424484285090493672031954921868630594869695993313179083795736482501737466794964116998969155415186360165249706861100525280698597501354868099533853285968393739315364185530252430003726851335413343354749493226377916452955342436845142097263590049893542035532532948504544778202839157459791165950207191369178579311946748075938824081051271282304577195876742164810610014477662152215656278908110535204805282919228808165880971478719182220907208791315465133709263901838844548129819823774230278684250784420168328621977221491728303002382268276217123208334536872502041380438083415915005972170496179343949535343283043955255539494833815488462775048830854564888815840488385129239288330215437022283785173354824236609903843639442966889990414620655133555815376621562087254259323977262863168990491102744528081022159015736452495066167362186454658525676516874301792461432009064567220470295722168029881628827959547640537069297496281692994082542049467981434824929705390025358247736730133403513247064439087214218687512085694624318530873782501985201969572597289349719979712895431248433845605146550642395475256028911496987509665135627132400118127430555980539686061083838898129330165427575949420738402949963316847653031918561708265784808056076989636202103357185411799868706708988178349545326332083765083824238515362418836608240848598586765269321187064881475231350022369637885565618258659462771051954242825810817300435927392968362110257038145613284396558869516924883918153921991347146226897540838264158832149931896914939569464417624797475956454998946183546835837636870240768229057816202723189744378377827638480357545487457182679589136807797685735696880804907146307694527940482663080373514724928046668122640537955972850187024864414132306702922864608268285168861512552126934549658542371326264210621938304107510620866757322583629996586112971923321977444813985361430397704252813282122686265786747927130904006477829941742424372197902487637595337241157215513523014021615637957405551622281894895265057981175059583667273466760871585298938408594010075761720173215182812162397354038560871128558470693104550616499218357450301019395278123600939063759856188018068844141322526915543900869837788849025636203918512760153030716621898434018117012834008210529216317322216263249270655257127096587983084790443639754624769639607222563614738052037989300464917108568456540284942429058881985329921066367276449380637872095760076403724911216768948398552016220549386434722226620019307454490596870315012440199278939532055406606305139154071816347535213659504879972571222192631042956720651397683803390766521177263471939605866353735599589460610026041979716820414393881376356551036630684763298307715184439460046049292439993417782972340292600844616102488027997782218294102186929641739706337143659850218728735458291587190877190832352616255570500091852900053523952911779925419053093417882148796307951134481263445201863107237776100394704287282453269040755983454305881167893520240933652528218806850052160049632502611203092371740233150137806607880390253874940658195259767544160152621770235829598268564918336790232055469136194181120989131585770971954587025264650402860901676168252912565815698312429859221753561518681628804641070332584595402275304955677256661098844200246005679816557511313477614098923912031279154376897868462838605190260112056258040895113613922568081074348044740443844064088343919976810978335902186054069562174490539204439247506399816421659576554408598539362721756684178040600620365984086382502366122723298529722352648712545775583126556341370813153117983482853858433348553548509424527965921515520949563801123538478120313306278222131151408329075078433250907067705450830767124770416919277632218841982519656257689771802474380037675481485059049885836589189071161688923686414324670205322924497511560340299367152146374859542154530928317082792876697629016405446579058770497453776543550946210933605003056018165322108961130709370111130277578322141913181136058385164260202104582343569552554309605105856586315817708410463458968422863798879170460300472088608917498895601785111419076707739338178689651864058248793860640935862875969059038695605343523510377951092554631228202988304751130690898367886067590974933894187057549962571441622371710831010882329985077459861594288450424508221103788094078541025040170470720514299498498438483219404615539987198178408842338396782224649018390921193730706618822776121546435064622421914621369066285989238584568643087887977744895412077270193999661570467301267168873071441847203726536951710122040537549268785808109689240978313067770355660225617470949262404494776793424921082934443587963378702341761944248900599885033658069487539398997159602867512465129027445928090733256477678166643998628602209387035914441164175994932273135285113596970626350519246383005337059800422718949962218717999843469249156414431105573883197080646486906798757012425479865841039682893384920603557798549982793736769034420359243666277751308971991921841734894224847781613222718425529447034417420383404599026158064387721404561182553282647008509352969448483485722575790104486795412077885318394571266772386688761501190980345337790624916330489269955124557646321563261594227562878254277588172539392320281889884604351738810907137211606786130623232120507178788360377894823659971111119843362623274123938912794346287691029264244036175106946432146680218466616809913137603165312828818345798247277856228356244781950505412277404617810685753805086794090246418712318104159700252958763924181895200694799303237832063501803274175704889245103561265799890680162305939538569813491140929685200015068811568817949054512583860742694368464015622391152152290084456129267147717119282617696770262175032542448471709129381588852650504924448968935893045150640223889052968863545712952975259873942562130279355423406824528085860477684611127918933742112077425968335992968816927274371521941550107485823778641200830290060876974422447240595525543286606670957755138442783606778814266097394818218297680528108204901968105671115201747438484468246163143620726820653965884851576842054540260440691651788500390090724027808070266542039919023275455343968961420106606435626289188130676023432704584839893536836632229878425094983629436048158639703992022560817191478229514393618380813762071377503873664880285095282060535866970843725784127921325718075436798741096101530304650009496543938581502955255470308265405110588427560853039995147558784271439186173713816026667617622666638204099279696050391333869002711199011305042233957133615987285137095458789171582582225624935523411585112235696043204534926541781838732773251109153770935004865013232554276911814621797830103916526485638770609623602437153305917384049514178183953413058877904144058287482097764503026807901906380525043609034488127636769074999636780408580906119635387240066862116157701156485528878432989082703664347999117447411513749628978010140546259576891363930509693689507180286408397726770087379788304187483662554992801677182906233581771074782651106003692855192329308387085664301209025602352400966817852336897744442006133785576546166317701732270856283943436721882709086558841805442730397830837756906255212662167508373025967114798359568718887520037017165864984730489604865565241481545786230301089775195879817720389615776763793412701445149872022477994900121013880769389207176164694422502534653294023685449336828243665972250002160527667251863590677552048671673313083365562123551952402865063780604321510479341371027519582483073653554077049391433320707057777408258323244164196672075463499850619291374444240231898289107353822302256668822804430726484529768440142480007103405525057609944721078688027813618157378023198573903691722485373476178321231532261672031386329321617375063683800177329655057701583252233983115124146655455773586677155605315635858570637335800037734920106392848687191520337910156526959812674751842834081987436106467831880055350985327312784440054200472611147570505083100948941256764166827542847248335195497963610607417194624054068455944789540650293617348368661587846738090602749515027014206264146797098342557417992053841585071469432128573522929648252697715240727126078433254277921650439866284890779795391113934688540113485453747658969024420523150419387815858783451730264410806848949587115496319664510172631055084120905244437554331162563310648093087333784423808299447663198429758092979311505009384770810286878962505128286034190268194550006386425586602702436403459551073982420323849378387292543505130459736073774384229073957211239944140921155677498804848794985905002720260053447290178821733705399209540858408814727265583038852426223182760187697184618834543768463731604348237502189631227523791043754076566187027267635083048110286780235313596467958949428018185514286182710808540646778074116022960023565852365884221361589173322507600253181992109924736537364743163549403701119623728580233927375105695686134919438027511286748658906535221602987553323121643391131041154815363594423043302716551694950355682471909984009294974888892219838506810997351866180069366205633245106775877253117259397354993076921252249912090696849808354409162505495429077141179983868601961167254946753664855797563455534079032361148634114727734362307917141104342555373984425696112433865705734989995272276492904767280119659804426226173083363942353416528406059007727311088614138962185886796554728733146322654172781852604810443691748014006768744044301747829770520524345183669772053031038702318966629992094343783503945633508508452602829232503415156737934117928747878507255160208754263855654928024079374645752812561849211647745283570628481733553282780979629655534171453093048353512609039590183434220538014105527363501286208952597284493443481887610052861262689186890236606921573869190284430204382695226935562818148106720633888290977428541113903827769614804299720177410564348668197321494664461853266769754415204646568192921872842071045298938657928943591330305921932632968226976279644202211323271232353211090612796103658267450532041563099606601720069764233670755225378868985369723866676875349954161104187775174225065973093461878590814699049566541141101507905044836602923662131795323821189718827134369037517361367829885856220341308724940683147324182893804314397168945140993549555169917479884573448600152013575591390826391336386240781047323237371654989139602629994923456350416297077151451666752019781661045997143901627936466308005773554437519393384556329643283417876265962561679149955046945683597175636523222768771733869745025723476156189339004896349671201054214415090836510271289969524801949363376596468079059974410183306687327546756497971336040852324373115450540052807426931419631992262233443370613332692800820930134157381992167929166639614863443663202963310891223215376426482834117098293810380611421534343182140025924936288150133938783489676165606300571338595498821261058592068032733339968458162471869820246384666449165922265556224770586170538702567554934643704675549266020425220720638429673611784079661930405001851375671183873973162921694316083669822365942900313804895922042818767954765473748839020327544003655294699034972856969160237649894275188586650057403537973105561534901099535725408956093673518851416678523107170751510031562350737700016181409935100174468087219961911174935777613713633870755027499403007543617088524331918658302528609042246139031300140871333336507915524778870615203136241661880908747580291771778686128498019243210079154011027791072475198110991214590137666293063480738871936860854233110208358194250266598165917126293376573026752991233742170991314323954135739897981266363295883621653872548468574040409942715566079981471346828845023040141717153980426037811216461574546512457540515820314963768606064237917302375914964534475730225787881939705607152602155946636305469644862450242378907388968969616149563869256929049793400969775818613898984472811866731701577577379758151178539762426617183219691734604499866057739145432202879478233731125913347122975702473576849082454162991443261995188679954314485184903651364203847183077927817120086535857515600314322130415056298167493868662620953191506929604552302186155053410129316579384293160516257073565830877522152834913587164542136113476890451541156948288806661950270929994448751708207781001100337138713542104095796552302511085175546331433837024954123635747836711015379250790879121761359538749968475527861074770327276401984270977370838507049247922124725253301652115646284826707548066565478470924760239739137608572784992364403003693323163003664799743064009018954997683059839924232119401639643801590824921409033403721885219745752195322429543706831910774113402388532787807710219489446181248237016969259341490081863470389712547149664007532458348295571425064538543653281438791872027698836634687929482088714744139786358439478628358250063338593961517961498280511233980572836809645820996342707138596549121459344709162294532564596271855166768457473334276108965051261214214339075260970508009158799608357232575821666922514910777805014349896542884728943669934377879876171598773849600588018514848420550115633876961414210570462510304466473273458177473070685079303428173556460193500016496854942786089526692824298130697340548701095579361791336784204277629564836562546777532045266752363358220269135722468978777416860986229583025151028593136187402407962479820672600529178942605322048941099705896107205049267241487633868221266452543405514424315459510612245079341242369386494333455021393781756855222611896829382378353749198179247832837004848718604681581248947716523964242496548471210881680208260583654944454466595107116721853433292786629320846156306201178072622780462185122996727493190969663415894076745033063075963221336281371045260239036180778657069620154502022662360408969456318328488736366061920454801419377418043756997724288603399533910861755510490048333072169925171237836273194542794324298309932959374355729752934705035674783637908021044213971322617912188420094836260236950272798906829198847535819814206810602821534535249541153785746700862975038864455203912921858960458516312388177728513758131511997012100860492380775083767361470794997033891377297456014058536262321372664693872341409229472341119597893113823286722121186947944696824859767337598857329207897232989909160187197723428340878946022179219708363920437769430880700201343909430017206048956048646268359047817027788778584307636766247907936694621308824778568743164355448190165346595837842698558965687948546100052964848628389005181334304340212025829557021831388114942479180842621417477475355405183300944705700293586560898511520828503997319536877473309281453711092539406549963929062162124887692782616864687965921272860498543070022833433321873904967802978484736838373451746369406591441990603459232418131644522074091229629500370173426332126885094712074794361266440926589571208140610621613503838027662410432606751430784956916553495383924394858976431106295287700531796068624766223660076711842116246707769032554612092138016421929746601174909774229169150709282315200062938044070486765529900852093173244349225138846114756485246119415362534511397426309776493607518181748732483784298625046847853893620393914755168349663571273765676263112649034552909823802177068632122290296094655421862141497229899860502483613570607949410317189453257457112003931325369773023805689514818386278863497614355369936324719934740262515737795376133223365773555691119281042916584455384687625048915688772984912921707841600881526183754338053593559787779040986222858395338199902360166019955101110559983514302746352961786039295015163520265398316101413430067849019910106667304776745455110218813306894681994255017430682225469220395176545690826051169247214266587606150145301613855737668289301732904006778857041818533360215994874369602250520199526532056435310039149743950894660087827666550015562014527908875345510037942727433463644908713803089981383285228759137048023456360630776303719682825993213162579423586610541695712663315244625730237480379800869871358515808560525149803018183618210748745694167196127603234973858512338809700701840047925012300189946301654884450946038621296085452793652963027234598447697432996806602429086455706731105099546670380347872166250207326777375437315789789420437863089363114229402763828573890613749425011192229497526478127429382209703101187525509803653652902549139853912934152175248550342485030794980760149761525991304510352505457489842865316988056181142504834841176551916861861911700119927661403188699322321282913203224281238442845162576457009148870697071871007255904090333414668721043450799311359884946312335083013188988831793405739590087395659666731061067058057097927755113972415999387091935148262052211359432050890945849849164592825574556687303118971780655347673601687304882384169444803471207595246571988856471024438833054213367405687154514730379632225086640875335074318643396347593219103944907991954407884456526013130298294548563238714911169449790687516344582822851201039237558941587264391304772908771444611462584361043948035098546665184917914274287757977688747262336780055164298131482757114169470915063804506470282912478266818843516557706677791844259631489306364815177332943897509753711239638854228100932559584191768882637606539325946576996699053746900627454093401552738606113486890706233010667795246606460733700861537809328734813412056246621592452221317972744667398876144694611316984652706196998554142532944166704550065243818073153888515336564203758009326326912572573208094697820079424592071021484124087488130151514635661615920589187340071431745323836180630471453348732514265592923006258899285881584940167211867791430435041670645523147851622639280675722573909263058446875723858197455802167386393641216521976961049630544684622279835112669023019045436872849884965286121163737910159250580395595210561166440773262700776395110784067557124696220037034399644389285655053650167803179766649070415485090222204048530628751225913052954551428154075602781600348003876933178107684235047604092772864171169792849669461471514901762549892413930582287122421697747225393180174674951965862445486287035674072652860616470409262064626944737479555901511622995062629994221436505581201666923705378247568044784878474972465313906457654694679516303199873779181546239053023989990005226739005701995507154740130942609329316997384018233470942725064442047101937950446003985364361170515788360303024090043220766715862850998919515511269221807089977497863869290132190982751277028825511075270309388463791992287132446864384300842525333930682808465663538735779404547392612775424612309777941186975777884435583913042959767766678224737352205134809868319281308576723915237970064903613479067562756561614887726022622492069288968322722932481966744223210742222245688355024583322404663326207947828005416551001477562698828140248094711960635650898783438580853240800383674638295696539048357191598989963346279965673313240372278257950824670782259275376284844941443098254014464923355270781847535783430655243350191406338515935005545089700207281425871283573063108615710153393352465212856851605047740720093560405370582398789914927278529408280042360814569771565272018762803990007357222724878402652790674601763102734351200789848577969414861619946960156660903979274732920053050765573696243162167380061808165034151477828423847238378772275615678310291480824066979805964501765649758850962574155409982763868632250837147555885608095475079714645800005147948975068211505052130180966321530420982910212055084812806708907410215012076965458094696110436955866117586873738992064375617336081436772052984552439585577532370718168951007571675424150223379133077813382918475012727327036301122138255521655490765819530846159813179083573539145425730314492573015401064996822594052316844392300045794917488167431962935260463911839311023044316548552004274741312812710606403448709400062067765109515033859208068526902435788605099182436052115880864446767729889772293016364576617691754406360395284437374072957671777185927659373417917856304969296008183083606907304434490411904347900093796276778777325549058518046183687323682963952542782640185534764864550104377628587922383592157240784652052841909889910637095498662638868804066909218910422272783361059684717291374470635834092007845593068433442992773384236306279105874780430211194583516720491951691337107055178571510343335740462178623419974473692997381037945338625004088875473329676767836846526761750613585432563809289236587236687925836204660325362327144831821524049656897756839935740722721149878917999725333703625999386835530664159457551850527604581961438223661796885062560293872932526964388785061295910887693880692290024038134214615024930147292800025605094733622712399409647532428944645935429388539669639026069246514044858049854956814467604263453209482598537391152234222545026731211517241461155466728654785465208415499177594444925546170269572378652291169705395834944534324276996425773684021174002830619337215147766673547613289284927404204499195811351109108397810714935965234804667039201526515501744351002109447580790631171160338969636602541291992950942738138268598644096478918127835351507631245404836777758648319033415089279877920811789072173913301087933557956597048228429760315437354692960583966432667249675909441798957294426414923497704302105586980273040585636203142834832509352386857567601860812328867771827647996791612490691042807964365416705843976887079552925060234639037236755232499234614051322929610399996350160732245219180748766149243502222279003007596032425293186294227380832054998381902854829825980710922447795196075494165183499698238822409563740133338859255276146974516691506496559030481482744297015161240601512441712591190104837892709305595633150660734914171886897158048878374015080572798585590976369341319835047102045902105625909812106669159867759850094999700521890999633008689760556344388390418735707936607255689694219927573755355629024009405502182912032449173789364428523973902202577023423881416912063344481978098401468431002468034940351824085591804901266091191578164783899337801321965411284186990104131948705942103973593058268792744947166410593513172775746808477675771026088315115160760457939984464115781190856861984464998561376025339313419960583247773897826794801919898486594336117221046764806231977463112212964774017763480571874012827996959814239780902513849802189357962628389969766420250698143306802120904930137428116013238492585142046293305926527158757427314125843063245457233157737857840552935641190891123157357311401564311415835278160131895048510014437764390548054487473803870085662247659118869754955794764370751987573945907343579686461516465797761162220989324072476831261374693319318047078547857219494882568129052713908010451344714124294165369342418452872587993739426737734700612888379601360804250399637604044608270340351961431116525272372229182173479221022309176082611143449650754376679434574928947254785514155550567041961742277902042064094942515954704460439846110603902303909515877455227936169556513769807578192480982403228748945344980959471773097653004958756607275140140083514083121882130999437295044803314714821018077858336851633923842885016151205130656605121142449233969414128917838289291301356521989714561840972645418474842739782794877517070663205912173601656790907044376061776443085832010133421706288529110923457219278624296913473107974189155750352066974102145576885088915715655262053772711260054483268323195248925366650160624303331641850822951845664790670320916760438426813751999216936317406565217834448518888064895630874599841733551401541086331568978457157867635358663611877891114143229605667672393826878905317895180250691325162197917237170490657299757531023988518436429860087968193787812568556046091878114360618508243729885684174617337972119728451183011098146397912118353514196767386752638415080823687919530683196418513949034836887869715562146565065741198911042024181465525102559450038876926284265178127195676132700154051678563926003407645640063849718171132371812727161677021906835825805007437264289263052683676279896088633251675876089513047581211538593825565428071567756598788545976360324383916861913395598916862799109699400613568007234082964900134878636656416311797971472659847306470505939750809455709142872203193094112180463960984069858429735335077869082738173255558445688972342740971013019884671732177360253798943346889025661329757336307754912997452881000211603794567893066650271432482884562398060805865985707425647502543333815921428560933676843064007975838704945873809521186589911993263879187382541541334995730340598960472283772804227568985518850812302507516762970911159373441840334786103079560242972170082694506140180588034265662973453054004608414517199918645099796458852211404458887673075050522804469969008662803462552306558010263024500703857895775632245463742993894585245526149590456835589910138052889833999236310058166237647592313086124384616199372643442693224928255309845135967328992122495495292125289413138103030902159915454809461524733835407095983903026316376527054303948318578930278148701178275419567845877953470881769780188555316038568005717500917182980629853462749199511237476576267145090775713704244068888990270519863486998113127095007158450821702692691407539177857441857228997550061933398960121087352313119337937175454717916478375578998387996509181102505342890262863463369583713929175209037171663559579101600044859721033973712089794742290410432415909801408764880020790241037262569548382521964800344020196578053838411143270702221236396145661109788249624763873204736404113831875258704158053857380059070140276987207484916398378375193609332806000662388122748759925508375769584906251734825747107469865273349626491779599038929396595407944858998330974993958748525693603180230016584462523810441886025275920729179859598456819958611708956557586608465911020906821121441844851422614971242960672603914903879485436843423180149631130444547361255530080218442818600306609850058572901067893918893527545160809217517077037553207247095806811113418494023907344029459404986850103489447329776298023682604311905471522184854800733236189589074176434981881010667052943909913097237127273725623338995156463925870271195567828303038392968883693145357784368046610333817428036128017134913775183022484986974140603290386655484694014927117200863114444634573776127328623245846765193228016929702317633835333357077378528995323241363271987690284212353018365711305978122749972841452155650207753125578109817428793443681469695015004090646488237190567082637584510670719512184905025559315692887381670419089947310892370276231812477301735909790433454546545728823383818783010090600559027627502799320635507374034547186356381594951323115282323410478009424522037751663952668271613906831329491706119711823076532312744120212074033462043557966734756488143601866807595469048846400910531514658273726717702987023092768896313523664412462856582399435314049297396437503836679338945848085975674598432998580144820616568541827192336783227344391079260062924808181078448399506535335072951252215262707251674862527413824865492841970355513338118962191259849995805222071450303526471154967284812239982688886809163026061941105560806943809074410573821145698583919888761874618774482615042641534711079801453330589249129176590972678085234497785367982263935859431234666330092806596593930713092767491105894613976238777378545112139108535303836962617696464272333713627289572884735100065192674167803128821648344277616471869217728012273542536711608793331536055687468402157284016131043137018144764036566534722964999106569068339889228412434952440419307160980818308899266963335411652907395769800088683369927800538996657588335524307694338225964602789700875277918951463402231951137260147726517899793487087454420821566731703358642531071214820642680999803939623970099017540483755624515669097851178911927915607150293530045283858079544295070413286597340992541342518806383561166162891778353438126917855300235652114830909935217239382929453422598541323569448007173871773966466338237272805883576499897467400494833950352247331225865148173027876045069678837934799819774448440190580407599165271307330446031469077465604395492811894130064923817612402858068565324020424396311934759889459247856412419388411507670947397917388764585370751571606208432249660582719508364200611288332030656717546921135366756764023724613336236482031690752055345810410428628649525054854735146072609440605403297262724630025590063951468255647580403139246798480931745902490384660934898655695192266113443138485035313499657939740706041960248408255726142819816210514711527104468195568374420703057363959723339276753555418598515895552329683412744046140502724770910966202564847758603878835892507638252630538154516658477075207866740613172060387698936318248617681057613316553734885237055226700411921902113603513564060380636045732676758005834489811967026926246354385541013472624826737330149666187660873269209420338172679242839207028016012112900877643146973910293995686302295946233105230914754076709222889444345143533089775781474986620400423058484427297057474767807983445356261953801257822202377900479622680664906597662037484021430520528830808500147132487020610658832250331076175473881975633041573112341472854113325262172568698100836988715139082001688777965473324891156629887336816725977838394151527400652061571049547008560413997481168453208337132749472924341253875762579960006856837714016059305870094471349718644522712052021375369269695205411573429820675462627294199240590300239951943724687076899084439617251549496707201527972426191726456270628847138935219961145096583354263543363189043133080359163917320863763833013417309300415410002667895607667998454967874281469594258995889458433764417184576416377256055051886830609009712436747593586721943030327888330597200373534702948687738711331405808158200148981621082364654495118360290762365308893734222371393983518778406468055949300334399732969792890551094724677967035020844407635024892179929735053505091831147598471586143023804243417562276335166832246305510331629603421213142527430195447343091980327283305300072855159869464314382231751590305058943213897766059264357428864083515005449747850427610348146328729058910563261156422296075075261582294740026492125225832670613231446504845767818397366476614694944489760616748826407913799946682889515232649711363961694232609998660667483554180604378233523591571986896020480495069391500687675239300135162161437919508637336579600926822353086348250395659867921601968648215952068631804775877442214326691589827995439358031115185325301066971507598734397403448429274211573902612085725779328355078158755591484105928137594901683706742237936536339085353528711788329483017067550299531250134828570153758652620587403476550520534548991373974275648841292762479593595312707968400783466245904513155906693268102482963364964076537764661286584871399915549117614458156953279033763547032617119621620383360750882602144124812338562983292134842361116842820367109928689860341136388362696280374546935394324304395310008592238961232223519671732628664389912419067244217614957565694402042189562028330751280629628899363842729276999833993182780195702643498574762820212733100105858775822112168526954871430968478531470366694004052169087693170324002432220011749548739851788804334034309118925200301282619697955617625189422607813497693818762536600544260183640784721025816904472788923004450941395123006420430702413006613679980788473960927729778733753752557565622775404273636057885271406029188326505300610581431988244144512002659986956869601360768617150207052782603808466290418088531416648728569306917625555319003664525833531728832560153012454511420962431211631839851663567432281881846643762998322561543954927903237763912832902797998199293579997906351019958906189569292856125583896243327329191435974419538412401882591013539461720483640274182313340267046815754631839454812846316277440171823465374728686150994882475999390604251736381631095769213147677941133302151837453467613199315711813132059244442063354378511563693067103207385152508642816467689964866210073694534682809813641285762997775606704190260824363288959234676180427216323016827524971636194517702813317907365469154802567490529826144374440403675399541493222681342528974502827453263598716063271095450005316471007255158151909834323831357242821592816468034867692066332359495821676222611134862643835481586541847738178284794005257574575354223070492183465891508029547713852602426139139797442443367238777082776729605593427419039897715615403334238095102657032440319821577566714527911303501602405980514119510128043282264776296811641690797685237970962612898472760303621636967915718793744453503328574430663192015058117159726803056844252791717404274818601794178887306456010044827121378152860222863345723428612764856257071273534291626192273430800628843984171367329150584240876784731559820831286398005876886348890890562549322952046323449383618950273101332179483001938658551228852956541066760852860901109301471260708040206803334331662239229298460204393642545727434389032022454023229065291496061302510157559195188339819308801681638494565905504921212774326873243184412864339007496894087685082359363652725833048034127639922611891989038347319200476172521978237712351601163227631909736863492993279813886501827652999089487704259903283621423787088479169259431219205833477395318153875594096336114408915007695125829882905037276188172396039005878721141706726482120617352104476032914878476346865304653815294453031892548619727641731822687164446562381615524999596968361728310024188938016700036476158369345795006750707205080722323663121049609191872136027901052261091426597411769563206223274172783723426834026834377536635865086855170212919492593320438466567257598784200537240660891545227664236732871391946481814847777444236595844001473376992355477085336321859448131402093288630082589726350236344002521336781416255088007943781867826536017810849502862098963850855844944367320003550459337172012156352554174834579894392106423916060863561921544242409544695662884419210110923774047323131479552379484811195577309336176331230921803196152703779400437052765846884559001397142568056884026534866550789972727462279394510132327711085904472895529623217239990546462501191748063831717817981301008678408633361839526553306838747843988352813211514512420255964203879936776805258377655228952998597414601098598672980540787890556917879225093760828837271080642070061872980504709990927609384915117410159076932952586471902950637961912560510998019984421984941165321420290396115123216480847843466167427558784248050154430960752405907453301103944341720148069660359268962231788999592124537963063401003283613660112842463409680442854929572143762506055396487747506717104286307067627503227223097682363357560637939148325845122689181130620923880875439058627704006331059207956371395120927349254898578503626833101417545858548461152256305222439321419449265305146416666119787518702431200470581285580547452868075298505683178647842899383278149286142579231317221623999615480230629291858096894557644921812545378147400247736247672269266549715414625871330425214353616933132771161836867982759933798737452131900414594227307269900628388920254958684070591099617241268881695259913651164653977877375914098968701307752873100711983325491955591324327540637425590106554577823944013760759809127765211488516228982824770706325883623751193993791191806638625212988043950276950610137252287917024612731546940852629672033137437431432151242497078430741158148320817439215586223842375896897276715226761632511909266628022996001963227556836418131345570174524253160481367946264685567625904194522263083639913931643611463406138108839574537953050696238219749646587585069876440405443481096740897286623201610521336067429423350442450263688106669698460894945402365661397487641322879874411608778586350659337364632279724269444059531377157455239253502798014400150734091471492735407437487360258920014358792420474063013043457195030713481168769806566555573073287970378137804853146190627933644402224684873897446295413670367109648547417550168257641861373913545933020762374355838961327192461789015203448573215643019865745649437247588325934551405084765929866600063326381716345545053646690194624494575482595844618001856289620176333269788293109388615765639654308464979153080390631174840315145055498189988234760511548135106312619609984011886539974262500273066101339129229764091617596945841619719777932195465885120440747437776095402091957693665075200114662268608558909657721291005374230178630515728139937845301030295227727624532331409564641207934969530935691327026960649273178534124538144834757436705352864615221038631569833330346306517890812953429478529600805308184351631295868452907366692229704247832245677589396258367665632025089692833597364539783122163596944948567779111746437837711143700325292031914633565348357858288096148487958548043718362648881110743308707389592661453926654399474555122785994366224972027853295827867351574422620123066710481407324683209213394843073766635225760974909170044751646475363868240352546097159577537411314852389886176532000851477336798493298120752952815261724022095543090158389329436100386141167930232223426290094200494591765154465171104617979082226987275225404845871506166727794897138183291089896917272136021713425632562915448807526477378256761511214204301658550537130734053778865263561178747112127568117559515483469257108699547730000600147129377838408602459479030611323927546283026246620720154366670204602369353121565207936374551637839023530577290094901708651844552443064547938183523354045467298087572650468400922649487866761521890561451000779553688939547745382521102689433945849917999802585175421553128275016334221947243618638449331785326476284382252686649336712358524345625062246363676864686456237736326467903539340031668082963455072695491381148180111177819583036618804518936990643031522614255594173853976944195303048596153223915908608768096566837927986234854029579698408097707246265925966014637838216799241155660871458519650921718211082592425877869966834592147924075159678696140156233641358462401740682207297699669261256753157865941931348673063509965451067234338099548231292146620073905692975280370815529273502533875779511978373975042384886524538007775329599160097827616763085271703102259881537646769717508194319947169127702743067741888236401375637609521237728118118716729497918687030557009033315101105675091543968859830011819188662749302417046082034215642481886823081161614629764311543861385876348930154997879690025046726613821283118474595697954187188838200362892790957562971211780185495380353028813929267923136461179616634072844651375104277065677031535873201968410552945384703761179860041618529070701270281355355853214610271494167346922245968833208813311805506398536609566219163259283244961823793288266164077625967613710837835005699834488853193974698807704850738448466536281843083970011888756171779416153276038569351286587759148572102660995240076863300354942491988411652919922550444469810089746203493369431182063834919275469230797521567640530872555361421517478912417192775000972890604760045474386412652223788625057002733233743696598099465710826587684264913944338420411378376465333540204971133261430293600496245671411909731384197672971108601646382540649317693561529591541983826752404796527436692969500746523451322309987679574065969201943903781289735777426691939439223635876965996333141199473581639921689282685406451298666064445469528350061052017243732564966332117553931080181549648828196558459397377368783083493551235791350884113818058053480387515934245547356571859997849509726599463977440376240022410711099809303024153132753130813042312129234190553188986720161835801668487424978522066923677911605116255221704471846828592497020313602027645243850105169721278863839570344680009638044380122405930846153544034521781834013191551643095722411288883592865202476058012632327241870870315058678040094162696113605846038318518644702465337167407288093862183070080653553175881723375269237518276734195726321660657998745614347915689763203251284736149744145285499307492590696221040817380767677065282135082602072748798004909419505540199858497917712344128578998539206542501000133212312147830732622726043979293495072817305521578853478934794091364848447743023085820525642616911218456102837257253011388363620405900796787976686127914872805182267213973719581955314735276998818101288048339323560236294687337404085766288897554721240622029681096240983241720974799185957438269830195530900895346218774656622752619928154478277127596719858367226732090997473287445655507186820585816444707388935161760677377593460256994954802075283179023789011661541580648090564760625116706076678469272384924858735011704435057190076711113853195034256587591294889846393260796615694894173004425496932454729449344773619769125691431977439713193222238623596769795406374463873455200092869427381751109117216746641744574610272013082310676404342939078664630678527059625388954623201342679810424847952632669694572087817095115352697201246591661730266835407015394458567324438788326145228707975358055607490230164355086521872114305957788748645909605604473510537459105253561574115446468911852770176069756451386051768166055309540001960820260379473897367691504521105527639034706004265986660160429230775398033994512217859549566831792435221147907266151529531391620664247350243468851191023346137184123434431555718968817042409837923664970104083966269688146920878222324244021825662971110110322624185966019557684449483937273574057918410327269059263254609943936471548327396798611498918141928067938435650075439365796316823452110663612050450218657570586220087811364359780855458224893961976489895055963725669765444896865851412066290148217030929269246674945520040580931343871998047185240749986712388376293290592615035065893623610102680292832686202917086215915410512921290151425563999301130643607625719036653940374065178655627476824537657663718760674316306124886742578194102203694689010043573051725318611402939580520569703059287642880768777642234795727276624710938384471436988578670879267593778353309220027087856428655184803642231528532807279907380769344364359288916620673138630527978336496511893114077332620700890057419625201849737996035322785331193446063235170566802785651436238763622993702070149001703027539022897662548583165042264230077787321383167661516227306442002395382206135976819212792359381398248425441074094487416540018981904016857123140450001275500076487521640758848284790296218834262513860215615325788922576637240881973925199918315591985828878376315558137373028540551874497331908962851923673164824855004684508479066041395005881577934983294657539716679243977642097919651970217873107528755970916628269960755660531521794311992699471299893060104066869965471127117136812108695659457036930072931838800428819715609154763515600822340326726926672152375513566573564817411693250716075484425628923547770705213444787831558092373912226752813852568423931279375608787783061077335179106495084375794122054075486336820100863030946694425374699228019587232781524491798989233795949870900315130922518057234376940460962303279021514667519296650581041150374829757789414321336172054227104034535655484694757465984989250551975480242579334561910154005823022299818250812303023391554187564479802415187676600731365105689775176248788534340726460461040526538361988933270545769038000160625178137913235735994203416377319615925276715377460139030780183641404629787228630595587091078823870395416066674774439322918391123287675965003890420190299657553994799058987424107706902158402380976896050795006746753780001409030597970549846419679261516046312322308940932237006230769599534799906767890056283110488933807796266323554100091595126714237255600713487450531398041407584762029459822063806398400987576484312009098410530636967697157880919741998796180959537506953218785469703927976418168150869154737556234729996130975480669558465391665593531787185779913162707165546840624857510288289043345804776665260581159020015025258545091901835175093046012836161177143751464043345484704607106868456862364947366832958365188895774653480543635584361269574046321014233399876028007593890813131834986063599424070927552141479456565269451693060751369690728379435031827230964460003711196588293027915636770243585562936790772879342436432135284931621732488466724016570026103493185776545029348798510996566017371784218901643329270917031412823694305296625610789685173864905335015246632383377587282574702405334844717733587337742542609262692804649067712721853675663863323570598063330333856568550527088565513814962671087386088035722474045281815311786603902157079559338332993742206340473696776444311790235877122173562368231247239506748478148025755161474070341472080404932015574782326022924364254246572076584160251739885658545275230697213053048516462140190752555512647232552904986850811561871466840190690989640121644169502779636900807612301627923442976629556901983435596198733502923342886390698212435436945385427411354559357590637767937644635167482144586655766554480794548956816906636728063249730514823251861497341680404495025171435032603988525712998822378694629145459042078884179440075170982165648563516358980247052766802117244767670168434310824230602562892932369949285979275957203536455176688265705435298495333226638592011961497401184079480445524784075147233282719145401802602402656495459860286307769495941806036015258408905600321962866300389154677319091758770136066085830324177662222908512807324282706466970389649499849972397205505370532265319231954206870820292435299647639407451910427323086814502234568487219942047972212039132243371893149074546751894931168623951020517141878747621125667737901973640895282801401587865276603507862310894977815600402592962249384692023678146294184592223909832398692020006832489297656747961047573042002773730517500663444220676914022024452465552202155330047504080174484304523441131284595862887690408872114133688719761323796561966550641796158361963934713239788475363909551003785954922639325687490893405584765776603772492299286895008783406395208360565000803547936565291703473866706523982565110892207352953398419472694203247854397582798599020193217899927692411413550272637753161896210849013401401573496121855421727378224752769075952072127905160740051519821788942408482551393482787671295817222443252393036171313031852055922948759564844507193910295150947040098397160704847734718302956526519242772001645112863979690744804197621409762853927051020309762301114558794525444247658572437002037730883486385645818227524541766260803608446660698447432707344871198990553282224969935637062337293551422223020761218454852880948610771780327889548224970833058092822207961576573304551130370672384491038930922152751223940663495100167874100239386858001416224963506126921333578036012841936147308686518543906349651457791390060814434186970095388534867820728384346628649017058693254616637142686535024777210152017970280875580384340244552126346355607532392995647985141955236403922702133629368901567744000887255516897552424560217527972827500108138148530016641071961649362154595228527501178100354184000045060135926492695171188142494005902725550851743569758612185934253188882388432172789867310272861208016920070516938992618502036486940492754210743884852517929362728469140288673401385063518463570667765277697329991055592864340015731905189255160294583729644143020428890570471991424869342160405908262628282824650831007319761355736476044014779133046670252376808371025158615206088625861472440969493396044562728731465196694039772513660825683207181885760064215556452500880399484684484359438009848471162312070003630890157654350107178839106555249420793031521952263728900722249183971896023415383808223294271356437164569755857428674197619529313970538516758442814140062394658029615092776846993032756490410936303181107908612797687397804544917771531289002227299959398322708946602426474885701713966323653345465486735244535127869643268184842031673414674942756964332913299989189077732012602957494057400523176655400700045832021202274490502722643252103190637865202350438435312529383370019026853701279697787574706978087574425488265998843517994331455754237238608915766799995381637119209439894768228975271670988557854854032095349699584864609246437746503489510173432756826448364021469883758355472437740401304723499045368694553157589578851040321350970310754934078768509421287385082287555429308636277858696287693371198012175946846966850557403007283561401389745668185294648099149245931563817251924791883797381091496353806125327560551527948482796311443702989119671652760944598120292483422584777307651616969949588578532951893357036063925252549713104982195264135073589539970792888166687308126454745884284460875356330521122963936913580193429865387760484810565323423789771255270567788147253021652591796795812204984436892258326338477136575146094932583084905110391647062692580015502844751094649506788421136528030078800199980027177211722676198771395114638408593486154650330881634268976507798015103157860701751910213471211003668116958028806871757505015862358746753337852458946760736484131055931486326130459004287901953546735491319163181115987744115166047805756846536855374280239951004897424341630570630487408521652481945049858891797961957466013926469976684904267257504935361297023442159655917005384137860910759554549854749694845397810896192431625826573005482233237174836211551610558959435753150434990049398066828071759455297502396430476930736475328746846278678025621814155812832476900029919553199178598830172315462471996009918603352418165813394292840301354737482670841000651254206064146978725536872512684304516847530444111766611585531816632201607184694971445056693219831239527432630577534253954382690425008538010685047049048252633779387439186213920430318107397789748237807342873609751308849370955270284507197491150295724388980407057472619337798004750549251103513958714624234199769631450587581885757072248093255260908322975163167069297835861174907455305317392727088676487477698814954045382000730478486498133929550866314633473178108065396157688011391876352439122697600453157659689369347905883874026155709390399360316396922271030402203247727998022057495940166534354185708687673123322889368362261637735377706487589606375063048166552627483532019227846106121658170192506267380903755463824810027538848469079606116482255615168305427616481658934843150184093940102093082332763442869791170211839736369038590604326646815108765700485235583304725068285177888207444447201522392921648075787399839622162531401728259995721699653832264009225557213019680600306293281241722661048127957977478895594134971279679123250023296651424160197738203555325417463425112530003933192136221657673055482851128018700920413896112034639426619650196280862147329036280796817938905598112229855639840568075391168851530935141032096742099415966511292947461758804323663236927427116378617970257014847420534274700965712042204174280539942655820040054641442164956454245632869976246263138251057844292541913070346500050678838051294203030017048003219099289007071046466464682295570589554714356732460244622766309462003003681115841801933438719484719262524523005483896344132640259377427280078588754426389250396722676027920112810737842804068094923506808351529318858092958752267798022959846514570633364122322318860126384997030097826833823682609294962475664008943176749842221202841729639397919276802080524020480923176663179185485133970535228279712062664199044956577788869878324509879504595017203900805241008189610820606196812271434091771912224115729545688314874227996835146880612131843121512824400041767650102165533532879226564306672593100358946104687449000962731864338765355382944000141977896529302374900778370685924610275899525636955749160549514257175973708995433903010129217938744295843514503855781562299169922193048547738807620513083577233901657619490951344088691252448171077672724514625433531299340514101436836005450490214194738092677881157775252107272124092214427664249744173949867702090328306408562650977044289195853022134402041577814371292750755950876709557503009008096666972236622904679481128338455683590512742692006470710138964577630907549695088771892833510635393341212236408901505291974481662330288661894839576407496951939551402476693778612026939256175658725053091693053674097549751519997059905481496326930705008114817809926661849293087531633158389062612972359393989180271809253173797420339640483894409295180174805942522775067335653755902068526005295850076158149686902634741178470844689679263968128303757057388538617047608547733903493348472366974414094880849138177278710831133027585977674335778055776372806317190764774686642034684363275110411144128059422319962575135510066080928347616185077678705306228202684355494006041448234154459126580882661188064141039154686128936524561215713123011801423594115827559547976806025492313167180104934302624771407053693253376254318210174164518628837759069871648546521661712356979085043212058459823389900821936142899607607826432053378825730762726634809100662551779947568948581832009678053444842999254220891020932216457976896297855592105458758626366017859379670155736722219703562732549073441917195310675100814581033835656211244284041243219485673768488382937642410020114535624090728811268871594654516609044487779660219258842306895890454768919951726579049300730585188687550707882893372192050783471336632117831119972637395531970330947482657234551170313821769029824587502904385478304879511737389678943762663032455852403979045365168172212386840330858328861123377287806079133960151098761100746330412853463058628231527452825050622470493009721530585300922121699919234208759661639243539397237065279268709760915586375636042286034590934695475660834204401923675264436508864424037647562683993702892678106394459009261084002408289177578442769117447966329820872267977916125868277224758655622161978838699772913052385365003448404790381509025838682546685646759235298732922989739264888762040791746476446843718344049552502613893885846243712246354451772210319669141304937802749850360492156926973841548506231384501692522290074838088624340401463908131189389939070089338440705486648965151541332096150093816673191940246545937130596242647884324089647168691227252676879723536700145010488175586291722242362966804057988938236095341514273478631817440010412939523800102501717617736805434756626417010197091499407925985186475302110204503931323983525956775400557026512840264215975841723900816919844942096476943708701799483464257306279558674632216770711607313000486197265461650690067883686517116510471045119558912445162620173211294849838976227545606255379931526338837158789770933388460043586580425696047776400528845347148046989289576695254400963737275544493760531071115317540161944941052606559940793229704196525619119287757068840199011308206620034327711975317471137947412414358439459682700200958138355123045323083694149533628909203128387447295432048021855813672597740297598691882014144445535767807346192038760531974378242331014822937214415956322947639388855010851048385956583010214141758729375265344192962744386219863754873844188680672778383263813999382971361880365755289288703403192024464939230663930642880103022674150166959376052275536992072359991953444154293275961418532434425993653285460700079476013925408876197111161012507614504518012684997210056608159337169432367661980541753290705113709309264560301825696172911676837418381331574958708212542836332207247038890787203902386655890370714539296740216479990839854945602258594875742701582814983597159026721705335197455610257313418105722887958490796197487535402250489413083097204106131144933956585775922789369030256705547713554729598719911285363419371562282062986546884263259332709502501507880244915944929282170587446325859895246963151665081194402476728954675738080461986994955119407234748641824657552204774263705034093505163730400001709213653705902820231669653401434607743918460743393525701797055932579568144685681043175935553562236378170805114891831664669698658685532140816855466659073614942367318686444482993424259845463922293417302780451547767311392021653589862387205061374297849321000097082025580485599089727555371907299723513289709747088641793370683188723426042601244697673087042779042692697729198157772580751354798474092285874397288870411099226877606646590850812628758049983633255056517245504815098420339459405738471777689100866945760008268744356279301802748293273622729192426658720778382286892992206288683054800835504483561709701200179135633045448922732543548301167414883823849374707616456183183897280627231839727779413830928483901678252055729238050258159084013418603221428450104485711299502063343152295992750650616094422766536624905816211256684888474344223501570529972595228922576243219475874708857517062205183547292883724809084027683252163369788922152244685508939759434340612421433612653308800901258699617360600350347653748541037701738926580205284256609212758835519349056191882225720130624479441356362100746312540878653776698629720852755328198640927228753141999130227703923648969579017990410598234977506369918124677375226592364635028317497938260601302186873642536795106020737396337495643735199480191000003755748802759541042700600382423728741731807009490340529501533104621855909336051821682399581023207286086331201191255056472505396947126859140846772556110731581621164817462527335267377940855252479270854932827544529344384194641926486105632637004758308912346723943155857714554323462124575084882233856593991140964568984183566240844474713997271621345852822783411184612251867798903274180100485353055823546751484344597669389385733228285711166476344241823106599989225124402263490530076134611859913643059499036970274617893192634479439263580472331961603571094910896629741819274892447248066914266244422748134015847762930531912225595737735547229842548435067207384811544849467737856799709473411500038736134864694277254497906980307081289588946259338588959995392594578703495231634257697343446903991541186456264002223700450263854992428420018511854648439460376056817850620877071636610193236875513588139558787175207070738037660567347103253809330700327673146576202496428821573632768083647999394671017425973591446758451195852763420701264766242142432609710608634319622683605427602383402847939350338564783648002728407280819822771739247742272759911334123978499530626795627397050384431206213258159817501808523822535597835449089869697408628158925909845368756278783183518024920311716781564186632174254100887626599426728288847469587226230560409392172532704062092334448167540416744650899628940719911743778928844128013497618567999688872928811795875937723281474591907509278310547837307337475137596462963256512012033543018256867192088550172400093021710738955809605846636505940554243620975326385155673972331105448321628426604937856510837164516570778504036445172284199303933466381099892509029227730685835111223893607660378339448277763780135509001102973249539135553273881853071561941521321424731868933329300180496132619511798540165571180119886231103486051231544352440465133301562188850727289639454509601939326978852189302108305684590599405977905662524657017126420364415139387380146817383679253542710279917969451809851624815126622241536581823353694429858434590909292946424125859061756499410890737703741963869442344134187453751753127184702012027860007201813439577160192227916152044147769193020818411153712310380513756767343215724940116215092050425141613240785318736958483598029789128097195013484154215169318046971318461485261714187871972256591227527214005903847528826305921983850608486312526631359736045677934750110439906178928926903779098910158592968705488959772218144534313862452885630262770831479880218027370003159222830097904665557251088764224688212345713326401711771487936371931205470505046121800643469693722713137082698544710569258483090431737122497480029152846536818964516988008121454715781570374417465680694775625430767064813359930930964313092082485815389651212400207304007992997690054758278797714127323332364102912647667389733290118091540641788612861909719616700881133989480704283220693460984898434586379617257451832731515001481059253295419896415237218383458472812527048415397748560002000802859010324033947704573724046172671610932340342449841942465788658939099505990303441586264709202995706009968509115047014080762758232458496785870027691448711799278007791741654525028863553470332182018504689576249512118239015338825675052118726494612207672520181534836583165795231334932418637025149482360767342029189574574083665450407739703545875056355671123547466366600904876933295504929487027172242525217383098528980575779699395105749202414293247716672659260009359763218431939860405400526051555498756598517923035374114801097015722961599554535661839532789928104672874288666400694414836379900615774991789465984825626870551550799903605940634172697069157062357303815891358531253673192864917055048068624643772707223148856003338432464431603595103707105373868003488636092604398015678019284786618739402094321909649744279815403904939287997447488869767829713314592975675989547674434670419727069720807132663300034835781899387070262420664596520559697442671684167327181647550263784538981759216794603451697373829920472668079239252999475651032332135446358158707917065051642803807420234390441345113384143270762151763615420547425573849542251218816950475737021075324318355341698847747511180679657911994820152776091565886280274899474617181273180954221769904436377820582923825260497393215639882601509756032514294157183750625014974682983921188675847901973284733436262293594692795615625906133908806196928845868585934086746806319015980957527998472430703697265444062997257269541724285477273201722407133416844300873831049441929024273274609670353458861023663068363780934302012971464847211209023768687018322893399966492251441964768242525303403884561849325192378761875989918790937655485371863553020887839125802827085277340163425864412109221627339641046801789446093045307194654212443476194785352855134000892525281315518753551074774068286354971886677492775919465878599869537159535344898181066393898811234339818589825816352921903308017396511263964222652763322813960028160282243891262025920891630074354250842734904298363241228650185323437993430976343621193218662066815461470131067572742893289380042317144802411191229850321219167422034117020068398015762041511818850540125877347553058624545485992507029986205543545691797524493109967322537706089197049622526790531066978139566102665061691038240179415131569814687544202365626708763145044321372893301462768492894115153595472336821591370014435469874324030039904268074385651933740244520682134196529707272894944103061738455413556490173559644813597633714881726175580333587986901477075104145169102631789729154177253333066671644971474439861385709314423606402066157561740297206542638500443807190449280712954846233714024279958511778281151508280797555342594758317027579521439751964126184431681254138171447428268349965807676677377860373548815022106019672309476428879589320070608635840851873369803368695077772727941961094259151100333998956287546016248982303169269352175280956503742159350078216132312022248028572722252520522594059122312762889884871093671066981639537828215977390030308534727029133320935431082829544519987939328857085336121890513619159328825142781715937430576371735123179992567603264691344747116769784922175851815544653988245256472324921587328634703158825318289261906303292618417305166053074905271347580790756839556805349009226062899782842166862017890326547900072751986735875200056812010452375493823470689602528821142349022146776668688636179324414672463171838362658671999400803187646488753419668572983558545645419578351103817363270337070107816161569960408848705586471802175048561600516098425828468595537387918282865132449001454625472269620142810840685584592895885701174006553772309879871246532084263325078235853619308295143967742485934712433602623161860153300734435387376512100968023360132483554103513376727924453566580430170511004569950115457444324627798025517982122979767508429479237780266770452180289325243032755292470021275233915066929109939944909049300069358658448857024648133655211038280986809841997915932182662953862629827232474805454603551238292593056757208353000723942585902277303454960202683754490417639172310806234172770370851680487336911604269321236023362811249654768916867864324105004729394406412297829445620313253421803490639040235158651403619360207302339262593219513392063146196790488461140016048897767496715095962366392703412705318971679804655096477083722275485714841644083909496347154756009318244453442531266597585866185816628399060012680193083226264099199598858865223407769782709841748582959664908062957201363055536231727507042102040020491992132626359420507660863627238573999359469993544656163885265372715659418035119593340722446061397642999550335654296448476429751737174116312845735727843440174760603628700664827101495813270921285057194049747385225670051874634791073987469192418809946288695212569832766761822966005770480727878715176575495988136506614227997499525470677858821965076233969615449277357260269432267449159122513907797274469657801823695510746171676674275752683503811627885808737224872850773333876950808278097200753482443818435480834957156160980602925292184954850874360338827643812272264735879794689779288878033056141084393635957595600877739968274900381406605691510247254468731947143249476255173079388804582814088793499723549502445797655205311236363206509123931041810066248270676138015675743105827123330093226731511024740859417751126908789533559452324323474250904058496785580408074810225814969079092459209370392581664046618921874770131885168164651882022444706169582415711433019954520185455712811994577901923724927525094356018015102950981168563353522248103655376235431185795272117882571612387768721500659807095945613164986696931336316345681531640124581402144447388524999414376396602432633494094926519297249422108580961778859871381764259968384481293660854702389322748778106799094179822667400191333994567150268232887861322973445675482484285181433143765104969199221832821962829358963357011951046240003107306639612864766688658291412054461332253653141043073449051044068369663696410076444245384431262639719510162030826472346959795506841958575019651359289692589256826661491723212278055943309768583547944834840901959369940662680723727696121187652793488880070848473987507949127673862466428659627246021601067207240421002546916237122554046943075853558522954510966260203028324418130126206153870257591988954543278486157016430832862612222402116907527838085256984408699315483667744002620622615429022548629666541674926163433104219200120151956299254006711377739554702070868501668063955083362811961917954552848853372329135087400851914018138256366348822004913789298201698004243755580814942677302419457825884800120922902730899117654622982614143235482606516172386928025584967120100325435306064087527555869800723060679831572902675220201050269818328673956778579910909206741328564084296827314235512869113393810861326707930105874183169864723824544994371363195046905141025475539863771021157242104859449190239783091815381105155377192734227834110844439762567224843151621612334620257107285283990509561629312969785591742131116784849439040285207091407602135197488535276058960595107445391927803443526710126724350114965577186820156178008741230064010260475192578483846190658953976141319056998326836945845631189817568152776996084270529666770874114657683165308312756689462875267240510394388329606726870103706310763082699642904070562803192365159070036800355755871173201279851627465651034869368067350245299168315780174537273114992596824511999629098291661857420523350329453254545348104619453729512728661141322834393712983769613423953074452807376922121303582796556772691762881526674529997980937597366785531515561928296442544141743448815608739507503884249258185938754959951781484242669860903534216309666115106342845498818917453818191708185428197223737837071442568543109770962283882821365272644502349667863529669610843322796066440085341950979821896875439832607705023412149550001505672717550552303899486588418605325744847214256672833998778642389513987100875305911529165912895903373068175392753577361412787376431995927034766129972462297376478094120030363493562229673693568371893908703938398366093323560882838208674476999327107368938802151940680439683008101924411112936354086288572633145180047916617071702475766388495576524950722180120038430658979285451566181684507653250343544723021928722208872945375500957840551537810882481639319188405086594043213788761432326915157878161905526943381901760366464151129155534898165791527675849776533257875861373727486822471621513371649732117247558674233588320849495904747224020066415198580373353668957692982524165891657760144095320253108879495921102442866628013621518048814392403267145205660243018850500355063238195112912712142672051822543986957719590247895748128370864753688498969806229215080907384045745674386321838138472663612394172247502954838368297945995638966417840860294163375408762508239768159127410151784786494472205355133960858924965309605648221015835167417883220286868227631695913722649013309431111090401273463983762024962295916823902288469434114593570793271431222900224828201526191759160512792420514905887983982803081760492199470892121073390122309674396950049337149926472355648173220972765075153718188764067721666166281108048279219908128097458419179971741539223842069850946710680910748524844966693741744956014889874306969650628194828894874523648758508755039161766565556878783354010639596091239309320358676057406173759657711097302534787430236345291418219727863894663684702215835650712303269556689879661387064782889686986025368478172003286381198240958735556880109386365324899077173046054990849582776467398599180573395281573975300734098630436352318607855488079973045188381105349082692925731939567072274430402123583910006076589326517881365348052805520403206490774446707950384424831208639463465052772293531130623969213562346426060000574709685490438057661557822036564213569525765546066472969457293451349686213752787260351590340239146692412764598121309585942488570965526957143431869831349060977565706674975791062296147692736124932828613818930160548214529444013891693994007305634611020353381401816424042152470929940981415563736757610546828805386095199890354190772505974204412095074601036674300644050709378557400455263226170241975492624073180757939252716847282727347974839969036733875558475841966999879590887612205793715294508547236227457761046139085859566092976757710309986203719576688774313045622108769538043851293233541682893360834934531735065525184822739263029411995020490563866657502111092064866196969645646027933683457448682013656577617190219724127279020779742147804591408520728662800441288318914141020809284751300483194411135783400898939610989139365527212233226330988310143647801827602628246782449915440565678961879464847503067538372206172263499601057944402569876049699590498313834122817044097896424385017619337441025621314170110324954982436609875122734806200195564413650329450848769124475698840934615372842847401818869609368963113847591368985531592079819628983097363207824005972040442125849183993821419966963843161096730110615993111875214247006232649145082142102647295672480646677748717218228065498704750113929901122589419446442175554386256283633569533417939814661690980715724687378082271594013669869684066051993335044713784266195885324728633223190623236381027407689726536155515602685282978304392730731601063616233888000819634517103684564312989231802508392361104756003943479795575826073955205918243330850435861457926047240466269662756169168525074891717733889262486342510459768807394676516391262019430856753713830869246762180469369052776472340325795306893345852157431841877096650901760687563035276204194760712184829996593700943073534992896227213358568091574772353718256784862644833190798366112681940560667412166042107645132250580086064393582694304694259883165105366020004619115549128909452029579505218042395347011940187940091997541541122624884429066090269218802163956662115366317350729271143215644813856986057188830679406742484587212413515094858625001299359390126585389611123374098959211280299201332337323994568693029861722094298509904854655356058568252478700258358234660922995054681292318740619898927774998474879619974134259911396937484546095265971152768253530007453701386765009614948141571062047803917608858994801237025162114840183512920316711368813932890604795171015777013710838943761944651241458886354447152646479330226735494038534842810483114823763933383572725492736600001296398877279524007971707305504415139666886276015508667788883868580350231866165588927506683077174605768073094190569987098437094129462010427900331544054010974715467441981997028021657857021199530322793706713206100246106983934390295601417593150973087906952448134689656457857745769383454549971259206666860432988286766156835442829497345255736344128994344333980646437035588289895111467699111345152889023274701181262147335110882403312611744917435762298775650621118777581812842654529945464709703352029168793732993160759405908391990700137566188961887805730406747267203448656336132107789816081855174363036598780170531709357169071904649248446372620820252375871597729816640887482660554290350735457129813507537874019731863606042170425760480418926660093875897061242445480062237533446109262991956373382857839641978311983970975865549065762104375026456992457474222621820633670838661034579706140415227895035869226314747060085879543177288334231845580015311298787866560717500273816578205480017310162290271397066735210060362991869553732339207782883523135539085326250202564640190233418680546083894527862589333918013235284722792234325014358600617326923580212084298750999239545185579832948524373575977041234569464574993888292982957829225473959990918160240974193139871897742649107956830257187177896978501466420905871647346933526576519775895721631684966589565554043485840097857507136534576810565643606746204273103847934556293524073194282669085682541853027392867777999038777199647427084325539362586443679314898748479861610990603155682138712148804221677692365759478370214742258434022691028733563274779835968235346250447852258834762407138559807922799051801298469405324442602203248704886530194175963634329052267850276910784831397762039755203218219363188732933648346481279449418754046231839206526368732868662014886159728449076635851937518858207676969495793812827128353318549039150923879685969550824383346806272248389074823262205089015843385770901504670517297438343023178263388613935654057518946972236641572005916786042370605622345793647455693353215344208626052060094492533251246513775632916845478521429090465866524800157559882004918064565563785703947017132447867941258959561803032404783609940730049060116545506141486999782715721057732331656835009209164820140295768129219152403158913225465397437657914298934387061013679135829292795796958380881766535539200778101072114874828161953629990856308675205601052745819038322787904684641355907124734138942576846253756058059720890601771443398103650054541239052572701948459293889984951357909692174593944953869951217158507973621914137846789752545535701439008725736301982233887606219253950875442886714473369004373232761509541218995222794524953043895341269328020379587034205646457227583402102307526521666864806432655241463953935431496777387625340117210724583870856166918813597750720101771958455436333200594758642487355020957631890376434256538405973188679358309068010396490475604698848382825914973055702130533269568399928742613883441738642560595084775939125769846148817267837930900434774929485953984952438498430612125793762936794249392967414552047088765613660414223881058971471400007604537510879958533728472723129065268205276474510289388745422080337166556315601686943663308484884540434702503106611220797240520042183811588243256009925054396392374120468570286088169789819753038183584250749434083364856163818648529129676716983020980066013430052158166122345977289973366579563369721112442930175332550736746509886110352569614455529087280184487468928387712599008594972947609983863508382264546954308875371293469609311272907767583566614697164593484691124626241434591654742388720010535298446731348598069902427135590493431778792678921590135148946305749263345831784821176693460537352869264435859462749225292803967162827838385404090224651519364628334607860730246266097692823821548239601714182695770035260073847332670841859785993346527156698855626076449467616230606461541468423799875517115531858465801081708960649736694919884508512545774531321897308383737425652826733542491646578784440738966760886830698407346233554608540848847386894512385526148690749847880327611272082248616605042609322202969275382650136339706591713469064686220359007953629832635654504670819873938608881524287745592524207801573325593405752802438346160349231274704193847195373369475131286464903543822301779114471580832071607496762046603817558041729968798532581305682748490956205424842702323610235653589793011416867250839007005179691499068386308733072514587960120121243272480136674039516204820004266652545476257199837565944520893399556582342794541671044964447476932144420956132960088039985907020622176385882231806029483075013197051350802193489997083057071166546602119451240161791925335621933482187378701099632339009292445928586864625839409260054752883098776235525953637243435535758467345142193303252984083763215437776205299016194963593070665504943384597623262318677430376092172610199958152773016978018712027526457229959434078203170108312004558126443939039834438926537315937441664491393224375173175626587020785143730805752242614776972725622071145033836181485407562635607334630157958178422094102271443532724544943195749123598280513332277298199372991712960995107380676027633431245610636549780319354572895467253314852506981467253378499484532717053774869271167010956068404688943611452140531982730034590118943590027877419370898202512880884265534407776312983604683839878802563766392529783765824438554865836405053024945649462014068334245490392200129659725827033887223201408274714399501513679292448152542983256067121995819252267417779376960100738578395987180423266823979308743173288580054174163136537349453737849771800389803443737487166086321200720465975025405962488289561972301683821563170066617043730186629183809521156133527828826176291942029931675028065590548572772047242585732373434767954517272107042367843245239581296046556538009241869640472276598305711621156339506303982316763031048084782540169609694765449943380882323977698264288669151899646434069765118772862345035321819225249954235241868796988914512874385606742519416207881635685964631071676020627868160614800924151391743959493270735326350780257942744060003856390957090059309567499353694861082948992027360300109451377133952497532892695182453834333687041060897412574652603662550994753920693678380649511042584519496481003458424971988366326822297375326398499030822995300604604065103420017266124448843788708103792558967135494803010457126240325726002386015216566617018108486920633434150371746951359000319852527420578472315511488274939978530626886498794964773418588415792894049345347739902447678000578986281724411971333149654713824763423400243657499781133740606814777247227883171301415873837805873650519598511441838838103492785921010283411759299711234772470380328248714541774636606528167923482825101877096087213993366226580732496082099232553341092691572504159918925890402276204593884595468381545663721664636998450615712920056256223197173150372500859047902538465167837355411811763969201073294145899540530249273153255289156765847121253710869770721743674076739253740210925696126941641299498394391920823586164400232268820848246363018705047468501577718201089619068535750441816884216778442290893283295310503453341360588014647211722590984175758439047878693326449854442277783002809962444486094262919546128619736306348501444426640264795076558930685007788824271385667247156328875817047738335377255160102705279562059765873791914321958439225940361087482074393928351561829155896067494762565792199576822339896466439356604906612531725517210116082149079057461457325623348154034064155675693504156747262389749484240897303162401756531573138328493247289666092691332514613767785178141068924968135908246641028594282757047883534811664049847351485914468857260146244232627919528083467587499221278102747554995474759554241557385317861990595873278921075007129735705516972437286366829029507745942982594611158863775343264076317908316934019712455403551396977741111437913190785951810326881302161581469231153683641136374548129115736272772861975053585661241521695671974629616936154136959617757665339205577645854348478120753143580066288298713862844892502004999926299693185798325248213107452753406814733594263922863655371024542087259876553309746124685526612487072157180564753308119763318146593588538512266556366998867119075542368126148035650831152866302544825467582767006459562403767843032091201216286662490903336136974395102252026574248400681431864738977376370272515846085620271117436045023060243011658992369971333809052898073078859773465954652518692472994727318157595290283115791730470858477777286574829112616218339710390484412447644672773829955176804006459023995179360454580079431901240255035720696050407159176272485070653113226642643644384754032440754022906824022264223770360957740301941743440278847053585919827473169715592449109364193881248746425531937993247307895319297260317346110594301909187485398507595321242975480745081856895468624885840510842660645670139519433565274450396755703927075598617548572268142101483853828504883832696563329417420235418616057952965380256281785709765476911551171576811830041341464917928197696335095643778689211148519032595082385590063081145584034001270954109143965818162776792448991111392445130221070581296684885409447102073954199079114739568289728724514951221784098367465783645652634193722224717097947435198064437020204777698281352017345923180838949378556351408973667922578033845109175191795940654149257771974815805332915373958172424655564077631564285745911157546082428818979842492019352531602440738735729983817938943667183980453339090612113763531989070917961278880253595752631296592285709646849328551118609859248471902025951789617281575145858439300088626375530282760285559307295488485943772985079747736524035741955192173322443996099497409518242541866213836486478296217086853780908650122357431026301266495329915842103473328443376462411488941789155766279944185485030386902167848976304699927238258903368758822071237810047791591533007330311777944864499427351541873771067122898978938833063281668687830911514873137567307523512668607024252367091360724697286298753867763827062869105333162654112030761620591052995655445920037993080087177106267054674761406503866070401240775792499343925001413775079758521953913625435822799167548619996852735531139629968834092624265913466111898626845475533112670567054061378026742667150631139290663075348207511109195541287934882433453017155665352564820564942267938343940351630702149175876756729576566489723387441020849861532066096907413517987163960923207601016067516229786350445896994280696261916598857895761558435440740153171216184368341430868198428518542892638279568704056191652622490320358377725564689621604086007399455663728469710293514956410464748068355643742338561761025105175954719819556561603035046188525364549965423997902613334079922011113084904079694039789941732912333178660730030565170184644241802881886468329222462070615715204156360983306512642749681629542854985704784229663163621658227865207688589502107348236462271466368359591694506260307381625103070031501052813371873983289675809362114977715320442127924385111725218104130423091630647590072085576234077527442327929059561834822287308945728062021141267600955793223840646667640657817120088672264389164175860597432507927392952565280886195923703991585356669291350708429020922883524707874512686818768521206380317931158541490521746723073569955807607225573564286036815381093831071486600647628578831667421828961177834844191483193607304854882099247301063589947409556262322554022655866518910290699944484911118008928578136539795511694691165679872047072826798515066016547720657778249655113414991657422204662698414589405084525630950086435040024791999992366074819839909054603749886789034316404460977491729370303704804375289790224450639626315703057174500551755836774793317853707804104656206985268676897798235187258133352502872483031740164457469346288149544541630011888689953786695545658271085280368727496368450202296491202812437332028303127721533096929097070148784467909702649532260320721374692043312863309175708479057422618876766495636670333664334588173180463584204522244432495447873642063855918520442107490593593309822392016757831930376360929006322733336702988335978024009776199683235191864676627059436151778443635151381843391874183538566685260464042264814407426375429967056572677037785090954603572553813974072428545325718118226351075375284540055579924970231598544463644596287996315936473708849507638565338851262376966081339260285459879582249270709502703971861041491970736307955422689699671832885254732123522460737816341175299077715517785173108249867339389192353923046644247360839935724013951311187842136353352974261828718477589152622951426522472560175643770356431234997925396530877068550367443207517563804365319837111947858634792160827012690249129207013475240933548575510591083666553969788194053352994668630540894675165973859618668902169838836735141255081474160877175131403574443259542898566982511050806858227120488211310688463682320631903202094866446122830172507301300123006120556718535787284405301050298040017011591482683852548801302697090190203297988117570521032033385170025598683594431866626015577202283430732216422653518114988097677872889867618535097977726438631759237189442775072686417132231895179598803869677785317985925003025123033159292408042156417493001189391270269921590836499667144730353601132607594613074889326928574027417127320381204435644938875987611949168648775324283285627616040643231040692755365194823362880828433636118759092061702083631086093747173423358299022113029002901057866954355862768861824625250513990442552222822548082491311344120542115247091615877648160421831182552115694178190501914695257938958151851734708914201850869705684199804605502829973899168346547748469546305352272082838761988482682797798735439884575416427088608501300993408128044140472319886581009253179601249604472176544647861382342818983274888122550320259674409828496405386988494598475101402619926198076067526616254443082048317888361651730774825689351317318928912827022009634130724936999652573006226737093453472473140125757347654453051995585033355224039103593982200997924976848511294556042171247806120541300123480307895813430549523391975963583633030152741516477480482546252344541484988511774846182100890593353501923134202205393622922564763568349838448392008594601047197727845605571019093944222383909870718190301968950709315046545429881654949466324114139305230814505265133742893623965999105308343617353117979341264140956823653756375156402389688943197913503139707858433679031324438680069485493424549809645137064307829379637749771468431745479422317174008677457490838057668141875779836929467936800802278644921908908977479039692539895949235251416406135262193755724632325969638979522059795515580830829753105368979945301905294825254231843690927607810333511556836894680875296836252451218951461191231068634700458674323506079352476305766618947245549788856765391783354332057347735665689245837947009500196011976541026543734359083043442908810763126986534853957069630888434920785467239524200272619748931295472063298281783728822245776011751675960953965556977303217814624582498093601353394348070099923981512604345021903818889718166157961563224546460663795011754382239964859124865458234550927303304836101429138818629746240545917374515573161989483137100203240501256842668947686454545865654675461572654890189779808102836204238216409267632846362232813603016302001854934181853488792698418828818040311056802582923600606482441218298393986088986271372348814552285324187574312742826985852903699916869061690412505909475397463725002800959429009609911174809376108154633252417009161623270455584257303297667636604125899209993081582988709220310791581226137604158427331466125458302526981048168035926289804295494097945442379841705181386314808311792481270158463806056219425479477697168000016960370957155907765985642954159644901125641244468598053869695994183810577312962257031213939172419296016991065216721113068369348328016977126844852888179094024444739648984357583054946997408625842877803301930729180832115225582506439950594069814953266400966269814892224391966606487801884270659376457519132886929798349213507523059420057910761767589906114689668099448454511821950566646160463038709082281026704792735158125662105136398161501498164079227485162423633158468692281681643045137699939701264094237262032795140581910479597240582243340600602568321754447360697150476747683787692388095326151705577355127051175208066161559707320653940902249663862038546132583635587194940753879700999358890218724023871348913709315150194667865169783643380217601222042886954911698697590741975145971818067808514321471156601416144714841245904476122920488129767559926862141693694641691669934827709598986322688101189685901452999173886554168792663397107441087161375819821981022889089048637856210832418828992150757769524009189112239910841738030317704703655705227873924214402626417244345267645653228146926709832887903825309569293304759126195406880575574915317021868255027167199358445242337409276977040170249871097008453159481414503997179721853518251695183627457522884874233990263227138620135786744223756835989775586868013035662544975694951521521116798130656757137015755458070490175887517906672966623820697750403715573206882946472825894631170987424858011246650759576134689351996836223731926253246430941931032605641188526659164065522314735498610257848456219819880389248597302340034324626643000994405733243098420716440427354679792234541668638634797008918212299999976050965223029051820649377216634221160684099620218886008007222058474126416420129470458239525331356536644608061803915123249452137889060430808140240252492789622901630959294026410206143027672422187224719720676648796489588995199333141030744682122936679486302818013404222638592277570701202092993545699403442006123839818586347784663960042185312015786220722103577769582272556164638962370016733142372844897230313257390467595697004940750715686084486451492451082319577555665373090175989862021132270761109627637284015825703445903879655347455041956049054970678326310777896826347074042949202946375438058009239660855018079852496990773896905048292965427346300703253435721309376772282434706202964857302925532144009777979269983182251747641723702627085921977237592689404086129826350548232305225697027063592392139731878848374586446462386039710217974150464573732669537428427836687992194979217632792872520384592942287667478982478244754736809543586235925109480408809882499754762795785114242778196224650503575514211403036990094235191007164414731493729418760611119625123043937559239164723625469462070793660868158569948550395604856848245385145901289451663354880659191112004648272829997834217590185508522735333420877168474343417413779554226006288820323283219165763655783420543044964668594943697106733776524732352406571705910612658764512561902562050505118316341260333083918180591619854708593252904462795287292201094218513776334207659849663513079142490454991883385063744246911534050474813740770702295315604531607373379060958827483630437239139787852620528060611571364121141317437798860750891227496707894335857790198802937307303113740019464450745495764098488449157456928896872325317334132282250684226000997110366203848964981367541002166666077092583666358350914388667148998473552582609698627041042223915269655168544645463956615541806000974141106881428990477939734943019257728544455912517426785288573148948129897653431153381209983937118748095297898656970158324576243634349411149585267513114373544331150798759079980331802197765190219576452669123288978907154830383382541106700045447843630032226392676334681178569582399959314062227452429846651191751726008166997072279374618941916824257678887593903784061695852348232666110230310835722792290473858270021864824006006645258258051378730451202773406135565942376549802804082527531109792486292077185216708972510314254215222304486922208431043955720743830097993421131385335814860345842128110535209810271893271671772367227987781179697527776478485653551986012054200956393417611529233393252088681085966788256967096078492120768013773455511442558076141954863688441638589378175400491988963402119229240818962067351340599867506512674404880986160137815710754209155720615155209969512874200736155670062741476187520345578483277354878758253833744352188501782982462101655391092327530227955623256687267681355166543827608449378419708271712278450485200252420856334746635309549038231008088226111994935042060165818690380289636859929752787078379731626711423667730475622903470403853742092449439696876427392557947467535710038265640449273741728832468709725266682426690040276104489935282261406686941541351413988295008705294321898373644739732448533206052536197685591926206428947401813433563261257645338767161058203947296126124170644592730162624478994300484635641961956484609497130716458949074711787464373062207192969930274582142539037223157481989903185745233537027150124398585467507094150776629399224266287174574266091224462499708696512633559984104143778930427377899670032792783154855398353148415281698432797772489436624777486021672276264409233964026519843852749922973431887027292691083469569043789130280162968951439216796131334518213725391165970948766727345158638674424570875401499409666970634176744744465251702226832448031091479920409126133242959153405351611200277656760595022195706543845284800037483395174710579200137432102647612635463866607743326702874863180416846360148217152326540453831890799968434171577446276394301865226808968348399367456085829847518418709268027361543041359452241576334336131799150354248019185875197807375156734692532285289537893179554342763352834217605604643981441812107019229962303288285056217995075694208690486764223762422209091740735383547444611398073757011264001987725257031629294494435243325787717183752898827444944753492089144289156695890550770242728957109809830390031184820579679230738697663552457607377810936316961673603798175767158463618443147889503574209034593853746617623084214550728192410907320803545575595725936843250998596743350061487419366580086021507713275626884029846462722631877993024267987593598697961631144833576462906383004229652014805773381313226989729234690587436804542517543523339900215067627762696863855275667670959273976375855482033916980245977766486303169599130556694841012185506277358182367499925866346030228706259384616437002911975127831267826237941824071963587826272185046067430171364035180511034924958438436648066431996816805332787242941617927404954065114045993833545631419184437568231397668804605116512910160314027602134396433837760472178839164935895042074430903712372381397406447596873918437367374733576306219939666095469995702820150326272189678648052298376794462160369479948208500880500463286991324518351660471827975859432263224942910382080427529587647512908071073362876744796077633862505909692032204451154236423814457771744467076150129159725286719782630147664859794158363743407768469593499616659768289253945556364124846207126825588989168425178702394330461900619496884142111136280944853175421393817237107079479299565966059760549305790744769582778762173281554497009119782262495768702739108232208712580017974911255939496021504699058150377712853439037599220312791280570773033489539773439880517718150357137078805086033668310498709910818523989838003814765647381894375628121608497658462708347217314723666130083440640970847160833672114821150456490066959113127943861624562688554956496923485048729888341199645877873755089079148431456041936973991420378415652502562221504449312406201009459685414464956900150522175910654350105123233298095314247706618127815978193399714633478691484525261992696688800265179590318341666260758990415568646091574486643450283339903258483690559095790401163397775693709573644255593515694335393469348820276095833263883819477707728607128754485214316697353449457008666633567263154822697327321308684144329791653751717613688410593433519354053509210594115874451068785585953980913856640616923595983287967107728904597713190615005009369045863944074412779682045620296299192781346197652301163222814258818874541683688905491920665074536518534529625926469341479864183395354431954507010533319079442264298335319689049567352588783388596766595042783115870408433864888661949563515793538838894071699928791049301657644682007864305672460803288161194362601733209978897261004745500443076137003637499720199256394710300420005289423921508036210533226040743003503218825389997994864625680671087906757340547929812698167033006660341829571104140699503625144171134969158865869154429982193024028522321057225874768928608582982997682149970041864725471537162046413655753011610474755112000874447319718413317010664883702948589717729624312948634510967708750728532802478381637268181096959873545847433317328433210005340952103541412228151857759081809660523821256827877410833135216161264453775590543105467139210516683642089106058736572567366335751068781549289933943671222720563291108535484387866248424502284652770136201140666254247418515556089038428325645013143194016264633566431505697925805997518441379705599585816025835744137224067955655087275359258162892700541358680021924208453534323473107595369437118427191395099381629658118761293728398443969835269415470715142846656779044167376932763123766884299777433539073277813018187278874804724818515828263453133440319301330224593685333654389013968029966557563538014831448024794091062103903384771846941454329528603184767009363506782661208775925889718845403058888278292055326812328989516224999290936624512281259741395494191749654828958893972960177324884911870133157212238475655765259949472837938788771004429020565493658244349437657842459586356974830452197409164518015551437856294448645666310328436485631452729804653592065812229380031639911694557616858361130834918549974285736858535243437779997149549393032652113530561045833652504827273995658782138050114980770364433300565633833486541348349439862388929566647021560868029389603005557167007163369726999742770277872109707046051865156194477773174480519134896392488529492731813163810149061587415028955281875781805047072747463760094720450791984399724497792824917049076443926383674780739150543349350774775732720997682152426426726703561583512942157712608940996445811328607092153752237188321963683213514454985460273022447342350029338758457704799691004033526281463158584551526178174025708772322024720850386782718509009071617747757722599803590065804049729959886726378162794562350501974334645010319093897573287180470019528578389112208513471457845955505244668351092417631199965385556070789016694198383887240429897890499488095608377196362335285176051463755366795271884554410577648471626988129343467975897658114232984851077851168890010542814036063520971500671937454197299986361329253825556475186730024328450814621781813593991377021504017243238207267291836454467886005879972936430508722392020615636380496662077042971295208450907289044794860628109340101455337916443234765183068653927936406880871172007120088063041580486716048570199909468122410321609609880869689884576951832480809865646712311716024950099972432138647957574207101981609024067820131347162066800991029665124748573548051646041930202888764841845801612003881991232876682302940219042197348515164062895550911742792814064994054167670023718710142738657178386082020304382284449027412554600521806444842018368800204633606010096462906944854057829884046327403507569614365927281056801068715021665284498224931523929141945538856030458875490421614309753514604861410387033117700908203493978546531899127202606173024959094930694127224229139357530433600488586544017656918813003513517913384418267208343522694837908360393250931466965031591233882611737208018660589615680171571818686131112610090082678342958968444003125988179110350722079578786600578237253763525592746778868478084959531020294514644751961302428469807071135771883536797039885926666684579914146053831926113795397218946292895879451778581270006252076783343448208832913569603032882285139648602782250413023032554233603064781723991513049524830718487820760517674287014473933527779630637999825361427866059121953253312513343726161679242906292912214196570268546897726922067113797445372072210712340843598574160164701301265801827783265661380995287481515964666945885682729924889869358609607064207588986050137877499447114378525310134882463260200098384428681173969052050812762739587188499261428006638450525374922548867670987188463902706708113952330553397786363484494513763243143599514303251845650627338851265287979542205162484112573885962158762786784919756686934769396606315256195889733912066993601364505719909346992442204134855235405163317637117152838694782880551470984703625639307225497197198802753507176509293396677615734770176212823980452727776616028834074184782655679238143723828263171759446618440411591201539765221037405376644796111565643031643972739561460884488919339631731135320498329941463741387456508051520089012192370780888399212389001849261340331514605287210076286913573333494129065892931906217851513203851480002919075285589759350885483442379909543998279381543150401523194231700514001061453136442822131318753255248188993509539399861442957690278910617664945373585567829089330441305625443363514019328305891004379374113749104472770399679475512577197102102958715326899845444103188147310541895235872793599314897628958952064401922106563566027292586322845358455395104845518109716792761882327188855069461500646316514048520611689316599951728344649036791833795904252757695006257062859965565608671524893974462914021803906118656577924313109352588236347840833719001585176638721086937494147424179417821052524497367130661550669072901183147772631555276462336525747997855824165002775375144763826915746024027337419920242078743564569219629617296379578030440107302246513704747236826123506184557638703358610596788621892866003774937234751569985624726007143194088751139396801738836703243110836706108019022435123950027919770391963107931781467965497586683988730380939814097353058250277880503940181356616815203980005164306669826991659864022297901691925438540453693259196336354072375051078192042059281343166987169954611486599054061136773445532958963735050728349851433905433404978747569738374397300019799398727012446516029654621173576210516126568031075412477853105526004659640379093033514456874755082934731231951342593472112498060602896076672835222792656566036047550090459123664846793832927770069165114600246344082251427785926160687312421613754059062939175777083248937212654528878288286331025015809295642994215804584902339390286204762467514166759794305901526423446333192528345233349863753699883411599295602506964771235067976835458302175766426906591763933973121428629016237545972467932033401356519750079019564914669248136942197649138560190627475641447216823429929646444155733081882021141721003189264360296621495174461794816939101939565208183987291939492368951360140609527039732412471795458614355397475983761928993321926256556226466282169768156995410623180939592259412325664828469267236020802032051061518698192558342726455609459606705924806764699637388662155599634164333793315065878574110310000573912969975843588006729463220778959750799192503390927450665242167953048269006892781901583505954113044080152472991945929569992078774408789631560515166295592137371745428642092386749470401710458587266034608273659212744368323399043343605583951878188348260948985973872679750137876836507294233152610231262696797558789385000122961389373390098353608813261560085429494535226489215483359054943935930201996795473169165586104701830159617322226390168802715846501467535257826041184229338274039531490321638279653795841396313079112256816825823329256164938343666034278826628643395165090140153458041565524153131416634150816382583278283866402435542172985305748789007854735979742949947205747875432742591451918015473168419711618413006116693762342785321335167894658632375233237654392745010853405116009725726071393010317551360737339469754710016079127618019404249800236323880214869159977101089765785135930317350215265547826064699852708638041897548664253951335600282784521648213057457538114748080140310885938817065627649078583879269890725351218233677097633566401138349746164266863745493087951697935231130589342121440925334334213167995462327813719599379743701166861967642982601234440852687588274764638692433296294796105971064284117406228175380187398310250066913522978309576837196102177717736455945058652922675606404600035384415525801740862762213224791288453474648469337260699213353698598366481396353716596260864520689103813475488130818440027252180655816875237522034471404341304391872841259526193865200554438244225077509705881584624331368924769135036590606499695742556682956195098177177422778569262301262442768924590206972061690910799431949712861296977890513629825244664096770347727984843508874697272469018855742840073491595682030110299456785259023738085506405830821208377020460081475093227278711060205876686912349623769968321750929640714166941627134192262762766436310581257976035558193154044620430153714819406088051768470690533370772973004129649347134114624384154209449625146541325006802540686466077650325789810185498721273249675130965796878706837134254693186473907521134861438712393261889546364911932242301791972026015807758815277954576731666046929989555515451762758923240843943449789554764232999378510844053176379412848931140540877650881889057451893257205059840451395502631374845190274967722560257714525504588225773566346447422839965135166089085748911553504433160735283789537134447460232036607414491802632728413831563853969688765925106164977882145193483734235201167347726926189270114886907125983591720390175321444519807127110127665472423117455555297605859732720044009399343471441705631995646875731727351757341046371532182288384940074354643716518305616223826759963485013493401110303936128350001964881639996496279523074760588646670865064959144476216967806606927211196506838940828187601998565652439618778572602572175257162126370074477449308986848074717455581090165805966282433926611786790064334000839538260987259798923708527332764006287046029253925061513235527582115395251704681832889634536623300766784881427515448736035974736900693335362664689715018762797481824206120764879728167124249269991260539826417399312321308560019533614799280001747755769222152500567525484187164450391712167052650416156640376041313176568947946073825852105248345413662622585324849075912953349243789883493102018570594471897423513176146513725175843686523887357186989573271329542053497412479572772641467767032494828084740100283454745184817073329199203339477106408645597739823533176402972185003965222412795603860460784776914523473967793268312213418916580842374515100908332613589766129918006754000321905155499835709587364054960786935564388094113627810708857051397216002530992063656750208337874689574285704278899157085745291929496110980043119587456642125362693762804147880973750788439713437578228062240956750185121177536741636716668761826525942930892838152692653581692923773826025548687289422574608127371775300386504839543499941813098177449011241352488867269926037635157328914810356122581349002923278298726040237696588098794720509041478386594931732668811961987448755621630461404323359702276953582581631771341387953146288228857967637522188546983293875108411302810082580168290413546817880753226441220626225037097514850948859975644959161177878537970899262280869719276952738040210500032091602248333410262174347525133165370617847749600804280713671061993717945916204123037659420844579678397782336168415406857755296624510498151448208605655889909050650555285382461756982850817671241414436577881132454092965305135782060608535185599496332443053730387428560221455232670574063384167236665183256840693983608211738932169950380940338620907756009242252926027759231914085977321107587206540492206296160149550433097727417516881777590835328217524706870859793700779313765668145671629418997817774370156471104432534180109973898347632345531893392576912284830357279850407408852599365812079238134466379005876398493526220970618290979395340805314440520182001604809491005091601467418651009519812043783841880236550436163773213306707524974325915692783584662333005606034340994911391458337002261091056696075737596759486810151896453450033412649345300172469668097200859131360724058890739179896020483022090017911784948724870479524917403076960675681896354347157161044403640083876593248386172582449068061132781848233949714992289293165700778287028129214411069241135636231600781474471200555184876646355200579260235746459102483848309983186902677364638703726197250441305819478365537572629242523664095554421951011880261322004855083617854953585401407195560890579047597032832303456873092011061138971524246147943309654574320600621531948193775585331510195905575067617938411273895293030359776115512037191041330579587279175570746588143221971862419430366273870762862596850971581569803010561718192727132714052617923700617815638284535804302370624596020772584918443898773206566831317968926660687294044136257955985072874582406076846161111741796045729252324523793130721141082544825082092806982875386175557569844922652862285729713638370093055827768285887127164776314532292646476479467369276108780934805758687726910526854791812766532586264763257148292980979924866017017888800185978745376368954763790446974165178923914572092432307960071144646913192228720558204889635415799518722356656935365818907013166604699918347857159919809146956786391769824194854890641278599095435356106874336428719629641092584120627452240675641501369608238566007923777671419052049669151345835207500362010889923039401256737571710079955321379492809224993925467664883169912949508472038944753659475122105994424741358226073221056340986762922948760197399177728129810848321963349963431216150270155005406496469301684708796068604477103126314360143476236034920120015290626529787953763715730971427042390737397221669995277792184868500853156831245157819935350703503041305785756434179048687750648184852634127047837077390603806540012040352750403481306286694855373380455284418504812381891061992220881712723020588983589043329016247625118397602474117286061337732055476883432433110754814710680946582172676021429685945190107672207682306777808672585191356391321299634207133791651212617270395698224814170074194734978397598356924405846717429403231489635750434433685572539856003941883397069721098690328801163122729984955133475548412637352231347554546259768191272825184939055657343943580215792166560344405501849040652228387801876871271567929117301294281465064534003392255633479012447599211067977521390973396581797267527226543451623863189215768553021545406701020926520560529088963446894646144376516565389972991329267119669816004119826886620882634317327333747440066365344433409161560888881338681682113980428139050846550256612986995351481478110790441094090910867740519898311103812959785054197099284961324644195379264859999923685650670904414864042890591309541400807978554439494072403637657199908098207587731026613863671686156982556034548356264787174709809453732320963432659492989192247112971602535173711629725596630385786307695995680042610792538772532301247088998521624906763418584498610371122753248746623468673337206723268633344122730240733399930563172059342680376241512658330049274587270521527572009367337875517297971186851770262918966948118174417060392134716527222290969001887717747677907770395620980678922397976838737668291078018941916888469138637517587005399025792228157829340150462996395343296710732061393805298402396489625896933076452338254419418741903315174543363625317105143907227617619757670359738911337674300989051249569766240865892450924196405121933125694576983067815064924867163736312653761347495583324250728893457335975425589376749044197141518974502699794583138922706329817667501194450075644648178756419632056755478802199252667684092340791817080543601595214085285767816914671051895121778433541379189871425757364512490913302678405728072953640116668523324081751672966211512974574183861980401526713795029385072371224749663139681846911052052495358853767599357364820611085326024447572702225984812625326443958330654938351280580726244256706999022266883161648286527051865170065034203906769233493158980221926205329157885741362721503292218847688836884989473270599989457865247139195113342150391428955308177789343524235709012691656127740296417031720862268286886838080474205945936913611185296046327408325752824959959986619333403623982779565263737723417275595787905763022417192477752600611388430840243273664121197398768368077521575726031505475802013454387149730031206443978725864223079251828850817368108326683811081704263973565768947607962594589252783603753441961793855188855266075321427089408556417268632361652863894197514154595592827389108019921759553300441479382275236031744680606654331318496422422935864571607490531875495627234968672319629884963937628615539524604781910619266183285215280826133515383368602185331503976108776856524228150439071180036573380304725296964963619996876733066086913374813434666861055582439750638105062363202179197745497377638082102147972250022292390933744658030421076401098986305720749453125771531236402109362630596221612244959039769908474124301598465097144669724167314314397940512714731864763566368158637833164598631468677955013709863787715136548933236409032064883834181432793414009632709876153314833880040945064050231107480797093271625710286662131438178898839968011578094843393996985823842022382442877133372129509225902541018951897047964875604160927007317752022211832738177156085088852939221216685750234499550433034078600791897051914254837756043655822483750885161049226938363662082170694576228180640572421326087935764863992442951665626786570288717032979393697317961151147739618287099558675110883759436394820805549216441689231010406498480963687126227195789413776839124243200482617077352276883687553027464079662663380605574802077583280917629828985511712606008048619706988777633946531018527451160157591534944280118734070035873138315791033560132084975105227872818614537602368693396398844413466927888167742854294810175041894153891504591461773552311341074900646523583853992737167666792532955986239053629902304850294224497837862511350382065425082603978398242313422270134996289431100661388483127990083581905531533971501014915949726661792856638320995552046359359044911348538400784370130736225219628048369823227405248146870847132189083232890624635470574322698524912911250765554521464802079949474507115953266666816342931133868066122418734291286701242443593723380465358578713621264125883452649449319638855583774770157574558402509333847022758949118386156387152535736338985221724850285350272299822519167352671816736686167700874452336147806191879110213341326893410267479776255857727358349532951084687559104207503932484455737494153730506212471619108584632438053383444113771511052297657390791136523580477965652926352373496829773824407451144752928364849782388824130360392631320119667020461192523389882518907379046153686751300429935079138528849834498865146541788170233778499393546946405920115415247902677900175546139989870629606718105621518997513399369317819056290592519691478542855022116593512954009828350701656281178386737066086356016218698110561208528994753255295016166331579813432063544628149978974291596705695815542944988730258975835386507577187285601511309468250244799902083416765499071889274770343155129562850947932826366813196773649311334821511699491598184087000480737668669210558711200046311250225112622260967277671528207640519207687863573488378778836190607539700755883501992568276924047889060840521779833850976655012282993750774868345292308679879519053161779000045680675836290045680421627227894436137212269964494577535178569164125393297238984906113928500897727061146324798225460719221796557570439482568715699239632355339118085457985734087232720072827328807255835888770634312144071973819768037906522269708356735304534558147868357477464596605613563519678907289799084833041457656970563949417990066508788132220720760849874510476975405986296687730872709473407200449477841923298368194651119646367664309587486814085348213220873152822075134826573014410552408219964263291785548687788588834368382194074648947650286248048314471004523530755145726044421914898452975283519237200217587462154124334790765078022415172394430004600311507259837934802210043770259025398301040012482183634285679286657231347072445325583330298720338109442122662219892807879820059635654912141111860656774643315638659440582996582079911567380607091046584400667994676066835324829118593036020441862791913467575557796161969748048589317408149439339807864409062171996947644086441056670687633490249319496777882366709873682497570198920765335491079761780639134569074680063904458674235474723958079552457353150906246242684030882842577675163006908346133429601070460717396340306109960221394905859239567434490095148754294631595944123288109601167706937441888583774171705185500507230989649299752988104597785291145167172584486218149685248654216288875486193423113392171336298349633487567332640596875059770838394522701296741916524172310992655636739126402232973519443033817396589423166069760693264468093091747888813288741218236951774627331917926177094037943382190419396428274002279508844742173118974505606982366653602797442462048286301867651361556718435074478844301186993967801779407903411166416985878403737312013702368060204714893127248523174005951504671605695193229651208370286524562680428377092487035750795763074946512133666386137028362249328504351054190733631532751297934855716177658991667682129831105103294213692016139354267240880120901408224304728561372832077059587442102756891547772829274181674183020234860250393781579424375235838447753169041875188652835318246378139361650645393557281656525467429472874785278720265531798675360487797892235683604317451474217735439240862938689234390208241380735946228512182016249426741400788286566820999319661822642231453335391046337400415254916807198495253136346392825672460908348365596902696519670335893849126599296205580368807450497539173732872591177530662449806677386880364341820712865134584530728292851642706109914224398061847137076576974838550433652030296593112821617290822389977934257388577104844724215395578820577252988030535842834577388707490773136825803584803990595886107855892096724201350045705071291605911966950121859779350937201516939792394709703678895789859599523828186542357922407771832325392177579213228445764953651500594576351829000297933308728756382389477639841703841697433712127530643334513916074356324597205043616088886285140608363366073352198151566878905650404087805702827596761744338793802998160205223225054342704345289708817810494060899243409380579942396079869386508307399563515149999445698806139313442168873866615296644331619199843342129625946909841768956842794647546921250775431699218633179078744888980153266584712844028637882839689460552979742509739872009844373466385168711663372103979148988579010772256128091358713857293022775538274793843213344914448813963450416017738989641925055478445104434798449764705701906678297957756389487844137123998822929102321921536012239450659620303667821596794888994595094416603846781692085298470654300375964261119331837034175491450726140327532909283114629732143067343114755359194957911449342460534442941090757628428942606402385301902428284829821023794208725422544211104644551752998969229660296463604039869720740421234670296448727315784810754174389415281747189795009151796555471998291301960933625351238397576727366921666100395839382537159299134729051203951352206086221375912564115703958026603838416505289061691534476033527878751893404029714882684362646310037694493781768936564887876196853576000386350272861483216524327045921759244645511912779154934281571770700234168835297756160792438480823195249533123949443459876682595103337618191115745442670154926757555773077527018410129648753136201004114746251571739720283371341648121919411539298868936554347199345702032353784128730152298131704577730294484327273075411174728401658567387418322961889108722418211261733153824937290120814864942651229996138053414633280068631035015314870859972898252076254401506216350338721378673109006170837338668744891427222309325685543084966046427175750528645561651192120824939650865278106624040339503346263217924271694274245584557040399244771455597021332624993650285973216684392256375286478417356281795979276331907251151461252329427195656877536814083284148974783364181348303568619494128496011935377073621670399810315022692101055576786954956442333488113080155140381191009884138520328432990134095533696916383660754617878623748941587538784134610612234752601507648113129179165183161589753918614373768374670687548091390107105190311806631800727602971063366630002683411042988714807750013933628447580986869716227604065608507279944620435230128989005602367436710471761027889726640788434139389756560263283971632467888665132812602000801088594114787863275016990360626440711071015683932397372865262889631313506572455266537919396848894272656483131678990662952951310013027594595307022186946860279064923087808332340353211217710867628291010995121148224113026783668103000209205225103572253557729792444292227084881361077102867140345304480426990329833786375893844306852938686647499943766226695367608512077614651119317396271231218344768048256413152781521535426896446988419161911389667352753306245146007584150257029953454758524880257871129983422562343868614090082142210537195394399564470009936480176336413972140493126195930217114586186276181707293577962627795941419258238502968927644749372178081808055105237879197040853928131195096108438732616545311970821829504474356084437062935405258456633017502443482997932680120737280480223222907554484836337146336518662128415639645530378523679764069227177903209289199717112587268685576334318548401901516079068801691568747887264200779451468561258211245950457066571183585543217362707915176929589960502615662218459104768614778906528032630785923582281599987413840631736920815308345416407191759393890332974219244455189088952701202182225108916837871258910353629444018927687324896411936172204268404189051794198469021298903255713565835692337073132618208579412941907356961670662558697751936104180161082251816174584019735095791495694318607030278229240913816327770366427482482150182589523961257408547385878676392892214342248791586928612382166722296129116207699203018847563268819829954229623372078524628560263788536247429661308141981342481781078906850503059254874840686509960458449689564297227067924540797843845784277452376900265152243729487679461431046020754495370579666373685780523572984532234032578440699650069312306008943459061900791218936573341196170107799326028099194937208201636475355440454433227126951086138068649244185303476593148675601107315316523873849852829797757651781278804249457965573486858588514477523424198781418314008533932515970242177518044010426945111817987233810754592006911104798161864546990624956446644337205700057640946450800739891329724893070353741001022953631007473665065951375013044888905857662760165956908293906152154033186179326549358585348989929108005326948001976123289378442707744212395028602094808565467036882563521102733842367378605962545495434781919666759137103039321354119614404758621232175592621044026220629470439151536183793845711789567719222390124861465470694209871568611692473433163077324975026985972528545209318786544596771529423746699791824944679387851977473956296403194490592392444899002992211665451606370279195063125221355549082498086833496600325861814276534798493580215118097352238444496827624923701782328992985223510048383637270614140771150219056145761041802572480263583704240127984824246890732261423051178942605241199315021401592504348599371339128162378808835416172523515968768960246569704226903703032150641836889213689070131040715258810925390110525894105804278836076453842773118027598861875768487383336943004703584017862682660832907515889372105681831058626726720586515669674690071036808151764862730366696330390142534378456140823691727100726354462391842469593384580590737158226719383821859085127991401370653121631075944436710388185084737945667880723347797339197191944628611420619897530376808208991936258857293637472818835267935613421882039667802031747421060251290028165923715388624702285460501182772005949853520856434243018831794275387110661033700100537157146080532792308488514124664683513131024074654976568002611072013218532869226814335680727245123766076456705706507460303335718872922933491330952695489946617684196486470193601880926933973159622630987095936856687064262368390441527581992825637509265620427447420388474265471300686493054616346324719117304531885435057385054433895365209245503181814070866736457993358353904530279053103295107586425614081361959893351000609956684750575410643119177738601924534956174836756089834488880516235914624758526132782425837376875473126060332973689023680147362106917369539734049409118018582614001802644046405858369019385278440616928247522062465049530479208693601606627644647971972687935667625036062746266732446427849360475457083369074357262006254402396378772352036255761220092855920406250769090405414029152288556077341282594859479545535999209803634025083979449999282624812149745835075913268964131372879934387703524752539202928342177751783520691208908643336025034596613739218752371149218488688785787980112512030042680765409202989713998696394139405455683597409798544967087155923195548121940896064834929007728744800316523021299277470031663445975557973135856402362002952093408807209846471967833365433475499764037355354899614469878647715659805456185775575397669857177434776010408969081374267533892254271125176007932595675017448946844094499800255278007731799827090098736321129488762823092834460600662165097899167143165360281263396588290873214437943687553246188043388380665927341266458958869798746296175446842273828284223543029528235672724602769281837473417484819904614709219873356941010286585741258971535742867181494786662886960006819111639147906079612326620180465729862924923356258657373227914922983724369765014109954550164619153714175072055400671879361499703151560207620737844043492593970449567468927590464391262435721715320401731074251778512716920540254376403022557809048311046851174594460025717705883953588212403102593342814691007412601638449174809858331001428582784622395918338077669722218364132354423805808455007738796201840272431189126197415360792584341396278584679657792593340444498459146069921531873088654166842948235884869071635737175988359260614466370128939225764126107549825808402207678242034876183595645366789462593199444865312989718480979167611127894337354025851575953117491620990340735677467033421353808131734981550886500762841575534655310714707701419696253220830723889756455651297058417170754493961666319132579029354759081546754324867926183053396827079392091842201053705757622607861845082014992679095173677431980121543201389856304609596049699615954206040922418323404468136675333037889454993854948657494454681602739118649000048099741619689360890487515855395090881508258235418964589427892584615308827888046621208253679932206949817434077783718028253850434255181819947019431370945878080251584456088755327770700563025454381671414600296265878316836843110668356986294164536780800982031595012032121853676852534069223380911609987477282582831496166632743755653959270705239978861338918771908597361639712748577543575110060507086222770536198438629027471279291276023180168317831184306093296578970117711440789508167371958608023394414191205192422423438480628063851046113169717751815505681893384033274219786948223359803132360259114398089098424148940434700494775882305788361493939880350783122549407850553383200335013623064230894198688461108020254333018459820751578589322654323515408782993662464636444215013302421730277576850986719888897680548039755912889339141937083312728189503184886750440197027768777827332925396294094836393415163684953292418637647598931989670410485022745603842686357203319491013589964101539352180490950981022742741593516066051759913940253338073907222466577401537380725634756158597688233182533914775165767662273950922210723672894235300817759021068800034844441901146032902540427564318443530676643450570354573816159892813891249310055147845737427574919357714527050305661130990859862934371605583271564033540684540841246029733711973272435813095256587474171724912637068947649024345703322131605233138276664730629313125593312666307336776087851921318419023781804083018378544216947680633828241394706330562966306883700218470322495873213946568129644126408887630698794544398513872037271505427332804893385151754101014894078590704913975502044219412982638606307220890565973509457383244285697957811202789280982138076371958199576148658230604272871056616024123958242545142213977694749115322925683737161848540039083062253933458564552701444456156886372765235497211179257700065834906975137013929191641940609313876829514640233934136301760852608381578041967042870519823839527749487022307158859243550675361865941555482990590334731041637875083348536368290757679422882897672151512267511170953038713121334988638018952905773328531656671438750546564573149256032509987707547584607243068915169914788360271563749219353747920503032143275255094201492719401666975068414932400132335240205067224748965281723342565853378128469313308026847252542685712996748659064706451562060146042418423279650140796743414528431425431527578573294391638052288350902612418710327277849763588729832257271781200237591547894209672196168341623552135625263178832107495081388390969221272465166480993134211921547395191244040934535535352669957237370433331328121921470281628622302873745778369758308773441416877358085187258881938686180351002644458447744600399739881027123875112008164278825468144954252009793417351442091400366137680932435269354850447565075970734638539047744324374427042475288684660998380133672765217498892727282998228414651209300068769119543388288082219393260142398012187227965643552736899688315533186110316305283762239527037117450424682053693310150657073367106480171779696891695123768410485791817652820295906309842249965188434095907132906147097962247406369568460940027937628479438513078274992175919450832889849702302441002505264788142697605931810576564296760998374620289156352583382555662901334847775584124488988175219269476994130313874325750942699833351612268165913392672823413806344188633628613980436377902531011424473485579214609669699236289086889241781595143941510184821970908788711592046295463257543293266084426161978186448263758263867081112097514761427439172838137559195246124330392007808799088543346746118280338043006010585240546384186005495024350527012703360034311198680028729878000560388216700649979612876696957156435484446406503301406068654543834224082051246632778217032091099093321067723186893992335179639297242022007157873211494190755040957526440588139038390584537779799926131749836529350325980977830388518290754497470588582844792588009968777751960175331224833653490342997424055652026951017944249433491295408473844358728178056397690621941348285790167130836481098089997689006729439720578770411315541039321548594972078106313713270846060743974961418559064202328641446038215810174309531260015406390124091497377073009727098445131965516627113732601058562703546714772658921281925021060346271949303565524265357675223136860178365402557915770425900957795922734736271627047063070199380325929561797591755320255867788403354782136109756877811963704350830970925327670250085924287932025981384910508791247242411640723360636018870173214922568417151032361148444537389691915563139315057024566361254266512449575749988317786388104896097400709878352823127706642636146670927257964748546481871807137709211862819218913676504151117239967901752076439754959214329603530778491743489285476684382906297436468247508720200511608471371975310208441129478860897993394430318396111893040158284336800552450071974391949957441330698164244472862212315595887466020697741843222285550932088527146043923323208118342710112259886732268556104746919417355264447682856138600124554368542408118488622564812306322471908226591355085903482839600709509405777902451949868601413457086987552798893565451542290491566084861471325601766062595065847019417852232879252703449988700375375229722127254185018349610792828865180247006580698794981862346777753689092562868005877007439669306135768193025866678995460734321638751449854630720648565132106573090798583372162267806265063911378535213691405568367642795534946425623139741782842806763340660342327341614252372387053138682210852927693571451607981407855087000316566238679893205529469845342118892232219625982304053631050931075588681450411652533568847176520423219362576639288268274377911238968359228512127168695434712957286965385035274558637090265109570277976874683461840726086726493915212778027307355996148800236241589614156505784096930690620889429069816373656817926268010748042409192454797963357077716460352502574192508018399003039892748999645214894819130701630746786879358198755836440839726782015378162147471659954147229133097015683732439694967822387878808775247359776012524916830994810506245194042195668613558878918387164047127923538256728200157095647868732249930102688491875374436787483118304890785749733404515404286242841674700953722978505151168841109138634121215420161864198989974764951337260792827972060438499905261159357538501639675714570293484772949995729047456486472534178260246229314185161693146020663440878503425461479004265678399813352705759512010410632936994104976076081852436601144088257237940040530150089947089067798745960292097807795791206168019512849884713221726574336641623967803804520574738096329157541568450261411946535118739618874681074640358142086459960202733890701719016018945260607111366371990595862017370381183513087668196306576648958838361370049263050062771151211878721459012618300780284319439434832078481019845858918668370904860057906050168845572812519232645740886253069468359860280198100673344781596550760384776728243283965687288734720440650295039363926004614211880120570952303269581848973450796548386241250161614391106895048398575259797822536244389903199638161526680099569655289508218010592832145165062871214022159281151816066260126828122966017332377233151636101908436234353922786019041230754720016988938560354991590507074082569894766015679206245121752458631626096566698453398384957303536750887350153296577103125928381802557285531958829388274013575708503474075086778517010378144053372299373137872664733013936221182881711851598820385310777078041456526851189799789236041530709558286565368808737376424648413715279120483800311436439467027734699965642518853879835738036288907516533090889080143946209349050782420194749947223480184827844798893804946603866649711339156384771580834203544960926737146540097962019060506260407997599485548284146943051887939861949978029981190196265725098986447306180057687041761994400729958379135452319875625090261367025107264171198950688131419469426913754258770523703033946544622575357216109762325873809563577741804831800629907657310379995093130368716260972998313321144968009670176676257559023061525244754248622789384196336099645982448276823413080174537441688704793206403995328636562447921283620964812103488264654348391641416631668708386127930344502255684923372062687055044212642765937418007289175530201572304509428081768396289759056028878949485583178660293792260066644191889374437453947432786305984379194125272039552333508331313379454900704512253671076688837475423393488794779237515637111739758203710381377681556176498431558037524138585017689336708034952453779484532557229037848747221704634822266057506779854186907054198548729242421017171929921829903243389604587941013762074639541061776114007793426488603613570195384131601659473751278216941084829874393004470796693424983551740430304330817572488008890283466789169950817276466485251985546659652358724646059831106897782510413664186492926467206334455090219867536739188637548724578039719192103091710067118454032597101319704340021970171877785423600431237382227574182991523264854067596954621624013639572792985254334920100279269687134174019259806419868637546705007706770906889593031226354213862361280453973925342106563496595929442575044841497158326285692182473528792176226006569193913675462194077941701860441243936966437100274791783011023958671510756019225830406846423539459151582712764963802886989943337079159814568085013154567507782385960065651548062233544092767994671774225491015994999149565974331897138196266248098990970234880896483405294121521465764326106387675294454389517011509331200788322234495641343219558804961171161266582643633463673119444449113970488544522632314012150270834088130718487252952898112094950753319948271230414130960876779625773700384416812475863511791368820008222672886577144238966837511124671433918215905335978256428041374050486766306099507725087228889917691100050119229022837118446413477557983073448936830877807734765613985731808231620489034184916030838934655165317205836776919796861581058594534784103490094494711172006209514096710539461493192660709144681928389990205943337484595552411898119571617252762092405430465679483816655064115445481743541015150478200984382239220975229553630232941212321704848666114272186201455362362994749814509481476558404227405377235245709867268938040605197510275355104604674217177804698464361439993428866692284913529647640197698569718249867632079292079625408175761852995167637433114206991674643320730431346249849982210307773788518838680025221774011921393995878427492490787467663933022672055948812626437638335235651682869009490249679789882042038564810876450395045217430376949258146231646612511454980377847098042591431813970652085740318980668699868773922489437612397195470736815770321867821573518641436647968095880234011480404524541148388893338044099121921799498219088016112267181793621960978990476126499036007823164817966385944758626840088482083558840194944907430172879162743488959683977654394964556271148609509162550904975761767688978258311967473199370901298545748206685984925782466494617183024469735658053165127980970104695816366306919493808496932294362287466216370160669892549182845292018346296396756380227320560142189189834780626698039962207047381606259480821809799408732810082333033444883590316388464455897358460140023033471369044351328593466070016995858634158495558759338232839721531122060678530522996775041712973633828939052211244952087487025273368763767680913176782697974146702415153313550939490285607107653488237446802007671688794678790125895805931361862526836337176177566232212221000594075381603457360236785694605029239182512387499764552556993312172867313558326313606636235771097226628276582687285299505828525470904466414152713170324336554308282992096434306533231502005006034086243550184114377615475399714410791815343133324221725846546542483081324987972514459481609650311530352982200278597167943456088136586408671114095432423762267177617723507782361778011053484735129572396135023409640823313994330099530984475909318791951039037461278833992306383859623737115875829158090661439568414945802407364753832893728071126093091813354973953914954243620743946090271625735141640002980673658288009388360469330455069345643323912879937916652345322591074327049498563816450256621484592623581508812115132942947043507946006291694252624482162891796383184383101700473762361831414405385670884052310162587635779234857060931571861048224524597182771841006978009634078268033067386061524561526756868559847272287885959123085221211126972991280246617111529298290204490304455164769828728741324442258949628537528487723379479819162009765238901499573446307824667579797228120625949448798623568821034330365220365717987511481428292294899412145107724597674680110889697855255382865982839117292380312367894988032306577147231908876238272069852398470352550641901213428623650862765503529419737661649386906780519215196673549593489748270882812393163448409342632755686302845052994328615053555157744449378813359580374751226112845923610392373077028751154315553319517691253816444569648812371756884744429481372554587118735494080033365483065279755876640982771768160851746039999339130096559037686693047144278558786113191630104591681984377508505928798592189455034971774924108706361582643291208304547315183640179745616469376962811315466920924767136513659817507238411412395232871353345445310329596568900629170961568697406098441368382656442123665974014265151729679502459514701612643559544929475949251311283678770833137765150809337527627768426549918276277774157637202181548202524869678164680754608156231022130465373438978450023058708814181829903823105891085010518388211999309039844285845426806496091143641436526497154190793519004426067509091741573638453486405590363002133065894325899225658423386015770269718190643226435498264017419720326703533261738091998656678462595946017784880524187433722160157475149355618707021665018471014645736870969097911493381505008543948787858405451848961936345685817142560173452888015950319869438919769607430948192752343154554402448322657148517698832971534746457451036722892314537111641420374901041020650675491128868343448620610034428836641138830278236430893800264470538103653810650077842104223808267970366898589098828146026894122316516065817755744318499230329343742443873934810260174371324513020568337546262025860759416463310535468910358163511714085671423804181172959880024102842885004683499356334683799234160284225535549276439615784428180723731556406980769399063229428942722690446958116583968440447432291051631004321440041541974136471869195063623447586496361684966525873087036159694899714370623513940070389394507306915337967643846167492291185716035649221388452122463093685830283104501409493976477504825665287913783188383399389766896372689125851951880144189992816674115577925676810074964546223773158513091031070769039441187081004208732320034306126770431833974791827997839764593552243654398191054655852530290272831127657958080858914840203152283613056409430529451264070318045120263372054145449025550966644776287933224773951415579526847919771438784341464536153919716429190022693226339115458353617327757443279935357799897341114096142398486331758254544690137358428741441054543110598095557912672499297528848297950757622638968120122208259548482491047707132403287012646827246341521545810298207085419712915250741959437672085230525930452490576473551130099821585978207309170951812389291046267700191154840940064204144880679926234280710090872984781965686274249622264688338950982374025569379500595710840150450020956762531740612235032892654177465947709565726414360596968461716066251651774841179974444945120505568282213168926850708210239262245457215116510088471183954278192675159636191204311111354498035763298568492432780946766402550320158470182747795949715889533987348215419466594549622424413130130452116101754505918236643870883523658686744312494911685873456711437529186277926692317188685065213892121644642237744149055065155538066881197969730895216154958742169475001295237105239196834528506292710637614325893651685523485133422211654461102453038618132005082309288740920861039327608640232374318831518612056069058906900326232982342799769604608637484288064365515458450119247297269585765199051417530422361353371271786563124402387997940611152949868370118264199397112816888425933024744586173522618292132885740221759142963407061719698910842268380929335352035413568855491691735149004655109902086811209293936645577833648755562814697794925916787214126930790523776767176631964881526148858526863536205352828816058943898939736939778126626526614704957122663032118978479243495245340694755924143005194225278913395948710609611598954310115398085980026458875634447068266645571198084431009190019384484562547057907091295413168251066042713160276703574000868877357431479816582704945058308083411227925954570184219647938264821459050285821486409078492830726211390323660287560532755517065787047070158041311516623175732224426808013751522621593715007058164020352175329250590039018967568702060082288965125359513272453938543924647257332175478760659811695277298062882392863273176596245616842100187067184581381303104515633715263270380109779569412505314133229851644411813240965704280438029136813748763707400291618261585718094208229611259769631034620896283265769665635765601066223313682100510692309190831446779133945446369259914565572105020621515143831734829025461018381653134705283424058217026497964202332866007869207179398440130424225212407691201833416521255430452957944150703833198903440519689491930810663293815972904194062401174820623452594282550040427907337826918271678691727360139072164788659919388706927735815421087105347597942080961505430536812744237743223807766266786230940241086334777579657768149388658816584921672513202054774016554474052170103572159505504615755327937695968115587289812343132071151451638752608916981987098109800196779127300173053201318239611808995681315836198555781821533209823620124733450186994248439033317730306944463949399060872103986628978174693568721832414406221471331241852150989806202472709464629131606991098150413018274679571037088489595578430744877331160574974138843443270021281665981991499204067404396052528973460451329861766758915899597186601128878243210029499753418208065187333401243757818047192853892111711517547077109884803873722124848386508430012139932491839784194400354524936874705667478054232787418748865295714050068200245647852469852216263029573577792627416236877586265431679227213407001692877675520213578169186022046525618584311306583410237535224105079997573030475008803665912033219763281540787956643290441670527800662823773932440216656331277927342295848386138929884261020134092485946869282926142031623674214257317202255569295887326665123586379448145937044960383685234407830152710209035144873479143275510716223578885095069612697680999659896086098652959012468349365394044070284235692823904705658843396795515514559568736604362292725826361220450730508181075730403279449827140305791261661917391305723260150764604934038798057042474731396874462368668184814157632670142588966713739092637285151389028497125432986650760831973796700897187325656469965209732650696599621419089996628188463565985646798479633113930282408181089432422182461880152680574117164251001101722674118279615819504781523331089485272912218537275752833768734414143020490932337736836086318274885494400127005056259103849063715196120612021778189214375667243297843661462519304850493317762759348624381423016746230287636407499295786501627203022328683140073147923559275789602040807117594437276858813678401192013271354206348343149841624351767137000233947999675036522573445029123164776237486267069307087989083709628082273397204574874043512384495064940816171207437216166471736183940225210265454127557096524890029317417820048245153432468673524382966868874059916549724597186417684562444994100866357065303444146668511747124442975845452171020897165586594062383553128694883973242071265130388459970501307732789570685925989766283934012015472346652495098407466246258261264318729175254307944586725572641219497023830645122847377835980662798776238854966273257468044304252729378566268546825866046982364667153156208421732098686967576661084367983972441709980501567443491100990618495029820534575739058380931681487998027345529282877172158945574385623265943109384791743467009044154385658643155853442302802745583126517093211969399368567770582504049162745938819507178214694252818817390650466672449496903720679889166220509096205175144461514493800008398594587444055777969027453050044486486262020281048630865046751469188930886584155124457585869180755750558001078581492674153366940684058798066815843827037586642700417197076863020922709733146700514237730296468527132852857241395353113231239700949107983076610933669529927819603595679651910483214596348342953728525268569735755626320127404128949062140989676392593488944735855640372420227099881688979278598630955676804776486235341715560646923264273527368305527373923405496515275203774007763541585736298559913131940541993314962907241934055850765031955849679474262979823273325109990120908912780162747200123301153118876172939855620565804028163505983439430365609174325846322891599733941896900742417766619725827846718890367324693241422401634769943634901308419480768652808430191337719387053444272965733964637092969453842108267774975640806178175461213084145706552429924849524504772143248127629671817921663592606419339146138257081591259694145134662480005817390191503964643516630189141252013300419486689818439807948787019919197856937039408695117912747311759739067238720439708909292731419547384676665203170689256408731739315775948483117737794491818933502614794454075327272914998128103024655697262571939966568444259925394856424746412019631938918043819347570260798102112743864211076349711224592217298782658982867075753319869694619842621833832407748571282931731640810621458777981553763924818364387528200142778209028017834085893288962040868645344654143531364385870494439569539915901073165019609352092056088830090399423300132342514990431390573388523842477072743885856340411321461144108775164552222502055966459349603966227250004632851507060976600581568934303252689493373652828360176270102620027709276324578613742452340729816642146948063675478935924283712141149889111703429703933420222195846570519532736222389080702032170839925774176651052551760015895423442812417541773559332743415312471995004865558216897809298107651491077172717518041168630639252737226188793059531926163817818951558260760609837063996891469286506644032969923787819940717307706662386832090923985409891569321513238602854916453318208440386605335340105964606062618050895740983361465648133183972150656951583352470886409662869007756007530244880669475741437693832520267772176411093468438825758621666658299314574582237367214538141948010773757737259160432659450276022230682145895202948558397689260114073278062020209602172561973517096296015720179593105177302328488809591672634841952803054581530471504588482247325362632428526536489716880275884473111412643379136706791541064725134686459669222134336216151639303847244361782315495152121916529912130200820032499186683821506745424560812621276472485137542383903393723272150410737188575984266636835611919901831735341981299934253496206393210426804367658772407654760546480404802796352674354047389252051347946502366548286456124158703004123952462999505748181078832379161315489641646494627309252715168269884199723524090873327666080586759888964171854046437427806492525445160754988633194040826782230872112453590099115617468180403348653527616796495836865020845771986943612621917286642492131886686542018815704994037573988489667105722437393103579482807127533674580746653755894983194116008507379396914277571721176297127442112672277740910714210459225080519241140458547271196688852582832632754136336190424138400632315113717016434251573015965289605901223977264198806623299016991833233349101941829907160408806465579301499410491704361549099788197167974951762099065721803538881548447607290023952804368572953447548247006181655087230413915763515315287897456211509291629632161324688143674238442549050083514510057208949818187638751418006591616731580623339339848505477459497973022184966958608115763472962299252879523621848951754657888444967557395192336838505908587509092868684580412096290620031779437449250187861262117754483346169631975347695006794663585673898838029856905129528027732841062497554441415613009705420765059439727694980347021872426179167965450564432413411356607585582321256475172395062107076653961755925937013729056099300766040377296062044877850409121023343724026968349132511999449008359106740865708395697900173321328524435283427161393631714846530077917133401076580848425077318563782221400629601558664862882604813512838051665766543794710742189704307174473797942738164839110081807116884260284451280212453280009790728136665806488688692511045580126717996698395652050755641087954883277285997006651473926155544346498350829540887044519177255783519087997829127466895867190947347848504515412889190139512595705006015378371640929682756494197684812817222653313646516744385738590448385184703050787835756558880057635824908377278157307094897003004965733054868755514677300520847775887742858420290852236552116505074842746662170091669886340496866690266908873376305603283782495027633137157684464602120118515341255149587127753351320653561076533052753975006874937907614400815303422094953776595608521868229398420793088520124024933404766051956269610570612558667565709875572584021691511867248601985759005783897200695274053888025969949585612261832843809183411607578948880084835099360166635844895469267637695829630629579014950645147673192265251614962770004874687918253046475088679980560618267009145228930473043520857403147836254252143647771838235578904785572237100595213212247354873250796849993459024296937897267629815296559125124716059679040749521168970864325230007309344107473314187513069886691394762670962332326648132923244625717912301311305714546441863198229757337690842125096372339237361955484690483329781242942743157188526232174906840567744988176093780659258672588909813411968145900320016556266961325537911489569146665585877493862517149349681661829405242131410283454757947255330774418292655594910880494680210285481315187049800360671866034031562353506561290839968750315791275729277527619850851898460840955241889276631867363121043917793661934822899919345626565968346187304619402390329024350306148358167410753774447762576547396273404970255613076627817824857478194549411926614569791048248399970639644362761865735678994378623645164964828814806635642833884726298518019228978150405860290789695717329019940285057598458657214071428851652218809076904098113359574326595355650027121010190541227214511311487804843065604110036588533230827853344475045390811259883718989659135993760395774596371117100173960201828165945809299966256887330212102680953383177149151979104715008388284974594051519974895711384203745859979563303910056482326183819563991051936478425474188250247499036218905835039831130859945680710601127925164415180339220565839998060567684287367057599118305839514026623965723990906853306700957292972878887633331199458107165109641198855854993499241844214705345895241848580112526664447513771516129980382195067664207019059795554268525054542483027115343432529609235122802758679511157906307806607532593113878378481926876734165190799697893385775558861688343430975061202175301369876490826002505975491751966823014388307366802891337781665958710407851080811808942900968784493205786308761689963387510077884575770895874098886205957099168884453456850083705378644703795149327801009214659240835062430944430711174397661503442894011082814324217201543145308069535031805034050865738788317650087848505881313501192275329754976865696299063773632903958076194459789910519437352006304655896378495572766263237485963564975778892255920493808122864406284631796701129698844424869370512668879319655505089487774608892231652377498347077448122031986069018945860561875817166581608727093921037647595143127607142055960125215859662582772365508513593358118198518759396895693152382767654135037260509086370142263927812682390529654476565626147581358191776931189595498214121795277565635152111109892834776801245358722042901000451692806436919033692729963720262207491217159895135692687238785706857849823792550999696643697880117702373072156049945410510527615449590905777091485653357794752341977580334546520583926890716004578315333482689968467116615883752562005839413597601330637912963836816632542431362974092329425698620762128017008192055011450627918416204273556924875114436961040286291700140962522145503858010969740721789654148416296974357898134485344295895238489474335523720542994531340171281780259686046674595577016131409341322289755266770785567594132365851769229443492816192337924818234255175615156122787819298137531148288051910049774612333613681951974475533891369232542891193976484058327707799252933709929365832099666874913469409920786374087976190177872653298913797494546363811624597729900623580762878142125320601274950274427020916646027226009480653097653358459713943574531758217719212027271629690731872024326342709778878122467742667437838246291074823917088596927725190052263388134272593771930052685163691580009237845621270218418551131187930644042941241063942272230295712926705887012930941163071949562016512799707640006426975883687431214811092084539680481485690771858303791923655346014195764396445023789647269485045600692963333479929244246159939816517108901691400537268065139885396548747009834035713406632889538659264935922974840642513173168877900008109785393423188977182686802139075221664718533847531963631157130884091851334607623030774113084770589474881226898171843323009152049380264142151834880075708846965050741817940707566167978769714591606296048742825108475704834303547870106091145030892599778913188599783414747349786923516896467945297641356307911216146828169115525579735281878696750524519031446265659307214745622534241956592502994632365584871494198834573488309705267757081423349755420068206329632996342698231891411447589112408122770655212837131267532535493246276196152361001872379570667571030066090919791333317407970727220409189613096462767432860385476815128422087265816723765674032411602176830353869897176211487340929799037373980755959897077236845511508961213822286368025816616510102497301067906063718791052568395046371536026552721524260383954711844722468488569832203733739507116389052723542764614992756794822184155233280629066415834149957937720921145246438502399564353937567620230680662233825520181081883472536138463437067624246755501435479293484348835553256469888462026871673826426729866014353218339638639221959694033979898696802506710350832007066676687663467160066989258452592815506054802204883455509288383783869441822880341876672813102901087567714749155836187893141031827821975111253823611201365451880896374569546408647098955751584882655334867530997369515388318791745942969679191611430163364028989358035074974550162561698986426504299213420661841966710207423111887136915787169078859600331167419263839397705106283143382816723194202793518019349759711597504923449131830725979671109445784875586967169902439936565679639971291550938511164176547662856280281520492479071210382040917841133753704442639383426020153985556246273122606410104006471602938122847882093916082270349443321383408886980629329981269432092236257416387398115862824715171533069284798910242209699904847415691707134188645417398467260367843274600596014115598899135763066312896733085146963955685948665045092758437681555828064006692794156182011176378881857413426038077612700244588434183000804040707220822960580245739500005082674192182658348409345113321197632144365524371851060956038253476164669178200674261043014629494738485049562365897931610839192546394853250351386299711281068623243655109295561339771382835077523036583445874941280712749040036042085053587594997913408681188063264545483450756363493670430657118665668423034523391183203406230885080504431961819791633181743009828418362757869103880432325663805602805686541661421668689790818577632462306801267599468402297079217837864959579720605431954009293265596058306045595911352932894606820351568914780359967984846116970019516576254925240959233269073783201149988117247667097812722094456153037748072041083588286511325869296134183150407308853191788347309849777551072050667535266008677996314192019845618162073434983619748773128139339854091780394375695753886688500674615574161860986588885373220636414595963039886375807452986547535336055857767459645222293802037367160074018359375687057830953585801149097349797895447910951210881322697924165504170518169709431484933630294993062583381333078223452392730020970204187547934442555594724262213335174706492272508801853687581174309284387723733892964552153367742202433635518772976419325021001450738118725459937159569298683046805045008323027609125452540618384960024643851146953205109465515224227523477351835207011196209154416420233252032818368602658889058264129042386656749965050885073219815941542048052683908519815961596571993144273908477380120375767713735191208068034293212984613261618190048530447756673472252505095257413084455438313680206982120848209959522819478576444642860027866178723423197775375311580350889154396821353939297963647708202999625800600711856179081119256071879035239638951477568201988615557393060676710738245196783725135272787151473750264702186079092069381501863587312691603313741105309093632892999953123119532574179388393198695673098670060116175179300387560525020825028775328864104258912621040994773062608736376595438286284313909881125800905913700832045054403642212656771219043612548247661362156779845787921282974641790706986334485045619441055357473917259359501076527852987961949169909507616853440820089310394458983325338552041560046807626321369800187334840527137657025080174445062719475017856850695350162809356827477229411808822430688717793184766479608192284002874476669734122561762886620623020345337657156345346818467043947337037080414166239724344801078355127009770280154829660287638214584244158107942789043558649586728484874307775964536815429893371684355029210445929260426701991447811980312675644980160601334816300398399668028022912393602874989051382317548457547597857109095032723345817078950208693332943454625046637614848140427462576428641745859876921326599144356828041778315110672068069331518409782489769299428094266817180818588915361614094327672585860339784401994178970143277277073289256971510150568482536790863523685509604790975911981065976742853457405328373329850075193117745081581736781612678490835482505245240081288796413450364242769728171800934275776257917087781141943937787946511066895710703644455028191749079607245396370267389318005291861967738941431946858494807521392836832439731850666152008885183126201611687800412766792357965080049942398582986228408032345288563378576623268321265018745983332007318620896637197830734324791276197082153184121210466393165014523169735577921720254522586033761842135791630786597675178341560236261560623947912073653413468730849078944888953695188617468857242634729552707848067855803967328821965809298473394315469493470587257009335056499909913974768181144347059247391307958162028552576048828694168323385606034253478419726937430779455435031855098126321855567549765527576741660176821768533930175087339492961241463770318360004549078884855691054027495432430365906234011152683868900800862451382168417612355755020557864666904915910547029148731350642882097896378951951547410329012162625931995211539035562839289330090430349565061997931303219205232569182879185245370365969835253420926809035643498279556980151806298112079757371519085705880414241437771425681900007790281554027884040934550446962653211057663225462948702387391024289442487207878369592092351496618732747272085717723583316979086585181500287040251328489656252636492263851058226429017251291166116742363087265157213639131026412445843011892168681485251334344732597526125521705038755919799873537694910347876650709884798987220255289127123898098868930931846962025566045552476397833604171020239709743317064064116890503087399924578255417587868487727798218018058887965801258449848629999942143394830953413038466738808595549411514173064766020801477434184151716981739111039296364017177187040679082007576754245916389496291505713175234698178077840091972530401972372920653047489351493383199688101055579908569216003168873197150801610646942395473333792904036551945577696953802136057761539286310401753303811970183574118719726859595880309695178896202561263437459406870395526651137858067141576331741574344049018119965222143798024476900396103723547724138860283284361567473820986750742235844064137234001612807391142464411803051585828364874490004591007694575136781712548427860313772651367366873731788398056170251606027338765118776622053508920339568801922875684690444678868058564661624599464598119687633439070865330711033251240253356204604305713158607853508272231188628859547102518911174471654498166452864950462740896522234894701532782439450328144433939791855466020668980747680584630924511971894002633084961161219443916623341927983365788600629244052869883915847489196966680837591575705061846555383187173362320931907873956212570095086187605401466691077439863646300551180051470635418235740793309348467493673484042348626054021282715941634105640922003265089723886817169613529051775096280988134370609019259211839994671943788657471870957058250169191985078276454410528966743801194725615191370823891267383198669541527435693915947681189198725289069390597804636004593790371517585708521381545209181905691135115367069291763632492664450856320997449278386365425606075872009617647902272916500186237175201442296787587938249656042952230002398859206914973960080711856661689041664887902976524872648240103439898371159690446371790321894189357506899061468242771365962218444960221557519036204342053342541677858568079255683796176271750688726859449902218546821314083823445862963552704994629726089442926098302226223739656255189518734353551020210348160818044946076724038595874975560925201054029975622127936019031092005127283958904213257396145363495643751923796177004431546324126387903452118100398034880366940198994612309424348097704154224400658391775972719591325516178203038524296127737004062286608963015133802877998153496279265905106433625060529562645117553702197522537865528162218167796565644828156420528564546409592673533797738367917881032258752356140513598968513283037032667475782564739036248738711817292263548561022602395567710596065123230799078645341221817118258889368388244180501387365225311187467185267291555755643757364690790246165876420234502161844410264033798153567152005614180966970307719969703495261951823089261301721517410711769390055182507863139291904172696149813204854384606304187738581173476963677829516090525388056923746853724097055659390173875841375678619970458171745515330758030926323216440636761356197476803754596177234795687711676333895637155266343284896241822673616173959869178936103227979896838025066472788435000418137756017106460921056818734638402082813324277721886998203073114648241535959000796199605106282421332837287399955800983026941031970099610758718073018662269050811789193231171566583634059842430170064406173128755812477272350553958669097120872372188031457058507587122961003085781637006898300082676826785628157007514808631202942491374449250624792436710599913572253386289409871427978647540007000699717495040121220935028096715088862904829164362315966374840554509046888270131648472331764614045187493478044448265763737706118866417294072804520362938337247067158286438765889457444690082366392209042019986968418382113115565937752111024476837170814714257425862879290822409117654457554523910169326920015724410930990716891263331127130241019223806855239475650985430547584252535723836030046642060404543040266220417866075362185351127351903917595713461249087684524511286991341106609044749312966797099981000946910752270724308232162154582021718545856115662966166787174742191459648419797184951178972192631090286006599769178603561446851378995251978528310679062346532185455598646262097329314838050371022149355270181058298128360699687052205624706290914848339605779675733257859756880147401993831633330787558718622214675355178895419764748126298322260275067971649945288329888335522154734274907432542835056921412261448158549148254682466349490575193119758991641371316294488104199341834951121596035003656484500032985708221088207097365501990065887071513759794994001815584979051870695620079290413831844381965110523460391075022482384034514040162098027506370750900993823619466786193709543201035781523737010406837512638959248391722190077441567608980495346693357501021878314360867511879497631348029292490165635520823070405983276060188414133993020989876073621132767574925139392508466677002931428208647148696403214410379673400160221368907673733761167858157606512372112856118755627916546249763071562441226675324295334091449520647364446152493762777694074259266735299123803192782503533670824380677685131513097328375142527402533179752567635558213957904356518954648354213509710950693196561137746045475691794268494993650186546363285464823418132335334316733539086858738723311968745898164132819156776157697660509295724847234430205442345366140180422920617307743725644217371291656942623090697885320859478199354015088297056109511819617797547691200910132764061944520286660147036148946179885985116264045649910426917879295071194646765201810111947140202845321745519881459672856784743131319670226982264379050058512384337162607138646724843381577055808812138888349061990667305246038881105437764111923375724218170530285748278043772352133915773029182912450387755465121536768518796560987175700021852283344023109896399325878123420259237569047210962288586490688907041623311886128115078452550191777917338405949777341028976850941798068973026850575758164390863401600117116135059555090640547369268173302158645511523745026579416703714863239256065601873128964729302546135775842957017065083334752923077302656458583239655683554731001307112197849522441000308133237566628950688061721236833841101267004425204898565011231468430238678229777338502113473905931869525306525901603847813612010392218904584764136897225038553961760017566657582914347490007442049809044014958391138317186505755095769940190500932955510988604380231116497606286388552615958153775201418124272110345790949737601565681300914038491764663031441498581838013018474160826279522852173793703977549397329574795865853968310330950097340313233453185167301391401984090621343869396905663195912751846003891625616601206181664549801495648655304415712429684944028859782037784243364883384756928526004382707696103804364145951724473901096545392477183525292883384328600881675362536780998166026718402938228133150865949585526797438194463826363797920318519229080521860197727537101268579124330910529766891723969281644774181930247965533558435144701510175284432016434549881397926562322678934629830795293454698359670072088670157491406845662339999761789578877355025903045924220960484494579047247393916775582288539429610699770115599513065671306910274970711333748360537456137335261358696108213760110481223028626702711858694438134091713433766668028874420383497624922860638718841601129670061849478538183691463056677622274119445066688485572283310286235344321713934252488875585270860847855049059546052231771425291371627943335751355189951391021610021228141463887374458838241140284319187359957342541597260338251936844946858694812824982276604206429068937536258900547396495492819695101672607545463052815773748663205675043246110045899563244366995579910899227977785986230761042479832957382689374665163575540333928491839440135113641866996588620016215379616830607472534188841691411635570925894273777877409951575188700544916420283086302475735361257516020419803862798617499905507933827888119691480248598800230692414733026324694363832286123453857007748764760201568726522781808916200562803422249682677756937238578316910627077747747991611114074005275161341412630671737617827255402069685860017293867843142743474603238543013869820995103353785066079466892397409296851035305540781011480658619242421504617474419014762059382174812220593634186094242381376757388631413970283333133276946086758365857640335143463174585583860332548855847814498126899440900534310366889535106084578777586842563020877372606128564158062308482869480054533330556870163570770914288631544658562736852371284837009338109868657643002370270175291296291662382080301545862055832107606835893090989334698393279079939278584890164639466068233641886446311604414823263486551987048116567099721465174253321161405005322088343138870701459898739262683751148049384704045235549801445490610614815820847249198834533424159142846030369599526244561497874132506017390437596578461207448262302079324741532339553919850677869345996979033717556874350700406926736637797457700370750304728932206422337140638212153611697946543319288639805578272095343708584752581827515049524568325592007444737590382204829407161145081085974379928636171297446135644642463051536524283747211932016948400348551420379681736862181843093611972935467219264662297648141856818194162716195767515633889646700588741100362165624064867432710220132572315566926955549419175220915194018427942381032523677658432394379872626504906526409222596327309465042246412421706649758023951598814711727892561758344878920051917971456453298459849322620377705347681511998568037530471608952018547863929113782118622061863852786534574856545886803562350258287400331844270657600310125108503229486742296612497894946255636676752358753943827521415646295118768102883515382455085449439320633119104480018639493483158226896994213062715956188984843291215755135802512907868078233468500885330198917371109906992223745188388056433302553681700349228163543340476323455616023376019555793359953987112359040768835456257652236447497088919334814913066368548081572478060212961327055573996530872882542656591157159939525375804802896947334356360859108017425250924783940269730776484806805864268864640356262403371903833167313922989197760661997381869381843194123114218912354552330119964514831599268282586049778742957017966167299785395062847543549096741442191760335771000548054100424045976207776712185258047001441414949006148766906736600633599279234320904146179788723497231497469568788572798510744487010239044633861013770512300408339471160550508193676124664299698620161276564238807391492198778636487943616275042431067846507679170483545256829318967840924331863506370235890269037444311511912848016978747713357462460081881182407692127170765343349804158524294453956085510212545227525487452133561849737376809923665084290945402785472575932710974100125804948262591311017319216429699983064330630052785613045969054181382039792623021181240444515822986013479494079109044562417387089621030658831460540097125982567475744741496506070554057988770471393829906995333776114299602273034180318738884230862945533224943270182776537180855100279214692243093528505528576978406520918058993524527807165094297148560558601716537014638812257757116077659970589668849235717253698403368457524818471921474526005894611676371678019821097121933169598001716530925170231954401812389536431314785711886173967421220019291286317648953393396928771077941160384793694424886630781021498268027435020819594259309846632894436299919606311755476260842832873788349936193308012849953843829486807667903606839625296899146528934846402992466751556306313470667798130814354227997964713412648352915318893032916068755546368755483918090524192815196006245509117645031257926195685889441265795026595071079357978159142506655434400487611370144799396187820838407022385782522590804162586388930474690130591363658457596493098546161792037424981050451088769523519863250202667448774161725349655287933323397948907165615098926501600159737147791345928099720856943819478896532078718087099836785546655662233934231925521246349049849504669984366935777023096062009132008456145233840483103498833793485317993731250958043047824383744529734645044733477539169913403325723117240840263736977747962355722703960808789470925133862791861667926277972647163004383297432337713089622899470284332329536018798109977396307555797719392753200814746204846948122603613671232298793499129627315568641574552204738365912635825611052349557021167905303572547491369720446543857564429289941761890229070987374565862836216788360277967725176660556868948580668219544232195943041740809601594396272399785616250972078056109945261068898901323142091669857932092057627610842203379629250391753273104364831199866821913387540814348167513470137865956483907386744936001578870429740220322267733400329880613897270728438196232528386344368761946002845915253435680869097383188705378726902583412420458544822499776424272482832784459087294443524629039624343877010900414418811267080862357152932364329653593504278937981266019395674809999836248182909621264241849341264903239660496759897451478635499790250285977785738539620115941720821339273451692876846762225437287482372526121127435479747177801127852812299208554121786712218807768250569628338273178423454046607172176269860527493134447057025943313240019917858421598705749566452970333349672370299940547853472871099403071588865213820351551315268204682494273676442416866517843559627828848433262168675764898733962534781684935313795584867321165067040877079835178684250623617651704165519394812322487448128054358837239573706628268670383344808022047279203745008579054588058138106917430546593072121398374051392479887626662370013526996155744867335684871873742357237816109847118593791424633091054916054650082986461042111893829476246435320764545667749847472106019459904423223758592100177943191736286582304081422166907121449291214342838171025988864344530430150405300750984778179875136075555686421826157533188406173254338931114405366748204308348316090325033388456964639623357687461048862201341926841418208286568694045520782531136176084001376946115863872868401962175147687890066341236168931571135618227899089763218588430002430645679835242275687864970798980087870264076389165424071482652129580347360641273907000735238543202874491434280405274046154646938270728038951688094807299534741102154542434664223573029551614206532552147659955738614859400115240335191096266342094596700431479434489157253057430685220286964609786824923166575798562801355935916799719237974765885698094889181689123895909171292974265418753673048819589399434847554942720768212368504409196426550047077351504205701401932952542289075631173988677334090896480297721261829317775229065916013965498394678768422435319239295097989511162251362851545833030482699716378938037842128301127985174261666245831456473072028090309943351175018348613321328514429070533982011511117256419117060958327224176625622843991735708226163796043709576822140332462338702857384041749394064671355192664532455595238298042480428162952387012720827206922586654142285116167454844466503486692184405730655203178035071316100586318278677592312217960592315828759129272504429776715263776527489503585321203315381519479688772191498240197469188086494943660777665704643663106342034493656319875004735941649375680209633621254884256601847365423610192096206655438350680073879780966723454044518992089480360423206979385247877235331919161401991045744754063175367545219175332896541420872371494639430208286856791117172369481463860455149234987516909050242785642555906503251298674043776844266984940600806332139479472861500420286438213657867816845744654408297901218014304911328357777061443173847866972518636578558666091663391242936167668066087403521724798311720002305752655259219682599021597782422144145406586618898995359877838996814838602864863308364677429070412130302507282944217405069819645644826300403902340563547893916604928559582498659270783141353377379742120349482112451670106275506275621588774034915027047746963848316243533269823730693164634582998472334418898891862326462967497302098037662461286742822787631873695456516872068142188633170307753532110830483393350928741742448861070114298635009911238521348310241745403675213216854782134892507833647904405794358732553766178865808715874429406273083819408707530840787563166504085147238107452051247367238301402696511360045255410971020981113414212780656151219161233621770726843772751283236650170176958855761449389002916054035574635437335976680259517327493170372124475115058758963650976103285451640263003130888568405445615517319448869201830879988524678072502076196146641584902103005297527266374596157151464892654915222075049874916293295808917880162235370582921335813453125802875299441407949170324923116294371853118555983063683956342910061787670426679459982494072609221584260770068379492443352102041726715635346441986490385993489955167992064784211790255961885601631013794645680753518415879740313497043018526274109886621031626050384201443663367302048515464017766155162959920968589570333803540509508525718090029194736079102680703386153504703595046549574956686026045187231227441789276334223177842800120301667079485813002858402023062116876093894014002538404369668520793121344037938257587376383908595892270624408912846751608571141668093239200173318070316448977975677968568580295721666839289019118378589655894635551584148101588559508254438132987982944241596934539785696798782812351402917230702296758996446554790333278858741656465075502080027851510142057836242273511137641198847483938938309890393825288928322462776093319231025736002307110943991898042027067004132051754995540960022930188375946305171782394558416607978099636479295224004799217445126248314280754671175247665060894523648500538936704159752784457324456217853132554567666328630596971279792664076205437604878538122814396246791565705973020986828641308453891805081875737812369941393192536904346454078053811113877055684246101296908144125801441990248784620855947818989302438643882820917851895730649315130447767019884253605415758556950843348937223568462359643238441373357443178166933190746697165117371817991216551664914082182000233690249828446466344928874317145340155923801109634616704504495009524175082312208870080931848085863428025633148853901719653387973391486004769758579836992922189820586562329932584319032362456836223628455384882886389069700476366692443911031080532173428823485155298116078710118259159589314435775954494960351817995597037152380070875947437900008769326531101329888966537194367543786146387843843010141493701273158612897097568026396663478176092554897071228139508486694058227504519847891999799821930163586000086741823583181812363257994816245647786392430838701374423248263047738216690705451129994392727618456097381525471151249809834712253348874319754297116857595843828078504240266560115593556718380255428047603126850055979960559165302525824752652541090136156934584987997921807259991718032913648047790759310923508094039483160769020398817523973891675134905009738094554214580714875804065645673498182434518744356173279828067947993895005397993907712755145575432260256113943319119307064374040289114497754072925484817763338882018859333471545095666718512011864893197051142843386431046124990074597862724020055502224884235669107739863657894812420372682453806120400702396246554349677316966861790106133045334734625159082984609815338715501048772377744931665989417035657407766612481309190823234589115260979232137503379423118026149305286053238573352793030951992890437418572618105380936545401593737912535125219409085356866875358100816215802845577558633086705525098315696390968996186015963218933886722757847522776770759798096270158216823665480594552012732786604326159329992029989319873765132368288190910119724026912882760434462980111547684816188699806406951452981236874910225944224481906131696134494260213002710673305142404849273865517852798379177993925909779050869255354769770839891542055032512794294548937396837347928450969108456390539010184727406215375600086649411574349408611200557636524747066035295100609479211776223344439379767009655439157718923042460870874938618979575314301698499694305156336403306873242683242479893292198002539514687606091358623309954357711759975706115412008341494505426222557700025811232872923524643549539598712560345835419006548013331833191976837937918891231222282735591924840627792946139776457419705063776326436720455367224038101561056092455720506909042926453852279856400558012314104417387146366864532152533553762872172652353003943231577035011973208347919328895507890145848415667969005042842188121363484889659727766617911258910665933642577546620251679933074122607913171836753325399977858188018249162726695535147646054910854942110595629796096578528306196969310504726450457016419574197710922163712478863128048690293918434358542208986578231247973668459056764382716787093494164176337355185288345924441480340867440004877044142224378001602949594855025505703751704571840434154497447821950253289354402162591383675989437917663523125217015798476246211336683189570439354828489295913218788222236112396401597622037782536239421783157065979526091100654139532901728277409572393234788907564685209504502012535366030284362518403392002058038339511860953590961747795918822247538291349004250767131687476666301599799388006904965595242662761887106430092298385335121584243837847330781171939305881485779233111166457829847233713792886023349675628514242565455205325836624960225998649927734501145203249069656848086145140490053887484405008933841717311884355529792085882490300658662673576132537505932299325753106479311163212042405085257161966593156472019944597265262593887114968224113601600364418433233103987315995819990511660400969174270688645011788169791694157063325757196138475948505863206936116512857459695190857503683037913618242850716496193303632887516924396675000495871238364687066374942429392122604664085210383520350881811857183561661930426482807330353441833477234280973314711350965774707311492901927916809544247289500533560891624880789684668254307520260117618848681281952698511280734544494152797500731293025936798147166290846274522827876192184734366904168683099155507655033010303154589800295235239812172881781897024522007045650619404782610356607315189951440945794307853207222381721491233575762477533587162976687718459024828619920506205685417293786222643064143700638658477678704324246569970919808137750455697882078863826499659855583714304613161737304161059343858023949928369432011295134515184233095384542280884868635216909595449478304038277507752527232814015178150180434217177973580751646551412460141982954043530018263013109691538383749543257056928225703054025562853017231269946198646389723376054373388424362699858375159323050707820978872766836378321966181680576848435389574928821776794304482718811823257281404691570742086238804748000850697994272787922635518476381931795835892824086088519286588703217338599837785086453719756023927308495263079271189099010110665685021942287010755921946864763812211925627700177197929431935422037235785616621236686104342788260389140948426287597864201389038303340295292781755352819073589924170013891547847603674267192702005620670429148665542255021626601916095918151038375857297749397883485524046337341633206519459693688151022701418445633032510666082952439297543275484825386526778026885625076297167322243026326301342894547755054289526089101959248481616281455551528096249514005590000905340788178482800819492775259787839002708030867398449537557233570489963911454258822957327162619148903251022485774270141411378214929164541696278962885989702501132771827677811745073086225014793192847737745308308904251003852183147824079321033735969416065061052017300591669123373756996319535275516863989543336001050415296695327692805907331241512826136478247583630991174872893920484987146223155143797196230225439256928406867419500387753481154902279123620588541781857692944724898414057094613466816797915594409767475844420768931868201941994838537282173821638701158719983952883025319800545065995224372165386468494955852527726812089716007531635028039704940973427185134525363492755330845054849618204758470634714822124425493975000971092548135271541222824910654953532334053006745078664198710257026728806400048011166227637065246711838665016442859722893348045109390827163563221318165842078279070118890790053512002801478778404150643720245801859069058581199824004985680680256297538770242333021084040233823687508772975939994850907638252401992583400959757027032543502841159660827022285842008639182839018501276957925558794955749002378855132800356479139360469363703075172025745781271990641700367124613626098000022456170296374381940562246833390059343603638319978903841351237207253763083175384459243486322534743919477433725361227458344049543792333742699115729334422303990011323792038020916047208039088812198191750662516069405937534925461196581239291804383842786186341383700662036630177009124210783001246678880942319330975908047064562817532594031656056158434949946166509387853475558591301752041685960888832206108375217871924300133468148200337200830762048757115214159119628212538542819010224677382976175060681188061002800623820141654365866174251913849912305302330005841669530066648564006019778428085448338968027877129362825648466362917408998497660458939790009024737977764571589022884035129799112757809797299926447366011280408654191007967043835532948771575094367440796528193970028791768664303239035110588327158221020357395167465416230735452213647902939816934207135957637854844897163966854793620550069788025087741084332957810937967282196058431592651206157554220226250128088184144395247512696586987580834460215300072173350619779901773872421466929966734053237633565043420654826093840660592413990341852453347944958732374087809142872923405440376167139558875604468771206719757324701643923222141803158856308093191459294368963537232832491118914872940306564573804185691091408274615126952509029582019516515655320122679230239434483703263790897935579134522942885265761580308098308968923420845891841074012774913438828911312240610169182175599620006374632466585888880961333491954261990990050858077199957655232442640354212370550537126693794824985171310778383626565291419379438708456243057829701141195435004054538617158081200399613456036658702002801565768676614996997895821714347136358405269680318809787424055830548355805166300276612041564358143694963878579807882171457174885727965587422388271715271407303951373162686800900491826643351397343381209496024521288514439121171043044299214335159545541309390502977061136240302758476302291144300442417648752768689230408893221997289771445485351785970710469478569291471769005602238992331874493088982287613386487283063106647028845727123272009963012248041519815352573337333043779744547780124179260776480509012080576661390512876178201481523972449126213660421427185953744441408441537305708856187667951616012110976396157927017178262907713078421001577550086596953770662328583600350603184342031404761002872956121465570572873991622363765403999419545666763364827248422161511037137825965841528386587632673147356895642227664675456557946738119644419748887807743292184033158024218013288913506264935176955159563009652386125274850246433057448270386581718005821546858266524996711483569113300466226398131305519299421826593458849014114057222323597104057949160044433372683816164410152118895722257993028274052412051667509979462901173554337266073129777644313785389880359440546412134223673477662343001431705188953831830800274428834961779904123747770801494226391361731512291888538756945602739305376496229051578310669996742325236971963920717408716791807870400174143027512930533923648632630397834347383170438696612740316929378979461003021110098001239922128047390665805239285891731848435869510623387363924263815112901886579519733839333256399982711827385943923991228674983027525857109831021539915493152514974968583921160848031728879591316905417354198441724960958850335892723692667384587561947162062758274765597990715798004104660815770399823343445181093703852775669428069091921769858592278790643449159737407209946166917954678145982548526620020013599624063920723744807462948810821721896965230654675394215823882527602613571172834939480404170393773865307871345645143006799661987923923306100999841882817362098521213055545344671133960070639927771345570519466607129769349313188150662059395411608893291860274063294365529076698610824875476447595636209086068585806542268391203764084088706289242909153318280760393640364663466035493120074009856934815649153884631095034756495325249883573488564733822646673571524280256754730552229212646956541688892148578412741392214549496647892369319317407899206622353750819081264918560548994192173085317723640643158475723225701189676203387511053294874465021759486174948202487714030810061020893304652532534590223830149338886126356982758290994681417474349070296856756649176388646339665414486843020504853765908572582675920969621525383017093777043774332433561159133918077082994434215699273481883327132231149151860919724823116890941232588290952014764423223452396574782408508391963753000660118338911498054266648961341730388599048814152760794469891524677859124927277978193910724705149276346969047969161426787068242073480586892380424472807450956363749714609208653857420008920302814868382814831700787666034330439865753159064026967460426335753241707431814129228196542598814258859113520442843643276315122027375614975800205593842627429110059702272931892154686679468247331444206828657068249232525682685946188890135779384074938680772626578721448724646084733670082362422813529630806853882020866333725123150094143941685869201603717064093781492581365308939416881790429752942176081953110362461386133528690436048753994532627155302466224588766534641226015453501861625458190756432826492028842751388345305291977177733818817104246948678696789547124606018484016796768138234198606532611006207472788009601666941149965906866036578161541615963327641949023986108050920489020317267603559081983720968169167619124788733625022211868789365471938082428735703741431919923131522668929651744520535057578799585584622316813172116958844938523695133188587733508209402653222653636004568131930517969456374197267160935875548868537949559059675083581195360332339536052890721839241641320196404913373679065816549389143808663422491343951978284925495511211174008412653395151357950055564778682782025158199131253923538497759862332995248077404077578730670115881893738740632607779835018614629009265082048474535632087625673537346879665057384037557462897544963314897467358725098151420081065911468231390211595432634365647807572100957712779669989461117972287995693202150649877298234896806213502144617121616331943437467830667454380009599417177267686727753160423267829652099696333190439447994181641606221580630632413484885023503233894712207580712078115333239657262199415259747081146626094421074082581684613269666748769070211386942475995149340272643848449392989132950935853265171578914439528939994816053204779156134029644542659138013611697861501370940972595015765501614354023591197397228860556675750924403818494930117845540045955619701098402217291859384676539568383111253279380344937211848459821605925925621094056560950946850419515896307040634495782644225999137526728208350811701943107588355876872715775285447394674996584457363227255516339597700595128182893328772530341719437488157569033609873975614433681752004910083198778379657470700617042913116620497172107689941861109348134594722744696600182899898085621310990735047140607232818207706625061410257004505296127620877570176218815056386331515732838493852200197122990245845265496435259149080893049421172266436907907170588039437242689635977291267792415709642054022975709679357732093566597135820712802839355688003800068271524705982305445953662885052349071299661981548728251500794695717709291118328109149617680836777799270436460394490194156909515027825721476246372447389233436270998107990868452974101652899179392721744188402980148701177122970159244560475167031422668408114220006256268766678861684123724989726845824108239284998477173135731393856353717835629701055992030162558535809585377608353520153220368214624745972557608110360782734537163515015867432754440487872761604378176141158187389062393531593551736172497379765141071037693077719445179547301586404974252496336740216934093664661665912435545238848199453944037938175135477122057222266692527123553081540667784254684928272276085243341656178278722351324614846476866897221214257692500369706844494062301546979651202261842065885240160201487427411376830759147537356947177362163927115377471830172232289984943786600083294530033069427729567031431307944555397751877005319715532580126504702466600116334922457763152554557100951269185860259862590702280173636670578563702375478109030269495233523169194820766451449243875786861406146087812896095675574252475543481618187322619389266692617728631905877989825879463145439939168085312128152373130672050300410504557070306133601154758098556366755981888623425530798715351542483497172937606445251856876360093978531409301011970709061881640164198118462736063118751089833794143742212751074228243871743667246171649209700529201393432710583106715063562740345508466965821362323977991685083043468857280995576303747059441094884659377033812791557490001064060847682096836003141589883605666541982937014949147735313001867278720006411380353885542693769351108611043948569082081948321187247693367480643280488970672763839031018192694099390148601248239155143305755496345190698613281850614855559857268257737829576993875526405954027315672555278389821343313115066351242615509733163520110861929452854645971666275580056018366811322094379431230852330376172681572378542601130361879281537703044758754763377062493114431797804222036049508039203469737071568480260468178264660738588046208218753463344695305124751898143690214457273812967869816110400040020907459733714651975800472852307051121177696552859956031887184409618198525166463848853050379689153943058719338293377885844551065613603758692448694981282866904391850083961317940199292693028727600991237778944287654612156902157370192876673221508544039277689169066731520157653520649748143591389306230659075020032242384291519190766814433899512524919257305427122565966812768512083845336088887475068488131407930136523550516460514806647663589243618201423978777641235699807225561527243173627570263962504399026204121860114836881777151803774187320116483339164126949151430164904066758925025209368608428391499066191599147048762734928598679529265300628611368469060622563719823603539993579903364116777630163101532723968477351003120472415650491576298073750278754811341171815740768900329710625163378374489062802383364959914511313256204659656666008127593205371512991186273807770499963161807210275475823881119210173430930189082735772219793026585619743632756330682971247517898707080398193669400882303832647818573596387712000649984065160399355005362604837394742541056853228255749612042050950854756873606492861672766492905783923975676954332472352672649616221316489215034913096878266304869386886402960830729561149497482047503981476587959880358867753056263033679365614144321202817601348176619965741925505078048479022770122386617423441065916714619482741970778362900714255234328998871652030755650928593788043113245391903440975939179124171057969488986587330833425504049309321486006310565069027425242869536890340153441592931497050116059008889748797041540201853182981967941595409398067169767279782701274642543083831055018167616110133609468532410088540090502654021681847649317068466955200108120088415712966127522015961318071704606668149134683935464840559469106358122326919877093865168266093346786370391265684481317514949459285551335106450377775258288929521330948929963668061985804711400916882108129517665131682131664549809620651289433320253280025351964108607120048340562604504088617358442199995132385586494805170358369625507589897145922661463463727422278037958669276073339985622364668409055122993370462974082881586722562907666891105930585926881484275595916710826243569137070743664482283528749436700115502368362181160397582726365920772267085565868187928152886996295701218190009595069440398390227577783236576753472961271112910598937162206657977322252432750105463546063656537585026073535371383301098821064159710311401600300810954389269351283408420784538793047921951424353489514379097965907369994661864116543175010945177080159997934871285411797850678871877359029370879510506204747130511884511696468138003828988388396011099665638354327055443224478729901662470527163000001187858951201715245901134212602717549829319435729117453952173339582482039130188718934419865120876594734830461422808309319819284033348230199318809373306812179343707100425034636120853136241746389736527467043266018279735101038771834388640085646289757033395699793713595896425548729470056807845598569238010924832498181323626591557282285818875317181153640387483185072770793890323534582764189400179843053096893498586377688894248572335344690531480886057283683901761501149354140394978186827667334900270158870205659356580510171805002834318890430202769760318243779001724636463478479048848409764302840131588198626368215778751560970052279941294439308868277435029940291060717646646906460669095706763349815914958012099388337630213973040995819775931646873562166472539956507037166637363983751605650037161245754829977751230428475560505235158947425151309479997428940604662732663398180346702192399660502763489161528714398459188852226139647281504577898096865422712613920220467351767157688479540045391314566168357499335051903271436565560416798308652802038044541622528143838738755101587905861304566585445269207633255621645875948095539526107004499501876275568750104626246011390949397240862334098826667767079264466254872264312619736682132328935100822914676752438335665317651952217203828316322529220009942658286469931372106002596945737374953167129449300860408991934067644113905264502603089677649648227822217938332706821460615391359934311906335161762307164940201397684568322058858773583853308268217229151225986307579683922954927641489967115631024014031415436152817639704587310351872512298607079068831964416881852197280213799472695174135376238989120870478295740068124998785983296791529116786299545229249578424372733845426189754089828792236961875844400012734965766270265655831559672397866320301271822119024814180210343218759903452862983263341382371057830829960443105401932967427403327231886465814854854366997835589454044342578410476885668646461485399686050296953405166432727500943364486682836228109588742115717611736486833636451420080779668634751585072356172860148916841742544412286385900271492750901738516281397897819380471645166678038805843177323677946913291679363758298398306951889347678543714389179331320453416802436308501603467322855988782563313544175478479557466779237129486078937331823697891555528076797504219100049408787002667780105132398769142749127477401731352085623067702035549431007212780198620423175254992717677186075836180032235977793019905474568418160195751378424438779809301158394221181492505061685691640866753671530871836180373005202318472998113581807920944971433882582097919958638323754979686213586029974520387020503818562375604327832464356082024164096071315064497696331916055894121194350688278055010095831167705647701374656167237607622656910552568578952288690204099809952237371434230692674623171823841321541769915212182476581920268195833202859843615862372782584937075383722165591890473294877136860631276824336963627607418116116993322169323864052682945907220271150122403534606075139132217702175157982858745698661066197498862935634865544831438870239502030105940319061139344878918298163808064660792252464760422246487595225593878908152531205740566008038584106407850442203244264758077776837860315730498237391307237209890108873886729978664076013830628627310689854552193465332650889612653436321296267260089473649766818374631972538528992014015663355881830634424712600573487829751988298314324423379307201398027311901850769779477049562025676387695299795326340691615995033925180192201376740686785806115153577037782593316464900612743138478363569336570031937333766544881493311656390267103569645800554230929801577751620461310942505341560263501194322980653467354231945502851990470734201552382053553436627220371196938364674209036156539337413796862307706020732394233892712675669950814978648226642717473762401309964020398701400670133871224019607543831185151137469128746568039575718959915547771118007811479311093894186198101010292891950273060622164618462146755980148526338914485282343246912988898312940504211839045308202408952652952712221618404695809561370315133863903065379191313958519610073027987640242567076663571971073649920699013241432828675678997458981459114695430968046572235267871843934190255116759723771510284309266247856446567268929475336057540666288562822379121879456847865919249252391134517689095066135249552971115669094885572485448011033002014416200009533364674664237661835055074742585488426292402232965561454948922847041090007103212934889546028516687765829519300836862639473967891030067112875036789453522449716883444266792263211219925387974577857592510505432806695747833153990353003170220246787870412926204578778301967200156689628262312885538058372613285027883096463568117672675246581628678797214527706626121797621977600187964266666301042654282684706755012979832063862303624809016778020700025050552988228348984112913947043505796906109631438013712721717282182406261475166136248741740650981920742453305032384088116478417500028109783599496198170653285913654336661678982752362598211831651684592006643630561400076829926898677709260621202603349191354334389139428404193275714732276006513973823686755516773276681763707906465573041141961086266228761816861362949517529196198326733974077131162922244772907381375904771705679664712738168955145944553279101163306523834508871737997470732841445267758211967348146233361830055054733019360679990426965831979032616582346755114557428994655388555993285888709747559603301524049273015258054033029066373974339432745737247091694364128326411315112796694410925355948680443138328844053022409581596294419013784540055972024627187652868374675490028471751615124378303816423572554233450457008937727168922347913603206460608235759666884395675410422261087734864751024667402795657815114107462912485327460291126108103046750111019463254595719969522065719867183867307379893877671962249347000783071800104536903434876050054962204154142747602186323047232428340314692417857424972654442392521172698668701227146930696874553805861056153229117392491795818594646995813454498647793036182608589753101071789928341850514351046797833197880943196159749985192833792198661408939603607669123736980697929815010539442313569392079015905196824709718191562637617454220006748978969652102857194191103804182269229691386177805775804669872379383731315949882008159780392871279404994603606104824002939301906057239488874798844443860489217958546167656427813492352175060063844510115278072173350205957928495695677606750439869404337761151226398076182122714070355364053654295883311256444891298514181496111461372441113394909672186201412913984751611392066933287247346498275942455348322410088939432886437121024672521339033504759938637882445548013372762141108302773859175361208024756336226011121893466905564746836679815058720072622692546879113717953801831057636816880977567421323231291171413005365895653779831265957906767177335987313593525938031806301046612986326664624216722784446332452623208662409264297434313851847602730918112154008491518307645147896039803732361044114380095736722167226663360223398511972829550305984021445470557367768483900648243174183952703140680062595373265277664570983342702442624892099998090501892252530887703355086407145611021269853631023369728445821066556152192858239664121193684536510201045842432025574423185389165396512273839336297507577616006189054640998193097949761199455428622464917961322751200020646555404627507923072051813528305012427374356944539240165572264582413151257213889864680221046189677311839688870713213118746943614937348314514292544374861151318022980073740098479331804876457675949791440616972731152753855225199300738075821263287568872705000332383554538601782767592886936934079659268592670054301866027693160354443312541257053130177017918909087534289845772663620294680577339673830296348105229351301547400049607763383680003762114005358555183659554297507226844151273001512789830042898923738852849412859747392100152183231903795385624986857168205588859274624087244577484328438742947906750383652187589063730400551891650282872124159948714512123838934894918625426948502263602200585952771620551674570989069941414699076421892635486859028235951905466178881022684751854276470078588138476850256538605926136187017588193807062393631259090465887495777077792048677608178669786826629078597447007488762947511332046165683707846155757568432043626822192743150612694215021384614160548255729477551686351625614957632564691558611123067025479810751172177827833622742667318985776973864205622540035007833818644921706058721632971189446044264942668026108034937243344446196315623575769807769647648678735049641617645651122320875191327346551981398430509261652337088916847457238922028599530211267666807929060756079137396811331570123156267627930486331667547540387154517926425222193905588214974756908562569263230051027817920406183062280067331621063297177151022203037114049613004147102090717249851452106564947758311689029854300048757395258292102035970499513399671900355290239223615795587583240452267610542446981037309189530869942373068432119258821183840775036719926504315448489811919818582406218386306732683052235249222050031144920567682083159030101481967867038380113651185055900123910098823218832236945897633795847843334850786347204236395743813883552631429152545578732492629688297712579962189361879268767197738424661878914651300805513126762979754963831700566326564548114250929948001577386140028711087704087879765077579071872323780596914601126991469674779968497738809024190095359190969452915866241481501134528566777629385439999366665738698352954302382966768899956827386325144279181407509594101960057874706415619095397288275670751297364987519869063743212977489235068457660256140013263340063987779087781300691610208995352655468774320444925502353410983999609289271907497508634418481263595775918262618069559256725169779098360592127443182335114017408764868388567279625599719172867298185898129220493874522202903397158421133988494872787685121768774412784470750368030127244989289353671221086428409822409658620666205642972275558757753837929135542808295565099003035070725623404146978768879490810888130167141408559048113999867883533383176370562209094337485141197190116503381776094975806491370198378681323945080986056447847103068242158609889169327956029345770823483859876735378441296856890223591255867172860940775436747409209280520461576687480121684595776058062608152226911648623377670474555603827263569220339617682859080098991918432095897001226816802976451197156808350320955292588500227265312301857588955737015590983348367551741719672266259922314194212537128403557926060020918432792558427333685951701894398868566885429560641582883420665054283098248667341507279677533454521593626310698107975794671524323088679169595597633183453981782416846424675292287612164678956448978519491014562555380398838621243587843019480555493466477552932774847673152323293664148582049528295120008793176158465978312763464408457600101589082077096265091065780154187163102406048933685697636570955360471025763903623317690347482437175137135673200156394049213014071046482274528225882903042643125474196926847647401591066416319699700654331948464295545870949612516463204256733860533790442620641979059770791722477958727863049411639578514964535687503074143090683460984449121198005530924421953331159725971344078644618257453805680193454162684885710583349206765599954957211121252142555394872848722732670727880723984557531253204170839949522249696013492153657508445485779407011469836330227188284123319395870246505677512868944398864151985091938983503121098057053047344367768377173982621747031703528630289615361328608661065364695602567701132060221244240055654216189417284118441170446804412429288685915196047112369443948842015902160184614174238938266052766339261607584147618232478267229119849229491976915269453851916059512766875895818907165529733417639936589727518987909436063189518740197013307525853008453608821313851311854257919471038424022298074334939041842649328151133866188100040358793998276608727893729550510553274900843781808986141397735943695034211720860132157025840016138158614643870469223790406090597984219971129044090152354310419669860122117693668044300744807277454712418462221848440429189564236610694707631640799997580178074287879241125377112518874946614742470303663048696939894351912895270917675714928673614530530767582652769180443510241995505889985606550447560886754203895128339916734826079325049234899379418326173297186092823218112096315070444693923127586734735660071134710497657674655848793495602688534469094381930128198397426045191427213411975204459539176988344629303878724514236662927826302326282378116436232451580808212652401592329748235470264174388105871355113017172122170570975504657057557386810738367800648997053423020838128540348009873966426619138116780949849917145951225541545336602594130789670902244471201855013060622718620302585955339765867255406337737387083945646284201123608675874643965490133580726508997389286826146842184575320053544053016027236819042585033437170060576621168541969381457215737207372754954703920994515907464530485146868322578633755841627145692057224778085669608027460289124484459513355310163652584314763183569457330467685231987737858547032353214237819963860962733685641991810496147720262439874852321226459773577000587867537086081148236832760531348881021941351654593967948118476402029277677864515372815149882907560204369347688034856358685550460436935501583605774733017703831012328918435109449470450922691506157901473292196483870397548492962720882106745609685248218137571638257753768753526235313395472657842076969634661897128265160480144509436588785503984658376962354261117879771187318737748438787119345382599868097682678804002200680392143895326761532958681907142732715063671821642845339698148477720392583319007112316480117089519184689808967086051654905107545951045548469969204848758334828197730806699625734907170449059138902552799317023695758661366143668346624353485615377889860099747919050866210368910219594854067179816384587062829368261409358679003676592200307779699818014845966932658752106893569940297406019161057834192498126592766816055065637519297845495345650099981917176184933384852506673766209729860141657761173885404124336393081738644466286178207226485312872681569288518237695105320847465233886763516990089287145335363129094818912235325069227988529042202649371030016109065818745107918412854590012253343314387343003550849810619252252202010877679672286335580797403633872869341750589126031978292187031834679104645311876134793083262100697688898869791027285571416024622764972448448148187045260981181913565056246524501804594919230098753593645326389795671297070411726916556709376324618920705660185991550088584695507754845630796089460650563447265800852739890371644651250974633022166372483111116394917792708770848829575085395832660585464556523910715715962628595833961954508053577153684158582065084407654503855666786479975927197065133781447075714424767717142822469067101722879502622009299666423011619556825158045841661270697184598197304725556984024119283827814578572901580179009243289762044665716668409712808919496548163746171766190456417574695649043888233268059333412759695781823948894650592738479958484330983579016333405370152847482173085169270641773594945580479294990396632592885741772437166092420605232443707265467475548785955273248173968420584989587324669204955317872122787890030690469722514165047491308390656911582777280432553839459177667087241653343980967381026067329067298003597659181718676896751621787496802602894658938804996614559454176064452719796262809089181797435863976714485898780111602689323182938629296899837451473564699277308891173674707855305863324789705735685110051487582474819048614638099736508031643922410941676842036074715528002716849138095304740816028223604451300845161798492292786832901912034782369179298864788456467888876706430029196974622429762736284324856932807473534831215942331280756473705665750460380564501686452608175667565437434764758107994904467837190178757849227770347505378402691652293994984081592150901623103822734333499591508610649194374155355863175470416161350707113778367330425856838053837383038524531027489856949325325044220382672897313031156177019227356387879391270602351933328443257052001357601086915675602341148147401316346811656916397529339839845626647666647627754708326536400839227750993449955092412608598603580595784726119908178600546079700881710243126829429760067909943374114541213325972099002093925172016779119038891887020002875860680642575478913740495684038518024305081854666124400173627724249065039639461227774401286799511877880767528806197249853912516366772978536482489099072600654057452263304188872574814682380540090275673867256176558473256219495830251741678399406982560971661477120801701768624725533373989895829439725352343442919927705291384987196653313587875620935683484777108188969175176956349854981058711234800065770139724361969534921837217858615069209706560129735326861798578341255509808587641361889953415095086884262692469264571094611141172416572609905636519416485752364380971709337455650789840655292890058451691306274301791250954796695486470240232782609048383651162642230578466720934245621669606358878396887382208116095390502807324451687985320275056632470049663373188198908951442372095977512748869062068954752296752788341268225914569294397873921744886790726553427907785538995857791130816137779144794946720001528692632487032313084065884786605333982029786804436159808825815472840002906060014865315561241307184814175682976686668195981234907712652016228963981421211782376071250633859353669125359134483895073613415661544397048840319396662354257052130968863182785955960890876709438729112051848810174825985758383306683376064765019022615573005718339573136328367995907506695517666022544360332959318633455337881363143638541425079353369231897461552247565621750966975751263382264681584893541078288035716201389142224440586573039149820020979148998339307191949034186435773613140043182927365845124256433614114736857267421886862454154857290728230010391848687641431644548973812005085975266276068582800544588323585917219202365905943563248519007562244837584091633728403907433579059114645651716764487839981408457594015497212858304105586257662544430751011070712226606976040566566699552171868329627265550658339815257865731361699963058322706600919093366283806511051433633703031101508750002677612123026194280158294367468678187281746955734868445876868718593785296193590856107701198488876970145855629503954583752084279497387259184784735542873225739363668768287903967333162837142489981691076533957681412857587517478897545529656576174599657104865120963781913084996060238295609833371054972226825797114495416689202699611612569267791701823230894649427226335138806805251664541938068050254224463773604301281606907482859704382342173916552490362250489352765249789058732247907934008898513766117953230605093098913262854978982327488434503670774561619586690389332159659674906173015091521877395815883180049020138922614066279598820835162765346152665138571416730577925976174097783554737851547482949329460169820733772435972360172140357880053067148074224407176517919989283163906020867719500522712047072917757221137584398505569287147483983984750328141348569404373632318551449568650905432311681640081020047261096650404850767016346988508056574365198186144560701363799004617162577955043010053224823730712191641305745313245340227502253774261299999987691075852654535074158647827691058113087827111570707911145099109871768850662665320649737123144634391332546862962727752238846632576552812968010172389478295527684189902999538568364833869460322943349388936358870126468557959564069830052110390713710621744457276887676397507281113799875317073323299621299613429067272364787013570250109123197057723444392670696446053124864830693876527809439347929203351107104496223133902633706180667851868930228611145709598073962935928927739586174065277427585548860067679798470937978642484697946600071469211652363928762656958957910669226367383664115682410948177940840041748520990498168984015104291193203226468903260077649378444270358082600680992688742573428735104313313794558900921302464261217839804212188396275685213661601314929184060002337904893688581290004785283414566501865351586721140081962125186090314513110228516946946146960636938571521921357944783610439949440251947192584484635172006517245520484589096134028467864558159518266735556469432655465806569992279334201675086330948824702354150378276985967509840672193703176166662398529654499445555738955648035253679849914672898087909496873526156722592408651565321515955550558123254106477099025346450258441943267930802759898400199101507009380875904724353924308343098805822642801391947805680312508169708000509950139549010234334412892974305082499284661390407908884766048293843038671952213081434123554450877416545808562722929189998725839789157255463023867653209323661407709900759434672329579226647171682511292304682984456938190502170161275833856474829183267810025516096940205179729419120204279438446633759882286710052589381882375806186989035682409624346027893041754252680737835883779515091745215042195519881496603993851428598867096423676296900830146786667124258453278535910795729206430777675600782136182916154410202115749448846618912735840153939095505656545096798990927818239707016558785360550228101832359496691718755817317515235753674839496721367474496340481272394036187647440125987705070143341663394340549151274184875377505394338757267870268852306946319663621469849742734603437961419185902792869634659884180307398484249450757454962841556165465826657352774680334567656276707023445839969151362436977486722921731819119524322475081869008927896105693178511649977741344342079672147417358701706151125214217361256901760364321892706018467772878028569534005518105645009420535396366356406106102193757255454745970887268312827330855940446920208005991990444334914144509717808646157880748618443574631599508406709585828248325083776228531938382285458339813153449999922140014613816071360204291609112849084522175717473573786597267380127857659612202192622130547673992992487470706857884223504277195626396627819805256200100496046559358795500617252880324829286956250054532996896154230357532011102189720014700325557745797982499498926094875539946381025703943205992023389078503740433039172879711901901062512874783891313275845997704226919403218921073557087375499468975508995620362697955912493662437329618558762561562128918383042047776044091964310421558629633527360937327295537193673542844703550805200854414414873129504596914101552753567766680214027590429686650957578514574336397518713995326599484059906825947011556423417900640744629349057398760218765507864174494076688218449550795029796001009843976774409685568033417938205274227883100709910804203374190518233401276915793412827087908794971867908957628685454452929609673604959227529009425628252269325814232154971231928632715837341287098486660764128120389889345134402959507027854138577735113130139393880372134736483174197653696444635570944930832458683610030906086027679938754984877578713101389472270725543046554403699522779843473909064884213509828907511427966463838350551235523806416125379785317764445612689714180743082848980852987863849933343286326738468173632672944907063891993674684065037522009465658112502178506354698188673795555472320378311958832448748384522255946882614070578940404513671097943435842320714185730562841643865847234228901116183482526015459745062895342529608350223429749163239826170790001574204725320010560666953086612917333750005696309433532893517892103160571801704639164116851476350698766198658842883597094038834908775965304168564958088883082943488783375771743830111916024818390376177833958833296125423044339587652457198372590078211340829291630075395073867219386075943834321212620021024488921873756738185660847959150347498178465657236148043733243042199565989207072191329280559759915157507273203411540374839182317470808819070584539268033775291463274901862730420031465548882820939671865654462450564832107137999621146252052061427270576060873680055841020130814807136995881810918800941098741975386157550140105452369412174881357402325504935754297216177117458648306854907597850860872849165800533589000269925206680681485886555548440558539726444156576885824117918559130725239149904141075332170438662127192257222701716819268599548827102686404417155192830766509064976607733695961618636585102690140689749476596442629045538837399815717618170854348879996531204296109742227575438385325211259757636086513157671983297496978395869775637695685724630044290000307936945005256549242348992469271509847507974600426871216379519315788303291992033388071114847580083387535736570959788073788517815024130496807291063573051436442667514241991386200291904962342443123623779717629580346512924736233233293607733732753984352051380091799073489293202797219217328739034330973598650300477315398223726044634876650962047018230106027816461483269411542038830325719742000636121770018030709474212062424975454465760366570362078176325417630278743692559480702397682446684663355070971192326562321418098139599643785178862473382201939743333655881916957070809758586186304865483365327770618691859478543359541123899757891048347554300918638872691184081832748536350176064889097854345092405959624442374628293284905041300383055693871922301435942819511881179283336058868272720345002313352253380836347326686395917625862472642434234333804547950741645713617546158169538746808466016684292431433550841338500707279756983243707947260366613584750858410309376808212831932264208317649594665374348621329095034355709970850995271479388541349360485587747271178854932305706435526497132031905678042696467008275222642360434457154663710257062427845041431356554033649206892481396230170033381945235602703796620847551696829968231204567844057609662921411435514290278603669950562872825601415508878234066507095978236916931306866315703883085374533542106986019494996334116542098086154330164994451204158616317625348677097825649410623531134843770327204251543342230811984891364678529038315024712310133394557240425246464027803866760447135299218363292448900370626942347076666331784429569138320774203692237142347196053123381660209330826440990035796253113901486743393139573963195608404568500086102208298772620943679384027470156332500110648367045453298962895003421461567675099505365780261962709530231467592084960431771969895402324285751425790932271467119079541146019712578150383522507683830009370051869415377980957761288319057450916487248625953355758085067318015989536654634646414838856124002060841640386600722728376599162460593519258731361947444334718798359613957965284835114075027357490373383130667374314391597609603364065409049504087273261592970518558702523658260837397290212759189594489651919189714328829491232115860553436592432601763594671863753543299958812463618569946103996138253805141723978683582769168202203781469650109504057258023893477077306631496305396987398068272473202476280946389025973310640556680081580615647640299469549153488554885491120028370126786723388257689354461372343111986700104634366185312022358778173319299274388182258680300106536882722139599742594298842300318299129668521449212860923238269611729318915665857820954173411793301537256157923668016688849843435010911672187912926589304325175545555012641231200542537913936292550173972612371000313341458999299671283459670282854234454713907516932867222349069442385083642241963719679974289039147335032477279414312643018432538753744445378049570487745955455818360837476178794143454039587553589911877345389096693479437787367093329003874484348238469821895395791005015240376130110389244593866481254015482922182979160063139641569022050077263445689651632318892294580970155898349402937480790451451496941051011191355376810182526505739710500998497648480489365715374092954131734261464486944787637183756467531879496474397805929946856348293010480041242772027999568774274318438066143020622341700568836648909978342941396929811364286353512667732145426829228328077020062308014216998939455859092086429379871466254906271488375605292579163800339316794850747236670938441820492368875402445391659937020602138903828252079352934302833759781762544150927972487484074542158957178197837840363098318006152023056542392435033416583464448432544055562059325840139219209888498827714838150283541623483192361001358021751750922383451539648657771907330333016704783204110090031574883575385219802835819636654856228861168214343001052073915272017857624282571605301607892743417398396792310650956861210141704443213109788815967707992560103532079743357355756270912397382803444849597680413341442336754480118205753153292736617017491196763291122306658867704238290265660312979890534913957306777467941768787890087191941265666231346747614367376461603672926497608813745061592388727490736860676580551378808885278542476230517504051306657547113968288581417470912261143690372909460209100901488925333238980600643621581470962892953403905571348148160517530628615189330763685170220681090463506072694042936266325068757244827166188961690872725579893318655414986636164807569274768645198545577682101328577591940489104412654710982459479924064733987764018503984139826560321009934689257075574454012640430941833797689868852769258085413504222451368430274267646609009919412289654034238155552747296738860609197352627529291889636761595260163411691905139566358811070585197102255159698492982617531717468642334743704392575701524320751751781541986982617958401956890035723925071805764021650910116424429642798104692152210939105768532350384979939948497724293966435655055702488733608995245893971875977442594709529799477284010792776628919092185963927021967658294345916895161492240004577951944497909641885223759616855800550908289770804928299544055496486874346534916660022202954844440149801156566377424307808176061619979317063228923395630347539453800334455562426083099499015701817539046208562755512405785366365537376118203142710737422544314468799198815539321235116298598161011638538681429446000764845055767581225713917280719706582388067046469611654390352470054472698591611532683720837407953400481773901999407776648317276437973300255768804277626567840246934885205822561679082687889443176357426937594473039280415912104099597773281976884611668550069029854697176023018261335880406841859152057791248580352113649397189063915637921985468620968518809241537338555237797391623516166309821540338645052447354519453042819418283745940761186395896805464323271209551588237550310856968455168549111382444554997628365100299664999877516173431004022449039382211906572296820326424953419170891508624264125236249072643450013525825945022946431908312332783518575827795043090983940339245850197890012820215087583574975222348669468404683316844775372094356965280774665296431236452285893318069621782223692916794056687351170899872270694230864502269920994997365093417281346626775936552239363357796265196014259267817436314652196200717839170408790679020595658580858885722833847228671896871226538933958871502619235021224233842281362649194362657865946034410935129509803505081564462433608649911830700066625636147530184220048657135214309545864451495487844188898251822658444381614728757895806309025369278204346598631016869740838977556220415658909811104764285755351002741706153035547973504159239843731313213056600731920711661416334455448286115057285066254332610343094454117708963137575916572403175941437763365915361576859337407138117166056279575910006568938268963431100718658700346928264147476777504818509157766276677543710869137233591966296057167647011925379405491994366015126572888669618303562395461029833465769194232094647264894928298372591069707957516768211216607959601925055169222580160195757333575356884892823533642308224348619021724885332351551661162542697511911335976812835596767313424975084104998059574090911112204431680827206682719366335991800837055946515287030666252067417848533803609687762955994222970512439087859558727302349710261153523463701883659441170103764765191940316950496342101195545839927444485718850525067988456797313664769923148067348617044228076701529689913512127345083115692143185816050890128695468818268175606640754096582950241579691389708413433080106508827569797683729778970995682775215307416453078590482883229525088262409386048250129165366411447827107273690169274665990647954400317106234952140077709411960211027760359852672564942359828462176647511982002374483484785480328737569198105826112721387335714101177672994665849581096184132707681207089201932700170270521328892480863641402092329320376564346853018852395600871609030680721190877857524388774056022054990727763551236398504578099167909994367347714481269363671550801475012474797682965252262492958541288796154658690526416848862667816425947710780489830924482499096514953094180372520714172342696348074522721080100002189686377065780369566717427303118287818584534164665677286072876296428081442186911400408844379655127533997784363772468282993458270886819277203687238798998281754071019572841117585538908186912701214118963756112670411692304700832790072822716555657728191785475476650098572992027550547489896441030076173505466358832723356447705298798430116954363996954105784280239174972189162476165191470305584254958462722825846610981349834165219860289167689071004802439158808381737850579208055340979337085652910877385107283102717388191646641552210047316554724758212461046995894388017363673537696119529266760131925854444214668107328190538694705025487110897413617428211955560031936704943079678478555851737363131185594494560991130394358107595491048265151570319492704256691717782936672806507159156722744584762116803168436150377712552800973167811314029522925398358419215775855478975784657033332693838363698235458323095367007598198452858995522505274180449654161827339849931544474586561709713052893142468753143796422381013589563365056517606606390158735267277212100387332572307809662390153602912982215235058423857022200915319470330647822000703763241522318202392437642115843109649335527182694118853706024846020784672123045112362286206360741568831433786745282460358423278616361832917880909254432347494366859805281419874496469755679888648606785787762690119553550902441693310158884814760826166347347738835685991562047706055406653825420950222486565470230889080526133723627702694950197400923237806517486944898664321785516815650631966495514703296451088377266589980649942042764753010522802964649531332613952199573509335319087029578104454854113603479600927595826538454170740455832380315320275159819188096911786207156064227666763230813077423008113277938774286865152259517963026415534314650514209018018690013760235695045018635911404452854953690146458925262818675616105728922701918757729246317749974248025284637919104500685792441409335938723816809868056945292006685832728228868974835287591870184825342806838943603819637735462160943138164809263927595735038905469004657688594168288609355661100952290564611840457624628180395328219792700607487530429931752458689439158331415166386688462951991636583500469479510405446145027654841558215488663038870415431000769623400404519638774096675287304611158159631561056811444391838480651062724051166342849337590041558411548993245964215901165854595405510866868428978712371437128439869695610677346493260262903815643355665016530596775513744886621846870861382534712567734406902888136062241071466989876176854745624449061061001295409010288336956325604866744645051585590529169479351201976562158678007816482003356155018457442124122530239429976897101980241011526464184597660710276253380670747345294220776754195216800417470599589666794875264568289870660277073613445295163833176482633680569529767841191323722008444713915549338740607706418665169406053389511466604980306354444145623095314802501750753657447952711051033812738220632891396292197909670301048909946055595882400236699808189315221554739890710133049203314428303056530170805687799446129976220359201941455623902291348905965295160224965739304058307359354358859142526425108999098132864678587025547502786380337594792764511846796060717974582230732548335429346224051533549590901088464072106760576161338827632757149140218788552145058178553604789110146363852260358923821895875947293412087018710266857067340458821204584438265397411574069817321696209321903354125718908953116076858148756617861892394427287876534273199852116843856866717176780560541708926284595321386962145889454086290814990795947090418650736908879270795384702839402853330870079296892471961589161805358036507408689506614416325566704658564017135856664801938858736618012832968468763460017661345092935275537249821234291244191525879478732381988740959378290921171299034411457104089494750335916730654176942068372736589413571499668309894623043994917951117733746398960245129258912655087447100672822316111655547388502645644345631531219748613879834201390104003098496867012742073564973015329366057817030125147115869200251149058062779980502556848094053552547460894100539226758125243292589142073686283475076416003579617949949576088897659858690391106667614098003084411086632691019522899576140974781467062599907928871212972616792408599584523741296272804884330584042858145529266865773706278045057570960765104288085086509227012274512476434920616530852818736379856935013183289839114196457748228945913903297524905791158100663768084441761787340806264205335482680571082006568907439981689811557982443632348886039612852773596780660902339870223388649461692956913740634218574846319982408171840438666388612480022275764045208596185287358143681488305909859949152927232176152679149157622784794036916499766771975550262822316340053007192086108890721343975803608834815520133463991881371274735614649666531374203290920063057451372337686418888649295068408577121018811319937885573514451838192513056977778313302537240703483069424475257390201700222104736991440329298809746478866835119395931279712390919591680832732454285870232711310982092371353771033210818358715793699102228402009125414329971869676600049279261508703761606730318466553263255299825730428150213047640864761563942472951099589187398158246027390052961368816747885684476656519170075539218402206842532700169451030953812044663300715136027891065971417458089926433303538962129195975527513441925065572129889396621768185986953471346159209044808254235772311621563471333466422753483480534256046574690341962336687452711170567179779949382215121992626658471813635078877884873739621357237355912569280218198493169940282176973864406129942321226769598870469600787869096450726925619205944093131231832691606534179783687245008545965441524310896496254173622115392739076001530956071022278001492740029714706473289993188530951584242194890344743386306078524457987309605957584444515917644444238571664600736001629417314955148328828548256566049331719631944015834222002685719418815250482731186716441983596121435219951989492914434773491896737811869036746494978460839653274548708517973461774212738358337853633379539306087689438015363153930130539233114456145241985653594544431897222235147435120085360977798398462739687345713224973814792945460399962436934120470823250588484147179414061281109484858732164361736072798001586075683082455868279354068354193599909388963235652611929470416747604224701963371246056225365611781680926083799526661840083765308273479856528786319287015293262222534837741453798726122598014653623039579215968618160253739912363445879256734372410840207594810692644953689036039869123455801436211947050743865847173497582349822255599254378436895372274865893807227014600176874173807994475617496241667676893142725245928644424786435414296717315077100635397884128223424627381569219658599907297937949819474281553281671684322397124460253999296505161847987629304264117093536004653934161374489646616024085731954493486916986840774381866044639493889604934853021330988333931330645324756348619542383164788738841221355279376448639218880720496014770378263833527710061089530013913086537733149828427891641845798061565324675946780121054299208991702785761895334985030808762523877218066842527317259371429308633021801919472128358359213626278840591066737851500522717628567680458289420315358558002183175572143626482285529591690097818054341607826792360938416357824165687454343906706748733817106402797517815795403188976301840877627938203252928052480472376924642846170740974499404427756520317327944894156164196406663193131072432781119236315380772234497509942183862278868184125875140162752485731597921485341712577883326580105846287785668364203538935489657313243236445673954069283281034324176029758905134037785040274928101831891697714774700366579629328738258256653755944821356517907398417501759340412685653651848823380663739315142548300727064277139654280617092092951170357635012369478838346444305023298159807896832244044756711478414205823539342692145095938007801690291084267116982819679546164074978461675648959800910022612099516551753815175497853501049233685229951371149567529441305883329544666825309219315918268774249537403972090883476161582860798651426019042108958893987880580342149752665841633724661538266577197268501748285519291814947789898544067768249278684550606108319750781351490774691716722737083481159183381308080838133263678512905741337639114109359117395995272782094711074849014781468905034742915853865568808805782059979717577638441249894184968345026215075703213925343583272781025770966980704377447157174461416241430901842729596106053825035274260898440675379669837861564986188886291712638265859596309722601648861722579673200768200392570810879618883399489306271924024273300642522796947529527467804840542952932356163316695134320168697460153176026178128607080270339900493180805116226192611118369104768129491869299220291358257884006935264786073640934374594323388176067739616026487961736580392558588391370321707414944299522533975814133346293604482000723300897402723003316527165536178183104082028914590996412364783889488125194932282435534747295686107620713423564376204208733746227406042290490821241753763578835205001559903994646408615668483338065047371770939265431239445107616742138815067123115738366454832348158721321232632823622374424591865656291550632201602059464994999471697037529885383686021337866946712780579921099879242479160942694374134656917743527653556068216665841882285906169254250968927720693440636093229323522053925413241679446702563736665131531883345522321524363695359978794328856440066762590390508981056372668871359633515417503804555950927755083943928902211708710882070062719240002535092733398587497835166612091298385909092243022577331522265512908648414811625454581932098511342105227765864146375675500386768715949010592379556669877466775369837550580663810097510236353886741546153486218459797534891903411424562866885872453198258026426163588947057176344388840550322619087073191468591371048965552643426167424180152705924532151606056062382592954973026315063853512558613072126281819734979039457166702440132847318453859166738408595734596857429503858622290703196074949722489258021335587559950939996387291697738000990815771885296644864473120674197193459009507605632853534868665340249379680049522873296824940503288646422084058804509700290045093588873796172361701651248774475422234646720974738103590223488607910117360521708483525528919059662017684426430817996737249409382179442407065000490360154894341006108078871668384864810881094795827234198270222327764360537019419814057947046394375652451565859824497142660585340608569890927791592256076917837971692566521233039268193791273129948349524195184307913980842494915358965756611149664381793242428779803656092925986807250288402478832545283358264824316251459260541076466440616056981176745235997734304345439319706192798246050011004935810320885000206155211349824043427449268507418282991525110238906970518988109636141448714620889932879292608252892488325220315043310458107901459963565224783752132759617411400432314431430038634281253206342102418161192905259688361747817967714400218053850353648655991337329703488231235456353855498698028200696627082298896853076714680953558618483866775115088860259565001660332399620017181550573293427548778993166768700490064801262545484118693892693621735986919508023308755284547765976432705754217244436150529818809887347025662010331125380445333646626410410918329663596630089796722417656068360851627322660854028146029666930480137971701147839788796179875217912351943691695694136220685392834666342885703883246523335491432506997765450990312728584299897757993106982807533127084443848462428150455185657610977080367199107648821432518661368957994670456339788292900895352577328307826506788045231620788612236901828178345031804280646045727156180407303984424599157081729010078396068378566153486107387085163923593940537442707265942709604739759382149717881567199075396637946858870749566364398694068571842197033065230385495357696986014062965551511496929422899392400004237009768485695776132618257634502013754960563659096110044439498383652632471298265209188238399142314508466446751488080261706560446527754749965859828911940704260006977461181552225606531679169466654628426295092785330392145276494612920837608241013072734783563612936296288285042376010442615352372057328006419448179228952960135956875064806301927906083154548901746119192121533524564959827706007204470544967763873070974610842861874213447787856155293578466523769006103835724852851394586063232902752508330112804019604132346771742676857682053661248626086603136538522554289437847680482226775442755418991739039582728029643293475044773194299493788474092422412617112671226965497181376729730784229804820424022505258834967130490410037316997336584087194818881256574247656322701521402214358387510241324305552147672061228453289635938473320582561832764982129389541667179352858449820913049534684504894742671409029915669353034477687833915230929162750750522154906237607613636028911207148401952209813793466848896941008777902270006801257052350604495269818339295314727241594071864543584307493317038398605900003253494730122136015288535942672873551615011091441648788011258266663829613913367077772829693652233110120489217574319461532245358951550908171928123858056359519923063051452453753651646642089128182497391510544040432493030023047356490558344322839414131866135671953344456814899295110259708588398013803032801873408345180377110822726010566067482041180278862899097227348083035560014678952866141305442492940469911841063671429924459032682219219663931057271362142845945832912347942377458603546277936859549543889494132731086331853216922222744205168058681063169675572986921042911786760955934746752026395904542013875317695114421780597617748626066837394749006124092948306166227224518226915183759577074201395061710689332771136238014273395566310619917042675180226236774850040664826008403005402890026148466568990488485350602046367204177595781203289975692539683154357026207822215289304517303793537019412675664126091246341097642407855456424302064086758870986138577970299086708118342931882486848364041638449055192718773414556607495582632245798323009543513079648477740741340024758520142501218486554606873251550434490192846386583243804566853532456644113060715344616364542184179991286234559946222927089134133345452006193695709058283824670737384305650407145134909072403265753555576714139996932200243859256609935271439065569031394102827707071730943808783025545637243214123207973134948622529062182679945311412169140413931215524155814128219406679408937925773366682360987945798808304799165699080574909447957207622309236022297545461772652942649069347433483123616315704790187058084574053264479900557983281816089062132626960101378674656944800545317859117174220048643316981385264597001233033772572879304726050211720903667809153843628930714698363127635510079378814547301546319740609344535458640611558580727895156291177969005860429856368635039922455445790437419180850702915817293009431086315354508841910103018323968314657365236748810012294386047561466732578311152000011582263669495257257503841239571740590866804654464310033427268009775399614048130613016924294592137247620959038505748930683122838148584221751413193219752181953324740631349825574878361651840737783586197088881080564269251243570779537647922466952553866361310126170225853664519865710700409545911831057950263671139246982142611966570491268945784382073274028535877560459115268091105143253486288678717047958057809155527281452468036298720408740403069764022725456726203611002327437121819233496588989226959238820348102963675088275898823077230742805661673022667131544412358416367883720906466830574439252122223273050336305713687809867163758229982559644936595227099946136021962263218699497055429656509013440315732908096870023350908146579853023300876230767149551348994016856965810874943111679910496008398969976747248316010266161867847200551802187410164377837467389440866323431593179138329694766698490589362151042081362656028210091419260431088567848769919858803416765939111827502740849851940227722873437846429956194261356025025114948531864581463762898670343555638913408294693384048710404286857440229068064987709873679786237330903083487378107352275062137998831373894300009292370576483357389512712209161747565689691563758048799264102478707439139367724962928287338016327093215585819687716288443154258125421430848876514475841227992296862882993630991033335415814631701559208879907996642389866959197030160772954720518188186041450776899332201115913152859314906721340319969479424525683580942981900050411973505967371607582736854292021415959440254660698572902854176257991341708921761628148186720279331284331298505317154845946383100460599714305175319047359897224815528199244923374529546969432241563084923302138562657669197478286205862341792091116646117041032539549688873140499207361553514285332596959211471772866197624577916149934711739429561536110843858784243128068121163512304250512452557974640581729263571221657452405582523992823791535219878723012169237678114615718602765553383530010807044046207283333912626263658738841192756889545655546568366236187522239356947565908457561386898200037649810235427235641413051005362365752948480516379116814486659412897375084987419751704029988986232906021540852494164960743521294431848785992818376949673163794340868277485690744729597795128759576975943879141954696122176411426948587865085443904497292792813711402118190954430553522330563452058152157895505995436487005997013845780558896805805288847624187497568866133541799043037347456129287903510902303956389004710102859927466503304862167987908978823729125212147074683876157905742398917367743673586096948125986052143602599617202278450895121661203853145214352477430411342689955887074133985349902578313178142599966016145728990684806745030901546526438287708263750128663940523816196885398531540994730724477275366008175544141531685577106485018720136353362925316908325492486733286768064359144654436198013303137812102896592561080265527111135813919221904776856446172621164161801715152299741888428121515352671842385772218551653000077934992365298796532302178564990340198566772008652443051427915409365456215020852291806667233086158007397957877653674327494375207152999401469244770784673086478247567368374469863266910893963100253012116910056980651266870864791412863689079372046102946137818261404234203909502918054947649726676572401074683160508918276910334123591891889548922287492060008582276668687289300587381003831038637035805105072240032326862882241434803914671728396662164130389858952312712376904343802844515941193687877353983161798260827909727652309002273201204246188341693338911670850697561143457220704486077080090343590796292384681845807771729419940576894016631195224132277167375009564590392822057965889261391037761610571933204580742309594758921730000316391683743473893134157077086207411236887777626979534761441108644582071998713428194891640433683528113394961495361070665678337964596874411345333609323231378387429261728768317551902879865874663257545214109385726944395197485915717327376251189677262553125904603327294842064012103212043685666199836929002275990598982764451861312037168838672909827798999451282415832648657471290809597705513363139604602697100465709123917639936203619231814861968674756275376398474877860708988847247132629562062888391738074381659530188821677757238029845850280772408729348291186470485335326833102067568177426300050737998338536082557463442934678063272217018712117727564806589525405788998648297289685632536441324295760668419054088568731879788855670504452680098268262271501550554129161834551217331683336293572989695857468718534499886442577167402520761005542927467777184279149289262133585152033567365244482096254793608878382782519033619666484760332873368497558722559899618269268581859264869679537834801777848663029479473405150055233427476516463789824040949783067363036249057547994352410626601049023572133014483579899008526327088747824492052548952931063291690293774227528742884300355839282804056523330403807171678433814437893054470693071214315060835966160441945134962561098590195136253797007176621088170860979218353403792141374007438250076913169992162412807217416833675106934876072299729701221770302168293358768892839869824612445102436722813327043043973931921709746055168160547338754151158111465677334555158314832439899588108326788580526444038151820191895251553536156327667547160555570095994040383260956301560169377754594900953994139348975215439271311799869463382363382619755039859640687209281300096111742151023462807460432187597090083743807864916637051329308586775698615982152985703630797556964419483665464801710375505000682531802272900545789748738812028842082565092573756216898531055186820726693115375850102169706647566242640258269978165868449047303225438809657065507352847341643095660208327979823529985799317306482906195384492089544843363570806150069247874147741030188942567631659437973941781279658493048268745381823637782667147108242107911438086422810640307414319202182671793701654878113873570630303993069294610931212968496329427930024281621908072077683120325385248321608266773925923273832963692052254338790572888312502012855826100306676697914740598897667574561063155704183889206460004741682368469740129701097052920979534212236020448061390624751183525069697664512701448772753025383551262523962442456130256973263089251567516808686107114428089654582396066260404052560097289929522128131143565269553740440254771608910560567177451442826317919972847916469284581540783460053627052703678476519948242539554962663286680649718093130511212562636966268377606385192921521544618320077672488466648042146525412420437549469109279168042059223702394999198740602445974463665077001503621729654922508815812266950024406561558437111562492120239759254264563139267734928714541328789091980585831327015069004275527842185557370391655571357272434703465319564740294688317522048640318644381737044363785686586115095231763277180608637467132094900635788630834760383843820324414662468450456007233591249352837198795920590437132397046633088826710242102510697771962158444375768828557676499168186428903687391042371936620646420582940229547418199468601442643671483415603658396900439543454313898696153684825571068224848807460394882792512977811228081702345384198977872731603612316798282457958944013486323638544561856516543317201302667678732645599031319531836997001093865726904138185558060933774725308433381293700444762897919298070846665350556049528924902660410736079717505994476121395011816054564444276613713822217683995459746191565868812293809586111431494818645482880221289157702173151702911207298875366410012615229678276280298062344670700809385185585281883021885396465693665953966713675317879380847935178610281093075634692484763858531505542580570956486777922418703011688235273205175564710782428567597442533954950133823881771996657699224860091542382740465490673622839189017319197137560562133244868030313558990511344425718432291578671010615718037468110959307279638265647140359019336268736222457480150265837269053199142579794872285956268877893062119423974653438811119786575928487388661760637132298590925879223251926814229531582794201258132490046453120213480874763915913940123763698764951887170302196260630702247953597331141868152831153064563868229569784455640580249531683325650026344813773333817117724602938703725383879992910628205913490098646548911025506016061694805909031680296029463543205892671313577912048045909085164904826923667831742926423441702862529851880305670694014456403344690470653735747765629928507215114444982611851062376076523491736811929864568291534859415447579958786412633071756176609792628497865961705174975678015390709767990754715769150276475774054941460412206192646565564607705265354257890911836422841093794268028630779881309717365260466700983589874146138765873086935374637163461299356525405419864626940802683175709808952560623378335608627962495613764571414358516668682594145491584766995196179674132596140445845564303433468848472573154300847644864871716626836264900577880187911427356125828086254013832178125528027829668109133446795218367273250325191762733814812280672476352167278213091877001597427217253602145319256160406969669288539878918011793262599777657768210718065238428597902862808171422929676933467011667446212236490071794905288359023579409173722352380062814835991745757958061614378793540205724924568339721429757344917958186571505616585888086799402127936782244187309131830684939850188195970551931018142104651082432033688783734751384742867251911688810171354808678674610444332164812573809442950528044183949406254231342764098068510079039089388346539868357032283616164529576303339638884354452973647964811600710464239985097124198256823924505889781677787209169151649625766766731017503422326286990556596940531778187849478999610181462843795968225514650818675115001180936991642728711811883389781745113579847601678042279089495633022409185300921751934848289791961967575857480859872519884265808088529316493661036436357317376814756726622172219578539847703840354045160115168099702902947630316482797147123621318955362689271404846705602311615656089764473505055125720171241466979318216568431723644616395508253246130401086664877509369462958922824380925407557169515167199100152788275165368632624649476438030223784141927250950004651461256227025964385170246475788889757805817147105049607243038021535909909110472613984597010929749060190882055864267652022629756615825498007576041512892141984889516881905492448920631350081180734469955231576758070866157977570601065638786805500099048336318670957045347098976825012631801523433879561301033125504221586857657955435277642121597814193739595253180965738520122694583803261481781688346175208518770123014650899278982929329693056692286428293207465999188141831151483589262121072400130057274502782148050398846841233905087085795238604005725543137238566916808526116484015675417751181268014050406453577404810195449513240905221386015925991108523507090497137730052945727447285180584252588498510989442121737072678817816525514096280381874408371872385890024121622442375953827872121957889485354222818960872900718635327220740311952786575216962616599087829795522597235520952681072091112368939900669061731943449018105734862246157399477020661662597752526661456543211053857074137407232816296726453686482915821741738862784699528329079579100971808672564060539332478671469106907484574452976922175161049237481898160140533544635519893327759583241540689715602694511050139210991864679406928155647810637854691280959228880981117839967762019913033364165740257186737065917060270577342407628606177007891038942320686336999075480952203397753545877769721687420869023925108226185479655090007049443619950261311030308360771715907897110059807060260468003854012540675974823892888175062200602153098507144482680552450082225403425844595231618957180199472860686873970606752874847961461963441116629466979489530748644552880914415259289629220865490081875344799860745265143601536068966177110506577116760940137236416512043234368174660335266138797999931156493755628885750028068982086555045822898224331815196882904235028484688970362997618691388350659553615654454892400522936753180882909284435830159667739799639538261413811431674562528235775415069846098797689981714514506570179544486813609846357357314563503148559799119526088634113968353052211316502396642661553177983514067829739394637447226090779881351514055769504593984201865947385322919577782709638820269537906790217873832026203044047880322165631201791994206906639088027963248153122874115383415162798588854622127364749298303444791323946889973992087188380779364561161749190399321102761174068718438560560498515314540966163355383073151422633433091628829635877935013536189194819873115177688840582117266298436803932444128982752860893264235468440784144351271137130309878491566211799052133320056693104502020012012917208045575923933045541800784845639935777372481521653118461795469176816791301596058997594629712467666559349106680548860862322065147243438162308319377774821835519508648465499162360079544284677675308702290917130657352460184550688231353277042916825421846450164238562413939289209207306634020074680706785841319986470915513997763001339194687130546382998059958329692577574864373946019429986214502558141886490404407423123393392982420903273468523553939351653137125722560124439655850925063879020321521633166157343014645561622087647600643498110942329638099482662941611359224966101306783364581210979239651349617302920365734747693217825596355372724919030578723128243838048974375792639615917549945506478273831245758205254080966136060300049014297442217304363206959061673861494996522748052448897886771734969760978724675672761068093005692017143983131048162412391779403957905859757533168527791499723654939874526221501738253747070736408005760692620667531451452818536840214928144464222168395503594255050629246690676874701305062173195980710025459746419233635118276930188388086967782109499707388885989586584767732599325181665240338043479503674792501395147096440173063252295823634900005035713534517246715042023838386785911375218234457093781964870269094594410840776216297969565414736715742842830700732597525007245478524374297416051615495873907889515079536791571025207818126243938988237412271443791993352252828239924519750169284207682227850753883925605109589502379526119256121362974549867968591461217109886950058520348361219612047091460322733686503646103944720312778373800602451100198867587287549319795417058818384116997969152615136526705938413311258128113812610114888810986343317574241160198609896917021550423396601836545449717010720291337199564819147334379783898396723652856426869587098002373763454477732186381650585831111350739382350600414970198412897926556428241222088106435266719373669899534261365311057347607423500156423110887895754509336341373827427155302537114534686959614161268708622235213808546129102117619783027051847422804645619813108491374343949692865751371724224080248267050007140913463913761763940614947571684471025138309008645844354338278532554644790582238603376252879764800325764282696390790543662130895562249983098479472946285669755899517136928134635125594074289509296329574054048261618724143224393660520110912391169703461802359191243317140952324436521006168040555145512819836983602488384010556419561905143011452419124474390555908258758988357128179081065523048308751069935132805702348014517916989885356665464273490373247104969567649037163100794008037745584361018489621642317799462539357014360319493097993003848915521325056389394968806950340203547214874897655922854424047947407955394053112544282271740224870641169992474479690936604228089934914248569152097304364609793665239492479079779190137791449525049044640797442922880700852853869423864054227458700591038897220616475793358591330527608842812231857296116964272302137758773704138965387478515545689082531315169753189557211851352887460062050453697602795788924983101109666902826782263280654915325875850061024437610350845733257179760432312959081516524111675219479444350153098899737838481976476317216390851016662552210396999206923139271359523878424894622644544729752157329027163168502225278285740258159521500047953291323095385334056781601598761962861935803082999626160170210033148804340091934143681401107324291588286321912315047315040449807143260718201868525660301454473335545296422037358698201871471930797268518201572988619463984335893171895534242971780208587200014612386722401355993500422834938014944453706402422648133639824250103619974271464539001974599100321167158641805512333532146776000989464419691375878021878071301432236308443811516449101565755638784710573255403009893980277527564955123206372831564389643389820544422731116094875218206119905087588279629019778855950545657503664524299742824855493043476904586434097318001990761020067353193366851738096029645753959976441592399637788787843410988129193429515873443560979422127444877459169524129714332764091523746274164045475492066232499409447071199614145397654618300619176815135524964320674260321712959090526698215075297671853146662976043809335214838056972778139867181640909583934927689309846979585386226915397816267349860905178764314642283605161901634353255882403205385535612968939856590999594699865606057467080990866208153389400609391012644781448718255311153349257345019876123674930562031300409448498811305869387616330926509139062025492203047597161350262666162389594797857986564026265298305795070494453802943001594805796098560730952392336872142169213836750659955042556300028805014441113838271579162787431750320779319121550143004591386696567002244346919437963327687595090730108938058973047397539217989444998389541372375164813171977047810794385453906478026130500043402242772410581005564106979677042106954025645436756452832832346884506283682736254029731825592143438855306609592104169617803370796238134673372707170739740588340758727896241583111315220742079766488770148526885313435490920383121284917754306579911272550545286016048218487933342957303603595229775017814472052887738157845691357851103635618745366481181224593181063027174609303749582577117397470432495123049676420772895883032959462086230417586187259760058538007037091970163620335329575858981153960227430568651503259970727853869853519273983114624120199887883982273636807660650347066669025336300487068405012030647693607238013414401564433901613120330253076541281770714284699221009978866322252237586251857097839350210537531396663509691996316978874211260288093036569109794762862952366328913207725574848106522768851566737626102054509288092626440312327532499571357902293089840286909233387687095817492310792594155852495966397126383529240217795169623080525760718073395611731829430723015710478745938631598720735239954867411668857897243920284313407003093590206456508307183932811699469695374307600799053331450256841408632550576900595287156697365281677393253094232419857758534896442358036504997335163296398704025108267052016043288421236982158779095316993733932241111964809775598655835762485356774196508761062821317005876481037619020192872872783850369231389877700262040231475867246344433691631073922548899557405607036507572499914774130534706873920048725682967935676511132265819790268760086205172267729863206820056986230775401530784420723519295093141890439525251727004157719379397244305113852896909337154500485672818835691008515206171463708986322643036736620738458740947410455144643744385476244928361395265271659249093199665979990741913835108048024963509641555340859366119150247934785106267402857866492836564722733332780452264593188384446720346286895790261142966125609428246427389514114446945326466353286774884066478566123971427602214751885052635533739121871913003167833718012582331450351549041272375580108992638137984462643299996931399289907617850526028079077130587124521302145753060308647993873698074379544266351808639166358895730724512316851826490312193476096359589231425186957099154596030112161189725600128071245384594058306064113936253631688355110645276275844559434622009216311999255179617749467137842605675304572548137103308204017403297616427086780390852278764148304709113719193224414963768590619778101017396772190314867040768687145698090685515028368965441543925985954482367634029895534983989705616830631099295850659331750420454602857111691503771891952969412185182722879858990486548959571293005143609937685361041670921685420464224294022401738196319805586616329236592450235569819558884282459215942039559212728784985651516218839817513616508750519581694664191979509951085942849558651464269168492450763507289120395087850999272509052217512577675673680266723478936103421628419499705508972577442773429898587633707720683447728819993803945764741352354475809271512183286667116631187845651328205072804051799047287561153915946070114965588123368596122176481399307503247999037671054524544737430683748364904853695631326397677347741638923446625012335257831601629208993177943510655973800485879449653639575740152290983953126396572014292998198805978847522744017639145186699607253433888194811696694269044599848778231091522216265466976479195403320043972512435076922185316099340582653057150473932238183699212248392820124523927824892120001776724168874030508896659176712954223093342333691019078686598175494910207710228127047335695398041572763992096315132186498608709571578925468432606875641907859952270472371158876997538451153014892510645955806610184192604616495005789979683431527823927393141747903407385781186725968476540285178029815605321746448132686231382625016651868490985667823853388414980656848532581956858567221605709544808867422134937076783712404360847748365299050864590052843181689963359573630569832614090381844253990924564839609934426577302104928729559352297565630886100714661943860418507113860931651069878572604932727893933375532361874399728599499502082111412691690681798350189308645348407505335815018706767297514503498471001058129010236166496241460751131834818233630834744045933702377280148603101422572498496633015837263090670595892520015850549461578315791929163394033838307576411124022949613323390639611612643756530988883504072729495223488918707478670994424549563976722361527713569852209208121137602611928847080837032943567979832133465827855044782830132263639551192877754121093463246116318684074575764296409918022834055115375308216548228575799950376511178266667163286186028002619722067451837449940395878607675482503106310163941441131950249727658003628266237230427384083939365023693225930879015429461301882590194549513343326775497467365860794929241105212935872619741588251891739465336097336577224592109294838492060838721840053773977882241602566076368382752825786392969302164421964459813457275112949281748187994548946362890136971094014354396720913567279317414554467002612549772751077781298334299758323835681188469232524726938964742805637458432355815716162740262015728742717575391980748493506975759942258257679179289583333080880821450909804102413092227434185200078359980828938569820426659672312868172998801486574306032723155086133757310408210918009570507843432245069898229686327641603818601376265615169765051503248657937657671510989175482780253221939128585296571812476774158833248597099131766379881505512430357680710939360005887928913724462923826488128312312941589494449811197695264089213362928975852055047471204758248877845699157824911399820099032800723568144532716354569359379226359375500165089694330798162952314917124213472738503339021577324749049387950263103327019635430155038567612300001469446473771193086990025135432240006817852936137291603185718378962287245852026777551664014530350891736274404870342002697159648352343745024264316393795866627424363471025541672510038499647650680355247228143401679567838510372473766612998372806923216335392368749930746499399568094306808776236831294697584884319825749898346325475775617538269052587415736016804136700725737007257452791368745787115674460700647478923874302491903662560140466015893267624205318071476718470987912028857685221420997565713842143881016307363997866813055360515994187953086967858697209399700473772032832412084184751160967741104657271747661440518981271886128095325769614568630492928452761180651564131044045997994895094649198185946821111532831834361562459076502230778113588911726274595203728554747728256899910877823693871956941909177884419859066036018758408582635637053344199727958542825741094691394334223952863897827680389491351984491658257954247960377944053764708315751812944645214381911031803194234979591234208933869952167341753774868461888566946617621667825000887508567109257705801587855480032692258981410561844462987658058825865062947773609606969025722987716413483556033291168990565749093348349802493954479856565611920683099301287632557138164788192110909116125691535991318547590840792010979821817802067102280375844015785077196072319271156724110400925549579818985328668072700558680776749313856669650624791809835084380746058529078384050372908192883856052935591268564637560541200868893116491230367083898857661655132852101868268897539989788244250204867393811338444860441210043717795822965258118853754758542096704334434459448107235787583411872279730444707393800068757220123710613528603711642396537587142671491246927320941443687911691716065788484256523741648330590150561162747431009829246760641451239102500194853505617032588284622844584948794166576086496343079442323736957080363216405324248324242025104963033316806313631537327126406224004329099875739890962897449329765650578994811958079553144224954600451809899126099546586990791638786843311240212051823295000270798461363697792283657588838505203631565848248687299219486874741997501589345727049628028298486412629251554995347824353483429836663226618995450201280674944833532878642876997785688651352351460975937701007010870116251438726747944017188391610677109446699520294931998987786235162011264931581624218932559026234331760226910212058178861532356115699042256996600832296120617864573777312311069807909877198687748415048829187919037284660836160542284439996658646430428238844834881940055867594451141217674535114310856309999339788779917710751999167120286861122966356124258530673484450913979196670997316182925355046676503616029550900948980421869086628873473712022740031752948915961750736625190196182967783888550072972017351455921855727154986335463635331512249512005918856401138422107339471922914028545343067545865195878757633172143359735202535861790974704684769207944496607053421938811985279721314354618940830188751094463356201279841018241429370639494435449203960632185384902902085331664700570404132402740623822590462410498497779253379624541536834643058533707733563937988432733948858622219266553339028558343713925521651558795260822471837351640535381687100304250433377734443243927317752338412658923839101887076620484924238877467982876393241432361348118940765977183025282447446458936628067746844603816998717100269157312817359469436281702814140361650315332882929542150883299725006978966418775939379293906933494837207544257758671844464373205971092467470195307230506127870230347661692762243528000958407110988675428927133666612020963650064054313486080804159267604287415471687307757879347154671403605081448785431801242177534889920607779311717648127195621796778905091341207889377275665712525444888208738614785807415932334800610057570465727258130322088044603184100951582728175320111193942203619216417076666819590355543963203551950895917841837704997727437665493244711378557693910968665696398273615121344110243570584207437269254348268835360811327908858484974890016190459769468342436254222709886319633657108990500565922765303413487457429530340245699321536453129831515391729613623911400446764917700281690437622342447614333840080387815017506539577119224299911634501439499332283147015319626152668717831861291210486111552761411904440439581661644454454419287162695480089608016628344557513770978776592862402750891853665922568573951463378114536206198954776739641510915268960496189037062348752301151516286134460605577606517058162678844020932685590655142677670054041799921131156306430574845950397550072624261875623772075210148104007813515266877233507666611217948791349806693346716735390004197953007436870113628241012585789481142623419748718979347243027960632447503637182087770243239447935137905166814670286482660372549218855073157049304840023879714581314529027369625426832675975065699005657898401014424848126205024603941436759610555306143233630011523145406332069149816643406652932640661216056377120825748899713505996624921165671821801320230681733803669861603737925306419680591264177967103945924286952061785127366131223780045075025286554999046925635074321717560577576268239060917288361304052387481982039677567584937422660951915161609557395714771899421116899435365309676161649671197519782774177776223342940614401329124191494263419159198258335057978444413474327957743260146562626011302709959847609598873071382998954737445843632590166125099840233480474022459809746135189466834345159899267473965676807038991857838949676826960455321537964348853516850312416484080728714290860550296722366406135034802921374719214895844209468526952797168202389801300811588613411605234429031507159751204020685780805545041400515972219861258125001487030117852960507953097502778205408552534846575748628300032569419443922433667262066677634781905229124066128119033322813698887095170434432934164634173264153703002010947453190206928804656133309898325464077677994113720129495188504724274582470988300673803300437153820185171209537010014947443610593002910054003174284738077349165203282986390893377853943681344529891982974475928179686290975852132139256385259991191723621390824730983014827583540333674209992676372121121411274349469636864991895085024418941262098415744925785546928730943428257927894424578418050670897424259327349005768054764066456347634598863199696911688514953016227626032574073300548110210029037909291746803001630919662547532651967558851047860265984261962743580151776831502801396415892996507341211104259161290377801986954436457755336951218205716024548083454808934526735149327322824417281341421054530385755908131739172778945642588699153069203031550066651826800985007401319190310500862757393422722016934773358901430678650407049696730888005644995803762614973204251333007918454234209424706203962665778339143789781480058359583449346993865719467695715427541070634193991770051821188864513872717286300869057275788567406938660733137688206024074621144384206932626063316062419979565116266715458019612999047446789402403553491098961426366560893840262864422385993701650685020320030445795234733622100238375614667484222324052411356284618503683285543428029563142647664251702160796808661765230637201994462299352100489420205879966591093366671871461817574006825113619068719710862457607169504724548789866952927539000415285920182374612997383011958235304577224691870070748904869179127227823623093682655645452275780936544458898385148333264436557878771012777681755880131918420606694588754596968188627186138973670076319325337554650523948765732536407301267465151068872716857837422848984529198529849641846688074408117458746891110171011965435789185078082018230300943050891352571211926171158128963870734884568141841637734810844481808408573195661488481573269870213759016786425976042668146467988288089666716563831246693879279720566727802352916132002791167474548685297852053611133625893067028007755188692785479796081567132793753953571019219659455725020202712768848353488860898340316055301736721759249370899685353859263559311297094538085860383010120708076953436636906840731727272573583882328613078151006192205350280399641473969217392165677406580402226534621130893256604879466820691966239403098216144353309622339834623846171081970074856664307981503811892375825545292661974722270503969611647940128633862667904908276911669741892281460475662069013965688207613413373995052015301823390642951052282254182351574524417390486377427227233921364109423549265432663150061447238118261540681237587812407463952771398202873196983729983133890202496428310587105527019968161374116221169927890666386135806983180876235857992426735834175928819634021152746036822407585958070328937036843091346882372789496598379571559005339659414971157549920799693530116592946427283340046361987830804239690914614694779117960825855206469877053045577414020501955587856686162353319550583903656382638260335735853805724160200539999764434399233619438884792239574465861759772073832865788491417110431475979511118436976781499227763040732667270860032597197043869771297674445586604368566847934588575973497745224556793644692352849855984824375139690934622352226148407893477119354463615504122465905634333894904935744383528914499328187053883553223337913579232136293125893299552726135387942719082506173497193170400740248544043831978265831347161620175311674449155234266352709560878029979969591543932867917443364531669391581718188069803259138165570024664031696928919645995338104343942513503170319992316396298745568183816538187192492913340095152927423474377773878272208265086791620891921746569561052801606593697589686951108772440323983850629357740281020286455646062763244756552881809517182669000161942692547181767501762954314155725714388805437019957438821206081717704607399900885598322947640213871980237661516697866181243545099737225379986586267914752081856071666563344700000698712084661265545470211098858536814245024877126004785990058728647243450285255648967237164039484144200062916284419547316666883009557547079932806230539749570465884490390286590547374589021965519032236494560976198823134852970570103135550869240011021739175271207397602316804422594089065282329930423470457154531075089341381255599017526766804106909646979127985566848696339935962889347280141832372739543520240178901718021630129127317465892757148240090092615864752511247733725953783150800569049256625303997592839778382794368053234373361717785217367350935087656360865074564436193767888050828994060963993226425742221770377425779371581805936086568471289614368103278449703307778242603468141215841574100074480423320169875498198441990439679780399738675115355220735095116587180123879924191283901807912643732463333303263633719812749007589824419046126981763711251410101236261029993042637646960617106091394491143161284337121923212364520837990372853093868312037818816938636359913836904337597044473350619454118100462476740065764403497454204447321787697091845144194718129749607670174105670662713370264880338914323590416852494399549320358866515986339765966016691344768257867031314728823041718149976398230466106465479517287309260724313560795305226922402047532245096184383403048355578562692707639014915081390007678385974623416101471192223470700883152045415833267748742420934593720942045854510172108658766719701673747607322976728332926473772960097807122802508290175651578891133225843496574637764271023175741463519832090410534635848586669658287107522146137747973988277150905195725207409772335396263632416988730100202341585581421392224751902839450439717438715436021898182358388100308301101931962095992064858763104177181610257554689276305855474164977185631639890098724530347623692702647510117652286926257420055060449896357152146506998272279376060344084668625189704323435256356710652532413355742343828406174580755798903750859876449633453885779089582381165201491452857776938523433500676977627937839952626390982878605026545625757361564222478446917527516439893148221086795232307656424186988287797291315860390288447118096737274794338560232643735793982004589711480505402563593934130447784966603735148425340141604876142658946330567046802149382186034413998208547396241082342238316812822852251746517692167354420217061005727421846445377494426553869569719272003626422392413892101520017344884007932945663871444138999351521810468136763494971669586982228887944443438238281755112731305600520830868264802490505393792704144047591221400685139248964758062142364900391895550372245194315412837888591997790730262427250252180798339688484223712870595408454795889347646295950028819340734248082606233437476037076751986507538027767469974921549036504691941420987166356282362026343203026389223852043273436884733391479941936586500137913961389825138411721581338670643737513483331100828622995554934610728130353494956176115600337315228297974226319411577782628444477025777268989258533889623361159668112122763709965519181372448216914303432567786942343109587571621206221271542586052939945471024092028860861603735373918085164591695732100886224255211102505180377629370277910375557477557723600316488253568226938860293742383576621102386642446407456842737459387916677145365730638517761029281442578531440563507264435566736340388983389335006491877959444257824254904067180317286505515076175297999959006949657368161115146331377648789916505102706365901677300112553380493000674559273890786611486241148965361488715546337887952648660709160913047522667917183473724102136357165289758693207617215884147233219616775383100874633723440694910031530465931921088304044889598288804841572844955910017114937996553943740552212004824490291266752852102857948801816799195073036273286628612697153096883526133822706477292984031834203573451859780615087536280638943532226468983175960171672734144787342737931508110956350649425603690268110489580119772389501859300030094927607561859206936353778106820113951743882843004935017417960366535740482940044897177306136383337638875679426505849907447920008026510573551978507782284336366940769653555932760700018375007848911843931910360980399722670310755574290809124351671030060407582617220059569400680913728540757653111110316782424860222507871657256879857681537661519437925080717250805290733809088295036424131327812252430442066667368377165981086703480664606735906146682043729377581082368068673211258574254344244958419671031731131251005619116241684312689278487114727719556413528575982847509424548200213626349162388971957390167167396159754726466114390051526480792598371178164908238355546644290091873852492820692473113943124985274114033453928979448350993339699445875386461151213033188832624990883173938444303649917018920043576725294331774110505429865549041833852326259055236022159490762105842491652139856582439599130504193822620185344011661464624478820973135656124229080649745973949479175525068768850538398054244670723874414590061991056376529019738213524282724827485704790292725858624581761557302267012940685825337855618621491510469487783206774580696445017905167566678044720721591287975190411475228928523535624479615320946851712733185468853133771413670583439347816721933410102978832707397000631681356968916733360776507418344954445993986725711756628747141487268748086433109357825410909642674314302964742409605303282521876517118744771101976494411539655416248425549563045269276115575308246208967768690777753973516175036701831923146607296715080819800882404413051152780904270791579278890665185464954915758980238728667663348629217157863378498074555162092864925316184349357605446935904204964732264456007818730675364621043748075138539554121854974904592700945802089850466346975061352778479258413421711569697105711447827124393995342032636223893357749983001090989198618073013943334277209454945861901656925038634895072445786413450048497461930778201248220240666813251774901252268980273268169467803973704135171260378447360179007840795910813042680351255363718116911882793987115743263674176537874232341189160486871034104021924184692267179209200253564958019329797774737835528403709279942881553563057517442607004665368278898678341390986622479283408914721569157100481628653795578940018695772970296413110725963832988664711690425887237844162306257497955028557771045556158532407959329317700578815688726314485867438459394348020099368052957214717322625416459530414281439729084366670984703864231442875676379139437296391227154200116346560860544178678273053856071544069856454003264910236948342675685862722393635812430430954655288077711736889354821210780634173677146655639417810862288421230471518496471798434956026344207533211360087996799616784493159047688038944998014533890026641861888543751591739662711179166747714122374220098213334662928865000294413649379930886542776656705402853216730713224424254967381395154376555176730358614969755577822906835855742581876509529837268591713714167687963542363132749662084988844668925787327537171598786472082624052563246084121650033378322107569561040302926764044135660273407557341431550521840073384691312222119760291473949684105661255166166868939034119327723729151276973456914517358418404252649909903344599855762382179627209066775409220346465921059533682128560304827533899352512986433621641033176992097697523683271690470838434717931990522022929865071822082248656053953805696106516638057051942322430708806073997716875880527866877412796664195235807383960018283466420768753903812913349162295676825202193094402402871899019070699843595677889036430654865323649009079221266979970791484455279954351995276478504767817634878127809358543726241076515804266257416312533510838810818846963943677325582260993110394971585091825745905226539959513448172105205542370614975053068751956713036163362345911461475720302023719239179728096304657263023253075366103011769571926921055553996791442662389015598480117757335777102606952275422056034121585299403882143195723697453242912471944876200646795765673078404385675613667213829742545249249626433498850856592138939330912377159231329680660158118186518291506681152250155564469042474706503584954344001737478136730162687560570026080100477957424980229452686213418790849111630547218070971929559538628174620152957936384722864730325892499238915167942838774776050438215137818277495536059860047120854373216347646562823314274486619307911154178449529050136048575927178558412209035792121173218520849624611508958881841910106317676477223473794589364905679329427959094696702040080685727827636131889586734631453623174916574974805357620032356468239737753465494698311535699592278159141936282211382928646347091224582431312911123221791421175108291963943651052823369840373108756026830966423932287664733473855653055337191971147538241883645839299391078098538842210001972886605418651128960180655107007343484751511162060645335298582656346465179791017953705006507135043592349108692327314003313088519556585565457040243225755149222791257338550766285327077393394811410872817210524214012233415336449494041275158479753709449731117373955953508994011113598467974385126792849071356808738960577597207843760530505927872855777114020479095495177814025751740355714334176959545960737792642919122157116443747706180403707872127475345958532734193443837166934214336084240829693200292786082031198945074700279618317593152280808410302790852994725392283215190186970307430713560475316820947072090792176627703037634558250432129267403271882451514156953583322144795774193873211773060074014212977547243204899257323131854197346107303324979122978664655316701471671203425848587683005022543856198175514265734132039391350948302022890393831956239624223220256618708147884106477983475037430235414704334277304745900924381167853177796445104264968421729970395548678338612050843324322880491056377342674322324639306297119074642428051890898505088650286379317023877715201819452848933462332208771229106289832073483450787210937858316363145509640187151013218054514983341369925664112538576571714939385751379935062395827650357022847182716938669798863626536392418397735754250703749944881881643501462270683373528319536851076204356927026950049342227077935865755523298943119725806100773770717763368200876461519652928812787259268222973362120560549233170715132076562914695271898887194201461646377487511599331367972509428013680501517205546425206096399303253706278674653361677567903647711943578025054879597313472895557546280360514588337368271261404141372424893754374375849915036374822929128141897752487656204860278402557524679393145638467708426944357444001331108928010343940667119889431572553317999915624930196107200614371245135199651459894227399671420050688834932062322959200286687327578798934870160447119413727460728014478676676497010084805528284666799291881784311737446711782239583362226653588304605680357055185390767185731340871620350457650926954998737934862737881727255538856007419876879802881767977413524354450479847636219096341139023629824207104777157206320208455846471004888032500455060630882518092598562133357407433531962143731550266653892974071478438278201153077794771204026073213169544156895800716693698408897669777216206133465368972098445931989877061781881108285788865511511323985947129485936475143092235397535124847433549044844735302257103109312924486067217191422724654003982652654573694424950837339969348386721624265025306157771874242515894178721765041236316532986310132572526270979430284329464414865504406214333751248646846981069387211810321556443930092685490980946583740989722923062601971529430938111123350323901086213159064304052183650569956750810978509161389054299173995768319227979897505095451978947358620401088243973658426504408264801039397768607825326317507806978156435620737836859390797192632077435105881754240482237046014579136111889521410601687830699788965250024532822325327720992339117476360107459526492565938119504946838792898401960793653185476184827194628759170293879829872386683197123369786830688197997488217753970014673387998746462716607527049422387062839172501177210258246805837960677532914435907318538173906924457721773222423502563345204560056442142288817356581571551707375465365756258807687667488675785172095044451071092561280154548125558565408549233419130729578765221592391664306289620940382417187276405002328090526147317787976901595216956399248059597100048920440891112165417370183273735266710534536028595686505110667662420692631696948546791481482243045790274139255165592412001616751333504620224599707582094127610013749550643329488984029812382146264877469598683314496216822607894450919477173519161128269497904776203386694430613937746000466490654143721411441891898764506518063902656977525471187562812666102859980918282284217247696587755755663747741473824331501100649851026710055514202927251045942277446865618005614556219814959055474409267905758752015440837051419819896209213545256622544484226868757635217387057024890030684227312272812513765450418203786416641841561957323535147589555861680007125757330586035500492310121359633077832960239675398136292906792624751772670647356046335788970751845041855678307266194668226942196269759849178931353044346594952028575089992746325074908944767380054153103656117445596850219728742937738486378927298019908371608209104612500616515532721957938929564191263944959190403449690736993840923020055841224135510233823218184557999012952403983676426857561897775327055065612229757226988966756252395642299094415308698889421073047005727706128819146442004209141249704921850310303633254313345341422070640455915311878857531427399971403453330902482465850876370231661832489226656152113836839854433651571467547612484312061542008844466713667682330087002966418989976837515403680548724104573112093205181489296140075547419253558897285978879588895661311830444064734123875645459951310378185488138818176251605698848285500353151309754362140550386467413389742075955505641430820047501403875294762008619166387015571402934668960244344002748294055891182179829394241506247529750164438949995199917876548469689751415262170360883493860400035207565495175409168224853945797153439441191749394751166276082207001714896859496245040686127969790183066696098279266260514075996272365904212905118136909184593896600592906936264877260326535380251350016408795854143839888222069177966473636378101527871157422667124681266468394609554333432717915645731244121253781391847443525988333685315115537973103933616293158777593516106464338620532882903507319967533563355786698250926863003783954872591329897910713452258819442144315107417684172784821396586504227462411624390690241475973754890474037779015603028042131868713077946209413259445133191124887930020667783143919835966940604189964904572906807523244429671491351438744566805330679190972110458896306053667821618239150464859970447044882961581754665886531602914447748543396277363306423568195705104043286318928164190851619876554451867587602787075651981664188620325412868404772749903987774844852268856412296820145675108001374280790704358488917919385419845060720115258163191231280676367333852961622636831747078485449862829981215933662113836846646842605273382550425512600171752709754789711972077010423659930565974461170142340000292444399525823466643745559841849468842909491293861819916907983742671037498046565530280741824468139891710262506493391924555291832502212081385817859946976695899785050673816536497966324267180593605557019841527301543017426547636641844769702719857767865893423074567168271854210040781745327247336761203601046757170982784106559667116947265319431525215094608462218848950293935644436815669730599230319490018278003530512654806266033745958040913794170437965313173397053762698254876979892650946378474198912359524771862913834071159549992801232138257168822959677963435583717592343500315941879954286229767172244796288466325761963846306981886933716665012392589585670124801092542901209325277960627805849809238566513607918067242995596626397598962973256272480324850710463230842093344411225703866147500983184088603117564846820947291082037497263487921816124940792789020924641987076688075434595068396607260037281135581707184221249018066613951033612371342125580257856876296663907832241180182776422695711486428718712937068357080837931917068706905399826342518878051678602919466813785536212581179914674686181335258034770012302673502950610242586264569851691854977681830205356171385292670430078570160991557128704174313123529482855919858844614085254358800467590800427913837112331586394870177816838219949053213449096500735551668808707134788442849641516795503573461685788401375657171436851721546698534999868239826330426561471458599973104368745480994567131346352372446634359251107034941889704386084866512260994540730396039105023546731138842625550752514430876846677694402853656721768116909107390774222380786178643977909377235096653864178684567754953706535257827924102102863476188444008147516529178063755485192500884992108027373314233595217433798329088905085904868000882076253159689290294800152044616687531665026085035383872251505005058339118986725762091589530102643839237333759303343848316938603068534734059559900707469083311506501948699287490454607851207196995070262511189853208070857317549575168452236756112636716231250272772244171332506653337328407586842324406685007402818488995763452512704640167516108844333116614822915876006707365780995789588218090345774013386086518319717114563112977390910515963371583183766960107045529809919680860259585707312765650105209652963178161048227178271226124445476018170074819075125024425253553353741109290745742160711017710393058249527076284569097466237838201316344368584792358591554876294520438109618244001883581937929669329513587119179882309097852739670941275240219856917643604768123585665312822896603804187283668885238333581161360269939516462201945742465567846124203617492580567239282657666751882651908983096737157575430361151324907193054537773602860093115303499966544062630490013898102142338944074469690460551298679893481620238608545881186091954936652045695577927447149979293315561696661991415303188256994849688045155045188985869297377499278906952987732981595115718416205064344452893792862393702862647699212264135987261090162595396048510534607111945688862673287030933123021512925256914853990124338017294985982325842841784643976411839812234613520453332401782207639473184435637388948220341496758048200035356090207512465579986076230784319499336211859362325944017363627901129935273748458263659570638842792367705336852751565454080790222179896248284415447249919022852255340733352242157091614917874056003445618850301479491270706677562134678547137523217311518238253291837189355873717681319646688649702701163837286808058522879899507841132990320560734687509178609736062747260175085952193106028309678716111851839811685806403710157835752582308443357917757510494485533207061222210078530848268555393361965611364194448331103450672485915717571016780768057907554873247484420440971768088430924933413747866392429246858265777128778184137086267099434890476348285746439572928356493474249100947911294849252334464510497021681997637916048287477318920918397163289994418728661377837910541482979461328732893272127223232194635208035964950239422424450189045232424689678766206039071110868799492905274957882175405183609974531605994852513333021327645659357346953733013864487548141935113446949571484636787575930884491901949925503836937524802062525864170179164853728820055870768352615139334991488625786508242085819312890271621824137439713393396206259647648588733998787074334624996017871230188554785345090871015206049924274386970111734776987158258363267076527454450263317276713827435956016436155733540912611881357802588313072276137264510113306982135225859276669695972200558358615196206682949849307920486240125434551859554898230290642622112048407524110541525785829540576898141893177524309614711884236702113298198934815944741450484764146162977270823251597933703989846543602705093464729025465867955592514185718769407254579291331507933316401045566432517590722893598732342243924709486667018776178528352595803085445513419621627495593472274949315158070998017743440548989106649851995291468944426567153042099608216102828828884646292433895449524037606210719063402774539313903012519410189707061705372320282049746213058895907058301840367144530182389136602688999865850820092394324360931779673396360615658049570822914047214940592879202239903694811161973673862228564097675671870412797374142532104507031563298048783547894764617008153676316411797750061223097275101935759807484141820634408792705433146555578871431156500334056099688270632386526253241168415257630175136471965831721080925164897132891202632874483217888709600995940632838464658071754665598566278936772910938246993851533864143585193681856793263982726229912555410500129762801136566174433216225414985117789727678612953194719000654028298924151869197846200010975657424890055101125747471318844497304741938350390706558575113947582411232797280962765709461066349542732205802558960805997432939626030626390803541360384272188805071507645134791143123292289954094952946055336136478265669809927810602032254008862359556058984453426831061637139710065467483122377687800692342008170902972006492559601830187657968623267626457789654227991098791552592263612003804989749312462537896722517320670893708584766752693828105784922347615846001044725410913129734436733684175852175519601534997493950860106330466324197838298536973798679884080395961070454047503833967733684314962997614831329033119490115966859829714664325485073503724886283225068945696424946228514588038553004495803874427912078884825248943301557817508551337278196991254431772698683898137761429498127974049780934862196118472258236611978647070616622461051173558434947282344287244992424975012763839501703561055266899871904589098213714225072588588153289864569549989154532203561220057889860753405019312466183429381190055347485292407984993016023527607282329788413347849571398274809574870532654699445485176717894614026340349918460829339766464369801977941977189758225938882415479705638731482968806530413988327634571671592930842639256301446412550866681585144631894568851470641579008468043821036184423698494553904978347055532324419346608527323808303337527182248072759441625579959280559372067352939475903500866345299563070729428062147611051106479958615572246020114471986553306046233145017551877652612442034930185642198083206515324744091274329729132587225038295077804095951667684418717477775129957509212702937870170544147670926668297418469716800733348919357993206407271085503868528942140439466712380542205275047014228429496432427226536485902427235885263602107179841089188912509889861299050938843119674548443146481836902344886313876846944734373312023840642485424107975795575893716994037037212054801246309927106842855945038212330442341315961702687394919808290528663688618193714115425774274057783930941413587917646917291075910256477432626635505419324052812136989874682306620680333999921984528033980194506347422326751504511095781281622640241327740757039008138111964675793760778795760753736276799101857943288210451651375357724534471456719352905027102600714024220327677524262478977529139264731054592060573879322382335056831395761407209811799657414884160989237042197009264807523419575453601773809058605651475067983193979158966797411710322421527637899978751454383545068438949871929591842256577079671896323094277161724180784578398448778483101144516295068239826129277585814206166248897189716108468307513235089586246666651020597300961211746967713693789783420259755418735529086055394598328792766224891173416845187829813393427012676728317385117494435603648162267345788873581522173855013838733238554549431946996557354612778067795291681436600931919622724556351415259052937714567737865276671735242892032288715918180299936370891713257691030949515771679081435605229382928617818869939750579462128072586930476409885518047291820280107578682305641625662051569551527638869522363778858749498652849772993047125445552202825902002878446211375995194667839785531314033238911350396136874837415972279824702459150102365895386335300565799175108830518755904740359161528064833842734388163275676575063613001174358721651925387739961175834155395609116502590838507239193613221550090464091979198256095687588924406025155896093521103819923128302619600114212885199263048539211817304099667798611489333917635921708310328370621716068283427198785045117211317716387184503959826746750903185595506163621130761412768248764551593513221329527750905804427526763670788869676314957159412789788108765406714474869040605435364886138624445137332154959905177129540006881960334695234626683173275133208791628663238463148668387754341746391097013326296706761467556768553790679685799424328833238610440196724749045235309680708859194305788082917967334991314415609080269496151401322280867382082011570728638671903981104161208118061900822814154477102902415508243401110132580412650079388567115441177716657350177467922522336020980679049950197432514010979967146086791918004997077446362902784698252053783747974651671092660282508289646949675496146931672786942129820961511375289672695747761299736171618564855499850802483790547974353820488311492459310509222080236231800404832065874209459312352264048503743075043881172416772012201067790650757903568842542749814647657026787334482055493292455150871574282942233613164855803065032405116521133412643510309099143576001671923278504296756793116018621434753766631247996550515469449948238774008072397016801452249682691440929692515043983238681419520992383045898271213377587298991294549181629341085441324525819509258691909873921951382825335107286934791388344920726871365721251041753765150820793146413351324680244439967672816118870166570429100781804491964921258886758425454119659750572961250967914287889565060458381832241547294661644454169789054413090021456536672481181524734227596207146517849355572895922819326731632377637211036010340795880249323575405120815792630787478695496660607227015410800219316913063056863930011971369658461828941099145199344360952160516815947958890609368955750368098550779801439067363807582048601975719650109215099775894132988754014405314499496672324802692534105809197113424363252572487580797843428272747651866098415286559478291148209614330584985935065834082069811788788245420947135924597363584836463747599940951102254231422648728197548883871797743043848469733644505581507522149480875548591224046107527030278248459071579783749290664451218385057563289692807913230362147512037502102374188507918921790166742329636253349699279713454635988396931734417812724011504395909636484414602649654760530650679253412188192630080529522364683445404349601835297006496883378174445126323288471094698971724166791145130962038171901575317156378630053096296881788787136984492804630935741668343056089790975584943092169812109668164391267425015288367079279876539261227668963591600897270060831200173175912436588820762791909655993199333275621553202198565162535882183307129420037507779282847771465580801552929729198667903238037487484352262473969078978393542595944077755964611876288316550891585830134934140292371728101823971437830642194422012263536525832261391405032494018201359260722228082837758102144766789787889324804789728079193622752816317308609092380842415614280223667122988799781619624476889057933302045267324154974193305570892076504033473119611479300207120870744789258852079612097169017094559033833195803935248905225294738037527859381216689059867954104398422516382201270547202657189355810287165690712000864636750864920484315569645708576488578167286090204714270024811571207674542350885065872106834810405214991303498310952770067500754724786301645260358247960737502918403623095972974728592760219348373901711937557300136149926791323640638150683163433091181892553879540732017357177531868195565171654136570093049300247086812069976671163914977538623919661350745821065231675379368658064194401427824479367201221702896485889389259258132950597350774059036667617693365785601710255622838672645775149595093682814269821956780279101506940817074243134135667167061123051085029415698768116241273046071380032185655324915657920987668825996952950052560971504566211924942722280677010971002550413333881606646404362720078394326169844609684297374103737216897242253120798719129397185981225533895536947579174899847228846546057693090354484431140794969142488690811697493985782416167363326980692931549455262034083187811599320160377083237393056488544118607261953147654744522687797904544993131275091496442554693730303680270212346897136975519423668806745982327357578372740449864625001809805297575053240828190633930231295868196940823284521482380856754009660851239753512230164537381408183833379704972773979458231000882273937338219041264078232283609737824586136546950213128106278801080126951205595403071856660485130468464145727481142869097251804654273377313625702669971426828923081411631763410836767811990932648418970464605389765032187268910004000420059544317498093618839876817669232827589906172581990819874069470224303491186600661178946316675224764683328860242466468953863976315376077094698565424626361158268290022435256580706108610183542290377055311709103214880937389017280140523427294060741105587857546885022205723937159495586814068513212233258786989894937494933496998324711378546025730280510014505298813655136835291523762892075782084291817118723143838961775086830375393139738632520587191475660954452857265909585259884056249877154679414980043286152910161576667069519523702149029940164106959589283036395806172902243296265114290200500136480608024435649851985901610614612760827987324849751336320087718957599868699834308663129738366254495809118584211043450120951201122750467023269234237726260966593197250895411755471511484557721954686910552238000306042327831459502227899455587586647058016453875945194030529410809217672935431436420251319830551496338953890760953557217631731631087160915676682387563632754987207456592899802403531762735765771634676420145065321767405739639544184188340194392562909328881362211936189784052150005441593720611619919942242286129302125702314162196882809306458611181891461148151806759308710018954634117518174336274654323107090661047820747234385458191816272028932950130652069406509465866210418057282855383556493879924477819082376341918857610299247650266647694840559517137537540750711546309856396897004467334916268876645068306684265557679997898705095901271205419928216319856127262294958689708005280123691503899963292274781878946243982484519469137159671049561514175389583784588273916268871564513773716976167142937639328651741943537361563950518002620618677893144312874417153741368088126029047690564053272074089465826640604540535270386163875347365879792758314121558615518437954454096611257896839718589371319873998449370980848250937272459160354035315077286213963834537174814930504314153471946408696182446778254867844212838317089731210341792401509795174942220517222629747307297221658423429526102157876728548194654075222522365206436678689500858770995526840497047503861886966791055768243856651939126648277405452182116732362512498398822010987853232045113819798562265083845067528876937740069449121295841371096710741593896665842897596804739870045513482834962729495706574781184840754915206412259431119780007144022948115438349677724045233200046285209849977333127530414530279211547664819029294404137676434960955319680183822546907315610127608794328025356352296454112213621235630553295226074871696452345725923341601193835388780611986893006281140942287271288235211176764433223030534313665879000917417050086078653855980232820134076555269757544189347678532176391269585126160139961292626066455831939244580979527760580555489499400012807149031359108144845349002767986920794421442997017801044296252527813633291652250007235471152957618573792610747673059914983998954177422388977469244387820512816871622572280812441915751704892125223300430977626760494130863512040063061474838505019726764541958369151081218035515299855380946307745578700536850702046232226507516414931735681198467292181392117416270328328562194389898314610627411646070470442756700990678744479150666086821514637858781673106840463235529349394597577959888740560996227649901087319998126096069760501866915124169487875734227952528118240205461707645718594130494403407863111107001381011441058913392328244075025105447629447254247845086622530555381225703755877625824699047063316245553796401796282815585029979778315168037491863053282483858199121207627177894261638550031664330825401669493292919931936852670465204454284570051718167054738535771784686795121884413130942330598010123975227375837930496023973230133055246201516793553811897628792172890532930407723839585682272970436616322981167601349871335487706906662354295111315561887213951434410854466188532619662335950583996466120839390611912825130444747811861808721547772960364756700864563832640156003207554972855382291548588269172285613288839520133316237897834734186687221203825578741249425645950030448113176434618851807977499152245854120732086296430423324188050121223217460826678046799832554967200885245327579924032439365043383826861620059061733404636517174050368882668416289957167663280580057275081629275793189424554932431350377077400116731332603492505646833536684622935778283418602064134469216155328559944011433270999004547124102147932169103383781056054634048963395528433119888582648324600517419334400494745353274918855869977508269567618870910535327896803904988770056636061217322101800887899324774700323151603288182884534980059636724741184409273572579120034856960169271599115029854422467615901942211577732709863092771687555681532838491432421182831596463881286623400431504446085096229334366643721740536553444376359815353702654748994058472879671261269193961267922859532011842628095564277054020958438845958206120958784033085236164823907649219443458511395116843154190214099903237942038774910006127842451277725267366207933088590484772633117580619789400135947152728222529193092887738280024079164885238739617348182737804158770911653484583560000281794268436755286300091668953510284154791759932370951400014066019318867314166346261141551983372888045133581748944179302346324864490442399103312453662266457393330137267821929449115518110469827087200467758392475171210104974470293852315989555751196951981970817847041655051925318608194152284030928262740825923065840373735134958058616950866194471678888427262415165474205968514595010944060852618552932660800194015619919802398853023613323582626169964340001491658669290600249356196247990449608427271964158402392093479019887964122925287748412655662598236870045141014555214856726204242028826871053068375198416541601205772047199203868355981556396301419145363468360221936172225896840499329882357150910026287430706880048337987807359906466258921485557535521375429664296260265972738316918527077975864108929880187478633574246540401278501190400281692650183766876928042927337848295506322963952311402562290987792570275378867637679718381927556757339610431658183357220754205573341734247975655765341654439673399145325345837008693885514123291826416370531266738867750093283392766442275534466809321281964938584781309343585409280417550719914399700476725929446229153951492169459058596719399837354392650510170796022882720924839163645598750809721485755666296557235247477896283059427035731972000069038564776887051173743473946000142378427114897564194180068346947144328110312535351958354080257686547426246136964095023111480560612327337111171687544088453850429361874340594523495382966136616938387518067295936995074500240979786538611810945308201076493932613374708978384102055128767367841440654812427474256472172361774949747525417110956502282511964622649294241536556155424904784306569690160371804530810168380964584800014358305539720844660786378911296400726417216442363968635904835690842291996051327517308576817556875799970974333798657142809711775073558688487024305508457811700927176216376007294943551294753406386015169538870304514582202962108892002051208062734229800621405277972772968290817479069963543703963564874900871359126917386831168766831221067395377009784937140408183602162687019666002409476292764991968689305349144020962647562355596261318675549992116533081954908414595844790520998883073957039861475745726688835329921832280031080865907988298759642704464849979027486841295217348809302860560484303786746923859953403529979546736313319908399975529931503141772232689787845067717676076772817363107820481433287465898349572407740624836832808117852555438628937934720146687738919707857508926021064973826777151072537448947094179787155619205443793063612903906997437349434663903462753630772223854817708718927629550159943884731486437906527945443291654309201513891579180419361575088852353756081422440805345208158884957162071656280540364478465989529614384795152986526364419501909708684550282562461414253770132062935822321552059336436357020558581858848698837696867207786184803994576689301136637801295796174568777152268718038945479587481354277695605857724676330063115482766803334779440753833978804825813215050563591264475705202608270695040415189662285363118674177768080901902289561016697458667295531100791811204704295602158723226990084811891942264516290751985958424919598198223243128576692306893818264725714346464958756081955889379629984292597602020495679299004669853145837858376059032544133002650419322255588845120384112416633228663385864454855491840819486402937391736169725534733970253503399940460094097435241348060361210635062956245047330907905142157414348371334849078206710208868116793230121776019870408503750693898918603685510087878802365356305011216071134737148615452407145695390536362946878502335877187055973021912377038569152554951629796455628339907957825986482834309247356539950814031313244689190812468412214391578857906315960901387896692163331661708150216402656310003715350944243812908460965393087601547746376877947570779579526602098362978158358203715032265110889699292096943778594868956393575751775398717860258519963074511874219030361096395173242632376115935732987413003840269831352907000340357780349631884373205710643445570713486675290236873894492617970878328554975334219654191017153240543683772771508897092111142848433324925662988764505281387620298463582279781435815701586023085511969707796159386910173774447852371503218661254205539687460022373676758197750326370950546729168652290005856503201614319732633707646022430570222258753734490228072102774105603018296387489930380842637179321979794238610431679428499373990936260932275769728410905549739720263049204810965279151118455752318028441513733012298761630108723437043176327500790079361619044213358154703941245122168288013425737029359983339124061830725017692395167276106008491728158625326805148266992297127463653465204301704676402861351108734890093069172973465328459929828850684985602937541842492532588673530898976521055884475675249362094238075787276227292347657284991555662785691228658548600695958054394803430102228008657385443160449141184095924829759385907304271756772460793405686654412081167483244723750227464717000570164649717913520215699756551118431989109969508438848717609560114499752547998468377898659186767532692907727161729886528346766885630078575368978251855830708820224943314898278357404777156999830215756209415490997526832460263149341433300647404433774283459741429457520870976593794554598800757965379927165653654661178500434025275042736407286415586431901960116262468722770632387286043747999125212605021513581057107861253353767534868630323191101043686039227607626379712939012372408058374769608415669448550255130011475574327258562787588851407302010075261121817445193497256693846693011560033953443056929140020863398680880768710093757143763496078741835703924420093636979269712518812194110805753955626041930337338213354341490472597252000134825978934502117068907072741703540887382043213770746868399595672573237870589263239838667366304975402872825300034145485396621318639184855232347860508211440618299682688509373069147010500694089496678558282102418083362496415651197691395771013426215944637620667574816816979982340349246725032371560319695280812704059424891624039780976484703905223319280762335141274893807310612833525231459919917727004867102301668079513359355999138433174834603405426824974123020080160908731598894412177416384962745086216686453191950003086735465664515685849553875838860237205826185415025535249786346327370303482607842880819794705848034172943111006178282969589379250513492971043078178201756296901254188846435347817963775907382879748831467575586594162587597481584703062923023275168303686023068794331114050104980730234802661770213711664420161173009090667701255276975269313379536963834006139371643264669467323048588258315708843007070337281290802209919439690562714793557403586964984484226109578354721742157062640048836343595501015193633667437952058532318595248979128416844323786227225697765021359515297022837985253676189802494888211736753683556613931434253224970203029977749597473454687597003535549892760066802320050737427849323063380710359259686091616261071524038662705167489610474816070045327455054307129113924455151562979415904899177922323602077164760850120344897098000509771315755237655117345493247878560760575753741294432873938425577964664292307968414678178182728084316657056853395536347346743807911543539660032369189430254562188870406732975046163734919173265805143000275009687542474678215184924710091679840356396256073885988177529579712388861948054804337815578434371332177104731458907488455688105995551360411192243743962426180251518862653877844924924267725605769128058414293825101601300884537398276183313984094885851587398789047903135536060801166979673955475590007358277942156743952200099149716989396384631035771782490654232963859881089589521698754584856477608629094676506234418697294037723927774613270142184112777194627454499971871521567163586274122797123720441814873246545236952951766059441448713487269675686600457024477447703165224117856760411199592042103211943833660265094187252243846414075570723090915632881864308308051522630794953354512019908384532620349767297859810112293539953509392921071158459522508533065952628677622091168349623148493075131395943320698143489123900858313614444130275248647721788529329786353913775673512899240035863937600777103550087039056728534362296857222881524198290161752729123865973978368874811249512689293741845429584136505503885733977541620754171353705215591899929517186687156110920845006505154825939986878656384586026080140685176339901911335121791881396712649705965781660555354086062628271813724872903384481921143185743559532641024041759121128913381948809496687101867230809846323793205859175843305969939032580128831197678964866585347858787952824182682194497611987531435327155591166224984617414192241471632124153756299784360784353499167800728224049590897888606299630337009490498080178890840892673654023796171241667414890703508227079265279542251821483130745430750325477386036744226026661279189575105142365932124377468817459055830827215378592542039757589943330346702120515924745801893958185766389239522324322626421093664317693180810695105298185162476357102720193953984700883780682898807359526270547818676806228414598928831140536778188544885438855509062840314564083094369645709567197824926566410328111884088185006169413337396682527149671067318668048792171982560050433034269116030196492522058014895755955493796159062224324165444597406586767679614832325602868642836082096949392959655028311027278135333866035329447477033967922530041984639384361947496960242392716910085529353028926793894366317012578616753206418545900100406301838043769912299467193425928297183994657314313304330532662340477802148248805379523742349760306970940578301814437026884622661852948437887693457588155778119905577731381129502251792940512499225542409144717021999491994151524973182385536725093635046461712951128028637991524138277960333391206894545332399300756970673404534678332978322540230552827703725457653744743367932943568688353611418679719093884477778423931587240865869393883707657888924248962173894909875069859752850821206273203679545467968554889895228412654959116029351288223022290394798352411876879314496252929495364541331199173576106763888125753317576342825948980275843954582472330908435345835276702290018846173257399709238100328219997238799885160848819340010845559487490182587790277359086654573213790411351847299682517739937937800433131606844972689853592199736024494862674804312274922514005880021899022385692856090976751286358444243755725712739890200589505803574495547137058058840491929187894380151701633804555129426150759825384794923479594519578084050168479191632015819518049874304815624796737273238096421457752682836137689367264483341633516134808761635033500048248032214859254567508827556384711219383882293188821766649948216320837868953556217229333913706727203553690954539637716962839909306253955375640613605837363327071498805312853273303453705221564942478869532653488372475757195290734996963025269927170578287212404293264664416720728815957904608447708008228769908702752604355461802185192745457706969140079573295243914993913478398299340383793146027100677869012055706192460945810415513207784259567006512206941093923923327090429043759843315188577582841724941787564804047010601335086002788813203040304557291421695619895829777166999666375749447381518831794597507739353941785644205209397535201454523199641588864035711725581729821163114790339407578678189349988563790502991854274290143980489413201418329337778579052119610547294843919415105841678957697576093874928992097083026670294454993392673799558813206441273551960405582736100396304662370496360324303908658746369300155909753050078296204973388299236691633865540207694589673100554720665375449243776169275734349933680306873413393024960421833544806911374354425822346493202854116616368773961582256321987223920065334242736312942239677366876397848143774971922964609387418876002643571580805436652758502433350597461367840098113481927872914564868485422416356518660540263250943854568791561355092168200352122802222439121048714414661122705553366154055148942224225228962211918058746294339319791148552887749489979441885784064813331399146293897749491299208032395608931575682031769573629838927998975292399672023104919090003409679601198600899072450876790974349486817709411862555767776508701611398614719031919503835175403333207874959459932784738872575617738843555682352326794098410534124891297604255604494539595003381794444639088401793412609163537742897554352147453166817927673634929381754785797499433113844367670938958281772630433651844064005752687310582335196088526452654390098728944568235238672077817064235543708196959294842619027189186052732262251401216334515735671839065484778361180849679440173818268578820126702267413597134303523768778948761202951956476517071714994300050784890899877951898100304239165997186538222117888571530040570136589013969320372298409178755771328496721070484792542599702833209860014235162506229278323329048424080271721017117185477203664788113801394302277995418153361322235853087573681479470958270673533994180786352172168865218028039465093556375955162330629603614556573327308653163889119023638134791669979293207123297969094894029319130698417760000274675570044827004835480058017346522686044635761983338689261111835865816656938727334867732669175286881648884338912006609607711209185298852526957331137917300408091527019829671893153665881355015477774570669992145822124325075077185292963999083442080411638141987986801062099867287361242190068814597504304507911910951549438704658855450192525274218289915282228730214605293870614474925415222754211258922373537362740900394162756348841708365412635982070983273491422281250313852090196618565250112651902963909987207267587620668023852055713569485535139210596665695358053055647397908135843498380697645832532008082522460803568410661437717584044824711298070282908270069031347938293895538712864814493532710254921553306802152750193491550951578991236394858270713795527028859986819091657929529254711951647524032396297367277952676424315608398267875716300121620293260266968610505818888868329696151624784805571655796396455991762612783684569965560526418688892849921699914179469407144187961435143598028637651270235654798919723751071917071152663413283037829482365859887243435395860821733204126320218292479101433914461227402187105740949352375039387974771652477369108005484004240349634730907680246331722126806952429354978480804261355068865366296108301224344802755527970566731060111758135042353157654235959100100175427668691633831700946641130254341265112425207414540863133626377284168255571124830312388956585004162013782894019361390981855220448587711752649967671073301979787008866132704436981122330311938363000054605843209373397831604076395580185124296499770613713881294074961425528796719598786150809591865627453460803761855668662652238615555367526555003092880753475999040938316135799214719778108604305731709547104970296693136317872715489308343024710403692860776099092861461696211860771337186260050090837294647497511840329620575746630618908185401623802227013227984232203743549963767897620913326018061869656938593007463550390776215279942744689620884297208014022772220304532539871537929564093827297798039300538788949460022070314598730064603124159275795795459276220152106877748548615395685586068797244052285488565753736061348400597666571339599172054221753215003230640039176330812510872815587118954349180610753330772558116084639429550506441111917142154158887418507325090769116409847218116458605448264965203007777330286239299414071377938465944624502416045466885073135296769309771541641261071411196288609189347441022785784576188771442079384191397280454197068588491260409551255271786245745842245862799155809187435848648666336091910223132301651974940281179160004937973041401632316356956116942814834041162031758380419568203313261286545478096783889660395019726910462924673504360080014436736242670221127873106723403731331504259826095006324373218937802748440329984700800561960036233840572874208864617583600095060767158744898780654971524036582144699012745398233892099129434902814791237933047125782140048701558154682929526959121495504658976097899439191852580264251392131482002562611217965237715825450370026174887816741416507256640148147750757837566993958970095127173462017495974630438460114567754387474883201851032001870333991034725085807242051076757773310298201755471714436624016980490959494432071303374666062550055814362842156041086115691070489881429692511852245969803372434942181825957634038692456749677530816940411154739373567659275679247890992791150041103484336754910232677264450461421943757484709833376673680069478265016703587052800321012202039678813023492280715485441084997944626990877963838272368841199667862822549372339615704715257218136573970957387152807592739748355080273339733424450556394968563748600264646394375562832570947109484763287359519533406952320907507344829802013611785921715345112712295363129479588133728839158972546172809552069201536840429253973315066806024547838157997334982215371309918506731242508130707080592369215093247802079225268488229526716621890589591014632872344621749585456931954783385582528396521257122720907327706999073961172437105861360356605128621861835420785369408198794197960982243492024428142067744537918477628422655588320100892568494975060545258831149861702138683676037601239915778419590071418770537407487362425578594025894385724883855999068276730509796112121492810300416320306430838551626028021248053368690549597819703906463693879722313115834098597539637681143559998370627861098646380177813183113613364769418976670092768903768129205800378178469545730554300013299766623477743279952627599784687414618482703803409673638041261893125022917927608653291082392596924582232427756856283470941329937126985473903316491624324307826262836490015013750501556012342903802765873181314484690071160996528597159799422078327033682313466684532194423092311853744546964597084318785521847713914808021116563539888382730600139321757556398544178773962015094832184024026582819491394113266046103300926149176253133091283212322714630397438346244760405300680913573276306383000575829705178696839587218724408121362865699322206318595463450030314982030019443323948810895043869061596861957607300447005252252036573744831738110774849217881540094895191260958112750738232486839997849590329618450195808612278055979291930979859844182842698757577014646305356822338334908220605651415418973889717196473572122335998960806842300983839281203182669355483718503663655360889149787007250151758801567528522998259486626173151142330171735309527800185998606684522461574092976034728887599369079039511567723785323418587789834627589631770675734498202042570207880910969226551736686235625482470864109580643798547062459992834510398469327224700781365392704783812332973923979235872209800808749746108429407313745401358240804469298283151057091357174847765265921987211121752611391896711408165165930214738184759390032875256936718811991904785090937956091923712439235747897131303584480097829763925449658722320149949202116478987192181440857213936552189326613682677932178164754506972189681888744144374781777647373534609345490134865539438422761582862495205026983415903151127119954949762681237530429585670491844824871145236356649057140025280235847523685490158317008596711056304367730868055131456263945298237402826931454176251709111489298061115012525027606651042688784970303415770850257744479579484940655294747281879138997577585777579271245888011155449970119311486412273191386903871335138080454243719640654088863751398822345296992569619712466694825989359621949920709992399597894463362968242577237650345921917799882036700655087477009697955558610647183323637872105949491131174672487201904166774966132640094812180548507453664269703949089297231679592444146786575121618350987691481081853719551764946171584755548185787232910840196996875272114390512861811544186316051039633801394715713435089316747334552552141728154393670280230182610001992211757270810974352896721771472220139306188840921587415750109367165304524496155656354976357408430481210667501727696588747856789531063957790677393349132304557472539337711980809739873185032809048668253421616215291522579132930919246233916261583566426717457643684902036179620892995622138440172687018126217741394678188641428976410488075911176377898215789402427926377690217656436517882856031793867436676077753556333795723018584379193262629896208355458202194510815179835296688313199000631533823220218263534420779607927694513714144618005240524864588891788290438522858678815063741901069320911405843588652388116639422560610316204781103703885956933014614770841796091607427578274646404876150891480723187860727025762661235479331770207885782171501988723593302120107354393830419073396433296202966460604038620128165539005753671595031757080710175467342304511854175831359448500115251975368876371491011359663411992274266358832426441391525632494901463064555547281742380505337246053199033752172445579856107218381361520723839542941961831053495189356587299956838972727960169034506152205035024928638182976601160038105782918882342948873845293172662185555756225223912359823948138441742231149348909733915292969509943562353890903155146807494406050768258114319573453052723013225282196212755242772208174612781144677029234062570161424566738559017642294516954198578248129735476641552772399221069539206962787359799806462781723434760015196733200561128975421426428452122959689369504018900518401579869990450375539232223775804856528877603907202554961931152692148517957127535343074793323248400447008386458172902087324933027201805616645968571309485285724421042839630514245784331822948463078880327014349512193047645791396690800096342613639741834722382090128315140115489569376914482451424412190024502784366182312429905137870031564444723823799447516478345169298768585652656896150623061108302177723350803694728570617248282051103760133774760885343402194000641703263788333782145579407958681205385935839991620685092881760918964637600673205104193281769651684743434604120025761500545166691511369474677534475351712297087255130187209000947000920936820632583831357376416190218237343141877751654670624745936748520810552284220931723089108549015024574385717391994120769115697188145100759222010344640113173357055077254060300682335874294616049152053958150395704768694230913021348519078431652982287462421979334879000575786430570711512669768597346602584729837577259499346590006850752523383738483604263884004974960915703682203685999963045217517123501762257889853123857881443848177169796746959848102641710043872959460256195494393806033978989462409460281554000676071523999126986979971350408241328601127404276833208120579963780063580301506555132869603831509761186636100192191488923685296220102637631888298555179541002128607986177083776859687818856636124233870463260385723989293127587767799156124390070205505089386318763492439488126378660081347862858084061963005723248882034580884296729637172917223207175636752495348440323318134373165761667998061432598334428734821862153554984796451343798662198609872726816568451896899362590056199248392834721017577444221856662352232545320345572173388705092387389257848243992565909456048711055971106276596668414091191041165717096683323308824657552808583675304907343739509299255177496993683352924133842114525603676356983099731966021200865473867119607395192704796191563703544823403547927269173869216015036123255809153918554832077143502443446796585056037417098221383319299257287632167782230408453764353911470509410433514387154076142516186335878926772773514888693172033601914687323089436351082547528910314590855102337682323699052871103008527700737421186543931057304884152857050247104444694727226258446468155112186307912866333455489647141192812039949802519583909577255103942676131940798230997974476527126127505481096953827338397747899574245663534443445565049733865309582429077282436176988003337770421892655081510430963284991026778562268617154714452990697892517397531561965618171576372321852061534265965766059042819663401866733062201049438802278709915027921070656609859789644890751443750802447949381862932063007935607258729504403022652441130793730868189222791601603903168293903591715238950003563635735890504252826561677803481930998080450721063354932306893974553649632169233048568270804192025142776653078401538658021633505912363043855551379256969804990905544705467541604339379048418804503747818665314435814671059713192413415203533955672417756199520312300290688652519186627645836347058987288826827929976419800411616736028875540426657524794449961398532574680421548717280615400132883230062513655149337942359686652649582551431319748539055674714378480089785726135937158024059066427510343786821129592529160821463181506838133855826339758684673180297955567863354831816751270543448357012162368420105109816247720259115347216436438991229442831579212489626431324222579514091530363308933927337524698678055010609540442506158058786165863993226342970994638067198323538452113488297836200552673699926386415968968555981146107651461310532246551336872596366986792478286682892703414279165726828914387904393929210700110601835203601832491938101477847925988658304618310602576578989318294101536035837685098138996013687717190350466332910163193679347299166268795024979541927618743358648248166905994591424939426537449841753571483559527321280932974559385938308602618039636354146409264394579464855078038080178760232986096119844452428651528704279253329821344582894317617985565036182637966699719697735933504771993459720603078650855990098909906069749843987130724557833986748063918705836638444571549574701211126828064634425596060592219674156398497105997418313997784523452401119510417333118880327977686193490565733494687845844509735835935397851766032625659155505527843888893025038732554202204759392399192383653521283728984023011880699600549102083200447540120651051564452686054034212705920255351357674280136144792393410348220458948897403589169533406887801506768339106402831982860667737976541199506058312550817720646665919336527841285604664566454958539907633081217082153990355900311622558310831823474807296919946171666714275866474394236305841678150561039658548417327592245068535625857918301179221698901631055375047381785258371079463212429733156363195461474296124835265140589728688879697263586588718870637559357588051610721570434042581143963138481580454389157379391280789484624124323566202273042565040107102288413759675254791307185675463894737065297873192586124055983938620260802939528938257995483487757812714379508554100285439230586969905642157282993441873930060971787856374146007575869626651284385814130318920102287527953700703603100676538627895438569851430529589804283237782769128248996295389223746975979485973616576590408870714882721780346533634787544283679541613125999530091653484059205304300612818073830182541240501620197952050202668619569032140486993012102396800122743526205104653714071042742962015002749383893749478726560587937709967728263491314857525595314440928771201621169614684336204379228491697431710928646014357028026436993674377431530877138787079857143155682269628435155194128409585613676289225942520494911295616619163897243710013047295412622293762940175681660905017415242538426484461778276071477964511467766416789980199225931081232857469168607581847624331618583861397285093151364877896146394635230780493099471839545706488146020112560239000541744867436317018244209362210090983835561437634677443573198853544024349637780704613080177794135927434497626908433767683205152301292048240202264700814780464597171077013166130426235791777914895891958171169642598854943313345428657227154299571434703534685991366951953250015968917264326572607137614414598018297429534285874126442082929752608167967254181708162794367916208719381758339926557806311772412190949181007162535121981286229610835210815095655223434946408294599196688545220433342041579588986381231032145702665752669447187849793243066828959155417140003999363171908674731841937686607777239048071141739564424637709960005828186345454826385448757141543864069052716656784406557841263959251504246786432582902342634051389974103307770842528515345090765849645670752865935566616091746489894959898712441042040765303950139404666388051744371962718521824525679485479025645421695566549370890668798737727928192146595011701251333260417772420169602646720992551560947661918651998070302332765015373021703195272187365833126043146003249477165922947854047959054517358446711254246053498233642785365466770395701155424334522909295805981931499930090188391030295956966724505860095852474784690381430621403213756024774641513366821586287429088908855222464053578641073199752304153740432909146594299874037006830596876936665268971309903257747415900612894290166495534729454499935190323460408698409006636022105262759865521035692062710391511094170244185866304269254436745154164853569861612666012819891041454347743974866558343058716992152109699235216100858531001025669534266132158934908029729394496470934958338636600202994612608028874651577346689499547015810111541763554042525305166813170288432839680379964779857530418329520124550470514117650084585533158736627180109958881477325932736702949157099148008418032367825521651059434773915031916652967412762965628492260887060725350938431301110614200467073299248883574937445250504106781173122769809360300451043380590835096039749036368883354841242719222275393273160791996123270724603613492311353165571439060576421554504518004334971776757119238007043417300854834759829311040221389921308517234188503215627836792862867965328417599021909828673610874994562717377970524516787240851758780884519433956292461246176041110347549908059624120036244847284541612026576481862644503580740963880748435631801288116277366726417474788658239307028284047054739921270430911063663210254670574875969567451189265808680356901488154507572229023958851522069273574121783991354500567325648116448650934248432222972332068357517513475025387271881861259923693175508133819435409776505963412128156029663638854592878686304458084601836028716335276393177746467815700903759813826587005990929378179975983343568506633177690221777004289912882379477271545274793013344219128875867520424691210359690706504736307819516357620908282411565626563374446804165122861254664882753552534321928166121334233210511175610618511517728563354136758288601101114482429870252513558167481637328750375678963822471575149336285788798631179503881946063732421650063193542857651114441930131034186273326480612657886782419822094802731692094855468419105085654307068703963095688647119148244323143120887609452042829538435372299060422655848498157460365084993823046344584743969644364959994465673964072136427580047510715791433029101109599423141344285415608841649236078411168568446715435019162709237747096798942439218438547898398029212732832466563825686797688970230780632475013698704371217887785633926811285192187108380508377688856792820624681757911470349029498939903077207650436714741159684937537449917351540484160043077641724729659492423952796235533060293432403794104714704929119423551942220037729646290745778752735297969064064710096352521681151032515937781505167093896552963713947710961974239179934095469038825557931171822636585591364972902873067459787267007769680009704251939622643716084965580584793785704144422570596702320950516103284369776522937368973228747449404897745598906638008452154070490134928988398784766955519719632427176323884434088709192630939377683891950622315811821342941184248265706711348076503149854522901693400400918530431741216073639300473720468276561064424657527768530908335644785627338050035448113442581996096227204126965299093405602472491624305340979391731990398969001771397180697020328677167858895992944872058395623852325030035901119420048179764916223058242748668715171215019599391539720581003526727563716468728233790543266088857574170694275743498262151170725717608329803408565312289310962244925805997132092331851894532508067161233387034202807138883554413689095105434366199260369027181246980773052498807244494079859169579926404101697450380390651628609204847977477576404188687434369586314561085506905109154894883813859707147016246771044730984528779169660412896943551259222601624340007966405298452048691662964428455877517705031177550608509237193123792558049943131014683985616097565245466611116009585285055733651279086787636666086760744394134246833356569272666340802126268004817248193535720719408431744233342547782189147652045083003914722157324363401802445711860485343731461555138812853996236158485563373138470050554543707157616558920399655135962133376058508980588007170034461887469420529001950195773230855368463730012478114887127827811644026385977940528635373041231076126901012197117894023917854985136262231587681612071616948299637464724811301672810508505416418321089012364846163842757883674639054770178131846712147594099078350811083900437590723412934512861214320521178973197239330080846311502122894179660483208939083031063266553283838095549872471199125775204163655371010666973523133772716308715244345143673512425060153353633105015388360435219883538341299151452312839707512739515534412347536153558837187817856829247151088483362358415291810013822546635876186335448994560352570949445333364433823487768897566568227362748274166486380276434664423499656770900144741037213455532387448540067004211751693027319223974474969542960596823794768333124080593340109865258568673549859943976175171785953775212193933608352876030299055556844230439659077970629462124518218409555855647950974494423714726464696599289585506031383346396987041519840338919679600040624400462590515514910452273152791083279575525647189562659866216718204287663378123837269831721149565322927007168042614789326749044635433544372694098213854980130164779402420588118276355774616181520423299160822422137330258244006580740428972311204292970841947376619290894793707630724490544045433063621912439653411546778107154339826523668141390007038750809163513756642342177608356296157495776550865636268602361615039754962976751449541069443324612032542182685757377948707155775296178215048717328102879005715091470919151699061364747975199144477300292572213654443444912184649000927802007064444752242456147415664334920168398690247056898460387153537153384991320845811958304319831758025246908569722016494497852001262413695356420304121112776528737699282036991396674574557061754940276464119640211999053090712570619543751540953548349840130901355212767643457806940009191858211430755962812234151232069167151533972784762302276936682932713818627132448719995592755885179162868550045855717001785231007403742345841911568800508185882594628800301236625556361470546944881258972093348807768965806363716072107116675916075689952051955784610324751137754305389094035863404112223363350031954580410191953881404434851135810116754902322410420782463091499331573972404842651392442308066319417497043183371261784221469486492565461640657958422266469113374381640952980921291910073424902195583122552208964177451529014960592306382892146670705308395390683400527892147200272520231187103828282487219407479719898249718074885857770487443116642304129216539154407769876181913114452159803186240097826932145169410738625578361426735578343049553650455673122054986254647857006444923766234296909834455771428638737879859357460174602169112675769230660203399782591321924851267086106537813176032810588632064752234257272972815398314034414934678454131788037730001033223650163975615236253755351385988585117101099848751149579335063262989883561004104453043477242372557871428076919713295629276126531523839434009800346336378226940132244516871365152469012540812101689224699058348482538692743526502115945495733601391096137319145933395416077935789725171003848427853028651046763139878924109682835637495164162504631637809158025775701488939335678807333101514299429204897148241322042533667090504228378076619513548374487688205726988455378151194103972983775895533727868974562042547988130816531157370259348372703059807181311531576706802072942930369120663775994275759772785571833185926852489556548475863610726457359656845341600142555922221917882748148287253670546802156796700372475822175176699622857433665575181920513590131990724003192914109044206764635088706139898172767237330579701895440476606586891205498670196007784546421179794905140227938858458321602661767826753329963236614237146880605768188124439448390357655847328893288787667952844043969362310580605637771058645165494507733473780294103161045831631517398845983583370572908870121101345117273228276055697088032280304451634761402661132847365581284607354002911694536022311722964010332987299944467095124505322566993027406907758879003070939889450766863956195048544830204862683869090179860688514341357056162476403457846327117770833330184621229028434096574733361513074718114289655050306391767113393774058664218137072919626837934960194433437618087196511839068446680953111205317284499884357463878210035063589798874698043773816252578248894729152480165796408288345920255258363437119775926333942151902665694658627681764823293073430209675928156758746056438286685864091307898128336246647188810004672456743649891738821398967397398926180334000464323272323073543951673404056722493970319334810341817120470513008958739409929026802285047654133879805170904444642181295437459211581612566276941567994862669139025959914372657740245589910757769590806607579418394479597447271415207544136435170919796276307723166737863186720893827526777692630304108621818045919350855808960804562195524303084103867086652536261826756249945777436278164527832170182432262654065972619189095381839483992433322296845937881888629396603122706961532586651952526662963291751849199377474629413612399564448600951080280032113951980603340348079981053035289904396333815006475521220209984697514496975920066891327491768800130750200682054047175950805601643154890488864729480682015998950247981419114428520268302915740715408351540670902606096284783224513910742276498736710787048699302270110616701801988117345306265522524972552929116028520100084862623358069475922465811992753087785722865011279402096914278014060298289982996348292192260226739005524913495576996433524956622710634911515248390465741237676269397521436677398795275247805049315787863598031622309869053684443689956610283561871382748729728439091300961231005445003149711642681903567670118612844228825858776689562351993529710416427508942165158572894051423317297097206144295587247427224538912430227551767672076773024014952367327740590426297951806662530016842599184690444576185762069140376534611776897180412775903836864564062135935294014675466251059715473452676917198798611110451509786158629822072897581416732330533917555941791567436187290410854686354932347030431205987316665886144904575412955368683362449557160621987909861387793818121058759791259221363826373039803487011530848970098446104030964473572712109777218174373576278354860403847569531921450170711610050231262366521953009700113064496852062259770963039520650730305935878045751120940796597558008870019055460973377519159829885074568099733705074964622742165467344816445770095484029997606164582838968605691302212796053081925836949909265144641223235324827542912812187896497526238246271191268827510328776361532300753549815723445094439813435329059846800975106054138032994265426490379367782559290802379597396438044702025443524448453999036040353756360825382745344081611740686050946365861833462315165709086831355872271105105116165888983623873408467906620758548260329404087088811744568450424151573179917682144682968114309764777902992264987023596498887408457044834216266868267862581811619277001422517076284969831600433261646356611581221917764080943323952418112891893038256312189049198034469842849063174672734433876356346356889184522600172259541395612801357270429725192345584264073704449066455377634256405469860007631540779773733522532524575955764632528891570318326455071375319514026479722075739390211667981788425139152182935665453297726251748097517616092342581145507857569577475410083957732625327238108209680004785026962076453948400874088782249587067522732506093260329464349268663394328865633924873802140105234719166903387995354604188850070196474844844602257095641217436664390794449727493316481970061132211210534720840236948852096217653564303305508299885674489671507780517400702109732980103039944209822611239942911473135554842014366931387274534181218968388427757032654276407002257902484417137335014975508384134465668609335279651843608510007515039988805540972693723202215055710256258333526922462851136739416332253766539369376861060597217914728739466838789624240781047031562568235360953276085266794636112967176605432550895815182740039438617521089216633089533138194787831335615760521701722866972022494740128298322550084553807143163434361365979466025001926281309605304623990700856546538545865292824951513689894720099563834753376075388422578537998639385107679904800630764200360950462065537051451272140744505428716275880751552198764674101532227201458827944320043879504168898997947990421136737575717424614295007307920523518550153559319250052026010895650810406473370521366220571863203594370602547107783875334533829362340060084298674165309142478047286422493603993153416910861279322348418894239065579770591337821076381148018131127025554826848561261040562849362107723207189111842853821076569807539443193962677391713147277113287600540125859080002627205826303972495441586734450482429428773845312853484644456583031923847499581934183082295040664217777108566564102659185670614308497163106529490823861670225573168532416605350695625068363853041403193248466257464772451733491260037530698842045058776970585065913230863918699168890990648351380097535637387067404558743485110398639035022472732105079988560952657593945208794074422187263486755026234434488088293641086651474533769261841504838176806903531710322131903092085317652528242622226770037865927687886288386916879568138662239675323327782112371563705633073934263094905722972636735044368237764534579244529082912089024804967131439545913034227296084409383247114963013484358528607720017252720844652370114131987258125900021043500200768274647418662739618886627912654826123847826556706221751973698639798676185532795440083396095441475532457852565418439607984617441833734627482530899087937659612030334829370842182902675032513464068953140726953419343870392014882946576260258970082280510128750808470271363777863997169653640476926326853993068152112492664444600388228710804280235753781845431294628374640381577145779631267109589192041733395997199456915030859587310701059275658906126867390249647223054001055308637178727344446276411848580038137360875135046101904063263329835372152513511488969004450099427570195354370659600525013451813098594903186534722868709275449906526206358701791201660182863536101441337447546421401126526686332744784900548264122877289195558004931978630833743791122482812311833698416400914719631308488516199442460461379376411032610755133439166689622549165533388454890508583630728032811987431005726772692915508145515362498031743211072834598428545287794823683847253868542300360855161105512685529944700741167133876537458609976354855749133984670887073331087605121945510115024332084061888487783746219931907567034302316284354008418276135124772888820867328066790249112935992108637712614953821363682366872817543254000540582518097387596145989959035228424007691870194303602153478625305428674153653182399223057891150662761053548943203272304920530864182830555514847855436658268934191473164442447045277814665533432307757553164741892030377320970107727651015074375748371156939225588259041254853132805550720143504843487977842702230805498912153348989799641477680082480507632102591203200313047491436301459423391272425872701043886028234966839803782934266883206470029765552598943189215957278114342599553688690570130604390407499490038052243413173795798630508862530012604906256563953655762914861615999697057851246543213390877572917748329829873380107106595699427989778789099248618888716070089852450615457461569812734722363341843914098298062961302711711952301821018292895587720556363619763708629220438134822951504198376753641301829949765799773623351886023556401985450792755611718391248103080297893443524512902965349286831054669542693553495968915254092382676280691112571368645770248975505887880796041496042095875734995736743613792721912004130948872757273018499897449144811240527134809503029172997303500217827451238774336098432895777664411892996765819985203112672554190213262033556314135281631288547626899712905678227702469928250837048843872892179434058763881616840782208604777591768814982530015383146457239556707369241556333982218436928015714098528437994393218588889323289198720594091885870946715103776151959553170024756631730330265697989571990806597808765025907223719097746156173949346595742842673323901416965874038851147834520583325669271021658742016750148868669814446837650178663062927046700680184681418235607225957685818753302799688564076309167088906369454446802478126431790305786237110978171042974742584699782464230911042478663632972665570044309578798935757318830710935310016305810756671055322640023941015236685611652012350798932220709561591482149693120250014508295432473602729316979210005896144980555023635065935374054370750132186222309739426014100758237886456198735871383732338210765525036115221517827248852585595148771928521155154587027607651904051091860904181434995134002241252632651125192798376978035275705810340814000974909708846189212293364461949165143875448975031067664216147324342890820967377415370077185095970207974470562886550042138535052063673066355910427259361260262657574189650561294892137275979851440783788947074269869205093580075185966043963118426937948375206727145194515761746287988395899979649433072106069609066585056369421857472753174082623052968249447333312766292211419135031540651409274704911352161921877459321250922837674268138916846398199493627879519861527871245299795553628208469229623226076804762948322902216398110038478467679596785500929586486292976336444960833259872365188219034164091545116090953825700744462353380962084558899900993342023911521666173221948184339657326535884807128678586128665551125918766774611905917836940769246367646573492038384125911480674496592829026272686549524490677189949974993219259809156030490727743932638476479560471021982029854560974377536955873814182594649091857128110902039664379270845948613604257837601428629533688993500334491084593342173411941616973660288627798995999790044275461280201915368978160706823198536308348341277177639616575295635679052854182640161678789682593212037252197609085063844155083642681914734261916447465799446902667377557612553542118968877479461705553187643170747553841431092441539448366848135968997338596775909858297556239342624524467988500887945508276120496286657653203636740191779662783976801596844118745628989589886600095708869723207124966267328241013915770318532103476042776950002265143206981243689800819734291596211809441779787990643510498919196980234527579894305589695366886810857421942805139401810346634552415856044785637659810806737147715988502006069581557238827057818422321554513417422319327798217116191649545141151790519438185225483548055884935897484410833344830880736273263889482168922359389469793986391896503425703975547092771871167560776337140714991833076248907388584733280292339430243653278784576951927329935686113158983680052301510594256223781928415053276953171665669614428431636328235596538925921082143206322840664143646839637066915446594056380566803862218732204091248586701494937582139984241547594795350606691248859530341154431525876111484994411529274026026235193932195279906119091723108453185022425360955303289415399608348401875464005109419617578431863223731606603795785544889400842520422462179831330658895926733384762714127005160168366715065382677874801708957609761487197868134082254379173289307411426332337043879014132160486039822995506259082345651654957682653719468403708834807217862259847216297209856874835052222000945254609648702308553640880721478895650284527332932438282401232224023797173338683685461631850662188179100709430276867221021763202063947242867258318786315546083695349263003886832482591048800583584736563588798928462327061618996787932299722159008749327385991123591792380427427913848249761503161114500672580193159625312725719220010916919778636805361152891230427317471599839940767734071457868810592501003989869710697020571394562991537534971279049886640196489933448231790265155331292129371672113711363224150877099898113529862237777108380631612099527121817291267518921855980399199957773235461653287709173437580417047644034946091047873095421869013570845372797372450354202633250532920708310228352526879367174621181349482949007791993188921324380020204592754343505226400580002489982742779553413815468449919840318377540644477526427696494397214700774061274448128200453990130426560657286496696974037593640180187287569682716741783714256607460180726271184956017103780186218940742650308258856418644538125300865738035291101984449720486923423832563491580646827295949683762239402463614584610771209406491096386605217175861872136933426178581826304930689232222168042038015488135348187514393637290309826882135020348995806587620698410191350845012658598073582644080198415775526988230462492285043491619648355889867111145232366192021032959822869406893257690639000060798893018548201510963351333306656067878776636850851952037410743637954781833828465985564386460615391888368977585174417488765585977652923913674228074004398298783060152377736553675052221374485796934061997772756091587057812985433672325675407175846390271162720782741348960603893321578406458627758629757240228660303224164219503176425521907065022991105271152992495947407486983131948152696554865704198328831727688868663449511047955480958003471688048071572113626544397866149876960550539955238554640931426739632206789135018203287621873665300887414969088898247964384718324588696695673717315112282108908501182413285168738428615361739922760403110767558900221694422870279421683742020902373719302398109601965872165193845490137241161373724268392564606542514680442050061300453438322175028148190516591185574468919240460202497070827082627221880985153683073618046616267147662873081661475922438150521451826697449457061383067517388896852844701591618641387893700102083217498696426251400202069916677992688350880067676208689743500137739285408629187632223881704183029625247244948595864866306167805323501215865067043042161204473303438467931046111425119795248993024401131970611851392415977565526479620807565071274793932629028137003191675025602570376786701280320612832946794922052830606495577093520336031703185326922739251983616726183939265422486884682077581720757667402930008926354667546388773872626894075284244753566255776519512104883024393147834493373324843639906780510534950803732252560790988402810712265502246304544160503231241349716421741420650638019910392320242606022472200418498123444487954065405926573373859000412290344028319703235371720798947528657083887542928522253464401077994824593213354743403195269565300072113378191592887484516145183630775059709042211796091264956596614730743511366118535464190380710636621300573680492116802526491541314881824884019428135216360635370846536723555652466495352364587769140313876809358195106367026270820171998520707641064319383917471413638143742023353890896722194424309354562380725010800826921749436174231329351652360147943303661539576116512299711606819590014699489704724471622875441463950415217794387413227479566552564615000107398960423283137212217503925070845446029119771259216772286175680852713187932285728403815009553787725442521956421654566659556427552935256917562340197976315243004017911387648891113512999627591610959046194900591208989676293951382938798960955181079009473294159728301168037135971491364995973177169409261673651799289755633730906621632092479264547329078755380148986243441771592594281313620648212214423227087732066818978057250108764622058414855952342047642196166372709481346339564213228900056546101259074132118207407712037401844783254525395057395474578517885986998865191177814722424600561582658697044436124383173486857815145350198299259229418917141251279773443931327126605515104599552616925709015303262336428409229397797261743986047083736411453243435142581279614282360003120193588062428126491507492473032058528569753895833696801553604981173262786739858877879171659409747582857578136863247146056918735299638278121553665113332222806210971895597541578336482648275075666302419383084522826418407359409751470297792899494077195854689238689609477853183860814964548747064417704686728714981591997295198538784870374726438159296560824223837032561459689744176174305941044556160220812786364883185730885360218616843707205191915873448162184608384370720083898896128686045173947959768077338037527275323246530566338258855994960302004718880520422657335847098070769994856563453516465590617048718406725439266017106500115083159926053485201570303129738287806428352053272610761860004512291295288066711190655105252462302359892116704482078998643112509305324907101017054738387891910880915713110212950742512862523344473120693436263352426093715143335134464418726401856384261640039189564289748404259507854296524251139795565455251428455347578102754518149683811380525044267615841077173802968880909991447575532539110357699328158804166112419219520542348363476243144242337669330956570596577705348177455250041070200157971471945546616803045166283796103473739745285443517023603395649395874820667122605756477724763519132275404879042064158053728851124567997761903718020854584090724523300065925725597534511895665060219096280237261797907614767841266171248980488791367021516666078355748040795793920380461854712218561346412230659982622670211361536572574704999446706411033979097856368362227316654671496952746107181516148319821945487533090012034191286928688296130926050966128194971099814413387522176573638998479485429554565409203996119912560763629925368343982497520506326133092893201681861460269693372107083471431474370076330318163050319688777152781254092477962392725131915059582690325229519952368646822831347608872472528438232298442223095660904516440480456285121490779780638525244747052656973898635884871076595799514388671624577572301007338979609608621596311783176024734707286387582397372694889612994331900422431292198093784309639085551948205523688199518037125620025850244505963663036141652253954074785239910297003560760429986369129184350721910741539724187373273438782619332613057401172670061922794564087864307759695670254070893727037834312669760194556913042820407530649236792830765444203401654790811505856765133387817288976110239537861996471424549179081060334017775446565381059267569999461124297917544421012589229929137642541664086583581780412354486196457395784404176067905639109845433709481290639800050096168798071999566242415694826201852308551170939561298611451339614451981736270582129602750012341715346280876286153913620727446086034291489308518508640967548645051277979913389603659037892571362733847053008747418281637668274673294629948910664096157584559220775734681993020029694325740179269821960451323852027518932046268839371570109511548667879816459351799446338631525150762982785356457027371131683610250367794945824133617178749076593557966869121037940721063559649173912882360068247521215258770202192328472041726905195279784447059717770228438172953515707181705046859772937205075007814860793125151623780801147352499460803156545631596882347008217395369763350581500944543434163061492350126045678790203989125801943326253355093337669734997136439067014667652767254139165754393449002576120581788180747951484885656408861173245301701698798951381979278987348068163417077591196499990358002455816497782102963738900531605475104898378584528007649416082706154849792054277707856479637932323145762325238104010591516845006357356851950140601893598345640400450838935135259238729567666367055771456673997639697689913490386969039554747496538850814838883196361014134517712682905374161694802005860641058566613510080856295014257389821485191404470143130494367306896037097775831302387691729179958702899579999196344991574820662602555941599283864390104560160617503425747037998054091940879067304305874726477769411653785198725261294773141092318775513184295456088085345892460725586034000130471152856258319948556845172740361493215050942694899480525422382540256393873285390745078563899231962124097739905162502819513217741206585764991033594171008788915482929792355872852133924515000215867974572787234125399551323874874788986992224014071966451568962463070983249665883828210826482347472145116627205560074251452652752459533134303975512750806582411163298033228462689611531262434631358737720026594933207600783376556124673707723509271742791585300892083071321678386496543572458437587458206859430920482012703965622371754600264445900838509106867358197139495977459309546542120351803661232979502939385243632079706082668668244987097539985429455913908277551677727498035194120621286777786238050563429204185753172456148199432193366390659170061501972850370010294456932378981695764261028852621217227730396799793777165564347172565608805061733447049946441585936805187056230589752018745053550536566115781830819806346396268556475284857653781990098094684150142224321534458285658410790422199292168167547990029776962325846503373501216747615146545654477908383404516303245476545125295166488739538072729821183291339870896367797219249083532916090561614868222999857314825947179013668493822022429148490512218751760295270794978844591702215542510792479269805949440795707861866390737756183204033291293314570795775790246992644847541681202469765235263397603132459017272371048903608568729830617182455546005773020471069053136345382430154905330854954410332330983163469319095418529423868625474282302052702016786664583203765470420155822826581426657443238837316544612246479342469468310250049439204111164425775361211400220879405924782180749420163657172846100472951827575756020138311043956640791865052849917097749088202004343755294238786699132860467383264400893348537608554574992840708519841111267722556012131360364061564867965929872466773098284946642094497738153530223598182050153011315049957266390673043089794910465120706469997058929382482520727284778420501960843599000452202975780800371507597641995616915342130931781077564990874247585516238444085430443272701267485217619937160595698182069509447743242619334914590173377244949956137319976828304189455840537511966471461253266956308739019371471410493933644488961057060283428639577297533382061754111725023138404464260324675542099704311449608093983360056165602304230861932076212397497194151693750803593789230862730922123424477885027332035595282456845552169213539477569245604141729787818571672408915332259766245157602122403197277007656553914759240934439999911701365894787466001008241267549542993006246515226588275356448720626199681871390128058894613430801032880166319546149424625131692017611229861454664454240827469533003666355308975137721427943676708155575087496131797622498994879950182606223571169171045246809277983475472304325180581003415275095665770332683395213448186744952222183793423920505821390065962819394118164140908842002468859401530492070021836769418058762340524356690669735581334319184240146124316660273743306327440114787468774150853719488516204875082126013459475294502203691416622616751331912192580593673068616809125578899767442263955825099578654622286733805597264769437478488522849153209872648928122619895557964123807125547573055639001136718806337753910022368139841254039747570114236474659339298641057261862880365879961781388452928153992273789255097450825045897143620907245979423901908988484709421965992167486587262548162028588858592179619311713617685161869998886932252086434209100968059890122724062319338044490924303879496812322026080512428087808807682586102152878175463527084796239613502705628155226234980235371917562028720115919078511375641387470313299177399521504013179557045678043483996049384601500546042407795895994548499300402082310666618733764134638416169190030380942613011389136291944296114761934890674153568851885055967238561476888558061044075077111965904775415541362075257588415289090810882468050762272436951227668615479941799510687413622499373111696626409985232527006474716857386773605645139585398420633940535183705282781001854079252817068852217727332824621429484147988495164718652558662817211981340340482248680686747231054615857746387521859436748205371919047804737308922460063623738445427888210139033671830901975470993058986794102889558468824849690846594415838081933652247900731242310231357901711457892099301927896592915932735912211734747782020040841194159860516006525095164301055587839220538003140183936846945324290699377509949171921834821725556115286298297087590419632628064298849635490121716978219424693959357260371178804975700515891271832102027710975405520725577627335789480479721920972964606462565057895990291671965900956391613504967690349128922858535019614456407042707722998859011395564081415231346193715702066164760524759309468102260698511865586174752869166960237303443440240286581678399080700107009513955249991894670968197909132103658973556937009567904182297353089093002993473645732409140683398501817965926867890733363038731079310424726870117041664656395498311800604025790780945913609392083222786315977790780314563930639069278227344471623225954062350058776715906279885288963360681893053551065071718822632479730948556099467428526987674440454555665829917829297733621790596255161490597324216766291134887310105303449591153279898497301947849117025710110909835119238921268270037091724723123087794287481652684121888239702007072761291805227575856863518448746369103138848772440084071939604623602145604866628221801795725466296084050937008831745185836944716424518068948572427630825780246480626270102097518047298880872220883372832730735985920416532078294718265023203697323689350561852837268444644403444121604380175414775692204447659172321533387118070412716896322884307103307101009764696432339524002741910091427680180948516278298453791057094352963747601643754608943681867306693965397125908809810604493601987569278702875783824625891640597525272022579530973764646657315983446938262040623372862918689591738409730285044787335955955732407992474872712394381397258410807120986939086679076490055530806705314552228853969490942170744059553449382437993908691346432927733869702374874789018106384414673335092631842717906724648125770065694381647321471983634405852037195338903306609875490471628936272361259196792708841794063558172134753137100259241690294665588377467485718688239777680580936740270674434986535826089096619352998642954905174118177895691907471258340337770866518899644711245282290687912935585315451247426163837898690034175101921812152570999860120847390357118474056136554951926254821032388554578091824063916157263179782584440825371456585239443200491241428997077379145626654677509856592353441609792133449746836551680763779527062761920322836463279868087430124010368084674905725183268948637585487146775189381053677505211678588939454411221551292468434393870863313870400794764546145587463455315547639952207121297309532057472044575999460611927457080853797459785128355197525074207033903837910423074769845634071588800442227887733986832595494644837125730423513966001046769697737688680446640159877016423038081457888181556732189731657154729520518751283887828614018465686931550120430563013344537897754091152679499409093828830568237371761139229878936513135543262054697933318527619479804471678315791591690349265249926960536270011778565493852515000310646537296859487983783909598056231309091841680756391554591613012432195136792175410399675809671160860693769968003009625799850177602583485789535433767546536079776727736749939782745881365662208137385838539456304745890884703163993660148408623192392846408432663892193414578672631047283304219813022667132661025833616913134244073618508900745417474056546051417097665959340866553046532914843710855866931060442951545113000568357631090390135034614434571952104701526362476701897624141947002158948302909565246122537359336619388759000821616658581971104679146498512926096227814102934219005326371907851997844612075427356463494277258455086590772347269792184995764608118103721358257803896151112219376645347054755614694397353130917028477161096531304979760979631339052576307675513994548983356682008503245597886270606692893594216197265732494303609468901522336648663360096050145513968400354047691749595624060771544743512503099236130773582939581242229487243468725198295920317092107003311062929104326883123411133718844450925478009504190301832077995033946785440365579790354521783214442067075863332110290166511396691561349309024419264064913309957775083539152089201880341414715183444220877292217750273763806675693203383549915351471621650062225480358047796214237568502331802418105005983971149098909956217524284053722768529237782314479159306396304760497161859566716186328943987794749761597219367553932465110453074382112204186183069721075411396811067636324371270238340674288741437615362138360942394876480308986748896904095414602992413468521411718981133787532567167734331908578388298990856042212700965607279432532204644490683520106490121799410220244156073234483899116097215194921381518531018223942710443177247376666347084858218229973707057848747435072438433391224700931885353892702706174530814028560824859550417960710670515122055023091224627023111337400327058229739237329366917426382916788611678603971367344285822375972754225352313369318038423548619874528821651039989447978465254815964345798125333036849639988147064825582038899593911075202843144535021501191819157962156194264195052191341704192007975032011559501011571111078096274811551378752885081007719571904781079400507454539874291463977165668795903652284543008281655175666210369057912806112115101755991877380796537124572014292218617222446947857317689073255874290760641705774851643952365594310937605450522937358870627280317288292206299967033409351121124109789511529778533657387369467168519880570475205364522107947445913604693717674688705621193386340584532239058936093357599984010230393783120209012129795520695807919778826060812275920231227176962540436741846081732263438639635560785540054967534360053354704939796246806191306008086298128499230038858891776600008099706171784403141337977904700473808305063171587289792730248758597937120682651537237886864946009276865785322056278876792157429400262863451942336069753474060163835380207495623376160108774891975473894931044225260312782969696457905631911181558289669772327963375995725185343067090235764789972063585645258443119602452570780487396600837481533270806379015673470474878437787203484008382849239800459252238676751167393249200319902922063237868199868630995401702297501905735837228821380816130616330471408838142118833357056270651590066035131706837425252670639022526453510116426058410595679959242233080324177084165144167550975250916180210600010044127466009470493280423168980740238151566680591515989969706254637129679156447009354522286633087000067032974348456210517178652346867698543004424594368702288490188405243735744103793595351196383485781954200642683478530120848143686864408395085147416107304614479631073479937670176031981256443373482399634007371894807502494663881457321297177867909265272776830247909358550698905067479383449819433413790271396526799353520273936154383112137210943232402513770081905526968164482303644716131823328538640432914289767826281124875683059504001766275995374990885977595081251226922316805052565362222480262944382728380802591085923861134225100862488589300478166980362974436255727514672085336513304399406671299456067344760158609326202959958748393406561892387355027967227580194713735169187948410736215848548109004052283575222189581645151647562401826591592638963146191473280283260395684537597030312658884939725980950043929555740709106527709200722223246397585910627496647124430884636633609849093558817611863599708526188978518577080545251442625597667915032615514481437804725416934556673519518793681411628194007316279020559326489594862616462473098408958221952367825034720576100516050501711949128365021742268716320538590284627334361400929863051251119901412733226030722970441677239372082686235293739434504811710784641796783693633498785985069578937397133992865671008438524492061794630697769361387952441305943304631178118041590798501013621038280488417994990220766212136397289866047403177500142732493379037242633987445244126348562243408233963176109992044009965676608840289362805250542962209453583894335809523980798873962816008335763902804377736258656030362514431514296682785767969999199146264262577921361656064135756074359577020336637471104550785346566480060417190828661397211931130763000816609722793795548706010957642313626736368179456844434011370784579970739900869997583069157719480178279380028246447622506578170927753598151015673769905593962283346095743637599743235155797522842693345891748717400613784022461284616047701106855268918928148770944233314064316613183925199595347163262842587321653555287001517553444118892072015650786793754644594351874588615350872491658996338569096686485236848506737940661755075519675347729271847851516698530078898582070928742972977594263705388743311142523706792383155634784071753049006087302501676618568464870626383354864812700094168532596293066128238215984461145121747360643694932136051234249668350981426970319815021389967854932819132220537122104692782527868486037754313174092533002330833653687355252412898472718198638539828008448148889160312001768488881331126388623813624552814956063662240928408946880738759425473407293091926602765720297037700702625195468798485314531070784442844874846067522262682734172251325240423474332130568739376983782587745625425707360913183180925773328284663146303708437588476106610086489213717380487377842995840229554494618305031873801261291731596490674155519049903895670389516222391708367170618967174666515423053105943044207770569630092000206023894565792041174572908608559913096410806831307383974039001330428869556264811746662686574978188265733069741949294616410931851136399993939911331383306333018504698520187830450626499945545656479492051134918238434019712265271578616669298832880076968166325524258177856023038566092330735075846333332659791263008882963367371371082118716036760766464938729650519917451216047936446017304551453815732001752456393694676419935532575928807661547563096862602819296170008061145466995128616648031499005139862698937620400882299825735535252238237761068007475627866888362072575856943973213960078819075122987659293649029496636764526805356186309577420976243525521413465401690658734634146130289112794997866576559532915038703057376893038902953458420460493965311906538187495069200714797800039984060772133420305109775004855987176777935179655674925847016684778176479083952306886294601260109176830607023975786218155329689787133358322144586119361246994832341270872815842326387357110523565494742541182856962813900498334583069393788963570376106550132330881860516222176755954194436015101813427825965494444280158291718790737434852360446690470118213332870936364503795909331582426965129334649613006587699514760246870359302199697601689535793303586991176496040256890981399782566520694183789377847664972655873580341403544712637579124184602776763656994794691748964364510334282660729524445680814783430767185900228785754291742575074114456472845051294268728185097634355322462115411257606765198753642133897009827270790645239103472361761957328925522491794172217109214291551877647038303787697404785977110798117528925815860664303402208381461212669990210537817608564297500316254502040565474413555652101007966202471116382219688540124784103095643278569472190465291955473335387824738950378712279482461179475298434160233584500939705534543623497783195965177577442843744694636422191863031249126485940181025554742085151041649077134820619409678942877101886259851866018853525654952665992684044709597468431385008206544951670632116753346157243377412595614413936162650698081183303557128887807461527283890099464679608341128214040673965020865109877287552755816105416375266584240260277826861751036611244956363144129015891223510078103953447747604041082528405153875781160055879856352734320206582075615811635206493631783556865396295697923271997688692730343278533815126160232199655029570737276791436162304890176296595966400918527728025569397028442143963355492022912811710205804999615930749900265556938123884638754958702901523633482783214500984087265048440943078705952747267408281896612440542063809927747833215916832458205913843368855533837028599352452927174368411430446467266715421652354938416479766432566652371074317202397591371078349451830309514508772941677146594327757553819358530138977011157265798952740368216173236201827195726972548023706118036310972726220456344336852487652537453527184633408186692278908682038064842608799016891052480576780359276106085044805469198499290381554817930046823992305774695229147149927393301400848384176120811128537651448127047822263667558331746327429407174173603034621728168796387640909763103946747615832107821384186230787921082905835707541401879626706312298050822771386139114558456024969027995140423049762426436696721580414697849605829882270888239707182748429655963595519385458394047275987523661649282063081857561721337867818272517371824744122717953863915672650141506495309514659774079380813349861362018981237535395120222346642489179683689366868701587494867281572653153582371975315815031089116630082562989013270571179477633711482089685294431638973554446871075084860331581967410895016608428063562818156259853687093153212185356964470590702891895716098742736913655216441704373210088318930374357451075849179969782614025239615737441055132904922267237462485438324734511059208599794474423767196069347079763737166882244485709109994144851276978632333064386881925366561938626222640973853217233488864323220720770215232089401282631015021786218161593467886458440772628528284023398489776198031157955985915677383801305298168311063422911832432834792852405185920075016591354498144409505835452787226090426824931709378804751075388638770512396008685625480238412535486301141256671099834381409818527421888888382863505961318056201252822091455883057943075586946452917994983916691119536185453133611159172836916343562348827860771119979938229002612297469759237615956748961620201849851929623698682567475897025304517116810745076944281984493774473990861426484425916325355814485207263761411683085851800298357322242089276635351848277552999746013949607667795346188004389782822092623020322300766150240927139762598543608826879239224584369310309214681528612382005186900284863187842109889525941659199198954948119265299272598910045738919487534062887452042268409613495178078141031884322608207542743435595105072136205590547448166133156017863835401182777634792267232285560785296974440501167798718421103942587563587033154087258936830392586576424933944476661955864265714366501894990040475251134425722607466629302426653312330299863291924214857412224088172420121723379989682631940196799683120545368728000252397076729785118755470053099241225002456824317739095229783943081164009884474840844663390763288641244914643303500449350265808327501113435219225532446852427984343812991040159526557626818951264852589644875873089027410174953134158290847801821300738157660530668907346033406042596794637140929188060969607417471784499772838996315544514440006244014742502921901662028930597215343216352100148851538404475447285892108273568827997919673486407098643468790097320459446311294655167116087740028018896358212309336603510413874406851419083590816935230659057205750318444265457330733781177507323844621073644513537871462434960143941748440426564738916300290334342224371820244482969032852322401885319002091679117598530193373968561729861911517574984572102637200354201348589285038056806902203666286827368259356666368618079093325295402800247094875715429285587563226233182523880420550233267840960533150890978417875815517618056374302708096926270528738500073591238288497807265666725529344741343033717530751492520604246726755597054864270843116647385485467855638405813722565035172819396140366262115964412924551920290868257001156266208006580410404674714155675551075728283161696893677712165656840115165657930772936249299012636372782355284185191901731395407534033479191833554607136520188482905783651382513076577170585308718271103770145996016925589683357182541479391676641732098867510052436930058202446900997670408677595416804143699903185121992678847555634646061292892323739524138651354139285746614480251300141090542307879423356892997049502920741749122003226149896055473328415938939986282850732569885386167479189854458258415127847025306331634947708348528014406264441923693167428453698349956080566436176325885981096691391732323139781344464637269993808720836974228461752156585531309284727154830191311816266373147872525639833211303331658694084395814949209602635568146264063047866412087476712146273604444807802072498408518805843611792506713432046233793749735630575239543622073400071157345252156693806484111982132957602901475225761646274491995868585851494854131181142571458467542311314249992542865361813664045493381197101867451684970741611387389402992056648864974937608738690659331273505639711900430931823019969242654202144531666956184964663310998319505337128543520639200422792131990966682313712168988213451271722013717687776634183804369192289568369136808320137357522623136149181929252132631645711127628188214839823816028101774969215137128270466998706282035912610064273380632157280854348068312681533732229988478842753345966903601483463996074462062975322957011819376753858889491936467623776961971625788806121092269703945449986087058271007502865022577453570639154764406674204817121127987785917887550348228506974102844481210196913762093173634695894847719859410774747323865436152322903006737465168225258474987415426969331130354728964697492360905104710585522500335198702604562200522674481215085896506708283139779820151297940889752901050478368545127137252266617515628599765938759401668992263993273766956993323487124321292356695792185898170181272251271928567480438832802177408273029107098460729149875562718928981122608077591745644067415410415514682877059506024052229299800741434702323188872273255395633407121001932463083627128445114840101182219767756773321243976159069553474379161072576157626186461359538770640957487855813116470290302920066704012167065838050713327655668684037742570737453385271714920652434250826766880325642255612191569100181898072621385366113378110705609386773186671212041920656508081359718850049464123438875531552104691780592609967442021967418987681395794161724529072923476370899947144274105257231445471203328598882364238280045963122195328842610409034976110416119709918560824191285907999887908780033216906137895443403540908519377405011013356252803986817063459033998809099697777855577377399269504605369977041723537440121454872611372788534109165519625045382271136847839995424042993922129316888828261770994937148358268015196192724792891602486369207228686918293584270096113342331028969768563421170198514398070554459846471137911988082117832856719126041347308607295780015142385633367284464135553924490848587229267018235846588329389687661810581343726906056623152651657591369918598099159264894430574086170543271398589764650328500187309104335529033329583247380948386644388730933191446371308841606870245263382765803993196374231028540603583512914478483802411869562270952480952762959299794601538347630422021070813300214315734928492779584951837894061381927651413852640947333100305270404504769538490846824995923157648116957906989742452220995017947569786553546109570767060450274602044004192230752141615037443954977277738235716518310727916903890651127558194162360059980292720798089728071265921092341748823023568061261708421454622863778627747381780473419099619480069076351639416144425069235260703358184672591906120943836153416590002533948499359724870458481473386743763693894140079399189404833679710540888298205410102003520407665251809333328418848449585796457644872630880518973970236153352696446749400048457666658061853749424334552039673393497529911349645703532411873564656461635713997627930026335763391683737626178970635059813161118945435879456794525818559462527627690331187077524308372365502280065331611909585104122215226734064596617045094094251418440656081663338892060216896925970653912407104406883951774094056862571478436865936752820565161319525157032876439757082582067564431251502157057651700039990876235216864834137312306888485321143148977711979850136647682438757246435563110602941841979715589528144825918680050744116160145292313399756612769397705830502739506190851720841878749369864673665870758455951201590568519242769586853739791147508662501698197853464243448385092772663042197502008430725327503621025522910925013829339602217994190539037267234361569947406330415905253399489449333126246141841059301322252816538580240040649673091670851054549060068839825159226218755509578299576661452814524985903060798860477151853539689189461624676256427568608945467852340718662396121410771409243642858420435458256314249283999689237765327850995325423812853752644045502110325705101889241421227957272844575104583618078775776158108009620376795988599606121546054011222001426926291070125776139549831080250394355760431080670867181745143531471885236416163973870431040574151366991340157826548458545604020296355162509408255589365284280040619418330856103468234811249571923477276334524367421169338366827436585424975038573143952652236928713972374571821323364100398676372958097365217461141604871956542199554898129517691008013565155737982104236207555285440638109299232734076453831118089293824430271284617334619670669040799842879429550519298527793737610451129421087509315712859882049407182249746764342712134620765916227569434509595643600145567762486602161025752229070418205113120150000624375030958560772523924915820325176069765304294768032746624664237923413144631404716679980262696204844056038890669322380013642884672535683313948842419785188149170117515648020389922536472776099939698264140364519305696634741102406591365566010598571572227933239330371624927058696075438710643458396854131545068801203198623739752345186876291981990027844255372396944622719192067855393538461098773085376001280678313509589981668158865312214094593898047839445729812612655585287473106253822980603136387574330275189536268925680969089901410557107427820247697428675695548782969530580000562017977225813658106739946641542940310677345199172901036611928933058982520826824688422370408925545340161302980332220228813563544054435961017887979718086564321234158116990055441059178690577994706550485953397046543287948351941804865222840079404218968688545631669326961918035643402368660392619230872222033273991113164395560168033860838276435684837226309958031928211569609046632220787915811390901731442498497871689280331064774500594123828222163380938975729356635307401738153863505424715975057139972813474479200448100565695299776039890037112010883622295236666363068280453570755634491854932993495749188408817757122890119985379244319506560608445914987032039219031970520661919077196629530206625580560149338085505814545383879972686974249917742701896469288383926645669376040949346513115939848753360770433809642874181270180789307566186234070951672127644580551487751715708852058842089919555947312759035124992524251604238043785082103011206380900548140831018751440386491765046751750237695752113539321615004152582883324007335411092059154011492791083507258088337535323708137030867731133110294710545172017413985108809149778899869318643956324391480562541789930810390805630228764777470562869894059401686968829992631743140128876457497691658680691788894591609078034174886623961594970399896239679912266311436828216122816827767480025140301979723865362890814499949728035002349103321881635281262635494328980261682362686545515283730315368489253114076256012496212876986044866013607636885121881711084864140570347988073244820280961416260518324920427151501864943557251429571801468954643722245398960436662181862884497990434070589884261594806243794103077012656741406802981367016963640320110505326650158741206781226891033737796012081702305112642259439520408302956450958053270582258301439649887524929140126141739453004660438186406883497722311780247900555041098832590467758572014676414300021076173213881865298294513831283857860047975575606248203571115570480045981869351483109685104903338460772020487035957812054199914266773859186414073766102263149326195585221796666185609936332570442823888684558700387011114408848800197679872742463589875570861042619929023510480421359896068413956534937181163667828592329448562651930941516798024004948091473661507103272500953908937747619141402461811425992782966020293163837414134503425012479168948536729050237334475384459700967372300107936446758413243308553376159489833552286196545723458785602208844014855214778967959164229701646684196412011668738099304625221852838154790013669064398838804794751879510017199367733688880394667192072942858621718081978386770038980864194346193804399364853346804600986823928484500005260788560712834806743046982998101170968843332446010977331540556412649535243741361752859873043558120443200470009622769481239624912057316613699553293908935433270239983285061261643401619656261983335096679332919713675712041518543214045241031543076013743577886350238857222898191910396873741475174652612575026116384187898818936432345257260602440062085347857471965176929962153599756381775572587186479473822540798365228746505727592094584873749040465278145026025579262968434643868775222736984612339057781619106446511880738995392313573416921827119646987547246372444312708586920256771339870596822276160913722233843880964587182145153686638238378733059495988047077448545128524755986532335452327071620980268517989152862714885054821434228116180347966218100267973756096809543774208130725331275756813365825184907088419322050142133090541863603951979977674318395541213092058054854489189808652514763968490007792563303702778690383656038091957630553208736179876009536714103443761022326708021383029344316919941136208489692664123232947880712764405140783980877633472794200504654335788584069499195160473835711878386915498421458283968164204758306027535502692992019873893490871156790750208383177564733376710155462550351285521162463399077808411867042599128279358686688893650916932894619110540377146057303088288286171454103783826078627640818255235005858539663935414658583364698243202265579460791976920573393649248691710112749568818418058429501398846242957355347761195304659850834762641911620031312554983768705367443274708465244399921335741952030633580639635057986504084833570589804271809352249026957383162866758485977087534172841577376568552070573923290100599965342932633841949977859466424918339450829767464441280056162814175858897302812829504719758834277302166227587030997160392491900870219614175850554314129217542686851307510025037981009251985054229231102093435490213649075049386806639974937396265143056549034773388511978232985173993816078558598252928670189344998539335609203098111114387939797168185515789840111567015770083813000185798776593887007252904217450685678913982933291352994603108925635429540957176862613731432112645221274414881791466670435813418998465762440129996178372214492219555805685446227179559038286855720717296142989812722718811778321804310973246153287285495480459420839346224608008256550659283403971913016786578385623793787899406185021584398962879629669151281906408566411463252637453613873508605622932349084128326742638423575053489170039169473191786928253309681412432331213873574305169994952739025887477704069841971544515082320928287831768660090678101744671031938991818148278800533887677660023320638881472663543812937284481956394334231275312616344973594809295430577827472003387121884285525477741146069819117615184769547395606139905319006959565869359465977652698374815085324040805550234239004538696946054286151614062102580756439343067821946627024369380480986660427615822415683934260198558091747080186538904515889293446304920350412012014631725054191889211478129310305700604547844501823025481045867524101105416721384844464065685979035385528333186848232919850768584634662106383150479851270327125712357844845316565394506075853987192466042633348814855329498697032192632745612022497668999655972581380471966969865688378268790625975279223101131508448875651875787117023805865953129645247786804140934255527187325904841851312774829382920986575257954270347996862059862795431836107090160557639973733789298466379745826816584300611251415787118397981973322910723195596943161035726681692150635805761001196634453305129826062573403021594061329579383054743945666676424579620913783499054663602460871873759893842033375579385115780565038001949353469442531853667319261143440600333274854856011412781568469008868139008304015711082433597597621402325502576882617585509836589707358712075278916538802881658624568807883982800252083264356969681709990968143358723969884294261567407538863246110418177617948603782605775940685546094224328452207380332751802322181832434345788136835957169474746698999591606666943707023970353791172683713455740141921723269206912482414823362135799750582813268270819244764701160939923289062313593885432023469562711883450725061859727625167146148747620686354405057477485012478771557246223387092410486402285516568274014544540108139487968376088435996634983575874955254118312962601409916845771863370893002122050699419368242935014982512165489158456993015555889371039450073325377600975466460116016922341963820493420790272877203383092300024389655158771793028681877274656040252971130261928804455259549390326450098730118521294555092663259763637423485879959200757192380152499060735844042819774471498283298423676648777989422697413512861801590204668562785558064880123840166267581051388302721220564732798647259087808647473495376615046196217076927457790391759435600875055486370862019377338305140919804276634951233962094200770854474093845162777633739374772603746179128014864540829344030807889914463629202725180881355594194169465405394086049965897831973733604864281519994793990635924669108542582463619380815114420778887081827833734370822972514062343456403713424902078205914612412712097215126868709796768006957070139633663252585804193164089591176790461722864582157268858493615709276320811317678342182685003594458387903330410721252215832306425113934800713686580602008503784400388918201905046402839565586176693971921455808225082813278714413846126343375161508224370651499816910249479049288140114875425654407566589667465823781804776723794742660036094884381080885454283203170723113151600908404207784867805239999296327379773555986651693801168854522329294225240858735974560298746439435301430363256266968266583894442301885681398649057956018546553170553831362492482939356326425243609644894559995898283147843875536950755727950374825671985164729569272172916283640860642036119022253151459258324828899288906254154513021434223128573641123008648715220409368595765054814549679906658085880689389320681846081191278248371221284086008795366578730585037291645495077271973921404633017439100907464186279329635455771868100185399272575798997388966084705360709354656701543255639175871916443361453680878022701843721241705196390247828464122929648673908698625476965024432604236656240530448528366402754534049932981990125814854749404729759101763040175207361128979560670385561112038827650777656549553531863181859828914872894000653105256659657412209650295951015455426910102887502765093318250908004047317630991465328693921102613495868566355057424425395032146183862980307071304936410852579438617083625051472672348105252197254186407099853659323706188345079284642441288516683381808587588495012856947107336401522224149363208146522086883204452831265073962469584075621301588519849419453443381297075164043498566472323567755387919335271868427903217539769763054582276617308328260146281206208494662985993601322313671451719667158950715134571699275894979947111769327311699182068675655416451860229801165559272218122502001343783437855537877419925417642768830088143389355347514384385517122978235294122688898148141255558677234486107091927234881460769472713989772440333592066328383599603281577073440852348366191150445897713785824247461555366734085276082165594278236077929169390436896391588120832073720276899528707593138140122120228787900274898173187173579600443372749188794176415974436770471641533166763641201790789353972627563853759486116429030705862437940615843392365631575855541284592073856328626193348951154197604796055205459167554277189070900203376202470249077174663516286070471650956347967983813008244479753370283309929923274313647475408854757860066623592685862041995735909633282380164073369703743293025155665164615681850627556147916582882785228683627807637042116615972067298561864970680841797057430992357132714777948817820505731963976462230798594185415677355646835761590208931529628915311090822379355800203524362121063304512795357249710865164105665724895367831451026525637178464124429554606560755822261606709335001064397059909070865968582161049095513265495507724506410634613797859473560396040930750097712749503727747741484059378769067472209226860886228063001415963230154369578722171728938195425145743409611464296432879405235279611366334612464584070722641355864747644247031140877123940918698120181216314507556444646799788437278692506869378368272047887062995623142836759418155482596750766983612594331243448016460539483028901055032830600932490348102452861025575007534422205161741112511306103620629836737877101838924201409397661310719871191761062277930417830081198019151812885576496004370750220811819913422354555631448459976210253616167431841886246467728132120825681498259030439385824912526490022766468923469216878379737413533641231527604380795895907824623644699545250757604082903994687932172139560692418591094650848985615342291735566471241226436953698788429781981423541650780154400762014961645324567266678544086912991827214836194752802647235914379379263871460708208029137586727699910528649989151251151097351447465657564412040519109381144380667007161466332040146726000707401098659554213269027804052623311906359377415475205117765418653013909182121306805148924737798123905675958415677108590179530482642528331287205571816265594797551270307913660235703074207526844875391060404172993791716350142833585269339029619203773735427996246318628771939139001447778954660998146176328579416661608168984439647079250712662663126757598817857539867073264957887387275415161784924135649840649364006905424191966767878346759700690047339472708720930361455802699662328108021586494396481354148314312790324706242426666252433155452688191716350647019109168488068216187686804568746561630291623019392527276826544954980213972533192874384117896674816798754465695948396097593283847073517422505282846334771989894664715035768440717567711360133071433492755741905294956458327852555549213491830658169912432543189217659347269643518933571959492249460020070408055429962852873150218238794366330090543794867681784704570367540865534728599378138712306276749043095579423673577055279559920485903675945391479453188149948179003017595417943247481513116035538574366267421695041991988415445244211309548465355732707892515067464063257448968229893813349457019451402793483911099500763489032014669372693750515756052128877822188915335981659410167081026792474666153160105857782454875861419561513175815986166806575956739295001243646211279928131691913815849897507125595224282882435778785162730964221936283673120036778425414931759127801414388095794468300175473519251178216764180453480288285485702738817784726577646036067593093405621970420341694484068033573983982923332511951620529344741304850187537089847109279864946193459093484516455507295284480925965537790797649066037895816801907804636684952481499326826691272287521819664908138551372650578390966187000966304677745176705896842933995202855324302039651478875083349482343959460251442525677510308286377867606914407341223062301551347358410245456207497430775371818194226379347479609873970043752615373563966165166386354269681415550335545755009454454405339450983695964307154543515502719472671044730137227692713068773862739053686649929582225108610443689929866046672131547607847109866455673325284411253018255881350202977064698491187285286079095204934393003950407612191354092897558008559927428216716374849757970826348995039250932779328998347189308015994962435402686071878112922778387931835717809650234044981579945410094547298319827163876579659135105465680083729962733808528799878873862196158729261918801226711943791750187419291496556714490618902495778409041845523543140255214573797679048702589267812037857266250186549354772072132766154960254985297456806566655508838715344347235026093594695549716648959248738850401837880830014935831418409000460927404944227732799002862703614275121651916674648890278643078177349929847107368496892045953642054498217462779935785804808088167953975238081902549562349601792655542164297563011363554452501673227301315201563058041894963005925833538197206105981174210390860762283886246988540668656780164666976306323549007335330219815611155610427417653694358712645875589431639966362593039812376348251304680512106926757869445476390932366794417455859016120352340041304299662760318083463889579507793182678122731926443896884932720273091673858846587756532052933272283079704147882318375229613287719212619864296580503904348613228683146588885951932764350592982471165161431920149702639809025881376491683971212002858631367530904511552210049470587895081851043599951739244443854354215793882838799273392194359522670897293053534421616749057697841878055041189447956194562643469218357646241934034157183021075505511313021825911386218477981960104658894020107235298512559963117839046088380616103882912441824319667536799915144284300418129061674843284861450035920117928063595703188927098314531874616735658564742215950589066984390723783993855311128581619891054991688462618556686415246956524870188903331726065411235629911576496012904755278638908341368208615060275271028334710213185490588073444419788029263146350443796092995111412537424803902229309249341862805054756521793003017960634981924887852997239407696479021328164886216161126583430607572622241226447973674858763548790007438865972786211745706956581343224803536332445930204408497247778902543798241958022913340863594093157340310881264879735815291478842479958388515169143560174938315859568325897207154383255088738286135899563533751637301685307847572559482116056077347097813918943645037026329884151858143838646319596318844897116773105175981026311511217968425021730858085628971012099142701532206250030824480032159690533216276365515718116337742424354095038402339271270888577537774555280271949782779537682379470751304702329025180145637329112417709615881226266988524291017357274951962266534442342636052424590209805247054106330521497452866112461615603479850594082236383426101696417345129146270421111483469496732675169933626577328180403571783830915743971206251135954938426576676733917355324715238631395108512616076851491912136725611000701496390448471662964811402882670405406111103071887745516102877698402059520725067313016764631198799562388632592513024937875013174845165815716513857694645334069595002184168332777842696968254129432212947284767030527820132579163693832918942015550979141408978529184838660304509996444398173824425468408130280061219208404365254562951076050799123171256698607562546575229457347552365572318364104234320765850513059069078556620326473780622477244927690153380133706643357462225622323779862841919171547272606390870865707154747874420196986390457051827314948105490352337652372223335965422549118683601664172805854032056081374182430545694765818535655358840213072792644281232925040640738997011123800638931003864300809138613914837987486958943223046827981371223534331267913555180975411697455949364610951385947177025050775587117411348552588565074445275610151382160220668358306018178723347426718276727452965196078093174024957893644097858685140937374097412380901719818981521481940428337414850517482924904785934537102525774620443917862649839296070858396788051946468067199920889558533512869492352854368755414097347404375588987009664855383832271117275954866828132513314712734668452327023117251374648479536921164800834674721923550748342886326472084726698715168994458094033294472428468653598380799262465109848760036039147226782621195931414667081816818225695590016779309506056593917508328872927134147826070276214150125465702369535881021071289480831906637414939191860113173890889298051943726802665736604576176447053497085070082765594407935139629102612186458951091256673455277512728280215342305135435698519323336575917510932530764846577282292408223771170138626829994934059358975809160038182837595325755737244613656382740894553824892573699545191034962301993129734537605473878900085938988613379369330633285236028202509725427886264637451614187693695955471105593815553835129133986125241905275591860056698998353260901721249821287763396971437215369656221069350177802288180002672920183243839289823326438387854685599221074264710440996602304872317891025479772334719595347448907666031201136901475540440982050889320757741725994118393357288488271020698213444124484027817135750259933495949445131381228978936923326352438846570852571113814891233749875950220773977003626278543190864686578642100566466848270252873951899293564203773635078631696876408068466869474489941986212901628174000626364421487295684096250821992106884321131974424385607040013563917834047480668047071394727600289990776040884821351179631026697516998745633512880459160638138111484059954058153526561394251877673784940107446740598669245732847230996841720983194105387074051072482189302825307050986142254080123131529259707584803974971794743265990405603107451703785018214705323925853136702309741469888743526152837695314286501637980585291318569376200806060918437942096715883845296755730681906466425953267950641887059559326997407711741962149509036936299761377950796091493623521835768060387291732108178211548349863730353024214748341509175003568025503107363324144284481862327684059851045945129249388792070954379473179049458944642409175447388168154639758628294386186829865417355818823276580201869771174020543102442764952087071687894907752041473756601302015313080507922946362963667058922374514814165443304398081177160269632053289781946556325470055315430914490154173779020154278658495026862900278914690429528685460699003045980978016107992594519708326432988875547459146899299840239706226290162831012968210182897546956416210928791960071477704641677241007407706104712255717089664855112185243119406699709495815172765110094975033469301020472177596790962094838955643243031621067132482336766282286514110675211491402534099911354524218033763671876850116405075584385882861066238768535625160086619085480649706065985221222499570246231780229247288978939451695305165765717770951288744257656611232143905990153090220931504521514627601945725121950372343308898841651670872532805428433810506469247140480579139225795418594713294429654472454792831438594467692051251664310079332481982809443825327591416832045747964560242812937108753592923059316241798815938858912413829837484632315833388056648042657647720330106776323265246612494786896258145798107804665440475010367600521661957082478531719900081587634550390353813187820191415522035013713456792598659706148953268676328017010905929401194451904174968367865726565579878481445616001871823512379349729677903267426259208079572386065258913273437205150781658873945820168781441871608779001405607224964963326195027591970555134502497957461163346007953335855099843485731934145617833540938889654989551330418100933536620717165825973615735084600203413899795213731811680497721373889032271074340191145312013646791146286965910615320942078470942017334030341867200297628455735290611558656518372580333814743364472485597152463090652610904768782364381234640231333557389308577020705340515601506708517567632857914761042233832460795492725762356635036779386637797875421400751656206480872132099298873864445290218522828364523697768877243174603512482168124863468793028437284014530792826727768048695711074931588931663440739980026248798609624034375245521705563533803069744008479193098277286503807619328437624206405062009815529712208324783348237331666143451071426167926710123076161726811343867218622922973722723704768968718566025009660268917419988173442415251535398784459042096654863682122609004319927274767964115959581915024318618678866249578218194739927691434290687245917995067495250606522253398681573718940449346477671179963831890896316797061881258138671574759344265652776456145896732621889580676329548087140932112191395201555548269795675086286256326931226808195323154517549567737798806152233224512486300156231911332367061828429880097834426942233322071611248286551964438117243142252834042909227954554286745729357399391793918486387271831015456432332249836638006497322194938024810500296794641872344424602703358568453862680843926640262059005243058396140595248366954298608457340583952357845299928994708607001401249796787286134420113446403473473065112126935257918537513327677864249131978119691722407652592747223062380534931609419108673061713834101493375967768864997450428067903185733175249343598059677551360935535916845120973542592836124709702831126342044972017019594344623980919006436120479637641795884968760515555681707281034001392159333251213752951504016000886316848913882483659995556373492543231563973973818339153875992290115622481587547669744157125879206139479637768835713935886267961304844778942295091284494889740627379698764345281000188339296450217203402875162882506710772795977462458092420160426433905532026397834410633170906451792124198349217869230856216404903847637269820600721539017496172195986575532610402538741657865818621497371864151946172654143814632060657185933368120489064903544193947268052341282764334579840431470285931745696295711898659441735448789182515390062301205438847261321788051201046961119673107218337099552167758815551425007977646582057253219640264663500397281781299972824479267571798877373772560821397355322144256047273858089474491210548940197330462571560900163662883407524538778449837032411712938908605992395474701912498209184916964021997375394837870252393967556556763960479770728283572872900745196315030974869992419470275525876504922727295355097649582534266257043865873749440465273307969246504773773712612228812570511534776594474154323178616925314861251449919368512797557022374349394569184743854076759136286694403272734305414030954398062922449038770762596561368824072065871021607277396996690630931507694944356291763158177702534306210791645069036328225516003984602816453369653898273933433159587614261311170025064821364730556698919785935877412347424813542252864626352857354088292996438956025902083742790625764699839716115247679793523442279377221866162372028683016770554909605500426891768474890255429018624301194445064060941074871544011613709305244931551509433276029071785000547136471654764967947737702636853812003409325817532351657828926808504503490336192147389067263267257777542165899212968880311567098736283854148021290736084481549853524793226367187125715061096363149592883439538303840553765317653923891130904965609073382705682181569513250847220452377643046205784809142889748594229832617186504506537850283223587741969180477946079031149363580739613578957714175276007906556278790755117381247239335158877678208185580567709583218924696292007038020639260802003723090322179944174005120086212006741322242800472891958780511049200846864494898487381851584833309009048508924658452304660208586178163491998449155393242246840125373046531666718899908872017135673427645962112326385029094070532994026277900520072946203010435603778242293754927000676418893913633624614869484299479580685860336623339868919075151453007546506195376252127654203061264765483524088881042181336750127050572295784996478143834786655115206614929934333858331842903803297570044621954565215214020549588295322257213614495530625744391511718438230416462468010739541762160760311750984370543424412363979793113660684063015920797087248616581211723582781167228781849635183795203748812929346580464642864991001978231871776492157876608912233387658704569638606966687668541245002905027769444099992597692907396459189605474582491523091487074298428756235908200697120581964801902504522646103181355613186011482698772634770880120794894274438146161842126660432850391634806558361486805609531002741428605570588113403121024555843935339047670515180810937895673686215745513252458279124182531449031471584365216369316262078153964856072751003650457608963635949291967060811164147172420867577323305815843348179742498732139427237599840337817860857329582333414148515421139720431275227050319398598095331303601477201574805894166633695690943673548519836300070321139767107514988875856110687752083933681721032757758526877692235206456551828054901840218556564062823262860844987821546274838223728967034345828075256653594015461134440942450462264796826790051001091991179132226487611192614015471146916790243808439311490601683891294399219658809206733275970206366860867679498040331590443954002627629707339052858210015875608906949625004629525508533923352166803206602461875205910951356474565016686255876296216172241410500115740278487996445602361663350041634155910540848729601022075069188556412755110017029647502271851567413246571727983963213473046947899155439296542251957198149765535330171087687023431070812904906325111483009972758661634157881449842803974797511942633289715870661020174307854190774686428793488422422603414350970263827217136487167312899304439306368172514099513884427906747451213433546370416526121000862007450256636418375809668544564859590738967170458638939338255005774106632882671214468892039125270372837208325197342873638198670799883457393036762846514231153603169248044627997578290319533646899459256995623852515527682867866182487232477562758489415012211910155507833212864017609477528292066512807475255540831056708490769207646063443857116670251070303090815719545046887202328368778776003264383206634478376248478681433800907049750728348126647607431132168216915744152503889969145732255143749012754550678031152600265385889534345204026983068300618070016683752944623099795562649112085996710203941177203149212733028099180300590016197218098537106566306942169931095053088003617867613452954084550066551904037937932543061077282391409859894304735560225655521491079718110200930591793226870826128021651257365531094789156650252004647313848673454786746316806038757080652666376734959967861052267443626111406849306445006291771990069937792994886358938530374751382412058713903154311066847206025920439705963812135889029705395354442175150362586171945345325393255998783935694921253258380457278212920489277072697023273884846590462500176202775102486335026434003683747685387251499857155928487092409012320016188469615813070597303699130468572691966110321468431715064491348103065097703692308684064209452638448818759655966146185600330772312596802200737728266192881359534407454837300147494443234660735559329304901426208221418281645532502285846051603628908339850321261281648691565623739673205747653034485393656271850974509826708408029684421221737726867274836684970010211685274529350669194279468665594852875914953705977003045968600873829017115563797003091047666301737093720187835624373671345263232233507566958518765410108567366952556708896030215451324625233794956969389490580290235022182864832390018049044624281839004875331631879447179036415193959802579490420288014380905119490082846935731000171809419576754590710500649157113321312067238785793123005163436088809577423771718333600557600458259918819346260791788637105655652466200532869591192828988534472996708917984752013560951296363683080743761999699497489779858560640176034971448510427672386736951804274253148783195911974494791939378325909942404780893496273016929839843331228560192541002060855060086115227732979259560696648757418713931805294322262624709099090393609366054259650751385392692927772086126477637762285968503725628133790789406959222197386953895400411181448399345693339873316420355631195549555739697579247835412942119052914674877216277042709552680384744051138285735092602092938747588165334664866975821888376572980783624418748138763286789696431996078059687627695698004509973550940545562145605485356800847591873435504288394875698991284737999760429143640623971350318379038508676724234407004540177507913907967231729701332665324866130602144156402467732322094658614400013364049395029039002692315447796549801248872197666769261189707715553681546144039793419584928124597836197941099782832411625760984744622293656615237716398914772926161472805026146271642135749376650296475421199683285060118624211031424035123326265012378259658056545240730489624969492360653135662513873247418089539593845002368663949256646026198099049914200588570946403831231798650605829672136997676985654417413319616393442872405723660755455252326629625855049397459525485413575693989599675991023611258637079875438046804050913922602788389826677738273010767780126598696023364096133308422705779927961300001964754464978413611178028693557889316305649983529077657531661756095586562390467917540031560677514173668580816438588171104778381719527856070308066583889519600721644642196659527975111005483410380085565125986354010809518833415197473923406663259001873541456327649775904726881289166836274598033681279442251139376630204658285279293661708440374052655262390672165352451232975734746718358960123500977833896776401099600309591929171335224768627783005402023904881745339561698499876391543279658676159046356592653433920983310227834998485694403383527602752675743875176015733906487985479851924317791886992355580626848543425588281038223369645676697288105129939369456763583587750292754643778435283256448258466195052204668560456096021112193189681071519768315057132824230202408364062080358095075354811980151158591955095881220434674105291376621788711046165724445812706572077348643775004842705829362226857788622022918149287496247221416013449399911723027012266831186689857851509395251200616953315124633619986776343221458970437094083001555906070206761864123123853871310273783322929315074792665239753950040920561569181233146712735864472657302139552933680340776751166540825203614964466749183603673948058600052258611932339211152741448075776594865325806169199624408504559581678646637861761487610889720938705939311563652338159018969621209081279320284036459115965010235115251309147330653684090965415535195021498868841645905274348512752988592035010006686820358256069519079901200910427440830783382411121496569391086443838007612426359474091866974900475881977851070201784258082279633117610517588770714681928995349227906954164408212625258029916002367320090270150019260351175988215825930590143363741423701698151828514670743793294230660173172236728329058179179300056295876904453320442234654251906817199365721451281413642049019005465768814946698076125551746985356927530077557555492909565322282513288354342543375740540289590794051283293383108008641527236344675042971372156457895909336042952740552807765894991655224182027220068129343497592110703739466744278776644792919684374410576577644372904465820269926373811220928043853819664976870764576771071689071877794828765137912044609101572373776516109620947398344310580650189209024369428826152826753289595502863800349751609388999715319439941878918345305008330391123589532355188511651890807381201277447426447218210602147391936946256267519876611520864425171993128825873683332110706647928786146347280607057463082714548022791803449078128827602710392682593465469219023478002548900327862070205088728456453037566750330161197589694898598879786824314959213398113754464308210003100828094931945174079100311539006307039548317196864631974800316487536424922395685331446073440288149110862462691535254338449586587684359053645346634631535502070760321733968630628501475926087778241009766533134232428083178735210502814201560768654593098053745971572671428880824010289882593170610045637675222357127076524647109005014882639295989234053799925747026489677372786361776423609012316938766266789386763157310991680036576066716717896170478982336436595289972312879477233634548552848165671966919215338692779708318237889146479816039282367292465644332687508727547051441210482428014438971271717580129943262859304111946605056551037025181603772808376488049757360021805491055299907387232606861084305211180492266213337849254826742785401666423720169629676130979884398812676591100419676239338516753860837535672317398050562424379548293237336973945462178776964075608177959182315356763447140683532780304902373130700234806993085285092721907060145415003764711201936606739610611351751085075864973619240030810370461207205560517265394676187996078037325758492183707961027499241965184739893922511747998902241932164793310360421101687849019494335338105450617692095135606829754544521589257891163424290833420419777549322949653804739014904970960186565729114650854345944639071273297615878002167018538984023904909543986051610417623771684117942668032249169471016972543477171142513770305860861815684961406390096062753046579792387715858246958625968078601726847512012849420839481749962594609260141910058667764768182386576343822727666465255946995280837202455971922835879470880682595645903918966183039297032960452438234363286611297779176459051334342041926006802256616393317874482507668689809507179937088487421977658793807042922760546602979168328685120551836705543263107056849588787377216953979115051605553764673591753964764525643311901524767160157269346435073392621130905146853342413276106546134516269959057693658021595650660105866728906314651168293452285007696261036220170516016891440028548172045746755269334344348022423877821223742616681442248033315817212330871952307288108101875876178025957113200238978659475952400080321831202081857938593153756853546905327774015206023560792027306379004204165419502062207976797458004331021648657288722195859635176571233196935141140518945286858218482589578208214139140241155068223999390582198779387482986506923928837169482311864198573662401675219627051952230768406791693281251395054996403370789916311135758995920160402524182762406660325102836016581011618013487716434285190820145230160939841149056381981452205171177316554460512392324413364523429755307905738048713163532561482241164584692935218385108266777536087187263651242222228563814556281747495896369974396971640358366695282337490146242601122997559512465114529580551614435885081673546853001842111100128029448292055421231561958811978929119603791264803779368758166403022520122404157664792159409568562138986368879236063599733630187536574808775165529518466283022025052795951524833042151482880072794023664394870336440340200021240447102132178030759266485680922999908801274087083389314823635802950581340637246438745911399526394623938736694707949333630363466578236728561290699383878154505753490884135122578344730712343527015177327351295828549960822963398831583379941253639341729296684648958543376945850754760766712848573870154687419315113775001973271799467395596778787677089101812770400382112558598897279891469781994009887472203161328618156532745007192173358183460068420721766272003715249903455102107748584634137449110659774358002054007529542703869700543693156166284721734558306495399529843637238005346339919088874244382132387056353345431081635339008917726055874132498627503350749478940017998608247410901762892865805350892622224818710768203339593081848211938970324859707009514166331312187711407090454658974423071738459583124912625697997028074952705374644141739883824603554383566362547903892598253396702199693939969811924980999718430596204630024633410614196024208673882646629761779241463673821214066388044405320699688637366105460788774801271719699363072082033181684427347913505981759183164481078896447790394195125637367292027153047903387538598268120449813093152693744212256354091075955094527428809451007480120359216508375297127190107610324289378872421385685812532400052348774135201848936760471768722980002790114366355948773408316199926421726867580617811908513162693337833860869422991260891593210883683720841254112112640548287526201812728134854767863352357115154170895313220150507626640242593267337410113418133483214500754962240657049767070740904266258339260865847525688422240086469732409240022566387415098024036090671451955131041787521473793747523166960608694748533720005134817140377029613734746119087366923215765570903019842695243869231411424983872987182130820328365070358847682285591764962757458891271766646718127937307541536771975190678795864271966613032583382332662385927111702572475369623662627824433426470277463132266093786540400231397364888487213580976782199215957260751394077270740529182677100168562735405489089832974281968659577904601667611581662784984464564805233335292763595207640717487588580571221448220693742725964031024232909297278131463516831580701737316740799799552979182005674513108569711226125952488452284695675729906181871151359256148213242028468674546430733369331090289532941681137592359324490790711881998849554395710357631007787026420337391487166626924902179491866367593076093924411485452490961220781456590518722708159246365454693971653411588717978407358542465688760069503789210270754826667263445286979492745184989635709430342884811355433396755698403255732404764532431478186389537756783876352432431007694320989202675371783489769763413569794482743305224013230031154979850698969408855914778678841408968258465737296090799492790492662745387903375216227822208290129248165632537911404614774598225616921351942635486690524627006312816865179908138860150135210179814829556292833976974729953322391597998844189787700802112024690610823610615697161024949558236330562783595331917908096550251487407644512934361376858401789205618235080188138738957194563829929179293312160163314237939215242401186309620690730464487948845820947480521170632963911553025449882883470840094625592316192308660188588315458357109372895691824561286723177485161861210898667966470299492525927723786787216719109542417933316184957270781500482544273381259134364221940448621992363827579484988701316435027933123700043131763176824679698010713621023889747959950664537650083076743737960315935261630681173571616274110301996628848351644253705417960570831882298176932055699267598332215701180360490813564458173774358073024117894414610336597904379567324716344678790555943376770200221084103444853053683395432084720552613981829507935874605762163798113860092916224845182826523377713098549174132841535149199740929397139468994705592371049832579854721529609644698912307206008565460406277877372021372271477340279094673202181505357128540651214707797198134558393371947457880772022566197383716273006931924866669950023792393979159652986334675117646314618181226382345142309380736359403862103317614114235395249820174407281125469590052526017813090209440521445930212962804912845857796772682778605183093366996728361614411840097606627579893014008995608679088605246201668026577653866722940548838749034023974564298110585583876273948959889525269947038017574056473488528541528900464266907076082276961799888526755485431150965541901226742394645526650130157185246450394079755813242371657205266479731315892139947099814165012137544067629053606681227309256726533653056652173406227792667944814210773102975796553473813785784433230311660668247546212094405272667526555777620520152489967291267039784757673000739560786736965779884491895852825027829435194227650503927178723217035054083236534914142134482991793831995590804977563587750409558746634100171588285122658182670596770475479158065755226014150474105819671061821851867568163377402091801174864168689078074091800718942508259965835857612786006098471646771255709466713241756679928418646815476407049264677717733656238385288037131157992542551409528803099069502543151871871644636644732918613406763590122679526404496247930796402607414987209705936212063155007522482936412388523722143873583967141861962361072012207931507236014631155811435989338357006713314485619237900189266041070414753825017467266183029000797159803136581184751821972091593647831495273367992304855633099755404844470963698095377690285728515856691535894685939696157827252662417683075899409454470536861529890549203392160916415449374799831068920815902329942051393082890023322263077647889335556584726966568182582291656230137993539784833782509015173967214994339887596203113950240998977519609547695497345129507289897479002617315617675948041130458518650873666458920844387224669916356925377018903551443434802512844463617539935222570603455070457119655913603940965282640817857743859237030231902612462224588656558984516765371664371035537769664216672072246635912421628066914883008970712171815732071254567815034739176138552467926577540821714080773590032706125029664507231358672285505732201400950358820445829233114301976160715797797860489105382605939399199968416841300832052155739813900055285558575140029463427943275255268656845961662123609909036852673806327018543739652790762562527895561295719592035247392346315261746699520087603726634440864481126620819356152448773290976914431703911649307570082973885561545272428915883209768091280179134670433133849466685195135633179311763928120661658739047548016870166238278307678065475884426906695088231770688366425800113645111993111364342190762849719234518074459422824761593134611382043125894615250721669075841655153818152745579795238452405874915441335008668855328146045289953154801007989803227952710905526021727365059543597764891523295868639828944650546612538532457362688399660655335442306078651506965217399246772755801905295126116719328048335584497150042425179174090457647270966048009653792048378130714468458161690974401490495908437937461222418987828682608095240025120706771665241069046746611518501445517138814132011896881230300829718067539675175606208886778286398484250990530706539655372244215948850784363475682654477847763650015385632435892731524903905147253534864997929900375528476042551137536506824431247937274773409523001933305494386779329939504688353071260129990553936813441107196921626136509495596054865300423881812559417257236076688054634486579393350033247341210976771913025068618138841155805222523606366275998565456494507569334835809334599965173907175675281425587530457410113157738769812760731627899507191267281685580571128164299292555296135768307701900719624189736977937613750451066867851107611906459538765943788238542743312174231057682461860041115713714668767882367342541143804957590625839638692853300620186100490196877824618055177485444978792658582217246620300821952697333961478657229746098626140036715977204970075058466213511893913116085395057304765361143424665593707564955929018306159633348614269940430508994031063226511517002202536985703631038963165335295307952737629272530477940543895006264056157540409157326558433773281447003760985643578253836066270089566736301900230743272387475184881678204295127173185549832347191413168678175872261121923225149179273667809338258736247345949112423213650093189140240391639424311577345290397194406852342186881331555455304122499888101031707410327442932955998924748412126626520082466619896404238463068361839763657967773757093644887495666868580750316269589650472941976435208802675626085073644770734082983165428081104057833740512887731242587532092266320156941629767636392064944187988204576629357868992270268972789864014161320404929954463806905095324657499048787949425383080442078428507208477963359704344554153659768708579568015908640446556612592540593476345467512651033081689489568863978135717226952274102233919740709577071791473704316888880455945171865950986296112375911344029687008521322593422657503538872884874042554863047257438981352328988743901213991768528356681160763688824098618181723368712993993320415698427754073880306928608076011421880153031824570133073984210287096667369275456205157963414723682674654197373941948638028844724558998402515030827220982938348086645940304406109338035245246432852686341579756925103924108207379917010822762690193734880954683178118966271219529642588508776881897249356407399749062083648155497059492453973502437974868692814189784378557933930216191261422059798232676098617228463572655054227419932755741649768401399450304737595532764949354960939346101122755382587557451318935897312262743860687157744927176207014333481563407071627329112542480936602018875363058661972304291221494225593918506663192448983037913701148405737293899119642511264210646139230775279157175075346049310293791135410950925815677322505193656854285922144571833459530367394690741923679308096747705615494652419357650248390754189882090876771430512254247562794544554445472696069136620977382428638956811822680916515362791037729323719170808899825898692015551334412615796359058914102749532388682895999525076122729698926209437742055237751620133318723700032423071993625552367915747204809959918274017021435028938731427899906210245193161666790552624473262207802064265869276964515541729602967116610164426504478142869714502924209197591361089752627234254806632925103850586411782412415223517970342408579887956141511712200229275047317953952841940872855951729871524191384341218432240187048196082479786964617362818114055078705516230042207705534919153761332287430198176994128116757230280568899893988495515791682311422102174941801414700481050707543572895524553469854262133963759410668013461121417374550670688516758541777960031566747129358470281116005861407344040089427109913926633305755356192137972227836021974235588100592251242526266454163039250905145611100965864977306748570244495677316685664878981233059110238248811429596081569894485742096970478120243029974874217467295904043556300967407911424519020446342440801765898709529353640199830302114620816897945769453900273696901797193901226872666701370480938820574808114281762462032967224838067146747575855790123200413923306007889206506863858712631887241388988872534104424745423013022488552948634641696340399031861011216014082561702535377354559287255233472622616409876965181843399442910021911353768241282476747384391565351341766773493027639863534978931697463410084166577929850121612349428416291937937109252575647443804389840950306069741901126314363563521393120587204560021819314098519218010625532800287990693419451766311099387677499053015544880982650810616140061024253881055686962400425366994604349685841635544138843612263528554028823725183199969290036306705068620452588189403953595161634598445955072248539896315891210474329424978736064361690576631982322739027896032421512153513053613661551819028663684554629870225602041239598256593078578309775880805423105740672503714662794519574017856412617049922140357044830225701804341577498455416782018879985021613961172123764458106522136799971025965671764936003488923666637234360689144961706164675123784535609450956510935887937160787956264544849939320219190085627915055854346094268510767133410391704830134196436179729959127181496767357387612597022986431596889714941169688340711399116490684800548154304616153351723326222919860264361393607380930866799058750039755452203467921623590885784748064985363861782264270241594998313415789297925908380224474110321695934353085298988917255930110728287844405480131539512874391627388570577239750870353772950418459512213371668761595023432906496022106505020466351350224634215462848302833587692458549217089675078522248594709412820680105808800878523487887243128372121401166996879434300915736346313898398374372262712149424522599818265915976748476406217992004986556298974237512463449862395262977984271495974528340715018246042235227165228977458917643605407293684681314006960068411340349686826209622662606221810974594358897767334913770238663263059728722555725845794331896743337822167424694438268791942406635420830901681150552230741473344339006861344390950316854710111131800835128396727605903731624265163953357203191983021889976749871100705086898303887376578092457631273165906525150493740783331966556964293716071051533793779547986073369954720530407409336358025697397560814294735492629438659726314028036727274610994054231116188612914952235454013695756366037534417215044122526167013817876813561241040221881197217509826506979349775334930242227996840471393274294708643939473441468031186984362392895736522216130276687289092101457619933615331137349080933034549357167068922442583044172045345599788189356322564941656144755900302662794427612580412397402976822110328746484833204020495350805657245105668198494211206241455076489189460341874292186699897809908448385109290503450478700179237376388266206579876503514235977467668913141968884369801751479707575635584325041612603799144230759814871239915363561428997794855490493592506917206425057958792102970663891712064366555593768639538299239903308016939391993351831137460489091176935144060595317674855463768923240988183458780211851561638021140252488246913912131803777357715317203097324466318616154445860290889589070292636090025058627203241043650596049383580584388930100994057988725214971890480543203671553242567556298281021652525205582486421218106808680814910631438643524793782196931810709507597729544874270678772478880543093807875837066559064943810720177980095278651235914863260746574739854957159335033734346644927494754850096457418756335435655696246786018803135420990459827586306873989346386806616766619885974310908819440824839590583002227549205286778851577045511118114596778089022277274198175329809714154571076841619595209788109271634483158783721446368470166569258901791839707712480410151508714545264679416731637000411169289132547665782427410533769406063612661271580595837829010320101590609017607767319208876748513150747937143808893215408035981806041761843800690415472476889936285444940313508707946882846435141128521644370784801909574298300029371981270700951066653725682914890304214301452519378499211501948606063073603377817676460240288474079599996306309422839945168457443177516181286935505106552596793279320869736802259653572881441854841938243556305449721429172268081915580218597176971764365263203940464655865301801121262957504159707095575448998648167147138041383207111316913127220425975953007831438453590895227608017462863727038433059768246366248848164100429301082936971165680092050978064776798533797318994411261067875588119724381176130908514791166899669564410747651763798102095162718528166294219080019611396610383684082424681028000859820885042127713522475891163707276953219644497886991946992565420615841187541140902941782949271126956829620727698073293166104467162748503309923124555478508460580397992701783086404778647566335780112867816979874597893455026897595301524677350984976775217963657185209001054217538937171814338255096909078070079330399083555825944054512339610864235135098572779901990167090326751148272814507323203209695939536448061509881874028704836340397166903280144931893254511909868720648320112430127211464533671066961153273010624256602285095840325376932226142386891239548288955412899429448423166535445936536625085055567725505350327466128143034403044151156306104682063888112304336248699233528036209387161925364102365020137766479419765954261082415970442968689807046362596742895239695971025129259923606176094905315422980970684931609773408901118197658114795124639316945213810294752009710308944014584769814982678645458554615255721677819189918560878963436925569112487657134742930400740354098400466528129680173310746695418055411732343818795136200687569976835745993037532558607326852428416267936709315874315487706828162424251591296744875355149663233430974236528178071068514463413916847297199745795616467626132406818834069022759329240256552191412348033293660904013636011808699322255839772988040610970551960245252799132800775360793888518717095824234007389183451044354214803751091824923602154415040001824795402162273638880609184067061837629037376138891255551331978142289731529751050424620887279906290178657142898925904877682394827979467050553659981924165402263408944300387234138063597908884362844142917843144935643951255246493230023187079942802791991083735878445933666885745549537393343419314405731113616079684701638959652452675060513542687741812507645076241198721905240547386305775552480353043968622885445632418555380601889028445323880079510274443355525421323584277431480829917159020695398036768325809619904894256349948127836249421829999033362551292838471815079838939679303618941493789497501092153359939109577748019244855895323300325536808224419243644820678372595297801598162527007997360988244019109263783709974684400708206880810364287076358303685636068781380143947102342689321192370410304136284355346694070018368867169522106414933589600024522655372925738168011767213428387066951540432995194294575719744219777164805275340408058556532026474140543667797838403731301516465757045939820867026752829841890791389881571724990755927748609318488391193134765134341688724208548982519406390092794388025695014005283878111855429325257432388986089238927810966804328198666897172719252606036261371919993077194715211175656915195794992967943534372559761290590099600741634597573265384916336218414245579817960227753733318947466525148653066594298861316143684741252827797165146650230013412143687732490628288292146213770003882146197368015113554300678474200549655171442649735159096536523509081690810404379160083442026259828270770130230781825205436101519043590132972117900777785202890445150941553886854454755650895004821792441164730834049156960829884339135520868437673805055701592890376471176058926191683549922516922005730185753166242617593174642339916169013919727765707188338475378662391420823139908360732309590989872949550758809666978751741146545011352500835444693762924489166924634896697683669104601976474994420486438896207259451910021037617611378503393204948960991235284428956343805137282418593217685531582917762963513378453382066324674905098266323571729218712469656737399297590472007992403931100935965781351759479773081999028833104790400335870148287547895020591458954323841195188552481678842503207987253948618174315547313700024728425713219759079052891467875071647267512349829359715631006149517080069541646951695279877943331318651713158940219728731113300764388612727050196201559656551415264785054728293397542938313270799321807528945248481751718966043236805449768916163682534621778467089590144584448313840334119161197872867724659318990908383843028468392518971736638756306295010528619701885569533068617664419262072133367984890666063402142839362538746689521629761543439494939419574371188792994018819332606575898226014710533295318191821049202714415217389255822194852865683099031314308161317304934187952388143782525507416209866251711328037384800372088823350791229894680094724780708013945840003285944358536473914338217721558045284891084861688506838045300180295925788174455750485796226047456465505898381230394209576949434156527608325421002510993121807845394277141492441603620287652737794436709884415393872973580303478092117020428899526708129717726969759402918659159567181702325831080712805905368959542388504317438460204984021325850929855250634175646078638483148091308919301950322959290539671183044199707729872816201835274334396864953575376362636257491732329904478580535809042847795386252958778444072082725202083184426699318207385477569024884126515127529856964490083527348049301882900241257733762106558698253989148157571819594450756112140299918565124408500089379973107450125238748974092767794443243521357416250448259128692590987937221885853115651520403399436517151176761013350149631565240210208810233349781523142200897860183722378397355945895195382123179194560888064103831828980872024627111707672236332852275489636671232203103664810611234524846556124117343464429209248023833261927019778763338944487468329141738433683143712694543717405540177676460086633440342562538573811686337574457741069190678413434929717210764857667197132319665001282177913278765665871994655408040990904667750160424319654080349917263243340937103560337678945329113055012286876667168752537206300303240706966578338286244520338497810488404223621775391625260615773708981272490402837219864370950190007012844136743611230257860591127775919674138914500267728183777077741598825774000457032739596284334926949706157306478837058059328908176682072514510947652631727699072365363723063079882139140115919722464425622584781184801665522530828873572748873771802849146461202041231453107173534842638222350620631986915261638264853133349787105754370021963209173686677650300248614348294598655261818894422668990452041179022855565319095180110359828614277634736748669454470802225932490582785383583167907795018631515779142256217722509324336997878986853925827277759072949158556341466088303499759194193894851990470859957995021279495355867822636337770394555542086313408967222737555923524925218978452943076991941608013523750361613259886356936134521078497575564297370225532547066851742425742193350186538823784660080357789572682260986292658719994845920776174452020112569970266279780434845012106446790312007699075284031565137801596485920625958419554646769711876230762208534564360617993523692954387535459471629289849660637158244932216827770006520748881372073295421536027423543456008270154557809615807228076694969201733433439572535633939089072909815087560724649467020551552765085493792386384555826678566009523934797736269644964036757558793521224095355070873714613349051390969616558028597584897255578312060255057872058904058845030641566435120841650865810000437051240865264973145056457212424865727689857800171575743624587658276765220525713724057584790137689114641208605995667205126450766542846473004773071101413797850698797046535230948140734795153799698767492862902155865604031759972528378753330201912355090590779039063177182898402481163668736803684678617639371652862010520780552920974265972346280627708109847647556739882910942564340504854895309275511351796653795098875599372541534462662906371190526018038642706565594770392176527031079314196488987935231936591483039070335235749371372710826865783432326547544520025528684098253939745506314817010533696382127972920212271100568219968903452245571836404395037874009659821100242689106607745550786445858921432365146407108594175775223175196355219556792217851660260910113046442520770323635121508407563724344593093276829124743826566977467038030385706995283165484463743785152623225138747765396188840432457675422675986660993239405586853903247460535907135424951869549225321583780108285111763839470593713187699378863998636832771780015018223125238595503194337720766212149782117238385646446654318113295966596258424205218152689695381796214094906470401798440072005133852141470220409522441374891930750819827405669365999479243838717440239607556714266483355865627202818063661637590136296034536909647139017952113854369577043691840337233319077748722024254485467696084384314040962986368715609288801618902530534790249299530789437573654035347581533933502045843626756047604916161058653472425819284838018343162691517289170825244809377978301071529643052876898585436013949113489017664619453293350236530219245109484073572811003167282621601005730656004892668462344144655037298213550657693102559942921025071851861113437031031849672403093396930252477271686547339796508813222514247891905136698823140260019886771093507052769100038546905528533296209532984646085113355659314646643751179230324688412201724201929371111771181677836553178274628596784713462037185495963010970905476308981584290477424335607257824997629109785965015737157452384023237018099189566995019951732016488937287145581940224531524429751450757129205329042912156779455285737463811183159911774165442753371205902323565520766775170942533975691803466907651045435041896064464572442172694373163230329141573076528488372149741169709614704306088070462673312747583647770649193175649985862990006546876595140749283811475815820295544804854712396218559110719673474237573934675588910034050743667024228439322302937123953113444366218038400099439939030836912383537861750196300019776989139779934917009544269154686057384926068692785740630924374497126219055559836595028003312686942544773068574184108199792694122369994590659173694340196381107978904274666256188841975370258082794591773588135869546990489896288388877975086618963057564238195606663681923666304610888356702358978178888221836059960084250149218782175099037297477072038589307291371355509495488251127818005746135201404276213308473454939673522724825155157511668016786140162440768704565184930367874345926590107876321126944440795342220187684471786921946860610998235879051622956869819724640245149541816692784742098529700579257934525573233413454965911033364429274380093474112036293210623088007799502814037721427836385687159372734402827889133651280769309559038836100302512687309156269026618052048642522829013210570727596404825820742857469848914007133928887715994718717391379505308456829488812760289740394551505450343933969082409016459127448107622849665001855120059024996282224203948269578039356129379887997536573615067256852053886588242421114905453887725303388269225639234990178713655451175645529504803144117890949681693457046504904937715605987199358941511074273707790475296757565712615359101753469455749599714072596130369930675907709663727684053881866775053886923449440205578455274047092384598822357648334695170776443187234264699731042498684999888440775719583027797019709681962561567027142587049380586120656542558773503190707990989018910750568239616981918386176568920340065559328167034928587534754829281494121800265050258749058413294663129205832830679627837601818975677454479770625867956566047185392148812045159625689825570467406932792027728484788030119069431651821929947714202636361403275509150051593978799875495520729395413117988336857643154024170920640762090775542282294311304200839339656297776226622252953524191450671566912850669808811886216698248531067044095321149320720828615647908822665059753163988414835493187918210578032048666515854792173486525324703356095892748066065188214725690739671722754315100338892784457093750652873767935292288544795047294002426705558165013120010321993558361346081056388458180950537465119412853830997282304934281223236390614046160700681167200257992983067694014346667607405034978992663351516966789382540774593031615139141455965779434502584887401937614538370749064534442306297009820944821933437148147732625145836788750513664433782415722283072803279002923448581314754903509798161815235641837619657099937684803865823949186033619278010017206104400665096208588771888244373363638358934899448903851831471681941346448896852036462347078045328378680690365357585205730603515991063554260128246793902344249941107455358275728951222023111515458677208034120874253328334658461264761198051591664883087585103323695024200044278469239717468121227377169451128978309372104919500289480426084533215207798909937935729284199972517197326518622512816792904000535979504071709920622702057539134302294282511731503564251190133117337464368883100325824759863447718136211242950054496037033528039327641027179592780478228179979646630778416113059918969495440323833501123682157516145156390597873492313999167632081756397018381698396631491611368467436668011945744445056613014304413307068684092565725119877759211209045306726449857265925974998153484861058180861532328889394569791999538644708377906209853984255315806369467948191834241196405996304562420466535765131809497179072390223161848205804914610811716338218460391661412671097342484147888043291635455114277952559392204398624116643735640610604356622948515097374678771388612165830605120570842424964435330759029625184164724539936185900317193018766881311935443183347447428517358574545394999328122856512170900344556935746971224383325695167986807530734211013262388113526538482918213883608329381350687537488275738609635950617788809811295403768897511099339625105918917110889114174929355959155335475528043048847271717525260797198994100304667380984092393850511535447528565766490837649668965745389274225861125114666463418199203087533251948094922829816348561189968104315479157149096677491412357448285532943035676327032031558182725046464132875864327420814067953967384338793443515069084900793304214090477252315922378568997193720865746829119984873117126507249273852826059164765647420202158251899128331753864149117167847715136491084547108669320892973831837321473842794393434247406887137661057297102849988546295829168180482766127835932361507785264121170882696398230104386441618594833655739009455979330607110751153237129686980949919774438911488914283180579872580074489762047128079930294164025040021107629665513835215925228686080338537392198273937086608736940917338244792555837464462200079692121890647539858131429908244994990749882068833813962757836625448725780167399965550821173687109181587694937868711544101897398403611802360926396284917333357763226375716231003214794101089047081077631000454090875194982319891259324237772524459728312758053023803767761609176096981323881603344257147660518929626683905627485726265987150843660936980989886760340237654962809338522999261429960158235897606556192548518843921165479382606374792889898783745060590671390504415011878438375574495037671354477312508198056528323427487241750739993901597488972285389895973202968953811485555366861393885064106834944130369007592240246049567062698314611592865057342209969779826079931273923989554874063639695973958907026195167861746882961452440298523538544924960784912992493745703185700999853231115569299837368721876529476240474442575669052329406738194541872947478215703683499487362598382196585102277976456183720490907407215280640638102337786136982993171701667317785255613137316423363808407841609489076436634644801549399280598368640617116516225934047481216840476786426436725814200996881977442693432331479521247792167587458303563858329699408005184368570867250176449565504460605511817331175845690581011418541446193699797188111013356572504682675457703031792566283190691650089427700757970454993872472742089512593069247325213960329437164817122969472997874153084068083702602331638984480344505682345108983994705096101438585084396604940283605750873239111391833540756381368624362600697741787154133802489044595068334607432819707926385722053265296532612878953604975459089230127217318374958842212872417665822538686608634280065150884165388373332050691911518975036146086788667368557289313695941374573949947447273833877670275519320906546718002201873750875220301441524947106108514506693286877120290676555495778729376782432575572715878779071998726444933455955140636984617403243978386138173317259643376093154859470604431697584196876476921544035821479417109300674612138432613847537220839850665944239462145029691189058872242225803528357360863373554843772586372551556869012940084805659773653078255019226871861736189806065182110924478380529818972099067731556937897218382657074595935683840324169933588270798633640008826128510874434710659832228019231116384820066618757615164735111715868440521664417053486381151417442750314699867953301170786417547781977202261938870774187472361648752982135315089292636371079350267530662242586610402269961761723534028935910307869391748854224010164386490762632171490687113625547024963835499157385932116299602497901821087295398011132432207061973063845159157238343201367739414493890983018816238508653997822455364444178807926202411546334875836518456776613461132805710979637109217304640143830933500353830725781441928707938174556560995988294139557574716204388629260981579798786009901499690980319717961665120297289685110466679660471605710105708130159828282251754843022102279990884260842007220517810402811160768883666189666370913891750115628159036320769349307617214313348291566635435402356287674490088011384876680594479554499036454550252237532500108073150586370517151342006730311731074601420230976545717549873443710997231670115493636622879932967593430243974090626049225776360647041590429224416038163658706792213296074567593492201020816516201712620540170895152870919063811018701873028932559198088697602709633304682348172064390690321041986990618629857765914298087752071572223672767615750216633543497675467816232140634445824468552018702685481761339386782961698843749800753104106410730050500590651273436083309932527887106121900250067635695564989450204303002140305825359016837732637306919102000489486581902002514332997021491784161847312893407111674659504124085378283443807531815788079820465130083697371996769620563060450929224041726753237741668475802392404377568301544747334221015269898074789334548691500641703779926071805442081253002824147183933608465891639145333327309359039231047416092323278890585257700991277770014925064497744780020946686768794247841444676085962633619468552939408960879245447405847950171426846616789474488033150131582702837640857329696118819488957872118169510372866713099831242904216791083153378221293055659361322516291914089918515594729092108600170001380151032611129827296721941417609511232134729118407577020803115329351782546611922236427917154233877852301398011301097774049602240439200739395109648864724000011718847646938301957777659594560839670237683943975375006043532888990669755669429244262267006890187883005701771408518024670395159806209089600324413855869551759626745253048165983402010730256986670528470602452129978198385238806623812437726979853245017618874874483256764816407609862253624661614672034671753460095221822326178130590860440220523367300635039877128890055067692006171273828952785366681651152529452996647913837700571373789463122491232845765479407273486591360313057433086414876231484567294161233954216358797328862851940793259472103602807755198785731295486822298443319252706811062529730290999539811787929308329093202729534977450850150264274211481940472854460543630863502591240229419838704115038016335710084621269832920285151221115041812948208715534553410593317714489663409445265695142024791283052196340588607018909644751567634389527712503706034255033780815339543864924554431616149290406285289564012041846008152311317513939703485387338896086673391810864903175558463656772934815137765060826187836384202516519554366117252048742289151496144845280533171615502415366893279484213452288080261796751709342110538619430677366704395358729907702982841229839433843030709269512532164251646566797672292209713619918229608624450204273799560475817312231443963349263262662031813412037451495233034576219725146416889845596918978826429057976409142477946951204085337465614489737059291950885499162470940847339239562254945471055280900445796245070844763459063165488345050395363160956142148671812872133607058867955888789938195113903440864605120002903444045628584212877247181709405238414876883487264103560017898283182899017630921992573697273182679499380767512144070477608655491071730567543807899469918125191556574043144664487505965946722571009758814299364307813331576959306160838143293664987322150362464018538683987257551671535272334181493189485538232397890277146632551823686795325504171758976340125330767701902919062984046480009825907428016484678662527178119918994891089727662398505361131391656219809418580427322571583373551756931536053105588570331555810259953947306223709648317350568343966723532392395108121161374140208645022817109023664134103630300835860387061041387177432827122935518174714800952494304691941650499222768749889136660919533003287838378372896163430086359240428696721617782070605061358815239195665518369853706308912123277331399960505556786195787406224632391379048366287084280196226566043503214237888672114049310961832484982678758024670058902717869009659654101353358561059640540080997552929104630358384580051572680728546532159635051631822824123162894806312822818454809824237314876106876157509999116080020155727675325336247584289063580759877523714149680712842554623332011824766060961883071000228328316412125490734024920249824812148128818844926809286347611823913950203968398975755853597306542558902225505622823556878775164235252285617002278557473159532913424219780957021922324876669839796259767701627958246818551326670770655940127361372846236997490122098833443858830842636953177148075042805965222251830608563621240430898801191650527596863121851814921697752688223409346175298547579082874409411372685918372534837537222543077420037430138327056397655914822332975140312039624994591121728500175378092472212828153215003179789009967967348704875263661811938578658242311765513795675629153528965674920443185268767052647226893491331902918084596849232619972725244556948617405211640813482494240680247332506122634167801397107987651444539402585465980950340659934096073336354117488656007081050318527437428502143789801087970036524273763239594568203143127244465971757370766537713235217886244295012192158128147982252110730088666139281852995377718541739711402487339724116351622356143444952856651696213423343259474603027947289626305397902864636185514077670130390445358456488118500186319450742079167859630115516055033678054122479658385676321138765492363686647724206567801895673272813324941213808863713960155923768465367324588600067249736574229891212212282390498055958734844798585261210993105449970968019653762772119206060949735551015969420512790030044951895941022762458014018426807125767808079554775042278647969555671617088565854133438968051552236707710779799395903765263924123297224866397870901780202163871804885342255432809906987352794879445614309339030419629462226241072385811150285232056486308447526392876646413493882158554747044533788193241249048842181291835193072941891632351401776648702897592141236239253474027029678738322491945209385271131271783548643524448089899250842797136201810050511438669680410483985615973611710529613542316773230425499739197352665464601307245567985638818550666280143956096142227504775169609014685828563707732025167397270101971144802220884634477946504093953024365242118670210760433405546449586581624590113191349965767957569550725695741161892022301038552805685572571856272586405419401911798298628761444081976682550811783526216052117359127871091681362312519695480502870713740088199144640019720576789707465688638771443702079353287283912812679546234297767450825635201831561580678663740974382779073044172561322176569630284113537311818143079714372165704988877072164370267725556062203555785431583035669815185452602409909053383487472268653267580122446733187519895365150995401345135124683005154806674999373821249286794404679938619026904823044353986600763497789006750591504907311288494513755011873569822990618206879029475506158082183738979138132787109079930566043607420033554466170519165343181285838733650280642825085864944823432748291808286449315749576682883083531871914310641746338969184934521319561197161337102687020137298638681731329906901673805567869974646619072969497186560810203700634010834106269879609109304434448765253350357060969294044059505879720787193335533831127190014618999159450578635177253035730688324789793956138817498041578989534023579788441800115405087297317668491543345772410184777101098429658415146797300938526398667388383031100265244253527067827817408774840733232826133821073652567170474516483223863448660682724060572872696029507499632647626652716025188620578833496294069601102543352809445254810297807193479584307710251494203008162345226160281377491041977904331951226258531426354073225718105252138899777126595736411748119932963698293154791982893922115722894492283011648039811105386379093379264451178213542820397707797415806569044966625763375984717058561150658488686943324637699008420096468733270824588587087826537338212072620401334720028911691559883983886533216544698785370999742519172721720672662745805152877386228064529467843777472392036288917313504973632679341283072456884117639290947529789774789551828397163269035667007098460471276788445060245831675000554140758348908176394104035119032190362707374333253368737122686465202288264490199720422469494061455465316399334264898268120655474459687510732636310464281070550773810499313989544712015953707628211876929905645004243751652944004642771552156176617390981527809622212105620731848916828996276176925735310506409618434282368468671464424241344505619039167307584092993437673896646013535659666960124180318145240704508817580508129718515047996410724316754601610768609069456852228684753029042432953166588175994721919029312851512237480086797781259634924768594395908210485778534982972579390338030608442310116251697017662089898026928394505311231716327080159304537160900965527249569472645200349199808382501699307843370258172939084568427112257095741761286147189057477179717616494964176314863522446479907153994090597105960168962488194366940455007976670378864204900854061854771660172081671566807710069769270741328938949722630897025926625095264759334467487313134993540675684671498436341410637257579972887770384093973259116115287336221110248591868053700642737944569644917311837003318409580086186038357056266687590090326739034199641878695313063519421438907050547118342986724300538925762159657869924381949254669251406957522765624013827688767938176208204551679619968216363516011580229353823979978545749640122263616652158469482948935092906545645075777487450220213985936466214189517819165616901835714237973048621873926283560790572540375266219654462367920531795170853880430884614311510833392809121230523857886397703971026382859939406012373292495353898904011280759495175921722992676815947673175965379658001097751206205806173612429519892441442610570761367005996888963350929881913353861495042122419212685119064793268373907257604945662070916913555146953842568897225416995611505489061961952751308428123714044701861307124758937456053372942826622155313872453370097593038866718703576740993023889045521341951763197318258459760962244896036232583829369358658943672182660300828846900187646587079976721303612177394587359238737651748190643428921485284531549136018962599821168252608431778081340981025429757531446582395982050924057300512424159764971565854725528610053279220492203305961009400524489009038295117633365344421724995056840909254653081290841935331057327218256483514644087743897414335896078641384623131531706752140901850505159881785054295508962743085829352013656250825797829190800518678196208338647683772132644984500023424032729334318046404814222233526592514038782692519349729603371892710677171804322767492049455758322863212472807148354435626285635592691533578734275445362223437690918299451164490044762774615740797243067793886626246882877484092164412957313605170221187676961511229182256357806150731455462722878430772845419234189038124407470141978138808719245156866257094948199219230634942262155231879571860711927252764021801999937668404174787899811186717424549264349822203225937790787804140212185809313712302087693451798730816684217112087586296782453888353963469712830053322609338933311813323735831174074392986281775354514876189787750597837439301738050851345029819393040866347137905870399412641772841739253124452137934942799834903976742328277234798083171899419860791002567651361255737584842114070598542881594532629941780818294220984365980437382545603983417152933725245146387351523906254410769511114781643734072404695441277841743216720240696776329374237288418670937560750604072618456345219230003587811490012407543002756913939511437136732784859271383943763165092071861943801383376182021814138328079372979782172773394486724147782681388999028742235042103415823035721197066760469953949974670119239301604222857848282560786282604188328135731322106624357552115483547116467826944309648283908412226668155358543420340060938003094310237739236816754016470416214197095778041969099659033234707962793254381971470151968796848972273579659557609183937784939723593563612992322753481091718060469378756741799467001325460022654608016617831464465179015583759728951837263174255957551459884657400407058697504046762315086821030452549637503254174236075551563544095250285528430532353717791994338225835567981310486483582332600039095333953643384399282851665571843288286115776057400304709639936467667787099424382140081391878064656051287661805402795175910572692676965950529457619276849812634895014556646729660661933409070412376473282050886988646992576718644482453821861958358968296033533549271541570374363594921344265158456077981526583985957906153330365243763617938120110697654405499620929982067310455930225796239577516638697366166973551208941731403511243319396641506618958592564517677628963698545413917682684536508693800365468687900052526241673168551399590161367878787344809887922891300173492403290078962324673238419536203712176655147539957904358326668533731085989098693698640518157262774124441595894411242510735465821788749090516937131883855794837070536591179018621996131865730742010735477246997202624188776825817119183345714639560326568888897633728185887761617722966584602953955547520227120118545201690485478797308656281761224149034364210915936737408038126695893687764788319009359229794961022713947607475985895099668966689375981153405038296122442824764544358281100591271591211437226308666210291389782845792229661199008267330821450336026189812392597732703933476737489904114986850247988580276228144164268204377504970294116468147635149391575778099879374489034125907399595038719712442111550510402528634252048320069914485950425434343649712526699120871580883025712583768243592537627091597626238790297311379097691073246424541952769177389720611969352371917166129819834718972747247697497300214494916967547794305141730653631980730404025655981462695993699712025703444973419377941633180724421329365927532101837602701283490787599741529654087836894049472571312897967346076273402012573209524838160341237774574824343448521499447246467676085125105655126827658039403127636865478115489918045870463261848405660686625414874448367934921419737510571307969026516526790753142569429789072851836316427985706257355579346216905773535126460167539470033339781365759805177970556001572017793116250589243603643261911961233758863389295265149066197333080548302236948970314477546679024796605373481964042441991135193502845638203382482889466052134698083266257576682307994823403672158099595349502761726366682591763954537792014529358847990904346545386866753054676929550051622134107351314369953011624224911899574321903215883661906717523468098588857728346446732352641381642053739488355028544456328254813112867522490492745656440066307062887570251602100974257754256768256212280833768483687277596682942165527836158145431878045830074589602216324735983309044292383699210163078795371716757953192999190008857834995180504719590812336136343541377925070332696084850543472120344136405771884837405155902410803075257873422664338105080842468527819881520583207967987108144611500802977253470963348814608389834332556437230633141624983173395243334612231140583297073851519425997200859751325794872116542814176418480764985593000375188626815032889367617634484244801521144695419399078838082444995238570523433261935470091528972456744582281016048613313262980678785429951259876989008323360162045082972229779230314240654055623992703653789826580882675156898099812732134309644340300142470042369572852697554044373533186323301985889341937869636070791939855319886258287842974770883930257176505017980104485150691536388628312762709348109717029064466248728784219146514395688974865402474055483105531622376225112871692124068483096280309278727576870535523428963071070500651908511359786145928618149960212957081794165973158491852382076119388409889313905145696178511531768614639978277496957951321080439869668504263318103510102917616235312903213900340171021321928035172592439363313955759389202503875055300641277752918094120996534249662023173896618289640588218551134624397321144025100451320112908249941449137884204058305109088341488606664296421003795839969881703269138612360380726218605921162745734825137866765709732646857151775538145624267617529495104914426713122499176248469006839963075541340760370531383284418277718260336257371192073978539530086914607840804936307296879840709243109693918240582530669369605941940402597478528984643399415720616094158794863182198472126227671625268189709490117810730241222245766378315411141825590511410337915588424875937228879974425926453709451340839882055636073255046301043763258419391496042539601526006396810148170063682599099081361234726115698669224844890413675073984852898003015119439627786052086301065196100788934478410781935479330851579003379414149410913580502880039233002796862193505273551154461125469696049662028135743653277850565499838679924519414145321795653661899405570562724494545678193295180450447080431134601248040083816096284263993978803577101605711879875373510423138978715691787362588123546137819193990569787393804629986614536737967406032501905924593434100447681554571981729356469138339920265078812055167733208124114190635287572956385150786368321825619025742947427893355603466573942445579519689213518880839820518009514312314946149671905673359511586196818075783402657222892929239775834861689176223341498463099400609952911826238806373689306821442331935276740453265661646403688808818487398245569361893590134850821856721691174861815853410511762312769992753595896894222179021807418154979508850912925877554617716478688599782558749855559369375831004132145811732694171418212826921420839347375136587952224649473575509832969974285159341829531390742108282448356443996127194079068738637082652525168677744427713994081262475824926066512545389138616734303818538947759385184104415812120019822017133926477364728073312796601680029460613417436240355100311812999282306758533453093314053568133332318404026635065001656102240158696843075037478070282704544775621811176741189391016266159134109866919595757393702185634109108461008406286917309043663119391551685317699019935839182944019135039525495044140958535077369493431385306429619938822174191592903281871331086892621874659766906279946042700016827495940751696277545406877790087950356581883857926511485330166185122592321559159249050597895837749773998021484397136550396161974474977133783130351937980169329523182542387460685095695716742203910196151525356853631203952563809642069284462604911640717763077211302853895932769794441675691144070548149512755568568657562953860654401828932900655418049654374706649221374698477455378230293091104764902657538719353651143472117461399521563875443821947296477070179211136657055792614305881889337238892326469871247044286826413272275239796559326380720357839506052771199579671927622374391194684448871681348880944115714095469426628461953171069759787309351148146358922663483489059540492728982319784339607891813141288007865780256612169986627507489999988223027132168525834054703849363461817343627744164450493297052900091881059257568796124681629039005142836223357731177930926431118947495065850701382017364697633409803139351984480101347705377840873744044600909510901245690466168465384772045173076914934235786936461574797905650109564238550267167712462188023164890504391687101198327890112315052939753027160689769354852676796162713136298974009358823602929541755599184326731872181685627975320405172006971794312771814224389497599203416191014839769526715316000794733340820298380461104248782285590981143204774638107213461935606649635845330282695849311208124393904224368176594720869378873695501176486521562579932708906862047898606628005200796356902182233410305474783378448056664227669097408108270083924361652628942020219993671479252561732208133437804862522907980668024940289212709769013563897329516232223448602933457533090289352282872670117367121549775709960387321807543702156782575709523295458227654646838630310296541129771335164564300700218658413513844275890850420300130908358040197427669860778059110711208012408399657459194443149320564993515965477592238801860162103177006157080419507179893487126042103077795841225136252102698070219351075945290656980429312816840976937803747850555507214020597013027440298185038662814026847686967192420323200799839194521184709792854381913481175741738475509185544117083069132713426044399302152553157335465844529388808528546438256175244393363101366359085053505804778779560466691701018628194387067444547564595618434265147893066626472103437770969350276165943196205167414542047886971842239963419264488093634565770623722040083629670636087036669589479362180823014095252650723296861037807112392484704969988159605878899314966242864799370530246440317738654927336554476713182949330139452972602201246553896569895720007260850621653445444518617248419627514938503274899745689929631113506089912661059458399562343403313238681006311913890310363505647861157083043026003497694108113868193564342541158902033985606289291152927665666782504374245870746630412839957059654773904448786822749389112136578176413503383310221221980884685885316347413704450401016773982821564806006630031500716439835550461185201359967646242303506149213925929436590116072546013697353996830725234344403134057688804515373706645652551425980975860020476107718728342714836720677816392904100958821543107219859224817693674133282983519997165949392613163735040309749092174742958942478911398459225068928902558177050534240021213590836771576871974670343879719193897630421365594656547617005744245812682203852613993826008718668701150333188378251946746410477373982646273892759712716502121937360696569780433658195329218703101808103538357292909943928238154508859904781781067884430402493331658988063303111612418626623504849984543344843948085167314312479667809260349569414824685128112411535667242456374382421911558737305265137040768890920539519131588594582456891551777922184854301161211345559467639755820435837245045732463688038956652472382569853009019666141637872483394210198742020619363122274113324636658626248783952242481280917035602208825971514800507422060073799236504429813020179972884247537342474684386817569868773082394505821994525298935649547571394602642260958924127213615283707206917082000446010100464220852685961138275548634352064283728784489896506607364557055632250586745333504918734709067814957768518205667643887985441860931593947856941809517732916102209942442682914894528864497007355864927783479640397577641479713996835170800494758626695178416776607515498309478460190476326863715834002275385163877003138179530123503947124203310295944740746368481301370564909987798939497942175344680001217003440320859437184265215555763937838633907193457439880929120462758359434155408600867206861801241881164808775005482256158484858715168638052901848670869964535834385702505204105901369443978114366422500503535067020835607266376755226486355319938978922268064532857646363060689140245634588988789202693823567544912048168565649776628585615540233439671731048539939654373722834361052657744975922610422772435323980416510131558662820636175027005813440894155475248592184330162415035990709537171048215947046875701556559347541960260511035203302878059168248978512965547082665374895709055984800340173942357654450918763538147948207565327654530982943771591405308240205644247487822423350588243155928761742209993453186176213662377599861547954126076960523436718391835381549957514772733915265000934081383974708824207816033396111579684028861988957958434732369012942737638922384387646725269652417448741218161759717447955821882244442785094032944458364104266945869372976497804227089214568381462249109697375486056049546026397480147981617583344612382637276862481950863328584096980324151013723163548332457387360194460749826029138443485409936032260767611888743075309149884699086443483808405640706308536036891067974505200551553314237637759256347620069344996413470336577702694064957968846245026448579186211492752646495147528515146122636463661307638492125350562118382516610867487017596521530028612446434483237826502218051792347912036832231580227964435659992452836926098688285865438602727602159197176168985886275135857226799412452983458559619298351548376589416233706973849771725243520445181353333998204881389566061018045414269686014961669960546407903428062755053338248532787630020823358702080811086836539623002727897273664040949127409029314316391460697196019488679734199249042851722468217703264602436429468947057813895939444660265499379542078009092185736376493958935120456308175946305792482045011071903954030312742627295763580190587376249199638570556403457633196695108645347736820714179778567652073208630339458013394760561038166340098165524424344333367286096074159724307030549304445666376496498017313295608200700199579505972373574338954628543465130525455770987184526209889309580275695533909387846176152977142995381181962018530494361732959760590280733965405715829553841437740104523638267255346755694288787943096531542500250895790926046474779013560806612260558739782883442755987232044152009147228633844794777046830910618424929268118496506375063221355446286637759344511342604548464780272514955095153535758723526534329246463075064676372381344909603070813313398478389462641285069103486416664090794035516376225724716064069732713996813448117947036521973146952885196103047275131148586154506672759194633126414003203925817308227057672696580149899175880842025063218489319460067471886236573024317559753282328379425658303346258555713112492350274239734681819378910985035965963054081109404846602777531980697467024426115312713859960662070102853283966627077376336511023766666189131142164523380001459533475139499199297801857093388597041964419077402164269471231750635044415160693255524975183783805183018460958013582510564367286554890650283125838471534049533321999892627648620573648614908901724033224182977610839536580689779516284694216482636838028964185629747793898937064391287017535749356968001138425479779447000616264989200272936685780217854972538957019826884054292879493764957227439418220633131711717353216230128859280797148278491708500295392421025945820267718820825508131640327199464289131498847887618498394738586303854835933453873897630920390187379387947877280933434939778123789394851213112267538197333240489614178104882264361820040517524940856802516093182685935390102998274172663076020174468746756655996310221531511233631647111555802456164038639454847004192081081558461629376667982996366457610488721432281029641717508050659313533923877886297656071575774854301006527138978225997266095952004315167146908141309232611553442868151265868675150739952100781961110258235508060611441777667411889094437584027629912359625494477387362686719002212777416602940907581372081501342919467177938918275646252324523504780750969517678679510111114275156042945990921994458580711113358571295131400053803833755529698554507228705574644955118139856735842566151226076668734686163918694106696950004094323521219737378059930946686642739754282388438899016290895063533175578761923121299915022574987880437211265602096610769608171182961964280378664926562492136139776267729684975432287062703905705146258678519963757450148306572801970824581812267902244154677865212039545256756987186046875192446543975607584112519231652038766143121431151228739732433343554234642528104491944261170558274790476767433558435516349502255130310647969001744906123153661843604390754644138665492689128993651875083622783126505575186537124698597379412447529611911965819424628544057822422199659709516716314269935053811178137339244701693624293610013763135332963451984245230368590012898063322816219489147078272825144764930279453600563017893238144584331492081150179054432980977752077288120912103803075774364033989540375159589201578512995870099490933110043080095628346806020087464393951326303969616030805042410837238000443732917812701317988095720579189442308005275472669985200583745648120187204067032921320917943761567247798534557317345601212478299120239704776972216563938745895600032259663587208640429518381671454557100135096567620118572800323892921698111082244289429792487778649737101732697868743833578397891564423804181571251000862773321433509603772023321457755137801413661860433941274882422511032030659352037114338023196337518017450242097222900552549491217128215577676542823173533979284703871239755322896569943246458765281744663980159395512596842543843114469184955033805983095022369368978013383224096905960620513424548818073904395972791632701687511900697148961015443446281841684681976287535660036761470626546717432967219843492887861696506627901952492321558399699599739001594857563638387045329664477400579030064783574532031913267680639294068482756591551778710500764324530538430510625636570189741018742796698735416832143355316211692054731775788513794158795180024030934104340450997549362036664181523467417647515096560749387907915785211704327602417630656013660281063448498824413183510605693803745378070620419639495614148540332341466490865248734209378696117948006919454604307646802454686667714956195191349601707645826043302263893297191985188709153126672775235438866218733181582085110028718337657361411919013983244230192604891128514645190421750823459028879518449500778836382696123600468802261134526911030702952378818419620263177497065820792243673609358019767764552437048648571870389734468660922530079442036278984965155080259279585437464098271451897779727920777319048542578519069955512170784792504262920696530216024320801472970198118092919237313171770173030234674826597743575155797114283808863763086339161672042351745121847143230509937000545324186677094729266661900279261571912320710356730663467953225286830980991550217081950435845558889140882789969389150496111033477840447564808397220651999081180529295981854846338360602282206999818059101452149695794695539954519768580857746280126031126051703439492764737401036344059364035830854232630624933710495734110672342719468513090814520815620227252662704660848954364067763956057027949315161036500521852148416560742438859204659537260873765609905867840568439016854112174262815115067891468524136704649840674562502352770077975101183260510047762004065979936489571530336860498707631871440239193887778071033763160036953180595508081075926837113260137560523827085349519499293301968701634195398827228427502284617584041961895944830509236167248860065961417847198969989259179772894021307188513072205616637131675035174439464927090266238091964788999358872409117654135117090055618967338785772611941433177269609113196935246423342913606780162624466467958133119693874492476367035575137934610855902310457301222677890830251198428155765160842158653303613685317100753706965673630827095387991786561787445648234646250696359645179484686739357613569928039734955341644704465038964153545139525267609926210659016847531853486290576159716613151947949278940094863350066789547840885721842172701562907275534098696830649707897615270782206509266596513821914697510380835940677183036249812229749260057673968589720813532601120793850240715194976102471113138215166786755775348530165081950629166654489690753785097190834922844219506214618086445508448069321082792704839439564817572697828571250291145365394903816244344196802285241666132229519422697922685397425182195565268507920008143435685934385808828853324010568036498236196801030027995660906245616037388953467376914481847291456293401784196382367865328535074304290987940554653602680379796067461678629462036924273954571176154248968419563583412391263917393749113651691944354067500289346162722001821978103419597201230955126083966423620760661757834920385888470092714824009109448662609913033312270093959314359447574060576928849819073941749364029693845922017422621765038022087744992283248705889154969400238323247523482977856000810401827013543725015324075655971226812595511602613256070893041759209596561576466426372254711232221188954391716288499483948159022985071143500620233253123916298895466283515658448170118650206026867952369340206103478087627171051770974302619267984038089428220066723345366094545078335230567153940803091844690252961168190152125138309735785672007809368513833564941689976614113279883346214692949659293597716076773662315275155121453552464432405255514286809301642877387384266130195518548421369059148796123796933149606337947881251942459358229895677486598999838710262981428033007421717618746003547612940849595746302332203573967026233107540062735480067658552391930003461092997724167050048697584783586888060461443367351294411625634348576547488498190928753229767488659996054636585592915553029676406075876367804691211139318354548639071825730489661718505228793116579189829054635436157253634451193574492809020005679126784924934045921705591497246011000320046373366201467061455574754688509906170699154290770782114987825489388933466011177996104109595036579202961086631315667863763720091573451172299144994358477486651645516335541947405856797952032336154201674607343958337732051584699911009560726848220948796626584793568015174188001865317826379633909306393865219817658894908930813405712498367842856302903086541393825099306045220003710486719084716117268057357135636136511594300045487343591653026946301636103872312025819286138690276133278612975431190155775224918434980484695121247740204354040034213020507566584386936842798864345134375432884636356525151703765087771139498252414624502832500237554524595427122967035418789750642041839472202299479048299254833751840741622143672086162140414709699351711429475127475851406937637343316043613073323342523572933106435231928160824916781003765657462244482383007635551910394524799718357694628200995852536895243037369630235018010040752114801715421950891558519043037958510461932188616225630367042314405886833952579292914500285356881540332277825191383551794112125546017077094788633510881338187955937876718364601832857183565507255579371319726502118614780226957590895954012488453989907773805927633059648573148359092860215861214789406714975814874503204906048066576803650659878646877518896959524575149676316492661825592052256043092928905525236795838600412904978907492879627955359612527027688582504321413723080025898124044892660004300228399683925244225737750630508215180485361157591383835987146346779435327124287601647885923360735270044344020313663461826660826996538844467029361182945043583887267585274992882193921721041239320833180346122971911427150376235971574028855683990618588992238887412274498387079246707739840190433428776780475263048136576389140170516861728079476187934389954171512206230990120169560051346023231711938590260125641409018602292679134000253326400775336209320764961042489040219718903138375977381693011391582091293273132446760215724072270726006241164688489988865993196762485435138073502796284693966679929974238375849047354954942410189921159415457121910059553792384722338635759742979286334708808664791420727072289478324459842340315128857539683083080434494136881598051754607660139403668087967049364334396277081545754773389114077646340280566137096971884631859788054722037914476345123783212772169133721415572082708677178956940144663324736237306036268252814669088063385306136310004159245678636565485419907609149449454173758381970779490377913563456304966573467174893592934373838861146771171831063351146531734296244204703448433328080556677944709972316625300110690796201409905368014601343542212279361300609248555676175566517021212049479362318364878031291369353217705291966878670674866829811327656302777531211179468080574158350630538398142625022958559492574117332377835543671959360738301927063072424330723160047785333381814039246196808842643036014694871939788554793848482085456616557865954264900616277303554329141221546915022821169173873391904614138972634345670156328572047059330306513673032901126000123871735639963163224858151132583145943200232668881181239733634552555582944307150890181195648886647441394255134679885849034754262126398986971561560023005837528574460956963443553708975680553557894965059386226769033394763444617034041186381787306452371875750572431855563721639260529592068768663501894884258287975441376761190213050282677181270654003657325319751008408018616170875553980329004964967215072158416559370745692208533700205647467757942208495533421224214224248635271348592042095538508100448919903992813757849855824610972159214272459055133530275853323418677579499928748156523916860840820551356729577130790960159410985500448158365428296855119752232563264500047152364521895399145170832331516586068847651942260230843162910805407477642123833516722523169002197397606227320724532090941661867955298241694892468881743926520092661606735875523552580187433955513272789924691935449626960807197336690416382231318885436503353759346320275707061714685674891581326775375189619226715450082484629166676438480892583671120423475834454896952869244381745061223344973101877505452666055306026196901096358392189306558568413609041623969575222881400894634434343455275664440058843660414867414598217218517909402643787868693705388120945175150615615034669749177309457229925749569309821677203670314799746183316460952477950139775646957709069900691112352122215792430985320938737863235383253336244890145227998885646030357882348439137983459140229160454857699767049681227905377620368247987079178781669910970119617307844917103799153452562511964918613296842050189008306799719788940337478387363278163734843822559806083582906094433050057112407587704534334168728423055166430592779415917310061748314805240233494080281471278085438624676765114002382065742420630323779430521177784051147695260374498265643260682753012637853170306694517361727724944568907144797952654328092263756797042095761044161452454336610849740287164421891712221140249248230128691613476806734160879601082833581578432147311342836445452788223993896251032105440574988554419884559921928252197452020828076355998519673046715213908202634918283547600802844004820242995908465959838486853104809090820873021385814503214561054487030667111968774352433064037542921406044483076919568699681134745202733357140407196799582450740165153460143124043329240968890875441238668397658174828661290840864725571844895671474833831044175461975442671406818807806747081103609654820610373971905065358824846148433269173143536224304908283473706096023701278096253745878015818337110961109892259541406784004821092113905480571135525087522413281883255655526874425068230155705006483482151679142619912561341947166587663089346900565527953995207489522064135814470219934951704831643273138444974202303770165519442576525351518352076798919757999952125600785292147172846864938574014680546554607277256662081300028452234331321447707431650072311532535998539050293216645447135740976091621192527549891149833940682092278527321117654565549546050398346061870028174412509048177759422197976480034815574402650198205665255552594113554177395822528195785868317774833217957327579214126732572273350592196900368117845610268545943509336049944294115250736790110692080381919648472167148299682936775044761165044916330121020660720457656861530790329409637503948798379577235073642278632346385714954466003695510291421389146671792953500612791344210746079233654119295312988996523462438028077322393046061504252401484274875368111905989820710579137068243881667594974018205297690206539695525168210276009295651938334736845755423933406737471899773531678401353113503852397987778207556266334635794697096477976484130391176379114589719533415398626175951166528479916416267004030028181091554288917257151062524349789351573350789787585658392571144677704990954969163291327867139643028129432105366939073573003527771595592905013245386671508737383707053712885688691084854338701585366723614114844533390237180216211655849812700458676693817515283012430160915058339917892748031450477352195822756344466391168069933751132087735970431618570925465803168450825550761975323633689696391595726171458003249704315806966838247408984659175108930920607991800785062843214164357057245569446379238241931947201339099539664513592474592418887015541650573157566283674970124194556638843888332260023580144856880286997233930577722052958885017355712586162878521325880245242382274827238137243580744080370205275152731237896002780384285760492159294865918791745188900060925414241589707443035464959017514483185842293023803663537851850580466386936233921522412617607028989576883182100676155640422558115425974041416105300461635643697329477001706681493464494939260927763814919377641129124374802877136702639433539036038952045681596933776639336548453318304662832176905896939519405300272177399402608482061841927472943932500756637031746596504580632252327510205772966911949288298860446832060919924891496972625621643313882885469859783131533221413795579101603844124717356336215101643860360009602213416297601289502518028003334991986528118121928856877941285871252231923939956583900272655474218761526644747255526868703405408788967437029145203754748013517103773817405647469941551458756731551972072208072225381851060226372084199404473395845839280559307574990550621360789690699156694940354615215919510447157167655540935252729917238539253336676960058027691426184620579435665335230151317560177890543455809591260870651797925452757249258274301557334690271534472653926156853315097102407423063882991633560610669867986245272001231293829144097433961270937766670267440172087537307880234353470645857641101251647315792768576600083447980122798605152572854072095717548479401429875013469072011406095472617881042303349508906570505372909391492185216624174263592840112500462454054575416188239226656425277291914941318189299796969560971270226610260683412181378055709748013418909481820789529575394259395016670699525516360138873649192241107933869696933016538046713769578547778825849462628524035373127340633911095544141848241544300263044594054600702278661422466328094130685123580480838122359736575958926063387017806396810610761829838173818250300422348668530445828491376234470474340060232362611484417575111075126321204193719663593000860509753289914250880021123166741126041492477622648871401088509108355043604706691369261204243556766671511554052666819779089820688447869545708864327020211721561118643855932537019110721126528674001641288147972062288578621083540116704022140850715818277065261886085647415676697090726224350431672886783831485584392493680310268939798213811207598473536529334336371196213629515365122190570862089314247135240166367478908691591002813180009980789865064325516219504483750378063428507841653122372729010350448533602608860520136890664318982555735371204863439233930858627851776264724705875979635952291605201829623704402776833087445131056905274225658634017171773699866237221906683841015251908741759883759496489281197560024377678824516038503369276720814488012480810991045980231707443071298478474859672708741000199136202983184500941860162841984088573052120434830146346029709950325629145608508673078196157705087542505556892208911275741646857327743738090684490834098888363806131896143126411206607475847664942912519866988118115451564724015623036632564467801603150091955602788640073813299769851534088395747830403152486445408234875259987135283616751541237721308149560472928280028058409494842715885169772873747057709409520352453054380730791582879013927346283445789365013753537189911400960285224131095355879406490215129721581185735740805406946656839993527468915390831944278482686368685202505516776597446820973175266963312130690322557662414886414299094544382261466038101563423372297439442413646216392225082534282792762154688676643814545429062213077856667587846986973086559497263596380430234568092630744219981519627968730560223670030580482404763790073452619738656985119560592338336981840497363066855387067005311256685025168065443320585362325327852789061276859369630547235107771423891249982128401535884181653658551295003872317438386359394509837759283551058105447025906777984822047119292411270307291722611438230893157513284497521505142394650381088439532088405209079023726587199339056643241920771010154925450661466938642153143006066074294663775694783909709671206112507972177730423471332753428247422709703520097209177288860001210455670969063122767524777554892623756584513042013416172925386017599998181613289097337133376538827510370832061213946754421306501819746347986616172597015554042708028468130024329649487158937452946936166316785796583857958980504576674594506519433527369531457358441375870953802623773955779932391165596880326804741736133815512976068709803103546545704773216023566051163841174133372819368471996783344802654736051187827536222667707498659929052790491635671792402456932844091944630197437475331731262505331298742632333380627465638562643440869296943012815947025087632041400350821232283540334045137242187987771996936963471376758423866558168248059579621340552003455645636056358653798305195009602899644835664926133213242309250008093993434275066639822281684759665458043856183362604024869668759509297038374838741581136852995846624629132495162063226708542704076078036265803173564041466292531027893098774561354724602369132536577285382692204897562880672697454873765041893896764798351797978437571158480294659590953967406026684209569256280859125316117804341742584269467893320891833672240383539517678276177597034685299015049233088217020326590019533874454311314606154631247098122795685100514379374904686860109069206050822618960294933596437566029993469580911374623019524996518166345617722652012811352615895687974015454567863749292953385065963721999275905047701788964072052739860025997226166198995016680377157437695908668383413600684854394869359824485788763499396405076265865198661885916370300213617775285736879532105783684045515389203079751442764876227696896843365830840515922246054929209339789128635962472472227133174383436031547095493876496911061051701035128221737461344091207258962225136842107364425631244096268712850203830252920716453948942921457433165365572138552260486515186720040469909623609759227476799269501644055902759446857378026893337901381213871155645194250043207771812300571236623869168831060337497356591829203900741172978832917474281738740693420134236088881443040544898812198682946871405673495747126988633133840926042158347124829555690302688731038885287662373717048818572608216253604699920480845245822931779665381541949601843485707014694813467819442769309097424163012077837919835614185738440086968270666573534810421069019854124301749623073574072180843559371236286012877137921825084707037479201597693292141296999873462726020661486294574449592840537627510628323925066994994639365215213000691948980310916613167737098543319451345789370825074368986582935323705335255899177197244433921606989755933372842072917035804509943948498349793216825996877534472329109329918258722048416338470011012864806782157197015401750482895383614257489203341409942949395322444981328629970613086073278723297895488967293787868803908677178053513180375575121252625368116488741560738666149129433293229061415201074929297955822665921903610556828052771038905301052276629563973009008254509560208568266714944054443946561607885595771839825655346199965224604579410959405122714125402621460930288717069604098558472722741816626928580764362922527879373011367648155826801703176827745531273490963816951342998746866922222371655530748229989842342948376024941395474779047328606252556407157744537746037696323304876092542546034855948980250891947108576119288293952408417921016030974263699935073572916356588496274388464500270832404255615845865217076237478445479166992125045792363028332442046759777371932085828576035079656209145280180889007894901481938652972210581683366206181962295210858210673614570040889866551078260652307047435913960390601059596048288924987617382824234448841450772203074633237173835471427472763619752640596710243944828519621982219452740221277956355142898289992076115731283482245665696460935623446684186598497777890619304801606571400124438938215785179748294002220067231999298328129428153704216702619132909016945553900396934256351783818299406971455352558901916992828001840301054029242635702839326128761298324944564286197271245671011198571157384937755425811837980499441692317539504307487232419207277906702239562995487788870131655220758108303216308110600230057649035591308586433281307567344941800896495183617969970315164203728093006140617344508700315788433460599709851147022913057748496441621804727269789734953201298657746580963740129848159861151866557314262267655264693405432892285306616413418549915862466086203258252974515613592032469519720881425563530634844893941033711825475140626206858307710655336855124848038505066766498012252956305687629768755760422682707744395257014150593794679539991176023262050781275779320154436711503775457467200748229188886553200805011822277212281199171592253760068851130695628579700909526732377480879604049343125324519556498534311729002614879411018787062756954072238280016722687487191428866106943487399453388222254322832952536938999455669104241210168573502577727095849256982357360610804269752928439232980510851599434469634914094246385812765918369302436778304230658055364102177148583570250724442595831286960008210843607866124545317458682051882796857068382094302075472376729362805632754655263438718337155654413881280176620401672274733026071736231659472288859706843652777268988571829349623506896663656599208116201510697720734774294452826987028268973009574359775002915022898092954262713368701730148946715577868252424619011086707204138418013705999116673171271873921751996947192567954239154394401302378351418767300404490188690631479921745115530944496659721942400596695584115774780834136544771636490336180818936569493333133556372559985784043040855132834778844668942670985628895992437999955733041732092247731896892468027407236183748075626907996853803866426308960840169369318899603154484014360651752926451074198263067371444720110289968104537583143988745009528179956248479658404244735983222408535966194013387662084303556477847405164202905955243746663970701392076283315216794901315133585817746288893582127738529309745110858049356712988223735842640367047298347136556400451719620272347422953189908325221819998435661130539429787183584884228604473924799249456636622224886112891583414277666430269475373746796657803277431905357924466593881271721692527091000989814571464325306441765107515798386159877006464835954651243186564061065119580515831282829616205688204156416635046731956583963818026484145772732017409052269814773931782597549172598948619504880396360293084165082130189244964620078998542478924423910302408883154221766881466763871959537296188183825977045139160238259556869233564582955271449423888611825906840596729140182123556698332961800710666146625703088199877298491481848412531470288332235789099935916147462618729014516627449958503950843128793490468530713537151101254972389142593797077786443481302641713362387928930715556223641507986638288137909083591289790380484868153580971411809799887613542737619772430033616610866191890613500028766868040549108766766751353543934091602601862994009986095989490322355569305190023655766874285201169622097919723271517038026081161430864885297302488005382374595504509574487959832887277361957958118205804618591910063316858022781166599495701545391181068801521023279493858447803386048973250409466917858957225129420031601097449224507052275178397556877044368629699777936556910875211781445861760517516329004165445388599317797247964602428265276663720162117166323824056601572334142777391646283744947138394457605702397692375414473516563580185770610023147015528458385984972791279057702691790413935239202952895059762386173916169284259499024475583079743374326779558273394868743022464408353682705077412788638654192222846517923055468527754818717682905929630349253109328850428488919878088015391592389885376208352431367562859756682741995353942901898600734655453239609928507590390805485205533721334026321634441307373832962103524363010231639970220030447974286539675916978144027338303919387136877916652764179560413002714467763596320206986617428669514511630090701930440825612918670590736742042546861101877337190759682260564056698375654566445685523575379463494989367832841322854688376351150356288495538128030924643411815672859784534318022720273795147477165834298139272333861388037509145146319198243861788146531612240916540771242546286002506190311857749805247480497908247243458437505555258613374058129579530353804233809570538500108459574622794193450440535818130097663828987625769298560250291675468110927500050848767010395570759659711346691278504506713474256127153244310596303963613182325617669880400844302067158763796247150674884401555243858298978477521816016836154107936017631548336389325021569172558468420602231248220488419890319043974474202825396501328966775038102710929939286546189532236153979426292764137418342275593396631276526841389956061031929561499520865627159819815577915713365762028184312379133781844621454951111361653263888677858689519275964928491672937545995226769756642719569644561999859402026455798718839382845562800288422882982619656774299984731679394488160901906733747688622228422734373747647955448726450172402070425018906022842004757716649656481977109592646445424207760496300595606736683808426776945705180215678820867848108894482356739908485916013416652339026398731347147739853316585863896531426909582903132913536197742713272441221726490464769341739217326249476070973413896140888621271392756291144096976594914140457259936929163604326301197069834904713002706066096517886456155656941531139495467803184123500587072485688887429776559723879553864513513696056145099898839971611560086045582839565791656110625893610330038872342215491864222117420193248278437634272010372620695064062471065375886332894639309299250711471250783268276090525139156524378711968525399171991513163099799031174576857359371602157297733042676813696949296406822433933339931270503980443038784514262066045502178891586432527937527574522901792654788152863666875721504457250639601970200972040863682505537838024417749691924782694585496200132774287692504091731825723218907111297376145445957917868735963349764938884313479061018655117222490070135891816562736789184135539692015286940697075467328401842956790712729253562104445613401140051680825553820010930796553757949225670479342081446290198573664289657707623959019881028880038108559200708539358614799405212335663060294364628166608480649478782143061338798428464940689565493854287090134866433825769960852652288486122592312289228600220187481032620724127036019876588246774526666779109580363548241454580223364474525115581038099767434865281865290680715570197658789960535238430044474766811081465625335121000450681441442978343781657658292240142738179359982233843699435319171406291537649907158157315454408793609182237913923487741206586189602744617248343139920816959106325278592304785832291711346047708588467961764237935381542158252496902029799371524964131940628820576870834675549732567020674603215624887584181821015808931016146348568776854831849433109295247783726112667860002256222706648558353070557006744071232350251209996984536785302604947325410217634082858702600888965055083798787871402351466278601423478036887383240032841851164711814489762803836280862165375899977296972420419528434901470217944430602671846687982070398273206952245557973042004711313166083475075358316182724746201530627999252623444753074447141692939167236653221997892869951596129077557882399743116848639306481973312034771940432769250480566949906338146962175802423426203273605043670616861613087290902908889645623559159673713406912266248100073460664562524224000341191771672951368151262089552194323853936804747192016541247559431217189786473519627939979711723237851034292439250414963117799843323041986406482337548041087360560526846444659214691437284747047909266209347037676544240519486870373138220696312327811519898583602531369280434522118768910391007249306882397908218423753144665820594656071372118642797998275987974223852461637257955148167042910700987969934894179974137051440425577260588766783641583538786391298168910157484369890377768126191902741215110385065546421561045132117374026704167133721325832409426643216446421392819055825311634420005385010212394996599003895699171637836534722038425784030737251503555144708174630363635426354198409896364969858213733608214704444456077355221031222907421819813131524176214288151935010181280238824274095588318559768525865332767796922578225382763657484603877868608132969796805481287201124825907158930631159202233017395659664540521014664115520858314699260418862026216252797510668173114706001402744772179729091077233474609344975633247861881841221697292943659810188191682604318322639140269080742477206763937464935390208579857490007620159559680518358288030187664472323307978832823718597386888608872769205874037265487539201833800246380948200188647008461949341597438733744761686705554566130745110499154571001279017665250195219770481036451282379461538152985633685376355953404037094534765181127780396086706585573811780212665065191278686330255827882738084710844201253195554256018739436510025750018100362394106742090916191697709758337763490445285520810330743287274237546250554326311948563734600000420830001256108190190265884371780445835395701045235210064085612432915345358535547659796639080772075034567493282150622999356597902515125578581050188795326113282014414667308393279940353669256560211525898888153034735739336801447621170574070686239296236042401660594852285565091907200970624155802093235384740214330515304130540328153580893391763678658248057440410621971742290871944450895725862735572585449067878042838723383852114330420136772562559375729880428539672355134259655938619793023218762443796285984649668453437076367911157055366381248511110423206006662911614564833913805047715616033068813046891843868722043243608714565090333236416494397247603056865161638115640265779111903826391641563836140972143002009029500856306331976438528554753477876994721896467896206251240024200580428310037766022388370793616019129323875188400143844025439264312434569232282663636326873495128598395059931781448268407249649368533901567759372599884759099120492786235141296999452420363834435890968330941493955877407193582729906639734795465387420238621460740538919458667209921798275355477369798104877501427462943380756839151563185532220472325050200426030059886001355594689342192520733851522933410673665993504435782564182116069175233689595508377741321751457150545642001363252513547914589293377468418379261848275318906659537464175416025509899601481634009448861324546837212795920761118791565123311166595803278538587423072921323650880300502894374407133493837639304334153054972551283944933627502124604503345441744127301601845767635146423968140893842389948126849176830268529604952955144550522508402391621151284079684888401543011012040535051005533004528415444101648429472923786858383386412653856794630623143638162572192729981455598756718617705859589893951265266104392478561128424695183481299305425282800539575952355725630859718924511208470402031155641336792718515792943298964738380842351745550662178205282377454000201796231134836773893788851811940295971005971197452683176206533762750174714242944387289444657937904382992082411337036676772945042640143285516244328785237589205692405799529262255854669551824187142084734584718150641393221930010553177918624926657838443334966096572534923620306835073706507907623012750921835439446221995383482625399680101692187913614898201701900010567362693522810379535929042761880801988843006391708024293786937440380479304638176525016361545057908385422957982584205716455829772280310635709915614710485025548492057750328110737980685692121605793644263610616839544682350218428510474948155812211878636992547609327137534923039868545417828399304679326003286086165450145535915269684734758964276548753439499513930252881341213472778498581058901620003047792303931630547913973592158670681977758736283315091506925466324057117525293190450337673687969561498386177719455464426367344303812915247501440033865858314670599682311325563218142065647570837213027251630728747252300010406319607545062839603022785450501244435437918242845461017039871136952955341098554900586650492587627098328040020937217412380194523112602399880538739379732059389012776472247622257750478431798757569412675786533196799346495857164428173590242520662127062714821913420982400376033570388942991149688681744987227780266262578943678024441218744255695064070492560182628239862686128483116007851367552829674632055332728981544665599192564077047869975638041197375890313698478711058907720047069855830111724494118565082773181591467368548476248179487996854178972875883602600618226443588367663995990478678767486592055303089983591801519901272437238859711616164421021790588081165049521827552679218221706501910529252496769077252485650037909460293146161016223788497442121215468009362227536346196693788418362290012009772064241691865930208729278881153777068976482623887853888918805834804058771025320175912440967954626740527855141877988731990554185029852992660780349172023130186435520294402708761580483383615993371369090804864372340845119576174679448364473310853293701590086263509968385543827986420782991033081171798868266925747707469226874770019310578778545957989428071984673238045006527409777814632863585298065739865848483501579541198529950121312533217752902079492718502197621490834910867496501665754137629381346651139282018701417475585500058763949976658737055346557123825502476136152785294090528375172221563548851047176060743163055941776328256742892471781261362899166588313630503155535912005217645702548450635780298021366544006153013543599393076289310259801686235857047975514601803820200209720036178427885519339399989058171694781471885252107285468741219880530877857651941191201918192390635758502228023493222266158777357877797405295740935336131770495353480934395657975798217596706889030504598231951269837930908536526310362082551633859691983422762178538529497715309197124946617593145252219707770797953027718501737545520715914794653108860232035792063091987925614385241814530339538328965390494543717300562723609510231334444784405962068758607275466088850239546228087579992054702221847955415047777924113471708094063228270403987069852053606165004336043064362736569824423981195198880615178474395000394403612690818387120897209221205005207420733188164973964307857562387042934585165013905101183261124118708060736868434449277367529975470367449676015258501013943782246258439873349117685536523554682326003934579351412888979929489334899283816694711581033593645282083266156310253806760809523220557562108580558360202831362775377170039913467765700052997112821160803121343372997550189367798658410953699530806429291144777783709190870475296011923453270818790396880952030325108520345614129908979287111183283555669743190682055383630975326214508763120607891312483055375139933508353628101531768320718460681351024440429513930013468917081387870663667330988495193126707316057964019336036094057328561317303296713858198688567358235084371176036938041671589611825867122935418237128919488513149163638567408075935113301403824728704281138314514080120489583235426273447754446756220644234645840633131862062825828899126763606173330921469817096319480998575718913339474753834234229464016038708662164454241551770675246115005717641561994158134044084535786912467951804083176193112769593634736849699255999780025162995353600724724144065801853439605809692905170478141043316869070733328434111698496455236684248706620783281047429016670382455161293469845422572606336088697714424242621443701284402349158528191589900491610635636377837778013979245781072581136062842473166928310189542078384296192603054593092713633478429182157671945870470971347053591321893294331852745321172107928809300556910720406051501237769144485694435012590896693285527885870377020233501908432958756087987463377947095094133149220843481951291754467379890225283048689106691580608290512291805496659232114459673382614177794160951250157957555553017712524321943984077020449360239219979921184256787255298293344787869711336146165858335753136143312541180770478221108439843395293589148023511713999320606305996404457405598387116886955885692709228615798196592586356670576620842585688766292950410029972785192602844208682043523770391901992034198514306583875593958975839461206442817725803748180913993335401057124569261156530670948670808008556700108391360596657473352345325710347444380866222098507196570933562307452659330719214443358012108119275436665031941891771801640229625776423255785377775590542237664807594907280626292257611888586256023367916349922764073538699731705879331973209321061756365080868808114464424328526340334089273217215411743841709611544761702717211688997272662795597923592655758837893317814057231388270538338739204665727583797039315973537307586341978132543321448118410978994881623342705810738857749918192758092545054863368641537507321512065915980084930849057356153298286106173445123164909611230495468690673174297765330152649100249786035433199084696184279128616953160865709880857585294108129500942539823330330160231157157301845280671678998847862510246732657849899841418132674843424651259501688126337595328680735928402653074199359805347549927656819516226888929948390573678986032994474298669456414011111179600615253449429045424634365756354676564091270098606349429924468082837262566061737384686000875806715796718271604241499621760166740655463568036425178307282350430620012899611965502790539428839558693536431200217151597205786697299025489340487868563665905798958770646154849911783742010874786409728171723731302029838147161021489670392582775315543873355908312039747612692831539701971352736512285802633101982373716058954125402497030817759598789183610307411174883490286001066028558124223632421640423874894249889509533713434749607866832674820107244245941874672793325478610614029424109426204488292250623968226400885866201479226105138659158560302898963709823931179774267021025840005630752582542912761580479251417920108508908914524024431618200940647276592377516713680798994304489174965730415038242188603588914786096182641334939940324772202943650864235356044116876481798782026488785390650065590410437060496648751572275734836035141689889559848940735732724521427375892970001657282597521185332900658776771635442076138360141113267638683688246124030465637318245801460238136140180778472143122687086960047469293023576197857032723842192567939453531177780171883713581112733140185786556236715480066390663619533496093751492537137414352225466954561920809340328969658603040163408237366217644766474024886193318250323731882384501423780884192837998802846741566965561469632954109662329443880610131755381863528264259391635567655853100968438198175055711914852586002365917745004128100790728734944772578606316125092293311248805062976731475963292912626208573684873906427674644855171480096546672295148960681527190846387353483026451700382284954616826679432292641144610646181323753082856932332817205334383654070048382540156408347522343409942843403136079582361219988154559275457299394796972804136505149519130540148107473141341447624341730910377450892742370180690160940390889083245509724765159858097464041428441986015006594691609449059202311639232222300503166404575174543665929031419023302642163554151884379496283936786077775357892923104397698311856670689234698360141497563563141928607357690408319560032897621639764163673646909319093256001447503001163657045841885153300746957816063462686969747669990783436957343606154371890430372993546154397579618509291822349731509526749288877512515869166510474950736448224898915556359133630367192843675093151304028289381391553234593057777202015425462789158507554582639072094925311717523370123281653685720583005316154202855557043370724936836599340103315810596972387238658150581450531736803994565810965171953599328643482852490506944111582132680711523456791699379589609932978298004254694670863184294021011823404896825873733307916770332706769613881472557562862767066510637527342186175981066990583028129467685235139935728452409630926830702234238996432894073978654631555379583233944289738243647498463812539161434301012123077314494909104349919343518046863896188026971621785195137351745180063516032715999368902411336732649714165104136726698965806355557934047087090860359605800741327961498049412119684116043510209499647267550831158308222796229502866925926309867057808889616114080188272995550658024608155941386528688887453875201211208157174426530544485301234940973323148356867014809637556534272113521716205686024118679830733845655486273670574266888478140694784387261061982408693653265067959293086607603034099622384452405850599209107797056605768433901684088918172185919333193330360866816985692138479182210300920032397360596026555177032665857387401348490817903421030014986533699615565476530004410447703780813934827840126282143790337238314745552916641045296580724817898845320328786458350685232622001037838209363560541263384739516182781198978595566087309443050935930335046270123772843749251262546068718819258603958935359897330216352211190838995860084716606198545623488871145603634910720607825571652827388165069790376489992967094094528247308250335015451874570652746343609525098873606008719147296572770361520519676819304428016605992280480509909219616441875426167765013466957377547767596542133029678927825931710116150909562105774271758520414012905605871227431463470297365711077061100008091710785604824890448205218850792091242897802465290935911664907061041762188236055160480767326700414351178991012444601562176126561015677684876057115997212853241450061464097431947529628161907603600098252356213471674747550530200763698926005008645186502106941013389290289729588378863432497645729029121527233915708500394163008056699235068166562873873519945333160611684401516528605622832655629051045811589491773505411773166765104441403232752642954927962724074882401174459121747638217596183396780486550922511457276816224067848471509156341099067960803559775877125813583691152395056375222006373103544223970554761051579119318594094621793494676391679497708259606097098531184211206784264628215553508056789718374942209655734386659059135963739474270236550605443577940704266982368265855976654090518812040857968198331892675417960276406409290382337343434692086709623245166132281810696873979589605609747106916922270312425037896338383654296096933905546269414515758361563817661199457158979811563795775565873846746405177100873460720418715428188261316000778860206433088489547111373061862220944494031535624391974150671449127873237369536743535465419669579936782409793581970238373231474937368219036443431739418104928385600510498352445484194265963413441368281760052341860719940806405154655297927139434213683010564339367980819751352534341138163669240003146271229275034443870460820290519307577436705386883565167042354531411202505376536917780848099638010823911614833010465592373283323594617882059978411467350738439139219898777510683629353469904914232234081640068705671341612515030132606363172768998771544427836972881493419727733830925122185835890306612038778416956699215207507083497642025795980016604091633699854166472391131463127736909850236457173457030366011899301083306868520601428694879105038977801266042968571799813428121651590709334853525748074676828968952131963318653452547100328030403143217448229862429889775556320799526286676267797127846574458927454453651994884770695508130728325387702261370235878844570746295161938500042828490443575533915360186711747848458267861107852063642955169508001423880691302373611783375501036922275600786789629485576849776628785456400835630550264444744615585545643049357088542518691420922731894227024604699557937136265734451658249801605172586715779480369298129106742913423422376993748810624339595090890836418295543355531393584398636087412787041758619670185732701478443757513498355303083312154382209053982020701312406788480871402653646993669791582327957448045148155355445873760692869868233282277188529051589612699549010754471597257611282601993524088988980247774444794124177862450305561429773006055001239126864836266510798877909066656037680634531118676456161759656935850763546339110531440587278722466965343577838755233650838516473099945163121278073764952751701848342803449245081972052830517521746956886260002745815396933750688275745248908479242015788904439690850353259429087944422273009631225425667265366288426604593354118922271827505140977471014257211994200523754061485760250351353022213050116496073632337284162309880707356442297627934699253332065579310667446697035830414967583309971364245875986622088758420736076351449961731275101759079556041268539761195522590879941701888739985577502168745158369491847483145532760645965285745089588446545781034849639306192781916807786874621176849974593049741465854508113148073459215601235196382205007777582346363936813522773204525439426582278464893509163269292415956825634254403945034297399999457811206275942139849093493885078179822855848826887320932714461758606069496825037604397953066858619244094798676422485345059488663831896158530019592840084194193633754847754794742094127823329529168368536762087153620531635038276919228913474603892754502304805634540095931158487720267931427444664661704133442869309400787642486709964648927650830476560336031017722191680685417778197890599612036759389563628332827515846081603655610925049404296814969412762583435110508876700156012173834789643597518856769157950331285882794352018059657835379218750261634860855811912463097550443331741184262878257813528904807787334980380208295873537411987076295469483493387460409413053377897671275162772066595994326787234096715143027063999968344893685253491283175693631466866940192229996220456640406657143938237943436822287789650637917918683340835575590462565041340331483828965194023059223620628455154697886725731593300507561009966210710077387822872558594822834578663242781212454337552290821370337591608325323752569414155784941622551128648388268263231015624022308777230066303767242064613119139256652420918039101671068518178431534911401061060535648388857161448932545010089932599023575170095336783683448474741787814188486328596339867566042961574174606829806388967139466299759884815793282500327158815090141173554228978824808807005502226664522252148162296408494540419495400710843552862883362555459061595339650968656719834721217040049559558057168028423331952962314842365608465963775122535595973004035685959513986906656439391559008934194056957363487031680253774429528285211967506809635188171511835118662829692626656228594939408811524370721673242557410265703276779172722145118870407711882600660578243495595020819810847878250980255942050667470637719673061737121731372027754878077918414065458302613480528463112139627069582829678120942540810630326037709902713632146553141011310173516284675301410819302714214868746181405410948149504546159434472341838423167615735511133260549751170872255541615263385552157176015968390321247000177990237053927202286969634322766851837065137583951797770612140724314510348355619160653290645847753746619516977171774814106451650389112607797978575399190694606390402456184351344360948276587813341149109819647194383989131952272114054132152581121308082691810871140868541654068935887906651650254303046640413917081154544004920873866086308504402343742748122316799983782319421369222537372992535090783487663813552073736921276992373196270876889557284468093405570411140495093371512983190322926116241189597420464302706201523454005282632520482435110515939242442695871542792472146039463188299038362072995411428854257205398771157547886049362407175592906930041231340621975913872123926677068567336508477089217573265975472274624356837471613737493228015230026749784873885697335763239828965616065043286378231595878385745233134949705242803772846981225006734508453373377159234511068568684271568007665340298328242789563700485319987091678719701372429535865733435722593836808626691798590137420214236800221372294590209020596421273124913022220447486524016228272307398627112593091207933522908783920401266143481527840590860821403902364410930857847646306966871483349065247152457396255104215035755620688928396480604156151354587894925733435965343156338996398307863338501737587920703972930074838640585277517368508176238323767081616240922560863397928654239326974718684319390431733682021161718418484041148981731304644009814169396599272748623460053914944547988214870209767856361841389459069183993427391235166247936913103318930435607159320266145447686643165484551037386302788443783156736535706064561813836878119994864160053823066747700491092564433865247966307090711884929522285490630319441445839855777977141431435081989851451394025410433348490286021180880614410494760158447847040476550106348730772114012175339609751835378855345454688131057991947023902198400280376572198057736990697608945742715762148381318667378713631468940770427212310611931575991195349604304735136445800745438007367874902014535822747652238719236681288858502863663826730296800705445537447910120150848632857130490406345580073166275993285735658850354586316204536718675120736156777753903036899237037896650245732727293322937697600176164039796261015424659264624014582238707924675698410164510929361651375313875715856314717508672885638931668327507199329838956580060580088271361508265450238809487031884481909342089634107399017069095457655207823559173033812012027081580069919729275920487212691527659444866853671543189771082725692365427140596654205880524549687434821854031667912746872408614367037542577415063638108907887848251556846819317884763986960905078170494889889878890042265500008103342653475161159458833812848593539117737020787363932244906323597378829406060603593459282999474181709555697154998715903455779214124446427141709792955298720711647179066972361015288765060218067058787362818603078778205651106968708110982285103815548123942893975198638216251108255581461388068245583292683703078720770389426199937469649254212430586306122034769097342095118346610240586444845294926628082617669110371745870082150297324174125314200494335287905993963766189519400560727037298529020195168763102998945548614286067292693387063895952669131828866492846443865806803772919832574019579344989376259817483544071695146571519277729031271203110304483059888633172224632814766878926130368580863431836050914921095817802839358167136449986740612505096933877522774418028872479413007285081091873604986579096288463136814977954502091244363213258508128725147422050677776728834870891629457497153029221564225532615298522749315442893865950025396920735848243039357771584362413468625691050326446376758043075546759049356941611157381298682907753404892178980474872823466120725031788713975006493405881720866722555993354230454572796093179728442995362921297124040743701882171227306339579014967319554581600397212077779786784634153420332300307408522631264569316951068486889702624909075136610571841707319554289534203202477264669271706553238246206790504817200823450694391717167920413098709694443239699892221219285290113299545548267161921247911956358594676654376243039549123121998381541861390093730584778723840144001523978504924018499572092668485112603097311561524514035980225786756012737720116688124291342240187039324283112705790683854571206916293201064889266437755085353860412216870879697846714427531278222734699740195574574557631919985106074452148843876879940433275902671103592462161539641955206088304059135047338107484851898618750338059630633313245604742742144726799146791097522350292883413900728596615583434592140457833102058135423648749718701597266528542230187697183636645124318763148409890299388905165618531616001096176656324060080413704640284332738240924440408548130246217381379056404625884992255628360080124905580209966167968342500307554831758467184594872880516796894709662470463491571105559113038097420863443681339475461950718588735971465074103553973341230166784641164825181389755572660443619168089194046452600768786794053284035111292807027380625324584802194802667445530512766685955339500455866647435779981133444080859777838600856179774844231189305768142476520328004631731736307650024703305559471666494294066704414017101749225057859216933057341107657806685217006673510449008870254886166845706190258997262083548095454634308781994962760898350611142141918510431327931519274486816729624261512232666648447087969984343004059560742653313462412151132806715562169561541673870111791695141594530203737168099769878037807848298762512133540270645640297625095251444143309016557907764571379982878844841681076887549634200735521053034418514866187683546854669966309063283763045677223497497902265792341909985028543476387178307547549994296092466135818367899540299439189166927590643757857670143304407421115782085973638549609830882889443033615684014593629807058060334534453381474898591167274087992712347749917465835949790605829218667121476277874150629205396516305188589691526659116603929499699251881517447765282393714080218089795063434425150119215908913014670039694452944121970595384783702922293568258137195290015732453847286703378918786597412999220286465159861717475365384726485063011872988664424970482312845520628620686655597967473370325462714283650235795286590611847434938091793525762668297119642930909584634297638425635952808225474098187176137293830203767229418297345882450333417900151282899128593999097482186499773737326747700602318522239119721857396131181743604419092503408089959076692526034213523622180287786526510004562465150633144828747759107250351784738913651784272423584406531408576240505870135660414040749923837543310917921382149428698687131864851284340141165880832575015779528111810492042885882359415788218603912536561438782055940628477294083810991300740074951820580308165676136236266390547822135072588877248980408776570459313570573606638361102554295482631237084598757571734284394338547067637584861232500892340857252539681594853458311699374505141259096483220282773363332247919651638711927626182945687752802418716639379397126761966517597098017145968203317778023856710898872354778548825074822349876230192346038364565327738091195500318557973818629087259708940484988241097632021787959443658792300545226899841190528349353918652455742941589452273999037143898545403095923231931973437144925525795017951070850375429457624590367872518511678547156780670214577164198463930666698318605575189583351974533507690003420359789865624090803859777897966723218325653648320723202166892952363448700569990423032160528024036817352411851174129820457976196719760148572847522304563447309921970129426131974439224771421907857096947913563373642532088136814349343412134669773096895915379591276359988223559463875786361414069358654357670510485078604519859120041123627549449004090240193328625667849899515897788425719071047197221610978204811781027323303207986509192067785233337776322321021582120578920722223868736279749391710467312278076467517667118858878267367488686505621846242237775814080439464818496731524252689107628210928000673212750281287985677653248549066217358918572177326404629270298384246027278949984039116602875004667607330841606907815372594491904911140547201300864297186186959202603999843914775802190569179286401734530666304130335279584368202650825494297707175864484121565638538472008349851426639092296752604571947612571785406951226804197586781181400976700159946998223944980633174284278142220727780305718751854869807307305826082123292417126393170921659841547318098355869290819351494456560871526102849861517083056474074156509445127157727353173404016008751372104651910776027756367559251739393767438134189736087263850520661502774301842351139421674722046514376204399961863950780245487957943694197329999337116578808185914935997569859815094357853321990041542625013351381604842529517954048546923934452392971581292492460740331729539207535445727751011048474661119938424806607559639290781171241552048001378540856532244872829238257724578883279404899091607570939039329623506360862457935365468952196237358027332365739865338032414094701026167792487233743659566721868557585290125986000739516426121217139424046521267933563384258278106886297846165222480094539757342951725976203247949117235460839873289110205945973224855869861191801309063640668275753788543586306652528502384617647099853539648117044977645891636877856443083794061629030858140686335632761791613618399177966688619675033306850851637054880915453455358335033766035908070371884589848223916671398412217531286570597519967921140021777309473251755795538613834549264490672262942902083133084653369833623227859923306370590596396427267906663395960697823572575993640847301388450328814311135923070307638663943697758422196231005908209095798111313010959524870921112112692929014742294999939410594746554791565392490749375147142936120671365449838191558330490091827613660993027763209548740701165169501015699417859115686941853826577465279240195731038247637366903701660774156270775386739410013424030718170439878602864831487716622293530157183713265365586544187327011588532692928314320038267057204550441635908363100746614653471810204941662373361859411733816422826416146386235875871069760891878595523736408319034536404503091592667061098760849362806209513447854242228078359011450181768339798777651263204383800429317224799165467044968868528882906198329753061660904086467490062940166143382061752982894758198436078146355586918967073115713433418984146084384016093331446139181584680585074332695642351041577730270628529494339706154165648218360599693964849236447013339345279290694676657457909892058862548619427290450685475176506837549585998240563410013091290480525718364513918827088385984191746338086984207585998022328149238321674730592490832686117142189689125915503726378961774789641334044819479107702124245540165820683086575384047418582296453854596559219137884278147141386998221382654843293301115986738822883174487205733733850918776782428730101923918543332341980820273410788741572885275725625603008268130012435833267370179239860832202466216256529632952948324885739346999379997481103347848767233623519688538310209993743345851180402841738979845238547851189467180972450704371556973350162515795550295950560893479019320489027820706457137124568033118070304352285133019384833572599752671149785578191260074781436328578918532044194070069848466795830292074365360451771878962195939131544891841905462232573261269285537956589431363156479872730158059032834234390607825565158121475315098321566595237774383159808411974342899147570050025226128882333460812398681094246322540069530470224994042940080570651239231733909944961583413633097745838550725116299619355803348404058979007622126246736397441704758671547394532092871599444006346163947034025930431261929970483330422192813021702615651920386058778685918678583687107024535880871275650005125196081508300876667364344423032751391858694685249661788674005825011852703949187745822847337021202930975305860675919599520414450073530600716510018781331615483796709744383541770678143460022753925788419982196439737144758468407362543262066944214275027988056453336867204150216070912096166198495132193318220973216389243769382630471461804606326632047526478102599303963500076332466462323016358430279892833860958540933798259990059399731887305035153381043255382570663636233365266799393443266701179990674014293441204780751493931549394479581957724503817038773259958744276705817480857925374791464001566268431249338564578817718863506997003760979617496309525842895233802681827393417639438048221917772130618700338265402461506863201789175651692208371200601172860739879818638484520975581841867352222004596863710155050501455614891411373136283761810767196265855255114224831628322044482117122578165372257661327066409848058895835678370343243570095940429058749229327292453270638794831716886941294749159911114192555871704155987450807676860717255336520151603004841968831838577722482266900069072162972200783036686392393729848945471400026795100876140474576056565422920205476076576833606144979902190352445401789572056692114813694759566639610801062194064914382632596672197233918093084133986429769593321654340099682119709552220444683613967344330257653602936423338952814046473258505245257354705005112923443358585516404809771256294306368064402940497665500698407383968302332480009682013041037670116028852112096063632127735574410522386751090449895706596627957612296404064922918013150379169322340041026680257464154078371097575125043681846518801013110396239152592731440070806081030466100824973132919115144341901742151689895547747556637165668230025002995251310200762290597485000927830949946513441173150676746418455982249323665127020173832236117065978598436903786437685762955533679425318798472328960656789227260267785819005965519025463452521476835498310062570605674268823418393422915121103720483942962738478280037089533530489697100667633512907151872207208560451775259846871408531193285161764877828117461876425954724360720048261550704611852152728263212832585114582394924490060663457164617283129962394202740307835049301674585146207109490528180076896740389089643814099702138132996152086346777459757645185841256851453433158999433138534048519857789731913380000734981803449406503889181953474124936141793234280557768670926717489615298731435761180433237761038017918085989626883209482026254685196140503735779067858937114984100493901681331511850095393044051275318863492164658365904374155536266331844888354801363920915938091616713194031987880574058950481566865912568257377823096331359366553386588753273423499769285118370899038997764486165033286329643454276447534208532027844182231695163925542747314445905439608815780026345305025572253187383362778171324383880124396736977033280257451813701925293876923779299452980470394668392683474446835235766735401374973487766299542733598096940323819728207654665088794349199746007862079225273754685521479201783601634284885033496773018702773124867542829222246639503633377214754916746951856886139778476188517531222101032338927482917779647591093670765418524491317595531283155184631534094237736819299342715440418529675307837452095844739088792161041100317944217033324870613010610261420468221371397199300959620173495484740627557417229421827969374941055344680941657985385405321179368883931173101075596939437651380910834107973224843704723992846217310790680844411518819508995338547543952865183655309276297522904515704230284843261717287305786758677363936088093473262868154313697458579675500707817159985910144113043130186398490375665380214742082609020879698052204122721234535663869577978598318635086291470492574769710649807911682318465416407781148260586120248834465812733588991440325723331615981775276250154744306414228703457978559170379723134844819932544383109603601887835276318268988488871711982256993090058570790629635387746566890469610595889228763036352106804593439245095819880039229968125834170144941308078643175346774422574843275680042268367119009900059522206036378405081097633931481034973923013214856215820239975597872224844696879708984562688249003799849614271524697705050108985209681996041147757092997171832822760900982310915096289777833612859629798919258573690981621748633996619407469689896419491103809088876676091847810215487689339593561297483220626297044244032849436707759729392281184989355862530811142180120651821313461428633262105426962803728217061830267422289686828755450455927007909953095247017770089199603672640504869655576641841279538329545119017437860016420397270175749501799952806251837190911897879116772426869429280022678984688927006951612622346141878956001056398116120117055072631952285270170693790104893522429407731717028899321309664325558920358353977405074409514132547721546605424269387136439441132022644712818991989885823174816310681628911682731258974184394297664646560342230004972987895720171402843410634353969980146239838318342599337469346438641962195333533035316702501953817378768566260450038744375346054549647794228548609352544252283929343221788646781314310930522874187798786957707267374617857580816955666722265199246117985804771624106569279247133299742005511732495016896243321739248519507707384371962875644367048971080188922162702381648275604467837061359295730342184483081797794261737295305589128027912305642040376628165767967129320484239909135518895637225990066076541813726601679679247474868932263989862616387699905427929845574321194623034379379077717012544148461335615338330975160519409878403488124242155389726696175503459456572550903324345281513785605225056328558553063137024937376398144373429236973420780357974816975415469231609654520234645872567196929134120455418957761884130160713713091719066851402483816747894941085058470902979729106796717052392461259663581062687770694435263874982679966080663163500388921815142105623043478663962436117480249369988377207286897901169589829434283068993217091958177612011496399031081204201191423066419320983669926830095961828134107548667118069576360274261414871381498963386583873756495663912384276138577536330215340438356807479210360072591404705424891697989842350405222190184818986456568914498388434750258622220225824216278298864115862687690751405101398213178791301772359017385551258110856310016066812847779612452067343230017141694932881370106843849266110243346610816675093149546603848490658661133626970398624665398648504558623766984806629119550644799297258985412720493118176870587181148136276690560104627268623645017628061695248491993807864751414744923794067042973155164140814249152034591835949286111995454802996857887210529527590536098472343847016433788648757074404253408113215938321253275081838578813079334498317592761014030684042226819239378586555404649188437464320743593417880779536967291400197671417004530944682228049849712540297008976495832381761138257512342685964132141690393066245185648597032083539993885686383670221001478249345162260306281345937834356802856175717450138749302709226127076000931903969556371391706350142310999809649071820909249937799509044722105569021932445108301849237015780385588084121967009881552660787853184696517254458002205272669690887228750456370550086546534669014701148599315338866818380970092603966510717759460046838427045419650573085893987380424118493143530345488937266092124109695796263314157250222903660941865769090368573011631886079981891990259177948515972039395095291404135572469725284338190213021467885147007548505879799892107086950244249277212815381988968970150302741116126373328505691822890101094553734583603144897481299467517281235299949383748689731143673113638911076562053669567151738705652413584910106751471026804333997028945232693691127120678434127415684600558515114541538343498237687542025230855316710698292883878361109516917624084195175214019308448151142857878480864918919370123173021466451203536510071894302597419747995905847185614347891628678214554838951889681000703211582409337274651205303556200168820353130211509582477085271970010080941139153944686167754605891273192724813235241420859335949013021313875881007614693667993951949020214546358580024627613042987807143958702531051535650355613683711213656713708979193518902929011921676007205958873785231546495475817205889459773209869066492785877497711179558636181615736369617492557917543195955804274383631868356356725917799770850293151510027003823667875984448147358264328703010380249379032935226483646445036938356834909037642645193449143483303266183854747316733096801855046338469310307938399021609436675842159476321109541804382337540438917021740870884087314643662452663259382390158643880392907489153328816131102115238281070571434378092842830292859923910632514296995950503166768498477718258520039759235551838931734401075701706958827218295308823356964687446740080272124075060862792410094672794888970749623389890025236443913645526220869799451435715353950277308804017498420311408408833042664789856308536617254773797612946355733421075978504525910272519519736282223959632598297548370760351291780723153432645983021225587878838667692680809324719472664161538964075805377067889135173378575946894556988603323896200981250693100140336139076782100578844904905203773257642176031190553373904835398815856418469460914108846154823447107576519613550347394636982229654641127483310194102025895760956573753054227037274217808779251928277472575945703990578997378123581792886744675031079138875196240282662118178321165584777589631002182659074172498124210007560744633491218882328104083903114983985030353969840101958411165653544062417450903532685813207567470139778240459760112260966953546063926014857915950157806271748497983686687232162128706981010475599704753726007730712960086835887218261628272228684371980762158274052252675175850252428097262881610705760943037523123356735605100346389106311819634242457437924843776875945900279034696510231083229419868502088138710538645936428594927571287831728524573541190856013268188471891149001560818159594750746250474594883825267509372554556014145466128938510041690220005407368592900580743226861042943878855026883509677578107612325476906378796456028702510847609128793623413895788104009824621497898047143225657728729894136086444540411846887571316441338616448984629021249983051735316055375687466674282422071969198568829897445714446301436729770204722351661654110586150946062044601509221577434655554351172909411463723654972264340025386820472233961616187641605645338395869741854789682070231315739773560262281740271008080852460817785707891073124936262877284932140364291614442132167074154004105127488885656379833827559634547902701014395859433612782470861143375011147845759483785100232618781179476871882470141583639999412106710011264066463134516943868731751740226592382940926240446695311161587438488417930292578464477663844347121452081352498658675920516737759212096258375752210292957024882702493485397861637225787607327216764937278363673429571360875803670426552124399037152495317346641572961577879284237953052572866418550987770011012547204987950069225281275612929008321964963890242412897225778843114787927538317075431689439399656827138185454367018177069355227737438559909185167661413330337519201071007087435443844284336603739880798055621099505587736622438742837026145570709299532320279982168101150163061776707689120104576415967708706664883129847317826208718377280468587058429654830404922102178834941418621184928345098667150993485672747142354266836809094978678898910826535119682746851576099501932930169292590140477562509784539117054164953164934678509720849123531564319275341783204727483517531889097241310406018705592188355500563417196126302017811633642934034278291824693707710648112770863194197918383968575628590620966040042080048127192947567413329123198528888112968954009911217946185134037793412721308854240347142770641867865231354111253896961284777947718259575504491831928171351733418527394101275647799983439543834379783629966896586049223907711307349247441057355777267691807781207196992506092738960942858824750089501864792472175085434588521892406460550537600258352850237306890335134941842541499274057684034532137634545148671528707745058500957359899408516207432806959500416207792297166534044332078570595461455078733695244134895802516482242057183191464575563482455026193296822730123758541132566912283362070062851402768007799068791628623987436915836812987675459980511412670262443874712411135541269845990811773815538492554255877127059091891855493912492736330352549942872383275719450921236060050684194908342891856038118503565932729494983365473284348122099308100702633100389232646290832797445056352469065212980890885669308683626955446465288545722522420506925554679777338553339156527046303819546263719159164613595046118881029202093333863527846953893830707640409292880348227145651804947677004887581406796016694552647912713851889288473111751506715276291894350012188394554201532896499078228228456955888413734888802016045728224389515873136415349539242191725326969262200890680866289009109278031887235333576094821783763688831812501921754780695220714470441910379449061796137753387873001841419461751067563421427368178917583296584361850075971389876621348299732683623118546094409234509323439308169541603490455688966167352683255683713287881009660288284704963643024246225419596760230702565753761008836859085460679249182391950461925016281866662432058036193848736507354284016034210815448875958597072296380440241304029926820976235413328394430120622264777504501406977796054199789529615829128408940246289030101140597395555457210862178632431228265174249752103565986577523879164171061482480173028777113328398762501761848663915606513335381065707954778654834593167651519121027919485809885841047393516257118319418194348427042541458861167354740134794831523042296495116686120707268263726498564004011984721168079117815728341586858734351436227103651747600889359522405031982357211820428082725020206166131634236081329329185114684899936500580358904830362919354084342556483638224082827602900486231469213327095786764568996635172169038211207037576056781350726522953473598446495380466651701420584717621918070350427720928426883792393770883624731608547320839588188566984471224520037563954353254750995971190079717390688202231118993553121706058710314319004037883231327942657043330869485189808043164330690687588555318200872129904906905203297054722853919745243690719687993862102422570482600693794615464116044343786370149916532624132937285878810391075893385466665401374243036161240579469283939265056193427542675427841510649388009171863977829046107514181762370594435157325488612083769818111590084391454781027651525017930685848716417541101140507079355061935286632989922304188604516960532740833712214477721565949665055833182598815795377425650684345685035832669155891130653494567018448820353683756868818619605276267587788064346515998832707546140309596792514888055100507896065207343214746140558392969907163991609568672793645943777219695200629953340207114037696450676336143581472837226637352123196527952177689627584106746787069824987640678741405374407453806402033841189774141732423900108622386832300196020434261880752839554505974231449545448448058653645655294658425242306740424925082608619822451561982239852834570073857102248139735002285358421367511453879558196008557990265774103170278947406619762276469118616273101875589087032901260978602497635140869605699251360255401547621075421371357320736088460675349429508647886217009442337735343184007758682785299459493426890484711054280210746668498477123377086743812110408505039285284714939448580150634879218605483182048371855184638517664657171535566232601708539901340425775773723350313269867999789545578026829287223806898899957463354532192466594946429135973791663313649888758619100134096206653384367848158962368753235872657076518538662374260040819109493993988647452547684662210485496324233364524596479996983847852455022448473011014854657726296439897770079353714293847580119572579389533229421733936705035002380076704703952616083521614614103238386454864036988334176354641742129929138805890983023882285385060272370993166412110523211637047629712392650733046292630376461327636410456109753351989952777604372726636374704337096766041880793423903428393593050346275490131916501957482115828634693469706209559348168370164743014810690495613909473405168824371621535223897926154614646689553508250272753984145782789599393680608824422845141089750185638684450169965926294447436244498982691255161875867482118861710476185679233119650969940798681550250406337729305946016448426003179474462916320974936290532929950689913628264209497342443435736365714557857224039713724889350797931250839063144129101614169478375824821414467413719436802877693386727714668496363422143386390419750050541423366211303208575406074883591916461768853932515587853616416852387012565305357706023681952454977660593654416912227520299357727222139987151548901446935270770710130342825397248872716526929757920352910680736371855388887389758577135538683550270792462488448209119700920636843624223706020413112466893408670087453832021365150658691342006697099426379247447490103135079281125169792851690799598916044584355053360280845437275126859989231596177581139259764286327817110707513963881508371247053866870352397961940160258709202306612556006311645055669355758513616634853245842883386175214159857608592280289823851606322391738005797146169229612038078534494065163627685680201902918663707649463671949590012173726310316039235232893010366926203235414298507096090667227005084820022590612732805447561288710068323465738076464879541581643079020924928495889021227592305781665084961290150466660176745162352664177329208642759411766668146537109212066218902098209523114740861431758707464525245282411322000980646000699005705779187845747142272509841750093216896586387415665824142242544912239818356279123552299451284858827214214499440657222749886332254244146349751330788258328548270160403191218780897450442082784525322436844709208667695224515623786203636646750829491615155409140809007169713334200690591822087214990529922863497037055767379194899248124159687773570104589904024378751094532264378297122773859896251637238853409378681938085228875508372677961020174489038876283335288730855968206940486977764631126319942707761436257544270694041863489124147348325209084610235210627103292390050021427183229866937011330422786733944573551401145576651732158782639540246484226472712515284643176813896358378402194474137110178450527489521576385312723906463501596653827764540331271597881499828963491861439550801055307357620302312983159440232485888483053573004838748483418207811543732924483300997254457243011346043693231073816843015733216649480454819418046793118483515622648564660400477784476118417947025200445729413853946537933057242251427122965397105140866444086360123466042645082757728462123571468559694868304125219032443732485764739932437892944796941159430797443381820382304047433523702318480521750692786780458252063122579241260082756531095549452776810310989145640510217717032333347164817191215756452571789441628591013033383651667696301218786014140959303605563694854451654260855603579523719066105039165643872594041896138873398959109139815448794929843194840453222977867078555444875192017997046788611130136487325709247036305251712827615359973477657195284633525374823151430173185626519217614659903528851599015165184521433534457289590576183354436924378608839152658139130602746475050630851054587391305039672875603504346079661000268588919316690505154290229356697128399243998620961592289850880591480352283693156819239860321578460997175079830331083270693180195042151840380540136450078301664861123546361340872433879432841607058256426532762511130228629669634812400313375075176112248669064757509170132537166684456658110345932155771078039268559759905461774086767190486251908287452330996621733657722759446301035899799889047715378971856251195085237596597026873354688520643957020358450120226492588668125508921697370173437324549357512410570891645415630267784365151253869495184222214182686774763079865652319404135189448087857355521337566150993164004674964336821264221833550277341893996887590271537577956585051431622958679675866120977820754614389986366900749386365265110554849891521427826388659093827336276643079972188673749526816239218441463586625639082990019396067225230009231365453688957985408758392918269342846155043688173559481434350907898541766336110086694839779965803158525495544258793569356410576970117389397136628679512063203705497351828293660196854542321978287937592175856903645087680025794814049835247140562968297594633580311960802826389596122874855502125641226611374101602261195174039662143599743508507240253290234734087958838572012366503456032977770234261843932211660982185074704204379903587394980675327627116411501633642160359112885162817117292855678576279016894236889765540612718922038303714260838356688038007427095521564734545187637730628945434150759449714373591580628255820271402156482232804342173427456464993503010021862465714034602692594834055958813742525896053956853744536854942466879807063710315886645402340914453594140256793022465688864986629202585685980791207798861197084014567025984619817638028008227224602111204584104155372805109895615569255875217120803993642847244808404732077144878048882770245788377693830228303612214222219983654472067621890552788569684829197787728470353866067088890638370726934947577378275748291213752553324572276946479917886503900791665549704595704786385362310548928229731440577786897700827886963576532973425387281982375263212519085131483672434076657643937028018385920334862763676775707902074551383890958947410041756544951151306210223811100339415539957630218342560471376692012963500693314096877811228385311010034671084824846758516608472708934355367260545241800437815694941191662482193623686165582029531886080613884375877234258715546693333469341277446306358518306926830197760852486674990495175370990636032512563893046060608337777568971186149303090338060133047163072678990852894332400300401942216153750925732508545640580508741042117681021786751784390879358407534113836374174131810855206517766120225864775143655996000866400173015414108101417368464848872922485282706630193694042349203435374336256380136847872424244167747288963073019296155572754731038615794548019573027595078928038445322114017787147267841142330194461422383917434347055402606181593477551856487838856925252056509314314992521968338567966602083926072676386808567493855604493088847424444203858170739783703543261424156813067063880034241226909252614293644150198218538313612005425790555729056934118235851133964322763623558280244493895096692525254527340687157614709673340279515036092827014546501213825101083536515849257175394690720317612864635666794929237754240343970420205665391493275677241768907894795464611298103692405282159704451674185019366425046791490762094413623390302705693079604120090191946873721665616984087934514143482176598714165222619419412594766038231786096141692764802386606210077556689306980654938755411646993800646269126353390334858198853639087359942553423944701773969683400909700534671577867190603189198171634772531242891217848514097559719694059022422949506103691962716822444958651024379793420553869539499801894899457146112916535300617506328735836661583188210732184827656643318997178846549693787782825612334306531677351109325215812032955742562150687235263818889965129019411609814522923261149905177001639045182421098289722243955562680077140639974569746920730932167746628373856514623766983950149911834045208037691012383026819528111964429926137768171912747625731004947908373274399812236379139769881708276124208088253759829800140641716774006118001739197109735745967345651787761396843332591885459961498549641999851515159173774617346946872905410899721453823919607909414676185640773581165030468039373692495980646667986080187447167418135133566811247229241761163396926387230312055513174938420688008624710253717032967466885306630044296974195251854637042518489312882065651752905411375084789467372424066554724497045802490888099664523519346478811407833130259741024897407726204600215038794092778196813682547868710458536595970723526943546859433662993733364263878219006497266773483830617281359445360227750745719439334690911641377819559874196399037494164150339768735153841708768394725735292163572995787843315966382742458261708107335492547576593692255600434897356202416849050280540556769211694803013713248851426009812017738493932108842872189614685494426170132434292922343543946504318576885050640696692284618579225432758413799106124693000791098251893399838942122675246540247358620293252958945251880074783899978980743112948626585679885818014175197161219624450622529594103170984851471597758751085178825017056089315971738792949508036624717921486274810704854388344831995001250345885641089636222309483354373902460560529818777089971269668484343758438487404146074744281663851259227728472052277831415072437463796539726265461096826499851113295271083451291052338347308462294300011161816982907891612822108096418137643075535892367281141301238463085150839214742663528745290993276588522639479115813772162986422799584737697596612294310565927474026475512914240025233485494096834570120927948120472884133793263062901067459301451050281386066024311934137763608725246283587912196354596335766349103599447253425605020392308297720018334862103775278386305705679397199879596602031156291496160734929369663026685005161046888163221909916201846515997356542076931380242537991869341310045540149068829877544654485861472530588213281190922908952296175456877997976067064040515136328849890999888766926458423870350548500555795895735618741440532803947881186017626956043360253753644958483369519179343097602879699308054407528606445268611281460347376972280345558712250336282512663820591437506722819350698718821422171747145367451762662950528787992616887584218894488250632308758553407761399160844314980527657410160043318996943821436323285554419634953869490319637517047074321736258913656369139638233001570426853152323941931341540364551508535071132999239988402473649509764803122052494065023483813095158247698005969825401640242338145545605793603983199880697686332909057219293252528181325523831357785816553341321347347929709493521329050361856582699234153046121848577139041165490824013440922246625252810804546861711227511740583912814221003280515207140059276200057775748875682414410383142182357569337867575798107488274954125763588880195189445326176707855196457195851272373575751650185694180388777719415442217717866293682822771329409993347749400402780489253872243628648434400254976329777918085800769323034328200546752465292017244878242213703638359849649159285701649015555068340705872914191862445957312646908171620648991036622592732701314511751932237431491260326661381231628638832849321667690637501759706215829132139218477331562845992085097729827742312857649509890838930889507022630806111933528769442042837687363255396270966540194156269866492077428604211709057073529585547896589453269380697691554301138891636122137842007691728180100077729765443069680590891501566544947579615002086225554828567284120146014440562087662055590497332817713166442944568995149681496701913595428351787895658817904265895926034123242720352927412210854083220649055483189387609072072470262833472206059086516228185076179594286669214877631348725048515542142940769365423810415087270334015578157969149144401518757820163639299064388115675342458288751348974528485517685281922416894634462042565641503215570151639331953787186176677353437206890778840014898973736363156667991528333042512276045988981528067962543684753821646804042389310164258049209024128726221997838341063411017912070457986688318400638935104078299036605041417977850867534859496591337459059039625280415595483815232072715487148621012442658046948988988010209281049183121203459289443981171596244888101865089451213928787514094207248651966722049594574035413663659933031475787556925385336950813710490137929057890475965887537544971890404864550320881316550293380944370066784785710815439094004365852030034232708954484062549465713922818068622162957858540606454768738766103323062560001360198741713447393171124099772109448890767742642898854535449596687572718407561815618201256837989420726414383978031854067296279058966636340136557552347850499776261425044154939790115826028639931450513875460315969458535027722983294400926466366512658008595560418587159837928342891795533066523346898746131482790162047727973289987788353338685282148889524928110817540404838673203849960829442069987784484877183578279422298137491720089028867457802670237983308474675535765735809620496166452187229984251593388178633880099186831301910720682465528557184557141338989173036379584482544094875466408561426714171363618982978505102890326996950993886386680728430727680795105164144806044732623639884655976996472362568652635398333212069262103508200302055196523893852947907502626395636752901221066625882215572343851936648939510238968439705322213100788515327911212728028173973118307576570706934638724653920665017745489720828529683432508699349883074783057892879935598968417184945300601016842872930152962386768026271475570661846979247239406903657441208895274330133289618371622660027598875662232694459457649207701431317523967575232354408656162153629653872289314752126514489607442705664467440586424773663296394192052666310173155629440492150520540515835719555288798024342569502985307486082529299307453998714448846835045715837964539930554151813539825274025870735353988459192286899333601506659296338930717726969679863021485249843921337689148967754693102656135120340292287084169890750001208622318849229887098903986934672866733102783412409946134973838024049655007918187166761965232314118825582776391881618434905090853487124680558187465344935685352779360285029670574570222232553625342608774677598749878278769793098089343689402469449319735087448920558257560368709015335569816322897330474927291314208629747327038771059998186996982474709427023273375496264218422543942486609858767165489925047063631644255995104098262772077773435487761327529095807054356501010535531879650328610905352581593276404867366642974247884148852837702992749831634313459404771216960607792744878756225625486695400079819507653390223117715115629121107757946686770099609585412408525307835808509701539825240773984907573145414701276955345296298893024957242015723748388193114616604905499100366639866819758710335862608343419647902535750988332513590079144761393961971650754469805511794736068297267498341457135312311568905585228916264504396409895940507340612041017987074002238267083063499706360747872293772515693898603322861041912978996215059605915678350865879593535147636903949463336370228896874113883735320649500725145801693768560010732324407386930826866272438951893982145760434312221553761347872613882580310825653823347226304810309670252960516264837705274613717401712915991621923667635219516079939738610658223130220028030949344935130063207813936751074066794097403960311678288786315994908493077099823768453139012657827298243911430757167725604362275147858868323605952594928300317516471876045431920521515113468040846923749270633016388596781473040859981449040759120281813927044260949530197584740772108781501370156713466472694948347346544324210000520898130692602084928877642016736089724258086703289830091285909150892288841611535803030800087710504368453562704458462777676343724339582359313245443967405451903865595085509997796477315895281079029548667106310105342548035858734077299896289350982563178825309177869982255894571181404552622048600850359892490186921051607641206873801413148702166513814981905092377468956391220876498461672205340500297669205535004251032055112498274334799851649358825873219059580932514281117975815767511553824112896308703243540165794605414400514898932369466287303496553123063953546189991225939844237476887306950527732464502462598154664216318071878651604973898442956989212802703433470406939824009589631246845608354690861598982575817312291225851653328182838525821667217256075711381950745046798769049106189223301856274592788310534725111519436661896332053183980437864712177638849614320811279226050041378937185961972335054809546710505103738661636173159997306234736776263602467575803158770740724199675637574288059256257521845255154601999083673483981037276841373317056668274549828646002879164684468911136206984855858052666513131220104454344905596432805631478928947245980587604308822511256279497076622709290779188860081151559642110044783132551200736539283366729720764916707063405178805098910777205592924726108143532757693441979367538344516262723602722143520082987534638207085133112993154900520989494097820406164261455433968446059342891971278069949888270367927152889328392867101075344718964835020227392545763033410643675276157558143751518018235252292809238586933359824276290099542543550802258038060619293990432859169190351172547832900499194340771570744017175299195335797823410532690316311567437578188875882357597985755066749955753468825318853221242811091082266467150737238828816556009109669650577309528661558680114837361161320405196329567820033661999597089122926867803369165912086062688374627292561885268821986620540756510457917243709718227214923152420396234045685065042694353679212385657701755911612759341919706078556060331051357648554719381444345015258908684198982870788302501186370710247950284011536739223120600449965949812683498005583281565503581331780301330330611403583630865847319771236144368997219256349453003908351128159234141051357971377644108633319288347006717693342818682791940001099389361250146893710012227974741094729749798456611373956109307727621362672080693908427906564552985670234486278973679717866371747971145632899306980325982604006466486939749264475312909203391022081367877400455202683842987660793981746972997503507793218964015449758882359690611956937165379227711065599612847218828043020110862331875953051433440171870271514848244651496065790274571709000972121717660445075346751654760344452732526667171531307440096919985015208125679804052588315743138020716389921371983267208008248834700798354052395367965905287231193720570249406813038947482428343393525796117150187526988615949235824636242989197293217286619000103934763897890392174944883782065424860141469896586618156938943064101231167837377629115336286246143308738423288897449924627660834104567623623813060864782914774298272482181034058796923294981078612442364368712395334453942480774890101480654960017629518326002865722264583859790760809343340401703075418399748230134448896825593783311858236456075409448642532222664720530090172869879119745472436702199373243215204483581903397812230554535369648677255964543430316009766266191854752504425996659873853594191434840534935722237116746535400376398232925625633887978938644321172838428030369028983559315835546858922640372424741025024459290410799675030811956659481001642463135217705744400803510026707389918190995819727614567077718244087568696504187704151507287023875334769380748974578762372196529532409668285353818179488038665992791377946877258051444964103976349626641613759195294824167056440282401656451269721854003993191959340357990512911423225245043541907479759549405240471586282752901991181227105837874111706867894424342795739648732037173917723118700561115511571003078266262735365354405961394103087064778853694176940565021675950135347928536859557605317754373126533645497455874210220710686536684391646521730218800621998368068339785367893673466789526192486121448786424221252230495073772880556028643342025067361973668277578341758687142387576489324344991916953943866352598154484925653071470560593127335302130212729209895661211522925988917040327729258537346015438548276799174971179154798484045668436440313793760737119896112729512437713324026922361458789111147501270605344797648136380942215761444943970982599456288366541182355236179821046354928640370171330241631434778560143365483250690828682737098420874679400491799380864108088409955153933644146099539060924257112329333543965234696011338060622747447489066259987049611291962675007782335954536197679847107142945715972144721322262669705449572171184907966286870856887452956016729385254542265561663120435856416954820315996782623991552003924502481141016803961084088608793699049151852516947855343377357308910739051048438066203086509380085576307049011727775548266003376342843062655457469437900389338139895058946601097669822846950080008313220161572463715891132265555627390627597851783814838814178787997249618298379205470106973560307001439750859319865535210521216255878790233986740738078076207555831561364608597784282495008264586988540147838548070960364310663046413098078149804514263113754496748045293427561053273207517289071827488128748096903277684363166796363736104663962790965631691938614212417287694540796781677563053513384634169660322470168963494197164532811320800479877882354364301104757019162387029008556826485879526276441208318855927252100169644215796934721833414291063940969294443072616410809876827948712781168210165565668297016325441437819299591234805961586922744485903836098432913687425597774789902651545276200536608556634138427798973180364098069752899044799828615772846678477593318638710540127284930049888289998917812894419658577431882401548043945824503724677713053876266885695233408249351992024516650273807616479042738482863427830281649461606609347761668435059935375243602539796950193576082174762106236178131230055700943537657269173600237051882926503667891585350126718134106560728598923386981843807915835274655353192373234052232380627127412221046557741900571697878346908537748887048137330695317029514488040267263033741244335188341691482488302136803721926741172487405849867985788514951606331595513038664977249989829822929612111700466237245750905216402413004195141480328274874587529727888381088593782938274988049845153622462329363141211817472358623414022917695484351853088096502778034686425296927473311282215406862597227140517104560675538773105499019833122876408675895493530401959521047963197797007784834966067890664763403104432092095379090073737241627767814618491700093207337174484664350638550185583814979023078748013456043099221182196908932415518463064863736159041659436630437766604705894627929305355975190206376424909596169675798104241980730670314874781336406353696515345147220763757688021293628817773529168230639190841035573343550380866441687735480834135385652574471729074230804969777780229097598129923946041429330963624660288057432751110914936763199485589169950748381025538159160470314823111109415054683397344190650131617060753754458110246650892304110587109342566917955567299021714063897790198465451028012163863510035021983403911629379337205469024849974840006347906552193188972956235604855927764161241782158270017889152147122442459890773357755968068274190062706582981127215598538753673910582726141701724675589284862871440734517291628432313046022319943920274177956925128317146320481000985006468480885954603493970361620726280566410546408893133324578187628090717979664976977835680545453080499261493127666442545279973167678680456865310517258175772512002207152853173266602695536488829912228983862956631384849855688444029195824515037970598753300624803952858643963875415592002259539145729970241599550758416925707821161885419526635264802278868614564615042638852581633093490238861216321103752719153638501721243404569015347422332272245658488755529528522428955312730455818114278998081978956215673338482052975515868228063275552362576027042833551345143109265436510097441885906546329792884608736934071442708800044948764990811032783383349478755484600312741799083391486763884138925275844687362166071632154504777443607151129934210160900263089002465759541619679298875034692243565007013675007579000456401942700159141580837069583447638644101526029310858134694866798047643728612539001563582581543715206111228943909437168488471413453928927327818579224492456187689887898206472664343855347526874382792840084193356721583123648415610440671933400057689179019475745846537078939749983172644786619579569890960847257824806437276898236881979700134171378741197028702777465096788221028889473360028335893535783379396202304664499889927835915869129444690282117373613497081522859430834022967193646441424292522129616467725423225641881753190119711403506693385306720277206109584983996372832152239933870375564195723114880600712068035128000650519391008408719134122835578010457701939820007492414659946400677426953921589954103855112052015362192277718252074628308360972868697033027102106951686706765155479064446569377049883194201288565344972673691444232813228662208795986997880068863709450127696648826920892240640958301286088813016997101885389495360200638650995310032845784446919690545637392827201902213660532723917796345313916672356945149615791127126593732149586618973757139601193565651868914156973557264915586893619207168454205268496611285316668563087225046290387394062624518697604488431802053801997270145617075916913089754108339488001132271431110684131433630990500220826868412044483168990920759082020938032079866271070167625817238863581276954203008982106237240596001625990596919608282638912239533902319424651686132703471658792132649054020057726796265610472893084415878660428514480267312641888179288107083235312045832655893713361166511538263303397490369223194875045568282125438498903283450767252687422774542474367878310390313096618345504008312256174428661244170612573041643573423724394210643297526766870210584643458448131637219336033142045569586149567481167716176699706986990236193259437986290886212908102716579420697259719577688826196201603313794654298689910125165259671442773311352603212847123277786051753212469736489500906760924627276798251259379625238217889721504381079884586782153785097706985641319137447263639028634371825022179039021219421680527574522591764264642571875667595324599351349823388386614057314392722039089153629006890209039723018799072618358828153142673347456016647215897300642075646360241176985085671747929016165236651300397664335583071977026629065537674768813356022430414787098915294855335501908255462643593074323367324448465088633634475285167019514122206041407835379195773158067266918348533518525612126061860289366778169835353693037938370335048833737142300326156149025872950539844788391934798889463343380994840788105551383904461818140201073367580322734675463422037578047237029069640411700032405053289966841430863395328789171340740295429087635521842733938027902516405188650281233696032637785750612792736606528764688554634886995276224296958620153243786331342807932341117756749861970800087233864870236796656075796993281195068580935025497733815027240962377391745898607133363597265726781203475250496247578458591408148110586745407043501009438633784544558838758428900205794116281215070106560484782239041626336059910062307937777990148324999534883946898478287557491384685420022202267172832881739395471914621575053188547828824434787709974466604472824293644271016263344730422379729047486723409502529968212087862544769594387892994367982445376899385630084115231143280998449896455124640303723174022291156607678639208110404270532072672140007947228516032161837871591676767358457749039514530317260854740284032314044213674529914060927383855747795240099921446330934583554593169356870648070564570358230082870536543232951613599242665675062648022813204163056414910819449484606202549509948137929498678921468688848956708103294955866783033433678958182686360401833449150770339003640347598784043505071227787002246321117252839713562664941017569214008136214241578566530838845364634345794965040717409886579005177659112361701350496947260197220150811145784274268065789328833217683260497378145238033690967652115812054656803675260954820779118566054513571757298605263186781051969439346864266641535638847750870160943657360591556971844481641285844150615299697129469931728353081699767326827680653528985183071710792850542575008628231512551474134747237376515024751544371722344447005052028193845873867138698118163290431474274719366002490434645245544861521613800031342906026514325528214030840369366889030658822071704791762145893320743578640559071067925362956033962609304183191482104041024508364964364507397210282498503169689434190514325771436944279246846208087392329489604519683082174796588797211672733808581378066465845160766530111220369171213001619265175555799294319677844907773223589347614081516299098249694309366350881714863510962652412210622536714819520047651333380745674649841071698885432328072462231338998514830378165769510729345314790838476194079601794516336449572137675838708070723122431339074359210152068053624339986819673404744647326236014641079972747641977424971701631118890657512971025022622104535777297119815056476264447282333444153866055010569968387881773230590889874772723017890572651901381059195405186886240111832310821254818227927428174669078851968933047878581404861343656432169557123646535260560530344579841344409336553227925307414683329042935987144900282141375943500012943629098200305872694867885741865641167442347214651053480224240855588421186945075029370565088043130890851634141367978568027290762170681512607901663495382564070336924119096472423258003822535886717032244419501116582673006271271573807876652042367449648229085537139989590620225928016060814817873026144308484456117661884183996477899574053947764486701999164679675890032310034740734769349544102727198261824627585427266017316645058461337439816143000298626844072327375172865924421239704740464589719392202180443122298741730265785853305920304465434052765962937353471280426356993198535659085362360055176955979085556096454843373763334059024463356371338250117507816304892498735508630892509927283479634429622700034220223592824671408561365881305570294757537915750602792369486696889531489831794138963564496190347313866949899652634578080854008735784731487401139529665487369353322657360081576626423464332470587372980400748632894833118337507490639621432038574218479528517659291870925206423030764066263928125791892709071246439574547217042285126407024264232594705476268097134599406096550825251624166302074399706249719186698253189178215838414491377425407547509111019532239047294967491388769443927943994537874399551284926700389929029020498349092137688035476188340305063007729926322155394306570096537902470797907526388335178666037417024708644220257561537153841345564490213761438739729376635350284625997209432979032671709716961337504578584662054207187279178935796695690034800638507236918150807125875967243250869422204814187407880564161442374243208240233847510729461123702986400135173349912836733314263071109731060545322193806162819877876835968546196278044921507209957119086579475423592616415974706487465742602094878304224433940586266063312707043369125535893562874818693787712219932772398706498022497569964630944433652066256719311878212503856024907289062242995392993487617192329580291487675613195452541069415012779704488052080424192117621673022473277913503708444911600493574418262381465892715665689314976110176032950566829731547641481154866186813023166100864072248687442777238851417341894179102147673664292769274263082471972697607541360533109281100835975930265216124551678018791171041745499993257542900508195593224985379553063249981641962448271070795456707093336079074645769315638576587817890541598187508877063745516415713005120970290760598540715825059428608536965993209834704543665881508635835849212139350145198550860897979275747517589230111940854708835125942792911186967491889198463930647155561177057726724196380260650411717434282826462092706251411334151855872179942111913198350917150051650205528556070823231398456448788473568080233534453056802997120616142531095056127960252963862506455455909489777198375059242482053819472936332806860425261348393381591127519223362638467558911516908466637365740552263690968792453038292159087297975794091441477608894688129723151757730780628647519613741294473111962271036774452682062007101917240724670002360013315179186846009848160848629308688957347440334295894852465047627941974367631095319084661358700319847813112751685779757170600969288556769368380678506078453452691100828158720164845371847180450003618388415287397568717961863886799256116837035360502946454119121999213430728153532288656332044314114868968348612099330927821989907177889709882054917290257173672796030289791928404191779785342659623626356702414381663762516026079955135170458409456154849228881919915241538347465401164075809196985401181131363482806185040690812307136216104857209798948597122894838178962957592358335420922130406864958220456761838258893242404148387430684962134835330718988126386652993204336744953976782249095831156197267928658793700258429620094733317052632695887726583009826180719329915744743815317288481226228590288447386645205087082891741818907240584051700125502747075498796601460467037826467980216814141610213110313999955694790604448212682052953367249583751447051732545479875938842645162004551784026752526343086674192962267890429262244085093977235458861065655549983623871015530086988430841237215133368963801502132289278251993222088475987583863516242368575405452418059297717687149930628384272221762292437803339360826946717349501610717260900093688403350455401939316393929393138799895010237103083968624889031857007757988881880314189833867483058067281154966285006593644362138120562036013426260289314374075768627905661084501146152943133141829148123781147553589745875694242871668676769581600983152220990126567790983779090512911310235910525953523020768825444693461440299337081556985038165477474948436756868984211729300274799506171197489628392784624210721191753527039852203196074617281672989112273013357969043972741581108280656229882230626310934557483921956193163717947286259738497734181123642860622496701563962919328235099444259734058644837904647373124222860170942510840757415972838490982225866514223274001764333669845095060763565296083888846337141264124701216785709497209381022509483917869663010254003338799586849910979022973254967043290840307460933589958699740594883619916728555586284887475034562180925330478542782963961385225534803325263884229070085485883182105806336681608937861738635190427387641520201573198491828561028610493626867725955044383829672449423354190534689075401516007121435154423827700589553175344269312910171798356951815560464223574184509038232748878594919399449298437802797686125531144999584263734639415824078885287371973299104698002623260700825736897223057996004958308255867504856485968188024334681437736842370092173139046734204152997927119966652918490188517057256600723636799735176372107483604567025291230727338974816659164438814937864897013626800286276676467707533055352583006815973892307066925830770206664622053337169483654482600324148666164821373771730474333190479570486845384347636999055398674201255800941282222957775867598836368198501995028276503826407416048555763793447873607809547630825877484790025667660222543910947616245283936709864068916602649216921651033642001652826944867373318985241157994432701632690334944060247335360333834632030381012463545613604391153436378089570110226347349413165657283016098831950090500636011465935216472657983192453211626035268594316230020994201005759877557475707838261542167865184781490570279404463274990532785694095635301718978994162879025949233805066013731245281814396335930571370079637487489618841840667034468321976451152860300963674053386747868401415574124283803918236441853441191679929230090481568513800309986761779565483903764534631848673552713633769699925423748363326433397047822671493317957601313825806042771095463684981328538000505123180523175334672426107275129107058237309144938812212402309497651395031297165117026695442277657438463173293646741914846168549996671762769128689957143612478474136483503415550994198653713390051108361666353017240796394888204457664286681519044814127674667587209006917809869310243060143353162251768434513626892269073272549811280786667787665884155781609982028517010574577456026217181344193705180239445109280771736629605163614352684919941477842547656531324459636231936805466685138882089741656315532794298409766363183582310786751278356879226406431600940731591151607933688480255991360884242466284935152198459473682466942973933772869089619237827945855565415410240815120579729042415850148567923080381684292509630461819835905098453426811687628815064202654199660815072417953872191751839859225468310448084093824232607442355496632133439684281784320343554372387170911708727801637880918113407303720816010675258094985078509027327598459355442921950739472259334313851407853434530808803128560523900240749725798848466993950072750719615298097906903363783746110276284110485443416459883720180172608470818683687804247958968758352388448635637293935623403218076180779194821479078346362412282495874316128940000912658081003935451809885791506252938676436701353993840268549600751589033745293891265064747634115347208895309374824989797954622161508848655276184446121418079928870199626728903696043622176837686556703538851244707145469129633601098145991691791960502457199555023834428244235057990905041931455883741930784174332586848789632097728021781122278838593206234483885892452405976693639225480167573065945435747712959038381843553751288907029415507846324405653063540140245408740289954599438238748910006236042627228325311594319843056056059938327068126264513020665465688496297134552552260596341958937544554933758097856405467401226894501905342448543516941264210609411512275155823201330956104529262700951262920107097959964330226675628597169354993287685288295675867939360932251731228300796258475294157322545170122952055950616260869750428317660513210885136708856032199338318236597245133439658251833603448504778188240869080806903122612452074576816750773743225007217421569761280188732390608062423686882602541829027224212220496831455916087117224196988645988500896816020420339971165915862145114686700671739645685860132922140141965941564236362434968534531807969458899789331758376322049460607942932122445224280779464218960379629296139361174938260058029351088002184470795902196059339964076055713012779646013233783119718970826109812896505333493013216255989849032415867137020123149384405238874066746373531308612878576193987854706001885668206854567628911715498374203719632763647730094101197910403921883231157224357209271783342613323189136047159847232072690680104016361345519771333760592759137495085062223573185554704393672573108631833586548154797672744405954056064439723844891103795506949066159526662812857819660204496445515773607868120755575129280120763822467246602213634590506194867272638947896091878654545699270952810546826839272160791011933712662201652724482932104552350431856469752539087796170975042599580389900730012247503169288969225330891261860541362618627850806739092225293412681586328733833989740815327933029352564432639448899755595185530263650624785577512166200806938470398086620511781452752768224937581465799259725422095150345029184114703046834054218977020640438213193973596338042687355336987686172301470031384880959629948784279309794732994763726153874718166465805779890333008338511025999632197310840637435433921569333270161707800704024982045589890428813630592610689925404730646585528114125545695816679837597282456014837041949635245620200752432915441703941789747517356019077155471354312360633650261123503112832826018978184368280522452356255643593698843365027470956744526130118482340965713451035193657400339269306051575934033553043629240206238519531535778845495434277845504655196332625096875910764071893934497313148515684657050313562394262884444698205775911390461301705570401524122047064588609202464861749804297134849544388137002622779972647546382926835392887587176560689644645263754133933700576716902768745629758740129330353817285616020053610816740198051720737717838168211750896377825384915303703944490800416013166464021357128689897887025243617184857351089252270561589018629450513250836933417519017094617765181589057627487042559040539886652614815301024991218797944778256702598703263944020486480322318110296517283844055850880086784663966217780758340139255032155140679250678073959314794864221566230311446661228442086853888640502338115112543309699063543279498224707971436825251150197756178551329361303090905606222419273751444867454209068327975208248698586627801276251312969543230483216453672370958167654125009072003750711244386989929166793105849271528470213098027898257766190533820260552735379683696239011529041617080603027013584053234674783959549673179256709586741590020948049966447020879203886040001468285899762930851591376704131092618710410253114998341570977647490424664114165304127458947263573549386043610647925313944188449682992585720493589655539598583132290635139317889173678300742591591847396948409937025093680208237752237463131500187132735972730308007239645500400704902606500237086874550634769515856408461694935286015818817370050667186706901633983807325123889251652463774903702606175780617143768372279071891483526969253681025731226766199376186208946810216110835695632034477708124726657600260529467880301414712227331447884802930688229752619861129297832893638104872002316968276848014093686784808308729041207978744343991397078348906457077095773956530771816137015472849302092325972614933894013780542469709945477827037838880196720003756944374449455736505080373244972572223551519512420802679832159504724208490662995181240116280311838460235918669163218467033486138919863692872106041115704017583578257747823673783811094012852941402056688556598471496392720784308977623191771934094493300690095868666219776331151176756632342567279493733504074339498198632848986499390693647685254993997547969076656055782921982173591351137252090598885298728175443721199670924511394852510932185855236183957654473289611147039072882454167711717048351203371702628708364927139163806652504714097527867587306773716779993476919099790280745007431081472292330617137566820915051231094550670643234343650708209004259586650656674586057392804318790243181730915457656399939668911721356888143252240543283601632220104589016363241373638580914794364658719520353561935514727554624884504383196299747725102898379879881723590371876006545711679350070060989143428910191384472237671003138020266527984298151620534801107996811722382935592010734688569783458392929384881778916624196968272022689610468990562884193381874771777743024056646789452730652344539808471668524086921277724639606352012245051641907104164814626027029712324022019615974743454302062068783727853730857221234157425602977418681340932188565897873863566052002384609801251692462050451397090280087964952203098447813248469281628512802057313107189202170921810416645763296280010585336742827299787571724809829189892012499543324291059534436605743560758068179421417127624161411859098294615575729821495314577816075280372435729312851320875198592924714872992862041357485642200245402385406248873521863073547850152799475564840504679060867509928733443937618570747370106384590087740807669455236800968882705890659588542883331742269753612501125898507800844545409377807737833220928687388679161580429847662190360431318446008036444019594160272811084450291794537178754632472896352377353195613662237069250369731626146038028445382313160559509753282368906474782096886700194683382431599286163202835871430784509202217808528557038582465144445519642418422689779170978542202692505267465692561546324925496443609747254869648603705659949375153285434432881650257210316294178668082076363735663652392497544575419721744973173101827452195579238514269072619924742038237888826656168328167650933714181107911869010205290238739502148786906527516407534906492956946093269405460413860171580063456118358150357428142665289667251923529818105388159964505367171844776003237224818554228970124992077516385907423022053604939327030156796148719624218254277039265645485399470454543396760549757432712308691110476940756394829923123320087084268339455170373287763436540209510325331296210646164711584262864772938795999344327533139937828054406874738259326948678719320559742441835721158462968604416846010716617553405376494963206740577607701724826039368984693864872049997728669889858641799618468813691085023298392467741785991287906369876922606054445619147065376658962624319944527620603350028170673292857874688649017414798634813778087614383621160319027472082495395343243453633957160747906636576064587569997914251047971772285074586037049522549028630280334065695882171229178145601227807990184339447777620107299320168809747163266368556415120876670427673602114953866959055560697672458285067502145636613490362799314435237790618130693364744103483026924645665907476330356960822273933278879906131357968968849655321529972277272823288506964411300510493698474709795555942752537895510541548479738249137060291527984701687651707559050270837191160704287535448717794647576909642227411060871236783357827832748962195176040618513096558351463415134618882317944463111274619779427913075087745883587724381763439955208961721973546981062846524186451357056460768461416580189506620927038894952486775844725824630343594677331604589870299799746944955495021615156260100154757502576026522737057711811622068973247199158736883707928894245836824207736521678321146701438482594394374972562295241109432053325564370266802489904741167143636357427982379790103540648503433706720758676820760387841833319765384287195054606125771745980946151708880081627242402945804828295410281381333948289928319685576587652185883611632531092465421094308837609515162961889693428800266852224277046789514273644478501989320015671567127314987991803144045759198118085002365764364778072274166226334738933626852232419910978232212596595980016119065708254219024617462336542574925284000694220864822899512525561083425615147122985574733073287260587033615244965588699013615589165705568829277350340363404096823829395734218973782681563500117442705564127948933653408207418164106044524955058268155012407235425539106858644340934519130820062651835511879267076513382435052680057305825607210596241670857293691182933552856634640527253858103031112123400117967260121049456242085175591487125153866993356683542637637753308975478341510353637046865469208100467843372520817375866705731232829063157841914953947940845674923690639215898122978578086011455719247051167376844384231858535863056551912866691289818693985608234448085306854553238804108568274638763941704473345904372697678868500092857582247966926379734055181954193524740907033137468871535863654618621885828478131981087192474114804077961203657520154747977250847786335939354417910362122868400237782087546275764066758049709984043221791215382836350390725523573708248676165529974741499693791775462725800135586976335690351333661838133686250012165844327179280284605960638145555154205164273858816496545222524179908765528975746027860400775253314965895254670003245157077444626793779144984719192663695309803271697938129566969119529366420143279056642467001177452633464092984356793835544518671981516948766818950841494935746628463916460654931977858178612398246178478690649584531787993565698838213974174943078107868558287416656904552714969470599137605751497185713284770687624069889974791371356129053949051588734155011885704062248387084509530159905916463605052871446871011721449305388195951478882667639696581642024303689098119422044373409711763335286541124524356193293599985289665943960296151961755801292484195344297025976449902440481301977614702766976793783484865504743055746764910898928149483002366145125667889834042150144768084750935681271172881288327114678833617655361135801346590791356567664877071756325215734612418217874469292600291425519590654828840784605022809000094118691382864774704729476606682830230205459748020210691947801426909785988019791266067966477368287237075168006218221426987000800711826700798322669952691300295842739571287000280861755050354199000157659655942349164614852333382107746254066092101813909447000757985779280852040955673946281490254524546840856348518672124285502370077368450150649232028629491487725999752810716404181249939836544239517383885598806172111223882544516168137161197676763530663682056324915637871466246840277916306178994775702063892359526003058439379859281698218033798504513088050590031181889213681154621951551039255791368343426817756603503893541276313933503544966254300581209554433706219016689159237036701095229880884872967405605531066699990706563122389578727359261292913575108424945333322206313427449544048148249132314363008695125550219720919547917183276194272819691912582339260916524468667705177115162405847982206519006374415864342841107902584127188884220672890346145244763788379500799663122934909097355178823762182519000920351335522926416165191453716451642799344340393588064842754079994760099182565466110849920062563415181861088192374544160202511958354001525417583266349304962023377525062262739756284609179162063598720967101055470629003119531806515443288485007336551905186818476905041180510751582177988241362036554724216028230541973742499748548861964581263569837983571090431037753908144711558483816843753363060975990369539676580307345448410192912054254278372617953377830619757035399121896516437793980995140036590896470741679614638354645817022201297081414541024081364834265275726627608827841133629589497730916653532716614755940679798923080651188137500836327158307701228429648495707722223900422647662170533268526189930968721399529862631402527979118521070841006925426709386290129588397111808248310987967568173369352159859697434881718244468796288490240762887182867054977986308872788943136642021783433810614628942283753727616043901923598472425218613286614000495871847219806950410579665832160401156881617701014188070154915730417220678124306949657055403138390559284112847696793893986860786191033184358082716572333403623157183167230610575076382658882500320895885895448826661380544531292955851933713840301224514230854106739668245599287246210511262651818916458723442666549125291131668296157563595512906563250759907185611334619358387741532091987724981364830146439116514850640073082547954562654163673893826589322946262955366395668142388254619782406145294780085231244588207558385698759173785619904864707814958514379266962696944901793325989813196828575139970082101991442383797133721435738213773008426832618269914075994969912573802942450454836525621251692647302542295481707871036892086273661113920446837541493140171201011001315975758992600620728468960775345392827469589272017945289235602996438027733430742047559466376102089349849427825839256046824305786645499472372819558685095380231841511591544550379650969922171937591840955931771611882118539154212377299066112690596172950826282393969546008951161324749502276157037844708287022388606601970314003921053500035745277079870856457660843296271784100979698829093606843669098486641074415567708394696897251109926326285264260587735837027761400870354159541801951774501442041945648199651859277662992740010956275363523675201252720403973355760558734564418867701343904956793597396502078453773309548223019774977596870265102331849332489010272706919372109039189897678181837956405710434631446806048247574882687923173211301692941137463725087778709596068652019694388370905430025300206368564637570345756987073668136532632221575803304275715502385182136317815530222367933506232200588954010711955792990574072632617864411596867399502019696336484621320833238181147973025981890850071456278740004807577784302189729709373296692846359851261147168622897635640008707666356229954852791112584253713350886423691795666428460960618741167325357079179526072345111370319950156443181605374025008996466919479059561469301385932940823467125942600541912472940437513051832832359658283992958870472747847468981038408944090947471247200975210052928468750922703652954371809999850071771917175085478502571569398977718358919867856093358962626461091446110339645784984457927622434595222120096434802364980234315044907751879665877922726415301876434679793059291328788133088242912194498151379628497425404690111884041506249141888216968970027689573054220928102150329533794947651375265330566803792518905771746154196265348247823257228074401293123035423483552416342491042782575977277534855383142220791121054077633294422251846437300031097686209762636817169176960847527191831418241617744465674322910196877127492855355618793411340454113576025182617265616448474624665378644108895119165583611831267786452767952252957011011066811541272692420510746448754035178116495069786689270155131244930008090453079182693204969708096292245362668681911625274890941368649830441254267601085146194926442589705125131227590671758494630180283614067006794759332440236396117910716279483938734991339653290580120677607302120943920988556275073686575685635193120305699165493872491484912109765568947406403817584826651625852175460937693970908465915607397245268277214188865917724007315976115732497869363691526446830550568043827640961506882307774726799909692946608586225776961915626072164054108748351330115385991975817575346704354871120519392820952293943832810702063687658185858947755099475780801133155349985967536838273633211289104348141998940776062054752241767622968919933368171223332944985350756064365607479355227747083269177314962994850240380429324302595144587421836151680884468414930618430616322138842720947643666932209944135451560232726333206951100795177540307798598905596986270332749125645351502602999902856065673382236296212814667343205745446337689207665557868783157260535727666416171094282839093228044618763603371268513756246566651477285355117940404159969912487743668484228078510856296371635327390324456710054868237836452288170519026991927802050308703321644588646497265292363783116190988955325159057104417729193146623281258193411435283026817635842254248261635094038203928142488978835760869652152134305096606032895102657848100674157903712681074245808976129955878384845242066221228464042267209323678561806127825366535044931656161584888856448328341322584929753919927335549535407741920866136690984349013014864244568310060146326257602133389851591492719416488361212833889533017010870382479217137624148106320102828465069997218505661584101881047772162779781071427965235468250835544867515175082058700998073880587726132776672552334727326166640596715712736054869490161621710306937434887066838877000685346381279678294383378180633818886004063932546088852102334563202009531187782200831553789315842313677928131213152524585333864574956881477398426735212205204334892149411630150392952225228965301251069123158924168418534417710486928448413811391646754352314445863187730070389446106395081745371002266693394224739294953264176195282928356434877188342115695680319339706093928755901949111635201544285251405659475025009155229691843874496794133149180773080849925660674931201410058711850566124512285046584882588030091207116841258558352967254742479416961781628444371922230275186215662841868216590947799205246408557363608726587619014157780474043981242282320723219966957026126723579370248341778644331687544104631286366669099490753060894071154586887838111176347298956964060275897982639738397483178421874005829004676422004296754054592718455470026693981368198137037314747969108390548656287817484395826334126126341093726940982968282916398115763298271946245870037898573253233733161224544480854681621202752662389913661823295275506871484309367495310656436094326883795302413592380828606998984323694903872153752839738324833147028378851338013827094401460418649034614613700495078170381282622598527162933541956248711736569064916154261222730703156584913115562898162240348349950301388167668487737411726708192007015695894372105506845375597552306240138282364216377722895839251024532395640763632893990714316280855186367037536143206553816396266445694329452390239582802853074871034854785094903985431515538734620132883153217948688379021052791749650875221660710637242168676807108253813031015201234158124853433811876558258500621696309366782305894594863230542393879622193978797685602628761555832071877528150587985649645470847005037440591994557424832969281979935155395527727785450077796299026037620414766105166436842975379377184697696140335740531647282901085410879157490674237347770577646449295513019185512105736642704683862500087635866700087379349032436025385109486252240675230365119492300201758623443029731165052171927537139163846588964316213818758958003979882832673525446796406845000901939269935192657717470496973593721786402391299361616015017144259210243095630498023368133736745439406124318631721691392706843897376504837439317199375727136907720788067516888889624844525181826924912563707562680765728762862420128353300169613377204888690772137071760101608795355619433569199866307189645029468063676233452040239336648232293142313643489536281146848508200736449834929144904670013982983572689122768036271434398965817064883276178886113103011673239645264955521006024523506458059512533123618415646269377658726359445704986953717964591187326938511286098054902833706592956219405024940523028604036054848366127711006625548805658437016748415731121112095378294544905209334366334390653067961781507169729263567671528555876660286734383308451600623032001896424878812871296927278733738280879283517393074013047364076744153831362169383016093995751731947358368249529981174458109369638447767140084947335937994130408265956069061613403702332658213173581475530845974391851976024726447263744397320905214842986158009151387917906467366817085319522234560954712043403704742938304823005454650289070559308043077129112971283662057376788410977688134585571114499340866744678766128470329379886122226804487638463209286848920888291348241392354605813627765685375186774813879403669715213222741640571021568426847272058535885230285472352594319371225501734250172135230074366821567490322312938410191834229945754530947770531058253544255423753128007662112483197621589730012790779267518915975404014399596053794988024610841918750700083579188708979356054655729049662812521516187363311972648576825984689210870493703032556197122475867793635830428016236611429793197775204399080247035339828891737576151192975695599639323579304662373663961655760420384562007720166065006554850100244747587780046170449232047101131813290066979531563649404374727484679457142183547313364033658605504126181060628346395927531327224417244784874018812143951810282737238638270089577318457013627344558611373023794448278434227924162708189099148911121233891922202989286067539361335878103965366741993779872204874862608058132677639558915943634178142037712900554161868990239179200854741162374897153344137697922229714858134602493694500115479018932944950035414926842951728961571302383932189914826450224929455938713588458765156133435020162248876342599510004889835233542218591576537185291122801942931055480001668936632358697562900628294964145454577543458564047884587650321861233892124827406235456829823803615474932873966493814275356258617625395194680445120923880323532055578315944760003544037265648758529143425252335351712490928371847104987863700879082236907651802263572238970190534578753069669874081913927128443519455455856414958393854603437172252924012081238311551934909197052301302212828044079943327121390933481644419519650417970903696191206127336438171584022769147429980391715043832857510965872350636440412424731517747871264562734811495604991506391574399045662656790288840996410462838288782143594827821442655616262804041389343584014080856925950692409074011568429437127537222663015598816447879464208192527856463253021716050832752330647946037145010052939704593890629161297911811689524194084742151903248318063664483827010458851520375859213466196150192910511854114121412103850063275618459345034581101584331850858622373887275457947571239209947013982445061464388071696854770085536897066503450551895635181641995978156877916369774815482386462138319098092902099048513403731873013005798593952623789704090615473300525178574568517411691989743781383361057131487283953698510862764477416858733454103960923176735333086675990941903943786380258184365576997551524701013103660313293525693359363296344416444095540734550887933521158054107965173737152495703859392401707165400693521633874139335491298259067374080582914441964107339259312525456411347292865070684575727386342321157857380006755666346544903544584035439752622352591496555496003364713550364152767430581489883831548173242156382528163574839780569050576497598794182700722531048747172691226124754111877264648476882739577687411924917990353303332038801114749535431507915433355696494900570450595959051063081176311302576226549451466591506103087423875538134419238734005728585481511436103541247847207888072492313462328774272013033060526948742865776085617500905815286102320913220781283084159646675655382760481121297492823822924099748462290078158962557094316562067372044164122637256301567329090651985556832202893607646574701544038383943266185609014643509219518380735774983949180022461435794911358806430371591870115603347857413569443443890625942732628680495966493384458104870912202941274262029432731001712604353226043322029256154806949870872665173642773211900055365206069520659560257882376088016803243484346901164382115140869463319870911145005997827690495724205068170562858236685134299393422031354880418667013131780485842835626252946661828829039550924508796364655555850260552782287439861936056668066952502043392251024772465293008136828423290337260738485195835219942846535444512735690793351250136885745946024876248555123929022754687106372818150344435498403526240454927405473672392394347143495566625281925936041820766606810939368971394487475686290793576439893149990289846669332924728489012906009969844280162173769860185465006608816753222755729091595285538017274985011569639949030708911138757196626264111082107215600903899316505298285161419716375558439513779527198915517524596526887198006621765406449669769476038748071956872905245364651196414624221076205261389340732976661006220757551498081201414498271726671205185021265858039835091998653162069297420847616107047951735288922083925349844182843505669446883887773263442724345994264059714820193423024556699862393495384535772484201426724622326818529315022789544033350198517762531913510274361446831190309594666342155531079393572632266169826550165976430999752480791998501259955071701333834931118807226946517932911064070398842222748469825882773059804594727907965260135081952135734404295180340721782386070223876306065062485676142618462660551606939061047482283152970033018250230448998680832215573685601038788058517803589165006338340420149470967539694260667281860443161778902377980596774659845406467209975736989328590147265611411619516117337878825316721191720406225199440426073627008946414879339285615567095093920218366260428385334853911696457265105547266574318118766560853567514148389290584328719381765484611575882659312737427526857986925224479037219767359633750329642764726771209247250495390590851133836453981381355542724870403568812607359997998574112917996323748175448513878957453640254908419251487275200187004380502705770125374210495189549220133858561250844775562550312056470012162151917473730034706938956370352793256211260646995963249597170677923587554720626852668928013484616655870864332420864171631059405745998671953138365242894223290619316551772119150610667968310585661642425688030974515783264740036383150640982819989311173215228071298786312756255075498086373683087197696475140274685090403943738156089626656774115769700884639326314935116770534991093794691614053420483428510113009319617105811601961213563568888279943223628907528055523514928254468548658474118210333163090169173378107738549904230583082141304987880762762119670411200273146495321641707235400252772386268302605597496744149034208593884980940747084472962138361344069834982455888395299673417111164930775512784143081349580276527534493522526717081942879678126342651051522685616979327680719285478467013265651645039078268175545554100492818353243729178124722569287729239400912389409433034161484464692550561796703172110883057963651897647509685710502014512681490474753759774032256787676888025429481574531340101539654569152157737990602122563665940910971124570591731349359277522387030654495405178579165457610992494668274909873115875864273306863930627798818284843820054030606693352182152394002416632019592605556441744937979917093862785613422904211200845752880522463202785904056807153568827021370876793926199820128863910216532605344589355374857148404614246310797859797250325978271867577939476928206711307573698827253706311992150418651211117175098083387729841995497244873191659600979077494714629548961417990039769405943531198467111188954380637857831279349744483253592591369586170995832368771376010185099946061260836597559422290656479589742749029634996445439237341466880775198510418143161922733319413571364868372902489188810965147229553138154502918791064528727985905450101028531929329115949917898935479823619067122441315748552127579902460585291858304411090159663631185796641845885044935147332673404201364702144618244144176725861225274857560869827576747047402017509648257626207673692312812161882307635319331196460278258240412955505074497674112795268500357446110716883718723416594769184658044904318764735641116907409211502447984624756177347543726621325903270138767702746839868958095029417371179103442480947419779946606815167082441521279353724451368643890762864732687454642911525287972959688108319255235553583755441289798115975883453105077338104128135469667578181805506727924901711997381844734794770081568363157074938297178430608514210121191306467086405661619641743617265609261736378130954627708945878899438915966494449447721926820099803281071470632460028350249802590172257397015536071509500610456113813689696073310994355563305580749304741608120616309141190414415166626228548647211163291955859212193289837266382667847483029198719614702440733071755078844253724947101645623740271442249102048259096033527605164716992468891034362011816489975531152486138700865121521761572693508027466123815070081500610660736741608588850207492833797631983947831427569059665398497758160678195132236786924087991090913267864163294054329757142541096950191099616765155450022464770223723049669362361405337936939923890552652628183870748076776354466720218317913571941505980098904191497193845567992475659961743409269210621126379903941984508102575249169886855928956635606187100114005716308094329853751477034598310124798052068265324602109840528517055000413540106378043960441265920520563954197953777071361038478748828141172106032325784447603295424578787476797004630767315524092376270210795992204018676338782974550324545897887254963006396623115621651724012001470335122264165727197651373489001718313239829654258067799721828400781605544790370244501385373501361679961534437777032686041647191708966441353426324776704141027981648765896458891583735051879023346651211261582333089079624243254347701605497643800018842310829090795876689014945224150033247253245421589913978391287275616818910079377705817669586746790281559253478097635074609769287633837991559753694418014749317182036925172692210766759160496233966544068326167533124112986952380837983252459118659613707718336493134349341540242182275008829510551936204675017268982649792764845956966974724348827030456651544290055542592266309608408249415821613429169153796780293052366298826251930959335566612757017607005816619180485387081180916853584898347036670104641989515124207079951148699023205590932238067134815753144506760799501767271203667118813383551976986462071387881128486863497962242742294196385454183048200915456129974434882538873787166309716667177455588953663257351693950291534139671623253093586464116761389650355491333712360643324765630539822746084060475312564077177016308728114890051265301732255605687564168688759428818634873839028288252634226500395250294514237894247254753550206483315578479507483587318314754543972199540894954354201162825486893567617564142679920604237890769554425031496616016419358823726579508876560099660509815150950320239922556942239054752616778526990473332669231118218965460834141801291783918004861861298289560036400080342375663893623911654328488801734431385316354117392468829574729257153098397299642070125007072453652699637731373131597856689764149892061736079681835855027021415972435535469714390683803020132531002735227526511991038358916168778961727256663247755995551592939653566397089813837319738687725620935177507722020854565748703383784184926533278209186020677267734527477477222522466660060124157671311087093376648016252070997866189581543254519446017533716650523107030182031429220936382525824686969881814250924933386828189633597329719406700315532645018582954934310277469793717073157596517398798085277599570658037523797152279794732708981919636201020593717998058856995313139358398979556718033677827225508343159081202689277883484268554435743056127205604051513842194386950878098624382635948154436275580575230394199576071632202098266459867243488772025664968883201909040379657087592538777064861967154015316546678696225733295086884803958551913157063312193035139442952643535570529312754285757972098210254409711591658040766105657174208145000721856372994697566979350355175560520533907221391270415595071544096823586695663368283133502264998235689285097369298601234482090915364687039650785833287311312442781638324003230905123101931520633736539104284762043587265164055432964996393171837670112673211325697769461911500699477983729593159550481609708751255312569439411186573086341146996187828874995726361672918601873223087533710765732719667358867085771676139049340029153483960277086265506757481698065871121213423693978363200650510718396848269087451992138986449359267302403434980138146020863494655250205257318635992576935936665006694036333107383382495250258271863907625211865611563872683177711681619495490537244769132267867759133092781124516218130122265039562242463172101444413219133811946271808690877636447591519322908883756367646269054356170796020707064942789621517145433208155110919790818724323764142564612662815170592235229478438738482545433685109700359031796289745290660781972461238748336890421210752919074803077144116715214853954240324480913543921682227640819888443175932811930601215580075007893475182452482408967613662572126762452086556847722480341855950090813576888698705454828255436935183958983956366587108924404901444742953118633200706773844455277288636831597585940897275773742796778545063579046908699940571017798891020745258225295383837603234730361549342019041160724044553253402446877707967560983803017635770770001637989353473553015562710233532580890313767292185311390806820164548074055145503417153374088968776716971846392138220210480795109757704555460269479394869265326289806868031035286239874987155046542580664890794538453604497208265340320066688509312666946193606206210162824528510117676119326233913620457157686038121363452249500858552116825477502124316820998525755781514548381276176735101139860049857734997753390619850518474552019559318983222325484739876122807300980901655318206822358646800787734736546641160058444546214703007613308857188758231788425510036268112573359946911676771837983748055910154348261253732926436721086254127875800384503607357071343728286823421710158064845023347541614506801518587186885712479157890137583407533214152549344299345285879608593202731371063187385866921636366442013175096670631915166636488510338204685403379807272050118167850752597958881539840109780783038504318445976101809249824494562264090066935932567617077974098508791007407026337887998612105205834871879746369083876000646942466329600268273599235267662037880572763704236553645278542644053875927686671829994964581659338653901105109984307684942958565768568228815695639185398939865878488571274001123393972559572451987562019696161197214925426965374154273796906228979998407303040127772655625093763598642450027074932138181139744980699541013854183263667486667457579519521987197146863820219937350005007553775034446593349786890033721637634725756976591626437485434085667411557262437389219886760468460088045043592944166727485086233207411097990118772979267887942679468245045562367898647169604096121877527010637314294004903407326098372917245623923554776320452364678982991130567130422698706087873136073154153954174912161223869402594910190318700390552860695424738665836223796320226904399972136427690245493545671319662718550475531968622200082828310261107364157751544706826865139172029436246510927577769568390345307386627722685961361154746310954861604774887654146793574447463251886323714613900122363024395977157563179588216021735987149040326559216620455573989938878900120118080603629369930393500950316038719238203930448567032840673064196490576088038013787310672702205877837970038010354642294638083880855812067195600349518736013210301300309925376959893662450288089633279173483420927262298273000877802664373770782197969489208124073941268031639935092024838182475030372818803120587932997755694777578032447287150946914040482753492812783889198690292008580163405579450732644183680685611119459016642086648097851109690174374155121158213015967794581797867280419213013997692608588402553904695191636441233607946740707376092439363788624624415504230933186077862949385212618512711629577293997969633846363396219224880373104701301083443842549428416725643365184614838346778712515700890424264561338835924302365479522298843045112750778364179192980391217983157121320750463564215210674489415517315359434358933257096259105035482740333802330296519043628523822389293541533273222468178571134398023291717717666796457840475250685664328064165427974757862162967070364083276053054189956861869047389116676535641270915069219918057609401003465528788163852882553930353147011223314380940665972180966451194277059412968290900639663419278577001989637892878325062901730601718291072423263062706075962992824345472767955731607326440387916614549543002345352336064497108524458066510044904821614260747946413427003949075221310891175204626908283629302865292611033842191046289939439761128112063464821675761183605445340584998160249744035081364815325538266704710846244126375620381773983483352098678763353392321476020082092752680486691319896470962708282388815521943409394533046286088824234526394841353464398953483964904789199698516562918684818387873299565147843374945283510898012520233610251128075551014046625229741634857618544674026680684385777898885208583232826943164842448379138398731110980954269576405265514563088840243920659361047148543476160047157201141528821239204030457780757286214433960496949513830511240778226056752278543327062174640053445493829708935532937771291531856629426084015579449213022274818549806509707225264555328435722033037535991843687112489202957740980663794153012995057182448360770052583411792187957537686821374610354033696056504061539087603693977489733069407325419683232241860132648943044068595402656772473647804651079928488263058349245471800593429813759653063079218359110439112596745142666681366981065374914770424512255715092816754046623205056705540430428414023048146649009049684673560670639452731762323394376442762352341669212427073013116125087371331634598907259413318835439235670382279804917472232730349576638784746463450731616625240532707257004131117078765424788380913837699701176666470540419503184052279019016291017300833090348582964033950031697187648131493031328315914637158312159349597562852459197913159508345682683272853204287706973849064537704536188091672269684480001737363678350709189475614560179633330509090731967288363103827009649484827833308083609735046625734252503520052698306193281669474110797486822330506379132815395987277067895372042469044339204554038185331114717600882410362341632575328537709798306551606284132473544352600224360954174077110135479676028173817731535426401478036923057994480241240650794798244486468795573947599112423045427037540025052260767615469303266296116198129182340551850040506935936466302869591363047586596094115139753514326769038742604892782881504155303212017583089354964035222667102553450364629606347210667246628919996299575021016002432398605825191395637587447213072785226701353976975428270703085498325489277238713759730458233944026853497616141127652207169636099880678376370003073794712091341236947568041917252848784439306421114488961687800068122398843664881735131962556975693653685778725564567640489563865993800125596045473405212514720037559982524057624418266274243170352467423180476886364017626198953235847436737823214730262777718287472127508388548237542819417728543554809149415995192695240832337966570197088243865655876413525031858333379216094421634254244927683204666015484980473802330956644109411655820639008114766844679218128050212641682807786198889081790049197294914000314361071081534744317798309045339354560275208118855105854302977160830446296315328175753475947206977836242239011140835859474825073215667404466498660815974677491753784712097342459473062534560382375269360342484550664771709277191068203376935293523249351297315978630520053653360496064778833079290539525523150004987622398337673171436508591214459113436074015826092093996091725364239159734651416605837696836046044089791261512242230596070995169708999846932722122106843655297487647358565468887617963446886480222502979812012103348826565110662911114004947321068448398470669453383386186790284962418898998871346012089883001926411903970464904724772767744835001641940009619736369748253521765991460639856710857984463882381329834346149495819734841920856563990878393428823319389699461398433950869115382649085758758967204544686379438578379993442149448349056124564342875686843784508789732698928680046258335614151040225761350314902636149768195983249410289030815782062662544302954665431855994507795930057519731087007630766073647423423758705776499507524159142385413205991202879387447771449714713092149139410770646100298759275533127337827660842625558990521443539121942459102209083003190602911753012196003898975672808960547610350045708802846027613613149650179730020138415630463535917765930311693061740614566633628200181220202988594277191728066429842046912623461183411428181163117790515805681187759012032949810432220929061044478789993339421549784461499659442812502024624038181085204896960130177816389664449519510533973876741243954334583964779368396982696497969353846031777759925900766659106338910503999722422407943294203253007736252243259854811080226011422542635595807685333267087507885833916081937310609228938613198358714455263670600866829376605124767674920563163839841444387609561764348422887759524417503657988271476349996363080349757510296993726585945099199922815172293462355321015145649266911331561655440755605489657629750507171871536992035719278816842515920665225370873195560009274647240098081211675042557811899043363048719965794955486632886094382732725161103341760099772356811254936860675847096942882882388810671630158827605499025749555251736097593235452106040351829371532251537309610552864927148213100674468140418386965671995257966085386595407568110358048921334878106716552967835487338857072108401280409858466178244222926487189263421832616313532826135037206479935118184144379784212758515215697761298630100962733565008691257901508129343650457371804772908356732149412549323497013128288860668626485078157753981752175664636712054568800775896121486007160214486153776657932284866193190736589395557179767718859976262884878338804517907289953493350400903863224631868638618414656665379726036769224974976570459501299295153616883435909254459991332124406042949508895197982806983115548111352082196680445100225011889239448923307786381048586801294808622893371697371536337650702398485459718229936475697687910939802972353513460682695134004080359639921589596458444744225489616675887630902976249844428465908450126005927938042191031150810323806898632345870265922308322155122752802510063599657797233354439802368442231212711209202850148923656609928213289691234975022500206684518914626082330817943678063627100880843030251960043816947926857789712557651412647106812909799959944916149696559808470836552539561920131039587296257581533051081608560497462559817694641073258291277989119737196624049496650745135807862247635525733570040168878770016263908654804037671493126312415923887564594779106645645261421012397874317247501130922102301706378265049474724556679241569217186577632902221365412253270822574921671671856728098031682012642804477197421937049584943859990335962729284083140380313831329182894660207489479170363192636620124775231379689952060069137612659574115493255040021929172787737581559846503504090548388640397196458837986743127388845923309688865694561793953354995769596809231106617660722753227156448751153134354119146769542456725500672584401114786868304124560652487944140218393534370501914340914663651977321988850249057521299017062041955053306155091309503831055036965855688470155068769402804312102034595744248151585304173810557951592040596988343021159419668911039420205132931047953819516177896500175375901703916667042793238888923835442105727462160609352669473689333486478459534343759940690408189624237164809642394435138118968739517607790467336877624092785078017374078939017597661353519123531631792476954793945341341245515171935385352049124331266280044171625717382974975548231573842953774891127643464649436588445393499774402351564191869608115153107564861781157320044883955477951402711372732661374682087970355619961139518184516263693596985653770560048287131956760134284658027025938122385077986331998857979415089961845211346180081460202625650160939127981886844993122361242673147422148145843094613628879284523433714588683593411581534232549796527282769910003658082211190131982752509723194934054440796976483773691174325703756438155546021429049670314782926929270519469590867544724006565977051828443673163749881307963957721385653429758698457642675916012556956127473760495913298171310605885033865175117828336172696516249090365140716288935935996298937520168955518511394467970653969568692024092354813100699272517134297441980575872169428826404483726252008770689649107095412482980934423790278144134094371118216735728607144995075523449311623492183085145457028440061818060769651531060349010794109529021650919315741660781675103467955566257393525523169137950687600864951173419835282902482978921436323600312139115493843197155832234653350043750563549756089673549804143232538636163197262427060886599034923598379846449898958486924596330619992377432472946588882816420931298541170600549535494095601316772760452603694579816260385984793181556652593401193903908884751336769761771020518797913090052663597973467318269029810547782054963739315319545658992625024441182460718563770208283705063894865404121786924145420889865547319468314794393614161606940323021421633129309016988277336821854186314852972762976785330454417204884348902100187603098468724492412864246609594293937767003480502019718766355224145032785455496971861385032586665476827742846124044439067498775457443182103827863812154023628994778067737324660375539399018099644756963501332347192858359921684522194820352479314923431516542314548907075739279907235774916680848178971398762770699599943613113992267279299999326505198633866869059073549891695311807020400095651789784420751877028793977886935693261298481874300526581815725787054644262287723834170762823055628470416635251241522742779742117852433448654145179172005547164888191728428377757056939136243895867897947509134298108991574211033577967783417924216068551076125409425078346847157909665221282603300300131778729042627519398903689673256571683513548989966834097449419828720629288886445076079499379610959904019578671043546312866331590413952729736942045951952141920211780374050942113379920180321195956887707602962364841176410764123906170949533876100549130335719025820552999506261533675077253301528529376818174080729432865572554769737750963326796185596013507223368906670726175430113665562709322664808737448209131963796969477840626642618204338412970754074371648504093720599518475488085927740252407977970980518402335129695687767122671450100967345048825082947038880118654866818587964797230428932858673099895954745297921263247796352575338035824657118523722476948001027049138313498979051294305577756373704642288394094422432797588069962695732248556676508062001497015018578848925741784455100258224897409366488836132391650626626632168772328906955876005195302869994088772158765106478952448990531996560605858191483763413722154530556640246390127376055300310500943127080888189216154633902549484081637904806718570463251303775890807908765274813175262223932834825923456589397672907622912145562079232893051824971064817643648856654210033683005225360920721279482575907676480103294791747121892463024407127175568871945088227067335851426877826116727306873214111960674325485430804732040886982240566284463626774061045706513132611418550778094612159005031441317938449031910412818803511161864233316759116240743502287438850839171673186290368647404035487538727992433693075400859040829974293198866025732231037687656899808949562194982488563010363971112256706291849176379459400721467822311134901423745372313882765556406117160303469615454050154316316664534997571963488066245161002224598472970761391870075335274594635891587471272978769224975092597032537769189934850520261385110633413943528951034207014906560848165272296339736281743304573584904473245570555010836645261672650712631406010013916133867029849725462410347449049016550082299519412293280738300403318902319097974050561046779397026156148697568889867234342553945248486324423521047299727497715651503719083682621836551652029073257850536155796600052878446343460648566410156084350441409111974059295550528580307836070423843391236262775144152359413381396907016491174922062195297702557632891005133639559776688385409661767996661737156161088568919619025876062308064667627899112294269368900428655930873597314657761239702925466052434376596999843496418706098638379152458052743540208277597806824237154059549717100630492541535423352949904005083303552859444676706356853615714948006051562148257951472429023490731293044297525501385088320433992990953812031971616726038308391602380088566190945759996015180608533048852956704840449950794108857109998699133339736894475541699038155712794240392354089478671870934001894306438194043522716687816246299420432214649878845422821485811646813473708903001212371908252317354901835038979221058393664993032433085655705769458571172892944028909085252158996280935536427221791202988657440866417193045504161775953121728531197587513852887984591510048562707208439482667608826469308343946200325690154407802153016782289569505729268914176031575647264432056556790395753412563909762095113582007867685941649727068371768591809452727466401918702282934880328449668202873428266144345256656577324368745246505659259678747180390154176409938421083799555758748393713619848419675107112526503561399697915966821690476513034397330302657995433120164871056207592731202058919308556789238305692896077049713054066771273102945381444451908382066223759167105829659277994056951787403853718674170733019347268311252243927680112385706856622447071555480636558525260863210753927530214533920001710276475170348562960154523104000206483594886751829095148044305861127237642998205307999257679169808308365473285415801282701359984903569717863309085516045514938635725876217382343867773783813706627309712662173109279035561366957090472897249048407449327388382041571182662646483110830857056521078025807923196908319074465187777929725515321894816829260471260579181764034142218741263941946978940555127999826947185521219731282209843160543811586210411384041427310774986753451750019228333038448283067822261238237205342364757233579578806579911128710110582405150723919588070533149681884291841266938419242494039800391820922752160718361142818111680563138902639533643040850068531616077511337207285219356731025679271695290871849934348078183444919401050639063180134665714304028047336207954795811047235722234812534050519893144978125592524531521907546056499371646842992766305297246436803070200913648783438753894030382350527462981624472756951780225489188146046786836336238932032066780897305363918217977223761216083989621991739331134834727660199114772019019669731835905396367455101053370014975266394389173267463886482964273133764853214839172528500927339451485296961561016480175140772091097926194973803734402100331461523046199484750868514345100180919733552133173532812524285283292417718324394085744035242564458909904979647994305688486495765329180673102366948720541483319838046749667042840559522626081600880975174248533021750599907080195709447871875532508809068670494833547401349369486162583336947392294024541518971267793476253735187205222435243780019783171185329582601012442077149874143083889173649790590486682926190402303104264744538324596426113046205786822851764056931596913853335478385084205329851451779919412357660110059101587576618764973399030794464881805787318751489166778226988711613163788539349786021917279847498353438916797045590380276339285879588789247765000996556481996108682767630792445373411773914290403304056589272089571838928549849158637674872687020351065407569658331304131411768826618770224381194735675279377750683088657269799168589023371350674814796106275406539169123235954630103090659149292351568761528892481084515071138978670453337643269103845513505176019238135211138014642081285197738212409706952678723645350141038870237450732378131721369783728050063009861567415728960872200530156940876952043864142565117130274031492963605431468064844978856601621747781575311358928119900443162052629409771083423271169133846151677893783745987111403739687075060454015327759951728770135520583466887304307350827001625568407240926728964226519852977043490018950021063979384636583312266411166061682770081843468089599982241829698410590389877138670312163932344977767286706709255232204059363470843003985618778042203153425390415914730455423949869510554716344258725778267959041322462179438165496930501440841861764196480296419671486915282864225000983108527207888131167505031162981527373179646223546900231374805375716714635353936891979568967831714707518119214602578503345640989591672702939413947557442467565806954128013741224360743030278059605552204760419475195527783335934737960460825244399953360813163343202268164523511583987484715076910666463423499182262133303914652909771242503065487016983092069077682169057579050780143829960959338304055594654052324156331636596781689347786714213158863730888892460843484804295998292942288300162412470881640982834041683674118808568170632531048975143942623394825981089579217466667814709207735980583281971444805866227591431700606101846983586264726774033089514185829782067752078896056083068529215408193730238934621915011241977548176702038123347225701076106957449390322955615804272649833856103334083583608107818429730850385719441113965764874965128883775452127153242374153942945262587342154966467529732943353717501953813097596312373797349232000678282768524673884330500251499969887121279563201387838328639095991133646863614250178620320044366138739352002763207003707692110609925203871424459028277244119718167439932611700104489275333422572140786213227172300828249032613740266988239522163117749990059735283615960907571147768989229966421695972761181624307793831254486743086550874234248353007709052599138041250435612671775269331659740985884233147632108595719764913060862941589703761892530028669361553986723267175830506738567644926925147586722323878779660302250980071984120175143853098341730721890098876966959698763536261836809356818683360271087600360102978174700953161029037556859650353031261686850159765327468697880490648396232834719904182422387164042173835560944713160830218797402491023747200572639650303076366391388315053396416490416080678968033175383712268593055988306168591554776647729239735049387484399214799131723627419777126807885787492541985528384843243611109817893614079040649974386268935618118815732111221087300788931064711739985941918461062913550113392088134572007648340958219716436960844729675452508538761286663567903960318023090490349013199175279020726075359079922280289107723431267926737364071710462759131341312547896428744255704774002641965464150337811789030021605178426209046631684879111694267005683892956413986679450765904288051231098830903106050728057397014413982106864786577510101684050815351838320907621481232717172324947340030173514620696022096119324308824743585798141865391526603180032189041164109068358198733621340249725944238888017333607620462408228452975388585224164854273589019395584851330702575710283736402803580291058031982351572283963186636139577207405673009701074041731793348253516883221772192994683060074730664238272453406486366285237095197307469917245037134168477119136630574764121809499013403353002005792353202768704916910466944128382478829265162857050930426275943813770719703905708601283366930715379912011029759814726764381275567010072244808065486437448899706304514890321497335004886685762065445336805011488319005926039058458799114094042247610052656122900997730325480463219528719988100455767303236586506116682113161604184659417946966937690512160339893719683814719331391389158229827121873796283416006670868499391034847903492990475448383298836933645413753457691407860242383328477184533162519018930371096146000899321414744418177789266155326720719505947135158438562960677769299167587458985609660360737881286485526620629066254441542794824223779153582639790806463642446360465537264197465860674714772112590923722450783947100105550796776109386194236926548911580368924484894444580498194422085760259147239834835226141424880261974436636179374862059311922092129966614656303469124563335818728035273471819705652065539733643196142131447458254597568731656512726438277042493061052463020860372491836678527647109468773018369533428935995118540175564877666043502850092550850065325502234653978232310508321030070974506587681282752066149206111354476933163409817170436530919550930638110576177569245210068873290635778943679640003553578264513094637578976625533774690611963116869893316315091732168229225701089736547440304710866028115715847032830781718159954541778879967574460891833273751163560662264670536379467663258766662874310000334569087239739571291951595097392274544756711235663230458901576670746673334446324185660277712298399605613737709783478146840778654389691854402515419930557774190795091442117071498384288250632442732297022386388622999217788235808218531149765718674420147847199064267832916998221821224746675887095821570914037846289611709975801249588160349872342104757332039255931815804220700045378003237668117269427913440765119923213102763001751695254507263033277316560569222231986325652056041660275667405711717554187394405010392186531638490044102557964039918490193066437152049628656027645913698392659288285568128601071244959551005981390724984402641080455021878149319804267755673403835436073620953070341819061665805000979291245924941258708923549413794342519761986239092024012589713243165036768441862569747407629795347025415414693238869293380583291974106165176123933882850489725943998023036218684648566378500533686725444462925029763522281589839122120051362887511051670732526410834890268110730069994776070908268968366880633486478456523760176387863590080795676538762394196428595847984092848331874977582517700441937857628452660945951317840983210931076116504695275791156614233834548299528394566022205682793022329452530904375576371764439840867364962314569825877955969177743084044444930139741765619910556498961152974231014983125931346927343729377654170860799831122132714774735005866631925021523652483610083088839263258599025144861850694447103017949476155101683225513373107439951015650642518973842854121706388405759560555195898633421815707161385938076789488214515705290141258142511267426511024985258561523159687481268706670746170810111848117938834009240014093685725142524070866758603320263770613185976156358375441940603185072524667354793517132546336373840139139597719828398569229215507764134360120041722506913632656093320789237609282315606778417742849527232744567734055274252528116703609689207975502812832750296688829169902917822398149479723242146149276253774023186917936722923444445783583609960667327443726382320366993532824511010835762353354668741388480415338007673148048156289917394694226761145296400111207573689818512681295728924496106389818421400755565582462187841492021511415261457785428483253161514900842747410002886722245168596366286714663068487388938765358676186005595679789137896571236112809674926822772404464950576124705321397903019056324437869051953632316242732917230820542042234386043356312272503440949835053176084721309990366354758397152471687251859597430597927547614112413936487855308761299560146087680597858842892270494168896503932975713408180574629197545181679337011875628763455569619009809592534289312492226391208869999793912354889086755683891541652833279655044620552892172011117595058798370904404964349781074338173798510898190468886583833684790732747166951061455334137950306770574731953037802022858968680783740210599149757643437642229504266172387322775711766339156890773105836047550094681712218215289852567006004857217289286706995400634508770835156038689220309467874889508435271618819056872351897696618346215024109832424401083971748571904321920737018168946721257831851349204886074125413057054001653505451855804904930477254271551397305051478912006680401255343819628785511427949251910646404567495721889890857425734716242059767901095677606107483963471567476244768096669577278929848456429988783338627317201208405711224872918478157292408573430624648425417858149574131125479934738541916566007325787536861241877403370787787497915958386834560123362095403286038487214176365855957836584451470268835316869624428225159081562807508923522980711041644991412599366165786447546016273570848709931367126269463697090101145596173028068945333359406830659021978054197938646631332465892272106666303299922693133402128680453845091696706625999771436650254167625608325459934320765658967242486154592844390747829262823331701902124435908098943351730193535295231314993151530960098775121467331796026350950767792060953537252743715896878704084703111676682880996281700873510772246422987986417575752008296954250091256873727464513499042816018523828960060585800801635848195126256762874488215284973069236399966074141784885360051664028256947989312239175558737682089477209076101479634368239445977154736334485646069704542817784262524447903729768021794218353425483160088902903869668867137200507206312506431172716031285903892846389919850589491703660366203633287579944870001151796938376549276455816555604939946294077136959821283497129759665968672767500725346061049534858493068548729976675379678217195041167459828060914765704651621255577123605225584368607082165905336711917060009680149150647629626211374689047178096412856916138343110820587457626966586458285958142081000287819859742633793486241818859843661220825812100092969934983389762667826736895734853578063516017863083756429935467578001336359905574543073481986707089784486257594432235044369630663521830758392290722353792809815524833345881790584046155721731370151994961227010904045722154255604136303331071479250663901686632538109738472471334644068030121834575629484802644037444735711062383792571505983397823950457805508768209209340694390388197897799470521341068224018849764252861294392412488533383553840077395759737193046939356360400775812325250938085225193139225182450946612434758558475427387171568576633350073915496490295180761844458653969267455003266947553402678316457252401305265442289112066653992840955783802811035878711968617124414038909090874291328934665482275867037298382606606667514185574576746909564286693497308027054276009575770806747983958779750848202929575690502981966064827642754273332140221439353943008781655217581733480722469188925050039839967238570041419946414836999298942807040013778610039851610664555943851940917282566264754024118882988244108947686529057513025455101740778169849750345242115625248469204334763552228630322963123821760056857179236215067656917470244930306511413518454741458433332153848803481100345402418652783139666315879955587654246485020619989964404086047826659567607389556554100456253448292818075642424413841635834378589550137047899558662545609023285870419073221423183133363115969567229812239132262033535839513158537357022554757749049561331889020462053061889505151473412904393724278615246572558724768834181829451925081028954009596862545000644317393332223891681468849856353589465191741306221527323661455710888581020496128214003917066402556300906107659940691705245795725832597995343960734570968537542949273258692314782568977582415950134045959481261163091883660636124579973390148953030287349524371787875351572444106681163091761101985241209903964388779605176233363084876042899115149068992567707194453471908430168853384138494283340499390549256416466010733024939280322409170238733046677444238263645038271342797706844425740378273515084071376119266476227202128777318170188823637469153602203834011813014863671301452893411017733761600901840329768598023414117042137050265187092034934469404666799304744737363675086126505067734789192581778725935116908447285268956096606975911582615478229362706482939848512184309354424430870116006706150419114532243298995115840303445441293901455484098308731230281678278408478944866701971873690964339076757676508314464867348690415938899596136105847745959499519093459034152852604097000371725861365508685970822589263289228150348556674780202710583712412298103127538091221522494334966561309338921184455496454895669504206276474902138874945855415508398768232129888224908853457474795559012482808501263479703049716495264308015401114224723697232952243388000162924657342133283644185271578772425454473792566254863558718245909735015797099611159976908529051775607839101406477267840415085311221238433499165139689522116231197870047794772425915090169919043003316234729439064971113774813891808364308799140977317494873556471149516256914108765413924196250220762105732393280509336451479926953157420572259190286806782621066834799102731974720988036097954193011874799908839347312301198557432019252686280653862782043128377654651649743814571141996662995598272721822581214309455055455289649835394812118429113903402015328971042649644130505853767440040726964633580144785588549495185424592607255030889162273953708995527124920765920474944719097111797011573484986390977673233006334404988268473020060859763080152864696863367916199496367815651085779192261499435816084919813852403047992729522005969220135987169816513625694828868849279675437103435454382546025567583937261307151296149436024276989903965708104360173529498054896468492179910098324310515099078420744312567123076637765241519148780818774756693288166955437093021343915919675309041223526111540933465459504846720647294207449361038553301554030319290016164280810962598179932507874572801184753163631631629590908313134735639455033959724880757116125986920372690481030130548213620474776405687602638130677882635436222131715528403725446607858622208493070138661153040674532671054411831954247266284256637174049291607523625698325477847836195655504403905394013471331120543323734919723591965366252951840285941446106201910531260256909204927574031484106426095555367831014775251929838906403980612146595440568057269741418032856532828293414617462169417277908741624420316596484254128676076459161933457842780785534231267418520154852201412204578300225419640312195143593145042580801026840511909172479290205818233674407929368783808582160668997381027761688545226093211442120177931468224445583452855224787252211610448963706145085165666031882941123103434475628145136330859832475530181635531729277444283678649390362027657025888606457182468739146458457759572571014740308411654817788962102876237923831317577062905179444293123598655500642474475541500943621265363398733065509369192288623566941168194941877292173399349354269809967943070597103863789649910057577543303678576160614037876758028764805909883437884515759426278842771768334686895969241545728944045329513940787229129726580398556588102694425760458160962524133614462003278946082437371348816461413626775782810682586463879509351202659374007693346395549543106782849216082110353566065628899306361890501870883487941808049916425541430263485636729925634898165173517087151615382206248321526384495482985488450457561447382886166404834489542785985408191651967823281609856437500049726968070553764446036648878895463154775798438141441219654802216703553113452697660848059570743815422149263488229661990635279628916449115859995444343002646646258216674950236743564926169454762046924166269303727494634166741771206418548902444790475031948484500053337060796624332801106944153519622470552179331694413959253641097261324977461464173910268524927761882349253845523032592518868722669590773911957577425792081228299183011296831931629750833955524531563837992341191012498220883634515824144546873068046130468356861676370168676896371083776566914483546572009939261926561260673967657921527801943258222224657220292357314946833837165115463817035933797656675071113198955676781193049256353314253077552695121968013956548843563393369003554148582264341633339263591404551184825517834745104910222539426975853463969944763099364331567581113700414741853175475808222667348410375726733376430790404023281559248154382396521293964451729752140660094726300817869461346374064658095278170349788488416072002268836682986470698413603470018355228638663796267974426870648280448510538184430746385923948383764817771303146261667073158984359842665182537299678578446891722280655848804941077986073411326480812018338281468992462369577398085583832598039363784508825499272187259498174683458511260148016062192866343747943604051165953328260242051007810631967750360502983947681634334802854818956855068532719819617275700740275851902029529236368712288837071464473073163067310014919129802908343073057552823765314726399765153780434561571177341748619096553148673919931162933310356373217789782042339622928192982744143345139775058166020143881700124243359278601117134992523104556685000769341578547282824856908447257094205854066169055970257685178866260362918461550502689596652124325554437028867509621880890100429694317854126106859692619194309976968437615534177448301056774282297111582657891071887636926332727082400531363458229872171165670902788466726097931574121036966991356572996569016550609582168121904532635520744180248630092241747246708397794245557442633255358203257478373556230407367310343799615433522331692227317601388162305216613332524938019131146443458979299330011923805772183229811443216315539743018622276193772037448822653224215062987025657569658657211559045825788207723098665857490032686490984614155861509104098290988001691552069812563553303621631137759165948980938639174966260347753462299548458379610729906914885775551713884074857370960784997170523286864849664911681908132314541167032582389647000084299757699824387157943275365603810530631500340976921009100148643221624360625147127232275187999637562691198222066848315997968022820594197223121181920014086157861003651075755220784926207470602237237913382707451260778262486630618586845368882280943132648445231729130708072177709091056314858874839446788458114344023638398906541213709018863750387999563070100948031811009255425320556809380374095413646245102435300520715002816956980687567234013088095136384712602344602507457372547363993922224621817085606955225786142563536339081302652694056190360603467995912491152328142708689137764344332195832657346107317022380965985089085460071632697705961193028229996310039330195421056910639386962971391416150396453549249750592405357744004058286323098530149385099803181984131518563389692713452997177768368401279562441307087626485017703085614844224098960008249565579712321677129107483018720735464226191438470548789571091226139404108235941432797061387817974077529571542183352345200053789279671571158588587140440409406058601537919735631517711546987249696565762510172121976020820551214225364416475893258188561437204098317944433574347046207102654728476771535116871186332071375893509064925635968378864059486699618009797933900016514415712850160069599127980818072454488132164835453253186568063039554106663487855852390471451752037784687457401882367183276412738918222590833126537857235674516553372062944239431271803734566136276039708098902098127672035072524068215904623484122415857090615194745636050853338635069182399063873832213621072115317567577519187037277739804692000067734604185224850097711956363311708438836149821004740345190530871706644434902242523661620127927744500746652911141371064154120247404421450281997002196916728124132624452179718822430639817783289409632169104269916818308540424979825616003947947126671452978695500776460696020011537820816732657054382312733067688739110007788154582343747016631969124209729634513191024593571375625956916544575766696728522616163245645530583611671014106212201642856454615422237599393713494649593086060706510085565043770094222133331605057190089773346379042909926191185626017233268333211193093709053971341804238344033704597638993380822893944340910506652999401443705988243621160598100083904601474899525644991610764563665568443444005684182697526343728164475716558884012766227956522682058100436850859736054047482072119336349174520403699554365618033449358196734761251016138917729622955261133671006895073628663913918158926912092757467842090755255659898512295860475954652856744826988306045684033640354223878801186995753238623722559465500890740201394958477063183529449394296794395942291042943328826282149289829673553692563278314308308535544505800273127542049052923925102354647761878682944664646780066562431059787631610360112386572122446114819777085497458723880584254287867362955718175162262698209268966547608219534696434523367250050457254561444120975292505612724558878249390148092488505479258384264300604884152047262413343799465471486945694344314579238302313337707081110720123390962060160082270522666954172058088461176799088821274748356336279954563694845027925449494482694769723041971890117095815811939848178176278668573311127030590923445152805110743995232716874575853236928596140704316270093228012995286038536413590229955248256082930604650124013152115820115494985164710218969627229202511775551643638587284676995854951477737026037311735134823908277758454412667523215250594172165468915512740345070537766762528781336763341093172088121658415556830029809309348533847904240190512849137113073430519986049239579753330728836817696069576227996822633320358719216876560698471293352203328538426875472225515658958567920691981621062136629234132314199531759331386837130142033478181023299747197926238542712791693768941127330953932919705886290640230044417285807121635161682118544646811633692390284025553939708697391441168785914452683370708914452713305801178481510588253407276097331240070562768947453793483243524600412253023011804804045413758775008556337898728837867234123648417901559102737597695192760120683241991024259405873092923220328049881511173205008580965206709219429346994721182030596190754756156209122213828046467154144671280130028452827162692108748619834851984925077580312331990598525806032037851530660175443250899485966018341121338954927010232639943931575990421366583943420062344382454677000913720765844390637625753702173377918014960572794083395905152879901165877651532377377821158730041271836394614734848145315509328348600926171058078954941276012135234866830790239240937108263899230532917367744668697169698915030562750951762089588769447250440423858348059427745009566802405967318923655971529712612432024632154575604115177272272304894977576646367030142802441250998979942030693322185292134715746587337251864562649562808832441069048662078754723893489204004784133593554405328085030915546211575606161824393423848745251589554589351091011884835653508638505969736671650872563299905399027141020744569549660962765510442871943831143712566085356137339612391790329676778405277710866200140939030765031563519896437906150060159217103086258718973061847280137901630496089168460324185329997165438420642789289364148117972734559582993604201895785792199681919925475277931581022243226092947362186634483396509812818530451029879550445614989446128225457896238344456630500137962742999271752248084671410715914962775525037751070210664537839396497493227980227267288320279582083071090920521823805504248986591374646253045120205270540351190339880408752893107130912883252756031774459961039619005086414472018532624646337571859701788847952516374594358154720538065085004141918689402404912455280164651777035486591932795779303495352543958834480392258731705872349237143335174397059533958226779366877089799259067541559490279322601010879411071690342770763994555721101137004900361941644069708971357717244889235386362541787590781917378310623656541373669061561462701407770105386082558618268716754819379789565803939184076612477714655297601488805703339334796309262687670411089130018687455023763476315617371574429791535258876763518635109148567208712693825980349926114421015399351469377215325167621299389290851528667627430186325779628877068759683300679521635675244658081634057807459200269309293128414228801737496024625973826873297941797280901948116880205949658412113016088250428860428750052937152040341344323286355938992843508266933087913377540510227094158025870351052536808087584230839488000766413203706487729766236831089851378859185597463298408908967340329010525755319474821011370635943571986026098346502987415374884511230369986470293577699039323177669868269114488251050461669934346404446197113730940635870076470810123725534577136223827469791627134723701983693417855327701244575335555113346837563745853607469968172349759701610915822044680394899286841804309303106242117456046344792261712954712504508097970781398068245632874365585985285305008122326916050947833872998093300171743581522700630287874130668037648851858602872864534214481578501853889256157774364688372891889960595576137808035777862284989316029233016144861060166543979369149145050766687996620528774964441565508852958628734164307143307816644117077200105973734969800903628579164233241596673497763405655395030192944082752223790660004111394599193455995849419979690775846354491915783472758196874982973231773218502641480014903263415952302393962537437679486144080057148443499783937030230956277833582140352693698210838205667867019537322244237152124454656757970567525565577134619603634751722700694862935723832576109161503288958515828997077708003053047733073083281612758905921955216871139611089704380672268956994176571518723271396413486126092588230480329577719170227807524719803448438892887284909194955539762608299137337540728502198203502524718853877222569851477031490571286067574040919345446553821209730079267005397547492616578521740496579106698218282702857186260211545261827245815796116103937145412190740821928035133444197519143568942685825592076493080187740595762948016001804665363375170072090738622826550475925151199091652211556339584427467847788704088715073248716427928111045481033985862979212331205931438402588677421981273246768529063086216418375427040278165790094602360767980448497570022778897778031838220339013557982315948363907214949772574157122834281640169849941115556294358039867854284153804279787255729711349493304892303042367392080719984157555144052002195534469358335704288608156610296433384962575727611265367478904823532422172983022725058676572373656273837918409344415733456265771174222715621751874728203707513863987162715008294071043777894346348252492840948848990328923362411263781148278270414199691073467570855841326239764318476898370423500493317849754827409342030594705970402521965341817560909917552038700879783425650587191087894544260043875578097025527272544498827491370368408608567698185249061620158735164922597492756411540059408516023111166759108421391655638037724023735625690770800301251441114322774391443993153761309550589082505309372966417283758158070327649233274846194766166871753623221451620595378381334694818729828361767001115017167099402756638608934395943818462608995114885020065737759682192466216586976376063875558663409365786134539351593604073263186465981670157518372789436559554015883515858370647822864819085082025898826029456592443330600723758760601871696436159844541093336205414170084184978060310600730931762995301472433375994368463491426744346522852483251393561265549498860711502147155105593280032099152856726112083527849902892113520946306831674747323461078327639410072329726589594918925596507824492453315319559039074550541877334462073339174959755984257377605616414148554656692906983765070898247760298184927979698318560883519186901929481610774348438614703303216038316097747726805054829246865827388185669205164095227589453037011389685253627641789185425643051549023528203174225512303298206501557141062749128920853569773151142689216029565276789686170209393068351482050483863915979891333722657211728254303751827573382759746847735373699463791811436466249727758647334219141701633430439310693587551160651137783829863840641463463108879618674860099931050224812092806644099039277924760614318610381651036237764058267324606609066300786911834730667642169936780823522728760347404623745961860963878296400519402811067895619720186853695246025028821520416647938852105841039044665878689235318997167745788126455481366506785955121800805168644636217882840476476256764744313943001352874064698918653396712261743783243890127311746581468445816549039295818804699092280408365822520095240849265987358422322155836413119725263354206468097242674274513807327038065610384449133750803711091635294954166916406360099276251305519104250484435482601089510904358857765212682225617598228081966041359438440039696285269475241329987461127216759034428564000931961954764622671409019147686143710341465767491436894081702259748344761504743395497650756844066151328531258561329706887463061812868444580428002837308553783444510072608887721831380036319914509071878173517581389833600224862439679354007312595089538514500755028705832031859164122305354475523619204408583707161101257123890507731671678248872801334705612795141039112830054096584639619617171494009008594887318991226403243498662413429941191896936089058748926225255411070278557506010274819414961057485703229297871338558052306472065612480809491528200802496049053835218100603321104789764207909769742761741994264922528275949844941508302313986094630139875629181539110690206240660882304003897618635946772548466534464030089455198428356449059870385814208767106123912001552046546555307654250173204747519382522559379570437270419028940987979010802705209765462565607551333391113347500522593838051714143790550492072291195497059753377467520244633793848975157389857943832074313831736457676733609311942280749703701108584240308930114731738595282429728628149913918477820672330558863787500216569945359613895745743751733824208801833992045746041353821312802797203272207218822994556119886639364229525755771340827538647606728898920072182887116770878975119603625847557860659400758370888676455955702039605915151392160766778762994146724467434011197264514625354903931347493047132722238122059781268692688407814892094005545093552167598039600060412810283315563356018847288007165603007306240694426197809403509077836971961477112007253538472270085079822172931413284875011343209649571680613692104316625850501199451815235095588223557652983657042403849833777256979566498889920855410243942872635864214647721303146742598880381841787342369559181492261885672985273448574615774985905320280234292911906763546393731672783373215326154610159288049108870566111305691761090744076668199789368287790828933548102068630131338118505204089267863207276111656354242073774834921423769675143793237126347985947525333027618109286265690793242156169405474801550140935461066131664319754491150389896089207547194179132985970329382569347410203801301237810829014490115047423719056791046287341348934387590980023464798343408156284747384311548148716647578117322398241435042856196868937020789781261213816837638662083674822376853828997521251753681381540945190707968574880297031554474895098737862934974165269206695180034769104811186026382486044496943324040349245838011921817490279686791036364027595578293450420618247804171148037659800097814006735011363056727845721414887737617322500583927810663906161836907049276055158670856566924870366310999790458424433544179496458759276055466937785830740554934299732883941315892616674421060537733385764457315902315214020194341756217945731310240544073939318952989872796760265548086060768495606830593623842455572911518167292502773412418095646220265220346830463580352719252439230120239243706358314465545475917678817783287490709738029378694278002998758615337155449347934086578942932103372517530411549487916623691517362909484808089978947976851293730389650212890345485178300993835356803783969688522865558025364695500181913268126984416075040314247244775708134693214485427848123931628580128048874164664534575054227419199962267664792856019353035184540268242343333367147523937622977598352918764850266932279262500233520366340319809989168392033809137086175635422109983320671164359263937032982554345411829692692564738707727453748579001498784290021753523747792296212556996365928511213911352976235394280425394960761882634746753222314818543894484859769826506899838653530850667636166096962872137348066634681940839343786500341375120903938220887124901180023594109513393715059894310430965208074251004651375603722356365567815698271362785011399446671427873324836739376312535175413123616829318410925293915437180493773398771088006417336313525779842105802671759155001345435661344712330652179783334076051832514829635795841411017242702042802168896022006898195097615231169379330597693063450127847235174590971764250914142048808863419230187798801911485351800842085611189702134374814156350810689857381768204813783500855755858944795375960037453598820445490884093463314064461700480210970546301374736873539013593896026433826538417145046519114223680641046040604144816872430766576909364157119917120179053285726678449955541916961426170803451864498899159892384614745125491698945279470468447377295861684869023955420854334647202257309096571004881662406639657895324326953879842557208083947115579143521204238723656935519694846477097145006269554081320635664195941483445082836805521138002272086471745048309852235854915543569763162536153164302160465004164765515073010737359422269533415012290110132388246679601675426246364964760447172065408294701868658775717413440658682791306552833101086957573969541340891997346010531113626938474739336329168322998788283173621252760141925068132640013431439669534660319039195078348231094354893162318026504741340084801282455967173599307676684112392309456523496804483694822653150364605287916002410221987183685114755354333003074931615009803185564726226449550029630216982621183566082022885452413173843875764962367607346550900439709526271779535612979295076300229614512190725406858781896723915101686585921436744421413434106147135464053812372399742455376033976903443304905146842389307571557090845877913010581497031421355378176499897544755814073412728366146901352823092505060290020980590654806496073407049106643364465522310126098938770784371951922757346349567381351780375614171701654942502920690228648236808170863427243616012994817565080172304201119074627460387535914223013504636474137892817779550799183552907118195093411651267103001810996691434739521124066240719481124981331807909425832602967812080127213750132938750008458395383201420457541595724856096428985489011735706869671748821438483583979931633455389518511295514783068186062162857202504540368569205726629791792915510917793312604624268002837569665685079528780204352814861126741176066310023116313203783188907669896888843852083651712433514411613425282352136388778929135257140716579443311513020665082925554704281205567188028233045765697464971466704388738114282658887730370522572831265981529136954528299090402668045524196751776335893380620262975395259548449602424730197324260985875610123923109731162336318431676771054466113220460435626856385993412550928895331511731433664201767892646470017426173586188118425493746602310786802855051822360901865879559619882338114254586390853117491325872416585616607972597276057938172243294562271897578406538185128741019160432961582222152724710447002175770105386956705795039344739899386328082533795967685274477564321381096978226322036633700635217655323946647013607434947632745632001558970517456076872882007461147959567110190270612838125046416663704460857886054290641692007279437015032814491285578080803470743729810470627273484768479453785652669795745176707586992004935140149180633569043984419100075040886059161736253519229260671921688613524424856971670133478197267578756727737474736842042175964651064130884423596333550228046713802668676768223290627448995189672559098061770012921919747884008630902893104762424183231158032704379704878837755364191968299244557131710085833038136554349270213988576785557012885338981140484777351631606774079869126519974549665299469024214518398802032726950432219785275788708800569153296462305925055350206740402262836588766388783558467082367106827737027852666865671404139297313862279042214029029620876660826443565514692800883430687964993189477267055113380979079012270830351528309716664064147507565359855822679068700203119525552711035569642507407082533342710073790414569772253464913325950867269471410771641750682472214053599000837035359264990809172988638768836553599266600351303321155979412358104637765786198732793646001624608740564669915220846050659582829943078782220882216634352103385280003033088253986757643468415689485772049092715326203107935470175926654861790467184379358961605695056012991639291093233762302905831020206391978328252075592573759425471065572858575347760307467860098603036064712780023987861852254789961797525662245484251606034314602493657699735592804680540499535441704815957824884494925514469584254652037890872858998157098910606461148534788320444492606664751805541847669469993821135520105546363971389885297382925197871350954128371122507640212568450348953836367900861136749964089511809506385384842445180692682799800613842982880103224125557581586910549369266726636964228721368964331054341362194458450416713104665637227968099914630275522486456052942797635340811867139119008019725614494785445684702643668338363936824138495497861195395510312608380419378413279709689614746928734739297464139446681086725275823489004840453377620941628189314655627326884549588423100331331039481771243138704088373762003084346670168438287743731024795330794717625805865515391874739862128981213088452870166537926047050882040015851966848216912007507393717415059366061208670343742375504606277523662238783919356028292729590716274200909752877685260326092901461956858169529774427820378513929250610691347302463161323928887543326103094086935882345609482862688767826375142362975985876759145991572444524526247864142096279066329989674884040123643407181910634722743915701045087265854309116196481587591025224190320194358180573094453462686267984491730554686576154743245812720714184746060517840588337557398591303044323485406224879222093133246308203741851348818513223102447126775744111783562467378523483492905853398168082497425707158253859482675592763477058252892749901650174063393318604915299534818598422789569778072954647788312285288347941140826168545578502934854483851030010871921753457697948421189382328745489768533985513928966040477963476731517225366459332221274983804070634433182006400444484716687209573271506971625959195222650305669609484438672808531628406053424120631716032867553446908701809097363807521120979989688066600323991470028201851147293200899028778350274899161874137333427292981112576771430573863893438011360317566917923422948027616963869384329538565535865137597953545481116531885253848354185877029296124580887173756609738160682717475793976852856678996032924543247017733683832630145817399515730721101340542557843580930960114266361457005648295696203788440094718009426131800566830587600110393598116551418200400837138359144905041858758789370122301877273162381524438231034632011668968641164143872937483754326185650278620674559911753404187470672809167568382177542015613672730619432655648705158884356192346836140087096396342126663585198846167101732735778163184808957976356783215303447598077975262680526425128460089374201404541697710961001653468087697053397332023482068530796490046495361188340504321727028274968762029213367476966563286690175064719723792693336494367796863855891405648714668326604276749941035967423818018099828249630614160371563547827683882723555325776543736994179282005501327723651393073159253043729348633038521183807420048182656875774616675627069379876648646083905971336877787817018182336892752475681765825066368914431762310024569415425414428015338671125185578548939660305963144379707738842164591505988474321003278836220028949333454483012722590322443486416817341904876271984166536131284113236380792941235103478174520877319908956392065954513246689360283771949212395139447159223728230291580639024637414785222735486043405073937998129203407132302351825980600578132272653575586360048444571150270554333894611253067411261016430148374546894860485498207158080391183287758549982670869394220710207617828280705287907435965138882589245117727841043112731963220342972301388461869808406253993724744145326687577087055517779518660808109548816622138347801134774194777067751512224716983871004146574040255589100477878433112301781075250919997733027252125594314355974845499559907183381610774639257649725505251802683897601281299144207407842645233881269923945459167824625039550312362564098258520930841347458363216301791485246427650252514721845976618995074659412795855880785250126326840027563540995991127919404469069829901406581851849141435034359762129478352393913654761643370317080202522371019219972437851877697101653475540917161507937223456267075450180197938971009995910767068007598652017463751986310107562702325833355560688462682012315218464261811080763144710057015510356675785918198740003117906694502085557613386142113712316163326084239669149680316147407863484907190612109849398396817181051207687819505104583044316216007452649568538386630898511093328767808152940747806220814508157981466970833537650121103714727523198140996482186868339166065669315454022265617193783714362356834626100066284501765360779991103519625684087548408062981510465197653697542554631131379253519981222677221382546540300918098755647512974489550090277596420852808903952908557933160343768436575716262231100776034448764199152428609887027200146021854061119466804623655374131216891780788475298307115011366153431695430566051299369899017745158181960647125415011042954659201760578755175274303054265391174829027428922711806770027056319362661495856522708617034923089651795103979859873409481042414179653260034842459065557146038506502176036530270584509173106871738440800727765582627579011630181803941600635122451800373878681514341525288149853111039748602620337620727089675724388770984849321703972183514442988352373437675526947670558838062519907447215214923859831398971082717503279001282412710932888369049561721879698948360343982404892329121850247133962046139246016183874192311553922549140554384161177479909273418120727081362111992479659651619584396540968181631963100966646137926626349381805333304228636632717361920136930896243467153901137197307272203124687464292246701303398448338696598527946751025423363936976450396959940227937523879115890662198103589371219102108337034771425941003653409298799628126006082569340814643356894131690118161626998594511378615844242294578148731568743014449775506106908049294545755439097619433031687732099661176190611428841870835236264960334592829171953790120816880448276524249044238293500606682115759160866142406374049782062774764303025156420789611964810787033098685580321726911700763068515277157958999511113114896190885623416041874699930677218021200749637296047804885015632822098019386536545840399164620883511940174476336002188273161621190618142531064187371018564408753986991669832426924660909186599436395062679407283051376489298967468679914610703141278710339756937993120185758603383356279122223267731269347176660953788592747500393293561626980611575303926132782513723120534489046604522645605747579571439853911057654923800645959601183178098369044258753234573628026163544559437952872798490243177755704508783045020027990425785292192158123861650354615437659960438838382795829886550804701614810026092109943087306989288811772260962212459790243845332204581102071859694051335635327202834272959332699110662368166729720369206454997683712744367026370838129205497862964452778564675943183585170075859358097749448727494118671107341926796091336164092747491250535027046789038391306117541299026889071432635912622315655944016617968385304525576476165837516860072133358643566645724933051911323493590517195946654228949067345585769742203531911515219452654985073541468671448578571412245410851402255714011055747406394554833975150941763943448683924184880046754744972372497302867770856077916581392388874668534849901364192743119287148764578473480956478853247919052013775574067716973362018558171680873325376823231606658499727817403465368970034653474341848595165679473126080697453749277126312248860214822171223496940760208362942289812379665192641057835608766861226680165739959858938386936164527688388108238196544652218084024655333262317294352311248885117746727746485267881966811985069422123649814023838519177312048479991472335020162396092236891756106412969276693554234263828110149850217818583387281138117748448366923939262565734143582015868921076282547555787065571330688135143981951852173383737071921558905441970609341802313253754294361167588885223331688888742998856664764552215228247005068916062963178033417831415728169097381502648787822958318682470710250776987616535529990530413419428058885302574330525395721055433046346278437417665792937419228503078256808491345210426699330850863095582674547670402191004361886821298951974525149692766662427838415175411377237976640098248495210062241015235255455642391288675567876029751026997672750779703938491402691497897846252084333857812644730696336835347048101378958651445690853493997571296302650984781473555478659373302688919983428946207389351939478240571740626900493828602281279451334646123782037888657279898101989396003526323700783108098245787713491018179247621382456026939615183095121211538331914168009794337677283485319605191730444965755899665567551230033376398323297920051470086623883920179673289729402428109002351964696142235670643540637528205367709158916878278025899841922601556351223700131043551169661138867095029064966938557940700467735713505831145949239086020423906099158150015076346853676349494916617707813665417694575724475462813890693982398598911747825850437279903645822973320314948997326288810494351467653764577540322840157066047608006078949119000909296841228210663655043104472303157053917001285214228202321066865356101370711624833947370245418764909854242537398396318850714468853313502911501448471856724983896355643211337870852727999347707488460492068205535183791330976701037147050203171853606904538323493808492876509982087500811197017760487504865631572089029914001070763281590454782053571574222992310910620733903007478683917789855784989624643580599610715124788869062531100126905933730105312794287375814866467882467078550978020219467968010014477314332893081816737775424057586839887653963844677570986841667327960626384278256104904729743803031233361896187418946868865190301847210581170097742494443266593738700625983143634512821263975528218660058398174502455596583642181460458260627047583921120220521795084023422727643246651690243392497439866464013996859771481052236565165454988357814327466452061984784175865316946590928369515507263227635734075825339924382680273419123058774929194278849807649693065271553515810067546723805506310053609315274555903840933383044541021877166366171599758871403915295894968610135006696721400344336218652355345732071458214161230985491725581895714506960479805771898228201318969255948387647359582092732144729027385348195418333783835712162863328840355640545910214367587907970853181821672812591385351999550703439327016507282547872875777648269597722661284248643890334488705795330143043061077829202734028567097671228863971612698187551073717413769648296297981957704351551951321734663048773211981366375009588128161275915166220032394532962906810619230567331919988718946435128944588507397628270966194220238932798444566745482125615101873186941225375730628929094181327772227595197483801100015389149887256324974175598798706663263187542108259767175986612633484528985906396871135046213494165173364062965877625994137582110108521460283544882753716815726430090611316427753697784897852378634579347240429691743975864132549793262473729141861532620250777811512771490272369167681310831450757759410424914210892445145013097045628378179565924276826571737209299029482844373449545028972656968706470931561744023103889499558633760941996465369174370022938126437000797994048080366497362330689952665358129835610863411691524595772750209115496803582653057840083847365800486404575717794953850084801845939784445698305188975759409884583457973070142538924278860701882591597755681955805010390864849373242026333007877166066641579389110908776506535031962055031053183032885137018838729664872674778533811961345137365496334505513487428373941094058953959463946627206003463547839011864620139453149128800524591768539546656576585091958750503364168078385838452278858713632849724020226243091907431065324588166529290332695518573249475041099478705442743637992220727611155225821199360056196513874564960698316794745866676250798593942226036166652854701478119523485214475366935522285251616624811542175416917312443594751322641072352309395940564950396009227962369774542361721253607496889786575701072924757651228609388684287916901885544791819872654691023226824768000777333707252186545033594903594057374546439313424991511126035727006469167835124199128850540277821237570775139902322113927257553072696852484703652539046690677061868508559397439212957372302779576174068375155468510656958996410162559273479384068848531332219807273883242941856711974434987517173464256404342621785946875264104140919253920801933670510664394451267109155166349580389369612193274843331935246492280014639097757178877915502817649004826087755855053265265904060695415276089758469652181542990978538980696983704660181847021163440286887346526922455002383058847102217855769484596794224029853699001757776047328748779195435681242481851040092746503700026575569461401918359779514797263670570404419777936507837818452504821240925652524604997849263760422697644697355790384274172380097651975648306843435725534101053935730002092988416670827348272209021377305088038091645021791670661827657457244525432386849978070272542212393996566798656055335390602399059476564011484545596767069817032763014234472505251089124900832386158771336228786633323425859744956562744246411348687983214307441494745018899176509453575272274582910315387758560116187392313066181593922219522473146881060164707515642917380094744550794905635450821415885541443114147451753213285666595716686516611333558561892592168754106383065158666365778099327750372963359034693502924463603941044414548394735233888640676448876734464246162918090441648617607193445094338316021319554522582226610390542957343972983200576477288879375293916316563026844043523963163958627506132602202360969833839585068398606628018236743765554900398585229341957722409106416176505668742844642918678325656168211940527616200309724884934525261723601714629867695010161297633511452005614450896966322735558880064650006210143293522089472786175715399690426440972516519332500392491005083850519293437601936747243910797726939362173482082605817283076362133838447408024260497265765589349692132910775723601493309500854415429127489808845540157039885682948622538699136375953746422133460570342610032589677238885846562043579983023523320399373248092533627673802381345232995252057240298530157161055788616588421581384473320071123198126814916996828263154909924534839675139557346902697384092704319699643933431079419449481643665455888152396982691117373848853490704049556332127526639247271598062544384651880587892515585328294178490041416333698561269991839475657541999957278160389685681689003713193673696344765651661957412777788368088064229875598811978140615408021079585456741233949548079440869095626928256879333138194461044871577091023785035454963675181348550654044452428933848109219617193550221146292420942479409927670098702282527995661414948108685766810503074948735146528432230621944532928105633498662336849870922781851783002127602764517596814413257432507830621804111248963510039710460797557656616065871126398872306603323413846620560572369474314257490709383165771722359831467349872516011138777827127295692213874585890460719115242936597636943072431275724513604578117193878504828691233580403769039477192932795698930861680260420317731832952015998923574147494799161240069382281557155825782954724090156003368994280444348350501032118476405917155430491043601855476178893369380636639091943175455127663745673357341062552968443806546092011158202134089032316120110548814186801707155554029275146839798731951543913245582929765396986896663138487313284648445360198997042955705919965154865218462552799876182103329667470635868107476686864539037622330698161550830973704921753313509912648036152125360109084213691445977316766723608709213849946506649137920978098832722071464892892278068625561889173419999422507812360238653494129227715280513118798626196165850838288956470244787165335651264319189759496104150563449038808756408064630243124355401444867529081660179785129187886699861384873587231865990481916516910371717241403445424298187813652056975207699704396476035555566859152926062005611176537419431456375420359608454673218806675383775189550033929307525384616167231664148589788204327403521693459392547374768617246544575402707929486621082077263456078488631327547687986634517122748920991154858697406681462620794424547322159702591151073222176056779159896067323809681216599584207015414411896089860232908191187076212685658780936639683347490674018555140063832900557543521962990812871487561019089449994421270020130856389423577086515704485557826285328811881203582480338622961817207232452141887322335583838388159011315755002619337379626646314860778297671622971395123265174861785214756231685295492748763888230431109367751599561728279161169968743336624137964063600527216278560832618483603166521724511396282804265654011402675493020936726972316901218718785124921135174227303164628380092555088394296854158022182126299007458446834653105567473453612004868242810536944977538100766696292080200087790329668218823447676985779430544675803440353236060710756141698527767244845128809310047613182601965079593471263991033374195684965271800695633383533253945565893057906493739509275558059683236754748018374181258367880497822784398500196807274896601197136429776177693039211435970228848911442955359049407244358230073917660834582516146094884603643179716968054949144882805848345069551997060418682882672822867343677930358611611168619578443759069666626447519059157215887002210500051484977738049732227912353454825654849313641946246712068144356731504288045228127303465567741452238198035842050198365282452546301029257589756236536159305534510738012011122742055599296866533762420144152751848914180538600744207075505425382558519114132791352407467085093924003109395509829922528545132282564954033274369481279835772558076195600333970505496917512716437049045517526460758868483669934152383541605137379699308593739073228487836697190382831139829425902972032554994133456315327673475361384038366908234959657540468106217286644938042581999451366107891113564246885161940041964696985936272965642775769026889912816074000265505082507609827951595317497502681960696345557852460197279861123821834700256027559487538096553423771480763192883564069798890173600170932571872376788156605676636185324830114947751989756241740735626367640389770224729872395185296550574838369120798865234197094421367122712538772136982695305584909927059703362449428263169446708397587338385204797127794927973328371560293956215368549991401062863841479470147771486698417927373577859718382268907029188487743112917228143950647012432617284539256632476092116796657178012392485158767469789902331893443015686323791311084412065647930195516553341936820404402160183103922362005763917102343777093479196822810286706897090240432310197164603272615992904391415542042826846345013638038659680585946697303314402492115714885888170556140879227302775222196051340036815751771125193514897574794491015818028513994435407497662670490242071001542843782385760229885000059344368337085543096825227068968109318685722646639690629691380501156687177324360030279330162369572083515714157470181233898653032920402648749167609080815646033822159981944141743763506096991993832342518757474947647612930984491764903711974959224082213917989100423786669162790597419110123883889150844466390067116196366719763897531389145807153760618225359702891993746829050426488876020657721990586467140128955478885213029704910208083780406778420940592510720903698683829546707959964606479878751515008192942107607088991326775230419550032375848901632172346795522093404627827450139212264412397906850933647218943865035368168278061721590008938850493390182221844259422604531366935840523558320549845280563834798234075388730106536319608803596316671324601646302206875643250951085886934433921908258831196101155403489358429655000427768440330827677205074047702311432307038089226760563870105470718761421057468998809739237445960318270703256800312934438949530062247353989532920510489980289152958571520849011761678811987350798756246482283435665028304525731891212065949883935933519361807828494016538324497207964092454314398566258792551338463650950525645189985299004847954876810018529421822597825102300665342200313887323487913940574085504433171201697893586201050996959531893830012057983578745825939310636588590769092927700081677919165704977627312363482436238468195751833902700283020266337990217926317618187720001926653125111068739234588810894957330822315210836911466692860148303412894215927034306223345209439595597172266487025480440457929143542607830033557713738429758896703941543450541018270918053146244967132862415113330330440631880976561734096995680954300310569003857599868536447767699132173581343242024034170960639647941568119022735768050020278480933987842002974062111160191034696719410213187260740708449875830746038316086966250857846491150035592670963160380296742586739709029224402728868131321456237859720475559283590974099051976939500871526599779140669774570443578991379543223654142364606526444366038877574507983952983949994156264232801509637013730558921091042003708468909578895520654258738121768937993010554172892971285722008666996341970936840832241644533163841857160320002936258224016320583350638833168228492159159591276607503465703729004492073036474730918678812649026607036245908699224099579054418760748700318771271427251169820814617272761647431256228104000512144468166914817163937582055970160149240271729031357310405576430911041914281013903784961161124548455847647706920257720447347941007321424585738327574533842598294000497376787613357265727033424767692865651922628735853780831480777255179175497011595464081402241279882673697867028103149904034716749836522963579095078539992139307291767860172103705777510259246894167277361467002724484894542787860409283875208970617838659926065276258743111555663451580310890514737988138430341760274570871363180870253580618837473949609056334788345461799645286489105014276217130115368934377725863654502671575317610591545007790936240547730650006159206487659605382962425694316887494194213816755241151433674156920490149326318679488061426596385156608864147536553269078670857214812141996448662921885320499161020924436999790737865034651844514356042497841636235397279378532022209357080514220230737838449361287179259156146001322955340306895942334203536356198393554278139268266040903681971388798929638357270020951397995540931484108760794206980127345508744423377223983873822545675051613438061689202618611531181429859503764667076120743495333138606949302409717629044161406780902859174764805688033817510829181058070786175909820818963529638476083048295924227134671169184669267416333149323656446189096728245580816804969760505954546505362887255831848309284982152578285050845443207306423076335569609966466835493115658537784420852092606711771656114467930457291355997676399703223541006819165454761831776249013686317990764802542813820242234399277970338840049911634395338883346958009669452212616491283632791281304265417824133064676997138481980369402861666757728578629565712567361361536243657122437025384091732680899747687786660167503628153925805757986678495706918041504741536353419394467486662489091483774871353688589224064612398152790153445972610623031019570080004656370857348904170859565964074002711776206092844906844624405974914091803792058735935601680600317568033908754120121672309953665773369079878150770962662367471158110547372702863408359955668386785182952085932806325217713737304153572743064488164705114248890445945003240317246262821455763685213427003558965905514040021457744294140879165841339919687590575004656822073410545601030701555523200424745115403890067979344155944852756164514793341102018816390394069380032078732289153820383774389293149301796157475932813304361531089996392953977971301902037629078574312205888003829011303980108281855270645042374416242603882976291400621504504849487497431034137114918224549176443877508299398780146008469846305269882120116437964214497871354457598409398211425704891772427484238356559638274079850480429375308087146197482209485708775108436310155729230012230475370174890319675212860284014686512160037009183996433831273297545115025038526279688381178289091818000707608005178985816438013370211390202399444218163621306030994187202395656319155664565322948757229245168879088835310914884225237536058616203720363024931372045378248709922247763098243474389415805273951423361864914270530629657503870379083785821645458489267813072754808507371739876712123107869013677187894567169727090622883876333308072978584136215434328361968495395743399478959279700801959460722678649201772787717813821923710474162835110007951437761802792382536701678964018012117487073543373330050201528910078518737587876993800962292114089359724096037666575924176960775976715269217408548663784935671717942070039026288246418445789665451190371481308488004133899287448876008036597479795401414913100417416813756092019471260082145638641035803124540536498088977871180550388377684609649199081207729943378165987481525734036442184204725693395645587398622417311701384118544092138055541248331639914613452806691826593311726128078715312378589472970106475446017358697656437865924083958831939376002896798952712255161280684762637626886694184478165559236186524573663950901901027579158924596278737468389219106574817790461898750681629273774387634421807443650847714885300136057420233842501311048866005152220395478309908879483408151306593599779894044722023267332899421583507675783800317161567399739569830536792620391717572858427580623384189074635863074630081256511625949290388660199862267882928101678390463556400503479060051786555912125426726213800982142118910684480058619530878967008492780989598969186484637700275896823602576951821378373985192753124778947701847955940248963008907625657165758687511170742592477766143488617999429600328190678289653667995485818432813821128067009154677665477892408972284970128014330149075011342794818893711355697509049592328169770306214594387635444333156048238395393376324096816911330357928893153813634286650109308847434877560535213424617734591702111433011294260130720097354744597785569717622353795359846067605683672703918836163962341538935834257697627744936346862927737520840036545447308768023468118342122570771015672390381791233320879177955293955028365636025784813455549678991999500033462413756920752593508497089673680643155823774373208730099735447724173567313603500632078780504172992742096491145589153982603980743069251788016352227444518628533842009951244062476094168910886261103797405952207801974048882639564951597922832930532797211472838312295814881036930893695586415508104283062376847741596333099712190717707981707907210235127789073194105722101871968915162125332385390210440184356552187973897904905336606592181617793236462311989013100778020519703080950971243339121519247395635247539780351651358289658373356545064036897825633787017582104323720943022653408356134611406397503126107130765727947594288931178806338776485241378528508195896850120447657657058294639606831473282659412860949830169157993812522405067163979958140351063061291523040820314427825394268789310567985170351168637261267618147555944340294215386718832972892055008748253997848400784400262517477118303399863834994556989564526473755879891177539777061281889004093400480411817384044559368426903114250731047422004826127812954192480877157256438264026983884153882490965360683779035679715804810539374507305158236375974717591207016084891356252230028283112955648142540503769758118376719177784798131200913191305420269515626724323874757967382717392446332458925083066066745613046885208194985645791784836132996676606798226142896626693064813434411686590067642931066041424233665877246487558351921136134839558146997413524499783569771262018400733477799989948658434530776376219765225633406854311284476225262974013379379630670029469999049775380566578785573264310283266410292990486513659814353591935368125437488438782080436858965592364417318623685367715109571211385257037271370452710325528246033062585886399366133381106372600439669875700208432922886208407380710737128020822762863493262770625326204477613880633573964947296637923948660884203115621476984028980981783251253543668285814093699087654190248454764407461629314756909720625083489552894216727816145183145409357612173480479518462253363660755464163303489351266203200467527334888061985363574433111001235505072665531215154365130115651918933419382775079849942455684459144941965724059904477865341839913870108401769197146159432774591520047929295247454952511799266908989903053134359374448790792674197931138542733982334965438949973631086977847119843739370687191061259685661404518667117797415077805810462859339139745794869045775296136335098678694407470839983995763438095468750978054802276739134816642443235591381201404218935028864737234071954360077208317809958796952584486201739045259122441188140760964606187326806469804940072952843900305161977688212655617594873463943229500231821410247865884420625134715335088961329808380839681104604809968095649275735165112763641313710551581229853682640758170233945788516682656512921004686381052892959962999189681795640545010122622162372805881537376346714668252634516522537731758090870823639233946902443496819653075391453495450596248757693707395448562377735999882910985163149093813696578179508809493076692188070102581724826444104220848325117074517874945482098557394911372578791267690819768093004257180451064237084431626839521426784756500194711596162790057371423845536771577689145104185530646603333424341751339364374611981554885192224262380741254187218342678939376200166672785644025446362221051922891097926762750808141857325509093246018076100763717467659947966397184484773035358169758193686695604119416858143110311886717412441928490486374422149183107467752036837587266691370285061103957415567219746945523638850330331762584584588937832230689374019386795771371717097212505402218605533957620129405105901400495396400827333679903329832621950074290348126529474626602630872642252965243397585604515666823312645411938554428108171680932285452196536476310479732802377481678594681401196670996226504259205767900090641989808108066233732401068715409338902517347251798931892336078296019133170333243952629292734375661351427314082852345445773472600118948921334358514367836782070000478027144811198934928973080737726693694244995341228250997973092999846105926633712904224050875363697638820651570475053499946882207815798862567256786882297453670491483253896406745247399364863573185904076719711832120287308061186475260609244213419652839648411032859186680803494154065600972028375766566785064334831490260352280379972386831268725998750413880193599501771663919676479850140488449741355409571112663022752363364244059735549403458113392308191982951511917696633681986170731271734320239542994607381459024297769980411379147200575637269375497412751285093297817613653294060815475327767067217715276281772532160141428158890084216934820362804996164624412629232131151814471499343266226865073197086035033376001846498136791091794738430004297532208858654744150349131079148211719423024086627197573510096520816021347706779976127649179260105120098738320743542761688913400958573709796322620718179020748110834560391424258559119825793893301438949531981406778170315277618276599958544791834473559309429540114665102359221671158948815260077627299741694468840832179561820911164016693195674142594512584996476565149197302364815905975177213451876157258025561583632797473139381082310492212486644175869688472420638192766890342604408501404692765031033435004552914209066287069758803180656996440946402066990993635491920258010204853179482377917130764946474096891815118300257780398637522977100163554803566081564134276952547177985283441012139881657511260531300455507382242749648194511025055515656840088612407380835597454822860608195118288655400255737445774594222771178841015918171307378588448456516234493985836746167574869466123991732255697284721085258900469409617286653472325173429807373270852853600205464510070612649838560118675369125490913129964208399218525770036585428503578344034809846531911549959973138337142193055043247583074509800317987248428930490507241986221138088225245568634382489392342988029032583327501318945666201780965065504325828096852424648102875386801053336177636202300003827197034900108349967979317266560095191712818698949809165335367818189368264620095188882896482909008138859982335497901076587858463267562711157238964328061524846939610109553139605567216901581481686930662129696825787757421550590650060468311956640375238950727210794643978720162305730909541116642902205650091196555190697844625053797202315091571596162293071891099282624008498257661961389259628168358417342201943612773909642212006924407443144700350721308937635642145976787587942079567811661098114417476164480747600715000497945826498510141668774586432195976688876359166632144834715549946844001760652651621616655990321434528773183673405215606966869114830075596779052574237117195678461315849466236619783301748270330751393819842633001241830469276633536422900962291018611096330384115497883142683594567376651805495987421157532722728082703422267737932626328015233021621519812381542577988599666796391583382968633727838341244725764473835165845854021261429067637848645285318171194532817295005993472523692662360063809846032831498029402434374946762206766318332195049345000144463810560344306466121772055600017646976927389563779849014162859356341034643740244113550299832989049434897110209656523280467237276797424277627541912056780238677056266697226789954224714460353489074204147821293206820730107723971175416839607655768790555020867539226097392322605126695324387483602671665345961500037249726801928200126890016693560077853328582287010510841926127148415165272878492439477522969357947814599070812979357710028142441661558742045447169643411845096605344723714830192970810170416923663699180102974179109151028713293185944778902971223921032090439151007146616247070705109663347114800010597572387620199293473753043276456388129411100697652434594100851160561210703064114527282740262987497090656696039665771543468723457481200817733195175657494441536294234207600675220655784831935336084153680735192430061565652222132519356210159541571342500431291707170463129197915008667101484052091803694410363383538765013323910539223318393135044927865920695665683334519497030293144519039052152411935336403177761911514560468351882960580412693142189692096460678648848039162573402635403016560493010137222060190106522043504266975375975254010047631879743726368869570036511358055820551556993626429893459836689724438916961782526866870771621588484318651029846915527138886713614822176592537670261252773860952118095847266217304607594154280204176578702160111219788344726875563226839352337690450803760371823509709674730191901569550138354237766269484195063457093744600345554476343529379606883047125904993266557057266211526829756634069861736060191401659701269792326503995412315537136479238653033408758222446496106154405228209769771958363445659099636144240657985377358740326200989846756864294789812604758010577841363559134512736974372709079823326081513692788498910129167490811756662486632844811979773380046183076198916817140519192704270616896423690389075030653943658425491410975150418466232048931619258947166890925726029475331678793196619518763447508575131315943351442505983389279487581172037798642402622294759214313798178100521729935814219471312060979049934980023860968721508435974156476878376336229642329369753071601735556166689812047799483361521393075794484789092443630485388117649008296612928426182481661901157927134848727142193124669779314197310502678776095529038583629728703312629116789343753456953093430624520551384945479784878594946257496691879821550046582132477005556576977257223759744196802865711897150001815783782613323680796304083151194387645865492491627747595678837123679999985252182355625632303882587723436395252232791928954689595329826592847535171436995650126718161291289605920752422039354500713221168980351173085345530302466816465244395542096983419172976902341634674375684876224024021416497001564880639878447154821784324811404944667775533171091320697643525496532795536198753074204035989782297754041435182858510613645068601460478121826057280152438748114880095138145124942614307393099722589402523871032365901023065504367026847744842994099132851810535155376049303129892822989906568395400673981173621206338247151568749454573154259076366471273530673168986167692660376602200025561632591473853319322374702362638743470901489815532862314545580837787482805473383231763469151388635674479523976488902700866662133423787093685414829006180728150039456475134748377893709636630436161306213852680232056649602931810256505222237514513174673317884924588375966917347460256120566953418430296986195396641707170361605673329571073182801426991861043839349389428828736269295142202331186582464989871560370445858320683286287441651114993851454692737114342637857968171083522974386122448971082767075776483727437386838617044880469864773985135305572652672399763421564715958058190238741455128484464037230036178164968342982321928931848594714864413725754698443992192829853974301487006270933521066163918219515352110993230408745134832288250457763293441124319362375108434002294548206527202703376021123820531397103770220702211679278481439366856466871169173550209373986459666072538031796113291861164429711638587138545740309805018446994326942473533276077996371612130453867823032194463875206378226290834066711784707089767461694174613094065617600089447742256821087936803375884066054902418330397313686541823926907419127473634556474606205228187902268590554938227509983754313038545089098783394015110263252699458686100620189935762867605058050241201112254369656659947941917635013343693012705556262210042061615699567787525825356211398514495822906911114363458443713311886228850572791607176022443852626131119739937322378607883743877475802566293654427398828766506521085284598972143368129092224668070853659668406876680760572150672950311469136392640309407933911753715375996647503504651537481677748748153573261953080102602831021769405130720471394347246192772317417692313080383990335159816629660653604920991982599276372872351160146493875828409615395280945341285035273238462008538383139708415834949888564180253018445227118255134391041614048438617820377073028994553009590436444844399630016407785938255556031636152556650337742944132274292497766970005878603495977478138919095504436194184436641249561620909716850555741187818927125536975947042446550771202886878127907077968277430784156900206893908793394697922405553247908447661111833535789071837240553017711328467901908766563412111285025326540547097100395242173636073156534139635884340050502898209062118322423065727996005952164401198546775609445956367968098671726142096497164076171156314576047210804306901663734295818553598086251217991014928818753225237642932446329982556339457190755521747670162369653790960831382479671460596932779105914813353422435978522810180187930580270798475023529941461527416227334477794512842592999568973256717012827876955820725700287587404670055980990680286559199442248414570292263626170735274836964153073098116284024213696950295613633260902467078396811431805326315133809222963603574188502636983973525224601615894050912593323009998744097074566917108927299814641874574267707961237970061147430420007308938495500917536138555206745399515803757926463543889197639386030394676983413071442867977489276678251908753713916844386510310949918564126204126824297370778470652589689169623751843468750201078263012325681433244201569122845382121152964408946247874258376710818086238724389118280096088715214471596061188639371148565614079376244182591301405417452858387081152519717568829324149708275958955874140593002108020854620107527192253372158186933974091356372574108382540406659633231417950780508072654629956241715464865283916334169156466478924208092375429781545954042012708024065491495265678002024079608873843770606683347973486455213437111152220941291596574808877360905307467199383827561369625414591428981527111948996700046882134174783774848080087267927430579388150241161277772790399737301159166489078021021977824975003986803609185217454851119893548613121895948067593505814104351075923343232716880973709682004626270419955493097463408905192079805035439104198583196615723639305420091516454284318668041515663622552432253035405823148550075898642478698644363885476119022294530938053448443418055281519907278229314517100675466765694550638361868180451343657176642682580390227763942319313701564505192405424510796317160470287637316558400112515615560078127234472617317488268037009763221540086335664453385034387621471448077916762356575948600968986797052822149071763598775751666783950941004095657957944010604958655154952193764894251202527261937232368265215420740228084973424499664524508901257055048472101137637412670386759195913948443860134884495779380475776933213757317740478217533388749462860569278807074450665415111731680562843318844831805298548814809720647653193678110717826424282946758177068876577432286584643221694727776702341165336070921469903414186034448241084387220057250836917330248373405167870522952224409065402150413442333905214269182077560632586446365602632677765959314973282133080460143378470003687979838733741610010012721625358058162353508883878010432715044585042114384507483656316206266743587226303382195593494325082514961428830903886857879598693736957973338047878081402898871193332538847664619741391088386982020721340043193850278687616071924186809204137089785241875257986540885116343015390015317939372070476358987553154726634358336480408829257160357847412977245674722083408176523526742167994554195806946566252946509652031791768577902821033810194824841480575146708755384009688747921898156607639509637157304475542554732709544697920065653025000006164792478116793542417506882695766706689690450590938077380908828873400978706666429388122197350730391127396792375453917402792662149122557504342250205363348036981842218350299687480290945694517483075118648687400103153789382369153491899337524931665841980096166787497163143242243561185010037513370228340300393590316343838880966705020468173187544756568090955179461139235921811090050944023856093864567925666195435689253177663320617945811272355576629263679542468904496580120085451519039314652366036062172603989404282403271960710931080254273904446837425174080571243871004597871594406236942845847759738391899883587877860155320396786229668568302367117913176480316498205276763902835287432740038589101067996520402376955918158489019144641288863521799958930058438609026621881700794449107308996731785130041600081239717401194174133645035722702799227126552895407705328816907169999221337495621076968253062566036519093489340485251266192579006312419699570271571556761788682900671982409431097921808651782361246587760093338945866895951898868345625956321043388340606466676091379724004559307923837969352242555370671930255673010026910710099504828644149375250365220333925982561928269882855142340301285382211236324022872144370696884157169706929561604359149229581023556579356958373560177131038128636618578786940245148870689123030337576205816859233958751378703554049387034779906593161826416584744193138461792024474288538026798723018735791578117346567919994638888854784395134660253742774514071336081211823496573095953460286567620429402120836751536009382209887600447584020990447059544555490260661032857816948554958371119534161422110511720032953656989238536200402518591874408457718022880170143172461561604351685978813835300036448059155178839995237063706604601481076518793019843408866578813123887017626157564933313913675266037587043349128129966391224231462407194511011729494469782467915016340244399628629502644139546518247794599434962521606106735546005282842242446848506938701720262114882058644759376255886904616569709589754587880628402910200755863828982460577735702399234881435530801774199369604417392413729715216475871194410722245470710212493329734280592374839743563539983501690727002335560038062284716979286040229446877528734435846666992074199448711324945773894472974614330167353866649549529612842666108749757198985876750550562015454340335745506627456706730053125314900680152724787611776873101470713446973398292285002379896262405736114069937837670856920806604640560300321763366426282107553570370083157078430475465187689627625770737360156821394106825270212437294097652965501443297272112257752719021795288496915504051729132516442596747545638119179971204647258269505041383678924200086934529450334835757244032065998375540044327516610803377457661299180455430827016708778470942725835745827035302480426786884369077880749553105150257641783089591763797052009557621794115532093910755477818391456746450673504765709496852478817159007054665666121808319278631489116299798385400477857682527391798519480810545157029257694348094684069837350709355993954835585481374968984727177187349836053267337161095684824070894454474401679781961032308097935802816369397989676638872756909036641264097301355070186204185067208065493347756274406471697490626858288511715601203032743359392078652747619931874971243883632580259370860254327550739487078851411985769357952415677419902627718174560090293210334800802163622536284376413864500445466140205615094502031407092228217378592997282712499172186436590728549588072329567887654547282420547074681839666855063662158472976644660094864255127419351810849681863079675671379419473805524864945751376098487426726529939597066754680844939282967579263828555491137985312581192143887152522961125196242822444434690709964370767278024402520386311250189170136217719292489951228912384847168712450177199328125943770620451690685392374615978371296795708556447812728547483801533613876254077381851169653500651011741467122240609030391267603146172247660565893112923950696617021422617546322011269354105258361008185740551143725653437876079698766249343108899195889466838065027868897150672856326524918251182461461665226788293940366633701479574391744680346181609690374080983724490654717873758746806438908921058532950139376282928422485273625861692253008168311529196920870522780731103727380940885850067962065830386003298366634943287249789911185007202162248242432132166920072408713786494926311229737725636443708107964457691686896520827661505106993022150159045163486464886431849868471453030414719254260079385522150371606054225708988287639720650774955702562695341650467652526056299304935826167811685375211409611907105511438207707605693802227195007999247834392375639391899050064832217965759823683082047367747470082204473795077360895367149991484370903384193066509696958537012821333374188732178224142783181377905701995359200225858007158238431094080855251370238945823341776006724961838212049871598704128517673761185522976144693784341867935153276560082764961596619211019395316771743049925486171421596986073482719700521487808462878699997441988899435240579423281056335976207714773333788720504883934246194774771625482194288153025214942550886861429348141052507391098777057633189585124869786357512059386160408127131887190786150100785982999711271304776381944685030191216089332237628314357593838225407803366572017848496205388030043934833725524098332194138089555031686160715685905143325538483529343217768755764478345503528691190530974631851685893652188635108744928884023390020563283040385949583936389715115529256363854068927211630844214897265911160675981303949606144935635030774353719410529147558947136739507218590343800550542059403551589004384710373879692281468840704395043472162984806591886476499865316308107420074574910626909269289074858782231102815836886018549179314319637929542540501150630422617054312884311340583468856485021633432781432905740650768053503225705011093006726534940102433206834050375740354201099411663106394613928297064728224224120875683019338094657882586873507869050973307020565945864821273824719719201117923286581964634566272802237599133894369419128404681074498550119068974427781062731267647722439122866272550319538945555737943088108831905193692405712807252514186061167317760005103656292342246838748515793878626421562844238591089127210870242870779430658778613940438745789092691112953061504537929234740075077297746701910450402922611873658826037363872487992924479923153085876548729439954512936274384372737605216517075846849429635024969841572218297379905952605339825570995702172834871064824614809297244026156077750494237493242083938017300081127820148011961104934041686381374960853450196927844079261837035464020950630809181232373280688599711303637138430703962535625504394492131961341278678610828653756134757972479662313892090664552091823584581464062837922416443390426735385043892927598400177331123073416004430510930788750122650238248510035461653457508015171641062045926490172384084189831240868987412330978602401203683775804757996499221509119372570077829795485906809645812299623466218740074155818195251020538392529642112211982619134645755608099262181098220202405214359669589500648881625342897186695805666045829373400509155314771589490860751361608640685742462102832076555349926199294070034515361639937624299270575013830586194088176718478986312887425260029974713250188099712871444173017194989681814341667414591914646494604811981567257169891622937447219882651482130853252149569136813369645188451086485251445291329334882938279494720520406766921675760743004966546968441145472265023336452316666867078791048341765571294392860056074069879153134582484325756015182934285910028478077664500501381661650327382820400624648072582663975589334554825988975034576158962741883334919439562000923634364316739476811725769161429613381962767343678606692233548740690432291778382960813370761741544060058660453484307482116348416695137588545179045186808686865482006862872812869628719766766133473616888554155667503708746210400793780320936802606083055397965118055378494108266084809157245261196860369486447256034177048550592247401956937130825204172415854724136352237873040202341313063575649056986311049608699153789367661411062985665927961557425435257262865520704375702008127184196012619751097889574995137280281115625424216821345053975260874743512600311248792510461338149929200117682560938233854555463714461567369460391194874938541676140447992315942933123898598379334325192977751748106089501811048590558657948890020929782668880073199571779844122534218929524053499939138150448693480670019998984520513838830265335627488304055059286418676804643131895264925139590365959164243900389685570166586916318873723646551149553298078035777049519449703497623601248525416262064110448115383650256441311661865481702034314947736324056302550298223514883432558438828587448393707857163340908919529666456059028600117991284448089905701749944496611317102492378746842640162458354982587929756810964543031371212396999770002172067191209014516416532972334615921126542069266492371380671621284657068297851790270642681880624671861708474004556326177933263410841713411683197474757932393200428179060051596705023975657425319485986191482239130428380983202486567069467796060722784923686788712767192237153057398071492769456351886708576423537250130290238877380227839883968658290633299399568292079156723145455053644386743825175486193656224821965432910810951227981725979244750010367558611798334970270133757476123346998628036191365182525542911998751890299754504046896061855357510873501720810266153392972601212507274347308179196254853828385922163444072413469374393532564628197587893713418218469485473013856901914958885555241345546297453722572051362728609667886142512773097161229098612416078153984640081733251149330812281112763517129287902327148841242877488412047728836357417057522125154660326849185267167951569263843909613444998063224745750565821476895247022303812461246807683229941060829889909565562070688737023784217391337677803444513116800500339036936001943867785478045797543988769510714477695279971843631117987285480127272121872145822300243194935393616808300890618958533626515402525770116976351760156755568192710426137142565456897338159244634280502177628723708440548535685099625024470945224340566152064956957644740440412350477422320142871415260820698262138660692814217358781306438301856441995489084313840353286900588755939463458355133258467112901740758546262637903876057083111251326818278697016302335674095258945231455874816436875380276435703827648398814392701631187290093578894101806819302215823355222218713464726780869063106510498062075935562650569898867566595160797156525681783509773895271383959750328354588262782680210670986707227242868629705959999256265774573983542773981120900684857509966625527797001958304437921569422743626340838437377894667027728258821446678729058609298371823975945670194338578675017122321470787641221108660308548980016538628296071962655861175202848316269386687140581999935012019978461966012063405076139291341615054187433256506227151701226296718622992364978952468242312106910005338467358533283325784721312455321396259884354971214479823559111456611618786189242368463992326535682952610980908168969376242914733190765641505477618774660186954116750949391580123039059718925331016412375254145466175305613982688123107220144149911810915862727112590699259785220306949971413387609509359824452422909969879474055434421231885436135369003531464310814502678805467840911582152155219336641844020796297239787376795963363819575915008460933664491257916099454844411552892067105084610583367507357032881612801726968828838006578029263199291855883691326135915242355117330319302913175978922645560072590411713827668166880739951260870876978280254865213996764342357232184157877400396137217805487030479287057514255745424265147567289772923432114096415089876918778038699552479398937860018540499884817499626561232084256608220853734779787914123356381426970371817551454375690791880812451195950797802586921960778216745913571459943466338111053431656829342877645378169618135951758189630170487702836700096728843537291515611087251828241331933579995833490156677970990474786134462371374923682903573736505170414899467816984055803114826547812195601493037839157617738729766852799835934447056147280321697819300854462171031843881972176380453688256029619950023427000009330702271321086160335525730412497365757411688313915886151038337700156300676507435132904213313299337332959487614242024432145099831936151512220394485411240610959698676645639617886714438549849677587883549851881228884353538662417374071320712947524452301899457048510252292741045146707317103807936670306447083426794911163146360922504076236618119490496674251525968189347427169642407391826879616626387759855238351669444211632359668351785994227117681008065616127750345911451305250335958749478218683744666264973389894115569081426873913728704204438377015423454317561717500009162022239483789322115201760680994263573855784095091821988795400635961144910289904862589177758262414877481756574008230467024846801837790939123133990478190237901329632928307460946251506029270033508198951396380448554466364416145179775117497641910228352543983733882536291954192134000593985518207544943585593748691225433481594105209278236314143277691490069817265891075563719718948081800727604004994323636159920693303566693737288673622908691800917907920203414077063242204179279011588325152326869719432575794937854475460790955043908283998264152356120911279879905237600624948703968733503560936470202556999938600862011029599592482276481561181181407419418495311036211133039509360343979926211443305753356902721877655027129125470358006032381713027983672172033087268131285353739289455556434997932861991496454768702261472577526428159902156254900355719582705915923537847938334497617175195179498948465646862313700421206643742410428246487230035930030802842067519787227550744614579153528338060105790044139991764264808328727043608551820801048116996398029209902364418421581278070226928822530200713707018105996497498998696157955678118384002523510744169261829589422794498533869497369036326430490563895419032124772062414067011360433101853990672253740959317036955235886975950619756149143650715907312926183170029554391331706750551558159993579570686733073875094348378076833246669504127639306654574349927022688890706934305795581783146672435281486455823676219182056718014768743300117975093280634906740527685499509798742203595598105565097201312493645770319003456465590038096832129272241809613177482556588665117883094721567648377733722617004375644306413072553701119456891163737262485044652829709212365793817508936417566029100778534241032732110479758452098351621749869425083559058740447865109079657960741820264783898748625636909002750328538712828891778514967619386028956763779813787354862577680032133544381687471253741961831594837445924472054433749025907651189643537807470922896766858026140954128061497625774605990829112883172901947679214218742885177668786680131046328907984821897775880550933162213885514551288032330426392963302470870918274668599264058322802845300853710973890179163232931201511529295862268638087217067767083326157829082533715000953317813042500064967809862840469371249112796882891295709101109693040422191297096505363201905729229185799169210238477251994587190858702925155331551789869492177583297057093479345323566125261219813743637216610862200876155872800786543488372271992060148693940280458955680002958056496702448272252821917218855795381221604760359272130046960713260860327712120035880095121146924496434039311418023912355933116905061284303733166059193957067985466878202581840226207271285101925585427331037377027440775552944846251910789221415559360120527994330634231884173340688321306725892850239409698258412359836057402129692123277182175025669325802703780944534219577237259040673545755018896613784096572987251346845671758327022158281449925902184312309513554074816356835769764948467499907038052069891973845405118354373264205650016999316969663038843748267987140213694611144602480708915250986088831928889446325251590633937445960992097898160548566399577058315274089981177222997634177813933397515368446256528001821539266408828826957129703935583081771301601441926810928524492022599571769247041094154091659371186798241159495024701052877541410199329942676922672791594422665956530503413829537807844546118467615423735108355993632696088028135641877697375431284519869435497549946727115046723417923277598572136333663930539723360129240801646387086802718808045964142654736117652837103791783524121121403292889615401903844994851947571849786838579361832906324630193839069590531500202911305694484482866870570996080119767538844928546514430571304873008077706322729755585671269217931244041688724709565714570306752213563749123858270060368675608928350167585323329973103111710523223427892878080916204173908333861321032263897349148806849881725571367053686535327603227513507174723912602929037298115421965934783050442721460265542922363314483494756662879840594019339827967482594962568661750438421611673744301867406149733715006327862340368127014819675336756687332032449003658370129955224245108848114138678931329782664103224930366138088405774341167471832221644168669485928007037223721155244426023559689085918377303009639085457185865045641750870907836269337625182412144814147553491782497575064366448467048521258571377438481209201707694591443400905594924750821305299480101564291386480062143194901121459435239317368204618333693073872398677858276184259021838146806776859236098705922415346348785091784432906686094941726099877627856702692572351162094586057165270975637649226654363211895437490837150137595219163784323961650668915696744685386399705045882453858117668949474896259896727743606884303557253392850458489015632165125275662938065504890420783979797762563618879542317948086747825016679515097109434970868018423250712970751512168471551121881123480044395536634623123065772194970495786031456943931792117431708592798275744183665786458500752227469745669041792497652686262273431027782153931533409785003272131690651678641051926970016492308905405252431056891717229482235027662858313865299897889111396448567225853849546259506543731987979849314773292442737470658716526332509517512998673607338181367115373082217935202772093875566938578877259609478414640955817893992857726449596928786623684588501076581697216369168503926432298288002286024069653700035789557190354866006728412918574899565240818274538735636419757129348077005995467524920659012704339853408600868173522724059432512113294067412324481270796716468487626852565273654029751512961692533179932965662802034547337646615621939688360540593325690919142566803153503228707068914497052000064212881166284302193164314368478305953158799932817107768081795243798652911805672213693750051371190573437075489253195172405400539078669415954651339047672677495687202368328388434414143154949717127710526811583369160124204984554092897397149595910361034599308571174478648599438389677216309158875724313607493200504238389672843584250410124114374376385544902138387105313751873474951730496696461168993657333971348581166397970303704648206017735502194885997845055977560597597742545958220755180105814441927599975629578151021641082948425850312779652866042402041287191068429860301471870323546777416503556409966197320053615573290535878578914640437753743399139514471025044990991493271856908462275383794992762778407225517596048995821070232163102630454323158885620678153964121850171180685354229175311594392814359611730236854041281806185872031019545905720293098903111688304729995245773960531600136587502287214315085880603757251833979090973984569419960952410559933027420377765384549841205768817128514386020240886412773654879228165734660255891183973070755461817386506367938156980041364996034150257229423236476304417524199061942649521335432759213662374916332267357121393706560619750546821914805599975181886329089002729949961251515770178057616125955029089084048484263285049019191764571453420978761356321164827004252331438174923256560979268322161750673687197033788764766167622944077977482931085288665713434527103521268741694616112083833874096511208197394070561086524240533568967036334844728513992141701666270051371858623209735585140299648752162240804776143103697866404937353277186249948965289826034192265557567898336273410424852743163388739232614856747511091951855148881901882477052156618817097261853766984051508382215278145202985567196003864477009375452686422051915486009150860616741509570803411167984092692404880371780624366572828784533653574964128338907689341844221996149018747292945482970126563803473641652345877440866297141774425102698252129653322637763741265897753556358425717242114270503054962432507359222725855934725003191765267426501069762236648704089244231041038722928184469346407012236113815687547635610410219785923564569218453518532893159558257449883714568615690261103647367843160873369149377263534942563217602468768743291015691059407679383141347766851240624244648657183846570970712883013469247561400448419879010081666562767301774907445596491823893155990838818327991487221016495686362931899739189491378910499361649855328805282840099425095748025186114733974807273494424884246602468319503915018894433255086348306633543500224806342807896010003752117668148318102461770119943166965291772442964206729569294955765350107940856351049218624326220946342896996227967170511334692751941620568472207270039996741048094166930009636776053814558732720573449475534176718917721421993201059439815376660404420034570357703142787029818941829085937631075415641946470727313087616223595715757694657570705290314630877497163209992426939099918085737848538552184238893324108790074959498995914068577622854344842882647358399549708636511067969092963848585816015469020722308010055296016254506650451319521731823616308678300932527876557903797400325281672114344353968674599024987794102677383172070922765934590745045259510431796228401312788510777646131308124971749054605129055434286517230154904724502403048496616069970635771259927804805280608599391442858731785205582124408932642296595820217503562300491483239929204359360312752532406968847482973495264464978310919993487216613420244391831823381970093724226703657993867139452736123479313851483187259737010394608195163920097802978478305121191033327374163437802526530461014849787875652831478397490450255480066412916044291187671544790261426206960015645355080433394120393642957420092821759053704457508585725849257986092133750536150644867106356459932263690898034906548738560371850578088355729033861638671117177234325960842132851047737444506138654779181491851014506263481936903780798126250389374693559329646001223560962530296936345487207372179772848278859724822680125646007903272486809367957970357776053521756132647668601451970283277170261098069422572068051085396987876438579170504878520989983553434539622071785358275788079978260831270736593954587761549733394264135620436365776683807589084407714495309022102525418564122778913340695003702001451720491557689997695450895378250742413884274552449356539204406696240439743929049271547100162684524992488800488272651824672266095635094969705825442362507743804157402878102797079614892740132720012468542468066952466040304664549921404042977947585484300390522883258352722742252160109434492626764739091651313022609063000270778226947570627310157326580286557976478163284369419975177255740271811949081169915012171893201317678162210902961187579867227207900513538063812155154046842210186421221792630197182283617220527275368035029724522240975354175830541306692542015083948467195864215387283029394876014205002322659038732284273933038597812757987460978614500851398109952300336795443790372556346731126817885840875444228473798084101085788913502384952180788817501006080776312906376565421252621979180542395392555272472740819518267351176437738682612089859157812127114805596588325855400225318485185957992476700801949808244262864641583406716144672797656539062899950578011937468111248041034627603457569591970652201207088083289655321854542574186818056288055737093286388735691213111881341271211456223289977994679600908864880926163696131184906677041031137594848675212558915595149076242812505675334513454912395849653110975387019805014017586030227716402516735407676275201123736496803244603684700506150481600972926818553335284618870237018548129739179704802656418479380029386561658498956689927949858229139320204637577284454930050698844787874509273476625121121956291991371081898968059226491655882649249033772622796702001078328371183504585714049853659322711628159762963384228386971854933642335651662839398817134774721412233726846347375493286041456983889974914540047888079791367737469803141121638194494948496033727850245203908533170431200938584813357754227156519102017230681960196565446947315158302405979948174613841177995740867408763533846855356105235220127461006272832664683011989398468995390565687127720457596201949917088088319793543093339634607822659441330839988293665083140354834032799899993789046774012239722081011975070146746523172814919832786438815885676993428980259714387302196627181131508890644092098659897565674303181667672512079241757240101390996307960947178754999721308537257069692245989011805026063035040981460733812482596607784541919274138828886432528189884585759981507389333481647019989319195728373640424457704219609960008083899513872743738469004974906955788835165124024217177903125278553521341971585493184991393553902931645474383159846741150172432165499399683303812578752028585214723679455666752251763578682765205938238209709610183760137335722428329304065968414255996522751915091262990260538537252509930886816173289614060356629699131720718992905512290059732775423250160921142063271456576840725806483869621780849926742100236136405365139776397888950136394704999569098617911100624851550174493900865162914801393397264863331273118576809506930426609293730855653416134285446859450276507044907272934394296682369928976013607926676423375700956054070489312848212672999314698327678367242880795380001542426808292014213062435251771140998416848564283573158074410002336471076379154712599672499067973356187051572339551132309093744999972471672684385643627059282111897905293566683133816292486562554900301490064648085135949069600587844737565307496723256848662361722997281266128661703786389504802350590605133560878700486604622503452296056618956116124986688174607560285671775292665224106838119643436953711751327575554873029358336209695549687525398106286794708945591401077312638380882277087485785687756308672621506535732441519346166069924569340175532015944099086296156378466293381034841729035901251214781753240694471514849439754354584085251049483601385517612606645549703033334088653763330820673231164324758442232793704631408878018075417308248850435812247539857306932630926799678470810604462131653147684013556711807634196614379116592418784027268612385877357601269564428461188807885520403153655786279797940413926264055448851626425184480081616360570947596119534079092685190191551958587555461754534787186667542276277337375003291267172123950778705376426125231445708222433245168222343611996981201290747893675883312406992275256884520420008586951520898176708484029614360242003357462704522083588561181450158250101184727544332986082660879472125267206304749632549952892251949314826179790902431163189865483116733399455781121277501396394498308879310264218662161059879800360622232473239336170932213484636362989091577529847052518314131561614151966547815018219423104203097882598311413307388269789090261482564514110697595238340635396943807222259543347024049697557921605262047953932331987547349612136857518152434488053097076021089520155218406061031746807415011477597364393688055026845922265392193436243212213214368984739467516835122190581342179359892180396816551227591409009365475838536975042196783204250703988075198795648842050204278424165716884718553608060683248299555192440874231696639734680521811921827923828324300743079225009280519105303433361331401586176595189475730100728130861713182750159626069637091270933589362152551161222925906454622472010596628699843680696563275931448677662597029991449527281895437846091436164506903406424816904108339713337509179529894217653382032075082350424266065323161462265161248971917389243439577151302144128233079468812082905068719417712712076583197909450756853613258886331511455953740745927772144531891544339479380693578260945721549976988100112002662137350573064098939533819411771714000604059223569704567592398674834256112114112436048940800526234838324233114213403279090174377143511087449677732278684024988558546400222490452520985660738786233787136208181153016882504442421844240816489767799291269267559857327350828389365617189607910721540072308704657423613815427899777067043056880106634181460577843262319826723481372100028199471700067516154136338113207162323961010728698273060881076691603501498576182623313054379116948328455990081120214094675984672833243327168936760256568496965274404251624635120515431250692249561160057374717676542081953875397414384747068496453503732772038785402691852200827457553933916451499496691275362165622988855871812036975058971533585189031982008103524551749529653743045646479656226768598777928716156533285925909908767493194760914861649946615391105875090175732943622704387013052533674095027438540757455091175674473616097719033636021572986890331243197880483250266691842746188607558819960351821876020979294565048255246083717732765300090298123799834895388272481096229995673496786229141174567102137939930712347099081865423836209339089412211558111206009296377910353953682130333071205310382069453436431839618034740391647848406398545187656747545874272713762732666140032986218267738698489287360998832743253733883748598089817974341092572299949437464899719347120231142688555501234496688061154039414919031990427497789321956815850030726855329415134312592566582507879884852489308201782008633509482969857346905019716013480443782136276978085488304185024269684578709468992100498905970868377358550229886598490928170946290736935241216387365378950197417688846544998720499506325510491035764989734775855759348105518714881798471855210150232827046463876722322819421638895107221802203629397258292461119799950363520684586078774283628969626874907659516815738856003098792226291777025509847559421028312064835176616828239913810087385266201051792302654322538674438710646921414165000260859974747176238124677216680781895394417127000266663224590471591549774323424082138217487234973414004009443691118756773291144748532497629339116405627476531389061833183371275427481028291167137059762969563881008310403435289862117675597469740340867076230618270894953778829631660760333413278940823075276458398973694890648938058922875669037768280596556696466325681551286019346697082679490081948078295888137653601156362725833801849215762679244255935496038627227586316710360481761671542337009155929437559262634802214970176055473104982528604985637807705390251049750615009081319695920041764621511655905137295182640247734647865082592359970946001314941814405495212703892968439096689643732700376804108700547016955405469094958707703056018247357906910842310750426245122088940091211762234713082572708701159865085016275895809802251946202092849763120096241915827119280741814654477393108789268973862357714523268236410099068252883679922803601447340327278955091212868551980659983044583624164529124765633308201560024308735910582657645913582733710778038374505048643757845220496021452715908622669281869871194383430273582938775676162097012191035607662818582701648421476272043061128452532698162645973994014687165176754960703622220443539487874254212081892818338476390918243208445079760408670108742381742119651253332449227335150712059764353175308921330684871436420548442150876552955582224477323189557155532475149307081005489371760464572668953246615654281013718969429436996894079868668468271890440899769003673164594668794490455146348142362352156031765816278659081176380391536348268277378431350554064461766900034305075954164425316221384355340843587436968487958276858173160734068494846656697323953361372022060205951418221427149639811952084087176151740469351183659849770736993583371697773041038043021873770438273516909964047089974032148378947649775358322100432261106416486095637637117654546163618023910306099588446500527080860820470822050489707597524036137826707197839508969148065023918204358154951248406897065637393769669814558169852669650792403279198413560067959977218589510814430753309439929592370686535040372430285898861745428421505958487138088730322827483496157973764059368215441072811647750092026131785719629388793264483812530575916145517237823932291689641669109354130760579047796723720509636759052485540054103533776384403706478080610689032324955630407936149987891495163985973418190255627604423648315162913291041308506645150326048926876804950064355360155074183126941559136215841177910460960398067147040801223825213977655725758155240964364964559360525233592131960596538525746580654821006080966773267767483363518911424553573417932031555723001450755167131204782681054485200973349174516009509227647053430060422327244628216278089552884003776899471939888293011250412758603576934172212061930534411877769014691374068563595308282204429811257476951664746261037028308139396141633981925301892399676031459400661260256720039459416143644052588407975497511333429361348790725243956250067551897736572233464189554637855443036852073130609316173824698139053174344343357235996618697509297501608538151674181777137158105099242822944825181538452348719029357157558211016265339947942203912771262389320725357357310112605639558447908981298863741139581077880851575017609363879471826158144514683506796883305888181084267006864489279492251137005426973087275181091675590754222712547635977452274751438388751534965666967734062424652552093987387766390414145078042412789338573867006882386614004621754508896889195677970278802252814656418472274767058679508160050241706208385507750979744303713827408035787817808956215711452806102454135476343093646155722893537081449308426220659156188801226903311154487057670307833079824748784935331273887128469710656611397761132495620946665613648854970647591755282211644619736585089836828661481763911171878229399381352206460715034246943599203396597708333010092364870393155227111475638187990089538804417060697948164286476553223425781630093518990598873723590025476252807008054290018707899654703745487810269734734786580166009809208297826745639844779443092511282524292857441953058111678037210920022437546386394159953459424862968274266852852805017979845678111323293520844430516841760895085122903279505837736605161044702369743289593783059303643632977212693460574357778963100000223179842488405726388425457036098343738121015787185484919770078265143245070844570357739252921063250783791865737623144273848761537332843695000862658977671415118742668894828952774899206445846990765980973121626632187455375742431416562880266775067654290014612415624918897605769058608102164806758062465305514811505420046120317452576784290453045370632768323008708904498055564582950231422399841857865999617153438478761830312957393502000580853310736429515107265078880899687571464535013645608848336522325523307068132316868628083578349944666001723112815185266747441410345754080076534855351390096112991805038202348995685666845214160705123763918003754473059098820048455954685526124464624276542378066808774894562307323256705022180142397913245562751016641905712091771993941625532751594937103374056539856915076370106000915800324770250561708991204990958151486698346469215291797087633340921859947498926906708345772750176245572460741093985217868261303897532089374879343468496455720013102754269431080008032338389273386799218709261645818448326215449748016814350148769712858308122115621542544347797408600012524808878720057716957924041063696823459905461277375832958154293233845027308481619674238863825077336535774115328080461771665502089078931761299420573092295045767402409972013729224584144610409825419560456141601965947347471324647946411136955014707027643164267089367556808602148591946080199849865186192585312140011172871003627794240253654305337593006228553270550201545574809998838622441866838507532092731439790322551631641511309886109523069077481560630118367817322831535864760878597408747687527546717352308607394947040854523067547334446243402134282221823566728818508219123244843379710180189070155283457195071817785817838241193777560509768724171379677914573893430137225843222162408719886969315436388749995907386066562901238788897821253147272255363726214576377429778145236219423216095105881333904749370931312523108217640510866718517922649799655452744636441632214528891917845166890153771940920436792297559934968942740575659549376603848971617223957909572903295531596388491281570703146786413379395443863161460021445822396699649010270128841930795020826671750719967403236332751683298490835747913631657719173112480832409162138888959021993947223763210137918926348587554237867033582054234176747274630244090729931709763521425709374666851432770023484714503722279047201415761562364875071889817738431278361188923064930879546058990150095929745729452960304092386151720344068616286906446569506269351530714200703710023357518427014261817603865547551195694678700504783224765832377302013607495076040238550226940163330648814991821065107727025253083568925020900688577754689336984125725950109271919179848944097366500506557697316056359031035707192795787360822196748192175678661313622959567009374043591039613719923119559658010993242161371875279698986034100377495716976592872898011290268609120144557121732359572554318923480663438930866189171372433866190131972137574064680214539654700878315729211923291848309978443636255733300396079203051174154675106651443552824974349607540712081529741061594034345080685969735298977051938201465942295106909180718267433074266581904420371993126413323388562061813331762714560498349084865253206287504385283458515855288618681796012199280343917636622672257208403966235491033556883699731774925553111892974070595709200415539517824897775337702727872940279094791809808933140591505597946815606852063908554236157325001755220209202361052540857384777957477014185318219103881239320041224395618201398763366969579534656817039409779594381357297726128590878968398970502421426686841983575676168185318412210650526427705906215156846853072361862944845355400405159221883571073039511739600861750118034204218161482051175112054613624643013686896585927980740688831257057879952749717346479251439254549242567375456917018076871454165367152643207489168926557514070185079929060899192767894690509862003403062558623350690690335620072047221804412662082070933966343164748509697202398023310729163305992600410334488607687577386314541581706148762782337760044287269404151019558132894798382777884076402208706558317766260396846665322984444470486835845756609693076104463136558825290822138852749089176145460330009512342001658299500435440455092026227277680556126440352414257760726363011187146750830026638544575490993802555586451193924493256482303573534448462390871113406958006943330188140372858149312485100518226813928726357565345161581253202321943814617738651357333945836334039585864319061679000425262499600714538489271613875845378719473702445739596717423999629820006476054064707514588793339200991296695033676306003601196214423721035481135487758837804483427543804632384080971288722118302561048295400655965013672642521591159674379754333071233869302182672293459803597261339339861378282825254513279879764274594523548454902630257414991845671105296618211011633693842010075603197038722773668589450133115642728602494227460924233343853376296588922352535467536923488378376574333456080944232261298444903334559112261777911458196369953277918476143374506857727599593633107494523487503332698677930386473645139246233443033645520503378719005165623104953435865390869122837194399639483403927853565331666754183706527419950427051522651924955015714444947989938914487138901189418404402661472825625881387086793142443322237118345385651622893857511301884088351785277918086892215388863030115957240299768894585346471762191914128166242495781175649989847071362414273976018050393536316204428316310417164580469672250609209803301464018965546527891595550646694967103264593846204090458283506710101768483105742351140277556788296767261096030859169838380473031789714221224873115744831447985701438468510897341983989746996866653396046793040799716857177957311401418473066329993253020681780697026972795916084779069695042547832111415159930054554142549639112826661880827250718553567378631368497326298910106094940684062413934470092114868991493362221830544007635934560459200213539505922529724658159734542945111840209894498356237415202388684911065787468159640885157892734845087676467378660963153813652882675832214131759417427285535534035642298404695957387236038880867759720335167603209211236639755652240964607151177319237945564007566296518558805437618110999975366257006069771469175628877537771175947876609686755463958691857190734332777332412449830736645156854535324008965014982296731359776696212652264214356723253720599457984372255269028042299915433653840611234263627807608518221538802359020035197488137044782349417262216304046630777773653034857143311852265907473669839772178388149373322495847184301255380738036854703990461544118041698798744602961794839488170955424293402670178745381957379011876425066518628929264685579927789528959547493314036802639496320722925094477053830893411672091813061780635210542672591261135034543425000558503211939641110618437716707981958424591118165000420676321562818972266831687338255333313882563166882215771279026195894690260277819314022616081442377387077726272660507986458008739012169901662514405873998418267993430778978096494950053467154210362367265373427427242739365618339768816109789269699947453780730809049839876976902896602680357838699503360625505104254358567722560456640674105102736166910178963473925395265738941170800274001434982422742050819773056052372659821666323173613835220546050626056488778868504685287242605432880741415413592595138484241923215466575001017049415377444286811171150628469355316584710783672118423886495703640907512889834544052894722540309025015086623366827060579907883363009527811124844452597198960742911785627262529450363834728737132491366659512555852513860496820675000203469215950285832267922504471752329999866888713785571235317357654736595981915721741985098213657939949918654091633805218851757634241982017883434592608428536453233554587230901578480538055348572110916154507564037519813136081385977257221736312714443821379830069300919625488192720887898532340640988310805478675012364970985906795697059634282602100984352167691101989279467173914484038521482383024778612700365221500689612307082096265732132326276033014342860604762070468767089809525200232574606200401939983732901243637282207505969877453821598430336225188097368910428300798343600101322549520380866312129655778614176260379465086471123891325090339225135556362471852578849666330333783255565342198230218582575749150284916022457834399633857166836879885012364938071478597710851992957615212434397712821003657290988485581038747966807515834881880197270463696199033624220816679060523447624519470471847614840557789027037190495643539802022915373988210425075051647098226467224377604441080774379106260209730194408568723079419861104731081162702179427605323908635370795241494205958416393983824722010712679234861511149354451604414958562451855636604163458806355984528225753151157252905913416324544434019502097407732898912015798281292292681328559049180743043237121907945651554632087337996170498892988753621458072467726432316252062713790854732481769381712949455987763096082634447636797650454930992830953806815553960885495723381974321333288142869339886193572078471327185638992493673228459742271147472187482825801851921578044975695475658187857051057183509851090139327559434643928679695216019923614073937595714936907897048401370662279765352945683841868980012591323974290800166625214160665339872529247398653777413185695731044088477571414610222581793517714781290093341015618729268927962139481424030819642477854784314254246966994371847277596363782213145437669792895710560757353127238159856941848059922274839928980790634728643628085078339121247319689226229953621655539490799683786457458789813931845295062789821646483854036098252352588524832329137153921089326396062159203366120631423443580505840063298834860475793835721272791405429411677785069237380585822883507309103269766967863053926224579008948611066298605508667508665402629882248272865682710728971134230060242789043171880685528333352568504794510081307521754708064052450598598296128333602704008987126018836039196214791819663375413177886513498000837670423494931060750543515990450240732929779607785795120074840045114490861955845737053756082576275822831969177078175758326360360203168850406297122676313347435240370497317625009012186537722631178323008585680804693823944599312202462127681484440702636765297529720653288071374455059369516432371595868327018786841275639959433563173153933807534889264673041546592595090690596081251261399633941860772585661358834034197070395793540395648496139930178240447417056551400142490203888066333130338975194155733351274419330271223129729344049276517750891913353971788904926910680880984425988784651856863954977571008667175930455954008260759972279627496673264825538383938614132067951610887832376335200909157006831835301596701263320208387378211153033804725025440010810091571409650640752598137330041495978974016250816176321468926591288848798396225372875634644730607251801830011734365297811044194377844659362907178019217273775897280147116076569367489050368780451519756290731123944504666866399560723589589949571220705332311262270268268616542325585329483235608545899554579973333067810623256693992903039702696873433492560309026722854905958827354854700375215372356187656367269265991543486628499595259385698535932636812590024121740172065789483150216687310505412606761509740885521309400863909863262070748534116936076489511953223173942032092856802574741779975675554336932104869648899992130078967939419040438090381093192354492738603909277186171794724674657254480544179206850091630495109485620481505942452709468681957767305095043910634957730306515581607451052194199175946935595435461193282728769652461393505344874573291961939843329662295388085640208032063557276209478340042052040088142817576752968960847888640641568918201732763559235206798389066016920329717735213485076743682672732167817852458796494736983500348362383876012973326506154426101192560961486164171641964484301924597292370336434521318818995253926773382386090474393466271375280455789862369633878091181241087619048572966623469405762680257162548183965520024983292814231085353051971010819350309802220573799481094656795469147598139467287921302299215607340404238185827624172277627300763271270095683851048418435334018506777617708579661211964256969834389614048659672982374982691084573026598951957701603630960569719007399375221952678893621744549073050028166151242154415730669800755091987875253561938159834242140074638697083854012935498060725051062142743733795246410226935719606887289309634703525367578064394180216397954884913041972430749316745035608764565465418888926167951083721211961076558187173393689770816886877924179731607219174901626868300891666982504511544942337284322584657982491958289065154075777187664421479452296184681248847488637128020098930926322490293480772213752175184054081667518378362262110694123998042850408856230941873461539293091369751204974448111428094867184823999053003675172386706378383852303337263073712580054996906557863943936882177128233344103143995941576028277125744176441010855101080810086040579883983238632102445545076719516773439496734102123811097113934079523265474301478238240201171703398817241599080581866350948969052748298707339571371725666176046420823823516962636650427697113653037694380195146860290028704026604848876642751485539834863566980064152221716074534367320018688169364999748470317917587402433349308823200390795445551262660781843676867279991710720844344849480748618076187060417665097440136010914001895607728590379007524591781806034513232035024932072196938915306901930515140351010212192755619147974213347689753439627244957669549716411304463402922688433872100648394256067942398654215522846389694986728314776763363794694306377870114097273561522738549884060455468535685189137187943323739498592604474511607294087663742383547507307545748591003381594036819017233811908758606115217221774430991648874270229054616603438021440767806990908149120039864245135000996194013602539815697315065880123067187116506347847591393141035112792485551027625325914527586031008403195516821340637840717725534278370888861783819925683955892076238973699946672771797503040566015004387780076461148558175078928226030363070471350478918553087126592128941836876310767902662101946786950045466086151606905125944458205998369272235057017227315409825525442215355647956808158203704011037303134827567990167301103328700193719662985982440446908395022454499126723477587086564971365959557503135183339464012324070316943748056224284032526468070273521649988699298889790044120267400192985112284545066343920318364152746938120107209905273186759742959648609077326383985973366233843438672145131457990226778074676507535035589361725913632225895420530092877707816725633229582619636758480609786035905118850849036718285241460729273166848305654261751492833667515453567082709700867304960049054066072348061043767628669820676148987631962258582061831468023569329846680022426129080091353161889451690621016694397916340470272264120484863246146956005955759272791870775704110108928504377041519784551859161289848373222384353527858458031676794217448072892441357123735221290782855395398711362053506422458657377349147342210783782795741617705285772004379487102532723099357011545304117933258304497033527628946999019426615375548344590834348778793151918761482902262649987631126782037618926943485692524739614631517038619089416128610874611409589845243831397433256607157015576861133572708195475942348488423268696319455045162314638500707892838167117629301212446576141879646927581384746527297162685054075839278407359765800437515846716618083282002543679144577783048710936983186915057465400083922658367897259068050697190877596256083231705078065832232732020129233594712015939852376144089501310008520074636856723613154328159051562038743593567983681580977341539932088062633089482859878203112418448098567791222530287343616339120990727190769301289738656251509189049038110351666959073445399564370331602685511438619099724561434302541471631584735014527238425110473557243483545841259708517926839782752018084931611940114267011971241150209093202771818314084485006654492482565554943509534174059789578594500919263769576975009562957567725700556489227012229796947389312983523106861423747396623406020498185434538291755110202631609087565869572822137139877517947763316299815240097741334113644778776870609076023093222544554710260137380874391732587455928700841945876576024264109398048123116731872939326160500155496653058827689857073794119248844699965412833813985179069050182310126726351082753618816140018828653482855540523961381970638846872876377359476155729181514063675425383372667275415975811677815442196184356170535186706859778042164667219676509849942844570225471304019559853979503082066901439761824575277301386397501906036925279743592974816432874289538534545773542062091167685940627233364041029286443474938788512585709448242642590358130959097252108755222677356918403293571308083011044348362491934238425884729532693319149900996381943423333476679407053524125606259181895033304501820226540569270008921379053943541271762234822989648904789511752262269544229164086695555242827444551320492817347231836307002360609069200326589128412628836913339652965990413447732700063761184339753927072872709729638588224645008318617343048495715846561222998468615797410549674488115680787076878631744634790072341655182005641208625346271700938328478081186565342103623675218026842901742187162525850446348291042764586026195070700730109606484443215173843296126083696904841180799576759164869597861302564741780920983425998874637918576858039127392032411287669762667129224440951793477748564237270706447465433667434857354967017866790029379735754039296039212306359041185492032819744190108640858828174113187396463148410789181249804356952421065642490755408755269781089396709280350508688762511777191431520049295092543482516539238415564099706940164446784067546601009444019293343903203422848878074934732573189744346818789513504739209972300440259505054365010073605202809514610672335186533626932508342427565930806223445800269680066404722704437812799414935876968882428940620852271870817276494793386868604291948155203850727875789587064991045275287399719237971467511801808960467633427563229704879705439822458820261415916394379875726815289102557313566508699887575085716308883239823580747530429558632315692902152958611804757210394606400641659689940958398377885885704013913818221150619506773641355812036639293263919213328239660516696908371424424163762674574431568655650942027340557779572197282045185391892394646782108920684474998682974040442978684423277997059585983300880466241192143285360797851354790303536035814359263434960812637567353935302782900138122269127656745702211955061478919571389226272303616236533152397527178974955451873247284460097327936348029625798720853291405309500023769384355413786371784972113161597764609970042797699487788164260374815092010754927703855312090355745742439778985916614347257504200070891728640425970346346218786262458861681096099741812734786172231854212122921363393345760139812669576065722275888071956923982934687301983609112671377263913671453601235236845861404652721087626438968901805979929768310998983204775288321444001279036073704961552320570728714592942654456604659252540526331654833942038265940307131194702019654442422213632035135648106725538090993255555012616302641480020489724732462007493535937610310266761982800558166321889489609412109471445923433687684096301001376033373746251927133541692757176755156981573956081766515823346922949613822088365834910422873551403950729504230796857336221433555829105366604424358976273847108859504605109830712472220626975746616751577521248175358809105506883810984980387310492935614504190978141009224426911848040113658010615032411402185020628059322668298665171507280789102433153833608939913327431917712702067212876108498399667742422102602477325374103569562264207809112027131042365959589437618755811110685011147587562503692101055460178127860383649783835949069176277623501442754579713702697175483919893325293112260047862653568887801423607572304409318093784442388795278221337771637150532221962906488494496066729244596064130482571062272128519863817751880963978777392463079403694029290711481083632493305065109462449456846591275920790545951461962590551917594850187144514633003169819257630457513741777399335013013031883117648506373736889546145744115224994596189166081379114367543066228762488133376025383533966682108315188127497138077469948702205151421851078596111587676319441563192908014065195910781693955852827235510020497989087819703408551871453687495234768066966083045857390240139141479990929266383593379469251127845321008753982986226251404391392946458135724779186074594226667990133649517489181409905831095025065279301049034797822918424037781489735477163317708212455187232622181732374391864844632407513261331361659088882279460392078247655590320467299795942652618489121149805758136241459827782045185588038805081401580100537886010234022694185005231222974254030415559184415552198637710417977967717907905208445909620004532985981445269437479145073397225661875866727170442298355556286035666099103983443138996882145180474131236839102522721839796853242866741398907164789839660214191386108547719846505745279386199555146207567257830428394723897308627599400101790318297984741612628715447809043724198137685871010742753640151905671805216883240686123602456544854385074940382959397993870626226108324972418905505524802735240749634227949254525256217460014742764510530794090204550149713039049131456409073996291694934668623003370941186833478702096329088026279163796595173379358732044966597179138638768780996431216467839208445159772873788652788265992622988429853155207707959702425610463561216020984739318583674273620127779110996648806617072058727626327658162027730182780420993365699701612186916677619173851306637666716645938237071145167479225815145824757672375628386110657778751722049343743756196712738500301590640419500239080783760890429134778434734411862973769981771329682184032221629529574761845207531330192747812917923269815068932618313073695209088256944379660195212283125804403985353724281181295871851591192671976220064546855527223065779103210501432127711406557658622191681114991877286551652383924293285379209337548650280402515781676527299448341802569428128832981862690718302977229185780061139753992290485644213921739083278311642129749651677799635939735634918075625472884292763869010495566543897870375852648137037993236368978923129575247805344267815643705248259915104791512961513417899147281682183833129741600901400281066118055776056458742057907731576583044190493881985492892118194083930864387401871000045485131001164478688608916648586622753580211151220904769059964683140970324041497676595742548513103331880296398225612027442750228899243022004933067619965129392087188646781892289718209253030866014068771909130823779473502296558948659684649263266578061057958192395137028970404608312083766102246121470343732260527937573031106868862737701153296722847729807521736979498205448101619399149637680793597303014196519144551666533439053026542784231216867227081755048209209870755655700217608574790365899723685096745183766158928366291752099525475435774680173652830537869657780612470619962130782957110151384509943963761382581536177391339719747828135502206845411524736916744923060086578153518652521540038383969293738466959669720664931942973283632474512704058345438232957799576058255400562467865239105434937136118234098222496440006671408488158351722531813889352613942452211343788421854910861762743299185733356715222953824603461952348322882753834217411046521806644197269116915339747667714574033416132929750668491316970370152496478748379231196869486140503369136410794372530156097177368278987931454072498006259915399239165056658632260416834773145611784083511659838043804575212036748068504175323916617381506932629355000973968646375110787323715031445898956910464304695566004341665689493113265979959714668574817493359438988413114875665563580093398777305562056343331436454424624621480908528975683248850674246976410015669452780416377258812606203617340699975101327221995683093377645013626742015483566313594323530644757315034231943063755400148651788039058672294767013482582849126212170450667162586870629188260398722483077119413170835347149038622350400885435557214372627495503494251407791207939498844456032952750073396500603189946289325983885915854366383012443001612389651971920417967246604125467531385919911125537327493620652794149253696526392969497042777782131463653473023638235913761728038356133160785717177481781646194175635511652183653187688281164750792245714896741993447759996989822909292444310430077709514959280544268067628082449650712029602132385277785292978940318207901135223672898306819946470982803089840846284896333516405551661104686095712817524432075936709651993732756853231934850332474213978695489688496190703484605881888994814687787823469789258448020326713577462135849154574894243653927349210344021179524513732287652144634495897436851399538269993161405329055458919051009413556410104542432638465162228387515233930232425966439509055335744518250719086581035197744891377393837631505309919068656546277518567850783947179996320136623844633031989706566501117555533445936213554729685921045750865943334325043509455138857154691758892095195733019587204079244326828155425528711756724937249164301429113151817419495256984096370560646596613781674420315568657389711406719872694804548371004150887127613103766022605085477402799969815548480476399117732724075390906645006885120505697625256064616916301509332907759650569790862725657881702066472971378434540060204284077688618949098921923029708564502141614720862435469906727759651820007114585033645017894131012508852088192999970443422989562743127052152042448899058541876875723503604808660618783437968210217551099486444464834533287043577964133908094325112356678929835300962810552253655490944479993787870189826003760833016709535367732746814066785613904476663548094846343419371379917093075587080982671008193716287926602838958158867153687892042307999598768148755654946889453762643013434873796357157892847698181895270266128536984601015792774331866187703514006847529313602944234158928190077270347242974034117056732013797550171757778048374775468898194602420963592569946983584652588195930470764087034538405066876802652705733414529489466165585166919464958885000440571363056245247674839129888236947203751170465207930763865186144318594132170126489041396982853606008286997940013251911751339664179642682782564251905865303434439937769193694890796934675446282796946977755839693961781831594346138932592449366037247965532397854207242408118625078848699742732411061529379338786066687999287232598316660728484253709738033189977904996470572595750711949117128626967602597539736253668707834449223346489861469534964468287425142936803129446023606131813952034742420944279758781452132624127271828963471423901648363385680715347956877686297759816927283992850307697693299661323218631970717019094223898469919617479152896009520210077810200356135109271348316538354683190399729558597594110961620908226524011449603689793088795530761581985174076663506737346022692734599373618106711200588716256041125608100497652155198518626714625839159443889698605356425834680893628686225777535833260233409087433885017349380543345702663637116133698786539939388782396516158872206503914367074472226048384400875374981636661930962122411117987538349010510910433286528605997961271084835429541928247104457178415402679998640576421748855132012034553656160139288131136111973419514034079318090611701182102284721056813906213444554519760720833948333438718471201713095177402458573254311150454753625123438647122224912087491242962511274739622953929850095628235538686875319194976118424207537238736877921160560085198576281781841232787544378004486647577400699271627169244478882527611676739204770513367071816933271752392992761194311775421361455351593446097700535021581807589981713079564100022806677765408780428215769931020868414527296785712855917243448721485631895594997710234595638935868199169841725127948757669410469846495869886027867282935374174196945504472159786238783857956472693113865036875294959287701268610679810000995995099904685096764911361115406618162127157278912492524277307039702392745530214128597502234942769654622643527784003580209095979707218455246565878588745086558931970608735849604309431444752266226419332622164304338233909738510178760660662685044700981146291379783769215403988982703791744188561436702146143118481597446463256052869994567129434054936800260895424977906220195086518064095583281555879431654073130865483970340838971823483517077333499275993347756448110926129261009973234445804864356715347864413617273029180999762096745799172459098511524977669599991158178090082561003153580580395225110839519267386057546379788727222416771140787543639657872634217304697560797854029264212193454312173158913473338693789422456823046991291630040878884986320061611586275805483055291667638752507876371118530252403352271635083453792164549654592218127342778506126942116967883529436681509783339338727464190802097222314784614385389047980828944056421937442314027454581481955694928099448561458115190329016841377961927774952152105008564448570526292249386625077141795008945889603980810354446445616247879040870845919137382000294803628162791159008641392850357094714894847759638384654786308578185088477654646133204673980839768319717383376099552943994580644781484413407111899851195416218729711924617688961217885780157109116413643996463260023771509661346278271342217441364060383245614793746514213114951248809365316099002271036531285171944056461422236983441018571059920858638121187575511503663072261528251116665735769667162559923367989391425231175571193419209631383098697617689113033894591581126380398959933755830910673699807810163511584668435646577957225090134491414501664783608204554115946474627591653881648436174567850052311204036247383227750026057147430212761841977839290990915181796407613244812894402683304893951734641209912558175385124036759572072588128325285662261144440848379551585744437656174608120790722198153240658045350713695232631913506483571358489295458073389781521788150171036261205098389196260404886269243394621857176405323375350660419871648621089238175754298533495114420851956722052389875297064422164601617513968360404396343393668067862058377632618904867107925175153540728689122325388443225771327353708165643535188361373301272732165348162942780752475937405753299599503977084960558662003510445924502254414611542271303552069843619960963082255964174412568163822987504135601866761449032646226162488913579540095518489100878585444101124225418380820034312018584588056717536180251483038248465364564231970585020787999511207972919452225058324865872253693829477945843315049268204557470330680212484059544804791753059641374309038193350814989943150444800997880922543202185597937947248037983271112821141073235250643543624130614595553391608202083100721108849024492063059922488507226909345943309468136640331593478640671055090156385370582611342689376812241558778998430922668257513666322322267893088565766268711561260347225441875279093344964422518843151917643686856315980504366544285143220200658067709590602896197515375585053695320750710277295508022086028691508211046790523508141077276200545088481925532461152054141431104205306887794821076985168878071649789446656138366096345813793528116036314486843185934388893522123861342741579447517667976621728192392705370874477789385305491763098330147047395421947550110494008012967401483278980390602394268191516491027409109472230161100844601104994478368340400761178893384818301325169722102039632922945094287168476391644233279203895408115297883465568140913342919413942165022322826012968290045423925607895750243829888565313134504092767233474589464722655023641183757567378723079467625288708950229776948484321652180188772389783499384569325393906887954846795042033852457471120227278015015592696450525262458505779995724166370391973539371253075664443384990129606394209934056248212319844639436573658493191815861645692315212308231211316086867435810298926070690530556255586905947045799495359102788644655023613451311358129716711357031281264358773794516091343281623907124954043843268260134224140853823981179623734144384530809611765141233715209803304415672399818130161144424205435274377927351945025741937821161214393250215296862438586430725963814087924935745049712601924836210504108291710085844248306220095461204290480714708345826078084862173462137667785440340810051368464839100416437505702947710614919335789363167852141528202436844235324961981142292739642048737893318830777566667626154697014363975337343920503691386841997199389681291055194393726883627868655214394806267165474626908569307392169917945455112190350566020298951651717824238147309690423255980049146242608913618024497200348462854069017798784102415917917471214405776888340181692931333935758958674607859661409778127636401781849835797998120063497201384055010589530865176084822496292365752201097192520559006949656137352860230583150034700650719420717742362295009477533376102636554243656512568300839568151569520119500298147460993760970306407521171781258380064563607821767235508018323437713386987102121680864094615922590199506949826141878447865409487432027516267258812570306580239575764101393890766876840822206397626427573340034502738637469051221955790820566843329861763948305077826051385560886398786156631181824022848960309768262539827500517276074255519986867190376721247759809982886506404180020873354547528211230248399581274479704347334613317947057942653347587029740250469019047774990003401225619709704837386376272399149209946078867058756331841057940098161597716993207246324910073506047761032031829105255950336924936019051966113437378171971891218476595678787177141758004402352232698865920299624491193945618141287892372652813424766872440478479955145883567191489251999044522851658060449662050763139092679403775602489966589945045175698257444621146240056480981774797576649935277698741733295956756065855785995664093072296618244773454907289069040341664117194088674450491808995191794555185395278666191992275823979105479174188226601937264874077324499447061791867653973013263315562072874849605327577109400368471125565190189310125357388448814893801251179238970117981837682424002223821896375631952285563126455334331474828426566880105860796443517516632859366472131943555153101028817309014672211458740832320445999739049605566996645921320501926357921002301188167052187961637194645258895152208613171644366808547656683146935925731246454569008524039633235044598129610295942631423038413808003601924292959995251101016959730524131602492043038424366633410723678939487076473615989579891902393133415994704155548224993374389219224681439903856178719554857260748038211050385081624323604677167863952419338832463548486133805855396427229948126233214378314224812280170465850661108364182868003677756279848914687406075998420605440172076613342814921362918237405242878879915536493497419157417880481286849095492910921134287438304334527558333653075740381010750794822802733373246147592372004941686218944279352801626793822520384803136547856704751711596729280463391192471364334704846060480335200845555376908727545800652431665279836986377058870030801172057725598190780507398294210553148467602651480639519110704644682973488134715110764525408388416062264294235330644103399597657527816892016368906919727205266877730608139225769603190725961938264841154830839493594277777318046637435736757084234451445370537962170562474412515110183421862736738737497742735107733251938868736760716150405469904471685053100255990427014581724155944145382883729667204324532413312760051104476430856868429483325688666908217302311856189826672350807732110935964967793719261403637697780116869604623121541980894736227501467178586807370542557245941631973741687915670408827109651487705933857168416835090274489243592574175818882422667294899246543177238149470445846039506869023424216315178162338706416736712932037301708984922473356907243581975164654075591079782168637420293880584331659554948367790974101584265530154901460936925472577514088019376625424604412085596248096292066138846367587495185230361784293041771297845087535475763735890194234806558984704313287504378264654870092959312517266166994906718968070940255552869649371013315078832125583797246758205450851225474176077162203161384190572428155596508787451751484557722448626861687951488000884327644680258196037487985425102589835536122349152118985506685838766048972077323135298357328307881823419550759625593361072846039258156588353808023835960727135532270717502488676048067914577525674911085676571207515116006050148570411758169577924275769321903148779985643135926432565403217037980635580134063571865805690804251618703778206146173584523197910916531180698254654525745439072198255315869950709086344535050818918410423167309452849461473894619826776769875049215732496667072313884898208149971264466672363604453584828969425393179043087865184484550741495827912624435875590545049741035370962813138778037927699267898427708541917185881161602562373399017470405861403379571770358934703692615943325760722175070293338196198944765383352732223998499740458188760088234907659590215512217237129875460666847991009841801307492747407879258032114623736952347999636328315959973677978178755255669362905973377584496182090820245785962032089098886580373492317481703394536386877172983558705136962995796007722216815883852747087113041963847298041286298577632126221498624394726604980024926799501904253694244171942383549815481825849026324400411626362320923443679542072200721514829065981668317043658032602561007576816248363540174831519963610635795021528309864500865114228300304400578584742285104844936729755392495697884228575842483289824032053948639210241588626748166845810185690575953635965665452870438165596136943402422202071897359712610810646156790292709941144080207878316950852142246033609749109579079814858194757132462135328282044870877176106000194271623186430190172248816125175008134557761120804547185437883789189415636134940570067599220496819006123835856347865008998061174042281359232215567796003273854300862574424891478497873087833983589426050368876574071280990875914190513361220338095298109053287372406441207262280905514010603382847867360789275848166262344676774795910404204814471086903409613733009657841875156239724332345775752025693166027196610420404180158095193334263832735181992877833686308656296905109060141493705462365809613585785028907531753468524526125559436377741122065133853621513024576173864562755984142180774160134714573938041917164118729311459735668505336516698113250905988500321004013679480197606410414445746486499354513885989848130350672266637597622807565437012850016880902150251945140923924088562737198175995446383130383549050961320689541370798005670951772571084099044237471712614617607855742718339687316851374322606287890429853076500446741006218278925705515562675645567526240085540440472608639000849713412236608224721114988566029427087414052598307276783955734714291167670311562590979535487143737326695763169935647158759646722368653858309277388414431488269490582008140808442659033752046468580399900978651690152895787296187506036001949845296196531291293481133681050421363836282145595618270122353257865325459755175809525937634714573427724872609451462024858475985353754090758495357801795086313971061078941528782512594833594888095104294718395579996564495840115098871318240775544831766304457259622572158547809014493818060533280034424322043124790659585611353781029071355141616255335385986288914549176083867751650247929708357949408189663641705074154583331467788765346468104906421375267584071935026569666715127863077923392185148177444410471269570952338997499528805331870732033728644846323288020341665349547259644226348550418354177905248955091050366421455387181390896570071027498999558785468219608501237126975616923073916018083128598879870421712425780691148833201679460439999598934743161412789192434801094332055140605666562582568579214417214995814711131225694956889068418377233299617594658149217163223704526777215874611447212567195602353654956558940304207679750871775189777760815010615828579220438683678146189659620024712100197109480463642727087637861284457537851469002757950871194401412746676824882737138666212194928464092757138998413286869579823905218229175792790558516361351593184145314248643609073948231977974447608143396461061577872730576505763694192621449243560607775530311522063348670052739594513208637287576585006686189821389786700466563467524153867231509615077853755421947233773521946054944962959423524653672301869500880897041155099461471334557365807448983564698577099249382858611069255344471042769964962401020279374686253543748873164303671864767866086354730004694904964270908901327772199716511338264844769566054888943794162784020671272388012710604808756826323413634812533636591435944099345898528291396082265222609878896343010444343309338042954942954652626762829731999443875185816736081309407685197060682381178880088364112835882107909701987378078601277425217695369643695790202808754331111307749277035324086528435704713173466315733379186082015787729605585034837465377192395295272184412681775296951016243071576229711093773585672770220727734528246812076874801712861975095166813110869785493014414143880153547619050164185512121462356330326661302986135745491972981987500139421505720812861358324247958777631340263843781819519448093361631776934254329166438071238599285690226540922391854068639438832900118843590400051363795137883950551234884673475943252590824075053689459144532179838385213093221313541481116438874886653804707289916849091475208146791338445009482320565572294695315987650401674100982866942594597894565959203693346917524901140885080542374547345866058393264458049947968050269074889148100594511961863811031865494539080730455750950990095045324502892286079914554926132065511548999830440845027563955684803315976316713816801892143144540266506734169288890449245552644879004520425381991067887042774800500320934496237168642335357603932326758149827666468693106829499721185624816272928781973382271482956679877321442508560063586081593522914817720442642009134582778178131265856193725328367861167831607725819808443967188536543727229817382904094630013191370867386057313200670072872660626646162774650820873924189236475502637986241591643611843590855062330369392569947952866270805537687911273093706505013921708952135700037856358291890801971253556083342104725440555781342747410176230908002605637010036440743153347767686939619427447154666761243245622909194058741922742265342925056950348122552873235016902032011295323110029531683705588955775994843730128343611969176633615452472288962282898637285419660287340714497868697514083687742657339040663677014442882328157625846476799358097783925385482648278048305270026033800331296995398018371448662802769574867042365827779584086655129051380418974589713221056547797518446888588593660016241543814088232502687875803634545262147734647825871569850104653314064498156240348545375361302214934027827376511492272464125069355964213384245310921480862869709107284937254408143569491113635308781562517007326345746275396178219257003431364062573144489033381890398405692912687221115242200444672270119161678120391686526343878890020679962102827223129091726042665680875457383049270028253052539374968768108891900151985831566066005791786013495635902308453809413393109891642924055692036670736607251686236974947219339330286011560025876606642343750882702254077805600604484611630486829106388943893091103728036159215440406184985382661976598320712420514297020230420609006776518170917923041453021238006474458440583454281996584452976450540809046942512927818365497285921722580479104749492145030887774574315281947021735373010018690103056994084617092170047286322905914321552287009046085838848194941421002321152761414392182433633078389773937323284803329684856459848375215110185984982894728771226884610627057624401882068104658280742342141871720714784730625273799212266065397234308276792890464152923434119112625797592779055528349408921668179080546866185489010248139138371107965211394721390399566418303712097175771628960817300993317572816970813663255536344367469975563060578836325851134843676903293562692861348655885627165881911157169556746760222841360912541329911763888954633057706511644794660764752785482312363915645492885645814918940223083911913916950582442800132880315937934795427181965278631979963904492742974133872161566763885514603139843987443728496362578928102284618125944264031756281382478846646874910062418435608160859247565752127541079608552062501446854959949192239715952246571384196968990376669910905051003232357781048002206178709567352370212603708879146595628989464685113633827090126663042214454375358244864344115036058218392608581900843040358686520605317703484281355255862474486520081655258047160963650686957548244737071214582820322573568304939662903818562924728977980965218222904276730930709078073216059051809422409020184924759421595980239967873384458030923439191450307562273542226828354246428651172732165422366206831129241069110877653543529360197654581249854574267138795070960896610302704797445236698156110458984337902448991445863419044268875995560605327757384926788455248443353084477773497138679625174778090859712830671003994459972678302974335641912126845207888510651119089978448966558842865299885416658390123191858615845641758763794576411120769198747693604999512499744361985806065443299144593929831991591022914041490923130162123448180040001850933205849513210417001065107934419196970153844293340472577904984699541831548281639691110734642131879886605487299591854865574482476783175821454341610567185945059280251494785314857818580698188858505035297640956863579764472952975151191692092746653161775259669489743969240333534886218111232080883562488214656774460397556582963938805290086061246310848912818316998070250529723055008973537758947397457874984500867305380236362864054740253853413766269086169661988278423306241901324982714469046717105769187312052535774808828553405308856406497659432003477552731758384392189937500656548346479579631230985271273133972742574713912149581881475009746804243724743640553897671464577192347601231321931772843136045569772085403221905730897504150400548904873982585029107117620999802637454044439889210292365869682261950026026844518173063950199623144886281950274819701263032436878048184956168774983048048570204695835104173591978975251658635562347971590060805927747188123622457261829780399826322015357126247458170261871206519151225960051055660365934152567525192379509777282497143842396367157063626554592757807888792086018090736310279765110011282185214606613445242474244111939391269539097037161635288121511708547174309483234394316508201253805780063223005217101641995086432505851600218329508613523864609861820997357076624135533664224927404479336400627641286804546192423358732177368479321967928166116227902677508573509955523105199289957048578789448123483409156293557197446630777019423650882343684777976396254217443320421700680382328477108525570672011297149472728318534128645706414483613495899147179681582250142917521916125632263515299204321354187969742411191185743800062681817270867987661489129836457298764706621503691311846266135206779164352383346295097571380288805243412132390000483816711929922691152871491453093140922362360771639794591873609854330643635261826477829645998332563544558656939696698913256866479811661434201573018725253770971295366861837108612892078861093865717998439874050429084284881156931267000361818932379791989823157713228236483026764223294577031959652859490390737477741500589421218697421608889567775074284073464844790513083887562576897968419313620019340304272403165632926050703534341190950278510372869086812946872709908874875771398825767991730154929691775476904173340330910336096930325538635967951180306001412009403892954451002098956791654986362572746568705435399878696252643048122717445428180137294947462774539430796065130872178513868776170333493724336286423722782406587202838384446162400303746753165730679453642969953499634749816235747063739146924114784567071439281947788243574072505625029978367799933059635240182445562943510467470670283551603697943973533341289748841941559621651409720583225873144194039298325454798110414591407849095737950219609471351482658833947210033067166811826848614625076880784982786156326683019801058925510802829428494186904835592714909636678660186650979720818854960249611471829460875194678329600321359177428391360536695237957354258882234282705142807667438507572264340599947589717035128244315664436054730283830355224876524522345506457498737820449621598282760296550831299789524803460463852924097709190006292767961696947384342440893387275701028176054675690012490568377071741662629385246128721711048259838160605324372514452800394438417331215912093724401979470770775020134281856535636332614439927334164933236095794745890829193613835493451399611109762209039525495653849755890239435922370381316273345496803817048995242587848715244600278645373272741498394707610526340513733513127280900620972741847864754348947750299438119427322106842348995071346535095967434834525164306214709353046074054904789656497601720419966773276093593748558845237925044868925150716724789273766304027696464286193355011950458687971786910145629269221904856647486580395340241557379894000901159299614729677416222327902202281219294915505702993152203894480635772087775738860113053888541285783264777156083802268407261883322176794918020418918397199641184264339950086820801200887950632796336662307450140976633414392286609471705930546361162869549668307615654890385192200320119445989854545663083773446547218117932268085382713104183136790697240333476132381127051187374830275687658165544614965058055983594333129765203775431069483108169796951550781026184242525331178296400680960187556322281954041708625501074338519795604060649473632381191103134372607453755025642990369989271072006443546254505492836975272763956789747329405458704491393473719421539931242253224231557291655923280698229457041988571955484191670388452758656381562190628721779789370495302061459031376193050996988139104998966658585217704246963737994043436217059891279374190123699496063308775104044148636864446822565170357634569301447890321985559014791941708594411468081751665374479091520332540187851418698913647613611106492473492538739907574220096256518572112854181143291227178890433776637090238771812525915126016751517755179696891495833606007053164045197155095005949721672975584334211967735338188725527517325734576145980317936536513218968236420685265653263904779766758697473758277242882537744380898500345697867771010450160379406098094075291068999481233670240310548377588745196529886958272855956262580342149422556636680455647260685744906728971981723648436298832977941200748811603902073905870455601275286398137329437807360613002109567887899619772145533595676928492111699513002269343544573906451933080260326482213117993583179816656040172790583197142516901213348454180028225141309675278548672998681919011088354649998593896665533930700661398642581268404005096736660427120271169665786832282583425159955569470470361438965909959660575311770911125422072884655396425947190818140943642324327257943894532937811989245688676001349505722877624694394236367070175465354528537896126136823729728252742072214887332715164475434178075262163985781804582198656024685479788622050372943188370398935562935874310967696602052078024486026054050179350387065770262053877870618816157100214436485835819310076313604161760252958557401924430838441531288595078730737413049082175756523334451121124502781451267884164187315381448204555276008730079342197019479106406595654220519218535308855087580737040880869730403471215842833530579818047925945165864208760634580347652839035349202916430077105661463317786527210656734564615257932760071963166441508268064135711031286673928809176750825765055614329134116177953564495904014092628754612347206984169722438455099862588395495544856309024468071569469161457098693587265713629940685845075699976421462424540870246835638851341505837028988704412514771703931676503230016916988296795605771369735753260395712225462452377090304584449513309253626265626052209777878594670052103393968727096923139775333895027122469219028877914422835613974655217122436061121261849592058684286253707624458339558610054854586640013921521465656806033142552856407323330741142052457516900814245626981461690778116232290763485304382221018711037837148774855148897094856897197493911777035505265581019135668044050122851438792567758995975006907205201307487181473583829394334773830190906185744134612413464134249346721735999451452467757588192568149865048668494593437823023405112647167441833244876115032627626534469241837473843610949680307187531046235246609252822286015889465649006657435899355581070822036040350744051437782343307726081331408598707227509612644876365836930949810207186243135528157494570357619172995857572833349567126979733285041137430063418134411142275489072314502617959240714115270456823245501817423855639297745984707689925178188423552940730070302730184922481317893427657647462388522575750833987057241941557110376554357635561025508500055188638262221706013878424330074486809212156923845478102364973145788701657937019359525534700303182488935478064169644065364495075072098991781846804945277954014260274861194318418321233301441326838833743893594918427051947585346738611032188576801901054192271972032780193277765517489636859848928291532028364670990453492110307655852672878170188996709839449318186923492904982445887465069950962202455920061860840180343943133594408987031157283303114977985099932919712332901826877857513325606878936208416641937025198693331106758560647766078023527233127230331891549430968895918856973961262552210241230537696304961455821086039279813293054006436198627539460120280072425901100101552729235664699702956010800035937549754660399063166781145376667512277014614757065798412919998730119629052230146346300762461597124644139319292893696305634566176086004793481280034448443826946255757662175926694331536120625645504610030408528411912666371957144732663243396625062352833716326400238954410241398698610856192811033669502773629127496638731829623821333707752151793825373120130318124660837618261685146203496605283207488659175860965274527641986751049137835765777761339212638676514115444897332291848714482709200576076318086623277059371263061482266208191823073006637299609696675029989640809861406143380575326532953899313537516873633764792950118786304611653062438933610848276607194078926610753427526864533620649719922930684052881635785284227453052389517957960321177127844593647520459844924014631030970036642464911370437248204420821505320378440934715973142427239295888788788978533914677730376926374752671635104796121342040477387681722017705027379035948486044817483794629689581440709426492294534276805837004623670890383152179747851337706400670863805988989653997075867345479849211776752911401688514996417938547365401086915167404618833030831532760591568188423719272881818123166076800691306141344948976405228872444671942837409367364690399572305605501038329032209414897212225151211003766820055169968528321039776679349786900420437413876186380557706001860519186200021195486358794428754139367616812552445534447106681486923721300517028989913761246138296427909355661764743007500086409556037969087007531571921904965376220209115901769170204201123100565569831482511310824540472357337034924941980484713935606531531867916500103845628978694912902301175084388149349964450703825595468923422089287695985875786941290378750615958564749672261025918641664543274546332241763938040794503978389165605794030789464195350942739270263267027387010439898852041156793032528325089477724534143694861409823085728333736514400608820677438117306770438731983854907983243389899132187702498773055732329335437766308681439517493327129737531370074845863828663474681818479777390254623869826690836287714347384118366937904229053672436410466494190422261252980327888603664116478437046918112560553629058552020900871546415789355652000766860598594238373213337861213681956672710550553448323914969474893071803850155887102371890105041910986567149446947689940084126373215288443408339714636557090324434539097601090614563049802795971548938413348258793812031604757594685997666190173469686096844233422128817740884213639415568057198841114210863737436763446147460295836311243684711864670998662791896470588230188331022193146267470279592578175734758486725283766244072255839609942907133931430131749344656375706336997811184681889063929075219348366756081461402597966951561904402214117718219726514044968137136136977067137390260499525804755803210870173317936406166035085324611827255098674763329224043839413688109041421033848338178131909476891880603595998762704579917837550704316515709485960125630543574203216603520491700690290472573960536805937907451796446200321236443000835648184621389888938975422860621588422196707218389703984135337940359932734459024000992523575852939904311866089615859349239911212579424499227342704463568091929878441779538908650155332599395949204295977088783041234089202346075489005339727000493353131103280301423019540253747954471825695814313182270903305885941302207368837746678144925921970411929910228927456947095803034245412321763767551422668766282402021455276363808833826419952848857915743773892600236834941463946503909658482505654794669479468846479447888629175933927350587983866681344966005779670608161847322177435306300769998914015986141127892684492377074323826548614301929551574874300129762291117854742461714284096054058373239062252079804127935298485148399214783421339768960523041814076951938924462856249638731612477701304944661560605192729923033577989163227917083740931149999629948461240563342938097765840471575384142729400786798437474157090113527503728117819644518286138908452358329601813777410881558757188544721100702091746321688721793652842201542054020401320277376308607634861032081801671464144675536064554778720964506311221670419019341368911069956598400480940981566199237141927827830810977636029580053793743131398242759352571534745544188525145456627345802771356153232770476339919744838163757846374386544120021253266124807664831080880221854460460717810511537966566457006230435771981349317291337068981099115327411747089220405410649478193090329686412674475341622449091649858232268496690419123873453921946395436667705468924069645801173190733648531478385898019953016213732468387691957501785036907517269885651529383211432598453808904180639792851697793443337262082031222284279198313659795513623262790264231259512760176822724388601143043376143717491278580993681224606964451848660895212453026211368012269173738640878535778330018479130374069383951191113870743307734018456589144524498446018781962828508106793064330584742588993049244977113296870243241545728341827270104085479089383327149071503662941638381934864190113111660645676620748374923440577309183101490469902889939484433173594642458462303979857518767470046829202157459848159095105718777413132798144009046659353667531305196345029887047494376717043452259470751141566008594436268660527983673693751688718198789181843418197461611443919826064718888370187528590124687185962717251123941025621220191498792517264544568856145735120192427755145758922582120198835997803642923817872794083088074913817336936430113429903433239218053279559432238830127165034058411317106815767748993522461066157787467138295134915212422758089566126478928405927907237751170074377501957107491170299438472794305791162773028446317997767889047300401462912990995758757245339848922367443612719059941239780357360855683637821250243429116131685560413931382602802611140104306091611470473121512087342046324179371028021524597113159092202976457264640483098892471282537503688107686279929331479169612923039042122911097257112078582018165966773008434060541083304528236783575843517446230815018375303552026276305092326657486322433549144343107346855289878018666718880804501669537628489243551305707524914129710694214200175362366450752099167702819609440177951510669276356255503079022910023916842207701769193250452214547477456745208670915995711464598441276623425246827374393922472040022331272441287600657959104137370239045789719332249435665971754401671988932009455869966455015018141534733462111057029852727186466878305004338785152551930530970808411478319251048857522370511771075067307505544793736523925783893506721301444932422492576611230489592420530985232552269866203640092063232628961111751590074555426538993428804608512235073182303463547825951213479106957103386177344767022321151065137382599144963611185386011304133790012046092462453602350062506929341712465408302984482263657712215957387771504255504718976333904673555222241367284832982723064957595214680900285645168860413168181111559647773433446800963442361881980351460224352962209305453013640541018919229041775980707093007957563091946390800729522763374471871649314626421288626372704827163696225990275083691380165349114037466522800362471805321155033889539378633248109171925195688637832644955320003699352872857669363783599916407473382722713539210979627977876245362468265982670150450705005467021367547286841614145609557299966988682750379971292176901925614308581721742195788024214878466600718177186631268346897096559153351369214405974687900619859635567749691450948918792103193937473194895263119992123534927954552411700821517408951420271411241927085682068391171925027246162853901513766765704283021361484406977568839701573599508248858977786757265464616691096958515094194044580671448413211969248116103517730444005304424137020025711376895758321656544707444246260523861052772804192389940107396772778288916006848289739655025461913969476314126940963573300542532466656723487226570611487287448035710596376855946758722643900022034442851464832531147971715808347364868061758652755974041872568333320222662879590269324542807613406406933189142125062035192735647746283609120723718034411444100844743761582987865430922096415204526646805486134736968338260870600733382902599582014421764529619534317427279768341321099279736076606223777196428829267430693014413549773928715216924202298473090534419929149282450283059016409110577189657613577875002289518341318086666719106554253696618986898756003892664337086003628434852068006314635462026531941343775936143071583481196631702254499773858302534733939411537974311836565713988213495602988594232224490443454467997648850655928632396974684960605865513192083071224234383018265522810246096414894031495056537812175691392761847245659938165427528542348403729922796246080803529463975319104626403519935292238389445387003707690475155728528737838828552474212296522568627052813996871472720222237488246706284659674082441796682877047375794322668433309782365918249287000108514400896166388093284137538178314784255584136064366088703756276916605696664342942438372538032182588771632778563013282949562359313094998155836183917884527815059183054557438565428773604330908293225505992907715258001925137399271437449396536515700121654035914722251116249058046163968146200424590753939041079929776467007731699273487882478680023234602912327202476341259437117694773761369565266247009715811444961493013891500366016940961553577853078014511144396736258488680139135452864318064499707993186497419034602042643350280277466060203320927299422883524062961020295068906378112533390092144829440976194470604968297715145505736762806065924142047296969424197870137158791085126651149302088960584807626964453920260691262846685110502702561819185715329757786886873514060987928086348168981592699802596488462640679362017428309909774501437064305938756383112008949298621001585330129151183617294238685588086475352219251038891209476846095833345354957707370205275734444877539212901271421191899444450809817232946125834187201319053265431200740179811081861659188385231001286830539241655666803576014521849301851578424991092605117876373050498502697306362548546298998352376354372163849654074950621641018806673060514822360866592930107045683433901344952892982724499741439770385717536352344225046007066155537811876359864923121961248219886992521474666299607605541439624763421458381605950057794718596870521205384979799335076853196702032449283998423454191097526470159774164588423786423130682461330238368363265294416583624330952188759988484438469775518182702690209016513348030793871937737304902222279741623210297173392723867576520909102161709664877295848423918772595896179903827094127706734696142014332647821192828520911625493318480722175155858505311720633870341354029448745222198985054329064660539224550260922275932470367697679409867156826576952021112331522906737666217434467568391774064592414316038318790591672727410397431873643618968476714559903062885092230772602415134758816067049047414227284059628802212833770609028345873320455650021227463965933025978803568067249045071079902536077102987579295627724419189303530311366388584857012537877373201301609297293290326959517842711622587020347558529698650411115039054458962745889102139211249779061908948696728438727882579776565566488736932241117804677162911810518631030079488794926650664670125909810680336581008920784898165368753342293256518878854749668498259606629934897046142355920827195171892687814736660310593517411127535767030419493886274983907908615849226032286984768332184898090061649852590990338978849159872766607768739100877099286194139648728750775938444352604992411988097585456257718762447590553429907875125065847813138963714460179907550055901998798240756537576546793178527917547481794899578623335938457107351030579086045365989467255585251311365630062289526618401152056621861770762555631414546579212078747622903096268143713324150585031753471059665460682111301967147114683707618743040615463453482302757741974035133247201158575127749039980270956902226717032552110576014968343494661257428425845001783509530739110762914619921145363879347501832778715819217786601694109625229291038526560635947054182767338446867636067453078556926900963211311342240523200552821820350670364152330397558757368490900630260688009805281937555997702294976443733907891539821073739319841302763123935260571305646255216133693200905217311670843723927683690900432738639584622589180198162669970494862293418787763315874165842347915196990042971891853775342228288254458062320147257745404320607140539795750750577619358951384283197851940461854682857818290119080929952484281236773907776562016635242711473585170007584625605621831177347292203850212410003246174957981301068015047667768132115926709058664047373292828569108387635126972363195543766584690579423094771034545137490279417287338456472379526928418556407459136459058640427083499791267079156941473078444221657878787348302441147838151655854665662726479731379068411451155449114181169612940746498696523362767603693124178815486673173126738721369691702457045912214010776933314639672633325764148515822046549519611643394154737676436206230040916669884392772900206493381254875127440798574415803991551856434197425378382052962788465075112431524191125276137691186110014741215885851076600809702063836956865433573519031842419778089801675688370415462149130074546344383131245606794878219895590573230486977807884231778997281446042257152539932030798487815612732633480853434588572982675599995623321873902286686315096028818308777428748302583376078417028572057436153079986975912053471495705659702427401563446443810694506534164180077005833122169934654884408434381742875323747556981641905709321400409791367654839805560324315030695896786990413555738310718772762102932480422952025760960351550977657903313941025311922234634085515908650950159094548544105145831860541655962055433248820509615852547247502672215193780853479392905564549336576340900193923583587538608948313788564180623671035246727402455420904178243424827714129102328964339770605389652988979836545720396536447127213743363161702198928370282269911641139592200181988828611586758562344677219909742696978171895748405364786618096740833178934108494407764925001837555897909282976179336032726957514584331530462862319504251080573320421350631096541149428421978172841988295824583843515185066793948957663709532359004421706279972424828362387521812500670607847434091870837434980351936296995995131483736501991730657993286115173003749403695956314782291833983687575092680702991938201193088851968935029341274358297127217387472882215680473790034764196408098811826331617947101762405978504620702856980559533061695736411693290471688773437443612257744099328912023790018862058696323017057498040451538430445087553058361250166501513867419246490442684810920830022810508038390066701033085682073010683949652490135155618367413195522920086368307502654515760124994148958553314727995518137554525744152606518010799902301535053947264073271267542593967938506722308937782600062855660640832080343821091147054773515723295936818473803294530416904129981892482451413365806485898438957380903067099829398868769381731875912107284076898526299529057073557947362967491369817558102991418192140138170353066845356259400767840667103666411752864102294491220587582296821054673149514138319466014202550354736788310633536277117811728514448243212790135888203887755186803148136245743117969312598960093596207453213657560695096261421458033199357513932265374593009710152980723525561878192170110878553719648239666220952330442768269529332512474334260467298868042549260341190630693293310820244742327506675525999135289604309756830397643013302815610554048574417469795149101371630620998436156599215887226734552058537669625836320165622361837508366263603024244029282300828421220129223654431257373437696249333542079577978883893180176195774206716374773450516018449209020575806644299422291269615671450851676558484080314741380225270426141646177309994162068606756060410081726906183014363583462070033391235897299847159886109975901225858212284222882390667313708761591747410299778774292133699873075338906988003122241173100091509084427849942788129762178783664156558035405150059494201603401901866560079292195965579965498869795576168329314289624888779185655015937339934423487997132411326350627741138886655115648590854880703032955691726534364105402267874801502406000089437832684300129696915750696136733300331494456832015996670800277346200241440605151601383367165254701551242754499843386899508728358792991457060827171627357996805872128583469058614441867597670805237873744173083371306670380023472909850188787553593300127426149558314645925519205406500216144799503962279707845518586527670032315852561143027917001893873385220366968579428218467606415048525082878779707751056037341211208006404914432831791521416084319436260527981294796498435762890699909230862261153681735305027559916691719933459114932715276956658965420642968605226140182782647313647626228776005231084221157092123762802577569530596070204049343971904275349941836411640575149454965333594874989718133729466032437450629066394690131587028531555970102560018943527050121310847500437732527021926600730628858865859901382582673312332490800800780213793415680944165166299726810164753752768474554766540754424313417634007366070962460730323438895573027981489999935089078254202186045541787521687452859681799706772669628373551968292045517857318352691709930498796956647030219711827403853175270390202316956385484106477283259947677141420659320694484193404834659665951249806464531716480921649013503748728141381215246393006161915986771888694189338685933879515636929300537461040952047498278949603124885781733189394891203121231672635378427147401412069086493292541695088421688017725503589798650490308949023173655139913300698343209416250092998052412791493729059320517875727748352885520720126009461086737964574321815360806695773793166152082715608332677374988753726258455183513722014205130608565338076274977184266662220654369512235266492243405431654145166108991380316728019722124345527359085440879930484681687916728283051997509501249475875466960412850758766998091433970448044656854901463335828463961992870520605713852632995252726328560692154981748031499336111739705955795395387112163679227098028907968342285034812072245075224772589549417009822119653536400958004704512719664235637871711317641296372888233605425422961257463468090553759695365290707909234228971553620142950977374479879195295297977047309544010632744148902565616100036667192802277319531771531081988042003855641026971244529198938404639042386734924741644520956123136729644302010877288222223721211815410499650561997406155388306421406288800763110001750683238564314006186614125973172487844522931848058470250218191492478360454041075289774361030137313729105287731523491395676244807161557735621833754486274050030302966004439049964470265294862683891107306032319688273700990091398815812677303456993938209486742584298505553174090855091909073075230492752513099146856591655440389143690898969113980348062675661772601688688957694636753055254854538082570610385920158295509397715083558238596653511957992332306348044625602255380872891913124181003731360060985431700187109797948616630991300841561710762003390782894520342248569943347093529764144787758395308604181317773194776790503434031579260032497596363396282316581826562243028555697826955206896785776689781563500149887311494350479947540315448580105635033243280944865634341594032139427160011016949130074878763670563342569008710079364030510980009598095268005386110416570677063146059160220342164681319410727365072280550515201912889739114395596042169841085894129536701847762141279858800498468059176784200423933281924623775466942699729460538750688630895024153128026954891507768356849167192358729858962979991191767974733420222649624962651236257930727495404655548376781585142670721481132055497870130170468837280524079996346072647607086919094442953172159968627282127252004634575729013828865666671811807006330308404323284733679350742284724880593827000731275150078592385480151511614920886182293153177184555107669046062639305919292835216969641330404854841875274213194255465991734192908187616545218980033896604945080577874799541608301270006502253161257341061625308118026072680639320900003421669406986110628239232434137151183982805147406843499288785931690464984738950436791116055586799529164568084330333678720712724238684238580418809212195229393923056007987594704736543219799485989142070771286721198674001090101216270925659541388960840861578285898267490649916129895449371050778516747212901694759467105860064867881015553075225507345945097499397475642591212357031207407146958019571326737816998369121971398612510001633025818864845422784982749880889434683466117559179770959725718021727163587247549222682470552701693276788116560291139591856978673817057745560580313982779590613393776180662661134449426471534500202608690751574481456275265478287651170375450774632074927673614724222329597737931647509972267362381198390166656399677519991334631115856045969205205519303550987546158579080818438021601209916854386393405666304135055257492227499887716526287325761644968223830204519819384870378134113905951972333258905415699016068652464770878861473141313042194143721148974768198594063443877869835786417286492690611610203595413344220915694977220480685503031001544350561144688772714124927967682404663553956424784619258036716971631164675287719663939904880855574829664712897635014995278676602031506829638403660422737371141757653825945039784590195823233242055771607424117221726911776376300752747385219425152662674104288592734991839697935142690142451798410054473924529335452312137244516925966737499300416528045627162831978977025140721882077281140510474544101623108084586952251098471328368190799732236811572119746641855741103446560576111043775491982806757740413355172558436284407966956660509851861071141374046437632467231926447582974755899714143358419575123006274754990054008030390208584438053157012135267889626754978270415999577472204208862435425241036621037050481169266936962363850712241993877417672653150063236729696223316078663360588790199420506225494117542530263753642699836619896465455355676673786078922042692095627968962935848579149527161474239070757818775960990939301247903478004086357074596359172083009096078367848741343182919960045598278070580192371853446420147350419671164918002813418836324264292279319441280099198962799085173995890305378122757679084985318417265699445278844272159346228991447987045019386716127168476513314781273213671877921076574359818836424872820823876920623551958815587614817497504685260346320409059977753457780015047760436362854671050678449213729869160882120761465201550741605248262882646721721062211951445097014620786312496640932980605063272593250852743764124360395355802964976264570692119708885053323352137704394443276868070009919711824403329248144891753040590794691499500449827690083380991814910622518311017375173164760005785488632670418632315531848822470662249447648913188904511480791469182965751052259340871174920762359857327123393373055199676054711836874302596944299213768318313235624610001642810396917493711779397471903282626594402789597284415599888151883149725174890937394938409492566761809531566293930660928619531270469718526819047134732083329678604861617951300368213273087600882461779324444914532058202498864820527954838274252410889206280139116742421603538515614541900437899503595388419657580372110826805406052018106873920529734467732636111676551325565585038002174326870943472191292139637729812876390046022242967616114012287411388402810461323731055016273457743845233637465674081320704102854978607523203894030225296337603875775098679935691592994419664147690637187065186541958078026950051054414953848543124256223253436985671641372773166606799119893054586549300252113027938801232222234271386722055523416719761220204864521727967342877492348864254042671711899836148717399091553390313405248929282817887329977562338174189132062225111281007636433970025529642929125652079147506951137068611544875513630370437214747749412413687899815430758225824241515296041507587673906263707443673602979905448552173070610000216270143923590206566090653015546854787165372347043191717815249410850808923777120958007670257792835001731101315136639320531813821192011483083485848362272391251670144275674951812665836841933505905631463754657177326932871337340306221531270847584976213424948493947624393521428728809856417863825856775439254107099221017623129053864000526871139511269370539091219259455870856496416253257940514229436707462396588830388889866394743976667099819789894689756847157706486089696573366687970269027250410805007893160952986613244439698852817447949509196760772291028186993149021759152512735397265994663156466605966264671590983850155298604406216259947434796210317489630171557382534836450850578136026138523642237841313444814129395316463999668566789000302769830264017091117729896657000073826036541677288033795666305670289982433572091444685964886885674112023965014698842190097794246577466898486032417312422966825460669778393925901663112251598532999437280406661791404389918507995499550833300349732628408079405496913832665030180371751242230529779968019102795040506686694635775332052228930540329853914467998425882170713286652499259104013718856859042829185334534612103585961916440081757627753717839363686383111171592609796337849135844314341696913175065630672006133630469267067753982935952717543734917161898876251936038171002443040888523082653286602946415267364842299636814893251004996880034192637025923586934139693818926123147369904102796561449677857669495664160496456130633574778094473354480202137554858420095085343409058660244356244197644156943557042049667004370997664810122446859659173849543876192947619687530094705152310327679402078845177431407775803512612403049431636885369665477121910957334522344763113113077302218615254445757827909434698907047069189537237611022867872732476092556234743610917080590802661992423447709546790710942496662434603243704600700820892848603222679412261000823309279539091811698032004016067953440026927038679489775028263133820342056789884689592510573400037180753200946127387804873518539479411510547181499737200577160009384827287827289234018853543566832627916147642031652766516255773380834046047883763582780540196470200478017306171808423462377798037644880520839251485823007145837166129862807584704188644707690240354391805475937631306659956159271410679922307259210086367824350356726765278350806801367671140654208593104980590263655870603438668108987937669804558164316307169737927679931557074832730346003933224816079355066605627951998052087346280814600940505553884114668067382483436746628051584399977253654469552215609843966551439374688420584744045049540076517273014300510000976261593672489614643077093435112951087132117124474571762544646094264426993188755720715450779911354008655655570814522583456508201213744969398849947074587884846190701806400560850127990139276632386641790192683099303455284730574574317641483780479715603040624441500106197021798597123755872018430557417832183280476424844549992427930300288138537028367257883071345084076950089869518663543129675945279478003478667045978554482343982839464236461558577506463977081923799859059723870461900459142930210535344976087177044170673588691676234659876855040445883329057450807070478839607854438840004909001867575496652935859724822524490150626003649204586097167295320659352944359657357369279024900250958765822517152499961998484654217578046150633030976372005632479932065355877851627880537157827457836790049377263093287773684387544001073609399047164728617587636953008358150209114876401828268306199946618141444089851779707216072416250206010882964860921559782252024632495537622535966512142927492879731766760415369029004516528209322929943909216181300511893029180009305673711979910019644827802185860902089061933646050997509192804056030041567075337414114736163075295486934712486704903338506085934457242573959146022605473522865230858323425635135705816302001077586239946935209279118628579691418747091711053018480811338711922666775626786204098219917005728392717602820235693689402310437237746721520231671934203840955754033958216824462223403716359428202779523100845143286398769440822040864937737801530591772423608142468813680380645882056751220230820316782595321569205281365203186695554284197182176626582048464627809448458116965598898037748629176487329206225884414536879719016508570246801754836596688803434139699210234446250771388540785050101458048870098570430746848506556633516643479327709302143873468850462932859364226306365307770189393526190228616500401497276221455466019129976201443725659404073382191888610776758899045514887075553484216613299269827515315797185433384482934923149488096264999671376520185031712912216980525767928241370385928082933051077551682377699011278443159058358879939254430343731122557464032334293914410542692981573739875746073194875614476213491294704416570790234530593025177899971912460798151287569737423895615347164096437297233945485735432204023210879223326631524842852875922340726033966559232732715199136117823119671921255172604727127062454871167836141774169764227036295852608410688793516106969091550830969036004815811395431997330466106428848141256792770796228459513097681555925839520093262020435831495267033628637273256088171909570393201772180664733675965054320081539992706448328071900395880130788033411978111036118861689061375360959732270084873034072118099313067361169068956810502764453635503245966372410995305094515763189004687893506775040647686182424181436890468837889837951547071324591128100768277918251266463886872866921055577601015016829206632576763483323558427499345628685606976379363697106665979482625808676702228101161312959901362605984398543153460264059076364817616133608831865843459327688325014260734320966073646161678829135229969789090800866742150885826107268786920586282008434139749980955804446449462883880139105971544513319400081955644005331937776082632716819910783153222053536986864391298883052054195932210955372987866790675618052453741454526513647643092461829188098621331145742393737054593164825560138976860708461242530366107044898826524669649599363203622068017263719266519134169859869117011717508048568925454069908994150519998167200786480545233363411525229160267797442280935542549265583585560170258695805683481242002365242091658227589107440356121173522464879767389937705287999051583193072354413091673562378880784832982795326675762248576077275564456679608124911161312637796634673911288993277494953466483050705873076867553416585253158670964332880205926743755010122888747651713186477865965886286825010743460302318031736822493793933201074105262495702954345885551775892821155396008523088511289988218814495401464953622822673355481496279601856319874607414912204738173751791160516382198748133989019503500764724914918674063770661300805470545662057106517504780598758377736888557954869120433754268597914885050304702869686661629133821758094972592203564730402606640862616272557472968067065297086875609885431964770177806896232298307341670840408776572567419614506443375464543197763876133824708962551722874212387074970102205013770374003916300084006006112863708077536020417656643402559892161843711460158670352455737035757650471652914347594260124257384591005304378482065245221527358682472882533904872744273398722242865729944885582639129634677516211753207871562030347677346885386891637074280429073693948100232892386273310918046907462048442502493376151114487302822797766993651052387906221395365283998144444127576246439413664368114765806938254125019763822319835137932024040995630411399113680669213863629844862327038070747854380854244046883368010814708810770369380977800087580103807155750926745123470450759897205539251347192033968105958753259801973342074978903574435265045619442178262930181584709553261027890827841758585201204893469580647117444729719093599438770757935760467260267767485947009844173226330304573379194462598041863380065673320115417228657573581672724395358820611302709208818643444202400038794033788138679277697807629166255663898464514898334707463101052832481695735514488763718144558381252764907218022634491202089777534303056722070783941522738489607253864373065088673452867219573877872369762759266166612239582902485458576140998679703811712501378844625257391558480648254501319293943186941591093299944295258798523453126608253862746036434744797769434351716130197497152048017550268551083601521588704452930660273169640763410052041677791148229659567910380122210566059680423851678574711467006410923177373792540504100421592850544005415598772080980684436537701140793143990707898596816237137610013499612846055836477920772845323646244038427146626191663112051617385557885440966003238358298534493005898367494172863185442211622555952630575959756011676218668477163260310636514839394343542301542996531879760085737052788871453510921817716196729137459827392180859165602268924265636272463355037986793397251944641968036423383636429747786118646898115486061520587794127327664326802109440781127828772333359869421675183577754928167284545128107535118691928658283040928460497577702849884690907974569928889171527847040798732858279155207661687055531834778555103184145509174826786290715656275417464830883130029042445655697812536536405386256962711965451556224086793968804191876693720172661371834101416845434127855577533434613071494937066746339347754639949597382352676735275924870825000075657491572589249507962497201995697053525576418989894763645958230502541024749296088593164569017234483234070567253233311198281698558868180984984748942863210155097845249188050204384656774713001325294815080580118617655117174911003379566946932454165859239329042382642410399997299636480451962309219843872807558330706135047924329196931753628097455256157911422319323584520110026900934930724396355926166930169436003452269359017706385787943528725247218515378585704278633149705528173666954467832539842916280180830672318299263831030725733794837986794836500765281792188814944723607893762187997362863094196780874390086155214221139855168779347158169264624148972808942976911374373896780376990692512606504931707301877224597570325605351271836518455681305964486243598785703467612041495401127263543434100739187680295200379077716799844353774382172777406716026931094059099866139368740890831819328080238818137980790198458825885171524937211002301687876662032988777826543146872012174790946455788320482143059847079273725887293593266460695281345704043742956777246543364587475395772738201490531484031196195732323263275737176086200901776465775033214214420370159042879810964846199166620305247133324457865337509834428500486807657836122161132640287086593657232133414207500267515575120131399437633524556813618513802025643019725619419167749845603021011614870571720089585055936624034628755697996523154904886212208433663184569357632247672612735904905911912030811651761888321815515415799758790415458621275229283484826879850542506649992570049143010123472953058547341695519885960045208132607554263032285359897635492296280849468550218999825475310992127398565946191216053425750339969820032710860631870357439575186225433158393129629657219017135948145550522012212435541213720887179138194839625633767369969504833991283774918497897832404438972041133058964610553111356545709388695664424503678090343316046365648430854659298325632199720688250302326323781403062812673737089924285230061677098578418541738495275752098432654433245093030478250901529663990859450950920362567533883229529915482013700205372346576199240924050825924617254395921512748166064202212970619857743213328554190659208093860560376673956751941315395736623207500213706862249731658501177276230810085957546351715097972212882875068182256169298837730560181936851960059455401060257808315045297440059460339252114490713191053172154736112575136867391267076168388525433825425173218467305098100687028472686080693056032341770568128157326607628616159095425761169582930764191944245352016024341800649735257859120723427287992369999064098403664206133933292881513941747065945717572356193981201683126652703071002578446395840572812295694267777007239238813846481122003747040368845677644876211824200630799070309202973003659003482846924285304145575209369462577986590724887337442135998862624320645258814269203329021254654093977426843072577920640217854082224292788319074480134602068996977127594357375371744593426772305499621034902794515445189189093821653859957579041046829432892867616059167138893871074747166532402266920779758525539976554807572144979626416628787768155894302721367884746957115770943394358200322227490363583095924758655149284964193754967712587647730035639512362399539884520034388999906379573254289172897107613953678424086656664885764172235440223924205891892244253906091466580493475309329759607030888035117480593500995065803126713645615575611912158296614726154169031653920681854342055226844707371788954595347846520248057322851441561946357189757672587787053548059040535272428156195059275404466749782352423696078939097741039105839632592589656409874691475204159581337377652987480764266037229826903648158890683620526234928935137846281714341936519710685545003780595731825950895400798938761025773502348736289401734058290282458819156387971586243475452373592313319595989765650517739375143483883489211502932178463488297063299334005626969278396020542042207958514086415086623306161041690588309395477275992730410872228180391221483585333264103857434564527985165116854803904346157271413320987677393035561999006925506085842430978242020361296211272457889521243712810741132130139090154052500710656235768963572813564668135047938507442092888667706097504919598327276112142471945762207739884808496925334900988566766117781510770203774227439799892175966955104463531333594429066469255079639562986275666507997488846846080897145861595281559941020766307173097079316490759903243128753243815789306066258055451868628353341153102958618678149578596508074055098135972222009933631386182321529891021329260637507588063128031309302303918631304539474680081863065802369095766214682665120055015463406014690837919445625323446213331168717335265375900747956258979327283532954100515559799162932642167685175091487115095267159467007886319100878583017631744669603870446125438920054518058229496174008562506129875426063513822209224424643762520237010947311249269636765045464006281048988549635761303986459236931464911345580744010948459658005152830494474144996236505930732503322606337949114753687959189827245109845705200900321658785367563924173119164384481154753962363183519586335811168093315123457380942272966453472901170643147168839249653563487726095739951448407951365562075164648104827590667221645440064349504676345584441109580481887217819402246662491642658036421324819539210220399229952475673558559105204874600819458464416199760210372114599866669970981524986002639797605337851112201701235106577555218072660216940433844859157408021332593685014697080352871799409301888383000696146489186734786655450181087673604513036513249674234425043805040135625655972492926892022962044051405283383426945704411883503296977714547348455088354911472798165562818998513747749054823764867711277790308106873887475703991699888389106045236328397451984867842809063466132972051770985163310812957672418575371037879020991251552684075982351036597711798695076491670122124114645130695495965986284518433618363732686237346725481245599051892130282093040374785162761064165686850263727924853512613596843845404841348247504174065847526157844248793515059662710584354673910330769957415237457598222543222580363949798044570949431915037666111407717443582511962613241147662075679648278060855958862537953635385063662329696134439668812126919635941806556764700635281976001715132662263200322365435362596291467320698928695328178847346704530892320519152864841177941188207417451619607030386585907433172797057363596244619558870983654604629469243429908855840695602940952349643603373846235789853683106833504090602767446108247855099129082021576344491485637989686787980724204565815940401709340345746824169381436022449725317155546900292182726633888123929758051689553348743797834166776070546643617249758984128992114073322907876580581221560447877366307644895234067873417967237922735512731017081674915021466803079420788164971823817029777885964885253050635362041464071243342429156442810715929625378873057192751572729878120764892405263150670230735926111246712849905930019605076688855906806683715663671064342935775850078907364770771025032558098178570278310224511426442032215955762964911034373479425769362028384381242572837214970142582401299279733166426459724374136268965006602314832036990266414081283708718642862901825047396282532780288521718665751538160878040135448152419506783244206737789801111571680922398844915326048503104145950205817539896440029350858558468897958266457903183141824447384418617780905882796095738733103332912017358680699011066823309931385928129355542277907578561266615010594531758663016080682647849631169087485503191599197100967699336857565419564207595910261517795097515727266900280260611409092975769666548903318345423171996679142145697469684515287978029875907840387348335029152772841649921606558663861770539801466743202571665986740397419211487696362779963641338884093988091823600343786864216528614277265386886262213743873605138415131530978284491935479994069866443733108758605943080998230166929255253735556766078035062752132055541320464353752718593938480820003123389730197514340799360133710813607508603074034976258441696235309384486920166618875475150071311657995276226679812560145868381545722121742943021574592147335982559873760256466337563672371944637502740595845848761386509696926982942509925809969873267409650334401703552528751258977878544004463749478350940080548222203145064259257667191322520659217857961328314445361120400939727137011012058312960698746544184812328586695051075003554573248248345615806893771576836774673228690194584096711751377703630788014704049382274622184828739948977078977278650589368685539385463822044356679594263348979392650143651897987379864574171666146682254095710422181676660327345185492433072303666238110469248600040637717255477652089235633392900537226545296319778012167091755895662839492452974525193160954491361689140479638280867917795012689522248525796648651218273118208716763267796424020559263053455239177405860564653530685716860226238315906723198072984929515785100084411032170313532667439913386845597487421686873883265132819465520313924023382995466396224135970773705474342881341029968500045852307319706546269254297821050689941541793389443518516438686411519816041233908487218956425419024956538713691047140109289852179892328672289662026534700653156119870731455334430216173651142471567143009113294860032279308460765670784483457028900381382726584575125534296978975451814185733898662585838904159086001240039124723615949403902761349034947416305442583831859258077184707624456078433896644374103600133909113700548717850478220648047282045067821971659509234680064811427705012942689942922991295221178509913939243064956859121994331245908825200664447900387315460446456003751148424539590404217105859122110442933734488408859808889228340751702573805561668634726445094598539827082026158437824083089621453404720962887194839166432490682042673381465829355020410649264110417920713151162873817242150673215718404927915108582539044178463976333582754020013333614085262748805503924418475858966358735520233577779745586892469853676476277851488142085957057654653526762752943622344404566560553235717554271426049067914039381463678439682255867413029583048541753780160700268619268371706736043850857124302380791846547509490681343046050547354941556480466675832985758560225184698529698905767099491387987541959591240280369740681314852615705660656442516316654510463866540975719296503715428952692202635072274160762014391462855820962538970982207885581960128096110072894049761280329919737885388042942109895677394977541621924806757804006374261059266042007497339949667533205241616144877359057360975083290559652745035865233920737191273706304378867974272351264065661295619718332336495715335159042229401942246584956656482543365706179159358708053435873148574864463250251705114850771384963127277690593893236168573459974733507445096386036637886810800786066414554445551157447033973202513947208608274880471440772832284040669194793677933382083980682202902142564729851723263785088641740221935021794434713722694253569463557340876514633619170084679534261938893724242069263634345089477542481225123066537331459508716200097107175480563928576849109930945393360545502286575456574111108296916793816359580116101582017657225802084667857491006431452349041326436665530150428927071569519396674386817205478068531494533633022573571507331788230271400504574310145951572157238023230230102365103209931351395491630948511423406578401667221946799632440072479408973882273457355781624886298429535554020421450282826812061590657551311182807615147285636332977533198400254765904780344315284822935065827267915895606939323581303235798241347644085439067950034156986107424495033002088571739906760478276186690234904710985268465284159450862569197261411928678493217490990248891694175450072636288980773784092054587748354434498554421890769074063537766980570874427477195576835004093294763138762021294027097493460240978483875753301343095148721029388535460616721090751745370659614068290939680565690216047040808095801920550250209284950735286317708993546724642739044547217263933504221228650582453585182935881407712737605153378665413381302721432145114964449649120098624041527300697348628507836647213293379034667016668233500932495167969334027603865337669334402285345328294331617573479980000963012404594102776750745656624579791993509033521588105417582633553560380223356306901696773553478905674379747298729160008854200957458338364124743761992713141386790925206543870002948208334785816000404875528613152874557897225058632068352767914013331829267862013397391213851167847399719970575764076715679001615912196594512348669795936925662859099193935561300619480204490864745269577638330506108164837413238257310083063121508057641742895825106057562096497934535428773614038708758450320454752736677752856936693664548363440245255606021604354694038464887019479395212660562339350317962192783436675898965191172000160009838583150487837682523344229844675615023451487579401674132955118014934490737250165618687700004217926197887253934006098633047099045255364611465268158606162083559305355737151687619531801017041306089099822386689092429056892876333638276577091826295495315324632024563422881816382598817718485008442458501849681111164059324574029715383640084262843637350778468100350725508244792311479748439847307354584802381483697199013212955840457069180285724145520690478342063254401503740408111612004414219169548718865305385987310792846670177720010587577398779350583615460459314753501510404358893416633074092241785584982013200292143055615586130561475970533122064273156265754412915545686395728780891194104064701870418691593315581785637331070681858717143347240109007361434859156413137285920590273711674955761934491766522573306453741328484386021494170173432426566684956915704712044818850888381612414098769799979788931763734574565633208984613603056019538512032612071438121604150786389377623299691034637044502067571478166890228212597218718837961886398470065324298487257700971887577008214529734146520954860109831491141267296163543198728439532771082461513698942293764568989221971733900265515440957827246058079487195237972241090322298616190716164175572589510280691984643723429434830688085633050929365986886880967172680811067649774480161692860608429644951611233612514779761269614313264548398335931907758601464534463140250284279409160115380583037959805820711572196241038718725978126754588732620788016320221363608225958272838025096255726304140616147803102651815174570456877690967188704370694215825351974325283090562219947824908156248951917181193882178143085359564052406455859290727518182600576594650992865639084140874582035575381898004421545607691874754304691190272205904401861954517861813740586118621041785812395716160026574959538096084680248798411425187852464973173510971659876833082381250966559283075088178225124599978454895468560408084148701501242241205541945732125229593143765038421294022508346782156598584200826785126370218926970073563718673057674455567245641289884498428085814963033239485221442036708367970113994790421207063194849786906047777719569862927331583956895732856665590377289123753734585206766355343245347926295606822590183179514683087621411502505022711051991480408819787873814879541616546603708458059554050443655854426569697288416359082891123768268310047223292495958348310142164802383054286635039925788947309344928098802157416243806850740922775978679164993334653225559135777614311480661925393789989945941493709159629955621692579764223104205910248147108271985557608399386385097833771386527362638650973131631976980752658136563502513667933601294588271302822103176320552767887127913899532370836302214226492507687314055026842306007747797323085503036920290086583852062030335629222337021063163435341979183104510490204512668077457812986307337030997291658553097201574426862977818994274829068735844944462111434698937721263172586895718549045788435494571528042169142115195215979843082938421665632698212292374893564330755304310819864885558406561206876873555770631296576846000674251863190169903562448921197167552312975063619507224656118174279058320169803250044133419311708438669788599135427768838373563884392239469298249402694619749831969734428125539188069259980598146848479792499634132857361149825290935889923120980816670771988823521017197440049179853594106949878123098719162208086602741669087234951836473363355901769569286108615182884525718633274954220522485453668714264674638930917181464715571630586396767742049141050792841926240150591898335078012099200831337466802880188141598550703518670941677856122352003734612505356679423457222411524649773689424360700983342068902798953689488085627466024847117101416103484309030728737422025446033935254641013779850682523995544294378049124424460364569990672326300908569338350981816241522146326863867919903668313898595358557593004626412962608375276043497189083281574015340586775543661036746634448923627481708160664093715181117952539819347336995270577021383396968798563072350263032845814451888973947414221855588486030881232563663593160509822051012576488964382625274331822518052835279461201473457522771811966997676649400797161178011346899175900806260383446467078973408275613225968964121719234783008366044615933011102982692254227823625065247388865071427581223327712616379855460222396718903871433885159093715009800374944783938643211235957259992426724746998850761567883266038316020613817534606169964298187699743439975356353272530585306320226609550685852825567463111257526103147932174800349013217832660938710859012672049154590700877728488117107538496950808522528049700898739611835552227173614459622927853656340313295332234872417915171254535639557282660208032367401822186430614516939895835716276239065995810350003731011067783804914481826819449450785430649174428143052854389003351813360030064145529305986890658908506117319107692959132085079682778295885881827935080227501216570646461911422724678608995443096795417718575562253332852139839446444223864686117752633490265499026282549693306388943067934151126231037870280284473654761194471072475195588780536157482690723085149755185984693434768121807843223656345808779430078342597100015257060555024271041144604024366660644332841177965391266362971432606538710830100290186372544924674432789030836972425404120820379261383551830657532945789747578719058178307581667062368430033623676261537587419313463958733711000395410862978224986156559597473997451594448042760896688335191117329624422630872382886899307740382690409088254392564216073413265772532976496511097946244622229915003301108178140807927680923111250607738422558373625015909346805659917112470523044587542587215400627898677051631562070065818075258102275252802940812428952358825018400387100479105458421207891843887293217841593498880122178259820053743559128577549593399171304499426571661407300091199342973022274543977384973730597884335070037457718341459782679293092528017947010654719814075348470565149258171125622553664393641661685809958108157409023443757426026011264272052495680075463530543061175215046383441657836612390517563961236570247988035688352863786066796127534276729772365824213307069998867943570664506567240208277142364248819833844319939678045924732174202442581291624808610362505606057322765953201189870593075887483414752208517057866831381801985751867876884398569060492746679162243487972410085621042116112349693902358240214118432247828146131337173830272775286366423385463110141002659440336766293608983523738816907883256900709588492055772239969485896489851143071448953764461304669839918259722560518224959786673914693748223606368475630612037008394165477609902243278774771323839121290690048288687489028178006078025370006647097629784461353625051338794911468850968467591001539334882515546719748657696683814013897475452911087562007033353509134070757732281494683790667890558092193411846944784370395222636712166059716396844701787039786987515632323326304810210290653570559382963086705333419843723753159920662565729017344254050511052061458799583180175324108342502527168075024705660166711246676634936133169560781316114978322267099445568523675518703721340591261540466772245212978002428839037879853853863438163110360624637408324113133379414286700383801929299481289047401335907594888071935027760993788087212687977415030431458813459561899485728568294143701057178226511105610301361659458899788913651008335993647518813150380302647479510504469772598696530328575440735549293608798049451372019662741564698978550118551222271959017345912672511110867313768019523428932029020348601130434605595052903618467617135276087137684819993222882157454855289066356458842057298511296184999651854638932188351400846271810651641053561859740813651135900859446270863705266709666823440625953124558091856843854805401395796723847515180959621686970439841774704448480494618672964986811259386174128661337315009473688921888558559789648565094893010087091878499466358989125823151299485486232571376494622686447503329170736014881206260180824709123776766248585968235378147399305808443070059796692027489919604436489019556826287528710154691553239950487395402036373041067405930268787857510265267770887742588737751408560990454550359149149152998253098534726432039329942206361942895391087474249968533621324166108841826967845000044553196860156704941260784046298681796860056901303691434178500862517600909692154255817216549780916259798492496398833887321705366533604133203507676793810067120165555298960753384574787867378750534290023046317203140917437870099362778247817425631601160267148011218852733984584888124499834768517118227614750648512814150243832751912500479062221622321018732388649682589065580061276243033184328067756145111631041951494999276807270735219342513853187396912077187549848986855621574739967904325050827572132683281184022630826949670307651282189093115271952400203877700980883100626173226116731421669917149008401362719735735606825768477989748140377918678837422393258197707368742310789257074857753765317072043153001368398596309448048995996159488265333951148068931639457182661418839642607057258068705714914050377310858963618404239187139226575970765271056166997986125430403084688013961196083285147185409847868852284285315310710862735639355385089733521813402043687159128502043912140652023353818251917666497625096687448128315142707353990818432422309503893186536708505770241912464465714661694397029929394471885351483418346746056130861817016868085047210512289757862753279787376406825929148905173001154000477059583271349749861404336678112095874353235219992648305176178122044022596255640764709639747365515554495859747487682111841670446958960410780014711068852156307355984883114055377264288089121509604259385414940244798784341608545546570752645256870805329628247657621795231884424472521794583198896384554893585383786999177878308795640377226230838278334346867321873558687311832093019602152348645449137584279389347868004427938106746491665889848799871049241023147365296652819832286363315732928662701777498680345824584000894284851979799511217072048871524216612367737248542642517116040932703120501357677380898510412349536124223921871352684278869630527498987991057393286936663227262978295325840385549547108964739565138698778334523244110066695642854494604981616984106112617354539450339498506814772938207232450343420468969450198342606730673275589221770204763699542467742192666492491861268249382432503932879126633967465220109667853146500778502775383111539636743600621826947017850448790291236467548098842247398908679319091509428351946838061261548422305873218278836902955187091205061214363012691907786432062539003906000459935561387430018158525865837891352878640820760951308707883101853632547141369208209664087968469727825876242963545851109517925124010940032942426208528831222791989409946636844672080267221189722462914074364157338912376142759569898228272525711425588101528278642185848921450628759514038008703403086823368986274898023447622218606814562751424445148801277076965201789725318471909758320120086565542336070063089828432754795788641214664831610844367033662526141356097434595315988708560946552983539723505773776046052365063235147057715330677286177997736793585599359588001399971755881455841686460674144834063870084797164401812065376803395710926854404173089897305564553495220167349233677696436471848030004092545793864601886872063489081384254714147783185251378512984958942401378789167695032577027072067384692104664835179026873392703532135419218528602740036959285972965993874152800818933071768383421727179529154076917474331609729722491104828604037369053891526804295486244967719056191491991533597091909455176475501056255696241148951634576024086823896095006351321623858513172682355415263997715673169873189209356906983177723999851927735103450695246788956257514581615589701824297383676623333598803421445409903202148010538755600453362259641707392887902711337521468785214628765737229469931986395573033742473163855677466630409024288989127865510538249524024385083644528398261460481804644845420423401597684702075992665728462813897554018886918163072221710645359183646591452200262669962493190460418850574001381571379054468097345509858580454488266629987212032118094108716076008756785361283266788105726895150905508254848223572660661385449712096100909625757089618073555642148241547099656131833547889249473918193078622839650820261558286750869894231500545952501390692795046725127760978767938018920740202633148219606166559868161840796050079240997637628055860917103153196231466744038570017790380150585294082616286596253579118094118786727106372510358494344023818489164370665528811904112665520323025887357780433343164484198472317400289122775181217927709181401833267573886121958709199014741560480453217639400790354644822822153599418010570233665758171754863474402490142125936667133018967971860134508691789706630349467518852326371485501591966385781463217114262533788454529743622858434759938325342157133550717986027433210176606109881341840412407681118039472135382188838858377951309847874897980551937958017763548168456029239283258415331891849105276065012389226543896272469422380232830319816562281855560138187018222553899294845399420657592705792720778067317170274867822838994698448867133413495555054447726280939085047623809099681982781090032979908910643772034547391606013596041904486982026141657094320072430527862231955175032875309531861297632206344614251402987937876329400293863891260113269388466153438705604201426245934670731708567281025524049809067164047548691162315017546964322488376301797975377493882804692268198305749667574635048541767354593142499896113449555626149256655005554419599056177303030338913559907135068429524504060363809861380579726428241922977890722524807754104172848077262434359859993634455707224363426046759817861337628496537384225630664588202430679468562662003742888626388067446414393352755405889814821537634709537048000864939554862562047173952707572921237323079973385435626719574041335551086567751801150195236662156222947672370533942230294463141109481317456542687662549108686055649762894977801153282667931772967057034876402618351126877888198033014954591121398122651406359806051901084650895203359041415531979169558611693248046100810434979187558644267329703730952615460585786664358637388850099157230500988423324920082606973960115999541397447044598478280587639364308963762353012532959754410007055270851837872000941915077772316298069994423755545555010832345955466835691006332870912298522562553571350543972949994912229002973164625182684722113159837034693673750726882564728660156980512195613817093758952430655375776198170777606680015554798927272969885563217565234101681370579228819418187013710525934876367475956236799572828986087529984861128693547793869440484884675036114950317955375548863833043844973535036761622008386100633557310435707936000625110537786728287805976864506765179705138862390716857716228031439086001627458406193176260930348938880899495792828595145795766488741095744769337177140525677475458764136763271033057843818377859134008626117910053512521004571823809494654997191881170531968653534672085099383874723833511985917092801668593647188200773768671455643326637128563992105610025855026132651606820021733387843720833165823732425515870599942695818767360297290918652649678779496773778909705326580598771570719218005765529430348728613389784813101649713844425245055109802294294439198631813965102834472453105061417465965403199701378294027161639820991886575664638411012809224594643960008562994007481967179328420631907189100103707120277604275203186763644600424325325385246255144072456890155800176206371927576753833999798528909693532106214011172720060462277390788002594166839700273762250127470937150107843761294966121562040945453545794255479515586563739210856326947195197847140637499874582788593636662860656585973447967055040195470468316238571379173545894593411161430802376750220595151114772083459662671529581945555148322743461511014247292464603132012284250486306846620077596585938801707547647654159897305335533187886703263171132167678539653642870079625104097348639255800871896710162074042665830821775984154294442707113272670685453168953283892506204380655553358376806577122812427279551190129093786182405871247614676719465688438022217722423060739273766010801500861657467160353593094076687205583572465492229870012441979142566914298431778005482121256188801221109222434320460566092548977368532365223873505915080731114495565811772366739822927470898448043311324301006643496716810764638314502094989555227268730694725808045040362212720640076265560590776802200269539676941469516927223930742852563403584839212887356442325386678286067724030370661337555735635279239268907191919790646822789696528671813696585643280460796196191978248840042506593710165639223365533970350551928368692599097328344100463521561884759572815747486838346829350295056098997736598544440706951513428304795870763928619110109809383108961751933218880322418819720930108928039241707217561305683815080462104661914891396607874141329288512768028655367130900916300230423708358789210125958011098816576064341751614604044877719518761366861674609034247958879002226152604673713031758484485161016767372920303724936472357729348761492287545586120843866369017371797388761769628522273537055662873348252072913891511343591259385227856509470355755971748800411440092571832261562258520397701939758550168341094332511573541913425042005328039005037675665646118019939262972263159304466561431475670885916115280090878675902604736724932019693942988424675704440862855164749620628914044285504861870703879745919474073487175743869065515955814761462214030325397055960721324679997814912776391848694074651469416645801040227113314356991223823504522845014224129817005201009610962135136351670368172398845219275448130302955604495089264216287530734236700908883367856232473150325233491546306141356384338271374675391558799646904357245828238880586001224962982551693590783349413665687268096987658423155900423115133340417130699296260829374859446302441949375325409973304776165734235091071958817185556067637003895585070206819530088166927809423891694376479165726425603978647863383695125012455130069884436837844364025255189961124589042737300923600612440107975320843240538640988520679742649424224100447674463697480344616516557025419495258990235052173869908470625885484876840183634856618487055524491435118923523452222703345529695416998897433691531807484365082296950053562670244022956659481626065069429832840076902192862964750861790872154770849515448442223285295620110628297172401114153923911350455278803470337892254791720569870503427699446311021374214810669180941190563661694919827009148467206646629087664992381590266410900781290373907716116381256536425864690616666427725567924170050312904229079407788804580314994668131645560747744582103892909135300588156802331690903824564443179281325860244200759125208475498813255788360266764815725648466803733190039412644395155978920800812042330114214625423852315674946350073617974106614748936740025017011237502529611129248073334813722349203892036665349512792970879932903368280165066196968588434322806247097731121827649886537045539987657569481709745192515362099721884909120779711459570656393415423276782037342810291621039359088020394046457502340467099712401195586677877283858159483662975155213994163751736262298495420366910606415290923886388254425708219072888120176129241683783999506853846479083108342160566651426475992271328407770258205238264486245386320727853229753651724198891236491504480451039679078007789993769683573507314000538123995939925713197153649104421927593112138571928438002717398454434526896680092307588249058328801100621771704863133583449489556283448375394031651171317477177182755257236425464928555727622890319251747376806524391084360761643542068673260818707581937654736753109706439195592565571318286932988394336606619899278212937048614252646649245779725574282917547029736521617013788568245239742011548073799599161193021420234650653979187509723978983127193989963422354347691712830330173058970698602333013596886257713283124088663933320085764731074713165372958478146361514290072021425384987987571974349866522538786152877227939853080872950259911545268879605622970676628601026131501395468217802568217967395188522306811758444289547059141030575813026505587625056120454808634745637052523432551709193237533539999642938344974804802530948126641538008958891833166459926734908511267443287299965383237555989872524995421948220312602389950341346284067894205489804796268102139705795274447658775898954794238958490469540707140054138753145408298818944943002451878219909194484080015546800430150655458013468181909231122445536875428457880465904651160426516629662620750714605487848329758523172166238395845946304915185389055368980344465853227975380424400632607161096254877444753067216304610383447263801894226878891533107710555172470947107465937163979998674425388646869694356038978071857900369740726306473977142251043158052605371817650256853098494642821759061739472388189484745237092016404729658861144583302911178948246390954978167552315848732667174111048868738049151370835839933707029667643259207276473919981261542460201603341510815617941201678987982576381061118692499557137832030405562515151932697724324153766150377966319931724298624093094344012551702250991993949649194963037976295484279180562925805924562259865872344055947677504586984206889397840632668795873590133336664154856781825094335184533685254995103868104673569638204305377345316149769236295438732237746561908009238704185768578577806672898177271178467032559687921289844095253380605564029386321994694725536945984575271967806727083542013029001961784586044032138023717815561763436613539655892809917923884991877172759551852729493320840120320379697828439854874617698481277018379952139212192389837415185678446131796897349342101660685183120622760900986775167474697112416445463748674570293427085832025670027509222875595545495464004152730882037513212427143022670784635455429763821698311603461070594071831789410003593325537471630567477106014738668938755294962233837754587342012695497429751889353616017226671300572857456186321919827543495876142908424948303880297228988104344685662562572404732772512486607286259491068521479047837156154772578385573754222542002452650684299364256718211622149796031807203907140380156104642734688444785225049201628015101848985778905295495041287275330212453318958836125398138395854094653818936605156418279179050399826874185666178222116408794764068179419298989511819560935731252973669067208967287471254013631421068903044534457497443793058170662712433821516256788689128463896370928177928035714865274275049371797631504825887310154685982448240543256918074512771790508541178073163146628075448413984428253098991924723547989881375263451706138096280613187676704672505377098034538320868864765482619029442243300530289796365821711184500807651598942051859878278346384932536081101550274149116483886390211403601047941742252087474341903138972154776787218985343864555464660395370689242248374082779081019416943269544978314666562943728721773965121800240669128483215291297171374840638480885755507281233940980167665608062745180998875571384419342585863701492828330801340838901019194601313335188517424951032032974662678134979001929368304306664197924845832628776584851884260796513755551162343518946909637751633204206285901677895127202266201031320492575392172289796844444003983149190256763641644295744672993196326180842995468611813138450156465778697748834083746832034787261610145541909317273827587392750260287830243212866879346487520485114365487950390505610696222307334279969059105249255964291080308490463597699512202292065095885429924045831655472473036719674071156710784505557188812400992960163376113833107001424878864559447862753691612418407658905200976445394685367240122209896251956038246306177739250243621049416917684753401156885102274209556556315492483008103430009512937046044275872865825906976068034288038253390918258630769572295078983428136527358640761957396578085830774839063995702237986416799067853283810152424228585464795581656293075685337881965732231526634765296246087354298777773675929597194833303763701477947998228417875958537975748390967138169964598198929390658704814101456083788109152448668655929510876984728112113887794826025117154111134557262220273394670621823939880692906288239229253253030302313245382626915468391397261762383297332317940831199268808261779012122606220507128982901213652760885217807449366693345365492233630097708330446252669173024729698397447693425164980866800549207520540252187581017102030011147640119105127235726327316506056604524508253498528335601593060753280349137074592262735253719540794354481242283873024773737753804006513851601279166051766740443314515483613307932611251811673944377884969022760126973058674046896229997028240113071768733777294035421073535435077876123645741055898431830471906051074929267708142755198997698514102804871311892815366108503987003467786461250128107055136016687329810853027840407918540390094726225193938767811496108203176249313163672279767528509775440793788629072338256022475640921499332574494164563579567418410354145984162312923575495244666625422271524998162404040196533101811581098279450327709007872061794051489447275382102119748460389429985820901692466240983636315918963234848407386315352402469062809691008229358911888566592386047086776204905403384917139031643959832384482388360529316986245308343056539578064298064472637220712895992153310329829583636480200599615309849817050883247829081336978243855303546519417037001150022633187899332255881000259316982438519005243589566524608418497520025911862703380771446627331156553890068937369085669944937354213717812584636772257433304342212803806266800544610285106080620780827468242236350993175607204401607876742259736151491437106401029867584200220325663035714125797582970288148378417919238227696446917930638816277864479685980425843394556862569500717395279194427295353438038295742865750617361001052862255297208143713499764165890276999809104681718736742323817723140053806286556187722967851355079435210183745715101310660495896297458817054066195518796648094729496605534817855223969911732625998902739767904358043215417118216165976840725427836112198464748879993295605697712029723605647604183008815164873012831501246489961863290868595515571136471646335950348234412520569537847174958807835364575102467844377962064294090278345793449606739964145765969197116289645726688102081595664228008375436892143222887750720460582679997163171888275157775308519985215719133585290726241750797766295240082673228227679363793698726888058622033983383878123705408537321461070324786155099429027983758438663391067888275897349674092648994901311986984615523657502871226439413052081159879691442518907912647978134666223648481861076394594944508958983260537018207820751271471697944144996862757152022163248905534904576976402858664837109102614717109559397749241035435717285555070451884755349905851354182811280678071680008225776499855137905861902601330473998799184251680295259162012253098529372589286231863558484335536990648855667435806111409516715857390826968056158899402240623971005823231496767106989917556798583684571961250512274194420897265108606276424575865948835862617268946631939495822561451602415620985427806696576063528306987360611423349873121773841578854953386327587466209433382288657883653427250571667961327424193574125661109296183885604085091769411063995927613647485767126403132988825560519445690278374112073385871906769484724805269879006884430731654349298821651843526529630096596735164556486032049255185397301123820511455403776608549010567972803548190666430969700475192698503172919429450621025144411316025813254194029789284669038134068739806863339648731384685995214801191311047486693302405366560318753040021110448879685689989336628097028236764666228890685134168125463127303342844758154438898802099905296809582878612636426992932812253180627533467391053494115960426485596634759750736707015199214516866732282100210613630443696926211337902157720182453942535567053632716977762990287419155513459555842562546967399077364861196818285994496566172032118616125822839849281173785464215246914054198844450008251767722506099151836682729346706772493062057752329577513878091876366368342591976194190080166463157448592660721669189836377818509281080806562232390336786073522109027566536926543807297430481701040292558337866608323201047661235839791698722106174014138701844253198168230699697663774828653313556820599503232120932817287907658139872787359930221388286897879432772979630733025317857230183468079167293794590928252323660867657362742349126591130274549149646663371968218623709532715619550851435632452096893525944629248117172219339865689260690063417102063642440871562705683975937694954966274126984694769520349601674232410940953513472904768082231649639142610588210504519146396481753846158274262386190585401317003601841947846942935637697505561210668407658483114670775078312435405624405105654315142440808806104932996362750427499126109345336520962881721214284747995256100914045622429224632537146160106247082280538962814758749330368839381534480667180923602832452488133764319334703664969408863853811618375483678503436468003468951983239341662575958744956003517422494029209009753608369106976226900460133259911672596832597116890509168690631396908485795600970338610489854978974599073293047917679083116345548651446435306617958521229898212720503824122502953883853192785591524378974295733093647865300622636205760009115385790965945395941900272453148979985384476488641095455517923259871533782576934919700310676139674067257619837423335311707877112912261711687054671600517805973860614821390402305900963522964006186562239210933542873692020746953859909929472524733297484247742211617601775806896288475098546909335231604392644656458035093392175748160399453507904249079767734477997335542829550811605724406587412338513509788835098505082595699402468886367366134628759231259032364311983270893881528015185991252329917706646183916349963217710456276046397575313667691292955356664360242817194400119976479913239299509062527251831928724389746398623922399130217303718129338132326700056114653412680030098921734533806122942369778850190599582887063755839213713261656167861160990723374913740744518928847539781935660255400155204321157278070010988464544541021287393369434929856250443309819398899864174160643750899768425242252274440737672110055988493674194084999520425479792284788595444081959557349659982924207767037768100757959135509375307648614917677270776710236560632534909989055853009087693549408989697942717334204731665218117270494082850997338109932810498961926367308571867193846764544303396705400535827886759295262503864992150784382167515294726710226184304585199037415994145311025091311771599371638344010769802559776036734653485653940774201131953449982680064670669291100086099052842985573637574968976691570115876126513549881706801866698243483165574953767742236254373191900403470904803886582098316523417044400555698923476356040057426456035953443608256071002997152162980682066393612746065456147842085256455059836532482837772193939748254187219772417026246333775365315632675801970574071910712000081907563296006014487353631084467955611279265167572744300801587978509866599274064676990477731519758071902789932658815757896544552261891109259902583983405562412487916303384660186709345351648104708847353911924734198728137829174552523968796017006394778418884498469552869922441087860186675563775068138635384680030894003948839391113138255332388555823519903739177996396951831921841948603348552727158409018256578540408988010119315839365789922815243421344909498586405838073755557565886768619242789740104756882111340032708647967984783182413596579899122906085626122916071463156466135550239299225671415115196396628929983017153396142805908372300402513286911698730943583520213336781438768237822938769646416463039421164682179915515972106115003370486782385203681640255138755938857061072037378083457170884340877714801796057560012028073667557364670668896447765147015087935840948924352612113154133719674372005270192331634781453013805318439584652194664318143514892729241513928852793482783953078305671832983973428508614259315218152161717332437194137917370842242824531646401605438385741841623847535968912120879622500235857272472024633707614983146114828856809593911547178155051543980123699700474101338465390299233734114746941574785344150613676942610398723932740651180480900586581467461014526483105830236378183738449655333026585947267169054554413179096868500845741317678006362260421475286623263432227983275698275039981369494393086451978370416470163589251959474983821534773923231333091506136317324990573968853028201221003855407020200185914567870193165756493037659510856264422519475767039651772051314991271106727853588147227289460727122165115029809619039384791595538741131195485584217519948206267280336212785563217756815440135109292594557259698846775023288169920504964772546023696538176615620935551039109155426943438517161482933836455610767769643385717500395623618667470302022926906191750521236949075198787486520710314711536733412633841081075594838308996807446606484179982915928983206155097564941087242180248634269236783568680138712993159231318064566722983872291106163648320233729113265231620072647800361041679238784486239994728151352366063259539259479949343321231056560440527200362449953375370360205042555651015783843686380532015070077373309625444324315615040021630135678018397960706280496413801422281772001338332677184024645427625276840287395332233630816588704385312370636941036909293092880243534636592487177138520388299800488286440260777194769677074733482137982743057360006452733733809498453455117161099984786519752572200224454211784595988872543458656562386796678099541310662440284925442440045420986868035735957752916996058176991102540219327074098871302337088845402471495221557751927559443034053901094542886063937185606753430163713454374800999071550180053757282123690209408096271766565757836310523612806132459098279821072280146567438968229019528587025353513232606209074545428087013446212265684684953524848343593354095269030502786720709967015332283499278129298012778528174412630075101279933903846414214923515663889691728820676637650174704851502376890728509547433055532037578016804296334861216056258960801289540261888726486060374268953131610675809598502333105551039623971224342597719828267949667018632608566591407782371588994403984410924615370958536105162562867779070353338103201626716761171597274692431137898923260643760223294243684601147056307337098612568643442030363283905592735699655060039948054032423741146084460154386146378892743249999479183873495652542094842088658712714087457649803095465895082111199827108166627717073981177297192097660528814614273793969432176448124463400549437742504745789568887558873020150440232828087313865160616492139369728236297178989409683595006320883649144977633013437932966629766244777079891177139932883317448307005340270729549631680056878495484582041454142432056754551969467499654242335982359752580076458617024303684229781733054358998444056588494053273282956321418890622876457460460123936419327086759668528009561835787594329331227569548154497220192047307010850895169520724698526275794517235718340580378255727213276402724256334545843701130973524155801854184669451052082806275040823410506079519221270451540372231986212066959410887612510667410217922087161665010999555878222974193301184537226321374920005195543214100669827106133163248438210875790017625184429953671448205488769132383068736042828072336037353074458095617801707241972792911065506645997201950527993581906986620572141668735427079901177254643031021042476311737229873871953881116410758914476502257643513441269388177693157227453767884979111399643704123904907562752166998706683773472579976895982625195170604797589541491146722309807922549418820191057245307601354745063108508587889094061429809158914606545650323096377026699025860626219766544300098805743302833495000357531187780650182840180836929250386407320645168124704941439877064179245444686469767653678517966364293307597117555396004470151201332561229762204547277750350137644391862536854474078064238094824617865195458083449353938056213264680546088559498548674956640879579839864376643885333650322923448924024334532408820681124350264047556270563635916188374722407200086750902514642237509915688999141250154776218059855301616481160768867467102788804090503894643148897282259862530548206680201702410452618867490497838236691271994516299489003527919608916220266718177237834455855834499692359313412886760623174455747707002266576644934319766391726038134861124103791222167890076754230011719726301868111790864478698091113304187079724213226806316259297739137968694500461533732601121911809314323026493633536287218601190164052452645160338665606805926707971850513778715016501718385422672130221691836583256764100638190231687834100194405584316047685284522329260104347369423120048072734099615318282583341009563971054080526042497196029308956872605971385861974383961674222742304276627417595611518925717216353229103567102294289232634675980797606185811910720260079649336834265955272885284574981990414730556752697768180464266765297868683289781382553151280788711460325252902380998275734239385664091095283269826326392818143175454928104926734067928536532268093858264529675141164719096586378008232453340828741840803731698412544201240351874510708621444540932518364117452456172323310424799014653914334705039842702360467604455652394522414175337217292522483347367829659732629489466104262826521754967436552086836235363877537221327258999514049172200496549143846205218487439777722348128281935989975587294916038396164339118162019752126367498146173512647895249205321377366894069508706829810174359028302448808649595789068438184685730748698194476765676019994985437613783389524410668519163686468648636933258731737260729069859843181555764121819506354847634046376152499243719642573467798492502402801196924095434711337368230605508699954783723596820082272020107843822658524887566226176638960621371602500357638274409738060071895577872150941133627088220054721380181190835207181207284009393054925208056911517052500682576367714248595647366612115696420980770359660419504589930439156491250232526933406030525584290125415987711976081352775343280205028227765117909598924583178480540786423218661762847404463301077406785421917944615208258440950486860654002097950433228463172658791738324253253721310004793903400366520412603307981892103074265636800409522923371877827512502180658586531392124602635180201489545183214035451881913931146839478089495795156881717731678565454845077079269197489671277034610066305389459910387331728811951536030736411014383514888979302693282260460413798878642248978211364041384075019356010823322922389797337478155297434077225159307929248282585287571414966205166484927096315026295588320122157296991902202508757718525007316055963378397816459810159899230018663711592759953344518827041008412796830071116000078130325682438657466454584527111729011770078223049132703566287858560748628914156494796761905203681338962191040086360060146753532926164914351598765128310751404828583070113466406523736567390261820706713555063793347291249121420211208403631088013439412822386062077094079076585141183661452573311939010727436919123255021380407740940959646662200155749440551576091345006302679885645694321101358074889416173182155018293175663922523309715646803992810931110396484913029053223999068435206297260862991065137134310712962261250587499683955982837078111225319080761264660506240973060971006026736969706013875835869846589018475951274380945846428541585310851457646610473361344771550345531880044745625190579182804384250881053587508931362839014751729933013960819983258813816140028731455556327337351961221665762705708119924537915104417869607671841728214170731181167311644974341855271976848304893050686309032166180365472135511249294443300184127529279947685042777617303071547684339916887652418656275343046552467856523340423888147433265712537595962940125681973861875867757026232936013764192588520945567824228978094306898603202317446394552279514672782032693991079162860185125924487446451136238584320993596278269549306653173430644246425384345406127993607786804536946080434465329441666820712811801648782509314998884740426335517064542369325085481141858367633245465076238584554267181493318993132941185192176849788456457414764458079761059909046522474227649289918392210110013659283196452867035847964583497172425653040676172606022002498450453614328883210199873342429005329432516455209176148574479953792860717237421863426853078254546657312435863185165656621560213690626937972659187175556730168629446619871813852189517093784555712102821780060820387659819569761118004525781339831725806096038270098412080494174602676987864147929612557489125172421841350357295943986013735757810776803849230196752306829598323413039027302802308747498870333254576297481763962730315736228511720802293359860951183031525475750171454300305969318671369780621181767632918416575524817143952581967547226675218412298689372025747277325860968521806253749982803910713292512728983535329482436554255098048288398518999782904724994986723176476737395585204822597112653696930479268727997987198568493155194907009654462364681125043432413006301101399978057177202962679246920260785132695734066707281177356474932006606407597226606950008834163701319115015068167954273467087183434968325570853671648072503932044988394966349968038101103200174011451915189337863314507284118067745003435177788033034588197770924845686751273455209057478842036174478177695699522574837419509663446749771051875928789860188452403869371739332176443416117226810887865682978143714063448410247087075403223782371217180945230465080476643739765708753419613221796917015795002899620211278122876864727195305065421515006334353773343771315731586988836508689824973370458127295975602089735613059246506543275046546335161580225379381306531597353009259672627858454732560746027424866012011971888857225329677964998010858200332574561153033231261340989202812514095124112741165748253541074262685214123243486359923554202861401860585740777451438358257872086238481911863123827982098803062203521625204769099053032008925291672071725756822093171846374982240823117608369881668650671239652388063143290286730033216134604259678588915497401212425850975564392402765307244498341276295161225451866244550444262475294910725614929375570517529209776997142045636494523793109528029883657676581839251413599957766893128428886566760180929631584095968041928774606215152977161941824096666229073262360867165038596139140804006565489144929117357742733805981935607532924800473704219837902408444291152903983746664476871293620687680555710085404679492305497174305343983152986240069460983752418262565855640303017581903703693496927538085552837075357094221368949369704923035387025699421212956223544669128517926389369741203021525030754513642117559496989627608245944582874248713541735513563116310901512851210942547774791942098375447198739427267190136453461533069429241531941069091401702425676677154631124879839098932602009562564216142615807596090839602972980025240408925260590205775275451476510126036664649379714038356822621274338873518278045637860198203849209082459785617527509403256378544631044152549325133984304419458374962538262108107454301166010812743265174766610478023315507134201941771561338097127623769914893173505971847262669472614318041695945114878411463489421953801782153866287639931932054764116067754856151937482909683179917969383928176781073503909150209853904345873460591163919517543327702737185462366391149451492144431885895799776151799499710356919023292900994390553626538078489616657003208787494430418895222149576810700868829860680024211605164718595934598567580611614714659288762744740069699195123038391889982002426391376133935309360727732568603489527123866935364151581612838560057184488615832848147371327385711670620465887110500367345627728748156935215097773820270861239400921892313600315836932722472977991268383847951284465600372819103564370644241473220962189208398347017903997269838229613016181777953847501564200168742395034379340317104701026188279713356762676889505330494133387801906332899925364747182556393858301627865625309217992479218511773508756794977776033037893843389209119525352035739660505333568958828108601983695241430746958991880045056463007168085245410801074696141425672835531525172577294123213453979007236513492450655177096148449841852487018607120186938297879153594459973134332602829442221871890295966883901191378981937424991295029194082927097113830837491637399238304555690796895275923962229648561270807330918311268856819040595733791014141299153887418285577746223305167918193165593163274407760455776100784960579749273041772132470195959437237957473358081167842658992784686222801471307656606279227651174409759179243944738002346105014943681161291640071177595617352771012428274349077288730121653572450175379920524843481043907102033411047258758737932068585857937369098629157297528557664745209640837942393772744121969049823010427932119871395871139391314310332832012249770361015787752187767842608080319025461147948588317532051446200686075815158698428453844643358868466434582764184278005300597471858702724469914371720499592585546977912828677814637018292899027701282927735381641711498697538967200300402314327379734733623166986823300974646884772855864896475010691606664594102854037989752656448054472805832324344184601508942735769503627291637287413306213581215157499823572005253700886702175129670882618061026191164702950505643437261587630891481558329692653510295167684968133070010003784899790214435263069633052509512642021725633058185958714699961269372259324152624076582228592488400181502119112755547804527184861292496220387607326329635889919075674173876777125663401183954471588505146089641429931184104275287658678459352518127418805711652859665690976690663613186983062058404497546940303205438418544924566727647035319751667024473883343137736739993309810195523519786912490044111003861378564398217563976337898560335795431148062144255593538105620069765456330748204186689414072992908364050267751417889500963678682540938272702008332794104009910007309562492468246409501852236265727206655723437604797293978880982395181229343320951752331895482061956900356000960704740089609505796786474381152592432757726337670533839482649875985307419091563874617077286737433878582767451136882296522437209677258487810586325275477987467007599510910278520296077913863440749282517168221905993732506853114955353050183235403447299658639002182228715356239668534300280568251276833556606284280499019572603085803600259563167227475882782953766221397638185868058131700623379259619527078329541192376774613920957318705410772475254608324065276014170670658642126812983178056460726260189516705117627574903443883950149212116224419128825496620173238519186952335467935931340877955671654118034726289509278462904944556658579408122409480730301863350550287963133729249917081823878164050592570545770779463294972343688893527473991409329317588462046971500300063206610347126341123018011257270398196664184505429174593728781532849298026332522915285165389870880559612910381511017873868024204602308175394143472790657332103067240899405366062976613996926007663267399088100866777459464372584185456488597422230554216977345008996607157353568831874867911432225912102990945566974084361846369934632908813241339083310900315041935467849264776501786762177324803312232835132389463972229262227069511459168183137983828068435706727482104903502030650853013404805529251620530330107320942413351626681141845244820731611297509716424817923337199023685288561723539517897995271138553142260165968693488851198543693995410811332926784201334675552794912950454754455157071088517354021278727727171643043330164000065989916188611296012149347833960003147080926417005451038040792846120966873691373766667024917912349805163316858888968407679419225209666489834391943460388856924353960682002156619637993337429260971374425550459260258729617867790622493443126038741671523340754928719505216552645655148465313863887479421032944233400425677971136755564369725713236595371963819384580952523633271391687544889161471802850825871889096942614636636111527038130869245461743938829335092101697298323919289795094288311916288149777952858587814877959399786899344311128600813085200431752887075056540706560182374258846666922800901794365285906650598898630946695917288976437923462653172583850333357962172968970623687318050696120507007308072892884386824761976452882951994727598108595620906674609253391537403539696568753452606401451134067990124236645981291523275925276954930245523118187989963527881034180206745118800536540572595619615203459573228961618389986358065197616913467792572649789978250955764032319285026043173809821698455091795177758454142649656469785095289970997153047141401889476606066012824649164907520308126656188065786855335974872647406055620255216848589585029374511755855028375159061774059569053479390132779774179490982885360966314079092396314136950797584380730950562158960061651854035036161485146711974636494242960447385708940379573295497639172230564770313128522843536598584013080809414288176076615626293914169730447717439484530437893084917798333403634479867683836874771363428811393126142425095317921447831976368556060926717159829089381133817040171552729446906311720489736406581056402187225763922045642650481732740615304888654763498158317503867786731256844333742390771305164183269111166962835090349959467898001605939235245802519627692470533562660677875268134655563153381394872831467269513438899500596552626323808207593265903691900025267246429764136832677832221356405596929244358616543722994861199778065666832133410264567323167603120408388045893118004225478670894643149775382072723263032528319623269434553975668734754156866228924327021135832362737672518663533058690744513415841367391686984163243533486524220939450595160768172019620317060529422910586758686644682682638777316422296363667698835784765815744375353678285874373494140430717620748818303590455171837119727757250658311642260086855860899440800720884442581645158842100034123154549948440987575136887804224256757838822103026992950977779444073553796976319563718353215811153743002678941482063446394494793738882956551703990427678508264867443847377701798035185502375801048090276098412220961166330718466138325544193836385257709915053378920222125253238893646073591850761657131707864413817751863878230506148256187304227633981301013230949252120098843104359958101808895264031153076688912542121143711792299820049629803958333955273110478455310837779572831109983136041765659023228142533224565258829056386324551450060771336932792946090685085496812448193246355531924068917435992567974724653082804566905558831374233054738102826104328458922572562613144055898388452444429487376195450714730512769989149381993567969970105149674420523691646337046671127475535178722335330572781770602769817977801806690582652659895216662270458350187089123270723520382964671547016293219333180593130781339226737496798285611116610277872936727923437474104288295331471254520424867421478580773188227515484206724890558797431594758099175316878442437239361701185445675419472480231576708217026330086138164695315046073900047921518563677633955972876624013774646057597810793439799258915529942106278342498329299110270612000149273855886552930920902498860122557708720039695183290511596376677491572569476539051204072571272723062093962816191138918314652863131441801027385587122768734128507497671491746484812322703713896149929692540019061052392283946474337109845228621957377583393198165885611230370760627681267106099879133416383267684097994381154181272419201715615367346938819462139327346180655447229318343598809110772934897285237637965726241366880187173751763664027734912846898720567433379545605161226953248308448478598452624302488593792529192150601661963895644878596509581718984882121302102971617634649977980532318707498105448709141506577481876616334653940764243362283513798202337358161093959364533741021156926036405285458066865832127905026869723518324160245398123903936822018483880740157162258469031230557637297721026584255543500524508515917039500537904820170681606771388379348411366462340851318356224490243056497007562111412800982779958481721246239147142868912123170705950652594626764292179201695843030745501927785313720600792190576389915623616788200811853504518356174889022596284748862584155089029905852059997268139517082824795828228113227158855557626133609703835745873461149262015588512179656020543984383165232753641058419385362393807509877928375883038712316460427850451417636505829555420949495846843749673316318347113231301902968772952980055325614897536335103789264095318762339808632025690897470153016887178731344567019684716852335484210927526462882082669522378929231169572696487582467102206913936808367491026130181661420403067932401613521962204740225196548521571125695448263092663320826522133027611208450021766399856834564359550223483398252348904021088435056261447552897713691721019080155122038265717248941037659443762533889300742552417874330444810911365085627896559044942151938795561591779453135648077489733197121852750328788398924738143045636198556266102643514654954905195756230710030602598323068058796489304424515035175886169769715302129812701666594896795073417441656048863744162861387616798661900089064905403575865356735212809465638086192362266785126745777686084960085029759536507533394814990417754146943028472733116325338246344560903012273478499279844064625832058980380782936420463051272316645151031008940826309322063396508005865994764008011865867476314354843669573813672321630048902191962129007476299480898772946316764067072181932294191448848687298158250060582524559641824222888077871964314815893103662203165013884995288522065582489375902636561993495849181141288008020131948170144540872665171160712640662307117280625761602628796843010327051196485794939877489032760180039948599964975588928443952868878010027828136179634520088901815374534361112277401790411815163380785998819399563792367592587338178925400459220328437443380247609613109925983655458035325075640968302770894706423970262288902281885566458739042400725803194612817017808747933315079494556738523917496486835301067749405908892634354380129096071903841000251233405469237119159228919575294582370168537501708399550852260180663085730822077951580276773387289224071602080577460081718592269668895143846849406019146744218357672033849346364566766497572063136087806086794128886292707100393481889227513840928911545064995249350308540686323543495574933754466462167939674547705355978882087475247586794133337966878497009315326490307581823379453552731045955473852792453465996405465338403430498308755485913680592373145360265224160908005721791630504856758380031448297951075602206293642858410532295588221988599782951302204924183587098630345083219988109352285870962755932613158406941401200617422711197929126339627022120840994692004288741325031308628914661831679118209349334809000105667758782613580556610729431861521409668733535902032881715746083354539553128890099972210718123735475946978526458002628820108365320439692676881565581433523451024081704953785231985439878831317966325278558937534104780400330958543786226558569158189745155522300288506524132726237777252499588786459823949851115861986190357774242612162114189388855419449649511901327161834535980314147028971650052215181948872095654676768726015261736888033440417134194583512101283711526153879894176853616041602002983178144892027425820084323741918956091429096290863340935715659402483069253805099293234699922577815531037965800841116508331270556830124609568754431936191364645224041170494351844771857237834783086235956121137604363318742595282012766978491282091664221370870576700870029103657489739208663568855931810436021824392559912747714381353325893803914140554609629997140283375154575592548224996655089685746472445916812415823922006526624148875819966805775709385990826394570029900303229531820083881313093545202684832078749939136314125324246908626638625654368767640870854678185994254067246447411240399385565618410530986800896651260928691157057522986274022566365559714226404142251735959928547444503209165193999684559384630119110561840288848615102200209400500668852833556837500602903844044224618223892030616893534626133643088735712666857807620768152158410432034531189844533715362278370814986030898493321608525359330612581672380310696400742381681947986187791354059316598601171022055061479590672684748407466656109377736132664015338628901082041352501971410657810315672317064596579909872218859551683460176948751341810272253796856826231372414586815146103396475146057461997872057678436504300596635555205267452395810340098670781481967008097365479576199096913808283802557226670969138680754970253883473294991965118789853627694416081299036516951687773344666548227948767186861442557824325595503493421058917726194931192664095338427327597959901676138559961907138299378168654467908203133367834068411212090936112377789028946682544628458807611322066734105818040458636295008768126737883088819833756078301138254323355807891881921867169966653231838474631249623089874788628232268280398717212838623268433726478270319342128497880699164494108792799411364419095138272303098509689006609341460103306305034373806969727628922088222524189810424914640038405206198009863172004833443239483633876759524761335359765120543895294021684152109744286042986335280306915201347481225051212820913003718001096447734351476928879253147193250429129920543041541098351740484472747350203397010766567265404805731648361385016159256893503097939268441615882542696521744662290271036242072985979780327221068565975053437000512725253529431528112219600826431071415115683182996961328998853829710868912298943089112123325657456635583310637537277147325168294820880091893032033707582496531853638011653246989300056399083407400949016378204144095960959228468587970257347867771112008955835790609931155173030548705857459929265934317868268185427241738596894110803883925413101568761930534728610328810114731023776105281725947179321123683092920554426202672625368044555035166631972472474464403757726553234315710885168487143253895374655875054322857287173206208568481748520233130971518727347025586446564702599642012865389964194352720835475053672645433417924392768309955961088494099013867293186783283646791620329957710453784342209110236754093276542763077676596259513641922385374603538677590286610097440550513842501807225724203298496227236069774184498363900262602986122956296273664576744349920834859050485273801232706509333161986879188374571650370118334921954624198381179696181052990986102470543531183486756475363685443964929936278863133180126788284798803386277254099586053328498475931556440809920197617609421657170371415134372168590265575363516086562118639474003124986311133294759659456509212850450544498937373205436882103251168759107967320540948028189405285391398940968388037076787805253596311129202410133882888299123886672081877027367442329593095239854471159703451014325265694521429439499084415254401927800604487966125416933474031180909185233382966643921627903134677465871327928137932142820233241319341074970656568822699212753882676012914299206764002132125186163508004467759817540745160210820537115025107358797978677202661452858041124960962138461489239090236420660669122538954952340471937723958782620902295249482796271373279599735291937083690416044171690776861003147285361248409791980078588035069544979760697556133699853843030402933862471285845704578693529910354086356272369339257693053671070839284253951662467017578360122424839223774537739315462165476000318984786029920518191842923093741929318133823321701407194193251086613275409759315561651459785576844291228500953871874900237615239217278739108971640231850084749508028542061630193373058120133297825052784196078204449350366258281646637849639298281889461090357921852172591280690079197569879959718126361568725537238408484792114000928839065369109921438350619244636934664266636724999277668472072752817286800832847220273704691509083251641273961228564546009101006771913581400784016979804063165335687202459014646259537539919519104037855938279760687154308833580260664643726722216011986754865184496694892287851313371406527384073602890662606169792336222258926033251977575630740705756653037280025989941638314442677014750147774625312707573958996610077681584028342174886151201907390370113997419317988223345329254181702033706531444720815080595683103146242639333653539850393553309641095510198449060311566110788280122327490703636421098037979360045789100434584390742140791056493036841216669480240760892009814270363796467673197762137919960232902300695631026721923548813160084319348740988384501617727085820522927021038798120280886085908524711440145003365939761213903999379839330991884783540902071258375261294486329421603970011598335883583996500172479066416693845057092441619408979715281156783213501451084417893325642579126694813412053875633184092072234386069920394104310598882538944421843692373780532800638931436082574866127784644246790551830919287928712316691599065836355947400202391357112068671944109213733665375948970714334268894859151430643128797695761695741031047137293820158713761264742815010179217487225649543585237911615000598567338156610633975328804900461517415283119421191286088375773636002042742250550146978430422107726512872001844359115520107233043244707678067965610321232941535980040407170936944867868790358380079415966887159038483604703100983119581597643723184082916960861144322003514200941412469003485603595923429165320629476100793232662310164037449180774918053353631197327447281240248195364692615226654183613297155707663740386320629029215563241054549063718390229699311785796703063475666311223287510566315903471279334694874827703678541881841425144630078631180392032253763244056189319020378398328729046900572232722711785410997062628438676289693100885172083871578133777037830740198828594808646400209731569408152753743979861340027726395711174460890369617714969015151648249209392346157765335991146737660043220286571871309043373550733782950307938892142038953191448572620733758563456918634239257230984479497021288231680395335382716541550000363986475168712481230548247420620414337605871382202652604658659253477357261593470774555567609458482981160638885951343050056577277487100161985665688006931444704394456709235521281450890582453608624168098579644386140890934301281165251928062984513529621716884167850887893033557364423203363446938847507545217787666559333421016661153403023586129563768897885132813223592479695079049305563140705157864935868901315223536822700178310842257893665154065897908788217164250013835078866509839977740712335890172843144155860091701733289835378667253119780190876672894726660378669941361276750045958404602104245100016515118160559436937444540446643859729572696480451890125635112886371994954295545918459474685400204278086995436644986618036112833404948311944412562007735156774276513545830098053406304142797439435348176033460328745401262988631665754905065213062006930586544092700325173174865224080529307153978461304236368578625260263530782706806183947257091918367096700652977964909544600654927104950308931441176773150935328473182008657333066600553019214892500716013515700987820892228047942594060947255439992905080251559434850722006933085807002638091913672938034091862948558171698154077450951539806269278504439806875343503542151998753736563263734873342014891424889616241164405791721699095856951686906545676107410776953273264381898314661640760471457800904954344954832410264364140287908331992065524142254093121269732849534192210075299212797587811964696689990012159461739337405493165511332218251508844530970145665344559819034533814898101074452480378420709868761283794855867292912711051790243137723642665962195707410333203821629343457073457733424488757198226910528353914999341061221800430049071828449358249328451357357197196052005866023973306247546629990586767746390689965281409645670265829086362805669652428839206936557476272939138043056108653850059491820393416330811047947058088104443381566146572625483163693595617668975365453897682756197993934335788682528699448150596641231651051532376229001603297919675122202184184019419855614528981316628024373511838572944467131805617947717050343088520526164599785274640435886222207635138675815386045638949642724582459133481108022727060054762345618538996853441060299362346163877842892386634619113960821187813856161809033121221394105126166112734807070965754732079516009116742529620020104655856232224273561063298859852797713585987226644427706618368292351730489063553819521792798468264781492162588245063559032378295281889524240252849885335105471400651481426616174631267120525378105037913434425739682702296608355275143937040470897872250076026148595954245420114937293566042016446639411726794027653831706250355675327954397920398173197619472288850776317102209612191193607693904636385622116387169982120398724692485308204693839825151253484394469862018891751972673842080967232786024641046956011286413843522796486946807413057094978557932970725170820779294136538793369852129786547376772696458011806142330082751487560845189418287054711216029704405952727246308285617113043164132242839579321533414739955343306434785844667401711959204522082818260205182857747283687509834509305858201239040680239054875212277011407403297931549358176994228851584335715212263434047969247983549739926477167350187978841027265004081554530908412001198510422432805880142565918276659088195005241906131803910312546900127569529050992971753087872710173080567365749788716049181368948804807670644919974023751617009008009240701758922199476849160569636348652150727089915084996900917518898554614619976711085510777483038771085856522700198177443688600348472001152103693503444744081017856488566409462498053453075848203756261096901342778153249993173754793461660522000535013233060717672546706723235133925972594148369372050609397554237381812469366808263438773828653105291842163116705294755000419400452329332638552531449976822167177524159741561353248633690770257701263706611674888927073467210655847397593971819564123101983497475873851050483452680107729969849402001031157914833157280406508240197929820668000112892488478872850880186344900159765665119378605632691446983254915898576936226905953941958238461922445178441949060302656305162705925238485015388448539510336157215947620341226075186806927238666585906648008566935864802796595342759220183456102946084690598834024871176077697540898095121364825037120740156904238376092079536317095380420892761230606999203302151547058053126286600807157775820288910717410812456570243267858018361679772164698133109088036566992341648679718992363274966361266758840613117213677811005573041200843365893517803685214978864985222613809508202999818917295084062366220299409238838484178190104884099668004156611814991837064541793903089302330820008781449679693801483127332846741582216928510735176375014349421679550765334975100273489195011601554064202664150240066233173347337096214989986134176574650440049247171942768211788050687889815887866608302641824321372878178202617061777728447899203548029366350109525046134828729624345837064309944443806015984511085919779418827007490475036526746492142105744328837222125852390066024901056454893780102095504312108984239247811617743260188140663856824467905719628133130830483334952762572546682421257302180380696687195002148463757375064887608450915258225071391350837111420452373990679709887847023267531553798638086441606628114273237613614255448007555960855700615012079485658894970245381714257436580715121337781518260598574159011409004913348848207969537138971795384370033114992614205076700658405717926512867803094253019295129959449440249375974950724988325991700201813244221326102618907445508544732084651928854118022669714920612252787279727387846599420612673904336158645686386958980761059717058278300599045395699952319127807456649954549095372251409374543222781469019635981788187072940514931195319375203077968919216294177853694599509446880852658942276845731369331428150741754318541877972993694190201059759763975987120781108128619272494712994718326246422413852950743180065268569589595341444592237512109056692012408312415878209136386378796990177664765397357822424423471104296930825119785432810960463975211424970460958677909375646333366508052878712637512323092915827508247710583700267764731128100079040640477311423248579356090176207610195782516076729789807170585685793824301953937680229957467234174528931878447991804140446585970415987413301982732523519911121737545361504348984462783076576187108672326600963618845990987247974542951693425915251766113149874374858664188163433300318446675899794501045954924773402325429687245498612476106625950376778742573366852823247773837972767769615165764224037088088345177827533931229618758943293908627316256328781531961530390915959344179632554089586689444189123575929590014703793672478814643822240124905408146896327836979537165245732724359434806994925120502512187412845328918906038973184563702326582174560771621536599572490010086032395310769110053625347551816804058909135144906652854496134079691704875828804956696491165361745283532662138031804386444475312650900289513298261350322076217463000796943391371817814978302065447472329350998158635585000411982607345222531313146685195999719656091644324339859974905695780663639542227802021888573906677733456346669424172009036214801399974924710630565035609057605566949410195563066555539476445536135203302024911602792919540610165771491259529126307426271866592326338123500234329825671077907534913897187151300493947008080435118239254094896860879210919064421625986860152426148369698636765261834238462991537306150863756406345212151939462740997562395819903692162487819561279998578216508523094169758298875872530442826932243435731098056775916198563371447198717946857903252535765710789589686306463558814828021939969553495481608507033690358912760211774972860203926853530904357033450613021322080427625277315716805054931425678926656336762355102538274230543296818405596082354792441699653962828879146641322821827723767567635632266380212530047437762228487721929960979716101824280350044591416209704998281047255385756636968376371305716042598362833031957802881304844807544179910409195693637219145798642887874555582134949736907883575300590231492181705552953064371489057338075929514564962837952151543994188756347833503401760966193996775756011341159476010170223214114060576106238785576505966903699809992502129052335570604564535928999821159972302791874702009323588544943331721266803476323481350568602180101103472009236779132088306780177955057139682819344957960538845872558903171808980545989519011015460997176911603702076581605203329971450308556623887314481457991471681700183338717900607111429537418832456590266942351009711068785533404033323563884246043265800639840159916744171811941014209691190439676387975296393482320688193182007649777754168216456224116273167389133903928785473481658197125166898202689066660031467335016674952320943432955872421492955192623478485036036180086073402667065634044874578762196365307545291903552144921854638537093975981015776557945637127793630994950550987725114363989966958920126089372021775043223683731530898289310729523010002878230457042731425338569432627792804852993574047730628690814889344231912753746199485813062225202377031074112629775670291791847152094170826823193768868532200107894518441743855424562068212952038584315240602512651479075243233041494787945735243156657963133554252318578884294644886884039708020524276595309266129594167938343184725143208120471872012484802362732326153219283935479974588647584417623026007134597998216654488134076917940359112183840672209600162929205487864054025757801838343681680692621614384594653681929231624261077836822012545877673449157582257719587402369660554092214476602680452992640107592133148150496581515644021600637887204812407744437196773432448067651755191086454947161625529288066999282416682176656558062801438254445361840779682483571281207963636798079975585948880870535238003668481465193232988520460600927148175283101671328084912866920428907747864595520074513475236237044140625925599495991683792100411229323591354429498176725296244992662275016186553117902963392917417957586938536261411792604314836028988019338192519351111377456025856363595483824720952338980879457847286057028158229996467543467523746955847901061096931596681740221912012042252058171412974816554534913857560073012549878387539687467247864522984456255623271796401813092793336509061460887957883571386753552365976737776126042831401130019480079703319707688360006857378859741927589497088479660015569237605524450169611673384090727821625110344957533223578386454079402048501612614331008555249249525650068811632421993979226056681049052723139007635060292422133560165722947752779827540169057248664440996893713393730618053154356968359980540253525155900254500148386650828606647446157398482110948852301629160229394973391480716758594831661303887542341505111687982944463008998703430500743162007307109421247284984995510256410417752234894462747125634191340961792133766870229123346199662567449717728795537690544409159056535357963592807437446085257769686913811790750539346678592361503673808255902447147023483376335434848435544145104131406756278767864996470750656301969282396038067759597281461946532587370207758908714408685449896125001315979229759740798862334433279272208056966171309391656600981523292416043972312816744820416353600388219847355034294496123323183359061829430791608390666650800308730788035746143757906580455738636424804610470051521896264521536564032225433708505421352312775184887524826153461137417141324697286083384410726041745884734331709064098193804044517856106147193524015662696792246169392421743724363051284355055580162414965366342353853189428607095644791656440988096909044895688085387597276353332464103864899838307976387882648280072580165044840407445084503658775453225983432109283898649195851156730472327022930972402477195732482158579172991584296377554190480477954041016266971459904271971676089860107330134555033990459838424395871435014664088221572091298486337016685969670216717868958892449068427170868671894778963517075280736665830433967233635074479481734980341612588147666824432496471356354728220673252808932373085015641090641355565504403217315269524910983634538623333005285122620597170289709634042469909689103969731915869701476683203284150848637931722917180006799039718077067301427216854934242100881912209096633298977277854000123607889813741255378495714753611054355501480999517944804037394330348126062452092576515201199030252521134599624019356862601674694557700122084262961590620262293451312590859284581668707856586734445419673351210756375627531072602374380270242013688463176142831693522747573721224175936294174960586193523906414907047991828235797480098153088977077808208129291254460042304194460484459474777307407502879928862880312465891169401279227293517987562058500401196276039137914696383801177789153061736793349834322140153005512204443568826607941959211697499870178840087728169572753632937934711270413344635287705066049678957489707685696651399347383883290917293108070470349662016531748942827004921167729237926698285230606997514268119654716863261026835891767918384609165253537342209043866249799986582734262282346032641809219406192427493086004388193722261645553506206394729217291050875455230818131193523255189899985440254871600701393482494429613869919487403212560307698208420030719605578351377765178303026651287230266082118319928127432263784336274868216576855459796176541445106342101524513630902484651036750639403815845768968216555260174733615769878996607777448532088946198350236168976287043954847466378624527473992800544607575765606611855664444299733604904064952419725611698568461244407655066663965028463506457168203154968000316458864803870447253419153915591327014976765746104670996582142523687609576769063210734649431633086931565597299059322737856444079746509634703742704845272219036145945454690674932165826046397677831025523793812857060178115537330083200225613884236545161517848955286970599681179715969247351945633695994282193996297577639718935676107316371002901448428417138033618107353593415239653691537084356545389037049601978787502340820784094845307326795454247613583443397746618275400849492377945875245993297912822941905122738012289876586228875567386596251854357559532344644401019858757587729805358858929309916704398365402670382192843898615509034885066382945705254560048489193968562339178578244163556301329178721312742201259789841007614945465768304010056958196963823762507516170301006767360794480642361852309467713370897789191836271738893958591433331846646097701315291158017029315689582209322298728015884235333082930687428756378169543339963948421209203491884112022754811937934947638427856754328109869400577384009492320730109359635697285073719578599420497387425243367266449742733145097690624165094822952447160596726310943080124056376250799019140955725188045512660523250808195642097156880948087207738539215757587854672658578570702889214621768184829467504208922202457278139816941335202666308779484990183625305488835116094225358682136075245006508731615401734226340681708266957051269369616214176341903394922820755973528554967870642090523079501885524061091187074395014449192386851564467219763299627586014756115507223745173525799479000191361340515264379639954431897297232741994784928343376063677971257406431287504031428700933112849871133671849595583922697871493724194667384452397508347909775134096246388792822430316784430041125581074014450144573916394612214822956627810701875340526423794595105649740081210453372771034901933826251007550465635010015189413362518970810415240009898827261720251294993199048313803499782990671225978540323493887350459631298889241807678322170871220810530924542215113936979379835302562241343388239585542802478019723459392690458737542203055528461669516295534166752271070955696767566052891893786362023289820675505774988625712620330651043524246901761493801466831399000119896997360399741718392286137157918290616802682912214505105775489564060355123160684812579849859297160119987451852272214020158208639488905792276784574452487543160361615482161010300925547445655159701970232315719471354951371184041636857670271272835926919306826256333756129405784428388416711927542278521882838189510523725646252436156365112857042159855206123416643876503113487936434798066404728547869736293513629590295033137866827477140607623613785463422949326677212177687128179690788787936077894893089742147363693175958555482669310452032095471433076922410534286957782950640033229227954825876036434102605718576233986388363953434615193912246645464915977966305461678737401587696860667981101683889858415128551003704238575365258114297581413017113605890732227182921665126913918138446162608412568583675685366478775909122961065328143039849018577442016408908704792878518727799210030492432491788449262039634615441879120558106533694700478345615465553373809030309416390068801127328244157029003685883354685386290944621427209104177585530235572200568544812820642634689476280662401712122817140881018753075608959339094304281868000216674133262817435927627874192903742316987661018076531912427807063179671690846730176091771678377157563484390621138185641636295595396138955660421015643190212878428068107684674414047760323849254168825392104183510833952672977229078490218718685654334275426774611068097544853643820034076361247153202277789806460040086233728531259814843134076357390773141495070160759257790867553927654401862984273764029859298442907424133478790726172007980290386043569551907502199063524648317948306610527171603697276025649301706779062795942581407701521623982985771177963437483366463580163165734067595060503499151803665662908270400519407835417419458003821556390414395464262254001110847977190884908830588402340612378051913973338498040617727386206033360726973108700401535060017072864359866590626521022128895410545468361394776079556023835214183481019429246359996936345794931082604372186536951830801931017105095604766058305361987711557257009799197097044469227441992532095434967819008024794940638924492961226776992578144010880222973095270418487827640469484712439309912782190390025315581917145528508797226041186484747128682002248400010253871539996680277869189013204097671357423177255027780322138518792312296728020593083807028804040778972759397054031355965537830979413924066341992232368316771895505423615670616617873581969916978449528845267204257450080686741590207729822537145687339710739653432910736711084565746702988276716840894289443809193238540674553159744984879608402040422579902113310035043428864270609346199913089187953138277772367214666738352459451083488522837843808875856305685623730635081964848651670385735062286587906383591017119208238930552671581974282711152799597729588255234682638172010847601940074550409001779474460703673630149080122202461233950647292107978612909922424024100846639663329080365536674769234288588556871651013087897506004563296512867560779165208946608765770601526813121261512573389444678420561685476933138686772411591659890464579965721336554523854167276239375254492582577734618286627773819107808789090626068564264110569690984161650051417863692300441300796108930367510408656885971416084675020117520866888605758037745497678457037479700543600340030195186978642996855738652903665900741402120870715659980962406065414572503218830855026559177088861120853119330721797899961909697258235251829261616919458877941078331789794860417884599093919738250992307464238184008736847590005145286189699077876586872711411225563377613714145192635171392346615877467309130675317887313855968306132329023914777085493834959169542640667054561920010492863108498507075567453689315006819201149808439794137646455180534859192781215239235843259668346376557828735950907670112846507452726194600566861219849226510203659460438969772860870227106411280385107075332632828918731701934135896969830566491981426133229866871858946654694399943363655148327124117547168872567721081046027645727322405476267675897983389455241673662671510920431618789815302582046745915953692349008187983826112257354972033334860875059906988998184180259362012122717964696998592744404672489806980499483346701013326107475657305943358228730893538480538920930325017346338821001943122693320103760954252082748475717850943376888595107336988487923968426077748196852587288996834457203511420849957651804704377958187573969415158042604842876814615875965987338902997503240971325333772343026300916892731061572367938046629881811968606036732285239966031322137803160162377897914649185116692494122149720671611940021887034040516249475766168764790162298377464791782134475881560311732156285790084681701823933514914164612003828305256330704519696676109085528921111793919586308480702032635062144723490464071732527209811684452821465731024862709234606033772720697401190514646553202291904365589455348190961328586357440964293659995092151746823914844926123732849923179139278987160456650701891496900611135072367603639067972135369496301147716723829424873606649968038710700742225448316978434456382344088764637700147497783859688552858837342751792371060006531180118177746985817352258789253549619251209283516153515450053329626793945523292983692515042294918322788150291079504243475794598851327029379601499980029135131121417401076823172038363718161125803574256796411049602177751133978991043065397169701741615902733386603023294219490361297559579678569712486230300074681016897386671935065241237744939047990332507429017881303845455856590772025947488005766136667098037632852499332963823763746206734447432069782846067319116817549534486245913038958980022441532671212694292198725942193167598367979342806450835545291545561116668254248021396745264892361238891427968710467540686414097142039492033742616990368362777026158619472753278971934943818520378919563176159421150295685132239818273636719635937735981265498812808794415880994326267814943422903217652951754042330682610061546649545999622772647121549857764204689906378310723006811231911976352391931273481864875663137996894205957629528754870991829694602904431225126018414385414047186907451894728893195215913316455689116474352900691710169417925847975328842488893458857719218579116731092952489973000892688649209531450451042843157025536016436856444736144701079290785318130533609954807770820522319377599988332869466951321622323223528479581828524180181903347741725739754149195216255599755564668562012734305974721447990490600779835539399157271839552136691285543088266289602996614205432827556293475641826145455406779210640803491342247729509526477426420794145135001568329705486170702646515397746705802500504443065163398610539123241802042172637632457587828754448927241475536582061695849376220584299022345609099704215295990634987327913888865964730817857667589808687126786759849804344976203629862611964674984830743390605958031060456668699383419065321977228531685322212004770371074013345160579222123200125551791987035564490046462816487845642740113632815231802534730325559949537491752747052356279356718083985662801041899119933834585604947869098472309444712515570323433325344519459391354388732817120769443656405456109641053545351105265592990519067700653076664247035086945358799624814229866722914545617078726955234629475347522925105439447463254957436327975628726028585723658992320771121741391037834825488518599586380406561361348638385633702051210529829579553635958389059395967846362892035582406168045070878949508154654242862491843474827843329842329982190564167100243785244227763264388074266848398793628697328251401911519456579993946248295756454886690261422388377663631776300904758163807326883033474695027145482205564140925404570591560710297212652805324116200894387617484717524809947176998888951971286423361244629364044841012656537440235812389299175864012048322821141453488837466462653622378429204973959922366667211032265803644075748176829034747387840226865963855586993094541367608228550912853696356185610576770379450158229204912277056372589228821065556523768391705672314823858951109608326562296625873901279782298212656328327303492155147682982911705851276686828229606033356794184073787238064159855443641100221815305090717151148046130297627081882617463570064119214107089438442657537107826053939121095697640191820522123029042761484475902949748400201061474995314570548510172418572837910576234819151072561504313740236103765947857533287913547302932937270211443942577300554833244238302507006965121305116604977329597201462986086637055259297680682230960386653471725432784808160821445349853201839024170422257204421775639357347452978569417476295122077537478209607690794443997106163697560337086136054369852650839243534961455353757907271528137272536680336174052235141436609351324229485542993592804143866070369070725873015364425877412768902369842104001845853974248458886368641881199316384392375171991047687216937816812353399296690406107008663733921703647073821338468095618134382674067454251207889250296604817049295799211284580392341521120477267855377399883144099171894436932562434144908793383472278194600215864866869762402366039444065766618939752673685018353794163704968244224931906296647212400220797066678099447318524529537624621392058288555546674839792248082362810379070850533375185899555281713429298524073733442524453438946343700405873707117636180807454670676428854401237002808945388113506760313154204030971293158692109134633251110846700459618654122059139940218453934951173217408245403598201802682989705472229249514946151600803399027182434508077011241195545391494785862857401174734024540904347017208661752997981664977062206471820938271205646030894290523052953628920517687842904722065960469298573581078967432222346793025253922546618758954237643143401193218318475392549233249858626059988375561509288359307015185573637186891581463109332491961096414022799967150719747772250746434628654266723063921218437486607252517156151200581183546710361566537716068798415604528757372581705368104392396796318093184545083652587550129110036177263877961983390910729082427523088815701086012942902539715221426531910939350572133657676641912686435455693104568557828971302883392591291893910060186398278580316638361772700949185058047708095965902679447435523274330974924059381481439521615463460403260806133413895857926268052341545723217255097371807870437239144650005536831811601874759780910127876844110353597027878062880448110806191711055472217259941393902763850157091483053829304239775479537240037177581740838575071318003713411418648486285931454033617973337701520887282709346685678961720784771663364705607644899300880948079645791550678518237037682350305559572553266194977437210109792681989410400257400716837212363905449740385165338542211937078562928347593264520101291925190508313290750286107430189276980403951853449020843058919786847409832991303141815340406346071728180334278419387967508387554354219652098546727455390779523458709782759931160631221374390085974087326216446510619559860449905698142879827419241193977397194964883362194275325409360851032819511785834933175363829269910294831736844131013748880890685037515271628851408966200404228642677312938023602680565169988402172775604617588346715574395518819558843189267777418687667557690435611994359255412421934774459166030609953072126542805713488288629250734959687220180610037540181261499408769603395718333026634844789380144070535093183038967918925435635834965299423001835050434642940605936875178023018515134941180040811392611421254081440256910426736279379259328901409405664233003923940834219060615053281806460398874779818445315553122360414151954403146930694017880158661686380817619943053036001488312721024037948439991886836596883603858078632337818440487243153575661776409726616119290631028294211969309136006890075144430854085001002823551231368417647985626158239065747079808877461315423735471270062092454403060954419911220797075806342715761357077038322294640519084779961930811146902165638582776913468293126867014333228959126357928105568101190261719216170557417259851368833495319473866855272325518909848292966867099203334723193397174700204341279788520434031256501604239827033059601049812721186373241585936511306710914409667719910641838337941718031869791052906837938468756048585731518731340013547858508013197709223511624487123874466717598402888049262422385814838775965150414816689206012130023623610947857506206036419824437342219557304311569721771307519641164471463222087469374293917831575636689858745074585760166215771363544886391546014263946088170016579157700147510772527706723648961330691533649601637438746369558677733152150935507627787897298487032427348406016944976792767568924189387886803415751587369397327378751675306423180092668058103661926583651118435265487230281482877898263347457012254028110406314310060182844639723450641199370984882242960851986862695793117772475411993008376647801234829110030617091650733320118063491021172328989233028983035148545536638920813576044803245767417764617159930138653263565700035965500041322644590961022429660345558178733726258766338150870962292915462347330378592481655361281438804432915179700722481259465562104988694873240287460023853626119929641300672502442724693412564903518991413508092462887874906834405197582713888928601762421142029816425614809843994732828621922182768090731875731737905327499645652421800617148317366726302503383633240617906841373375179170622737109079324590572344466668135105576596718354548983859678784743907454392988612169748057085672557049163597352842791971878392771653750571677835773124831988447796187378083799284504066659183048043034241715281462400348641218717934605377810570213377665647290791217412638795565801109527782835652242665621547689755743452621263475533035562827058562658470294124527554234707277066573742071441299934490519292113922941859376714808930816698938041648295751149267438874176465368310567661046360380981046223205858778373390997902779086589490302937056434697977172035059948958858221481922640484031897000882185181537659498936275903695586560045442950707015766373172828173312852817050320616435807331497342719528682878775257392476799402251953387865258332031213528028891392745603081021685076063240548765808478743736325123880000682411857327629439615325717413028777442034932305967794514120965139062417719116611237844802025000774717264011556837828577571399865803534778303801952142366191290046761246763526955730109859432985695138817131926056706564350515849756662468547709184341094119684321518378260115683679873057444804747393781235278404422903346523953026040577012977466248647722794666216214387464156200433192084727209909939143649241714579716147602242074879278318558245808989423491765820602311089254860425174193627486541441743491571394803394603620962311831265618220516923754358856524608310467543420921580702944785520892760849150071800820772643052851791171223577534408015217254330941878208531214429798597936537853836281260510419080279835729838168599106168498815883859788010596590801824415949307471317870034453835611518905303315545762532994847460001659849479365611429805190432565876124442554871469472951066456642222441262563017519414840843406872435715099163522781940717119775685685263200476512563772843528573703622740695465419804263544827107436891944925882698893381228893254669710715768845441323439814807072532448014659466573810135488209786352203410191466673169193526437986096855331674844301489870886031252633833921269954180394637227092580381091976495846272098199518087801227747035464577487277907863614079298058384684394727558079490916669174801847779736241757601916292218502376263193188464543079689618762349616361847217509510767771815213466658094106444979239527480071022402058626258306492592753047168899890053746639683138916771370381429700582653901336279536273433572461284914822256615106916408492910584997592324985035477164225963037625388329708466775563921340832839189021345655956147149217337982031459175010045991857805253718298634922518210254183882210113133638310585845734748450401519374195657529594600213519841439085515698464675483915967999928575217031736741297533178241551754856537134366108190275995528803405681026143138342672920846423261339217473783853231878704015770053000799568974255109282190741045506871910480496279832631709614076025836640543541653123950330421647085377623551994345236001237513025980390737504431917677249732010510247511629088282671076758531106860959569865557664902051899092911468824216067630754009368090677261307409008083358846458216086978243821881245035576787048604260013238958568006712787017882357662739475239099870518306276069451702849686903617539159497580267398172000270887996743481246567550151609557387117307450663507092839597938919942517318766661970030117708788707767384448504318406594932878570020514745615950436139360356688864445752149236591909705933787383045959148966034575327000749819010721886440871617025021395215666014123352543558388114025344907662104193365247006299241799134956632181050359120155208914382398171112948670530371105920122976463721545542639342969405043469695797867979551695373158939508476811845140944622094323810682740845862043743298113019944739714840564116158580554491431839135333794272745120491194377656858866871600731035818039533617436427165728185256940099683603226049436305898221250189087123692353085600740275850648250985889587858849994434439278083952396255719572327292531020635200239485844869240611746915654389812516798367580029831777000774404950843460298887392848218714315320761023387362158729635984113982753960592021430220469305125872560771808673909246438954094722918936434958072082386332995118587905045393870746950338301432007838264636205540987900261901166653114735187339678816079358294519951631935389177185070983405191741829016473039563628211057163348406816138855702991235378577116694264225063875816216855886115737686641133835888297564007647159622900785410635216323957228565712152999335431738092172771194040121357491067797354531067058511401663477633694789396985373850695409437219730450375480364293367872959502651788043717620638479302315118611948998210457223420920128096721620071569274679904924589438892010143455824559864519423498077417261962300179334555992801982190124542767732473150029216813691785348699740262032530837305681486879571586715399108993772874274881215930277315302481583745041879836772271543554417655014667290451542732080591571817318165517327047702826990802679300043779246418776917915629769088987374855825787469645416087879547290711852206244593101194896888557039697510589852278185482939196680646361774386219000796451819352541707673073875067581898540107001949301244534389236662766644001535750155048656504176756537641191221022169473414654101296950069259788818325962083910075219035823231171322835021763139397392582743545402829261450512204623960554530616201597611622134551726261768998420574784279225066877677099878085001754970711725126837202226856253888467477427561075842726014006163863181538425385546220254397560343021818755108980855620918028118178359673474940096264976441398051864378018368109744600396136077688387018664277858482068797402199882343127442920128180045924156236072996136133969505149947771842675781485478077585154629965350880738301222754176132825321080773988236612715732683444913301913018756749852888029576734029317491432337488391346967102005070900341028957640017621754044126873253070059269623692913757607784060753107002649536352670681199751209102937686808884743952530468577972159759679420689299482827278229467815084612129514377664693737196840136047109694809998786629557074139226301263286350325646094015840067732790295930515201837161201993240487232796683148538371098099006171865736229947724285936064585692989584371303837441925935146990725251688196786905201461576485489032928734659439777060483631745067995942331971359351488332065864170660175860929909471981605974115143637855356039954089385160492241963145347237962305438293787560513660322216300460466111107698727932610964182283075801878707733197191569908886867312313950444723324788661791724839831052815175826947327834835871716138262325302133817551578996924985059263169813187133472814707135380585996484760978850022207554682276147785138147075369723336191253422043019683026484071012805685831899134424171855872881296495111916134968984476500794920156859186868705729564540590330765271152084859978725675371143166874192398701043008284215596099248718581895591344568856006169192882245600017957313280373156702774391359727942746504536025603875766741712382810248143771904839727416913509309898142062317914178393756846029006106273334312417869503504661053714508767371788475896763918174849851024289050294017370985585542632308687036094500650402005852408441013753876408446643628661234482584292827830850774368984220041503455873212714509280241074664784060342061386771920583726872316658646179632801840690768777070656075197648272994532414793136446040397692109400804680658216449633320934054493880988609221898290017828299672863456540105223582841833791855263100568046595522593132331099712282727471891710478523087959386669877326183006266734443349355882569499952789353615906796030877014490663027373717504268510560496652619413801471132643026791363731523714815612876466547458514802236397902535204983392545615940200626603757950179913866720305566802226814286428314758781566453571224221239372865191047535187335484605100514935658638835732361341567960115728181024814215533625631028559559007353489058801282171431663509727172382772850868179967225869375547208561424622478682764224645593517639914050778894182321596360243223498600933349684606742476704822560606619015247990169424734069834042124562999777705049987110344109561875090630552686381271421764093718276535173956746301377878593400252323564684834119253418824551187509536391184824475552994907627565888598518604083645864378364716467866149948992024577779637150269695649333931285006046511836811889915244549896582427564531030318840111801833062817403660757856260561131153829948877119503856873746887205108503528975875783000671059821267268588126524508714787362082304078047094708526159351974545039618783872434954364623127703142231031855693863233628486730268703864623817696648939230312721578370794793176429801141535481798722848584483838903049614917498198862113884358172836684316925225401747801114292559283010187560673991143065287600806371701588572185782539261144571382531730406651473652717319353727016421922905443610075286772944160618485135589626670911911148467513102028955751945360367373125289313987479906732925672567947676041630542299279245188566324262903484435505336852845707789496025287088494855206490393003480178146846715778703704072488582351725173179642644151908950789235946252030963086338314784136303204609861244824928429162263033632728694075366692545546608673973973403480462292842729919481910346674378724390607063289907397760562604630319508762192765912246000099204828370814211605188796881717900807757049213389480897463078401418642859978262313761443785124939758047593038465615691147889690760198998596996439772612546446988613705440664722766783119769348955886919045510854564835848033423102805380707656996410578717599937798063147094892840679681225028158151191724013541105015064685572988509328450045927477286198191658108315951865891270895575756110255376499492256229092867495076010313956201077425239882556003092856377756193359840720397605209833376857716776133349215875373992098457754794065901409458919849469734218666433843373614175400588525945881864653638432308745697717641937357956998338806864494859768369727802311041193437318004579137301705833689543571736447951651822778390192452616660397095079918424116919913754047009368561248770589877260551646485575564240901074083128503705315066662202078264360976676483455628696802917346408132903442576151608719794726834825201882956332894541059429395222421847964255808166613184417544659388711633825296534594962157377729829447230900914697003223553027077740082099308646589439570978777418571582154255316787346232353668423163096808868831728477602224394954950723710083844650418690905380526790760622436688949548995220223492234978009638763628560297713070344079189465762935038668279455062188623253033215960061916541501597072353613513092261694391041486613228710960435831193304772923526056896374012346260434044562267942901747198434150875108218705225832228222201794038254172595590460785850029864152230538333897956417121745159517517915191119333621459753829133786958967461982841011859590525690253907817559412877592149522253783445287913573327681973609808336384036903880064625422886902934072092788677891492711599905601790200833209047819697307199796571206215561024710237069661543736666849950735340164720721449343115475061923379922256545927989837396647289380070495323261338215648815129379339342450197303688829243403097729447850287039294734239393943432103969763743681857410452061920029713207053715785502756690357807199805585301940935340526607752278444488974174203346257927909591172579479551527848221212303364650164767553911048899871059862741328872419861299264417970388378957088214758252225677074203827402496562790698213223386057537888678173427549436227154867292795871330774859677826032425363609150548369110187800099512646685880230637330222093139793405031276608873581580676165915327678106768405721667285933351852619411861681988099881016602640500867357966697764250983746740925304681377847292358040001612222845772958989507082390543565510553470338653113308515838682020143181180484918430801888656866269135966264753391439606236132520734255025854459392399521674578464567503274014787281086815272187153510602843321329747346133773340280595263745871050299287601862022172270206367371727778883495889947290830701255464100556631821586591978969179066499606538874773747374377949858124481616259143450513401439262950469000334163934882016647382439839526467094742577853450591733621434677882765990444277056425071824577444164245005669457510166840910048996831814328768795465582835187955612866391773636188907253243929012428983945379736263032648885666149358920319618569008807805778559485678169832552335175712575942418924482931722489200311649146385713894463478566365297036470121265961260846472901154943376318094785776686877653008425229299291515209409085760869565474955899244395463564640014501367602145542567190062612253327561814987430606639689823476598078153171826753320900141915980291879545631574880442421743838441482048310560546293676647312985420668166679219815513397435055497618532645293053876369856994735849991396622641161670932004930152371001414610372874954379050071490721281761379285361452707190964503215720985445465288828408237944320316849012651854785055340240054555837057981467975290166499831585115014664756397542289505448619279051818051865782048435702908836408933985101438512896288186996465546142626707255746837079997103284450007458490427708793120491440357390170257067784258827962794764688563693062051766171327352994082757357969375584994237943795133464896989846995204214453810647135134018488003062885007149988353944847719062927892482915931108845852052272813015926136639543126116686196712495599596918597393910577377403188750217339056090206485245961867907995204128182499603504910729671081824925773817182713577855181931828906212324546484309849288199190292669102945163747721718856164196661343339046955351073523603641512764170230093401053464161101106760762464337572189831430157177195524985190759165953950218608790840086772340168343223015626797005358856071482300329978805080759634598098145130482984612599512363817095250323235279649429239271108364791558124722092943272369346334025391422452900426986350510884629434030031807910202222965123901050691434245825656171663326302980277172492713146668379602660438732924895682437571374797322661505520940677752371642204033840640542491521227137689186389095874144341576811178975620163203820438259509428893921498966113997188280870103964176716756264943173780211368165721117438657111246797379778811181343459928735374009061976501063509884125143260024912098669517518171168111718348323707866821384126952537708040187369054074761953332408141689148941341132375770188111228350652061859805910313903248809388799286625101377186218822931558149437224061786929900357185605243725215360759029555773467207082739496821988787491145231726323458776644627144128436510641398454020276091393757829071466766461682162792848151019184733234674747563218154794954574551459598411265993081336466537054153627988909240252480835562048975207576968856421378854499368218367057985187241405394622878128381503695039447585347881484383930459483702116981097212824190921299660102265888665925740268581072259459081807333722908255152424928127295904318638124864732494985916875424834773217021221835947268812544605745508491563206699649825289721964497791904081806833031706824808865582357292466495003938092644451961962932680072533224168028119489819915082023706861423766070576577191455410596603196383738310420674352208798831796387722132149787178234206329694403927144183479233588468046729712012330622957435777055849934074221720093622365154093505161462063046372834221185085490702761491351517439532616341097809845031499276273308250345913442246053244311736344532310429041344387477872954130321105732269622951371048734644573105706172926599557229390770888954226465581111581671021846697851620172060049342030701178855976625821856991672353639391354098159605324005021254862421091215913294924368810883066732673631472454879870745899597798009455859723728692191296004872820070946452649000512999789794145143369899539065634410591732691782638785566484922414671399754831845226113729002951226227404861347409727015280292905877057614856758093966778477497675595273162787162164156134477567876024896540271896096642454869731101131542096694166691166603752720791349998275878480885654572418912561603001164859340164393918386956678160635451355702296201457244726797807951903384941239171697309037180313690371283593258743067649986631122966026567008279368434261873611455123051925018202638109768179491343180779948906046788993115835958859388981493166049015094703211464213773546066572733426893170661287314553278798910821960308999446780616877522428310885473365822587523906026951269217533621694295556867987380716682803713195710335573757092101204320217458251553587174082710063731430364404070708468799019483245958407362853003308514300733080607617554393604603072675527077491591075841190300193919683035197593851628319937020579945648936037004021675680814440883615686219736848663491286013672056171988185230010145884429371148121341257643190852045660664381463963628732067460990992446943595182570407594136513315486537226210089245855268908553511565277756475544878763667038486099468931965205399994807161197461035262590715021667807340437462615605510548235550067284918018749657608230093115248402407462946700846332814400480433526247342323559324459650272042084664798280293711831705898962294515909090835487053876437224619014194416674149023455831388045250063432385884148652735257341330213394668677236768746290469296510769533058381003083444037660452901155512230165923044044339789409605072155575607021853335236067663066550015316410508169964283018758408998232330740986170524084200109235823015876163422695930015982218516195544982769069290454025060735825867718557319258422558845629750273997342035174814101223341443947534923627078903451472474618503745085833968537727424272943158144211693439577721565656582601072748974102380336544440512747766134742150600275158325764713836153152880487424823993657692201084896641359893832199374825608700565991859024755059137576963965699749979660167438974542329862016199193460108497760573871219913767308020314003834454400291597010699477921330766576605075995946080127459037371818082215231625802826956218325343061163649472110338470300637560051800247004008102110159705952288863936674842263213813352715350421538833360865885560164163722447843444988169106868441165273070860875752720455610375893158400227659723665852676334585841916079742901285803926320501968787541735831282381076724771174237071975993663453380050620096193233064139312249307609075734181563445447079903037574411371193250604041972904860534880206948104526601926917665379901035198835007279104058931676745840944338478369816556713143980036188471799531015040659717709133233421389136367175631523828374511040447206723598431579667413663220712818463663687921003204999330386832793573085104002169985439205266456494578436368608377711265681828745236483039335525692519234908506500783182328600515636734544753869834811398807566838263309918231768388225203581471393706432912675440327825475258235783562014193792021563493182050885754427835816930641389688647271645521898367821251745372149569717511748558748852855807483660976088674420537357891883262218788417523870569335138251099781397724841458314359498159995856576047161536065212920766534444516448513994475504499936234380334008489547916341931183761306185432970826902990451734395363431845924595194521337973056777271140193067475945627897627890438448245968599218905028133982311748960034687864062087196792007085188668114356745359533747604317945003917985845169069036747466455675911136908229114604294076279973944626095571477953353865120577503112687573082338655292750845995142390694460098965550896348936521396702477628521891143172812096204392985151830828380794532342653934398357138233891518353775241622104974954050255027177171455256583489819895727620792703466747697276881179435210349990794829352656941830035606827391773962201887841302144730566665643126109207404608655980477573627860618298380828648796643404286191496848558504793521897420228218234382919416309803829181169402323735089690923985684004672880122412653532192823036466233354133396292044819009134298663418999750221270732907795630341812315247230866537662615888532544715030559771231367263511095788547717834341213306064759963028588591546336515175691696488222164213993854469331083296136639102839868797471709544348277438441435932404848841688006667305380961656965348431159089487215262291868934597422253382449776546776029773653339392416331229705969742389676133088414641284782460900531584509204938166651952396325071932822724885584217816483417902759040658595954044795686884889004461439502757897400735534314617479978974030103554229040085712480273710482889950862503172307375810166123487041943412912171658446229214359360478884031203184167329060337278180028788312800915411267605413377581616769263288721250161257839685628748827741026064310113419808121298241563552348055914681555652355911212210496712682299936508206301341829129660013343538318112210768496656864097071506012001596862818754212868447128371627638759961845941115313120757968650489065668898217104773251669101259972091172385656403622880981734693693110971118759176591923548483100099915042796045293562960586576057357403859956738008821190391816008827260474028558805563768690415953770017690292933230611034333987677130229166413984988713829653085586372631061911793890661947712864826019026058403229402850839942119141186895515280875444921057942242612975676147333243126546075437238230854151082828591919136599205962647216603939406818450916927711858781149494283253286231717913194696208870997327506500212435947081396359446844331617444302399615536842541515655528756653556468575475202839194520899300037464780798460306812955593792451454080067037124964823834885610519399205366637217691805294362470193624188601794700331973383789135126873789465728021930541129571111106620984979195983989695036093471729666176930536111562263238247691814600102396371260642792669387359185890082757359389916457538838536329345240221519441179334620775730064929268637977036161970663961524496657540009271392914060838415465234189805684380561125606169624967474071644856855649195705955013842465397769392110651595406928954975058382196850071051437918451430477913299626661824703319035455475728248615863780800204448983576712072057049021023773806490961389366441076990178267547908162107631351881548931440013544548219511490816011357502750449663531689763228229421465635854650154575212838451209954646319571193891919242316925401059139788438519953132348543742881827255934400738099736233392040359563440795977830744243817993554393770854059389819764839601593473109938623835464473865044769786402155206989666400947344846315341568273744471530799077031899915179701245674534539147011238604333957001638623341174135394487445555257445324378315177855914215374581285895392672656801096367078865392147208959368562371280586287906242266900795954989304698536961869131215188078797460605912777818618845653075810802013743959116812044868049030816140308651610623771025056377250786566279499116487144424539072831170952634636661334720814290219681250255244941669850403105986054838454312043852634641616064657794606928672535505943624700987370752838527964141147042245856685881352727532077812393323417245462640237256855021622941403884966160206033595399931797054612938584261274233878154031020694269999269601582987763387369470114704078270286436788896788950505450639856765403710323989618842486607227194533976615170304108095954007952033695536145383758754697281275198528177501221209862412930894357884201532598314695959031826565051031504806690045049250211132620520339842827392453021802493254698713793923232840538358667351662145379259354914425163953453791717019847829636928705649526867770071391534078416590916725322588783072478172934888135368977403135333348059973806621132602035057968931675630604238145780154306966361913408512329857915729628332246144851174016044218564657598300678226834285657692982531875296390216971433450645137898516538005014350262658366431529069354680725389843078653985048993974751693870955994354974882632556753637803244646131461660108431550653092768159736983961939235360522176724467299485274063940741306691574797532559746098743158466507457779907299286195324974321005150139291193534850226581307235220980400157210680505326412110765284712659494085630951189554825588711923816713618911047950135397603450624580287890740626871456368251600639456679336546481509895011013108944967001491224828752013391708288690073212894257413419596086542937652201563150373606351893417916376802955903601139049492067673173269861182108217523280228499935822360350296621873606447553910066047015153383269381971943799342965812152873229076572026094666907322801284477362194913868185700674142989053816948608298530449445284159068648433106432399204206335167937371858311457125094896700620612964026247582357369632789023526475565863359943391614479719459117491738644936129367268746014833695177781627063142297707431681539187450689357025475393589052513265643030026575707170635812378465081173253036239538051016723651159929213611781413577342687551746968461822474009982603939468372995835562867321377249512466520061589496225002401564491010907304997564977547162616924595802052423810982413031897372760819110330346864096028339053272367506882399260644719485480736956120655047885215027116973762349545465132504766528405555731896330273155348924023940108837159013904242599194463631143026783398356117888044803554167595739205657640435250193325127833267191428937245625465353891650532177758699741709614424446525569978799517065114883046915784484916054100059291187886996103389389580888751773257697540834823201319683158913862874641802841466125313792540097494848100389512321753123450015674806577671686623489772711945114310308616381414931929243143812150712435054271941402099039780025126141591943650599701544998915982546838213864727018819473136885950549155281362331583632762645758751233679298856379788037327900622944114197236209596105643853072572191764653323875663039556683498609367434550815471686802962987027419738953548821253460948333904835601794117466801422944705073001999225219916218395895814250899809595939658772834930745641874543095654136486517689985010249059138426943367191813267723936230121253724557972347326047369845949162790052169805249829108267552172696736616461564456852607508437143535427412004073269226455127612419700863451939356783297403267232160896207094461296435586379336599874159473496669907361193475668344459191388130927793468461601216470668930081043445855949201551588174232177767139350999608886606458829106382140620654427796362062226819160423449455784062341635757238933708782573968860942696371812195014603915020691339325757333411486453068509408936091617060454838219522109899514965319343916478088241061649097551027271464724016599686398938212410112381739236770476558338233252244057528973855324357634222398243366265570606069142531504672401692357998716329379558731888572873812486124075866200809359893451320340454786181726978707401063995399726849209139531998146195132571933025403374531082885266045947079764508772341276150324139172568273462811694146613010908071996535528606161782953974098750849266448092655004616445020809710083224604783824539450938563315096631674941470720283220563908498697372323935532498523995796891500487520308459799288970560542498187734717190884972851070408497290169956075645390993419717220769183520422513617259682075180589086258194388104610744724333498799035561280299059947813672850138255169879921406864147079407932880624842258336108585039592093833165075890465791794386130942367913384800780095657820968274606443312600393600970201365849555824481174408591859580511370759621250371298716395436319933619670080042345642790469154556004405059485526803737015048182402071706853073092958999687778208755129588659330690824763155926864658230042608719300710450113353889413650068041504674212923789175116047113205370953621094608539421282629253982545691374226122106045359367348309469546043541703601362171581236452427391901982088893842304007700528494439474846996117982405345940756266685516217515242183093959422269550357677778744437709692350741403900988101442707078431314369479457475367147920495207015835016325233637515168694736131435084575952414754814373441370922071704132908850254676313313658887172501589926076519601124984015340825465340633624332443034408568577209065276407521919584138338278258603744078492219956301224189466869838866915924416283796779247133633290673423883796255886279435211208294764132187592923312950803878317530327155110140342525233344992837148452441834515785021454485802634461743339491137180229975674922901074295490857442772947978050408005726582722637486672025536096573822751119824503762486951356696046864514749291251566829766310159734986890623598590575749750309226232469277283906522763529615585893266217955732597121749381965176762269502719350401477952302667688299415194056501960080126237556702597734142577449110132292611901849338853440363283045014585042643675526924695679398933074056007062480061611633677842736201556736877399879458862283492374020184183192876109265953328765026779172323913874693004327953081374198610330198399423696557957715459819902737244456843156273092292212367256218339081952237071375561004134897048852841265785004020787836976721459388934172684303446662904544912732572849905050247839663604447769685141897340826307426060953237278446292069276086997390042638315768380549589966690098859222083639652415708158109107981881801914482170824061061070891752208973904169005638403046061205189362904192617424975452376720015346544452178674266550502740040296460604735079425115085013992725282894462340508256971808317692977292773145437202832742387495593434381232895600613351591254101916241008145322408779940007817937134649939704586595355998955662677505455401093375036808409721246831236241792073414393421932397579132402680045486993656544096514562457807879472304873196167610769807836172920518027797391932303271461228842554313262935590439992676826445986115985569074752192179168269410732738057892686339065791927712601806004200688589164202732806903601162689397534111750689868770001373475647414300330047033668007128377468109291525269949616190350915932669059633724921640528569459529550177013612224506368532651805504133450789935237614197916099076121970566668032453400682007316323145824802996199109023540630449731264429633945711530212220630361081257683366165931547241320706037457158216761512113759359527914533053993174543778810565229077951986781671655395659314594196142617493394628877290442261252374335012413478507160385243828418919745591925310498443207976827893280426374986103120344407049851857462176097148614157267013131382959856165809430599264656044943805694456998372362092029138466712297182308047684682245283362517779901358455105618284612453712271013719944891391414801050152713447682807787916048116720676615721455550285082707367821794061842433872308384208344420156778947108266678092380887115469417172271349034369927628200360929032557991164712962511625892048132960820778548391959736723713404686853500233201644482383018577486175444609929282989373750995546433674588399408433949209772430476359955991829679606328895006133309080871489213162483761100187823878804815172792928758833555906659204727699985106461970683506060153695648050351843303757983119349619853548928849349611414731248602349475121527948934315112508186555435859482773609346638543500568383192064633623028743010969671975593635044938396724904462294867679151325039598951127687076692042023293600134414457751476094701003643126849799411498727790968494968767815071689850194885175208175937479405392636518186330477178315387048740966323918556908288957185347186025087750884163230235651507992307467451322092971308802979227994622673791575393698355782877571748905332717073308753166346652368608818622954885596341326212369503259471711179532048780796934028021168092796750766934416776404724949605243113679859250459188279058394432888126704892954878563227558104597424622564935159240561358270400687961698643131889773028631112345149712129626704017685995152926763290355555933410319824600687457477771626827207960519986780361845877979099866105652973537435667899350088014279040321145398991660449480684293792235264241819605798104195303781662683372269059189103660936612532927836507956952161043004885602992799787845410195289686400180212833448635363014584154915728982842469096142784837416579573969260549827236196952245958081485692000908458987727643469238378538268688003689918817361820326865163500760583567021839624989295416118454778444919389162702106183682354447608647172109738798609695467742314372697030401952665663378597265342096258199746370657371156836625438647856798155779902758195875922775238689478938559664452646412060492600297533121770630236923847772298616869823165437972107512826988282537031923209798779983607834126695343485879610112379550488475160197454135039539346424650986415855983088823921479272677328726210348062566967575235884419898833826941153966660675992523046151819175769098415230002237196377261024899015180971117522585369265157344474837721880558368362487977461624074307089952685264126346368855302938321896712635544979057956262796048730037398531244831074306492456111224119495190548445238236256649336799922449346282054774822021104214165251034389736046294782714661727858291393582240592038299136453981992221288807820149013398724678753173116265857052621875675974370226504567351491902221084602749875955551661906954107339263938238162569874325377957704739941018768310898380495274533731802500406410603428002513816252868739221536727514181345497739399491382318587174442727791191518516949548519450939599456033077423693584335885673265723761382516312235035826562532899387650542228833969896048990374660016372675683086908861431570182773124200789395128898466174486734910408351110518882128401298039742647682750742951717574805122475617533052129512334568048157027070098424680686031815074120624805650861075714298391277613113135626447741325032909913404273630740907258687792848845906426824778028414766917579187277633699274617479904528615235494169094771564768266295793241709736490138116125851407498300034939589138082040311641762008031646031017291932992071401417428486269319780880808309316692405511689646039172291228960191253602624542418846008312400648184448079494717826879450623887283609013846100219200379266425097402047958032073501155184461094970757609252653399134259059174454913837882678099970249911144097143206588564710279731480996681916213748174446879420132944274877191205594874472416977170922307463861390927963147958495171232766164948746330874918683451040787312854448127442722772425950704849388629917999202546345696090970584955415907771330482483152216126601935650120135959017952256563951886606746986531032444214768674729351720674714991496638184338286335195323183791595020945483130819869634400281999187525545407044472182230539250103206821180461797775479158466455268656284767688661849749501626098410689943570665601871256539235086629679968363377338743357364610753233519601330776544713982980096594309959141147773167670342665043496573699192499554935091702286047728236095149281020348811629728231198262647417546213565930292551067524067385029522809130413323094619377128971934993124473211299179263287428313763783257276767539772481022853320217858345934855654425335923019192380911642408888953406193480189077586236208056408029597525413820771012301412943569206918722067859773894302925726110569877842995741178577970081202640807118229907460774003934406584314778105144958345962937797822159804274162362409736240627603644312010204316085813991767044033523711603549154937405718243670004626350582176696465427705974635163902653040517967526591858626538003779878677654451852768668568845444020357478329793467659372560689117002231949101020773334900959381953368306465829162772505235249016024218231340558354185108971099635743513871352430654723185666011962921870019265011850197491151496019413029721799654361340887913698385411225865990600743482670694608693743528787591387678947515078139885013052767365028825414877267441127928970960696293586304820599308283974248972612466526307387511019730836476250947252883511124316609215991731751255776885588883992478581699544579904458476322080228511810506859516556220440107712787992234628756160657176884354718601789594685650930204308919051795125196679807024562997149054489778473017836609537896829984605618525998814732814252638483325663631666824560212142301933131633611707127015597464247969748332401805220090919234573069179500915787716521232618716476662700479928445380440581624079502768911727209610596341393028349019084714746412857310053676194015933908928988068976658242324254957278203906920140599435559253390740634801628810660411431680797572734114557166265252179821794274654829913669999767803470620085822357130795209689120860300166650452102567347461394789627890826803733418051887460588563724221026059972118810755255987536107216925702507442055312744988074123293667127267153434756910827070146292890045310079919359559068234049912001801844164028801330741214642650479415496339269625553184682582192647675259242914477839847723881580092329602201277800952879990199523181322724751955970118571682583372057550530012464520675981206107484759809649258693885518960710893893066598605537859090902577736519058752728068607653349302546339011051431004463830967757998543989718696266854486573919585107142438614227300094866482524927755578351642007568393320185616464636661772119991003858045242725976898299254205436339076254695064469693670080936515582911654620314899712165027826420605760561386268139714465090332501738681559402751150515539241542510906794130941800279030417187195496232023748666571636274830134129456461144354885763841314985892532818696489082112728215437877557152489565984558517349812277000277716051728917009786602639957363707169206715350889118823851596915859588464058195374264482727002738985258851186557656275829689818447970785584170808255921788571113496122014095709805318078655820967880524453004594376381964039266240037281985601269324173417569972654209228058504968004397463692572680438959637498281576219875424745272753939970347658038118240850456645914967174415408247037341845689899004137494834938685589302914168067057791051726801803618113884072013083340724888733504958303788447178128745035930910544467373628023584066590737717913126065742007157018671494098854801073480283929699895073960829392895852594260099634745065145219258106409080628999826868187596461363470858391800568841693291879623933923840342707619808337263655884173011396784011052434097372262015535229626483898317558470018199812877881382285315697879628497691162044758979130698468131085429051584420183771824488437680719887922556153582899328557846605103998201217972012549264758532051257969852667553569978729261919229858539928509854069084723328329237125539161090984477618121387074265510417440658896745108714591216995334417033921433851720093984119115331412949131209730794149909635442161866781689591776862658305189165500198781864993680107570030548821728571214703897126084217866669433989514907349294114774329636974473424824221709244926057909696617803676033850404336981687882828704472090997503503962299546183963154352721503663326011127344095109707098067585531207563978739501522718480365281341725831245610040870069250321717155521141030861610366540631786936783180563927418542560171713922100673259378849849828554291450368501435177835688983256231323751013909343531698689841573372132337892014090130546734299133905933527922030217721221104078474222644503583731241293568480585970800918782060551715906878721362082281353631641854055413628232452509676594623853045122420158157706822369808784831347742539790111657090429471602298129610133868479841890489165801844934993185284829298548178590186696749386027665985817908019913452479447124729593302331484249041029388704397432962902241138906340164470361944177209855207205564168686063642849264067015812528332765153025808917648875852051674822566000612784986524250112809280408069920913520591461512457873874054388475268927061957687880535529932676551821410111095752117274697674540167927157271856282616174971833399878577485010458877343404143945561736341116305136125529205878453535130941844197433492679725591082191588109973377635804043322994649628313885109476598905956177730454904655069826917589076533655376371950031904090439889746542224502203490991310821167883857133275762531493475014133377685622844642679210920127239776449439535668715375872787698998758238265778533440064003614572134999460407274689361022914129422131614071640316114226686451508190358300341238954634390172375209243284015200402928045656341035680293256035061636808904486172638936675417755830919505772874049422636582762201834809106267366982376923803858860295476941267588876115660968064702186947730702031679290597148494705227829309543728086718477322209066775541362377254948821495208015938803590163325166395152252231728855031176372108960497524581424345910247124943884666157093762012795593656028668493097962461529362382544130863856852761199800371779676813635282759612617709628995715923931065521350614362374854914315921581919467411129903530324108536490643927083169558761055045029334076495948834268640097919326898552594779618086482303183031074114104924207977889649000332325325257997281644271124563816896452462368688401557815298337011741993512914397823949489064121777681618855944462195155076127870693947415509859738815380435097298601051631732757824764104145444168400704766458657991058361685908914909277811443687428674559596111676543583116719609264545016783867370040663951074427624734698604322511436128286122120229112466503467562804226627164015448398226920945601375756657770737571366339743469720914884505466861668149190574012674924070045127443486361231821596385415449606307386233218731161999613210956561867884243254229400581066496023550880464844506979981123917970559366667453799967309755117607850690826037647325260516643332307445335406884384121823512339750068424574534749060216262913690587054209945777099833838742460219982934591464248301540142486419389128254146677278416769329496031438748859741737054974909527929318365678464263532276917587379552846907963569461297996094337316931184606652344789559909427683749777540737585707855086138807216873105596317989025097420971779500334966947936327304896775846121368884242145355479928467353325958269051758790504727382732205758451627552059128977313146140423599496546741542504660508296013967174694475745203110170349232212137063671216925816449441387612152968058467131509766294610975121035078824915369497454589684630969998081861843708505598832329509274267092213958841782130881556518537587075606586272107801873642444682724679107828668142585192577117224874441511906786247715366758792720324645199091858378554963981850747927210255153701162203287622413143793308585336326119645220828591320817816464710809519979229500234573840460521966396339898906643001818625983399162204127843764189330526682252561532535580530895216153469220401608733175004646514836125620790662313430960104284459512952117935795003934392278140926679984519438546554823729647284680687012330621503565183416083354425226572094532491519848909756487171589182297091380285275016358129067173147675772282278182776621895347967645142843121397552621801943425816971047622644515618109165009693085656776912575126934390777511760423354074101926307496680435314033835948860370486381436168212703692128307254448001930965436555744892329983025291390845366268413392884302944637624965953425301788387685053064788192050004607887614434032087420895392362747920011424818693547404734881553626030541329460890956741938677202906645378617654601770992595679098726915436193369441216469855931836108669089939293365658337707157214370791350165339314248346608469575553748615793584589718137586962164607167750900630420879046618965569236227769416520391894376138737119725988165377443688471155144215192728694999433267820357415010895373565358590780728460218111926751687517518850202876809348760975377946410617685660808466147087564270482462913138344166483747921798193145958180904887600146924355980654434211055043653733045478233627076954992571629929959791207400331130303606548344177433302417769251665241429857568642633391146658498188392690628402957530267549982267867605584169603358168610291428242628707896057755090029356598961155420566556868873372204162942239980856746748904975911246969721520289190680049346824380153431740052631894015726137520496649903193758367734221722614875326145433771186496163334466211222200708018118892501299791467315219549698029748087150108487399993709400131875928347737295485931529392844286993314977013959496818071002991442162086917474439784327929354496914463682978450088840140873296570336670375456719820449042608660955906138818625246292543477343853191247684312741618590975451272880949265216817301484412636504394831739546971926041664257116443638058414300048271728632158575725519214867085803080883861689050846586452884447827133373900987781782137522486751406532900022305399908340133487753853319074171779666480995594604469470656601163782644748484612356023077779319924149050852391294369205836246853977272258492475809242911722894269938966967421271158017399225563350764376052302905870314828787662204086230638968505320572167860083496543741856817274668348161476437679426747290135524062285158400057848547590313827467873395391382372635283266125320129646947119461278412883008776417376416327062042657213968763614983729280776069435065476874741078287787687558289856210769954736961572301843266254587102650794440727199924115797626103697158603448075117829362319566718026945502506449216742520429198733533227980165161266100461591428615942841800041710673574037805268102239530900149707027578350580915598499265712770193074521340380157044204900248192479692157026671636578811647898058496218152620714232521554787370849269794751880365217492236988580621485770330341781504581891574251605434565003587952970608396551659253079232531956238930463815530808653266037220039188523873185168172256470728397023799318110347680878272644494522398984024021033909908456047668398393101208156085481013306746924674308791694531008333411613183275486145421533427363973591606732757311873070752532501851926521245271504055102158924652129141836758322630066835749814626821023537930691511654825145285738183114369633143738597344176839676068213735374317202113025360372123361712197352863702908651511476321589017883374454349292066061113778627840578517847505831185796527523024068624725111082539537019751400356781809334386366662359200965055069485529310906891259665340477296225562530813406357145265429702244582647828479705092099138126176899612400358680144508044190553085284972730879233879886375556482374443345275872089493003070223639862970050619184672491615682567434373159970184322752921711856735127161506256724975542100639559655824512106732162063971767137003874600377589941593228221028910177899612169029614301618867755911445851893679992908414813455852670173427033416546510994674451877962727286668333106898947256126820453146671596867383281836775418620687488331272088615132683742694661665475591212241496018829388568152228044078390062745423649240873929377286671533224939674101714650500595550305653466890844137683951851798779545756981052346720540954168329531504247141109196483425970194616449093467791128775524144616982766678466455712901018163171899881666726924314778899659135638266454084474665121267601978687345696525412145560971654745237680128928448950523700852971275209763201833746512921442100014355270207563708193155618749743108525278473870756686292679202059950028808583941769950087735604415774847640299192551925782928150748525698093200999056330112818537004532125701087594736143099447679999405980882635754402863164255875829931072165807333603914068195658195782877679783908651857399740236073873041167003275099624242827385389187787700904460728571760458552772060715657586498326475243536282148288813951305802888836250071763787678329015655971026283226912779892022160970243932404312096013339829965088070498311897269420329366698649285407120847208632615559447039092362504022144622553474256313126069799904437637045301278293020697268885889442265095660345785463253667710537517257320033823207861275784427003515125606716861545334324774781109532380597052659844480009668659844666053065785950904033907417564683870086880287425083998258977934699528257025506323789453520406095603779367625712384909040737138602102902313703070241857727920121059469881204405965407731275825222642930380737234535326206888856618448710700607791083924689719958223902158683415919737228980851692365970376203839587017404452541279811249599715730955876277907060965313166971827091218472088933594897541440209957823019576407707816752226335090779391686041288564177040547797853157662169449450112892263794818968924673252627315743915241069130970022975767618847533689630445099328505865175813611815214399778885731926009065876415700334147408960056024884680109095299738409863519406007362283269127092653862856728060168177631506676340433834122321244438253968626832795327545812857244305423471351714723918092533577767197144474625790645842006063102410519172401001208778434652580416337182960634899544670261888581166631463078834768558588354812288943508022789556720348648719514477994057166302060316311940603972457068066556067873804661671039106205896574340150263951817384315660640041201114024972144408501858405955786853940952109264125768978751987828670333239924120166425513036783688456922203643640917287956718485703896061993842889388375020892821046889280480905259322486729428676433955453760135980417165852798885114917564721957429621242021085631006503471333813619223891457767540727283732744204861074576197674154959115085504551815357409155196462037309259069103988113207805113777426865490557836054235569115181451341831794089237484715383583593182924245559056775638550712292862844091433931579569663333814981171331594521656903259898655141221867890192188604124794782652555307349162272754745825194625631263958072320813741000265067479385391037657510464734908392434465254332101222806468901806828695806774687003822544591272004483495275830201671859105779758928595185776455675966342095110891572116129983499470394681350412602850383915487790120317434693224228443681746346624144376875708592019589378283608556399149954561109303005303395359325542072922497731836382666352854124296571662906448314101735549036114802162904330147729613982722867314060917905928719552296706502997696728367484199964631373956746814475763237485147274865976436957133692556997978345238883596617056999501567878747598721149782606014332848075401510358097367265696085206230398920063417753393567978023086178531058647252996991641131792935141350765088756136987020956269930892059385067710134441471637515713163049264845944712438226389206025780421568707610474642120970237782028200379034281690833875458740153265781558092444876002314511602705174044757456093261311555779477540011466889074187474264018098230087792147780438597634651681770540158729924980179460539358030976405194521120595799145776879997170252971310229845023368853452133587362434703776911401011089880298191193684483916531460019906088343333790293761007272868427721148714780881793716365023301616029316385285824329643005924113693616179048408514212208990670900538994723654846875990090523099279104747346213541149321333788206832432502475312969761831755849653912590115437618381676543742975126195824563691112776972695822902646698810727124927128105063371088066769532531223719783273332454913726555525926855972243220954366390145886948010549652476198461977153912459924790114930972309557409783612551548503518910503216653198193389189094510191821676113254805928353753542984486021360702485680164383235427419538451255386469055620106265911497425042674024118211504196674456147098433767748161900407130616483692829707437729989882033684622803169913283315083507965541121622680883498470535765465162964690695673088345042365796960467084289694860436476794549049816721605032977237402209470576200282530488894367574914875300421283724075695002255649688075053037144396213275447716372831689783874072179545892539352394631690323362219573159889499352808662036182922297352733043389433207641086771579010753559794313646462607454963695825888688165722498127217000307847709140871272212448874558875124183610135258964381273236818489056239705499380124616327119973579378652105754713097538492472560964605495975635549015101119946084142211702639268579204722418446442660364252994096109133295208212739721235742943912167964856087249168309730467486637435636060819949894600943227879309660259162606686261714636407614879028531725925181145620335332456493824062624339295302514159984191710975906721536888768800145925232860853619369730628692175806107977065309159290170660789802821652911514761714718091181009842731081124239755443330608394092207851109060476829450261950526331980633693565030621769174371555634518045129991422560929028154622385084356746947953128455658325663797032769205638707207978750831094419601462587948366495178349980939133387621790240795652156416448847635587962683961577855186325207886111289113664925666895666628754704829199592923353677280829073434514178934822823906293159063737517903918805519787138617218915727282075775511086646942038705981467825278952717212688380197179737639532775104419714379482561576269575851889630934044119923071071055347461636013375777040135858647677249841624273513097771556397059965407791495863123508686955693974015964732234502702462737987483609861710603252257873598849522561700285464171766195396669988514094973478587510635416508926921346406808822193690514883034668452494887597562822258556824967098881261645028942132618256162285152636836932200372107809729356839486469967943513536482267018147365072541596432751716650916872573734438242089503658224059920216257275943116034495864846686059022040462644532929077701977267330317015881314089017282014765986712524078249091758861194382019524620839249820842297204735419552360922406723744257841051784462560714337560470687268144655889333056308108664084378045661129246958354132853135463304031379401275012338264388024156678338027684536681976992175380726189933611319434373654812797922050063124187212575744393039569865660524609786365624070020888400151358174724888040179093956174568153385484636715648767066733994395407579735327593410992216061293157920201169747373515860420058201178534222749087688072588029443558877800627656808731253696561123556010228266256160542485375911853271915225254319483710025570568031771793917255800893062884073301226134396578952970180403879490409191124899463259713573295922382071975103353257496316317248630006218495871358120609702290823337757795665094874443873029917797822777534212430601978161871462798923632652142036360015470772161869596759406854249797376583468586418200245488850915856703568103803578277784282311543166054384065498650053540184045662072569610419905573573309931565847048079094310576004462331648870315584995373766018526747781888868388468083166599210040301757078853149929875141536298504082556476164646359875619327964450518871674026127138566765041453435521671981590861797014101254004169558849612777990275890997731183906049916166719868984806770197266828496547736824125593432449204487113809824524579981581003127905064123823721576354670962633944996888644463686068216050090582385811303496943577213355265432112220505884279975833312845840184811857753842011032889734679953654625473817132148305277265570603770543985697592687964581124901179511970510699041146176243567183744928331005335166055186216473283900974821839565369919177616613852868316193280762691728540374726621340844621328098605098751488201671513502224547368320041349970163298837600041525487302143205347948175675903466778018646714314298904026811730377137986880068885581192638434200184859006613261802352634510260003937973668817217317117008841257756590340604054238747276658127455180407519331660008910119483614545639682134755156219546532988669856362814237584400034391618251792784492450291970892624377794904378879623477694894739701328550681271137174475020725307610892355869223456891876287757971035224865530126248474008728484285889033722031540462049150588021347179112206164815988106751278484180282017426478957959435917377175505836732436181849433441074409240343153718892241729414957841606219017750477410076492831858189672489550998673424189833542695220716116566444235651449196818413648389530965126312333400594928232395999818994249238389114249337841666966334046900906285735670090489858234554839953355276454140371065619590894940961975388406730439734132151654459904959227123401480799611620105830537103915272491888988485340319861523068630405675590332552787172351518021092294895993727154508090628820713035839331983403541463163911275076615993208034045026102873994906824549004060807021601239247812051451348285645476175355020703934822838142733485225372585055297006584773475662394873437246169570654885125255793640135297590228644173925365447311032712105756927449925734289779517432334525369201285930665182108944501080902535916010516255691921847891799107906144091415035829653095957276482127755151721566297718778553289130696898880348637103760551082749116488870658126649326513352231224042509533690476319540864061318283079748771961154394867867041335896810438297563265233651402454733456029770536171038479459306003037993064709112770157588184486617731728225884698947973358731558191262144023344848917344897902247307421885320376561304604457169894181574288643148264982984063723146581534941245274266582420873226732011829631421315158233053458265720121825858535461140454521545032385048142786661275340678512853419176896066999533201206591105154241906853006834045955433246351087632511013465412478105846027656485136634622058432376815416623772669645695261795397735731177300981586013794355579955105687766411645686893264241607139299839290098091528738009106501949258034245087795993725672971962399800570462908852576826148928450671842565493884334895050535438808319659559766248446111908816988728581239515722421728268197345668640890856023239686741859718402905110914798226815972611216176928707323011585060266891441461420362386444878540691630078780015982515956956321577970487006700438684184009442513962369979861885181036558425148345040460900572428985855214412917633501808210199035801564975404291345136693199086938880523518145764586251992456744903908129084923616723748120994255820354741251181255050912433700217817189861763474155558955329974234521041751680300377798579469941562150228951365153840429427627127811240222715269291714590705959485567513738810988005444365863358749301045213547770420286818820053898189866151072117304076879093676175193219099374346798985164507066724643780123812344503804045129949258399810039804709259491973524326879268649254139627221239227725528580976921128080941573849984976921758283181668801620332151941929698914713640703437360092911646623161841857668782150019600749687974143030452530007762213218958529635298439405506991635209073408694608811548856899973586538405025801715882825546388960821877908903055478113671880858938457192022212202022620735904389606649989759984478987504722036171071605065035991586013692540285486312813309586257599686285293452595832031102260647991332958773779538260126638524397008816671066854273546724702728101886848363885730487571335187598204486050765909250664413579678472079619463708956691064514546885908027398749934562107121171151871786223675967232999282880236368647041808222642822209650245108871185022202877766703231074082363746336608399521199304158397795902230046605163346498972759771787356081718829658671741852079965958462409415022955635900106137219630059407270026714305468539528508472087466488530013765641070726794795783794683930677313066368525799421092910978065342854494305787875083790720581357230255988615149170157007814384148437288932065000865416535858969657187368153936226630529350392437045705690914586341928024461712976427602695268642419988023206009791930775539680543085958349575744638979103125585735811260021049018956066854979896245468625808461478304015195086511216703999112944922269937770468072794843056787137927914923040356015366676630453858232335302505848893612924387954739280961535702260508892443057482611200886607161583467904816653730686044505906869192499725264781227314164180365860050859555214223737222379653036996892653226393336235278640539105003885192800657167658199753508378882412607577672987283538478844919583194760083758802607460254492620889414147507237282388447874565111310648976431713712387001676236834438636694885536851386892773902562124108612230365716674013795522821713381551675446123002314307760054251957288380167495044106607323859387935269620621322992795742866520341901069342048341801511610194618836618681419978321748423261953827466172929040799636254294262010758763931705993930253506154121177301254353925873753825996527901615786444004379192228289558248144833827823585863540499696750447536917330128471146328504753791339343586337110515807094594278560877577928938052681322999161367008366361261526596914708239459050520661994426776051685543189399606726003326501675794834461773885410028891913758938079028934459940654471959119573732550176452086144263950150785189782462836474105896436883430591412654559118299492075449102420491932460974890609113436020616250699654729009405671388785426032753624667720198309572122405341387547643409092045330521885208910641725654542889762796642483782412261149171645161914491962205813193647955435555355674894201334300786742698210195162727177160206297396765959357908884871141736283653880127945836163515462635450099006132450732981636698772215423744884328669469412621032163481345863519494842435865328311073358889880763532744880787808438772931997321342460740853069701528742425763932212155156310309137414877764468405332946296021360056662745915864529998201853545315506132057535497497771261113910378992980688131510382498844971987916961413364402188960145883267256306342722111824968539412260622939212348160539144238869013116950394510212210095230255025037975520569679797206104575476055963512594778242019801054332223375712428522988329524237450037118253819568967478500381915754205304423067765422033190551796938824563120455285092206828425030508955032699663119020861740552834434719808608642727096807117366353067927561703922476233347902544510445164439067630682363620870279054626279718400526569440205267229343688026480807455457836540407862916788707840759004541827817694556497454400018253335983948763363448890077449448421744096461551349026941390381273467949780214623532603488866242257193048385763652967614289401410234019503121090549586801916484448258293284530419784035507578629310801201948223943680237620435853148282333886339526568273428653757256805874503224226590677093328711236352481420038566584401857587876707165085130926107754518922266215258300926659805674358501765168465505450230101495782264152748824628587889758815515698836279302881157818405248970780983664999331474707990481747059749320743937241235352889472012639002431879154824144167009613041713256879039110825578588142462392881051397373671789476824343193910253707808326414424488845257254566029651556212900087137237182785322697343152051697159908568363885210819437115035517248387830664048042426717954455280930537740793067233813291898776396225863803625496892074069174163594023506432904427991184797131259796883304748022375217316162888033075233954789648212580517825898785331507440424942926995683808569895615160843785711414272223035366635851650662988368848062935258131152080389730902994676562940118222608170316155758268251519727635427967630702105794267578859033746852808139137268183313292615688893036240323077195033658780923860513945181558306294787932476195599345199967706104986227324800158955382979380704193337106871695211483778458466098860149684588678354149248278683040250975604305214938601692283941741820797361992513192665202721903608666543363855616479878370419920066357436864671459946751607771034510854365493149127146045378720392238682112619649500087565679678589393410936348414954495090741658191745321418306495603719834749367954327895089091904092022701697724961404953510505130844855632511213830306737278615038200261360078344628958156101769785194319793260716554738579245489333178103032390019647238637492535778988043655994246449716119045804793598484403273223980694832488240645233184884118128038455066335893313566532142939507459904142119983138209027171551180931695022348306136167040296821495690533677370328975473990347947327107289636187845109969994731996301852041694260495435165875548350496256688609826528182407612364218470977016716598505303803500279192814412768869346584258137222632496361637635487593355297122959384930991595904493990305487280177496606692932203412870824415370078241775841735661612524054700597951489759577020353192222363305839195044548329572773233298379440544198127725633072408475350652505279482938667954769020531263170865641037016165541474037062728115207721925211321706963723472125369593672141096373171313871972811869076024423575712375102888265313359464198123548906702668854934750671829134556037254293854267048338521957988633229078068849154227835550050115017405245578288076024649106236083787169585494861208879864740554390833153188808318417672600742714545985758443012479014335222168937956313226445827903561541230545891013241788307974638731928207564314427147117158812435868207901523157843277671135985166899928481048903827361762715333223580161100633069355887806125071885640618720798935249365110580904771094780189520438227633885701830930638451726360664264246509691897348593700121300594340754297261692784467995924376594546743572498543123871310401276702278460214661736447130522458743154195700990230345615851368603110499089133804279585228614171394050362394341501494514305955837735163340507716540929897776571904817169163027021176782089477210996687603115061300285548554034744808537878594342270935926698682843767461958607466409598158773755522420760952747271131192637380497450233229740927961745618464247102106731674715858691675259329976407980129465005294368566567242450036850574817916498273974785756587937915319416447114843520671415497472276106292441628365675831958484613355920896345413228974289128424112457453666782013398876615406038560603885151363584588696924705507654051875535812983986692570257887915709091517849357571621769959672781160266669454959859147297595757400796591632525604163932618218314432477107864169524028955857637099119400940799152665318609544255212282815515885394626752941582156955387703127105158409293822294944004569820539605296325824794402234742324970196461689494180413863534043512536202225307770592322901605710104066339593089342874358379009865630841637541532001228420376380404706494903853390367872157556689531472183053950280450313243972568935054049709678883227611572186902448405697499405211289419020805716190932974845235301079713712871725309677372136187320981460256171001535571572670396119545654463588147597276163794250787590937109619038398313110063118440863500557594134930275214133157609551949119540000063311995431248112104793236412227356277093586735480652209624816432463640845541446601291850625644549708858668254666113136202221026297312675663413313915509266084306343075727120688411221122082847275245636196956638004124096214326883165423565855241092188250082059080919866061325529175973799557896633731221406696515875029005136967847739463110345554804627431608899374658867766162201855275877575249022364525529109034502074156929187551741134095534854519377259925354759300055370209519157989370534117022940255198948273270658344229378293586233165122999380656662265248674424419226278194844249005335310488585491611835467357699363969351623138512915645499898944135067160044687675404342391705149240400278406760728997229362503986299909400278264154446931619411232570360890411512328304571012845205660918838716032992834095285008794770242552283299367556118554334261163508098697110091607488071895189850585043110385567038619208439466200826033785766673612366262894283254783969940376631960647903312242563781677877445833870551016796924577210066884488936359839314562671738541994848307316045737543416908886532897978906246587360775543332163813946054907079398966120072949014184490244259403805582281672687707810039088688737947919682051151079118953386036269108590212676596426766465691955866705547787816076810023600978467154761818197801793399241748847341926602778710135303674065354286060028362341819342822911491761054013180284650682659320932827890858760931962315832690827684266373186267488210410514131146516825949965087049898824278543513802474058991747101785069207008614185163533027984642892641694362481983292798013715799269608922488116424991496260085430057944294519464583077988616185929418289068854765961591684789337858247906416788283185668780331358203981540300550816349700001975793525550652065333370260976012427624485993166009645828478978656676842423199871201097864856943947249204759458575548036938696964682488085906763122064834561536602573637739887165034913447997141541956980729341772922306877801779346690860510984958343306099692548827141677922312737376043657518769948797398689924333348323307407400490393352748457594527100559090228617826086746266471289263643748527171658913206773908939478291555207542941678782404561374633121604337311413971316284814051602981251483554759074013108802604488460092769550108493641746092030942807728092585048933749768090640179595253003514753633296222452865497482216899264297275254877153227697695499077145404804387233096489997841898757622769042795972584359849167372324293064845053642297687561284187275180250947371611493676356963506843086722037432708723165784726405866709240150588080236914210535333396401309681581943081725961984475309337044150161396687809381120994784123978842708736565699246741350450574156976066101373822009991381816032806550914224919495232141209456960571038106510089932809591962545387452936129455107329990595199866667755568971018665960786875606117895486884727848232937254339863989283837510969612907384740942775037080783064890277459313540371321717108882646674957309677561159573514261327159353833173140113142774080719968747173816514192407952453540106956958893615233212719845550725504477962233015265798785292385272442352854681865379008415251302447665161567318776839834733091682217144343669380665474723897600485077462208739791337729218445336560036174243070161712599419785999173423908801857450510502029871984525172851878594995832055575801539533019305358972286055728325721887984581110696612119840357412902723031028576364208525893868241217470105369373469671846054174529976571984132935111098844629706665070912995189857372071134622909835110549257914005154705029261292266783250782857527531927114534431208699422652341470636840099351136118132236966513909303094817543796948374426362947125870129479577842608787331283327199328326360185269082102054102348110826428293638992751288350898847361944483843702136656768578237169913795926761719008560056024468364301486876933831859119681602529703956519525099297840412276102534873055723851644281106249433956025010674567305295251213003602688772954234513737236987201174752299790380784547721877784595161877130673914256979060996423506772013313093042494212546573790482767823789145429827245299576599917127778441649849983954498176528888393633151519705018417554741352146416717369979257941908968507954796718726922723996228395022197933875710082062882231354795786134548832843174208593219772502159786145302974685046991474803445901607862266515054272423532616286890249026462174915187222548546819245227316818106257119021219072352280927785978608231725041073774736954619467399485825345358478399326922750596346683349430637596066356123017085116903239224584110589594918979050295836419007834813893102674286167441318757912841020795207193314935532681886099262398375465104059503116561504660211015478317867934042848195522100492460925737769595591442003117388814333693634575807661545715367001252248131696319362141034045234803336232937662627149397547481952091775080273182255777539406196042316750486027039166680161216584418043492660791673304595792131720515680859899639517973317085814658910972972668420055695612990118197314520761519963327008511091325347721838048107122155469940261466510047134473148077843798128396556908091293558920068843144877025942052049159411661531759972614010598898261698187533621401893611642838388758518310849743048573035092842819847406295657603056737949958385056176356643971262296402630567882251313870841788816144074149868430074326260061053100149798675724655067212162216765324606488556828123054898284805601877798239136940357820259646590249349840441399509759639588024935027100184026391348168943116024981800475674386416206211622077290516282676280531215364302283161417988756735728932450511736503336830931051083981631278022832618557422049392146816802040194727470103499182382030507068127309761770174355922689982471902199849185109042066448271241052822672838832993997859296285852994905645196240290369585502617444936202426770063045107394629610839591954338706462864310833437656893621874410911872800171839111758873778192185932990293421511395080241589541349370323146944262468889023006505388297595348809302832039447016492139488599655824367033048600523148238325984764611753361340821203181705482349832134989240786123409025248186989358029659358048848731978315878066885908875077423649530011184492072305063245279979195823578816165136724525303837584138122228627606037921519678156210997629976907437883483731067709649025812444103157644935465213556025599321502743881444456123933330165747486050633673055733814863053978264153468082329288934781741196090680872553221327028247176468202381406544043112271518352705343383514690117835570815885772714615485685629566799329942251347366721287851301245769658377699134197080242999636295356738716231602646437650102212279499644280384610953267781608186201031642212939828982515146801978593462288753833618395717172069174919746900771148646635958769129958995177979278902568845030946665272848065614346882116299817214002889381521400402885919356068929369330569309304067779285733247425819790407177838548432809503403655496265434222009289077448724753008430987205324661805657501339491688098777292412866697223842887016386919260152373704755582405213924299857579274443985104021840797855539352560113278250147305072395381050208458931953675630087755960525367783645370589632504881653400671941853478581630455028529008458308666023988711476310718799033939024711088457643857636630911652102416385318767148686401454807304808242441668768248933629087787713428702029237007619578654379301023288404569259178211097877372193228554342951725117429150172173732191158199127437423544622482171484477253691706989665622853478620059903657906893661908128942134740878338904866501260136013823048463606490935891932565804549558758767494063892920841590286582463618141228339530779156115823277107956504383889843798717592936942512492033651152422330301297012101538764685276856430014041598769499619171177455179764642007902464726992129327140363710071786925721805557252079913304404886294695591267901828501617381354728396464980191478736039847201349475898040709712897825814746775811589542389836657691778947864564472662055362033911248296358060512557975590907407662144642945303016826585483803119797178557174271704353182599943240800369326599617129456101486892659293494788347145774667998776950761305012028132842585653529148622197034056293325985052373302555292554346369261123420263127402919202422796502796359888019223260426142927103228797464221490901776753867724569997375547798223254335084371868083010155671376700863050746453957241321338291128131478619215191647754799944656700706747842940809276129486065516457640446611883962044401926614128227082491183233996859004905311225706498348872719833689478141436411136152245511227910624643056017493334129444670019875469413079692131387912120004771010317057870706850656250697381516438676874025570878198977851538892268523321480276521967585055896904810976202591911875325922081024265666082695266379287636646096819437387155603699017793309126068749306916084634120174052102471342173694508197101167765759297706870594631471759596039822238310924669132233138229537697311490220998465090308488308336340479017107232824151455908438030289223380007018015925093315103188522225275205885225982922442304301462053706815683236237195778961413125813623854969760233420389938334135277518592163529688181904637991611068493449625646926276912790100485261607913855838515129760953728303108716497206281456237918805951159030173843882016451602005924096289521514058665363046848126667430744986241747342696059233970053196660637934770550279508865369972706937890306372698100485341859488168559790389230158159934712115374807286605162140396820279559240422927963505035767338604239881902545080481293113944242898258304636182917815612967158163955108678959321631691709850608065175581763268483110521975382423891636944199546446492250465062340952866785678641845449999956686193907342308370822414692062005350539990739149694475014749922365958406885765646386411195707975606100966412894992420905255663957330248364973395033437094132384024785090185548364313073167744712887024587201575938698529784894946906465913943259219617521788634422131015199350094156774616469625095049566193458178086489227835031820674934567745557580297264131625927937925757788383725644162027922397552529001270707694983783263256763335274875412925435349678061416684208216022070013411650871051445347299132725289774769740620011582856390229690084172043995378582937045166167834348937899153775874556489053209823296385491034895658618901448359949641984471305131412550560280223583896070996327371527090334288738545106207171957695054996598138336529429347501352092864931609480650880241391554594367220431465773260169279227636064502153809973957233978295591550992415079674272490014473008412652530850517214212766559973314547109588013732938965809245731450782037687458613081017241959663644223998585981102478695957918548230956859699157293618952415035554929651961729570411685887760149266532419260966787908448586767880069079708217841041272001869227006785061635132561764919317324053465984304563259959697901185364953304123709764599873838683077968938921356570104611202753828802611961833363592915127967986983966775906650150000345388081988352267274079839842118209274431164989338722885113762025004506739597083214065290305322242606570618895089762631588121120211109275987459617752968989113184429431410207898431236073563089936498827506644529695199021900368999757401357869758630145883344591657369137815402929224658105267344686479976422604001107298718977563842096064635659767017956886331288356558101615116668689862606600354652717673866354768344823179152379344106157830005538562019720489733746456756790336279983006266334122206303356865907904660281814417185245204131252240947042598356133986915956662135866753067728700266823291153812141456536544833916091752143622317273634080391407287165456424537160277859950922919225983253904674668879994350091617392182752010772384992904425049557513972191213119480994218639640258577689287673928154919656174099026063958793266606303793605297019195778878209760221736360987746012787942852248832562313695069959532581944269024093243516421863088211859212883051761139015689927687604208043591423981123386326605192089386968914397585949726766124975363737907060062604836313657966210360752374055770218237545273569352680190476873337377837510296211070847201081259302812187321631590011553341690676646717311661774135355367872697141332898737736579462748545787620984160347166410163549085383133514965230665455834477026256627727397604855305707012860726818987379215259951137278800977366880618422548663048172291689538129451813899855806820644774990358407314250887195195406069548470700707166555249074611915275395435314674273584585573110063584137111598764233736517161657550637922551827206041323879318743134032245651792020833126202883020781589518793923695312256380616287925196062218249155142432806778622151275705466125148992595162354399645272019431719843751896350293999923814714954985337824456490568130405924637541639632638867880849542205890238277784732272388074694360351022286810287684321960462870740672182011553675571905565208710067757257292458410910339290612996182619531272428199931284152033264693510401264392879605709416579803874750510890634239932223605740894281907677287835034350351752644724769324738511861136917600703031064792570687745539238261514739538312162563188480379072118757554193877612560279062811252190475989982818813970807377205132890157078524318633565927715873552961902134097011405721782855139094113215375785021557639918782094134164738408087435329004487734758820496242243766194363843486291945190997014093934178516806938992966222258507150048169003291060911110958261443440423464302018585144586189159106430568075123373962577360568195875458643108027866854929748610069383003557424438722334496976593201178570784703264710432126931258873758917986716587092502403344403667060649240112158362470750976042896422532516760497022127664132270709842934659749164275300342417645093377661429282259574128962101438477301037545163802920653064902003761524086506323527618620950961748545923170560424121094028081492795611665537886844943384891179241244874314133110000780892068098901061323802584128977244048369260096055019323582205172566152971164786301079220280779277826813316446853239673457590709994195830274242680802063482338361749003351798955256939274341044335488960702464648183127951067172237456619386451066959214819749830993408750749492867701002604049579339833100597022256715965797411586668273229910667283031875869176217369282185889584764329603414218855860723132393847294217110110148826248976620744749668325042514914358385299731920098227181333912069469750094594044800616912981291592080693611469009777261035125037689803766265180248914071545495317192597465099965209784789549401355433077435639566993404816031213813373200099646055227846517331897473124426290546997695857525741081272622203063421713809951730134609462227020404258631748002182492974441105859636968069915022401492985683624487463641325328276951321703992126608793952701389927719413098844366090778654147886237817242037440131394829349112141209025935750552374510647541535103258686799897227985689495271439776584471912124996444784380437876409853267693550859736984858592768939245706799586633980548563049529140984745714942734402252468391527011229821849321081367924832990602285390112261605527369804724515209155779858760348510982509596600229396927295098311252616495247351417444697384790627922741241839037132458798364729235695633133816534769412406850724341595420367846586495152372160195666226398454214073295031953742085833953885804458542747921434295029305122576607276236193172310321766647540200946743460917564679667152114441750499900699323093775888066402272235813032003046241496707358757002346169931918533059762885090831776766464475955382105546050776990157497536287744773700018880434226145944541028360174271214454164662296941869423403285523257527095868298911766043334606398596390883283375349973900721644584689799154306695397885432603319470378009754438960981151572930527714015603130609180394507913657043671790831970421588228844310752690703294500647614227217544532514344136396093796278262371100792261275385104652881550245141997316237097394300994029821278332423896392084599499592589346578120033345630490907912058349793123073648799007693222893079388872873361447084797754210737844210635661121611734992602897731434972481736127337483701238630891341642398067002926431023294678022800848996760664920457020956394811635099942881986811505128489690762755845874514370275658708921610109645605496020864377442672869834027035873972339474998667879104456545824404738939580024313670343909798283919837236759424413648075996691795409710795961082404087079924455601443563899924803669108696013765485934014351640845930068014064159430047644759311057884723684799587822420599703731739267396274050623078579613699579659006785350199421932729384142851067966949513357354482406115290662861898831577004093968367458733047583015156860270627390260058287707683970277966556172925864653046122839439579951418661824203301327628434825010883284972581844919908869839707895417235931883813758955980280508758373562227304287713178459040747980339931335098404238148222002540925958462227841022984782135148985015301849800744059671949293104237417742845256394260751964572834122997065077083743853734314587132870428970676707806151934031165526233823492427722477279404964964949627075739253061267696692811382153015227321046543203740779345019112449229889550478599236913337716217982357482807660540760695685165871877590812565018612700905761019552522279189650152078430452087537435909848114691388791726474399103956156654072877745393762358110595204293364914286163734698315081212520768408649099942133612763508787956436005637524229860289395793915186936941714474314068380371273283821568909019244762654347182657890326728209593415042086456960704207645825609437218173325370423216689630582874217894764745976858094944542387278988414990434492605588348470902473083218789286905389245683506551637433752774891202802737629121068271296585038241848391628423746406208828174206952460855976601996097431066037456322309493894902927814705476360316318069294325879719201440835441169817470687594469426415379291456920690135936697405922539924815229626142545556982163611103832833258827200684353693313038687778456040178542826576253263375215651609825145794401010237857253234254029487116780206021951688732679110947734571671121251422978391133503340613789675613852035855081936377527989173626884759521629112517040108175055451091506362113005717597093272457343042571083393319435582769318257114596681566579744943108407171549009965245574910522900327279563578491607989755253034161825294033751994923758837445898903025198652465119270866933964741273011761716996379775776928887988206747020153935814965986822708471327449197353423537897494977872779970409292509666204274841954864363660291600616468090572741482418655815741416310593262973702599967432505513913675587457820058561450842458494191885723241665102480348475376984124926910453194934967919460919137210351759031604115215197126129287425891087281324168825324249994596523625416603065931948730742069854275182272470679129151821883026720019713732944603448845164116036949182953999232687091324994816105929967376268727584813163260557974286034952206201261112089700379117171099904870362725723920588630313340371469225706373317998853730065885399489833783843930705038776291703097463944346530647244008958344056950470730989273657660321775208003826081751391319486069438545798667303176416121832667825941839688274353147724606944796695604726899379175068955194528114847885661341529214328599154446477186533568164391878955569158388642365732188648348292181614381351015359213118738628599279679614316127812747798996603841665856692206644604654505545504688497560960407916773038716508327305819840732242648729405404094816870527658993695439900192565147854444020264363877462311087243708216833372724897022281778327247204015414865590335073742543865766805594291300161090540396662287234310647016043103867035974621362281745804782450942261559765834474335211845701652709234005815353771681646256245900314175253701392963425388634686466464239566724739077013317231596929959711554133025490305049779426614970803626710253801064959934187393658783466592715281821090767493881737229345354020785947539656831968612508779292049385332903972848975797595263919536243080735847207129762132289461539674705607250491973675100512397022007698571869843314786109156206175412821448185961290469087254779515525723827896819550027975722592470980492424901256285060622572197696514159943606419008746317903370611562696085064019646111859075768160774614915268376640430152665148718403490796593833569538870347492494557067301184223481547232122286520077192484383105171642231251643737584258059919944533076413701394702769301621164927391297498182169724221653687073910687057598980873874623529667746271108987637177367642212449893086333629082059419874962961558776617079956771871826114330315329696711721729775475230746758944115120813756365125789427342945370716164123714101772420326153925166146816741905792637891048582891918834441585384926375939501933368637390242386580935853796555715148489656402059013629443124822392692140880694967047066932465004847334717983270748499847069309037420610407410261144783197462493082172641658401814617364986447319493261193977918991914840922306486673197554562031078915860385557813004619183956822009243417944550871091340075805490277114749162551578163036593997167346158153024744831365509296032722659341332390365176106046795222277084432001507651575462063635880309149809649892566601457695729572812552941966330876139809713978096571268556463319042492838585441365372593432402465950092550628776914563146577576770165544881002171732038464455938040753470515949617987767389594164774397027221353459308850440840928815607255448035497550994952385834990350253555904616557301748935116550230504175029097751444164744169348326079528150334948006320254359103789977779431312453592642147641310660716431989544018539777439511486298156188226301620643728359294564250853675692444006034727379402198363507418188495939168223521725472236099300492408997489850709491668795266280867982480840583694242405083046240522900379199861388230918044428905613702688076831476068680241078676320867599376795732159494747321969233266640973741978363635337642618331663570892695692507236917298424866356712343002928881698514388164659001249556962532481170537818063698043111316064664085382309346434787591167321558815582827733559787482774303451615991290961961121686775542638856671408513323526133702741670560319801257409361075823311619153267333999094171001949599950825035587762306064033169182988537777330047190242927887161081049375130646413004820034799567996555817578382938434109817125563392414416381904516664220732551702934484369816151538051667968893814348259303176995306153596466483865860234231560763856916608350236699356002493003252201623636758775936843879589560041120102668779795895146986647487245217642769465035036268937340295779062872543329140394065234747095170323475904089729205435616921604194286758275052414667474527560036727808103807043929614032583026268965556804915092479593075806343104228622525163024603701672022862101853188758780300941321244144669990898699455900844414930789327668247891681485312435117289228235327848320505975095513561235455703287417162564467471620063237446308151665361177679503549100615587790487740846495190436016557206927250958491881284317427388091361062212111836516593534341875996580966872340478090852858999322676463771334160175452635668332799710889166697941905526280865040848242159698959083640934499332098378930858373927081855452872098650383838195229548252531883670949611488481220317658574481317981023652076059697241995586427762136818564496546693547383010958842350019177928994853924591910758250134791448740419231039920135291401546137390299935427113948479110432619204060469306048887562133302068929031696550011057033216020177822593466566249861899330173347040935394390684969002017984374440469684417368216107270758164838696538980408476362145826948596157891318403468153460869752734461897481799361670805496987944393411783809056934417190667472094419653372088162084990809046981734023222854468352539554191774610966752129569124914589274497299746093828120548995732745536082771827022717863044429109582488417225839494146465415698563430097585091592943037359054757104780652121867053458350246805015538685825745342878274376636516759238059145274251945981357448331650513461422303847140667285394525976259999893163968099176004275462803576386452147242145348212426553758740912122446334291372105784789581346386070600076339995851497576944184204977438712452036246018678374419732593105690010878073427061553390109379110778073632054194114958076470060580203535699928245923859078723599824421326624113422837777880440450271940194210599898140134481328143038623906236092294715610133607992220802224318654806850914419328541244813483173296702978908586757841542630103445543018259460180758622841974273922017179106721053457611899093503865563869225015413535374367639041546180873410181850050627136606261536075723007076664304953717122861916736818207460708649064469562774974013998054305172549189099893065702378340348141872507261224925368309572080851969826668052822347789096044232595755142507278045022719424115646872918677108112350525673092609559888592852626313129718334878108353820608530451578234436322023732089772384417868287150664303080051987133628497705937502032313593434421919802775853978140270792939665461780066073331542272019975708169225354962200961499058552872035230847730707810726384613828620416400187254572260580955801816332688255881262816061631454961613441323064304545992927477424764716053555279773062746868233519300804840643597504944592680239044976305490425182923205371898042158046125497466238929954003509988002472484250289150428327588500937219243673195046032764251234732310766775292654303457357975940434887811655240740793818958385977246263247855189599214171504509712779098091002113133000033654565555682988107050933700518199948979697269339794992891649032969717576140000250089700034436633120893817561372025033670216332604052424975229310943713705406689505940803968943419108216697624060060312857816894214823158046172227076652533321916229595910104863668906249403315085123946314307695441195098884013587065198046874925722250644272586688090977414983731618360016872060035998274235391448051286697104554150986462991455150756280977775112559754450660501909416411830118023468346531532903964043162196841759735277110057143597260411120806109738948401338642190652863808991855963578870810299015288639316943799987991267417160414064921071403848209937563162305006132769744507382478377857159817170586319854718422644139153524395039542879508018484200170374648854764719910457071060231231653588895237245098503105371346113688031603745773218709416141132277701346743301256270231914301567414552946677339288702245256151091402897455391247277118828974826284386554237877225431019585193007694319888109231326697894975608365494261302200407525986031811149540101285670360733727005213194849346969361093662909381373444165810511295545140964092769098596935840536614228445605565241682530586755425717731927712559147283478944298638480441166828546497500111746007977760904285192305339377204366794259944800303312303987815267556877905552611333350764491813949925231866911983049378227091221348931913487816499177694137178398601728833421326385401581770023587122187814158007002949878388937092322669720526880530164901012461452052440113593776266700278515162694647845483736305503190236634123494668852951242411625224782288858873337339748236479778483502417704837080065434490706048041125521894386240500071008666921323828576038735056832433256738555723175576056410695167491054863987919234742055883507586467473349754820189163189859007130259296672987965671631204687214253385951773507980763821272712227693467128304191138764070640546526167946968533726960038584204636115125494383005151739040512561847951935746436079256276410440498624831226355019828681820442132731149243368334081231825068986745667396952990854506982468350348260597139838396701801959719102799509296601778262273861958578149348822802992255332395910846104696284615662472622894170709480168200103965453368577401304157233716794647513931539720546067139459294114223011725314556085749934427144657991014832832078001075088018666890866576611482020515444506391111800555484283264967712000633146023090120886447403269801199093826866563999088683148953113380264324745364161207544035576683632035404714439746728262482440513483215995576646398548080656756957983572015307558766556743064603792402571094156486869519408933267626153385532082680188407889900327257312009007049221984101595173919302471870544565098143257901833889198947298178519804862271537710857783892416458740757522228918730049580703867715267492972625029483773109021941366179758492383881107079530396592122077053886235766556155861302179896385324545507917760652819254324203383773455040312042673288776307859304599750498351728988518606155401816971639407332390764129111372737963073443165169881992178465452891056275597271320274884297567440498287192331035253080202620089837339076266982364140085210443249707798665161022658771864302398606085393009757706744760624144107218729229198101551646628015203347043077198288764048882248380717974122115228616826326687478082946569292010806799180239309207984391483487029722541240196343638427570007993472898043240357249773067101867547100258266452707135522064061634366374591828606232097344384033482115777318743834281994445387384494997370393824765775405863653633449726633019548463944570568918183939523208891529083355231049443461577792081315566374580571031454851197061863503388013374359912441249904447697948082621156886114459014964686663517905916400768957631191141990672884996841415143864155557535229070003433439023970151734491576430274214246199042400658565317006681179369159795281986907216950045498518783774612162134817844961128655568520019038388601181589207363241514108601856376821174838413859161131448606444095385806509928341882716092224691478040412798885109321513483572524199113872538349751736661716668979835939286481142429266543104484956553677272213215375261882012294612453911470021772132806995862475058403323570871417651711714535588293781157443505647789394267033956235053033257572964616474250827953968617625578382121924048870907798548643604689697716815202143065210918868755599785048747414385737464961015389828490996478015108212352321162291051368538169883200095559007623716676855114770212312153082840769655942779325849571555396891324718911987207347198004035154142177172233466362747503212634014525999693320913411989210441438966788052944194436974405695862696437191743766964891081177206361656502965700425581221091510526168037199921740577194360124305542035255049781202571837667341696546341621147954336863549823735434731137767894107952803230201165822818931833687211056564096110789601065754349046009378408049714253756092255078961385837548436475036757165602354294293848305248579394153388653174629001071434956921753570068400411887010860992685288153945995463600274628858486735170481679828234662987416752657613195214424877807814606809557473218860544359881310820407398169700511419027265264950274793893284387947663424935582523302546125076877035241512669008796574026784812650035264423537041863296982680915979262439779810996674934529373197665683123836110159408329597153512057251068249987743520300673550133078631393183859799456080880908587014288628959142683547079406889756477684851557108972845662582704642673551480944961234710821078081781493431069067243180702016913084779243113649343363945614987198563774517338912865852464006812909092832088479736471848223612237250774939032104045443586960475351109099097992838374610921508327620982319252897072426200425121307942652653006224853242291147938089708286097761805789405599001218155631428382048256584535386698173519177450775613012761990686297294437129991211592818116558523188447503509312365235606098278462563343978561375846214939095184318437903151014193582833950581747228987518804581755495747580027887159709619725069422711081586470064424563726344843100711432682299489643354567952341887277027463995658490387372237601803497259814493801846438018987361715564085171276250424908643450618728737153617600838605544865819947891053316769737181012067002670818998948185595451098791968684528390894314533499593540527964342910428936277204288106350928140611209644891415691205261384952010818831146653289755560126613867709398174672458116025907973293668512339514372153305752392039560208538729531448107298826219340800128877618318134404164819620074039340086220656319157465072050055279509566254122420039358885989682101495250148167037730255173626707699569356119027925526693664499577714850704485194697394387465063915520905872847999238869850384662611701843566043345079157820327186961525122850470367393244598038046426731418148994899619188853465519375091773912334478038426835733310689848495435097754094075002368471187442109865303017762405041846194225234380717403946741285453140335006951769808882969667069278387999532186430171703566532701971045499454335754993351131046446145680999058421321281568161618955881409364142120070362544432554249476307550855052861896818348400529594693120201165283443774836700449711310060705172616978257385977142108788679407401544801274709744094026537958078431020241516499064757043104261314603021294379249006799308586504813926659586301404742114358363378816312240407915307053464117826489329054134799683300245872338350376433790838857929072481919085274798314217714290681775723016425402419684136541299090790766976130295857616451650315864159957643766560437173526827151744926349010051344595467895802451255281851956547852561608816452451908610610136234465608985394669991535034579552225318368420774036433715037905759232392115582847137522139578997290220804482934205706634355041732851181525558450388452303418880640247509188263861046504913059736550700527299263969301781785909602021111252026628662022260474250208563450090247408875206154286212695074228764071352238996148147309889014948394895143721888115037586860143110009031006132217481628245775193661888496797162582296878967518870532667670890379676872767917554543590320688803804984596186866887189129561429900099752750161029051957469432892152273567867161603390542537946885373845433986590811134511330521429234210850656830424554342100571300072339262818814394056244182791421885832497496410513291527585215847116818981295324695480889685991080392974723123342767620783603876517498583049255644086667964782767289864440132384638115641166925600399916991892813107927093989339852785596084215449098638514745719837068347084376782268059867820897737788363830615640558704828447261333491476791966194666407314946941899029943405275853196462528263983146375563601659619531548866893954802579062522366136007369268151070854256138111114409514245060954709356495102101045145689013349619342342678909196535653067231012815900888119723564920951065072765814569026363949248200012994070842121719856927099512951057084807628318352123713960373578522799587846812803688334105439574456042270122617264801279112760507544267855320760987328994488475499446177208452563656426881535684787690093241212392958198051953856082640787432879795052815254542142576973141549086708507808438957988094238657562403273279841686498324475755996953981168362610861107485255790388355074832261389827703086309301474287661415403745968756072337012823006239681843280323829078795857649003085581261866988586286381166492427145971247067083552429190450294117982653297453978004384862574854509491047781867554098364862371089853099200142281867944149472503556459338133358549223784635062650894710987068876459020577011253764855923652321722608766352585678546609746928583052484019452748340581896338913217789331896070287236430733571712127549281365610467744180996629765671656231834767066161466345018785018649492676055808252811131910523944602216362143977603460132040556700758197935896183051704827718493163753492565305637295612247618240037412073989155185654686583889731226413314889176178260132802507135999229394529568878856273906602536685259574187702575033867879938468393545856167483791249261843994938442560938306429177969688730725136829318734903374049082063064208348414068090515672820007485740987954210731424112066038156928512898138024548277060135555541750376255297968289738886734918114178584535044562046270251646301329958413623913003505670181730832245611144898059533007430082633415690344181393224404975691895047937387945290403898778514445297360636580113687405641119054292403734254431411527023337994187927231783713505464149639925618383110875332445482959819819597653197613847733652525339313843338778175453691965237454725679675887855030763519071095789204053772664543043725267470085797655229262221882121146729463451196547454431853627578016280850528500932238036217663022380107251942882034209382095442737097512470124297034745013334079495243975491119870728812579780585341570508625153401191914937286377985292268040254136317488746043800802385733152449602395750301696434161743998621607228630510938920470617665639088750898201296255787714354311739417345577601381025541842229051662280846846332208271253851501040901528790023433112395172530945850568756661173474981895289625962160841515498123912143709260191965899621190141723732735408517092717698520879487525690914491660749529542701818914432355278212150892517745853945837218980626673090552948024875332478894437864156948875720519368460721686706469824012407309605783152223191826694054771734923950933111615280926237228840310344459735268720595040691107993391240382924723072610335288125773166797437310771090054794842308929425419932440935261563534846471959128940972284539915197353936841976701949200899229071147905126541063897206655718153227031899868722994418619648624635355088278905420619649123948935571474438689002483409223103431177033729059057185319309353839291885116567117335787010663708561271089325228121474571697634040290997366747376717276214051673037585370181651583904061274940478616350612838369014757742541499967996260483615156088373088192800637850056691115880194764425560388724594689582488557911202256606355081759147005850555347175917625370785000502583344988637889635302207431960342318121138127657055217196998606647097781468479832362752709339085969153758536495180773398406838781456395852531565813319616095841169377402806490292783218582134205571304893387065077771078757211185571573987696607740693686780609044815621323363144366472665385666763181473016098646895288491606657538360992669932619804998393250082088161797809251338650583538312397169011614875899792820945969668070002158599907527149991126373926339014524236536158118389845856309651565422791788117274142300996566010871337044664735993990111776038213464464145788164766055692779799385060212586363076224959000331367900169293727864943378866964819319197811409190674109722865500932864763535519529874095208906960830379932987006037153442153679371135669080741081441978216981251649753158303493957182555848970926540246686907877906762095588753768366948292353584469613398471971191594836728332757905388138709698509061747519267122855140266333073944204251839003137937124953372511447937997050685865054966338815132189694783521832629506526281126531872720076353507913945397921391985290480178530102278322604853501741869670959111464264691909377423370253842781649663824706390443474646603466765334328713291632318486903615589353722669838335033341309858989199920091522421021029587164063797715535159315654775057301230475561416187998788671555758429606011871397695003861607599413685140576926299304314265599771081797449853860943612650886115337756578397630501960830649280409622179416345884949343476298924296413515977106279525228379084849871283325826642384373452333326378216508105109013572714931106758399822340705013376189515301007256599539706976790565836123950636942733160028534703506329403695188608209477212136147373992160988045170364245632472781830793487678497156830360391735333653799097553567621376934469029563284739177624074031286771219097772603517156911419233346443210882975043807983360885173381844057410752995958194134807701435248343906801960276264581677339582604498567060181881210221377370975847159588563581568863892888404699255677157246126421097840729508200039032411436268162371492957902040503873997287252476242218254592764933192246294433690414099452483408331549827801738375821942638126020925128978886342120453256906344912245435940068995056526509076251099610196638805658745259728466184808471611025056736867605537719742748602188160597671990377016846338782872806443258741650898428803311919009542246204962277502558321645102765381553876861724818423130518996734170672036157533984937554426089394153793953728676199052114111194512441220767898027401925169164150969601425236493841691947861597375046746426326962779011080920074164103697701005365859665596843299889754069152008860811477747769237987433637996963479276269668864566616786090627034266369922236860266563539279935161056151554633442671336022350755213686457322323366350171474395182729919036410842676045444113130708887636284229327101571354014998990722975987382127144552266369313912250813635987044807100107781230863267033085760697417405650064784584513803328792136410943841468715807416701427853375955425316001150195396963472669738316307340774968320242835947745646511827408172010108163781409938680749474723721666457114791397161657253677312524343114283861559207058302263376993054941317948618335892180771815980971424342929115027674017460012152493571942749194759130983114321707947950493087624941414893952399865348527754032384720022814109347366395922357630277136279729692073609102372548982598379515936797127794315954588738591108220047190086386558784567534752708355063505825861540998031860197672525985501056159090376929806220349020631366129189030840723944117394551546505450655224814954242213779981923327137832890176096838222681255104402565342856605432173364862454400459185902461460164300058739304718871011872886691859802615794291353724835412812123466058699004723976035332380584534282223955860670676232763342974987202021395442639694774457925231899875112530021828795329403896278276455953502537947023775252160000270287796375170311201950383307544417249489414539032459339127991187599428512294917306128793649850401407902145512822397340045773914483419546507139691658783580522336498588181289857794611819785065911385065658443286142663876589324149035336248957364296824439799749197329575214639554251109449818033298489193288833647689968448886267074759225391482603026125328450183893943150740398117428008682694111337767467545014341151719012360764917970009830350133289286226396738595239638907664932512303031380315626768439453436828932776809773181265129417349477071610333151030878995623336405806779471702356890833765576101133963104759306768841679455599211066631141441274868821238242939970987726689587340733839361257310342408175131373629494040084650154514416973442568587660609029910673763458415689105377342047229679502690569974628429935293545684576554571842032837743622839466010832313366802793297359682774251313273895451107577084977589542293357200067630217161028399799702331007838383075291505267521921856360209785657934517860506397530708163150960183618333168214007094272957791021441189634954460452090053328704322003111693924474652324095184152146385181286140273184786031294214210246243478600526899147658187195346312031661681859181571465807305719170949013576592776678393455390829529901338057085518076797740682323457145026123121703837350853685708947836042504618182426545427226687053721639127842048983932684853665241501283492535811138305868857818769585938559796971077309812814874309380772071843815261592980318649118325689571063491951045234393991175118631015970028657501991506958418757260310206097514970800315481481487018924701453227930222362776191534409427108714914313864293863125955686311214907632717882195622732834734461150729904105060273019129642219958441639498807323145359882494830873357207103739688270063186121381927519014955104847842114238121027602071520156747186647389532241507085788761809143227744712961532733262363818672214921145783614599584003465696731491988311016900652331183110598580523386368500229774757282620568387210004065863674077357540852041443085937221776140411750965648918281336409762508809543848126867917714750810226858088849081577277990759653711709964453283926266431617707562115976534158704202518693143273476111163202688682431330907553606403505674706330531557849958935751588892325275003606557783478061343660126115450824178935783111248899927882584601332584615462104323779417894817838359217849571613346838849938372079860140655101850020185767091657574000596169290092132720888560861529310126544284094110883730485695259642561653557057459244643518418042695679827730217581052499448921147116111137434916543965853414174766873792111658515668191721694333959795847568150109992191578209840923696872652943314831901060476550781540243862623819250910199325860095008729787474894248221726241426868378571270402582978708404108339707642248245856224377338582243999517616950415255425693902300165185145566722623812285257917189856973721359978562812291904896915515951038830848569160202597190857927797278868969514094321006749262329654291503376328624684106029731973630382660998010309102162523380334317955082771713183258776593915258069955788060683729657362916367080323506189834297302327191928477484544365730871526548810826674276064410340218430186076986230668590193392296179184366275429380734580253490761182002455672889582755787812032584443156175399792952191130872581302827035428142004614909348345287285822816409598861802951648426459036876621911520271679758598166162431477198242314130335351497729640942949160701153235414918069054076944288729875437769187389089375736455440187573771173013318561678988932662840348065975879076458475073890385733415486654164817708581919985050901648858917492816715191623820537387712378685127760857807530737466649235640553614828811383253961664235045371937215552821679484765769673743784351316574655408170232832823041693921063327937241513534796203710898132077400182312681097295594491249279582937105120705435527821119475664192940834512709369296281896283980834602651513564991121322873015602947530007514040537000485017474416794005979295477908628508592401612930726549657124116573782215721812245270782703310138086475273495814601944675914867950890679140778020175066082589727759918669015495001781508650944151835111260346033233151450366694210899269949610817369604699489088964313497075253848740811250180188023106575509961193001277769490865078309471248843671505473299494442136497473513684295219959401610207169245909430907085166563426235695375335172811613809107052365595883155372036208973359516154844318868184674608355974786438339005957837751913116098620084596609421958995116544212783132160392790582545584534904355338357481393705973841700918105601215924927013360305500304489073923255790029944687921737067972475963323229028935062486327433608331577835432416592539968414482199754696881182368038590336190034900522876472432006475211111229788589457988081235046126778078827204631075532387522691906078303997597781865461708618002357286334043066521230531369458072253996237354876483337225305737689804872064036326159860964830122070053003522925633046209901742853705703760989277693696600509899584840896265883704521768858118732313334196380661737635180869491807631685114495543482787458116451440962559384397641668510855326277672832315944247628472203623509092316455083611927927948127892942480489771168984299530187456882937352365943947566724750064727996086536921255718813903932912225624418387774420038990727976625877142355727227988574130112700770184901455257455430365994503757505301139836629513771420004468062251795780497158212464336820451213373532562164166093271062928122609309432243738845668739825790010203719567595690720220260445288356984570391968143013656726510480384010484532662265895416469762243578397056726963712463139161757390806027179087021271917344121945333375072881419445307944010440610858114923265996487134901441145415329318353581787194394858222961728322319655482653051354802349970694153612614510916118845188490370572468009308867245724273457834992528389730486855323894870476819440661777575997237072795773220622150244806118155448185693387864027061811151173024510580692936081174217056020096024045439261859672727139643947853397574806929137236831753033345390832452926688507905218500743072898323373112952852177627484697792437722515629039904379781924830318345834167410792959525389387499399708181266590983074944088265443382823258716426134482454031445796292418335790856225256056870427313486401244382487405063649819592561620281904488972245847142594095263324318764261475998371371980328931014046560315411271132401935048049614136498279534175200926646081998883853397248315267638058259558747519730266954924153638757127828855537352399003674580142624952816179307915830130397499941316336089714118879195883431829699684723226544136980388513093394228540073982044549877443101648692934707869466130037779105164554494358039084785488697000791479156449409365445424850335306779771565439155448433134756364182455170476263703468793275749867295878825309541689900708384493538615994377815099693943683508524354458012939274517106309941708559501731852467049417928789022858621734657600816754109866923186867766172360608971207410146050965087570858552927576592324427512533169100891765301279644399985026967891734895481557456140266520416001817505657825311243223527630702097589768944467878377120089929231901620504372924037232287231949401508729151272989042937845747189218844492077089685461930142972822957869858856502500204281154109971907590621790288961636742199119925140969677163704349074702119803674724334324837587075888188152533664028437278049058929981858368890827332493775620980459532216875232901153870870177635681651348186026878482519223630499923496093098503081042071628882861060275159428269373903705192342001773336487728749410619323966323660487707494841694920444305909737134092256232984875880897441565352185165349393809062218731383140886086441212798353950317873354910519056593807718718350535609880563656024130296751540298259443959336918690256453444587770591074852328875734500101626744159361039716247933911602058586686397515162407644689552777444160221454679309711439152583927378783177210931999529044962718300657337397343601883550750525693921373210072750941098583708217423608023056653389299665387480788564639186921513280230862104392899937150264734872738192261958805399856672595729473787560307117509284721174979641822328580807111085972559919918387255690916668799396761017141878964323811448647920139424507979514416863747482490753915443806058402340358022484172349918022135904805740511470200114411628279541878616193027925525104176412790300709245757755492288416693127988035599164899970530303917132762165748856352096065909456394645171690552961918990848464841164238521463367138232010327188055272217733710852359194039465427639274595979081001314692203487011529222331504965121314543281648118539526121681470753524392922466289422182842802619647634240188760771955856571617423903547845449221316715659807810607435656662866055606733141869131986700598879402049852900595562948972840436620402264806204167346551949568117156403455085019679214245450668667505291480675291194317677954998475449928989110195542556049533873738419967857180214043278778603225800869386888544370546712636069402916529014077236090846370430370013212454349042672609531271953180208287220889380419515509216551138152850683607657708365744126786943720835601229010835181070279857744777282257263528217656419057823154702573737145429134042482973052691011696225125078859466974359909069624261151564759466254685202250653336453225157930428235452469579116101057308211895277312631433731420399623168068306895701623558028908485417006562167484983122011682715462820347111710271075586567757205123617312584366782969036319570237834014369470529158955473268732050593815313353105728391479341372498265457184159503159100096082397923784062793559711921071006622636823687368454032996926202198430111109261026522189324444746524009383384993207739103619800703140557898601493208742147927896884035235368720657483542710329900113290865226034713171325354744762867245110497416564201678201390478715930456135376207141013629362269737971584167351060925876945233071511856585283018138796848985982737947266040126639865195459104921466121030909109493608360806754436327715041730397619519407628057209921959663870307611533021375400474838653131012986124887516180276876200544749778031894470358681756204982692776146483382650476181510838176024034451266846346261751810776654540238295326425833434619180409069776642044746807977936686596017952847868975132592245180815777536014713557476720513696216734830086635080823993968801707493370853397316001830041338489910766018830851043093956603336754017936253912717392930534563622127697248546523788474007632682181982675407559728380422308548377886113286392378639403638734525453083495489336198158947155213505948704761258833672829251143972675353393854903286961369836031213784075771408202215621784977503462207515256783971498679313073585976426397335301015605304558381474538585017229976165139729740772481366233375276235501085752531050233897274306631350755046629057648039081781094220020254596941112761905331468080039105971285391456577987578978161291957213382189778879894990749338156654170246550429601336027141028166295849361693056320372273556275457519872996359653153817443543345022068161845195247846990855558613091557886999698505786173580410055743944854956824989979862032059832905962973657913361448921402097950648947118487627493089074153559856463708785059955921281716981896897107147209197519139514574418903989733707611301692137909709854563033343153239319224467983612556514545862868386515721368223732690682971206775274519809609068293225842051312840553939506848422354648597666149378023350357931174535434542014559933247853394514383962560166427735368336656687629964512810020692668933423189412957654347906308938840571466299251885283196980600211430981378271754534824939493862572078910109848781112399967225886801680132212019908400730154209069034126127085880188808653530283189364768364132182915533910404141819737459956120107673872168653029062722918178411018875813041626038831445522853488153452839074570801578207843290949785521059138922534130827152286173137488410343609477939747352854129980139013440281390410309560924229530139897463957701190540901651059410824515771542953826281692899715653841089975367835889257755887418292621854770650668662583058639363977113610467967650120871799534928925821407999079709477696701249930244282784259321938124103606296103656044334154311980595649165466782524178606122523689716942386585830894099539225055264086053593953662072881748524273426095967533005619297007593988706962426589173459360615005886975930161983719062670906333842241314666602675731977407742497180038198163141326082285607189867284719348395872714109269955540112104910996019218036542599646018937693763650346364859285777276693886501772325932372386810750853724187798485361118073602740884942260806321532245448030725441757186965779423201141024669825660051135766889181916644283587196528222026841728059915295840981127333108200836830645293704570563744115573693092484669191761955697789945369567714184225133791301250375330333028562685954592598319434387739481729874101149405442972927755810322796253711385974365619708177019123408947453841960021390966516807308819025546497647748853616616115789501202392073468421336267044558976567253124546753016001579135486379628350816128240551714536228471242102513853227021099365663876783405826908058946590469440746289940925398833573091862083667989964680641372237420014710860984676471794896502188560609228269126725761127902969483320349943544973061474812442546122075717761562215804524204661198692533198956575411573428596065332001299163418285866050161099553241431262469403401741696041022370502986332550458111680804209978057589842920459380242365598062237895557032750254845327878935870662515789418470072693910298025090179973147724482805746438781864904885422466354047866520060914932037005994364774396447458784946158798511363857449330563372767064951896957964625760090506875880659277047324482818170052011196324403970510448810175929239675891179319105227453964341587336711191436014372560049840529918503030140475631438567349853869926681154639325956892065976761117825036170880669649170735470759573380248559906767788863176393692875308356345786006115248445838817415497460612215519830718963197456947266167295713921596659243932771633939972732775372581291107697944736696189445686907130773456629939912885165089362312072367486348047620506533909844574146319420688723758582142655493887322197819913729551232526905457037158941262292384248986681449590228197277278738450373651539453254819156767003770606957352444581161886595935223582807970534672663105766719769410632822634637177765243489015650665883633166373367987198628191535491156032720854396612314082045085746504285041406549004746257185994460446151822399977671135212609866039633763970176695356120420679579490150480986120222301135397402204803206887811352812510024096586489007542642856293515338879199725706045639075540673891376851994827758905034419266875385574222325963485312726817351671252776869040011196615734883878856319548262832341703155716624254386885067663632233885324252001946619450855897218504112525200924892846695668127980930853000319806370600296623170650978317985196059101448893901992602075944651020178551379164964430375594820723352258587561680115303443171028049005987167233185605547773925217231360782425518317730803870619470630943528741956713879175082779677078922773752768560489099063575196313719459770151391670463886603686291300740604886727258736914259532830814705505482537538881249889348366040726955494385927343669373506414116866660708066810452525199199426252205209377247318582028265776784283111610813640292600154014275118751686939921540277021888522683579297673635101039761432417019913739754135096511431781534771723523194860562277882430294271815900368040492810548508594108992370826481074541224828031938765583387371684558473137538759030549684969289302014471420871309457560908406048087177714540483975076066722938069017858497300764965711969101428168262410321987307298382205738837785401710581579947680398778208607604420512492375174255280006433005513336269032110367231492038250926897125274529266138924096463839735294314457433485982473130158387068022655225051492363477787806740232218183615452282748503529830458767706856637495621786493944697874476371682904531228758996174993344110344995074401743211123049509810917509450646400279092789971026690632766678256676844968741193516918421438801398936110543115025000138294335470822290412943189927265296171858769387054609634424762323383272239776884866507762231238539836122385077637278204037262075941648839315939745452324334474276835039021044082230531096151734263804731702284261780127537362571946375932799791784942351285134324510905857283281288333042896368700380330733818597802627965111837319292734574151043998192391307044674349666270468870476601615338004881913834559481698611313820707135580092495032432751585601794093123375708749804859736831575977572025380165332921719781168785313580670249939547485994340158533321344479159137836415260344258797061166774912381824853208770435000965005601598093925407410838138332390465657974832145397003494890037353174009602511583603542340521115075696425144403825276770788481187593459661988007896431870562783486438242999913830543747545438112291070956960523644902746011343634748575010807242246178762787977026937320553975510146652215842033530586030506529788278540671571204753699587560909912150381407521511321217401123753687079802739980260865665434828700864618049613770210356977105234167796392091423532482713336150610848874293805134258451448919902069314453572215248591169222308066627994869208315028691908531288761322352737208640682500674762803134583754242297209418449364619952600292587115833072817198199210786904921844099246724306458825892426147096575195082369454427993812356405715076305914203918035165664665667025852458637627736641148841874532430102906035552439355629666323667773984557466701764340523860941870211215644129978491887962649058633360721427567460796832909967906578183741693263585444852650502380258883505934707182891218657228130786008411234488047636007074760248434477592097547639157595610937262378658038945933329777824310369882374654862117946333370118486750935465125893511996403133702508186579230864667615674855255277130636866185882549033022980862348904681151476556807759836803043990151129527447222747048341496600408110437006601271035831632269072471292112466777659474610389748448648325164541394872415085473795831483641888520564512842896314460063985400398084419611960981167341591377059960613602513058853450111270832773189550246173463511669727539294853282298653412505888140103988269984229321668730115867050121245533386227947354959464258090370513957306237934179035445388814567362754437435069241981776829586656918713122415916417932999084151508249271963907040333255729516013666187375538035947831429751878611958780994382700547672954160818630609526644436885099901248121543080961097917984731766836481659084865205981439939366615879182588388405832560190833817017151312706026075692723131389753877605430686127185677698041093845157670003604617137493836938279145874690938099397695413873467165142940701465063732784904749510682438959919899821480589423475570250115272431157799478478095320170840402048732119344689063927019902974291087044997860968217591090247871033179618820700471866746964382314780719678055384752133328121288728233452462908780517215728542274350274169314411892034732238601299754775454979909356754298075509637333645840192019961961256762784016457388495560072870031702906908163069354096546861620947822814659460569872229546461680742256770287798555985684342919668031817019278867414848313832033838486493176669505046060007996589735072215625400398237316167496189831896928440004333651359991582880810315212993184890677545078400427774918982187488838651577069856135609160545789980363157779592226341734787150257557149907761578360055656948179020482139847282371628271646507986606027249659150442745331400454332026980270533605872136749091140739002811680929071253461159934664879265763162416711443220676989595152995814685804177145993103413979549437897036947775772081838049363234134144923044618326974792623490699373075170817579824788210075878552562265023551069534943110232923511153377846498114144247671974775719329983678565624285268943872637466690546450528540138276015729751003067735031662297556987073007540811736781200312212377363137946982216136553741626117901534457459698517199052303204172093773355315284098933793327810529860351728222521959225088897338913970542695429208066341104335218198844274126872499743059186457053983061157334363288627478808590798044646564936523800605337498712403178706753713673259816349083999966468847414380794484523172701179383782522709864165194697315825487241686517951784474615807245086496361187133442860113108263456895138369064335481827154509338140538167988877907237843825062002927393429077086152118459218032684024250294926674840298141157381980093098743684819442354265082628955066123749456075500739985582198913538531101343034975283923265463338263613329861434555015755550496836491909041367851677592831944048912396512402977022702940299271493268769842720098686566702783799069345130013717047088108154168368932241878694046063212346776352601461258489985021075427638856966771057835784494149878438049631401136334738612193044508650558829886110536789714202577681490340503513207159568614294104010161660751983666717010546135405082897445287167529652524097685926763975944798474528855065971288087196475474521706474910483009509245455261140170937281316214539433250595691712344108192071507960595340204645389932320418706639234866990776214854506794261286666626625566639671538752191068740093070941734733445632322969305701919992547098635613733816637436507125579034257829084576325051443417230454073319391039672721919835368265360615766488727444306241130964212438653354231172700838969911138914562110473916334103017018430795011383467446449757635496766742485657792127171033290522711693233117439398234456279739722531883018635038523720646108713464367813089626834718522212149857531978456654095425703805038051997983206980861612681353500005624114596170669362674654031071334034491644525177112051787787334787460805062264480066693583966104153702770823693902987646924141891298453012819654080558117590775903660077064355174146980110903410535323040943331864085939647365977661336631517360930894762789908778656198000181066421057975022710780220333930000216636624873603581079894992681484845175908306847504303772411455074333341383332940018442010819595017327008147771036436558711285926264385782382115703372115640712592412765863200363346223885818968696257563779576270242090231978829459845569121763317202920068641611195505797161374897108355435368852751468620954609746499807923907500225601608773565119524726126921840373036484025756291302893255492004383301542851094686440808183218916197644281822769357954922234161968457987033887807956533576015768985218872799707572795645990681659915603813599894087858785089561341807652281067653685055634434360600697488695587693191741031633996611187641814239653665596894299925212029507357648855450236019712300054600203272518712954500481930224843391880799612533023763641574392222851557354853387216050381975748656070776669688526544437924141595753232795146656907541287714707612155682268145471016250690882820955840087998116661548395381460603196833734110075374847918913663094245884764624716199096933141839440805739875251339661532639525165246885550131907941537893637758858060939147022591515432251660616291856113098037128666664069070467105143636520125089471904123219830159623837304868062639760022904650358495563596403170013509265953776221229870563343515487239692304814622597421724316628736223012502742776239776976402961156010831968099895181168474292682158061842305182005741853832152363118274263644743343240213173608027259140675585607022728260188593984033714949831622972312645035233655667748401355191625124275064998766085855753739508097403298065756191870797140181412901049989723638113252130010164789619521419720053867520167661682604998646593966954720441741755252998697499477874651705824318202297683364676154195347459459823932885419969083522719785923115661898736842489046017706707058824222561779955244517616744858207549120565730340565580081754636404057267681991607338644779565072471415919220728097432650021993464210007383060912713857297931117146752818176923832038139179177453222873798221532275592833164696275083830752118996192727268047829848364615027460145568656056099105988562163944747346486564380188354072315549155871092849981916684000611085197253596215742312211020716682815359293828039782676680430361676809821829718086812376378227961673515053489003066015040763703263954769567164728569374068445105764280649209953692723168794048462308810623811465041136140324922605853556164801343595405121330824952299496399565175061490522114614085977500338439165997097666006494218018879603115966517729170448372731780293017890500471711404181108184988052532751950536300728765390613116647204764147985537784889904532480894208994637057403542500666732782563294828037819874122978562732481890837397019141474373818878329815042990284885218020308791969963648273368793665147213643737511159003701089851696662574876532022985219599527324396591545607996662024769387214105518638658945659747294755568491600491413378339642645575622158067454703380416634034444283435054502963066507543021828029290534110974058558266595496488663921814568199595876341915037245958519349373947913673780562428948479997434137136515810560698137821114589558539399236755112515952301740419240472628565083459530844813472739769324340184961582422161893171915200923101376273861700755616464290415968499161230629790603085847620021001699663731774735286900906591212131945843235283987328498251677235801432241379749454909273967680807578488934029868008464612096384945849227492529597373387760872340996161634689409557805915236775491861086644162415758465844848694368373820695028321756436587776476969006695819925622709425223741886046176765405589967873974060883983738180275672094800673802628989081580814447323040298830232177834485965281973116470708325149874630664672055131130167790884411012290882968733853729185424957137707017945657152473342505024361477776225954181602957219522011489768655572696286546186561517053519600741670697868640190092413453712438549632561971732112790993185986123736143475409543051829829650400514744151188188073552353830949462904049393066375959282202154370278912758036775776830444284310428274616412235744233606206741997345011689661320519040749605649834961918412990934908335285443890153186475555232252101693478192473663706497497846132610879771745696861178884587388176720207064646163151010372636330586147847292008710942794959436584137756017503005682585938461930837472087406432721082788385536779848641438546116324404530885299820869122074631008193807285547074272748412377171913520007382965434251684410039375550305495914685312308620807451717415567023336616147422033334671975269154622091536994338127950968216306821612692545626955289802447744493060371512590985206888614420188698861862172777558922884929515909756034775247160918181201191387673473185364296786348397324830244342533346832329685692348040670371395450692908188396098504357919028553732789600993557092442847994239173024685983825353246512444257670739597897130505660503514060012709200404678259984426677398637790062678644326380950107827266674784740685939029018873495896461474541156283105265454577074201281638243859983666461533560981769760900311278568191982367558337578879948424409970974464398831251464763011248885346438611456300744073584799417085255592468035627026613331700447690166927923895094466012670566032388640519967974316381933806078495943568204365119027576116216663750719794066985065250380417151303050868227599665966525538535098628549377209378851504456492205067093084611390402098215104325282474132269310946184846761201188844709224494384888794456737444325350009669846352311643222602214546095722387865677219742569342533637208795491646658196322534683349771103587166414266012797901759998005938262440224854318039776945701663660471154493204570242403256655763922566855572685934240544212980074365986073930233830798966430117694839476434656684918123819390665372987226936890180257525982797298363897853535880156824765378501611693728546068265846213062176462319110223748465222037373180299385112848434283747161628052918238528366740692201449875710512748602683929667342527018746703840129512185168465452607712184938875057303467919660315236384410051911763092507174933475109863889711710867221704284941833489192027616671948331716561272263493154710788706468088583462709871450419236640472525625620170076145053562273589999767132467534436599415065638260395332868161751620107288480612061548146586927580939360919862924714013364984394291540798469412113210014763910647657596340401030970729604645001165141808719168740041347217732069610686428052001246736574024149527885312813039110737985040085646476063142850991969434581600048421527424067713910468986940194101988971267024318616626565883113037089704287847173060031167999732416935856453694191925830515043726969247400811941346272674007331013396028845179090943133403327636508048730464101435493701115551835920027232362841088439088275958704027509617126884790584538269730347409021150457863147781584046151827188916392276667098554318019333765002371996861604631810828243003951861749845600343705068027741286164697051779060562104508629435047947479690280158937616270012854068680377284575462318577647797251357209713759945200886151071942553264090800424675063408039581776623520958296701023787457060729223500346373070509968428085908888483625302981925964439067846080476968705196782108572208507757428072167991188282210867943686011771806445823361474862179556889493855126973600997991061865255502911667575606036941633721005694920789997597400955949437209644383041319941686109286895044184329117064640620493998288935706261414397288105975165958910417076985764260486221021258040004717075224195044315861754704934029052881326390908055235299508056830664657197896331174460367274096565442046485438983206019534168451069017420638004915697896976568079970368587935377638256168853224154579527859206805182957361043877843567303893040415908737121986152467588595555953034464026369482078881903714238786934615881455674486200679217370504630852158387149086293851387188429445849273857620713190041893106158985436166261269714848179895083292063674430739361956939345719465411297229185455314965978552116639632255823432942079055513399252656776401150513445439798629990839648964160479222403137301894763821788192332256270511623362137456559759124312923007732876112148210557605361287449012380500145707952136084657798732860181093874802786551529739656261641002765330205550479603657930997902651077206064621711359975332778680671886992262519185562504813475742771765326211880469743294322459871724828946543680007211468092015005618572862204566903841323983378936168310848993130175163415309900574265336992408163124401002117589758136280128633709016788707515917013773582589533716890419798037318194385760443687198016413436995734748324713166994203624477372920981306218472660216599629105742824727784135699958326688415858780367953456914971704364101419019623495819803400697205933928441101867271043647754614683783831957973135677806447563090505926720327230108460666608114212147851883958167624025635039271656536018606043978730689888656082012260550115576594029851958002318901259226386218247921213616736676188292710367601954547813008325328582869532779568436672090696448166150405624184281517740210456294515465316447071443720711600579659204695609901564476343434850980767836659230199476610127367306024636075706755592016277615940718618973758742126214783952818872021542014994032991443090017408351119615907586292651853406628908086854069844291541418007631485111423980280263911390933006387768439062434049242527429571336949016911889165232193402285245302794869240354528364479837917872750032811888657041319156531959360100325731392497839228657320869849137294009471175431346135785781853015505136513013505472674221727294987938432677973595939039947463302626669512704503729947552169006085805114014592335898740314962924965403518026255089600812201550020178726528521404493899811283458579291261921961883622781198424451567874637603518626200615673412841788384317624263906044617241179342073803694484663223404237204161026182657324896967630465359891797632352534533516425120379273827144569180881607432364208898297012382503778706042109168475273213850155295565969286050245619659965885287920399612186348864601732269359414273311034095145746433752107705844962195432101802194444607331555225654272454213573223289957984908962221607236558764028013237374711405500797529151713809645634396219863501055061749440635393248435499881821734737829944405741185689504128206649081556294165052204368035582682927186044760699280705544733204753557358324097923516148129698274103166600732270451548626706685350326363459718891953286513759858412755333460956237222748412395880817628168168499058040017329374858940294923408925591897528451461089559264223662737418574989754340089305806875301448611350602774563782890340862341910485715961898397173622147787203127281393200917217367263906366548043726000249338358680331689123913298790532824301667393175374327218225880650588690520079169984172889887769986756010650679955187638187495689200760028370447972721488457718023550444232995318973383663973085551604879493358745036928453141539213515199005738171105787938178181439115997816304459575407619273103177761635794802440443244299747646566619739407426889024397933245708158707393912864344782527306148943527578534767462518458797759485783703565072359973854923874295900009931400001552799117572658395662262813011489811613521298963080350359539359262172336291081626709260703414167598345786117053109198133486751692687458645321130638644831133907311244901805438864066157274964859221484093495471093453228297136990819362522647455931328629373279937307474253976709215718814230989515268374859691576900456623532719066870535458359003084060921206789656029470622378913720034212977844754838049084812457057069624818651176774442406056153963066039183446404147588667010949316934702952857395840536332252171880516849945678772679033717940287639470114765793434147515543113258814563152354668933607089395949494504520976217086602601867491774875641222384031609216776889195950913815847497707759845426562206618028625924176581790001641688327081960456852921811412809284975498730891224036612776356499957879967742673899786964179845630330738397992532712226960827184655322033728159080957712906111720556766830038417932528991014349650381500194261566622108999166797622225885665190240359151695400856093035543612938122690564338364785066987697632079001920646723323046139670045045134665817579270802386944389093265160886884670203332254162098069631635864650455980675070397878590034018835516267443699155632833763700812965909222395840974294022474710105844918481350220745935688033251209751073880196266022717112432419355712613753146732052317939049784815553594440706258964347022275152172946257247114078240804979182286978355611226838967252846308783141942095332986287768397949787377032429705405949086341709404888823271982232142642091410579689462187806191820981702754727191400462456724212109479959911783016637328178137825580922882041384735199678686168158315864862162765591440523304036399587368169794708743495481978833976059880822634133663063043742583455873764183193982145498342289816457297880081608856360992105438946580171846065129971770117798771136453254948510508879307600512688647865304407691049524269018650981302195375117932377923154480313939927970246579338532735904959461345268997870912641355677237967024169524166283007391296188994285997820925064408058036013200818449856187305581416120107936725398785877746311309967353985533598098881709823615400771793194206390494004799547051246971662873797282170468638935454501820919766254175218557250318860437439557857794577619517507162621261214206109054589012043212526373899772393710842249013703539609502287938356373616248075144612305392205205340597629024390721913372488835352834161432958029263764152492582733174097925887336420558382909508729588913956605309984149423598148603722693991008655799752651346098091472366997772881570584442112784148133891321223218903081800378341777544494449688796981990449822914905805868080288849550306920593928223413089988394540150626436184047140946214974953578703487644374282827560496930531503112181684002769486988344794240300481277319030120583348840052603594051851906459155714283932262391776182523171401698685027982343327435844473942741987836790676185816015519651554681240313460196548378737005349651076359338921459676373733110932567575659975300339009822372567952677478189776505486305362305029481340350128444637602311875163056659354156524982597451487441707786652094641112350073681377839714652911821298961120954817449614239076898792125327510415869136462378815015962543058420048534004667116748710614684531420973610046421888893834324923582046352112579148116945601730836843956852896898932133074405410546533354104082030854085699627727556926921661107562823089439635491150525014472813470935712618804892426712317772946055676356879794811168044522069443153964361173904190836538217183810097837071005333659486765462824291074495077651710089040167562084083142639996927424061327197287159985258782145506598256915595142779065812141284912676122991922254796366488714334347289710222516125645854572239547105124571671230674817028347402362436652902741589319054536587291162041417898964210703064535224476189559747130110614139585197994567675940672484506003120204175695067043100850516669418849721593364218507282108472987164131143941552945120943263133251105649120910799332723820777682259367751660176020510302691424195013120866077707003267286252450943501045805057544011584516428316196693008467400646969173210476931067889379220938826015630191674289163646760564399143713499843398713754678700827678244661876971142135386839564530574605441021982518799471332307583084809867885120056732477251605684932839167705366808250546994628210552831941420423453341484338850291624847650426338507973347989880595193506004224922094425031921464042166889297637575788455637391906977451866917118858448822616922223978734458235983271486432779954825569179314207293314174156067449941309383124320222944775887906545636694834116515999959931512129525780299695904890403308710561597370955578823419149875533561987791014194545262870849094790230401808250462742377340700711599498964739494359350357632390021114015692575034058476489358148545430837816328400256634454181802083936662507136646031710478050413133159665078615680627452984105605020178284531007347206132539616394162355296114335343883219173265183275947687815178173072741516746272191513702051406248042251455490544048164651842867915476513407849576979366570107401089437255859590963793858817498946199363891749940241566542500448612284791764946036346499966096800072268832313438189658591824797125627353438239868778587240772937315892261435550393065034745981325731088225147867929989999568729879465405326973591085485900573170260865679531006633607258990710338304187740864158871803705710853221028180445622628939121791987398723441925871699775720860507605870483942472448321523093660109309870930248374750667072000960873577768757438542034129407743486230405044036624409207196223009281153086443966026129745249230511618489356613167417259101986254580755782674016665541785640498911767341556547317132296117689839658635103009902593207074141008770800063604753336541405361344924218501109617109171746925176485428138793948296431139980339292666369813072310343193428475203402955042376782941460359173846873792601127254259732516264135628193420748459159240512661216100525178754948164102054946010903337707072737649458073008693587127447229572912396902931761595566571527152282679498862604921216678467205033587857853504740290259286653567073961602953677418198217908276515571331561482102964358720365855456966773622970055240282563864494334470465563896924737570570420550677216230512829620678755239513837532560381115013230170076119100530407162216702528622785126977099812671247994648435621038660462545172453106421708522461460146521250850866636567955676358477634998044995057908525428439033618755812460826593334759782258170504549374836603400961752510255176380613897981767324713557444196139552147511209069348608233620722627452440116122075711588624140144446566847507542812886913446062301430318964975769502268003724517749075773156232454449286801455318535210600336297454325162441249382393232590309976616242983598140246752786135601325816124429220918615042394881183419748782561263477106461387609310780586936593544480489839545511331710701918090052900623673707599877633000138949200150720647703323820758176359830622725206342325506252901046722895763054493692693170121440455774897173616839451762951527721551620213867075149596230998838025402873673266213720698878998554090016569774112609384684242734627912346961845887279493307628677487657727506545438239107663911201311416837309489407246641479820027684930549072667733947975006044509297316932448735524447517417849310418627754781009499509859460630087820112146160352441699553883314881794855299954957123007584594138373078314455795091489905101376554517055800143085868514850389621653351401095148888257370875416246676017304385800433489229489846281013735913776788465486261671652557219274395622413162568282142005969041607499137345132085893543957398089079913481395662818842439274168007336383519155429932414710081316430667346833009234309375241258354685378009790789080334753385895775031073718003029107229106308232102402989603357092465861827612346407981252510542908842060233202723271424305240618650370970507564938706718849501064704399160285731885590343208096267641962280474797783114462060060350501573575600857901532992755610034111670742893915089589436985298368959552625395080973775463332327980556272435078462611065597552991769812662879122902589472199929581520850236388898692983744056899179791187598892008047143777218638222638246925897982628807129539875535270437742996177430315901414994413266597817734466390409890611097752166741280514694651866487493920966105928401652139306734562880699684232684165945248866809807107309810712253409339367171624319246520919004972829385899797103862496828271413201028964160273345819637684451633958179988403659698562341869427783228099182400412424183988832039780287633534513208699314016803252662938630522467056832332179578003164726863103147890555188999738156277478172966491427455923103194150183974524535283425445474945683102175306138028002620346010013615396201175314342046653962971544624882963505828762836857625863366469460173833971448719428108064573944180919299783839654142036188352567154092509037865821178265308249574250363534448589786317529315398764584907923000307259321438700018059559154383159338270974521909640023577071863084366642929439112490060452450691775438577737834017580208908499077351511602704612130310280876121553093432758027105585143689421463965272267132133055620684962004248204242885979470003856845489430285812863642114268867453656900337936935606712164135051963702152343702278152617017237735420777775033334788311588106800492299529029208873199282349450332310747004359431009705792953205452617235611592844183440399789648184543804523225142359325967791114174541343829510715347108090649952257692742775345546723693926055691410588279228969194014390170681017401297171901949533027075055244191735563081529505991271760350767819059706450590177149441953532293604908397664727683555156264851144501184922923044266749204402455853879084009902561580927922957387895131870265494952907594721487544235807394286477599158442829138659866622102257590444973802469942839522010455185953185949618187036818045039814812084655663092677870881632571233430093011883970026408129317144910174180617315586463768417822590761389956394686045018055034371726428064248878447010792279871056244688746938259322946111521673577634359161225236382064365473764742689854231559283491607602407835685372112184923024710322041614025077847311154889909282524906342921154636768580215363085913363000657998053590332327527217943215791165732161307526907140931304864430129815424726580150617547859395907456154857322319124449818334084025264686206064338188621321255777315356699550377860911518961080785467923315493362906456912589941114566903030930108327771488333797245425253717418838337257215631011220751802988559520113376897258015008366462452689927334151942979597092644431053905078805565459415777004072948091711434582780558160798276151451532217424877294268161957839406789817727407492443887195949144118974973107012755591105722753990351166436027392850978522691772596052048128586372544928090504088532040665179575566214303910574188722564226469284246924966974750725263304718435553136843637676667831734094840139234578303550675609944409601576112747421385560263563106885273951352405538654216259652850006722955478986895840770664565771895034172174314340944140965701148294720648341402402321679672755835935740405040001621007641914949387538737803458417235732727187019083730226280511036451258539966230946612285909435602887103574231477387545786527019582235758119736282383585276590981647468375727964938294854020690968137448160264211591695243017837472413149637378166878477869549132195047778581990225746674675575981233000800663883012641177709408608370417248053580802213967954386955671814964082864707251180400125559693348200624932258863359729681875642985284489523151175800004004863300573691242340431427545099066568217963241949646230487110473914419235459516398497165809837580120270530728902149831993766926185721039129630632113244821632667220375042955913283990109061119133381913979090771449770862868062977833304752795057224967159068574330189102451902752330480524769601188749154465994441772629796066918783088840737485051218368770626043503540216908352991304240723058563152782589386660447083888644511286892450831812732245681266194187523175909118083303628516631330381689354453527931348466247003469285938804088382962350837700551649948722434786061737504030578243288204634291687217240148215887375287539297929792127889113349582790273180014009010146480293728788447468154003845348629480404876456606010652916278128867809244340925946859752230408369593075142936220401565960318322293063135635472776111503045751539397398681025739529227182444827806515893248125196021288253982585224648909035400427480004154071283830709969503758497186888726997933254569424736509448657656243948335852211380258796285183222564438666547147757987887391554010415700828234173239962411370261835353685886837654945477633915428078703284880091006916911724324825431299124310395635761909672512358022885413806837192495858907334554307381004010786675182875373293169151087288281722650204234009282247645376534633765925526815400018165234594149486728329770257641195425377103707487832333586674301233790688877894628369845621880802148191602693563104522598506547224251468715867387249536389784439099570683952675769098014034197341879214265485056743991956257040096188428257727001961759729170795200720748004366387842777846588801195359943216410496120149587027767593699187423315242111964845697985321427451997640276009069059064667695354384121722105664594785276203906572035609126333797287281494176683158357297391336586955360351731059488470502627564073586323023279471930711828390464919778451897521050207591777542691583293205548285577176895211234489260079610443044815084349808687644262163498391159958314966996350891599175285483154811537763577994990962217263301126651101080218901645034069143565348255972093837130652176958731171496932955258960813967697222401729915467066490432717786375364353660653290861198095843052971990135352174073489891810361477141145498296393526814159360854722564379232806715882598492831249325808878843171960637858355177457706803111964567305027466629508213149460534161611307072422893991625416641990221321099567532776999783006162446842711565394165380808273762122949326208555253912188050539716136692901314551729584484210469355120627510145308056575096401519303056158715809729699330616176107538971691532089353040296040600477372067035094934544906758403876442795678360600109173607303337617931648211545191720534231135885019740546389344254668748696127244305160459853410751070450411430763041434233636617026652128543020619348098863565848166519035862431671767182351238398997358636773415245721626838777680491379198256858319073918821993859908863604392613383710414065239416477987715758794219521395326659180332318235940598194371860263155235965834541603624429221203429369461244621779628179902891206177123284632564958628911541031521610776917492373980181847871333727217881815177356480323057010985834084855088388077726272387668296836665098012729031509407032006111112355300431730208588234812733116495054649254072095647492054030705061652188633685269442213468773760032631395693186079603909854255312375168040490253814377081713261920916627040014851633124396528555858520865442195998258972624021370342135429960962137103529624940743580148908198233783863000382433535677392000975222113917035348345912448438188242125503255535912882851305989152524719596937157153199020444058483244183767665246064718230398819721836633644837377651325009933197419616595641455217637544306413561722388582945389130792538243756772194546182455445887146075397930110236007532385905895124162810726051797760382224672365392463689509043595820897769859274360707088984245218314739427148185557329955920038006650414631152628712779011194707750633961435458173394014804921728358431892788927061044540760869152755680416309277169935857560948297618903530598351089970344275431702701777595419125738630876433663620636766016157180576960803763137413980931985819591860038136893111338781656365653509208893270117146746227404463812645320977041944339670047867852222382137582231124887213984209285427577300731848341430880671993981947377614650163753859940817677820140140025550647305503781466611263375840688268524556727388114712614747581517428651407301046523926379932285580429214004468994822999756920896695159813445076631395058373246076136966500811185292439849054689194842417273666158439395461747509414733510233032498309889132035749841591907076841867713868897184450614034156073576058782109325443954852165660676698601566124689123730627576537582769568848570467003135732456653815344630329828293407988113108480039196850341075912416700960578508692143098897989802292316809250571473891567919017988757500327946697602106573075247075164807669450038052654921312898764307733129786049255246419452159379650087541786913289185123489613213745370151754928413142571274960833545162905193667878095831748716507774107858511907117984900342389537187980909452929724986174640907540696893589780960806357570326461978282921467516424248253283751320338383381242675302204556540589805392212154008164214974428136780382060686061019074553659172344801573246117342683750631093557635383093158660969849683167156243656825327171894562167026045349174464852197115574421597271588414460672086538743998351481950374223227922591119014932012626284322862733840826000661969718332460484193770509543251610124518648283748566420048538618927829671162209933002061305112687841790426591387345210133940150605813414855427352522416780695882608460754743260181363151574015887528135940004475006466102101411106746478598977456376158964674477762103663116265207395333471263591800069729994305144155709762784510031066336094634407606800846180662753392086149758099338599055062304096062885719517201586093383584532212455970421189755259779800265354114700781892157795171306413490455367614231603106829065647592643381121581691190969479373604910073174457942673746148500708397873344007763756385787863612841881798663327266635793305830817850899844481160563709285217074263433088093277166414183412690405616869377113989370054545718324806760725917761823128813449003921868055005725825698949892951747650520460623904285715663786292658725110209289476874887614326550596929858554277726518711600092467818556728135871698505424017760987074118469675311458116416628992598692032154675627147553660407436376786643408882654303263414765010711160054524804000275815155672155707614617383586096552306698052877148389054443900772231781769104375513270842890700008834346980954901095337814428811136327293052940618783441644493962295210054909963153091980081256057580829498030962179770394927864162791203832921450435678244336188863409880279577980451825165444890975326486174803054910672807863707179059869347042471091467753566257065890122157444687000173075461494320340607507455028928457851082227850897497822724738848294778807246337378430233217966611589703810123345643410807944186735022225158127503440108167986670955634159343209738067156062464517180624275122963601522724175144298296712780163282505673241127627315995467975761700914001072575557981456111154894281217021730429789449732715960852086255903847386128058071557225858615160933194417843663178817588428861178053792784427185498502985706208847325873966553796316290636663025425889313253896073593041543516366446087822833943766070730846323062474331743284718593111925918350817927966108375381763285585642215191891922738989407558319824179744361524430906880613330812850442670574820553450290905676028823659569259474663591958648005193908105292500138135024023200715553158124426599711463846680117287110355652631104659090643798567680534362604527775157490801622330877025884428450245614736504358198804049405178698655009881460456333519493488849205729127927275178638387449235913010613623503548361310968509374284746370707307971154014956516126055799811806265817697627103686618602807907759925290364282426228692880934271685043174180482306032218540603662389473318229007677152406108341652144506044641653137641666759219449333214666375605807396412979130219163611304355463744077710739385147899312696609329088107850552909140146058261941933520575519836049047611943450432947339472229551089129305394859041971333850010657071302008836078685692053552979230240440175486687636298358121653521614646975808311363205862671434664794947528708514581261545514477622758708615746576299812942964827615167673432920168850069221059798109825481019257611453683552933409601832863268897056079570183854375069678970752571367130445684097638732112526160002505119500387801035782567816654018904896544968572795622116726030418534238590788882435472952181420439824600217182142585820182720681913118510053387251265117533997109597339331282682553119144642711966573216287236069420291830330276155188838938199599528176080672174327442892507239323281910590598007498976499995352848343242051858194668457345209099434457301329726160964941424165664708885846512067205146861557831667443451315104831479775125913358962289279932972908964575288980063024786382286852335251125372820423526638708667941404749316280034789858476507303270081968285177943174025660160682715037837051610497970254331704510784896389274328394940527389352422607515350766756001570028467932735232745654529983158362232031623199890674519589344499474857100308021376496848490808591089498293411882477341221787551919720392195852450009383315291467430346112765747344212831693672726455507190222058632464701781954730443942858515398950217550799034422079477950956906445595359923421417084106705265097690761168697147620208718758639588659800902335362798898624075625588566719157928166082420164024875248629686948591618142320272069083895038661040668506950473461046969541080470280024300909283110955931278407427719408209551934714953692125382293373515641676117611915188719861291187176920918414735027281402868364506512648206057170543519311689338598601655220888458021320380018254930692274762398868324319199401269301783104219647234246276338979251146104143907491237400448690991624112722488961338336718193495937644147739684997912780865463407847461562668144630258640368394662678923016519070004253927813278057149685700229883063568478904351892206046060162054382118524885491020064989613486167147988794820619859094214232822998740475406063027515474632456319054957117516340081340912705408002258594333771181772319459431470904420048371364150747810922396558921810994554671578122732608770831974486910790512157972952592375507710311784015860417674365496835654710139456731246375718958669145776486467960708251625655261314323238065030961077871029334894272125746115075399070932636966818520755012417121767126642461556124355673018681776317774419291153600932236754945722964199494623764647656380118039606855747726094172832771164438317599053531097122457013678765332169621123956191963408696815591389255915455671723762548715812012531444234125207060237518119921606232902337015203627811601211176811522993729676210640292857937670170986706965097669016306694614451882692540829181941323315700760297233474342424756613183474252800234909386789747932853834863258349977267861409180512113726002642908934654960571443061079075552705274610922652410582385686291560321812797830405779587349534041918614152668127266127594390233555959046903928320527351720277283496342411612517912507186635353178835941850289106238743399897113955272868491500002174706377777413086854639351993950266141462601180760365677827691271826753733663184874113687128583941148142323947512082357604572162308795564708840862930932353735755541989243856986288763673043036218037655412463879451799475188755111451279553840620286079482730197867467519873934435401625801551488014757504572026800886942229098121450735535795340998234291920690592366680790757383577037171518547423886354377316374765902757057956064546529342594228216495910268073181166725068339162679292892798769416546232054635298805756221840494945034128705601307915078276731541827209478834977641169649563400698248023399232061779818527795924149440474993574324161534214304412133454913689147372910913689871054916132954429353446859470839732700723740344740175366860206054658635410112092421570467513995159768435134810388440417082565026986706599903182332542568393046633826058892829889980999616568091906512843199501076554347176935038199644386909057532087819993100371019406298121815479356211768706198903086913401839776848354938795535348587536739670053436286332868221089752701317844035597857044917465696553794795275227007328223329087438792750459773886746139497545184104852987997767454709250844526919694691455763850739682524781200670838154145747685919386628702148703587445120127157314767963959369349128648488971243261676120040448035136190345574320616862587943843854172883994921426343373687791859741784618453921807032238191972734359064276953526055412706803683659751983595324316619760135411460355648055745154164886823695343436963008885656148046287326129714660607550648956707138942880530869159052007652831485734766313591922711051790315564028868897424236898116603956643741562931326468967156400084096905245725012066860839972712546245245670014142406523630583517708387039677735465176754373027781240347178940702633265024499548996391137339506398155227537403624059605537231117591777393346899125322172579431872576340615361410961854391471733921765133589117251579984790728441102228136399073452790202067528954880136078956998440907816994207323256326476103134285285911361767167720242543439029532144536987315348685986428270608987600596931549878881307443664661355693619417305183813541829107790582319442914708537419670613844402247269859963313656094522933373993576792513195308214810527823625807691897873726193701033395671405311277712827522146597815850646792665732141262810208868040690056447887855137086105810533161378438102076769132766438043441820955850357019778567720746383894258491722544168322536852077891651888817691267760519023547154770162798311835975020604733229800596358385503532907902267119398886865596105996600716573507673464564852584146662566513641837073178010265843819128262947831734259596890838757523294766598052240502777248450845207002268762348466081891083311664297198913535878285360252875778062046715426641412725787825209407604911255962012551701872969449395149397703709221782750885303425706708984277044931214861909757326029109218200328490519571173024344070888146847165046011115221219090639270831895138120703494505310811804209567542979111614343122381754870346203058056242652690108111265127846163260383034204862800425942623216904474216700987152856339751012039166201319298985674621739242067199833566876754150396074378541149305124335579101234693844633252854178882449250388179423085127988639240820975916135409496327408120245305281193703229434895766539219085789933658821562679656082756745251217030654420717496554737114673766348058563782215494258148051429827309652375475939607098870911449022006020793253809106230026681496775387716205849658859247364186818730949730059340965796031139565929209567117600444932135383843257597737792386508062244953441407046591583281644291264778640886271616835700492647258165254433139340056614209937415316063772326777501435583159803889188264713428430599463287553680425482551324517168567749599934189978237435119683892082231529299016122551886178385004442354340741715681332730699465631035713179231090659258288924289447432171804740353344514614752140804469334663441545543223511367317322546463036543738641434593456982427985075485400725749988860976581260071322288563389662054979060982159058349365092215141545924014238243474804761157796221182861473806870771599895072895185902523813552510379734901497015511850033416914013596734338895438273082275580526952086699624843057145257717352315961187916223167164577750911230513121237428703437344085237878411133199647821288792542306780639739064939952646436675927732848531124429962229393204479014707030221777753699100077213181014865901805081990054250025407513423013717507389067833576717925135762136204254803923765523852978986755090252516505288709503903668497072539322797784562214455693557872194974952635788185919290107053852097630917532539094717635875881921188996128526649192646557134858876459021250492641112311135959568456006609575423759768522510895265529884948926527517537471490796847883191313853550296360811207797951997904067849807869744093734903086021102538310470388998718732313448985883190580059175393801883216247234255031835785926637312936393576445612860137682772625521278628932870190924012643352659933538947278792137109215216310355872588497792408349474515071453667370018867649174976390078192094833291313692291666452284056757873101025635474580599256302869874469828738976254929987045136368351924303361263693176515081263804137657869641200735773424104539146440162307288255601427590722797020068523640319178847532703252974347562080829558001222437648724785914963828244451707439543193194378522974581715040542029814667851490864864541509763480133849347096803383012772748281024874903970217195908173148329471067153330521529239396245443359737705412811405058528951728349891749739299733737353903806473952169502369557864418210332231659429282236915968741247663985099418135756572709820883259085225142728676352700887100051584077094044916527470127907133001262324270527685540878098460983336205636353214134320353692613874843845953728551405900161680455211728189448458048569695158152174506095173234102926907035187269691025492665275985784846423923032272712557200956874656396862345869311740851590420626037569597276421911637272059856652237916823966357261083385118069864599293172548323163611780425847131531411374623709582313133277115000080265747393182540483391036339717654320909400191831903691241703600989638647014812756147635584063571616861931673336985355076791286476652771566491327024060528051996968000866156622459071905327853729593974035925023183864281332925135199654911120435565561791262866413461133446360863586081665042339778621040842738691227127106241527709163068269217654454357066323472559141756007206738691225288867930818897593698837613947831980958453984312111314362913167834033891208101518561326813178253556686676120574818054240363377813374956566972061781206794381704797732382728758316792694020337203784901819534170957379301537103004391718053022991148371569476691282093046797586342011457528542521051104701971270164765599977288799767325519912216093431597924246169575979381983710728062788219643022501955302645016083258258763791299684111274370133293784338037518806237766879840793018406474170388073115266049425454517203733006588770831153863556675839922788101649027419178697632348724804861746304633838880209132851712251134575439448534239910063080071929060050764511567038963458893826117941274775722900059939352255587890828410031164696783137231364079651504401725963272323563054876907090526169464158431771146517776744378131329956520080039231951316243229971787955104888399489046771315180041676607760394598910142117742666185923405601725584792492274379494554434210951884886135072910588701184975387277074895487730474184202291614266376803796032705123812941382807572188611863014978162594256405565124602762578336474078314059346708380818275827219481567710638441539789605829874762138119970631091173233564535282958037065025309147315272048186161285820258403290325882649148320847931316960076935232357316733325763106535520306181150197862100667192606071770387318596480628737839917359184023108183213780007278760555202566912284739669763019861865533989840770327797934842287050535518709748169092832825664336043417118498500048846922689543759007785150922622024284455407800662400300929368002648694147814043891735228630786398127141927597727922054893838708715032135553553939313136634286361821101791595298438756311782228985747045733889316683521849885287001007165179880932881000451267733603931468766849518947197564414825372388189059712349232532889131400714635140885045146777311154396489936346485197176740721722656853499769984391285807917062236225012906535305719474995316369618347938176810583422427577456848351483181086983281046788436579025896394266091314283087211354555259689703998838232685844115438648368984495346694484897941939463478298150079752232459630204424203252571773988582968737473013881365164797047860611682481727959098200806969008623352063377419969498157051435632823706827085952362412437210463162173649736715340712048988117062844950988829207856172107758851905477603314428817913442390423205307837257198136258941535883892644473716014726711457487820659805049773220949987780171929983906575891632582846565407574374142009298175101959902228833925855997015770137063178904868610185214493168429808567327227467483132033845074589123606705262026163966233006744041161623977129108961604695559504420632502766187635247989295776945472263890938986604293016225610575852606906727360859856269451878351883365575246517367496514233826545904723551697521227038023942426200081678213912495647407943284059912346936592835716833183139884497529206282594582122377278272449291777261950738564157677738365496427122704421630541099078554294079418881195122490815658733605266513012557076604701444020726273224936599548707229847723728998893354458056255349322435265557786114784477233982572546505082610162155461159655752358376776412627348720762550599856326597355578822960443011203449244464098263946179986837829037282162546169616291710429185148982176900457972576282396342025529583477053987466616194264428578081310458685562839166026577792774089534393826204992675268174588979561786140530800963262571840603874108499576458014351072854912413954088469779574589137007812130968902290705566859942485076573916023198961570019825558347589079098492914579191686078481989394821087509477192617752048480418941216536352209164212894191124516437280365226506514200905675080479451029827654396359417515213545964431099557253975528278417999449658362369894639440068680801644898439017496815128002644845939418695691687714454476558543153782967066059880088121417980107643634448096048675064423891696332115837145611441906583299438403136697374282550692768482292874884557274411422586362602699421773415994628455186711507488875559814186040888728025300844526325594444075628378939176876958897669730526119425048041938428681728049187293657123443640161187160717484504119776945917575115135526137816845993740761586606279120724521926914216599644924222539408879679282537070261872302461114477307328531963908883828366043916678105070696294153966298785375827347409412869463330982395136343935354980557130418705042940867613258017187215091420614976670033104251307944587045402296509552174030146255971991992994172210728580527989806258042004682118005388639829388426363441342927532618188386975005124818267114550483460559029085655202444975517704053869662742232580612891901454241747749561771883981435961928576190829511373525384794032971392127797992734144778258978444981578198953423976656452223020786076569820558344471284634140284064033788117190556778099705309516554338292935667348451602374691026696154193938018757442650105004981660926470562180091950960757026682724599592272060434099482263743184591360073584601439081454554530361187575952175161935955674260002133453396321289688434446745256359190325505887502933147405056831387492303298448789542361172404475457840659362654074330362043496426561736715739601898390713797926084423514401998434924158289803738903774175817026570861247433730691585161487004752053922344188721096040114311153534013288872994112688490414614590707962630942213181019245279655494305561174044345782050869118547523670344140360120927449426456008425236057467702877891780307097807869649309645072788670468737056419260154000306277336226576869819390665210877569095841034751399655541309675191772396530578245371866362129821295826546506074357875041475292275995558618636547125327010074711947693710243744596207237172581204174950368740898206912345818618347331351700206283168913451519477334007121847599004647349617777823043787118866752877203654754636944972509969327176727736894904987883896131167840433088908827468192588101262033855327156764404219163644237666497048859811172081740248315551534970484379430065026244282340520841632535082104111786239870043681996737129350879440131825537396676656448306170910738878800199437554317081375946504058573808729399808921751121122446683589814399260445653814926503228307783059447561056013886372825475816854971179676988589251589513322053773349953845483911523291527166210995327669387307133547872408080790868316451004056060034268348687102442814628821443956928220351763564027291421563700138570162955060339356552907550319146912519950599939455815459894125950120647840124911410354847856431592103750814229334379232491943527510824611329132950236836099448855489986866787436553025222513719814043841108646172772559155832986456233930701917534831947952070222579791689214796893340122272952683898219511501829258030808595748030210963375441953621987648146968524590594105265267507615059669444267798801644492234362747113337592208206371795091646689017986551624675223020064754955271664416713883003578796373864281340390499272028629904625640251577440098205552727455506742396030874420057174600318096010147234315141603066045731799824102908890794278177005923647261537080440797121482295668231457566510127135713286941642007434892230227618140932032122240009456355216240792869637675791450158753029106876752713931903897622696350622916922880282036818348043827472840475221373506006250220775193143595088577480300033558669180409185701076466674297839171190274600219891587710459436743069705503416624401157546294340851853570751996352722544989918722474687526380451330261657481185263646835020605682246874986292903504812614909741080490800849450268741949606673024613439912224198336993057009229359053569536687568485960822051868985613324113724867010620681880119120556619179975717436792615030377904985025802168586979113663461631443446567016385808531811018448144715374138531594345752938437940643049850223827816740289531434924159530340981392569398305098960436485536645524350212046822389554621758769689039499067055991620078826310076116677636352583594318220442938579026613650193534045865557334300196877784885690294527233766378549096964255600668785403487165388555643936965508118537205069140023338544189673462491732322713829954879686369875970881887918500398058400471890380906535018496373772434587112299016358217577895003052818816042361585334782514403304574412856868240001023986912786614940565347308328940038071217154589855499011577907808120339363490363693945145430925233554795869181250005543508012995190706061133003217720997156623169370474253166533257586608758332888026485004574482372461602241960633272097259801342646805734893132606172702311082214870442923209196321157963400698227156001249272593360543460894804752875404848912070662657129598484519180301497052711085222181747352905008882794467494948482387067751658215207692488651928145843193270233588657266989243022897287482700355358910086978091784759589630526368436335490379105973422259480279409156427000413029385222929213730938870649871189425037800286468218780052109562557424671005635490794038444226469037558520171225696674925956494202493413659956202394129584976273902527400271032724119973662175554492397334131870100807570658505060535331078482299894751278355511354365547583625018932583335125156579973917600091421651869351581806499181462224754127923931032702401482677820996102436758910196593828958935574985138524537505513162900288615976177661076011468073164334974634387949832158550079054382407984729888137768401856035763936596501401127921267855334818608726448572369014181579600479336541114876051393039651824523927751610292718683358367954948591086960498063123400807630559688006567053284285499921876705615577388494527175901039601639770482382267670419093239691156620420535653522975279650495876721433531509750320273977324636157905197587068299986311316189457160055308403592753553187858693267052815409190685239922906636300729756300904243054110967349781271399927121195932154841119351421489767736388328770843106713934590291295291608094059777016259770111715279686643727084754742838506076652879606493331785236242741252232488016856555336324061801740620103932434868873147438613936861149915388307673737658053435768477450107401298288131259477267040307058874112823721352216734664532558035071007970027244083681638295963072361136697266463764020681419935153845174217269730707240056897509684208208324649749356544746369976314503269196242787385617210507766860686069153814381944408488372957885762110475660308196822960158581923279066301983984868489016240464903219369938597646921657041353747370244309742483745334978097364372612458684382377587483759869703898846005165678997160357044640971467891188243039578239241115736426647667138707557307429879549414671701580642795143183311523156281198366734865475012054697241138606515460732052080193575551254664042693046356709387667862298655727961909380551714391854456135875046864584836246483903521216387553464020561043312063886894776147063208362663168346105228536170822871869948274989414544064338698897295153847292552045568894242077253656275144373075104353939854340464097087212474943949427685428224505602144565671923095610049585392409562153202426882481904291563392177787611641786374093114312389176754772128154217024521460657115225649949927862705537384662187598108351421805813076035872976977730204180886899476318154536823926694106614175934115906409494222199384349616061470098661498628949313874008742535819660800898712478914624156345128644974672826048675455540831837483641554185838361369527178516665211596365148075651970216615328187891289856517302872804652724358123279376830420543039868140481666211874528827887793614220609560104979429362814305660514801205676497092798471026211238049452713254161448366320397997844767102560748574594332972836841843001977796937466736898976219254096074264456519676905985987279222553924650800655165601736968071475470104538753052592948695478590619609627929691779172847893475812924427692364665220509757561502770259387207113392378639165743789947506453574969534206409239136773628196974996300443432696052718218113890326386329251356159701152182202614815705054162958379245159335650851387603900132588243694413218911561010873802534588260700495433332239391138092794219596424639501150530056792590079416696945862503876325963152401831001514753976569316674175014680052133180842194094860818314908034517914757738077613974983523364085707840722144341943957562621832348294021080332545387746401592565787335261826276171705931362384383423754241993157950147563353422909029516217651036842542324655476314791729180352715119385497228550760413093595224611505078052333577546091778286016573582348802515261950143707665712732495951622567850425579442816701981805354876308658680031741296042762568626654657095574265093732123474191761715015013654757822964686100180821604771988558993970545377888386853412838638658533278142827555784932024030242977101421532345579409712888446683161878952980987978144019827695871273083729839660763421290075959099249806410441150352906386096318571834627914728795808862720754468852487790227015546094340650748864211617304043706594392956624478214433234656778949179028643025431233653804090809012681431137766331369039421457340157817555933241042285019366981041713203962844313930313534375071019879745803646306672623778975134062796943123289372150589911336891988153869430699384659270530388884865416507210976958245224569222838552230045108364358360619335544960433781381146220552730217530624350593446073768831128523724723125492227012328484940629242967916474230753613182078151123595330555359017223645039419419650744719243342404174504534145318392068665428337660288547657683246844909512280480772583805984751428051821430580624678022020160326889258398076699032692159947594720524204792881784356554900815684744908377936857167536705808097374663592336179033714411422359316297608973823683637562792636786447877343685507564762432197191808064613075880734262456199160437046798081335703417337903247681776544055224000184535059234243863198529950665702449462742074591548052103345954177394592487603966414722845505923677088443080313690135140551680450632310909423866025927233313378258494213759251392517119094789572973895410339121748342725006419189500385587730282387406328808631846424889725984802296694779080738809816463164928062573959236637425375262395956838363170755860595507766415882595186901372477655318793073011100604351824778303445540644973408230193297256652226541331952823123917263005632534711033196901070218938359085089427722867481065852952204982764597323755296783095664818416917658692600519156757554975417393378982217986393945872451010295405001869158860139141448445252023351824035357840175642568664934402032400375087437831372618165190512353475280187014091310943656889397408526523961690200463127434234929681509321303682952400039192360777190985726051702791144205891645157488226201246054158674854063794283773424990467700264315486794617065005637072605325320015653037126244440389163877900911239593156531028362047695939545899129257436752663759993563420556847331791651892464549561616444697292239544043092174832053876142521648430631130474960533962356958039807544967825300007393826542629608386510057379414089197585112535496956665094383890020824835971549064334819991288520543576520749974173075231950845520133978208223848866730064789388972679376785731080261498745630375727222127239233017710295623378585626064200008485908722183151729036379385336204298050157426937835031739362259371009524358383761811569076554210556422501771904680195112408555084148621045434566413910893283350330374678157812013292704286867515513153017605057219596011028964593136635458108561881571180989294583118983518699598575898510220658914088627657962779220725128484685217961660236446621042272466434245036849833344672645548623114032754455974944874872754449173002305668112842022167598855238076786554504960369730281008941951527787255336156896654043169082611880447633389878936627102671902685503903410602928377195844904706569976562610574824082628301487177160366546231854375348994662537602603406594010108648273829051076205057983816284274294482075087668151046496847534593617641611313438688077895537044646679447059976949896507574247751565552204576048485658482441824740705714648962671863573781657835681004617483594260181389922048325769851581521485648978545678215714666166238155602383751185825009811444917979191278097621393144189042197407797143530257418865818178897969315524043793582655868968222598543942948991692930353962665940669221039259104801243905587413302679360625137719061263485227599930994414413265200238642868414604863990081428723740410828338957750602799631881898977536019444072521850100535859915854750637609255350304145968818140723990129398372981145617147454296676597905507207515353274904755472373406335242007828123346041081961817987760756793592435336195938188847610654921541503772893969330243958012878859002791075100924935010694191141438313435543823528498457713049962784044607374062990980683719978069336467931160884214523432215480421704284886808319757467393548920092589200380841498301422328428258509343957037768594652810433090308697040831658721991015573280988988244122132620110732628649705485211143628741089407289760059997755991083504720399113655683612582889909535566939717698970589187558660129137969436246090043727337446599968782097387224739794757737422878958572685501423809129188008180792300651061590772646776513298878579343168704946659876195051315573250603831349947998619720301954883547318491501840148412502720283931726851251508752975518114528097539230443537162842325065298524761940448701770057456822173340636143599561551088928986469985934814739614891841941492680141992839963132850222567566089273948603659466486189785478890961687345493366919976645671320805671736002927539156868460292425297906057245421182818276765812426535902714726486238980635404796654590695994113023537429897431952623532280099008496962858667887967020829873111543152168656239551843417272602194698871024000743037541761020267481042232687213287881497447858195614104953220464614937133017914244134498094971160764257481350693364804490049734156917567262432802288463831733075999988781812749770550978180900383373778097111928458013779417758165308903287143612002336709588770817713527892805569935897072825580634807495650559655566046985296136126421403757977017760922426244797360391573279417766376052739390287184856018171176499880391700849941845214443531755487602719944455082509885118117006157164269767990344256111004588424263515582282960712696180571775829320383468305638272916185149472751713512234961334008434497894274678643587713309014997325346081745281685720496850183951919389005098467625439543720590925616987447904131936605578525137250852191329708029293386056994067499200204206570691474420258854695885171400649204715032477445920689731795897369660139441299104020999370355448409379162603564799415258796307487975608727915698566701987106471173229532673385024987849104756521098576064790601442620686587442615460383312819722675631227901333996128278512070485664139139023130366795725924916045228409500974081348123838381684492458812672315805512600916313435908406635368074097887183305647477850173687284978769587961330689291430711252655852273287834891543138597564497045461133203169065591186659933420044709463852987096544065063075982837466044911919599760787049336469261833791707628872551689926878771383145034627248381037407357570468909937012426515078576665280702230707446387387858691245832354598491365777140475600408931717219494431729130317439115464329968026243385001689454096556255403768108419769135340108230643216481889867860686358369103148940079258514300858240176358948807789807461396054938520264193882065793445522922301381596444995109237600108857808080174537276314329213592447598868264652783126014269568372130214909111839260121617368175707580331072434454557495994103890993347339394558327906175502246872413844779609698239235649605301127736683220065106645844081306140358504930204289615599289992527119353087608694788672442028868742080557300163565101136244331316396912874073184896163014992222191966940436356501931675549423182949345648786538756447346204623451638238323257025488232451101545819315106084019671455419882268937609255390596184059150720264445651318100843706971065670872908796045606148834359991790462430974785717530349674790111655797421084560561081371052737973241893104823343773860990871143617347958623694982068528458494449275376582482267410276464737529202465675220862326607499775516276236083777283861189867809542299208675519804347031077126824609980291920916733573588892286405185778079527383330740817418095122679789854739045499533839150719006454699661531888899481763049017195295418113038622001946255857614419707388543109252319110530982519357436927158241997609872444195744334899140466498614192577692146455745227764714413968729262833904514698564424248806384577864815900352809361250005044991963356851999689401527327843879240874335666115049337551175169952081033279130981287690613865180091411146513820974416508339476078124148738178723495320789727024352645060566020338398462690277536450774379067524248199742298222253667922820273484438892712627045221453312577258338829574843444354077955268955626545106724365717600821907666050752915906520350395814669627853320208322594478683861505166258701451574947248530226419667440769088748221596163611389370719966114639441389597698455812648483589276051331507416214568232659317876721412387312864462940883985260710803031837880928881175939212542904086630871944394276117256761320159336558639764184704075734939837684421760372191688728372571236321025496984384347684574384715132920276141616982032297514862306761488617005380160434791934220285584657544094089662175141496548046440157474262476576321036868739038942028960285466964196404310405607887545381188065985469109521991182290001507349352958530405007021254506957654878378506348648999565751581228680092843887135082271771317059697500039983738577477856443749260980857659865972376832356585932818351748770776059652447395620126581415836685871738598064395949839805847248587865720579698066890260347509997632763619501830004722183061948924838617324054685434821970143202263350548069263629702317720685564597744202126828512464118126630813496586683723262899477790453903053179347245499519459988890254210016775601159811817665986341102898533497343010740701914590415871240210600062089819234913113196084809387420352839819613675539319811641947255199068002483691866806984927465617677854902398464702239662261222698489423090175823354510984480004229936827835957879982380649989711712244076762155384284203958737409676574472793118091681669488296066528221015355737665311888478662844141628206575263218071820906392400892598640024783038649210353766850261724441209204661793300381047702407024120253299378663256185693504861488780657986499368010374491738982242051316994918734827827743171418893570303431168512123251214895024599895738896144123901673819213882256953285183682074916164770197432940627498116575679676724897127210226291701676784459039363806776075400281655784222859733947054335592936079616183019992428716108775668437533004721204264100868066399650004716267285320775522842811410463324180726705979259188244403223134615326237194659853109580820780903539084396556434178076064284433517285027406459432176471720751090663113714718347968050822395085978215414868976166754185535700991505356851291580446011546066292607660137735231171431888338810339689546679802784634717910739287131821902965025080567789416419604553223191575462297130918837357456673207030644280693638096292435672567420295761075656251803610710488768454095424882064406448251832574698041893692815772823149205445883471884293111712417651258736051343032714332368648541582950037330351029952500711493103465768064279849157380782890132196192310801286781365066416793222757074010818625833331836701468360996361926993541113264621003712934367813151286861890264470121936674946099819570339518966864076732140085415394006690857784609589987979245259563523680817511587987838368376739686591504478265576728308133719561907967032008289716199016449766192834119181492757558644591124132379345741640300744427596194331225858911556804465382661402522673554435712402017150941540496419871847206575287858582156084860177195781298201960291074391394330388011283327929288031344283382661400545394644820507270094162706003408541713736863456173103661038632216849740788519846366039692080285344372699291920073490628817037002951000954836928972529273206017248726191250232170975009288345322750142092891387036122877281149949215867413857137977414841263954777252170631500778372311133320293319378078644629525515903394122899510575830480265220515896787911602984662510313067299885654597619132176916952449730402910473762509677857825028129098632168202407593702404818919478841778601875942453136682559147269856513714881507033547684904486354173463777905510834941912610204069514732761083330807385432830627698665513134754908045353273004113471493646347084787034525077759696953669708358421143695133070054777910444295463146493003137479342476682389023176783503967089162364706438635805514161171780061513186878848877661818167471552347243633252024670303515312056966831294186585015036837719611318409250968885594074354617337297884696037431451769844057800536848879294097967066980789588706201424561725347794068107020881915873459549485621795742554113103400440523930159246234719884663709216800028067030395386096611832800764548582553800534612697097767324336894510669570743325417833751702576406410891777301158400173082310258687603574534473799900033090929019065446250497392657507447872953037490813156809405488880354475206499101266599135653794153913794392145474319368395773976820418276293782361934866026225844554280975968218769429067782050294160899210827686109266249753147953646778693888219092684033792946638924161013703342303315811854937031813787405198346711561589137854038405024180756627460517760683534773192672453469531548298972789412202373981491720205500447995404454401516618598635368100219528237770057229124036289638257846497700007537039465979302274841311508042001466491135560859809855994659204814786033564983472129193677806424023760744716299365929985871490302484217418933931558016664488381907864712173434292342864100203239698671752747842412008064333988271506901782364743456568503376253833986430743502695911502718911095920928262716528790933468666113277791661809063123036721467414190980321890307455022304633301764594566506162740921249875237534339314098637407769717086935818926372387665662044482569813471023599222839120414112159199222669020965168746943299383898096926344007125464574301736332423439028962860370868621513742764915003459597250187881558755044244598767037765828728238152948235445200185056635352054815030536684424628259883829407942727302596811198278126267512830245042345338634207408133449741230103958187363745548504406469919803802847613676677158583308800461919542932851266641040609679663649861580487218211720416549396699146385650582398207908393941836909003796588098550562032750669718073820710733231449125091836224530243333035342041345996104039412284788558400962930965222471446607822094374480342549917179551325550020702968018233722781749962573857727772406091436186539490829240440937994364781423842647372398731198526772130227463533958082977094207110642572281228239500556857174871057139252088157725342536092211022335736943258472662588132320071310603254256177411584100343207402724861917073846192502688969636187781783905068345877647765682822661136114107304530693843607781631889659885746485556152950485490549457232360512085871736206364764780860709709819883672780858682770499102936942891094214140763383977883157872197155206237653404844989517353965320088410591366782706452374370957843769287502210579834063137801175222031274387991784733000767147018812004329047035263376841723771974073238667934689503802654505607310552973796002113285914677301524666056673637128251653234935719048551885801635021997624361366154709580383170609876570805674305461135006731037963354626653124430761184150585659034845830492615460557650051737381928681389897775058459966168145536646231951990635578657385385464326926650465455565520474692144903750688727558551186283571543672742038031821810528233806907742317838056930302094142348389562224125213221746258002032663191002456252845425087149858887163476403784485064229917691254663799988710924299101578235554169782201783402743360865116187152253392022375167677786919167980164343728234421817000171452809930375417465510243845381406532254337368344230010409324003170232401509935698648700740947906581589371280777445685998287423757521599840136936420134566271626943409459906131981380610741827218347389423446574399081552004382230363760650895896492915444290897437807664491642584879645425682602156846837847725850033617901879404912961846348813803577337386638471691587296915657731403011592651804284032363748350893013771499806834450505821881182177660162981874358770522281720922426668101901397767527063673228947098372546652194828140887578969910990201287782464570215945446477377311676610448351994530813229618353926913654569914386402728138247375318825882189171093391585869661095228639965510887738051197704685093451549355133480026620568203709439187874907977986010364470436056682104625766852030879825824471316753921924320081960682391719335451077293288533563556791962778818943410835242361739978533431247625453345249187959156165353572115764561347014539106968185654461812862672354316472835391184088319636417245586807338124420082135320626438646998509523556884511769896443158663331497206624268865088350220820389715464702759964956295535946328492605464022443802752744927953428397998822619205780599086084082895641790448443177153217403886378544897449781478889682054651750276254143869253502460727796732161827755145971580670066265369130770247063572726548610450339101046502495630624762909391573716140362831368583860832117781681919925918017866039866370393497767809811050213975484769244552421737728417564769401365576372802899578265942518298753838224699180770437664019090995780616782690614861777808104154349975426061886798453566776296153199205845059438335576785437016980619578626533817195821266339894125578441435389577971415704159901372399366319097323893690380884656708447624235777548361693413527690230929612428921970414186888324004558285462295787343294335528083945496492278602946220435800926592856723540634462653960430667465183869123246616138240251341044790921933160615318751609123980431674542007818656844047473824939131150740295239520229904504749617206967192899033774877499055883386505370090298148518671797966184234894361732867820950392644723680664494427725593772029223825384926798463782680042737488412398776771451378993138537883753521230295591039679702620350661725581147474913514336374497015275980958566148303821766259502119345866816736273583052346962076789508754903883940240746430514664506442013996559622462369070880508648077933831525376855815999076708749275430185298696411711553165498958963789413050669812896422331997524098724490828584991580754808384352289626795479313511521248715189660813904537092366333598170135945358313690146068203662190369984816193242784353621389584183560727108179891047298306445425862356822386465828100576001595979290750143973093044967398419728137357712971995200685660210664276851151298409873124373663422344322077864512929501301302900306956032448892756782394596503751406013108950467332764288986922112580539673660961200403815295444082471113632056267881792947728228555704547309595459870022414409623387890790229289551764897804207075969344578990763310423091696414693348176815679225709984484345466195435686385278924012102233006661177221537465331431924158164248890566371181781877687999642210603922312321115936878579664102787258338756331907632429353869510368871961899867366200412989390662886400859939187741400891405798496040835012680671049185802039390665283659099721919264108407036127702752926486187512990111098440527983196802317066758119811350583116574112131628335012334276980748432327565696940449465284910544963444701414718951975560763334943363592180251786110110053211849917423322234670830441745730501179608857030146884526224643785793451593018155303069472537697992716928859946269652616051948298525159999649819650062906393035388334153951397717465552221978395485781029756739279258186918960305248470106762067783007311383886242869971118450227810815014442298212409808077848490037913656196526327091489310602546025262891224400144774422405220613492786077175644744457476134001807183918448574149883623241679438283457431255039966656301529319981764264371334252496965623316705878722792870585589001494454448789195422638765736792852289727966151964163205514040812132257474621419510486255795393322861271909836790415158111156193438208265945816092501474301415399652422633327148101107882168916916219777606065022596886538844374491851504083191150001567871160962659348466695560606922350766310724652629852870698885852834060573643589231012380792137005752039400899634143057860341221104313578638709433322992521642425455623295836859879077568561001033260016539982124923307461412752840459438429408246458770053756061372774141654027722761384193254831487893775611828186841300139634268896955938543770221674522222507949751314235761692569157293352891316132820402919309456847320754031831157474959737884181764982245250319290944980236005239932152610736163159232739694582806658915496654297257886624736747819117888363681387273946869491152105694572496906488198291519173420618031424255613573226219405670394347477204662788796237221322245035405179175488482668732276696103102636582794982605003948616596255255767114171205291900709963438872118519776325179486838753824430782346315539877362394343421793502162423667134653061832573692009800410587014774377187723874485686072250339293900940455625217186884983070810015747896003018288868678121705976488708215299207249435886973930994921347465228756048496371925029828596161809580774316338280987018225477260701829794527920355104644289448426413449457196933842652372366084520118230400008390704881031391793178506417041449494523103018296255535230424026400390479948123194452728890580908057160328125236536137509883737091199135266619590719447084121542812456427640284950364121893185139744868373013291718063472041701832504880524051833226370147679606664516244203159366433656976165630279992755687591815283633264746881995653864736134282209331819649898491522919772601605355062974487966993122331907431734078742743077394108340473191757235862576927128006864245338781443558171943919662396811724297764723584700181547873304487792886604483535496940562730883687004643772276359820901981330827264632682093667594356710568199028455332268063454130050601157859941075299096036326565733815386197895557673959928699736819792612826578039519233189716852269289052801955112957059187029800860393398234825992952953963393186298696378157069920101895143500749647444701925858021471528530707487255971147402607163657715821487194087122022645330628757137618008977331339915290906310278975735769112180231479401605037885361098190734697266636377437987813917164565183497996001380081492725058289455245910875174394365459387602385811156115488120545168047250151512617896264912783257548703977832668598928736985387172078628224853625805905840392599378736828690110474296567403638432032347194505318173476163450165601781373828621790247661429621186958611350694773941224740423110852731805872022178164297044142048567311865585784942951647277662252601415627394326880633337138459744500653421121053341124812434125440067849006249437445850783178745952974109176529345519832335789178062815379466918401816181844894492649148102615511042060926887589234902272928300857996712094013698495518961237079287443108349634259435798455639826678500485881272643002851398354782536617329124132553782108862206266859437258404807640674399122519681750487804590019696892463791044964669983951067213628596755089229718957453852190202676777294950221819413143402641121851442648216274869066713938581363855201293710186391741734900307767352033478003840655743172549723388743467109556034375263719763902882685434922597604432983990978997869081151748290654903609875375800944783098191604370439054818791147577744115138155411048201017429174688409623748694785575717500932044856802604456346246201980479562524797489201669855831612540462929503419284387288874989994048312578684297859349526569152936734017881298851600607219508207337530085236809680450580523567618653384396410073290385224636676220612983640203220024614715451115264098338022145411768265616148738582262800683854009196084881817015695040864307501309359395786946096277272618890786243867848403562459051651516504164908395742293334878643824041918257514669841829953768839475250300982156917451840670066144886443481868967727670718229988440027102265240087980532454498005361088549459296510201917578894236694608779524278371975300261221870804450995962494361442958866410274629281617242585151829531452904570920931574375983491599542789308476058751742140045054307103091051334984994654614567294300030562023539085917349492578958803602081041045084227741499829155737430037904106386383589574948750954748178460529036812477117412253779614714635146470073326488163030973716456309034924049376136475763913607108075776538395049226500073484331602525120064318527588647419759928435977164384923311665088720123520082298470432500386394920909424521146463534030555206084709937036584926022799482819857658027369150725120458783951758959457156873711645776847797980340579666746256382409960134056595568775913597564864131834086806574765005868050831678380639828918752954532061618840513074241926435522377001685253442530387123868392483890394084802423195784266593048381717354077551912149059102965302410355938517373431681506705804036105011724934090781906125721733018796725898740913959481535714601271326482696941175901841052677694424556954093648198400977279717350849190859419523026487729091324729348029993488202222553793596464642494095329197270601485714098899603096891027196179722576523688578780412894493494403495097099424103224893510087118283588381792223205402166287155650109296727559951367020079425728568390048494124384757716005585541607549682034779522808332540246150877563969206746384280421528268726303844819261585804921958342151410760659230937101003253524917134900289948931069027269837836420701129800271497607786913198431407571210811055836749369960346123714238514915266990763342673152475014125381940702327468102413938492673759025579702750185626197844592840950150631319999981413506773726148646761750369877070627920253397057695880915237601080409856417849332245173199096681370022769257526752941519339474405671527076169212551227556793149121047303098760576595935079452560959704385129971131734774104953425842423748978111889528890535248394891026327402408454692799379517085232203769303439807888626669028513084292527731620085399400879334232088543738392101987520742363771006927494473970655753264910758870702827070422352637058638478309169163480484690024889076522455983963237527028604398370539808949589546241689946170974257061413791415039698746222973892261107521007700906529587002023380694213160278932508697164994937978254233220825210303840451405440919200665557922874251990322478956430968434040486151874543862068161249673029448262523121362089897756067388219099124467538700914886969209004483171298356402220084587524168152789210423306868520379009142170324528629227472231312718829182985413986723726136511507189141315804224649245952341295582966164191618082662751070041277544980845639934817313154976670594925047249395669754204473474142466143072649302337093242147068383012464178303929074141892720900752835574460321701525181640684825720852455075946886975807105005794772911887634017850361817948947579947252525755917168975590704151720375212699389927585442853565270125805013491511094195543007459576758239296817944953569159623641337623872830566459849665511327277746874402118821516566109609068355106025692107364413322199971454178671007254223557959625292728818718308820480636295625667393857075608498994782221372443477639895697632301994442820698072016485295123152916827027396745383742438048684518081759232729324548392392451999348192386456862941004392521199607343099650358767275129767410201919088752380266412895621866476909747272010360459385044192150182699172686847688874160051953015507185756548069781598545211873710010889427883939104607153906307705577603577175309799905003146326865445191755432366519488582088240415456690986450494324881645206442569044463775401654139601477384624096625765202131479166283971132019718101340659403838376483106223738444268051128368102865888999431812084973654005281756653398773743968315164110204625496785838738274119535329446706904838636923215424451889874000632943411958720355897296493810756137149289932558270204800956552378416277573697303390769498994165483661619259198559626583516655666933027619093378635156485109437291052237147269998945868605791221785021550663322418798735368904477402297769468030088886697342517993882219092655393799907109158610357893859068321511765591025713283744985582586100857936755232895783675323307731646971554714679649610626276553106901836386231279245004202412039156063909072335289976772536108706339558898174279185510668437174734106525568923554929763334562306014545008662006553520783117163836678421481825868432953752333596796772691586775937460735000482339256501390487903483760213157345428214805646961660351004884428209497117003968062025879660821885625305877067337288577524232866737103037251377339336630795625868816407252651579947333986064603026972399981796529826831287984138668423702702224114564688215617356947868749649305228725341088432759671163762046289633549754313597873012131940796872591925183078113632021311994909538597509957875525064886130274579575577865009115992031334330340730520444368384881581095976842733175293822144754619794604379735240742634233323027415011100314673071781173738735077159708538997317587569938805447837625736301051856160893038515590797400166894040156258031425221173026914002193885073391736734678251019462541701048659309077126176928549260258424910922964218319171019344108397246904774863171570742954861977300106639099865298555097037551974165539711636819281973380293100875187569753871540979336031757435433354852770594906068048863081066139698545108576955473266128823307520836329915204336529584857622796697919093510662524775367492155260707620667831947781043074361258720221786544905745445344937087280178135280109917937530494098506388577576113286979765731945665352429493901843789390094195429886410336306654544328900330209943096376291649164424002597385078052874329015576083978747866876997041786745627056963985725731482800287231645568109766756510762098063185758223097821917285873860783496797943172595754098908696706707816311001935018248125063262206740916946564879010341173682644215189264730146883010404043015681185830634073707090617911426169695071154145614280205089822978309158523171148845562565087623778733023049517408140781304525693369361309474894233546946541313824078171654064439106343795371701278160892416839918054038930993734891429290736721735827023932136309094426447266206893312435203614455216174848458486242036065700913060313373947135479595831732694922716498017382521559488259545150470783557060433252435218216574790189282722412641552353636657666648005767455734519222119652172793860463097648680319160801837286103722023817224647043720855508070783452163270487525657880000465500489164085421680917230560163493708082733762110024322821999710508799467604558735156526719410464238182269208275146880919298512168369304480931432081620239773965032084010719431765439256772588414784707157576770620150176872364721495733129721334042084182269779451080419958897872858049288730268123927369678998769631041610639751682530263880708650536766958945141420304458522528926860897231157676226221823685416996628532216411675171619971626972834726942900636979241087223288971891650048279925869157167088511416502820497043597426345396815279088097522075432817481730914926743261000375776075414825126199804036687854347177577611258037090355914042712345847836336857333291582325062338508273282989541178985440735123614323120272925131184066270139986641748056692217694658210055658175536834489515038607070096071641380064485102787621907632915874780137155340442921234502436047045256855415820476464109254144562126286061165625741331985501417754725351657779736854901631972170744151011494306534614676005372906689750894818015548039204186362584407387994316656956234643317856515902868126294598831374639224446467070491419680814486581357086215006311605083278574673163847674187385225333743556428083184901795627557732216628035281458400674167575737741341771026826844637068316799417000425425351043219907210580854844652136577268253382939223365317459683015942169522359807839641104033665773406262058062030391632637561431751880426436190671786875417757040887414984385462079278380753347635594129655783936676115039814179749394652442699490553605221965117776739590505494202688001802100987400018007462949526341304578897571795621784416185382293697403941681729152146398112782554272267038685533845701375846677386864208559753281184991423695997684250622711915981732455623249027861558102620360960711527621536065898350073653965450084322947399429349983879683237944519194380818340796301226683459557510263580101265041542391352584108743271321663940291792441323105370597605230262956368831466249686844137733806001285261388677790340777473225525182248201561606090323206323477397857866107203490285904859075588701061864663392566726445069865833494904207140449181660291493790629606072931441448151585122793602270403860852319212170217702942470833513361359233716806865209162834445713645274028500394368784761799848217179913339724614138616786176648380750337430131124755199304268705002177436786013186870200394648920500110474904920959344806541649708444393437720818885609671088237192462721470299198805516373664455286935724415927306699616550624477932824161574364953358807847229232893707759460381581412698425227985512311022157066167715090577854623162932282948318553522902790138809534915450503063305581020144915995651070119228833351785167657872549961550524918196902618665537416137431316725227273380298881271028558073449176499361235254793682472980164314978785747368053668711154363774206969038265103024432333459576953304576306451799126930133331781698285288472409045279403414887646338282015975026846808108608411625592187724224405929750075020237005743087009291931324151490353137861556884500310569653472898918351718612653822447577206032776580685564457843609595639917998571338803774510487537511042497050759713343939591227430833645636124190252992743560887277923431787352420430411320525821524253389872418708594808123490141928703475993789206187941382322314055044036721785409950652958781700704254663166271907537723674793951277735481576167602427429509388463459867047854203358606709942589530936601979476230743980967946927059542783616025078360149115483430895944128987401095481703261649182545403981940752842651722384204662061675096866064922988074059377206109514725261561586697741418327739936743461027487125665007163490148942974518000400585956050863369366813870357340528839034637476571758845335011926044125049732986408703908391210526029043441381509922174450228520407192631798974037968004942318031328388184070528209411252145518220788361942415528625098558497213016618979424860300977681396034335010729641831593348560720956997557045497267087982116828034231808419769669647975565632573991354448213188844108342737882486195682284574376420892942341744788787424959771754961299872348140267272154653342967949299227622527327671926516076008959021859781212422164072817873531954855776799020949681928559520852046771312797993948367481739660980232349884647165155849453151488486871508157609666933611811377439117174141493344497526677241142692608788443878004369996180648686306215085201742489101417288989309862624773059807658901088410061556881030018092897311859921597294091159316376524253199258067808546961157901146826837806429907054705051443892189409980974150980380593708013391865964928286472077609803178038612092459359942623830846055932773026772638676756337024404432588833359046031463418994249838676672086043542415164757158092770177452528029757900980327668253765264518285201841414389450566961719330614737428535741576121158867454294351075389064881506763951091239325699725983897240166608024203656229863518230639673347549634775057998702815545851403950835851385232419161551845692299394453057698263000339837853051996153435840195845829709632408263194461719137069685015704093970126669032160918718356485272653715471262789532303336935289141661836163241809828450794120476933961467330123258254419843173991453473755734207817480860800502066314996199855240959456769833451187496373315844690046928912226638871885248756854111586687646165411968503641576273982798062470333967521894397387439768627750083966784982383851957751485939164916195712570155307275250207119617320577788660119651758984732931850782647851220773329588790264710435463465907409095968120748147772655069076928215310627556215980532379953363238606735836450927404430280588959394136132848296203189822337052748467164941086251483167187906226144801927133752581147492793032137518804988883776796882601916621290031860739055723448352676475451389057013165487971884973287931004941426779343233303302168833904487027493161384715413950012392252685580764716892795298934038187694487296238493541958993213441928967432011822964614462747113635085974956788919385785456919214356507459688204088735137108190471833627681697754558521835736383185739703366238421454700161211956685925527056172378862693672813461464027196950286097700511107798874040072928250552317868479971509656913835973911421806759887987866519641324103992072351416499310957321368954756098677424027325468644390057172386296575599706188770009079968070352035864910514763381986490669483323995514831407328032162398038322102365290207572339536094625546339729851299824406860522363308816249953501744631489763146441801298614958953450630232069547962458317326286066375661416240160527849546643455103895675771475048368124354855974696354328215412763740618060895540458959804300248304106296955213575350791099912226617524446616005935389507752031715920575872278336081440046391366636323236804199421317235945763085787049352328182244918142561630564695970727799974417939521060432199717820659884049134642758910336455595729936924410509607138228336812156159583801379156874551968865294653498304494042298155240562607285818110020203651139794705747069933493073711009618674815007260924855094599535990997974081501254339287867456349310153872759172731814577996899677106124136723527765181888245640406869798892000142408512317870169286509372362751314743254324144029109833798786087908531197159541754378850359785332362402107196424687703394089901372863604477743223125571028527630435517241543958199680931960075534465599396118020277733672435858637422650711833590071883744672262894579720502014316130325503745930343475716649543479695414223542092986086032542064254096382768231853791244420798985159159765561107378177799426902514890476939056384615073538416121180270520338457117977543241576371213445881616421057233110377184976785970010966570911013008346692933537350106885699921143655349330798896483555355976055090620805008371746044294679637810941939369897748649422107257812978973544327571334956022069857430122480032262285629352789670593155416070371442540414585258274695391338115145868364918832195243664983958849267221564234268610955267335972816391506904573794394553361017062194513713177770357343108982434842765026493225467213862185463922422619010224210522579724541259767769364826983050919899841284086347762244985310910650403224833997509076194277437286803276142183188237714784438287367623977336696514517055825604089163032079100612056694064203314888756111412587155894331904081375357390918440671769373051442619047672013929241958077584024163545565352488807111832209417188250746445775525743715042714190705451129780062803504596146451992065249902698182657412202010243766578941893829277234933764334079187738930180456178722841069233949972939055990666946181527034108485946824621987613046897875661645249729430622148619908426630472697383065812637658933873107063705666824307331666412980428818395129610078974209209986933938188941136515613552532078109838280687993570638254025449562005133468524711625073528365452938775238954682309174726363025927247455939600105591644297528545010126357609771598908133682578408356463640989756019577890006530645235317463105864893682204589840525587171132976629884638185619995203008179326974786187048237790513187767194359388543689278214875824105571258082613768065266754048493385877758530628693348016713814625639230975330414888252699342406661314400724895875005181655115131284373220024148777906803220303393103592349586363639395136477035004568554511236389370151537726886789306733416936760994077641873460139082663422108472505222862354460007832716369852179677433523841598817162356542136468346275452952212553385727466319931629021156756498348375867465719157553584107681802478982442727842853519466937812017839591920244630349269371872866131386650637209978738490274693556903390174266701067844530552127740144746846557869611570696572768181003978445275428059429642872840334788125191988117919219262080621340114309237039880642981226937889627907952101778960392915977511746440607670542440798567171035570165605695517916559816294742469654780326440433671619198556203398756243594077353445279138313878263392658778681165709938118398321391527568421593881010876050755920588038539249976099720093597262629116136993414604146059106356884717675558188466274363903703761611452675967340147584661781098987965147575391643670531148043718039086275199090311249501391828488410852488836073545114083719799499303072823729921404449538578066880461791605759749348578030487071780497975236473644729147353531853842800683100808501006938749961959458798240032436946506771594632436115500322381385794282292951945265268658629376488838764886103438276625262436439505574823337583215340515891302882085088527737015927180069887921586414612916480199943068495909714309668759986380931431153699131460391586974225997419898931394008307809783788904991984267056741285601862710511904539432207491575723066801041267433785988480279795705275125828957167990042698281168220144519727371542275442973744414397546862964411491081067429180678995789731095431964490912025844756917861291900133433716609557743466725510193497166045321488358991777878652492003090451161937674761879518134082702402407808655727378519849090538123928881579697581908748970604761746453898157784958520086192889841331953538082526026784473281804934356721288527563393468058322371231565212310115545680178958815287066716042838604915706113625339980504428878315171324980803821377510128367375219023374290114983070512795175236536860595653901570257720436334543154619510527603676083975270140737323822273708382784477984524836095719411621953104817625567057730901365304254708552665053393353355430233457947308473918679278999439591166697636979663284429780599932925069325262331917613030362653985457370918415113488248394103539593473383590962835357747197306144360503726318059268706076087627258060622231755891334055264471851392425955882594651295505604847779946736566375697415608681732598931945950123475171413543205291254850762425011019730318580927762794908301297269082439119940076527359560516126058392800032150185770781145449394180500674636415643314452699995838613132448572173176831790089795979582318855811100558872538995742395868269414198081900485003776201824575634304145669132626374281432565411936497186680446668461520718502736673140119436948375099981510731320545184268121368791663929315981269562545751360614958277387067536927203906337155277823836718801434990532377528119074930907008870419361613278948369948197656502161379461301199696392616728410385847919787317379467976937564785155127764451542342557638534261985354081260070672495093294511133856152720354832920259791162386186982868810509606206046068987206350316937552151149847835037653537662753103680451019183470699889968103714285503601700909374656411986533930399758634929648855834981996555097032016934046415680944524559457890083034937045453172385662825671144888406410724205794500456901923289229924923913316962107967355462659563558197944350950934622010295820978862694861636199597282190897638545330569001070161336017410366384273231579129807012302166993123544743412761628233015036560570744080931560253380987779338311502924801776914645615532840934504638562132683760315629834936828077474068879593130076103082223229185705742767277056570289344506095699688141502070285243991075595579875340823325549469760360909063610899141205384646899023538735152981447043581744621382433335751931964533886366809389516808104638388434349608800036179045500079493989667248790827253281646539433434738433235208635999531244448599866604978435752462493284381871881195563937873362039838852025970495521092186041523413987100480910503589335086202291551700448797854750435624655646973862033294814083668105535119361280616724620897325029248234200544300753729195641449644562872436198874131714598552143984820986019951089241939716451875434724061791066145450057611587206228879538475367512401836348352506637626683929214027553999443740022565690600404273110231397917176592028014615626595718399044874257492112349876924480834023492474870169852807891358097001989181841768777811756898504087359923609675811930265059874758524220103631103562090988382625306705711683473070791250440007860667901528311920994127035007962427167021160895973841313643598648765991809249600477531339645424650702041502729269497433681498731589908969047294184476411512822967956760748963546917648780191362389325268409495145382618876110385511239948810650136252446534321669651332597829804234556176899590241448169118582552247551348972063982971474157614539395588487790205382493032752456807683650194142007130689529854678574277454025797570793403179239354732107223362558558037238855936098404965266867083308746027032222626108396937348134086671832007434651872918178883473183594592810348469684823986853891269286229865830544097182191870523878563649061802110236837837097266758914403032066722733119797288687548788981752196270155100176124712683579304720820322683924913466245779214125666383121911926546583170348724168661151172365149188674495131237425301752213872109920212168797330946133385141233653838253972345159596908572785106647339264271732449342999045294878552107176987513599736308905283301660078609385952862753967798617000148097234197603567920457318944134710447673277512013628057156453130721890449613076120690887834530095219951089120733317536806095853252389432897296656540165400719798737076054192584045707536825681849442926994820665484818397257011599100261330678675729381008569035546886720957602594956114600130545377942266022847800658856545566590580708862430121770080532870057609939180900135386783488217690890258659133220431656422629280662697493613635284277967385383481491041754270708392059951173524086091931029987780383222358154972511148150266803078875265612454768305811804655761175083597224511522640663426199412757223369974527268602714126924605200463020095197951905308408101057074033460658035553946112393504234788820374334109569283171225167485025202392250288328852945600419649509858250422659094715465553195886620057800917491020208344154867285226770348959790015835752684930057689274031768287224134941526148901722636935901569506649550148278942043352306184608202313671228227237811588300506110520123461486515370456682294768703754306271338171997377077319064836034902632928174768738018858185854630776120792020197116536018137493449216495076347926152796428259426587162944701014471784440101481298688951786848219556217778838396587580751628563605627290823444965841101045184345528040787613429369881041578909211605561521768501712358510525358965224287483144878149495748131905357283898768080871924141231540904501792093179504023573042572671502427418471795615382157365569599776295905187531413978022176264355079583249777816463743366979236050883264367451088747984805867554503403953525429816622571979819463476191315543160730475575004755536908481704090080019453810765834902842645769669004711493924590711042172880578479098757316909458215320197167652416248558816344644602588958409552176137890107860027067387124437460729930872503416820888571218561349586934633598714387272450040149446124762368213299676092206038350895350523966128047364575497721076874020966387327735122606562788501434798806529501622334733574280013429297277720926491170656256107041371239288757404869340063252705318168636045667648275066662158823760150814376049041299855939946360085242645725479531466970354655499549237125744654856978923900976292474643516503412220643620132527528442250999671837344942950164042569122806368155967422934870254619017483015603175117191160198354675815123199671653717469044351514798952976682223142349180960868151521228505873482312414545130931021285183289482630426187441421058490544515918463655859274732958929757590884896417737244268516807960209714826062380488197624161932882647702280560953182307925928124469247128499702481652381982606548895625674356680326517079819780113363782842911539132710533016369532964069238124523657065525762268947958559109404098999623711550860236392517346030182543969448491151676875087580272824482658841566598940078557515351971931281388244485531001947817453173108371773236539443617052683651896270628208070101443422281588477002848294963822314567909939372367980556983088520795896323522441423870699284975955971638625419382108294304965597053107193095010389470705115876344245680115736602081063570257141909637607974266165596236967162034292419986622332123272308458536918107613496789412213586224173664502976332486667976395328059860576592595387298230150074231423943179118422426855938694538122039723897838684491562109619064110148399948224148637214241746932196332144739762547961861017725881708965053155768914068637482271305859751567086864173943531570919803922808960053280139447948524728019731875548174241268695649322306297731675141038148251609353368309201737876137636252207857705554350397691285725857198056739599066796444098291787695055311959448976104493674486213031024168702294260046822997963050660865251732747584139196459365429494633956670327544193700850716219586987317535578064010957618342192331543539199891737677745515966797639925192508144504122567996992055546826708479847002636616781960960523098226334689625751464486627675501285229726869241776781911267595745050208811981664734742840917519426246145954147375293300595844535536953054275931304524564806441672614730777942308460132004277530224244690133154821109948356023403744418703749739690196744798981913601176424653257794267793606800373081090617915689252937879186697405765653291180739530566937580393628553557833665985305540810072632927491945700514560873072066701814934231085058838565089194450482068809155863832187484894900396079052134575695806865369210568133382624989456316718498583491043900692403904404761487029743468840845693813339689184278073988573456583628119246694195864126755890674154345911379900405455112805788797813704113073363768705059527120392761250306681795439856094001472985078745123051292587215855243497506162775511135393048697092793404690078226338912002994915186125442332470511174498885311042386507284738064262417758403950735739739521048158586835506555783171382178864980898644568938510833508102808286804171861619143462399321152737629319436112263077276415896237698009150176375254549679293267848932567547942096239780019721594972761720283407913238276711805801949588767359297589242680787918719453531817315324731126368383663014814796835126210068462913800266474892435343412382881813965672556587462630113278358104696465224095932178214423959177361013452881070997014665299641606261344027120370341773097289434002596274474753339307586844039672510632260448375689063189676020595295337546054608345270382160744308786071807249291757153798076568525598455478807007906489412865811868385187159241787891968166890351094472460571886616596780091607245569116528745906905467327938585853992105235508068370978647521587098463636906635350938445637882206926848963836615570596340887071935745491794945895061826076353441985715753409491813359327373420167053724916999769922284910176470377843502812205512915885184053988952883212171210924636417973295455284910373670305404015074541803053801391222090494460294311473711039531142554215942469156535354342205638687758437926380285221668568290281334632002401633161723379238406633952245042532186154184833213472599846551347442698576925194858743264007048503391204926034919553505012805426951085679180197697354891877578560182711940317754161176478568262765070019013585169149713208089120770724062129816536632675525695463721734284989029802198731630601734978648696471801139182310387969150715804688680465842215964800253740129237592200415390305009386451249760475635164163489654567362439625255289547201172616093741320486971272049669672687017900464300330814928245431453293278864802589458818239605152065981637690870108540211068216290079411804581882701522161768994679507675786770152530136030820393594213430289194216274714447911738655005296029811924830162211867755478486694495874327815756926905396663612367840085697169492011034453853709128177484301176082492745516067232186907776193432052016694210126757830857027191753555308124550363878869410103003758090690205871335348027569802249734501669209844290373495405254169228680704001783612179706390705187538399456040223580613241554103814793886196410954781382660188059731543504130259205093336652226040268247856441453721316333765163168965463558073076268141903152485402776976731500291346343462234665223224386904642725685386263303695820292385301010995494777548658541440690630142015767705442723911205039482980223173121392266575864913485628200741838461487939084702194074175242235603906435526514678591758024379971656781418621999843213585550418460450476732300158933564346653975030160714218949128074790420330767709226227747270554811050817101614303318846993686951517902667353933950626553008553166764316671396243237916701825815981692338237059446837260380581757264413234442195438022986183509330563378884881483377909367697903941912425724916217910579150922326617788258621067539001605441291633757080355108192640605749417224045474747111736862067024063095177110572217420842938464877285511291412315788893772223806382688664954067169298835287229667748598972370599285022271787086200620889217639712208767576606106109073416984108692568545975184867778594528007276770059213373966741906453952111915476762726102535398460914041518496268477999660371166107291728344210451361295239032342001081679000132836794003818951222562156231045498133210814657264003837657121437110683473112877583996094136002831668600601296586097029902765635636811891891711543133627044324802293307973452529112791634654539741087100848818406752115358978480747771112661738077440818993558245911322242657514051915159382578091259324294462604717927307062996019373554159763151607784227005009637077551236381384780259882363434352575938651958297960602426082095967851910829711977442489769257474287172859661002117790066423295346586561646530845223930743495943834480737523359783742329140196092641072421227600260505376012342209008485712041634370174859532577858203987062004333100526627825315204922527659581089375475356726888072611697836252030021109166956338787044702978336862616667030441794859317022455593266307591422050812521436260488488756701669742989769601555909094574897436868902262948135878899450497173527261325390750280982784318639414857634695165535333996814984159355882006756293017670854407166839979790386380307558859815780574393545164003157046257997831108922898127452608087292829394884715788060703745561754977381298528832197124007606037615750317734644098351766290751004308102383135031829852084474720742840272658206012043575128956814715574868264150855222822185755696295012410412320428870065572972871629384705792143287842033474704083574317850166289366576644419831809358572679146567600948728632916063732166006849674724019227197068777909560906826823794318856710312221479439862978353367954737999481444273290287538232653492857373708185021711553695400201968002610582331153194103059203574112867920261468069106093311677115447455139492733088024599377391571815549170063536327768051705518165949302595199486230106490701374934078960115687535746048300114908623000574863888657318486059693530209015917393541234821001239158859725643242134421565300504296837830835061636804521949789263747775924168299596114432470043820601982899942447488508220121820292807636937791200336598985061694606338233384047304879063022836712732943843470385887432348312692458800794435816816164409743041972537258852876258306969491190127577949559330407343084339665917874838394536169560072461998982120115587893042754402292804817470669033795488037801963961295129296192619491437892757602498727638335255064116733901867564729059044482416225822444620799597231253590374719893065108809396484922101559646633698482258095299018905094365991899059223035363784486083057610791554379273407193252857714132287885791089871761149918444056975275267924709691059665618658087324232294636807590591264739420277386918060051399410956355178009187435313325573782772815739364463692846317320680217343469510459766401966487174032135939122331107012264614162258359235579915263871239893286345341026949300652833229468592920462011494407105307802908322200652381171141889452201708510857224657778372809880559479929443782208428568306783874489098251411821182493363404242484550488091712169213362559423360305442592877705129549569850160852482732715304004731157767040478578656670035509810748034276640796543332035096612158807125861536861880437121776250971510046035149475623572681011952646873301125776459600794575473069065876493499842745853371430087771000422236057285972588241986542031890155524843779984083490596958702582018503071844812718697977106476517465784382090918446824670475956993596192353900749912878207688285245973445409283499452423859328365537648996058489364779105896186262324686570884154651747524079754776650389301089153584866738971360133122867845615364806782848190311856970975748849834992594817056229748130344025821678757517304093114836737132815373163745687555892377032284712869893825705299730701011745378063196861404602301688856676585946613823793443824870291361150657511291928571214656140468427413831109519451593079753460885140147550779292356308320316427861531654070809292843393216540127434877344777281090117832558612674759108735816891402536138225334988913648284619288101706403914542675718642295718618904356451661513194125462559898032084451772395311116331177877103054905504034549639297239055431501824736439359907633952931900846363763446192952220957651178097369341393552580302191736161021998595596257937832754376076691895099970075308054392097670787567775493206421410989072350343750355625435350839275562584844442922836593348020628270001766920895463683655170841908229929701490066756495064633529959478170569091207105446163367555850954879685880955380230170879312211111168635806095744529105887127532918321371866957137094416147605748900611479678665866788467984936136588874329888376165854877437146217404929411346346529385493441709418425333911621807530564068281810968360462637989617372596810327955529107197750725903895057836104669116275042160182443888443592506823936965085604164165903241835635242146349538461278322235863471092140999140442263140301576712204274127236002025502275611218591501526797956464334894957864048997383825802559639285582879433426121262112072290300567944916890844271671772900885364039175101718661688642570688549309643633541751857026381897992400284879665689314983479471193967187026496835957340224033757140501925578006356725308084972464534249285337523528813558126469767009364158042014657293190826785300614862775839320865233729534219461206579943974035467042414429153718501470390127994471345246542160992820882391896821255703320181926656719521580177683818323056338858147794216143104176133231855887595584228642165099991206177204051812582831907895013805551134368801530756150308429777181618657829608190887266614357578295557891824176157153432599913299303629341507631064915581152270991381519329348000933863733194467718723941860853296423956388056336808159640973444888052530308347356832641406342169027210391810478453016185988840379480686452696191438401720061512054873554177802418358439861425657348811203951154148922419660726581288388351305271434897660029914600674836767635336759961724062642679836199951743039377202894533824641700263975433662535064806695922154045155583919232314326029383488111390054186456921962622964756225305060096277230567188808078941045099759739215565170045181937852365975859725175773474087203193566801180170507111376834123290231540844158759543109442079135425553914226565960032840956806824116329235992319620027752325017536408762092388923371686635231891909025033366235025329670229986174850254974726719857929390196436957783350673870994523852904950208705685318180004745184966377058486281393957301953411247172391306810124737400142930229893711644543373757423235270715766084904428661971190942400654640556123464673397142787856544465453274464458425117921046229639138330943497537549869316981808827610597753697249799513762644840325306247725162277452651655673621976919513152248911416114494208418642070905855535141841291428818183399957597138163095937858747714611970555393354475115231282774824642269010256435335048474171252385024655198002310882744282144918761780051544962538235241010989757865136097873424768972897859769612988625171635698016309928070572696488394134629896127160601003280280964515270337543567668932632289239685876963752947459566993875237194302704100328794035999835908404113379527759773473547275431529065240378457130915639017986714504008880588891360818551481759182890724489033552064489848167699633203251485909040829942140078166738040832038490553246471038518386041616495118873618635763902470979318694873286784865944974413231676268620268010241489086080279820767784123417252853121148315204915288389281721038350594423363720661231762456112574443039954896602364934083017274205832218565349630062457072836875835687282859282367581631699441345909309784739826085204748088810381831614874735072437792295826903583544260721163077911571493811788117364361589380875673879314886960947044437720868881267064146778469444819459792821457773205659655981363436711473283914381850003973795365957104546485752975857630170984585798458003962897116531254986311236605622261485244040140619218243019624872617755147335309838857632177084875941896743617281983078614373585092246470308860534962346964968343469128987733918983272183621528777072648103609627317191314308586311690947182364814644911025065859176476094764076960636014754483473704545721059767862293931473697603524089764074409695416147721654167301031547842865119319418218931511404620062529298165832968688251279440566505051634090436491320612569961919030834496581663551392054318993891824538155650633635286767466109714767398843524549854067457028304486610446925090990502864804070043216794660283252135263610984205524302576629244857149423571053174344221284125311299245039842979422297863500407263233255736424935363476659603600749599838922615555707279836258457663056839672067037107198029478937007741328797791429739641531730490801883654929345160701357573937669511301834283807897131259046389130423640443175832843909677532401486879494758792177379867766395668392955420256066661622185683021497040617338452291469493143293646504827340381201459990041421713690208331249590406436488636369540078932253148828983436118507040402808303468922799665707032580928320842461045800423874813078365435995205007036929838820052864892877913451234764713043713272612006037501088509355173165967522609871494374782966041759508932983234824374294980901455536866282391462166422634663946602600226144610513411742885503260488882639886855193203530132269012019868242925298127136836456342897973532272511047998829634092681366268322834232258999066187176112156669692954983330825330238880838115385130538782013160591874792410162719731361062995926723379325569709395352308981249352011268142676552496405230749721941496180212880790968452206200132579597284645786735461613170882645989870012943505205028314236316047965940844907713577648795592329015169432584505843576439670975659289069475127113080378940438295543334665565477147733816169084250918316496604779871714837924072637147584940544336386017718404825897364499627581740536286218788575365525560934184292451758189352468128803526088569728917416246579296591245590660812452458374464361059776505766000249398652335594384948421768326703612371815196440745105638923609931122277281968731550671335308858035129597692766791044987801242304203757816256812858494201787506327694361427643536017929616611336159956655890769575054945819712894073841349331120277524174284910061431901190669964538807686001402465323223600984935317766430107581522381225126939499126265281182398627727685900303975402932140169625667529414453429451515314118413893174516973884826090263944503153283835834722604643230646311744791160884821406105483079866838087155281278324465369631658266409021952982698885108588077520010954464876872698618117403166426930866840486918742540950221185478877768878643036480425737394167582584171908435425616388636661246023243204352138996221135367657285625389740939633592044086275998703450728770039125776734365883384282382332487619868764121700120433990903642512805085935815298728705841483556874876992043289090471760485376799435130024053793630116307515283804727555140998683681798580522144500635110527258556950533143239895233380484416715915756740327515188314331733280034822088420096147371725343646277401176837811099703745528383557667482174342966772346897393060602565131979437654139059269156124682466929214383464668250900936448176316365625294148237130216239445989310808154464162125345198235332566070490773388281957789357400411145527837858003237298390646722259706794242538704786546852456080912728672006656327132795019089053368713068534437012160715460595981408592299116022474783093688012519724287422481966424098835841369165961709037216593830572690165728934192975226871140746602337135249641439835319162353745256296161025955801708280302346983618255727788066442215008588290463357143115223227715878885329433514447018353317888307716840256894349839610309682504742212976083334195544902810251023753590380132744415538679887904695116746676022045263395228103747456784207610321389311310529214459594929274176632074968394249326554877303817059858360959793889579948157581561554930948237035276266549180292349640763983604912970665814164628716924868258806430448289166702526382554115105248098771073466184063665176956682893218196006177181927252110118588786754388217724633376781799143211567823339617278569719888194491894174409282252246274268068651332214527984278072013450177178599159345898098380094369123807349783300122767712755367387437758420876625080507403558326029328071313106374473962501233438361858849222824606799332019132791978390392594998551371621327389234984231255232561703326479754225975343901215191915684384845143765668532744130810299704469096619147192323670855629328867503709830732129441390641148712249958191859113642113462461838149887373999937320539787054763030589442516675349803560489167011765785874860510004252923827440095799794631976551683368806618297798063283300677101621698789929612723372062310667503991134656052527269623488524850453695276530699855767293195453367650918013612015663608454290613217808187807978425936237841226546377322140139264673116660243736315799750564972948665744369823095643114989110208769755535979284550061150089660820509912583135400741909199852065443376332175210250223100650917092493789121357264492736766711543794732692246496662606766898239517457991656711896596651227799432250618827606286106127451165303262715598017542343813815528260754426450721859104559043855388279691794091417753537632883997276793629016280381263148809457968950094656865126433065948128056562629746144080767890150441586997755575678830376279571892251435320193661532655961055969235770241020367678553913357530705101558263147273746496560797872372415950494191368288892675630900369050314325778928605495612636380943808556256983433885399749854564956454884212967974276727234341158158966289163063536974537989824083105020954716260617805918580813556786690574714065915605764190060888812618086413002025431626199569954821993601351632012999474529391935616091238220464596206123608655137996921749325319752345350634282216125643026503053008532196957337213853487949190245989852360392306945733051558673621972294033082299769102264365976525016511709592625015832449099671314945412615205525431547627528420665549530616267310282564131191092705049604190787541256438625185660146481379065567842493788488565890798838132170461605179982472549899335985738314891545813198485712999065450715044896674905414883529498504301373554269566079992968178246616653598578037981644337755539249279954118524035706448930595673995448297668131869006818072183781103798474821216138467487994755237379820538445981136002948948876063145513993608633616039207168424743045588572136398715290008662761131724406157968281998986346629472881378985325988111602154665415658220200460895922963448667471703070032354383610199657337450296102354568611582874886788754607155705058953219862088505864544886570863917391707525852196306268843789078327295303005621878929261008085021165215220062996530475362657570115245794910641424070616122045671559679680707403020135438241143781968233767223614348917860597088047587204661092861346406376951468809555885862316131389028257242921931327917847717383730236326961701444783689866391184282662369086252098407913497444532902696166493062977452130454145400859287555385045073160150257400653496183905264055015329727918660151214170484966183413216179776802007646909934713485909298891461569962434498260918677621234406906816203445539660267853613460971371531070235365223394448023825833424148328145738170546089443092258951740605985668604551555275736599876120236073367861087156460551812794131988161607138733480682091769048938751699211707111599188570805502312230924626158826531771669412818187597400533743976785511318890483179774994376115921684810605010399581882539458698620357692324494910488890324558386819943204668147285488184019361488674578450648403412662059276104898580936315742982825985409053840732561522664476979936906911156150329734841249056535832033150043097014045849775650183072937934750156014604199584722003209437504149366763631125596988362228928933321402360924191102379136050446883744549167317253800596362499070866033930804558005931294164094859928858444004033694851572713813097985990427970105243219197621453374147716831325213665973743051017703486747603821168463637334099396948675891556620266162065683003782015425147032652513010377051102486556952047673063250771041799232290790899319555733405948887799359070026823369828452588601596914868518565732821394828691473573310343083345913033162233121976511805307652915984966104815725750327647259218026863660295861927197147324421974308966439421235131271541472503485381559908155333818014968300203538886977188941530361309519564824631300704644944532350868757958255682257482257883320155503814918552145686360678666291520162131656160389239564800348035906145852090089474826880783254614132211394537602557720881403669631964589870352740199017546333871520357086993670906560766520129091807484798003155369251899879866780197278374882554247186383298389119382435191989194002931437042853883369688813345332420021337371641405321202570870573543934169490665063761260043617427036986169428323330467387818581874435876554959654547854026870876722647578921231810770576299476503621902805158341728158454782508909744625325291090583671497879789158953042245092707435222550801239187852526502273509119287000936943496732908054319033887897337201412411994574557554161643573638899606283886780942854980786706931883851830601126369403893152586013345143338485559498513726351676834777240691632750943624458462694877110920902379635145910762908622080368011876452958060416488858970819131306243928440672715601334384853213433541850857722111446177411962100199936273522071952079388056139831318457794154374723119718243736475043171100142645688294347895832087688417442097617405929646648652039403031023091555898559602733003852837414974128364348401550952076633823842860345878078445550907906840012031965706998596142171637291505696425886630964770717034914960508550054997371579983796573336542333140511618283951511875884697502571003059347240054566315105686489577363429398169541976677888640918525670847026003952255732808786695102945425640957728325004733530092695831975353975364769834737958300624969312949638809059204013765904068744444873198356752658174674945719438800020090597134544333334942446607717216372876606033008013012340373535945193053168676352435497911377952357052517468102468640286143766686707887772555983197905627434344480889231812185786444627417239992568799955723298988129261242712350740073256415348852111405095383772885744687105119842771769363785793927208393995868234634241063783669049667708004647480799721287196074374472827646652346397112016719822767057978372738551778950905804222404126800556908784305258016509399923744121877624071127981311101204861397554333795325002205581660219433066232337367505335493754733055396079774033053842537391199846695459872038226552674704563120748674428753864490243075122765174036693964718540549550363513527033574089211124911773129766002564991487475899205806948106004199146316164874875180231254847569104276408867926177782996866499972743808432735133265443800853376686919676760371667709820360286267384999636384300340738764714739218107718223614430556013618433814276348171942476810482918184950472336431513332139997285696564983257000274378492906336883459747581516125755037218954383424889553058390465971294491136186822862343989491216720018665595738713247786277624486322780774095449403990238398060575822800656825515953395223611076074077012917840059082050259396277508142557374367168076813816295994346144880499621733110395262431481688435899793833257516691356923492820475667983841473178564066381635698497390741110808191692517405136008027575122540096814921927745549367898148597029823829050850866803422955758922506838511683911740253034197041977743910424824308507491201842847125045562720022552446137596651509447497336040395306826667618367943148013074192837807249117423154371006919269693273340872337001850506864527053167892481553156377692580435094593074150714066421197000912720441974770915130196313821355653373668005511859564440969706688174454060327209875889279077085353709405588690397093018198199064739819685933682413406119440350402910837750358704587231397218732336912238155675825921777662066573510344142169857016954017317125862791187280808436505551703390240463943191260232205177028639238414201825642148335700153079623980224410652672499424065235146020881588351223036768299736178503770351096585474963806058748034424196704153197243803189815133166971227082342495178269123423157931769002940900284398381395467969503308795327930916560091259413335977629360617640698031074288771891046508926800090747344948973608562591547608834751656187836990881106718380585078633040227374125466247176320851131380581617077549877698197419873713654529314294309758725924254316562162084143150254905545877620655382648127240600344264939222135979634513805426682305082763805119823315815255011377972976329136876310788473489812576396186900824967244685499602457662701574978721752949913026763970959884436885385250416312424690819376269838761119637583599725071643052655544603394047686509716626186818660047601432245727887110618386973996644022795191763590903238636034992549841238928277075587511889282920440593475999624817421025734196192095928475144390890620167858089723655679445397207125227660424720663439715970991972149179919465626415533845778668752197695203711154225273765814686310436088688002410068588322640575479872127570646220030881888962095125227537273146065643209001911926569660045001982521184294360269105965424495021054740540841603622709819017080818487382907732022632123575324274586624369847120934939705055176085368868019982864875421544579763782281508470432145876834262925152964650488817521534469857798347825347838294753545227051249354117128499111853139397617855666873761996039649691576270409468130959100666348395608490614189181201643629066614571734852399189436092623439111910671170761769514913137167711350936587869345157856621801372513393804450330592023762849828908171893033764405756892570733893202155694970408738678927752952731481691363831314266602549769938407297529427784625088896635865087022044383748240530697061546811215820079526207103376254579404430432611693058585609521338208323478820875955930520018269899990384906374330296455930342750806204932759933389419390930204733499141023787629272007570976524875048226358660254612097020247823819428675542355481777672626384009114607056319477128552261323557183350496157773010983797551297191517291154950807807386538182730735246589918925011611966088128694415591319806456114680157835221505776990117294468001817443287819307828167015816696332625534293362651383569996891135172401110271156425521973090755867649111964479503698865446103504543969108255090549749268292617586792998462507531184034908700277958979316280385994525029134031461279994678128116545258327566556785713696881687302382426538345653901231651555847817255683669786620509928468486442259595021544965511018412938254858011725417158888891533563666777855571642915619766202841847608685971464078765250753370679416891744055108581070414775037358977923918536925878316726194067933010902036598895657728069976594414748555035559854654606787836944715639382881245079390409318425802340018333972917952389207996110885496621784079564302887865044368466534278468903588949054820418742788063341900505694690357108609066392511951390717372459057862718245033538704977002464112743732147232321546455729448756421987898388129104223359499626444166564742358088062603538959158365452591065606129934967283685676574880992326912306052264650447849001526448936627264385659514987760871372857144303098450796152180114275548915062178362957509544293600866771600087595245530067706467644296640278358155745406494922145568982776468117122723821882875034357432047801981923346668409014754840527576561763381251506763346329211740083476976414440767106907722315461181798573914507589817518700583412224925992429839861324030247371614934892261742056488091395526572696910331279856819582856706245017251585776550483520485666186145684768602692937165434935110371882304485335978709900660454531656827448438144487184435719754045519600608294977194223902228846726906068765995295775818511509293075578133433733982620254628125234427944070752216032567312559609698650798975751000032083669438918252455265249456398950934763239185151915361354862833804600548589622346899046061969751196030377535490693066887006624069779145486263995516543556103264204338336750637949054041259032202816775749433038293910123790734318617468410166344569953872840404009873658983342162429187141741116949493340677827122769564491667094319843769015146995580459270172289397065793823335213649506482906671159992969651926367011267069200392786054965190047144338807382658838586222125446314716988550127116917527858454155571966250105933303421680279806657459949816340966232189558902190873794353868959997081179534374825502693714926052481821552219894720374837920444408450895983368429052579285732747177133282825644752643009722597123248164388594048608733950140969002058696499913939426535954894890888588506088092486960776155592815266926077542514597498314892914715105352184464971104983400556114449056598302835205719602579217258546320113349503287747951952159637321581191675988863106088651169928276490409675351123454500091401486558961449702220241103787863003982395458312345915303460447570338470174490629415500513935438162920319287252947702390278128142623175547610671691425597904302283583011107775045360630040606352058326915075248900519514493509652055677228295554720637620850608456384760847047346238722413697302585991178251355386911138340727795287737492900001042678720271760529353154289062598507281440401099925787118141386740553705278189682197486802440304244842548728978594970273788515700994513837530581661348358837677469560817684106220470611127885066566185269856963428636166758263729654020657876371205531372042229392108344827695726386801414387326363047250270377485104793837831562712228084332551788070699925121440936407670028920798877339709126724323058293135627003878820830512001591571048572267313623250996281911314698520980890291278951576578728815701848749087314050309579252224668454771596740264022340927281284099247909542292322307946263360958853409814892156090975248925445485148981347444700503735517645404873889769356419634897591284354836550607740486689511014699330223084183517742891389360456648799506143607825705594637785257244691933609609102795576648267246410834895993583591954947502945172004025050973851990114240594869477312751071479505743110577415398167331578667016947757805997574663247095980131429137234301240778531391779775979564301710698228723457651790454224304828114040317829357303064109037618958872575906401701586472498704619631588214216985909503880262217348952523620742981877958873478919447479017586142403920747416999363755435018108298974408256735642516219046922932656697121313983636836040750352159240754082309514803748939672325921181357550046668769316530884905562859937070380006333536631398674140353922365163907970902911424815131304349570654588737480444813029592100705545337664653231349411703250045489231689131362889341310503896751547859230858576573270808596300504711208476866850848645570438512388124308696875114696262973700133190478508438224076825705628556629860086940627042773581161867779457789773435215084847159966016687752221534810124376549930535263041599924829095302573077119681576879700435981176132510250961453403550213345383611244411802939625078060003343907708744559328497812871221654713837332974538171624375960537655981597588691292957755817788494812913893696069614428313353283024909010389998328979893252913140433821124669025008756641440919661550579033494695795355185157564018462018325281494628391650844374244182732240920500558660852622983236477864523598058535165408154490730214245953456897785480788232790694863738487354524669227295337578946976892216931121584982365564535864861757649110387270450753742099542534732276349744531195719312317059795494684256634134758981350189671884795329478713544156180936521255629791655192775392842487391634081469945487320879321505011872151223176221866635885255061914476260282327669158969380979854934333551403914676510068146542887529608858877047804892342014093627805800325536368485407408786289993373963962804130265187558069988283230094178247874172674707667990120496908316601810564183220772840057554552545011791940096111584413422988934496304041501168380838264681606039756103028931211418031629996195287332851240639454495613310984527259382865125160239919924393677101391170632872438337468021795886850334178564788617449918019308340084438049203236278871629210954301565930425543268903349715940954082672883680260621568112221935975762296753168762962979608357613408883045173744997299616865440257347727158569705816937507708930382520910554245023565364488216737469054016524121584636062219850372907261390781340609944659952786697898560742210049481971822598082632634287567916501242623726528039982400286580393092423904071230345398163475593984428996441704209986923562426147469289939937507229096268407177770423746503015872413435429492293773461440799417677305421078253917534456069345453435405975265855617129751752747598070552620649123218944358219078246536520973523010207792709140251903017620984312753481646364430231155211512703666515413107151163919200776997173085606177146475598135423001223612566296148933380758191258817901412498088903552330645621388543263608451334479304094311743582739979741755907652284137241764649638971716785334189432752318970031257787569847334511616355127124634588976055685215617563079393560040123555666262518595629817723995459841873773456692111962398056860537666834738081498742283533009344881076130305501757159975007278515780357436568809406989565737258637062087691595799003898755022821469427988087699474481867974814158601507354292755180092435759877830346414230600541039801553377253090609853797168115053859264160769807170179346557240174575208577234087289493745865388969809570763631017540390679724458317679050925307310871039815640708963745360318490149684932723187982176177667343398974554008389374389759070125466181163568000608326806547132309197190032157378725069099148389801141062899169263028153419611658882774128876063451691747058660260276905676917469854129932147826460949928344941684359894376713350970802604181211183198856690725578062676576140641224609513043059379982467640178068836765525132195412579449812002914874175128868348328926873387204529960337498061931586253304347778899454221757824899110344612003930774577662940362894554511942340152004320638318502301427043691722259321476756353402339007354662593092744929749187288216921401135206588267601553647659461882977304449417807194123425982164808641470007965790252933969997511439291627391958138450184424225500782236348540441717874424708669548994572218948922818157642259499819630204638040204457337403581257785608515943111160881664210568919084428896745414826265713513957027456924223659828170778320370724769713623552608132452922376835680450086845630883664001275518309045473221044234672114873948714905731228476651788224754506109359691161764919975878774640338566705619918352043434607486755568211730131615714374719019142104934450710596869677967797899891314619562967608271432285160592633363616327030168897874846239684636835666447506217981333137438388497974560345790814745952571372612044037530368750697049086465841052109160446826622206312743264973077742829028708628160322688981489636832285959666134678855138815542117552156081564160647664576850690497663374119840930325271719416126299369779144443884871599759647182387964864417745499438661636308618026088134109282622402357404358012801540366731149515897200615624835791654243378847666465458380906826222117134179397488602652022366057749456193066714918712719561997972349103145123913319055436097954040376919206631746420949988981134131339356699854726634006402553916530521864653633389729166678709938881444670998134269246035974070261214910654474022979498309293254514914670741398151727661585163118902308425818427369430065004081761231836463385154911468471087447725851601007105401890242767087609808285557232891668758781677481446583158896829612502095961455340224967542426119917394808946355004950726057061469369430819938622612011100255287493361901994628509114683611121142531721352068301850896851073101380561211264894613812841001588403946962972589092122849439141104863107889082905235444786841655153826803420135607320174736307657338370314466715139078428605870848859302965179528215609028018010489271123715042956820078341673688394102589187370093737478671046370832191806370775026267930028255518709811837625565448721289491861705027871731083760323804311070692264458506998343468902100986420405657181679841391848759253271566213074078202411057791636854041696500770191553165885149817462887236973525783250006226396007450428418443355034952705383387540905247249324262283139055559282612988429943310022299691311013354164533126717291728375787652212882050158597516135663535536948029110974947103462557369575577396122353276300117897107707950192568448091654121363314615665425790739009415044320293834233854400391349136658445086759120351751042313517785294524490456505472194393425247161143202097948245061806066231153727127667414316720428707457910540524563458895476907088686256778745817158658194346752865173523351435369359140931852540276313232887051048167705851479299739331848462037381161564165179775434959948177019299572640255774710550115498161081519277341332547124099604907458763064981390643833543910509775812210491769495966943084422084695168674230414381505967788901431184785815633752052441977936151597751252828178840920327672127196030138382927158795827427342095726478169466173731722077397436328938060477152123812345329779498653588761541163380956016270397320453729899836604301170657155950259501359648318320400798458257608692031841487894296113482340623515614876458650662738044888555347094266465238846481679909444128675979267390870646750969820757456437608294088899212519463543242446835839195174261407821971510438714872011507344841637581487895535520712965387009135468106137545795688069770684175039099378168767194801019013196124487973877730328293101558106782152736033410715721944627908479844803620231177711898025449460682061695113248591771410276325653667958501929689168719146527484462100028616103009712867825367749434333736832600486791316407755199989823891334877363227731615110462505623899782481374258554386127267112519937531264010816205280263448851529873720069340590400931090383945571678295702146122663206770389720199902219684461245461212487957466258535831180084916994978170787650489029516561378225468727952041656645009964708640737517825468411823719261165654899190888515123138399705575910371134113714590634388937453783382269965119778005587382275655332356961845012321509505274888123077535979382653605646366021294364649738530671017630978543247566496875841607169978188873309632228722867886916108555112795069946558333013559996482927721211815861454808597353032146260964118386821747250586729421720839499117857186538271592904433071212672251517353566757658067669893952951775307271672720049236949215534273697192629797978542208954525179608820823640710627744410063485765712623633617754983896296292130633989026051782696007039189989262839625385447186852638143508417297591175905957353801611005245439189079747180658361326363680111718309744506111203091636953568015042509139767267636654105580213744128472762402388844848863256370493642589289328448733879349934978376967457252328565613616748283873244805468876156334031588957352030948333376909196574271623625681683064423489320411770008101312113465413294812896511588782476154725559817713034453667836416514018864341451436607137962702174977681302994699827280025619915764428515121320716283665313806544484389331982459744819738126460105553918533302059559501797049855218460159799178882898163662226562680928140435982186930289158877760371207271835902973521348236955529818072820464178485480242219469839688302550333278349379775904646362404303721077436739707833415758035542590512483792138159109233843270837158960205010993677718039061664475628550296124913780943536902721453936949743345480791063043599507235759957158886608163022875517910444213898856085167277425111588896865779487532860514377371597437455429757622301987381530139930255989145945264552441965255299222842022086784624032058661897922477752880810277219081455156183310900862454048925770981989200995948214682592360499973204796369531418216123046503335938268767954847472095768575770184713214391282263631070056298994756787722948521803903155975342787695877866192486897198224105800938572933116482651471548416976679192992240526201014957074285398010313519772408494503886662939192934368497836940135106236966431976276838167818356339036055142209690664721551693940550743610598185490882987371560417736286239036189170071866679419035517711468616090899755170256883876014180614239371498440834621191610948188714641305481767037376870222589997197681662272567954027175387447155374222593363405347685209107540370261238205769933278748762169999500537553584269840065534013957940617811683335377784325324588830825678370343134711660549176142906893672583635727881830636506108372366345708285135237987921812752166195480509032703059247278199411295358368991891029720406997451547765992720480153199283693982075917504470031905421284897984120881774887474661529330378095145044712431935898354812881446260092438176253402409562690726491645042127469754921745620987812163483468242418260024072754591316868857931222369596685795740443865746208882061157503184439850780017159902769542398538822430983770808383298077749320972190562030619338792644305473364819192677357441894891705748607724575240145057252712759413319315764518969000649410927050167001199945873640386154915531705131906112836923002501809937058816777556165249325189877550333193212164660843295636544126524324490107568190096177582010775878771378717379698612453083928852180332777345065393644533632134600974759209587433315372374341348436344236822888742961083138657602858441111032654629512823076801827707542803331975483154718350838338201020095459110666430585734650979921970833333497018259942290350269096101097993031813285474555108391892772532569780634161595264796234566553864830323448607334044056684999540537671218411079462467245398048659187668629694489808084678180221361187908198805603668519865485046714344702643620357919371979772859358989265356786416919035596317291812617786177792067143491374114202136555425738901177711916985217639466302546744972776913668561793418315639531452303521315371597080084389491229796385659293537695392405526741003047501792732095074100007575886890493108346274638711858341128894411652787848676710992518815458516452885308606424254213335204988998788490640701657208298328226696215852035970266810127176993805992652441582804548649578060571847188032710538348516324907028947046062601279430376166280354628471711468450125841274231678132643779009035470546374364609123244683799059956952251054350830410067989446408398712870153977412831066543834800896201303373281743268418522411514819560215399111250550928328955613811503693931723203341409202321718965481855024520811740653187737048511134402193375247661131940531152221458633753614653482939199067011266483299651522978245468441691681807542452343287536041922940401101891337171670542638062897482987914607179187649973145237286627217050141032360892807562280105326288476930105872394479029782176411736200560448670123915129617079386514542473698529148836817436047570682297269316236213508667272194187348186074952420094659546572878401570990390888182432936900169082734131177818982643739535836054143925184572712603980061729543899737721326739723196791785414055929604392592233084719890307239379673884681886626995718565509834289308180251520785879048330152689555480324354930429107161922895073446270992183317921263205916774577748243167053287452962231761971020782719849478508705784429612700103467781155760376145987372451331529319932145696677716430681120048479332233071727691850093500992923372240148165134151658864356350010713822904080748640621031755703924214062741122331591930365488372655011198575228387027996621885167254746555467274105446034668800030782237014412379314530931978320549613825249869954522687459183660185917505171971516524755044063377738451708157254391146220876287190251767462498162896845562933537786627990878214430268093508746140623528221156783313414241172266089496739175013475211599413938030443895479731907354161331983689696176268983013392096470844151672235241276200780504380620942048101574709201178589112277453694575447872166824221285358521358303088151012272015016804352683009512274310193564265275305108143244469456905699578308967630852469282982783818247983438268167086006281446244781304155438447279956446243286568451552365366685003608984526443372868852581414206536781429546875090392858110661941767648878516154190458617659579375433966313876586711440438225667562214478207707680403563165130631635467919863877720930015151640994301862317710751100661562494321693302993840124477930761142593350044762861598345773547608374864280673785353041272208548543072852041173173394617191075554011807583017083935003669493374876099623016698251840734135225322709318795190691970209560512388376253019971011330918217971871689461042113738117244958702504291821646533663034039124819120172493870882160251757602554521884021959858988393252303559326304345366408414462888532529974178203077127806642360667472398220218437477462618874583758582443802388820891250298465996900703611672199157053428397556093798110846746984823501017485848027449878177307169217116035723166341284283520088559354226952789359223934272437293714709833729018238113785849433156765957317016827736202157717209424996608397990232051085480666900401448439241467874914547715126346743687648512434855842669775563883868510848298683706243307240797690019664976562435679877880565199517569551729487035971962282133913431959121099253877501221564800670674192513942985522780972824989285202680327778233709477427395938240218894607977414644047348744497936701707541980505347800330274501027649818348869359445002294799816561792671131807344201893091982855981558909909914413030767961508972627785881847335239228435789991953535005632748759166099203559204588901021631465932463681692906174345112938370952766604778132782352672355113727987280940698296450869524581182857386999746000253647158716836588893325642527716148887825658805609574541908522583310857970400767691281375834797218176339513132185213651466061247586369534625404787816421280425851767009552499055169845193870259081728270055680991659818463646246071396471173988628586425229868867514451297974501254640058757628555669062030150901261866058950749214545274393114328873696981021618450202063977293954905746614578089196372885097441153843123433317368669028218803869093430018025177756494724799318207850553634661718351131445440598066929709678531104596239900070882427062717293886584152083271379569982655858661073407723682848849720960489808878620794879494349084052528067369676462344177231634691516095529619484897223992871997770606159714025071701341390181295060342660183912076583577347491769385687582900029189172492124859101682706524521147586572533241654993142714896140013871464487503959097124409732000207390861885544962563348826691418482587188896653836757084380098923003076041951250390430834744206887330447838770859341115036345187484599816741302526596834005732961997280697935387276412497137749194305281450816559146348211237269711548985352106525194060775182636764018215105806665696413529456752851213408216514539419107939591131341632554212412524347696618962154777766507197454500986071602522150596544216964307708192391098617281273113696304077347953238951407059811024163130038118288989229617128849382762163255954591032092915154893939447173702966909291926469580984843891769777653803732731109039669321342347157264822141306809701693894419547334616108189228319401306962760158429743314146042179029534414291444251881191995458672199727062931319423956233001164380560940215351889268592827409036016153283706218074167950925514662315914462224607523789073794461049686160669002346712710518258812096327778450686685599714569794993750667497328986007992852865123118285092012670330511878067634466226108455727392146446378038354697865915734179264033550610002804955154082388593087722550370525744622082444795685379084745112746316013885507796586368833836930969690983574530698517897299977177045251040399841112797079177816265949768102818202479015480162423431318700633779103971606279166199087540207680135511418470782658781133275409047569228044047499972951133886924988879370664068345345287186853436870389610706092715132567742316459043141634871127159781192019157890040065177940203209121852765109654908602051666002163919195243988507618669364753545414241399193389165793885807054311010125715228656983004252026630166877888220358618897074997859388588853232349964050034401436710362830227493909581499050718725058631733329517737674200168720123515400215332686160107412040624626950032634135734251119505209624467426017538909101604716996256971100432797125747524543140894998953435365456522436602733257277673686680131737235739825121529051550312965617281042011895376789583622168515171849848121545458536800187575616102264608737789397401176780194822943332886784583420852762350575205358838136084176268089253395415998633261006796831079695805599262875323815565462010357900155489239833627127133003101339250700212104003836568923534151359371716412770266084809719820105447539853622008364494652686495947678665607131722705982408692464924344791229601120070499921909170851225307783396066519543343907141177169782742652917520516164356493250810237414775021439143402240064341732152696105365857539861117023102979515831448442270961434252880465707868056164697195260000686397522055402324107537454142436287827927571517976667980583331069198277653284683863362095267725103221601885087595138082244340936702667851921117820345316510416521332324782831624537105871043111339536184154970247526124180324002905273806682400942050093107315538871950781085706448600216685210833736370958527383899483946958777998164909375834418993086387267734017465469067640181952834551569708642750857256447336462067714883324862750631643231924241451255786902646706923903086191197980891470523693326773853503027071172687425692947904801465597532511688609625982169060570419652183840169457289933607580739878564767548937743423278322205695274353584941941515950685049572934351192694155794441152232336329042788474607884390309799397180160457326453640116803901472107978757692899131075903852278381271020107132816117297369391268541406630884404016352543191107241059496913305381890330080283689863666987316759128271257714001055594552119228379492880702305091190378089973588014106227167567423082593454555879569751256643192988354754533112657293720855136221047166739306251130113164962804151674052300589134659755260679475368158612716167823923278902476136018146032003502508559134404671505195043369680342430896660039075818597866061468171163710617863615790905545023241880983936132334942451617293709947289549959644405466526815127219058947979647315910612077460268666679362114117537378055232044008198664776681815461249612644829692817818584834363354785357431804870331671312379687662429422189194558514159511039694614597944695975533055680494463552096825837517353874025786328593542378371920393893974966369303961006603779405163701400480835376628560019815453458379585083312333267802531173080370178651907285930750536720756209816167266616119279157814801263091392153531014056733033811257422086496783152252268941183761044187064868103597950772204095791043955192789226006143688211608364977508044517997826521760160458720740424580840873927870997010720049708232380222986180227900562956453239825494038615312596998594803883681944654003244230540268525966151111706798553126560104857849921427885372225696616900020121544812850437709043912015234639141173717487475091790430935030166014436852304308208671319813286055945965587913666552149792952599948120461829072510411730156492449646539355196912982923273197267608355803100580921168714429490267002089623305581943948110421880195045768105710815529204699360813569639949003748128494096839597009360979342081637950146528871544377365156013394135956171321536769649961710376394187262342393859847311524844582911232043601403609173415576790325741261527146469120708079427417202662134129895932946402431938374581182299045571657656342507410706755725908384118606909367142414950495666462113907522218371699525558532311824452761794582381984749406004339198917582522310845794398275180212478505506975057398260847473234859555183359125774950782892303969309996643483678136389907091645292038030348793652759124430316034015280137744212588066641813761488297376298269439476149313777237945686864819112196587530853912613093847359932150826776970541498830109669566731718773414305164241847355443177645563189887398628462325669961097893553469693848729986187074394427221179075061562469853816654998617214669722267520483811784713548218674167695907142516842601353286963359251157370291268891587093789076057748956500973644975341311988088328146106514627792187481209484198498826971043253512276047317503776578561590734493751795415170781173878350034099794160035762073494703837948535615301914363748899325569598644634953217461867443951459192694672822051030365105337057650556674017039973893204696343609448394758749337825120592564246084178865291733882856116642110279129515131965109135719877760968748435109996799401359595184815018316038514653170977573270017792993477901916508219559870055022826597591954116944945140804091977642500840097211344955797485138612023359102335574211827940990200255469462693545760137960408859402493412190673244601375865296361720784134813809634787861332030475609681757909756111031823637477027507632486670603495794891680696036271289486343157583962259162112404972256921704954564219120933409924148525298029352025537213108416927713661324004509259079672999929103285235525721922300148040933922110267046439707922840334615748758240626246254353629707864794938310133223528655893578126237336150254472748582997013825796378377836883605486018385114763423253641118976043449690271747635495010676613192434933173023043007565587899900712024765332590395205691016196530809139377011350095000205919580283741697805450231773272730256445687322237160498118473274162541665160020303916298791748227830410276543499654126818747283092173482502853281791662158039994196555493061183015310500935564866151194659368932299769852295566612992141816341287148757461305487940935343352040663034110435231915935511995063860662469739630631073504313847891416473000311051994233983010462680220960078306844712224580653268450463546475850778494809622558184393914508121974529553204372995856088427110830259469173620481177299197978414184507051104465975173781745117676026510402933077528565897038869766007572263085171189341472047182589520627813816630937994180980816759216120440178635641680297027269051692015156591133444751485366943801464155453044210086893314091562236783299797919727344823998981431837032445755643106823757653327863058275019874387627780941098485717457819097287910481725755366597633754902479888708340852996150235341850961344530012786568131103378876467591367653659813143784887543287495257465900417281482806234110010850264838950295368694598448363930215542618710539793336333691504541748848798952683296022891255731783442620503277544913501615248840222676624514697368521795860833564148258862667956435169493217249499453312785479458881850749865759599829905139850509565499637544529883380815562255658143000864769311638211875864197179331279180079067272712794591888210587823101487020051148418087460924524720197593682602604059256122697080289706793779670859848079223237898012184292872234734162613489960328636241828656231710745307269755777313646751998834360467121269728469282769298918191680299487051255331142208053594267267662506605697616703675885192423419493566679609768473228900037659176696395610786814326122332988910790960572726717468010295307773585653828285262325818805495255780542765689361957865055123575864799113123581433030534829306962191976429727479554356000490548052955563034729380669046877872532847505876669175709230677540771713128113164004577339075572269891916499427019242625551798282046191092511399864543506451462315666620961791243321294615370666786582670311353804497329159877694449133170058588572057699351688243150795188849478388953517347635454955426398198579551897071337170659756266726274752952081555470860956772940878007475736633487288207572083097245350070272725835956909204939187991554690829924390398604299083960333015279558172958240399770970575726173872560471305664138553743844546658090875768748706273662247265078226741435428588778048221508919893815594656861336396317204652193101516490179460146956192059000100329411954099145953224535351598182895043810231179008095744141314578915202363618396886942854791907282960261707972519684151489214112378392791804310325737259672131288224846827344969795848070742295400000726007648780360713057448536850040041836372185651034713774408211628337818569055159983287760080575573265469282264758747301256174968613518194126887916393548618998389584900284802984678398789768875734230220093438506173073396644646029780049919924716394761662334802756848243235737935938824224047986693365903940704457083546053830161942290328508884642874681373049460984573477629334437013026109940197893321885945453732254007056829761478597924899728964210516860816819372720710837580933399275881794359399799410894280894688854087152282504648336197317022122946535225362865385839009132373661349975283529599780844423876374953423866446787401797649707398408940205709031206306971861161607303490020085789784663194964220898989761527330912863125672942691210633634363921726591636399521832852466354178887920762746311804778175370465135381057433205830564854314856268564568886905097283733667093239995391972132916186422297729777079386507152673123796989184397020150876084031896846668299205474571085483688488093733255814661116928524930772261892583178995561596678387350992982762376409573044072809745450899543813551298413334526045502320509676244641360580463497634715974398795036167808982192420146792849436556526850511288416809887709256902741107798720095358729648503842280022023092652823325176574481773595961620235285910452430391826579521080902994758149590942225195262550459529774429022381644472363283719395417926447947070261340815637020641998672373466372067966492530372502542828985269746329010579576141229751102004289220123547122310075604607233418507688314694307618543995158169811327559840339831482210957170521548229239009618299739553647958818344498685136041018218976528978351385962455814878074607986854549016603371158306600848265422824504625614195046943397261218202515081762049562745879557367991456731278564943686529038022059902035919793672961678037373330344698582542294099254881101972564893861891159442931676914616401141022366316699530379025695612798719025601637603573672713636211886118793452479053989706354653712637383961952569653819089276452847906543448408127025524658509043254249495220222205443508873410125014209477110410272340250944556342933061078655595502054147850468911576242215031815435846012835883396267490209727274033913908299515433006256216694662159783592895866731405565971931097272202557978012982826578581719631215753502369033171478538940319408113545736973178400071439200769515679879813091147391165751281102706452663895784212780919505817058286825075614956380682368465545484749250959016313215741951060324547465945647101993308705312172031069342522703921112642334982355970724395040652969346065046461946424018190291701902587308144097833468493681284311047445085716948298857110591738783160492904369195664976339137787325288490634421384944298029622780281003409479312876759264655955954068384494167308775122832764661600096091762714433466182785590063276802477215726357520412566829857688174319426184319876866828372405336150901441981010372035929663056945802968452873351898664148091456972438349340615678737054525921757873366240200425257420343245660861305890844761349441556855546397497643878527526370996099386334303779761551259733810353347339617619851790608060359904477903370376731618579253599459412469470793194134561266784774271728407366104851142969059873975890584455087340958976283239865493672419873584041432958086877290486386960734600301803897347342918393098939366382293890382748397640380969721421885194263322026615438382925660791192217290108014322278655097556053564620922144003349817916718393617083130072579917137284541415833033722623238048627873431294266731541168183357944509613932414157556059957127638110868662163870649488465129202685722628012672061297294774863604047112352429672904829098507363127462399290005639372056872383166359649639844209037855718378237234175957947598256812732872176188189507959636893516559553514738124145636900130248939204155999577871924164847681002562533573555426182173309619788378302050962403575398580798836752586563597433254847839554186037762065958465182788866768814961235283477672844905458401420868955848404302554172893691274820493786830775345627948617485124161011915547166110921123933437951366276417322023285156414859063771394011751433784576301586039601918764880593775570091864698915473283422383167651538837037913394299913655704614841768539639759125654496277975307912837480964082315450731249637907908214243498907511355665237030069134614345307164548730049987237446908653244649675911611281544068049739153717532079447727479490243174705650199278242140003066482187597380670387660718823411533350939622825747178773912385888649149944166346203831068555917705923792287144922483506877810805565487330493091805499723199245222047828927284795249543748785034985645036174710594416807341242733185105911288819141149957245770227765800343355829722383854406596794373037270730753920800245275034473714780048715185298875450770951999690285598597595020216025151312463524188586909217034720150110200389651201585909800571594663845524192668778565065660381081982003949616497890382566090429233457882396647637199671232146602597889742653382342038454724958258083123524906581181784639430287907797972063100800047665302111768278730841672813665860380682694015196988753008993813444705861109110643824152344586523321654858850037671765986734825403175859463570958726924103910852689928837762444729145820426603401385760833209347808210685889774076921906941896615116911770537851801441356240807637201335438682476212319372268971888755321247654710602650258841790130260384987997596272834694222477869229497787917692542686361770462213329596738158750105057345493618217251023642288274086948855447693508515282033514603910683482535442219357475532536941705709492723013202670448736732339233525245043200484498248310449428895283124138926544683104337559591098212378518847399004446631894488613851064559297420410626305639591395081120227880724986866906133617549687614949758662314816181600036218508021666412363719120880157572157855294975627543597580446040717774459835081583545033611274271595991241801715566469054818692528275178928320816845821327048515827363675979269245032430265731984760684855666384033872863547826253813229674289866057623568694378726326094315339765394238009084928669803357737191023688449931818684483239296334314946557095951947383652225464063292506940299438937135439892156318956300255908435681110287594702171700748445213399145573394180738817859479393089008273111865172634731142475249694865266077150191643322270066031653631741560486206106075250676145656264210902445007452449917268682255611109884507259694005006150027533185702404861728051120514832949910096932945038431362477569256621355093597519993249575062192579986331148592391177832088449639973589310826229229985134979190250129401872872479503528752564017757331705679099903011468403538848209113871523246128785762593735782440159645171968709091580639762329837745169776034223709482642936243938404330052119257726560388255334381249872155105393043589984583130238477829229060679075418705088596738089148952885604512997742112345767003863267950960666900153285636979149759793967287489068516643001192967137533230258414174729989719249643121184792366941410190326938709039920437689114021596147730110436151162757813515697430348659484507786083025681475328447658424167327112343026222750015955515887698412784933602916669553907275704323121534091182866105809604419420059126910333758580827597091904305792820864186252404976699559253008268399454571975536394865269003276499493198539433561568947228089584043910525481961666580560927942856396822167867167972681182669781377545716900697745141696758837780727426754999919209806344609034692857838537292407770713003414545138179740340760611689729760730683000334646462774833151665264106894074014291989147670378036543884659049402436701260453687458163834674979466385292252291097625049728695900453910366287044999636993951881371296397376646002131272250794999844546904035803053591544742076042709667586309403793542293342376721139669788009937539429232153978626586425481889399635911671930454277096900979794804810135395796406870570654487100982960373133257330673936693957305844491216489417041975139458725776774169442349492774463512600169107034898855443654313059509548450970160430576952225847400387625409168658778596901303761652700629700901937849724771204178087367826307602331072723685423237366228553732941507044848331197800939541969419049728861147560249542736007749208796407115814727192440376427146730173412186907480802058933553621146458795121929765350103868428883185318647571906449603626709958038019358034134834605987168018635032009736250292947508258137269540387944327667449561090526467561336595951205712604544548730819388302236453054053987660855266300729238278871670033958119046173409139986656721414903903411297879708409907126149177902740222100916213878968395234825602225025486404659071927661400683432861350863422354830391032746786444285192385391822068477798056464310045967758441138890406702588837523504787763047635860669903673366682402280369586286030482271843757240960978704677010718605147628138452553422566715625468005829689196521024438729029057188414979671485451675655360724182163525884847462478354245790161108014856322463945949189883713993181792166692233693712957720929743880463074132506909825366747450336024633439605602276796080647885296957250358307997906656817225483692627665451949111190324162901185275777569919041590522736163367982069618313778209209715895171343746763261541575926988967179785307964068921926881136670350578057473629566038554782849743792759676690677696490980502526422582374977521262685745623495665232324561313624691863290985848128570404013973378249422860405525164415361305961202196960362138378582272793667652848399732384690566913875224578433703665115446119252198927197076351622132172545156162595423958717797088582379495707972409152492998444109759408762076677654661121443336899087365815828926169232982880864767155286436127400487790871359413206117998864086107459412048634407718959313813619565771380011197870426677836610793819945133215517460588448320686885536307660339149583793806525618310993777279297858083421899792124220841133590233615450833535320972432373143961915984142437758547580425019064106041333781692717809535721628478537020862800574315072318286449766677560103947924601865100821921059313632791193552672247488862735193001392224854971099636874396288970688877832304828809918979273447172313607877194155793131179662932962940469829561615819388223973013312296573068587111094094488738620498020031276055851393630160876750664411157792136726637826719553809538239874882301469994796194199826576029843524464853310690619238040194945310396896749308208688297962659536769806115696960747684945626101990368558828739309606504503276396780446067579883323483942489902466446023527994267646773101648022707343376341481040587255505360082989868347090394044844948344672497424845721904957379482859769055784349780114169396028207111437290870545235937543401102708343965419369353136516043773215952820160775181656782807737951940620067270330444756507716365561092192139124768106620413228799775293785244088960346305331746638596804853365800416370731427388721336160348015756901925724361449237147492581137756905974089499977209412324482766174986462814105110517283365230525413134827092600433394187573611081842958579099340526706309765283470272310477564083330762025438686433952403944737396416190607961635793745055113577660167754798429597850558584820749645190708383672093741719517784886298766519858085776476156451278746966615876963491128084969791707356974178804196972250992192878927289810251958193937630337488897365538460272316696220953221552868215476294487574653312418027013033660383646512454942016618796709431696652422704422037788279531337241116307999180145800510764231808882272372041306256199397807082517817494675919194714268865722684133361257607548746018178937175239488750322044033618043020886612951130940401684397037456005867397885250454010638476455819583158094569162000988345785012954028942439176987154394515160786509754970068731926511187121473649451793192493742526298406405688902222643949569687519514990078874912693700969481447432519892133171074376638086711338043895838931391660854890981715341556988671577818101206915954818454585871385451534653828532238364002215166750419355312118103656216734831004087184539304196726272281428234798172488406695943418191574918627442816397844658411271481354250344489709747776300176265722806592765780522755650183171659655242712189374095984740806167451014080825112813778540939327305464971634214560435019876453135108667546747433331307258358997091304601862275442667468587338450900484899008430426021703110791861435463003566874104674617173389555731604572214314952264380071813334422162838243580824862087837493606969404034590612932001584356622822210912444230836714218668334504870126048849894683068127079762887985833020957869643489230966800909758166524100330755587104268513995718492135151439030070561502325355723011921651793277588760122329691297611047603516013473176781089696240182484413537374468933624596670883161528440508193918673194426268118406679967344176464641066675065992238685275405694338675415724910746605479775278252618811631497835461700974138642782871874044795833123212920716378354953662260621930548635448110572750777653986478790655539676311982100426470724240931739531422326893314989930239759525206757358157717799590187852463981943742189895812268632063706280923640596309193681187805537831429897784950009709499251331830261304424607318004110893709418031085428540959271053293122112944480698029999592256049339432079459250980905230286207958514664359379055036036867349825432914177549849172847767843997159328677561269780645213981492531749006355842987156997710625636366653276881648382304568046550208202268179834964159578459543851442096527457805642530250306659850429244820364628306864152900719786112180620419080138199858594336211985992406918041668700997665084966270815477033456001067526024963932061215558242948368676834876433889493343767985585643397797308202926529105490999034281644727008410739157176527608540402120036537024985755334802473992420556494114192405681556151541796631473043235354721191864903541424848103781816379557775341354241824510222866210663966106417999597432236186054300922319745862639726571993984288912037650501304193229013449869260060375255528444690226583501116322236643797706007195201913083041538140523116774580947597341996441977519022611663284924274550453230399759763593979178596106498876739573145077964438291521877969922413230430785984204377305503166763708684045704759188747768509467845986224173834537972990981777429949142789023679373653154113574955992277296305614587364602931809818153669266247638517346274124484112213479826213405848244497967160312883135934055226771285176881504291362050989151177347590831991978342976314081041109022588805514485203505687656856180436670726686292111215270552985732947218556753851898801018920180656593416034949226026524524516065821074036009394610979284006042316069461418440996984935616336958142330277346770763986803101152997522324758699104046138936668491051579785310116746000152252231489189179478152233955423227875252262886813008280167294275191809880401438908107993693266073147055531063037478256761292562163027979470668758828322484766268664109054934353057487435448278794711348852658592739251623875004889504000321759182432941688317064836460755871287227441236818037013945929354860606445857069216399364684818624749861158241219063726930057246165826398540182709589469765904833969454876995689730099911868390308456848460560253940749724445383040166210357188739355867505932919432495867615551302647393441500445797899398049819162041053469594429594179022085394941923506997174938545740749276207100960494707239717259539901565375269177396649454958861891549018638507890708386802514195148847329049714566831201900828708793483119747928306763908605732536857795381308729130904022823179712251770031397825750373089618014879539223818689067014596881492436379002808505817005025464571555660267335285920232671559624289302500312864722661188182448618631594863632915210582276001573583924639779422710824870479068765540301799505360380036573166744086269005130218971024132227890533610454354529025563479345580935534484322854155014008583465348116293090359279029871501836468356562725319996955874285773113049589562398385547528419376272022535458084602734258669171012565000336297369026181996202254062197464206153107470827454035661575094467653126766934908273934772949758729231833542675988005061162359700771720898105139195418399469664384189912591792160309966819501001015661573660310038070249771607774209207010712410264635330849767894562322513804559162238879465732538730627980428798423589213168957514757499083157051571377051948659991315736709636595578322172110324068268384289707355078046517721751597767345140771519326284020756497948102560460302778209873493662882630898845399951002368648958223135215755286825823111484793775576898006268714748973137489139250555857717633769440103819893336155891596176228483788668479941968293237942231310207721687669650409447767528516736143346914604868278887106195641749680792469587483845599527066729589461640019128137548696035696551827793824509450664562896427948636725166905928360083008335709448672939738109445044997324583416246880433802816962094838576662817192799740511552317613871019656614369498674295225939825796768470751230829083518718536445576286366673856506288237920941879716390137510040826277017113903820590262375437065197035936763624422850981403376554629868169905474196956512364673001442163145512460080455492451330055835313351786768389229034385624934675780413071629587856659009393288690005324926370369590598558352034672696247711689603272072907054599539896886223093958035160955188362134119544929299973757442675352014126321429871634764904860925515283704505386849476165315600693031518499498913672333527849888332154174595730841474455074573794993801059395611201028509960669463355677179527304106506198771364804566532499516372085109296641825429236096408627824827481435939687421443217747561120553749426165747778919100451073139638493074051438100869919188726539848122150829749991275729088835271033525005949380767112062033953910117854160706874190137746702566998786401436266454783899817551390109865564269031071677075587265448026896796485227126283703758341194655202068480448554572113972161337796788900970862974757402961786152798814855714902886080876356638382383209230427278024749747882361134085939255020028940150081941212856896446491733312907550915719241913745640747888268458970303949156652237960888644092292087773548814010561119938520610686628098218206921665938580487564271253892245899645789400838121243399767183008807912244448981223446692993494697677505083607162673084165054339589471000979785829804940734373957494755051207330317905450811137392877331614714841022149832497674939275136445842815628398421338187013107970220812835287820584410687315762701175974516416629392544321982813577503621924794238870527885553590767085828860109800398347362239548160991866251714505866656727793401594920851460056710022994722876523595104199819698929624915894495414837673553229087908149015381958312039258051380838678969394468734627743063312154941072122884162482548904663530329982465459406033214369197224786739365801413623152680704648349482671490583895802760249016190232570749223901322719659705746758938125729035006626570031508977064106692200005418712608759140605373201452989744507738107030727689941400212171351266870020817842408266865530703747073017971686585931876619120335316677937057168660992156012402274070667754229434954964209042412522470225039162765064950857654712392440452945719552173184094092248610190427332633553014954849734861046359927036927206783770630725338777090642627510645723575802806896688803385410893526878312769698053024976191938364334956981487482591768779572160397460943235147325330768027963622054129202439582605092604457507523845328816648593855429378641290395923683787504074778459097293430153736186836319072746622767715352261222166036340151118973818260775281443108966961023103937402863594272394475868931190568043874209932080505824375010390281019391199995959243353929905660999800312159380762276938745866031368091360898029322425824016077233845576206172349166920837901332017198966408433186471954633974656467834557988361303853395701995205369930095685376283448294547288841678291339649573822164129307930684558683655866791627561595589042851225775741739651050214451700273441860554658079846094511487835766337124242122032429997466965908441343529606528226819569915106825695462622723363209390168166455413060584685354432651164213395242171117152062149560772230806945519562753353548704000417696277505433515577644295556536180425167022806008121672817666399287032348021500645023912942943906321721556323713512390853445127666187724008999270589209333071350463737970727362162782228020155612425865180546460903841377201642491394213965956084759064641040449187268406576086472835177666625303265786080513132572447662432206150155191844757413332871857344827765943567123116024423567964950182993159529754612397013868082793186161930244790913259346440988551393569934590486816388061321095123963936445465885892885754675599143651009945942719551607724967733957230707367199548755421334708462094187167146227305690905296337683306648377276078352215500996686863238799446876470899879197810414633442763426412751789939366745383727399182135513622116034674928958453776603458367433613277734421990832409405153362851669421302564978219608913294956393084072054998748395665116694432810477134485848367607005304422905086723372291957436028170774718539820167568928856665843388826169619036720179198187540360703996144399998478212548436860583609282563272156604810244594195120588236199109685613747846287596060397350528068621466253891961548882385050288907836248202415878929721526922113147361555087787856336282382372558774650545028835804315892185241477742223146699105312974089485957727840114463592631807132682570614859137235274464140004243888954925574951162796640805893757784688257266641572180530729886876176393328402157745286773321370826684201111046689004868631777547034024489742431472804439721156885067827768440619951049642967803486643324024585987075725234328807640690444935126123625933822997906119913662433660966019325293036628821707790287390150441703944424143199298783785054078089340444831745932294691171282964421526816893298612857177311876135266711133116661239357708959453250149451475462996208556343921799337973252421030032608763572664569666946351726315790774420324626950321982455180501073444550307396306560482433699275504807888839810774964559247821205735810429167141924928530312711178024240872784431841880331861933621120642963842322248883427753157405344044833345764619451900123649411773293555754656359718113901685314485043945967713452671918573982171406088204673463806205482773272210771671610106981331107590438097754711036499457152286874093468089920174173642979591214899767811198841293678096983334577700580620874726836273958932844815583546192670551542560935019816612154596020512647942647817939234669372950273158921832436936781285455988994177278221093710371130050508119119667140845141409595723568002198753272354119988438991410286401233423282281682227604360101704646328954971527063270233823617828952903877513843543988037003087914414492102421924686621311441248250504018918022628533031417681783916983280398071114808806031182010909934982942565079389130881740611529595585709968783464856155058977724586965902228685393952386335152176657434334236183582018968718874844370790989916787954745552857167274929173329975448671065562909743096576631621382583834469077102546589647701140107334217615468858544174163631187866429423372670955795706273469185206991257616651088606550375958765142131963407625772498930135608116122573435221213574794327544969016242485475790279002207137371302003942799075952856902124232963995983329147577153497281532603761285736881397844202582325753053478640552137546254296376154240068419196320380156197996559960210256266376725203263387141302490797056747918006415787571047356679786250083676792390601633447360348745350983683256504023507479922893537492034267541593863858129631760000407504142145576909463270453475932256144254910738969747407871351067426332283100609186393752921641036271862021316701585343228708735490538574607190608080613688755116229069616441423857820529697373155320224695394012891718216508337435292480133137681115278559770415806981767969333682171004439979976137380020388730335513253993604417442548867559184615465528087154364500900424704644872056529929180885141232670704971197617715918533148096044245541526831839369614185432200311644020129133573276342810920135664866273542267458908811308439307900822057044960108312037200996248369559144671840373616783116570100459356343920669467834768756809258457729907952365222487226019450216264356060155889049145368962241756800134512014835863139037773405104960444775800901008966165625200237527524284804112884150489289996887391871697421041813313235850266686553418512121304863284032002325367569379145256805439979693555508352921542243703939463124916662637066370781977269980918944912779203373130179262469230662358995380534787180258497618342749479015950370273947215790449129809280122964231579948735228723756650467099707410531580567352453368699660003416487621231044547715113230882908064403140976175199297741990575829640002582386514564861420416268745821631374660498124303020756785841985232007601204440999729971714404027041574523503693036316087151081264950455055180816503188318035659890197317265590369535355150635317932427635699643115989076919160652012172120374010639129529095948234419223087832901186201830871022893855908959875747798770155162982129904851773803020479921236921551345428085485970434498105257877067543948475140438178081770411795581341592644079129635192740000831775599969636661838889440010934960365388701975344508621752162070839175519977530823068150730490604544379457170442665632233016576462703897072020761679323729275279133048926877969083712182705680343368538456280424136953434371338791038985875067340223235019861167780414659535860381223471910955013104382641662232887933942070821778001023170507370874889597013961263080854542694109809002755391868932397269441987340576802934545908620313323049332794752526248780868829148373263875252551923657830043943394318322718109440967638883249744522330435860868742202033147102885716448824904649525643252388421308847680444618292652824682868752726424986608747642108230727100954923298133510462402104733963475872746276923089165848672928693022713666069414725713352716668997483440895183009597225592535319808690083726989750183976145811372412307160888495070497795310784007718850111265322383494180956231571435994255451912623498080852607986527608066417181727188329631983152493679158674234654984182546893649232384300139069405993483140904534574016715903182310538035481199857527157710440612383146122861208916927217961964638938492121810217673456665863667047294475919371571965547149172953542724718122181621223639886759658377398755947788450579386081668223399366853094366611430875150510734367590871130097001915215913587525639645002271042167612169770801561341009930427835806714496400966016099189539361746473692459234561495112652457277718589081460315483076889000252153086414719961784384924380920036086981355892773736313119690230089570331870319872196602520734345511105226672467572454261904455273457108517378956428119199320327992644115128795480231598989659731768905274682840805505281720292503457398968826576746266628514801255347309470324939931914094592659674449854716709634467433428869779138691756553489084491854852479065333168928009658116742983625689871129455783665844438297732432144052354179831604516210747924735087265854779259195634637170626254225385210073203784668793640857962377755997286612472797077538190907053320594281268705481117873823023648895919448534042776586980542012146660920625033486360549800505532807358073544756535461390927897127633876045705451739564865857386173756875113944415577276936931393374589280898975218699891376187705022875824957976499721219593189389502016428941387279348743459274656597879226540313708050132416267098096120891475749361080170910284353818199197104576029368754348041983909591047164938485950515699967001501246503838759345276763169901598736572093433102666640975272332731646601606198904221395337050694506767602340126898663687724054841410161543678938408729880518059656438788175001331714050372238507246450748274202320616650144467997082529046228635672595829035883127736861404032520252885891913212824898418191586036513966054918656815365821618122068177458847015862478657892579919046807522733292198120598140138076258197548469402334448487356122992110373017709529389409703052541361250218824245581552495064068300075663452948835305365408053895982411767614572081158301873342018591135529876867895830316151830150620240691108775478241770630667804520820192306399173604926163874967513240751730107469816847149266691536040790439637782523026057875857747210549432769977023157544972619659589718271025946402278108415168853676566696715150427875066030817117830432739298961893744606949813086138644338510414850071621813389605160352374578447668403012612237889933967301416046560161593848270942868683048710056750260283827700930066827651161741324312225475595547175367802354057188135213767397406725972356511703218026524923284084511247520246240023167059373424418289001907067528169116750987369918940288057767298523349638079875360577060154314941563836524342119160629762731615392362109635486398269220133223405039465100890229519592536708701305000379664514462458587597194274601475564575248353025708357321959954067474498059348598361565343041683265936934310867824216924135054334195430669991808775281616796111161014933887293641275542957732546777047294115316732214488418145656006382915216494169841596914731204405756651413543172021651494843890845228176375790068391092172134615703753081009055713656223037489254783681180880451643744291436709944268375101743873407689653977376273292678223811978167609463721550043393270747222387766607775237030164553176395892065840010692446465717188599345957496917741133920181971075304838464171543634621642074323232658223538985532307511943856868767693543712841821901135237910840372793649957364773268389298502072207708247135033776870233524620344554658133825787838678032626310486740825140724433503502598853407619391493013230754602765220124273495109136180143846029130730366854666591424004583420090187350622701632130613004833721347298277140174799419163849945242846815024848018151918131945842059703581751471505658591432146033368621777365821451927047808741012416153853543805441717306917420046107814575337560813520321476467135089252736475745202527456051267351205790423869718763231295118569211290544881446751735804973097168759214522348701162193575689894682782191129249143097408781516236542070364066634875297236652399759578930456822150574289378337480127997532825595897633558819829387690948024062876972197168525150972903251043134296155022420838056769180882539671463043039134543662838621886934400132465510724350668519525633092763706846554532549683109294842227168844905870641724095003871056832737715971694123479956570334048008685625454738472901305476921257968907475998524609316582880984612163013740182011992878338217610098895923455901063164900724934328384078797500514052697272747000369328879181669979780044106337284823734565418208525632793556488981866956049880229620704153344223073883370862300718409503499159882486931917482026316810560930474819305460260600967680886931336524462538521886365602612871950001736804813687631281450826796883886353344591744787105287197486115104985513233562156901793436557677719980262186888151756547537729368766664776182654774743705448314891154949935419733821230222505564060804277475123276198276976011894237822695269266208476598018853706387386142629137678023704275378568185256698370950653767820253463015990990800895281905245694910716563282811261873646509325160193396423378994669821672526880506267910283736337902375526926517264395468072023957456422081246962622396115409411512043056070695772383630619225518865581729292823913717629280120223465192138515690450167251332442978344962209669159399382274687709682710584151345365833083120555015437251140241456173910231922346772259508667489177577030192239694569604598583910917226651067499577074028429686804403241052912690542839709325587668536428875562531863469846458962687563773484870247996616665908818452108608572527357383485265009264054309638461109971082337782502981158915996605903591179633786461554088250103375251831690034037088834743209644006664985480978834880830235402028270440086183000686755859929821270268562417365570773985469199565388472358578924027648582845498054285287220707747865393370577093114212081945958317329902403066159773090572964533163562997853616819962578715269733442746986285459087519846327074869726418228243406477600802808625903553020497346275471432461009337898182807567467827045225661733932567361571587114985871573452916726299423261004118569612779051240591457579753479194828964400774813240121548814960015753011713142730351939360691425879723842420945901463234901899309511149395412517139258555759163893976851244602783528974794333064954737198887024015385470821842527576816934066384004629013285845258243326679170641776034474286524920871247602848934299973992559971087895940160546300839168573295301263031793876568067137283881130972301609400271819017921841299010339540361469089358840329463590815299351534806868594265259507220612854007918461182011038239643470242039569805096695570325660091480585317477830238414047895030262204752265507255479799609429243072750026643216421389907490801431394989730842311717494114834334269827603821054170595952771855295611817829022059060703201535199815789451760020695634875765924711006718485970961295846241572348978280692367820708957674444796024139894880659567133863281336145895469374998217320234932236226375714366200849335409485436518346028629903718495203837937729369180622022556010668031137438083796047909281684736585057603171964199482961551897485553897625100885758082877035838040887121315378624980962809017485719828321622304922937443293463801564805262882513785722344018629771274540527594834514781995325104206778317783616228450192977711605660323819836703321219471102265698926581397221367081800486170793545579677914517137657101517202765126772181640148576984904448891484371247552174643168334881880953615119813085455204581469111884087576819086144526138842145451834267280018754348771418358699415980913594235427537472037693916687016576303515806485300942997519440250429288991500797398884791896748833237466808616291665811063791017572423480398433486338722313395789547008088852028964360079528669752480267771657499713796544865087035970867469114184160270017495917030077708248645391737866034519540599464800407254398594538433326333296612921281084069066866680250888660901590988483155717420842203714819894488922849190130296488677932390460516589563790917168964405657656650270052473276078821058034293393148568499137737374293337295225869600844134558132699474337635453320195443553109683656108893506603767729349277457858306802323233769323547917726871955285459113139152805598294337007846487603603142502153904681793468849194628418944560501931100340356562264595607150639554889143167555930128523151733421435384500643240106671569809078917344745307009706447035127063838743675747580471975475251766087087357483862214802312428985164308219489410909920342859032520767401369395086642528822434357862234455602232573109972108954539954557169638804738788524564437948975100380874411863796568856519997281646974884849003687249462436787697485380692354864531559339650538836127721150671685901555805409723850747562781594350397533446328369601777911044104434167747622599366077423350603485806790068069064887548380184832488351437453428077832306104301896903838454679299602461690916735966072065075835543332416332250225721457831559375479408682986073183403150292227600266302995814266139009961903297548864595688903519467847527191598128053115857262519715376925586642002850018753023386188710282964271329016428411360589134963889195863915037749827008254898898916027277668763883683398049937348404956506456500134794411509667685905991693792897293923740003475665066762590739226890839382469149244728256061256850793341476673210514631083671970487717149500253593676223290722786816602900471203584722765550727741251279778136671604143089791543909333623908834043968162700944836288442122251001089168950098024612936973552185357074421784613707532214754775743023652216635377461358530812917884042587669093023450405264125249107502932490611032870243378179443284467068346998269440647416239455196987586412917956705388277093417835349000907117729680878472694190855471212380136528373872387566812092882963086968291493504076079097018112836374699797400416805759598134256374163932347589482366473306027416070292515276895542447593962199910050533799102912507921887201962148192099359323698446518091414446408587353116422260932224860194923866343002647829963670285287802112417300820942893995664534050948566233892267969574908891357640200619528383513071174415925580728079237918845544848016367342598551131412667444336433748613339016656528307327897064621087104019868636383809014307084524205471777429014704425294771616986206168079236956408294225890332939710300031608207686818971983750387156994653741633774613108898770172096284142886280826035268641273174100148186696481679115471298319081973273329803713276060126472145335116507851879041662779681810806447633541780365913147172643823574351093516179921723980343218006032896024344509317759234816503301549057987274462789496415906589036862696613507424556368535624077951664347102009190002967604369260722407368798769298358164378651490662090538442576151932280458405660393766593326253164361523935167138242108806749226683049612883071428136107994297661397825315474272058156710163172165558166506861908077235875625363402466614742788525748148877038721820881718641744998893137300975828151701686496532816002560204736184680882351050512953001147112486675674723477021065244380352174512186589218296743569548194884498262177519571244334077728614508822023497634087773656526694166810810629379452449185867021086163135971491151257953524802196278053394569422174765599056307688465388801473567505960075188269712863919614662521580494694836958420853074590646290396523690276054803351876176049847343875441341568498641771049862259792171704829343070819460906355604785252713266259429877495970380957451695179888569258011491237037291220016764132890751888218176642867875996083364573703146402647696427252131594901372883708917492327293153227240843627813960777211511472016541113961096547502039805090680699325632378462098390933480262933414315349752782560255292530710429563289691959401294622850459626317944190646767024946984433439018436982321831583181677394801077715696513129821019487007316256539326845598505832827194570422004276588226273912998847581023192455052630134471550373500755273789422509346123933972701401576518572836536741175440364872588658139936951683549793561592354879882197225514122144854049577433922367596253709163834303348500244093546345488708057253688886488416179647433844973868260480482715125715263966557122374808632881461493707867735051283198113923447828719230774503892004181258012134930120859131047592468325368096542139131959813858751667942084098107265780874974728439232720780479283983628269707666397852636791278681662748192606524499248426048953023758578460259142701684838182960796645423626096776343833436059294907778518162888928695106881005910879441614527159765904673835636131663668189273081425677637810818750894726531612192864763745785202975542056492454278271907234900160734417614386959395654667260499780250852824084622689541131098287626479074166506726222842022653804699499455769302691296081142161634279562034010183425325440386490246492537044628536471042207382620793453103407823889634142899552864575458917465019826638104162980872506138343174560390641730657800218681165124175774494046393582568565000076763717577778363144527638118898884451899600816692574207315150835708956050663736442462584072720717581873313927510481347730280771818353146959148960493647792596814107207228719367431400495931100072474769398502535364145076639530740815644956824616334619973521505107141644225321782846360454788339237433299378621288708427101720114913845128707444910643854601030072396598784862537541901352680549942059499779486974170317694536396665719653450620857794723489242571312689386613045715261603276422773405947051624532002664323629346613393354823741436119528432858244067018526510417459081795661074596891748683595685589928959704039337488127223647621314830773388962797968814757055723923325689315940149464837509328986879659649019946582450752929728720664981539279788762557287041348562662228576583521747740072885000433997445264202717929445316149771886330376091405507196539849362947050991078461844127094352706785791459103913953118494761032359329435139567268969772139563904258777436670876090162144774671432866787170012443353789732653050234712992712195492488839978843829282236087953651795020883569505664268661239469604733076258267234929303841223413559595713508096606565880440027493352976725986935346267417376768251117031057231895092465743763791363258004996815017683612682758072140002429782408078545529704759496654863339635291247265508057481492244048418161047908333164924784181968333153065516740469614894031856524276144640677984217182581756253933228796846953733057786999173250672359861954887495467979095055594095257563887511122296793895353367998744527105401209787477797377151781342743010272708841389457936290137343366896752023283001497590379767269927048124733732199196309415459297680708487568657794871047565200980505310974925275380663284985948187206088237936661492672085709697218055273089742965969380568980274304223682434119090742307876322090477356662505667093311137096193431120278049856207116853515701773912970659655731904925384289916573448650853123767109656663537950208955623849711041667751435404850333353027329289279667056918442914776906914929250399388278628939319000782934295734456067464416277173537720476325037431824307320417441426022768471539128563920827410896795324922408537006672713083567470116979069484934264135958726057809685448819842519016134194076979931294813756845944936850097966349504710118562538429313910703711971742389609068396510130583063798787694720026455480424503425046337369592462261523346050879770323427522962092461806811158494723238613978300412886167863282124763423108163941276125166298525363721455687545248934838303552224509204922739775317999329528550679222127828517843940240006197010629764613563732417378796296261937376427166983694287540817158753894447974491995696431506995052932461474957512047296746703529394894828913343614994651136392443408293101543986980002008059762654169467080658549804838429725393137773972936984177563417273643878718899500955769198809687044183579087785262576633805645311058286935505660243650365552725412755312270032701576366506134804153467938101298992233685519797121215476921940158169579007027856747722411497762848831440141841882296222321133274435230173312424536703908214526115585678200734263572838593783731963283374692427137630568651991722471837506933846303832642237061330389356806501675336961954485756672385240150550907165604570053850988404404864735134963084503572431132562957646953931956908360533289542231181785989493530570816488259205295985097893237877474684935337342706259172232324806131140817839990850281928531609927466731792710028966900659106361108737060811400852464018917642054223476651970781840220443349748301012227180309856516264403986209259128798971904591881052355667618908473011325497034173985017684404376966260137642196323965784349677223976747313839117885743757617646326885212224673146252364366467612296467323641763957968557171864094052685114368808621776368232082649997037751516295370484163994933083768006219925635753169759262548193911066053345967581840946885946309638527684920261227741090077662069778114213274309704885270242998615768033278628296768773407808080220569517595891412050271679851634974675982380163743236303671367724499225414142981105155588800456502450607478474019091213292550124130767523483166129184715060880202570323324188408846323814319603791026313745815268177164102762968752109988707765492875850308925507439398414511813961371911193992440402413018576062905081950437920563601653490049409693383724873312778151144659401832807778081809671338153369000574697870776118209948022221572228887917458544896230810802776357084272894183237017955160731815269846277873690531368419833751662721065507536417638239385389945645824451653219836002603641067999211798598262059111946583064508724646086974855854082285291135276546424245308875573807637994293562359293825585764270305164215473484075372807310962569060537318373545445753057975904083766617639297968463506674468155193133119900017340652763576580456620712506062775816184014615863040657065900702575071622755317723262314206809151991751425608843125956875075479472295061976211514618455164179804759878408614017568158263611323453214765233010578489246920426239576129766105068453498550036271600795564365676671903460465622425047771330082584343283002500761393906282580069151778813521169330310685030350719007004749294126734046721079100334889448142657929179750135807009045505980055985541621224958387397122487253812025243359312401282901457789837198697782079216345462907974940036373050613853559306872555462337643656663949300162892341129449160329518561196868781681236893474283339592414407394148767055443294835762136711125631722842459841383873804913329990009241602164226033390752571339074783630713326298013463832433419614137867205697845739588594263820542326194804012055891656058490890256345092018657004704483441922771068017706375215211723582979620901038077510172060571459948469212062354388453171690002613977775646508997573743622466318395013579775312715906840199774006681368355317272615666392190234040064559075218955336798337267140650371825321353467800720739590433385390503609113303701360861712140358474358430784547676536390655076596055809567880318008543146350507449843720524366132618214533711162897960068918497894497196917010737988016788925489022533599345472000405227440066151041242305347982104914857086705992035828157986597132470311857017885732254789699993353240564330236562412989768455359515881982681823376302196928980691902164026261394770965096813152093135011331636598796560580499662021650733292429189083162015762021527231179474385993600523923708787484148672242406053583357282686952770984056342962802075555174035919206379539993539571971145942176981423715356297654246435940220206573283211904552358104818891585363826908515318935347781778610297194418811160559348363269808811176654375374599097277923392475901963898206410443958257604002697116229284751298003310319101754406322443716283696776272484573881816312500230235060014084267072874428398399695987612676588587150130010391693018147171234178941232654481486498316706113746524385914480329384589885249129838028178810783593107351428672695516128976747335566035238644808655741150417304760748027899723160299974971969998171097915944389344573025662164677817014317016081544796046586159763831349951970866594746814112921787340307462155626367565637473721579296448460734941449870648275017759504282671366906613215280724729280529650063108371300521503900395200059795998757020864196057538765112141000258693002618682473985793085081400624910211410698770585073568120119465196270873355505463216742122897456613376012511392301055114838438610440654081646266105773381693224679314807709154439433121998035119936915706959483656960182101686595532009145447209201668841697614112213283580112169849923070862487222222226366979154011617390129887204440869209451298332540619915820396079362662431496298800913711351377700985226602709971240625613742262672287934594369659475515690744175674698820336543979317965050399701457229808749283864081343695922347609839214445965447012602004478474233715363581005590552214246693871076049187468600150473312649264517041648431339389550870156385744703175187630352095969033192023764874144633285012856550804586325693746482741782587605506885137415498407758546906405018822813256939927564972966209055934175174696300617023124378254083653477938259493167142856831177964048346884573933111513163794614540454889624990018528700717241733867950830290374609804172693164044643252491266321923468120232861796908161752072566855816238123094401033055543938063573765015954041649284917256765402817773145648929772501007232521368271415715326960400120672474806047460138717359188909967440658853502552670905506978449078784730733980923439482605131982694002524238459363795078388015646819866020827204401901589041231712678738858599288948277113503800633413833472023987325620022867959501101785691087327064990938222231783679533695990177682762338388747981894815110967707488219276865381080995397642491053808759033825278766706988937627760030723323985307423966360569252416290485760123277569749038283440548144802502283595136155717364107971324747209367808727619410245156843535426005450248864721392490471195580108935773144652023951716282351660487972638479701609464882908993677558370151408028398892901877833534382704666937555688116243322790193020123707337265938922386830556141923345955920832904399253734136160617875824542315354807165465950450439094960406992001337533508100234242846004718153573544210455983523464781455253139486174835829166454894761484928943920873254166919686312024131167632815268036123188528824394976689209987699803041212663029136235182143618531159763910800250019814724220155654198676259237784503165110522044186182859991674990476681505731058789740230516722949441809970819546253976695822644372069784399742976176659673551367651586904562877974522657871366046352179406983040503016651170186570903621798341987216383345622658867546773227220464679414884391934908967763672443266316169456761902176601500365433611839218808389853657301488949946450796605681042011177152625252416835616552064180937564049279675379076421355320655776015779855954239836083553438009917780804711638804521775020187363563742478447409884674960350573623732744278829782622784932902969644282142293467358909738647568245283332897318738332832609780840058536580008315405956838496553760617103061452632387612166378095590528360050664739019991095761799392311503182036458833992305545253135266604230120864145157530268417465247940072162409499576292426610681875728577467857094594371822157558906571745121409074954543667739657027400253871559747208107430481487796906551246353408046568298398886537222848343527039798481702948694364479944186686400956158056897212419710686536390201123928883767919042615627627933776402458657067309634354581827709016034296947624712664317054359931511429528970889291089299545129762040773042773048359645061835531282571182570712346057281334742604771661303882560686436742988783385861115597567289668742794169875689992392998162587488097398888552841460145510559032517375648111176217940614631633710381897034467050478355070461801606686992003465415595886259670896975632413249144602498326108781344928769282715736868216609394280980835605618538282300683421013584234274009284514547003220992343656803097440132091009161043455716357571769751663574208943118122243146889610326426909660672165310756532870989624202653417426668525196400060020271284357523639510664776763475312798401426802334384533752305613928837090761837998387261156628646371626847272430198123688214529358702771007555102192840149097610848201083211675275772535089187722873627967941106989338789319607660801907266303689345920687577852447413977496614809871960386343359102316276096028230711973162650976135369638866063560682681246128438747853516079790107075474653260971118858100318478183785088958333925082342482185728175272901707812222783586825071120249921167718643414857866861284066269485004774711856688869177233388659948667239333576679076899982700499853417052920524047464332579605425670506913538511400113620939045841552629533652183769918474454460332043681718405293721204146152044015795196067696269719565559517570516509781311170918256141723123641519760353429150098664493269776910786908936924264369684141775699994789942640346326408757731311700053361478986199186716377437274081129998031780122215047883334060037677247571213575603837615884743550802140644451455148253584130582670721685009606546075762032928835841329017563869812303503406091781802578064546052671594435688643761193036774213275280859321710677887087836158383040443088642247063896671413489515870351180189420620587607940314679724228653422061602857667687694010900479959801097079038324627547644166681596895686887448760657087141019890969654226573622671211392901893107234235231370053604120526615402705934246864170585421410988324164804397906266338279406647651978454182583044422630916278737365173788145993938968228572723215314477159992234142523479490819022751108200508811840719139923959021142814635246724025385490792664009078199030426009602586877562858328267826318795608364896315114618218717248479760070376240476684604086996519387458432855987970077330357842362230378635002244776664632825597793905102906269785419185583204051964114738594818508329468333703527741043275209697285174669498604564460789489625778922871128195641546361424349472015481480869806618109127846636232263047517168255923368583379309881020035617548109578693035340155783676812012033157178574110796909791678554124041979249755087927375787234134689618833989915501864637951647932023987794013927190531155153316482114134950363783627062956363462180439635151659798503187235487258455489594985039085085882629291356558762377560102655434348226629754519091773293043809856584009297440420312253515635796153592321000693871764862229354994074142612383897150786496546458120461530574166173298616176684565383223424326029620187542739471089831980060017563528962767193224504856576280151623830810590362841133518033481599981070764850459131089724836245820319127421302759724430253286385841470554827752519812743672077780989757482915141927277900929228410205566355053857257508437779139230206974980001732524922425994104753146262717808523610604462065348534031525474284234645215711415053364036810849759377664385264062044462120310664343803293025902297260129745251113066908819034281828193042004078077477947376796100660772755627180581413793280820099553923381090477262950584494753020117990800999530556197262284528932030795299904797043087073348218729398891127713654838842577841211358978408353104683239989281024628356930384967497521198249104131891508015255477758210817885481929265114563185164030379847724264344896959984652227091651542725088752807299090167331167626655360448685623368102937325021044180108595651093389805621903475904117277402531456848227897047248862778665197856063109126339434508903001680943928919782039677950270854155064797443280740888546662618554758539542885302843163359995458559708784644970624063169409102111637345795310365367866383969607892781978742733345850732221172574338091233319025175505541636321398290948450720800394225832044683361532771356869405102672236543177365503026211401544917328358662048202933348754762174883601913046314865799248579705002826310297536948819892068230213295345459232869977926617722512021567337214738623500747934161470776668432511704887265484450182180930623779434196698332322432978559265273905681556076998086865766854685947852458622279802247900699186868696320077985980150273245083679554084481309606563537310814024647989893499961492597704752378375491403676685889284364138895271104994078589910794804800694716593005422439442001089103699043549045385464816369850793540035145908570340179211552889362227173224738094247415347261219646984923798347723111421094997880860937063789900717889142130393719053601997307189019585640109565091177415180527289037301519027501277828605596114502082685034148911709427735569609837362675906920123058476108344353027863499693120175476683734832666615978292924035521067027593659814421102291474639427488551101263494124016256422728733799482922558459502794709073817551273346012833862650789214731335133789747103202610555903978181993426887631497960457969742662887713172756581379713113085939507686442229136870689162036523530922643967183643743342223554114091827703798298201138847319771966798995236701634027584154243218305469223585881801384744253974688482312835868857071572736277072627917497851609839832737932343243564992262208228283885079103805146074446810342911326197718907985260513476038079509953123926255437850345195951409767954021034203476811775922382563765259250808414780758694839104790537059115466624567692571202200561206377231863620958624935437530582623769619670208010118666598521683364786033528063110123700468900770658032478497194945617484061875470507780405678879533972898536078456835791049792113236167424746002674560385857753496025710175308247511359129251873127900066093182228156880296522255716339314884459286200969080677865380605124179497910740446765753280443709339710331117048267237251601971657348212945211141321187438390735749545648587727768894801437897712083291197858389304122414029952563574970438362711535535770137138031801927511780243520890452291494819297167280394342022593439681133292142911592703287817002332378167463073652411756246267303832557331268530877124384953706465123461313350641994561219636542489862085829180455742155118410331969093824418882323567323444828671043185145964626452459628719967844201285668396649658968724311407790445862468944856790141748469919681545282270502845752584247877902918284822441050609637601148968894670233330517366338034750463705560713066451324717306237614294749314339506911744899319263852778329200003924449258058164426934713804554701727191435999006084876322982438735084541038584643244496826708546333406296799384441024978114521627943281601668409840055417153935558382448397603791174612791791410964334890675372282286657097766152731477573796122362003261184388524906414202691411409638689610257407658838451660342343829452819476677282425007403754719958713812566832989696047096565933743533170810340719997475910295172959363348760399522284931473120134237749017374028683186462556020477477673774111549705786873513686369877315720473639790945469482234296465361620459882467151432989968537860178307535288883646141935068148460604017391546257467221724062261003132049780246109274910342301259001254508587222410530075894639402480858560554722585588437531234276051661949038924200478023327194766708706507520028007896357836623160640022127234042689197398729761459499809830856244018447933516127108998418907849739385113812176367069787525640317179296091454844537273680103670489772519326942837253187459462284913017500048505573873005471921743371635818094524868640868798123113854430891685839736624925858459478974483312174569485905028062847392695192209487329206875209282309319774551450616522144249288143269667766466441185530927367410465230694205944221120241145615904126479042183979522879554707729324553246683204559413920126867992669083405496437424801484038130707551903992386363351786126457769198796795858632175092576129401753947826059081611965852038208518699379682335826544305834826472656515671291271315194032105072805225215427744424043852523505500372899284277620224403943091829470636057376389559297354019268429211752232968652868986215176007981476522699847981774252321752946907308302465071465804726243681780433638435233297052298556449166354662982113835328633897381872897492451116454828078098476853711643489363657470573464311094475423036713391781635998705018500954820016262459597682631028525864655055305797165822633979337608262731571755537912001451466172384738177822419356441497396421335085637525210899653888335120460646983426964540443725723491627491007844750040292087772804744129746032991836352296398159510153022521444361040241128575196729654861742005515859812966142144762442023677867235588591037641668645522598264808387943952723104865109945459971167179647778211478430711773483611939616400779523054348663066607374309878310662248134711850084168599342139787284265220258575189782091605043407337058920909418819795268695271257453147631760235783970135888492138161571650558689347007843546179297956815380423706646006341636269318866793437305237858241348603066787986243804353186777142864774469315053841731361922593499911256845094387074463959463650629690017128890936018794699478126074432017119061123727677933701427192401062456258117698662105704089504794439571342510586747361209001039876026215883540451232280762211036431084548448520078519337864097115564703175467446295357549642922328858262728414706198161081931743940462699834816357688209236628614824623269127431607272912067259434353054027944445177035506848309070901974777662413596723217173883106975779435138709721874677483752403308253539798543871139887959602852432984826546737745868386200258570417328750206354826933023433135342563577244450594194257147975424207053307760138973592905032841998909951391122724984836856391808766520723507529010683410010956825085696382275192585295610134692000635932794051109439352660386544055590654755372082568789597637503896292616406298398321739303098310302848264987270609298007900240103566845260704106327012936495447077104059286722105327426076219004458978398004711667735709041507978923260799381174413911838173892647721674928091481725918208766692023544256530831402709667845650289817516052948021742561761862478455739224933872122488993759932052175831538207343462978091284986966767598448505380709881121982883222733516139837927138390622698738812807092383614163914069423859625334450124809792936069072243166030379482952209579388558166728253234138715172328822388617374309096421120972951806879241618747915067680864756442534873591255220559795367614142247459835099132406907216533188404390374186202263003504388298737438396301237858071797464930160727944823975245677311205267955327636972496086133584461607877277278357716604634267111336841378318749649902534947368557990191528379179944637872330033590536463405997026164427370522142728751767571608058733562675869159617963010963654576216960556396791893155654324043155302728462876616720639763627678290561463957553561502128368743114789101614848112765773711380435864781815453919162752552966075938299392486442587286385670760881343196036319117806519296991504319070957897730919444064463015833462872502318328267556836995517280127830560991590000948324483930193140667779966503073124483785697245662467679605588635121374877125838073457634197980006831906554161153586723009256366836939352318463565719009192532461315397844776450422026933417019900467362480810661482407861833198407058806775816414746265403042878163948573768216352973656391822435824491556177496539660896859022667883063626796341630421165214283831614387080685167372799652373322482489818173636102618877927483192260918701807010274099571146487800158905530214999748976538852899990262692350010014733982520551773592238693043689842386486627903001493201066112132933966773476059174489719136159056177328570310355395797344983232621005361261976826179620905737452825703607362366606452557342909087524830539650246871358599354049584866005811190407714845241861461828668917774079944623155766709225103512422925273811330155814934719997563140427264656013618238322365100630062691031446616538066107912583540081938747342482853216978754790697600290154989312293170064873662502352534765150485087643448210665365961589130405519702429713685119344744774501928627943015031599533926760982886065547870354566412283438593873872186441482026392984296067037657412595825849248839814121211554777058893634860911679946605764150901802570926521445078536731222712525117882618161343922533130568220780011323302685367676556767832819454723932376015575360832607307743324140472354735743070635533248473922824374684189307438543841944331426564408700686652144044785107485624764932436093116026339291240849698303985190701874938062007705161389214134196673037698345549419768169925873559613879810020916212545314354736217211272728413158301702019019799847135162222807407696642354453259313235355421924040978626908748440282169050315660993506102180089379662358213986114464578733004473165265257805288795371259982418439018224480664449425889778321019107318846041289512764751616411405991283292467551335562140639147312438075026429814980293751408986998903652277808457079195761689111188999778762638581090001656182331388274314211813465910236301181547647526544502360059666848835874142959912120871630221702360101121848499119245945324210204821328485642955062143137467657294887352138561027459662848992728604071088695313873540828017169742112782447802213030022538949992039727388271734253983540600901741539536803176373494310131238187621115759129568015973313978700949066267167774992644351309502753328748426693193094174890888106697940285124141475856470481863552849489814618842629553435858576659736747603763415532320600736974510766765324328454747087594945057635910305261352817608054907902790451751539218375484881779448355251800922163083299069214974756147078094320977466148230940302537793243836585006236770317423006515699344591625501378648027687510084449007633348929603961909457993868372976773716871971394787773586217090965309638974211457333493967353411186627266735142773784998971301719806436242956215033684753258104825577896426467288639421583235227435971762154315823951530480740496768610379215653262753598533241252919961524719227451411481803931203606988075868613567548764762211274517595564895673118811774160580728752631019394016878255819568962164863029904224056557410890167900004308274853621956062952677438371871000371473479498644333220886487765309207341463533121096642025013714430183398813151592688700376858511309084229000074588616170982424780217733785958364166467194109744936648643243396250611979119784398443924566010750645915040847488077685431802676704354809871368127305673310307131209636962542567707178629479904971314763163354308064532482862879672470379523462485953742205074563932062860271233885492580305663307806104641006248942030712100787102930559166068018278819267107303618442400558807709513269226373649208830343025616617823050617989318143077122159535583379398717020698211022871335510362716502334359395723487181949860966317329128690973995524546928898886336089182812853299318840476263344073037842858050250141535356731272269662562524460140017881532513013529064875291458586841320204036398020659707552315284619564869996924781564062523731706935227405610811227274008530470142516999919790037075470853086637420708912683042322471153824795622570637003478005429107405867542402558345021080379835321436779505398007846151680246437954543498358697256830116313460982310837961599639176556156921906811228055489604603487954557407097771242997005496909622819133399195295923882848144676632252925401326291193513438896312462972420678345015873843350943639590378286183379829045672838478202847863363140799449167808167253101479692007586875829960141205014833471350637597113587725307096768188464107055045443552536158909598453311722475282658449223312195029006952405199392813806456236334100095528179620932572737213622787724023551185189603306381073363063375333233691538791278294076780587058634145922503505836839311745704894388106875361879456298372831120648605665241913967441859122051187827531220018655846443731120439848874396492941018379216829105898905081586930173097816661442702670546503305937449974041017958161923030032025319089570588201685965592910674719915575493657550037639704923996182205943055930815487096205882269481148485822247444758920855245510500791965490802183809143188342593311073492993511454457204504646277472046017907034172958044974372861444716054490287787007850190346578617858296358721122771838738204073954052219500312793854276638367632052315246848183477825212833658180383753151254676710658692035158369270842262684080378564232688635876487721404658679268162876400214547087476025815279714497935606631947598221917121792349191267580947024657398573022418259099402433574333256102061285333366497679444199363794167837052224610962879079188369174832157130324038595084981037918639070279882896783579176697690118980019555688312027622565281532147110931687034951777693149387693129689526325317847302005197163765521472129285486171425453827066738435051883934536310739170836502907837356852739199641992526620282488841155500117473314124577820693591891626363945689929919258103232303511100499475052973482896287114462651586509050339473403045918853155640577908620575737158961766878356648683473455859725024994863721223008031841725871012560440602830872183511753393516530511924637939204296961504896681676415933507556571321468480987749919022058896276823376162901027918835196366708098240804555163271713344153863054669533522166147832058112844216090693934761180776946620511957114899633483342316114944826686054011710146706871006752293775933117735988046156385020189967672693916925227993791553464701270388093604087487271118012453432820340274318885239191606460044491521367104081338630025824891850346975909222798375178604030518620731870294666073509801436179075495904249891650552000251358095183731897621584699907784423508396968669603331764277294104200571400270018835916160053019517089413273615022492884118855886451908626320457345842236859685706230107946417920190213893356256095903257657403329918727440352424056778246804415538128457942076496568081964273279611218148847757340921033931952395765662318375721061608159938264277358115297255204862214794716061335058529063478328422122180427867514613913620743199704754383530579199363628575994169720819864847038662086461310284283034819241177513231937953093755058787041735192814539646967455009569869245548544326691193683275379857773703189376208811532450712675029725743807900766425686950474200812183290456335625057401209898377234323401437791207164068116194087535909720022846332570437081108452036998904921217503645787260321962797749560104606873020285898561143350498429182059014385150389996638046312623981806544161664369071628093506681937327024064491666961030506172458350673566951731356533719877977678081278237142203672132270094360964934354162448927059904290217234020047539195368241601098429261058357668280698549034490695089248071644956767080059812468653134931386146058347381135198216685805551736350297383838898566903048947987667993236867236598274355010129488166990672066079308179497310779802652757714717190308375742842752815563876512241025781719401145764489456956482607651414520910518554514800657699546622242026797758388909912200098924768645775087913594839389198558125522878315983890016316228803297268290833817457107526695049973234173678108184358987136808138498443870581638575958625587353736302751993637610901939529599152791806902542902855551305808168567071790839852156665041368053292163986327204618425059027241393328092521242362136762418915000202960053776483562511466721281709805006877217487179938063552889059580328236658684804750132304053630590474662198125898760531613107829825895777086877436074440988994533421426624419041594948559466090781228492989611112034059881412980364528272156751884226000682327048953826354943420306147020878037732780599121935830341991103034855835787197954257467001349873147115436026973673902606490494841745306207017613226319603351132757629580072838686655739508368748134482038153671594084097490325959481566293563770012602861055480122341559631228498549437053590402837909161498513240331543467112874559945591717689415447263374663572400850953621480331684416668153391843354492826790435412038255430359364124597627962687960140952196216489984511808250655200467638288745948394276319159735818276793922868802649804424124533933921091330884323594473364121711595501710725778907173736544689402757850386032528515439344615055912014818921231027584391377105773293472522584629134274799160386871523110371392092491684896750559395400511331198774353084177341667158914336773772490064856858551061864639622306989753290418263569655225648953405314690448876922186830744794048478408497153241840886404102497422125786098345333030557876617744105220138584771666278651924541822721235267352343608523978099918945957359761437328861895279304321632228646201906313613098390378037803033980386584095668749728836680883452840823367237285485769941749104723708093580056228180611746843013395514593453943846814507640509345546710742780005179778654301851966541370946620426810219232346760361967027771238930214029036816506062095543058136003934393478609435406016341038951195350861165751777249306544312359929832282787636086748947435108770928310954025604932625358665300525856690175099960731684137504049137862023067466049914377685732755465727374035434076738960732037191628245683721769522095351356332034971449054601611128418103604807131905742207277008085293547023737302513916290896475248608381439478704759375400667009585485955019406851970914628055202092236298639911809708220492018693672190187364758237225113800162693536400601561814639578838935170052392153806325382163477974465122119334001528108232105265423531802413794311184574177143022777154617395884897303855107150975979002095559570750884481226245162464153087375128396513072494220644129156054379016245860716857553768547626142574066770181511124691926067354532039682061418774511677809318733896927282748528381709439863982065291260398639174256925617562895569496686002185552189243329328218319511767456042805286691588271671310406425099043599062887236804621901759668327712271659832039472235260987440585910673949925370603021461283843169856428269363082265475761273049385982827282851869967733534917975043733076660173822130402079581328513210584137064334615229854407916357418395054465855518592270767603137167068874852674334635321739571023186339224065673188001374504803670854813701642700915641980371111420306955860415665071443338205769265969968826643353969684901908309832639442519781336627697931571752628917775109301749761617596267658933055632728367671574839358564858393587667502078705334163967314406714410775535907115228043599237348774536198297220899155401820412071987710097977805505789626389799166804040864287080527026384322449491991618517752886563420714493124635459038247644687318898721048790424441541527179063235898532253745290792528527839597224566210965436950615669587287590516058015979064113513016283783060964570440450829668284643527635866257479432393370427709020141876362096331331168301377343326706210807882249020454432301258605652735091093754168674473937743072375718952339424537850867375083296646506085075038190273451432935178539259153989386102947309338020719183314709646598765422569773082481222742520838970148618625267366547996674188337219470457024981406756144036472817822616039177726620325232636288378433677824062830234730913508105955150483137210379272333363291442597743338301727611792243611212199911060910937643363620587100364650445317274552075526245273931036052815500335788121891316074701654080816029415061887277354851736867575932161139889095148167751453322081411327341271220058364149276849907894290310690057458300417100520906981394021333124115969860220040667755555023237650557202664665431241076484020994755416260461804986240621371792229101628279296095673664982103496993147749736834121146096526852345034861954158667216672386498629059260719610405515762107822643784475735415146432738815406087433969587935226029356710679955561723737637211413391449299039254008673003649050170396075383137253279028908395084228251502844668988223027170576441583275231382513562111468375509465807266106330513247572122835367260083690989126371798328786659253847836784234194324630031222598374825661446898912238512059643067493776235174656241777901477393354646285078502139976647853203487532860785745045156404049390477884880610751652769792371227169833780853409732575656350406991473144668621627561146604882909228808183446086986951664468902399869114296488514431053367505537008716921105125451419925010685880676745483272981050766186840442489411296422532643936914313700933808648635383566030088084374666999373033457946600379647461701385752783289371052407204293529749394124580127993256602105346464406503528858540750533879634166742738699610963874919656167571116482401212456405028907868568537664778297980201738264249684576370590078523006232189743805061152021042645680651047235896850458881380617428414008734374287608659062163631014852550344236068280166461793170542840153780742798377249019861442793774740514924528461256430483024980252145082078372004616351329730351291363907009743926499695260139585106352998316402887093453910741411084203288200301636377575327178121006160719743860945929029906385009329022754312591432565727833576579120925988230333107140084434739629289898534364024394564442856776474822621514565945780406172583616167941419519076183444859369625404114671733341659915165040050535991787708280386432169685006880813697021227443421699379483026645013317028016800454484077073339065582529604795288637957865193962781435436816924050092823299540456864819612218173216565060554381738527672367915695789888543690264705797702041057607524358946875883918907264175024356784503552082691601513752793286168473764857497702157944629370476256706074146094237466240176830887854493013339876452287498135591824586348176043944896132934214621559867705023329325898826837120968769305010213738535611435270861414058381138184627006003695296435225893340765035195424948400205098241474770574147630518626036129031955209910389297515944622172336801924125671666175410725364725880287479147310266886770482046108223289577282473131505267991301068494964290834256189256041591700799252673106374843164606147035537129825452616921730538272328941197952740102509386027147016190279012926899876145904249276811580637163759616509237449775085241093569558608121830747252810404967099752705572025501550472616913479438858375977348466917231650400859203139022375800676172551169940506365217435457801059938042660759740046934949707684832569187079625603084981260866074624159863582410184425483397374886829646337186237441702514678099441681666767392635396896504761210632339373944083513606211933504055017989282230715344492173181700597335440204513041791886540294689238587198838899538146959498390628731957243042872301124727007996395477222618371910914266397075424224979187566150047251421727829916796522027817649706726073509662166755063425876800557172806138796103041172007070455929779693400116293807387192894189999940718048311112221019099403170834168499062945702987984401854180026267558328539353661343168204847956424685911683967666922571421151408715252726807648753366211350558102392886610920360044911729370208639261786113573588743253794043962766672593214266457951220041188807077513658281476287361840308425532719336564245029189121187879577952500571079554611018339736377885354258877036459559583873244483478356380893802488599723099686144195465786549389940360593000107618757445279955676688689079684720785046515460770477375178985999364191484492650937502470340842191686403525711383901743845905236468514818605290334132434672705529840953387789429879604741082673459249469194335983952059247804064305395537059842967215106320772052294549993671331847498187530815443384445070490649873692299433288895772004116420727751504908071059894723606364294914901721916226610190407155912599679019971895385633952504691725322076015816491867209705056979125660774264480662042979462684003212555237219126075328394800309629458661917990051176449104918638317387268487283373294665271702702542953066879988406896563650531521828960294348268185989068938665903330877751060522703464553797033841721972654503602309876473188605955186652767210584055995145607196597968224888065706080793588977639305775607228492905999948953219371792168270411412009524375307668174447335540748304427496732134088463559309373175359370319665945894260064190214697939908853888256928382746284773718402636291882023846785946300063027572019900664599166174435277294731543186085187252957659335557301853028931738934073340186526653784716756439997916099326188633032071196489991348514015689740768722814372250415278881203341050193254277760947653496666901830330994251420781139060887985488830542338559288333176916090543715345211782187584737653842354294179655397513028036374258956260325073939829687589681696045559517628244492856293054024054015923210065494979483054070415412393715323635009974534750476102017097863470639641769873645894375932181357502647836187141807211906079232850124530593499883203384475713821160774541975986549942172723216806647066429244951799940450692365194454753913684533296887949749716557993287162478484772119576154733333850432357517825910776293546850551607769989765494194642060213945000096262373873268884196024500645732705804724272260145554813124138530622463422476071314638728047024073521327242537100224174787489999856217965714207354907711876025965531957711831330073118509280566697838938139054771286589344746089913548515268721158576751251673044285169682573956796431778373813061046926248258777368548956599945438614716503179609118546147742635090188683749597488063700478209761367736826994389659961533691041220959378294882275773388997513123547709897509514736820740124684882552548153371413476727060725688236432275225955510476835964418677483224650737662070833861892843517225768764566895504620846418689958134792733855483484354428184746522236466256458150683371959752799059137410932434849699231765965640401217075662574537830421476685068326993085382750024164765096242999482467826825021704925710617127016434110643484095825894123825123796198974552914887147220593383931239852549856752688258717211948700143876454497041704369928037602080029981227953843048599802208744062608215599043289739157931823758293421342200299255282087107845470553090731128241600937954489756123625377874008961854542547225721028319391709956400396356061886883878544892814150025377930991406167568254959148220245880869132594527215895918068100446258132837322584934648384375095397505171003781435522825311298318279563208695391844645366658283386862143113438915951291159407116682946304097870379602806543882360469635082597115356304396994731962040139901433253733158477666955784138909290691366391154031717226174629826227982294568397197005929797459376062484623169233097350007834154841325030440743373580083507286224852857837199155443919764639356130698039868419988143405398460559690140091136188462804318996791962870208111291992316514381630264946356583768403688117698991301453558951505878595191201114777686241189008717520084783816786869229143234404990379083679353101480276736940726510233343929592495546785951207258633718935696222025600197450154749440926500745112718690929006863997553102846416577499118584751867157949458346239874614907465540347742850298977334398984926357071532417476475044486367202554305752321246672398602927919084719195001370738210970893366589500071418469803132439645552709183614127523452120193896129008250849674147998651055741882103478429129413321258747673962168872413358532355618854786360057800977228713435304884560987540397366441262790580744716011081163418975892915888613281057634236119298941988394294372900955626757408689961621625467154699624527110322958066740155705096840524850694148997528678355175374177180534139191768571275498534873330689327087083560931631501273601266575249893046293120870212448471280961450730089840034409526533168666693930161659568036527927753009471208253602736502146665807119702010465613339375777384161690091299472608993114566836986409121285487213084685374406451058747721419482638491786649065531917156914403054399516380478812577830566036971695090207077484050019214362253428097747372389938647748874235336056021448220233484848169245370825978542391333318799823388191895369999135706996546585964465569547569544346304902859886278445521675911124054106210551608224670792254353538597934878042300366939101819471701968801714211574642293621547074911342805902330356056948904351819364534121039277070530399297130344767382185149291971183051502499240497596874120589942256198782412488994291284397163130608465229648504847790375777206548495765195957935227540558242227478377349062983053773435486457760207413438767307635753660196713579583485030710805335504684243847486586123224450907899100009297252339720645123085344441557855644813940670487057280082480305264386657675891933926794679537476344944257796165591598098142679692209912177751182097877938649108754763854114629829199505714325653802115090615671401263365844011948433301414992040233778681271853703811808581272216161324962556364852471592241678429603497058628440273417057646508403306255289738077067578430027042161145976331382750332136858015849787104526907218925963650963582135267587882528357296801242623207236885410590954367646466808559590465157105717486029223515517096783596185704365154355600067998302484590786129632668359862958447488977388571461753668406359292878279531267897133627953852478905499408523898288435494067400894711967080945579023701812953086560207175435854210940308790369536000738453044099334306493686718931854503678105547646606521468425055142665676237122161591370351577155374834533868203864666856995344301337695022938166466451804733737071693248707228870735243500740588668266218239936580002103154697656402049292377115666251473926869300695085676470421021978997661485065256136325283174369726811932699885709785505059178036220144491903072076501334590433112873881237755616921984025507384717578047422261628545915614951964011970228669078571519207945926202624043438630588760862637513320185191216998363514059044648206509750192592427900914464200726893111550568095851242778963799336554000163408464203863379333734601019274415618086374594484845335251181957624344445499390947321684338493246061539642725831818447541772963609256335302064965012911285305209300778405451501513093868719769794719050225212723646818967414603503705845569379781328296593270645289838797796548832712663242260793203061463696784303300166735767101955442935922560538487717215886269381453155415404439189651445108053734867559089072131507785436238686806506842843910917677604378693689127607336771065368185844113184538546224429276924905141468455564097577255105202923012044401480617348763255052600864213808077877794171454945593604592811931857841997296925763808920439277219807718346332853315005642446610872665096008510189330682116850007849855293176309434347027599770593216757392463918092975949312244217430399314819936433244788593680918029091354532387524194612760958278291093071251576351915486393969610896731654754166368344642553994557510766949233553866418358658890652954150177965646514726467693161676713775451361598640675879437453638676970850765695019425963264241287791912674005354722682142731685521019716732204689014799778121236691414105696095731732544786845730343689623631953581785249510347790977634988500652711551117482605956001532605142713226787043482578697809689454469013315815526348936941420001054015027729543234576925266838808243203156980048201421241387555924300130352781538803994727700786878512133556420979406673617371866348268959061626461111876335613931237768473809392384317630320055873154678443442068356381538752102780976175288053896711477866839617773637599301124614356248183265982164018317727193339136011692467816878062934327618019128357024568531145292101757938987103336041574190095002103177908350651592034660529687683376162826820545988736092111797961971936784697803956129509012585341697278264747042668828092499515622965159010492952397204290322296109628074066638275889605846717494453342812302304866606646622949945377182806336979188459730486641074417321194150513922917202743272218349794204004078473996618376159512933017313188695983793464886571111289195061274479749331299448143238824136821178826958242852913465073389983617515409214453794132259245369957775539835306822080300315838839157184534961364354870689355019062028809833188521505118841853237460512163572842027838969707840188343224974411627989314147242428544144561678904522945645847387024501573654001694325669926925006053105537513289331508530608378175232681224292448517897532270700200606163731056300093149980635377538344611442580789638954649558619904128358672293180144384741398302980825830250225419598169730566578038743131076318133248650910371633826882393565098965999076593539465340835396491909617777005039488337737749886116680812779679338832518652180814023575340595450389758848086814825213495547411774420994704855579451336837752770277710551622539381591405495995581088440119991238263331868643415822282756364564280975828795267171049225064127257582157982364359345850427826260661905667543552297859498966744222371437035566282977320169442739519801453920168213145070746393009854558384683145055359774466278372607802267545821017067525492668763608637201362851227738813842467447828310818659555806974778469444662908329372521353898032355381906707405030400100938216449416265627586895965090696482213513203280775036347064499894857971249647170875232098101413053496377860040253662466271299593236717073456898206269165454373794859458362859192189258157213769722104619417603694025291097288645562759530892318536211667778199555226929805591476851485963672593196540414139062878174141477844977364057534660002996572906677989827286761648127495274198278165721152565920743891360192486738250708632236260503111890548364699806588095934109728708554200248054809429342540916858925847067053763956850605955455180809023792252317024963468165619754483456056052180534220966229785811135475329102599790445081641768063506329652344252192713602136325202082698629125457797070476018586009016341497346923690729038978936558281771083646290914995024440479079694216806207933719933353447153096482300665811097932614966977566548254002411552588849021437128752448411821478598820424754355215208231930789774180878988731933250829951862314640050005456977137392652096366500235840983648131447012652719380353028503326275828849627026420412058015230960220456941052280798445091629068230107779892490477862579738368346539945854428533474144953480397695934557877637315651178852810137908900483419602037054702045877377444359195964423991021822183764344840239496010993461270832475505654407404193079693618054892038877003997198842993629639230549546914587544878988206807913064110597913825616974353028863570315991462057576366562910219174491549817160761928803527090277660965981268886400411532892466200342314299731994603619869150973024813135434607915969497917944548003546666058768081212072489407297679989311919969899780643325700474829052714928222299841035273377346096663283300498922201519773446871663871480897565638953310200474915733526292945174875674865042908403032244499766699355312422405512528802088377085743102262425720118092578586467254764055890519313525368440643872550745433365510171125095841068847267183221499803123976234606803885569072004822569443085148940633549007496264415994105552242052032704308724929166824851439923444912857732549287370410783986036683535700541353514605666946346856701895489189496026008287610090283472859380892418923949779203264736951707534840866093549872920014781937626351551254655120024611622972992960074048550796375854458719522909403931972820309984706595824132382019267673854524060519026096029226051448850684930438584630839745495151300004127193809462087766562923463513061385193060841358461574876473771845907177691925338065423229160507140451126711881935087572081136374598104524666580555957969424552534527223552861121568708232866923868432784390644495400449992620032753772737739146337982800646349776743816703066042680196094547889990637792893137308161620619917557209618634062540824635100453964304135142272123054090486621209456570778595711222564390803960321201574942638463005715461885977057782811988139603919278944902467204756235755618639624894087096821811073951208474047530977119154865402904743728228847363505680767538115314272526142856242952016994909761099532485256817812477571735014773781506866086267867129846586709325539494720511944197476163335113449541898429239104811434482271664506477538187228122744475537724701069800636356441606719253857076986174039835180858215808434625483475859921077587316333482982364691342521727297831826255825420290638791904814556434273453251802092955618011171181839208734697630270653630301003374548826541331788474199063427694181088025106306733325414907072332400174075367697953022798836597055655152503337801645370525772511390824476027348924150931195856446652541048648617816087241087301403342039688707210369638953450627982629055801347593821991784605241024958685922164617042958956786635499323512549338083991308914376239183997688093027481395667916376015539933887918331964716037919592996166612142714375827941251470163745214959500706497760263802023566441145228740297763081577784690016643963791510854852245810752438630831828284766618356405970839107417592032409758352515883604275132940924289134117579215046702485514657770222373598836459947881530325755573697348524363059976542257816137799276408700330187995020764295168120883701197676595721071583333987793681780593042473632242834978645545454102057074678384888838022440212379175982740681128007362781025029535544762973458094060548909114789997417419767902205349651810791137156893090265444595623538870191484909477170032584837237266875425564220005261291127693397679939557775087484333091372800476165567496864787644487647390664143498682089494345482532192766562250359338040037108284423520852367537732417904889126878103697026589702396755309523529525100192270686682864096905677092899509859146417525588895734318611647690754011633405943242056051207363716976956773835713566533507229922805194161706955332072083700676923186998425486473284851419138623841437904528627381675792111084633196653357294889627651443780340901718348983604747860142364501794783796775713549341535767427085369784802217512787066694333994597813675692336056045981963325457357170247230253386792246256224017336921603593439295942190208206112415685254775091249893933154690390530792842071484084412863477243898661745770104679995842616280926169584628297890826409596486526425279115654431564173472956197146686619222339683515666193144675792620012641442433100661524724601512822071087073828456911774779020170863406643047854161867499259265328885478018164886099034321192127109404115754564242840905437514918478706441458285330464291672009303473771946673474977482785754738070134674971014763136110339602282964406930358571397366301281303296736936226190890115384898051819624189453473362308196135253859269123493553230073198624640034431165583299256651322400546242684443855528767315689509735665249142310616608861299043882921380321124610845841878707892371850752307397450616403233459747454767318470905078993664210745255246762569044285657391625252946892290625115331215668095765954771826903970398664551330930640892358242144447532408213871800531730318676561019376764182706499476689923507155034682842992227737840080485914673007600017444024285294476749264997208393166389653272998445342835973362313234859507228480040971440483939359043718060050715779760001167240299847546060407580311845387027732644302114323808047619813721868292494284734758382061953151952281675597823729437213106959318634153481301291487261169694938394819550476764551124929600657378239469133585782467141685108466838143885331236533073592275971898411678383636485908092777660023675269162936920364437797917643774176703194229839680416856725323836671367051110993440768449836557479458516492745338293796004800200598789192935498560004724517411853406096299322747791909314940187191614930390707150050796055534493052554053028629142695058052088298684951992511236482435744619371792062269231939213491437393696855735435961744301361409978199063529649585645088437000458832800157981445832478387139014664489718487379377187357070511113876980591200356655079922839753110977025399905885501819816453832952428388883192190097717649761365749499128715079875914170954145230300333403642690717085828452805017019251453371387834421781168977983062246203618388389982765529069687999590940865009140019399471089084350609882070503991388626678638920847470401109626868882997874478463806139372735156560570234429268399974562351895642197453695052984597910153951048499417889967687414960445744674595393508783817069877531747228273628846389854741423097059680931626187376655855553526929739132370900567687435372812995064163624505329271848612587572702155264942713986180895773547348625986590054498586175886807812865989930616630457757165477193102950617633699815085489119419666825256974512695576145076721657147123967155713066829629726867732156938342655394858492134631426177588002244048003363511476464836065015920335538350938124668514860744740838400085126451367332312172007496128955392435090123214141541182552983377847163290084394560497646194558203830101663803623645767879485010048351034846133590178127251788599501280041711194128028209172064413253504747321996104320018796318061307885873583446534412174053055617379378665622901934714934800854667161818566078207297911905385589217204423785734154421754034507643699415202335079878800787164798037131618675479712536521010811771594799346909668759774901941816038397468352301828362512756774927385000438623656807356257283875034791759801640770381662971308277385742353264882254042307971919300580662604870464625341247867666845670380041008851701069264475025534373122180649715666640809755543798958453010366549531932913414658540524097152702170344743415483914335062075961866427565916101274000376471218224147630639168340725387853225602098011623400951782758936970312686438918076011869293250885464669019194772075375930006835694287871899843431318136768918143578360750385407034074759278865743783673296579321927159835296762988981817820391806326185583332250016461406672393649890921129319940127902616270176069905184175451592224523109396891662266807733735050025706345917195652023179494071171499710387799077930555213972778581911674978729089545014037024244775656490686695964363193271545601547833477806669007017234579621080311537784234522036158861041574365693466031893005029582847872355404887294988731798259652562427948247931599069600706308408863368561983242243251350604746699168815862728519581356786480680359954516727207169448167720243783445518214703246286961797964919609237354848504577526803331922757392177864560723452549585609184725141098655624019447163627238515627348912947451558101568418970727517461402136390109095129116093835037282783202769847113716334098845494996915467588883624646896588688526448077421092995756967773623023239506475303231848200882066551483579481115871522082218318364886054395783872767653820212162123436973845096546208196198378053170102732001994186103237213806254586112573201449251093535449754119078930413092713983495248158767511782833881152065615651176597675594454752599177315331868850565233683495639873878409979571634241619589105285469521256024682806008237219426026922584782146711710217816372320877588881144381117526455841456660347415722968956937018629892593834622311595634413715721175542179882591689354117798946438734219434287350226810730485905104320481107881309946317909007709464587323054390927785974789635791804920896648821914711967695332257222912826678054564746086652631063487125760291127474362289993693996453453890812082452859887343840983054838376440169674514366443106240138042798528203229555061184198240028564820526514041791322394530848998696969471480397155545157386684740232287522386102444037667966285576441393708573102438823054622577536638170745495345697066315312508894192337256933778872144932098092713635981470089842870413579097175118279351309062373825287497063492199399426661708989760501144182974609884499313097128321869729761883479153948155990678766079640120716005478559105859389492490570044548403514246662204375882644177581462551064067663383134683439535265040412570807471100661397196828070188085278555851765266430920944434990747067833588492813808032135500566654540097226620740382123639700183060219801661022978290471821499751125158038225716132437280323585068351745104332521786226535076310311257848570897766347483736822774374474504224120673756506439326983499218851933848877189095984776920299672788038346261286704647673213689145027750594827957533654414674237593342323727711280755564043134423397045386513806693026958902394305088269765733758332971072055261459881505052415793935324164057460789891052618369602886907008057477048303490142169739839944258296880656612674305552040830947946717987722336808337497940484702313769337889338229551951864254427473249933176293318018423025631691828247072014247401848634704220813174241679550206448308668024994571436493860050683372633101214760917454394069548842518708842346957244847844209100416741371288810735180082381903004795202925379965364982033477909228583526436313957635218918776711987863455359048779559711790777753302221946519883354629973715655203631965518372662709884304780501488759901661059075619813881361650910280855979043129765542590871933875573235535564498128807577305719142687873932046952579267573996518017414387941973873227334917305060424527209570321543580056127128523246704029149909070475174260042226355506982986104179922977997816966704531166182757637566061823950395376703821518547151153632528291754575540147769249158230326093692079275129318735319514908320387468365745796014122641604026107389600340524829516144671940071039183387645926661983504225057430937259122461964636641869545178193096349413893553573123686917356952608789016632303955847148093727199629032231562006299004975384976841974795726629509773458149077995991743155462659920102232972574983282041509783368393697699983914227333521575187665156328787963968860289335406268419786589949699135535058822709699812711673056381132119206425729786380556231290386229573637002356133450267480233323599731414334114820561831637487787151849749208531327623265576977892295281665278261610151444126953536548645610749572970722678396365979143586275164395062083843627660221416853034218018123727213726876228270132948631046131660963517441627953558239185130143822972842373789868088011012263867297783084852813568574165361379204352036600061908998904057699340394078452992492152720801667044756767703626235227749045340028921935205771420274274739833425514516686677837971938092426708882798905960014725678359043622611269793315311570569667218039994019850435608271095247795347485862448767929838937481912254059484618439640354762052638182091721204215721339044551228615182797126208285412539715085761424839815694639305181701494826169831801285935660398530580939745381031286501575608278052450122134827663212819435728341536187823267059474982977738537562945758560476410634480657308691922347744074948366650044103198751209635017274063271203619657912448289960743601011994607401305552973098550230625240010171534203512689986432847270673990353052972790750218135981576265699880218585069901834838785231748247899672006623745334630057050002863407521652581927114842796458727779219043254842916614092562207164603627018867460649965057540743917441161198230236681388162368059939754795160655565458909035138353159452750803638835727489046154126348665162794504139301341443807816994815219129895052930963196076183093558324489156836764724425265307370069444640342320732559764236658859394974563692290120489788359970911999537242809494844102511002608356532288512194432016342207976560897939231356849981821937186655258775704599744761436866828580334343523254931169376341879881574972430572518319510863377966551624964271845327322210240166667055865633819870715114703632767910215708948509934834750194165183333428328601027059787538722739309559180694799489894426797198440699610546572669329061874370969887672524368452130002350784861096981106915218890013339404581444987151860212148554696294203104741326852967555195070884229798282162433825476235527968123892185142343842256446921445038064824720561427127842809203235109813161767257167408683749111313669569603716497321482702730468505613277817706792899685206546033529064310819103083312697336368142791338483152035208136449888194300570867321562848701846605143670022099067565893897747956431525476893386843767804319181693210534722395222862582296655342647417909622442428773178882873952203483566299068065112676027635464506842237175719063281977635242203164225935158203187800267204527914462709681136391481326276303362287852992678165660531026373738410399689778225385520428189503750032967125580886889243693106027154445555189636471159105574440681392434918436676340710524576359728774932696633661873815729238653520319810936389266923453828021441582378696077968578984700855674599109900103355942426472768964760385568990750169568755713873076832782611657264235097714384969981499462503893999880080252466013800946030655530867668468203421026936057691259552573798643654932592365232767867715959997609511983718182633124380108359080307371070514335061282224944330453868410035283058089085407161562068466425039265034877620255669369843613226245875058422375663713651462631627529620841740332486646977960603534387620359075714358268700271023693383416476608808769899690416992662738671342462432683660475864299207677817913797343283149311763619065085751001599710259515769846920132217865443015575643244626271255927382114690349744213905031251454951236699181819147684096491984250151149567608718973026923945320898794858951130612324937234140681929811932022793418560144743636331229358003353033869679910227839545275715111531001718114738915875562728261798074710015544327922086314014033146258643908330219480557832173246588557438196478254532829115023543431460146881315469223011352615770323669080997176088763190004030134497889949893565265814894096913717262345666402373165511042793775436164808120190515265703568991655964801621932805881377634184058724925607628055918928690373124496357856631045569556430375389765637350872868966800062971454669933360710087709386701696419430934405318736281252035143630551408828144410162153062400917994902956045601116659902237586085022305630970881189711762676026609957496676200972297747184878315855785727526303111161732239257546412414613804263619164491116124485344869182172956712438906606769086160034701358805299248597017729406009522280469666080160003962125657308688813134639168025986794522902375124172867233971585031756536643622625735438222456553967786593790943576225563036482085406580526677338128647283033945255047581172016394455626013109554067136338116616015890913131296574109042225429598351190216533526641751837848441768716171169025689697678647150025546614307189678728589990335864074083197024210018983815098877109580177870164424681569647102556109823447724956133867239665421176231457575291684893100186219261376468848494035771485674025056839407031677084020150338102616025073618011560667027601698694823864757569405408489957130521775889082428015037737911039065974666761001217774188098521894434053892705307893238655558697384820534091417403769930947673564405505619139479953013998420641676079044913781986457154941437568012559128708011322762410029372239987984341986513611389765974061189161756513644831196728644717039853658095544398280299447622858255778878511353847784730250142388682768010340419532720810204684303613244197021185320651748187913849109492197980942785971115159238577310296129940244949822521043822306613028257665765956298155553265172674221774264079729769160073685121889271315945549599494517536438638408642486438461309387745969129144751334194889539681979057067833954561158290903187548775567503404604603886095973893487904133860314233146538652828115283879204294328899204991444930503732826150510318509820578317986275027367037216812514975434747652889346354656452262623268745616176991684314461304902124994501062264875070633936268147775517476241414377246959632635644532339596855716219214068162667622198315573350938520117001567880844304659812104349957209343549285322865510954093721562832620728077531673766745761439349288241717552115425998273881073098662891539045032043285537072176152555908524703857025089588689734392969988762081284639891870938648215149600077146546424901398460742314316545564681048245765442935725141240269653347375738103276188261129933131182561071365246228443129234066657906453757357414163708124365293441534109795302089460589726275187871587520131261481909396338677744136563757342976849574048574900672985637824477700103708935235262098976755260770812320054188464266294177711679147216233079858314252574136415523090066487869381918808299372365656611325859699486762248380484846827344836119261343001286085526028738549887088427731987530567999479964238403678621277407696442809000958684172184433292301195788544021265439556841733191039597143550505627316883237727968483465641412538683527866781575612611996500178448260884478566878217958061742163585309788171336938477033968580013007179013277569800811288248129560647578244174616382244249901385547671806286243822576832769878649344974248209896515159864868780223032213609927242253854773286088138498828332704089417378930754119853415247874579281873813294316232646962185170357209670791426265724225278979722577831313380059261060985972506839840502134557622290665546949863545277965614392275103625926169558090950768560414822758211368311871816015507989392188002892970571766163340617799576699444267486708637668572276007205037217010095095942234903619562482213864526091318148241796973350786750299830412116565906621627081823647559875520935650049097011046962086927172303685285095971714539754983390023309997980000765388113934357168161549186070075873941475192801954827443028667355251252692833614258424911509170451807966362440340806644410868535030791469122936053698008801998866121627650117137734744520493050997819420754317740041787559194832281977288975652001172429545414005827646270417875152844212482753255379871478893526706836165649488370785189330818277887598136332358030228815744974355968533099280913590067163747239398157579633200037991730843703531299994780797650460610330213263780156404517140379205181122014617079307987514835444509361954601799900680434019390156602554318607742610560293959706119187197202654262295215032749276037306482550173302110032340881156716451634365873530821465046421094521863810373914370773847653249062248647980143691685794720937131973872962868615513154482793594401446515526936720131833597089259166233078957973911109440476463495950824811692805078265270717154859930519475018406033410457197083933996827298505657298367082540919222956121103616103477305323871848501618474920985856383042481241713860779573203480639356896598598466450965307819607457916450895847900556128499752818633375035329559070214463952709532179291185006818103489902795734652145775112071612898137216417825240039500298010175179073763792003689873010650582233718058476215342655868942182412066523282242010489576737413026709504019942948431239688392224241789199252975080678911314830083846558009083136349979865276518303383080034854717715428256780391701782522742711515202750187062588665542832333643736197150076203948611064085383235270053813759655197837869802612686762721692011138457662587251828149930692295206168513061708173796762381095678012121265183680358333589141387517671624325858195673386248385243039143250913759951294491720810161826349089109900438138618374762017600307021468693470266143237082099818213896465878298334361068389768561106044066607746730962094593118264037890530172002142643389766090671387866045916122907866807926356469239244457461022223641635166295502274825099782809106987419228832317316058819095815098245621124995447959845646908647077144776566192768467742712747366287176744052693932117399550058763073956449441870094359912481675183369896424728398086050547597706287525008171283469989212596787475271769594806498162518676975952390467800982114212250109428060958683740552924789993395997425384566248186246591296031574287444158730424783813393941314582620195124180935202081975494107246757948874497773603113637880153660800627758357955805517404653383326016622314055367071837874158402140890688877576266491337064336480465128496216209069219047003589187317655404321142072132084888659711129050807000369094521360982601582444721926758679667062855451341454488319634588244306227701737173457729545759229479484491486694392330834040320279737449134006412672285365184339864026393273862210129739709354699316576854039615117560325084950697858377102256390712036457933683334592277403087661123351772248766092540330673191765636687919246386412848664271042750669688914370118440410266161674035773345737429401848018712813884031069673501580987717521600715975328540140375667016192873142881481715601546951363023096258157610711942322439326976224525788407774111639457812550171890867130796629400345256532652145177411010761642648694084675290460909606236399105948142832670084043841468568293243674628602847403698550759635206663633657266713364972291948499228362355782447389438381191867201648381276867201039209513762926268407193819359773451592055743552511152951875611426709619565215604269765194777518778110887870136085873285419410083507006592477665709655001772892512632289677783248364084392229374537576932558093806201329825587150858990174223365090423077257757190447515951349350852601838036286297862489975318761028681019844914100971086320435500562827801990650258950995268405892548374581354694623486460341064207250845754467614908459631208819039343458011376592388537646142264395062776675104822781520499951701240184833210167505588429652209300407930578353419211358987519166977888864122682708634378995077947644336912076642749970521901545668528605618475092044086202625508606483992831771182335140242719283625883974619858400027197661351447639874871010377102768737926923257489575730234486174745319304775067403973612739584806671630321417122406008359257414339617239982726776214420818125392933236553961149510228581735096816389185463846320649850089880196603859068150651472360617012328171595861914433098468497121231339123446256995042699381430964737063361729438547349408083337294675443540505784984446205368134355628834152191020680172828040123236889014519681984837918066809170569603398686433399212756168071223773558279283678138532433329442160294927817593793444598671028841840403119064925939488624327223528736228676419760418711821333212623551697127901633810061034009618220030532063743266179616245141716276594965081367396225882385171301102093087570963546716742603510777075458796741994430044065912255953863229437788507491792613693196729879828042028814033652819552092008495341246866292625424019900161550377181512999697237648506850222077728774958739237556790924647039637660139062783609549200802540937853397129235787485246149172527970961961233251335097797218502881154914623018773113023483127580296715865120031995618339490554785371270233338303864556831060374331373478012333914747786262027264730716923431071137254781581952997790962655598583282640357969339223748884325446923069864625733204104238270381549071003628054313478628245491224303964270917286563292126630711528784145172375532368299706087062051465351779556791939389704598983960334997484968093138838565124318697892413291589944239697368732224736669702633116549781186232495213028378121873567019716232261647555171631966410800957549197239846228231817248213713193215508052322566636555415732553376471092952986990613323423063517636978797723216286954230020183545870077366426472630929476642910073240080171941058434536683844883094124274902302535896370438922382894001088832403924568718925236146600791194001643987388883960198844047329563476457795252935062674945918543237863867595786278630539222728590336946543699705034967710463009315616464106989316213871172588704871675377754348557831907881450317987298026463234292124905430087402920234524458074945472645948670324103244432019550456949906185108572679056628221249168872497501666331684031139594235895466264724134357762122545203971383857509082992981551857606106806002826422962821598390788668105786684634218698940288501541209747158033731291574242730554599695750157182075214500736825819423592246462951297937169547398190014495352703224338609481063755139365137094733570490610477189018269893637656618596669359182291107030908463454842766440137450385484534048107948000673814861716953236757172368307441591268348372936749906206409255724733193734409931595394154191148978371963701955621266942742979630574022252276920537260718015499001103737102255647193041042504584418398411379275451921247892940977214811544330855729232136245481294908048421857700663100030040741700688609393274695722674805379046030914510348576052689354520643754259604336164259050650705400337411639358482968746059437301336448427627177679178949912973765857332709570621735037926981369863510049429695961578888581654924416742195419081254809790886568828462679126714900205588927904180789409164714858119999549486866478939502964400715365486822464479569688838171178027491862839148966928885595776471763553091338972383182167453395532338113343596581025555052550096970997712865136223510697110884162002331799052414964152796186841626309111566660953513564506916908905980752481221946496559646859271649696919539114614806067499822165062867488145053079224871119615928198384109805615967438556421363920545277078608815419037464372701219167379078571490123345377336793149700271674227575108140117620721869213899745018586188701690928675959103871558873560682408050622973355738768169616589001953638362909648226241854302299365139275998166735065560140012314849124277689703251763559033012671754633300635795411013164412651903161378692437116905234769375559253126744725150327258573418865312299649460635632452611204650162506142003812005839301808658377022280116376710276580132243107526974197152634699012584971382737523555575964639667718173288946246398284197117307357126519909184266003213002384592951524578780805653431909655923501847523989779759700449211898748851743789257341452892016800584078019775325665126943892047014554925921549166670049621079181640224103308872531333628982691091590216241319746876380039072174196049806300348443133466349076393463694047918966387353682979062855355861941128879232278408549380389633123403998985629672549664516067175089607185569056800009294651162007453332896005829051856590995360718324413524132134971544796079461410735115587510103352425689274066338624534868807878505536731577573709327212437178641483417328772579257058585496329569375905020398165280065907193423729409625464718734676160906528311079127931205902268322823798647131651377232936242514756378069416977262081973808503927630544562439925543982481694670316233579419261436498640368379434762093579567051947138101535767606510929945472250615931918269447638807364880951701858855827842523901843376231893511744067171101789310407311352312551280512925609745475744304320882073262943903050492312513216320398078002203231414434235721647556984437628551926433514805797954512264507913205483245501351829135877873609248737937388952014576059865068233551668013819164457329361119921192835938224159808272813221554171257202581591023422864080522353854803643186161604629390045094975250657525566952889926286705114695364410071758682462142108382057315274887494464391551119757799970300511159336616437697298998805119505892870772473494764029397729269782926649132243813496347460273354446966066422404157262296706714595857507766075705039033848638653408336601827629418038143241006494911832825598967551682124690174199197710226022116442911235119757326542780027234246717983300673922440019421297234046623470586128304961148208954764988249725420087012549278283997470524822705497995833489519892620954313996494866338343333706695528771307811431899429136116849534971889290917371028247401494600129953298023608267806613724369259381769563538462096937288381690282699169804812605851050894776320657787633447832313282707430054106758620023374764169497255411553393731567949612564613285239497339637026496623605931773941449018457599483749053388296833526713114230237617493938689503098291793983945231405331193164102746512248046366714811933030719961256229130699171790024117375611209297867574795708083363822005527323177507005348940276658674277531126161313240669505026124312871950022871661259407150257832937940773781013396999504399194524331152525818185597369710573106311288438423631599450664189368952506475912647398745644579682385492249867513219703827134356301495847969048375254201878104833178702447601953017748790042610651174801359229405216270900249297378037684852546997246932332907118418736225017583459154391807512884359791802424736103815855391851679899445110683729559913942492647103392452823062260325782735868502158518431985618687589049288790309841056975264434113499299537237880648367940291254924559539959677963721191875458103386580429320814803781124723141314500412724826037171856965225931709668511701208354581621305441255402525320877773196783687281419760407053501158833442107653800831720552670513770329920962651734029781299868890277235642581108728558882248855381671558069292996214827768391107255888347213751270820009071119667056999676090246438139138359511895594078288692766595832090253345435710369500459192980468944443472037575941038183485923004840232448639287852655356799034130007532377396379446726364630112822496253487066965025833110067420830760369574404607223409952954255405614291621100901057736161545784110607946531240628827572892500319480935026043713363338391817995392243249988095035677846491515334945377497972445768593827447079596548941276393612738906613662586117182953900248753229884677269977885279618501652177162186689082456134789190242275300470284185439394475195866267986977145267308394607861079580416323403435923666656948704705230036574382200362926471791426190216315257605676153337935231661743942459702224462434676940148013813042867411675487140551998071350142222470012580747730786628448224144605858848127128102058826208785627604411040914383866337163777208170088969605636536258247147250805082790064913331975006071688583562665595874297116931401440454910049130956797004249797009971687118556089230839568023527840439861237002886813599835956509495030108684984584922294513544572266083920924503250817276032331828004758297231574700173135496644581459279041378757182033172336255017670646922835126559985701078776805430652983705384386730369694758988083019721150747122971781031413393490010957866706344880711179253851032573930141956317922329586909277255513850767755648090527656388334783360387656197607722750647868993078766409525118180017255728778255191352155517922492725314754899066969989539789054289913108557737521192446083073597912088747458861929508351787386599489615754588340176788271013157850901937312263102286203340851140522910273282958428970112976248885447014459115499203081428445651491449418002625828003499269080201069347497885921441468779797606900092624962545297270864038752337856530852039926109085703868494160384862676273035624522694875239806686831021212631549909395050543514834890401661958119485406410778784203343159281646271757838383255212285036844545612215869911469229602863974952015794474352378447654425676739702058809226447295560962048687984858694595536300467823965544223712172408059533753317433900984059130522837311813129457062776298154771857468996145479187305857624769063063868217161964144432495790961270840083684737566175828853887069947064909933822271567457065300824948416793666378316194087945559136757544202183505180844692299286458299180045020484263433289151202903622591596075223544303613523003784856385853491866467807105636795018008137710428858356020299980430022675389972864173274990502451506438929162548581062087414152644020505904099266635398748771023546374160575144425396744377136874678005873495326462555869751685864980093372648754121896141127775308449662195007938614709397564312984080591773690229465664683924858834092664646466806673860094311613685601779993884426637607213485493369484963640705914918974998206125790042107004973692710151544537217237752533093689575031703781543429673764722300016804733729850470117110010460087629608653647082573786550262198414274880245103764269233410380727112847086370341843052288299531603639514457927671887513277751675891307066701575090747573696532553915707241008534830915930977236267736694341267755714703104889523703039825703372851673221246976678188947202423098518103401668733417754259222901145659477511375888397147495778929435643505271229571149559467137973748773025880668747669129995026182199107632814976114020878894151377366060611652607819772789769350096100118331458770629418119932775470114650507936261403818358612381952188222244976475522666130468217809292909603384078231059677718280170192183487092395774248573115584193690603529830079987221730154515069234403925751426484143442157467711358563825072544857106766699717366305413474177913836536805917660591043386615828892893481267058411765256393220230606744108805090334560095199541116643251341061490490528444629857353075727172275564814834972087061747440451328843314435382075216602661263704661503543010614046484725295909316452004719872641365689677203364662804198322280951555120301620466321658523638014479078014520621522067778409471557682554228934380881961050967714269709450301427889838544390593567175120450211940014472300486524325102856844024136728319105738015174301721958120944560720653726861238668926898008492852887481438746548154349951222532131517423060744742898776772290616551969223667419219484128187760471410889472925901535478479062012864996714876743358542880345362673626579222630105681576074609571203181994854627508211797057495435767564047472300961425187111876382424483260653031603040910997144965737345008467718517974065922695048903536419167162173833924603157895487450484426694577478283660264162485685689734054030128333946998100076010894022058420837304607198132187843091362703143059714465645087065104415377029110286071769478398794485645957134151799850597154911186718200083032182890432958379775102423496700740981123004205482562273602059607135306863023239424987172634784996163400145385012531236357310381503952530708403581816836901561686551990709340552613847557300784201775782359932778575744048740748808142559750755537316998436092099299123914577152604790432976417997561505102929755656262432348095476978418760283351568999148527821103199198462318333831285200275656377857976712889266599896601455904858374335410360626833151717422888645807165159474335392634495393798708716117054994769246053324880563339189181662337785860309689961194327432358521951762915624791447420131372741070069257246006261484160035187483105235888835681137358126072109822551803033223556276058229751672237363388550710915003999107947946086803745401655283105952875802057539402366991116048659613132972656318550604000293303929943266420271068786508346955337970106141273894114303811674291721830928421125598021027691995953092411643358985146560247851632076063031242620766555670703319507299668335234199665583172568085988518638666937762418395315693141297885595866052092947089853587454577646322248507576648191361666385904499270859994387033679884049735051820120562867338670251482036932155486261619069185356654866416616430611347506683211620695142072723669161291754766675629033898379684675769066939160304292962948390326340236318173880378850608824053202990107339660024587420469903951039075144611672487847989848164303184335885085674199513928675831176293748385247157488686834176527216268818530865139257308146650200220689394080253154498442783272618842337675261624890124557839545170550625309004255258926582911272026805754506364006196075530796717950727061639826198911346857534937384516461352735045335158200136976622144530509067144329176106964884813207443812249426916315217373283836219158518910303439290993520466159944588261191278847932015280644560048617188748500214319722910122917365914506607394896051475778006094430198330136094747140968226982080702691501002423125691036123581143307801934171496222938540328087938239501191865715518584658792612280252084606177384674684825907689402057335465986946477539899682565264118462917611855584378901769387474129466266402167130609391904776756608856207089723859011905114009714648909554432163844469958950927730531847963274019113492657950667251914926326065937745548347757918587345613753978458841817247913511365986751506258953432958313505279207677862642865477865122853470017759195457208030261832410186569593708000541313225103864581754293171226617304521967577846194759157431261180301308442495372750810008135430610961967246262275547275474672485619712119300069317666669959055910851555694754602179446232724927410231385917045615789863459753964699980240555265914449403528629161202761154918905737349767925146831217478920898489207333541674421267841618055289804238517312818278709139472779839303465580578505840352710389406919945649187035021561791808697134189330436332592451086362040631803104331778397069818180767439670787488840199316493659881258013966088002058575042287291141574742731329868842738652910174147830416294214630523436245521445629886521465428894862003656876930781032764019899917694498021519596935118877506266739634916181648556324644976613960865122240316156728004159315063793335287363489960237461720797117748132038609288361257942973945523241545671774754619877653686490318148403640788676884264651757497783288517698047284787079609029084340164470611847986829586691909453460178842072376973291598287696751477162192873685387022672290194394264038384836248720202910805324560277884761470828307131289179946263745029878108183393146661893596574610833054863791096293951702078048903837448047198414237096984013119826802468965091389658293110519534655796718662412036943456557095397038494868580839170620987319118929053094640838074728848284012927767504506850730064097596493893724832645573534204675992670733725301618895928720845565794014051177337222540318581957719350814451214397362560487797622072066222795137450986783112704952741536308588902910097286757086438930851661353805352732988209367974774971808656984605547300891259339203974625683043599254035523317464806077834989993007459224523700937969483528080048753066539393348178004348240117569508941342717720157476034104647601073020461427694557207847192131239060422039026333848342928644855980844017387984415774747339029751151972079113135408415925211316308656870578100206051796626754369784499217350969525294293454573611918325013044094406833546162670532703912023009777143009452687641739313083937201479105958383154952231500461623819315438507765846771841815203209818533662260007642953169780526529514853756601049745686755716018359181318774078019095570498863837729110962424027533488848978095372939443913457031201406721289214490998468407085592935746689712578233772398172599853052528694226029503916912097716209352180144420598602727300437474798984236596974027404841657762630996752629099295135321362272070280120484463748210002088083063858724697600294280662659627412699321626048199075263374623701307438183444265460703605813434583928061099677592550910118705634918699631562703518557276036818763251507341727173309035403957814592776669016147176671176295405083413594548390525032245508977826741401169581141667114947791994942752812150063756453066651677377497911036517458741621311306468724208529742457982887565750919935214090144692814671832624784660661655866390679713335671028731593146398391979109049868085891291530392772167024333832587947735665541424857685368529486543547116191599969406165986006433190728615266617551211890798605669814122087073437485463985412227729262080160401259720038883237065510064598253517492431654033028375366389777206034718474040919563301945604958618187215119923002258631492600279232079800104434562681235327648520207108491060159249573770297280279911800053029500975902294029602070975983345932911265081539999253620555900927243581184237893578804607200533735242520087259088614511516636135905775138555494423645123304558356136375464355330235919700455371632915484943426218170842287909035720609318839808921848237411838486640785629198684457729694821137542969281839107129395465251835390392791234397330653772264655072115025168962485258354301023395439424040795829043533018837776558994291070860518939524631262198382542794521539187319542430013478820481653653554358570094863598007299381025983844538153424176970405374352258489496530060384782535360204120977230717309339903391945831931055384432765196319818804443607934296896690920188552134653100869003134757424371439868595181772787559082697399851307781567858128553010611874240849819343846542737309417187977279116048690885812143444425281553685753950070262185874320834136966059500636304448751081001938431023356738195753040362841304431770142590285713286477940472627662918216319736663507555140217571391504676993739983580185979775447820558505780652417089063467077649238474496959744231143877444080050489717620393499314300754273016562575104348914556373970448310588777602910758325198535431295104165578517980111496431910960936492780149620410060203698461557610632619952265465815736808981642869419336989136833778258601104451392196397955243883765676730321532077020381631674722344773325697542358544871915052649710080969828453615363640458469784778802159960632657604926631165592675024554895833945807701413809268498187400050950692930989987491658677630704842688160140810373728872052627793919745382002775755371590166534780930548373684464244089427033928305408401179197107767087528503762951220360061732547109916463908198961907004710743224874437799946383564916229469809804140280953824560861736354173031540610293948194034140237208012197419826449036284331999091636312459736719252231932762949148353202232432881788270762989253602347771784391555155693128036032462206101724212693128395277154813406835320246820422082325660940711346974220342080104705459719785973354518255129942056539751132445551448594262526381146612288533439870226322497153037356158893768191394427039759010979804945535445691321663659138891492411055173246729401211916221040082766683132444920117393904725556222875476804035238216898400802971473673945703014874321936105321109788282499271748147965387925392753035459542869597891793508230951502899296302284094543555705925016846525814173855649323461891319432853065396582792470782454378797782178899243889130265456602622768150849119640927912892102868466937514676295294636887132455125199789488883243768386119797785508439315123149038731918371617239709458318814829086026062131911784505255380079509505202683075508221098119100658665724866345157544176706358067036604422924142257698109416973815441715152534941546202157312140139252650945099855837964534398316971784166839405944305253275134263813418125849474545195109360685376337657404847574417847451393066069091866945929170230661217816889200912232828025288208207342447908089275475548424740972896712087894582869511905210456480477496445352656539306694845572061877895675961821982567668803986188387998783704214277476275440494296125285615181440398846209832691763943495725676462485745093939596985248440642871009736042589861761739914119591857571913216646941891340284783616441113587097202491695853850576567339392131376428815605420130841523764897046143435850147873254912052042153785145796246671826981639363227929227725009258244609657430163935346772209169692746129590541269632982043459081723038901672039392980546410017849052848222710279334970564491551071711027337665699094200253929136636835578550908519896311520088107034730654694393446496380401423086066663830937175538851580262317405046221440205221870133682449980186064550968510092961070876351910934955455836717880773590218901865874285889105384273526694484678915145087547205826567189715668063505376384596090513633492237268189721557207494721631794862062944797727188535486248327711081465299325558270657349893529483561316993301318397372848405414007177141979429022223002428685634539921733239363888850563776596408875382176560328679857077749750735467148892417242161287466969947309315882179631301415444282725607926544299960139998888950841709373365140369956403498623630088112439403629516201248115957657850103239987222874628528952900278047961095310001790608275602755424208758868778573262845546905213110756415379690631746594201066615076280062571895305646730443925803933644297016369019159039061129408312490200107150048980380070501950948710409120019781097132612652418556536517099498990559675580029451206270995336900988949439134514745074471398305627434656395986917906455779480560030113682868587720840226939125938520389372527793242559362424558209181414392818164693160941443974087203869503328761480016347712619651047921449754494290649196848334590386958893852278821123970704187014881562365931452071316746028462306602373828374366881230205353547153367151287414515336192817231382287798641962681226713796308463312766747141015885971849244312614476803558723534427784832176941287907213012331212423533065202972167448325910757537551020994083796777532032004659606664948457480825410723807485485869835776951365508697723178720601610133331471126777500363234596370164114089829487845996255261090181679806620370810392553435722419637054131466512249489362450046942401224838723151413260170515048421618075650249764756750991606313208094347903374302744336123400203494181546836927394431968327752380300094382676564216449699060753008516573686324117105955332746762352588001025652042675388977774039121316571315227319415130592267605201513186460407587318515263442448176969404183362924719506944551551892213425364871519942666608607033646326816500708349953992729639137718604716109613846470778739697617919448820090579759831972947642031590008727430249908968453485834367170247160223836875581638419985098575939263346605578560298370419408351424089091210628585689851324204398512622171789362044874090628472371744423538514719859653995490422115150579890371930999366605754195804069073313916716803245979232874937852447858829335376851610182461969117297973754752348210962885568547010277777711592185334547948674822212832609968367960620472507116731909341747633526611699226759142972282884086428801950216945601012267560069704485893002874850857854765955957449559837824249299502158555502371423831626490650403694144211101382955820249552083485351246870986837028822593404862225787430801679339771496753374293710745607038139287840455476123039155315202670235492193275032296977661739077809891368363309027175676324081596991625329133573217658185735117424190600438027243014071734840763651493763918355042164188264568132762171355902917470279510330682047475692941553751312696255785523006284179290503518208169595278542921582839087542788620973103326762153071262723616114588014274243283423792258702971469441698665890542937441408515216104704935566052566931025331432964360551324635311120374793235807166516604573008378991436751501003843935719930733713436004060059591677514557615849628143948979533064149642578725532448376100667986811160080265349362509678916098409153275150763753876117902374784783770713400498675115375937137201037388876374528935856613949098475104687712035087065554932347184697297510903887621161427567308129385618034369701297176811460453578475135186679860663372216725776425265232734369108906986275188168332456050060179531520097682533419284013739820137248445645915098669394129659418694856946244297777549097238431806362892077030296096425409326069716733600720975961873765725511062229847312343278326973305087596940903347176258102244233402624696895978435428673125869880154892618072466991204276327975685703500710829065853884669799567617258472117439837908165713020869303507752187525700993322821192806294213102753962388525310961943957851133523080329878345242429840449102104919056697880882434182196576624039790855077933136930211245033535552836599825891917702745197842447743511236153972286014219200972340950471615023284259611516347649390973395757719494767733684655652784632412537228937987563480229904134915989318985463581253357879705955650439418515667730795804370764401380726467371408659295255055411848215561187141830778994032847303702820063258730992996291351359557078893523296235275682942933889434215349971045254923944916526497748013786018959524046490502510719490682318592722014845199917797379212606060210673463515988684783768391270805926583336557174277091814219690851826199292794768777857704288179428344582083677611735039642083252935900367105413128733377714752920871932109818175420705934007084746247916323763779994825385512685524649667246387448126832178859243720182394148064872447379274846180012467762485794488194644848444758831377043114014945213100146684727730071292253042316371199256751594872444995755285106329841156770999637004998059240115019642183280038497260233537778292307416470526937926513599384887513062734761325466531460395828301982324913265635622105197147605701862842158010093802284332704399628900512396709699963295706269764036060065300043756310145256279078306586615845741928150186497131912186533647470577336331866592821206151901131120637392679472671046868131501638385437471529290378773108264740780958429755030764423245615078302329677625593798477973158613748374129913162734157101653368699968999318580210613062947132301726221731774980806657612232868068941179772773726006254154361206793136212134552509970234032347340337320654698475310725372528562694245708249368902712830843847157174069457507045215189596405392396416370046511374184986549455736446471530331475916300365676962889276411549481264058849269985512591428274134428275983773327256957652522549387089924077998008819294186072585483911504856562717200837041892650729677250127507432818376140521279166699460356591698117441370248705140984714922053293305025251165973992194485554540663192458949451618114118878409210908704174240654090843057086091891162893182064724135085078046186368388138885908917552479659119205701351110851708159860687066058180590540644738005104786973554481339644246805319002098968105116544362381076060576207852882592948871018973655653564975798771363775655391524102269554611031045506861225166504734479134688320006204377982240691905863023237626625044159960212433191101670075028364598951201080452580513675144234003074048886106600672513800136603131124923529391589903277039093029960481162946247856914326118819434564001514876177929350627114377400787381236204255688720490340729532635185068130151649379455053072282717485901296533392439312773729054196469075577738287050546053712255808116061426975890454992666709223358668333484942005137150123372040438290332284867901171575106987106615714646061708054294872424214949096164216637088901130775269331351764683189533824928752266117536121627239671835617527321592027213848801321819010983006553275818359479902896766084906500331627521429261361713465469944057939988550754566247609147135042349233379568282160781528449579724043574243777682246602408730959611797728428384696266686411761591080194565893878281472735197271187703710413923730808477068998087152024842781491009191141597127579087659517906090917090585752593168071519954809415221532311597869793443817169362793095498153412427659133797058357988251990971725175676429458912480284687834761857209357226329221467696994052727714904285348636712033747460274264666065318728081937686954434327000858795746932307533792357314414713492742574246240133332957076645421691335784144355228018423673837768622070520304639033587314317995603609771822035371770214654534941593932410629142789221723750291093943285320468644563016845377669178870446050307585502135876752186481998439765768983304327556500346598755497698502544774272200460198293068708615993026562052880041408090269975646025146239400981960179998605958756902417392867771923517897015775423477009804122306206215933069115299040387896829349062345171946337272745746420618571894736935447964372755787345886041962843387474130066884615197195193936771695748743811413909213877622798201459656405716516051480087391299725060964251473639885706973209910487616733347083778305877188779979468722730685545598622094355197043990967808958776312669028899549302899138477625032898838820102965653530870085271737403986262766463970933957005354634948207780808845194866904592905922659194902944126884785389891966772598796723193099748651588913999513146732798387930474569441007829124357433021097640404965830049695004748565573980547627358737693340048629729561302561573381977664970313784925097451287350636309913771668355538013732355532362766751491944304794704101294925953915204611146072146923921834170979790556449710157164339396275458667295203918935402487166487487642609880741289346211353247267321604135720312688046168021795733082177491182297663539738257142176961879316256877444138357152628525090983505121360023227341583700311393802432667684649510926250833352447933012711965630080532364442963072308367215225584641577378075617684135411497321026539952436067637984113464185620792942070552736305385905316692257295961653819101606236328867794492531278792147157584376348112916672342778084435148496032030378873986356634860188402501214274268580048814701806276003836778341762683745654210772063138861244362621348702616337361319399149392068113827392636349410134797332634346317379273792051446602370088592562105497976528353277991036548018017819576836634768763941439525855479005981897673880983836489855624896434818667825763282492466313325150301808222426665202636577479409111326795795002110730140350069293491266173800650587976071239389767180147054179877052419816043099711451067902383871864880051096627447173835891391557818180897731605669469176302257714938718049462846610693567035711442773074116451442632460263260656897640649430048280026883410019322075261092219027738476754517384064268925924591935534787220445613861441578383274617785489719353833721092652225753303244881536205127635965878796128999071720464284715012987312153630252974409911741268769178179896060399484472380413590994945041075254713397041182072200142656004760500153976279139540810154425189840479485733514035963554056317260519924303866078128070158121309769489974530377516643143574357601085158269057466952863820402393965049959106013391236362067084043014420235906595624921422254439214362724638737728365365153265569089658356961584676476688199749679256310057444034170325796225896903960264948385163299154148378483896794723009296148734076017158795291996834949438737251101318736130913699664574210291121334831762626978016548466286337686553935609175285386869914466139247176955703270083210397989755854898006672855671479829788511390177651528485568607920124346849707858560220230633150459651735491692613248886371584408802896408694450065926552093182777535324638764859793467704091613715783044859080866929962589813814863081504405014755519822651739615187723463236401991157251974302790572426692719699364681814830797148798090332065446243080494685731299895520710204362962406201019853205591704485050883914887417782904897072858802186410001041860201956906292715866082283408543124939918215042776582850666008575284668516671416322609889735145399254975203357983307927171048865340655463948858721386549347955620143549188379478395865985876282194014446407440016746443114152897401378743707740189765660761869770045271973169906449587972940519611950817979297694538075160969893124950122984505964597390722632453356800713383985624095566322659011941053317037556168570121356938683311981627132388013003499184788010765033922989319894307391778719357176646362117937384806267455213614429229406349072070451945485341490336252593068982389629814875877271543287430682254788466919016626331187301404793226416779008543085536012100840551418851705465149361777078789323752199536355197135812998990091566508939505556883024149967495305491729804317720572900694647122195009865507064681258168958169676436962031112756353318573331638349611387469041797154669756643891535104921823002899653156335859324734156358875502246507526535533978180902449341205363428809407593340077642823150561874156354499646703709188823112565350848134556176244119932613608078467431932863450910446447618555677611254139082837984345933566007815003124613370516187766517873150401208886864921085716625232706219338073368079676254606846021505027651144489011581928569927536344557825660348712780626805883038696911292986897119810705417433454476960667620743034381404686941568737295901176412681441446326762406683725615587654230780226498251471645204979885702247974824152989825560528533157777352487869124451532207012885632135550605214152015035383890454035432203235984915633495377889243498803723582292159025286388778015259971241316436603221900352291157199680756997329364037746159201572588773353743454156911517322439562256873643102356771131314350984588408512781819350539683177050631662736423332799632415829515810963377941420432744891832069668944651608055372103941719121137647462202323749699779243983838480564512040593388194335726979512700577243412935791979798857200051477033269278221389091429880983262615215401124051021869696710062627702886933801070865445315917771258626135085486218700174930253563018378311144448350289792635007189044435182876321672244217242890093119940314248388192661146121105869800374887378212747708197958531101318417810336724849584985256117778552257869036984723453559791828486609059940282562701608072051840707378109583895394722966130614736658283053051003431694249565393191439102335630629466024202879145721669899862342547101751757288309695309477124929783851467634856695373553794122373818138706151985848106718331708574992581441213157039650212034286406951120268820204381121159182625786430278418466341994963543010961485027406596513942496609192179674090153280374169943497795237984810125096329019287570117831191482841380955424958458443877809869321953674741113592817527445363879698805813220134782786550619145922911828810998978232836570076756040367605626129962971182430081321725288873441337291840965087511246606768017037403047970399462053355042857060149835091717216170613056071175036238167210243890468574025864775387671562727082873988736078652643451425841464100113794211827521038852338306971886893354143474796164159892712436220377200044128360127598601397718519485612566716386193672255523996256409837797727112809824676988521421719079697420980212524464028074705501928779130572705318181095363513779843460895025517228116069274393397565615417341081217079367033539346057883888827041104143675950575720693817010210774513722103960005239971842522830166511054544612953775867582815102337012682612543921773626953024260730606836214397221417475694925154620352704417250234810314055212542945682384241591261399405306116353930910943148119425115613300881400539187867359645185905278830006706191451276218740157440298016365930126378105126081226960144516664668534306297860758254100696912524899049621702513849300411003044203253866765219484152289612267263598448514871233225351953975200623984327282622595053891375155888227268953284426772050975644989577088237419733407500635152567406052161824085323613989179425234338086749192655471654755641926613289284896443283909478957623791256379931547943140601843691875589876172444704876170093673577340383746675143826097050321916667215722633412091961739604796934344545592803445938273988292362293651318046306968792624888686920246615453147881666445935513728895310585324862539331409188537537544785853120619543613518897738818022207353045115970617421411898951579772608059991011884041927126604678903554469560552180454929140805515575024461950983787859566590272714188171786809023717781531786530061585792830884283619996060016695899031899124908190753656235911968674460758662610030687541621181814819531455107299840792726043727088451039053109368397871107540747974704414645035860473549306595196451081685841216394255156055871712718835850765662690354718334299991917394973693244447795196991494525493051801854922552950922600034698813436990707526596441898474348360274018776401234695793088116334486662643073202442718205328096868227719917742530133023453877018164792922062184494502236826014011780541409194164581747590382746776042790841007418632004891901295525141518270876549211419556982623953206433127105179320274412974005842206230886857378137998357592299469511625052703092693651537736468950167337392869677644430986393387561406323453078624767000076213596432797102500892936776763749636566824539101752166568063209631562824800584586515012239300180194907600002249555570764632414364990708646076963645663597274056575155808492924236911749284968705697981167985020450660468115375090325166022409350306123579889156320227172134574683398692325298907789460081586574463442686722787914191206781973530871709054735825847932977903459202550130132202942095816107120097597702539978703432032492840870544458112589381092943081117368099838777751453147132499800914345387107648043761590331769657453399375213853792689462946871448217679613277487573086761749449475264296219876736449535913938391324526324554977061633265020010043729912072270920198691725985719137026213725542166474124125928329175050993623501455479591205294296121174855405513267924834127938976227276746233356482235020274459289923828847401297858442219093034359990567751483118107168047254993528071726202787766314474843982766162685914285233559468009183091208400353039703482064604098021190906333934458652435699962573819012595853346050629591394830141324952550160626316927974284794751447920224566158245627234967729457400957137567266708258632729619511967292752666182820233136436602855802038073244991902229898208361899496775348279874437970569588202482187354905610925492038532730138998595496684233376759257574749438268490145218378630847900047891868856661926234286899257375332287073320802961501195883050889740757261815799357372590509356739781504343081318627334453149214413048949487234364155416137107309675734058957765998382656278213078084093681501228886568760809513553876087090488518362122180926842137684435353240682454319724569256870602715453308534826107495012738990825961060132419384724209977447013418894416341789211684895639097082324431833631663715236435728504477179777760594477433505047493324818743632769545623106474183940727474083147572870167666191606998963827468863135693399210910227385136736923534743171951494731468844447779732766073250820086733195838476295360044906983878930897495259650621105380331872562294409197827031659253266319961172180773896221023553840868086867770264766193657435479516291339720590333081897524398865274887265403136531460116349794367519105767508527996993587261858106542311009251810174427849642869998891735206105051606618936145805352712014194761649244517575400006455821187727664974269547890677476328945330712381381960748788456903150537228876771268954563945312724429344358426940866614768293629312728372830557246813289969558044090426220378329205921100666542408003972046857762331983230268979191387952141458414528030037114584743494396066076452145482961096522599910899707076426830812780023236238913368728937031131195799879203236748958981954789125594088138169605658609838600778573682263478611352915602536117147813264670488989245721141554780129307270057303751898134083548944837829470214055716667660982700962269161101386164825044524946064453551389375262838319837564588155421339419023118004347234378151414610225043187922089323129159898402979429573300637865346584363981305743805103241927025041628755901288567526727166741439770904349055257461156086017951755171356602033678182053779705160948984969322873357492744379365246120259120060900047797543333164858569616976097639354510491550770816453866520086779122578925389283394297423914801664678304583486732215975275108465806455334656017973282927445840888758663198771898786553329801236773440682835385972296521538903887545262904596119592076622451729330399520386962169580950185577117762179763120529959510193879202772366022444268675762689939214386260261421621226166115197420897245313917405473537668850450197141499707943488183731970295298449271792441367937170276278520005325680727902577080367795139662481676608731576089585705046525258110147496824481567695506852669866507021520085729805625151409553879506919117108421578032935743658245850579804054585541170620563892028895009047666409032808208550983792470852604602642602781923519212375601031937577187329601238518168140568513613926043925581970775362572300327655117690532572248415262766650104987883191611904266140346356803145743759564784907725105167631216173816054463886588649971717705748443151998939679106905849897757070687647303898572719163247371401206192340602743706593468847272675911193136783046295691611731283917290202647443410494232018204487423334050956942362739756129467774787153081844115566626067297943966577338702955940807158142719333647055307820482262903382684031474734873572119266481800555062652667201950736773611597625123496757957264701940301935010316612791626237769147208130562450497843218290200425389666454838487117935385355367590374997512163024246207732769758082649013905490857579155396507289034863676888065744092679215167872854573985037731109306241550863035018873337297473541748757768600107754230151896013720438685657494160220344726447795616290702815675983145737526084531489123319963195952647985071957347034207687902903969245336322372588348351805886002472387487087379821745121656298882211959055091832685742911685856552940509392385717094517813672888108165478736397307216301324765546079325160348639855222577777852035519159917272970077608619986855851530417944406018732467831204087713786140491304090317379082612600277981630722731925987853662649084304821284805564761823594509249023064942409590543399652187487884906273248560324799196181643508326142533424934888864454064256623473260423678015888670555139523247466026879417388966834834891504613944601443915174934965907843769791595268285324068781216088495891769584286278468074954029914880531549508907110716852771038004662715794341159009877624262623646630415018949108880807924432002734962456984607808900449992178846533086920827311326995178521821796150973899417899585215074146105564233844568742296509551822712198901172586846142714905424615109058976154570017519273770477705920301231637636468829159485834488220108242858028344318097664338644012680583575123214658505031150766455799723590609695185985009870844721100688924620289164650994361981829710811039817237563452403034074049441846956281182278751442169166777689598698995083996369809743197879417318653040142956202906056722400027684601171577992574954598569472675999028805698884794604823682215961463952588164779603925889835568352589254731729700565082740514209132303930129097339856573812921413319828134277762952173201279643958790043484723786640275608043422468331894185109355039149002020300613951493881496408854498649980821439132955553103699181836806578799820295365556231980930919884066036554941682602329927895982386888663269470705450180460973550715522353921644914212226366518935510102160132366690522540189378225421367246074929458409000868047273161924990174593791954210224265690161017074711785211381394285686951506539029130893613989968291070926571541569589492620198545862685457847512347654642209016484309894388205641927502941553941443247592638351045206622216021497403498453105995589368882011194642110701344651684634386456437130516089487513895287794977416144534756326378636270136587219975805251528724714245712411673323372499431129329816395796728819423906156665191186180661690075324542592831307836406005754180624987818728354584250376844818342777776319337810152131433810886937922176280053387541622364705479318174978770566343940848667137064912350475434253275317365564731755011341109967221774995662305742921546615141787562146110846209807076727583472453499102801234667716800754874233767400749420550570465202442376053710959912338967926206643080226464947871714377342216840342727095937318971144762468158538929383873578135287816589412240680722529378026390297717637786144728850410648979032725827294487180340571309127973541291921675623190245630561139836062875553073764362464035180057505054137558347740991782182539885102782852659111669044824792430805416256452751654737062458558921527191192649300745214214086136441333160607809702824356647302903541265599797755192828369919158718134376378609406230888450122990202426259998418146642060516501531747294692518131910171043955011714455365484650773613816507609261945298844218252741097081919003690453645646181478913705040503606407322276498506240550137806337776811518993756698733937580238603326038955948996568014969361068931977187309400336839075848233084036637563754962173801357239449754089214202027983125539094759074912296862722006293032575284543863999887434425943174331836028100685660328125237213331311428849546395994721667688785401893456140657128655496247407978521134530588284813761119780882685124413359616226293571543665913629175108778217104607055285336571270413026029258266446900454869203539794299712499916717475021771928151854273212399913814686085069458101850143193978407305637558661589078579500793635519450365364988263995985971927042781414253560976916979403900745552598077661215000359200663392551178000802933063160446262809759924098315754392692896216892863461548510646067090011593547319067828977721678271427773999604237723810828342736914037300607309454656994223823388026852201575483288325837165785746772463928291726314627173670215518503081067540555166451284225174422197803918506665772543331039875859803481670890798506297374126581257200315123146425949288710295069121819738538324005196079217759298450398625175816309558069296848598899297589833314417503435954098572518580870386041485567003163185384295589213827679877435809401017046384151323264383392107864346869038496396976557763476693131658061157315201438265797187197469967445715683145041439205854705842952054983232932671458744475678075299936298589049033477471653626282478129554488276649806785053475804597056237395759650637206103603804556603253735788059952098773485436024210456220314778452737801862049759254361375615519444999341279706161025711804567338058242443056896321928435686416074544049458418368248916309944322061541166609760042117433150057244012903553538452357535972442229523015953206436275616042565519974561520184165952222928068060143244239585950479430156015939753237116282125666596698135411252147435009855090819993709937899515718028358304624854758153046550906169157621488078300368259293682630960408587174119775487971879453701470574614494361043228345249339554162236727415796545906827049913764900422951526266930466940330047368246784827677430073839921033651381521960905893483399119304418059111887644800005477922482333537695060380231935246694590137433075828771502050614529895933300565527812387275876982706059711968034629314310293103722570094286311834033985468168737778242455120219141429502759361922971742619819481598106214371435353437218496046263984290570590476147536723829811658865053514416013351888728408061495647547505242207081003174537959500462727281379034300364025752080756581766850480979554658043412161048004647972365769181706278619772588622207495208166718758690987711910713332900514259704188299544399190718979163820749450792599495185304138391197610027012809570291121967170294842604467717594888471845814468360986406986314587840961841758398989740526725135107791345047209683575145158384544257929382830827738521754407490167295647029933264475798804014795122840915016066877669602807558402165801044932042440373739940980911084929759678623989247875097910465160666488544473813997769643801109983061980058292360561831695635922472336584756070501103248076730589073381307379648761344067619029326180663901664106935186767293304653437678831712813976817148169526108872236330465018191368494336199955384445052366883445763763183254326611553385304017826829217009171089368004742452115650267619913932755576509732783258737580911432166569954104017477275914614343336346732669485891290513413874687144365352516595466076762866884708431055860637007046808635401292353002446298969882406324764990806898650853125878898393446993451769099411151034347687303663379973678543184462548968161248175008588820248774890614004802454390347948128630737190377030409678190427151274613998221736517849418194689812666668117783522294182742921615164989031727715214880902009787174212151263650467415225499351458571455953666246229785895582284622230455286054606719729160712485067747703428232034970821720236524670981578244774973173304959447148306507618454772536170709539818861688034681113748233031878236566089683295754049346602325679220341380897648173200242026722935410966775559818216737062605367790922205156990037234040785058982685384791457360557487974713802197799113382737243139988784730152422501783258468327780741016383614264174927911982872657134685526733917324187402465471669990137696247494823107296977522973599940868042375582040142777594661416458998385476097859331476474475649614151772430930113912645788500077360317486392952538162191622716044070665520872615237651018090900074332771908895313748151933174131880790145875995942648477116702679712850752446347813198157890033944807281438224401895601460097137695081217939731613559109170685635584272686074344737436100374482509653759104519697515728739531090016305271797160224250555342785531909197403690798483182566794339866482496098371048284421480849561827628629263482667331022126014981746883231962037474482341769929155166139023494889074084392112083913093252001304592406091361629762390898025131923741518456430449678912494989838500999827101237502631501417831100366754530830230912570631430601402525253206363076235668473689135935621205395831530916514951674353237071052989294547182751263026451803595594199243707096804379784242132106841202278809102252089393289778444601854218819147330495256615312245240500587050238843143387423007322818805231851005969989199683597962062729436539955592406844906262207139217903816438284189316786144494491362703119395219454630366847711171867866472957455552407729683979300485515636629817871310127443946726220583014970455641308409358079349140707856196668606138035334156988872996988793472695169621635353980122660435784401041394691952089705512119156085872019772788150049828685163133994015437843743008832232324761840740881205143003823237151213160446842897870913074345741782559693373642117626390987658733170867611715353226462008711806852028231076201904419557252441417363014835420109979663329978379453523495099501439269585125698926901286253720114065692930646694539755780892198313812061172064262019232317230275401805006141000073500937113514322523457576330590632599168068904852980057289269977583576395827977064743402250400605370572088656348030062172218127343933909429347742844084904978370885324094482514388503399660039335263155715332357924951127656219066015877152824163822258284595368621726656750253598913103462545636398112682462818590963834489917695198839130807680285170913569088617972123717232764609754216510236286057619657202817645761458792599131132279778191066366379418480663321684182466112019234741202774249414364609894102023991056173847769059672664098051847803101059326656606017699611823614142420357345302940085127343564107565504631685531886820016845687002156682111078920318048783721287678254343683510035684218525288634147909661223617864981967541107702401022886568778626648966491502673138355949049267681888912505377249814486583373940534525618742450964289591607005291847164896129796742473856149027877165156999435693682812184980289332370975187199803420643076040154804196399543017010910759572093763685404084822032364143316825937441874090769909828909280138694109517924617413328861497189226053037040256579676275112537676127070829123565996377362776087163067864410577536096448816598039713393606575769443212771928003388963183765402309643631748660971965813838183760764576323032220031171343639448285968866995228297597272114929129293564367001701104097022282133313477628787332033126636102204348897033033849817082487344463243557544816490178252215792595278027386986991713775572699397462287145874481020659455464384223049228684290838064543345342785296513081817199804099994307971704726568404754464623613927197240530973220841668822962501555722756030797299887369115355429050525025352130391434446298421821317012010666060381642946189740235899017708702077502178789852070066527175793883115350745925316353862856324576489650473743662047482315503865979184869637796047892709525443141068423734658391064549803296960737729869320853688659526778309560708781187170441038236646560460778349360875861006230446291257980048412742272977234156854834819907804749853236575151187144625219238936108538241063138985237265024253754488063519328840332909169930316514334643633842243644541463303069348027657507277666833010773859433164432183842800218520678744483144545399676614506505658717308214886574771453430039376386259527398228730233318506980018514204930441886739836051742480895377345491958306965098658362136987265911543336107436653244728583771617255468654434371856990288546840975441324194073163852193472498544499955926267844566194903466970837844558053391107592500585586618992103613266553718340058231012843130636509784049106062078865769203538115609902450187527531852259071140655929827333436850673797273475963732862379645472913108942346717175543021606860291020597602288201240899110807451737452882023933092763448110211294916552747282703609931391427581244202107077249043187054067136019750943838401181559547205114095457917027110907778656996751164078377896468654867102286160188384873629819397287811603784425112447254772915678630165307398978046816872246958648857039997274718488543294602796131207318876515795398061514492105294089176388065995974896834697325750829752278912867434068809625201565043399749825657223361075041892654414372071925702546309928147789990262304609014135909346617865016515269801956819196379263752985055025440824792557927993778423607620941852744907799320410643284599917447946940105592611519193350322268018558495177343209225328090405398301127193456348282826393113527665484562299494615695399989104150950624488147135546275859364193492131682369374954816614964098826039893696012393137232408939474481868620038395999341338739055745627343471721376557421062701466422075961791448409097965084781471465884354152218715775031016050713667389158668266742930838649861666881316695356508092284393124653974138091550531999489114111523589120520772677099942326708195540672129782909615541741369594737153629056319433186346169538884251733126245150544578014145444903672209378971276303702414541442936681271683563826298460335963977056548315264316993968375782997729006640159736187754750973889783326719277430639003721569644541835928147746777666452543361921417675279532361310661214291016993793894428715149991223723898906993453484290805622102631714610296115192588330389131651468162193639809746539932887887003180569091587932929464844710153707509914827323764937127072214219279192507206226029539547711317784773340971810581061667193950050941276678447447743002529128328551196258565062124470521971197709058437348401820168220314353136369517995077003061754546791094567130021749136233522229304935660627411487740845074440087225091367436367435812968043844197572479273231320126842727194627032965010291528137427000568924456517597013640455252103287615139380822478258623766841853896593052601091301045565911772021017782862554581674438043470581590852227661401065074412903588922005908181304716259859486033671931696656898320969054976027879974215997846105968980313166343627461430444795155092991288854424390912113467771356485472923495669140157523335822609642782884472891142776370916125506537972867145093409759288701005998921455817031954319471433903131501748105567372350458285445923644969936220252751624393819845603427726167368538169371195459636832949088555137916655027420322543701668794577644046373660039631409955425354797585753310604490879064524054555363740053393611514181761777440714178598585787727629998498387366147530370419901591850747637415762272507718469669546321982028150402293459099367900592798992376723624075765916420014873676703659275018667801247211031945472887574266661908771432603105442596429408915786302665518356731804223692362379755450965236695810989222259826362999609784047503209943947022021664366303088096184286373693162381825918710136080151047681552666945204824987537135011324336745472046049149698974244122175999928393851877450416777378316162674734098711084580701002189974374781001698236588221618675355168558593504003347454979226857190350889800916000323516691821511922733327529378664016805704750124144201821970008150025070242266816002956345664126120234875249920775973905644290425905116490164931689451980514668880427352153067896749683202249967986241064474715297673756928424769682200823318754627817739994177112723592397643485782873537502616854801051177167362305463586753742850735213319231312137197460604915434877539925048681420404199187620407743228437783632585616183875555875689272739914593135930520990087174081436970113928498614534084764510100617470282306993998211090552354578840073784325035590997597844511922228826783699628060432370284924074550115132446960833495639095425868711272804322395807233718687969870815189285581849570140830832779582748722448106059259690509157187162212004666006771932713528231282841400971181352272316270097400271178738804934327593750695810077221232751403872534722105898561272488411618083983062104913208662543752310413071650893373669314083332804413034315232189367403953387533377869566048169288687825285665539433825742288303837849933338135485594531597923001710001138331390983361268243960550146777001309908367877119420759188468475876987720327347577033234927588775593812282168247341053739386828756155933811300115416441711168722066214802733692804830916442314772583762255369377631649332625144264553955415866796470548677247141302624221911134520680801541322114625736868247831330237748618002227806148241374881159908321725357912191991232254462219428113441815697196284022211783131433755406030723395737752488149176977717815670973940545666990300562151881735483569162370306534220750086832188113358971566179152219738172385174882257645579351138537162377429761717115112702185225726081823329475980073239279728954667668623615851528402084635559252335783776742187607575521842991236049739248374919839737103196920153547322894671221788869828044987867789293523493792039427351992397956965975910558404072078284893380236172023538240899827136882185718338695532793143372054296119972438713556587735684097139565236989404065607437510844377145386112198244968654281803862346904520313195835554968162921125027956741617176594912331425886832335835044694980711949750295762337854106242959720908439594597445410478817636299111592093849529187566227061554949951077397668782569827926570913045523314977821601233693783990779490009007847899786498842566808730884608840933538753158138075357196382018439438363909634614721973441771620242624902731888127576327997912956640929644575967272470789666027487381646884272191156088794936199631483323399631480074817424221391785344683206716976770404651089516900604530181835217848098914640612535437259362356290935638686084972795562710976290166877858385786365886524799276785718444928140347705385727278089473448899520017441913823153288434460085542638143242776277254192941538377944188620424978882468028803609075513908193825507128313442836568274047297492942214567896951059211369128184212387450736012002416335495845939447236443728024838393553483650284556891780645489895208436300992317995081035763616105214814784009085238734746378981456335318935687936554666995698528039834353958841696966212912994279299951815757766966411621843270131105287083921273603135549777352308174269052262836509185244390515746642209402223956960020610560666789381736594793379654379020780464823136153100373052913921763485287188966057073558678741218291378171550142524445971386601836566936015393702930149576500679540211287503189084453744404887912179064833716263999512807538203395524949671974192878137968037338367582727260377488182391504685202455573192125504417144291794112128871420702954315471741228819555598349711753647369777450548617527572614673557615498325032029502042196964087716020120707307950029955119076034878668609897024319772754730027678683953281340408164174504149753449162012565449713998967868350521393690602515134443584980792257522308297328272016692157525275146247145505874475149657545033482124114836312139540465265616270675559471040945609911143341342584561071059825190794669069857577595054194964073319250608083042940310546224607329448840494346258427234276542256795904837506487261118478298335144080882098521598139551315719790887104553406316161365589137162224567364457857136575017791667655594969900629241377707964899626076407834934999254540927804598667945461771056771676159986209010341171037748020022817785710110265065260863449220079644812487409817458820732614604112539144541229172070727915072391536335535823905670023353837955616083027765389518628113438149187845266988163133496396342503806542823033221826553343998662117842254064054372327389313171309641988289796684281469158538929227262388271821164481870103884296138926351782325223057803850352153194948236705793644733455818392763505814528066103209553933214403715785730964520277055263167605391976447051129627354105015964436693581597896488257098944723517686401752697089516649461492466777831936277441505470025773540934208091965909274125605137615600194180563703356368279784649633024933689099660612605596647955835994818410229983149188944320581457654443894943414632294357812387663948347354948684593249171089669996834447596033514366661362470984056275489814808462248186624932497472344237418506264293811330507959119296638285475104842567054832607996117988050404515529073512626916283548539383828261759907623420484218323287034690732746570329903998171210148920985101505893193310619687235431751153982464033518052809475047412178583158845788033484623049212162108138064024872538740936371086446798175949450167369154826730802403147999099687084163653904203805096642811456006152504371249940626974009818462992915625258793085484092624479868105724089796680525398864546887385898952826072319831819061848830528704661961716999968281738586223294710104326671948945754430747680483099932455094264005393476466797244752501667983732846623817237869820501139389361874915981856163981638754126461545717264161029180519504646924348502710326481516384697305254669606896569619041168036436948454856177061784253517901117660693911540041925623021473169140107031123249410701957751838629639361201863636910168477956254988535532650762118143222799215979698022308313704640661507810125600878013042718123941588862561432025619842083422963577109207015826205566079494232701647084037514747580584116003868244327389596870427546232065066024208500226673506517064191845056320802971240466197251386340261715942061900207881639685990056854348522288105348372417406710805508429828301732570945831458498634763912726211241090556151132783596090705508778800811733137663242358382507877546862934210340638977674684196003365650235393555565946284656080292280489386142514947788643483504429483414178727759799263979932064754756969822817200505140484966244241824336706640535503603072949337412535211517404842118361931233643636402666055148510770095917430623386268225282824271388264620458201388699189250950187318085349094858429522734879743876133261020201142627694738785535095557933729071618272580301703084576105239619478247606864622329943263551367645632129558186043556717611061494294235332277256574281257746285796236665969150794055322119218879801092166607696897491373045615932652796126687401131128354914588016544653553251177128740892936976853557601505525111639865620249952307860019744783524810269940179820085671860351480651498223869553303146528516334905874378861996575674002753416516147212591822000094576411516052877245811778470861112681780091256388974225038649265142689403861767516058830464162053855163659364078917251013687627677944476537785073523027985322549410217669580621168775520935827532662734928117865446643059285232255606302219711378208069257068158162948302922857232733095416119101021600910661387811432772760781946912421265656098346457530721683022910674100240144692820313793592792730633386842377074422678391128670025926663189224928424658272721178859116606478658167369121366866880602790357701521151937908898845554157661764144591974302741945742229849872022721978051039692711133587990515386729079491945225163069394701963253755052576260216934866278290869024261517476344521994449285684891772993404637004932020462841489182867260555625548974067228462412140925948673208077899294022945787381869514302473682241170705411552022767286555227888516888847826563069582066040226924864048704394859555746832744348138461303648165324392612987583637110506620068789246849062979347289001053319059113731028755487626869283885303245908244682616181399966039525542975177630970879051966259935134930687359488874518634793414432186256209326217638565964170384522609209507569002551634568636316594159975079776647095797551078175376238221529708057875588194015466335658886590082516863038676168243419856069635339930721347560680095584953701158236762868349437321638308127380518240262617354083996721402339958572232852767223244751531303797665912508195737343541461415201895716016828447626136075858399784051765728079626696341506597800433136286295477695212922222222324899968853768035940094167195438453385355465643075677385330752492900205606169294796836374230577007390021791199890025213319575298431888645454259330661348317966987174962952273397504868021843106468801631753048463482272321031259607921830624444952898030612098699854032977313789839552296210635595493559823234186336927073873815449947528015382559544341462791807095926395119322668897964128362501637607760428416579757783291139886079902372220285678766837511637034799109469906515246641197745467665382847425722108427473516446842970112677603488962852066456947772386291279557944511726746332332490299009685245808229454349781485611535789827774236597035071582699926098486599767040086632375167106648870781586061107758252740861517356999545971436266254578666366915412452246350556439291091478521175201107170404725922194582146201102096625183982350916943045887081594415826719261898960907721347146953008326931785248404425809533700222250652831141342986761415138328758883050845669224854707260851798238578532929413924252567492285782473229725591233637086008514059549560229288343002896272642571111032440297961947643003219389136379745902054257262687472517776956007784954090039362647859624129536416974849214351871128234578441957793386480823255749520604939792042759116182193651339227884611202575009281432000653197932508358060966367693486444171918030439468804207103463734701455006701965953710982810569461328753725378995158868186963304805577247718861408229242127469430027131670620342467954910798535496282760494191204248883741606770137018011139627345141254143285910087291864806774451567427110032517230832134664268776487417077123947147117233606586730347008133065030708452428641240265804651796803712468012756781004580818158477343338461658117848679276827504161983371634594909294032316915719585331055021240810399869294854840387389250875530834323113018437318313317689697370199278194904365263823716833857992917329061412235657983852457572917613573710886636201191746639431260341202023390802463809125931273012508451271930502693470538541658086548620813613485762306443898977138687766487466386655447751840905006227636710490369199584859611633817628436265984338262457433254159658685589417491421911290130426664488451952854621237887695406559074910104651649078916492411807004278779723559378976974711279951739033486649897026109525484504015423363481374655354351968882940984169455046529497662810221453781870023059686973432994784426576634045495632029340450625520568788840452005291514025418026574131356370902385823399709952337929094132372879149101648391197851346042526707687731780251276431561849564728660464588902268278961414302750844923274804083385768531388409296967915958167648932395736379166733735653439326758607913341477802520098714791688688983302116587847104367175190410794119104549780121816816317407203493602861137998443807465254206983283368384788840585366990370148423821992972516258132312849788793290546367676836198157730216015743808124166152884959721457873076343870080975248709293977202369639991941880230379166789775233195713269124859082350344852051464305994873646160884814501759351944729001767242189205898518914089062234276152437725182254180807220621482635662562729348486918777212144649743961945814340719378970996272725741513370326657790650248934983923172078142346037376744474173346015891383885689156658646694974065830451663628318991437293787205954068315709823407215759874074971432306349833777082235988028553596275080102569551916385107257980617311535676537160596280916907480778392981763201073683821166076951136452009021353263044376651249750949435673370894602801603805536337195748694302348190599737703447855811596648367797301003075628081641817710895875184829751927045925634989245271225839713087815029911936539766686601153928372262994746678130590190350301881223500096197829431319882284254861129553808178445085134205653891523114593338551342452598616826077504911272494449035505324315809103955181236037129253582592807722279968464150202506760634552416810280981957245417564714222002710162579048889680391537301311075549736589438049118550335883729893111034147927609000867531260442257357368899985465817710587230610720312779741343078552414416144034063752168678450935250365001462410004668103983578784610795155867319653135929474313144837154461041172722086653360101683690299473795560039894450351446285407978361598959780690702207659312156336016322594293648344035621476834070907842114494013780830370008651185851334462080880732929804139100281450344151294023412891255608567424586450654669985304814604113893114454461802481224323886599903003272231256393670620933016585215033238903482065926965399668266922216694717538482851896334983673455478039480387815134970480164752015389979037761124378937054766096183797400189642407550595606197922909841716065552259042479107179197123389657432610906622783142308678550876919962197709907653930734326484793830903061376313179280403186976320634911591526102151902130075851811484793995622656460593718066315777696439692226731180766513837152904183066446840938420337901650266278832593575596307644033448506026341261525448397505783747083813143666943161578535182341302347357798211089168994198515259786911450224700778592285070257715386605651790774396003694900271660119717580816169871267425845154220836738485500463113416490794763496074652820670187680967302786343831102534426999045832393525968899316609764702481026234282695069743129205959275308376520635764362049608842743380659279689155303286822884728873938367093609262765944120968465591167796373144139323981279629926297652241601978627970802642454584285798489026275842237029558227696805878200007385263500765586371660096407249411595368719625022172247025087148471961935892907142486743513545636096206830854941780990349568746016048381788674004349570535008163490233445954910140743225565859545149849265919602450393487293432385937332203534641022117790880352256158292350977949479050490957453398711365766255530988762037551190232047463276477290333293632056087974483493623276967459314871682556488706001914228533885548249029948676373484582131879632717579469004895908463687330323460552810825341937583004770779544217793415832621573419332949139909833928455639408487014197939311981487089332075960439986213706586818815285463435823998478201337613888365971169657992532458973834976765121258723799940801290532584472359977992773803282003093379027391346146937091009148903363702369180171506099886774858506468595042381959630873338784283361101448368821472203823855880021001230620069513735597905598955959430775591442843546759712546706809494385972419857209562649873146499843852608937233385510848252046089567471150023966651527477788686457252868781280099282853037176004722475151027157720913060085530549613538075864247328469096587674139706308993510113564177687478273271866329356547734567564087752929471699024081422988602020294447064201067984274039425574577099137703336149404454194500573479365685396875924131596932261906405616212054382400577174644782591685989053001379930038818191106725785041088457618459627085833382034471192584978929058438941647875986733315648969224718110191257658379554694841199504521377332489294219839105132879449418144782011263742465010229801672449524677098384055072735822774671597750898659652141953528574979282503379520648897680394602988172843506288740085923631949972861695769504632313471641972222975794051848398254370463129086113455488207024588126052276941567575502235513675777038347391442240280618780126294642686147643412523331144915614701280646338277253629135029268463387606198591238043733502924477004675870066480171621756461030730675965192624431340447921549529955236383745257979211305023085675048622038362735504477695477138508385867407258699327644602728426056707855767883018032772728639853616784809177231316349847821791396664433561988493313940113078470254084201381064106045917131837434623979323380968182938875952903406509010721402722909605319367108583990471509721040620072278430822769066835843228662421042094600032616666862663050719444505819180105927088984166777476486584983036055313031259112567092330795810364895149578262604299155218277143329328416152971764663669446572456767469584125465203163047120931295827099873175736077656930709254705093521115112493497465858479278218644194903061585009876824606123648659149234286384834758094105482405048560463002921589648167041624142178104425653366489870592035373441856805263221544409167073900878167284607728916652701516678483294746398020351548118991032261380778826907417477273098467729923672955926509798579837518120790693362185101709342361981134527264423406446337035157018661554288723992645817755510939300272084582291219684722938932580713396215717433906595235998197250282537308531835986538546677550795217297706579924770280223248640657858047230150257804846339720947331837704902185406801232093429237100171426093757097378453526179778798316895799374874245577400929175039536032049957653784639428176808913465967107559845009529774501788064521445110457297548744325707545899934107823234609824367410961626598233151597411382486844181500355701619444665402332190012196664220524369621105521089886257352955633170971574474971345819151785790687631086132308585600021782331392446192933287574459480232561514393556001643936529380239771250437050426767264210218324107657324552826111001577728577088935205875715630559999711725445150235480806755964360499817924492869313463907330621955342776160839873073632686713703004087781222352900790628164933276068492150925507621440991165850301963253648212326884611741178045350374746971513656975271780509145366338997975295902550688562670124055328175573204056410932890915355044823827333809164272519112503922827401710178961535222592203284354775302052361113062919344290383139414623152016978552700789971416440683164195148424592108825361229131259872230068170442630391242178015435163044319792383627369643714430832272499478548432294677975854560082011051069080130458994635529503165995634772539625775965241913719437519838686497595496751718508388611398298501429748350712538227846571642191673179279202263009426225906419360152488489343589129385913517070832041861405584562799452191825375794348641560372950367702886480576795271145390684076291816579218811586621788844032566651482478140217838641721411009920311482175459979827221791251351969919423689700127868627428422367921440009582622837788508735309815894733733705896904965551821849675834341415951451095171856237479297720091835855713781883292282833957164484515175542422983887359962054105418858852174883622234517206733000779806508874470262189612547984082959014254599888312607546303896875716904694186390247467762850911365501018587538904609860886097729161368761954554929037898042254334338741167467653776337821159337896104823211185264715766892194052310476753161011408486358692477816241679184469382614189799959692553694449350310197716042057034344435225079751060658405129921049668117718828911131558247821120031766547241788918063790424353335164520778600099099168137907132178314203507550294117594012211725761072480991338523407277697147912324181558945524336318956062429845394011422430237827892597476655467939565776399275150891418817575638887228899351203803655517457413324710019043442537641538094862117373598804556051923074368812011872793627347348475260405876485061629565821183477826274971209129731989228495210588901247284827884050172168836517758059936231163692289715765767828457931753288968351726285087148100460645698734552358576558810725962945691187992761649872242203744218205798921507243266391862357917702595818682535926086863053791423574691994101800060883263042504854871404529399019234507512596022464455525573871362120997378002578496052834417571499357318156452218344175389465291343624805955960980178255790895180855080163277342661475455357342952708225908124873029027571988693727276901046583339098037908197001900778504197302091345278666111193534043810810264110608121381784023075684718202350990862409856735973177403418164556671536681956156174610329779574654723110402714787901201267262998962832864294137643902677626875661666677754063249742752773885001855728333404003938446321072977549518160991222823110666839535856849773659218740764918936860506670582324271562881839276303239030459880731085153906684275208581196769441480259902473489982052310193217015611893731827877206946437077476701147404421700360022121907430894327810296417804657357881373979490929140873216759557214526992681942528172071662860685538387367505626701618773277287257691727938049095228825067222264119501885734557850249961119247082033830167335720418651695887956103430761010255305018622284403067113684395556708147146490278549536816917143679493834404355597627656162771726669886305236720014517728734346796755734172811995472168537429968276233065304296179646898446807209964483454938421357869820352000306697642016214612961325040343461305656459117707040989813983147399810869133287121499652929645310465507880993416299548585252457217915315467885263929879623662409063938139311096717324541257822606338762317237466516295253221909392828094447282177326309911735306610265494564210018502610666013499701066508141796390802013157941686964422408664551022307696698834193680564744243276130640561542711668510855091544536779946804043057292951103283732688205495393630522670010535231473644939056138272984544993803303144611846781661206299575550818983503008910124432284929517890756730640610677879769839700928567483168034871953402061374732250828466454485349548262959685114551810478699641167327139534415696405761456820735448559149075979025255870111536757882037611320801639722934616869605830346221215260777531617842682554543590400048521133158248832899642978178794734821586353251969520775297592123568444811816535644129274348706954403824272293528342663731514328602094006648110158526497506663347525777300415026025313983476015105855116158419691679187586602006778907633692771455388453029936628558522754911047878756999518751460842163633614498140723329092515592822529083187773417871968103646666287474299783054857458477839222654904675572935813673391583174248414662875235242620193208835070106396821215050859246688742470995129246375754929132314967817268021624270627723870261358456731837448946235658715024820378048967342883803664423192619177398340474820110301740776204281306404148325262631336603719946895228964391063497106047099923033272438031996572359581479776780981049503280805096489654841123664824581510221718372592346870694614170106080917098876816617459253882591093203277568366233446792105178113439699328903528948450003864381913626538393792019242265820412542654334273221979089329860803844968064844957804427373693419366550240597086945236967574458358724703517423137242654159217894023806511713501478232583494787874527140935732915483171376021797275213666747438835266328559845739523606989536231472914986640571209438060093847454027374312150335851550470767380122670127822278259934856120947834769009347544843458869686340597994270217064224672934912520975998629085584883231938308211073556409911363438621633704173933068145134486762349169498246550377394486707084126124536166820842983460972323246858518064052637340575477631076769019904001989042925174902688793858735270493130042395856300402533278380490812322425319972555378340720484561902898078898466214829049741128026992587309747505269971366663960931338682831291690386009786462075516536258611286176100516571871002515812600405648450882281969990049089760762930952685457750225753979983480697025313146071380889484575887738839257534937067068630015425682973219551346002759733651970690319236445054090228415918601881897218792035257561218872921946608108813924365199340681948929964863591194725158302349477933698194186157400788637098228443060806412923677040189763031806750063043018696332712733335337781369278022547618872239213339239496166764007079116515169427374082111543537985993004804183923337432023255140038107347619193383130091227825199968638289329042362938947846329965965456757306235330497949716734483787907097440570526704843299818182969100772979756208552538773541892853091258638594825641746018429583863072231742413036106497946506698035796798339171284398760470566735527215397786626064405908476802447460671155679298802106240513654528911658617883402185971625620400120020917753185646695700223932711747221359661461813846310649003164584859108663583475961831121580635116168402961143160635888084139047425983072352493245674596218412931832033954448703881092422306730024416140001693099901962421093068990334864820412500414913023308333961510171965759038996461145230684090409524312088947297259826125542226632366520201018909271344939975335838236707817815925068382397320910465564048918598137184647476155311914133482492823976098045169991308410567304143812558209030758976770247311156965416675602616413725416561473885609431723976092846474984410896660611491937943731221936751613130447693572909044544438265081693838047905958671104629571321173750819955672771333495618437994056072149612646168782611897962402907940014380543128181112983351088228411681491616772708637125831310805761778995571528393260512701918661175836203287805382412740964918749648861348760713350526830664909371059787419463106858653481200405520198239163553832804063118389284973062551939237318593486672889677261776102794733822898866516614240897389625273307089088799405901442378820312444313558831924921149970688845739501288308193937904723817085942426527423695871658258266639625746818445438718945378103247251707481248222032719665164141028660547974598132639220598690527618816226402991759820726917217505173785842114011406908011993899493177341370762318954478382607301606687226261590399900583236572729605285415594407510387510413374063504957560194623167918048149230753744352787646712022073461514956120995869691182728914301458877765859310543325274880258053061437773006676197379552572567309028717480827802913040170662465794016274161561477969059376271401866217191399567250793375139403249544229541547345726450066972801559980138647909786837866783326586730459966065785259517596289676080456802534832568225033522255804415951747592637993262483353683647633727896464900604485861906065018683548467326194447526679412826330488553052255478763736473943567702964616447189850310851981226340637249797405397807663156004244655247617814705034564084771065250245840914942205089795371940244229997294344495076453250879423034116037339048179064147612216360461723986604740278465648376210642659131083122881789134726364411846672376019504662591887579792812557557371794663015464078963747998038646160383814756490814601275978609050562129512915935566001516982777515043286733572428979312132107515289698799827753494317488736086430443057506070871533889897068682377214220191197155902653609364160495622590805231294942625090486460257780340376918123880458323710995449272174375394086472570150616079319041380861216191756773035680702249477467091329175003679879123002784225035752476310962999171502464256364302100694418347017223201234435900640551213369041940909567352879371561452248468877217623465866082480128198684156293215325109441804300872727768480982458971988791892146336564678481383895553473215616714727438242854186078525675226831916716650780224591144389287923682406903689864455530555288171654812184533159912620000847263271670411660496797451063936385335209142093178576927944459719889781346841843003560678035193615357331339384539362966744119662912094981204756051371234440255658172454936198418859171523367566166544441110917478073918979114487860063601998239005699385768685435529564552331258891096754210266673156100752935685579956231828636020259385956932389764312099645840313957170330421447704549093671676306404777464009093949242361475200932937429988852066020000393312325912287188551741568879014584039472527504602343325704290638116666727880562763282586335052562895640407810177761729015543777894232396524506681398543384445423734207422065099548410412541506542598382556181904986318472116854344664498784306618650581368832501542268029545042996893248352885980428334855215717541519080336953399899135838905390309543060323013708499866332991656869822125542921483473983983154261258236277646272466893845933331226337626741635096331673643163674830691572274884783743106691751460148506544162383216434141347594518370801352324638368067149648631674955531378635888622909866030683197855052375863242507054844947537294700644160390641931062774880727172734262476613695684503434547859799654856543074653807713382306556582030263636213225559905333540230812351765160681407327733276206153770383878556766642784533882332108210623182540433585414502649920904124270814663199270263863044860553782726390892353223673285151380293433393657480354295562141725043889916620166821990849493138947011200570485928004569263641234955041613241679847955832361883544302885723178382393102404787771732966012546135192070416873466464252212308552214789692195193123672534271233066452067094368164392036095108456141311838004544886977575066509564715804570628713897999106201695610392545776410101743229902688230173360214750027893627166148384226009318441635117360473619711312066165470448645056925491371275229468254271029281447572301381910393209916496664443796670746864421646609386505438532009623731950653672393664264879269046660799105353460795877059795443954484370274635047514916894470901067509431136461304734796630870299753769991901346504380346008401132441336840549159015891715755119005732635774848494182982758031974241102286837842232989565843128834437103931710407130944221381875068494016708911992684318850765667798408590303777356842916720800927424547122629895156775745394480542556858984072100298022207073365543552032404810050989882368142148060163058582709724344062975659529494170137910658348714789512517007760738680510308945587288881081513988391337960051448734268717770228676185370088747676146033439179214944865493048076770921462162670203128931978836650500724998827561111149893813018324789502907638475247076717227211084641382399245088701783574133735182197451407906782287717049642297771353677323059241473228947616043323576200138559434459276068960416986715561495622489232919249707929013679205051764774128254359619086376284394680782237849121623128691077444140029988342438244530389987819602616856020043357554040107110037564173478015499132873306280065756363495003084118981378347149992820715498822580022673614581047322349810067398759799434732084710546997008350528983885530492034830960983047756579007045187729071500222917237532671747750590324027971873564792871048450784551371124345916101567230602007771708368657294687149678122738349326236965483667738680158213986997973101745879122746913727037801731566739794555848285430869942026798919989273730327024676506479257873489389454205012560496877167736377913590083834074964356511568222182299871639277477006758520070680876510275437333604238736350047300613769654233948323838557515265960329611413248375869984486412405869943512304342942038106974022914670302539396891039931605588087962028346013925976380511366863839032585833618744458345616675537911424052789886521901593267700655946260707933476064184137200397351728883540837338351614921065388627831481839482790488450907108823986035053527374659566660647058995518315282452751701981955100961010034080012593722665021250291223662079320779828391821404027505897196935323145530643906509241916856652419249000077114488483871276149395199499773309916516078406109028590332597613564622270424908362636829621625295508889515195768840817279115899798213694590704850441450842776153771083829122169023965071467275430493702505124488398337377736594126501930057126187123803677617414071347593878992606520877490917816665533876479042770566272451368590009104271421824638202279701443783954488775546185515975365757952407034831865814174745034046865823558639244971438405173302955093184241708963949797850905511950853029286980825506220502120744667877882514481715529701541938559779271227873604129376585774877495318841569128853390621880631757701667779824289469774524759839339866081338755150806279749311887411521627267964589427596194074646708472829700224531306188226855657370354360859426772287402105160134045641447638265385537099141305265901624904364940501545774651401050801358209062483907433461300749940212745696517541332336167949321315248104895966497653345473933195012158017435990356207231428017550432316633449221166734567050813164851123186028432550676289666284271978788751869293787153114061085876122002452906646108083879424031455988289960391616085279637439750946018403206770050804971268148289297376302477530048195307940552549172710863788055430558660823638501769199830434636784579138106471682590731607704171141523820691962810892179042769358987353868512643635109820282449033411577288595998955397921910332808628363283853691673010783186472721448440645516630422504955373800393814329103315651022286418167876820292129363426557811873209667456202876563450138767221050441292028052573445089152735672920753596449315143554307866011816608148471162669659249362331184937803939056191875109059646221113649366181363253586737503939100393907968589141263120231805543691150952393480735220173419965657869305334859701662162726184944182992588684490367594565179087933565588706908301076928935197998223456684263102330814070575131025044195579911757018931096618899313348979496824519578893014859270899210771630940013755133686138835893493535142534334629469966330379137204198412844886688785260936546946252219105448719410356088746296426389577450085403541926807106543114927606751400880722951492338859192528179363603886471471584179126300799115468998536365037324149384303936567328859604450972296796127738330463469476671649974505703062427931977019896472136802400211878539228218843000119763671167369317021591216124013364452404286919850772418586294365169629545950834729307146864734836093087046664260501949771219563001224021087249177391694356049202801701881578856798208703494557074274277159203782294963647116491919054932463408284648094709768405405593797988484690754670218873924156321041598197002725920209796585493114273693122394597357215307593696073584366288694038530592156008029311834978703979996380495828757740711779300635509906416940225963042702653884846163140335512199724920684407203116438124989303910158083600770292424828491848700426443609843316021423633304037016422673145311759070194054081060967429793786103748895416286363846150190065528376203703758574603728192709893291305169752594557304430977874006547216399615792218781726188913176775885001776532636335943076588390406734269417674405226023480830819236534247191178926939581356033404231335895720952581009698241515719533632271156316266821312138622584245607179303707612335126893606260434388532663277118620225496863850491983653622373789480538744741158896384987910720573917161489471253481259871455059977906526509769868619833722184590707901289580321512973853316191413101087596293613289847153975248148439794908521505940681546877727482692720563237962265917170064066499120718589603103376733253708296806885638678172816209295297996051153794121397116247220195804393864622501634426799164751106232644339915589810737483710489755242565348531779979446428996432101096044483282123068594173745651071989670017653467381499550230424108349717516409602116306940877901372827175327258989643507068974655194345966693968239891273503024666348389086996514294107403909402920227181513651208965321714415386919300867160118623847451306654356577822877240605829850854314970083930345098607166035917345750092349751755284616326843972078895846997999492082459456928856138307398289061147525255086122546341190762443782327340555845572880967279027741888875548252841553166972619878009539697960810243668410096836687387392853675333442825098633627009739182924049856588005276071209381484680553315168127750782521409758110974388114308460412306256232906748000494712690806069090796280728095736576592208992527821264767567760178551818417736943853116556366567240414612414418919833032359622626020053714254367430684700056942026159270871609311651285389343304321264923627453812583615815978418699533539540787357676529693463971551063056476703743439421194663653302781836777015078275656501606587314961875685696659747330327458382629917146449975690518294788706134173794836874820332779734413494169826335605447482304185438684743910665413434608922254068899570033725977034098086180873860995367619983656296263304148606990601793661443011554869185426421925897937139099791161328818113360903507792057833381959067825089488998268287935863319506585565937352672478243318327128834643227114724672705284858310048404210817489891238677394427412727101827620710438105196040479921658987952131515015418100563080089211664422735225212115355813753499486514925851087581524412501082814897271760899450983233404818021491563321765161752877351783045284813565610592437385407309053826604235301245332717257983448766004927558189204369396099157014097464909338581310895885527825125028771919948167740259845066339945159295731193377395649364349393989908435881091571345271777103117292762129828871712233774765254978166185249644878516691315327444918677839827830850682762168197883330323219387773618780797304619570522291121678553919221354598574569794640226212630928615488101159304718151019384192672447251223096142874207987289558363473616804104188710954784765250739424686627511404122607120515357689556047696926027839011152184884188885673018491335895830986867826662984884935221934066732383852000077222361185570380386899649566101887070117537816955850486327970981080412718599290409818161987730920577856476250938998676754396657710381687974801508449899873360436538221220918920383380702651763193919563202270956415419456741413095496328989618654164207084354291156757500278801267855707062118336475263115779978098516477900040174635114889506614634448290826843093734863744070332156729731809335559496278575969940308629596446754319350990020109915117528722321090784520186298732430284748295474974288910396503807808564765784858628726531651381041481197624046983053409803991491686010620859194718589103601126452959141619434487375510689219198222539934583198662526069516551452058070301686952407069368159003973183098670263414789613298689961875467802836986480263365227124575266677355086695424427920192546630887101701981675880940491131250682479438506948764321075790595198712144958075547597601690287199766454853758606735009181084270726194273731474293929520621394900569988482389197930740207676290674348043155969453281746657105180084252991728840672785600932453920046892308676547580009359067144244094913725282121141436882703301991526574911256889729902000636813604765321539523236071894901053219987148323306039678418587877226556617871476293290772151443640593756748750826849330833135691590668407874527676134757742010297035067603669533096428379972690709383657521574395331575532517904124756570460423495182079380622370550592547517348675930298663129758570841507140421407843769711687623734023987985409299320902341899812188989872848089335898903529886182607458489691769548494590143759686010154776560365230931061445866839973888737866798192391078179060299221025276138751084228153845338624447863876911682683172581319836839014764379497432409730189118199396219987187282511394776911644195291261756073460078601943216901327831460575352913112918907276512836443092783565362807345093678583361488713130206874050937180217649277283740410907765197173750935300232819453244568560066634380395915237637797276437749655406973966843493970488372023073476924687704768616896902270714450286987009058401030741086223232107702118474823034504924322218174920982410949632806014433693030940186783030893995172214319047090282019119736197269774302833813779032215665873563506298034582038524012836634845202246566626386072602673594963647272850136197520803722477336379456511384088751950264139226501983968941997147795425413764078644057696066911400658958752501608556957785598907486109488785557392081340523514615428014974901796698173698852737069937863420307166648176018083278467780652938258498725481820578788517893312734801269762059714574195366614288778375938565605211796746509271054969162640705427051324065080424840289359906720506180827675455848954263487240823871861583807942779606890552375907942437223117666530849397233334471028706172297415321265167900385991544928401840250234213017177685754319226747202862671014938261388480749475201188092144865153541097578147534911542324588336183348270028616002551673952349791228164903218596498589290296648828005863103528166537123556073136512786054789915708896889706710240775561259419373065328312872814593536238841880467861499755147499281949374814597687020004446404509446943237503235147695932143494858966413221910253541490778666570260148326601071339823697588867169769641726537442235013221124240965901658090056551495652260664662381512109716508217054894832753587010319932698211059082846389839974045445478208690483589382451996105916343824962083800572759247623324913562622502890035890906300621221159614056396242478968963955447633034068517128521485721248716531288678455500390359018588620447326329188864997562963227530341245590153080215969644131690127849660775991367979153970312987190608832160696753293750354258911367094487809746117063837493427422631303102801873730685409716830952163977238647956882933988643328415358561670239329743187581259919590272797182263438650137191348624215505131130193727504614795254114843825570667035918559034653112583175551891024060685589562107628949459227454650826220086342476566457428777530393281550549217731823247366832267244375081029423836468125672715278940861063092388577355894508492795055545518972418239019409326390989564535985413261430377307152543635250347340012974838472367570738496913063985045307872369478960532531549680933525969701239252706060257214989900136562623863317022900956140609533668324427599361322027014546489509226316523979580033958364287549001491668090638049059700585549821963647390565827267196439453023747184023516348090226371592199858392363411365354204717878066478538360920673174520879544399795016181175866594684666417241004528514428981913573229641459247812258817292710514465739032357341972188321866158034307087301487737763864442494137397746944491534855988853211309928478949762243083154979098493845926717127928540835642526750842379129822190432715330008078190449095234673591292377028658553941447828189836086301834634147389208769451152061538414632204225840885681274722988300922386379799226516264578573291805415791936476621112808708182297489898712661901544507311458117118262994552308609670543816339173395692861449311613229522997673320083374079116888134692848536560481212513282065313354817803900707408327630140083228569550340683786955447264940398801460629185057454684477598560790804038521194216818362366911432756801637806590095512339331280419988346841687248633838699549121751865607344290529068084388736273423818567985964635273479499043495647223060615353206657645325821255943715265618985968828736701515112141182097107998658670405584338577318919743089211991798513316994876088618139363244258848161964680074940625165391021336763886622550014687765814685649545128248511843599551895597978095799825412282955551689181118106484720586668967993408833970864672908794273443163751819672289192322105041647646031941450305468708323907478516921443036453020140949225673601365449069592524635347398808906808682867102445430717545017394455156743576630928365905068920513482778603887110508783729273934849916903522741897987747009146263867628936736076567925626626433188695114557513516488433572643741835964784548497965895409197473166153865873014665802208289502378576679365823145054837109770322708665665975930329682463321166516772475443597855979285867417613875493436665166568526556056312992610815991345877780478665410291790775923439481078076453477079938751004880023158596628010213061479023625995835785360393321913214818522039754813947692697533840089599961979015187221826945591750475867381054157375195359379172972997971344250069428912692940581789649245882017105176582275605125677544168086549592304874496070547759623996362610722106982511954646278147310863910587881447601760070154238248525062088345955102249169744507039771463530209647871812243125957543833302805453498764515897848334648982233605921491982571348058075346391785241841458447783080410417242726161266211733296720019565089758875491804213011725629902360072937819325671354114260976621168415896107240639454794611272605455996835041473820867710486101023735051844660709164092520610227212506426170129170704714910236673311933879947793070216958879856119891888839006056431324916131755824466513776913338922411070733471083099293290767286524649906513608461016294089146812547789425133047920743081828196616174253111373385349239547365348118641823516426919809206398945454834860691874632118597294087260565543775118580086002218235989434581519170212639970709360759187700531211542477587912638953329719016128688299650244333778618138771832759175039692773519259498764788734582995306228651520106867132748546586677238848560278465144397331493243228087033961605144425661570907386925981382255085006705702876710910015411479525729087010300793993171498110767693505375851374230523748917654844651330726811540690839923626867595616685146642212145634088339388356406374501298870448348354643811941779508568173308861741021227517790401330327319222383335737191713339402966750225260939816437236209249076700277745377421276189602867527105704318200310384897896478281784852177743233675678570262472880176274837375634478568364055040612791747145288961059262067032289339504625219236735198520440660052110077084799540910071123168282680290719797508882802784912601683416179386977054371117483677094475386074447665781149524651084415629895119673444956658449542462133904616879371458876242300393947802316103121411464718441431952342922985987740634786693319665816772612680715612449946789227494738218866546269231502369181441575848782882244016342191775778635584987915981019262604423206440422422737103232658249215143188527913196215998257350747441062934540837558742232697401898928474902924986660771692521816680734469597464574971660763947304491165964616387866302519664826521222558390206464090487845573162202255018998463530160008365037181058293524905457217165110521910701290470961338469597801779569612263978845928596287215135283095076441152001437720752308672411260489495993403117772183094006267591140603258109940025649578412033725000665548932628563543145370036627165385259289026949800465865538805208935537800924048596016420524832602496599372342746066932353491805594256299303427172851774433081479219898111040139572257677723806341460638231023511086317432081550073860367379595357204975399792027340403220567010819326078324977381425984334500305716267041579705180954466097129964405583355503886670857858910325373525012171730472120791542552914854451290346710243594388043285869293099829280036008733189629035483608524159862367563500148909766619673667887199128347355163849043553796237704769895298357702397418951340458136822244452481398910564779427423663757517612373328528719249688839291904753551549182726611436584186615942221565044634903832136736360551964573295421681568985628037388848916675648302799270768381102094047147159039589986548821044452141850253685596792680285605104236470312433844741072267892140876070589757999551228699500458594506929825656231861359258241326912359937441073540283128102311517821834515294211642833252652276138373866850827978269763486937588571906434842614267377664871068764164385138004204547376260847148151573581291166311455824014259789295869761638172495626828959800223776876236569318437570401550122268460235110756729536476454320746369637147428683007072054357459250564261732968442022425666442106564664779884205975143446463200821012460096866514961222873974842366368392820775635985419548681267637126340777318771134737934339229736374695729201316763546120243911954872491654036416877644914621266810192034531232522999849969298947615379900821893129598314138105950905142259988254559038488997011251419073801002505288640871894991816197094327976892667779341518489466634528633184428635515799207407918487041930661932064491559204935055559107945495492497798463770444136991031119738384670856825576521574647100761451457744939718501743474187677838318171684181365223558493749045989924671510328714105543434919171697276917788503206504866286061148190133110482453336513233335563474693122440515881666306143663162660246345670732329401217747314258744681034663948092237828808439290408034181039494764641462539519829406495758019499666493823143489236308367353978036323854947370201983182803750796111599379770063241979220059159851971532659922834815307084831164461392672887168539007216012180367380982188338128149236935766586929344510135892467619680505682423703092366345393693285632933976051148708940656505422457296113967871211752745316363870756636957981373478865564356705797838902776440155076393003403821701964222855355591607049680043819648091447150065342366332851855116411094235165926029913878111085386386833235513760491700554270785453824462686066360718024303591155243472861983523015706379670249269295237903684489639877385505377218957277101563796459733187406829001300220428529952815381849244637935822086371078407783263761671503046558301434460608255658155290633817670091886820661680109019322051048251579697298888274266237241378567416736592708647728614621062680903403384494395111154690115552222277370856376710636112778536888689765587058143112811862542291061523042502171215854569698901862647649826525336846820100508452227599471745466446212038353650030064423445220264294508207602668650157318727481503965620971809005474123090655554770638650704908754216122661996072077059228005292516738866010063342911507734070311721930651961325961617433079488564739316756785588674435171935290108067629112736533132812738489824288806333584146639658026310012886220353732502388534775365826158717164200299708096699078226833799243145677169046177013456180340368170557562659969881921495770767298155983213572908450572468161212050846144199689454094849576055401331683768340719779272868037067039267918614089580141718249632538210974875895137385996080174602345228496798100839075327650278391987034535024180522516164970926481320200182086030874509380747863438829045260859124810371359408625215780431243262772780289505961984640495512416523517111019654644391939404123531780462966178398887118862507724008915995984100752339193951381095791175530409143667750414764874435873215663508390557969656955301802078144030377434839455245794509320287650057584567185297527671229005961266082752890588626707528052592739853692132063100938834361640935078927199523500466051779399741914437708274687825598632825169021844087773616319865064481497528511256474286861562130018268461955254889604694156362436727758858316320324444245461103063079812871917306091416201161527766043182617908423097522240825772050734456546489490163865409976077586064656588291186565709073187553343787933542502513539880007150779468740157854805423128085519223641397861200745233290312039486023395936376252364300553986715454776958527214269889036161926329351024999772099327096713810746842154312926397752527845668253671887128780751842314144438375219606767004480553283693629556444102735283996446070754165596206495687157314522726624770155480473435283418575950685123927204516979977501467247673900262211221955355988522211041027098911497858483329111379201163920251730179898239954922811756205881049269294338704460697068737198464763834188734909255736131875379724604570794168111402052042158658663852734279034042985869937809261370234291139433261070258372172296053237204785515525071414536426227207328240094232581657385183968559828876147929058151875519462956909468632432165086579949023469480563541657133461154485160460114351920238108645937735550040029635049771444165194524620379524174321945168789663904636140152721574921685813424369333087700030665211696693884962684166713308851032204701204992345393742861732103998597079267199931000568582661574102788254728682792985400895021847535574630614543386878388199234103530410970901246895662511639320845772249198787687046161595567066165107033839400876590206929609723818923654570669416032784062993360313614956956774758486446395932588339757987658355441117361388791328338978542077488167774490276888770414178818531377894568023251039512069603865212676519235119506457915410635759002540730660980529645686625443913792348183110239191845778927297094247877972481525169243570629794643694321224171973290092962491692629184853893707305990393627797242774179849851184453868727711637624786140916321958690712502459900591832157509786262280552920484208195282337649227390086606648714821313043048193409778554981250920767195830464855684725058256833364396360320339952121660329137754342925241487729982659537681025557667176306174281726236407734606030473512571453629545922643519243808203047760990317724134680998793412321025691452576116483851951065114970389890739939561572670775853535283593550472671812460437751303917754920851203882456483235336213639626011956775597274565659712682500057945828334886629576643478382942624879959622104197760804408785933143614094846657282859037701013633656360673195274797262256867217895907569787803363799082208770591419076255008055445544385699526950346765955251241465606728758308270254228117029567843407659970221808128909649049413279806154440324431069734982722497900791023261757271193259688322898376123559278735777177207062264503328876613886959499256299198581978518769976171918308984004930142948142968267932306708943660330285285704151966333222733072129536880022833321959075607026055831592383396381066541686583052318518857598420117389400944849900086280182894647792412762697934453507152644462239237596013345052412730051805988644240219964629782363275792798365090307316887630317893288602153308230456973071332300537913237794626977757375707318779599001959292890872580715442407602060043839074862163935481597269499001751886060707983255820711851456467076958234097315454672381009074618453488461043362688400127839792743905542382250437170544805433499905396589951071741542082604750699287585312889498417255849084642212267493887867450546479827244400194376285002107833716393677524468252317609654189364206455940614802125452953947999542656033974074627892928558297712875253959142726204159897279927783577557057200122996614039414174266421000222459258888439491944284512095682656670796501553483278747296364031500507312006252650298021819563884574699761770183179353307260400551098674591311418912226400227992645891042054863974044672356123117411919099314423414209640025021437293388151776355043324844434095897278994177150120175663077365265946483506422763793649100731387651528836322992157440416295914513674068401631494965981994826217453865728768685804484124955426908660359051894276529755339282558761665574433523196054315512613615268524737602125610930811005969206018409208242968050728154776697384200112095138587593067245248987093268959558817263651113644649488596745139679535401135053398069281631646021621163154039517067382269076409794469133972124386113481616802525284469219443568571710876263878755792682478905165428488962630812162079110498614619595451335401421921078839157511492881745140354074143393059947528227710992746796908620701798066996932221445946125936721956115929018809096452968919852415260125467292917638516125203281929342339663885775918276086155868845744056487910018724802966540192829360901451665825785750838108389418654398301638059955636520572423072510014941024490980847244029105347026683129927781253039621968833089730881476162918637178475230540666530065446740687594632308347698320063373883152778817331209100895154967881347163044923375123169435930136132518388526233798894499100427559973325291404336995567652211660385339431665843871487285503104625722018156622859150637967976073549422604406232974272021925902917811871832603991252594111416040844605355916861052564705189604976534367699540948981857821397934868747659335805951805379914237119097117860915717776039057456989101719209450579759606011724023498836875387717929936121530940601326524521232850288775616372649859986951717586010484735705279270085624199938049145667209724651761986122487211415680843290700058800101540290942624039082869346936037848097989303469491888622997557615481032075213190391575756013893089547278975217269772229233623052737775515697956041925529833518068490158124152063767934968527508783168873979524835502861625143119817347916215637882751486470373914460081368802411133858759283911057571666375158665345482922427143372635467983346806265382220716947703091974866821275376486892044341818307736031701742288804839795176824244082865599167205109742872116153408600567940873835903273258813770808965193758928411192222542457561421337824323316297344970679466332266895381704838542847506621404021099616245286608388659970619249223838579749444354425563980264639814316337589093194689578884590832222641217749935334899610209676308986327283363769192901372220888295305933256338814749683856772253772605181493776780667594578823994488877806554435728036209387872269053738619332446755889600903831814972901823631362890077111903415378169677823619180353797486985166618951152781547158259622147184101503322540554653787984128567693583270166199534235122533656604609841013954173865079554955303920455294051292548312332853786192408367454898287259222685091248804474080484515314540639921458975616359695918045406204067704834737373485354784943062857639620565268058588135145433401887994109567912015578646658296589266664440459397863275265018980497844023085720567573250535788649922467913793580165723771857213235637444076582108404397160987235239249698120425182472861320711542641130261775554406982186377008182794982173043124059966997967966186901735367982410748790950295751883356795841016431591219498684915140614124381136191170440725534472840954026042491519435091698081394288770902906711476067511318563352595963268093286150446654267448203322703041341989762181161830558476038973283998300061821263706348686436010259022080483863668902188999030036097017675177142010385992622340668032678706474598861828729211908165726483119103544921430990999737808871242265063895754225735297928745617982171461198070635288188775458339056024108717037370907310907944022663039038734978454062207599567288867074023358096104302125513455424652406549846406494127891833086085227707491525998574794718283812470707374880826004518486291269279412156011292336067643983632298435401861305859177906212736730694746740697722048643533477929896896943196260771656493201160501826044126551175383370626995188508329468135839583423775115290712411762755460199501532973848369739182190704067736506425711644324615300036324734609094824286107341940998279519490629398450783337639980190970493472525846453506996283625028430780404708849645752173609837726155208975823246897465071336825476109776385691539617646614700335171982632211018771137857474017512884966263719973803339561323003240665369427036518701952976053194722553257893006938569710555865020749410659913562259520412279206233431104855327036095879648707685039895483599190290424540766482870608719653687105695228031394233693821729953938651148112348387325716308408737443209934288524430199147388701612243044793324002021887992478544987926925208046146417093638019357756827573353819715758503264250704292229790622366086560825361504684543035431570961184370936879206463986276021976548592244411026368385640666360069368288187509072321655920033690206362249270720110681340031488673089227509081208214351789770213843787659501546827727123307511809591452557036335070685823141479903202514314200701569868747029043896940357578044767481952566807028348388116847125869195331155790671793729528680983042541612933030989252599538498465112082233992120312921259613001982035420102006109255630185356618480790953797539583275821023102146492478764941576707285896279043619577144707846819299345379402627596801968453509428404255257913961552803108380434217017766613864364682595925654879223277118324822625527928993551399613030551204658328084737161067978262766342229416546750569484102592534311454961861776589501291042799149703847949998664684842286441579560291043917887737232176506596118707544203022000303211479010075185022674239363459648844224022996491982585848298995007381001205937433722135760406031643710437885696101307725469995855160774976662631067111603568482785457767139652381107212951884563857817280039213813262227589910960940959539132569786543539519937624332801020560974932057904966996136281166303462778171017091557548313554304463050894136859461394569409953617044586958982126154352556498676393763324151778786952516995626757239631117318219111065805403390815365953996327848461472968198380265575253765079472451359633386591675173245118781609243443761606929705069220321629663341726861927949688246749827180025772691588901209517754487177929298348982271954222582175913330710627065033117112442778345393424575797976541682643058473280615295877706241030906425042989366545058929906216120531991769271596130797476421293409841132087368792808822428113692887928605668696760897515228014084637662815239976720417172422429718796007276171517452137088747909061815320672269531195078525311467751628003118076068287191538485306377014639317622504036405014244276909129714136388283807342475096848540173272616473269675387882194429256087706278881102908972822245427363765944454802403254808736961126461255614764995904557674075879540339104180017100349943081239589814501188775704581051648011360658344342171041001271326597865012956208071650510906285553505293299882654897687087063331671862603782594305466493590160356704011753375861181692842452741893908610501533521367169805284192575088863039536163170673358198331010349955919163002388623800929818857679975421985605829707712195758638372762216469295871041958486012248410829604423537084580361675399266863968662332266794276099438754761122715002851641392843493364448054202771144628253455069446408174347700811602680485510017935682536575723227099305741894639063483399821549612429931849791609602290771883815566471522000644523528458400103316906737391567360761403186882945385723580446288015899662901948086603196978110501656615011596975152564858887201041096270989071246243969637100382059985935149033716002684697293125953972331236526330725026120320687926288165801773273600965773796096459867395378222855890698079958827022250772273528780540943301266882013159964728372821873087429960836908698941741339081334302269847430149604860200741494246545750918833283029928194503632095814739259673313247199080051889116521534969348152838427077953801112883887828787738952681938082924396635876037305431742626930755671293600352933664135408242008092979250150287286417045249957689842159676553721468132212673418491388842415061449123253004957769338204860721106513148430968228123311445800803950269882998029588650765714595127093987368454701933913737301280532809788670354799210238620499922120505637673223995799948645598241531720251990141176763841603461478221085083220837997876182147962058078177614133330052226122101752333993356638589000298871362650067114043137123867602849766921346054186663515573923531156161676096647511971682813320730748682875580453923899668687839926205610648562441335175025226496847633998831671471374577146351149893097837731727995004353076355240579122075771100630065399534448013670708783735659052477569903701199323418266696373298047373748584632545837072700126329679297577770403686762235278132539913574517573817453104029489384914787851952721546187864958612087161548762254325998277846026758707577104878055563314375322454564793737911491801503142730685728629286241264628773161279158634066545192022581497188411228526673753717452445780622878241412674671891352915838853145114294848816728598026530120626071311328725910686055078770614241907734364006307220944177095799544348087259589648768943029265582215849620921606109047494270073132122423822455817331007419783872667514574045232998733389415365132217572730074666108929431944049482744898087503229699982238618853355099855434067759837049355269026032701630958554580663137159182494439241972999920243079826888745825652061819179133468664772679118628757974460670855126292354160153066858623782275876098442820796898573523715911558706801464919880207179866018425523729674835547814000618674345287022692578467553401176897788103915949958160356152056592775922783511150762855530301260350919868536404718585099996092761111799355009230943151026415406534245342317033291015654978989232456197750485728677495436156494113459932330849790983759687982229998912845821130969726542246383154766629253364200323207299524343507212954167206557913196880329086442135836771679163580474818675962078138974378759944966629855534003340668736164872759440358268529490274295327049455089543501886521333150540552387468984385052016201323528347028014352696609174036062208352770265711443157185407302448450451405811530640298533521263719992497752277192346701222256506966940823351557756679674099483380979499855168882496794829638168959391185165568317744328554376002313617415193312740829172958936448034054103101370330899868318004823677270445131308654983566238757477363647911254455213320798592918504446404256327023748737216844286480412596158348735424702156380636978676680296451702729884097952806370034125767207389315485890709262715667070256587898129788964975942689438143909457189706389714728333714487408931970275799650758119865545714514730212784983337085875696077989290424236945207598378711868759841068936922414273580379634546035021757047583677950523394332253107431654748023223849930573835355969056121696512737480503254077628838552453583805127432643185124097105739951077600778267335932654262729199650674673846155826648256771969277728368800645634952412273477730804123301171131110658004256675767307895185962802273381778655367397924543163112690299957769073758223278003131210331636113090213590412919685916162803178282283353929061462959801979812525930464006647331583196615485204543432211155518799436029104905489481536016472778252930296405471114931093182053301730848324938142186368952106610204769508536314825431448694082558160911933603458208112607201766360459465298122349983728712955284980391905318370790554020144380825451725619397109040163451690363168474136873950990742457939872911471861883680112239712433551715924215139138419832010501412262755771669484131404947277085792956297684217934036243703130146513286786767072374464553837563799830620812060099844467620674046090051513828470145869774988832293289782705608087201249947941100521126952062532200794018959412643488812552975272389756315261525273699157499672191020777740181419172088414637242440246303764098894372464901836434284249622560291567447127768702756979593593907763196244128785314671384125122200459698990906673680661697312970196961197257643711479035765837209705685634604967440244327715399219544610259908801897196045914934555921865819189853218525676190440317838414759066064417859390032132089370752650130199315647595206390348082288148454148924783713213518967705872098213426157316147109117762215808180259461692690780066842649525444613076506445812047551049038846668663212661897320796028738103387113982156733373060437897494347767218873087818022051399937164419156591599013239455646284711915986052304358439605104701921762495139304259815908536557593886081232602678019095728535859497318807296062429552805836050815903827239348150704129027664101984098524956074507466469767098812685731624840891156104936707123247372574582176392753763323852477155568940447627909852594374449802630871335369769977024486672286538741053426555922108134893499525315950170359130458137287031373133532173724434816297103696120074453008503528652842582841371323089764732157345774962335464770207697616851910960599484809590983764954023789554801964081744517711520999932848120529830715256411086728868702140410499212417160350969610901767151492437827443688516845193516233404734996819897742206113727732432814451749305306446214874170709701780510609603272600879380028419578122014607818775034518008653450110683684853953662634537665183924702133695910857212012052900898505130301058612511592150511821619275677194812770947375008936772566270477529474242007251731170643460673462140406651423962540578231425847002671238942465768496923726793120251460237908416573004140605171153562367457881598837865920834506813705026451305595241278230150289170094161576774082331433174142088229169766388572442201052702443577762350849414683624654843280569214246157427389963246796666720295468259938609246039819157073233633829558474089916144033614185172071411936980907104713249931408897262910135408367072771795510640218694647962384491735456774605020735332101990694532003804495741926255091342672077724389399118751239616121823564020889700144661699973778944091894510733424812986030553534253748912444774362189831108816131113829646164139238499932277084230547835770230628183511306151097413115127370329432425860328336402407483746107166571101536754579643728111201143108874558058116226847115047350711341713193682396477013554096194529002668378203811289584246430431221941210014999413554269011107988634722321764170499773460518490465105027638040765461225782665702367693481177596037016933795365372645570601930324994808573807082610521335703613203547900101168012904873393409140009226971201241409256305675851824756024583531103923646738976858307470582891045630897612165237921278287985631694025370778227300515045657844570507677656234656024846659538840795892240098970547578529349906593217537041886930689054036771794935938429597713924267495587951676466605139957131115110249598410036783532521224019413537173727889262042775575944804278727873175152921413647130777060736094578822102920125552295451845665034360212279647216034845906336349070352356341570326902346304330670955645063937468938030839703359175593784981823335047904110631358088100467977849063968362151014339217148530677557437729911776722576246454690176144500602670485310660378500224270834811744836508811978337087100984083006789683750792212236642535883569244499842806556043608483411697279609957001702818255117254349936600475671057927511148894094690289163532926665515731199361843714248527690063962788572337161902505283356424150204032836480628910566799048191714565460162030443861519400137316219576517117856247291402408305161490726046848376971174605755835960464917743512073226874164362234875843064131822591959228716394606128671037249014569445986659605611782365403999547963568428886528498080922257065801651158476863565308899467255646133340261188601144053725099719719469148910855474239570448116746132433854400081379084109106350499333936441404131046826858933891819088086516252732257952654894772700051044252110602317579218149069606429890802663502723593553207750665890479454656742679229685766005615273100101827417275643565630152014147734019086831960770648247247059016848948703169909198796315845884490630595479354016745418754121930908466660377221666835194832789752432603429056503434574072464506044949906713753997432460330858788162833567609818027366414255442324149703125273284049346145753239588271799057191745277882364868257444253985434356723306419804863970419637210166203992850746675282360441365928484479952649680648125624914194536781579378728286465621956088086559101580312228451700028969321513381376532780114103053789057912328617599606953907647081259183762620794151581816497287472549080137833737957503543482712597567837542187324438065006819021825181492687701164110163727996978151368866954834389824274538024148417182576967998043930557898933595117678708139899503970529290769271130707297131875752439241297332516569018013131333161928981337290628246516640417677038578716820652120499581508413822594435163419429507490972831146023998035368816630894140259932507560027454273184258402748053827845901476274081039153270736801182423113243633270304478110611871077468693315032847674982815071701926813893841800441716425153300121867606278016523440238278964498242843909718383749434625269401213773156853178715264237308214915600938943765843897207238451353917539622016643194488474662510395569553512824794636921319409841623233257249967805107357329442418158301804216959038134540079634410673102736523428179681769100231730947315570856299736419804861890443493469134023820020599383033489362679622530579038306259853756572825974823167452161523675242675906852401591409613098909882523922530744452659549488148406620979372586375321280763065584932243668830413502819120698051035700204118581373124906356445554825015998969528953045075002640955344729143974394050408057354598870839806720408388021825396639830701335632349129237552772285614262699708094427248565842513373212931014026439470443885341275717459027459750702214760000903097964902173030615305012178757723771334878689102244223493927500061082821234249720593820948356581053729290564324154816331669457205033533567396697616972204524568604014895721770635869351004420565620062197906003146120847540338979655387630696167610005812559915896654182416391850783698210332854725631955874144178258813350618803115784089725928568770703909562103917471331993004158256109552521536970477629867800973148610923770726388772574729405457957331278642070383274178150985913414500181467029252285136259142868264561106794345067665372163208105425565547109115312194476643630985203182335843785441333736585063238081454028910985148144897570512317468208375775629036464662197634083246410683368867845854634471769363985674353483503232510885850826391161839597151889387621760454143777265285137023012499812565221239705634472965012971654122323143261390871978694510459956050794986116044694687870631247426373104599393119464002313702817969794495370947533903326269495274331040899949861574282686826009734912633171587951652037016388984411071834433225137357818516786243208494288171630759572627094961784779703054667477659848003334806861376326755395066006422322795991619870795105791167269435643395003879248310000699381372332739335879738695776849184494100068924024768048995002242645766973005947794247550253675006831565976428539271438516689622119391122867978689675506159242837186800024176661963886615402253577860249722729881377085674146647223372947672068082059998327435501485500761715682010581197172927454571489436500737123207253669970743396445765054852800495226036031031175387617898146893474032070676811851838073492296096998399268321725552530607269665250120259235825450532438680427466848273671178059645059890276067519634688514242360268202934225375485278490468182626056667308646361881779974735414153936615473865086901376305579492346173427070418982509736289280004405094673726984499949755514562260365268722983271612117538535487477548827612779515105130031946212717771017959895906456111722254745192633421882262130515436508424172796641177310879879510576784326272064177651752207259289516300386269464369426905305626586570804963137805148111274052665653479967374280113597642006263097478131369939660546152498332226199203933618614589938694742266570664042114331386901056481950073532398553906797267528010268468967605814911590358948270683278037202452829803294483392087618359074882147158544574845617610157388192136258025282740250598972639478279515562687880439742359298305320134132789978108934265746820362530098474639059988783350305894680511635454289626812459970587291673276631797109823143922925517874438620383799358997427466118269630015870424538617427087340763994043305260339440598367583502117449059745829062031280662632280513781597954169658538885904877318684731429983152928345339585971029230588396122043869496898243935356932598469147313389664745580759113275785588757379140794921726346039306513945129468821809029218205607264270932336321497137174583075067498975014056282587008458252456683519182558874926114058796018591839432235642515986375171921081067178244315188894321979284682692223882874617273844185752569477142816939930479620190571948660092050656121890076213703740043369890100114686008451977571105576252597954266028772782380246417096218085420756755810652379408048315948513716324523886476197865215823071645642003619900476365815198015264480683358120660752663282245503965827441507626670182114726680913460267946130953253460933651378802994174278707491594488094382674820129574692907210969929376817993183113367494814697515567789254121218486152807352575269270181300371964904532115478718408317562233393261093292088551292550904183094780612556802653900594718141615303021370437508824038940930907789019235118336760242043338794860787909446876814652700999312903482230957235845273673661446208395231900682051161435123265714562671544120586819887397759638210465043654134499676096664299558360127276660494669865502801816784500655866732520068399262064405125529801754730244848278809391592604634081309043579837015886491919477470388982302764285952445845129504038741151993558717963170796883837107624098389578353948620904617040560477292372995598038199831042740851583149708197644578010718722318517998866218126567879873272333518142767276406728778314952493317902920037879976110536741366707500871758913766335845032507422554283241080301006459273048278691594654664156138192796159006319930173054403933844870604288353799228331794269268535798202140162137898231256533506247896127664964818764904110536369819541745992958562357884338904947606654064200300856854213794975453857291060313427736375171501435713592678555068492466638701568498764093790600811832461511530123337928294029699663227053915467318009031650139500133342045432868157854966407595625119550538482457695581146338216246636440908123741011620749327890143136710668165948594453866979479846425197190389047326444976636618202393216023883090535356298940110953786800788524018476105107267633619218783035348237163007270250387417248844805350151731828481353084718166584376156780139191379691948478996245202537086313866224168432662850998206553540786399428040837536579167723659268571019738759623848770114262606906488756349813117668112912009677589950433677208265137967673724018528561566604075089744620316426097922105457893830489165804398538840180827943622047277168723536694498318441447000097615629209568004595564344062450351209956274166903604456160138128398943145089283047539177611590445036109765865572305167016231010975384980572519393096423276168834065379235770568472226723439544268283699759663529907722504422578138698557453184091102362089795831565966505786765190087965371152389992735417575536162419886890303236732717040046659498061500050814188998308704455405305502639890219698287106848280528276693058962606996078491049439439482297092171475518567413928905458003777454510093113121817197025371612572588106653467248619769532687012216779894465936163695909914498827543842553668752493637295020475127603527424340405729624015421540038058625158969487908926034830221481539306383218729785661122755975126338040606366460734099886943192957634684637343259334728690632037181519510270205369820931944123238992832095367126026335785340936758786268636171681543145560692560353868820453144911402441406245175102709035134924028429833138960859761428337818934416999605999215827204244105702715307302053095387340796742204277872686692677930530798007777657302969814522316534595006111284609555502053067892412618264876353380239004701208290264312252971289666771752743617669907398502725916014120403762579497724653626225987420061633760028790694361942194246378879794215190525440866487250295428026060125131578530774604821582577255156783165146126672549243498238283544047524558679018607973045775088713737987109769934970130770885860160419127152145454928366741593547553286049483790937155027392482850585803681443617584074675474136929167884148765564697678161744726343621177109771599519588404730208816412237561609382513258807020236714075052495867856193945723674376063652380355025199665476666111210859555796177991557740476969806254961043141737028700010749477285150538675342853504805791165966337526424998472416567043507041204877901688337982903061906002224474165950737051239815341763707986319120749689536417367799046913885996499108897248358167701801961887102245268926174280574667933796909792629600075910724703627214869329016765012487355138242819636122775723630273210812406393672004499451788268405274622012109281258762650714726403212239870671087503724785591137637042380587862584470845420204012484225920269347940833938918095682937942122829988572752641916899863537156178586486478877957199944527014840130171410154324575733832624629362649384242369235085705589999905444895172843852738576580753822343689212308752741872011156358421555461497558558657699021912464924047178707048077442376429690964995178164988726279517241425058336078156049952407645801422054788136022783536294540007919363664502067666636380962548688819807107384790052217360480653371452027345444259679194670486935159664671972167277096319441438359873251319570331639008400332163542948471888081134513356116228860803617344935932169330476192462339994234567132830344382371805158132850064041098102629650278077672548319859046852213097649582098030567949538066002508770018810403739061197290133311024603193126920934318362040464777304823968780634064564935041894116425479281071195830521209492302898415793844820161655758638548916390466401182199183024183124088865909030322121935336815427084978283317351929674497364329163825904676485440584293100059088598225811620739218938044692852369283711847517877142888463915229337250500999168659517621644300233707457151438472055268166819792612706122246711312751104550394424033101305693611652917306777088867484882241154624336071596240682682118519237023151039769621293144043830419784042908506971057028381393921983946806786134740176680434205636665378938219023936299675524897162546965076700806654941570316101178481203205981991195019525816576451701934437306198064142308191391650598883012516339600486164454724119641777790428304238391577682082824382539840902293792737709208783791251543854055103909709251100780774066010884287693664525708837238280129178999689208874064649532188156669710816672134615926540945295930262159550271448562239576563117622966569839125098832438884458159078358295562864764047625486648189933672425991171012135942566009698451980299756392964842231965258819943303009539243493545275810291987865013678969327274057607658559991473739980182520350425165302835726480505949347633621537509900698985897924783598756970741279548645111540175169178008393896902749269672924545311449319401711356486282160783819489275438260241005021157283607593159692043705241676556193075033808324220901577775875639377898933875879459422918810224812077660302297214447630411212733026738870086251283370802459374932873133321576791673238588471533541940127715447033237427801369093052520537811466432339675862923335486384306836105997089240343190170699338536940424034192870769886587980335831856092863902917981138438591144235716420895328038335669289466136304577310662241369309392337412409510901955380261672707537254437904171292947566446463094850201650136871081059007190458363472808706751930164273537030331843534014526998212110738221003848974572145033920120729114473714184678222339481343513190668326691704689141643419085040494244458012825162821700755652922328428883787083946547005214105218066965634191420231394888567214269236788948106168982018209309795636443970710108082916594578551293028404706920310205248733577685170744961067071493610967022375229288067245625425708096766389848256079391979733770769330422974039828191809345421788935602083114152133191025503788713865530380718937225766144678146461372109831609317708570871153222834787056616579288105104000618586223708210831832657210541869522100034128739010468279831244490678842191969472883036986970422068464043410542737140012922298312627702063448473634728081087661772242019160418781492451791808025983077855273321791800315165640928783940733649002404482747770115563019242257595162023486772171215972682258246919395437285327565158076030579357655186347935547744114074621069199627424922253287941976238310467387886207440559060654550896935345330004640765139669339397350114069828846181209498020797167338746038404221124016134627556468227806887833696654384207309275161219549750643150782190807610447443214901032574520125761598703534105678417391248298655208385356119211812526646190358211267364787830918416836249718777254370585431810520742920039072609676941200140788434421114515569268191643068625139866959313448984046513070078686144359043200905526735616888645246613915305458216394541649875900007364798165510640485822391727185320428255198519202331245820880735595987231961315619068651442155055137021780923488540450838660628279998925979613456651326262963492804716730816556782018872914444813686842590892930836262276784909724820843524673701852961470920442336150062779168298799178880807192959088544819681029560560746269609935218043968551618452045219450780931586670358277053766526958108055406763181714355983399035518888185335582980467776455743022724144329109481565742729951985707593237694545703834721594060757434659999645763860540224667048263117173748563337715102682375484898581035969578803875861090430349411549944254114390745784055444796454250066714828338571625030373255675127085029905911268581518736321830437160316141452896799400615950490428005218025506014160339889567270755718711158719102763380809919868441587008340160291051204765774390946296236558949746422658720893034405353045310106175257307695442305390890772729594641140802497109754375345282053871375075579679318442435041470054008992851179700445487761725456475181716839923690397001034172141165726791636985167016464604198332130980138465624404305712177398529064602377051140518268884178946454434028012535687952196912960530913878598440047820584940231766700960957091583030474304068538448399404820011193303341795241386992775674121739202872550312244525799032312599864984898504854924346393328417407561928674914945868459611051215007417865869999083412909947221533687371773291270485567482364395876542985537826906357341428549565760857182399214788427285944061949105765311167833847665931526832415035555026700680331410765949790675365505821568606817280508486203083247660996780816440279952097838022531415155742065474486382031058078618075652401569377855253294391829786741073916767516960338569356294740538454101591243892730260101720244644610434645239062049464926807445080539634141589886374259926992194082949295357214652918906603671759862484349670310828492379154907348812151513426140831126895661953543282593608253904237496446321167924057693436434006962785913351463617202081222122285457104272194991407898351301406844164319363327478283751106015496041035324257235030065327645377409636457823223543087175466622002056646487334471098092295838198471711396044259499560945282504317021820897428230939444299083731229740677211024462998311611854798320705361808691060100230100823121336203519469230847188315038632135422601421660374111088058217675026798306005568873296978074158029926290776849772691795539614515445551844409744038033954544879691981496532808058250349444473279303809117163198497867850728830312238543073047478167689517498256112513461219234938745294694241607891905834978945921268300667391746729063835628093432838193449872596973239760178144328569429543081481884570881702061524113642792827213803831380303773265672341881745231227273272179681621050427473171691954488238006445630554844241905427585974294692632167774679661176785799230595801444023532952864772355817181848325081155636451196911824937634630879628730245656468831014885915654586181081833967200598471526123096015802854388932065876354990838336497078747966059648834479033492586680283437914217299850863643598230817781439554784843587091681221201254860546255677463199388990189556762543305095922339564742200273396821477919831415616633520364952854233940852557534514435045149769127755427795453570470414490672186831795543226111543789444455958286003390740049887940972910696051058672022849008268372341143376197702691992799102443098960477714516716700830490014211283478469993975019690158216981988704579405270140299663965784130660383173263577954679000788311050267209352931773925830643255909355257704516301727355359474670138311333967401590634442496055938432832687568330398280830858184335705496068189204821387670562089216818358851998252626716530618634267338719092639050776350530658181332273124824146345283850284897637961038829242691146456195719168320419763898806222597004469858202226404502281465985445256852825630864906483171495893069730932638800979243564012355091006580582002135014598256029459846312099316886192953642884198879891470912352403508247993078753505392810167201127677559809745977252503627791548596271935106916595301901763420801408212982826781310816666127517055035995675232484234260756069012142072539544742801693012099397873257458392713134862689898787061383298474775736942532195138353244758484599058662624604854089851122254966032953066738914300424233446170384485597948293703692425309547726430466168926590637033309951758765312763198655043306058136082305766239717726957902739758546238501144957270626058573145575155403497934198921853782460163323465293752456065580879870774032965645491150675207973196480317098663319305910749050766675282125906632069173443277863381284805689008056071067118725789727821276668478839265433682361152729811236012046295040340798901701922910193963239958729412992992735134887630915532419127849042454820702220766178047827859348146125944426886711535324235035992524560912559827129016487396386154153762514977843102985580494170051450146414682791709406136767134614189210963592100552958600690185398774928709715201448439890697727837441162721900587372185771796139302678250949991373757180553732591909706962030111033236096728556281563372047436178154235221218853131719050647914351687878168355509544816063399973651612215999437448076206478247855072198313523058351167305135172319577238347400743380207539930852118937593088417984463827777243341410617997462371688421363034248867033160339708133262570349100946792059837849887718262193695085907979862766995062261714794746677757393631817917600984834825489425889001849934958532714904523142150878741024724001225004306374483929412987593777802162684391396616721340650945839181205674102779664492503974311634185437794907564478757024634057428556565774954326298414528873203193085973691176703925538400743079896609737928605323910313108308070147834529836600100790824077005051168915826375712447664956520731121749729234647802103787179927892428243508363165762542678727925341867086414316479742894607171508644555803201244062057083174632255423011902489790180727245523588754119808344319435113635998077543955528915342958701953043620382503307411926930949660961675652449159551500795733761884503865313370163664550264723898166385171037308155093285984708401221679075296299629635132089346768984389975758209107060358664724408787120287790409804458365441214599196789829534513704448970744494570703142303580073984399002940901915703894633633982916845995971720803860683850968776136290504362300702010898847094831457276092118809093016317861178380724236969421673852763742851915874707617960480649510306186924855027621352391385928786960864705740806932578839616501739140386698069056987650666841273352272541294207017067679806363196119649496436263293930905571851903115501909473156045075300868788798664633888964421226073337305344321655859595148943940511802255995751996452195020941760155596322256316390172599279949913386863326668226463681123917651080153882393956308692601369364027179999776490038098001839840647005984730507913388309270564056014121749729874503365284842289760481993652840788277342885570894479329794651092035654086565884658122290676420896883486713902651116429258411272481170002464526122026910171141288954869016279751458966907693513415670625990599835110989394052513165705038094878477187591000812379210618624576548815539660119596127744480245156845368080935174521454343321651612884976632591839528229470468618750570968063715124807842288799940515795427005034281374639346919647190198228377244095718934318937989443155269810635971210649266128250494737740758986278451254491958869881978343085028742434212172057921445134900765378606731017993950299337445916635795164929418615555344375082664847285365042086892577591158411636508651455905189721707591218144972902002186356102168330933288853840479440624377952448124127334466214623546655166266015182871513807723599527225266344494869140887597077616724684848293436462520600209526859612445597441799987007692813862996419724530085575176446306898063984950320215444334581378295120373200879677435611163019161073640780087575541191721083492815426398838860623461204709108942967339238595181459237274896190742457741348875268558858666920427216605999293807885728845005350147093071917288419865376055535425760100792612665563885332827211935138197328512403673738586171218842041447160782764947118431144136134836064687485001649403577641562148748272224009950194505961586398310625560146590435580074698770761044292603259249628759264702472798201309181480468272646552206135146124169084623636238549039911032834375458680834178699392579430828206857076985024014040140983904802039145613871785783780403400723886831300035487500131361140442965166493407188626417612597247802153835771708741130731807795885609691080972857323769866854849904732242690844559077178350458258020349605494770729688978746650093362886832632824999080091511024567493624353617220213031174161813578497903183684626213108439876686283074518296180984261862493989789878142115337493406035930720344367828945569170496858843322573186574435188886388377423107682347654076519681841194475324802472140531313405725189111340082475658742219115765171363608208196356788323489556814986242458570658402066796777444182223936208599048054508599806171358442986524221759849778475600317080869837798696019762894711415800354972064934842235099073921668264189835846498556133628596315763602200485260453520913231869809183004464128648880642464756782214116273068448933997090178386718283244584819240939389800189807977408235353514893058599902114985813844113486922839570517089805398925713509383309284921565663696277290532731433084953952741241724875431213580726719988956086138568379086468663188093486762239012731642749110674483672307927080059413055055161671823248579767985325010559923021279224484769830314964342641434448776800828030324312129655234665919092856676262181077890405422245950537768067264518061405182450718524919770148192620915070443024275592708582107835046154113517555984963009043824105146822839474470881012951501185226791341501466908385275879918451311875620633871928546789335068949329767800133542906997198691009255194319748653144346150119415823314498772042265605399829240867365504619463476054657330772337608500261806168619058317012898969632534687008521500534454991808965646374690498808327275606910293717690953155748213252150564217620135720133209145715911626887940724028710301643670831635832105486847698853870673274377032339297846184535630074778471173968712177481213530733617174616348436691040693137309681791128627897989903895189682913869999560292916033064539495221692974072860491680401347615998371575778313966767567122456515432401404165479287541486012405364947067499885442899293254793373146563346744336047628920166561254383451657744906913123004266919610653365760407567084833687804723245228305792380315207853677853723743638306380022596339141330147101513530094909930553197471749931233858888358228973449051822285664228460329191135560368753638653037417808235528371479614480765918450868581578843576355478781020109613875489802024394827216542881975845977436004080808788388591633958475487702894520122839257380216718879700284272294992283679807961753974044662085084191021632118006221490069582146050001579883239485686561017364745643505545053009372399656738626977740923702367003474822612808529956072939822735966270812061829083770460074169845037644519021468359358629205006995159812532122215748351062661718018575717105025608209086236190606261647438792109154456110933204919967501100673959089591520910220326078739232644286818417673994905145034670710342400215085766238603067153888270617082033499463448646215980925140872781387454091118545087895274810578239559950950807398287558157530632914888495781748680650514930358478809068146563583316418605337161128817117101782960171874697880723495262221495619433708001196073383575461167465280593087296802747248633604433703302493509359567408423137152886979908095074465343231283956294714194280387538885606370653518344629749835082820623872732886571532427092241033757198365787795756432001397367866986396711784753646377739774358390104403409409230470934249232263104069022929533277261829509037716301169227004430679268471414438127681714583297988914740323540037857885187760155611210032460270700351895086214173999351452756834806352843254455096283810068950272949903137724279845273087642194651897422456463977835146479692958843914633629194357847738063915384133292352086960959740903192640686081952169499866936908873733680614930084150189808708590681287187164248286007639023077418141533778094908196758580018971183428534329420881549218838051527320101456359978720642985700394369762361396701634536498749014910633067425588664593059957938308328459502177562078631155225643387719974670232116626986595716012578564018816847411421857658875700626664928414554262188812294569412387950152293862469912181243461409149635846580771823252218929147340810498177581084566469474955155783852536648984736867089207975704736664505896327321891122051499834146234837551602001846615693784394440045376746826744104388347069299769487310865059958383559524234985787669891443945530102099343825192685014789856594020364059325700325683561747368087626462390846908889722815751806490671109189027752756985816945256720688836998171097928686222749793451005110133833142680177410436910390980274378368907977970672139763562087795194432504122566488036380598584720547839772807503852972098367448316059617317134453255325730488036008296973030323554765138647421837766487970543483255858754776734440426313823769170459451493366386199852408782800824292997156667174634736633311935438000942210144731176588166280670952705911005131695129427745350230289375304704893315873116723239227820522065753126302887776216428597566445534632870500284066507402004096566317109058690706656076939956358328000232732694866747520818046434190147490429309149289762069988152466115239936430988693255501564754894685554112200298559103174347464653256640100690100995525459523150673512751689929308626857003887559641935777909111416443357120836342406809627750504117836358993417920121654156926857991336241213926553166603838564708852954588614537318205083841614937668738342234976508231406089382909228348259434604574979440278617859657489916359157816375696598144960833265718640406547386044790503515958051379417679067571641922463921665115625311296533144849623769371893133618501658718735608205431972388245498719879184221553367908797036889701716779644145148008355389027509478817610102531244873121228308553238694239278723686215455395998742417694312899484660857970995636139373833884238437588003637123293196941705333700388933321058919049107524297141698395048555944476146561483289310241397913437970193704792003787311846517078332278781504937550545224971998838207370802367819765015975844529351645380099494727063877760014415921930330423600301611969194691197083243073175706438627975259612941973897710793633155782768254079690973774843767762715532132525744812967532269839934833738734757116933400612473883809595446223480075365054961687624422574075043806630938133307335348967051496762391554639526147817876392380717242661105461532822825240892671121386188487860012863928202127585903398025525586434388462895154008932197066673304965394058118413423540892023962210437607754672771228752625192093128942517934872910236943808310595627645574915853307938089483643547248217039816943235534814482894177495682602944292789070530996787007747686836147470823968331678197592609011761504060187795298979142890593198975330736444883642247112472172477773847770997313464644092151246730546120335380681516982880608402891793433661504117108334759765963487425386681024850037897482031146165114190329155437618458614879145695694308924748703024578948152278353366462575950407769155743950722566838143058247895021666560724580323761793347120867167384304973628498203659877965883756752726456703408531626360475078150164872768174770259640169743838793876238543133948640574532362668822608594662186906905297268926564401052660963069225650770115190683074531996997722539404209516392358659571007917992737645212796583156845985377845700677460909060055600785484746625656204329193857808461369485960510919807196906571434919594883346161900173972692853085639621422333052062888314977906796193122441612430719287983456899125540782563303877438284028519575180320219675090345997120146445836307295669806110254891247649751301626226372677072368048898825459922047374635508149389062495013660761052780276770331364561912659310212156930764446574499094286409842021136715151193614412503926109684926414441239244801736266438511680063700423631952391386444623636076909083008617172542886187578843436191336564499893632290276752113302916361471087069903025237369510971220819320088815361634704625549697871503811303202024330221845572583899191187632640498855507514538826405039195337454065322153225284491731882727624804633272788024127834442412313592621561564923670437068597089894265921506790581981150549681921096523098807458430794865434691463673892583516037634563689978246317177763549945695148497301344167289666977400620705015311271989624432354453452933973642295583715487603900853504258448966530834593294362035633370179013851471815406159679832962368903894741360322015546234341152354906672743009376072261847768182363715618325813605573020848184053331273675202429409020716332983821785588091800795409400954826367051742346396633102922398131335090281289027695137140433465753447071620916725025505647107666335056610211556742704852496363891505332127233502596647065495173944599399569872155914560231093425162859882171934615502891926558201590053605341630007161614326968038276809292600367780655630385266710926574525833653236179136853299174652095212559052089840262996141322114132359030164543624470154772013703567165422449588131521813440737514504750057077198690115079414614123963447532397661792168542866586528809462616242699396649970166865522301414906542610376696377022842941656684272517423536622283189468399670796141073648613577701543947220537208884018066235207532083845272463071807719145142603950582819236220197282915337304447640699243742266939675335628028808706399818310459353206302231782970974832505010781696467927044998168720427267240530979655132236192178888749055037126624232590568725363412424338978050990988853884402179939720110409666254416515159884325378411148609002808743612256909427509780607844831482544642204945195096350151193863522885784448477100338893139464354054096773409367575376861299389334999388210184091254868007354792787008928101465213100874210748336907145517627395429838978465745109609986197983108310306275601283913158364772152522619223052780772494613140489546036471690137566260364791367775284261996290245690577354716427325098479757527294346748613981204498060393813805222185709050063120587261972802335339680493117866890171708257689124174433243043163875157216352584101391828426460260158572215739537244899329544654467819914778599785284338119357313749732568050670372976820617832848351810816626392795274832353697450786089047187076441551221254647109840976583765320768755177553355058509279108421271765566848772812623926850003823837626989423652595913045369230524420719716802513885325959811491026261124119175065306540980843626521662428961348184213968144756734815577489648581884864544573794575716318694057656014538705224446916216178247965455363023448714699461713887571344115065841374506933684373120233969327499637205925123064873413119933524492916299012885145283262703440501620140294445959052985406596360928157366681456650211896919500911891666267653508016971795328123217615112596863869099598529898947997883941727264515778663325984037103158873943134581569768562165128191885655064701202810794609958299643053647177796232802347796516694430289371423489374566216742483433754836316524531397967129089372088248111369009853496850134752447564974519993932770736583847360825082581232945347777283117126718213528218307497555176157506554024435147917450621549311316566678939639637666802937357248347316036213359956500436452876200858677506711803398085880567673997900956476842769402697945253036967474500127088235241617231122788796935209349721302899868019326322581187558702538558578415608163953858615508527834369481551416178484998068396775365973827435595732337291415396311047166261366531673100234954840558097929050184141336345480287524662788332459011054465302481031286125038973296067877591735255560718240051802222482194896063082171240489199432802525756800959128156834338526895494240142693480293643306384205033527289565791148673711435230334767227290246109156385936251396861872751578939773178507333350640446048613006906798931381373956482126976670684346548153069938733883389535663762254931403408889224029846799485567354554654030520154046849045993778964304042339246705721324196099968766274622688307480139096554919169687877959746613075762211375940891518269898342913788751924692290541432235512265831158805439452043949063224474459562958175439048661038768796863694367381562371478326313304282140425139056949981084625739133571958046341472675485497125570949646728486770865411440230753855574062722528128832227065376420925916297515223051599389372410807571441695765211989530698683033458660463220659095729630286753069563309620316733356658547158199471791426423933502067773665397282839986793947305678396318360298107880106120930128994437673186235636043290150159097074712821866487419219434516024478847221029912964207358646475130761077698951450514984722807267097186566953499778322993836406184709547142141514233073202964874414770729785338979613487733326942346917709008268541201616019933695097897906524928938299148998846113187980771054439913655636634537878221126842914472478185703856647645617597182856018899135714254530314197765954870464774372502420835233085084151375938944923751073836449025066145298209668947349977908622814813947119060171034505514072893003090176912359216612910321242571848102009415753062965543691244999255307991531625500994057117994488161579797499189565889852820470177546520664697462102195706803152270214955283856674498672011192478238521571903253959435528442701275858758499153896322485845783853982672296180834310993625032825525026182536053418716603962090523243682370331830585346586847846546452144340698067095893352237451891190985974861902770971858020599415974751557758023203538701156997193238320033217978210602930584972042344437248031868984637315043201879404958105637294063958033287352658291514873514527862959619725666030932348823809514363382570301145348998637241818455456059561800110454672940796703173906537992344935086825801458016250109463083710904712163967920217908995496765763603007937933498048405186519419690519386676726502461651447016574690088745487617438041954954949249718469394645146641139077367881243562612031542602274342344406523688919947422634229768069424441705179730338076946005685714560001135187238137174469032623313255161007480895250631442238517125427602884424856869348359105119062178545767756213596535164722633354073237143579310072364055783979229988676657502905711036041538438921283509318454422756671031084937452493481445594291087192834395769541589322777234667591920719197238058408716082166987357052002097091754376917682537129669344949224745907059323121880361212477859645502157732973636765190734166485716063955328906882366816468001150775317502404121348518563840888576265263915467457561358441963294939107832917433622980864029279291734551656153923915301166203476884362070945437022280652907149283164335598293863303472155955336622603128665701603770952726263101108873174936547855789674905813375950010051737082609269688935175788687740849252750764453949754018999021390449452361710103274587128601076610317642203548264108913865937486439721110862771851790011431900499860221980542928857518072887139524704979008696583200281815952483544221030236682001759790477554597347066623058234982232434313806835533233218421924226844409650343379087426798488513773333586972964892695039918732179727560330189127695871591501443328896633501318311712496849778698178947103621486097713459282133479073360970040233506648647277984275549750314199901116212579048019925851681749838259549779310519293256264117234218558123887977441050420530747029204448648252049036797232999248910776178671925161232135817842272227412396618421971291183767506890479316032898339545144062366087189469614328055666247288016405646648131232924400795520228805547443688394735164374054529806686172739239115466987395842693967961375553995486368027641183699942749802393655244185147959971614295458860972419681081292219757429045013126243292935866090510396901519161383642127064191561066070096776399406432207234779054572656921508264358632049504617725778214201030105771159826006967178789211533103431751984636100507571165723503470619925637085258227067473035097722594683983792541989948990671873651483174996241665985425014111944852863290573082387483415719884748347126200484855188804018635475310356947154349622682019118640231979060804477820335549761585286082515693652197380021197000375162057781309579599539326919277298273281093926590138453520056675000300555254546371694253653536616679155055548814561326233136685360658839528398166418591820068949528435811321180585364100592391889819095689425473026329538160397829505239876559504688393352383583228821075142078544174627398440820898507224593880211243958207899392161691955211142066293595888799165199311026918704630026144272236334133699652175606112880742067655395869752840594873921513174926872459521862398065175023254110878419164504084393584447233175677673007196378534548726846053046311949462783298961843710355932320224328754902692992644044795333180390259212035918779877533580028152234446327560443169324654970457280590829190308076049991742990958081544990702063111380172292497481028312390132950728153183807299378969470040103283695418547462018070557915581923834893532686822626694661644094139595599292753015753365811479523069191646040330961966135100718043340091711268608544899849067656499684856710300590613931057825124547321101353358894122619384322754346671955523050956757303474011791341130990343361638436923015792304040919429178260897553532683668987680346515617377362090722264519481951573585118097538488050266908653234869028854770123415785111541174973473921363107175797264227029663640860615851404490622155543940587166174895020201013735897086549254870571296573852298346237464253692252855999756404868098079051327545735977513692373797427332086321240499542415142502089749185837133229071470802591029660786813150204047440362981875798162538221490404797533322521752445613564483392042628335410100476870636920546877632355235686436801486710793641105642931506401321491608364391201667133806724367335844882669172245463982021965296070618303358158578835721636765894965971309131417807838107926874591789865731443568941893358801394384431192281267676230204520175373103322530777447673479660530705337248727805871531866745520339695897487304463411355229136945031499677334928419844766610554958371925371827816761789422368567235064708844893606337574550613692368220742157741714725581896069204914324107483458877349937598938275371575512506068286562617686555736991239445213338531325115890936016530351543773308611200467328081222717646964219628971073519545287077528764626751283979967782678900129273027280073699861866903001204293032497774114922534099119456373645466215012011914924764780634979065965127680585093679655862144643264582657867090820277175500396019921306505509407838557975778729048890723773016811272465108033401565122004573146227633865205423673578893699582207311727917445405971166683207772086367609877739127870889781758415037930475074109999464616265826656000617047765644500652390815561834654305920823801605959320710143806032038656105185629411454321608254623958753343480351112883707093731456674027778990587750783765246769455235070376066305165873311528865186094258636292660501141201762843798301263183348406971051090098612127377725930209576283891626109911694487157981371420880946340320896795051462222497233968825520541385422895186172492458318471607164537441990739543267509685326314207158801053787423418629174345413866108588731520719143791084162888606207230499670528922614357653578328213104018301828573387257864947311172302951248029127324204196682769767330859971783231037617448666402568109941641442401189511701029585053460787249330840474484646949297778708540647612560800223062877912723025284100183969435205921474620694471833453403900109234695775092734827379013186397692892022364119121392908308736932927688889804034063272301460172181273074396413405009759521830834679745864538477664579334534266875801969104918508372187810975136489976655915579360801419102942105345747412592562696323707551424302503048809319911571691897210338661710574587035540612744141914833715404624140202744758172151552040727928803682804078606942349779390690679840526166146701646716184591371715076569905545050102248453562899376010534762901584573834655841415863282689155042759378226261699990708219456714429322802378729093341422766967803928542817383921470517597469077320389062486435535498185065883440061545652676490359546567699104733151893346129557999357724034834919891349497031396825900389559962312266194302162228055519541258695839638400405046873358037733534378750158333384982991149660495664382259119754701827936745146741390415190813884938227536434832542580041140542215790854438489812254283574476701536815972920436814010983264090457033336829648813042888572840050978990277142312674187527599116218204313923719491119674935676831502149382951664989510858177815690311098945401524817983007875035358679070944180120828963728774819089947967342959976587645964461628330944163223694341220419324901680606741111382494932095280286120696469825812812361128972491922524192185116951964751924160350855688239931956318859261932140790811811997473256265207238502429846702206217168756970920942960771851826007840380874443084128234523191270391214644234493144131831527269746873799804513259783344615672555641522068327831790132724800291242830759647388198494130428242687019832723165015666271907425821918819407976524813095465119728570144510028635913798918983321517451443069622330802748903951218996727101354585026501796529910633747607480062663319525236376908931244580559159204386893868366360027272807899785380127381207655738079550302967198425070293115679062465000373865182807179518592069866924503122140210220207720811283908407592020626923311164439150430790838366850682774275005305994148553197656042532746571708805833114025358523127807296867767786394951825062022285112636036762628792873041988363107420913573355805401842300175877508307087837990441567087425181297782922292916973227103955838745873466815441767827199562787342667031638424788796806663834748618093773259069277786777714284931520270807923687968397931343980443529484451037751203470748839762637923093667605840057416615525508484711953691107862511547930596425813989921396672968938225617068812063351842715160708149382469217058799238170270021051793012236602180495875680482549715693422611165351609570011681620752234015821076616918555455105073850339504552067857127693669668598436355521996228450687003220657555996636849364167948963760829015399123146287754663940609664696557831371837056961001212130940088985500224243324983324064766968991161736123446706813646797860042408586221619720343307116291573600145609646367244955539645289900900560887100894444127544852799158431076218811078071619451393543227342656094388382640886108671588646913470533621622857749500194435615870749383805480122348980361338618228799520599380776772269145169667086621577312139208625924343582696329009027937180636627190880697594727445039133629167187319128918875386408862132674960735494147390229268283464304675955136933440413580388076053538654129916307021695229302325765148845122286792106620474545817036341146515011932095030785890151157274643075600633029532216853526603621429490781067054874347103972817644198979907274627394558568916557443712689521135005837507097028668473446557096638141348403397336570874170631883968715489029600705152303833390060775767288695648035564013622277684357388298555219861519153616243328280175186037287626210011969879254606314361306853292142207190025180125621293284792122994880989684020213430168750639666008766309348318236273192854005586462947238937835761892450314372027913506584971342546530737467381055854270323131649657872244436128984242622884301192342863003420272918237575403030461171085526071070891699192102800049775212707677373304638736687029275707595829359622239303846771860828266982915819639557202363686223168504340491055729024103999960220240509919677191123888785164691095119047362593671968024018802028310673694648266580057779725770272174643652452443116519662729678568889789602499978895419668185865453690302336520408873221065006171969226230927937365902286890110325795748608738092010187276587040018096619268916423732771400271357641392959604808180193396314644094670066037618571079730037466960207953765426496031531563733250052767082624780526856914530444120058940740623536361535501514220242097085583787593415822722196689191521766004376496105394230948758921483341436656080559941031592017083422513845244768214747044848437212645257247853956799857090315787336864673371781905121625487944753497031614513621233923433219317728993060805817363833356583874084223204372704475333336793054836099632372238677132495861219529267072125113817223791600417752371075158046845660370582524681535538903739992838935346799211870924080615263827534992497716752940720405917240216542610794427863479931895274840144739406095237405954682430909341283600306788462746846084469935674783642594147640591791841585850426594005917687962437632654862246648551178826720784840928887726788827282003859489154862746261998318476998732829683883915269896446051639736241688687862607872034128819030793391326411972987886464445652023133141966448800679977294228148722987708439007190244431324178250886399815408408147573497352685218847417984562518170438196757346614790625498208841341231867672515886461940070556538448812128813250391258263318225369436296897670267071156474187423620412952435440518633648499372579346064801786629253250241044052863987330504581382504760181632004983703623577084640031720703256352424850723503334472294454858140739733270101095549419763184950449913288781341603835218256431229328785588606955254282433868339432344284887836397107868694851548695798553493598071822115610949915307305999173891932727156367084107711505876380785952696012857438322167991383493438783719207945184904434215651342632833117863869032131789504325481627540416381650299727882256863338773846132758468101183247774287315183666825933964531190778885880238122899665732363987546467954174008835015127433781440471097933806234315340272135124257460790306147678301187701731976066572321172573533866297699536609738587527781879135635870128858060217901222004465855421594622539427341585196251580283030574633213153167891738581107511167033194895172735941466989912840554949825442870301229901322767724423700352644772648170617298787915184867852128526717068156820613199044047622586512795836556454190419110235187986315438934569464971817928019745454253433914788435063042291544367164395636653133666201261001338809435596466504032232507178262061491981030948842581751039286497780008371989298449086392759867861436765851654109978138260342962552636931253926913955835593108422096987016334993798908859856452314856539216413889272198883474789567570791121944769946700521915465241211523966107584187496685909612787703688255250379229619113950150402078073705992484120978904115769619138795228408915665027639717045903148505330278210360411594101646607606660936280738883756030433512153057951306467544497448917425941159150608403885400772220802222059120611375982586213989821874229553941851304781060432882587660561692466921393575125151913480053049224068263115758655086081879970281641235882371967977505032498397939481973623238373987146069927599355519649988785705004269572324173284746074567606520676227548796307464906374999081195131040083220000286319438031748913352573010738664055370895545170461141959064818971975299558382464519512438899242593158894237818858910660778785211537558801865564512472323587728750375566622648503070672131136808031333336420612976897667111006645603352646815076509885913261477706857224599421397308263734437053878912112982303248162812952095153317410851834990896175576968529535480010247601216678846121257664231160405794592454697251506287894585398234173019174212692821879569453622661747464711597566492737755106199213478386690227803421945484171318083330587333659690464780706406817037189891838712698736838141885505708513571755995437556681488025630115822355913948176624065712422517108356019327236774125530872114212113921824950754546668194112393404348423957267214453480467270590838530033582501063704900566975790875816129843201536640638536308813192469720234534015792920393031269885827962790349649090554621949902965917326362991655730565488174326295339478193564634790470321913472083176201711501525752253550733445416941555383923694157038645354223145136023236343576776808627161437242410784694486829616430292870250668612650369032512209888127201535962313664593667487881388921256637168038355566958002560589147575997571980006229900474011923833011460056481172028728811440577499235763097033983405218741493016197782674832833106609146696456660079537493894619218389700988575409821568739008356558708544247666676553462038418468466539298786728191365546786257865108229838868800700293629572716906744324233219859323706784844071873492359993378854524131603485151813717672319437407132526013699270634110912830150364282650021153011660322726242067238996132861333345613071206987366329861749438631053400857442550733717844358900605485343400480067259556797581333278596876103427047132958238929862378673197716354829035956135369782756769266402787923644803658700658103483462216535774161495967599202351806932590098462962066711952140113697141884614711350701581695977051221835341673815517268869527824148001821031507857644480607887496599804412316506146656127395126456073021007769478326696700019918747114523707173474022922761478125852024484566340061819288059722123753584943924597097897605902887201966341668944725104923710930530254518165918404756887998256647786505174351537948821335318938678945932061982881163165630527461981295246321256407684302421571662472956319085343919220177522037074068106659549805787181983415789018472539130885149146883581314667596295272212702513022702696828296585053544290928677436229020840844038901684972968913017249770066813570618357901373020284796512040459757017815099103856084964425618117506301733670780412360123453002822946928500486714711159873029307344074264574783962379035540570326688161914476313192258052657560622573205155054659390402088476083976075863007280011093383369131119731254990052424292674901848376138470231383225579029743617615626758616579492827184625343695565303259596721110006271820364314183742316237510661454397890571566105807782977887366524014293549904585943016699023870260070493225815497725460018932269798662394325041112041369490468266319235747174496418727336200059724062856004046609349211248342612673328535672687031998484414559740854414141937275023066615694397333546034768615732408859039529999754178503826471112117925016250924490672168973420898734955522320109155679242436907930457296699630624821530833847260398024607617448920508831732574932845124501739553897216995438837166759669998283772115360216483692704673361998533100151469591175047043354619602345747385139993715384421027428364228782144829603809345042187004790029054973327806985231790070676265500914343073829725536401489847658360048942112315312699009115255470033198559595602914808758429012698125599434673128090705011538111062811949165073080967887283681598342119312934241190436993114778539530958484870154610192471098867037581803641119111913090101301901619724492168523618005399391683406215532239626592267303938363740584845810999914279838683333949457458179291237514894302650629702866958855428219022855159634003508244638180103934510773703266785336941443553089625856569703941788536372549859695144020464647691289684502647238737335020431082421913038713481656037529068073807334017433386232571354716490317694921138383063687324035515653815605081139616757022177425024491903338173542591454197731153621372326113031841270804022941084553616267274732732345691317917175944225021324404306854982604648990561123481219752902411633569937934353593897833989370124432826444845873024698431880225708919746580360501923967413664120658154033670955408017957512227735456285205114163389215698322036970448939650257981046460719834749223097881067407152707944870851766371875370986387392602031794411791223086239852940745907034183428513061264894383328764441010505434829928632533529367993949305790595271912806950112378799271836416275568391858316732921200860140067014195423130128519956734111806103882750454319176271030470448388654765102427627513746917744077118570316475524354938825232738563867037722811813018610245387438867360646242342105953473842885788028956225360964658960565238985141703302758761595881716707472248070698558982649456689610512868870750489952710527549008647400608041159075624442167290991242431868032815289385404565797422064191112043805990646879855367230111371633149551879482672613945251420244046045474443874390179367448894850312784721579657348191081502556293836026769694670369664554912438805429757159479917270211996244632752718321996079969125732261632125025102552936953641891129226019676392414340787399926207827981587971160391780739887363898770570439920443482052162657101941693877995693269847797169014936148673129718379652299668053979399565203443207224057381679139037730146465427153797463542398992846033827241989127995234080599227175344317214205665861789917064511402486733195217642704896023297369999432730106121600167499642204231659041556197783608210952299676806393028151917658395645921734799751544240727727644566174941731156468841173292261718142732350612670876180458367496514696883997493171619779220935317120706572969236843466411162143781500361237055371284314769387518943891251569475888327006479450689897048230245028109463098896753906632996858558230694998058639928622836026152366540175807253445675956147089176695039261865947346939932737431510119505190610754374934656527295108134781570606084803062384989537143103461933972639865527255391527018274877916246653700433923565549388817796425226994531871835871404037048871023204186193481553385660304702099268441793394211358572554831047806995689127186423451352833533505874546060998232979467774059254965015588584386659746120905668863601959076257481418867293960496170470200417791184197915624538682069028486622029422185380037922242084844852096292975967318807516251957049808896671071294482943306498798734592663549709461831114262926290742312358613365571629533998919261663451127510713526169869508333602961651445167838092352024279310721044131406859938898606416374584299511045953760764326517010179378698282845827503496105374868907808803858025585540978959751504814322874108713168235982334682791258504378479666205991290383600817661058774318169437131147128042750745155709418732519439701928090562077627412310078686158017092008184749067727502193275745570750525323138512779622207881233340270032405298897131562057646902553789554110139331401162740494442356409129287301558165870346558790696929328601718258821194711092882950277843480122126985656051296638690302567365167534751528800808134595398235005662884138465841765578331273922087315513723444026657138380270714374982316755562926068128197146914701800193018512054844796866328533810746026811549814431593845391473227769901593134711196160897281262893759789331008915400382818429246133056079148617858862500587112824538928324598578974030346150573228094828219253414085655686023743370712622925285172410751370606019955124120427239333361603560990198760655748219794500073076075712619379422307249787172658379207689567630716285498416288935147400723905718957665586487358914399861997499611091054205893327870435242749480987211786107671251558600869573277928800921127203086247302913950862446273206932726252706378901006365385169704222680112666732789300065202399988941569211663696894223429615562715246740513093663829134263107150915689690376276286424552205086066396672323657614251041054502890250291451380672952039986096958218780088741837873606045135280406906144065751763442368735842188116308068986731460248600657825537510938508619208086190726068395850427721153720124605330044285071194080453309814677120819734346173467723175793355686568812925932503649889593310645727633225634228466499971242734255389877777636050481105708962817218944691986533124914921922862383856236969749718135034825229535865613702509332690677547423233563021311936402493820710286946955680431167010687687713977185891599934602108453227207792878477286293335636922788905761670570809111971903619569845404841696581591957304802884693674970501417482532212714997032044025694058969211859167451375327274403898812831679723883843435962751400402956581337151814581436488745194822510664638521331594687506801821776608578620733224304642307139753697196275397516478251138288450228828718120541566302412498194145379346776758734083632892300153411002852419230080888248722615664097492780794657072352911687529175563981665923672979125159910023693584269968837940667306825741006397353950716060554867432568917489183257280784693664813073063667063560316496361840535972070821911746274540154756108390951007826141753906124684476218296515929491632544566172867361502275966610138464902138770139332236917894848148565050201818293370141122868312896487191409552882972015886378822456893233168615002019696035784682991513838848355549471043876764211071680728984111494037404850367765534099604154043491982620849277124732030723616189084238295102700509239085478297045004192297481556527345212158259692432891253786518005795705258802672268135314118164583248056960235983257121491480544046730641507753929563915832501667300962470865406389681459733796695112423373606417902762335179674355080987600384501638162955658919117748523022397259343303543886543721839620235471605429524873959964692785401125210238417162946314598125940345030525013836110721967414658208677024077320691291829169474617721599759999523344702077731198474461118139529848228919247942139068607544489484105622796321757476385115160478111163535727017883593054715054911146385261728708681881869366589791964611392043266961147854805606546788741620122511707914279796778616958097681548675934295412413903297950865499753259523027125401989272947456355125917742282917616400208054837859639890321465311447976781475987112865680744730917947223228969708728141218961307654524744342154960576247506162060980707195292416114988496988789696996807433397157785724947801434154712116807565356892204536182692681948075731037845400416599810733258178472189090526127875062450903473061165825512928192667806086562086275039409874124149076999382913020152958642250322360704590500424480013039458369896316369218579514044192564745299496993898075553245912588412517791332613131353718986215677801097558352247262110252858472066838892598662008772187819252473526038373601690862680495267397885420427569853188884034793107860101303324619264526274248077332528168248946080595701855800648376588660966522705425060655641206775724780822441208566615448143491408469873898129246785277646518030934564115081043470196654631541172956125154376440900850853970486035975517087088515928890984375705187753846582320123258154828122812843450641357632185048099092880928689392541400490055394615405195365083132079126782850378494726545354384693563469894793892965069302851592788922887766011473494743241502008417600327095228505853827478701868034400208476226342507131222840859239510639027846444036735205161799096293211200106018024447229360124376318656677347616785476280563753777021255066768753646117550278494681071063596077055045273404351246189688378407636702479407535326619819146197581655077142902128994772263062664811757292658450949855043521722091798773048431069084156197702960357244370967737819247885990314201555239526250345744887544241820482426027558316243010090231088499832441687703046283361324915313647576150126298439850372176834234445429460775802490013888124739369099968153298515115872437636238005831081935592271610382944282928508513871672904447547042529036504932027542997539483067703620002860712717477724930233054649969988597565872094389030654067038629870928565816013222538290007604563517618733220465420624516086224070641475499275148358252907197152759419230445180490057258950218893692171290201654881494909690796822067283264294213031848537884488092863281238335668929071948484684070975242855846908292248069518795575903251409380326651882279850050521203804880197989014050097325362530771926172997406632583174808815668024993807315920759223141146016095975928617196424899508950558870032924926875156362793209982253792717851891311017203690429128631803357933342400518820651879113011199288433979874894764793912710184035754108617669257709998622327055792800672693120861336002487617597192064649012651790905954921186611148083094127497777830746036831335012569129327721813806659516196061051706853361321911156726047462986622719314537307116862076957485669093422934572500519920086169667589612153476716572466254931617025415705602173995814542594421182631006022110540552161196241100743968229277216708866089546129959320190235127384723742027672288966283230406788635058753035159239282011289843511254742327520681950581325519471888590862067911901169796093982511339755916108032922902354746158405462442100103857044018025037801608779193084346585424234884448281017824408912424069238479410320397305790803242734679809163964980161888887137634317974991584176916333594715271290295264152981508693857861737762674873208864328305635598851028485011193300643473152233827866757694525598013805719907898869372956312308357098301222561836388722103043902964791151312798100638543925075103470470850420519543084056179982618391067606082529206243765604417664704682546656976918177960899153899792233666334278267024859021822288195989312389000762518397486453467525082864785816025994101113309603845635760890379418602481106163575035847788987516818796360584458961735887779157720474704810865063078727478981875337562960616779436936744704694711029031710368317418474738820584086574699646210648236967964790737177891512887381824082127592866757373519280172899564038453874582547125356555933534830830352904242070093432541514711910387684023815534512467293024346077690458330374236781098322990950527321741879053469464569869214742358743443249712772355524329539005111753594060346780649560334923153985885385784062956894508964964231331950706104578020897568977684710410524450067601228316936394996977430171426412865051668562040867312290552772045628750897383916152541556653988065442062112336182426389931895464989526848419884585941996166423098938764477054444385514473626298340875429697763784822484526933603825286983733197904077322932126196980075299628928412112336844718359139568733109625172443649978559080142753025678893364268876842538147910203390245897790546945661129358431571469605934053501267736685531726309152493026075463465749273558005992474638118155680033095143933205251741717183179543062806125542933032618490326231716067728970888310752727360830673931498383303677510421264671616227726118940926319285051789285249032867756058482211086060278800335521448497133359447993043313298372147731691552615297804697261887314853098840583809466662824444488283288318740969610990131712270942835310417890482672716638667462609180427728197398764912021396112855405367111312406060603946114110587520221369295337607544835636632473883123475144542251560084410608592017289615872841762050881165525496331003962710028636932872390648467344828260070175020609002436243934939890411216657463188946454814020769469395004339175119628682549454426242741617302093985868712013414481571333875946253966870808323452481830743302544289428252604888693951225605672372363229001064908446095574554021764248560265678826445898700137936112899040510111000503320359698321081717878754367878734712682781697739602955078887058399440365258946255896630044258910836866203784834591530459050109405796402610487076208882925402388164647057979115489239879746508438937240222735563545289547913858303167684240601285404415574175998292663077864117657115438245593549576601864793269227510551915338100405991810259087945486980543386119948192534979730043881848705922778213109767679340093785257441803625269067283207993364453760258647545384335302629073597176038772749042953158078437966546233346786987095467358785966540331034968665220756856512411821680350633124186354633372406505649092449634570100901004965585220011626375065081643469023830478446048050226658683197481215576911928635934248941982278128475213872453199584401676447666516107062701450808785210710637133551873997923417824766003699883433369861255540076673155092104142165278853222023090171901307594083834675900160942393377611892118061200707611080805738236870822506003345196688886842117705392789901599043552568183952084000206879048083038825830557844689104341977705233063342788930401733145502705070738535227305738329722671233195212648212874985471421411105090477759975790435959034741013366757838638987967453635554033099625057542085272387856396970558471264892957090119090155181550494689221971282804124120355085951707573947026237190298741508057958602334181734785088886317130501675742173430654320671437836577277148911199130181460053120506687286467666234139543338663913919916950710804765070365579813823678023314468591932835122642667255540444950273356400568137945623181404677816107110177630180370611726651265176711399564607547079016070076764665595770851370655891046015905882263322234563568854503190399378510104758131716951972692073753698109309230256775914935476528268561313979068466271901811904794544841149627963257825155560211629646949669797295300605430410749192844412701695107691974696548566091915110353678938936198443997280382242234459891470802729579095322986183362962069972512001782403160707994088084702374029780936635741751822951344956874835824691543122634104333983432986779405375639126589681809048351508826011460298473925317860631421704635629633640978703823159368230769237500561218533031114754035017371195686230433582242899140604857178432599180607390797725798263767533506600350959116093729717295531587645216483192488390938349668845872603262939651438321105724617675767691887829300786067512661757684475991408052733543960518865927744768466881404508165535725257918761651213519491609814445354207949399360075479645473677300940914693713329352627342662648928569649343672622285208573183803851023654425223101958639441176925867316978320222871754399963151355972326002274487760381075403624767485962847368554907531894480192299534059637850026617563494148637915289812151775043464573672499223152961883916653426216650900357816210536615589106856404495016203143760274714328099101523182489958930234333022876730452165778580495868669388914349679747619312706107033250516789418039920040060380728326071416843667036415004383983431069199983310761037034813127564417227317677494463502018532108337531597555553642409469393829203874634784986201834980892262536037923390737949715921353717847582064330739705989305059377329972507290402452642320886870838728346871359299045458657508962878584660013088354195066646959713845275228280809182292724235517798945944295309923675574292944969312562378669205135509148481282086055387225039979235264390636317359463885395107732258338520669152250628461393591891029416464265234547576070386717252280683019024432517836812892408178472799477863183347762352953420059707896001970431220250636947200703161794503860322333657115362105428826338039762240788997906195922829674170956727196847060449066165512484511170934805800815087909008399148232550214353104786833352504111914498641348570807812944789333312534977894454098938972869906318177654000142253129856971356737386898241698472304906851855913441249620251197249659069036495281457995064880226019702642673867202942779920419382301452436122771367735713151923901140505723322929388065974826629944559377395164818909791018658366462347351000817668824858280623995048034320514826076775715865308695308816496540800274012010257047959138914879331993486908193597173100135900869990143561042133417381808533482633123987791088881164928148188921752654171112904944693728328296337504221970827607043832854647399078074275621942362914818237048646208818948005203314287377651336761612609623765418259873071121489498604522789593914396943265602933683372220814245623403641614149033855329378511835511459286351162268284202468758120111017408045800189253601770243810028129981938444848956473590364153523796394816458024796230734662854512069084522945403116998230658298732783783551945810313273541661619966580491710020559322930838699843555160712020367643951731728428000339475328295557411785626205675354377955242030921735877171419856001643033452198402938925589831989749730480925131076172578295179518291761532120893927118173381775883841229774636375171659263361607642037985579773051622298381557172754722041992326873944253247866328350445363096649923941933604448377815417706849218531028923229828125027224499126854220684688426384371727545676861984381880996158512490386384232429503583156701915946199348517120724044785576787182758727356939498391609057406962569613758250871244738628630655884837104075097770926247868873121305785217274613676911032750293781395796265440649481172574658136985319861062349841755823574818483493777212122578286304137869902122031757983981208197383367746961104417900044760981729491630727726819963703348990625241494944817170718565822996564081037098295226209044673085265382384716793899001335077939809671303686809263040677027644676945327358807861185004763064212462930320898981467440174341111721035047255670886895493645062544411938334917032837454653383280781989106013483874341679584246296904732768821970739875386003422721497122143878582348335024533797551319599945645438062465648542100178706093552497376357219831229381148422564359494904828847921274967005305272184840326647753482687249025885564035708950430770595501797840542326699872140996823390690033287360950314593382817724375881395709808498523491943253888048388879754967834963161234788965104226232609754023355048692242785795122922921690984123204736116101342596101247757571295531346643455102473981436521189937165781878269367448004614852448596895276899692218716003798259539320556772781471233464359243347311285055789848076894740070659084992437550937027824513901233365722602436815586321690559929210831324823064253382711803243653758005581970771542882898565436769475364519733559663180236641119141369500776814622647799486263693868169726197349295401666384970994292519309555085213510271585144527749819275870374658962155997000954658148395604586526662133816961371668767233339808349398722054754952608097765261575353261941317116994404277711183620462624138750928925958888198647399227502120674574862116417464805947878328648176920103724675394069273196982102782238155480959806939104594048236868976659670938494587217838611324686538558549853436159882250659257847018342982848083208798409487328444184951272452725995983192311439995549837851934679994513347805730788155486231849438794875679450755182165693851183185035997620759271644357649527453379582822090274567103280656974625326658484919380004498691563908016425552931474790931456646593157853429004774736164151988072122620125289758112474927745401602147320133083202028982877721301317005280863745404207235981649927876045393618628892015140168005805119031817215796348289914125067132536289956570094242427954202197215775642623438438147431927354748585941211108627057578280724411486950850789083513736314963703146811368501083909068811202359035970292014664136694460652467971852285587243904716421198409852972099715332207762130549684534367767485537602114965253536020270320789428441966910119627908385484198786184535530045992015735807002491594301411090116447623685652407678142969037359969404525364483308231727424580577251443417746335260839300003025127149209696752930616263644610476036315018025751631033882245868025721065530939073994617995399697484385548632953441468702829892738501597113692474485504077885755453601914813946356477414358711280806005822650653870633982695567960276350006477122751641010859730005197777842991132439351417016206225824472361854024659614571844925887899161594011059489311804682782906934197653115242145554166524639939393695648804133566559595342254951353533301385988941624717603503076311729350794465486414733247037928761505117586837683497242142398334812141727488741104713652764301392767787978726840118158350800939647849298888418354941226897926939595240202684127739171172647077684706491989057078664122073857744909839629592410964073518923122582371426585457796879582864427221057446821196213326633039509557228064641601860078421714687997773060420414600946559247575600181495017529293342585572511529997057843678604059989304102905522026526594713187450292446256677843505394027365553146900890010155069456588233723787321022092693482714641762396652655253723713134270408844747265991377492997241255286910250578344403263198699106559590922702695116474710342930195178643965204824133815551499640872529368721227884808788873743782957179778184047362579501195951063651806271606275104996173795412979187760290916365549598127644836222339703106740876881371640198252127915352044613181747903686890953597878062777676628008528130023956257423285151208365016281100530664367299619659539172785606741025589019448509015335930139103166209672977035619254086506415340866641587046419996389994529968440872539890095999711272696979230612546479175501647281297363409259903600184584146553430135203958492474335015408434721730051889348581411884176304169852278093537756846967826228982666429868662794313062693523801349656917916685847221818347731919111645951428550761524855197837180557279436608708255101176030094839622908547565615832775662467107343112355948618537853237053217080505923351420689364955437248851366969686607629165310888728469709598963355208042619795175090612335056566610239685291072399172474884541064911510447961091891470040312403510325782686367268667194166438466107587655409613462428217378407019219085670958456173700381978416122406151222849660433953049010386270643405063830355146685873941154626254097249572165632515169438748338361002936632626801713787246653512439096767651528230841762344223480482045066673200699383211222812515453499003998397051466790316825180039913138022140046253713505706018366541453639416172135290601756641107812756243514235999101279564903272856554052022218954602641540149673207593768276024181189747432699856992708522633963677079545126678347191235897689932732166021141268426203648832821568793656333105755583094859359112598461538101909231333719330991408692917831996977523591124311534944911404058936487287957707816523821302343605936940822759342312009663155300239490715666771911882573289098781075542682446590939851277412999391740935363965336877806443861347461488326225502889687182616964436441914090984209908091684742758976524935548873763983175126890673651522299623210638923299550199112853494820331540914298773507485179962391584831514181282337867452859990635852882793906105767485535291201387879136018040835561666215419021328998533673771254048860732875539153019753317799662955783732000744011053423086745106232052470965199329903947290394663948643828811611473675726791789952114335550967287594816388625484043744088069582504160130678997213065678579808483303034081416044673764101162591420663269863704837210059391850736646643664223253989158680511215320664165283926294254883172169695647220653147009989149696104713707991858691433583552988010016702717883831359367472659150283283542427793223289046479654321681011628637776161511941467474066364122406955611820636646564936581679029820330248344184920211330938026306678303797311609646187089361384512254297222122871585858707600970005665286977763266685786953573925024335337577791976616883800205773651660849663829388758607896884390422083913903501657726481211930596376220671461146674695864750593698197408866238964480522344327721633183779652060145557112633228208562386587562182607631293773919959789010189040298716065624367555773814596919144660551894917019152655796971674451815281707867361031371930398694639687185281694691500315029625493037138965543336512855471859508563577787148854182905792334553414815577230198769158205811375878653301704419666726012294238893127152622169042653163763357246724526894503341296253226245985456883067259471131771566656861682231463693692693951842598227847771987950400499400770099657523822073966482108263614077916401306333838056983521673356451367640053156978512471355459244573592631285913750384253642656459071987471332295894295012437852127060349310843784615248899159413306576479950039035998034580083110633701838433931638449471868499909678442115199427014128096380899272692385323849130671860497715035342042531383985137539965877395869686731244756617264765245607220438574564987816420893815295908420789064142870433983871694922847816574076512853516855107868386993729879614033234944248937194271491786320916744233605967626620259189856319063901703608521330652817557845830139694850111786793900488726696989171200079502109113630602771749188712087498103848664054190579125720729159560172811643768557984307238703456866172280491694515015628458492848350407406421679382966218230314482419125563295885771477495187748224324976103806377742963851339889870994645480690088855954136888334012369441359141370260758418795052192798704728815087944910699336053515187752476140159263335558180300290565538243330788044164263319487376273179206683184037446564147632172546891566626923787366458179742732667770117256656759079628780548160606450270838028824736145572234725347555183800749110382651527837077749295491562171754477011822068842300711343027697293369173864410817109187577624847386117466226915187937140423449453592654169921544234554310887273676890020384458263507683443376814666068900523083691916344170421285711325029678549040846678614939681123987474231940140919114459638729178593986442858191405900480087553255700944328752821718574118239516733993833782030468288307052281126514159080678944528867149873945167831322808650621909507318664929403286797419318840156326879081243145306252054653683496943587913883452560448326978171988769487726405671480166087180999145465482166242137231713205161881015109474622860096532536853428832979429287262020495927176380829624153119450509601804706221357799052356350175742853372836053071701098123460597162791666707916233992662199791477398796126539945804199026657827714676458659769066525090895628287102523522632620524640347650327734155739512277030068285542272343736669909817460097764806425101120382013052291575802121024636362893074215619707667711947212546034930745296913678364592107994204295669890748782998698572983745789866318918363146646391730084983962630861116961308030505697447146511030262455165191044695075841934035748889950068031910278657155007567624395813667383895765959575153028329233036001710096813245567553402724873720048963225229775673876656299932392287744451998607610074519826969937769041927068102553329567783348087721105757496330022497814214423377748749759936186173421376307553501582269990963267049367396759734631719480783779247455113109015532141490369228146422453279449093457243681290362230762360386275044134978145265045190296568960862021651822483070134311898682916959591830422490112863944116772710459715548636460082750823038825387429968429198580232437897141601765896977071131439770377775137473500747029131456016804973017765414075254348001356393957573106806559752954644487069706560699955529864454025519878560649701310630005772724621916380812364064740168021715139029787489374439562363200937592913881971136906512537096135912060932442163095607404440697499481759657690873933357999873767357318218450005317089398367902228107431323126447977901299396097260017818595174824566656081059433308237274234920225862657702636782316568464236698430072725607238634743043293048355091552378795540441147713378161316693731396029976081304861737263865294748194318410923752407731904966664471937403967753998911729580892785049458910926071116825763210629751018923825481178220521205837971593287492514984810207615019911827264484975021766166050265891588700683720632477773593485742726005975430985438097683423339683719983239196718052771402343145919811044885727681722656123795958133657804358699355090333032921257634773721702169474675038739719610065263066790906254280402620717684520734755041083025011391974535817804494910295520948711253185244302095603187150831926307459560484313198912119603560350419238424892533358304117933892298170395853270076650361299696593778903124208445846163282720834988536630169060865371337122073268731911912620881593150317532522663411767902019375103302713108155943320539436610676918817199295729329201359527614014779079546571372655281167894397307489885646896646060531298509324342819917896545854327691238265250345849644516098647173122232219558378553291643312070145421726976290113232904028654590457443699661129421252077757953249400812502781534591774455772587137663676085136911699767212950523607347042184601140144720741554485450708622498185608167396991278486894138926489372983855165568724633760287934054143231474007646326161825564456491593703193664692802040471694591363302157518302387789333644045636922949593544266563686702950216843481797694464893783652516821123310725472103079940446547092332509913950032004553088150728000531176146161045927496570167757477802794344757493896834470938793118468278374112380070783867525017235363492749537823677748516516801345323507955406860854019975581618450714493281835275225012562605702265702116598483402592750200367105283082077029160411475270164662471050004057331766410958265076473822134504363994663131977701927990822406278367036913434996321713589237882326700178256896510276279122427608344168724816441940570001838503613205652245913721587500600421557840204512570072666012839329600391053832004176321340550337249746433222334187301187130411591058895160601562360454473281992502763754313582681604237331118725076409970906637936501354576591327344909483670236610773869143429819249108324588834506725977798309413254453090444458326235922626900923979261236830262496272264412257739517707461061724310009943525240120716053488122977194622495841807421879807910666869874942943363727428299199163092524524082341003493714642270794428133557165940875432667041911700177565078914833290749443139084857798936707259078844700026237112975984883691917513182242537195400268696628159792395864199814647063337853617881124898567840500503016642278488171602608651105162890058733902095121657396365491522921903673663965099891636371765977153446970437698410585860492364609438280480895712494253832309583865989426232182843624382404466642798717003137342206428663568431849522303053530272088005606373973510117022925347272768113183813966163808642467444048547523871565209806835753893181851471797230942553670588907660427982774862263529620587484847060766369487080573137494363475340159707829095171045923387464381211056270358951216884579324940373037086776784246780996072908281919449388864470784380694713359023108248271076960614739370022734828635624179277261553297414050299825028295416319060506100571024640781579487914183980790447358826620082219217653964197989290670276439994990120610769558963068864132120772868697009410237825339500612294259778308883208767439588808427033517133046047963762334971533613444662000786772070591124220968445534975583217550113191324807055512042921086472477699252248306542382253461676941816445002618989632894821909071237677796600391797288776768728470637889532433998291439831599883920869089737600966138901319125724354867942396836706985618644791022831590115713065181662009564416223646394336062033485096541668623418123198756388010157701631641299814730934195326750788906108758903708956732957144473650157541914736981395480822748292503085136814527492263696510601678896287740485553078994732971042745747412206640180811302673002346753169516871512619050776253965309574450490105080564711262885839475338146851515132652304301609775486975901245426158457351238169169272911188541799814694720874295730398957250599286471528669361648653166655813979457311614886205905849460455897687518090098776696863173425877836028004578829332662939614342514400701431665008974679093417497971241719821006963486389509589545230696334440611626236335361771170567784543589875761551870441034436558218795381137794735757703477465283004087463146706793220348600537456416392004464899710156152969306457037770866026372244361276730910540568290505792061488894750913684620957066139878585971090480779743863785280466259089034201505156517031272557016862849513963329716774161068118277054040725164317236795603058304862795726652588567146156064750988850280885157144486944838171446766059526050656230758113361518246149228566780229451504777426108101036457975663965021931564510303676893866696231674034463264255401663821636036716053708993941827772927859369981337467201922893628748377663934607454938612677398089207600792617296541540964221915909119991504591873159174237552906201839940278297979788342177021964338985541485596612450343238739286911546964593212532954049752670858807020611145601818964053639685939130675771153382929695162277206236613304025255288752797020214558393653513752585722725515237361874265660424745065874558031071207975618929715903662387998554256555252983449045955321011066538810060881043092512418622353409460528357163470832920935961312213818462963281418347723045515090242364946771987836543489915864765962486204171863362065578787981464783071790426863371493447797085809852480752917362252967193601360437296478858945673211655758517007003838903422880957452902853600356958609581330387983293440728132371670264093445219837034076747955175482195384759049344259446107655763487144034575592401676913747248782729649912376874409973737747979500751262113640549079503292192705660972483237514104698874092674824350911113844939430809582352467519911467488015610009664458723992279643208103945089193745657923670212173786049304424969424638011273939328751483264951656659244138113347329914700136350586681853475267021150456615273687049136472478053821979691222482509726384972483344877990825886998416927267767871341939538226668951629840141853795287624505045942812603050955605149143696048065846293496097254616893649538702181293751234486462132684261877274336906266918779629767342350901673997695745670031668415941120690992245944536888206421702071366610072519049765721565797849068448787870275908647502752943753299283279969098006709068017619619800311509556016609595121366916297876502886462264807497029537001917890433039948803763649427339448258213614893945968391514416877093001632828205395874904266165378051877053587130967808939463783283876068187670025661824431240208891489517210052196675305425414562734659374468130095573828512966977994925633191354614864561792987523755145127800010832642951700887776616918412694473172678592691831839308655641893529995004145752536683680145518607216501795090344816339110959266329377809950914151842372914349817933471035100445659021971762453737524141994330989576531672550636325505305867419540821865327184780562675345824040395401732308644928739143355479775035701808013986789475137366153464951809935453905233573677816748427982378813420313437024306799120872636187272677070569082044254769591891642539266116858120398805265471133837419320908968094540152480768815632791837293624104321656603936737286604028414658812475584056223696548781354489511768502994316802724265404705132635968973320461507116194353779141439020619539103217127454322857921661420452373149309763391421110550069892905522237378942175836745089590001436539884639482084319225362590744821482952482193201847577478852468062766887644451449187882828098698612194027042154199540002715009321278036059410145417018696633306230481849932366474239016379673386108474114423728102068470948067584382709712972305162127797452538376147999060312591185091585362532414873682558285543101716420694665252143118442188468461063816455404522660948285285041825255510234669629155134684693858201888895711845237120262595188740451929185112374168189330601328797918701698963865448635612464563840209120061509127711867745182019475208064443349171658748676103235712630515960602290559646766691140637364401048452251372574084293357294274179205145548933404145413164409393678301163002437280270134594383757980989252808850220543973086212503754012042742549270863958357987856819566496143457518751027546317118624925611282097524771643387418494743046470076054411829494698949333092008672678235445642258702079640854806931338412184897069088906395879663429890057829273874340211381727690373545963835955321404972493767535185655127470085052288151917212566714589563469030762740091946068097468163057604878937852611676677971562532594938035395471206141381516821979478945367536363979036867730219107285018736197833998785211248432091396140158693077348537391583637807739719809976350345478820326510431453937516547371438731970446906338926265885845259659153441957229721943092535095967470773023764420439630383687856697333131528576479024382611161690109313712396472693257998293600937562863828055389497450153922004525109096615720919974458626963125135232247201149168084265953298013589341061362689314635063590737459879591781238866838652531544789583838974451114648317966898726939321860316075998963111839512736804734348406847910189940902696053850550213959745140659289045038928836889152422130008295422604217838953333223511496075190296160842031188218215028372046981236208788524665821784773535861904798011285146907679170798931873655348070814588376298954384207596692630962345782017729749763075310102037409380874708537013551501244467197004436300007543550799346450144855315991717015200293894225255133521843126393990928626311737351092058644995778209686870424867333694416473211735580457622275477795968953248614540741791157648970795338050379396414268285752794747838008023474487718735782550310826982802659216860186274871783358963201685345391580071582881207070557203049712731632102434593472131100057775831730741019941866482976202774975687355951672594415677742822150542571297402725188092361657237430711329483158214611529289841468191863150956325037021043679795269710886087825469767740576580096630263378676646247059227836994696789726401445292815509114878566043019112397883550187025828926159406580717856325624141958903950150963084920645424805819343438536830143421235156911392930062879698350946498635897293978930683300004990436324988920714151896990036630234245637721638287587661993672050073847851809831568693885171937613953635722515265282305526831912673681204291791533477305863655837433548632940276177392553018817584887718467544644824455442438632947590619859356581035632868565308736728624166076404819798662559292015542117829134643783773695140839779795687961209149434014995257595346775017268791577530729780683279395417187835386150486967359743170441284467946862500892797661520023476952793608539869346898165594146209163380585232981633134402689911333492910140357144251627995160976575600591610361047951720190022742331924828431110496969155083912921520874386525614883363605837331009856604828152874127891322338524062314679413519214318410948546605433188243639965587327905678986782908788856599588424998060050731279607928229396099048023892973743276516530110431752399389534467234317330354322739106743896730546906020016714833916528997748087693905577004354126041375323379540881002685365290165033026220698214103138503148828777337324010853236478040887434470963534448445091994991084941314693356274436445010467761492218320092486946311676109068454387511489566064518070261404860237495166656643741326275081719942289486118232338411678332471863792755140167982778773813456053407301415596931634027751788413542156797073293507610736654147494249369204360689200540368444719482984547312592923364585210105352026938723212646903267576313149763918081655446093128768029326481282230858463637244497995284576054814514793818593288153035168598290481071573223098537354948892293944188368504448954934213492496878993260903260898164429667569814007418882533966591827731711265727844857634088326940127057962734424140551730543059909946863471957937245257798318166567806315571030885447221013157867824764335418684331058891168778627523756607459053762170821663298358975640311373689741685220762881862416080330415612026549398480255247217326378641543529978975350404983193053731654485665533782546364775669259417256861064876858609308999827570300859960971095030975637965877187959455059526582561003795470112913275106197941965304622946973234785395182459274470216401536050573287945260083638001955669960962725973800358728801680390485901012408648319230000586257185703065778587482837909023934084202068656188042029196992889705086505258480338134734146717444494990415606460779742798202494965803969427440938080653913875309861039275322369675679507832775856388093054640312074975321179373682290112387272225002218353680252746634114463682445275227753557544185270103320498779973596265808071144507609515109729987211702307843381152135402865621059083767066591784965512099993438513661327269272700254795774007392093197629607906188259996041869923178426863220067671214163248891281170618358433410554668440942049569137009683783815043229268044204176860543048501813471842232877954743947278051946400818393394837414859996440277885050170125079955084064161398566243038038941101806369639822461490732915022575240927070568829926214155736594683704397009138245488261218165602075706671927109698607651057271577961082785121776307996398854737832394888202056990823978484448574119804322216958204995419158962037343104318565363903215890285840223979318355298974858615997477991501543363595797283076069153160958397396367708491089389789262043293369129420058724830272240799155981206516615534681177501419774610836258092587251052436197742357809674377897338175170664663577910233177295410779420886840221811267195569612624856190213324354592132719113008154092071350845249895116025550451664637708096160145344762398291567681508822468464027905404873870161994288753804827726019827801392607030896432678936193880843004797897478752360053112512672358064507619091571229856967558078915336621667919784084322479826662429515052808995227349086128587549541793470818095479781316522141585184210195468204805663747430652051479662873455320148102124155753191396094743693392258116230250113666864542319160058926707600657041402948685840520073970868851281975928426580448880382940098441207380819789196160832872663653161541727553303731836277004319351140506694080276916427132894836021462854185026713122521617376480101743205581086191914233347624613268912162944368069784625170522403522604796243550980885565868344562424746140778381872369450599688484001452780579546732333508797617097655810575916600186756372694348911335871932129729873981681870090162088715253782593797772651064954667794613747678766387229144298429669938676888312448701538161066961505616956866397771199121411125227987516595466755846693562816677005980874050663608153951583511330946416367014423568671139213000990038416799825381510839032751471005803350063440805357986759019381025217142638547378236713658985269594388175743105193234515191686381910835486154783384794842132530904209228954078680720304165208706790403563816027667558025695610701269349553041897372984645592125123480200560657104196120512819209597753607117815298234758491881273336832026754552013622016787063740613563629334933424849909516719100775339248631264867649281871383914602784393917428046682003913111353267497255245319693587265106218929928574214622390040657184943210496719503787691245221085061409621636835077087878770177621646892918292780732534749378868346250989973132144580672836955895861253506448233377651240184407484833340792561525821600605019929072670962654542971632967287489855029087474290003529189245882408333515363888708146289513161742891656196584812937352582010539540250087980912874784082667368010614410460607955287855719029248321775365158779566568561899178022132521214441358608274983240607292559254599518112608298713878364707336107482732747313716523299575936690649845502344508262586942306297454438048084566407529183705635142317457826875605185607534711033279768595124916390290778345720201689030840715190348026193292484906312209132335628395442462885283564170257096248523375981828718083408882815255677257027944789551359332581693054032399294894720943062508644610022900844964793133775230196418987780538674630699072655677919471716538146934822965299522386487795379359892650523887740226539737482144926858662931245330049743559718511558152296771637849911621102288195724777770033534231587266642655263333324321204296410828885483537068966849886854567280622634167742095673994959609450510170388178633440991375698762557613495482903902765123720858281743354086592604984225699972281440940395924310069185028349103605196180307452093826596254369031371881206399294615342693981509405370619457435786444205203224244000725193831041569571685909707375492088448500330941022301171053390896468819964150952208704866698941990275895038774376902300218189774016465059954440904497233883391272429711937319105651156885836428128882650446387453721024230991535024217872874121281734678533091795617684548614968511817226608364406216559061954406981157450362204091196722465062228121800656770719623560835122321781343053000263271894723690075857617718256890378197236788880705907424623097416048374498226439611843365939575772932467348696495093268564445511037683489605800425472563043260199198589986196740835708669773868024789293326260475481557199696118650012054503105551671651049724942651292762234519921363318624502522394817569551633646558111225957576995255095807259969181675562260666077064946008424061511923717364438375812683167054623680792411008529949519348972978216809149720929403102617891117356664745146864316366796858224961001834244161443794034410954714634889322723185632266995397245387795705710042176291692139229073012825949475700084887483654582503363891539014906753434537219251382229508903775887219952753830314574455288117539304192024445147013685792534499015380893460684140842628127891736651867506226691483307860906186937345018024446096595114314754044811906107330211357599450637917211512128457664111702139413663718329619134024588355821734025966217504603889447582365427805725873665005951474310166523636927259611235802684612734065593193393812858005193870461617445985713661217456345199531218948783868973137412011797124124114285946997447742406628169638745418040783563442527464722790301835043169506342312612070990609475142778671625134688037303320871302034559641872890156833841409734259456869001468373296648761644088024082732710498256565132039826111240750872458182870326627834642124082683166889428104907094736838776408900646157026183981893647835174530989750540868877708098172962728405703150616967443008415104122551323102006787701820071690963996323488638429449611399514743269579532923736291457479904212171905532790578719815854812537826380850804441343243496869920989379156034386791116516966568365654869184335001584927975392667933847162217017229755317062937468457391996949601951215973640260539935741704085211942509393625777125996036523727876009999495539168735352261311864942105531438734992131197830680201641675772517102965656068179574275803360994447808967554129037079864447130115545039981155488330953338300628361738340352733966290833916406015178880109668024383296050481510976868191790222736607640702054640443053791501839165196729095183031211085945935895066373156533782844300674143579928576950577135901227663109933618921908287515538195876990042077307467185733570924091844694612848254085230134579672161175506356715563354644339474410091596655790118383544712087157597430262562441482963063504636295319138621956290913525262974748180144939139182282130474035332751703159750563644243837228446089810806254765845545417435238826184768442777072118365300105201853669026459565203627692008384807394892201596000146647172665374814915355152783987312691330221380772951471081138439000249714173911012513035478594217853007027392223925769276534058776338401058128564095697930186332676340618372281892847766064626176654980160860550773682838428227562900761752573908136002820611199126131105547116056921197269902753555463140076741801249472978681926060775061147040989928296731077086182541589604692000798455794872958906049290324861267286419154624846681295631674891384589746453871946828484213517315144437555024785062467735021989783753652913477531673261696513163190772461172794202526233279429517044929747068492493547941237811080340283744663364745829533146977449187978375809794516597071249158640259460058551442428326035211519817229103552641930679805789994201772064959389119531638097070976181851154035549324784562700402182257540437535435902995502938024474466196867087960544400950970315242548407356853167979369370207691816288838361347155603618763792352079710109105486477783396935209143301025579469245492173046223871600003730336045353421475404015856925331527884255281330226721489943037584007852496972878586111293338294627689474561308160518631445428669783562817885039346933705970431567796551498303889404207134629298313140354245037528995248546168062702935697799962573077110583364384104171677343599640660333198535176957476452465659410398612798037182686710310279453766947287009855093485245699704168752471447293319182108308914738014069558062578262812105238408742623399269286929986927834169089271686941261189641992070675282966486102113392321770831549773892838088952836013188434984207378163889707223487910514147913280177194421554138806940217275155308734921736661615865136218947844751456788917844534858816358584558383093291836956505669534482107545068774260610018307638976923248491908922781075878733249315514380144371337834496683454494315166408060060447010112770529562219213157103479257288499994279512825101322651746012456023738601553640767585953488485481203105925863577810984890134561020837635218575150712974459413800559151534168007935468053928577561120501601892431320825496721618958470702451565074326434965533109503606151094393656213169060277790288330171399420279522416298405939422677206499703340997608191192458532870490616901436243682023572306751871874858889590652971107475240169997290329391903993887196993141131569125395745657912054601235086989982257160368102080414160224912869459391955826025535136893748014458872492525598356332391698318643064594447035061230212069919943670603705813686594052234284881332905523975160713723584170473137025568698614617555868034569899059656261739195417938793394237837413880364441220829224207179568184847856644773670418424367783170779751172059998938447054314626112665019948433972957877675658159813009900159567487743188275805810761705110870273540679417768780530710333587943977498906265402486000421218946973826788852902480757029910791166314041037352920278123217886412001187840778869656616046330348402196476763145189502285983362552224441643668615193287359896301781315456326852691439169029847681325836102916096215532051932831909348640510230089658692645734991768080624756517986057163052814645270904116595840297157920833232071589476293402050709772744326033099887739008601896615288198139123223460029914523701361311304994124802494037835098856977409275010284048237964778310125128614151714916124348035087794195603571280777215010190142395355905186834580044686137050887649276446700458704748140281976571550880875730244193587031223295773931977221514154403790083928878367689801126138890324765953231374196518240155418817872146060086028550819704369058838398733416795057024492537689094360955694379524181385718517510596760988603373328575734190228274702504164786948113406554837410800562519448966435683649407846858391928529018065112150586448994638034419733217937043105116151498194746687672240936186313325072887265072375756042891857889692996225623583669319139952111440451037277908618140212283739867609805522099640144095847616129375778773961649622773873431885808491240792922000943929258285578757489554065935540984557654826639183873111750394296471377673134182362951505693257158492416833931263997005730970674790193269669737409241608623100278985366925581708299770307076491788763569915873746522589183969537260584367015514425733790107015097672053754954665306610315993677123466602971944919646165954874295224484978610066526698445094910252293254172016314390166801106164460932922295210933356181256587889026998673081326292755778907333549983607544802153118837272428213756408900590566237227674253530616728017937424596121012336281882476552611550168268460730173898256387112257803607986259999215627117765316238470942788585677404596631892621271716378820871859806886874976551377013820366142917081223437358601226547972102032554111687519007129811568552091976674009720421302812205874535953361180446648696521655692867770831317069770335895443786201890808061114233507035672048704051056053579358069011940619613537521227445230231950016938233435164198368091254237151614749293846409157260146886787758625072320644983438948816423443767890333646801250876627569130018807074823306579425587788152631012609818345855087910468671779552183355942736402599098575703383456325741793711764425702148110565849472938265435818765061654655605075947293908932378069867704418508834460238188868189081845783228655593140790338424700767753114543208824537042774968847040646077561240502171629828985149780813349957318933705453142466985116353664040908780135220803245884327986315815611704525925023838507719705529506968673669220351862953143205391475188664219365247387879844322507208687318297488567459750240727667066391135215267752353567696189229409472238132085034060939339893429881797842634998849996637726067722561716334997744848791403138773715476724353327458582922736409645579847027236399213787142733904465522494688564905244038102237219645095220581269760780790943220491412316546046146399540829393364408164569332645604830393084909523364798184949473462712528930968860957812463026610119162668621395174211190900332440063630907197893021251520172071818219490649226549036126974638703327696763060175089262459394406873621691208784546035180291391882516926969720801954239555415109888633434541003605983301161021382392498621486432301026430719180274217746517054001210176385033058398345712355702465913476629093796850606686477237361688017725533681595705767155901371262601503552940824196754912801079878261141564324972292183419591803149316675106297727931771848294208461593896090486538355283673498673606968182236392720913098811387310596606758304713402103047140312099291405870861814912275999540687823959615285245643424407098488206156126930124760662683707938413392903227746336274706862646987180252424115312819711858402494135951239199341936914230645282128756881975632915508412975393078031708123615046483440718382054550877153157373668024506366436358309890942458158802446060533130358249832269244984259250954589531018755595476240436544747681180606044171894580098603420279257289822190198795875820294515927277098034448177312297061447164879331993140937840678767156625761426263598015724006657295506883948659232771351058369841170334338521973990326504777747187009467122320187771558045999867644362480671673906779774720821045925446552349284828874035620218007757511547126740012292391439270965215137133582656057755751633235438184077656406843051465407750168650539482060921388007930259501687187635286246143305052227940808556750245846708485739764257903202287869873188148516092399453245244996098256079197350049665110930657320550165250972551881527959804438744133619435471727758968302914271319400055169995780387327513331544776349289359956443620261680086524794917519223698562813710544288203812716245078242490425505875651973240679501400931969059048540983233610583686803252262000572751064948825881168590128552662874940579656713625118891569346834883637359650566110815176482040804029150217181604031891407573905003664674223670362814458607476991113897251174453933752656278273240499804934335632538081080779968454478714566318611010899259109963599182014113435996661374435820972129440205468713105675120814400463786556574785801395154229456904027133764876013509883194517163749388330919528624144119377757098544760715574114395268097934652468950935639779473470932950918233446677039054223353245448267150934443145700674458006866600770315303065660470213951650080618715045285021988222063417924398655505811181829921439947143018559621257052660703786569331387304141787277812239948514703436968761840184674141731988852668746570382431204485665153536652202578512743457405264203449011804410531497607441670728060755748498103048249747327969830293876806129694354716047407219041761460643368236422363964957840706427180363263795581745809008231849459633582356936860895700758342794143090549968340249509272006686599197912759748402572853720066981566558296129658222454699255994098806419914854438411947673324708965445986797956412721205663523460037112419372934956481256486106923349543622435497660146463935768134442669766819247744257925079026113720395389576953097806683584316975074601713333460067641278055485390471705431319169737369053095469306816917305086751999890781311158862002692187011293464995138195804157977151012151892715679986385509354954608631610559399265630676347234119012123302262018344898338329525958349666948142264124273083244904467336333018104381304088637395126757781594047459841473283811114430406664145202903993451233475626360124407719957336234719674061123098141959753659563465542971021929026073919133691578865929779481266146319014662184788026061450306908365151929178986945052151195209786004695581242771128691686968105185150717243385146236086065392594333844739841347203490657177519774874867160993769505405989585656356991611716098648167153229050821135199289854694474725206927789179255825614086352838990782442603135586351565865193958871105732843452783337297149492309251804736164715575571268327258445351270246815872098858650646371956321820774615202633789583020333328331489285718403155980919009795409241340023699027423585186291999796229521293208460681889717422328835333430755759706188482915620031393116430516289982504843021468207310500576874032323377006822563661344620509095003962675239431129200756175080679642617228598392828129766693581111937221409175292420375200443136534306008103809534554266705511345434627920253874517608250369984731982131679174641347532186287111205999235324076790811992603164655931135868208843983529280632823264979286661377754749232604129651922095888882205845456593316574471978433860740022304718117787352730303371717140003711504679216486059468519501125094197287426493746879987981630847936227852409426368020352995223758406577319067824730924977104226053487319296679515090158417122687789363650434112820631627118750267137987511936696110158102873891659033294629651485294791977952302346283883025096386168245661620921592154422737860299725147404534543399881378229726466995245672701375054698444392343236543681653820467512551669625004701020225419906968103919857713839420910962740517368302626476349257061896936834520119980581526430726939606590376872746115303270282767396461548637926707350342419614357677600090309273166079108914576636613987362233929616173769820000367524110365227288069606571003569513497253963126861236616698532114894732367019629375657688879834482531205971291975198561725287482224589951237220152014056902248831803105840803964347567827348496714038280110365588049474315825791474823225837564472175742079263013753407663800707865713599264688679610637879352172217391946393179601929981575322211788082920305863054022310763898274017599400465377925165544544955302012156154800970680156460554589654139820845376628839766332595662577442454785904702205155569982341605282436333553482290478841939223648442142407404235868222087311389722340134211655958222153814687364759782651715696018041987616044005904153135156875430914424371069357906453890125200368574139007314955795569333791989163353080038909254593225516862572860462909723379789684463828642146605203712313776654548695168793942557094377888849666631378024112538771573954671336167735517738791569329513812615740486285788885625699285341329810483220292735571217536506192890894529258731264533288831664567683978220392121979988414939754661427301330474863562456971606137345399416659930700098784172049200429682319341962087563392877408956333995836984962696124993948364819814997804419712536839064353255128127571535678403908168522297147449340833788021279747678226228126318375733096622029447982621000037308824356922948009391860057603757377129691354870396133376454475435039943899422783593377906631927082438965788805520610087292415289798730086892615054470799251970917829322894466062096939640997871292651862964988296632179045634643222982069240494517273526694757352282459805938871255678980917280567862219773925097979466572533018474530079919883422237909414471100212822591015455535682125340654920091723345045740567160699685072835979023210156544409530705798000654484244690579291926010497586283885592692264249903118717464094473652330487676355676963748768937633885441726203850804608037037941644970740738314392641521744265753187814565140091683617156960802842500233354795349675506308479707893638705167154309263155914090981788134189632924309365435167333116881574738784513062998589027801308320225015470366696769239709430584051420961448039570212393095116889575721940352469619314801607154120351173102309757056515286748011398809872388819906931310844438274399503918625458632691116373078837095817600376979742000719612434061866981599159463697912533074661118591603181391241528027317199391379919900931240436084310508707314113652837398655316739433289190893145751058468910568910067459486577804241494076929758416017730501665934019239746631984065883829930460463997477539959654364090754946517397507699605036667755978398939757355180494213729545520436336429775360790296737894481956531615003887914166017354686101364504679537898192103479658701452836357164820758209872998742492925064104927051163352946284160942807726423219733376410542120901782969943713940216273953004138232243535412898821141691599522405934332365808934546904581178510245881217237173230131051886519488146635818557579091671384964792139336158347600875099023713587663770929029296395957598125473393618076530119099907577489113626982079479431614074704998294688180497475120349435288243530591371712257661905377752670370047888752797607684142935083134075869531313649363901761429313028632537414467316607374617555578035023061035036579486208383492332115858579895840007620346858134088893149789455403879162390445870407679028428347575114848753291869969728586638538617493038668170744458537063440729758689536599224971671311096899905231703508145153480831074891389585154538679307522105015254232908024253156347361298117344760134786931356862199655317871824052539954311475596497368725113491852327741516428512893125347754024320821087656506115114281913057237106860162539214134356768124983136717837210844607125345302889800557444664921888917423215747400105252792105311515392343553466852211803005330572028928291587358449576076322403681304740104973049930674125715854042761919471507787219926064610018175117415283477419551396518713958313665562402875415570289741395881541809048043651437965148230956926199688609241823132555715881539329476276893993737285760341857361936892563731087179887532565207649827573583597295682754125397186133531121256170864186477100071046780904190163704033734105451658164939737619784342725032859823574853639271109219477919790267778804633754571204101864637357946950462209768437645814117771861178326782070976922000909180394343593575356691363464633067028532374293250076152449964834030741672256366684594971302912970904454361453867809393647003050122153175278675794234404861341988362992760893392626334601803262853089758379085894991287166399842100035324063705542642393260976374186916507281549659647053019527758705350071029718115423465726733524900358652740144299558401001425416085366088798729527265370312735784565557771719001614738876746474739870709782988269763272915585480569750399307751456798545659671402851640138754274146811067527818175515114396148254803994643503320358410117404534267337778991368791680393874948682070481786545648901052670323041354079931995686380379538010989757264059658378789092062727042288913690717180341064745141353811858359256806231142068411334986411302160756147828113449910694514290575907183510154001613241704976764269300055933033113513275082190086533627700500678510971404604009081667992760482277592987817003307234203820353374859816941845253793824178570084698397051499412330451233789515078136867437677510813042740036903035476663037666926600382968922294793200520450755626008719671770269525866164710254229281792852475854117083208964955572310266201312369553072696906541116391152124876620877546550468754113894619622714255276866468152202963484940169452603407949085293265367294933275923671189828968201456470211989298365670933479200150558064450899607704019810036800600645090361276727754914540207783260304829618848366385720266058060293162921484343838315079819967749340165886309281224396699757421451905393501082340084798644126699571511030471421480675531657260387226549404211354861176439592910646640816863115777525275117842366426967323246380691820600151512994589281824839970328089691480933408849998360014801603394786243754916287394979361602447820372937194578874307138871416013011349338561869416306934609482854865751426382824937724472399749749134508729777894392464783771899684305837481400680694634252910895594692395687724513190998577968919188026662018848158649450404211447281095425816786309776608220561469554543738242452697655620209554583588179580416909657449537391137011690414354929927836964500358321617931662653171496336833294814511098362488880949203340863062372640567198151893088651035686194820489408176893034199856514715554612209770857001017188402538337351704662964480526953397229708102821754288591867747398621826025415581506659338114131424442870049449059052319446273833260247855255798531836999083236920891509822188533193613965271019855762842188247265050386840108394515365865856425230482212630639720996307295135569960767378450432503626856027230477481720958027476550752179528838446199957711493990896588660350403532823956630021697923941949278029040986585817223838343319668247190288389213584738306368525520064225798030381728524276244958167013521783937275953850159093777554636920480394085920783221117466846112947101020395970796995648677348701281203446417561440436829243204706744765513937312189050067645258890691606747380180138122611760906733122404938801718664047045166202071838209687083472162725292799875965616122892048224681428305302209945194435621972744965428331631778593921881342198791049278906718523624709525064579607023789327988126764039124762573149337186310719775966366144410658800435082080104099508967916394408666215082792454292135962078027051599156328026668739995667581175930437236941545457136321084206194661139545597495358368063914991552742202729367576417889575356245003071701674571834067913491639373969649398331475699677748336679524793799747751366652232165673626602342033158269212867741714312827098553708405532558487461384050221410105416922377141617300849096327623762637528944695641199522394905158595381227914478379521152319818222338800025821985172127068228735952592364786139571804753981910603178992247625759507001471257807626990681197827404382410924234529233753761339293600025705787816569683758645545096251862375086497180993837277339089611430983439187487488284030553618364748980185872128159647857731722231399332232517598165570270856267192391736881095075212127334330029783869121301209436942023895719922248867730998970706211631660090302843561637652474030787353543782881358179914386198205029705280624555775284068568529516303994585767123056827237670100719602749002929076122774679881845389048705171441758129396202775116044118149569536080437861574832231863054899849317100944886879377232467410208383074423341465088828531161422194455321981093632096332524697251560311030280817948893753217384499143031363987114793824001381688998713146439680594875869203778988170727997991852873692275379696314918174325672484951275727028886174871963286456073208282704578983955744972507004228208634269989497383385091209971304738524434013226405114386192975699538349074695765912359867400476196893802841828882303624777811468769991537011749411622164048375203869617921986875574475226315331104399585574758164995999280656523670562797020874351382441364838171125363706957665078917891909639307039326884518257745537706363032047094335369946388181087339668409556039509120826156732700441919560232781926540598840917869934736261894476244379280414077127369749717643762918272067439994272031270613838211169235042791460659254754936935125083945861528465872768286858831520089397174739407776836691190874653778483253930983503713567515187155720937812748879995195649095504757132054589821224334127825944523295492014652648209290324566361589675889904424678294040696123728842146950138368077981843184271462113929018140609906529962614591758167341713038174527267010414493971705204007125634738360004556940694229830508431533002263877777370750444389971906193358694444350635843665601302523639833620112929610264899095454682341241545438415890775207866296763152477550139682449251097790528803211014807087841152433587626394858064772464935473540226618320848882696173985059588311308198237321783388590697306380071026118322706967807160459370307105359149148889826259827079732754311460814670312555449964718151563970286892779834100363310813078983147105590784504883064197469204828679315005456277001516763499566100785033444226124235850648794841643538857843438650712255165630619156286560647122083866593647313887656987966907578590018595715083958599187991558927843749294154893729327007335596691035685634593889535022845597639138246885735663327506133197386864335873969762080967897925795012382469452259994000278440511025570097622634717791518712681815552192407742632389891151431963400527852568777542288738300069928863818635722390840720939684489954910086461486784963517516417688548696471047559424786871269029591833519137014459902380097633611020312433921337027145056930713329928334717774914389966323788173862373109670655711473426202903298919316460281620318891660783479294082294272279911863997305136455564696226964486306657480108224929538059630368558940899214880040592813036225105498623316708135211349682766535389603707746730095434240327997324020816702476291325068206114183007920614776917743241820354583366404119714813368760149432216567528185446881791824208297242181941550275217462494103162305890294960943558939506273414945237627439218702072836042338364134146401795200987106082398292700503134597272250432904994083254564145272773806522191031165758973991943043187388446201484020355657150364969083534477439597369774190943086732278048082771259985459310768692916039284841699189187374528167974788812146089491659946376145784406691577499427102625820958688276131436519011181327693818872324582974739378640552047274007221636469433140605672722479903967887073431521199013761384431199595684982880456185178220239585674024992005278454654539943317252764993724524474302596738155655233539470808588043175038826607058877536376262320014382159284764530801698555190470885512555519336032209257440418316223917668121408376617924908802763667102903939805279576877401069321103316057503966510912063596158806983465421147061375090284294897435022386898669970108042025129593423336101576610313971286659407071560479760401333977995354142889473479651982050914880350220438013105475085923212509064201827940028609015013424703256904431102697474482391652058377503681438489995775810530338116836534751750361316949573746652039336441926728589142090023393540175275319362207288926269604465196399972103259128516411768008418237166193914701696281599366224442762665372619178573947672157442460901281878320663578883693646843684502766700182811530714282483348431855808941004055788368725351147216792791129339495844115531165965088394752428675768391028998379887229155953052831733474780753852694698928873657677595573554245919700557174826163375351140657952490813287099177227460262586392947257787408651881084367990626377454655919320103396249772032686910965836823357299927091133949418851617094645469858233535700901609054805292548089194151968842326046693910211847906035612954999175724438251777074340378063629813910044276299560805636989664590606586813301056104961063321691950983684141116457776656993405916859579170888582029448130229941907730530154512484338170710821432812268069493847294513975612681831285206207968628493227029256229324706466435466739783287579939608747290379075939332278938563195701025757640064530429945031734645910980241666587913381628899974699333850943931567743533628511423800757296808819458890269965019070907621815628517249462131942623234301426191435359994677335747018368658346085087528695007266290602562281451265121902270935467000492925113450709604736350706157004145264229639986252270586276927119458724294226631347485133574500367439849915049252050720793943528072754550525758293461326361729780597829237711484064253443363126352791807567071899041758306116109351292357715274311818240559065823755249370196221234024505908312085482661845790245593636247958138122268389843184374371593329117814652435878253687324298106901498011151853180692766510200188157342880404423054925995832330158510328744159128599286944949797092560268473962420832226545810725481834443012555842969292552535094593074592734729472087403520554770286747348896200605459110635500624511265114409386627265802663766209503669162892221881474626874548991650311967833053729715990115698805567945027803187100937366996632602501687179410856558123282027798239726519760765912354836950035774447006230769826849464923093698998879211271826032057026423214818002095855820801792062323413237335744983255604285616826620734421389939835525651479705139233491619637892057296969472215070162262713271218499798821888923160672843442143573855119221325021128535795210261696904342424214122616232731828569631041695913294764611489839926843266296460895359060058310099913514961091417782235691187389349298823337643234049857743986913244421948448537558782043418343925780758577651484257932699339781413216208194898840874435409479935410929868446842428628708773717288702039714783280849168260837211051984925430556603714661408377370888585838574666325711330351790177073379717613797289810150104827219631678975436858159210410708807264145085708426510208154916718824540943218985102494393951511381568368172151198158453561928961741022798575286290552383788843757075167787348154392096513697621263321768652650644163229259731636140468909351292754042795827841134134482883526900581573392867013092320986287635508011157492843882166131075232884204874300349190237902808333666117871938296857180881039036691199019696270185592647583005309816121973260687037081005224766106572044530260896292965475284466728756711278778809086715043515774506647951500790908963123117772796399844759797705364123333225174814932644865878471703400163439362743103474187927476855595766639750331004516910084716440652877817631026671128014136004616068714777537821075532064913163600721274412289530368209687255239332254475735141698336538950508685467612170373988475950663432049858346364346852480952459330416910087125845281975979257921855169608468305942647657409245460144458286146287209627075904265059845959225738420673050096844218524513068246431274386600331156491796329388708379034305490041166052365836617931420730305828697516987218114319384379428392986459677679070023079607448545251824795575896566457270622047463204575057678166159247736149922435117566901973259883849364904739738407990745351158095961175563926630380578578410304896652413989172940054861540446421810437736032170984265990582655212267706203751500759712303494339903732347727968154047713213481742308989148152235332636120095850415879652942475426094301082079660580825841368931427584186962183901353837709544692266383415701516179310889668634139807132185363565456056907424237862996248819831019898248261808084843113601520187015566123659336665267497153231640857461124882389670136812187783165977300073761915009921677945992759873682330524014166107478914633117393770388164189679824736643358269896654312552637793507630905405541839888192312849865103095846924191359639250427648127127116274369860895503103462503859157283332013960147155793446492112714850032693778145701541347784798467586468103219201338875301211666688525044876870736287603599682903446645590931581227548214715163010357261955142975522580062483876331624148349069229559761895962683113024902992818454467069850838451795685209586898355753641087063778099414109971102703774434150952181299231319840127341788121875602116360634151097873898458625638009859834721320835689498224494161938975114243626527014119433415284340568819548569536043747335990932354989064149123066702375021247851329808433748820052568947124440383418146137633890109619934665285421518723556928462785627338204363606378979452220438689384246675767346186485022387999770230138890072528419031561348806230872379917817530105717345778973746442231751030357263949712182001067557675716759533266059489984837357112984434460708683084305981417125334089734610568656320565617457394797910329645672973630548273233256310971831037352132798545902663030228494391551106366597498360874884308230154544691194554111093182133025780915666798718796754058741834148084707130667990606725628251043034213816746518629150648973777792040781600727157312899553607297099090540653421648567086841910041648274984773677582911265424363007868750922917802986497677430820215592126838658200562860880063012704590989515354132678943755318933816383840724576030530126671531880092771193519513729851422039449824951052973675941439763869445559622313936703665521311188271749128691004334232741482876463362994548352520851053230440508883806792289387925329726776083014192337690987951644857768885337946492439893186039320903620648737765608554031394838423568007372353322529169290447795631830381644593118108132835681941883664712183051503957113264624785483868041660248073908153346898169864193835320763873842224822042635520261988517074209810325483186989335224327560502290046840592011706477588249947513137593316710799685664311255620891386853849753496471982697710869110474545662472253322913520397025798372222561980182623418561870886393556198353103382214272088199484311422538885634003962321026190981066912287974248692023318205087581319672455123921126291750897104308674878540186571922720669325944726672622929982955653415517474848822750286909216054251708661050374781413628075258498850722471784207184193213375830779953467517503933050195714561508319603038175393134085738872780363813074553304413448929212932375753842017411993265268238406297527126843676774083151976212657252635120013199926346925023733720619989106546924284786993167649593211490498471215805502234718733064897312526322840703346095376501027222670692553282092825530931200530547690256993962229738781030073754707098385124983337045396920154047666309968901569498827861405605459867272101898705697182156214850135214922241300382803858659099811797126664638459399699145912597309533024791506317836851007732192176330451823968288740025033724453804346024106380192933966529396966232284740438566588278144016385776937198780971616743838712566969756555087431069623082230341066501808603577451497491703246156017785404188500608939835231623248384176714400934866402652914031603711637462567354766220853752130186292023875907878142355799902148911110292733425590101707230650833697421587480783110022542485875452234501680296771812884516440903729199349190989728403856383305427116007710218313112014000825551984710474744900961901715280953139790639480271446762795303289911010138035800888849083590812328781756173990310558735333189002022848694224085046931768162799349994872921690163927300626427468461277168785587351709570083573184847933025381008388512332987492180110401144846816053884689379042049592801119455474959612021145928716852901186561525447164677378245525465647332280659669867958999748998398333019764759824007137467218295514425494751638629350375407502423711165932541399772310066371551354004834884878101446356321811779118161720902127498515660923231265987123338479397740979470747249809588360528556280228626048610938182891909080437710415883650853212888100773823659745907843582050731747822086047460629755693999347695498353272246666914829314518089837843212176153043070395783219329430594669303607567121690372834958752652488403621837133900702591041541746080841460904104276254555909072585495285945086306891696823662148691592402910328658943939603030831703437017883717933346839082124900810959962523620608909696744400993363462105952160105175503543853055695745394515190027982107771029691268435729480643968934552578253307036404952382146242342481204333873723945478138909557452858338356778211392299097295002099736528921905729772937547077606498084769936450313503711704867182264759348313241826989667677429298445659896527445939725604300508146141803336153525641915215664090247673374591020883105339150433499459674698181577972414843884025303510252118064953203714760557209788233655251145997571967844071569248504804352903854920378743497843059695724351071415990562317023021957741703392820475582111650667586606676538455458854001040442825021901351116114673895630879789884740352077144415648801304690393596067801367687302105300322955396716546227163335592817170530092417390371613311785243597644019860414038024481728044819953748242330941659432557541056506242552786932591386615073032250593820241969164289328566248807948987974856078467153284765926715179150784085316774645364781634784127418445896804482662896299290526573284580822623776932397099628981651211031336078374071628013502347561075324851571558923308522196283987875591200584824105165094591890891762634707432493976041316115464666495840746785433116779092224833279120119534336462246302643936367737019005612100629807891885473070180398276767178762377380700477148898337921260687027942434528776421098144621542302010642975908419540662218722341575123296878842159551852381945433790542125836036204790252177793338905013175678470734176786326968117704691195492660616684160411655351183557097196282438683830146555623895140932672299915680409481004736314332202738436437051641425801626011101811507568636823043433451170373796966079998755316552306585940979116073659729165247166582650585551500503418574422491495124838313080673042596288139775650925639377590209136025722530057705641785640416358739809496807402001659491451383589467751581614705238269555382973659696740251565269816084790183141684823091003345909519967705117541453312283087780226225871770321880918573016173846345346003344189714116310297655296685379140077478537500523804657268748189028442215258009066746038903742934954479338220691619038728448695915017297058346883390713975249806000299853729799573676807756089765459575181198231813977119305779956390397190937042826400111520940548558592678458321590466311781450834491153811047773921954097903891820545779208056534993731184082029298401823496487187461735589742921457757562262115824279339797697680148775132141151126869844245319429383104339164195290765980647092229883328499105740373864686168070029216222173465990725685399761445120625417388833270432742185746414834728202133926460950958630956610434834249812113174927215514411612320551904753408960164153159828531451933397921170932352435949200185843966620021172815676267909539743061192279826740901376264209745208095578560545108308627717698974764610102195548694429079912620964605518893550316303103479063932301192275695736205472218521079354434017802951391680477707533246745316207023710298961714573820005035426650864206069624480116921574958601892310194469866697193448452051030639034858182297059354217803403403355913019643080474824069718522150535263237198941126064647895801255053208207063204323468979453318698612499557194971375316343389105816758593562285263259836413985333406571485713436262232478429824077837072077317533145471158095854176171550234793851790826407627455839697075864738057187947797018338213334863783295037682518448162893523017703074867150360635611533680160397220275402428627792061685045895541525336236925001019308855571738899233628381895426107377556171041413979058931957228344515715130910646114473623198137519647828264228547647439933812066350804140930126918846999162120172083245539341921047642534128080030040687979836674039175338001119417565941577725976994306072576298455500581859559567325808601026299320926772159383059096463487005624109995721964516981706461986018559527217236005424937068979730195366904085869781224687368201631889249054627551813011166516732927155667474588501787298399555539005992538324589612461427445992503021689660194157917718342905223581006008702934025445168619254674171336741848082302649646530342591330872741511324048367115114410444694290806389572304796260024520981517043719274755259329771719607752361025777097423393381130974410911727218728640702045210077313228834113142318863493106006968096538104634114691022433239157114401490985243365024193085721248443768800151423354620798874038331952607467971476357996706201158407453621227372058091218723591293066984706646661194927682448058801743811410066775955633829254255611076966675975398469661146745152086417109521194785763968204169819931743791477689139831888343155615494700655018723631941985451077324957085807480885162330298021808943146893791344670145857138828042048607413016074418544826448805688418757583082227644493247321859179926222259137986363657837207220968731183945041247977809446223466936528683148699930551151542962790049849489473617067865037599344386604659443807162972012582036590028577946623225840633520163538599320359192095483319843090882151274624976244144067189934389755050142622792695212530149412131548105370237157884998597206952428780832379267867806133104883065973183938078246772011437592291659741566888692148120406356230842805222740572036855118271713574424367031587977298451940046755840800325692759233032755310718751171538494068578310964963923527062254872969148902134978701421520543763453731591654482916527857890534562651932029932615212943409486187287692093019755037706655117228489976989023066216869345600734593715516522526193724654050258174057460821530574632906387842382686933337268744751590669987550242842245477016076847909614116732436840624779986422703208513002869903918633588673877728083255738999839391581898196235579802970993950032806095493663696531046112861068564115909225177517160770237310126969974496670554649540252562755878260020317395363020299739826686528237512877233541873733815098227370019504031536009732407443543726816687296701015416436070818114079971155200665066076438381607483003812784926446991327515639938895531467837755237820170248940694075650110036334388503447214816820902470523751421492202207486360497406599329351760718871853741600971252169871262961891483290567846688081169654957131695188837601664469393768195726799118862343887825132003026712325736130359667007273930502356691652691810016920305946132236546790940543519407041284759582067327875855126802935480373256101406502895062566870993661801432060719174962232289910248832499533969661891151975650763409396471274360124312154476289808521073328175969829866910965944895386054138564370036480644158000578138068400791975401870821438802172046374897850871678293919416897661722564442709246442507829685941173571704598127372278559415264880803150541296761795614910993081811061926556079750241644148649146758216215151323418699097084159476037602105678613454664850255047306977390747922581780259107995793360957080176210243013113486116811558614932833409645209302144115841053886657228368477313107071206943618980718046889113117859868249302654555607927738712980429040965916050472601631051856615613980782584675634054347897205753885895216781264720656265564055525310122379836193118511597729261511512816145981053120144485594972305395071281521999755135927087545660497692525046959335282606540383245170660445772961929916814826686418189999716910161839212504544444755957675314238182347850070745730544584955257417875141722421427400220498258838946963655010711661152280521088401595579998855468902675701191570830249319279353613479733568602349621269689465891886175396483269410496082852507274199875954152962743354111638735361229191807093792909529420416680654274919393924443727979736936738396626920155553481311556121641866356075922507172483876363149067920463524128668362137199803015275073978085681338528400060232033481239770533771429753871248037218874782794590613623672908126723288484845945756324493563862226048640443946088002739061459067993097600287665337101836196797258128460694027510643407586524165348737411746773409804901264044490235646835298245560664207066505601419893707482466050155811138406909483417086187355152013682885005798967539921661090103475703858056721975641660015698530034693600351483897810480498978104488338696625530354669194464528833769432142099678878425759372701284230008159886608894409228499749325680486060123974988737316685742663275616674811595050484620152862272763232979161320681576158104409683095018942502308283506993327851584540308639875671265828347438134313965625066421736255672173704244952396381162729438327366090109457400811678492950592941628928272686071139404588107497387424554814111653609099552146039899777401871063280358976131537607400283649636903021857779361843882519492123211150817542108292483769483488105291440615081324605023819808887163723276350249696178637817615124628055799413925976896666920100999073585138676438449945518010504934976781722798268211280885997387154114349817795125557563264849569989852575825810017801715132244491051398609137210930539589614700731016301122458414195347888105865253411179226968291563788065021716449697251024573435531592227875990594209897063091195252769074986008395432270137409803732347562469078401649046663931789070180904359064180411567019164029490903479204376403264093900157246406062873724816623799870871943642543018336727850388306444935006124435941518752690358889775028070046285692429102165882729678100853162457919313844667200148795308931595666626458060033509759847663975171528010492281323727223461918567690250915331315965117004532693596754709791521108441330452897565802673331617023672713494449154662257936809849253117253030114917010165553545226351093345855336542542153826149530112787046623462978981777426009182928384498614609730841388638187734494064229783705741224556860650866467675572040896315877542939072842697703143629164569873804210136001906932093779488583289388988217465175241770637755556846874873248910698496727091514525625543820936935663112029093889465409780260035116977944320256789848613370278022129864570948699587851802923548519281094187323857713186640700355423250381453716677160094932852036548369790066668037161830702993978244126210174967033308041738870815226521380078961444340543994008963216746924881521863350226216488531686601555255844337382323856247833174864226857687503793205835505305706718063706731705620087868283678405780528037412822617505194662187012151015761661133304702703262453591982523945895648650902043919083629183656208924243967903568798425556628784777627508538172437637178216323763345952785030348395436156513667868922466496244889922169071601350808819915393280447228057546845175689568894211916005214236932469598929027190796488447910757408699867825090278940852458039494878713555044200317637423102609080626937782789683642938486211418887380622296339138123378038499708660892115250604392348496329317576564867346384290769712546580643180640654945290861316600270654118094009804186059204171222835138016653846666392096558726087437585794278985651774462236122129874442651896880110244234570503992682506396886934269357359161660560459158139459956468568159014507532461384046136136301530825690518033609964500745171306308041836611022705120734180959589390250161958646903301386159152519794759218060493729580571931574308777786383621524454832918602271504640505402024067552767924453033038098620018317461999213973621101005810318993117868361666767257810085894696236517017082991061954303254846322497185389626200425174216082768700492277235050328343469294422493198262638499563292121091894454638716539611972020997406135974749235716050425908247952282358342051254149794868275363653388382423879567701324558186884229054976571554340177115369752366702793271768162682928825947776226018672464737816185798276988030856988190855012478490925134687392676191916028516529768464983435526565803171494798899170387265450359545703045159898472733267294154600942801896915930516434864616422277709764156046040964847503736753634673561896192959694271239011719831950049775738627922149749421327849220369691612425403759530215320867234257529692045864524884302931337385134150891190119928997185248422005256323939504147406161045703646914074412070997347319849686803768868394890461491372456326626786347554442658502664015563967082634945628201966565366846773965906159535547839072187615162213270047537502257860453192205105844064623446249333873343870450208455736772595330874525185088089538734232517411157206837597904897142656427534564868752414913392139510945541365621121592219950113839364469140939368836505777299451993673694130304211723969588945869341087564120007907958389042771774558826996700793351541311761746425216361242842536983058222386199134548453746539189787020306404556964645438453160264528269281448736436982645434711872043597089218175262379075549915696759283828470174229155636229722277787151822058363023486790320848233618379572077114628949132367624483338927512933425017863496406881901722681907762833227017121711248029196974606737609406902577141302569869468128046820395916516720590431897137893050483802999846375844849102413864946232827632017417644676753356750784766946067043435650865679335746094678887027233460000031132564156639184088905039616107033330319028443710769820861112655839308549169242172577170339584087685194180410907315414908820138082582963134167542516526458313940567673487508422023575998686799393214352504849180236978610965763895255594256480973195457289742436060261979441767317580751356461347350301161651895840993156107300475151818543674509807284475373574412339453183947246550611969667165379225909993309654411801494764092738978054114529304691670264347441921875814276647130275227478111177559479167883023683811004429403122566760873731869619006178296459027380043415698846660689020433277380193885736463701880942133161990153258044697924983486623206749257415852616803065768104190976180162746124117003524410386032812541057099980366943786039057547446717379395608010798085312640619157901417433027028378194319603738616268996360282506809003869401957905992492402854920122118381091102396705644773155582584657968709651405554670134124987186078365693220150495406122759701583947934043179511999512954836034916863593548174228477894443987273036534777994485648675315567050716100307721215530568964820324089197847619811996740586918427858615070758943189579059519798231654463155870586226574073131729728463514682690804611814470400902992164520771835017605503662221675408444709143488435422848444925004943988544897277023387095066481106736080312089998692618582657966255376979343749873990787173885817561729290230431497630247514728979960662597141149181210766884342565603821886577308317396128335013538158072194611457370193904520636939941588319454744039724976449371877543231345378246331640976146743603614576347372422543342921531150403995520788989561389634136843933101284530373406950295356199158564050398825234511031775605951098463723314567729487036148733124522966358077268209596330680989979207082079170622507139887468419734596191803933176936617361696833516816327930580777535897511992278232631789357229800967013164367076203326334574135735583537534018825232595966845450400359079214770951140180325731599943272188916733182206290603844747607065253301370761527029671156079113377779927045278465363794127560495658516109020183246216158263631684446091953971910475662947548289255586128444075031494256113829668767584103463195991722134390460224600427915995874711511241018459714691518351004982485842816509148784967859556472505390887130964809701275119267114421798808908046092303508344614759915114405572306081960270775620387075728308072983188476781177045753365673810241956044873540793464857025205968805073974074507194034080153749075075184312055991420513590397979510258710329913314778295084751622543363660307901045963746685863566096111351573379322058066212306890414321421452784727685754405367401664521918849756411068657746955628932957238568613825056234567106991915180207197064922894937792130317837016941680151610714007251703671055362897544800934291903233018920030920391782641007557629293279181446420378585970494269560928432788222523829903931933756713552147682860265034319378223519028972266433775904480083719345503225401914865964928864397073986313798862549747118994380232457190784723959616537177959481742305302315670555567641844474905258706329600415464646913135297315962464797267993312974217089233142314589309986633085638545384894641852734913129539197744515771130229689750776659821827839768423993487248013648957689971507947037980680950693652514639543939070410923191702891160897369274255585899019635190975681141215736632872354713700659547101387231727045641365403029643385896795226031090115664826041445964097311420703305199845530243492140084919260938270220686215338202212387659721001814400121356185147152856014916178489470367095476027329303802072422842594443810254252000003312728793567253676891816394079036936715345809063798562047612809337665964380257456562460953042620429872250684618634805962585436281629312086301511660058756609213762020563758638119356309761390520209004421715236660774176317576960816582942649226318295287201559904148496653687524818264807478806220531750123373586764325468914226211322817429739803915279274709302143903277353949431975295986751146953701009565800407434849280658929841364462557383744296205030330971030436806676788301157878468898277585113210408669989826623526407190119790970046822675259044973198819205081663632995487423773446117584409265835028643838421270579824614038506981146703075084355696139828664746005804056769846902954896459871609542581986628858515617928430824931315848742938268317538965663372404632754056363003539021696760585522091714482506533521571647870146191494264824590015062073490943796249310123634902278106097485170200863071440012102654687891087729787150904983528924935106507014547411966363214715508996779658897284231870664183838508184330698448430245736555217146041833555020352762825678558881912138207480023239502084936615951045782733599802756708509826945312604169141671556919606656586325742517196014761980714260964805574342764592609585280038897985259968030716631706526778932246946405503896206497218208506032512527959858156655997186265923735211672247900820040785523460684609210602616443942844648634452598828157657435839188620190044356713268956258296393615001915971507846618029509457809095113031320799612121618680676620030549135083326354893974878091912436909354102232548662043562991637320536189134021430916701958746880971210687914304112333543995798378479094375599558744349118667665060445020978844396031025537186092312691976384642691649347626054605923680707408244387382822151712369303685965800691748056011606870008062158170283350219635929961980416895866171436191381623580926160644717979674248959501861236858753434376405990921768465343992482772691876838453782436630762083522303370748556735790425343523521271637175510770932166809688372817633159694888804293924805559205267373889872945601830925546753045515039069186450826680672895769672932321586785467492833997609543223792394565776601339986320038985921616106652881278623193669825279552019707412870183843164513427610917143136658418925185062940233268486372032744316789691331342898570664971721846497750706826009557708205474846799041720896763539487091447064071551653065761208772853608402781263507784429403028045818109635772060179267553704852926768698690647585896878587498322393247583155589208426328665010766092806486661570352786876133673335992679225738184588840074618436646790508449495570738053157031699236839601519649203173461019257116379484844145114680046753976938327384513865322834594266474374841198472877688052663931029045650060274867908815095947369720458906626050491410308264752198013273855305463247101480189350648428223257260198719250506822062337586244066942880765352387326315118131764907914212498309155759742500828504849333753147291683485616214757321535677124738637171081764775374256909106996396831126077812028345246436927292364215436294749794717266315461457152181589454768640672093112653779754754146668962825994026956315671118475612453250433175738886564142204128920203488934605739977408424711328818660070124639640564659979970765556714549531931727792722448275188222310969827951766233182952857471551333132145326588685677332333369173348132244357705394654774594653120087443886012568492326175517784250598508540116248531798010802450541331031029541080351109278920515981689766196517942230636578711649698864065062492751439011825078725226556523573465521796019660123768072338259172273408604380252575053435573644188408004473410914701234725627596308327775573853543705331106492059730629089452472657411393372912565501451071004309817878793042777644265425267270858744094399481630955250795767417010106974810484796145232080707251609170213661251399783545297779095842040662314343467530306353642623146019076170397364266390800707205115786428588295684197500324179145313601174225544690965154328997943976050160130329766429084225796399486953212242248465199579736357242287503207885735107777675191751829317684998487098560054483871325463195703104189960569924640269383622960516378505647513230642032601051281303470946600707443451847658201312936395174602366802442119008924512181424997538139921982113923030159196780435486129980928620205418309547847973186054606792997881825110686147011541150115242635686267074721665502225793522132838332963111978468599283305374674943498251259938817930653897675449808761304888790981246927688860177675580509090348818892676408193134661959554740708581825758270291273230775797601273635843654104356301747533685993431045660135439534755404532247257541791748415024391815630322915183147616741224242483373669052024333093958526056947453984038790830781996573802873607944006251913194756871668574253505173284591448299691443468639960499924651066537207077081570338040201387423401843826617843176302783449466501795465395110701459523858295492092114283573203650941116560039901393473661852477006089292360738712341275388303407553597098564204757280178411952838782782423288947630820012945864434130812395356816868497817872470925862128457624175535558571383923826703929718120079173615075140629275825878098415239295104861340362721612515984334748904644152390373356322551154739203094716954647311513519431643436037103157519548100774671561427917488389831418686031658647472673384353737801234817000281773397803250519125406527047517902221453305554876492220433466888049456605962993591293768391310248586669589386490340028457932026820299895237801329968190143935091296835396423340127201671240831961343852459474383101472591392825265818562854739253977707841129330489351350043468542146440558739049478330953667297645244641749249229920811388599830641208049088071251982238101187876194716099821638993195817045182352277347291824417052729790439761988400915527347830858341604683163794774394204450426042874289131239467057629389917411169971727277436067888935796354695720012964069574258078159578906844804847050522107848552689474048425624275287111459279509921842661619643226345933190103414766210053675198409337194565211610981352339063445131008373058735011351590420939489675122744779912337907558849111373667893956500099268724038528414149157906450413155739211107482058626233933483857498270848973519752799236805760354606758780870582802152071955868764279021938997994354089145495467779687408001753806085871382838772992362754887572843457528677926012656532837775439117134668270476540373516473635298495401318246867202003385790890442994699932104711776270620898703539867001169837527701154853611305998103004988113100728223744939000945485951886766983923975803701752851306744160862417271793239452202073563849605992733908640907605163078129889093578969437257683086685473908528022568575252798928409655726902234635851644689758757036603697038140731745608287573431230567272393185588243948492215879709203496502542158161330891445218396054653290970301034577875941619784204204292935839918275148542601089890297040684813155394601102379658004685203160138652445588248191929845723387226569411223667609459899501788174937708047952197988171940266116215412911969951499087750258145464933292061885163348938676556092338814113589649123014162244305410291348149559150076388198200994622428330256469062280154847353750132179237216482284644914131106901725612520198892042661239619517371719104294741064816912274939062987483776974894895062839930935843829692279467936321122301739522308789172878500455216111697826798646451744735931017774359667987154226064620960782773065873364224796008634350871410049501120234644328199348848478276211169309256049171039996997463846622093238237685524951586887467018545725806160879402010300310131475785506337560086260818233912006084799036669475697262077915772895365508041927573521968133401162193477343384465519192622586757256023330404642978066254643120727494063042721097814965621318736812727602289161499955766332262529353156315730374050007420506316060490617743686047007263692213092076334857956091031703791452542892759188582088442243504789529620287937793467124453581411549776215031993056787244257689670453975252941653554737389335156843134122456193545309823897094770520205232683939376429051345117097468379668826830896007433966712737791550627975828663413514207472664534232136960656727839947213135037412736867926264842490357403518960064735434314920282304165414244326523508713073010919105567390157887815376318221286457495976078966637447217727043799776609712240062502279669729923682527077713754074444268630924225785302033163722200776986392553556412050334067728333441650187378486996775186032240525352729125059122701254065438318142782953590455698500516550313631456099588150343280411434169251892370788228921082115738163018697252727730956919082968241195718542560500820932095839688964782869171640976413738718052532333146242770107113459945245579494039751536841496143056285978357212785372783696808388556039430760231200036131190757332109895054929825482203275293647295874664834833471992131259460909569115034365504871899575300750571583481998868454858622334232749417180574201489928980600484466868358143546826274824882884227371022102378707613662044129407102113240787342977790317819898050578435439560885151787808023474071368128663282580543713579822472576561873451325215813657825652223346937476184399644395767536359085673938679520387790061583072529849808262830288003223552930589160897956606056958090549486238876401189285374798273582151584808226204469253291434645852386447715334855305741432513688815508055012450296142808334035335614578095191603762963599987494445303936543242459146925322383905747944239783463513853260788611249313441650924007705520163228791830526981703038748754205813676480682044462145590622593340032435381343500767574147123934328121389075355399282474307713569503665165943443955662121298855936408289731476224851996238682123846089931919857466324822512621882937041413904864163057074985331857331047453850166160316280406679454643454308592792929758397984226241115083867718199985426502314675902974860331985055599180956051438481282921360340319807096329081471396668935881677405879519623672663548135860035258462092476635710708681632178488052405729874153019030973349431047657431657161936654074174303674060905192184446492486561375486509830810212896690368083024630340217357912516347400258964250063486552932328228672765271883520062632281126514119929580875102713748599514692942975281339891559755401786386363829851376792181792970548207248120171158816146611846785013238901369980043824299069581964574078304559320169721441361870660246284693425005176793578396129488120282391308330396661614304391860471999557447280397704862780798419173870341130805203375768207146296627006268094727250920363977974272164759132147451901896357895815909322246916053090515002871655960589405968032355117677856767050172895988459452939605522315632022290573720050613035735009863146540045948938571568600320753127092170230497732882259486069063863228175647183044056057391619416782680067219359740222172387705223993168925483741827200884313279170034362992980084764432986003877965292536218189195127802764847757034723108060787944338692705869614044986042541481049394399106012683674874421952110530425926628524284797912833934892117097549945162446844200232987422482592531885927021303339371651497785951936264399639812755361231369868582830618325795905655996446732382824997194098642478952539184657475278078383080412640871290720996105430599313968295695815537357254890733643215760759082466657791752692518433506200504097075409124730577143049510685581849489851952314200029070605579858695118392294924194928914630701640255695223089173633417212885074182782361135631165925692418680817765963843570083449452477067933769295299063197603092294594424580168228605677560475152786456204799796560887107035235832389968151474908436177344594991108248567894258587015381682676571390609006739218399803262103154435059945243880634337120747953848632829521699181524604344941347712483033634397497705336941337545917023156306118967970451134459193573119070926249128268975958298447403670977857582804898746858596095266843624229167323676297778017214923649375982872139240656360515331350414534608226927301373646366428588683511978436583619809687262312171330989321932645062186115659160712235778295797942275730144834157333887009895234965559309596764387617134808177016835765919791660584621615707848703123424385376062533810379004829167107946242874004484871224054888437817038622193569468380463378161534921469464665466896823394181840208029490795822268433972654490330439794272867987986049103961220026513800738778609152897203830006626589396813929892625819591727363340718302626197458048835351823169679587943157950342427549438956630152327910003059843158695013698007914442848672933258590171015708689861174700898352948540998851602267233984452791683254367894247133830497589762065571882485463989830261613843072899575339760954745979625769161526256414786650603450126252932931138209095214285570405237116073615483294197025671796727277046067021361163776184374332435631280905810003938662186013974920514371590288379052605333065466149770096514099325385616129823109015326492042451170658674834905914048629039388844347033175248905070327662022130980928520449189361161444412440452515746779686793769619946398021558984197788519051164437925145143679974660931395960020631929859752376669417099041615970461969899587674617397108601587314612368519416274425568506352964367517879436719957634591979601375808747874860250209737849789419410290945312102008398042407543373539952410024971550537489914116722518106695581291103569081852450207542424878363310713929525969439794349700045802317270141563070114963180895313531810201622453426513200684676900690077049641348744312853876842314870580781887164360543576924313342849361838605953550504600743093084092280576684345548176265030432587621146988450647791375738378188834887882424993071264775147527412353877885547668586203514191163621675677925621873773125984425024864924701680889205806744164768924581294989872997718435815001286310454250942718123718253394108336283224012910475957455662660382155721071650630377614246488069486534570605236227669801105408830907686459947227418753299051582118482915918117345165656614722493062161922747428740292232020216529816397812024225969978030590166424143217365481744712443988090770022849399211154107622425352546826752843700953899012492999611755021181423733409885589007095595843852341938185236578082121274194370036519323260545362455615750518691912838007084783724966816491480162271286333121968602634974462293346669532571178099406250467446423341324691878029115162516252813205481528473609680760904609804531982991919500438755980228256139058761440254487128217888383326041871457941805494344812851851152929767755439405257079387507659671313245774007918679885202208296423242847028479412354602476540233472591133509732445998474502839828788586341912324210381928772707100611341712534405010454717589988298816013182656446666612080035787968496706421977276568966033782334768237345560936691105320287756567427610217578930465667913922876677752097331640629167665013719621206058873088365932193908730283295452463192161159418985985097603945296728559735868888502020469631570304122609130640398280581279383917949915403572210404937022271912092071705903656032571312475989890314971919944265932115189700937681092566442837692443179220459069578188137902866083499991571457815376405745776002784190612899899286805340616971829031776540953037584547997452992037340390634687414620684802560117336423193705731959494798342062153579116397800860136744523644151006225028582499686494573639804609371616326361267290531421713610054677680101820570088428725298760478372269776255157293395440367757590062901053799392628763001664917705466023875319508939602998246026859028089333501483846039852175072027792350990411810958393442402597458220237176590389092075111509430675507362415956616055434938283454641001859127446018787177319247070867029908958988370284722388378866041923076139851507780436579786229226111302790493158398877667647401748214110844825615845002832187715335703722244380965411347224635179723792981903498685875453742609898717691656086618213836506142406078712402230032537994692865157686798627646365762718668370537253840556920046189434391283568539369712777138088252628990315136110483971236693846760638167415837224972067880719882676872805607097100218038212003151777125524047654158451549172757611970268780021500576128491186717784685772636173984324365783429338357246783088915927699308284692426911899617992785901889858101364225884927079259903153631097306940672864142975910721792613250786995262743652135209244932373198943731234010540592791021935321119956331857227703261002941513425708531843559647335795945900246095372697887009208854391258513596326084830152212523230215229056599054442584388166189237687789628782598962284580166570218371480087446169810034649557088436051075538595357198353057198063598600944569513488631319958455940188273779246161942771377847816366642022815174873670442170233487123746413789429056767674375891596265424360333257404242773203689861538103372899857108594378341108265603102780672506536341733302162427495069766934793192403128614809726945217434825751865207072492573737711233074218469532459178854510255798618849308415593604283204994249429693679605070668323150570586687395935949269468773524929747262934631174669889544861877220681573151516540025736154262699503076664085407468856662283673944852644398542276179766570248251123358204665777183564846687318961235162696463379955417888494976563318761336242380461700577256109090169957203569541607758286343203672446432404389345136947866411059789615763727620382650837855762975808664910286838829890679256468156447971035139202448315919934885351679866535331782737876409937647282437111487544894187440609436793974111619870124785293419388372897941613055283383495853531265396920953591740874537578654401963277193703449293704094292148928766641771851027967632708178568285313181373855853401456392385748388183161463953530496153999518145608104432911908896949285822257549038458198726654560909425934933429722019310478856150352482328762760910372526792087531519348215646298065697650291999245231486748985318974254591070981094346670663497410029626081669154389785451359256887260709691449440159483610695203310598539295894323249067519522828684285558692854021256561197379367225679131962430736498178528869009750064661861278291139077413768305488221476288430853490386645302036830712424988402991193205370888475171698086006009562367343305895208071838285427387067401036723413788478578314464679734010764605603078114217745359050427277344819881755265262764894975457835150741151725253481559248171346339181712348008218064667577429921847149443070569105517350862565397303110999025498496237270436603599385063159622321857209119755017655616063341938351057505724405595218254198875086633991721910664585548067650248138007985396479258133211788987165744441203289312581838573408986663643908564571119172495744374090388942980637308569119573570223238507707955087183892396015669637478500383669569853354585750751367830596720106175880675582401909991382131330699465263967739149794152521574199015451090698308454189845849150444290052129162266938284758385911249493755343609692841406750086353261002395407172068460771035526284298206240944431941137977194731512242633750606861048890883068100860810240805136271053620992111761032388500550590049523194050421622617718116673045355213142120260785158729320695353626986308729437336430843334584464948684072344860824150271468264458929897118885958534502763380794502740442052874818797309512162457769749265095704896597071297455068581871839631994236535810151974638091512757320369363085689004511680075591206856186012689364501897641245099303518335456795994867394730898461572862466789048795053313222220484273706780980991550956844468045706709284656159253289724874107649426971571209267747606635856521709620705907422939706654884238695804149055620144572309654545820286182927368375443999926659358980791314278778361702077887753450542254026245423878853584194450985978978254918157836653181237326567537915319653944898171846420302304114606973241080915394261318919532252998711113214384175508941659437873895173320842401410064464757110343822455603501098423307026141184082261403931298569606798807346439261678804983200506473740395697102140626745470674518464181611761647696902155570932824562571930271037597065926307709529626523217794997003234034512416302151780136547178833225310058320296670342203932087716433814985372724375250057451556001447464466888684404828580486644310146752874484986629048929100961335310354796276275240720215329532461169011635581590663985164978323238954863497574389945375761491583096043456880593193738618012979761798976555777042776417487118584891332669290125564472539926787163797403084070619727909519765710260389273193315631377442963894832386921057609786894569906778663067034502005127598291648260116272602542181651013660821554771890553133477659836607654150799834566981739475499703260237557061221629036746176994317953617093689941020639991104035392778599188291289966985245784624303160395705906604070380781588831155590348232179504613831112032446689034644845439896822404001375053984269219698677306086579980012357247323251807631163827194561088104804526429320676635718020118944859842857778955890614678040737120428907936989748164484720021045255197261020082088730939969047264321434252959387553963347730371329226464010073414626949431150330989600210040548876074280990998283590351039067566131833902042500799004197065226961125948267735887725459338513165722240221958973808482278598537553465200513895555041692630082555257379760750368939251409375184861932183799172463911125505437190408179172486283810534062748603075146570967139806562075303150208866419391955311063242167362904386856988086148859760459127644132779272178007009662568957944306549428256859385042635259430215119866003771874109560814521131309952775266326527697890025116786571402885605473301671593997131662835935193250149846513505616748991471860595967080978853761586241027442590367333229490485123182447891952548240739891824976480177214500866774374146822059463466093074640503215311789318023513819267368203662436196454472869876779511934512009842822333155750449456724417442766961783727941385088919935244028505808615905653257332205292940506365680304813511999476280650786020049432628147075315123641551250926100471448014107321635705430650717583895946138283213734837330159718224480010096035952523699276971510485685687623714811044966350345493068765908382203064857839626448518792339531136128587257957799790954376511774619083781557973505245713763089519800403811234372313149769023347646327247739319673281091351845684349692076628644231323704835737127805080130658075165599582159737870219370900807682425498594376736516862548208619171658643748681417873305158039903455040790171564885026396317969938803438579594557351743218345114308962168908883816254122195512595109253242286237376817303826703016380622268596644435157487782608732400904782214661776585653698970800027984009842323637651838251159019405487693469144272224674519245799719802731543525156354701951866252791569277311949623702051105040722710423949180338329715659274185191100759628746290519235432073269488091378758273467178402428130516088073810075973932340125218133201888897214378413665004374833630762083695790764003247983579474627112754213623221049139322468794728311543652761126495656437114774426511679336751732667550669211787450882637395420563328543557680073188914706154983693175112498313636320805230802125875653754676793162803971214867878839522625621862584945997709662219125631491985564258942449113457088242333867447074139845386335430200185719371389234665619109370958434214933853097702449863309783027685051653993112676006359443579060099627307296535111710436607268160353011125441636679365806331245648057393571311017338325407617992870199293669871833671346802596305620900992168511906613657473268222999846211219324662325347888822290952320453240362482882233226076292952811813077074135389950147925851061572235621024191225628206985724021911955693716936723902596223493094441919836192886395671377549427308461941278414571525117477082223310089228225054004824269182384652531105577791090391578590646210927814249016607189982855460349961088503085199004360970742149914888103791374163737267274724505417420520013438235811234265526516882992810182789985861846799286720248592106728141280482958594875177214332433812254263112667669024205525000690719468670791197113877744485376924094612730259863249499017487693317535014266707756202145296646642771090581360599745235681539661191946783974634834551101455313701740529521224423955451497559912392915680577913359003776236067504263245783125041140316193077809682566905056835871880519937293294101832493597663522089203918361747769496732682943612904168571571697983622300533916787331589373494436124192368418501898249733664998776623215447515575851884676866248121511253935017637221582484895980495887337352926808427195859674460912787349712901639677751656376231985826989544456648119255813190636333716461897402005048403268166427305082828816600934917810891040014561270081199283999953380763368243537793060074964042108925414006754192010506027734468372417890301753649389250759262651177564333431836935944549308277874053842707049691173164801996349748020773220269486290518523950953259943401772376160213365152315735191657816147988156237551646768485087996260418313064691811035831255211319433145663021566064613183761082563941879943986141197878608912625814992936762462334071288748292162940418341448360901591973832209614556906375683126503366149557075297065947841477169268994158695614180585532752121076493450745527038945483389777677403287686933966305020621206734551467443975910327837183870224219557706232389741533765116418366809360589258162381030662459353613640446890043683578630341639082223783587769587601231181200709907953946303642741953360110026354998863630577254064339772764821602838086546063771668054661343951519260603178064300003913830926620063803988915959642963832584327239490801107141950940064671057664793753652338392496187293920205625422966069880618842573786742620140943081795784781096433143887864428832289474448428362235886225082094771512609222599209810330651564561339215535419266126113211106882483131686959076776548352523256022670436119319611461614801307541402952023074439637989499555489785390251458422744000070684262930889734569481837807854366280930014610194296513850882319361339175811851645365129334159617295122221191180136884496264555984421080211071531619256800577909054652549791556451959942069811969158646803748094835969504416842031060752722468313029869947141872806892498888867342957630858082067423930211259191038053686123052537286955660547194642851167253258389437207481325899147548285989395838086652100902736732183554595807807382466464712824418335969295397909860086124415855760760373093415164852150167384165081848184373246273842080705224078654129399171155494483868646198734349973613672041266469344735636676306029925422712299079693952692110289073102986953523454331985699103954142161982060764678218961211431071697175984261278470412145507641993430693754110498339768104445184976797539918031657830647137757199623673450162555614738119614667364488237555998653535259992216381370536770808788503711455867042298142258002565530252191208652225914363269381357801127729583577676350770350876949374675830497755849533080341056327507749419162159069553579409237843562136621525400173197482308886109099474612284116560580990092640645674891518997844952480377919948831495012305550742274978328806585999833905456985189206957293479932336608336365491460389445751168890629014868207135620308687887417420382079926499383535854306962409975633061386662725048925704676884458018861834173075392740260204547514281491874748106848538165591858017988666180571399249362262910576570752388221048018573016354785834944580718082329794197040724274029900929633716677165142294000351678347460009008739622477902664677285321190407748735059442620351262962080304356199989393031493122652959522856006818052825452287801877326612227833581301814297594891174140318962740964197768675872084903756643067724883190561243659042378329996700640717638604246987028526775227514767453571189293277172009200907683792106251067736140662621101289375731399426827961589054932037965414530746969747098116799268221186200592964265654934860452285205460302219720208749575935446216083542372409803710034280074757817632536567673259877963304984539377653978820117394270190243639468605384844661182012390656881099193315592968473489350033464508763280106198772854100110986824815248934050943530738921369461144525189092212643454197093735803588431602232587593880756204062718176782331910627536984223594104918637479610127807970265390317500664772640671854916633085096762618259011492286960473647491161253570518301889392095485096518193999360589303399028975527483169394897620816072240509285633251056503462634893042925938422023566635343040866837328900715441940135834276010358201593436137315400125675522606996905603641339228661826600689726364217417907619147154921362230875775526087666162864385405163832242177205475507617305018896286049109303772453071763115220489432825999132243883193386186102260764886589491245370025902775522598477789150434231072996922254246892314632662033474284710311670434983206551770835295816335005294360097465477567104852324672510386648265930151787829754347407373312634931838505905325901528823742084436670198372179275565929407671685018369070092971468800713226319437253075263423681575943582665544158632403359417626983583055365619243490817526499160063706420053941615792187035854681186689160008556471363140475692977021957879526845923612946031275117885534613368994992630109281424933283784253702412402319598184198236490055878511373616284612266970084440115071870543501399820961624041515011112774390384041642061345154852178971244737780600988969573840086124699075756761275179512740929736159731665592393438337999834706332838974710277471708070521406112331904048329660010695125575564872777768419540336835087541255454859927172457293896582247502392856229557185232322154917035136763223180421837032907021441857153982428442441174833870044718124008954605202999425778086223209784749214984127314736251537871533408322859945962353482898887158041929368594567885559468323402584257024692426568374219718014832241004498670983738788290465137354694683904457806068918176139384608107429292567096197515659898348813561995050747185893559734001357810655327418683248193384597419655145690677580966774656612764312493075619193132923992904308079020505603519431661927044372650162113752163243942683269655973449274588225835770551043624952148411797688401173758240386486349212198735997910808973917364898065840410820656888999478198160207388373043176886262097330651959371059162421205180491134564434153133738719132268036223291852169560853291110534622923865523093756868285694453211449118243083455843574288009873577892813083684757187484593243858959747558446453650419957499244516718114270233639441570753863312915390675563078613946951225791029199278050004878873214744217882244242003881293074309999890076764314771492719120520738811488028405355041974389696151365112342306774143347423970093454733724183700279012341798825511127603346572754639367021091704873644414086735544189919224045705719618809435271995742520513689676482090140727900895819725302002378970278841058462659285761065303105430638813938713422868466245173511769073092732707271947329193856798995063792276409107655670383309347730829148300253603659360545943192476942025100670534536300030249720868905836508723610237769625267530092678012225131054358290979333124277794695230268126239074963960975648407810263371083280142012127197617918222433442141086178074630498513730532854352504005903926715878326926837051517249122447472047890555429002419345305408447698862210479306310428268673363752901920778603360436366559343621596582346193636683481150158214960132861546201290398103175342551063342529097085093457951447402483561577255646894004050334082074737439977171137420051353131960911460725217197556775572196548404129458398937498582146258799104826738207533946211827259878828885535777534447432876328910734326782353469025796458325335063722946019596568686991631047280877579030391586226028775484681852230058982948920957606348967003602108933620737923749524959231144214168315071997177322021345318242880106173763397896628914513063023702429594294150645459925322914760312895335283770424661838939740495820672038661028164249255945311021382635860359617599355508751525514347763719506741379146180419529877148108542019790849635700133953086002161284426243746200658066168078496710781925426197868047812540443041399995933862239074677264859930458693218784808044944594923998272127678201918965595425898731668070549900927855295492746867192771669383862417546309947683509947893092616953661243449218914991988293169494019846118184155723631687297655881851409784506705805752738966240113602350774925914151391125416276498055007735119414455784630067368656009976445503885491835041056180945571208324594186987610839107981803210582544692470372466427504013472520635472817004354804093187391513805948843666856304933370806631616380072644858023602720328465167916073329153463798515307362792007753867104909033239813224524255026403487048922201325241382801238720556971432103525428304502178330666408225278881561548901964657193554180316430848758544968264517474831150759424647111823731908723751217159923002561294046879932335907459565214884713335317576516564244178090288422553566071943467212245819801261091905925437932385423739417795860411849584552903206069109665346798239042054549021274752215783487387244989579237484304518762011730024226125419223886177374351901984907348387639185570150130078119132999224638823102396564589348569227331343423448675421600631854687337949150390163098688778008900174517713777448953990715203639803220705927869510898172467798585760023745518105502623422136905013949438119126553932365884410618188030655021420378158443501445736999355806610597228638555043858541901092406072395676465770687029085546515460432653587121423562108532388697605169792985573473515442168654694440148522538141483565492624519616763636398915328483397827659000536281243339212469285035499053925402670823756345319015619784511844581261765904118455743949349572374201524160728523051827981767545484238799555295706880860221061025492546483330567267683009138733026356853199911565632481630682979262692451938169813242258695962350144206645315699400679016163507816832616720526418813998858310494922316370559648276039934920401133903347503202185021235988917298523807369407212843974733363134737983989501024570034423407665384692197149271697977868374697632724026901502092940614321027743093621892961278450057821514030369304243908125536541653836204562606141465110671198946551872569422476079241875544785047739187636652339064522068674403435027697992945717555282665857374239285218019678856978438535477218375496076516531720219033986084749051363383605193400273332077482089775871796127794170896184193604882430561934037631098085859453267234624284006795098654582367474551709444439815629402246164550292526272202447478225510227039970906848062162779904742483980191801001315806489691112663803120248005570338196041131672919029386838640903602201621883903464482084432220659966085166900417891314928243261447128321678873994138669753871868800863237501144490538530514729533900284285385015595828545088432207626915204875735039591563404098696564859062330893444376435817132837967430266758193399128660436354696121738292316490029044109189590107191703716753939716633222112113941327244592529102172414975474083505225185173805634004025813488987564803413106150092856788078242324432533757835397582285052013465704563282121002215567954235039917404896471126746233165757848228488132888170137946132087465827008125659750204638327882401721018555455866869319869537013838780032961341503066848192496048442142219724696340791300915572157470771369695749792694494725806604622759709549657849540825378475314845454911008475334880176998972069302963027841070603128695800112353135735376875801720122248244719781925770843968069174535031769088175088744410844182475142025049378954802219513940455829895124757239052397346003186321791502477897935424069234780845666309512220333828447065524416839216829100518374160595607157762617553648286699030903614450269480355095738459266071056226470108439655611772468562617541305959887138051618317370474380727063149300694644804388629508399540294767212984949040273632655466700199395945822271266805025678425430723410207123553932208343566573293661442249590594827923068921814278973303889876230249148557467678364553791120558842918469052830241938862223764221554455135918443018194218624096974478210693613781698609131362503597197870154042983177339717152070156542327391481100679715056794026823607773813084554432118675354791426504476509732666106776874566369195443688603104684067463229725290139433901406818937708088332575591333009233527764564558777303502127058103926496875841839270292899799405081184069859081395605158006066418454120187772539401399387340673256359799313455042934632094217632832063183199597940886465039354713015672253402903138860702579922324784919309434636354389640228853687708307852922010628792873073999654561947412547044508032249987705263451405043629290428409742274403436857815220586785618085339891286232193336942335343334343296561869419937209024373899472440717531804780638064904582770317788670138511846072046507014147941245578109538932704477519408906029791094348065702866901643035185936475805401479918055385257480124201295087210525949060463393255245787701338851797512050524923253497796820006690394727848226832980671424087258404028218492125861071161679535148865442903327316087928842991898254278582226290863634881327309904529018887815104950871641455338497713108218146498202030602946247214878789879790091929260370919518832457668856249229763110087368245322531372053068592470007323963677777242338674152078205095883652320676853624524010066676140482862863744239225408898279509871720785230294522807968483693544005901915794762603607759338109292948527807237929788963316690669081103293577026928835286722401019526986786473288888071515991401005898106777161742562209794272005802504948141743590259295938317846781807987680557845392362652295657533021845250737892507447125387297584497561179036792962403935203327040330848345485658243850613552976858740094917801324756661178211204909524148743557813282002883787574248146633439417459431921481531488737344851880528069115185815026954459879815780627896913672975304876923303271242434181068017986813510419082127221153980847549462331183860765188897867353897118542821498332102899899931309684463256843437008493970670383698784758239179294917334471665471413210230770855023114807587939190619206288288876853734483146652544898195872913077587745421708926027952200747572937373091789167079784854623741923437183744682588191704917023282708003319853845327909665298961720078832303175127688245483476033077630465922416283250169527320778679719123129474365645536017722103502335050885413185271986364603013389388818825166807059088760998571110314909838193594664873750220681276894716176875138163847761567457444729158221534805129381897896383042520710554806755439029343250079251794399349558519463959968261997930646342849858891049042723032979192775805630510116998680990463196729508583825286762947711778632940682126254946086254823953407846393353609159958035919180707486776792389442532403976270699710809783844015741804471617333252849914171771452744150941946661747308414947628525983645765923734495945609139389454134775568000029127712171941409439261997890710802656080980392538078830491306922768001068051516154069941653340338498960949675144756193989637085394554009418650686201715130090007408890431507158467013707299161695319489316933063975670825525558807511809708784926938518806143376440128769752602000986171793715252762805869636858960933414910861714709878580626576657043333809430690516008743007477144765712196137055307874223621520767988539342228393649919923273479244676597561181097095584099698318834522846195170205338459227691055955562136585672105469995964757671672984482496541766242261043542020164269605898669614488012834433211106133368858317891581161872738928223791804916192055745304187661299579953271026733482472300605725789521443242558964697646215225799564440032716338384188608720621837409625069697615340366377137789277986262806852204883575508251627216476904491200569011911699001999423890856710354188101705610233765835403508342445430966683240201996543022300036153746157101870518367776795293501730934910302919298720959759355328343748940668588192716389941408431499095577274399472719544660933912326377287082395001304058942291823533826137196761305647734763455511127450888252613132996322276798409563771143704064589974873996529454118543095871926337185998707058172149610978087941134249279978136759092855559390696079473853529405738890891202141163337966097534289787450683210250284323198536511652633404244230448754792486631649961607787188165552043430379551695372760642947400657800113844966465640896526755615053138896303437050939893142367156842807013149501873920306080629553325187827077609289925608784174969645288817964652136483375283222661528681577295196139594734274100771479040214209967569866453993899538007187581758959307791335921343162412772772604834346981202878222231311287420727237828517680779837732622374270766654641046112651178538746149273431073237043267963200540773571852689689902127292307154032869069155628402439811164874023004506755356453917527722849496723488611712541843157454971936920362419396499005864988783053741440256434136037552940413852544588062739052512242787242717386122420550573010118859506861591393382885190524910196955898020108767749233266891585339028890509118906288153807877116398066387230265036472624722861856952624370969597459510847447381400728071721455953244705498049609061804056110952087120689949804882622783037768780468870742344072364338705951924456974425108098803329792606127594267544187417983303037987013812237422193040948589534308573869543828272109147862203780542517952404646099271013964455730488222914814914600367230822989516300663316959301012166399741900900003564286936607484447297732131548566732732673880717083107264822402545575916039725253043855761104922388345408557133506355933788991786607665631773161057257454840742723611189990961278406661348666000613603682113125978744645170154150723021334680142002782843364917764080326356461275478322452098310219271058656597169872894672999442497735545893797273641200551330428338278024484918560212722753837120100931626435409533422719751761686970410307439745525915909968529132230487587236566861166527278388218197467351756717124116162199151160859594836793880178580020783486953714432455085749695248316387371000485882521530258277530944233512396897959122681126762157069071022458499743011505851693730766087641421630062229313739437799070250495670400606303010769931437817331140367595805512664088343607677419277369247758617499611524129221464396612358661133747887620114116871417730172914851359956856184971449484370619608121541581576538821924638285749067373817053733132472456193697942733959364434543453410698881946485685082160432160549268688757619239564956400715793543167350761547809248226544920843050854504746062826867069627995313570987751445415932954076702859586024593172657519079183691566025680744676727178983200792661783906491518421460150492618386444507705226571258838805967939032110547880351197690934695724991318268748852648739962804496137002519509358359404771610812896183281816346549925999165912173651301216835984093284296800483640502997175548295887357846115314871072516275602008156512351810792960910706724238090461828297808718544774012888706589363048950421821775359574887157741254178030140972884859023395723927197232609207437344388633162241906753300780175191922664508843380016197223777158103811354959926022891653557051000103018045379474091895022445064488234522897903227343004630833582794163863754776334413789518011693091228724004650853993189700255193208669250263345898048378222383913764929994377808072603308627553789551984759874152965894366074751554295845069745359301769946821089057748525710148227863783338168937386702743001434031078601215282965450278113063148699022256960954983430135862025428320332514152822946997102650753645849675359192523951094998284375781267331015655385753018366451796662924487035009907005297872342416414551241732840511016537430572762798871099808116810566954176311847671825753126062047328383670152431839773457368967159956449200361622260183879297726595365673437390388107081836644374511552915100498484166432988259554701415731601475427251278048579234748841571544201124744776267726505303135767793988440032561386088611777970581091607450400088898515592683521508457881164232355446337571921194607566242058321057779398260507211254699016468785835732212588835934189791846501295929276618099324197220791092838175699649755291805623701137408004549099881467171996145635599137014063122982069508474820145811247417810495082940139565955272529636901718036343808823884281467827584335704966685610660340297696321930224189942030392770935582563218322641915502513585918691970083818352309998077412213989825464368038427956826241702128587968327500430708977864706628555584097817498655935293766664036599837900927672628633051804970577485503648760511979721915175845478572698145815561447058626945449661839695275703696720027355353701209621320946551132395065595374228220338195273387554180086404407990281984538790027437891233125843378809102397669757898007354737031419205589129530812664995234445337490463123088126247489140075620739069935156675619104766847149699259609009147784832032256811786624847080684661587076482823917134413671852320733289014420423722365419114191810614332574146730734877615136306730104309742039245927904618167012348196535100559818892025660228878559138248674634858358394938622068992401799879750814303622459235497977147999657998149661954012318157209487504523283904382265094242836475270013430076728370750979587526784446549751954820220859319775368183246761074369024646368384483522344671918569994673543012946821760976467757667581234183885590659237403058644702379358251519247171913646105540972455302310312535281262464640308581114923843830953454920471695541187558969779633245657147624040293602813595146793674008797254766392053949581570300465608882918396140740525485763783602027717092578148244252654314837627087464252209520063105152192971119068778344046952752229123852141806314131018662103388641634984866243997446744134315633481576876604259893206048298313124740566048544594459247538174372397682405440166703179188839180685656148512061319728434401043491789063079896085074644151393994784010291488187666636007049651425541501441565310443022275491719696982239708478047773792099596652692755088463702540740565886325099505241798421271481345850496217366983591604533822856273015106275335231345160500739036767181341476309590851419842548457369844748122063332384417687997219569091334124699679105744746136636541234687529478750447988731045361747391900731474184949388179794340803066285728008760086758509126653127668100007339948410020750025100162306232148103727003227187389698481653250542640530156047630108819454981136741460349676267241266673797754605896975508730913944330364578599364710641069719081132209512912728490654656560725760932202557486574556694980076678634490916438544605440248770755256298573304450755947497925665240619714363956549065636090004000211342458711285716887663832140053126879153778347208739932967481066616520741079617202478469291695786514083984128475212629872421497924851126538210781173601930654893037208009881994883583023762781565767342882423128828129116744439367098802641122621838631573684118560378844065844001958240818588031570365480570801806060686439628250246417974358391771253466154893001778309019825059851472715110370631893734020798704704292406598847974547256093244892517766643011870011004085754863833504737495605553709616941400307840821386203115220647501273957956388018835792512610910505443032112434834380589275937146462928045043622401469182542897760813949878024985025733661220560269656426908373027272307971951783530847509635809412176540250818998583264895249924032289597385082288475182148817373352398835327498040457331646041812118584637552588956935413192501530428430360391231702303785628986714598734279050092076396343995317437383899361528554217405734190145605614173450576753618213656869124471762285832636390116636680443174042319729274610484830692143387178647814087244845538744042678678380178897932336650445284767205867121874092832844033494733024924060520355425503928214203573347184415253111509739437865889033959376831427429223001844988987435203175434125751582932296445586899134872975238677576278179801272747386637935839976857522838191246517246242429603639185827192895516584741952392715917071427593694354136594030510400329488749647619321464104275930052028994390292268185111102245237157666518618827614084114800402182189589737259197503362352109830206500044336817175289855158091356535365189304548331390554003506065383141028192351070326109726648606340237525616975029553920774825251352777878219818144421954040618604758638990005020726462386578144117991002983162705675664763886904466856010394033542376949720989215908726796329681837281094828778333014667477839182792842967983877641216558152328186567977795512096557385241827335061554874556795790020622394470867772469523200235284373608421475305519317685517443198725985753292707064824768737587781319896473688954861833673292013331665543089272961216085116478181485333044789455099496473785506382088580867543214371748549857394488197077701146326220868057591985487215706183962267398828106973855701310471961392498557174467661881462754267307849337892520101184938958005931941327196126907513314640338801168657331525518013588823889946120022603741112496203366941809603542038139370152530399527184045922668521158670586409604504539537159258274187490447632431423349465021073650252354394701744666244042043419742602702802717332163752271447196067657190955617075580131567963324226577769182550266026662052966056564635577542042843372429731251954430316104152349845201446307968692971137115420062688893827211745672872636108840963963334610701887687325979080172551850815102887781117664776932144100737797610695524097558286811250316945415071196085506728146703520322866419861416343729725287568573924387011836136269202756754675060438624001386380185827146769485279141997937092434285155529679125692008871589528489671686339014479707903302109384052297536978205205185529967270399206501057471189906271973649858114545213371279326493206981751540644712340682307695837306585651178286718091539250134008225224218798202499722017382177226586663640122986703403054312440336547370233083008277137374715066067012150933772274584618660621691535869707435340954752479124882057994166649745127498865454065503309243685479694191828491987545558900117876544450743674982617009856552023313472805719762675524056603293184411987187586181909900470953614272171360192336806187881737234605881927051507173556213653634516363155241075733215451467575387135885276269534351320803738349134303054444275053639284004492682296203702968092719042820483685571443223108149788936641749981389516176656344170118411891367804759471314391827184856173854373008754794070268910417374345188074073584236577975085239130323949340696125583518024984494550681728101424010061230830884970525613772550903408989943578777614663012342072945475023700869003043365991536330805217855537197253648978408676053677122953657427107277081578984634926728208389655128996300952479714706834124370546091768721299807888484939070234909198218950966461544604357303796046093474420523034900331323718741018009034703946516806745365516687346166483675158301960771092847770032394965112010837585323322837806412514301648282713923684010677269991631485109304259312766960725809574802786563889413757450446928328541327086862769722811875614509757327392530482370792767351160698882258096761993201414473996190096209482303280557889277960404277444804026826722253879992204723297933448947537984633091895036270799066426873011662256155137688247089701313609006107550502213671452349531833310909648939872544522904062007850230931530912662270001030773482563552117017834023140526548057722731831515992620812404627484152950010956161934677011046445229123584908260891494369335636642852391374273965626025031322660523632529742862200299000164789916725524744324627350329152597085561982806465536749096469423252442674408831328084999726041735928266560900646416589675155384024148366960792153197291407456663254286418612711537545932952785676899034344691687091706455827673853977149978310901193037803942840681137636994417540884486957347673512325673261324231150902395005427989604388021677945203569995848296620585428095699335053705857761375612889111901034672356626605966795169524247464579047084235577381777220240171768092437608350940095611055995485018935527006520137401873455513690274637811456278855402479308819100453173160593676928031543549697188949781721869812073752977115802063467623168715233732677405870620998091795790735599367241108412475377260384464492256493544178728235353867790849676533855625530253949125113254245989112092307400661369252018518577454638054579028595340456803683047581495821568949157908653625541330225740851157893647843266930186340937384119904337480092378764541032123282076286848233041696737289233392919346246036759546521459324643531909827916612210800781869813431754624687539185525278089633392605938758235774693429102043100925042822510127573342839837509016229764362459319590756914353080778691359020430480895417457743334935340106269682214119282535597271338218598650403195336330561506566136713510916581033464171810117450404010504640846111398767767848430839387763497752929365159426970345748818880751148139411533630396936204788461231716163461872861291641713578124753689451031652827807205578888229721998134720728581313408351615954095496455718500599860988445605900473743841267754160852551786067807461016379131845139556507246267878253782637099101241185406645699987199468872398547404547864784764844410761157046467162801263478984874773549762883707407799873863452075045666183751834708579819702227108509637971888638666447513838133678534932981163367539264785946248266767675720766787887066056052227859677916630410439294828816915196363419567479090959277481599756235991837407071074447720439552059130690962771017081053896703875110882023857180064031527125976527407944489379682835394560517676042216992202404627208263666459141020042555822236442760813214930587502072425292514835574718819685832792632133722943588844667315433041560825954005126734241721463902312005561650288206089388917812406455260152312390288481094007786543037774996178795239122894447819025552678863746174970682447220620890602945359613706647138459421276332744652757617987915610961668897184377844767189081784279473625269125046680939473887309653953859319225051530274371502710209101217639389619372976896851815212517203608058067272093457793900459075726670373476734366235358043746805853155382242854982469017702818391911018905026213820486780371733603336595602955636108690992400301375175756211179389224112747949391478049570097825918566243922423274733795043854119490109445306339554373533272174306529307741164627994658507836924281556530078925940072307277527852511191810826924268497253271594515452738721769144422927652989837015901113787315125303508002858370304889117658682881764472954163549422389234028217798598445589303130731890557562282955082354233028256639279459297307914613988326479501218690354019132686716285810521901712654377422372445875243825177326901871974498369347043674911981108810339006269803545960275837016435046785118179003901348157600163122671560710534225801882270480677420794670847538176003051978437895701923049012570532961940741961489779063645896391132922204776456042084388224465307509222598956450405981904145714113653350102663534402287786235929580079746858092517636699556317373806626922753710606748329998538129077061425723453059460857352871654643751973344623464304076228478020315590076681797567655503493193101179859735909373959910823086887578567216936246464848378524773320733648445023418582742268492133098328936182856651290832737858153614821520670882712013832171134803298493608814678320336980700041060268011788906374729392548249712805276964821338249710142225167791162481460362995820569734792858064138053520655116128163124416698819499122806722033993971928255571425348164963741511706449183367589609485139947718706585872861364738013930972601301517091478738777922684090671752850673976758710045270065891364011974895464475830438491772608682779982006595992334573730479770841462025030488349890775601449174195825488065681294052006918548387797085154352805034838587124920426246170343373889434455658574969871639632001796206529504823853132894932553510729073251410921114082445636267779593157537108285863317481175031739905385545641624649754607042575250702733815846048326943679798106452960852404018586747014537872666963161774755660973259718442895323426537575712021083603443964274659989601716733028252791305065052126721231020127392494386908725427507580974179050704765310073352519290116052021039610429167377581154964366708840512305337845335091954900964754425093034731029162374835750409011564227876366003492398072881330413999565433155160269512374046644816053021551049608564163984266714956489315595231391495455476103131188734875183901943748911357075177206374190001305775176112739279901594284903618971116292603684758217635326012856372297044190486999917370025824961465858866215407640691052412652275701096504763117983546211997934982033422348235473395510405109483235764801693332721436955431735977449886344693256323801650492210609732278693752866635686994785865656323155387428188576999541951122627521260503118913322622138122101813023909339437070415284628800141023621139756402136560429053058648021267212641079606724971783450806213311002697572102409331063540655916664413331556135780828297703244932926576170015664406300641893374153326359830244023798151194488652979158742392274238693210230267566461740773331619565070501277249736777934065067305642968495473914020563706896186384949115787648813970241700106065038898203308221424254000950257864842615236833772694431553232088847363228327142954713616614577901561985025959050276670706820119350342140810777287388923367297503371414786022066351493718241314026355017391287812655644768383894473314241119289864111589513597218984501007088689328325421332736348640844942788090329521114612737852444760518882361715426755618753686902394458428143640304594358158771624674635457871144386413507324941641874125362070321098243672758941717665800474171648459216398566770596852877346340943639898524633169358773502609444517015464053944925373501018769336940847775089478806589866557904674700071265388085647877469919428727518826934359795098885807883458618730235843909553407108192091959857674562355697480132282820702789536668918234473735850427960967630144049396866293981707087568195623586275223329444139167926221426707452470248729872999148919780507757748496111439860926826694169267477443676320051037126119681203214714149160826530569542625691265567422443316766919335432167213505169705803954695175268948704239501125666935060806462432688085445457698136223147683400093578696289992685519507866566981534854721408816579105419184689345051931203791948216620248543687344304107158472696928334540386369236752730384146174488120923502268218668054399461525541220654777801224419440362878475005779151262427177750979303962862148586556794032832600275083354589783629900486883024177985659317672070956922503990134631516327933899623805686784220937602187755722141186941931249445888896857162731410395174263584659284024165121706879284318574752724103038378416145225672727781857541662146877439954198412259444547737290896426985768503301509540223584134673247389193946562999815076603427323875078354397808522171221825165527275094472750328383581186485220795321155595066041837297024503646793033952188347540812785833241375527969447096473585307849676892969667777934744765905826639199726816505037542252033864591488356224755107786493601276980623819769239790999547178407948786425100251050860259231210488467556078327587285820530246162213864875039126994967473456123258079436573421050665391393888800410338848195806476531952920425988133359768238781650867474075260475654937597717086259648719757003219750954499082877790587046412370235443393673052421507860729789630593759585574926388709459976040618048544768449526380244371130528431242802639264140240764824585735610864655436594162109791311472211177308572676216944812073126533944003331720918931659165845603399065304416870383372471783565432460591013492684877508558681352664786492645290068220814389996011089669344886799022533884069433008709886147125266514527445252044719887391664317783414030768500791560416980335655403420406703881607839429002757535333734375823756313255043117807406481918241080460394235232548686910449533547460273254255476932115745689105662472580498054723671253277246910217291591533858809865223180895435945996251767560365747721499122672938072748111916270597509919488277028368454058734413690147621562066009783940582237150937066172532722685605595043469594010241848628334043137925068373605170520673923325755874048058509116559772401301486604062904706935860234688420273549109078335241605158466024805675498274646861867834175026701600486089047726766278400118475983489623871939184109445403496796108417365727231290766214996285474295208143646591858586112858050991928226651920986680474252120361217490183439027199350779377450288528180123225311748179322784512980893739574398764692317874140470045161971075147809356280730290426569338384299023336530739062878256488144882176554083772737419811415375812689602359247731282327011952266690854062570897813375988794526062916140670350009062386443708669737521377124704510275660315619079126423255319277407779511562392540298643798126805409885600915719569653358336390399789617049773528816382607115241603169663227475486272337628990178377729749409424504734739265656033438426295439794002885019600925029935682814807461508875290932187048213390936355074127335210036338518516664449504241659160761464864971824823617290023747160635185187831850329169825216337632721013285705776484555929320769463565828362031902473237062008545443216407791023833133440815482725425502283003036121294713449442990167658232536837921992051561268011515173149188600507136271757313039131175393556120581673575252374987981299166608827531850187294325250103884511016290857207978873658388101639881156798183211346700417934169719223963169699852278211161182930281433113241990924035224274295299791563828862868187136987755572467559101272803051206179197135157360822344150233704760852867696877389032096903200208264599968160846495004356951501593336522210941884150460503087015749504847227990928009727754477195918763191572961015366709891267279103005521574770455491258707171685548003127685508667855917326398186076684245372437774965416396996343078483458336680150742479088428816752368448435260089352256591648684347815177065260290948871803841218886053957995545060714806719436650796311516785765186737542322957094729194444329246387736725379943021731821994398551119150665278677581709834446369327388637890511641449426364121913983072232013147102385385200182828396731278320367034783590171370213746508993934407864252336155516941865702660976600278665575861615578635873201220635795043492650908416930128562744961175806562294668791709674481466432423085955604789764354041289046295083143958849882761942469217911533605933382747095802934138286513438310594901602440760914709859411335120929215654149894619719758487300288210920898934853025120305226872566724754049775644905370398184923512316164740195222067907065733353902715973045109798714443908056780027841414660114734365925809813230052778583505775415597018327914867728523065927679168228880154283570912384294069429208317648992323793590104006707351494345007537563309322866526209163984192949163610411638446126191826135042632655185799485475716425866768073601173053101170832652412388302982398123779079980538347618798625680585474368200280618852894078072125456857073564393029205414251211988430277201942408609417149084277326395863064457923741753844801977225181643740328933221926229791894549584488094604253752112525857476081465533008224513498620157314997552718124705933541839569084452394588125389303474375722087825595956268190307281480713375958406178496707610003026449026320649788665647497811466086768228390142607165432101834238659745379944032108996001714154138896326859617921257239364649405409226247759692881668730896831437515018124404810263348304886499171716437889108380571969740936350483308334584597398978300641449171302612454512038784384151013390158761080634497270929436804418851876715065359907786767719686270517532319698902332855784446073369712484031141834441183537414296242284116643894939632309773319553747620627768505523117645885037742918164767942594845381955572731010122422499719281511938132194409385791446305085059677076147997131553206890753379952358524567181598778981470270335387745764741679533038779396831908169781624624400677898840849522697309452217625581560143276347851603813691569671390970978165029896287218415074449872262361981630179894211649137249037861624766344148852053149196463559814300605075425311358867658334833540609021828632093429411376776578964288270009546946252820770883025232391291215167177099767773145987608536206386578586540370479194854824402635015067378715426201073812026164397021188024123932577881202694726954033558491958923804270103855101964154569881026325182918936928070919162863577604230116187173639663129434911984663359757072864093017330563660803257719351883960276765971129435072319072133538609530584820758254327575361387164028287514213890109346308540255120841958170701165670677875515356832648600423690925892088227518090303653789173518420858183092587662781907769650665769347549500258314707002079327090296645797524752313625142975775581249337510817474759865134473455317199762826627768349696121020288510804490071519430936051394280542591765659756288737378801750084477727970127621026126446586111036301343931901751133673901644355698612595215488334407348822755861517471898016068401355108358978427103261289763520909128284334460621996074020912760946407333548029946414167063104252800605931511358053102988087788438049897480988486685680202623699230651553072478234972238454696039317567222101189654119769981057810074447064420657946256702612163660082241013277841146285573436139926423441621595997675953535927596527331207431845346985073781397794908731533955179266006350573239836135290858219342827155192709993993482727823115923718470780564743906958686139351606356791085611835599113157700869782112695566194367999956553725334140429005079090395755795095735120954127717943864908249970207089616523496337968860482696941424879144964514829043019594521110424365861383567737901893161745760086496668124794128142012425349610696557011975988142100328912042469805970618079251538718204235921113197065589548145952420245054328595920929302048197628370505639268078015703729669668973704974997913769339927939732316516666496792583400444896573595961148477434128245952022170600486552800301662558323532178528708997799136238556752803060961800927358500566437947347305665282931685409282369910171657185787563231918140075309881205518586972265967697203939414728806282771942914142479837159581087726896463515116199188140353115382724486091568664569981901030605460659941502133958733872757516568990475418728125150011938168003785999696301955672992147888797871856334882988317107813676092080226157160886836805226157791387774153978289086064682458257852184339129811815050577949160944971508258122324484867978204281120512169604223183297586402107421717084495880635612052881475126612272113593725567900959696162180308664411962511073799045820483789561697089483069194184391710216835205620982762728781835335392058238855504835391001200354150366287125791440785961607091363426569140890559520486647167964940179787890703629078025069576665646252188043582955200862192853758198628618683472010767016274273181329475428689608431883430437973015826312898406126421155103053706709238193145954728742411035782534054503875976331238949553556670947867610228457106263714818120128910548931308949845736340236867819755063113075890169905485817689071409930786832322535361465544892100824763975072289507449204326839217443414893102184462923278143803809667724736051408704454133113440436077582792087033419784138958439390725153512017037511821383849711341216561700372439142740470423212027456117292176156051867569738172226627402928577793581823319691247218598634510723732627565535716878264503982735368824670694323913828258765868627063331908394845460422799338623514837713556886872965641070917691310911276324597955322456229849960104049072913643203467777817448721271375499336890071716535194875406093144117886353405579291167421912668037216936805409227092822947602805219522778231394488262141679235653312896361038892107353288043784072519023609077510411617787906631670042643584006637301631704610809721994755177353266478870688743972817232555601103705233734438771232372639181508132916483281169663222037781004072778262345068223243408067071920982394540036855554444676255742724474950547206439166614646696693731726955882186970339176946282788180247458043481995107914182204806761515103308543751917018832455253762609008200650749166212329966886511422882378859570496619725799329455423982749390122841249838419386740208482994734383928214842285354439816972062261606987406835201904641638047369786399429119091258942448869516715565047484576912126772828207474587402624499083057367305891810770446708084973475919860596342179405226038951088482351115804608260722978734005208322120481884714954956378948507662527467412593998269996679900496202946217404839453785759978236099862551844186214691873988337287849646477281902132855728652849021812151393627448321299150422013699546226234363295733363621743919850710953472346487134117362253501928731900839485872296402715314553405617230756133695637598354517330491864517598686677605828616970454120350896856024913262082873531595259453764331435533680137212720646405099933252105156786177096639788224776076498932949207040410130954862700016508176089320564362179070932176223291864933353644963360736445644491167781303648112532645223257733682412300372871287272017107104053882021364898163536594678118916408728882516318631953510657450374018768197944054033609040381305184977045080018660123757200905904862422665436283681795844549041129621287302722366511945276170890687495534767389151583050375624116005199894335028917605135012310579643665361664956222976682214365219689369696012959993607216091431524416928582683033667418868653963983217587562322583531989037568556415283765918913972049996787145718642020138131983193537813090089897016659562474044250455082450755712779276627746095438569242822008780040155032422943144027931771941871271853357880211903314458769035246626084774907695336458940244732343350372508074206232961715889110078537865566465147934838107380949193494990011665584169608659770562744309642929225970923969606602360450423554664660512434980794447000755863075770617215998208744880301066457025113273346461420791260776664187358467542608755341238179172561376563596322629181998941426169614976235565716247139609062445936001886870258498460785193433823938615585200177387225065906876285865981044505887383760418634381779369354398497368152812737759838638044354878531134179486129479261079998536335601694199491005528674394543051335066013513706124290798638951682424465214071473082574546267690639935286676199521501518271139916794363042686702053180174581779617862615484854586469359587544581645152307351237154243597812594939268922874225795551615716201535008080359010626101363363842544003193380560302695299062993648984171757242964953733273529210463809191366954459528671748892791545701385766165684400673662782854214041715557078103256858896045211277526718171102710615496093413312250880835858317541005899301846462912925157685715327946730168668538255687249128667738696991793643547573107114849691516794906676324859325396939213579837692434396199679885247728167078776268463300860222139678203264414749220172813923079614225923443640846749597937369677291669624893354242589289376134450202987096895212412599429421604855046966575208446662795508211053427437149735077779453912901099702061599564472504924721787142630944373739270904997068998742955479607367114064189809653356661296558570619533138276663200092528531277817151989539453277866944771331624619811105023366698306425773965202080366579080800308264288990133080290924669045941849658048519699783955580188481233744019499728140165414586072211739434576366498441607079388442754353233562121726739945918113870025941886489937498393892351813992289739334456287932695650744851038520022580907833949674253226346558006361701280888409186983866451453550942786672906627921754142786608882109410396006921775676000681240334833105700503247103800270473849510295540368558241895884457575158365458031418688331153241607237082521246949343704783917186361307411178052691094095787980016219128339041011726269745434044166432125478639887283124993124111116895096945087188515173346012627563633820771973925333797724298157960213655552779905928207574000684446064168587044672267638242513092441458661488978627815081913037046529876362820753989078122884908004152641441620400668442577820351317573675354289892419454866963834954104948285630020552563555371536674575259453404164204471761687280588406172992451652412549037761452838786553444502596725725365041669394677122631156324531191364001351760129678839918882879540658754795636589229994920686286403030492752259956521820261474497432076185931908061988595898885382758358212198528971161678365365401196721629647786514994894549159932724823415849755898534742008511557165195595834811651301186818371347401607397156004325888824483980406463303254275935291337812932960357206677121592151886354219737595346506598130755743759105352816139328975811572359240006386172746086299942392495036306043790150093942649622148892933189688204533417135226573510565226100453794982082185404535091097693745522831295794984920720563091478786048136674047927344737730966380824011011934843981659828963851222941432098463131800789451638001058110002668334222974761084696565505668960245661080629816833927263448037351787781495132353818657330304956351038884725768913921950079775859819062685816506765381819652699086108496818122704146727673934542886446447684935113701355145141197873241408097023003963467591070190500315866761122335135552889779153874506088682588450923067704637529726582358342353811305636626846236200535220764167355284546017033551499964289319091808817577122494846196517221733703800124393629062677479841924891452069712859929266781046135205218370529926646981022661775315045030818406011716897263007279888202767843538462099682949859780239265475104959746964361858469416089987295897171482510109156770003066755331366837578699010758229100373337881166444257952398815442061201360452478264887516356160251887368832490917402737122325978042254906795210177269319429649090844969334000122179129532342151524638247989728912866013399138253118148580249097138292800163227577802667677885414754553870308061354943811626939889550390765159848155372016039281510454691171210838180074606514085530712195858466602167228299464540148842730683138058267330632361572149232814088115502249792667244248329216357110771511607523502232452586847124885755796412196853408561233993202445023459285406474722353948805864218803978427301864726749625976488962425234298573986321344705251977027594761355112430388350513182573236746188125461988817317885523433652024566018824337948305855211006276666678300671467285070466357603416812481175870779575863855118898829516880173613620282237959924852731959035814005407790684884395762047396096770173777383587752906154610091110743523623205127037990456526367338129680011669594594823971524094861938824977736147376536316424523099763320692730904020349500247381402865150556635968757920703546336377690672802928867470710526822975856117777538526416825474227384355247469283873294027579581937641018352099325905860690743059323791590255624971299057167393958414154947315062104106951827956505837686854110087973943567021012394327057497402359687856496165202624929515510532267292912381423715369041626662720529315873131912212003968432737296030099837159314065115231903687427253274462098540138890178617429427575370796020506184726823121195042614183029755408405021155428123397547118984991529810099989247511009007723807495942957205647567428779268247237148323285209524482187367036515615367097809436394786034745256257955580422859438838259583931602320709008434868588409069897280746406106861013967643363444110065647218444051292342553418555232374799863972109500706949623464038213313130606777348734547378076081881056640690088492558665716593678870182338031894917793655696289575642839502379590351312444836566866389614568590899578058199289688597950593831117488591852339234289737297635381589704882200040503041234891812045296981746354984396115138464808212482178811785739365156667885437520085046860201934619078831760204748073567233813214331500990972113765554081384960803478823613380896145967828188830470364783631914338840753736996443272873786526238530969323584166196084796222306135566266706409948620131067078587634593437542071964410868704725787985741730905366366648327327008644456532984713153104259289973273215289594576014283889370292817623448531882185375382795144513677407428661269011446294578048256811224598483268909897333077870404256467107859518231917906702175717359006749429148357682303702356841048367471287219039936290583510910499148096408627552043334953235699683891910161645165905689774708979345585603999701201663348628994866665632298743346422737381015698644023039214084913797909731151364995620872208741905697445563868001977578702800064037171003343255290121188588972273028344444696304118921161844960079804607927842749120811678170208733269189387018078731830544329108673172136538056460495804454004606692782129581022010504573285571519491177733639637118866582024873663403582555840613211351546069451156763206172342384236087885937455035091660164816363661562764586741171551047743879899556510555846110502025740554316066575025766327879467323116597303214666233404918258470582202141318855955356340664462260429504864380173439415905327241943922470400469855867481462674953690971449939347580979232730727454714217944451633580650980001423220544384743984331229607610551263755392189177836619398786570812540865331513688027901798296535032619594288755422941346427378897881966159584361866029718645770241708450424857978048362550385962277922177145987281088150196660861884695068861408025018962922437958322617937688910639246967863670374572829568957152890315749423236122395441113936977713727196286747864632115941468296035230774688251639929178164767976102359301966605461157951880967636873152022488593082686263528205310435015307953908358875582935054181010767046275164951641663926626280655580940829716163488876984412576838991434088252771411521605662985378165744514342883142856125625568991710239516274020364261723182626009632776984392758886912500161083470932648694125199949421252569279030294436316440744888210902096412811695013667162846753055511841641652403292451932213075146022773088520794501830537612707964144174363801739030981740306466997576003563690206416790223126443559693558742621044132215891604625342792911475334864813320489617538772858243514113011338325422948954677130072128776992203182332887805052171670319269583565005182093778743958440676202562477196174507742911576582618199205371866376798986082975220977348893333175254307603112698071642009905581366949894590056835941258457223419709277414161954347204672232878587359316283527683254269838518483937379379806924394615803305459877150978078154381883096696355586769836549985259771094058927449148637341568235989177522651468076557193456644268040083870045661742096393993813519669296935633901814218965995009308472489164947799459679567857178338598685599793865958936667791239502407870160033926559229329459778776390093201732085132953679061724157048151424974714645328502243974264118557140448079769303637027296925588385611876357447301028818684047945882958886965323053995816202335393594502654069003058808295589386443322007312033398169186045966494749233222450144789588726543786164726254575359565118656350247041311094342448329497886426446667806850380574833044636872037412909519485608430622542748092839213371243436011817751291181813474861710125548916105554169498644471408946711950449071441176247936177326258227365409790379374261206561898487621106351196954554732858736207921326122781614363877774323377282762597799960923368284605479225157032638177337449947890960574358105661829150033890324148829750866326250299662981477273760067857192730095443249698440001567955946969818897238899445262924610194083040157427207250987755179861828180099286219891219289188081722314899260761523885168112210290555527129346565553896450116572051539379850840173593889461466455375232904676246416914883410880512845446927471800067282390665477356887182014292912713771186459734192221618932677966535560089139435326964642187619849703500446427922639303410248232496549437503749638192899491754668034404598795969214701648363898391517126566425547465688959496054099026407350413316732286649657253334525607387187516153810413353012144609643587061839905250592701275136909086234688987212325552384241047346705423467179964406817876114845480746485327921179700527835437017685922930233081231847724565155996273443283170664434438811987223148418617035109136085299396937511878833050093352278340531614363816649653782874810018808065844258263681586458439232903747445804388511529251397384398278643043923162324390138359000627427958951163753305517456480635996027755708791985847332494478412707951901876241894166818919426433676108327473957293300380396409762483722386516672505035665732850453612702107488108157399021766792443824788632621398642266109121448113522008625124105823316250777828595844191856180677530483347644278154518179489415916164406387184774717187018897140871515799615318844396405829280363957873449162605336927318722505610177230286067345729390500108765468065499744756410316790944926673569077997031152979818922415080256555553158950444434578571167272276554360780157976434604982691479174314756912038481049419332616541456870224191959797545724296623607633666176736711971951757508994349326176589065860168724414194736922062269544243800970724930360022516862847830109392944732312430810269567495795461595343018986156280015762494501953200513557474882788257997302500635378239822745266209126995653020910800748158026932833171941607222337512688854434779409243979979118768572677539674732891042371420385149823359921672738603903632931298459351900817433105024485867597404558205202522925927074049334137954106942514454828097999580819642753524808527925829846773522741693329847917059609312374853032176757053883730896470614342232644365974746230347668889874912959934136789403230287984579135271264345832123436533410520243533588865917570745725375645865126953642119233419077545349342484596784405477613009674357440404697371728502871994317960253246539897772393143868347289481672929510529610428572036970545476646758318464907328653182209043770393907180831432932544013077135834074980577460392709138154392334108978229692393614054731145581572252616513710794465091088693392935532905510741977784270152729582174309927300040696076650130111205912395298752069668938225283534410311782460651722993301672359935509429434025041816853341948688713556979145849163259997995267344568551303971437541566789412416913503951202256822872407793197223628942190865721163229867163210628738038825483022697189942875161032249504388950415968950627834904226112905987024837985347751233708169536885455507745295241034395494447459296960913439872321673017296027366908516005211460656671741426431028704418677027848607007667819143053731199106600438326183492513676987196462264169886350929549290911063814189563591485119051229047632590068737316089960818350699246679731863250126663402593401497179554766731783648035601137010453205647207569581301485135033199270346709919712128504031544324156764588921382658992525397899546654796939086786680214913215903211847435411225143556624593313401108226573596006985632243686096395531521162607327244183197685801599108879136939031504952434995110830229083640478375552770368083381976066794816489004326571824085931566573957711073921349876861460039694228378447203324879926645399584976160500597761412457625162006741538543737808040883620148507702625087030447655493137051733858344847847977131398438179745577896204758633317899208137669583816621320575982592780919548685401173147199430858576059468216828300170204093597220164973064430319716440253371983466300410508617682356730304517106756912524794699398285927089609438458110869994036542024622711824078258405267178627318352716050396405163037295207128787034490190391542976395169973320353558877192518569587660890108348939779115893352572065412893578534607310633026859839289413076118016372799659580335413604674219665060177147926803814450371888828028644105015166219581871086680419180151742748562037629116249944937544875740535232631038245169872377886374826530279600836099493512260430839812871420989045312541151299987577816471057364182756085917258503664371114083702431149376987853360149749291338341205865975040473998818670814302577187562383825879441900581075324820630086469509149645062898144715120085811307006255546984016443535505846685067725194474430786627127380035908674348061164592087671078144977139060182017874292363077135596824076165266148115081061465751348971890577340665790252525153079000485046118534731007733514450362260810726078551749425117285945255599981643288250894174234480450580486569485113874834974541208524899987458275491823492575930991376897982264425870609008521190724143444568019132386294260902049800850698071969171003146423788401286953452875341368440043799198534948391090561115525683314491434035276883984433359385861490955344147254706012627072775906781662540414132569399833242737386348594739285767912053899232210286390645726617666663806777271396505443371787507739159377882484393466761498926031668677914925382926752933369108626239208865164673775883219262894759262941148004694163081938557146675107500463597576488980838825164529575909468431546782203555142036334328208848079474491550029197739713919515176170769301025352761089290605165903005551846766279069607974550220521727863657416415920341966707403586994228173977446078227701028593731505034216380354437219934116415287556142800239771773579972826160799771964405415369958087776354351003643332291776762600583710776357465583720215602768616611876495463082984368504535862659640752847911571358658103049848886235499367179173585133923992365595687756177658673509322543260019654386988686052242630655805373514525379736698395500634185251451695305529771731015311992487939672614033702750024540856807550742741393943711782520324785611093728098919273081436507571672783005094049156934296459394934012606515028701574356023559763519898535684724933051337641313814544330368469193986980523794269159407429233342321874891128625455967914164605564593302023690336349918616239325098320375085215002009083691655029441866764238759294461012558966645435290829366128404773697963640353607518886817587376152698870452905761529140922179707357841262482904843765070548556087016521553610042798764679044924388321498306178973685404239503219981952929524166054377575517061668675342380787440553205311205346873406252578821514724764593837298465211496687084352556881106048489048126382074896670304875104158959042817285482107379365777256715739066007717051407542811036628225172776749661627929066975000813084118886546253837098266348353027453816243626970483461927869840092600669661460431152266779595403055203709591132383370597341138910295783283261426996252507814613718021474559189687142992221344144406926274350410606680364106751096456182653175351351960704950121403014935590697122120733349657299485723784248384647098072411074410603908251528350887247982592083964150508052428990676254960129676453848941308603667280517813238898404580447963927099923505176563112492479013961257865039404545644592882867939240513989610049501898401085980634748870602700780272337897320753216079821986246281507988996475810090109055655318421348127895622600507227308025644213533027915865835421927913592547666594428233782055189298382582111753310825219299895506622658108958198730077368998027825038882096552397969109231625812513093919017101939846276093896800606858324216010217669744170425858492670172704592277004919957816493953130933629542959018345922277274107374913217730496134858793813793306876443604015066989644133848953543416119714754983345464541092833513017183968663720873817032146180729562367353211992466080030024019476018256708824036863273370919985573412272089705892115103352949247103006539615325890411098625271119283848305046956379330673857962671858858774095751530664158489640129142380804610260594529068389271056699687216946224175124061683972247833011504204390151134368926285737108062892072880846472026492233918696003217600799459112646513148222700838331400405717040184042258860640875492979187472803708731423694279090160607343024641308815720340084632024760694049300258198861593276797530267562790921773828072511106477504709908194970371338611740630403444212417212998401895571874604846645934140502857712396456971665829941677185033338139672775331617511798254205797550806184823301927163079727750323331969335123451813888947943895145795718119662365830558029452326430947814746821264051221544880004726260486850086600636014988366424567538699536325227258796874638786389170566939298024130970091195898717783592481877554694531239145057589282904741945534964707541709533523482324281942984999841530006717033222032440269010501880155799096041795340927824818085612116541430558587705023277758964094079035141333896335134666282179082667271242986439946402846265016337863727363720880326696572330872045604274661236953328105715457910845698414510840280134719372814478936905536084959808133034558553561754947991308398608780311279369459583759525870281572565859164952507211655336319746713167333251196946734343342133625282560283094743306399380774057947821218522123526586568808700835389986228924589934088938517346936415849603297216059152002577327691858331305696142262519747498296011186777880964445666707504881136214203040041462743794292255295985087106139522106610335036453553050390837177851199784902046006185732210887606183067160450035600896094107873726841386816584703532421167328264287264467278569256637794631370183652321236502653000391316464640121376965751797412664539043951751784916310029437062698519792086816027202230032034937503567426564740914120856216051889689365440349601252486808863128651938182925132978427089124880147136821186574285594018021627510297664788644154182335336596542193049267693113685839932234022130688663278195286393823304433724324170118400899831848938864550012272726623652491421145915098005153567862836654102924950642076783984157793149063925213425765896987323312194356998784605536557855803069439998558296442584546418764668439076393637544614306692449392381264223315721926458418480961208660970701372463185500803929570767183830231257358704494026961339418661004840917952249955422271359309763435940220276508692945049926810321665877961937260839606625122146857574687105617353909964338114675333429111959897193688722443385289646801714413757218235261339379923287342710700907194351657223597796429539005379668242719740798788792425559162817338342932578786864441525464478940559526414940451731753506786509616927077759724527837359215813948529451810400421421721288204436290129096795944733469876786923204939410449047432626435176632626379464016963871449528824157662585169684599582357559060482813113952603021993949794598913331646762502866002601017454550401828810674818916089009008373085685638758215931888795153239100219776913611002823828118331158269266006702215506799373242023616002003497456890674605840954361077297024721419718785894655357562836514216671023856695467542326485759094582017682046073043601283464552358454599968726613446897996517620610573423840776386708842440479572922333785473240694030905350692489916985968693768057809418941712339227316335829467747256864048466989133339802163718086830969372392227793262984330999381938411669761494007941793226744013296804658179623271956769779517745147208319127719354003458477772113287079664615313409727278953557709137882551378790350665269672557247759622185472836296245350785704536433598234969070580698079180794097006236478530893722177535610489639412833631136828484235322264527093059743035561671478013038675002997856495800801196317555311662661635491237408744323098734526379885441071294347545693875684409788061289063239840947805011131104029865381835145006930136481544301767561857106428602909983869804449726049384252187862399502549826241790154680931128182087833212307907053521094763782598805739743532754271759533321168959753145468706382892199077798303980873208379005939568585221368527547024003425456829315456121169191516352317806325778938083550579451998536505035686576738495893473373830444849405978491518214694387183860079628892037722780736211296925975952233246223432672398739461822073588821996860326487933924456489391464942602780726942203171741199488918692093817449804296271341350011416600277163899194591605744001488733936501831232873677710222865413973815733595479241103870879730575064121166945733075051131483835678534222686434308693596692565927528623962379203046412775802380368416019050648181196970655889982308508665376578808987885866151917165237299228457144111764335100749719446448150997193855714929981703288971158283720912371229836163741680022689173468816141196817761513858595846964003382520828139811904103049906836602276841980663745477579202066824262619776789821967639733819857561205862444816701086943003451609326357894854522920348397945202593724096505502771050905859910800536188649788947714477998470382263537243236085568505767735167452935929657858829624965267560428693599205504136321927363644287080757724310638097617681074987494612396522211453450672174381197490224635090039353963192176262992043195394427237020663985619920753177545981053155936780356079235583708587887783071543416879996320783943833120326015639210430991326314194912932039387143812394169979902124951141033378713906133367829426221022319864408376045861219628846714569423056760319617530956774211998897088078718231050959214470699075021894987289609028860842285828178080584681187135182534977063570573374507990484089301336360967150392967760147392548313203749725383816797285877843299367154894098294094535445535435468729655253094388421261141091048178194824393096709590062770826968518972992825601693299879595082641547628529131935140451986683976508729803223851056267005234839279995040643217427911689099010827081895907968584165076272950531030178789899986669160094278220900442147159253174400264936000729755821472488153277934364362847651984955075105361437579782891267654640673619383151983031284749468764842629632890460527463012064226874775432115108420127326725606332286840741094672940005205245636805395767715651428152924703611619369273099680617708975907768270509133326217955108261959820975104805478782165335730849164551752434130897529895899920002759486602668322386385433696595951217503554154073780836113213362946894233121566774364182595837095738980226728904074169393754736280091039081628490362019999840919429836922001486880793839014492769935560547350004868606704887053788073290469494573631854547729199494820937548979199583586932892347031385698133334528494760131784858821819408248399256477438760183221668497901622979825865201088750058429200858608542132786360148473582309118787735989200711232992132856870678839326284782571981432148987057581614755970751154115324231145306644627088447472564786299545580537680569862933454599242394021803111163592475505952108915009331268253170521358796903788632709168959168986108140089599864846568863669034465590166540439918119448419469565840540024873873072932647558756412568416163870718646429615100871051390287460585456399969005332736174428431097015275085176819393152291306622947157318036943883361056117773609381348240594101725969587587879278257774018762746458343250092975478918327723827151127678013640653195127191159081903406529647678170932767480615868994199952272451047533426548037414246260216788913653459436800748755548383124703445568716736423631031610638407353931975084678466090508821058349805093364818639371053869384938187041750485199331204282654293898058004774717886400881673303095934112773935015525073068160328312256180102097715785452375783864446248035907334305615373279683429658204708945466457122384955377793124112214434188511736448150316380682193851566171025091777314171819095669479295700127581935773029654754696473332005875606099291978349669335279968042882141599148844956065592810397507746209592162203605108188923358600232377668495479097945426977714253283010396272092587648574821644474605259866061547570088389355847040417443384881365612892276483149244647898553517254552771053491716515666471723268491973603396742548423080881965436717828445907398867108366925061023952933115291446023806168458824964115077672322640412106638094578757040699946550375734000039536261508148609395732208875799238092462525600163878350119496267086001251322501528782480706437697071125087015978562291970075000523624377886011503709219615257921450714338814035662887283908715594269887118291117292417285833088202462739624502618512758004063399317712557687980308357721598957962830038165729997519542221915599605069103210875420121199716301952497960883593331561670269709383781211510730182570062181610509685739544953530596135659336956337381230997733337658200569481106639561389462957324997690812174599387188693208986245060961362812924817433817326820287590677517334791589675636308227700561267508318217789810159342680191470658706259577221991104030258809881781636871858152779632527108233693664174221453654690889281327303708404845974767683590587149034564794707391523278582835314175760725144649092063808695531957145566742409043948912434921926121831372885132025393028482667304419142797215872244146020324571224430182901053339944814171996394797301413594806594750591294547537576433944309932434055568609670504180284345650302360448272786594533289496255674728751854783677634857126976406095052029138562905532739452139002431302535721961492204581191973479650063152290624532695432335340024302096247684166422798827192839936904342730465449796226398565794966821553409384151815163327136383281525327089173416800171082272866532610931136017224006671907969082717275596524081077525884176358622083980556404138123542496735134097051181732058451118231584499637213408577767424789158335295237123658996535860338935283143067341651689034469366717913225185015455005577863507900789484696508304968310889349144757226082474366163687002629615519726497102255122531620868459769518422673345892640848311063597832361572397122132281442398357731736351108452318358624491374773624642946699229642370615988358470916457349630728035134200230103540884835342610189431610197574919962641163694591613124703723829082507059460714771027723882088863455499217766438786035547671812727668904206152832952363899214515793093883473514139502465351631091585801473735795691368314734681844245732809395514869206267501283847666767669030539354279684975062774815603234177702679805766672272925554326986884181903692826838062018840455034804245300253351101490896315414511194614014552251624599068342206916964072145561806246415697413746082879062851654492141643645274483331793070774003532336114600120021976424056315913576797624696622053822252526150825362706874813164687745191103349900732784870583884360974196963997123449573626823725849436413627636192967886838549913148196440390643442268075437021694239492135549193279671375916780018691587206543850957218547720359796073060772132299933191728024074864132718207297523495766211861835002078878164283000727205993008463035509705288182256269524752696407338621423593705982297465162737125888501177590456354594918898372178371583902701581779100294179215516098567729555308341236404892261315335777522189433058069571390251983147572518738310941734963303246027603043738109189104541750556774253419782600246811985167973630678474403941186046552610085794396163402327020029457678858996144786308794190358235349702509387440990502945342954162900245116493830387649185095514889455438141192954433143194782064442279416543014758541835306189348753862413562249523782034879613564167827569775672213422777213529500892865593126147837192574994195746502374464603513821501545871499986445278392255251623806336066542224608842382974822897046934924333432914746237775952705470463079738185926925193536627593996904272473385888257120373000641286815155205928509231326233678402180022229150575569653473480750137458781366179368800439032571613456276844871893994359192895516632732332103051952945287463027600560972943978430467655815385890928267036616810784416419545024630513383505750006169943430577796206193678982515257047246866103852057222450202144631034097476947123142991899547509032132023091237965345821378001860762533314376503732492381044508234001222339980279332741153949353527862098406804800399947012756678132891623957800404365947907751834212586615404526081661608544178350737704618525401901140701531289261175673183523608720461390586032530940355677233075045618045298974126383718910918441900581915097779336709677160668480953076981869350267665373815652409149697696074618684809600609281447945409883560192595551939353891998344333381013448552403505570452961674377267782371848538042722535014365043701949421726629557514868596064232217635947593065446124211022293483957070365138977704057912642396573543013059596841723893804340619554250996657726471376323218448694313462819739016734897872900521338941211577889160944875856995889001136440480287368109657414526437004985211975301376124023580249244897513567462206617575913522112624486148345097337419887887847765711930384977330438226766548453973481577327465757328802598827040814670233386373467666528940279186656204373243705452515851629005409366876539812569787639083187539032572095148951849440541153130548901170786445427087386818786412065441156574335813697600994205755384977867297285782451530697553425602628986836221374738198436271962669787892572790890952657284590819436240657393443184663840468353914988938128941501138118271731659128435098261436556905887557417713387060637239279361738519053107382859168664378732890371369202148807668565453859099164314260496038890693638143316802582031281736410671717411558357801826060434635272868940984883513382403954498865048062152856657130840994850860769527446745420420837158892099780000829193495017469564835051749402269648222342041957347056136897346032215886003840556556037463270783566624594667483291605523721440811723062142228896140565763586033161563094539812407267583631979321972539706210166258069439396312382552161183651031579839101148452669332743432516095182849785526291127121493286015405846335482765705773050580926772033475614395849942027762393845462173583386290931820017715289722374896137089377795221911753723451748268995825720958466465198883501643173963753286305135974521769130126720410174579842079464398311387414476847502343369592391181376442922185516693376911366606500222314178505531735396314730930612234369433482062575235641614568468799872311609922781486697876199813432622741637121022074368364124754983957211122163978942403765755945190522934193109413953262384706692709968759105943476385022387761919112765419901301210966722556397703051240253047024166990094997343131464571469981610286925817805799066475328145089034064226780108856087053000101982940768647943050319397385993871759750812460867247043123647978888434413405515516918813327077308669373504958330356086371161467784158445498772313680009967066611269019944720309327130901960659881413988506359338833240449275333388020559359196726839047507708916676025808282311272724623653988378912283413350630100192294383165590594795220471040431198114577921243768745176175710963442166556046278863974722994983620660714936957197817894795510496525047981263072512273944278983846766098546346718641121886205394401316168636226642060664015822597627655915660081075527629077090617628094844489587380604410904987176668556279225362788509024198909774983721726132468795978504792886663043630484345854835331808191958347056815741430177940849877184240180330127529770566959396255095837064417079017262349782910478872313810580388952679096788988860289949006801478270696070439029194020089466549350446673715512429618253214491948157397353036628217991911583290270270185039100429097042473696795785297922509085722345828197034441294075871196814983529116855055340238812858727277237862598543701057641183489505525085251304262429990154609578299687311110518762465985491038776029620019356240125678874891170676184018370935363134626649929504355969049226327510603362496084108646658142062756697049719331385731068646038112445926653095988623658763068769363265354712698365933477333828007502671645134370887826611961847000530612713459013859783263968831647361394846893005021002866632474064943223972075032224770945343204707105262154154303095953152628611382532438826292049687006532784112353651339367016757109528657621568490868647504940522550464568772153585468628708969891314988549616258306864134927162836192169225815711787756241380323146034668331381807628578094583207622776534655152860617930099365391916853277561713970124223614809064732369024842050902886694562042334447571607227831686884512153067408087503561435294097277218681536963649115475983564446851412079641715356915875521181085302778729657751109788103985863028385385811333388260709703310707693367885460196791958618015127124105682057109321513570839696503007982233318046192131673759508547961630893255859156262937281823167555804185144476925414925402973510085844795805183579507998988760839030082701102587728944793826613713997437582394659154020768374744329985540608544370079829741406259141937850129992616910186647500796939797219001636234879795815362030019852037122058501898089689999972802687962007814951113728992967443063923348931646671941254469250585220967263816841078901885048386326628537997550654269882265623875743274964885946563627409804474069987628113143249262467474810872998344195963294528881870251607873260111166837163248812548241539012175579331648814314576418308560165409478929421447883502802411059043047970419576435936533745340365589409023045568094356224165426841598675260833802006884413612792331709128414311760833218722919768620249686509005973157242236076977587146838743463155455313598915298757888255979165925896142153778770237914752221721054942562405899942792850529774233359999296350190243148848350147857698802030705565250704949636345499171318621252013285136962133004009130361044250531482278667501085048369529002416590795108537673371992527973491696867081024471955848939272679943086905735178784893310407647195051332608020329971382559932508380910965462110155543423707524513906541191298986051630866279094686408195299083963150566937593856085712484194492419719840980642193283969342499545716631496040514664967640242317003073395181410727977216747500538827277367935599512347831138304940146124336932606839578347387899558094682655023368271067158215408385305538026318975990098172238558629290347987880752860873163402052078854155265406397743320333837552829505058954375800472540501407664894383493661196590880041338831003392279767105078135074363742218506380139158882596910197011696494534437442217285912401395948401204491532743299014186488082501792057853685080690562528744160511698881154032776646897899448554196250214061159715991873091503550492841916503551776190456624515489741890908786599634855132507700883092431553276992785201887160531695936974105919462378359425464483242962792520242778097791931702021827488299484821333673496985834920928174575427411798141419622219664224066172951856679504779660819502634554767551649733004856802043219171529190888702804890920977403035528524218079172261454755299141000730147780028483706366978412086366170202914779995781610387099913267679307165985741559053317500701415416749379058091683391816258453647074983089385079157238367467669094951736973869391005243681053296630990614141246790062380901106817316497035462722518334940205696176782896636025176649076082839768758313124865432005377084390088518033145648524757351080005840983786240447309634447784050559486354469084124725041722630308263392755211611986783587349463129592786357937830739227056676300898726263446546424023058532773633110983814227499636945835686480632238143088740739091290692907903812773604752625140627533048485870350215858178816501922332632986487014635368236683951145222806025320060059909579026634916072398656758346826183507076473639051124373908165649237382685061029752865496716704478392327749917046224513883922261477686141360187815620512109376919697477514587199979276744514073346303459219295116217371391791643652093257330768274146254688551454517052984921133485302586371695534920115682892967384371209707958011204605620019114936870113342630016001222718847468775634722759099321008506340944517212916016461012979479141955621814717747821739010134208450719263457318344588479077895301572290081040271500933314369227772777064261056578038530112017217720709530768294679221175491237531969452853996121510256162709026981375936603244769658821879827414482382278610842932853114511065476500253630049501331172446813348654856773930011135541685844682206319350457707505820378721809816026570890715968708151832297343833704646695824599792394188133720274344977235905780943271414090462621681734197199424613384391451256544933581720935766612909777926338270949376446608399433052501028071778560672487786792480939703321422657125895313592211581887341077260769255880561363738573887728126715487590006369945408193246273964802021661778309676676587243777445933347465660275017074719231017123128630781750242815453290542004037183678365566145954843834422309269223258953145379071747752231909130199047005211653656340326454953706286766734766007269089110060011207696725856441565844186844991101414829321171889170641853113683527303472675897903113544291367641648037158084027784020748675512108409826749385709676554197374860158662038284443666965550536592500080142979658281376441276144203658141126386788699080880686624366647096113242250557678935648386802345285711631812209804205276040529605696650121384600233472129784106799543544228890272612461952334377391356770488778334969532960242443963419911744086199917111123403328904870546778031362173241658093639501020342283746121700700295103755942060608789052104187967464258789908993595348895218423469970892475654381265245057237422188392106187945713108936876203848893630834043308335996202005591457066669690413447310831149345320327109663360145914440443134525581965648587978900294128187483092543536959542367011228537613690730216785194490664620131055932190040829597661346863567023256753218747926412355575980429799817795911611905520644387956208722761665278539492367610594293159178080071481484850858553178208343570178492771676603349298172042828184132828215255090255242731741373996087644590553071967140010383927182083341183420474281574401332123996858728622573881415125218476802602493481061530803878888216581543354616765045739479580250791870232465035965809353785024227411094018381783877448427452946704525783740830613763301489761998899074381114877615734724921848896569066309550196949490750002468378659807811807156571631746254166788385951932400132157222527877325124523901674069761240167533279020366784557367431781973849801249232291896744169885427070499747553588647844784041808089966154546819319972608248653334162146058322964131772872525131580347339690205393522422734726620717230328054539618184750228193669890158458294829987839256044821228415318705003899761608815000616134902073832594932210382388836031835790854867178867742097928750653537971494539647231411939740391037617867703373757520972502331118915544021918994022730720263299166182979860141990522379189731687904711946896395159608243066616470115719840184963145055063238693813067220532263043313520150017837552446267656187025508768095317664240563545075742545158963775262604633794876460379865309059493328685020198231377758929794468278646975188708915845070793807547553313396429233936394673799579211160969863136678518334222138749842613526726681308580412847380371861016218391817068544672117442456938318171118121960744552469554926708621995623688609253254179059891543722136658001409389618099824782867351729716541859246000517528696573472253098413318120115796877156204237831215792760386578240700153260774885005489356345769832900926083588024688644982402799731757179559621064842114979589710620739521932274226000502321566315587094963924641243074773956811643350107396409230000381137898603149847931710838967967065100972690466535978556867866094287523815125224741657667398563821218522940766372267484548890347871158262460833170019995805953623474559866581792499768794591475584981567744995044817705470010457921532555074734521975575777513252035966228560638046905020451212904305414483733081937993521136071537980178827575217925999256105868501346591573851030161361180852671085495126220272378080094959722256162661474035116041797144594423662921209628288226029983449195312504437298161509478516557704372530631594612968813766498730325566832995593403067578506633384262376859814405603718612753786948621440115388394148345776549165022647007516182892182866032571450853480127802095207981325874558787799203609952388109824638463990238762850337428398329398952439658115656065308455542866136440784325198473632504099854313392051666069691092585500610419298374234231621692008880237287130408318658165077585575816150924594557146905331398392400069138608343035698629722156255253521009314039881295692032000701982711111391670619940767515188584864439268527434277732780717907845462420226372823941646154413228745220404205706012182336410970605376612321591613583308387252325109441053618329568851031136103627937663580089116016020990230178470832354426775811802504654336792819839945933825142996009928279644594216816719024686846023477389805157182161493853627326926672992635849250406245431169066286020443388857644833143139201186794342442293498099047676264054714184349060834379583717982141226595560183977212126864416454452112032009911219825355118629801117648719100476620632969166954260687797970997157302107402436758824112811776507944221332677320116554272902573363805971560124904160797238340825059270103105749199733714793581177646564268054884928218299834171651625441106829574215002912496702970520757412265748860503857919745179082214262334499930289964738739728245531083028043131253167816838551470250792715450972609410311602847008293371412779577703456219522422249853590773324744856855057055357388067584423306785438470487954269729773722780501038492540900449904291898445100566367912840198484544527220206811419154486013421795576349389555181346728230835777851715484564155538998352528043111187094848936971638760457288483854340971039995261970223555744069630840084914498236127693064547813349109769294202146695038014449099577331796706232275538504501001364006759102942415928434081688626952818936692527354725594100844974539423280552925937136157986919994273209420256225597818496541113847934288640724533419467533033855528773511153498373551171404044417470293392664966006786523236802634134161360849691782532352363946680996246371529804546680919325156652869374202962657680164817538040356430114153482660161554861003291688337014118999682546812163738028936258070016732225055590987870649128857836604849912725604861005465607708092816126397017414502531070053053631309123530090301185795183242408534425967415857800924042273514207718622504504631052594628977600735461458938137093272706095570799063253953989714902122284432550489591425646210009485353241893192320857169994435926454966735499797397143477405286538477446297155037794241928212741027915077657004931800796402285091834411861933941810532539974979278648586343372397828820286139163267904820602088279042265683873550209733612285964294470960892500686623526346313866487174746329324459267805217439216865826167361442294218279370098481616350037316270913693110362430343991216682563959588507021172068612511291196761388047730544560563150546495493429310388457976335875587964557033425895630905970468953938977590696846387371623484206752190276021279792533804853673493391540088719736593369335234104855074799051675433108981769306271081552673001198513748676125539324869919004623682333151871841071760251139171004684267564469021113411035285407917960476499755046679826604705763448891174265324576026606425503839446248991831163627257858467775488813874862568994776433080052697692093798779786516005051769793649232322446470185301459447036262579273462927875870438178388780515941350293116243665039074067996822760453216301761341789653210606437051214808517158490456053159291593128304909641541850057576017647553700917282876240792934605409209292018030602963581771711618978960950875875608903947282656646136646311507466392818481703580941531992107319135175621662081068366735627236645844630294573742606299931942877742423197992135323933267403398683550928981487725369796063345391145635176863914776813448057210534601557842275669064099385470744436812447145999487273774885803487703730369666086014563321205048015438260473500514510313067611255110409004442373577845250132121528233874745255450123758856779201748651353850343402817130659947964481905760504740235592585517785378139409680990388049452697038835489115287284899562482834886299172406103884068414185460155275548821337189429010741358026363352777135390072091990389052680642392699048725435015874540498839378385645395419516513022879467200506779740925505995870221275642286106334528952785527610314586662588700940786747033015189053327217784970751388851988894346972366035250907382669138071435228079951305229107365655095690002036755678531368522707400309509728480620545951007411583765558461208690630680273461500717355131736045384134204994420540529604906822139331674247769442381823138910809408530851363538625828271916117462382740749674019613213550837266428624697132806644910058135803488893509518225246457691073446567880915524968811830110426101272895566656279697576742494725081215221318057355262472692385450521936984000772840074495711539341830691605140560902561896926617355815307643247851911501291323118027944947848339442573665810725057874443320319380181675596380195971231849627799555932368469982006670582775031138834102310391993344710198093476438312784925181332478175459933835101965961310538623627122735002126540049214683877842506161008228099635911874154934181972196421156105500845072679637067695875690875938582801079263017688104484405118594230378073661697566849370743614964365963174869808024102688155798809654321063226013590197980028378170057688115519859624607352871117949437621498326789374513776173363728345343262315922847689472112174663047856922442493545017080287274700764959664769159329155643272461810761918611975176207703446126328172644185722176290857143531682609894392989545048683774972776406920397950556834859212936133534472263873962717158175203514876275291759696057263594966124159332463055130439786532413487124532357486783519170510693157124547998348963560160578730912797263096008789561914799306510522021411603190509882624081674797086620287737872747267990470880353052859992557687797497341387961696813056867787085410502073430474974861598424905342147964765140017535743806783885626277913675066815830616199111803349655848845337252043147965808324533277705630407177814844561306030491952125543693273717909999213160999312345989918907187084955885825023618681618265659494134863908502959742310051196539966072668642819144910868077407579099263966908365237015818005676417713501373464267046794256518952990732989301889691647535987964882452492395870397572959359158415637709907422636140164782320943612269655428405726265377961066553431213137635618061061950029361573340932459430553887799421631067944745502584507964991210455569179206466633392475124813022570989838370948743611679897487527000579282008724552209923936095663499766418372649947881333984148084244071610141347699301503401957453458371884155033763136718490034944403865329735516124525254010594079549396684775582822438678207922914899951063187858959886805220188173793710475205500753270328075592368963603415630313038063977101197617375915011370685008952280042622619106670420678279964113644645783817488141405506950075306268647806251360363661331280270534254597920765843596833528312175654718100746173207785903212384229431340583345736833096168763714954855550296328013627448939457374564825256788377467464418990166351857940431398070081068156932301233046024960338804832011458143993470133802905729140234749712037533674488512707614642512140615656413897101135636140990028077974991627908613390042563583046045751589299651001037438646739996205841080780604908956280954594148303093645343931180836395012222950414002474608006265353624172236392616517428627155346677974079795678242364554740886799607618391538116162728920011201412479730619662531079150140471685890368888510239592719503930418093400115214416591968901318270923214571950266104275941477203077300267683648092911630187936572486706068605594694017488012513549661976873892755073643831789168267355736492981003532088975598895849496729117806823037009392620812211943127558040781261454493435269192596241069686730167463187225628935277632910869871696193351732740219274239045470189970688177388179433944482266124668353338661311092854518298699499847307989179889436549953116180037791094399783684637256630358377082905698707297751589017055378600850909294612685024116987922657771710425340153083459395657358348178853458683591889131447317083298146962623664022821188415275871993880260457285349372725686524058146500744854823177803691436026712857610714537032856803072423633136277617061067161818358309065848790336637768412163990346035513260164909656752096814092848882792045172776304723547152806265774027594251717780753145934678818265942452199714922931558029149394258931362801633925306311659052966353686675023797897041647151014387924098147184033419273945115532241478855174066175277702230120164197600182424363688898100390357737066137301312156708320047249307735961944818353827452429796375661727199028678952885077154299814997745946804458993836626678423208590490567730600445305912099643073722769129607762253538490375851202061897507314392232978421000058815987517786689486764969503884685360373913048799113148088360854794592578530135731170469399654535968421649863803339455952342804848911005486571499477116564361939818277005587534391841878868869222674987086194130394898933213595612098091953380233913220477513885050528264892351441466002479160570045364041573050163170035060507308653803158896998888340941941137044875080408300835116749894775646271120870661087648537739087728087380983930739183982124054900030657241906777761869225434819212351881699771098845780897623554837783797743353096395439560855082999709097515588474449271160862774130595254727155328554780134723365172306817974711565933032553643647845758935739708734505182513593041543774749512517516532511931768476783386177879027129533717952765319601814745019319211325666140290360276585437737089254984631201512304770456874121790699112464365061420958611644108380346022291959360872951008892522307773484319166600140788223278087899734122433922106269068592707548197618393016014388430919626003040911352276171428940613938899843951264321339896548637853384088502403962756105813046723271866126900574093892135942711281099357613621221533565098316372252220849694837352484711105389558467781911446107180192111817903759082597690138934590013307645992048161885391470710960681942685704316345306975466605589477167652017548250237394721713055554602796828477373745000095097866141173851959494423296136003371560308285811858493229957259833699289157043924324813343206027106550258038205396534743913251004283951643263849563049124982277293394378303256524245847570113724932444852768408132947392449878436315722935970194930723493095004188025005701703954730527071000666437465306202607808134437630235399410339115692758909058258034096811819073398140993656577906268434727620729238800186549648488536876804349580797296685360533478650464206982945755004160030545732081014567836059400576115982259101148970505056396907554724299303084544800222416008300644311647087832317543248239302160192324924755512842872663338077339958910209462597295792204893884901093617694865407291149085285535950370198629893740298900453026208522188506785315096382154305901757720648007414360455953382565977807894244974171524966687796746768775823445719502702917771789103023279513297729359423105521592211888783533475500689736600190632907793153687877126816853923490230586421488583285511294658113454267779226178981098951125797410856017882945984111293797530063261115882922192401845921495366555113435686572476164412267739330980987063472241157390857234781009293156556990351216114817524217895977978915542273796086324492788572572943911244719078756837913416482978955428934429276203459438909906460115975474771097096637782805321186627949302361435837846141039278833382688518682677754548673978272897383542923928457649854782788068944577498178925905777018071901815139835597745805831249378546325341309596686587972445950687304034932113668620613104976313461011013684079450042073821944099321207563832935843475518313919471456856602356647791024529404082327938455732327446034213147588547761598124650303662016979844656901130313976512866945652390936097662805316105444987522737367840023054798144795932532070104164808481713647012594667194216507011900318684421303731012807680149033045406391302884965235638454759168217524519755059823424610991038351978381391953198453822050327047452689843357094629766799942823016871881055133137601675884572053662896749336582220105107860337986763267387958868067463234994510002302352441035686255113119781360026043201512638984387081766764346983276137071599040440001472040555822526212058573328916075498112006725316214272142473989652273627524981482745245938878663786980752970538403588192764970023981742345327085162166909732054756720879586235870024203340649267548824811948581201930585712638981177077309088209637958703663340556219921618446162784328591122709156895025258895849554983903611192141353658401627878840346762436136794117034096258209880011896137620033074804564572418845582630860831570210514814843751173110068219918335240628525296341303387851604078581137065128198773270763164745110995189288074849119920923375267977008771607102391591959214249795216514874150575702776475538645413534807798696488170152358968229865649273094757329759550133369452112124297475933951093507102651261371040909031896236206062729968784612384332238211474628515195077798115984087586046708352795020469538195401948046477178407306732771589351207614690858677315550875028315409121387116394766802930434065005365822238636990325820055121923455814280600534332690201162946923439721512093112916356199724670267427126807803832218253537714996814022827144716272801983469214729384547149864528341748034164315851105465141563266195185654862490832072987785268970532978961209612026197908777456013534483581374305283736027576451056368771646414480014104571014488233624319037458696813793777960298294962077125270552636020612539229739512821685654369872650912601039266790982074402625001665300754429869827516596718219153518218461425652273616145947926679790577485614010909041486661839263308691226351301010604319852339001811670369298801462341263250587697197439583776783552246530524176355217650633836165129019427276051575367518626366837321693314720121510994044080705844060927850761402756885310240228370022869730666101393957434258578201622159545768958025854125083639514935619900530879766043728667250449337664381996545138052662042808053398683918478638242241745529324038167209505531681284137342138383567397407359505848469073983133425009099362526096904769825993291903935615634045283582035461789675579783383340310241254719675080593996658794737025847444665161020316461827180506671778431144799376896232947399788918904007655463423501526295857602473461565176510257223119574323646766971465003190537875112451056219266502280873356955690830108611251169722586613991775709539546686828049124100707222778835744640357429706116609504359320270440314190929006536135756023745007724743835598239794215173815861022773229805373191418046837493202023691811787349155595074304417797621300780275172282693469032892167121602970341026642816302931541522844874940542189675192183409574768402937247488544768256801553132130171433147158767403482578124768312225206025499402447284234717875543976183124831956944570890025026843549219484404164041458175604663347023533374511506330895626240819774618993388211482864782442893494382724365418238741002967016788532478993917992741849803172335111698580266464847488785264980465889934762668601773434360220325297921819167835361861141250436259611710764309937357412281955007155028419525203284562843464546870527955922454757361884592294828746999678185781488722852528871709021882478595280556710595037853477932541868485395940079758405432857054618883330874972551436808451165681994918910704853269143064588771210795899379260561063931813023866335145968708452714665061865973993974431288451228999651602758417115398203783998313838774828978962086812916502821152166226908277531928616804101500324051962823951808064774553568209509346193759181785699443421064895643828016762512294719077917713485584244529923566632390125728834968485637331829899898237347910990295581262808024432444244225520796338067244203972443380436709318653285105519281422565698588018565718406762431373654947545613718452548272884852581266246220447475308633310991087851037595278582099790102654420675057845249977495165809670694671585957040855510877155522853254060792964674033189795723347836090079468322098817939684482937921627794749700056608838636633434043742998521840286661957973300909640283104155697729668610343220656067607357487342386572664979267644980174857910957643648889771297407348490851973867358374760411817558923125024370654022896976204526593079576506211909061138347281573286560004194794565713795254273592559344225638468579737948135191490039147899271119734341877277539735914909567706009046882766929807242018038209792613040309458588109197507507619285294200354374838632414956004747387509999262332380424482112019005123914235912204514323654437589503760879753162213873724513059929054317018972843694793302956786937565440772199218043350530191738189947317946743516828357738705158210642230635658329348804678786029267525884947299809659053275001905129329434589538834927678167249633058438976556720463096558928636135523294058924880000140132274844481099962603377813003784550163760218545811223307531088327258719465123154918408704682414552571697942719146802735919919232594353134266984430489073731421941102324820458672962188923998208639592398396601100062752249530473167622363942555319221288103902497357153069435905545243281136069671636966875126940093417885310050303415717879368715923359270440233516874099350355125983907014468488352558112981872693172461885979296527441053197075914573995921819586732101615219500351955491782408007493783002636078834812475192420268652524663620855063253598013885792712726332358664176777141117581418769262920728412466710455364606020858120393809397522158589013860063053350869127418193282679105390066229004498592368403619214398255639046816147298123821566729499535758058577651124790833350249643304063091640844176957701912804425840531625130474761128783854564606170129512224641110655244614051016715432476084998866870940464480810066464002645976666404664745646999736908930627643927118090070537386801690242760944447730295034068795369196245552507790630670503494452709926819442697041140460404348562939836868569088899429670852051347598405280613645649502027558283811597678608747950684074594125091997481889349972596174912129350476789947956668737035359409036427475926614240248168034295970102229521252685946420803611861273079369038206778234695076262169292624574239807680048001515526308352178332068893261071951128011126390224861529981223399146090524435210245936262424896245191300091575030462277202621642514197521151911679719802974864234325433687429297953366945303769291951160942973192596198540661853152787181915876947695409803045895458388578159644198970048049075062614997569964202813389564957413704935501243487007312706399420203469751112704682255306393943306163966549721577718337045458277669504542342944740375443698662937956204686475559818992951887806095800555970996586416924336798179076255984379522710181553980416399822986605505547848931640127715132926053058093807731215149477331569472229390912149873476600831408719618619228243004648155166724603589536602121083704411409575920849468406972874390262150550410420434275657016036944692403796738146559480034356438833548853522850615765161521924952034168777273100659932663708992236343080402435211747997325420430197860752734125455070546178085525034830409145816801239212460329630928722419032330076677528475144633149380779363077215348714784463214271670791988408622039441542409114393508255086950608850525049739549096394737758305231243885239787559902999232563253026724177666320574600075993607676505914022982062713084618933723715803658014177479558855758002045383661203944790063039201929971254788377240289697561353040623310734680939491713308497909110006620247541493224121691947109534612524372651181352687376749340317142265900549734558817759170625924289773202858800836997796885496795354564743493513945547859012998612739167805585370489527201791237825921377394141562923562802857363112070437398355063374287524343530052241837378475272583883914382309381624965041551275152744604880085458120175350099171592326150750076804593259621770013384934430669871452199021618102632077953576589633031600027523549630403510169223752585092784660752661149185623404466215059848167448985374998091573462403025795436882823124631946416707130791812473128814780525992689112284313879062136197659105479937525042859883404186073776678668295892282744901350088831952405227594700751259281911684141340853910228786951042773529625524483783684477025289271113712554664981835011325162165537813465618957863952938554974804361470024793887916267961590367452481644658757240486438296376672945810089621606690488811233587650352391116229032080226835845176381623301170358017118021218736152023640325103934729173352386853349632418724322717825030861745011812618951791699937337781532829053804204367677721863616861857804821987001162315325946621549668478093214636129878356849598086373594270843377341712328487895632801347399349749181532955982659164121897847730717688690200044320023214092812088258401041725989332328152313313697436517563781313490702870007042195928218384113808744284522636369386158432659615157895865442364546801720170857761431514974067827895835952081280395773088650026333073768870846262673925829554186190076248335348375082066524515905361332393309355798363899809540501252751102744993634779623148499196940152334538961778104483923182279419359983679430344145681230018189225908639521064451665241982529186954461459649358420279780602915725916710475778181865866645570671206534139405845150448348377359666738222938499693201963169127518433294562899376439935658487484215490624548099709157057982698304899815165626529175819109077753315703897792871641698344959247859870500033359836640123306447930934084370388108131884258226072829646083371007424421215865478696360891020572394509076057849359406425991318411808127256122467308156808479235121459601877603903199001740042617088395501644679181822129515993830718819509145078394347836569148122370675303908957939457122716361454125749572094797450428450978232414578583200900389510712806864063052515094347392167967343961985768205052735187444038257759666993476691407652307506521389302127968942091376630255962922337230610064201466883574217100742242507875162986069741540751183655043759492624425380731078724294445231982255491898688101554260622925295713759165851191381532402754625429884562325802158877535701296127015396959141456967903791067365448847069899631113928195341268594721611741370898748739813220445707117145557654188613457579073141122002186544767349500542628597238794693623016080593114724268905471743553891749929566767213919118018091091379190888589871888124686280351312429194506101294982352604293752433331491329699711001689283698439854999100147304192761201128641565512036055561979955213426810290603282199467034465698097963663262247135582965736380237733512928988960691088711814204905832402752284758639797883443129270253063333241210525637849419266520269680721401345257531328381758258856888061329099124581451742929504878294677793040408686511804794046314371743071183767766841517721881519885890898835985786227024550255639746730686240138724328354511629674304753862069270411104961051483984452142825050553329048324240251990689276729655141862029318555544321622543107414136842427188200619004752801530760879138862650009092658703426902492273011037456126861565796648415381953915424446302166164560112378750874692587784948824992705430362912224399021920228250840205909202750564491086266593876758902974028255884455580299229946488510460875036949122308433140054113864356613719157356974008073099887355908258341513833833901695321004880197241835018357555574885600327268382426346677705139638297899520927652884844129309502044104474660466967961312901258331221001221148221814989807015776717648785530274829243257603931793067152109861626095715418159531354294310247570490932651243356404100994409616819046776686114557798874212218367006061415922661260911479377281924129210492534495992231570163547647583970582297174970661379539259043854589181169088829008804344115741984242376322550771674041095647731637066839229693310548431470530016760858438010925719254859286086466506719244857455430886270111813367846802445719389620206822553943308346205943963958923237981371218901700865613528469413637296038309539233432336545229959733841241899214834246455644729956142497030499288684488121061475442727000073283089868077107995847768536033511669195346884837965027576637534567259702920151791674484241410640470168684846224856057360344882555715214979246003499766571647371847995669449016344369813422622217597853400993639961742088815660129016162271935799178743699439268458338862239992538049553407097449191929849633125541917030292262163427143665952588685592391793750280881989629161750445867433015213864330986662386145111707518294866195227149298965508780332406253531890678683164856542109539991968834136003608673658105462713530754630507882545974516005441593156372120110926919631345592613695645418085600008536880502540937322069417429032078064578369445545564001553280577327978937027904613470636310861240336190822645832142837164979892344513454260293824257025584831460818724069539370872920678778552412980481712070203316596756734881383816724586255025040043362167150955648021323955251925321047116901454132817890000595303121882005586356463278529495007593136875048516274396334942098435424550532758637239098436066649590489057121992487389441315778429073111037595093040532144815536700053258058083974329964570922348401261722774656653525517943971346269984431683289390176757231710687462924361938300143892885205444559036578840099243357786953558160389616119041746511361881600183187276694032539913035569490494386051258309990939691240526874277305478887894503284776167408911200705257292555749565215229535799997322603992240132694414820801157889579672456927076523546976263022598393986872353925459730969787777931856086627532053074197178920682858153500071563596174296257456966746068553024084252345846259893741579917027705263746756022586433521985360882331578141648690613910439089650594036586664041342633569047830297578165321265187503410797990292338190853955335366509181034888425505398044435846224966364789541847248301003297991465599787859073315443786996958870986545604336704236692277221873278068400899799741268687963645488013033371718954066130515257056205439225635314476497378426826616264642883175710338504437402648584953123853243594912126074023261626685258783773150571882010062663000219178030257084479440086141067432553465841058901847217365255426183762460549645584662873261755697012630112506864142962267164766288935109749459411977115603639641308406038369981470810704674410391891026429547595057377452164276731176577228267005698024488784307449203722634171860080956421104871878651376179871908598137431581548521141220875044707352479723918189447191571199208387756365205830004947576964373221975524391649897113261105144367563483653887651831925557774534503070469888888431759120593420533524614815731039476259280423716297372770493516489292042905029038844061294833490389391553031854024490734701902636089741064071793605697347468534052123543126352147775815631930958903349529179014369872257794655396532262679894437098451286661463088318637281148528281382368989369552146328440443515539764238274408952405628721958711750850739564522995012021668856942121505997274970560727781595774434821114303983274725570357561333923468491528044239165447567345087161378706770111299392927412855855870090752086925196643315828327762664968725974363857533529851254622360894638004359684631286313653058858155615097273942038205212467496303612790183776680848071298891443206310817439203183276487167707078397542450793611125045218076279917373663933038173812642175912282360308339747541515811496448269655610110599485604057426621024585291094410319186445016324723248308747576340347956837816802476176696900400481875600717402103768973183895017479856541627303939547954130670027254409181193059822310425957436526638860426568094799832083020414781124835165385994593940357795535858462839411742739285539717167239327826667410848997309961097815843670525563549204996086103078288604437369314246127223072666126407676880062155896690816114717721149839267007959696052524774293672369813051708294362692263880969311645320421425560452995644229927082062819888882870787331863100000174432015977555387029703668723038233325416152218622305047658463641190124547008586188176484269526092267227579712630604042833482951281474772907513441116020204521010747513794009447818242871443638439000765176641329139831066247737427903224191877596625877057903596997039562867890340660601029511721518963044938512151936377634016071283352628367244136059733136351545968434995146760638719654041588333836992475702633035331908818587039905079636909305534292283500981073442333001621983681786438605804997841408955940657504011975499175523737319800725954482054080549483037039842125568777932561963098441363188149121837887712067206698563297940338697908672417944778529339933232073310884035588623419706210287659636710107615203125279398302039935716590347374525167881268621868544111997241592473681829828027606268581380160120894459927040598519623596345009567153711235239056080589527742504014246653416251934655707364175556447106870065264693658415262281554312614458011779069837702846106686417283024799811344117605056491977542569014172192699790442325314580431868718787762134436998814224925177077882381303446707238446808737685886665932022894518254562047970375169111015532620326155296881620144987483725752993684624381080767241071793229690515876459908113747582832109271291902689989563748962120917766989924726456003121144117456152199557887899257893975026518533587560108735015224608971853784288167470789300788750534709676612754530434183265104597370222026893716013438702794010534022282323194409308952846200279309018592918337784146151647592788928786325340710799558020671054566432922042036067373820182608414204881750179409921409684584116579774044981633967111175025710254364096742377626484437272371387164051921927246067604761008263539356774839899771945541512128874788921244042513646065503605744448508648548144747277170512523037381176345098546852154674261974488704816740114150213789401599351493758715423481759275315978913921375356319884535251127143062934184494963083479908175331532057684039895648941688222509444584235441000235948114968930428278292530897574800704966950838073029671615902827078551205285695469518650445544566497518292736614948239369036681731269983861076591149455755917909828808357163063643906689037247989300325203374989802004263598326208318038148666399257793548768867840452620215850820193804858608428796593237224442663188949029123396227289822960688799086299376047556050387227978266706943922517251548184273217224825352783242690938201585186076870762867688241196731469520776036111564314380334297299281941599797150576724140870092213331245988999652478683175363330707438016674697239795501867211545431525185646366404671951437209512081430429630943435098932718767213650075619638043679291685205386406732548141908527081621695717289538215844886723091888435223011580875734192887666852106108561804966344672266662442851241964662185301754786215855644030832806924028332950548378502063590731076028376355180487289760719759843729005263041067897644248472570211288226991627443885551795383615240489217133039090209077207338590113887767272419503093959732912931615339237155558503132429772899872241512134129645539741949132163739598627576083177929664114528370591662570456882515225445706148838604446510253990403870151685127687901382827502487375794102127464662745158676006789317258657529837594116727493722331958925477031232367801825778132908138756971456286244537548667395676887049053566763595579327972575667029641168786710546688197383067045501176354292216137972881149332054378681249194855402345229661508727290169542667107845224290529449344930345972125001572216742982028015376536048428179374517005011728963408337155294691002059031839544310732634487648035196379648019432332081113219180229471130484405248410956514506267898979116743228123018874045635054357930010807866647526688080128532585543088085805334708869653073229260629366991190271426268294890513904718325145110330869970457524680203761638183734226444829609473799703432181925081147179175373234646481276344467325992688884273802533037292405286574174363220904449771038837795930561526872672718559792485466716230117546419735319500666058720997819356784459103131947402093755437512317603126260161574837847862420319482084594637454431292838126375089651692609788173844227149319377365287311318143449079852260828968629844698386002532458635127052529794675269730180529625826304077637913878591111777767929036200422755490965879188999780334457784365727971775803159412490542462653775294811048663280498177375810732218650622204467078444886445051654290123484126287794352232946103012388655180577345794893827069811622513244968001438087837946165257061475457986866895217905703423502746097889447146635747689697238495054357946058001649933609252376640532459847721493571577526488076645224894801279557767349690591601220234154004285946460098070943632245633016730229127110740721822919107453239092425434147156626306903306501911743623745221310312023710367233679626954360081678659881265128643337329038324809005735639699950725423729368506145485173638842645235792856168651072357373688595425553392303664835990075847168146034738982449590782225820083732314128301989615637952185091106214744296009707431895518009135535401391952991876667666387911101624034291207624786178644913739166756954695982448645434144298005359944547670736506045768436126643025350392102080968978549777314379606098691414880953571215030330185741206157255057811064265189439279732171759090090984542379460710239275319673011956465663017347074148021235179644100228747606488759097640785012382005994070187559382052973302753627208401275051203796319334503200195752211372631109965105319289174635137013013303206093487395041081675444419338908897011409631095028237305139754834162243930705981695951123297566034963268392405697965058470253721829588727560845593935379112133089712081723377039466576392568755379538864661924280088365443417077184662864494166485489078097700893230580701332271077130306185324506813725453167585974925417069452019561726357794129921199762611790730646327712169126787164989788491011034906504466480657142057561744701878334975357679628083119554528671743335572174560305866676853445558250102754760972388264616651870781306269798825104693888867543646499546174959320057882587892575527412592998122984791830422223704126538736480531003003366375765444002998742589439381504765555641172159577689027362620228319163391601272055210047646436527443682990436828011646603239273896905985623396210791689169231200893739211530676282005786399522063617123591278316352470113328854855144501209258909239442601774264010695815680810500730885916817249081901197056906362535571197861853454913994492299810443046666689953107353980533559370342022916214656870624791047556388983477619593908223781308590621875906527286261793541771399974584339105422544741720415850163609085404419784023518624471553101100148400191872467900269021144496132561837439296264581637967388437221748731881353428415262307030285607618970595824873097531259749343176703780243283346559385676493623395749172276140758848196528959524380269593360961773772205124271536276582727138402628777251700476012092574542919620103619505179491155173949447080037131158548052036369676109262249922330324448997906827965173440656407676636902372677440449939965426715135064138650025330956066982166326725917925150063281557775015571257312233861567270833145987717789645749519264679955147659776839811567020313583275627761347235454467258597878227917687631519399302299320291729693306017142393656482069027978291398232363462709506236091686493124636079595576595361196622262294901108666330652283852722951644040800094467948927114063592314913854892577966015813637474740422179048493095257152174645197004347576131669386867617151892151798565906722554030837325166116529148356728952845850028004326703459587930511639693125711981888918849906530423207649231520777964317798035518126113388732526186765497023257020735209790275235345227628374981567464084633592773697542750235165902416358152100461977494453397828612457919748309243633401516536436994683609296939696327093953657916010896526080241614724404886665399731337912573113245318928719447243285964901186948983661115577356366223640629732227259675349661162282783140118982782979582916485142980379619978171358450997260107310097142367143698073048850925173143158911988037927064051179737299393992824117405743830981457389842487835044934830836836593652899623214417886910688135838990660859189844781866051584347164218465409116626516966147930333925672191573749285351724376896740567399047027271516099048750353527854258187379765050626354970337546344520829184427135034539558301841820573668495045919768379195244018354439179422563355281840927431799034564643862863700208591107035498579571189772713274288265015037065941727818395228412127006479428247243663347742796245441897550045810795521182995638038676353230667561499822155775213593082903001105090265596590301485454642650506324096826111783378121011467253781220122250626691657042517858843528836392404165145646816781753579965112456067263685822850503901139810337850494082355518338617388493923000768308481094448595125180934672436103983048852223425119269417663942924545472072023066111978287792029390106879720643797507127156168781210281228269803423927577046952426142099676622405639280307139157496935548873765501302998396968487544315104762538977065753392287461386564530959519512604039000063804882230681155225948298306300726027766686722745386332061785608305281102318178404423926552038108266910805968378585531697492576285320374051137465879853962014106866653218231793589732920419337330742424170388191321979422956277785407191293493543654807048099331176324112868398014608846676711649280805002652554143601918787292698613626518967223253055613779579204516133979938474664924427982170124461778170188959488552948134973615052079662560971187577179803463467969733015205054560005664337091469833669801841331034747908061730995687459824103561512006575414637309933411057822200969483185275088917780607729913407882212324809104233869839521071144274578361922074064531154601023941462537668073220928532005032788379484610644663171563385042240231060214734442188420769783255373309195301704854234910849481186680534190157431163721407135069377351963127641166880983359268649424468195057466403399041657125925720574284267012933362569019154474170559165274595372506579756334467786020638239812538511717156120478164420379504068838860416587470941435190900531565676534675409483142279296102588353198456006662379684182883854386766327876194346376273251800898394123011704091055024652694392885508979479017427782970625188877924277613265031782693566064448019265470651912244919487098022581888646661327733799792522989328059762270075622484019314291539476208834782256477825306594472971392479587303715684772644464553909896883370028826006953763419703329503014571416261005466797938296129300485667296131443831782471875432814618857326151979022774384478074147733365341962094729449219760294902621807225853220310732114644822003403597090227778320499276164615063510033814121165431732575128201540792278706926950429775418240790162895366166979524744029024545009309850058789185688407513305956013971480158085198549336686954185883663883670067791265321418187804705351990345666377381819369547175138924353282111444434131381271027911600611716776928950068008216257572549553026417316517181866246716575048147271177807509921391862763587140506940989484934223920282615973446071800909502110894877893084202420545864071876603662028749914620310847060973634938986680443047816437997521244509700756300454869334050673412370250247821697171927971986914573412629826961897266441962657077777539647216324940998747323682149491199309535098611127442222610807021401948209558422481623938516342913704089034948807491531327294259343506967683206793213245345250064179222100900494037396799466952770017226063824331374627698883186813124303134474050493501347921211608917829012096964051015343062567224088700485990740918180951590315039880219023392133666460339764064310120082546944238268051947763483261124887488824441243457504119006078051480603355297946231569887786134133570012234329178834815808211433013149673760009855351936503770250182364949272341700212420949755828363565084745202214178904840947488358300996592894721971594825772909974360631678405715784826201600659312263252242425649040612890138342485119732865472418575582039668563643857309233815711822008053034634087043662020160786222034345593598959985667974371742690277449715881349458097177503171620176683886454440641971085349538970819611785057372991632624846205684694688177240201909963143402676005449364225896418735080531309355832106579911980897334161193432633807055632717413279064451419184891976790369099542105761551476153789562852674431347696597605787435766540772169294420040289773509233682669410868547362819917076444611318356164715412833455674885717068259988811558116008956422723672921263642810100993119117000108102210305329436348203385273540320039668259224876031523361246493573805099584460758698834998084019360303206054117030568789515814647046927609622051091453140229767218353351106388545412327841529865651174841896869698221333720391481585228590574648795803128145389450633976366875073682555451518874060332442740102544767565113912087456819689562642572346926238462328128287730493427255258488285797118584983852985794390365450681971613822611028784680287018225230514550423043546684311041023718664758421254976276357842640069296425525538857593353265659516467937954801010929622982063808828388560788581515380971198875679600914226064085616097221728075126038647611401978010973466177130071490813023408273667406405474449554063104181069914239028816598170925252981168967726284167256623084882148949322382840575094436316205025848251937594023507349102513213335324678998386197373103197731170071662158608657515891559047057236103933491805209172073653825504226262064535138779836122845202872387889719521204496230444282537900505769943487277613700354477774468407839946604900234391956218402784737947326249583442690112910860364428843880541943808588938617829775094218682339187013938209447178019942170075305136004476985117429516616996037049718235838948957320295649451384645562676053101286441104878790477858330282474633957934021370293434309670710888957594358986306102406746905661702291478125212210247495403059740067182488551854405704935608731180434736237487327378593788768600884161407435047464175074229397426655209861794337790146370691388540423078762769426493210754368818120268328208869835040422605162942519269200360985387463853137392054113555050472562404602006115858328367941337829130520130818450385452116569424643076501899965866854026488690930931497927837497880131411144702082210113008882101028633747729483886712002572940792674829610592496162941597016791073287233425484307026323536071619598175384141686218959019306167514059185638422664038780853938130630949899776722901178430676251627909907051170381821250350188659793376004653102128477869568493229721315033940050568693435638426377463166754375697507522635042697857884648478909903935336972001927184187136853170768602622186288946115315036133825556869275305750285706347650238090704128858872780347637718670623879587804363470214754816407686280485844610342689700351893399936584578143677399447407091994703767624010958122018917239101036837953657477160171806525952131659883762734811448716228182702026502681423843518231626961854183812011143992411086759719376392885738362298277886271147199810068787899537946275335765768639043163112603561464560789054123248041042772241669154239014810833080034191489749006052636088752806083977866654034140465543586285600865384056955047275503594601691404831724531570502196466598795176818479815471251862504313874602387842233260060141483728196672487910817683590221183579600407743087712406194779360434015220504928987990817489393212354800095304200536575231390949781695637423319223171684785382527081503420866948377707772361438561583640521060396583801817751883311085256676233342054628270519530502333094060163974111662656791249505087838899539622589680208552347989702844936626901596815633419046973352062557150389589263002119709505103589961208346570852093725091513281360653172381341482274916304348369818730647399646603428695239360210217944370054693735091448921831827272047229909346235092535163678552392796349593948968650219293767566194034931395793446792282163835336332646031447511992739830369411620679870326954756389752117648249093754960419468424642775999503180262130283356603293513247911617889922797327208227525394096572797989442321366266111661837199985090155861660985991948770684806487408472417216354143210284620054602595695358288145226309051188349178666008938603156892543609951472401357124048029240129563179608587585757010541197956600805754100077137991750824180480729589372277935852948586797948242767384130948035940773050772571187186013646110059794694015183347845666900249807310125938016143393789641323772053184044409872648721049919545636587144394891888177131250837223440957036366510520392066401244048103375053999116307150417724793671829023654785425335099973161509752271963117207500908066701420141080624563491461724765261626525924648492263391290215012402817760342371275473254707657018950327333971306966803438699731910590837429049874643709968765050560362120968072633171805098218416985717821235816627936415502481039362345252685195275931351398842203488760387318759709148637685108146016941699370465890889505330157576018839482252008713055646609790977065149127768396533298681794473913028744606739576934512953527614592638276002084242275162442427214633508476398585640438113975754327619205606934767166985555116958172482920193749782331286515496010503803185127605836905611253668493021371418907650587667073196347567847238502222258632038117390802615738829061382193131506089678350678980095916111795641548912945043915844722975922550633107477576549446158016078351899088654506904209561482918087579875793795263944774126797227686677121090544853641748369933021185645396754347968407611902988544281351809142947838914228096653341883286763633568244312393727898245937776481203327849208635593094573210781720633906327557362758881883641509584421398676426468332093467172887274603092035861361646883913144195343387184678387800457804729599618997507002424801699848175109693472298065694483070518376728954331288196362310004792035695143859243222630922406345659994412208703577033232453693859982488155934564870550144456531328575093796350864480262110252288368521717071566842231217044891020438182919455027016596357150762183853124487131632504435561444610840896835635473316773135925427343914696600924858839650399490431815124301831956952185149832698729959598398821155251442065136451484404429031607321736298886357323659235948320861857820413624753370957598554907322004544045261286819807497872227998611333678493386795833048920976585297321440251755532232805971707848706898532348636842696887884252894330458158338263710548406478927305819652434331520347008289872773233412711097793137565289478699302523698798487997376658551804485217088077764898897576669399722929455190735937349324075886260259499460934070251268526704879303585002787681158313042514383900735321715236450804934514278953640654456210540044539646291046381148696970315968870007620596107681364162354983850337494709373981819783820303202249875552904833044031166664297247350529736748581202404031959357757752084558903626728436348699580507600999063304868396108111048449436501669392666338159254129304330878662375230593319547670272927048373628561549907480950666381795446012230313403491891047751903387892993088026074551326673540967502273321671732700538296298931272741673682415080894869207421914667611552464316510176726622017662255840719421349058395892225567248351272910566755666881983576623547727012063942027411970065881464041524387018721530262054839069278031392423111141203454073049623276725326455224155218092774413661309374350909117656257906758135260146784230289529781772466108090625476071917750702275385350291102638819282661842135879437186336148091209329737101657414647757559734078156576300873447747561998146713506540164706082804791924848474859851461939266810350846167530890427300933221992924343037373602559456484308005258687356339488482536190395893506354794396480306976698411638855276600504487441653481201456967211038581149711764549035230202934038490238990668790191786487437885329953115387285112194505980421722842050564473671666634411124401505789244479375277457414566000181190010041013723539381049184980028294023452451056119299854496986143562159107369000715014472893215265256129832413174561255345486515289736579779626679254518374210114631157776787987253911733955498223505020579705104063365081496973945829721572044136287886602755668733375854215334143285624643501494674881335965847227616892950490735747774902757444711446021023922311201175952813739638078136146714861525595773451352006965668833184095973186351640957353749443121495433596252706057603100290832970580576131883680887219046792721495136599207611727977654187808641531938087935974739303729006099405170774795127249069326462049828866757751069336725539243330833076428667205051378589506305704330723538791453241772850682554176363411940410571553743300464937142678109088427051019480988692767265280768435426515856138001111162881154568908835215288420505459427483118799557547958631404094901759832432961086493997703615248716911897206557329705050711896122466061243278227964188302696415774447586089144022300165305922070907254183109914810057696676429821799586963268045858744744595855512501723822272812914034776655943078304235489356308406920071268507422390534473462122238961347456101302948609453564788770885978374561803664944436865902954572427057314406304757058426664618446831511700580965088795859862345260962517250350191480017736000168192897825490905023892213470775967689187979326112983953641776678144807616777829105109678304641975420628325839410115913270842575667411478304406448341858536833016892842891420354193005806930136692773413062751421824228497535341702640994780993319360485671257443736137794516979986949891134430800265854766667445814147663559860823928697317346258514420582465089022305042882582607593798404050670081973669129887097880629843992362304487548928480090486213532291878623431787963368016994057785458623058710218869843369030861762392355475815141627573480618174077686124073128433689204994443741439404808836569128423383122762506959250395351959410619784056515102186050593617925273500541352944860503775381682168970170550036094744409902891748606472311869693266338237967587012775026004792312768957445777069580970247296973319672916822173084589722328380533875026524230264880780669558855222066896919957462957911013107285003644730053959484419917861406787768941839881769183982435730174303700740485865213973182812094957690371058504983568017864534015287970043767126264127188111493808900226340071271288760635956615849923316998050949694492950590716455114748018431027773240826202010639678412611309632201591848266235555554776052865653346235772780675520096959814673774063724294549916058278729244111214506636274538028241138884978019204233278422057619017666394175653128884178985043313413583391348406375264181036653659197277562554525585221902521222931798194185644864614058288533967293686771372925841038577015632211309828060096630807773088373478946357181330991566653238036286998759690162399317285164215031478984335760146102663811031971608937451581287371255788469040184900362229256241687215022341249644265543165517838944099872614387019224778237993328159837641114461267992316779735471306716619881998611440680692099471349895620554069617284991039972810815463614816396289525185735420283543464038524400650894995699635186901018148796635221320937532267447352096945876436262897014875735770641359422721415025256196854779850092968858248321937690816570235036887447879979681021652268408295568253283623946123170208363665335235858841253999043313924454284136376168271304758460610497586008830016019606858209149999780353865340876498083926156260350527685521531510012136330158524391125333809583267839410680968969725480941617474989573789346264299574291925898071700643458709475166821358613942133700840711602205079197469183981903156034876953418345367829325829456751737366105686617023394158502157923510836385811074468572290531173072183673334013546830205938297501950521397769561452531001631531757404124785988145912022646516069798680248408264817206598882725502346295798031103226583368037514009144733824028966165035548853529661954100894874554079171296148720783905809628137977633504537910207760927840172958023410680552118792090630279739024496731226833765347079651985323239386566251838754984587305980502832271383676712307729090827392891970592441417334867473033885824516920596983928257526596476702317355930199722554039223990575252743243438172624628634108471979988733126632864620246103993229845602574600403237111613584100967623511767733892219819469244190516980651982579248391476767416920583892342246787610871320287506969337670201012893611884838609756681546846390058966145196433809935579466377967745783870578983063852816999770346575848937687581175470694604018477466294921806313964177479495085559694155692279397172049990809319075416509775933866950437439878378190973201687861712146488611033106295154092745447382841577266732088406572120829404310885062049906789057024027651194454679753054829212489592054827299609751604544531721594388338876831915090524879093048814245837529296562084639429695700194030265620868204316879826342689223757219331526372415981013562469316922168049062893003798958246168063338564329616234536176465798200423779463534274355362247410518667631016261967497098260509701925069143777878437997005798759532867233711991842959460016789946540618512179364833058500301203656729488405486989900778579066586031565610876846638191550751061155779299843266725713768493654218373972250045117933396753552891811751632122330498207230330832877212131715927892065476375888077787714143495027995524921327815267339447902124331135208198671998519206603138246089419071824265669693157168171749497873562616579696984442852756841508497197007877340917133385343792744401105175702056411652806707431106886394775397476062200194892213070604414251457462237412123352079742666087325768406289067978867650712116307284170846136085111508224452066786756477980106486457858662236303369613561065662098485953044987537540310918281759303742930347070363031115392170840459159238963347045719628755897650416187210040425348502534943783632875499150593185714300803120629094770090775109930028737437700025174549886413041167775469298358565859591697275612573156103857621428353480737428795131895286647630095403079804062697145218570316673244140938665149879084062377983236320425621772862190334920976409431732829322018760940771104583181241634466043450267740329114616424363396365640081112448507560091084106981596725149184859700894641500277986128612279755264716043073485507254689395251899441123510932771979614479310660419637446765066849288913238153785909143021384490852869491076704293354731919485804117840258917440588880054009844755552176235031615693675180120382739436643307031391252839874817159156973777690879745556581531184942579940957107350492624832975437395734063384346207784742660869312604193136319581346302414629536977110172139972639802435986149574691304287768143324296735404302718221300672315499664462741468347067291845296800225511415294163814842569158882919074931648093928255841909628275250001931861854408677832933544378583780309120180777946535340192800686934094012810607293772018532898224513028660028629923999347042138667243492234240489593298429836046519794216380082800512011133769974927359846379393954760586557268969107094529121003216222603537664558918385212276175319739160709698344321231379001871429577009043977858847966938072438958140502164555676648415283221783186522996252482423694708343125206871248601204955406960190466322101634857190835221734100869199273426426962053561839530483249692697703669740862052457622371039829574452573655353633319014570061695762757372194382367126681430928480229827860161698721767575573141759481167387281663268607174897038449033001980407508453391017034594962593521942901625042408683073192727263281273991779481398421520746756673924952081487195454024717791766988699685760707571817783953967150001383805922879525556965468577355861265882407540383692241789779384413216872704375536455080529606224196965158927094960498015025201096717778819439333137147498610101362705267865464607567546297164282049514161770395446333205789017004690280366761281166147220131989031736544793011078265664627610563187417855900784887726426204237931616659386508128503237075280995117068471758589935072349463497992120361049481428308958094261123590746738218801144422079679555737060459053752260977645671855411541380448717940028130478974112217635813845738742437027718180693175758843894095296525321373024185278084501377665698669810161701744640221085864365201058678378151793703282628804970405083815770991129846876296756188720144028945345035362081090764914727034302638728537905520415010216492143550999263926094771176145194574844451079490414918928210618691564042292282435965479942537040158163204333192884821007583655491430438771773206314256946579573807811743462433685692455561717916975368881225844277255173768249700264016628489372348778080155860718772713627829681428948492390044283773470635051038806070575789087900867011540549736491641333523089480627293484427536055085699035343758201611704518919833980884534773607596328784135909497590596644835862979326990445932277526706513699684100835225061057007432941848623165595380527212445859818724153245527349723912836135686757474188727148393947445092568291332449502000183308278009842884906635573044416405668087762984190491002688909747848389264311891401332633546401688707896498807703003499797780016896719716126881513427909900378937390217580643622496893026445503876435947154658189160731574151775563135666394942217486589174341952543204838386181139689917758990853073779475910296798323198458164097590774613723063196346348467686407436661917554057234821891804896833360863339913344633629028538407846554998684285590725366956859894150768104148243106724426617625291437139088936075043340809848824484692694210842293575775617103548958386153298033667829141332445786091027360569780927486652062438731730568746496049805439377775261485248818329989013534520489417494105543082998750317874764848041091221495792945692995180702120343286332738427708844049888219222177254104682955615713661249056973455660386497594367142068526546214683084730837740832848618720078098458830773666323287382041353011078115185803253778628402026455275982031475560912572448357754507473644310290700353504479104670848894224862270359779238898842926391713290700195861140299530203460675642230118698330505529316045220870907464485863598848562726956114020808290301314495743613012755898083765756946276917257404993481545214222568416532639918105264444496620454242125781321578921364273144622912238616874462303429145052437718479252155700337968994977787500264591097289184949536977475984817678720568539191220445035168918934793065192017378478741017962057444830217441779615489804573895425735605044181551695987951303284415387230608851518683374509085017563001921828093017110053336582720387256710925188260879475156345621799230690458278887838358632800681058829742469120973879718745623370905791942169338400052428484878922784913238726573715355542197326422851955113924980575713087063085776015327407684114827007987493496270952318654478226051218384323094890490080907905559782169489420252288038064220008157531149173480740015523132205619058093213558968028798891107114143604035517377521085766186265872237746902230647161028999152441310030055545386483480338500168475021677659502294781105931311902039306158733416252103264979349222003075426309108966188736856433137800549503151311704333066580095031030283941692945509302628800648111345137429791609858108021315634110874129008529154453774788723397257764607350784740021569898119967194824618786007539211062210346699209075697947445933431190520122215467339669936352865777156280129598829961807351334769001173420232110336971744612831760959379600045935108825682459362537274439460311713037763950903153170092815301718180782917718301078232584283855594069952236169704277233862549960542992117891598404962954000305893312253481811369461671006954980660684636699271608736826794047183569955925327338655070801834232849085611812611120464870955774559768868637940105685973444722398964701375713459941431902269102228298081381479065975179596026194832760593564386711809293966827166479541348203692671866596044766558136874627063903210648234862181131713662221866976458684034503109319718036548566634567931589593254570462889883564309327844302093144079137826228402431864116041229253455139066635044931285124276821939950184307678626501725078615355479774674900956058982140707776984725283109765243406769118040025851267689420377544171308456645990663175517305961794502007735723972330130761243756342661349854319477911263687885480444647730912829330808709088255858027987227038847981571981545307835270985898590269722181806591227949264515336925604605272212635855826491696335468678918457977778191437067094341644248439341655314870959383748696555669862549578090047756721378410159343821518701467197993029888347541540732436614604527397910665010509149366408931191569363102574171945515594136478998406274422528170511754987438718161351150286859497890879849514496586914197696076407657942067686297187981214549828368927084486148919969902473890735348867279235108247899178670328264941185371273903623121916231337262157164668316147283165450759858102300961569704927697306009239550788960511401817653163505211585352651724148266350804774863920963568066226918113895202700842479775397457156642462745971867633759956432453765982641291379086857589742108391313378252977847116768863133676414795349018571784720976100503951432911247292234449387216404677154384020925536002854379058591685548553684407868582803252756852627889090548907068922646225080982512075751269835662363082865296461390981666119029703051234934346936667997477787968438810039269298587773974947190381238648510196917507289059963311642996627441088002133821661953410217505641425096963040195782280305006651400993396590982443447915888371347877332389348592961141719500370472520600750950193575416400917241041525419171659568248309796987700129046092801549368882620025944153926490740690829204334596519384837289233604997748163542382753585913298274850839696338871725806399655033273666038175466689344828968057023615659661584529212267514732271377553959535577520477607641895390381931221742078750289938572639341319575426071606111844427535186133904466072218438803796416486386560900923199949967584285705186453236314694029749737382435406963459150621596022986293684250240787647831901080640015208947432170638406562431773352526916363288528613180841175872480866882530530838097244968929482614523066023037826709267334759482955878806271404821431887851148579997532686332883128348022929327365430125988725859022478856847470749359684850418655469738106543038889227893147247643926802885363685190083569614931399440580084376146799331276806347421585481105653927124265238624342139120457233505524559727241861013878758791802776545412704989574257262921523432247280685362797515774057700164644925977396000994842487025590341225298396794347476218444071112206597056536466597819441743982408370404620975409213732244942193972760354623923312615157998140387113193440826302165918824721737263795155031354218492467098783701421793136210762389455386040978670200330038617148322550625379905021095178022513711494052750080402883479938437081216082762074043350738775481714829255057697353392061859046999583455652172557387695125998719053214807943552636773842622434779050590026223029830758410063191524205962237714100295301758919769970380859787895997004134872532414584551628419562940098948175099056505539903642455458662674067417140099051120474587904436001511666858970965364469507014717982853451677081916272187846562261070344869509339534533012826065237276715076152535933413356963960950615351037822470932601366555705105267972255311978035062856166184520272356666221072484816266754906215190296521801196110658416590025309743789002756983360061734713469692072395178543134932380967725481437612077022670917535175965796246022920141818251632249086650931600229086064583128647338035967940799706761975861992480627658471170738129744716575314663329853199063782358505857470014930287838822507086839020515355370067809166670692611697226976083096993524133538366027497655398103491638574714192796085843540037800647287636912817312938066617824858446570685138376452063244718272112348581015520162818887684886291082931405181690377304032398107623627292042024745997650391715830599088892867075759402938246197753378869548304706685581439970193254455289293478867434253164490263405661774963676062890791114380359034063786229019567562393826969770267805825115096372637432258649963466559908135726153473532006356286583023739674939834186614561793694798495968905479251466869913104866500530239577018827235943495259687305949380155030688181608456846871803961105720091650670542770205493540024851384976833765537496012338411653879983334643469308159436871885942970083603962844584217966491841076745753663219389656931400037081531746423863025834844844784359124533817338157247443504949474736060098955165850102922864096697585782082039960213061239076145143508525902217194101228761295271547280375920681973286706322033673453762876894426310682379758481778605153836811260133235315310469648576236188163721667671279158622081228524029941619201306800939112833355472775623251210750090632197282349117586789776907248621668309826140865965395768706209772719516008607478291442269233489474162061729254725224268509963316381094565502730363576526922613748379655787086811254922421886158581917441497218050835647043569106955151052851589124654461540322292463848285340176443366471941509589415398392138461108203726314771294077190536516954445244747322407106558564289221235058328571466436521729409929424744549028806732100970567110293811173559696108538544597902571586472648811276136653761345211008253841248028302227591970818000541090206168370518377084526422738246345275656959455921210199720624891529083260106097601724758024888374283314584977695434911629309844018229160915254610907147018885669519113991774666740774771508026621022282544598381528752805100981784277344006538083621796705136712514738645063633938049512559391680332352725887722855855329149788541375039787366411040687516843203020110819847328634022549840156047734378493863904953430336242071086408397828425403447030445125584882725678654893185660704539314234897702872691443113419260513002627206683976488859740541687552736080378974205829261677732641496746343145129641689716560340860123912132748586258319152984573193097425120854393577201189204274408939331295942643828145921323415072123938749827304102364255273784400627063728702393092548586064389954590608806040650540263230204642053525817861300976475351665370746426380169504489879583574592779257555841296395527558292511489854597664679863941102250381211268250438192703129725005272853477058810351880809939060868234249424807130211494304949467613756420013639373575145220617002483683063273575617818647650694241225348400001193018298356265710356913685957855632996009574147876334032817301570850702064567500036828844498407777687932151985556424004835101503567621638655926420140369625137038055891628669112817500345674541414487626504473346279340617550689213378638169500866369637788163790413256395639695391070385296114731654898399942818292484365148443797242957504312302398544359995216725536835484577670367032621262295202805387184951586546023299846402938759858384686992915194602123431861538073678840466625763460566682632116418925760053268963962079756870032415654136241612282159803435509366385506046237033906888790387718797054862736097084291132941180176256474505262490038867766305768658676854876071227123317560204356868119263732373116912320534197665809621429581230504565945474572078250114908815820109725024054069506150929447515209776667894564514892184093519191858120010958385553929614969607457085221132784796970660599606796629535770252619132673041350333949863191514819176423784847040987643693988077676997208310858870953316898752888345628027267407701209253305705872405004042645354471596410891352564470950186252630152358166031170799107835391329942357176607360528966280027149763439959245291372232157351602481287796813458704971380165216100088559283651251229135105064095633926894320030245938329552292412766545833909790778510946267248620969796444324305250246375562752690510859904370259768674510644347830615000267363018778668056125251849109691978765707512395954838612676605192464069923281594333939629152581735220050657873564009561594298169118727686677429893233147521901612138992292662495402962207197767644074668227461778729122422582498246150389755853635769428420403280706168900919933521727054148999076013816451852326949992839007598128882501971628538144522273424763721983476131160071942004029708503584418225096900508177044470742482812920893404146369331415515048057075095413016140255860764839216287559419448339991968556222728436470419473203692495514902034136969226093396063417297494916694486907956341493003319039588403957510477939926519553745101426776155019288980272087383382041070282916066028258627864562830653746468019239935736198270195667809379802467434699445225305301125245826272344407339740278261209468189042525196304011047241525674581566486213489861556455130728664834446764454440876232005359523838412453673478156585088221066895102847772780785394593478157003962943558007811025908614536329414137036798490760148714677375452424134962792163697741803559535093548223532437523510328310461256220445264496940149543033035584225215967761612142576863633499263940801083699477640028725874443551200559591770634785283938473310686816597429022649492945046705622271555814730284586357575921100948233231440851663392290837296642870009523837984017036358932973103338895085386525901972617753541577972062627628621569199882125473170715533757738022388094546474258679164162630706839832148677862823427242131816420684407025808504386958333565344361295885893266654568141521066702219947177746080799812396996077199795058410176210413146568655011950096412076500453880316892493485063358350467878591339122450387458106210382707495652588481485718024378794805678912780761218314217387452806722316695057729020292221460066196557555308794459369856260584628591403941014159318604782704010029773417775618174348086552672643861237406783639735597357021121491944859578669071674880150783471472697723315843499741237928222440473094921927933082392162380543709499971472783559656349966653910358468959332926478924949170977020491623385154513333304740628034012349868076676204247181125358579086724488133471544832571571471298046548907406779203190262423119824550843546428691861558920082132182250761599454403338695406410657417139572722256734605675645962968944724662488991452205237800117909651643969253115768337664236817733974012792356207225000306155764834236179953541040293949253397752450901536858949290639979558897544431025930053647763234246690488401780650881166853378615883751653606435731012465556904580853176988846044808332093229482807067203705082974468744733916693907075751518979763424329433772401560233661764648285855376405869527370149601714974834368328776924035203217381296931197621545899185543417364884135425776646024419217589637811180954626116274390313203865683284293704810732422906560970128785775418973623795659335221289679701100231135459497203612238051396169657340528922436271393083169729807688326622175125127920736537426667242086058546885724365296317771983729734839207930671944054088680914168912694124275560176155832205123434885123871557090690513264442825710755268681290621977199245443642399980160635411742051003739767622829979807864558394899712933550470945084588984912932052632744721194739589032874463446634277380850145572186077094793090727225864617236338745784515242557431442281139228843731001230475635745220069392950414313547096912540248345908513695636379021860907672432498850540645501825433091550072255836270628094494558042603294822249043118862199184316899788808595679969389901157148432395950168650732931464321984568196328333649528729456737227638953917527322600915555717178249318865183600225665401891717507825058841461692894629500694313570004916934047525757930856419506607763920379319967943952170991507045765719649008048597692738011348651573887664443689085279301112969633757276681128445649535231007423643025287924907079850074625908609880924439291260300427181623551352858170285889172798553264360663187138391502871486975195770947206105112409560817292928001152105900935814131974975581167593566866457229990823876727915608316088355903246396307685339657582666801035095291652600022863020808186703610309189285663065210334174888405029432721809894304159725478476109405601520258930672078837816211352707253043532405638923400633214977793132197429537339807826996913309621737438688721346831420692121093339810269452009462837939081784406049047688794901347156692354900910552487176768361708883514024131179530874263595396099449719616130324697500024862300703032874882042547140295737463100576581643540715559405906479107633973793352129388553518216748082453552565672219208289261430332725821664640373370138137573937054836763769069754731282173234978436367565755360059992520690021514542897887140191510068238409098392947102926086535194343474168431454902198377412469460789645881669944814534157559295400828021768946476970457654212135127039798319489367420303391240183449012761249507375392260156228718946118640084637483445244459771808304911466779102083112844701518030918527340442585332767704647787659689496333958538341875114256447096917906357770548452577851895165904429107735760056503858908948963344966286899600084692698770105227853486368775724549078515157152976244764718149344276975796430338115967692902171883824383189364476760774384610038647748813173907499676425964725773854659112640612008760501682592504579495606959811808366886304869238580645909372190081752667971511896259035833663762294752163908918561759117770367308479599986545771950243145835972714180588079423524524343902516600644012744857927868209756856320831835135759101966988005643813022349672384644663789752760248471101527191229562468694498993151883464043676272913676227233602826204547101506239560426499470593441122731199540969237110398505473701570260791332999490703193965960503805567437467690100439328138437865230653350510081577213182036773652145382112976895029319867852558819517293525561912045506801863849063832298092797090527556532999441290907766039450052767076912450784789714088655449110222123921944070810023458410969912256386857946280708652196096677380875617272830092433477750870432096207204212367902694972274372635691430450409779967664799522417918982223447250418631445267322184018718713965731857758830830297352610926303639160214373330752632114737016538457430723334044727950148206841579172370800425449406894615279627267036012108756372041044110050524784189231944332114251714895675199353325865982855593856584958803717295288090726304710282165361389662497255117750838085235825529813974362172025626636155964299970608330412700458231505859393013606258686520424813859843014927313614401578796181504640743539483768186512885713354222627526184454748237412869573018004244488014936691925801750107339203967774390598815287620973279444314284304229815451963241966150731199998883182762134727947503382226780813613915971205670174160177507277826072241791900881965624115008126021661075250125799163721892808819494762967868981644299561075958001810805872241392650785529314759057616387643177015294372083007694806560791743958285203858037614901889802891085813933745462998824605668702230020209977089733760294638547435223487297816762547747899737653904563720524019779562753644538399165745765196727733112802218626362116566287152695226144041140713489087320801188832153278588127225103047729108894863340318596646082567250381907206465208605358959906452381724681385188254281974693772129152496890535548211726932680976621369591476904293401341407321522643873713956492821617098924539351424534189394529982134435879951693748987195792113913858981111181606131381147390613110169616432546935101583488030889875295293272959521659772074430921168468942658165770163889349422289830125753071520388285780439412411054019445000064556673458034809944824531018014358924390819427168935342706042086509343461634453647944789534174684971752712983923660682941192651283887602928233243080083261046389855659424983084199943603497023158231365800471140449297773206329232426392112786237776469342006543047941677289466432673499144214348544295448965662826601417837584969250113580369073373216954057116765490483062527725328582715075245811099198834589491848940316839965496273667762619323247298640683607015978924265944027238839360973088041097454783368271593606025381037959209234836505849056592545118862062797194581150240044063904262666764189999911143248926399770801411783193252943935972376291696737995627235163740839163369638771188447396226577597343304999267884489069942933544731294650777106193457409489598598383059766574627534204720316961448152622472242233887932021663358742109664965445497620114492065320085467928552341394186101720961777045446999503072497315455682005561530494949997727024475303525129852812403044765383412522388903026950010109096146723006038646054797364811982896219848117941650582285838334665318038395405132102496642088033363273507631238080322397195396356187383661887679446309896941828590130092451178891876096971012109237750050854683325135915867350774199284050882142318563770109213385280125189276560683181222564297343150205724385226322308623552848879403948593548469992064745777526979593689801289251839631003606408917817939167659456544850123587867334726490209475213371324765655291702527996763289469295584229528051667033572299344747578627360582735797837566390185330673171171756045639625562670598018303493058411040708877858933352970391001068253949573649390324038347549364281649980931711081139006704753789240731554704055019893804995327258673008169262486377438190657135464662014726076351478908962987692666951281097592155481717880031070298490228546239907859745869613843247843806275485186851934970094420804863623830199361654439191504887858197946333600258118793477129188289485832846179199778567989576216288138872820949309138230738506106037892282719071896346504553201830231183016731317888889488055628878623911025981516602610515027949463184770100585508369899674268234081446272292575661681585365567984307676568580227941203253809105611637189420617423457339454969006456385884316544499069344940407267790626794821581701698153400431220007397471429682329420112951804491385958596708953376265362087769906890517123689266364686127506750170481893309429046757231771389849868930698590407635870782578843317097923887716887697636150068474059673874202421524004275848386742723147166513808585277988056888832235383413637763679679741519459347545387637497443727262058890860102504433072079644915126243449994425027006962815681107687757383464114044279613023195123685541031955625281865859662032954685639748639651419753660255891753158060842450619227157292464625457442437994665270076885394272972458035419425543364013110166642073281199297198420716794986902107924964809817630301776887590360558077852613394911887771316262205333085101065834080669435816203753768703036097906463695646129859215199702725562196278328893921853697625510023544377603536875912075190761289160551114509588076032518636589047605025802534638821636540783278397733110502652265656754416984184475985608868546069775419539475584869324177129781180470923332536235979569756663800413135599156238565720862276313409009480193965702557237764258242696260992655045447543578762704634505088570305404052238432511565826236622883972024673267029873487289230884515048258878164835799197946363154222168340283001510409974248871206518981097419011581181425694916747535653621496963662714775549117907365478455218136862835168253033531016421650033401113357392212565093834209888696133660339008626677584642053145757771755328793758322353385795306418021735128839890766834938310169380052939362907133637939095035842859447621905515632774295292053961809561036988668029544011964409090594282245027304267338938701274375218940992091526428172333052026435641648190662107394689764618272385399476978123108847284161936878374406371425871957714542238532468837495452316460675829311406456174102469598426070754301066426833794115975818929449205048155691665969737209580473308173649479496416228443495710086086734155517809170230620744940367668746260833745635071046126356349552948269437156874834530572262654054222019775500069632750477111754979087936239627161857208606093200486091129095554764716713151576457399277051915532476704296459572919713562588283760156876047683041993795242362619196640672273035379524009238461515010484165143332821377561803696752928899023221315617326996676754089873461490829694502946181429805285959555665267019133677256636441358896530948370154919910410176139033908408854855892553236035198807898410208652487357489878082578521883783318642341970200362006179612708252837329260602067913809660902984032042796953934400396323326821751753391966582416865790065318856519691253181365875587408762572427278061997690256291640752295598036034834559013420767916545176753181094763913668381184015842709302035131123139728938821092433034084656619245712260348511835363252626002851846088902887273740801306896115878915472277792634755126341728925002583814319318105318462779217073487564871857832236240969195947653727456629002888903884358921374605396598126438914950061794123653246748109626787086157732974017209278623273741849831026932386024235062290611030176083777655577161843048801633459457231518393441148328644712962616873083463258663953305533766374406227642341046425588194378221651426807447690043248773995502988520349623137123690274638356366457924934982816177672495121785466257975198939541298674761509286201710393011410152775631289354865998606581696862410956397481715731699326875496350696855182003824438278121821209071419048525645864204001246327537344740711520315981394541965113686123028316977827761521364446237580042390514267178319675110450379969202439984869898160654299038943871891615720556329839223194364526125654420822088458731937996868171538687159146163913353206954458741971043835472958774963735657397205546093601945061437255258397955885443664045613696362825256142035439677794258732804859870666475084050827682246814637338971421189110538229005894967414393797227251171725421093774238923410407534578033944192293539760436897143399558732729129778628796834961861827636085304729023140661645494912026847982828346017594356097623383561035005706552962952444037925170953723483587587330731868561603120731676821951445950128391855150972078438043847483536183838020503164891703362658623226418808748892529378040536519611205127494074868264188062108040903581844891878213129503525552875402697977107054920894452868921943155140843008600753531967463604984617738095191240597528820746067084792555124567088982721901338356622290383835854417823740976782416841439771371181910306141731947485584867660243242468887224315122200275687849593352224857128899922806171571753512119597327891924091310132293577426699389865282113124203261216041343894270774225753868673529075004116422154786390002670215815371993396725344474276807647218277261959003236206027466351528310329938901728971418358747844476232916738094795214237849446001655086623465927747970473836669693231724995004612901118906726023357373115513849717089344141003381479672656653986070462711341754502297696315802215476380072767316679951776528795541753153552374370393964741638634271520458318967174545910240240517560872116707671381616888080204245022219200017058535732699118193529251723002631006239928292544094604215347433513388115154217151198978479088696968604656665888345869706194562859758831619759894723777827940044652988841083051533853204919403265311823426465196451505347307176210326324907909042205337580078357131449476181510146992657594855201364021379423337007792998881842121274498700894668008517568914399884766870386159171533211381650932000113079305274843119945251894296129631493234751057661421620839315323433894352299818439364083634329587757560769936023463795725081684459078983478113060073696861346099989000044886806656029279988030280718714231840500711798664568172531816988754023504340517504965664926559240741532009855566993306717745586297032008740702690992831727902453822499282619510472483455239529702043991774142038473809200810547714480193558707349554955087839764869138892833089147826047685465806699332985711570699687355667459453887996609037566305671462652333780813673362929061995274249877714475941223858967409356687425070133134538253538317164774097521366804442473982466998737725729998957986996324255021695073248140594374560306467761237368435449766306273487848807723728787222860528378114620966934745262129536093940590330545154231442874890410100273241000054522045643579109644303532088744099080514464270508531515499958388151825288522161952757389256267432317807598152866136856888349673229447617990940799569724678226483106459753582204252522043656566136081646359905927603320765232712564760190196320536218168448206172111091851200269663196377258173302343285777261302795309943298141771326628216274370798519583352118133354429319780777072889974920966642541056488161885807361930937506852732838562947448281643817210816742020768881658054978287319155668489135504737482301360039235146263008767870839627359881276196610281799643303935678440632810458392291962899240957406357698712106498620101976041312506298758362054147031591879409977364385995511933658527243813964658163328734416757201885579317171223426048843154503776416261431405701115765263122700199866223476829550470942992124423889281339758610621347980563791687077664565185265539257678136188755578039183946821695320437105158328698541919958422674195748113333041418512518124728178986777031792091644200613992258340211559250897535204850050157968689149059408394453643890543376315386187331613833135868362912328685401373883783301846583589044149150919161579880713654582399898724484856659964632591401109289576416304406943266878109587431163525053376542360988295486828980223334935375688014450710344189756137816841991067145940979589458977349599840783930228428792779487676498819262513695590775566696916180878193769546934470044914874763314388496016359015005427831956995234077874320388300968258991947597938641388126151554657682222732165590651057089629482306691875278924592184482216428867412783681871309351588044644195967164773513261348068609064936444663323952183548262222368386982701884713715303991828635307930092792958556213968160754211541868911777812739376217180080167626883304150108809675023340984840753524901319286181566865305828876422382476814080124954018492178058407057772139295776326943691155632034007996350590469262432380320796633463079017220016371647793029688223986906486424093802830837398354203489838092716057911584498470277804859391675945605719717070755998940307834796481087867879958870899506859859097717161691760891270100186597651907772974479465648152994436432177513502958106081767353841064209547894745060232716719138531149583488652523896470170913351168820431142826111716431052005533789565872329834674692439536825705454457776978249953016645685150000712205059231830352992548693472491652800494748479033591806582439026967121100748401761417655612737999079106841897877177190084773998169931563460283101478582621716457655017239395861362965812863308937925858967289613510790740485529189284788235382080628419147172833920281480987314741057335041159999195999004962960522798503124780982128045713043775003799061473599279772466859718971487130827348435461015198758754881076099148930864649579580871659524120109625466216287647034675538920425744028175169023960862367622471804803618864937334938760033547301565375007247535937430960698307855835081815328307817816288877346477338179842827903427456613921740247291737628695891865048564346561832219502567513523490793971408116033447221560769599796838745268515576781007911414791704536842507292843208259495401739489938112548268033442911790049862171961680643011698078335104977500045936443039275951106507920960512910515471183516281386521401982936536566494310050189033016442578525993343747926173988320462440838329230945154962739572754468900937268721892356429186857057864438584636679230647932450605363310643804825952892858676370424186087736083872134924497022699554510344011794045443039981671829682956539175453818239100411268078054521208524080196489413600939966433393729778492815640992813236352081842172425256321789741628563971023237719114047760590665136485914521910884166099937198586106901166133517113921376793034924615968997433167610549374622504746177682004840329715922865973723971860439584506847384018922602287593985742860165267260787129814043528283220857105144582983336864766120940823358386441007103740391069328192816899134642251875348633842889282301709546831274483439663952386929097113592889926324281350006654168874553486955164344241708023019544083909828827163439430065689778724756152937070803972843854107896189991019955968841607065784708055825403435994422166684996447344115910688092048573277584824288112327488253343439033669682420441448765791421624667218211168071871069617238359509460103848816669172655845530672614118136595508292235840305256698024639599751774907074340916301053909353311648008397028501706012103873305053110708244247414044400608265137798264433507120953371035485314345757655111672222693102489002237575129841209064743795212768084522203990428736449596955925278191209122980095632162149169203326333368248493640799694726596790807286513884480669609344040578185585387719023795806891871962080515296975917775119493446476679535453182734654366747368901589479686554711538043036440869340877318781707626486203780220964735369738968728916598243403461608909823689679001847961949058599174725371833275418446291436831716903932686585541185011027292099352007118344136939133813312887955160696575899428351251512817732285876257596696215789904677512020621780745259458505591006540894656019771389194393560992622641378831645702009399167924457620354005090476524222780566671400142951036558277801028602477898958485238830288993957230553824050346299901203558107744797196601432471669302623966367729338159816019672861020697381453277732892657941092322401016018136260887381246312168341404303453431885526624399488282741834047331470388727741787687988539355156070199440152685204386545626306209713889686203741650347324604664691528884668711847147399275800712181240711213392847656734370994177035383686744417689558545182254936882034659952435366862389467430341182953860085458274305512360047476108831355370852825627892220117445824919895334933675471862023097557238340805751049438346145435016188530859003513298374218762666244131253560184793816136293767806235268501979501502153784878328874117110074981701713847886257008469565688012508156596523076423016529672168921052196073677873482720495311636032098679654045364355894795858626944017276249943986763777718973945759851634488360013329734087872799007293289671812694849297687145087619342577547012863992663260121858457538371297784095754969710593516776343058896308648762432407596844067023527894193335165766721410062743480585638912920200163650696959365601179488058339982164321838196535799303049292101801709534477655154680029134981633199322361044971303593757188199150085281851927214653013732526298171421890150011505808793544814889557090790799414049425552378582894569108726244028415331808953209048330361264161208109175697426657678689653167514166422600770585483829817859665596329189689661204094253132142308979082015920641520711220107928893898450879726628103931240542166205865423912612569724664856912686565241516131062440189676837862134794957940266037943983994250315389914161550563815055852101827651384099503612414947152978604613503628522132826612646098921532071124298168536543053501773685988264791817561611131324095391079384558566716779762831333489288393126552566185226299346710153350624009526427920565015335221164028120867752797970243392728430927582994084819185295451815622247550440360278698529526923295941455343812703393453152555925179652928703986892797342756808063083567368016552213610404807385183459115056842610564034172912147151798304106715814327059540482869326307478298519005812648984933305564362849112648998389333578001401013452280328843900597166968382632425470906436241093384853628667135989407386476991510502455549721901729902859369751505250963416095748519403566092901710398166861486914032474050208651090528527664155438535328448873663329597276640332220945965060208248733572853154268282187661799810538405974941435940035043996040570718656634175588127633594663320397849114600594966190186930577914716519859743867579895041314864826900722936707690901169818781017682899299405098604428550969151245869897038724469798006550605175090342199584127396407720617533984893591106325303961464771459176505306704764068052387021739525045479571890455172945544945359929785157180644079003233686964237831752590985107711264318900793869038240729302783606848086820217702166964988472511347525250013781650504962399682734842753538477538692493272408453499590217411877757787687605466625495257781083680132218383912492633024821647452397183339056068513807984956106244348550818895097037342030024894497611315053429981852156735172278188610483244866074131631914324724178980564141798071568154403545334062180629445563261477282516503038534918597363897968732044818928504305736882781093837681621226731592736872758700567293766954007984599620234116101425572517986972020148423495495873802274412470885515725207575525375092921827856093245532618531566005057735190771170863343202490347453124221091689651555944636551714512568777996603389887093372596171236183093895413311075712048511608098811028078867717156854037740939660488532664655447596470521518957038190066212427962007779426062645705617544584786317896086429422753280612517524157361518823021296222748720444124084102029436941283467951388032306349261609348743744761292481797111869864036418578414876064670562247076796577786809739798456301007124135050203846248709568589693978254830015396900268118610401453070845764759210636322556419094696233096422662132659072556450343172334120355249024493717380944414976653891553531312278563458629242650168823740153843473287907113517575739483996430303167653556385608728876465310202801421572075833887321782595591230902239212737153541426288546935508178348319540376263420549409173327875466370018559850607517541992122849884653867202860169346393670370451588412437655913822967568116471958898566897037649521426725326517534158465042242449961231963906807891687541632612070244778920777521419336677220585774271470420342690990213088580752663727351887477305328560864063972164408229721855551002469325712232873806296861334668899803378715042887944115062491862416808546486948808847621814833188894590972039575851663290974716811146314870070561084964493675687956792851524262356262667246426124317962489980713875358605155142889606871572672698360730509858219713912428525239846916898597250471504352921338894189932514246192331821978847090069912850769936986255819895438507270864923350592191278415994065528988947441076326236038289204628280665325170674712643001728604814726796122889985269928953708623618377314330906767973696403865583804381352321432660152336488952165160422345404261252972997431685978649660230103427058261452343020241800965412742110226648542982915779295570653560961058611063008871979844238550828615906706154401085669719659345241063548075926081282278170492477175324113377564273713100049373678372035610572338456415488263789654346206504915397411743595582361482772338300787244002205858853872830650273592087072528896606762745288075078049129560244789012343806155554838368598302606125463207808794347867172679175092681266128399131900982276465104423548902132831492898753492557031514595850215421281837289968146199650923114272508947276774485850715783424021497217847432572454248581132133800799627531827224736026516813948662323056913531041374725477257896376565827977865498642759583374404163142667246382179558729380895117614972561003402194054994193862946273834835020591939097021057520074167483132691072816725160782554149255288373879368056756261704396393507531015533443099790454022823532368585578452548891174431404204829346908496634558363048143239276645226652332118204274140950375746689404591369260746200745009804659611661168449032142250345971335575935215439467691412266483058907009928238244988137289958605715301393167124439677091238548220168071839683875372853168363514517929782109644889068718498131520731590357463063733887369959370351444784702710021531664949174858337135334841709476370460272818962919214665827951511566226972063763403677278737849852296078870637539636627669119596694126425839530288078106465066112896232268437923459309341673751690680974549349441447857268342230950183087432642369312628982075396254696208612731543864763827716124630985652603901717030944104268153256219567868200267454649197128790550384023727448582539139433113806087308832808528943804410843108706585861495807194580181771712490648092224941798507348735174266305100638676390706779043131725330406690048502259323739376175635540141921142491324787114047532086079947318824611240140151122941478579480411985071652872349734563187800435713020573537768327293783373598891801334330330732368893985592716684856938700363013825697678971100184636062652092705475549944219370508866776230418430283219727653407463143373511148248962248129127230179395600795328868536594687767179809110809281302165773503563344901369642339706617995375233865501694967781466593700515298406812708941490831894853453661168073101848989586915457680203438222474305221648854077966563386036001032919865018363729960726165782993843608255430936976136701190966693247026763523999973512016625552952922424182053679100279835587887382406958775329167679117695867458087205697436375927001873417484182134426632028279038955276465947179487316045839443443535457736042005867019947947914857468406742800638527118252038818461916575764934547202416210761637156561583860503379780443769978913341586302548969142723946179723721800062266133401454537795063946831264408239439865211223825319530646790569444857606412020120517913675237920819185885010244501690051883016967389304840050955603420454131487882930503448853405751136896142242028085156730089239623469860908672394060519328978197052360672410855183120882032487663098167918626442240607415709866015607752781593459202120687022058018917536813604089994883914771215514640372344295757547912296651177609770623268261707040294464033706502737382346800577498738198584856379164079706075715545056333321618806257168562682466912882109846392434056751187980986242540698089631498716210777527145257188084200117435717504510611556815405516652757745557935034198380387217110413596900366936117102974599081669960979731254232946605106795237613963135617874699983883808855149151885748811747336417903392229057423204513640539028963122633940258855576546369615490116660402051439887065218720381877442691341962341149333108004633958631108967637353350619964517712301817794660609658404563516209167261796674962943898452377390095463583800054206898135794568061468279855857910935985513726665894940603247655605069185216270246283501551920258368741750486379939067617688164595631191285744126663364676141673768401353424119089437082773974385417016254880371063112994815391776185326490724621700714586038755450993956539321273248636359658416418144624182896470983941181853687849739013958462405371804391255563710552030591235241029611950748296019043702030218999794772626887740204938508228749026664408324887241771195428903396427806101094284095856706868720204600095358650296690915733785115674613834281520356789256895865523929896533438344409608487959230566037511974825708243841052073209481410221546446251510094329825091537008914733729359720157383164067968688520125387173310052189773883091869912332479607064141460985475508068782180400150797982176256525234496228003053203566242541583297176526390195346997716774307316009361296623707520165565095341587529993475122181300565592731845476256525836432045946721459138047140714434384146320375104074858096461735813219727594053549149669019046275651215584259016505947025536360649406764039156982415090861049689772104392459166665411552992779129560703700313694243361137110156569163316908380805150975175925359527230826180387883484312135017969953539898987602123749522774358186646401772816253619296421037557791777740573240680516080173982847478608222437941853579175849580248199086987949699735923021110825010368644459555610769749276137460095792572806381626296103660319436495631537343508344532231747013755797009763600469595126956480600069713656558041256841005194163192080223961934631334884804461353717173329124805452661620930528111125463926891666349634200544764657623302163538709114624863342636843661604550689076535918996542043480270834736804729100412941380204404961391818302121587269811147189715334310382622744361977457878157337787696028481309121761449048800399155451607637823953553573288916865817834100110665784340673814657441460679056148014750662856024529480126062716528193621026209036111233403869387753997730890907129080897508101192535881602742404817555842338290974438419674497280411426278065466530090448387807963023037371982582232756853258990799727890781600973607768601777566015862179141879473912599821332074276302829453899546595229109344949563034212643598411238251933683012730954052496195528258773304430303728866200965111384108881770776033982959067309944076993605200537877016286819068902405029260118655779320856087374399747908055438577044829936545239389109711433671080132072050247896501226455355347632995863025774854267373061417759582180727242080704213732485066998418332443289138216048247012981167959486930354766528416277747238698406896458423109697518335058716361160046225360188223709277986539223764346183771656598422669123374207864742416174270498809397317331693809884232584075982640279010228257670641658811806564793946711534230414065603712469277579348829744411120131247610439671391790226939234014320266782715866531813541646466260284915630780607267925047002399368717927645091251003578856197199026836376602504250518794980556988353694435238462871710285906004067483358821652359290519220596149853310279588967370252349266255374308548637316728208891457959225505387620956458475323099732305456743359405149023906978959997855473425117817442021797507912491426463585137493328410618709219051053951905551521541108998746629112215588554646016005267215893140571140785540519346279396338463846964697550939677376867704869756897349989534979541179496226260063755851167349334367193300109435460228755825519913752466640582930390319836420814770146535774681413358864174605301630236395720010975414635898856141191920709234779892344646183593443912404802977889274516036500754469828234080510998294297953101766032965992088380216220517478502957828143211799170858744078595939241324694406477990784728849647439962787724400013102668940484251297126526307152928546903804975970534989864233428361975778493969248775224172750658307221323654320053688259298180896647088811231419517836279310728398931454276474361645246439310007008759237426109841611051251169773433506076001759066057227726758433230578847749501573655695843621913293241678786297050472726334558992685852480865486850578747981566807778425319882825939538295797911619436893910828355457975029114255398579147971407409359824609364203397707116810567862403530760346544904279463612458326002368850110689773791371798124759048287700226417243558631277027698642405069872597986255695025840483453453774872800033860058104906369321118329286744448278712730903712700834729619798813338775580792005016675246110990618261512890795343775957555176540519471464497340139253854627803495725292168539880748939429095084964550381328357676147081197291673250983861883013509245460965952077892368581235194487261148052552500759033012980188662404502892815245126121032343722428682610329048181410896907336647421717371333171526154907942776632393544397979122792746898504441347669827038844890484793120179341157398340179370747869843475622559207466634839057551010864418350479532812016429585674635927905611795652339658402533023524524242904530492424537420642069566775795440972710881368640547902034253669676129310939239668802678860616842210998088042921212134900747389436813586963728641906416961384891281598224388013781941786396528286498169468057688446650808766182778041134750687027249737169050978882285498015371035892161634644611060655355607287664613038959862591164062854364907085757311445183083783418287755571368082493630992061146801693535492274858281074266165284545131628788437206762615530131006571302070256463316827311860116041172693529680849885474487202368551913693852419744643388528458704172213952932899333121091253728477776630592852422763319585024788232403842931037134553330362962851316632790991307310292815494393487085361026428379955151630290574398499989417569016737831350478761132054435694004905491658866465141579621843051674922719033399126656121795518618316379563315791808289258861062452444849679830265483850452549362865576003512005640172750950335600290573329889622126909064129629304772150377980197004179687475199512417656404871557727266718656614560321107528501356756418024635652914018916694435087326818542062089039457773904229742321200102598725708531853151412798115098348474532255522761700954277763460022873581322040584312954781452847498844283399230106274682597981785224882866661227080365241155633761656107572215679607785920172806531860701235108762501810329469318436787905885755728734721500675887344219109601374966380538388864008222723958666390442143542809904098767699994964890213457433479727446768454930676564686645580888479571115348384007515136515367114183774317445932026976424540021503540302130809005253016974034396007816936424974955912093797760232830162488225066555271366286960962683551753565658864226121007537345294430294249530623340735942215554418711291392792372819189978228258411356127231974316544722512692492326992488136271206608598274828576542871370505847474314485430713551912007524546861587458892958212622514822395091889224283938988654679218823588474940390511577845904401845411245075247282377310261548057884505741892307644182481758255829265337142220358367098924005261114169760105969932214646385503620887154384924460165478596975022414636398006549761487499704481180427778402852965851106979179664483791180567799446801898868639744121871249446299554082728237423299263167044009554493147611365079238083743356665312081037156986738616291549194019552549432890660192710295562622733655871518275694288847763858555217171219268356346403107316145546651129058940877175182884868669214176594959450355733993342398322572327219144873977799161598756866531642646873079635528680909599387719670796517022272748034405951364477368231965244079005359749783647122349163619878033043755573159288500763509420131505540389616020474501551966187327110714359939384899479715204502748352543722907127798625520781092785901512907038782734525053312864440806492994489590059206709182845590126862469097845318318805439676214464232880572046757700756670454057753004201703444185869724914541103727556268018242078993934952296090783042585344549568573763822981109177823262493241072361434151922351796974581298037524331268327415413812116805133885075078831090505652545887995481300653654837300927830472229331423785231832805777237847117641537300789573359963033636556027211828418534726611515069729777490465858097722412464266672734615163628153806983571291650617403930737558237093979992575275806488885573651299815021405474061629366665683353581299407813394113760868904383102266255568987594305723668727480038625014757280232928467766960327451769331084515881100846441173463460592585142292894972898935751618498663749526552165855905748602628027408835455632837750382283483656376150832289068625044213032398014805794851594324373416584651233463000711341335651467561975711632399882978032524615437246833245786997198964810337335876492592071084184757958707876958634624838136511714653311635177412163719859294189810739643886338683036753526993818492770684400978286031940113881540876842460145424294610561812173784782922601595324323960460738029903804802053098939617073891352661277066162023251242123295597155653367653346257891193232645480058920239043854190156791441698242703800489116691958764701068559644274121443816126811268860811060467598595689337570332683577734244192876261366962054451309575140167486490284737359560588180485740728932242892339092594672768954568446370985083020797201532648958904060235801398121488212733927532768369093358203878757077588090534329671619249414989898107007082970163522692275481163403156371568269154920821853467338396740721981555354776017738979225279013044075905906539626758306659934197425083208637569007726291885885742266886147954460840995584735118007719659261070968696661928432776591343420200789601442711275779931047846105505065647330821768978113775938241723517641416967385501857709730175725829444379194575021667899236280865383072276769099397975689949789701270889339004829158872725752460845465853477865749818262163799488936643582944460220267800450561825077403515084154927511992164879098858385302566707253174037172234059674534071888358996091187115167923516829239592287993453473403192585016418913219929279226828036249281181619506167534699472881887716424362479569082402146066592379940990577096907320207436403348036411754881129402351253691673272372333249283139431005194468227971757424919488987500171903178111915140620494406397304943377149513674603039652888218597267754491420061137501259003460195568807050056883687301998872685922738257390718287463604317431618659627061418212927502629962964009245019957617879851207882761266194084897979575423784421220151781830458935974065174638946980152002080030709868956441688405283307543012764691718160703182892188507124918341141239146225376064312792939800538980185959716036335863981741487333518791090634020679891539734420261163633067897323805936417064166719828107865113377932162342727543387422360176096087253601691468641438815591194987881040011213743093534773656731331211804659126210469642338432707164099326583493753829362434479549330997724136457518284770586552315330202543114141096173217802246455131921620019929609634286505034078355121249953560696374287411609811628009718398012666308858534640666395325227366028917760578971166183184650242915654439787981464426261922920158814941372724857960919676024550878527103887177156572674345657911926987745912397270778552602270892888019201351444248642979950209280017585887786231949003760364256859515136827665457803364103297247221199234003810046111153556214841623976553940044142553123190891134265798595641262778407627501383088770767436525286890411461122014880753897951501345053991740685573770603872182052781903259042809323681618276702509064243191641123644690672766316266949587975199381911407761563266758823242252329510032496766571227710119885148579347054424921680278956484259572583993316285047099379581959932096522997740156637755785674638293603561497118035116416183891549199112206707076041229050260402346419192018158633600724707294079897263961213548113313351777351905764697179468743907653593660031783398033327315321997554395818053251418568798798277022920684675787564835367401729165956535260477536116138207277853420777666367156877910266267968020019537132257387299882059608110907071347680393080260548552315459407533904393601629265879019188965129436709193731051868743338300713585935615891147456635934596200487713437320214287174097978625525261686395329507248702760159814947852487350543740944229269879852909123549762049430370954406532166382306049487799090402268476768276780185082895753862531805408809822910020640993549546222398392057794943509099664968391869214205933131122362278853216249098417029262815997897877535074408951176105186733376706716826126208023414005301531446436090702678026957135420341326955161116045246561259383583384210662089435036384332028593508704851867266575583597973084669177788017233848771105461859162890333282376084124539766261995420089273170403883084636027853889217668811333524141272857930344848898009717454862244375311743981783737512276397036198489598971271908768746532420141866600658748756050424061246318991374989214012651046802596924955277725391196134526336384241949628300526245136119891817257538896815723746441329727500222498451616952312981525014310064031216595834930577750330325673973514495009825522470296424421311159494364019141611830336528327747448307100723827270678266253754445579493203005929754584573469438169575492256280378513986851266870970099227736437846956687615881586420501992453500581016267314014839988578261463824267427713910074023586500562128067658702075227015947732418673118777595316345350333751102368636322566631592710688563507363735041542904382836612301261422794792253640253453985804693345374673259228747206385304851931583564095747476505669507581288129643979927110399987646579579765150824799710860496042736614508393122263322848991293735929179949213333572971203664968827984957763375857110577368995757607177843627159099205311511678501881961298053353795040533160652188301015711092555595008224738425263629299151678128702638478793706551524072369809385421575680120415396182199799858645950984972743669538900303417636387024321703093699539313169827040730979000207859362106558926213492413918564368812103545232792520730220894634823100476033491186140786183674142469100030549963912660685111662222012727437964892279951847917502703847865076789326866859860270392192849672384267869103839890264311764888090079913761585960699056435313107139167498976056422646471701579083249038024797758860607173224271692425080689965480152066243116674377448859723477449552100709196091359838854005408354887358613829280143555889612420713525238410608929893094066599323583043667175389249602146323736604930350813258573698475224186291281634663651680037849336846922963172302164910310160083434029008620429194853519724953424348026597544900100879563240210887252249951947395160955568734914149468504922462698578673384882983328296269778615692090296223302124012547432291172606311019133909706081090224232483715777169301509770019883209761937574512454684320126280019577870718302752112741063162018316642318320214658792123210752522005318164255623208178655911087251388360553035216631763428735886379162133806623506033686325218809382238721814631808976830257697411464829389211196315119063319780798048652630661947115686885666786456112089258873814663569159442033703016723450131720094154228998491849104878746655822310137669055810264064367097067751201652385242996568688585622986672576716638117152375532662570626871136315285105209064596966179021440201389606521471266908943722815422891684291909856813469772342841795657952883014425502486830991826055647276607551483738613669947852227736320567017617423245060520926480866065115897568405559920972258120577117635111571711261851082972061887106406440072813011423671434521746790835996340787872587808959923618597314251624998136994067249282641603307778392502961749115697048030268585247509580544040293203097607031896008489964924172684081268530575342096855353837330481703437661496731610654706651352705441893275876703858634678731387846922206461548580168733339987433396874274463794437527881853797171853450994165377384524573037004503101335537366448666754911772135504807644423879397267601639962824063692768685497665004902792213417869265598330470715883122293810534767261555533203273648680560634544760489873224702078303227529960955736571970727501492964971355661527572706305251107032040506333857838602648553706966678083326977709962949481963424970130964521394518143161130079678612241395230582080773381988725579375182892793312081012505716146660778709879816326160666282234039348393361782884733600998013314513263298078484777521220378595764996194311850205066171701101753176221914878896844251685474289336563706936222116456931654389442285503203755238641986276678803209813646129182425359423944942727425019958400509762330980581560542085086411061795005829234840885003295285557885971393835065828711985376409303804031444274259649262870089405355316508040599522013938278857285047309410753504073547360813613424349096365393191462451213167014087015852930426288217317850151411512273931158726868420625821704148577946030261099451933793638546444732515788492755930292132360357597282734216832196597449571090467486696871641316982291437913255061951773487716782631101271666830112423526165041755018549272156269058152811587787415701955231109822280357689270811506941746221739889245496754354527566811368765078818047191914821309076676054404340150725130880895887808382599287748174865723679982084029287494570605499989027131049800657336127989319994345396672962557909470221736186007937653946489720966588572617952973632008587567318674809816970179548428535426249518920212048492152822661103782836256615748394766713426714809511381693073795505192061768838261307427569480151984748945284178577102101287011774704812277384699065122925186407503066762231420245374544371746241781888413251516571350288707337834190981503838403003936059721742395594993875304638347698410438103082856700326552559401900504785709078372515772472087738121159847051640123725867540618891238712245154184730311959819173154973311201120703339766816260379077880946332273744863093488621919210713398568689133713311140268979449825286827790459365133352879549998640889896134476914869432996027126453358757879778519578687758639538957233250134863664357136667228138698507509257672099216221348596309807918001138568677633371776017848694064910660101261634618125145929257982082196556762397805515728717613040753824189314677479143086952773759150313333722235648314210541376419090103272030830124492425602522384587265815754500495001901365528645533133536250847089579589797829362938541950913952082341301313297030293719877926744993956593519730993402864180383505299984979681527319378544037536646910293708896882134068289616955736801296749315135638853061169258151417554066817643942515962546064288237842608456917669953913623884038351114215583666541004548928341621522458957378463637716223312782507225656594136127126769157618529584715286987178798006726977356114448518515011248219206436274768031146955439876880488122846507362179378629462293887371050702774122333397997461531537071130165360760647401562069891522410692708452740844147033642513695649056070950937550311150309690025458457961380051114596788951192079659321201014750393973937658527759102862329395371821804755754422921010853488427836833876733805506698741198496223586568275403548173040072550861875643650017077559947996696884549661589540988953985667683208306787346289305350729896374475236832960514129845232699118163738939720246503946688068670316477645045962020214485126497058628216256648491357188524546548690847781478810300083551571085192671775997561802547057802591364400887646551509627571125851931603954172318495429994001555057979143144315761718108056450164188875708659223334038086335614651061842321987523988026328799883658008010411329091328566133428616746104162391075506954306203350585163849215060586590140147391104439744078061948628274163818724390423456523084835691315602974568434869768625039070621184807168392104012548662823719814148343753222609866210299964417189084238530991134463843125600723982760349690574145987953090763541211387474953118175899850641614842794351678390913457520096180899916978447347577938036871187379742635741920693109279455846753865835436430298982696613498279975921523278131788542594319820362132316040205434616633437038706598418796389537553196215106285015921009602306863587728063496598505706057755072262703393255958968683636168743763557515926026792740480225054526492780020343006257642048984803920990411478021409247797251953597410172315708653156707644411850106562157129401097678113007875837932968676828347338603258547511530696175088926407049447800332689594683249081241585550444464786726779352953426540428072037219589944533944395711999887588740626194271741170020787983000962431783932474796641707916410340047967499177781710303430223826556715134741199013278359535015964599858477993863007345663036268042365291869210444921260207901934774052301625523201307841813186883080895365690592636948379283422258490066979518552240839611886259062103531546308877959293706267505279637161730939842213165092130096581104619374185464553567671478701099964741522436920025141296523145057210651511816682941077885574499578809327916732947776588167286300661203972680528460038125693821747951506822108119681446422386079141908552207289305614842387736521194011716068300157662247158381330638784619498843838935800319689807393277141925441723016245784078972595593625726535998985802466431509884033444668417364308075976165920032544059004384790095838746401250693297601667574263150590745153986552075071650094302575464853533455975646415878768704017242518007009258772244830687933281751832781146563624415479105026238590601315930852185685369007752787111652161774012538281794707082898607629058000386045445968450346057102145665313045084217856183387270293342348010730330697553991015537735047162791022721569181670701617293923842795547879276374922883997364822834827815053546809557548995907119338719009452739864740620582017049546816357158665695708114623757122971006387624796097385561302177318045717450699012347829766507749838457376420719593810175118665258287137835146746620114075743522013403043230724968587407160801517743379849534761709200088065836974102127963188195092805786621182365075414667234462395603416620587468645205482010592526552390766962528457768739149363540576893432919577663604473375276408702278287583551521578726752258030741029311506614851821636720933912033265635428921578047817803908061311102305232518438899025091553793417851527770025405594484692312442394960810997090462694805435517497702747656516063932496369947045349749907964867023756722588647379623472877798888730982377095366740969304983962570577253962351518801852790396631217683482131697767457675361444025915771048068742061769065154383866508276456525373874777018991118840392936475680934801869804119928115138004401290775504624698770755855122252853046434749011554439758821307157890902412457109831475607955174697851381179007369176750267144818083034095659772101211694632450322369937719422590529934488500516947995288261484145687663013102907078788412423241872449412450388200287732180750204527981226512153653875100977012187965250352965910211954039413873708219624939338806259613712753151272424838905696314587876947478467861616392743146405916164782055691622738596875008878325690209310644637047936991194586519285430086949727752633763166364021895843620263958992977107632109871680212594810461715893877473488654483803325880641976520714573533681096479297382191688206506331152671805142752200199027795053506062108767626910330687687658625356666008529805551658820480853747773018320069469759193108594901998202723426985412903059063821053760930963465469548940858815280276597038700283041585882374419957235561940286372364852874310425639138153926441583906091473151621948820662503282387853632887199446559726538641852278129456782162980490182506238233327848080868856741739915792991416205369810025562084187691589101355102598521391748885577412304022570907094324876439438745816382098206116798777697812246495578398582863802690969303578372359547073245616676531938663813807992347172589614543478492843047541467592914617235539761534143925677894690694696966939471110425004371107596924842570709427829318008931877341161113210270209596466219902621509491968041693938968123780662175864777394890426617311341415355666193231780472851660704544643765967284172358243757480173058635087280815533558367591682396501584653052040467413880690285681366508625564465382078227544410625273476627804561097769910064584322845851756169990945649763522017441974839121113952032751172923350282341743464285954770385919784885912599593282510253714970159032520939130350627400059608729241879745861875208083937315173820613310174080643210942407057141943526997365399730258510344910074658953254196794883049532647211396288106687646104288855019714674994967423934811254240106603419041939533786051451267169838150694537593373816350019661236522636080288623268350479834301325924896180577076768608504854648585117658946826595197783284854636110690830686585697150397043143220650618386234165844504768882419659764229642170148679789405710789826353820711276248702722634107373249120520697846412971446441745516971773319355425318272776299185056296052384774801313870443321738141029690289537062704124630034032566484079282236213286757568863336198339888903880403301390323279656093336636586895402147231308005035724914746858960204293837634003159535486025311368174655583023178588568085522080595804656432671566601810539382802298481965141859482715464093450517883066618921937838995884854955699043884245904463066253569458030445136341762729530928527550234057675561408618873012607850315811530883217592460468119085880823070016235469649985447514717102755713206823097830007982025450418903596735927886250521141953589900287507636714498515953667935778968837366631276627138138216097031964738782559175274987120028677331651892425846549404399260452988761340457495266389152816446192792687782238696427052772385861260282992908074790194351792838071738068122617574761500956022555316843797277231352798720131472518759726021581203024045281752599387666649302675849126697489470139963241741945187268503180574582504613261601591912158902059314239131369838175413272791019839356325459238693995385710025654666287908128424684924234528615636327619721087595310090154323745826196948151340706751088819546200151537327783953050784149237331113462849759143033327404964766626301089472410684853119346761748930128789795942183252603982505946641397776892412794587446925764090184583944290312606778579717796699413341955697155768586857725602111771609421299680205784144917709102928787703083104234459824529527393669694003596515951424619823117613069135847077456857088735174963987043550791610106220738410170875013020875250202047430429917331676377757653690743159281150680843349221670626786215247049515055928991343751978650486489190618774966153701103762091848564870349955091705859530670716658529775036418066332773823066629244366724815063704374522813915243361392110414187581368276162934589773999421759423810965882435858632711912368731405827195780361688262433154188910434085308869705192384935322145907853992177799362863685265983583797297782334387355125113662837665758963386637604754929731501270576574514174858654024711113830288844667781690328760958574673172669752524840165798883377857511655364684765850700866371809388479314084778369418215244970497892576067027597250950596214703489114605579915756221750554119772010241779217796346050503742944195324611135339744909534189536726334297750218455263011377572163732659706164842303168982518831584898055638714056131991158961918304613383245619154484524214667684074182058574257509854528638058362831053213011836417700164010868341701374535287951101905770760518939378657489347775600482323855703326822447888917042297659946741694830454036966412744418395081191839401585685436239437335905020435753042237472950528405333924234008386601816530681730720782017760800429100219472221412063237261867610151854087061230529438103511026735464156352248053886138740885687846729762948940294894415669688212767913370728403709995041340697271001821369063318066976980928310388199501074270029744812914377920254810991240689609431715725722238767482868727378313855994606155954340874469325230816823825600401616805925805867394437286777341001325388065052453910220292769092536119223479535149615150308907508554735964469934767085886040786743198829259048213811216212924220784790327719914987201558139472727520482048576400577768105527896354878678018109911254905116795461540677945616823044042201279424216874531509190999621172532695250962854757602097328775385732952542703223121952177244873704518389019672574936174971477148630228765560970838927150776990454586680672815381690350963390787190237054606578492813576587750429221471069984132409927679798945077371025186716670130509147930078409768880890936721743241133838512885095309458833154887214184834158722080055704419008078340074952730334853617667389571744541934749366746189873054356381289384744436321743627853033541266070254772504334488509869512563573115724574457831944765319529338299714819067744360316457523660851932280578520933963663318452594416844697134051188305806509069123804587908451984960120532533423372773864445853454199933018155984129601358151464639419592518130992317483174456806144977023541430044657878005109880272816278431563449939264369472733845117881476457847167167195161866988976384606418542266992420337307347866558500818166749108659055122529972358922270722394815242707206839947757925536313670894530840441991993894035015719428007663950974698247185815475654675009172849617280707378040696359466977742474093065076493090741439252776639620583828324018751716386179143582365911935836509133555333017500889083521309239380395239717400127959474134124417385393364269080145247070034576962013222699635290614844809275840039360989970336843791500241066891839273286935064601000446706159686934169097634872457809433420914291457421741599183864032089261241577350111379393383841648594986252187905260122467630530614012881255536616103439741461521607305456184876447213522239084203831268962894371265226472931568890051186881018756792171824854720258139249182212016439236350841705828166415182617871554301115635358183108673610607198878912254075884143883659705597293055570224724348496268858377917185891702121739124838622055550465052012418784009216323566438389519168152228796203421971234577196957394546109781117696541138547551563252908045602421687168292452595611275436862998159073929404720772956804718685191408541300505575109113351505836960320713588387689085196420221846941152421216350964768372341509789905759456934764076843879814513428125525805839600803398719885197896974927070570174126759182676470299726970622430709409001924849326007558028143458555046206774423202433477973001756371647048298396523240543437864547339912825350838626328740422745170411309955836546075399478756795301758997265898780763717463097760957025203486413681817967020767698587161693394950775003981664611083268516945654579948743639492548829929052547088619400520842942354855262210086282046131995356809901857996988939468343685929482247157660964340143328186574733194980719431390424262893747718985606217568235972982602247256475742641797707261518095384928259494500615253176677482013547860205534840882785358007055421912509028551853551276987265158415085123512610359780160707454380277413009746586606802846881492187331172490496779030230442194232975811606772816347376854487867873192507532035298035912764954367603823349049416042097162054976831866371277695575651596392926048130285083168804235282617680941344735653234021397296975401060244838041497865497915538528724111458920277405047922043093558494164662241024293240719510104094397394403649381156260539332950497471114327203521081468128039993159510457756185795017133249279381331124362494870479308962450284875418850808759222890084219850823460733043589809150049602936033342956549489884266917296906853994802219044387603269057848204643867239915432578902088862380502589191492241330877435314812106449576534146463887587863617484402065813315930705145817929470041524060118282211997280470941039094534844677311901682115895484726815193552246256676676291110063170802542890327994186604142141642498414246460192730881734255947794609032255935978371342570761076093945791154503151578247502882815179373073559903269550283789377863947854920573536068172305973168238189567084878152858735688752960438478595915532974643491371204293145855046473135461004664431183250840665682452048630801257294897970452089775227997380201878494380724398638365463898932803407566320543866381373554617810556716141955137169549233589631708237451293570890949876084836674244526391486612862984308931543707032798276778493019498427613616741133160051626093463784130712453464289287120491353236587193967024728615927685841582553715654937305771503618790778222078692816892533574941944919501438529169649322083597208908101043510184226442719710018423511125281926308998249563400874330961084057078613247312001980497659414066328621902344523451740716923361509711820010632060811963676409959940490329273904195763413933462941986181364431851504029949174750796781264868532725068447408437639227515265985432422232188339458496579360644511018605644173673108904816358497296767410896740923466936161047057056433129306251873114106300518220518214371515012467894881708674744050316249306346433635096933870357019680670028347949494292767168820351703560626934870151559378151791913958191303811756491334335351356806027690867273219221223512037099148227778463707964972250479846632370448429822527728648352843483453601931121377245081946424413121489882488273880871184312773767453951350113983508936027436210438718138233721635518077832140113986010906055265178546065764886631957549087658382334992196254140047120577702301603790233084025818514192419858697093628151304843888257372532285471006561993908543348847731521920617790229235581636050667155019792464782586109388626895430588518564141566075835092610709180183768775402134331501471902414688886663986407658818681786944754809757018792131541784914678563875856984313623338754112917262575190741501765243678033238371389032567485643502739142269007588159180663465360151351815404320624421745452893323148363098326955676134444501171917583771860819526869686237365472375482141347941201514248054916100025703218669076964053319351022067726459211893373919976535393306256476026369886697735142309756710616681330011770955422532262193725425854122439515998776973860967347766053247801564218401211333524774816695072454700369487083295099083345792269546114982862704559175450840252156707906633709311655459995655020295915917162552981771720320524773772566557174267036506464358769619660736561411504587745314626644949932663454250318603038914924964030951657171979212649733751923863775830068472479440127361484653400240747532411613130142340980258425182786942322265424190110241020276419892501151100693571244517818212006769243743537936293344452351674830937224304322663185406242617753719930728509711243785474918223675398543898544216302060640685483689196387378837045848464895862419196319455864818627409844607021449145855059079066123627026570628161868648147590323736153919463296331951717866414400647294683388838348914574469381679897290921316879061770809550009333454947235456366157792169420773378217347948989847451803067108389777439266492267228848721535940068291822821740120561362093009836031877824942190732481462034414973285716428165223760322392581052730670786175393213906457744202107970731080969231834627827124615507769862541651877512149423911957645776133164929104517862718015679942593451746467254803892679460408905382187545104241920948592911477330970868129531357599381622075108603480165457658357760676253585429901450283826613715094251272520704342702313685240317043928521309102130493633308449363718137238059858865419696018260373491247346864797137204975122591418187758913095981103546859908255955137651026087283879170051292180559252697056380226205340685320028166942051276401363282992930807773481251813769237907481166124867013336284930926033414954850151862170125849450398770761622081797950666530060483049555364952713879764932480884083218291813122669237805232528714194742098385913373345971996808433624898713969127960388131282409349572276436147670171806319099406950131235228900450384302066562777810758800521625326472684946145981701738655766666386111517992570423144101901521314074803877311923480023045277529578975534689632148909578620652549551618320036597087286269396165019931329938041946485946244116402876067695060997051207257055133749088470565448217899738993469442369458273001204635900639608956832795272596878037919574176744934158429518326291413015059120793735162303229023157386698859382936208711574131116437806275074597732244972741457395891761242169905596927796016810051478206820641980742478422338777913610897745312164270781305817197833032123495180640785881617446507281260091618239141211061686418786674622091336661882646212539103191686848257940391059850851803366316048301331047688842380784986555610339088076778455052834374846642135386259453668222582968472102439212303087431433339213146374035238717953291133282325736044722613143148028111835388411803876919876438740553918522442906890465504713488373281328262090221479671048981173446740329640710463267073508631112452751448804112983852553353738883419134572357942904130249630057009012113841259175629536581074632687286640970951972733415874406370146658035217361315316292318001103131411296312479174230965418469929105812123618648454385756753677946710524757505081997191191075387672919375817382235047960326792193332863883036982352842323001430818044084951253762051913634077512323896543882247292320916364139788328675466989214914540875350506815380722391899089225983917705368124689694207053607460521943628217352929712271915134183189163506037813035070942033291102213124076102378814893700014967074049157496389648500975897706838970320456092934568192776015084786103338331738989207253712256644767210853713629767991638573430971349581800670815372894107288698048932999275246505806524401894792436904794739180999811840507283727884183190997810263081699806807018635173305120612226829885424049695373902937832112407861032176889842353989477025811562930717005255259851638500008583512462903243425751326087997735222069604278411912492361655375946186755644163659306545858640718529495730875238649831953519464852074971252337543761063626519657189587290025622579601050086718387049940479935635965779718814346492580430440223335737088516025137753415716465093054429686326331466895678966754590310196059119835794593464395369420199861829267968662472274511191098634640150278487130760895277833119364065070901868229464418137096067961918822152211290731326311989677125098552292258326286416755786924892728845089733382323121428823625747160462812518698474333128478807869117301647183699441908398630497050924070836030827928927054445776572361018660708314508048266081625558455790652541192131675941932641106675266143738055741734394240697821701576626573504847818146515680037300378546372529537843712695365474179873853639939899632092333581412988700577091756505491157395002342338537861806163693912304161326591679256204734595353290447101613214752732530494433591064332666826746664828592736615885688128985851485099808795680035326397880520448054348614278444635723750457183886015751583353430281373609249054132495705657517413464732449910300478210018722979148353241709546314568694322747029839291200459527002680787805384424642693400678194882726362299791322155393256463077874804260271015882863113723070076320783610191904237594200557805405746093486369420151513980457982007928099888238346632876573256099676424992541038431157895608373124873217360309778957631713295148715093032082274688808466006196250361489568987118763960401258636258688901254029740243566684243704845481763519375088154545684765463102154772924054760527771859193483989531401551944563071709504029450967884082792017036400883605103883655104405602077231484256592517966067003425649842968541938254948295669240944321836131719576350408623662221360187860799422470364739621857721273008937026172447050351076260259329341485213426653871759549686363533327217476296547265230709171535834787917515064570738013991444229075340031160250205452931096423001689334767324567894478343313023728009291192500041308159251325917978983748060364806876850842147782059030154127464692264311450659132635814066420029490135600267478612911221896940620349237387412964487800925874538990333906315717615254539471924711379012336459053552194733604413258097909552024375640523391819214337217571572614480308864374328083732030185163228573188047536453285158519874109098677218608006830098769234938034447633103858935407619168764606498318333534789163750388904741396520479892361517823771440302516218162809452800865068413657075441265793551990240210781292705725417793336933413151631369920694038268814014779237379209456589175608375258344371780669729402770259068266915490001788119518954401312948227594392795565020196982433730621196093376696751126821491883459104418501323719383992614410597139217133263694437932215377545220248393810866590077959049901680919047608678369009621421362053320442816425043910358140365182431692904970934818868792253634164341310277268446191635120052458512435612977381810173244871212412123849134325480535522497959019452263515438412134940560972278963085894973399236710047277374308908750449488839047287615851855645989304199496134796610916949937862698517981360829435807911136854789881378732696848071186688345831251490190327433027131552094182683139216776880195689857946878207143163354613461507288801340541682365159448024646441842948671802330972773254414437858061941666524383983309715513870307135799036451911450539549482409268370339912086349026625622373740473243616965189359061976658105871067937449542014094964853597308803415915078114712971738678209409557053170815739646066769081782152491929430418563204294360815338541888928906093492847711338059445803684038614176162437209203726289617867007216009260493326880873713674129881792735083137795711950923168154695854214356711927189342476776558162783728559522223869234544163321182204029154751209663169300554505189113442522795629448089581456059781438447477054675154879404620332247837732913935302712879929503886510304733356553977932461509996922654818919986655477189304628259980844126837038544196772537747102718544014988834593483123756407144060699366613610559256504928625517468361221587787825036997440698987701415510037228363732638907415888889759420021802953557121215098473004912414695496978458509988063019028177981979032866225914925011583321748031689349155512587158977748465281199873805696321742150911925886399441807521873707335846959530836447506333369895692145846400227200876025071808284458129572175588875224045455293141107484113308595836696628706049176639762781090050442444502989251301782803350939756933187537716551741636493663325102979318942781025187675411850312523523523530143577129375404355037609832840619359987348368759252209360422942140025000963255550603247686780061051654785153149807715790859608843116262010072137319936152316727412325602236702280744796561203411753769838342442611772738992117163084705695481911837015832536215328403926067860732203832167844385593804369777042184883264471277883507713487190031755156117507013775834117179910305653313803609079832524858548849885388939793044643927480897946599879829034173282561056241622323755611717701956054797945199738051067579870814592527687468581791462728237635458948409749709652005661161904816394941737542337022804797344092903305403378954710927983863425228958089511946160822935157321476458173760371769342456808928495806350918344037838028178301502501650848938757208281951996571173204549877771516215156756553817061162475154720087839278370331474109604646052794233331302885716995573242758084737495711318190373849930511861302977983721173716174605714266720849714159188365500770370043923549174185198620915763485074468844420772399986029890425838209294426102419917335005336160708762005080410639223590519480256697376905624052101631303018540377555042576059933066339399157690802838552096637968385464178928448429312109249429671904473064263227412396692634234405225430706923814927781317120242169931647853811271901426617494007553295939368416654093306453177627961023226932463834815218495542443138935933823808896624347008016973736085121888833532094116213766926254658493599698095636084118869092601921708420055323002532044103963090889355424975030585980978972446314219082565964268731035709222029256843613845535878596710740197339504155035526435549301649538478211813091741286775523194680442151542351832713585244620754740588057925726835040691799237807023919982797584433051151594905676971931600759382426277957890654448978762331435450064625330268412532708886689519893727408325303709747215470374005877052572509851311132926772534865363116858531423519665142295447263960630378930645180082038608573719770668350544206260062555106689600460390423929068780623011422903835450746698470499584918429462770064186210022758837249185011489009999936005202689948266575978013139788916434071775143222255203923017176140152581894686648885852499362818950120920873513861298591536924537166023125535106937232168256765799294072631409314559509928298397564872920911871631022957322342158727884914036318210811518549059268001456416932665050630686873632764551014761241366291951610865693718452850573254722951470147186128199132521668573984576905308389939599764976067115731296791945183246555060859532510274602374591160857197897656057743733548925851864317845514005760314078604891126268989864597822545453417432954596479782942798635857438122879968476728867276163792755848798721546306239356137111239310446069491011399621968068243326130571141316360217076128448718998011956458941328352696626222223553094096545874364246969032529234644894333172577262214674284157350936904988197411805746342760126496151498646146888679826792908880660509375952320581430617906156692237907145914421016043833912662298039447930840203784516662335758611739774847509267142818856148632112297936341676869187365420413281193553917773156767371295387931551308967141874445494123925436298236073905617621089568579046581103779403209817908280874002751489976197133957737472595826266966259322768885294111200707805161512459390567413355591438575714286792484570068385330813085433375584125716287251914342646334706393111852709685408345694827673631901801893991826276061662996787167024113751960909040248617187005181123210394217241401308805273612029419368839002327148335718196980508400230723623106123067400995156830379263778253470276631627971385681431574888835880337740361495706263863444603253486631502756089019849235501593754539158417631246908629326523155211078615961016327094294196599616244960038181041084044273245631137697773106202884208804109498798293150968667192119567894557283432846918157793697758770675919098838770194434011627419113135099022397493948509398492273849072832293357382919147735964576884561342131003029970672049769542829445169486225397987767011760400029429919446367682536196652519181031269252564888695943941225826235509449942082827788562183527529753748830998061050564718828176055220177191776027757340622931971356157245554786915928641483090561338650784220756313639074596747733595512913975397809794657842219506958364889631029212427090084151982152176400246212881262093541364964243152976333553088301053544612820611633788081076944669577195270546302559193918184717170811863366762426327440748789434786195107920140841802908274370807511520501501761950709973188118320078517894590715032869056259219140767799127444699390793004625986417545738540316023996972380903390769424787406301496104948276720612547590427956038663902902797506254554546626434758565637788230070824018502989673032548884173008080173440650697690990978436260944147281565399337911014873681397977378967664368776352812253012075591003777311439629098812284584739280139751050143376727697556684155023148451025206404683804282431219426571024465508551476521484844570118043830995799063119117134296061987547093183606453697770435786998541083885317631995259891916334274267346936482217850566887739421823685308848814868824020410335697031932298588457429683003922931237511315414282308411981672547358169463883915173032634961371353558717995224419580136122985884428873391894145316432078422897885409636529510834850262721657509212921507866611638131807114317574380463290778456057684858562695547141918353458166823525002851824887630311321603125504816162990055041389159847188174084092965316156035043990574658579008649637977879499007664773788512709374667035765840464982391739831333125791462156004833173903856463931073822247783326843850429919922054944983861155693594307191201413250845097207075451145191714173914598603929413204911938966198184714991268620235239136751672052754383834072548402365641546432952930273341765584592571260377085884537522696306636759919620391729057998851776535305930723893810945722036664959858984505808221908190210220987570423413182888263913956550349822971180042853936736865857347056825533576781163914948564041274172774577007658731548469505062921337598538994203889722085704308205781114999488200175180126358278261793097058502938808495730662948340381192103603533651193512188824993047663540389969389439947916634300677092633949729750684550795419364812863201031198198389085818159635277038259059818571350959741957132261964710423813583688942192207005485556118218146937556023885641484023539524819846855232663542182014184660395764925342502656400151343861412494764444516167349677842096533659816398109018298096187662561880477816371719201941808640434548762876458074715050535349939280491426867690833692399010601445876357871032147845700167227677844377880239823836119605457686777728159747573177735566397630863069342058491177431440600969602778213814724886262969610853732030620541133190934555526352062512110936194688075748823995421672944751602408658828189591746466426858826735033537764288177237617258263297898960729206951578643741076862723270141791276276558807505806845195495942999239656369370081645585565356001537803771124354553921560406758566882420521497031593918986319837454819164519910713061958121995041925784330570571060179849570363845431567432950602773313906832770459078261797709600061529397787371200495897549351906808069602438578378672933364472249352778596110440743374977491211513924658345975466199041720552743409052751772024615418469476225340939442314584939944544574484231776812605717766817198845404172587295506140472923406925680257844667595060585892683321682573566024152115562559995851225315687139713346836605795190690741784393680524042570989036241444647936613863853260627776264636710847320390688983000445954802123751272814628988354954165959895815445772139038374282737500784800229858420658861379297509127179287422186700796641114543070796298474612305216808363894036749336515738238149899053259814859465805869875441049822935212457882397857582429070900327651053111067413470414070392073799775058950102328996673427605948446247168646785332225474040755592701875510571287386171915220917367132483642230712012502935263701488282259665841686846834166504261196432937440589896156287965389503944492725716629155214380211148452089087232285502594195375500033699064127409043301705099681871454725945395197369507255428185686941693349033304292427380464732613656539282132010460113304484052351799318102218611433003033203246321243873427621745990637126269575511960269733562358334549195799842790387557952530532477609940734655413750133964114296522575677727990979967887541948147557348156118103771931140260642961057453881527406773161174945037222242798783914517569401086681896717752424865269044516176740904861248323605834705862686825494914385156284014363478916328061873413722272977050655029058943061431281168750821856886574131304165884900388379152350494938298337247105083325080698964215699032937836584707247019784604543611303808488305742817831023668065566018038924926569950341742138363268196669671061141954948945633107478200551324427535880861195947286870748138031204192312571351508568695999263628693473905381150422723361581181764615259238033539022602441004111644315397463117113983895879732933255689078975626488206786368165466313618153581534656105085202598433896107703715433387941711188715262255662203167484331498061498784562525191906995667293756500805601717670035804078562571969327428903532485167699079224803342668433218008474378173839877621168846037649721967300718679421905557133868283010625362904069260047585333865334581550376908804573308159647078673208857138828942464538610163019247152239327639351449597517698880287661093742396282693009066377657709588219040028818992521925687514739691702677849136907009091730751067643152331121526081160636272089339501077884464226988544503395775991575010371938168315676449228983607021146913420271966751227852369587811382134726691927184629580374369020399689988535774970653503860893897875179506025480693055663271788776800402095747842508796396099917585138926569629952193718262880674351949786697131019762348273750343473534875053191141966086618818149192248954767322355154171870999033829106802112805433075768202093839141097038506189373344199060727721635663646884670296161866141256875984006728335499582057329731515902081401070214181169370269344534539424082688170714800484977765478866428247997881610759912493180421865543651207754494068777326895513428321215118371077232855250991419032581573776264516935420999704539247852819790333831067790838799439974245378035368407020864905656498195014432801076392916093160695836389240765531143191944383949744243684034384891136235355005883073159888473728854922433850326807953933044864184560579411193214917572341897641566102236272621926280948910834651685240239387521335438157603377127389539249065213527399919342731594718023908148948456955222197868036302469257255015542784547336235140770382778034365476378532895256997015835017367248425964823310077750242530597461951803338743073289236341076214525200654663991343125744352445921597212003675541285741499268025280874870435928318680736692359424803264316851868609025506922583623379530452704257209533674279192639544708480287393453720798580452375582518096142471305191620407673399221408486126811191460514310071254995971470768905617947122771432037686372831642401022726054278185938512489983236085538088770168406353758867220137620111227880016324911245874090436955464253137550540149470296937960552128686198356678070549170242417448441152454270610554381747261919305930560052872488343633871524002282134332038683283160589228449314578204809506872628332259912873445240558928051750266897343600214479150055736462442426101811342441941813671114757116249683992130327076707237078826147639850032393190082735012478541913830225118915427869445218424267537318132895139300046531524778255691481038602699174395693739383483800204080958288308148317372531520076954467807761724413766717931010671604291294855405342245353564170437635163655928926222907878176456931053699237197844129942797240799682029384431748422748529761044848275142772466744545530439193643735924169196652194304257434215196915967322235944582104841724416743803013375155147682798735052204143980389959617133614434559615715045923102929318441222542972532221346123399165873249128052309839142250512194401724009227788486680657677287858039425664262072471247754927248313239976449799892967004030296850747567871992060455679003580224804316071517028273189244898359838451960253029567905972413416938329870687040791837042911987234331483848852366472680610337964255323515938687841053444956638996147355936175684592635892715034427141347013727422355758205783655526012171952842540889293495781853295321109729921105483531452111472132463963212957577988387016154976868524440720268069712006697273786147863024663812587851885026602455885033490260548868191942352118059089869799261072806191263704745220716715908771022358149994592264214586547305916917124294982294427212035921374238226260479806856185662083821802566750865004483207516611039372269252535377674247793636934148869514055385559550288204230083540925340823052504034229972595575001252766330985822646074517808997346818511612791848794100214178128916748643446092148716270913300644215662170114965616647548841645115386473837782476516981420136452849587273342542455198612991822251829818673120174200949636145810033045627436387600553925655623485622385461708089917344972548802860173172018053398461321072975345324839828791311081711693246797414094328665435378686442849042141826008474844765761936028745958853915074576505980719219415558696413788238277429578181598918577356175283632900271173858853054714923371516467660423509035318660872320597618939830317175866472055474753410340562528335311377843124089284952898661958242641033088471495086360558543758444890234725375673633085008216794017455605089584782127024734658961487686614082087062467147211399561974823739346651324865546097612523027506241973307886507323458572176416766104093888055585490237396125437601606027833944180032538028399605544777463557212688369831365848583038715942159665287825040294598726467593250912317417328685692261453755399407064566404708092730648403467152898408962403585956117308857057523164325607793124718303272551340822095048700602323791649623604974043128104327196450978048047145352064030036751414097188998859813850854346168140922025386474449586223083141276468015314179994710847763602395592251637988629371067558940202864712226847127107324302445022041189507677659559701661374849614850191256105789994245949754816458118308890473708706937250908517584572249731932830937639818070901888326837171383545978253022469663616558399546493200640572147142368849955215769192490985890666392286019055194563204592547058025881438239315242466110408382009539619969625505363041391799006841365773378764597783584941819309124555939218535826821263681023796656655308622315425619275718781538895417195930476982607629084078978285398309840605017653677246267800401542880250933226453481128276990241148099768067010676823834219483843544692852121005772648603398869418130438934749016623633106901637204145577408058875324555584999359350757916066913436091250742612400180002436381237701962758678693140626176278823261674928746242102810684084653384029667379983073565458760973714264496499928839109916805059455177135682876163458601546754587138738999248976729564225723528708908087836398430957709908573539098282577832393223300177405409101373485066390536459572946427595169847144320042627333604841430302264197580564942016530889401360505609348995909714705424254374253706536829630962498026200946188481834126803923037132005816155771179738874893742570222234517960912638259319241074764003627025253004192182874960774157021834024512292996940187557490670119068887311573395891833722892556416024498944701572374276327485066161606211522595253199556590868978980118756391289095601057251787135078538985288246255435070562931530368260692410281172345644449658406032898281061923698754429005342307498937276291919309959190425638580529380747698049664516190665478286049649168189214502340308954405169557829408481359155432861943214730937249850965917908300374963364016789485667471973228780381844776335788921213792000359813093544212308538882112826494380662359609232709568519228413074411281576315720199244962980419739484309371792917644808035212283029572350093353636734116441439063014408675934494832062177900711776177723942240334304099794808245369405610243786521573880172997285869921387928649082244726873085041138531433118544058987281710951201327229610196266471091208201758102875531399565826775159793557854323663723278398736247013516891436744362550517675114882474546761471348192412793821117636458044565751245646698797278600574250983554570197891089805919501563642388420632562841762060629398042403202186603313572460912435904938958820859970177433175688023832114344471034846367832787685283847406319136154918865469078801656615768294652358272938170986960369970349495494099421383309327103936629650163338772984855275166340361156545625823751594328313768016023067738856802889559094065629019018672064117548562326897470179947865258273148022749951364113629803395357829720109143802822300790383135690623213432253147416871890408499794955784590616888156712160763307402998046305382905866983740119754396503747584138288927914484981088255351704296050547828948634709063367032989230749002020182237111423163465702939664596615902548684176946902486727288399565237414178582005965917208028338772616678826514633283704859052997028075195622281219835073494486986820957260199842380212024745118155612888627508920568791252472921414407268132368826232774708813863094827289473890389393241584987406028337548628813860535284915287517663377856560021776038433157023397012003045228677418503563688306753650825728821090865565793551638291327670921075675998802228304950210264406970749007353667513863997058286465866876473457721631528916108269652000613857999122802287490880064855758058830074028322376684171956719352915318754043910297392914474659200232140109829282284541113958478113560517030885552183843548104299893330326984393614212473180718041720735847235273559393193500559551297999297809300540143750218428775531538339125699422600763265484829940989555605231995065849877978743694770738130964399127833687842112392212884240932815948321180040592250429980095054313177440366029330588145354741643880309089749040850688894203151752193027966397382746275731920806614039321395269337728396754193009238815521024239053802505360347948337885365458528230607175273914792132494789513729302234494373431349895623080584205194552498067696648519404566464927320872766187079016476009059103254971084531511096597114364003058797238699034986176172576152565980497233875129321587998097383442442850919468538212093594600177444032947359448808812209382140694479110159877340071967558015631748747432773755603880774677916294475789423472513767610087436402108436229537697745708711859702712634655862196239094300983944444583436546891436388014245199507718007324593472124212921387553564528073390407300028840801067186746593211654353518464363532076411960796139637706423498809352919503760518381897725053115040936171373565807940002295720532645727679041945960911309116237520378707739409968552595309845132897167025626738183815705862373044042501038056544998756897144978145104362835407555505356030574950942995017236679190062188565182075894380301848428609770673945398746535752782964317084216937149747402726282570516534421297147137451905559398856569204559522754394051744134754210490531860542622137954649042133161000736857671217470714672987561723209410029707099755234383289942031049735908116378827225063264400396592141911147499356969651402968047550254513403202496256138958297748483478986697807804234539773128911909312870762544503488115436811128993245635401090546870023342658524691391365227205763849989842002758624758735394649957525948260873532248278590125111837658767550407243377114203438153355076210016534313035117390719087230452905667672648315886320895993228528165239261131085209228061050122905131947657882084802118529968550479366188039111845313676746097746619322812184827592323652768458724929832445835018348561214934843723439568414661586215824347453349929406494625788860139692858125540201190496710827889461907130375387286630306395929179138039395944488864119152852337607206665055003341415296939112856078330234086816496601986790222653514212430722684687707720500924256949306425185322973393844357744186157630326766641296013847066452846108622707129262674512256118973214807220510622375010114347134050214713760919530374703823383698042231129257872900981113638839212106484142424808806995802018472253625816080341030502767727025006120311774339200005250341693406935589350071271457770819421427134301488254665598374949215279752351784243284577461950098559061859321947476494689574199515370993963441433517591133412698587354296611183131740393750218455718124406657068512048512529401250251705108038902300409393644393024069977757792014912751963902630955227736069234339631959659269838742035649618594381988529289828534460375177190170983931842851217394514246788346131708070175695624654639765832195366933566262978645779383890351453542895801844988020711936596155064769616759035126188905767519760064527109201462112014716653717829023850107305577533340721006850733924796595161660971898821394760678753554571416736142722998474864904143276082094780209833586589893176058637806516733373319253999602841676285470990605055914697399689729309161726824063715971912951472721953379159236761441813939299624108452926225716249270146194421983302152382969576366277775317832740982052193131705055902821003714481648006287577417514673695234304030818616525973253133195876996257431905021114969364595360018386286222360295645048457008941250656944290012442001348537834787473812288361985477300543418671550193453113300410315143034861108618239985697145286473761489102903635540462887888799617114844113825420520816044933632804659518158016986636153309196731670421179604179958848167825506168612330380843256744586958272931537974670833682661991364495176070924739301691336884577178803948939679817833629520156216437150313676929772077140162958789039816581008638199741281716526135078006935632782908655935511879686703867516782400576107205909869613663183400718475462192370843700315643152741946152611166339783786423177517114747699413134426688266271854849088592406411480341507853698824604139477371724214339387015932345072113949565709383941232909926254387175089946951927392604312805432591043208964705436376772119252694214113378975691958106542117244892696979571707073795550672008947681859608377832357638897104966029147831882118204317608245735464301091649028029808692519170575697826408373055794539605197611793093129154007486714536438314560331810879183071895620255674583841021925435074816967526301969774352646661895394242087804839125393618026224666340069797935130932087093069227040837122441981678269528895226536310615514494215302202875118436040982660412147528452518941067021496290634474220962831770026745744107731098087342236974008230645403300811035198426187400919377723843145151358450816131544492982275607054759503873527934110719459254013960554336514070713931357962778441943789679159927193014360191461374747869395631284718976955169731953392093670384151792179624077341322592021218917960831730484230374370938087864911961003966190086188692415396935190079873702599205804043549419099508480949682930675718143837745999021598038561012702119883454549533811558551423462944025211601169152943238374348790361705639289676373633396027824334161526783632207684473625460061998819822542292383435734155959478128506645000961924945261388128051986324153750841438716113728179781816998084593637558255372343435589251211259653501552456363307264272022371116963424010893802921308806390932633848111034879678880676765235440228612076178617512141882114627459014958961616638467329893574420436004991702381120625454104826343566086398134251453593373798027103809738042066423187145043978069814977622671614497294217027921107867457703490733493809663496655417825678755103695787450677786166971303923296293582908260038705724143533511509465609718348845100083025656179259963010955624679855642119168608209233328316341526685909025040381278128410201533315237351157823853770742054281133123607866925812172939906662866171744503440229462967850553063295295383155923456137150299130265216026250354615383485079302464927119902045434797442124169162423108731268095426243963189385538120391878320392649055467898351459386743666960375758528200992498048789193644798228693187802842868538452982719109322669213886499090654132380030077938852972478220588665722129057557766841036944377715355951815312773727282481697377444604107334274624237224339828633496887169698479663633743151111635229140165671599641126995714408940031428588414083461086473623304053296888959127004717823207754395061560087196607833924127477305767966949852544004031386068198570039310484145977433022970784641560262104473805496665310168082094902475271641983708951301428808363686214951282406284068635769040423308290518574024450417309139938048546701072258375523612011307965476714127587562718866773941639365405305271401764837233264756531927304851779055732058828000704612235599864874479122117466223851889134302592283434296449876153455608332238287700813635912382766489728296379971591750289785084237144857251594714203289691798730586833001458890877136845279278594800906094705167556118229929766632342306536837234260599068312734990165804484262926216978233771910558999657664554849543721806115314911861260701420609087872936423754927896731306343085092763638506695167198454777672089221448382023860806828977665081145149459773751474905038206146659010444185495558664822425185781109640501343278829695951128723425245109477996360180759676883068775896033007049141971299121585864621311319990637571791022411452631260233391109372914187991922737500986033251141552154604897750284014520826992804669839784205724748168114700312009921947263083650171829639538723830573686828056995940146976370393754595131450907630945586267738941869793754069169465149853664725248799232882130556120599916851265731027290179133626599706301250883487762718336732070484630540971419125318545375375725851388524099072995019182790545424635412283808454392123338385194810167127474896626021856986996952648725719464734191172864762576125296384485414244060151707660843708458834068686276207286664344964301379138233244324880701076450327046657543322326093249170899256508630869164384306665509641332480218030678152673816237777881951990243375900526143039088356278240561507062255269390766767226414141664388785880375232410812974680009251236998908647567361033247413457174538057197373457524882886159387413589036451844832247770655581084648282963197427239900699558186097681383664292142060483165316935652031842576374503637907171611440575912664656938950707499603624172629636179279166075759617745641381593122454186179853986161585119599528307712491031464340304356297960504259321618881126893519977231796160576936368172006551710281148024448269208047694990208540798511891414166196376735060307978056742395424356029920676515891939802623138715215770898900355996015570048206597298501913545409804035970563422627510521026254449701059387363197436668307501946406990452984037143498760335787207559250953318138663532602596611087318382334681710445085297126498888877391002458667842765856468264042733884983747912526240596191116672762882040181165505029183431625900849014766600251659314442191221850238956055298269551214921413839961309937092718908084412678006351230197181641337253206675016131484827020024563821821624505231056859305535745035342669971895800915459321346641494993726699062052311354677319700282779296137488059057317166919503256695875330046626208290897076929708782131502396878074147444801521267430298306089860408913451549538220807015797063968922170313102466615329905153296925761777581994949736051727101785099013669788709142261551589469311060631657923834254728567792801348863562767100137709985843094721288646075005545583015001429104577143371121921310610744882808026740738170427087337751925055554610690966623303889738875297600984332026973890726989102125464935152804313802941380059732831152500753093605415886277168201793109801030910279869252130108771143671333599172373324035751787219688043765489822470495427366336395046741776266401676705905442898298257494121246832491818884630779448304301415876716762832598373817725621000849221824913476270267455880647164896135753331314300579254087233251657929490063357280924894262679573679432658828584936432088809164472409826373969289069524550566065896119430503478314524611902434979495395416273214994895388801360554350726524294384847709039573772327943143365295874962785575809980849543080980540432721860095178679003254774595884160709051089209118269379387148359553225838369602247835892780970118771590025381894825926047014935758916347848372763682089527011875556090760801460966370438272977032776378421695579872604105094204311038397136191746199407775193552209358156915104559642831047544656338847106231427916263589940359269225137733663723254783100746369370963235787630386095219575319064081206815877928495701718937687561976001084121214414615657774273278453582311300783698490424916446618371601339279503035904606199506641061908868592840510566428924244519680263323277587128010288633343892113735738160803856508316672258825161193939991830531176843538532358266207807034411108021238156625858566034139733954053444775050153254391701447870903230503519154821025983035049494008186688091431456692774781068638213083954713438263561134455888442454951936609338895182169408545953931590408587955361434399475062193432661065244089368050787424681753369857744592156737043087734272207565841430010361912762358088770666366356508500207592976446687467619781044506853416947834452708105038833676580332190643339975323133798340787552058827552823907491272743572634675495433485251038729254019558281054173827732840814213026319899256953750383007784629023901462849580525291271922840607339333156735364859050469587183538314411145884258457712029724193650436517912339203993920819827979480773782649209868070525561572977687039195614906372148907971102170667008351207882795745673058927694550477906023912175498018434463939468563453886973781935182125040646484408510468037298010064341064999451267125399058376300407114551496647668779932243808578228255852784437629333785809354188953030193381410595535785942628610496311932596569993313421428560677394270761835511234686386063962676794188440182108191975832402799516748644068339114957063479771243336549272415785020669723629437715472723065876850561827912935021298493876453380368653501526520792862033268213065842422665882529089330835625969764056951166687712678267082365384415719625171965610084900051649993062048455674796989132207142145203250939690262297811494167521527602577980247048090499121368654740263549936352845441935097219319735024327938774701502326578511973015263069255100010681941545853269934881694112819003583824347993991709971629775921835972717460353896759055538296206840444766263612641182851276410836487137890871541843279027779593333237787239905059948608049902917676648408632312539618292795920161320311831713896992517933553383855993853077441901762438184232746943032873388852024629757753825551754109054806953327797002342161051303190762056838176854220535898471221971499016065133413568253493042418500851644761483796752111826245419744365196490069713008392205216365295682417570780685975345844420707059251295339447029945729641827952305413915685161621591909793270676711386787913698961514918850925592738220040569881542178422214411291995124527885057519843119932312665761808335331729602487144548222068186693966485217255957805066652284755505369222421822037250630153492779512602517910487408534431375027681667239031906114210535884501462092883429521967301460198865206537491349285471506502065231550565757547143616557237336157859053670277758426908340297681891402832015767828207361998325233419515948240145455261326850913791220990717981765038706293419191033352835587991180336777183897329473042592255164743856282884125793149760757816170254595281874019190075786395562671655572824393022708517880817848138567784617864566915155861029696104464946176677677875894062508074123508956594418468326228523652023339261749899653020798257397653572744462123951140197906172390715609565958190652879543703225550605362546915842875545801721261659903069456521287893508701455231017987810244803455319012698032229553050094903568098543192226309799763601465174101980807186543333510631751072562298885127224209088406359996371197260012320951443540116610101822533914209762103637660554061902465375543722702343143930029329149549832013727662949811952508303098399024908214901087591075303622454419699167832923762820484414032736351220322969556256386420885435893236690293578918323677237286322494770966778567568407210664149629816562285376852441498825515721947756052121299038035883119438884740900473430648033757008963228843360440333629309902237428303186146293777106763800910425675789091079403262503373042101185628483523636039882828898251798684524376353653557505145503498085293141453848917056306281525884339833975679871372980072708556836711436920602288772656286510167896614367372868205169198493369239822523317018985369939152444029545996872651241326872124001025323836462115112665623873193175892820949462772664011577780937685829908821890059448662789216624985350986921350061506247639400196555494157192302746131338331356171327981084198898706359435949122488760810810895834285182087367286712480422811878692165325654826770759425089858819078538440874471960048752882732500585132369037539467103385082109660463076564451426536833337101290002358563215652467211365525987432388586729893841005143413920457197278901931181366807783787976815998658212678824481093356168620250293729298888790918732718802540693715426833350680807466609196780235119022763449046235351374697319685470084094600776960769734641724798805584014520674269485117303616726903623542821208655625931983184253812112572790698827855010927242165531711649292367227195475087547203294462300800728617562128991603167037721694880143733745370582323384812637178906005764020580563131228736155251683817252696864617305417126655088223998982841737386658685849427339847065088883578095290913861020918842040750208796868013428655957164966870158235384521358636866672682848058609131383997565630652481663751070814436125434214139610938399060372929043797639394071501862335835084131710963869547001759002903510823904146297949074708167977673013830244277627699075162019153937156062266202036833808659452568277084933477504497295459633991915959699955037637051087676025995003106051973327538521071116083183739361457535459784544688702835039999965895219443294339206536418720644311598358054049218134929050421307833233159516391743834605060737777124525640205976998456244341421878546353570540959498851599116421727203532051622739313271423305751295439577381855575732892962441289561798162946670028037698608830109876552357962974124547305017096398305685096317210639166771366266213917883986446862901872032886903639474207177895135376604887040120241182992324736028335386754062408658359125025743589932626671652013184586950047289500266078832638536169584945850697372644184852405474344165997513389605283800649712270211497813076830419729131559183198660954302892091832426377959702934614679362805705816002330132948253251350320024107514221292901379096518087866862088296803197333836535556754125320646352461572170000372001398545688857299837272573346972322395745747485202900298299160733728111066976876082696626044174061951859741911075165165331950061497286221815554033600582225247130745634541008942386655579510713411840639953416821011930400420400915542647326760740509733826092712058472252374016261201728794762681212639027787301918404841618169949722284438182294336476185907376502359476826307510600601183292140766175800231247718808243233606509055700543305431055347206593519152943950863703002153976936825915115346053766269047081217375681803939168774173981058015917748150361077947422598280072328274692919666504306591698925073621334692119847687373890462549034704363068386597090335674598911854920659293566000212399290734982993076826115192098640200912359280295411517839139386650292087214388609142184726420286707922233441291304701849836848121844512801578132240612957744824036427612784865527134217708289200656308451938493449558640532185488923934247657163807784311080582474621369427792207454394146323380823182550173156274120712402431865633494176082919423273452896764326215631547566485628657938592654632387686259091220405479964575330736672156672376394216182136488231037885554430795059660984846918545874451836290648242362156011221758049249578153313593510744607632191928047504834902180592886881152284265058772152100520783614114430752456409370872592183320222611416039965941570674375925105080017029409933155353564337386997542214355762801098795786821283702359741829937823422637456747518317513600446379224605884676299918969863567250679325512104820425931210750526720615349068481349970981289612717359852809757065284100752244928622446641123887232492941191686703669470712919315274159656054194771596767806318016996274166062200349921796332256844619220724263156388455330065239096146848403471996120739286137017430061026401912136666373917837554869457738080130439849824871988172972358472909790674775145244797839902605317413227293853693104254648310869532837842856845995480968803124959443495310220424380420849368047628688246591609071194286019492656124130781235626984259131366334231718485860292694973986302922008364368232425959469187633598142552747354953773134247535120682439597271622087336562190156168865412220100219372976242083235326962239153847269030028590899663796051400725906038606473571206024860182453354092156218072510232845351039079132401533352350520503285461716405996643724859375877352880896426237808861131446635057768145456311331631997386994427410851981233432445080186445041536892473959196716304451719312549084689469747994511620844425423460954993417629012361407464419472550499955093080458407834665073241412999638070408666226950885106416629316068098627134270039997883949973068492845052092321170525404861789080777718378489959159288943036228110200362654806830304265433004044058984504187351892494216833344014566151625663444544779552728268870037078787661870710692687930793019493894126566075647112808780426924417183634178903239040355073548207808117735312427676327852101305138353950670612824061049730333844288916216526713620145977731176495010159283268634622441425038757805444464571590618225651425676031043801089801670554263210088029695343614980735482437082123607994332192598577870255972711838248395676321236897413334688691241307378679160637610390066269170297804977210111220760655317100422445337631380517109624846206012476520787603593185192765290068072618934831422302538748041164708929373035462585808707845655485323431194294980363777526154484273317811517871295291479017238490288421712070334558430997336151037905332282739880175681379441412509022797109277307029614927554831923703020977865848312327298887721607706458044585193011233901865677777112086266831172708621068270430617670589103119930228202631936344772648006518896391916752813869403104500831705538996148024762720912352314342892543798089088094625209944593365197621446502199962183709507198730843860698869466102828494664635685217815817183660483773740257931317798984938481890590181170539997029750091673005476880143267720859329697587947125865711537515194714038082981472249611604406636046227083180542032548734692694119547215368594845701306025300626510979742805324384427048915768782941707530553495546011454190871277550040947371351767868743841996115215064877306484296896718457782241647944065241921602293260185668563798088943992774291538400343614554720812127691527398649848600800430139832167045619889957894911580846729093104527008515018466042603543757719514373607462182742965631734053498121012292291878317284040594995159918345494801383212291727030701115898623391085540087544771826047214615304391923734133595677245650059539132121018577771013773900706924693792433208265946425048550447986184223901893328785441368159070745599807961808914482345166646972317297076054343871169601979125759047899226251866738547397443057101134369043016943503270499474759533332415789299154325862979029389664018652215372606566402101863826235179295372083633159340842391401245682013388123026551949401160086548804210262416290382517140749152601145449187630437830677373208594816233641009752522089135438917063276017923263791575112821658739191816534538502548517705434417948110731818694050989910019395657832940246177123600038239251824653510517926020150391366485149220736734582762808051742384924990487641229074520500461905283030536817304068340943346322586555531897826912911220748983801177539739334533290710728779693878203423560169938521519473514247714755700866854434781902200409384055190785065547880491904109916018860198609181231200421600144587004222950196394746814945479335157105187849200501651599676561584857166851712139122484187142605639688106115227808189247646330145634715183065245800064153464935476934941714729675960413705054366446721235235985770392161514356249424790867331973445648174579550076107087667175496147426483119609321575783869405671655449742362524540627869686656801609994029669274908034386016105288806533682084550794685813257333858108820562029013738277790520340354827056969077715998390461811871277789435125729010254133503425368268192910439108475298445049138745467242765932720239351471068050233220516871902319564602809041729982405149078936767563311451726278801093847564864391554346024330786962760876502427494038924526278479824466039479439152185520638295371061188843408871213982400763849992233756334516853024227198779385647832243258008826683038431255168497279870264769115359216315240487539136218604268283634212688325380493315528031409904455199558196299764000914494165558345447891927996972512178989985176043642643317755290462181182203457836366283108308351952700214472138909823104618577825778847947172981665819284611266813472707742353400302496309225139374771198496740533854322052928153902095870444087379071056713917338453756121787359259052582312373148427038467121474179131137644593831473652046863125304817534472435853379663615151854904650710388647501351518224897351293797094739452772014406690833602091025494216540131007578665745224308007475808450593445848141307335881561902374288921236075435286376273011168057780426897277564192860442786148186421420544490988431242964815884243559132662903543011619306278910129033728981558029852295336827298749332468721428126424212070595543857362610440717376753161597366460697814724788254833515705513264390109508384265925900126125904710804097876401586782448403261880842095077174282853574737602354955649389205083301317303376420804138538131105749304005872478726621558972052670962326583042643946626227095878799908538784526694783834671989484939573550097134257455800758550833159159052889821732287471737828011782234284940208471917168660654405487369496708070359957889001888870555279035714928378728057742788626772854695900328471394199736384120566701416747366322672952415009545577292265941205831113607344624546066030097014096765138792205579595684504727151886725837908483222844239898387981937723006096009861117309654623670260760731499448066413799996742705804139062505335111478825277037173065009918561036612341073399699477439999167153817438761276165487773046087745402257865316284657640950725991494581894381644098781665761669359081408868662335468469741750996198834863961923745064098878661411117048469378050391784363701050509923437913844680135440306919895330658154896894599188267295085411003049039608962346962537597249025706574151659550367766423217432629481498368289571833386633881642634879850440545525853583023590645926150857066887502532404894496422685419926552057891160598335343799793054803938441482405119094353916934920213404779177318435462978211560948985212708453464585609578622302092532208403617953406766575272573750684639423074824690884120089728323886667717986375108025613148957734844963963900489413321269016125532323827767207247386574238825621330429141201649281102325231253927302306857446803125493503808606814204495365848320549670904361076383243535572136698796850048754004072112485910005492767934501474843821208698286430186878017982331062443313820868819220705151434925072652329524632738617491927576347974308881827026396440141432731185195105478337966132040147648111675140017676511100691661935344758094774672848593970074163172159562438223144101908761686364655335683055800239700846871187228390458667239087585909584919909119745758087150074454081814357681910628104776434353625363409573454755628458921111135616294226553584854860218165390407236486488860079331656744711377204095825520093256654989872734569760795118668855673472024003418764844067965076072741448322520162591011471716283781755394373442209587287948000183663752445095403459264358896968302454797646621898210151080117925753631446014420077163547515431778771027327129368784439263993094566934269669368022263806609804450916963350462655007336280150972978419134922316685787347791263840256430637729261688471784200130512453858701058462875700913668565892257462472340997774574731029252929022477322608598226272418895333687874203796065558517543856429830375536984123266724529882724014225187396108524796749752683936795754286925941305920836657623564412034856178562265657923267789780209531229326955859683578885447151701036568195892158256020547435805870701895132379953940113126087836711200172134324912001381134187316981218281729126157823332424664885699329906364005094464224988041681796396940762860852439402298413415607207338676696576016224734996247903807668793872412458136558188930496126169035271684132436499977603530575811839312606483897218457135682727218150206859074997848385614739258749507859341968590185978335457276142054329365936372078841768441020773494248933788441722903427263540687311731980939650087839424700448197668558107404324372730284831647811847484634236663245611199925957423601598776689131026947603461231232139183426112216103816717556071925440789199297003374556634204488271213366081619278419584819061228348190655574858197095031428893891623747070242035974923582652866619377008311767932176123939432137624255782939598558102431534975928822701330098699923478491734792138534881294450104941495784722449595468951030726668612428777703086546665423614997082526983145924529819907738376650208244317647593908264927811763712070379511707706144350549790943997532517153249846406462992216628927417066579214680682463159124433385020848231345233217673437171486574843753910884715279420112823798592634755746736532828486191100071111134904834690274699761541226224208162075288415456188491154710446063254349783555532908788528841079767166607757494607903331927049229169211354926645113938776979050836334317372495213732049815595614866560919489570007809343117219117912506218180545624901257243755324707368354231511106132515167553468622479668024576972726749535416594564624681367042458962290464252771262049527835997651893152841752503956022664864175338451849096717716433113086353635938181742168179686124368356425141525339143718707312849456687408105072451513207924028836331253556344141731261514828008950938672135942792148387664100516778160150712304430089903960216092598910855950925606390430452226000139218030237457738528113917201417186998551483809062278384057637557729183443797266658294504500553394190052411998403982929363864352655007573423776143142443406808029845371689271878817041780153760504489624012082560954413163526048852145392140816257247933742518691764699824170187750920946226886164599938818755509220419898338262147245695679648809488322441873753686006799031248487618910057439630974314949921396427969906505207063207587734310030046264869295549310476348140293485527940428360016275565611851119678125012875368027357341004981247182677056215084766980091175354870001811245452428810137983589378935039598048138972756173698064598200270111996726187716614509718645124755888490114513495083646786354129878492131487544071208187331695424022566087785507584410075553189744125117758582403915686918978796187894757263385409930543398060625291333549467425572600041443764531379938828209055278297435089511308361992346865370454227554902036722351126260613392971718843289900077762446906075819863806018493666605677066473231795339442086445890019929083001593363235162452322355728398610842701178404442675291118943015664497409377006821060431584259327683599201520070933769758274417400610111510910443200715321021540751337136928285814097863528973720777843392051949154822812734819043316606571715778887343031652351334508532776915325841204361615113535483350049352543355244338672203873945575090935410455582362224534072514295872268435231383852954196405020575969783415428046701918335434922997317423719415098990406882514023968683062011603246667551157966066083900467520002911122041261262273986500860683850000576262825371814830754453250109189642683730455011575815237044587779477392121562796292996504479366947864199673675097845241136485816642308278334050464007074253788646933797500199660348232673030630049092715776722870314077601430546101075741016738211411814286802147325167443893386818492557947522425420639964358168102234025007910806594085599117436512476395417944326703319103382307479974668637877849730164281123833447942822297157800838667422700742522775790987681157069582477104537699841323180416264249809978149628186660960011980437585859976499105331806391199642314860368437748366656135884795627628031796677662644353786174549288373372032347990511851615551174395493705971783868014177080363461057143413083681095673239162780873117110924201819528867429664936450653774038195836442828623803475593611098141642367853309580498471042493241951200510145553300902629005747606536959719150829975892572352187105753908915084565462597692514568723668580522539936442147123720055336422374624211775825020280836791523491885362323093419571978916379711132962468409930504229934843361823856460268814676535626225936073570048932430467133882224999283764385138693551966230394617433419481473245754768622683535085930035233122457766961720915274959626953512180907786100170246298004725615607910577698534161343263896592711635285125963277994852341346135478511368679248359106641804074827082023982191376490478499723111480450500479431842718008951666243713494736096232884961652381037288051720539472171206471025471036191963365120983307116327658949103576083749372022202623577840575507451081256051813566623360639688213754324668592549266259683362772024534691553375241189016693482812164398362150419448737915252817393685733439089232731174114255162715345985144530338380555821618547823337318928937902323979907771534623766942963297437739101462475149579803553628067616528085097700714785868868223891540541352424797192053583750864565005151114127856869019319712860898826382408902983687259911382200896330604701936092005770005890230065772071957128719929883510949258617428936746634530101867483473858431157140649099956577857217680293959583263016723396302494444716623648600393299109071516228333226507907558187589160697857865620097555045684235477436276646060526131949730165388530382162002137621115153097360635054931135898857736268965713534531214156856834694940052462005158860351455684131584774066080322605945314347010513046196226724483542264592504768387842459477754037941776799581561978718392228094754996288813966395534535712673125380526086261726272051809598358902181459196890105656427655433457083503974410015235554034296429684954641194923600202610635723049697092378258770433225283547389234719013811462468890064029427939350338758861229406365881812649526896830410578778094025236710172537987683663310739937468233008025088128020652342973436663538272286334512588078119134133283939563293537366223412085921152411283423808780804330490380738486493628229419488358814426142820873528576050517248371621643075266809208495342365189501065961245019525000851281101978509829086950469321634210548043220817266889529014451573272001686151577535723169262202525521395127660626849334642078395698627570120020307365025070887400619608744219903497733700624084731803426706410227902410673706516413890312288332399742101988390682656009807773441283763286199455647530882098410774271059532688746631535937987372294495246533368533193455997735187039915395825917709037956950966870140658517427240377174972712624682565096054940589590367247991479610273474236269496381207960645550939783956809359706465829453791589623536181558780921029157982045574755489858692074158511234853267864235549317618132897256977772952515069808841422438909516383560183141592267613683247373609326041826697474157414484190004777456018158744677948721935165675495317868670553820455174320675680473826262614966958960422059462100859781923402979127615836552080697069439230596295133821809531556188654122516516716692932908350173041470939487802581930598651516531716443989823178093714037286454720926945502276175684529513887640482388896228790286091377509254305340099988883643474849049144025251079547964015461991780558581433881785397670322027356898759579830783880404326176668229930732831703182920373645323970128817325983453703321770187683743073461548972228842451486656262057657059810199582185963358288888443483620013856195429687481978328516092177902732952198531163468151353206680037147333784012251608330567145083997770344725608978964709984398762320045180841740803297089171160841316377940882355787036311367593483531986439560840480778076218104658605656793424538533419624910086436706427801193949196217939737595922351788128983324213289219251097903507726129224273366684164318757030110900020407271878442849880725222330447828367345156091282174538036860644903473309797679701674362612789986131077667600331130576283645357763486404845845289737600932602851915140428541373901733196607070054388383578458914696677956780106929924016039116825106825412494867008618401361632970551725637631976142089101995942348578389295741832069472368510359631552116721329943556405600757817185434446918214701168371629368900697247820447717321756573911507370996296940183809286759188901430677123955269516062593205972271760190236344934922720471386532056451892857056664947980425374041493078953917378415405070167264968374078076250514973038379115435967014797616852435197914772523435389905315928755059511829023005002450760019848745196408986009459956584315505060482528564187356023929137207839864511557237975391989302357207417083931595131196968987696874095722152320109004257631017170611083105913791799888527892407488076339243323815472359508771359608113908725900079802994534170765582215591102735045555365306644228292098437759858624130925309233356652440784223476611536143074284772036083697312724275860443706247964400180490779329847084302119414301835572353657016994282541613814376260520324143455628337327473329764306236971491610120099376789332552910231361684843808961910850174471954711252473981802071171313302942294840233690467401372228096083018993427261701584469974467650758977770821697302372844069316532991462642084207538118842836622657325005924380974344438580786988564351100363514163110218272222972905198683975638955323961824241449521694480972920544226975921573305265276913468490762574192779315124621762333947568565023511759969831611977956058321636757818871521240960301846295132558215586615910087015692025677024416117963473124420346721608764255375764275881721382283719294080954649256831856688953026802803214417804389815493553448055971421180273249897031481918191531690184598182483782187330021353877643411374424746705496516196825568843285983303908710721677943820283669867797860933119915680348877969182652287647814920343751746063204226029675009775018144944297275022544192976496712182429221109971790286178396833111628231097426351654082419424968169084940180159531075057827244115277486535487900415392641998198895917105587103533147105612475379226094260917611688123712198254596159053233659779254333101865869435524986871866756933584610543527329890664239200686690527989693098837950489748480296715309041186703577550654300876865586384069142903645868029536649702226298751427670825077677168906096335166570642365943711951407911040528132917863687476898830230948645011419492970120647291600292384475143836026412210528890137180131985168073978628815193490772418346939775551246745264976301175484701164298799445472713280839675571054831801877376697784059879505477079880221282870592422473938509564812770637453563168334868688497297314289318609053574876376038337175418502103297839620229337412291197699638813018309571563299008072204842265806760454179768641897282235806368786028430545569829562394100003277999258034094518832645178108613105585463612584063052380772409348702218725897335962461574082922696436797704884023170929885743319868086292311122945706787278515658859620151481917395577625900363451205164092126019099027847787994592952295840333077947097187275348587758293092944525326219624077803165499470844278020488632413075430335350290739063888820779423994366466023631562812026927027375815747099935949787288690172514224773908054178043467638112192977985285020010952410107582636399435243030432535586184560077933085433492215118860996995399414017332126001159170781196846695987419797207611846644088500691740517064183874706620362473905829927498585391304824916332429607614905149601330874448654395413275012368940239952689874465210520904435968065416201746546432967210321755380137583625606606354892566327171469616486020277301672761716349949525235761936247660516700537962852352084602718080580687087095893416811918445033345694810784737401472015442317979263587254518034890307375756190659624131355917362768145034996877753400438627399607800820826001310181011593665198674393304115347110836885521116440538317883165170987396814269419342107471971577755386209470997398858845413332892886911950540647958026466868275898756552475448604206429644701457538656213790804707069515037192699897358883062622032233095846855569245845300665570156858262985655167411661826725957808245653586974956117687066649733199613069850833158191425985747591527017944825500923653757455224710355061774001117008570178939662713925442043775838654742080252928734223620583964126963612234301017868861013979913754295952117006707096101320244203813518236345865180879544643088292075905858345819962980118891445189796720408707452202030071115911079636550880191199787319768849983743297269831263639266500027009977941743604801352758405336335262056151210635077609499334460664948039772071666372061612578942560950793026928411417458546302862837941372580566477402338239291365048775831185615579223953770314097320042483036547391841657858943731148190904792779805373774487912107504493071829210558009159050336607676137783549726526853844402665995940692328519127736377637964716165119293964117973749766034170847183135666836158472104507267910558315351820774316804246238894633972508718065187290219781315874141520356270929597575465064991027608541917044278532049386480501234521041634163132874779156619264764197042943118273967258812631110494211687330506668893555537106811331101149050429191658279068741707305575257173031165861041556187363839388248465679040766067022699809544901358807698962182879335249950866836960118678628915208208472693979611856994399189915548272690971224960037581566282342521543317824468994089088226284066647904027135377442215756437149316463733633443116122377620651408456750795711641620038946262893524438817970482184911631323218889642577473417642337584978879503840025725051871467411041732985447383671345387620486733961243173345073861283673741769633833576389069715212129118451224766213732061933266532926738154196105397456240998029391874703534346517871674902573697240250773198629523129957482941640418232626704398907296882887272890957964757875367653116388063428887010621359582774260116752018212627562030501188832690435871309930910019121182509596609281790059971049471042953690831786103070364935533389716179104593134639282914370882412917778877756645523179915712729352235408607129692509406651598746028438588887487952564155688773483080817239124262323691748666759586420337020954210323142794085805513235487601249656935450017161530870501793229813479921344826212283140208247590450333485966385675693841374056720760146742840909453533319387268041230428916271251441747903624652905513312717356915586005752593524922664616572536655314973177289601839009527292024124567819335265599938067733775674387011599068672849028466129211891222148281167626998099290541332991756965314195835108045702185409272915445356985046830413453689457599681950816269048815874544782426214867007260030165501505078101266423963563036752379060037949106090888455538531120429594250022610973669714205858392829069023444298621991672972802331038332047940490621893519923440664641704663741002698806261654002858992133346821862284714423847055182319763514980762294262707706963078721851207953351614099948129838209040513428902276956935891456527549660789408089281752233731500498946272852951001045496395714385108859890053980666017951396521389497063757779256998494451550532744567974857166970415282970842392914199348494359539956007308430953330878895896032211093977217759157346848810579116918274551456671306330632523114784696553257610930838087591783125924297125393713450273927785769564164826008786893017399541648074652693987930283557302358897772915886744765320190223800166428769955125707271625813458095028980935391384730957929670305695609208196336060132230731683825415717058889163715625085204919789438696974327858432444980209855029565878222324880568932725720947667913505047470122397513706758560902698121549482994377003204515437397174340914941755647524177632380214159454388653493795448738113860988434288397126058795131977397125773799534342092762881201974116692495420374481978546091236667794787974364033887434038678746261475273653676759770105740079278055432120843970112851292932563084216649495704386638606869828300977327891237422291077980241735979468364601411913314907192073322390893994157058564186546974381588813506250290499569551399686540305270554587792239458858049898641282621235168069204571189610802609558145982025896224565717959741179647557732689643524562257429325193363812600205993161698291536395233685889269941327300147426383918241563665572606940941039834559856840016126579091102867604564794705406118985223351871073119268522651611239942839362462605043326838323018627532660064249748135856478718296527637963778210140676505027584151131236857020401446242819698589724596103114747257785912883966794389084060570025452192632906123769611183908144910293236560066694057125430945969393760100218999499659902766184711524248760665376157446869374870673016251194637967381325455572637379307915394753963273070899484204173438419650177520953192935101313359529248348297010871830386570643093514642933710658518474273387280566984116629365590653742167556371002006102753419570054625956422964114855159416799005990899382070680076174802045250428187112670134849104599401300921924954852398485378132319024195209476614069177297697796422554809450891177006492771471962829657558238430308233994959894545437475305114749240220095493965592895023498190887939223100057824393171975123411613809503357207943054920564512861279499774695552109549573858218667125907527956044214586756360802657878656425403586093247784198269203804244529435328746211314583243264761247838581030131658449938766249991851181084231372347605484268436229062249823083225704737870931032485577182196167433279682428465214440500389026174451856173152659300233640462342733786133408045900565671797083944985891287786058187051388252226722817382862713474281925925244811495111092714136825565086096616138379940466227813510783772750311165765994454517393753267455078867972853367720173414029024276135181893991180075414307656407019483409359178855549593954971165759006774486156941792072063628315399984857863207266775325882527072036965678956608158123006558066050862249541836599749302385170106231434678017314266643060590116567815906909411342742864663828565599966012638695833259747188794865776607253199000218787220710863036101364953456257146544552789836063379257230842972315598920670526144089756614345240938763662178588047885976896587052731723804115083360070170610286560195622741245113595946579789573525665588847645197367014917372696258424739314132085141642619870785830836211973544002946070181464574065132620649298651012533019179526100502608941540722313290390027354377724825862261171778440937474996674793313887057192018434045051571660687817868587088731428392374213520777529880331365794960680394681418133881435179328801760172637332020411147195188468260091771141585607538013326586400850478091509101772713689639472359320218127947473329760054273613744682530549738090772403194933577807501721302902549269058482520246785951075894014197821010564557219999941653488951848860104603031635308368871166954270132316945012153990742114683222692831315782994517903629248310682132668584854550035305189477280468757984615740955130663250103026910013111391818871079784829786012678012576021787599864512068888816146818317696861361018061478936094649957144067453741743292643144948134516476956089403523964056524362452630173185317790281308141826733789929489245653410191736071603691583276646758494620392728480481579802727303884044846424002520921381072598089074981751722577371445628137174790008573635546634793957035901845947305067655356834978891135891667704817294395714811920659613245683875250851033567004565667258573761449468392464796629978463183289092088229631519869698941665902057215115623079869824831813095099994049289456647827917442547229092359236631101092243453143486939755305979756320350419033119054639218745562755786002374061541809714056191095192381441565562025258996990551736613890078173704555142283894198920191505761731330461648854031943975231768484276679185839810214601603896074498316176300833800404511098633560251689160684829533943241411167397332855830015124403673278697243268707440590716252714991992389628804373778896350364009438007635192750314111623857032022028034148288478594127188880641824818255748087126737658253789892054432424878436295374550486007631243533046651985562694030242232433716761391253582387754837493304247580900760966499549099595842320953247834107844271639340920556060489463250599203780212542536548833492430721251651218219933788009963907974506744648211850510353420128323810582218544789836270438037147009458624603095350444007091216814144760886326824808647313042635749541778776785063587929460266334132450458959363371116273804001571851114531756234554629116960615923011469561739930989355069409194392198718067902635037678055577214215780705571658174894008491329570516376121300463884423794564699747247717958478550007200549913042488907505548558963808602592751717212731290416607148320275674228876175497895208251120390535086955046687572072272129966096949019638458983889791256417415985161038150692299250792696470887444991926309578418113167031797748342508566461197386627569057829527349403590408489278169841896249801078553481154188442431707294168645550198859212638321975369412520836763692902013156428105039339355516880231644189807312983620722000318832144227947882718222121321150233201873315174111883893148865288747097109147358422601607850724490231693563800045016329695378425508830181380258065106914768719412026303627420744909122913685730109086286158991128514802709847736261161529887417141976682934502531300152973204393666307637972650351576988819557765746588429734079007501469694334436932193161663101056145652404385946174436287226816790022317228821322012668955461233241881364921519875703501654352873330154902389741263867353387705091088731772938075787290413476061397690296388363754702646451310186845366471796520554312372179251569486255689471767089548111103991766961464914329469458449925970301122463959463331143936012388586846766761458604964383381581839084852413282583869399733171370096936691260961694341594382024745635376600843514815306697260008066860400929003389071485304730319364573616473236404294003007613447740968653701449009265780271092417473876945952642763314403039665322180226371111422154290236825060052601014247719009870229488964526431695856602135881756361258018299896587054417553904415531087868550173699116666195838441621758454347123412895936424789526599475106852534233418269518174563749367866135536070566534867503657600722749129803292817603109815647838260742174298981939915769724372574679151838720609021772399823881800636032122417617383975001297317486792073456522616839968362785613390881299230997151745348547293038101279432444313988063586440886510054845577805340526703388709379594159129694191677559411464184932241608416400636558338838481345419930854946636283466213950017120124665291518124962366402788469640217686193179721887651580656261200280194616595242897676380923406501125382344129921148396476073955676066044848250812853683858835691579861114880503090705282651266450820045927238014372769985730178333201309127248736935978834502990304763551797352062815019410418511700736989352000848308117483053201117984566396812594371854134110239792432113754758789818024188481686024690169596848054247029910119660973604401113821203767336485111322621796419518932672169571810206558189624481399105609026870148227737931347345741975374223247866880767507489060383298563330308240640615304399895376331784085157718155457241927572442666535390507335741324326436737964039228174248554618351768093559405723728522004105571230674164257888870133888897679440376303681837048952479385422207889491438065226589267020248755601018075653484419623909270775223283896373759993812576304075432724681857224809061526718422407296607875565257546651216099643618102336433515306024765392532749559612212600023523062531588321569093439355666611364223104556276857281337398985079162403556292077074621753855198535956706057615188101198665437782810951249722468794440476902383383131477931646263015587058253207780404866422903891204152883925293431111541851470509930294257183292607263858307607443666960484720041227096723529331493002936258332866183227386774563265481458616042861504882617245711692484213447010237051493940108286152257855814642765157065886501480164090732848195090626336804127871525756244122816673919969463197168195884346480122843160701909486668362784502050926271049105050288111576659459294733927002390891945719654967251952653802394988146413995039199645069271138767293588242329293181587071279786060096568386973473316469233639576222974586480326725247663193458147916396733928569134498535268922248020696394594042456354598988612996878981171346511908384502666331399691823950382237762444237353292868504917065523810060118624659131908859784599117065606384086887573310062461721687371184222102451344800396493356882925292398323918914592634770997207086288665491677465280493062123120198115538118090738571267428220541956443632371031744361058701148096438597789945864916661699954642479329915983374159174048747171408258209549018236566016249103524211950946917034536533118554261516495865670109461786757452677370077781453958464830402555773785785341602756792743949094322664882113254080376664191309961526486763423957763022999940619717638148413107069553864897244884998210504838206660858341304572440894602796933342132976165562929742486217357730657671362860817318411786124185983956371377311530688576704090660966926011181693078824473806320457656858239359678736174814332105537970553606075055556783497644238983451475157034600062506952110200722933216624203750570496057530165434849877756428565139215756639189387973718568884446566052839847195164721870794127382211875043680913640305295424038705069226555020551098534701997537022387122240525054396651168138954528460684733178003036169408069054037916676819510822710259066873333917285215038170742368176502031395711517598648194050458142937489055056396464464478967775034533277563803426715957355572401067177137010907585745125852005210201227152190539325435835799635176982022673531922238360116561969091306773691992499479981751009259635009236519802847761450063068676276302953726610933529385372729990345370248925900550722153147691959832173919186698774091771275391577357560353880333553885726205082625937970689412444548169992936966755428552659388558343796942824609566735651675557272198760066540582551489204590575058292472517366524455039122113457397721808441105002512034797345798700359409284487224582982275450978485841867596446756683256637241334051771707741557321764285696057491170774807077824343771677979794242962927811295805694516863654907940110577586024028912129360869415078799289248190202336089881325261255915521889774839162117646064101990964283083724332055534031134815229886882060113717503656518118885037392159659251003604848253622124834641200799603800652940049529344088831147333179750250241098473090116601921329937038536084524147415937275115134093111969694322574773634572528664534954420249998699066597224532021251166307714774201055257375561537675466942056722451705228921936739310553962324403971578284390659981197129142384811917959998247156877256337007345981261158745481058649204742012225416084532729940315384686590006694342516351708109038641683647836614949669881808545684791038297685130080857098478413655340865346712145342063619450321646391409168229973365374663858038071419806770680933476929602891938247715533274754208418326060398641123659050739734498662848673326550197403297883082914876887440274501980110896125765766140643142813852423669871621838891066330771995088117102488336259759777098280458034609493425761224898810194148047087363592070324525847281436783971636617731397281824545840930185928350100487071754661702334753992486694589392301165916124371109125296097238510625087500623577857322622997400413787535230481404651214897641959202293955614479442348741679114383282635159086596360169079571885325792098989098774824868661467209542004421577715702671317264460338421134763165396137403748124152682261434564013303194220658977719763087963374322037110486335449763041717219523837602988013364837482002537035721340234164993604416101284715340940089952688669265291011442014351694692835050230235838812217506878239327658365183091279902132693005616949465272385870709330537376889336256399587119277316505135479380771567530280095774879715948438151239943819798142382250810772401982015490208413087937577508940342384245853994457711475643415927993918924396147916533966887727023393217605573165244794490558266139288309705958331391872874291253910601945938490305001734841810530254642033722750777044100475774867740764325921461577921294496693939453616683456767433017045171390271297745851146808228991673045499006634100824339270144359359079388079516154469367128049738353017847186114787409820637100532227677248114406061011971999853640958022229455063065195264181572262924849341075889950200020470899694169674928772093756279264566192130811751539908467461583766510210532322507593928539358127051212540243820014931006933661581887824794621051476845241951524196120459873394202458038725674355195172066144260786983154214068248626801030403443730374129000265282327121098678556903576901149632462028002169150487781547489742228143021181642889300786359963926688321583613032862350550216012896859880349329100857930826565059765355783809868445758905813357868033821075950062409823423493861693636388263041689580255917402629609876826127194686216140206901359989036432727052108107839280555807104056803676550555357345061976544517987661612545165956513907295257662400131623324965468688644330859359409270175389045112469133085153597476713706537854570121530827228795695050412203289043748037660329291490957747370221567336431474798101741156065972094964721629908761144858903028352386187980611049552244766002273332735462312887669388343727868659340774000235148872326157342349869529825104347511182081360817607770106017833994146675837390929080092493731313038328988972494708906869866551031470988364610906697779366920841401443279804132506321640474263292509723047171703730201285391245740984691182726976264564176358088909898593531360955845262488521727261443415295616923535451872666737480625785637116831528938659316200530260256721679840289420971708467956391604552247946564166655545491826629687843796974321316088028444034086301619942641667691789911687978371155481930084138158539285529354369056965946518070032163658664653137547185885567941830172452285778961540854475016843857132721522112790839491330631366059442947768490866826285331024370554446875771585532699105117953184381882397409257459351698932354490480719392120389091560931605359034091001237760412340631471796723872451744326309445033313566749935730588526095928543276132971419367983445406456490415297005132662411572186687541678419460109112814549239970714638424623251921026392706935865114814949096067829804775829286343337466830272538570573970660989154895532213473296283693303480827931169813620046755952206901375610259926476502904874564806085010151126381469191309770618843655303497291012309241149678269464419820326942157552122142714273935163937597022401435676998581007518034919744069068927378940779073066438462243584855338335412123022221734151078963587020721538395410273857068386921561745551903861624719279149612125674464898120822108371713967031353873570050575617373449555864631292270165635585633545323375658258633657632915973716720067064426118282309262624117632608125762258708339393893838129839680492978615439686003108197204930166038863915036782162248754167159008015715992367870842988093683990243088760348187682957590269242945729321076033762291467684253845169268103053704442644853245687591979255833215278669143704489346582905241989139065070155170366693959524811773473366866665789769513931832982824850476129421478824794448796101941972392148563768219354237205072219484889952418374933109688942691015530614280671601938309527455483196136600617522467926361644981456221352706450467503813270876020871094497259974157790579874696274718867249288302269437870251360187472492009015153123578904544418542487942095638052988135939183186969424047116079894076284256413243501182653633198667801769875529517424381022407768886067019192642621984186411227939856032253467693178422514385788305135514088297923033881060315358000231272960701282201109675177300302666375661040936796778189371708516236860230812774576478924237898427990861548596340061852806927195706390567486743560950923039785436362973767172872729507362457565127571201345768508924057218252153679877332063707097245572869453226918366199324304580584148932073002977383333721298905679767219047895170043335199537728997354985732228842510864111577505091897365929032581839056375871553017364956477000274868106519706643902872325090718798503093065111796525722108061208965000752668101228174315102283064933093282769383478831543271803373586850731758930796647538375760992085804775765022702090934976475452759262643161179841136144679637762204726804969982459797873314933056580444634893254972837776193230786944471606409864279462485005035178028316814480270498322387832137986472375572718736753738744088407147276916828310282968645021777342564193627985569491390042014769985912057782058538238942773670835566777153844565378072134606118000280387370952436793094308286911760104925110850746051515719942441428664230081490859212107490707976159682656466453360145934102678311914626461199357581261381170354806820588538631789269678530145289219314567670001746124629944348088131723787464100149158103340720161191766919995281685270589731928457757340896780127920385458868353539140252643782003777607348120698200565934034272250679104301332401188114817575788548110904176975247370549323864712778155371999626336206400163565766899972879635887562047303765182652061725030317327176153794258182819050877644985301256294413555142700584132766745006726080762077468525650884340442819146123411199362398334381668791493885137873920201628109704697117216061741054337961336333691668846602971822942075648984262202485373104203686990260568793789603348759696696822748756810339194465817421943453499684495225370289210384795400318283841293624571152019335067493730413964922618069213317808405921683077626640074645875103550763683241265505569929768357705871008609268485083272669733192597375707934216880277992433883032725499096154943242866010192370312136680271124575766573814042011942456597483540027188909904560159573031570524528279769683463694064642197761156982775096408508059712657978455150681934633680150674067615750726891973163449484539099501651490951151399521263912179067090548212856984850740336020011760040146460468421790795185504294772222994998783219711417029069817613590788983244886736337084839802306174524796701383544325760103876647020187040926000023523270175271145122192445559051770027387858701803884719425652490637588400458101643011647589724633875167877049652909173768870406148202986407217778237482064569038917702581346102898785711752019454440009263840294984424109439249539889990199511784408625147924121846440059465031467531186134824474974672195860059526214238390376251534995652447761766791313245702694089613842104242218252044946834066851752144546548939156228451124598930558204659758444101446596773519056057672576429269939644679592080876361908551428295730430439159621103652416201605015517398156645842753362818725987596214833521612915285118363140617475403172475438877507502462483544640897421331696106451226295290120197911707026876593168472339255535078452059515158879025404701110250853880031493401802466621861688097545074862089829775034416578896609607886062674737348096678717945023917100739050682741902936484351063284055601692438898727931064424128915696821054896305843103819408766823636162207377304957416033849736887276956019341655082833148409189274306612527442714704149619648425530406306820794349344485072453096035522033112745901622043656279672615547549714918661562080484487350516242760602168197855528508702636509647842263851846734628227507742940146981834834499470272203020196161420291794706364807090322432981294553712934612453305736159401919788473766328268136848609905415550374802950179851275577368610079036966192621580828527947119366833070495761396963983018395303167045759104681462637483411242502261191748708790020236886919416514503256224316325539248196604098320428463404123428259010590620454737791813871989765631308408151525562187259723945909681439399987959341395807492747437957757283054840332949856781868699220859246075531416029791695725747688503053433240404365412739836186815946616468339572773117213731207229403403464691742336742396228777997011556566649212966912199048189198691881230999001386555280442888965870982866672847998383015992393502905278202679785112963002798825629288369575991076738119492138563876862310326907838849231487887243446069848657028485131442849108110220619157676024470933537703862533282890226196491505858835913897050028878818911595222720680966418367920446803016199769716960476434227866086421499437305755763276908652086373084222864411439633771202519833672886038205706966590835580432490009817169772797982317485965136521322550711193038557237697948761848232792363708480934410292206390558683402977771627856790602533941286165173412471242147828557926992962169430615862821906931935283881578750143806449093358607644716266999341220336255580777291443137664993347115618861978941223238809556894444030097945774334000528761268823746106158775341563062904083884164011804993309881647087813062119347143235699080093574764374150670585763037248221568970837653922986302647075520029627129624531388063994506958056978242809825950955367606847975105082575657221486290502577632338185950178656748818466117305143090553437667637602835500678271188030630653975868246244369411905065744998083747738996614880290063995778081893844023963638587505047567023372820747709451691836539089587745076682705074747837092667288671525506418673729621851927849506822655186428636258493114297556715368679974662465389505017480644844300148461234533950314313467949824278348810027416874607031933017535375051029420938753953056106039282909116343653915464240054931318929529159414842727936464511967998526620758931734549237344992029925674988750021733776462410341144102872845931711375478812283620522565161721933957503349370006828634695544445748099655825139121179274274203419027416070327237290431579482965458394980076142522959237945049278012554555802453675463068687368712684394428832336198022896537554654235078905902713393905588937350333236253306235976500393691469727860730828548314638274454008994493304961920113078859760548286693568545713340683211665424275446788502321614807557353406197560262394785211307958834581162844996466513550626155037458302450951083118608543950646165765743883053725368961908646282180125045410370609982275626969979781538906636703236479212958400303156662618425036989804738563478232522810324819385722539006599914914573415724452798983916366077324551004904438367115011243097131496857389807877291767996136455557526496943870159550017199271138573891500771939621098437701253174285165387919679980227412365873014152209264233651572414498297727690264214825396387013660702123198177578360283612172188552358798338810628689666678654413042574566817406432735615835231997555047532726705275015516648468800144389226297493660670263309320050455738244119781247043491230539843531183575096093380306193809610938441395579757062063357434147256582397534070079564657810358656091473458355527442003628929397935148484651200711194646605190762188610022511094037701540821979698499483751168392113119103632938067906565145976949023765968681947022393577964380333614977422747073063812785310582647390584648086288560002663064543257903327124871508410165376544037249104835451537605369155482428363501031293579273054727082110379950546465802235499178044606107406041754268870346114294824159764763299130563929828829135105087573529971090280661350553117194766604965519590717512468990647735161152355665210591661824030027151535158358610724663621735698622152009232727185574939600534461301317877828287055864460049197941075607552507682660890227842602425353364958016873143318243477928014084668538490175190032071002507829158846658496399123051626877518859615820890580102750504593921973497955449460543693152053955984915662386199076402821846209040708311106328570792785471373658545947509845799183856496315709906297301653922682197730143518068306800630189485012171353414645942802032126872066552148007668314267701754053131840266921199077248189099525840606956493976271324213230014438631006968224800489577592987999347870597835274112615993280305430569540361034544351177072753154891909416082222588777672388877947349270738881291787590560744058407565304845817745585808383701862239435563351798395546550681799935183746953137012420496930273180909858990707082171945580250525115530125621274250661665965503271807193559599238307672708218025375521496364920363577121725344554999026015873376309146957660036659473429341027574617847245318545574300768061828634526985408717301513704992704070896217582286695242268119175876709434345559985845046259348996677992548527824976715324563287563181177467867102987642133511159753987329689671628763196778025016662520200361640495940071291818475890817134809619037657424380912234695222997572729557836140571744192775811348961990497769520417353720758258561125728008065519573264085442158341461019653379039683190721138894229008849401210571220529405640892259842042695925732223838020636033487089256913366905498559355905056201990472802432349306012525815201764482522641946153829114582288717188014512814195512278386898070692926279634054722127276004783260018343519039107077321500736062884079558914674085021208206708865613330129288441853875511474611635946998411933425806757237285564980036241234499668058224145825402220635282685758281889764554899520691600118871601631227602371573397843309004049393414345984476596550901656600178260821922924495792049137900537557868946482484819128028228861472768006157995485153993179709949902830266749806670017202130706449291616917368700295141472084259379425125176152864347462100336924849769399725762933486655284701052016112004630771291298861750958207701269294514711356947105054517972275919052828812343894093527364574077313219601406943668406418047266095410095526304700655377810981203042725709198899460875524770017559364406146539627446554914930868369429431738875458091330961169047928092742519550977865732042691754827193043971084977646239901641673416291592386125238836879565472593381006364648649739582063439851130608663113913549880836869472367123203252794985714481484740574282306248735191529891936581402439773390898111883181731220669220471712193335891037897548066402218884317308869405646238851398511397756530702156282335012728471246660843416968757354279714337681809447076837620064663290355952971311328880256709850759880085628581813416874622856454143389661122960220673995382304286386532519197470071532469834873433168344867086835857119879447658314099767442103044152147107313602708758635612195095987616690183210970133529996515629931446335193013131660672744064043086670231169584406079091907317378466481483631448540882759184617221882328858877658543461895689317026925610470878867713489468818006721332415884943714895538328592903315681759377953706475410260555537387914846787515547996185837514945355710067937900733984749986997081556158957942747105683877992680143311217218719387935398502040821976377067281430399536903132719199548049464865527040664814753413753445680108682663645446106211411410792848644573982683494559881872304186344513159202288510996514340831602987183305834178284638739099824412201179007563158856498490066488626364922159071724285438954623047091951791516281124134237388387368418781575495856947284822538594427495322344491262129734801321723381863214024768772391310162481464795291198325894243859671445791200512972233714561539493528230076211166010477576270113551029598247606318039207268586625913746176027679554819033896707694133486880872935192116054915723066459922030421921420064727624438634998983832523528630634845678597853215900210818952350444113486203453897864639521327720829508676974123870276403653553073104629301500957885121254446727323762026154772600375762964012773517957211156957889323317068053863198985630668757823692691763147865818282825723869974375302055404957684568702677001181819216554170832484830670540016674639985570875284735161946686031178174253843607639779687978168951590165122509823806501451990554741600993561520064802729140503162923130472339343599465295458946621179318241238505548881550207854858199074545112431245188312773028144232423084013463839225046872401438425992449254765041961775726039912960654711591512490772997968577947483803882326272981587274032362949825344681190916592214900290700304923215218375889151028547446571578342881795893226051951582755307832303314906865471649589372644119320214244909417607402580082046661303080713312391398386086497764866189672894326360982115902752050414235740214532366426550996339488219949774554408183228055535332228564876020794418326951838374258196786147446447495801129073019458068245956996874525821428550631081377331494064667701687724397652403350387485737340720793845958491489830506086026338858960255197362827804747365543592839987478674009746873506800091461142810787957679458628761640109800640576658583924706796714656296657290490226765494311181992561661201343710207357247988167413326994488948222889923209652395851866072188775983852158147287362642786028418575070902872096987290731989360340187077746690314738609113641165721361994764596588075370469179953290046053320390449444507906319453536717637596346637227269490877062774003541203571832874637916742229375593762128914932728098075657866224442909576281994028637586163661072742087212474560771190344772413577680852371748689641445230990196753254173354270541731488986142012394485275879901917799624000698450528145629687354910145433634758802798629966905052955140182777099208711284839167213270272754329138625237564509675891530614932334347882301770200666972965041889259123255328103987639054810360147679456186099423888466344565868059107509880962598099764549494285620688937401938430310860143175747244068322811368298579956450015277603433534504045450292499728130877703267142718516985505910663778020419906727668014755995000934753773912065340232792923890978153483332749235803904965865767010679325926676415078014374754524927338962068804240563497889126330802172957019958839589123267958808622481078686181566752708805929758081701935360363462128519068477518622691326945453128705555249590296205229424428404158913322538442946268228609811984915487538072975783251648405884178291151985254406635012301170434899203130987622364862751647855256150944221519922279838995392913175786361454919541675212481485865926163902349532337976134274510145001958347658229631735499459960872977927903405520868938027225362208176172333832755855650617532028891131341552324115048426758798303897506852340947733811523940031180870856718417928382612418485423787833485173970159167459385313182250459322323981352681752510589920159659765651544138780044143528805644518311305581012246587926656788999903901713337818653269434748197621483213758904753485362013056230468395043367706025183639223146089580279399077905530767050237645031228692868202421180369337511750815248939861121562151597872739333806174332244352895184212772158246797868896448278522066322616519338933911793158766911659108116624251344571969740964021303382685214021201926902667030160448604483804264165156516304775824405154309070201387293216471696498604335846370065361702036626401117985352831241586243610139437724065613686856045148119649429055279524677235135688308893935540531225082390820618876961688320447634642290092193058063715235578879278804937042654538965309594217519642009676696097460574874830175632858505021275365523960829904503696138803687728919584200126457063405273920060720141950785135317578642518273178744607167970036798672165835591311234586906882604642880107676125782608923407889917687622627946448019928273372358732824818768653889265254130323075336782727364898601552931296624540225033913749601877284117972646432852268088356793403941590542995499446323052282486423627375537824656921934544697315739393670760958435977072800808210791722529952800650376508979942777171813649850129613827094874622039271284894778510669370457778851864397545467850500384154018661547253672212788905551484231292842227349494459797230917646702009928161046203598762810673895610152193263272974983440492322822759559502991432058192797201722645164160222408839430648424229124066861600507300157031965739344833414781314754860651139391869379703405380440637370278897966138637923006682187289406947858855670724489319238139920919709801367309054454273345040304457753584314472685760425007462849334513656859450365604826590647053414587567216464528406266269869382741164049835908193492407562064345154120954322863446816290152805129192422658523262115668128545763640968506870434101053633192284029038723741583180701920355281899759221578088435895153110066482762302647702647581196483415848451434916492980633999099793106045372953608791846998858264360791268745989170247808207103344350266877737720555530123567418695418538789098873175498506707848604344533436744258842604403907009848937362613853884014324146994470763862028988390292145045142101499810338694685523600956051997899582720140463227751897082508499977955513799375663286159139057547672802020011097789821127419685750547031906984116084363978279851475113539493814763643045507961380111609575581556396306508123448122580107106782618605564951231200496469702638752594243157528795466127673269711930063963114197360470615837076635204137732777648864562582116487623887942861585346456576940897487603785586881245270043957579929252923273140095876995781008335611082346162048865774664078607827230211239607240785610398336755601403458408532295543510270941991640797527745816223896083323459220176774840445243273210161678682850752086222220344994099393151696771069719025264695957616830596110938685101968245263918268077017433510741054964823781296007425756325169916889288789722565529388443956292605583515907936040576109303508755317297033900601900821445372389278802015714749350568409701982421927025915335463654469779006650321224566271623284612249403995164830325938442598409627467632434754915361290616379352946405004336426822467477991497616031580835333927281080876348071693457293580794914544637483989717458843863943394838524728172833290376655800897923047692398318595845342215321301454565405786938606047542612739809006597754940022289823246089537279773014035303218760833388806640506093676109450477645983365997546763074176126063642964297566285219497221932987852027489168249385037963419364335556796134862435706294729165343604124472039911873060794093139064842399951682497409503178661694704313486183211088346810168855910236326055079388667424532813686280627127756061533211463182016067945417846066220976891640586346481959092697274679855908558513673435834593509152194368215256003077376354953880082901406209773516125677618393486132191321876347611220679514373237993580104347179094249735702801081029340126365591477643666142760634846099853763556103261010207972701883773845387218015977415797022257747282606940858647797590508273240395910783225739879700757510767819060377943313070194376004517336576862575267160131271313541044983232338091213634394744932754217647881999312123319376680404048487634382505884203483941895023623245982980673363993428363037280028870545519007836278411763900738287444676558456234204219936938752143576062046314414596571276110576113061275089536661703141543300008390102748063892422673513483868449196934195710001695190027924638325550529415830335268482901222661775813667047072522205971678545110069293172484829171797905463817234958886897860123308561551522251958176077761067663905525649689295424151089523833363852351853111307423782951698717438720523076248636611550912022784354432833073648433641532495888213378755654646518712813994090146599596563304957821426655420527816879029215625209366850840716658354361910482612738732597055645265439621287207256725695381545418592652358469136676304460799031296077417735679538386338447169436859462349766197713000466624104180110699913068505366017891344275328543007988966054792446122945778349569929942395414341068835680582074167746834664556276025933101586260489758677077041532313524464996105011734978366336111753826360347121576293536150421532377945084719209252987024573419821975169721076244572544208042823639809387666146260887682346253038403181017620553938592115145211862905638500796602400899084287755096958603985615032892036934818756411503784040639255033638189161394361014456803401483033917426466379920917147419039222626989994376325381567244901074787171817173115619624016389930837124597662399255537737961918434383938160540035394412379198059275821648440021021584717342219709506767134449164879746517597822955437529253899727067789157988220342944991582165382147819579490738025249119537688614387815008578370430362817865031512298611055260225510634014022850566645154423484812834572817433672911121102438207184165406659556859795183693822584449675692943141808876682970633018433087038319294928220592771217678672060747308174440011854459533152505590191359761881054467047797561852817564400720355661267956708689489624994410298971931375459050004052844700605403559744883616635304418256164327515314276066338856563696419913921852252244324647185544705679376861714490501404316332586715953704666089860859478780631304256132303279618739281964627951251331737067946515078095012150147329265675190243100018346424876284882427595001505405937916057052351448647720123646947985425165597999466743778716511402314476566491987430733471826097399833075075493859511272468732210437334528627044250749714465854772063081537452605960222256573583141592046081787699339512334282493513337716953938496904027500734441588796314440763492011533894036537791922191450398428618927351651915508233723268960776944394458564178556194036199975115560355337996065100088371197920467269091951805503418551657924158697078221496325457934585448119353172745560383082021038293038046376638179577620257260670987213028403556812111429352220022646478024208193345935211931606512421423680058394698504394748137945192680336594206098063498480777994320585602701004682279683142260955285458846620984883295280496462228194602384548064610166745972089503736023016255435103519773055755355900321237840703106301166783570095603380635306955732731095051211711621644107044643176195104082028289598293199820799045871695136053109165800782565256944521424798413437665672436829917191889726694527464768913972100335110479858177881110403656882914831984974237871350049371637123176457862357636204961548820442714896292526297136350204013899731534666623056690418909961587922549379711116257501833698277989156094421298089776115329332468385108543963152216033232803804229544445411006094716088481909508100891891932995535912905563671422898340927887037358103674142488333995998430306870184730400702163073249850586457831826019115828534391416088027926869452584102910406297636238828380356632219328471762431769387179646912308084194382693727396709361610323619928581928138899938861770956360747341613965599738674096756360869886743741310794964900841830904234918288103047201059889067594112738676004903038230819339519756487070593907324008652887515016225448202225221455558852212341405689528714243152755883049501671163466411089321975283006943461510861746390974065653669711722738380441925275539454084706376299274499745329989821249097610357309028079120993244199265933253002935455565349107535383363657798131877070577508575648068027499058833144647692486180725017632594019684322001458994855439234663755285540878352930845592270160613007602012037209935426230359243562173418935787096338618687598032781484529549769680698321881941107967575430776401686019842184938184759507861552717477449631723705550540170282593154613470879653295227341421633552257830385049686148163297897778125932227905530643808498455631271671982608476763306193992951852945673464778937098722714801070129748189149761909931295524777940198044356389813846718733574951754932271984061080702307889045713483537454555062952120220332991538195857665203425829150707312265645868458276629348316972054325954597765034708855903531432576604263978743448719311929129638940194667057217923061612433387578646787883686377411974773478809254212595272674803324984278097958566730992749705527989524138104061088938903309609928416018092764109616014444321737703108841975972446212346100513046743968720525797215423617082776806641107235302836301218898024845252121405748804790079381685670139110801464027105585838227900697235196150958670237729339036386625047802472556758535753190229752289031040242820645892772368327692326599735963170811844487297397576873309456578257827358051709394115733262599484709541103287941161668568861729708303262166321642746573519603954688968979486193364419844941577819850925706875679556154856630078068105809479502991608599226532187467430820728876506441208291027113220582823957594155468367219162921670625924823544507681144409145525761664329504378181398443199227490177455321262223085136825704972410430958079323064790873253478507214171041410924899547788572351615601757279472270003416274742829039401186403731553794897461149815053497991780785486981027471495213147990894515727816458143962681506985252774813913133951879079294887164970985414125136660275267583358951520040544580164263902263540398090254881846112254043285571650572900654360671079454144913479723118103494785652877666408427686120242580352052309327073696910085781670415871324766602796301909533377251902712371672729941745816332318120685752762633182144289907417763892809368868198007048487194364652863905502917969172030307920866650754348685538664104568514034129995340402371603428431691220616596239037500551832392629013085101532260340728838512169048873865815610735696911016621925473857482985610317335404478123061326583588059215488540565593436740462336514890090128993661947026796823274183879123578501295953573265747057419626310972560317675145833581491896981851443821528831355078594526847143483087414853451424011491732165483922375642054773105459726068808382793943682405151175172347266138667408909845827142737649233341570896054385942325045786606123415930008435846283651244403690898728529533972633594621369361939226007866633269021735972163056406354903176853118835033254565795007532868505833449650468553045850034523781403338784986959323740350061732530136965294664263523077104485742745793189958217554990774452825638712356353330434834618023413210996727053599523806380556079671547325172681330668467022782392092129145480842790526409421719427734518913199663943813544734992762561049501921411677858854242186632486376252226681766071883147484918975280907603847334593664555373557828666375277391816761563782342893518032005282261924481423184580059417188980717781936509904183504755785286032976859672817501901243669323387208867792875268823217161633368930599926515577089557515073072481439331544563915759681505454208957822191672730848350288354057057741238808137650011864151927000857840202505967972322473209761096882317199026777342308521593963717738565356461105385483041544785187825170774411130488198750164021745811517906890212075065789621688881074000507094782143262600246735352152772830442680292652032903526907315865853800290201185437105374972220686660736682125469856329913664591435226213712471515361468596327510826346861145840381099127060577135648676179582323346779152117584966419297702090610126747529578300019334727767295994474750550072456735522592090347364474666565816692814446003637908686240494522688694979789854212823260744781944789644373643988992088078778019023565417869934336646272967279461591060373034143215338879427244480919424263762088877484541850598905915142335070799371277320312070051702405092116444734383467497880930517462348728338750368610161359660179759014266607737282436644911165491964236134199053442427779196920231332173541081750200363010888616110331264706621412072225616966767782754580888662621048053444443598952132447614192309253473552325787242909383493083693241619521065399056690083655703701189789879685697530968600169328888923477997935636451082633549977036049741182886592704024795976357499203823408834432482349627544811052284881227605229669843960497648638093575181737488654508821680333835926649619033259940365374144154535502531901571672910667086114700341611547137430946194522309828605326443021767452232658095128878704874373316925524391898856603606290497029039534988768545080853178459634420431159584348932188838876464488497548431599748515800006985464702359112710877283941313107825132747980040211207161307623866859401327918026566557025737597209078922053348439080616128965296781572434600906007191440457973441131590101839012745128093462269801186257994467119273489791773512855507917407536874549331468089270136171178327836175020006884731756416179790807179939597381560748936040975644648683482259166798770328998984355839331646438342437153938084220059585285066478388841756880736360878796361169465292633413328453151991161087767089586422624746357509754290271374852515988148911167581688393173889339817389020717909786881732115748117999115202650038892828913609230684841683879442996133992227651179894002771557329392885908490596174332611596006362556375446010423992704020017936615798472962737432759979372736662545273096627552595183404528742220453600177428202963727810540689344629022841054277542019271405014770959159956093705640879404037293259587044631359734522914726758641356486394932135883925966665245253548597134544595017220070853220952063825343295864928784298806880566106403853430914548692372340808912193378333909039043938852171929060908007196187284097778921450743791317032604462187675088803068356026778589417891465539238584369794225013028788835310848245769079903059403195155013559690579224478801686207709186993030040291507398504484969578063421933751150168709119726998890607205680112927214534101057052080937855139644901557833617721806177710432166746704413629134964536834491007646005450203930918093029321630977343948412560717500449019791862959327394632616366885910486929816674926703888706046332698531999184320015147653516088721479011348917216084734637110138261163579315600681501244290654939599490181214577549835048542722716994678785365145706456996235599386136237156019472155636662317828525180612409660489814285891658393405984530871376426037435272725038074222069042661849698545612605794654475847999439362622321481378033676421070191668847940947721088987001515485750729629035649807696915011010858645862694663639810142555740117653520066058803651270895611204363189754209096452703332896144031216270966267879604386890244472859694507712687575211579695419044931148883922410338105701458550776612993635426129277361754593018271651766056880650702454504205716248099531288157306281752274988049384027589905085820860278700528575839855942572644110151058522667616053852401391384332821327288488960733129106783456428776247399722132688318738138211982165755749461025463712618934971702075538050825821523300848528679079907568600589773036812747702034842504310511436994252863197292793870631499552797125244999103313689797019761537119882265467629575202632862641278744536482463979833631241634758744467239984352410986202447513269047222955753880733676292520014924872212337884504882830784942030451580109223980255060331578642760431085549016228737906886503765213962240675471502179990327388696528964152510697202951536154926896660793568528178707682367377890584330747783280392002109435664814811254386970380087398902621079547971009000505594798580680372271081791395464840407346973620434603545791976545097425986236484574119795152284059732108662292047584588475662620482803801145816500430222738112044713229085594671497853887873954490709058215241210863646013432030900205164700876472410291890783640927039398678311333278875262191099159958177075510369312237355565035671686077278399234419792260039599685879080666131490284114619715994045187612818791849556770980541109331835768374054341382386730225646514839366693817320936125487285037353357619815544755020621449963044232325663632344665669022042558759385938370901293382199768994290600415186836511496917665231789455865783401741935148254771302909059479565497650110021393834740995033656274807976972821016062212342921144673931623811212205836031592269419866912667919846535483433532571975225758691477253510353649134389687948607739358532156565897863753730203229193499347490812607552920290694818303568272085912449569718943469439668859416633540529907194471206457408693877421086501691294108296871554486785518464731216401040063112491602427682940870534036485302000292661593970099423820503292863745637316602657212181711664891265183429305780107265909278718217509876702306056904924457793625034242752026984881005881920664697645631611845283034657541148907639893147534445925563135335201040566706489714060024606651396561545988355345320248983324028403741013684428131520245477214036064331034404301174650498403583414999832272581733702383250592656965962306394407373936043706587512938827169268851545579002728775978837028690983556741307614402860918908497852119685519170783586269606527445830351548735083118130350022137031087093304092281769065079769776203868531924773911935891838493698857471349148354055838761190483203025276938246059042277565430600938577939949143561136047989269151536930875518440824816181961236922900122786524545301328746074735665978009296713030865999762606621557202686023251158756381802029183815296742536192265036777544438559236308624628378000957660966697953989276031488495120793790557906584758170524913525473670744220104865113994490658483371981822320802322446813777161524790252849272341142300032592430870224896785731479107605864944642203027001634537894006116034279487515508541181971860981499192859761343870850571795602637437430692540779340979633582675480883560988599008748408650593939754408243006195223621066622595963554152782926258213827159575918639379518684675579198862397490639396488554454448931093505048278108627154765545605995297972086205736407417012704170249077672548903977808910866881284996326878209233108032827562090585319404145328402980896151451621842141837379439011412621141971878236908476417406611671256800827800112205969156371728505776304718726513749800186624393598170215612812245908433103749027333284990557952462480543737259628304295479500062335146706978494616516069959176611930333715646501325720545109875579841841482693803746045992390430634682870010735999890985359243593368501080960309961950559559329489382572341419802644785666696276864185377300145079541258101870789261804206266844212117357238222022140728041387052430445044650011779589744559307574157037071506936702266003109761060047463914779834219054172477871451219542285562364799871165218459542115206769896534874143831681165256841372579892185796025335485140799860898654728249299165813117590832000311820976067411119365527471016717569458089172336038526274361646876274816621421409804291410499740399590325013631393344533212229587737418464857148017245447203725826256708054598885615805232889509581345841905331757887154126539410106279638890155196891912235247847327982758568885606202500061748743146679604890590830635408417842461427432118296948557642768608788595986387655732697788988828734929138813856744664420553599469646718292151341808625154621512503066525057960307629606306088726700855459722053878429221671597538866945387499141090781126864606457439042069702147396375590865140374550865687594444657198151972751128853361221931457491657152119997958868897996132917192809908680096748885989771053244948498492999024293533383933878019657780200939926650346599953625085270435905279808396158057507674406747571618292079379091196206745610024169516804538894542598299119219370008831473972031232684834918175876945932417079098762205580630241158104414583008699081749183666177305469342120541382739965534327269118081312992027142264558599198179261268154285759710299199583604336646333709145998775082232235575268664535054555528417791073476749828665235477224372237721329060722143218593872158008105215901805829891498460039465499943318098995179844342319144581415533159796896779140106884634669178426845867739542187692974531001330120029401543147264767614512300323429649677849124059374776723243271186673806770679087154969991169742348259028383230635647264654808784769559816442913202387626238789158750923981498551457228312943793884597806607542358670307086662131304769481493518668662024875278610082651654510704738380779853721483232205930096454435288647089089840386217576107909008450962378306209759840643434354488322859365827459296031023266819426676803132243058728809208797167034636927017621878332819914946834455386758772129218322856592249955623355390815268728785421911425016488720319476090100505941418768466723635469508024578176121443133064849928069217083941199019332715431219321291139854322005157352729808594917773715712663552255106448214667486486466139765317202073005656057395672996033293009568601616655737713576494124755312983590352351307334653117907045279042935160469156030037780659116557409828587349633556731479248702457279163258168740654955622628291069869315504952216908948177422342843122728047964132844491619045722059225887871683380803223416391856351667234349758268803006475092757193579735736054252146283736539646167744110978443112536692578079341886749797047127607733090290095698817062907198951447125227912957367434147336402580944975734265508835578402738615289063941479731945280438012022662120170740896396954129154124636308953081569547627896865960385659912154516106004192818997890590968965772558394692078564881891018136378651690366411401367892166213650349020381344483377576059288489315614552584705408273187836852322550289739238467876769093857873597626592735370823294937561272855467684489330241469941809847593933704432104368638216519319070086964380524672468810978671506985851939986555993178250392694393631810805846268519385792176198269626877178419478086129334288745269106254294781725883364162146744812532767782479974892558778829444279864091204927598164734937202677610376546474807794764982889915891787993273071721631403929384679000302792335899054437166926589112412115591099698355506061871072977952236084808203749706777592259018320663247638487967247977284548716136213981955220337367229085001830599593626266170350578105714915640235817840855805341208497397598899013848206780921931865359581669470342750749618294538041410062839160308744769867448483520413621334714231658619951023242165934503448957202186588095525066217959445067353944709339145896778253389069265511289490159989219349643303732471142522412023157836667700287512054601997679057693346053407957500924927047053393085945808284808266867255304422865296048340645300893491788909988946719997039868571839174314418691690812560059754644313161765640352305310206502245863281023301929774350776939505088151102851676931483404929788540737388408324927600142637438283819267276440827086063346156881941462769762114493147614882869927739387575780955391793492693605859854401716965128673452214332902419139965140706136661545186774330080137952638385784326015837772617979978928987822258225251614272682652977250404964223070289904645595778576372211059944150163252475911663331409549769657834809733267594315738405877979116623363450049995458913209356350581833407642251433043620256226120487944966199568493063188792926621832496114890143240600040402252036689538535336967301899569601197462130719758282501764284260577205001338308117013321179677821633878412295311355170146211633889101442957758158827053019931384169791334974037279961721954283142008331797385897119556284279423270006880681196594359407495826853884227588158963869852475675167067146668212628929742685499715816901193130813818819906924547091966594441281837367964917513076155862310039031879520384294119591355346979137528957644361607713479489315259189207184281116797947463536700054491008246287226309586167047258540786677799968616699451990840036672077482113773491203537038537163514800555981311710709023917174558909956004819474757208301087351597098221379363211918512174607929214877509368344727916013421256028923497491453041301975077758411717155650291519273128703980605482058073539373639098116140015853932452995632396140520064074966411402723922037036662670025215930701281349324635890964967853932168000644364274584306775695329972230456271148572079283122447517712270569970322975182478060363917194048827451863700034728338043326947863284428718752445016101935008763563609594724310363768693003515071863093953918467879402069628838095150826503577815196754413619264164514390957956532039616665197662253995572542538674442526869432021764258114337615770184799192142613674358365460441825358541341124596410059706790195853297360624600310306671123535500998493915559967837743138653806502035026560137425309929694079155842922571161117028739957729375484839421597360059971022215323496059257978317429280125448864978378039183130051615903256765990698532414281355103188197982354830842244772295857304674999155170685895912057784927932885675786007798944840293201448868362880233625193108064876365822095839517760519948518890471047448481479601478744475738889031139123181609959763561456042230133478070462812834143578056160798056407750832105520058609957131667356171318770458137342563193619809218163847734632801257407553225358092584364296386659835517528950896074288097322463325943002943791148526122994241360887103475158909171491221462856960463991437704497621180706188775050237319174078399699329431846561669985547338596775107595474621111697304846570287490630499309784221111664295609270446825196360310672334962818352165835674609104053407516225154808620532481887392846837574264346635194680352149638346448370261705549360065552060773678984949321295737323970349683454008843758030581043782300457381431991293496379130389751274526091526681047323786751172786771679367465043651922795119523210120222213237903764769959274338820788860100770755505317720506092503459557284520282726164334845646820617821983427718578576364284017592448605912265108762120190805264334150401547616771677346021129297303822174012015381652870332431461290369586556572672467048894821040016872331362461544544173113672638094791720453676597711975996808589265416672692131820529411449624395908032983894790715565672763919596576390174592697960269141963890832609905691909817956861357909911456195663467776682532974210763786482622279478425154745796199628475011077810556258648226411272186183523155344425855121923362050073200492355530644281235116401214816501995307635056761888326315344554390319924162667359803535643674660185969229378033787025848122671835614009720491184265929600423104147728555629509700487053810679994239116756519961837188723031863943367863455971888903488551888274588188186662982479803280580376182667225845411650526186288528929608903728741600816235775636158487361857237803229958896964297346071391095134970624874900310044076534972243039892687960453462386114954741671446132788600516010310730771496846744972964844805638225024096510627701746504519622355990393266886179913404922755542814184936508641060091467183248808257912667208013445328107414326094254202996857218559530048319895731130809696230694781438426090308841725113095742083003124271502434181795690428515620040992142382439579764007576109355371140747981119755447983972177021870362548889816796817560667051172740785644844820072638612299242646566973540550351542635695010168774923137363117874521278253933448276342191693813837257323055786188457701820268800761505202865789264542069075327957518351799488743206708615118707797988686863756297735633378823193747394194642732187459602272725414741375455817915612036839355286760982049302821227451236153149258798931640250352771444586156401307288021746102437815526336159744886475162808343964245446341532451556002166695796872230384447649356434208695038443766703989912861557655554321936207895931905256500876942879481303363527068465105419833687643486574671262555004891925020526892130101699224846034050125570474822973733803940090157562172729579959837098013120868722482643563304670070280293810442102703974549123071609322862808748224447859468076300229167742742024572159398026988112424687403877453270190680349356782603697117248241951688629141663218529174048107541626090604234490800374857004964433269650011701926163926947598329891889388783851668151049183520400138433619911450143338824404827691881818458671493254373155332239306622905973776746979810088285091600951751775502858266940797089631887074348378709971773316204150047295314618765117405473729364419565357030552592200718946499627703056603029977911190185978027893013764451121145707290430813315402042271285099770244383148999124848169087652857638081195909947715098188746756291097042651934373482634760482446356278734644361214321092140986933160821421305238594674799892689799475890309489760709232298984944871260720431597273759165496651709986901534084463678574732049841682133971579993299567344965482055379608417673903522875483800311077065707613736870948334231108121601954801733119940346697127467741481389731785664693437751373252618188092518874486787091844884073871175891423608279437312035725140705343756120042893751127073551095666366989794315485342669970156675618473119021209041176969577410570847553598389626925035736020503411574118771348789925980153044758507740347605331078157712679148386989643516085944988720896224666171686312593576836313720694826537784743448640071446431973263488440455813884817548797699009763271536143705363027825494966117768099530994256794704618785396616180476218922336725942984598887397916940100089964938613641775409506116520402102477773566710789758645706992265391725723757379893470885224097274027970913171307685912672331857914226602370022362514117854840615086840927953497812241441922358349705271362087581809980446121963806756822304153061790884922574839182220041392664271886935503317593357528837191127036821563159476638518102433260644778570389475629535330321696620204944837288922677227807139102099296980976592538767428122447567164836336828362625695249094782830376896785526338695893467207913316887899947000816219116538058547546682708583240773648169608527575441024164002022606215058332029610098079377346942743443218458007693596464784115176754027894720545097777032778496059076799913017757019102248648685752442182776098301792795432155338430539115215647541830246766902864424549343858990349342575051491945349752493623919452962630088732017034551195641733118121803810856974101592711738872851531319731948443599449807200890451511390035050352453375715181940393160419438631104531798193626367540708352512805337940414419134843769623145638939514578107756001679014748309942927170535435825298654444705396363259492944085764890786099556476528696909013279615048221483590475529241059215233785168400715553379898901854493245859092281678034023542851822885121159594389115385328022142943082551714621393370595323075324521803470754360605035006386478368304684739181956158097633116752099277749560286959755936915819001495683084814364326072696403747889074760641273269430492887480548028992749884472487456840300867737396980307796130453905989383688047114460298552018884812572739667235993036302753294484287087379346570347039056600548615269463401228901094493528613492543746129204951249307770858828973500958717698318434726068471847991259380628540223411762209724085124554595174241099688040208969922536656845228502695365917542235224075719646151528043741000939148258654105190801235128608375644605430621735958897616943521035815861519597788565603017883239806932728634724401027084013253534788344007295789784744842031949069126861642181161211751672103113385751224555391431898842200793471271018439507033510980994517076391492649267567736738708296747071455077865370516319641664188411242686586678677301240454027934643599375036366517375310368396567498118349335407841861569836694623411144839112247889026060198523541883471306330846591160866712782563116545741161710360484791339542914038373714900696172812586515145201560783025115884546391557618071917934209713050377952295519631388234667572691784617139927540430163764191897387619345187264360081960260547635596352484535927178627297481924115433302178080020642605918245183454632500768324004944314504550190070985102308545615124003228649328837695613729383445547795189482395630209469315509784589409547104623260202413451794810370902713168876182976432648969995158576394710843411443620586541556597697875207385453582999679348140825529504264557052583129881521217139498330721245944925380165926402899140847101749823985106481166243635368393866586371486107290439527335237651509045342335106570114495885617226576497577719663564998236374082565012950220732096946921581719049064977263177195549233548722560560249037860811361647279364024319471439611860885910537480577261464230998717329720942082110888462878053854493152678845888380455424474369188580169674077954155979879986420625331824219948671391108104782775976388406472639030377390910714824545087041609027324442999746394074636068356968958463853016087393846326900120317208912416442881948559836326836036902190872658105445702314397241638514349359974458691265370453483073135834311417716223868189145204278586347942101530996240819604030459902692103100133251574499488548984717917697786582591495382452617047058672802076244625077352293237372554152510512412669929777873261541002389862951458644728304266329455370759675989778195201105196369651100951158705011548465007700459871940568560328858764904905762927030366528282134028196452301359418661473176362793427011624439807140729296608034651925851667486294217005305141514697914336834078933816595501865465786016703411841742260436198869994142736421233140907527249186033686482368411680771500014962722603549820274381075751770311282516858207158795113240756906036174011565868776008049728979992864637311162182193653505475916227956392890104441112943980016307450287742145672107629066377533950710542650631303676109830209512569633020729359316242998283817053687755671832470615169195961462699431914524417570471504196410378532402246315324148439239934738865114018403717276772047564090605417063544236049944179824025131767152246129496196879485477529313836380050363508905216802526063757316814171235073167814425498684100075071920885548131047003324766445623792784780891655163411833955914035245443370773146343152738169520862917409964482280890181409471930285292385659882276325088216684467831244313870800579541095475977746621306183772571115478466868057517336673394977205189451761524244555753258460254444150718692833189703348506815892583996361803230971709487218419784541690415718003811437643709124397173514335745826018277633569243183965585716536282935652692839902289904967106900689859798979664241020992861857064352440057692807459941298937595070987179853170946058885790772547094794262730985483260708349728909471495651521180196659506513331288969401029542849145376032915598357491705369108899805030731877159681245159345365166016326147278752871179764185170335868864148989241356728383478583047588581962590211858118312907834870767230932009854848602315673662044673727331357797867696224886850976343667924562155523303151396939635605717008989943214634206801880291271201896757348745848246403116841573202886226276520447498238621218579328945390576465036712873600635350922985355582607644364099296873799968769965817815969222762914455663252458075890717735486333426150320886920057744621255168001371131102467454080164059022898562193442947313441471208974228268393080682376614688739837850770073531739619222972201358673406448390031373719008012288501500933378698427830844904259668156007470340723564246646300133409836825811683896819750122045784403444499141888698524895030382907586447915113048454769949326116182259430730778832742036324419635862490871971831662873584648033980851490907106621129508517713143630528881166953317569359928846174301371916483602334135646209156340680619338072334078059936183571869016044510063680295438297619023429289157675679665565970323511866283653865485829684223568789586401614484651113947090905524544145512865375546813552364543572628449825456688787574579057609839279884846606329175923382969907857387412792797888714737717594057353513442539101453739321677057768638434733315504682842432274828427800885803238274724870154228990480381647921702202344061930382699745659829622659586816192416460326878173186475826773448583570404992370773181399405474950982187783918772953099451414595865982333434241259483831927412159474575994041315456929019371528058689107700209990750615204926112133068288840550514781132905641784803419928331224728733803238644640039997981647301987124753467682003901202154044418898343471344208689633847659843357709885162558782416702955844752281460707426047651884151814700711799125987110302032449942245892374579642433304005176054907166797500887620641529487935923110354646172564903330457264245953610090829953852918855180555443006538261312135396155754522442694360229212381295719218916568918306861127602139202786657266531887531478885223971342598610520863739936513077032245627607571829640126547543895953004714675720985409340242413622395384102633206743814193055733858266733885537386166655318360970068070939173968318633218713379433520299438611292689885510088081945515993906118887691884625644540988434291946285988019620655255872984764771542480562270013019263018910620450313341249781197870910075892118914476211963718018852646803604193327584655863245358888920144739374303909234945815889480538696506871352284310580846629714522934347553196354878886596536506667919396693700621480604340293710053344748536970109399216034429953461859469821130364777766399490393575009694004725608904719189952392874894759976628131834005169379179692261771814011307437719473075300526754147696849238974655152556267905345720635899920393296926727298680429201597293074811882664601567259051067950130401288190144235314902276739752578915788409790723287849238127961348484032751458531951981441160350824187688906306583597948616534525718162441198466243472961098976611425437743502705323152881420292758012879889741940439997447437521794743052996459978364114962951576230100384781235908400198408352709753700279792307456359666454563948985752939985149148298967808540659135177017594396332547497495694047452613920330166777437510070282324776620060099457731648928625060436805949276629269335704260640092877677914458355432095842520874120694663390715191181332414841349114319465307069561198417186702937898014258822259912269056833768671746595281377357199496821395631346623904657029951763022484980330445723153400942093662050806159565176562252051376450654500837292333868277013316650424906184853660670950372105768499192557666741698784962891794060402503448541170342754702204896998859072225900570330802298835820723189869606682746559351161189137265148906081666799386759964891201303278671589788236908280060172031949923007014183968555088056622896622381682728070782119181629743877262836381096044230612233889836802514411993995763664019571579084091423134029431835783371321512650061860272782687335381007375505937899129429409152309059737755663077099405878994164226988691810765611938320162415861736531018304000092937169089463288793760968963425132082526706674538479252753592603163441644964973913665972860723853207286178349317308287956891379432721087192891062640591884265627873748493289656771865875163754823577470497982624720159798145008104040863313280993294650299668316479527338865803261955157383304430665340609777792416494406470020359181074046956744288123841272411861567622295100110079437750860572688789049691473183734713820705116065633594889845431721728921295818283742408635427576614096203149542497219385065435760393218512554524367045518159764965952436697541655811930437512248110389362372461716911891980422174520583951219865386354050551530003952384444151441244563538396312407194912794310951618178061131108075316869440758076132870122014761493507259132877900957846475981222522016576923407231714671226706988382051142010288146166252859326076122293589780063719354958101856648785794389841896774069504632227165777838496410458696605453313719499216594696793747350744230536026555058069071236333027508818458459062360837381683713769867177385918147950380163556844132812545472472369014118540926921026579186669459140769556285262138537170707444053694165088771240681506077234776042613576482882098893132719397861317203799675937043604699597572744374655015241287460532890127113133174482611374970963255014586621019441195545669972355309549585932243353201450772958929849614983135511414016949334646362059460011893751464206699373219294725952507821981409311292606952401186711756174659599709585658626931685806991955151517254266017722894896201893035089401003336442172215013787245070275786847016612819517398694307995795511591908351233998022616843586642924993980560634347922670726588077023160888653364478682874741181743908264808983898696737804604519782218702912462409671671871063319983274648542690141250815669050258887664983960493445100087743466681210896658305839810878614375196162007922120785256843904532837947328327728065043454605851629747532323782275389148049677061225556817606470835730972969254397808085717930215204915237118605637487371158387487705981896568231049123994556138039005121834644903697746985066170545081848314554313882025749537435508414668997244829525629108638731958403695923282895038892712510185913516796710729635598477224388117722930815267191989925522932484953705159826194794156556333386633819490809087163296567296104348132977816822759955471058175728346799054064845880315616883164065934875337328051756409655228719637802149982839269514295000013109287804257683854252321517689367599870784343098020218574163931418500974214746081140735709004111297439822372535749271559402547325374201042031778666193137269522045087187108227010860691262506715868032489709922874343953004631032447963093942617926946145913794836588580776305165327614707623962906104377362866178400570179962959986257997145108057740032431444202690701757475470002457258186904867411173681362510650414266319375318056411445275182332994777047135402336447250205491081933925158594385798257243929392311311576982761379034323498815550678428096314073216606089295851830378270285341855777774014174405732443378557876550113627847774914713474026331421714075900774719936776516468360439822499860420817413439708389631522694945209298958990931055747258532369721612833950870825441337099681761484557485688787033459098524154928389444086652289722077779046847570861039519600860796877141083399953703632495678539808103405379024710803379120032900074535422466752515325690994189889757733470341702840670426105228562337362633430411270175147062990652633637942786949680190045786400973280973119622106142123879263339119364327767590792884335968399387858305114312817713233491308773514186326715652689536980018109005490127265037908492711332794701979869062467227814295357588250776159798251147657350640746141756256068278275012056068083500784159156761981035197398140660433559105998721475010602097869805928108861911536873226628956780611087358832169282836373378459810996811933091391419356921288868504142513209009534186812926060813871646473208000013673016684164575949891253953586184199132661740246225772792401736310252135347337208129400997441541316948637322889260760708690933273977765378738558130785279321202045702939014432991503463436412909546196683964690329668099766670864361954302200931928963607252662669026376758684194253366626346524665477873021558271678101182698526689185003748948517608942886030508683494855824622087010996420495676720462467931228282939766185681102158875612483939262783528171211218993934079346638206569268045480214229727386672698254826285051685458763753826704408740070583274350815529713702997690660825920137916275878685412933382683921135761190277735739806364774932047109463532583675230218319940360931073731095787008289397278558434509401356329273011484508445574347119911144266698956920045111301193096154461836288793731655053815959280255806245269297816039124086703678182585043306966115751140312340013470799839402990730991537708487357288718056842789294658292086021331622659935263864306555895808214876294589544032440618738548211920521036685594622010985709841628271093733576513182911872234648180143749542621503695918887233152900263964561470670993394245692040461103922828358179423683919980230796152552197848934739335013068826242652791172090063445942511296815976909968687425192011784385153587242645768220485140439626386922602400008723207973327008057388673970941469445368164826945838364504686792804692380782770566666049771505274819275098431438668486912605250937233369655934056103727224468185717323844083699236099671740738784895147174259421320158692800504719683281922243964783798104774954580448449209803679326250127236810161107435195452884774350432314253496554280230605162528076791388919097634161243893831555077483570078968003557229355738611087200999358551042860750878614770285387881604209168646278351920712100219242529010392176536045219403495864996612930830803086955975235607577797113417475638190995412392838784925510298057679218878829211555203587971853171840407126488940219055630604919686781785741424925976708846158020794737759232477707499423735006614341884118423412983855833793599440956768270272416058946839610228666456252438146457422837557399562979499309085695522382291544447284197018042658099332608301768312626637377385655001900508105209407962221348496361250424867601174382133530937270702907502952336980296619505650755637120634291916678100214796491842124088165579793294628742186208355980079907115051177342826055884934337328245710460009437825760985792901163911574021084879990953137987724838206379735243377822632638929356742624925924327202815088482255262664555206865233907481785531263656757170967036726760617770049336419316281105812446559353486188663592616509543773363533427887061799959162525975671031706467233750922683950652075390859791659605564703612715421439336359643622315685136969561327650753017751831524316312591267013486055433194250241478427583988738169732247628975377781069323827244230250458036597638570090659649725026390265415981184704566293352098310133748504354353847239099846128812945415815822885511280182629044978805129342078493520761539721994610863247821116168690509324317401845088497807823957313861672548027712557537369265828234164429466597392204479114763317627163511436085412980136596398695722580064780591221237311245302147959612350830231151500721392638497805524455045556488991187841250616849178878241690860778213056069351972177032287122276362410842549763545203883106337331143684286811829450696061828795199549489471822647778691863818444431757607895540751111514021570320535470072195859226375994328224194777794515537125873489360610669147964718907360364963045525663838207628350815993092143301982194699445902047811747074278092108594298644279532772013400122314310705919948382947476146967618521461735002485036043361316000925753061863209736258456907228923827322793567157402988308278206197596896088961668010602670890917654017308772724162063748559163641095143068667310272636317983388275174200638329510785982593665851963187419878740069279760419194934645485674512226567405611451588325201160806267225446359168149419608932045154231445919750325797661615055793801483214968037004958599801890635518318363284915553268093975940496997719084630973306090150820362980115012570072348190298545505441496683646752012051153468064193340026560009252782398096572521471859379740692471299628235598028663720566832001762065788272213252829652467842630482554036273174278380756541914541104071006752091772195217277543076179912775404670487293840614792393861159421050175555504019655463236226319108799783800545804611523835292705689160368637284905129357413560430739640189735408790988475435471367116396016669372116742919171771516194789570181631134886399507087372849850326358507548327602757065487302004024858796074127080415558191848632178617085052478713819448313375979360603007597806135700186199233608660938908043549158001342805435167642983109898139992437418178308513214903133752176736000880291607017050511150167680335565235582507398593431579399651589245193231239302137478857578759306152793070327828832623377618216206393156295074237943527238940928638210563628210828145224549506085085159883530175713972183457067774786558385588079593008140114419858972321830796760522265129890727969117715555394481746043080844703499538436358691835248972284443288355869182824211397066684957830194517866957986922422866789607308273536775998238571925306872220523079625868853387275002664326001582359268201073856950837295634740067963782409940746207757652803604919045182021996681115672636896166180297996021704143952780613495632895147734960469159408918199025559010810869944024862324040658433767720689311853172130177583654237863044505175345923029678695716064917633547131974612628735615284412802965312367995462175468511141411700218400573867679664405040396747769183910997695294931740520828710308352345021237118607940494415717023885987354046607088185120534556467036723594895761545003949237657896396696150472711565216113314622117128544151078811058266873707176940226058643266162939637040671512265978779072876758636428466519933710342757932377194711881311265501818548202918636598273393531000236628341304208864590799209585458904789722026513948534211670087022664044096289016896212331666755395439548771355037716917487158505182672013170863946186179213170393830150322571152274990332726464203146380643444474563558001967618077450800849786197733451775091853138590230561800399170191764628047216014699138905803369081359568746840639999441811157768467254911723242860025743281273364174786056733667562067650963812045444753151003326969582265440361412834446401308781324749517406013367226335597879033603115367849717708943436431079041946067070069041829793631333063447905754295015985047387271094884210482901474112406976067796192267018465186048344891712145922441039708358663354023124553257921705995917691020034755661560675580720610532902977573712755201200744236757082472579061685314543176666664519135638004507643425818333721001253842766695895938324014378340387008868067671065142782944364226519457997999502962437290317173970654302973366203073035129223717998174093733911282882612403083899935901648230689920690101482292759596503212246877086058071892126312782560200482817218738559749765212462862116575741243165559363001519820602153531774257334258944646618595692820051693270617066984373237540832100461841910950108202659396986447938260883987658740846364551357644430674099731051112666642364062862606360517876811095236865409894809389600214247156812536481655781865420995581215657675967770476711441618700066160582159117433313706333133928731545613615660288477973015073997476907953733302301535217003923725753034235392042247693061412317694437814858256175650108359794265726509135709232555688940116649029107290187124067267129742106144653367434619955028258966802241045455275871113735043930192780627962807653706603789820474875667759710084032365954178270442490368165717798039605371690136148211733978609864240547721693055256553264932675173512297478214330352783174523449300433856121162878385622580020848269560646333894512133470229450305866340010963391511850156344755884599947625938781766313915395479652927193152413745204986048364231235556848922117969781029486672157598275486670298823216590586211590205552833009021803108719040177089593528628379817379454869725820562011517177176396368367826776618952591433607828686844434061541934251168256367277786406496288104972293440695334993780984471767806313701985041208161793769682985430301876009850528549144914974302067115713510488824825025998639517690782395627215695800423904147093352465816093868053917364889453955838041037208337140153625896411959637781285758402009835826571576916492974827344053285871290507318954070168104723563784167500325116859451130152345587703665555781062698622093830144470021000538930725861519884452618496638327117996530185266091574657070055389923899346085765240491752996219319756102437951777861680287695277929671185376234083572029261285676112000864721271175207871924189016663398014694504148946677193022280959594029654611405913561905753908610766573309127280935145653837600401344404726211040153115705637335738189652220292740525012483060157104378285663101741726709750943489456830820853550408474815410490149354628169391346494231494875117746534206991967718318931104656704084722757422625443284693100208900935263489930414187152775190668132182168904343235525604472244090286485485468798872773533061167852812653141321055543419306268359632114054121205547784184935811731927525618718386945703024119040505775243509349098990890489049687832684680034334077065213097055707144867091744974184819097628472802838036263726633347512001184569227061858316906544051516523753719002927410715026005167958630469877261693971803870859453930757108902845884355325774462749618465745987853298837043271742093116884557553730399954188257198444904425113002845222782170615728631092201459937716095162173814440988278100951701270667392231855728723373566741346306397440137479377561472920222516198719758490672289356060909219575181769818675910974981349478300958680014363338888686094964319605003448952774881715687107974178167726887423574499786936737259747023124002161813111991170253148496008817271706964423530954039038061416074894711007370152322346751404663169344162827813431869899885075555679758557562687670707681720745716632247897388638411516640312783456350903706237196252060756212040575911738236214598019315000980236633264920138219553578711773073201564869229331556445999208460965576446703102604304706835985443586133957543992383329776933706421852599663201696719819500005374800712250469707539604155950763799325487624540287106310898648125250053983298460976703472618115041577167032649229453550979818897540621675512957487508443231986412056806460894477167125977044830405759963338408148637555689457522662525786021792467661513587120494410392718143173147096749679265435096600773139549348184882876982039432954842633967756454392627913226004517024607505733381014221855526794721498974681982749731563940620755961575760222027068749622490882717669033094322885075926156270976123860138082956369626238916892711796332244740701825704664301476964850745136725718639369597823942086541871538233852671928674831920564271241144101370265757059092852584994600149706969542798120788828355743872367890317461113561122699470665560473416934481538297559897402395573286310705857744497038474489907943685511056694662287909028590975100062372077497794292004617299046395830044535023105667517892272040034186163320348949257854325967991588891566172526932277455101763339414756587717443563068728236621603313730819880659950649379350301588781136014016565279093539940556869078760679897262798212204061905933248884391761294850892028537995323701000346705988012307431464007379065951696754152024243750466049885452070694629531350066890912548762001077850652926424094645699008451207631016553249517564339239137814839159729382163514523422197411037810762319890353609341113182871919053523110241385502766604202075911093607252566381973907443942877620757507681275725841255547881242464861417868927250985497343174691105771384673361695709108777985500604255819689265937315732004937937689893161690994114175546336494710228238798550801259930931426394870112040084384737694918583606256355428798597686933272494372351525031755345336946588694473546701324431131058239317601772122811999990603041461297753593507830465117788219520493668435592121742249417262315520362373897464321158322582395746612861299256315383049497544324660858419300419865726365147155460426340673780670787882183370856531035551664233578561013012654717765487076643566545859602167827025946441827995646272253630496059263308677361662094262411116565109516273566470990759742747350939117061198048991522613690019548450141677715189291729392098307635966757413268747093402337348345436622033666196050439081411965558037559129334393873954300596816544038517115406657046287853432664003248690183530504810373684876843829647962668722918570788723048944441075110813585895938391722801419540342541149473462403922328498264999816755775039209328224708939965073798094732146195021485167479531744281027187218239147970788637266110832358892715645756312250396109757565681789182662705161541891105020976537271685676051933408338188983349131266647117432502093726827993675044063971443919588586474288925974864373140378797940274700566440210749815715623707268015383698918784872980886494723760487962701113885518827140269326748252009291854795349989166832365682834725772390115021914637086827278795180394682705335415715598810821242082578193151770661556523180189212215375403044230355995851951203367615755718946101760567145071304523744272573351553509381101784526146940499835621040975146345500781480596170577911357141812701777253051041706607450970910714818652143834706666568585477020926103384929565483644924620693018264805183855856536820222612226349265594936222004286993067382108328873792284548854854283412441212347540822676480500310053548155049238497587035024176188828601574382126011455613375656664524280146365490829645727077982063878990197338825265374022844848757329091360896931267974276273356263920384000288970345747163984126795737929081082670379659626078684779940477434464571104585203627765126334917257797918239348530547372621177043064342986967578469001821746998864705318754308698940401084601520381475002818160981748489555052725065305359993236565109531998004510942466635825450163337824318547920778864828041962512878087412614360723110096150455347649672872559243604070978891235274481404915116718082259214656506460619947100063678614084881726751542971745938135582482466680123049257669155373289625374614325868819251068208960243328153907315507640037376768384749729701123182803807308633642805799642447082138322369299697850663928136785909512081743516632511948630286326652456452216678358747482327705735110612052902668657958266478437681976459843274347288070786480122495389120305380608243642648737119767852491290875378285758220578957633711359590949467083514718998572154841748537731921452603945565100373456993224139147079007949969072616199307650197068299461764908319810303564942432085544048779705608413877391122400459793140468688898824067446342946314717840354552355126511813035492881153195503839733151552116300402901101749441735809176183491191814845224940532437984821183343576470448434495638241078663673522710466503562387513439303476396643191789911989506859920537577092577116632463354692384073668941710780294233656444368083240247105757993162851622210850538961901417325549817747007012658602089311203986981398178485880214290197116641288678391862660218190403565687737008284293750208473124534581835955203775896554669921740844751088301850501653680621514472545236962483557151023170818173207194185050768530085444606139833728942486319080704961370475476900986321016083598352127943440381587858911798773647368116414779962204569265724817175395862074578929320260444579387837724826288493634776186724435272407834115435034440023186978047253403635443721606874175890722154607004055548151203690979763025594904106901759707970848857393940734437596093382228729096083610585207701754428505550950778069029224337688316121882120044687540145287692347328461543053312269141583866355500118994742643130074969381268553404528624039807676074763382107324715452897148336032589321220644400117481145085442131248896318573552612576378956425813584168385775373996608314467003518899048377748104039988126063161476494612102184043139678906450840767340427237988479706359790378995801247484008538151516118857075813939435301204053742319309339420522398268267123986671626065405099795585218037672449894109060967033433473143333810141023021504880772114445893035089713748983875740335298891357724828765755561845601441852966465542981075736909252485619782081290553384967972140416732735905291246337174981020196417875418330047305945360012518162490238663492137956598612636600236895678961243391723364708641219831171993253728938036036350643291632070386566493472292076711230331969770642335802127275207044299579157131062140398969119875808176009749926403625020903112567421416595531535338799388947939334317750084992658221126719463156856202540922222754091211022905765172856722836413982679478840941552438142523330457020232173363465897486465277222152691085509198302188424196542048614615729181499239981072857475954448963785761356605839296455999179816956291993778389095167990450110425962781145470494200381463620063013610254792278443750663356916282662116817006719780071806920674549251686068802664146612296272705865341126343598341904977173423836756809558326417221613034155899067936532082118846599360402867303547621963073227672754042924821976405696141937977265785907169160703931417170033107259219487062490181073534182224437356741509049947298062123675529192029839432789393320429684262368356766534184762923710951847915404637311271177350202188450025859762658973567561474309212674359259452082017847964575676035100425533847223325866738930048163242334673811900484268846875135661616794888981565781904073775196784416389014379668876077706440136584122472589347830842029622473009540102920934320495764265495073634107114523408812565801422937277593098019098936541198502654555309786222081446331757091923105068893156258046857773932065498387063973842627724112789146112103850044793522397336730224616784981793338932226081596018851714327093931713765128665692184819305561941955453009070431544241506449978233686889286020810341825050120082017498978507625131319647335043991965213808524134071974540916906338418380540119975774635190817962110817344900889882516437891335128896729599135773201551054833826566808076991797524113650081454825901882434660074325657378792593986542211010240584666674614126597835325951088308793141680932846871364625659298444001142758493730903932317894572248795757029729283924718731643084847442892791800899501354513539456700284900155800499054866951837861562686689159302118428129190436853946811093421328375236670569284391507756059193637307479986961863277068422972394531851020193917676592224486353124389822233918344583035513252458090824916616551460801379853614765678195901820382165979362869609385920107388866020777954970251381320657536585459425200570455834806882794273116325566986681498322125851320058140136576448979584430988450796187466288793330373324625986153219362674970680467977903784528384319456592913951669520372378222750682385036140121368672742779410020475027097438645444654336326113635603866119743277529454478369605111944203901062751388974263507120261846720622280435022469978120328865967806528264954069937808464404107290187933122588260515753166731378270183540594489752245567923000848606257197305122174590619519688023743781869911637542890254090314504713972112786467851209733944136135416654089322638170893393097879866381868003503285634554676755804235499306890027535536771659726407284685860979339774593597238284892573245361144057217953627857010746255689863137803303812747985028945752861717140132569437717581983905341070728432267889471517991773968087269528528658561494185875966583565043951159038361466445879145123018116373807087452680658372541743160604130681397010006222252331984415935484602869419254283758685260530117268966431389770659893705338711479979920830369229772280170176614050623960861146306068581701127507895015326800072161807573688645706149012538953346422803737760230687783663683429111617113509626790275069693306926574911563700428792755465575432102375250031300962979069510227776923016336044396842349623611507572198729873402121212563064821715659380212682108263433611183014224942922518474000070727197725054675659772467283614745488941046131957245317577087299339057026853731305741899472173782731674419365848817657613019183117895084130719142973170483083939454806647231336755795114465247572150376316102795104818673422006468463970037407032545135412800844683305631484168824683147443336667130421053152038771230312188695543904277882134859372104273153802472539569933116472881844373550451450045333142100950184357035615090531486652984914813019362184267383734996273400954393117944040992749505631845160874274039984979321287573276088700549963334077429213097996859151943273849678900406620604578273514553067860239203907020390676226866207861909581019832083612579702682908772292646563719858627371603831952311338478550766026085238409904337766218059680482631539763020941589966396345288733713707528329434873162121001123162549332804556694600181619631176739912880291987519418983017134399193978524305568380849060661958709360223816188277421853888706670416059754898614944972935338359795454508497360657473698369341723602007638348221026670951070322616405828699995442325412304432194779384495428882290798561902635179476153714207846212187898303701721561765271157566287685440653374364479730403114421417866841905936518375803246442740003953528276828253918396494518370918516906914791700938133513678280890983268010543069997757677446860266364931763074450964153490372079303564018923003068765634078689244750708917880856007139587483672979269681065131145751169146264929164814990149469405498648621690224520438039932491246007740270878528549597567868775266347436187657806749600295999224214665135504139809696716190782611421063200295166089495250560890355997814499196986191591595201930076239683349720568733688673207628503969848474700852621798443106216633681193421924125883705438384408832176619081104984649877653503171404604594136167730278397163525311591140105678875097309608010085434524763718587392338373746559965610597981923256638979222194771960736721428792322494778378218645596277771911462728662422268193594384256964865454068251930674390549339512061890625152888436556449220042369305278717726788210459864766774552434644061706899258764643921166607088710982504579396721036282328660115905520975439425699228025833255560560475745974687914276552608967797483465571497391919138950815102611485269940099012406127561252400658483397884758992772461686283495793279964058810058559772475691155670099808718337293219631634601483118639992445061582821830769311276324264529599460625059916576597813358979013668816056436303263283129823886726020802460581721910354116013760422664453925354146626114945935647167385977693655066405205558737015671790403908267198762335175569956383105320682108680367701538898959329031852095038968568774888108781592074537736264060311074800983761363194260852739883214964766981317492726099071360242870339274138783394030830500633005115948393439077712260911433221148860842518614597162658068629077495768984208299613351647788848253337592159515659093902738520176063320543208302760225901481935058647381998161860979496802351894975935831086642228723245656379197567636053510975691788148238040727865781500699431727829506608578187119380508326013529310736290630224143206954141714786232740310576873137967923882944901440980210666452993196003701056863103391524381665621722267947623774105321950013116470246523318561030394975664785757911502792949040312047293764564072055610219681005207894258049153545315006739686042642235224061058363879898224556706570195172619418061703793191202262901515762357670709958824088200130110921257872026819092010351605628289951285468346147058283494612268055702033171244600878144302243216731295013690746420285812677286029624929262400010281785593591297632523008957652280441543425255839249961524841280181278864331053798599142645080836446971026777374498937283754652387341556790386990203708273181932771191214765008384042445547857301568698722083813348918894409092866431520382334699693526770638558186842172823601350284574964494581415263799062598624679693962016674988547901709448526719402566303628319492247484610320286839451930320735059457324184088573591797676574369972223523387243013966341563746652627857449530807642004340850727600754323974514854782059563794418058324011597746234883534295178283349554550973401343432139404834593937764858168988710828087509256253081402304749151378628120296329095746898708982377660267629222038065944390043508602098389802708980112077971190183529849035754694091709229257085258414156821859379784924840243755707048219386736391804043581269583697281950441099930283112889508682741912131460911269748207211989011410947378427437784865504527472079588544764419422904148120748021489889306969352706297259456090710581726746442481583825918444354817953030687708510661495578188731084058321028629751253884068564386741311667769654790840974263033730045239774408471601143794676558671610032312499883379712591589119414259429730711029947537992892514104859890126704868424244041662184860003582173300041554436511503203811430718521503223840941269618775671752646413889965655550145842885893316077103267495446706801819720773488512645632575323307678440459858208067232097261278026933450579399510926535245094941082863689208861471503990739293356108874435282722663534278615191568894219901490177166183193505893500941826836800343831572902943777796258167988333973427290548406775122219775017814921360464858288102871123427704910412883828705860295731040751206124349353885146908838356128351988916284387643942103710580855615890493786707040503737932828555712442954636388421763448360939659628299705744598934407971344632913762136653975040414210342195063412574188662662875463570690521431878347069383256129844092292277332708294080396659416273432169585363327304794530986168601883154981143523902116842218537882110580758725237603497828033026795115958166728988188820225377562339651278024170542872067263353351327104703849548389065078166417856313263669656229545111682994978106003895215337478935269044930756976106158909018550069928418802645947676129691328394860292704243616802528587991995131540541255435121921305717344864862435621757209495954031788037574138487818535460888023759265857583171305683647623836146231748533838766789248884953211618471934748277038164762324131488653962986224566522026172392416570719497273582870372171275362812511378586305721990656563177476818625682419660219672917087602722402255853837953387427789126059953892572234970918069887728413339439833826882222124014589183729208142737452402947699517534084162546057362321135388393889844713326248142289571375825961499295456178405687592485222856661194428850984522947598822243110985847500877400201673951445013188799389145507345712040654371312491927644811637243735718121225817116110532489379545369280474843082083283898921063467455195449742506323919837775912305849987644150750286785862963159599173376023285585905845046316267806692659715122499741231495682014198376711893269542041943288562953004749468058966874831263791034940104583313136217715876146820349243939080559191613724129965719700584126762345354551309170445388405496856348373854731975792405568201573843188513161424214787634075280592560848239353184659391243385190256535902294969387598372505417178966189484630792433113786227690231724679839165435668268548336330304460064888121652315069563639727964901135625848723174524405450087727588793720241580225710807579089685447332092259344171968773902474364958705728840524405761847976915267449917823254774406865456322495670852395168273274647728545043651217395555209920991716042896484318640457083504447533859013386756346426488913942555569156879834074097988320131631330066318215720008951628187641287459081105412926268384556844183533739057147197931159456641236562642742241063001027815415584987906234740340488575493267435853581275182458731789811781146564285529702682489814603602335006900739242794444566497842633900098432664349936942829775495317507022517530806749852826657694729375070151263065512443972425122061834121407431191659414808649192314286367474890371073905492140541742753964035949557725016224370084266231842344418988065284145781011912265735448106510959617321764781765431866403209512870708058178229023046256376928879384388055397391513015570421012038408076239526790946122410249562844476949417026645154952156973044372211842216474257946970010900828166749723853307136533008515736612315244412555606754208386536641652955523199873019909973965902166205830790462806830938782921612394182043193457776226983558861073409423950169457932952529062101856205148937704950449987796717502709709540826848488003283940804014839063300720321343286842890717125293889390847964087044831582438631067210642588673232387044026629319669507945318239203268287575983797684440813817425465427046691692748937492144990598302128635785916489283863324520002881126544359250204652203129181714478296234615825896892165416390836987060215612666677502798589486440768243039403564451871045286934048122500146637904542680041656871446330669366437335604668848968497480125663418975704402673906492250158197263947217534527787317764319636168057214224654334852979994267100258000638129520826110446325782126159968721246756994464357103178539509606230687110578414184177330418475101635675754173562540570040030568457000682316887309990011577627267100788582664756212982118835486787029476295965936614163518375366770032480657460789044191245281793796202563283885452031075541715819701604959208171717730807428064097424637070654758807662257167296224836513689259584853759163617118289429436932792381947717900854403828989882888161420921234391250427592990894941595827279714685889026257986108771428845810808125011661721774473735294928403015263030695038591447796797793521670785524334480956276511007746940111726969529251553348188354953141912337559477960771817209006749188105909976465732166956869730712843116638330137709111176904622954189388546382983241961587343188533947736137402483497548785141851903617100421599919826443054582443810292531776274455611315177593681487049223854552965481063323826633573737858899011188165671402198436961766023444370072179939192318988686816931227595228398791634292942966974639350724030614913349938945258155495177151939597133403105981778254001225297645604895758662340565620495912235277171503690687144055207290204112592855572307371325049219266181984336737467955250787187105836388991889137838395838664717544516436932416147934047290621302677804185594078850582078229083011356406864927873742865507376441570533648332878906534323541963749706981447004249631093860478855245758028538383878086171159769099421752618851123210145073647676207433448245424944565753674505835628933756781721997822440243996130864229323877768237439823546753353526563097451308759326584794809352695847788263247225214163677873334741746529006950376937825153755537408003883761591767044464400487965615511485637849943656887847469071947310276892826339059884988939543984917646033653521932596920265993600076557496728316844221954612178388866472758846690781753744964451015843755366466203629893253507826474576453917720980756754632724318231862504127325206853870042666533852977034138057518266146246389459602387162857334315306410970759194211270922109536986299034117144702483640522784139765872601786534170020699789328994746923268659120181584748976772019033898743819924213512730364208336709922700212609023048525400365736433928900093712955431381311590695531538394105575038025518076140007481847984210410859717025245579324658791535661063978055347155582108127791348407581314953579691518975287731583397096727383712621020675852006747647705508010723556522632854383834446301600089395195570710424808145415868597987329831501528191828468801534382897229445780385670980215219354676884539795925077401909252482786652123059628707396598400128056742595163587949214470412710821549232982398756496490750970493432066756843146990587933099388925798506899174216383936148143638517262790042284336141178806478116847095154723695875081729427389482091196262888870692472562017123287485547743481318532161841870502293855199543630512117478553843788708412130683066266298811158055551246612484184977301500106079635193776958327025363030807548300984578555399534478450760246006410210288529260944756699396984861689822111301216080607256869083651734809652627863717431173418163215945103276685455091049560929780108072003883987791480345939859432788740635400711030803844999078660148786714620192195189692572445319579878379565135997041717387426298699701156365115757436020078090020654878924621647375066190990973516217761703278475349630861431095527706891083016754824409142889081292145506693598812620298520836581000767530325752174472932818865981849546495584331954068487711251749552654453207185309696811439931765976425893449613619190612528080958654559856944360014059411635407897669152898099032358167383695243439381094853088553252008975178619595249408341559601988570982988500401532411221657734545548222170614658350467620052739361699435655893336396863329879373772210341635783900439685167760176290803199253259809538377413526800390766303527742128198777886069200365422851357947966059108953740985859849559693526624995433350926546021405224964282384220415855225579901027012217979445652157095182907604125442285916276103057845151264875953257827398432192973599581202700990474329046807138174397666330115306366252766836688599982754122560541162583552511099117732312062023444554523300729053778511758701644994124404265271818342879518984491280649845823021871749867963633287167472632608395609808020315305633738315133314228456395725350197395733242737684098702150985889751457217289182822845662495373080897796968170725485332742595490522676716181917624968943202675680252950904088540430493814829763835419979707972878999094803442011649420685647205314059788883138572803350394337317550007370865174780650276163319008070705623804805536214364227164080382263951124867866618087219148664662103315544982993597065874191873472385121112392737075833677917676238013962367261764534658726618649647078929681353965530239852110817687517471920625812681551551136142072517369121710267109004618115294296309255543101371756610103551269163452819122805988645750099954480297565729181975406723815687562746948634552253924794507379897698836116158554540910805013120413011839672968169483561727395288280089374723431333578457832391108648240767304775292784971510520427332159486717048026305824046845561540576611133101465454068032541397596962788455277660072084933511709075480893474738019263866356883501169431490280485619107761637002052335217416895737132938650006873222334095600365466452861361468485110394296866827887793306088581588477832137297369065651907254509551580691122473696669980692745540500832929993436347894999460975709054778433796611895757173673969566965739574306249684658454245070087689611119428603088240187294925739916655340086794532106843305658583238625097112210145553830129610941150154245600944050746580972057035325073279974619013629079349199100661113065177163598864690558670492145332246746138118460941004946325857859347836456050509303802530666391638125141014300439467983164944717089265977265692536497622238304467560708143860649592680537765911074326382371242501114868523880242558059521700546460689475747086318213646187384898456098130934907798963304661150638319684391310805839118259726786381045271247889832925383718388829475325875220326531093439472468818166263915534502587989183030355996486053474293578227839090949054917797148561865417907408985519817003721955702168070860597474920603609372405687246667623418190892152513523324788866230175664770468047589024916664400335582032037409009114323537068183474017159739787897128289720456578683311750593041305472834806632505738028334754804189484301997190728306856141421149391263212436744744312351683423141916845172810554512062821171409812310169259518678338423899974138533139573991415017132691773141477060009215258084441035890440428875112903811986490007835003669830079823823234582057505869143204905073041730496054276375727330452331939498639575536231456574150289262087344950324799251265638567829594992544267129910006294893519834399243955730179372392580986595663208490554374381134566221478554731509706844835190344759252955370277294159262997129212389246767550690389591862219349286254623897383200013964323252417826746785026300663728647278978942842204680172522838175881563826212760129126783943315265804284169185743268079564534845077631270824395645266258672024917994475413821545125612677413466367407433673472467687680408439897800297331707719274907427371330421749876278914590970984485169063946026194218567285244470666527245804227601584183363600495999054437685231548372475773852747112504661437730582912705150155056789151438253242883782147663518534755777894322963500559729881904959368772206756716026468196724024004017502364064158673748512747401568126406117334487471736039212176156739295681360029879161005016239699237776139702065415678900166189328246753062099681740958811208552466452704267808121405754527183778981199122781162588657738185597242880671918740792587558191708333969039770670857027131001992423579658614484339389373386357240645601498955551925197693906950509819051450506171558350836547759827862481893696537749369837202195717120364057978034087314848291519171276064405577018937112561261915753055714387932653976290473406073437509808351689634623757292499737061631557547382132441798099880747797043158892534735152472285552417549778413099371437238657787320389415260644123649625635170287857543630063630372181429782006219703183940791132843137322106353373344533907981044612960219259137217462969728354691824974854417973368486324623689873887368467866131223722608577714608056501664385572943512669488414512450661858109657699651290062902526029436567293034322156289361134922848904848792634563815132991080615004785639690629012660252715281453009074132038128964354832734835246150185885121963373299661604117255558271745040500627316742374237602308616628830536552638105566592709148977908615016759448465866945563164143987876481221788082621310068956841365297861416869928774897327867095245690335684784042069472630800456545474216997695768880534803321817499311253699700634087803376380866297057387154942296039365491882186892355778616213329405144394371984548722452665230179187131779460572656653088272986880867499458131514663921385234703808017955158511783330531196166667824624173969229601128912370981069734739097955421291804170836014154022658487406529306024570417349431908750914281561846059230293584895631702368791125103993439725742814854813411259163241264119166114019046684431374210466276650791556265023819380892758104528799055837368394942936489335934367578237779561710118837343141624256674944508069663185293527430613775069025790192657509557148493039519457047294452529147685488123838785943089502505732171259180558098780332653484872369506179547465887419153621942350531050790908667038603313779115380568525816005655004598050923176186908048979545721107310151473622391317019151214731211522701715135827380502553579082222438671313946190863250432755651841848507570041344086812731364058856056395702222367436447491734456399428551127353419813181104798094897289710587846860537616774065350749917610640001519683155922272352494444134247381858834829764542106066880067788569514592001147537362146097468544238365047657212835350243523941515424852775306621301628980598711580225988760497207680232922655717853191134042720099273064796075956935644643088943619483433911168438314714547504922082591720111005863180497848476335004357779975269232064263822042678275602373832412687725093864252280776918439679880711348769835844907017742247194075512467644799728112633574548422089680516912055540384087344809755817335577161625428618902511889810896860195427276653807474692915841991200925260845563801599480146038751917033753650780007750957966825975325476843225486326815737716713150593684519059640601753467113382725262096400235289328699330014414917639601741663407624255729261103854873679230825131647092337423545370805551439376036956631516915277899852071051967011011442799558418752432168691649463653517358391272064481129178993255782116608784907022856502111306539893754839578451226730919177423540461196197160382449645957921262107143899055320271746430698876865108670701946479992650185898101527600936427295005615101890074845523480771248347429464509648428656495582494275352317447406026535236801396273335198630543303316271131170459205629182124809119436841977055902419706550815036140663762356937490366906982022993492933951267851800390282998461617712268280577787836742332605713487676684399458950308516688674546660314930054780525077106512434102736297573245433761036826888318789591374387761144178619248836711636065701831575219789167472944190521008264928473739320798037580229793713345491705196547612118429765773650419143928042703121949087644793339802705383260334763473291323937439131444617903335392415779706522084008128468198946753998992080710517033966461338860433137009629843794451236876599590543641635711181900505103477229564758092260604761269647186280520706680303819553924348401331537200260630184152089599761947584511552440270927805795875086063093520998645074665011738010233273043280521973848528343240582906514307043172550361185700874734025208610304706655367289220066285307813581693619525159771522084449696750649629014449773407079646848377304040171664231289356083289559911486181925684847034220122779861319471278687770514909356488376087596433697554110075118239922277556027751507957035438436241990301323563146219325736143655568193123672744181783990330876310096854550618250861079319015121868578300051267235887882470772948964637905589979059833980615985489899725480563962288043913864452521263631844569032895341347670684273638770304941389396486453148516865628566114439411277790342720461329936009429384607783699616574872499846241940903530786886654426786391340618514143763170487483433053239301709419194017772974008769147998631748701307249506933360342406787336627693842392023291730514219842161661313287964684541528189023631647338314926050961959157328386501720834919103143161561402218851299633919879634470633742739298872594385811318128929221181234648167898994689746046931171755864463773065641682460512081392020282037774113876857749390200515554379312791909477657040094135242858457750300227310378750699429509937436675951779373739323928190578717573695772931119581601210406204363349488749373488109296795499425514098739794723027760135127716389788727317590420273773566774158088297032569977792581997043499701540366317512532660719537671516305829801484247731176011354767282901215546241408472999844443944450074425374108338848081773174623202430070097604741323747866044659344099491937646761406937594002462407793303781705356757439223839143582023935487397944029576689615345323136824341047781627121559212542713090588369892204969503043790260400972195609750773110771979748175039745992820954686947198918199560488169155936261674289520886276142568481099704775663159591009622932656636236077665186830830033433081193211920513516004495104775190924300724967184296924240657177791576449644859438705527719900872755932569611903251460968129393119886647805290488161829181529192053809264327669463296440962326762751909275719270229688176941105466164618795622589373832914262620776299627713573541436317854696523348907046986831968985234354853532238933313064223991689660932944852030038727283430817103422878795865042614907090935246635688707823072494638128922450465664803719181519287172963595568357467633316015870533674439265765253543584757485912124839918442847266410335451679508849659722354488700308834046733884547352034934849563361176300225355528231574812175635864533973598339797616147416033361408459753848566906091508633595579062796454448041740881094249506766986491036114380187099293630575615292778478838483298599917007417886731650864941930926793952923100632692277223685606786610987405168370312876235441392114477044807996492881625322718556945401788811536258441486347194997339119677912478312419442388081124662293103292053500506281937054179050538921578547926696692634655372245429431241256100894745162662206376619182809404607047538934886463314014521357284459624780631617603833453539675611862873729075780104563470589157273627843909079092375761689218146016317659185338425623836071221562367303952101953644087785318483107964343646550266611313755182160202417203962628384647329193199276437594930126192668912136854165866143134492959550013483189035045109682104562936841863642230424664209123857843214433019960121034075296599947527939171146544380219274156248737474806815154614609798667121309710814070597888434013649551543562860282546549393025897515495069846791453827930092684984296194678931411236748502625074973483314118982529114743322574900215418850329628260656615465478185917496712584659219507641148703692114479462842430860497840596807708940078279629145190969425289754743994272622279276064374898801579234579038181009039455714702930177913898306017910944793667708831296927158531476208531626392192125741195342656383432909128661551681767617301643009005946969558914428951610207806928513475222257947675633780413453634275398409965037439146921291519217821912178547556584065472463616326378250563095822287021730480484133366194247326794682895319205090546121353231527686759047652041910536780352699908797280090427572826515701439926478111122017443999964318507326020377101910901838359614503778056138159714803807064877675471591488529611125577349085419807666704299240837088561765303176489298631462303565959262510766854792449230113973980152246369845307010631611022028886947432035887466617274919615301848034503081213109313659698540051818971594570997085380659334009939133200789411033233044193199905798765955843688564866511052786272981137397437325577146754675454463190463099619960645895591296475373756152051080467890837152478807877036713536852153726395718689596992445720409288110238723477442749900944551516996968855390339680289941294911281289387735297062785371551016880223825907358979510253481847327977863662376533991039816583306829252653721510459690962146943555135132812585368915438615126521961627212587797183447037411432761167410709208165654273257119074724623301863781431941312893664205003311624436227185208940814313263088398962012582367214952652838949136644203833595590307413516503252252304488512658529119898515909850567687627368838440772968818049130155685768993700289244825647159584131671487457111426992440551695094687211651019226878022320123242116665846109831612562967106666820783725322615494648365064136971827998189950645219071049398023791223304535339078380462947506731809636077940672585410715097905067762150586865697674882621692397589536104411110347986895729309361691260109062566996485425892547514709265286098621829949331742492749904345802061167783125555549824515085044352069729194003243151793727571769298015701452201735801204236161100034229103105932803465940120914457598358340322904952521399868946812512628902812311859984094744747007117992496661921806635366265236036859072690009649560013380014376245967653198004316673466934787058225192259829461180801760494785275533849181888313382597083251023300996683600473333424082970347860044683906622719036915572431050326560743318727820494191897184390950284247986959130603444444849874898589644401220702119420286964430686201320143764486984983475493245919406789619061843872225752747525320110293552896090766832913696618807994369092148731088414141981832047419831495039974536367764675175042052961866775261021687277388332799669353023555599352829166700114369013893985692320541283410683467017806677875579935027364971817610272547838168773095688827118398232048425465265747070767217326879909874601241813272657354830110153144793864071541781911846320966927744672079203551654119003652054870016022535528178873751613750330566039035808824269060724542078294562167997450929592829233487520324320287608797431337690796440302302722841906116709478802529142929305904093853703895085696475630830559110951620657227860296651991803395293294360787386709605170995258548706165092293685601415082172803665725205315408950443072663954415501942215656361901073727941624176989680736724810404547478496698736364628520059497004238292281389134314441806754864029217114960464281408629036665823695665079085894052949553039902791829392635400489078090126359037221792740107020521722389181653145975730539762774392213762012049489556770886436465626787123044356390998064815371208224795540659668251923019375167457939051823624775398322620242257303393171877030386669873749688879524584104961300500530889872152079691605547136887865773180459524366261063785960798842565366907129015421212701834216108371230252744518658185323105554230526095648290914978297923094205381464404637835117729923857858218586657999500060907921203363468676932916905853485315589883158027471406757892904983872328447590512390806686337571929777697295840077415271765820597502553714033558212068650907907431082791564450978113421239762329540188228158497332178577965794556238448179694829854896958938405189391864319956326038916671291542631864014211783636971116074195611734427927377365585048673658869720031905041690617667556612220080249012766368340938390134199178278348539628668588919767122488519233933928941264034402183173551165945963944998423084845827751914379438530349602603785252053802414919492170010659679811623024656970897559461270773812046078117864558682408152616053460568279688145720707091044520397183260952724257280279767875803409142932180221857689393226875714728545946064985215060063517249623675816795503443238978885064473818255211993873711112766391562049696999594861661238994161337290271298113967124095287008182090393852495604782244686893065566140852466952788025025189374272330766072181120124910237476394993536727736897055537328541092403784966845427487163413052085565958767544585678300809742540446037665014824850277890352504669312194985771329468117022518954932586541728180168516483560795150743230806745484271545688396840773992544840338889970274310174421207998033846847707164089689267860035142119610116944063474614721703007235986533958901080077486717603928800693972588151679291958030743192997156642994636328151917503772205951727575542821608382132224096366130507298249998893500363604608580749940883579918181736212025003019920438447734417873374767482770905733996976124852168278525625498134358665925611437095792382719126600006798899705825070958359458018971794307886786107548034511173435556208218614885556313195678549485465804387760098031868772937834093754762022680455309667217178664410844579806195190565063166827010331357924122662306267054371583095486982289770822348597639760443474082471949153063112287537092331957841268347991310374804943310845549660061011604676977754066057285130660575858373987387568288210512576718178579468718678893187231048735872826524552549692148846267069635937170026843257686945215302114632628339901760730130618152236677749330745335058026715895636619602274273042123604310585598350819308462292799882289938286935275440422550845257051246553946606169381848158475757994040240223685402859270711180111246147619337787163141745979176785079902308309050837860971471233272212370127602076525004600399575367965667100384930956527204927357255973421627249720025060442874546328811821749074443338232875400760233755450037178264319908428161607051967157773059996518526959118139724250804188333084606777857537107444255952500860760236277988887281987498193526193607374844414534504766440373436807101394890402844807248263453464098871621691414001851202226050568185760811978354884323014115964716881959729070725818465143201645277960535644816084256580322005572459711691572675520350834239501172804538628788581930908904672471365553969426462266196885783687180899225605870354556898655399615883059540346072999857388989168521358939080634431573807934302092832036959647241510743882117350611654260358886469715977766034513177023783394629263989736690472554152923585812442461369567294352745659646642134667154903273690089401051679943599095558062302413630086182190058649744329072035642785674371309672271458458525741157773119086558100219045108769840944530713117398479229359416910883725880059853287166077865429488408042192738690166852472036250528554029742179739332072717913734383269764919927463032299542571722256576394837494377725694581498381882678004498458372551700916832242496507731774082638285807362307813120659123574750655817528219207405481924481553773215066629539129181562290282810608597923375456652955255689504578587806753111905755448468201823451824371851299794222695888023287142422629072574623342125336786501314793169778396480576751533226204326058528259198119049698337923765939045269310970189319524471399319024555723017583519115523351378092093153521709438071932561835284964712240525260149729615924759492492307139392021759546009120373581587241637061747799705238982846233282074410364576364855485731277788320221376635949662882332633065810110424478930751651236417460530288659891712777352438981551617925336803596553850557168558214172255552017408694928674307816068687718394144540389901880508088326398241374718212779246711883406668493798829378392817470275427043834974786777173580981596482682302439432704263141333702130839685469453968652109766608816154906088078051530568575269346148521455879158869545669882306914846489276897259012738288902678812457566768540652201760084208527711060686501321636144076022623471028007020017031636965291140319532273794415313113782167024593183811574592206724320312615557822659054668434376611250701537719424134898171347230162980083316857422969510846471585616449839399985177835253215773100056520127982146287841471193032944662366757999068863605306434687430189820775027343785626395580783874635156852159394051960533035450215488853175219697357417855794733079862933125912118353348225060577332644444246567871444352274931647698865125973047628918922147197551331794409181278664525509596078309548360146475658048640453442416345670525706941419892411552921730273924585965382339770217407466037701446917658327396911578152246253106787366789009368767445740043703266624092604335133918963102883290838775261856381535573483196918034602344189657121812592439850804147398987911743405333681596486179898692212491955777927391092996824543094422034411790525220617165032469297524183224535688975544182958381809670075486162982518185021381588298203375325861707639084794721351003165846714054300595822845406835223518849008139562689162872114136286078354785169930315795238298033446293145716523008231114845289050208065214457908032427095144389701184172312390675959892429092048663311286903968407112306808066875734716752833246621504946162811976102272316791506001055297503061231931046656403399411932253381439641735828443617017106869669887445167246912912677232186186017347200484136679078126013590594784099736253158249876213721412937779311020609980162461799108547410318048455940893279883493914115964235428374803259185593682257898771241961158408653947919052175453238333726066808863979629188877631101172669148030709459251397575331582988787057472851190674376406605521590309100590144641574604923146043408476971882157647254247992268718387029727712171497189546522023273319973402550239971891331900174101782215050434545963775302171361905183408774663645118294046749838256846721060205386660984159333082480959516505412979278845730205089338885416542050457579923827842867353703061392296860314041922228332288771234865485575258672076356452488786179785056503836814199747270885688349423930927138662039617390859705043765361385056100064355076842861676216052406615507323806129946586398004765052917256258225014521496674110848419102243018782280034279212760436092796883522816466738957458034572264115904833795469602455535709253098215199704010041130752446225775733310812001411183975170859459172426597700953639822507701757734089237794092831574214228824949183902422701461828259294635531183623597855508161315089277134706788030105549735639428506766799280004087308392512327063849712947905684811288918934722775287246507057784140480664430645215954258395383136875341857817587940698307808430306733272479772683279068425330336267961033239594683275700387379833183991257510378136592945251527790060742510183224107335930075260377199341780038200751748277111287568232157761379268080761347292229933128389456016419540965906340453654276732100509534704808044032613254658984611020802068044849229452104151678144788245917253655220362817113465180681952949102842614176153478349729271426568739414645117033946352833211589045484056916478479237460600649473085880789646955719940789913571451963652014692169749762860078299573277610679147931507091140417157408621394412674386575925856752142286730355347603953702683200442702272676642768083398125960769921475895653929818530646230737008108049248035722102837124957109752106632806480437320007540512791737770660412757997349700611939024324968189231306065772725527214582249129880099147351750405221387619025625258929203932823792139720813786666401340442319696384316238340447512668743993023608839731720431817202511838463293083425946258328503786685342276941306777153623275981406417747031988097093186478145057065067267681645740119853269959088446964274405162358119380525983992329957235128609784210527251387214579439708753531642423512353352258134206633701889312631844411058347267608887303103783323835696466165901900393774727546910291053249201047104655794259960127699555236643624602495329282393438379534834777350872031132525120009458422284160083049813299233784425968546045116063076381958194338923763305024367075867253943099647374180777908547480222775665680036032529622464946332152354528129718220937638599538315579937814069873427046940778660590085459954316124080055991842555608518905284193831593177605814664255979527165429826708854592169257194722669738438550949349522748066948547148573359526874905474679910463345318246439340937789771197502442143002028984699610680054550326467192599716289144800805052674496317780353054242145509915681005761849329339022143804960278493292145063097731882681940026818312036138250528132807268171355769020781303619913067501589032449359750372094553409781064427040959863889185834888053606677412262450068409748996209214861586406289162018125283220245137683424450920273903763781876720749079576779275884256664235370195496308338271752153054895997309284231262662717970899520069797948767342430212984798531975037383695667863979644966064196432370553393476371881845288454853111283976021588848810030171176622016557903830300144510792112412973624044805558851972310578146057635416313878119620093632930161340500481566460329167521420123625424430819313349183930882511252402503674204219785742406413489952930892937172228949627775317797138605251369890693372945661414838055827870133065025666918015464557119606043827058704977879127585041809774234517874545282111532761327296677693345136719391353322754621419888936830423116454202700059452154827878634339089527733472675029899620521421609964363329207430531964092537345971755950184669983357571075461013375013704339954002983830859553002952454440845388704934546885221320146132255059888242338324138587994604359134162373150403651281796025976459337834332258091197526040042495141540086484135051593416666427086810470070817919622834187060606071008205470365194121255159291589036096751140909453815400097317551887720163607921739117499344283248567647087018330178875405969195651082515193538481463964427993988702257060198825542443879011223110159422535014440835681014494379231146800470114574255256433531501154939138030913034538809594322226056659367072269788637794728180820753646958701070402716140110398713651064630224361006620073059848894800274595481825808173822480591707197971138798242059396714927806166687955142911406216846183351798996662930058820973926774933960674944645683024814542321485252130764883911239241000833357686351411864121278104884639625655842909868015152374099083136364623322799051196180171560238969466212824363041292691974599373441718691541777836046681734461515444005821447017938523396040719129291126037246980974750724436954515939825835656533517444895367986154572348324657138275166346854661915800153853801441098071237284220559794567391218928261934120682213195765088852796934042389618637597903899899401912967738023425248136795243902317094656570088446912683428394884340656202744117421378945683607901631955858601651916644542081777533104623104115646633324013673719202983348383022877785229485914067461852563679690883373505600752204191590851926698892696567252236011025539451952552464303927940325250195745445901913633621710201662707154348865359881870115999311318812100097667534151312217960801574534970655595320194251106335258492221413121858201257799543585364510869533568810393292084885943645993269931173880966643024521959354025770838366095525926077383325370419662211819809719366489282667548935202332823132682741193633534612484299762310187797617882691346417329032619807310322815282083465833926824130479934039997630789014828596099272980105605764213003294679128162200667410404052320198506098466776831191516556560225365162427538277358119915206787517215718121950641223701000601840687379144092854704946666718158107880197386141155564976344704244365799955882746400412003424299620739495954207218441429096201094290421592012072295916921941916716382790742511380801870384360210466410357415889567686950226366992752186909250302757772829608442335267441469710695897720536068173214442279618783780085441354175888463238471186983099367845089993983956994308936786961009565399134682807447884838343001665008791584843336386361275043236689933122048322241752067506531955280950470143695474299390914137159224054612417059858212519055605903448488003447166539661422733429557684936437409167822964749176888636814643099581844024011667744155891580272144700651811656067839051058519096659757086633926086220419824117028241364446983455240890044038109492429116396946417583825873922084966212072242038630527196589409736382911305197213512495506699146092845116332272024639531051080830350377230570862005749829636115051524167005078521128580162705141556237552153863737942595065278694243040805647927166817364678949191106747679540499563781204686430551738329662691780579505719473884407656286853945044197512857045960770966811096632099210797527284919938311505699303662388362002233658981954141748152488097626032151834099778172353878842005234986378938626609817263713783333971469007953928800269773589245259283098583506183007899683396376270737287050786743203420799810209108972248998513985343684625857304274308262735609859452252370390201022538058577281039574474763192347265262680099388833571240134160722334832983952525787110234814006002848629939453499388788662217424316123550848275848982205400663191514617828701727250651337707905070283102293302596366224702773633604723859970043837492919979215386788023801733107932532142543405074148894979459694816381901728156993980447723750131113200094425022292590050103715667709097497300363556319742927096181401217075211774628000629759069653723439120029978117601326596419123220036291510006355832985138187136411652398377896529668676324307228331856469383746689892402292449432286032465921909577251312930180175794190093097159329328117632705597925105572497074187097995023407319014272434145037311450831119207146477277422744476856748793574135606180458913983982144082998712116097949690743634166106845673950958160414567714456617146746007421112618343718347793962770947768676097014459935910315081250860868060005439615945733581931880524998276854397164911470327684445439416186138392595551202586519121931231599576126208898807275961007074239928627536861402962036867222429159064695700823842012481669142799483384016378594414366678950592018059787263395130970499596917578479742221822730187172572408173609811232673634346332835806368454892508750927840802230336228934490395392488327420654519195541791481649626226827931825851902881955817562779696683488923486928193422131385908585568769084817241518736522972268568181404684066778564962492327450550948449989150208130389080918890566974715786784509107011453831812087263647123990107500754426252894196655510380305148869189523398896641665237037887927703079944511277828049867001012723661060676271867003679824347096919355312132667701653856167326222432579120608696240387011487783752755826269688455740218948171174352144246771775270656230946022064031114985306609086178543830528614822534442882941194909617884529996062809504559399092031951675453292147187460442266137753890943874564308409816254104684483038511856186272175981296543645145235722483788320016221233340976661203250743122496644535551657594758013804224841878896628400723176669863273695474312242042116761324331001934254808727197221945485828710446237973440554758512426213932186508412651714711065813280279345901406308299922552126910993649792677194435712462939113200915345998158341985880326161839560588862335280369580247119838969638052683043244671408434606333022887571001804058291767742546525952566805249343697106146963802841312631568897200537926442088766807560323406848478791008722904890537978165766456135148327361847413968488077335112189785104921500985486984292196573700317954848889083810016318748249616499892464317436865099630576926114506133588836402776304459152604128227364990225687976153007319568910948844558941838478479839821825208799589654993789746707207779853308749588767118231424285185794147558064763240717806623377136219288515698167826472192580043866353382475236756719062902319133223505326970296826753760783687920143934320696597075040280334621695398711171122396214053611056993480985498130039663743233506268935250996470946432407091899352301707529791670153873027519385536058071019291361588406641533956973822457736879101970418734446324308079224728131815771251013036152137990816010642012525943198903629532364742171833210676864028837166971860970346076980019100299540691391032931855946075687938350943832534660776940075100142244752935822370958122985037646476975006380268438969979786682347367253380302639346574750246151005538585642396976372432780408504202863888834979632536470636585661999742226931312385322859670392148197250940744438925402653688558574965717418704207319328671163989315832769533316768484619949354185673868657986007504878557375759917405762663191678668305654376296947108240203804016211489471353271285536286217968082096959714788660132893387513334598259424712088777765453595534828277985345622214809748177252441603773002177316623208176995392280214063342908485489450403969243586562748947799799853834078192679339259069369668667087853439627323640563383236754392651735885356463546057920721069245998611386284450457601705420245687559422137282016762962270851590695876240607030026543031064266891203195828671671618925448583694860052999040867344983087036595725817894033182017111481798070063873487586591848080670202345679084601197325288957070202675034446334454281621806888623884465280982928549823868746993230139710056965890620289028519995636836149428930984678446075682927179179118199370715338622934591133363002758438217025893366520678980284756260904454205538667382057868440104626699563164742683612319803763753945184362428450807054139752439576354765587938182075733538159437977290795037907168954800668602852215356946545717196816821863082905083828966359831404978205597087662402183131714603022133750960668627452898976838196967235030014000907537921462345269919184734864370392386806037734335466993240319512639864016623237435205153344138581636335170861944125908933909303557325132770981572781265198696439696962956617560676782596687258286455642088137810935328008496847694112650199921213171018331872919529956391029109502450846162671490786641406862285524306255835680796438349177659212572446154633908710559066663488940704924328726941311635013526719268986184627464332444833156783587762336733058382694597087805725977571043635550939678057759536942938865778942584861398270129947545574867937487274963150538707475075028998663813587123465757489669397991385134366411508509860516177456061273425642299014636829447100252556310923807748617371125051854955523600285166537955686318775527406458374696829993631005159227682280276337403122750825422785821111960003092239491478393675749658554499456795365649077881395532895467965373908367739337607873962256332136757764220124153965750506152114560328539457295496303353835285277401691174130641702879985868336344552213902204651592409500676548480208146842564418992871532874672959150498494617852055149892516011551781855445403587830571589122483375543969506406787553195504783773225099604872459062119575897150171012766916318778178128178524242067513329605559833843970593611579440495919961025189826300892328492748027014075976006821516127781598009347606638233502152005082953517910852287634463876739967066304846532883184396779062005523333759443492292257353346002117864266677443418697941401445090775854991973111526193886434950056137826252679383678595832123790894217881250672220073614551357979965177761201646607257810282219659123338065166222805487843929278523345604635354153285277830902068988072223050742295441833494076312574233948090092242573180229640225078315623161220685719635714790698676660379667186238241930830843426800430896420056541219310585259598431769331944485561315942115165281362907563976400329059203156071253540584482099223649058203379834318128158767965159444386766761666597569987737609301832569146128949807528457042773199125760540740179254080565908701970749021219210186665409156514228214142139216170129883515990266206430550937056715580775734453897645773434035323811287716806181892042396451985171622596981841859279131831834031885737302657387419048194712535469685717740581942700962747037670447122388907200874963439076256018477232748009208868763155289788218037134576716141751496963546487111832742324293336203699580173051250426117680091450769434441640518383191352752613006378288694331351423432133380749655621301898550100702837075839361611017060067661511316944924456358150683246998561207721633832257032627091259936624201517426783002687887000603574183473703431864885768751088545868655917591215850686447304580370418537241819926740682405029909643366193897698293017085856255321241805382107156496661691111465604284376084983876371526428071270732023022045268144092425008495044328716299464401615558064082033909890719063668998895355317426748288475577961989949686819018369445892109843693351710079664541513474929095398380257719926332093098506713588180771542593563837439120839918148870161005153516689238291418459021352849681160589241952777639769230585027410850773732219919020835273835856713283190878890187215782770211356785987933833414205576786849472888987521409413308948430565805275022702891710158394892257556893349075124932194529105758451920686298016794312939484296243751455178085240348202070120285967538707238208621968587365045963939925275169656941929832120479690555008064561248704160738847359156108427437083852802634330575560754241380760613360285973435676548626180903460392287109195271696976966972637953266702145939751746694700858561965620534074829890769317172443564754066151152938855819139640714565899463629354561866606087339203630914250049315802229772152173704594949464112125320623275478162040625330452123299966176163068627641392313223108066342083744476174305903309300610867915919910779978719277582022873813632773988828280000809704775698965259279261327351662656191936965153819021403202859141764199822110727854080894914170975218835736684638717236878200313181555072289129353619199880195528042631898222019185566149233890230167955873422336150026538975040571725666149933068571569951160441178507236212856732313059677631320351374728603580875806365389370202607182771792459669050242475008793145772889429908030836549873690777485363489419610475875435241338238833261857143170369444046831163537998931327982414487870284097068421876818184666318005488932676924199991685899649154722702698908105491628414110198381566664254410508574472947239892275031180532539579172691761026724920687734694719835511596560565788985129980516285406094220345999100537969117885974176239574687699221588376755006867425455807194436951861559444888956355522543928469001015721430567000049317778877402022869819956876834706199372345216151456973279265394815517581834065957715088901627532553122470009913860352617870400840002605493093355810253588159696540358943565648667810108617450543325670018692564812167380303811079005180320927597471167830331709217250753145114213391706630341455373408116819989899921528603709255515194865196373688293269039162629977355912784722165123285978156284686311856309510272218947282057022337211185435896703604345458177975758925873371591208631032896758963714221151176833745636132720106796736565396472157871969836006235048142613519739329839960507239933712934339838049476777643270720187716503791990071957039663451431050936287221203195155290937280669183947547074535498071279065118567309131995992905136946177270947081133474698280254810102986266032427612231883311184336157095267124889578862214895457378658243746581000545111888129126580820018987925158628594819902448617940586419660877054465155322606607134284706942458436929464715154515863651261558168768349633394817007321865155153057914117596476872378578513248506575845712130363373069778609358063923753506634771135741242411776599325408543845476563124254651524192074168546571770237528811016992216467652606117252508247514098681819604947474001899682216409174027101906145256803675473925402410221292298225514509650624884972004485612271794034236300981156052096960812023966361700459339142366634174816763511051388952000154201528935987916080975241451624280282998988614131488139512531640493375097484445396822322499864967524203750916081099658497290059534293616182575492336710606078278448014630081277093463937254045066837880158323205420223846994079079699051609833634676018714147906124325142314315445062340553215942005651525249247451904191558973265509160001212570485655327679151696259946035139762387762455583129093234657923761544114017623363467919498142483278810683735864428511989021741340114208364646652397845793314044620520922201397382707063978916376541538227621175755603421051787698883632992188514580246838159971416927778964208426659120792864609269827058559838402740152809060243709438579154907764218580678568764701768277113430427943533148569681502046167687430816326140688054941949474661597289239091072290253430219453773138981548132131500856680181722545082266255596637204216225054653856740025416741557868304216346769571396040235098783752642767502765267937819526861052892258901095106221032242854421554313324639500067805565453458841720228203965449161844225103504332447335541932991582668242673427206378259144150217860791933578928877836407104500455750250351660214564349175206673061476658167897009049640387215029068632261960540240603935134554401642848874980399350298449153519313104693960871395128455679819900595862004314472688092109728502298358831457543805405574037978414508567282103176559378740078761567686932376944654836600071027278426087676271774318273834237416037663588219540195470667722011928140704558286979198855924485496745701391644227371656525027735000241031784751371065569206196162128991464539522699791551560042358942682621161775942984858747271417837277465982229240714500845232574907831370376267811083282777218867038210907744672697887449656074503000081738268128249442538407091585149648177633496580856257779618712441244331920465099393492480050964907369798360672123032656796667585821891505396502447336943335921385001405249418783460045530912797263860007950599190355751090751523047037369590343526624623330117644878885173150829438947739177591773743771996103111401815199014423499437607564922738674612585235693080456022781638723867693737066758882464074546903357487816686190374408572819685482770833959683731804288063064362216306289967324226166086724612001035892569741743353674241242973748493471238263463624590689117875559400137175567377480594260898095309356964333791342583859101304101500388271628657441849864980427575129031187622734238397465873497050184861150610623074273375189104814991175940379045276314807840511662014629305304366126344688604848040744962942067376259522773832735260780733990634759140284402717846615431468663051780571690178696271462354666319638639774117880050035691943511547283180018305169367516311331148003812763533720101058753906305559169930888691916633138252453511959179597003266228575308711598857637627770785777011324416126025965353491151238066640825348493136489079674292561534038537143964708887145609675837448806929023184069462085578812893490039438378749638833227244341542360689082274957539539923635431558882719360117830561187701314877593890891249292123867180306534673931000068539635743658706774565125427696812525533446926269189671975342850973480440902077193013502517043432039376726897944051989955386327569046765495522418329011589475738326373633044721613241746792426296125483720709540117220703198289432228879570825897012609127281625085705272031061604339706484029754950182070526089803070651595692806824759546086355403378424202818890858182629256961545199508710883577330350285427987072497037790718509292204872678263610543952941748963219805219794243388264085038792777771784933824161045392158342613931568538269475618143302726003601756032733939696129829242664614702216406730463741189831341114894524455862032638627272498134719850041202917421342663055807861388413977547263078536750983436026088283519055005952168948836985803880706608707689994616461984997972983581157649372638509024780686109328346823311714272746422563649281936809238281124653058139327980871054587086836658569731991934485450707148713509039506287228577592637793183713473331784612806786428525181682933753663663725852911074622682295225531514182291345371357855559022511382802247939432031432287015883714822385805414496873248471857632397703988513169787351863887687928175499194460990898605034389503812132071309095630700201468245040139280857396490842373873054115302292334640691705473079026718812008898702442283459141934318114603801528728791976174771527502103906191735806656437669693604469161492728404813126257403381351102603636490270403634452898755528132295585285802842202174553042113329963963617310657246633414390474948758738553205938736446085910398136545409234354819206697227703796314926014749198451986943109848316377134245326673223353547798168848978972010343690087428071445189856777656442374714325173600764904539684167017355604605495761037311235222881007446720218042031021215875532130749112911046155595319710151017467535769069053324415743293938320893338217441546016889786004538543013975858260564060619817946609935236342708570701784001146420043293264053448057019994499190678866633342544996621753427119378577802596565245379322870780311769201542976985049422541680315922692330689853928598716492305207201575965727036048518348825061534948408904726335343813040488596294871445728326293292873085260017198080098007869871281710711091649076141370037513782675144516445985251739767091099834104266198664121709962292966464668818300650265719403709998622074060818121728755459164065062994759739535847322077734368264315155818158564304934272102044442506586757333559646416780551755211482378502568545695401352808791398308571492676446792157675451878163423457877485363704243772496154558840015360418389833819003088578807806086091311827116106632948822285893951629289479329755133142345489537465128437216240208466609703974635607967061727375278169405928600854855888926479372097925641196860298408725457086711759943600327857913335269563750015962788030126722529743750655537190911937032185462588548536635944812841716346296724545307940748153200428126873208132122725492014469291090834778279095728781098411069466332769932726102051690025711829235011184404635339510179818425406705306304423718298743809401908571415026901316005208481570179570045345593692339164280504659370257535150012397041200199944652768444488969336041646424749099288034428801139968795920167627735457938166304532137147438800904500489841639100321749634162276697726825372403121250242725153334597244464135003694999429993015530459971935828562208800568922126014211838080207951069545731272494058768537317089588639461817470792272581484426034705170723827088353112513916030977079275084598401286076478052307611138902133576768840745498121862301692368244323968095832630002904602603761025053122453841263189071295385107030765563657851151826827446357999898041291580873265670842171452860811852325913715475777997577240259049431718487933486908486975946130405482809606956420006397906036214925289233953620286557598300798332966504500082521565280102749596166300252401319128303068080894913826142187517293689851402685158705975806966593171123975779540283795611050174743708827639311923155747009051072242599612515408624364824260204802068107083466561360277431772733436388596067954672696357333061985320709290379673607224594869026428422601777190552790554825075378103227058533987497449892923642408565588722025629731162811433030870867575273739294470792633251680550712951499572418547879418157270976138120210267549681060571304843470140098969470553074046651798137955254345639382747152036952301729444980005184907649920304471542181931575857830032676076370782590596691117385516479530793230865540047922613478362429341815074142361636248819351510533463727361008163577496493802358635201725491005091135256815744205042456884558866910736465768806089927862997249090943111520267107146475677419412789553308055278500591192529671272391561136349663473192424099508330804400709757495492475690482793538500210135826370688091583197264068163346489023335684329791098254355914066913058235376121468238046472543617900607460600238540889617836041629997011493932221737853610284256939746143531608148990249448058036565062905289955664430902233078326368126333249516226885748133433675647427415121901985700318094556718887052916026072453730974554341043526300248249761163512991872369879397542340183506831593209266732698076019872020396571952921514045939676678699520034642255546688154554196960467423438893594972354565034574593458641090393478217058856670511098172568119282577122966296831690155929932195737289680630415100109149835589566841266156457766960992920863617821027974764695784453356044249908640273643161017482799852975988765939645154969997273398414778824918120547780408242594956920201513477855761494452735203424171328931777171095320475258190012207232694837342502494447623871747111056554287673709493352660037090831548373188784006371439090103566608899335734035642421485230155844245581372068560032873601159917206551661311757571235485287256284871295534116920558901132672721973683268316513811494058268003382299692934015409671298738934455587997317767247583509724278783944962932187865322588147758013262174094854321425059120144505999514264137625642549574505102469441403626073106914083475149550301926004544988599357788774846443960205625175755231180624624960976112383416565062840312985257034759756745197502324656060539251378022327847176564101926058927789755872822065320537898671748762165665305780198239753058722283570173183418881741571764497511996125430995605554331012696036096377199186422413751746613198931589813866977662610306707305429563887282304491245700305941421739026725228905161899223448282422232214233742530046707268505278371932867581692268685325954317345128450738086652855810048680271224949867063488571137631216471442279392710007296771688450000619261623237523218174071676042993219565771374485655129520668281917137477661206371858551901423018880479632054410342605380398076661536338278656983458627277366735030441897688453044849109549197494527690125564514344377441538729475618074583062503375328194671746892768413912350170098918631935479004626508798113756140444948355011956560794489975227564495170886676321224452077461401339147165027539816094113369876430945957368024007365301912417515376222848757416503255717830677690946119331738705026044168201178303918332641915844684860560232803529717621031140405331404784688006790385287013082584807731780402504476449652760394049094003433622181962095523865854390279809995626428458973329441033280374062896672744269626961980452363389273235981249676833280327173916804689093325823953117716544282695448266131621877688877190021598178033352026373611534428815463802606064444412554543691030405596216742862309915824656048620214268919049711645892847497975964944716849513841874726840003940302282089125072882700703114632931043628440181623588112368441559800877767678946690396833480030585752723650840034799101962084872310315135079523211626409758888575613281930915679570875430710074209824495941258863180789413605572587946330892432156258376125311342044535549686050651942271460028808967067386266747375267350095347030448580904016496958001049321487242766513662546052105306969706674987171586967088544775887343904540873613647043286377066904700422756768887395108152529703884424376888798736874276681207616957018353355491975395499041270903478553262528055388625381837242368555536721052062284415953838370683812024048784413513876343524533358487218239051904322129176081615959828235497360274998132041301015048221055471006721527303412583808327288091966191505109459285994478629194721689102643838863909954517473749594074069210140925261579545409089849115365269519919683580056531824451972429253505498453811175024848399173191917612963646928971804078596366868184109901192202670775332572305666125495934110848793688440933676105858017725571246445094733060844871304375616235366292671416543697539236106777689788850691369403714793543540996255340994994570831439035950952134064792063603171395099382287793180505851776543614435795519924510184823446975168967171877981342989726989057024773099359925854146243662615255330143199337363845911742272385849887363210226969162516604549754452052072400630985492710445033411381929376439991738106969730476684562425691815730212192920170749685504259291834403524435061924630325881278099472133615734364142275369603938251457438895705177300371232769831802055901000547234815820502301532826319653435671786594632148224531718695754460128483830319286777642720814407406672508691565623941955873536768786448457717856522788496631311200136808215236496604077426325479284213579819395716323022904924406630106079534852463803349837545180188844059881569131425021850738458714784323768805027403534989399467598461645092487045270498939406874343154139982467212922720677442462128000791714486640029247162655627738496935984626545094327609703046334718122754825434966259357453342565371519685660403831839016350427433258954813386029898305587409324372302379365497995505033218466363374198075233738683737596116687658047321022576894388008509259675379920782813290265172018502009159567253192613654852442273327659316362159041315586019243567003799262770546346107408152991893196587796112140428653017707927726841971027614505856569048288800285730985719058979179985049077429497308392801489365220527597684220067434262287812878152810498880719873320712440943189064737510554598492494513140361173828315766416971164483925996000129649782109058278985148905813055798957110154197231468665705542476137811284619633651216062027373794118820652120598458732720060245703606931134747138066540554992989584086541221392638667651967593800453710169589394411954884455098504712851116196175381030085128168973325898258326697058613599621298002144419782211969671481873168227634010028559124054736035319763290285250042753561772335596978198334823261280696551118011592157346591711765302376568502151638929618972080382913202157725675053804282755470024155901588129986400020858912502878571172896501913775964484488024002822324514688851062163970910829706514029770227508668363169610413798288794069402624184097044837686537731091876332750840158111692914936816649029889023595585942284380283280848047853856543038241629083839225103803040710904161233696819484892990108837065743056878823656428810199220366589475723446323965525701678559111166790174412188354725943795800213291852606507844524657754995270674555861382341659489388483707968354073273483834793724506960924745201535296180786353040021535098929701931498231373320801834164260849042472653810272697435880383845733951934194819223380472962232452522494857074265782539079753073640089111790068841121502238154910570657294852859129947152026799560437368370596622758755920962613009293677910003592482685285609419642712669648313040185992404823654633541927989209078439532409919812031827291792288185045729188509715736090315158853092553765667531276399397428514290950221622032208777209288517928392501754793742070736081006386972708043761078297928601382031507874002571197557302959748485837409090439251139961324909847940867347477991947780416817142758047667913508462340062259449968924189411554219730142669224636063660190569114956193828138563305847198879697871292979591567939042238108697142151406363779365759425115357842187457993707666057776762966350268895274036762125291173549100009840352952330918596106469361885353893573508198352090492785899873648229633679953732288478951279632571755892360585802883374700482289013932134941719445997930535457182466476990091316616047913877527755754637235860668279443854291083428683079112630616016737869215642120303629720422526343856557746549518871162201306840767248463795024334044970057757592466816174463844988326546468422800013567959535037589041072751232451092782974454665118441068253037712945474949713250456108075621468632178406884700015949203557223710805990182718744014734981587296825132189260942638701963518048907785186300475543993515713214592893582151044011214400359368926276004435901361873751798924436991107782097927674445149147568553181375096893596908344078700675182129030315531792932161681625246077863319067729752864729146879158734603773627535558126342667634926789298569801708867911200745729995245359470188881576666754793546915138555875348092448397979548305335822763534670579941557049601336671981095226654836017652047503620844438496243421433767120641764833688567864561736720366961124573175114513132217810774497458262562094566670471231035117406794208657669332286796046897850249330716665203994809142744483116950457415169718304173638318726872616545228847416522200987553430000910888775199704329783507634841914511541605534108725022803731841654458888262476848635956072364964820844196314021582318654971842210985673152464344964105461117432994558708907591545580368458328456493586316127951944240388734826533635195748268686999127960126418101069816254126084777568765954239386363901587237372248969070025909005396286569536457976485525396960872469468386628216100838292047273910454547981855430440930313507983654319941020207506361497397867210786109484085347569129316969844017319550677845531010882626031606135517933168916622491162158706247812200852905939707860466438460794169189978077692367777368368731263043803558651323900814542576551539933629378751054440781083910113537647660414288667220812230415357281687360147930582344859504635875394886480636983220546765462295551255207728783220840938847891719148496266898120626495696993554771693365533201859696530665484954960864258195599721637400389626173235976846433135306798965163704074026386954865447136664215309344828919459091440081390436021776963190943440240857394144634164244705622848688407110804966673078280913472875836005928300583820996583441028056456075020013146804312772273788274014712799022298024280021371940750014268476782917114999475279754508721422502248279530259070276044162818233600088107008362638566132951149165655303238441420429762097677166422595392189427322046802149534931335687565769825241577029198518697163248177159967168891765275103033576979252654596145113648446604779012337564119641543306495440558747778348215052735004733312472655450636731179215301024733456643972335428728605999976222273493105960544747281393019546587083095935463906314763192387799416555327981094937188368617251992043138689749395473618345717341345082466064975736240864055219193995888600999582564134292956196251714562403364557146242384936272688076629467536161747744844140164778477976929744066575553004707853773310383133588149133085788245456611293125506284751953105522443327777469460526144285211032096945125751120824062445604024609729402304266365687427059222375899840276856391335975028892059783593652440130952304404999302236559348826931484088204708313127981600102153796323768364788476104993113672089180719171045349853502732205728744724617742325316003063596555289623593400510799738118569358344589350084897920813965492881599083724205023581790674260323784920910486413137416423789071586970644947916280573702159769043490962767087033694164126837548077583523384714464995361048286850338777049224213561035076457623341688679357380757618099122795728341435636794183820978382113933127681349583336558328771838712410526112114883184327008956171324506526430162245877417734252920073897022308556891554757089345641990091990822297318059825372288639699698571073760295590144423396635014036641723225076354642098370141651143394353569141977332505395424161716214288829916623550825727668956162939480221161613802232344764185054295740767204985550967230503743346500123624213644383171835359217415250096129428906726096759569315877358125611357031967845855341387361938347680504011005854710113174012830158777846507006224414198260228718546948730868423651934503555578448911680129743345172488134308246237695628326914414364521074834885743381502746361711817775017620601663293114239946331687907802224466186566567881013925860011955254054996589303692197196614111006702996730010905853988302282566765384925726855338412496417764358469114535320706779570740489319813196322604382760792272639758947890129040619935541618198712360751661058187698222571266923722404637568531858678970332457477231417017151006642819669584299299980542896155944732215103216236519631024181950608593503141812989722205816729162665285999795212657938732027120746830220007137649763065803217036400326373339134611765758004169472865366397669771834091450318513981359767590755471168092736550074329602248705408554516493165091630498279225309824183150869095241671235741832912840952502949108238734950937688807185675654907261532868078017155556341317552534250748048278325337504919159947351248771693705500239807350509817496569376494253441072698155647664645973870538994181353801038380987761763318070856291043853740137763439979629410800937367052748765406249904079307461181879342457743578473434916726940645402930083560413375274287005894720120175429021490656121658102305306036929326150598684145003057172889227998951238395254231167477682628113709265869596271593631172681947275856563526805985814258096148320123358209468003125491456697411412847774945452264987513205194335275682433223420866146155896853231438214387484181729933555808297187352412603875663232883911646389716769439462361453837421261972848811938018258187863698381554394536920371565815115225314753152798056448218798601734078022358526620477056267553011006844432533866249631908051825044181461958814596931155012898711980603615741509879182707085192803658873378423509671744555821540906971341482418906227739176846546593543333811347991479329872887301052634108004284799110534025541516188257318509937233867228626532203697728832445170054630118530211387577621172966000276921437415574400549332115387494518155143922507856426820731971195144626059033307077735920033836909378831246142839643238165010337201580945716612587682378847678673185611604605488858818094149316395671400522470074077542552445563631680152945935875614692029366397170824260549718411193059168839474279669875136673018157138599422968715037699040010507877167736876505875064260292131698906488980987328547925294686158634190343417628360206249604833149511776794334714909582211040741385634458838234097773507001790336037643088409992627242570893640372941887241582868447295503008830304966151088741744152640604488261703788086538168397803119787783824730757462661745380763737001789203850195941871122597618568942923308942792790269806574992520665468240729844342773437875124354688498243190082650855023668482083878559607398257318487530351398949881837515689766188722905037157184886046682321680404362390300842899225383933574683378866053895032140342861810656144039610048962019059918972389600698376534759838817863415268633524178854465624378714078421960424313485895055772461597626177974415804745160279136595112998964360951529280780543193865398039917187330990481705055728101974351074451450661848397781342676641108570705868853901823330719620141331661875174050385764590231741929836840199004267919271936539703550641311719748509576286719961829224639281339866514949833774196138937475396770156146601591300886752321279445846807331415763109038335818565499715683494298712698493325303429508542215952943981110856985526578659141970353072598680764503505173996402197718298125942247146819182941730930308711964554350640137119549039734646057729553279689143326220799107563263982469890641596577096199352786177670882889964107816113021806122407834265135535749481885710954253606906266137458556751166122043180937295598910093945238197127353441482940649860014187152576179719245871363417547759775403952988797640942026304628632376148285498568572913737952071582644713549809859322693685104693140974303688631753840915050620026702632975276008532559674491501846000824039358564856652746210041915556937085504548500663326318709015902456428349303379210693803171672965565252125771119322068276051675540547176647183952052881586637171346282373584291680571306785752863402273954498118432308583791385172416852874979415910032856142101050949017615316531678725436601574009808019877555398128066111882866046721786304015555994520575752105606275145409464201968080334649945018253787891126112449871403217654554937672342964568496674636056269509394681958531345250267440183129583670517973226535989441550656106841805358363299518455698553380971521360730650849182594470821216181602924442580700141799838890087040842139642308417577556430354464129021319918939271090249197509779541302020457066808869317238376922636987356061257574616859914671788118120219766716666463450424760243365523298255968487449497590324387081132232171460794216613393113236497028795631253236891138099741086862766971516199000025023346285419636166450200778536625049220164957464380326576378931771367491513516919610911352785385956200280497605751237523600145376391659471012762348129575787256405341932435422756767649024676638552511921026442743818573229607583915832964031088354229661140849116748361288262695950023222936027489706017137983955042688866987588956060292264789173433086589536516439711752272605893099105346625849025528190158814288615440018205091016199921590153276532048593876206700705264880876266301312682156877010265796673448831439436627491011155201144320015646719240277506501584263143235474412636181530388672649576743231124919874475133614088498903555624644449224201546305123788592336269859629083914620739619836537228151630741646987159647210985001078765737528161321417311363725553382873254520582709208065694860847804754044402552217426166587447505521569782527193466672428140804207481627294938325548665747409554872063879461272534607493102097723328405689011789574964939752289466277225800364486453699394380715552636625350051011020725028180829153529699494883566344458150542592483344645957990076372877805466922325629667426150292964902391148850484057136625315986326430522775910740006334910116910085344339657185278403057248232423388570638700334568796536541599814814652458602862953311383142537989319620625457010711748272070229173637611425897714294296746466424104553850186835442694010410366231599980461453325136984817272573439767851728993589185612602261499531901687446769178306346406182937191806596175457289921545252048828545566568993451174731941612353179832923274173310411795370548324757459631180182427518737518322815187620995833417734153824754314871729656099923281983724137102234896081252380006485172449086034576306924452353495413770711182960124706381812514866504658701988663816467659551708281056765922867816271623905724059692507429186584160274144646006881409051550870213282840030471602725448498434340662238450869866102417830184990033024192498407171311608534542414408737993364242282049283797105880269822347096612919411469232254363023929147975547186669724405420467644480971936395533743548918754422347949013358208358898269901623511249721424959762832376043560102121947594683463319320619620294679328146049977986093322919418625859554376961947605851795832580065653895152073843271615188201635519425815115706812420240205348917881405433210771001877155376970419199156672937727401874992136465524800980542040246542813460435638156825133454209543800732198412536327867228138982817361279071754406821882276766857325771390474300879976249043963007466569030187485807265874762241391047022033744130091400531932714451179095494383645668414385139317345528738566147753210509501429721745291292291770652153397254485413873196610499406969729801002611427705203601762339934105831864590699200183141632257398382625535601627068179205793295137520958362383811661381655515968867522340374534185073128155409052094714881767964553470602128767312999137138880942741349460651489529033025228693473771532770382973333231087052265211781277769810563823256573515783007100744669555652583914859753360522654360052019851202847604147087250464230536910609118226818021086238204087183440157325036006627181753469107540585898294559834651951648624643284765650177856930076197925496796489838947725993978019980031316452451053774665151285855597616491473387258160037430090538874566500980856884897091559282335764516062392852576931393399184452451905571203945599931574656931616748023921044011513846870097858126750296899890853546746739601922843980818542849006210871897387673709060774946031808726571742855113508800541304801896543636783952391415872866951862892021908487996280918088355319471358656391037690214332809066323249657125680990359333494366460831743747151842934430467209857000819849471047316146892126802223749599165054997366872009501301311355452824194901741288236881754740742989891763658117857440470263009804210631689329385537599255387679471556900198387815416599851548619213613859342341917158023821002459147386300840734886450433668127424740050235607316908867702650555765685716122869632864400725996064042061329820619240024336449233245630711784912225847124084601359363225664261995951063381590060707613942195029352860979968393794249178461597544227334136968212247700643670407472866453171507739651788686450705587143814502829580183804728872375868617431657893199321147520345099547556920430702484575804761324849224366547749500408841373476277527576001842092599803739158356749842210898689700895469506581814843213681887080637779487848348911288640782439621352894353778097633921198470089888160456322335642234552061288391283271079750095078837544546390884798998790850000203071097779064614993394072224348329235077010823809740513030902574680713193691117352435947239721817246606533896821124977805556211959827993887681692705285799860042777965970178243424702873602987910194376989722842347892392653829219498091665694529899509778191659608290623395784839792960931057015042767622208420036144072095942292056772656682504007989738660716046167414319841145824646790051950252198338487944622061667987545901561809378374884239285369889877339134696044370166778821176478327024826062958006942731825955114428273958411911727599623314860494233270921702983622716772966589119343258330850307980153312809827443735210573929153305169004954802873895031407144107864208877331859969762954728430269324673865454018193547343747532081111885016117771918856214125045728654508558421436466964045422068040835004116223561579199458598584746220486217509387808839112462346049684210073792028986728901847918886002292533435372615861475724121165357352055173241835650234116498066050946017900080677436623117993486562132562481919783947969193028765688986387107250011027905782985011717660333006943386049793923464286386509352523013105722812840189204655640707767325082158202112309121931170204605563162100663454579517738288433671532901357252572759942970416847760733472673519659044891257023414069911057017397741067243441706384507537109618815649778204559832408823796586980052145479628165959251167174754920096529410740572905771877044799883550457386448912304657577616001083078029828673278784593582505404308243800150174300821253324181304856209250695365472464389618992981421247141987206143484056167438016754528156884911283057160531491352521700290419244890059610211853558325768618089972671519307031497883444796499126737690320906885341503152935476689152220831235021263381281804217768999821958887122841338240058924143101871091732527447707384325701006225560560485295287430054593289663454915549797843506030995918260869087696611951277501170137451134660342839942172781136781836782463805122018675208960682883008951655535122855083111613128481754875004330134795596340888761020212010226177444800339095753942514521983457987733369011160079374782302215456487129821968766135740197444689852633545074340581004297338068778565892440506482269848003328638127027204572972185720711452605294927814942435888161615382624647730574897870382329791651362217434068166864976671763019159480152188629720334571001924066490133228490071602968732742786975143479155360445031602306852511444051362769126885929733088361372866323990189116205380256480551094806724456439751004032761183522016654061048398006064585880272976851980662864138362899779748220362699954126655203321368590997199161694901102712371325251048455599603442282627640172416978593425684833310801268588955808411263133491353946772039962077552763393119251452114817791531493505450141355819056639248540512034412764835307274683302133095531282021581384351673574595190561977403062779326497982599576493424351276975503074188371874940191087039142737554142369177087138089742710795010316680600390313558453372301908001166255723075912300651563337704750716596385498262246883833732387045273134703378547883301986396165913564650630034724292237092357730077884991022492285669651100445767146625993808851643166302681925775868024021589753783990004347506807975813307661817045625519981554448308959952713700228740524181433741439349483139976766658301803651840277162049114148218523899770822170721222457346859598996974120814434866239897150288791232632941169634862861107775393847398624889712815401475715824544646698105826951084845556748781573307049147520913095711473441050938239692997455177826759577329313253152750871572991559134668172548392364017937820525670058399646485956651149588546867631668713846871126451367575842251586459051005482431902596785612013347929261050839124124825047653612096596959043017436625653455520666899983492364987806142963048150713350940825042668536985976172592081245311745934273993359693550688915821911446678508204413116829369053051146598162662024324162038753445990999769881854088501040680755039645549294145945442822741859203884884844474472041813069422325972845843271674549270288880453710102408037164004303546041948233061461731681261666534579111731643995153879579878560183140696161177347392871710586346844325752084336362935989800288985349961587954268434106819629734592662851817260866523503276708201074627977209669014148181078129995426632761531066609103860016046132816608371559730523050032402181890959501132610468672169536829629425583018924459407278205061066345357711354428462285503287015164082364799976187294609302985091182960468899440325462875095482006376035337017952314743347696478521332215027498331688443458420421226736408160731235269735009043573390139597874784057298525214642074739636890710638543556130159983322262282574919666258196169019273056870448930790891352260079078523929429454605277243042908595817517268464571115400423406787236016645647962863125466508577301572844684354500213605401600416027172138702351939721769259483889029442835405688160238086058455735355698151444951553169116317821045044319936727686020332215164224509668345152555607694835780498517238792527541265122090376182488282848446023838360653635663806539146021562863328279875882917705527285946419906438508142333081091127398201583998179711190895114238849392062521122069377862823588302109320819708347786349041698637243403842255534245815243285978420577651760272973273273854192351890707257632708517290324252044676502799843933188754764559503805581103992016721233347804794059926235937672418179583568254922419791015324855526412223511249509167285230243057785861180219497053199805275406196044896970160392138980563370032916751625392610283564002683576262877062446308284480242174185572580582944954378435374122162968541775819394377368917756169343388595598208745460990204917081261812511478278765056039307448703094938442242565436040267696343192619437362624381537648269295693306935029349811019261504450445801316391622864009763408253253398825821765825360792706498936791959338888240651799575171718278546238791664842818828227736906016969730033001796144454412840486205748086348710381681950847030330354428324572784447929042364040182955758046322428172316060690792339752109419755330944506857500335654755118309053121016320860452687236456178199734069509858064141779049569696298038465731045663610626512822815604491156435646468575896380881044177487683501578229893277253847590069085297557446510283342358573440894763368512350842756169152320995369264433803659969170453824890303892661539332163262564914958377675630666515681602362783940762285139222475168682093066316106059550762553259677417054110852656057478859394424076690206994061242767189769522063416007715764417184646361377443069041351701277735690516065729218320985072921577156406005316785770978391747647445935054796571566375007145652588873444080557826985546501116800110560921200547450354455759377052056081450395990642161699285337444712181248733585750759356626679444525281932788973730405973681575130825272322119870497735007252817806806058768319375650486296838819281914836936482391486224379033405539865804775256422474898035048655154470429195573605309765280506471750755037880948783683404247113579822260262597933236801169481797533178509964961432377490578636694279617766083984931858815629398059064738007621230321664402527962571240983788688139928909840298568824994900710790653899801241749913383458093370881612339085719066553615019970993460592985745968777316323726409800286850179034537838144214611424225802323245561056575416190783861108220314294722411380366184429479984429580726330235012012821567931686793301371647733346164925085639330050998995962391814993367340851513942779800540700459182363091604891526007771411208800507129916374992987584176714309530370003980252966037598235431064185008369994075485744907986487594871042340874524428757039845957646442854734974096120920867204517998068010785289449017453994978564046770902281624155385052216116066635933259298536978150293372999148833785177741700014812202976537747291320554352123728412497499535556993525737421307851704485410423884417087707502458595924342250547891314315389711425828722340283752470975913010835907442680750242099731207534382844160960460399017787192451845498505433819719794066491067137944359510686368593573934850965856587406898560113913974412120087185770382771909013496918785746018237897192082592189676644025696926335008817567657695071541743267202294343781639379856918966599618186611068589400296622299064485313209534527776959631648583518234725910798641719789449460772687400878517490478653080610966764131295358206688569833695673492418178257490585443306674933572704451907488276631409747314543322306071244950431605643183090054379276503309891140330083045640129105463407324558492819462177777114136026491469726477740718477051098104156224494727679741379671097648551192825064779310112912180068856224947843062940484181882844263525155708615373257254740287160615944956694467547667894081129622573893964207301804816843662520503766528504031687395980740330031112172921605630816313098669969386488954123715103420905104130133981379341132237967716117207292354266483494740645552830677346221151377410883291116101477427314850947817234743078076227216599738145976612099577121709572838543746592764159822479345081277205515245329594950064806338347666859788551717552211533376457544525534639160168018352790718880250343747032107648684101347831301523115686052740668922279006223335471995728552106180255237851739591977716129448798777352195899686766972524690554258077835778020423994522029426913113336591759638439578419978339881211649665623941069539774026614082020213902460058360538778287323208004029278090552880641575318772774860513713929408759297660039322916873350377431199087837237572810147189045493256591654553744110420162302231864076778710814851102231196064146692363489098977432500655019036050345637877476006159232296935041154218235660153870793583814073244279859226524412358073543514599762150433688255805432364631740031376190577566127494898586512052033689749268917293719959421096666984665138684745147400529300489141789378603313778733035622630975829091623879796394766741122817403149571061010994539316740710249825842771873695947294636321008673970116530843313946047886164401286429792820575331280647359167803950064460833071383449663898937402469576222588720621119412274886634833875513324528312829612074157463436758122341042726661692811213345706539616231823842692942954093419731621734537964857040048222105951163650443619619388575318164450594172821548851572546443383828406834324292005103050029969113022018159947020303475293594989840314895691179818313900408488223010548816829092791282261598159832786567686988768006480491938509735521302823789917864900694978721997230725711145275015406186219303342494969057366330820288200480183560272302066454991166792378795674684571315772141470713594512607871013183191424240051460841743075202015185177283061890853506108189958495517698187388767949912927188166081464693288683453197843720817090064356549667871650789445146961934262184910420607831827383187544770363093413125219457940321475394263568645984251012299404323390871476143825500554389177876396890136963822685649572007917113830254215264511435382865293957725010719090819962345717599356371214430333905941874191741825865703450659798975454035452531914119901255214544878318778676514471977707416221763964942764154008815275882642586749327585671680923283735718184435037199035151273634837718282201834304475338557250553281765960527300352962862618689071508620643273530008871844592342967265053798550124659926740251800403155256640007576551408038073389251810332122366185492282475891394405096731884676710245996796048132431680549144624209584552130781014552201688782720480003136295975004247297645975711980694300777203706250650968023206665161188114355760287498380342363842633425850943831709376726957472624634367504079494167928379339163598052284068910138660418820301632337307970893976543310890771624630905051231665689654759689731121534550588494419215862131897518513158909280439104514631201555079596963036357884619170174677235474767696931295029173575427454064957587447632462926828586219857747169647457583448425231610684743581792057739443700094109865544849823500730641391616729883365733275686529894319448159893167069328921732242259436712759229402184312201805686457566819096806509781670728824623428303956627269057561591067256076582674192038543931535724638604514784117663444268095802273942332934721918726973273926538664805646151954128884800842588094647979062573084707189322657959407233018220140058851295231818818719537801538294990061206358534784956063130045692124959053672266774873964336932616976749520157361883260044711050490320986557179074714740670577335931112312779243155947845146445196502932832833722399616159142206083286253413211458716160863836192612146611427385735743030516726444136481265565742367837194523590993970165604841758527610382968763675421977564566122685528055761727441794777917207738594216513832525517413030274032007044894783575871704761445735811367289186208597413209064190950516444157554351622974695017248527305722219555415167432192621289353237849173637631545774173244526335897225030597273719265376883030890099927683641857992607376817731591311415505799681608933853980808390786603005375003704107468297373453505824868097171950231856264081569423747262470714901540651097288814349964736161633588487951943046298050031272768381319245661149064103338888424251900949198326965389918642058073765094032196231148577508145794568178316819305221702490430770164006838839921981340461473080340648832710204166859752762051928690590757387792451511545888360363163217368947927768233484598564481136298012899439649134324181595835981373340363594592916772494131778769257085473643565119747933056664515930138434767363087516705599635318533675867011310596068918401556000122099493796646634215690103695852135834908006050991670194583211212019720295057130792892339777291566023407887821817564555194758413193696087319844142752166873357496684052645026651629055893936440744235422583894102612014921865575340403741229736875861999678734668499018359463025556361239663815148918578938366598428702529289768832123820552640205751784881076193835662861620900323755070560790486146070057429665441295211330189849566060259706443737262257415157962859093029473469143278551088660428272819198073382804107370535494744672421988318268684034809386548003616498998098852314023981907289692524029738911233382044961121348418327529890164038678561579955384666408105842174235043497561872760504710806650783331079718030881245055067731022353768914320600103735179795446606399204212835110488458063898768817264915393392570176634403757001173015605114561516504396529690353595800644419105912895573814422230433836581937407514577681207790490896817619794886404048888573840413362655883555737814371567988952194063663384556701273802273900159538948853452661618272187489134603162094616187871287313883683071377969842444141787099982546105908878998869073927925182296676047750503042636572059799713831148763740833074117112178916116978329623995769667759243580974262578028585242370217922240220062387488581423722006461642284191127282936337910792937296975463234939580515204909042565701742835798747083612841654896047302760864586439645172257985571784671766696161671550101697715934119079608617906969420945755654373539414227903529747740422077317765802926644189813186513982158928602562984621045009975024365709898068151612310698676492997977818570816911928235515418071879728993559188714424625895120025633858306531399410189618802734878115679598241716531776736837264448135935374470706532484591829375160145468454864078592745213823270034028907639249458942621905049667654678724850526800627971761025877519308216827384137834059019676041711547462562464263376517821929331562104538515052666616903461611649145352157716938153267341407572215240655682203413572818158459926838622534610894628049316757108288769052612848205516318240205308472025487346616899604063247178406257335669204083355484108919115419906116218107608039676273123116649352846149629752655730165386267011298692320156780255727551121365939132025425682485896623530612441648902253531810380394354070611381051289827912897778445622478071912954183715676642611090111643934130603518640061403611025192757129344805923873077998307530761345831627757469697335948716022457150757355699591559334207662887491949678574848185797387842108216909278896406998796745539972174453591869312559665221238749821239306044345487048174095979940470163525863878232789133893341371706767613719920915381457559426196365715814672285637144250796019676055731748838370584319073218990324405343924464144250468827515051433972614288020318737195217883713963519588485923269112366012503744562075604696756388861595213326311085089060795713208758944605827423391105401036780523124678642053493429143463108259858762520002697025893271794614727240560049344567505022581769023534059416653681008365653370239239381445342241578514057426498468980301315940493652703530429359892798334536927921424227958233852865152894385294186316781591124606363112465940076695043679031826433954691028747689636830626970490107836441062588513342328466438215687047592676733796934743102355290470308401582444957844841390336484486186606105802692111526106177170859418902094366825060136632368566591893575302835561621136415530859496278826542259303987494759336037400418128463619035336984686784649402103056907629247577825683197362478523325125611252816282138384261008969901425195825499527613021946305241163538302731791829334083648228392454289486292961289298424308904874178949270024111931411093077857503683444591154500217731500687210634606778695973853739343679607594287268295799408349944013305921632936562726993595834090990388996783641863386615220652377199939893850754616375267756292640200172162465180243547668407402044573970392879476091874168844195544562152521999179765476062773533059420917312835170206818499971241260225086932640301318512970762568105413446231006488388982644073693689473274409451472859484258957015763625809284496587771026575542689490313824179850858649728715462326191820258200492384688398325398256713269512168888952060300613273936746971814845092019785943510126877387764250813701690272592995731250507931964154658208875021153487323697897269101763622056748724960320360608136683240927821290790980038969945953900842327015412670749234567390149649626217649645288212665244677156031947187157121446504770503116789400841649005065252431541366040172505146339977256500585060341454248394952075965661697828607327511015216280996689826099966358052081174687725357332596341160934966087270555274761798175248617676839596246218316477589417827356333992463049815904494316692329946860469990396943674224081938486692358080037155464160164490335837945053495146346514801632367310563760569035161824691024260693964143060623777169107552253855412975570393279918339162501603006217716400497727078759168814719278222624791169751853293516378299331831694526518554290226929920549649166830330725897584541209475572879626470847186263613201533367238973873613493276449912897380494806046815067991374517832568104802575927578125071105697424595567083501435012895256887748032652660197342325709499909564860806516854481605429326170392815145119737297801646124085697382606541620052050950024952660169930477426078538881650652317121208864895537881755647802752910783280331884095688765585860964422582405762535418606552859134036469016895426982888709938873025105230654895128643077338397259342582762137144741556488340978319368177515244162457468182900117213166517988725015897245397929418897724148084727788799713618860357551009173223640686737795702550045312600258596274155535425573110815259756942155883729224547941942605561600368467344398187322678456920695837437437983560920973942007817216615219011505991149382996894163032020860510063181672481470523223907856835636472773621290566701698695749037204872071890513355929926614716812826430444796461994450580952918216269104266456577948874986535100356285622293741482480063578792158632129789389809594568590847371805235801497341248616239542697691086751182886160248430819790072606518605046811888465812211607426739616327343233086802078577491373824098513014389423914512519228667251349340570496635488231257175406206750633307805982000297683286884998837789038986042374259896671201632376594848054321512268831952682585853956300909701523254113368643133347637347599537980506084605247278419331896483565384751511628446024935350637723741912430385871221144550984985116797393284474184311275404290945428290537706937545427042688806484477705329916105529596755426840321513864399139354594466430588772840939177845610263033358252120799144780261826820755410146725589208141685571862859778442385285014378041532712671359975765502952923524129671303441474863286118206945870854737526755339048842755596997338154951344773834125166548140552214933167596554893028800545500100229693583683872436603310822318699434264410051953144236829635984763000522277590957800183387135152558850199005597639463587816903253560813428686872297025347111844580773629599493789334740983860972085714348453061246727379153738676730593406592932348314447098020971742812818037942219772310495989101314722049992935170678968677440305823594990423789824780918615156663355226267573226704302274922845957229691123075974284702028158534085157470385783948239624516890859563985768554183460957620476621013640565085061981024758983320177889812758401943666023424187501905899084142435576662864256184592154378602075691385544055967616896481966295156835402251138066418414016984124618727656931319325666998294578797967831539906721490150285537158065608943854693853917968000158933499689782606425360750214127766175071299527256511426404790004734304329004756354668421516520014558131389380230524607727084981994998736688729800168550381335409960263439725850917333172677612958553955471110917236590527484366335474659284032057057501223419309930507258752929456723558568447999406439974492518033878374690135837011086890007819776156738993985431097286298311392143224299632023425048307359823381758940184561056488343242053950048778734607982674914906805550999933820233361121863990939983127558229986790752540939160192442206756704140896072444310886956911695969834979483473877294123712315007715344262567932313954388058829014288334962696726295688162016525626366685054797574765106152340691433884533011614005459184129712024311357581537934436747278049329342235083814135733507924301115465201141601182103184964193519343305399614450261798137604695696800228435076742450790011390682007017461073039687313719256977581182538100357855911620558897527566940326358031490408482541038506662997021430876624561545884733728890870516227555245927767031221595398327561999141708632437919442220891285202111435725234485068256944667525105244595670325009009990942814680408519894528171774504413239377408894905952017221381308391906252331985237897140604685531835043984830511823356340583843514408699624656504633833257479469689542852541534647122361081437570576473995796208770586868267588503299316805802605546347791192387745155394099616541296498636683770225021677469681265669765963681255362140932507402620047272373004477130850672258775746084136086348272418929797671735334430245769963488994709766809384242993479141488339081506408802905613176838718341407532030680123130179591861093594815948183660462946969307727968637869941639545754533333480339989669235416769241733592797457808843535408031238240832051757211655002817676175683196651340279574228475623267707112365905969460819724803637073477659783827461559178190228373649141937889204425401461512261956744140899943987296025668934266626426471638098818146826823819737966698136646906470780186477254816533412047334286205040623259369309047070144067444042574130437278012588555848332484194751421902472832941713341859957637054595104968447212125528985552406153493485497691486222679376780127347538392932250806941162203864784290817194134685749076766954726663908656817954062672438523295666031283797809766400184976774926118370274292688795385763652488289446230351734769417988588384693226570212090350752244549427429093167753754907428034531332802019160224404618024626865429356512576969513590870987863588068646511646902636600815803075360267104328062841290432530665568673013240049726262571708900519048445481575505310818054402480939812851972859052950519687068909569650085366048413252904140117364727613183461540516367479423867999711057109479149695756016607511824433152506983450883828095387331236893516763776435906763263438272248974790905995828577128596749350398858386364861673305605301738938538302188521772860035668251293742197803210462664109299492863244695992076143398177541594994453012045498931224007637737949703115020592192070899879472631269853066825159876102940746671577482678003058438203495973791973113485761411392041930955443309476803826365319930100922772289833644378016860183329682027009285892014621301708191412622253808716261440873677813930185201876007739674169187533794332440191847765056125256052807433409551502519327947315110760894853252549815196139001783130425077453716439820388142035886788883679017903931092966371317626978277338039609483995988660871768383723981687692338611837005986718551618611591495805868627566606419427544401756501285064053909033083910189063809059970503058602175716551448093028319914713552885049267339027199838587464713871204471874974968467650363539316431729379211758008153916652986593927701849470704235016166564227009470788228406220693092909044113660370819824277014357116671122821719239464684403684261266893687846459483305326267124318221483578521036217401202647580551623450047404530689917288792442439915971799110476695266641397181019080570868292599844329755100938013555605988883464655813898033036938013660513351467641325717212970412551826486164414596384228858661859204036406160472979587184598014968999787643782027870268964207924073820364982174892078748962422096048899405259773114589832090681842757520779408087227086594633351249605517814869641551334081771113888728777228143166560929053650300598516510871249228044440580057483839362486630319147306104587468430406722962451205813015775038579964817029166656501052424835114133822011281465631606333885038704250626743582328097307870887899532072966407944353275215134529750370882057239326334190443571459783656565600682627297731351259141410486113400472016344674228426715035448047216988496223874723901938863664078303664108371531547133093782507433281098366579849956177863411059649531893011836049573985195768387021926307178509694580034838398079046335839138309082480511221859728818953657977601718104157336219345740908040069110871878368072941521855000341487899538669877889803528220872442740351205132830761995998837185641308485094079622380720060820984412484795109297085567707811361571406539186729620416405279892079442077269597231959525893029671771099689868163619480321149884507993041347112154773776180239808612677550341879042086328243900106958553968903755876872066774985198488687717392807304141597521145704705691830360189850956837545852613232742831990587571680501803862398861658750624964120634377382178623159671087960075839659749476298484143573669249139403375730019617497657577170185577356678148880566058960477384293702100477273446309101326330360603693628061918457441973929940782473329288890926880744036526049061340068583131211490255821020147611250029127675921472404193678613340649044652414257895472153166163573400535892991173118764026786817169450589600664303161487591846324648388143122265592656859827938539548322373949916391623597682865313470977980964150936977104285602504412073748749022198619786931288078974441116455243026040930859907385729542673041522367465871992393272336635493535789700945802727247005624505634481587504965164875335994525577053824469020814285139595458723596528158755019886814743270476309170258943722586703294787757380228997460692517863535564914424466985832280019156113741894665120207911780359566613911977005529672640291798402102540791069238692987937702018124895935081215220055012016041767641033753904949091767042092648943912415907522489349703583465659188216515975289000205017112787959406332750460891967619124179944562354326974332546124387652704024836240116240770509553463117264736465861927697473414937666062985355695476540201933582581922395991574595046314233280223216495006876203888843880412643722231030533254301490933106558802396933110366362022006542822328212792413964055659899707812912789969996926318471166650277224596896023403634819111678872232911811484894214669446026956136678027250522482466727641392440068458379679869740705199582847828795674351034095242105868216320637148623444857686948054654059489939734332567701257181437719549769674837447017814365028992067825954530837982748300754054564020131214710149144441955977121504241589685436904701146354113795562452424950490285973889819883772691259419582152724745068463177358554966481218957140005205059402538729294912410654604623511760474971646413153228851028806481461571350506141454906908367574804370621433375807367092351104515493828006408090309386003458863741839259343824735506855745871899332020400818160678815894727202244031891530886809411850500199666958535103126201494115324312282792966701831823034898768507256289969166767040683023324850351400322014671715123662487985440240075952126356524208357493449108051758746507450778891803882053932025846971385518164228031447933169844475213573753734553285608466160032336513247060336082440164708357355096119301286366006794604733719430264143417660762113995758285151856872609450838925528665949832769727446777749603011494227660877467014832815212124430595624008387917912641983273283396690682250000253845988991332133751423172448216209706259325417891621968981820584031457602848930457859570659558513404373904733054515526940208672367530103236707154858975086416751870298283091977154668169039853429776078031675843366076046427623528322108296083417230913923935990857085981839058713425986946551669064576735281773099240953514168027265550383418287952491286615399761268975544121128167825501337149548692245733648211213789518025171921802950546874740075944411602383284977222649665720819644732938517306115172715632395959770807926372043198902413356807965970386112487798068475534513921002607305961146591601719721587570314861022644833427620708958521478219434952901974249554172775514224946690699687694346293948079403528571622516923959062343196134707384145747727914944220772079517096603561995495805770041909005801824122635826120202133375934209192877288587042137982420836958444612120656956430338159853437673366890303412390084063957799496552494527912146673321609479304820748635066651770240775416277880953618092551903077519498870039234250839049154315133652333914271908658844607993555774622469953033679501028635419989360201626166217180672671480326454457853574860307991347194529995916786444971904650340152084478443899133215688189487253417572702103369108478644499580035185358090825716525804902878570705728918831239076105599223988509957878897571010139546920979959274539867410448689653733434621272844004790654436867321605854439518020137624722726118311097314103893312973313235629504838826597502984410951188393828327250538440642645258355252321043111334620623957146012286974691243840524014456066258717252067912957618132452567059783487417537898372313258735918850702512318775134943509745659025699400481997325371837650100147695800419663747974913356449560981503713038506353485068438767633423150645663908935971166447096585162996407463746244239601395885971482375111377935494389540207890979973299700425515758416129553504334023293012625543768256496068017297462801742082252185368257414161769012445073435999572021236477507799646465636158677500027957199301148820821527357707643858491706581487675010450927841684032867559381752512387643668402418666260568243099383813290953300366594344687488911878916926158854492079178871624298751527782322634457437312801134870661542700326272320961166193044190967987172791828255930859141902140574775056921865592546831239078569392852865784513930755597983800778194083914008744003651832800491654170361782306426089992728797617811925363306558087993680573369192580031676046829205649975914656123443089512935651556627797414073824022974951637253215446272073829143313438988836575286222639980568016115610177324726758765286484537804038179134166630221037673427177920203366102510732618472421139661234042677099352928840530052367510772559502033298713839161805935208657180813298014070477338403780591302993361491622026422702287594971454963815055205833860118344382192605240669569361114978990554126785302465079036604063706343153979614613174821545682039418248480839409619335645466021019487490098519405907139642883670884567365505757520398980891528933275178873538821563648502779240094104350038369233245036997211674836080978641115205495650812266469400465107092730545586320402981947123271262136788779580313958163428875158771927016466998032828702903617543333577664505479303299007371366190444079592738370340786652613911596793366253185125468780122663449963106584737239263983343793190880583572005002408038513129022431316219044761890206244967813654146874290497354056710535763937342254554027874936372197767367898597289949000347154477090727979343826847622685297004053446009123795208213104902881215285491351534166817634802623825420402180100469566566801281282828035391932046326570285151428566991194847162558777535708313940159380697408189343692363430698678506049094149656988680288660841777326662538324267135658062883939616396038037754364477253138159711401765319789584722807023746203766881348652121654205111206214166520434871004687142976408615088363762174830303218579132776100826855209369595663475407624875931756565855681475285909464871311127736514184194532015712073859938942724512987243344262673072089133080716537423674206497969774701654783775133862768300475448645194477695116441739381665967278502861317993819751792972912323919455469497854629619824263519472277177757733893932918193647102937127982765132138924391988896632256862264070873047710720315466595276216583454138817316240836192302227983016635655004608277196072050740956090411012215091123979240987724301648443757207843100962063170119425930662074057818100804588433992481184166064889802398196565282802111979957699053403023833986371746562881917243679787974650593274989748749115869373441693022527152291583721583324087435904906862205985593713007925859489177350310372500873438966730952536117697922128817187349475857797015631989647183931833744942228976561858273178223819341814423589491773012899837436426709270681158717083554542954308516371844779372773689588159434448986593116910510988467415083823651297107906343919447161541727860905990911921216218643327854102188862805378714737213587480603094096489404304902216183037179509130920094101837424104686674681992459891807045241870271854272884604978886489058086662641058544163213371122776087883415718345708825613594614084909017424340745108450852051838291104313680402299331470480564749830261246315230632234142945611415469187573627450579107215814585445494039359837193942230846634055476508742279528168895995582764202549773932183685439329031639182930032614435015479805218159821567187666003132031618873056019817678908036494180290758754419166986918988803790631984333925823465389578818298328690496561364172539902088857234984962974768185924040752859740752853597229286434696774614959581271331111584063436858216538132317080025820611108394694178891972971730521274969869769835078986018519145868270248109302923102361460485323465004353547849491440808702285277519959851327465499755791383311508808285191434787534712660559909318535379005654413935281353070208713444654118740664907189754118198935996016729230275939922908191286608710506215193858239847312577347907743004558807563438157879282845196560533636310201188386551231803529262551884175593651645742548428761133714245714717740403434672734563337676816601683557078229767423630421876235289434805636060006669158821576051458522575326804993306539532704825311393675346967808796522116114931026197501934758751162166939388488098368305555118789610602856856665225718936388440709649457435954383498464414670625372084073954682581740753057558919198418317093192763216046514049903888352014109783434313573515153971005314087250613347746259891910008692444636665327263336146970965217966445972465230302304223788493295393640647962884490526289372177180047810642921156326536181529803623848119903862927769219706434202615801524546895125865934091583397965142076277369302487691138609086841256742561919622096149519260448532597764366806270661969462907721667123384471228213721217492795729142136081167430365991550287908537296295232245987964157516471772475466765409613432010371761429614849577389811329540325514247744075299410271704122347216247291457068669229207296575279789884644402949083048132901851118060812707499332273038386969223393194810726814071925271401884843922294389488279996246520120730612754647544527108956916815691252718235456036651940902978669769362474139366916029638685966557013623931849662530585726903321340988559954841173259619675332991464066531384151063617593920975349887364225692183609109891142981928645375377004150465462935503914152292638598328500803678583164755172866925339402302371020773716614285157992708161245421693398336874617085216558788087581350837255044698568907265225864647815782247791734142326729307337024342956285681780273221764440870034100391984509889086627162549647040828656096495548289677258004647146585782042604728130603032109055174720322153276364104586766010087747370820056880697660843760643805634256344152195692056729196573450189460071990936035870814979035846715898231458760175991819014467101317150613774637844108192347818507510048482289475503216686949195582028877888486276896264226440038810208985436734581888541963461575435967033206933084017746627453372332628471490335606641553628590898494983570736069479171616492485701864088887067672352903520005681317681258050616962317824730589889276336840087007387343940571154148817341072848994889037830002275176275210489892970922965687359896997502961326118830370911637615435498216692716113199480779007299066513199856617921344783213532390745572855222916359092969537121570212492186360704070648136602779796112171266827304044905682632946939790699097566724360154358574508988135088827379071099050836641817538829835119842224977514413731206671654760350371691576059345641132090707761353250654804540897737244840695867620646310530464433817505973491565505683477364199278183203852158631593785973268083784154871113672994338777838700987282436822637355848286257241490165411077806961205580913862007629087449360872055414634346063441006526739512408944348341393678781229034068505943901197721202856013443075937378283401132517664590559590701692850670324515680805749784930415742353276811832397845108920253226806198123794747900165487967143404868524100814632531113893129281128456766463306332751285873101692645985911526351152941884541868670337005009777270938783731203397395124482037958064012510999535388064182136152465783058065916921734896816193375835562972206510126130704424366829325422731829484502210689780819569993533035073515451834257951625694814143751234816674681874684994550986091554222321097782647506129903174943220514091496292830895694657141117811958122494990657460384850693181884909945712730015185640315576830263542292408123548360498412020558481614183702804419121087619335708901794364115609900940719813212363482546292519374761676723218991163942566539388737625365284499853201785288037366389452591651765540139494498335061149676703684874735708603164379087758173056721336226131086288459303299538777180637772093855081104464614373628062445881104081908750343923225428591270840936330520989195278487279912281494257534288167557909792373140352608967402942609604893636714344714300297636470938675906765675086517046361436807745197613714147959998577033462738610102774899882698146991446275078512896209411045188016917017254602029999989225986209665441309088890554272309249355868471155655068008987538912461887401482510675881762143631644901000992694120784283832779382126948575561215669521779885146784901274501807400422082599300017539668570703386711836261667220123571883954488990675713682075790383576191863695969879802888111810752339640283451173422823769505172993708320096786025286489056561096285759761986670213495733883956749271369333857255846614446591951868058401399307839926298794929308141667437114555366480333625839740239627380083403111615164126881265177556308519698364915224163859637618961801073261641054217351197360200359927604718473604623627656723622023344665365566563534459857906484194407170654715127117780707671672206039077335398745760630117266239113119584643812054573876035489414392977228239839522782350778614173244581137234159007984076600133602022548099597092687850102833462429065857635446663484688983472114364314971446827527846141827339420246166137743884674559390247584507201953987873630266712188426414292028027643054298881423219147307017124992349820875319574654741711733125815914869299304624700637044030786822560267948072603102940087036724765687653676425123198665669638505635636145040768470891170101081940954743184893665189095697120219655524960120424935539834405163810368215323310597917944282129388405054273859456699666756733360948380121034781741029311845373684439261334544518728387233314024930166077488783102203003426723918121783566972946648730905746333540525902339537096009787989011621996959153726180395738986546399621237723537840533720278196743728784461518094599600319813964058025611681469819946535225505360042535484173074912806327633630066345455821107201838285002624285083510980709797627278398564557209091968207211808488807986666674051354203379064225521077763747329919857801536638872866569157436101549610607436959180152399470117573576406581916134332585803750526501590886792493896748336321862561866696904440714333449890165662759976696850636356378228880079842590731071699940502550629135358929970032917389192074155505233797878127036997429348933796083141620044720491234209296858386301583828679685382160722675964559085369264094408601851005878587627428603074279620529981281800501901396457068144093688831792308428066180311761028807572294583078111292413805362133771293746110212541345962038435491951530724602525372545543567978582224022733751482390207351498618951863221094357920464969675670046902583696032143240308402027063575163664502393823413913166074890318617926444238721757628565693871045545126270752196503211474689998100420505160944746302415096274353961624219350735241495826475257978108647383959195287693944843512088921830193401734994479985464750603498824479515506232626354419848945624133018019231647301887321232231556731882909199134260694507854025267493047969893569239988778107943653422995321066147606736323068889621615713490761193004177642033190034978636047150051059516959168059199159115744969747805649994304751619334376460981289932398852003117293059754933299039992359846949434342577861348376068008390570550320783080595704990997028781196382622162390844572795355822503802075298673821467812660097644334145891042836778708311305359114094153219833890595642986627080868717444458812255620400720342450660008515643788998245618247246684557365010094337544127976157082514136630791900969399194580909644341077179722014205793867013985992757978075710790431897446304765579204947011216316956181882674732939523665288962424262520067290514518005665855962517356746400930559798893633053849189667289545093075898630960163306010645910459439481284556986005487869839570750843252770426230104467762657482452330047768144297145896831551023292933042163135556784166066780299792831360242621047856779333030853304898243139388166761913099501632201500494433319425293128729511183681565615058086159892741188033988057912045890243797628920463626070439660532646111601162714843700346357335352791735549459260330709683835513934830006712154657773165599803274413861897719696055306867753694154719844574308522160756792849196833113873060730493511533061401387486173410062793269170327404207809093170961315434323820915552588518111361240672424616339144021290109353448605518376941799571891726485241282556775333191723289443376071153877948494425128639918059171733127287362062960772103531248010005913144023736454142148435137424662565633808199973235507871026598243110526002711373516775951461867578422556921587315831702420567937158496558467856128812370653390989194169774013628425446215268973629842090773768691164461117541260613961367316662189559306918279774216632200430706078876469001027038788492804321802275286600624119847590452090418699679306558685584907621896222423320389149498901173562133093760418184766367613813184757933169288672754766761413719267008312310082851659987994637448379634680736300418548870971551659007225077797555949723022678729164170216646630916666060785266063276774613083287751135016202653405218581035174993142085668660993298116041998596005090719182940517778210525399973947100937032473681523877943109150977001208917618794540021635772262977127737822696063032820062281691430868525427947574062425029824925065311215135020022272022481866896017187409382858308445576188100418002321722499508007246165466799100247192729172986386455555466199671276727780403052080391808976273859034538151976239861583754363557987814116189125089853053541024359235158294870317553003299390365906474405111989743882948952637424027567986071597650198250400508990840310734162162565623974761341716871718756658153093897480014694390180038911966051341785681370770026323529209057765696586184262097019491622491440066548233938567535838580022676847430339981693414754242274943020573482434424471506184204253722507590289748129985686581366583675910019311009779894674955012248534924960144626445103925724264574304507489891923217624788125566018938981666683283917992961431909698735166183952576597957496033385445003584447843128563865056999262078004771854380522365750278936775518121886256842714116409043201460205260049977825505752118338716358277560065003846497714968420113631129924325368491077460474109408623766436424376761412248073168990876920543159403991647642013512890599802794701526892835577652182370520240549852337054175563339656614726979314715336425443244783087918048963556897663591368187787591091437100326336130664061233969099173745912294330102602950903637853025263194355004031473400259241261455915624981020872179951190518664986502806813439221998590728248887923574432509502125965145092354531325388132919294245187506144651087727113345264792021422558637264846333959333003918477984266724360619799137845933451888367642512803610520739261544730951971075148087187452214033458377605853366447207821109706301523975991035851687293818132814038747666108523405368544002889476155916855523559379823970836107784419974678973358866403767469022750856640577274265697618873429341097625448768505389688923281647124770208096821130431973812219693618313840745420485751443013598644466696941056197463364388743473517775758470854817965408808436009528828748044940138195730593028842782092725399681325373277141066118873756549328173190699269770606042951221648049306638436340732757167462365886817968573896583886531616687128864951240227528694406921386069185871728196838986519781318300812215427981665218801154525791229912491544381000879613421992382263286925499779705104921481169313072731355204130090901688899954468271932407807805624199176069542610973283939294929094585465300871391893277568131234675889205809054780359056909604509549377643720905769125360127549676692597360053568598793295627906336434729247926240531788759504437724999293370304065836053826237446732130857452542213012951673780038667517281279673667083737717244713319080522682127993849883720170034713501070528542880941556234917768300768476552848998978129491768063281923243510674214415218650707934055339176363103752137764100882834420564512542183722714667155314048980551649543519418859326233403210922301405681891698876843280711925277923387791054694322205267065502785866962212111705207177740816999137637325325218870083154303179204983715990247680753498761509649494147933613159826528097446832196622003022645822642522051893465713935530779795815567683321753543491827239681645060986132670376394576955921118135819944666643098553867021166681644547178581901811210469662945753988303678371361078406200205420461992560887101046052915884709577684615356574901422501854756635510168934934080405280135156790913741510381102974205228763215095288195550408579334605446011850711555311028959269867928552944709041510986234414063610964008776162335827798174816084254211060969894866939737587682996021464010779017512662465050603152615576058574453452997597460036016409881583582294117397807874102965625753240512784279048329003047630445471862331435075068332498017870212115331525683696888621454281888050026056378264952962217865230276332065391066614884281884668183123453105033057871386089664137208399208384008795519270801061972530536255869908088852031196304776356162082899835103137825621299495330952311817347726976720977248538301987146312036273904838039836022486155218880762522494282231231523958341169203952447811090237284784098208344035106775972809195664541788493896164370716707738889889208366312731106956297432487050866646133997707978115213033212097488294785220012102640741069469827709186088241020074476608031026588406348450517268782770523189505884089106225278004065132500064882215727870510279436286111404529660164778736241865897912616319594929382702674241085441224326054841712712796081769197325195435325450366248459886803313079185836604396109434496764505866473976358975334770319951788601857749252120118767672204394645179964279285137435384872602589428575560643373294589561629374419501553566026987435626297505997728592061653572360566537222567217020545022621041595857936503066848310558545467700589423194130390483693718313317343270618450292942711666664616907467869410091107791750012540228137330617704743100117941635116736854536011442734048775099970531076490172291779556958339889164620938110491211108025702948837837239538084913600017278445189197449737738788904872561366308056121476285792513701589996344477796263376401370375307583154061376505181316337700357178581336753222533918615620572774359922925324989990270240447978672467926998292096633970187786774289432281178272640704658446325082917125711812352611228314896148610347077728112741818062492994778609004083253531831765808429298006085593914430609131653929562787940367910652573865261636749203955640016641223571384279007723976437943737553102219479056022292643181693107994200250517791653209826187058535845816600124916166923727617955640579309494989406356029465396425829812884849085210861523105162941687533897375388039503268121841212383478350828757506633290657200141341517568279354946412876942189245775623523063459159228517240348618541851739724192846867782924058119043657022574563332457269102592313712613057073643147835391588266728169003356973896193457957581018747776454899911262145393348076133773111281919102097153702245734707828096102157742568457848695463046134897594942437501870800351735542104770846243854905762349189266764475059577028585332016620957227746624163300008143817651752303413029758982803333655831678286965170731657943415807360092442599386556484492332920563295356291459310216726883352522990138915655377885756961936470432086853274534038220676810259148596222244984668219153807454737514042743888832677598494057015957483715029699926284401919185242357367341166959578079822153659750355259574576740172536485685362467125159457219981635490935146100778391567527479050470913108291896729286763656085233788906570704245149418226031381479964278047806780839341817620145141942233838478331960665898123171205837123683923626598478881899181992835374609207390809191605461364692803627689206910386877142036921129826483110819245224672106408666283697331495020924897804186443790509778923003880741962735904186655669931340524390704656127144409725423836226451892938030314564695378467666347913513886968886881877183935688979790838148378252609249948381365120592023640253029186463862961440598455203717978665572624632361821355416687891434746776147796506182336875331207886414865000749237939113959483801094635694401164600815152540903808128484875826138503571162360811129553229413360867001245663483841815414437054910437644772589257217850558109851142228830406878429413401076957418354962543228726491724213829509049197982962035667849010839385056374050810551314888324800177118946833672338335494302335996334701929633766533302378432821744296954899299720340277742154732632635728041560226214133602130363103547013346336959412669488189099336387383292571496356512070948422270726766697716019644021771130285510152350548809068266764981653223746998246226008812896030244265481516095954379841465908772076482071076351663857248507137662209119702844251982479212534557192088182796028945543212323589633749124512050888739931510761412745851491248889320160586858991697528349366930121899489025808304593359249797998917973844466458100822669831689098341664435351935214825618998451806694084181399770579723434344311607496263316522721335035267759162359763018115244658489205028887194620077360829074048045832589864330284097944043151238426193268762480631355954182419220150202437059350879255522772713092802488252890932266360740645323964036187483921739023280023455180199082490758081126251090592751495819211972629750140226732429413882029229893706088190887751785416887313083169269091894312946266335795139954573944133586104048185012666993027729306519678689525071134111157056950883940650181334630123208600009087593516121323009608152680600940541952861317000827685866177071166038918861698052668695680925165518021406612452846789006194841114466576324455338745657066350276885329009321609372875300654647897600554480712770267119379298978392486882763118627055751626114227782601821332132725114885871448822265415196284027608853553558215013200837564566449153800977709795718431681395709151428593666114798998704849580803240388141747261478499625896411227160715251672316760004228587737970966042896203696057831642146582618321026229835637844588245659753843275964090808125011988638930074549915822195841034646476505951995152334156506344758459964501678218154835706683453674390237808961130014392954415562779254532556772399178763925390219904533402362524900373201188235706629967611062802752631124659462934659574807877202464676848941174521712679745255757471263057967559103301564791145969330820443066841492493771111832338859162731134126080644299037825650947664277396117981260726035964126178686915953525479089239345105610097753291119582036571178129390358355586136889996101692836811963567437748053694647525350601172974626200794311927102141631220823506218361266844939755435853616242168847627533719731933193800338357983900859223943501053293913060514750831573254180600523822163239747712211935925804509037040122236433230297712225398295442681372914621322968929160729128956140576838991015632736547103051417988456996020371658057226715533339883497649494130641242549293127620837884584087359443661848911507226016472479827827326619866396545079407516733414832500556372193093905090040876943645750578567694148449608920833809836856249329526020949602712822824113946048948443399805006136898860116575003996407576068699807242876411630760874477746976850539283530091940216865636555582604064438498155115841405616561652518890018555728826766437397657001841056991319366568048617185260379571867721313291065609525289842095752459989814367909701817825690120900098264802003113670277080086314020935057680573707170485636390367446765149484158751019758839269783426411536666119019172694532767030335268935729548319254991257630714723088362212308992807805466253502561869066341117014289769166889199891181550804284460642872214019194430643134450237947909701365503509804845712169459718702393364064244846955094836998213690393665530889935804316724938516001375459266904798728312659329672480689155075035817121546910422236151419586136907782974467662649838111347585820756230685304978703307662649771143035384850278204467738016690737874204458908956186312863234701415108578489198299241510894645249070324877127553093518363378617189102299144670671704405947791802288983569243530401349867040828893730652325223818690291454324151533070561313928925971171958426966228626863525416776751479709301533080246670584640569045303487928726089332452978872516929913290037596016897552973689124464403840504924525546403472157503553208036200768828797573512706944527095846162639288037523405264124427006607635712021042790560215737424957077325555753488240655351620886704621216339706241954949220270612237532733166914346723916693283901993477574893247864921963467445980048163857712012115545187133989388431130390046465378646957389072638449426765130182030732308508422585137973452554958694980727545824552857123464900995951063688065264097491741795169850153379083492737728307012759704427416218284041075787921132756884055293964416353837078387576159694249099745492898008405553248717301730001460236495189383831501449602660702599893667682103954238437512199295081285752445347008441867829817791440328857100195622503008628949890759368617662292217580864288619776943085985469127619407025835083145425511248705194233951050292060556227935935523904647019588541338309654792989164342125447584617166246725352315215411294666854149216160911037015010948619434969615404917429439065716652324064052708247163191443617782846562399902392293251848670267958961276932650807442892848378878716992928574915482908497732932202478223125424832882876841141133803993693185638417643388433438493902227566528140191967898290717727919015261939858057182319547185816096563578265093997839900411819292002613912740146833182378696553728207695362820062157110735253008622231495626673199119306318904854627180946227057647485154901595890128070789405135242524324434981394605058943090551112792347294590854463702441205525897469978601842561371577603797829217654896594189575169883628063371534947763821437684909617808015937379046753648446028175682245961226094801607516595835002664336263674801913803557470998067499357959865476149292918176467410549595224433497351535481025837788297623620793904240568592813913620413710520272915401376662160840995857949774869738122717731950389890950923244382533710812448488436391436338960099210801149712239165620415875981541069725995182238283665982870223019582734682684217831801115437085632341923970635525723373612124205224022893120095970316218530750326155276802231243261199038471409318868883700286002030205215819852982955548415136149493890875101843605976933396847194658367733963660342007689059431188462879079643879558385158563806568228945344657209850883260780359417666570517019939004800517600987114922042562545072834861073784364330698122697731995569308694969142015164356530943115631838839609672649973517917674581574180314110053295583556173995021919678672833838004193312003721860864923687030234275086898731542668735157392622701095078255899960329272413429473141239715449104950003861815765696391882362939198869762571501023013684246243789590567116915967928851041521144389709386003479608556576185850059591523774626232611375523010611489324899036776059518402135217280581002156655166579977483902612119660668986641537308900309988503527360582386291638680676360946920314445427641708036632062893830419708207964935241339404705811487201623002337250622112403670824997543861702373497783824909476817688872996618405808965408409583484359233609088845428662488788669623756762183581315478055022868131826062534641968110670993192005069578727821080042489280017655547340891359771738226924755892449197183204487096508552504060921940198646973658644571581411940145390169521954612613640516566641880182269342188243962507890672998152206633355375564213882190589569789049192958349058887746058252463490347379179848388416589077289412570094528425055467208975726602586163412844047434823374247009576881162580412725802980453527589187142826991705324034185984459640483334814638110885229446244931818268954506399377114762264144838683661157403193343648876840836860027935317611249233280241176489503349160719508926683802371411259010775973069093312010060377728547290796567455738468724145940996583979562555966655327926745361316988283814421998277426302141379842368705582999267181837965401362497927724877927751918786109367835228258298033192414537866026578396191462384401825269674332098380535213660060357047875857663863211358157045614513310694422803387421217461236935755011924824257276595829855777222548902453186767553395442919432461132499880811579390450308246620437605380547531237237377941417561260587518676395432620197810129324396724992066518694922069836567847807212827287237033993598336240395126381814401346891838031586255877930914028858818820652783218326812328137848113050906857567089325658170509477029992908613477550363433995266061227337082888765020518156850732207072284350688183917214683491490358817117036410154106760965127564881480361551968065890163366140817922014719498148118998212340333665506545652388294322576659605877292725580123301278384835471636877126784374786752943262123707166464079328940126262839551554225541275727680531842119376395686735092025144065374278478469158096335554936095564172431053039724710906241122682480075339936159037736219648538695377297683410730073354823954328771557656831939959418111631897457713391506549117453011146580535510861517155604300879629211202978108236370776575882641125699562450472733994347879158867348424509785462334384242892067634712599205879731824481427487824706058625323579047914350966605249462792396559949893745901002568177530095131136142452844441698187355167501843811872890196435359317751404348674241267961998829487870768712918844311830264163051381006970077147417234146405961013255638907927776776801215859690948882568985474325120066094562037962617919851056384566995473003369739168797076260830233206202090757274717601539510682160458514874997261594006142783498800705851303643347616380168569283631994247895199902341967837347348242829219679965625984230413856964823841575322422373802656609610691186747412696074776567375247966291407743210550610068858138184354329481172584253485628114497163328822586389008612889551636043503943147658330381760710165051701180360182466316472274460854142394154898599859897851356947414707711908338322194394637525854986835721938510102142764863526487927089769581354165090961203141599951779651209197526781988074043612204060403533170818658691121618066708360085645983084698312680951019312729428984036334623434636249815356890030894362952363504937650657801619689945669852990760799941281370044868695904198557044833279543977187633147065173515661408744355073750612984842833780868833731485684447584551600258732042199290381069277860520263860639126408287494773378426710407141733474392084553855721236042599114837764863367233232791735467330353222850180628031498971823114706553623034812214456834468971537276494574886921844206934598238160867281510480790655631222944050137954608467241117760356930047253364221396067097878887565408010516554867047744971551288702868235254112216198007975823586538329281067502072672731260982358784610815767195088798736318115133544672677867359914824008156478976192373258037649756845786036145218198230094746427600770656586085527907290481340104839467997414036437567178397299055209068034460302131580080022557807423599819525655117863081923362591964782638523468878386598867918941133989186759639596182843942293019727916785574764510944456347541161517659632674096025425938426122490352240375165976004046011311443262996173238146056188565051624433077369241604223242178292314154354054947942886121421676088136723870204152814316596498347176004863048253428110654168094561586014278515808678684822836492870324468250607593718843462233532882251158884395268703411991878260644312051629183697994721205613819863615473945483271467425784271364896084211966961673103024255639146934178185549701369733017439057752771468592381110874454744813399259646382600908188068815600468622099690519583562574918160927591133718746690645748046175905730503550281886801856567503840865832969278997186971897913078857897305908813517653423703286047945881115323725689296235526025603485960024663145526719639177396807798718279475573765970527093388352390058647802768472173320236125525779056904479706522722635674391611181328305708535654036621209097004490478909029295922681995323743097721997279883227382757151234644147221578616690960976720407957301009782698469300597718491644743966324367177020773964448904174045688031694045967466677916281414583560864099472918901486244924911269243276143131839959015612586731627878569343824752786642029278488570343956666855060873068689899714370354505541909226085810284911411490059269700023773818702332464468620741261074843925814237122391708018983145455485393914570221249146544370777194555940831488432469839613006844908178516076727738182070622794706423594803755667914523913131332761442402458017369218400101482648898934774113372514984403344674305779584614920939936218048626165970891124274971080063811319150477052296418464964368567876494282908307352180270610483552381536656940340442491615246838153486204332302815363730270980720147914644867955476432055373828695282796414656338422582466774161388392158206346618390621268579758201030879590384763298992652390887644645361823993275312034509305799797818177699624745617899977323120742365534650483901571233908595945416389189159460379331612498410479537047247791667724476589731538051454464915445032937348448976271939273428871413160544649315816423918423246273039936644233849171891930007977644173596248465835278034170362016901290243964824231779139085540231342550446304776330450563039412646128860095910282302486256845566972807469921656965360768180800688507252300046072938999316175263964345907942199160878124230480243432254403770943095653761984128377641906242452232674996208836412272243128641984932418670229679263573494291894280926669777074857151907158351236866564301235164205864681352374959665177481737316560016119368605694233984450315130930011879792316830810480131527955048337682401235830504933175477620416897909708148275430708199883213007528548467507254630198265303170903515611077612385757057882761745254756327092712520261105095249888360990738583221143070334082397110986264291586891397790334579484395899888634607132309503235830519507926329218814971493931987108179388025516284692517593331053317570225069592099002262821701926146410235675981872346565580909300889702697021622359462485926627410013762435843388095879713226219176185800963869574047872406950794800880008328722663264740649445062080751306370268427242085476657197638951059778580097646573221147829424485224129927460461320098537754838610067542934460852692316228714785174411322056100663439015425640089103152847657504163386360928525917839324264189464174574616221462087767959378638838043171369794484077836388242191581569066217525681389739555372580605128408539257041061432897495356839634767308860374747221765633681235781479160246312825142618759066941119050529507533222533302316627579880548554242302458151520207889885244418914306943320661343265441260185735692451001021322794849609920584328219790680049839355145170616488291291287806284738475868134998672207188736898216003535072734071078868942293507756775415232041623127222336377797828415172098490848823553742456661239091602986338327812751946806436357355064467054360766438707657721162168859754846115675442710742668879966025553982496355882960934996164835910755301097975695167715592799850058132988531682589832617856619110482227441149564556829920482334864653078442201558835724480381060520194744367527867039620018386554711892634667232544431288264907344777067033957730924683551998597766660333789613353151138784527792123601160063035512769992388115062697382121981091710244182994256629098998450451954121965684725349638780941975123010062032785382977633758669116397875080257313589686181679554720957294691269605495944905523986014284560278203374639600754070646658615941045196656313902563761837682664035781735822378734916885263765794584617194026217404312326515479288122887065528313870736082987289099245755379128629850043290346811760535042305357210384415842965969752468319930250895646653057622403511812828642163550202715262357540270144640205880522753146123759846478468741035544812276747864872747988324142383261108406331797288378021059639900794518109496958619896162334563196938059291023209517287974588193908970899635720001322803985643212938163056666686828622430279474724316941851483897505259310172454088309564101971431131044506189413470999018146457711103618316994670991559326208567325791023653759756693031680579350909592665587291945398709280955052560717657662825709159120642541270844020197581275594937728718994160355875083433472447586176062780593624066418277659692822369598393994821787139124414138531773664523360859068073469434776981630028715618300843883115131717829176203030737736413827509667778224502811044772650689811012391501895406141149489468208745165587210017917706827629137628151381036879522968502159156795944093756761287574331840644641679542162018188372341763014699304712734711237315344068412581743661305065640408341632759265515392916497819052872082328118789016144080758021287516035780990976122164919613694991561750372996951111593028866236453982614249522254657149590986380005235905714552022291900827436269969931849267390312269423569474053172736093146923602404788435445229233372738888860527308110710856423326646152619429972656406501608087772314388755156406016924991194629491280982518355711016131609588118454957415379045818963843816811678330323247904252802168697048420238786535155306863962908384914342324890392686613164787510292063838777421344440153590715478788498072820104448232093855116486301220747273507440421594678959345674681924228089635499168285356395455918728637115023033228306472439516832532849817019157665095656365684785936794639274347379691722483909017364495887399501080143598868724124000534013736172174867952088279876258714500488460089563213824217222602698230555129799228999565987269828377957965428898974040339045782711756011862658640467069853451860903080026800060247077124803095124082679145343380142138498977357891209191346647548047229397847431365516286677862670312258027211259604270205570763699347399980024474646939542365233605349475446818948511846598245980120150887759323304921303168832726892136332099206199527766842753882026676334286140628534114263185994575675622808859019384292155415662021907289927901300164015292476021648120554907633078762113971325835633763336853108501398016657964486465834831102944099846379164712787792555478865541233029984064805082406233846695661116638412008011790290538241932586643525293627100956080271001443880576161150273329280296868032049935431979302905282537553093141561143665001603723753343827847524706245613932700073900091393494436298183690146329039728779350957223955064748079904527225231388519012403651897652789220768812823986897179518259103894507405726823328957821236859670486654223052641619014355865060283675756087428701186139385430424444206407885502213855472888127961904865641266855374932225348424372984567654964630517222042491334545135945323467677165574210762273706624142870822223696400486791888092042616909921920317907998409228454185946555106234922544345060833716023345512699140069416775809667417742103704763947601230047407506427112807148811073762029102350106433114358829233291734088293821964032238698437583057964162778767400331597529871138350177929352984461796894599900787634657742977825483638218185334229967139657688072040438429408298636954130528192831669714531721579387238882445164722038825836808937406436668663359015205048320901478011706777946056876007754524716360178689591251097551955513471720798781007002094380895410901998425123592507238872160317669400843145762374405001015265311477740885377242701898794544133853585003559457413316110916854694160896893297573035225811705015968585944340724680966122373925780605418799013872254905897891184898374634360481845928032864375065475192515610467424880641980567892494157804840776085726497994953355011081649377375481169392605613070639778500799403833079017883013121375682624052183169758591231574017805622454360512643703672702087113101971147100974307692491786287656961903309163892515042072804888904558830107333915146474228882130105591519567168152457487714240891765876303720614878363962799905985915522979771530007642142850616465426665948029746567552550180604011378891821004008426629905091828803698497766328139426201928914409912019840995617220800028398242096364434146389372428089203570763723301744988175685939923907617858697611428283630156362203327916582181438406939963748402100521125081262329352128393259909109249366068752744917844682525268746219667346054595446248765766915067718616931603957759834724703425705749870876253224162063112774055620724174335304171174265078257359888419648497723093723118672124165860884612545493061107763035204870499380004117723767871438940988588595771110076908506889407981774078302222227630467315057031928258080623564707441188958555289142202853247156042613380475770690715273486912464642897379553689086047834442683459544498908566190942125088203053823445371345123771782438810661404291393630250523841580498930331377030603131636258498855832729384029338147466971204480324294927929948430133396556412715709588939603892702662267577054949135845827825409812406890175251719958874131963180922910676393424096306059046419648483026550888969714521655056836787596687188225056942918621343075164598390496834196543796018884881440228863698056176894444405034034366412586735235505496235552914672714132292247159750573072172248783246897275153783681286656502795615412794319949937443845423059009831242158835462330917169835924110966941238927952319582167452230136840025755003746632149905966401974299963329907157741817435925265701121615103292068637834566079642981460510533755514837827059890064305365812366588959493955109968067208907121837897545673090277518842552009922452494876618240399645883409982786435492709313797580436361893301246982007272456789565403958528058333713692661954503646607161909283042006477580172036385507921041686731065408784301859870121597303055422997888202704751157120551380977299366789978379803988300477639138865034574479603361167582181871896910629382235616463886851161882416902732433118563222622950531138411705085194489595276536745734390233824302620034841923361035281534397924706222512932785581411067850321020196061204965308170681524771646063133429094141234998136970816740670952250334293263833976631339609047589328184306461280112164222628185583712652758758726878116914096222639462679034635316702031291130632865988516706633975249514850494704934891827765354617647362740839222638059319882049400499943393957643468789089542772857022667404240597526627985241493592879587240688467392929776125814741402638907683096001682658203355825188673837420452157716431961218080689893525534561068530816967226573059641553923854737234443834209868997443143881328673619482348446511772308801509606979650328820756022079362902098033663524592852166951745405273316936557546644459174209978237862423078247115228703565084877274323112317675274433378809157486107082257988829145648051642324462107585186858616585573779046127402986925601544388332618274820901079581170294061286579298971141179510873916970576798220253357031606883746357968365149089829202140908494397440610873327979899669165415285792076209091225163369128290767632857248115047505054503127464695117088478617998597579624090363038790542816455052786756477374287060370357737350532214167405462023002185182872559387552469100400725416805304625409940208585587300696708003019062258269199714217222655902214144661233753757580513822491665461720951959307152532768386454076179547016848961795401489187689259774651316126675530724597824659926423398159990344223887030946425971375455092472688371667823776548349814871335225888543597179257414826775143348902421489612605419181289817088855645445140049585205440122484957227114716450823167863395849799189163054143474390995178470927779992172880467046695123015752379818087459210763415516822679334385139604614596831072278143510026715803424863499356266356354689343223975928059859697063581414010805079286123144762800661887600687420659268828438921807765531977847130388129103693809841669873265749710884188130478073279080835023785901754686239928679310631330154578290544375241575912762254785641540651922963015995466756640934902664664815997530166256764472564875201954090527125845088792212745239438365284930331589253995116697352878639087974778352393113203914641432494018899826856351219917266053711563062334276111368429568975268260537896497849305691045989351239721601348925301096178682232979570602815183684631079050013860402672079313476623794180714380875753484004252486819178968625546063389476321805128482391003291851301121060838441839571629755462479249779309630755723973591931529143489043134393746163804407188544175086127003324175410343009148282541312176161873627877156256167283764523760814917357447679778153506527338124950645786905759448770290320059152246103268871893632481409801304999949023701579139261184251927223554733945515238525757512736504098207830927396763594599942538230778676116764350937384502665351687698625106726542032292535960756835926969287466600560709811598093189707156541349569490126524736861395341044330963666680587052888977147885386242436880592698017510509555360722161570153113283684578249750118714404385619792847319747223252919613533415247036675597309691743940344399899754468194888304297621660544425696513967154394631031471687201910948558308626173735538138293160506309201409983322864410441109044512203327109818441111613174542007669730888888197244674141090521761849109098512235343625736932428233029980730739814573530681668074058275758218300246719388637887508378216064441774936452120958862977009930176956875222025118727748153447417283202996440912117595959955582213796577120489623960205218970450710608453852894460171216909001728722614360059895191760840880136238315087807223429620467682798039644292812956307467542579620201127836395156273741770554829310164059092893862481991099915265572665703533623186230021256407407829961973608239673387967358244020632511495780834498784016867510688777712101205157000684764607750778903786760954685579387618516901679294592015857669148610310846072375518653995420354754474833709281119377022115332748482267665437139746393225264935075586750466014976976410738151592918155418802483977329652314978293935833983436318096716945254310523486071518334697550545308834233577957357513049408823303004081884129664981963510902226088868365827725068827032097032804160908654305467110443310831036185661213474372501301171420102922244127065963244026648837163778792950050804205188303064923207827511620641873882930100900255011494616436874307855578291337562061729374353849151529829060066981507498197136997138627032219106325866755796903061059575397653866157124543863363612037156239425235010538451420245160318552773490642495184065254154153813547795153220880199889525554527302352316814044305430136796840747785919494689986383338822348969609878755133659010387478169455286294089171820002265065865026498192681534687351841893429754760873314718946777495175453945984594354287280432626163406800924800906824058449736328103893222787886497284271329785784379695418756476770536970975549391746656149611021789870505815811050754578953489217727429986982540121486833145791162751267572675984162836687217286903279238700932140500177786950772942134830350670126667020844396515470672171622298117179200181317293294609448544670670746414507566254353847730940342434885393759193277919340976810451355551055870718934095331176594778704177876255895569277291854295885568088595588496865885282147571171771734750184509483782496787491602779291236022573667330821422152846158859451441961953190290361088205127368989693527073656643018796295662113140796857199652038816341823664193612476450313633621967074518289624403633854841254722154646948249366439533484264604394498372258082395502682277485077890097577063784692945762708727490238197720543163883820254129019250965885499437987898930274192519264458550360451083994318489826966239011672924066987938007816352991534898417050862007280320084158062477817648100536493507067594618939032843906227337346148489856014165551747309317025134322250470153106602231860761462472371095873729616219079120374073182447974145628621457090758983200118081079110887680865150921027852512013541892619054229896246715497944570006604106591320646235504088383124186753805032365712449480216949979369804887919205538093160082089297327846603768283702294672117953806180371964995860881044289598072757031051544185395603456666600220197440077585234640170867831655495572073824283276037238625856361835778940221769470120961511582100670973601242264637171045236364857626923736695765234120440784069713681086139238638498096452887424099767287957648299588029225810921580651693565087938140204685769183064098497865977731522554108471648867795576310136452160860059885429378011176636286914742798409153774497995989618433420508342256040007836220631474018715870081539451312111690434762359610498811383226699720299771498600613097313499209176385147855414716962309578108727607636609462001527607829306362545242471494489713784483301936864194122013141894111093030580620269413875336715760963691293397169851365748537642341971785228839459745426846844545389432570262084801879871967281093229890689203829114658995073350626004669421046185998200930504649236686947796622591958381829432630664022540491374234760634444395792507511481275741992434144789244250592032023659036141561908501358320706697336955962757520211644893289879488012342666488501691236083159075706843060766867970932531162434601914217746350109409564484797906553563795236603267598383492756538712314926971226941312665600623429191115498566517414459803794519491440636445033542263616410411609119989634488990687790222593705300618970569784821830738083310849080927152656614800108640718969879822062901920553386290124110984611824898863632565995072939900065448377616808209372452241295551354218394561748229737667732666609346025603362229878418332868177807644822040627339310462466294950258898729107181147154588074209187435513379149802158195036817683023734347813906664926967177708639143228623720767722916063270192193025614276703573966389693534771097378316082777575228316750344345679203343501648432472104073574651920596293280243576229621236806975810849999233037922105019224851460198050424870368358027911190916303873800205325002580734298266791484578587012597447157912952101552375994472343677039633203769641776478224603333856816631229757345590461195459023849909463901420180710695387265957306217771184936444267266026869606801978036269659042411244923809663093513592966246341073563353238567108198860722940343837252734064048292256356742854810222873377207756318795977681139662597168642469468704534910832895649501263082540761438014468557570788247068758196497389861030434952984833952502978968080937887601220213066595246416379282518813166082010588892118277893762482219299417214520826439667296635677447177989176918918890096858611753647820567381919067139363243259662384328227735771308290401321029534468827176897041332896585800935550455821235128035296958605015762291407028403616545542594153995984125288707924108487260466761765703827225785037807464475176675874459149841619966203718537601805320051645328436795561325120167747857830166275067771607858087405732503256325858018774658574673942732377157030847994252939153089867257662977718329705873470277512700679523750676383973612956070649914147043199165577737111118141240535278612533031409880677624139966267821635522618749150024294751232075301506327431957696554558733142332113984091291427801566032827211645450963296926920266497180675064748649538205257079581221455474257367002742108084266278439392596572460589426786060816462314429550669682127462546398494441779850238407743857381556601266252237775225557198502304706772494697545791218692295089131669242675727926343152399997073409337770528193885839941382062371530455463321050704141921339648856127823146053481961710635406958932760749250493814769850865946953031850442593652237048351177500346332061663316200876084010380907365903596300058919771486045771984034709848256877099271806601791570330568586273941406738535930662685969290335536750080580395797989376130544626519235501080344798839260518588174997373677327183259527564432466448539375789215288292776658153930187948876697562706932456617133933845954810033540583387552360496988063972819334624462602294140055474651131496712358514447505778073154094014170833619431224235335650386305653994980293998479846387491490627482238937472792699961885063287016715788397451330707183898276563553125611484634627982223410811087666255432677858306770013232418819180428244669243213467329098140277499111753448523848337448126458535399532479194153360158173681572779976184503609691954413604821394394226017427695117679061810337261914593923559927880217581363615436910193874268403233133712276228195662181077602419098462525246981179027832372053831262049176582032812435126271316614850250705621070069952555911239190468191369416198359106563947375866012694219947637852550485619233882673481521210333230323244342849007200866981434758053860321765860304102326443999532134795386596452309326150628747211816732649807515751516097127310698919266752296239651602605537703258923088524011638661051093830875986189103835600755204153889411609653758649279186267877126893108455580662515057515628883431151417772818694158851269501414187196540537631390307545835636186478967533636713374049558986438531183105012858479686478950502946369202320531768849757511102417591541180742234374159497859514410691412012683680878898239510008818962938686865354492645442625791006299142213101943780350914504448830622631108762766599914944219012212656209404383975870803881938583143021321800633962744584839676491321500341787426965564650584986819493041513540648344417909321137979589072284836305906887849961121275029204058837467959284323991635648299275339025293336020350854903982491388682251069391886745248887616823854846277218333122590734366853946603974102577109415247332199723739409079397611244406572789743221780603134559314062393029250052225564200528925565672370357979914627226889313955434069453827696745517800138940023082092418984800335345402479497704250298022764607257274711488305830251850621989580181367632567352921034508791836842391177997196432489571037879219000053890655504815206328868196817895028411256346469666715301382796181414552490743133318026621144144645508828760159515802057383741423729041294269512988164215489272380069033342095385266450042859104338357815803088083847528925106101098289236025181291094211876111449162650494077750493060847631613567432769849255548550106965458378363528026398290598820680406663592204915033558171229617484335269494185722485071438690701927741879981677019483284729286265081690627199832916638527764634742306684019243482965384031750526135969431520915542973903497427398826476402273117685517482332506222725332968298720253277551102143098242871406004313550824238861992812722394503482017189247060382494379505935261597721000431301270374944894089007385394268107338614200824983926328675520597000127351812764697785459320079836183834261439535091896357210586708019660842886523005735817106600003661563582029324596789522198529240359656424743844150298656965022176366584958846877813292902059724849399406065179379974205220407444609987415274639650131804426163456767753562941314023071057853746921644812876584772403372623168415908618114987741008267180795074709969233883781552419708876432972013178883316046245146278840947177439967983254159135449214446164623306968805841845075078836319740327527529525499171848181971763306065267569933046116674418687902006010454371301861235776255445433028180582556211686378090121165563671501396391251122793239143707187619275388105680121743954733349909304148055333894211056570783474856831757758305214699646545165295395622748548970094860609835402656254100236607345356640672687020975997441151262919377588944624708299361050268978350920865898940752035687840089719569960176618336632670676860926925507272880145250404995792379100786658807352791830563932041815626402055062344266578696733686937569095608910399985147257199622265296895825874218197144449102371113244728018179778630624739200275888956295424757427657931028372759926758149128854427740190705555746744807352227819181803552824905107610800661513473324617355324821512953688607908769296267333470270742688972999009526265931076188099012300126811583283887773252932823343432426670397608923646344295784847710123271194934770234359262299261723305501932942999497145847133353475141070037620552326792517057263400626584970635441926570479061526316374999746389185563485013214245733718987497049600514079905192921822697381382691525488293148829002905093125992429221360090544078342787755007932776142489483625123548096700382660347514328400091290110688992104324345754110088895978768348083829296054705120217743797621819023804939935349279535746038366317308153040759197249388468853714027065912419014398778640230513566700795532000250200420887448465367820623119883526548716677631415246543161042244161120937227164795696722346259889693531946245651660686906196381554071465206597830352739945898759574074080763411331624902344494973271587121955907704528528635473970903801576175978396988534074602659681029811078117382906456509704961540612997586760330084414614436649624911383203098125620625587729611737021178811956856732987481309954256536752945031326662951008623721497450840565767052807423887392767451344283919854014835079162985500557192469622106677480095254901471602225795165771434828978260349901096936001619222638876738043383420043999082952025656214135658605250505724639925953791114488470186652571684971328569017733342758783081940171429592878998473354763217054923532988795027057607700197639936242534233168275891654974993584020301788727078652098413106728816439691885642228788647751805804976043081495360625504599754541931754414971668496313764102492284096575165883430225339567318136055637241591053002435862433269863226483968569735059739475322987208865381495465397496235327690009297742440974196983684877022480211581371142836164616942915371675923596133272657360943100940875253964247833343809536614864988097933893477299373406700034093269517684818347097007166150572950778967976994491678019114965307213182397953564677525051781597394821799421901577018003667712373250097826009835976704841832881694071434939913337668928628492704917699069734828873446903503377402253059138489228900095608182627505884328336148620740738618712044035997633254047207097314965533225410766651096150138323830766837900781202972452184966497087465744290111726221942818770145030016846575087134355146279594485436844264782075221545029470453373536457847805597798842212277847505011383243805402021643478700084016994184750289932358760091034560869774618270468429953930034075686381159368900923316138718774744592842134758588321509896814479510007306152540855765994460404820441490569928531321745669917160884888303081134938323883521820046866061943169479902518420969041771284410739585503362325182403354321235849687043379596888873694698117380947721113770523450837944257939648728558457012250694097022613621564963933217097859125215962812897346731413938873919475846769270394932230244568053706948067733462925179252681934140237151023044879905714649502037696694329480290901980057533126945170618771841375354302051472087412899029822218126334955452086990880678375974491100813196276602324096900744162254903483494967158696749369083724588277130609524304834967386128099028618606240912846648504438627583994222864593271756299390596323659459091403316658359386329396454703383338903271656892551565438317519208584479884017430856052258806019560897135371070634684387081135002639113432453289014660059176234443911026038571700947721711977990732148383412154761687521471722633907685845654878343268861186850653877694077421571580226460738309912339820222014871301675848344511513108634132998915306885266403695702512801520841360843061681673508226046362384243000442522066255205287760710930412092444564812516542741868055233063554601533309274005471307049339549280864959393059314459784757030179647233838889020064489247215802825001389755776699691830488100719768083865062841625676276037908455537631593998343674417316320895314431257394884250381551015448619675826703849581264401009099708275174201378711854429179864664887941697444972430780485773263669551489562128322086146066078070279483658933294226653230367938949050535681238274300643921682428061531893132942389819973524955350162637440416634847544715596892193443671961122464741680852603136840886042654035491882008562469251730541786427638914106445391923410604525965867875520571003144725958302657765013619140958278543598520792181552875297924346119172625658961406208179715935530253719951760562197550447770802891927572586165061865165099140271995114322633913540225651776459957198111107238605312405152429810583784733615426220014480493229334565350021612175993678703893186355893756214818357059835123414446926310899601368058315242289135468438969425685353518456046644345416348238804994200732367266752870434602720489956584352445618989730026631241498893398075211221941434025211586417855052209896007799667977091262995949743805772035904776207714664795628767528560982510526491421710753712343862491509413789173574159728254034576645632764358971213018004584368823039998294960445500383194441565050751498606605219644373532332629291486938364755503640335489506094224267472645744940215451518819203139403806649708323145857793941605347398239869024837615550463303828921716230316223739155040150103379498291452704699651872597880166584314121133578370185357287064664716611707528150641603680333380581539372397014457678327090317362865886561696972424893098939440879579321808075095065148507110518064112711910286747239453158819013517269641673197274287114526817222047138911696396954696365945655367450234740500248938746497586258512583848967980481267568598006387848133165441468808132901734754704841550745409106137159103327922816694045473578017789330101679075706386611103863420879606739610338405575257566133255233355945740114710016694589464528503875115511481762166458474462099092055182166020998818527916447633071695514368002826575635122165858393113230603297146349451906034838906128073501077471974420345011568788469620915585423175965755651480204156284901825396102368914897708948683327485233690033967260485202647922919607803086276483518633269134640350832985347179406119965697685043620096908575001347683029029831187909714953324108087807834532547448851097249712560485482824558658261907447953128875781400962076151264195249772919902398544408855472812985497124020187096318142974952959559311706343037634778801796397109414275786524413072799874187829692434798766402323815909367163264896461930810744681322073012963848905560846343835465087876071086949615849050650855294109162678683547643688092321994091097269382841231526809505393168451981843526960026236259312999632120443134924104399154822929645981685119289895979696489365934417050380570643909332801388080434177631295218453909999886970339545354788147423553963364344424001866258163362627885639870246246841445249096887687051560388521964453254855849025824158313522194909464681163943692520428167364293043425505271448413254379248112103136892874008942699663498108948686913477004993970827371778371410831821260767163529887506110744348790308633503973447541964908558906979216286843593499353208497171479965278775089796855392461794229561638844473149015289501246905867653582045468392339089049733604216671459372652018348201854792451705359185129094595445826510615690220825291898639227701340739844369111073400040646795764768657020648006587062625394482951325341007206532926455166463169864139117283668691877082911290744503006522056306467533352519542842642353311146727765880131395425745389423160743671603962004272836000687956279279719301576283066232724199795927882361930591222711474494304574418684819838918405809857053591045114199670882655428161543355356393759515618299618129595362122942411867568585087023393401961506954998471221097096401867073088155351647084932943188852026687757656638177091100467328637921456244496932553066304439574237373472097886739705394324630226080411211258776481390414682858550750528845406873766426179551278248975063606455471924709381176866269059976194040574053826759387232982500730685363416079527380989036327861129396097260941373620211497557760386059498492877831471010001362149398505814571805224490161633155481814444534962309910205825027349533007294305841268010039335920244081774629373259747686886562815264078946604750554058416253050087588532845247321166122160828184461194685509041921479091777179922563068853995236966043156058888627937625026469756151426324332292454035997761084997815421119301503839231461029236801946259255302197403918318242300203438774491773787927333535711740157454231928362416554586211213739117934207568490719468776016267379710368933162020178199275388218065265250340075503426308994518250031469316664398810409138343010821962010800509284497778860901038104080196865650049637326617368960713417171156878463471174762102570174792883295357563185392298083938950807867425868355050225604680061586575472810412831946615603207552169299942036618175142727376106199194015944902213648587750335433210661994058206782473577094579260636302316445571096850643121022878725736205599155740042573007596657554035192215962208901375939939115147960189777396556202412203231615959337553733993606724665997548937734702012519661505900745485686152562021516940439288779070177180303822585474060195560131852189948920516462166077986264563212767641060550500948573796035750316061826650050826695785255506310732287590183637225379015659677215753835637288584301772795473858821189469904500335888736310349773473929498815843660985258878157312136846673334788355444205100840603847188611477377690287613352158979693338510374736097060579494234637972155548744164292303460632770925853198408667584973829975372922781336680109420337876035931134714477431918317375294325568845992030607055745116618334465796783777858721374000274108295333167132754365839540960604815560512043301817418435720353025528660893554538796144731005086909989165768309103559487015900059068201794424715756474349702323354571041549365500945614283342705514486280414522271665249280328164945431187378411423389989563868085745943304124764379682076115329018392297146172655582321073510405483027919570968965108306672036318046949853637898495191059312919552524335522969884708400073335909614514624860513678788822971513838897043922474920980820567371700394269208864236276701975667633957127731637788882384528544310365976554042993612949871398152509292371065922186921804963460229631150020594981357079499786397636897364868122988193520705687515068127642661907600688234714198275955746708596316850796468847746275041064620943508390619293918431114424818756161261545843371415954008887285099049266352646565745157690197755177549328449457035033595172346569071470470606171538361643658654442048828701662278545167665587144554595359739602804008963381213289788221393031275388947804029383438477771689313129694735818740737300588360305700838151395247378905474518941247252110278350855763580819250754643053686101569633607172834508621320471610780576811770826020352957008772049637861741612173916115407734410934407303177431064429934258037215195229157674878806782221497972649526773316999582699102653314111553885171098704840191282143835958300599480502702997801055916940992871088302811137318400509015562548874784621809995120652359051408425607290996690729160105333226690246827170077003884453011489787330959824852399242701169440817012800408868944814791884291784744678491619512365998411017369113252002227081441832183915792372955733087358432493201245406147733341804125262065752176472851508771277241764343002713751093614258983188291815233214157728059352617612979743572665770362111837665731133633716358198868274902137258492100440822854970522706517976603966303602749414453724176391920887582179605027700231154330096649055881437392028313578415963146549786628582632021084435250760788621412769944759635667268545236177558438723057594425801652023760142100269887895655822042349776995210224540169799328725065766828580343468837296449046827864243218849843690842806792562264087241970035266867440414664017491941951944076417538902768668601707648519846728992945596151075168585260118087555717126672063116370361803218826304565650262098821959382163296412783993213763645960224035398987294194441874390094478378159763605724411344107848226726926399094238607996686084002788158990649154783377397130967399771456280169247880895797037231508140758475754903687283135914107820597891383258490662010081124623893739150832694286975811464205852323844401637713295948983362473970784700686249475618231582893878354779376582569647921281410991533354665105124308452656988676096842091050965247405554814784732760068936440199684097724526558621130979391081907186281459390018613845155291064319175279618807467693225149514589698202211636111013922538494273738404988055735113803455964732573186905047040338080571646267564374983089548392778469246877981130894748606035284760952697198871347121957318961713228210516883204214643493515913309294316530640163099294274861290461839283608094046687667637085644942220430518416973827757350951167874491260009660284273426230371371668638019122086814976047475422820663429079188462721980332904886078186451766566043554023323499110745499660049287208725890793221165701160427268479423122955091618748803751656794337177135661660909189989565420314270846923971899815552932602387570433638028098156402090331799650012926444351528599411822153740094284767164180721624236311993467766655574679725642744663796824718368769882279580522408473661176883774775967304008848146754470708601111707615021818890205885121318419559348815752130594317014562440700409287673285223045741108456843243045591184419447602578501667163462747543087351450186501433444333125559844583150800960866791499143681184588133739438761971504072798444963375993961697035251139248830889345733851692630300074682537093453356827114614910461241053458434935030995876865602409182506170808288525589436354988837715806302532184645380748943542054218499589902949112628294943628781482444672096691134903632546011954840976702363889449657006868360007640583166490403470661208075132715834148493609916327915776421167559917951828907162586057756062783725005594827288392458548589390100101683217408732116373070018125710869979248462025282019845295678218579671748412107766447708811481786151779500651533886586124651216242915904309468141751995531245096003299032132348164591432694304192763094801528524354644730468788248839235665740416705508673526346446496805034307405832529239816143275466701223324148629255846154137761923362284085084616251013493425984123776176865878390705754417387244020455327878626277350457495060246694239859708186444735097791072766285761173429275321910701633475149048096520400786971522383978210478836042940277505184094974757005046358889594730517270635430403238711912583900913750317255851971773504911859194749993479066782848775147015525291037555229713371297852824865829977297469097468428043325625456437517239533835312158212590297164431599411660848343132448562033752319392979596121875388816934686271185197814273150658508397119328571727976713862204087715622066502687678943292512547195305528463638778263896523992806998170323515113270799471852824712493679553216101120253117049567786507282442052496469888936788722895582018904063690248364844827898361140735488175232753918421374435117940328705988728929301591617883562841919857537913559583058957998392635043067548401925934007333037068106138038219577094227916229567447041611813368335563303798161451929141932742080079471182030685897225286307660317172606338087575077313137039853537354288946862429408134190630910956153436932058912760074577318480257462989713642577087463974948041153290690122956330911205732070656317469532357444608757527810565410748243654461167938089143743631208682008736719634686439600025701059482819862164580769635629847945996802504107392719232498615977018584264946770070785683313023541653965979508932070162574588797572329695569501797195180312629557944492004172042993734725746371591999967696369011426871531689106975352490138067737633043522448244457593218687866152758286399197351073755700207107592464211656193094329665486190796319675624212443197432354109921101087166946212589753508327240885744316272638196282890358051718574532689572798638229072259362119473430877294795989148744453987182579898970737394843215606643478421236570998725467573422122315788780031316513245398321276499823346869113636455343816820981605257667038610028410303487334133597759662433065831577401861138109627834765394109516784047973528040273418283556676687365111217872859385844131623076533577393615218190721598995546412132595419560169205462299365958397572398973536059148907135809138326051364994961075536596806407630474479204454633842742857052353646935048139257519912356576647827376563757043662935540407859457706569723423236410405902687765436235674198070633600297576186725466917341642764512256782518694159819891934940615204680765673701426539451086144392115671317460746507596576652504420088592987659706754561181293766896265288663489148887867592312218647745912478479359955043623662384768813218127892813195852364957766862003936349334949000013861159906232522652243176500299441030009733552937429262415700375341915664988085470627694765178691713441406295421353689987339709041113027704784088088918977032023479964719700281619622509147262184305636358312528585136317802201148392990549039327235191200944811797902598885141058294535118253745631714367583215249133200192046462503808060268446105031325560840749345002080142021978071455747155613808262913888205377874156630374827656344165253821920334258843238042507305748048716903250589950774390862105079119561821657348999187846602649573955381197932119440704138007229574051961112161535653372983218940066115249820600626243184878330883438214904935996362476320830106907131666149976435571231752271974618024806344487901640044096977129152360643997998727715134241454457016503092237335851812558865438041171034031731691954111998712734927734941098054242461539522817571427536946668744963302843925600182413039341889850620144225961436332543654625712072793256600056233372845419113300092156030272111017694319108922969691783094292105947720023801452708540184697662202620468752549605598296271378001600178289060290820345897442138638618937022634151385723405958601502252901708028548054012723741144201233752344149152437620324113719536935561486272198258672381032305471469271537426823436989302478015194049281345421688721317707986523756534406713547170917903797333923420889731253096661902317634551329836606209133185491617502721105640340119972533266630103505951831304370625331735928976389975288943306662564900878595398822069106280713567054174888269064715560867485679515854908778313272195684017090809843786303320164215375964030370591876309269350982779765979857825693754041795643045017173766311125330295548355688632940768421939673697708725786284055682129452865168991760678220858666982691472566735801950955798605079134667310163587878955478332199671060979506412376899133731875607354789559986009171072780338978026747519910099491721185808388076131698511191997009985448533022372865244170702989867461985664208977144247580031155668801492591405846317026646434009744101229492587477036373515177266807933558125774468770669833799127783298664919044628611648026975201841317883863218284289118571401403693817850916278187577099836975149072870487992661467066566210834684953504022147189259754106579296068606441334405048580048595987989626044171494077935537029307759318023693809078123424423696584215675002104834215962643632343531690119492508658475933723239915285738681469239169710943862805302558714939513058222011035746945971787979836950552627983517843393999780826417399307553725479186058297666415038054106331990790963391583497278506252527410067878271655195071172641933763118601001221883982327114298888535144216399695704320515097771785105399251251849225651489038600736088795373654823080822557083737706681969900711106981916929189142852447197699865994728004564723053077126893140718572338057048718560529106655852877307738591220290468133117532824493486317754176082090466730556697719257329735655702734135825140282183494797627037907022140643465569222738300197781719045546544633709427326723086179717982221279681190687779946774146729724574932437977599843190213407114435427189639806333333769077153360140957365068115047162551551907205036841021137254291180741618151631958608068443865600369083103098152100301768048896200562083773163032390487054639536116327538546560712273457888763953809532861780801924031353853575645109354335612018707047389899006129071991157744473801748668025530023601261446941391608993593279421234230797720967022860220024545036383132850211283065174632398514146909724076991699604906129187767781260692170876667047567575228312963186304242351150631135621045687536241995260921398356339135875782707023487850399712349583037103277259649263782550634634548173831483946366913506391361354822096567946405780370362679332912911735840342645485204003510457260512968490970891969954775588354096252707185121319089488789782645509250431167300342415622066884772122514088823166028701581834169770139048239798751112908523003094674045784137168286279178874074244447698041097315019208669385983056426676712920751996101958405460312999613881156656701158703226687911702503375801744890856685767882735157335107918705675023019060199994439545004682761342421112457174153371431277644911680190129235986121331041265762892977438898341720735508952090681698526347685406135343932006600351271128145686871029531772752085345531142093780302856377779465259631376433065097727312029695201886842451945017625100776819217775829150992760027393334804005745827138096064391952014026390885623642783017350024532211588597636123722171462342581735105587487356425751466619571372526591554109186088476390198911129804684905561807937797412360376340127349978897216577448174032945466959309972128890234217051802188656089280888855429967383395913326799333411553522656925074006459228879546463738159051552407617849055279186186795454612543136265598779378360179394436750754428175340178608774033045048576254010846408734844323351668302391954588209194011195674695478912344866392495914410994572816252581858430298759111502569717738347160023104780903715808289612066668504343271889210033014294383150647305045060587798559514682847216016856956218232277015112461728588984600348496409811182487806926124714223712145610953487521903789543026506983197542480312040990072619173382514137378246779878772760966477927152554708683597958412809319124885407749794696081173786808398189873651750534150851264793793626792671543550630899088549298525019324562697103277321084227599847773637440842278947425020689423982807705585655601852825408705705411804970368464795325988202064659807458400961219154320382575814684817248238671908832736928703865171117139754308007631005353897322685849800552426358974579097441003535430287232830460072526251303982302100272786320128203371304201599578961977813155741760121845320466195432680590925045949319854621070420821189948705936264187367393192156252060672265401574413109730697825392035967407156838703811495339038935715745522163597419528486944390047297343395976537581456679053215168023099231940714517267778324574177260495094779961597658842791721989096647601849022941483474671099875439962159933544267323661603867263175887915801488262927567236489639634545549889920097422157031444120702735502907034363839339942133565088617879851368728915076533773184951728453811643166111232601714875720141568733639230588009850896496036475360237856830254555482471330845720939425355384429860989679894205829211666499790159470781801560970736173162918433032927815569110872167021417125365237428592575344630556018534235506526327991606106292988538465674448233091895523592068871642573129132982903332113373731454251453601895354560826583627744141151611833466732823966156130869804845264669543346058849772891989777572472198718515952250287686518099849008348357351601958075986792076257699355134960730820535691301654522837626889666109203820771793819569063885445617992690249568687789388255212657966920487410646960495609723371853822270567981614826260354526865877701849561670739224525948140043524851453296133499633834357444667404109637151450265104971313717183136256286802798286794389470290030329357683269923195734347990463866123208565242605112679367095046258485738269506294677386681097408647820660314470183191041951635697861698876897662808881510774631712370648115949952671116906166529853422369428825468272739441478651456011763986238684002825972919585690651937457332882637061702029182817392531412824882421351895066361823843321344603127421108073187455651194166745672459258992698378335934373272084250853993392704685184769163764244014642816049312411960009796194381688828828691724348545514269837995988707030869816941220393549636393859290706988850614850454958369600383414412122361922797679049296031398388926346996832436095074989385110761262893728402847793015373362143158562414501401190359259880011722901191913437832881941004966215799098488500638648434793012608337435569785049190961570093658772258677695553984897220722580266508836860029471564619622570577660498177603742710581964633967050724726860260406060681973808736743690092486175024593063173255035963207448621941049964749211347040410156323810760361200650221282547918234875925980732261419706968515130934174000066869948606408578697088883060747543786634552680355230056680553668824473609265116493204690473344736724014805511750735646459640168909033118256440526783917212469954993962422665955609609155138232145607530853841697806401573731841903960056938956545207163757465624645776554649824162834116224830855853383518385493346123797016317460821124856082870823496380839674666982324556430818447655768333117385982083393978998956923184452177143542212232878628395438848866875279986550859198678031864893983036251476363946085792151499696115309401073001874110013560316017378024699118867450159572409568665216509350168844510838306854589212527369619783749866092625140443754742841563741404040428681761697718642165595863171132991010172421805546254236137205868415015089734226396292954390244462592309305214734560807514107303251545313406831412835147967895896673578062507257310955528664289850462566569578826212689000129667360135837745390223416590216716496145788957744202238974964907315200512876757985230236795058479996458870718405304216285179285776169580694718036232496767353248200485427766560929657002555706231089941551826732762740047502416089562350398509150649832955297374506214688051210397955623335809066672171395832608342712857623379664249060967836779687107034056163085044130026669406218933590306045736926810014620370802324084168182528109872004341738785016794960794777124853379795625228947393892023293133492381986019980792235344695460810049000241254094563188136012521182649869231833300879677113119702768588330866818141369421786626061110160575369434941484690201419508325329785985527296875374252503620868372820156595005845140506558979131806083974981737009554260904824615498084196867489462296213407654724016334486527708830065406368296759442049091157105574059711235117085705171569351655439537139759850867458130695135584923830076700577238837708278212705828484493340569852404794890512878145680674495477020441426691823173662549575522370425791730906739908761593470341905263258511762627899585260422863529229113446053615408114684725528212527664385262735344741636163688798136228185229117578945019190734465753182226603178088330550291365614800555734521052087080649700799875650023644896574417619678336071351346833470294724249062178823616593592796438355036470307609651314356186366797648056958790319502354067312910559032194119392860910621096608597244413921981464461035251763249783977814327446019489324550146393311385869155851854899126701213799964183537326266962696246045592250790910145866182994782004432068946686142705846698036539492935138219671668311478769974562634203607932285368468919562469084654624978804777573724728063232457565773251214053260850559338782583811694927146286526498411238486596960787894469599398013727891203086482396007214229202561714577536371589669878089720661035977006293425024592293000737630983979326911219625362686607576738184640654828523955939511495825019349996438040072531909211802717697146491315616586625390245002740778614462741971619632217930184319044137001491690125440142540764621366206607508666220453155825975919432041072633970176045426632647183464772536021258580934588792294203821034866125458961424688567577333239779321575931463484683129363307286904652219223072027271301028978125708627899830292040905150211345949463249409190679943946399682213784960022298244211713339917802500360782567889035414937183967406753024460248320292980405768141644796196728259106433330516240959691507935155920595739735235793213017408290087135798081464072123474179357772506005835361419017556794074352008105052533613600154791867899942536365227672575980528143083296532839909553941595091272233148280725435815221778869309988808100898437874330506529050502344744291120043764383461517915915357455994364321336277817274938618625317040779837935503987329127848069036073442927084988504324069242182212143992254838148030196998128325607523854017785685436414806451898879223825747720450952380178956972123479770341612996639401510055882238710682841206797931709231636654262127759140221510805178392514865095221520086978812648039680233898410673620087861001841175127995822365327394977476133708481324791779581909365949599423845907714093719043465260438000506737217294820500953707681969349587471693017239687716417130181186225756055546970743096819376647818623090656375758002485640058018023659153594831994295877859608624643267874351441365876977477525255020516680446190949129468015446928144542910090477022649481593567271064756630311717263329663627106448218364359288837195010023307296784137321442325676713133975948176468722445118152980292915011214174990647957306871982306132894965650510798771455105492283958540075110317587458334312690032266308597349868449272112813557429585693725778394842910988113677070437486126244226480833167645107088373864598571069351595387032645754300523039558331418546317646667649190858015406368548036014605626380109927507680570150037253458916340703791678166601830876467885182003877671237833276234519418467346427909858130389042753230922815293678662888330396743906207885144968561696080853195945581156100101859471540932501178459629027734272640560812205643586068328920473871607240605968873765126996002453398222644496280030940289442535552744852948397028765853299605230063605232052754958864954959056787464343166276464602276574830689322109453863485142302079367499126816925781273500940014845891150376361545764026099450413478310880246533115651015645302607082328821072256734967022942291868143018367206118999198835722925878131850468693837808511786101859875285614195600246076740444436567162783634994902253167015693573638206325593531970610639386948383462909703785712084804617339095416748927063391382220464670387851076831735754934339023281223237142741108653823919708033598750806993030931351071742792379533328899614471411918967815417256626611969013687178663647804435565345762707030224857966337470901655074064352978032839891207292248925375236941944451981468421133524016331796803942603189232927127633991801287441339100512420641371788239874394590112016782568474078475285106094561050939230368899875267390252014308594736119193163497128765293707326274236449377848340283099302378789094219170092607339871291443548769814313040464513096519373611636605051672760180079595296268554962106046268452946580698869604035774717817728116348167696790460502099686283706693107821166303246317073686247930056207052101538485000344040322162421631179224873966843828606938591550293783058581972873859686762176515115049592696933667939234736759001332094926012293707851893455482080624960663232187232463081213941871473640992875334843197137693271392526701010306235173705364698320667106251754197685170789854974772087249907295654183738137198581660794291316248335487878062198847510729133982020825782952925709603076655145969042021634981044545955324578533995758281478799980647197555649059357666608175406723406068159165949775526999292923308606856610657118012298798035619791504181861419918273013127967865519713327156214659784114952405693736362825842214339625146877733668108721525869483032228962220192471604643541872090779163288943941544320848638855757007347940445976521267582149995608976688909626863699150268880888065198748041720518539262715725826497530308313161096459170339188107723844126181371744976770109225014628963567847370816482522482399921829272618896221206208215919189594871257322169848747882093529150204467447172675278530662517161099826425821806571568392349058232856418955469528821412960858544460070132442658899130011377951980010254248445445238902308719789230177317708074495377906902045351319894564632137693126003295962031020824442850097869093736391632732242868324098362345270247578583005932623473633976692542739678587475084298628935688968265361881920548319946340021067935781448156290430460536731933894200665690708157669976338627942884254983669797784049348359977352200558591370662277383171256032133693669100208756358705500607428057228904379770502315963775769851270266104726759381179438509476425663419580834004968122661664994338804170415907182119118396495398892697045153279373114782398348243927609849456111940017265497846384962259582553990109232937950080220929299558863115567319479581390369310278494073333808299388888375530366408506263623057594880693176623300560850682558970978452364688651065966210043865796673411405191408358491716785123388926908691434006620564456849635789182016318132788210873655320619693636284436461541634201982034371454266478736869803794137920535244462540359404455778284312960055271619866530440967397855621057874776237470087269390780799391009186353066388104543344332047544350607476199000870772692629135468580250493773274871580514316373668766071570819404650824109644164153801803834719838504897890210893372642722127493225561015842895847388142250336610360555962362804898566714014109766025842622660659887323892530404175438586703088191913532835779002138658191952326668303034750438438076182341674994140011378892146967963595210190521937461745241905726617495266001791317880296426803819555800459021932169985234199441649041351381499101832618326566865484502512974881016099841859919338389585260134211269132686352461682340594639894586615232056567817910128750015906790598701476346879246735737322894077612539147359721129353841455154238375526624064133027022832696198100791045690246260636860247027850810197563633367234202102453880414744198302886332809371964597981512793911316077811972000732931330738538671072302071778685907472148965899156517912109783688505099079439571914497648896146759081276072699176460026471703313311581805896280831783865415336343342750326559113248454492384598511640731393280058011442879363772396117059810957769580422751923048397797819131718096485163385704925731065878128215571194388064901277999266178811110560555288518053284966928274973175932725113300904313201430221782989443047370839623770801834168396856093848814781178574580622299111249886307444471795532383105434618583785619344560981375873423096101190900455487793825176001146499685435736566789009913660595692991317757415396032713246960004017548053416243204849087143615601539535287314223859965972751136284145416376203336799619580229966292464189663040995171531118341537181086461693724574713716351622925763447413760707819898817076387273594230462903988505086454479394291197921612245158377447256952621461077633042439430532122566816236253679300949898043401427545297934575137681155490246176247784439321326332769311768965473195115493335877112869378688047802917626151942046527403262644139181005085141427782661181598373442757721145672788036066843414291978137074953091563806682964473461271034246383509954928015907862255749792852855563484116570466246212566131327343723974780731132439065506271256500836711518385332654191021214057133339492954072488269077170628623857144477725681490287123779116929887752366599208558660988638816456574719974334014545286912580325984071445399911247033786168916735388247243416581490217932206525110366669376143438602612991186873493579170304477809510120442039138704713054044256340682124385590930462839720458291210125699640692061427570889382784467419523932740309361101262133518739632115740721258659033162112869792234543172448810209853853032376524170994659192733261841217117047820527397817080045557818903136875996915769285315548552976225515053091529358137005772645152584229176711452370785801887802751412085809012090260133072496588421741703150089628130058103855516090189945532122780265394494767112074625745400304042467095066747588848414964193756673127116178706964229130110578792449382241144705373828259310769459834395503559002519934117190683698081632562277172541044309966813290641855701033240245116030466065243108686932532958271269874269898766171878011880021394563627990338272253818472776469647014825124390035635708938158913013022799966443037843953326735485960426514694064016871633783147907660358941440279745781980960812410513272675449695746982836731095964837394437020464154647677467293418197244956695615230483679790650915257035290252762285041309060129145773746761858966578545305155015291954167381615370612589424799727670602439295001427365891511937706272045185782712200319762124843525570625796769015329313605624801239590259154892912462952228669420500608173620571623306437220944693474113910155530832447809802177350601469426870446510178356282511525116506059711099328158221019491099042246547737088414528885341766612560665517455716174659841447596803470209560249200635780146406753612920288047284995085190185428333330342735499738065304588629055775068516686624175472958229804624632373635127149382898021226828670089591435521007814837196570153522752190074489059041080877383834346838760115681929926536059092723727104361431888475206512193025251434686746826952446372280025570512628197876683804117641103601621603789390471724281978664981592411986777290979498558970937546539440553929991493255300315315602694235400302153661805222756819271172622387056206766680401039344038326752604558460709458006287689166922570023630466881631412512981853081576083009663460993382469644069097914879224179726487697609416943927146577315517356074370961911407069531559963023821918421702256978343680533229506281902597707369070554195732350515796437313469070585781182986493630807415406361285542875253908928981034676519441011346008194611496253862715203492026172085322313078940809350234017512803362100495526412611591936931601710687455967221924136822667766907648498599003709031714463356589861663601890334978976271938193582408274643694395631759378917768261909846234888944954526252889900548112991240365347318470175276429239139516070028102728834538242724527599264588144767333917448032203399677065300411886805484674712908273207938487317590499955015049266708313993437044495013223219294337873162012136795198401889770828603403588195904744708703405665237313456163828072840468317854442791018758888904983177396541025036802636163163169844268203779959855966052418083587976185888110104658250280360491906495127083286761278280385832404832935789903280155900528368726469310283446662835868353319059388170649021943828709912500676637571251093268412276032081920203991971821538199809464474168822757388740112884313419904434070257053856595275860953321082904657465045550178758579119434298497782528674704233377143684504471509025865199791720595235353523116542185340738532424692880942313943659810700162050584341178244472607130205038296126896914485510515523156523618896791329171784696203095284203584719762895376238929062996329769671144808275914194041012415683669777278653393017948593432256797006019971285613997908677302100492742547276039440861150240701164433891606715033055951226485644143399313543248958577907067568046421635505449888275503162598601830708247420638358555898769100216477993560714821092622158442284996065767046865678536451029772404797431595591492657277758928650496354077999173632492322123281798258813445631496901888228049137881728713481885907541935297331962977158503166924491649152192556779215606426457733128420100361026119898538148698775396233048622655550771464841764321763269175828968634292116179683280349259465324336593652376844436460112672284018288542789899409391747200335066128460420195374319664045625878092099649844145741532520996997807999272580661768435015189201980953227036878963599522045339874187406542295562636033089879855041197254400425383450404188227752622093259065011515668125313070454779657033588158059746159743290290510553482712996394641679125041817089736192906318310141013721161607056030857144012782832602536854775574214967744156705992922434116338902973363281074727435019322387143006552316907099931793124221553762861879419321062226470008044698567515189030321056548579044169995275284956644033593659199853973240117125522681677537617539523347548555572950172079640320796008982911138178409131019265704872187132132670533594868690825146383777718689693831970742578497723761291858967678353550765074988974828761865742932454598423279526074014952536917032520689501317836702280539023536784842382333723334478835894651262644177033546393262277968378731620615057280146412888690844132833241358806019474621078271815339333561004629231317876252277375576114113179773386955235289686049612847767776978431017807200529628177084373161402092770818331786310764564670248958104603542027505440806604783897084511554319802127228751518756883061537506047851516370637874712967891924340177221897077549775570152772359954954694064385496119660592281583638780868791067010653299142921212877788468094522342345823888280266925268427478316651428205329996066958526403273290717560510374877993263246209390504684065330653054326951386709884257406497546921188212790583016929212180522200764880546881482332093591797453682877922176318777956780157367321120402620879878636222642078833847314190686528087026107820726999405722517568319053419030178805261372779863891471948055506727673902982371968977977116633481371566397673314313743737662001021264871949781607505872072397366081671344550523664086894362333285787001683164424328845047264261446677295746797110656617110655999728410336856081065814801502732062882248880400300172303524884171478992677494962851800565845811992051273839798535875734078246015433863735069549564970913326053915765169805697146738742567366476559993384330470340743476154294426725480934129462877663043308833736366958667510878185129571179359158619401023474767370555128694205280664541677910244596383390356680120843866044658040981141842472550004200939149873312253920515481306519524730623139277878210340092679097598248356811223661595817933782135907869652034892258348151041356804887128871845187789403318500068051935953801088913965153361509839714772861187616198055957206425907943009827631986066649003001963220667248552636943190288227356937448089198825005519878931802122452346789543907436452315277093719832441078039920881647612278119217219855248127409134704691734381360919481764115620815428456841609188892836845246132280521916948162997652230573367554276592746792057743047447185817598572460556148750068396950219659983816352639117775066603083799864667346878504221323493824759026237518813529162047147961324645326562923302285752291358536771411989401070001055957220514770312262334514357650943732095987423033574627018897704440500756595886665720371190612564516499777884118848632650214652570362002612928033218492807376296005619582501347380603755485372482629249938236365069539816698646859400998332080500444039388621904337647706749573154185841311420368608533687515404089495502689054075396703971286051685398457952592476061577882297325931575858376984307909936914308116928456390580326782413025834902268102980928931502052485904437770841172995267870359894311527523809310838018800505535472483450138408085601975163500276148399635224858271832835732487834111397290586829069832562285984987725229789820505240565737980249441757691806544923773085377996594124585420581211684474456280863094602363012219770617275907139963889911297629425632473473015212557094149432918106289444198603448546000615280291996522685218210143218909511245271427387369750446311111382158341846010003405340264302049303623890835958850508673638338176051297568118333106930367072302310721589076788799333558973226208244601530150134951934391751477011430222888797060516107073431824676358968762037795089851634509731389061167244421501046237380399258142426599451788685554231002077725353613211630325793582661442747064529299357851802897807015149959940177358147561657683110960287642114497314702163305117184353609833878129713626789337257601574035744911681789347936049123912433837828179409137010655608820150751069981608714727140177720259567305338002235084219711834802092337563988186562419072609396599313535647434152741706335451594347814428850724825311557444974200074208670442105108171463496869724496397619203391325755740510582928921426854816386393652816876787034972321570217325052378872197852004119133932179250707703987668689278188876821656166703373948628845205132145753555852762000231334631969151865058236891272824992800506863030693655065816525347843229179057344710267480117327373624903833730944300733082291927234602051628009044022530842986968959467615598672487809360092905248221066012567304263396648825231542932084613831750609575488773430858877849559632142719582664131579768202480730398978470387813556558677516498769738877385201633603615840279173587616143159589493400148431339977159361467098933265469151919140957271184753450723054277995498989448226622096922954265724330820823948826388711311133655613152363921481108460112182089014001251731114641895966863246422841645909382073799767807160228053477156377030873650623392879981427996435569049133575934706786827483104561484120375307911480178158589381320377363286955918866812648167490178513384701124076179911449178527814265926849903307952909319368490741109957513681382633138531317670717629372506971639955190817958476977427321298205155550666719759045285032611213141594953699470508239447080142346092172778115839755983504622007332413183500909327863274054905168844020447822672504389660752802264680902080503939010375183515364184603592905708704348723577788767136237432878262324243851111474664699883086901004099061638567477108774976875048445310002561176131754640133503859052372615332907691171997238352325369480858699887868999029148706856946455019046944344827490027948472389730080489984192885218551896015782819024809425149912093607128543492095987718644501897450193838552605238967485754509971157315473072649137185855407997837106637381607540403259712893502017524015618013806975859527038626679175455735958386821634074653012413557447293738303414157479227655332602529964274945846496249290904386761572876561496248520529098706957506383743674375463023548565415939853209683627068519553811559362130683489107931301261452935895461730634726420730464326255367731978880087698994443756199889305946852138279462859279931493024416550090617780730728732339172870300934437911693146577363030612856744058160395500135708125673958052994639477490994455705099674701622917385013670684572289818159533396028287216478826378892793586575706942883339254110162748683513025356573790193597854195241709454253419615359452953154008289424908874432524343985779820672389524110821024014773556576710892550703762548109897538275461615145028478596344121535542921259978549254614546329811218693552047756816572195710071392189737406947659889846639336553439977810813013318743286190145658731752566343665876307527805767693654486814763676819266716118084227631529530295362400841101843407403639343418495047009857140238212350922764841420519239343878694941496430675505306536462397905625645472505158860456032336078512053516132462425846590485444677707667878530692032048183230743584895667240209153826503503549069357438649267201575472039770441787653822191514787385998213321277246167138330276423767230052613291917831209731402622515956568159066220916898160614066362661617775242496490813118669575613292716014341104541182737863532265165201735264210730308688649190800792084131756874604397571174749131840156608917456687475879090891296505436270084632493276811724279594375150477660601439916092201347226448744173863079729450840953676545568635844031939483341354435211915607619825051205440198776728564483933155353672875711859445881370163096515395948151382043019943022486005113073754044719818502842314828314992562498053722002231057522651230412124003078307888903517287199158024079441003275804691871151191083635745961327924431844595738245121781450784378375541856541110643779373972689931825364735699630803289839791557915870105898689307414786587582825280785643926556457047585741170339500828660346050178684746488106336080655217860644573676042842514258736774549615128535612573839904625990745144003448363618058447016170647282688400940657417936901020359702771578959037140784110550622348270518918892035328269574888466133871975247130991226345492319329170479284258571691685201758138980114957220755959243337034624362450420277130092673588053101013198218107949094818197572781545693783732648536806503219087862796276517061898435100689227651927071118923440042145627927162938454716918384090435507263885699804614840876882142649387604621360234025880714042207279626207576084618685401438903479789612060507017728731052418011965216986462479346796058283762787309238623409462294215179376534879269553435243500030598762959681985237225943557423686420997239075714460786009160176641789143569204190095632687543778783697568274580821679006694057925424115779282378104586099708383982011212371337047939644692924399215931771123872818487703987064702332135877636582768741100103451337281437134021042519583844361938076609478190120765640189675521834418024389410664051823434853561543443224084111592984893294834766699146680814013331936819193865461404472146520619286091669613628573489130585308107486479348727306426559289299684173161054831973864062354276034089617308929075018826480237003591214109212780978867899123417841715128881020454454193818870006505166216288019470429036244018933884936596898876467366329986799260746727538365748404860531210453108811840113734337084708228608061027621675124172393153482834354041334354688843115047325875835646768153341811493581379657553521746475355854502193069403463182705830981077695365765933021143928429460544519644612460141651982079004695367311150458130569802313000655794063956799217521400711651945993313184478774771990696065218900741144479474924263151879968091028459597551037616209136548502091710989407440124557090805092256423990681526327832947484080369787229868787467480756234341265479877658922348741697940264205957554332201564613246770858942867123579835910584908602579598551149791674534480529192476653673488649588976600482426599610558273399175246059846784253842940174895541892861306172226193555052305522040594261863936950872121285926711753660040958247470084231949786378393041732896419513135983445529594945353835465076918450365334268885878795236751813508305745728930835168840143211616490688180830097168591251535091119056516279026674312203857123032207058143956916712933056797943280678806324740172411585816690246117461944194129082624905372665203886724901986945464020803569331960504181499928937417693342846404408418008081665179343358053683631701483351124266923909287510614440233829415352386272438420106127282301307432254836082252796172009758634487399503059989420247790507270734408958658233928611400849920066189751021123563797380735277158775659397460800803448102280174583414070664022250804254465348541511213609382736268969963220340119256545400763050594320205705886646934394135914785978914346775675538286302895425210173815798908425002857611524969214090533387820308369280139423837511649062428674285569376623029920804330040788853476835829517450461350039451021923773703544475178739994451145635942500098542207108081801787439864421593534758553138065950295887778544941786182790936359461409168422786591501512233097900352061559346775705746133101051699905353839586067213679152040100553876902211175086403470909122801751589960958208240068927477849990761812112117126282209930747355002613916310817309884399607523882399939738251906208914371608455118102252292811770044616571994482225842579629781632469134963927304877266673355108943833547460445658861679769418021724070110247679779617825094344192605201625515308038265462544842665722411226555913145317076657249167353125097986295029090220828384494361795492296863293371994327352726368415693642536685957074252617929674917123529154717435234918947358724380499978343960952425842977223208964320340065420249285381702171706756061818710864012244709610067999206087332228719909985302589620845389025090871966459915643956972837732344439387722663278007703577695678500225603463177274356629690726956552156576683090762282205487245069605265077970995129349299067291593211973653780484501486085281496511159510389551705952384901391544863948613762380527222789771210772482595238053821116878754252930962501355962397966056955839496322976374458461051955860907584036359060997420643698915823853139217524861487205060117128729364770783094177263642016962216261898616869657378892460097585280969495185265602219248122499339290488376289966126399230231724873185927444968515174533276836569034249940623136998014994010421040056212258228641640194215057269548981246278867409618140726340296248798279291174214404835432962913693198625630389213559799625942446049389728285153916019425929736531464425216273505657627553281927938786610994281971503253613266635346820420920161990905750799375846110092552726109245166102260293026860430480071361359249231974671164882218068027715866194481643859072888375121567896218860989927661649808785279592512886080201302313456828050774875052015375194473781943787780217683395125910961127986620541134792641962958351193433794650679185665723541405852835183011196465732533682272316706420160956070619554090128418120278470808031646625204877355302181144381809221666197330953194408031743244961593262497254249485943304816490389644478737727122638489640959171221637581905750994124922231559583709616240645852460120591666575468409292201989952435659120249267666367417231436017604128979628400415231052927954734781541312363758503947349105197017699169340042762195404656970540503311747544986319911823294972328544558647492705948664780945168700321781925037290432262443068191349727981355944396140448736322050894118915507628125241880990173155439702970134621955572496737683131528177366227803752530221401530900068130952922053815749013013363740254777471580707256997634096810616486526957196512466870151985816061196405912542110879222250459495205898608616611007458848471851072574112800029359179617201282230282362975736639123076299039358400978032452987112520924482264629056393597488491031810678294068806257947775975678459393944208779934777112569120036213986136174946662081422632321208416197086790824094109742091795678504151859527961741361277404016042030602212326948239972312289290448202828943892822305127999628218356292737807915615055665368822648148642662115577637846415406515641594615407117216159794569837603932146110781483994300217964873468581384355655107033864324090348370985226860618929868047833948086739532345407216476670533000024716114649709328850405937489746970888487982862531940355923125450012096445506775288566068453491300800282002627532735004186818441602171463043649522984265252818637018159962215000789946252146395668612257937168614831970990543877573581298661854889471689818489514818589990268180791985998169108910350960735439945438645053489115224175274667610210285455194255997867764037520219630557204917341817101883307150715494351531014662364271248307065243724727148909496802131384131815127016942606405274564521369111654015340166397825527169045143539481946641204639982059919607399680024653150553718086214291069579418326454754567252993436715885947940254264955242410464223099222345833854634244315287695573428093040493383058210547828276881885041867136174766345305814141546157641742534578391442190596847531786573231452691202367110406918763357867919617229331530035392686829155894733600569560750577807002245577895874525701201996391721785199989006566125641758952455075943636916934523715602522932445662810247077274303763363286016988588900289459892621443680617877084220736134882217252980666017441144058837225296819987360860821776494381369227135353426562768017612062452096983517477533285611537694669242594704230812630790261157336430320930188937619390013891917956298277026080781494361088484908484179855630865323128320647792553276331439335997496644521947207837720458095357965471223955880275486658290305862378337544262188157459734580748892827165627344072359555559863512671087792076168936434870353653463229913020424744474281713718368753923497176294548434647634919664872412968656541852925084154246240501968772764473444549718920561591920186205308625936157451982341176387508580840561353964860479319525105285424351906981208261977201383389408719056054332044855663777551253598186863436581392569783877830416981836048828972472524581839166088770391471753736425371436823157193749969904436047909282446189824994594876962233254155213153295118014017391186407934765214896323884199728994399379795652950033006605179880236961174016833515861630254190518723242670529267644528905678753084744830594858603229447471666901068809687135573631310975326474102819937434917457680527696917671227646992250818168459579449368057476435283752747677413913190262189272468097816679505810671119389911134261205640511720971382169484476753100884867941913289734502547319386757456921368432278408206154846109674169339355252472985530089796261131842099117865415199952205995631124945152135379477781702046615591084307643461717120638162615110236486688097824857744168419199013841212274863361995119695296004640638779787418010731145723175522348321336832467560007209753981150741313293788019270061313050841325901820068084922290092643944657625243961433652306558619681973691261701373990878253330261624381190087335262738065819145299258219825347348062855164424196058261916886969408067400030815018319751537402981278088723519071919047966260143952914463221286316826571924133274839996473435118399152884739925902208531496247837346488199013906401629278583729250099397076911564496784885862063609969391480337152399095049969594487338949721717102399297358482967590220236320916037126939415012751038735584062274365370028077789753417478527617810567370357988392514061483038957095733363797333087317563072313327440214698989472686777637001072203475564141395147663368891827754580072105379832157952534212780738895467136246973786224375345771289522800941305793728691982000607633129497949586050920220538411168505813242735424249688268184527788341857521927940676020769116297010384103044673785869155522055721019119346658319391733693875307022253539181021297509164895188490052154301624595952928897574467782249128798785824018128492406270651140346879764383730653851052513262042042484572217237704897726452396083522398850625744185083579715372948772611558892936928436766930659147881803696615653649480551622724845704032980797484341573191791036511816743337638833068152573028765322746722079790507373893541254164787535286555496360535649863341283106178806267124324957227400457056517705949120834443737191377174340311325457637883704246231926528406154653612740994822986076367584515923848345545600471082853873991186670955491161484469930537466559262380570090351340256005941141595154908762551498398388014867753400614711298197642150014158587974130583154630661321782790839219407296096897944941603335592964148291337882510725192794307895849654649707352544318670172125295456896100096404764061756140471629569324848289495566244071864937768254669172400284324881045266095203920768825721993581051184370711396429389330836485028356686905619573309095970656737781038807676136540921465109077649702204654121151830178018933622028937879779756745095867461203841888811468132297410231721139636129981118980840620170779841931617791951763234240586455021192454990452926186934234002678364634705248938468774111300040547983118278080081228952144205103377205132895703412522836321987063810901490592952715512637208022986555684235019611221296400513189497550006487637116030459517147368018562710214880757761851447410120329188147962340032533724281282010754589037450023166137811833785027023526405736306180148805188653873773947279208536506007809654365918291078629925452762819564528536688509526066376173535926984168576264866864951650704055516240615999325985070642611451826747138433152908730533282018060607592071234644891695773564102506802573182161967657077566614125277254738288980349417388622979597308350642589221273939165181754766655650214336617378366740282853448590152462459283786217003438625998106498151804368238191834157599231390153179760244449272553869071184644246035285935250572952953306759930659585551351577164813646020382263521094776084902711310565931480695839265201908191312858270887192853631600808754267375300763913990106656088098567318131095608372152217752100941933194054036197515974723227921720571552417659820217241076489207646783218675641487712717252529173675042820317754700107453525654975553853173762489311518637408563515807396723650422498267831816203618971819722350765627341590531826657268675763567004469909003245284265625340598901567565906778153419976091522912879501989048942072576438375846041760383944651736564346468557663770385727283640168559798297661772224990817386000429896616232936751150212468215174364115251146411097349192061744206473106476056482135763651622910099565303650560511108925063338070115962751603948477006799854469135388009280022113704132447986878381404040129381308528699557516780412127349966452467487696063081136933369523936011942324131247716056655590052484373656501344836909376234757362205170358863983027703750849761596568673275676718032173712328924905387546621719209610469483540113693938729734727687132331399524923611052439006317703446570861491084097076610586798319498477280340105938394731988868102504505622300217850475853832573086128567960900852539536938768058166452176328889519338937439431483617772415860656505785234489497740127174886765868486854573893803176539525273440582028211581382897522613497684431688120627486292837764233939693950222566473822267287129655565648872626187127406929696809872629030572299937802450701615329809559542617958568205779848712651887700146365387672179743647221506920433835051326728061040318833486422578135374812079254903734513087211734328107892869914580288566519157234628769874646107784198446677644808552025573331212740587182115410621067465947943961667818451676422029950362920393327163174489883846780465710946086950572276228068424346268440638245214636473401594680813621486437726082572059469641919309222045589838699915492750797336912789118671969157912322242087746739266057214805185149456540695241888025826096508127077885154069797837673738033195441622867327671122069437885858672324930483548275300233835879594372456285104816614088670050945387010221872590238145289365311310819991879504751504740936021361094223717920860488857177112646369936451520928625154430362475606023987636120275649232334073820075959056627292908431186579323838454781693175962820865992400697265435398732150486190896650638001599359528344366493266724956436189862680178675389126304342317242034878246256054522122656014928453144126207570697069584933523672534760567843693928841014017077036554653982342603607596429687879088157158340779798206996451157158213148673103730658253511841616766246131953296249214016590431230739401789317309719709371578275637512304637378469756572040658753673884379168933410076563012127510126434097974484435016979554865535803598278564738423968072180575999204324070217722602184179308414633428470399880434773585300003648629565549660379421807155018122017852671636365211290085620603550859883101359065228582753991112793620743461642795742983858668165698492947115340893998889988689302297807193104018536934295104899785507144532000908185348512376652507310405756612800070814070639721784701171501387135804201268146126956552029464918668351738072857385992643946336514743993528109746920829138939143104320899371215747190453144825333912804866818992066860567617608417496039500209508225172792036109485355501022162219770877026978578110112559901162739677124646463991069235571712317836508793214846495463968440797649100473103835900955927912140401370827699528919849185218594150285305274283387778121170076581072490679896634940947872029197088475505344239915972397341451482395280321412442640931881205213606919837618391852511457816673689635923320473373093376461266012729377810589082527140410448533483799080858994839370752351540647466122971877119420139406729678764297306236512959257880711880553098617377062324800845941999177000989923578273022069707158123320287488205329036426391379352955120654584373366076672652977731044058046718128239745801325643627974779850208634429560662634562561877851446165592386867056749514341699593776462218575759849028869459496429987152553643717341180328286707313799449041151891331148549430950358498087422918461491026858105344429902660332023294278625790341194063376151928936120187300257294277246787920565030687140350072245382424414013008011712295694555465693077834286182196793014606236458309943368019167048516458608875707195409220463795027125068231178290334403900884844643300550378751667691580480653630725272769124895437403885783710283329670096411340643602297036027123350738608096438250611667485322813007936029030370224797750432317788783384557126021606202407017640283628162784221232774171728902895084255077649434986368025897843686637031694255049540862268135290148813945789910288149769843899558327445699209524237889982454704666253967384707257971436822241600947706520917763504395736928946460740187391417186131870661376054190488365618143271188901852181484762434062142043965838101911041488273208996544739985674188095819575770897780585370045592964995168215308390390329987765094072686156372151022782214150396517576645903961540141815516663579683161299080276157173026927135461655866690491620295170144885319865405795007145626615374041905903451467573209518948829505255435384401307185828317370644970546113508352172738051660895264750145390877047223420195866829130610374319186058837843530830861272011909649690840734034004284965119561352227667165355795195764996207276383512690880062054482924963463979430707215603018571102908027251549579320280347887881284680490604452024139222630043548497991843241490934526240010754881173090336652289778987531700450208781344101674028076571556270623409302248552570777130153871293505731479718054697153258734067991642663077954033220626958344903496965730329561932019194026693822253830922655486421424231206678927828627851430767387655269062814902138911035048592424418484407238759682164997843862717757072654836524137042777306741648100852977153614373362293593144266143369397851678498428265322237965427627868805805207958398474754489824195779508501699253802668253321605186920306509891694361615472036977477799577313214860601818379550692021337200559430772109203290740506925211464921490703453664133770007695896348654674270851222100765029690346587704584375814260349173806914138853407944150834963991903215501675380550663305214584963325075879026456850555692678660504111068348436664109571455268202741585537100635274114044718415506096152135114220950213980272941852959341258031445471979110043195165263587507227100247317766480218408343392447042305170174965794021617911201202401264634877031981470634216357572034078220980527225915894292445119581823237065224958984574203118532312381854391815100807048431768778824965871475339481787932149157907201157573596544577591573021139529730434615780671485535126833783261228697980675021985911826067806304155531378991584093499350450035419001022127002175488925710397239565708531628435871317713953039146770266613463341167627299560513593867382097356803079944311859343835008008711818123383105067479526779683415478453660848320408112880196586955200620434094788178200057369359571648183559155078278761224070839344280520244120035703373001172771076364452239392432316387619457992406577638307981357383111148863565713864301048237966590019469553434446312350697332430717519320292110889350268974280302326363363199834727341365611786747571309904927873719867289573673651669500588240603875077970029961437311217249862343079060244610742803952140280199155217833933180039264038118420207061675139151180544940544823401601010224723544371057423064328382641047669156791494533457942124950176435251015060624452105233051242399358052367040741930265641066566779452400288597579346435064846759548916540832641264626222463111600849843037677638010746302612661270744781125583545251612440215366411843181390787344982991771859276920527307334277034003660767353358012868229034970136093989329174139212819161692443196396033841431477129531244910938101844425420241761889273766450061970564024805160622605450896838407821201537418101872288027942949696520910610087829855947063612011934255482787906505627974607378510250083562820948659592652352403384036498944063420312137653336271755640192281347694826885885510917867250106414378453192023164947041911731702786136643533284418851616307932719667553198664326320218850629302151246596461112509670724937894691056977955683009736293544567250007779038889869019514443283453216941709189833713040696812214014366535894626130799029408846085384660507259701347278553861723396899336406928568822464749173333818052389534814736818993335097937049950572925629278387989046693030365262801889643442451971768551168576301556694826857817616095870852318089745137478725210445541596576299969143612685443262707720637229567132385890650980040784456615026167650358437770586283538465822571658065062939107417501664104533045698850044307937482003302563383099040444777724053255049179816758790298531335359943945703792351019856037344565582938641826208023572048254911405360381932336347727600302054758057296209539215406277148044109117513802599159932562184886341630280681762921409122725523127286664036164319743406879970583528413357759453040282785691371280682974255275339052038377248917701534370665205023371357259249485870910108008624218852988808243062656760415252226980820214898040935970165433592789395821903213833030263658157377925654474501861449951735000380552082907059393375673990801841096764295685115801496570291299051545236415537838030107485477060709087375275495618962743143374410902166015441374713003889425699358301070557448977715358215857143211506727948037773147363084756729787408781511929081316271318648161307631356217994898042114680887382224642100907321987942848118347142707144659851926525634531273733633628680475233997905792361713486116058708896424305192418950624594656461408680091452993036014388246202195921912231137487426335084991051992375632034775208089711606301075390558399862157897765635857625530641347046572706130287347300071607808248126432480978382275939028260007139517977347019074719199181749651013895027417403314056486068091436652456310685472127001677783101247790576792082856866559444374873227796289071739369559184091549103236923524064109818084993907858199361652116457885386894467204190401814475928549948752521829744515229892923723922495396505658004983809178458141873293399096817103982827296258402324113759321537140773988115151493319528743579060462760353309141630311134263586196609683544574660811251926978674609970163916276700001279136267223540851049608988646935771597106612736954219174020855605714610643278776205396366982540787698723667521077298890834082835823390274540331267407954585850574795219890412705314210649256284931827712968666713783238390211120936416660769363290316357119511532232545855956772187776534285195306535109857019133135901789637181086322216395451888469843905598333382806820190372813863263177841490192564345270163742990190540106939149758804671166973588144962248575003721565397679983047353287976241140815009060139316662215780242857736656610193962497575799929562842685206847708814363512080517323544630457783628819354748438375731171972977359977636273014575750549246833826340133212168582065505108409178923462333089543773393697414047366153382589644112779349293192693546981157271605545517524633417839656247356397802754076895338501537355261088809062455229559677814554537190407654836860715953945308700260065250436826523294531640743708901384886051355851267422227164796422139598651638328955169893601963188749255751162062662750827720927367019264703698340106644482568616921838410547657961281977597196398842434771679900056059167089691707906370884254896884629214881904478500567399421566756189734407761294562633796938315839882583334563802252293627302025374515405077958840526205504264793948502041048089736888877487454350065040989002795972314335366547046857738983367833672416722486255620271001290760570770353895891116985162325172893375036598210544084110928886721775929719022205523754116077142304916400475372122783931508758893979342933938480554223022228031764983918340043896385408205125907201108898538646952929389076315063098563164557596358168261457656245395948980219578236810734742327380725021335603648843060895629837495848728427307636845681792611396948250704937665914688950987145650809603995841329218974032109539444765367121435683108751593436697698933195109527130162726102440852619271000756595698265891832355776799571417383518954121636697139850386994160506346041368057667158234696252819890992310938470016385261858453542271179915483196572116288369100733660338169294494587165175484216005671189090368576165143557955169932634928523459397464750587147683675944008244686251347939959872217342747798458492890640224904728043234623891321804101123965981192560054375410164596815694761771915216834362830964753905187818740152132132614344486652616150196967303200843105687782110757418606664109368235857896586940741865545742133090457921947879690886726469878101997574283955024404484613372572855608581851453926048396196487595042913575845734220952310500032480399908660460746442582531273138524366534531487617047481973381011899362638617381024388887968959126649817465467655604237632645058228108906061208991425206102233578801327698369124074861530485018262073578453015082807619181145860983264064926632590375531637945721260882678398594098939951474563605268282271129303240246970771838842621164816569689858594797846259517555644085303763771713936318631695132292961867906330274794249441393569020320731660056312983008551453717441896260827100366997117385229219925494693882624536570557448335722880237193174279483559428045803082836832303487672950917008268984664826028567091115270279217478287036299975130553500307020520974383406627546227327085982101065059756757443586967981553268459608922909973383283283290563842194798574262428107623563456165886377456723175927882834216680012953437819193312648286278398755528822708556423532395300818299480764770770915628856120079360691557937862521279546609094010600049908523837710544463552203031519402091786579861583970100005682821816584849087567188015267982888385059870691027681112719245934722840768261068739499017325561813829300217216455071082490266540647558433271108393210889279129693780878322581905869858967912666360418892443157464155059754588875744705645320933342121981001947048806170956233480760241911485637201352112934933138073417031190208440451031795533582238529564899920905224443096917675750243385374398126408440226587080396905993201382101765396959662199006045212936957142428891431491162360088778359528085236926013076202045999989749011025925138785716534421319866069648142235132207294501682559568309884261297530257070836035167312152462123814918732235855922500779557651395742852553032140857932250311263955792911266504496634867947907515570896901498520082952411891092239030849638001183584434455473160388787457778712472090512992680920563537378721151264567392547056413814148243256703394993826520690231071187590324198516316957585756156918347843441797689018470750372391903731494616205586465433011344384691362833721710314196543980357836195482526011718640995214791127040416020472775388017952766036453942852520630741283938124746285632440713007573528946406419578702303548316813997459536634048941661329999700291730649232894065852090640742533876863690664872556087657825355406978696362746993405495910652748221688526856180186181982114247613311700849586073880989593777797163956162097726983586263509604101906270495300211883914400812236348429716074935673723476332136185256166520330832262359360003167989276778327211529229332357683985988803081293133064705315134366365801407004263258100842291778491751344290844798579304771825612390980337938600893821821485367888774563548931218683134191220920983906938602383373017012144111884282929747110938291885174982116217215264975000179575807448128972348614836870230753907585405941906751822087019603356000728770315506032888312997666048232897773844833712119236891191930884312695766549075135384919918603159627222780571602037602806345440638921488607026378049847855414191838305855055915849605707918663663459267429608820523896459624094296357853881687562747538573514145847437990938269602414160590214735989345197615945754218295831461069363250692347596469124944961096210052842001572022949423062682609601226089862500065507357864681565498991581062798919145609214961009109443881019459569878625469669772117306911375656170311805748233584197879410912094598049706452872593982211290539901316927453968781821740984512417431642738938561939032212757777407394773201070897700343866966345085283962327224930235113491606920212951723914920920097796595165346906461362948821418949368898474588958675528131535684548544814607376948820586429687354992828050148154909356221967810084667055917822081601770607551462803540920155930781258743420246130332557638177825642061948796826271123865054090159073383096819872966205761019396694057262535223765777419902059467144373242301291989807197433091365538281742498448614017835003234997635282273815394507281974154872133808999342018797841095741576200505769428317911353815099829432794327135921817757060428809150371472445127611571736911808198992538711079726766230440148948729797358520880113289540841867963008798103905605258029415545823569498480965637774094076004205114569277141614922315333965771493215717772032209736402847547162845428506946278771532035975768433336815917495367312103405427005917740196231958212502207378347005655191293748133220761198158380821602407957286948317270736241966761351469224846874762748949043888996004230594546189828547020010421074931458738754985222507802897733216702946376704492317577673837700014906556701708647122703740197242492786027450640675766281386050121301096453871250003761965754649047833635263993525650150698179176355501526603900970752251348084342395989060203248335504325531655125750655482915332494387524028245325621124961542069170431661301946666629877379480697321532358550281540848234270389564046288144990509273191021378957343292636475518975079743768233945750529651047428056047209230108342425973744447186216642336241120833852192927475806265176505069732098305035023314079662702560206382155696197930572336261791939573839303898832930688072134590432632177377596035868499680694736106969920541990026400724489732355112381111676823952688750871264509528766282052606740971991414477435010658910299096800659135194840648943132177697837515908851856318890881125106537832834748840484793364598252578051508998404138594571406536335425553290557916411798190216971502172770154511038385142362068475941644381977821918312287121830158856278787893131712286187633849078594525804256930421046502560432146959144236554822039447649936589257439837613808583275050571696264153456072871401094924051765156201208334759098279234778602689821888033779324733888307885149612849520803093308704447306830123674356529609829490284358454041960726669654505781809972096705055396235235904164390212314364990160658440107458320820415760986499160956632450224558031833697736654246229726107448123780557633110725684593485767992775605585517895785962513201862466412727814397602898969092554887625065514292154501662999849324393378465247906525897201209392515969275590278512929671196486257810337090344137880718129262436075590136580749535073823123385397259898304256442537824125163296415527789599804103902681216745546562694451768131403385743731439601924927822409881066740684015290686508307183558877795336290652722267535856956805512638414361751560382022423772436100632007181969496460184337734038659058628116281019226017242878424280768148057816498362637169851608295135698860127718527474620891607194943912241156535205643610622193485061170061685810384797430222834639511052564414837236051245134951933861905717868438795681626180855549947698353881518206015759596269201638568533590002309319938849286750285248342357676111461286060353192694979720925102958974411944464474275593990489132978365802537082056394779833362114651627205883059468298462228297864288276070975622494754251960777609297031010199325971084604819487533025039278495709124979513980706876717797585554556896123393041481052636195394931456549937335133377942217894898648365828373625407859814995906556983114772229128992390672008918897248952402442362818340679789768880380626248861349827675689964500380408688865663742206483924647192544543774104025697629413146242902499937600177830027493584492851628807465965950266582139091072792597342670770272343449526502891945678884059036307332424005471576870875649315411888943183458108730145348012974126875648060731026809113291765552279258758405976824792571797777318583844779648944685896571332746873052174384885637207517968382541457566956044750474224257997622795111114554268089275798295179404811614511863060362915319785378684760094903946475909370072461091167232560231208571783396314904906372344877843590448025696681553437675356614628048639167469621051229779302072937656708284269233022038599870811703948556072950782511193511258339666553662798572463165859284681529696505942720049145861413931205943574614687546637098999124785704972396159236287052801163925009071172215186753579878359675219346360470983322635308269900097406462981888442483782391447528103356301774256749876006513787436660702966172253068590861182812472529324346558159091077412577346098337214523625469299693862005216691705099739757761397073764546923722961326281187446584553592116247160670310401111995854635882246653107369368437988713598757468326028511091953259453843912257073699124897644234282978297797433281041070571393162380310192098449183167610423368494681878685951585313607219832852093914298185468054772753075921482826502445538182154260344214356434687047124235946608342534075612147904182771373531608904153823203656097386475534092839173024764951701081478553906142256833770560939427825530551052219743401456771810680506128675034033809313923644288418565479575177566344906179794037135268109592465183000853610033126679834342651201428397204433207863198661617632878374864682063840151081852437369861716964744044082762852451412083168041611311662872419306560930945727973122870715195975025851815327387207702345663971002073683289614643096303589574730680533752308066244388003072752302224945427416768632734659081659839387735726064613146178540214729390123142184514876840138117626842062977726138989262236679897639969083801922539735874132334811559008710477507508991870007477192260664474966928093702405880481368735221493956497016684555265855361733849036263034164269111564248230759647774914557938356057885394562383771989502989749326360416550863937339179509028261146306318926445854517545531049960182829044421371428401309647597811583015592676032913302397114884695798247108226299183473294556805509553240175550998144137359759347656806118738612868237571464291968452529422394325730939723187214006759705720361782134841477698844925007151911362170641933485227204012060624273685342834818830533657508837804467198734942381918483978320826013691146549554138795555185890335092572803058210168570622748930451473587525568817923098236522125857080796957402829577645304972859921244935383244234051641031411427001535001476467874827517319646112182261444709957622801635044609599553776226680577869543358931948045281434160657098760804705845153568276789011401412896193666438137467118506848158109893553356551125179025095047967739276014360044412248243855502648741543327232086026549127260559463415192283054435064117275612914743903553576642476966876294428464254021970168341433468288328354134106465179537280524869304539489070302370171804182953435678970751782929574526821482059472593342792536017541186183689265088308317931072256042814917599386992936971100279704547122055872606895860685471357498607328453452106744709127821828675806415112654882986032993053937610683285420950273255253925551279897941825487299406088724239011216760387268108556436999169296139232173844458719418484536356997193643518103120639146958394089902131264330923564656391723286082791630293349638288963714590711502640707841823945863111713797796399073729829914786951777166664204874509187632667772754416360428003955289540909421044903654694254538970145536685354851441881253321358276937371765743586415245913223803520771375611302067663442516387071295300725325494696347943432752529509079684274405591489402760508513886104710505247992218445398081502619853760815747708351606058361250794739247583493114413391614782987390706298565272963257257374911321101753158152033432722773264264846175853767426742009832876934649027329855541924881900305110960291433536389933257627407393857888999858297631628966517099673652114788930172486281504174945220048060199549763170806068164529494008873020427306355782358122316176083662623577670889920369291447066691368135055366888092088546290942168010370951607510548543169510448605399199357272271413611400788010604557275626151131473911672235153579543175784094162705488139666948332255282795274614849632741598005502644544055846714238806831293282422460306551936659994906543462030523508154576007946493880881507072983287558590235839578080418788001288958476505142497008422709754351203923092550029451264280962744184734022567763685539074429340736555985786622449790240395105846127501534754825901305613135104971375517177903950305179805632278907166185597863174273501843426663533876490311121853948962734948036144611356692276655654074594541438340517022783810673338250600942545318543848618857375656558375237216889208551120357316690248700104791166514437459469556175814469760279493669521137889546415360828550009566856181973492791282444447814098565139726977339816676303097828369511488803233742993467891365559558643364124065869904991153573310770449920236061474871853075880907314947688120800127977664134206451742780760322502905959642711745853434747645933104407889526850027452200776490577436466717781654933223814413821504765127904446501664874589094294906619022509574090405878202047317874831020620856792956071218810513764959241978398037299308833220700131797918034067501427055201500831008737325613280737442252628371892113836260329540881437466816491227324314141354272066153397274519741770990606517064190098867561435564303256077176218898888745132087546795220939252583058740514493425394207299688067197145686052771931283989511939314907002468770848447390634759618262682556350972183138175875436426457493032612509230046187372790476103042998395222890788439342675450441720162649456257576795988308371501297500616593011635519732797346257018234950867943153070011129936511618557133462249805940900357498931705011476445680268668497568416429299206475937981382129208579280841291721048031553528579355924645715811312636910657353079501822305217481996710136589779496213674223983025428031458610871500444828185559391100670580264735451212038582623994648497695682326885680099652182087797944966644646289240402434428925079500388471365854603385354013907133548664552494921239594440063099091537273948323014643388363483653139673578958084740074116002457452328676899150283387226050648840941376631624269222524299570457207521726839054236736256185611320725871758552315016660941707925976984917044131894795941597723729023835311604610319889981344995533709319980566519445680896088917062367617650299339953301483492881450108964136161433897148496595516585407920757440356462872083490011703676905686692075950886372129821900310316035108289940536948667040221268330568814179310176738238013976091437738244600652864006533635780326529153017986557349172172217453068964806185977267703851130532677802042695556770494038807906458444689404479344949272262850895277492141366173989884188496250052392899462151228681680884361702725759082497592433996575200059735299460131688545969759627930391550712853474530064131150942166384089955649590275832888241942421449963614861013809542877491754586680405727734281523783815723021441834163706745774818808752969538876988731436248021527904231037107101739882004068076210932737544849628048725523309858971839592419973625213665528494405646694773402456753714449187811878200820806163428748095124628259032227792367509797298175531150618131143793916094501960873132212594518904666948148185140917335346964357428367804904450997460399450983671962475633560311980171405131020629459431799854944861004429207615513625525983425371013557272610381282124722190110585389014973287305591040021197160941649262321923409162727692615702211136765493320422898710555345634770727670378794284664384774692728117389722055480873794034710370283093885911289188580200587766605355999404365968117128983654814788586506554603072327877762461648199692610418530061831851062919786250492578807584133605728798946454947531726052554938992455196136577403366272343576802427266606822069828462906400431447257605043683920430821585415989386318290123286585231267769696132359461417870735826437672379971542081630003738766614644466985243598218500701311925313634976977008467015551191052299511489997104630741275009330307068639505466695497577800602053289083145498253612126034078371455505338339362535877988502804101676696526482276432674793316896704820901060213777451922756469404292397319306394757259537415015486273807830299536830505075447539612152720347040447617585653844176509633097286418309237815161449152764429032629934345029594632057395988934700772032583511976002287050225979147412921434304507613558874033380192812084995224492825135332574455836020214491109550850963570480819368511010522276496801059582482647407413711287722484902737784851094408813392874866260196576827816911901420226312916223471730002566130200411455286746175720780285002211234004822500818652073189021859778699305597391093458191872133993177748375640315453228307979895758498401980349572343916419556216760436758977814305133681726113862113810996040736875957762577549806095466917928842634076459283607162413286615923130610328217556878275370169447883862975774618563782277566415595262509551208917994992983128244239547515541152501949285925244293434560728924667434501687019262317852931267137668552300943746937096892417488998902764753967279321406443815008441281371094859794596173157889699739537975140478211904540518822291358445523977716752601633737310536281446329538093736297500912381030731174801738273720414178428656708044429105079727252447966792881454664337681457590324821460114447468540872268634197872302957802559878829605786767464253151117913758199066028574562543535449817853256753241249398710455313732188635076505140912251222105251031259691243873929415527279404546671729174881695563006036280393456554232654305814986736718405070938309819391684679495639986338787481055199027778429151569156140226507382307882446701277613076404555691137237902749211967358372258143110727971072277784122050123573842287337691417331738328526096552953524066825963224368550276201429571335291189853455331620617793319607022164512964134548619646575630824740482322256275452930443538436497408091297084436338867813756465168306512104578908968321912366157489977554594772116201169983435782903718885944450588329549264618147235908520792111598144098778167280499363806415741520007220005573831692210117637143975129419662633814048061490042664394825548772998000353566377815161082160531259928597060954460252755463876620134991208407455439117261387745594233077359577492636555223983407285568769090309504410475349862107248157773958492457016344014385339594353713759328539598662914861581163770127213417992678212720987481760138844112815104780692989881394439140734061072720726537241980096375128259081149866101462550799588670342554177755895975376203679317209480554321767954221248734323384817809735717766225761532592918702087751444199163837206913527513322205449746940923989177840096696497934448840592173529185053914017028060436139546385882265107039131733852128022425051407971145827519363498720929849551949421777478163566362516653012124098517778446797628521756136053502549692982725098367828690685912564701185320948844076938035430165667799356350853220312037006011780026984172203114838937128860556865685333195687599466674882134054482020336019111241171526835499261098344276173073796728516035719724114467905963595959503433238101254425223104811432375284232144665640544689478722230529519442681791383522844734623695017312946590265143939758493328537186754934374655935704519781337629327988806146498312590225372466990323617281295994012549863345473221919297097491482340760020069974353019132501317719436924973841391361597476904675822985103082526063383034943640131214162988095135798955311259475918371690616192539212937703895190799582192876282761960014772083250866932429418346548868593089188668777321226661150793807432650450129320131547385175508860940632036675353038824579264575356614829686832507029336835755465740103773744613135284891972098064830167084944601599626178905663547955066699423027219408014402449976046526403692923662160244640068811138365308903433955889671668191421210155319057447988840357605224345221380875926447451821261218933956318316018708436893240120403007820291603322790472476059231636065685824038063793594651441430535368465923432608839351073130530753407677381080620721298548289671332678838674464901242417369987568055096453137747726095522038449477195541871115000730838665619498062444467734347113915406370799598954856439065465375613378073379699683946561959422629035114784198559727325960572850767279284432844257234129438748125154457129031608576462748685263710335691011701820547279955589597279859265722237736230402839485528359542282800626008235359668054165327008756989092780382433138490265559147014520591387982526597307215676404470642914333989778187828058856818209197104373415104544284408332410914174577766509238757580019409150234824110691487530198301572233380024424199718094275208150212988741950717749574478308342297100467889653577766352628922400689126154957874561982854830584670470914830490913878468830172964352033263034408252920173916901652989326820567617898713761825371114369985910437407757940826064207257692287308693607642131268749458723414694283883265738754069308032091770265789062273493822786182650107151636607628427398665247901449502861317201819079185899008594989167294571655975455760431170054126555935986820652453453574742478054768250558194426034981353995810594937977879912714571244315558557960003400994905884213019908843813593899159031379121657228755804333664245091647408144965569828447376774726280675549987235956030488382936178105499016793412765609932669463568248156934944959459911811850667484880699297639690800254392465285776662419087523495023151205234998145767460100987936513924092399286558912600850529505771571113582442501020809915385083271723758681798756491048199140355728424823243324263458303074000055171380760214347553989894321520924242145564655232752701624935733019175967710084067774887716297972122295330741917650840094874366853739268816208525646524381021262422579025384358721924766859552822919806708743714713273174275711932226759764601919049899437691706942686247839713433068722550624182355631160712495195426125059836765163338573683213318243944378603053640799388283449561375861698355644813128412746741899640143118953176826266692742069443429987550555730343450267436100162274547844585116477982742330259980865685563869396663909885769176518998493829180457470931513803969401714783530077932085406818404956373675473506525812129002328390700559428775277127612461298999958067847025391890533845279119874042832905642291756250214219405064366308878121720583480305704691291764095585639190723134366018227924667560282387634553144868198624911698816497785126600305719114281626540743296976692297622693187897353831964126648264382199787745732295631584757792992294434901887511533923522737086399564430116218360291148267111040168209711941962214623257031363274747410962531576915355453250423246065132619921638235857523840494867511492285205329102067602054505482054987655947329573423577527196833340243505088775590242629834615246552373047649410515319400231398509277347026720281795653194233705427704276436779477336589280722181796379420149927694473531716047586982429315156151149995330369037849041856014899919813714643485032788254845926542194774480835470237653866307705491053540700846457997309497569497059406653508501887394152066467569832476329053218277111637824515324598164683451627501210116000629685345432898145352053553382685890250074730648327413201976483394818343203046127534417542512348613309548223482521146886330210082394926148741344501257361916683684624625204062357058991280688653914315011202011024654381389358045961655351303734538977993353083232727755291332493706770730776468656436471489090401203667719590255596260626202134877534360550927124774794987229080115939893106182926506514614479796560963869148060199481317875442058231771893783990455580855858048178206232359653796518629918785744799904220135140688025734383339761961649361884689590778326952134486114460584402108926001052777361734271962165753125681256825299968254860612090126051816485370899839928731795509076786423189346311359148889790672853261289079396044015864844592112967447444727393684866086687196188707424920033723960838474378867299073340862206325764086481367361367200413060925032779411881863215156209028140094110807925682626056846173538843130152735093589797879942486902329947392410655842946166864486849158996082452356381817439961004463726198768958008242558086493458390618126102368105423524650976859946855474836144964826299842024341800482255706859092787207268034640641396695475452487888653649196126957114785092207172945405937150735233947005872420331036056725909219517436940916910809916769672990168520597103546433994711455556307923902822917632009996432438263132029822574073457971072143483972923489135275249905173891291242872808091341081191458997454117851507365494650360410781604511952123639438862738962600892697722071250781187801523225869745165594134642873267752418795293878382148132119925133812330054323482368273540579651866858414597938474537741545450838597914973596941896729243896456506688926100495434237042407968846612367322587085235319989113631371098322627323456461769717246555810402292840747105068691623548182682618962781130788366567757998312336077214240858920290858787853404577926804783365555293135577005177220250369791875029864467058942852037799031336720547915180154902004018295236376215435005645710276739019377971814155282130817154405867802914117495289285527841015239300342172046305146048493407526977947059951182733343253692958057814346155933130781895471697288385814949698938341526918253127271606366295919181068718469239589770641042647165642840152829243943553024394721065797227695316501315608338710593959827393140389996974276397823959740011788099492921248641564139961605202812462976671452801174816712009437275633834682675048946087524524937182070438362785259028490684512684453276266845768153912020927496197415020521369999936690755756616211362128788329523607370742040099983188566827582269576483591723446881333339393934406121489543691287794083328329871680727329531105638496219287996994542286862589699989945015913799976375157056962307127977789260807746288264558921695350076734666659466445033707137234324863831970817084840312717778653657644388677196129711865286189874565832783390655447645603025827434491476451633023280650501551527638619360713466062125688788037213341552194007237926935525871533860532521624934386281594572012211952239573050670665309368981752496769380530750935028480732943066048510879456494611823063098365524614317556854158631199526722183472382597467806299923456396064150135711426388232999654026484803226309118679854060421702379890053801542599169214572417062324373266343095835870032439239931133678472839353232934211176559355541747898074904030479218314243246835761042492453195290259815316074320251514413260072850077103771337818228363357986429999961324792717016893619739181805306177218931451804415234335248475601782871629388021691604275872122720915262777682708767216776851131467417724368187093818943560385581777748530574938915248804937368771857760299216699222261361031441563791729833868714006919879694586882671856588646599028522203425309473219220294377259453097714282537846561773584791083086248607324322557338398716276099864730902557702383705194829055091655921716066093286162330652489541046734201841533488219659978603460499246480075010858834519994937521143804165737476139735891289043265595016028961189846110457611874604410305880907476271561900335472435788337413276128153114472418471217625027257904787144438391142942742084450567399638745554265134921366529363923891222564848526366834409626474435793550906359090062393200856812171246955669713585840208118431647641773483079453548826210211077873890008273434158891850081123674987353672536901264819552445168539971460246628010341587724709690050165859622459508628973936436385943879934222189124306217213817882260720886106243255692969252724152857996796177317434344351884247741121307603033089670454977495942770551066691509099262112350330056613827504958627513693055675069154206347809665908130053247913541034674768471049776113810195453092247812364765900283908801755897507358224711950492919265404472846629840269705475719399608504762158365424009069461686671815368481166207853850232740400479623611657627846072861388318138480675954141748442750693188148470644172093005103688419823980156998567702635529843875963832232876718915659022645914507552442168442355034290239237642827365919352784219421680940167998487415781268685194697149092615311187683894976042733581817285312997224542498589836885813120199435855177240001003275361139282790006427738928889415046529410981719586272887230648928992956288603014911622337000388602430308076392388823921224198981791174192997568088174896259785633873442079154720228168000745919810298793968478496306001778476405671797685125470320778891334441612678342600033258686228030774767297673509249895623039592457004724655509482896146424959954105668269039454283617837032237600088783459186682205026030406665480598275164541844158680838916008282965569729196030435366534100100180456015399790061279622752285884282890874445949851949316347266271304256653272476553010690076943563090029704622400417876922621877044647751339881164740332493150700785905451458769117978546038439530225282749728214770275116189992436319442954137617475467002781162599582050431759069427739286304770644682626721132233788612994202784610973675971188551680076924277553787353173031930756567664899468345785227107178919051552129106288180699059528595458870988805009730869276678680813028061091349807129924496032093368629803911006257608752173435237488473961874339437253095027563390285886969891526195349260942033907863930788545911153813237979202319173924821795919396382906756387333500428337763896619378134096651474322666289215285625981521783613858118457417509674692858352875413956308540920657210488706116676830186256708247202955013934646767279727643824887280331348518281061476251789416780918292779873880342960343469230339259550437274580070498446609663177054442504812790769004590656464054718926682915686857153992940662511478184339466323216718509500492906696695377318751475056598913768723067304372240700619235309802566865874935678329057202082939915634243128585569168724057833902235222994695074131526671278103273010245871677521368938075147183544657947003238129719003442663007236627965153793132159085097926154143151315778030195882207215869540940702818296255757193318097425176151224502244767702595814299719893144552414078759454699617894830869259091366930485021824199191732433018890805683355444424503638012498917184410937221601307056387129664070089145175038104631545800774097779067324373069561199111857187352042293788688360339881333192750738935106700791604201297948983360133498544205126161935003523744998033055032175553637398728700006394144186673229025043062143501888529736273807023823568090451967545571543511037131372833153541549986284657655610560565366274011323321272594399248598521862732975769972775844886615643625075798097185486324231624925319668709510694736963920466283907646400033532411354690572780225542321389150345598341752980325304715564475694019859493800119357607969067024138721341686293993701405113815906108715042324825663640232863761378997292418971908192370555604363188069617649905765370326882993261127808077085896281406817155810979507329144983508038652346488164108480062780551888897304288905051617498202397563908839252179272821567939112215166673751959582658352095987884082135713516221128531718217347777875818383633623289926802995428876202931356354970773590553832614761943726368016817845613021761950467207927289642055033501607185377590919800681869395362260640519402067510755950853561918943603621072355322803774624962903202036947529901013052832273055208005982480590716453299099008306569128334007235203304866943497684047737186885000879010917368683707814231632285261718086904754053049303202552464127201100723472678623319111813834623357093697530614678142443578680043405371695514555205766880084684459625409924110638992097583483030833811663928263209236462008092585244291995470756750721516469686155694449419961806093613957842698081618573969925910459480740696304987022138652644121526524251230825345832042719558521989899975154546121401578261231309277987512227517679078769651789066222141305855490195259763564554222103848197830232246518894139526062045800380174350638688458458441906455260847220422560586584063934930516443928945100072456797864348472272932416226138585533615693453462660913702109047737614802127707138593631211070964694239302975465205337730639965715748849737242298559690707462841073451942150361708608523111870022539050228009241704111799061672191032071967058181955732828943962085303166555912051280912123944427624832495940673546818440793075827448262542462803257115414932172251358135350342309481340850518297963614038936393671883369498110118081238578138427154794293487258068394524416314098135723232118547112448561532122143966437192638186424917935862753422483488890936460429136429216190556656202139009924659423192272939531619939579156143675840342233910010436874177172567503228836963507600860872082293795324534155550421123684635442583311683513268623572628733493284740284362049563645855970034274483570067420639590664660379129296264327509048935892487788312909521169019125497033501532219642859754033610275011376827886261302007870833564270202779500542295441090070317697370239719799686147098145970768641508940404045568706676840136165174927812127534692299182308187320054597831272679879546826663871671628686775657180870823894032891922760961317204961891773914809433380554413209630785931169265630812752455510563405127163943548271930942081990952133509879499323673593321212415947334385018377500880428509900509470138567109229373169566612141589101929517894639525855461484861855003727367009070735452459337319744996834363247824224903878807061143538338640866178460800054929453939138353759403606559519422011548565535059142858784084100530221531887105244314440454379057780779823702190855326509554614093032121717113892867250816770746602422790151078624744819190296466331018570407547472151633370775596403748785460780093515313363567358499715690566212297605709164859424462308324721089892570464553358586919830947748748422275285871088561085834961969272284105547823667452366573339958873563763428052849206280662999604266345660441893486041808851461600014028827935977605603489376879020252088015417794806876882439596823289118415573464744833226499669800243474500554393179506032313527353718879631972125066232205273478078641870533131429231137086448528816775446351315596069091063137861559304708874941555786608951588176852694609684643765363568269785667093268688457284118799145129362039840815545510756059722994988381166061459869560603736017001528679670962294180323651012443695529361573846132425292312961175022050388086344242752592003012452421306805995547969636010857468314628224305994309231241833637767461683195576087361969793089882039321836189314940450810894532235919856639519862157163553172965097463055188126114135496023069919018002583421722633050311114654100736010103644507313669948910597624962228858002092953207739105983526558235104279273519435875746148072479743595476641992538155999242816230826165096655286275305210980473246634649883708408540956133862637953143404407151485435025024855157225514277748300789845669518028786238919405995846600048491788518969274800858774606670734950487980706190727904669437241425054267270929216309654301114026327846426230513412756022877808234634807175573397951794789825309711596777166630067351381709487631422494857797703567188101810230885780565211961129894495982558563664057854264196021990226291124166636340222959498518931217355826734033415537844418308769842109247521390711490328832620449477960144589990015280033050652346967013997610374994013093292155505489360652985953443383469583042251608899268220482702840958562822190424694074091369446059966653290980645050884283389133748081499845817778314540078014849462635338012631727993395063392186331738443587590951198823852640759067063284918944946118408209873146607584148505393224204252355803899802815353489823303220981905291777157011052394804537677816512701561531940340922165929240685863932001325545896323035136536759179466416694663571244477021661233822710870443131901831264958386432375603044153583238306503684782003913911069075927449689855387872921228763689710357914364782891404794057462321786697623547623856302936186360533017717960965054023881381989019932143279261058824346542264132841161715247944515729765829444709740201879922997510852058917606799108702923215655650704515004824570714856280557411366141064171133530446304784334810833780261021273095718025595398184638841936097491880115702528024356292290682430534004286562283452977036517733809153406369194068283721809822629248281505165687100117707906261272957818079788838394720528845917978376115160821337679044068643706059695788048374407123547459819376163240515002290240711022787825422298159927849053001719714801676915367692817203409443325198249605833915360275290200880946612335521408142346251018032647369720624669306457031305807277252257139419134275045329568429611104265711620435749742415414560349190940189621779306865565776836877564457051978082203890541958692551398492508729440873903898022153228006760531176766044454359974189292090706376891226007733883219530874109182512433204308279669218235370433045975239433933567345302751516490171092845453948580571608043692988835453330267573151261923979685838537232324635131508935296335081555302244424326126032533634233093062617109148595981908639317121450305960639117203471227228959235834286128566273056485051881983929566547143301179568698004839592318745690854444375714489555220326392460379570719725958702915181133215646783529934089123815248494758805495044515264350828636523887317787064813698202195709387287891882514695093504562752897740020806643960988776680731031790808360490190913047804652752595577120233122888500102159002754059993354457748358459109316105817337322723997660509157455209783308803313901567000061560773555638712964890451543269302275034814441094046012344696315090199901525094433516047383302639430078262865019543663285495712724394941277772152437981984359169508100584927523359868582579626786324993032215761394326531750254549236802067495470676099713549980323835636393588082867501127617355366634533774545738253455293404505638774603754613363341996253928760053337685374097501692132609505245796878968870958101380165543917514201589286832917314176736134743225097444695322748321868642458376083314508036506543162018412243867091730826325914142654729741616519090840414193053435647114724629068912239481673949626796117979155915360516342838527554298132283521046230677123589173620466148152335608779937293759696139431906379853930490575556477223627873636216540384300500875586954236162896609960178047069660039553388188836474947909837850716120320507900624311660055815733371217277164675053198173512232794962657325174926868896470429618274568818288872413132394817871417402146703937006077900167911685353277547750026095513346386203184817426189013745015602719693625670277739018268010698463912596543745829061206962428343468296428762069991527610710324829556212866783423508695167714474550431554704254330606577312560263671730137088432314928997061004443921686788727496901157379367617661409533474501600533099028679722264879835761463931784847006955103910011230025660525653412629781654483386275560793039541393036615851763085538658693875205698840196081670686160221823124535266942413834043897594675897534988326295922512974103027988181054180668336326114412291730889252979397456796731774387696053909995757942916852683809778245676774376738720798584280950586389567509237781617252368804620849231021008399114902998486336608462491344526694609196827043664881229146219124790829383714112013044512225051001384823667090466315056314358187729665985376099326884702987071749416504424442854252599075019820449206715162166956285562676510552055525474090542555883441785628643505017544320542378173112216905381369827436182126850536431545463650687801378704386683499850687888606161391407017403704313430649322479299684868814145986205151367212523663377000668266845343677614142764361762212777451961594704281154925192976239419497045070652885301327963552252947704074877931426056101438970223565910573024086768228324638921610408288269092816332678283504569815033952607351109026756957114062687158004685717307890875967826020654595087778478713121234280192207427529704266463788660815260099401614734696153997735120989697629352389834846296255800676171418710428170788362233332119621106231121586469482790785142904311055858257330133831891988112316435029856077076545080127223859479039765217591530683347700848939636087778741368962427487795632089600918150982642923331434092279830296979739673212375999128433577217413895811347961752844021710467989958508435955847156843313936352012402677056420931700929771222708338927616998428860566320104615991518377230164984116797715737252431095031094997843087873852685053354871374758142702306404444228734273082333424310242566520229238919735099025120504297270657243280061581188730955294890668609820945702955854256232169296798567971956111020635518231812458854042802538511326874329701315150749745981020304441317907212932825571870279108521072840837817847496603841832016889643512590299854677818766622956493483695995198546878653403870258730158906821896440491711535924489991810652145371726957604618759456447645139682661598729767362426608959602015101137916404550135605260422494189456941704953261404859749196991116760700650875443106328825402241805813581296512687822270368138235494944628593073039777362968488542490425026538918224309885908974651712045105738628364275551592818550323490483865230906180722369461091941186787385975227522012989706619967096246843804786681955017591079113301192291068394619623202749587695447717464021471340096491496724174976381055614752937327909430382325081975330530669996603926878683389791358811435653612467859336952374257989961218094132061173200967938320881443928505202586757534619119332790041460853828843305211862469448746674845715501269121374764772304533195645255228905831680567808479225465622126745143584755517662844760306342585149608127045216611593014866098601304192688698682180196254731692084662074321511805438799004324471525637987728504309640056774831466601308956252357484260639419169732504185742103040676818727919164771590303637277367798642346165803091467771986070286751382485402917110253074680202141789957238315232616532941414430814745268345961883139470705011849283062143310126538614366930705306872702644874198329161620868672068394557667968249636453572250907143328469799267754888358649107365097649418395374345547940781772098856126531084090363671499304720788896211002335992360083492520568745327717356116333910391078805653934116097337708187509711276125817170007259077967334721304732985713558432337179566489596901246582735210403227888862508201442481220944237329762058755062504521895227655139112267563636549059610086193555824050798853791552279774785015182340460653707275768096672096627786193683881676430473188410090563189260280957073496301824881538182436413902191482487604128121869180014840089652662736317797600021736424423096145279702820259238544542604584664217513160302170000269720909905784614560994329785497460906359867081932562989208068225750606811677467904768555949967917014834137673071781232933445236868016620458771940025825890840357224064661310591758965150189985394136813162670798651478614964306459393665985903648603292193795913395323596573940919530380114213612453038149884037963192448587352503674466094024897349494122494566507170318886952557482102091655641005983711712424676169178826838853666853808490516825174399428126981583577453161283837152912142444057267593562343715892995952045427187775107763217451276117483583715773704938293602859615910660193483041601503461078651161013364982169279548127286115650036625683898912431075189114167756433904931922618148640285774963283968783765940425138478014456065195944703900236442534384728257442706662640302364498611865981827287172803511100734722433996983531743523007399884878043277909045372820967455490237900037842013373824091848440171084243777198795733870743444663919595928418340392603386473973590120295528459260772467730013824217781875470239972647014996502574749107868505573023283876406058698866489521535300768243251662332648128539310219477686303817340958378397003657746288174465882812533518316695624466813491706083475262368116707427353175521202602093594385269209015500179336385211837989763435946244248022991190323157635133747763039343068397672066146680434421545147184018101889303432567142903061864268476205941223194333838147447173950786421457535303599460712822054172148540294236623097390385223283230858403083782067440927522018890858675231674490937763669467350772661397546670466915600928665228679280347607799535712981733381495459797786262169604956742017701193821965488714212095788624805400887026790287802324800565242293424433245483444847783870021065639134406576495833280181763989967044139333861150123387658003261420413709412950295988896166844744515179000685048216892032724906481682993861256868502198479673736578130918542494969325220585275955620125503421671157362160362373422740503980658768689211064338687803481403599065947840283453434895063079620961838084788755618390108084863594923523648298096528463977299509364473743845656863654954457430196918720515591839460091693276019998994864570291360857786289145376464677191726289724680478340985227226917257339199934744657576236857610990218815118941232045123709087331489640355973926781884098232551223380902087220936322821663451326700261758142400573864755860493885406106215487040419696885839772303464115900316024892018600015199748861116894289521642011199352063775130782660632374111569408557659202253320754215777682246344887162421982594593208290260731748328419249246094484793514190489572470138208227210056699603291705619500509593651004452994461091540238968442937458655831230972950566735845345306989268904394652899050756674204709074762455419176636989242200870146291010131773505073054909801002839098515744301458534931447852140896721017546849811249221342853295986114968847284432881137937709118193476883049625329999199803991597792484974070257324637741693744414937631133425536767225107614013621944363242860798102855088354202709724106456568922109800748816753052421710291872926782591457601234500775420499667242467521570716156766127208409472174206931335098611847418899569796661184892651291737363770551436872245273470918515265547662808445288604775589025125062772967004220792671179408018447389710144353490706823040930256052737101523311859285898105237599636768524257099478952724964402059757097315848826899775035194892821167690943735743508267778436502884186033712334339655492186405689512460939914501366439717107879117096861868896139474639592470902579073307794729551320495545175013853804870366271775606043174500157984118537267111430858739010679441884159914946100316673629523916627312037249134692348744291168219316298345086000334678653770769594539928283057871744137099192292825735680458953253888756875506278472272995734501884513282001265995438048576021712817977751935542193152699552861584316073384508976205916395478810806445261523683063824174996833271391512274102200159436625051202311031694434763382428864927448793375006830070022832727287327303194341028070266529737157328557473300237712793745037506893311748687947404281039066353859901533848157551470795848766008821807894393585946458154991561321600702713752327946645109492342998212225694420258341354486980856047264245459513194207677319848641689190152151267056935091050752349968491842330468002201421954933747548614362536431077721359008828284455640947755553520252698198639273485292322640577807086873673626557163432206445722482143821338338652119237564929914349962739658973326683198206939452495177175514958510948725621831324831150031354971967719174343394274697493133574181570661226636821493719696405436009718069160675693498627905208449920576067701152152540988276472788477010255061060463422310762445138615930850606988214258271783069222347647117717576477939489766084686140821628425344001255670396227558325613295264347000131700038337889030840105507067811797808294924628862248467228841317645375006496258374788107664202946057671148622913280897220922609424371832960229121505447473163823403958389440347312620123985738094123675490124470420518699219775579795831771454660448227105628700814891417902768990528458600684952092883489217282329869673498841956772713329743203128127937016480080106875695255966641942737523945040010905970180182742303863087858655015776524763557074752346240919995203943985919039585055616428678647113180378007768516840463693885001397094552883176810760952311971715074562664582882929049415218069991164952563033506920899272617957749018334390256636409980240278612482498398803005980419602845117695436207445462733564173091893681038304198294242224942331796347672924242305666245480922669348728547190990161674549329793361774815417544339358658432057025458638763032983644806733286732509764287917255755221891521227356412059090992544439679138355119922860484950807681135233497554556067540564874587698184205371026663596771172189244880151253775970351332559173242991214968265158337320062773557529981358339506885237097861716618076324779543830807493286499886509174474002053861818856061202290365813249629537050704679414244599720056917215827686185817149370385195239357424339140796632282888996369684562467385819474125525092712543410282289276398722706300100541954522208802574834828520849965236585222569872938313517475956872738388359727058819729176460524521179983648388503995762042264585369149309182319695914801333670731923234099399421582111369547529988071933679335660614431535931009845013647234081787871689831167125688024869295808750286090164386348473107806713483516602919314578317016461024263779858697802196730683439201033229713420534366999557073661691165786177049765526644042037532425174741883953930596062706707364564038599606368383681950294195639850575419131993619540751020468386059278116232995078185362419125714096585587114330243143088734052884341869194132211526064704608680476952241986445735539709385812935789098634871673775661460138971477971128960763494581313089640144567697376341352654389795835551932112188437617002781236225206637548252046354986955123246456618380217483763517068478987180599488413377897002133436024256943831889046359326841423407487634944498205089968882665897695968131399342445868061957549195761305767086817177101876406008929137470998424127180145916850987598755936435439071288070585235140352958935724566293263981617808053163937531107742292290279165745475865238368949501277060184262976625990928535382249354886434574376036993513009813641266477427748327780098709953384858562472019099029049425405688048592835999891776621096564328951178338577589376559627734501829494516038054359034553002090770403941942003917715925226737773181129724705210573628484055914560324703645916583165275263954652209625901869282209866971043316072116076888555904928472222915702001432409586307817322007031832480016193493970799418108663051484365628584936061023329443371426639914166785185134903701126225927898012472139840267737622129391707830441601965856971627040831805997673976331411476883334550000582854596258137984510802144537989320941689140551050039648497404105617214073219701904307323282201238953403258679643853906415496359437305980135448324300197461066300566472105740481115005022267611568461787203291865579977430991807545668221405543180619447221773786949097724662651863531633865953125526873035449245207565242870274770889044033575354174675797119212281318617096237268592925318222322738307212205484951647046056826182167303921641005000449997945720652354943984848032511976556839204688070091645595307202009672131217801084522683846849727526842869545824941876575119024964909166716203873648849774418501629895185827054947642520131147553665317090283993443303710653307263848922884721661627782139447717417389783234984769122014115857435952049856412290754788876249513794979314651312027948348901297595719479409264917606777527226213938059050011441041420958537927549002148436970573686033361996795140095385249109442121757154566231381486031509503986204783768246767719020369339651273681558435962231420499560192409304855059342417554314793992488916965955541521823111758950638809017337419548116023719895868026564248541761241592939932721510014383446849754671678842496805971463401833930688966691140956244689516288726091750780911582353765314017745808911909512199210840286546741303465538419007250095186494373805804931533865167237015022154934470266066036078080389090087514149620055795461483315166958112931907284442471392918361342048346351336020902121559090694956055773402821407739142234838373098259127287033610815592462140663487064004469531969433985538375710619083960843588973728308866106545872079642762397124217819661946539509488768375857202349301550924645003798187158980296119842316227937525318206860511386692342171648011229786952348490114834860785613441943516145232289040582534937093690138413388968258957874665337466787148533221101230322667316846993397841305391305799605007900528339705529701212211571105256501593694568959349439168771295052469522692115385819934035149776364892857137277270966946470686540505895683286992949925032310702198203105359042385624800519432449306862260053854171769745166209986782796097439257465350137793967692106402983651176818436055673076594662497887196088148445573220002354235164310055590400827608669200748094652210021584353413140697925137849695121942618538543114603638956787127107559650277506559654157794676578583784413220353392147862617137377018365986124037942065705803718909807179982511551627687580372866784586362642884082541387438237808256334742073198721082815902328287993635524467756393494974202846521881792094519373964213913904622223956581097973557860196415050150807840172495442828215438586876062979294495664996916442267058777963761604986855489115701650883246693340104103586638601104524042914925854844706926713430296758484047890657847050080197417590600694156386989269455570256536642717375232140651654368175139924368019501270979858242894317670517574834087563712447205642882496139371188739961052117884243472353213551309418923801308206077488355075045265973083405627276246393912913838737797143741435668783675935602461241277195486334414922126686751475717995158936416195247261283958668025737764685971272756278038249461405006192903459267057556843334542802238653264059597767668474453162953521264712420637767805597400721480274931179922711996491359874185374698148860639629905905418029842182281809975510251304578466484554897036378051399285645972087951713768435272725993991273402888065949418185445438077134042389774710257543448008693439342803688606995836928803694103716839918235181613675776819721364604685807206275718216590254329264272103155142224666500079635997997512307377083857202578157980447114056930213061022819100353679148480170468196116457912772022726932562597358101998790856656096418570170950099629551453648666086652520363556268868742368187084002989368027194538721861018128388109752700979246727561822595179257028515199353749918409388476849954139116862253202424076181131625356931261836082634637141258157488190282302398776868193995834500783462502055539142680783366089302867668072703887947808197229814655221850501202907298226928318198242397717519914729440794898677979989574555403804647163345417889652561966747923169554963072522370933780746121871797751571700476259708112991680449094947950756648225651952726961072870471892846918883664678702035463414469799901730001123581593485377121170426238085482826470043478203435795489031273707886844725608919547638238754473163458278095602305802248259756935675998694752328381019783699877783175814061050298551579615053251327565969897664303451523560968047868262650108314913746193808226611494913582290590070845379222748564781967741205524423976682805994631486138037614068769573540856901455484407363271105100787568738304697111248454985097417689842441654445212857925816652360612158209423919162564678848438563175948813240089085792597224540609294236164418988632284694653874260356359166180480188289169392128460847504742125621304653873790652950458967633331548256962797849831718847299707198797314412479492411284894868520603370790508305396346682345018224509731999804376701011169971058982562190070671930997759169823636471849891161842121659311370037829672992187689260537368444773427491783874227979033205286976219878267114408586927415938012270930722677927183010105705088228522999222778942706964380411641799572326687559374056492893721761546495253439500661306515614564827469176884187286166279243791028181462226216275413380168555759976011156363579652103178934243994334703751674047389083077132325418022386694297072623752263896599158537381064190967354069702883355381450978528139398605734708421829252331493974283437196000200445618110116312865800186710994153827263785225910810893901277145019480559676116504991291828566500825149202051434092188751554525790629766044005313821773194495033097729654209421080579470203919675148861569265100751092824756843808646015003400734387688562625221029083034327133280140227762121870409228973793667604846328119180580140800605657042902710089619286441691023080001773721401871040215170385288849922634427098073218990274353716176358301446841733190079450493403972667086533961295131436799473801230958756204677294210222252122813502866202981733058218707209645467081118107973807978424846275448047291948591497422918301986892686502310524463610444285014825827084519651155608234640087435384558968360652833158494583640276581251847395170402936311221744396272005708333500470208459569768019085127826505422513934451034262968861791869370469092525584738940797501164674178389763126363617109991608575510266993485241254829151266979097506653195566364254379144028414799797194969324346004555457539593271208943336580466341547217004611558165464987505120260785866733599371447009828677600365292377579039987770570263933888066953035129225507276466554582790892022390422452761857241231113455749762132564877306506322931136792494043720259497864352805116709608534762073065301114968929704747931613367798070318032424694805136831796566067670290378716006431973531364854827830362750756149800707408537974511781103428744131317976381584729662766141113487619000672731392598665883869095596353944348123840044955502353528195007952623456986885604925382525065655591054274952051130234927468174561769254848449281486698859428365412388475462942749523729912257977783334690281671561631750263166979628704720639764142452887568944887587713128364723137178659679460781669184684290012635295823519216832804730657516026221808188614975248064429922574869340314063543317360388149272680223853625145212653098715109975357854251385951904740041530385143698708365266191328564252806233586061676332015220050362946881658788768343751635334635370676621864290152919129636080309787973789939080346003772460878959399762768225394827902797642723357922707822740692874884712218480442762736160677313139417129910410356993443679543356617092691860147622134307839238291264051298741832809693505415943871305638570985665725555922456197599014348130864106202588562797760606068417646481737852716875023631064327010562124382174649260599053464972867482262874568374048333112503848944892685901382201111957807634794471191014490669292384358147090185445759219343669448465306745492092922745910288855792985399047174670850340026450746250612891460435212874500755534052339122137003219020211137794345499181104807711278217784807167097688985316004338480669336334346879638369526194406715000211616436063542967121663770570286030502956553891240632637918729070993959183198852058981543851629400861195047110694297010865199578745946578136824423316708918500985458583851053057848334415411660650050735910411587115237540334278454446227739768894249598041407265455071039546255102913692286477526418668311399376103745273795653774528615411142726707431536354587090830779910564942743461157010942319529529794321658496748179645773435839711194425171319187105703639331976435142572411288202150284039285232521155059905742085484042210646901970652219390250250405368902990318430445505154650530286611979026376900580711343660587661658252616341976884851015564201365934290437838273967551905265243944801470652145068092418247319139598123109409112821920326112987082767622987976139270722255359346763746682939546174161141961598746813222743718268037465733429485364513395533595813395694981749290547254554370406422503337620056989985519550506448256268708018239315970905359836767989104591846238090766107701073286423353915153853591264920098318125805268392371696432634029501700097138188030426161183120010418853697675062210631932250757712265133407217363496375320565825245636386078436570810489903583577100580811407165088908418673603311844649834807775392886806758268920513781446990999336499063889601516061909509925094457052907495714886411330212689834473319016571881669836530399555529396088288087275885903067738385781572082662648615743065183432012593345602657752726146468137482350136251729879994438889001182585075703099612948765552737507438217018619318944704533851698748250916197307897026064452662658844909114351323514896436109646136188148065435164606973419473495713325986392061023112463529013762666194127231113529047866286935705953835620115674455209451627472296308152379456111222957533314901541695020537613085713828759160270097471226656561438006945163087143743354418245842129337737633183241993603654030147867030876553983734716019290421117232161175411158626364849654271403659575155443226552981744940306423966925523754913185962013738312652249219469686813127016107514259608710025439422642333044390310921038034654226522386808113189002554382424259646935618431025302327881172329788783978206063203613045425189435311238840331377253470133862293901402446917000212934748373154253824650137535632645075098010822695064347044187047630229023736191572840064280977273903618510187570321497798934502399207896282924529554178064574512912973339219575386498023583722190444848217791218877376265438187165767207486021992596235157449329907880172824703231110294422053043958710266417057380616328431408921417544194503210871412329754008956033756992722010252064427497653255975634155452596602953983504815686201426365191248808746040434309444292120805424662758841225862703454028827083329241546219262396391302072847144056859295323895172531564531881184090189682451448188256499024466344598207043194828164350781747829864048675156790642947448153151675390013323161786391037175572576766441090165602496771648037377425835941374648399180561823721685649907626959135538089946655831336881850142521053588492759753796019624969690267985700939049635648093500262412014105941800751257620966286261866485841486045212045514085017533191051316326985728434331877597306150814119065701570826938417925151876741276505869826851215720981966110558813247637778696966032379939364927866976011269510338890656870308400766639636283744105156022559237844811601237694225127132612466161795262540282861335240548991829629900046045542041934123886806974385966368765779760750225437695901275599651205872129182673622036372753396769717452470437012969960208933488128105561592211188143078587611146266095019408472726950719162746850984750608661124468487829778607564165370807920921161264239145208153596150090175762410150224919786531343614246232768961836803562946535530755631730742863466366839752966332641855877804117484879747111374480578462598534072255426989050555936125520464215506523550588270940856259927437112513866882576641116980263217376394738080786423289542633001461892606836578033797311360456962113306577035909820348795762055832100705756011778318320761918039872156509198672506701890993079956667821194203852604742484968154302309905369028175780981581059620100522987470355455468547768709349568887055361605691740097685511708633280165627902855569723080412015770387429461739672755083888904824461456249275981199063908357548879993598064328323569378879256066080033366145640233658476654011805025006710359040461003096289039510387304522523149144077383160717047965400867782153570785879971799887041083185991490645406450519061123377590845101006090861112350709795922670391898806720450244101217376827452991238962697923350508075473737393124254058221937105572713497687777742759379842714935401983852456958129571496147333425185386176515155522120857834136914600368212388251359922500249827031642176293643183003318520076747908256366939168423180843450851933693549518446699326086226880012913501245115047778872884662101751478711502128176858502157268031993006527686346060453216549202878311011830207329694406114743194947799604089559936900682362921383217868405288972951186583920530758313126752274153740686215897185230440843792680584011479266006313383810364595474414266809750587048280081307008802294114701532458285831366648123984489642565286583459160251109946343933490355240210060677600535385696452674242764611751916975346582640444919588895826265697399223983599461925127241448035787619006334906995744972563683116871517051002606595122612270223205102485502806165287426729084415784540259717490114629312537392672507128848330423350201159524502110575350059828922968918454337323636821137595649954025024801698051395216626388773611234644441851608941341360540312492213689367171252595092573034649003039787569307831115939760715646178364981061389685077421610043800121472462773928578073198515019071570186481056645742551281633959983269886798208557434489275760599019656105733182700191626595833059813519021788325556703185358226726007280747907317535758495524254684663733153125286238401187672379597150779520183904711023307339425386702442554221462456640241866568666814645179304045351429412283612059053039990772940159059876690752629500558708394948135363335513029327135297950790507101462771949301856407155356548408530311997850529634927121630341528920109742474430778788988903680122474333658675623971308080119556704599534408772068869310667479637354051447344570084490452602084204226102155834034604670541256626289280965583239750398500560723247766021127948943253871623354847023267797846214034312913551695801610787927907181063841200505479646560040229379674750143386436351327289607423885879678779246258472866373634511686667252483591510158537495345738892812697735965294591240771002127619184815586893583714442237676609192073494828848203288450648747808974566300454515163924882598389004225346773534222926967042923883449420867731094498396538417254846225366012930466241675061223897273721381824025340090640275481517163878964492468648997350612743036452219990666447312115001748381990679072591765825845233433889085278956472292236863698888509687829966592110953181247595032206752305934030952931087088058103087882131636728163031236897072178050251259034518363603559204176890116224692821284578476769142080612865891241793767353656450017962840281759580589773553804657494957469692518620898497615593708909246620218127211553251278192254812602078214661824402678288603490912915232589168074472993891517790360315518219161072715250350571495987320059766689403804415229877198522836328948452593846040825327990320827453854375968438082666938375182738469212367352834678339930543685514291565901201842264696268430150716018855363182335046339492418020740095486302061540859718693679093659215869603131842367371923046486721844470375378704890326623796644709418884949429326745758365694035273692583596685134386527592103013303403656304287103699823367873003837627658364505429907748849564173399362266566094032182571257923493552724885401570873709630686397609155450743031924978594907411599445697205356410519875333996004415553380301512055611533091039875026193873235607187069908053957172391598008121682636086155258999709393452159714604640834553602572009320161920322044656017978266843884280877449102108927861233890666039671876221076950207171661592481057762870519422024291205885220606212661356716233556108423499638185979401327523812995463942315050566635765388085208011103375921407129716343465823993262781358061303773404131830689815485160400216652004457196513558323520699089474032577055828296271255211924732560983217269599606696025144398663923835031238779304764026288600352282177824994376823902327618634281464578298991476561835618946561841411209855878174558961313196327998086781898116996805368715096796613898842099361807534984182030974412428793946028268036801859197736951193420249711715069197404445033262069320309784167500548800777697905268181049651539730299458815052312786105228744435914519362422491730473729624047063308576797033688818045669771880341064953689623405943299142397356878429382925500229655083139530948872508516811121145534185491647218413879612364220411373397515357932202094036186659198039218769257336276352958994575261759657708623502790810472446316734382991837419666962933470817535261844194590129938144206789965245116429718126615961701444515468539415927129506824366297822318338551051144798906969751178298682632094537963121048919305450932637742190017758070699525086326710237198227980755484150530992357404599737759269015144764901277931109073793695335461147889074931386820584726894403106291796809069951314609194207337363192302380125968434117264541134637503405417920531643603766884709247124790575871634993839212308535667559377977784876884260546607768441521184064491958448383881816018814599329082127084198212893059922821412869722702047932351266666905714546066551524759378237074728224506571053900067922478291697980880466551962008782673991057285939553062283805420713733755695950079868724167727751641518120302910665664281379018889983734415125237397080028102374737225699051353012367471423265962822539485271431325178069575662027802210378650049746192818475474944845125046608044845041726587841953651974934560874978356969397414041055567228228501557828011996315347139445605314949076529929228038522855713252922107607456538083795747895799069597642119731476269443270801505702302713488695049966414927313568812361022273126543336741132077947818748798975882452779664487232098579132280520021140046671352170731910741144873072907455085242926170898474055553091877499125568155777912871202990401239829367441386916838007529310834745220542578496865921950485814720804610538832033447321611578841188337375114247538542405263679309643266698944377010977818787556442952672205929860248847205877415878668583959701620902093409708795740731066906955949941585978507975934769064390860505743713016241061560787237867088575331335752413284558377470299096807300589363208442845569616798679701120378970066623822308373132474176476778459921402369362160147779209226345720116115746682136215396608080506477485038352974725572311409187131067408009962443368147420142387070688973655180799688600359534765613988828439901994661743288495102510199324812771746486413104781169889573711382473434348236092611231747820103231561022469753361042234459513133813589979251188344080264340524803526337096043574648294210225706933558065641446456178936074746275901269489075210439235740524822962398824087510830644897673687740213810312767395169852991734494071694091375503814922706401933436636510383416813102150689907826060326311523539748773773141774592369800842462323133424097147547305713917292776161415189744650094028946898845547656968020059273918294778689154588711098206366257201297851266876172948687233162245871531035579606268049200929676316155270017703409562709151290541524187587977432175615305506867893490930841113813748314995091557205158035795215369123782095308589703964315911247322871293643834096138732237636731276463942334497486698218405541528619022172393331315772223013415836690551162530037456629790238071019367285744122161317085064462101667600534396096553094212412406861059444249026132929214261218841435119210390717102627843236746418602236017787818443134724737637391173329210222716738162038076013349285857486745878567132871151799303462718549281827353368349824268980153847579128755351848765126441496380225965457594770901039219620417093460918741992602490052141270175115125300327053520743352318583567517975177511060214973838234907318396032030621821322853087131564001531798875490526567816877633940479440925139720029799125648463826093931809854952318627093306560098988340580453792137419944829940542521824791361567037574603109947897429166574406693575803810544511522467972494620815702202446657051361291466480583114470020833281660460796839423008282592973171475210412802594804786501995328101561895597679878147864555283928001049617310204400360598103278727476202572586069945300803325585570135544029748080052690898888320849300004835916890984891368697333704964945350549996793774488387303149717058016157740424033111924638420419226369676292717871861862746543456465647346522759128883795898737817501359512813949882712664974540829801896206910144485361840429727051943794432651025363340125363541461453312093935052673561980934184359047814042879633056978557699388935146446706064588680950828204582096408146247087334064710834732703376030835240687118365867467497903640925805643873185307089699093262377786249400336343048001358882110906491108534710157090442036449385541513531273919880353975070510624054861066606285422400554631463496522787488296256570310866949250715468791491742115485343234268919739127356695184934209504133740232156476540664274439074812077957266798439532946066864363141620672237714674014701240405206927440954976960770013142120741010329270582509928962727792390667304203911973591428562076578421537216327001428923012748817033143835183313461728511310256218519348738342850437256055621187769820286873380015453822865138348540775013226299630075966870436983835120558373222481994706209467903680484457740304208941087026932579720190944191403114717370924406048572104304955253623391659443990882966780570791685412248828569627387437902878622479354400818680165752431345116952632422690745036206747273728531556338967149707122320215327758157875002169830922247967741793353007388285676870854351494293726270331329207999568463328944418707618129453918717830311399993751790521762272485600976066141798717426473434093960607558539892040569679557918172281108983216676149777165806761291036471489439127231753414284284318176950714271624338910461516314960746447521632000606756841982286462350175167445477200313271671609097229767118376629431861476605280751286309552566398141285700636641579578471420815136775958665642046156858040580863073827845985851740375997169202829745787082990739493168336046766905461237798730850812645461819667484396587856621342097522563928905430104540842167153724891104936562875329636631365774905987904064711847100147586301142122026793390614133413179503752624530227251571764797200455344040523580266817090289711598203053587313911039868356591629130023343938978703581883329241168809746393281802853054782436829096788937255497301255563272921974894521691894500748588841942441095866966412377520049673811694019042388059292258633230897157941659389848841065424602805450551117220748874064699868309093992808050418939115916221748967612141144966856658654667502977614975493023824845517001099749331062042499144705679427587984842635063654500976560108048547208940356057564440402059169248930349255776833146011659528866336511608247669837843293830955367660371263155882764323851761961133782466586734133064389961223227458478298737635051615989366520647723976917556186895019096398133679783229078879770396624874314749967185921312021667417886941782862056063070666370908008913220000538691219636574574503170500453395240593411980213125664154064075151844958327889763877849106117376511344401582239954028900993317762759085954477764168975749830749425267888682998258445282152957425824906550549787180104686012090202607035631793046655817364565557089874701200647982288752813063610955903374124647189435086316786938541023301989844178090594252246833735544253798763308701188136745307042159426407583121385445156061364369742260511098019902980552503890624867778228378989489686537796884515741589818825658905069679189699474300797219660818902709878438485797688597597195473764281129046551151765826783778372488585021051634021375299713847907532973521711782093005353927597167847750056445456576999083733850528160140071520086670061220865104850605652316678461775303126113224131138062190394127072086334532371479854501751404344798511091431769528283152634635899971603450548153402029710959792826555763413499241011126788359050117404018284578512272531151353306994644519996967835511036107084479514111814125913045367734469219660668094390382611493292567703592129184287195278168312766689454029932557733579260854660356342005631970769310989084603239405801591928221519258092506638322396234929396386817986009603586854624106919771733276023700214610132283728785848939588505210997484728255062973535780236785958448078599757821745921269079556133928140526169738175978329781778949447057318794673845237317695004514179301162992382663926604004506495170911172276718038241187658185159948094384149300893040518556405115037276275674042531198995833491412309752479510279028900634556668968892988686224709237170671390884602788466449584936548269119957379327588966587537363525284220968692672839209106229007309277150296040324592425091984070547707061883118888158601602384635151541867840503028236888395018571817898059300809285126623383052423350164736743658190177135671819120376358072737569461265805170561908960389877193921143784237241549729449998898545612118073806594718036282058219838872816816679953191267383125394968471886390669654800512153287939228066357790276020131839424208117774194904311038335045393394213962478536464442533269473887944302791074895800968957289627949731553210863833614009994216563702482518863642503194388635987272077471264901827413539019014916355942086092927323892714803753185863369246287187499260162793081362322368551808749377955593725481952229153411065366960881228480967403385279536037017003232295022459156960001931633636718479318205923065443994589444580716437717120642541276284503068458467158428368726646923100211001877234157773358804837536348459846573442065922640005380420916246289939082842248935306285026473199994675733771809018420607617735431926990761673557567429811976101420817311348502008096192222328958868112916778651291033183726296017385385975674243781299397648293623282053894275586712657611633449386004753655673485226110325141707417198529347688947923987503371000031237597114439001013632851524786332412378875398821023332398796192285689848956843525141381887301625805487297064731648800905364417856797056578487433510640154680302968872152841195720800574279325532343550983592435899901845065285803897211495738569197689182861012144517433269605189134378119573590156098417274374404237209665515908740321842228251354389599579727526640501047879763840834898775724770607464435211202872172081390143845084634962902905759260744237865234557708099819828700445333380822817490133515296269438923614732690829279398448389337544105113111309487206397226226198707725900372306105317481497692409120094707960363453489087249176871842449373456881097476451275642636017485948309832208376738811815314469069570315774049623442530675140278318054089252802686176530951938012444848173333742693540573615019583713339309829976753967353123906168021589297601181295187744582886134898245263216522977490073394730296673189788919299375118673002172712582101319850069211030386385121606863274592233844267344012615971977183202424973711245972881579181833591758679538395943082515566163204778804656867230448781311089368816700729791334701584678259722137850393391237751601876754185517038311537737667150037125713647505455856998386797518674465007614555267843206250476809357247513244089987957194406732079346638419647955447599278689389528557593523978138377165798479664492403737548357163467869199208056552568919899169524579260939583626138166814531611550663427346042523408093642286833074063105771766357412624408666047489143528395883821464057684261376536160755337316022860379517997635266357522455481433207595330738274681686577575790493836236421410065388949884069302299042227361802828360611092866673620414808975561740322254199127482310212198480591960341176615413392507796928613875619842409152585282259008026539622754325507132704491944996333863500107402572875166943682586018031444951496085036681646832138428061672484415701449894503729906371029270651113605565855495312151030577526782163032357141680614917258323557026654894092768160492715889038986340050820767518174690427109412586958984407371775514797423053367664936923741095442834137899996812715617285804386551655016376155530859154930059416718486853847004983117011928249688411377455484212218107453461787217019650271411013657247180561725662740370255609467599958648839929762889154076328117140754157627527532265573946046986517951197318087453951684132671282843506255602880115752710172878571184017921452427432733891228938267628605341917618587042089209590713061822965163348717090706986777197979899519663356001439700541511897982392939349735941906295742011120868173973616458359422016507907371890535525974373165222020850153750322667419460858539673436781505831568648273152736322820118912619197801428966907953640242265268858458802552243884759177583232450279866026332269880544552418303860252321399763018125275333920923044847472840423733545980238298864380232369799883756506085540583412382265580462137956802795865176822862968971955018162716744437538521156201142628277268562110164266451226392919130411439519368658470858492655464456431643632493708326692758671856537680862199849407463238046362964790741133169658483520328322388329294427342964325101148834496817872216974285292543847870196693741943013447570364810368901874193386370655355049304800926317874276465840253917469870027736259581430801989533717536644275275555678708242443083504115606493550337858144303453231668800289446940145275072160069992691046900061430573253871225733511272551820744514609817947308237803228881461136679763184625949264104138660061780224182767270680859012703508629403160628432981588757151160651217965995681799355224447183221024070566323221586827676042861461186368148037155977183367243169551171543648025475105786890187677579641068037544424660002963893761762312223544375058997900170936268019832217049210139019653221421122485658850483579440043833689245017511482172035084413968259038565845319304537876472821363654255105810936861048972392161541354094037429539653705791900245860123238846931320800210342908001741019548722293172048118371678955707654736935136686285602948637346814284503879339323666042326160572333047259426992504318352170409827996535189442593959851796680957967841809409170329122370527072404038504049609967660414309470764215412408404390170369660375202615149134723486067895573170402457966928917230275624322151828797559780576137756960149445235934156939408269119814162296411764170409081136343234614503623263373002190916105886174543063498579829897979337073177632655592388626351208512299290484593944346085698162200414394356891673215506354166398210649114310060581347425651415145654917553406839464558902510047985460210455707817430597973307121070768446531456182536314607419991771732041859085217842776036622176660959558076561969084300323027633439026122297051010866038009399108272529232363709515290752119039008784725932761848631367878513092452264324904643323552713381091632600430981647251278717290672359415996101420198063230595376987044273003442350114567585434118895550552465174575566640034865335059586868709566251693881687217591641593656764398682745233070986360140793130885096025836598279901219224634126391291440049781307070934959801289095080735903854090438619024961871205488087314869059871886294196276270566994036204385116614831018637595435192624763793791921217611652964786456242156915959867255025063292761943832503469102451565100289240280029070080225744064344173399708366603422373318860148539664448837819139160298338033295427466649914932629353896478165285701696827581013467835450647968012504626697623463804565954988059683281187015307571411145870547104464749043957342536940117068212976648588353193374378156910164281714077088744710957209711019842040847223160645618258772049560806084180534046452870241835776393540077497360205206172198562363219918583061341157105776737416175025000518535581700223085190679555678522950363763597620489450674971905410296264290474927847044673420023165752693134792748601444006985930497214764702817012813283903564712839424079135397204681562538614421463141977499610577946515961817529347960318936964629632470724125442030671125625821759311893835012746082680155358590244850163491595278119762955310180109612357870290168628649928954658246411253096066294883858384263558159343279043352637212008443966311950325044503977109328427438286304363427560569122224315600726290382789114875198038338239651741790288027076561849130263457271189857809183381668241303751600760765049925467886311488362324369154681310342232546733423604297713538255743936154760632461082877545838399880765245367730707400248962131081211274953708242796590809232228903859166582839553082376708709357093394328170513525506448869845705565897781630800860185220184891858653139051910751948577102682635161857761871591657584113890425334467439626796797700879661413571233080589661020611937161879747761145040805555906577409035368290441746227189822607016178322183092218509661418445135438831504699564630090440498870170931847960249652666782542702287393526132185144834246697737084597359233758665411899844890391295829192952813660851001295377316910258812885897201213498603771458479757009659706838158731897204349238012553051959728677709124900588001330499043294852481948263236379473696508547522554327860666953166463292442497046200032939049135618469922270409578788234895367894209031125287733561150235299920898372095822725259610993573396020902493402035166723876315401716314474504853775686448190665939876037125200163280340904822914674295727226584565093201817289820334636667983239082224209925112316061047453191582200549609657716237595931917013336204439461372554674569963520448207286108147835881415927788425715126092925563367311867501545827506698196905404972261893874553513589638015931304801007891231838475947711866835293608432513348332735125697467810603520268468179166590224097726222750510916568521495874063442830066337273614019720356273180373807828882488073447950397245642894733204470572517509365945300374279827874052023617084093483552403285801692319619669159123648961385944927235813394467328881851244943137788930035722286333053161051359250849966792718078545707041973112849931105602136806901245077074898575663358121125094187542866756078044270470414529317609014074969533116082068201838474784304346711735870792698989883074290762111951018480679128637384203068828116596208137379975970491179456893043667719541424331035059861786053876771318896008507897362324370740168861109586041823939456746735453988588940037478508717636277918709740850643636543034957941586871687808621659241178475730632042909711999879500835068307957091679098263021898763217619900035642228586047492105577462090555725348986089400821345807589633919577725131155340572508516414821040386658889334279516186063775943289503206606329098853131886045329092244451829029920761515241496155637565326224107952991084544004358390756310016138488028546921540874314659214652038898669757862853491238501418777986046519925217018536272467540160020895563761771049504372036153999769023182621429659350502430461265657009523615768798722964091033606099453846869381071270389636339870360803973440594270203564672246975890856774411317877105417253498630097206627628356048711829695212701462812453540916948746061261657078901913377233517533923121537786589518431310526544315341221383101416584189844852296506880597798185677790723455572535820083038520369567212545959728476013758281944905897765912138095503675300134359029660132538276265475511955359902842679863790116059403975668188995099651340085546881739363576523101710862613883692803466418247329010797474117702115739072942903386985252465785961602076998863204740964853329709417518983401541802154159306636300938562393890185359064993250728118601095260258704037830412934641047530110549409924017921863580491782532211374364925800646520163671627241686401306555956011661668058635421862818398213736985100078087499292876401692443455728141396202347553422547508097928530641537907154828544110040395684339249428811439238091681397433450758665827139165059939466417427166242283674439584867432177156517647788135031316936309600709243098998941697604570852055393787490922173421549881797332147683215638490495546940888713705652444732003764258177304590170135361766785322829950703479195566093457790179431621880282692410420602983572931986730699114316460708508099033249012028384988797547440406753860680776102361540766960300253852146745845456271552793517520181929577894511332020037083283618698774262132844766706469676695046307925217240437057484665711189104571333179249719122835636868733648289793502032726800941715448753206092094876838694196656886716472028180582265192436082881060266323273713553728522145129137422277568874095968107616675263214650344600813273542888728878324103250279373843716267703978728446396521871245533919989432477361704815650785084311937836790996537676623394689344566580415276097388918818470547708019219006617110236049299783947371761851669562106107874969246623327442971841289477092637960658530806634591819422528984154192295701520142323785274843106959543715606866808571654840122810355971456088172426096741476152767147621998138349206065007384583706789196203038101891561550787874799666533539402486546038020266030802212851431268585185951939109298096072978468918574447166021694591624466642161759763214823567366444635054316660110488982537115635517985268898234023670209347047546762012493747354099097901242094776417442904391133670926975403407444909715583374870011477937428167761177649725913780790974298033811563879253559758721717178051629155705295636797103623697055075419242858080690665426819966366036457977846003608194393962958565817765293294925116871564460776633023579792016340094462860771586426162949188949012314201947916400105932680734700735369141998800972227145262483186788978793555613363669056730336273273240698496772064031099483788555567793374798689464501655587692675957507085718328592606818925831608953606749209922102039867272206062685817192153231970333349670236065705140481466712881361719662020565744865832333832264329993723743718491047375940519430430661174539420840175363261552178742831791350774774675363063818395359242518637961837913554735176767307826040174629798558489254895342891981848032245627483037842208859077952924148751014746599850552482988014692826226989218898723446302699618351145872342955041218892915119613271269556584451547030663054871825407996206139972290983217966087263750427500480971879984685285413335290263101569239155765817178191409211797068769537269014064965370299584530447617152308368524804497890050848097779559232984707306469255026044025377432798172737476866540484139286201624595648538855788732350190337139556043941432605855545633440539450003786758334615953214672831223526448814784491044134498638048986217694398653488080749545600846313118875717285906758266241613819135344114631718350919853192243179389303711090500964392412601864991696510956145695004946240838037197913390317530640370265084154730359222442206148982809419596242110377491431053715484331264608036154870385555542419836818741335510308111647243483145774945785581191853253574196306714301953623498270298664817694520975575302115692194863369486175565674878787262960895861773562507849999974788653043190307879224099157976876790235410304742326685846631780784217518265525955051026312531882489926282698340641705674593567872137680455093315493999327998831931294502501475501058442266296377818195411265571032732978033132381803225633989035610918005791767734750937599456580996729224556494219766558488894578952381502030039338268178003521080868010314901412499431117928030072622424521250517211070023651002709356607660273836046504936692484697167016449300083505560313370297692120120515867872822911988180077570270111568689307458085063694028722634234968305520174204513171232840025843420880943358528995058170784080956305659137756853912285491930083554737906502142649928779892083115503729751528733297094141703724165984675110837970338445739876498016174080101412571230546215357813331856216818829293649732370822345213475423583836120702133755699597212293563847062354449199607200011497358442207269435764339916871393191129335412030484786637440596130520684775450393589018695799485380420781566835417427443057126767628602322877656980271747835561762449372546005236813618945227791096321695365950815784739963498817106835396114497537332549384374123846137952020778853187387018685045839277278770946753363255492157599045967389163506862916862712128687404489161961641938795292093284186134621252148951836238221324905115254029346553973528741589359971347712095078113637838249863714205579897519701364734321436822110203055504641326668446213928759666483977717922518043584966460047835507325967093199868277519376944500239759045209167922638150798783308599772066321625980789128346060411255481621709820087782221180214653286596388855593539239003193884835885859745671758966242338091439469860689826011922875380105084762080088990369510364571983612996993490493465575495404311561872070367015712847189641198052446954184685310094417330517937469466065407249294401719738960367125750500440637407470300908314631713416207798360102526021128466952433031199099586356618665913212100052672009821101246218589416143284401694586293076774386106612267718984435346291325983272064314923550676321772360387697443214627072742269594392941452707673353007314284555690793557053745766916713859381951495031797946215660896466925830259758727624196066345411162363470984911847345035718312689579618939249657141091829180440872115407929716901946729205025084868343642555403781299025263039823753430165997157085568720305060285261051227859202603497642698266445453703497033520570707842455523744725071122207825387633876728867841499172319417878221595914831956384993657850213737732990987130547686663602135258446865295257239303582946792246768046437896947976899056962179206570437882887282403660457213448387415731816852125141944366414174727738028341095191705623062934574046501422561344850319066806898946389618656826339911566172547087822662627308077223497612498343506011167871553331860428148446567775261373258188911508046296200729225590829858476077614178282937160953369766129661491769959653123829788657202330320895867889988422126831420107798023471811055628000137830657351331201893014595978626157174815082999779817223778159676752352929133211474487893844754520820718359608049633639659521160430678447008741603213899652672014043582437599855864585192202196137517124920446610460787676514840402408653347180693770155901838769078621349941805944896788601957801577923507956444738004229834388250249176465065605153293121664914196329574086784028057583346894668870563684702200906235184676775913270808353607916589012172218756119563508496781531743847593240455581085354348004985822355592129125395097828900975187096395433311923486875795814340698812952460054882349138269098737796311012166647816520154025381404516218162376293567804839479069656195716181210466165696561047817231776069410168409125277699450653889864006538986966387933341787833140602359828478441551729184214113347916050268089142596143165022222875232165893826000171450631944817521141782790290454143555008400882994320804343182987596337127257469720056582866521860808758903046352742042661555715640549402400109588378343166223126869523193544851198410001681116461642343905290088816416406750328079264922808082360179715761686849326193230015880302482644327896201253935763546448780378714840007922696370781282053527108993832713223000033741398997797119054514112502892706686337464933832510344959294830569084567981943062554769031481742049420047087770179079810753504754445347607224885578400466828582029927402720320752182514121925726442131004742831401631477755094171416050893043223529261868596347310958478276973257338407431355972245236410338989703350245444842775477999515518647990148842642700857564941720490131603517948123896236999375202122082780558251539279904862707972404807288079793550574343672785679947575567790589306110124121670040855896081444559945040514215996567550575531850932421449182673763260659086030938123982605151913309440222834245262870454129728404093406790652954374806365277558178835962783667744061780361192159036447267498758815889112384618242137409649544331337299025532608216540776992674340484245000587254583046566423406052398619347475218129897384328314602697999169693728653328344374294670374019256012324636447582500540180061898795115716660132572677615702207712296445972394137919586609790722246260080237253887997006023620496670887108440012512164504270739128813353574691187569819940335823332388383943728713400316535955084631757148520756974134352829635189970370842323934435957232869526876580313404635767216569570556894850012485393154901574980684961714619287575549302707813035640909897577382828715780823438724170593095638142553414335726342451463473443197459022673075330287408274669694711614935157614620971776613078429447908223031100460049774162647947893883184105723177811694449479030666185199784095853194953470290059213251511750115687018863095662560729400554287070386100779368544409651066594242517650767099891710678243465946071253483733112481944912187207730292861868365684741808401035643263164832251124816020393060780989563675803209562840914168430966535990299262879340250385649467668320297932887769173428460954622802966118688323607834856351001972257895904785287205490090600097347538032516296069962314932487059214206931060690784111072068482042430823591675378933012148886909310243373222104005970133139741648590757987807731357052777291016168317125900832136434624616393603345903606311661082660846323035261002840684210723387610932571718164244098555172981404351643722982957917887192890062195806740133397426282943028427938886011555104953533512191696492214950672363832456262207063832030165913916899401612852374835443499664063557456044208003965998270853890081699391217224496515881300302663061334018592698111571523015847124501133049001487291346978226654085953249222466470065411523444562609622578144446175957647005705262395734652903472310424079811978795134828524989382175883790271194713427277328604627975321236344394166768427253857880993762073009922878627548788425313634965876613100576818361982672671943688521078122245619522086206738487306419289217922797457852294334613216308090054100992567681797690202084084973117930060174108228311065659853320853608892569083966212268040252197991605968140725313592033486461831449834965597628241962492438549805511130802634757517383013273288658157872284028620284583711519038239744896235495180006622184103197886553559849302810495081647601773215628413989350962337710069735596630579133092314395657057632272180790761542637325030920235569794568640393566944207947710967433278095950606342377561003775991978386437920212576932481422688793333863396262535039744700478521135019274662702418075013268712827074518498176085125818587584124776275523393897632070051564403170175762339776653970757008412005833083627378991427459738416747456934426859169681628714639873260297038975836537481788757386648752255105915594828473520443174001774651319661023575545837058597883350525056375767107842478617337735096247643775979645774853315113625403176364762703162032888574580719592518130722403922482257237006453190286428078659348008740720927531443053164585098400997063899249390863206480469774855050997593161513093219187363845639671669255340859948127157829413430266318677848988402717634542981063887331717600762528820455037612767476916619975758729869494804928601698567918768890567908291772858678274778333192124140255819310781472018545805072892424614678620114846441123836584678354860194450403346540141189467454974090207802903166128228655559658245901277274289097934879201000539624355914302911443628411168929587514065483364648530083530667209207209552419312248330796543145245344361507298951651779378749399032292603092642596621581500771910969118569555852340827275715909242067204895341839874553703981774931831567369933949418441650237280305232653434702085756904134798375517225147087793075638850859096124715188479186117354973723289502934713142467432575410271785090947267615885921965003546762660776014727925002853269290456583445822121949098768562386546096450899020279659209636893160176441950299965371711344268523440269524783002255119479137733199088448557711953341436410802838804367548233066030624264025673603605636142376006661960233742972629327987243405444796914985048732171378375559743244989486947670584612594795536254618924837369088230190974272088776082969545678252053532015066390153459640537614492488225356766893315698535402531448458271065827760067216687608668673418587248326015638269115056783217626596553762966645383812701526706823480086461645262652565840318206559283059362405494648780109567287283030158990338610061250672489028743237577829469674451603031043417574823609409429517526847111912024474866835705626085357713109170811392505891539712508400378805251122429499097264024655063811368184950043616115144098021441892323887469282347457347418534785913688702364553418222062559933030971803926552555922993363588473294882753936058311744221114255545910628654705467408700001944862562603244375102084094385327420674068360455436314026232349616101736646709474974023676415123121761222723818733266657522571755349423034673143722193944837271047108830450647104925889230256197938523248290369351683883772816092890320763119280818582688413069790738763439955497097511612973928146962406504820413543509041158080955054734641891653857433122072175110714281937440007465926628728541832218406549392942326987636880142259977622483629505828398271156015989687093895899637773739093270926302033260384275191812194145752578372563617409696428251148919157038680968288113412882271308485108890506848479523324647855478514672067626764576339454819938333130671581968215609280832164684298754656969682427061685587439331348242899413367821906875979899049848893049785355846931241498460966951786352046833438900020199146461559829633267566415699833318762076190930326149443829831400320656624176504698555337491094369834511116890395752774326861641694976206128806851398889436892470119821252016647840544833945743987557584518881331673749130122104377278739278385480841762438669947775671925439448662668426770906591862230270514634291773977905330155433007030749442701627128962416495987414753238768919682484422166660939815277561167027806289487761109826247456356166027344267041090821418861618603289100803798452974256454409979055137388656536074265110180873954811003069795376642291287325721938908483016093348148537705090934386588254211048321952512101586302185711605106421533563826673801904083452625804427150415346630617384566604484388903959649375544137669156427441295160442290188902027950651715617057729845511907595030249619695461863477371300492989418254335509408322868653586771780023791006541915646399235644612887245895168977594801599738798582541271099426881542209019087211907278960038466681919927646764101616816812036846889209147080524646097473410665439330964860873695790911091936444168432243028190590907280935861565393477606239309693707918341103954885526338774811471406299568903210539865736033537420562938037337371149202220899126524792310795495833889101977668668125360939030219831670980017691563413467084606688701773506626953673595446999707626867135660825169429366356922026827196855000858829517133937317042769430911202340672316497219448123677838105230269816016301099954869552886369569028580295811975525523133678532296784520021837114283755881744321174915566164956897687839481626681126543710695771892751265789118180821172352132819364478614609991652755330664472280507360926827476366065887937176068371889943955240643598454961644836608659294680770524679277714620776470124796875879243545350944508486596492911913523832229076990602266685679921294571352701516708676395576256898711940460776601869284647841738256918382181471779080473745559577058159209221605709604756746215339835451775130621400877379946617886874484745074786779905033841898877516476622404186186275378921033167332553412884881383650901875198220481392409210297445206671061268242578341850420449108610288891492959661387524797142623638630662921048099784003998787803956817171971758602986013681572752393860354376907550626269312066681112400664111366248661186237037424926710948439245109030642860726254909576619769189834171554238804411997806922327593875295448568735775589896557896537335922886067983184834128019623430983863291842825800310543513596958279472366074696252160641487400702729665108841756711650288831887029592607931463469445476288996490919009542786447837880271319698646733630930257011274442861061575565433021450546060262521165108591957030456361922315556100921172285289991503340748162616204296613133012663751577161028097947530650674698143629307567455248067182989656544293971212122256690425292741190081902265881827512867570840944869640091208898470639625848051588094471270703520394518818838173020342836774237538671866730856878256783277611012686459582382983578726646938286836217684666597534720143185030330564126137491874551218234882496346287408418876619206038275831854680155630552381616612469551829477165003754962525095100650249435129573367118850357312166804146394442556822421693104830322982356582617102352556876728875574463928942124657704848801303543751205505090787112560347041479461579371376362164399436803490190731861227591045007976758513605825894665813040130300455540999754808002834684827468035428151765152753720571355865854420496898652823408746057595543849928281615800275424340647359151942716098283161703979384078160475814845213034793820294795223096787897334688374856491373914383064644376675098047094150404392346349918580079191069916993893272619156327241792612987191419947923945066860409918269869158194912533920411095242830599509087395439824821794709132146827836651372418676492825936095695124664365764466370545541677206624898080727243875017815827251806539747420286011576598086118517292802815713093428034400381003779451382170364473548412651404003151204302815801558772942686569267460222574786477306372161870029910537123983149066344198393307642583294138031826978374771049401517112767913272200371844034092894402892472110880907231774707610839030732666759711052014379163521166483269345525914997048256400756147004650988999757172633625856919736858211409728328723818113636046215786548926292318203997586092673162426069061946954649698931441164855887247421563251997443324435632483395042989022224004001376728998598155558223261080857529868368380508576892384565441616713020586312952438516185741755805111667917087200912720568077405957999358529376290143609421167670590021508589860681373359987807404391854661012363100287401159189874213089722583025962154745758778566331528263619125908357460371328204049722758193076465867742056731335661346790670080584754764437857769469696521922701794579624079710917760534741037781423369897973721852890513118968493989423663068837322517869157955624486928819263795041267553388304925787591259807067786576841657615133316738798543579761341328603392055017416091849981030901373242001026790661855135418992956403324734575061254944600247904831451806096769066978312630650589502500041721702905744144195099848980674841497443768126718586152608976259878387310190106890391429375029681854850523934222533620617993678629603266340534394128694123840464107806979815367994567296691354177565334212716073868555661401189479658136995087602700910811455412011198000599503752838549917066614557999282667144960832326655614525558655546860045753040554134702703393033661929091876970893992737666694627067926633741171652172535614751286519956655061018247348123895015922815354830591400515775415170775473436188118528214837008844886667624997384837197712212596536795571225733979811478529892310146411205851290391441165266677736280393379318378622298335458907765516168416105993591105959566092996682697163256139833821439129284995443355561011388254679106578902778099428349290500644985494198920114935037114085215920872719060220222227353550827593346478037440647607675734205855922994004238515722823550990294836620605806558998108247135406305773257427496561470612832609909151943853136827181202072599632045485440904242110736924642129009362362882241990230585747164858568372201494387866168448443335971573041768463042209864829598588757546537253122184185295934950753616123925035245578733662766900580892104189154401244716532269381294346133366385364695383819428365900362602708683171171292122806970465492287355539780558385020378291517919770578807158409805671078917711754149940928342917192563664526780074608476874016757249675948823366680915771583842397612638945833057876596443138738655421443458761979998074343910787147554679733375792928412377630946136324778522612156285507983437397065182894917782223974069130151493006767938421724383271568407009434279467909596610052185876466988251492387240639560664981308701814773053072923683442684978035251305184289586655715847171923247244716385910609935245311179866912220942375888100441389528105321696039966787037428879058979958596793701216071249765441775282832221238531972881755471504812149846209772118954412460603008822641190762988532891548888566918014908283922573579472253103356849121148727496798445405239891973332673225316694765038439705071625224566416577351644951606588638533156262304749020673590513786473060610220108403773197937886002101469307740673827893183908868236630048734873307094668806706267337800967621956297162488398800058424352801680014517900550709476712999302966068525233979816016461848248651339247564882874626616142404707845356347872547444976608235091209853516990572349313957918523688164739015010718514766653870073666980841407216846599980658124239175365434797479762392075631073099902958483887256755259873506763799811124271244431941329546192817933096308143695668114858750210649282288563904273130558649730263140021530695196701055293130131790305077877758259925675013973608467141819621789070769779190588671591737286259238719668826797817695125954534481327581918698876832275771603874749133356242134855152589120587204943292447004537489303084309906158698021888406873363940076050344887213924500630263398549879662341370667254596122429209189926553301923235261540262067192702313917975811944382793032982312719813951921124122794587253091967696306950394916013980185671222161607978493072361218098520200368413762812077258011411770323708912612770133086554825458857604642307730812100144741916744762274553130386214300299372992853980848334434982583607094467056918625017300281724141004718206520431670288841711094021934571904890422461461649490394852462191879532184576491138925778088928176164060172021576297630040877191563107517363185243229170131466283109230054403467945169361495246325751935045409262727158499591119232456459074363043866621153007874995023424951125780399777799068713335674661178504396588545037638523585236595277387426422873623645302069926022713437667282647393179692735653596526199526343979244240800359882070635894983222775793198612711341405919582307182583025376556154326922608174420514505800663923439497147003741153576981713663006575198090399385892252987583363633417658564174611222111120833921596954063771769476640819394896884578614506475331807962640652287358201523515989544364053697398462167940645147760447833776538071994450822531397851310581553740047287308911509933064999066932827176983062926954873206514572104410945095328057457448875075408251419669113089805563964507670858202979231670263875298175430720605636381176202406210476365047448151991224551537290939259037231568482162586796108353725439026713325627580842876259470276753202227597931782975757049765316829603324455250307589773702932989631872095940390455956799514864625047522632179355694617028578489176312552872571623107091335276606322997978539023184293368507541966524801535770120387449671627390673668812046515249034131967624634754904536855551270699997603822874614792607518421756737300140814221156434512182801973846549972230467293620564714153923565091771524780285177106314960744355976656685875401786325121926154901604663120858546105777830158192939230441669100762612753049498677579985602258372998750383183227731690076187651509734380423425960786523027256075638095466969160345692388221134035762305562656137797699197321610378878669763060421084991280582821421404674197745551407469552477942158833799163537745416679211113706650491893822129849761683402901395180745451568146691856594986104726884014788608634301844378681607993112473047022113489191190871748309569019873019735919400682510996453234309700490469461691513609938937044033437578157355015069590271308709426904734021256472816726102257611029637960433230877851863155986622650607068709902917270967969169128509087028350392114618111632733631758327532317868267977795797429386647370292364440637200515048790242426152365432480688575258406344834043799979249567465334044143234407644806029158258128752753815987018374304349714783999282800392853839057691691753642496905108681621173897348802840203538315130028004032580998787985777866255429605262335532776217697323693077858713083116069601637821478613467755133613509403939333175778803987345218754147779257772152154566818466878140704867015955022042924526744002476006909189851292053128148456706183827335254763729516759926054642766044994074526989513931204697433475281047526386232822424001472162184871638701478074590133950205198405976373886722303231454911443363582110409209536823871786639161540296105831440998694604523947674359509416089021338628622740824047221203375547039321480273927515589821686524928796572336008609356187734718998102886324749854700599359374347771557911520077187056109597188190245589717556078601400442069204861566740807031818163122000037797376108652057833079471395850768152417533347748370845487189304556095455268149660106334814492836447200040211994931622173974029734831547791570932498113737068708676875504324521207744193152883825384231377182369866229512925972605229044526406027575130670499744529283822418851768695185949851193618974231276323088432776348501480707167262828399392073522737112884386180935819974265357006056562784310672020112626520716117705081074202837654375164581214702575482548843243842238093598787040292879900565252747671082103375501557794520022036461022724196433819234555387496541576009536244758348773771142583271853271860272571872882518278462729444563898867523474295120269481167363450687432212086630615607235971112358321806354847638369461121313134957617930405972846777255566916132582365110266691666281964562380104755614559886993459615703375589302480825908500174163515794750773653219175196081377862987216842624498765281856311439480979746212858495069645304036363355796836461547541724047931030161782741366620990067843393549113918656503383378544328431580367879142486586417395549086849996977833372629983426621537752400805622994191193035207019675889862009841860454277541064448571670079082855292573253979903206905316677174782497710898988109947978638057978570402270428744603269030509511911060254983470402852160949507505366046786122405377687683279928210897335503297522049106704621773882036873916575313079717477251018777359281355105014598911617924366065819412064724690199552456898018991874081882629426154217402858470991928355277326621699619026900656153824672445740674216637412662177588648070768144577113107954229674248681597177300570213225967127106359171455971329883636985645567630408128274528594324591504922513445217531289939759827879165360207270065712925563662760927106136519961343555376766322730912832907666594079980367524056560942866463742395070235927308947114998812647726829023517062072491084809923497557436342917068355100268442685187068322237000179465527922293268156673243636480876970895377400793905865369568746319661575958935076721947444301256007864798447921111212649180843006301742742845147012700562201018613460399882876011918808444045598264756890893833586547866687037993286391070937538072685473808712876025604696667555039804130649544146732718964067934176482987715383337179783917237756418284727172314508681495122002207298539483263269849722838607474352471789413418434119756666594257093637586436985506515200304010552812375928141725309516428750924105636116619467615607334756803853517436084487436350964581067351570173569097335480062386475425195369300049417457455854600029213686171948472848557435786889582178734246950380576867439738347959978846813242036207205622799537528453146748159422577969573515262563354323392282410256288019442544909532000215766125525548990243190592615850987978312993835609265987836553010346501391363763472266940577466736618792578144011709213686779122134493420814255524512402883908614995068126426878137182591829986987255211287013929115611820016314551825795409873032218286460539555658479892405084029388567494778355992040421008459985345972894827175577340265905696107072006106997139079046794533901766863086027128061912571796710932346052615488269791675453835708949640024431766049804641019981671958662818704786369296929774202967307491024972521651005459219486464081564778026650963769070006704522031841088243558082115334861975599841954482782985663669801269423205556021916513541292544579737275965467848681850103523190902427821477151161424596091344159227992165035689322079884222160626265247028648031800632774504793068191744097806141657694713796869290147128023902220055681175604286492838001458340103793485966497835795763268680882520263746730302164170980173198863313460921183145933959764365355339394318231802288345239026030638344046496034547766200452087585359819129536075847248913708484587902209193976131554962104295032677709501094250063095669695606577645734910948873506432623002581458977165494661603947165119855111446030326518205584563717963381920707895718349252226996965469039953837010391385114945625698019257930058119511728795628546206295838370549341501125715424024104784348154516585725506397037437189842849936852847922874212747155015330918082291975756438627919992133653882485449822887564540899922935995973393298607327423043427210229154957694886799345385931386994787077599514890140095360486925033781445323819371962041364012817605495840350083320003115964432357258211109342446807034181739516016198967772717093106854160568481109095401915927784054354302277684503784759819475424871357933821066499221655801781268959870541588965839824296689580481150477310113527816469036731838235259173853965240537198340357969254349489251351882856563054234421617328409287819626128510437958727768591683875682352268251449686597072980157674739821232357181720691619290516639628586762082477619157587465641250939670568614236641888487803315204940241000067920796120508700224130529386013269681130093455717433465012435152680777576171925900912393835370994354880300313802930045060633562421940930339170411418235377412224443195876742943627571382740866851008502945476345068987811151554928425355190489564523036747636602803224101841429616732692839246127560829055004109473345517588211067285598734533694018917004425404740089809434918459648326968894872532048495178213897493189350326284684832895936212503557647596506541853810507479162679753989648044396459309904812286991332408137828949828692310893255837729048093154343597340055441397413106118776551424780142712344319390954597259223462700314203708687716401766090206005484594811603529877137539558578683783644709650212368357284278358638652914642884160923027337121076736637299441987313398356355794962751114426551340648928227644225352980212735660359582614359263406255218325438423251720150006272424030274777207695424051978166458557588284658705458738871064896274026279236524929667846780397609679856060065609037173107805734841973485259429961145676737060687007144337974238163733076622805366120771686109245121214654634457261756384710552300893806622263878752850784106955896787867891060360388879684120092669739071494864414844978199323615053741050003514749750556525508927929915696778165170970251796424876798684132810341990073741363406796581292073513182574401983952224648408777035855419791750871851062188154647940603691128917347707342542274435277354395709785329581565305992432942179093538595619281912283294407029357642674875922417180180726590543766579338499346382097276988940565049850865291862169649517034933415380854144100891380826731961036012110856910986255479531578366759680163351374345451865409703022520238887622940689153058696325885573515334808617510880788609215737859962573131203028609832406928783894630164742114795137272768253161364632262743057401752928993336069052948029752358409404472607508870608188082214615485987265722415629188228817542556578973636218501633532730413796265020419045944240826440524719006857733132391577083949353058808794786926330920025218732026880666797943902081309013822539297775076538495016432290506597818033111027220227263214934496821893475024438522183666109176353131178460171417017767595769603942842394246512210645249634047540071930958968094485809631144116530776187642725602900120705917364420587126113628533714583724696180154489194532869856093266768824421052870172164463486552706170944993354411804347365504986247598006593373540133618494655923507244086771996640985960388047662564916966026506533901696091321357047143116428422687479657222167027555326981259571805245250940674517951102037671589215711381607459813380655512849391500649776421305576188146104177938612697502292390249080754495787718301728542989730365832572196767520218195502511699130841652357276816606934522531453357147785849005397246333328737744293052283460348471740215118926789922156838317646959113633744702879654293029622655074679117317987914940932996429789924043283041187065462219752580579217497610631925246794953753577136067285462416118120511809292336012118926802383922877722869237999190622153911968007303934431688680676391386317913653854824297250400626560929931036123569795530118913461470414225241009316063540016032578683464103069918743522409886995447980557131474374704702641111832656782832762248530551866255793407584473706607387487809951567716392126818553526773076578330598491033468010334546963722881054196154513748925442143184256607231769665326563758166516387193009794606261989131896213501671976397532126362822055788830572600388417313872263628059138241967483053862584771783452811933194943568939239914080980624227772001808684695109661443859553599483656816551543418136082835170397372933061866754454826338439440835355044584491344067152256437453609348309770038397013943732607963345813427815624650282697393087034848222279014871448968256102346343647916498792269595129983158901525350772640271047145838483074702920565392765980717715782838452739747794819842733153257254059502051212686526755931621282995606529761153010173157209256526544276764747754418546443053636182759599377109177853035500901187942022731609702001802157739600069797224286599059902062431210109031588856062402935700386897832437114062692272396179904009986050458169388090071699722246511720136000711225319352281221431581581195585052521209549441854761153156062148718011249365967412831700270564692261983705274440593758709274123354655568431658008379750725613025189724388145371526075494173333086617631556991913992428652346677339926605921319771122551243494822962616915397908185839059774313739441734341927114066853875706647200094212003769970802457267574810921687610761579119103110901253893115904582824590106898331853394541775547871866620476460327705273015566460718238386015999674393897801773543328905797512787418788097475453458464852017515361841706032509795038676214875464563188424916354395976080950788373030784837024821172422502697099696021747229781028560101119969245733345951851366439551348288839444930642172900863107789841280710598077509208824396208135474805690848315155161805300302825256826966196535685622474549029953408282023353820530619496087610489957974304483967827818621776632116603132894765415243353993160730715988509384586021342619637838374137608350290659875459650913397388851272192198946788374859530774519414089489120913389269813566827958855129910188688554797386558155802884482729079670456083092249535847235091468129133965019635200751180797272435225052313563892166548588799305074629587454835823679260834574912284684644445939423763976017025089230966917665002444818787836805943392343387810384632806486832391033678928271190179883074221583584803359648737506720558876923048678598753409134860134704379388188215384470692440230482642429386386319758460409043996700407173919151186155513365033278178270839610051845109469753062110987342919811252794752997324802929097809642324466825954572782327721355320603910400587756995498464492655533184120282275945759138990713992179079780591066854693985357561184832982752145233571842591131053394939903357647020595634953263751840781418913971123135848385876287066850418098291053707626999283349996685358981127533214544528838351048981335361190019583068744772463810411233236925611835610477971419081252025162056719488633244345638816989316864009347410375292810406321043804800295937615373609404334584424634476519735465342785656707867267409188509236086137140766069882972512748504440690071573229046433919250665429353149776789306329343829680834606541664115725891762173855861556097940767196708769614329332712508369922525899468231366079575713126730463290290689255870536654637897404661948343228212325525314377366889096788088229302870008305458037522000558599335779524017125395179195452504291178794668777994214860016670353919125049725645304964007066413270456160037629880313074783627074770047088006884065672928638180603870149584254955040905665556330865524031644183689166531830210283626548438710162477456721041376663128989368196348005133826254199731361713895304642150055858257810172094087877662991412916155258342871513210254685973122360440132565671487665969509944279618915028880406123262878979588845338177811791011216944254839407089383198688024996251659508479805285229016452230981696967210409393418497815707105663146049641418381842335446401651201429584272493946220708957399468532716519645685614347496064987375356546570605067454236073064943258163299246383799026828637217128991745500451836372373340433740460591181797826764239171623855709567931597566103351095572870847926661699299222069559023986316352433247165215167728129121595429606204818959389271899682202081193835477477975595757557256785076687879861649076167747332719586318547481570351037793861652962461345839694592471233007240231967641913935811147424482567074749833467857910192277336878093985198555649292433026689728491791181023549003912305240741258704823571938379507937501825757481955941732564485659933355349941350929316917154874174420833095735645867960566023809812123996006359301120654450572093702051592342560296144438173121206051058419069956601492457155091368557281032456941999638094561067099401658731219600073447725580736235531157077190319273192551296659278888906035093970052934597096968255377870781826895670895267451091729866191199087369793419568085345213042970146135305221274464736481793897943660108232649232976508175895805811645710001815296609714151237884605309395846241377800053749694138113653484062760453296622520372775386477742358782197283865873359963560276913477273487652205719039538175241674691304551529963303428094037155121347855649475870751309641584068361645632538929765711131205906646656710868034685080344783762156444737064403152980234924058507886722537646189258949389831182494792948971720665515183210909405867624793485694785652186867805962722719340589678203447431370028002748784740989477156750078393913351605611866895854396830094738481352914674253699764506820443479543303550162101322630590379052266650823417554418170685145627099870011915531147865898275330710670726975118515387591024394561142605544493556341487924177423150962688374810258533200090534211003050938288290310787609290631252285880306520073212671663762488808179566311109571979621481246303462453594186139882283138002030991938184190079052346283704462336406134187014988011550655734588952276827703792789638749836111592606914028136241561189131224275392853954093274792477092861229620100503919262002996568929755005380233974885725344920340037273190853697196225592438502567380025642698974650600474865992695066559890728435425345407492700101900219421233195256594462901018172112793417031938242953119301476121436211502051465311339797100681523802060795272468958785961767658228096086409472602248031966161705000914275521791888383630641717348468091071877830765654671486398435519947699655622660803562714306568315623094084786873376360338225761029485675502430023672666388471624072968011315433651724960955913267327027004325050077434065408360751339674167488529247076270272779263080153839802018571453184860074943492121884541683811440616012898340925189328884802034712712902045788034158328120903875339101757611566261757481724393641702560714435901371123997945241568903376596086492819246755818264855890908795781908834806596587034273888225180867459137710094278922934490620064203346295714796186383372546596905003114357289633251439523986415843744136564839787479284946983956419606539877572662203330381513152534320281441210044497821837630293155794965539584191183439618837709429130100427500019149529683112253555215158105157304026195134727239926541500137979580152663554668731328508116181362982483982467045664888530614820814458783003394921649549535592647007794018058700170830528430524249972771858765043713256316769418750427987275059404320776984489606851023734342231774268529485380968518550940966707171427584811924252661881371996538671430532867031370747218872772268123916463987976204477022529742815691883680469093623054671230623962600850211767005127705055142799837693034685013846006383555893924743422001001679501588507705556894543549648406912770363805652413158962457789279317816420988328708369558929613129204859040755217024450603687602664673314310864683107832333930670884712999224969025487714834418435070044152664607600883271949527020819973750899591086386855465546288291199564921364270602062390799176966604088345468583154863829907823154599895422390558711071548809541394914359217684640963828394224083752725533532432210534369306586808551388115782738975245492260290443478784426983441148297474357267035027401851356888526768107674384901369016885677128807384294849315056584437424810714089680477433732136489984661695526862634785619956944881976423369269784027270913351300701326168063206667588983132079239083988264162845481934652276039020463338033749147567352934136930887970187694965702057462592547901390281631879054958397353084175681579056622108786191325710932952835674160725588050315258129474436608697834862085498150564286020183714041219471825570863279242902749759217489410143558089337884769733727139945830166841926244740232035300571653579981938022166031353902864124726687457100966925675381805177910764187898485650326931429114396041684972941314356455479783777594691531726202129816543535222004628556995519370571455457144929391082743364580787540567387356566265802440707280057686964377618116492333465422110404319959534834057872714384548351790058232662175747837531237528731344527430198226101366963438034367001691432672866305239718140945507691036190156980983783644478803384052369572784712266564096845305852902228292592850574960435930606012069681291750606021278511387358334283650226314643023085617225014329860985138877397124929439944773755112115493377162541510618079179898595977792181120677069295712420146732376917338543611577604593860611323547687893817438403096094970339220855911923388629317198031251200342842017485141131370660958264075576656774636568072652703370207706371193847515344809372576723440075512242172022365438774893010862403182636178238580679734418621227575509743169565970605358348483932654738899088461194130228210217975784471505423998179118803273867449111658633577373310234070610574991943606921761771239415084667294621170287573560977386341657357101260423653691785783331703969481248557180329332064531475137632715591714207451789572165011202905426071155138481070158764480838686616503571081452351837631345025582066019403416835302270800122141031220488445997248302815857453051223780385323505641371444288960281836565140122996426237196210258402513568230694221986095999025337087271472749306214438141263111532747346852008184253674442719257648821770305293844421493109405446226678629235683867566923299236182486336673188123202765469969186798347080115388642705975389590895587028917086649654004077140042819067055893822096708376062071430464349512094383482081837457682998591759540069716732738264634440715244347057910926150665284239799405520940465994858759808291441088391845411387953498256373487519634149635912375863255567975600678758824234071535111741528835933678698072778683095442950945335736261436458402585372513205463125870702684549260505016606237735397537053103484985164880653089782714731296176530093282322234244187320584693885615396640012523970752578763856860320742334144329623592725222357234401076854980406044718086890116561537364105629350222709833940138161799932186577290642098792468397239211540864752191754641371933780937744109039148878871312374957814730686147017247962388909141536104064382848129908826070906405976304816752931578916343277556101170219894180706837589395721369987201665105441194391175771269024299467762568868431642420709027177991683266915423249206558144202239863519480255564311532973891370790063193495189073920074491656115036479339617658561445928606900141040704607094077656092735590246772562550409746123960685155636577313731512780485958431519837194194080375329538458057043674422041341597621330490964349825245618315114065450435557821489161962244738921742323689864022134392466934310344451864627104132743312482483692015032069840495763793587214454339993233894663887091818484719479907461548521404152060155979581249351115939656419251423661347330803988617188531606046437557415488257872719088097831302945741558811825722388696165924460563170469741154052108294061511139803536830143803916501517985234463527455797253113291169510643850683918508315947349485512192822651293430525307401523798030257037705757595863635541871197697480632356107292959930497184584854363841569342759160037675057103636711430779773469425209439287927975502550363137060538002934517700683511120008500836793536829507789058028448963373208037780908589496548963243130626813057236756698447795876414045761306261217716871727060996683147291847406220477038826604798025712415428507232320760021572655424580747876395324548451748525284590627900147517037630768865839186865765626516496194619699736470504028035723897622612478283246231902007815759078181139998606085847180521497698224340559036957806922949153302766254348509475860908192297517374642480178755724660462214810444661076720935828929451895950718209753364109807104905080323480454043928037196575098504571089464862501813232411289584968782738423759655529461887533323430993533745225902750560606713842545937021973403484300055441919899150422254017972927646160192160247939308387318286132615495478719510530242465931809218232027625894412501531119612903341348312591858954004941701000426383973405656683459937700461850473125365657777427910775688574209974649511307593277757741836188709306549167963279896664478115798333834034254128902845659694356097145309249571526319754062752756914096505860467636830920012500284045814837863146524618373014524239531450286305684415647149841084333046507014760424414334779743354814509694318496246204910707403391714756531609907918312967063105382700543513416864396154144796291673310534243387236998881663405267111558229875204993914180288287963418196744627402012949225971725750580183412710926870895775225742455749700022940999965232195307254852629090812281999749364665350280432277079608624390965797815116020728439197651308103397152265575571932916935525392365862068311763067225515646933491663963540997768276728508895517667644554618755974041632179479531235000495145939648604731517549528110468718848625928136296132725982021428033008925724741202950288981211606686682555418128779411934910512116803387772074906994280535733588246643544611007611795529692057306471697028060932013743352092615063357860061556402741080070217310429933099604001043541611017043400600407997287565537205833206753639537293110439463852759129890495071697138828208991774861495375836871102035883104513547805526867396013911977819389897032348242258768819789913906839418894124911100230488891098827530906682340957564861884689446062664300702802214193147568389360540037580316289757710675467758217644717629892620297332090252807011880552417128889374097970506902740948216310366287108164642283668125050013305423625009971115243573969002123669489173478859069698535962585608717050390775338191695908417577773873081023176342305742815016904932084990097030937630839390627064326046475197244308805937081168468674526326238865508554102709239635611893786356480672698472372691299099623700361111594338162213173162184196759942481704298223853347767402326305430290135569641499773480746810777739534291209467638796041600421044488043215253490112543377089211796784834066211419855110106600915107074561136310190389356480124390942553598012583063258468009131310838815937156806483371492903392159196121535949799764615959498884245641894725306817603998234501819255818954886923934721946526305961818316766704173070493014715688472476874293067690697549967077871504696791862531462303926959136870611804532737366593408218819477309028673861215431172001187869985358581786236409168934053923764332369375630670477156252972265890050202252898747454596239836251480863695422605120019738277342827182106548757640553006664557458318241703385294552389581200938633054034687199868258242899200129188483235889696265431644831375024635913671262216106785960921406999272524885838631350677698253015538200623481468410568628732118329802632364513123795913776259458324557820298574367622053767854853518560360710569965438252938474223570839517727184822485856121955188045420574855335619596151038447880876750153628506192343761578002213187142570632655978795898302124521805953943516452688441521936012448536651143955427218113345268943535842795061415558837288983360519793879222254158378967095023538223260932110006163046248636043953396880282753246847371741593406049257097533998340259285818919179712068748087690475115882209739681295150570308614574179587618092366007109319863077978000530325345300680636695096606668074373219825704662677818065356646371212720252405231297909742381949229416661094790952654163499085867947214189525832353292357657944291715955960867555709980402764232703898393125753843264899612619442520095414069665001870572363419509395956963685503050938177127493367076202222576758262777361515451535236016313715296211195372851840865337840900971193115792763087448127828419334065910144070128681654527490938730912730676507869944976473857691736527138658111779103987877137156548775988247655607788738076577398089814516276369195801284757001246846688790384094680185520801722720720184259906253388464483450355055771755881259177811579821743297663300724021654329175801508067119930651491319414870750873450672977645995031852997762965169910086740770003731305789454826652911709951675900891355817341213395182148974109497464811956096299835212050618178334615509244565995167194038065210890512643818789502952368158139452241135154109206611616544603075067557375544877942773780210612144494814222779889629517271208427577905020739504609200930088516473042905096620942011923349603155163532278467994378822072353272971575183108682446932047343652089891100570581809296408551257056915406119445290710097778372702999141494256354581976775786516443769725623132927217346130871239304308015301154582368328576496387102630854457759902360822615126667219449992274939036894985860290237155021564113126908095343075726022242451079833781013209372060734846197115983368465680448941603336005261635954660947071010199307775665784090724915310360646506052747239139443560652534423910894027750349913124904247345090468061552104507082200670334226804188639344149571684781066778913850163236522892776464502158976447727598794555903500830923351585204530565214221245127944233493169108530500454334657907477505175160173133262712533073204507546739638843196925352138150921699783247888557121855145970954270887876343519255268669765562990257780576297896456568622680201913940368409867146009710250351978173555197473881337756397023213363802404577275613032200596060195699957415283421443699035523781895187420899847910777724163020234698004533483593303542613963102573555323719801224042613853004843651423898089391001413004448186950905637256589818455912611178421064029272853134021641776651896001162534431776651634213579401112816464222509447560147793959174684814013095077152367008839789128281576445435676667357064939804307051870297886669198306730125121783534768811319288303068365563251218371391258465361127813117937508200225890201303510068027902197960633467389381556413072178677656355967240524855781812826619577214717669894861433619017993512061426080094015963151665800973931921583319857024014280430506075698581560001777192270089300510355998089585828967351419796386871793347040878874677415998466093356633241535373070968552913643889400003173596683306162442722086240390803235746969695936079640924259362464510545079118745161224320130594698528556914102536262200916099883885388070348428190811726347254898306195255858462846599421358949263383542556506599895324786172203190619421769617467599561443758554507435664467051452247062416019455080446560326446300996957052245795686370918689657380580524586087229480225079747958992274075035077371741681873353686744310907333248924399167552616138189791886287925860808792954125918479474582143551009747394139415236640394547929511538239592154644047567092703039314626192203853515429011026274534642851415709254652567319993963785818587485524157248543972089317836719432668805966173966255792308693453543237448860669715371996564151500501356108392284318932247276241092438482174045456090827968088193205605112893794034346964710643027464561923575639715786440358907395242295315147510696095978160043713930787872502989592086774280501562455712438589848953955238235370984977172094549172740277488375017786383695358102107665258259380686199348652945327848684940527659583190949990199178580322174817274624859127076483172455980864639490788241193498182578409589888760472566772222328954978451745240073715514068123924396159959468455666732650055072065929731221213708295450040626299673433671279107954775644757958691435004169226373604508197083381721925512839415024734413015022545574601157282188308023287716740603822827396730008972485663731443627607428170792518733304851182095093313419651562026408397465831231083991078273571561309223323779088323384663429636465041697284115029640352220658434670893392851590062659466005222239902669960923987572680850073948235362129502248512297649287116337195704364483463806376959726715406168451612787073471381044393379941841032777540196506826405199467777528118029900109938883477465771290982201483687754673178530152206833224212943700852987705626591996920291352560989582267817477561746574146808988372187027832342493050108552726806658709780027085054169771910476186789279127557503806730167433113682901401000064545991276810845785228694351058664935977225254363829267978435188984232080908750687156827340799676395801603338147321463327429408658606108985341761954440418830815556901020851809509604579309408651206768520740056043150158616174902345431687121363663177426655000407353671280685307294360054329970682285063531179509303204121551401681478149366438380258134886662596972937825985150192141776177249436530885548443546876174886574119839762990672045161210995690722849214896968003225319660590531601059047327236127881997248238884179444468487965088260796869510007788747970323584496397644725339976688759747582435426008846020852724438541888358469914794894633074879787578380174571908453120940218942022881712967020749337613676987011546297503300564049061811261687515252786285742678898712839467989581232467848235933191380624820887567138305784965151778566223434906902291308310098244670994415833146577906033733378173258853529901547862841122064313248013726546650203333117519053679976387402075970078563035476975313640143342229521006599739842715559141176925211139959904240939740507827994314289285531294469078636925090158260953939968505412798392048167350105780322444622376575875385356299235220796966162369354477795732752563420306217867937323197921348133097042650926634630238835955768110902571554077604642750877270760640273821104399035544969667013354913987208281325735191198506691624170799183927723746076691145829500877047721059357811943041510821756190046690151644496845945576849375929364171096941038752231937223346268942730780206637585351147511898621558511083950366592026809331068658885565119247550246536722830858746833995261365496860853639427078442058344768634431728777996083745465307701735557446114625635847805603323041485512129170910133345169547267748450930483439489993806325709932800212200317442022763368258094028159802564444714618197998052286767472941136751817226867005237754267632436069666169059863380782669807405580345789616150236443058187106216297722407765493074566213497374623981055836179464708907871432020833890255155749052209990488403932179784105971379533530045295029325374049336729170078057186647912361289457057847504251372924590572996115161893656017202811623640592745901292548451009903917970489599038364055149950413444163082690475669408400218673024551169458182374338177602710907719582708069741643500829513464634634039660046745386911207336165390520755192840648476019176897326362908185005990675343457221198652604290601457615336477077686725951684633487762738593113101719134421572101492842668108700747981484186757191716671093672166491329241032542812904977016436301185018253289984629908430111952440583552762678157319582015163254858882197345491329596455472483341803492808559533995275152525087076187413887811131718490979956276386795922016274982447702369654589089459337855718637474937390970656756496361129405139661454230569462680294511575041057341400460246246467733341365570105783788396675887695689787939741911938802533727554120940811639351544191633615677377692133226114951505390041262357998250955903660529430204018228616007030604380698211987536749509688639523948846640775672401354496729672485933076570475495622127765313409149866526097336458342782890674333447418530372561464748117081889272508818237458881409019244934646608555227872721733881773040503241171377091045529908434737237723423021681804282706531595169882684784620985279619320785267377187873197049635201510635965145942948696436519014272307891978841168764995155716264485576645034095324162984289261114271593111264883522239422227159174334786444905998465935941369208782016175462531537825679656813364390904816136514925182802922828755872969160456412016386054959331296148242443422059993435565936510063103154636648251833222588036911175141062130058333276384223752434034180071037449093002089098039151588884150697049424838253090819807030154600257723402256981863430135141300581819312137101312247315527136943014703582643156229940103635584390206542365224275603788472869640459609577603893079245173117773149287197052842221583564396253395126259189589032042464977841796372656297787182259703941824851150593700619487631023916519531296678375107707160379269688816589813225482548154855628886971547760563106169417787924339861382328215823966628520358720446574006502986111491447172716565571835991522247879691461387910080457885318882240761047387591477532466647156297886749789830974527983398813430222112955806602489811708036451164306088853611942668257621001694753790479007924014397903414007697238000072443946108580517989324867832246317866073588827681504631140374501456393143274572736249461604743449624433411424721795111786515897810610974510907286467348888376801852658134823535383026133957331063275695983778891571822956224752648824971292772566947210264845943050896747325979692293046235108334871645225307358021529786271377590736833910139448893013570795238400096570068283269843778187682575284675121478466736922350565999946903088300978280267772578511934228995977228349691170950141583269024338167738713792247772564806756638284423376894971003790941326313888065637925198898846221123103031928571479956075810167276031025030846172015383512378779713837371342598810000397734748156052005760431287497184124471649311878571082766268475150642997463179628146926681434060413070793202124906188504945336521772669158445394034786602025934425610767540638699573701770064436924979159603836152892279421450180168115160777748631959148436432537681166277946014697249773951406827991914679413453727030281564270399816551520453200145413761500059421035712620764736090558829495020579397090855736117411231327694711625704266136038553498460759762531740342140286065778127956935313851097528484319924674186493476281656187877243660374668425512699145393007997757238487005881500219244782888007854829268872588532875691521452692357551176129270135833072184316314401472023034006536212177816324043017546729964797859956048510335832995904359573207476600354164350018465086727774141266773893636247253600389912326302954990430985780131359089029241142359890032198413092384570723138583702235213200514273757350218475513227665177752027000180430947090190757267293995571243265799539789351182734164260252567138968490764967929316105461682124437887513228158210137080909907836844873056417436014253550260303599201762157163896681041138624674306799151079034932110073618986218428870588291199476608781437699224824906847342319565769466924054251413839903998608563200337456091948105935902583245194142249568322692446742971046731341804631129950254736564052537304743059177685279310084000015605994175017643976485429210971401587987676430924744200557702670192359990031328613618632657536974763209565099158065404666311734556862206037565734042909735550867049307178896571800287463186715479946046740570415839071342793151030587307398496279774490904482602363339310741413281484179491171489392651053690208959394933153519837068663867681000423179322184365906636067850782456176977976035887166845126023414236103272653355919360668018024562425928664014566992566019735533944522403423492736985526760518475544924948548264429481434905537549064120192378208957553839711574891805670305247456044896051238686948013614485093957989330154070474378443392577278565067450469747582673239742387910997231996472342013924112653981793706744572435983371050477621835144844157091260264327555133519896439724108570150255250747124145438993748264304929259541422463147342681669935777957541138179911601798067209340311390008612718327243902737813846801959996843555455608356651086417711516796601343852364700126973103297969930146381123055322975000594339664838944949852826932075969790424218414473942814560309876983072265455234447765337415012380127999734084620472180659826174718102807115138413239859606290672709237791606372855864847426070876071976884107909070531130105413312213108732276458362515730282673993338571512095794771729764963175707348110938819988468298077578734111380923881763627229093940283260600239694842697792514577675011410550146211880383679681208357747401683913020249138100720716798721029221219913323562053199045267024434070107304805308933065152590021737695412782735607820423437444960839230061779127342527441886881639634966190064426579489990660150340582277281946176918491889661816204174453503229773391478676867192275418320489017201151101742762586341899002692833742067970049426368023501332567806501252373242801778693763996978206879672073909605891743422910681664983639048724957272496080600478889178507426001018460902985148131098825920379239878284851489582028869820181908803676194502495701244735015053994040506955728004797186712789477726095364360292774665610883407979458290161472605702581078819468622594016871453584936186241325043381122391771441921551296989217739176728437256019309478836809752427065944997817938702007752867222957588539832981620248386840879973149674101055004964163895487791957638236376231212426265273070988652429730088840075792965271861234111846798193571317110878664113409911960639567850583727256984594392627764818578157717073749719775030329409084857115486519323572821835328155622173070963010108725460168750139378642636849307628276663374367238224741338181569981214052644663047610943613911729953957338303545583239740326014920053744714368271505397671786541924119872090059881722504077480413356574017536831352036109239847104701376629180792240259945435237730781742051508702853718515268764709476590740793573690951960194641616066974661029396529992390243357527204652280616393352851300738728908356371729346016360486444178082939363206306843826600087847841861139818077127990245764105221107646174901477496549023848393232231511544167983147555149718726409912213578847126406821146557277535662169179204960000702103927858582395495978456098240507693768278829306936999596294753243517937001283912835189088662849052169767006347300146673292728782059086908319505177982320232845895509628925520355334071003951093083769787755439940952307840863170303555010510192405737765153013889978489854063495662800577027639200532982897823512103934637377760419296937580527167682223401378542052613963773504816823216667977556057122548214818062838082118474161632950525459509619003032819395358320618178967712847180507529014966203029645227777370949760673795636178759875175457712007929755161631839749068683658247398324327047199190544610646236668965976957915853445124566455606228111188977841391084186312135150526770314418273419834239279386002723085124891266051779385297998550783537551029176811748367726579570621304170907369039152176426099691212007300092308875246864395640915685164468484397056768430119593526931654103640158390290971359182054159949419627696560436287679166883359110029780713394249378730869920674167230666347098431942662614659638243208267385930150459389829872446343025580772483727773094856216682676644244039656212263386265654482178434589628246891178182106394297607635101740418159973883254911710289386196814205974717633163030827286703303808253072907223220704949273318094343149613256707352086165655323959555343211004084314130994966970163388082470716219165516243714574794729987014687628722244223652536616723272773249417100800451712232165706931128054530106708733815034890469762439531237253081000331234914706717296968894922460122887829946274343831274946762147273772886969110552799913472494067084004226919154158907413566772085482615132651681931634993118284179822019334087266406282620452625042151627523142183886280303545054583682803991235916556874288432217893660352608528425729787500134819852082299468038504289914746630063922695209683429928872887273506291364154329592779412291676751219136256840320421517364350235615985387480002493062947974345621272900355645866508724718839632240657807821020685014198717172199818093603012876479976543354697287445809368204603507948471544457214573831767285925598199247722905274618691077953831309667192757224819094509356064053049105429585926520291338138020255074304550625682027111053430948745313294656200260794900483177705543616764228802144482472662035085888054204702335310282471286559012845277616982933258010691969264043441088069316865775750108200177132223309581015284629837124670632449322840544806633583981678451014167140228324148165146786453587303768878654972539650577394611089845251339448686562785609525981960961782220003688785383580035839764985564834119417301246680669097466458318687510734848026482678954993114258957160334901405657525115869538895729486886609955906183093538367718702357057058115177106465113590108243057458961635187335686985406904485961485627233925948929492996209217427643553035159646836632550280485914647217374061485041146211952459210660697266763799269246922915984301824693610919421391142219860860062010873725396103344138147512000031547582616541660262292887967724401757176162049650893898694168492197774562836038944642617143081367878485217281876013511335769200134392850844510054858346555306698750503472292688155746692559863058315986943989179758792071145288132384496003785880838578540052815431052304852604157021716776252701743124411035101634478279729097294670264181109374731976421087936780748998835205515666622992942735613144542348726421971455340013180695403069854742558469963770563945484899330196953051801572262500061513700961186809827397543889866194767776112940861880473213562656850574154278331911775722631467342346690780812536698618958598187394096925480966272783514491773270322858768452134936922869113633482722554350310202398926522444612154759665936905287362846722965894547034106601402351393895194475899865900756368971298063202442917529814770124233234828796316365318291144356282496693401188679774454413550657004479509540456081705538814277513160648792315854735081813716256299554501832020830729485961658268043902519582519526840104532727757131795767339644088542947993791397821642883593891750881871608715678993463565541682459536550438994680000703555022963806611828754397507551491547233887283772546086691679165994765783901820782691077559714876794070101343542154562643127199419315256802301912694929573967967239957971578687045795338810541046149782858654859285438829184108791041674409408345177173165254755222499246609925111151233841542147173678834168336437315089478094859339314267399939667600789436758062442708143130357669807308190280575045654447445826258268625909611442996582376881052550384589388732770959560886647685251842874267277232657236361775346845758201393589205032129576083270087851286024850426327221816738109394809125742209342944554370400837323999259767803070495159832880919949324612395827492791381221271319973771368791181741741140189882068243212354033508131998722531013916866914670373309900004527998794667419298398380706009277370265272328417410638867902535919512377113676514730945501883037336367504065941604419570646695782506760800070890117476024220744946275292669767759613383573401741678175298920609984740883227428545637899487121170381967327921837734662267034352966933580209800723986999350547355784821115114464809795181879680014631568872841534298674877101122872554457466008429125218858722515454362752730411710350292057362716698019976902288261275465704631564985400720383895535965014423203246853307272342653241618520931478789269277002418800154635861290995784802145023406992483242423285566469300634826390199868047134978515785436971049711499845486450407498583667150279548702080115916546147050534433389121991039371943023901661688686948315816401833102688116551830953678020025955929726314021345659912274972364520195577227892256315384948824303585274290493666942243476879914879578175508460516966443093494532250787269943751297440398739270271061355886419671931248222306407426924517259097621159357977067921032013786778064702651873281193907794705965735760925748615540143085989954566153874295079883016321928038305791733168324095794359053872689146262371137513201612874715728890824299021123044475024152113126742180428997216521682695989736932094198054380018924182646110723428064257057454473193028804031536144878286980624901415245442266731221898049054686195453617905468529707538764609934006016170353093493330464307669269258841030330589337625653605676516839537415177324617345612382718554269299942791920834595906260554045995639732538318366541521102189202300837596859937381361088507913072786272414421362181688639746908164591352885726843590169602531111043262180343174848369274798248427365535690960977398532459598479341383568651163005458896732163010259568319769205475348976180545012294737676157604688765355865602753610793256912834762145029419351542520559793126432763899631221750412460837175305821599810627408770069187187567943020804732792101897939502079769316788453190568646659080716050147767840537212704016226736240188161792348817549101117759622139022972186892191837742706635186649039970499318067316481426434517078401172937594806849083005294413704401007115430444341615639203626018360878950030983086565091295116158296085805349324886604966672066812443177326332956187370665979624960501349453507822928324889748570651245834178763038348148215290001960721996788776273465789382721973450371858590614786618834495383584961920879809017100080787014303387469170030010314973449531927637061889144433899008006169742496112074327706576885263419492910853006319744372876015807366617855050290308052513189166439952828693837158141733677454155473066888113941498661577786594288424364571579221408245696012692305315805581040433390251267720923620867663030048676216138843341164486512445447062746641594567031994611808099448440709416402589765486797037531160267439300035561691836501855308437649878196429847356303665951717835490728981145722001582635684990689275788580278821193024174782335664891972127421942080846129564137262062931829906439721985259720779856414101358664172153804202128872707802598024129798483238249513355598924898706792128131736971117061938139413772124450347697448429171212405035443634948151845845831953123939288083423314760407936279914103688504430970229997629540139892054357951311089341907687160648697201534404015647139538564755822924140820414312797532779630087729322310758274851905348488111380194016338909424876190760330639096466644404119318463294201556930237114964618421319207315648130917465542316132978806059668003721185820426161988920385505750795685180464530091334322518089442225378861961473437908739469553263602911795408478180178217325239234134463932807125768008501139633838765174639672238825456089156400744483392525284287397716837548959298100558657305665298051716053634276794375183526760872820600885766292341966744807938425001869032333782124026101205564190036901798032261211181679418432893403434973303593197145652211189865306826150287098039844481906486811436629870222011274803038642827111010571881406474842144764102880085057394135070690443408030387385174556359615224802436140513776337651432225979665352650267623804349051634506302315337393400192582897069207291396837433780806705770463238251794226689352997201742461701018506488337109514086964283141834165377988286483510607616577965015031193598653728562989985886346479602102892526106379622054204110464421695093133043191422347140725594702027875964508136419286966569079382402489764735074115170522772690232889279066747877038457767642046990830915048786353363281318909785360866515509553673938917549057805562964210023646941806397307459304476838777455902320333207860557552462727108700874423384149029412499940228726948699048840301553502720099859457657731600384191060318396128688947888706770400678919693453319568587115269282211787268393777775362704346883971871371311736682336191924229867649590531369512988533587643594777134941844369037114339532431381035522075208021499515538934060270383061565704295894704718906512095397861489660757683428006108624557958155484623418724044224403563764175280034190860471960136894139239733001381662424930227428911017639663136807671501482197173792122902087503732346637172991400438519760503973330800097381782430196743083297821615567343935664391691914459386304016954649477204647778275483806510065751497702113580571938762630622257002902599314703584840841069974108971196264168033834535564175140095853164218598263299208576483763049964002782747285414616883550648700208848551183345930313114315742089866519417817505290665020831309451261230433801906288680497544528514030727755716931687909466766681459078930253918293148659060995797608733094475539591884608099287388416683836111054533274749103290264539064431880100372897568588648890443684438023908694929411950025743868291915544565734336920877632758008582361340196427176454853617099353694701892539442074311765783973244416311510381251727499210866763885188949416006227109667897078884311920905922371585860492202984344005250930710838037383596129778903618560945178414408583597517399126102889751135265711756155696750381404898501392056418579388724253606321790608255485546075951324880259410008031635939665241821954446636373176397750072012561665887881599380078078568464535483238222728825047963737295002338165113133848643042157357214077257238679684481350229347856817566545596407279740106466777785075535187269474142727752618928060046290218487292842799412152361619029762432242761373449981862692403562596249017077594194478874647693468495924676624750270886623961292943385666070210762196981827409959625252007256726226118274921369755902999376910841603092399111222351963839906443325907081809615455329970632128976091844846971145050854475798061055496940782061603006555736678446863612777460020793606625354832114416897142219100073335624426287697329633392012709472026396224961612257028919933333860067074010244554203594701454526376892557611050771406632980043632690633883625688398914701947404592981284065753629578310887802238842950715896963047497514852916562817975352607582642965301027422805460197164772946397258956130482024749359425146630479495673362428803674894846027560991087408533111467217611758195311855748100063062515641182648837517471622753166903620528499745332648597666807791475283808465450036948407951488525744458508239388363885575217805597149757276388711734521038111946181719460779498065211533407959435547789652025015399171781346008695520228454739681704840743107847901320061949741586995599456863529677125949224786246045157151969364192809986620062473471058253608998480939840546180878322094455143941435358556254753983427068943322399696209881713704586356440212290559056362208464814825496526117486051880099888644287842216215034623291658683808189362700966771878160416589569539974469046273528746412849852505456274621532575464509974019050924660354134280122470382064322704150913995291683510395934372901981659836580035223764835593352892484113015859187690684452653886691447343354577120272851302054690778403626250614461512326545258196501437546343893527645255706493786057317478535299139838500860661108685974977417733824315138952156738977357811161051400184017307416882878999412658933686554260150918963934241589029986261367793487196988749016652756994592217903631338746861386629391819382659492363909201686860659833443636372292191154165572728245162145349957808658202843893426892954979342734320171041055722284347010125537367736069304729425850915862214054701069533085959188970216179681630650001954253990706815038739262638670606861008606112077309163510205499956589706373983052038976111221240660362284430706861666764977050413740833545774215132951529205842331473064160790991384882577600250573880175738606467443328544824580655365100690132184492855745253825054966746364626704428313708864174142400694135175343789041958228567281586011218718917390586686712674526422721416172899285055259489096818068439222148462888555067574725974692707386856787496418657836478244970123909428704641862406033421359283737985784028836428146679806155249754423829308303232653780280899776921147943121225560916029224550913672034481439819668708573707647854333296070326866401709874039111255429388509314415284175439954520332486188799196794637727637098383167910060940186654144109954450663964018845805844722798828791958984265742698742723917291100293097087853300971199385964162087411084011129429416354200635865156642673555906251776754318201864385071471860736522844617570282941125099374494131418346655681737375249142520100644340441011698523423713352851710690316896220939682104987971292401224386121274335640585900106811750662359462478596568979082920345724562550866350642649395420366460548576706354545557736359842833585530747236965873049905272794162662807568534196060827796926534007557374634712768870963043923945525426036486679915522412585559687109350227709699766252595663745036252566780140698158362891397260143021503920521117250639306819424186602505578832485854662139097623034578931997446066657424423128975413886545879537973548511118734931975910314676237196701099327968460314768884539976672539633225670054936433458097460695658388338016363201183834465381241483137608144340583942717868996494059210177351093310242570749784080574095486937490450655982431181222132057866948621170462030862449814301953034085675653829749601460920808901554368804784678844846785606889227404482338366433739459009392916913338749344318335214905672440382661322811173705829128589355719242090737566557357353230963650879254299730136566238294698316424524924743421599729526960947808219910645320641591870947153195985986981705695183711153985917185188595899734781900678101659629569373646162779183710698268699173536048251265118150464888749807421368220881854385098650538527152303465812866511918404897865980472802212429065253550485681809670421287468933787001797785508420621109437233514075402832525880900572500363094507852377384044025376434802737059241943150111194260732429889137583209111501035294663512464785371473222881385355562037638823182767167808408068868481571747434988225810805846889278256637952152823255430094259435546742844521816729444246481289667063337964765227495945669567273931476830005965768603497259728874426030880702412106585764814838796684289115634586238141390509354311103053061712438099924512112445786455644334146849517690122608510657713035814284977452775846062386484797630252185198688313697898619596493673551700298798468968207632320264612566983769084797088800032058960231269460181521445513135664411992327364515970803003118004041877896833118167547007023225109262390461507491276268455346320275851385250434074811149013934293110509163158099571495146930661112764650715306225480894581583115395588158249953569691043462495728126441370363718214816907936643720638787346094002862169190400782626840179028363216048993465812039879159454411373585410514423325195426320060221574671724135711717960310683402465521699024107986689657875799261536424338822151479637404539340455050962462699724758056048468334835968506381598390906099641779461688086732597384324278412961461284059549344533088983903662302667026591530994799865671882222684125401921350170137574064836774226922110506919171222568632841663259090589512482149778592009325149348129743844001167298577173500240759810496451774834593739068237390783539915155474987366506400428416615171115219013157225114509362021949348771620380267994736031925939601339475565730197507698572809662096594689274955740737347471354823019528620714262776556698507388036448930572500920139112368298857124075402609007338698220732665424840980529548959026604785702846167006724425967122110186685569702472668576708410184490395259240289374391924662650887836140399652002183383382298503175737515721431337341831540166522950801586026833994448411195640207775937079097045126100319374026712645038936669009553312461271714802668900291706999609075970314841828443957005468034360899240119340794652522485187740808607863283011948932109302886434758945017768520503287209743665264142051560010389421072404336671609855838673034127071966830128491440268065452255523516528646482509720728336990560721484316677095154774543654066740715407510082018299060553862502197352921317833476823938714527848054014575582238773318549000026079349764611688479152309036796258844713174007479905762981209108830510283312569976715285621562907227677897332270495511002649548112377081196895540212572885477150580611873125666884320888387012241265138405526488896095004751438501785021027223389508562651984837280326664143911651219831612510341100363738502612457253580390239273350814229643763658920230389066737235655625299046967221530147228538685009612539356504701778277092776747673861086118869940734185331719224436700244129009457191700020296387827742441660379223351998253376034402738987934411435606344326946529468978101830813858986583261684045443151660178369824314059135895207048814643900038136189965235459352867720582992182766781105743803640150198904855729767970743757969444799052366274027437842706231026764761500062946133263938256794737860523580833173135606079551110107960611005359025999799963199812726386591609045022788674978473482980757738767528298888676996014269297743266259030758852733450544173791776311514987855521908156355040261047264149188123941488031899575733415380255356245040319040758159275665145033870514422907589382411382601948404657209043150629474196349070578328959015442806001848892233001704455354038665082109147243655655510881961881459244705161010910104348935766047228205692020742702323826723417534232654566684677533272822027904826730255772278054433457265580111949680996210579386287044732476536027110594225790648106789365686055374773204909519125992857647992656593221944395994066978347191273933147600231830820894570048341929929306047404721095819855673788953298594781010287350124658207714709098857104296308306722919649326298522637484991998240615882066689187020984178990073341456130197285083327556797423634763541098693499629199196884109813025804924305543071622873339895367496899237389179702947242147708272959001805732273337616092454490216722460604293908520313829205576476268452198544128379639421853255723461762861798666279416688484506522789070152393380550823247575275302348850163291065986408422450821177645780067379549302728755730485642427891293504656949618302927136510745661831202460591411603638016370481910566275716441663665646895282337871582764612160995893514443393749083761268057187703982974470686952126193007387786021746904775945078508140293573649660166634129929407018535373134349914637334676746454482125167919314459962837649369711514627328664138230536138295361965810270543512367939683131636244474595177950227427462436197401870148713632791176222396195355974142358846698874237966551049451614248793953391817492959138529223843937658640207633685298021019703993967039557988737527849075582609071822252506549892662918915856001134333023496328828456240999477840972485414356631662391479514277924925857669067256660904529201758536282711601169543267858980285245174967505144316431676455882692378778464221428270510393390135225443763449370494832314740562519475629997571976043184180667437948721617952787641850506073769877646079391896993656492913602016212324014235448846980639136904209696585918793252556206740275569150916906896288284170642938420534450686026062169056601186653575139152945938092097102724479623605597648850763913566736429437365040636530726407148689795764953017971239684655177565197463730011521816798953670113322528899186937068526548360227857154224717545060027733114712200002369658593091121345034004280697380707980470565797502050035568620848126504470764452275883733762376414042647763075802362511729774285239635404489023605506359534210233458612383273465733027408384376927852453721861902045162770572386046624269006216686049366517550403970007110450940974254688198783473632859258009385456132635330101230986567256909750697699948948502867286277546644712229070947811190174594522649274039900097508472345241338470893090109282195948445790400106275430823424837813859966874716697551570735792807450282592380120497085668392691618026856478908474666868901056723570445733163538688501389025167297791807814983219919988229443929622717332042792657398273581635821408766745688437579128781006855996512852444556352604803149855478129803118034104090881959176260259675758773649255991728396940810601316368699417356800608155669656715685359091989819514023789830458734550887737815493556432219218161100205177883941737808174060000989030510977682705339641130994436165268340719684920136441067772546453944630194337882416590651731254635699196195098776009557955049200006487098901609744687588068186921009425222339210566679545894426365473913082527467815949547762854056024412496428123699476756833047166623520022571042211591286012266374186562853748201565734707395597333324182190546739890829381493448450086456268443082320504837790582040479236997964456405323231897174849288963718078470976552328857528009570888696313478492886558331153665128581307521927213159914835658581845337919689124684391466492085552244579943363867831960378358910598582419035463256184112219229308675954090897317301377567433246105571749274256518673017584284751027299416131983093135006982758104773104298484434460060307438501079964465170325399502000410886000302162264539722133860165105144167874733492458502458719395652652790975282317975495060952117832294602301350144999346297004431088477426161656212742194013079087048254127679643169391349500452756682829384043290290402618529378293311048086647511639661812094970721736588622787626383028988432259268429574339014792942324823770746562507177049998977955644284216328488139779465710922772041857052554259559227660587808908288816063701886328207995600790294453005346874677231196180923624323490524331408044051023412501396800512752564909569559192548307265421869218588989797334145009448965835769937832169673971523902916740552505324207871597877038928212765163133852087144972182744319162041714428243570562552899103349832027888914551678905447063012338548812984145440306457903138795586948586491364338071697061738469906061680180491814684559366923878828768953668886427978960429536223982287805602251572007223348962931968733953498436589563357843785369114193764833296151166585624705676867258922704440229435768359276973535141752132658739252143387840190027677843627634772952613122795070235196636849967156963483621524899745731981265109187660665083147216641954924052251873362674987041088858917887784448836412754925219792684640776005604553166176331152264832455805146874480437631102647204343596805394204825853886433399273312779356421600995901329310341549093050504295176837343928876874671573812062305964746630790095839730367821510492856424997958248267942625445586190021857755930362378268145925749785124297612877662943702906673729404032616143464918892454136993539579056926157916652116024891613614371095018822680760914629248635791118918131241537572647785575879133588232232144849091842037663305685413941437232682526278935493217299238436590328313167501073496212306586153399036821151420835735647998306786764048763227137392716439613075435514063359450361216445099275226500055251987731392690587432714002208717871647307981014983087557527499064138990275224995489312152573539432797566818729649746961618752166063324236054264118096124294127748593114166294075806488712458334272146227353974555800354327966536177314655701384539561333225987677800802835672614463099139130204056010013142627716804967852326524221773415915207460712154284839787364733790210356512951516799590484173297737781855600577176476700625947487180376965962681885535121935772545768733464308720531306281438116472947169390058958965784476096646723594576296019964273865231085220184259760428870439175504346827380900374710158538925221757895012830345873396637698762141996583758065134806386852147488720363139804258971511096178002153421356913032712737695202423335629194876841360548705002018768095305122590178755269003859656664238657847473703334242120415286651195419759204048936583628235176994194397572284172324384869092448922372575780248944561129246525467368312902186374774264507731525859757304689049603072941848891372495356248570447364676703690364245663863974522649579099876181529246631867179771980269848396695773030515631095362196173199775156944724242837248337211856918358405957571932989000798460351660189179795626051849698193093179679867471736665856404454039977015730689759064978146990616858503580536643756559304040434576569516044137973592666448226865095731977832242262911816089948487869670282841937882328281558672485380259402813318923264982673537518735419481793990476294773459841779970482340662205580343307153805182840971464806881105305377973338980093623314255359354750739812966433982521631096842745892430659331206695951639794352944084715339593970765573277454758532592876107273578907592658182351253490135549673248651958377760808024213814888686331799678677949053921872801815763123579876754563880421044646577481503471528378313954454465744671830302225140786468100959582606820596636124188784335087398360005420470052403613063601014804966222995501489773472427520804846983104002388258623507309958904488186034473758613084650045929720626684919786937398940033959411727748572168053127419264634075695724866679396058388899856223515561509571794036659162380341397545807042054855849092747588044992330415224257995054970314136289603019685320509008610316355005016255866293863062280415484493389481972704347730372137670905110384696641236939120714629074085095546041957318925786256754863879693394417892337628809690886618335635251310068511438098980979286346087255067130743883145472139745431022434013983546318672366902393688606500218550015932147802078445214372299713808014235590951527904355971160788454534489181549521862799398100916715819815296637082244162641045978919990034377281768503083730829044929497246590569995900775490730989842838527076071781196546477384968417673827252884204826883593472568547303679632023341253790417809637152813800383882515616311926245100691710492013819635692756713718360423983197216395706491856468912541019370788044138661817479633559317165923627778806511496687587202067415313585485299054003691914608721135463544317997111634651378856089578159436566233300620659183033000074645410568434441460281662116149683003152085458043986222220359781248473773469557290276818362486834335491915491740921674793558412727075844509920604903969155392388761199460183976560288307003341285249517214611487786194136090721476393598868450685851182258427614628085681260184755982899839756531652185688292997911175872989837667076890118749309546583201321799637012095981942626576316071441217040657401433279226316969901853872814574626101082901705913864637000297893304143366408681796541630475271244911194142385084580189810114134440683692309065158859691818620278384814306813919368981162302726966343123282888621471590458464838322397683908524284200875030099579463117399116031701737553110476582252796902254462089309252325942282419047958895514625749315606642409475779630225080876624665589914028261423901620291007069534800099277317342845998890390543029524588549299997685313359493297696341826998332854664938851130908497498047263311677332031297706662380883229160684506726601983582944171169495218877313102082217067261137463589316023386976316452027375354561181626741089948895350269055102167684599351158207461009375353131133828512422452157140592088611940172286024503036268882626900642037676145858807050612559563364436232174634068603423015011231555068371704348744083740837892326207926832083919563277035612778079789397134702883104151111996520100394174039238736868378318666966277768614616837750650093214164654610533591552082285209902261600590460808408553229178185640386169258887080710038418823600603028639023776276354471524624661898424436705627436957335084413307841836080448045334719437247669220614431732224686506021174718149270536408116271587695450312940335633449126497837896577558729950579138743730512266356629932222477041597230341020915119040444321225273072702796992612783417120179682063116544172875795798008047792642427743246790701826073865953463889983195507293895146750081904729031827797572754004303346641561660033472705405483823466865660214051513281959954197712053568140992240511031271455912299482058408891939967377196984284270004633741752404464725779158075556529602818629131902867964821216089256601780654737112755292649903870379680215761101317247092054288262516112191114798996958073805000049946848700880780181481683207427368124021875092659121768350644334233837908040192559172711115347197377144015369228100344833855534150597268723363822825177630802817758612739367405759367594048340719858090085718958810171026057331872812973037824505353679158507352787429007179925002528002773306068840467368167182855112953518114872109692659876060795163833592879678905302271452321491335074866530503313968505700866026060236014984617828767089816128189586700495807663203519520514314013305397394578512668986582446812119673921984410239548684785258229863739833646661676416250303511046031963317893358904314124880099815351363234483027729487859481333628591848311623803278770213582151854216914493656631604738170949588049848437139849715085380352929142946862577752679602372008072900279563527849113235901108984173267916094399767925193370661795506262163674442525630034820364024603083061381205196617930583491262400469685651327293888723871901966011351218347472718199934088987331406099656804620308871866703551774751677446905388062767494591501087729691226182271343780548493530591806885979772206147163223059617754253343098152736015771025847758549109033864807736006481503686007400875973795824953131415308460262220462864562242519412976172630443368870479343687545028922065505931469669618117160199788290257513165872352146780382335882583317070078002838347912089554032566568556872203847938468383764920853121091456705909577325742442768497421788627056390678645695293795411354193837161592422989449479803079753999706675627311562030389083121069611868310694309916811821126817356305945587280292907390671789276040053711269550352991436501105564185125643475031743422648659081997463983927395629067783783695212232871849410183363435794869924619641887238642839624519428484745882034084644644709133471465240083543661280597028578192239165850057573620718990158265766944702446977138825192173194753113193777623424686820136913511036724220853774062274043811051269427998301313212165374958141431185157694800776630906800836530220990615007380023339363390276013359168151975895902029172842671879046393696815389829882119429851242199457973603193243721748888347266238575351013554054532154376399895329027760975124529395093284467734505417610249682572429407405555518781159466698610037235157745671869666831335510356596263314734767983307080603813475000096539498194798139009855234244409275444221754530076434770602296385952190667364976784794818863926524655174256987022638798283131658332387058864473268682729166042768360521362793755492866874703346504145413642139025290958525309744524954817312006654358714520210973672169764645298216884556435660275899456204836258234463394407121227952848869627954780397092389769634558643037221544696380656463911615423385964188693827411527448076342242682093629032144265973928204499472343449606428415207924958609638562186641093047257982833496266964145141933867966587402921395153590790951073713202499955493631869668094353794259161643395802852072657910529598730681820858250987949199133552354463570025725165093171365565439230326419407566997385715349000538300444172442828348698203922934604336095520531117691596571880858144073749949980296386954000272079952068800947382338858220128854406755978131158278988029891748858413821310671110238388830224376351662216425675380834793765988716347913694209701142901343307089752472465598978896023671883234168356595563167509100090986976684155694729363735539610448612550782140221498003894131944797536783084622286223001525582845593452881958819133197833266776821936883229430430123009973405868776780447548479333016564898146918415890421243816466682230654479893927949419011505193376377318876949667881673935895821651208799314186637225836167213719361032845559814104822638839984707046344871849974790399896210407988853060119451972945889910336510306678327568023563733831704959184047780604989038560552822789695204655879049118879553345005821830535080216459867646307525179754636161237461500460664721269538186514308696291749587239544781424336121687949844508170437232493563860368167470587112274127278290497728159877551218562377577548779469403180698462153203576333690650997897945702310233470873844186814158223324739495857533386260851358345943923897844417705927247291440575526961975611787841512675864709828040424201940731746271420853233732027823230353088843082880969528986917461395616856741794730585231053543607532182318148200638516893654278090943317898001571140354340055276382306170031341802887192414385733353793324925723102670294616522163125271789920536010904856607596444326347434502496822580627059245995521860444098521481868676294192877187647823321175597652696997034502703561945414935973887058313106299105839730057163632811507206415525980370662605385587877492352351103678424790613510310572246705252407321596991265487010184509718428153680502481190878326233610536590934616911155100584830708593313035694324081908501052313396968379084361331540865013912971981683526526718325946458053929523738225097238825482546547161262601509918493807697773980073284347946897600664938793786004004767056295199604399634198182218109975645648713417087091997477951155260955321750424396611194946033699461630251537257647066864798805248878303303787106364184927451800846705726868916303097467204130567839196271721813071290326726101377283780051031640961990415274417718289324914665991255746685374502617924496461828019934836788175495564467694902215563646516642282917989880784929772790549012411035117839280343774773533757186608157010628505846075710046070873385538382054778703333392348875971627816325791178117723312465179192725582287091095914314302163082750808700498552200309421726303934900071386116271414704300974602645430915333593591999470363122462232576923977354233954367847778439744339808874255338290240197983951844884964243060103439695121563327910370275992023537133983708758686613423949311655546831175609439693628562342393560550300256213898515927097739933673240639721324192174515034792198442723518975506391019066691121688039602631319021011699222162536548378000849236420004521275687254372193267169320706448109012677879976028021855703306375623838701620276396703503343738107320966410545167899529855723672581324829949336433934740216484821820632322362656676464993772537839978080428500615440126204317058301946667017917611749547001861904719225609278326621664407814107078234970748777622698424036541504431464103889244790618294549620352473653929174681930875340957066816370248250431990979125265456254874744668396230426854118221737804933563096599490576783077071626639255037327057241004470208568729795811310276985750719002913677654001063212408113640243281342756402082181821476583333722401887910325426070812731709028121833786154348516261336976792922712971377986682589200939999177252705765586267227116970533326519540648667680927546244307922622310605251801085534945225319055477423604356576977673839683935645054760380890289331693498411905412666849839060229601093723339492909707073448596056808137465372438032755103414924672431828697183508077484243621372135919790479869934596130797702570134478254037806459806479481401332914000998992399765282661311356985385955821758488484429199378758139412617949528590208114125057367415221522870817862697935824040634675544459827621992753560725907669720356771630250469745482702279883240417697219129821819690862806641977568696335317971319466222380037099123849041729647182136659868476964752752421408572306242037771213625198034483648481189669314380509560948505075320769719364427868085897876843658791764852462588745831868088756060639093320819396697076792092691894983018777064847337860959725207834501541608224186305931310532759319267761297082665921375889012144382616520891012975202547666190308142971062930596854245942463872686064580886282498387608228603336450971993298793738250106575836956084125267314467372312856787131457639117115017199152220917886212771667344021333934612622153228528699964645234803680765105522143007854747875553780012803586267883907731742701241350672810513507626013261004699003522724382146470665827370120023308376982490784002092938993692284457869765002511616007434052788361977949395711894512900441224676098326007050395260910925099535945337677353171805305221967535087590404868736228442525721414812721251884715520498721367226470105689666135056581834461015003395056143481565486850699676623106440236815928378308504642109714672956569530317208133570157171561119098968535015894346542360953265037080033090056312904051150857656691896528566495986907693600480917266313813057591392954377223424964463713770641851089417373369386117928693281130172078774441033834871461621130042991841247416776631215230102292756786763316614232760144898265723995721897867603728681637731820891016735789781157175042210324159602774996365308662081427270127897354325684762102790116651997647979637317159356255939080427018668024263105903313092634492593617660721903196095387996521528404773775171867813602558675637133406626534807789738862760062715786765755744472400312307830949852063398065655825434677816029577789860395015214946701683128449571628412412995251517825939881553283822264791052728066112254680007518498310994730973544144141685007546861754985428498889408066867054045137237887957364173743915261846293888721996451601974511992758261753327713075125334977731482258345910287099509194356599253212554042730362735122953965413085043165207142911940369779842314088163179421059168261422344946263663210630109372029009067024744871443743434944369365152011144633874410518466059077445031759569138360496219155896672413020954368265028070302399827203773460755826859757367070275850207418511602230302755841727638758203853655898274321056728015931407141166856936022263121437292870744765550193474290850755835142781134029263607836878847658581795788463387916053852372924725786140495769981261222258601580662490472114250011877254248962284507000788866527188815529067942724340626872990563504716750085241327753709413169674596001138687152498963777844610537747178985731345740241783605907482960252817660516880686358841814678037629185666340497547405827215684916162955555037854470953778651491607987241170638552532785833006440371165229552624055816488210772687224579410408499091329978853534533313850776471761160340768851526616180946318528466596932608016254527466181095793920725907131741828203442947585520752091245640162245810366033331066907511436383665825122573814025891221236083565865843100409810333392660157932945350365796112951233559988876072431875796683064131858817536541773661646843393238188653379058280089392344358069243028592735246346581705754263575941046933705587954089425426383116457521714851665760366395472597810975348260103237176710801657423904281561406258063674575978042074123975236922436238749636785369237156768377488121881226997364170695125445800417234951953082532649547270349440228488423870144162895017216019544714829304306679348603840134977073055480510729010712276093561869570366450624481905730507369294072877439340653867319127787252896348768623963384489998682340361446483765405447309243789894332347806017391096797316098214784258230553765215715210518655566389111212972352806646421877519656071263869122942535312887497627176682008011545470335974423452607628052420492902191160656559886177259691080525477675896362003703240051187414085296287116221747911109320318677126276935471249484208234990843027611242136932835348443152131370134811567397249276890875187969968499384658232345641585591318240509658550686361086403339816600339886488643782729686601548584999235983943933377242023465858645487975459785690552924587186489494775994290497417404578471257615491636179126853265285060482634585277910509022644642223735872073871177257053627318165742673120702536167115213677999441355903777834269650069747451800638197555672473796067309355490586272925965557145563853946725774096784164724825924583869464681349402809421849420711355697969668909433325073971302920456544295284967264871236095662454571443225217658552692570787717484816065940328443907837439623318830154195523181471277020421222394472659645527324436006179640029195010917817572271397832624546975133268415301785495302375156164523919956542397355945433817158865595897121733410497014185160918436405586434644980845867164641126533130406915947839970115318277179558577973613548538168792980844571917158607387069551926466220610792219121834380910499936459876400557608280810564955503383868924533305947105039781783553963461434842339001003330131355943064413012676204242900727029118666448220336864447352632896617555016107413062273082198017861765310732399918116155422268923922541368509097420266161246407590412946770061847232984988457972956100671237523687869114265127923800951263861718400559496623395753797185827889567761950541649423782433140469873020419226978716875471001299839489793624226737692011820775920907666354048804833459377136340898119983293146036831807685051838952384671456977528189187515110569149574968818502204359587970616831322733208216872629232947147024572081655561098449357299159347750867133199705653381010779949628076316840642028605741700626749407736439382946533277994573118213166358535537684621779130733694956561720604444395197099870774508166381904170064055271763091954044797740602459585808328484311490376941857834122403911077440418111864494495284025292152609635546203502903816747304980074847073212389220002619173814448846052952416267566606482982070861107366091021786265429573820791388411075792491136292494390929118598565811943039768702664413462812513274480984944666318606812283068687393446318839915075494702163515559508718118854838812662814847487342155462540120549498624215109585079557001015335757830482063236511737242142334282280590844025566803255047455415132561357046692307470314443042746377036768947224591415955522856550848822703311132552946542657391186638151711086965305381743042443633837091161963826854060284774951456321384591654284479668435533645891496868144300538531986991901335076762087553138107326820657149447629576637934701468039537370110995675530402331285317254539851455604393758186584463603823367218994258155771742665302383975939631399362384012107068225937042847455214695700201275928179283047886033131865299209986082613604089150419111419229030981864197940284306183260567006153869815151540953791562652562092592958676102042055381715120930288253681509065570757274302671796867232974170151766550810700100545193590483471196226292286986841911802213530833293836769538212995613798149953736030481572390549574137201798472234333188914141360582262597957359884259753065475227158436269741593836033558292572609637959569466634029056692242014030503631814742887869848064025756238410118255199980007355275173378718769785601050965468030597687503971247789482938093388371226685577750736593244634239191075525031212693004132717111600897053076799534722285678218965889612838376448440379416519693295502069363091868396056011412022109660671300862303473952311023928927756235851991037841953491540647786436479868096182133952699314915465465089677759405257481586964114459365532603713843356719344706731064709103645583334947658214985967286467088328461752177319720128329558095135459332225522894686647425503222818220514785471372343788999784154776734639526369606132237376456022829602630262514658211580751218232975868531773034796449223924993712814106419108445556723988565877194812542851010003249544177305731841961602105049604461134155937570727455172990965817750953453359394734229830359341041556976847106360228694615826743031392818711162703640167265879929221720101617545327196822234935373140654724280077996903930350197952060109239380682173172995771334324153932366059169836938655131536256071112987950274132623331957730329217108986028589946618751882892619765491194079284619960288980818019671688161254274958131471428656717542565572150490274245861092652077365856439421125880321074028500297550924126760194055050459629762201798330831931037921295238903263031410353605070769682901017167721616785909502334381916379679740751677974008343861371908113477775690556923750230484828770953694848941286010879320289048507015820008430322317524744950884246137408552404634006200411263892723835874201226659779919157953258603188158274202877916179277461313234077248718804505529286312160159440490847306606795368806373715757560186284430054912399855133240601048445826301812383338499736574878239651805705773193177436993606538088204795720709427315799882329011177704442194052778818533325109731097669136765064067323114490713574354910100191955641362433709260948252973980776831953643439577259216711517460767025814756666953696277779425947786362813283527372317196595193558265235753091731436979486675829338624230776043789038565714082780261646076758052962808218783096832493068825809606358604027527130697982399988310297985852609837072870795963506748239390439616061141648493452786848386119851568047435731909349032934089918972769771044360734528021396102948098154305084462493778180315314193925743901326747227205069502058417501979814143430788594619442168728556876851096474024917266622247384661258439613361459447111183984248924841640734049136912220738514268482468420048783613409910363825952790167179641742684832722293687860888771589345365028319162203029663072517588296985327796828298852982553824392636704263248293963219478962718879378194576029570215918293722808603739034663595677419364878955294323757083560789423764858649010137341286974882962459867662151402055050346515479948172096998734054598068258014438975935479263753745436032363280973531832858946960771887569539495917418602049996034373029230552607111416300835236242866916261615282922110494124200680730421535496985516043170177402230523963782990441849793710826998677054803636889679500882928900023385919692174955998903811385474622281020259923031144144814485905182767979838551481807288540267202365217541722296180589329380294445810991722616639077624000291729830351667262757713318701524076775875610978011401384927873507864816918180877966038147636598902228570967770882852302577701503078977579311734448331610385962763965736072308600992268761529449373560325724989010527073468932974929386560058077145407762142838317101163143976400541632172715896742463351554440295729038211412562133019624451301492904930128486951856788919366544995321532630992643451678437932886597401704678792653171353492969598106363674562378468518701737729633081832841855409774245721537283827538916611831273510347535826710253772381233530098105424704886425965145710558990198218758577318257447429173772426871343414667261983723499094524532675626935217430285620321913982732548633413860863525872579689857591889468299541205364668137573567610552346167093590463378806462218785290206200440273037262800982040389692293764058076613164211666689046252195700775302874577139502410097140064145712199368848695617037718783445446615213910349591516261988491667430300555772149279149265763021376345254119593574308999121344720611663247073673593582221479587505195411937847699323453264817429925280423917635819638889380737970846195824003611933199006004958474098050985942198826871118245146520285887770589592182689571822046829095870361525033194298313845053460254315321519685215617401115615022468531205648072947990466501459101357726490639012311230452586211892249930624804839550219419386554320134068776021102609100910464575831347450445469460679892082899664327949318087819770003890744732463034224257717976844656687590517359223630618358176491802085524400007065222686145313070558464740088624356700130657542432721935642769155275891754576255204324806623425287386748042089217639493825628747852848847733512852110598122310184525922961269245401581331586662089381928032170161794702045474797352315133536533193117214669608005833808243453652023912042755974212300753527600826366005398006814058439589951701164751132572824839467931550646297871576614562836736110576137685202929680909526662098492331691805928833808062416234788259186783672539583014904382380610785877234790103363673069346306793232863237671331051945381043030994030889856529883171877959279754252233927930598825894269263190263977613646862827844225859684928775098717148330908788704490793214562827898664124497126136853971400301926712171541346001254450336927754835931350573512585886933228992529511832077485745458638434303589121184253379316281074615496760289533796854307575869507304691367030287769587594403831542069516295516532537222417742961009374415643950716160750924216262420355183396007304496149050343301817018468449305348384143182947071310869314815293845167049348356342145104907951726566409543433696082095632768407837579465395624560293412831088340173573686225878227119209721124795344465006547735318385393159957153857028514465817590895554368411540684239931886191690117498319702881004718754342909288819349786228818902157751212192231717351691083824377421694641963788474386405515706177168763789109901408594397661552153995743782754135729486968837267152509799087885998934250583317220595328608854170019803903083721315697270983353116676082766934148418351787491128730726677849824383008265697244328412050924457573377261794260586081726983925827881444361498689605001299221486873323800216999787113394112638732933931314682812172882291914739466180118092420836952045808409185369643204333507280882136339897309674689606646729809614588897409577409369005712926152272357960669623502649876110642991498374632765205956767115927295037046173583215769572475335228216447601202062212027263921258312130496076628818436303343458949008978515230068097249813580851033733335462650926405248789754634939016287436654879537193961360593452871212099322078535416069423275837324522202086869885983633320514494895337091633644415213978725923477206362115103074704055901461004896716618743686556131408341789407691789796828797142093401324706084111887343391318892358957423796439701183424647337355695173240455560303435760900011703704912885942113883711026313364688399660620596667132750209258113842021317647324082068124319316887438147305501940003050937587218130314863564700262687421893805138194197477160766980383626043057815874598012582413284946134666131306630251663664051133632010445159869103276589481606763222403565186774078426812074646757475824721030683131222484183415824360452195369036840879466862872631845117213320298123417265078415710171185758142595518662623922623591345947686744366687163141345604028907972955187404914696343191777802419228134256131171733436648741054954164139900989434620646231863851478041897283422316219730872813348913246813634141049507296190756631421713150653970958608629971361292553912412963358625264781520964308609005146351075968847489687790494068775563027732075339069269323090286100294626468755104436930771425115632402579584114954430133477416098755223813197100395740863276520821116518659813089668666249573775196085276682160803629057495094505146399841644290051580500711019268748095111410766195218100842508825271439831199165423189542605833312732857211382496335175961283288062354946954636443005322789231804259357939549271428263503645009319652827027028175395766340165563105714603581806004685971308352031956647401997857805733422873585062023739243995581903883082103295572847524538013024341494640152836529557822895388056945450671515560349134482977361781543872699030208932343545019600980442457364705198859081850193373112739570053494509040133835345086704823163386521311933635095876479680149138522146227266450700516969330105228109401272025846389235332467223984473496857267306140886349831152956416403076117317557988888360313092662922454754951058988400718647827600192541375918286895231987625478430995239032480760362694403211178198922726911860725002642511006438636279604720620545808891847991234453341460882194004245057422084750511698840028523915154111117877209738834325079284888631985194812658044449476540903132930887248654164825795355694078336270915579724992051128808694456253390037782178526143596633107494470535940828401686147438228867294780298365581413053262679131642589962933133885741581736096217977345276495339792870918064130752720877517428358840126738612576103229948066740636108685628347916788897915283868946921407165031942259973972834365236787117957635720180332668714020689231167841759543492792619214004230173591858515256680807856290481776111956859918682289694616434545560315130453473728076866565747490099985337335560553725713075346512786002564300398593319538222346957377127853526198006000056867163041536593718963056234960378745821130859686396087771505444995228366722310819671981620461012724853237058309124729263405494546062707923668575930388489748094012977956147825355114443273191706233473256299139074242096155877965205134635354937902108483035945020890033862814056069935115909868593510374888820262178403160560763558508659474895148796317745418718152416111885723140729512955365559244815636798344159790993368328023433502212860927483830901482068560098739561316765243418495789481793471077187525392623298223970078445771246295968172533717709228345608982427973493809740027059028973397091626873365657665124650352530820215700511734046928449256090418962475490209763799063566732409038085790473055529682601631133804930415237612705807071821102886695512392733512860165921092835963415460566977885673348592535191466730436552253539371399851241764343697104667085589452939357628482404186630003805342783667893867235718587430108472345921578891832863057926757381796522622372588167775542753177567606427742899060965850385227322028677113794693026487762093472097671386388208100434272218094794330723726722357165024468750657761336120251226754282473130098596088113727412512789609556075781106036510792061878996127803548072138438783852624188742193724577262702116704226278379024803676695001305963258969821295236926741647287902182223468591101303072221487850111959262074898935647173555941208200332419635944912889748464064748119340810904343307298777479386239345694889038624804151678772159651051765889899860957370176863407459926250068737280387309356911213631485342911921118346955871285393047594489998307213892344470012552135201391904049191288417562090593153004222288910852969840071351971583998942402375583310702296206001957516134461362870846075081655626115109597326967646714521415055033828124499388886473667786184884097262992513854875887260523189640079240676865584583966632390221079204718563777339917400785572113058033002304684582677751608970031048842434987664234631641670369103541339625834202787020736095959339543480731446140080754115453535934698083761944850201398559325343401897749120923830340742939596470605974168557866986233326947354651189408404705031585814430255826383436091284709860633327643954777940869320488865947278550176461364721310701861585738578207993656691966749652038924105432418898629329468191995323404950851585111246257777704095009158288229121179056412880202144722055469098987134544843731248779871210643150696856297080433356110810944368026730603467688508825426501584361625293760980034810521064215392621867513037149978889399644033864356538914823134777561194324552797618334324228048554965506586510916402466345365612665621659433466259647613078838229255893050482589337246090818492106583500571586362660397931691000293176307336826450278503245349968542385934316130679560562698501008030098801022526573189534220733774837748989052148164542673753307936765745613185078141750791069870510961857344430041629168840963559815268089518140371352413051598404261906746295859033741952636654123761738393325956537297599030219925272559694337792342924602155859752370233581170599475690584804931300023570315029831281099763934787362697022501058585606223173130979596949092356882515200919805979293294758215613904511579196938285251431834480074570362903899710070855475470955699716329833241171955752813517185478249217728825256996305943554824199427243992810244338519971317679278000972919839008068736114638757864506787815452505317655960875853270598778070276123997063005010732980956645909368339873612456260665209647866685754544575399683269440822530857788401109869539908295564646095192806696567485858928636538044493348509069689717073627922565741583446659972364672194314965518082647823446594118305704729509923200509656335125782009535433980793725815418433016681003321384565219685797348648784070691297803527322186970949013708385869063490701836098017050058574380116767900835125875767260652712459256055893894956126972396904484161091352294938496666074136519594801486212130086697756916068607341606138812774770488417410626918008565843494630355894040254969418678196857480599501697821564426233040709738774806887206197935786865650548870069042283821581639129110679162594129356813124788851067501564498969679283279442980800098952181201191501971917918330958956264701282126300916182469616212784445134165626157415085977985648986187055191950063244077875054279056917905001231835315529238075926876688812692097222628885364968216979963527692857917650604419401236488260366754507262556078928177622755757310809828814700194525373172830344702002134861229851574776615134024561942160712179176150805503568742848087070804953523689076095487899521641361400824995370683949517755605947243352238835566693860324902429166630380490477608789339184395174300594760254705188141288368470758580781910904187729467206226097133767561025317480508291360506392244440858822654603935143269956102566268530681670464111449775544002869527229351957740866354718212083082193894145594697106818944328835983209369262230754013652901331911493990613838893789844453443582195828944212770142272486417719950466846131546269669968366023971697444908692740717245514861420282942921236808074000491967200450721984189892940471665988354608433299825245114933782584123468736657958727933422551796720585849663252917646450157918842056181433749605944255646357828140409439909633045499494451820002289087773768596632283429787937459357091218458002932569860564228021815723735503871584984544309010672849195064894690445346687426627345874923554568906126868809822486723154556577867326977570129496843497555176005262707854185126557753310281343450002161749639542807000730155233447201794053133303428896656224127283869810349304466940517796276738886186833283109727564549346565767835403596453978721043043927959078661095547470654561497465185897136703353464019740669280210861034898769293658223572385544693190259169804090817413992127670932502449367503202630989450403599104543701706240006720810122997315712818621806245511013549950648449027774815953292705871821560435050237564542321793866033063040009124517276881355991204371161753372126652398695456661389589923403069721683930029029570174907134158521978400471227301389399585531884233256524100577372629751469765380500942578062136235629516284630959127235434506120331513644956307954174005175953032788745021122908468343279817813783495578435141586592068719839056425195766898433805338132288847096631840850941732232713411669948673899307772369687057207437687453072745345119391948249009724782132932324997670605869274261963076364051184684931448642976176537575850682029304627162043247422477231155010158479366044926280262813079384631563722510587413027768244126445226215161514470427314158796224224642498579056823291775287924214427127506975652204034263408693549210800265621242248572429903738598066553726196892902467777282437012034160791454179963353522877176587142112890043905737891809929231323434249956881195335390969039177005514369725652822734172549364916241420990289673228921388452566980085141047140008114636127023259833863083075092771878676353759507047174645361164676460652316591456452696385823514431981160968702095487580051097739148536289317214241064425216920023520242507993194877192836666159610097292095118846704571114136589436123885685086270228984370663897685279621322368843821140435409650191561669359672129468699079525818754407908855311118554852660718304924859718202536254871355033550894317458974735136117231604407795018778984505157606864901722287652423094584000640612253877219543076170542669207303552697577073397794016908040968048585234834670289087222594163010549905375418991924160771131168645913127274563971305063953580834773120848917268200241482069940585371438340928151342993377365875808329569320907754950350224848868716089491384549070887302325888120292925578672138166558376769824783182017435543944403157242778032714674559728415087500436786530206051954405793265870221936409993089791093468909184739964664885566599123487441558000689834087698594757389270299050329943442704078432703450035734304588782229100369565334823655937080506404932249668758183528863421046103373092993144234209030016133423245978188540917572757616091601484331817637798914314993756227603718821374643940902292722665930154637381578783889237371815867175994707050031526709008408235438289091762328191459356500245524422597905756294589903289058223119298108914293770911373549577373620684214854243917184029085718768584922266885494385113764623997742474437318015385911249585708623630619525872012837429034382409322344105872261099048888378184847213353194429096579712774638983074054015491070126156854979916347863907291344847237288637285245646194304350240029760604329951536010849451364509661981366132987862457746383675741219828537411732513161246601946384716775505363954519618947911669356332877137426970233603922223215042036064454505610122083491503039300286146497172259983776260520433468685497783546513161768499043012907748621421510462599103495260128931801811663283569043945235668959765608468913524868966417827494105977899612189515578960879982094558855894063237971020671246653940783004532015396019290842912610434699995422662200590017012926259541854117058573428497076701329222322162814916670717593233211092453819229079962432228749444226367514470862397249800436217202245243105091139947566532555137736360640194037873511961268015889260311618570080772013048814167354255590300131892882875414821854791307530360367875341502375162947346830077285117013466359760162219495692526401949100787009020336669924856461527469983779726787622232833950040968197814208585848995033683114889243920428980096956887049816661616930293288332297642687464050134078184884382644378511370831453833258835603122798412894268320539741288566628431934850437287072803432793658752873236982335586033643920071571857214719302747622705802057853967449118366039940535202407111793184999454452356724309275358704043482863261295509664864092772530822936581142776244868082478168503897397759513640913838283173077615696441680466497576403657330642331256811026532112825958840028151254591541611674477773148484950366494072629684408052276165383940861641297507074613030667410383381749369095596379494541456810605207401637016073807453342348852703328169221907913365752476049313947116080427680915814396940878939908879543001382527292442143059687017908247433888791028019001159815801732373723731118423596364620812881156451139879591365507543519518626129425613996308039685795915273773158968628975239751626590179501741101865253734034559413181643351111185558690559657063138054321051406936594119874310674952637972291866013313875591158731996496109643466859056372112460879114993681646287686656285338878090880581187128373940114801714731384550205120796029317011049962496585722471886711450513053322816855804190084592890170823125301514234778082453306713646982196578067396184492403681876486835819300552759652681998582858236398419571871549894801813439809107112966310926976978970451660830787854237985633120095078621567907428118238240154218377857037284999592433837805714373993932335483764149065754385516156075253714136398340283602100864056084681343899693613626914041708668300757280618552093238558577901481959548274859593608517330591516906766356436103316845102218606885812447682547168073265940019999993361345605261059727091764815235839934330917809202810119212625566485540905681529513440594181186227971476786591890401379615888364358750665962803349324512387712982867502227471863873748325732388794160678879692452896529007735239102036007127018218770431896328955036297501548405961938907394106427491480088375847312910431663343698802885387167497073759750549401569168642503624046547980158364933435061975359830838000117392730459194703234021069668578852551557724081623500568649409647314944549441757676806781090688969537305769303601210241170149448771229157483596337871686983966654258996752430962662604102553944670502736618736814866102033295069542492391920684458122557212390606044003422707452077451819290319947890759074663293103621270911298255215045892672169372936221336639907345720102389306228644218503375567100585067214133376315435873437450874334178821942200741230652635955973759392071605792176539076968665839033359592507533009029216173117501087848790150633493778400502336132036642689711488761537832757758178459840743302105178529942290840495370969485736665754814070003221489764091904370349250193611493935694485829046526630478720851536557942031045627111112166176860707297988883150611435541179843562820212216631138827549064674762424707163463713817395668315742098472148002440851458431990584887113952618338216119032326668177854759134836812834097385387079538078567201024968267475822133362758449723454286365269570482017417762911121569568459420861225435420678635833360325086273820777448376899736913742072731728083938086570142365114090214431388720579918877545912795558181014128684876308449065319760682769913371419155585434124592272571937450435485827333549289751375518875242617513222189020923170563255317777259336768236790094044821571879788587355240562700701371050540670718455709865122288477545902597718445564003654831074445505781145014309234807268320458342613396634158025336109393563277016133057110483013226393812117451737723110868509230749459378236056346380752049842164619868423183641646254632270150789746581585288746614291453509994033490715655121417681213953020581167325038517871222711734910151009658028071674761335748891901989889438176145306134737010917424066491474343544627645254878540360000300550370019254068267041573357983230468628291823008508260696312979160443818897569687358680442273548198466025036082433639138381436541226279713096059919457140455807982051255261639416507752483341180184037942693598815047772336520971757107644785344019133698927329600631250854208045324165549096873034951516918124511424533320512427894403997282696316223419362742461263427665131383459438041063361048820222852047549359895514596657928401418462581961181934830859471262666033370382192896792270947919363099456265354367298563376770667254219733419045827079589269803124096432127822288083909340361126129342995976510472149738745938461623100620940713660035502096933364941181824870760674746340869235902494805519753686464964755323924613071570444209253039725331581731694841871138456391453370688915384744870278509753742470956085179604316191679675102802083724920502192210971256146531018291251001746585160888178172286116954183909750461751334326268377128742698530136318625020787964573957307671023931773173615845461381444976449304672392738644193585388144078355324458718797784751256319512551995635335058457635653270430339475628848464032268285303925496041422956639662780309082195734774883401549758285398273534000386993702245647635654284223868866165049393137712773056416717587188651000091894896661910504645977367031478134700141409876370766901422376376202523046281803685403357220715496128226744081319953779062583052926794233240902085480345767463160317395286070142610320958917448701851662075045105893290000432790247414648214534377116507793148336177299534630324680523852076877593624978768197427007843641644500742579753703128394787697474533265594725336075426982438992993096357113049726207366206980720526423506591229064959772560446121150009887122928250090263482000944799727661199780551854362824986080651514297768041807806581229757924067328680401514979311129133446173886003530858556797408387070615348736461119646391021360958733645838387887789035565305490555065285616217405690883944529344654565239012835240893566253357065288488187399989399184218861184933603522571945064153115421938905923865303821173732750492269707799123860994002799285855195656303258277638276060702745999283992703799741209930029906848137758811521027808911184537172797422674834420073405615022597610289631899635871786264761204242503838709557367018099379078196700586510947321645219069151590377590827916788254419192198233110233018530917991623247800252985093788839633220084365322403508706249553129650225528144283923318899634306346498214117078607643834087464448158589208801272409310567244220011052378961667067425954633476584718754006802809626352143002966941568640078979327107509026928181136792312792957596103257441838784232623438802269483697807452964123912140828226023336737252206181267751802890358353896323696410680933972175196602570230747271270839873654074215434994176207478492183845489058357767075622305207229441984558717677466349353870560665360763689664313348666968203957626245251927745397913025333357099027995570852667960269216206401628892661573602196953696735603151922608193125068258631480872483169782211691489703538741144344505935836874646165460838650543632477168211563379884572974727753412462123183005749650277412417664618225330444697763208813735625558551005259191181320628278747885682767823250982694238043501774699487533677459188204647600893648417315395673073790694442455560454731622617126191351412419831837564885257475849202183081903952658115568261154227720647705817407255534638598206992061060201825802013852050907284060938522532006492282585182830370085625264221062791839829764337009941753259419833054236108455439760619709883640533903221500103832093934593930192935623883451817828025129036405379195631010020137704270201832869081602772996902791544413003385921681783180837693175465298817927797475720723440109915852202151573152604078274153838021501750587035772360922008185982825404579893252133806917907899592341094122908371621165608197309816397465886838453906087912934772734380013484103011339139024450806079102134210839704154272625394806824640332614659414829656022643315937906642225781923298296232146722382432156355241990213223588678740169440009111733921912471180488998708525361952701916637327495013491428995998764787544103275032231705884282912175651076515853299504123683972050765204826797279212792997319571072856237587734849039708712160784104399123088626787733325060812278193430248629554131838131062292736138441568821605130246308137811905103389910554571417711374520743112176482750985408821837260329282137731543124593223855934222374377500470374209534829031738273081598377609155077217401680257757170219899343871878551479711258728825343389155922258994030813639502091112967705764820790250462965782406287211845478917044661113895754920167970612569851065309670320916215563826057461038953047105310550392271533673517559335209473123091262839886062607696479995261978088813906714850777444306453576004614753122426552789727651728635251963114098859288559218326576063889231566997113427255704598346498228809620167941954535698474844910130861337330439743211239301572849881206045959987082048026054911056952466261439522605205431488827360913867887657924241773102716311715316267032882617286434311617196495897112766408426380128626897267298159064297735067554604002289621952574331112784928582651679513739883039341125347026902240679717757532554833833026203793408765394531310883052855994934255311575891315262393567648300793500411407212917430642292349217370178906928004727486539478119882844529199234045976081465380125324208709942959288482017379290741992959549380988598539719752451572665570520851692805310074255418165439233761032175232934489223618693546414241723118958381678024491529567170241632186740440569522747474463147010647356975958566674672362762685858530853483113203311023525643404669987759674186537788906543348082471632017534103281044039911652874758586802227983867466391029837886274867057096472041479948799328265694672902500013141216603712476235474499492022860553808339642027784971910707049928762404311976648586554293511292118944432969044183336834845032699074209970597231984511480710168527828738851050184121578781979816855876168992256603975051237769887020559736541597258785512727581956459868018443639679092644032186891517172212134551554879438093984372162187847579556490590825146960293177587253222067724542688656038136483417405559519681999440017024438560498283253285956771592857182995284074420198318220330001123360765039394754558768552920049467601119400631937604276305064831956013648987670860619322049802907995519934052440597545842063583526666574928406003825560578878680862843309667436905711971809735686982362463218286792956872663839593411154896509405337000919799285043047429289124325122279173112210506644898221796498041770738437817219240718697055642920741367710480821787077353689207217621952522859973976789031747377862489830733728690610643500367281284553675444052319239897643329072319823151479980444274613992258209281507507873049642800663764432192469051115608841063001837132750477536993761444488953226730426969056600685243551880269044734441515830668451482496576292017322481400696038396809224841816762467297547798296742652323763770463172738954903505177918823696215817477266772867200433472540801366142222369417352971696881472289023726401936367701060206722267449510858823715562211582438767370526569121999996369211105730381804247272640469962990505588242409621768615286269050916889096879829263470573048464525289674930009458671278536619424796542357698794650376517156031828136240039206676198514038406564058704620271871351276958541388383974213504500159290667952834550812705454419866231449558018901836529685676812282019933150278824901571542765658459672343286277887941398908436926851066241234793156656867589673912038210387568726742055144593977007920547717199281130453287097283051642181683557690136217414032029304387028970848280380320699775944565094970333125162556576410966675891326321916220820715056266511856022868427002124995873387740878026969384837956178511364324921526514320374412717117736587465480170682401109763110839375600798108980589199365569020045717316673868481948839509003307419319659877303069546331889893974203868666346475368925635485255569262972268719800119260364892241961242965301138840623955110686817963151074956597539618097860270263473013181006502504907983364490801995073302462325522845637138652189182818362328455351932006158111035055761916268619324599794756882972246864791168272228184494701013687842699711308405572828886000235717110802074206227645386011286603523900745433659306037101772583663963136706751581470449975213306704738725500294578895200373133746808422761186735288434818024659668343738295094951495340039349743360582023520486505007677658247990042437920945386155754907304572000337591011069128118081458530345369019426742224552458608206025995851954133232583528340646318904136413908321683420688473565282711678398645915758447440448674804067760988917065701596669499376671600481282767638033643553206276884196465274191751171009845576107401030765798673821678945521567374515631431999447334592337584482331105400619494409249375902478892833400429618042281056591349731310604128640360783568860817158533902120401757595447898274734793462793915814761932890141231531690224550224486886576895058095621920642034776136651452232604831876953257702203420156717016007222542438380110830826441976799846139135385238207394302260039742437711814640543329415189574965626976980927035820196919752968557550156672760447603820625953678078736997141941655844052812844033163271590846273767817974058857876936531908684619951999061350763659459844226841214540862082461101770979435694497659411490229146427643322056674171389059922300859958898294040874948495741376422222849774235148738217907091424307090666743981484653804285165635033694033488239268422623443139647288354736836667028936325019712192954995387091689690127899086701437562943833595639458381738238145961552386274164857697968988167776166558463637084152826608106391883285473375513665747247300154119168431271119796759414468412166736194391012675322020988563299360813135648505599723902825477619359648178872875745781987583765524931789069912071146992965116770244777107613369848640850266274113317492081251764637784652154236681000813522743342374201603772455956011542717721309752833923052389848637968121851328470651546582713939216283359176135768901247875874618398482040563263209316519953347602218105330807325055505800709145769541952839853172261222291283174313725704830045776222338258114870204480398536515232639273922115422246336790444110774072983370839920604545694318124947814842613949512943779856773640711590409119875458066121540292313640070587016457847705852008656692395570918439071056325129493755739779235288144597290528867401252788265104798134228141233401940859731473184333650301734092021769748541867188350760430373381866652438082291508672119267480343237419776899633134984715849780197376144377575398368764154579004253550073180902163776105984307091297612617490026765211689222243746535794356308571570600517329592817713525946724957932375166865361166837279271700515270434730488124519006008098923449575546359714816711665059544693732651725197481457184185981506071314089599400431811751810916277791287428559540690979175373881272039177634951923370007433074690056883192382145379625495996591751243905972610703932711224146391749874565904438109058191768836306706754490584167590044320277542266654057536153840322971023403815463890808590790186616266966311902125462255475337572467443135851430259182046622127535680830224643607148533606792425283177938494100058695784083353454183685950662561529271801220648125695044675438015031113547759082528650957391673890811864767882995894613906498897228842926295420997239868647592330540026162646555767206756867397098938420954054360666683220297680477332410329238428292219457838078662970382634718982143722213971433575180695338936085388035558827647846341954705371622216272970187464000301362806586748428607575780193896208591620804617113893716407957982874922803481839689508742612248020618317465146890909323980879156711301594917526920607304483179500069214632267757654782597514658565994143789574125199095353260939163337030250064522176004707785470119549049681129719406221104899812035014410730054710905449701847392289176247827025883050231891645245261213682721064356382283971618367968357029327978401925894168439027776073321123556707119711671040939041968433665191471576777175311864892393161537285761230718569079011285030592030261119628490004699588141368294666534903128990611667040837759785435403222840656001033872974766333363547136008419188774359263066319559598754631974424755773232682094765390758632238936548154582420950789577481167630393719662876429148890943673879026786372628143488379299698449816855171321528478641358405106453670690117250408361270101015308994783958348553910693192584888987072212452522458326089503296246595360916335948878240715257057430078446658745929033136315921452818830282097471672964006076889738979931108168033556814495767374706430191050395398542335390819537793760721951025096769833560127419229024341886799265117973494654683989957930136471089710233335067397540472691716105622750757786415817083194964047947666791305677915184940930122660844133841847294834047526424175916722292062280109996402625397289658825164326164692128582510655564315237851244114139623321135866416994066837744806047974039896448281329627023488842083668088384935893437442377536421643151374422914380629976460601325966168209915146423414074044266077134414077078287567349087728634985490029492562331554528146963142815613416150196886193545304718008823927330715426301457459020050411234742796825932663456623323936963185762884100524413940383758103960877129761881775588990848678551655828116141570090820344883224591389331897547818163460762693963716955536346761436334567167267073655983239098057493486585193954680477349646253864597744976369428811965330751215246129434384185861077205912378664366551298287660179821137136878277487757933995884576995649028410869149648099330294716014794453409853491215907646680030871062583161090016483598452541350704822361882285966669224758864685491481114695142184468338621091408780221345888590212108554946703485415180200529793149883611651341149180217934955006555098874248042790181267106050873987071072949490127124117750413058147659834082881734791354297639607855778027840178125855753704948316625414854044080974700449930373900482719494920535899497305720269077832245829670478669191762504583569672398621633275301258352141835984467328801671641790831586554192265956617821644844336226443502764949038859477558701163013183136148717633047099745435448143469394523779835860631203787648803651010064652248804122821743646842019489987469169840040171380890882108790730088671538517293695891019524165986898133922254791959574520436523323601952110562025504835513550298270479375784592238120904282932461224350689929101352599943461333228318391357994198353161237389577679668293155839446090206724849429885942100659990893153744026440039120749900167518071497744201098095830962742462723347595463664234243739326326231496924208478102350660449187704408154209980377048357809106468371772887548997065319553939221813667975292093622978879305302465641277506025288387959511190994734804327467854611129172633173271877601674128710074528671971097090293867489818516178453636990649093334538528419095704157458896788759184183602190295095686052749845126575262024349298654330685173785351463542219595606365785025697994951602271139328680051227239897916148343992581726528961238298341609214534126370450344882515344762796443022505108921829352387374910128421313689053385785105359812407589601530219682547237593486408316153632625070852179185024736584662244924675090736367787101566025883965023970172739860843810922727994212552118783268012110292671719510645986065527267327344192861172925405062322343086934901642150244673093199706026255878520510847894608771306098325686518669514007675582688831629007416151365278751749071959193285705004686167812794306261691689596420545306798828664464154337930897110394968740490208265769543874347447991283072697265361136759443775706760587801016891623813818510776250580793869789328645032409234804030630368097889386251974731754033115918962878598609739168759932420889311139713644104572128543467616127392471332631329305910773877252358358325724272089532900295398717806320025317543257777125608193780061626339508262406620655212756160022086334716241576553081086194458546120949810083882777478035598265249931878691680276014525904215387980262067289586009402630954824499183609583679767701496194705027360113086523385711634320848176953474146182190191874753676164301167979897687600558487322578353226512610797141824141040431182230661120387371790069242074692004280899661742016192251031332019038083576753925693053069203777236869561033575172967985520776643435710657210521046531937803893991826333357603098852373196024350510568864452510708172416834631179705944246920508490801368303847393371079625477923397011580226341244147296426778962595058877252905906040506792970610141682212131517002113386254511204953397756164281169574551810692233406525199047099572889564784534769944874272394541168852304355444970734835105462008332541993883474864366610623725717259613612298353874857572091648313007149112307376125428768678619121790086041207433659411503313726292487623434548943172690288512009441121133157189795825129193917814681463008902663596341757853443356048163591887059031863715589649630592499651881093013648965834932078516170500788988028681563428657435209903682659425562209774574440988339709435877067243885926996892366611082423642230103727490784367339092055204254854245681957996192738104431230046509575026875355344274712864320969901482807816002523535187326220872550154687274412750367002728330990237748060497693957335724443534562172772521163790409589728912977293360790597794163177449526591211679371780693149444235141333846242382647722918230515323987099816611777389657666676443798056239340912853292310298634751659218317340625022817069885059579809537503100776329642568803406296905353644102439022809898226962572660992759418388842682877816835813526148610645087298912273943125150906853002657107398711558449552901509479084295501555522745874696879088187484357678502023267440720651198408293028087204258469293165966081077326458388106145868821387920610508755022734969270371480588008578258164332522028786488032646412990902686541066699725829425845820640621123817403055510139826612402255981840108831163303619835378173893211156072894719231650340120695481665245128924850892262614189787945516525154547741104216259498594377704236351290030334509094027305292056255501567611811331832637745615183202679729284620234072543147774023052258582455020554336773222368205173663616909131285230684309564025599532669011936147525205874031824635256001823987108787915322198455344928189094424084302168041749493676808909281513330505879102589973522220246880859870956570053563908877211874178369479170239040095718195055201063257335552182569028998039384904686169674935914475500246361420775485301610667726638150472092381516643638335433717538916390860809625433037518366365170355253831033804612373489270180045428000051102204957419240115481602029938681532565386082511235703443531930813537159402653634196872298101925406478086214113445322822401060638189212648546076235236021392151960158040245064389016381347890051544693233167513656039899590195539506245773395589087379600086237689485132144990384778859309474061259828555166434295269977908255844676470669733981359134090726372970702918302264554637269603086090262046197435941701298719206481408723505347938340906639032380045013676178291205552322776826304286868208577908705069182302775503765340061616283727473196224407005281017769814503872076011541300453661202309612421617166976486084700005775106918412115374145160211295020847851057306111098585932874329165936302777578522933773256929684489906485527572088463556876163667210257547906309747405208132585716026814457588079620223545698840455964846115949621476514891909464235228466095441550391275415071581440005325834342828531472023665369488636282737777678388910042342948125875672725526640932118394096962058925341133323567091383346350852697261797153637184197780425094232695472966168879608854930791319561535204545635624781520683354104303922123563452244741016789233048223460047745040598785589250661871044841003626810813317358064095250932472274576245314807595367341618125133725315625289930733828170084485873137563297232979672545629316701807440081175087265107573391550601838276023602531387651504612455072707420724364656059786709587343388904008476071427794084686601069181345170645310378666238321831301837052259171551087501210952004337759504080218823001840609673097264915915547898202673704459092945297317153036318015585118412818886912145392192066602119102037906393090261941041643822582220838513551871474588337645138449246304626577299421759339154448432027574357038079739331769757478613266007183218448118458990562030118129725036977406602966806212098028363919362311935148067830622061364380885077639064356458475103185069291354556988020324922194539189260146751838373997961905955085208051175719794460103446809422705070366993260523247138853129466680850412941792128647106444830817659852953032136705500607369699722405486932705048928007199615092365991531662101545139702726310789441679888687764163877222603901617649318201279496684254329532058819423210365506759227654103266341394309358042337351562277157081853133780483525151466387461787256470205164067011650808506858078500644203884689421962279330875089614821442253521055643051224781890162627997349555368733131879533304939617902598894031841292634106172041767551515534828464537984796548310888578742847836364735333161513940536214211166022621923467719150566101503482374062806117831242961277029680217382075585693174533658513945956950239917063856547191740566202065824840205485437494100498401330598806536265251367905642385302970708804868111706880409034628153471889255739523160801975560990624651884264815050984138758938821792225661224369482460663433462353251135165236427190927589328962447237323261876578102163453707772157957296324060169060768293719781403422833416000923182467631971891547527559637036225597138423516540424244684999772801588674494255174104460773239654820014232669043655441043064503218130456772894153842983294282577956931522841861142216559800666167802147018295581258646999673819755365873070332589859735696692387201794269810889550281381274933775998087936489905512570643706545624926471607536677195819433743427049761351547009347874308305265029887986890551415712811015288757406109490890433930011887056960050342697674839997551843798858495889938121336302576300097430019749984547074343234674461266894878857506382329755355277940009544671446074324951253047671862673289121369108909339984876635543524911707741171436211991684961032760545028553592890767832746806833553990457071993663189469197982737093935560843137663251346924005007081013510097235312167367261248363586612097950304800816295311823734326166453737564788630351961833275553106513967061351661403432674947508689469512883768184926583468659547571489591975957188418757804456789551952339567752994665537161921769773592809335824534787822441118603128447841632492817255130433160004408571116933207660822942352563683855477465380000042051525622915699475669976896521031703818245833248633225804148841775612676562454961705339217488486278380736357521831865629386185464957731287005562677875618923009766122340932926784072588406027055218873691445736203347502554017275887918484179205801542753552008210079042713139437597930232455539269856431368751227591069418045533258097726044852790527650691944446192590897057884007130302735346131766073510026607470345231299438311240329769457019700233511032824499413005708905113269155742841989324421014039388868811662110599463637508052068531624477067481836250173244836479972054355678051205654122725210069616641860194412347059556576458613750507202100210038964113362671650549447644699004153080449656189813858246725272861151989946435385231690787306247127059395691005996704247154396002743941884187064014465005076257447093943267394968645053290463732770589807326837400175533567782667834847833002877474871359474233760748771682156724477758478072057367470955511439508673902820157039219254586777519659121228753166090653735056113668649717676796285330749316170605223764923653562371741219745888633982135883935691096542239146233900203801177350402992373661212813744753765800990036294268357891851600644560183461833832753308990648747080593657945130995769824750722035546999648418098469321322890499050378908751020268860441204046547684470194317289633092853858600492875570327577803922097803345523949476352234862450395023948113144469323047426061879100428541766228952971306310713929386138245261518235140643871134277274871668850716841474434082043973053873955517869798817032003571201745722258251865466013490228620777307156341523659528018808742614419683130990063573273995818676892881405212780343246368281252221960640460197049737756645771726245923688990997173552178000215272650107070373872352883364709553373387075192446599006871136724598526766476096875133515200053836595389986030662954559717907013224592411848507908854909860531665450344592816401738842107345678472069949146584503300416146225001633911066279106569734219625494758857975381015223077542659728981880428753552883325500339757072425663179133631924639818882669007794758479101504991074521286513150891407980749035541554161458457979574147287910424001028926258694777550100209517685446880852623774610529246531188914818910408196954089049511779290934258040305793628815444540026488816213811938591617822703393850550786793585017186444252808680769940953896935711525052776264952138394723503871144490788524125167956942644005145594407075012574989158874376776502879943928250246951749262901279614496831219516287227920710107651229772708384570229045767367995112435665548730534625494575540456956344590599216055920051681042512093398000121818308632804183850138847513404812260660858998397567317722750351756342715656307752915005928611263464867278513936355619406023570843824449203864866700363125366366123093563503703712540336077512907040206740933651050806561068953487997028912966021059447537100195978349245451945098002141091141495212856307035401943063117981165764734478190878857156544370863238599490345247752690715376075335050859355190439316002772830513589388222471585523080852037620512770274324512668208293152706549588267982481709398458824722601139566590486778223750407273747064915817823607489426094692328355804047587737204849973075905875928585115183759757052973532588423999801498674096677888164604776551275018276229462278230093014753158327534769399142928928751779991676309158377234447783532157304916255598097925425689665146600917267431089338103216104797326933913288300246221451487190697291546122435308054557270814356011983785219312304958352632154360851082859462749965714949929877747598504564491119397149359372128387087422490109590387110255943765118291590817278012798846993336985669063323646642459312911097721783883553364570651861613534524041176835091532520016857861928614611481303681790726607278939443984473205775184095834213043312965808106013332347987826007246815116090083804172575793336147714811498736543798607222190796931354412165565991185122219586022616398335703474765010332144101866541249908555229426374446396975551669095512021908483299952606541099961622613230741893420212919287192420994521252566532725269661190324310154601442230186067671655131559557702731148502155134772147480002579964613079687502202290483369893453808873054986760081147528438704685657916236453520205440132314967546800045482045212318053400543327984899191560200418750574724992794653358008637656838867619254600153716204783376136250345071954129187037386446221033427677702611276588152876243456185325826916335968185725026324384660096429759528487061570250477193706940242423774149983223611372579401069701112292361746069345271470169036149447093727204785383468368365776745749130307991659077817460364559362692312213836677827646631589852242205603315853971307757905653063294114114364626353919773796259882997480439570516616219883173544494325520398077687101910673807880214241303352505494344902345115027674234700278163362274348263595422839112225188059654673145934436429863849890441703611962463103272192384596863414553378408464883008993822242514101964265242799368183917774757195655981799481190077602861115322939211295519340135878330206094157331030767784624430076409625004355739333673499348206118172401887616996535137550035681754980300300785918692624880984638297159420033896977145439266466132884038467161286334642820450006885492700637050222165022158643836289919859480422666210042134318447358877177436814764827366895471914744371204256963140805581006023607298148411383021602122868302230478433442020729302542502911090364782663239751072848932648770630300293694488183259895876286444017361563207826561666809838583122002176089011829416028482640066939637953946141063587604650150931246268035617279913374646828968043663945807341467460704059230314285652095253249683751646130904574089523903691168777769985292232508744076815801130751540112316522171422865923216282090937363078925332123726436245169713390550847122585158480495963727706265491268427868144936227089239750888461087872186845159151179667845270278379798636103797344866231763353083216276767865750021839955287924596373165189610261217558896134517842637542246598560320521328443313416602856872341873348702129438022591212846045233673275244683438519085585382849825030317446488819419125222111153660072237811212331143916124658969407196415653479032859593346899148577270206243762777073527420136980425329491072361648459141644474256108970011489766313368026548023952662103424520255820113665906541978919513816763595582179930867884284929030922014127873902570680588733022105978219768118172985976315370622286097959081218545389098629412317414380265850254596330373633920826109502972824077647842267771234784134994570943281433225135768597526151150453106372356082904765689455709177072230248196935052143756006459379358363518579462043954545152402625413912579883214722462596484037257999630234947446548902976915852726108785665967074811244621867312404195604890634234852922132630069372117078634782332204799003733205148413650663937002545927129229914360307397726434696751990917075196092903105866925164919542321603808565661555720121873905047575728471055385077311876538523555618886416509696581905455390042362765294472848762462440275904048342549387682703122182125102601171034338545463252560744587392506476039006842631360858575940074938428033059595665918590491528300712120772842667809413756805322571552216327074071473699458020365981618090562354588532765970032306758110470674662002403993392080037868566360198162533737977414799037400783429267524896454387293432495381705290988119984131027684940815047437818771873842190197164415533872666252516829556802532732339605125522912644909210990816327285347635167090124382830593164336346324172908176618696581273950982989440967759554660672043190161929297966115479367397537069794502687886433149628324749420618040970626008913956983162005145299269095891747177016119770765217750126022152841555176117491069356814446169332380812656681527097153550517470889591240425146381540513798192587142157168993565449202123586701129966331347648557055953553514669526148401316811897762769460032945896660495320573486715289402998454405618286516810078237971410124369972223217635466969654934343357109924603886414726111524411768132909649910814177284245075195705893338469659531166629050840647630058793464788850863995759628757797073388908965787047548336224171303839407843843372302241445251571052583303605049335072492597009248326030418606742238882034521758117789748292534351489832564870875320135825874642419325140819600887357993865540613452167216708347588856499731603534744442398175130081736011920317847358665834645557058981407832156497191966655444831057633337501752187436612591136744294631395990096109886172649410072640576112493182628177796033448341062228945689240595468480381022171346596275914018375248188505931015808295561881949466150907235022116378242999948865186637367692594308969586104312889294283705658232776469247440313625005998537858650609555897695962685034161973222501742700862999911579302089014746880324468647397961718739845109228159413803545104713354450677694192270210684297238897130472758194093939977470302722357868346531872152840164819542431327916736681327719281920578295690496706082018891871988807699069023739144773199270671770381800079869895534748912703868841903247022944413272421481947031903144257200617344539428110679130972699856034834981984756388093070416026330543128111619179381830040850178856964275713163099120342902308668288782720110359920378853024114909263126885243972219202928745671287011660685466793082782515181216652940474989647818287472500858759670982588082579058011004591080287479077105923265658082132841001582065965502479512841903858188206625887986316436901009971250735951625725873442136256926445453771152853321224795814454561051687283713473497397943826185532366365138038551383410618435806797243030267269458702942367198074760837056412761165499925241270738556156018412513512819548131187114073443455058365233351488992150053158275242851811110630163606468446427101159766205193578212696945091076959461745604767700092000412709728081094802053710207338468610373601851290050253302894172495603028920323838172578646523440657046543875135946955844301847870465979038093127794086608561729437154760119231272927556917389427011464182464221932683149774454161625439954018432603722548379156718697426226633751150615795737234035332702100029122867278382411812775249331072866182912023811366570706322180856413870762186285629231078507784992277911341920023495873913487143188364001851175348166579302565327271736480557300604905658314483197552700584914347959490233822200801567169552304894854962721004676479363803440662187879017361677667253515645816926572895437925387867080716267820170520855373281236870292050235665680191514520658657297683959983763363274694118923049646934454612315931567664254171263226080523476908093810608242946865243104847962955733597595396077146714585481876804405970606786424548181274723185244631260466299336416288626180654739871503061577238339065026338604363373731504360995656327074328888149429176073369723549263999448411026774410142885531273324802349346849390805127249990672709145105093536386781269452929942930904164074665227082153855924493509734304986971400219391496262532478406142650891494088803491005591396438508457249837797536927507265384516850686429585934443208722888364147880610534570331063711651952361486940686258598448903816613828190157623649318105898354927691324271632410006189238045991788389093414664628127268311420150639757585913185716461688177470635001813211339898143516707555037363772051966848414662041161432051083595506015443588694433266512038059159057113427278452157186304084722473515313989533150233542294472208351894882481522473797985292493129015222864657135158186073298437294685336562663640648752075480915778283548213388640657323921938339833032294869152656232030982728553099439868690339548504600059472492582441670237660392382766336199689798402654586247919303492184576557065547235821467420095086835063943234070342159542767026756905770224801994374408302478109683751912282600429675368232129507432690533397862877929836528672407902829903509332703170936552344996187826925969967258020593772952113997841817765958273078627937710938511728720508268258238118567841637500272380675990427937895134559579428330297725133775009430534566560968829167446703756199439688788245426081977929306269641576819958456525189321484940806096098149002845942677043735026119451409764796532310799831429482258111320536876673515010497285375334685194964221630615896874446495428457710477263181332634979985677125982103592755887332140255328337613860439469833557669796941691215800427905068147697947486437618161158712462315524480095179159967657055223063463254872584269059575877490495634023052776296108012596497478462427987306331258431670838282794923170223266785931511765036300267132309518076502144841048429490350917621668717260922530697333755001222427391902468474458402035731377909182211075142589773188768876649845610235227494290853238895611756751024889788173716044085773426229030246901973117048135195137390864091026477105273008477859357552572873646398955072132439359903790596177299183405240929936965202848866647006101864861213752598861072226144448166451162576901087613985993205123176162537559794742419434237312344264351599576773340617952421697879819179988261595964809442375486219079544645784798697789945791152770396444776962036295211846629402628565492336317690023476739799663915954258174107411779704050943237006074485555166723730565563292619217396236100729094334870289243213236093494362362892187371976370044215170498708644248029682864236006985484021261755382362588698301518707088781339104032489181508605514476116433548536534508526206846932289417340286278776451153330920540908192182484068289891604536250458028694759260509072325712463400716531258011610091073000406049094581391858002499641813308930607826771361996212614397180636864517421763964308037770761221649346878073967298322447559390203973348920625927695688444057084317552934469710392008347913998728440630353080103299391190077526821042460343412491646842788104680577704311146386357829112777459129834945603285515995684105942873956594707508003993082906583145276159700823931412804153639978328996574986674044529211984517602997687412569818645189315044509437336419871059371393792535333883554651935857880832769620307507070708324527546957634069216992568165298154649455555054252047693013057762542560709100030823885162267894986157972996794504020678584937995911449416133244484167892845398849370079841263439156527941878293306097069284474477732587443598738345562942447676331670924695360669113112592003862509143665387479036207448981748110106816522489926518726963147130019816465117127668741834157210408746168842709190892114136294997343600500720737247143086443131248927115615063960211733342329326086619857432165844157532154025406130784287403581755470204243110545564029326342937846096235885163860533818151367848933884513839737856528720815245680788378438722526110987425099747229664435112312327722370481412267735038259337050396081031173863014479372305127054184377348005681709239181471035416897419086496193268663702423162153589029588448734841343957526675720472055899241685315288838078323668720714379004515092509715179831835810267812362648487394323099484912787478708829491845776414880971161891641642442985630049545760302057016217909214350174300152549573558181113881647083179397476187282814404644597135379001883404038934581348584139814725685312876608407427083342301681826398637064433092169941852523751258411938650704840165320926264324944532086515879356751547217925524419307696988207416220390560664701761677491807395126451259436631708611135006729676486438995846937788499463670545649194560596368176712341054157510297707181633725798479975390736481845011679650917674162727034088327583211390595223379218202637381862603713618695580212184082697311673360743025750311523771165658411336293690531300894195580284390524679071394297360297057104079937426684424596888342937665236832156021405467840881680062334082059498415930143531974002793206305942769798421089574153695889386240588966178079742000606930482144589411065595106289330925674863243241370922695544885437994602108751540448388013008277004235276246198814944822436505079994439176643247426922374572573397091067503165908538880755800442907737388394769861048008098361656241152235015837097213221436244722769002324697693498168447646668906335925073799845859150291316555154034975922322645857808496523371027750516602328995086485515873221171955791602345325857344175717465930386242279060438415021913411865814338924558819804605784285021038268730072184971022614075685884047870096623537469804701730656499529058486628850476324873318874926345017018380206158572517533196914190619971206816677660211974182013654550106298760095608528514411969688827712543312140129586012548202693181597024773567737105340449505689502533854063018793367969032846803311396844279901031329302585417244656346911862636727460360123891004709949074787306444693421065624827273124093316083956982426651997203904488919124220065634872054979189926004212066096504391625343956915239905499247401653605501112961659835550606107104125824249007335715649354629167024889687112973256260944470851038438283520154291255925315632497742674031231742229048425237302315823029635653443093849039039731851345386939307244163791163478392342912386630827220770254996769819611386398837379598408386511508041760297844856351281243187635522537351939763370126723569864018933104792395560226827678624735635041691303710633627500972014293389073105598112314063708366271899143338104893005496072272844250930577033831718837851452337718899810670123708061977935595843490321842385904883461957660054842124643419989528303774684556848513362221156881844013460018527668151934533986207758188523508241835870935300373019266114067337612155609141570826240815653559112344959636375533120361635483049908783281674151599909048468455116794097739493222813069861622513714851208330318113800814400407401668971809685700397913978097746794856658409830208826844559808814004407182826025069840129792426959680627941780798460099927634545484571345379998905523238913076700340830322100920485934840039913420405820967918301694434377425258761390228587045812011679125643540472884182836226132607173774434434775224976491766746092375647687805035680234406000581590145915806453304751638145730686771100907710066515785445886887731741568269654437440562433769221999485371465743802920526274040567773103207915011556911536633107289171407492540134808596117697041223096874662561899175587905263367822047157943927830669282727490758793467019807896361754243069056981439504962782000859171108762557864232798165000718373488193974926707603254402097151261655331946875844575465742093293537328692825328112069603956393334787378861931223818978003997060702301101544353315666309212704845551508898486665132994177740523537137143092390590192191324842502806447544907864972503296510182319634156804571807460036258463322637546794408021078234656997165108443071330929697203258801832998518129067484075210300602741046832574636684412736932743317941417973243503182745001599579617122930990689814278131472250797556612644660640391105808888792415986435559398159359552590134252032931210704315179667702229564894302171177347173308816671860922516913012995957372036701652931206416676631122717069306736634116930316134511462883510228389969648267334119172618410465857037471911498117346932387730730521228405400510389067431847248340863905498369428970471342077243720620584560015429489422535951556759562794956101840958974629973962614026896630316371342320419634931132638944728399816232119663335561724482445446318014033499132836593306203278299286026130562872128012768759605878789972956681988739039213429857851720135309870165900560945497992071928330333538003299471998611340228613647163791131058545172581562280745742494090621487204365142632765110158511730954806841239137121396320730146576222668185103690874341919087648935195499412906529368673321934420151862981955218342288541580047965264269814447207936298259320599215273504382376513504643307317464405072362364855634359310264437154391667979897994882163882587248982414199797114828291136028313238591602929681866209302547513885638769339788263722547112530655471146750024909457612968570604659223800796301510391418858828330086098631109402381122652437694095245763356468876399936593199067176413753676552707420231075352322596357108569566385525899732847922405146177617819056176244542800326651546712487960201448594916115379618310384425882432949899249201384994231515685026086462351901501429109893940336497217656937764752083507890554209052629109317098705139047269735802898609515908251617767675382205185506685614371057586907295800628784910394780797503445456403592768283520925406936885204147994700882405731885509430018828320938935893637296928670631199593049739016377827754178119344669357664997161322330863754138456782730492034072466392621055384400864999460553068469189170547906580051712542664006450903338312112520095802432870977038776285656834368326165115968646345331453753418515874725597612331107014544639812453610587979489097260643224926463062584406189437818334561793654332685039562355149750400838216047365287379409245298982143671675055374257664037355036470290988701081057054581387919595947254856739655816822375158745356103583298655470204774814353305894438201014045709023014388482292300861147002182333269015669970562632596466873565288236052078388205129881810869211223571310599133319875312030343589918487633880910181536842668773213437552017423027835173249995115640466533318366561059340267996604479498102462535491518133287420037961796743954035177768906368269530873323815000356404128263947248048487702632213175997001306162639642663242198232922654240064226442188708335270412948059788167444459264259243679796563167394750617797227701484920165241273519760076905259008579197142147264684042057888142347520422857399714784542590712055801814277137520375055356773164635350189042177800910655420259895978073053761930178337833414495051984145951778420249605371074012546037320649797156828828304582746648211964743133120527630268933515990696518448521156675278296152132483971715106400006592284957966737374488928010764286883376756451089463097593923979917418051723415372476060682620585518658118644392686276548451640799031856926225093005069186221011680091549492390290424212507824248180530372547722919799141357434577133047366406994211736389948281748021880156445405625379212335973708743098040073349581796898668206189531696688047913325612338609599367092430005627659871046796377866284546275742906785214690529990087404760439812165427462265161006140137983655488050867675460019515400031685496586893989129936602420929903687518310289632476128205184242780916030740734190435919804197907056460259913403965184763577510045336595844621157608560051932864623657838679173708978442870472979883497372794255954435067434909329236254835143312857864619589367097498631729111677990488001280889015327675114444964542992014090756712663206162418036647532742354400599124683820972568821184303685548039600821628573242316806640168731057252814762246811702137231368349029920534515859152768228209489652625709180786393659896613174914543881171231308520081461977850314696594543125343133610940739631614829402755852034560043116876184333751545229623519661596867175042341754593286667816585531756222561838054198272001378669338021699324728727932521287030180714973998441968657436217681828401933877325994347972349211471851626126597798609804220357372967448606623824088045603548538904101051864835986710301303616232736916404623207355185851027199856412532558910817437054517704097557335026069294285745131704004857315488693083483344708168388705705453889289106775845009805484320439025957158776490800630795712761278198916357251668358123441421888444823634854124142334932028284819323572230533246346462475934779303811071365503657471406073595723810246690978423790949956055070783887739929342687930970025388052363994585773904188572844330024115409515092724445109321725443996101074800853145655886378640203309348857249380102653911992848894074517693777288717562722311551406428770062622250100804196483513706690196375770534419660940008253747905087016646005457008669137572616181997155246327153248476773990807450090371446888554411074310445479853922348147283580585322041226642000843120810117292239746390180133142834881859507382490101751882998206779374806456056882257408114789253434282806198424101239542938295907839425790918103487761122181074125049714023191671206840771834138735314221579080967244990702936057716136452896671309190778822067297738814268854786133594838299133875141943770171399272477680665940022003937470761105771200156051059973569589932975275460289009299359100570496517033004438339307603439788698403915502824416488572540350765082031944002119313574715108460240382524844599705243414133190335119262226424407301964495445703072197352282685029503388893168000890376031636134083916930988092561201833611236545643410413585931838224288804075070171501777568468329759061852139558256015078794637035047398802184165945707777638160095784288166720697118180757932751170779893665397990161410793860088476563963051856230783284443757114764530835205758792312838564999206161210020164894082616662454883418897570572551551421949357263139952976375692865832396479865315243762653725916816294272976236297147498114054265640166305378444437727126557317983003577557024329404472291099876495545248729543850002759559624625856218621296578570500601510560578017166665308903646986181749619545581122522997069608414635795995276513198969468297427448567896200447296775926873681959949579743498812729862252454634229190288409574103476704304242982481747771452332267711628562764843542822758324867778481816966169338141216030077544052086734131941971444868333947662050122562059934833030677213134384224178668599673278036012276649554109608316667561125407228698062406129001592452283407456860264681126741268146630749631029253327997034019730673667840358135160171240790606046354171691891003017601967625790964535935468242900455042047110723844241047279891403176657094138247398148166173044943735905059350897293735928596662973144540799840795146034339105948119579385535054102426167718062148118072561527101993482632158639919162867881988981603343691886461579219430246934435135977139066204895345237332463632691107373793417310052725356662617742654615223714803401016784774773464401462074892336708898702070856283420058459626901605808530524867611045456070446681427665117583635596615949122947671218771737151392991582673000624079727505889065704335408123588020312607324146838582428376679041910527926326452499068146411792054799199784238304508192988651362216587849895347269575140399474806708465210010627003329928564407435834765978122556307538415765618509194222344179533598388369308453982364436714950824588513219921590916647624813980279709242817629942237702358274528512010841624377956380020517166005903232328145332935020644580050304302400956181875585768203430209137924658490480973221907097747931101831991887281275625791663831698839792695917686967109919316718518011835781016353800469952667735985268664567108043027284669458353030080180333797972916998705415825793587253049161332897755551949190608559606559654568128300898637904885715377901875739563914907048419828710087917351833487844484055264536429457035877815759170144804680629624885427963533866402650463034821699115948739498568180498402108329321984433382619866567041077810731175104460160328952288335300362290889447374971397860859796859407685098440244007851865571845622698502227460304038117401259660021333559711578890780648708293601639551926778541971877839788613742914097230104536057290880132534127049967596792033371879963235089549449601773678004059715259958218618726978939879713678728301447954414338845949123005846106391004737444565690805460143527347256116073898629428247466172179933866942768677417908181849848235754629029064154774934787420713755716840122524904294523049774702019858397491079940820680248646218704469136953487777880007616029259831431556103396477928882733261668282607349081052652856258318125362521708486875421232401821233141896713441287499799176951724954616235779595474884480856004989196243608340327100645448485231065064963956512730515961509815584892921430449737962720908924661091375428303512034992438680957504707437236835335237634047187838535540180025238685533197860500318267983159338498662848234266004412283950148150083476927257318856668432957192313440320606858699452165490562993683744400297009506927402104355827397796697213866777424645230089971501047226564066076689204849745150733698547883465607798507245707649941787233196473517054023796322345602364691773512954960572894263207948120181292882965851972370622068995822020981000002439475563842418807950199593934416342822224638887482686153717278704414173123895580681189721357642598180971967133958761685824329167319505508674095331145426805251061652383848095101502008689671446964095097409264535541125381424925301699124076597872117033177985964271114671582213813287444949354145222066805857725761500540678028061074113671452017045233348900196353645466647126479427616946218475033834596278416560612828591354981797748370222885702046752562110507738406495844255266129350332929260937971152063579914228039514414118043167173112424271001870237619304257140382002427938484069959431044889679651207404874872890468764261936299006579326732706460818785140403062126735878082766950174238554010129629709605886483335697048130351021372010756886342088085613955228190007513849643028210225927990151454225010564626077636523755114284226047547383779270190390736396737372884817079247456967761770956245270526973375137446119159143044926014882947100842527052891477010205286973697300489571818898568389425451211059440057303452745478760075151170906012757617394668436928755200105870176618991023856822886696538690875051268037347467880337467600077924196183218032914203358303644842103963894255815109448598748632844564214959758365467585907451441183024830509000404882363018000544592429358445037762766033161557846173395007936683549483529336598915630508101135362956707223869597919144423025671176088371724895690282642044344020323957418623683352505163266246835009376020036884183076688997819545485941080163636648161908921032913110048396900990133887600092509315007523751318271679989773419353972919810436018457147639688760983982454034321523240194391823809286943243622331047898441963559962665942166347172996503221967699265607187078665640060848966918851088984159710544933328909879734635587356203672792652698382415311978340232959905793158956737857439928111162060875301109929867339764219357666407277319474050882827048201724186133469969471225831346092225917521076281656860549346345471986744635555688793716865669610732904723721737431933680612146236110203015457236177527674566894589787682249154518739386926510090970919299815546964123996574740890238261942530977193864063327892854261009643701891636986885042014062678850635309562209687339324000092604136735941578028345346326540299325178175298544328100671372813978119748890044827191256577181496951548760136294656748586518026801879010866469595855593386410857775805762450204622757633378583694428182154098012988964547767297751561402428306572158376608235703939959309115978462389171592931854918794206393458159681467032542650289347757851867483182525947485855031426620710754066603317877874558034553498926292398582995153103783072709085853384157909427008948603482685804511760279453561356654347204193012180124450080797439248057603340264120908512715906450261148322659657946444940397977695401564468297553411213699483873508261047865120180838956187958293871892639816586009082669220879828795216717163598599296576164466289911663281524325801878988749657800226035880894951612745241966002928779564540528418771820703182186997581990255850787254842806818131258038162741801648669833428581241394675690281544348307891082381126103143458814449996749650075865721030817174379575858928772253827863784106244101995680279145525887415475317076667960765700464956958471084115635480272812716946346273889010340066802561097421825323780445177466481660220297237700185906787102828034764956434121321658465458362240596097921168755298671764992361783876860369478897018023903980258060356149883597203806605311853273457774736835929872438489328151128424577187125455331475431685616367283351659064153355170061094017708280766714011042303865103137887309747044358643221445153503176443144223918688206280189420424028267954154466689854586913527169405551139696276928674134382329931615988409032871416896965301540185893064359491788338912864431400262777096455937142261206278409554887877873076887186688717073563233116741321105924814845528815431635340611795738510656892179488539613504447572341712487848727887014553763499499550104172445316734226171904351723677162456894623078306546606874557107481765091298687882128491122037086161401943517464296062774430789085267846256161784893999504828162513913572889320289986518696157865819588584173318536375436018012567790976620280447028929495080921169593504104149260129592255987213032966429099407088114595347743439733729909697255664857097413139925354302428376266210318837802101864540405282268139902249930108784776674203320366283437671968795491839279398468280175635225228075376209072642493061153247865297226319324410170429167404697293471034307313908785293064428965788162820643252909722959100768560257389203698949705468792146073992294239516338483295846575897326228962226214672945874681369855254927025874788564482870662395552727351952812554752295383872012595025458472239584595801929927233450514845861235789889679396642508456914743114131404718169180241256475312972070131389991718898743057015298560072280100313541355507858978749316587977866457145565993263256106844832723659551416139055855547770327780747420955520999974925040732245248273065774941377082677748483801262792758476809908720556166061017490369370796450021269549725557076183716802541903044424634043264044904902580934868604160397657739344574539942407913005951590120438379675384685305182008547671062829444382183796565791022567576676523381748601976883242848017287257114789702835239833014080409582044819901558375991838581396954034231297313330697957483242585726782661047257159662935583538473495089606507808058298660327494393393908299738006061958999553999879650817466031023731270907494920358245798335744476021991923334344836568095989092555613638649274833158204363539878346497696997605842830955730494622379661671004561879879611032401804505937550761857603386419093051940912370364727201054881145210555698556957924279969622100211462095497700000134933995148315722744264873958280121984766564664724147546336541210080379637816335859056643068235280848323878873428025471892297614954209148495526182057587845566100940142353333844857930495865450882315321664535313331765308025657929568856378972651113431369018722939301154150042286533471766175728244737488136073424594035449878320479969337783075011076770291591015898528427074378960718988307523671230359166616715511210743880241009579448332618577483835592865510597587040939468547910846409253523582381624606502693254756703698481333674026238523318143705746193225719518861783290251566842219932910074599310339628535775574852492681130879404189729088793238081837047621489985153504345429088828702580178771429189768568311093500806653955220294447100198085096516066666167642279800248858156489393726604019499969802087141568620059454837037488208427596847080152606476704858502505245228902338283956481142060935775610498982756626987612645051161567035135028959617000732880595415842512851240457124605188337574763793250070343083812285686953803406305557417253389461579949411295576245145677971402683152772948416536403892779896427377700824274912764167681127113399918873065976786194797271936529697455366666562493822921580188836170922999563716183413963117462195308005034540575477954680132704896430438105574452427648836311642267508591811488474799917867205673642478115201440491155283324086331476712965974021690539830847790140576370713955109974489540744395986641152382161435079637689654745270446468214079373376885951588988108154228231827493638104247031930051385685901218626364054912583432102282275296978062414604089033707042542729526576370087413176208950750789091735871005545882790904064713702216657144738031657377706192025454932521736775836816431908119753640447273475233272688977226957077897772474835340558217969512749927011371888263416064457069672725948507635774269789693812386362346510025403065844711924341602318922359515245979406037528175245137890600030700075058244614288709286129105502354524882589898044508060287807338710221278190875819101997611904944506120716616852337545782677191956343080845745478056854443032293656890435375952652490747103352560740792524581441648989129215813327318181686083191459639957176560568621504397768867369969539773933511606345441352529962601503636496085902675516778329052413316997150845964756216631833936048115532799387365020226533920311620143425029455364469937110827796660001701340877812427546232426623941402335629978426453661056612653660001409781259206697217723990179048835130824478216224192422407415808305935611555223346694754196679954376743355821949352542013181602343065671370691060881255412897873949193862696635940930590595832579806871253548989565620957828507727393240308079258313491668491547962063600045318144273021798771518388075300863610788614770793391015068088879368914686197637908555816870145282518035042791807379845426584019364529145713308835156828089233829345467098669793156983134655927809719720638394236582286287124967631360999999589332167613293874480779545718113221826506354429540556254610499752758078083747626643281392144805506799147502757358641753385553856564252868147036833326202513356991375369356284483085676417820736121601166888132893668664483688815430070027599321788902628929874545294774336098774721292355159751470627477169620715124918418973605794449688788907360794342536029000323390906133769418106341151375487679520682752010034024256828886156003910825512212966644342993035106241129643731638335756592934186541752755533532184657393833155615562743126173334264322796378738918295162130524004005423226718395521641910369680019878379247890142003083757493519095983398825791283035229547011568708927118415124172779565879321246504454299104739598843796846396830299498762817564907324568444271281325576993528217176699187357816612539962452240713831917996974662337216341533037702814230088202056111567880882214131158808333454126669555011603592195889208543058616116050029700766808700271702781392343583371645743390809202931717420990283142838012622650895580549645011573472302848669050754299546633323531860647625896260102675527588772960504433728461311097156014486372559190905355777512230363988463276205445110537809178701229095157050638936251070674793030521447269486975625558007965557905789073549492622007212498367152504204422281501576536568814742876654202503751660259335931982443653955404095017576449551332490496644109420478020824011048116198952129589308151360575603702076486074633741313958650390388989577759762301257580111335334764182682643260453642475356807361016987320776938233980239733519564543609425737244710437271708980038389099748893701755161735478182429813939209960618603147884963602888003158835859958012229982077108670677920341699433539030341909814757172279398928140386307229430162677195522455233572966016389398714207629135600095178335786936453635181088683023146156648141255684501087597719147744843768306503303371859370881382299443077630022608966975157163656345782639676372468612314255179069057712077606140367831581932769493456624166441777527585910725820041361912182069932629143054857187254380843210676745475936759424251477282544984004483802837500438452370214464485452932329830133250925462925774907135989537289217594605148230232320286901189216169232212482968650306391742214407398310837112987087476144140762617259253401819774796403978311342086364740574235685723747825495742321185954547214535713173450028422040469274652473539784134024976369788581852681190701941758341295080609743891884814795346649696314016664192183763471461630654306954807980749645144083008979594117748036804337182262200708216421902355592556830977462472856261688735675285140357969780059105486749965494806542954849911889449212542366707391393764856943767470366103776616758399833230757470201666084773143115179799955855354134842270675194795971326355995228243908567915670755747859738771135357147953307615456926274946608869572593265590956037235208640621159590102659364267646180061778823156249490784064751882410527277690938559093304889034910684223843818194106781366193273253411326159770286672513540053049939235298870678384412836245145008256338748965174923203181130420285484618191183765538666459984221958720244851279065485280678516446451557686821003656263108587452243627938035061667415752616445856380558115983124064379595032993910059931143717705301816536106308849838618343608794716573197911113176215667916479654245807819085315246019151798467412570672900388736403140131832460360547064459233164724609919065234822871807758442505281175734826560391056225662145445552738308768304401234858682721776718346834072168849764883599394941109829348976421215171594084429780584429194198722392360124409973563087971316777456285203327279314894712300203847067559184026181492406120995306150841835794338778698772468384926017085507281062916843818760538053234228552702299286473900343964564643283342424959562025211214463613198195738315947302326113254326602320654897369197283871323628332889660990622884441574856693765225015276633845200139943050033853398097430417652576244160964939166494676634947372831917676472914866106703599163253093839149776421755439797627114043832736012058498435353050885508261703378029968211817279045810487695891159744726703511979135027643052536570750312443048752296595198774823038550070536773167119017807404529119672455426846814180934269143272289295107367228676610022972157048660751204477077181604976808738822376781017186710778488792254752987976205104180130006319851451195744812638075803349858407852613216791080408879625179027146150226868696544108639117332237092112683765596342924812119868953556477935493373425505892066082478618745666950413839755652543299574579120813553969548710627839199740090080106105345830060211547521853794014927218871864333560513441104228560575142104585886764625181115873442500834678505241921883550356392327073349935751035238111225338136922442635121919926253729340193795587931006630508137677178379971179194221845174955221907954207981526743518138713141007513405620489783824174231413620061772840222132931070381539668835236533785716509805334954820937039481905315139551970251145742085106845377325348096651365385473791160070709885423602411386894160613154646340683640795180283483035810842611402966264799202635115390485186050586264679430613159124265947232482068740845768496395270300161706527064770448209777508849462780821110854283726781680907066392321035916478479464280794953611652068153329511806871966475786064809928164391065052971838164749477376086272909671490478841339033572209526122312855118814482598481157557538391034016562979412690199597247691887384861740428896395148399673215214537403635042350939581504160827333025660108634980709359275370220223849072596607885099520671269433433538545076165315175364151516655590097167297252283020881486674873145246792788387398123478481278476495620909387361226350599113548890172036784924832263214049988716692839122824505972515390006252345885191455558431306067262369742485523808184640832454377462258215097841762674230517675183832616554691644438960249008694913528631100854573510728054634488807514162174922554316216404302582724212525713425281573974160337405439804168063204364536676447897416607252230786941926874830763059399636920820780569547122357042416071980671904043929123355437634059246669142024221029812438295967950775122936601848602688334686831863136236138550675600760393722993490817869088958667387064819943794847687866370912789923552478025377075179243008132915718235152763244958276133013065424446116012456523511830227060674330258962560274171625169554874914883436834097490328188275202574363401672680324597773159752925624356252141408669759777166581692465055059115450416382141479043987557276985244937482610755164687343689821920559887917525231770859955411285332691704347694010901720958804915420209212829596493609735677715605138395514402165791274752802621854923454258018457672742783553461531106920597178739237091654580962520066296205300856096947162830920563696810873205847075302383893291860554590981766482849470412283089053393418197109515740448483691149970538265462702229637950373338565211920620049864478929652877235042822078124830362742382322794907595769394724850833156796728221423835027900635136941368124790377821791540771580725569058477400728064886329306000074642415349517456445924377367300358194931446205784843606293473924488882261467531826814398685793888050373182375974854047094822671456125905864415086072864794800276145948249541121914390710307799519402585672584167566139152920822398566213194783362388408029748488238754268488231707772832435209505079767483909644473551900380559662695245240279316713895585090915742241510112991526694179038832212405333650134810507951109587475995004296021485435243502935783688891664724829246224913864351800875639278692725527355046478620924166719690107356263056740980697231186566323701762934810824433635020131935158139643971485459168435100778980004245717872246771900237617123146282797084950908947447007715442884596628744499036442194192615947686288332695890823368942884892196798847774668579989962993511762806587761210758281476347558430146457054301648830237622656420492922576707066027137921954601016839998625522173735713607947244528787357074682437205035940431343977612022999789273381469658701106903273557984546139303194212227530998394499706646238789884415809795412353639799554757990176466176768930552415257587033821671243513872203684275888650457250916631782229120855720416870046486921164443314855017151485747483035367934187219227808430465226874726679487951710932675475498298648463007543237391826378768850225796841147697763811309982040187324159332440435810873637034699597260286623467398188832472658488637438393077342534678372846161387725425268354367188399203120124752335133622005768525867550995829264234889344658857919694102067228192598072399822494926231002936155062708638121722164724952337186877754628279203670916290680853548438208846542940948560901595110006869948640769878406559493361740449653074519910483895094266989664378706601980825937108665613926423418743099315067176259796314437331159231957550280019385017926090348561425576084887381007580472425951851431856643501991552208347216867327585740158036765540876682127662490967367885166829485265239978966724155317969650171139885995995904882267107245955161597582940724882713478275345622123129447742476741167284138152320730683939972925943623282878303184398535409460972107800873288410417550267125874807585072510755360296069978551091109682007440150979705304326131943858813284980197102510673403027529403309670530038205784209277648423711822447586775326785677423173068729323213117411491310651899159272987083602655635638313740616000714302953146604356789536556247937553533561144756294795093788193151334248105790320668848313007678610044063084649088603112473286646420678133172206497652923121617969083230388350205675105726225998793886634837020464356511045796454277546537943719458869047247375895287576091295867259075533785760981918354130835503579626995875769588180861518818001015645454834880377048285964767306940213152667204030384406024578187532308621102734332878958596872449832287304476014090042820121954267711558054168439207392541802735797983547353654093061892355735287314050480634698714629315997205796951569316010740621874807870489427834736679575833283016417141554653441600543598890231115429551045276185006937017505100151432861219427771238700608188567343960245027470613923578949282167447833539404807935306616130758140973468663980974904757420926816782870247633491870593645417521638221977390352977792150019304115901094128644021310978130555081607114515413495391033820067173481453574729184745170943742803797941190119047792989452613730836449069504617026557558151478247846866060965645369994859733196742291161246962205646684147698950087986611462792585923689530058833390323311303969440774953719691924179001048701787419096519294731320956126761587574835069331014537417246577844442825205791305566847669491660553908826013710737215523577872518742896269407584608655406003028513596555969369821453974714054982891131233970780060603747716737019199101087480931283133377258059909673003563739765864207006773851226467561822737699876139950010319638029704780576612956744398046721615167152903014714479084204535617856848987953153732491881855178606054980695275915206374855226005609941815620226304935810956701148699755808010675497679028979996767078058756037955561512856152053693304667370710035222187925513686859452600530507029081537301565243556561914055066764640581427122068115093476667891945213522190836608099170828942211978071688598110960085922062855916337485063850118742290191462483743332925785283325212729349409940480670143867541250775689820708182999820559602303678750057269397970609846233242582719979198597841936877878132747585851072030065589265792002110446602267604867509834878571173481828099587822507915716099794803305723148866864142158633583829671643531747635241050393179977600671406747137568890331957300255348459341832271918320814421913333510858009858567378617367750995633534826155977867439231074672768615990196964443041083444189428287157489842824703101568288157140977864415805102224856506606055459715059724363270038459138050517849151699342760969798007040143120285653654115702669681723024214744112254285498557838688264183493117086846094087898485483384494813789597161593148721000227407284187499082901530735741258373428801653787927748421564685348429168165897745637682390767846358249033361226412155689425382952407581757043599563737669440017396676546315949397561770637168496793245471646656903158263581950684013521607429113189181368033887533647703924092591764384774132294230900823774065861259804163870103070997468544127615911430679310386484263599133537757087503809022271833645902976740556804872321342182643783718573391100175070679157946669460150356698099276951584718620634506178846224047096853736900303442111225350378692638296842865989538094177096861232450071206474185261680692559348873426025284487523331453625110908405417023913898038217618237966414990042722831518634041946605030270400142082606422663728330021510096833692682717692987399432057995050429376480154809420804881389981051277858898988656365003693908380856907765727407267300504608310283221763440346398408836473227431426336457883694905665299327941168857284260618232497318954719052913587496966084863493933887143319276289935530703531950243705274304412953755879336446123544259261523259977827784242473560437313174241375318289446084378056303969233820980290147369725012942237461656529614814861936619522254477893788442331971386484509184383685612535625760206939437760552525241883948738570076083366309970744188800618573436638027034799205460520840894070888560078328110802637267235711594845092224712400287763311634146176406801421585892600990039541120442174023716637107034327530276123724849083128126164014254289743192520819432632421489791319696767684103647128410756308220358024129339743025787187620137102093757546391482262979526177411243146551821137148445593149554626161404145553791331517335946591701513437260572617262916709669078476401673306569275215106525164666092586615493850891436413214666131681097376153210384145454633157296715772285223771520431482766640619617551739449667666078567584660101150306263123249410245552469119020691449265468541094266650014220671770584830093955529892329313839066461490560416799658668656127243741167847260525497177957518433765080257904474172017381146126974808980767458939398310035571831267862071920636545831800387029280738884193957674813697164241535842903918147981488637665983409238329604066340518035914790129750123227583766851914102347988900226432410605630842674807339752529070481975747175470586461661426950263249294611316238473042333003298118371254436833457643530702537679674022728414420903372501903640362591074089837836433946061399655356380592236494705418002029514918632952491698418756752905600276716185013774357483028005191394063527429912790064627329175531823581953198738421820934095572533821615429807947792641774149652576272311611805108503790648376316398374785634916100162743818145497311084637304510128443408671720749179138756493841787607023441910997899383998306604206229778921464759017931032003444932802659273227001334216457854482616928809963774674856321978461899963856019655363745198825269401254287986244437193023694963108265060912478862011420137072933290057548984788814576677540191938152503698472042401695902966222744998774838790580569963891318973479250154744791089555471971163746291621137116102340197150361364044557415536275210862024659669880611100996109197721806762177168014970869443334311714736367010390995194582552728035256869547572297560086375417876062748589307991330134169663743285503413734566658239657380450858273197851884825806332994480002096377799393640727217860930762392942042319853677675876142250565083134647765082542537303977638272945419817364122865878409737894640691065899423523279653207559924705398497412403430570210060335663797255516085612266227521999951714406658818606549010657392436044803477902594941834166857748170851867305862120673370946797120669009356987756589046665690398669965015479769777392270634285344897992559905775437185119849057211516063671077654396436927660195655579700098805879205813555079875077145633812463657532663862795639434261938201519869512209893991712669844254757705494358959787936821702122219509991043959329268842765650180798678579670720177798672258550145784316191170012459646182740964255981804791420258490579088056190666292007523306965477406237785357678310298299847954597661906680557186036912962487782667838222262498453665203575239186293434188157049830568605298574451790589316525491529811769494544879966194942384894457376417972066674522270050012304115941798151452471596945327774733934454945646839979702453845109060006728594953867839407918719592599896980208642536705774116519756945119061164707751472740592280476684956258945415471647881787003863314619182692509414382898508628611985104876841962719037658697466224882011924834066690391488952475252659629900698335725483467198268823295869376571165962533346732123789675328068139003769597476524048858924907079532215108813547568855909877583025007093783072044437450130972800152899673048829040026751753478948164497588036730407638133744300839641624918874563613107353012069513553650609372792726034610055977267460209932016013511204168685900151403705677996066679273610234975126927106491678595152099748233952586930789410057385537963986801266812615018259342662124708972083905698915795765313375264664845025882046235763905106688387995155839986627055183103435378693569401849089341881772208542471406535448077703981526947940650776821049051752568088089266244736090437947992811370847077463968990510804595598646657382105142229052927511778114213493213225565129769482625830823326549937915500544864375215298885684865026317478556464930119232166228447346474790464621829484489640054025861857701699197623443711129239940789546970354338220878842860437706295213337445039195222352143558913026800250899524418963199690881970631471149598292291290331521562484009135105539372958442128100012982523848223136690745770472986873347577020317836288337290386578694543232096307769098893283864476735579735864793705276159096800946204428005965712280189289173059739239542647735956758786722335319215423128305791062961707834839852159918445701144544982858049992564022116108985918996066066760982005633445287809996899656497240496035360431178774766034218723804113745268763834679918215203566463450769510583137211687986285027196551235060375379691303610324102140671649262426700618679544644438986966101587350577606451264553083000779751798545665202978293899242683261545878149120345751134607104204104423118796181796867834450088276419503880260933627474147919224235531696603676211712372670708068412256754922054859518445787209145428330380075247284615290316373889155676310431506861261999662723401740268908791275476762775388420058610864964199026383202640311218537542773082248865452647246630723094162283018192853600363676151394920415155216690997227008195781542055658092760602374543437986092580827786526563895077904201103503594760110053416468372656624739331751897631902425435066474156010560317138406909957447778459422513554108692036994359758339666981055992865304487805346954648073820652959299306412698807865220212665872538557675729838125583675025160624968632806383611471108981681598549248958939140356396966135264783280154386489698220837632597078126962763255124254437684965691288985683719649734399705490605395025008631421956782970580354059640218882684105829672842046105927503355520578691645588800051153221393335768144414338008766950551747138994013876772953345942048766402625493353913447850565507314577984640367664323860943791835297271755666898435930011847309348658351471211037249048452303209952633365887986858230987969614051665636296849397314131325254291681173657667331140209243864480851946437820548390831185020102455929594841607978528920556047809779887464641877857998927221305893707080415529435228145925947122042265495992317407681658139405886486191244183383222015443078587425429492475700973999427608774437934629826356550696428779598398607736828668651665417604537820135926332511107735230900401513136526654956244422250927296227261666528842882391992761752167592456849596316420262588614743239177563891165416619506458544483516756476754788676007422219606959048140700012738316489765207746000885379320513134945776986448465597324791710675011585637697510264011904607038807559370990504736378339398784917469550964687376360437456167096939914917979520647112276440955335293609440077080673688163295418211044320188372474256603927405567852372953008962367972889001979876882806932539148322295243453349489552607111947562021386728287513309171891887152227075343222273345947379954472280184611195464777512952624621763701730654563243126125292993038413730770505866703755438046846845264663762271090774449026984058687824360843857673127463955055997932524575852738980466619587478122298934776793730090911949016732220444317342507453853342977451906608496129564765533903769627800570583331786929380015633475223183129634015741444842207687106675279352546110777752800087460530508484093211671423232083465999696276398192154573571646890845108826501211718227130344072262425792100328122617011318111311652000546013200345114554742624809498463375182148046422927940802507235369290486548326740745275185884912186064017915159778721272852982629715703995488914980514574962326872560559401683594154996746506124423097081300023250644787956316183349108346832205188556229409384983888625247582008674960820773750940958380631499545825436099530120546550516805117838898986894272343979196021198094948671794784152619751016703191382505801215217025396248038782925745113613794752083719201510631376334410200069400559786216059995815103692855752539719710341090064959162947840790266274243251293140161318494685333660608345422416419785986093458107943402029361312681627865540027295026981529937541515431004182033033727435972194808187554085490750502741536730153849140301450395602946281003657177997194259778342540770561463034728059711679257939201713044437590014339940372475369684491788052058150024345172120286395233357447332196371497991342779264026369748757103945859260615870732646940883786695133970856959314807377169898182287186047071041229693725145015748225784449546584095266216691571800924854533691414205862702963528236974149445401926105042651385076047016816758818320337255419758759427602062749206008042307814527883817759912096132603209359621896062419007619868429623172891557577704313920769751814650851819683957893435004899353080536544620291058599856531618434955461953332530647546653116490375739728223903148296005643729474189135391582677745465795628927160134228009725625800082122503763599706288986546407745544620482696628397956343451168261647934957201362452077968127356177299057664548867730192692829117879444071208981213196325009138416367051877030382096946929286663581665703481090231912563192254796506393855985853291551724203295102461606982713668951306332264911255805652512109685722614395537364858790075791151082496630585439205262591772492085943120280660633065442077201142428367008841004823178776723270748558001918092162862344726424550094688854769645583725793829403421614697453475089570896210133024288532737780431438179188139517112000826064660239215189516883379864389991738288864166334471376139332799360618020152210482168677793968220558371395268229736187779523598043915074890064805196493746123657376416459780312258799393500335184751345913790020102025343030133978707696482838760324276682130965736639303798120423269449536484416227230028009625636357658046923187439110769052328994485588734144864551534845455646335305949561165394627181665451888172265528217725963583208691530175937135681639593900646390575007436968099659841699285949775104736378552071403575567293066033903749390170256758367246926507734626338635830664397559015224722749234002926422290086470694826546178050494308332857885917501737386732992191794637208876231424278906824065560676143514832036894633462360411881489927694726672900048759801649751953989578835448133969208377050740354526805451719850712063438133750335773994763166531036388155888211732301870089518708312067218939954049413234407351882205493532700719273794021018365546862497053412982454976659995959814014126999330043684921732126276252627159807955432600227440198135583446276594985297625736750887192395236751637473375975366033802411803004339963603527265354513710363032891171144295997658257933464384238919867436152974917053599872105431511029446843227455292775807241192290726792132031572551503151973630514382896260784545006331333799545815694046697612338284528362379624264340657267393129418253946118317754993084224642745271246196947014770431823823204637569327035250390851382807411194981935928154600974888681567705523252376463937108734990258074847430582333484154768725972728079083855078957379081162029558761946150608096069337789310352257424390224642678496669161428472780855011055587062605961842566486893237572132164122910560468096539318034267238530625407649278968493933748162324503237894021567332651070770858667140268414538818894321896200202349440547868540677277075124294876973840045599223310525314232808906219125755296295148292487386705593937487640053861570801364522526630380692785714823036278886979941658229239745131405048311335976998631079851181484266427632679072828645157491318583800973828944934478955930939363809825217467975955114701777664612939757262189309371784240919746858825112863770574007048536152794678581873400909255925320983611138961384100350782887216075067769378106702353917534122949702817507351178406353951046896940413135484352262811516355271037792479545129150586353752398737218456898319059573951313939787829441188083872815060889765340539127399910533356782647958450492591694954156019964834395415171889872007900361672039809178899300854221482745685471039942564340542268656514999570265316440818954808700993540424335021939035065829625468979221905358320829409982963741470787022126758948572622693019891147346356998530315731681320393414842472976155355394530586523135317708794474904501803911339893874371703191717903770350487861315015485725556773324664185155281839089952464454927824411349934933562144007688996910309145252620538958540026626931310639377053349478691609793824159632179831709301747151924961062993304062533063185610081935753932015662915235010081309626608936616061184901970648098000530729631501597538840718109147336366341906157422600017285616664594057527921290275284016251579104996900418953005945514170464881726783971132760270518807862158223167571578931611166995553686640024805613054789810202570296279166900193215490771737347137915878562067703258911506136240255294614719696782916400963238857635977286042594324392547958334225751504252259459470573436632774628510036864504595066067985631669425303500562179633736992164467055220108397830926586080965553936945069283783580293831210790855149328042507522577771887694038821378223705426109668448710403613894785918710685162022985307738568117950901067536667065724055827994152894085155897499808823599149069806606546372589350589261765618916794816407074695160314178173599919066263518584742006929447109454116872404306770791604040712040981909443134817637027195758098991485980527821449438858152322346676247188956907810038913186192815252153597996827674069895209380956708719909977321080378741279387048227030167495174196569730555967042517811864983823760839472440699393718100983250198734052701374611903112600570882436035156486398208912934886315514596608122399404460469787380629930125628940563089464555617557062971391619746262946396569246153046353488463371359349730651637578074486041705961466236751533989950764980845434061979977301259336231390306786669676406057635854893322320676128361315312344373808479477022330691457921568481924092296744816560270905290417680092349277489226385040925250544154473400897138692954131282805641367057399694970978679699745577805245882214466659957675778136642127854168463000078089495521787141333464761491265106895749370279645730481717612674107067529627304906771536482255249380290327918142629695711593035416282441951561212085795240575097375487243972317572347768858025901534361659549219825469178348246492364322265887602649003596454236409626624097258431430430265370583368633184843980868076657772859350920165753932598700234768542789787530444858685954268022781423758293876755170961658510059574213933319626928054270436986432607449731907590385008928851321426701786713389830346105457296488490009767164963840210973509993287446603938163200276169211113784497939085402352991056359991692742103672971485496802503795876678619489954937396685005485919520930128223004803094913990365721699001702997703153842345143581092149575217096397566719574930752287265834657345437124586132108427104453125448743218519243832388290268539847684940803420456381020724883001491328440350769836940142101461416961242519465995722188142898484854412181274075455729494094190727634464307773098068301165244353684458569257783077214379740618992434976486835027289168078677080682183103270105070481413718555769202404636958520088446663527980927916498484505375051499088303910957187308090506806686756010663846415681697459329848324284804537309952224461918913765579846014046301521881331178855842149652637672561079834501774307428539547559135210401369285589396460060046734832849215260117540734245939039015315735161857564602751705454706888303726293379805084609260935833451920190389937664746728066884089423172491787983942089042380755418197643010062929271523200447320097344948964542598128133570407313285323356753605283850749873019795615819823323534165298595811791660137159002367508658844145775150940941086603019831691781355771149970786270431602057993291371626635162942165816824307571856805284192177016558525767485947963288936787063549786191617091820879348689505866628104475375414955896784082393338118984526332632701740663323490835323026375668214193205134964170533839477591518244677292854961644533384421770086172675818631591495242908316256796629045961384345522091882050069430052621420794801377245785953594824944813721466337372407323392880944595245462423035558464055115515554024404191241415908723486763340979762953479133482961177702719890560481562457214799016664481688275078759652265966020125246342555456504766826737579839846513754632542930087747048801713265295799830314945639719689131133477205926000294782851499131555611198710766215567327035156203216681654516721905424925481970472003915515872869948606901039842376857217933971960451159843603493646886478200594208757162169484823401504921387798196307077297304723268951818105508607166300390460605744226740853614307760540149430081918382438138100833330208011578950748967873817146853056115192322406483014854744604664261659610520578165180446572409293276156015898528862728131169887816657582697843723218485824414248959412620553314491532372121064878589558887500491982120127974543593226131752815495176103974828592617177306571526427697749405712946332879520581039997008467152819726525488224767350377114877848164110593653020192475622358146146589063890686493207635451209177320422860817705669325662790100865882608247224029129276445534168841425610668640581577659755274698024043413584476661380325179058696512680166239354462283816360510496200800444997722548636606088798158342303416303435438915411792313844135410200139826984674095345194348077470850942807946007882453451788131680559591733302795293207709536883627192906190203129687171427181028274642066939858038183969956007986653329891544875699772333916681521945230698673799215579246637826859264071788180236136725093239301046167391889393721939292677486653407344598229215723784971892114669038617841687896381613044891191826505203290140487969263099855020287385985699584746746592773443818389335783988567106887963458670524522791345004703860193054452745480806780618683744257152538687873231907454311842712647055783688939771509682625571629521198272361665667443301045496051083518503547384550617404174256359114155424080177997986969735780165666300387113296014708324707200824012423281164923954276292985290362329124161845618428539578483814446714098016216493800531986175247367378730692661346703919150461167842043942899350885009959583603457341627776185122332701142401381203083629622579721715904999988559187264517406655041464562666093130800154468446310059503618553536890891175628549009847449205424832460401079012473879323349829861990677272082888332903274192201940781120967764599537427346873508255118720870294659972306493757621925946220748575708801053737253710205964586737827897693152914838093225741767049984375195350558053198579203369711474687899139501926920816714513780099290873615318655809095948435693460175548832627302254511104308842790130620968600650599287689864003493037442996306260378634595648580800908075112233145793654566032952058398715107754736162532836516981876625500925038582252079579301210564562314333407775807754293324357527977589022476413506248868319972854874585024649434906840156705441533399154803293966472708202182145791580490136317530574608572560392095982861085156841235445022241712669287318769175487163546195063035199375540956547716188154500735018555803425676143122667168025452991223959311069602300019195210533069976483905595293402877261335312006323445072505091610273992527748542982994095165436712046378946914503512732186523619363036897379504270201125703528938613004263754475854587212840594575718547500766256059594414840332479892143835246970484408620858142941370443307702869422057432865390117930583191475211006244860958304424293391910236070068712199558180302801178942632877125875130567082064547458630451831533755343904507920598643046765412128708024243741082144517197234692786164325901449936609519842314907362078538169869430375874363704019683491313642212547695978556428753086687035635440479918801305503510627893643476658832719740541209396813008167648954298251315431772981975547495934019646782641907092793459255397259403976197373429133681214419202200511373318516216577654534180470850500389385042628237567995485048180269822377691212022020633282635733496965116790961952957538850852324445174047301189865578385224610085734100423491940152296164284352744219070861160392931809672164116731660025441804959723662800415979853790340646219274803752279660464003749428507402635025321026719044155721913562187663617564821240874129933251985311993381640173699283659648422191101594816620749639446194638532393216294926086956480523857477120096367061833819551615956635773802366076666973984650759735868348666196717642882087329305485095689110559783571853611617588071164669373613452495884432450526344298952287149804026008424414039716465564747800343308334154368725456451903889563905531877645817834242750793713840462455657091839051235860382625336551256987609663658339358985978583747773887023182892203022072162802440549471962017784512497142005780096374136678217025823800128484910426625417326131173727684641201103167482235211942523609351089174054906549730182205040902913828394302765954337429590274120236883586500184917025813141057731859952500125634034220080207269946682054882459620382994875385340724933399125635114983886343755428057990609522757567943277272115034452400145171322996957652776956716171558566826083487512155296956257333403760104839375960054024875739724176220795449421678807200111880323794309658885861964861034010180750778698683897666584249025882771738252736047396706465082484868570539769309892303816442762476836544476044516204245442452371014896382310892278300735195886701744291434346763109721371793230556513896550164052784892579327578235884338180671017616471846387991177851218209540427494545074210042754037053261979413208509268570014072564580097273802694430735867963264852486188740802512768345305487928689751110336076550479153823300526331515736246328602797433619861695366524195443157228027770164160561758231833668473857677926153552488350237066162307282315793504820613620835825731573806870765049109624550903666546827311647794135946477003174110512061926095123353454851759004405830566867204452453610626915135806486909014368469517670735714745032793598473739110872958880050270345354708045550853903524852720782993651720286221906812971583649455138399359451600141022087348945555435408190440179375225947440012368718492215148082990101161966115285730428595537330271251997158394937683013345257513203875720708836760207939833190167965087562552317349029736130322322173104445887397143615645935434625598172989493296032026182501186976151336914525500725664150363917814039897877483904726758847388262691692349403282703598955587985084246582498292319044459083977830256139073673788437706652219721921851408721541690538244045143546142961596720837206080741415734057619420156240717004457731355277958919542247852097809634232001365428742203425109754379857444978973853586516563218272546138753660971320046741966688560308642899526721466602722312300933211523543953952899327258812855615868955577027924813764457576785827659808876964638631981913603947400977076391484433810043873492953494467763271346011031884754492663348787970456739275053292995675035372243254680320659651583603765372454463334337234668234132144420846670829288114531839718763070580047462767118769293905158651333745582805673215155126996664849652252119885315179974787178923561089742341416782592392047809468634498358438330069565199699067299815016567763577763343711937485193365388254650953529531242823317740628296977343383721404410077415220486202679527341489903088419727335080499436550501045056277615051680548038016485526379690248685736611165744810865886885654610418313834749522056516701378158414577667648546208273319891920534999162130817828517280509836229785624187383101942023675248234401698076892328034825762404181867843488317089037404738594496491672725051354272830432527719539070013860618888414336536369568230659698526830577453117756582007236885180666008783108430523487976877486391775232313554144909186741572868888845728017527566337127018268657656261238021291002072529687906060763355209029241798757958320507709496661031241349640915733503259890268952049424744922296053440168899256715770273725176889372205882683454919475234809279976252103457601730405129476936641050019822374337339640128806654492770474297375369411230422563047818242563007279539569226551412380249952881707346335707183928833313228199709570460895245576862380864219233630801953024250970520148887767927451418024102410285478213812069490814970901882148130007493190610183416696648083648724871616919471380821312555366063603929778782980706041012779534008358587939110314080564963584433904211511492061710513443666498565086654837347711883256294786901958510883458689530353775165086102844961197020683874070417359596070860001695730086364992754946990307345747686856266100753199100881312493315795327394252933076630358658842416508117208841631264743111217143150658192112640427871847572676661642163500860732808952535808600500268512048384354229594635633323505252702474587377181465802519418212179389909780814183175987999044308502846145545696696262716378418591436370584041127109727647852722118139784615026224264532949900506401995804978865457476782651145678894505537942740845557797871817217187669389056058390915075278388632004211942734251761659479617604993740736172785623225890058817397142658270611504588522791534858068313867710991470437841567809827652769710498965823819023729275277471276278718861564314772892707851008242632749734253165828962521477577230142068686774621728579015619445609243724533461334590255861435677231424841653175287810068480064485788147935228785315656118540534220168386083226001131422077009613069885944949109427117757737974554366118436422465852902079191857570514090668951480979715128195738306273347947962908837884011922955619505273104104033453373665624401895829021514483677061999598068563103556593982314004032125418836647814899199371811844516791285020583479397620532747764641874277937093224014297019099177818314995022745482976705208106687973832938998568742652844110651894429707616590907596102532110644281492201033492426551118614819220146005732310253327240033092683934993727587748514031322477798236339077989597975092680649992506112258709163456272302850878756175975560379405027782808159082288796130826157207474135819620138723924622545685337927138385214162756749695519784586134302573569488118322601688554760868341924247220172306355428325574541485981596289854644589430321607530012430566676724098721233378910151432890342887868737840595426517814275756411997200689581720847572915965221171708176801475317320242968093358754249042293781285222126604640890363263135624724929131037708847543657992826526452996800755159710856162333302733890947463396581041609124514896208876882856089636466822202148463571230591987641961070383243486684631259927261019878807326299187629570866369863273366805581273594079566523180856563283389039959651647760377697504360864671268511072966726994234792364399247067615860105174885272206907987562385413976771702608557440066284300785536731186919764097903246663520949330510223492068566667913985955432811634228706413093629224724210424582064323641291594799402306747254662651283200904649422750178829411798951288310997562757434298124471702288097478670064634469067291895885376249135404113040804579707977298435098410722262168711890321978359501777571807566922517665993771132509860945541058447337077253924110840494774501440628855569431455817442196521790286875014777071439927142268506867480388175513817999621993218888631792554511133545519738008776102536703869069819226011633663711802403181248368026976818945771052640223810873186354793713883466923691804450680217971160905915888762045591010181927299026374862064885516298248922630918368589208810854555298931989193111377162023071313755409429521361684235180440412580308154504541728263986367884347835937516175860455266416790687154049992312193940392335192941413986171309754779804875805707928506649545192785910411062064044931709145918542903618999624316806215206815435049029304266470828197061199430757673190498481356617165078551902467133050584150085122675969360463080291637661252738224028189502091717306991563520539536941860650502606222509288491732215074398999693504852019970672757409519731949482352429252003945000850342021548504714076102444910066960143649485215732935292209394834427926971346153813475455951880756744580748527761981625740661664560273456477529496272433945010859614835233120080623745001086189070900105891142087231353269130104223095027538643331578158078444788207462296907493566327435739960764141782100762098281590442656100144847474070879870888673034898006387216064644441685708848114733370131604496537802476531090530720792059775109201587129308605294022378925778968463412746010527341194824108232826747471612578415539133807029396760960091737513227212974465266053927582989647379596111199369323636545841916059024964325095010880116661019744098115396794348436305937181300098527073650143306817329059058666290397500318843964915948362221580916101856667937457520513672106059272528527546749220952410542885888698167223183100553570396028000033826660037039845245429770691385888713484791981012659687561984857158480764240826451283420995275122206369927711189183272881314757090881271014598618147561004751563626381809891201314404994398131554957647822156553877000975604947295050305692805999401484145425498581543187665860173150756785551625830050986687770178570303447826814462213028563413136746647871454950036789385208297975238506259887510765215805541062186841818407361863095615933484280173333230779901027347218092175046523062441538742661654597714949949077572506282038443831386289965305145250562467127526219433386753113980805824398137736323895054339775066595249885973483163613157634943273948554693189493990957351320832158739907739718654314678786980454855356184985692104649063158602600495713051012497996047067485017875846685647095829199480493368251419862858525170049681961135848173365338523233416379010158304710943540697814051598833156239649994058034694168217837670950443143112309761850402441779193714372407923285804784715501390318424149348674005650875123199360485594815382873224342008362258361638760025127237440908150075443474916334176090896317190155208597661236149065356264320748455717804725541138713514109378136894274582335236254254470620284929584341653476808490543146406492332744080587838291033713652513197611099526430210589211412749461460443442841863243595017628907156701845822328366000088543451696262109267120145725011782274111949068251548630011489759611811123319684592933313524431611027822152392324220767673734927304256525606794068640230339540303305046256542524079279719917053936597997551065257668339908241213008384695593427783755755887387855182788358231412209369530539432349578745591871968902217883494990333799237428146709341724811698630889743176580364096137305370030057551946623518190451125587735209006606387814625628475401277429058180024593834496467796534881106560384470104253690275232881275109388147687038282829923676038650240813890401835382201999437174256811422708414568723004961666484794468189248801392528322603459188364557049433029349190766193146201483194578211468726676794694075545814650609485578273629420569335413449089636677705857077559907703513454126970324528866424769506176397814811081506196194944593510531390753999699030714117783536185644493453816799591682646470924382853986140788519592889052292536391293151645131288312724321423470721479096028641645687009443256707753707928491869758709189331375793319651567176199632284661596403253324800325035459408483385278475323952528448317284179886638512672203202808906030686798764469565894537060160367988500065539269465969917826522650918020974859697349491186669002516865046408287740517193391929716882145850888095109699375570758993753105667328813461664434216106421777781426438465159056384927688840347479478055029316545541791740829466842879807906410591875542277611083044873074404825160214608314089503511894293708978410847937423020358952063942008815553869416119834733607116421389325162969308900296494692650929478939414896834465210733198066407767277729506581550237760604543494909273245230124406895263318843888594342754031947041121338108852947300414270476975262247353281231075218321346132156384433943301660623505351308598843598347942075004838548793406952309712862117247309214227780895362968116597715217345788425849837733534442877921030831388357295396442706694219878010126143988132754651267225128008408264502030024967512555810575682797311347511090513200258513300258802456866900704343903280756888639694140638884748492218796158016611908534565952302661765865800892300016300325288505229197515061031171585902111871323893434219999571418881092663569184051835603158015113239278543981833301448860736203848478315332849575738023622379139468757855462932280988511158273559408258337917005475013700912544353702266124291667587321879188348066644003594876595651521425014952086606182683938007718061841818048584714731466948742090394622548546638415239444565889695198872709429855207881785232473878553247982155040583671114970747331232325272395369415261454558619089527253558265329452808086823748023199965310601070012137162497047151671109458646076277309640276000576591781944901453605470618915363455923794409234742014748292930877490495293954428703897752939065443999265560466574337168713678045318116604415807364252422941855212571877940035113713241396493344490442287754340136858417166143429746808876301602203408449554417070340241202021658630183374275212786875997459460584372886298973584674465817897580997600948901069657521708012383960699759035390387978154978535910084397070986915685423135522175759643264675334970959432905849819320767335259095778773087835294885402831092248452391888379917493300854920279666964022849230732613005778581575814530959939586949073912349543047979952834196093294061049870751125068775315599301273318246570894629200138469219082474533182661351570450066677948510771870557228061779830932529332854953103321449036458057414255771363226949601848313932288358774314755330311343748365025597725403363215260021644922503671348988169486509828369857533016970198847580988473213798812030863012262413198541582367315438271475317560089669387860503830936658143839021818175578789046333294536632230697191241944425524373238589397239895107361482061537771793751331391290456299879442598629178714876152950581769947660454312643592574040360179594724804320978192142373345761244637690028189178239901796924333297765812089723100894691245123477783094364462984661017458250651153832747783452675043423985536078420681895348977277978971605197042248365591376729390497283303941393445081467827306301245561380610687611879626040831786104779530516663681416177024487474621130217731749694726089701002492863461506077844627620188171248332728199778877815453109108796393936904664637236116262790788467090483977026937945775164888129523624246415332482379853797879082715234167432428189199826781079056697645332516226019227722557278502294279271624183863321538761822508496731174101392184819283284486272870310301793038034090329180597235995026079861648411697675116097607840142648194862369056213156941632584115386863022652326779013388688560877219692081737385482897951287037750118441762732298074722894189133729871540851169259804530960516621648328599196036174898630023674475129931928445987968990767940459972538718161749675507997863065262412214848176251376610397797672798009262123771884091788900358759902715542700005282992672697438994046237614511348057472155713139637545255892778288459628207969815044850704699641702640973836288314092802860316410733081505062494488269908917576337248490122510664985813950483490514062194477940563806398156018275194248985506846399322142613980987476384501891428772700862618860711456960404789854119749923437102661021558924505759142021970339780227054369262521061396687413195187487894052777758279180240072055976969292044541769018394526596472823121567088359683810083567957265456379058112828019215978727484519770401045872288563542402753169432618750151413104529367654383043631204889101362445011392933481752329581904950169136054277621923126442163127163159599645622419147529002982517235560495496661526596936778472027052585606428300881987758312057065908721480459228898103092276701419870136428334855817748511317641901350769710980615847193425262095738181155377316723292593750478935973681628957533538206514718693558471546767496768228761005435932251192226798352072399239095788023853777864356447188316673812364731652009349440259058223025658766527964521534723209772721154674746385038723507443294256087599813854851916175202697275474545254309025902918164645452172315080396930982542393709752810875057787561886664087807498574012324736591459299332589601439616788304778984774235419320854668862046763466627524777242462287491359578084034621687278271777591336639891584402650166023633715421461218019766369933257350858068233777428671494036362148220405700775880074811766502025300385776973252875452249092624937661230525554408555438746478192793745462769396759089813772882578336177248575680913521626128068380792525414222156607383614993977451047432238416359583540359901584008522058371792310176566443841593660698743646501136960446871832996711930426308516639880669815908004261759358880879118032513975414434241564370002452515234179940684434656325503548472945384642979092854325405936355023008965652837569942936332832233325859879272975905085292682532347018423910810617665738105516242345773866169254788846407588997074184079572381917418154859402707119481513485017897394374617074285138209258555941478207084783279061957090328374750724851475486428461823949390491632251240641792253903504733021044480973830402872437682430148848978530948096308635192159503316875995601505764026332415024340916452882688622687597858272986611108753390114858946019201551865183268068823232283633041495946910973982969086252749307069492626736704298675152185272193384489878700054779741785091033168724509889074988633900467672259118400664307214220879689941855308814603234236387373331497863757690976857449615985523563642849289506595893478098495174207792798040282975288979926973965183386737187214421343909351431775196812179256595965275227636644003570495413190907109098627050233793852459797269814709048449760810458845948898716523620665676661540881093785649019182722900079832552439062838230135552426217972450927630434444327829367879904979387268085668728681098732528475611339259570260009304045928800284641383283098920724618341749360703328002000190642034933514282173238570749795719826850749914503910722678193555986079271030737495389991929297527819248680412451846755507095680506308357822499762785015995880738909108876235939314930695803295904212666083939806498801756230981279326597745679412279174229740491001607807151010177478479290787227850457175599634687766589410357447811076271396199595196399642884350699200731908157144617270762298493918114109479789095173528710471216308695668025587411724330349654100164234108037013223131026258808535452761315560557965999160303229886317669853462821519601947351172281493046980986910651584779130790888777591720646105055517603749928281786477640983905736586826668492803030520198843803490210983758888473887424362507254398040023326942882331909732455866843025932604760529154612945499554900070008476002622595570784120128230923351684011379642341571125814481504101710953850802769748052499529267116886906878524197232720320867849135845711463100731010351586982799504269511130458320093988136781320693061736375927373430842274930714749188667354781331377372945222408164604347884235944742582069756880431112104363398346689906483164318067918451588934468719467274039069381374611236485303173088049227781064554803767368914015756055931802796985478016744701392899643109803049356873339647835349989521701613514167207282183802466013281572589405620015364960904809975369583524894627917336591784277845310119516068636458703145630251346649089197441900348370495351911061095175828128722547414180201126331288068769642757765757389664282861536844866504938886101893634635494816483011588967553804831294959390841092937121177635508149314745475922136109395187201908928065518327988107932841825156307997696532031628131080289369856121437367680600715152402569823066028041646047057860775766362403023841606476499811848465516319478531624911557341417126214978023580483375267950175380999113384306780581699642100924891335284764833565986491053697519566729060730997186960136394510954441421049042075138843282813565757026117460722419938717456821101640919511857811232594443939893502461220025273418039980161982017354866960284708129473922915698779819461142012847765527272733393000066226825360657201992259324872882082839588596952299001854176929393516629782884830299313140947765091914209639991498785323392370910564423171452450096321778871766880281488084743005648188106852728321120633433981247520999665659952124531267021792455081338291151133985195326733172076485106841635412022055318669998301657998813033953456610581233618760944966527644038653454344746562259952175771819166442885816373675252658577691711964693230073077225044016680902552706468061109887960239119398060838900455482390156931866278335544176886496963746394274404702747916632041132818427860847878487682802644964181318005654023391666490667637567709589176759137078228496268030734884431553683768289026508637093591449147135965189749081621344872968895063119996651324280153276775280706272383225051404637006059082624908587116322209450811166089718590711490965210465341502985209605303736943468188462361165930203174925490903830868532643667630542145017102745056534887519137381918687807528491653535552420642401526834998344671063376142305967237409807696483419410294353377268191897869821108704582367027093065334372784371372389861048775740173171149078550731673151653567936642532564852576853592437038448260386920106331534350295246875700686877641536032977768976534530425115620605447975072166037780759943255637517759697433760430493044914592483756293254144387503756416056915550504339900787909544975860961466599377405459643404143460433677969843186940056758461038202447899130098150417933662671231086960746240611495061989798760684460245467927613216802651889191492566868902000213150915977744738171254399479104225077872268596881172398380782091962431829561507920072096591590541914870753385430375346374011746464683364084903941389280551452327037756432304340907674043651658702315967672763308688935573587771736746087067854622213918126530585601634146107684575553679365979293741449300224795851323274827733333971418353364550788540796763381997011546255536275638625136342633171797127995940198195001534894864629615159590209555487192637124589217922947456030067673887002948996245383500216015095916979411949311011767065217059294643798442371226558985754540543507079823438713459584748006235297636972340685818588111457308780336332386105407428882429339895634366833672930582780626105163455126705260604058478950772544508824493559397244178506623413589701282814221508897206427897539119648624373330122280386258268250318689125086303202234263591624522550135823754428335604982949653193453046414690349729292206006515127349598089972464955191454163748567973084545885622166666728394535914964192841411755168696423723073623011582258200624515303361485037576209383401352497028193628050526951190602006619491806783406504200424499908832881356784176032584041645856185874015150228737985778164427945326110507355229222770863184735872515621122047680397168627698887357573199842787163222667410531499031223248766602748199200824361751017755002742219585325543913733074390133784212317343826132943533726831912816282806627990338001230530339887608001766436251686154191027613535279325256993303295802521384898369722703644460920985175930778840249528231438309815699500820120196327411395320189900217958249564160690918786766920508246553392006411887115022173404550235805301990507686521403920141557345704934582490608305910105146714508118976874311032505478895159843642043087639030445131322055830808921618622183750756893928418108453642170503198338321722681050172220220099991769029888246843500732164575958350865946865067369333701631912712175579436643849827402072252904345023375898616633936788653721972858626640419973689531133325740269828480192897587673438390811209185034507682829801675496498649241802940802676071260255233413286025991931635224441519100525308486287157448377070465737919842438856938180344190981931689200515775124682228216524703597524586273140885605240766359364106853238407218068065080265565621740082492752518937819221382517258977110605823672476385855521555376310688414879509615266224599854785208444117243338374529244342768377561104745741483977555077674013299376401396887292541861094732293642150308235696552292640997036047008499832625780896801342970788077216129136397047202377846080333499438089804164838131473498378843919847380361968425227046960570729209490223714201713337167298848534712882097233734800572173532534020730691591543066937217009738213326486218547913352652804614248717695081810735458452345959511602007646236146791918961202892644285470423222223652547129664455523102199403175503005738923244584143079369318006932756087248305660760558377732932759566102343584675875357829072306122879385060972725232051923605376255336908312870748818988051663703637214765387110966833692644357980232919821686075822055529847294721146862769156291632920418092483647264524064616432313485986475802733259097975289000042154406981778881405451632156362885436675856212351113792605556032302232659931506511444561874904133150776339690432867063827621571051981090365157344492136186925206449015427611993952157807213354586198402823208980975034285155842071843492849650531879450471210069541079765001734554670206259404087495713039318702023954739586409376680339215593448095561148848634563221673368379523911406441533184041491532378436284739220754876519320365651685801905466638794239875737918764763367631362928643471530881735003333575513396491065791782016211361801489060386651443543718355308008996923066489892223585556796639406402198743630038829225368353479217259634146180428404839641041334780981704314901008057726113070189175947373331332294629671632186821758096152513442478724115770459027676570282858654712154318297910392892494735021726926669205718334360999708131098779016381778540447443160880745603914225493485494389942539227469671688530136518768287678101981150944479194763625796392067360140212308664695346876394611367547651724246009087543567791210513721656797879862534507169629058988042707130649113832876001873280443099387783147334343385536637574720594202157648734901001023192158012420750652689618908652997006447331761192243221049823197149175868175192348755772215705605521399887898830285139093123253688559236041997217508479597903066142203774306953543866865155658762240641982515838726813756798278121684847709116585295943860446943695708101860997838771552617202796215530800211071953586592562641968946882782619481253962420020786309442976673548264587570750047706831937262127152811691963942892943892787538416652893826887828734453568235391640982297970981801784004510557466836179309507114038225104541874315863832203999008608559314234623615080891893828116176282660720158655054545419855418586023923092364892587120841239555859663650383072695693922358133639249283409861735900121411020038495267399958331912583454074894656727240820483175422426982596956274068047831131925640809693637211402033379673635783133411642632803378147263741977970496942775789714928510764791396907192830831980549165550798865846795112715086405971869225793064057011115850835732361084636120494953124153109653087818721392172960824019177478834056845729286005882591421156232502805521115739078666293812493035210696509958040370326467405685131547212932377942265126746913792880191734881394298425945799777798374198714819438952836319231910895215677806507101732165843102277351710481279739779669287000138993502644232076168902686920748182078135894555333444527215834135029834105817151284296838369634547671956539019652481850876338233442814534978522677217177840888236231134810453838633706275109790447890689094155059935130384721356120824321508847657682935068873781944572884275528088747025014893037981351329357253169418106744299615430203054309050733079885869388502554687673440210575845470516051510310992884188716977165570873683063601033738043347287629893391833312960979154641323316283986230900468320630668283581474986829648601512733984143178373604850876324286221196469891637678713874461524025683402486050865821744628863409919903665809989421943832880665142626432983993215075523324738058883153754271993110075684180083664437163071047614527929138588752172296180587524162745176615799461066042354274493209321848212180850258624354100196352076870950027054554807828990259217423664809894916111349955199103639239800322402731886765087957201018504292647412286720028825013368134913152374086452417643271453797078385382192091936966262727414771169960925658057528838268679123722601999784504854416397799315512499603557978290936774895926164229789281969711052563512730685921403012071789942324664836686264549965511924498772764726313151746174656485980211270717446587361642785883447206337622829244272450748430656345674210542172131831898389907793210877259155530072285953844864769533241835566515357225095298346676031516656334168085357033919251470525295427997597014259320149113153938398841164774119357334319851837410695913213535109918371390586971628429467220667675511565469017404931691773576032915568160141267911792420120539611709849878426963483621851479980397402417641788998067355315965048787213916022653143325874626361112174777462737952530142798411008669164885244022254661618401586762732866721108700182793961467536663810041053339543294131307805010552595110320584030407106797385883883543106566483276136438205559123859793743055380939687014694614005219260391810293368649336601042107847717297422119646714928214495383190202902329327467830467631454775764628695177816424462441131491162680833968339442357598543721614713117337499998736586107727935925448938028833605131177327292628171512621417304491771128428573257151450473333243322581576077446924884708425336106254890955730223039786661343915089947344208680089067316747222158348405299537062271147837020644104505268652346466278910684619090683759054432770002460507637876504743077762707959500585499309515842360297722047345552718766552387317563669197665548705766079515167148850251643692044093380024480940564089850485901435067385477282921085476486588719415252237449958742054075671391839007255698634935497918863036026046498644712212072925556342946737573296189293642912064346678872879081916343327766158833984614251285731841538731401443146525598097712430882955131348929454817113552412007877108341785036567149578257237838190177373263509590703244016157323281276588294116911503809651310587170876269768482892141848238820511542346166380929502019245478960309240559792835752019926556170202222503118151280437074586182256718562817835247219231796231294606310653706414605623066816632441904464191320766565235321541535829699756190664935457409635069036200052830483733531429284657602403758309450909986717760782880431989687475155723887889889209886208146230901522061609067174561088881933324565620556849512628052722682538986475170815993468244481861495391062637060221430139329458330652747493542930480205846263392883393427925324169685505053556265302600212959616743939504121874130968142198022367635913713689525760975046664709295715620280307637825586345729068908583075550363749288320783162885462918511668879359242135960557873930807753434143538101286214534454556259156210063195926058829282106847159938912908284609696866055628639092670401766534944373980958491135331970295916493931000028068495365963880000526698135513809883056421711578872357305753301023374327446710244672274480644686291683736838707461486790452735581330047296928038346825558916930428045593384953883560558495824800145050277604486636473316655915400848386906651422939231735575253551863850503962046063249561590138704430944624285062672287208339985426095928384619338862149774594895244251524278627056935851135664179600991290746590612609740878283685754001318868008768792058230360853891580953731122118833715461948344528840099112841322162856885558606290724793811395809759103195620641114597992374216767064085031361001844321931370324395901616550526099318091407097113516009074771918415503707295806002585347835110686578100186256701000455247819067183740465207649666992002689947366064915769491086894307792349971076995011803793080183298800111757286823557943059890575511716400602643984015196619020404691057917269231557994354215031155362079608765938925124038730508860220287460673862363912691728126355318446089008005804009213663816559374104141154202390085645213940195376178095118955635096191569602243707920975578768999473894413307367947538183270579195390672454382754735801295973700200787759980618539820283547683036964365399993081440400859635250762863544508890133108989843262434205169982086327863880846550612242020585541246951904145878882821701953464569926497356492170884841569581493128084083116480874664843666817759244459279614057273596049790757607101701037684965540601099026575668408019930469335011467481813940590918844806320319763674059181187506886808222905359612512115669687621981208171173223143226419348697518768115295530175404611238047102493701435457627021890738551216988510339522966441353657614926042594146835546011055817742341158231014704185368839034335690192387200696906826154583914650276942808712137726204123813063682644671418733316674953354963540632535444294836545551034391224562800924430749970403238054858816684998978834890691930220639059816227879613465566301942335394068688063054372567592434914694373361188459179261051860430694511100536006811098582509266393495756673890289400025301015555939447486279665054768492685860784472859867642092821845755955602993828193094060447333806742888538564286964735201253281303260826727101808204138799295051793352943095805328954705144908634849948460046291987201492342303783039664603508364159050451144170105495273851576770558633369160084466134886428015153700114601611123024443863963503743543072771478888664326982136773231958534247086019141026887432577098969143297880177876995590435582108499389193053577981749756894205348910231025301163918403731233011560050768435903542548531496838102833627203299689615963799096915166106974578625657427506245419261576829765538922159561209677725523375642228204587283015440616480475635640404951208106564323083115829811469550400949133366639274201188463386745032366903820291183581657070098305526897974343478255425369654049740827639605337851992504758071000847634651814248793077989747881932754589804894695914652013002838771919385928597347735452189287563312548868265500009870913379780027745403382182063800352182474013450231583895814586477623910279485753117865858818274275431488048840793219386395261910202447624644004416494449564477780349762313838516804354402269059763188305750231778892128817480337281230249906772640433641346699401504627692944801825419278151903822021622866990099392213624184208325443358775465119281241720136200681389052547502430167947928435504945766124156711722722397264586171981467848610560489739148348025367701812930133561891891745896894613812965184576565730283084232542589643617051455931873933930126349444220215569968677617581277408348849065687358280810321410840990029607844236333716362839699039374547104488131700458571164716077907304356850721929030643450935623076850151017740216358256398037453838405369913104178607061147774589541330655172924591991929733211165167378201800399428340084772167521452791045855350899509163477366299142955265323953550272220452880000690271832020269720467890583831484647105104494633993219692244978866685335983839469490669131777617187745468023355788369077790972736234074981080785769483644121665182602953926343637798384334915522885577669541184920863434804169670537643294545355099719896815538191270720604958838882232267073208561847053217943599981818241335244778361960148262711519318306898177039005897190117465428446654789985026396926385572260040537902298278417988073006309349074706029295339267739299243780684387419629099336130252731238065712524844204261683431487551363347723744346903928521197898063163961509594130261879329221354763811668621574776360286998254953860886215599801081677283602872735003961668993934943258430807244885211323130207106154957743375000563666510336171378359200132461306766674536671403055144659158429049729178153485524885838169529080145742690654271678327029974096734309746349576078949921131622607115960897199516343914229551345374914881072619353244819978407855286518566507598581679367910012567889526153769778856809137381848221035997868759493249046358723782430014811933466559828808515226844979029098856059908260597888457556789265930661340758644085301608057461074609110752775651813108490520131641400048883641865726602684292713517705842070745537411485548629562504147106259971637415873959593739813785536574478318596517197887918818960084974409751927367353391651776432792163021466924852827950636729133195049970755225119821443249070856359369040643094121154525268523175737670530770052909942466863335884392646640931085752369827611088643927063902845112493535603470874096328550839934103586096430655273618834713160424371734320292925509075188555597509234605858966975735285230296488266746554114520200777287405347798289614803214733871216290785906173161655329811417304607080510737699341938158052021667394166953759307431326405066490164180123925819408947864463374952834234157203729387152389361394686912259272397570782358594946453718345027145997336075228050480293790462354726170703894888745808420456729209894864735323680096189825069344182306627600882487416826241724970274030433464924416334663730487143922595256116923469343426147750888186723869640127730053273866107002521865243792385795805053260655425713905734871095322025315960059662613517609353062274922513547769869841996229096662815881493612277243650033141388529825420934858875639427783043275351722268219103044269705158727328714069396654257302285693880953380534807550785301150843424442615278562637500248701660087210349022716560940914250007972483063359603577692258417743750400009645087346961081396507449314640211823448405289387066019625677396336258926916106843229009068205529711300541927665998325653602679585558096974615963809735664562660800080251541600928497340258627002709947915264096315083033341584835769532712367222928345054923835967491799115226619109916782365036488999359282507934006405435165948232335867919359843794423338391886695773259330600601616641522538020606710413252777387041572557674754900617063098534393660292424603823560713538024231287477693401413707630801218244214395381135260624657015093233525821605139576688920707452843029642947103876424953087444192734477370009265809992166868063165422425597512238601769846264651571575913482129225991466691269180848984694868755846634384671212366407700855439748666860930380280034708874862790960182313414209496652443690025690911856853625688284129896975050403410993180340076809577640801072764855945111316621097121315584544209155454328503215043674208738979369748077175306461231187018229148783437750366087841386041499754184571714924770302787721300411399568231967899261072538457223216036135276832071213266665424328748292709105569423889475109692378912639007202467507324900950794369562040348851727944384961051719894704022329072145255357541874808115737287418751972472351589247505735820636804045627073430150977097724347755499602307077114303341787942714939832311611237299479659456546855116661651807315553113633732148726803918901351867575688083193745445243192862908966093653620579398125661236476480395095013317079285765091981495313041356854623205989933618612533911852238659334818833162491748165208185680953101975718652136324643495604399465864266027293893987474991960461480982002548268895971708035283885542341521317808086791600915212710811601970998987075529104977998983663177377710768311965477031776659812297060525014001359781476464194432916318001036065396842555749286080306937181711117659614668715270930286048758310014617414758871891540947065769469403213841940948360834704229714197365930571562007679939533978084271226529682910082342104577648688014465705528079649578835324954676399044286148666724233885799530670900143143033092972887923426135725029839019819340914591906484485939453436862363131844872670804977542803139907414231902255328025345675548277007304486855694802653368655702849309939123294163646154951266004584084619481947697258162137371697779620222680859930827616058921351754427766908646599496621203007040110568010775651845888631985762694666350945646461043959978647170662546073597329390076231322867355011999596876310092897589706144503669445945950617657205454806080875475796440974642986563116660214205796866854463588126829575952678617852205122032047957192657401019801661867982839743491013059454893667919943050779587807866088801454945519009680443503728498059629928842749790248194302374834856897137181288450088738962198459941697830596926514268177689069409618849965559449396798778829087902511186679135048532398573562595347188466300426623984227638432562929999137734427830877681250070827579099074517160180511113543438834086438235814816456759086987794608030472999099133840921509934281668631230176228094443191407750682579889213605576504257993418805911032660079802223414325842303142961048255383134717892192420321561688284722904555045666274980247499663747871375237248952466102106402042536393527617898044940694811696411843096288640538677391461691684524351632907269168037492841022689839541222765590100067270382646371242410102991116984256983909809915623462878072942238597354912426490457275959156513482385369088513478187182680257074548754699182165597988680707534081693217123169318148071018156832205549701628027175175261686851977091929894990225369487863489883880347982035984573744219318603552733756654247011206008791989313743797043459878393838862529779772389536936320181109607278980545081978843345810724846122247953859998758302866538721917601672290550711968528372053028729623925615622083906089659359376870112309589537442487647427431609209848084583324857884689830675973351136203264800710409429877893586534096199264873620116310362223234764922600872822336606530393859269763979533634963510185831638798981739870261290946101066964609252242952328591997378534106456387710099071684439053497732279448232363290940533889958227902054603463987617804558316835739465263441682234152570870819707266273048091492690744761118304162692545666437031654123414102335347579259590278515469048512596995336675328021997872611071749502615778151275486576950178676184266132774811357655932713049076136794691384491407489490841004760242471228416431016826947753537469155041683938178623613526439484826301115613699028941113253009392839069973144326759069821301709838126033960784309910845892890434478062318480902539994804564509028654634211272477954328836350943340492027945536380848782694821968657526815955813011655383351697587988810010359367685815708191670016399024657936036103231047058693681985997759432461106307837587485441349516654311523389968041716780095195954524005039913535768067729427351163541270906766389633832935517067560485688789494945874929170236284202658197974989046377118893259807357174806895647793306960447460246632681581856895300561934935594392309542209402711180860210137807386740724088720921047793567237235280374689529097602148797828599497027812936446749111186128152691749504907224264871927357309270061118448092241985863856536538974669501465902362158806668042735691962790221552046853973932043436484768470958132832238786862562158774722279456490357646633484954644280568194432397206501892887290295154536981445218378281323918672539622370842381836340873536914629364251601535979213362192236027920115983064772207744339510026884492913121386238529482458870810262364533963010392876836781623167393210562189947243502188791391718813397353593330054046248200646547094887898925099896356600770716341048584628142495982637512357856601857879072813745988732284758076617846777120078689499405430042777582001174224960800293867931937989546437132507645992211451625154450604805477133855524839225135409804659246195564820674878933646430407767278210182331288598313976681076799942848004458024955583678454545254426637012768800725907780595077692646513673028799485089008793817797409866921869269173772104559370454635026037839577674761894885813249834607465452616990560132814178779825300848333111088760571772170405696171811289015107580467035853297071944401498995996522117822422854332298294290513892178052354902854801252105067005905566918696617402555998253554739920493783193100864479300331034460732922325736391275582936934623404464137837294376062634104562685762324383242206609793754136272954561205833788183381474315755667600613215313240315024027614267407485194286429761264266406060191974810933290602635251751339282524808105621100108437294868188908382406914315254829716106037645675765707368801509180734997366414212095449570557385874052496279696231086734421582385248176523711474890757701532808799445562411063616953317482464419070908859494035935058349511014602465110498907327048651127153028405854285333831811733890417544764045814511897674686830592998109046252928718219006044088049774743748039555459780260266539817222372299345726308420612570597346452982081669210840883077172939634606145240581550981813531550450583895716318642131522130617485303661266222710594953276105259501018516492321222372503723302110987629865974155474037830328750331468800638645431118382883284395081065675766548110283754149317358923659029971075131867030649897768150123417444122168357308937363967170766136160519059567371875564445528581203409420959560194730058593498030971897081503927845528359106528170915668096883412959235543455626979349477284608423394800455696349530631653164045366897413947703000234460517431431754640906806330063055746154260820793023989423227075091203634685090151635299854469898606076522181892079644216582670530292421760172582104094893462851956557647519355680609910716798032262654699974789415289457674815969549689064451219669906556071439435010223407868860899386464313519046518252250885104209810852998976030310710840566747507330477607017004811884262082584570012071123965696605188379894196456117077174498186957571353287778510947745717534670529036265071086962931913427278461660248803394282921751753446222698810530266688794232091334206141664106871041657287239341380973413006068610373829060037694005637348294384599227169907629212972254249917689523077487680818710957929749530331590424255685370764079614082678824864539109602813980272082726577019084492456807133816988051399045802464349384520567662805569334166610367256725476942769249700009029650794445433832221003474440429915681525916148527441292653888429691453391532162098759043466927571368902965907182326057587105005722972986335535728222577034756726495303078489754666063170602276835284915703339842932229250422277829185669624793834786790229232885154659315125632329390130462500928014932992493205036903072464532240755804153401166988162155233243262873047542095695098774546312274961178551048025963722461296448601451825868142803633494702157115330653611794127140403752893755417144097280240096716026102964777459283994027002674562069792304378397568576801807176086822425568620748426853895101659643904314247355887741517105456325693904002297993043687258697992432562853195109047829303296946633126702925532301673957346941747013957291860363586570410857761220172282282515672535703448705689216499805539214380850457668302995471539878498887895673375263899666728271049835076270055439377449668376108440195759675254906895108021524597555520471638455211864032079065430139375375361615695327613309676248833836324297012389420980797790249011644914014188740173412992400577111050201911748145464397264782146239737474311433519819755366764931725488426333468319961411795782242141181777023922054804528999718311111421204366589064749647376065709908039502557132133058964507422058956077774719830471905667368237184923592232218936701578660502307119019842094227741576469887198715016677049785876488870815129375042439720628749610353303024149532799014655297422187491543724754632208556200588231366470021011917283565403967497428215365036220559195616632374199910182670835006036878057263859932504505078455022503046787123703858400451126281031321384202167460448262002630942301910859168520902981081560529537345339650714104268980445247797379463813722899653353647942436087032038064911411387942179586354412982915681860776883174132196947301262609721367352133188418230512100265739278193884068120920557439797357085680269839952370901838290555477186230269309444884450559909033841823362081159985857172902652685152375558219487424544698757882799164039323817547698720351278029803385293298771678506876293473690723349910397630203079619511902501925110868408892140674641745874949973269238657285658953210091990837267582037501724552536492757453375160839849392411301224971088948730532437859152916078536028948381621714752934972469136898828340837093162434240049336570369284160399643965792471378906401682268346558074020990763145849747085473811848517566829976451741772093425748771406753463070292130837423404014078711105495879196890509012862438585778839682472317711188023519970082214091733055747815716683784491423179628379266192072465983225388367458004084591080088522100536124580095990482235644652428742357535146615429119805066191178220247805625518235074270351323708357810254803470349008862220574017902787809385520278860089185017087239477045449799655073809745973705704336491050733577159562785194287959359990968903052453082590835844640711769412307890347568913684574025060236253316248708725515728889776114082048129466160719173483714573372782259241306718039354423255433472624268746581156200915219901143039166474853536559509431017079743409880465982298232093314590340950971509475519197454843356723007492750436670271418234689671340120212297509779552301539280095734439828573283884615039108463117345109830289784343634995428343673436044027431913940824656655844344340992119179462728266047172551003013422821856722185499785268949194727059955432051475245484999049418054402233372522920196947548460174812149433915461996371892877970050553012327198576321513852065812024783912664254231313419274431344891974354295238444074488159924260896014657685613579152226381581984045945270380789020179605863566185094378027206757828335247259575316917193232140110864713226114306588141523534615808992114055309575773854417181134458557490528994784370680277944255874910331579493863141880220943005228199645643642927388324253848457802674485352103291134833218912585595479838742130108052715424875831100485167598782988669222863666926394832321582030402371884134370058166045174318204332162728722263141058576521133772348383714348991000532224999931413189961036066046276394077114905477994116049361821208359881088923143399789090373366913202107678186101874666296746929809196571581226557107024768238107191001406104972720419356136684806561382281640629722280687785679014939488219616892877356911152757935909965350747069388222263527723699282409299023109090989236907242143197022337433600667617326112922525065624020684129963960572742596413874310244352066374683258091796366125070254697530902814257713817441188601392331071452585150908459013119226607850523459765035030421106013637396904129447688345033058855264416527654225347217645094501710010719524089446693644455401337459660329954758291497542559072895243450345151774631250987080138684022024101059332386904051748812354186460430707742769284955018241382343801463789964089998735478534889034311848328128072050503200436206356257518078412874519193543255708322673907391745134772992210857309691232880091663400023055475581713647891531927771526373214822481555729988051711103207396571862937882714420976758065342698961648203214990334482003861982676971971294695781542222438622999047321985404221737797235631898774249564484157971882922620465913452254928766210874127466730223921546301271322229863699052977890748906556060111197913217835402683612721577877519814992603707391916235864190219142851716898682990713474328627650364404409013021374196748946215271375930694097584574364659162514863774618545011913571037360741661801315931838087721346254697692686372396736064124728085524959193689484878551980956033779920581796957809913621232313567519905431286582290691899245887425522647963911841326643148703207988008778739845187498183386753389869827564068529391733596340471907396038313794456362208427562030595785935900111795551408530559786649423191358432259405285681461380933900495144157727851895769715299196248749694704290606370832071856328962028185572456016981316565203569817748403661837841476666344740065341922509618675488935956636499255076644111883937700102918887922062875886908686706876298211014824429576031901164052923071782047678658126634331300373839845163952873253184113485977465374953950480166848854599083047353241828256216044825715813770850627507787006262578218938344510650677422305173621898127541358589408154056915684961013118698728916596353900490710826440077489151539203519938802278883332241882931778016524658995997824192334595354851688190878498452120521303808923270769229456230092514339988775626560008704035513072681583704058047271272647865528582183442095973167262902573935676683780407091357144232128417763822970734610462349636386155752148338190396172543284977029050111380413455818346842170858268218071662128136036549952569496889817662200313799538707254632223339681096969440364908247106467143277990624400003136025418052622012244739924416823110261453598409552572886561799014522538680121462318208285389281680901305666920235370696799535095869066051779488556612739671897261992773379797541304994360198630491839589235209765027910353120313405015167287880224546936691432625554387487816653500347263355047426166512161586063738417103284462600560448000841544856516504264122138064808565417077645031068022872113919272200375173683966008595688857106323053764457959255818298683690652277742621574755630067899587956580868538750708274257073783257432775235796631342387221114659716707688846017488788932828559441991960475560095515839653526896254272410079333937832807291797090990315696876773526122362382223621145029702177461657066623094468065457455701495558060456553256087620620363396043452771573079230929951373043650559550793844388939187150319915399120784375554955235893298584928773184319960137353876158111641623461581313382596673647680221756293729903410109514209708108167369557692823595981112122932220705876205425864663194512600631606108764909075990290606657476288011485876042462941089078523012178549084472892991403475672043567425472616703280203202879880349134517704747442454184879498958700678883964690126128317215222280280846473476288688780548900090223299204705420392425098085351008606371209682079833261649161238531354661055456325732589174131660065736580390255539313540068062546757812045686017857222020341741938026738449845831432105839073929041286200672165010721868408739913373630012141378520727407335159287506392612061184169454765112756994145551856831711529672015139896043128466273212874358483250605396819165719797543728411725200969838597085728272276616174753468609812144717448247872269649324322998301719236803978892104953007392936901847126982631048016670957363991916500449675803598719157743611961318036452645636492008270203895168599587652683699527224595796522275580800533578815626326759257988254708727103614627418333805508460855341164644024058934209711928300686727160869975047900749349877546898878069685674860407520689697769136836625460470426115007300767951924436159223310788300664118006612802726562430136306450092762512370334931776269150081090865959084224844830745851102121679542922258273473944363890400155104918841341331659980664064690272706274498011227584984883924214076735471382730041903144103226115229693220664369569412713280847409793594003400546541787950284816283391762513747500224546969754065189964048814669474286329295437108796511976186648733940034854654480085744687142814785576826729322477851254752451184338331956902917131374836495555279525961715689508294483596053767399739252507589443806482027444331858747364510462599028584877825798403225230511102829974374982687928746486338503358407155114461852340817970621002922518169444098976941430012532010048036410486072633256747108083597348238399940653073032486328707047223575094471291799465323806868469877767880150695387793469444899335027168771528930636528229561402409870650306784409844331797287998297013804477405467036456801946607186580689913001747590471134100317083987581161680814298018011432136393385185912480742196004203285236107354611517445941030273096018145855547434674392501017140599993818769153623630381717557726495756610084416995306962153244975763483558421682947552713822022254438268718458526605595228150416427135708547335053646609669411542482280939602611289368968601909334920374468785901458401766998173835220972696047802760301126603201596432305351968457716948917951874087094854923338019139282015728767805004709493475221975561679394559977299511770124145414156574099547701739793877152557010505907557385830221887281853297269844406736553473587024375189926661456545756998883416918011916214409070393204746136437748327251359274258723020661270317500370043009033454231301077883288470223466700756538547390095742451972981000569016212351509176456403806921009498824595482712834612313960694788831588842491821179359760640831119372068295956284318835796748901889769183154123591968173836296556386932256603659303818733951079747796822701191159144735029907620940505077770530214738194119955932358168265647814597975870826597452739668878010808383278278990573841660089307508980473619846748433047895905673236421058528735430609896252125621698377983178213754986373428781530954488519163067721100590511164660261252963529588279374396313274934145966346796752303378310268294840041290197728253856041262794929656081055511059710534247162253722067135864872655087763801522542026129200267085549618201891955728002166169993742732216790175611050346622783737615760009866639469573394642557173560866729684314048697103619616749324432880265411126496119463769224980693622132890418055327829596599071889928494163283519323190496726969515548835178259753097116935463244093742173810564519093769524344502527358659888534192701876934239960109851495834875884490214979726092008532782197005725127036258920151560730352346003845598352033441780017398882356485720090195236850025125092471876841413892636924306322845824642743870581462858697257737983939332224875067963516831441447830970873863445530976463604002678236716375642111053926660182879928475356058842362362082597982070094412085423855850607382636110802506251770523051102196349646801390761197858872646131212372250454740079362285114901458594678970408434588916757704687516974685726093127204909404714522850656377099299630415122890140465098658661365479750800836819053758291108841236855699760964223082567660251305002227044697839452343250863035973589457327022624535339040127492888246373519979232829804858041327003033418931050621717872889889207930536204079327080353718207793501466218384660583272447799714158254488313009551276928040372621807326612646931248360200863746285748676891733688325919551927059074413869835477328616576052136880575663405647533758918471797941729029499954503248072736570671046916056995560441206190871781162484638067533907705184905011913297717483724854213129220434213828555210776979664109823154026205770943385601188097179337347585003221552789078332757863341689522975976544981280596665067777988640694361064085087939390023037790458195509585318034802654722370933631276567980074652325793642066740804238455929504144353886752661642273087399959967843382399375331845689008089617727369457971011092447131172252363988626524572878823566771531088105763186924784317854862897819032083323327533556015902232535145490628269787936997341458663760289813552603826907318383999995059319464088539936833558642799999696403118415325224874963155962481546212980846697071305681553630590575815933253067640027624496145075916829354831554882839055070559349879350191785197413986867436504903461073542764494928189545521101205064203567997318404380807802341386262000084376262602415517092425941909234200954715701247604484458211241964188460126517518442371771539960144890347681931350533331456161863469816427390640337757613417439900496202405500039487297532649173143289602554351036499573341328797553419307173887446506858997568729050009437790515433495991002421295897642622867772745609514240436053235766037281920343027692239699259165604517267236944625852550704905670732194961702839096535010371049285466981737932960637522277515349826060838874684177608495368337496006483064136611302490123720222260149587063458703928061595808775003170318074115004709012698440542066057523585777166603619984666488075887070030919980434197765508869897275609500517760331092275873804515193598065521740992271422494896994722887785233477267218825564757464619336271392823838637458351801042345676719214914072938847747077204857138220649587397862575946701626362639901304726298367576779108153764007096459391958325921301839965218954714205025829944289419109920248602299347872455876222422269132169376576278901876848507169063962672520055057002421354924765583752025341907506544210047147610310799213927326227701379860412068948025459534696588388483796325532061242494168417447722276614987231493649644274589328230353709897256231987186786390281772906640085383925429728226741587873187403170466019692924770426019895600095443707808137405358192187295178993410471030182335104756253323354884212895893859307000798642092694403785371594438892806203345388591540881761496069051911532463090722489717120380206914604677183255024010554295161658119918030288174968704473354657468746431958962904668753031453511171828643582063457801289407054894227450790699568052562568738647647662567635212367952529849125743021248853620592527529263833744967773481427461623195154524138539260438651654316876280878983825585799790874231949698957410580788174636635655482064719489619056394926886769880435932955923445989309591285940975168369693303068848311260350442883397749976158927748941754697745710827817872638076989815705775902606969879030026246103933649866881968783178521748075465087435184290684113971139795874043555492766796079882441767760492046343441747899120971468745340735539595510379460081037258389961189145868693671481107720091943159676159690132841038088728062411113099541075845412997415288292582790445988095321817937515693085696509882953280770913877307267212705763668023154826846548616697934022643776377739547096047641144385170340731749634358481624225081115210265706155971022426347061271144948012558856162426759841938209946008849715663772634573159342228965084621951684397057959197337628941196868656180621273446005806217736260048872176687358796582845761906491134808124511330628730486622999172566436176177897707855718184109111860345497897473182523073899421444284685164555886906923929482595372569656104130614864270159930055177307766032025072793061486373343069230443604743474691076142254054678830615485008857297047077547685897646596875991671232734593835872866073792548744191465146655521341062258099148675382222387260607947522448611014169316265478128913647787285042966779117719875311690765433541683344286311168253978012305763786474729551382923201068919097291174589921649694733064471909020293208380833190080419345633042981374390208680449850594137132789201881015580915416649430210152699857933875756980382018020883203047599055504755530239749195871595942271973338916404869296345857610249985189365481655838965308254574037887297260792142515764522819285620101501527963140174978016093769879799086657311599085113008599838966558452352891903206890525668040588652500653198233517994170508297923376359711552871019419452426749987851781232648677624066237558240264934181045527723353203024548235231233266006379004554476488764894679381422291956602758321272849255036721779858672724319868978324395785204627993092828100726844291619619151593012877250289176299737896276214939627483915991383392375441412191725335068460546559155930527074786879479684073107682363759839249152735507527392019045102751858493018984211539992130482581726499175681454729049565121996154236017728962749800285639377596869951967756952435176592154904068958685232370867342571598218825810088623535243332265251127921880328818558092954364460696746494671283317529716612472921411820549349032050143856076790878970205451110975226214335222360050639212092780563663110426195338420080912270143852868935053168161335899246967447286759263516277886069462942782184217873745280580198084956294595254953867240737888282112972053944206359903165190590044966474071192871100933882534289677487649126929745969095270944378802134043273028633754077107627616532085097455041800550885341737343213371647826242311988420949126414640892037336686638982464111340307898662391879178340670936028416916233017086224623449641302120912056448739617403253985336538270488116773944072726260137427443356763088708059426499666696857157259593707864919869011359245596301201073316535834976473818938742010562849144455537475495246990916354583700317266133403026555062332656470819784940973941482047769481775281951798595737601244338161871873355105569854421930249074491107811428771221826214176294809654328437718601410254699005214781715961021888239119459901949980489209816453641836984477935291393177468454092007115847929912451418011837377738014493941553558170516416950010108562582252676994341073927219450914361702201821991815558835846166459185397226969365869943358871872582432846436471129464802411604626257067545221269661068566034522780369024937102386097112910028267020036983341781614347718973792541557787590702899353584572394552408107648415349193782708136213980149514346401356136894718805665496354143719201867199025059865808264788324277109720034450852420972643556307133764787592360980699856135609592773040345055107200064033357347084325744376955007719324683916669997950891447352121809945209745637643893854042845937764909988671168653750344961891312313439717893114100737321070991898071300187860318528661820148946267795301320146706136096324177368927226940827635544287451007197791894008116418886311939277730970570109625021644083355589486238263349501254711496999153157406607740937243754041700133978310854500744461052606960016219710246710653474058088633555228916355563674054144897073320764873063131401277181848474563347871046912884517059791650533762400043281064884600951361153787207398588587891214259528849235087799356902717486266748108711982569079239413902298712221079070038509177824458630628930193781726534846164714949822429575521868987494519633814152206609796084880204409666843273259895822151484067657438390668684056871552738480484294316294640140340931954678529220447774108513694864597616485301326908028709572730598579175809100044909544353438117731168174313870133976302822530359788966011155751189584443239523894098408812538163230327445302838940318869563971144135991022746309072154389829570684751092949372283703830428877023337384633057485004522874015811628909799469688593459221050493603400041625118222513258012742170068314383258316486018082403785578352993640107494814491468709542978108092759317206704829551859791892273106281939010825162541380600724632791660281628201817584513198300468613011787531130634638409976628493228463611385808111726274184166236107078776306348215121861511874000144836723711943254754875581350574650439146385291861105030413112685580942683714089459259145307311171576976914074051343399137911635519714754729566910891963447672372180203948687453973665541109662012107031193743476948767918058794184653502669193770828588573329464910778067529400999981353710067023388506716408788757868372418806330039791253140363261302718251054167575859479062705136314080577691574478918269214752619435643046085084507312670473796392953372667835178888402660380903502203529842028728742850264744150066858661663844412100483870196006940135628309153298537447244813536274001380141689769855219254417938781876221068503930439675273892882227523168805283265678215073816294098911357162325963038104402407609429990688421006135452999076116712931629575588986162970674307129246077841369803302998180545879195186415361197527142200229114852607184820767582332290866851272913352817586610053552597179292007539492056480732915476268651985321372405384013137419858996875710332159777648691656885913760112696227869330271209184700714027067193697933987296537922565780859459743952515191939425106698167483459712297590829108047910707414702308037873854938320054038528968231118203603199017580483370266548043132657227948865773334881060957503372921879133156002362871484082049300270454791468847665343390673191696366809608981194707827421276223521059732432729986597584086434219416610123239245383162591232512811533566415124540564986446181616737595518705615266818383862869269583284297396123250107627717795060844494249576236498046240849396438899189871855068969043443656617278661549661115653504615025677047274178430104575178186440266937245075792231639096367492976906256030351713894723303156196212980832779184212981460533250949997945683916908934569767370670277987146854411387610301278894679427142404856572079627266307206681654337945709461697473176405063989423812639517422816748157375865092724165078479414570543461671832068827859570835129693330136906213278978546741877095570463969640217641213152020733160334433831199112413349340722762574999255515092671560115885669782632775561191742215938193034034810867346464666809090382246026785141646179572546223923074330300848205618911781086160673637721642955871380501667405525548306673961471502752384107934895834275756009810218888276457324396848071257358937572890746934236448304759952235433585304875636158772015871276764209048774647282129612081684806110485393670515747596342162365465930846761700727458574327895583437499634127114626297292893142971711730471237161443092818527103767715294984432292702603845416741202264546810184326424745076703567633176838494549969141987183371205491328968168586365261922259605511361835202018422466682017565014512533949146134311343187275618603034597367919313297832685297765328627643941743094134118633481205872124963654808461131222391762981828647941881433181904925792549703994378373220450806886824568563229933654805924069346558096439662329053468998122489062536382035066398423411256107839048774425458057932334912893185696038996087470665676178161871859034881581311404145895940052021424172144154549423889189860683184876861367190366081777032762113870179682667612603576620441145712442048441142045678869050116040549620823247933330444739694227353005018526565354985742406534514294080615478153536371214685643547637189650166295324092253306311744843952126477783865048497410803452765319707932080367870559113831655333194324453781869767978899861424355267892624559319004759674539714012679883919631846411588311748886822930836364184363821111832745362179165353342295623152305541758908831169427425481480559879643996295875053953513915134258450329205780130260214898857724368442654036602043548785642777931687183634851626525351169540035814961144094920706606250532974731052276634112503628085872516502256093515780716053376359927910217817239565552865405402570553435247950035943877711477207961406106448854122954011728107807675671937571877129748054657814838409557168770670755381901956169123676621614826482104322592128741555978523223318320319404720839513775426586483210808081144584937030014388871461449379435731554366473802056201677809142660186570952339423919883397887691663988517767004798167025688750165818601415254029116556204779700634694901452539135559749948453662952227419518332011198530364955521423413830631039181413435849562250373872949191309247460764070001096906889345459546809369698014848537135414800136728839923648861199062593723946461685395253903022581433344760883221767666494012480936488584552793724491747635749251981085266172458392050188398013117203689217051108731016370701585827044353005497259496706934008176829980172697795629686774448086491184807405484508370564825041231121510269205357964928521545344123473861317548130691487930358996636526408601290285697309145545861792799572338723407984072712748581724588620875660563956373705776983024566362962931506187219677714410820148136632098130638474242626561131412220137574751825186620144574904701572794909082764103081770499665869914504936022017586395383094420668737481324980833592117310613511275731793767188194596973156832497623271981518369116893506664034858153683511586390982176081321798945669153822189875400433111276082715488884554254267978853097247308373936239865883323812039718149961384319287095877774583128432886323108682489167832562351164032659676619345407893349145386072043738176163170888895837823326549373447151821701988930983623035268690223247359624029624767512234821203302031600739720649597966676679741384328166451865882589285405699681885165939540173198577766824842550455888708275646712059660518196762133937926484483635262704026081447400493597626372632943549515240869375253050337406676292865557470530538925393124669628091875701379807778568348933938235758270680504214963480805496858734469266019948504668304725786156592128943325139947631803447409539705214856226070558091966740382425674807986218606597323813845409232350956514456758501736954441613237449193870424857837371644636305289594761530723970594654196792023684487600595538377337783521770770645253666507861937806023860489504567661477849486071729184438516571456698779462986389979548054488871500515499906681055253399084139767911688120767583856623106107743799160313821004252387463389769883358233524072270370269872683747318468991333657761329066686698454714447378712748508213953941855293125750304339376762562352617809476001630672135545989268517015866766507641922550754336591586390700244327232650573881496506393997254698950189406813631143988114198518930801622016118445844073383627264130631805808971674178268604353323494109557631823999095210836874469323399116603449982897928213522300370990266796000804326919453166040279443513082584892843934229860794134526345864179490935225197434629136733580857640010794162736046825267544352142309520952560985495274956405919484694649841930156075458077009530030400468674170267678403699063447134935705108412554426047896230762359913518989898957287362197453097607824755811451405606631450300238841460784604812787864518129372663996466887901089249333055434134834791114901225901482616014363533359095960214616800068436985245454626709042095683425837954992708000055808581107641534052832158336526074203197419369292881520112920225658025001314612732849231335993299519710545400242693941644634950033489121024356029903193746719248475377812416968179323139665454452159115727484642661272068800030808621767565861216051003902753501397744473243191110349542012557866104951598941682026166368469410837176645475436410781730003605581723914607531827887798813245506688424215323260914742624672214477214597240671053040155585248845039343119190621697216049049887541945906128307541114260415174224764521728632215956008931324914143930712827602449762660403603055757605290515330299631432732207069324382355418851250392530717697831185647944450945017365044075994803871884961068652230442076598962252394990966872150806251532521370175527607361216162147959751920790365081684038885043371574515565295093034401755714995206591672863017659417792964889592296683338287620141366638964531453387857417215241486480991561302937851984580485529468220518210304957429357620709102311627446452418418520909459430752869891923005141130208207339083166395006146181222406372130003881159572183512485648157274742338232734234672055926600356834528152055185615782821015389482644067154548503164871106281225292951119020295556234807253123963307857960137323598130525715205208033322701938637160818602587876014974424255361386012883020735285679584730894404068165215379676547929034481615590785005702379709568966031548277687866131327907879786046471278175017889890265261142412529153117302004126821064385601374720853138440963913519732868509403522068042219127714380598389964729261023744206440599296989308959418507860368060723475295938581078020662162456573123741443864397595106366466477314037265680778744549878147249729171524758364113977122035730905098886088270330469161906626139930069536980214427551096287464112293901142739819322846753634776208434791457730541736642299279891657252673005552127506335923941608069560015180895323780628128160291096091571746702720058786568251111933749549204559989996083514949330915019341749542476561848961888490110668784764937112670793736580407912809648902338650763284303066341540147991263927586556681908896881624223499248661104331589500280434508719299796967303000524494305562163588537988347566608507422822459137584819551976108728381554957864521234514456541309231679978426803839953186807170674601666123482350764859614867575440909203383488728440834357338256469356499490792907755215051558058880647615896945367947339720072112006689030162816297754529735138661081608410469152204787196276264755700714668665006916613642147698568283696895049196047711329375455445962460682338622317845554369344329268599408664551298183008685522973459363241689042614663962291824469620323061035846753937528111724962633868036226008068621863014877593163642372736533696948471007662347866147092021509862417781359077684354693099856095757300562267283430579219701912973325490786961299879777408802449821854579671179851432915547504182899920443601072737670624253825329272234620092826606947183738637889422841119153569871107940184117238506386157347662141925646871249298893055987730222065175606897351723675755934383607183475321696504855894676018994273090776043283763546849107110071553568867150721174139577268207749899146327884757433273811399870054970052940714582137327965322865626144644448160832040596519943583185476090900948267407153846278419552319226278879374063733476817862973618428152974703207540799597773522560962546511532940198476870557867436323977380681964107834265667355938381693839061352396910223372882515332558044882836998569995937932443770406326197400786296027232883350281727733823540510893482426130669560704251060768111393464482181292913052598430420852294881185914020128752013868303058125235079926701649258900308103311182808189465086244439917737809483914533411569540175036474409128713342705604238845088504699495121138121612110449572146964331111521756814072791821529415442029590293065499719992670421252792366696510025633678672191046950360897128345208923312805487445027110048085260644530242358897030008289296353884902067452651884171852733608922160890171368807763304662567765840267111578160019742844031365878326114150197131672214730070466416001683720411219315469153565952373388950659375470893413391014155535749263740261067853877613767622363857305010888975855486769909114905322297290178294764814637159968685006734303257330985136438880815453839495211486640098834475762566334716951437680512067793509588254850486747599290102115678311160883816926677025588992390548599098928391789211926173266556650609509161493865893031123872847746600729681502331228116362413729883327097440762302750962833607131337787859563072540966890618056346977725269072697544643520467815668554949654929969731572256930588331391311601423465380140149145588275597354561539300092570068486737902422552414008580318826990862911856032091494876411503457775348068638448271738556909115654072395244230970304660023723943221039582844156336603067912380402979319466244519046886363079359897191920959218318857731683085973757405800793673690271445548280776338345669140145220155528265080577848109567216942451044093749335934614730606647706299425498446128193469848294472281830332969544048463902987963669525530654945137840741776812588686693671464692960986846890113513277887029151301116733136776499845771021752764749612415241200200057498900736608097818160057903567921263542922894680902368152124010147787413704542616809078144371308882739887110726219905076395066304479970262293348635256881668538693179264657175242570433804914348641854184749437877899794945238120885844466424862123733334340111663354050609963804241504177996137382444790000327736407454693680364483142672804353249263118439069134049112254578525722431622098900779923205298289071898963458128926317160965396402801658518906002674015713005108510567552645756494608109709597292411870914952475466363241662250738934833829409793688687396024948405595869981571759452688047272180666224528538206728304894658859129930634501532233918793566762333205241025678674955094022413813548728764304895983087543682803713824223584620515458235387515762235061335045237291995700471840486858522988689865622476262453555292093616786179129099454510628639734617885799229161031311457129726767175785055049179914660205660349785190963467514781792983361338030609371980635266429733906278287253389195691942057303417326127210937246020111437340103911417529547527085511421214975836863502915226121480670863412719772375134960031227811968041902022493636102087343788687302101419298791805580628350385219788156886684319246759683076239812740193272148207564930982438962556055378353193190252904180765415797662617352791617098791994798500314572143420897137943690309787484697910173622899113661547623753596733096378438649109252984441222385525299861359809296121881718331651244690733147885121162854764934550648584455588719902423106231701191696802012329513585794290282128979618721230238991062306151263331169615593062973570516847187295105775500057706198559955369063947533244281865042333919360865815072438022795840795355307852335001472124093104431246327078844089937941833000756508852035830487235788163003532736122055077621196077335593347360994219872146068870066002722777177880539861177241198122244071563865913376355995698775143877564635460187071767442971113188741033897108666272945878871798466165966140356968713877054596169722456341788980200576122092090923169437861199465449361288676714154988903256378880421999124687525285785183004244302937759634112140440377749190049595355031904011507090468965211274072688392303587192370196335528938933817574121398948469159764729994335090972752981999458922320259870209855714594043442647945820220046571774538881424981457133858676713513792832241140123300723072721969901001861440715863766420628541878790666182331246040227584376034605382116799196932381255365555389536813197357305755131918574659472920543669896239839178194963977679631114546945790801429649344174965805861977762731528727224936775374517175172045755953691735415393325240767301087831775423414004455022624150480144773630317085586320575948435760014497214141939092947728026811002922582465344669380659948514587102259811534290272797147190469277644528205656842052437548666971949357324746218976820699261844552568152338757194855703689082724390105908880753740630465453946466116570208169176323934482826565918395020729621901785789009323373221038217330160518347760494800835286930743264229377137318427081221930247354610395542590440964426464572384443215225654245362972730277673736559653572346296399384609314693772899986287548583001778462060916280925434927467802487240611819976195134159492030720660647345043782634360565579069764685397640778665714631771910008620299849802765721191167533106408748716184681478456338890043490352699090529715159048143918477413101085481552258454977775097213278445251019713323125434936957015219641663537663480546672312210456460389093303571720420865685343514394896052758312336220252125281442725596377769791797243230881316838111197866859437758632644350572637297906976815761099752754925404491137922325677882655555830905758943759018192962856007533067066731557401839512100695908613056665994346660007848529272382845128271647712128842101326327758249240506819546385265328201371319225957978909528947204768245485251055585295535505110600235343183583532115816522628929900639296979251357031946567718626033152420271721753043320533564562996257392348713275890750513871878735933336071811011547134233940727070910669062190526752664459189004424749767539083303355220483473024233972475757727448425665735944102832693854487840328823270259136821369582302074758089742147421269390200648924428086103316571870805339902972398085818784944860791573195026307748603204687342839655635204725611083099264810598635011967195108628882906134096223304443202020552681864843073587638750377256212848179209370984170595262573232667682035280583797725130355400543578243299108294855394825911922932307045667090989652221543775058621749784571793767246350626374265098503637503694138386834383466900415489139341862594167175668955345787976640144045639165598689468980498918475327511675502564985884738870122292571183079225091381163453826110396768584821227782445346290605188788526802817833844223927739744307083873205253038271972132901319983658218019872416140953331185147499802187436186354457506742769869802518931024468432098061930653901370952684038068377389606508352531035939749385733348085391305815653683668937578388903803747433292823701713806627360793999513653670233748732061153800958429353527109161350319693462018598689353867297614406277423678555815342276599949447254113876016552417832903526337382173722358063060110160336310613256125951301275506843146471138815573582346511636221618360263841617209455624525312013933434824690400728919970073458006455932363935792296399910216703892439023044836563593521720685155740623219134765041238269213640103119491972428814001210306775607419402501393985594695136912564363713712103266518814774317347685662112819736056693812752212822275971375487704378141379212001968459948692661761736164570158238001704922188295228644515402654940428382277376092804290759038339407169068212784922412568262624588852032319670979504202450191758147930079928198178733004987313407079292242997197878598169270385109169877427931591324265793111865409875890945613139708143514329057329414684659980900475370300923984277705607731674589932695855876809525975730485393879054640602011644910810234911613253610306669981289815345646859281727254825603582043705954668041023017097544029029749893044408165604618680372140530177525370157767515723171279272993465510559850707397246099483063142475952306775290354909775326826970407327310482300064590220746553973733741337189283075976532936694437061873878081936159989966031960035753898022776011276989582297412881894750040062977178724965945455861616418931124753113496092609360277381781158364172733181380880437617860940691787500130233162687961282587277036003311274182097574887917683742928456799218039849578192285947249154444312008886528626578916997604689339978910407844116832404831581904976932308710998589453557691425185535738298189062370226416697907059760065299678965162960299114240500199868751655349773808356469762343004327250632911648257452588052527055431014210580659980072529895248648087758181902779331018437135328074518171744245738238493746343487159313298599817611401728246540452037497690416539197738696776397929169993701612522892397912935821575381688490645660882339626651777005476837359052505061680815199992225745571635672503762205112668155393020068195151464367314184893392886162150500765803404352262303994569091537735205987322035257514311422703964473359958077071655780686415480728219211003480315835723033258561602522809997043781620417880778142521716145848573405794397049349990697989774965666685329527424635485976324698541116551070700322723535761605005550782876393483348489807755101415339507170345314453049967360226316922971131276899585800304947615141508327354950177541482387233341034966411898746996021456933511050437565058668394333627967913212892928041517310204976369891025729537030792140206971556500098928254049230161502280827334922996581355841334755276070502616683616762714642856914725009223291738083766356258147830566330305124676921485147770541539889778053754375982256295387093562340059554450272840015528963528536758966766360275545325373685649627762297219075519080144150414267639025756878760101441043198663462863226274193757556575682818642987770249452034505653034997158513585196394473222189482911151198257603971875410424059598982373210271482552647983014955686653348900272802737239333700125301998446255242775226019492544513408401013842104289864041039598275137565393619059441031068723289245002369663641603944266048616004270803174518259071021738825315123694565286754763012067754187020529251608591372265817230276278858467231743362299519635432642394224314997736221645400717544073507272715124349696500836077503035517422762972162615460940798856353750742496575530049266154605846660362324204516287743205591814415257678241397263585015688412159936209844342112150867804813406490704377661001084690216266337479250979309516381764552528142617094152111514084491371065773885620736836692445382888471428888660490825934436447716932731206091688156601883214343479324094903722454012045166101563516328857817016655506895422656763114081651314368923700853125797159753090610575270869052229826622906038268940314030799530126638972775638096950279506875291106375062529053991411252296185934283897688839817052189494904243019993175091894178032527635348641913343885268106186364661750540400511622519018473749058142651508378718841811966310598437512652010612989621955501161148592328038572449215325678698926593578933872586221580383428776568667888090681444288867020018309428075102260091595911793394679351487740622473370072364251996344734532195878850116151755448587792259032907323658140514585216418830731864227082475976085504870828826158858376952470758502203483513947150752253014997287450128078576916249438513529117775749198640286596942283437167889051914225740022203551636768602755901160470379681560823220779015783567892567641108735080853959247962152475764419612633017146426811467783362223709626159515352552890284106455254460410051777802003660878929961343867731318440056901648332106746565163421443218831072810240169940481900515613119533034293874860929734068161659036626795574761462579031593114456357583775849851534306912860392766738283919035496180380022691570879529139025592987148183217029654194929877164472580926574236467208473155924232100843865701152225457959262136112062100145026571209237514837698874355697857578393915640848990986655570465195316433294466407595635220231510240534472428420240279554416801948782071345825478442003126651767276370178853178341802832782215017303750368981004561110679877156461596143384075641460796141943738342129025862313364047691002475049777903058647247486178528311943574641388557071652654517462680337221928445108274475984858586201004276123601451456268499727107762599693872337657005368268326943990815933981998247662058348652210952797151849135013133229070324076770089721389055992833100416185491420440515258287975355037905520751534824809150581263047115232645512172920895908562124611676036899420277814914361689744641356931500020701454492295131640915587655155394686310271574766266353305631668774570901038716101187013699850500803772569710210745302781363589530995150291216199759565714746251598057849873646086440249960893594055227158639962846702409047980816692845229515704873959774105006996599263176340049587905962706525663530791829822364072018633044703789640154284048414499438864878588220043024216769984759997608149739848686565671624411093116021476336842536210391819449634444399035360055491296238554539513805757374400643392672804098719960614124065464974077216269887393669940971373306555567193541934502001353009732991924693075928804123476263585268791736036076108163239768864266081031989489941910777145038478511171897698097872878372186774129095283006912371601100970484422252176813630275112695997845219843414876440380060601890661644430356215527374912202917089852563607455560338860882756198108257873123984426392107461089121337658035332103861665465655409679158099000806338233163459585024209103554364611078107395036081131983202481166447347271095566475744381014114229350106227892923934442059740670281910744198454831342776181025550349950945124969205299085849189554234481100966275082122876417499886919762869097954265372897644358575543715385665524470369676220925824389528833621141410200324593815925994882497552872370709749382063181185248045741092106877759447655331247434214384973042024589587689905722829391809092019961025234331997415463588104542311762013358937093947690070107463243932970700950780182479769434609819563797538661025777443237581454051555435601557749775284896730001675002854734909740844090130542354351751073465250018878387531880521152948765191936341603884546457248478783807928690059268930218067122103172171254230336785690190064641372551922528627721803790853985360622332982372774799262317305898756051972695582740185675653490031339827907085834330372254133986497577429191057994765857159524817619391501083948218145182575990420148925719105524935555659110534563756607799197206045687907608619556635268347445905770265784985718528541035538352477421993655380699848258090060405298299930112043991455060943371793771558932498053702892719447314817285603390515131515075256041086823813333138844101821055006961841574413619713027665322573563322978059572875683630648837205092334946442517768238249436106056086294541263003813698896551108511092568136789236049515463342002386774403460696035740426446056394426478160659060151644521916584959051452295168140282967298671423357399074641950372163195773504531396558967563041981703938046622844400902181757245193902804247662422941200532881512748385996928140297535237748527761139724523141994424892849527556076982301501448195264826837035365265380678676657593390110266713412176124882654763534404064703100910688874178849417116302080191668948638059927129230843360164036565502084533758776201685377164710821334059435413392793440168281658399365503115750940427226705760641440027828166083240594010176123935785506336791837430413365328157108593786920422193533331834372997367072121323691092047259780012193108728992709245539094340968142996186020837086007071855125740351166491689507812129980422477098615527680430465683617069523987763949884445942692962806628430455005585581145820119191747316539766931544610251378100271330564786461088978462829385615107797249361235758865305297987134457513816416422909862636390571697634405527274988919469907473553274715342302316062809428598977480697771905304005089230692286552108953952647198444868450804108477891725686822531746986544938925503594777438685332997652142308240301773812165490217390515153620106327858020217884244140237647538753610208759015160918336032947734272630364285842797286165799172745192940978682409634205196411975605946792340424186822361574686437739178213418575073437629856185595684950409406501940741406432840763438888292189822526829899817836567640877966751006303467523191482727251419719100637695131067962481608808633960467321480340103486705258528258747415739899297813694552748773582451590094425140092665230843078828476876892482109876302117478250029897840854877965992398727853016818257739286469556495888034223384074469319363629458027140086867070661057175152671893008969338446873312617279878697790671070187896868570777517569305681120564559225916333513539306554421418394927873657269109690122043255126496079849260336473324986216984805354217743749257752230568521388363110368982581325996193656286790495628088908399626806395860152975882981783218325705934438019531494530916534336916117478803963209828943699096846291247423490533644328241809062253729176625958777908502030575243822785204189754724723857477222315577063873843576720020309748382091634545036379091959883473396007316050083390157503735743365428200540619357369253038890920668101091726507969455090347012158206817428247880219875873988655169173373577357662283542200540781605742400887332071461361484747108703163187459369690560947427703418569993171281777209553373472365275638306056020982967376176283061206748551315084706369195353373564053162441260749956791557383599294238649302055026098530322294435103007909594841182548618028073430964085325792524869878160541831786687867713244524169859019676324289054637825376818913898472290357722570720698453255836258830947693549904948706921470279214997898002198506084703296817067733467573024450401985823336199442037875197949667483403422494356760724886852676463721323063505935791936055433214331568624692996177273769286319882259007554384231447117397374273686184760698460582171381646854686674116279859496558888862699382968251736545088016609905289201621749377863679617009713920931021843555694808304397337549757179164823566191164012861501674689639167651997044930422521818987739068992198308871912742939959719395922845889993542888421890371379437785050959610117530832023412743430156491646139289608465758108965872028551751505667734407705258463341753445818296217920813140812700562117863380568566463154700999376444590089823687713601806869712713184458769315413848743130946086271802864734188199639973552847210233177907426304923189309749380611389978337210033068819714632329874139069347192644265953364536982085321028423636881587499766326883460686463108858702582631379000026358565752347507520768324333890681403793004248504738628077792071221491730504849035343733352651865030439024259887450548291623809120053179613515258457194138286763414752286390703492490659911911743751633462146108416245020742256057300362103521333245142062368359546605371952629488576126781209410842100653791240796651336836219624546179471665818168978091569528903904271741699093633100795024844110439359242530065391797693639980712727560554920995235971928528057560573731099506251943402576645190965371394102966116415268015902017431792909816321180690853644337844276238953570319835836713875102041629588283348962006415948255465483452845543031122515656333617867378273608628231232299512482530652430249583666837125037067235074554856294283190003299108997694255534063159599167194028148660635868516948550645665618664875123014358428045454938395536084329192450309586900751515498532697099423210644848962856887742237816188099902252331032953438961004772111633569900906217012141153554558206735143183039028263549805430310848532722400527954622437519581361811891837702154673300640635815098681131015387499805981455761652551142311385886148811918652552596821296810877909050085741418650811496142607999657543788982162839810914244656341377608870487429058291759878575425994141794073471800009944572426519522221315692444452718738040925311307843540692488481438482329612761110369496751804361287525031203919078796118776839350962500276195255905777011599924331100721917239186987574811240445086696725800400154961009756648104267760158053797301967032339239795912589849451456351224710559521185770818134403642961635246155186042254489378259016530882598143391367453268263543731800053553446609360354533153760734698396530404027112616650686449150331503558261006587706139858228428521840243716139519764545433847612269252144360385671288957235587013223783258341486552240690225633755404824740195430118394377397948725040310503077322082553370038926592742138433000241271164890114769115443836654118593006001259770780203834602778297519007053694455961880356599375565330523170850270010076832709736845462878022445048372128207989819404305719621245566839031094817925019616165650575048755959085906254615471060510145834284878191809495684785109839409222558930105524471301898332224277035571433714612645554880708648534029714487554757875251923813180428130421276900485147205757339968736954843674139769959596082286473057870119288309136098850635978873303696238082360746542195563614528721664616829633397980662485007764007683240568806069614781030190229109287722449920576875495753500694465347791161560691166286647168611499677156237633634555711348773068479899582468302000879243929782594694431092707208582276230755365398211483763514990105118580002586802893334109602102231043348812630903451686243649330884121082926983648326863883667660721378968450297779181379582031466459878785594050055949633642517708324441845053434770039386648629262052082807845742228694657125369249830033440748312488568802103013497538231021723537881255160799958012552876926578205339388770254327460303454207503220639757917423286463204885154521798340962910425192190977436929941166565233597656738634900595963325984874252024341149777858589840914337589967469715866780055306409518117987763339727681666087959562229077609001386384076353453227135544030210957630292283604812835623556361022836123979728808948943831798829195527730252113716330060615545542201393845933897514414154693307788564907278931009411754449572427048593993797044609300456059481976660003738074116891014230923657711987130024717004524645537944773903545107762962232662392711836203641804743359516289906732750903752233064136193687894551686618146826727454136553655403151802500956838969657902595305822668668643247982712744117172499862046779558290709366483186823027652628795549034161197827616621626855405057500564266096564731703311335172032466993521252379760456671706661377176512511138611866078606912083341687624540876582389710080087927169393551488305095405313077697645670548264799562968430899469412504307735933617669022653544275151175449399365801787253789338242521771656680405515614089289880068424318930490289839824172221016186551678979115106976014746345882194883620160103242143868602869946634615444953602521259703459660338261563196426600270614910317224047304630784927565632252980485811616030617114512634093532202173107929881088718046042275846725374034099746389248767757301697055210014735714053865834887761972545464265461454016333808721098009198115976126562695574222561216906343319121905806532960876493856480159477533247425397711414634264173022723965969554522180597704315581227571380041565673395900271716119742269458771057954997642095457537781953646093506987841177391600456860640974242323250038494980417513224206039610767401655825664482730843654610001661728993645173628451377688094053789626853785385584988072795511270492749139423703429959879367382833428192360901765730602664062933221389716988886478751467443095445183764874275747725184753247644429452967619880686779910749251697017249771103641847167118889172169160732644883185939023932639314158931232978082143309879177132436056793969356096130182439938779893011821979324479405606520087014911660257235448150575884767674312794579010742971072955051144345863491420366312640871739833070996518657747346910600532673939475925469783811010250560853321150909729534500882533243654019490441436007595667672740087282909492491347981775129241069295446789721076795853804302000610306732783187061313727125900581244871064645219636060270150584636700818891996398643142184988090942375364345502313646332181693716809863066928387447701972254163189336352143104713984306399193363788139409359975892218564235282916656432385432989666377385434259084061155074158909293236949441702558733076457441320257106387213528819119078914319825819574096202348038462996939887890555365223565438099643251835103282582055900695785775075343233715951928244473732920947853931803380593089745327422686541959886878715322363339167801578092466139683887906230227294495485642289967162728326799459011960883986073800967775659855003742959806504495502188259908255037530144656381358799502104687366985993131106553548554930897599592094303702279347679574084368294070264379771744623237524737177062374186003759048968992461390280755327460522152438338857505553444586315597607581461114421837063441517645074153359364271305836851223569383260920209649344732890145828470412784974175969175578407672552048291005535421350503578934721259080707854226480710550246970187256650628726647896856513599573163014528653635382039021611595113595811085883014717177155328280210212352564245955960500383860179616727524037658368050154840085649094915476387413311613797952064728245331661381906936131989746635631759797060672504642809754069007599464018622669518855319215745046526648767766563706403185888373791735550744726467677747109858591296883508445775579901911351734991207130684092923952547814841841524724643460428787875135081120464706737327445209449937471237950937881897361360334180096788653439403214791698359876924409682505831188809261185702341043013951719790509897518549741833276783139739068597779971901296095671431877891420625578345995014863146491237816601162991938403664874696951427972127378073268652092549689680691959410556458777167489526719683299083690830560874591622370300483441969732183162491363721686554440937876874708106036170229064994015924737167319565502146141344427532297584468817306642290752907109554912487544088614225229163195560078502279316433126191538460262079143853100540274028638849594831224352785799568093801005263783465968748498257616333965901840441060632407063137249857333288143504090286627070411863154261799051870595375865354232517385729860051449683079083143162967269115552588794650806457370674661999252939074018547358829652403312123508207854364921001505050582453334634679140206644877387065849986048959922873415894300700508098737570493974354134290463179601017939331497798088852972282307130699067478557224974859901407629408830887741927208154581357649700345514887249435840304221253209171963988739648008419782399397143518800285318569040974024468586148718822184467191886545167687497562879512791717688564348494213243137925164487102717178202796077677232878012387323241286919615071109050757511829272912188420932383267362970822597946216711618384523463920213722911256807031692935390893829964416636527693569876868471566622623428296555847457690546810623672086777607788015168927814600429249691956897694238706951409851560718962288725242883662767079682337093676591359455645552250608816004956217218705973433988993085407430278210201746791471703171449292217223330436090403923927666574024531946453815154176972218714804197813598452499433331329442614080461918130757957608577839289747578378178997311562048491579782397868199138754110336817560633163913901491120903078233726771149090303876399381965434785073294991691441382184768293641720466535434352877731596184409565655648176850313066124893252773666294346634219819222648811269479182933779104730604422119029553812562767382364561000281037146374502656074755277793088081280599141246158212271756248267610560540584863734343784823355854111280340883216111726313576967405876756253798702062425432343416450670573437922561251667041355369584775841094697642332030910667128211626343547149030601021618009739358459399966711649070070955672430331095737216506072263794247089731889002458706949793713145209592330636862476385153606450748791428894466911068282286122568771389609553191594972877297087380899744103342434736431005859394452099058703373010939627482343561055379834079022520498897220280543744388228813281278740782224254168548167222432344601284002999035371951797809877297783760627838792704228460693795065941936765215960582322316497747006403311536495279699632919988028376668324369884739012168054979669568226027424660799527040393628192063595620787027321325010546217891616647601786371075531586502822269249072359349219584827422496933333876423404387451642630815666471562108398122370575042363178005208668470123706188007304680390018581842707269689775019649051464124426981252402970972847298777940303164230016132436105917731656699559158610798817392816824574782239323272853207695720342258836582731543215731967757732198629159410052584578315640357653635071941247383612444204559139481499767885159781285300756362054367352090303145270074727730240487916880453718893550637536365497460087681668815201628282993316537188828005085480016558460507172581281854035852824831869887734361222412013432716236607015264679986721234963734073695642109965493050022499490705542003489865277519609547226823305892737882742748271894020541668346586212724646067237565625168240001991079187970976086435487399813290679815990971160806259348477448153738828932026576443346799175290511993123925403186456485552231209051685176975623733409927460954818280287046187972181864489426284973623807844072234044065078806770346864403648487273680285046500950160006919337993194987681750013713966679022489485378455051225885876376767165915455757870828931239464926317805349244982039445090676554082000183367989170956322535597381207306696442182909332437291726122437127779664754772460538441555465615461422690747335880740264683492428290013389541911485346486369411082359020427983758060123591005624939402924182854598886960373992576291765701248552879917674064055156058761015618055887947730193735853384257063382124216326355632045813317807075371480263049868399494791041214251369965183558891468032132140734847499467039386354124258967550229317162294287432690524578826575773602746293090405994812679607850543279688367364276685991412775045632890312650513954693936164591176493923761444420947993997605739627448139905107855328473864897774100497526971725308461699499240189246366538121558236813167591773598980595472014298149745145441176813197888511813619913818033617490371675675126986777974971072272098818918369433629368858208838799913740877884328115516316517633962424352374952527024391173202878004592183189903810807273075787173025892445463566149456160609417254631710410753738930119092695526933707902653550879297563351724249994951011752984775109843512120476814681987974309157140666512180368425498628832318761552870780382054727677931502064221734764772860018024560925923527857800153028324694089931437301810027261668225931040433719835989713896961101091500330884364811184434482124507110016628564941292893728822667660912184983560268616386063018537470792782440660349570105071583669743351203699973279113905686827984626056693544985726321745504783676130582370548091233122375901546401249727715187091032600158700970158846132938732340995094185901498059057194478304696732187144719575193446420042606953145845436930383179562517898768872339284072703606433835346894727072482516510069349273318623868991615338098830767995182092209196572030632104772395065458214555898979487982778545825978075345197261937327525539037584893458391384500617915687407528412017379965881907300243531171306377071516884799713196547230264315191233805618238647473797740658478569704800702176082496566859245573743868008251531762042949796003906809350940298409097527923986942756510181631300515860512052417269334439928672456941469060274730325365910735995493559173323198150432736441602599518750886255021498853338307228283275746317098805887774400836048170499086938643692902469404092496577591909317934795687500382867294588954758503759903231802789200205775296013298412382416734505312188160210193733558176025998567242907821705256438060295595109780626933425648387695999713298624363926868407878219392079681527453837619178260857911749089645791855501398206364502087958618938790634855845958183122851793246161818537314519998841503794811953749577107267837412663873044292636238865187771789111670755781199867557781972901688112091653981041575195057804983180650088851718819595090003317431293769261156637238592890295704793727409550875495951161635503944197597989347582987017436419013651966207825463973571623779547141173623817704162474787795268028516677997994677794248947979139878605911155366133691819416442309703959017389004712460333555453217322884839495045750555995573748261542049208809599071275082647663490319034416193187982588340160291636431413660482908798770276345144361561932992838380218960845358446083473149772424425201271569540084229585644812198906017629119235016966103680323341345642788476860254815275353772725177507724423537204124127822441813540180734803752634031905738072240381544161089746418696744717204468279069572063599067002002300260714574459420284754501471201325827071140193378414896013509369655807702055212836450763565942440732540816427967967196573766051199774991124978873878371671109897943634967311804407366099351665288869807996915925518335456535504882316784907789172672082039908852958224304202289029797551991636473625870986136389537542946588072947644128373957137393077735446997631149759027015365492912911950355006035090276841800112772030994847082806796003906033166857464218871738932463683378523046744601530123446202139025608843509863311747797263315942686794533644498275375550010088774411980988203061176982876846160140106154499183859740622394460293414787533093028799569002029090194240585195374367665716522314195737651921631457190963171595866746256221618173945670452858918974394192691916825399521079921159303803137048966847750523958200110788403842110925950620435773646527038660521814069563454549582784520832547374577424430325235848553146779846543740278262723310357388580182121660552320833267064238288290324306636449891504361944514822825607253821698886869586749688011807021370406853055039707403595756093186533054218622152459103048656502716426764909798379504953189141918377798024730788520538345371344272632646345032359562692502867364358263784169317763045013123682933916641233173105545041240827171764553500648960635109354630109423421432770130635133714165401942651704874463504801969713478224594739183312013199499850774616603854493576463139517981601154618899511066846121683662198673002246476223166067938197102856907299325628716576441669891304901840767025796038843731496774894262335675906139876666959519455338957290025705477613025464920905384972561748564700620920579946417341671107996291777794106578035025870983211976611696214518340755271557479590956965680906901487776759641659058675533899958220198292281304075105371627354500660669863480502969760993401436419104891364453532365711984941812322985625651123251866624653193804379151054691607156363799090896542627999197589542963851796029446291445972523114869537059467831975724408627665605453883205878972155616353518507529825558532751279480444755786932632153463221817667910384894684110337927076424108716528144732299993348236731472254441798799922703182111073611768833133257397581724918854907665575149558486559791444192096509086520565522139905118670594838535426511521332800966807885718372300851613479751296765192762896617879166577027710633604606687334752576950190930320497801171196607857634357376701270836157662910701808305132709195605575029627409134358535135670857493556972946225092595433175612059616705459330968075775750515594985600721213998605438851100622113241844991266470946363161832410998388566109385279228219906940395543950380478857541201039457563058322982110081845452343974986316286509231241555793993008659172875493706491568922844918493175779981175770508491081191758055725890813757078620055288663020132677488109765595046019099904540728732328645621819093400685260131330526566163747168074408508098995084708293191871157852396666430806853814807517259703977874859261097968247732683347806820170271330357882650445207425958927934784661072787897584321962665655891536173334059526905809186893982136551476420066052653044270384828582229594969559444325837490465181968648666585728437497683745206152366856363780361911421878808660811213602062643995668247016540982848603882654488411548160487021569556982997663962551698200937056210823306356585268341584490469962527464107236647192213858061219470444887414879661324713718160248951169705484666531182637095487964304331065891891752324649691135589185809525079940686873466509182266808462266564294207818879221155863466100416521338223199983883401902887492707053453953934999931315839172115304731051511641839252167299490372658940373613435270651689455212415611419258128221320574966298978514207618237235287460714740550986232487753974441470845181047887438196261204887357981370577498155098462628737091135060416174584418104551365866892582022157440176286079690454135615759061886079899769913995467500237384010415318558206656657615638844607793392623735344624393391350897704652421726377678085466503272848326045202230070317237940626700470504364572560626532130901690377837334060866980895241415786548379569752234367614002659276531794388275954857970916528625111809806394667396052188976091587320373262019712764855472347904667803664879675862545680710454894804871787623568349397690274935197353429139397296546486615770584937794410598521131725213303766128383725731627073125287810934769117810968364063634558387966776351058131180080187500422316592791838545446730224842880743489706945787339338087868598176814544841697183742082798425716552874217947291084245003453136688502943104761037455683493643298595565053767147043573996774861856546009812221324742360584445445754290994485869367959793033252613922873245008902959037002648721937509615979510663330565856550225893834469193707197641266105332465547575586186850350236887710913906037158440534965915829750134845481562611253716463793412313743509231885654729129143125312420133635132349267313402514361707884160600588684206308794241657230024481349449143496110580227442249198669315180665823284205632761879323614199985897946442797793434949776015028688095227606883855058232676929680744660414489716072514375128804243222552653194912200813199600986505326442852788106465339423779854111119701845222861459558605383687537271620117358478782261772876644077619650823082323709144436880052292820710746488561338224011863285868904774269150387407946127199966572583477016578811652020053484986078374200054723503315871029136577294584236256854703912126133617557420798987562344255904870697840531699562115413031547896431017841946424613654073933494590980572987110616057657190694692591040797097836065042300327178884931074531441945699044115153051084456072610398232739263918526371288752561978142995714614287879725651932993993978907824215504980439674677544134468616951069965763008229857789958859384734357422864907212702725480997075094529644927253159449853260996075681023312391726209318638360751574425317511914130600544828642787233608157854176061472872968188481097564682025237242878363616169283966071884313335561128900427767358480467918615378093747699522667331428104044504230745822946627139372662536329606284123807096459303439003972910813769575299203291327885676801082982277839032213174005515602721745673538564412201510558887930446444642422272852549836270026479296841626055093770454145612823161106359640072902702063433188113343907471933068715512662407178936436361590756935136773779797414859569120073531923729671854409076201889037528722376039045936500595993850491457438945112533989635425427630937562262284249158198547630316522837465381467221181351065147163098640949466021697333366713326938657853481604861530857117511459114571593027065818277473980730890390039578719071397588893343277131957642353953302458092223840576376410863159520306871205282781044792143020485043344515114639676306960359482833345357672384540331337100045187332294885288166579705282620572845140254194059431097224956669925769135372701148561941353971337202216190961582125966883772708065564269579129852360785841387424237472942568288753267306213944641394026894296845770634170332985114235470714626429810794611878747442012788078556477323347402123485832466970525851442272184591345911589640962962113712746421047335960640720635648082857146897637704079925860214529420112650638492930924675682565994158692801621668355760555989246884611355475259879388342721469590108730564403803559576203471060011599704653615232010413157537968802835123778668931540426364065866269337393229454424539459577307933854326355364258810125429283721100517671425677277074919498255174703560017541221480979881857629579637168248266704067552451581545324737889203831807321039955411965119453172147279119477086204846591984311387318649814650391371784604035206948294950535804055641850837317506096188479054958823571168805918633812734793333347547298282324809989221609421218733444900233709991553737503325052683617662021828826401111780626478124480624612515470077392371448431969493489903372366567052735629239900698138510223837490943069920320859827005810543383640779499058740571855906407255684811024076282857111241619443561320005437039664710635627598087340324832287770016045417056219980584095028684388876509473945948750278302797901020673025946350304078413242275222162400153844103539073111040019341152261560481803635648249254370965395425476264243299511896874038649397503817015597628934915258995771198004389124174140152997553869017606209156899551924511707029718341546199158941123675861348372593867594082313484156110142852031214910242419086527319729985534369469229320674594957836244372647897414806605887697259664125986721166030184785403094855732592407594595479184379009560679038391447027301834792468978159538384567919605080695753187008498269764665245536138912477782746445007706954346731856365744509454570515763761278938875910715389920444168020760502384815759770793533759510569093502360382889905432545893068194883153925260849136371261132925769668599085761064142048993780335786136298214396349598707956812453056245322126544032512986471524998364594509656712400584397625050523543865580478949688451740770674379676972680866899591509037572676782797642395140219286830473676480402891995866463368654984130798031450066982608157366104504832724350043607616465096755837975511580321904691286354312496670116377296237255214882914504425809644925234323697787362433247358660881114232833067386383759892303501215810272344464573219660999163855621524011977852700309847531769427495782339278667395906936904880480176777991564338000598958788487601272931259799124647905014290929911410465197434914634172989980433383162609358485654900610923748618089480950439306189471103026108914633393865300884661038227944685677092254504977550959701425805638327490291804089948112841802913375815551070639459642327562387079135573833163128298994600591417968949229110332567250591721823156046266033582008191663887889487412157459460590343448294253034002255786228177091002748035375446725605590587282751843124541141656009451250924711495885546092812058723664121197401259481444916959888422474850823046102637199882836666935751521019375661961775656223252947881795107716885782389905058000283302943270109017958232336577001342707131384390098849573238122649511468339316768325588975610503273890593528558315548839790197440033442108488750326163106517484189655085449294273118046044131021463637163422084301637228247030167611675232378571234717490321543228303283620675910593650890280743454762533143255749073808602910375435230118792699717948668879880675684689077962703074841901450875348481520287974794397582101307670745163945731630179141465299680258637373957852246537663762494366733904806536240540447255152244319448344353270998287457497632854803751888882203090932173343743795409921562513404550696334040423044774961624336767928719901209384468852812491549402016614367286638781085350281654006476765413847942303867365491787173761221519977813367857690995634631308971073351879394967586439423300572569394906959805671995334971979438723814729219466298464115664350025391511550169721446974298145526497103280832836216193845409228602121468384398232540110047803784116058571690880712981433340050810999477138587247006880081114434881124226749915883108036105733856318244707648986279612049536279652832164516935108577790075370939523970727579082311525791098732421560173839373860586334333543909521297665451182114343039607108811960491919171972521531047088072565146921133723084904424662123556921002518338689739082309046449751479140046166842700424884601453376665585715343796280375237419652149912072504817313369724459625664121816952006450072596294936557476659924915965900584291344758287700681577977089360413207277527440351944842034226385121909444185593011935507363362908600314975429274491215111529819155530250883972508996186868544971658652193091740060761233158225700113976242351581423900690613274490769968693353257261990292527597490582594027421175658301150552386629242166334020880718421035977991419280138994958976149651676655429314166210323729744245253033191689628017090777363372541626905849712695021831956708166986612659909665886172932771834999782624452677790227760325320158460669848274300069482465757818001170381571319997150375427643295163908593360701062060126579082434998118263628655318244194269773138030136018868870528100723309558759975067619711884852206867365959122639954868343920693487396386292064497003082496994743835589255447716001500009699698671673379168326494480567341015727482020439812398648123505155198238536024597129943679290756195492382000853275620864234869541392397982659841436676569430590083149885872223309417917753856765490214897314171899665204846771933598233657563219546845367507272193436100211226218790835918832071533173001683775988333164163514089509867458596364414429969733344122830315704499671941107996778824910754478921204389083835154976927297551678990862114701181929004770076475451288686462716276868800208319416751614860643827742051988941658394129863217955221304686715410484591699485675630231992094704435854061745072931965491815539100884253227031499214485279847715995875869828392205124767658563380945802472449150077453999903287944852740798072724204492577211259431937664215009858212695648745223384510230131501607325867690409140497677118816765043439585212203408828703091069150034709091881008956328650237866005354516632109867139841162819633294867965614532507205059542218376310148108209787371312634806933017665375255028751157432026811367153889043415051333962015168525181693481751282110593436425977593244159051691455377551116290116350931338899095324047837748743076134372370509912906942783852639811685204493845334193818409571560769158983533676655058729567094862731266077583068146028307939690845740122716394750235270941500846696078274348982699775587709391060748714846194794242779463523333102586984312256221664864802074141226689945101181711014885246358544154003115988530418365702087114719789561692762241556889423364053704051778471261249965673265195774296935601919901304738439839162535906744535872197991440862103815444157646931516414928214768118974448008292260996987428980103590108873503238446745983300227896389838734251361847672233072881432654430618414255900740862355064608206830868544293435727549291527443546184781441635658749343310125020935246447032638548727940393634271671791026528818648927002946459800480210765017517988837031491221759059758792999456846501502253656989535487798268939132731163984844427451176569053317109819773109896719060624277769818881687016057087821457893369583590077553340766058204500728519069608496762209283232265169077003482389685049968215455823293286287905407636911952937834388875645102649116680336422913807003967384612143236579347217839012840854417836623211999536705614697912732711734187889644703647337946825746244859527336893017113471982654123775190077851083545470612377603376351384301178989708494286394804349436788496066852096186322861690795659572099283311056664910537280196603961224643108221474640356066448132975344731951022640102462993126905933423451116925602473527338197432843424839406819644863127151835861206968808846712702939782798433248683440485257517555476846949173940378825980967212460892000314002424199434420829312203037166211678897642678384483126465798594993586996239032985371496597384516096942640974303411033237656137726032047900655725708840986837349393035014053115483775836934271742390025072119042159881976098963884533993964249831990230271147986918848710738904016547191256283175921035067999260145273313840871457190860014572273682069374661653865032117799148373675031423869435225929674380076290987970814331446023255863710697986028202119348976116858760962041617763128680903525450075691811350339627004262946794242442831976136475755112680437448740371507778783595365850634935316282887934901402574427987898791085454680688303711829153928197226079354037163445593988318282545355531840618849706863419351293873783966165448633308334326179463006152042720300808004641285622045855798005811828658831841193939479223391246613955247968252921279193261487829382812740884522716749983973555327825906205493601222623733918505441131697663562836800646087062371290385108958614641617333097419509349484107670913667754696283227893966839254794382434104095914930138657777124178449563589200290254983125321520274437217667864107454188630834962944189528178027232045813355299730286743657349102903442240644364536946349086845908103664494798895264366005152567665487106079754934062117328725705002209186983327858651017458953544681476316832211992194657383350225198469625391220107464628555877748674350722331530535377252637839066653949843099982674156899840873875467031018278385188449353476969570013994611267068024872228373242972644855247779658993049484332896461513853804586140021151117393524877157692464220452325088082616982843689080738638932367458056893599432737024578019274042242661608204975833251745904712413963546906083970025928413007744532664914135671950264245221493666328694183773581377549559313097419664068549735687836208955524309507031603168088400232157932316389053871307776238283259361360835288512380021012157976367084854528523910202607834909913677036885737390617189479327297744752154563066489353572890176647142151177227371007939699275770069126271069998767332218174409040428966615561189192826468697330339131759697733050752863378226115637673658372119251130875087030613088867774830509072996625517795685614035580214231634984180100133409535811212294986177220206571383730992848328436821548931069168029192090490331331055829362898920647476251549542509340663328497135731889711703538047864910327329626982662845305810669114104415638017823413113903978390166302336901125292719238970452032492595302991053161186760639717053614747095962224744569080825243259961638887760051656300816985165557746435605608186344168165127663415919415212622415540248173498852195433600067224224782029253556405272173086162090532563804852102701112856022836323096476506527259269389131908427947201656112328856118348881063758513622355136371666190110813299267309128978819924010134544020976133342434469933281722233755877997769421121084115093241871057174085724254994838927666166624705018205938696658317782536755814697840563867456652128392714914156152370992528203358963107657368711991984783697389516911619681572164633474926663348178655836554089503887232732055790041732581920923894012040299190780978549965784837386348498402148601066236966928063555039945283648721971538021339604473908764531251006157435615125187573597524361102807369349157973215900061417172271553824545652136450284279527730888044924489914535735012942323147686776705095816086078251238343266518052767729338768891012623849285993916477317786096042254747502042596075426069849793361343210841095847754408814360440380944709041166392972221873037437789954781720434832210929762129831528631082008703071814812721545347958745715471719767768864742394575489214713647184486837306601035956493694921236068355471186190458606629333317715064333376079645142044686130683067158470392642449735599371017198415833004952060907400838512808434810792292084181923885838311209582731317042191823021706421848889563768392440747383481798331080584172108749940314874428116350522419494174606381075348829198263187541503473972947879965369208119272678035450088795361318299355398056767658760287165322456084329053809342233167961029484060239429611001839753230325270941741619772328553342292934755466220133849687735419273863534332320133713294562961076640256375403096461084853037638773180053391814155192612432557598018872192058150638643754852013678783584386796394546322581839972927758783263458663578568009053326673246320766174303446792715110671765594497457414960274547398258619925610809174041237845890002630327199488108395449816748077009433857935622779370168813389728466602258088532463978819054678296221100741116821541638349114541863130736542476689059308581483822311219286025216507065000907358789529863070691816068092466548488263607631895948925933418757370297396311667889408966190300536367293884929575254991151110430323197873285347639813384587950056009124383224196262609685172100780525521770353438525461154484089747506714626435781235135067933428222732405814230600240321175722042691113684043419341850300550172551527343451506996899080364260015337307517136369038692631800407133203031583818943554757193458451625571534879244568220823268069144634899706103241955863755368732279351422976344452314304705069384091761534334648300567890191213344147208314379405891175404511896641418381978552440700837894351111668981996981111972540592211219964930348851260370002215971121225757399290960250727759825081213458182691085021480315005379173477567041675455954953430885621900043593532907572634205014050108145018624985444311753123039530645018630193701160559696812016926939636451756922629531616462770772338377955271125608668879208017888020637943598259717965507946281166807802082503493836221178861430585885644630235703117736754651119825050697617362163941875830270348683914523207776023260137112638808801955527400012377106535108166681743230352875090592699252521179063839831343508476470861130086405028379705416247066373249145772191324378444035634591782891887673117374255904204221732632001187067700447434251160135141530637124978803423520965936800968065482074154317695866401546697099954959627927049142497810933807752184672565889338574915973907732296175579289645326278182646581189927383876459149896804916364476824475003372944841254872465643465391803655978451107653233588337665171601608317999233445551340980182818672369092318729221242709684217909232756598510091851397905137312886964867017487960223064314376667988935861981019058231600266886397014964918164704170577279233978894307686072218635540702425236115119236503562803895272144524381772750852895901510329826120359379655902915527893420256970493108079862563449665498708253096888948824871676017842392456597000065308926973247690356312185721597281146439686322405826569159194645827517694027154404228772600660295683426610836552766858248535115447352749154727505886620530725142221389615487667101578855156731319894119885930557780465272743017925165412711288199433355540687616650486815542009156682496047928498412998967272957847520227192469236625882676249791804096448043356081911997857825775528365924850920509934539471360545494346799568850015143136505821125541706280996871911487880820235613508839839810486085406651099634643672081268868009000904641982008208417182757121309492744529130138684246794759539963673176546773062410047644506364913495018745072031768465065576739678969542660946276731629434515893860058838867654324735450763758718771754545576912484391065105567837864457399171655964484181874406198138941034316534815542025472360578697231660397663767371015176365200877970210722406536962241859686148713598094918770749552451924216257926915331213189423931116223966316252707348082168318316133594544616060821764394166797926949274307911037635141998802493655350916906392409757649533797451111253141450475552253604677280307932337195430199287599787403861169636523309675808660727117622807928278289810714928514823140456345894351617771731237430962773150239512742923849065914523681139680035140159549617909539708198028443244675964432177310600082672806639716908727739212247692180730605679164203524370078093981641832996809148260044281390458851910991844004756517146766240478581122449969948912638964995627388076014174132276672610747991562586829237646692327213495819965009831684712139720092547294181251255413437562538662711474553040157907372658862414750483846741886921799356772756925080254859946155338210357317687165793467989194922248061435778853542950813354161570250834551226026680625049226195718572347198710471675005104469096729666915632511811026406724094552410295668286548833205645526746605729501137860681339173679948829376736327751145397367695854758304443622961196439770918754972745237601097498661345935150074941446613860043251860085369477770001242694918641620180599637009992508594653203096367381493114046198233432651015851539086135388951775246899181919756517082902155867691307076941438274495669721128420082336152810749534350536710968711106713994096868595341561322533810436399355785597974299205245666356887762911085302831097813715863200133324930420271888594984070767770383923723749290676052714128785492439111280511716479274660516668526883770326541677143744298360457759869930379905094800374788390667777734608235800001213133759963083475081924987819084303795064090923294861714028819867494360049828846992659346022229727212214165959325101307108134010664410077589408104455780317937936330067807334913188401376751694000390355035198869472855985862234329788305766503432754390729434428139712925371264985699016934065558671683681113916131461498044846113833619973790304255388155040702607618181517772097109285941245465388150613870022907308876690794398602995138495956483285200862382904219729185307400140929619882623805971667159093699346703739565441831272714682943787971652285738345101296078595925804670562025305332316356295872102642813753115848369701330405616428307494704557948726823703769538290028918346818003915825976706155017052809504189081710683169961821148987021557659406481435916306477715005951049489560091029319771984548737847272863120524788690092260581860099568735154133910549415049331473118196539172664103995057149401267629552189430744165837893891207942925406537055856299424115747649701427836836720988546344525299596209884935664266631386964839086863605880579954064654877287105704389074467761495828424530642295021758430083915752229195907085839324178583519366173081777865530305834442366884405444655756540600775075680026395209755459028860651942383734745083569903508609461318069946370080574100165473229679907570344811613100851445607666980276776766341051608399067405644047433696426979657900105055686406300665177811280854901456515825779213656365265814694206136044629537375339469165713318688657503975112325380624894399921804738971981239843803608193673794835345754129317671205241441386093004848243604571475439749392093615828858205379708616610409870427869970171351689466809835749120407160019866058685615311150206275422398875676166476653415695019480991935084444754088691229331089169552971743926628007723282089484237835757641856421272188393620368561521507660253999485211205657822382395251307105515592069435832036557196519436242272715419554949373706725436179839692218213885249750725147922097938069288140407252747098857828162850787701850211809250481777696416481148997224416101289322928560818915054406205183253616859239326359879948148614689113448781887089565197274205750516601887220398476227683034911172737437157056942603574571072874767116409615973827420311551659860791206213905739722207628654267257851177228360799715879919912531443922278764134919082239769172809102007262238722117003869010877090660356007446060233924719164476671751294653090073657578717192185360331648875056473527199524150423285474564714275700470952692414134238717029845877300511108952880419206529216152144600667829972057537823252941942611663590640505896663397087383266851194274449893307566359205920403577140200741862959931666874266117682090220305707423555586467946816953847941855497879966721371648942769816961281177716317161623128173745184174476421943137231891379831556093047937893980192115668322453399814843374236806956025883797474091412687613104656453036392665934015454908100360986560157743217847404824411119459515958970889478573737539613689760772765441038491205399131910915638175048016899097081182595079019526839583762410953952203999139141276230131547816213312594852707332879525338450542824208881845528215657437729913061405927262768652018019928770173177165359006215953164337773275967627471798576336097832834670945615851282307879308122943915176037789482738917436783192209927258207648357216812789551112669395703937665245057070662472318959853563196832109686183102399615395647022549304753404060893009379135339180590721822818174378170623277467384484531157885830503670990909497780558358667951397883590931220750315210528522976997204495172991161156023816836431608053864838130657362474907011710630485732916569984450140653641153442673421349312491291125077641506110018497142793783641996730622345035423682299832946787299019645929637891636435544397580477755576749231178489051023851963417591767186126478314002866797917101696646101405981973453192268235417257543072652816198198657660899610666178794602586400071857471703347481130497828879681795536080035091244220906325302121879781191734799553957652581634248716956037165946782898220596773627597231454148793156437276848881387838525946036157790971891611837174716374174573383632464449035537060721062418035741481028802630357250605805868354920965182826833184468828877143058805783024369444710976441726246749905534304011314753837879849051790701532349546959323972453102397463033389828296166791312047077560139823293083354084254626854842380748398869669831651973360547624685549801347928560129333703150900792067119110039042269311883478091126628021356250828754427725449841844834681444874175360118804801924978919593130657349974757389090135726474735190019110663240620495568589995872809670163995582989977036409298147565415308331968958148669331405311946315117734286712290739586657112744361424031976721141887554231686840176494572211021169707819507630680158628241686644732149954552757509270301590227140252168869979388023132048660504377430676784343453403287582768632970135965379163112294390052638321530193051902174617052279650748407732788236044805256044322438905961665777929684019866603897025085019856857064683826813513020993947258270809894048805833355786937546157101133901552841634822125437012311962660589317620704479538824887148452985675813593383653116072289209197154618609076416319245017641490099118850401210265852506888890083211712270818239196202217470536663148397578095700773830611662883210296299933980377189776992909606692804880198191076473277651214758145657148357159588098716869861931272221603993853217386303333353384574790193506533497562505022940365002469801947084612268135103805372994867136399383736380305621258016228990116348228131243101929136400769511496316529757618552548880338604302732200347521679028095214415206468104642368272514733076971476238029244955084981106863947189734717992827679599955935341421317055508487254537015719953036066121739763656388665080879500709332513900240237752683001079375696902775648106167251324345271484783025039829083620059953146332456405451669278069139478541805939878870552449761424909489397171596944398605024371979846514055436692741812718632284714182405674243386849306484936461167203296054952534806363240065193483076965129176268081404226369602979371278203178022060328628191361535916844855151173758897395856521484324091825840374284103048739203727230924344963157067476594366771956692191807840235763084101587895755623447011823489492805270082923142582645839694517665969891240745083468910099110475040024376542257743747346835338208522313647618295877038892495125889699985144549029895831464917355244826473931312844851517987877284649034690703521343927345831338533377616898875582487387489671063680830140564815136968808022562561283735340566988788280998270066587180688781756880729391780456314889106524419131126860445834334715443498804264859193191234282301542543460820053350942982765280865297665567992601496807281740432905343295800270147016840234734325323327137004520437327639729844779012458861894332125862546367874672125243963953935990227817571833168981151390077020087171063615408352034360919148848969388517686390560758527164131827001181526051627142791717380562167083975895822573071901998826553760247978185795020546710056267538314724671471087225557658468442930990680798166528680614903530197366222566198603836829876551552042110844510383573448938909904273324901363491549578230604661172043184593326457739672529619097875614864627491684250187041429148217892648093241474296106459197548850719024690616932817679775182333061940876163402271371598263948067628278215751660974889529030134983724375113296521281806827186123732403306892142559324662501046913678603753962831451743758343734810110796030290096449638010276842192954251519537023701771043839475610351731417380037071769987052647001603543720490552322084883250278760789788858175783073702482385087010386633494060296404782592406916345208893582970287361256466985033239558788110388473878998658869677767147179455062955250422039262861511106527994849480420648620426491316356045491299237767401614333119623115941315552147236466625694183543402100559093148960266647859084437617834320668733454407913747006272594534838911969184106614634475386540204894285824517197731370070918325478313026056365299772404440537326313021353081979764226976273762915214689775741484808719346888847334302655289370847114127371640566868952405629931902611629337879151513244929482073108760948541439055583627216462450131592511374143859606253124952169727712383676467122391883116418954043094105722366371311266347528645578644060596212425367707115118601720450961156169245822103113943340466258781889973887115881823292528925418727564463652251719262517031303974231227713828422041491121988692947439104824833085922885437040319611329581251398389433450436360549352362364388835492410739514357567561577338940278988371202392744355279719907738481968598192816949805411156458703219118358015179794548542520693273469258926222489719509732145060208577493916151917427087671584844657852352700637781444835375818041731142160506031805400484652845973071830367675664471336951462215559231699491747874245059014801404402732405398418009998933152273999673258365781210840016418974062288533301254055689724508309330397630777510519584280751372125909127583631443022257437611049723791109761567723140615173203463333594771878745527595632707715395854239127281043410831629886824672902074071711290327126895766921353766180563705637962910395808526992508194655931531078305836577024820924967642313013472188263519600707204132515171731738238168519530020033957710112065290246427426998681257428766646193725179908245418209809058186840477849316058123294024636821363072135178732066999708389875504639454971377355807293779237500927384151117353632736421108777386466564890437964602492273895168108686811201065162291794922328047034609320512507037003273104009769690382766610157546198331743788016415106177339141499548996992109638411247843323020909685114727895842335805976870513827185142851004110164799272220580042691104794514562848363606059037924222336838975126109472162321533614944596822669818271610585909543306645201876814460604882850602842125066412284928162950573434423956799779515858367395573550288576890497467946336598206967775853228840028662108867012031614123437677340786999319821054897899190639698569652450798160055653164563322989655439372522211846758601561413471600879014504984733449427812323107749618732048752088353537622417752718606669866371333637014779148278259508686954642364605447537111396224314707864787771474118176696591878013751670743241769309487611715482034493492151352004438259569014316981318995442700174487591684487429261906056999497881596770564855641580583953224519963822335361491833078512996301509309805387860276333434234255231525527557723648639285609775773406652914282846231536002288795102782438190616391807466641324187168416562058992026055504966865487052509262140756622701033659038408299424520779451260104293639982582982313569445481248550308881716624982243622257796032927157163148676352896074124319443236751479331933097798171731175010144657446554757910761704948978413149899047955934826902745948582252823405078031934973492738480929344403761984188974810584200668469312636034381682222898992157005753759110268357850611925771288765222403770800945967129974183758395945887247448902008977795105321412164709792907030135481498852895351282399190809194959817135685546470069702749535125490409376351993440114421479660973971992692682725729510244911255960624236289709398955304047983576610218936088010999822525057316906202809654464305001349234165205551444124513400642092756856125871271408521275730608652720669100528545418298302545883501143773663522345498396299331055324729535657762367165697985870060958917968207909231180141591951682482102437952913687672533210119362756325722354072224114692270583511172072126050436619185311300063230763769001267692496997024674123577725037678401713734571061979724756087212553034375407747737416324606848659040471228822918876283442203118817939475748925741767550115273317729957797874579008909753663991293584384389893072294641776550279995182482847957837856599347958676350388495677398920181142891260830501869659624622189392365445903996101362650750994950904972147991488660605903938626795738923595254950755631843635060558975711003203528705632961905580197195369403341583783219757173328278512353366628271417144104199504682483566418997886833865621743084039836562543399545122534087659510944962947439062073420453869622140038396997624751397090357443296437039228506512820163791856573854597758695007061160893260198737997420394161177385224061585605238071204329866945469522206348561949831507303403885093073142114508452546511852804563102236777869926769825769029210797779651958179876536629680485930306588917700558833660066920493642841665320161784633089918189479752838955622993394738909469147889261219805182541741896111419183778454405473867042096203231201831896452689133984498665733257970551339083814473344490233556652262182443769011861422799699015913865002342483318152035789676912105704345552727110884416776324206067834890979742900262876458758807158820229972862795009349271128909067111968662884871283349744823760960183323819789991509375503883492446227624837452272784101832930406097502681513123202529191302962135346391796203671171802207903939817202612814345708633584749316156874519901656762020964637141720746741190649246016804832652895329172537865447876154077147292629259526841982406246438057930860976460613387890578602930487680021004192714176696473365486886908869716684323822907499765677445484128810097782372246990415405207339519859541168821414448863007436658225314488137712994543290863353191508570604432513205946064409860806569487396306012550563438966819508716517996575352486009683745428388373440963726820357045440252805770988808576728906511970765669925817797441122695138896948470406622050313464990568794562951633376512839543893528469981751305431734409997051238276748856284075072661703430719781494548763442724621641514166613883928785038451677215725440236361381801296146354920957208732105306558806462479637129181355523335319693004502488052223518156866285870331296755881318709904683223366939042973319560722325020923956949975139934161456453625975173971744338955825980057779308847419498284497887134425979705133050194556304697415541347643901866903981163648136397237272767652295482388867541596750138232166238636780496534116238856755510242581898380424602460338980050113680154305930286604845413700667572727560514650615022186291289316631029727675272333540026433486456937784584792327444041187465449550490233053050342777548854104161488352271722734070495126078308865382604582124577626023495185512888412909919494320052057163841635747133205184669055206467092441694123197115056620567552357024325705214831794237346180335516248953834569379820329488850933288922624021686359017904433406588294665341861457073254322184461076946719926026986110305921172647093988115528408259168960018333962347395211412898640813214905714294824337364947281691930996270143786971708631014315840303284342982604440767147236491357200336234887858911135934182313050297178733900691382850707721383732669661371129623419748291580961337197348354786406755025661979783442774549588003732987764363311461130169790887375247472887151495007016878885318348025178603084649937008111179993036015918946664581560979201844587988224065058085451908045018664761827475253118490865835628165920386068282910057665268654983929857676634405006503500326787516918476848318286719288648589781075827530869795449827051225494049581477013526534797473118335964721526011725934105022665133804340781557237809450821865710316509852161546566807255270793151611346082873236302499137679112561522490747330468094853925136924221949557389487493342365188950524070488263511385036911392022073952356274972640107218736964834587810261781991325858499295776084475400856509940529777437073515096539458268189845247447809717505906098416602080505390893518545465192444818011955586076968049498735822255767418573556862922779778888448999252788381199422158191458631944811672064456103597253489082768362894187138046559929079865793589207623770164779021423625179606638500406033578070952036898528809106850753122412376549487048315752475982273594079030307368889543964952607006100301375071994764046944377458572642612759497139913426542180374914770488295555093615102552769436220248964267857090214561557714186828328781786061481026429844677448992911908964389642891905979289839276908851337361412543631554153409378325968019976469478252385541313503149678821069910378609866721274720846418121878990104383630141650533620760241481968774268843058254464960157287472793543740827540382540290959288972437444290100977374575781244928451097016650234518023426748719018925765334907825484600492514263125507895748353639292170630319546139796134097846036185018563854533817403550772477369076312630933553778119253826087484701611178084149275518414313119869154298846742570015211157373159198912083063846102539550516389483621515502130961634028056547918201230288928005161494129440055143310797746209858763298141341640979266282282467935743604295917815121055874128962963671284948950776867766721493069510027741307665085793529991587564653359710887297322063931316997410272621623263564323343228206776817896477936030124153179715872372293315360963282956159201172867096087144840852576179254042683626346306831511163708615588947610934103435778454157072046947626441740445162360955908098603415851176800972753499893500029748199510022187726474855510513926574873287512893065019117182632877345585414809511308319203889302592436193241095628462296097041160260916899888375805098942332690573854127985076031158969029249658647033939877473391565799242822508566138523625741700174510433770402549039009020742352427561551716531932085368422338222339761187368338381918937447064739614390333837822842680477530129009727049188851414273075339033496907346205898459459479906179526533468226424609291794452395982011533917278970651804163313285654033544762434425366251950133252408139592693352415459792165199422569470276038335046930565833601877572909362823986565944821120611568358178950699838099616774309475067783776277295739352483348618553619105164727804862360629816867422225830214625893305031188831960914177040310060485637260666693379364800354921952160179217887144614921271876031362975027753985559719525338181854108862522889330613590631950423776624981224376049781780608379232259120180302053801297296585661710416768087923424113498779218631772733466864846159349007742249107384529888446872998439380706924619619855178993671833820910170946057597705277654786438139308691246237046985406175138286681149239006572337970973123886163306209317914690349689649830482230036766612410232190753731944939144015962920676649654248606189737130002780379206056952190529773166356757634478654856540729285430446614249026936921423643594456028071329577668969664871042754915440942428311094599123403632727774697206242804066462631062367401971430313113023948460830342318738794482844005706891794866009412544876110744385855710116789152712437743266224096903543113732031499797924175824870633198318404556722137021776865301647154624780984114598599986374221689205506735720846520257482119414331842915194650866832714624096774728794676669774513122083720503855676880615560638414048548519376382930531544785944341648554817608664352623056142556996549199659686236997042608190022716154674773916741033624986043927588137188739008995270838151460896175439001090637124005583440371234027824784789557481897717233358768281268521657716723354568124659401559479150222391474259397451847757540463324051149213830552415845768757302098259371064923012933713667361603348529768523449905741036947459772267542725337345745807486091334505894682129699601473059596258607468931899289178539074780995218971835920623137914942293981221217642290087213652685858174735396525809404437803006478249981934118710335149002062449663121462868338321820515347371314001843816634568795178337219312304872816618435546935000043050423621369413546156105672107485182069909590809292041018803732677327839012410785971458691300073686630482017963698818082694957704303895970967005866548343317058225148509772538173295649083045878320334543898177347207155605794824224310856642659204372321461577701970316459263062049716344781499938253769920094823530313431357147327768535311823656034513950671537560885361294180163606221568851165914247138694328522215824525090719830640507756851342940931819370441005916643391196878144708108538513071810885942478478700201339885690795893759746056139998996742709143046581462712438298789332518731363297668526553878759476075341846122641867124412862642246297010815155163539066684471246891862106647898497890667114396108939400590862694135012262867869056433178756483700852188885017855205500202844945338428899461741416215281427009718412476419718895051000659158024655229123442144796747157493765903499614671619808779018624669984978279943662514009123591168922899702809092854506798622746483186060983809468443701691732758520839763138495042480803991160548011287750984288059732934605400464871961659220957154483501214648403617172697251702257278973342780793182743693517670175889843557895807680530598629813995267139406674031315065999188462772182079768996654001176879692015459219795262292948344688071449448974753575532243783781435067730955099075307957306479697533839982101051683171916393553672385755540446843254471653119967076588081446976416466806480837471684019338010982130826503269149566576523227691872635157255781351395202840641520651025404321375635650260112429601221201291019417587953252935584845166159132457020684433184169657731772573356506375374678571491496846549770554846085231471843874120836682211584178738311228423959306936326127896211189010013202114097806792167231553452990592176990620961083522553534641197461103858363075526940407851322870937453184249085613085000409266138090596103395869777061788201314994801701004156955553139187036143452661041896319529163278976467010149158337773524986302755804332653031197781966404869451805481657465141080163483027336688713283446290895982101387100367776783259654041662273502451938362777243801061897272456763124187083583057212065818917924476297461557952485441108089846245738429236903469089243400028645776606226496672163229136692441059875690736952510267247617335007897603969436881711507131039562730698993461781144038456727106690744701747118220362103203538444800463091636226929538622154607588996553036758906506882358199607888388432486770487136222603933578563373675126272922932405177761651504945947049589436534047269169701465514360657610448915906543504715597823882767897193399010530371636727542937826062563733492241685699025044025583507339996010264611322827961628911354646675173737443188002994686396304252570185422966952003931174438642004933610984199695584893963091484989819378990506063681045116108647807798242061854881388186869227553803714059619692041295472848908863892337105879241614023442873404556324220053806725421212107025963242757746734190734007055731127344552373074641708891234136155024190011316699561902828151417668256157931276693124460984519047965002286363014654738490091928328754869051172732603265856497675136790853394134701423971582535568898772286202161363991425776232464052853353890312711025289809951377121951786791490236877475568120264173645065245336896865793785019253292813127015074335923307889508229355427844333743896910124953379159558231008235724979327184750904309298965277815561608345580417814699376092243787771535498291427227639520447224263815516142845300338708821833207918598350642193176621211871450690519552303538943591272596000214760485854023203672883633574990974400368368091046476418913711337988929903925394470737060468858911787990433874522985109402483411951604165691918765815348986516724711485356326029022316339586015215830190707973923840451977988620849074607275522826194397591699704990039283100037994841441662922759523384245147038692804425620147194295621858127819772526104552786436648761678094730207338053914698928882171040638515973122528804426844961338398837857540885852627093750947278132182365416712037100224634160986221433641659766653092683194973521494918165947666156971329414735496347400715888300488006698672473587645913191999101434400554398607702912418035348635671649981547266756415750518519070396877964805745236479276783757771404483302898495127836187548605605467303423430125486890268688571525776120850338025135195658895103498698054631227558469595954931170554551572318451687577619430592800393582641180391643295341251206665506858000416265639383360044272504863474079378519932815378006273914711020058873369051072632978658037111258409902504427053911882674698740364879054715849614661571614394191634620663611258635852392954167471338105075229554081096240640319775505443713431942149866654499140551895689245955003839658051340549150622646585356075372433516752694115139167874273375616104486350171918634078494356125376698137492151504699874244251650783134971678260718419780144497205395360711653079258795098785604378088902532771882473366093008454204419602731937203704035107418628245606951747532658476720920118803925459001683110100632778615617352444735260537300997395990175223682298939898935731077747113862047179892184602098363472316145641603248736218566125980206426152378318296985955536380623409688752634163414402484797453796505848845427713993059376955032891528701126453718141217718564381008949806462030098016117003890494969168396024262290832409759001293820712820873007048413839025165845361827232940930355579599975036653337219653732918364973224944544230042059114395682396476886380032424797832869507166998501806819238303491454096727213845668476095230372050751625224112225198441852201955799192464540289129860613851516904128356782598320087398549007053375837405103264097715384558037931840653293802381315073741523077039398554137374606553499415767782886284812882100971794911019477643583062532332017408160147331642450752805811221047622100960247873885458929225344694859312947865499622505117158236047644071513513337404246356523920383544231714562868889166948106501327990233093655137669749976873558831921914458356394715031925720269012281411433026392474300347852179440410710422536192221509131979859520238508725234934295477563595919321679139883485215617283153947515983838744239859905822432818194102603369944339005171733784854719401819989936304851243319748890846441044824566844953581931063048819289276751314296101308410338141925757768145222066325841519185030656674842182576646890013527201544658091251239885005045867131361249582664685907385482116435837800716190056290223943260506212232042597459740925897167067155903336483393183791400084698864365645499572956076729419083241809474748993344249953322328755853835000192426060900299661637790953826878610137221033387920955663649144620972719963237738641706713380865950696524779016455438719482021187765689237012595913103346212681834470136739396607216921823160564369958685074888152033599509293956367888811533978550832568951228188879143979983043472143241686778167357707571067188478074801966465403362937638290667694073463180261847924003175656717186491727175380336771847018984250595516189151676443577739577531836525984754301127076214712084439517234574298038909772282064413241594323376033812334345978465698506388026609960440209048063899574942449891416733274845771356502250530283675989542722755872236636435999117787309583077720502679071373876461747641904910822343218556752116077496956543490622555624410784642459266308657822926814258821721873395371626971847613762155998098038339779825537203490296592350147759709300584786352490722429602794419436265404927860672327904775573999954757411738668361186225152350531430051827651313747749112690492872853481226440829356831589066985446292826118050569604718040605714374751594832421569915830479958417337745714752684437514293225537245738238602808227868784697525454986394862747879799156242947057658356137769286122490493888733907441115940452557130568474344144653243294449008200775098835614697450552167302658205487743811595339595649315046994585927982457587696797838143990851981817004048600877599493569537490082468110528582308454871416513868356056330206109383634728157157917964292997009146002821534768594434524974173561403192870206018222786091501165078618985817296680382535073818330427181083569918979077272576275194098743737453577789380518661753212115482964673348729590144037835100652337727257395971578440313316997321117423750211476638068054002261330788088118536449404000765807787539085118372762173597688120070831923315215568426582569340256088533017897496230550821623408235308946839481563158093733570751523858678372960349122051954973733115998618890058151509496785703212202538759121546765466623456081021937033887696164751097455490845904891531288743235123207623769579390992449431328196692242537298625028871725582616941064571184887026074431235132144468665161083170024839824061182360184796555845572945252319980117143416674120160648054337669256940868022514420732713731531884984430615288159480887515953177822494405996769083702825676828194600805326766185810955474760799038473368402738494243146863688607561205806426558453701769695617942875240725084696664266479777940839484395329713240926238961077886872096133369455546958029132346259454491217922449476452635259726479976064147119647030691802507205819325308351764701182967624901784617000302582724089361468221982259206173989669364044835873188889381966089583253691381003380573131178940029435033873966666403287662006318064228209307817804973588779396070611727665575560822040876846125448736350452377758166286783561091024944552080520809338197532419029329674841485036447890994418608851347248690754807813208674656156010903797699903507073629789068945564521042393949577528421040559759734239584937865781657925581357850709593270210281972858718296246957470092039897247276041774689510765303001051597855548488118479089436956690716219886955255317320777473684732563770077643743878468014363642909482452642497123796277258702131828952636128099975697267451471561713566988294918975414051224388298192576386955104474295598286271014670577618616727280991819574839256798341806097338271591175777672175806839880952785597458096670090998659805414494588227670506270255791455746126017647632628208354674257260410047499768508237025030868854378916728993748410608973208178614580951369270397401904753440663198820929452578648814974454559694807423289026552095229990913454698971295663861011129307635502678108139772339159813825768467572704287898739095072533542787793945727821668393277971240975281027466619378340864860580122642309520952859791122600903532737554358875182156933139011006419541651427778943569308081294763072001024273507837713653314220167593895295083164931530005493432671354644202843121961939429978109280702940238538824233627497502653821862178312397411285562801957866165498598377157682272828112934625919275894359813655509671342316792364112162143098764646701478818366308663302252089530683647861382478114725887556609361840016269765596297915228726857235659235325400364570095370419009760491345811732698655214726410781592727066356921398749726383795682923628430440033149131297207423933159774942931578779228804908135084744199579571432262115552427015551922037026121550134110219154194777793108853338474548562452977623307859057720359742781620034880416297030756800727758251319666323823623306174436846345039021215381138412020739969455343931677747626275952319824413703700806531825636444063082737322838289261594150241447598686510415840670904144350581334155441032174517918335244592188510703276071233468697309607477864939613665422223162189806935785440631249913815177099016857312096676029431227906949657983508639680978390029600871189534532066883664223279107056910450046171368029264873615446508092497271934753236823576463443406353411652191669472536337614881344715009415940966734388992353355416819792312439834890809772444142413537856528774253475221326639615064554263179012791525348433061409808028956193795398034975956451369929514956585665549781923364375984021633372329205624607130923476012280714899655822294146001107206399956901414772019538774375678873497237660702905296899491577725951887685721353949075121746855605138184606723758220181246443676399271849526830621124063464611397974889186580369170357033526363882858753650565478736202995711266820483210658883508857791382015286021971685837570614326630159817622231175520543109639636888293367438219072777679620895548703734960657729282894981835234529804321076812738408799298816855873108018187330832897903967002893290614522702902700919971305651897189819911140541783994384198381947961114494690427764752090568036460265468300240215889037616449937725002216272913542933165865136542664836217876319520316986396549806751364632841749210904247243304049867906194913676390921593267393647178392179122765249627244475374070707068096198352806848002118941321800109157874917847670433430727424316171005245397096554555679205563911178947071802165634342274538495258553897047161470436740399624284622275845455341840201783848291706001179510657416485580684646689418794488297621525133858946843916478800243204099361744435790570252946356109526071421200728563194731712657420841064618086696472417051009223050818626899294119540459655489933783058182168811311355423684971032621279595616119247949612624309942013367228528476066799553981685961740364669260372410618766392648150385852362297260391555979671682094290752812328253652793003237422133709832414704280359148937204872716532464359774063619338242714422540298577119651369100697618436965901608536300577822889086763602978769792918920721073215542778109180000068318734265852052040789317736691683430039603534969133272896863977032999795166421322160862039598830738366969313965696549741715811281226553101211580164601791127231888448304789782965632171979969676364355723370330875774430803312295841273637570990478210443493919234989100835652415410354776823066239557706736316144372433128770135272107628465683990721671241344768948507229334741105777560217700655995354447228003648086717978875379016955679737592280664774761939841819694877865232324925653732360650848239309454154941944274983232775071780862628692854582637873122695925439831689387310079250732325240370067052833023212826971169304383201659659845898522062114486942721049576861336890804991232794403615551807782072370167105619064892211140497566283589752418799676197277328863206003734684662990572877846132648130519580476672887784749112322886433324075686434497244189876098975408215243972755045500935186567730545696831346822798460722907135440533493642680875390104087157609041477522385943824152060102937469147262007846191910983379843016784600624134710647004242469870361473304868316614683175579276253621120496675655245307975131392943175952271286359338974355537362638872565689505747967389190682112517977060380724707852923406035630585446000980507053401407601385910901968146662675259700182263790325747947777582723420356877719669620457514099693860609367641302385440737233700796413242885662631899270786037024751476036067469404655507674702797534609856899733568253520712379616886358707115977309246521132641164999975688334474878230038156126231209540456467391895974168777513936961773830234890952907334319726046509013245787390533863847324362250669829527310253554493252868627753032093823646052187647729304083179153739782450166286868452455389860661211473275416308339244996698978863460906312633597228415689072246794308300286350783069934140407373120496485955937086228198058371980212186882070305407465465759766645193099197961460759348839952057502554404113837099826355826673475992924085713234544402548474892140627455402841281340215489733595938473916082975251315834703373679186253594130379872015013055826053368571527149051876200531840498491958264180571453454043028013447701103302075767209691410985469316308659604244324369077641553686348729640137430413116442209393974413862112922917716113172861621663371324919096543996551291815705028596416648017494357975800441528249020645738942891432650967012856500903159776917710655053597527314610112665497368446113992119326240116879067491993339905158999572101173543291242488571188839252125193493081958159083087721039019628599143893961030556612444938239975569567101951017944769950335677770224683963312189342435003168386415119211663800849471039566510997871241576377146108180918959356373622794588440535344195107272612320602714982752840671662336092233539002470603642319474922639384397793516385784657247351535513731180987462219047174762112864502645156179504422001425942641566226358271057048959908198282754229167463322210611441983792868182022319641760560739656306001891914210931141355798449295673502838100114979466460857431151295261849551912431171086079985884585861641839871637919935475296692283262832357529585966489308419023983789136723318221122545287397656705706172948939203037999320775081343365422149562158991713975570984198596856060154871965519145686267139690592792168247670728591155017482462991650110992386775532775203353055389906767533297598412992771409869074696630458295990868344880979344957382312449251445429714317492565819118762080018976198141586439674185633410764425295974695518046850299769047712272284162250874440495553515621801877577321391298793437907946494176866351027680995537299946419506419912796710142644382030817199040057927879427619913127397227490336908780677869108544109553598990119644061344383337973500259446611144987684137612816396393050589249666193064510304073796986210419761422228640017034625762978990776020574259406637857051774937730333229669840132490551543492184322282398124766789894421084290913570909350977545101558386832914361247183458657361587903813456895117818029940566129523827348767434992157627499725988694005132766229245521322548318003385186186433939013386560276855872365167199473857162426932582347839245558476930873083488249770340224212526514854425985267363145486511469700544697620376912218753627693858160481081027927378993369179404567514140569660077083908115526126334758392847336751110512953740477036944016326021242843613140316724718980159254974682205848928649879494037278456498495653933663103656177116569880459760497982146458937137079121622602602879476705143252916599106808288747964978500042875855472325974486211943126939519680548249822263683417936405760897528150891402984898969465671355683793607458357427766296906137611429462412438986617337859352390431613175589938205803990016142564149969943714913848748456547081080000687699516135086021717896349238639541967686651473383834229033479487391945070769625077284697896529434785253091300149021128711597819695370728802239065735315553568434302879193630937342531740667152427349161488281244614245402948149963862695719229730957961405939601777276092691683686821972442979736409393748844727643723167125508767447168767908960851979972224668971335839839628550084760978105043106372162072604518887844879793257408996087160586347072399082362840941409964634263594510140628321681598286588543830882870962263349450009164278779687339307992175953785335042040946229650344550032552648117594469949694977167732785953343982113770138888193078908659457320881713117553534434587657588979432735814884893237011464390637769374194612689470201000445450512853520051304799401106559483449531937484132714565504595729890038404075691143030670439690108966431619515856803629105650676822371275460481581930445953633388436329027206844782105000020748066457512400542184092906430640814653906149824105839181908435596529863856624440734125844700282308086027772521479751907637318919110253772941264470190224434160629551555480761303021737582579491211078068558801970070214135245776714979606864873264035285193821790487947545070957114622766475304514312993161668539931772935097153236521848314435023534642760921154310028997414891742123056695776383712086726847055585802451045814884990620968068524257340897909484090140599462066409430085139212250274814113665153257757787662366101772118392998471261762044504168940440976917416884717284917944523791759312980523095848599471741982748676553858413695064402714231425076056776263115536213025098111051991724367670633801514940093380185389360784813673547942379259039991584548786681392986203432150923068303998070646432608013727155478759028801151216544826317779956450428400008092799350895676235040289249445221526395653001745896088832336732489794109653444787613333042407597678845856383864041687175390853604616620406611635679925359203356526242405644441263912934497928361056169959845194134173687719329419434050417042332312843190657595325656115194191409136338140869930528153581765273684677623192031643784727715858646985525241414041387662697752437955113138271685949700091705062764571807622646717035551865493956429562145889808927217948121293976645912938120605675004561751570638689622361341947364911192081874109938041545493780516190703825957270471951902814016811014750679830949931592680700143828969182568915239243532591795496272383054032615410219776408542134467733016288412817398199723379299617279745359547592388286039729700497853142965181590593055708724714814808761461459668666523390223027491022952045005588617273774813393832516813661743509313132542079967436655657633320565491113267050934024782570850026442248107189446965145919234299685732204284812489875126358987234037967924905771694416737365326828012263491834818987036385794314963561688696829561088476201583383085701446470364735013800573054731520129526775762657990667553245050971393055149506297279424641848889362741857579330160304687179361203157257242281709174987049401384551646856651430980783452962081970659955958386792145778870802510647494570967515041889381098564090135123506474817374375650853927264528235852760916468041834948456899047255181107936724550462705962272365495685646292382941104030783726126214842842153417470005047619538062519157806043746462540960301812825115874895871725634808024732906687226955780749776081091054678311365418353489758314834520995168111713397550950470028672245906018204316746737978183227113943194893503269011824422043472565313209853347627834724850523572690424982099001998873026817985024031647128695371798711504765486877094469898829591909890658717886823540531689363333216471478371526215393831283302666245977999252130500434497694141922602883802590923032874810647516644191210637862380360149090120185146994606102346341399906022908024358807134498251313392077840691482006183926286123972501527471016179656940100132490949269079475670314888485277899200348457064475300851521896172413354348384004866746182826520677786096119514426068631523428477704969296357275532610378699674012575815199645930439253810131875817559339139414575205997295518861288768875736979635306133041184935303277454045863483445182491229425774677090259824020465629014046175301790836324142746067223551708071933637985894289925988734383655739105857730215452219147375119243904966196501478424440777049948555495964196883604040929379987671718412106851477469339991062174540644614810265645324868510779868491757141540266728712656076044585493564731935673295765285268988342115783662672189199697302846759250271359855492433578895208458017895448063854983180271993329654151977221528247501219996585480956835120979657278392898978101764277954130725045740429511425652241905012908465951275472790830913666547707476806575282338836578418353584199271835969681154381557353098423836679140626908274065436421699145060813657553691131994764025448830034211952356478043778791428804537312039583218900272633360842104544735030862638832710970345444955703706948724262016759733147358869199754295178766811047859927531292688343009607750250266078866608774586806800768769300868352938481759089115397780557767138692768490532286447614710656213898052718373959897035897799354817922194813178669974984931585695577779214538259461077498651268745765993978250951939761423972572044635424450851252068217337877999572904532371646531157956119070864706766972701619038597421374507081429660810169058976286240356615881551339275063456129789877134413576797908435304161540009031822692716216925189561310240463745970535850906746294730130947030749474256438875651403675535772308862552977934647478213842706626424955348071866075801719656520733133167312728672830744339226890815029498582631185875157049122088291227887301984353473955493964927129929446107350315905292162762213498513431684873409171504747366587579882899275722706562551230684024885464369770377946053207371068790923877640469807427736282441134534518533964830450974655798180731361545195130404817913795476925930970661886812980829736893388921615360549252252418351409307494128675000027508266649149565960145982577356928366731328933306217135984542742518444416958394075230581680365205449641036821317929732675965922442316626673873660930330472389672924336944905157620656814175565972228291798087551512866097897948328608768035731498587681385333228340935552945807188235720894832190224633426314573680894181901761276401330726873242157391004265104584846406174697852102453171353072511321236544522960549280604336591412133343072926442682626306759832730249803445392013298699284357738131255004349551086447872174733687152062135483818801660620088619651664824193926803001047734766793760957546155208518721450626109692018964486776388236457174409559523557422413644397952847645316731065721936912463734173725160618165497256218094824943630669664620658587142607254386889423672875100035222597386376543344027469577826654898183548430179647189057918058998679034168144715334688686769529471880051088061784284021313222917642064061601295027783835066640445465981000412839205865517456859594299766167120953550701958110429933386625997475034541002579479661177677309405965860413513120006949318563314253737676997964935976847754370825692693409559087036066428015870133539680664552898620780967779759955513692348365741251130575097925720122190532126374438685396400854473315797759393637621499169520930809079854111655386684842923171948367060867572125667069702776656489611029825270752854965640976868638132064564811509101149063592110670128282245245716411204388547750220379609804037759158892927498989398240551122016327750382014767415908284497362816545391212764299052500434068021087679365276529391162307106717943902653868787602078606778016050273815738398743160416605730275588014927627857837016085162886960417610847263936769612272853500131263993060953767189996700060379824191445380299655394284538078501664071488150891957485826108757159386973805448135107748566616594589678380956701256391124926226116171949788582285759883476747605500886014097355113062957403117937895521143805067398785793604725402493453758741726341609897500979786567878645434563968756520206163787530113412341903599331792895381849075655864386903962525149970520456494489280284125698629057976255085392041963156137874518258882657188772054407786502209295140011219329847981202903892539578490046308894822985457560436760504083844136517525532501476470883120187231353483388851860663240475484100667965435808576102617736123569563680691271467161671574552781697982516907596662228693683035745481624023142295178984685132041382978734964277103845655184387996020483242773329859687018452785278017954797041373768398051019261205389883372504533088296385199946179205103854932269147744406583658140694562283512716680730069126582548512292787027276242179225723861578997381884835468519665591612824711634682136605855664407471714190728335275811029110252650818278305388887855573394626630885845980375058229002874012921474217979474966981081697157597446618412169912615026837435692379356025675381412689680566141220382997352491113479626588531055100838359436930144498340252341121125427248185541991265009091816050868860860972695748348384470293084903915221438183429728128251824048072567700022637536093226914225843469893457139833772015552077061974306541877749095354433104030592321573215854842890662259176115755823267481414658069849504007036134564870217958157948934005211240625549483720579521924130337482612808482641396318369372712472097536831299516360494186342088954738785434304505410040211445659299084384214087988550890713162851559201774670513405750080766913187496289897495939450532046189411189882874337708017514000288142970505454550406784974935927727363196657935913355715225332774553213069998491416060484382153340286266080963729318017949552675978919004041928607653188246451200534424017851347641454708878469969524599859581545937490811536618009773438741901219387076417417711065192367442532852045725959852023863116523744187409271707688283038373492867459927912830437927284294059856696855533838868661290449348012718966493720377778187206901839868812276167649588375623484145409826170065435494168637979159494467637136318140566044146136085657738877039106931812238205647534625398469918621465218318707695233686186147743401513108379361771834908468187020837725591574269328420596592949979725300196774389243660497077919655827988320902867851083710120003524558307231094509334301368223337989982144730358880241624074097581042309037684695689952801028937823682269541025021944337555164173814509450925891533961869119782100007893560858720904226004718565317924170195023475860576025521931819619055615521638200017084825939930528165115362807006743589099592669847832596373951150980158421255616018924831272876668114479493588898182866831413186296937125118407345678760914470019446432364819415661424171273305186111708031573363209353948642079949758166603111808382621548933977655082125937045648543059550872061631237193634815981557393074743587713253412381330484177350801771241014413249004026216307151253460178475657852336336669800275477439239311022889784157033470591189090726754549262638937523375957664151641469664701770937151271627906367814917226057751245630757160617918307205393825562743278241349506048168248441594513566157542390083134890893085781694233494949483352672985387357915009769576204047809640962074049913199538329589066639122507592322205966338498849030976736479409427675022495282139432076975427978559040696820402567318969822077189633844282957030688991300833412017253034015253827936410588465061382249685934386631987915214914939990927192180870879075304799824365390575860998485460265506320614045958305596713411057380645643197469275393177415184043316060776462176182141945016850845814847828208880030366312072764318900792845460239575152488483052326806873555317215984503769736138295541814410919174771665832805982414413514111853603320735565011016956519996130460950452435473859154162990821492143173516568384017711972691957272424962212231321947282038043082082455868771352662551302349907208126872421291590952924292627326432089014848739862935478705171083861691144314155397848694496984856898417987310922364787337864531860364635428261945404217876201998145864276631881102217538108493935663706733070096993884896553908748279322329249432455132164051974546617551017773572520291307942104521317331186012840501478996471796936943225983382365770946350640561192024502324494020315914732414114865255896107657501198859594395627796630899084464679121306687776105438673370954163173686663522330564164971287522265818339233346723722793981051024358975456663831748626967647392750940963255003637572315047083052727891828874283463777670057363526238394273274897803955969684624461810898923782931392653621435333796327227218931486256081241944583726701709283380324667632547673381874948300579602593310073183987648203753617229062872509662263015646622855359780019316958832020232633750776898890024808173221067832697524947362167229837749183916940460955836557189967572053495674355733516402926638234598526075060430192688418230036489509029919878730408684156798817594549671745830173977258623575810340870155227042017339141970914906297027048587024052012065160676803807273088275805360947033548685854258945352062376514113834948277182910428333160072084518009079881991235209488710731371888540123335682256125736833799650914805354517680924537000347626004326427338312677378231280861388631855068103746635818742529793017466623719575104528655652564772396388287064195562182190508487164072989545870264733553657381871231207322636444941085109423262714567562312349541087878605579929894305503494471836946879789972068113458476191342436656205138035264805145238361529489513193615178230523809931984233578836757801526996853177924183972070267334982880327523247069682538511458405768570854361408065411892282789811580577308318072046563483721104522852302999096251078507427846992875617227030092555643753888339375474403521055383916769776370516702605976376730918626571630194419503656376776663528931795817293558279163778631658952149723714078390668003123891740394558785726312580082232416447968023412038107037780869229752721354039376802735286466390431629000134106623636908361858059160941218432741413799986859745134512908901313890782830173681886123486692349152560046088164023784474011733204673917582173898153555423083444125303674938267566985706179774354647394518372817041113357074383744124408269815923943710748605981383487088514498695836747005891106117888436827106602914478122746160740395062357492059239058636166144027373884942912197236883339728864517347101036249951513952466745649181605075117480916481537424811911888308584244714316481857945647304425425495251423016089556614814479104870329774533227841760225552596430353676007439695321871523175704979378912541432511715772400925695873722715641268395263131326405916694222239302090698800847214034719143095866751917975244111638705947540636931214928134258554061127401647683133879013802700267025512933153637388662889341214738184777754647002125751792375937865163456952560013908957701502707349726110066600289498908045985769225758387368045746997407586586789402449296482221855699834580320226198699223155176103359394118332426712339284077526553290113001209204864214184224334962666452663663498467004540487405379559190586892130921567223074810079184415656491360450597437144183262999322864191300371885385446629248481354411533798138556633092728969084006685020274277275685751846772134658223667331425081453668982485774667189496904309352518651048036937308805005737154830810470835609977930661155613502237971185139178391468983965892756208886452353431394878970613557300177649665054545126780042415615161660937076442249605051761620125215198562820753476055186577080899433768559705312780998354820533405057838612826321578925774514287366642630729506366270369164373250850433498555400576614745868654302965827454396856970479474789515945927417465514498893559691329760194853960859517525325402900943150364281209131910861812294593603072054984946488325664720377291838969972194650242764308872916047389143015685998118611154822829716313125654433289563976920114066178188275756750222791633196148414656120386952300880846354961410347122029280119860412136744709935113158458920146883026971905108027814667135671682620623903034401919727140277050195330668898792394071237173675305560305948763552313469506067340057604418565933429982811860979655931329776205506155088963632522185562620748134623345728797741051561818034646817231474888364376752431991955440741352997416192249679688545504606273296132738609238522271488126213165087908293414049072073236393535801590648212611868740519580420784626176944015796135425566015182296565274032817167501784575995188249745685490512866211829784026160447715587748330507465806886773291830983525215401369425362343439394148725153080927350557763940985155297605047981228258056939200786789465559535870124552447343329125003308243438545011294512361404644730824876734838722994633104894713781082006728255427364804317027876024927885080636077488477377185402654301971816303542661011360060385358584132687335280578233763004470811329160746368033057447159126709530613461221425985726578870867288654045234127104371919484485695247614063959288846946138524481747806436496615856820678072774668932828116451407099596761055430279073857136095178486206274799247955440330203273929604483545336734450176403628344669031274793038747255165864246387098989709908632105444282520136036125189210778618814014382418453804785553463406115384227922355749944311786279154771572542659881632940677777941435873683965340520045536103281363442325884030584068374281134492457237066334616939695170936549493070440784261635707428731322476501719638073977947334899207152846203333391139542208857227740052728069569790430001512864285207924995612464984818203160370673396232934161955643907724208550112127194876841511581852568252763485258566848167146972344344931964552786526230063864962982955936553655751698182884126251543578340398986342725755987120436069012092835223111519715000469415377724932457369220149829922214668675549578347747726295769960955797708370877034760438785954693833138177507021820767881782940385564500789420538725607582176774220899938057249258448837615218462320020730907249076936358676969510190682836977767401953211013593448280979465994822438656281468589131018198868830838862890471527179971920217644812247042056206710251020791010675917689621493730836819012970137497829744350724976689278710274924190080080795450385113444015981463865957231457011545638573683918095849301270537106376488713214177239235303817869609547279896574482886862706102706280890644692901090250196847954758479261971916994290679199704375118456370142250473095700196417937769422885599199772088380888847952594660056830641682270212865242433892229816272763505665372666492648658020848871322857834898821212951863894875869960055340414198042568354682626812575225439656843625568996984917561821923254565458096518999735743237899038692508777156502984389987711693642925541543551280102703606891436199215129805317565084337858709883346267201011167977410334262501259011964435952059935344764593319994610439851057244383624461879204373107363733679298455059405985040076488949590487690826092507043699631903727828020669048428102231004978347205019055492227553568729218197560784209504648105988435895465374444988458376099492033622552830618439603496780411618080428626004107971865336268725625504604060479953870984943808772591583901987887410574589026371582663187851390974695068118662362970261334219763997108753903255880866094879665268626365623870021764048885950312827594818957014022347211755130147932315600006131979755225867216791569967376120980197692057522201030177796956308615996627827327063871001206037097798081712471982801596371628898426894950693812822018124694400419960193299088892045239380813175087899951472175567705290891088137764915708456950658828548724505583912570302282452062826375493342588824689098394368066098204337771418663517494946120531529254933552840787533002077325448668238731423498308200965632844411989496994790581608946954275453626609651448343306662548317372952718735463482400635908845880843875279936052184609258196192492435369070837222299017819712080297054166775149480546452958872264671825850040833868144340355679206332544251564001966543892559908855004197550715192121833984827011429248869858086097373596673764474671232042614362075998944403970863136831123169958407516971403330730848701094503549596499867171598329598293681279162243793148480945233728522852572660079258981890572429006796411696292261024666662905562395894017782197800158494200723711685463398673012765711825665899288613626345997727025210452017443329811649565420268004880703463485120611184140308954951314640692865775264479551948687215591483312234066436889243329264608012582041112822272976643546331972679479170588445563185638813595001965758903045083470348074141195670361215731235646262731964816545741677100361016008872419706134805716918264701986227798974584622682424066554184870471615311367979863369191133137267462650945916223980101399257904247001053916367205627254970293552121675833745567915968512399848465458706899030112271180528269185907019563057009073678716276274626166345119481194961228324791932438464355263763504330543049206987088056543135938162201617027649171628890367410125074991497336593709422750921740279085608399378770605085694579758013205484999304952261370993033717720974091675896119289988075979133842650232208580146415757714361421410906205545221903790446424425977703014052902012040795808948651471293920922258638056632649826237773440020124770986141842184466022681120222193151778998020539102302548572644301860923285806926851523441933267852048193691346950201419152451525920970263839992189501362722037693236853707771607647755235658423898484027439042041647274180172779483312498312742296089198281769348579383018397503512995895071093454825171098633978133003776408973430272909869960967498620962588879644214738543631344090230516429754964471432449110804598339405582093803597093176879731608260239381166777599695249515418651684153660312167770646508991413357475461272675466054582913840690788798915360381619765014768990405697434497974589638564986713868480743577308078235350432223069628547742734353981176804810799497198890922815495079994409059815266869847937159555583567894766529765260440446701816365023031315701186636177843946297526417238247479517988036003224843171928508810510241949836195641335479895139509493927749201057032783464047975360260047844370338367138372428295530708035155881832354627957000952634905168049908971178236391892046475136488203629032133752812692598530663777932735591439295747108462161200337844292523522332367894426800859586421118446551177786766982168219181287673427056377034907125825925910861809559347316469220705902359727115025304052429057475137083797730857906491355282262380287172829104359109017902181191600475797303966568517670146638853236646424301502810799268536064314915513480259303191396640498154795576846369265918516642451934726638266503687109701082209001090557798098154548201435552801035602782351819829712479246786943914957586726527488699781425876328756893506024317169494793536907569593990953264290204626721000696145096759914435435069601831254816944248817718778029472665596465657245902532452168640148213392360271876813455623339973446880455563163939022953707099155746455478761307750233170509790927626885777752584398960726749649117551253286036722322017365270780048188932792168889743711152890459045621147407060980773613574057410725965249728607733892219324825170176016178037402586003156114276168542281379561549691881723923831960439424874647347973810250667538521100653285938922418163213051969441378429456516311373161042611810021271458248673433109869437785471507968934014237079656139323839265830090571494243691034342411286730252475787151543072394462812026007536706289400896870062383863327826534415979474519102475120308975725111883715550856373708090898599710870270781322581819946448114019573592248533301914607741255205857003693574259764996432088317053424751363085293387122560530866281651808928801119439896788073275053279304893178847585349939867606751537248839984232793265319814401139378200426060338554586430857670453432350644991434561268949296053113017160231890744038302342857458976569912550672685204260459357470744072894196291538393496131788532117772185610897171217835807866779099964261454421858620719533364576166504716758817699674695066193448695795672817840353021949923234751176497239668781906944128970487155849354901666912694302257809651389451406395459924113504975485552053886584768373097530694156860622771451590469056000255884940344462010082742296537213237487884320816984548410287567441574370713359145424530243968259787835199279479609838751816630012887520146322650552016616540814565258667159782297325026045449247208575331338287123809269786576649049376586116783535165630705689723718845306640457286973174473130088960463596883359508273656793770215966863942187197684594108773284637580368543489186208717067155923478789062188702567588608695821915101949740213274826664721812521946803957134839723193404706145308750912089108512498495920662543531472218461124981913203313162400957296376308542342571879265448092093242217227021400915854019101891389032256325305073697263889632193382819778955573609561331079998691172613629570737509403179872322869209685389691177529995739566365982366629717265095152130878227576390992549780722973193923257112717480626960791974221429280545183464987557299242260837223580215197588037083685351981167868089729739517525864764834145797962991327043796937803281562499943146349723460389548911885076592746207279219066835104912158175994858136845737944599495919212486846607649883762042116810543442230272219861936712151130142200421852480469824597508727949152228316916551826242523488967184298926826310211306556602408938550208141909727753497017661800023652847227603432287319189663165247642942818599920106508876802398672125684928321521641801042589607810984315366711154660310984567362677569934707528142215388147451426633723738006419789194364041170682719817676225446372545003942815176957574101073672339795308642023182377415456408619711816731534988807848053902517718931380749696239467534919918587678781983198615914273832836234415020082684322468875434190992413324398007673242346223665826838883125770416285319370812885162754907206745115224706178581031813428205246375519965433933311475210346478442109184309936992456577241821056378193502892227011721138079114799762979122835477311235073282408656230117508246769923450508325847030751958687542704785653558672358550012868594601851999735683223968002866221034598406511543802370780664658319058284161878764582260721678466108553312551768708391404563424001288529352046999914629192432732026912189551567126810223437536014328758127089238115245187600186488278955856987940376578972721359257372205778574530629503229225033642155116604918179660731021844724452979496970845487301395818653644513408039390333938461768210799742034387038265280166494119778571993697069349647679583467032008052895961706102207303831659607109190977782290088719271360078363196920184885628214902286880479033566263099574389105009308030990881522622845178954489932724138208734825312634548243927125287991405142733534793717571861994711909108927221637523517671892720081230085923250439895034203860463662699675776040395766659587241233854933746282758936192826423611647622488033714472471491739577907151372469000863003586632767954592960569157987840832977092282316106412840330475861737404356771708644021176050088704871051422448359505640388663101555681907135868061159634225158551440473088177386340682995168988113398359045563324439529602905797487854290739845559052929792662330818475325136183803049152339547433545215866366205891531294573469460124716969516306020202664600858424410610533706469823878647799306183860161105858314464902894455781284150982679785101242806010834195941974860020540023610119640824786179393455414635400248413481523152038894923569662081935068840468293842919865369717625264475939761869711151136151651200762680874463947973448638497636917473848011724396951230675361824387243497640556432964424028093939208035633864861963353616714660503207114487298102071138781293058797449847273941350240153953238665125821179055836177256058929482124434117266710076043384206174691765336436106494487371512922821112163672611888317017483158541997402063464552227553913085354886493886330530363038647401602912285284082547881226766383675321617234915693443032434348129979291962127328460247322363820263026825886052817001061986861481407848254959716478704863043331251196359863138142702371022629073308346557714461424133952708966603824114470918787349318136313213975379549882915702847811150418483327651775954362230944912721895100455445323285946168054991721928666367054515826462661561234391024205503015749122267328993584209211173785345209602859796613678659783437577590807015079571874694526100714315778556195729914711009933492753009473228278120306194181772471048105692796572012458214850609746055155316471818163834862123055026805503101491317104221070789567107293733132120934099124371581265676655976339084435519237420351753529601919387036194175378472836125802126213323644082784760595875169665501342214499401046912258336439647376857169162766567325605618415138200906226107800907500640716155993425538009018399394497226437057143285276261738442684120368993931088290624442903496496075314967110033512628027992488301688278221416643699590538035293944761992895085203199985152746931472289938628501406520031474526762903083156337382322005914650544107836135787574259700704133589842871761939748204017049868662552979127147272257785924024768538086011579069816201708599009251806828210824486631108622016278851224552771458625423240259106848572842447795407567750443972115783041027304628660560628905711524625864476381396031783443335059415272552264618835028533466629349648023162139116664076946672095222832165000860965550347784735688665383521480832583295715056510013300279412651059032136669475395543966901266659922270661276132948632063486125431003383926357908205231326596413067742238784278898825818060549042623024425477649964465161890914261658472023902098872792614871240469987569353676825747242889487399819952888597915376389505179158687630618488254926573593009927838202639264619127258821001074916189823622744969940647428763437961733318767829193777432885791481747291170812493678747466672669312134488644160497454773540510444963783568020947851771994960743601314154911611121574911835862159705759785534982414908615918513607962754790632673085670652415634878974492907925962263416063614285261116047857323721948156477871748193967856461699617069567573962846349500636182103318119393757321263666549015280545738096819899457793377675095499641638663602583118528510774768061007030603625606519595371971104520066369352035102046126581901580304154101882252144140404310023202970658260871286318305699522946228454934843404317603117729254285063928965858136426549749689404175906599658206490858985918115162227634305148208919881739008644991795992908351770719531098165180957198206065674066418723405185380401835264992641958005478582083357359078287758490609777008031010769799868961863824010640727265938168780079585914715692099180677534716430486658509333576412561428384355344362015773132028792953447587868341830960342403977995678087074119471623547573003981263397384844530611812658456464390894253552384993807154202573320475783669343841862464854186861837260082999377039983370042736721153149632050855257100817017025144994290090871899224620339184376913579036417557963106728341769367910717946763654313055434549893230393036949889224942866500194171070824877098469457504327240629822946286895509838405422656007856503491628079255552125064860766798296493322251334121840231621788331336997402155502550846625055323636684441597125647313851152527022992016043701380916219927495881970062976406990530161508094029407830974899725478692784158519830419764536295015987689101599421206377196977208058651056377414851406771174085873867282098477549377602435895003532643916552499070770442117228272305142197686314826452235640718753193211650036293791204364636643711657845535509430951761728910926856050713301083327787478080406772722925126337963423616048596564395353762846661825984412826087405434950010170264060546987082659254987975165215236501004048132506164538577781021695635489864376916276832400641415390745017379387890514790808759532715373656471143946449498195291360162027222849809581098575966359547861852484313807248897813057236677179973615137998659049624032269067883820540258673224428099354530633755659265186423815689654082114281651857994654269581466896830542379328126007022796980579581919495284063853194171145517573156321370681400941227331564037039617146966359340780068917333386490858123443276954072452200754948700944035526422150974492137502387713451665096471679501960004757636923185540980941523493337214435553024835368939595368634444138560956804484278277434036244655018742614134674340525023006052159586557717912213365403022146478026661157356925621874765998366727315043876408986859776516891731132681656899706836389732599974622441500887202110441151734386288414151989649129455100064033871009561607892968849710961171540210773298191507191437886086535938353475177430174033902888849264680671087770309707535190706987048966956642907372858507953453590099324611758402892935532035854887459402038475668918090545264180993403152566936983445297319436495375123975649778213826753045014074788705516919874645609785941710976222953758787771182381857945033064703977701926391744222309046207518855691631808942014272095520210151440608471477664713596053663527085986436364918981002295166239659606921132417490806929606212697060026361520923699209220351220597225554389676062780105168519881084719468490185845715595076302896120812558926815451087557650796404420933027161730450773788431138803827996450079916326006530460086428619947218601929620837064137184823896584089019025475263876723919149874138807045733226860330045086553069093525217376042634539738317976338694342699383017219012739099409345836127930931693326204529584903698878934460593042241379356355619569594140231284189286823204604962696389974107108985247046848780734246966824429663273710931851224694587542583279911539999794079234745770487907536429277888476840481743882941689475227494512936106627042044519513251680780931295824319523487060300810794328612819803977004270763851910266581306014064028245301208026732642127549932312002959979537431574720165955563743195495532317573806894991204878724825284321631890203347283346621718810474182702836479215627619525537563899188399591331887250728696143487680942616997133765437561173807533918019223185429293136993469354895907262551016505493550396015254996216210892930469042948826933525485902325337856577532962554337727931873764844869261514922134657735809293176671670488026607408864255984136414141764713507552552139670204221464478622234467385681830012766880185201995897692229296430104495933442431508081468187740662174470360311402701458691558115476799294385955536026647910978105953019270802567428679768150661282058982943672926115739960454437819704130981598472414056726119395474341040156445704666549355111787724533437655724408849007316326791676473955484777643586143387294082800288253289598773133850625490993521320728893768294039534656002494467565019595688627643181466990273458923504342029269535621588863088567088642534041672948785535151939776842993536376774249696990292916386019762904617735575657044455363014416667386649288757755664243716519364815112498873380262201956214464484332927666151180780919748270997117207005337685103111143981866443224836165636693912641395830855846093896972979304491615649383110581004746226016059868692739288364084502104635136488721736811787255339802683394375392618325900348749187534346205362756912083722152081011497576292402668402782390774177728816019416016707145839648696896691238591434357551528280476377120774299379251031540747302761056424469812809494153134319683847077509248700698519401296165196770767523419364455200251437664153334777446026419452420047660290443466521860467325112170397324168631399287654930296255292379115765997448618927854814536347199523614479202185965018375277749918417155291940915683265220112547627523017820353512215741775549477769756886085491102354321575737395711941072179074399672673292169719499708105831020706024610424975394203874955005503347880975827870340056609513205763651632290939901682184028377047223499587374448018541544059728119808065508630868723683478250075746587709012358604651328220742931747923412777679690522325791147647240639041634825447253489839198833554109726013430016673563238048626715687655733781424941359889648603761213076614033180590943566882794904938739572177907120450426750263959371603038363468634819563280676051622784202654635100418178498262996319951315845177580872111851931371625900068444425232815153906412928022838319556334430111966820599485681794981935906776596423805120043397985030677897778468689425732949016369074921942204107266795434934711688842494749123871161004077459625557821153438443399906666947704095223320137532822187713471928282417467176264740104249641906438462986752908071785721505082574844760933030156811718733872716182296632668055803378026124467604773612310588012278824307115558501522825396752411381871570729898501722486302927063367453452688922990444877168375627322389731502861322806512750304098261050848846370423151059692576056217502266365943157259459727775720372380956648911338820740452219592231675528038208415117620375898145236048552926310464701382856400561044675719265356681015353498390979891924290763982162432470742144353924747858117357132062610071928069409055597216199067137475027136033796755038506952815409807931642423569500661841340867689898533037329001187073520295563464272025984118124705663849775039077228460273611958226349006706551743285477233480604279554010953037603855325846246396770258514906367175750516285444161219431669223466891174257355518608057440345704483618059461275583999614655020729234307641627174402667895864928194580405662264664010935233093508169388329997227652445575316085087411358628913105886332416604243340697453478637678804499256921631209098959218563693008551108452354036803458982022435139903415043888137611718863375310730798029959997545602692427772998569006710989046153112014601056029113041973356034150933968933141772750029928462830707684418651101249058231920429371445964792221943128477227302210272222703908908775614572920758741731633658816130658919743123487251905556201232705954271996439995897828398992275796269324890529100323309091801733063198438902161612827911147564989740508082545355637381145760527522298071575592857041550158296327082196154026330971775194430011258083755083750965391920484972952413880152980685064600532710447779211138046708066426742702018007944978718236686080339847831229959576607224626412752173643376841284788341607297235195541887521078727682033792204487228066134822429063745972760032693671954892473261822465963499754810101938132416705923090079527464351299821069986397693588703438205882085733790569707967942343638617703114611857325314943863637813809735294743185520809521672462517253415796361845764840900821997045240972402763112554148878149478240916951925559036286685612661977182110646029472042815686746348903273484261267140671785860451874889759658316395678715345333964033616596744425423488267263514999387428943969062400841438516254477569584794057195556632902984471143399005399070585286118263872553262315291796680008959170270131648051466281154786172759638154836601582169028101379553457380173473917208304299307285286412915501427902661813931481957376715827171392854967585576524378840796818319392234134731938891466750750441232335343540998800090089016002164966824829487274794303350375832726352373142425601659674240729781194332773466167668517017220958130949456689703205370029818173062768798498823353835226909856551730476844028917275694210537644308214277179441015723893257367012649232069400779053579706379144486130094307799620702007942195306408645844765013489883641612416553031795390954292224714329757465870431303156789049392062549827057802700745259941926511120877327100098392202150535798564680420290675160967874269955010052178628404606054995341567641531392345386715468407654605457651752642253835445178714534656442742792819335547324487825702109440757969495308760589243954441112241195421865874269254422139604147766376730125027636513446836783403945315939953929193712831897318383419421409915600570373112171135572950689679740812130786102199799061445471760599767550986162924048070052592670000604393545814632642027742428810465979887436965413717973856876188075503181525068595744911574831333195152569863981017553120800067106818617224588114263152567132377430492830727109297978188319632429521580283356423771620989458989685563593488234387743162816209302759241595563991954353438802207742369659979966577767358921355638378988697938107735656897578695851222458793119555128600506289061829615248827638389697112011673467698505798259403898940476725608263925500199531862097218898381155832484912210372555831391382506429889921203491067047833936454512066679316701806688259794922342292585132479811109399693702361965507591803353017281159925972022553661461481130167047661639326527646635197815776114759412170743842000363722325747106707049215685553297692298801808704517090168672206238265748004131366197848820210173799222836849198921517463883854255046326616858774734312068417955824784509457774034128858390686840958201524891191472207298106488773986086026521496808330773815026693017442470582752077643076598342664775552591340310803138848785831206414450052103260519897388546820931414226607676435541186474299795673503267288835111452567867083758221619362484268815844793808051831283983821566765510742892138009340793014290622716794169375136957983687279173125118746214761406658728529558650885779426552034854993924828317538466986435495127547910458570862393122606576725662700059812256579084000176680889231568715823960995728170508575811483248077263545529934980030306831129402473319664873672686093869487659106014343105193356520458679730156054385500682346893533990743563781013870109229598861063633482737447933288520513918819403119981716674406916099590460149191660556146297768145106460533891256992127948140541755986996213573534890929342232720500779672347107944649805361120172784276224929311415216437388376447097856418834298523206360932702638130398628619742868993304800738939353947461763068043014652391321915331043370512880086648413374671402065338324646881465265570651565549691230231078425656858595791714983875929373697781336338851174484991796651781941159530947552186615366426809612855314247558793383931172340221417464337077846047564193845656918409561210584949169788628166309797436053890191513594426281239181764034164510184895665535052531655812639283130966429253393435410914239947263526077147481388710241621735275744962199323937616711349261079462136304967371259734498817841250479600861487546583523084633740253268231912651217139156918668346049413636511888909517174947064743236529179115106334755088817550427786793293837559056473146502394277103492326033667243959751455673550592783406002042512708455026744792176605447871589781472654500941344666250031760285504929991994315873629153903990845226761557217130272155428709991179183018411598911472768571886748604880587990420179609213705671407102574448676963514689503940943707256066093156094150358172984514646373903478929463915335070900373399734590945018640457813152767716003580058606878947630429133422295583769342440777401661594246309461212156253399528613767639456738405705097941714086119564533533882261922111523952627915374295857581738075072782226151454416904806361623180986013946522167815905832696101537245347499719093663526732332244675669462022065590744130537274298428986554766362467207044868855141195021603861938681094641130493224425688886650506374251738144718005250540975830820825901329359662376132806048449628228906320087632160727117161575749004498037327080721610095471720955096415763603023830786250160251162851618426182128258746028893126747448996708932518260638723406601763565793023532258082183781730398468533468139085003299649183102918652626133263853978192860432302755712604523259890672210042628779207214746045847586872669335446494188183121905021719320605982735576532122014968818261811607684482177402908218083716062542584043276328408409348869457195815016919388304027659825322762406430180231742700290012448313241349108010849337523935865027776038479862104450819621316331061584135170285476539261309514370792547136309153253256063843699449961197585059435431694425946139820502463682855654599805760244948726892873386045922181534474742629687349532431249554252606576389698558252041422514528465083091452288523044415576611650124349569618600371700521435023592557056913108906492456868550619831364060318263003412984006810554027806139532077227367109903749298522328244382021064242641397585036023215696042073281937658952814583043084498931149417705693599663493079654087666385265438992926637728680626002117085140422727184284320768551138290317865900316060417295644654773164177367661161469485946708115493911081170367748998247013406949452189046768220129716827066791733767011827758242142276596623268295626319214740995476637596300863825831781613877844396865911966981442133691674309642168001097823067206352354278042672054357264108621287245978024295370366483969219621315426938153089494372299655964619939127011079355973151301586336330177210929659800823429094438661993228987349572256267518013239225972565589896008119248701454502944005800715356162649182662344245900524576391159391189665219798057292540958209192477721034285792895918177936244249132159045503890643178785997949961597276364341310516031596423172450314947931494605710526229000922857804317971386755834476788027609354178410473185334344583902670432318011801957660605000284445618733855074144182710946065626004292750602380824282767391913371686719813689120622822102760911709620891300500573232563900043688543146293912516881813772810246725132882876953814121307235338984027415854805488180011422185454737199566002102439391728905440744827477460692491409353081640175485811969390218092521717520220555310111805548463247819053686807366227729579029146722995839281419594196080666147982523398675293196084026771049732927797822595964752153871613115566467141969604321540987815915427899676660005323149908998598732520097906422659667972639696922600212732015003038152609828175057584784609777898777078588004942697159886369045795551935286750555472682029532978942480086483075449840720977242864475974991891667842280498634530009412228283999708646995809512781121376248574875743893206569680109376820931904216743992514331130868507931726427641806261853701567656322969574368467994014540401749728997232983325885152830937536734633071008782669061729760894506326165377185244670270993374663526638658053460539028611806333251411613153852441866027473553416405666469782670472439542538931987643450070217519162568466548444514684324633142382310060341696889117426621889098551832565296691637674674218875396120529403717686050793943286544425762376650753724013402433803686219235361859062466484171237530072486502966978866649514341524276336395865825492196237923854180155074819126068459918240240319873262183211265088502957500804623657242219694013859071800288327844986221398639426914135951624480425932119651406742877164013967368068992786636884802660760030162004292709644329322363314990752603504154896632354423350703743519500618778252157410615711016295108952008749330886701183305856961724208952505923364764715360333917809641820611977234653881423741486114814078732092564337805744653116246867892953057829105628291088768617708377336721645033937541453252205623099908055994885340809344253402865343377346728424876405976569883948542981674248535991626256380537101445439748945678917510134668891374281154694420108022267862179721704890796903831784663220651293087822333608707202445489072313548882417956091605158379217337781090113656652855771192808906080066929491287937542912366204589962506062053486287213544842607846505249869900402668084557829345309447876655566390800346161379234959941969736609426269105676680058414920712322671463358235083732836336967814530021606017607724286755399054157408806324298439364740834011400195932060832193928203367100974978075593491625286096386073238631437047000536587035632434512516525785953293834422390943414866150477208815373972402730417876072694504610090443366563756798378067713829054819056090416988449346765371533700091858239197798658485916477825831639599459825827231351247235140782554882781070879414957199734053276809685218183121708587852129731666182339757450901968159608889230852187265818010416660589149268607963890239581165207980470989297826574750497425737144684424561000323551964785566455016902840024181139794999673875579500378586682842148026725189929571739587383006836303476297475373059372997325217223794164667603989152385471451974029682076347328351878959606508310730787015974455695892678200232849211976341136805347990176720202168633276689946293477835837050460633814375656102749949031033684702477005647046734755392537974610378640361856443963328104991462845998847043761546541267056686792696656498647284809072676427766731600210828940063957948077405283717879208784757646609094996392017237035225154748914465956734889209852767452864869431800542844855567305314940401271371023357718257223996467035795495292726714985757990300579094622523343954305689034143423879697542481425941095119695852762370910067313336596027324615872049737667402660703121808989488512131352613080462975771497298312370281669572966464419586979614866168102052116371308361469922106901568619364328532384942206425733976285963622162863517206193024838836702692272718604036692906132048021492011073178539680735949240349290673268899379342823990283013606586127268703693212668092503682112348842117879190616026465043041572145251243217637007995404346886251182901393129920726665848145127583527243927409504052567882482700083512880128387616227692119696861425800045080427704749465642818704734817234515391795590848100573038089442247890591278744570529268046955905050084379647516413930216257561787144075985149864976411261592182826757249026757449963701851006870349739921122066336885987042625375246752072154724249745640477596447747387625515432529378198963169739451619803712371549055849522616738042382099111840677195195316426621062454301810050015049581321308770839507935167155231061643816773647749926077261500321512908986129432781840193477768392448452097951277326147972923911190069944223200590197763629403907320797284437057376377865393661678773184960453156716222913859316737759026707619493419557393008738501608997707544668369499528217949069155214714853467272898929901453571781516551730108765405782946904143133679511615889184910403291362734271743892827361016980802540302367228100389316606314835136825487098422357527155400418575968299688753579887039690521071520303118316748831746528259702424838396103364751759816034678970557233147199348415025778123194573371194772160256783769842263951922440358659059548198353063370842150875238379199320110843299478316992106857075774638059985927796218969382295878733391549944806892681009556850622495747779393348786222815022525702703904128209443284352446364543330413571404408217927179271257745800930197281490909411255866390940748025440079178134002723748651856861787746443344049441874958811381049859244543557322413398738566334934936472502376374742921925548980135305780476239973309957246601065525783793622744511453205054178872166697192206091367059283365668799902652836566661553030783536304557326912432389375508237024378230711125348804773517489893256773410144945210876168815223768384886023202237871061737494927247048923734691407313748932704370647357474247821373704072655865395261409913874776153936489767550792405029357574829031009496433416230824155663818919556052907182538900756024855112493752450852332034201705104331804211427460855517371988734243501878954660453265008339015412221038284966198817224396813967247116697899307881242077093714561527220257683246388137874209852259147808574219026532336211282087812307527407388872957012495589023794726660584381664610926959674854663397638522751966800885291492509494711426520385953418996112030627230858740991553519256816832069763782308786946179753341533143062212187560476136452765745021055057392522995784420575110242010680207234494630517357867443681781239666047404625755620169364047300646115879011661781319864665924304736819260766133485910616550677915670092617616055594642448724896643086423870525926490716820877573262970839423193742602929764214974419737930508120172741236413388638086194776334346513072658487311736498051417491223677736144125469012706026843431978228222558428825921068655212295201423794857227149550450351289537055009346750714067674117890549690679021811787030146703684556380289534570632096356813330855262893916173915434039730305688006690389654029560435963591529047914561323504606310493408749518124261982569443594555095324480416664043899973281723134968822888402914418793277786900808964464170648356323309444255461150449702897864292605299316411801844722889858997985322313986199804290911537761250985614977488911419754688178296994281069983045349428721190386719314917342536111531266088719543031753096850060898789731604343697419599506604729165689495385229499933532839014108624183123486787435526155883628524905964209237589799400919912121994637665745273527395466772317581802368644666934721864408448253250802299783864344221504841893977894646420539452783031907886973933094506580393140149509838188587577972915273354988491859796610443684967489595293710501695512951241419429693683339122859578190978964370932282520027416619782422393120534281439208662119006821820804639127080007504782837644701719649771887612359296363240270834578728541886235034471981589577058212178995891614185518045001255696961515197623804844550392636721611101365438232588127594371418810227291449016719272505052312645531908454972142561142604566758456141584744731676273091371664760946639835758680740670651989470872564092654733331764458440285763291869337095826206893500255844267881800918853545849822291242760554840864032394717345701337026243006002957840250032618369228734267517057576861292105750076569433053300138861244355749881002621967672003087893419896628581087062799095661861367400628999040770111053806231147308977075820669007599588435197254610394707637998176419887097889809690821466264580199667545942456876578162304119483368207953568632683226605593192181227811393538701216368918999981721489437405582874363065299726662586462369826097601520250994960202312365633839511132285893454171117151142581479996982633891139354619454719616092253311086095770326321861375121410843631794707054831005185013661080545287017385282234634621141530675467218141396029970142335111742678316118331047130559316210807310248112383887263110339147866463332225551312931631806467999286648535152762930687838790832051270243798807708100498348354053896435059022557087021465148360877289122875885578539126603451959700666171922537837458212278370275374171705775958091868420167353425954355187378978563644426561753282989580484211774022409966969629446603645795651536577008214775460095316470143466559952698502041672451220575780748119374487724278016763178070994351173333164465620818032552961556833626349786596575730900095702259821838357651289569771970308689884074717056449420900431973519149587210208495574562215963892794288512768727072299851376710380915449170515938821666624818203285439129971643200606600382018906912668923650214441603651859164317730056958490599974341523399218479921344263475206188247063910848409354493839725678628046751583055498733969687295758314416084663608379025589796299959222500766175578314596879224324234701050236280645980020988323987766297180329079932332099802664437590223331852352460241502070066817609461721791232982163142720542667724282912586555374931687382980446623461180882238790655353956291313988785777879798445781601385390075007669363457901351291704479920442920142688933955419076190771602898245023944044854574581409983189038530367688217625089495125027074836212650344959239642303659620914463034197846794603471893842914650318072179899708973203383194694756142522493627032284318763461137665586568200378636247057648057342815269868199595383217385833932403604176073228005053296783078140223142117404085975978865869766025250673644238614620035856094865808353522710124167115946049469186227777899968255247946339300705998464572378162949152780039681290536577757128870382964714078315834197201014409135216081600574292003751490073252229636132494357373894943256482261246071417415113621130052189426862196598423030421564799851739949029506008635368846985407908736316333366481140114342801450739933681121382085376873062810812098894857649864052758432325125448080996931347664610589800072949129102580486323792768074712316879973634849317253127681794868515785373759786066736290988279302320668565221943269614345522118384595473719398227586373955131346142193082755652710743769313664476037801296382956657718650959205202248792007433506574406126870870912587502997072565600411242771279736007927285237405218306766969855992261065622092362864866730722275507290228319620079996022941134550539255734181441948377210772572517420032066021475486004856749593384230254834177705101722160454041531076334770286732102501033446228138077431580132986089037110079957661162489731053773381068350687733635777591516576550035112885377591127400495191301701745194970835630632368275786213358944703539719079709678008148490587656443398442658653780812110468678364912346967364229033216598307852700878582488789504601198868858454824527488087757069383462027689458665411474659116251180956133589369149967412788667638008007603108785754886215535443948333622082052451167133690627071101873398697123641314305210166234715699737870721961610617073957835584963958656103101049165124649757212516797987825210525302892481634553593923590381897903368116002870367682376814073931146525955784782375079710875454701667159731094609103687399136490558326429882495977491240199596796191461935023797249058660065624787716019095513924275416934947538422096132973809488288492420194767355450707421085678124098727390671373698760434094069796521004563047170743651121359143984436663246804404586061537301654105683532055240276915532318038564351397402939481092903005440094221894556246530202590271275986763133344786245421244460439272514020987258227747739680376926626121321575100861702504283229688993354989621326697969723249933470412894020187866574737291227966980402455615545944012626994209808251057674558937659763096655190379958531388190987082316470895410939787916567327620196426573056063719173506443636888655665092784489561143108372581974803267305763161879328951258029167792818961604396526865383774090770810384242255515364573207579125855678021506832133594200653498865140735659586117689505482836440789568165338215815391246132577746832130544937445785044377730336943167569474448261878217024250750803989325832665058390725724415295381146998756190699882473109797992524616807846940893587595034973971227525924111444771393482748545090020934466084768357726206716867193469893111549609037665831009582742425313648399296813058593460060842526874956745433976577860513305616641806726470764425777136728375337571056886933708976593129111685723836257036309680179968986997669039843162708637505233318080797585986983982727968771083147434562827620990239842235673378908664140290941279680056528756709378973105247772897809826153196098610220360013858712636160006709567303261879368268159524707226009625141140991341850536759360096364692446631475133331414177686035654843305239914797266634019552884667533285928129073284371511245145728592770126157790858547932112949653666584194078734871712468480678753219312236301040836122851767556645315464503868480427715826207121881692863454780806104566461706420989309521853278779845878572752414080371488814422152745755531289920113172467224177556379317543118916343929755987245326190070557623368019098982344825789244326763127995750856738671765615766597822590437156899195211483233564294303540026022836410866267228203609009493145341772420066596386202666998476527310934081838162128867887605627243055957713287433290196037061448127799831020109134795450497766870573095351489794937910050054312309521475885510443014149065675561099371564549450355890036114857207143668336620839448478254473445741437736145443440857480293131005692220818494570787085284162023359439137994026097007418309805658296572618794949124863840403335247373443556614279102723064339511434762879927387874073751076168016986173064668603816960692891686448132049833591856696100165954724491060527992209436077960735564808108404662073782868736905252782617631623428370498441464783077421727978549353043959100540930272485596356687093666732510848865953133908739797899030741031173074501637514353016751417995247193054529901450735935180002766665368884638425751256246518919513326004927805720239657172116243704212915364109475807572098945490581497321887570524724316063594083269052043429559003161751237206642405885117769053544039205320029574121272668585870975821735222261425576377098804538244859241119619389387222201785842480998272121251469757265694808476678050190814519381350846002258559159172502732203923779616892788590251351675315260104797138107607524169552729011745039373003518675161334258051400500107989422856450223884902825098684766753613517421124676789065396313267477614700554271167525775046622457203588758427202614662703838470777141427032198528651633771228531618203619306664642944979343975893373261979885506516495152767212831856338022772727180930194783997060085564953297521388254854478864006968313633348846031643476712855062169593079292001505971011117704307835571530868115070278854957801548826701152730764227548413545867547286679377682536763998127518226270172637064210993892554454277311245032593799641629021791573078036005770629131425674698597307353332772879756778880073280857076058399095377718719674038723683054486824487821225285088082220616034932708170329031089410992359748355916369455016338722658466021069980414576537110859351591184622800108549787132002833205487579951713647746914074399321524578932448204209706474678622496026446917960132931954886058840737271329948553126719873574583308280780573559392852249710435837366642238605251192313725659949655899362102948583868692918464823961035064232036325833058940035521999699014525090441894656676110657477879033748760357026835374765006605338624255820664322883482462917739789314274721291110766160662879388505937513479381799942567707783378908454156273015788142020872924684187354501644846539925562514930281089135079946661106794131110803786711396465693070352712724846281564917864727790255009650271774792564343693084639984916133729340575593834557256521821585143455318925773727208283791674968760140668036847571700151042480499368042338718493285585841789683175018835849654569038814585851316045814403556541473155657204447761567890203596643601280614637418267554657035459366420724071069016782913952337928983364125375441466153133326330034370091632560655661460449392135981362917553418944394330449685722369077439210389733008687614783440758181546260531242263888915197543118416676172003668684072645188091747776053298938249557615189682926354587002681253736405439758646376439082148373099956653424264139296966275999440512435879930208277398041385573943821044523236269488732528005107270066291424502948763506622708920786038863614096501914792538863330553996079657027935736878641719012225698460087055833367012995425145129725808325520019094519931742156937806969176280516175626121920511132909224835517408804545095210528702488200942633448121604643930792636646964063605277772414389044627406672638073410196071939118996154135506378674055893882391011216756454599034809856794179234730849359309763453621578058750772858022927470341723721357363951712885898098281985932290401314515187048311569593823897705343355426083624026344796602557046287996579758353705069234217021165181268000927534555497863356410494063175310020139622887248520439102969348312197448167835857002535895279035446691637295000662297861833377727671093654734536872872595718225006578216546606874690078998158280335556541165576377630970127659948043127487812060909873057309589755269046435836243731488488865011000465664695490369491378018552557168661535053931280110231181059811081325321418965119657625844590293870965881507767349747820302516292086321269702401574999902007562267767152904646264159631294554444668871199160811954815944871864233085843579275427185890937423473482920731159956578367893009569371245433999177286115409139992666571128573797957729927908484663348280141417321082332678496695141023330022433960094483822604651382923684671909775889986000721177494503344441531418743692248169988736912644655460700756312125643346418690079331044869077716731669621413096172889091612663871572559766097584004883083039030460048079231871160393353936877927441733239489327824918517976631829232690403533020007297849235501825407698518796648078291291926795524607839749359177609848697782289599270676129480720120082040059047547351317407376709372274861446955609434246070013843557036745751157764560626307429201244313697309157768996538451820774258691994306975548390881499456667514954502045481802629928278533685838831315667746216653905791088163921523189407563197497267536135708824049168620378768835517838808248945616601095224800370939965702178150628068002111968203945101716358456992442940598449949032642727210180019881411664774186461536150218391355132265002899421300957882690911282143383214947423073108390398358377815680337230492752416790699206352487891587348546184776503841105961337843191100777452714236999602272936708652746727767054923129059113342895276005423404701128699895159246340281992280644036332711928780347639001478256031586289129952789177570625061251789822241913765714804761957597464546179210543329070821354544645807970613347276283314108747988624167491036944298362243398492503690708913309171519693480083955364217328098144495007105321863483873315395059039762163966439541770963460088171320806727344374111726938505933800285555928838214770091971044207617926200912894755664322005039830453054571089292993599931183656517902280054648005778791292670788270685828932158151699079335981269363281321793270434810559018582751297351943349041580482918824470828739069622832396621432490430649187474385538189938101320083894648529895714506237831430591691399199870048837969885863874424630572054572476978800150944563284009760595374354881963955014021256111975848965628732272093254866198622316105999910237903859367787815930438831858801543953624073578084236486523097681354005102473847055736691974517885892416361706766285008768062062891494666583739176227226231873649108357192398023651696179431893546077247481766275198831888899012655161156143797886427172721403915416096711320363439165615503310816106971362294726917198803714841511739765731754963918245269305112715230495596966876045006517446001455742112616388154874118799944331573544006072091627021421899118379084347790348535472381783031478217445322531609881834619869295394187613891619877091105753211199434631550576608432981736658783805532019055153955467156920192565196468157709233184414243872471734879081927815722410652542079118635779886459013029782806487565712982234319393739702969009071464169005087727085231661302310944196871277957206952904425826154723834267342012384629619018263989630427729135242080139543428630674430074018741942615633336825241750557684036048544204531662769377160630027692346116798933551661389733964204195411220493779031364214730564103524031911079912639238070199846031781210327252818817895336343486502161169110567224794883548505437194433161453026498320637783281018719816075780159229294080197051283171295314853133517992191521522846645195581793408256863576351284378248813439233183492243604990703154370101226380742709032525655156750658905232511634924988419362679029144389550066654768751522608924191294750354472178108040672681581060980318617536350728691581228919836813230927792029733235680867699774479911584538159474830413259156655841964466918471908913887988337243292677783289627979668156738908209839864459769372242476970238750101926312560282517691421552444475149698801589924329315455492360558626786794541380171936123421888144089342828010673126541871613820285083237955296029502974173591845092603306498669372626939417190683976797719600822112840423457041045297216530977376865192528137376500408571372710412106774430206500252500791571801438386018356711262634488011009272017312743342418237603307319608743004941176585952846843259889744087501540183782844947143897015829276310120977365591772405837472095866937175657922219442695344784967112561952110946814380793304080015507024558920490913585345551950241662494870247132823566926661371571746998405359045555666711137241312585464787451969494804037790224614699583474248230555746731689483798964836588601971446986263659728854025351229239010317486509632849899525363450008682919117843434877904276826980299796701022042226693027641878915781285012925336284657037374835858347535858006157859503687383284291319177182844198093687726739043712034793450603152359862143745859247807459866336703609757435941691278699491742308843760139587266533258315184485078986903209702545344147460329270263697943797660803109576766967287325844229151965220317391618547147005221511162602609984651498805687321798858257978588431745129090494524989291972363378730273638730911127553007411271982959181010905898357589935810684745415964267986974081420040698371407665631324237651205073301181103054946529850341877885637432368911786286056962776290682033267846113195927779587100720255191096952663214843508177033101356244773033940272434274390255701369879354924516408780015344820362993502164437452618244411710842024827512170816810231871664888275420475686146349651833097881828582428350832156135257302866413081621702816662004983992261906751932408877408162952059403755247149932980297405287794559440033984298387592291258290383818097977475261058794635741471748835390276771091206168225139432000372297047520619822031050704728022493243382748426685465779663126101168736683631913899645778886575325683306582207617714841974327362871872310376333680152695551106698886261451736735382274505179542322775081784658979598953896267681486577437105635611636962740272736565685663358643079851809363029952264232751714799438263824963259720381742773479305323429737712201729099879640518788359390314049267450317449084861014371644656847338010894691265037219424459272085326150150338150123752519733753815958373476680857438477753355976910207037964626403239230886566547269106508277965044405300603016401977032943302708298587329791795422792345420909021460956488973748162898989865488383871478870711284180327290065245032115200962916432738812093063786104868975782020330505583449893704471231467202020565127655486245601364706158693554730082697023203140312908427737959676153720857542274378531433718448700373658250598593727438581674046172572332481575842908853732734711949386792282629725669478552770818373167683084471906770853480866427546811670742479569208222082309775857683023549903490564132340299733318529813953226665514979127073056563523161345363822282925266398354505082197590532518524377464743757689206904561837736524085157808284958919091646482003141985273111897403475086760082185308862244980903391522788074937273005400190547127246915997489379639800261557386669780258465476727144182156772405248385752343762406865062748138447303054038836314320967761023878500450327670490609140904144745025913038282718793155354390464608603596381114182652778038572975419006342022856663387071176826738996875492697305145781300752145530104425163625453789582971991748985101372062912231499309046970809538375999674099754265625532712592347726492418012809280056899254439185323022307080124385104102124037566025297476192403238074307529801180571851644986306251361261863806000649884842654067968216658854077619127038683100839700489850434829556790776996445680199098713991482982877969915352233466187042292249889407147212962726515628942015837296223999634057359196772943983446643395692142058627356505089596352188421918228190377631092167260831712337626264557065081888018520549273245377123629395976684065534394492646775660965756183594341459461863243715822070248795631254341266562514338198819704571452408940517809240466925964271398473172002501987798477414827577501083913910399533617659112659268468243618857096901651199899096000601132842974777231347256357052549534743699889051844044027013727635035836088123505482973660101713895214893796511874582481390869407146396556706847565823746394906409635161310969867087434306945376145915113132435100804164852768246744364970408218801655443141184671383182887886359590499602364687545297066510165464130355152593426916078430695128015694402081515609035628722372237123793825867868937019428397669890763794973472380017681244513160761722477379448024608737885195874971380389075348163310941254379559355980955211252622975043104676251261428652854421255162237415890197306767737785061208238465369259303575861123901441882925015819509135137237481023779009235822989840451198253617790571553137215156458243753340516178109266485665609268288957803601986342356192121456003576224991860191072641639760611657878992706905541557646442664364426228968099859239208773021696067174229975267367107424454774083565318670431493659662157160757914966823763379340547794222731339906934324523369447687630070479383000802002842962281173860173390455155784741779993140934229250147593154480426853839059338440116538137463634877648814965044958669416011292059780877047081996456514360971354813676269749709278897552105587120390499113593436961499217748162264359230462521236213534520030352541109043044796572709596528636468473853895487215974350192349951424305594090972880871813422442336308817124449464390902499400229044203274267633158535529215124680847918325963582290850222771116677570014555414330864959648688819380543461372000923330873017151552906493844539960760210415009009659521273403403550333889321929009984525985084648290360828107094281649293028740019663416098310967956497439789702593397295436798774998655650775737013891345585152694881864481200660834611062845510459205408873806043874579954324586544969266308592216851357345305382400473600473270977937803890699178836640631643642871713864884936813504077037205811935325427739368852472197198350588992344098195496503487708393096126161776351483206409128965717989773173693546503041542310010949062311003115591031349254699198025512292901917747791327796509821577783277576246145618785482118677070948753238887077776568736277002895322104241716315318738545257653890420518369961107221711519920063352815212937019965744020852945017978075147789911819749216036128487869415897884885649002854585498506586558892667883782261813845443984716899180997339643330967749535769872476795461221928329854946988057320879901836375978420337890379501141060385549912829735881166534310657456179466303004907853832430035123054025946185847384293105569578614224678413487078508825764313212891688556219036303577707554244554204829240573489943394159429788168316393022341005400573945987779018938238658832230602783231343608720788578519892053664534631064009926888316740776889565714304308470580953372063540202421785758764205510254802787152755224331033382553405903193651072179507552925301125752876877260761129468364848848968233882855566796391339472618401637206506219305424984042118410844782959325715344419060388202665568225973031044884174946366093095721543345346060122152770980416666870816697545499605796056737421625437967656506391199096850175211426969532545857749854757467743525754266106754563361550272858112911482775942681238095534918103415806982483781514194695923517728110149516303205986060044149242668155320060581884486640051244941789865789728301766979949573745140489712222375394029539446321331478388640565014735672206266663164559274410473948550197476043342044011688762634624864417041383959902661263994012928340185056680194316291719924084858275530160257248740570934132810001461822939681360813329863943530664069295133702018907106706481394316790098253985390304080770651886516587242282204107626924181191201214936530554155709457080146249954654174048764149803079046413818844148966069046058069467927162125061044222292328100739665951954496297085771474404575252119172885874202028328703588929055802360124765231516447906161089337377326369050715788781463511318026846087450612746340641305414407511131055926852490119178925551463021578926332547975776213264905184740671240993411345452301582081937429800228647255952810140976532623878259238981510933759473687919992591209501030022390772569416230615224012244390412830132115437632508107191037782621452260421730937428391421727774338922293432100362640277437340203888157472667067213572413781113731996907590811903674738077430543190141545381819205614413869277389422192374520618836921033622649313837065158453232425162214188046752872304293551119498941296330070498693337418887073831312536145239117591542077915399218127121199849495644443437412128506662027494597607470925584333116548380404208079869063408340772738100331072784336754460457799153982725213891360273634379450315652806355883225155437913312110251903476065859089287493689251888509480656421646003474482793464853989423835615678100309413923852593283672528582877325544488609977797473382624712313072563839742164507983767631194678358528623701601823195549515867693865008044258842479669517008810065155533157650066631790938353442707723355335622905636638896902676943938619958934534352960982716191181690572390004556553225288185001261945886313015943009628689534365347547502560306551591898884983315400447161672788243484747760651104291455244282782868231293179183103284621751520301230220693721264586943589430167594309862181653176166275073063986456481117895075133693893673497194056005514003013269140947167324908567757166203365264969122483001785451983952389164331246785039475123580987342272389554622981141712750940860659956106866665475824323392146917573457562149943541866866104230762215158804848952357472155772068824040973423827204174068011692354067651678268491660144433564272124342786768613957499820442323311182935522907635732200934928786959865680384953385244446766660396271266047834445976213739333822443193898386372867942942561204559490752899479006662665142693358153023359145117199831069511551167235577448326758228648126687787402450789746847969317702509711934205213439235899677567043374321683699663394891301526001032885960722137922969063052849955058393741826211045191077958119037078423980940425957206743641813137424400435640579740679796838593342917028693293250603418047105534981154164354195531756152364596097242660749528726051062309382376146881533654012576900984512546467883968411184819745992830430391319805789429309390229031623061630890839469736367648700722492082481785640616246168292001737534328575547369099959096611895108991280834876462243346300980292599543643686129123883482596519549837933599135885498598512691232333464619094436623427097720490009759438939338644943148189778160147168711580750087296949851526864426455180672933777418474672387187272852374496755903267677963175103631171722531570040959544720167842138527740283270531247685893811532264549899948690613579581611125455004069618380471770125810067940735892580440188905391667432267512260357085778486306706408821834892566348124186451954206399972256911003763476269562609356089666417329258135492237967992338901184748281787730076142840400911005442830662211880794791056924507903122715573740486391438031710258109433619619416785233115297264427654230639342504723524667066788213324931452814422305603333902329408059599717168136474980817693879190220373859747924352111061035412103276989659723084919911425467172631512860275434932513209127771001131293715220242665314981474030660028422039776645780086849345266490847278353625112392700030291264002584795700135938881095580500446855383515309215525270127020400393693188681535951534985096352618954574494589336369832307759771076233178930734717723433062251020213282052615978162039209034651145484209864308295913936149575530148953057899878602887099067345608829170776150886938914131523349474709012502268077207592519306360346257184431783839864262669975301717496756528937755209636765851758641081315712029671558036510755234715423025068971731148254227852879274933974520045137907816470530274840644534854559268941470339113840867833788772310087076298255013469189727355058759105582630452672319704491462629213735426681773877841534675395120768947878000331196308138069736751208394965751753638979812890405311571823701770115514879076179432854100576005980451142832183204563772526145246812912998134813645115041954433352639584700263649531594276933003157836622094836836781134181532326935414479784760173170124285190514157232059512641071716079015360766083178270556663714749409650489017138177420922595375303166337871686084130218044202119276345577149776052123097954445937861041719255254149871888510605371751223619767074223064092818183184674017078094951203061270271210055600618143314720282473801385192412128940591411475904735956724786371614527415197256827282709439884618633800572898002919293518779656778674211885404240097766961475312685255535484241112778245010354785920612211086031986577238981314598350645831931863880818457965163295406866667854317525925020303522679214934724844023439174021540237737251765771757176331013219987359033938141750530419762998872084300404189642083916575239564781440091755398566306531401445751429492170784278597265001380656997365613758209586307552266502081265480921228208944676241439554354227366940338419406046696245541125899522972675743778796591195940559697091385033072516631676609764205436667119101687013162017618147888100848011243306931252205086487075512796034271366632000046774189562560925211870033661986307798160324128105339653836155141199582528097641004831719303125293873235080017145155441830193701487192705720034141889115441335938673535101479055327107697864167982886251984342833687846975613869212562908270292159442922532078416204229463149762587992321815085596318600266788159186488027950422148342919343499808176622135924616193748984663189468328322770986308988984453265650468742904037844042414707875727829400918388260718704418371899145825004049065420910875032533931930100073540363938764509790594141069040734110691577329811060919834169576866397249570721392915029400698967894426745390565543198922569572711058764844068739926179867754255596414113287393388820048233817338339825840343306952605457402303308230225661715569253365018463387838491473792687568051968563833274310935082765379003486763984805788364457047753436203442753874922693769994530219515752755273157594713588210094880528280545085851743588172426406578811422415248065552794281542687559527326687354289675981312913283577891206763248425132703588250803866324607264698818289517934827289829485173516053841834250886266619592607398152268164299589560791130995461261428240159989374727051702463127861037156937245394607446288663520839557588483875176731158437854964640837545246399658341616181005031087187964892312193953877382058550714419602981556660272002844292752928472736481482944035349732436681609081519469175794475885952786914318719672913995318693479127109942341718500587930168708918354756872094034014590889147580643626913897658707345912789512528611035839311252896295756181300294486535893544679810176388315417921324403956480586509822869440041759874740192724374116481013822730443736605459847279877174575977739439999954502800625152418826622804805339530150687358700085510809893098414199963273602139072540518396295774069472149475361762876319212974727454984417230369081731554283446423726498010539715405971241485598532688008736960045351849458972326980439674385744902634782775821182020360196016503097459791371925226112135681666546139271918096393784120871572153473955830908944622589079619736100647856867270713055184457063941501823905870050223499266894121289987442949442618172793604632141781284608430762540498975122608050882512412787166476861243368725752517575371055791988835741022014644062155738491721495459724611083363899840415028071661681572522459723236568513779983466616798804749717825541857712065947606663988772470177507827100254684442216400331778956744138313953059547148063841951225662718550457603883067136342939941595361711278107317977554275620179109677801836664596703926531727401414015110754384205612283841071848934061283936495767032257705644167583266573077141804772177417426404705551078495647889929114785133976461349777531713761219512314636855491425340726568716983951298958203929637876255784325453806646254851824124507544439405707440144222656459688413482648564121001873564591868873817227585092935613167868624972718121010491243855067242227817586551655433815445740343183639320730594154051781014954861055213709404962757825940358728063995673815536504926407961892149906433592279526727659841736108206649040769493394409217863833340921404813563498623219516281511961273261870776718147980254699035234168345845500644673169289578047947148657893209555993728418859268189767995567258497737728155003937096098764630264445220197219746321216632144113605337799638693804156605919765904279793058857193570575538281011634483411024885654771145101204337041853231052885891342028698596227542460407107208688888832029264582762703644134477724150076490514446206312156887288384729667937413898593498988308041920635223345391429212990289480644954340902225794976808426442537972624034460744033182384602578862804460507830091926612176448248463299612986123825606163737889307123456332048642646877882929021115156650313272572066060230398260181505409126760476932984223321813087337923809216360803096643198235989536288761723388822251472868719632706050626554320289210025767392246899133674407099629159930404217949524510136913267458089152627293761742047382134244662766452076146366405783492337117216709082717405106395588122498977662153221192665502214530541879961030793001691266799342441892223703263749592388803845930585815869808867367701812494162340091207327690173859512035989089386911735238442039576556247918881964961707174615017248815312102737461156328191024788039051721407517257426701454925627873494795929724848649907874739741255012434873208543951639852845149674894413164331086991838567346151227297021535257551524160299023556729619122586678649168815647671234154522527699124329021590711241131807279405525812827281449518949180857137790549728297595501668382788207223009911481742080883798774990174152100198359561155163743905365043964316325716967106762708576938634063843827592417829512830564438546854145213942276385428794331380880025877535729858286333686109916367343196867098642850191020917645321221347527846969893805324923931273922898198126737771237204674066164733787634637524281491725092461555161245087146867054555291861664361363501175748539322660815729826086624909527721153642335456060062379371551532083202094410463017857566676203507584616563497615479652823366272672700216524669554481282869785063561316065683487844335190428963093162086899931230894075712086976700136462832570416904953138014152320238318290468124219356053359878978786926100750660733921619881734614449563948447499601764302849623140254809885104820939079892020855221889984591836348393679401498772641859963970527901339854632413267835365922706979364758190390289856906975432520204334674973264393251471883867402183862826445129543755690523915253385501954459005348974735105824155078579423861738692757636556317893345112173946781939492123657901963559177813895368580858256357750457280018548089459219687707442035822618671038805972745404034506574334237443809992619361577234300141140100399327247025585602858126834282682012269088512515347418502270414081859045480071052716988196165398630746476000747648434919936152082524536019803105061556798629556543398563113817662593494168936764999574123606164022438045806366097174434085516632976325198874370452934135104398143263987980574967301097948609520765914856134898748968285473592134855748727039991662086382618217016794208922667138805799851430275844578704158005968810164926492158562625851906888060894109571131984636776132620441850544680670257441560335171032216538437103261582005007201060675263279683964755640115274963087671921515056170128146514491661878746349708247493450476233031850094858055307795297535941710231796120285242209896222543903119506762397655347254666709124861793695527677450299174720606658573427932593025065111392018245116270731850587314661970527626524200501526771285311925331982625263814144786254747172906742819950577294833592877594796650065816277254226397904989437241666620136131697938664719840730159592707087688064358476105788463378211715770042430080978959057037865915466084241289193931270407521949864326662322474916552098617601203675409010674667499833904117851909472977970080492374891626005120818346135128099587255152491888142449293699411123691754263764453050226191569066104965857945064925879124090321690668228556998341207997555301632429381449562958039618312606665776065514324731124770584706875341261600775920626517549111589616946747268868106616912774754002527457017604611639108578511266360143198463510239536666819485817654772674020554112697200772959407709387180109326070810527665195183764120493468518266983376472185911369823975836119703020833008875389497537877302673691649128703909320207635129273222905930507127274040840512282132124769959958146880684780902802410882702188370895724630264073106751321846202457226826062120280494649205337164278733273346359615225244317508824177004585428953837543275151090933619969582290977188987318949976921984730162729152469227748073601209924441608657525301969272694460446515744052883859146131199113047851454764291325855159625418048013034640525511524756142250655674129215488231546129555007393544534309247435872447432049370415137216136272733636463588893846329057416603746629798685966322255109876615215461972894091134148742537307038484988443389907601593651914956291020334858959158660716425144645455641371593993482620643447144737471272860690792783754319223968507895290446069811078608884326295415313547887807279805393671257246131623062282695050767412101846555814808520387309134400854108149792573134665322126519825333939553812926379837217441403049177642572711694226796577526892519043568356200668800931352818086718427858334501179372217414323550566116334822926147554684272689783704742830914220685306762733934079723585361690532241937732199377250486528052990796412883034391253426740285401483654319601716341397328554921572347033414972685904445733310316903342623321011253104119146157208302754488191226184889021920801082732938612249175346777029550768027115531956495405841738745046290965305842284491447051807163372422589449827951519620607816642734220234058829155261381562234582539757723667542088264708057066317270201861559924737711475567748036922786451611275013056398950935921769797333533678270085551330264016341609421598075186795567166120466885441756141615055763678757177004834676100236464844096877681231361205846360958012492386609181146202256248791824976836613254163403791181579015806037962935163613312006144239010966371253966771980546537467718217824238352906284403334832623763620311654971399056105863274005992555526857852570848319343910467303413287500078303949911421366263962797961363667619357702054019141651301213125962189723929365505110919371357710129692003935108741172003848608114496661983456248994032019914017036833084353773507426734701648673800869064012330497879472783580464037000534336955453495196039107235231930044779599612935749589931533473059888064997124846747726570058997677503239503790310856001040100409446165663317783355569653201012689808728267725328682927227162674279866235563463063318725666530545281021786471908813044622371851084465635671228948564123208820414320808393547080746553086300977588789799209553631969138031645780439129140846153440416064548797040655766557536600755196318189740489700932526248787133310765828878637930208591856686859845549619057454665531686073308306231915442242883594355895667030926320114676817346178257922627185967359731442992634089490102728745922383042800621992589532555359110057605283167301929789160320415698081685628065406623529924707758082848216021432179111875277446696765401429615930282184031426079860805811343091809746866003981589469916677445248421178459085208693451789714347063955443062013179113142774746075377184690518978079342671114585030185302544951053705855934593863262372004576631461276394367195329655428305159372437625539157190528324002680330496088949662954917424652719102601887660153151295809871777463053814272009742834502225323068066155848632638900881479079114968692601636614099627748554052465448840804461105554954034242900033625728247579838914277010903564311179400194049870126246104824288514066558109343845258741275818797372441363812036719262919969269780144963276586995826934403660464184770353519799724523633404109623855286206835736279485517156278295399191435069932765005607610146648031909358712587661119730909909994095313944964411565469619202251676110160962064455213463009194499364237400986870982865640936419965749819163017399815949540638404516392440634632405478533196211994363731406203681229519784010035368799146410838101708075006426368666481117879801293243605419890770641414114260543994147935525838178025116383573985150807089278219561999061320466094442040829689989210612392841659252440807377860364097830867962015011484376459081213966664712702936714417199586752481891732799066399574076455265972211679728574490364369906404574795891073585795189818897210564213201329424940606717294878758755604966387016497769255467359522890471153334010822260496131768719572513425049386428568080396780375332681798444858638637961487087447566977628492262414502824314273944870097366274835660371785971964196300800859418807301023308526277800878404892853054738844503092829640761987084589811358649001747080271101395322588741071743036055123808632145569003780296304863540505861402001744494301277661898290112370518905927287271315240169965283135203227267740733157524358680491470554500477984728175179428721182436967302959747920182129827086608749454468977426282365392382617126935064478497264891280295990888159697310724611406470852789038282522538467188042512439169579493353303000371886250629824397482376540892526792525518288500139214178985214919872758630954660016658364751169421165971088379941834534461275847213947666793552267406909083435779048968878285407322621079643646279448228799465495866842321495369546693848461601070717815360269212500837888647896821405914178951192839563958204458220998179627357773820496579961849604652628400671317851981509461476246634153738502952681169609705640765840171490219146468945623400623376950841090025285571262122976353338829142996267519591773369591715268725935431787096328160995303027471526414235366251628266809362740549528204008815539742943841960868368401083588361957013604323433840498257338399926821119896636469564302647018033539806190676773508274985589025019950304121370122542312678681209710813288953461407493056841078701927550051069238470524153400945085063933783791193237361712016879503258589097385630494950608041320247159390598758979633604374338880567792923837470872928638765855579918749681404875177575211904789917489646141816669840430870247149261768282912329933696437938266660094683454832488329823618534891474697281580494517179027393655983106864144962234077121627207703345008742248521018572923957804608376557569021001225422572549697563089283831397564438165009994480023625764441810932192660739749813176508100146667582137790557159442206125643987483627391617018705745567233184346854601403001649320067015013976916185592955131451361241000400652973773993312174734305171875941689507931323805925198310298972019226245617385608870721126746548783230885578721742834267500408144155257495191368346477898458519090650277119848976390209862950131916110764139741101730723325303553547815527732706117229782641291207189913761827400215118819431437159408471883877463607584424164831141460183138901100745184055201979368786149781907444736299003898091525645776527612272251326730275780824021914841640968906355628635848667196883458623976044056872704925011420589382860194513894333951727594870292796365024207982130845262318327811855040338695790915379381995652292733203376804322347776437898082202497331626630416767035346325380334831619081031926069424085773985954491258674674792150828267149563422704611546986075467647731098097942784205756697938870380104764804163994228865309504797030197566277324823844608877869722125951533520924934832265660415792562660599129561628569780493712192887662941159023948050308231285198542921175666535760503813983607064965069098605906967372402626234446813111372208571134133208547749525786933298895026235417889748744919406023036170502922110094957077036257555031442588402007650217980422160891858960651756524769467274733281266460275754498864235791761827061047637330299970721094637532685511677203676509259350669176372852450719003213933225544003584132899690561805662415285692424414709513557669448539074639310017444939158798871013746597816122986291461384501096336340359992303547859655899312596800456982193644445897462733522605598330058867859570312659633769922955513032816533515914378381753318246881793835212885982758507261372782534646038798306614099239028854817395604763516438885651373316818286080892384242107888317570193098538427958489007610727889053072946226576135561345702059161491720572394837185392466547694719412707953497060800989484061918083402485184278203869881052911095710198773739060483158459592328216236393183318677620376389572036131161610680639212835480801290964852589448566967187692392179840378800844419741602706224604746681988434834999491087413212042493161739252908470623409456348856850386029346680200841839181585914472576703446227409960966919503769444703325855838251267001213990879835630770105124483426057151705447281625603975097206095822255065534515145223649318729846344639338349518795119937208632761556368466719174002596449472006958307565099021184963774677108713583100358927513528321093925670692408405790773498513113078901473469348214788542783612975447142905331201198468449494224572610180157834014831017993809976456605994815630571640640640566255260125697688839019295904598116281062817179753739105367658679216448973697113007551346493329908493978218345168841852145303444886762297379484698845392575123270878065608952726482081339589155810778726530505046521457269156872968988467880331758708505091392980894915835287026793199211812357256764814132120777309942411543853977712627627188270567190625186287912464888294845143531481203332537485016327223391503516304895573081041988629275759085564858181581576916329307423140034686568681257553463166612561637317963202874054356108726076390138103330015163679550790661262492412057786506136579187039006524567318453672845732474046534151399439980778330091283308345119375877128390816980787084474897708129590099974791649015718874709345227238264765041556506150190716254160010196927017148846616138852090241557203616021839708465737895469618784839215946912034962857010129314495950659637932403139171023614843167372900343427370125365807107646857548960671668845787300807308793033083188702541588536228658424015651638758243778858934957169051349623889070954162987234232126919054987105129018797955153871706736405145190726451091012452264777428718058647524368952650765395552564218718332104106663893872615472997595279143678139663358495545040316111808782715173364559471048618943268225484721170167084307363618975758979863973304989120135308922595357216874368865032531088491639067571408006775880711853282522090147887735107975354646202855712494547556143837743877911324157648929662349976709079398972783422727531905406204924414502492180273393939753948911387634071859961424491082878350493742945380051209739161735358497919865270470174345963802546987075050847751001009320548833009182262210828874902051923083693952244390552318056316958057010843074540756795665025818489522476250438838051848174820283702588736479561697920917597114431309371804607008045768645309635246121167289766808232279721194126347295094336502154900670342783301126769333627070547769667636004793074248640142874363183337628838640119293786579076146914281573770769429890997483018419686874197139576450912855511224829635394116502032719812548990853327482111318816547880576915804642683528870671368516130715029210721128197484959979169132147093019323672424717346256011728293518929779307184701446247707631712897585334745556385398049734693476182120336349090657938076206964700612852157799956307302516432584024387008688531281197552606688573307117920833099979889040544369416027263297530942840937177902197611675800619064555446386058258035778350124248892042154349149939396500655377132775159368860815455369925679007212282805461835807309998921134676727097273012845854176123261530824061773746534410426112206465210623832259256591412736251967681594718556491721573633882064099133931463154278090026530935850059119691337466498504339608319390369560971593928313464793757647183380855019280699799759630505231401857670426339313929080044920047714406672438644204056885131880046063969517478540500706512007507868471837673705424993745335431182977347275954421364732768940735079343289983654082707199979504071451124696812804307873107462177770742246260014476874497793493225811593756708754967511886898052700598969127496303847787264343291037345073823931367235621133005513406175014842953631486190171509938338329987853275081071446727745544567674224941216611568144576716896280707953095323946127585400844307248223832652576866812364910987451533904699784387901932829851678717283051558515485536948560848942811241847309953907295845493762799181235508013688059674135326153808735197882646622097321170756057390389119344900723673452243204307934355019105067792394394376224470009158917434202054866362518983536911443405051176062605408635422338960896273127545202975531822417941938733646448708006816768124289406367574763304056512884456379983649815868612192667773393980747341574717102305781708622168415615120672366053897964171693493917500520283116065742713756052251977888351369448030321987352872366775334644784970294036255791349767913956217969654252030128861218625772622486830115970664503852861920782516075480625274489673383232438297109170489110924913365194814552999312766667107761978075149003975500885642365485701684155976717855352746751309373990966814803651807991749260223814957919949066756026536807815953297964765965078837958247465324470900530726469748709363038764944422434466663876666236345462944109181070123863049788245900484367897910687402352504648606840841427901163705388998005887159200752999932012448919714064063906014939266578355259846809781957092936146784529896955064440692495476071806229462023513385008190017315226091190589222880716594467394099499858470630237570226293391256786230909763712701742096892907139897023006690061455382116762187387666529989234133593233166316483153544609570252460875239110389207210199710487751718061249900267026896844535091125350569032875517857227104934097573156612167159040264660567801784501863718974189314779842255577190998234568149203190764524321596902867064239924054418970836381272581039166717780150128545189357741636892227471363106951974547741083040783323439830820539748831366110368090546181376261375420975329763157304801627039828291300440269618044910135480307373202244963052356372650789310397860810120434851469831700216581164757643205925305970208632231116572001513536371677823008396030165473518970404178799093360750327572430700721739160304148742494155277418036932143080177168506501986057497154990392483545291339997864517739755587652774779902957440396085179222431689329131722628271598017785848287759201684474576957405132240780276495331940603335702789409391342453154187157949653800668682502425072528555003405956615507962426426876274063529864092483674511719852302921069004506457692504937880673448595219783662671422463886985962973504520416649119865090141922430542371265743479001403808475822343194415975470001636920124772325188203909367996577512470262161875246551615786107916346091227914597336930723435017620250804068589300918594606390315278092417651067486830012279018544803698077374742632717150502362580205201940546280632172385242890443457854815333103083992836766682003052970101882116361523095606872099854945586011253985384428209373153563047211810254446284282966040953005531552490074813316830179238704293136964258099550024067887038112885084289400853329561937718634843020956922458103606759799193921174619159189694157417940472035833706906360194533326592949043675348593234462841269808535472631339734516802251868833016218395950895902990398356095686231233998247292533029731484840124196957214056473586850079074467846012907415590129317729176241830624780787828474381984591169410399625401164045488032421371389873092961238368941284958493919375944408636867452818952740790921036873208780910516294038184531413048834616937488278287838388842355227596426237135843235345598020693608251497906842279278862386952547870711594784880458105483850866341160724885224980691176282485045137767423338928136387998932408530262128515980866902349732609581486532665399299668904741099197811342454507386438084422866291199460711705103677573306106124544582702176221577266478561991712250760583704661935103296669684287846309660524750891170495371934139979166395414485408821101224752424775500662487487924115972749508992392873446661966362226468387006545889460779535513877131441732123784746070659856768498476611621265516765606594537603971994252892218481158776466146914783673726197718452724591462063218961508578556897474097252395034110486972614035149469311766538404734178238704537232703827777662348608269480335000243056838918451824099571655278792759735385712542129721194870086588679000524008189428433758905625086615793606101252302256839991821541797735547000534503245343371770029328082485255734287481717452531736705003475855917277128220378952278774830864622821822267598486073391487575770039700775755105565076961600004051869209685310289217330654530160951576638177291604216648187927733447679516711086614329265079413831877942415847236067904173226781270924329864072276479061926290241924403758976209534163083003602607122163878092363114756585139918334751271745327743201568559534403387716607059993772113108160651736922074942323922796774127518345923676044678036178427508206384303171025736794221639753341045690713168216138771976365922063756894047828151051480385952669366401573283134806249723499155590700611894792779296340242795303964823064797062350910387362591305923906196330564436787295681309558222987366130436484944257324889396658779155398235086092584200121805020229062263961350454104010466580293150758321257700229327287810944976086627009812821791497185846376140881443304742450974772852347955540156569195307377491342909727389643465753840754793877419155679131870038640169951357800079266230398442867767054168693335695765146173770751765399861935393820365045823876256456342584061836605227414018073837190278747125021764851724086384595333427067712341948209596943585526925172502866190986854973527556815843655809151260358640314764074771953108985427070818886476242881709449584159673994807903560333353226582915160972699495242480438202516639731761131789802508904365256082685519273275392538108203342502968472663536341857762765996980675859817364207582919896773554157798345097138444537413288166608871791423033400252234218859364312276493446532997209858994033160883998325688840845667718861823334435848833656775732715744701532690515992863734143925377259494232172428462747371072436034706740203456355894677888863169799157456940355284092074740759486704192027488720623299052268286547912659932412227381452008308858445776468778207712281569403692727957935606745083673044424202816482214518790571408916401355976888676227355959418422812551357555575470608055000146040498742685068640008235408239266233979614101925253134631007957727824072225962787247673560227324328109151688389330804608214413802471144706591089339984156150902495390797748570274093889094926895948766530830637790051334545026578098386150757604272432575401941155748025700144074590715192669844684219001611118628503602395697122863680369589288448311715145440359335200046109133056393493368594843015217497569541280982862796084878142906379340156948590326758524941417379013899115744072539949952411508945423681810216336649074165802316156086304339907695818190490590174875613213839520586793975635628924029804399656351169330390993372170121229391948003348431675920711364473658044413486198828564787910287639885559206756845042884740012358006006677532177031390194071189288361614381717813617584191566665368726250901003275209152254896964097431367486219582471448128755345051190222129123218196975990589811469103220701133081975457568695330180797977679533927784246388895208255284445144445821233580453613300358144873394353149576878278250211196978521829287119836361920198765869843790418329316932441936086272772542813941768659818566912109059101588033134405037656752403972515357625160501331852969979325428879401043241380203302637124362594219470464112206904775814656919813839640516869214051255556048445341094790410383726325072023845166860710656382643135167658795333565635946711418504536437828328904333527417005507291528506504222492806758111688733759013765699362212348655137500475152271376534291880281853989981410687060597035228107703561570366068475286895855171381297189603958019028752163525620351259383432530995670827772730687635292290229548899391680361312342943156856140166437100195102014042340352750720891084827709048960597992776495253989270009527582334382176143592134483771307066676616505111905576676825409915739049287378610029542773571570294862204238035211900788445699186338627310131454937011181530617155068723477242379929441080461696758838970528243265677777411437714705796455868611995222285630477823542676174191685867467190420203371726694835967174945463773086957827676092101273199434434039930270118554438561033047653771014699026587053830444538672926997007017215151280209016468222179971388220105309444158102553743352422313423530757289778936232320154072227297382878341477683030905043503195991942343569474956016246536533773781539292956400203682501614887135943297722876433990610700905495220473285648759683050751686470974365568673624784689885081048993280999633457756717700175924305824642124852453689388492427636125742536584871797894296686134879741157512668347354081176620643118250419603337362736192997756253281730073707648069624869558771267766781727749521261378940709229072310728601076772455646261081969294906585825396794315938498655082865153354314295067467944789554613799377362740506258787631033459741391725993091809613753557316882215369764129231006095784376592645681936964906868847779308647186108831892413177726753814269888756035628624487355052900341437734871357527819207074451048227864351364095990358719527777976218979082849958305190165611238137054955291857806881925076971166100092583497874797008814651975572226061738757604369783699044880732031222773977510651156868008837778391423480371937908627305453771481065962246048842941262968960161652825462610479146291149380592845821437464044259719635156898789939998267193041304229803904107268469154833842138845708890893328427895493903852009151380877214545330840406844937818934311135557587790954244434131430563346699012276569355241138599012976865208429132013497195683450345040065840186848203147901673776729644936045571734217180394148663797471096048549110985902442685736220196736218658080148764640713356106693018297526035818322618929594789561052999740529180462551880630103543624719636516261788501940537125038832686639158178474737517950349506468446647399477704170140895598287160004170302102000998111478707742798875877719184373595594233978974973051543257024473206657810606841848197394481194595764801905605571386074523355292284026739610987010928688252395401618204974594198564606058269245120662265089258682891077786225812194581644291512558826822731424245828315833112860573234913873869408132511738480510188483643767032478190312814066908475094963621530066140968474159062165920586976234654050447647219268730697103891260455867427331102399275294243380610891710100962285373241195441274352849216621661228949085117515704381680988421494653681005230667474038328955284177520783566456146380247663931477736859484344543421663779074940689120786166008341860495012810283384274953072310687368945578002289823455549677355994424299330017335901158160925807070268569604200185027751641645014589256609300978799598170616348811744901044538485272908947520045304726539778883248709466562292108523847587618270086717396655992101605420947033964793518650164216915410992555619173648355280034914311278848979106507586890038330305055081142413092933857813376802444557120990186163000752247045591198070989020786566458990573752727102749560608033728335339405857300483092066907359260913833328607755123477502302273573980205212262979400358542746669040500223638412572543475921475541935375448718705783477119806474488062117230211414179872809362146170239203129033732729924085073300855465306170098446411445296963742336639848556949630854619986637052582131686945230105206484452506596118118512247555411215131956690540940242490180782159754667099545097696789941514900361094253557113806073692634687699585878819322386538728733222235701300367631571684777483178762584886250087533240307970408611461384894498092322067476870181081639859184472951811355993532434033270777686174107182499853518214155615106446096423795865798731600161164353315369129540378139210283721146548157490369878185555738545570687906034141291262348584316954990420389959277660077245723928939480651203773682624776116742547492017382194269517731350134616124973988015576644556509381318070531457998966321322680663928622495458301089009462738461489618253020521280159975829876114901269359029913282489102729647370259918190891335497445115178246111344410121483474374113459101176734929369827953234679159867885754260683133601338285406200471915764463404067623975200874655381388037565827420196441723728006826034339477206787859685087608426513288089164649736116650076493985640666480923787483930227233808212843130825910796352267262101943829253669710763889573542239385990093515891397831520650968261568699417550153715711764378949772876697749445362185352948794927922325318733593317208167805517512740162226539896815798150299000380059174302584243665515617803655739896206845180659855903898816483997868973613710017439941089636817363246316532589389447932851947926654708952204844383104360973897577070644489156345096186926877151884860333528789414937516797049491280996090311238661227003109098562552655975199571640118802122136273056525619259862850940398193193164274274593772680189704814501230673170932337177058705892295745951597618281080955509930617928732928208119342280939945392201802268481960436421955329954709355413886552878149086744701754367518656425289428823191858175535197941646456806963423569678496056146170211006170826632653124870108707332486803448791427929633848062007800391309464472084865334533432078104060794745833931496952439684032539199416283084953560613019723422144424690575167857089951456485633708418521413464520097801325669872650019690955151647279265236810603705286269193085476767342459662939674570069813109624248594367835436240256550360694055037766342086761078062999671830547310388241963591987842418517480493323010628981798563388816733940311359327034996806250410584176940512549213311015571465756158268371249928128063165264002148265135964632980112042549570649075986116618378358975004979919833608694893084030890045081006945151364908019147431707812385238180795516482473278652030983883524791742956341202007175579688338673887274593962380453053451571425484723669737110482626093675409934038720203056560202622642701557779368562415032229940268504654274838310277130116218081393495547636699086315019507784575072094966748980108974357834687239536274505962155424674437039281810563581904319015781280096360263613747027627892725141214329477834352283273699250763739991476369592640448222849326631929080758756305510326543730578829529391176634794667117604593001113306243952621302102638478826380958161430347110006014202252393903230417990748379121583439025409824852072029154257523349309504333666020121661141893161320593780257676513927259605722221596881222213466139957960823492599136035527470011198181089493443411854065633290619080339831898309720107778503271480048875720167919685277027029977131426262258460768765516938020621502119067795646268997408600198077035167112226750045054678551882759402560671435410495443036745834781024847742317727316942818840216341035452191096643835157368165038915499685183601968121212302016389665479926576487983495959072985956366524174574265770001332189700310082925689316276986426913487696250383098362205921959226186757256441964748560726232076941081702064970069239559372889907755533213887095313019321652719948241714863923474078712221945095881284880499529850314382246940423128792822811806140851812936579407921732600708420293405973790734292143046214572479294118182209743903607224272805312100626394911695246825640755106130255872727807187132142997792064398293407572122572624995949586935632678044257121404147188345023208815431081156447592027587391476220886894266011324742652983782923085028434009308799694769973096152833946075263059105059913307455289246731613123767480679621714575321301418480078543525625499446034160453118995496380983249059719750049521372605480871943546899282015703057526668979486851352804427452047322557777312414734815919429281445397147763046590349413527932415887937267530962301575078945568014004571295253134510743326196093007137069261707069751427276350045124514262221264179060824895600284911073580007898596364233381322319517714843470102533857727762733886996883251748835690789005464027125098380139812149856166770258124407785546083098027284165692126783086357274654255224773091284514828281902505936836430203465226100764390631976455909461100324888540653289186671992012936516505283505298317255174447142212932824302068060610493248842252361501959487475779251454122464282494601805411157977961318195536138546330274354665471362269813693084028733389906980091553012104693072433626355331713834698189767331506873319513628651360148213970341865917051974131541140481062652475320496138610823891272220540495839916275870917782906102056820945236417640023831308724265763522362511157663768161157240978645691703217064308967102619943337580543703300050847326748856022913360708795495218158159387058760670052593446111933395593934585223494208312131822192212361929966393485144608873220368742888753204381290457440357208316703646359175972151004405325685621096891611041553010367916174756316760131699715053754809908092038760589085643707472303147142714937634320772017326705611996229480039797332890432628891339514044293666242890961593504450716785178052286257021822261459046073248886609793342110559356579354796778557750451155738984344546601735298917009348719183561503293455516815625672614370985739703872202680770177937016338238706372013105099722853741108079168624901441133206380228816638462671313126456846680748638223007931069630681232771216597844942922923309217746958365913904113705223326500750003520844888737754976638950645984469792426458863976055046984747106821145723596588169669419934806708763684220700499725922928517992790801076117792493859780358920187085950859143768992257766013101613726519297201053378904262397266638979009589519413141382025570135010646637970950990952376659805237901009436682162110825700801692546457875333571796333096610022220246588277984933753023782847418178348072134213855753036692477735259837242464463818858284166846437216422557717535133070200472599060865416416038251669860693371588376445934645966355543786083005322746242870334306346694243732479409139598608419733150034113217302006211445782137180451274059516610501678478576787992992771231782045134675256409773322926031640789287732914169218301873429025932680637339375119233414360228700039134035987649659346678565618094882420966753447501310823494437223969905497122800501962118280032058186162061701688823875406550077270475404082366054317625799175286284415994347556082311666228384292428134788153951200072739019460115625708713240249212069038495284752898442275644642801186860919908527192442586495048926247905917838463170350119331727855579505873461870285947871866959601227864835041912939889240442179949505441209236387613289108643799585077559147503889485279574126140614353361165237554896021063976422326814810292272143048930508231408002316641264602388616046484073673414628193464850192961885350934139319493239240885135290027976631827432863592668447501002382942101046928898624703402129393689647176497090665214332245276772805544130127010338944542341640475514824363649092347677678747046777021450785042220902134377392162259262797251572785752720101458139590480911350907786822792803238856766447977170602922908398060529117076451386159793686185656073188057329389263491327496215060882279948950121452664430973390058776054269462660076952807858375646205791178718820768641151801839638664605759320377689282640217647826527769978862929056799629345548599023264694190892225692100974858745137005610182245534427583184080404958017869635356320621764448459671212907825934743610833605514743677542741452629090672564797708923163730634070621539192223104686348359985783605180944457247722565164467461606112665864141057155041346388117542963221520864954261169307357755012272048955819191039299069222697106948920872805463137162291816308165842851060098797118586248576171675139483396814740039611754782102867938703686457871395169193469012275455023187961795001338598719126023928106119774154889193618310048586555617748550757625124464678226411010048973748636012931237482256365585311557222404226797462266857618052898680718156403875865573839486865507319978075612242004742874061699490382624133282827515331280035200427419893512294602641336933243697057543395055734284393654442975457280692672114968627386822084887139724474487930323081357898369493379505341425134444871470294082504156195921638558790014356784946307138746661615785237114476564914081093165591616217780556951225993995771152851422336383032656766588429354280543145488953480989871051285530254212434501259484546814532152176950965643513978076428729984353927244840126889887042899089153684425942480372588529756040885002147352001344128264377250189499186662740425016433025890823968778735791133456272988903061324704009861043468393698274408389076305618062902438771980915822393690538721605888726104620559361488337337515981450140104500571480485784402259768535131067550744060597964738989698261977739297456728522386565235551976096649390102177889385104479059894630448066644784521675545251343746087561437693957413615994958032191316236691849574507203787691585554700430313057853325488598582498811345573848996604132868100298787013995802835530909047244081219401903233878455885804438147412080566801059506378361168943612429757476663730083444428556453208109325274064036307087652238337669166677138065787010870173409175080665837106870255172759490990490380132347181382844056861038695292439964583901664291416837905762568467074100893187458228746296591701710133486110098310946185535479238616845708261876655759547173908316520816331687436484158895189362271826249554463670840518770434649401034984549824801010403315378979508236124876722314504878923837080090984427690104810111167514893406841326225986767597370634189258177457386584134875196554221660470955214190513299039587765659111318150921416680206422834840579728392617286962748479047634712461221890787053084414604710711141599770637564657402710276053642868790037592133238311663037127584110941011895101661269793555383516787581700771206676075929947854087817193689673533991747034871087808190699556602497417114930111543538464183986144406140051285249655263382056836626202106627211211091133072815580629161855001232883242923349961654651573595147752887210955381128769333932638986401778645469189617009357025554644698230357200072082112404718974489450071674861605967292975754992903212334309354533720256957000615206739751200852036448354869634308230737933816779152655370283713619884595139098716976779859846017769592194968050547650049479862135259764513369832487447343848036897592553299723751933465553844985416550763960864353019446157644762577669327957270561288657079207434526053087862424166212742447208706461882811150032950738427640133305841842153188065658674874990248355807986474521245715507616298113159405120468994342521598319745257717076791242595897828003339256706203038142545193686010458857320111383033982181959349723788851538393937932195793473216672142152677264492890260053290800845924908606900474647281943799086333515666926791498505920607713530897771154582632978243369134401373127250877076793196307566208587356562751401899637240195802302113876566786227615262748191000138677634685438750126550270858989735718443240592636917209286260924344108847012853654048033814639242593084229943656983698277833286142945518124594253327842430565596366473268795541103862768277116011952947948171995503016138189072355097573422157401689521702010635298503047071287873248975809108141179611989163841638668082396873878785627968121944816995084112879818679963681652180499003394538893116582040935865221156581303683829328269212463297766197290590686656833140190476940863744093318673857707602435102105685122456815616834678657614415440800184886614886061091677707099573322671361182952627884932692345496542926764004606308344130209788077143592179601344918006618681407808955511131542622672239161950551280869736464919481073782558332545363360209481290512207269793049717918726384141013604317799020714052119299910062804869475767671331924626263581339067168851116105640349722377449497556844070396842561714193132665499577183396481412037229055706387116970095944299011793091361581748891152592955426477869642158641984997855868082028168079436554704679700221045183523035854700286063652388111142187064896535988496827737118950317287893140413557067505337277027482216671082711312825027220214214007265547183489109625749547598023756996653190509438021899436535557615215997249514427582665761206773748890004482432181582536899931660157888298376161831096421162141963631148048507989113970119262900529250620198638863285666319992213857966931334109456762813664530717682695661152377687928849868136542089106025377472996357593703242300640526132518388726253130643298409514266805009261953083814916920647003596282614823645545676642402951678537218305064159091175978595692482614322966773322733817748765340317599209348155477324273532736359624482275371679227338760095445316224922140568807381684115389950924363857485008743805915275121077438095126702289833525173879047860660330588299567663416597915367780025300405551451377267847065467777374077720661714634950884041449208135278970401643568544048535007356746990822295222381655975887194912108525941074908034193666992333562051023770294753146677693636642119062900474849775012277610399094119311667299433926745455852213693862908981512559029987866111872940193943169122284827372588723677546099537554504407142292733031724459566473300340872133713553399965620904894032224736588121360072431390235021676605223675394226186914867368196544593179431370437938349877970464398547189595932029256950934387116752254368420196715629214680819066745615269976914787729585721356413045949600364050924387859231425589141268746991096301506164181067196373438574778497880179240223599790005104127331166682763255778584793626174751245259934352878886447928690283429103586500145163807735655803235834102365247797319410227155330795146446096647808793610573635267993693489642494587052355076496855607262195516041324224262632527955982431616702429265923456398321587227234578499417934543964828818879402233695543796059005330756607998360068931470672557965468945429938648033078359602144594342942326211773137257004279988180052334432365500179205721369834173625514537868982953371241278496499368001066928718547051284277211680185870857504048180471990828781183505611576715851833545320534613662611691785695383451930074958288603613323063899152382370910685444933291520732235666069911206586977674865789573566408105193487831884794683247499825744314104709080109744641253608134943247560294933292515590482366460099826467324801070609393894125264110196909785347426824569091586207805295777363226901182792038832345004951048114160692396638824169206541703602724744811403688836108461031938827703875862232878062109037892702025387115980111283373412783085620638953972051341158795933561445861224091152849408224381126110596558883993960626259438435344804495991568638700342151720548154254658628183290818604075306312981206696554421579653991914509288701524696028963803672191311078075637865284486897980584810398149281457949863670559655361851473859004327406099232943839645505602324558941561761179038564025850864094859869746600362925160341635398410206352575236209863946112807664180579529201410848748036364892130687897201052134073037550926790372529414393375465196291230636649171862337826565722732915567784812736683800411950826654806124321214541144109198534382710882847860131348775968035215173449286039013202918228322359652190027834930223317413734442578344512185128362048054026831443439621190295189114018171255655641928803811921469558962242086118699358158987850746675516257020006662542452016093189795813945815671672862243269677350076259701303860832629847724810856881746990024142596586324492899280679955741601763458140241572841629097190616744006535945515611171661293072830302581830556454388359812489362469449249848007312283527142112649413930078778863421439209028153590032917561851608915949219418804740559476898848897213313304593326911819847573386232602978609489633506024369091368060399983002152593778656357104718835294733215998676550608133372192486874632476782327508281706888379259197210262990574052770225344094313107048041080776435690811348026231914823931809489115480967641999714982910038479653722485563832376376071188347829538450091531410464300847814640710985703534113718010719650775576800444846421302546114117656945586944166100494997313245018732854014230739323692001934361338709571557597621386961751868197529030581142299003724567056171604460986608757744815267534058798019344844863450738530794080597985922074519932460200661798426650935742115670948916494261251273378665603341296576240467763731368348722421754982030672115921175994576119461914449786323151756552786892235154808376293301211398280753849467928656125287912742356643207316623210133279050499993744202619862290305869436228505890744008510599439167000316515150490869693885769325620998260776289127515082747215081731257788709491388259786953328628194806765318209632393823538445080313505216381972753699101297227479100449148365920224712847678037819614292752482047870971217901713426098936966306979266315619404922871011676661836215913618901984987612322177718208858670314113569335699748741349254159049385016018657920583621892568567645387214236274748834066846613267138327862886559267607714462929820845107816744595096944455548781244070279058678396240805362169433384582803866342035696771931890810020293515007116937566049960678450212724441919445646872763424366117605759036466615533501261758024848085365731667540630085335696831763324364741125765375508192291603067607116681829128902150065939619279356552910021013469987090608401874873261182369946327857464270284066678722761692739098686764046973278395574940887896981505640699633012608010562168332419960129591121707958601506775481723395102654736586006554220714055373332800660299814691659010297386093930076106214316591182629376967952207590401660843925420784444639123219700606479655618323562340225003539537679745151531439824763551393902897884452466711708865236844507730604871564868816149266854422851399287013652611776138744856166327254504076942740891988136583485960916652470464562026248409515305452304516408033245305347171938482953293120543519161222509897182603793151658489162466556112926740570425596180884429997273484088930500635403545360325194697437032387235601428952974844088135335852985525969772645563719885999478964064714875899765983355228687520388868834558842350619506783961018186794005207388646621739708665416605959968682523211221999352627881364920894729646137831415543849757327795939344840947756133399240223972145206618582781390794313288287992772573249947413798186030679021688744383657585367808130462007674358440460909299422248595404929331695808222757132598221751291838490948497391983699996494926019084971113383594830960215639339915857368461953814608346201599381177687417252357535086089660549920789936843612473279164813237495567476379415386103919359779194110741971758363090823355417579453119458979334291937176982894590833333851317344187863682366227020306525829868451771889023819012851081829891930037173777718729692786908535662263268883648443619466376242788481040175039698197436810115610125203958402359503336123511164523820294507067118922722090630536340240091016744795726368028275222410130933797783967491326279719489970693966904953994298373906426142311830058927461827786829611828318113042336051474307917837742715638387775908209952664568595185661012731881114119954215723733959575038366163218597758486208151556732269483975933532437327276674063329928977193569633785865692265223750971614552663815115714125551113158367662493043842322190062352653288500627987416352858477826620295836941955158436643084693144477651625378301676836050747122547608224885468309166087104525554287786888899292983486800415696135464272130986981031848095475001626529786348941940791806278349443201752026186424802010327799347244893214689613968529350514993325870083145578742598271764783938664364551323490740712410350521795926446254781579575467118624102681396372875814681752473942452822765178709813714300639409964843301041015593369874214247201002592281916110054732837248297783903355508833561943181238498756870148849682416305920010152039159814416822616103079772599393330872357456125014842673759314923710392637322950557946506806713935524893945518308954721394089812058465286083306012636588514381340618244929632020580074252196612412720159085748849063754748864538594206727651277686573176821604829687714628090525624547940678881555618690296798885472573306760984705146388785056877772534345523649638251846663853446220762535559139697319202570989759291539469314236754377344312693893147366433789216122224006379064922944276763604997201620931035578459770653407897141652287709561825689510868445707479105402569618395995553955302540255098620223386793856103395740673993599621907860383931131942200535350124601713964680298097731021117759408467937060924934879068978722769201495593275671781904564935398113189105395305275789891143314899703054355359507290325064267525812571100612967303501613212025872168454505823650346076424501841704989173143824074629049513746752493652207207685203761278099282265384110394938710172460003528706071862887023512321225878932062494854587858446532627026920575275034647033059294346134981862515865902037197873938349323759368906631462435907180734473233236744162999684349579935848351746056005343068126604115547307545892699690852272818420674463272140772390330109051934820363522690025834496810113417482840691526840325886429165374272576477250560985036266080670470917947092363044948992148775123052167492486233585323889577490744025840678957781543945520720954806733120240603754815447298365482014002346174174247505452012678071575954233659520873781636030207184436265691916592149748173806248737419965869076681416559510383706806398616785200654397549709424691578800539943597299425548941372125960174481402214570177360289116580408998153757090494638500194622177560249278632514666571974605661180843521522421418154950139409671977627581250932488566281715221809121959715853099460684225403509474764312564892442205248664898360775383792670712116142601926964823530957081812903248795648265421008501568954050301935364096290466401209754712400669331004084095190451966705822428233970926208009810311589833574327879790882839786370977053930495751656791167784949903601500946510810039043083200877716436781511119053897134542289019276398585216425487392708492804093352344342555719850186956209374779732002150625213368981605099882614516405674890957482046331675719742922712915397519058271342279600063180909594269269724767179753250672083004375518976134059864453853249321073255844988526807668483260866169117917576147502980178075798783158691425425478603543644496160366811956296828902132806028220279440354170496366928871722610138392551541007310593989904627879077912858743532001612244990610599369171671953928573904840314319040211335865657186105158932789059528234095043834481707619591694865443656297333922461389745055776258345095818392891039355101907041016763604747942313522819932086639726007557461017905835427106053769769603592497177145902592466363254539323150889313263362887273767495399600758788790382858473690644601386687210121428939509592840950104442528534633118823266018765274612521168504723738726978046618894546009240793490789018676657985230244844630539112795632151148730317237934389342145350763270711550765689446600117840901718618498504065838639875957432236660052881159125975283040775121223957740199805635748533955508339061585511045332308261350099210383827921004521591305256657003571293155699699152516166759366791228149934896138119348066429779552530072300993502531181189119538634262119495385437214064415301330498092775057347706094377271506839555308551798158689776992436962822132368930697013116914438562991335805051627776205020738963982054666025274338573105103732194895191677879229574099631617583286683631684304335243311856380100627766338449420092542025781014121870567708741900922913515396658345151390222726867665284162335964664631344867080013567214944166498354793432376605536391817185067411459333450586547438712449911527115035640401749586085799597566069291165049733652824241121835314152315449596486007770087863289797355406181795356478250061270466910413528014797410057737856597282250974573737872456291827156497890070227318723892736359307660633690305290759709985049061450299242871448996477261995404813821369955795017718527688019789163931285964169057831046007174560601208514982044821353465309621710158774018379123900130413253069971031292436453962271792316635417461776125759976123178216508960489436605438344338660680807294171363723888247412392261602856982122862953110145134750294768883658120060273108667928602725040853244181451585831038915906017652173568887584128056027763833470633395577211983945750116019636716349099100936732339350652430207152854783294096705206231550623729628950319535439460398254295575622601018071665307060696518522987790537675128752956153933034694688647376151281850363003647807542944927349694793963485574907732586870507105334827242688948557556839197588036472287103137677194056528242453598508358727140329571037690560108453480442575224742836645414511213703112110845394356022728423627006266784162285457279152796215627230462145726152068622506695252803306870524074357445402493317553643962402661389234853720995991904989595317858927684709668308471176982321197983699727731448587813512764954232363343405398501519769453042004117952653384230300859809897280386685930335989063292011947176589554258115270120138068464317373906935354775111098595431321997781798827394382098176302653616624603738761306880294436848405486191105438054685187507849847320862358013237167115924687527610707992508319510652729280949566043472178528081444050302365956430142483761095579807585597181166126464140104003016428882638554632547323116395602843953839326869103882554892488425395534303400679863450540622879140097774207530894594259565289140316435375097390166896245536322426144825330007580579635661074431184750511028343438368262148479581061708287722956243709833584792768473285775841841582193359661949929769627553917725656680585353735885311940925646452734266293909735267927194504425765126626454224682981136098964633411840300649946440594020866776473490385533438698223922430384853896912112826685364284670126844719191985940145174698947605672099024825186560873990247889594515092264350264740714612179505397394504108940674641689247354321322284477423863570187423600825030339078686969189550443440218276973375691831256475763822769967411649534779097865129248051432204135824059548771087009966976394234473483069785914782806929967469915653709352698413652263226299433933461050004417668952993665449146824604112664646830685023797544494849692244670314447255172792460611433214118566749202920894983329258457613031501067576666273095343462122127729338483960349159892476453286787640705513820226002256029433166551618054912823807762857592351912174407236021119626594163304781027563035644073851436927711336457375191401628876714052170726763896252161339028772805915663518458610473948748703477299684625495628491354169559640956539968875065781502110969544046021499285615898279762603761206062115597573110596866175925810880770193081334920143068186931257050320552289328862930870276837647496727715013690233603350500935608731225183420529353299881344577342797164640829996854186998483518734341645496146902948326366557443633171156599591052229681391657316861619122868038688105614686659434261513899708147281893620446780359592566075007216905388880554269701713618599407350096511431702648656465249764143544513167228372673562336501620533767874796327753576074756342037848655706623215361754649042380131292944830904243391407058866217908455711871788685188990257277786784785750823963744991887235306988649010629364507850953563068306685701106195760084323514412552799935621525723830413026777136998603247565083486333334705532945231195001682197032739728009043431134305273131711326366649825847729387935031885353268117956905001338635622885962116074180895474014985968390783037736390048187885437749702575997269127017499491251621295153915751784447573841699853500184583803107788561876341780566688241275390829638214014569991189265183993841949155063004625641560863661717163740925985673833532833812620090046192333563200195063263694226611453417083935937121577819944906016075903071962630301145022266464775797488284126951461856751734747224705379960195669898130169617883737949256728767575386479311623006147724496119367403763276418836421489903266643654941944554546471404732990894852031143436456862026959691109844658188662951467558597139471858599258264406277828727891371623258800994737548487277669704456798691119325071004912941761214672768264295393428513133882855972218296412338476983054324233568131747531118591107558886822032988838569105724900848969811755534384227245368494470721994797071985203831609226515452096147459232534887246846681362809778455083230190925517578417285604265142187626567091668353192896784183854551266840350999662992804257910076887669314082099436198063589798063496223993953402353243169436527455804545671221506645789846260034959225574778873322850714428537677221739029711116190546974676620626364093752358355455338637165610759665724582777539344008250681241749694436040199377200606696497042704346984704891053583309298915413169072798587634729885948473130782673436561056399244497411378899392253996587300346736326316501401793297779538115366434813286655839796848617345085954207671731483660542119787911636685487874828421155846271072110510972733158708976975354765431811654105304552762984907481523576448862423811550762684448820380602011194528370606214167666277873566777569428391901646759944442697193984794956748707177109434204175944305956922900029975163325412290464206468792075275518133586886701890199272613408542215074176453339499871573451047500696492917061818878212627841743972257335310978368905405733565633914708820170899009624512636945143979155768814560623075283659557419780851820210022374681696205248457886082386507859740207582024003122031004599102251231598810013960708564452752256129598512180740443408871066486972483788604523379026379020572703174921188142945509404207108781960606662309713067749615737364797502464625634435960544708994832074740215528067490173216249500769583117454926826096619160183034009847653277734128980516124990831912907627555373135820498175104963397709047360721618311759793612268050716779857173028120076690030514904563830948539816833011865079815604610173178572844517876413949567585798427696585736477081624697451156125955173862891429673536171907631571118448715250263673281553954478549695101109657269809743116811442558170204687748064635295534810767787750622662533455626686178829080466467422327760634592885725702362322293738225532995151975574038836625268135232322573085608363148716099373496856341985313739646442795647364166165763311761991512242613263000918106484962534340055449376305078659607899059837752342307100955773645417662137468574014017874409266189515269992643200234768262742900418978854803684657872059086297738491188799196723083214082506949459481164217217286862403432847715634587764051328794270553064918298099949944255143278669946041661942653137307861417079309878131451990726933824118191310964096325004391464571784249091933269278116872342070949828571198032343944303507908774966725277964889416367834940901763408440855932790654552668303372080815452443531710374592162123929863754284885104267152467280711658409842175101827072273125500068416647825607717407989698192809269122707558587551051652242794142447261100144884213410107775716673984181666554668433178134535232852487226856280668740069230419564100669104203484031833450255325533850207969136194415406844690278141320478922500509830123044772214902401331063326925608682521975079925054024445649037774273558087902345847426676655488702437517375563944812560742762572482232349700815728497156556000519330388096680708771637274626059863828141515874427874027113828923553020000412484958749004182903221826873247430022835272311476588306351686456769342568453607093948637687228841081836470103521711003160372947027268252061580349837104800841159057349383628267275952438824678053710900871109720218673618511831307578336261697460367340535856353134454601910626149563451419528928508880399541496122429320473906572435076917977044627025227091535793563805812475100966721097356033032961626399254432516285405140371818248900391437738179978666571594924384238210318696473185694820485686913626070487092351982467148807332479630148555823771705266213291021313839911156192007324581372904010251919575043227906559133848839899040680547157192305159254820868346720752989763885901404405956816739094900153798733972558735078285022753271420264270611276814798300450578263816695281439583759851008764413955602041708217366526942712684181311037503232153829736050670184016387317157330998212768074964712184698799845398502889059651747519071291562220849918910298723640714502663824379260480392526595981376304474496598393867832057917007094980949936464111474097979684677343747727123512367189621994194892787879063998888520267099578085699980645725877208444567260272138260095760344218296249705113095665402150792825008016249587588529897772902754266512279758088509048370348692460190153132724569544649597869446519312159202581152096736903712183297905300300293227964972083204480254181721925263973143176454150756696385036278566040539866073962913038264452392461106596108109232697405712539877929446026430663407268486217364821947638458035243922402182330383844426485200120526947029804779626398747926103153909955221914357900475257351666783128127934538488618487873883192842891794887550605111944440384750072747511457161231679098262662083864111003430899897252165242742691265651184162693362911460661801226570089351530914761820739336092711450985188713438594069815597861062683194679421746567482030745388192571832421231913719992416891260686336729115614900417399991466776122974580370495574825305495110439545411165333969127570475796030535328144897586127492085894293054140487883072676468796922616329398488947556439196427038881743173932983132314865338903027604277238747068863052476038966271610488827164900921150204712502915812555192006452746312596344262671674857065086538375403023345657285941010471382601296613575672420113794494637862378175982713397497490780924030258246270178636106675186243932731886105125924676471036157125299290851170430919323434702621262952029256980443367306762607436071249803025738753650495759550320606427115551907868021256149662999572553309383392362249524182719699058479129784660615186547007568207896549946372116719595570526688839378212975259135389020664401821580078767495206355500388955868309347934138753388448799581257660113312541847180636656113513394231354828080295500992900210930457659104211739812506367768785925309622099111021614428260661400312530881089202513513097856325836875339954067530132354548627395138104010200017872861336809168923371525168217445287937781880976286496603043584993206926718336253932312105708567705177915913025435379610879806525154600924947244525658218253775030072570377919888705655498297837186298240361880354373738330370314440167013373991992827400002118277198356275000124162012615210764333743936291319160220003739070055578682871942376232258972668044561527379370862504297971383841683772365369061397622042655752606534851457086697507482045496168522687776336904682291824540563981528703252818756283628408990219098286416763239174367685393221285502211706162380712101012326809232831924675068145323041954358128734017992396342813532057720440070482678541553713936758847061999483022676094622803195962120320260972617482008527704702186058532589049108457643546302339571225609466467641952297152790049668539392272354351111220196641455862444850287033003412728435423471529265065609002624948146450455289816419701780615169358163480987372011922011154793560794947721678539895811072092525090572430695986450161105256145623524668870134060963151378836475768381021894160157233835312161524165108403602241879984714909103640950535985480560929612375365477972850356003674955753944401466788289359097710080908769552538212949795146172996066073682158430061153672412540577699429543084332518212266043315904649251049797627962521401519166639248792265189475873310369674111356991552976473276067127660106209337842496512705681436825170956742588576446196098595094446866133369273147419709484264585860756154910570963586449555848515529574830528519795899212357632603634152309412697707386928262139795581237791605694941412020643046813409940176705038844446231820872561280528475745433678641421107181942410756354756741173739935306169960409931847794218988720437306710914651497071116828709365957444898006228319685398513304034882739006880630144522125182022957395890201751314568019998280467820615448599684172218228853838353889736777317106501648442088769280082210641406637177691946871940990961406912086449543935784958627805978063778335341981532434798575649940592661133208967065329685591623891844399834197336486397229148800181577115037628124039326457602326966454996363405634430495557497441808194673805521648014125980123160262128474806215777309332032578444410653325264224793164036558583387318562582692994517974360836235543410553470008069804734031586909384305350601164769728326397200262134836911606443026329970119263255930938155982275383701032226294906568501889145563052924432761166887940385711565193558363397488013532797068904259942304278328466852533353077104470915842263449702904734135866059468891323568871491429899822008466247697739276029195947751031824962952946327465771832631384587765340550722486946547801685693071246135143785394282570939408088582085996793282834796436653271573885509716973503346276767462838508376431382574924362274027889823593038895199647085374114949517720052283553652611993341775234563962078676781584788561989895632802149602048609349381920405786081407167903881063102546516560048553720512227661199155627418500742133123086139005722307487382402609895715547668993882822590066004168292295707225459195796127443932806399251371342527421829475203534082961643163315796335427778223692816969047901243737139879627873456918086996521831874745108938123284532987332575304381670023794108067255739522576768269607132316093390574669205702806762202753312286921261765180319998803350933741787002562392299597361903985033605216493294312435801589490277039083628267496897269386445745277774849051750215392194758466718950051605559036770114451815422446276210494630729610567519587883965515485903392991140143908271661587679110209531201340241082446078170957001590781324852531779543876139529032161139907440137569577229604508986783763315578115770947749453287247590549946603832225299387971686946814511293536536567751632775069127159791047510799429706491253420315638774459454311969881432960504934160098975316437576414331549889304708743296037883229969759021556260344337235567095220957172538873451174769786372314038579462615305152920925009926686131036031446188512388457364401744800283854875744747634087637898609649089382043076579597428143512278041733683830337174860449164557492281834426762645614574190280809858391252848058654154248683296506683109165351065590695660401214133483352262126770222866217815417138297528240952080854085106862767892678292801238169081327754717097193448365257808387558231262725333296474322311584760662301945986315276448709331980368719062871559964040449098967501356357708043839219911255315916712999283989874383042543655666912429500345294050549319873687035160538300052077866808784888016183878412862440277234407391839795898001327523246138028314276331461085004177725079009822113253084683589812042166896392365117271163642477847855773115163633069457078995209181895285767270246922468111495044434642174518895685473115322934336837596100272329519551894412770537183067808619383818390432792681834498668617953135386819407057545242608368951532148605407626646488534608290222502855159139029630851252464719646085871646512776139048374866181171890691934218259566986488113533461134114932844377468879950492385254397093782500622686612555749656454010673567496153944084286142324426315769666232520327534845612716163495669351079573659279684976532980326730981199099471395143631272596441565928917077746749490044892675308369020795792480379090945249303763442937802496240545212423637823416891757124193553771820212354748721004554358299993810474580771741754483029494980642723374325432520439845675157419546657942858566282925665390896431892886568157119637632786761559655643157198708300917823434068142085818834729290013135915251564762907408735810457537814786195304078599855491377772468736962817183349208894423363858544148208831740195152551496784258328218872007720522486774658168382078349117681004550881343861462694897353169153278900549720224725021865954947295855131511941861018421492684097416708758395463261510120042256963008635144425813161149125193033928977706939636676118496543570963239562636413988935506574446611034483517512008103279322270114678838257492239879004741747733959891648904942064820440331396876353011696145920841606287184993910654855246515211408699676066430248689210003545311863003904983805605165500045909551232189978666575825711878035002291072030776875944795405104281579037050543906111186231417736293075979071782900193142319465767573474127467469662054329397625918396273289424418544270836152910508034252130232584506214663451319905168147766885112928017100463524270847143083785977352741755044740865567077732371145526736732670232063100479681804905125527048408826210545679744804403093269528742247194495506230060222927106687600564237219192509585391817102245773338564511240246403926317732527418156274574818066068482616912051298888933861673747058549392761847461580603825830476789127822706580684753233058214880154497222501892210253137689780640162069739258419452039314063803296143192511528324291850444370658209610787409372209208142066708510958149085077092480127650193842405451443555953943732955192444057489500510452384065667823896551030207749652958131827861541498594829458191679718816535714121550172146435685837953759746420265816986388077791060825713456962098027967117121726403894567637209395380396895646575076485942712500052185672255018427181078794878583469308264882613803173067903325057905934602280737613982775460569817394779434527090626588986313763772816999877603085046000922090853578846939469612690342970888839983032512660494459548417809590902547042363054497625409935869124743243017812443648395539581874072523094161667857354531545214329015566633112571524899688803401036573144008908140432106534907381769619673306622373459369144057674645754369356698936280362768717599730383051580249162004656997269168983897832107226817869318675877113473355923511220072908658761766873798780179167503738440512090614931103551153891298470502178893066575237348948194906813137379777822923635137417807461279963649690358588741508607531557791586107695949654351858984777524457562036758703206387385167418093317357699108164104914565512621245503112690742344249564787982541718976461759844377793071862447878409190107154968653900866015483813724753710883678124556024057422333875012256451400430961329136586151711152263480241355234939848389551014183068729621024206162639742885431700962695588147031721219491352204010000968778218922137170726514034464306186862848889211000135704160549683533935329986763459522324322157108175662204431207525443103619548632069228097689238395502953413654720540666607226977749825716836446028124945703112147534953989862896565112691002071229090791422841839715135729194215836293150049988807437920252812177182035586250152840948812411766907795329519433466819862853650840099754838686001267210937653108958112572358426964822612063676716437694310211473647339462890333307973503196390044821703137884356223587648546780244133808898360257144460791344203305784699270618541964516459630039718870392295076735726124394055844425201100660446078594102992231056609714385516836768846471625474667833074366877563814045139591477509813662592546026914655389633022400294091920346368475121987931596308004094369325712233872851473310692806843830632685314610033844574431323781625877468910625695015468670714035602936662976853256485047673956389006553174490962181652277904507717772130350688003314776295860152583034204152206944250037690867664151368076286520372112631661845411224064281580293629386582067646979753950872559359366058109129034152002360057826055116008531684992770437515915677534995261977187063234748958592041632008518452788134041546814014014367505094766000797585005909866187345856090800816952700250443364635132075641943500195809314323555031608251284075518914110862703273352698833528117464720930147517517040567876818663901906652233438262803372657737582520808081128478097487325310060935773473507001124228978679919341307240589808135300180679759077073784363704457789838785256976655423133563142079167926474517295858487549499834717974017152542090523668811488988230004290926910003222309309979764558200842982064877371748633053882386502871365852149816527589944435561678682223068376846383265113660629624398560018860589584730889561311866777220037247120406637079436659342753791455851712054609126634036661364405496942182945438398059836485411308713816770150755758973688443339934197094521038020015722402621117987298683209575577785982529992228478211628308069302726245162582386842576213177049551501576066036592674643666371619094700292253769769457234303939616561558070183904130385367779101348187757796000157291463249346541397619499782822020598727483560816592450460258029885550764451491916809234740197157973515065478962169371593180384074365176984935442024010190004448674920412759937518410661899270349101442785006093205892946065381925798246717157344656254969835710719999528729607496598587530830908421922266807980902588958223108598532106894491147728588494369959526024396910156289831051240629085374294200814738216459547511356436422361664683466630387379728683434551602327364901514669365581669173098866891090996514093091954358322969613424892590240903072212376072114733839830194290827886806480623870430126213609796149803174833900145786743709863547852451812474291964107664329879915412293114012705932948128953969576527346359579340593159018261914895634471310180166590478134673565705723709602599775270853908442420413715205322042004678949395592807288611809144959155197461817062041377093417348490684829932180326187053562340668759502128910780698341488239957645366587637462406964883712297340436239568621995196485927137463624593924522103043434676834125664437584301141561633472856278615748675671470572864807850752687094707828961666882803751567650129150750650575569285030771916372218154439327621920432884651829754052222251570848911236248267894882657865970283590476676579638958405470707356485396585470912748668309858704614217500124805046898868302754899853836634334940937718503036853782229932068684367048253738933847493383725551386672892041346288911919333944784002031064283340397406430554511824641679614114914574056525227955434149179009205103027866376470952602570545167874625280954122681263273716106908071386263939197457392368752968579470679507114101751665673288005199865384211687138372923929212305546749515399238490134713923053700908315713062873788993001842416485079710267554091665135752304596913614520835729208550314717431618745027645531710967079111958113041890815761180818131259361461696673279294020640898302750218859215650172250454188244541137573176053883297529063137761823616543717033984943072676569011752404044593034604730109269834925797984518900883386550507974800301610355618432457603140304108732789733147351177029490253042510862595909514283391658689902540396322291631844407440555917366506105936481900678564288960481679245937517822780058043474810068560625372806167074474095280377716663812319896354896403479081400828809279799446123718249108246123147409425529040193264913230316041574142586756814431450283620909817914154859629831769738735541995351762238153828920947031042683953175806203483431555498371599313021347340780354658936881121916573315405706727124575524471819258136276119842267395930278859699624342647209796640159271428211164674665826755378813672327586720414226121167379802030804039971351981158651291029010995090319442654874877868295115624213813950113234033730539850097571236367241595999414288429785160823790732875687159815639268397171086548546838990719086899026454790652075408092262652486507842998769298813408246310039736474608332461233898657685910254631860201090471718210497091858083520224375446986346399013416314711603351716527402998122671207268355152837385380410872570841711671892351463060472614473630353977094755766713016406309413356177805530724350306951748487429445576041427149800406136136264077387248953352155233753075991616254118298109842464477615659334445759703130565562858389437719238015313885966249431456265983356048441761688318366405198381326645756759929966636891314429285583466094746052056194607255435206623589121024698244319782475409418627338738395492342146121752480385995278143798735604373605595439500923380254660498521293981918081376135305079489362553818377906081019557614668170412372129959480661873144604529422185430888723167922730398673151104184225316205489717097638594313698348676352901022864536922187290170837763884430036334861435810805644938182737222409637353970873953391266219630249437827416991211579883216716544955464931384506752312969524010898009116257535438924412771705010467311600853254239303676505494911211628162529168930419313023481587491928514577182679299310545748690616494222607889128846739729401717630827666771274299362274741563572858321404650030361797640213456530396552806003818199259929758568419093198252593020245574293396634471329135495662808469415705017820213560660353195930197342416092461138678254291591581044006911004405303345118609979675696443076682395999413997613487974653599320088686767808310584210360482129315665830568746063187538008354102235772277831243254856084223984613578804414260844554429757894922265579549782101642064343352674682245432293362351898275395250623534696655104707400115014335192762002260669033956328244154273740290902097442659376507925441182214343991081636257834676232045347655984247617141084559541148705032376975374755889099185542298682245341879240913702187853774963046975320639918821448917130301687079868088754874894009212586908700960040103542781927125357012930686603911551339232434343054081915128130478907580682677284542022975858337767130429094209139438252100434627738761299481060710284373031077441258243647292435488788479243541978587460859359937107672493062986251484406030370449358400370455835019837563694963680621670256608222005291084642445273971060278728497697659699032992546127026884988391697590747321557556984561574675012750668315885261382785214782789242597404759657626190938832237069087436123615336100237874068523873725200730728738689537913894242282797507600543285487049580233799869673491419120385344328676133913560077826097681051992153931265861627296356881180665881830283503017477111865692049870850401031824352640148992990163473385970782846601339857321447413189847124829963005955190621250195429388242344802212102891378525861943334817157615104139132824506270274922698193045918816852290328788019119061135758663124972763852912486657281230812800080255739616113137318914218822571742958113958711443595434576947688936207862342856511353217393298429619928523924436088041621431778940513366257591465178652349110475129265391332190698933497432343105026391737998768245536078243717168869109095130060289013576320185971581671198963901147648169563084692544998154357103937437607492755463019446727134743808726536618696607403785539103836161114328369009855244408563775149921352377577581231072694758017288922479348097295814231608365188187714874334409561718384866297078861709082300640632446073063042874261721893600228595994105070609755173030017683865366515423638602034879996836896834456463501376513695435741272099159763058624773264000919141237325505630450805693116003411602859816313790618675003433243278149875855832294795662009250006428255867061659500962226518792784547798010804596326914734930387941353503020402368220441850735442288756030126133029175454362783023634490138754679224947285139006074043278832207566058514657133132562686662249497019546257408804702115801194902260490509812468964408866129134306795976484926158376474072591037567449340979830923748647482430734789412311217510566750174269298598701851176477365867526491359020913282175106869004230538311582173299519195432157438192284040549941463621850909130573316394440777809280240286046224052036944427305895476046349692553354924852213605496164408681672008543564093646009283521215511268192630834173836624645973582505840888996941357111921395877582711059491415301913288419546389081253479743243103267610967818174780524549922848276913197150889785629364592121289557316198392280504911837675997747077426016463065570893212561442212028240422637685554079204800539202894292492861190158465589969515887848233524397536643113495424130560228771182764302115687263402525211687022328310689995187216168178854088975240534833024648724547771153954532012088943594943216371451414482533832164199323415264258570245860038955477430222151429221934464418898024774829525848094615233083984930257890104729253820589969516684488783476576801110105683824943843377968788443190134845499785432922871872089776837905072192841431200372203858722176907587748544665302175115598646277180965328901543100699590852793221643099194961837699381611811047010659372003950326697384421063046710742597379643668015389658697015469648811526802779640743244459602909258956618494998372392784104077125105814170766651212177228513113392338629925359008256260425896855927051190085334023482703276160113687308683561793757085055552958107861508030882776193398729940303403849065327059464666350280265994676654231959768692759617861692939293528253605103090884872251022323728102609859561264558689823434555148126014417206792755413570939393098494969168518637961417142278177512966126416208412552504220976264415185310127775428843565955027565397540972177391826648014682922550913094724298028215535092582055258087548177475151773567646126320951441306322820061758740761987729207586368155426371740966481490510920018950724528174853973844590528929887968470773238769870858268287025041000840725040423293858255909516464733572709192376092171408327921466399197336903093225993913344945843191314700692126729288293789317258470846118541246620600335625769346705958928659357688363620257689237585514712217296209059066177868951435406701785274412878830343361344507431396439714315811862581056201033737013592811561203728642383815983724170381455453363296943760872886975470856484448870714955699357817778057916203604338724820266445037805426591240479540925543723333067722063818466871898835095509803156411908457883359995983035664899399352599602075117931631817447320498883740621353904182513840014607444849468480345516388471510897332402993933821244694566088930637588492088719197989661726378400777117388532412197646567358720600238193181406307240413788390300000258060224504535980221727925847407567537029739374131100659329881952799219935413275613970725493147415082531489784920816212444622373389321960088379814987579693082180598940193704415420580881450250574986885152691337421963280916463604179282982247013805213158553021198124933287008039159583754594828083328984500883766300487753255156988394062281452817605344623806722284940318612429891098870315261913001500254847176071431999187703509520855745681328384575780913723216587493604074007180402014527495420139700359560421279268939307141233055221300688091413541167891322764266834842732727937653200703965149877833173857452076848773609056222089835116424395825808785389107503458471673441119772964603923016394316320706233718757593276469025729060041619408541467483277304038584569539926689253583277093803022847324786656542982738181113082621457334671760335954694463575464140744292254137627701176576416735483853421294956368503637665916815530505660926076342453795939101893981370300149480633796831451913584070030802555737485560651906686205918437373259557957585414621659814076177070312020709520465836542450175467033855808585596813482319278971113206868362980707345206766189231782185400927862225115323440704600520490172400401261689214192359826800589761019690387288433824258888463672289412560534585292068229067164139601305804684615322065807849014963705916652713898436299418529604312841687834716975047820174490313754938126302812845266489952896110445958068412732527701796057799052976284449927444121333344190054429255317356430665234874176986378040367730258140712659016650044870251085747766910205454470482790092614293293644496774676521505780309714783436152262131821495702092833157847313603652461144843002814472458299081019999027438301471064529734434931380342318816446052175337913614227553379558793283288314331513363561792955084147777018165879509939766858558535968426313665927584234677294965031845170824941227183730246944111035860197474799452936849462715987961537125700253096356731980459070398723124495154757052499461968500810132033503045355917281449679341798677043932472839951142159419093242774889021800169557734894962036724105707661991412476528774750992849213258009654452291752444895338040034582535557227075756240884800376516413371295199987303167000032911990653305151863335798811156369730724190577813436105465523092496254424281977584560741675172957244759435798117397819975821969150595878226694117819579130172477237992547418376144020745473017623454752792786765236268109340634663326826992258249028280746922486400403045281510324512823934467291255136153198541995051521496334940294955271842778322876702370789064753338937387769789210413477109460663477039057672151966771594907192367879178457149156395549742690192659575538071011551111670225442802524823240449699439393679729817992482726406741846749205967760563729848976009421204264697206703794836426370287229630528733317646411852866382440621699230338632832362143457673124745877425995592905983078901337978765417625105773525259244957798756364311719161701647571925652202672384104528886153634218427550012164368031298812227682854209175428306374211714471940325957348919029140775177938342628766709302675840510990135433765209980034125829513723143930249354130814120362870809789275066403720794843313798483461033977105648536190572854867556643641702476820446501526798653624423394980349692678772086558347507918829503900565828156470370956263734147568423789323693383329810987592050130011500148748368926068799927187365946466856454252172256120734354267948537830953865515788041890023130787672734812528013911794227366431505061984926393765335758586537678388908340127376447665172218384172300616109491935071403694836298312997975036806796726695815406827987868898786113058197512399833596651039882172127902569678198669237208260243351299729394326913881020623564532451409409431579871707353160447708840182791940938764640995335069774015311512580625355941841310108048054876511778928745316497880009715576142198217177693575201378949693394408192980585947072904706405192838381507012244502370205648634853155210190662054807484282542078855392565802752919177339476678497040734970510318024817651931476820431887028404757366631877588118491804518064893431261967963465173256591313648602992196409030629577325063203913950720842003830915107265629160546769336227476515429048974444836508214893106296254419279822103988766515889676201581208506744138592371381811512841427110105603578850085532616307166498535945346742894760325647697149446752745148828036377040450349745927008650347354488958808039349296649216289756314329915228749042963549388044946377588421701425582449263488686537029665855510128828157385319689575569100916299210558640193105426644693484493726438852018659421178306214871078752793582166328821842635813089866106901134339894555610882502392301058741096965127404363808074880122197717913227120154809604310300877620735547819533748343703281788139730486332769875368307736615390939805249305296161281897339340059845812941126079877652688417525373010785579682110759506008135306084753469217480271178797771809890434292831809183405400750453258303117989553974721231311611906812008827607788763354662026024295003623352718257104230315040683612433909830575121218460941314525114619742105977415220863079950945269517633558714106413935662231794663497758455255105831080333262342269384303748384147876218754107575934634278988856100295209926546097959208882538603746369213430897266739593601707564776094705697277825531420706146072239251184246509105682180821911021661248788864355886659826889114061766768779189397156961484488666443215002031918305568305575768791834725191301013648970834845913655490141744265984266892531644828654448410350343115408392295192032499140482011012857968121218485475963329439658133198200639260887575668150745057493563215558090715227820470886657561633214190907698549106517276890338126004745276339199078707330752635356374655522737141854761722512295558941981271425666709535781920082217553173162638279111942172447178728246353888423401448258258912055491933022637127894778705733649227613594762096420191055423150869035550215801772086846413186655779404698029689689472977940217489216457464921768761606447160646429470598219534227913629178843203198444897611010252086455481986032682807350107052018231883413375178781801795034110304885983754886973672794056344597116678577881916991579695134610835025910917845232984352783745981738505616288597830238333187828960256962268841907828047771791092666841868491140079022329194017364818853868488990474452988156589092488296745613482396340974708837434353764710236716456116788269837269827803141504400660285904824319837607256930830583996176806612161331388658517441746090426695928394860212387842329935069885553219764422696492369009088444813073800133295942288950862048814802901706080811271744845241530701265321953681759479677123395884437646535644340227600374600444751497162815775393449980318418492799309430456002965347761622601029962595225890875876928376323664232035130186924062098686793327134661331253817998684576196779398766147150308954325926519776707609150630199921094627804032103178758146457578769107234947242412111134965775355316503658971941653808224562017674567703801059518523013383407513767061781429582487422651888073028762192226290368686964112624143866000719556291343095538871296775558511594428692994197425071634824109221796815358076893221510426306105918195614001731982166163715890215758461322202685173339175675660222102095623753281124607502414898400184202261512323676815206329507606154315111907244451162378344995691935836118129390462528824432312840387310484014049564300153254382383392841211063296561393160384154728401636012053576312196606001436415178701158273095457100392203410376053577702729286050185742856937784127342191430434074115643481765374881335888544923811619429655105030028792559107783811804881937973406613638546545169469992674106501757665605052884811892261661421248486768099196569535594694577432960562651827176213466657170266398194831145417614394201492968608830157949003749333467304546597404005407051982915412368709298587629372001655792426556294757268119641007683260536896855410022692350332619304767962076014151858526399856090467287691014134600416392883031460370111735299030023142863501674291452022802215197704544761351932432841686617157116367899314943573606640439402309094203710620861446989784593937489507915842224772046410104578464860722878644808671552824489715681590699681264897400765840029736741346187260231453791280330941947913256838724240887185046012983782883799586388545548459450346751474590863518603087193508060247245102104617555702968100306154112367864639767587530953991594759006729299150255767735665147853853386151253856980510213185514760557663933023142221313858846279437221772537448676639222558132031507519112343028649849589641527424189383829260023681650347814406300727533942725805784649107286871331045314523402141900925386706467388637950058513210501015492065739619202091211867420433157615796684165863572006849479378603351686119959564497553972347641486049954571694084095201287408841352879191878949311038372632787521135924809892921852096568188579146490030106311424877353659206482468873495937263392985597387188636660152891510781430656534198132235229463795047991954521123788618555246303012757318033123765815543812593748568418151775991136021446661002671218077509879994997880321486975265214767592808407953358468740016712342144941212399932630538440792461864765215956907281673830421150091638736616214257817430655874194411934000087859451326772491625657622407820700412474753348645107463393639724178105058952372943960189487361971876658844003099638477840628324518875001237840659159888522720251117679978088764670089231269213828477893530799090287739933378643037195960793917571587003491678820530823301615130379529285728243174707391783338729203967624738208877592692803060959210453879965673865004057033657759695176602682530270128722421423397316785930186379046536702502041124154355066175855399096397742563507125078906785271645585609428216950479864249113541182367719938669813077649471448479805977555046451293198015690021553398166052405727101050013041599508000329130196659714385133040310704737810751431431404964286471126604264460884616061954393461764639927735943984942789830721668683516660707951559749439063266246993937883842287120318650344937461561812624476690082383319114303148076281930245777865742442012857473687851520083025927230444140008486005904357052986450289333914787686483898538123319660094727377589842618040301697912331199435271531186058118913170001654191820031396844097999642079954098866519931634133486182931939327077396809491201611149033902135203373921922878724220161597775663884905053354537255530410504378819479683692263952496894115856781157294652895932599319341950203267415242661984083650666255720825966125190414160345337043824962242570857895789023685691455533562469231433515677540545523931640773453950779532864390416346831690849365491414740108943006838882735860201693661974175959600619423727208102820095076501398190610167076127808462437498394129825497982274152735093341676997614321234247863237371120029247608659022382601727686624397032918017996985547903656386650514288674185740287770562576133576027350181558247215966820896622648008177152941642498907828620360113360893007224844736033732257635180960858458397809771719420118283698979264902318853845667659559881662613157864017784164163868343712069427539189181900915223533048637836164244004855658231773550822100233606065760973050960864948956132232939831754381414389336439610829574993301654611932022070438980812244992016580555643373166606042473195446433775690399123707608720942899557040616807370350976222227480492118768595928355272277268387549115628126419276095013677654709228735331109744049883467831983717095824599261307850437774243031659472369550715283438675932560448544599613691848941693211781960228133354644772479267111657686728002395969553032262202230127488121448936987800070256098585751701472677071403111392828670585313113971843523883011609131472398210422782704809707558429646356463389280940858324701643549813650971446189197100808888857115709052337833764205640474708921188835513937368346333224049530753994594600262608418162852472832520203558527700130949735910875878871582141988047454498623387658758640336707020655740941352444654886703244491871209519743792549730376749634115257107542626996756750681555838363164053665252997683585183193992741281319856001059004338481273447106505489828790105496312796395458584116713235075707450625954018114224327957198270103638482187064348829486752723419730364826635969886572196052786560299012283874567286554770156737870097326399637215945846960347444181370290633690206531615653838088485189134895315920674523357942668012554663884542977535323514071634163875244234805952748107730447297168643404051995546109838822336003594224111856411209936900339269707522541581214679825618506444465571758347474647201246324903023927277679080424897283224835539483198264317137809309585132783143107394750462720056002884283784177510434529735467799974021168567468150812951257720817593254020875627494770530900115285496244206897961193243925752355359798964258700433226785787495861136601536717849979230392190258825867122851187081862316891459326169599790116153109795601394984187622267979105838502272207983627923886195415688664420656621501516463616893903207961414034931582300631148230874205104550710281484503766280943659107582250739768639637816405932389806579785885542375584314349585216859625534661522136633016205466927787127599856176119042466736347692535843167026415243229537665110061729962030508512913596015786196638241547880437479911110306763642573381351583770565315318307636605951617656585092744763779849823658324240280609999436612310060322464504102550601453135847689767669657362801717720227114680666040175093191315737317241577441141373700378438194210176472107457044125151896199308708185944548720383965500602725362202004213297642482756545108430221125831870043793005654011984727702691302500163260393996531157062835859788634913971794379680239086204044476584977280224265952170656188185637462308411921355327911349848274223132939894476907817011829914666519143879616663692647825632474162742261312478829011716353523909673594230682374299035561734727178824979327633507167406368788152604390313376788995686110872509861617847445927989650817099852640055613693185419073805704931681643501567224772515172330198816807538279585058205265169313711430912520486646933536845656224431929079187929750761083557028904848422196747921613777944052114039706242630389548052274684547389868091986589875955079569896782284067916805075291008999463647327643098834339985467120437275717687049994417498901454668378971016978905389095245348738443789637587556596993144463741275072452964776922841091026730620836474204346202122744421669626359495417337073004722195944818383489772224439138206081578804558008319259564005921574237861082140580734359686499292119017804104689758202535338607030787211651049976823719416523112805163065251162994363505185989755912176515595403523143183391051708450376041843985158601746628723104011926143204021649706842887282664804935016325020835057132842444941620580036968623488852867878615882903975892287346367044209870617277528404939033062604215209201230977367235017633989489856464059674063603672315484904573596949452300782763791577835405953572914969594644232663586200782091904675454767484415947732689636614154285339179785061260121941256987256505076619327730194648998179161023296790201910425117194242285016754372320634713593814856426142374406427895657880381264869409643149665789135721314259011995323657532016129487958248709488626560586437764491315591571283608292026300202565751629696748868253376934152861508305439205165060920583926996400507296421594166359572670306414927442420278396367121860356106402972204751054399114367628249106297720246150904660859333969934814050784822250137152556638145529836509211390768489152703862300130731077162546236961413677643270524351010708312707637829597971421284480656774731692013434289310001772657340222325644610866111470388036548046882285832363052305398006722296792467697522532522459522249754947237715963060612127491755299027390579014266782603703037952872773082441958880673241863219234008699400940891030097104258206268929408540004126621840372314249744783288109470285370695069137222124762657159185483158316906528376926301687776108512881819471643989099385440827642510432060191944113167883580669142742794718115554919599905700982845844993996005835386526164779441609995117243620600063365710095551930880962859586129557197934676374723248748228888936475701520865738257151444189331495181882007396435864774231892225223341108601677649351557919310190120606168120027552102136910362913377641495276932521251809960845970390389743061651515280788088611841472294079034195720512563979452225116422438777399656234671240906735266130597167430844893787824644748641870541648612867685787511070242573696763328375626867222834536519074888604641394461590629945054947847956957831605892327069340634091092806109827493404104813188421654368971566622595073468898025032197110873765661598118934665195306065888180892762494741352225036125596537739776485226729048451582276476883805855866829879560061232757837134553916113831466251690697692856103371131820252216855767736632692419285369061598971833790948560929888580218053394835979490123666604240233400874357415706256600994499198128555765215702974206675515608883534464030174262547226367707984282427722656211989921004869829326680299379246526411528494911212452696384916580052783468804463031564835168785684719521355729657351494907315066749987923185471646752638019324244111561392360124869121592330779465464623659339563908267054898599319525367896725881063629874791386111282350696382473314749148616689998384371482945881378848318075865338364742365326042825906670014642009847766551027193083019673363897380505411702316562965322697535613180340184402914902180849699853754942591309549107048897331712618369703164810925480502756382547690064917741470562699910551144844903156283027850654205894159144608699553321083760264923697925957827427379211676845180249839944368797413641833373338013074887499657896717411283768473515945085888257642995147747158242817524886131074780502415789780053257888495928764637836485295796052872562771172813761959985003246702057061339864176337972959533949416244225906371891258898449205181032889846324860265489927602518617435926585630970727501627992302111195868660957575842728884999957146088249054788175857885012494805055426215928621625861839975517252797284944916477347512688375910873823021709162747278339974388143685552982217117560853451594465125780302244679888301708357562169586684308688328664314931076072035363406271558695435958380479174674877506565348420721165077519988534116221476998930176355632701074254245217241141424835184539936954237627388874225853969090481751831197685253223956042670326110425908237269510898943619840161870196674996455397498789143803567514446997244287710572550245710301678020228311077259496715265607194024225536853742124928062471329200432904056314003856960522063950367896255510858151811559515822242290225419988429231783498907956626742250705893221232831488619113147465558101224915898381584844213193911908571602194767376784696035021589663149849143746593549397117727390029619443236411023078224575079413803571479568644707558420648249669202713444626161257600049744951304815886363129702794853928104653690826691754983653686896416223135138371632495389729548984850100152739244699272766912832614873276919877802766745097860671968876270941846422441979315119885155160883518602783542987375255915455362815023364254151429349623158430428380530728044513229375682104247995748352013715244242834745552737999772427606075642466071676203746268212589891897609421154429447821540014485986884810399972835703777702473916949720772974307417303514080411311562398447292311366411972490713388100566018712854170340667818977644096453583147625718623480187756796254922657817722935872786864521630880173416163015078090932509821475849280588765296544156153719704148674508615624873770109266221785664338027008917656406734018805226809594563738912258383425948799457413162826072335712384347236923480856087075901530694566364113655267851300915737255776886399343180135694044583789443725407896740888862050616750304791197156295320309681594972178653887473267984715107525252957524307143147125894008715271799667630816010222971266317718458026292600788962232579523755406377837720993991203952312966507905842260988326986689650987466296461236759274475438410923802614545902044714246248881385756376604319767847636360080165372013404537195580780127254467643930644186966797435252656058769768540364839384372142035950662319395908376815630260889595669385283390369899130745870641031515361868776864247234323599834705973099549727165230753490224127255045042986389459419641126783321801473474214018740968934082464064147528515964492467158181264477511223902538744222770984775560643420130890765888914109378461599169947091466185704790485382482125016128806168631146204235842353020328890788683699358524509783588240156815391357235185464006263912575631589532251111594178390185313768320764313481034661115123541481447809887491344911540849354742197870482698647216383866384381785303937498019961915021974698423050695819890841280089965410362834996101340698702177871193183665916991448160663899245168177530047268492487844583323716605657754967445892555362124814217671046701696008489829758363944078048909761563170895080508064984346759998553044099674340913197919144876695811813102889721372943112938859271529908145557990604559017047895636922783914076665754623710176026303109172256269903221901640763547437244961379082250701067280078903551918786095637343035708484554616575714304420986111817746463474396720721872139228404952459723050560660684090722181382215645590246154367056027043753307774151939508254749494995777729846500257157264657135056594528076315477835961462183580452910252261941466918599224405911572961978993373618794012456250086325317479688327031652813711584107466860158914966182764716810090904797350776077642958311771532972211717643805969799084990528056832842551066504832376117640618995959811836488590064622193687087558102835829642096307146155963035398537879357520767912231148599882176427255049065230890774469436035614968918602139728265897114133378230903280256560181176232878165282501603565013224035661745854826684596889143919891501158849699847557419081964094848933593190053515823835874840266704950511810227986718387060263532315870935529993651781890093595977661963040270530519745820951710001082948108874148448941848308447760265817301662183551308258859620378654037137588121058301493268670174629694916882874996640357334011162022470918014438012818702491389775792013924790857034587380065968412457408981331075495393878764834763258928373351462283342408872173854735156238274763781008416515545590986621700509451325945074796175367412284263920105808920016947421985362124502697393045754985178996190354513289022778891022323664681695642597758737887381265448510556824144992662561315163247403284556212311693971165738629395493136895629063611392626036035887268199110503535765362192469745804394046912721840207883901300846660422498131432150799338310663270611833375762381869523549076698533821139686340412717963414367912358848455628201867470739686305206569408755733494678111083803699260892922780757531329457560574432873856985383743175590014164813269548320069287409627300769187154387965268980930453479437424196249045090663124992483738717477343047115647081569201967649937384118046370564058663353413324198687217397812965362576823700670700796375641799912904591513187860588910796804463711846916009916436843269304386798190889313229007279890366182404086088305843677458428313024818746591768065252133697886745327860060106059396680575807399031765106641599225798424110730686477153236241055392773036199438246236613530860152728901301309881563020664485044097184231681998917570272670281208833708053017680238219048840446350710687027736668922668032479181254001816393075803215825252732088062688639773613397114734326773802250843360412353001537394262937424819803861723760585574772653273285683915561119203580278732576486028862425904355514433148096303758236053548911450047003522825534705788196195891016176330989725953387490038082263005451401461760096112738517754018029766590919199874269539583960302266156918912068735874108194876243200384691523424256925851064420052795045404383917630116603941940589203088828653449549273619492467807392635275441068107969756139642582444763455617010111514292278333342146687029942517200675553371334499263362397336555279406784265941261385856821605173050765015085127519890345117530641858213755265111038459543424353234324112687093327256139178198032950816607238585084097285915598210780419728796435389463003505154023222023665052045740478512239712240398434497210212575834501088629680791507863228384967206601292075995513524940818189614155245841947520021638817323644686396906790029015540591453788067865439817587383222460192624165148174634304552847070498654692644193547464746419708857239452666735330668495427161854068127107703529427705498304574653676891952276334341928991324187090490115254867472415185079452996631842390029638992210088027743675908357183215703798850180075698669440828168177491304769266461513545063565351668142965017480465908567142296579368995279438296092285180259815516461615261412822012827448632691136169785414261031214919486844154554571523025906580301892148274470873832008656351388861972247102441168702573091900019766365730288406224883587036488310489186194864818882338755076875145232145960944044456460428853219112084156379355633318919456255827485676272168058963468782929581761318444535713524685431251019862413913676680868844987329145712121728861843222389035553662282524260115555253854344930136895771072287528594820509514372154457181105620724625394457162578522319690873406669885691866766892666089982619648895434361000923273677425857055814939069463711550237381429901963803897883446213805091123336262833705005912005419818654607515437152292550800521859413144269022576591827828329207541691684972202156285062284378732370779985024356941977515596577245883420622948490814645048675871575002858315577498096542365301107019400595382347929652621308859238833358271550077772870778757115911608681730918934522018322892395717730970390183845165226492923672034420013533248175913320413853855597444880030452259195721817797445536280581725340972533598141787582725924856363571656240128417682588779248917596399036488809366016102352424517135877273117060214212011147895333769734009970358726560576344312353812463902110997571518957728993269898616156259387953473886560345066825682798878653872913971391848807046446072360588801681213001350771127202290066314575089855884439512541428446331779711484141893664776958392167668546536080851736441157688109809752105323976453766804656211097438872922314830359669426132454640724348975667152386719655095848353008456986795764982696377531402760579731559975074095859715904568464760081750975237898620229970890751968156382505598779888692683473637248049358127051749251642623153073410071601799980944408155229695796233781241707935084098480000291028191379194540454972683205217502523172466046311397222855380628268327939643735940111919540697713484972078210944529744758449297191311490726117766811821577788455121428790199452548487729023184149003090911529235842486653607139632925147140199600675203414810695343324755820283044723091154761405387867666796618185490742664141639135064567703712275194896494626726752136633137248729822060643206173054216041223577008911614434646392356619273337567188450751682911437288484190112731918531600732651159190453182811941792752322886378510527241396551608027975091646622418284063512070769452264505940563048029968266805595228430097400833004481354261164653493688782248013019418389435323568641922325754092670210742633085288125544430584224991256795702302410700799912233546042535374213616016481624564291039034749253585466242667714661587394772256748754163568491066034592743933274359714045041572781935273745494422660692228774425330113004948701616609676221890832621941515649767920778020421954835381872239879252630680497446541939420057109263487686018936131207167434027400892268293930546131935146382033498531547749292011663483727038303056307503343899568066216667425280509348775727620411316217332845476001674814696511057041439422100732861550326499140090688079526262097811195858678473803500513708431330308209240502536335543820638277241959464097448407398213949622406753838825367837885135137021865833560391072008769163208341144464160360457189867339700633683227125984053960431878279269981248615735058557294471950803740535961762669469801107376312028000076084854145796174037129015522293010714429337477895467927617440493762399161021187280571939937816521098893278597093749342596866048151974068775958470287568669529934479510960942167951262365604888891825816215061925656531175763650098897462565013434556979391109517915283355361283124343437088082185427459990141703972797028972845864128543872182574122348043272974183841546273228085050379058051768662947019852945092476768905795425840610515326185101038404377266820061721715644833789005610471201805109025986850033609106296418915585495975745273967027024050165983777358007724538329242184611217294612967607045664988125422109700159694377459975017548451648596678546260677274121967930183972181367490453153427727941556855302137209554115203161407519458456868705215809691430194642330792211117084704869001918853251485830230812527271750194918195524552650919279662910314179872791147087902487501637531277914671616227980113782860061525758322561303323307545764195688807397247257848935091187415416965679509991045837240843265955600263551694445961394169430728138350770425934775270459051475429586888202126364184213459505572452325430689175511994796257070318769618261079655159790251652651543013091464094397933872865631939012862012213702226154369428181020406779546495024916943846034672813304317160027621672091944919413576981092412503173858448932083360337060032118228861442351300052417306162878876842457061148070452436310103079522191661991651292068166002605305403989362612087867271479664751159629852060458226246793404007631606525134315894047524752324792928874067997884344047022321028043520318653355058574173071748376289431574730654358667312275748308707056282130235040326850524294559691865855550127621986184303917059144304852863443183309468884585057489229836704878551676810854981055431156343737314250071226865685519588687564777649097711252728988132385524539715097064438404033520206815415511074532615192735886954734006913434967468965414313095424126857501980763993197259531148806510585841086554340555729778846621166437757036286628516578134196321694336819941659205067968791298353499900884878068709756268348319336641492958361647761751923683468179495546456280323563840722414254134317947993906720863499821345001618517867537419446411270048168560996350010147275854178742800729182600644141835877832132605706620507139796816122464606970241069231567114060247269590389969094133057151290507594647825453238418601050992603956011441877195139756079415632184072679977326034419625141436910021656264154255132749080094133334138679830785352687700633489936794776060823010927600319754718643486014781020013817641367984107295368519052985527212791509612316740387361940635973133073965511358717063135147495221544595866142754768491051280336850819283650804276669371142748876299005402016651372681302235060385275896466080820000774268081827801792327127083114717462298999740735730608140836495316829268546127444645593892620222119578915911966126370914241531084542417118996833504574586666971828257304201455936392392821177076274526647873746597899496082769237644579025644132688092592490566867981304325257272149031606431980969923818497582911167751876526615372832935902983743255680487322658061229381226974886697121312414347208128124463104305050651378616072199667955842410717083194370616940141716501427435013726014661926220735323402210836476743408051037436456716504075282406796242766382403211784010916722871954716932139319650210018073384530412321094324634489835093760216040898975154929399089807111085590942748113468657642645704493836745787640608527040951917116990572698497765027610637181008511953788099826175574256465540946412493038330519362731589451601886296243390112130408146678389412696118936488080722497440478056142267180334352455526896378619421524986524296639966632740695193908965578816803467106346061064087851535871676762338721517987765600138812039414969187238834560316731761371998594221883554553140687010232301322970035418791515736549919743141302780817934020622114239714058503743841476563554984135132245502297947587608975733048519828987198443650332781030701144810107850775799638781335420352168953900903855560436822612016885228769288819368784374674328261106620246328338217928708458059592519629903309873863099376721281933879835753919792888931971665983335189610412022109081997574163065443860069822261518396356568385088770548330123795753840386396520970677011338265754384369308377903274468038293834354665292156855711258557232021096829327799742792910408634359789054529148983555118344075214281995591636032984107305467722005977222301283211170448177953061134387718820578063980179310690834193545148303879799005924440911977725981810353333958692092660221564546487129811030335015828085424285075824901554836826095158387218973690524172391998010997024755646418247468484124496194353110878711083765902798730896509982794883862509198814857217760896570686343536729848550988088253614894380997255264199775084794495887400657447116122888104592564167500935588905489436803510779883870312367116364341899491818368268784861289741347914595648310337853421006399289047191338195763452523039221519994720726344633077132503575289332176397626607915685845990103206912298295988844487963161976497341712117319207139216699561670659516430251866439182145537113273168225695236983127689469827148840119225164039385025280938554607986680668425793730612167442268707193799235344005665974101654705798161074723075964523572316179851044886823798252753794525576915685876903089464044550986685347487211054328630912668594390276591906170074167093332076369718401567169325573145663222476995662992078008547276151236373883152080450510144424347251342855450634775393226392398289394295387913454998774629291688681874217204631151762368944821755162744329063489660075329966505887451089733913064162811561963429010289699080043432635346938535340589388049891181605301089147996509334176717014222788890923533525424147973958225032762879803212298463432060443856467387552738207157906328491104165892550410223556672299803869759123546871981162005582012190072009533427194919145410382767550100977046787531284044332931411335845043896103657520616274749825121331504832226813915662410172127117899031339958770188654201094886610238557170060216733522569076597721167274079977211172975236271766970803584020283590378987746255400549106699788849803464040255750779130087895922935072272841215349174208835092629222230870002367028765897711636120609797523141808659521269763327158734749139387737133514207727181805710467387346686235112189683113768448014049672431830003635597709906811498600095069270192378884667382199985297534863460880384120442100234793800758483170780996165665187924749752272303069037258187036575987413695500310754010361817400009387052467351577637522080127907062668905031452344932797420324475942034514130823959694326538335003332536256064220791967249903352824657300766354593874469004988400657733888367838004984408226292387243169184313145114609093322156967105204990340256341075815516903073097135397306088755614327294545900237574402987702629422912563638513465519321299509684009592178612008560864037004131231217735422137923428854472770641660004407474035456642503480212337730728803126242627845104831176351762649774678582207246668333359444107878774570994284450018206764267525269925980006604171388863724455877935623669816681643697029365857147456965782624066133005208094287900963220946664700683918470570247103225168177634860187963603577962711524632338495393527872665611245736491157548348169967955162654108282887693370676822975962960991626099679216757370059432928693940439409758567540180994437208894053877262823053873352505521070889333553502593796850489987616846809819415188161503865258870525453562989296055950746169067148640801187263589677891176332039475325232686705502032189319824526702850646971384449794524774586230328585858794574895560519839705423646739955132884982017385055312022605464365096759768735344782747994968956855338862686209674803913920096541223373008653122396593841268929583055166855192548326259196118857533779397225359600834974856655127914913395367566886602395636826712108756116206190546512833305657607387045860972365255000659076263696538277106300746155881154722249295973366700472041446536115005559942426616067846194426292079286334579690928538553886452428860651682055458075695305738978416608187746490339667402079869395978898894303119975976915435760541661604887750860646583888108483034959391674197940489732866388013534301286421622389358699393455529968326115570078234351076837091534715984912687784983855022892533472551980639144390485535089944288711539712803429599949904694012337466347113725014142296584086489150711771185825816060856988048711568626011019898047654876809595123094184574760329018803411080050951343536009683140243953591738506184318472763949016864260549550755330558418083663529536506229836640411067600548839401438544359576239090942976702344236002521510396994094612555475456337472412649245235096598107307569635435908732759852943654077214443015002703505531036467243042470694974380272354286496800981206773884186306426478598524587097709381699692436921721913029250075466363979227342705011682208754880888078646139482222903062465965913904479973519049465671100013380943071367521481312265373187755314553668691627206687912800029828644531103136416732342967137478895518935074285601253762667301670273471042142813079296749980959950313156463807490384147924810899224312297553390519965256849226773692763991692628246223055377337600762352146792501669093407349970245594738432081555894720236840760941353373357159903075108787699603891280243471046158170042852149880699890595638102643452108741323710223824288439943443699500609361656610886860194750262045478647601929008910558327458195057368152283683189124253996945513828210098005397246518705240411348688027118040461910229378965323866235230527547008830535069384986064606673488857727744527335147464737332674180536493048741949440121195823105563950707239974989522630686117937938537218272162694454236175432609143702795732535971569792587889587081298932560492558763587920166474585108039566777475250506252532465455464799494908994485667615490745193633172977888715796533822680039791766500925786234728644954491323302826927316880400173618098727163742013646770990078069392200487200135151651167272003514204114644030838342806697641883212998935853421754207391429819323203897214276210761150328923602150170071880573978731106227064645387292199982074188379078975913469162221240469100909610768648453029507138955781653877771353846887356712234404744179032253234280260941653615154272830863935947435094214168109031044153751068025136734434119608177138095037725468124783432451015817935147263875533813188107553642090837609500290988976440293705184408508849056555806925979286190231262981682934083786027158750234929305476071188896440105804881028411499854575563257070803443599497635626857078114507169042173903857133315387855187576580320040025790036660006429948440346019006256812316982763027783777290088418844290477160539415004320047916305994221203271067405824235643065375843737639639223575372197384049139163581348761128668937747287672474705247617935360592896804265523709472240258590494986504754801482330917399380930062986830454067467985592523285450393459614147249776571478779366581068779123968834140210890831327081165649121820818360518374213756606480922415783258641241918641083638491036071692694638419243966883695505155663587814633280892910103392658301824110906828860762159919694992276581182619792579772881150338197810510017313149494824239397694967921744134866081855923129569172630828466298967926154332465732666572418208335892396160460564272312582196242259576489991124965405184509495888541398340503110865455699575641116950393643294944531213851288699337853521955068673096260421194608089080724869933148552176261751064568274901158385464073571896522509451637997444169718607473530829774609860625807648510515463528471730216136526149318069399613259112732504242273453673213017109764729847559928493145976456930912975387277265926699657452711601005209448030911703199034385815706518159966650420802987990329504646715703544712690257216318211290921379134669636261836930605570364618857599713224264274113105242560529003424574485052439009558194898938834661454445432686753877809153057898727617602247738746431106899503071647667522531080817368751735458410616622949429425801145720829387726779763666684615266572264037715754958412193444900128185867657604012894957481167621739403737669422317658838602310085013458766163147399100017027777304910209689776255137310774345272983817841075181138849749510238075322357409114344239977333584324934204193249686354669886060917289399852387719437383618937396853459232863056413172390850026683317283650186200940580121666438536333486096204178896548051658895516458746857596612548478466365589641756633713213488961577954434205181429592328858610349628431941611139574049280436105997898966634970055958083216601031019214276280512251310914752673934401683428415350248727240490185224974042370052990023964483832221229654605720836774112757588879511459129559609100471529654605768690498698441025879341193158938793079691560392716254368773407886477428019344308048347436619979426983159485218628237991862232303148579297560358600530758449162014640797956434263271752356735368328741532493152995648200432119249396339812186675745430313132444429885628158516911743547023663514008700863775214836068184076864747517001943966432705944757797313043929823313941157402138428900796452932701820223825225608288210167989787570943204116998404114648476563069301364241965696585631401077052641414944839981324929678000264719592236677606763032297242235713582220211181926221498506422181639082876853624185946715173753896916800335791175340097120566482486451436402840490626794258560816165016657552387226097826297202527233336483558979864872139367569355682540728125023989712915158165591562785785410162970939973607838431744520935361510480278294066977448663376776556790130360560545022715305763186413172909783090736452074479165153621601732293285449122801229691483423587335433747199376459813513381516220805222655617743620416172995723409955878615569961443196657851399271450769668365504514187269058815570852975902950680848483342506083848139348070398250835146465859192298277174154104996342416768906512990056133917346811658965744596195215526919063866477472801104252591654522549715039084712974491154187535400328155512295973099002176039624969764156692900758878597749257768540956804103398336122720462230154508394701589343472646848199328765027809708278272846141076454115835384298825344836706744772631657797090311171087509076431719563453518094738156804555713989552822690632969783674958961658526753411448075175466567851063666688240938310246996441219945019355899148758034913010276108255943246005539678910739506405009417736594409209357257230706549134343711647393601150463881274416221115782086172096421124562326510466772747158089322399952089414852329360924884617158031146134226031737978661985676610627213644451492992983318749084246791520426143791262866431092601074266514476062249048829167461259023652403517622814689984218754012494978118215904093041151910997255325599718191611235044637505163429961980298843024281629589930520127825763201478351702566239098358894035462628655769164472373999385630142457388112965586910034018433484779875706584576186016477086743188533664193151592143970616298013117335312551321846314269940121130783967570956255747036734811679314702455204841121285351674932867164721442196507789832847922824038403280450039477523403431814044202464446781657957726360495176490281683340389139164341206376193763749873434604047623364585884636156089697462961954381563628918639815449477720160449815038914720446374129636532185402754178076926702653594010529491327227436581730966283318457480485171934697902197193075333021058828421025610839675078907703169346016170334919413496950675726554566542344454404168353791846668106610485395665602830377937994204533451896475349796827876905396944978360884508660518750927082943351495888243651316211130288832899796867524378167266027942840061295411616833727627598536782494797574435743967946109836873119430768844863495515560488481638788406144653710928146273410404998619521792777076346132016891798874033549052017249499443746009194971261686614136350919243250546558132423495789734925505156232179196270346890075646497730319620181392115928799534389462014086857274065720403507243118053695683104151721026910250260297009651577354614685903307028390195947907957405138483951839759493859533350065696237319257770171524379000874842146323107259463118656940187521314486292010633984280338408713762874869882205344728977815813207090856806709797654404112285451647815688756912721014122963205627766789615490553226536253432099824650378160757907862199734116877873694914162189714897357164989387319888750904331429123825097673579047706113076594989064093701952251071574795294531438863583111991724433108398187448238269843156881520250345739439942279687037277997946801123880957852364442345233632367785211234490268563694932018110067463761430151813752519893594584623251586447311153123907902442557537299073774236078829155006566143690566544372020679385447396073694872424002066348993743145822367854377290999665874151345048271580182234620478486908999453023191075007061087888091792268633905094677700867054067539019193268525483414453836153336020608872655906807487448378845484419041410757368594822309119507330577726338823101539957165943897416663040335641471611654011059093202749924873819976566085961191127266048613409972136865040192489015043659877022761752192342254858929429854780901715561579123542695617145914608544684751761571462249184630363637765510850719889393391327929498187612199703613922333074841525306040660770281752493055812603973957323623026093669259147537843866591074625641514269252990479796144965791505104240966134470682339386440379966143260490407718419723734645027150812635915512619156242997930477614888711026942096681043687475827000645692771036939145544455041672562741502104847351430921045064144134801748063034143685541843245951116024064293623468090946894394500348521155168124264228736302403926555576671999923945074103462025240307836562879478856388355528382314193404972572091105359240666096279435188000659214763886935906209057354661923130738940461857568592793647083986320917794878629377159126678544652524972040572813176262917753163928020525898097611682656501500962791643658752287928691999860474216533781512445525392097539683897639495008782978118832273621526743107596633486151590037888171370182878237094674718069022615674802199163282944726841660465927169818153946736533475859617955289227850254415302127186640211406129090371345280298397734209034554639035196777602139671469353291714116852112653476445924072339614063568655300443992985826312604573892546728208056359680138497376983367743467734424470041865362899528820762751418732151143975514598347560810831309872266293618075838103920369477338536112381879498267739012638944100918703470612156592519230432480776828733566811939838005544818721769105013298141128165160631679366690938885369898986085589877222069039534553965657262106177733880171112668486858555516986302331440413933783594453290531401857822940940322075048055606127736634140491751121234581766525175340636376757217225477605171035601754607186384769370760905016624620257122109299365866322844925884590852008339158412683446782826124583927195706213156101254961865882599789191760290778415966770180426372213704575042962742486777739194543164483106656356974366788110759692303820883823619525749450354442205857296248741881828504759825881799611841423171297172996172210105596875434912349993255055256590712779698026396040470775307660875873732009075886960511608501536254930873743658073613614440848885913411195477767724680464332831351370450686131205279344812229943315117824666098753804927297486157271764919123702498647850094156633703611638243871522042013333135003596501500311673963111872493296307912793288823672359662069581582587818448775733458755040038443933479613806987569024750854474680397893196227343118733846862992017503959332158734759257869856894668486918928479418916007297910671320899274149658169022618001509882914297781528852714145465867487331116536664928099567237715612000942959627022157308348478970390058199770902416397494157030594410215059884253492570332969707016843938952719278535825748353949029040666426809382196304705629831591122776530390442101175645690445990484365875355987542528907404702048439583235948738986132485042769463900954417266595664002550144365718337863504244997571990983455148130144937032767269535422770022917587207766217490139424683526529486019624787391875811851765216136210193598281891846660966468972555811398007819364191613481217839473861689566782684812190252045124245836044498588675209846325691372256863751094615419655896957461072056433843167443560244874063186594555960788652566571619100638358424703033804072968123649426594072342622003161576680449264179602387698633464400121419902216644625429115316737445094382827827014855054878446618841460806980165320606970196943515822280818915317532292150707284939367050461305983996794936633644920903581867449355469914389393712467655006201280599157271400388310841937537325916577131900261940575433168147219617780250328352138523192739601230538298241636361529386149350032685208064482869164410599380793249455948753751814004361952125380826879079791269745441694571233000360253597051612737587849852943093783427564382596003408960999038784383336877239708242252845908177789176431016533365601873975631879378555650327835150374619514115567923076567566299088915082459254988511778491892928616751849721994665583346724547548372903995649167330011503841146295304837744164275558642794325140692773134225708560711990086445259481076272841072978879846603953390258346024607154799373779263936468377092773489772171592711168455538583001609485429262624603368213569865458485592592304899570286075011393670734919063802912682787837581345314859856488450488596366228998373532013310839510715406227300897268761471688722060638017411149268137173520076652805071138250435542961363170929705272228975825245960198716281202715846013026352014800767843837962977459646871956366230138145700656377414731821065366142058532195152508763238142086011659969679661714920209804190403660683124674804022811963510446210536561139636691866828036793495729905050118249177067977873362259042490121627124010298036678128342438847085492706084879536212409959280429517218837491058760543814476553442279352866065333362186443257504681192260065861292089423649577067604432195058645333342607689210317218162661028592966544854814458429158394958945270484082237991769462315271897877795017953934635037206092525988693864934170713884767268958508677013214560228554641580243160062167713458845519697550058666174355021367690919946315510723272568172722088615060466947138615644972037070284285842481649661378880434272038227944298707149707532647510883622697692981761727610788088223287246934375340777566662714771017120164017627247244610389128918415762782658823321362552190269710848945729003348433382454077263464011935506745232870060125168793840077844168080679731765981559330138120991581566567514695138112838858927236772836854938315220001810015579212452708212977777720165189928791420674741648862618630635218614371404175968174479889784565685225621452379716741987698734488850433761067473788271840615153323807179390150076710492155755107762599085373396758847411856271547138426275497999611078649310419960023169898296052960725789706079419642778296108437318177659542014801457279633602731445644762547349249814471269495194259195990788178706656259651736978234050193053847240028759854682880731623813560893232656798937034215326005191542135941476030329469186340929235268840091048675303073597539486240204708914536321422013516746095022632655914650470896165117233272527379754685434037004197757081993056810703232164958621226561465104387825653965472921629360032353558123663170964332586062959846543855393480833224874159648626311998797563904508744458226282969610961586874754587550678296720197847782226432915649418473932439528286508057920167510650892039851508520983849803713148858533178846888630741144177763945613872085668143274136153249812297307195343020617733425102738737343436515243714753130600957571576878995100990154823050799287842193898431055480558023289178508465776349819324456099266954549934550835478439148834587554419435734444282716281697261696547833159868034471964347018920148577027757885909868438830806173810381511066353636201130788857870206828935741147832956459491200902445203830171871520135218229613396552474013138802549058122007127112127899250859945573240137535976899340081516575967220165061163552611475597728885582278266976225893534692808272353341494206822016711998198300862233168015123916068913578428035382233897841924481871276148568783913706902570483735430539707198300080852660250027419228008693334332114385704826115893068310954044632010977101857417425054444641805740388512900854077746325962228177127651130105583789806952896510164219398690983834270970263650757900848082513895069203884160833430764975767251641260622589529169905778344573226086760772306917227452661766793668697427264900192522029170313457927030588014431127316350654755692174019614571457667948821756534959917336019295323918957386173597995930442505356944823454759567937197605065437550676847675641647323470701453561942928256959182121923280982852977067235959215215139121371185022416384872923119619468505552350036656764967103605308897755700241422037773917596530522778970156649219954128857883792100927772609169189605107392197196783570367046442247893015206421833519811349260390291872692972900893233842539054821970352560531900565401722272164531491996276579679705854016265984902552473876443179387629546924368789478459172488056634465732031751757784676308598362367522542159068344260274551385850615829929788501344089389749178832781524196007061263772140788991287094353703621506302373562683224427871828318694524000338468960652496484354723725937238223320582236305961269108965411366094857522895404908786444493314387230379323626171833555763012221478577237935081597952995661584891005543436261470139146600040577341127534642397266888856261645950697052696694440126245414637749270590165903336610787833461959037108150294957615601654878318309291950992867252802330204953214264925009900024069503257967710056348463488806416543269929739615318375927352395264504876615408466673564266085540020728361502817378250266421335430208527472026077648005421218192909369042502208923992681205162274163886411058874609188212123901379098504892403661493884375479536823054362799017873254677440251828639443569910874630930867832573096850913062596001299221457094544985511016001928029606694230576855426758365695029687697304188511109405989229153932204845107108283081594789412201126858763139204949474651639428381951905734338726825578548222647289636786982379283547221211413594326575330577450112373328180400206485863004438699601170414736528978576419401296211732185878261770000654110450036132936442567360919815242520886425586377624725027558466492560506113597432514443778899205574981483136487642426497723199327799235995369404610752342925177143166760687344341030271833455344206083831558159471007911405213465543121306634811384035468385140930608725071051548625742600074880941788086013237881744957026424140502654439771210876211114330992289657187057775276629968253770542040325012222440121034581202065895425977134638310285466719032716232924529368608344561121034029973268424544824801008569726697501581733808767562359620055544008215201118058919116135838012936690157287039481922496462990849587041100586947733787252142404258926568997937769808551091834462962694895257743565294745987161464740827573714007141139159085928141034239856079982569887749003258324173851483682278948028909684118138450917125852811028825797903924623484237488232388399191085358449124624487780040386864264056240125798597293484875230170635227884722486166380016462911275359394108466164018912299628451326754292318443858800299829311533265883879921827432979900983227554777614138281061637455505247069003490923159225489790487456555908768257206981025059650335644676842295621632560128697939617193932713942032000196016355594157547387076669616424142272906821800356846928679712073507477497545760752010233308184162455387940365694795496327734303029598968734524026039815689914438208611933742582922500009974842334748103645376981966362343426969978619043314228839070065062865415458138388341088467148264962874534050331577166529856796729921615405817523730034666189349952276752693839616160346958429656975832380798271220065416734826271095200687930295533335399094992317282634511189472235782382931923452137473766089589272684000260402727194062909430869688380473037708521485584184350495920527355995154580113157611408147730818721819568963194564946307875202045709729430875484850600548160187692143567054095032443559620494652321154562330325061773664594179439384799808726181631475561159815089895311990847325507099976018050579735809802534095095206135154655996496869437431455538691753908162626657558120759008050853994859417452242789058998537030983636306569458898449748680402698661779439252273076497928381783360158962558652496066004485636229512055846070800741754188817964937670058663483786348814139547241595348528149083685632832397972764060678748867201823198434246247541696147078259992344292887437340908230377288755216149948895648724894227714106808546515785595276073214347743351165890143729550428950779776255631395234805192959304789147156590891919025365620995590843986947715825143265786418962849570740227498941155239228168948522285693909139623787594853377482914736741696854740029061762963847652178053241233149541168575279978482886225298478736071385172947422221141543006814708303692064748488869016606723277927098138065552635005219626441231252535207672246570448489142215547624100064065820141883624588266101985685961754208632926598987943195305148885161290611394184620358128891040728638555322829213990872524649059268079712353214876056922121071166546152693670730143245476770935279212389049180306479003808240135307451195360856224116408870489540699448696124895379295934738438652049334108911612599768994328331882100766406092611809069997300284595824797354264594076859400820409508123874131035614585439203581703811850426042206689512628997654397217042442100268108229068619428414448266143464970218171650361447232421782766405595119413588929295503630050812593028696240423789340515838997989957014505962852765025138701699138713782114849695991775284966525897727735954698772834641084388125524695982772039017136950582941691101767803805693717127517024025994441802385702823870661847000482285970425728303573286211986146329555069500863944791924621434873312652602656403356348692921539781613669767462547783381445452208513325132215897862974255075906091720636783716945459637039696639307427112968629338617404096853333584395037407507596793613727958106522988781336638893653467912406743733299172624076746970713698304888637963323498446607824516636898348130125344872305644126895160494852521827391940308378071080385484784920947293755388764338489586658093616466770617747083946694849141687584169199427326262767401410219646697092826899985361697068142759238068897917932614612268021358764614669662713249108180321527305882641748642016508582181172129304409466748120899608715782801522814404423703567894732063017818336063287160319142290379764998260243647585828280657540974934632835791406723846579883865342963091240188879844956098006159714212661093188383222702140982629721095808620538400564389638876715734709951380700584946318741576107501009268678675215892654642821147599800368574684319214557191694402585847005716734806460807497772634449177502298104374584915967033805253648120545157523012855647068670382073688905554982603384344098578502388207050979633757101450708451433323926783296983025302174047771630265668705620823203295139373469482912940240776235109279092607549751883735720069860327587345394423719968816359811727407379313156830179133850528246899998860928266087829911238587214063670842261634755659592343272634184021606432287546853313821148792886011904005799938677136801935223920540196102142154352093534427552307413309632080197113925365419592443925340031470526361632138026510430240689646594223896200619925497124656523654115186652128790847212789524087516492458865852612924432229632608647199344809823555701619214204752312666326578231264516464055313436220768709761982472024433872986606564779781204918824878886132752984837472668221952112501195904020837631099078794624256795908147181745567345175957471960230396881589213197835095985741245539644316710979475422875784571604825897446253025778201426381234784215280682647298722468359824427128198068430036338326475091125375871820752167513155487828763311966425274104716236100762785014052999308028241922211765928947503141489307062100399404313191296962134959554742133007207715123285289387795624004846890799132297852638267308696367553973471395327518848743186786019563326026979183128236837591295526985940015193777506283793415335292753118034941267676195274406627937526277690877640870353237121520203404863693881911298485551608424570639971953346516502811945479020971759014986284230935950626948617464890486463071252263352946659192595664046868612646091133081991708555365265156006235501199902674408382509890563724679957687470486364459451965635459610079162152983803200431413575903822995260084820764424127647541924902296672124266352723160692656838169432205050128518213780109667367576713144309107128899357152307007810522088658633546473288785351318525575871276232623353273251490476504452104964422182305072349459799807006795008372516456209639542059857876728604189558629783493303659266080336373067541639438795571845425340213996265024771044135280325181341392099019328860518743120730477773783555905993490375668948411764193429689123441570448010795263025999547924800475494561577764242184971496230535332234817392514646785797599317131880699566782576984879759949959453069385991717823390397033866079887374880036391767399036201374661081666873247329093752855824993283942560369908229915950276063264421956667332206710174661985530823491069662956426691374056497411233391004689419104918620340714344952147524186604918813286769876712289724675308659018264625350624373535812960812461860833659527553089375093614873278728015561707028432544792078761394188742063632281378225481321377269939749857535718170773047967649019170108245342833810424117246122897920861631387705185049240395899962870827863922287075871004457026479637685116455842270806734391905044917606836607514052336962238139899592809765087599593105637829463781343709574642357959329644566941997906354048962153767968862508915685655139748564389167687790492528732313014525183292783091911877929624628195705843305842530494032279065354456201798377118694586856124294916736363065139928698198076806483703821460598048118123243949619177231532706647936812913960933296343209693530731292368098697560268950282265123109083653543971680700882052695824854993314240343282296337838926041537625987435420267658177564514240441094494118385325839127675816174508135868886847550695479275882704926741368725849434031927574764986112292413480745347042588821504765526626395114285184874813375243765794578243152096081828645701048880482102309020753000544319315615064134825325887219212422390645724606483272726146752422786419826872917825547993091431334487786157440855914554365426294487164870863763960764382811322201166609471736116854979699704089764179144168498360195454587878802029243512723280403890262211864283328133433958137602611330379325377292377911615326434374172060625682068744724428970475255464444469012369306786869021579471659476786658964302788735650741766513960058449647703964834286455788456683530910559655287066770970326886323288526470641903448061296966062405067095358644269018018450297239075289466952281702114895979903216615145854095431615985255272189149134877450314136432600878963235380463714185114207693920489744721221291702472325747531733868030821307990608461997026297714496453958393092885010592920272227322776800463922467444465616512880114765191348483514792073985281840528957162959815844856900549338867394013165736178615339437942611242667931352168165012982260562528375046562328104473074066802769317848081251012086592452781600804026346466330153893777623237386962198783523256143611088232187586057490464309545372122515057789821531033851732617189086971481413160014773775930668750273493305878386093842678354822037828673577458150262189828374906379861915779372194046712314164522045012237987778564503317915742045808772772202662667131035255956089732563278360640951462251522234662475577992990679188401156283734569530281663605822195604736159965008186192419301978101213139674222902303806711797458278122750681442261842998301271179332364406893972328796366221678995311339073009870684686321165905630970474694371415148857718845266703927348238188257450264634322820781196753245346617644464634184519875028252599190821142609330763649734054872587984848392812071698654832395643862234242890744763530734952718049038039185058568491565502240760777254778457829977974871502192876874104872174572106940979760352093366676943018564144165635767293019507271613145304098862119142514402885454547314842565847831511291495060855499350336315264403337671849049438419003516018648876992073724420420384082138279908496806716780819136841851702777287682049726960018250149842899840143020470635912420006517855399249969784547678270528726232009333017686139288729071215246058368707231783064801683163634608698615725123712036038483326696890330701158310208028537383893951018373201196744376076954203281483629734264228987172889333144614745388103952839562857878176069216920561452062816270761333574991465992896819550659159760758706434174439434641399111823550071717238856321207042184001207676406935666909010007929125483291605659378663334908849565659279647639431028805011085361374111974802255172175572019117007791465590123233000059275941771075626231422980073992971580684417158193132030241221351594466642774359963668773164505243053620284615445337421611132297801066915203007412201390092906229668336711474706188591304306690086700385958025096848836536655726484055961746044559297985833480998352938081564427527113852798263350130232435053171976307859124571492382830198469319102544638206980212654887694198881901308926881669750064264891131086837786246171898336983968393213637811828458598726560315376522008713898762112761825407491643344983108435645518199408589612216443211420894148430844857827222191873136740326479296732329058294478932698561416304818974459273575495558565602661995880721514656094496336090874670073528626858465741113693585164487367660076442459861283259274296623197747395823923696656238182233569654453022502296562113632694957568372193051327593362415401928170064723115300676358450539713320876636862647902558260140271145559403113547566680789565159065122796269638035630871286852112024462744663973921774774627961979540486488624817339614293792150099791460585752690300965928170293947730040274695360902379391066266662367025527296135944345897382476064246469578621969621326374898172860366408311788309212833069042887054500787292730814491757663213354931714998042471613752827313376723118048114323202314043185739977986318521185991456148417488701315363115166347152517023758979255030393960802832481009147209208141463387723088044709876488271236202045684353396279357078117404809652761512913950340739842971747930802472515227814760264613586193436688793145063639466251021152988725278293548792440139291316227144288456070613546159747294423934114375012352359800323740677898671715122471505819041348054547216537834200727191588242761780704938750519307465090846034712646293090969034378894029413460494530398028205817194341551194581818010203299077300268253420742973160509757162505055741014318910781058893457437416769399474188854181422850969849952271190233599677848484641169318852659795273610936914442099999747518909351317218145915801588162234766198226304183768568462762240957888244399465670792465811762354206101451524488435664931932792198745750511553357874953494285685799442803918986695848533139054941458261693186278991279327079463383618067703185591006578171434938438022233633690077146110199845400281043709899945893259050813696674956033270811045065039859925937594375248077010823889929984545601536759686636921620396437294410724902840940388584186498865765878403724562467041536855909220791265458976965873054342300421949738409334430200767600740404595213410968549225325267347131022607926401664731529243456994022530887676730978442085610687256086401376000126672614510002823366613042238138221321895759101076389863689525647351540772177262649654002650665957041736926914887792652628522048893498035096029633925990116228190384239758614513087027744106620563850356417428161472094856624750605638695970711204358796479856298107566284531079177341379273321025049611560728591566051466562463373226088495790769992702524302415948826517424600005773030090523676392784083310719239423793319011418728222075562779738928341314521867414102794953498438252500982468797125532492193834396458506128568352031767485158243264256218328493017682508412074036650429752401423590846577508856043311170670504400123992195539370668227888463255901535845282137955930102945167668912337331034965517865536303484104640362042373215842947014350477314843755242460064919409888539904465044441423947615444726197676833213301692015211021171475659991923276087285456633017030603112115368237015656818983999713920939390488362745219232918952829412702654819274596857976774500361329302961319541786261593319237719162585135097650796403561142239157614972162847649163704386460253839437982468604242044658598335802606447445748507803768021912641825185937734714538098847835458642939882369431845726375417824280518436541717009031981803377720499374092314894912451293677964354701735399865549936173418032922164244468336083511945590110598456440520836028245072372365898654525129240354363299685401406674447337980387012111531598445323746943528194096339665957762935887223738224153185608135041150721957959876110148668509193529444046409427627711495564096098730543966281427024718222115128629507671404933919087506780878479525033561392405715214104050408754174624890185988915610118612494264976374107294131492782596822522577374341005257952985389895399810231790813039389973126960592174104123538942737223615913054433437026595699694126261246011296700942890385313721983487550153551299152927210385224956559331403274413810349140390739471413045573076047015400399523558542154885202268691178644651525739753378394124596945641755165413542572785001061400156317174268476519669089369167177251596050442482313121131915498753739025843098262469922779008515488073262884583784071912884785824331489570282831049059214326942246440889705144486595992591051619051097371479079523362129851124349121528054079199718460184557003769264680554302125608033691800664876846060304339471141010637817587142869953933898501612020676558629744434053880251487902978864493617213280270073858677303645014665564718620295286877050350811620140949789841201543148556265594020456912413085888352576189688457344205161115059335876737157338258656696634637197182491711491875102965513988652821521815884002958159857584246393892455461872548122167364025379956411147030219202215809328584126468277689939126868681196420218095667256092744192656246296787010479067495903335337217598759918084028683617495204572413123923274240063163403314468697428434202101699147083814545783319226408510408613313840305787345903012847374322052186080347105021675064479375973087331976355876601179298280757543837231996387882980274356807365151084471793896954526009684021663273016146655465078167039056680524051715116933529936253473470738619269412852704323965688634780109685331891559172499468315176389177316357847043456603181228650648326196860248554202769845256384045261368387632145801592557914806284264322844582625073634326264190988621777695234020626162450226734159686342489341899005147675021542400422258349292662286564447533398348552625659680774873163210587705218191226919817518256539558925153637296050216216266558073881228648412583934611445142231812170398138140730507142352241652661571494414318505691537919787717720319372537119251616528676869278235270101206468365373594326967620088863510719298123085622649688042848598219120612455814230033913680199525055334085496663417991818222308771323066619460126493207830075861571325220059379831126833255419719403854947464468194253342389526963102326760380619547651119664091346725630126437020698076273341038206315175595285399780946726912246869148280959288444775434071686418400687156907642970887689074938417065110309142013750625367024197209287601942375612308079993367188973672394934280835306603174951378981653464856697795501679292781219129601223098513990359223132984162063065883344480785524260226607176148133903148046310495882126832422662767770333471705650590165642991684341830988530300282701141537706202974987450143321487520173282379256388953256834402647664190516809777233584509861351427612906752644270742558584121746925819670478087793224292859050154824169716263506881075489319071147349438434996492997650374516960549136123462765367147366790024771664849590701748039514872875054788154694867094852556612865338013814782800143522335486051448993309656867290811864408604400684747025375860387882007578157744287660297224459849942641901440535364374097731596631363749426685695726112024527408965249450124562606664294761025507163633609417479370752961547883939968893466290557755200790103955693481030409137127127707080337883522273023134929135294482717504299450175941991972010131194446339893309349854228281997760879905738343062929330563401480996324150061952440390172054623941676115018780901331101010606199658286259941139072173845433994711846073207352936451705375457535922676446922614783246536201628312828889260928225737306303372635165868104423243741286560465364439468697117572489533087174750426175628129733900160834727907672513506814632967112411688392020173452466812177601809084657526950725263879103233181278498353427506060475437899178430131344242713435378121271175765542712412187120951619393366879727256589836695121479614114729934549911250487310306739533620023107263459537013552689822036647634820853325752457071379541400270691891673976876918622247778354060035487921164238770140438007674364357173715929825350482828864039507717926401691716954207967201106683073053722422404486401237284932268454283671245136332903343937980051727918154323515174080936908052252915313560444103780091778152924381861730170357525857276417295787362067352255327026296444240555218608202116119716252470711525768952829973996234358926676584749867092170897149538866270232502779705522307674638988469273241190617776262425158667862676701342861839364807086013718369857959374638530415312389527739883366147063458710845523535263872442941969223904337051567687488319471051530367914754638724491908832490945480942379769937738995857845507993806080418477871693896097495784913794864395243504503224928778380414451047890637525069350930071088828913411128423141199558097431904877058900157646203625607258129684559976978676826337237822180036008275141721638278228788006051309025507981695379972522275836195305753531053149699199666276154574475015018123241984307210116903940414279458728893482465645360583591451706195248130424880500181836129338395378163414379370092187928595290897484365763070544498110818299293384766663418361196148243813394451213852200202801562706435612721717917720334312129795266501452289525948216635598040891466624075004923075937573157535891779367605559256949447456370681970330125071100269363464021883100162864178300897492739737799143676854831362764405375485497211413208258655494963487053695006667960946318575478216874485722300235437627280392767989094347549035646991519889099113570119022863397175027134153875671653396700466724190072685542890880072726364764818999795534559194080237395443739942197703678597176352528269262558790571915233916150832120318239464669985033525915383156008816809475014179607036705517680607795068868508633868411299956154676805207343486004730685385567390198627353389694859741857421025612802537407738207738084511645291558894033020885084496867114789617365136262277385733195029121353278048574710362993735690726875052831668381771389684943559087333330723672829658437878508181148571647279047988884650676192485218418239019532633152658532593941911360274184383367764219922683251966471336863192397717961609382277557582779311858844022569236292141061349229935359648921079916698673770088207203054700681201512900022124850350102894718271073636068915445850771373060079174693874145574635561617088185489853172530002595751646616141914576612983994417612960855732276997166654309714181920214994297578399808717807981454348794805817757267911720735227713027722887465133846964489902898791426587145810777399937539604564304178669721249297910296205321782064409942009651114229620113318872660324963070023788951179136470301081420312567389710740041506250174809929730418889267527567100833782318718481552169165065243533945085028709472777539971621159625211985686955011689901651322592891485330461609847485323033479147396700529685404211860161203885761466677793893672324400004792085395538407500602810476154022116313751998132531073385677926725576161011596367279165436343496799034146182067825321851416035854634866986677121864044418911874041349752815357513207493515127819897553902819009071712186721498962002235746248067209920946439370648456776029033976778035199307040708815742710869121534609736173178649757762516896014115384668162857228536837234949672216584097640423568152714288487452929123255328034884093813626310647541189650105482790931098794062167423360532405818663729908797386234671829822560442905306847333574465016462343592342587801667578529879620451454744615661208605910608561703928415647284632557308500134787607761072732878806883794823532396562968815303885357869081577533392014162610073632261610492079846454721189204903428061625194999812706294126333464489940544590149983836767464352795704223032348216650085490195339387866194345825308767058737191675486254868165116284311353998950979079088871981332872814290567649617344204617677165431759881113562298528237947468805342070334759813757030705976121160828569548765439775771123069834534027678776310769528002318559069618395500562201241973390922405812214659221644656857036382606937789819544040083013815807719053760028081974894721648332122467949753337290545975488526570052156464354357398727361532603020589428321238283975759298136319740718344242192514128580602398322889885917340831403888943157500394864923111882466268951707262931741200170987178189864060563857561521467006463573280879330652472949839840453893367809463671279416031194767933375531139154883809150296797943825893883012925011743656443285494175342559520036526191338888756378703042059892406630663291192746842330322663514324255109215684544769338798451458250861423261085875810705114919899067017714362361895725245479755181154427459176465447076770120291797342228721487800587450654590437006134569650350542283913362201282010383593795149908233332733261243732702111442164349218395740736420446568222559564197799380835368702663429640887005238940141628534097642939650612112315466294662730224116213122060667129407961599936209681285342265154824133910836611883944958704534154304019792984774352611648855287287918927013453846329515609666092006152658925120401586391218901162139316662832634693341862481381859740115159708699057977473723353226454328518938875838071262753659026643742315598295138902624261460645748977752870113878766045894900615360761075780615429243967122121024709073229974010062446850219336770649020444210078798020586734738689910865717392492042249131863891011220342297731060627674632908682313105588636220349148530790670020638112735491893204636753975278876924423830083993875962632884626988138915882759450226707801695164249940046696218212424294081385822517317969598779375805468229367887264589515410142565895253960985959219099402602873604311821317994745098945450633049166949418359715614371532128936348305216535325688390492812838815328322834433970011217172428736041622485096807071560753909038623928585742982743056481053605001894547542168572253663483944463106356743027517924474530843697309626227145098456258498860032422217678521590246365849400185205190142349900762138855337279878910673965327560393164370851523799120309332395336350001368409749446528940059223049168810405690792379359361007986109803052855064622571956624730404245734078509764256305793159134937972724834726633430011762919011355883709996639782752972334627670876346417416707010733803257916538837227201042902123176696972404011374742294553446397293597040273456923968151057339073193617528309889250073892027886352338917958418501370773658316258950056262803699262943289204287214636776744204528123262329607291840843871966045933381795424524630318553111222414880178970268135744501189414770999792852218247100758807852096033127041473147570520268970913872863988863514704710546074127035207002231972652761596781600887508333762967283073210993147804580715320388128855447719699732146501838998228493750806222125520346748756254725310644126771882654631340329131105651536371239464463335351880959025657236668692377084894978740480223513490693802936994765475416000180644976857420874951613759656342012567151528807853384172829090211506293143625039176770753138781435725630999624003732100400579291283032783803497691511023966207336891712296000738982820973451180703163939536218247093420109143259060411124462144060368786255227478700208286144324148079298755302057230578119627226308871027503035292024036899522921678908663776196680253497566295489663953820754840987599825849174614122761506143350333288319390844156119332581773429783050951837262547819626609448232302292596571576422616994710734826057285753393710734835019282640804021183844137625350508805267829114918062349581461011654741761118827274855640701488715955589602874265743911712060652795782514628387040190805197918833836206435553635319479758654869745208887023933484096981515289244374639379133936952333258865346522716834738816560252454937881353821708386107468921709241489596792764196746878052645859710116857856310074875601118383794726342957001717483129884924341065262079679104701269597893869543213682388994735144375747339975400769023275032364946706222689123668072525571174702555653479850438384536171823280229094303075352218021105252172588220224609414458657710253336567873474365911602200962317583209851743341381118772252079878098476931207389702199117756408299404796087124893164121442356069651613889241295861841761406919146286873487158459769721791916503451912998506356197482790905976021315277361242122543237955529561463157989702104619320681985231626504772426305194398524834407927121690737290251171762146719815554716256940020449736650372084468033059377657770368091452833756333404652201606559453746317437701387108542539057339791502186777021841295480642248971884170047824741701895087224005375784612760519585455200402547275281021120411011692129397812461182022797781322080829265047530654469664203030006176656716952106999348241286804251478031810410412514318022337485623540451976937156005508371867478538342119536693199590210034336806053498212580539736808659225005065941539799752572043846904229380870033704209000637046123773398222812250929386297204616232795676766813450518475386151725524457017397470065917701126071406271017548884029366462405797497152029093018641190097567617182495020140428981749051959179929299551832674765243138736829272662723538484603904142098295215914545242345625870849729604236161695319752002941078747392180133817731604408998148755912056087756815000404952069630846452755089914708392147147551388837471807777564769493486085912163273102205498609970702844670006490734352848845715489327696017774345121809110305219561545501644669842154401256008130702483299931831717260444590538288368940671577763505433054695209372240503021165133934062493763062101221606737047111986947972455131733850271374894955644198621846690324312298034639577752081060476910419140188165253556472208464651489171641718482892102382556283198618799058786553468853676532632934945010542698461145557456621360563169635767800520045120752842536424419366034103319342435355330051724775003473017880307690821866212283447894706008025136168762161605923814941190528357562904085584520828451118974468980303305382192818450264240531415814694909357198562931229443565086673453309458647872196368835467712599335400531172887853023411331405657845058360387863095152306408938434817528523530224362853128928045682185263198816344622018704125025591498823154402848294581732281573881575637554076343073169331179072352679979283656842043193417773554654607689123617677864848903034213951718492318284358829556555371122956301296862372780443837916362740370982467699874544559782446389997441840079886447053552024583153178020680967938029255171568954414538531045980398023866820569212141675274930030423156825844567018142918609248481247486477926367617069503600972570555961397752188535126196796034478732985370049903398898256466254932484689476117189053033497512138848244670509651185382246254283367949068611978351223541822095146581490833898741121076276473586410744830234021119762288227489559713747115661672331015555332406261640321979581584966245224635285617052282534082956097465817716583077502107414570901707380596821418489898392788589506024958836485882917640110694962662204528031167041876455561698128787057035988092794726839022678048626785137789687250117873978850105074470321245266734455245891223653151681923117327018563928657882761115830603309808705215913764126327723149786281906360083601823073646475652464620212805945619090897712974775373380588446160448057273249757662885507462330052810704813187099938717546633835019796054454249154081733546013027227099070246484350682574316128619409735016825729411686215002158342706396927647003302404665771409479417949149258754424201434295876414818479848863603699195178500668028550755761512454122606832754343043868669703233720106583398332151095792508668290576826663058471387235394666549231822724851643263340728192781673427246260183571100453685916994088635775059149802429652452536403763123622894913210354288703093211497289929731750076544027215853691980659847931129623069888814178527431103277268317930526378520113829945035779692393514684466293887528040835682617015458778107829398538036728013147192517480966971168395673764876110103701569383353580481197824047969198830743392543956596147117065985127974500047287479386291686890498477327329845731231870834551558345935315960758404796778859167744737756068843463362691132991420782851803430302743027959709261755491619452187117003630073049252444906664734518026730076691661083049686018820818442966248851316193654110621164562848022457725297816957594960318332236675885546563130233880409939408966844749375095261512220247700932608197310979644676201495682737193203926571820048221476578008809878904067720034978729298089220820825841851479709406708634137833361115196384911865006514537023549685770093991722168208879329999641035849442600319214807999491389976540231599223010401975771134557598276578043794000809045364932398765326579416854376748418041005137929342149684294271432166772202939394101411397881879232249546114464474539477494452257754162118920476450079380009563158726895709261962836226560479449767742300930060315175036862076830733147708398569790327878386330803305642378797922285047971484198504998979178894886650948245804415553685716209041112804176626076620724434971392460101994700671763683483550471666233942947067621588628034772076797134880460441103335440996696313550162770659194511908759130572930448168336224672814498656390109329030719996075503923800772775242742988420318701553996974810715118083218253833154653737184566734726697615445067448668987035323927566656038429548763010782443912743909874261497466830399756290615854130389920850777278113670757146079568417951171378094103191485774075276158557125629723660153509178585158843710841379662995717935649736078320667392079877488951668062517125967431143290483019412461048427451418727687967195423759912231234185265111527666651572013864887260710921896849859442033948536416077774914901259761230989156621285298392737821712256077315179143889862990803009870629918070337557377354730791543276096481456252749673251727558306546880616211822264292739436117978747433932565231349030901945471887614746311421660267765875575886747964742764398967456788276805096675977914804241348954124097754632665059591778184101894056693184847434213209062867879328588662017317948107071229199161082398761287157962535709669845530950421486633989585207949643540374912229396460101637650173678772619871461194218262533445626248346301328557082333265934494008303093665147458589907330150400724230443730756229897660585719220958280220187859252815212896503311480411997085148451927577877766671596358282089362411950989248280459206205988137953862438809441110160176878166875021051913377087262959720211066792844521191979253610918973591137420834657407063754330560075560047840416554946619348492930566080244647737115663605394595544012995574619461050395104838848966327826054463783476433683909569398606086386178136222084954143787001793028333679574330269762565575134889548834864020195713662639401866763123841342813024417229027350501831073962161773799896905029991985766807076339803110222312279141672162116169187776824266813442138382739432408630292691499710188208418345403203699191898351465922937080330202240303057301983901336632173930454388846619481527783111016794909316360114279476044821080949859504320907888807118145464367858650181368572194687171913171559821384163709734342816420831174643591163438434175488930043642693049143572303986013262003434901798307930211993286100387050433511645962705513411946065014151062519691734390453534406780056556773615380290362755328256587137203071634693876232118526915217660469372772233615150433729781319502466082870662474082516132089566214389891796890267358129125040540256881196490332415393732952909183324236809034010685486765656928275335344160744429109015582864914105576403676478329048898516309853612537646632451368768302804651942562344730830282158691255034840970221026914291759586163040748514773482206748989621525312719286601346409547687803734407041851784158229071209875738940642672889558057921047400093537354751784719795782061320122094389639915548882560351746502407850683625314566168527474045334382451911350968192976959967633832512775143695494568872769637048044216519985946030399245993842199606631293642950584382245151953944906196383346848130125589334935075109598289762526813825216114201047358270438886763169848714301748300039828489683618163390399776949855035460090678593355939812758091007553099278631167881496803229650526537504888366922201093838711455958083135863354766341524743036274690939066758844259205681139716371945984656157598580957398984597465766549731286094656307317536958883767667646598948853838575520523161985474675213193811697184230379326524286099905980223299213889794096959341238296819749322709454550217171363223024178269547180428113615234036621612839715187277207326914202676653633770639059538072717351209318918615047936384539656389237190777154402656431447032047962532825829113454387145013401186949078960652826847738689358347621516763462470160344501745623559285625179316998655744008801310592135323280177321729407185160274824395947983490425632283122199314257919088993622054995359065841708191881447758784263009174493236350387223791316834608506613941321680285711103473950958976594160688532030811180582059377044286692610824791803999329730760761444215059556138932340250538202001056335539394367160809521391750442817546132828864099025820208570859482367980994753439732485106598825345999183159623025071066261331681467185508666311543209833909279051865338227590642508063023527917103983294749746265738491397075085142243048433205200209952700437924987503771844719723712643047600777333260357917862694810375431288233837506444735351400973193737230784970991182338648759985715693038950528623569147042603571421569485769012400806614836875378379996232181118112894483858001694197669281948509703905880432434699791374746104504663553045405788371332912857170438309717970587749163542930597403606576197652382213973547976517878804453073405995121997172939142259739143715551576824671453258005856827004830345845938171206205829912008783737535099027202444199792711287253127406908810672258471173743216256155068185630953417046666346188362901131758982142461386503097003404480476909117343581197831712103304122273797367706654516411117734743298839184950023144452804371654437280697257872079597726570654353959902071892254705859783937177232042888921674947198864908019314423479584188003533334752269634992102890355130658648733579251008439883356030261598501092085423912278559977889336200353951264770411759901202555218127472410595105000378852192960177005604793655731191378630221988488105274662263752130241813938040071249623938258346735174253144482191735880044594309891726654256827863040405573363336396560033037886866146227693891596231701850550320348630065445032330512136275099051865615004690900687962524648385404742895449099487214988284102156915054182759917357804162822172582287319776958237047685619940152242524064533639446064729361604930087250908971378006958447629820443977643459015786765764946246941494690937284816710748784781023433514966829054099651085836611392794387539898668683383517852099691167715293522232035018241934619874393079581661626483482783693139749182211643488937199482828450675898761018546870469855807184088975174979830011604348344528210884908814223453071877226300291196875945913180206742284972407714366354335017011580273691309196642105075021958747295677538044840969847908245869333040653787901218548141237514192040557021637070366217584533001116813085240173184472582514169851403603244476630711545371166232607948518349649650017610889754896393819112699533178263962654173238700879536407218689538126125914416017650680175653489873288074076263813618509324025683131320541661084376191478186209956536506508537780354039381611050268517548014488184215486598822055149206702089949682035948758362106950569309658486115731111674610036970873319452457263119717978560339670326263097346272150561484411947146010589216546149405408657876362101128342321958279293940959035960526833115966595761552506266215001395530970136424119676363221786003270811029382738256837003807693518838150065181668370731508356049288624700002887842899263307336325233193557700217640824739793609760763646061360667015927465247137797186011806423501600042178429317752774747737483047010060959112975945415033735752059637637073788927257977088128982229230073474502196772472511254038562555491361141816226697987427002062252018806196827276139889731062878369481460389557407381367087887268632809014198350936406999288939500043112430756240890017398185763427614951800564227292856531364801248727086663620643518566709436912068088786969803557808840313929643360600254786358742823163596493103016492531641104375378985772241353985811832490968636477929939884092640225598614016667546387334196908981616188413454648932483450258648010143977270048878059959490180458413537089973751605231301817171026586908760387039968069832782288501241339654987910565241588303879794250435837376918746422088776883066136597257093049324788914965689528290420910891705780315931403174288485077223266932231755181335465038644642438449232764674881460936887940060453251101083162598550948305510618099133884237913872693195093049411527918120883002646062409913256814648361693367193997889718590105379002532660994837757789483135015726974330710056457424553976112942584801554671523203471555152989068183415003936528329784796521665661794806699312606123501884130448760490438343284873690336215363877375733373758584533304946970047654896506189071919455642402554739104022577810735196346774409706132873549133751537686867548362142576809036501451494575142877498090236585478183127482393475261117275907323235265788868568375167831093682496155838199955438644163840177561857413146751128455614068442196001691299553072000956627450992693775158783158542472514152295075765526935658104087337205202129950901848103134108818190801966997680886458910036651402093161408278880549035788468910941782270030380859708285265782391327139541220669783588309544433975076811602800648876271396947252719504088262187338232681812890969877103057995921265649072644059452340483189128403203756419540229719955105999841309674838350642658307142757979777630423271129082221021084098445196184905454355194607091994943824783318517732314243458826312746577392113207894979334697380574791316965627610211300798205826452019407686090952564703351363549913328147065838593489521381493838686925125445059357427222646954338964602792097920966945687013661410512306319099032366264297452612878869837592885296412770093365469783941715662314496524089665145133365782864507094089503304145657983117156378925731610868400009486411326480555753876181393749408827741413593762635082473703696425143691253315459210618285079788073273900591854791504580421708668599671592174133072142932889623889904601570225119668421014409493687193197309246848659902128780106204118428870776567935036358467010191596162864478900674805318099351694569959762262513251808063744060597769717258759353375216453176667517694419246073118318777709933340402794030637885281582598655367680659340633577414749877742840447197819397056228046440860537988426457474485383851945819167634005257545052998281445247115542405933184656521185010166612653288757925197256314438404690095658213852593906914244209859317413609353257881158574557032473246287348107017015330281257360383890325786669591529201213046687905237899903913860390264690444631280369752194621255864122762861196910269180059858822416394127595657562904801776847575548338646438248857041640303090414233213639806453160582604433247923350315758986834567779338874881355544054417305644829904804812570665179364215982626241517320040088931984371040470493204251210290215631596587105262270809818609644650004221400750726270308116888249875585868653690325395244383158569395829880666193306851021641444849902260144762169158527631003608446845111325867927200191070411315018589626319884843258233928094312858597770716562079951548388459370844477897573864971829565799457290013824866802644393969939936459348102036951557341124447209709708700438186266821185870481671510395046456645661535973758134941256791843098319525441931628418610052921598831860419472073502877566716003124526291129116616486770742065950584318339021012038637873545942055961635490308388224679476119011984404325896402613561334527634416517574649055129916896289279164949341508894157229321511775066391956806452807447123221456540460384185229882192277750235455696330501455249435522160292808933505750948257247985074927011692820699022906676914175978141950875098892176105943328407190408794030042695397851098810176241414423965931478596007202715038266645845028009414079517933859677211221217817648488097785528072227153793749900899927420706344992905049531606657424421927374793188061765032145547206439896806199120571359140249368101561252171276044133612917496668711952166962031605767474926403348971806190992500930012729463088741043259034142772673953874546734196447446767996810638973032656013288320590460217589630912706125218549388116888019551027896197233735554932637409222386802560791053173465100986335715538351592050273812867278595640671421731764068268526657007878484174058333572354771373821640133548071826588159053298587964715955034100046914936759774568212393949960444047535703905101808895780936943275578562991303351828726995284005614369167853347438132438694736548746861337783449403935967131666219801393218665576018137884773142406690607767422289923375774854215565956676767241270271755499670444500621283453635852116594400971663807968955972946085481825006733132032740686341830346545895569358780404718636655907903271499983066289280870394728061902299726430270660204253486025039334130776049133699503757449473049538291966055453024141253432967467315198769396297948622796301683335370563008325998194934002725300798140104662389863138544185635632750434837373204445322647596069100889608408173120594329349204486348013298040037456949839174361843425885116637139625270197268342663029890033327270203327351635402030946492091637536858389310215192237835890696757710326111946874914384017923180843027714518751290235109510651407227020020690120392251484745969000160554274226403841019937201140847569809027756199484835228569128302598659411688576573080299263535129785781650835933871379388789969001538654653681297953905727792874926385520688003764723222490895338539135651038451058697929628351242637492391757089215078503102518248880685347006086718834415423072415683674370470734059688889677494588341226910190440840783423976302863119589479487948277813899546812580486925095345568845488202301471780282059461240477742513578034402868043955182675797670957586056434922168196950488388671420152279859020563415464651713424417981413818895101858655300100656615814306479002382735273283221177301440885187946843543203086800099580320856538895940477471161952692412557418940243297056388309379774387533427285515232304823694083811541859201289560312987720074856825125586503349727907096219766043140886114812407434831010373255330916981150682828997077466603623716407120227569114562016892956125703204787819790557433429446346117744248715471948142545792743626988751418312598716367751056667962684501535175671358063747734633568211851631312861036156120903959491103792225007500573246612223863627432833914085019622335650972706811970182577470457022642222150439898412840877709590892101254797182379865344375784767752689804973843090133098017053727294018958991318215801906362839482799873052671425079730877092853552980196868648137424180704030650350687177784741482983783140265503872709563881280600388956522990520231034526404422802972758910241713129420270186551852090194399079698026486102690427034711685351226885927152536812448408929210490892483140988300398921121980447737281204627529533451195645866035951841799292563179501418619916926724192308476267949631260356651305422580047913346632070555186222669098616298642809374390744925811255255916815790706476247244475165489192925517581730326094973350009281424426729715991383266906088397617188862986717219171289434996947791547342362548176755925792144755718900722208922597443151009420000840592003811024334554670951410197261048203697831078489532241637905635017517666971920238666879784576690063238124301117742719596204633347252127107600778044329264054005094592975326599787504510810116017984261890254424055813766761840363198238149838154686009571246462869374341348988158727764402837973184887959970750704091261336217134509635699826555129581793091578070508295595959384982611157019096019381378511038412795877583329362816307350197132033765428780558354231127133896326919148431780663962235666776158024145230216751948378278936494355670451824974423516296385002547211714736647748142029947511309400090408797491445896318478483437662422378989783982531707046172155836630616846889801267693996083746263932256743151341222250502373669804513987421184652862757764574957507149820096294846771989012213387423377780643262304250813650187376611943389578067169690036820560484174679749702238094721782659542595793389536081038936582043678963641666835300344741985681444788940657868979503699061259953838498511487519072749150050514952090296667166147945049113029704394684228282348817170384648438690447480969957093410812196751875283154726281563413542465338552648675904848198882606854302834226229703110446759229745222146406777526518896956190305848211108363944901941655438315724778287839413603719730838211543067099034356359590464373423185526291528106579661597232066048975940212262860753227823047826267174852995575834696400629437021743733469005925974162299926234448016490160920300085528716011496438328399681112336433981103664415796885638291868430214909212885710738104653899829292284319871253003271587922075348862235095709789254643704816829029573284777011032384200270090430390355738139375440009264098424602695351043081892468421442397149678927562373174235448089999652041062350357984271114970034359759139466580520427435820512704033453780152536165140965572655361651179966292216251864097286539593701100314553802518465948899829383938883052937997868772746264341723828482931131500399364404751773905148488236082133369632202224642831943341995824133647860095908425451292430090137922029574312693700868673449112713556595943619095436198569200559972168222328327693170496984585218045957531497957552024517125112359748205143411467612960629995215648469490784489743281076428125527596265340368637653807899857725757439268324541409942440533954619627088410950130728412943429303011822387054121526123910010142000858114394698120573527700853960007582475641689317279250003347051879255644872022713112763648567217054710981108553132506846146597952353256676398904003054840017875594048919124632152999131987416336617284897759265181150780018536791587764208470160050760230270834408949789873499609422185123643913352823137565006786506716121716287108073590507662891237572835402471177156190918951280082730303869807883160962303964347216462761197707459741868893103141548068400276699647064211423420316121198752350880555409362421177553379723934821544972682671505696536796228849140765407769761266031330518245998505696084444527056814083193975091770361631295258316226409360419089157644928150102385522241540967485414446538218330476554674509880328069486218843717779999759022557506084462536558054982799314340866663147826376894284533022552397167619645133212452324059938861536167642285368440760946284291316322051950225674989291408264099454474767567330393773078940480093511825165862730798373205753211368836024464739979928138673066039141054810324319444106211809478577960745972132324529068637589100101650260087628347642766125366094209645216908116323830866543002178825909289449766054380594617767686801300162792169008336572655414566273376763318429331289133658874247647634313750324296786116428917354718606156668292821805067913786783464848057794413516001217081400752239745151299671772615507246734198087525080595426792594540040124515455353172526359101719789585880674652383652245303883510680372970144533605609105978832819279221376186792337691782546885703318030835707890019249901185280722673063999980955359001890271307663010982843003678549995132395312165721011666528399175824400909556579790068523374984076816275207257818399546683643153835595465938169812784375215059292795941220001543114944504023827602434386198110051204006325945310353883747048049698621719110932208948654575597595148035646230049006911417689869157611728469133027725749470723799047579877546779920439480879047622199775673232017498836750328884840798532025808819689750092144144077366209814020513375566957121880762610316089964019024510746225772008474210570677568928173955911112092196491087760996456269148303395873429844220298270954835186564243904721453399305935708773266988342314474693920134141568600732614699755812129219750788781581824407283204760127387344996540450486648780779465919113530396694471563395914997112642098237969650088391571022299888554331026332310364599859455975692165450787581061251017829127797908158457954307187540000815805585249005696959556732485116379896335987244887495947857553700022206946504311119477837255990280264616385121184692410939188646236408066272636810574113932859495541182795574610438002793709130827247605009866132155621976975839250812175799545467411803146028225238640944849773774339564453433514740257568297678740882979891954922733425111538782934513244090387818468553583622956124361192820700316582981475728489840434090481261678945421321733205291680763858682547577520175539255465098591631124967341498107865471345691287421881231964978846833635793526252563283061788646364166090478808193507127341079857919057762480986551998650413798318355763112532129287861067667100313954557547478482325154933734702847319450647627104811198984868451952120872641527981927782474238777101720768335307919702445138129967233369734335171463684114286672985720398228510312868994730340888606026157993952413796200960437011891229185649331999203050027863699745417999652714965687251333726571870220281587597178010335310030607294928702202262296146033113631202644572376168523039770292802079755495912529847958791814906334197066103368740053540139290927643128410068190419486745922677516339502686273275964181979569270992942771064578956390024640659021142486209183550370278867305738173585826742382428060356500345291464974223957295694738920625903218288955437445817393132121281839730287825631854113828093533110512385442502460767830063769806668901881471487878642160709544398628135709445913239292205993893128450180584838867678681091725662751933984733743572162318382382102282117607890555903505202056861738384912009637898918724719353086104021755555623025475881180869498219314764333352226280847401089729176666078679532166787310156086345875456705228887778223440945715927597956100804451393811496530881801332295189512337913165586056092026417568942425957283079458109367327032064326326918945871014438218161643278257040092559637678937129875137295430765552515274586321356093958991730692812372219704918088493222593585368247631994141720125227078827936080097530992774402021919996660093380419837222381940674076886666537152435454410663542631640824170361644179563166063538540760483935697985512497375658804925460302949743303375248125013596602622532534237515236972450559841314033310958075748968936648227941018131993813454942419449820415676777837363811749548251625086317099493653038381214246731712454799684637093622370369540568889044249606281960538601863524841771114691453447570337644128262870346851230626238321541784105922695930615931504563228923366764508794389846915547297739567512510789941263978734556008593548849091926312898838051689162789690386265276195159518126415356367296286396881903926288319028470598266929491268808000586614529950765758266238160937947613416184151455934715739792773334156192380735809155721700754209724506867063494227571001690864747509513591085312414569935333804840642666180749248312698013080391699170602855888641285077482725073320472732139949251791380645494538307157473904282277677585467638615660838308538451619702492168948402923219478363995141998292218974143282157072613432469186914511272337230451125270785125434562797938366496539042541748301487194214114953748753741255171182446123974501050508081651677471769221041490169526567724609945274383348521665699002540971905784972888413818118516774556726294331624592977136107175536061007560922614294247400227536729103539791513693828708127873868429788094126573508649346594126684727436590844002168599483432328195976935391480924858754529185410642269788423431752716317434466738088011176742764413990868948051706509415233482365737952348499036481196232753064564658423577431094034371512435356973328780751826505251046952988970453331138358586069390082976362618900114462894510388457941137979178684153351938422689600162512079706239937654644696476189638416883235646094641407288477162988499608826746028698752697525528397150400154996826956887172899133660753383969577993900901014918059317581958643190494185697667536210182046859278729322040614040708804786564975078912219776926308750154914460797803125892611607796743487009881663134996243507867975250948780088833429938871054289750962064877959307718074254455052391663650686312783952093100623799726646267521600436668619857441796464164583736367452151535864935092490861463656809569884917737214850087665712064934108766967409558132354609997788658888318849193603744623354048349410691582280048233616966974167035493171639190281977492695076752346184786967258575798667160643313704511859803954418928361414871675430505720490911516563754782378926106746916295147605635490414882715938048503693055054526760086890507684738251740028493058426868370233913727851760490516468399350564388042417733979771387068139113299453252584410429754951608154088276300841871546098441927052378718099080164649771548661235777244213923989846824456556949556016616056975025304341469131541047353053803684951675358392104217722143775574462665766679730109379942536293955830804951065617051545166439775003526644366579597463271777295312302821286925621802526886508406343849552175281088689972671657414711987693091724506154661583092014235187759188992419900167518380005804819279151924111989082299322057188763488166335301075327389857081031497975116202384719975507052474181872308439461448303784796847834543397940051781512857191047435074659499710799485057885456666485711347690884023770146227049646559031222713561479216297151102364846463535223041945519371194630877273192869378196558430495573430465892486614932643471478254559844964691777165046648010679579610161074274154921103808215075830416223122292543921660084172413683229560280637386977122475176064768592454157543311991955078577398284506839626672901921990933849880794561276432161226891089058922563318179570420531593167068912530031436536497006785556773216787876943337216746067148703480686924626162094593389555331215704529853772310277780388428852993407364410714884516930343181781268925519887035745272143361489855414405441370605920650586720594456584683597111628656616547269438527494330610724943640673676022483525216351626769166537159217029216182628382784050955221066833209447590131301771463120590917880935606591217098160394486936904756895398063818927145477002187855796063632680851622749313620574848425221989456227057665392438883150589970699565976150616742177588632328863053122133127000016036093560086601700411414735529077170321280714385665636345464500757646962661674546110994204555867052850152539534049981287183959251738154512512697155949148792866325365839864669361221272994076452472898801085358665871038098963906374956921604082398479274180869141594385501218637145431907577469142927800814132518846899652654303948515773143916387166484764933806740334251327973029244430814132000677290043353074523507609089246082852745945962911266737682715912225748679258789033544191341961713159986206763650233855664203847234404955712911160308889067514538386092635443479474178639147627824571425035334002335944130462405856779434046802461585048576509658692759720953365904651763438596371511036864858879758342947401088970411588322535639212708520543972973686945807610829174402245174899267213497721483126333242209086763500822473101995604982133227190915586031479326049431914241475031698015302392558318938089460270635997811635723080867111169261451758859482944145432297143793932959562705263263125965384242425444919775875686230903528899341764385738318755785275376380612088912000018199155139633881996191736764976495076888601380120965367581000924564748901098791627751486495869350845828015277502053215970887477535413546349306920783766519224909124385015176421542397167624606360492562113972354323928876767681660548900026617631676623691677595115523976220231563185729529655399768695137553911612365781525122829225816170735215352595997525524292233780816619672922945363334184160046700451249062775121669735058371566744535787183636417224092897354084225124430428091151904119564136364973217730715675248308398898707054852520892156585619170847355473681969925029991302261323979913580137749922182073590132134832128028218979296090186501355424762514419759650019190716170603882522883959291945919322437559618155591380493361475118899086879215331666478253346359757012669050468643487895567066877133930032379769241354350632976836426083765081138059944282910744285369456935929829967198587707460756624892302769665355638689056870496522533512091347983783527724281664478287453973814363661480156640424584046066814351339437049704234814055280339887343559687452777869828697338112815775015042441610549780217568666747558847445770998504572769547114388666380854731558967265358216629030073141073783285228715313466638294128530928530010398137239683575415000938399345618145640641415894226670361842997060792402725503283438231240181620699832909075041839560726601508028764669378854591954986930046910488010016710152183446041898874075705743108364514273906311051544715152410151479014934715839262557106848923033166738232817825579503300481893934834539438902652581810958552668790186002669031260998914605538153237089181358650738827287644360222431232014912652771200145608504534988802478368321494912829258177444144936988316505803532286348180563337882695907128013879160768836855848623948979383670489702757330594094647671771919437743225550960973134043427419895386616669271231157711460541845781994489126899176844437084723709513891286513312934898406700169522967119651411131857037249309504920498620741845375155406704981694621656782725087407229198797253874523623671339118364172530787447807827794955524576584170330755893844438628085684017743565867005569263230938638340086090032725655913747489670279770215163449976417251804198862788451398646264639769667133789807025462539180558098915202581995487125500537980929269019992222316121518912242877534224383126910261459031421516678394710154831325967005599693527528416912087385367067632704258630794722155247674179992417016960963102918363701675190635159375275737283541221562786490064394194674371870947178959318292827011088114552092952681978235920425996916239101978469149567854810299165592467873961538416845559342034359863951336591518101657655230791725405069672559553447620179357891549897945038416356123610731500743653611031260146640679663297283112425465563208736257789004839084604654052777582413324031281445229669712762887008475085904947921753283301875355838017801747260209322450451148743584897223644110865913457413340283444081042318614617944801046238443868489409845782027617087292834610841514835007122500390097193492371709288339261273926395309404093682249339073828723175615051465289393036529519007402601091989352002541058274101716359454201702173417357933610889496390659557982008582108021692256164155495529796137959025245077230948448860614843267998423906446628160742875358574344432692184990153143048531564512417810080579137238669623803873793228939023765401670235889281184266501119418904567821248639987935666480238233040665501603315792140064643315324402796347317349494761634519191093868800793165933870578295510592451368889640350127951565584856734341536452858916045821196535439579888472769051838955802695419178245453293715953807372987313955365794903325515712881657538220201526347138943804562714883411883412358319087527524186522156508484448388756831748801532180092823229510663536592255012072232818257443482937280475299561529139879660312977816855711358075639884445143657977328907919012752471313496361607380665889155423588799197865561328059626671293262972250807126226038793347044923385897597807962651592130783521894106938811806301068902550820710088812984132205451787695613601594375023742779268097278974035636708625141411083602141199452179708954690702390825450894075329695335089364754575339454269003221771536824159050706854259590195269764792103394599538514017339317227040068541197679194762567181912792046236416701531914191024563116726810596558276071354151875536064472906921013183513888818502375941638211961660808378211946796012098438876148932557646917441805540897280332198806773754285031047865497106249866994289238567612535900434148964906089502441362753389669475192850577591522567995305785218617452920022942439473473261876599880766361150334539722298194477013824574299266390418460337588665154206827332622177885994581208948732537969356015905737645667637441168700812582596701325707384992274457843233058170611949272258308935999853252800267238787709231606219524937385874746878960928041472746423672129558294332711621167089437086406122048532550129223521012887700904494452673017786942153149548487551888245686526458268025269280538553213138403597548472287841300688116349923947347667814954620716043764356114715841297681266604082012687767276588776039725350751739608768413964261268566831993570351979131495304973989182086677367781614133812750884388996302242860625582409893832293942903799973428167398320475808912550391431016754401887730721293049301449485972427865034169892386357822376577344153756055464965017341411778158748518184002044418663120121498184134722174882222871422203185313281986711642706040632217103208282933877938093630737208331052591941917765640072543521431285985823272844622244942786272756146414178702244828803086891634140451856333574161204630893555865134784835244556174905646252848320761361490578146468435094197245595052750940233516040575210511005996344662187442126920561363814468500087018970762574153079712686025797772955134966789047939421441072956571984290605676638467473380758806876310624560784451374208930989232381242573335061841988943383284165464981377034639029733999270510640405828843445337131538046360912683913533849964089811319044714802653561234759302125907986040605638135995900942955534874645343780444053226910409313114252152635117011103843376194985547065111255360950056959953602418044681002570296403821841861661154474020100179005140472292146602728442761309093486720458170637083833427340753073447635716451286785451147279900088501717080259918366286362187737981696626282776549791041846542726577975043039172385440653571650722680845974444972671277643045830542534032616000358577548713217839976765098239253996697251789643144253821358303008188763664822077473166886545501396519147640485409616717645759773962491525982686880580330931471420900680703944725152145352862807246369275097810184697987571953926462200462250761170796726801268946843073573058332997669679856871624097007206849774543015593212456640711996173310351574139903886999815621173523755312672965875168695246545534919629322339955860114077091148087526314381678349988447367802269534253513139059112768907024392442438863351001223503791342945082175227642802990211106421532477947490319401556439280682140428260547315070935181216558741227998990087969306047544582938995287201010374141927855520790380789952276168166421532233129355663539813629853747156530290215317292385336208873273627255402257379884555625790560819029088369678410461444876944087680352854409516839211956093386783182730227813211169136753249898142924424711084012573506905585659686619420022499983611617821196376030558551115257407411157203118375417976130704663696931630833259773759889108898141218958945479362476543834323179513601036165165776365539077023132882569829409115725681547031702197754160365963895612909100390035988811683636944851767890686051531887702055688507815573729478279982195267906436505194639930936116755225613549511115653294921675670724134224826676228846940500370066500974501019149119667371339897191920869284265668156789926423973624727840806954076745525324491887938107710539993085320245165900467463323981222090442841400519293510392288514816654639872023921407539583403488862784434815431789916462412722379106432581077340444190149889201184392730577012018323578407749196135344078888038377962679329064122371258170768456203487860549181609032340833826923330753627497954410362394860711960357631793921222730414268248224293754403562996089682696552993457656564229456566357236144206642274040855032524214584025078568248311051997900853595766364390450729398092955193226521061199718866328433458219465947186145204376912141091919462006801388236712714640245401256723405599013238459340574722229662746662124581211709271245020490059293836754349158854218226362362708061236754920259892638118070102104649026777897096261696904513242264419319330517125832210705599658354729417581615667710204548070740409906890152045062599719092150682202872160519869582367836075956342875732789984018438023984100921874961377735917778916482670770693435785678682520148661049335262251993423976869705668050323085131588211879232707899640034351362217804913764455303353086554844382824930800416260779417255551430855520524816996017381987534968034739684792874663799458650552294390654030646669790322690729545827666083983026518260772578436118763961678353106058740088796529984870357983482349617561524447841125695511681804349898688119488544214562503077366863600854937423851622688327765066951586366006310386089249368772032251802167792871102685007250616395530509809549973800802769060952227736196366038942585461045841074694352417726154955200569154066339255853526562083505291656911705467521331512270801143792917905717492230827055520832645624326021868296754312129343847471223302104402227583114752297051143668737074054381580997093203046296357779671170459957460030168613902619639508055723890451117307256824811291915003635909377915406526697222172403603139005700879264842461395706944104127490287060349578692956119755623042841812110805608938103975696779898869399967126031108536037088033441010036866706084438617815933795980098592200778484091162356603169085883582878124537219852152692896958058952263920348473946690201020639162798827634483715505600284490922097532806335372150439916659774928221802160848871714228027491350564566207158379404836767873851609781746261005411385500640623884828889057893278615534736620878971718767094676979856887019057490457146204050247063573980029263914242357185806332340330710384061343696658437953483367518932975481236110748171275089635149749410926197187428981478573468792437167136511336854510689067911369426534818340948718362640480323786590905941440511392798424881197660622003703290732657920133548447160153908415579309668983470730213233676053814859594794878702503086871866176698567418048912820392270898973736528431648027326378468288670525274156121762089545271949939826974689347208273302513539203666367675297477088001855180107671036091458200378722298621815132112275746705138338719449129920560170117434903751300155160688367822082676420931084678692452039937157428170571479793681870265796105246034518472428619439247733722555440809971892339812451321219874964441565529721599277158794647521550413297730249856766803957749476283344064705890343711593995172422016731773472232599711686584890503785569595839436587343719448116618511512105385873947151336386179960243381028263496316641065029533461939202226937258951553960245553669313011638572715621997352516255216574065477704396100850932630969807900772964670308185390795375229337558488756914434033081087151058954085472802505193851891284211949311694015672566584086312455988664883190014606069730219014809649752256476064179163014328932206688731909548726918549660552758687739606844665126119907502627560795629477607783646664908236013977993636034030783158154919729271404707630460992148016627073467828449888947167957206625284245700973425524279831239473569558049035210324389825330772345766087199353718434740552924625386768872470501421074276564606445606725337518228561025477505112364051989846633791751290159503425188463221207003438059015221645204376339917675410794362741492610742241319175403706196255584609791483337789901344386507640359355924183496830845168063147353107674916389948839502461810726469638438748568846092371835974260151454334704856118888159065014879021915101097219703846017421968690252746353202768634128626198769630700474876957690499891923383726787233963248266801164514199624248141691368073740554747431083733705859897356725956341152460404853717968318144541284030925915870007582440334611076863956982269731196458300801044526283408163514080594390796027606891710687767963724686245857555421585726240255946807740894614951852445751382879840571951868501280801697213493652599057562976087021160981741333471859669350717608166158720903577836777925112336567707315237295508767270706875910592618908072433596773058110336626493534725688897469682883858059670957729259190781795908098721108569226873916231027426630409501638061021269917791034675960139756574633631248468699621148116365083480100722935582271218028463526935667778989732011310232421410653856831275323771582321703590422053492111179469844610796059113517617938372997057541905866441332132776916909711673213431704506733770089997569048431266189692251459474531724880430459640578987194237652162209691404820447957858870098757579032055726996402129617304747965755763353198162174797557407967631750888050588051796032237852200111913221158978041182862974387203271271560007711139830246183102896377247413633915853510644119853058327544215403980413040309722667750910737300243945975618575413023635808113157782715773163058440520784815132486432052251589047405821462044566642171655405912981790701477411642687912891387190269606481540791932979109985406943898863097101394033001232900254134752304303539989352983788456895481575528526284176130773053353688320619188524429068649578928720848851003087430590541950797140800937767681613614064190024021006723412068741890182643341746464206776098061057146509155381269593580826691503437493907003328702277214201208859462139440480247602041409324605926579843827671413824516652399773693079121661064733959351624992284567492410828887610648182235666361893865965259705334806899777220326709896784426109550920144957548129846650981245664439357068934206280731798088120353377438550340572242806039696759949286371494681872908155130632052878849654405004910691632339437624250100688217076521484562192929998145796151058677764596665267506926647993511103480869213684750657532487775344062379869242151429776435535949593025689417191227389209714327860237022767113817925545996625175138571285409972305545743860328902070140284342642306685089999264332341088906675239411032070869782458327263812832967754427543330711951142773949983455882043254898592257089953633680462756269514442895133378364607100480132883031322004859899513475461200222865501816239695321852912865748113801677740370596488059162435580862686054780125140120238008084569935026346333061927215074321143481038336083380619346075547590289589169424434401149544218953740654002373749000073804059557625359885036079629180514872273301323461169365982922728211290070549825041636408921577305972186036921710471422322725353749642673665972199330050110280066889516166767591667786227640311512319620258270511645620340258770603573287013887470403918878629121127783502639802383948987073971058558287842113017520983042771663616712023530761468486252489555041785417395827702551451641239888277478070634704267703557478105353839553800392528322058083489980237648631343080440203535726269346192742969003332400354256069371702807743449063032782142896345461173789266641520099108640600956797815091969956310968020923469891479387936281287070429501204642611390281245779019086460483303160077779998695390187389327565018454557189313877975768045138932041662960168153390177082853651224249701373266586575730302474918649604948612259091668587321107319994814907630504600819945865912776324712624413335201676314288017890362123601283587410920802469608842334819915111482493113547193405003459610135354559633964939359703575864755122473925859347143402506987693571624622523460898776206861210059375302176244758488644783386774115307825670329050767017889788022345603491527265900207693174236198634123026660829264180406962357948920414849440358749303462028963623913238823514128533290813430041218234102135151921898669359813611042297625488051450806531198396893971576532427843247720755938750252194844027151417328638063257757449110769432775205531057909480863426726844024163501655957048513826537770374975895804968404049960002777999901403269130636371955365486967477748821018923997813853905632173929840669443261490144265407875773999999878025407640801844424349271833423727879672464249628168114646299876855013523246263482441101100735418357882821712935125879809709068114325894138429230192689677188949356380213856448821482758239038895643999628823920576374824050378231048433860531501259147528259318746334233606313219951065908665518104608087606080108201849055588735865039348372656726345551304078097396064392444650580692401468476270219945756061306136916124533694469964889872328295663502445684875659559604576313211802772166425816913776016623446211953229895957604273131637786419301746172405238179922150869823827300335666769910298913447647556340626578591111308397513459490691335662644357356044143479622200652514085673457875133935494258100527224442503414869215117846544935434894920861661382751583879972418023660471654007033459809434532191439613498662166276153109751522711310522631380281816186272938390863999994734541254167239022535210739122222302570927881936982689886953747277563072691146737317979094894871876498155908726567528952241059565029541685309547010577391604650686330266829548539546298499226461293956852355937690544572627836907177712623173070007524824252224637177141744314004946404422394484017987163029304898296579718500706963871549721460858845328385391385688946795006266325835559280983491942828152386696045254295541308705805466389868247494269831336824778365710520584210741314514539882941959561481810590663442558007889025969837493480517930248459001861804030523568823670946305346574003255275119511070987042955901636659684578259121141300291763197592990027688704619009934688212008314906256538699525104783297086449294093356122243751407457859982607267809452175668952574499320148961836711278020708300285153628264389797670188412775703085381447966846321311038996567934259034402527198663466011805057957439642838472504395524545161222960051198331147301566059581915133187408337792104869239134471692153930421121630413140134288972727861852426985489247119714573203393500717735199943788309999069082360772158267407127052672973796970587738635062555219983107753049530672523935897213796917814799436891308003432316064804460927877278258976977453185791062636853837294071696972498436154471184486104263119007703047847083131637126476407072782266263676736310662962060675457269938351948932004863572335225036052782929747692774854740837862916769022986654359947472758402943368988094629573498076460705822375863207295619373303794083706351465527664971345979093865966260334000476117399423633174471005229819406467270344612949798814506217917572037114317831751475493705752581569903648643285920213813697308122035326032581283141255129616973778945607143960139931986355566346755343858039574891100478217087310653554548225464547615052917028642763577273155373488150775671191372027369435528457325715781041429544694944357303404284922117615635098536334510444580381365935566308382459939325619540972258538870232066554502193888035291604311180365315531454970646842903776044264574953256564286391583511374819459226422470148297453557019162436380292082279545136141662167272021071723461098921675892426422981341240027449148790277535643757521846267416452665279704171245056657247555298111897429895080351251654988732259894985036641237889468272775619380858541335897897590011458226163263844361742316692400641924929317592658380840479267009928720790814667687297834165267879327729843636046279015935968212512845683820674787150445315376229505590034989533249662972946908641484720133769118490040953878263046321623716369763917180224251708618593333471093445762709189543641215614118965997846772225595684384934883331283233397622129689907807364268742454505756396562590311940422406555762945290703125068411401584067604735679731107791923587499257259336982374911265065271293464694200332798734141235778695837788063743664904555724156153152831822951080479688346218006514818079436231757860280460564777165652173011925226682372611226883758333942942885928392443153242187576678087167331646035682461957222383931088128896540238057938340582527100020049612788840056366247288924926944201209145960484728500920503718567753670957345142057188019397834436920837027757761108140524608667832797944527352262561356359592160515200548218825398908413451671485104415662465985707949288681246851422232172037185370796259102239209553083946288683047237793285903706976493216017935468004756094475372282172041327142230463188800010426370485056710976016269444677708543513627983589536533740148171419667763707424216041885658143436711701640222083042189671572861550981372801551072133859028682247122461543714996921352244791921376371944153572769234851354830253407730465526189213366767465411443914281226332067813798708324624827797792781317491541658565626607265347054438359554781110806754070636574003707658518379220411906637966616616253624173793099850632503750410880103458488854828424002480102433225770351884285639809991525322809191213130661579559768987574943870344953822442495035683522893271719149785682198801756464513541355769301111926100606609210521248735670698854206404861070195553496713679563661129321836221469423323389875343195204531632708257590941710124786339140838813422211352658138663140158587552385818432403091858006386012850401814807782575060553022087650651969437507321150979250523413247436546154803936672339041598632007986365130924958113753634939747667770492986840470487596755083302619499180941785454908643601218263887491502371416213408457569312104137356493957389122814117437588873721382199977687916419890906771400980862616329966120312647576622889494290786203506472806464736286405367526695535064194844312352991430710771495272101435965075625021840496017560900544118639116203603025359379554890594976640697920458153997900546987375986141033001965490787706212025430529076909543662443997310848682928181799079586228395105097642431090819887192353073304495440418615683648557712109587741780079278671347563485101505041487729281933321755347441487912834603898773909835361083842655980090447048743277112576067559956915225082393031197605475427772831474148715894353754570309212975374486816311575565288582305919752737940381118998158412140810976138581559232041098420286051277375989250849434763967829959470494327154105809706297141809879248339354368599088003403009498776193247122107074545430451278139384904353366104992060788536072632484294793542608325577656891985829167415059594858516510009516336490263807173330925824536680015815943294393615723193489635884032854651373252572246990284919664186583247709253159126172096505735638493399736555581462143464152708785755158261002433445552262529310853715597234368315927524156424285254688609039724203697213050598280527425005631438798223164310374944051224190687956875069525648109308473547765017232925074949759766350458695452469903943331139954001728397863515608759357075206497523907805917492528281300534015623111661355741525105681190191208418551821217896006461115536376006684465832123023285864566399123060847316970101074708024289912467356470098036717802589326358921255007817080466538037798168494378795527931743636609126239659895930746225862685699397493637996463543993606904587946894994488949191549598574102471553116270471373191121174579861171769335700411564162875759686571558930415291541351809131879719706459998939970591522966984932197755565582836424578779274503079326964832633800605803634053654908471199670953119347539200680381830046137061605252782496118002531788166457485004168626203929208121032573689775122233607739297319963208862126044348125833700215172991194918604641846115028214053905816916096647390890612567731027076726297076148277701082556855400491497818826694293125238709790611193648756278204122877977699876149640128475667049694237843952293293664387774278256365992579666566522746701372203920361610604644138178583400914903871570407354931092284494231096095593993707804377792097085329782595208154920941672113414394763322220602832991940111247585939173729486722824023929521330199040653704165926278820990521888025795259879457111326002926073492103662289977342109630460277390441448617351968049511753842478683550804382190181010625865069653844128732277472585730884478808127369751710610377132225578779787380697672506191081132027255064801962315237419108322005468512040643174471134484920400566009484589405091797688561652386195174343331057471479988223552700887329833603814209151919989352906684582105237124721650458942866562634406779855144660939447864884442772636058439895311677839404508570228601054421061246846218960272029508933919683614616622111539133416888245358638183357216573071248824163206058050980254960038172335552301207136713130454570507191167433478997122569862857156982056019562334124089627295782257009696676485136496108335139765726883393088334543152245028663699394822175623696883357579569691635569873068726272558844100038992472404395392103591577305899975328666142813639246339576972897927626745392713238287544568022623049860299744901552666815176298821859578179369759632584727186647027378796686480959521627884195006485586518630537046615509975701073409106030564432450768543298337096094335140163786907246435523097870409499209472184239622480109228450069621842574735739704877963850791074811894263720512627979019359503782653224207749601474748371728551770611842321437560299704860732608645268178134797737252439777315571535420026660434366731847465846502966079562997434783503706928926654267130804946142205732052572709240937801123689526590297023445899402509958205142836993283550166501341366891172239401975471878709684157735992267525763105525454629953603889025275566525138817801031567312069343212555071365979961050844867894746313693333838766924977465574618762290395937892481682660905448156134108723602697099053545568219210821658780782140156978856943993091738627921463700916024374655428186335145265502879219448424982807676177781667441562118074912450598283945643151931126205988182394450152827311671020810313938684123341413923026582114547559610684376541676218873271475287150206738844597827213792560850152231414942019159924006954006764422041847099614591248829602075034944066816096050064951815313341562254046871444812111918675273239411856302719341147280677900766661475266041782136120334062788636217443868737697385902947848844822766663204320571407708028517546460232634562620152142813433611270857774362993444724622462069239820930810254344265833244362546622927529636627701609313983790927299461533066464594017330805244864546694207876933132195470989115112319805129196824421454512490043243917959999862042435281947547376561016207259021334986562951122247866302494476228913648978117710625227504078470863418391888140541043865745241548369586549096434071359620383390333057402623939576495588474544270903825055133384579385516362957552400017492755107743889188521070984597524910409544416822944402230280230031942992528813573010211883078356892947988820201022402398142038535294513343574596183526497322874295569988439726764665475532663540210019004615705085609845840217076584582863167948530272112528340660949045955226711144272020343152252551863665160847885773975738369586149968144990881195394448557092971848314011107039943296615085286786069249260864654746240374450676942621159479152862992551529025973696362741252118402711389283977653575442741837913293770624229042741382928083392883473022936105548488759769457215020963066444217144489812602709919205405670616197956628352990948478231346679055133027495113967763298344832833489915832143472187908693401380643184024629279871221989252933686327686613173339841923176135421493891475781510187734867234458440169702936713314383505162954826358210362761585499510004471382542034390323498403208949314903475679011578519399132737173756367327175180772749660175760143166892814818407521427700697989308204092749068311438166656676338743477637347304697339314311745548990842063292912650163105511686127701970245774877178833183646236541430358407500932960840842398022060241375444158600482854472212212775276617668439491922300899464018884736518183709598386109844640274227582983475291213918671813408485887835664440987697260864985063075554000481942243031653083006808608857639587317930481657263900205274528875968443018587557863006525499638561086595159157273677291192675166548652253358130199998695300572380659421994372098550341574788765818598331515408563166560191812336156066045535204984040861218773451468823035774091233395794552312897443466686253891297442625048199476238381236441861627402305895581718992388623389654453550011699796057989571466342071221838791242077132463016481070603463244295230392297332554456042784943947599715650121033746980378559040201219710496062128896344286848052738840493529365073484275411371550801220293992667704329365839547452342381383517211905450954639334425161633393551275178227078024469413845986898427422427255250927146456393633959484681666656028856021532466805714332171192454828660935438299682096606538834324387830300583448767219274114835785023519248979237209283789491660922450298863172437327536413301013174830701746696203499947162381684722292014607237785674141933921945040545960419338302248353866468515045046526509730057426219738212334137826484051623790173669690200525129757259358892677230541466714716771287182662811775569786256418549632327200274386702385582308623230704998161499878699156215190795978140238984408585746154903040492950356868740929464732056097949015084973167574997462968868976019609235521085246130234503536277847109522708477048048395244033255014463211907395419849281416050719934198584010688152543743284149908990191370159689659320649698697955754336369071198308791812524434799712419424003395555653740292709414872622406141741965051708162465073653295036908990799566860744741127160876276927250358834394313473619916819424371891125467345276790894678974178124689025528547047332097976242832600260669625894560416999699465458345440705689781012833533725074648642372010167423572194816057492318496062801958714361272149048029513186463581345138844221023700986002879080172429270839251017566396671598149168011361821950093082941667168913494913074706921744364425778459866706241504040359560722245982054805445636463880505553366488301130456405818119570279402431472658102146950140399371666748660290309894141312033218616833653537745006950411881651402555489506529179170419780744805486741237432886813251604769595245606471635997713101394301538557250625164970295912758480237170458770539476673161808419285139976602713123741537876750492660608380334894117492724689071311194164668888137846202526837325720730129943018334907909731945649290724553493664606521459125163375556975110052581698170936622496865561012717258999892529776374022105069861548452198785528804067333702445978557721663127221412895474984761246430816230103111968610369834768952787249225688735144869640161445618181754736502874305616078169708882522946921387643623249975783109077210606277636148430582432540677191857387991508734097669606414717954408415352655930030877364959388060312864781946114906656786562078842699543854129410237243417193794454001262496509466402939331566200263847624107972817379133359984031791292380320234767497586768341619001467154734261517050454271593285767911196254449818349118772666557171900229834982662179484674010717768874982533804714322460884862414264155190230834700084374507798285970346814651809543681376352055903093004444096671159515084083205666188086050568818107103881405538884739536406242934824802228502653338957973542395062066755145552523710302794631721745682670110807352872776994765373766990593758930153718111072838677668487624698770637297980787959909237475496781578240572224630474219536871137403071998299915485019553149054104016927170983340113883845649912350487457640223630708742044822896750074123691679499329996306840415754432930323962950247778823914645787997625468637945053381585184131878449665276376988496229400383827233527373067514529299493710150595450678207242528752720184562374125349275228215192786139835860047718946855795857052895677041398334876368738511512887801909356268028596182758586047423823329912864898523960679898560776600240626489043568496224750901254080630491235127391227096093627523957465880475893549631044947903510627355255290958136614815183478303465513285264830635744086359689473413977515662270043149562223036670576232318641827948198216521121503856186068604059144848323148073631861490127194072576295504807846641333947654867640566574276320560043951817593356765670087123187972190787066179470787254652187362421259436652128982192367567033532640574527232893962816520847299872580201077369817937392066611744468209479112413266846759632281172037637264227921552473906412651675118430707381805795305274114350659519193689841157014131286699879834678320300868768859250117722631284555796764395432773877131529332555554230559039961214672015244246261963461294953511881360687126585124083608129718008113547811027987616329114022916348942372599841084951104635491189497525223433094297988771965593699144839599726251471809573843590029996865756407549634458992261846076598931038989781611016856412870926234419840235790262791204123886809001016035415556244991073148401824614264612768196065301811533537001366648706315277677745058694152336009671921409346737070149103491980465971630821006143748820239229270231763183133922678157307699215649723028234992817552832915364893773958724900192487015850863981911289578919039691376657391487775925684294624588842358735540096942112663900260451472999529800449816330733355843394085233161883532575977102755454440141273557678565574965577272383142518547440430029261232631284726008885409776767316593596297705521916439425471318076343385048708553095047418992761014686269016157969373718531078528785144928704562610436571045332809968281073563590958404385181827046637943523797027353112354535677403521934018928504586208540637095948332821723908105448033555276848983400934840849559136934923783313990643958143555229770040797170058382261919116964428129843702886628802015210046752506565071845829095104470959310557427784412010488301006694979458560728547806734767178838127359291825795904909122028232868277357247498651780598737398640803079662670144960195041929985528213595701483421630935540199927376913341132368125739180617538501462084324805230884320370789621678490480609280686397162584585388107645319271994724990048867057466923817095653085778417186719990888082614271986364474039385599423122845269183844584866487882300355677553082887950779972943905788900133851398275414418471073481626499777284594821068263690765126655667062273461572395455966140747232527737670204646381416576976470486209844328187966800841123392348953508940087307928794388868970591895405904248161156010134189633415796788263233850077713875851979352744931706220997889727815169016569184410316346614566446148011668045479732516157932689875674422371084056210421367019886055427492734287760314250413577633857749163243701538192479842864870148715642818393920730213617277021544348335667370731278403056190411452204557530457309572797905574389441330051593316672265638188823300672379607930105114708601885643825521957075666667298289400137073928450040295572173013736613406966365022239863279025287756627583535336764735044764984647818141325054360624237246472922615249140739265657715994649032337525161800734484750658795852698260109732349762156745896032555888058718980692913494047461327859732345041282768883393109324392445049526245264959095356361556390119056723571966552690735706733001326168900931152364896188050551534107586008356946496352574260143177312740650867938963363952283502929974044845517845063824615618423154954663505192124324528814397401679943211510461863443323771144658547865897010244916052825675872768969770903217561732845127643683236852021465189643468116006652437397480707083133568818440368786758794378559649763112453898326526920283965851651909487393988624950228309395532671383733447735616371290875282679786971472109982386295768689005663847175450816594554446920129654878411358055499241285189846824660344783773344086616154870741593429623781109705417254219647016151734688303761349810919954486027307912579560087586322470304702681044986757317414071225188017849316313882932068213041485149148705382856315360772712721120117397275749008102651385394937284797513771546272215653280382711075155706206110455200487666014790869989016915988988722669996125379330913390764111799581424180137249165916345777259984188890982930388438144235664491580715506574562136901001427958014062926240535083856019488749262679841263830873385440765989131266637437846961543948394555589121899064285825288725202847938200786348912833832750036806344916126484430005281741082058430938556049361198877800269801741665334320539388413012279382577654338307946389297952763622866392715952631287710191844180991606298065015817832754495456616034027242169886253605165006279796807983487008953554762545156853613793234469897294660159546719861359539369122569697878906630166461635295710235025530683521991404465046535433538048654661420795937594438232877135008102648378501051114412498828150196316523789210407850062750508318872265534420568491163132654158761550062427715949941831957895495592360215743156507294924216232192659198180032747006672247079326884427455090322908857035338684700964426305422875565799991285222790736623843514576055298348939304794384259794151162622656196909918050773763051779562362724494262761373500467397137816994966274166673535519342053608266033814341826650688703621672609778389114001584071194053294193623808825806062057521054166200232801235125647414677978382132262570717678068201136353840497108557681578681113925921715182314189375000530962340366670536535212267274683212210659056113944457655916783439762332204226323914121956478862690320330137881633866643750303844417848886523497780861940300721100995980778824453334784149276449430055310086445424276481121171743645995299460106808943047030433440183412750466096523231244795218869552335858325715759910260083774230793183843092058004621714937027395740312543146457043372104750930821142423890613295349945530205553320256921147126655825390532077867394015360390739864128206663520074414747276644788122121947956074433528816169463954702179440154010485070755661872957221252301696624046676727470275634050785466873812615708757757622339754202656811232654486630326820919275481925811875903762390608030539770445805773807578707072966415492557420581904730429900889675048961931803303071808325591484704901479256489562401742832633200322889431185673493270065770138959673422156172676601825260300739453866654155791854299079820404614937065262629698599840222864814697250431538053970307823635870067941489621430473655368884465895349175761346428809428073038407846334864550994134971135693225894730322096312088996098831940573683131292930898906414453056625060618313037665034242932643449981457535791923055637642539453466953322875547984661127823764307588920167869313321372405323001937864440104223160117114153033697631050558882149851400231846847886900076813957752525619293186138264388566007083871699531350501346940519531813615831898429514317265361029084685778942539590068059997190774842328005622480901455031646053593204770125297600525061850718208120604575287405343598458555788532791895975240352162789814428867776527420315285280125917149268063161046026880622083213172375995952372215934807292593380904310793062698391290699315781194754874623477476079746298393230022310945962726605059263487977611790049883972347970458989612043300266002925866831947910055500584203189597081571371380999090766861237341889180425476494952420056573506517109529489353094039342800501997155384172126481070892167319088750513961510032783707187090032028275690519653983387755865825578197674260581925798036995162529625480766392704262993041356137348680641689646189098922876396967927546804605282207105858702536971282966135617303859347942678452108740038783580724047364468589026097234371199266778301382082469657995535619450835290000555121362181836914881243574609015846224801142837467752497650014957173521276415701544601902219165842773018083306497299484838302344172398181945039201740154299793864868237158533621866236645906708137956269617457439268976157115992096204737148573420754139666382694494531189584855663716597597785035086043681091774174128015302762158732386345146237485163262050271461820035675789790567861382297696763506618083998095873631475893673299698690030813208671180655009685760301907848361503372377527474118314657939869593923223217092955217006776126056359422647497536866771846153418263195404871460099312835668233261710609843518366887285813573278916611088248783290029011043018751608578515292308096797875369980556827948152060080290855986499389727279987609937840147031383547711863900711053059124288300130880714574301771562850271359354566119910715891575061141418893338577603227269044169818837602768497114346952389646886024873106475128610490438224834467345028305929898754113163081083002122207759515499119104687258965179508178252786499038242198152497765378192892607960209713461831721049135251548800044400229742272573286187888312723453574053986250744796044372444815927315075204900786833444511778499804202905916030423094819166159690595532818947991019583947702525767633934322432270737137757082060947749518364259223207394914188988005606670394174434716182992106058707592637235084187723036236107062209883237472447855882517119683690639512917807450345856913862062190177267913686143412357722030957372158324567528011845017996974763053383790686164209325487024812600687509504526382124551596415721999113330377611888677622544532180372531855094863789073559200671392968897949481862339630441641103787632575537583774229219779008887160275170485116856326964672541559448488881969423220041520027733273335255350277733791170850449075305112092468464865397692746686415325709717449048119779604423936321227428134901824088717477347678688278610688032858668400560042779956062817544445895045339448364682129010270088526684543426275383623257639001467700215580715126487319634420617613594757605587242604844351306487772521331269233534084375973893265958155964082727119884765376666615955473165146548226038521933359896440044065263363299005594587846113826234342966030116654823953268850500022532625608653109004515752125766764871529029037717409367906933520527018784107885600587692981555020522326681867478236966648425574916079802850444174488073431443432331472488341217315226188942680335519149110165751206668146244829104019872818482374195871611892990061188283746397786431924389373174710968614315425675601422668729873673785493857776922549753974495609372872387874032864456178632205868004696849973965619346724228582987221665715767722425540981123031540939742897668530606956324105385984443904686519828511538955282042732246764760820420273162404061024812824241299962858942435739894710556034524025490117774380927359491967231245820309932916658971395855802213376265463449792402618928241976335117641443145326038899098134012908382994937318592332545964536486716910095192454564036088409296493515803870394933908180096651906426617257299728677309816485330046157684999996647960584852742836815570034276710659774633615939128064604502168667954508474033444216760496767172132445764914972059309823654056077741118142858709868617992440102757119099368810588181625264923289986481955877251604563302026933834830851839070959742131817567450299364228351055369853404960737445150184692633886339679736119934008132547576714144966679512529626744466348559748288642161759835356763459807583307645884678294265430038148777252740102520133562516849057142501524103268073561873520919350409481550404462410802086579508396457042630495165176459274640302324120493333022100139883405574894364122228969366323053209600189011671278456215121490604434066587625792021070274946462108278443411670748809450979945084187359421461599646525398986558540254665252552537320006072075052425388770523377303352574365191988818606831631431189851931037221854141254732571101147232890682484113489068130224450819065211899562057594900844996712090308836630213141637636624615376030845687959070448865114130400580345564968668034026784920822393339805479344535712280443833790882343714897228576342084320303247484129368159098445591179454832691088233179189589431153205112155745072160828745453251579571761667646737030585586829675920347490494666919256262934637011087593726933438930666804785348856563129472270485210984936217182245972897407889169039639860124214175302251510341457268306600455928507787100465315327768009364184410475171926343912078209943403582058079438703340805603816724273408406410821108650399662620066539927038279262843461642209174836320860705070527187346954153064232121201302646487968609168847023584197260636375142946175746739580339410853815091874893285393003619981854773958066755213581675179596167018828115295682960735078755561637703614321482304663124159753327753924009651300364934750894138863388275578017777439925170999230075803878572288237993072909251725807762682522126949070478814028245619276436312327064037268098013878102312956155285536723257290491376936812167480399526117777142430155134177252187890278396402203743361704968055792038112411036392583065760869471804959077708988433990302997780765616683804708030318405884828101842679270956719838305424011790173651981298847305256159093376236635873753598390896443976602425875889083081971482406656103089271729898525763514367683118986194596888976692378875374609482174333611182386308321641665769509069035074198088717078045672168760771750978405770117390485569488264526402738430801410882725592822097700051141017469519670123522827913285039157195601182065688475854592676253815790316172637381937907435960760777098195968754240076231220192476121570606478713171164159678808530997424210154216099825939939002195196312376923286306987488386626199569760212884521359532351808067940869090163006989151444309219754230300394701799476217689017256700632292920078145369336129386881313897864556938140844386768554789593267760552601827392277978355142343486645710723966860981803476509488280622769223063028566588666811660315340858772605092498637355988249554720136276590211405656117387087653285547596697439745566427482203539160422796368649483083283470674639313885827212791367345391880601512317338258293496445230411068360794798734243760294549627673414818732099316892086769814318926204112488999009924434836064071722533379038105604596198017936488241727087236451202909838588664784788316524809243096605631954121627527259735766073643192498524557065216721759263293019124599979297545656281293214594423982035823919013149091005928269438213914574645037793218157927432258135695460939087976693336446577587919592752591818601315658697785075819739218301689179745218421535615474156014570899693977478767810241591706129842229572356061853182625041876876760916042785442578933264606152525612844220620587296248808025407491362815531617428796565511674544604320046258652174005087978619408715013262903235242805686937655918179761634714016300394676516649588238737599860452989061478898872452027253697340164550227085717079650809154748880957994382989382748639995125411863294259551652630817439745216858734154272425948404284291737373131812373951108542996952050782448626063186699991158411318834379322195193518346010101158892763650027803244881779204160729771512124351854383418912760714889268492893548613369162885090845269208340478326938242914860146982117719118418420926519906915473632016869640812882754807558859181472832660608239653329001931129469235787411290079501441839246515803475502136256191121504023594007934869177157840717175147577597459647928210434233179635784747141700844511478862806704916275300622476779327959841092276952816099947680713987568493160459228192663042125953359728898977725556875443880407302340000593671584787172517391494102740334786788180316279467487718731333858555627242584937428906654014297653120939770299838398878475295936066554327450255568666809439680300247155334306101497767976306161088726174291715355778527549056214796504697366789534585564883612001068412210963961573578938490913947628481899342505609137017186462149963681023484909048814252740986023727837450485636000553165635926170859843814330317305487760884650581709242152903856019377962426997253944917589056925236203159661047942578514465746291317445048102510989219016169058121496328115111385404501004348367998844862293248418624739277821499916135087959578595144036586655349194946264529016845739067882137387222601047122880096406590548178959415454775783830394988410465303770508962218969133678678881671248663416640170147186206924369271088313523935887257742141509581142521966405923591307517855572197198327042938150508357397369573910524817751180251742932274134795028379871765286021015516688169198151904537259787361039154586529607672426395612452526170850400433833827843160093320925125994328588095008574732906720471253230251515510545582857058304091101989207329808328928440625617899316930248408202808754860321808431873485906262135252722261128458218407031314642302883066051769662110673830957566039289996049574891654852450075570029159727771758697903645734977645287202928932589797026619961556678683305856914372822985314527895113271010634409163475432269030485578985097463956052223447172802603645896868877912945332706711627603519288449555336827292578670594682064125317486145471101636677785966097566298513673793095747092299834454929976059692305586590888071482921280197086388322883253264662596582555854864759346183329243796617624943434348390571928113166627268257208646115984570064743626225006260632745142128842728298016440711017043444615902881887405213714055986859259975545774567642922652490725620037813365360227042318508195731911441749771066028703019730924670796265674055476860248895828673371635202615898150126577993652485929231424705662361421437883374289214817776018833825186239474715506908544221674578186180636189160701176939890934287917368952007365031770053187123909103386720019568654075208963048848894765323458599200213660717224984278695340163227950854284725722126750159579468653445484209576362178888030412358984821272032239133429985194479361349863296164873072576239119606080623620383246106968807123935227984291189364075022045612536253880056518764051863431519087064277615218236027511481819882990944920535421615556993142618602601695633320125394686703021805656369285653816529194208545413725292701591887957678390496617336238649478006797914760060568483583423171449788110349620632207957743098866714287637304177051563396788418957930955663970957181774534956678830320013195295108923118866072928627202460159488801543247682899210289264788417029055019159828239638247897092381502564754030542446875692137759556456919570931172421518622531459410834243726140001148445259248565600274685290243240110708633835366555581273651663117984253829066009283360533151024720260782382335630155027961278954694748789289128263418295716688636150722902932619011279962330963471041847471832798616367644220332998651059091326849543810536474639394746034134800707713063525828494082052155118384141165743031309649141883844556764421832504577110203661071975134168534036410081894310419860916276015420176726441632327141610125748145327060963595663354956141993499098425118200383124918047683383113557814978507813349837565488818161559462368492107199759581397932592114850307634566459047569089879454316556502929009151430958721508699520636641977587494470695222121462007815925997802610428723024263700524496069480011577110973314052437939998872578489287674795496601781597612579142838123596437807418965515459568830198362623315836418544558735134255108476216103179234601613702818866853470341182389284642133274618024765405326706336483875863861148937647421107091021658087801489784347070197810265092914568259224040071245555124157439025913083968559156868986263271825040293398515915721320733046229596542683630808125333448493133885791572411397808494446172360998045773194404614344749645436524952520718073351066741395570298698261812315518344004924989031471384412842484120092076594385969968769418045621244500418123599964735291296127621372497080955072146905491459569565237569355444289371796705466638122449959591452897081434086802112997199307270600787013650593873831052557381011311590782883983440986033531464801932532188966784168952707444826309814183412507228129024467829474375500556347557845267600255303136528407676020067775566605488578457871740733320149621005452420611058715514389381925402937357654316673467124520016295493650370130885572184900803560440509458500952310767203693006054926582939300094293656972343342156773505994493518073795464137296346894968385443515952409897032995101840296670722451458522051267787201874719824793930593763089775447247599665206440046124313571048025262521754483496463796037657102384639439608822129549222047074555283197915857678934658066265601103545774195420126017359132224448432568269039194741185326736634383919079569272378259054303911801964272530500584240712160290192079086712823608690044437744414642949908371673316651589473363309201748403296803232421312300653215204825028558877870728636160040780752025357521909782975697319869869028171178481919366664096705581778902077413797178013323347304153320886406082516773465957694976196008868408526380791504179027854376091368502509821718519447286694766955395130117384422479322134161625775799046513601115476598802548049678104807502115275195886585818385284564115453956505264066572239410758614389814075849215673200574134603384465922508951888368308569952179205073934482264400322307885892074842707356277139245241812540758264186168684277472349437279203627584398846104954178519384619842599056004719552632637268711969881944643164604636563344319662495730908340624925108258854045432846347310089284951973356125749132279217219126424393510805372262931912108248099901096312702061409473153419433661921268189188020801427246526396188963357440427295092941287422592200345539821603621707214115965126559902849779285882599830679794202816752059895354832944486476497334177456371602509936167197722182032813206382415273764313797620513459131441391635844785933232946957214384395643841743062728425047502412766027184238034613485388961198362406287959460176661631380168318505534127475551471038553766117742296291324435094997348894938104662005744526718127939515075055728993711582995468878037511963170856200924474205704289717879249449793087214197531762094261022133466377180086189395881686928572472437780564945798679207734504959275903693575630573160039610889697862780635721425366124398883784133505376002511444135602925616457465855472858629539153379715412602281307100638668492842677243911584290845340341253690142392574534809368189911514551846808788675772755261475687446215128278449500246273353457354814045694552201538878828880779581916238149226512407678499634042264803672325936806171326871991120896151415187265445677570835270407760513453484601566595319583185568982727381789853398161358196507388316936534409420203805822498328581511625200612313618056969492128194162701569916373208681395283286215162499355465647516954862218021134271487401815292574367505852123224012161322497251046528974640063093152071727637985236145610955359345552991133217228226200317560594080606071265260223178667335057420566274758449421697661504769168014887115331237961116437756379226740521335347691859886652241526378763808590927772752608571172398262134160534295034628453860978562648276215483555801309235655725426749007647535450355912475061678960498650642573967215118202467775748316331172326940783965194776565531487031359465394762201598518293117539587527544614902348355682521644649534486690576427504526839431693055841543863494418768971398870784753922747259440206519320531880541154995429742232022924265969122308185790892941336066490964028813378734143155059393362845016207126025628763938610686948803358484507119540724791909007886817734985345850077770250877083064801853214357382808430005691330448697781477651858010572743974456036203478496269412245426251226070200978461153375555996449129241253117364026785228098619208214105288422238692150395080069827155812432372053705802968970732391301791619408218898414446181704058443414125736209488911226429197539755256638220742138383930223308485065669684095133756899981312286266420611246829438822121885315802671424080235735275982628208878842145274913992002335827096518952111267129676554038466042105619569516230683711293667517067352677846632326663329352136948111225142262017324042832015367046011477805875456373052095869773256859070916421077683864887303507572635353185718782053356444413629558154456620551804100138838578065836678492804856847408486475850821931872859115827435922372405673490596501707020710562012607923620566539561724833048794397705088438448866090087197686481010524629911847477497831684242043814172431190867505002489715058123517505317480674696786764693653276017853221471555630578226552034742974418372996776959451958897638699919469421750079937417640214001437153155131337313025573719200344440818285639983035129168217385193595091734742849118963385657035186558267652128298679056360538715574110307104507050380961530556342826372678846658425878867874024985471534295381637799780239337638950939691033216277789480183953521990747729129762492734825875678890776396500055831961854610243294501253345338423339019997903053101913217910638914668515403536200525702406239430269926656317846694986430951435749855519875687779794606260854680807370684707264616620278167012648429711087370073754501452232992993611562724877860098673734846524887820949452924061564007459337365546097318050298300354968630805508159108426652161490419155327629098733320424039987324818482261797026319012658376097162917667449186888696697535153217855012210391576815746807708633465704647977010216323591478895474996172934149707376425127550699707369557065799012165904764262226239455287824605160316462992652663138267760957685308866359437212593146498726852267638602884510887723490482091268673684264629191309576165365599439694051096384542146217216717490655293070282463976130180076902525253240811824018193917981315522765244974040783757847276974984987699144761267153681626859241440119919664616456653931970980776499435434738961680071825361294130206828065428327916432967885869628335817705239672097716235693393118694613375374724283492053003962466750834969265624787928366589911522668515584876690778467536696612440022936040968116439901093379365271444675206138140064556211566684579611431235071479565597442327896166404337190227333189364668362091426551841472452074143894269090036547197442698039016580068121201580840030482775784657390673120766641740538368545371467763806027527096730675319343092654360450234968924858273974968210099314296821635695467173380909707815473010865602063722978236238511257457415954861605546461096926447779408826613539281520151354796477690963224570836546406159882176517888942490597894792820265165650539955073965687437564941963813175157282317494593760652994252529046531233401958076831174044576127882583836359805143729616942009353144413295790473219644745244060395033181563682531348060652228984165733546750726641410806329819790114318332663867276510739920022803929695375027598125617866444478078582260246064934100733940627582249094452478449851782390047362557158187563507084997001128073663799169879536179454450449590590841605636732642766665258377051468905873599694283142865788808651346805173375318396594092508437089471493968012554016330734050308868112383536481705893731933436480391595279025867139867701435405696291397205049380846520130626744959175534577767097493579590716963054292501629999394434121063432540386272820845580985704539887129772584909509453122309940199536610805165506669667367556948477549908786613870504180140664890741237603096776373265819001852525099684681746177044043478956724248103873870576755702547155262465376084296807348705497438586853413961875390139115888130020186020196111226588263324132830340779956259626376091956907555975721456136791614785372337390624788612287613904670583567219997741206666431395682340234441511415600593262378106690245783014268331485859135491555576999835844791936890652949670544975365619283921280327755902136169217048149444026706463825387382827464511383945774391312224882333918252108476166792369554366930851383696112469844810741588559939559341273286643927112269491626361764264789435096661020284944658129804682604408167954242284176945353836986019132563032174832217949840740442093547670527921614291300438717217058158235823889714586307130569193756108815444890914713196151356651308414026628666931340628706695163698072056192890250072346383955066641248379188316229585144137460718265855014480718969829453005448481685900395949653809504036468899968935890516054201896201792353762266952667167092046606724242005639257832507436411115608375480933528805294409725846092490773574205121441912243345976907625815180021370442974250020497407765645741426425844954300049689171522943461638512907495079399555919331636849657054755216621504088826276635935533464973110905311062768302382093367516241652484610786208583703769113989894250322334989500200802469548966033938398692495593059217932057712807957119841483547112933399264692369934789194442013198413324390089848968276139844465021004938265537771394120525276572242842238783662280241218323007688752602293297603512472250149683351144337020984611690935621329273071009020960717398359973975639392054949980539276253092669563144172321921461640049471323524535267493849525756711588354397335923588969386949597926537079690671140813991320982220914677018577355645759808152638066838593529280513916229752361885435346669725836176679364540034581119249703277957293577683689506528479007817322075369119537200160300209208317009988733350684609436562628586803264645504035290691945346195829496333408468895458314145019540471327660693987064706713467121051199503395963424036012043130011963855402621379195135250264870107005079378198049873260962183991597855275804060054912831657390750262091496280650171453531712929566497579625248551021660932997078415965699277353276672359906771479129560536141730796873144751640772233287122218016483652065799381005631637400495342206259603389571262965506348068879119073496096246323285121650399022446089249346319030588532615816625702136199979693842309665717818188498547640978199778007727517725795961494931001228796200480509160005533320554780213481475113728378939191952200020585059463450308003739363244701850762715645859104023035388001359461050735544446642309370444419389056897276937965853953174604845781818020864143010033258579358799517575700954961867830692329507649843651618843508528752967057422420008453498954086042828884461194802561846629216165510339929633316876518683652496532255754974687491932899973901790333589066558725016751528539602679932242874191638384283334184746009472368466834326559856212701791975020779175789003891294565228621833950882627945037413261114515235408388504327648483181707351658732671004394578436792229457951728627679059029372590896999961311951685270194283761854719873038510434297371674159387970014245970594121116542039871769682876494306344417492363670613248210798240462652292982175727019808190206939822559564306268077613530258484311413190265629334405263076285084529214310173792594486944025185641413625357421361577071144428341949535274285302758295499242464941191357401245073045895440958746475875025019684253653201659469763964234320969054446268197140420051073637382056086882500972796579188009607951045734361560489771710793988046470886916474216586677027001501814033819443577495633162602686690894900584665022427624802279152605562760019541541576062180085788408914907885790723847065751530046696058404655257854797268321933228079228180593069179938278639294428472742284638496807683556031483003658177641700294585307391681785608462227921284584619750818531491769191686579801474895337372646336632440031715322629447964632436623988015662067255325638282632836871363634730565996600277382735734968175895559686298849559317396317321176328049320067178224880044848993645592065346504842721113563685803988773047831832836121239885740089245570113922604723401868129180772135930958627479483009340543567982573598619130224621248789999944362274531448877190315632784415262522265389111253922765945013081262313222427100575237897957592981802609243333779952232581773569116053908631618348078068608095553684710413038298003200481314388418306300512046413429746379589346376820043092504758831635756910652041102694921884972585046783247562846229872966250335376833757617902495472501987265518824832005531915341009194334019937390836929785210289165397377500986236363206716253352266486410375063704540624017839065339622277863719629062212928246856357626515069210737139521471753069757247966121445671871604512618051152989600492355274425430942476002593370971184228268086295653770878042537920062988260726548757578816534610820899266562367154362818143042802436584987797974439671809287843561639407109757581987066628083310195490461226623296497901536617895974789884530028292863526613109244335688702902944282343675356074579572896954830604470942638663866148718916350115335283443045883367386002032137654221949537244949981982803297390146415867790673911863087523912164521339428038771054160809827178689652190733641854814393026766356965344574044399473067461951047194916177777677556201176965805308487542692304469413889063264711891494456094731530158632008320767907716594806075439965496119505914970755884208210203432630055271654468252861473887992753510716265010678686510395595559858695633385070129421057800840120411190510332886217252377716314094682467960613340952911991563181064522215197963303183945815941091221808235729861659305894241043788108267101123707906757897395073833579610424048639483677326307677852151861081660230909031354569484935793633373971181643260522997614691347287304168577698873817033995626948101010321662109372689639422029371972400008437270055190374470865280963436326682800688877147265429182738349643821428870871155222962247084647665271117635578376516352957554240395088701647315256478474946653143500376699574329661906627649310964250689530220668739370055903770138274795961847900446354696454462628742201299368630451171719348892205494189846695810089686310565693635315240367816709637797376772237913749257850695906109412632870532197594229242047852587000638846784441418112801520747353300835178701285679977801037290366110078493755555252308406254382872789121421877891716467468178179737967912410888120097823471738185101313518177950513507822161722489118851777121595689226337874996834409099195202810229773093133070608032346752070753627764329642031726069064061027154529931140163475348813169453730378081796009246475965840807307367900804943761769436263506445944474209263059440705576428740060322759967796962122208220819053560454101950173242761403880040107901507837265495167701444256562699373799372938979080540727971265338094524593355518697979325303271610698983610392343247926937786091388798115053207754741262286846282057496563963802413273431885227936889205785411924241886694907741262331227275669981172026422531047341255089094228148876161697647589077705490846865157098117702692996024825261650179719745564473254591631649357856217028308743628849907102966494490384568099383400273850316822707728488716046896893872942637982160418930137735987355187982016859434027897924942996454887201950726249887953813098015176702524573049628986116116166184051912420324854294662798782340260360585659930917171859219584717563457292149665172487461530073068180379888983092178349096464350361768935994699298581940370591591516072035215482408234179915755645306325916685069348586751687208424632852692664557378452704523130715350415839964834034486888205574302999751730043324303653887964934371316864161345030888274909933780053073051656639392122889238542778202089450941452560794653047985365021735011840269554248507262274959718877697622803835579368478439631480604551696316833402970608911886042148009982212257997030581750541598117712848381439383861501503631336160077077804688454974089395606010858317603539006124923140284723928590307480965503134292245783049650716474122032599615422735335673786067404118783306280589961766960706913300087782402765836060771792749971176007493118818499440269030939442361746528323765262675445972168724098748638053604190831761047951306341340732205184406308677790067945173429703764572734623298250516466892213549319321936736462274006297330618104291923222968461922918394364764011615266207249207709469538452649500058339295159263031787084686250921279364263257908359848256385211051686002316601793255180950751877348912072560859133767033072056905482140750655144196511608771283625373439743475645735397020751425444025977560714175975714592314175552049173219424336963347771713404507327299023976527438647436402713247593750024116776893171271022839223941007102367993920745551054703215548528046401966915670892636558304065265381094896978944385350625851385041862310143510590299803283155804922355781551553848532880519347075535052364758765401385833321803198809002431965857537526433003997531943356719239391163891349895412472553589116324628748635605081553305017110200984892440340844293076080885070730552530029178545831174663461176598154237538202873412817654772158789573655644265983875867684836425131720479282658686780773439408126331251283009454905300284966723888084622536532762028364767439276432809568840259204245283550748482217895080994356157737673458487156271619837221615039311766626368626420017029364397692375776197353599784328158252668769376653854346641869090208640488659799402875950305458991982168950450070275197545232837429055596824002559281323331508711655022936355726955162513651788476485537029398998576740796807363914407019254314051288571350967796121255186998693511190398919968403914042944663688270636962010274018813826869991897842133996171152162837413329690183901860330048995142150319637067870165852435489780830935785847782979774002036065971384445192917977699265754441585505835868959089436754750639056424466054676463505137977836293623487490781606849221575180197945955047840346974747225770778446999381965841262559248954767544032620848418893998827532358936435401119097905986610478766082060782729842925426097442679542799758706743158642908877276796157001947272181589046920753614527320249733150557935014120719951183710198287150940748571801285736874691349861580205607962113818658234972369108790794203138327660462791036836242258123694067771786040007535954263717707279543744639244636159894870372502727164285058991330095666905742112448113268027772468042583193816009005555266440038132188716710274011575099417351985924999438797503322561760280413930025729566438552177249228636068859797328478812814546993557585235529333958377475169712555203745423848461747967677643735042435791469430939327301450924496963262886361732990506674449029538352013299943324290982654225325871434844731136140598637603922983047037460885257328799611005263030033110268329305055408415401755339054319281631351598811533275676531620808668508763802690020525523249275496296409979759642651742475365030721567440859351444917731691959585361292801943832613422734318966255350969677505267368382577803754609033202340454203942910354265092433030113316376072679754241116770566232631945616826912783890157781229862947087634982418467925123282265069437354323579759703318830723474071838836520312826177306259236713214476668165302221389404124062714337454267560490978456096532559385004667371185541199714863846208755099037986955310744729849091365642655581062116870666239682634232646422982230789815724793414558598552019926734906549832178894653677418384179356462824684266394105167440097333472850019190408404214730641072922981923167732018989745808400708196944976486936616929354628880822069339917697504431383959776445651587793407456158375756098441470828711098725665562997292231575862982130982385397989136967417665213112176206952728913083790335963579198165281465819356847434289649049463329919073797301569863028394189351711091730299276514937051148572319571754260308722078152324354859574952434299428097897989233809045418611635512135267771239336406886606348460797142205068006774915657306798120482626314324569709705036938730478210062538293281888538870886623371218301250432682606659988774088291018269757952417857283926763128332509235030280132605972027518891259463148292955680459098812302742795266421295314479806909695639307955532257747805778594391366559512082386842733592227256875706874045016229278137217652235554101641259778513968042591849121764496849893496208178111261207747798195502600967274967873119621973503326674651718621101227914105558137792042050210572831922385939506873485821936680889494326740475741200345617253083504843043090916601574433313506466635014498171836470811029263966931831550422789136238018799997457925407061261854041197929536486341110492135099154681804415089748848823336210099707063619598621256470780420018100131379731240729457432172575825725200734684356311329836859741989458825540709286185628294605089941955975479903086675999801560352147864962431343277313148193487645823914279987247995711565384609578596300803750932231748292947593056238771584242187417509066641823472473887578709647591453744944419389467032556796856134386949887572998534146674909117733627791294299447718610552566993326049123763484347568833980259120358238207038816283562013609272193466621844053080335372270294276509333441107561057587376246219267486461972124326209959533130548432770889731266237647443757019229809033704034411312039118176639203705273330845162121417594207620285024189148750412737739925708530752606807596369620778561845277779562403222430820789495977610440409428360460135582196933331317147805137044906204115638421418317530604176520360030351270620574089470695105308723936820352433252920375849888568484811409385963149463508129200637426008117349054560452257268084862340347027050845279457669418215640630501380011929172060936905503282390982625536344469224509491073662351252936268539145945478545675908714123208224824099229382546814747437305785686826148107689083996388602379922971719158234788040035745511386563388409449888081404120012221607861535570295915416671306014535865457620223206992177611753800301894237043979779314187329093016847604939687798362643759974228499765716137801598162321406721214244593380788089942943851880277063849697303739502594578476814951131211170788861890509815708507661769930804941225022464535346439876340259200969359348225386887179436166856654147311255875869150736590847424335565268100216684106540456175430383204933505096069912508890146418142732936605260263300711352527033601421696523482748830270602467698115228712737360923146799388908830849042430791953723991410655116190354795849033113167508160552347013193207854736310434145966199798718503245253233578496911261115546935863456000745019139290837922994027243547041202257087150338621990056544376168118417046030337316279455414028813663464704653600576993521594126182001314482711490291571641058261268756988623806743044657823146564112484438978447119005393743178203500186553105894350059213868353061634729392363723594494224723785957099155529534273589093743681819322788202064255428907044050099343837899906924038933389951424589075320502388110737185224762268181457655775479693674884986698892528290859645800390111275403495841119454543065712082706380768301309155773088936207102958306381719484842667605172713355039331045264641778332330992522985117634827504940497632950406640938915967446072050432128300503621583201027184820639591803725193067222985403663259191734934503411718773017054061538810691181949661904396986279295087616404811405942122158823858284871215806125433515284624871350318682959362178912372418006423288640458618426268966032024595698964059996421322179194220625214504284857666827974142288319481489980785883277595013860190848387538417644397918205849991126939919877968684337776774169960416027712405921183084272832290119343055183652225065335783761772252047485594510354976064185538531964643505799037707382557949934808931254857863487773810255305861618787143693605765449297109338904768187646091833421860018231468709116123104108649937988924385339998052658144626035251504893074417655433081805276240097893917168785400066772041032052907335468023366283338451392322540284531351237057495731067643858337288046375753974116400231290816962601882074178659113099708438668463931085384705408098463283919056735389110055834409191717551271706339680413513373235805090056978374012835113883175164954206709063154517772249460382760928443521117761410157121639985825818827152969756316245390550984641860828763759763145573633835713698858388747126148302167269285527894174372904373718936341525370210436589454303559848777847382448890412909202656121559175598370318060993107028210136306106768763186336516708250084176250428671739386777758128164809786308584948143735837463535450355165752639378598996806219970013698832886171349986641648720084830544876979942151046035911397607692964524835383734831036296482460788881529359763044949227166739620125483545406911320751723010484058120223136535230529214294805004516943265732372323361391654057392196359821426811006768071556972926989994883410027033555147733965464599459811265892695153178121250495194703542644538969289402633217633502921877276191352390720492925241628304560918363539275075866985552476291553759719531366438638107735344864989150499269086957745680989988049185527779146597529211758375210567805047212393231346912382993612912894385718949632027834289019232577454199060251037826586295258441182187911284126577597117681145764875558711782936598703364881290005647523847077155542714878039984529572716497009216535986672529355865414317488179934054729985146107635050119462854167832775753683286204314945706329370757203410015542803458970134410514713171259085738099715490773741656883795155694152169861846169300662073965241367194409242247703582127567358442397833229039437525840301715492541472502121844996813010364435774768792448968485664478695796586818561472919063597714594954022750166907361774089569198939267976278194847289183829956201078866971144911380890389299315300179693851698573507380556153543718701151867099987875494592652853674079596259273454848171026239642628867683237261825348763891418145238960600926058263161752435276298909699287978652631670103048095365336320016024141624620971462517222214216891967022175680181052586791779102083487934425296568376858434121219178524511547915342645133021898428118943489024902890425205926935255719454334238282474292807757509942053959924231649819368530283990373516396891469607895642194796892272064747016297141245060495012559603812103768315564043389944852178212425352806026969324820324891075154699394765645073992146289374334338803825454998390584380478191051053445107331166510431710046699729256729230992744944385195886493259426735634217585987987245687555603334782203685401182525202850028147651340086793805837290386737557693900993723965440140174309485390294883981493372662293701560672371060967959857121603750656629396315785998314455131387914176155840060953480194420826401489184793397629374518830023539124244415534244071454421438512146290851898571349831678349868542337291269860979022899880764401519425137850040866104365170510218576241338425364992707481922078334252314183255251418129419445805411721342704962905475970075841454760424614860755688086877355323646005738831325154590625279551162821332412868358527076146257975711140901589440179441252539940624804420940430331383148269662046348306847079810375389469840891559328455500182795048817957823482127585362210635464927536718512254896135512488627380398975997297903246239058941227131029526383314992821090369250204868720576132331016866817228108134968683529515273230375656902676650997655689140516411031118153826474939128137091675287589206836449732791807032593247113968754496414095741268517769761974694789696735204965872168087068172523565627033078994035552077602172886256762816666982603398630760369101016031589975803651711466592459363014523251855059086761176393683074279203404524914899187406013189730725155731785022980591582630891942826765474997280388044087305637402370371842336887961059600123094064017170889101404906185124258881222802844339911009159724887940774171809549569809405710201934784007205315994790039449360762996302400910132238445942515508425854234747107553621505248875153014953972755108906205540938798022690613563847740504178484874454311724635938348276600299612188838241224318054422979317003418589335141671777156672575752778142225611548874599797524477911630591900823037290534504730485378742632734262599189133056357882488397268795820654763708330877187674181756242079316478620230545043443034869422028760958006352243063137958896973198316696176381357770074726116088121376704886083893403642297388005411498719027569188368800292978381925141686917426424576310575906953520727086915474750134173017899809320060102267897213184121907376188250585375293103683354466551146254174487698591923762145847708083514976091706445948924540255946967828824522000546121054929271384547326709879887107104410792296808662765367135693405194874942610301967164759091822596086453882332637550261431404929605541222402690318222724456692370817797365868830143476157761556124008314143415877999600539622044514177729256388391982071731069864663208195470278077937738770545582722673246227438839290623588627806910281444731555096695428224090094266620561478103054529090316224567852894543756937397374562869088254891373942771786234367519049662627648507536475302573116053076009895975018072693377173617491361751224622158020049634223038809457783107288851714097926655798994218784461220562986755860353958052228651321574286317031516818641703479966269136218531383856724957573180877954514862708595189579587443738307124303204164774645731062689602182646008334818027930137913991457086423772845391717928306341683325842868318300343871212310578636390649384757374971707598383294818188735225593629400698521546554577678675857110503327122354173574274369015760428207297952433049637240351731139336582461383752993453113407330961897528780491748590662768987520166159071115383985956984815137149212156462246608510039859601381451445896470227231164903246540601292605370549536873067058429255441088135797894877062432350965360267585900176884148667952995433252414132501477808862176076170442762180689990155160480017408925996623889492161139251493933634210584751706792450772367291863071185633053713053665944780820991338781250345740467980939964127559967256774173506898260914835193201223339127923683824889864631191147882230868438224113091113142887447187693498258859662481459019664240146906409784112690367287348733846852160783773294885326754202525232896648321245601858729419533267042570453935394922195151911306357743852046842353802390768344050830676973001127494964266508658118333390705168597358416120538279334054011275776981416460045510853064279165960305207142531327559820003668634328640459714001225331447559836207245132902257679890507195643388627490147910893904837945402744221406399943089917967920285728162296250700593563250610578090633886282569185021348494751891452461463782954162371307387075772276927568057395103092990226364101285439404370799803643733323950578198432665151702861575138485923229992013871183950731261242714871572030980989929385158025339756811191312071577383962649418212302329635611784818964266885800644038215661229426151906278876319254517796078402684487248717907360687788800930810019500042192371837435196621392739131028272858187150972069439356553185032951255005913600608842818154597148006724173437389475256826567456136649281060445279903707359263316754746299593709823199084281471010702851705146138525190648751193636428615602518851896875563798159935565245549367039576823807492261700823632969872517986730504847736149022600506989806760698261639790613226528451249130091353111718448229072412646563094756227578279675523724415091543558701857190336668371553920246871795567631565453437565687892815770989050861304245098576959380080177880649145409678564498350587255649009867218318694252949581379363429274957158261263371368731947129897834683554742162704635076393012772795662032038160616160033071597833065885645093726175244316054588531427132578797865527719450842905488522429302745000180551665623664523679855117920108197897583152360358179888139946364201868282426733592901384989282319891158963471260523900926971377158451215146313317359695562081979568208494966283786436252364204341430235656969043653887724539534336610648944409446284782036580119029292641568040356512379987639533557097263723745671685156205252915691563858456990604849810599368754368879680941848363799208218873624820320381460174176955522760053378737512561038999033745032760864373054119271811424638045331989483022371854296319555681185390186684564543436270978795755814930182842548715331558896529196409482159564224440395307480262200925804933598940420233774752824934347506990511111591407368078453700684688713482163481672987544260597437505690249129474505897824229219467367812126913972127695757227104833066120798378538758424376836893481653270532173490683686464285796158083495718640560510357616427324207874420486892541568943145176983222809145788939332554510099442444934927404691454296589806129033692641945797193053324013365974081382100878911593212222614548131302711783840289947560027440085073535319977327914610948540645354911706039018166741520605908394518323583366667826648724044704202496009036376876783197462130847511614927731921651479702266171398178600387309362230038058866971642683050246674152419348654597673961354845831508998964436812941823595878864308562780389801321894811804051205764873601760747418369598564400192980959004089208057964437825748040234176590079468833219710961037707338518416895968187847871368801199386427376698088961981215650646443491666926198054318915291539908686387708362848112031143150704263323481793724458565743655301129607501595675601917366015207048890843420786506638195065412652725440482431392125476494496161508873751448142295518608257661416168541597360015947759931961914288815234683315599722177594574847173894420550359148054180590228361679712853545964427735625536960765955911151864836758282939273319449940111958144254376301039700850083220556487310348549085044536769996592728532036319794589500911678216743689725041971175122656011948331426124350875523893079166122619390510245293999744935489263875589295935551099216273326853738584116474809488280011325947226924541713307261869083139468044262597961716911454389834129846582550765306854712650666644410752627738731665877289275884144484872595888966315094189151561966643237587631339099291471864003946726554830235158682687205367514088388012737692725871942247545760684396317907599429584020179235029266763114068534093520429091932318542844607515314580925813421011143358960647427132085650236585086992173748016956951203910043364647202698465707439853902456684108147905305594458591867577588460789789953896625091723203944025393134440492895810749781874436667075558694077463788294144813913268381046276683432343268409686421048633592712316870218610795682984840006514578936884253123444265089818525761964043788826574071464096214551214816304381388668720053965016580428430935885419757157833019730740500249213755690661037977465009825873870241644935342451645676702997819724614460760552616718981125642687849817861525347765512662078658374423412137576020644698910551596061588620095979008574182340754257095007903137557828664929253180382989141919244042622723252280248385082003626451479922581121927197060128989343954981897927929490317794068100673875280057941303728593652254950821011496944326777177322952028012758881392843260456036445636753748179032563345711205814168261359529214599376416717521351312906521180753675167454931914605644607199687679726484520941747712316621824500499552276493410739970574130563936960037572454642674871724884850491868227844722043673032488396443391637567759592473982373032773160419809233953601025761852244850986561233026653873745344323064444565377716814930807652947528107048144922430998278750728645114006427420391011959742197326348903018352402959501503449186668740853284700692373032382772734169869909771088117757429829841165377875110588468716434370038639230966391277705551203373540315661974339711477458872110243047153932088538487879495800851606323912082583103507846548530384931636925319242908640107000378318802608684411499857814459868405115715491700233836448990964765157488226515515506599381538057998339140784738051684969377817204465241625915091690969553948548040080082756515572843738585815633908265726929989078058922384321211043474518114390677028371664793408155144865881408231379497423803836298309470678686884034136345133475313544886155951260949249855806099302938802578495088683163503975420023971532098404073252469526805589905733713045042965084544008765944128499056661432144673544144754071813162083285027787655141384986679945244333883766462033005321100825196404615033241561511940005131616178074188071591025433919108107465362167979381722362871338926836255110943843960680049480128049091460386765563780857967305616392573880581438055216817613011527263789082970535297137804298440141814338070091827311331388760686236824844868710209172721459240804422681617930435768606657381232384241871613253224504374962153920518533945217479309881792794232391217742578333788364347308080567005957267032992868505255221181673316900245356387864022292592716086352223472848133872461161952106746045304587004033712968013667992961704460492706891270663650846740763511782059302891250239392144064448569906811870238672461673389229865053495839751448052976069209331209770070469534820024333273925925599974655698202237715742230513665221925706070323411883334453898333280631821932242970833728817860007005299877688102452074085458310977632760378155880104963896996851788582599404051834465079582973380149153781607697390911821617160970600317083191260919035692806340821949748597154845046989828882717599672237712908355333463109300255841086306659737983443529171020141488721078363161312640462008077680790416297627811888268651697960194248232342865140813102474326503742621190140396310838676676775810726673766938814078250790748789716478113790667246133681993653692171096939541401842599273532980060922468637432126105859585820418134464436448478775112240225897758394768857715489895163468717533177275243007644179782778680085156928108030316081634948743161606763925161996172307881433441436999893601803940385560596764918572866408774166031738069557381297039243999787181792458639887241097920215521623672129023276857467741786397634025257958796338698843218512256011487502473401653704996919634293156457059455163923027824985147108357363885226364981572906242074305410124691786692264508418231493012924226805321154280662030665581111092957874320267837315733695192681660340107455271352486248838208102431835709422603100214696565238505051429329597902143948227751562869375723469593582105327213407884803093798818125505526927086029555477461074841383927461552217004811137838777753253708159831057900386438271404037389375867659122354866620326201651164487121526425622088840950703665116765458968713693950905885433012956109303071297927253896981345081343361203861011949000552145372634560639113433846737964038429351179148360874090177291995885577461334879696492182589254880664707908244973484130238541326779058386810941887706856517640255997186978409425717238748845607264270394820385452378762943809585822332047209019229294192468273937401801769274516313978060491335769268700396595181516836376893095455288560344466276708002719809628706733292105116411330439070565791515412115930136302446514849048096191188583089802828749295353161266612768650989442991300771796315015003371510383220286596548395921994171878370034950005310115068314313949416075806570444331180150107789953398868271191393084607071778248124348776906665484708124851145125766802222272937825535286004793007073244760322005241144949091249315966740750547758838946697943672289087452799873270562272066992978990076019203406768786673491142250486668064042566397658105814143654110594162654506842518888398370714165908459132496400529817539533710902189028024780361341072045817043702539710750404575249952982295586520447331627486097902347145497458885216098276954472991109260232960240055521853487177757493477084960707199607195357446172270443368624928523023093504419828162992945890260868098657836354121577330019453635354506227726962216674746242388920860058647175990763844160940899337851460625052856007129028073352993116299166332608556925969547369453452578900778933737392917217522863884433274831319149834364640372929647849746792937595659457279274170567479704686507426896941294873950471058442086894310048951827801438732963403666786829292002759287094112640282334331390841695920377008284712479369038613798995274797293357557359682002966995064901267912132917750209912932099587472254711315851374097471363000506186255531193652715821307639737802153096200707490258743328362297464140581056987907107318371689833107271071662099547760783409428572462310005714913270408608781352626146109421538202927287959017433125137661467386465041324279509237737959922027045487600722574896594816800828689559978371735725654884812235074871698722881316731077222835212053665201656803272518995873415065436104873048554000655986852972525901070244768847778513445788183374247319127859240618945540276377966950995024385699060109125830507582723698724218796580284726826101956259776651326720423631992831065523904944042127702364752482040874804092816561300041123444892133416328027976030162768014379761209044081961918862042715658876836758887169692628404678063869082764143390121731475924809866570157935899982322927006271444584709001969053365554430961066293987771906306806588044661667296865601258801627031047651798935647607476892055052952250254335998560648385243611556753455336727926092630522005764849468784520444924932527278520484266935522839781765541219094226209593529608424906540471080723753489514275309321556015110328705627397226691094351306945357899848988829397851129150713739170954847763445755365948003973558179328971822989636711533151766542682614719049096096071630511445622518997798022226434175351853765953410921222852332503196542120749260424389143945484990110019386459855230466702858955088797860674870037055885290977732723881609308530960231373562214753993004115466205468090039134520313883677252823685650243435030933676384530343584187832798205789016071689166991137852714185697935501080828477423549251003638031649521970530647141089073972237702624871059219017447873284385402117229775049276316103298295035440886433962140324602845426495841492235264274013611366353345694628825801689679429728811237813395219442354883088863386846120714622128360499112342457208148523418114198183042144410723387880971977175851060529116698794427534897743039608356498922570927960227374856064134618595242935605384827081753585322090784620340801206189015190507173912224735422790296343423106191324129873975141960358684167706874613741076910023095828955600188244305069553692739025819820541686564885029809959799144286079746521137160693295276543114023055916466912071939335039062183948259355945427452703871320093426993356659956985769117951412414146894335481067364753363000828540207648874436747192224139072071064545852757956335973318356920422951203773639189614574456072662767965222202283528835372129253808029244874029923248601559764248699882042148471195112300846218348679032741693737701408892775838410484528659967616238098687973790819264559485596886264475820877643556932685974747282927830669850246449185589598489350611711968250332207065995995190531356319460482884966161196391535134484359985114223678798698633399809077885757372689036101307058052103139334396923771266849055772795079225234150656795472970859865189093888569603638541028270158913197744490592387929207823157019183260420891745044901516571251751747137479439440350920044357359186862316966903924611833957665033684964685858823556367943094136535152891587121336226409549097977600793339001464540679075014584133604369496584335413938070755046084167390241570814877596209623793355647493797545227992651520121829571279614265723809413396011056348565567737095146111870570066237176773205405993557321221296173888495280727585667923665490013253570129255081570532557122907315338263663523613392770066299955240434782452546870577181886205188511093894010918200158745098497798817367371224494340306573391912438130089493971373128757209193053557206446429175384989816874755860188462969456514237291088819667550902244427551901353446861762300301243261779677584751489275198316125070698409728540567345998561595877082960907152010356374594588987293873306954042830450528239871142407474518415673598399687076179248334053264917234664216073640194161674913273774450186891289712755480621380330386309426322907582169439994464775836386481265393462649006286334803860416922185083345688525679509404956232510680800892528108072517325307962967605511451231315602305511158609366876696607379296351901089504321959567090971971649948361436154024195922288080716743143956948190272921969195680482964659191968756182183474792968575197676126574879641079612718580007168603432760993624141435572509938321820429602259209075274258900432320379527091432567209853416784609417262924465100033239719552499719120214472952751663830742853259479721249065556052567164472624141474294528511714868860055182706455783895732412678458853543794970178133558912381223673778561384925112891717421994072692669213363844758895596448227717601010315826183739618931113654761557178954758990031783436987318057678741665403391171191633122067304438859685055458847719499251162365554048616249252013261754975373270375427398139459968318333862303529832196472307464424587460622705321187553096193054586272507920974051160144126956342345489559342954072100002517409482069072338681634498382717638802247401885478316367562166542614891478773696318782434022829667280270907646433040963297008848089409487134600770409553228092522128605740010716198890528796095408129615758238000347630570477137172800400957821321013866530583103086648644139734948425053621444721488384384694369379299104086062405237564739108497980475543442692128810555138074792804735138695622158358211794944026351433212195730028678947084296311120753733327718369818351238617183960261215193193539486385491296104395242895262904847203684532785704881315148066599496331965620216005893294066632127201640004611436075052820096011241913182201772289923030703722729260099224483824035111582419089582765400775958923540749206345649355125664335324683351828453611943711596460769605324974443643447378919758746315625317262971730795872289949310509945104564173788087375399095109362526887430939195564552597387581610408088904225753027272945404176389137950010915703747465277101119492379909637512188830263589290413226753688993862226566301690255575978743301459411142433011785430349905300260960003734611520779590129199264982506440204949437692808862541144466516819544233117502823212638252978657327133194114268384039850890165512779059997767506056145393820091848948449065732770764266450428637239244658375338416987401473721589823449449826566000686758212635652487309541031480532201706662835082195913830099082988521191584813202725173734888324158847012970754029093897920867090179850166506363532066425268813695087557347706427307420759981295081938962967077769306270402499083225037574541081941086666873989459112188709268028144639725227289352117659862688491755422157863976575359480538453361907239339800805109509471529183635570713417225447083654019795769257405779947139200416596520361549450024191124781074526168382174998140477644336467544055660742503179564442533641786541969815843210492042940835357061299953148537173390958806938536743405765597957824414605151279636680479852483877159655418207792898823426073932882532350004583205583636232877191993281427356628167718746822301020579783010685752360412190780007548710143305270966122841702638806221712240440660100823803387683268804536845063989900526729465681233233928596882568896440817167755008985278663208405483008479075251442352681428487421358931625754227163537049135843028363269884010352492111001134039790471567030445307963627124712623145545290990830544329873661604612020972767817568142929636412969061978244203740916602762204872656637802875290175471402662450719038714341400920335311341284880113899518613783333305314654839888401991057527974900905304369252321335343843555927426950085938820693994345528230305573220401234872883399373771086739771036137202501071808392102045762357908021610938878143331044261231156104908342319696808277616274396592070622495213600230171665408422488128493506120912672413453708537406556422482356371845608464059878371500387626052592280824860872677168868331090232299803229158734346754135756457535237517992591837026450961201885302725942184401773644019604195691743841972406246649639186158141252339016280632783872383977966486781977803292154564597817472709257988513119647618679448535589800632262338132439534061304131826933497007691958866505679354904983532557022295456463089544740923532241706876737795579322849193708281535842921962444067771500081660200830672128387401377551310429365029829048241456835003257309024184203105660602682913002758161849393693584649454856539416195727774395800611055789042656569256591181325942848791212190883728129891194499809231758154882069205093091996414194805250037470402692468983937582371471325621318278114727963106670692436325427103274549089399569810178054433253845902433147770967037778596287940806122073282437868171885899976494850825406437569083853101057778269650126839969380783676102507393135264199589659862803855217751880683876306849991786978906164589655354485890432465507389694216419724360005127628847981852162722336480634418127367750092602563247839448955434232758270296704239283263218140631372717283231505357288710873992492374412556240689873422965566456530760596549173334691052075774428111385409486153436461176683204946694308505841977857273424355918654310049639942018783626197444281946983984739041011069894341338528173658296876025057104342381121693717996999156548528749740637290572300661943148663227836342570741176237851711812029782335500631166359032011010518227750076680848090477843281712283550882674596409358749587733512681332639790267163149164444684829368181069986326811400522675577734079851262109327429264128923585175353099720755255997648217821566336381061842138951686163134935832695626935424953252974896252994237243023706921132272585837075607361431221902562942548256816719824600489884936468091864411652290135890275112434592843746753037292527147880511849249804358610603809161058422795631434356702565748470029207594588706926867875089707711269122762641735571371138227460273714315237103872932567735827683831184083753343384717745182302118099209424822396937919123506212881738694016363833190825442883165812257183523530425717921406639875552854241180591047236349263337748630810903782200911311715377364139752764063103316570833983890075132112092972661729976145192632328334998794125912466596198479036603360590542021672303255942423896641984696162211398457612765422326629755710054628661073896456718344838044839309911978782101831133068409734926729622318607036389583738828847146408434725915972216149739419142282288661803458743287750086322873638857894644668620962045305434117462370298528310542976549308808834882361090535682026710869055971442939128462121437451701529191021278095797048047417932876513965480581573670408285803372957685532178952467696103902748802786394049298687231009796730906740439625938642837402079492053661396646382835688017218741066476042377552496745378518054514057638790205683987811962478285687083404648671079485524252283842217498702839160067177441620609795675742717850731636459434693092448282043761158142611046125916624623470646146819408914421086037333638919899174048938215245992435084210781500734822142410177463638042819977520958467088170207793507622144170105424178614509694426118596541778345490176683229107132722287627672275861551006192892152090052290209447723148603840030228878899686441322487036224369557417951167730596082296589673192662564665365545708174111563964659236875550636757986504864083943383373049969282100648818208401778126435296056902209563077934482713968327702521214045150204307192683436989006244551508181270599305667643378681830584280730630803627529761792013326881663139051092522609974378851410094828553736950410915852199421785265846417614950159916540244584127272756760600251515834866943469293757471407552408775402475296873789248261868113701916580033170234514515109634995190404159197476928965238664139616905006468162069794573558914778898020377421647542912209985038810166172489865464281356723982203409546816916864408916268275293784825901756518517849526081058015757275766146792099483074395395564846270462588868267341615500366953657231561906674979996232870326140036171766960799041083991811851210470647871335968314240846099617200225179854518270805298360427069221723722684574387299752261711005866753760941912796332739126163515218820780487273821132329147475517304603644840606064646967208578559276224940520885228597565443165050644753162498860426298515585458422461451678482207969887365050331224185113406720148282729268716373387514890037303248971391036259547401093022363752218717469846911707959260470206540552273098763094583399576987144549330975612455211205303872790215754668780419686271417468921937895343938229450437514482261567044629156271104879417464833949248626881410525886519323709558214583795221866078240208346851546680740218367016743621099089690853670359226026160302410327165926313488004157602327604923007613968366035193839175269533624667669222114503228288442810750904854206304428451414500796170820849776268678604641666282195697252227763369884765375330587941772061848111636627966274623602772165007492928271458519227676514376342471342682959097064051995904607566228071338165013313603407914414001731465747653177196277799893535227308203397928938081341980816533118182141512727565223417455071180970904098113466658174769746356838972027019965288192286363642437897827064248185072962915525266500943093651451389722923179154453759511178074497781530448564010049016975439322866750617609197525177562118320978469165240648141476922937705762932297800999233680172529957685664749836808848109434591300816786288079121025368418973505177249213941677048332391380867848022934478023041881359486028781267110715083556611119387341525602740921598512024113697773147336657862837421827653548200645045624169764973319312278075030818937865327662217784015853694153545711395187373509930730485712630498718758425366589604226863332934660224038955109515445391558285188942656094086583548284440843050370146398246019497822057308083328991793986809546599895937022945517179024628719772744943642284988688561140403165000563382169927945768953263032113005711782659131063952828397668003962041295876333121991727390965662504170398259214292146063849348097828888105436111450033907273569352929501035220632921427386333325306825043777700111530615104694533511750503298384868410339942716238494787391092607194914284476988946950454255952415522652759524980388015086642436804431480503343568278630775329596850131852079406525511749542120755696057841538300301128282955567648192298886222813644841125332718470274381087845610731079317602387009677697122783727083503870795984196756358761141181486156300303569202256553745846491699962238882533928179336260464157507950831069047308251541325051553692260549979335026987344701503734836784035624700915570013675162851727727218830441072825811660206242215063995591793382394026130706117184474104658588998458555703827398169537449967285983942250900985911146527997970118179766990731704895732414760794330344524721370178707162330888985918937307175000676275849163071207691798026357805713066179689831731774350459364404441030445865091596386272996241139857829321093151233400227960516393577151246753073324415231707071364034503141205224179897532180301462209790322218519102751895866933049450201179269133539888555315515073336059454885300492682828861321719510106015407217272161753634540043780077747994979662791976243974582467171114751913785062967217067461463637952553527686954997498350713088554874123938911555652351688839501967270875825642153745364765850362784887551519855999689664784796704301360049333688051636947351494065792515745002839361363002860392639343698781841100083777974627373207415423818620661705904417130510216455028520922121695127914872748022506407514017286165097668313060959002831760948991910660087564441182432915886060303553235732505676491062830176546360517835351284383158911614904694583475185005571176037961028102940162864758476210223718746469175938432952715645650136140417206289674419162072052517370941308929502847476618518116747854772575838329902474845162716609374953451422716819226823065985663319789654096007732843736790049299408536016971959498735844480828829794099337052697794116929095829072396962009046652795802835169623967118436061387554525032682772380316214406422815068704331090520624855241892692163866199859513658065445722736415485106751347370068972949509300195373631079092626636989639558136032278796836577977003167930369491729385064964914742389360162706688556000208400255605546889689604650136637929220487997034843043384499334776515488217551157709372145598705325956132882889545658066447320628593987153164789911855794727043624192430999705717420005624436462872737555063005368224780951538727527758082160526127380608457442665317281836111871820381650655819355845596153412376807806720224424648496808656887611878595105178015570275793344597378617369061119400936407226557039957235414520273199008563395586238530254474302528893244374782369625849088578358401099897108026454322332011151150695540178600783117096184591171806124401837885816351199525948536697009944485405843492994297038523436370544949124179809569077717609453887312450583352023170230483028800423186413411968602661081678011045364085082671975281873062306791249571436502348764726509802485795287890111191162762564650812450882341350515536774639513659951211097240119253527620445866565481147545179974079787135832738123586428109629257449126513793594094577972757400483313239394052648321947273114161076580005831225633699303464566645894251659391615066425823751482713415720815249922477315895084722619415083448873977683248797271895681504855457710181609554580823592364635032640481110037283255389790734150357139120215050436408727842259267349464229576889218555837007103849431099951272384157489154869480074977852941915238353050369797494728665451312243210808264166201573518396395355039302875404418831641897254407429123705115511714640010012612130940758048761559216382522795247711780187809271868810331859418947864955038130313651239279981534987771444777892681992688425091177286303155988696765350204004585957180327318837433707593011328146967091431980726989656142033698102206803702454225708666573102680814641991671704019185144942247341982497759651097589813410393084000188249167030785134243298489598745070467897161288419042412609095467744812364523312517593998430080479070037438128221146644963021506793684742803473875095994015773147138622720928537516421026452779543022623349347700616508777780213620459703364594711802344633033388995563391278094218899793118658108726150436991844606157825098856299937030641662276153117248421538921313187386460797644230460836923550747210378822676220228084606663480513730531573629452182228388425512175183168378803567524582252284564124393430660898492359016812015274717953024808797948272968641041077983837293772082110205887988577724497703378672260118083200423500601312029077632825448964885986692602693238126783603800228554990088845750820831111231757008308844250724630468152716664732321093250665116422431043808977519318108326441008602045851450686044648670272236845859459341999702967057251505977696551563886138620792871565669000039471399535133857599600729394156918429731199223915693854077262914440474551102473321532269667245391451528463814997708989093709717748422751559524646170082793342730476862944980981373130367160742747649722233609828036143797859728411182011252342914870870872979601138673508881950834385831957212309547274013137848981682011205898095669842571187403867929526103403425164878458894381834360685447046234479087708683764044722851806035593957506840320265610930355998944067826796271951639505188651146017190792898159887995080510118256905836618519760980062907087192001853665904270680055793410386492951413946477427199590152050389339615595754111234852739601284454084682974099899590672880688859080989553409897839418934041858892218271854937943553275180175088654558633437116643510683890602995155753423567211892769677088898796559578837059662907651736361139003416219975991429228886201688456081708930503960031513835099860423705086148667035462427065562473560663597321718347022714034278290100241649621339703064539555873597456681960768655815884258326192845386439364486824966721815614172607030584792735026028718082405034140211418500033288673393109119327722296817981797775176069345727356220561976772252115755638847083182401691241711825359190642120988532151432113862660584150236558297170239136559308800854025163285057154021566400606737746928587816620177272945527970666151707707586902656012113378670180686017072149742459789378088971685508781854683353887603849590546612040343392703722532079107958169326022839667529964979291099109512770638438849483236467222545858731115121562884031880656800461120070078081304276483086707750242131365165486169406196181224695516404296503808682303481359903051257570343386002465472946563585420371450306356841462722991559714553804023929785249607906779220405731761569195214309348594725167572899322490496307759031384642943622919609302622809889994149472395565838662279355912682907290556450050763736897442391390844509582552262347527479042366929953806787211838396930153023416111780727444594063852066325407221358868437170080844650014214380514935468724334154682126650218707869939036163125028350521144608062181595900722328173894512271769983555119124994499947920155690903229520521465255262644493702970012698018513904486858070287559406506310666087498427241781951311621117984307843277486383768728944511750280228998385249901341480829091710172652704194586165161576923095008666999215090728665188425268826472249562733952408256742178838729857744771143644551403290004157331402502917263792420398615204394591941010306242726959094823929176709230062415090835315719029000497481005229797530802190542114918154148314643842205351773995696337390794398081585936643214263537741917243370232828071603315806638518660933585428180132156616901441062543386842326312375406787716754682570703606585575701889420714951963040683390385987916308638126349547095360486799221080532974571694652112916721771655793838295132168687917867766388933400871821774156391407723463624311148818484047518601656311215771254150300977137891397201260339102949864506261684397580024543830520055076743235726323394641562630928301644759790572153263431888258254588172375115525001739545323224759773685812311210845984464393336548313811088400007628099628090553055592976871355616055373985073580042829949470728466647160523324313973628324039879751912961067416549629301838890787337044867280244291248435880829693857401614184628984815274731610215343883459041620217168686122717406150010075480651296622085231381444690234791849050648974095275640007624997435098408290570020033812319141793198346868424008459101155045941565943748169492958942468094334643973943679215462352174086804837745816797686605844737342447954852543877138978870941664438117599646664140011223196857138948521646768290609772286143949908693521038626232765145406371744381020234536512012088690907607085055557272430730283765192453486251117502366419859603681339877913962448592963543993554056547604666072112470026767726004258945319724176670192209138848525528155754356870582933545086348709903629534325181717218659338189037490962174843639347303669741056619487016755369168940754794090616651213739961776823460053119990830029590680577192147078976256857665564387227754494425373952992793829832359304898235895984767088178032517950371906020665027311541173951832116851135071433309981847937064434795131688159912147066672044868317899008489203160418617544797390242491326595996866411580149100209017324902110090122885048157459925546747611494096800896549817535844418032460017822934305023334862017916402133048597543904044088148918010111728563929740188347671937228366299468922758264736282123216250996792118969222312385647839162592795431271860685624219523729290149346354763090278197652777097198965798277817517894248049551943424568039754805537741080968303995052351759039007608660746497060957735250420384249964698461587317729819478641454112122605497979282494704388622394064703330708951040949190430457853178970380943685291273420083387894922499096081494424924164026414097523618443256812986477222414609769278586176194463363749709261904730190321228523681214310686276885741890154682989835803131864653432446312266924433984869338908311068746440916687555150692106784952460557482496300862040219918814998253701310291314269553265863086662818828102876541852159377317593389954712312466820441856371526792851918555302070808421310856515293164350676552147513982683211653201387389457998045587074278167045996664105722825349417703918337639434504216072482919340339465843167915705540354141662673680927864275824473096290630204855302710838658360752732287417587105392357242448368050799161651208818040563081161070585870659214087201311955659934589751410966127430055963613662768591536618648383006447351575523126363140308322068309375315809795833048836899949983910639873078091250233006295901240313283202260859797493949646463429224646009639400361348113994920405977190834691188561947663369509726223383586806064329367543101909574133804079946774475096706403640116891085927059560405793831982092646286951025505620606030861071062747150119122189171601493558145850391754840197408144320380696891915063430758465926741915262050055371672327905893964832770418880262794508314973682853831692722699407216363474435293348635245296148487034507877916625429282580102534360140284026591253092908909115911906408276675071188059954937818665599058311028152138491133429401914825464122241646174456860653739260503578708795853175579243812007916031367810189236208016202211006464739186148107018841384631972613782272913938637453178713881144609913539793731920596009728709338366969348638751115572684038913607344052448397805893178265442594968591678362384622243511892570700826214007643733642319412055550381083276793012068766472514853178186777216769636367246531846546993894703832966408475519839719261644287567626821842165696672484850776126809038669768599635525036029066876838398728866194058142548914646183143721685020689087667544838016988394199702101617882866318580319693817837027764306919585005943391517152261520363655289042886513426526105778695338373370861452506803182580653799094691645714054940496075750526674126209979015641255129504746187052991340934252622977525055321001001342259594822600659893305343635112396981318157884599926181740963758654823398060755301408891863843204241907714074118498038125804632911980681269330465515487368300611714733931055460008444345713962680575308182973006714148608129107815367234497537439289335695458520265452627980595644190511926700960982565500722173851464552545133874194837605733396627368320628944440304764589593620857713336042881761855772317555974756676210804649097615495222851510730959364248070206728645071804640119275052304066475151602925470597368356603133326915751893503057603578904737805647380708513763942161428634089102674435527472270494451771702625604210242443987069383290055420921911943014494189227871119950890354587318062484578647371244478409260778833546159107098429310406112398247919520567908609013014417934310869801866544209647956233992263776299738309296804116180417580847083373604015646504810330716742046786630237569837240056552345191459838030623935755685947709831830904925344285108300527895091720078485929365459881534136389108664074873952558172491871343568862406319785676728942995564544273010479508627155772393304674960806297167932554263411175733127066751401622434332424699737515298278764367323453962731386217913993364315493081578900808871946619783268322491300067487409769859994520926767151199469977897455270525854123962461322616329128731803197162049667988867421097262584613316568816288870413705141580287376244553600171255375157234828778597616541631968686369641292944934036048894108896823630855865817721958069164328960634942880178892754139851571823416112413507247113874372148562432335361894698517043546451229497973479061839888246302136426816323833130415100958092806398054537166069338968314014408346149732374698578971042532248855619105621232449945487531074725247724737001891698389237930183869624719792391744173001640484030456129238994873097801903432103412897691336662008488220877296838459025414291082219157298138454646057141754100394055906886778254799868545803057932293354689977446244520072546514919793426240795392422299504257011646433776712883217990966661197316568050075482789027056315630600870068611637623090341383359339887513365218172111837218403828844363862797013333515787387116539471253137175966034681099452148490181441092590862519589933035819734269688068443370259336719635006394791278278284364021011205644321573064192343725095152535964911572378925909571295294846737951377100192057034008266690862618003286569004169659415860789518167493736272208776060089307109027243035930957312250113319755126675011643397034751031449728551560634975265308582163365886398976820292873936538805415498441594136786220499999784928000073287651670913614243661469591953921964541157962757273028289218092782059638532206671544900838100559713042532506357399293465878657905049602710424475312132401657699812461102103405172653379045040393654193987648315612523723056635782671619974821346741862851795109175366925875302523737753751017026472251232029031469435395343966152489076189270794475024792066108658917355379921024356211911797549947669650739719608669239139914375192319941325706486508440718864479382759071934977731488008727501465172985827037340630325288836751679702962935306161743784120048839157118077565411565829198031890970767771069419066076286205599429676954917319629736581426000297894380877041331636912005011022002699403347366858632247715306947950650637204279131463962478009848508909240316695799246501193218000852215291756349823289967908345836125561133751295978864281970733363488855246507890367223260454591072294455606017823446542594987582886785657584073714243744260393866125441785968196885850707244134819344841223591095839665013686687292663098912946647786310680868928235742393435414467772914744519372736111668366127861991351598294174194897882320238538720976214310374099827141336235606268200001335320552146717817307728120964738230520418323474236500923311749378232473738848953244921800388651027412062821328564941368955021978683366269300434348991042891688902882049376146568773592488272533805656563888611297124026174785554798784382861197833226276840844147223142668194230246435869894553170937835346509930189435957259018040104017957753975605652795246952156289773678408099628559279682186497813671102388730268972434256255789800368507354236297309961186807713582086215843953788376395218177057936821790434630842323885240655737568321957002548974632432586588632621982662325795187803972303770116612904334691149883796708889589684396798271214164933425389097491625247093842464094035537801122527202604428636784896107291499858161551930860593897155676299896654874674154533539419998438771349968856963453368083424484958933216090861378021340088449504907722304324417021658500727111809105477230086331840630813344440228286107755899680072061849579843474850701219881838438973509030601257864428884341056900082532993000527691880315816561414099853349317358318721497711688732290508885991476747868728891235508593598587305374460945128093365837701562096906912143536983865571154094658477434822761326489787766149975035069560366002767406303251658201950377572068115120247729292192003004568996340209604093893569349902925895116548381086329918479370673576349999005328282995589515747901643440019739776619636002752465867710070441769684254541192176081750311436469759209787209173456900428769751973470362871262767667726921504765103960467150960307985950578802991929616458565861067540112840410830622050196109106617788956396812708676601812034187579107238936390460564947038270971960460448585924804873261572845377081903994134915676803870703868460650668954508249374254193921246296573573959910814651033492246147605620925689335267918024672177862317167645467813210522065821483380031648578553200021868061918812176218257627484857868321667818555841229576071112849888603978942763981869497910557820948364947810626531794247043283257655552328732557043323335178339260743997624058170745429203711100564036755546119672868639795699954277677074708708204666218232953051380227271375285492498802314437419813898676796260989477973700873328517094394507542387689233590418526539184257113080614077241966440631909166854822440375148574529762634934305929498632851984330266739784109052274469911863638374399569209113019148949513590293243483526988187335717808665283510946891458857246864374223946372064944919063867189482835621819039337959263543160223241417632497615630724726113438403088927810751763828925984036724278034920214392841659268220123650939140185240446459325949228028617769753451496655634812908018568408790891770403303170447247533198256181013759817714691266057665818764456142691889583952393426243387384260828592992637367037097625948816941641050736332346153458933597344167141738175279544087319612468411086419609379208944140182772814331370230492427458001303151638108505186456081315845568472879788700100468867477928297391519388269626676255555926881349500947262218932476306084077152269689057315483682930351270800601421407118734637850362996366799487112405356176124399873018319520475465729689403944687731040253003562187341797959848092618213802229841212236526267780129734437645113923099255424827928493785509993936021640632909489026326140328363657442835265634542162314187002848047660616717688449369850008364600033422625246598984150775782820514736194291803394694365287524494430802236096565144656839200618565648568362953657214739574110167084768770992387432531686985354054143198331366570553602329654589569116338043786866333821614844389780892606532867972340170575347864218676939453411860735103917906017966388548714475579087403478026665740030208574618306781603898268797344036052279079200562648068577328326603364678185945003274906583028818677414567490383472420079540343139018660970911842279580535799662470638732789985257563708088551581624867953189178944720540604966603394743741641884717426514884240382920049031265741084726232175974104868767986926382963565173583807754340624768137985739030621208401257306368186440679815079791909431569806798660198060143302771266006239743921925214738445923018207827266702969707078954606799474866907132467938884584933261831320719779214404527948635332038214699779416480664026629093637029865951032731094183679204503386558905316510351056687826888071476253152220691205603537970775653944710314323536623210053308838425510348614738615784287569731526128280052917695098452464651257367786811605583379564210738363943762801140826571236995157259476156051939229666945097874981120602634579297966521114375947315774112385840202705696502189868780117503899699036512317763003137075421880971481625719483726925516207379708503776793861769724183564711589844755336946442511052069672906592864738601538068185862733037570987327281618008276755925827088390785693712075249281898932775366716127143073331768394561226932781317898498250964059215904027965727022767984390826444018333112916559906699450963651986358421580332702886856488523522801951292975837795231455804235622376117000926757261850163401638867616481623971507668117125434389401494682915897968777500346898264847088190687877303779581017468810704157201401704598555791646254117809929887607367631496059386755332802708370139355060435865569433960572784852094428750482135059195560811515370608765036917301907862237696267821528196671567572094868024354733739622468941383609259568260531798959270622420767798942885911004911128884999829209563884339490677893018326813871377931397829013952781619788617369195007226214873162461689465346367773772806896634081929418850109244000360413773873916238543348218314305373308134729115487447210999639955839951982764255124320820169141254881269035889578891967386886833761688633623488116076261333363968112386089928405674972519990081410230753576098705170513852739812712692190268565627796028160679465874071668516459382338705356230823003494923610337926055018613260647126136227908208792436959708926492244260306215549269862935672256676345794275023257511902478220848169345434711489207201798930048935507735934182432823178064410435411812977152363079144153964423389986717783110609306338864837485099366724656218001209193619473404748647457491471567666229370632330331520519946342341345901434242214580221040879696036243631181164971087835786319670737671711593443091009497408503782300926658784014486735625128138342066206617804838269193589334863721391142192882910847658242250320715794129924585883971323894750296373445395028026629760913154017207083594145851794178859434429477266862151439807272311300934698316729526455085578206907991704524387523192412320251043200352403396420214678006005808048586825576498958157012990692099631856620057411036637931190064950022119177135835000480166940530515973970394549266224926341427115246457737323085252601478829454733386569350117390594205230404124385781158377501698449539320061044569605005575099281147732508827199010467112647024528651541867140594658803586635593106386292861618900343785568106724201800488899003855792342086513646729224611510169337385622416718003657654129037558845156330124565575371188588098335267659114568605090244120815012774812544267756101011231613012013895483031902019320779666980611962535509775740281871394598237941892005849479354713889946577655617197566140544517231144851206639810846244853572484756036485156566204431185767825000630487069765545280477527600869073489297441690235417035427763801455513389196058322970158178594379119270361468881413255702779790478893589024971019436259421347403924463525558974731202259279144275565196312793665566051228460025069084147475887449979378217716549306229059199730136270742248685199555497712303929448217110423830783383336406408119334600530748718832230721820516431471161407918188887908114928821110529583172973258285742536743230583027403350643814703493004240326155062556911188110183461587646280731806678449365113804966660432041091669110870415291659295875728341512544062910789181806514969336705629732248188186269905918677944282643442774634432699345338356837871464586480596407973274442978057589968776646713421112004652197616263215290411804766630047723607087011029331990529774102931012482970500298957939943614414081667905331049309108638093169015998412627118461927489523194225693323485591657432353834216380419967779627136219256123899239234188904084579932678841287466174268558616312776300006027668072899544118039785844057563027838058591369706966399013688387641877085288859134365303021063833646233842512910027954333224156792002193931668696957097760364286708154406017757400867829245419848716215999727612075221076705461817865672930545076742540186159394339018310251753624061768109423650488670662664245934012472322761536863704413074580734685371434882367793756155494001543574414066397718697081031682231341849991356403010113559642610134975516860453957247987702489628048618126244886965637997685860731353678413938501920593286724822530355508336690829683142244272717025912981226498409023330037087768479178077404393028013073901308408308082629429473543433099120521677282082895599418931889192405599772763982650961067308323266107547163349472659060908016020888762628543908308153139544536296931698669690134804885031253154755508461415270638077029261352268826711124845467800256462204867479730571313561590837889976278791194225827919774195690562775458086327343034919862541675816854563705307154921462004003072461035081790701758028904132614608467561527865157940200682525602072254598156224108794871328529562432053384921767262460716894479885296522471986877444292625343918811100030404052581293400127389647017791728088475454865013015717622954622982672658621590690707939294171055855921661955512573387782512592695467440422793525602457871288220056621620566209645561400445838552745856799573639395695595766767660101964206671581710405237200860020055992921762151516491109785601178916357123221693599024018313972892154365134243311586619319001190493219497338571870806128372797097117993729219975886644973516762628593453083644128556997562381235751420009162503183156270170758867526170139566427329717628324979087759891105162127479323473581327939840547585716294250959416646082058360264652667249582921266753122987061304409160858082438636815782411461188900640220185582693265176741639845650163118229269614272333797083713814160419849474171764339750087671428088069500580540354336693326212696166217455024169958095479610850367551437902247402973870743677541254313410504089166816617477642944051239820462647206040102966663115049189615756022613239318132303499361673930525537466630276796381999663898601389192541539037435709713055501950758517202705454147045688935912951371512558464369843959055650064161203846892857656129877125436775792125567086372554800463815721618232593677200157863183007422989883408942361332720289802376230262292814640935938500517738206617442170679892955568682778137699420332919183729437657416877245485909090943312478393495719722978461015131864716160297902457194539755839367934896863922636675352401906866748129494962426425530224812278210036980361034512965127524404579745343053247901744024002313182610362841978796183495949291777407480047762401918339572589956983785456397261327268922156985607938810506090340037188333785858258927618754729016839321023180114384877877638161288600513221348788682733412513169461445855767241993999718650391324223388207813306246341175251496120062226041342533077222834794162786796398559287328982679785081416715030043360121229875835627822516800804652143308459798242469115958313103973888582301269790675087522269699114044371790601665869617543867434369421307819052381212597585450367875781386745509826916188722808894549661073067208778734113616590919806101582655298978820845198594180674809751220080959846126001971551001197726919334359942854235518485458420148666627035055768472727991097829673765206109826792220030857279312116901948778700014909367661564150873693738324205817659748468387571495079237516835782181332561428208684953279261593955542620097585990829015395664570426301803795375161209841843019858744171682830288683563024972568296465409343036097855032781857125538470878332834581492133289584800313940963849939075125578373484052468152499764300327757871475959562322104874780841227400427251723218199754394951689489150679987908094946145857783493144983641285212400495372903991395477029097420704480217036437655416567570662121235903809721830994809228666100729344036727461707890629575621061317517945358259156258008650327128307076567050793095811568555781297641139147169361843755600967241930839049620936187839795212265533275583970088971752664227136756340482000336470460107523303371439677495320534036905513326950474277775411003988072790115810672558560489778780450629238755437995408105936803775240080795057329760973504656871150229130251095731036076466672824992153334343736000015136078116508744334492098113911995576873515368805465224449624767516133483427226541455634784853710892936379101603284935358007125368353137978126207999306603379986718196596910107126939504587101643254214177224106989133524713679570646722362064453685207249109961724268460251365397139111311108030625519170846986002450598675884518758520886758277857925817823859065999073356644604913039043012366579138816460474377927228595523012035415622936654088663237754355489523722980201510398326953212571751964648206600408375109092669231382359386771131357299421791583108283416931089283757870092194335559145936680392441209504356808512280161789037336454662127920339217366310890958172375940391490468466102612829525663963761213893154009881916427546000269901591570859317861916615731688530938237955551456273572937708185207656110927195040708489877642701314731850064783766742786554854364237050680821789083099314840191401030590907834708005188561560108924101955527979579205473564168695991187782635847899015301476572519745528973946556635111804948825551824216540776872341883190926223950752500507960693947145169132356256299644012763829635751922379722334404224337812089838487748410733709353471447274299996050062628950782209480348785784749685335427813366909647138567895491527074927729690041073159962940097732531063046262709866607870054124808478979754775393001192747391899861286479903451636174801431883604198444657296462990211686517955959702881583021781837391968199860624554690190736354703034287654414512586708551280542724216998244071480469554940246110407917480861135749251865491562353095683354499570029769638256278996435812665843295953708873518717759159803350523617872623664342262393849472585234317608182066346551195721423926315273327604260377071985902717522889319651810685960671636824111475460289214425801065964483535194839065600212494456432494286714754184953498455026561775882904693314528030426922575275815423370945230416387312336171494354116807616093710742247844607154595216290758706740299071014698248889733645682128861886618597311940318503017709662753621942749224455007321507805500150883902500384095925078513906139365625447713166926600895471732522860288899835894505236882379352328851682803964120064222675859456006518884513518320168438417921500619796500698030563742425492124193435135302170737747463602010460219175953757945105654300789803907118012620660650675086076035409762348161473516883144932401804488285417283614014406644493932697498660472198848173791132474764414445107213838986553860640048716880685500957332401060042517487564736882916791082682486254014147070156683879226866348176059172715545394841520739917615739468517153433546129815999124479976863565155923171674907442807809593125123143536828157101634726137072505457072240828751667429940538402004284030278563304286518055268381766990550528338941907884176905845496707472612368380599317892385281806716920384284624314103359370702536940765762352187594914037748933989673336378890529171755183735642296429376841603097960828293567928367654181173575739407381984052648963307559653865666648484587734000176774936043246605729245156878504384292097892814308303629516710618998429523066786192776799343696215374117039395140714734248284670659826566039924430621287981318419830164105492279482334251619197593107157616226422201969255321491010411344279606717514057413418529418346400518029724899003469359676368089455791382095225027422711311573258955723201494317235047961806513885138548969048289203728572275255680008806155755782952919008487307890053291008344511952607667256154381436335829573332590994856097327037864146119834756323157699766421606930838735525462180791249878319652841909996894668391312658452268746708176072667310199582335863758828436439278695157575854808087595225048398148501630349666921620722874811438433564714171452706052871739799926683827498297002110631339395723444391036662229798181759903016593897758602548464370459032201057915928279423751439069512546260105877343151655170649268118936319877233759506950878460224560964741834589891529562681259858850394316797513686159866143656700893837794196336264580490382826519926043327592345949479867547923795934867390194277862488414555647530866577361678412217922848238757179882683015149152496105555929644836760852114990731365798342808034219170302672051351325451971220807015484554744096639452127911219163363864439294056787246064617345246007261374155820966823315849028443508634379334599030609961134036816056282191502989318230326142581617949089749671038564323910466404987617225108382181910921336788046946153117203404022990573935741243783054996299688186707699585802994656174143566870621040002794364009672688670166009835349408992706168994547454033177616481273081590556144278566385609873321917367494085891272934844397480852784409662590443467679137852251843251521904018727007698874380513280066626303631711326508261455599385485768873304954650570395850870973118529045882486174179186753195489388954747214293905667977488795082487654472783688264396132090995971689210560398270016351871900648833301229443290668334365002417655236635751521348762488714063664672968572029436267680774669325847707357086055706283648487969852404378666449404379382040344558097231256339660546118515401192472485383822796781049252707854450277314135460156476982111579876861427461695398655501790326934872105226337368884969895952487142962290629304490537084430339550613498617692952477947459142949882083473423812500397561455312791754287079313115687609872861889756899983214655444163147118029852564327376319577500650144630409299898226142368681697211305823029167327823537261287790211180875364918775105813438512299574104319344712478795972554988710605450045756510528860625714029677419541758665284887619184878357504986397109221944085269306138624865458233255675423564152960509669510800294012737523321530387127524277908758980866825663316596203416389749324022354399228858057532549074698111817454304144522771953192514829692579339998552212047700851423024001722014094018448160674929306355820883425064535604996438548514436233267204768181812259875048509116485000565838032960900936631836669338870669393010027956922232199049499662779085739369715739348125762492364600784092570374976483552008361715419879991201823249129535737313878468114027108019297979930968301706041683370750376304775530140252207653018515052791755711528482820506663636109105197781990492813764841795370465647545396462762910118294116297907699754188207377102869216377111199786077298992067231899048872677361190933171041698746605207249178997638964781476605969867894497883534459559277669375735090413059642671544273233361643017244756316935616086582442818110379963478603169175937707803637697662354810309097182171050912419454560166111672198533509384642365899443739710356047271282966985964905747861467081090750204634789521840509844331245132292898292763944154420110257799244653030551679713233774545226976828984008138989395002418329984608954528950669205916469984323913614962211573180568690763784490443002859441578092874625117377712839677182567165524220942251061683929547805544137273553431393175132949948801211150066395424033807835942162156067733417573246917293548074191658769001491557361376341539740484260896494386993108786360970247133010514642064232681166815862486913765797300105549601699378255016345537741818578957200850233737863002044545680518297352839496533070856543930518942188516167230101338350211052356023928584005899375471635857986592385116099430056133563281875041872572826648482243178643103413899680877496799219923180442720342369618441092209867978859709171629184354191761854295190607599736130811888193628929703891834324881714694080908036356805184892318699145214599695819954766138762304983495281282023309427524881793562140849870994162916068993919907999602874522735546453600293074070304957941859645967613045763870254691386168158464005581070026612510501414463064839640544174531575382042657591441580900192939622858634572931321885939869027352099120977152452514898229344415996037763382830759443825562253198945555793795941639141784790933293344052255716653889978157142513946765625270701865034920617898526543471318685410853127221433986940156490976079112380811819164380835748714899456628252874202260261584774391053314657590051948985855533768131271452843835066353264154116160942585839431196573761743643003308031052389217648295470151641493094116230952683577298089329189040528283156583333334854367104107367127718095402588557911221106375982292464103575239953385046633447409617131785251781107413632029167682923317659988610848617337397025821247533074681831059937894339817884775018803831024454762017320890463247240515432657847027949778135455427331535439844714579440954482664473219166820496086528533019021879470083576779110126763902874572400096152912733885736478867889302079589445028582023018319806011829923418797672649851185569149945833498284365764630736930379837103651612751791707049102495339073007125707033591460591531562553110928996881101252108007204831892654558148561739532847611703378739257919375356056598970859291466652726671950908754814577888765928811432130788268717508149679031256196500467237738125745592778344041486556459737978343436249304662573463468042224251770737827909298074748066009713052876256533266381784193651922874973167703179769043440265891006282080345343408463802057125014364077068270517718127248549494098318792139794730523694621931071531959035528748704738705979431840383559961296630894229262412500212773779158341451939643541726864833548429701244061431788136587530100953169546844051919650648416546094941812962328659174926947972240228588116524480833764905624663771910094983163686184449178722654690578229194047522359789792501002062704912754654368335295531061212719267977072836520814370054373891604781981691072800918256524716437220573856489962220261426048987631009445855173491413244632341989515619006705344479804804053115896754351949889821618722607373346259266738969471411992220344989192263839033533693703497658357672417455037014061182619700548612126200031243872308177134386000005855620422603840574109745663005388629974002320702201271874003025787672525369039093775852948740242773912195998980298191782479973648324214265679174408350543945949669474034625428187339269628895321918696067503647865784407802494180056087542034839929912638442022520832894026523576013726464469176600760564329579739200383845895648522873232567375796347126113921922252196564404404863983487233829741576541908627181259297451309337856662339097471085509132006619296297019338126407342157371975465836039536744270415647369460675709490705966471739872804488385387593759943950083619678039862299596511291286969845572166099203806140625174779591705421163181033615707346817556655491318780145907696621391555052953303302701599026765040925846978245528059834962010423946103501162445163881788443753838985919293488298842684206804454021768961784257833365075313387846462973947681921609153957196186579453087040919181765819492437729861905980922835508260759345695123657687287187142420423733994847718534029529261929600631479704231115033172643563427278720667973424031695224323266079777774547117608596686170045519140630698123146797880231814270335822429110753284010200408723227571402007193395611619027696480645590750832566362683573343168084232571600760629958565179894120859324258692329236866648708027827795999873818217601593377612090863689084294561389452340153419655748106155287627966113394719995340151948032962806160276747127223928365098914955689892404971578398504891903316020837213881204153592477020194806459969186623838169246319043554602148086045626076012884970124100268078560387093136324823882068565393838600296746049217212900444071391158124425892180698246605993949449042739802458160658743334042895471376596398621162539643030833225439968305367702465488812560103225698423828038632548537241875677745547361174172344368214259681600972844994326559345424809208266643586248790810658933679576306820788734274583565615772378197486446824073335948482990717780279319198446774649724823507310927095750437398837122577789947778138942046520667679396828241575865231313422735769284901405974592232840891066868283542300725385374086343873982410539590558691905421919566610714395306824590093042051477607007416045918986866980697905657120003541192335344732951466371636520230822607569809201544184941767321995084676064858293297177670261453229000518414876624047113663247088467531129251757497148840288044725366120105357437443368474082985966040738347976901980500200038626125235001532827136140474557190233419958603027367908408471887681171842866175650833316429194865310281222245389364357084141383780192972950360729979780496192592920168363919742614284081163507776916562690257140396042016320586676264715929546287368141475546707031233781280315550764082833457638441271434413864956721960965223766322828360533053906947494942245286116772987913149062257387645086488816179277297471021442011399896252181442429087911928163045060017527332932294109664632000909602851207785635421844251459100167116380487332792115745693160848549289663552786460216440378485338636431130623372523920722828299167476131635989191431733670805679231009964126456180441070776074285958706878844293845590493149573899310481549903262333502877505236858522254429708234446057347795461711105390099770484009858481932300843922071829062888886562041416755278330233079081464107722246411167609046819636787762771853999155053192840940538106292940620362394397432332193456740042027168401641172700317082629042430784859488131616098047045537856504836548136858493686674481120566606982120626971496856667310250458168566411668069178794516538373420822704341941915074595108063331125732459561479427669762992081769165439237978810522690637140676439999286240197645302093349007769330836377948930961949112973506220080775394825892656572790510509684729812346109517604204546769743958463708359055189360589513100206122752829195893998928596598951132633222982709358415533153461601083259580146207913523472470207796073107595547203539356458856136489379475817892938729361506406536686533519546651955542859971237581564911215777752992220369625562150940280952927563067842107433417180556914023493297116711833583579540521625923378828287583896987284110372508709374151650899725005235471713923464579517189338224839520920180202022761482453107501415098734623842380592781288475298375981210175394420868144374581555677209389492822909022245588164379130456559259211103039707300862132495397895712040116399055655530135318201826242365190335106056690745119070374933871181455651439033514329801896792944405795957601540842772150708594105383725521746132430885279742967718023396724172535344323054126190262298268668087665678070725084295168987131920469329100741775486759825707342166381285840286120755521859033016737675766160715273217203801601799455371940386730664135559899015913987587158439300302306366085436480581366916202749963319392427173010407877123241457309735130047005188600350589845103636367859018618769511295570680740076683408442760014398444619188085100059582913974047720934064698649400485148463498399786830370354719936684123815752327018839093052939855746739540249459341712089430116453865529825158183756034301757918507513953414098894803057570252871510360647421498067619004222203926904860497120440694090351740613101582280268010543665648547618637494568572412746525965487787640808194545176581179758494509303357838647221022880231865960790056063684896319182994772580298498180265665778775578838467232700159924588434993200628953498589549371823148238910399865030316868454414828088103276819012641368581164325255902862300632593569053548606919371130248893262150001830503902526307152584948263982277993207958557895434200291193595420299475452935438151219296927885938773734547472443329678940771481451581005698175377230111882575705400723235100580252190042071479169881891683609762434827253194220107230740415588184774321233697881316843702887200746005595035658924924688319044559214605967217726016979243033186829146624801403169794722962380102600101348541075014159222511260110270087693020722825520538182246183560461848187143356430401062360199693037458227010862855628453160368151880140649237857004618244729097580611212036620782928037696483266634770341878157781298412966859151673233421664596463651582173154898813816753080202993329139316236661204139505222298235339953288475666858709295501113064461530055027686920190008034811932838254482185268152198589844190996639131480053198221830854031841198288543452744544324275818020096016161656319319293409432777383147045176318973715788389123577458304057501057741449643532558100389375017105979448207635035596910878984379751284312845423840095524830572057073195325894280953976916188086993065420564664899870610793562820106709326495118201071119974068470642217663545429377186307331289143016824200606725927432629339530824694779713053166797685686721221405944805362361603559757591840956508252126098649883631203460362280894389912846787581784039094793987515201956298494623576548660727172469226956503870391574162214467426385177760122159456392205692261231292955985926537503327285530853053162874183050818563816061254613183910428125828368476403374419331934767657328476761420610576020657621316805524262345745375315098586452773148300098614519112524584118260999671141646506415849660090498211661041609585476011922344706141799053551254336664942112322080407304642281124176015144077064927787870936119178443455089959538132235809305191576696594099623584971384795710766946726179247665198321762621709785460220907874433436078159360358822900573822536480597425340618057343932644737432801707540446258570714984182046280372499849825652333621844096031609032384876418406970250383604937281244928048595581339496116933496974800971459948279819037423310767363061708974616845501705381416942788456246140215533178800373220335185524540638996546016687545370206552899438523559431336033896033846003830852270529945950937885807910660344264878784456809337253622288237422698438808583395075482974630515147434116126365127397585339566821146472903203645862704709457058909548690116643569197428369231242628568161223400477100450287152572642127217559231753456768073316655415537553366388785567371500320786673033124178951994463741497831808410101040713326374819872951305104607011101783469140812814854741732676808092092000232275947253086220745659836423775353175340140014693195973713449780464807927722808418743231796264319234196560223332289357162149066178830946677351028166669945978347957363509511105236146421226951240796186048329496569525223421968908415651934243648209959912087982380714960977737789657511963800914752074593613480792156037868554742584386965735260289843355196753759395137836473337538410875995278282313932762924268127331247390819085188771114109921881218880356770075999984730620263483706999391171160202115164540888889522187348954663384107479131227363339046152020577955437401766337390309800126274489880566343058267200202095613161256543173383627147365342662740719814449370467417918657387253963115936695873854660963739077505747198347002561646802930423443188523288262058407126669420001314055366688301500451620054970980132424726142924297558905432458430214649273427164860087107810191405613906246950090603666526797912311439757572304184978029377076303790070608624525762859748026491833340485737722242899370159322812399646950524467461372827822501734407702216787119934224445828951198539697984962052677313416064674193991842973201573263510974282055824888264694483715438653214951575453223087645901342462865679550967426120100916595254542821141732928842950064804927593937033029170899605927903465378420109153538501422448232688244392094212380321060584859719139427813840959347429401338050565315423264117951717212694594242411122810672069757383223353834691977794312629319748454931550938970967629283735018038146118960351984524845569400319622110143610286911902783257418276465192514423632352686827277887444589117861775314859336772301699691049270301413657017696352212902462596987425619991144937171053367264370480450490499992458668446057876364674510200911779450634340118708203019062688898505840798554983407010289196533030304669557942658976093286903150463564319629161086954023976001562688478960893254792362580514836140533578690649874927976640021041252008269457233493609429029584783723724191009005587665396867426128897317431015444275905761923765809654872164604825284294312967620756353840489780484852128229770095540496730438820327604031970229647780942442355125875168034645792034477219417478227323722397457679975517052070325096213530291883180434090034691146619963187835590922674336653896103453222287436561891933964639155758765603261194827877235841126613253221091862989992591996279155257947579109289867459951011442575614057569873754642428642602954633093659592154869060393236085788224669891137611588069527710649870887361196364056364985972756736074650674499346802930316043967655642602427833586207736687967815619551011699828591886963960526987520876105074343691406643564191845022784860753880274591847039749613377439361172167159469718535890727337322170254608414900616395531453371410131979635610424418848100120057295106611200407493993070542449197211368356934290408875453582890799256224751305766627986498927572387232626277308805898560839306430256101722963151942694257796705184591159862150028391410567838692947579954360712314431603549571115847109817011689702128503418663826892014867566954793327478715060067343906875530231446548737848424414334682300779282158751965194900647190786864991684324484308638369351197985908168679465070289587257571518321942174372581274384406942944670997806152682999906709305424714805139688075271845396088227965785548258725924826442339266994277011271146580357307021861731363500185217034051321869679690413694907649679848369138953176593542899343026952442095855634341106821612920678022106178496791869430715537649617378228313088497369002573530545282992905157969370928088020867211678794418325540414016602564372767980455008784454900219099794673945988378702971108312570803168462943933192993492997899574911844033595402202349337249929476922826754109076132943817547233284159159644936249270035714701670459853592925009366244122248597402943770278053928683585530915378584563323873131129139864889413483343046319183005671122515310033397667161088847702148276020863312351035185148630923663259060915562375417969422113435122061804997800955961960048562036880187708981791647469323708550391744260752976950985330514144592931225822560350057207622926349308200970868929538107924726612249965762059114639233600427588621947689353097536679171312040862217392282994575848623829883214764543616045539691020999630850690184721339899354489616985133422825698843695119553958247515326261983744588652869036370077700842716540440351542432850804810580462618058812530368666391731311660419138843987507349726609135994915677182356290359757296041426686859039399242915836541156360743346392441732598134679290860826548957402975739707205369248133615583003543706837907084415933836831122776522680563431507813279773034595560549116383285072401669209028695131341479260518592686015565199042823026011208190636600381954756393008027151021833045807404933709701342174702365197089285053173331891478066639284835755983797195708548936633848495558259080819664791980634008190026412697939414676307403817204462629766609366380093721867900420338048256606438397320533635009579843756785803305329686514357247798979401033813627640227396891754075879591435942053902134919657779448262151869753250927459254653317527223130686154125480071653461031160221974853968972749022552036070430287684673984690660367392569912555290531779254686752509652612179020232277678713317039891293807591030011423269606616610992158681352823589727656413425172895241361469918342022170376296932190011537969348320117128325902182752479693398815957293600542459749056103697912186003838780911873624230061120045249988744521094072460668617017531575784521677062711987501822399394372487511177932095168606721813300598566766893933509800756719414131997163045061700740005366744744189833607799359255205733632096571711302958759822742306390547603927735704856347475631896934908468158375885665496872092692059922485655889078014837069330428203331951437994921361836446199508238501208053505084420236834460485082162147974780071260768628025342140756524744142534099909390206224202981411986750355303710184344948037202518968866907348769579064387204410608201608688871559694121644837523448824231803112388505400886929374963666329633048049619332641990396506830301746099774561243173475334803665792046692114313841868402002851517725505394282196305708653426203897269725426082173794834907164496575044966554979534532098591209223734153045069411199122507879551315963655141010739641019396862469504686968066078296218582748407179839487064418795402479036240842194862460013180087631695320992418064047551334150537149562800832429597601487767711406296837792865542939741945850565011452983332200367845446990159469975462661850297637777064695555524182058233180104310186818378881435665738172784387662812498063980418295701622192339318348567097797505983867227451348905998102599602535398651678412102761316430553882450683732494427521200780087857957592525262727244187493967970851666144469128673300647354269074716272566746069632921799918619408591176914379491898162571235446543139349939402040397283814625304107296700752735279292557352439139354643885786943657927574136992562523580639919384513042042310209512078496905618678638484890346412158583125410881316822901043113515905929372890729468943862351978755298586477078831385092543908960973918508439912189892387124931924765928818990815723089843638999697278760528735857407859380546337251653386838809684903759454021619078399183342428155930497710658826417734951454240369737920756424866355171775701246320083374512755864479606962396689834067524165741227424860735650191014080755076864792365322462641097532156867800068335410180896540380302991343715021938772756026975903656342675360074198171850355983784181786004225286541432366410965009010396078374998243169944278837612057924744172289604741140830089211726341919384150525330205844354204697969723279958596346397951073660476712494669463341829941178250529764474234985045466568876746669607216778914890086123267755078220144926315249973186347314268513769486306886469286220879779212293883088078857577830282398234102336938487465656330963631045537878392175495227031201354184108472103579609155576503437784151184536948584531737499813326206057911087861946257271989854588419894543167861591148755428360138588258678052418500090314260544264810548330524000198530115063561899500643383904074690617362600303073595401833069929175818088572907824088217636434155569473946665202930266497696114593982744401805691914455787285989071932330667895299460450051141078498937886062459247765998503748908984925866611498945617366158827916684983514118915099747302603989965709530013991247009113696669783608421440339671363337197621639772256408371030829269572629854350856624149681193661637050135013879863189280781224534697906805429423283447138797384542016493474593987913508800995230502628283968968329980780019852173090102384061712297187515248275099742801180330630865906364745728217529792863445024523602426563882044295737862863948752450803955016975435830143096106169562977814607848080610597089974142930815053143111806195199952407304755868738046908722230297691984797732803563857644936089519899099633479601810105204763845210728478156204667698103935990567469444339295493952692246956113169147280346343995404546187376519521902255447768475990414535499896682068048871739760622050286065811335761417688132687624245323898448016554231713472500758044201930911625345911756538953789578773379363406017798540314016745322418034577085391015690733923189963220542669006593174340866161783709105512051757496044833395671804776295737709770559469952197298855624593475050581550814545446106894921218847725109463448233492552612613014741701924900837697765383591937206929611561927185069686328683704885938655302549328179929749276963839873606294386106032320844137679374532953706622936628739869026219752936099559977724900664253153662798665509214097039502004622989524907597305407293040500756969416949376551371928896078686093709961548477436243405379852872614384829315130295915181580559108050706668206929616239497737875710944527946270198325146003772772472824290509737012810816627262619618016837773474016666708530830182601007072726746351840043252982402879512419961666651310309053318620919338950108767606417854569978146313820045392434206658024815796024171338471319025438776959327787276286036871707213539779222999717069327290026804427237735421963566083713991132768393078724566132990789793261071002019879505224038033384864457214761304922576996933105750965767606293581249564842540543733940215274663534063363734329488265693912155146502503064237306464435735839860178968467734580688865311989368992174367212643771360740088378089635429685559087490180325945105833931826539192084462465488801602602643916383171403976410815317499817660196798862091999477549222808684994807700500687801723378676924447333512541169423946812848013648155807379962638297513656407437324811714297330886648987170526956347752949510052933134948983471673904800008827253655290549142869572481125192059246422566713706564981457688731543959509925735661073475268027945129240817522711235923387970065586138936935030839759276074703847234028888133059129993865833872380087352118224356758162401603775338261837814358192619717196035424717053659094551485366300717311888208401770985655219519740852721687527255064633686163036378267175319748254292694366351916600305818051283579662727823681892163229285647503095398690461655854596850785846400486210487228034501104997812600446693488015771943298454990626739437054616885958246641203558578027621685878873045162178996701813119273230416920177122874365612996991140770703954087543703566603632449484599627126392044062487229895036781522483811786749138552414447934730839821611403120594657859799721291251130003203588829018793064551706383141431030642135684994936552758262604402548786833343552417220738779555402329226675504692254432779893786937707654020359623702670759034949202398686323408826868196309349959984877603191950554159295847201422272779122102479018781199085977018389324215373070447818442313498465400960486839590055184248445071851325319283966430621991106294923746299033248976143541554074633272947557168579354341694109403000976635425292296133403107506078085705416165488580058285354242754028872999444798494535655604058496251506461633598116403025322044822204518201721823989062994253397000786698859449618561479813550181101232476169670897851243335804114411806516795817636248883698693362635776356241235110040831561011123031820639040803912689042782828306208069710519864586639530570481993880432635344819812049319227675700072408233259147183727226393971312458314763376664823067084243273368433550214415528379369759556831417528490510389154954054028658351355208612156922663033041672823707664946222592331460016578145039519832283592057536186227227698077280911743316958105111795925979121448817414287468440772999586210754822685484191658028444817142913286645168682240928772989325125216711654870893078217840278316216778564253760262989614810238372158236952881724428044490395601028308065101039523209800872823945062032186805558268969181859962711671112362716176989925073283362745149134628034043386103162709124710015230155694665739144872919831636599890984100108686682159635542226038234294920325539487690372941630835741788643857467708615405555807840449048551853204981186869424059089321725284334095926040631911823522951886587776994751176389385149187177545888660209076933585169733357143254699538804895017569541897093976980875453213644914369750491186950122520484861789050018663048952055136336391359079495464477626349202597037769978247263857253936898794834977982137844863098952819756092867067957617580229285995899308148843245703489421190441320102380235686157659385378338452176093991577554375453981366646397368484499335329012112120668967869164535008372360294221718969385323917833946749958259866835845376325821788817710341990444487707801655400882465369866520498484457494299555269856555784447776829258977892195711636645974847486394836654251796983302595222388563853286175921592304258513711856338122695960156305645619802626766039120172356296982852667658906163842768895960432364309096310472586403432127727654232435220342641044470798486285540681662179327303572912940015884103614989412802355773274423538382496343557842664459447846323700280856608712769732174979315879649685076438699343916521099885088846073980507016985714061137362716927460171704511214073856636504925175346938667235037156064504256396804357539515861554211200823584896199978815034513057860188413374473758593675295567905090576458887737202050633018446468317896610120529031743463278004182818072063298484790862537052112485137163596544776067248191057661364277152327340252174983560116089572302487427842642338118453201899340261227809767998196245628275028131086420230918049402291889008108422968634180690062245604199128321650302199944326327622396929277246162059886638964558749549155069005521991325926988489263106795468185785422657868502020768770661997099820708243469888603809758972107225963739944748401708615358584703329317998825067989596965671797263671589986492093352577243368421043005443469561538693394417971799440201334045406997022802241980540644867483739525657015263920018100445891642835070962920086089102772233028744642415254765880781686666086282905091197121863578291255022674888518037181058573342493490053753082264199915915849894752528275583618140604289238724665983105177808162728984277846777116234886906686372232501508976329377941163811677131398073011545171224208045703817899827932997513225817435514417210341795724515827860970287220596659865634712225380487539224552677305043815962696203562421990732729211522410133222240171048638052180339550813136749496970994619009492556550190522044729397417321634157802668548131250024921356308334902587944856270922842994698997326308635738330357727212780747689012720029205206271409599522615078032265728160098640157350624772777923821467004339456918389732040255119989022221837371615269287081195034850845850587825271581794916735001207345276412674265298533207775036672198397444724852179895618202213864797346775461189662319052188032431449319921820206931492121622438567041669658786389431857682074308098032052456350060132032401940464160229844419433195070501838226210396827017394426235964206452499063454700684715710470174970064752198966612664930221345896569384950117752929621751979174440286958539107565838321707381020342202592603301430182189419083815732004032098066506256920544532711286993824223801583379741098948687700797814401442811399967356209078609297037266759536905229841009381336318595005118753723739520925699854593207182317945761676221043060309901632432092115497450693127886458411535174046438258784118503488563228509121495647752243267311083745797752286090623113323099774953110926167744484310847942918444647887415788828793103875744429576144741094900314468550100042271757930548916188503931785645395354434473987041243213907318849245592996522983769078183402710470504425749319777648325396549347261581444756730782818192424261937405245331957774164764081220930777987829001133817968058278117661270506542973578049393928917951714375962077542569249431581853158155424555550660282692621637179943154327234991825967487710390842645729561073050171141484906077388039762658986247168825127516749282618687545886977391717473759941621391309633470746959698136011753726865661624613318996308080954843281703650578319818042734651202843050247709281919464953696185258991673809597946295148980096897412395944655090217447960185411455050740201876219122195429834297917501129024356169854667266379259104248029891913265042428435057157150368167567307971123506261644470573535076344753762874009275759585091519662149381507175530095491470679927137467539566586438446135540958168583656125136238124079868772373344230525272177679459241954852518501804796065380638801430966832866059072399020771059359831503299669542338083921485324867066653746128735541188433376558445728929205664325194346111344715375372891079280073479220749195227297959636959368707765826176989261658373664875398883652717955029601675171482611811930037045047327516245751171783380643770289042800141375886216328824534354780956685010148828726303671068387711454476214364776254005344699833945317243985415657405187420708850260125574033731144512827418409038321382917405651426522411250296180894668718814690941431459685339163885822229095398898379184197525561219524832999857338212694082420199905874748271531447494037196103720922513692173869003238787231143866015832302185199467279736712744418271406481755562033254442809020762092174159346022846512582853342645115133716407747618901655034160773767637379044711128023645826288472961710091101173647902688089312400846648923482854286688885943130823218845629625782347785111872849345086426590337148255502629280348391463608321685199549486506768885731734394929496928194338532217821330379635615043598546041157327062458047462317208182510953164305893899171766736950760835845498094984386115159561725475992204802160048363030805473708078509733900372125409353431016500776102655293706039593927383176710924437119173842588306051499782818430949922990901526677597096262699259337396564106297586941685691451146396926520254158061319664459040467415046586169353224091846766602410650686425168295034383294550908168465497998291742585685318132800721656189966908460518901312979807451601114003861371385404698257314360278495429445716360293695106073707179939296859225222011041432097380600229605737885445100224433654592517839759134950766698961850585473130867401252289702848811348575418015809791504035558465022440788844534176343523208770325151937508977536799772449837647731112972083871008923310175775689344204650557165685262580271741612820216388725111859772392374547757820139823169111029366475323777137360448954545877969442883708090296565772183344641319655302016981105647650247470633244107763087681292370515677314793810197206851137081029549605809004166891497289549923718399882427790471858303343560458862877521261166352171632470154005865377190643615415857991653741185043381738396964453699152779390715626872324513475299136804754562691207226232378401170587242763685326390686566102719148913720618921632606654792328590466332802758204057874019140866230343993894440372511937884353425531964895348275360968656127682827052418947534110419574124481386140421551521562234248793517158019689409712060905350671351910729849016331925964300848016189500261747175675368093927557414294222171767913639837904247977881492788427582787557568140528199642118972286995665063762337097233145145270266275882162048371012178638234754615925784316466433649000302864529687544187271680293094322667801314511054236350426969040418214671810978624229009598339278479087723371467567748683302973527160382254797773312230621588280897124842505561868513811790680448174744512016646266527779442668602861719136148029325489532499496271429229651950357409034286730406944451572985528944247709211295033075456198004709638146090199918570943808424431482404309245236441625738312378218519417474422360990843509615623682294060479293664287614339873131114357854489618725207089226318533123609502553640111707617150199214276101809336941534883075527725023286866603905618334058298119209031712532136071336655446469325786375118479827414088474101611945409156731750157000975991718223646520079603268230657545398220555258503888897901632961044808047424011725098910960986845303875039150635932639568649480996057910374439662411316141392363042915242183063047059807130356271793652265832710838600375508833031646807738718115090527788555713496791960600548275774899061034710836806696334956036298028147542042881487771758706035000127295178291046897878712232095899820522566020290713225109373173950421377161059126182156691778873566138566627384710836859316872709265349701153899124724671991873248393788349461132975210345981457192763914984503441061473899337006709433208760083498140586957357504794974248776645850825050929980448488258527234144284269501478494291651751985062860453593271468169914757786387384089106790125275929640836836279796388867392965057582099114402311496899652638410128341931269856711899625243790441434426479526533988658197659825062562889974950401950535799064609345302714584351381381041009258446200846847346925840807713649047833924285420346122156993739278004310571329648741654009890071327429225305242927250253907032788374786140448882831394460235588476151057167690435026359234846085712264042823574705777912341941583374681028662819227803574112029771924562146345258102194828208951314953403743198262228269283555061363962998689838285230666197502812993082474233683341790379692239165078799572167553834424985865353952628906280045663279654770716401166502906831104261790595221880397023052645801675589637682869516640919192724706361136873032826664997575898476026601023991094218328559741649997514824446185496477229939524305881560893275304146364315847316991308132369169785830082099952199013478792927272113684451934160517790677254003183297914718727166266616854858809088755552227174964624346242874671762536949804601599243707633462391245292413207718590526906264279607237014368696125558794793950854890264848359584957562195791077270367288244130438800472971183449732245324727395453347458582940551935497641814656561205222397658644091249788944745993556996410914662562124656156134206121806389323557298773314573206331446260049904802655009963127969415819415312006978968922728566332953965154913313943744406903951990543829056319574091789763989762861506797658147837633689426789466769352976879923117407787492758313280132356386497091353095697182987407037267175083754944647941650208589991748814246064094845419777239734113768791563859062166875972055990876245594277878531582060413816204235058009357931075866124859614360095364656327953785712500557098388679844905054494944373203741376501446972555552521631948507781954121051360837228734877521773251764249661240165046243235220522354928223081065698075312618221343853127773230648653583540664816806366284845146813814866206767506686086990904229593267370936388975513492381585383650805567130088862255004842447946929031825696008404051238940667144854710360364651853469328203092422887476238937317398082242851765595466071215227517567009358003971414630984989609030387243957411091489670839794882927779844366373204964082765927363596860927575021641657485367888383602364219810004725886932399698148388805066781104484896170963175718817054396137718383975502702480794732200481396588972614126981181346867745333450095794580227134230809079855031984054559366685353998176889346322095481948740771810172030629779994714005617896588544074996746290500079734055545458803337775325771130819568533468808497738221550117967273802239407373917193029234720213403355289073006090141745686901661364868487373370094836595682319993541603293651358803912823409219815524770300258100692862341819274380266606444797517552765620441959002651680856696429528730568779421302250956821429588748698049243384944844599930419668045982717642876188438592509919095037638724567444256320873668744822269321835266134950077591377493307698385553560104671781656343321232412681779887079695538813597043066704114747250056989552456082276505382411634836699122926759512843400827794378391550918320431869773728231527888010135182149803078980465606059266031529438489728586268854107439323391194741036093648475212829885012076684820073529173043107501491658863153138540917351509910377766644765815483218673860790999564520087351447661844599405586873559684582355913113919259148173404255373224118426611743320921028566544807594000502733173232388700810772935397993922654114665473712343918451603938226985579317388470499235506726514954041085449861235936217636852499151848095004764826576875347083668164946162321008969925193284577942978093292845609037972726913877794940642600244411343641279250530888010332851830015209869037136690885991148186366831475219089126377179793694399240420895610864488144763789729517884993907135001779290133291703873994905643732767100298936086261527125755855057723633678687745658981521945048031870031238205670251017119890444449646998664341238822191784497086350986085447026046608027919348878597062054511004172080305932305688649797014528204953036460381248944426876190056072887347917701343186010441470178957236559844541653520611905932552377043298996591570837545453016372798155155031346875298074146079857958872591373300596854456634440015499952367542942375822936022792819637073878222865249217197879006828249792449129938166206391755338093861538167479565813513207349410753573461394521801113181451359209636798203318386366076133634700029231671704877709582914429119320326111685972659785570810529816885034399984594713249026121093918845449162890361971026861933822855264958220979465459860951415666245048227920058618133248695193716556530020589797951253885123356458984298485044096288348389183886885468990139373590969161675873381873902374390367183440576358962804202700262165228380059022550148601959751547607825349294450165913053098016698739951622984566048931747089204244752890509231835860387680538511099050434432337661035635960950895210094378612705896236208286105921563137216146766634626415296237512534849747975949566632648207257291960758893029010480277452564837414505946022884199003294358214778742587520577008976189470804598424576499123953753657846840162733948763459546111838048990336316828771142003326815580526022777669697740216093586645014208822782743736566717043011091089510756325406803957792708633220314679929828073194373317954945643889511804783753556028906218924299768903731321094216735482327956394948940798152107401784952323119711877321050954331896286958399051167106529512776014087206224576600278246425772297634519802974181163313478552263368642492173107846475848097822164349527557020733489930754525030177681513309409594525871390267223859913051901395004620403525331907619907366963364222549777621279556656586060484176658358714676310349647308176226287411880010717887418975981424679239437344841715784802090327065135872665564612862697294198160909480559976822284789494468628897705226706891211067349113832239782212880746269299962463384920574479267503329250477179962229476143548046804297019691178380576857953605837373099490377128138357450060425515243977183331993597775646634724948147124472682936849124271447940294718273238517288937333658638250476337574105354249045788219699817843703613974832332261785255755726603556588451441236449688214459767148241221030726600719330145294721433404242086254019082802949769603939855558927817657689477230789058395257775083128627965395909257262695090619752281461710794044581831435236657821917811436762770104808823843314836511454855242119721617329830777642469975374884528416526769876181814337443390664073786660213896370613722006058764499395511292439397472907737360394005718742572554219583390083337957186174972299451125378982475290141645617260437179039383842988288455252219288392179772282990852229006410902942300044984839277879041284431594830179971876097674022939279175345931546842803318471863458991770029932122049210118557291700028756024384850070369191335215914151308043438234215676803754529796859799797842737337894489294105564141197990114886020355342736772758486484633749737573942736025104661670645720997619339224662986411655969666645574721464551967651635062762437917139141690903787996446917494608774952620749766297659842649671034769647134365288067373178650505758267377563095503319278872964658780943176968650760117083912060097600017249298583303198036163417056678454783562482479388339464214360417600501110340492110835883320981385956797496759507806545776802320715406434690762197121889307088519453885809027189097899257061781181852744306626668249875390905039209565789072435367163568820485747718347690576959859857012224906868535996497344307786230728349934716846459090207466668569236375747929195765684190320536406838728676197978381211922429788814181753039629802893402179707078225570151313501244533249696335667434778206673479945165448440765368322401195607636102305181483007913517112427156009899666052594452237339811420813502544786726328490013537516849477520412311634512563560390661780647832721474989178529105234214448916854711460132312488993788905276232682285273431879734333826519865269085912971878133061858284108133395231754434038283106790789145989019802005211004866497440191375207779760599005699457043705102138431074187728694324459055408728356932879842524736189235454265720865489893407605693802904631754428208249144148241109747421652106505189944344083583825664956265236075007579309701970735221342900557639434652214952787092845331213294670973837613011030268203293527667234327007545651203990696145838623430125855425922315755011846419642857629112668992711136900537100918288393412942733089761899784364799965561604569361476361462280368462741208126051886807838890217227025893306907533877804350141854541785122613606507492922573686851784746318227741652645102773542432545158650481991847147308470267300191169969746236982442400460687724477842095855479582127023870765947293456027031808036136627168965064562194524188028787811310922864505597935382481247356830731151162509882399945716021410374043034824038919897057825252776112639948000829170197336169611684783763818737258773033426234324696009226900979283760621347811881092376151098440998175642711610389568700200450041604348888690073434313465254983493480758483324296162569580668075231705335891644512642586289535231900083891193899081547812441906678630909269396342518036528377306896402543461940326418682306512808878128528803935389461598205741804560819183922963524723444272900028972996568805571932331135907708526257932168479112458546083134551281614052383848828341995788838729719716049106702992518396033434200342340498266222687706485965582083328873286471585741330055286208554133793158724839083998615963855189015999476871881325660963816673742547824774896938213918304459937017997498160444077177527697372756723447401125079723541553930836659874087981067999181511073287619588666772587305533779621361238099230626701716113185866530013415394766090446325208636860872018596119796538008859503000160786583670534709297940549059720751457759334691161470763669176442390120043714309529578040626523336347000195202958217224388098700945578138553327037185484529428858153599637317887285451309687430271276239625024802944489129599719040540139799847130245881140692342629996331395399515213671864623187275756485400755472225238891904111266815207883365949063238257870302237020729798111408115555790174169178273905475068222071079877093063165074707583195457364701984787185322070238328275414350267518957966347252280701439425528161625255464960185463645969915454176514073671283232928769840155176637055742986436089242570006660675148343161119951902091587460238177719782784367691780949943131401857864621564940025939745186976352585040024537465108985311208018804044779888506788253173377115332100306473936396358179642517811347540711613902320252569627478420163298308079695699266818880041305038270073597997573328015744630007901358346384099402604914989761115425168383963376794619056919199926431929975574492409709664506498156339913736689165202791345556388264383182901630408801401566005212851817826327734271793171614775094512636854279348011970628000487679574533548523049702331626580441558977676343255751754222395221403285124117939799907258335799284316727800324398866129141087847709275161604350699706619686646473231147877023403913216651465582611348568211792115392464087922626141609776512325602859337996049500498153785488048692706195480367864415075510180856158029096635589883942095159012076848403781027865557247469182831337407928103625844724210059256809454523405280849587914455497373015341416099772752758464329013417346342231779768682475705868965903616996076752687475197193242997094075369406392338886428507714684660684601291691947113968562806519024895535265282911984308430480278086094000536492799631620435512060594651474078191947204257455050051580636157038894543620918866942974561946584317246480448759588982601607952198274268745777386973537356748882307173993908085379937506016308331247393298234726588433330778744351359034906459150091119588377620697129510232806276888053446873188300038632005865418495194541236971845884106483412938396569002818770480447678753583814463757274521384031751128248918640423569411003625242931900541460612216479162370810991902260998146075436708907672669985754421060864944425800111158711646133700786923716214072922410322872847989129162736125491224226499058628586352303894151829240551618257024839131409942116036054490417908895458313235968390703376683537149057678103661238520764000074276894198098048296288633631588517903348771298882023995385288840596589623463433125603510951589891930955448529586762968660551605840187811021426391687595939834149825258550245639073661040996908465365230932437778042126582849871480574294109973396990912560374877601661539019592931116872181009376123508058213797692269848553448811782013906677569475871029920086968315959987920708923038695589498717001193812513869537160233916183099601331205329968593323874786832487972077209079692706781651836836365586458921863465119423469321367387676865354344937974523400240026235798794263250915942917135141059436534582781756198959700798580080528056977245023657161465239061873433718663551043485629689879167060716587799093837648040780812971347104141442190968730692475796350629182599990689631365122040946607493508860610785222103562806102927749068407941540144231824648994566849655694097172608423173969671198645550936880582454777982606445853591778227282148963146289455216784844416632202033462245985722487124452435142914546612367983633694420261225278379263257484976693595367826626831935396903979110543482917865457676880694530756059255671297850146211613846983559145413290778154039313151295344130757774144923977670871950305367224943564915162416622364855869734837715969770785237211528225299571087765934430515336341001433592457645131939010500712568354473595417269185513901370467399591146099401265946422641898398747091197188757698848037991097463670621106108408600908949704800977781340084334938034556070895877751158384527665438753266800210675939176711270657983182478905570434334479911111251170261539007688168199320429350810155515799548161685761807485578052841682581749592882529408728357985508267894135024904353517811244733081975177338947644376581407881885650123609661106093561377948176891206819534813531534282789570114023539307757699013537315515820234732555794250671252809519762221332771750390684576860318654787665419964133235416468491012959822499281840583124799327353119394017332086915240914553701849917547731130914710636990087200125112712521322439125242200642055094911064378029892072534065036779046005887915622536732658912518732402996204418844038723177697591708238453571458213899558906991694540037466001773158600425510186679032039858238730321491060680368318674184433871948104661438356474269881215715175737890111711536484365965399134474952700175504747616439667064363254049182728356244977247135987190016979667055491933167180686494458306644822989130616673563676067153102794540667197149853615351040734614809875476244308947141244474796776858588407695686669191790584325966193372668763903560002797707803750295473237415162186166161979928007250646195556054907597854095868513944652309420714470801695007168895595430443705047156253890812386510330980229951196172096205578760865140895094703491149472607718654040535537523927029319681414094680466459553160514181388265266750727426973014001062970805443717616615316199892011468571087877858238147247458403209331475888066315492708069445431282173954312327593191542100331922279531315293710621794625643695753728649370214857646638424323461279115262798916012094051246706542265156506737864873226681476059338532901745727046876499639532258476454983309746881206181479252236160429055610901751156193938843108401327042459239237370811816420892717485938238859188243778527753553322807478689897197242096884033532887700890366695851646643364555325149881359277760927694009245736593226171931813316239899734056770333400956572983467938658913079410642032265727017025846246227935476006781239798569106437266016046066740957833311764122730376599344420473338016880961923090038048267789129284356800725282687606083501405814738304967878204783193332655123349227460860048942875213618365075402126304007956410466139962395038139197046326531606859548719793190603513915352729236751980838808244846943399532970449177093881517345330690462487169510158485673936105259925009064290338250562241785272533977739280175559862093881756955113625902562883291028679978475423919069476672414357376725656189165983786550642600485810666558745392091252762038076069911172892292746418329498532300176111854696671233417662296151808114595127310454233898296268711165531554134471318048892460186540609605805473249347797093611332771429198000595207118369558317044656631901223137429005620795470634956043688240987964424701974944558031828487368878641765824311397235852971507699820492711892207653140269952189325070248789693397742875597072293355782068365833083537143799658321627624404754135509314048072927445479183895047595318276827582244382553067731712155493794203692022953811452126937362399538512836723987576985321194586838559199385301262946027283361109598547799872902727377531890951415136003128711773689415187325500229599649005283850521245212220399674631693374067986930191665064679939314734617170754864980417558210272402264143486566899548360518058285972554681540593947850605932797421995981895445504009497885146425382970459532665190651050378829354503220932823220372815718302802430285590500678234564465084044575278704785642122695529462640523569559802813624771598952235973501870266928375168194032250845049664758784594770630317269502593446499233396052495604228226084385155978516533552437742840615715071057685174736826146504371953348997031776036282683452283192392540499111796863302596168962185068576248842306469255918713573385428254252346114022343418817456359540304849860676958833089131251701210999972864879127782590764625509075868770228763531234710227739522934989615870639332631762710737787531124106735000430071958086698943122494707351295993156232742720217332047224281859814962641097007811832472816469973994681663648113952995115091437059495096631903864096062261319626197854680048001695093322537006441586389950921060590662069783794104347563616237490484431475882009484165027294479071932557162960351234906928722142858931708926183508615162863992156398318981901225938736642416437471220331104986243596499900324717521984502630890582026494516338081809786898567267976427441205630063577355247589243397168959143187080237815307222448941102961363719430935201665586389329232487755081173287595143921941942749970033522288622369662499647017867721661218367821708542888271676403760463417082504883152807695580080121873067583984027926516500256386174454762854444032859640501146763321488653793722830796246854347922672627569334773457777351334085995262405050807964333579596872420413141080038806430339562041202738395991282702989422613014569410595685919442477015485989464503391321234950239187603560019163022923118442729180842681757932511691502675934911366104968632875659782060351421109555980623165147132412029086747607478495305096159040294142197794330888253582580937803174519420031667659355113642008915431329315753562127679607828536738034857445449180433948600926999100173077576042583182106783095486140525777138920361709321961145033443334133658588176050149648588788569966425791226292952866856345035576762265207857871922301436638979952394928340591411814052605716166193900682234916401665928218070169707444528325482473586425853159321670263282243063774105676806930555037820289739766690599801340433206799486305724822293245369237795278015883471340891978825423989950813662639662166795205275242040508281665387511058285805225087030587076340586597358065855001262546409896084165975543994363591590913629159461349513839501879486874978600262112503423530718453265860986527194265924899792911889753564654926872312535515635231365634165055925268717463619058365653289814853560684383685093998531330715271167633929275001107708554637626690932466451613609307459828397837126788434232153321914005424106077039693465268981997891493046448904242217263341161923465052289756374789284208129595378387244863565446558154584421749130208548294800835863691121184888765245014854698231036970979227011030681328169794304052287621353523136012363597588360671908314751773574198515574704087406253406689799081244009064983458212396091694335185594153146881879110397213819316637235231442034366126252597448907898592460818346190062297791056371289934510830099393691605386544664048653795621429666974348744415705899505032740124085432259467714663142810792152532128397879701336508494461692532017008306188512874193927089505796398415624304049517000870757685264295556017635075567143343679699331364002787925577267606835199931373588111136046206328127758250973581640598471100263780874351053767203133955170113292999952753814683019152546742357346624328142593587892781972836136263247465558987300204506165105910831364355045396880774350267937173815993673075104430877237329123746397673929509450674398216322253101728553441192224814447456939774546503079454285666648597478334903265714386016326794852493470498088588971377138721112046276805111010753879986363183006063697905381306720754175270404569929836644673581643988336757323266438541030775347178573316036323434802667452611989472786043934350157106485163456268092036048535543240413350203131883910131077394028994344618649743045772147194421109192669795393884431395653123261300710211133060121314645939543739752580714102278656807132447568841061400224336534205350050698064659972943279187157735119766543795183307910748552126746828658000241750186423676691499577636663812162818317446427183260257866185663620291206103818900882511385496710539074681127275005839168214751746564300763784224333553335935809275055437495726376165329091210115128310176681990512671778984838020491456270652058183715193471115305204967910211596572016968675392738088685431907846491219260301334364061455499129866695627563842266438005547479760865735069250769486940876723617972884693117288885931277001444712972340109963584260237129432745725709461823988726421590326772942730907091481703699469478121258462156628446483007595501434515196473801529786732662632286935515458937725838996594946992308291797613212064637479213261949516657644822263067757079261638981096791083302198413475729445817019412134921934788437342842672541255929864239122153537790233210678238506083979525743981951118244698501327341354071777645116383469287185950808397806799706885917758969775520581003016950927794575456094823086833804851100374991170909796372396391393733190982368388413631903532221619030229132285813118574219519336575500136167578120448256313652365215618512008046161266927366665805600700855373197717519503633099222002555727188503446074349759971795205416235759875831647071242698839276563969692760330512950304365650037461531857410693266409936743443149936027580922100013417927739605119325289375864171999460548847311226977323092247360581622282168347309853769764537936815736181438958815644921610026283422555863181375981183325944580564627737995884120368106915543087602815263369931257010329369094962579376318093015201835299444789769850970599165032649262969328012713202272070169063664496668035774366277829438161911107622497152027111090886359589315627944343743878115784924433169143172418359729266538759160950830954440224200621786560429464310452228885302729931060469108069035253849165952887641088293302897736499357854080520450967903670716415785592322092536974057033768925403382084344928142133964274948995913659330339393933149005515506684724238340829856814200550574468653982960163021656432414040239823101876457107648886491031793543870142178569219019786902794712629407104438324576197712068481170930366885860158991188392512475013546329730273792207495122178594491075936314377093986960127720969037254256777701529320585359472264090939785177124001753043425330638513387895253440267237611017298304089381465561077073547269651234607674825339443867493106706840129714621693053196004698223857008931244547839695700208850580365518364126151918983167763615545184256295624383807647285814122043187679743877961163957743352361149069570078611348771985712277694698813171774866098386326544784029373511935725371285093818498618886361289813486093135794241176818405670804270202163719664668148414746398215985855638643332011114413816221490099285211384969395824033933463588378663756869262083844777035966718733050652582623447411561854389613401417956519668109069153421415962693030398633957100539217962466706817182210090699378011563402922703996223503333073512827914532569008741789611839406379732362528307708436940665162868153409066789828836410777820907091897204328129283710998726382291947620314613434150662449634629191329046010051381813243241192803047301847508816772519408590654986465434168661655645557745770318294823357856125912139209924528590830034115092871575091009629350236115577004794576747114803670732843510921558587167543629678991622913704294886602896890974737926578016763555502894789082231196864797481962343996619200263188417227107138661972895158258782425756937213980037839308770564076961474138451014339481433898208736515242885831432820558466118690394124528270254187135051419371162509093455472328902239681318457034575037162429038272154502580830035336554121341411192406456230583174748214344405612266570549303376468357439298429452878068747241290212237390244017367737408088386926182762697895787487037233625408093521798511418934868331898099199866256587139163042865528240243696342196914377948401645396331263588122223218067617146460455149694258272096495710214604057250280849405401685522250796834605723031594589172147794128102160737692760766037669630783419131763565460437740157447729655543026068240929846129090079575174195950529004992510607154935923189037995305031430478534568763078114365417790941227459042315140610043701854735845637147168153383704922860576924294487109161557897386417726730942538401940693249317492216135126153344203662412790884297936490648406650626223319566397223229173020400007207246056820691211746990508964598020597225809462957695932576443794864486723842078470482988003301161794159942807895947893777041257016429462391861730852116051419694117039855402640134780533747511566160378147538479546522931549126260135259933138671626334897359656258096692497583569975578385296465968776212881482780921676913256204471562399521405696064510925521619009612309255206760715486474463436126851030047585584971222476067663555621459246599890547736782591427616756477258299541215067231396185118524632153380889172448992501281236328018064319507114923563848264154115780116216957915363942491022111725018313658232151652681695535447254742770389497495617814798264411266355565502525143912190468600167584831257266236244150298694942236732848351148638506584336916469159877697119599402145463530520245778107749524434823917370461313385652628247389447558568756329346235701474929835997058303541234885944983113870172313202741316320857545029897857540280442654413707440326780035753773543629715741167023391466823336715030209069323200308451064039722136751856620778442703048663742549176206565289988624943203528828698010113569934748619592529622214199113130206920837343306682773363464960222969941159280425098954455761499039403937400174906708042397988244774561717436805636433040834407575999429960049272699604848795182168320350975001823884027220414282858982495747245900807124591257052700609873304745044304310783422329005247870594689225859797903990238788747848350678435620408657102595968893813606670708984634417196860249228124735941853763014789506068865442238137222592074478914748218750324864009263487340589099845742364867616172511031301414759497246252337308381010749858594506621739717606282066697904750518837733855380231441578522672659952524787938710775349150463551283543811224058686177744907756814752951377923490503295617523840193886130740201842832772542969344012063530244903701348767178322188239981054897583320068609800880067056144286651750666818567577587467618594098935146421912874886608199401922547205344597644295708804047049779169602130257960246377189412783317045792136898078435326397722630582370671050636176137417132380592284056372833636101659012205652400361160780906328917090627203140950823663877342348670247733090315345929697625649869480186122146810730093138283744473813735803352823397127847501273791758229488219692395548049536602283339361443306874204790502411284201341040289655848435069538173771274121230109419663450695323032683907892075125614786525972207718877611415318187118882084738884334014572449048412519358131582088246798839903081408637353025052159370328568722443132396563658081886350221636723127726383841924308546334731937820418040670592328166489839850101187456303525578040693762092158302823586863176823176321124777259551880365149436774455831273622004333659229610499182620499693472854547659918063268132655164529256569356278174112342793435737605268908401447799440335165317697264126700950711148597259405970005268955827270262201273490363471244698445060960263937057006373444449785290392024330390986317602799315358989032196944986515207940064255805058017372928027916922261023971624748932592980742234520679176282750926523619511777954551162288324967627528867895868391176138519311501943453027063797700913306296448958117491323665244297127144308532389474142223305628435430957628600457145196914592001158572996559408606877188196572004705844874278842052525788406440998558722560185632307721161791393450457578239539042412825774548652028117994150794108998817544050680501810842727308974697536779186984327152271782883052942368744656485280684230994548652025156513453630562784413522210788653604294393699244779919986680031140476668831667111267223355064935831812664377563764232488323925465852538188284082687887140165673297123602929202194843230203484231511465653903085490736067313275481473185648648531958419174031955374124969561160672638894994140035312028059909607488075668253584312047600348116441882236797300056327968912684531116327589809830685341555213158279683108394755028558822864375649557860063714079361851543499720069245974767138935089794986475435832641071593548000494762274191604059624767605687921404673187481466815277183847764125192728325747860155564753584590521909842836584359624088827054485433569452563981857750474878569916729062186605926964417840783703470833014938592238586811555951395332986473960494528050948134457091402811933415109752511343072977160783590624128066921623929601896177629376054114152758405460744703215112824246459425262912530792152120557468486691740225151837018983815760489567240842228741381294953538886905164888170130050900353244137108031103493964960617285164874345545285643897371672820519230222162403923908963355714896869909642789790362381142982410124008055130885748253326185145418567299603486437024856103318821615319532842647443252935894313728981711962900849913950115852158675346567964127364403488362912111718676231319951807451561763406934727528000059878455526750660178081456688098667271602570403875764249027341288035098627292744021686509584320558181363394121778025890291557763586546922836818694269569771210663740538343428669657448864954920390846495101171407074409706267017829602150753869403236323494333040090862098553683226720691129572641461678318972839085201284318305853684017622877654528502796310334630613977741607544863946081931807681482988390456851643097771650416502754403646175475018362626594519794061849207525046485272049798627636907855581007540093470727208186781789459421237421047263870969531039359673488737072784917562250134010335185927769566098631289065043032033228952282868345920997726369946475434432401715098347518209047667417822961740788059546330300014165165259179145958635330761412190310143309432448899587364834244966754170251134472999847989673412593230484975774063562348901255614961179482488591194070529817795469156455545976751956794290518047591216029200105173255423862852245349252068668897507322472079320086408796182095743256203581703088018225742764816136880139271409822496606046479029610683887658440116991461996850279336470159033460672390448900994542092134961706091410670170759179026786567659221793661872815970627470166991727482452300001323646390070844252333873705879359114405180795653955032797773871251002837881203169272266106796438857393193908510441173920106045868462541514803655469197517584227799565400247877898293431916968751622941216345762455962795522106764502374135436042108253931185765076726786810803752991278921114876187123210726722808829245592061277818813269758130347293472540187224532777435146305557457344347924780105096427905715244375277184018839068976626142003759802211026357055390119548546231114167435727952939019712307815726868615929943114793847956475499511604533225362366827796918053607077913304491992455603574854380105362320810115981913410821183019304395004031698421577699064271636233681668539536952119289711319145874359865982125942533415002825438398528783151542031288760761831946985189187904236518376536862412741807405565140062009839127435661621884079061835812350669568186673210134988726456085473938592684333672303736838140237661680673676859530408602452743282409940856703981239106953400521800465908405954232028666297986953397484488039488190131362041139093835304392500137012761879187332019405558703647526432897492393029534049983908330754094962117962077587646040224876578211478783768640536851179724482866699980128795235091300686500305605562595166559798622275820872212162050348209694874327797647853986066854323021265741687280708411900632897513766628609151048494692733194896743444108968374511296772079195341693296915264015541231787171210384405494569787455693707857244887623748403748966804810634839620938290019079294226221942370619832960119707990777154671382473215524168685335052320832298149602049931338642856687309031304914639570342457390320627155909650803891267116309813972827635394832296131313244122985970189643394108152675261685096323955461143188168927593302945005080755346880333954917272129791775523508523141788075913996181840252588054024568354255002572460048844768778013847956546398677522951561945248792983221419379769084209999710263433264999519534673415129015473657004705627639294228141249245695405996110499571787512312955349998492160122066269023358053783521747399938603436446198422119206941093694799134944796484141208554311614745096778633314714194305403438118499763722198729232821100497892904754883386512511521520292124646217000883681378165578565595021171525121978976887504751716598437416895818253248621539635350448126942527021551485342946568654766144441154177642665301364608466399094862600510574946048368513082668944690839545380076431156352867532111629806250620504774219468304647592449831892853211116618470054337787673414405121688623559355937856067634273904745689690147203730593654625090846689789883560670375556113893338854037718816029618241416951420078284383853579020073570996148193972864441115586805947097787406451722936220340625183620644748397718274591843363083518073567433616838348206494440943687258522933591582260157241690488918200568262427375954233929999425501595908231844696914910725659785925505005437433453943294355725414196980197038017287833543666665923005521787827257542990247082351334667282775201371610449609133894562251415518581163990557949642740520836737858859652110228911328172286423847383437120315067936266719321478998030450011618114849247392801681313566471428906560652039056314128983277438377537956962058128580566236618481301808902985836184575049575295675399243316232575094581553431599067513000790982022005869569426542880261475640349894235169273730856624715533413592580765461579837025933159423576772530296469072834096277648406462977516233588664794509071848301508307136094561864984099763753091565450957649473687163849552641770370323359179579674959428732401993611397028113183287689526572477553117756600140567625373730334532510253571835080683082103683637337040817953894207410586241037398282146968209641902254352393852926522545889664701768364849779075002588050846650667910960812942494058674110615927115371742338669162692452564808655683164481497642444989410854622876476426627408738219711936764470460366196725095384164148358083230875196734699530170510040989657519552623226798962304321563118341129884128676914681614111917161094213142525905002573499897732498282675763443567517516541118529988861269426372647052030862905725775354461093032072807025984522198760162940534511408622895905746381643988361052143192039996157792532279132033797042105653890100189606074176391342622719925927464179392820639754337205896818542908699315418463198069456468273367894945709220769904912343452075480720126237245989256895952143702184693289177771075871855482878502477350743241691454188308652017265137242393592734681164790737880687221885622114635341193882492459429935799027557202787323556118938221905306855889591246723768970686437568199552968457258316518245798581988667635104742418502062868961633857587522426952926514960053125923546455082133455360020986019456817048964043070469634985266172505644056544185889198728307312920648294576285896336016271495811080135908892243417556476739779853470592044991211373690116112903115078728404206361726006403153897619998699066118629047172467397737400564954382042917161688073263583741252293527931873378561048251256649215497178253035524396914181731137470852016732023844114829634767935907110298524278297184965683111859297876439355897894494903166304146812892917041903834475092066596641701842477624725231507068263051836124831830993335083837117760315490886077923571565301073187565879908566641558137652014259189916700464564977889628017717752808535338197059521385864622180885805351503980410351384795809294469483358636920927339720523428675360922298860653750894429922736022414340383025517152299270429110738858631028011003015146486168820157429463889269417823835831820456848395545118838381286899581299351365672246508449587401959345858510702331878292740100088990939408466836808453644414907172723935861839795895647553338898621504583750151106533904097946125662111141082233304068892367532087376240983174052234534165445094279418654265735562071749313445828625628012299414004960166998692252982314861905793119018217425528464503844687724073394739605478124515641189920365916903962782652220487652826776472607514495933523559442130847999830709609151972564288277261730807919586601806026952364951089705717688409082479268111136358289255389941286873104235496425061944615539233690225913738358488696042649054581076541707601050049935328935189163338153621443198087105798601092238446652309516650249276172708931792674615113255443281614011658016204116701119165840257826641120301222235584783154741743245636725496750648970347734448434680618008107458395085989800498238847971585046217610408162404850846217217686638882969471766541167580527831153235309917110374964058040264318892011785071285176372457310995283843664632065428795627427865252155639094366696656488217877983810843195315282794713551616110121706007229468845872148172534790258731593570584926214863248498058623876338097049167620191361913702836457893068390694736955404145964360710895815767116183169323817363869847657111487611756044167030316717685033097239480439091931781906316719165475973992484036977486605744641530992134718466962009739012832573878478359337549764468263099396958333741817889754465607948487546225819931684613698694810201044452688931148879152233953386236698984620680193192772499834353758138229051825390239576910067680206920834855275529818061727884271315737298960596745110359255346717918099420727741743413575970556737135070266436856575151847825075601200831223678380992216108142459044541829047235565843863941293428218038916957008623020583419725739482544503948739179003473780513120524013751141444735701103783551511010767285911932883919090525135589164958355550804020881369088737634861890919178621732630242083235213701855749741808208444897625694786037510965087641121928398300061334446393912786980953870886108134615098320246540629128793117220466832010626054006154671683998160737470081537770254345507055347818046561410196643036371733683482682480342259664094104127853149908493304455547200025067284591261896736755142026398923613874941820348593619684016217291557073905054166085692388182941303447186854749736379788707234780239583136234952394793255264965123923201981139726473958932149418777125671756662927409006778042545835080288684878320736953537860975626180029783800508956467130732811750310517067870340810462804015211198107078191984414107564174568519493028712566380333420354088705023824818186319025375514483452137678959302114818649903749394565316905264718812014714732025842338028842851003732564754346821897180299638088726446347793207125491856172619132327156824823842137566395083478687600662800016072511651672156738008302807899934205876036499101399275385399436073416985929079267262264824225039957982083482055860401471406960496238975146232832436088834991991042191716777777448760028055363762335547601766760789768547239705109138111760339932754968661614778975086801427895090432039894601616396896850095814848561132562421900964938895570573156280227578682601722050650085459519607481495364543426084639058936969260792734545007694253191971642338415746962557795052072407836653154997457018620710135159112258250055677909122802387599640120369514495694941588388697760562014087633422225338136216488376295628666311262682758712757709783546314847575747449584159171796041480603084883364040798429133641138174230226072740171148470907126112003287974834701711212129468093094523601707740725948905218760267759713172388889124512719847337387859646021638180660601472990345826939969879266669885349319651154698111258217101229389519422607170877489248790875911977017340402330544077544896788772604667555654010905907118951832501693660574398511083544488675603537781911310700632372574285048470406003797770591649071205994836068845611781476227449641327312087540397380320179212801532500786168156591987140126707181118350221718945159439788884546255249786719699010067231230775135282384382640143732153198406561210006827107583129905986202636952079633744147998862403956914862357344212292195564321227052736177926756809346792129183921876754091022050309596013818513379724521035442608897921848811093139550961847695755316611101041896096965281100101436190547581954784841467617191648712179689582329673334529116968864592798605563343218010334497360437911327952220080357373438731403577725332471134217214467281641880355708074507475562037615737142374804549667166877651887700035337015535684926325381935521181502169163305510608450630625242008094805604681093845004955551645806275176540518254179421680108767980012720030832050801017154221932234549767478746718472418650779704301412731538750450949757518551786374234600944117870294937383441912845354246887626914252354070556103760811541180129784274637012563107924677464855375531441453505720257228786205271314032845159134189985334804707109932907139795104032829192520619549094170801409500898755389400083109998098618428903073821534438714721055647639809210035146762700893503034625468422210164381877773023931173321356741422579588854841517943639473339203792394858269861371927549558062902090977323054840125817590594237991163837211407563278116507631479115976384409515077414836676613211964635061264644155183259013120161933735576707590735473933659958923307345022694346260393716151678213735332985013071709089283736124738799878109017859658882599528494250034232171435022153291301599886305108584122307820808357048351932786804438816283849207621137665360545351416857430467881633845609987918914379681166621645244346628495753792545808058952136294960313252188733483169923757198911954380614897505237972751971269002345668962218418568643601681667408039760315868890406163075104723142718200204770089904325222390608877538842627139973062339163730282653483462734533882874585279367040424273922291641173845706475819175944856218332761531390317937658552551504767974283282209793479961078419391252649980785269782679290263347175634033435784294993704600340132474077548236623104073559236427342199108626621803046130349225146384650678608651051903110414132916694201711461109468786524491675652550675598887343345182207399614474904612359530865204687640595964922825953204565419450376592838523812407822658292231711342978476543297761642502522794563138267658502648748373977405291937218958984793496993118613978150488866276136980213004970182824144653665437395880285232463143873443357654910435328976599401696763211727459797458109796940813731148922361672557598082615537545220645655407973446820230000460691893475160218062480997131744114623084350321366986554294343008494972012649833538041495993342658567288257574612524056544461338066577816381022286429295210571748124794353370242765173827081742258507804607065923579146703443377353054893465692998804095525476907084122638283502931021351500966019649222623232652323075009199055236852758130518548381132820167733874527372147214695446695044668876069263415749559039533163848405139987029831636437451706410035096084247452401365487248175693789666154641213812432023585695106988157645473037857376604598812713708096419228289774054800971373624233827063860071188223228556462791469825735299890300145303511315208345335956890541294450915248426480087886083733260000023661427515327798206123718287277854068357988536213579245482288986984259503541300709085141844805964655997412239218188515340380684656540839849703151669762349511364239936151735835489601557987596377327281530500471790659336215294529842683789258007464781895839569104637529041478794886543577469857365771502834479507506588884894141797214057354893823874784010600981441758564959870166820433515088640522047955567957226605265868762630639405510702811268417951119023686831964067593564196803578010629600749778643549694190754480949465531494129109897511826278398157180572081287253540868178093536915513729931082101525478144814891181596180881117963948709855282254932312486826866665036083449773548578509477848512312523000279983978140117432049991187367192231584126916009723521180937985666678995201526668290866629337297789134198798952750535893564148637089468720234647572203790232547483806802367030979970313167490078164934631425217370785357617727888428092687376625108970634534731632739017973147740029905391780593329382917334070167150785362057983400717787078285951627813422081687011564423762667175155618291762556370778098959147399848280596241553159395705594970938876487192709168485615313958660190494304290467992291660768755152550571598433154544968179139716915820451362681647641344018103617703686459804105871739187418448596738431892170770840581971640198155595632823276665680412173874806649691144833683342984825137408457981679339367933653105233563354780534093999668833534420660373882441941084866250237832887614319076722939072718958678320745552568249384853368939560374446241278676308836765495118209384150705934685223288228926147520470085258382550500961099746570185059044373884577239227474022872697334962955928743696165754446102726671100771128778698613049102539777977513651303943916942258976881639915119872156075954645273889669095885213410591145286647887714977974395884144844265868882751307382077740464951381947128561864997367791926245025546573300941444973698090464885206952157960886343685759041044883093035303198077234619165285528719493112877758605959853123031688880679858586194174879046950171997421065714640923072498884507215096244961065453348132115504145502552316025193966634680140636947639464050167576193160441827425585869194730560472454806696174975454100633431388819057457571897411208742498543860372365419820697466370121786045303971266926858976375530295766841101547408866452914773276568015223423348566583881791808851619612499367141865304300867128019287548871194424422763994064604260264390500906324610501786443367719954709459197442401415639752969038154350333960260836836532789939664396750570131360706223075094232291334061105260629494556746995664508111585205007145089758928778933382844439961831422887121014740823093049237758549696466719964849202795747359395002154215510976168319625462404487940797964958898775126817251318028113838232764265314588414908536104252494888101868102173560425591815555080276477099568118699083156086435298393414149217210512917586222873850982026086699309585251585945404231421998040704131239404504563581976423247249917408732978265295369136635593409211433846697889335648043036487571990135549688414981411328762161280971800113018243741897364863556992870543555941779479545779392246914211906935646170425301781934826097322913619230279003433505406372815178076483986465597803633226652780557421048348620790061717469445956188231177140460212546563219068425394535627217828440838541256623462540179412159484713443262334140928381325515218795973323864050024301139721118168984337372381721862374617525601531607599347188065232167329005943786491724256641716510684471072440373704654771542839603285521761100356850199486027472462647924734919655230031562387195112827846982059666009189228290651469420688356589045057936413625611772307648758523178386201132088168807310428545735582568504389393667529920207014737188044827801889087389591403117350152211695628758337302371863032708153279928619558331090170861214481869572990006556330273053992940956164064697176794752176701204987710223669499528342922708624004935703633170770503263843464610074995073809520777777868290722930752602926392329799489122508127308737146389969344293731305365807291911413167219729218830393801398279142163040747542660561090813946151326869175178198143697486713445764894503644181209051819935241810720590787658015581449240744931577952875679605700920181870603185209678651432225563738890727421823665470203531265947925744141987719386844643664770592533153785336439900973757491529516029362265634781772337434314060021202546980919765902429847480774221133878497818101693047845405599571535867453125686064401581917676531883743138221174106751138277573976679177686544036483483205952781460646937471835777434992348990367547575843748531765865095793566337049115555031630332642311209854848148399386181127951552998370392899030387297272625557074875636626008063805824935156271216638479225359452863518232380879730635107257665985198372696599960789773787498784895076956619140396561697998795188423830370816915233957739095101596489409513827611649240139841291508053794862047572805157852362925151756459962154103516249652890432167545913736283352372899813120448426293128650780271027544115095821346073554751325663526453155157479383636884846761803243688984414303780630642694548721188471243699109465750798952726895462555051908013902959759683865240058347789238113605063163665867228084487925966692274694760747831994018934911735135254989941734147633815534787620378209028565493626254845828491729312926405371384485449286755225341572202097954371733944124807371650167702412071617721590174931653236148702172695077148640365736763309982534199547904200589344671021586499826414444679978844837653369963071041993854795749234971989148264597130942002470047686490676490360957267724506872742048856803388148397696255850371205348182755741337511992573053148149941645189151727865406464076681488154767121325483301102362602338294216890223385035512560697987518346873979376628554442013113109285581399933966527811154546653121906313998716696014731099629775354910776633599202158861858779664054997281355026317135852158867260254357730779758504774752936202992248222475085306916071160517491501552100681012990886654217155140694134077173937762346466495797599226877277866092727113584884388005987136144999237316128901063123590727424088681926455946800849461525891894001595125873544931871355297670090764358319606234457358430873287808693416503170112341928381642385661549529146825726363763909919261785096477711844914869526721757903539456900009353562887062126794715187248536844428708928642647811202337906319828598046835646414523163820684393929533454637460298954873075909623894701512349863440110529819526664968803385226250337282153674118076883799701742463879470055631364688420473223372422151045969808409380933573969795935278251766037201295709146883613148734002604455003418431415814419435144616971784209308634439645059591698300764175079932100906310367896494654863278643459965360415441159718231034448872959029172115907869586407406328569990159156019330358889800701997506334041128250870449357786388807624563923387548217849715091461638913862175101847557567953315912387055148977849865056946975484310663793535579738827670247136366439178278448286232640380644411566304283997850691442871450786995077150114369480496361020719585549536106836350558342148654337190101504151170741048805898088281428799134374020939407914643886327590059111289482344454984485958698342596899607163200241692876573962163737150981163396122189614556441757497732246018595895245868608745547065455769824433256139029999131652710766238828581050411771210134647505243848512623682896813610392194038970327389998797583829535592173456917483411121520155941464732608115425928339605754497923015881824779818604546733903203221314105533559578191264089567446243724560266074950144396597278555636434589193977254516211437444600627661860390072000881778039789854897854576477906589182489604603713826683076056145765895548707330246295909632567332020756866850813030117444980477621349619612224209126154224742789689168103883527882638183841838377743593306091102445623274263299734041033573250588034236751591810731817633407484668331964149904526099862374930466605315006778649894818468778622541664309980519090915120884711737370311817543857803085256456902974984851214030694617023076703264648423336584727617810309059780917919240667821949658535226319550072280970611255041228268670157353882815645279328490742830933793728249731762816942672736268412140209373734493259336379921477428861508951308786173413068400979326030803442723906732080836449148182687627785405129020014973942175070193180246993632603162097084038679129383292902115461546634851086714815671181505732166628108442049281010589642555871314951754361000248933886071511600626136441393704129995938593121872903380534256969525413295877019281070462734167930605519785084552620209641959944421889408963506550981062311138087695404070736415299762442648286137981963565215510508035930317977954412219607200063278364936750174553775328590119456033535799413232423611730005948260196432672735075353373961397910851947752177379899948586540965828709732334529076079455279276146957706955417146101166988616361483740662378556941689796658234206786129607196715777459640589958017791037396807694964377241415949931129412663793951684428114252981785177963300863336758484880295247930306081998360933423771293037949685366257195894119844726701963095145362790912493580557816399593531431214424244838512401529847278192337049547381501875924265893408944021356554580056190383034332335633240300636152814197686196851522195274571867811306111118405472324019339995515395529855480483966507871724442538032870149790705106225774803963841440937431713976581749061998061924070032204040459210853300310861885636980567883796831881794406308805383435988029314529958991433563976017331779498614181873400665752614559634680808379257554912923770530818702066741021819288180138867128599927641836508996619548413524593162746906903940831242647794329597632954624715343266499951359671222699455109981262238803926345612576355646207683638606022588952760106037031926302202313049435351541319601343660326189321397453379655468317047394597426793012008813215307499014498884422305803363352459818183645937821284898020937116550367103838634048805592932497657130278947340779725010516430496783145224936697884761546848881189810078259958524432496891783279052298576228308696715773006979127086839431496173284463056212556773359476153301214114779988443906273593618774293571969248165761968456951470782877533552973991637782351124912684136761354363105385267134483922490231110277861149086267020117098941493670187914598136589138582748058143793797660296716893546090351074104639958414778363278606060282664453937612866803848892706407318530704519920501148404916829688110367766550995057869655066699813411987511528131440730874253812284141948709022016834325198595544041996947713182958758647544356668113128310372263893318584870650961212784633609527928985476040587643760172218664271930727719594020554842368763179038931847363675729511802626997968577842989646240051582225822859242590315265152791509673546123392744661420336939418215673836744237587594550620806661806520909907810052387493017176813093352980968168328899526415730870667952916290113751904145474229741124224430962104459882700845866515743265885199834659912360849999846065093311892319228222815409791087774374869914754789696372680487325111780723705431479757290785627837171057050448491002912404761775008958568849344300224887688225611468809797326129175546068800039984426775614348763628452878672819334697084078368014935864687722763413549845991611888736655866435217054429112954464725493985118249117498777789382893326717209377297676153479665706640632761378382065205048304503769262269891884047113738305311704787696315480079094641779655416266865653261202338631378371195031194470092494319672929150621242612085296460660490966558391718064886439628765226969927818644654446168702408665327608489848459799478174635126999062491303506622882339194522769980480403852047788328020372971145026505478441509889488611280637939442273985235570703339480650079936896135310005636763573525656515143704462603067991564714528262443201436430204261755605425263960179220373728205754100080127072325827085707382518572646476469773762091637339710415951833058682850688769240053133897852557045489058695180873293104294688443437623475912984208998835487767854027600000587689049941540347205512411940567377385783006786250430173021076427655802343046293128694998626592347606814321013805290149113371710430698320187940968968535483956240573431753559595881190495137387063007726437687591818664963606274152063310196202723318460302092471111619330797519141651794310170502068368959204478067431540885889852733887304944460662811232570538277395392790504226368042367263913548414859420631803913386613690375650300594333772430851407477599455314782874006756074152411341436766297657398077028256348450987912056890417745548236205001440503747664280608844623667048541619815564216660007671451818303411519430804569991007423016955045109960637069622398627325294288044047622821173625035388592315835896271345707546169275156403949114230862239925529582524188662393529073634053210759181544906015010244031168268344566653614396315752627981400530518345378486298488594065811373827322732667126647660745928698304264628150548341047947440499068442364376246701940607999282452037572948658885018786811493223873824426598061802192574306123022253259675622682146917794143571929393898920825379634292721551656152107074096327753689540412537944420306134186157678677625672376100883242259653012784490677640309398502526051805781006187187897023030581863194061615876278920910271236613663501669250157832167158826566567558049085382651268899896365585306955777673199568762614650216540959449821599045637375786899334042922684581099684801650541607224505181828999793030970926672644329841905442365758753718825595624203951246328372087798333852052579298087731589170438883757672417918129679694095049639482288363226197569822599353892735861718139240353828629688958800975994447386919632010952611800879631411338714686011920624939268653716672925817516318883405053041147109624171904325008467717171294904207698717729016369062042046226555127400463755903783468560053753223098346657879119182995288253281885327220966375413787282949858247082421076863295915531937770612739406914287806525773244477934164758038541220494951658738237742838277245961798902038690634961796246424327214152480969103439893432662894704229156253602449576274127716898415938005456768086785227662017234114637597500918279835186666318735893205685539726877703908916886124264026018663029136300873309307118612148777576847026229761229843920569579230186566291309044916302262432451512211170745298245414497830756692363744211072453555197168445686120633482024417333028268802865626219568011967411790757507629388158263395276669176515587432064663715672825206938445221521433998764901690706206887240207643165127223230267748198406272860664824526689917925702575195823845344553621350225356174301768305243304125554096328797126691961460659468032292951660840688378720318430320843519597342225346288484091236589032638786808768039010992121238817848617059389163460284293114497383403043342034385970472020909335604468188302399170518493277054724484612016130671712654863929746774677008393964904171381053037083986540752262427579267659248506277004103647490384190200565187270946302056446151520434818454517508507477788188925637566003336155930744525164076547643138426524504976796152410038138498486619676298963177963166193060901816915501907430983878035224660231779402782375824454460946294177031728341486711699257617535656608946011765600788530506052019854090279535599887398835882766867122417592605062982305422881280571386083553676884069835930098396324218035545872820345677048935254913866252971456234598584370704240625714681264450534998587419441653893077090575085327968834778817022903168821400388081056586725542453796732447093979407914249080266422240610205979037839892237275691115006990321969821560072029936332464740590220095093772504728143425918907087599552079641719854521628656413755574469780413161300853129737888097814398544361695792272025308873016033700344531681595902260305909795291094355635692469753351063259877590152437964024892398282458634913281744457849899394520076435312329492221499084328997310378558730232531592520179281627475499378920741917367516964727384123079474580070275172203926675079625054382704912063628980020273782992722627650405596941528169738621300846659243148008101741434094221908117073535148942412617891399738463322011818516170243790761376298998424822894595522828933662629773015632147202652912435822249846953516364813505790494130580855082736678501045792274988422819200342845904731805467253075631140802263522251417479318862112662185476651465400136487960245866374676156913936278855824927967742387330604337362818474445109788985033728818100791670735664580076616213551369271883438273389078945867673352254251013442146269485449611527784803393246975452935437314510394780253620375872414235689399112825780409760377821262025863306611205114305201278375728845466794023537823405656297882593310122532681796446642324579716168027883786091724593544514727451901593768713026417714698476226987812842129319238119580689136850106772898720274606104156358209496641568956053463740961505723952957263866725294933394538530613192926254749865984842034157840289337361999165032526177510844700134011043826683047079942476633065511850261280505258478222353929304750878417707469121296472936444571703659262057767643684702415508678635748162830848925940933853067895525894729842040339471411526141861870354327344026193774613860740350762241441633843152929642051967851652861498832743617158155455912265001027555081937750638471698310528697062478501614489604543713490387884685304190282675118461418229125584760762522255549968983809289973873355096570627091634387860221987292538109207077677521525327749884005092674568137917598113849001557517438706350530138343764702076706279485578308362004367822885311522083632620655516626939835893290291866657167117287249081229108416770999590439595521833570162991969139284696225194239593933242001811900658094280024705122149562718204370354288000469375119052764278128410627520608721763964842390475294958355314269615607109682571182406247987248943750389146247296642869139321999762998473765051120216249587245096122948179331390067765894777224344843459198889444022121960840778277144866124472413201529505220361650342520609200582900511832601166085272877999032630700086630825964598182372753248936445955211460435392971894993816571778435200717349041056253270985117245740997870726357639662700161918349457039150328130755184613753623779390609147059859094285508873961664111759420536261952041468461857387276955974685770244909052514284130878763098807904241447946962066388394603211060921132204774489730383823371483096526973663389709784544146757880759461176728440445083507868262864413029589129079770181355960857596223070980900685679305545168646667524097223547342862037243770739678447226490271190952487550157533346252007255329202620646686835196154713654875799016613832762822664773246610339004177935782624823528427397921826889608017610390293173482828578278523371405095999910296371968925227189076293899607994602129223655808120288118439108389519202077545724033270529778446177145612853179714607637069063489619146878777028915861509778056863447082738240659582034230367050427387847398524781203105490811528430249588393773003344139665663030744798138095568381918011809111759634156930108337565844743647037213151798268262502570540012287799175608309556771809889616258525718961392528989329208578750761531760435225361542561866266318660956613210332139357888833461675721124619579905186796581213338152162943901022125548879840397968012748093680172617697269936388755503164618603184077599601651929192465510456458639366387557295421820547233872515628006501891887847756535485025954879497319312199000153676358395765223022001394567911559358341940282293125804144393442429992817300725343057701686000300236883739334348950733051192945900891889127471707350575608080023870737309064426900931669670179031789517969537760671997630855165652771169862546314709925873480331094740281632985978321240279196746161057106509686068906820005251863093272590554062791588438397092824650187164313093715569290195583062646903350138488224269237877112142115936710702973979056522706392335757923753054743255172045083830846014001559573401126865522209665323644665405902268169573286464498712323117388047067474537774864095369392755269386783256249475491195120311455453233976762598885923214508894368375776713691203568597032339962206683080675865629472770367838499444669323759456228501332215281255416540909611505718194169218696749260330445827096766448450617754073196713756610371552081178079108924502442678561706882116239662544077002973362183847610496361806435725536521751471149545531047641988032592785952936871226490088241667405414353677748138055387403705222354547973083918001008767911545176647598092961020631976679049090210068814287030800441257678963468127240201622286426024085742645208683920514185376677251767793214926215797508398085643931937971827917771048362030880716678068656951374387436711215702238782619558403474959251532385718901434221591442631711394872294051090848770839567910176405993005438202784733234460283401580922753528949135416482190798164908710813807013819395466889644585285384641686859733882458329888305895432074028591333367272954794973879034333731871101601090457071314990043356392352289464045041322097123812590862306148459917222003170205935852609754493263595483741878570012851230441909623540698868302817225167235524566351307824504390035576073016234211291505537827530953072292024716177374447789308573864423698605361979404328481269623593853483731798483738893417181356204592704378812636072114837327361820968098007951092364244835013145842555150629694601697139425062727820969987445411946966318703776229873175364153791474521606524136971984865242803169087864579061291959566818487898311335645915404520629724720369563081178676811348928991061308655348322788315409316920779739528323921969849525888013359964625016296064172715251220352503161422456671430290891449330073960725466296648446842610817085180311890800882802101524909039168062715260455471488901983983797676193263058032587921753186826997240956800797866016059694892695979731557804818787426389996229835793162303629578313659688845483383007324404839795636741907414585394970087932696659355333463910874107089464864945641539218542638560449391045246594152379807874064875902497900317142076502891083781691643054231936248077815488228184622766739400830678457984028732378632657338725899215888869403828411961539667551914341609267440366703876268646497669003072056202806480499980705898581322747415633906077650916420833708443219119340657416616500691420945374321807630863773596335036370791188195683027785158964663813296325636160845648779435144089823227432601334478776908914767848553655028672103869872803773450730384444979901293937264980717744941802443551794504597015004603931131752005933652001241964952434843385053706035991818287825893627669907409429318273214055369314589982150587688770265184924523428272005789375212723736486025016839368271834461564146038910189619058916700565017328196071210696078430042652735517643019508970305885829719749126198835874754684017821104489259017666282081346465408628332106292375488743308199859971875984098144324997635916286754487447356945102789743653965536259328001207267930115183974478339041358390703758255207096067820373191338936589307873027472423135124903268061716972898183535053378895112189547088254296221868491724257912496355820866033832454003624123618766754835232926015900488598519896408766708211112614097992847056444505152672878943172783134050045961023558036959654331973051574067837839342218786335349223606707030259801997616719188859133768448077128206523894455600325749845901156676120816820564469664796373725739378527619780003104283641867802675976227302746258941416089650624903142976161185298239288413739445280039231158433287881997942562999100805255599734182062414883687856489804910876431231735169364904436440793416439174881945860896038339704377099017991148910630622848514125960540065347122435361743545041149049828613089077879381694989789819952632007017556857796724607566051859291585012404988991253496587249441629532788738986193958001855198637131209548202618118684493748156739689918724805444716955802900489972877599735204334340639006965179066493023247322718531441338138640432667833001359241700593437593797133619231153560425194444776589682328533159533184720249355479923079517716170551233434023835813982887440333016510298264926344762868981781028942895869462644783873916968253622340001059572994710026063756813160956902737368783733448302573603139660532845546664703223008476178064614225346612008255452005525259290861101511503544753737353899766316574487260699958862105594777993248812777675755666207367736785209504688721262521083544234940380204566623394665164006527468162341418053949351846785619668730559437215082900262579808713584827453553520938711519661998349119363243320497201899707011404572519167985436355873051998658178204681784078426561030932259557520676136997443315128032384392109499815322534197141031136196083311582575920879123755497494623958044534466153369063547814728997899121920236215642292023138343171430805778764827859598804928221966007884358837910173864848381144809563269327346198124176006842857812760735518047140984377435094738838873208464897289607810434672247883689950320209657807014636135581021213518712137394263355903309021312166274952946834200647436374628895057502178847405234530672813198035466108116826649420648483182448026342313105462735421975017742224498190950122245712177124219028696818144007991108701154527471407638207227364208876518577189745588002400044804042437842469693038007579685867041133737454036703480347829064300068707412020878791485707748950349348055009695217641544565916283196520612205986203583296092633624444796287866641091847088977583637663012986549825440198621748223006287837265954412456185060828816920239597204561961834869865024022496171505165171520497726203973750801171605761231627468650127459683501314305883601791854262026032885167336684669528432842453615592159585141606931898415551136583945457213441960962224251223881918737425323816331169376372295398195851611913974047131554369484327804821948819220946394991121915211445520500821655376208976034876534172283102515541426697029370189162122762233798816513072190826181799228953597988660155481688823917097866605839414489357741309203440572887113470088134603700418355430229455252475227531439935518557757979361276715806679205644997256886906085704716275231614351067488099307303627962287615656825177633127775962279538281679112956178710891162685681696322915211692503609324752951671002046397910446962998959884313565087479677988963013020130354780358629481583805111630583309635719969403048676668511288693078575915917332672296421936468038409681497213522592453620104753820022277489468960822721660749018283953459877978638451690438598005123977928974949776141248219128244524934728824523597883538267628940484603182392785113329050492330148290873131005960289539103002950320812578779301699824451445297502725103391149988647107583022631623137444286189985942566994091248357100249315833711164734248955799500046213098888425938889066467619923241803888898022531896496882706743477435577296682954760377856830599226958408511323582578679624693849942977636365717513997228827381114536063563416804160238087690340922222112847470582496495931717543346623900618886582808332396515465644901782448572682163960373475593850560785457175001670052986717878632173960688584891572374939953784870939933036836292334467038259647368291033271717534163045302688213783912754246872254980383920617121466976333390475763566808535214827528580825446071930819014668660330679716207347570835145002237051332515442450822181568525476147338246459946733405814528564646744745681455654126012368982748225319667957316969105409466832436677405268178828350898742853867934168792709708847874710538883267122047046773589570900151839457890329213499767518386487989728910475293364047994594178468869260294754062721617834751325291914078282359411183693784452367290722462080173910369364084135851072197838656659299089037394624890675190506231438738021470177750445949404323523182597053914300328800719233463440758772460773653126721863151729275714413614516244426196727358838308398158184330346160707500431174229998290799656707186660853551320941129097351748170381592372326541265200557821994919672881741001283570852010149842683710247192751504282018520181729184653710425384561912061304042087155160445833745249424048035717502197182498145564674865755381305947467799508059108425596022699054868568089702326151469756207805896472070229048314070147473701019155965675024472404098094067359848178835773977791010523544552649718499812620788285958315212904772502326651966604444516463402914410272560967481113232540891662739522150025150846480594195854223266014275806674328116273652666825884130335273651934642009237542688340805096859351870664902477604759765809660236084220617700256401644223119187052800679253198052299669363676444993368096320296408302962384882803801289544289359639671609645846630808561569157958741938912756963070018607890205746253772862708613871262838126380787054540184716699372071081898910943203878640862869076690438379502861591467703080131418157773342619757260146121962626387134790936548355498383390473579794732467517242624934194491964275788984768260323025201738253192717947962321406587758927472180804574601877528846622724152615607345411883839821760216893644755663219115610131768395836088907866221469563102149027272693559689252708715843778645935714127770847517906456786469709732115465650441416145396453423842754208091563367755437484344283816975047114106005615267999067282287760050963000092407786190763490813806956298143295678377920460315992086538354638602456259235211453243641732818637261156310961080202933675361091491420659356875196126212334923893423170611915977734930825504137021824514274984929589484993766552379024571001483520893997564188010531253193498070741645710460055479590848175380072219129963302113879928345890476887389209798832666450808032769812931684659581482691740585465004773403785593889649540169073552106874759597011784260985990236817708630921320800218571242627272283190366400201686993696885256303074949758744276304796533312028356048648338154885786573809897573712983730439795783474336180865522848199479906466787841090114598349448787808864983967440818155940189020653262042363130423886886746963493092222776884354739284131080892670870323921569397147740533506413575666114647015783464079578574590913343107422809272021689318908789595084747700005585322419343291523964389436514088076374959811116729349165606640447379041727839377976473355284246874622070789887479587255062882103414873959790102426050860023985332608612074013938187044974898585926656030973665081292761451918293030962523306210106587443957873166692832127552245224827698895856477465956707046991976351249396453721397814554959027102924724959045620207491158140504102170685245414534548935109228329091391900667277945452081623359767049688862477834735874691624944993397825722329541813578166836592249966344105991488639780443452169613866217521400042438204619287754829583126686009923639269580416328021705233639286120581394231517621400071682033458185357437517137194506785050168845728314706477497839495193795318891494971179868048485070362269580709853008845215738936223731156223875440137754923610443104106158175767086822125728251628028986199933498791524539873006373180573409634360887413402293217153545207806399140706088220456567742117596832139998152053552816335914047823507771542484478722209103954448868882781124914901707472725726480371095976792611091771941603390723684448118601420939095659022373792199007917354888805348010339650705591943637094968259206600108833307408010827581518863262978581379878425195071412298699531774308522163847108232059469124143946407164899595472891526759915905467421292314025990734471877880993993240341020699475857613112810196162991024641949405946614329446823250014694307676387386562093728398817757800558092662588660664122432269760047376725507752364936812245009730881533869333727579308509265688058299948647203207797572928352897940499575532199931047433271224032866394286506361611016654944466932195709613232622822426452941632839638182987788455563456365968313286627352269595520952898464322083337198814842580644092043218853317401550066235016823827886978503340120740014065198636650267579951061662836678262956787699475736357963967843616491610513730036768586786431590663407936853957938257500906819405257866725150879146846106272314200007852808263929809036565883209636355310180062092170191268207468327395756450173836096605983574327002075374934612402992879051530231887997590580155222877442597736159227071742056406712036244823226955864096953511634966088422580045134658887467202612214438607850973647088437252639996674544653871464690921971925693779567571809754191732775302487438318115442928121141011380617067337227706752133589469677747305385865971680405042986443507807538480253675817305363980041446143280320950236352089209922860032435931026873605987120474097033830746848508841054331563202665244817591206080589226066818961070531868465076347469284802351703523452811453973268316962603933276019670241138761227019617765570367711138572266404525340710507712724387674586957212329507917839501925303158094548896427753371882662371384219380987920041486246741773765293405865314580903570119654607167190465630703818595117957158078605105576386911717183570820924508183955688316459598142413258608298269683038965022188956336742663945465958656942675352382780728288221130343090384865020629261361524391487624945247001420980114615321890852993973010494105182342216021473870036501577786138801331231503089000695827813625776283107193320316211508683669482959019485282223047536386938112388644448340523541218213120086644495302646556399631514567293451555693197286944617856398311222027456501836150442576905083510500790341659492121875148868401894306302165825424377373209491268957630812641224846954334166654260289354105230171807023367434807501104870914104305142804913564376389408022044221100998639888191741891423090909268070252856211022709679674129984802643841305912964592215811134251251954252033545862506174129668202594565433882741373142604746454142433774900800779178101643531262770682610280698914022381702001666904638794939004268340343856266547391237705530612678708797076522131873644436380233582269922353164011933285738613774057710929028357492984263402579233458311368373230951598203878531981374756267205928250225591434052136262384622939644062817818536537042419955724907821345488285503626282391640505807728833477923317448170467698888908058725546618528115464347718715599648338603202996882498125441290737856956958064892899272178457238787704816791804336424519927907741490374148601610659868048786207348635376195540794524654772693658164486600093273699250012435756419201563322251531907484626466659839526981826738352646802208972475930462468897955285341985869524110210785270546140607277895245362158646140901699984496856839579992372726447202999020025101376804935120505970575954610996576885357728393346054703966385276359991440968173089956714010454244614602665827405889058991097205840393291453998425237955145279556541303713596201366068913848123373387962001407688914875141279491826954113075726932129249720195909543829684755889475830794067735756028292547311738280669513120848678891912247074507533189962437186725991299210622760746472526139367366671748910562568314187427735634335202455007717379919244932429823411752285019624635737442416890373560278377321320565364835813208356951442909647860305858063199355029540502042512152595538054462874767075051998585429371654041129577567163171913390358219892627471029886877336389097454457643222462463708944597910271370319966526964417018579259537832445102740391079488772250453896752199531453100470544212196445511374762378931019925508076587944132061031739973727440174937447480425597869822324311059721082030001474966167405387234492596854415549596230435061917203444187178153987350918158072416242078322189711062769348530722614947800488964979616196074329457103452609745449151330557196672546385386143133681462998564427693899092381318953150470180081397778882215046767252624739688556756447983108243417936352936208379347702855229381893235855720200862395981810058992801536500859707136513543988302622304106341508439054846108092490260542034371443797841054522603142887676281205720828226452622554000109069617468291364353354747038593174274546964997212811295872025476162282873179993646289141563945821814494168320526129349856052259280099148625381056236626367828928423922602318897213810304554320959730524228915443773499459161833536276744210569490633827559166433420168296767423663140975709578261309229791305798802759260111804031001513842518610828939229557057714710960009526332358691204913444496653311761457112387309761286953028193036797807257927463740782393056967995963314742934051311891871709743688316058835214468664833348241669508774367162271974744366656734322485178709747740610375674395570400514315138511362000250447608280077217744593921620848974359393301999749506756243693016338612708125141342891504705991450608248360188568420988508795229885650126651469485910427356084001394017209986180188030132626793871381437694307835087717577770679202694695132833869557105186116223447537338260308073865828167119317964511197393954635601110924816874524265692799328600693691165917011780782682191143550353663490628443884287861713209443481059878242157997274356445448407013363994972779300903496304285857252305643494669315040393089530171055958741602537287819281525633515299514190033871293411189461502763230353019144008653054835037285978259430670499586842912470892828746417424595727474476514857302691282487115479455938611681033010444678891555426569999633655636920390870304141821842483424888679770876827688784338075405431745483256872854061439989104247744973897860480254869929895609928844251121693671601283014009796770835306413755011407493819144105232393063504199590080924834842332653738907553987994510862439124263980033969221697729754769437551715645561454753124047553147656175002481779202162357237424761611008989612672108078678924882213629966782977394766427304818541981614611180160833243956614877077973229132781334181616854840078557490960372738378454776909499018325007083496226094734757760499625148134231223542177359234620772939874373580301476503436556209931996661837802517579684130007503052171564053682194753499785259920027671191902467034431419781399700790549247228974504535061114173053615439338670001512549369109058357336089456583743433212441473549107221485092598188696002958744170657956865107947334349992215110483130906108944460781053192897906352623538940263909731061840602771594445872676797165108806195373201183415589129443500415712058735257208432949405575733320599908437653761564808237492446613676713866310198766269731012461743871664628199422901710529842435844752973420939627991217703352962189781445483245762326132932337180415084469868726680716249035825367931925143264090703156287636618204464916526389598170530236423622479942698614892833511454062674489086941689934650171992093908299359229875177391493155745997003129882297626852881607868226450638929271348688390976761768786480785174579306045488332299933622705651914001346931531466597953364944772632048035960380901216402819271418957330856394073609852171765795992089461923214374097956520088395108289203527153104456241514236080773184890577946621036884443594062759398076305871526073600889431295202687111849380915806054101901367476298059618593487050972739249031483435995857251867977451128149612753058576728378930798012073207149764336535437369909041030497807533607840741300174678279034750963961828355872572296723952043443745906810670661802089590894951479947034173812786933381063607030781526563243585222310894272592309295560077772532805240850953519946973239803173764208216259692018416718731612917768594217744002178733269370121066131852622438432513052749528978390218125623856216033038574134190503972376116443311176818746736077926647062424163435720939890976979857854330250723420819395984481832949643158049001628860366727393204464370259182177871900280658258145733505325894456866710024775365254299495556179975822710710681463549246619838833136704774461955551723822649377096821262055827487851379230369535353805827127155927331352795949955807945656280227080521321235056117667621658835973045693972073201114348026967468672010011505526109737440056522566987750358149419968179201504475008691672663047768873385402091191597650376368437024172295979597276724222610723098041391066348933233752914490900373322931526381166478865166220689154094472873276181904038281790109091524091206015885299332124054184007024744436768360503585154566228787792823419643889377679445543483669926397646581186662232895124284878562955151224514468103153338813158847543750057644869997766919857545731923235892306713765852536148254701800718069722726700443742315640664518811924141307710102191049791348293769777884865555457106445069016404883331996764286801878407318561189419412529293141848027995826540534256281950845645970317566277107280803515888719358219063573859477404353236398664921079856163592617067647781051679974151955086995550947114607249650717725284182562854012512242431762504728591031007616256028845487591025569576389578754176391637655841760750373272558560081404091211582921481552018352062769245804497841451931635366562305890195910292209125084068865355457618590830701047250978207981954288268135153729180019154673070027431744991501085226380021388525362769198138009873373451122496042938451897312096502204097234834036277826032882059707516805330132674219473461134346167666446057714134046178187141737528526134908072442441266904516776968317957973110993299007858056015342243275986189901145992977670510449819565726554238072835155449395653787437244483069020816485134539509667153183058701701807352911099198948249951026868715962535876399464313713793961646848850689462501308675553682272959157966180181858323759408620929160586571070027931158351788628364538252483987394566940850281714459399921660929248549953167205716070310781058838592737660961077082420566301818065650346146650605013409516199060667528293862762592766411050124993218042189394906528972489098471203838601649235052723038552667086507938296204097371688073128144071530813091596633898419922385235838810010258492009491354825543021011542187966277054137527500113023107433422780262304241026709929224171057626602629502305422453987736054759444016707254400898881668704734726056772033249729857635526495479495219822873061155259155834669159808432850718599933350863977177472114702036114576260048951584802136581875479431221643090462055810001801006693711613564528408182103958054739824842824969752719878334388114668860995095703829759659280198558250886521645983317837783833472674286835085214456751156283063515462841669867941699145881916676185424772539435801534915354017627770794499236521171680779190647362552429274064298286392207136453705747027096073238931082585713938615451049929601141862378785443056592552848559676218422794093514368812019558593217818908088650465898903209016857066896597289883819228234001872646648191378026258913245832634228893083007193714042995599582747000198464997360218830640944615405071575183997591168543131058344299879533071812872226105942858957051565073300982020722926433394962441765307008116624025585053735950275064866729624909216463954796745123200174958547084833044609482085149593645319819107007267269634755380986658715305677725015390683219535499535769930947590201180790032116575061370568859429033048635171249844744376197654811359959384191953347195748580081440836835024912338406962760213215275095221449940612099344188834907411193775048294291932668843038551787447234990073643175824071386086491993709207214915360265662104038238896994972811006198660349629729742692653319607102747171651011765336504044844177193832536960461519898279523143263224886608776157239573471696654720504834462863818700228823773895848052343459817471394355678249242742726149901342516846300726848688341328885462198050523923553978501598294264854387315706557348243675184708147245777044385390369057840957665675246422286377842693251025402473768663052386714468408160160899708021664235666493558961679444558029577256343665096620533301472199117584513289394835318174635882247624421473382501944160080539865076013164883281267242924407946187942625220512097586546153557837980090227825060022707536059637560548314180198606813496307822861453537574507425614723072945715062398729334910320438548102623924783598016061224068876008807214504041279476033036152810422729380447107903912946490873635279270273551632645038405642106859485683312254772831238505250859296842573008736407483676940529032086094835128657932229515269339570299842916018107061979592382952162887366965150723890949318700605433297763662151542120688440780408282874432764208993420742483508722067035933603301316741264497824934112120910401890510362943067349785180178925835187655164956573872994442910000427193917679822796088204975399356571985267935176857226406083807786853624599773824508933431679219503788919499033991044849189317576370412859477453176673409975809142271512779580283288495244062302062405338393539407600090935584760074647579501053728266271787880275977792786766714318977042197667441232533068733959767132776959998874094904973349548176800504400993596415887429127092183879920376564304212552968205188286482905783985425278724888431946808306189920776624636920537172709220215936333390260892949417271965819772078068936033496581040239218919414252154320036400353248810549864080494071452986167746197603868507047824422928640256562554439933506175066775346938630867617206729292193808219991261511030862445725963711370875345056258472533017835680728369558672094112637179110971080423620254613138983832528929849932619065362680349177426880641327750306094645213272030834800396262147365923139165227401195175491317041632408357709343736271499977374271341078571018167825012024184915506057208244737208160554732909425710913428796245717318457431957635237871187990629696533912097170350305400785555997627599927673189340044948906918067014989240864519682319895799349079615781124656022054772572260149300676438946180339396993824718204419581970836465232060890359862182274395248210229243477163109178859449608945224309652162922525819881040351004164425949218443047630614294281337916515849220375580658091776858993366285574567972752543540006473144155905078424272126389444174924387023640704469264958587712754962257481539040992707435410647481590403195574759382519809475231302772669102625766427259013870348362835528894079371159804920206058115624387188812958415961968914339952648726349928275512501804401545971069549273970835042036616613359033973533898739801359062321560155358027369450364888728678926681141358297513482563094950451917772932284214907251985978071330646510494721552985829729196889897397493654017115384705289562907314711276569740966839411148620052034218279496251981655428796584785330085776579492359392927730537043298274924829838853636392965256698089802880157402833932890941401867891082285495607454129155072466553007685186747506802032766725599745365231342909847518882294214110091114465997179318349698266337239937751155178700841788516890476290118809395209597113023801749991338012939948804472578453976981140319187794331389826878306510653399985745947772954056791849776531274523201218190617104170299155315367485750881768535290832544244666623518651405956175613048698264424345620953168861744326638639210042709083853685799935190066166873618398801798075571949819960846089059099990488904080477002292925117855480854995990807267180784702083649875461697048738925960102057034430545581121532640271396833055130165096304003961346745041963902480629221832788709378950566429921469413210791276759799002368965441404752715040468306158419397567966650189605072750002308493083639231323226824977097721808297289533634957503828867780656853449304087321559858615366140789077417446256844433052919638048590848298738370684923788889248325469595826829258916770631859445147780522420225469528873435879288826078673302550596512813077248751265861746333918216009800317535336437181829117517492321153198068805421976116006039054951807810214611054923450164179973441012796477259515094698328852938016469169363437600198158748476910376348589344376256524564081295881642771334497835947740545643494811287142142174701603696718845580141119259046543641154967528248406181655128252319213770324292012137854413578646350638081449754335387844067071698884042333354436568306907012971492783697272782769062772954216178063040819809934347922719239863071634331978335879451878798509331584997128696726330240567972626464810578009921414263642843340668108182745889599980781738627362799182793548486366584802652874354138185155625116571930630522351612060473696674320036910707906959285802540168526341559260801825561820794112057491498972242630754625207211221001535230826342304082031375507794194493551326395628000713500140973159380117437100829122220206072476250611466743253922861987916249040800055357460511892523678678583934940121355976236960949682313465327464534975737885064749200637529567089168627544275277261229408720998242108049977615821295587311091503283206435320621687084964949586772794573908889186564930157287874595333568649745792045403182593505994734539516813771963503147783482640742148664026696016860187510483699806724084911475826701942705078373830509252591915958465869643257941183199599892356890318718891997533056699276023507754135325382817077235611554608180778287999457033873956417460932602633463386383964508322080582774511266091714429393840398768715609376784262472314609987191131284577574112471753947542877449103677621920849708895388515444448961923547725859611628483947007791291805012581808589828798615091460268700646177477864617266739444600243552725053013896358768351406679912716074877392633397974695226662513638115248299643243724131081535108136452863729066408374170798793288096383563885916568878098262680644413035879698318379358097579855514090934982197780024380239164776246111025852048459233183131907744750771366706278637558633894630426596248059731738942464362963075597159800619932449349872311657529421003701093277786889565778382939178229344113441310904388165309114121800540947725528787763221714485851014510984043157322430976814079467976966194500932045998922398026793807888087021085096407209817420818450118693739770869981172842016287582728962631268928216624054318822499722436638680132824944287014324291381895963911434292940594779948368950302197373871394843374797172491146307441225855837899370284327187158701336042419612645282439524843749632131003879094989075761581639796293879407476063533049703746784983665925661721265183597958064616392370479361673080006756676729168249173857452486073841819940945895446283086888628129768391667287957960930315738627855446849970346488714283130303198525051860834993925356307912621689155349386165679940018931095061063526561450667439048542011732243842822673390017131805675909902510189734681855141162878549056266163032136110575826021423931632892736379157201879288671521512319264160580476141089499579749324213828359688311057038734560385801789039768509227447081664294108157637078017176897172261323945611835915593817505879518219090575234786099102850667225446826465799894103299830178758527909486245814355156304708919134435283826492180219393131927538382772328082363508059883442100461682462594628736672907847904347595256888997623871578100863727124183770140023358025799446060302052868692534651478736070761800885500237678846022732502475115420658545485506328159791010530831465145862445734724270520969644267747998352628846833593042981283436012182429148001139060215365788463462983786860538061129813670842144765569572043315300574822990408561824141696841938346007245612782920881930306973920646025687665756115183843378155956471636426459756904023149517568356385300514005896963945613186664249492540771125644962941271756081075291769660020426232837482049121421666294100902188743995346151497530128723522286553548503996817134239789139637149641766844197404402682735377226064742718580693344483880487937160387086533498709387736631947777329076990216431042430458732877868325137411395469391125350736204926390879557571342465425464572862779658753713978467449422626476480452962610221853575935603395683915833352770980934005864185710281482639074969904532758587622474929283036834391415601264955672619467788020109771637870980324689064321763388736683661931699260685248453839376409853224205144975442233218774447302654400620462666472324213060126514259543440067204880347397776431799787420041091604087718600525937497553371086207826052830426410837866522151678705304120346180040519080067853949742070729652749383015257821077734475826878823315002554516835694663497487280395849376310104252580720921674330448819721717414993889440092196483163498640086748720484495671715056803525314198103976076729745465878585474543982378933860677082851163202615725185827181485393541143258932275657984247193276497769259283755412228706696076796332878704758073459139300634738191769352989300148382988004904042041777933739856812654067280624065094662634472108706914098484705327294683757384925964725933171414724066402351421393916626949330093038026514188342205835832106122861188454981168818161050117800200029865984423379059675010315724514687020345150606498917273240528491040463582333336178698800740657116175559765739725420780025647460965974206619629880385656940787268971379062743723614821396633221321909093950106032726060777814742363346049070086821290948500155877734115674559377105870160817168696691307066605639576638713247346595364920243468469725705728939875148180093295638826635759296367346445376929379457217802585137802336628575425632884193249549674552899439544231293930324898338540457219239741329182848619342576490523070698452457439880337390943868571840026783932181374264918132993889077554406889097684258781100941211197914079844885406979892337363449976648429354125982426682927360139865495248471987206787521025948674235466339228594814669921733632964596916510719892125927615853153469550741378164826009313626601153240227069477768371887888099492058479865008448220908666443051043302501377891058950318309511440658756287465756172308869745962956695241187826139564648463670735690455838403979968205364657628231558683900676218042515622134236375076489603849622927601149446470058300204097527021993544466933278166097369814994339135855678520649763066847665768836967937517116531928490479329989916009546476707156875389494672961981398232337961871680226985454468648453938821467269347712170139364180745408426540116806571258392276610553383092692154634126055151641675807114603490643854819640203102441327715734562331533478708668435737814363810102097704424465019363276865619845440274108466389097746190044614319257285121356999801569748744958948496990792983230244104353547774226408711379421182594885341918030003499323291051769038384639161478538951995558891273296604500719944772705412272637562384497108698144115777886278993262566459588921066462755361490499220190274915519225002967562661055125166525438045372252261454382182878955949025580414339051000423393377105314912869486918096999668959014103547301596515379185742811418864870658749439202802189964200096470198556639958332315899424483215824241753801780309978974225362989788020308927950348372071484118552564690292692577325172020941200050482185014026512533764706829732916659452285198736127458436822927864371107056669638258539338863328118006357882710033836972547374727203191970435645341235403857050967773907371485514597637483612537548921392521966967598131088331014361510660784626743282438711241140403573776526764142813026896085384015819674125055273556135136287630520818062138076490926529280441650071961599860354922349448201180447625138462506466477826117086628251824356699353574387460986342166230058144576270211157479057061121272097210546218729257683156684823461478951025453618851319718109476516069040864786815982091131414640483780156648555280378186759923377769592917451267459188921956766246807899302508158648216526724856990819807491873560120847599184799947394802800029390389314287069472757743194851944766913474074580278712195091189646209318051238902037327160921567113922364996518140547217525263362061549978602148124800040827877795960282651852833863737501418513472528012598652829692928773829522098082389467111462569842712248779348170197652072769588397128885286599027355136630518800526040564444230429725180435385247578375670858140135202474551342362808632827147284137478781602222502763601728025590357962239407085533158478573963714324735522070465407064380926276439350465059582609929060857352734759233698586484225558016252710206615351218493216832693333817741694296132596284861954584792433565334854883250294868516835169569276946630048042133818457362158881655771823488406770139793946607240881166031331671147000529437634712834291366156769185168228472854042093609078474495466238488378696011560903008077770778265654512409599165135033582975376687600030598579651523790974327699101621180854148184641741651490232525013193563100463899630286675018383777000497356086852640470077686210789456383958607515804970564603543691596777928446115127385813308032164481456206425642862399194480941131602071030893025482754119010288797585469136343167607398688197837389070416806338395810953044814744658392476881175206437572194039896818954004321251981020165837424428043366884584149936965300972863260319491656964849299348679023745742432539261092488079799547877018809383379073298072372814491024798348985646317713839359805431732331778835916559468380485321221394981254062114312747386790531139920406624384345793937599801675669610948007737687556083422451428188268607101857343210629981948203782372372197382131886061697130559215597659602049972165715933506529259865683148758044410603562772792391721230376330561253678499944948176959554846859101864865052966481836958384504353883623963664566272943111959582783295665157036250369639210544503712696639749665415222421447004592971935731666242824223971604905188929690094008143535080394646709596017008857841136548604360530625214445752302247292695557549847630442833655425107436736301458149809004634802727742936573445074866917013122114215377605981926055040782890830959107922094821441066332720734126936557731837578784134077848448124686421902920757467921404491598824320830143979005834578230296981337734970528775502338667766629243905825386900610118871606335291973200008839822808779627211773263000189290649049866638707540983091938327085911894134666287246879921439340054215079435026424602293492351908370788504376649012377243692753099419715158964903047219329499830281907388710109526988191091248703296178214460289319416087050216751355891182710246871954507684156347656312513084146170849838923826920795022568603669169694997948448321224219048325780836974591486836610469200564210081933390116769364177047415914346054906249135926639577839517359289991239699948514973065561547293417028779518231917942812674465013335293410126816080806526263024284913808011048005995578732196445507394924597792535227178011386861898471159020460857841869265431907301209946668227651974466331905612185805635845148645349428346272336041346033111389490926770318732543651191080098882738582485148922395724021119629582302678793214998511852619752937922980618634666063494733495014137365587994250885902946886250942318961108200092518272108703451017456382088154395248111906310027370566504312048718821082495501162737528591696099754109051537181282763007804695024936943723593253046903993598301917063955324314405328710834627324166948810258046466627748640616510541833862834071213361036005611680966572744415474340284591030720869543007841891337049602236457087454248631658988571626977759692776481472380710401744020347983640571062547606489020522795146339849359463211134906043912903101325382184185592059415161839888152306600427098937404719668382681202496844705445629211763442032271687423958328982679974991317462775468361731026941191262027924420744116125425550277320658673405590892482306386892611959737854615222564378788872440255270917730091853186727958291099152592564780080760624160609052120160067258686800874593749092588633721270729363013759419656006572545267832399512376279066638773313707614799222912350456253293508943422994972261330754035525062843083139488627523061663383414655228268759732847223879449553661268714009784702856842604935834135116265405220952259277380353122891252615409410112718012020277505597879578702491631459760534891905136182749777451223596639780693826189201169152476394400853538856070766385517281474520759386808326106245887449930529979166738495033385626077739825216307605158114076153421635410357387657769948231356568235060551151420453114082405622255180029760644721662143950534598674022103791811938256308681071192447891515449362442592488241177830249883024724454136621446423044684010403453619039835566017632574504567294193593151284233783004872258318713348427401794516223367243293371565942957756128728841368378978113078980923700322694586011150376254166563249394904796503177924793650491935152465530771469982586597575929321155559092041085017757655751557201805063032677883120030066761041322014402721414882095961186881831764587283766565361778995314727382077537400794204421687048489659795538649971853427707466418424909192691638134320268083246762501527247108493258679696233869279129282263670975927959077354574736626455633588717217368126195882101593371537621719238128321976584337779824097787529529335947347540819642793301176855055071876195446734989472886533401725941557382469313800676507087987603270566749527449467385280444442092034185673870860781626481128031455978544790672361359594579761148485406041124470539265075340701971663941116292752540692271682383718724305411225349510007850524606323612702504360118726707791649216478443214332423695258430424845436564085227305007016251713398185715029829057458079926901109590886255105200984638127108144186603985826892141040794863157193521741313361879739643482025451174987878177308709052290530760821421942224631663058687115856187811968273586382821491979502356797026487045390455405160450522201536721532485177267864762137686624315094043016945113073970782577069662832518173664722374777819039617153101049049635508749913874911857327729898124072075634002083642444390426865090119255135700818875388746932485529105387842748723758675756584789668459246156901256440506440061973991312829103527543928033831840776427784076884092045800759126107380629888648995268325396545663981220395364752788807699100048407803109464404706204673391457667980934297159222314369902102793336761003397192555411613687545299119617440318902520642608674228570337236894777963653085803785631306790493507474321054294780945964359316489126217725811354926851699784854866738604897333317211860419726255638588782514522075817458650430360368383201888999382469296606252685188522705882124674676601272354492457642748556695857404130503340278473333240169130014323521724537095178336882045807377883747081626857288405283895544709732831246224870577103724920622091209784704518102241705382092687213474692345018693976703169079066100140565276669976505771724670643747376742315833174193983268019557718636232024615759950293492650036398660504261342947117443626593641773328196517034615437788699765086874986269590939542725842284501110853533916263317338686488396418183622987165169061455039642114832259784501691668429841455950332428171257271886326783948790442229011475665766146906853912901186328376762849174800376434665785290128854572549574990081658337118964215560906290044682663834943354853340254002007784140113232982779039688310684825747954018467252496081290050583807748110712154360506448564735049340480421222110560060123431911276724852515280447333586074231658418236280777553420076446202837571503797495004756710285811120664613527958029523826518118862325195135594034737370860460798879367845980734965570906177161712667345016955746859337615592248231831097852235290681688625600676922024239770945482071614531970931735201824773908224007784099785691975641371430119447864330904177097824732852266220070880893121132339942311209231955782182251432610747566667646431783583160247195583266939417948510369824307821336505550836167540635637969661911173643070979221169073938413845530784291591003704399318480641887964680462569890208529855070859753208509446067903451779378598197783774827549097293436082713742846624187692839804260966734725886867676084588163184692258910766906393064212970690691185818394568800411027499078439755234823138816201973023653987752173862466140402586487865364115831950415671641978885491883157428649678848806730651328880122818659309808630851199407747420903400329707925032771631860696639735685977878091938521629240283876270455816919049056004251613406110220898582357627113732995799621061398514299794758605149567526129671188374782705830429894373467149945107173924489481588108216998577407629041343715318091650153232819085274497963691448623360023498912284614014577504591866608822771222051719732016845447515436311123044608179819257900271204393211883523531507438984400448416624300347818130915578114410819263656602564639412892518547505315952624423090677545128872010592720822517367781183948203101366068495217280933055553024923921636389671926039797821635229996978438244191132429958877423242152926505163090947825753086276291005912094556991152919288766126170440676893581897744564370187682332708069818684347475428211174088517696990288360458350479646115136998156776911545000852828173549464479751349665165122944032681895132627616710603483027722252267970099524872666035201276642998838233113513799667862615077361551067144757451903084837182198701678125688637061638105767367275676487823913671561944831158694670240455608293237430439024705263138103488912858246944298252570062213117711684846287869367430797782534664621825416727196206520668181797242549641592281384181113139071591782251708866091984969099116878080861191215412081245841169606258706929886321326379559792762247783228002812006996152346822774427297569625532006222708815276718307787788279823552943895990835604138612953537917544600148805636037222370171576146834434794843541492581582798493281991250096095974019874818125977436657061944699178572400132695047709767877701514866827810524016178862370605577161870188243324365058575084435608993009152357735195631533464171774439834342497454102767624841286331198609004999957061498494623770711049113376928053695775211581750360092904595169460505666350987864686919726824797139335518335438515309105018234280702163424211987127458327617128640718491145584875113616046396766982540979335742310773643977205544682600983701211727916808160491867171328801420103624990183794693005434800440217621896687610342120433052391860829622528315658856030709125767625667157097534449670931218192936046322871622079381629216536854032028793393910691551180432127532046461602343398848676481617048794409506583186907728618442645555899453023668039867953349677044936448129411096554521124073832866958812768237684172592430933932185474008815765965629292173286508897757476262931553507984978356859418987908711882481055350663894052511251688712414778355063730931222705992673735548294931446647089935555468738996740092304212398669525362864441701805347385285596644376701273077404007170094705260549743950035273710420794275633423240854447520649727893498971190987031202622303360746045313241366770403079105409936706663271776986768213338015092411066372483934021931512371809447813151148264187199154986294510604543020498751071176175223755902142762586864348174417894304563524229753904253804325293766238328515110662191914250020886182269343028065760044696999931799593244437302648725015818433576680476601962494374544318927253066904000189361626851801896925011232862924646376470889233070961731232030385390611655566895714145698884608194644387784339207577838888792153869162182406625343368289849604151127610340589703297451611855829741501297892101151069699125404531152996071651710305388824819661195151000498398378570401746299005473686282885171235083764673945532724298718284215014230739001132425091663745372000891490699348861815609942043531915360306032978610210018607093794233603437149580621195918578381743691960054513258276238887741125168405124480607110812468851746473588886136061329422615844125619894243293592460507277872036419877333368422473104000384405412123894077125857239516678790826706033989662675914253520069773947397955791669768213859112740569398037251643484655956318728549917811204412118049050001941128593440496696457785343647367461515384148534101589797576206911953502471594586131975300239075045952404743340843681853016996648536271288191581176214998101831414759952570312314303238389723159015828521256542791300307374997678742275403724963945346620631951452019302127570906480753133877455851634501336133545362108952436326352926688002295275927701163279461363951745389486691434797905137038176717332518989157126579629336983690449925619312111239730924005511796020113082128375726361869068881847926277798019073626113513053689460921301038549930968170727049715206256747451458407183895801210470273093457379532252973209982978248105470737717521981500097671528594475025279522654530788552551375428147015146052136558189707707743465749050353594498496937795348651360851550647616147160772005795204636745256477874198617677295258781630379324731204588206067176169914553066963444931983285675283852176742696054930029257490331919763524258610278393916116744116615805691032228951903341027709579279196413923348059782094341460783558309369645294749459774586779454914338204299044275883698364579832874178939682196257507753051281565169600989781202735048484933767207193095881849658668525726435389971642841357169314133798535349828935481796105372920551768314599236375021866590246467173565281538447587194498217300606036056181801587663091951198645287683158193533232490134134974859153274989672149375877158809087930277163253640513467131682164843084628040801299018415948533744228248223863636256743102371971192631476200581680849156896702113846050275807230849822546547228312760201712115980522310777241676782076967213996196926354286941891369317387015730253506092714368081249272737682776426587112116147810315929285902297866650342138874347470279659235446698270432601457950262489306865209064207801929934724087199077588111938174731559773582344089491655787135227609195053678090735324195277432432839643811007516895752808015392202266054369553761155762241010725668562914574707290768054989381266589696020457525700946566101658693821046016322895808437805130794290066171516536495207924311257106504488162305087041510361505085413252959735642300122353987703611702689481057051178622453618833102266225410338955159343884062032600856383406725365334024854742395452158342185877010549321600228399572641937798654217586174598863040474167952055829682122314065420667500628427970184306704690139515988790827596018572001832581072907186057869853246528469465019263532524964571238392885384791386106524749023348576632347408299433252482788996141468729229932903331040464829528527244246651761598744234477643232005022694601410376333426805850061509131214458662775691052989432528800279298712699837211746403881351296288307509687545204466100714071540608771867547597321144088686173281636109171196702845382004673905487219877609662464611691237241861902209818645965777637411482466839728477513360164435424549333664575990777736461211083934875704242488431016467691639714015478100597406285279795516163792761926501871552283260641392090912813569485389545044780945068607620154407764182468021719072861703239401777456779058619583489746905651896115944574247714126209756535580553283663944054675995063152442897718188560035464994371920149729280531513533792224546963198676001736896856099810331597970668067498983441760032935595880135314971262421080657391717342525767268959115736046108129865853635387909057815235858831881791364846855024737386027554313851640072068155494058852233356192927268042798403598272334348856466440639342743373411545892671681563162048587125199828575632019967946095118079905818601078271704052561057763608876286833683637964908840487831744487662817808779167902776299081277744880075489145997459312966140946431404281631069088019378532851014443677847511034712007918384771467109454525880509940488559894121705741022358009415858428232417082184084477566457438729927620274679751629257742344019264634683532103557554326309197622126019901870851607081691707395173057146963415885967807457297476697514048433573727989252548232745927921198140172781532263357922578147546027133757791414024086007980368989140897200275712596403045262715172292049307538132947597757221462136812672402364007692974120338716503060910428359990861217379758401819756659611435548406462984721164727516365587480792184583191693110601756570349061483520137607131870960938673884522100777849328803965183625529095894742351372085881437327363067880972123978649272197409242530615574645489346945950033878896651270236502078001613823590366882282393805805947514365992925814448914676671242758379041340025629301690248484038152302499160860536756176671865614358703747741120030499606969463924382823567148394850539173714587325728579608328925028547677357105216846573550880889236943474333147297274961431463865094970531678260530930312430715810562512267101039592062455053653544927030535851793503728971270479937004264478451949914221824635681350681784028413390843802771440268538807535255803676315382262433632057889568421913590916254603852640225271275703353320627866098424527709131633584589256384618847423928759225096888764236501190332991467306329291864577448420368322264412335410729158999428450592568506992165328760197412833188793373260435808052698475633895072794456889216628674465371752183566211069706522741815879786234824107956035487059667312129450721376191904667106584691089457020972536349122809851536154026446538902293306723249879845510490686196737389909846951580032805930013241407841686576997837811492888556606116048191514332087643333791799045648393887330269898903435521271176715623199272896246542954873025326668653811885893954436904232760971982221374654758317192019151023078915833738362969949788308640934002868808755827765816779662111019819065683900184823876028242383682670402109545019897829891782108672032153883389220141215783352847259897476792906753651406361595269170661870477400389897680250440450998723094168757594272943707451346747592448258525316133426742065563592074368091304250701516066499341275855220002283951055021171139375078888146402226175881147791441266714518799189978932147979815307879342248482043897374619390269860731489907351190671644265585781326330462822288703409610084438338477555545029004107577052558429432571058811308261834302257707299814962780473743615886931313401856269518782327230741948165660960819910209752973385434378686405429387131034641072147270384316598898374839508311315171961934630962240890140206664576378980768988304835151958304549355210315163616537306220424296241662086541331028979667871334883420332582804035684777352963097231432193278835774030279992642947569342261283079361893155529107953927462131952435414773688057928815425095398053015761572555855443368108051764390135092696065328044024151575125763452396451487606973725505221747729838222848907207000402783658229138992080027645573527299767835545117743629882505309652214891679096381017560413188051775827316632624027790129645566157463206213488147918968030606306612263949290235080153936512808235458532243072849688851205444234800318324356429539436301440262901713271732999533351448130031904490209977156066880001264806662608281283275392003909786198910412953507269530687010793490903028206188494510472774433187937744570181882171445331543375728175425067178019552117913916253730485376392649369599693436544331720959830177276773216941231324823911989440170642949470990403840780159835337252551009403110504158380896734112015356198036332875241970309132625155468730844930044496491824135101598120899339746717978518611048626980885693359843956377465774181073264204254370702739333353341478845185688562725618351353399636104341883978882121981782547256102992472790632659050644860058639728814924995858324779739801331132606648244246030865787663251470203622719342033887644227374650202976109589209761667461749943876240513478760668532396484729153847194001376472374631667290306104200681164870354409462014734681645387674419993609663456226936526494196136238669455511910130465211748979010640742668476042673914402945093352334885446575414087538603382993640041155585944622165785407416661560246110697991562025426557048886134831794117186766487635087693986715020322783057649763005024365932528733312710734019327832648386379526026712723700686469735444507730535185887362809017701024766589495755761882696815403906642006486720417192558443290735656759736017904533766825387182809709128380338721410569639361786955790308926943470627718477739281315111198171862977130483920296617326016198126887407106339036939459362359956332647278816573720820803665259430832589859137558284154438206744348715860396613942327230356290976477080683613035846460956945984352134649804480717676990936627831447853935258944924526889545561923968426884899094166505196422523992407973314489116261433887185110681850357913347238210090883634292324988834991942849726271572576814632678547266450351444491919369753558348140239267593295806448082640652882070204434310107552351659837011965792106839230043674619167607058635416211631193182384215654198745277543882577943827789703757781491595398520636465072291601108225954317098688097260950388799452839043042505324110260182548603507691278477865363843558917654638908630669978552553221725928471279158596256577725348818088266870308741494656123205123701566807526830918256674893839603732810777447323485097412507800198123203705454362734197092551445899803637930985780217690113942778812081153043207873769657881378024876873965541066924227251563383983080851457193452939272962486727330462799605337908251097945318461459880171488857408670681842464486539592612541162798030131196281840994996884424398486231270317241579379625353872848331888755361891466119403975156674930754382829753620578952914682145140538713851442400151340974839512679239667911814133419376712947352494174167084183259829331843057378694555254133219655470874934543866946927123289209038719231057010760796940431309036025200745497210610118821641566520590807719588693195126504566779723004930590887252664588110911357656457405479763022820086376895737891397275663677156148214702621464752976036736711776219418760398856887149788798142256403055405371775140926735015791731296916632514243754539235930726440557737926328001697621368989890029384265591049771037049586245491777588599237703412423268670511207951019946231198012704625148865283940533802243163208221720980277397268103030538189849775133564884870420421154905536914133026222310763087678077054983917267424338385454429882852338573129093894431350196005455749130313170855092949924494044509013084366357318491198392940017003850809648934390056129292711103334356226584744783403650607242095949468080335437241821693104530144605930346447942221044447232492739226117860735641552751841621445080472215452605630042141186162517281284677699345414169382510957341275626997649263039701352806483795481075122498349220835969187710260340943082790725886967425073307216253213856571512480423923724305572701069607040063467543939011352202176093811076915413940944828125817227094875628483819464836894293093742149437033737254459359592618185612976184365603271323276518057429337675302562962443182239430031945978162499124766840916851704559213962700680529421589640669576213985675250427766258810600744768907802312350940014912878301867285696383346407750686979561690858783608440851695462957337909122662824395690776411919686987988104859456991492013601541915458241229662625579252913594765543805594308452353953236355098466752402006546657341347453489735468391039860644028662565165887694035554703950530587984270131041130119748494266641670191515915078393682055512072373508867955642676927225765976216175819671568790539648086922647521566821179576616626774414532560082775968402387526881901140219499700899870396313842749729583566482682587871055294748492202056593558778528210422175970811973988534816556148211290660835146053868751176680468253110801906327103110115578086682682220417875856445190684263232957199440833569668389729249486137254132137074630077833253062513762712090658031246062222127702905932253972973515450780386593317855073480463516342756410682091674329179650917105187002462023591868690289172822702249989236969475983824736191628379420319543074178833312749338288435752057230321492686549690642608296596295701244938255449470756052146552256899133574690989171121518816134225101914669322816587306478105838986360893909302338400051481871189074752993661674564470435112503581623997326521853573991108875152818122793318977345776764463534460744936219090146270300027377766459598954526774859469044854355243458145709706534200890073330766632881117487340549752764096098264378705318399847005360441623103429007507471843342743021785128239083359994988581362842297435245007363164682213396052391343179942337610777397134642623370984409025336929501554580578334305870789528377924961183187299666779657839384198562738091793169196878182518497185208334036576416073855235211854140306450505692597767901189550918592900128281331621598610448618679841098307099749893134075733419376808132646503739211627449508265567235045012560105992039203938637034775159908101703559553439997638873331068310514963527675140114430090249961964614012629546449235136186391831742638120942573886879317918006098633816989537024238580898815033821370401586101436963405657620653387915845444317240153501456858899934294293060541130370380246679705112742643593975957668802803321860416657021586345432411584165601471546814166993880899390702315304883644345816935200660872349748008429404539044706203863155406284299204971159975873771390021485358582803746047858645849647560896444251852405445275891564944427946614445951353791252958457544343743823922684219410808063999543555010854478325059268674478624949172215180671659041285370438721761455199224156843418330057532506506164413620560903444480395017538579934418869951911874220484701559751084301762145930108981577664797594010842237604905058490777105065917812076254665443989799014248022876405898316704180787799785590851666579673106210822826778304412762080578258535514852697385576685839695595205423630620555400504830693584177850441661332913221776321193425709655963901573553877519767260589015843495228862441805786433980957053836592507881908661173061941936598498173611060269755622298699288440188309182855446961332267285773560083361369896405689054050767952458421768354267661832388407290561059151032739841264376312817160212389670003144792468404412100103818160073764093416327115467089321123118744057762686394634913288335390706018442972255554673204632090284563205772156730061714483434047076968881896605342617210723323446769936502571179722691962325297752547207246545658896812079101336688534267108117903982896532359298581950392908400502813435913447254987255159926180608080175813529598168289973309275290668810011973965201008592587673842153689789583751077989606091081040955436061714992642447256178099379479861152230436973877333240983163411093449381233305841558352342410847640022619487746160178917844961086564878337743803622146357955627625769615630945880831670274590225123617782752854296309931504520608801605154613167284980532957156787501748670323549006377744692909516980029857846188333449696947374042914165716464392794676985101271269278659717668447387275690882264532091682234977205940970422188201447190306438876059864827579097111154191485643133468836872095052276584289569915675669448169684402235244911735519423509681743074959654649531451375988772546615886351450892935650486053765243893423814094769952815347902586595984860147730070023442633303922142029654008253113566732102206485958796241480593853153363931238615711699605298847138201541843943513228816062113856960370611495524734251650390220872750959650753196859345571050555375106274966331755718951566798985736447744640669714078781689610315955884932356125113532303653325871226698558156358755145854754571571987192970171801523130686474635442455286863099990666526625135057085998990788237696812075448029183828744358544997829533920104855354917392807707779195329951980482601355990603699857866737653927462928286204823235434695764123477426669984762173787216835082419441480436129129604963247016475032439609476559104451811948758594901675609427781080734944342614488216846984058637107074813632168667823083096774986447399505731799421147327404888422637579232021787657230306741717898103725513859932629830664650378749304194611124144012874935724853154456637388355486608574276179943732946764582014580187039286255331894107574067461142760967057495203097786977152768065327886939943016344989477277346537247575970249916821686561451193346518434149840976878708479801510388666078325476468062697530399679288659272661656176747718671921074327365673170800239598589229503143593495872741020571883614368513392250459187366414940408191521989063116354182233851587765937175291952045972827409694312121206204184968882296433204837818243032328023129925139665190978035539806451735415139486201846475140248507432486396915890562035292805904520327628610991119115544263244216045776916140858057255805226022838589217265574452303118991959610432299052422324099116728923051193010913840749510526347284554564186166642070626327590853802930022424951944054604694691620877823497553326888191650607952745255187601083035821225970925103599738330197298043513313338513174326903498181850564753251831258614098579951948726583279466245316924749764160151888069320502153790114004637449206665295414435956168337869258639993525658723140535416380329286190558049676385687623045999326644289127630286828603123446363721723228539732159576911541598654547491445928041534113612726509336696344430594389050524905476478996774140572690237954801837030820646831763217486209304867716215883327103570292031706228375734711581217825894751365891495276511029959703473527903210057073207072404493337716266091481417895710725188801721485665555107834842930786209077653902498468700694643667041271378697820401611965930957759228517059304703251159050223308993748800849655427406641580554415042249225222010224343165869323901136907812047597618494280075097818786724190922377331523118310087392111544682088463350545153066023256087514787246240442781221943501961193287055295563591620869846974872530483085044010999048593196488244787545274947476586346425730319943142535368189464791399995664732698467211553458172090029426753828729197643633816983783290050764713657865854364697877814042312745162597748333329799571536641573836662330673822137700486526648916976653481537477107975736724330078302291672216128207769079908312407177313964297386141850343572195371059947680835811694238516594909077999956681747299471992972929481024610605666944248344481363219911622690875937812367736424688607956810725216960538984656963574461524690551766675797197917934508317657552795250396365239135446211580081082806123392212917557572677609885619784265839839195348068634627194149659778656662798012603632305625008884160704779400111177649672345825759259607722179550750311727056500488453671906393150229671815409176986638402424598834421207012567519986457613999774530919286086486749502579753289863161422460725339031046849259972034763457188848456931903168150205065485224471990213484781217511793866149008073295873286046863237779718952023760065107735979959028242437094696663168424214186546528272131284483557854654950795974948354438432564737089362891253899872651286498247618256835521760741248024515929616134122007763682264962031463872455567766897173647473812775223293028778534343671683278344020316017847256416178237472244833499599394411677301788560536744296874790924810551845681147487435821019523583831578827513230848102572204836443253961566536691882436696189601008070481821171428092725435760770301912672333700356730610685231836281813792781052980121384672698406950281960906890276593619544147318599560970541231400857144492118865575326331267698438014121131099901293407318876932210073612071523097520142002682830266911062323720060191893914989370266672260009261312304447524190921754602027822371568806926951950673211395192245812194786234367665176417938751214164276185920589988581743391496666888158524656076186750129186909180586995122278529687855790833072873407430326113537681628844189269687163721236256397577818820332163717311263206120050277600745286953538575837961964838717625019317784112059827635251380882533320705114950533540543713530501869566602839148028911954202469757924898978071040297044456144834909372570280378204734029601770107825405975436150244080691688954858873629615530161482441058606965119868184256936156533460018651187189498620546802425974033750145764777622659505919517164252667066614436115886402760680995216913488373714287089058012258624762639970480590710156638930416472248227336605331682489656527927090966839518365111527853865807046607949693320461866290560963974984345282230126032244079717214948910021093325673216799051535494587914769038632937424650005241314184958111910404098406069920977281275054818711394400570689791568769940057101914085967589928170856193911175999803078229715390895922477864926659439964805744192847606446543727195220751070546216480377488796444284253532007565390494311779751260054336775304883883893159948633504455611760854563620484993455869824772009314900634851137073902371162815659728551119462347106871930649478149864715946956579626592263885112291447562157890674997931752524629752853051555903543315574285448627489363287084991159678979016476569294535833044832444623660779800304458166065882809337483073983310410044126094968563029410012262095141905624582821648102130475162037251244904731867711045893738295807623653992688337100700917510700088371107919629351047058601319264419030474677170621759337216105894728163776606752014689576667822523117581852554440971595926602837049251322492354370481354984419893000603155946442407663129644429519048626234435894401899595239322186748863697900215726393388622307750649255512752953605467049281546629147130953809081548159359684416811106353797332709461517279661779446944102340258953773393243369657831934381630981264761686985630316820843869099317681418664611325733949861306591395051626779765302462695135028560979164517840149823082206176178763586694044967178854230558116392598948294980495748861073495709782700282001485343528800194349604744102312417443395004157838177116805109221069745235331515377784273952421941036785592707930773484677397058524934426200245786393174277425087519274414103463288224764575758841322495462266550836364465520512045541089362176382199875177086976765719591755647819320455482094416604365078250785114534428187124491921435344672790923066709258518127964374294598758539158101931769728132632199704135952924592838714988845342963026260794091003177925505285023364769740745011090632312402553054008290026088913087278495693679534062127658580128092155288453237508170755651283453269133179571727932668278727770352532700828821844134019169128347598212802018442067884425511345999990868232753720464381379878344485255022263274259984217845527826456474611999685523645754550789625493198941785980544409564303973448743984941336143639989323645556121469811411345246911731643567970868001697933769762031367060939688520488911535424025666963655903599247413694101870980966766656978420841005990952408412211785404184999731860988984120831020278841730852576240464770198583982685358745117210080647466932955326411745908416444180808707880026537935939173353143668181377976193522597291319942402256465459681763619886765779673064661373401404346992849759869681915363145097264225910229820907311221316718530716990750905043480563540149183654279373064560364528970690096129609825967291776892150322149264810030184413282044543433208987226113797413182702647934255734319148226808089862423400429032506892591168783671187824015646743900875671712012605206023957535140771103695792878871425367836251398922851434704667793605934544038509362006004738779944068644356679803564699977826723497751683917018623691133725472982768986888160888665509388056198598382688145315820546790104747934427321915333743827694682907527785470254539302441576897328612128297785259694526108249768800650931394964173191523449107415326072553937458055999040112595576011675375894404857532219570351190692629139657857801271370593711531577059889804488062819778053043539879479490219032000620853790058149749758636040176167430760694686897569869674384842531936832301011569837782349221561622341555810085043058488771977613241824890935515603227582739212477686377671598874985924315822739862894202001079443155561005613477617511253927720342047814325667502056687530048959133245995330713560865904576971877333511548799674015142974294327297725313452948439407261627093558580076186698628838638854262448185226359670220943461050222605288136012630544888386305432495421106609249334153956533661022530422877467180265342095555954706595472942536180078681502239007623272603615469878773298681284385140257271306872920391823887082419281990836656084715568800025525121926545256965488675093055800249570853467388808782649239605104774398046935460033377343378180494146761157615744223893359264378764867635123739461679816406500513165123718599392908586114156718494114933282180468320580119510687834969435878912058887958171690635849045801757760476038737219733306805386155558646956968308589583134479540548943586256977568148509653078638853727453638858447609844846986914570674549227912615237141391510942476878294358768046618459431641526856229530258567054090968414229159490397337952205635238908905910529168345374856724609361573084356427094581470638323589733139424398161207172966941551986221621516137329996738227396191752265346634268171885177143046255174221659613281318869142962660959694753228418843177080051490793590014990893298798145646273720435003953541304721464882811167888141038515554070895273896546317240146683502079461958821954500968306749673152671489070358906705657536143270581704252705626484566432042198585667485880530734047737474378279075090725975121770069256067006442710422878463804000971831640210574167190795820129026266104109684094173262561685935488501706409663313477335804356929464102131469693450622778904473973827271177699989792916313437092104101926649032172394943753564632948339857076055969736693894332311504547249778081732295809501042249438423360884218978620087496526067446731342805702132015526425845174717218961619852977277509522377169073225657599203145602302492164762280826150281246158802954009043554809158145042839745294735969253910031627105688713594321251341951527691439601471435931104159689705526619414533946238877926164905065489773359643637479659741812093159632022912551988859588881416450274581498862970011934059655482736119588777852022112204848262631525380433679328537995956189516907439156561067306767980779319359452640372544968400597970891813520027572436961729516156026610896877986212850848181636107079778826883872354483455364539271523962152105468131556651141391517311791668658094482395152456628073758379714795536094769528547673285208183087257884752578531469797260237378893635609192609396479826682205204466885116019658826041362206299115662455714091211219603025119280681661890010753840366925198758367337681412111333237597417962261206422945009861108103500190575177427383266529185803615501989785610644197089080759135946590215955336901909161766985132289960407232518792336464019767446374667727533542126208389465296699763287577058646582117329389734953785804699098852510706892724318339935979680642526373835974381699467483376090859648731299596695635091665253930019018020959452187336955312242855317734497297000388093459360148517432080078513656738969531906451882740452520180710851268910790608695852718529595924581393556965767120586589087132795486108566598529504317955082901640693805067617007703471265274232450290435312074306055301907027656830165790937380471918135989572672559806756155918130173002909287043757283575873103032869774456058634832042633488988688369908952299181403361770956013924713982430843296044579036438508484959290705668522192015239669965583996443469469352302856591733559420733925837473393004046017514068187580291339362186728151766718692516012047222500343732755289815645459836668567679282115968504511716868664138718511949253276071645972141014391333573052102104353942010604024695448632861764250045090070919509996310330319934533687998806663306626724621189118716711521437862488016982112479670034536101972385172446415271385383428148768977926195585682564072429548315375168959369369572672354444461869426236112355417541143537692729982688829228705673766491005519358212293262790699946809691744634331279687907869978715181483370111671384223874477641820548247628545697758482508744497689804423831526831540892153493725401233079433526610184202913216905510903256978731674974587652573918587346655536020435319294000739868026189704661112412530924714685922883229247232009613874062705188200240513992056350939890408412852280246007819826939691633867635137209093653144266586317381054594947116968834490546872957622379262450938850449719288564108132368942667787723257128515187672865477326816104891041016546418517056517893766765870279707575523177170241483712265514769460182476147294931212241001288102222765869332531582398739331518338428698637892980739293972437800712341227620765837046661988929108493273610482930243400278551370693867685449265432264455658935089598808155634250367639929848510096687223048743185508922752461568073206917912327768502040290186308226154196776943750195727995491787585335239671101681200570096565020729095449732525921466802011995130369213705132794686643438700239381900690358152789782883300991662994733984414269302242562315162368505374980725735057830313898630718552396497119609486024098931688166286124599799733886533227666380219088266457944139254228666857938841505098265341778218804006806003908934785512628434894597757349928588842598265976264432495531991936740765981946066248057166800966186153176723506613426117628998920292476868459970689585444181622075353574326773655660690266884968727406980182606546865944584010680522801619435038163207192783951049889791167243305533892614093363525995244536706054828982255985447410910849658666499756432832223113465079726374785527547185694012944858528981994141787874105854796086215910365841254998630936278451986214695722936113001565676285613785676169322837315181371418247401883929957691929830586982552045935918626941764938386239007313678439233528434063049235492024752653676181571274628725630612722585314553909636711453420439554129515094742527410789363043457365954967020236940819850943370650400095237166775396876936721953914102780176913805166283676270279097249846754327009705407701853646803578906063749138278808583742753694311591323274797543431881742244575776266752979667219646499505267079165879542945687530445345770737334919245536274061377595305808827259438719193267207089770813486784030950295746333411359518539409658121338474943974122914330380811882803134169336760877709164112871196956196493060532806113903569039736706494533442630660424992293821373793411430736650423420793325844230961194148339680985836726416053756724825488146436429457248189729576861945087397234251461382702128297102794596381593734922739182058016395789391023423433224506435072076927628554562152909848723988641485967349236977025940613604189747609967735501972580460762738492251307524650042344712279140556462577542511363638884787542552128085106167913686301966035554023459269289803856138260428768639542144317332820060902917309738265614810388452541630483422378750644621419645933460682882368806086075266481553545725346848693804327533353682586841229788972476108094343265991806589059762210871196921235474362921382880452463841846046844095827160515182264232307388234265874143185655539210416500176728700237067674013794440489983059155992699610033851730626532052600783976939857002688336899902376643639505003697682439328475097216546333099216164548914477719348184514312870573922747340382383353725615839924724148754329444968806811729133432712637684019054846327695471892803981968694672574270085542034732103494404292138518022271685211385146687274878491118683596150555725155951102270500729020706323921775582980430477136553717183069598063118328328587405819057297508510438646453578439068470778954862865132757166187098040232918491127959384397883688002958837981027051406124542842601717547847495764659250262618090068447323394924592573187748606076421874809075863992390250130197763433413002546921570593868274485369374178430730626605374536851331175713010158667750317768579930456073139070858421716138207864678633640728329797996682143193144091945749942672697003468791464298235546701995512622553540644578749118943813565315144695304424995368553591087215583861622395026488144553110112701870666688536455310673114676330140102833901208826647629906728347716642627749739169174659631073334300510664677902203473374433609928538214093620605733640546823318651253901442274432114037556814395782940961463951879905828004345574632233168118240463909328865903903197392896799471213345848058456533332653345191595497812923951837037533403999170225325027584910715032032635435967340088961923728866271245692322811354725789669612476886814842127982586218779547599164676964127694287908132807151488652337468069247996652954891759496583521664422958684896209148643920887591663297689701491918464384605879400928492290051390005843690603785214334656681004179648718888400710988441097247580191897748742893067919091323770263707535410022890724148435026683401773708402439869779555511021302472888791599981681242373751205156377046162770338690972456982503865339792842453832259538816261664317964990039692033612696004098969245173825189705478321192689369263176435061734191546899712483748387995854503825358639376803294750073378706283361675678963932968170224725051681313449061909807811265380265249154885552994194258508031123673089631069950750020372694305053321522290187398427171441222232048252777046460724205946201783430336260447910267624266808144768086707352124603033118686903561915201364827208997380726249508699284016989881703142429534740306191012828017410672242712204968908669276979322800043645743780147013114983357338117819466608759570089998845226007082768350647753723702341632096576439544790683432706361577215083466978620160159702937712043112116927276933963381594922361688748909726270198241496933088285608151036425728094928937644974595442117251188958701170663056600458561852392298590258220718138424869313293249126686493061410522487026183832595575150082674396406512432710472739420430778263903147315736744184862522300352397609750347208193666789217865067993766481593095583600126855664903314994376707899343383502073040771963227252341838034091535439571731980021895777020433124316524681321273658163481860923785966184683599683156288855293952702406864857966626426768850960894518185279865620489237286712715058215100110265538445532728920012096017477272863385282038839442184640935903974933549330223399708346337421693195554556712672076147599512316283186281044328850019896559712758202726936515625878532606855922869838109295284500471454593581883374343831718675203845128561399546958394795126351730152886405115101999709224183808112722856909187338937544602614032261015029308701565818309421489370103696259725860287970301344293118705895091580163931520334330795315342801326122374590165272765539760056558506804751387176523448532060553546984789735664265054893072172037528641627144644129746176976568906632987898732942425523970239095154918282471385554523452361543971668751965632103448843426367596845205577023620244728495954843680568827074428318913102457468268543934526857085358303510561925385321931989505730322073789501928527590544501828622377736195605007258472161247594205928560645144940807683304678255157997302234537320952093198559259590715133940637466641016583188593746864913775469960730534464154920248850681984679984905992614007621069224995557135300244722490231501292173084609030045041567781936615911678647184716536695815032657197362297208557760369221905613869769804782599629855832350757447749845527566168909825765972825129034491382563845992871876796211935569907981736343678699364616153755648679299424784049329316090241659495644724504031542628285958318212099208605135066123257907091160292157017139297632067448757716719218802829944473206900317011354656261987844820772988345705302549570783313254400423248556500439169639985759593700165097245332108263397769721171789566237166563648574886923061813516287847103298832838006965455396614937994118253533092240255972818695473168490158886395206318557384231569294800715271552692342719842121428225365818711692313669693167311610592230370149382530878981057210956048899205452172980789451021577293363504118058524419172004203127171082234793829746680129284041811878494680616631514461939744156426594251150342783585018694059294208658539168040416282867046123776065605557490313394651238160365285744013183404179083894307891585941863568172207215775920100971140079299763058918578112988360466027724956213309816669935087018467278521681034805181435473631911369624566786477265074321707401342217396619247260246301049202496451145493912341768678951777173743389786577318417059923626479191149690104894858778480522653161171760561478592984813050309810726567202593783569837735439494999383375170444271099353681710601130573681608406325520763457628027331985033416092775956202766923882124263232276597805563730273779048561576480308206442631699262912239175667461261468872134146002028099556673797369571262139569792900419031137215555178964015657604554927886018353933299941545081560714224107227321506347385524194826490898284611962655776911051425196671317581693753908301585984389752211875789823762301910952473018599903790192369086572745865155809337967595126439802761727241060470377398121274083251060593936432553438704898962653154607704576329797350979553964822850863126784623805942952525135780080174589770843718160475380835231939060687513900248140939331129393902048267093443374339660806433578844948559604027715463296692050690727840552670530651506382146948288405479410238410029424252236761250526641407229266959183101929116235385079133320217847436826575197866985278676700525497298730442791026002855816671152910611020469482365662708279478573312133446981358074201720393721350433397707697943268226674692876556180489472442461789216341501458297463153395557500938364124602608805385832963396451369607903429082126971368305641007660402073228321287774545034322537202930756824697214993451258660560268389616700597608781509857041478819003616417999290957033129281904168551262425594343102831634180524775797838424680338188677911589121754949652212028030319473046888925126386722364474172637804576092330979127664601842172091851884921138810031144497858787756417807523364225549363647298923031440643842435494594808250969029510488052456362286590064780577676281750742199389050662867613518258790303161234606338291451794717262623973440766812157545842952810266923546489191966239456890583486485881503987239698882792950910773040035198747837760185125972729176649101655581823808772075596482557749819415946175606848590117496583654037654293144338947625429020046450703785459241448080292076839126036408643908854981055172202000035688089836779796211169717162034004448033538571207306067766318120138077500547061567779104720632470263421350462643249106989020750036874778562255080986842194179982396462836554293242015202725675543974683500421868007717725640353320230484925166081745961951920102130676898482255288442299040244083936956354197364955107418554201778896167580999560531218434931622407893506764670458444728121703847053179049676335207071442602034932988741563479205814577330413366165895868883307098147903848449467129593907229471671187016355813990641117863652440375061143380041624176619865332795836951300928492014736935835360450456594669889903240838608110328458436167476436264706473168569034555066280648096690281195346608627014546454405408600107537796628727449551400226028076551937731116321544933113862649914550878620020977057084929998109769531582786023091918580681303266327906851141129400613297554486773141067756264751740237216401919785453430191216126751258694516999608647507438049870718463926853729431097315029694983907353540265188412515493734581650257123048075721076537079405629861282008602021396256288190446557693338193508630900232476555243438932624028735753406088703085808423774869085887960364321271771890251849089404779520449861347253891571133814580596246104511942016393970824497488602320925143992046726587158314591742884873331430845020704755795516463574163153044749153460271729490020894105468683112938298362947573968704517750662616886366151025490610327325654494095006857680759374040170485540007801442728031901333127261951533886466710448693116597851956494647527602099901939013386427518016726716513512980701159936145726749046247334184920926667173831610753036714770127638448302893024131437329982995802206015194507665585414661049817284668978847174650700314647990299334683835899155514123731016238286601848439858275736850839692224499244168722713923171025717704713464274399203676540089449475572806966354742174134557705386594162282623378412962100952962609904761660458700997691029130420462141236907129923816548739999634302050770250236854742462852138013154797511951084116511702014870004429242098230871271842788384449805433508192806678115015590830170095724830671254074642748515875941325695365244771383352786900158938955530051489835916237172564824631358294117193182050251898173312668474028535351971156680748850336674353545454236743493224464455742221143932011914652121186191471365346847411018911722090872843165079588669251140351278863278086239745672178642650026787522725740210185407054276686867099104450849005682536600435464709755947033008584014014520248245322906440467438997109448034268756030978547943079487806531374736524693079741538759045757836507159817945697105108523878642810719687372164590751904191734005952550225383156047079422955067441348916286883135887145002797373793122425259383901679174481724992858953787078871633484369096120525642444782833462426581121879494820382248154560159273674320542077038963698274804167495956796966596014241462444597534417576151125914490561881570851433657426281241265860492787486515958242625256495137511716486495998013713029270195930109036388875301265807103243735325596006283055486647391660455600005044405590011504561294740782690986343353451575632726016710184651779100878422985799125492956003524764413179267376120455583274226519209070188208569715937148494171629723224533741995939740140560436039582134094249301367759448145221674038541295914929822322884238445885199770679051571893953527100290575377681085736955412696380926359664035084828228425865936493689396203103843185893265359105905301917748476294624723793131920975404749471418903454714650938310962899554512236961680976162156787253239293025991433778569348803205081320544816197406243230141653470767967552050937580266603158164473514685310772440153908861242264995372970921997695994257278086107464637468503617035600362116538062999199693562928649404022131939929487968724533804601114416794306046628882503568778263176175079136380965989316841022873337568868369400929141155815876835933203448715877840798688379293869055316504147722899626173278558356398695410753121248816136977114175116646745302395327016605914092930997326144747937460988696524460079177687219094736700838233505654891070925977290185104188568511053528951879078228134558381268937831185917318402696966301779714937481844481700512341941159346178090613146868467446826363559654043885759231131967430202877912294557185985038920666063797728719363461661053947705754488878962426362936962014643877659193289145393679667244382132788827276571294029783479718507500123119377130696479888976812938870904957012573301938250344661516079711208358982057162199384931500286254040819057883293911696653022185176779441270350846884104768284092080039437859278382436775514976754209523679895662326658928853608264133584703699260810763488434466690811981241917547646678677849477325643474101611863730054932052564783487283181084652034989052788218399141272737653440444929208176827588275860533314931425175407717663276024751832844929990381488987068595450417166281881039148370003297970534554541245030650911204927293724947632956880660955071714137890715670194859501129094959908821967595010772692554025441400384537149014949267560820187382232868803492064712701678997897998016722809047514467129023511777050004177559230171719380971282181136185895576740237447259976234991786074674423296378511142051658534322662568825377762000249018596397580499989585518834385279049013362581925962723828795525617206657606955469716401336910258285765605847793291370857205436299315765747377655132703193210999188345964507522331030660638438583780731262412098159603071906098172901760046582279462686761039037831620014371893266347622391848374955249480247589140686116894410195080867151135211711063348723869157581563928199778331773492327991293021652971939344325205442388576198881364783652479231887826108464637153439843162655448154588284603202497526078529413826737894892868670721628846935756839231023483234845719891738806542976814287187878797586598809463018678097321476021318998488079314883306801970162832789694844125222371573942738226576123925289657306940835154351073787095778993862568404635554876770054407248865229210947645985187045982770578984424939596848562902205580069924297907355462703220913838294582898328670207306284577253932153778147783362326830558352312902019368461730207896728150349023762501977150702024142363638541915277814248112210525421245920629298094614941431903390199088129314580316154052859171903701101283944814245456277285186641540166212474327016737083010653756425052906394648581757110528653658378806158950950547863664850730172020908764270335881334403242498498176322504972853656988028885799700379415505815474786856006316695418251096868913288065720444351628625397385791940262723148230974072703130780378898391739468995474243250683670759751378683249101555457870590355064151469321306259577212716491529363427839961046666461042586250669567464876249719501639209689937044655424383172956739300456822925474125752048170231036779067063383014165250528591075235371821357764792000278241938339145756851086661901331890077879876136414367025999830771818058199852791049275595810846497085533804531756069884433619595066643349035535078427117250356235757619416953896273895096310276606809527583450171813877108467446704712268659954524676953603329697608783395516103354506288198486263382018114675960598849449827916537791198016293275240966837801456833407537859578036130172408799518550461419487692382683656504690370758935103722175283885286901076685932724108105724450464104820655729919339165703927267000369532900505363296536248309264804059946951028191369861660783002811485742803542365488296018579884415973554765193766534931522116509174800352493601811797156436306719510314383317128895817334740629207920781314990172395084387148779954191456218462802209428741507139437172760973482879023345298523871864502279373682031773624823907185809070490257488185255595945237822436705055550040104229926208930834753571992745082688792631359687684904163245591180388056957127912783290763903900143238165766206555392704816437605864174016711488885773085137119863803209700226850911599638136551214585601558303936801083587905107981147407697124091668676400876965068793069318887195401675027336752556011641045301805249034618310060646151536790736979351652814867024739650418945472707924894530750801733452524135300654960355407626758685553517206658992008636367493710122535587961115740839841879325112785736656115037546382252506326018812429610631952491982326925185125096741347902494785815188253803875229939210061506648240845709471189363419471519177015415534032834100943949406305997651775238403230395425505484339025008044262717007050339901036549380388580296893784890605302144512685904550902201333792847221111067158637334245498098072839104238460804270591960568207197883117171644560639870565713194654012867110360657243745386621317371548264589683756433407947516821738025874092753835536729020899681975658808702736335111116871154372938676695251719933037963328299636691412355058895124254534217468931058993369304267216559857518580223429589895723701979749649304629938424863352398199926998567829099107927925295973304174196889913639264830812213457789332778400663140453119136429008389328557510683861675878492229993885908967978000222363989869590119746378725734825221232478650817462809925795573059954074902197138663666417212786257257226879117665047272414526469899313648031514336081664906521434129112839610412821458405136528899086260800543025536594323746288085378810802145632946071531379787112100034764050529751971494075924058148410575395524704965601187793093350034555809940122799202030461836842668362921489169547090156401470148997943891439420616101536837402880912940128131512893972383619144327445867991219050849906954281652238967698788932822157780023838206072915182838876143676530769748498423937313762674155311374650445333966424922673881950081451055284338238642699809401884583906898415877855584322324492419979727865912747778852415944025048949439206399361772743823493519371272873378489534769335764971140828091645587711918293649806393992783544658223913624564865280811640804342905887041126580824736960517745369000954153633724469783739425540452653963429166639870182098704201080461196301402135442017564580210742543015273641136423403598164038536729570824666306102802313112222932848735029193939303843916331978512951574087428168569310262003392909085139979802023398986855651163761996694722090402596157129628178386464333773791775689798806942330133939820557938176197231082407445743066129067452357543430940731520070751464927862341254716783191079344830234599761854784810510338762604873362695053316934003834188660664127995122039259692592105221280789119017904529980515717072844766081928839284082730471384870056046469992820281909048763041816860701956212132560006989593211294917293978390236333845107997695008456204874345199072445561085164954118729502388578038125240198359578765513651159769530136511931944393888408190629314942851412787491334200619651981308871481459582739109414755728826106200600665482501919580079434503330754627172342848511973685067741514447414730172905387982760831785040460127118797653309579073077881923663363417882265773244906202816259874186187552913355101569453964704514410813998150535773421462475028850285408251478044700740135807387434985829443431931492815376408235324490667279975690370492480316595873937401481588859686635699729594703556496716695904544647091308881719906131096039784191821109561732341926101986888875234608961754781521761410745568628322257358412803023427171845592683292440729466403974775323557836438115184670578660695428047902021044054021988505110412841704485558771445170523219408546090338944852450603088111921474464348281070753381541878733656160009755817066075911279101229149580600612250270354878055820065873151817726979983956533862297623701414129434295607322725539916503772664577493096162829731050191617589613604698876609953018184618610904585049163590490652684204897932215875500399545096871534250829900749536528595506003279324988234349090238861725740782342004765244801869190874413926764791733296894792075474346443915982865986288412702481494989928476523716312583131397621399480131587030583171891898199488669283246199600488808092480746693086517737349597963363732954016922093185137129606601255089017148281477314881583402309951140209199983501758661674572203140061962640075363232725160901421129427014626013717324266358239470543779586846071579373322351706317042500672218414839475086335786353075351927605351992625174981485624012963240632641255380335201669710229900510224677489102348852829504855832072773246041074556010989896917796395434406019256387752893320518348703496464738486178917512818803499756583056175530020758320521421197286424835846123985137142485049222556356123788230282824458757678241686922762394414020439495007202694101670530697446063359406546679888312495812568884541919436820901370755969911618174350547950543394944122591974060792573497491453674072504028131362622971809724223776419495555910091827827235686972182981872907842008684915374207576705573952004411483880081616079609867397022680652136716595622245215454605916481168707816846402036592259619891725950605576074769983854471589735331835948001906625473756479897711314978719905993677406611868026316618442525214804756477867976381901278579201629934404637547086503311671963906174732210917947440973696779446929393941603893180473710962990935731424031174943542868434807728941630266895037414718583995607382037511294222033964828599989657441436389644463054184337673123251022212234278291818897803568275928498865605413389547034194710560044662819254747375976155725818222141664483031467653534741492126938909251729146240822690153440875861584790297159743187166191376928463130122986650072149722716542462896868942056445314935709679931667786098949688572910896977836843576866074640095822573805580134161955040323411425409739302325869371564650703805466068539854909426292203563943024240576952358596240118934008627383275770859874607295948949747168439527206994067843419825381739893294746288345222858604176191072758589961185649852634673293368296303234236140614384219845532692793087101396004442188472329649511920239930104226078203396018498912740729733466205675355260799186449766430445796071359886153365173640661293775749261497650688231021404098421958430786789410929808161152688536525255483039973155294784088916408376724912940859922357591209899704723223448867289959282307793245994916718834478883148127875066548221833951518521431469096828365771154718312838186545892485251537330568675867143842600929556828535038608849719635513564395392812118727657128968458955629224074628002664385821389013722086415093820807281954217704961057248360962571312132841724058134961898518408954616297515869906698771627885111949925213638747693642800221890814348844381791655114323727094055677951065631514863565768409763865861520585802004054796148842048636045901592147742164754170864961650120402389280884246888018085014876843663902578566705616103930376908640501132209258344495777261394094571965556612968040599110281648224981428175458264619572892761291721161378857424673452164744183506357047006257829421978876468789185508204835540912668450114533458265112307675866858556180406197885057853700458236153526340126670564641783427682558503808190002153482293641878688418715604257986201863102873447456881693419550497265828813877349441229693119515734213709072212564107067523811317630034054450318787034328948900297928368791855802833005991755056435881231237553582276436241570320635965360685859726117994881845444911519589714281586096427768858248543790969871835996917665207223627928960261731923044565459862163966427816765378220000451217419302202450601901234659557391103367210173946399664282191157398271843035370274168299960506619042137075264769548873948446957314716783622599016463590432991020512030423429307981436867353003485939691981860139564497228494400344175720464167877489346084894202809196658524370511764908710285653501136670191201046396198885050661843176291256212051446213708162808806373031765796577609872909657510261887147953564908690766599645802170934214766978398570830123960469054888319101232271394461733121360688108004888062817746999723648260394080743063356768626930276016117041210506794072967601320772973070277137170468451176878205019267465587802593405351487508121605462989808620505529430899679780961842506816841264192455484192572032352090690255521101925973802193121031334372993679897022402711317408958401100534012116584916697087437849015316048592619968179988004568869925941606325363791830244874779359937303498505320749729184863828509695253208260870056659421494708430029735008822985568291041331231638729864550046304472712388298490937164275267929254650124794673116642932108897304563684790440719199414381757276613791944270921205830540417544762517692561708714787649521815920040826477955135470528841425563207987431875249220782236388045755958121039913496288511132275957382276436605192525095796134731977771494210371465365585109213626368691504720626534741996916839889214087225681320535247466668319308374520448516914884746920054768108081823956353755555751656097722341211141887939905248041243385376562321369526617574688911031456756828037138881985629386714709974400164996798177327535142991607787723826144821768808945375472602823236112995835422443570817979591419379442102901577180644597518899618064219909551707007588199793024569278673805092993131861160354082772790523637211525789804658858135009016924173402081634993144331241762893303555674731902753944306093770669806087109460144505073019919798910269513187119706147662084607562577530744386450215522449188352179994901663314154157668966193759894664977650711620333168589820387662834683564857742934447935692067586015414796892120376021764653539427232863174102798814595308594363490172768692289923180915697262632610122864919762799304714133933919501531551984676443709805926068747774255919188977423693405937446399338523803797373466614450787303301379924936565957096429767420036124630964903007156745517306958620493114269049427214901390028945987281364456987636829243238813670249044544587504509578882202026114416267499314788871765825476315228121517977730601198037118763467404059732655364564991170662723768849801804561319384821428054617274270851167516694545782543039623737118630654707705278673942636145286628572125587668606154226693314444390272445214383803323544161481635578310274511559211055066102211042509608546152947259913947841702216032388169315796322659211322139967892680664466236597838353053939955188210991096623143236966085622625516854447614937717704350500440741873125060462002918212178900835662768992312509875002331519601660188918339712571285302821132982179342588850072926511382182472010488957569814027833724616005404264887652452748574951282226392230876492905724848990370802593148502855760441699438651817494084440111635289132857317694959800414465426777718338056938132760614186334831615413338313353897858450941741347879370979776613366859274349072115244560002742961176989235049727596336437173025092432192533214618590294169574250776185557487820090295727522268600972761840806945111545582925067028383320029990150755364833052476759670709540239835284004869866062134963474148797876555429982112374981700925693755799371636160993704873503523659427148419053660035283683468799265951464899641550389775593759997578397245987427525262009581094253132372297869519688382392437128697215520053444198018335471031914463093938886779756029795522030979632389789161061108250172769299170227391314703586699324576238492861603895908614462335129240665223434248099169993496056058829275076145513421449565407623367669753998173753960560583067579820020273694216421673421524883610882587409769249787782687463504187423062036364713968166386699484694096852940614453313830532368529263571970405990381753023348966264736372459040917971401245614671314230383620928425175881535630441451233841045859756358340997812642042003343414833657677405018166797168802578796538851569957466614617663777303023109970074506538658943675761494560024225632610895970869800311093669669724912139673296082570469117104077021726106112204966861751326243138332548770650089153044657982791247499526696757358502050582510510679390021554415093937376554445275742049132173890230669730010301730688550129671158250503764109299539922012539873034993484212142595255925624955568218588392525574329640288291171002993439209569740329741093094089631856099185783284099407016663710605434857337776013461102913883578049042757175146367687462275193039597347063980687846803208047936868174134389470064907491863759176299840021897097663851697676547960509369269123524544659198283850680823623408043793065879240201704652894643656519139604617707053558020131549167122194960315192185506867645581336934260350994708906354973230974634308155257697267045502703723229346578423308409205210582740789644463083718076040138213283912898175795382300990408664214227234404371895440860573243680990651202547071446759152686419231055306757941544485954428290000464871999182592398154150044920439886764246475306429678464640829405208299900348497929923150202635982499695345362685232941356124803214063958234131521323977459158038973141256244953003547901297123884558682939299794614829913739701541164748781742084567574655033573756171572295747669504743177643191448621023318729288295715199548183160771205064783191316007864680767029109039276175200004861898456762963271896284070085835621502745926955082056636332944933918869100691606530473908580091312257857790806959496422980976337655121104063172339724720336887652843486499141906435041674525252000072629580955139891553013473823657217472330939836604230637895652297744347567426575827377216350091039759020450250481662939158107985577552975865921842226703391497749744042723656477374585346408607404927369049237738858002039891479608072884600911330141787887335727899997787424603195387213243126004024405034782551332228971189223226157257605601683580269037854795651001166259382700101362931978893832225497745266796076484385130280248659215719114528888214950754808780820235903299219671463150131858030746165253888017956934510658538574164881938176899566825446327325697651848716810158543270914307654248869646109358310393505962447829050649289249338032317050937785572508694846304116548881048023557394005813344610642447440376768195604983528953875158528054727280184080686999837467836053398778624732472908019891973218238565684369033209290628422363007865266368463523012181481375972350939948605694757827266920307793381455142079840447961822817944456929017766206121569835572811344117281010034275164833882208648118140776987237954104372026866166247675913041230374364400560314281495754393599431271131071531440189620625627441735381968761596368053039800376973394853610763654530743186165889397455011216163607433427355925863338672488239393725592668200276705531144035967689808467633205982251954978133657677988540286283707047253971959972369014165168189761843378270339057430110352182450465150831331091163022091321399919547399562633777180314334880709446806600999010016127480861806701605389808355850400712672870943418624996143205056271692823114975335162328952455128512006863122680318358705582664601839290296077316869269996335544992952842403116329470674451953132288193582580985450779558013918701500982145998239034368843584866306715737194559695983859428760238799204908954936282364200797694631142030982841261296579120324884013979317285118065010734498741775911088054356592981371545138208797007781560068356459045351723741175143490217376546745370076317458614646146650112786052721615086469997147335267003199029760895120729416525472282195511237149946880740984369530168248396974738939552073767605771198904928451933643565233267647922331607670911050554245924866880775644555540440711271916941836179700542927675649242577027807642920324453048700836925595756788282161254241898911258907933733681857214180625261657393180820611211484272425082838233611925154679414246641470791592015874158783803401153024832632105399816122650273723086352166539795362716533757395443605235454083754398018492601651933213508945625419438455220983940859235484435349038554511276087060214844701093739811417483955847167493987795658301030312266554894906562845554495969914092551417338597080007847621333906686717478901043011875179327923446696668079697180743970373062849034663989514826182076965618007386630844978490586107066045579880754946809079881893773704827926361596964535504140253031451611667186993281826004767689331057254006577707790414555403186108804001974753028419871256518993661911429518658259583474475383616717665032861861295478944496997104222852642735772389862697806513862672233472067104359287698146298244692217079742888408891012953552902809064716855495795696256489553039246405962633162567928554612887018210489148457183679244576637132404530045610008018042262241086425730433432611261621614563736781792208867778412189811159179107599360625056490541319996898264359337441811938218074601346564768945872202470307297503893640939627234747360804370201129983195352739249913720316215444289858068990148893885839153060687402388990994992298178091772884461772404806788203512580195830993846541611531012457915489645326238577640722794972419314994606389977795315369711676812418973808533729911056275264460375139938868646488670802596024939790390372763214492326293713456976106612582822910548408367383339213231419784448728686935371503848588135634376838003705829922588805291189039723273268369667039368886032406440823961576207721604199562108082693210825641091737487567456098863822898172038135070620247175151915702222279573501178008737609551529585922954878895960100980021429601324332568913694309432776539537908233846630932197615347836107553694752978642940663500678289910426886645301256750986896405695137828551906087355950772363689976359173724516124841168994585046362472299127914618694348430436172186319216871725156125800272311418658497791998046289101746354759135028236685375031198777220128522360996885756001451367544361221676550234773297635687589144717825424144765706054429511872848600276807775071116933002747939074965887611559575170259554491888157794664698142791822421672219313232259671880462866226904238512083630571218793330401124732411429706662306780375426424782337587262490529749028683511492401296770853655162234166021265158275739016464204415543504204025184848283289332852553161946203517550010919267605849522229861692978298949350503190753564697403336856225752215384101768824182233902467945834671640678313363292123923808000234631365880942778730832960778464556626771576270856792453603291991578013006639368652998575182564664369373492726446502052232865816124093374560007319708126087519628330951547193668026391807152712688843801142176472931135412645833759489898648576429117420053114910911892338142653055384984870358121885501536030036982705855461608456395867023834459596656174443602740667140544778105056703349268315855876190609899250368473589644580806863416220155838081576822659943607919464039053532186933167229938182792934614534713828200568147518078458797140747063912833186108297963722799531377987465415151285519536090256844702542570554943363137243155813412523848226487690966041783668419142586029335969354943179229547996264141835965429626106429246897494432879822252464982835135090293943103942133937822586243748719927227159328112905424969273976939787608877407111501065071533271985459020516221597626561816357815955129161910335862597228373883279808109538546241657632052440851109321459457237242225183306057515515853971291080896983332972875772347241908401502456894445275915080300280643667551127081926614658754537646312300502801806690873658753395061283181508797652788739739246146378638973539681646548227426097662140963275499321101535419036946241641703416513731464912548865739987002505686379813203866592832785406978429198978036985452003371108718060042057044224813266686511769422833745047126002036865121447883767539369336585607602561689986646997647950258832817784006363890039094962505517279844351923782252603848659443224529213112643232950145484415432249153310647505339170631224539099467660757424479162678635868781316179534536785700047691129137424230006578770956173143331847360892064108426717203827628561835015459570504953004596889827831100711722827123344531835747258061164550880743675532839793007547364617711780852409659192128662560152526320521930562868100699093489332386157821071002162147257813880579447981363947201531660937360065028069563141888931257606035416686096045558042356521087126691391592800442792488094772376833668202050901885341708985675562500074148240640242234130933483265649349293079481682660073971358572060817086475579507718486266193406063630733102902507458006343004650273052022471742777711742422538790350696783384457672687153978528246911510587584388065683033838877670489216734381278001872179318074715211304095286266497252213654358695636195915792437977151265003817698192840982277169748340566430948081466826007376775046688185163907414727639074102735584099371636782560109253998318216847169995109012780765553085359939114480899941168139697184082421925785065496642821841730012607558791131822973094370793434737929790846464832150067902930151628069261637848272314458099182742954033919044083735603327319548344280172154808876850934058239829355970288499267152499695606686143029757725231256027297145215544167265777342639265113087042183625009977720806985436648432288274135680015260075795605977266138423633346163336570151453104198065320607518837810722823738146582107783403715530127937967649444669429388682102331844478241512542683766411030915941686989844252897565802838760093689414405741782553071316426593082614736574651738633686889209804230443767209030103123498250188183116600572075960866710389154189642997847313839161929578253227978501569729128448137072453825685430723081879922650270109557350235753558493197873474504963092516553268923903850005277029138197902775212288174173255543684821100698705622290938710450901071936133923492782462380547287755482424128086518474562957372610822032603646515397757357171703789548654286851753116953435583730033452811957037970045865508109788911706005661010599654167124013940404644192061642867805819918080630578711436031759867861838847562155654347826178624895428396447182351763303849304158963049088774338831505166400916317985155655127564807718604500599240032290498999252693895470894119403014373755669757809354561552804204590667850796139469238081429145018404492415295717515528074287873910320964029953136342468982817007120893866154291659474081471364617695165655006616610439303817456807647796622050775479637357569195872745884378906747745315969167323684440446172718239314226956437417744071821608045929535553885422536695240290243799652357316194780710005564945145909463396158845999227539453158561737575627652527773230886397671395661822994168412328852613833429717983505033438959839043260184859566334871181544845799339855888880669617584937943258862354563535313312053888273260540284976824242572586726022405579193580728007625592112927907503709523063322906745374767782902845872262476340863645379954373860018733834464823463256283784858121132187831136778414509902541357568986809878469628913755043602628632511502098596331085458959594079479802567985465377688077987445678342682626444147160417939682837702951877729269665430337605349620444483699817727100762996919256951175511464583730449558694627531772319161773500370701786717297121993803431603091672966097094135813252658875702356880137549071621205508926691802066039495142245482833285382451213248693435806488594291973937344290708015635989579195130054783626422001028336080164779576632324510571282650517324124416420766309124122747662241553293166607907554633091736857696564002021420499057819971335007365073555400795033002519634328426409192992746839864362189496951612152928255545355579302485699541290090036923662011568846061608239097991541177745396632068106573124187808074617381383623538282665386939355739580108757992128112532056851399504069268501512743279935010393378769125268791798254384960621308823579263296297332409127218265916351681299059750050215157284723600490345933813083899846066203510751945989814254080444890921972249485106086567077559926790635276508969036876706678978614269680156048968475431145014557169214609926176711974881138502003203812336421164479905332085419852429443816260696678139754017307627620828675367108196220704468175733378349389255331832638964213711173339386737966898292181601513879792840251533791545696377859960644971997586416170470353285974422603886782739669810900314267442924466325041719475236578621444086588404848235815620340564639925301375195108285195085775733346709020622317299808029164310130509753071961972287554923332467725012574124673532293115559340622781076099825322483344177288867230439235125854125445458350966146912520509483965781606799626269836923781605206143883665372294465675254361450539405854183621933699551506001934697181142226995011142901822692416356553583789410065651976796064224509942338863851706519784184744004854553820792096082643934487447593978989717426767171495832136667598424029982608201488128979537075783789985371586993224351088387052290701523439807080074954560216701674560655043276468220927367209856741078226131048036807431612595589877852435386990632205184319458296991738375352982875861045123544122050442205050114876876521835103493328109703854621448477536262767219047498405100451587482263325612961247663170710249641745905168569635535098906599413702742131740253495154315819063019485290074645582328744545952266498584151505297655737216204222175245625790579039735474200595228234918657086806194694889023766813234998916295815061363756150614771215469959436032738250613285235522517074690922168193799655577467169795561695317751278589844146681508650826155060334627436719330166704416086969667666803838049040988917575535842074227076130472359604342391262849380090568615341179116444463602389254746512935358650626296633924238240984222580479688241823342918886965320769597655885526840492138429736615816602287739835983399869680470453416397539937429817863690463816133969846851228853122482863926999632416503360064157260941992913826963304807759790616755951622060195647660631155056048168188786896079095738710967727582263883383028852996411780836685806494888547816795845148918198415184842156464237340387266326745776387608260305622998928637773910267551875057187721097474516850370210414516906498930749373036106415690737170401303352772136195501473640732245033597122471059218701851527710729434956235037286185072772177797928509811059178897287028963853708819389294436291715969936141071418329672060655806377742657699435307698145717096699518555502974144752553144290455447789659868486868054986731849927847468562146265185831148236580851893152094039653890113062482713468686743562067793403692710772257369430943867861037837013513439375721128424355864276265871613641224859238208935918171608982330171019315898104196037070842851051589357174580643536052197546186979930952103069306173288660538732198232516389089379925152262174824918747911417852971632039154563114484029486494170752021163558463526409929253567362385592495548669121487632375876637449234162969483486694611996726707526635653501459494840213446282619060052994220623930812465506853404890335233546359997519022711398402076762650378055992369751469030357025682778629813559219762531052492750886594095939318027791155721379888948693054086388247426567797144623382561306368241272942060137030502987992839770968709545126521366293316577391361844350800373172028719009478610991136397791238795145073220640441540404704410339251136875714605009460274289913621290064002695538516523061050654100689071403157201524347471467014717789139057242803823927794110100548918155821743387958535899085955705099274721633012258964479824469665795742759546406166438411836963290027834486144888474404081086360039874822594616139459435674051713511231586900760292007366324002846858445692385117313092857012732201120199450878071745421230932088816632233526667236812844593560074666200182998073392688136143168747092788010324726838656355000763394522799139625556579816782624074134064177014615401877251531460412006522469492971074896334549092838765710305106346582572899227061154381315556667035771261744743820275597364614899577463285450602527429919419079490127618576829552172291254040692267734783667077638585901873290462360789908614149786476411604132147010458388432341688581634100065593605432761638914957935137467494542044023651273247651071576815970469105241741268156205382724086107428117296446231138114764062751338144049276733359445726309674241520656460075380267386455976645914296550930223304517267227342647723540119183360758660406779850642784359008182618176155235330444333203836961852861569954120577070201444339572502812041285983876836482296106119270125995222752209903443168084665991237779639747610518726205773887735477975552087620794320039781124121975551575743734673578039411383119013591554445762313357772271728091555486316423606721663829701440471003892638503221187597698548505471066718612288103037862562454644100556929385015666966129011202825576523252879941677278374272662823518033884253743104451308311196176486997773670891320880296762554770654644752750799667365962287439177914762955570266076015772058208466230465045556911193937000583177792461412434372705944784733367697018578822612746856674635978356649937643959220414776481502886435988946206538559088690597189651221878126248793534927672869373656313076008874212471711963073848025862390172074993468130331262549029901725067545083859319277116369867801587163479613734514378482868417005285148848974980784946010931216730786789335360787974923239257928910721916800792121877768944099574895912657838397353200839141115850482292780820604259619876628965651280196650429087568810030096465415881124303468987948522984052337769894712619719442661637623896506022126717217453608198411708670188088953879030074237349135505748647239031933775082138633149067209583513900613348570569461893273785247858788710914021316276596730545000145134823760560441668542954468560510409514433399769691525063136166184278231665426021334347339388811849481024688696579470251200435976406732668559762347978585543652581462390029044276222172991558262502535406559205868733238469472075453448044408288690056069341556013538460773283723647375922426514943739928482149272380446973138181332349907515921870911527339247983315007612944628477645502351962936357057558576186703218909828369060017213799557781456697923354336042071330497794509611438654004038170793785316704281986729657013163093185789018294448327279219144859991267134274018853109162221125810623728780142524575277276814813920932194481015368015043694238967116693350894300564255506269936970256284345379843837212825390355843256727508647784597003480619783059402371129249078429886767571345949404539147801480538070417056736058812852566761078013123437302050594997336400079027540227771870461514910976238901298358922486969797656601565998085531161423255859273313282939262520451912627412854851717124873741886777018581110799029236602925982151959526765265625454089801214238016657688114108318952886994574226916647657582459273428861034153559691157498509433072419193857831621407688718348594494900033911288863390238539174838169262028408696669964414038129304842839806935967691917341835537750450309614468219127431170553368589115220317593215617810393245465723678654561299347114601249831692048490130190044742256692088116609783163458016208558323781962634153728929573927189769627694775864546772334254230204600437785115750983276830629236271585936262219430600554325053255393387365904661290657378136381011700910795125485441372665333923372214952642220735503583995761601164904472882320754527574590156875978332567198464856412462208850795199154195456176289967194386488362615920367481352821137141208775415034622167106829711452288054507070529200517116402039605477905027365258385254224196736339985121099879277959278333726410265131833767127866449160449537257801849886225552943808381981932452096108382694214547542941127959127928213349072296249454524891404972327305034623360089189300080987893770970871776534746848185540756730171926427333135741867158979186591014168229179867608224749172799226026611510756414356613417023630564311909863665340639271715909397209639082722957377118987019247713033015958780057085164909512008916146839762070637636735985370133524203932995719024629094151065932374430138437384140508570936906303086838528630909640180492947823181010927432189975391810462238150180767735963945237638628173882565290293423526314313062007805909631041460456988726439579589600531601635634333468439490174619585202864665078069779456298034206734638714820044044886223185487848839523656041962912347600851872704618300737272478504877189813071364924992876792151154353388391801802754372458768922916503414996611244586626255788611768985609389477846112361000309906884797351607728303076827458233368970913811901001921548751116193320935656578974886451305521945925193670639169673155054503438612698381300474500384931420706065971221081263539137519496607045342188676925872903684509230992708030106337270737160919130193463706111608222552150157766607224422048446111302487796314318385232403434247502797115505607849737298341762982991938473188510477083884968406161706475370908303104909733598870120758774986102360928139730973562197728170492178611133039563334132672450079625692413070866816305475831603475728548844608279932108840034537495635579106213126140586246429684543886469754270897208830090014061967913459235431607763576274824989043987278340059756124844414597996943378560468644797510151087282099708845368914231801731900625334478984978254710432336652117625624523941276347640120770470426803622151797792620154228833374658410093437963711787240406042366625391949796239028530013242048034519453419532038544085227614998373496693074843321209384265878547898239070709277761403527559302686592334690462643445569319356396871199410699598029732499578802864758003540594105725518108738964345504933161566320327892324694754120869046126269343314471488534234686910858991305793392180233807977477194899767257778365821237167051131306974749328675399034525026907508215349696819922668552422370325523708424264809909138256758359736839839595460283459301931605963549426542619033272292809510041534290325206691642616577522616555967701426939554990499194837159000070397561769672259491412736778617779553003952831738499769382172468987435290441576148645090977907086265103176190677488150212054825799218586127556694430393798120811563599601926188508668919442860312867255090698084151394461107454449608293534845383123960292900561535527365847293083860927837557487584710521569547330241170010852814627150093289364562218341612756494207656452081796473280643121218648151308661350981254789631460738480483471985296807110047822240115379361038574474429313536059063185694773040068535319302331708456333113153713761214794351874706086328616407810300690859245313615956379005510706008590871770853975513238518307578955782767265165891645764437974284042283050787337152955159564201427808589218520421071482300865941951728058823741594662029762809572260654725181818198217078444122999746893354689651947124603191213867669296376671353197596306745665442784804443853454472327244502838483833550985660225679774559705661310884710540706109736759250851453589782328614482090622468714613878416738873003009405897369724537591608961878858103443333037859611188859463231580807949338719488030174704366653595160046490222013299903592628092939372233516853611501819563886895234085980367442746519160481905252576488465452756501121092551708416252926255702594787759156446608871797229407260452509143115081875212710212760722283942011419731491934093876483978740215848755383969545584652813501441881438118506752448600303340621825188768796348921442792245494658445821253549354680167285622601277052652680903470623682881637613391599700112965349283029267363683525457501087236001119221728823030719497613511957767782925270732872717011480691235238511744488946243326827458555763362427175074611580970419719759910898976563328237801197868090235464145325572918341628256612228996893490335577605114609219497020520286476518750134069362483329007114403713833213137632236086563782649227004049422452533497084174162749744319022781016626561357571342422389602450006797417343383024209107274177532464964099955404167340930773110148265874618955974153364541434126226245209902465899239448394128713327794609090345733882463186546063976435531680504218481027094535335229529930451174647094216643301628982405804341841186748956307615375368302696823974000756038255000630642619030983078356766153514781168224090564521272957379537663566904432948342829680046686775665414895630419622164990252756206058952252447499642276502268182441266256927925194981680194262767212087124851670866234847542666237190200844931397631199991822218506073693161437684380654635863139660766843416617402791004347158960760217844983723127621102481460784877488255627186361395045167265257448774220676965307258478134373771885401254363496301342729419013535953741530438457991783164715213586720651417592175764459469136212915522258413730995268413365474257772903364238555806468644291562392008479725444927795384204173791352636016690909661905919050138409949644502067222759982382486732544826675555670201530632839099497577495156513465982673221078363258446831418294317854638884107552196045174837022560489902614451653673554571098237534189307995784435769096141796014281400642512210106140315437767927326568539602539473301745786080948017324875303113431016229634265648366035146254527605681560963425124099898093818471569673439438012866997771931635628775212477414650271350638951216900715006379713942932963916128117796381403851003624270934072506182425610974609835359620358463488269789805196637750657744249180903184562812806666727306117750756130435716603478290193726059801145129004534109337436823500894383905776000809505551169010730705923776393739203516089330912609396685678746223427383754469467754949540495825047589850859697840090142159351056939714793779550791648884034702892745975212144172465642446324603347731224531264186573469910295549203602357290712833640945499752053431634451175177395185164841914675786972615197126577538656063633965036150455825077844142727342962783081571589276202442090526695339099298954992010608028961894751493368084719182206687901182963283798051084091232173930595844202648174430772091940569972356393127807758831288299055281228169232045170962141039464390718937829531073112260043653206613497221954233947812700572150609315495763093673750707848748447479053667116189762567992111439173713346296604396824060958222440817646589029854467504807255392240006265786221896366356260466358998154009837433311601088730657201051586119324414089745802369673940530011753906959288583403115753040282172295844709391857448215927951161777913654507336182510035500768531003602496233854191090287163799482016619160214035154941445680717081558866531548908196656675862916719266372347730085857379049727471578549586206884305667672938390298881835215372098578867081375302293945870574869281468818149593724043506631152316788618305727990087773790657364471603948580714133917950537847331148224202530327679933868395083567733549808923238162448450388010751355921961886776194082699841443211276099007637840675537519075769312472928100385623846709462562925173154579849104175223550591907123561257853622344459552328362579852159340662148075563525813208334826787224964105369282377697539196188282028940786425418505460902177834866861718586391497287272920369459743674824281591719543113552361073784445256133383212028093406681111213539331901523224906282575590342129776528481143120863513991841864393818750023500031278155144481224791852475241901502363461773207097580276159455124556283888941635583748084075700439466819361870732977366865481353133954790562774573092374683102558771834528797810973419408286549711119551446215901609305662465191816385938786360221688164099876423890627839648278701042446453694573762897132812793941187800331544427467770311807256666768220372779558444965550919245512497290281729808031513372524405760904894780851068966294417917602465069302519977002835855151945266197543316845002191668836941158975914001775793066830567706916208494324392262209438326666176785147729731384690372606164829031754910509937370341768801667868199200412330444730582158542374430988950100605574667712435060670146856463050285980080316612842652061049915213418271340611004271389447800980577193667126158385277321663393830221111735876985757283038240697025402961064901658680195634537338698737186501133160392466984053792414056925850657140087558515326677678273034736444836636414023563555332544651052577671880150576748791646797875105607997778034536638205311086670887778452346813933919506865890220561734639440023467377653923056942533114134538024315172898522398396645280760780174309480497987014203985965387131991690188659442620742785715887318808276137058751229847965487294564604707005936606021957520780303572184458498086074519540347629530541194001506340946806994303663671427107915768758625613539101011539832119221282999865553493969073568583969031518774272533066333063925585601113747297787793597499095146895634969522854463886757892384538004658763100777878764297758092043052846123999495718539398187707957364420857251937759852754899288087828444350832346966388942905176665660800020359017390120329904943452489114919751197071779278095832220979283753289941598908813829153763778768316553882100120864504421961945866526740822619144900347308069305031623451593785989747094755297928445200328706553648603863048054605141321159690134353571871230767091093640754368701724524372185103598011248281392960877750596817308217529343927941577133295729401336413981860535085884606340322407051695710581579534219257682252797814495252670963826835219355152476582042212346813060222855288896721450583412997986554617152756604195072090994132493456416028748896910070311955048249163137827969689881439013315874297415848215714033923067346850782843770760345559315886067326344238868932547294566949288530487383761700586417766209325360397714764128684354621236806316682165850811807730251224580253184153456377079605236995474811621356365443410478485520603740355764871048506671451286181990929710151017032688196320377596569350632006592197622937305030050625547060398507779971960417882371855658502787586893602588640218805537192047565780466437361119558930902209152032292249614182879307232471028006709364152958413874032546458186737471432466405428467325050252247500956399279545378474339913009292252582586907149331712515361726914647713062849054688961068932462136354375550755689568572188854252051525294158673925424808482373466782728571836868070500699413664677537646832516681508315780584154204701739048786377854018011965726775623748271554740546444418207136669194821425427708228063223814128289868526927385167884051017586816447230681153694931676809041483247230700509541389360620465377247622666646350663047335701769148112564383583005487871871651489876752217749531759163413167349683573155082130204820890875993768322464434927881772137300443122463265549942840976852706047327094153974797981131502967680100855208662568276686262699598800693758060707952210445042607436462565175267570937684972719339800008050250478952144736061928434461114645091041451247490162090308236740033215511119835234733497976149811905863942365489010063513702646966260490577316619862446366625314926020602067828490967419968143798246877146278723205512428794805288859539884621215333466967218849554761969387389193517631662885065055817974447379655156093790013811035242897023900188303322003219291444583350536489266874169978941609064591647334215392832739142273440537106966567085725024476832578947973957918666047728533426651379577209257411994764820157925615162863423946941869401277952299339633703476594073887975360271137357686661677212704855361238524157960623980399641528938592020114432133642248017087633725544324789474759177542941047559501399970938821907229682738838188313973210484960696954655094500229391851365446948200931709271233667753543276550759285142214839765872164009761090072021603600345468793540888940824106485732825841147181694590107872643741034698245685539354214463172204355279002685119118970388174896263204415834662864620083264379263116542232526461439290187919377329634076997853684456434407396144288931427401393947651384978320861626457941414528546403102029174729816244920597534916242600456355776663423852553266299528916355566776185509099348315281925052721153533621996833099367836383755945946499983813932590807166931848632987608362856745254914261930072367457950474150024663163187497169464596590006049397580039447637043637149659772097018600982089184906972068014728408365734008025956703328124083360782812630620810343883484364935845442092593526589295032440482618555388580927170197379952561164843545769214821448865964374582405361912297956236673789305525734892460040845686646743524089199053685773963569900083681412887017473026583748027563755546395662774999090229955427945423822774017161772262515073990342934031564918370655054721625177273388629399555153201428643330555312104993403878759779388267195519904178185832887990346818748147059736129847416488633686480087154724257015384101886029084293110422205313656049266446047739128099121145941138765577396332788333078431705349447130302933608576935892949835840891737789600109289070635471869802378250661427675200083801459542111379132876831222338553613161535885774216852636038866337790045325252316857360452454889976664578397102149056205124061087410926492573133320686118560888431504223068660428414828288439006504157246687980796455385006202273227912362528759303196313515353022565953494873354813338520208363525648746789560871714295165833716785103302723378549151781974611283343753807439032384258319335003313382151845049264894893694415097940806292961079200877365949377201648110627625312319747232286151188630243673263630871086308448001410163561770064944705089812745931374844481151048343469822422296113996248132617777303903135487284702708460300638144694857122272465289702531859469327172547492073379721849356837439140059617671045034005413327399679032271303321339542681814533728007592897278907381926418673214796048568307132290871519720549158023040453950514016295908153800659673929789470710956536487942272565084061284410750039594683735616002904064247679205234710253030490285229188045769949572589669178214831916202975898209212362691022068016368044964214235229788169399802106747922817970657437911956183058490267234715020639847216557442574662900854141675516309112194663682827706847268565214881813062795140639756715782993170053640362009428009975096480872232413359284497700936678469019149419456581714854341657567396263990220634461554079486916239221245537132971463460634094403188271250880804760694849907572528852596774588735168440948190702985017118409943637365808420992254988553140574842238450420769364680210781039866130152890505862990029226129436139838177759751777381572021139590154435835564518585949614098811026839799515687296532456209008750708050251596477536896069555712480051490022820937572489993409420210946081451750959493404666919478064541704230463764875396493067596514534785330114890849052343586328125173265013982163624377271259399622955196689244962687159088218148783659913193959483783979071545963483029468850238860159530200438491689899022122925891953181098359770135788944809875193765558128642942108349943856360828847971850343195337715603986794267540482623906976315344786764291308174368416399612503755714429632038037782825170121627276371236956350704558861691438498179609176332551710207942105481948937764241554688153070735845860378874242780468935085404683528134741888348345537449357198465465413518315756409488826303851720962297150897516559733914027198962028215897498425064498532888375469195294781004829783850551254508953362093246452835272706358788526732838401285395391444958753768779841827056024357430863671716139098655891346766422921614862038971018913197984115946817431692595615683532822998609004809804033532798040749043283207887719335241058026883824237732923228082722026820756650893228295763177547066142983282197450326813766044723101736623556499029051218791026929203274518963640187422694398083307599224434337118725869213234641089000370057844070152601099303359852307379877416306871904917405257802021526175047935431935798255951405932463098022129648445011476757113142125480013444707849020930404895953192757607217218365531363613067122674091896725576222788570856822408845374085198071929275486525554624170685085003713029037096850780855631945893369365154947595053458333334686198386963612730113829239179778890372240697301164752613340304752115917964186572298349651563553868462819571556602135509036427357564970034232601358536097422210955364474323712974188664002471133809818135025615524973881768396287774601542293163154310497733603230187715066942369009003621591005858477532695379040108343567131034042938697718919374215038987183721811055205787799283710906610334569693124190016471878967823688189569423097053535760437204096706669662856915512208071868195347227304487560482096941010251583283718634897055611683152030156225085786901000388055236615594670571466949073529351571030308561072589538977992732520581759505818173989247414039971942116898227635529251262095752312286375781651998986947736754074043325537671430375958399530055316741428136120798683158796569587485664667702280588771909104380028194362569332239373967672800271855532382929656205115378060042290611259695251774293163203551445442383039096860795695772990215693244778829204280417360274015306291540648031736095429254334561597130306289400017254926969927739092464654181032308753071959790651522599579499090209313239975687052798635005806192048248570310340441545311521699263533851546877651257268054654806672610124374930495786302413252635012775645266876019752177728769799796551523593930753320096145216467328089366087808275376144475414710536422148402691989686794405292385962857946485515822415190747793627394850751063680142999693023236122304668942975724039112818451668385282524777693235684332978481532218648506848875940571738943482750912258896177876361005410686941243331536078443759905025630910322352573623572441063126456298158227956735067751381794375316299226465089611341646455109569897330223438211558716597592596444880589931494923243369425213405476004698927049951806177501827161692856616582041853239974976987383788331905864366456795454515350491648501301885635086542607946465757523014070417605905395377131035860354786895012152093725070291125190530437672966080424311546731328782225266603642280704431943170068211318367010908755235247235643291225767861281479795337630795703046016936423479529686079084574733936759842510961666514740843900861323481981416930128948545276032193202268770018690009912475863488406258975329658991464857558662233453595609557562194996302027590262882646207962545629527741976485068835203254702248533973558245451557188714208600251814741627221894493183469471473187744397502132359640314678208831072674343500390064965524680034632135744069182977227952382328680197470431932494812083879006632104979412068802533000655341940000485049225178952130796418356637523926972017820202266066594373396800779608400838856185281278153887715922873602896694530699030930993969457700945549901127692032169535829514483149299791095866648779362034493337113846190835200329945242541232155290948658496679461031334689623363356049517971412509493427195611296346031303939855240075021072099392413424037856816839957102597994506275683716571601838462457273452593700855142230554394990681101019480319619718652689255266039384158198466577869452262252362461178330330261541147734052063094232089975026978223843244052542092745982583998820346454808958334148066632232373154171258537222446539925452041638131712002452230546745171552039083263689562875844634143152825477454805493503192916704192452805718215554673037586036160599703800595240568043523064576323619062440782429264022146022191767722606578733957583299879833425511782445978921963743827797560647689552509590036859082574785538694078688838522672714673865204794310346510250414226259154493854680240054532303101808212654701641024688813272742872521093970735460936894142086468883922206318327838332561280278777685807255165145593558156800017744876797337834048523849874012545004927624167557772929542344416547074818518071975562195872690284809546305879455088769142617530711836422976186814347635994732754778952251959813132913071803891818900608348046381598725725213802096645114976201751690939271501601544935009745556719323833496372302375403149172669879282845855851025133163979626291738081595763983351579084308405668613196496900696088318152327408671565038617623894310084088389382556432380213915430560049839171493641483741460600494315892379514256419705695681525575633698616729371482564531550239089504790553714184565300542483919524599749237321396523485863335928786510529797316255221071349515329975764652081044597639227141810210614871834609889676565223856743607294110917934436645128147253542112884706755664806485705292059449114260797724840374335174726706102714010249004168368044015845508537750906736473549020360367464654346291202592860651321842801206591369692971923190429978269336803633220987841257267038897134417650755382576777048130567154628873885550758866250287594378036748674883319808288881841827756406810123505222644909868196864253911434354897939887388202406258384663781090073673332256579326552364015611446144497489976850139293788666947685026099187627744311560303464591832137319332956398855290429633688297543112780209286194361886308396028883555980745787556571046231658734639776644388652412961636976864525619519067668228333281896356563593312400278039897718216832412188591949524291241284059204760728482527037385215552958119939541320308331857243040260848145706017392541477329949958888572004675510519623073233684314039661732022071503888460190520397401740357424040166179588662745184226699154117594418119112770063861481501824589605269115425203747087986410909373340207947231483086713313878746016114514228093286049998499285563126782445953833943460944756088908077821381882734501065773898816772891523005244771395598120349330782764821484584657232124871200694547558872893258181752694528246328527725039035143849116619749254408604600285874355070338925760498203707622999888827201045096761842202613335715648865072311711163522193646072610627589808891447666052036867161567127111548312462655348523826473926066449603446202528964287440572574644860572197448071335032909175166185910651981839785937358855142158182492479838777510730893687855995426338451183344509263312081358844209277387592999471896116806856061411255567225101075451185608590796534975155852413196548897299395912673760082621085772249904602354389300669541539144776376909933912848977598080479916507935916046632977236058264589201310846912578928937724858646335730832607949394167399375332759594488586895409475076654706897976465267495995324963669885064249917007999123354091789651689083005564262634040470021446651755958263476895810669840740749147740619029045508307830440485227155413551964091999481682421461781616399449389619317948561816160570291784720640373991479944276473343378717654780045043905760586663293472223777369203471311983805699060869444378283733263788427195968705486909050285509150225571397588126929487970567099357020184583226736983664676450935114003171338997926547385683892820899372431307513986339370712780249934382360073312974782031507379771197068701344396428629101622451744840112026234644816334184258917497271315389910513379209134191436401696349352060256861211484969522784227908207988651753587446308255679341219734580448056268532905162408768499604501303010653595963355659539661129732345833649860595014282422038278842210053177122701724074926796356948100774531768467329957269812977777758918983882803454918445145787818537571150775288579441479916184388446884116796937782588721179564604717650495286418131972292840988985797786035041319446548776370804669517135818811207046391164097767665625156449983671078871854597344775319596217732271650072983376339271159716466796181882382735982187924490544304571118984855524114988970833914396181338723115030260172922242792415986874225038454054868585571753467191579252187794950916264978046763283054580811723869504724672011403046793525118251065816055678582839060851887473329013187546227012456485506943015105073696616129374231485105254855808320579875218784025946255980628518581157557085301673321969122177217340155791219223908951388915795950162151324690409897444921622376655676745644746325826436536167901403284089055465131316434890143288885647837204689828063106606333112682640486277646129253555168862279612313850394555163059839123585714583305303951120019819529885220343156895913469092507715832329196859030010414755562813314933656730969694636229739817738153873640777302466394555089093102091540416607341397539090839867360390574491781472843172932457182091418608537557780635830778314686941193687529508394940572557276172161254405293069013728964935314213124968202023187409267137430557357002578760885259884793015613360222249599069545057364674176450413418083529744954509309269916077864688974197296658437841755261254336097177686548022372981800407406468570532265603844419890036485608327677678292998378671496328482081222516449850265895477745501318317231102986294042040313295968574095836692315282484203701588862283672088102507521826520584859567808355873440098087077382698882046480484688067565952451860377263989653921013219206319900132135698434188616388966573128316877365008999479271680772342668583514599278115784474582287488706214156596831670326849641586931981687579182719708824316450663498095914528889700594528003384264493225992215421248804987385436599350789519110610618326084763289092794410906552464201941144727970758142166726979321641367838537418875654499101872351247875158472866485868226809152970245924454438262038713002974246308774347885909429179538150944634334627069902895860490290496971435717377948320274354283348870870613940519490629879912229007167294442096525281645225037653060162227311826190716340475841443902387368972041330289330606665977131090491873991512771149855250444245028461302877583464146987493133984630640797476625825873899049390571539001132159305440741418385803548052990185706009229420072959386174107276862394330096961965584474967201170510248138561933096539488677500457877285560448721678468736970216373000226284457857461672481759668471308394111409064294228136138845287392455724010429369635821315850923105138496272284632895457676121011834491467524677163800998315491711281739285982057094360312058417886683723240659989533774089810702260270373365340481730659234717660601069909738991378567353300405914507246651130410637257294306987488125708825157023251642904025893610143570398190007560327255019952621144277592118833001535514569610214049913975851383977213757153090008761552479975923060698348640799397299866072299351507461874531018831032890618339402750700024811490674236637247401403326018031457392491741860111845471215404678007900876791137465152688036023621364164535400433548399176796825918017835942420502558255402352503494916068417872062281051997801847446212289480831553065806790622103835323837427585932784693726049672263687637157790990586382126724593660925541414237048399919354522850191381938477371596981936318186025868787180803665634554172037289821387837998497493847461254059380700198505648253368320357397437763026920715801704468913372780486640821970633404768766267675989654238596575734199791742147045756457269491292663673404592860854929077574426545054434827823426720933171900551619302050576872120245216419250962356320152931158935889787113258561627602159613319976816547443946999111648465282704691615874114249132041071604057014927149504288443485699496057645958460635945564621715927431992159509913061096577446577234858489872004796648603606342393959323355586988447883312530311174198137194348885776223607807017893642321159619143237389274459186131813111380058292526127968156017979229783514300262522254180996541554774081278150488068587629718581393618308328276441520508275238781582835836107402911564207653978959263521948136523763571453539750437377215191277032380089983360077967225619746920382574595748869823023545426433067563015364606373399459407034297956673631799005532421112836575208259901968107027436861267599915405247507585994541622293077865117783478509444420119890158785682823502643556022174525015582345393083167123358329819347069446986363382613564090831786289289744680940461551512311453129740668400318346195433824834557938622132250448510238071523362176511993595197760599396254572395881793394066063070325010353124263874711280069186083818469648948699566497614421237553864379697763876919921737842975644094979273237345856958975070697895949699633554824112417211033011469981840406730386862074031279937719876125055959370178774570221317648228858801918936518134391660749804359520907660075605427491157791094269668655024209734107162146783736680991671089179410526258558025005760240628117134783402306578385464713064102351230585443361898849426358947258427946267449724106606690995000283719433503027531689123149953784479454353220171005414935118331648190302509986267076701192279767553249566934665622866374145607323080437163474893829700890859073000648675553295902936239071245555166382487222340864535783221721664858807022430838408797312620301459957100687978473252238492630297431617651422945592134503020458728794630756250190437107368461426427266337420307851390385721536874545748090941127266241456528681749185509675965073385427773038441310105945727668286414832321104365912088291096425095128380056555830174232969166062285771063598318219116935630947411769543655444297829596538635357482288798094557832040855213808725702963123470049038455755312166110621903151206927241979210233222809156394863176748344819257056207402343255919681476205264501342710269246263367431250238247200598041242343888414202479317297152694138783701127957492704458274566728143142435868808459234512928749932270899759322365902519543315096416007060306688277703052070978653217049686052819506746194685778696699184263615437471465751951406499643119828685264424611353818748023097423339215184075315290668140127228180754868233817170999174834397548155044946039860700001898509262140928489316692659910145416173005786539814894015679902213300557549750434390852224551507489724560029833782540035058624503974276676301153040640966808647119462671283265618659533987872033508355809117550896391157790933954511550037064005157996496255758163981158230592782862060439032049331412215316212426578326319438553563684372663153507426004709271057178499619218440934471399830403453343434208807799200666730431262553304928439754914363075274890718563796909486003681993744400428569977138960852027822939580530544114074383000987285488645263164344999498385096241549960088067367790793520515725147752759083024262185056184278203691694080263375660427936034877730409250389618622812456011627694178872530284639129752136626566207724633823377385831107446295328797239103212567000514335511218345439447314578087488211157726504263196403433597271416548706064656504773399421192466571586849914789914694484231307059323900628632002079276262236956530602343626377032153744631250445149077273121472045482081622008128565356343561512658427159884003822395399221853281145233639972994777001049950791535474096468792381905856511042704867507055256938460737198274066425223109445924275492588073711929849390108774032273840017051727717570621707602619821504035631691236178600554015568290653532364409059854917966374764898499824072637556283197576855590734708326656746862480183904660680516963245616758694243928419167157407508379338860551513439487494444607781034674927131000001047714650239482239604987876749679610660803060705046801086898542611436014724632110377553217516235540977829312352739820931551238835089732893840555618679380489717715312392803176696388523887635998056660958583740525863123441530503801779290358645329909161931863954711752978833654384247298314138210449685269468837614412972040022175376909638987034116964652003024777914444054636882856636861761090135324801223577780989577665436876227153057054504351023108538372295718571548759261865177891725444376107265119571067710620333048226722917346308501153933245721763048679441573572621907217261859269234896376081444795290944866004204325479213725796119596440998605905970969887854228212656929659517490216529992656920248171060412852257932794241760538105493818075391433645025786667315772123742301550682771890930234819662919039434632789767540022220167199955708529675782479234549872661479613106301151605214773251725970701877091154025711047046169880390848345577760996382682846858272655931940850670151251395969186012786949088564430491173224247159794581012495358533044173399341582065390455666757397195340610449179789491135447438650765332936306422281635301408213905491040125501883905455363458204931922857419989301202210154901843055588127389194729706019599408685515115506394231175321224427627961436045479404203013891862969111334428898640507268323089577182225804870500375947813814176510532470685769260415758326041369809705096268404291108071741234719497695014441816329383406602791730469922948146846257718806501572247590749933729062536228623459792709329550042073796836604554419325767281303136187452027923918707988139393375092701414222998782808469644524961809673916511480768174679625146644691596106766108877683411369048480496796750607826315344162353923532389305548334226086628715974869035755661219219213203863868997956230768277005207890485358818467400061149769673613876402084451994147978991482193005278651393609787315106086135433799031733181642907441804797197892482234161710929422457068135320264946852333819981070077100792711287151179235586248993722331160422337972940553102314631817295974231916572806621010584697420371723259379925104975303432900745765369785890188517005786287839482819080298072847504156397408511914666740381415145805816827813279210540540863972151377930983058727965793836630774148649468251757763374665363498306750054854566565707544578641112114533803148232923402929156455444244691460860097701720738997974494911125768320252424905518584925605300810774156763964283805280720432711645215560616713539631217647160655464506099679794901008775703482100823538164513063579215590110285803120153664883322015512468133437764205145200993823467222447296370650809914889908662164328252451552131162701303942848113129065759220489211773633042919198312141503667417906910551739726137186861129399067064703089343701221804456817900948011722463011805642495983903178043469082560263650432353667696376322953712512476643137871215709814213723715774242311469385198385309127874875090896068615976513365134386828027456431345564808127239726261088705535106780435956988398341307159662808751856997538039555545283687850330023073421718375731841523769953153952122488640940376059172748504014964219669562519172640381303218382657478028291575861070377268035199325815595181507570746135745909075004051417698550110111022174177344431716580992402364445254167435813358108411848747374287771536921474290454677808367882063485348244488244080867312001200220980997582470233493831222158475766530351938133068268067699338212324981929171148831276179482944029342771700126356419115955786166485324317278218818876201596013445109364489603805316075309740376081626531448285461997541791742975247846806340974632157380900129968876931667891239991551431055141387412452998017949649914615927043166744940469970529284497131814799509254789544211005227863095418795359393913844799307111138564682569210097283799825287653513583120605590973350736694301102935071010899490106616682340739416111065049807897101362116588159691312073612532197098880174315735592919427415369852057569860779656050031619204635079576952713502785120946607181254352686002425207160386739228326250086412868260358678039330003963599812254754516364423102440744281378517997817550559259354800841248471874836137233103737010390241585034180475731230202701689643888944679371071619779263554850270758528827757805579381248361165829056881026713091962034626937667950655987892010286020367815362791417150303758220948835754305777920078446001222478944620278518599410348140685613464443497048308285507920555766084233776300971019039489775276555274831075998809492141539529725686285100661911370678472325857994229084984412997463457142509962056065170299669530301641698196173102750761214990182511413034648962129131558883008031675618200225159423183459536816135742159368388856434118236114458652390693879839291774386208855031197549374727858102999308873897560178541920530192217563239434271020708257608209825550375369339229396893270568878371072308217613493475709431081560332816100831189319536131647030697851916972918090474529332439991692074885973603182043836885041912853878278477343986891391579618055162564027810776978864014447521511403467890176811551481010286984565630694399888457120934722059866048107376077462928743374758282465698896922849070972089629254603267603715603586429653732717102847471239435007147300447531310430276724125955137886683095026956951149452496733253832081939096446818841666855480714004982805701354107710547957912701983682354808622971765033562720682098578365369294873224261292601244613610448534564753395296462994336780976481230671844363515464537549280662320838245115121591339500527035675650871301012166276859769190713229412941848726967199268410390900747725814281390217852713902934189110730758978571745795527740083050165008098481980344732588803203464684642616975750572654724155715331897873001032428459545876990553382412019556989674352789380771494170542790582303233930383477321210359603098372496072068771648219430401551068509816754567261492014404713871788392956834228117600474908628870501614324471670924343273341035833209003108438511864260267394397471069909279560497602897211589468777439186903855094862193400879020336827060936217973608538710777018649155738733879818992383961701437315673783650553206132357768252685500888142229911056895196301527707078796965755382648661779904065984151987890455683568215061446264739140391808728202403803867897671732997371887699696581951568876702301112189950136820930870121058624872246154477474832055814979147423495681813653237512896610872100233618089993627048846506690302436989797852433389640545222434759890669522383918139124639717064894334501176960011030297459401647777193047046765810346909514631691478255748902461543087825197627611691355188169928591219566027423490737505702697529670819272211576907048242753823715851946006426132606317337768316187845360412113721229471109397757144006321171718036715972380963563800079814665904618841269667564273942302545229991623679908796136640478763117008312343241482778389160351214993271929673269662070326954768638796871118404591387368654961697419577308433482019919938069114233325983357149330481218228388701612703512654472169516797639696715782143566961823183070702677505734487851149634160945106518490441471073039032132845538741471417810466846751625615282785816132152262799035792838487735108885136988298973595608284987357492870427612743086299204328424231205354667194790236637942320693810790786766842859373065808197785742173754756738520635297547355469781349574949090593732995241252818502624586240323792968252497478159538900599440507592127707492095186382328330562941884530824909963584528433858682214260132115489200287884195982827711925943114170914427369563492356650524738030373929969533588789107147149864667885798804457876115972705093242813435614612107490435351102034130036196475295700274350602112880635373242742707809029053165880453131497609687271399245215265922257097265954032122455439442308580384461166226998269971226048857517360811867380227128918323102998501502286220862394810714911512025537945446409718200614413474453307123501962821645605442457945607172725020065645433714908810274823917209759700096346917963343888207773334164489787933489412627056692125079331610611140315534387839100157259964001238534116672944252569972034071665563827218519641703709481246824262280041602477445357253604808688671944621828658376028547569441806768299169664128670260899832452104266362184798574848916845980061695323916140907525480271240332124339350376823406215240394931623563435310945977084056182733632790038679516088855264711218980656418171804362297025569188528512591057943768118351772985728380965792351393160212508390200249069455780436200012823544404706368681733053631911349225205382969996093856174974605601023587279313969458796876613483549883055726467895610326712247105069438870267251241026737723509565764301773616447573738249073833980266711543057968801197239100743238999763341917088601667437563318733062024850995282625116528658683749480908258708221248868055268397159636861602805099435395312413008236891765576018756716028960996870542684526464740602588856858151838699733117375661349620620830014903168108380788039001001130650357237525630141137801376736171927892188415907955766804800697736147648835403595041033063894394826984466307933188823211073233496009938338603632457118149124885984846993757994007002275103649586256233782162862336046076749157479167707137648587960205778215605646234175306000330381784432471832743980790839493406195402176682279292541664160404897593873196128844426027803175472281110640597681305532851985346908161587887071277213628422464062990133217940275657243646247756576430940400340199202127024498171653990885533375140616467535531811824415989138688829858116867581400224014937056151113352589626470410852479181685059140437611023626039178161642064590631603040782871144762718931260729763739491720474799063093613169302752339154377982913505694527702157762136890955255518968793280077865218389637192210600028715601597840406041720965574526810666390861235324762382210564888271262650561790604264582686594249637437343220366501016866646666529540956645494459753071847178681141606199966495966752319088931318667714743616240688754110784009992991978148829463933660482375997499427741492166916945667907602761832031754693638139632350660389830590833574427535117836231533510194054454665014429490746219126588706497736729068915474499986279866356794019805012455077912785096072359515949562054016423811371224494992490432433102326990705918766375145055774759981911954065208079827398870209845368856177370604627359373658360932484904752961679962873576099185057753098550164332516067243539501782859182702406461148263996382320068847609618373836262276750845378971886984883855730778822259211828783411307404757065576893864282625188017362492251467234108814623818667021506300112811311043943516108995371984041036909272497533591533832309226940717256710750242365639708941771399622873467421605818195715492394001012095088793912044212732841832864519359464703100309331123772614189713960801787390692864990340001998097876491612851489973914734900651621723426772454340621206015379161534851480894033204994795032649105084704008549932908815548966616431190541572923465812742833200828560731178258580759094727215905953341297644524140861872654224309608787822617302320335768306630801788207958835281573599871064327117596628107471746773418760867334819556621351272290086113494614164923203626791752973138493864566173576438023899714928363382473100459109257923981235847340653883994184262953366998467651609574231220261084928285314475675023654766629429734013084622959919929025702289265924184969055919900316173187519854575736275750408852969670728796094539642582756060184486763996964485730394187282727496875538341071942126491342076464789007172331509896179768004390220711544822016618926143648992202790784806731973623020486525563048232705001754910275199762962165725881830828234489323437564428381740070812382234684326654702843970117428386287791175583230590673663894960256844299394331831422193520827362132957287807847047278364494820836697221423445112755657719963970508276615295622312483189239801074779502334075135508648807000548006843925416972107603608867696587427025880975613287097749923179633534173224840713855770717426697552716352107947020715728858335010559504832396042968771888084069778025733511341977762265869655147051763660759802553391964168424669793347734840654203475338933262047589494359393121705096150251066953321832268725605036058582813232359430520692387820551536845204655532001900032319280516401672938530632021785204946561387909999343775769173813507054386672497665872112856604871886630520089578904796028020068267541618887304872186533835746968078538469833403020156800004774506069871264421592663248759574166198032313239358053171560650541074938600190289770275663483878413259676621618054709282078984513473433474409460165860874964328095681531366549824441318953132899320916242925660425655469872107851673821319239197487704808743998558118417230209328775804074130210181910017590858405807202351076642133278003113584232940766815024873943770693011581292087658525653710996103873594720796089387622588229122937256219281623106865165633918617873974887634127946631452968757584750202233782638498241344468579065886812079669879422492153891003527260021994365088935602233039991623607418086283373971049321597068987944316509274698301629905826710326664175876747159856233395372784869011500683991013097964573183895864380722946299182788017854091190679000325708361714455061287491111492825775818784372625742762588352306813505077087358858203752401135492750460326111906447657669258902013691549771733967619698243561114270703348708064232368862560876773985644410588727300589766887947438773644006166297881049325906169818221698297580524039750442705322129586501197575992924883289371651739914837762183925061215443136073214562129910129894478684906432800980364227151242327099272159240767551488797407099023347787814851361407801865423327820207453494301659607808746921746015990867646765977294787222031346333874444828614580027162269110066195450146321643671477028492905903355527505727547746249902233299759316969447148222357622512980270148624062971721445329218271280203331230514719266338971128013053754806742774950447975427221997225404257266565228535828972716332287144500884911565419776814790191972272045613487497149595297760225748090935244684104313792061995824915345475857983476191066822134690374398229723865397726275015039636383115564973884380740008416613291981520897737391904473614974110961399267274739623002303417275971819264568086703911220239819788288936433351056001617596814008212705809271579992710211838100763224783914384987697921298544845457333261641350243011395296032018928234460152147906929491468013855699616039515038244311306823229914952838538606075802859533259293047360714644355912262634623402101606602367575877236307884647854297025633915131162049624175136300796836717106568519411032538969804855318487133442901989995205315862214822954082218072106327760607307721350143302163583877967524060867933870429220324895686986894403226870997781927499129220916531177653201244321955813424312536095036917805385183282409450023073992857395074972329515777747556016803977354316805828789749783908964808224863377918152113137519785434471786343558858795736223754450384932187923597464208987408639800276171958984579077070684462169667396644383770564821966605691741500036669873392078636587808011741101406006201360747513254533381412213887077897522026465407534089131456706445634469712957194065587763060748472739595968671392066599088420151904329837284963141845117669606601886073197976686367014902881557070979458743993684058040504783093574880312304854741189286604683373115105790885219680167754605524465576643289237955670399627156495940616648973717872844618322483627311630657348560984684704367435437174829969964891572888449940754459743045331280059753143792744272089659346389662685681500340422796256026373162832615120614862909898446241454961420020716536238014878515996522730009664697572761950602808485743264120196123951382291925107544106472125407800081007766710387956839264809948592706678181639765373083191448494536976334776631004350213084900945269737279623371780061016375412227858851300441654099162913337792001010472053780764239791975205513596071487581951836472937675050993925331119155954805330466992230452805133117205335686566172006798488901279633464471101491040351213722547212831493081110089339278499624651195988789284862150205912260769273815367002515295794576974501144038607076880225841970098332222095063221183193221316817457322018407444593322396854571016452447941772357640228759848594438079897709726267716403042378425956338730776278743392767084310407706582521331676596661701015330100231614498844992556744507640359956317997018373316431775663678222855844297576896798328240109694105020161146885099792383679867178289707650145843833822007301428153577255078973934555578799888996086691109955119221905144044783580898353813954494141109134741271321293347271479225900961418362579001134644232277864422043220035317227285832668972548650553036322704221698429407560802700761751049118029126834270662388077822419173982821609096078444868290952135441707037475529448515960175511870843202456320904891370742757899610901854064516051179543854858640581641002595061449081890757719517141301307376887681406362817296276876191409243672629083937486182924151776048265792766187003966986388002117467909681257344685448622797221924314437646163960222395051636433455244378663114795610818857275677621244687873906124634839650136349378205943618476205267375283745254407215355489459482038782784045446325314323751253191812764200456388630099330843683726009314012348123664019734580623412024093791634175984687297294091457117999312926298754640148030158707951294789900466187353525928575443542614827957140015031688662935680351863273339755868146988769375099577586472602144648190054597126707764408429733410977493371543624170139367673704719557881909965441672945755229207918961869218635321653529848536385747753039761855492438425702158841544553705553143810219939006405593544471296643279915088644539194775057853866376937706852820902689926818994576572886895960051396500895031820872695765540342732062437562689067412171523642908270660251798172837908980511917040174379876506752640611462433554340204250728482906918194717549209400260130229776634334894181083576050483331555058258324786122399749303142728708253208621775361635272839219479821417064339150553541421669951707043853967012357002464191498245140004649539971234057102497738030278316169945484411404624199698820144498827055591075607008340043568424697951960622421261834071133374050864476786710036660534160244310102332582324587119232505130034837292501378579063400780839325742118655967985075430869055028047823886857570304186874059832131851720889246577116039598823889141701152699784189099748959612994053928699244822015440677421062088147124049048480015194043609550360821563830985537053018617071835952850424706448694808947091760555955024018188323415042484383433728435371250055178836860103561845555774723069256475085580351585435308419999777125327367273631033987338103779406239043457246668529478931838897651714598816871720099383044447218306819012991771969230034681664403352431062316563911451633737023862418401883194284090431537857212101789788962299232862054339841648122689884497659950815493451672359541730995013278670700686313929214665996999878167032756395413448605569936654773996414126297059764246947627968135166575664371027456272812236988561736390219520760990461936983241795973203601213532637077163458578956136885024287274262687679558995509875093368979607422475205892733488462688255940295675324415596538001208611087684054116990994381727466045961906224206880205200405332372249182259568182076810913394846142361342856734414969900357591865258642495035946873162286307976708086919061076705811548230152193196351114285075782102982253409546318508848178883653445471769709999817235097364122779498107695441789749477282834744444690152572724517387883316507710554731870884617119679907944257426294702903995818021876422034171420316235828917458270039759550580461626282199391718487577982555591412735475574947803414918736024076464497687886884645775026603278815831530527219702403864039708929122033876029731383713241348952730474193246419804896122152430481590169469706590558387248797085821879370123936588594528562659097407970368250259375469711653036778877891771146031018508242514925376115344650748758125412437893840785901160321340363642300166056261412837671393476494398808747862365137048462941063236179339801002936870067153356161403847495761309583869193533255435212548271592914681049859617438683969760360546856851956502529883927230612947419003559148365174237387805062330628319878142625576784269885635278944303388582215971333200999677678113955145258047385559148147842395741015034652665374743765301204024567603553939088238986548862870560554325099176234863324195234089122436330042588043738660579369485876135108819258609263544661458933925805553956913555034138887008490451024744555909239837008753834323654049272386026918806163461303653206641509195811326027993327763498324484955324118518435218771748077548309846176695818867824319799387652838528812013587064988682808475285954740294236374896075859285230104812504853839856260569215276321587900688967771130090726299531918851545630676739961699512598301409850636950431385822686240058927067907264734482195349204067303240139026388644787999764848409545067732752022311006545854573571084407242281962588395295175900814455113055328869942644830439671777360622015919718338657106471419746448122662506069628998699629713000000572082787011770195508924974527773207375727597063653736571651639101625803981255164820536266419910137796800133129104405295006468226389995093218555018107235889828836451895798119121495628755854730432549770762908135970817768367212281310804710564000955006511015737584086188066517669671748130044009498845402252431646412995132941100554571944060327873840501510069694018179009852734496657456971791598392990946410704066883280882404964265472675592057715678833040895574036342505663078884337560188862534538399557130426198770905771116497161556995304960825292244623085409004467574005211267608597357120054810866383616198422406352611569610276848524963629065971175597369727732376375079471276407459408279819658343531891739074928927187786037517297886396421397286073326137993157275020484545691813084660277086154417404436937554579108093712795633375732927391668466529351994042056390308089658984895015803056750527632728677450549961077979272577525831854399554024766566273539188842891206912647014447849046630093998822260983898491568367580426419270684321057000471357727154319248636981833961404876782624877793572318469945187748000559962093031030402348618871194421607683624484610538725958007200623981614541495303860343580690070256725906794962163178588147254701139562211527585672865919236863579014794662514587205036768814472788106748397115481667294361744705794336823093217362230520762058222243476787558129594282662029012328201079945577309492779431748077373588491711338121842333426054874423962220049693990253952954615109647593276164519411220271175006725811664109164269626233803096312852652782458109885483989286289795129690608272059137938367700178191643600527338018590735456319541831109189588285961902318526383113603839417266248949428042694286525514598574814363984870606140320119380180110745007046497361740871749130700256948052864083761037026011151232198258301090602078408786374940279221243814375558323868315517834969742343438214179322858590352004726674225614262083450507851833417209690396671875178959446943481782104318994480388588260559226661413536885883227758044387424506541322937643031880050959805475411564701988669484315153119494543664775886918385240708211949643333842560388800544598617374413083404757627824793053528722360628104351499680955498724061503377889569185384248345491184548197032622434399850100155056246529026392112671511934590497561232819024163319289461208858292914003036539875746653312273688175885598319592199865206720667666231398119127041017675352610613806734734099194470599076583347571675953943329308411808568881166077976300581288038736391759473664526502123423365964682531145455113628309376919825313929412658681834933726735135925020529648534591743274082699731197523250364376541525634768854382687751022355325213017131560833937712280271181894338826719096718732734722820481794035658866486402208886971828593298827454804550952885551634859340146033968212350852620492989083114447357555935338592391790441161816558382949336845618244591707152691191913036467982631361301690727004313116167033976117314671194522803100037594753412485397776997041935863004283306781982373241214417828372081008783195499414672307814293518216682952082965837800231921521212237186296864811251449970165763250784193572090231639884667646205939548558446832047008846415162540472478405401773234110242546587360607461983137702138845791049425904789377111736423219562664430903981621266025732014467780841566354744930115018186917175620964384425354785201489552670108274344593244419804334152520242367295658922742516112900205563405032734236928815502514511512409318204654028783543445806713004838150165902562017241120917008443912984085997250018268667114768484976945105267791782620627399621619174307461926858448083204816011378981406225281275570183206389925880716538661226758067330309058193205099611527855814617590934045010154750148191885583333969144592328227446562613475713989269275830653082453750179917398033595604547656389880450113331434085677105170952832837112918867818423098448339648754483717788750834604566458836333511890177491500851533188573241252808302457813253663058880648121995339845871087173631531622344190724560296331267402781829531963225124182677147822037201082190436677477154806928446664271459394475190853260874233481395193527581555859109646115101279837474912829857087794481020835079266895446391719561664659749500816456279098782191421366105674915985457142392712422201757343942584076135202947252784236133787613902515334138882054470077098480844215281342940754332698105488631527216114273516019375320877902326931471949818822098075654625762393107557229936825886457511978218489249377991055007829694385962635458924866756658306914957110371540458733463919269065141986003441556453189820109186778490135452766424201361670055368193023716780806765614267550046705766989454877671343387111808074205755537634402006543340851929690915296546751685833556247337793734325752444239131171527567017239891681097293823916806619481669375431942496280499739205013633719384182929573256100611284321780416017131185893416881230152642793329052969306200651737451397837828901174962585590731768810533651989195511176002220811985389225441288173268069316968229757092824209297408643576775271952197602340185613405394483960470967336707472450094220903358940730462359959899613283652310272521212468818865037383880263359589427162889810149266083560541990120241922206284876247715336705224621704748321873699178854237044765341417617964372342147869877331319971972005865332188051617136832063715325608211471499471326161692602584167015605047826246921994460462764490832755151391253053746242022949550759221975652520550091200543726411888533184899804622487957238262446225018789377517601966060331595136321447023225863079237763757343581527387410935802626638254175944247787594352684946202535128198070277325810153656386377411003542026842733078077972323950972496039068077446734276730067888761952220934570897951916180569197836817087537906975808628825207207156138124488856653217886543108793975433419666917604027010844885128851942922780232455549910165085265445974253711816788200715961459865443921471901385514063930759785200959613140827176287792921883310613150188949311631791430013759273861785325986944391251718142422156279432811246916591372782360355512360937521172880591846685853514482151659512153751667678165011596151171071207253128563969221556921227720272690195227190529060083154217493807540439418004124161327665022774294703912548095493959553128391568092793189517906423957338242588649998879834350956471130079831163516031333980804438200827075799341193736023755981385043792228274911193698798913563321095270850914977254391890589027982339185969734909067545442156116008575045688201200741258666291129909454014443918047947216329616357226058153751148995564367021391291154572369863409421242837445867664437202576641609303911872879404357180346763113299550452047950017333121922056017212128293664714972160177996307251433428003464588984793949165662731193720608279382258782823695025474409824664966898344966033276205386077366384427148327362392995255339484278916998670200423616334918966432307677439814819146816344535669804876083216699497442822563318404665193782198118210025508704550482833453784523096126958802569919199022419543541521824763154007592388557119457415429894427645946734477286209091519850452482280103932664664938990858684001626253916408814041494085089073256498705467178400364049012688892259291068753084567908029058380254733737382688000617017486334287138649795586280600004435542800546541002505843477075953789761165384510603332372546549656149798552850809811249671508380363182971676444924690637489896695423784785142431144742166111655398885996764717890130109178370667701808565743560277775756051556468323468931416964363757226057425219220638023075111383589236584619905837869026713304064623220580985710636734919470542938348046375551171538833418279904439607748718129721703213282832306165674691197539935505892268215305224016828631014697259682471508325289605774501349910439765861773503017089006816701781107879997147944322154419708694807420599517198049760826860595931138030380508018586528702789401205002989354011882429096004550434313250594552356450498738791149083153252194611966378552044581443367577771602784854627988562249185434545593874750431167756115751170591743920642638964387543296497554420742575027007130624299536437529971773486486347417193782228109988716554054163684792841159031503102260769603324080396997994688731326336649431451337601443786325361837988557436307046557695004469633745590136406015327827544883782700912419170633740323957918814879535943653670505931715367389388264517636211937199027004060291450235184370926929003513467454917928379757431761037498880180235404324644211067966536379673863644424522379292127082856127259972141450889817483579296916997217308437116149514840366172197198823560091284820621219678932063241566685651711739777938186562176527333999352702329850492018257494340333868846647709175449834242625828236617551993920074668101877075791234615656897199620164095704100146782443826210280224600680591447886665768467153612430893615080479395809388516115986372500608234138485034598538217063803718002893058604402814844118071946797282957503717887557840876571458221639664139335070546505743178057740227409727973227894973258547689526040658870623445225250153120592952181979239553812051481574538007103223261437599116351553071455891134178529801895612063844707567148465231987868515126303502354683450541284598529773779565918468998767501990665181171765062572379410251038713580381291652906333045144834690087983266950930338382207540882242713594337973906117720239077671011380632052141054917580392463335531777459466495555429980835535048322416503873301303702226004450239735948888353487437553756099069655621838638718111397412430554533565902568279347581349300823519515643691010649049998858850766725647057985044408243555851699143901572317999454467795997745774833891349869991169602749496341816703715613617402427655353272933209803680422735062328302662298102484037223886931441181644097647383737112297806444045733481884272438682632429500961991143617526716074817804471069326174452503846211182057372240765216302060304575623651404351701693092520602154052729510190285263768294245291348748184911321113160632008743293153195977639818647784505619447804518846617384722640239633242551058651954535965031764835906753052591186564480854143512253219357407640473131914094188869187886974268588697357096965356093448517500777943792130795251264222252727797741460700995581523638552611583109544229184378642778296752382469112955094185652772889287707546801564901894516824503956094433864236924410636980909653198002420790304387389932658409596533862026294547858947629064854097791778992617164088547596133522380173039385029570164800416556121789312648206120422721654291386270634442165915311864826306777099235885069757272546011458418584950077058718899668711406885579152173155323813287416190605167873115045806378226812278367425817459714721276052714696432338796879514563018740364391735562018197546611231192190144676714683199282027903428387616311596757757345755719809634208940848081026322254113408891956601454208978248533375132930508420372246343057971199505750560531443345283546423870844118722880370550103700319240912287224955690516271329947899817128937229807971542812757362568222644336332219846716035616303411582196392110095724130263770539125580843714069252461720948067503598618986500987145515928628809351155714012778282011557698726258415728431090255481492041975881459295938607285070224425046037876675132538218773422816422693632314825339051102872161859962836556067581146387919371323326505951516560034614209626294604607346971770279081587591409444078801538329470349364296182613004361689867834193578404881930087110223974785904003936345552872120136601520853613098462087833788540885203234086371771096062272067710313585171499382242004674479876561528881736354166137641596230474706660167894338361052143405012206643418895591565044238089605485832836549001753195128837510316260470377972405052350324581739608405970034610548333147213173186626526977639002328633150533920651215837800890064223655115107069655595074853810467012987914704903416007617202437272627041569449792053019010589409396387172639027486024995905876092500754355296573937019919087405872470804745284862928114377669479187309786354987232474089775592229477466831508030590000990839318565107346271778912959013489690247312704178580570130506855528875260836522512635372492388934989706231801204702738096011480617257843825536139672921451655841182417168123340829236692652370924837512713236583983134148438550393093964334553994973359722534166776812758141078490949736062439954002923775995949216990229833608331923684978650824586668395524409310328558610284318829313821503404266670705618125110588338651148020970122790183025417510497799328879220891031649340124714629579271183709279466361770443726947625303620657597000234114827447734264817285715252492796245804723474133057196599495746844980386755116472893305410500750334450505764559269411424921367801104454151697392326936191548327012508268720997642453230000312448735970810007162703278322141621397455526317024870651746007662263410434615128184005876073663862943713612999048608892530033185096806102039427809691410210111383842139350938854608104711692408772691824291387235426944978660664042536915510320595726554308533480182724705771606174661275333853839265589141472289828772076378332989226586355180477056974972611661723963174411890244162011923110598740279527566697786555691976924859297894237355242845502920552756680747114908611990625452945943594765380871275943026316945009143921162708908393972816665366886105154060036596108283822928200726576528499950935261293316879402611657038101069758588382425829945734549905985289018823078158510995838406735786631266032897294272730431362326510166550527374279573798187617502371212370006050500314048042639945056847554954473682953353231023943969724564531112463389727449789820867055956281832103254952936855376299804790158947528413561943448452221338750906853100319477841568960579838729331353694862679157390610505474391179795549925028202808897673193598616791872369587449726608320068810093123855573382812213778790323158603265996168437754574349223843846368955186680277215583705072009242376377027426749993473587816389209416172763709563458943009810967448510659062070680538294217289923938930522038251832537876060786800049004859732714134885927274885393917837247320461679361014689902980770231484679445733430391060823786578878764459818300302356325044992782441911934350200781404680501331071588145261290984847734797724106117465328615308415552895403337801959985598817948670911256612755811724472409599690370247635066787146892680242078128621905378187237783648890287842546209032478819449895488579232983103493449419152898819357514927759319674373295033142345275817461336472375820713214043378679113592879882170562773805142450062115826322605895533817021394485906657349469000261047374317914046079330086952192309851448811653087347525369168398687505220980984642953220088503614742715524866553478076760081050761144347480033555408006120371688944514565882600377555928600559825932337436751171960898427870458171567766628692699136246899835653322649495504583012478609723134084445074936152290322210033580696780784281523920719174490396921072313782735454112134566403377926719815282270885563280812088339523611555860055170443855407984088903500647854509472179106191296834183274397297830498062023058020710532771219131078096280788282491262191368226055101072451676893391697531048610282862753489263925217668726077917370502364420670181230827649030216926848130268932014496589368856342972921397103920654878156341423880339195730940516843506174397943753303095177009414249872351247766371737862235524522660953743110250594607219945366756383457132674902036358423525867119132106031850085634333597970674600409173822156136439391890199123290908299667376377964444886229761301921026633641226704990540039752089638734403344448489393579999288134703111719299298905123788127209646712014408661907990462354810339214403612264575068644790742903318804774155035671784730271714860390184890656091011118230460201159289030601690049818719856717312858990860810513794142291583197571717965207949261029105608128303786044910204829702971702683534221748873830970212761380009204077849357683664186281205667037619616861514925916689857960911770513929814111971657553204912913717264715850442228386042500058668719633583767890287354269145759330151798703998817686400003647512730708934885121867229948449913666358835609309956616218332704896769298993356314314274029741332903419123578694632477366799006916417339372758200461771315390556173747663383287678802100125038252844374505474718098344283610730731298200653471112674829152411195317522048371670038027313290720551999614233909768050611300950157880091452933650997997333185398916831517322533500923884110388080404845077411083647920070398972938600222662759525015206099249697473952595547182759641219332026453711377190209546272476467067751175972697830837542264852369029523885036963950578820480607775663787393462372771290797987588923795771221583857481739736844916450302154900793770127090580287717933499999552829662179643289477942065059769254466756909958516308841701722277517936133590016127743326306955642890299412941250637572161146821414222062206662594435163358550871327128540872076111824913532302308847857123324455804037410007667192668979937192207632484401770648564815844352164222168338039639534680772181926607382541511962327725608510951978577490021175151573527920481737212723071853508029330247441076049545731435059899493691842991124062587248778721955356192620935024391273520700622757835465854130347888884351264876691233185412383177660815438523088702739922613889555715940521446878781642868855100177491313996732345570897386622843238699022994100847692538440578909496249042146797608952605584459477366479732394914439265496538953736382123808742124517428258202297940714368113524758935700910756425997322082529989861844406618473412481232428456640032209314861774507738363594943769255197581089074421962371500986473215081699785950627502317897206869143138588787951127594227774764229793954706853043823272540195910857799404426220034650185257583588159304170392553634190572344025032425851814193727820056338762986002019215187820270217400620540517475684178761885277365012975480450915201129205693502116961767865550512454933569060454412097621151539045792178384578648012379957245231113522591355752955195498830037115753236645294105912974627173010538338415448294194612737895572408000836743432544647065221308891276798589252465438916467198708218871883933742658265789331843342215609920933975180273421490357360885658985962065463103037372991752413144048298467503790540431519741415551882971021973067709944787399143918958821050640253848746668878122563177030379075016338712874841558563657574764139319610104787032528383024314086212151699746941317290142747739089719349033762223958059205831775515337832600304006031226831806517100300941818061895081349605216679516724700329558466627958551287190343227999948847854031860161141366721165561467394920354960469506357211834659257114407567008992511711280316909731027279915925235666465337016411793453764868722724936676494425387255471009925021292768385223738852409114534565772738138472328475848032414580497141565446796839140789478626517513632852597068933885026752754316002287921318751532017101374093147797603400115698045720180879459504023314465158132718254196370471815837022709502174982206835173673675701321799329524400644652348983094513251362214004287581812751122039014307218782667940832213671142373733509579650071277343045874979029885183989497219299502636181485252800336255490684172699641879863585973224390229385340344836449113891267248575524202589946183761126018048983256480406722018333203412771068626471093335112245141493749100757398925124145177779251794980909137119325405634835233683330901307583047424923146784141144772785760457569096535547988708431150549880955567129241115212679261797020364652651980186636388298926978705496168325382639209429641421650575970297867384874757068262882451701730852574858792969682854292674034567232702561424149160614257508005743389950104448992891920609643848354154945149498649583731550608145065208215824417304511849351000028013907471667251709462959341855002783744752276915897793723085709738595015312357455762197942597736227326300618340494267819193635401923644516372261779362157207424660096125196331062228669157483878451758943842534101941540583195981247166321480039708095664293788622290672251460804673998662271465321356149000618468888138266874669603669491725873413366888565764542230590465522702548787100237058189702580559951692926185873882517036457938175639294690034646586457367488071516822845169913435095841394330938271771568510383395687833993813995557365826913303072403757709305730535333269853454817518596072445580062072373787616646135731243905526969264611477584653960190640699445142169589299435557230594623827149863089792829557978366446523228238043214363115887309775384428375503639000587144774286750323449047259096568381822641021810185285784843389629924602622834772974089714617453949574407934014399680387556464409204941494501588747093534908714746477343821265514174967581432472024053685723921959090398984685143192198367256312836393884692024630624688718199491217650706401288629854514356370733539424670760912054781888660321683167240972640940275265482616139978227202435204772813721213903072308568536484962804538518898113563974531032547845726331960252755610320678481047024574873180203963329044267330068566710652924730611324439274406329717285198745019423475680688925635492845390847099490804657846340315054590513991184488163573922219496442205610315576542002392032435153019322118682934366102578310212699652205590277479566206481208693950630036289358260719374020011623754890238144081016546423510281953801524900350968634941010906092031748820776954376101364393074851911103551934295437323033868321352894850878892169933822936451719235476375773458240479638347752903523403074027600355553794873076373063066546048944842692471682915402304443543847797771282380170558525498231529785542301556246710676909066340940117694826700140877044323334699985863677552379539150101919137321313472703410026505117764029708295387973368935279484334814522178728405907456791619064644780446042970655413827044555034081337977929565305050618654746780275307714618133839330100443088942334419680408325132812142954318671799250624907502449053782827846711563598557558631520639824621202469584410869116130215213101603726636878622175925718434923445559260917070512418298162833725088358953263016069421291551438220152734202709532430377217131903603585808809234548299307203566549960855116525055213518796268237334874761829722311570024381313677110685634080664720099673456546295970003548152959454983468963247317521171764592381764095784594774956045138358531761144861990885251300883918935828892459464232276467360506964985975430830801031313060592261156656257968674033723005366687593233275743465746316027112525640088863524684664414546882246355683422607777159804842575280643952023571371534302959794783383156431929324149702041513781112545411815000751042078857050521125034598232302164599527995719536537033671979680549865835667056179775423421898635861766213608401762227776175648434314548426681358769897811604241940828562453784612052133426308166301539313647911857654161396722423077182383061830652115922820660453285986217054125315192488556913829060611374135480009024701344421402796706572320864293350271579315256938005366676987646895653686808366298033408519546421994394376774237233583462620963047711381963046782205331922280479320071779558555973142187623048137027790218338585636511167079484392705916360684450840633243193477084996722440179863482327337438614208530548965954477142364259410498537973755485430567323591267516282473616425873278900383493678242068108497712385833275957867327481117769913951316688262524580358325544372571280150449766807339454750544395353907881018589365469965423640804169817618915450653672857145797001785627812680211346014836384716740504981093627905918552119547578498542137782733940385091929067305310297797754793017059066605290982246610195249359548349916004137059162356467420278018920018896974173056307052778491779260014351337508413811336217059263122140532093018121103213438236243923621756852480896704847622729116052986909794511908477546297667498705753805503577662047732771121735846522485307057420895287858054238516681009959554155855854170348467707896843239762441174815686641575723292354572166855557941207922051377753925071800015656863935823637926129776590090928902153989244210314926321489823366003988476215947297121196229838350730372336780800698472392458306202614872537074978796654440809986595074807708362490617065332746043983334326830022965709940846096253625035677696160069423288019224210024295297858154726864519600984338635258602478211542098987714176736617796580117432708714160892715329568774597101378111120754980137367543191673762438369630981307623519559973085351062528286523269459337664453270310009063760140263740009227374746220676874748704340988111025235918333029629139851232817965837539162131789268209851612646228097629887916099927303686220921686305115161068949886053635732784632191491527321080357283707526710876025841622225949011060427096659796612110120283011997728369677048732806012615797611218667957858228376703975386506099880765417261442570520579747268069645148480646005064380995492896811401269740154730514069750377938073476503032395045471923871592113491741236096270702013639135636650411659005531808964670358096714311765352314582678683440649005361786263985120020179267096076761232607925648278694380799449676120056558949224503962493270047821374315835187341945449397162739351093751819977075200719009790659520931072684365024102155620774543893174624167562755644353567862227189848388472844022676057429160008230335063237017363308112007588602628736536304373410028607795591839762714929052066218634134259667568090502707980404766657887203056702330816612888819075104009676696698932675254202472438648278221620138486412842408918537321633000607838352819959266139572570287915761942913228689930626322431751568080087743339447510666684783403391007800737119158560442852839603504901405729599945002093575345825535038864982831236441764683232088880871798375208577393830459413959567924996854996979219472810537405480280044892056698655239245874032134343441728298672057934924341997056944848424251342017403238935977748936725543417404269649353104945225153136131499864636091273454232441608816519554100598493814012827611368674740491998768927860686473321139364105914395861140676307256019610303548369846025762461696468439934492925221171591221789356090604839112477004530543685006798966153693116462166374953670568017053042143849057898086099631846147154457605207093821726502151028132248288975037986345208560310656700660999416318078744416820569463307658606159938598067198096739849497095480867061924249536118682230341841009791410031951563958564921868733063078341687633157009337561530628641513726658420240274792314612440282335565139374901637178003580790523465151497435379885566081965062022166421785499700161210607633472722229918612836023572257065357478103326833908900739727779805585328653660518130686105528902397253143842662530988294088099661275896714641018934130187085977114795245776427675743866501495446313666117835196749014498780117767326164827082385805364248503283687206305461851861044973397655844560470747367402369039559413249197999487883004137980123137121958319334640615370463453930711078493356827408675375514860267122287298919113102312797922495389354293567019690199466642828471709607409566608379352180092444186115754107729532245513887423530916087595662230957978789270827942142984447086221937183701737419537336472914287686316978347648748511620272139064302883123829072883467997798355259212276093513547731432755233107389469829551536392454100729712199333305440206436952339737713132550512266376045634735746656148598335042715152491434369809233582947472635091261512252618488413976120025238935217174349372455326494985367014389015131704731025239270553574687410851748863718641305019977723605308228393282897320223259790269764585188792903520384815055178422044676898441612705836157478006580336992530571198711590508650464045838214429856073909059722849986712501821992726712876822744682214138527618774131323811006507143412969878456719372768467353867877652128147689196509603632120715466501851721633730847587572514843290657670385322275925786468219170412978837528857554130384964843903713644306442984299607292573218554136044793688399174957256482637560771396558086437697656221409469913380851199940084288092333551414509430963024908474465211942753139393808784766881589051616174500512087115695606259334604663782374109142735586125112775562346285399989317896621597723883966513971290482636116993104738235160024129303301373155602850006186962066250266828860844686756066855374943560035726186273897922581145082758778931354546811976468425991170290556042783266179280494286240781630782929110852981262567825209447670007555212001247879875829809597394975502769882005699054109734024954605108973658428780207243912398656667470400416424584418632672692802027440980993328670006302783969211942297474881566024816188747713812232713402494237822651433425336899059003249844936380678739896397912343642389064624092629037758320529398575081055552954521818117812244844177069809493249490998618267570006759229000731812316890411126731526455789433249175049862795729756276612481748804937665162363175380230765460511182279077463205481840972218350592466142682949904299774632359823599898657235473641717887414754569903032659154506800996390023837074400739233743392544167072687621111006509768561432394563216150927790687946591475062358832163507903046952810440141447411230209316185886764671265066976324827321615877212292398115317585192094535210542826761177061171826621193040112826767034666018242685097164966289873279380771116060570237594372397519829376595022913360967784316372278520676247069058873679599368006358089658448147205710513063251791625222286915788877338382314971303523804650050715738677672556705241429902620522214056558490527280851784255345229281364020144266157951842334187470067976499995791064159266330184531227780115453743306547618379877733925106817202313849636959024007982103778768929812148524133763502262747724844288272580238193181920062011572345172009733545854291751896385801525735598433481845733871146084323327716495695762759708444532268089745007878292932202764063436715799748526464338941106235821427692493604370727099315965488767578218220885668122714542193218491829588328267237524773517802432293140380690724975933375746469910582519095545233104614284000193980689558352135135974985707708907604009527937630953452045147649835898001795816189810324951363150871766271124254867581577912394077839478319137891420935611721208460548369618946384139137590774225357380607375972583325630161316733440086160559196884600852883888423571504060014076414642510359218681319451984853687520055458957758184602969172103533031998123229301983877281916905750178907376046260148776250400717488828158402661079345555011530274367824731092435266611919562547415873246285177409060096158621445239050727614936678619632030484632482986683748439061482662542589746137718794626651862432823670120822503512718289270816834924564697804982222493226545821730995658442462569774464080449645463537823604289994608808284614495465641881250858111136332565199346288224692296890608994183321140480766619724073272449703320887188829546764987214594338642798048918689218704041125986902211469638527812221521852035005219561571228072573750767441089226045757685271513768749560408918918160289687449946407788053563855346372408785957972965502139745348348724563010838490737439598088761810402747652949230872324301519531413208409099185394767248753319397887323158192664817152571018635033889301674434072257260574673416202004158284583789301703845918993920078255819064801250403482071860102317975377643389616780952560725333471550891554341513687038329658526589386914685921153031526975041550438002544246450750235610052609038125727468021859243365011003885810298544689250641952661608936265891904955584660746218206201306474036716653764413852707116926639019053149915255411785410341395759256524330096706673184426552026858900457615950771121151419466358554076656161515477352541464343843386909362562781081852174875930558353137577616932835514001581601018622796520219945439358085439768672487815787449474067882076196030684205858903033218865695538511010871007651995290276375165914171181634014484762274188296644993359608010868413782902457777295013861087294926459728016168093561645654864514576980971631439205732637278956548151826664925139664202841841801539643629399294596912459736073571847166337167815681980195572862190740933685634183837356060031355532995972272011338051682175123657449749209659066691341551790402427234508154480145260599520909781679738662794306596333220006653307479660902741150695402228531447547776070904951187377527817186316310444041982282492778751387577785408181814948018960722476665849463121533739174634500075263558792778618951939426695695717569734672875638043804221076806943910892473647429383107730682713666404094288790696539510224879841245601590126312507907794527399257964659322154763526856551839382388026871759623555582027275579504338174578124671433906386053502890240043927343767506957730586144699476727103736072839808910150828997390432823759009412092932540444751677484596122291394723100985342357368598730127803366767799658022213797991198863688122070323011055158892521328335059269170025793154442759868151289014448897515471769642904494479299507990037596795486117235142034443921675014906443158162790854923232646003720230930439368342788690898445671616190541030388858418296755064508997468588599793708207881406975686184858387729168626788705101092452247069019147028854318143629695844170287098005476145327654343553792456230964506135929442231631534414764198446182139938724462382390976994925850655432983842135312254327499461271113710822512407986162240898001055775312896035366677676067442030993624768640092066584621254789837367733328465921083352072968355926322824000352439110675948365930440778190636064551892969071472473017659409070733738189593256435523702398443479103907152853436944301891499032740693244366797619663018048138934353297414342998481076242244585223498844818650031814884392588861400777447124477269650187998790523288149356319078063128985302102791481587210249344060881843727429610638266616831872407988927665588786624440462159943338662220019408589354332641778304258972188533294202934046745063353114818544400185669066498452970957348530641785346151428748178631123426383626385816847817287721044462341295012126047221650234602952355121420080530426793161794133860295908951428254634606431308016335700056544891798720979322837659704269512655122173426324526752463798515367839466541559804016302207234079403129821155153696127337991165224171203496107430063067719817689883101689231861074948123949550470937703025797113666468950205752281105218304098050282706844204586203057746780624972470050723240827431214599778224869060872587539320928336451915689470967044981409012336268585905980092416045369903813324764603619642149192666246860181957057323878396171167486468782930149732960508948207425169656627855770274043130936851517442488630308154807258406866625347053834484684558472468000244081324351400042610251031602510865520394666919073433185154757927157876068745481086746158296127752335105594646802122291898896750262930835167125124326255272394481148321643032879002056456229628992391112126538753447639400407672994755577628023233237422332405068522853715661692630957477720200779688455209065455945581224447478246575538805408824690984125022308078623326729776782267729138051865158689135260011655579247774747654744338752486309830829947295549345385515218218509357998594659419994493588610972449562065917155061375112336067886471845596181442414767617791918472733100238801272850435667975090973600903715463892875354862097616583260566958443382232282243323607947303329472965332594027195854017315482490969560106285030918147951180825639420694333344621444927077963510898868133327086927194588369552150768047801065055917269553789890475199319195621100953031552826434436985826991651325256640157313340139464990414458893076368818032519570890974226492925063949192235349326493195389432771924536467400023120087249388915574134673768337770627007574266817611798996400792791735596757887657003068043244681912874550481472286543339612789989932566598085469139923049047314102136879225013603750171402916780831357453223402472059260514206979093977558420987661348901696519022233383907246157658199877195063468508118454387025455030618345926912828833589337052429535508288567901950201921172486572108700778536416456576652646249674452421985997472215186758376863862785376057505408869388780261848783999399846204216189192758388257690109177200242533720883839777089437429962474044502413957103235819488407910197296728282704928508755082056552964686293499312399364023696288047042811193272175620647440880569865489249001925906453054909118904172726813038268170395292496184985857967923494994671000781378973986085435312276676766343211177786198748412216954715514566016445237223783559648368173077794401789655661924130635605830328189058509811291507216850955268523746242600362237320732521145644290207499967295028011707339511181255067075274496220911801314315397941483583869515394333624259547113877317811888937529288368959932609652554178470798636324059351048389351977134635019049690217608873194989483462412314966181638342349182254371668469984852266920823336927544311939618751220153905129846431151892154297146223028278163912858562354895531220091419272758369749284582717560717490149455052536081633363324163296337930786567152904623711834534461707415302935770726348364409919991740466660984719679167402168131112542090376869470007625089562079796174304629457495690830983588517277896445491017851305490204103054054272872622192894145491547668823970838121982179575246887993818797779907345322777953337494853476421150711993423093795922995937788743749550702229097740934711499644447286780703102096560129748965594387703348236190076818244143034648932723383718954622741551532131959962130791062434809643998135557236022233665003832043229493736275148974862349975305576880959494513880546603762581483220341046100398276023669380598031277159519149502829889831483394513357925663815529453852029235412417117554089131119974913254130234684718969817001617525751860683231421737815901192815539404005923974144346854860220093911988793773971479576552381305693866356706958320872602799635373471468038939995382914109032553861920033994473083630387079818247000296598487027047224922056060598151502785792118285049008739347291326517668968836157425046633519839488227961575804842377015066949311394515384087801640385034677410434828002745472241590069172396842518114512956860821703362581634375241739070170812825337388354976481416284581431243900707673274325933639469802405514862766865345964047356183794377512126984110257565931703588070383495754271258970668097610931198102530878147748616611743987948766768196463587240319285231860011626787489239431139679120559490308024497625755617946307879617195806552922234308029855291736598623478055297928677645602868018663183863080225753703613839939218659434768759208471513590772869267903068716258641020626470897249929519959041742391400241590291332293773077425192856507605785084602055365513499067883437020987917857793266286981250962636075756770849107458022585936398306068900539099231490073111546589850237400204567148688625250290013064308889434313092554917890409332024639819060387537969851195997216540942464933415726402867338237438624062611083673514742516536850908302098843485266882509532500087865412972747462241266315734092496595628859129222443002764606418874774612441690680054126768063490425519389374481019515974704503889872426623396502360085341609292611870055875544066272045004314250324913629559708228000034202288410952689452753240808672102749455450978572195729610204125006269136589300809720825426023618246821626096094679195127281705585550612560202183735639613402474842835782654815570689753113387212492334635968256229997157606445099286280156307245212215428515538363466919441855600569069326797666405016273689714327014460959111035771274391166689383809366785805112895019567199439306625554963855455534095712240324480867436289309185352705266053328801281337810558384725797025541086128916880738884439264375065955841410326022351612187219158657755827589287693096110189509098852568466068647793625152958665367127937580895887258340478084258133953618983812702646961311590557967716423720849655164359798441873547551924146797476954053078463003823194791406669068615041760264520055173116849390110457910975745342675062652584922488750163446875761508516406514050878448286033896981068544632148421664452881234181092152120742522447924318663144171887618638111472530759344844662866266136394530740415369530450356559393769632763914920161269062161958140731795107273419557761726461839444382797921305519501882090702285062113555124401033350245055372930887486358525274626953518268870863324298547702199178381088474833361419078062702718342692187520592798076352343612779044466313547703592249447852506094468514921491021968829919171062439383902061874320541431256577359488985723594911759164095131775459515373435490323688359013958393458004860410179603795948901746451470429415845964092933616416534710452583376885214232121734310856271666262859799708967045832989763252688709588023782963844840044160054905971835062048887313571114668856248605469164284102043848166199386681999117469458519198253724084729157115331096110805936773543245217069910688696936242760095561489675244673651284101903634508268272632890709809828389015949497136472649051920709768288000626988606398331824970358765626305234565791914112107723365059952724705965876117124789151847876126068542120892526024615923463780048218577274576741544428349519071519115070745420080292126942160984073356742858327280142036396276669180429845944569773901907092870319268111524644348190329700169567246629559632506617422850951847700101182212932470223660793800006086683581095701051409944971095048661422959459280920803914413518295869810871490319570573412708432561003781368291160062395487724738795602642657132261355786122915765009573569640282168840672986959729195260714182288048093545496859306772212837567219794146109727253480051085594633748384590250181107150727065059357865447662668296909269616903997695323309498157154038763347787223001571283742345441271776330782617997780738983800523181314314433618917925490218798973987675457449189248896077631179829263355601740068398309965245266872312198863110119351281447656149240776688862792585867250374739742476311355246306915075769248826758878183617009448872179592632692028963239439702835960138868409809544244253161488532771275608113729875889870872463747202902046226504199098830123097066469475930780246591711762347268978900505977879659037326095826897170665139555508401424198817939075632956580108511816709239118566326364936025690118367782978215827959328418432425129701160708590587795872808774765762524223007651942221861762430477549189445689059651375282854497528403130864962075074276577480092997519470075798661971246742853619395480117536261656763390233429610759169972402789249446836320691353927718593303753734204229675555711739063724944961967328197933167040707116976461485763832075782990309211317243822770750716659607647176749162606359631817443633567005116638231296952585662294467089747949445818682765527781626025450445376391230573987917032859261936844867210377893730829920990968154005599640897641767091939825444241062005812977357765375783457802387515949204012773319400641092390992392009970367889468576187959815106910026059246298277909837120363126725693964814457150184879064252080653000962503643019218592279116966151135861779177168624128501322821065058524225030881735574573476838795736340430728408424280056057661752916008052855065007096866587113895492790214008918915732176887898961549992678810537675143905245942878314961549222413467860053285580134581321962549080637624104254769958365814505655819585851453687150556928542145119745489429824305430560388969077724616196845827595929556163036374076058613596806584402882866041925316869708490766999035054566189556302934124439661711730579971878261887235983364429295947900051021632110540070543737540897848456855376823215960240942165246877397672871572025371665313863308476553051466228193567687062378361398127436399144997161266447282519929338724034854097581955153550605992997835985487708429518687210066121402594584308538273158891442058233885370554507191059507788555377515411683214939656420462024383953893835238090294692398639102431604655821337497396933490080853455029023278149995264966597628537803049235673036431351660538832898173335937147459341592716842678685379847234351281372077940698681455978316952355778791579924667981043360069059205603232536718371882604689462508891704322953398044098950252607883626687042522724287803428209701300704144978162398324601671153850600637282662992261078237585782330491194309819171159668165133090838475550538283355593038549522206610706385873494391302600445894296412271489422873786991533917209944134827690649767667332657151297425294342055151217077200222060678971106427845986805868930456683564859532414947961903355159923413565218679996496437932414440777837843139494949563568541036507547783645667033828240615277380925342566310098238838915429229099434308456635542603839810982778695058317273968405602551676592923449449150492258705372876500965053564723632256412912825045024598965171130254843546079421380062288972780653303199526422168446245957502355786900179708198597731078495619891998257686433078498073041517792333918222386862036455638308893889372920066220114355181469648072660856648786047875197296344953234130203934899546663012267882170413164470521885485869994964495621427453260083337637185195487222031427039777188158503746088056440558954002923276807168822495452727198693788157674855608421668712863475493846606738698910620804576923856245585463730817539687926872890416984661816671743548548982237952824152247039148023693536803630655796350119328873492132975881691310894533990972222057040267782194673250523237592496670078185938302765387791918589103828508920387827994105298858857860322965784553843024296183959893900260954187297840315614270222991272367531102753715370116650844776044151779192777138580065341863326678869974099237873798691730611840696729736941955170889656436203516606654600222800453390017254681294243806477651920295710134093411071423392109159549782294304377486887574755035133134724712175406968989096699297655055321107658972617097983457517221305479041740172878360331777897780981236826834897755696210467402339050282228800769868046953885460578327052859703856792806547767779829688572894038939707957539657447634456065203678233579252602627966462291556928154251406899943456642818134475637895524644954405668246926780660465185195607544623904798631999745266581539543768432028731466303777564150576279138303540547607323653386790108453523687174234761793895294002847924311122104980699112217572864177448225015067418996125898758888825356581152644082565644329121136053801512196993372692088376669553836447760445566872280131893121952633675937381086901569580943847935214744970081302227076081382919915154024851829113687710548619971949245918451966547063633240148928001712353126313683662704524244172534327759340706193859219932995264391742973888603393707436416221801543132782173116494994686120031342085216869578712818938679358190062345216769921172543619943626111128889118293737867369213109306128059478954727413940272777417913988536196233083073953479161515494575868758230143007808389867746686122455911004466054542300316623182719262468013546880783629893778734462928246001469058140969381244904793009017183110311970828687599013019470641805236798206948260379904375458229888835179700347886613691924171575458452946762156764932514577233731955793034757355246883839275240008788415890820779726761271861511177815865339169242211198022676203734963699924403966675236060567854325374936248662038627869992484513192588917485736222780857718175203025795953746027867383157728836561381485152502717475618013372059352938719695952135519749440094260140023714500944845122752248825587695056531596272458743843964054558447288328194123439328369889618886033383571545645793197388008538346366939999571971520243470419551497462044991012948672392418189831351418670378472613945968380383004466183440267214590645463876415309689580013202686622581968709177426168037286189484898141485703890592876197048711375495085781010948819150813748471681024240078401442306539392189980383934471777445152066121830400740010259022550352574306757517046307068637137484483866128473986871981702124978805885386459437403658478431558654586234490334377416559062885105721683378734847047810674842173888288064093139108016551655484550107572606419369713067742781896083435916914870746794943691027272749119224761790023408857877654514139721281360330561790857538810675811084127307061558801737817030287829084123200612418755049762603403137125685334796785956882554975022812640251207024927362583559700502086378376928334086725098363695872533609365366033009636827335358391225286083640892966938662083123496459130724703468145581605254566939927776489354194503253506872681712529235104648110029880705449391297895519405694264816729526695178767920802641059430753133349424841320819370331794631496130310346935068367836127642062046135313497274277238092722714994703823576038279906926411139109974113041816505624397228194305423205326634320085220133504778863032541995640804786888733048919413987157594263683384350443123299119292377489613122464852990340619558687769320623234093260367556337549413204958345308345421872302849549629026678904389323979727989840850593254685763342367283330303665104210110010603602100845802954177708350610636703832711743165364646874172867016440903483087321873390386596732147158199794402324107712335195476068791051042147587793917578968063482808796719930355522465626620584371336668656758526891790307230278325821229413166889979000749243277515207470547289066413040018341370072650502334073929116041554248582693001173620602949021468675047073646579689648112390632367624562713315183103277709992506142175312284583288365672533594844609665547693760163142518593185409129268535136316682645788084256472235708419705216393233341580661951720310578327610458075935669308754764419209747075944479519273161842109277063832032627151137942493474217389137454928745730103831291273028977847251908524871964131503224782770016047985141922085353897137131517168432185555701828635299716803069104545684413396057749809744293146530668713398592892740599127026051375083446522785091332221120014989049926013393465285330090351577693024571406367211935637145333708430534243283361490265042892984117887889532862405301791122350830793693305325737092915492866722604734900658342055526082917250431568960232182775216046543082336231142641663225233619781252819366389079010880483793496500298047537634227958532206783059200089112113197395717590125541886250856534042092068214620132074313623376017926219046298461577447308764959938166670927231503503634263339650876277290670868592397755503456415921866441004439483308589779922890174205595641113614290366001391729775132175085898655732290371913992982361573690905474331423468706703486484682440416103093954219748788611444701184533379163654246096700055550972834872479261954724420791556130319815726577339428027814732787093425033962192416509950811338506336830127571339493505630149977988272118948446901656383535762698518329975027735970132369526449701942022414034595279379557111365978791066752350849934376282100764264641902224935218168583775344636365307835447659142626344480132493757892304714132238415903049084177156415745166065535396729652116789983315875003469761633999968937623786322825039729648087331525884191759791631358528808124643398020534888268349526889343099161198695266946040738342367567545528662398839256452739464026224326847557511643245775648105343009922398035374294661820925512976459536869169534710963749129346232359874926696804440686601972121549488914570224308859727429868850547095861434281936440976951387056927503693250764136416405454169941257805447866663255963887964980098559148936504210923015871828556862832392546449440699079177306614752886362667972241274201650225694594023085501834947457612364525111066809560021458081845389619568746725267144777631918113610945964137295511551495988537467628646499325705487394165055805751757269568319722000393006777332253424167200583453098559146230407863101364823139073545078512499180448921080309989426240424730037457776974291147476151202617385912327657365624990649841736335484424057411167935172002872173396038503576771091453936622985129899138381251225271536064493093022584088093495830674466174827585286385160738408972474427930316294367169779461647592787436965712315174096462138598932337418712616791808018073991646100801958447002354549822896398293140866556994977309210528538522241062108766668919025961084825552022984676503613447917701602888301507145713041104874217509699078998573584549276422149441842445977430560229662319483301500041949695261449021213890773647274760678305638687302416183681340799260403489838031598536163633414732342022483699908414747638302136280806003099378219898101409207679014660890928949369843245244729657296718842105116877644388264804881647208841571348022744976651927174178744852092016586966270803219277459487002870552420726531980529478032121370982148273561007930967262972412901286608627985130769938247561201467382032992112361884767253410571981439617435751747579583381483195271400410064613339057914402120137036441694781338518223123029568042203588460236785889469642851050584484355822190193932984842293064911628917299263828843613941877338492991989821105294292323962486929265299933322076890449805746157425462608724786799555450650502291932739792097552042862104877833813656726913667212259571401737932183571036520927353502116788820739569246432968653557063116784240314015063736639261783280751199233098214164984142898984191234072151152322179122029362430975956419624259195603027291723869968108261902421876034162933915920561952789446465091680185742791387695726076059742381500716202323710731489079073071030041253427624242206478866049344155939168827837087988568632543993168967004962453263767641429178299477442097126134063075493960417958876898557003323866211396909602177228745927865936658794420052838199139646528526982121398856120897544759387626370570001597011953976771835415157297654127992071898751720692515706086304902333965960275983271044674785413108805775353933024301523553424132410472962884423963904887682722731434174784809111644895617403141046523414905892632307579080132392363574433086304707077114524704159078686724876018099692175264865318900476219632515875556441470727590144506845116093258508533217340898501444240904683714867667345513593140954934619846697077515345583483420469441421219248725350799635032036720133088033044445743377878948943079532359133797171230517622639685455522728229144967042515929890977098205320611499996873117555774884193022494832427500835237448883111458478380575563381730610202931788150502289644231100314098299422977890013085341535678865568142145713676640852604968905274705598392197542643143864594431794427080416774360194680558740514393902648988422644829999039458150752288270509118292101269444490057425749682520958178310151513745730073606222902795685380912431523653645196719681468131191762795612168118258489000869108426052486481086854955293431255265050182533288767945497099368183662105944173244207206480429114390976173585504515736610116632322245961790183825366854844633941958616407990601132057692597485276581989499796890583670976794840307185125163368782470474057700052797422245263247822178371609621685216238840950201372349361109659947841408372999054342325846477704154942857903001032930663984582882806799437550930476775793061438756990928311976627229136869352427348908400542561957420990269464070575641277014753492273126308722074603180532506159169074830986596194748251262202377192291450436590806934155905334363958073622828728495807189887920277494319405732804183992152443605118792186396584059110876569167180228704080874688908308985778957518378853052553525663025739030823313373625534232867349519057732137516319565023878324114223812415555045017201313828944149290194332287029963007405914605550331355945093741126299590024465098615786367392239465456833456439392395950257211472642578766974403270436003680405659393296546660410244590836290953465998581867456628430001328676947626336980974262039667846473016761161764579052211673153246514048760529228379768641063429469323333521641065791877927448115656403990144728923142943116114047671239458779034452975991065099388476557973941067093941448051414617975329142221696987093756375649798352365351448019359803317207960291492973921698386273681263207979150478681937777164255420805551365314544653057099949698268392331437088675775216154420866764925293210694793864230019286503926096273422927722879123340021800079345472450315186655444884838029965983235121411048745916490961181262013048081643981823311949638026542095489266664441592101903593566883784422701881731401295461302835411027567262063369488349894966939996130080076541338074630866684266118928845644067410830738306282073339397012907430909946976723120414413788146048577741278949722447254891568841859715475733134251136099222004438488283899534890580379886414786810196350395601681425043135096576192567912248955975868733409540613321626207859974282693462626291446789909579423906804144411398593411380323768540241363513399532967109728138710874888893256106884573832052628194280540564639496995863020644629804735791923601837991384304356087437834496890500064068966583740581622761656715705238416615675953255554779309357962544094065309142006244597843375281952498451290058794538962347639602690840632181436657072157719442843947559403208498095743038392981199643012183942249251941486567482662178809507158712672068494711611549817528048021135711523533459591378602443540007319708732931473722245250341829031679076739408419254341951675033047971926275402255814670654206990269899735717043278458647053905567091601561886258402646693927647602416435072400910730605718735881519558738921840154234861102994107594205346970818192114397857318121416738547688070157064696219049040306838007722286008417072243427884159539144835344699224176391750401583574100193186479871401252923589531137638490607578341115433770464259659326358913810022274103645259611658163396421814344109041845238637320795359688599566265066370163445404000351184942184447779606498396219495559843005721287669858918161794359615968170169245294579526538169231455450146020392037513636339160301434893325478701433247950165107019925200241534492514391666918242727661551225836688215250021054647139412156503267403455337374381149144162898776653135970104773118045940569773657088532343117431295556177789254009735003680174161377351793686559012618408959944562334030389331428819758619919388189976550950054655441806260912317931875871504710300283972009630071169379488637113153282716707740318453389968791290273000216911583955443238579128366645060605780741198804469929580703905076104045690767423764183924425897965912734848871391107600267392975381208121555347267898623309106286555310007154789500871664882949877167228714753285135891848330252371348739379915677133957798920564633893894122985844697752166937999570452812960385222465109824474404336340950843162315134357405740686243092893258069874988932389788465494990496431481726133502075473051390243438781629463142281231783827157153428825652119616231880441853838394531867338528556593308216130204582994743458678732439814379610935670922160127323734740493718931291348290811950235330867249609661551398858446430648107587572265803781520759288215540955025089708135251341717381502691090751548963105652378081276338284170537876952946004062325292451644961007985814005743408328746418299864033564578933398188424629299458470225714710956185200678876813277220484184851777659150023565178016193506550306676487544910565938261421874736484539604363368264971553333867708742491184835146915814011391005083181051926614544720441245818517697992464937429482671360194133962782530729412670536283390535697652652541820599992056459607394879716839085562534185840418523379052698689456624412057142639586371126898914064401853759442703079758601960771384763755733619744289004475508298196878055628297258692067979173647754158869207265880154733031853847040966495039868015750496122304367677886722157466240468857525587674720215602666411553703230623251084466064037714032695701462362869037923006894279650285865416280414397758777648268858194160408287754240719461425473595674453576821723101996076708093845557394711622668151881592934760388950967379570738143127511814471446729240677520068808518495687716387521232921051609944126345434439398861089690217792453629377469343028331897388354435916709653319642670277849856669647494440628928676716554721660322149989340312714551282819807074259674178763049141768318493180848855593151774870927543404470784544362033277771021101709648165000051449639427199842907041414981886418426032518684958140444061102079871606897896636661705214154764304299878743065701474575191750847033632671540617738477324445870747085768749487971699965966797584187735935877142371994929106139427438866705405202347329662677743617758059965652642212457618814720165998808350691523365169237289339856963612536671066727186694014189824717095059685784868383989150586141790118895526181144950095004072782806868560444884128537025986898625889425726705912051172015817814664436208043117420705239616373166700861210036646270942636135038354413619715467545098527629997377359032470793799983705537137893396095799332748924895829662339143705567874263270255687987237800121299173259080786836736475782366550005638317811021157540422987332558733341702558314925814467800331381996471751356031703342893448266514799042535183198828496183657372993711903327046306644646951243192856111139601570962775652330804234608308272102897975135206565662771514545155665776063243804749647860762840567710152049089138266730481334789047645004218621706126439731499514522892361833519738591423339011105292689325462608011667682463877878955768680047520883829187639244021982237454758072706477675811055163997315996043359052934273199027385773517045190010983776059702231854626259190132957001475162312534404746128838331026124859596249813730536763680434624952580065353954778350906190572829515715261108268816001426109976894682233479730245386639081622247266953947259726711732902597228867731634362486414051378410096221521739423612071823280134328639455186907096346812623775692476103746798720769272728739618597173569924215921162887409810886869997740290893856900811521000445476278855353222564687572894614388362465756215946058125803454722527165811268872545999833233554096037883784957859160675887380075084308816919591510462576848859672276649924734402974520279960986568804038571752273826091750516487826339405295931099264999166603855588967004201098829043254505266633299454374195711010690194052876369138757900878930550432008559344694046212400372245830253941075606583879318830656960966109083364348087471619172581046032675138055747833963203919239123161596991224979632253785567399367371031464303876137249258051995216786005931550988062817155061477482354013883647616232686834264101109059984351314630189982047814357498752978178568083734466902899768115261971817619865654477146362357810331560467679209388493621332557345148295483080937724078744331945749819318087510245355917430847633783367819660393890929035590969037365454381304090223130089547645604095632135156134394981779649697257161233056244433799200052916140198742229264443020053129609641120268135248004397114705825762128392546350995425864656442048981153728381767185401267235956341229135264612741738408899688902352650351572162419965536799391720274786880336696169777029258216614636229129923580904063226606784894912197740480631884496782009421315702427256657977649385413051031923115450298437588010550490221096295643650103303257336341135927747301397950748175900794874521584199628387776903878562105118658161514415048898840681098944920372984042741824906861263078428724253330958089940773726272619028080288765568970429666173127171167934101242259071236260005095839076288567027153887993578688708401743155012847784900409407275072714450775221622630132440395027539358531190926788068696487851660742399003736068430840011705425909798908710573947152378354791678785112397844077163954175978879020290789196475040978735017084797676143067470351440978866418333706747331123357352707333582479009513876349289249699463042025716046072253263578309824608237559234150615212719405250596180809291494092572909130336015522270219929862971767651181502868726965856170718013006553223374200189040636189468315099260185430194453135539565750353789200905538841455243545240027380972077808262817126513367745978591808808775814989299773020715732125312858473213549772833538478283288909684691752299941262303879874139282177870233157219445918394227093176708095261190005413664992838146711164187087940652826615868341060985310738054944464109811794139940903662740160916341108589708791095836458772421200246950016056556678781893787639747806650152140225864288760738670141303198491480043902552410164383087952966370565733598858685105178621326943053874708059318102725004145857012419431056308591567151588478978572101474783893785397212086792028712150928672514921195603958018307659889233054558405511884198012550893522139303118800307378429006912209925136503021175338566413332712622332121229342569224721737379063154072145057254578266675269243545274114632785036067515801074514465103627337693493622095161139270856417860323719889134925079032424929589131819185833072742234191628762350886871617745243374894598208781567841941038720265750390405510707889485715553934241057868195320021753729502547292379349935200138544299272274590475652963181497160193411175996554596048443600329438728263224406789384015805796196662098637767799069951959845367105677216583213140987306392466044147722195225251084209643871559998704512353480086746896701369619477023701443572636023692109236364895785974263115340611251253274584698689483968562561329819992743713614631768414988303485538097606064660501990260903452026018580932837390098893125364082311554009003555959335120846675425000735228307126678559149625561719622139724639979681444869336833103139262710441755046514900339359981958954694433643096701225176166526919923215435340827207941209985170502916352990898506457382602179158740950883500011658262523335706674690600476777864372000901977294563693632536096683318151843974934435605436594271036347927898504741083003046140925215732100644215888033420840065179155704634214435542575747605645428970362303879586404253548744164185751919695352502231502717099833539508637469237665406142635468700246820120694976852696938350609792165857936000456520470181865386339474613482531555983885828946122549584283155476019386351399178330598234729669154409549107880863524086389499268210155641122783111120703996439262669414916387897820272473938692645918704620688742072906100009280136348874733411218019862481714177984624629659763479424745888678091634923202590704774336849495510308661137180916235650225554424064370774999494489573441366644732896240713657608673367793333892741660265608882423489770540966211444746490922431235076819904129942567149562303085740046596423497767737688120208503541337843795205234484254859002846662474953394257742076062888484037870381906044347129962088849159953107828005144660849485108330431243294151716365468557687629012164241891271441765216116546943587711867724020834354659247800046533517022664454338892486530339362143504845725497179667134599062693271189870205950636636643644702442247232317552390533249404583021000837032025422201264342578009448144902431936471064783537258265551349607719968661519596541181084414361442058221553302207629299946233563472512232394532842730579629975934992634134238382393022407673705203492729709213321250188485019846827179842745429812732321759375345255202516703123262589771156903849374105237948833695842143121310848370181988428177530071160286032796554739486086760454324628336065616913607761078383058819725385139509783945222850717755698466635033977440022939665960659705748613449172280141779562466512157635181984529463610105538341704954571414341748820961989215402778560498136445476086052185372506093154677276871960915164521158068216143893593136419063609183968930137337344092123973651326253179688673990651315313779510805703733993045157485766529414960870010201927359586125751704344458029579532495297669483972445446926405015367162675499874746197679868596044795357616273035114306386953973431728678321921022656375984365307391631164010073534197665698322281314634299136809678635454052266176366603018023394708045808050926637294312154423847813974214049541940703653750795473393315113137525170660604182198835799940685967414301724744096380182428142749900671536115750297599673792838725487777492258472895735759250681372851004897989860076962286937844208243859970811611338980740898365043913752536107930274645792398769404471344056632552986508908901958151402204915595933180398988945624898702601616541241941007196040090489662058561931735116322426257128210950705742341303697800951834430021298235993301233297058301794585370940204776342678020844529254623586667927277786303956907908996770183949141348509495795255748010701078125491402797214616360006564637127893852211115578298755141398370101312845418817383108437737364336285845454023234549956605084521854356296665456702083732270897883905544803323265664178343582625106389528496596929300967770973717432064122936484390668685079385247327974339670521254785040355522614305340705441183332502486139067584790222451717484000629976221460601630455850514315064221252075589737190591361007941259042873856923265972821608598854842971337344259221288204295750042024417249135390069077205306874241299099991442501378922081221311461858409088101479066283919686056431199441300305405304868006476057691252125017184031186710858714269845371898512728674167385257319503948308680986331244734880613923929385016427451585313952541605265826075241982587096121510955554821843090444676143991913237576301711137528744617977787353219546354535942992238587084778847391721039320171334646271075955840401948723013821463397205010303311415805928704658346793542851290323295783969424051936521254912005553138005850826904563834316054023616064174356160699315908082212115578075195340513690193961811999479032368794582513665093632025864075194265451905101402327235740568936486076230709956311738313992039938094083218368864861793952114841251387076458732554542384902520265749557004862014255328369999915372304162010809988366241202051593717592682972386065966153541597048875849633575483065763480836240777251724642163966324724073038453249243714413185486914865011594077622918941581459060706825828625873090083733775577262361211581200714726739058767599775215775978038115264521006187853731410867928400063821257513694258103494752270388448870337959194177233187345375334984777174692092659728578985754798142794338143728748022460745145181709456617942784124707675738475148433282540035848574863811920484256468076796372240803811435401478191090067964982277559337220069365246366620163521112042656088249615382082743678458654822029777206502252995369672041284196522994594030786210399846571744299914392081842149907766529058231749288905426518870539404682534509212090697629214931419078405045594251178331580097261815577106992206220554153612832804176829025121625149975285282610845454170538297433977213699721496778147135609876428699126817260564444657787889874463322778313302395750560076962781861569466425215940666825814061493899890409833625964132951572843639934170235303123114975119962721733331785936507269353589815565972711876716311382451508518679684491763984416879235140094539853654950250597120994058141519910150212553464549900547693814524083451152612692404197030725845345584126590001958806950870836465668569960033874256929979028766391178384942495482695675041963236105048262869370108688358265018797894218745356696985245631571210018836066284243553753339653781380932746085197513513340323483398605679971570580811226095163689782193114678900821049586762937752258124135772258073777444482801093531891465775929878704919620195835330559620193338921820514533620283091809594648611776722276574860298802039362988829798014296539241911505423638556564404480846387311148216407185663650421389996567040229224130880622322518477306517098484017530361678875578974946149189657078882344945385837450476801605278682494789371187192322791339422103676138873067615454100448896259647006612335944114397563803728965676436583730302670402742981594875807823537578478297577314920546748078987683472766096092891065006934477317644060338314398814612115525002857502648711735240477208045915147639565691142942241729135821698277489652964083509552140952520050420069744288265710677066211273404176348551968669303086679110322146307715927772050641467881181714596892042931668193883626778619471036946839298940684208775028472390428473456100305742766945890516119300863325791437689795349318484823781195563710278527371665563372299822647813198077641520890363640172654561425960311474076984257547525931659556332795976064482076471187808021657106312605953211909402251518241996987760261966042368699469287702321164849661735948180554264701235161427049813377132796087276223036284262429352079532086945301705143360487399112977512293501331514137498179711203359753403213368487267292073099802125840306008520353886508470349063827529289963663152611121026515870190289959152749634929904016872072528482004912811780642671279980591165430321792373597668518904715602988249640145154953123010120074128672932007416598515956231043226955635110405427062653326016642249889442156826295092213366072697864299037490668276435218560665212712861018901974659961001636927793336536099256356251085695590363769786667164091539590831408309786927471967967976715269578110487734197796706302517943340839795189300303388915117969910184664550303593118543904212629731617024533054810614190530639097711056729773378655595506862581450680125398274992775619484230625726954921509850561937377202734922553759249294566176188738083087899547235244141606794817966724383862347653936932363575649097705877957607040022451894794070744508354899900322637074876073447360658175227784081185605433851345196722773718003781684832046894538263751658216877668635504050479451884275403821695288064413653238398432667287865188914052616006259581585757255871435618748632594214710820103970995191805073256280121828519250944636786047568926065568406335369674249917587291065310256246042104964509151859263289509780791870014958330800669144826866125075492452342756057395555593569048151883196657412879981293692496825131873956139887923114547996655318464180880815808105331137339182813312007925721162216682213970396452914670605344397812231674123454921609041617040172091654008131426478034048384226784333237055388104575160037016845586314214865099470104174743077247289927565043093831355700779606265572902745659021435419022864290861998406927037748832151557670677987255429010175915969475780963811536390726814814108425566377553753110936496033066999502464345088196945114711789059962507261896358482987499201953085687174447687014763529953628627010528920936178716554802575558655805041832933221202489501288832077926317239987948927203432580801232528558498856423775283070166554934046797199816297811156639373390845605857886540679988216837532794872097736334559886089252654038468849469524084749631776133902210573632098295846026548006112849437782634485347892555607163193123219172094264007898090019028164591853163082277229002141270227991731026467214028538182480894429685833742362529950299606538432826866156481495050636882934206028250274937195034276559516171628544079542799414536158544481379014567733984621170843929496093154390771543571403777216348377036325798515809482523676590067255402355062812308675467073836002370861624749858609988160382742880067659552366221680589186392983038748917478578835314790528614932443745065394673841267224709329869526360981538738667606628880909744065599199090718702052441269720999559648996237574223663517823528873070847017863630114066571175237777089060236370176783688815180923398555668083387593332319524576547227142622818794899965256105681363213995096180018952487002847348751787982432505611473620303873728035768554649686935534515370807477325226462865011306905118385103553807583740633594893505258605395526851617204102360418619689157263728398602407147930687188548118734128016280772331823611053462078505453155345490658512060956652144518245257842327348659004612199144195247163233206486231829016223402672682842736123081560675648232646876296775818770604266952699715215464792636555391389942933473530134649884874493735476714079884175061442837493550881575820361146055563768710502589591261394959272209470986910527162377059585081371251279764542163923938197734928424151109642176117471561971787462814359151898657976613107137159051088966821161304356176789414144381816911882219674963792448738635449819304188313544567445602127998107808028372160702673415853767552428755895754709835334148825675681033729238927632704063036467222545919787715837596274301189095614451064394510070150303859053823131061947881621686790613993421033124101333659842423885825864911345478644836075759713274823401423634318270363715302264817787624306549296466080590296112981259494990797577069673745393082685952327426825740847640894792565065132491400894639388802808974913811398178491534444094810157715213380823387834436972797253808680960599045388907840856505304045437574482848791055130318264475367337961123532458109260387125197486271187233243139365414619545655272825127969983426104808749142451469569715486945027886981441477989225385050879971268575283482585738191288987205338770854397161201262512097762589338533542200728770485988493423580053744595524169426541045205262931591992306919457314092120130185178746746349890975721664692966568545054392961247821797331711044902425457016330078681325063663374608807128450146958699773089680949640960573631172574802171889756549971949440872595880697224575454253632787940656509100672528140465824799354163368791395472716042751783898703949378967198561084942356568423380801485003720096229401712193442520670715061667007592136367685330971936949240914310670269128627833429541303804722985458872435300763283794357001111706388273757023276863870128390594407027087407024930968176542385931832117304962495471499198391377806146627746551922804850031300147931382307473133253795909197244883668765694700549074207094378347985966512881854218797143742629820635033891343076846091519205088325358665901012986013832302203010358386565241791603105213538460142670544676395242751022785398061990583415796019201188931078094664675366372227264683550059942123722914011354823900406131685077362237086391827267477226292183972794415478939571052940858596877253727725612427318168195920285791010531857049720629073009230681164949384246937213169792823622229877510781328463558987659538293547960640092567425292110534428738293020436405331533653161048302494847892468601675329620094547232761481122417763281532164373071826075380740189088336986502448369360696652080515963795219723055777201384467770675078690915893931367065348798070320155813321627782765748996950534855922126265874766566602010494710105978118927553054877791025023547023822187906335354334620694299725890238728014977734831188629569643234804672543393207207024269338505165341908242327434365193838307526498287940891029219624033104664607450496217949836201517479754119391718865795038269737338650267379570791071249385993414899587807855288077434722861197315851557054959096397812383876155547378784457887126624329408358579947898609327967355189334573969547336710034991608353169755521853481789672691759678769095111030708596165934608731919076843757881777825092790735040130924953527489664402171265750355547576786516551106122048428073599947888203977703827207070391992174250958269327041206413825809620446578522770541189723535628320661566167371646791385731590620905456311088326777831159960108506171204717546808808604784794212170875449417132940045998327918994538460499711768556064949571732648200370702721296492771026782883608564067629537263863281714818888331963502097842845626145546950165694676120029041246709418867123421011674478872232246041292758200646202041681486929907550648340111705055723794057129001850009159629645487052587359046988460759380073367980451839863992528331330368330309162262985058575103117905862566955265118508567657965889875817276223802287835114736831926915051984811769141459517886413716680306846904809688914148365541782541058071066317832400930517083595158360827403864108237877438130654390993970314013620900516700303997708787642813858783339443777450039617056534363085286949107688347491859621506752030302657373912923876628558694889016585046617313319726776284322449213836273970911591988067890060411999004888876786749013942002642902665159135841992778990507268617056907497772556978263013506809350174448842422533425147198138645892863398814758823460507174350288351992074735157030313156203001408494346194190193248029014575817380739830782522644044869876335640762358252218354649964235687425031223475583639201922220766929643019901147583720990440548209628322944085352220146782604887711154623962027666327829195483627973268760100239926748815837060990161003774513801945926618176868594547709648785876796613553636871106393957170137161390471227417185727980633269185204195236096981867110140494295065978873922499194302590446167310332422247100559125753972347011829352965074986244850475553744774778878506548498894324887707707073455938596999297238110117211289709115621612171444889916523594169388396519562004417258430855787391498498240512864097102584072704037790712901634940147639756497353783754596782782885139665760603288469556339921179499674711724694334331377012929693938068566711226467583940478085943804862910215832594831288832679931386814197389279770389464493806123869536774324484375752091453382761815648657553185392389576903358724706909850031697649636986538455198988646413223102873776007174411967647636392729900153598316220799696198137137696383728683855246122236126052649363072882013604207237043221613212593409885843656102225780759005739278927041007034619166580820541278518443414864809293211241074864166897667818046689464726201079601502701492900670845854986571220804983924784210476517529103609879521341197048793308348720439510984939318596115020544389252724735118529357927772181990833590455784241784449148700649852840848022517746231659224195628046873333038417029958386034683967173806362580640844302462861884498709375673401945802449552546164846760920039495434450131572454292835094592563939007211580772472313035896378761357908816104845551645282875535278608512364682257705146742692452104265772230419674604428265534985134140660669533013670844979372509990922316202340893806907987076108280568026994944129714171903157152052422823147890933540843095242187828360272459145627022114503584158176964288293769363016580679866700358524407362465154891657686606000723536913022982496491436220507554816347850620751318179946886685018735163320206361741308230387104445678733380892111297238563676335947190378904341185678163014384030226240213487260888975859022574007819681942060823063022779022848006557191148863437458118879919788979513545527678473858697118355885011598868900253143648115670173112337877358417657329255997341000487018364325653150981548285296032898770992585094118909892211677098487727685866256867736008208700764991440768473886046730309573689659746170656422023960018365286836364626036687916742794928376560775153905678700493241687559946806221890928389627664113782321774673636861008517446218029073842437437758939652574478506491305726659226051144631378596923190027546793256699539768098415412358755115572332274204762310392033123109065782531748642783864000505628851518561227588282367907063255557003657613674344066024325062365409027922581058038576800854553209874609774194042971526140661814187372427846517958685687949296485072741872094309481353979650067713371683461828144140254243667416175830289598661346525347500289816047489762375045545498913790313955509850696882885709849210107725676741731958952484805713093988118740073975494811591382890902606048147959723599559609040821686190627999783320984006109796805643822840935614029027401045716476863223339754551211678842646388839024604872975280179427865014605752993203341413880611466011486436639626403616219990907953379617356448041110446163536704368020680631303175331385107324323591953209596749306531464254365741019605561048807402717363636489913300303219917216001007457074255200209436641633534347772731023571234320572375505059441828368466714146779961401935787534639944013475637821457033430366080726214665600966810964257800106443968819248154674428414706552649685325671809692243984089525091343154093805541199025642105089968719536382485297649512601924949922959351509357127499580225762689636503204614069862530505295890601307987464619977375187083883325749510748489918436951503717476046800592018534089312750090753618062938070798372697556242779979455908822819233319315497662073185917307168385127116922842132964303460070325682183505647566048613617977711992223718062246630813367234000909426135258534650339721108550242357665029950531352824214065621855216571549628948626852204014891332778930276165693186741578427584222791136051837851592428791768852394118924991668518229349233761776810210569314002676493245460707860615948725915922444195700567659929654172801110121223554321273459785124025620353166250317143857825714574077173454428738903101086211434525430069446371187179290054051422035673269450265169952133821401045298692857993115195026089152189204469430388666079563962456372182243207134279986038275850144438558161444473754057864877353432854877871415442899940136632929188497304646763951632966160328012270417348744809859300554435937558362019860640967556527788574888331855285645035005940440138361140485189399394167620761294672171033324798998204958817495515982811258188277538243141947653393177197875565023966128005161620755777262947046353111585253180305005693328534726682268384292699464489953817553198591204407277840907421362434886805985423008234929384934955876574332366366871822577492519736449299093380652324025316738672932361651537974370586871129159338098888979484624267086761933223018616433862511404052562013666766830106961828577460533033430484487979408897694736511766787618482643383591198736258401069823256133116715616858240833111536495401814973604727420860871962508890568021021773306795215631043112376162665384726262068123413855812962809504335871109196048377979175052606802348275404748857368934077256243077770747063537534509834121801644983806057546270282844853411763901894205443424156349814877950353165618224521764759131679787049680687606145685834665189328107489576888654444958237817078875052076636540034827959406664203982679308739846087721178861696841087420726850447237733218813579369366920979671603493689151771406130241445893651229814688668603201219723213742732287436606745035769750031427425949396238280623002951731516481038723979001546575456510630605759609694350801928761333358038659167186064734684906599101333429969893163670420614646557266570092602382140358914720785752277550522921672743994916834607307703876177152371886591217110122480670691477305764578347227152550187214847806621811017942483500361383941543788198530535775715893128300975930230395423936026308445171457799662965159968997592106004615119812670036450351793459298423132031664324850553929677450371237113277309775787511008812818882786018302835564503319715056693707539872384617751051633589966925847602322419603077150340849132019778918706795716546553920421585422349565020946397095586832655712971963110581276447516797506975692209821436417939413269669961849785161265958932502021807325622365132481951523582594086762039585720674934123263209867826989719216897056234903302326278271171542628832471831999845357278692757061146373075602716338708985846181369597045382982892003982879083636565876673916435331679452268685103767484667224813318202430782065566128452883323791409486228614708708201911693939279159746769725521516203003805904384353364566314694335588107468423371677906795790019741448618784779870617036547588301887927998121604998089018419333999440763038336848090391479734000838069164177770871156801551458965895176503235063684850454243904804658184945780848636125626293577758799792210651928562707819931644292462682171075155571528960053279355326487092533661129179559799522699589675218128825730690749331573512711712605038250664907434350397755542665864387740310919450743665025999751350209474013531982533231647668364890296012920005865607364709398825918800886787295715883289816075736841545467653237486078366073143266303784588977548961297182818092908117693441382122673779035658558563628546111476508241178199570864887097028593176616729274360205442475475281685991696717730612947161560720590619801595178197024405419862445592789979467176799950864837689197856543309177679651175271731663625710317566587296890810159687706896953772373800138398408490841681887723901557743118916534886507873177688032867702497643756489668881827995440014054662061852978467665480876528226794006495902123381516376084861715613260901017078767442704961275492801168048461590641284087974333579815529700830111050042279962097750655427094845222067597849660333466978747472080963831869956900499094091629262403656073739757496368687103190210856411820285238822145579204539280078933906382011552811636571282242629826856347721533539821081145655238405183328973227724971744023884039210031625311477267244061947178239659885900319304557309979260006443839579535189612658089158387090876623036328859525627754100103525850921529797259747062704022444852682844670040916754027721950086290784895193503189418067755924707375567041051031680857903547464520254737669073355148767863793893933685330048916000463954776382755189651273464680942392445431052319664342205888789040776424966225423203895249395478307179619747698459675222632990374129063989035357904513127554881947950354154520684851842129704541277016206427037395054621777773591763971110699479770787583745788450754036029481648355119749109952399478145205890640308552617632003269071928940524092297291818060253796605402098151208597404487828502735497677023068234836586067537528001843468989776602552659134472842989321786285094040962156291558890188647177705454846725983138623290809911428428038374371897156668378802815236406955389467085907847300054419529054028603570672564094331042320460400540200135526384891141617675205185530810411394532435820430848108702601880515037366205135747738730852591480674661029625253199659742899375256655633667781692141550901115661365092115013421574965190787574505324992969602436004940037174190564288722314837982264759950629354192662552566385620074743046735690450163305171338184744337404577227011423326808204142731785590593881025797492178563450471106906388578438476430023237047734306522334597637440013938500965698349535466296981862904080759042280405873285230262928216800719356490707247678088691065196054124298187489807823226139345923822143011905212917426654795196610365131293290003728632078009433238689142260754787331332090249823449473651067347906660331659741622501158569717846693074805522801469469811191615575137342927584673706566034948614140906807379890568403389186059472677132414974244279112437773503623355376774612943028006391213460120336526447512891595386654911157651440593010182227876420713844895813904037129181384020365741107456398480325416702960408279213545871424017686880253959136958803403272239907371556723741037594971188012687596692910018711440652805273602047340223828817470433479772256569636503706326936753016889700562634822535801041773299441395689719975592048641728731999185618319996895802665528799741608696138440154179038506000631359369391562510984285033056160950851345240908353948416594892259716370948140188910130139065540720968722259776534208483245926021897620294724044590197646129009683006783722333281727750855417047963753494976717779704128893139212796007583231662391668361373212661039154039276654442421171903760315645347894616014798115102016372297476262341042797046177088879289532774580352135078014553672962566404186687220428724427510510902358876400433914998573510890456417718055469376689101723397844800992653925404398283127437745643919819271760184007774733063223659193363089484454133762123647834782312697185763032436044098548818477652491944702989088543701147698342439956061081879416685208267469503974362789972621761388101619041275444938452632398421326711215481221385657696665068342835895959537899045803413937215503645132743647977144377314853146746228875309136834699250835788375138666935710435308053341890097688746888409731189586346754641248596540859386801527798750416021738957650571059938787480357394387283827237774450093410872170989948636993009122908516154185371881266709961946128532269453865414109437202419845524544088308004019470100854115151101006008780063402038673765943853694227574952994673733658741511321298979006590668228928399590333535803349815648303261799343007609854213096152513860135692067570299198003984246359892418913181240684453425958308620804316294315468527247259362757618099741440650367022813903341485095005105446614118801026225597604549374922239355259771393565254918584101117146706474803181757165030758844949141320913538457300353953544751488783857620322527206256654756397044251234078938296869602167059187971823926015690936525379242337596459894555848366237243172616529936114929509781558945950326995755227353186136135204675040777851465134399342373419300203032611093584076923193814644910231699820631569595818034991478115883112283932636047433041887362649051870328524824217147465325144383502378227173675058079474777687120793666487498071377005524884589326794769677017487357639884317964762855784609931121002669376627129306984186499092188553376357069996648399040830849940967265636536287343570006647148840308078793172595771257901558454614206422952716647752875410502155641284935394683833339128224360867741744013132453302774057986843016654118198891547072466486668739629174600388938926952403656883257929229337783666263652678207899967417132778800028848722225423442906264174234534403887634190134899438085539893852882006982951977115035904158907210673535505711936486173839050853573918731113152450796454024781184919993083065618861658715551958998505257032707633914188498736458499545914880707566979796249612954751501485498432541943629954874486812244096171000827418470250061397080370164688363488042644837207773494969953385371534146253689221143886923333810629550823923874905104991841999172220982058287054606160137587251844160026278794915776199910185391650233802325499257138613952224803604967654946158608817062537424980693941771324487751799284970714563595655347453638084380134049624995937238989532555378288094906108836752288034769971304741532227064534534025034768384895801388002230807045907492739783407853541174019454203219252057672494401723471895015389958863597256749097992644716798655159066481279197753192868865351819352644536882023893260503083574485662425757625578521803652628115566757251107824815503508158371053164703604851913132490614428768436686193473683503741257733698501116073707922555752741143408660518924482183253886252234048597305830155214646252811123248068859892480864192834379672458532878994363195061965641167291549651211126413352396772030383340423065422949374617644317866144309236443962397863952852902677537346653108669000348222284004325123892754684317433804596831181337800542186902097900114507350755150048778997379591568503275328141984193129937386133905241573597793124075739485228130702606998933075388868890699534547621345109101337163310064041823782015399881625338293804708796456621089017119253137506778308429465894194475765897186132963629271492600188245370486858183720662187011494100071559723354026182506443001333764896250531028425004355999210790957479874302927063405173360031412836945521114480945803192517524637400593681707968540685464923741360234446883007622418626458964730871153904509897016169653445902016935204406881841262093608070046066846557710670510626778804911437241146820012609236367906135020870079651367204885140712271447906860057851625927412239821765415924177667181375308758878197321460718769875464302309377937645964289534209248212399755724170419771075134754700652392859441018491037339935725461639486252715621344339872541841365703471981318532392280565855273323502934482783237536952054864753344676103437696933149214861398649535033629591301006013204177802419974055293671635394007231190080976901142874357126610914153514129859947321065242595273435883767756835323392164935123124944546208467782964567033674956934993209180102286590975752315469819876396808542447210380862093869073820438522794717811287259938081099791717535590494920654168574660372793782626530170190504775677925728013159220595456536918790892072726941538991948275993067734814772352556206571697475294847112990368190834842142223253603331636599814415921677524506332558207750395465171992286569443047199393336547414754998085683916185147580956896114683664481501680184653650713458940428252510904484293879995655383319845220429037553932615010075647194595607524882952524563116863628278022814896925803151933828236862092773155981498819688944819183065031754744219283639672544944774076773268023911138900161925510204662346782394753170764033369653402293726186110521234379090125282512931970890872379231741771248155098154250775378669140329714979462057674733332414031475370845983271939239373597492093641226693519119597270474182132726096619421370058296555136467660322381668695118377217242626815235762334244421396397549324331219062817791548999191242611548597448188121544895946224712259623676704622879043525114504308648551966959997271167756719028609473050972159558376669325573477567718861510478924166843722667247112275955949135516821836314386856523982962939436880762710853323579621380823001388144896078082842118909383520863930395644434726552307524113391374501107367273807777530183477743817798242065965573621418867170416547692719942420518762614949822525190761077215497721029819987807022306309506869736715263231727074659195797626149383956774067950689373587828847341649646644849385725940012711771321872791869737099347779842915988192445737580327308123210124953187824261505807867004956660751727307694127031871793809673630199509541884097672332140965754491490703392864276071354973576531653713369040495794315822326982349291337490119464969435854800698254806291563679486318047961743328486384888897487084432234179666131258564405776317520873148798558643422515637685673619076083761434840850876546407031636957603151212716323322146889385881425983115985013235321002131027749071938996104743336737991241196900069856080868028994952112226911630464834409633498220692271819538147232609589455982841386581113651557168944184978476560142712335953801618943031856056583224884316206479763103669875480859089741333242163725288940543549775312287735105573426509352879074514257336736349218179793202257248420545233335328486385516339912808824070672600033859351791091468562092191152924483876949854158802099629237586200679477880687314688213685540613004438216989433098244281533135076422974234074240823168320622024829750759301503683910252860211217625554467359493116385120304330790455473467068159455701479573182142725888632335420383873675149983364092945145000035999536927929260459040883818599882984898219347874878200114935400867877293764738711288744195699842309799238254370572225427088764501115070990768657838828606987437305321083938614835225665936394663712378640315214033424180528313314402996291766569936643651660157616423321998633259901906167875318028268549371683944105012777586765465480861829352787805989435282877770051158354372768093862001116639819082556326782350309490944001642139394832298965848473457652137575358834970322674556553885420570045244732360767830964639538878980745392333186989479712132407342892717077720398998019115373094077752453983124472818404528269434235946183890820373473360809295438020304046693620322880349732931277796779881747175163726436927179628780293792540434396693745679640881588612651925240187324825436565970461321517433572245988384831075196241818074538442189550334921074410464429690525354613501635942434031021888524640165767727133303400362255178804579719630953919798947469323298233457243936722567434205655127569288940893924993729522593299476274671922031139608387634167309137521755508267502426016361841959345926341483945226528042423984807282903596690835381227531951205584880341563467733104641505543270072702473666913244864222007679005912254834729436169198169523743679362791277449123963513613089485917033860771346740418704406471031605808497256124771453067390214829069905467963951680306604404127379813456852035132518889116409586374836646969796415153691790234984070589438421030317013089426764204273328876327815068332224865005191738027415390596753094692681690886470550487082644763982932059266211897115318910808607458622089246151850983825845874443148189040012499558490001645836700519470442313297965730628314585113804270008207783716632157856267310301321300847834022939997400210346304829806463606467085681240776204753654283088508322014557318327054732677274859161772245570182376893586313230836630892260816054537183115986226355498426108250550286198107821713574027569676913168964139416409480421333515092572503113366775312735560121711065896940846981789930530671840494975860754447313087116801804843937349284975115590414805238305006067913223145664738294388448113340891020696125294732672572294868853148606526169051824823202074126599762056631779069268166337628960256574907413507960857011399369194274924655062776063575739539669392314855005933540666321951672554575549447528432483516370400066156163785403422290033057175123079843680081261168564189812595556626194564959470003532789264416290745119939891882335089106438152332584969845498351956790465512263070271810609988108203082323970636387703018272103050666729539780033958282769979599442991875212642628184296834634023537452435211426903896987505250995245097535835992472852697685929796573152138743129629268034948355167494071642241610136204513577629371243933239700653253552456749600454667193032658858297973452216403362594423831258652582567847291574954667066941575027157788812601153327749656096937768046220999057219080059016207503170994873748307505570132605283269618523485789666624520236768659477211862962002498241672672701070610376073566295570702649394153498613767237250242598626429795596239790502161736939093668090174838364596774509221915925951588403786994108125675093007760617123547366858044215320535393531594526313522222307869333479859292193239682847043403228407419920802573710103312277242597446807087880720318234440441226066945367088302656799209665166443479017494570080576867666857624411675776590332176016453984932806617102548635104205858825494245831366179231795819267469304613291608958699820584990490946596848213530810054344721908675474763694515762750673723373307764055917721520666691193033722625367673590575388655139262784448743826674873997550916189067579230754503714911211115232014069779846907449663105046065212248826494713320425358515737004041368680081819110057255154987628808150772122108695882962425996185038072507825613347443902519942598182524733023777805865118582185683148871918496223571245969643442938469052365166969424736103956521478424788519463829468635071021920598624283532232870053336016085686758529885241013862743443580885329166758370697570354132745960810425843671093092075654263236408278397989717162992475661865273732364165830953472749898946240056518830972207117186006193852399521073503371422174531343706492511233284188438181557990704036079410434754912392080762963100309959919002580446009264834298029031898060780743564455375946397712691100987912425706167288049529929910984164580406294294393950386090924138294812974778531799251463315367727273285888393841267539010838595220609936777368257929242361354966396100616316547780657287237949201497096988894424266571540122450659530045575298000193138027493207114001750805729356932369332541630892863352602877822524139060720769376835625357826817243445757803715969348663949356767558326497893233547741420259991886190840850096246876371940387795616356609573988200784099949121089285435609793882558787522371790832168706569165075167971921120520719292436987667200093998156952524622082424663082329122887372863414420347735818132770612469773859065971218732199494637880006777249648185045372665745043173367057085553373467635850564294400627450690408013743183328950178555991853384514039708685158270046354964521279773498805014501634418545467779957982111183992333274463075018728986885181152995225253128819534053762916166853737229163939919898678983450981083768999243690799617956534722135816598680617006437669242057768336293901417233126333220757015169773857481024854838290651511985056169997091056044158692242017663226790886787745104248400135923504984132999289470419145550614927455312494805011221338111862124063510200180096964189652468891956254968376250692983732355351534654683371096194538340331636629579192106112471376717927715648605975073788331489181898567507222480561868490148202236989544226189279735407277291078679030334807892699516737219968983344993201366290749047401454825770899867497101258245643499952210616341076837025783049831934749748951153005182419986192626238179289307793890789851246755024869644025964558114140837355803762058374420703417412101672339326251178287805312347090862751284346052711169848952554426836892091261724792705387657938983329280710397702215743609991576213772224342057201080531045145001458211051849784340697085247177736113115862018079878507456670299561832662402626607154868432280910994726507628666413477687919460904110362547599336096976193156321596767109412647536154528123068133018727843037591882292277342319216658412135067095095102106716049000504250023182925876579769887421570702822714950885489066533423956743806987483213059842269475514475456161327467209556464240962605543474483551498182509406423010389870195254726965782025028410008867426509815793055015259829740554804734216912617741585084794008973252240999642078052033705465591843928215561063627173993577271436048140620393098982242947341689557160590283540205281488198516814039877774656357531642344411300802149175154432755393005124102701665136209823309206368709817026323520683937736520163004624769407340282162323117368471123439404435316087571713672105389848331698635756625558920239083790409077197385699814636093404628955702709766659229367442050343090077922723098175237893374019512232891801568484468446698860197686955686528483555483029302520942715327568020058090157283611330540747210304232186761550830718409115589749903148994003285756354877607639631804518786242340023271016240380320514056273222582958168599414226943356134224858796718412544443069328151594036054314213628267512919148247682033153888628746607656396463534651400489481982138677792434967809253256364607903365488167228891094786259638880166167441157756369023960212395673630477561632234438987984627449732584066238650293089306492623739880135030024636439412292256897610062303124829856891443485452571447563772497754675619026099947993110939945453880133082452119974906054422753081952782705963710577513739967001778654830011274576134221593347924128109856633194143577615617919268518763403697610484385278180694499875644968277695285825012400247671332273366094116792530260075758393008605616603382158511058868844134290865367456539110578356368381802418410778412646181354070227510033669051309219520563623781263001964227413361601170781220544039016924781558344519721299819858473633391739170884362023547963240740782790128650909517744721340482764385340910604105024462325454529747410424328300052638160212621749262445182177876946040324037125657740396046775044580446389396604370747110128578510674017412118719295926155945057446805671394771454629248358334877278961345641798469944125913912231034082814364190963369903749638267124129920818502196492787059533144816031888889138290025529020767354434517888584461209599619745882494943181009349687506372851603519465294671114342069980865521961690234004675276508031081829754629648040055824984595363932762734093610650907515483197812634331541368631310087815726903087777573327077811622170330813900538369942651167998282403173393330769583633544048457666024725732751108910775670120209100168241611762213501770157312266527505046216093126095973821856194765529518252558742440515712105750439827512046647719824183069928450418258609105809293387252073271865301747463378864406433959005730462045453534105443649660416860417737086641307485014048166462840449175445629905263876596668440115293002238852264322286595621466573196367855443658963767708331035266431399040987544275071626687107884980082554851782678524825032433445106265383215373879844107976603328665328097941546895497264180055771225378541674263405929682292829782255450686989578415871612436051030612687747606950981540802512540224256764077198097414795287326757382469503423107520057065841100138030748069380781777711002492037487785738911896705158349031099663076710042314592570088230284444497186951619381657392323913585894236633853790999004044568067929617522013639008835838356075545319211233169979726500501541621617358869265809704832494431647507646557168263072490273377240374789016857194000712322086158258443886256134921947692727218528726465317222150628805698756255769748212229115004083131499382387332513268771340094246909127411444862251926722810186013647028432235534936698169805875419283032012749564029212073201891305927962169130525075136719456658389130186792665756909815867830190220848003432665073218597354451694696659927035682678316135117071127750830177279020798902516512544690567139323830581929081214278323992969716480648824850858514379721348885327070770504733009386308475204577294584940353315640220742941631762332012678557670230704215193133547812403728770683712884232304581841178802828440366621800924444580840436570296933613181445487246436326270701875637636781328489534971921261414735231390714440400542494729927217655045566823719197862969050909471963069054942185512322759018217970150823878711935765085011023357172752480024856313733683885117141720881498249254391094442238821975021497876872963777714609613730001289452691381400457630031110338945322279589732106612899519685738513888426065837849102389185418025876756824699650862521350919795426719991484693590788943706790595863546729935148548321363226989452201596468438094102463697902855163897341483968968719244296902126970732609348789987919039217172744271290575599337635633960916582735985192250789996626967414159046256671555250074994249738121105546770740910834636417700976147473597299462829290428326971163830172626560297850877876816313653328134224740367493234748811478224366774993290201551829446159142390788682253197355412483581929844399686064032736492190426222063633635960856570833335879516439068221418169684896427334089455676244836237334249702295800989757269693246184915372950800588099789097376381487497577269541369473487957296803015555484925883801386094448594850339173626763599264151829886723973890353382030712441328340579973819178371170046505920080445052375685442238747367729612067761040127012041890894029351891560716873116744197834923375674558447966502579728831233836226685845372101748113267940678377916982034453356088102644682834961393789654355029974561520511230467033555985522692648602681569894311135467697002455943157937842113839843035650601917416453205994874107833251589643226459284392077845095182223824839836882710392011732540206493724965721929176654467616789535023280713512018170755452024287897809933946182734751702374825032429190664193855280578540557949702540592933886097145754534391636829566861321802280584611124090195807539282265348898287765331570699454617423834969216388797769768856781574411917910925637158375529809218017081540109007677072036114861650952385027453842383942657217221824443019001045639278408196120490281794223647039238870076353233281658641100102109767828831978490439649618312882942766194477874156829512463645431155698544994994141215168860604494084346919873675797942808228053409161501464411030594360465585926955404703512073021161700613997565941611295670795525581470750200367397662189600453057460130361768367505882331278623643528219578680441112599587157733448520213924249891704342039607222007080016521423047158928331750432274596535802761045114879809024579172117562675661849470999312558069820687864467417279617002581309175345796049536922024772170244535387388348990227757390407846854664666722619675506563933029722030280169047789825002954318211719143346936750053259468885343493132040142240355737512327954526998575347132038061106477921844771549013601333243855523757636926091893608036035738833451026766045728085191360991901264379462616199344433524836303367742495346879378987154925571922827833944950809626853245773836567982424082441323267788687565002979028784248393401298828258428937649066849031734930530650102104424732547340222351690474672910868934987432670013055228067582747765466941227317656986690449268243150424404166557844076170001926321528699479869642024604020396901289713031934566254753614843825197754496199965264473045684754631903162712075507997643155007065215739098416840039631537843890283407407299284922825393953112957601884884798254068608572175520626614670018831608450215750694027158415992014676123417627132822965277921086772037239010048370898827850298253825816858755236210616934323994465379064912719018118297992115430457810182437177037192068050065248111543242002429540346205292959244230282000999825084725403238262226025083820485856009941284598687458554307921569947958463004530288069818954903729034257749124293851967149052007938437133256716055783125428800511646907811499992256622405188185104864955428015035986877236486527456078187371661192856451279866561048633683661431584833986641725135478028823292953392850846865471394087571183067609528120544666436240619296227020635662031022234647209759344427603801350046544571759517699694806020193078553949017237299833646462339075264816203007520384176127853529051044423607374039475070489102251114594027974265953991263353378782998430313539113930876626381058895018067031157589602155951437041454570475485118265515348879480044904963805067819930182089317456389821439699668799625635046352136237732653092121927130180855223612063410259708548892009527376431121027359584836426797094409874063788099154985215498053746212878630610822921826343473329619433089008377825363339970920068022365746145844298675337425952070259781120238863125574153885442194092275883779056308017200295976083136761062675592786081072147460614207763318350200860337390200848248940025271898843755401234069383000597107440526927555788852087353067098849089136957457546270673659939788649511816464287641251818589215118117416056372928875899620323378474304071811372176093287443130736250532070857928981679077375063479169178430260616321255471392226178825526972245096031555717831375956671817266439140875802111332216799810088888632443413914871849689498502785542929102026765928932620841132774179719702871931978805066886856954834294061166888394546858788246443191723474124729187514900020991790538134201999770565492872157484838932112684314271442688850790028188916844236602519305982200732826858428483364813089052985456883824668061546789644864438596193917491802163730390229472674730297006933680715571176313061798601647293759466947661324410549967132493045304215879887527441811063015857649879307445162035204932033204452123240893035385073278786757881011679405956675682056226119033816732099049138725164368043390372523527260017394290773111822553683884689347802884858184375395825660684350800579875298672142332671347916425323179488846458198643583620202695284354289932553038552237032908478505806169011545025870439652972216616106601924452253708028313590908031233146869565930044872089156157843885852132238020568251679180641659291544818159861037999387712101600926504033875461655474994673404235612765608475501839794014197953172562706980227087368993066041279271266073073364558709043363351139086634728353813206648783653216392006332778683119690309436000047494328981768024254181662202733416491164892141576945307302683757820315381974466627145012177431136775629654648419791660217561066876444227698255579221308449185133030786038193228422865436804911753698960733420060379499723731903423255518380979421446010210109723523493083757897940061237854161350165910606018890363068547128736882047968203189447156521267317009420833919671110220108358277429129150279433557186360383437453789544912266737276276979701527050424494259955157357935411210088112373132195765581063365807639955045248799788429542367131778648732426270037283140544905164959604954916632915006508626563485921090653231710757249105381425562292844015475976720715956837701721093201956225974589434987976254889312718412745413633181924425652468751469215944816320950039497438036566647144847599205917276980206957383935356241729154471747494895335038555576038768855917257918632334219528712657544263313303713606608428264957832571572821212830498083089398834263064420567330307168558153057728096320562784236111158054544530940530076392326908869202551487181010096774374944758830178414691827771874155675676821592946183106003865106899948784580123474215419337878878963123238747740472007653628314198489633427292898121313819160893109285833956696190848769633265804281758957505965875073701424207360559373681519061020960339918402099112510191930670781027719646776452768579988908872553033220566656163624941633874668371586179744411820007776409558160298624876054961340115113157594234740974936954215570035135866908197875242508851317755526359148510325293306718191095660375477794380954126385789366907874618123176583717665248379502023558817085976435040163593820643815394154011275191914385563090020580234064495116410920726221343944459954748256489025502315565128866906518432500675930182106804022139619865915674474408989156454996453269238313820438371699759226541926978705284698858190507392865892882916137201550320755280152866756581265493573510943246574037062270401184398771241151908516816831735085900271173552863537521240878263892126721940397938935054405109960437660373160987041627077808593372960754893107427132496455855418606149183583780236054296371854486278698656947615586060578214055742826100389409483960793696153066419998765542012524659277490205310278850313570285704906672517576385966393937409714628794007203466703785705364724948007948976257221538262605883688819767141127810222297425673890311990819516389650937443478588618968129583232194653806695601579541001306062251909940578465826422910454678515287477180012546728216793621884097909436723607687356123667466265495337633789073843369710337847468574065330281727528053479012669302575332611639290370984932361705209194817444061018864509376930023116740146263009254208231837797498578185815203720100069014476279619074255459791820763608011649220036892198162664379692887869081502896096835663857368458974302390491423007460632825450875680670689589116933822918181491112647880501804831191458587441231566936331615163464536312824965821340194053157514029776267457205868916382183228801773480635097387496703982317006160369597413975664349742542602292899754849422484033479183423152272469272705396209761171867641349550815841163246905686276185705939354900388577144459970532060797008902552638587129751790038064672543385839260802082164121251855205645465903550800080076999243615439566279544648050821425577165565652066332272507942085874768559688485172455063153673478267410512908604300215569209321518274578444927592622743058402583438468846529434721448458451277657030061829627586115604391081133383436290087682811532133808833028337840222971422753372469382957608367391710697520022317788826130829128139436941704448907554309661693942776978006886558235225578171073624591802457926908137691985292107426089921754288161621201190824812706964573638347046497973341220267914145024738685770130840808459288612277838128905118012680802022689034065741807531331688490319589364606409583822577290671841623435361414271413047500979947500427748095084254938819773907923530007563368495378220117676611374990819535564510712140054671978506785181306194595181177532147010248720321805003253508972777104168986862231639550082460197376860466450138965585068832363654512707078178174081732067364945729032641837541241531888490056626462688462961214361630015343380291330185685951024251677563144852564400151268557413589358774899039658777896290407002803925137888232280316463536502529166316898284263557106680932154840321935978115524188494851011420184830608678865624660856650000281052062826261016010609251764052967133635102891771705039179527131449043424640527430105751405575629359639839604399127046477957537225733588262623408736473823951398090302261661943684998522649499232878613486584867126106267005676019643378993630629292062569079989485971953046380608798848570337851057216582922612044989270042770845996050352391019415420284464238784977490172245880368260226086943172340116717321245548796612356751988307534273611184345009563518476347085200693185396387862408618805099659015791050728291472577309461997335346429537252050332264484207619910899506424344166597970759110716563847064081918453693389626950261257453995204510606683104813460014817956252495758159106604360936146441927821034642520089471557752656189162315294399380977929637784453333712941846749173769669742782593442029246050023935934651050413162437082740342153118606406314899551016898018901678726977723648855857452376299298269680645760164318135996244146187484021591050265219481833902736838226193088609836759029845537512316625129377344093941137550408474647728973954330452260424978653459928695609215761599675616908230418520572855978121003734851254907294675351855775109041524165199991214221584315689782895265140903056386029995990166758247274414434250431052098219256812684700799582710822716752305706331537929590836413121253020768074754031190414069512702787616318641689171324766257921448812740124118157806179401296787919025288971300724251718710466084036783777061689090699521849429132319107072690200474239297152705534565723456775164592115892700246901947642313105861034222247903420034040363927501624673466601337800141448334241741032634327941304947250938497548497790551799331192855669566602781825363157641009292657976182453297478021088286450726507414772920284128896819748881932640355131221643363423952798028799814117358390387132933138676509886343128522849106620188663370477003706268464062177714688912810370259231669923622085220254007594207654011576092263198078954846141743128957407712215577714297995046738367978883779861141819967687221000766149248587512838450968933817163356601632113107514131891361791907179927797804863270146117617636144840099463577060037106828818820833765273754418800272681566705725939296984850946031971125114521940168936886333907229606844877274080172836963033804374509234001781963602021068027936706708588654199623444313517589905143410261501504581503933489023025392071893021254257959435096836179462026829567328774121772726336659185867234178143123598950008315406461713029638420724246768520553847180214323584047064928477130537183394648883116514653101245143628422561723372199458772853009921472056121213871268059384529066817528442864922670621731623126728820127988414496950727888933250564268311202697206641973964699560448748114051433831247096946356259108547432187029467321001733046184533723072646559229925000971549263680427541903089195828612003888447199112056710694380154877710208979837657629980069209162584107498312320663969329189981539655046535574038885738381873969007325081182106305036642890842475657315158115606083970506950275851135574358981166024395837013810133413216050111305478781156650696174157736976286950393669028432570592891345991496043714671455235010228364856858893523335199042268685906955172598596494068757337944740019143484956052775276018004758949222720120391289122037181361194702478895725304312703082238633885200533579417268499764375465420870749480088799170479648013312491357123168601808449343575499671034474355338080268893990408276690556236796743283013644147845304643243192772686612686040607340800324265149081614370156463057685992387173689663155445400817852768701319868929982409565603680268200421634868311659070909434650641247922041235125681577471706272599011001708608550172089786548427856101539558152293645632041995968438300170162371442791397735840320743187102248288130941528705271703059464628800584005877534402145669143795942601098048236893755541259613476612114534643938305671923442030471464393079476533359185968852475723909890178823682021446545670076944470264702403051683495549282222075186236121381862144639373792670620415167339521384086622995749745150524504513249001522661422875366435789860146338490899897909155852374081047445680055009000570747549667689789872262727284194168330422947430010818302173060135642570722030533007123697378108427170708364778135240520050400226340063173540406809034324976985026136035034757674833075745790914967515481935921322470297220702019958524983617247519597561148051498443461097466305085385543881982488843743990968520985725114085567856956866602832405842176122005542189824080926578523728120142558841969706284010018465773626947743696866435117875109925569657289840611533361857650759312462521122125844211161582192817702494262974245338292748462379160589657001153877720471568322625747259475826847528607867037395271779364848208997031592594371586808100599798145979164460658681103303291563794046331772122986305377974688830579612528250772391317432593283728768194220851018820270641846302597704683783021480191621271442619597154771473403427951578099558558079726918554071813226618752840214368898556097866775533434777914388791582579232872716312733033285218282991515383620418769428979869551835571451784052938257425081893415039343542235525772254743528296505430699952430079505899802689920105673647446466203116789883189592940684712140796564749189063862814030669363876707003197237762040113214610703869522858069055369361548753161804247681326979569298324353662302199080308456557039931734593331656242470859935025569876795768986306354264727228002145123916899436854357128210334573573874531717082805878271167027188145681463325687974500475219189078536549434075761706512024748639247519733160589665142633492834191879718980256233404851639772050215468252208159726392887837749383449275930021671099601986422931851695878225406370586474111754838728848073799915876054427777257630322991409018637548031168784671886720223868585895986195197305486110141606608341825650983479051801823444289041288247740582191062400111430121648259915363390652495581825845568984685994664827046451373363486887657571434147242825329806512119158205710420903971820587701585131669766463982459333244133611327049499033504636109092084510413287285542469365655258504845520015407397265364793976898130405473187070529658308696588992348546332955966334055385020157637912533773231235356263542186982580652658126639781910898371931593645582858094405687760864398341551513420935797785776213441457341816765341787808692802276645515199975945643405250209100987891042467935228419762128037787094162624817311333408136407119885635470627267313515681617670162426578101435908183238599465231640525677846563636136344744767159948780078819689790983051672382177777753884289570713300101637086075515739783967919317031219330770471443768022990664688759850254481638392664571772534068320250157186231014271307966157355741267204719018567043541158837152246188565962934716280794849030216623273652433527255017009013932598827551996830736039533179456519241790735114904144259351731180249855870720075708631660700978758770421554595265326374748811679499608660534037655687552684128190129763716324354291214237552844629538232545201960806435625413635251569893570413826570096928371583202635226692914063555144779456660738071414124040621421423840690069433544589910651956707315516591418600145815436978385945271098744135324777272246746868216868234621407968119732634493051640830044056864177289715703897029736441219513079088156193782688038909940711099381944952640315176531750120470929619857595512592559899675977374951382082112708440682085500611087434648772294421612699864003028532855899016918228736788114310634160233694130686692981756910309410069287151915731431865657418549797780690002301143566644663741852147096723258917998640211783646509279943365030719331050585806018690903938165260716504401243339452970333181861669145060406603834761561143751233842482487810587625748505217124718787420807041876571474347032981934425000109617702897191747467063966976996493406625113724587148711982140212766866966587773696510134674297457073334054337735212034428088754204257884204889572014881423449209969331064840273181310984885406263185786052819398141703124155748775052371714687302367098079658456431407980094914926662390457506035143982712073427392516034354254018920938371038013662036463499238141700865548849484039011510130661260958349789641182095292301560421398798604491323148573810933612912632102402234967335283915413759935441604983115908324517028935027526358273634605577176723838670348076551635161198579142748255642318714917920624726191984685531793282569977121936376293190295485613743114703111843958910898250173988419449374121218787374780437515774382452585213107849391753744046261409375101611004178183974732431069328431092373456214934883192564211267321499749593786253341782004149649003012477441500297731836095553281222730049359296660498299726454488204797115407234904574176827138836287963859730875825571701604046839705802036916267137652187932007482913552336319498484010761907680180294268208395456445743445723070118440157579655888192254789215400524984403673888686208248962905424897579822240790784168137765553622442817155392267643952342252521309436040838031765562242826846471521159500344698452224577590131614151580543433474542943259954958295010774745239559195825285414061401167971308747409973073705835111863845781353025961740702670634161890158131808452965864116315054574949876603320361123417955076662713908862507769527614862012270156414778300904737516662271624955130729484084091396751094479825905959529987170638005441165227565737225924059158016490813550494813866832339971770117986513279295196292015087205588729437127338062037975599147297504410256425981520216326907318525965677814669366484482064562648702859703818468166505778361840692448985022725047146998912546616842973012066311342107581474761371372773180067739538805797495558303827283349865757054185840424852774452519186423389097992562451536144264386075073242223125554203414191709838260415014743707179256621999317996101400605692339021650418664252472607545698692106333101890615696107824562985830612478397939051714402774337863986243973642150838697141491298534487434680557424785249788993983503034653438558732743725009779637590719744390357641924464399391587630888074107282815021681202425138141923261330722498765890183173169435473708836984705307882150365494248493153619343045289792659708421080494207509753693325469635718914177235508251149101858930401687580826728288359429803030150095244203483635114806215615789476256868918624946739810139160835392684202149315213889840773570480221910030762487126481425334283614318401531856511373814851639181390144410576475165414346664844006473038589827290276157498047428488972184985675245885124864013884435639718049679635358812978485535366060596822639709244425311368718042609640675169275890725200664423198482391790346157254080716550929399350508622058010471965737419810504918108023167784722612699872058997716674047903603031845980278444547173508553489743811927106442383208572595718037277142592653844710854995891211869721054982665126808052735982644822927047368023850085646277183768816767732463373341471096373787122416779990710869468464980181620549002589193682210986068098987423015314206706330327756819617380545646868080634574345597787780227760656753974569438240822320402225254400586546219187508778100166558452391979647881084135797359762182891948060943097181799459595619615796296881757781585408903188973898416010097791202875983905093497325624060285902773876475846046531273237993015653673085012790562151138484284097632589762126788039153450004026058660752768248354495008124917253083904459254765448680934111104075878567219790550228370440311291847531942671850649067116455561793376639296013027377765087340758381528911281373993776411459040040375858576106352532286660211047388899177871570966918199011136075876701878641161273810322067312624100618503347100072704856043245927836075722842163986745917122282757545108953088896925714517984198959989361173365170930761732728543747753094302864505561835932384064528306936761747703865140305152970406965303291191523302029169826964253150284950528393192298505944768607664307491056602997048930601372062008757126059034586142887648188658035784449640176652368491479229943393165836520931257293250787772657369978131315519191634281392703464894714518880955386367403612209574910919592219518389139635190969647669100327133622889490692091638698691844383589290225877378623605472903883708891876256065532836974138154726266101798409560975894346359803160216369497359610606970278152326274141157640485846730967971358714327729432647909965933685533742045763215062574785270783768283545545716437528959485306100193914183285918574592453802903854528159626637597860416777975426167958541664690473274809875109698027413497634053393963040899657700973753006730331054445336313049774111681592228095843027964961030981014531514401954510744529234348174392790197090316828237532794085873081984435842037718751750116410035235415962069716778196779152179231289503188863746285471559331763925870509478289963373589117671712498511188089027637566012146828369019180673135847394523302903344417818198366655310373063355516895310737229324816081893114160953233990020187385793878580606145934111484133745819721042662091769342442683508126117998904396480644509562746046110814906523312702491326707164641287131789465213277666611635499902074798507695276821730181994058500503740292955861368220885308191878193936525015202845540225455419759384541370115111610543057783715059643603769770132185404240970191210484161716414230585370500651675809991226500575898484991131792464439820940206675522317848919326401431318352937524805715208559889648126547098490964757607154477200392317817158203992191043083222993124321768948263026149275002771550269870855797175848576860417681775537694925647147041230677839001088842354576699957846221374581426794012307612910026815967035632755836338685152425046220293760480970541488960520438697862159782976798075171402169766731731610417416252186654205050289516443953571756027134485903585917127043975027544414439605589441789843282253217371252922719406548882354380479547098552854298982930213006713372483648174071317703530110125773883758760971568271607148110616606323246715416582151444589468094315850177447274860382509762172169560015979408056179767215293720342445249750547268236670086378083279707172754415607038825301292690859908988161843015539905786249262509392773486935019904095337535484252446541518370714786608810545665924527917897553202395541164492529001181809565612445942528210881018820212720595904427991772609157215055725948860840435776443750229886160654131878053038961990936966541065014314882790790865848504215798806170382384415029222054401883802981847820108449448566882264182577497520415064565079409887852890194498644477838954519071648594249716927667894909556732910643490242091083233971384807229064646726139671879258567255765272738023733587348578387901405719075667650379537166990274369141819807696252636490953048504407283949409032116757225126312828597093537543221589099969324690388900805562019213894994692133918910764758740696359747685850136006621291825030296509442948703605373252450719250387292808250859859178733747084319204914369066613879981312306569064449136282397834605604331245708877307766024881690476462762343339857678342906660969151480474679099017417284235691014051284974249984199113468907540235350873238508323084973338117109668078503731512872719821184774798915643287532152555443579480113547278300708506496849684985461342629762657861318847489230885144948675776904736111885993188282270226863850371042587922703039484816816635474619581354420769825553948276812210246821755343070432509856291328329466448840841519751310279297201498751950533995531554150099819944045426613015626812309638201980073984406723863252361088512655885447941790954344876645661347642931803617683894457630681707693633923328946192910629928424082758247899334319815883915490043851985626977420738669385345205248266679522455077029096324578221160429394235732984624309309449854132766447713129779874558548255876971003388843477685964512394261143073993900512423373920902557828304316324384784493316909277852556294865153499905748825688414485024972124305955426165466180741311697651862635959326119388742369112193265538121369159587726418911852015717131140181879800538612720027559877019460862734137787168271001254057692030298468970647691765457846709058447036118634823534517782083394374471420563353584444677541179626181461090036409458499875404192797506324068067918585543837762111949537979197735136566772116538775198798535858941386595045235443816113573815788306406361173191926734405505539542991677532036303197968006200716206008550888133188321958574551004895877936496014312151492359531234152892376089944997732183754843558594505984474453680894204720699964417953087205465815974008183061562874087177924969055842975161912231943657349556782781059989335723750742985757479958323725983643848232023006558112414617487169801594607342288637775980406570717644812528958370153879850989005394407274588264839841518151288325329488339098698089180160247499585529562386536769729255238580878588131927631116267652743684783018183732226768278359008345967942287948471295767252818168781772862620739422556169985183715738197741200116052083214748820274716652008697415128685293289265969204077126409436049054934566346227778322181578248526183799372741195114502480174035278359163912812006352917266325874705641828717134343879188443979320793278656047557829077460589663730627166085956088729933269667280642343781845389105588889528513992360102452871371574124085324998081609302625333703709351015292892969282051900827016754108299699219265683043083457413903504826942111923146581972103898237458442108882040081646118054386132882874581847258175732568370874761640555486452712121654526597323808745618668493789874275720528170562327808229541768927979326481366511120263331794457788305072675427858622767943351817854160017889567516482872293112484213489052706080218454953519869527076070294293482503580972887679239102520388749538978108007588992170137136062592353491188004764650781855857715381930189480470122166430351772471819292665376275226690207828479108832789540933154605120504596764735177433088821347362200609886018965701673998289434365772643643493724386624480847030791066461081323961989388451198572009128243852430128090322657515224313382779347161837713055140481878556776050564386159156700251497759242532678695054745131508968165811229016581980663815528437010246106961463413326821166653111946957065453632150362903413605120847994102601709739406617943014599635795161352207681710308553155276038734726695073549020617325080581445524797526427281515193941521945107101898598495043369808126509325211990317610254858704785092151502839418624536143755312494597773683035967601968481795511315531023879728723452285544878529612306547772546635394368506265628569682671512967505821184683039346091655628263369390878511934407016534651083416402397291587647540035698998268300040201217987098396730366659778712492415453402131028547649071821402971539106638477507723312222320361668319860514605111646196706402937550059553462682337346434730656896586606859491941166881739956856980590594865142306575687728837797940277919183919020085349224565023635970330835891159810958394069061859832564560445658063167814181056697807716704096555172449526800741962701199052884539314643577023747458477069127921313065621703081250854004135768267818919505241418892377939213882161696275892426295160780587067262378489465116022588271680200114089949669984541381776007804623830748086101328931534365261937908732826406720319272411104020492493518083979828604961470657665668249690945989676967386714924675928590735105729674393825665687227491957874330575925237204547375645111596017744520612077293104888487019629057217316556184656808895804028466415934255579724410284021076638225480191207514684411647629600002855244254994322719977147208404195037663332747584182705892681436057211408089061032687013283096285450906664879030426623482034775373846347593054001854174820367971435572250573297859353849126161718648189432747472275700603017513683984649409153679567498471583616396093388782165248835545980166944061736401899752191273151399736343810056139851989330224177503054068735020043902431230929130949219013116624805144021631856731966377497953346858125031941007575213577721112416985136552890599997129800851797202027230596801697149501347632666087603874697891447838309154114132019383841610830558785291675091661797249932371812632137630882079296489659753954080844687866634151837544005025074315920135259459346957007480107761049819391850820651786213288181686217971655254198246162931717308042770649874265630399554680240984646996778365920671524675592039611484699185422252135916392264258374374350646176352899324590375704808291391640311034532335805167000583432327736704781177554304910242570540003455951969877162118390313213274014997701492623531915871442316599111275972710000199069225445835273320532558870202248569153064626525530320711991593409479049685036280346396371643977516616688626257573901722499615077380664647791218292956569721652471700639622033980935297999905901892871626303124978598663953118829235566259080931351439589131262370826173251582804492811974676057059011301171307832465612262036101610789609660080324783223702406773483276623480381477107919747334913431886139102126419066130155671975943678047626384126418901609376858358610221200521877572445163397387757367567680100993234706244589382486484306385209171588021676230975646556085878716120354686888523629981052651723461182757078168067666740799812822003506525829621902958436325005958693041845832750079075912481318335976549713736955554948119777024542582207230576600827864112092057128656996788469228006615280088437259014097670109855401198887415196395633597833573260599180147278168232516337468603535276716479738414203969271276342523834077790486116537039423772844060491462335434854640718533583753319658884820576987931688277569307256766910857673589511781084049347943335209630551572414310856008346982417097484708187068791648208655792907794279490858951874603278750982205985928130259101451722248769483135278314821366618234553274794890588105590254759520234079075946041600675816315948320690165836564041491658183961300995776062047239141030407905137186113439735772822904689381655336990338733021418923764674177678447255198854895729850460768336713852479201383216414861761810155930298208532039390443293627332348041124815525950830674088027542643173121182440223005949876103950746108429734240525038783371070019230918807939520176441281341527771383686042009359737992151648538960833872420397286975669057706125044766685489922228218790905638437212002968099016523171456109898175019721696705452066317989401032817800964612615493809500381884192812523979885563098444269295099529614034230832875379190469404918166604498593091460328064347299942819237105387622502513179881179852643790709453679083858761355814449896162693475632281878570924903853969790604840425444342833265858749663164797932178107822498968012228977993746270769461058305657190260869947834677571393230060449070423400671754950218694171899316936473240760625372403735412582590528879106665525729814999134739480133768977305060188232369516211164515273625124639511188846259462758527853860868248888404217602775239011438548463175182173869224031862048295302281088864400589029422123022595624795926718274728274119096296283837143399951079736052804877008976251814078104741552649206609511470564705726198155481416023443833460103779127060374177906248113219300896968499444390506083871494940327616362025736085411601037020907279392427193703805413718377388354541174885263615618549910140768288768361827031013101835695049553437720266331887682209449117776161211007696998014492855055706357001197611415984584348638653420538129825401239617475925053083579031615512041559608334960419366221105252457085189186657125146515204713496851858218536838698623107413438051429083585334568602531087691420005124321809421160948562795827501270474554486709650391016780515478567547913223621518862216297952282965469885477550927996220626167047582144353147819957080042929363067456838556763339028899360988905056534542848199964696795537040212825535420339275031503614714425611042383366562644659170515581867919728995822723990059686995650565354306397101245187415969665046354983127865465752159918013590247734206845172491574170411632234848753789694374931656081212113383535077366483131478036796715992253184725470219262783991419381429363261618310369316070344630227478208360665370337305329332293703432757959854593095952409879412734742480698863980796478591718065433866384213457625565121557582368445674394140522801186298558499047754702876541004266272411564553646212780635493903806262966986326204889374842718654964213892025332047438879718906173632535197156713917457481167588347714973871140957931872042155002758655288132053997434701927494803406363459733736746198177566213242706204708323774965383024709773731986830408435016369830147306805395988056201487377838187454724204052916012312683794392564891276615201403914187597173584828422132347519679670811766781628919948467372136885347617616244767184022876934265935817922829578749817855966588601228411080143527452300782872880049650889377684029766512673881529543604146319003765204501079379982849573290449179709933028359605789530138645140135432587820318356845878290616885016878183043137251219978603517483092069279676858213343403375464019250884330374393457137901985048858859318592958805266834168893431207503172236985287878933299867359499268856703984190664568919088016291449044732135734669626710271470923187638052385081166968297657922193827506934780312679929730297302870569566588423927940563555049345698124743086922721401681051260714153415117854166760084291602707470749951647692032675979702734478410483325848074848122036659284535149082740806457433122802196354085875975786288050833949285144072906944450041954883079865657578306486353984237212421841636586106350978859999980590814347281342711635166247776851545383733706237385297556792426508930945112192405077178308525294972127268929572838090090520287865223446758667128482961187133200435456932865403364280481876345911593185507654799189233277425561007149945650521169320939094500964498207384348019531240408422084193187137939400640396907268719868114256129034775829951242193715379403593671743830041602459871308705274480691615172382910131254182782428864904656217668647821600101581883118899042061972110107801465900411742493449782940750435453127413279447154104340518991357372773270078306046667187067906063231804416022874772233861760096937406620730363753083888622032956296809049135272877171117957370691649838771272088824491527747775725399333113833024595560187905617951236426144565124064266978733376211768637454659322289419349461407167031483575198152442762407536483904673530009232202598309067232242523464904393720389618489166840412686727875558140747571105386094054755730796618299937094378089432071651459638697098003782082148218030158322221212559189465328159407808523934660953101275277442825044910427308798055112329507867097093248754098108435529769198499585619876969143878925007727271242861725971296548613788731042561896408074655950246168995431575587965875277944789024666300425186213240523219067078384694077351929218549949301335878498694808790743253429161617543242469547536736411022953387718837012552302097606300118899210314509085669029194751680759260664297549932443808418360635939243407243441020989776739384360322706691092485405223365518376668755489453428184291601987410668405439949903032768427590037027968769473742224240844112735706838908533009044535616058611867031979075742104576669115191522943399769314084048082372459270024554257414202766404739839901945733988250666319313617822443742411398009670653267630136673509480467711471807933014225872944625936116539193519585196972858843642080613098405326304443615252730852048001471134350777430783470934141232079956030094372016660595380894035938589849863935279017298099698098867015699088535334718761910651325510656492900379456132275160441186861987530340789080389387789667987979251439670560105454976278750268272045887940477958914304279275307285832959334448728855817866022224979886585342968780175012612859355736176720102095285972448614500323805002459317470806329019384845323063348753843862176876284714115672300094943269459338758238256018654727224670443934022079460479892984446992165148920677837873181369592721779049411311071242070982406760643675013492088643155325858426285756448062618850599215357045904741239386393394548607324056900173571070894343418031478688436439291204532577341025473344574093358437562179512936059800755265838027548626170480865733925338824293514726205644143020585898179914570486531730925256373031495854793689534543283412526598141027815272372238235459057314549567490449226994049960507351331416058495192436440520414537874380378630195769896742416850353695665678340778243490111271639931763278876987343655635973293683251651084780395700778642946974190479957156651498531270691330406758126027472635482887260584134310352768060973162742968362787995339957045045608854804097008498287518890545222020011048823113441619637587051482162359030171360244558232563872729329863359470353893258581944873159288189199739876158913640382263959676251795168191190060200247077365115784062390176659731569723325831402109500424634315356303797091515366402814707799457628253611307272794723885581464828595615536653217116267847760578792495301570532967780330384009852800392449461921543235001217553590179256199606980994765061687411552307693957581266528765200589736384620681258432783043917487156556833492542535998039965946345193130166906489781092240184651175895385088478398800860484245895493311022027548791571832348504472838972878773912018050012947795362673949970664576229209021333431875243394055071109892140773115125419851554919544485035225153203922109125746234537825641173602890099298343475139120577955651240937104071130707634670804545133341242657065386489904357736981533061311005456384309971267729769308742851245305012667703997143238352362996400144929339412735218465823660473045913364001072722728946429371464674665508196405866467736752848589823965906299788130820594969375807224387516364166492306842521908401520128696043698867471455419241128953716771831545770119437984078425232001840017330074153133709243089312505151192223771888497010600538336007728607549559541815305851072409198628925009018674874811447414436864182324482752666535094502908024358890552721762774319444521606467730336227997735872238805574925817313323851380664909880003313558047308400871013254341216567615156913463916902425401915314644820388538801513135553525565823693125656827490897124626866108557727032498242478454277515765302895595796130067293237550949533337486637916437564171425710256219459280934010892125746257309505301252752906069168494761509852682130933551294041276318824547929821504671144202680337456887602323133232736927781831358239874203116218820095110743967243876577614913375710731069146098548587122664765835705707503923444848396420805089075701684181979887602821982542333192967185478551448510301495941966356842790316221723669582756321600886672918580039469093912614590800162827148473365458713902909593309607575903230399197905147036814903745991247376502031651101808360309099918252278941977274726204545617922870051645813584358417523422296520523577052718205922209145513240889733545646706466270030530921974008169756637998144580202804843367602881831873930982795992853767094961869624602154262428927253109525481241208376419124202775521065483202444653776982056579062307047560615204019335934682848356522362650438484571195280394972444170732126899295340492940841752494937844844033857964846331860232435060393248656268123192002956082076784270004623235007263036516105169449595482002116459033710059064482363292053903280786919996709897901106356355702924884544002046251312003436717692174925155101983489531680301908734263075255156814974596387936248035756232298456254731829469367405236553906207517884780631821899429935040213747996924731710954266763931569249910877124796545665987507803472156325116018957435615243711350699517786728110018767549000791485861878860604367592625882237575345097426232088865868303083683396075231829730765837072788458029644644577630343668503001086140475865078873801833087404689879809961433821145471479973140327934574904582195358993390391617382637424265644613468623593825019408082949972891004124119953855027358283899911553890734967826957435715593295086085146064180178573913608167649034451371585568171517653183110392345634381188469192785619804308616749582532354254097973085886536814865312627589316914983296998392521199537800259263574841165600648262380075222497766433820589174155152438098819591374625627006994324941785616624234105608004728790138353546054346180607998521902615465083967241170122491151341155453411394800307565434045997657574474933233817981984490331474162210295527216008015437241572677855454929497141956334712884488193313485042837426965393755282853731497324031599559105221686596615815924320288434372485140469645553401715605145651745881842168179030615135156648104637042498427563639898163470138211427610615517411412259411975894027701562680869792862626642798835611265515776678025836893564848524562808435900223066540254827847705900861661479893583729855895735483675998137004189446997366407052653651710821502132958512197264723491037981849753934313846244567136355494066535426736821568834132882773798760249331589495912677676593107181780569417575295256302117819832720001135770582100546844302591943910251990211559090502389903436181534111971375719916809161107710693425823485417564452684259197594681363085885983560814671626408579265283771495745691728969371366941205887092968755718150807379208324388286844218103684825715992445590799183150620028195361158118822588757803068593555646397940934334346734819677260953807462638420347691740892790225194400551491832709985064863958759820353343686430238378863545614617291389505722786722653801112725711828040893110379790615958652113428237406057468378143907614633615941735867475942857113099508630165046301639937971863203579180422049479352358851491037904252426898889774875250584152992613758965578434264522354055700083650830680275717775074671324474579983926821490633761203443889900481359974914406782337546755400691623618099820401489667423035378104507539471068663634564752199552965384118122955996744809265177528005639732777060598085395151754782614500724525316734160857225165049472401578715048630716963340449619468914441030619390223127685133548020888434620701140956787905621599167489895010410571485818131757533896145731644273420391863584832477724730677645362386072787634364661451728155077027876940668132052886235714523241117597279424744939586477962238415989931329140301697883838745888729757108237273900002646912552639030445132292628835990242368998888028185853146591057952328574861796083095238317075019913699869968820881114051198050291829021887396231969723893940145184644927709618692665150809615939292450177924962282334644322073346819625617261858795915803552125314807519307755327916299772195297322120496568145106857954753420185587088033952685637671761324640292607191799712595020812005575911699220113064745560963761540447910168399561666022644749252979762497852181251867007086884477994862945467779450602848970609242028890027888200019186462067711273241020067679901957145315323999064768237341221140989952215782747214763843823747890419376182995774689464941008128095927921318382458743664695794576571048783841027423716560301151530980733177837469160788755652522067260537012631256736020828842897208020396620479229172969158511580163029352985024668523336912993340545821753102160301593721786301589912218089347294402159380308833606415943133610635294893767625456412892354482445844019493378087578119716453297394565393150508356796960745074770777862566744111565199007859681320820842198694494274891872413700158726416729802942912614286282406745991614881094132883966221505856130712399493700249680436082573828173501931928297431742356969882810278530235934186533833487040051862931437732110663486720134237921008740248550139631167000431180053424829721427194273406815083650747739503018449445248345955546541966357886330301506872057212921618254226781388267780219764616116045827804387369669997151188986600512887487366669687678927681735018779536653552655215712029602877331429642494395058772208855521020875021393625482762489394943189428691567565972313944777388698625629039329738279637546585191764605109701789099227522115035261094372533038242500705947295957096462329846256187457581201271790495613365269701313567635769926913714420616871463537996907360874596712937418342731568735726254418231313392417755381633532999879502466485346346302557781685746220852075670645174991321817673726779645634889421860759848670760390886308294666022758424663377783853046577405251679967537048016818458903868331768894047801311527145185150949463153394194211079617740094648984535367445534545393889083699564603652619920742910729524451477671416522373624575488866389301639390332947225924147827276071265579902012876269963067955740472112966612217193967353032307225989026643347396827847911579885434620617715757392467210523378701702188174834118057021616526779687541966487576975647149095568259880752053121120084522382404447307965140015694086747494636613046784676950946179665801546391096919428631224871491098706646052952007237987766781643598378644111035646168727924804242654355463654030715660921004475469188568552901544347932141210313007050993870784880957141284576623459462027926904405637985086641202299460137492949710276044929884008741197360168939470645650808393912903450588417041578492043357563493375627153333623662007623649817967767871420456913677149032228894893640086285546030590346292070155479101023985992563751009449179583545852552028102715714737869647013794794040100449312869261381188948341828537249587516044997968560130938705064677796483789537779481994369930247522084273560602092372338641627786126784819817404921078475868399512502316345786132223430144887702362188399016991704500619492870159135874615673763024070321390119999222980013009774368545982937341761674850077754045776337689286268712711955975676426327861488858234527179531103312043447241265089577064204367043849058571953050058985274827422515650736046681095147720197645237382529896686214592770183983359582841271970245169893114651949621831976416137482705097950722862390417692367408657071462395531018233956863428314154020763278396692805263981264483676529551112910714376711301817548812007732642740555797055122500473327572430279871111394978363393136451315233601396950355515348847549865104425430213882636918955444666309960845694523181233041420999809347521148387926298395118279249144974721688896014696484747850265643566183525714785007883699433494883654737208890282010456584184303359066468693849157353904333532973137044879601954584201357726553254124015458886062469277326165837657245222449859652752297412574081982674797217619384747965036439153381146264575039588046066176132278581108424799113232822757248774462989804835486101319414714899973534688499052442386301998120689567384013524981828963685389442065099758164353620694264048142424112599439575811309031389375166703680533899029497142156644310667824711470382806302156352971567775898302363884273795324776524606389831844628669239141975438913716619169610649729186850252719271589170179098992281289081280983240237114236399031304972232499278486046308831109072835174227201146506751392615379519728365829610066693269834205307849452188311568292884965079901887641301335729632874507906981684807790405628501158777477417022862049253980520859583758187661130881691239327867522399568429987245395879824722266844417410075621693092346456862052943444467258983331205324578123178592149578810596050460200495393796319933988734837202574831324061288436486289538026463735766165386057119168820328201613430225969953946978750591696810384799441554808498963497658032353034301110212683079651141528867941365085414685759703004734357739118412091110798079464038994328944324620131525476593805683970563916915402634175169123801793567648441445560051450504863176111568490172405863620947664552799234111688981223533991655768155020674485722153804506458030311152562114049722217372767814511409399250734082627464260149785280556036606739428473145781738690627719100233116545016641387884603598273527201115063830397537679763876621307804370075712983746300577327013944474620637898582701798250700469713569826792114885076307552279700055925937714102831667098726255905841318663151708343664478407209587049217096654021241263995909624313001191707251031115184495345936250965335654766362467392333711525022563736749768118061169721840425734157135302435733114397989305602748436325350030089462714523317490969409318109569534806104598338170178850838586935358612624505058177701136067075698770480403774182157332533456572140056575213611414281209367807967308082139405845156380151291673323088882416780260899235292147218629401114571081909172328841367246598785379726474741390442817023513405773668955039838604059212891237450874865414627879307003419694990800231494590098983488530960545663531291033961730264851315837352359926300805314562458784478736029135087897424136601230804366862103907453317290987372768216074111269159954851708458802946250384155735978388147506340700777471748341539705872104409736278045620322608819940664436978342773534936184378965602623076124586910634398907691701066093106124182595005949193374996955676364531180671174286569307969992081820191077341011256168657059068614697930189049379249424695881372984676771937377459729262501762853041159060921754173676076807107100072639824297375451816454170342823808554074018432189057358441459131707470717192232332738002167115383726779260911204567293602938770339504640944442201248933949943941969118751459740066696551905106636696701130215604780296384049853051374721737475594434260384483026948055716564288825400043366569378322153897658859951578500962587761702069807998876556527037572645959684085313333999173915701331827400118748700141167218257517991648055478962964497498985963495555619842097306591684693200353743172411234465113222129302658173298919286854803560073231792643040230974671343392072163375654172031262339812200716425916480321749983614104174926376676227794302870397431190528344908182639909259965263477798909065272432409965401940538654763087237058390920588668918307415945180746505850867868005146095239417747461705845833591993845055885300280902870573512671976712558898329508588497807453924341849365248799278504758827415685860205474422429421166203239392815037760308450117254799685843896785153296375196165124842470988731646235032182502021284316913960114896057227408904920644388886390883822275869757516943018202430258061055495166210319099155648316897730804620732840159122996138242426149832531011396310258099209663705035216608997782942510921821887438159890623396938451427518082337668977301063874462084473093621389808110349317708435060038492107353911688442116575207225906961299816880097291560770796444862560491340547295993370906878948821034765650011101419663419572756294852352388923956391506679923320394611594544498008629132460185395343643178878368023772493867210078337589810228103280792576049427792030203845677176323562630576194875285040952804138615553156972026205394887057401863876647536764859760887331825293755913800728571010162324786398576456096115098604237749959774159706003019080824638581868881817749776526224044914311028037544395484197119789453970129405242938286889993358301257617069295429708127428833400306381461952697836214129325773114484968811045707253422294893201102330959795499040495939059631868832254428854151203950187868413154966974648753612233218598019254612308265949176101864035758939270911679449777234110893287596496407190284122233201105682958833311155945397214472244976738646634879147797176800698337395509057579162402188327874115900217805139615731449419732542873902917871987948913104180534368287972409813909128715806703347718346322829234766543847368209781584910173396071290809566640215306018053027842269524786690732076502039545948231874038908630411824204139458414955869953398091619503855095663165817565341003136857328611776874615760389371395109510607118189449811014058902197827124928648179504042976049369347601578155246047624557261259858125852692473237709569423274642771726109331161027204142784426068521782357601821666858599579363171468400255860858390393489727769658378494450828704822751755713130401940101199334604867812682791964676425752947388025517082341509836936739502238578742558875646447945746739423055682821074817347231600174458303394961661244338605432284985677481535253730808770615334699721559639222523913173453504641363213975538886119682504209055710862739018750865887060651757355457390221178208485487995629211018986887458842481979656995285896560234724116429486891847721937566195456047881024189193093267607701069625306704524461203957574380227554666519701678172693992466040211300278516759356431126885755305897116740335676940891794461729679393239184702784657837091904505970393374679861395924920051512535481291196222381281831828382402853658315704769291731779634018479457590538685112791043274380528325414936917433821982546680349809931621772438114354081044463907354158132605580953408828924655572364970332446393711315824093377841208847056062176842323543035350426744188384104637687253113746478416445457569208834135493409264249727841634039008765866073351820446560111850673635881622919045130905972902264182685570268562672900581969491352545114062592126248766235305458875344695609603402655910532146759846384783455982846474530218727517315609058869519848425878103810265279258823611089097383209429141207296006150436940969322333841348866720612743220847563880977152753294006827486994675181977991361340992457024510852531968481582133303882536982616710600570623734875040842497042310828985770058297027585997608389780493899402910840513014932977829130185765466868779227867083226831308840183586749881754434256115283994623878662295737212219372856548301189182779124890740405407089334763652284819769849881786906368318448275101490992156915255763397381697076511926356698346818513144545141072381676550982439237166143569621468338045842553582046981413157479499725256615514272310379434558272175504091698290905250830728632273914062072998107659854282892450980322919960708839099277121118987414994564704258172025812790978937007878175359805132191513929261376466493024446469388243951388355324457768532679290096707776590818553309586333153367529591481883420066363957306881531388261986879502102051383208327954076978044402122642044041986431234186590190833504588558955356732227815519546205922778323357193997727994823166933738317715038616443120962434719326585527873110234863289094657512872156655916984133405523901580197661313296111944768772941112220735785905062815825780785738942589054432060040787866938267466820452194561762391721672687928764475568816537464006773087730699621875073845170462546270033029580911399681668137087633718015276179839090219129384550550355977634274880929154602870915873672606096260986749460811020134345231090952079220755151319124767954696846788214214330577565461100615440438869644011406769329401664853199404400823446263795831359167976818046428247525026589686054716339860372674319922063490152360809124511943095332524105378771567954812886706863316464314303997183398287216675630795005364544679592481736039878892806811219550652402242744042497047749645461972984331742815313303128635280336471062819933572746489546569995682001556641369653315791025583391180496393613021569202011830238763773767422807646388754899247271045966371775442628520412008487327461865742278393882756200544006005019513347769901549528724386589072986840741333251792759475519807675363383548729728694987623939881725918389933184210786714977005678145329974877380198592679000868787356005258079267110146187114366869540902860521810351291289446135845197230536437193647861921436106663974527156475377038362384755861811743210525324820404801737190767382650462492330221595092740769235344090808150892379052308108096844576926505070618058104375791783373787737475246661253475828955543579098551590749393486883712476480905271551666068741403765920318897908131998637645317794941344920851321870530414971544589178233776085186316378346140295071706238494381211357754692762374956100131299570153784355328386164915081185344267247472745426499897035552608756603307038979912397879336761081305580680631678502290380258587135283631399397502617696824146593071687874166691353190745526334265217667904913642859726438512021205945123852252100773304962284336360405892594564261452880865757979241314370944789826545888724613642440714962449614999788714624437966254432971220008142016894053627912627815689004255306135342102085663279417231025791715058301560568223773686462572987004017491149249726950460982005597977401774386264051353341304604412492170283339734642031900407052230442672138191463630143791138294350419645110768686189232486229870814399261941382770143144536208904865780247303970185572069861558736089998201352275003804202207810834489176659853538307207785692541084480880798627083167628186402994807646163776880572122951618930483331656155770403121613401189707822525942612086071616569248415563096240945876050121631602364857267064452938292307739539386058029537570445771393412923628894816278098476026490342232432914390514003022779361780789363397085817528225045995008918273967188846742071781282320752475062811209161501471638142836695219452431831491070284897054774569053322829174121528750385020781879831100387942272519863971912046263780445541598409863732230601445933197530683870691824880627159535855853002108582343115408802177088301674132097285531795918278557345739598134204388983046414312303125099482472568943095795844255381535274419805748740695530743514815502298455098091695138583638413315786714944781729404727214049328889504822921681845340382391385675337850934949487430410017410151945411428119754748778963708163070608473849090863022470933839707054853871637243802899618845291146761957538794467802293783997663097645070170392708904838705647572355781817820871469846629489943831263571120431193315465686229581062331463506935230690014862324804367904461144029258392100575960373541934719818055040825893217797572800763714411904752285452814048130957370354406707985261228117297153262651050635903731371858567009782877071946704831474552852464795121467546054168712839071132989346062712494151323513719585168755936343699434262493830275158900439888430795941548579262307795410949417552116544812011780681471512847477259022383354585025070522558619087225457329925318652830174653214622335560329346406579285035991131821353389783469671758923645061623741083779074399182116745670208480332115797693209456385574834931829590665715342364258602224145883386933994550558727777044581526136592127858805292421435011016511457072589406441089438271307881756613006861568844090526834396168746260772459172904318793028003581454967112249882754098606490348013895877000736841021247559417972156138536817874018509601131251428508381148129393645745286534826998492030070027459726674851210380740878712756381265111971389032369350142935746853963716808104186394046626733275610758519516341870877691970728605794209078648963470172852404172154442904197848233770211480493291220345938132026088979409245075794321386920313092162926481049961449484264724731478756137223248836013176776280537687075783688143858515131251707919310191824726317554234631533655678421986809930047676235521618839234847291431450708020344806963134476159457177814008440435649342783470401619791254743431502444609944090061252135663782351063382454735493509929957445592937681767101946696542588328684285092093798145427520349017363895286109623736177380615264564342056322313033176712226799789650354081145628613482476781803785254959928737389478572071768109387008611590367364900930650195410134945289712519730511224587864023561026341908196432593090593289730734287576320808690239969937122595413860121341746552983514015725786383121060573084740454634897564460586078294894126630593804304259567099035172779365348889663614604809995908279085523133149666536343331053878587257451313068194954653950592573573231230317625870869867597620764160990646267611387873230648664303897930600077097861034395939722152889316979554343360906717872696826892787663389023194824443058243228207501508243757977571995552322806093492683182094845646882350045235976789851562696300225178555763096805270194790697429512200144489779929923119463604201685437195221952397430580530206351093261594991796910302687279289931069280732261932322036531477218615562185853363874448909264030272105926724542269738067105870277983403091376594022502065443587355502350616724251163750339306049868871509384635539267267989325075769655317153886003575736809104121604575166245780747082343100062280074968282069101864310167628572765310691079240419903010810708486448690355646491992906680845804344018059422839449618272031987948173515541519433999878087170252254873481960229104713302440907155791277829508323849221941992390542395218514969882369992582528462711910145375827180503238894924702835840019075407565180667422449197643882644162053265038066212898406335635214311665964346828279777386345267543450368955492325654818768933889714890971060394884151721670663601643240478623388912151819711717516821830491100968032644805303744743148392955488955340114462576210652950199981898464273329725848385704852525635451827732399740619220631030636937236641030465486399036877230479320844371683850937994561751470371164283179528322379315963572996653277788149957080951770836030095805388436819856081131309221498437181510291480920317076491955737988635339684636381220534989848257331278918091550199743789368250894596148530618067355713873900798672670117485945634150913315646395309378038247151792345386397189571180764914581349446384151779965949367886447085296895120857264751484835404917968434944013400951413639960392297100946342852650107388403557546404468207144870231824510431440359060169483116492805048192855004305679845201295880842463198101497446665558565253127529490278916503356794336627212849522803520440036364725682244668090403888923760545935832288694015669071273219425733622109286319852672409736593579957439858448811520943336764272820665953542156531322616600870535216024947129460267201236973325671836813096984958755879497806710218796005580066895026833057764573658969599317093305254139219153293668686502270855188374018842484271503576307004941331732652356972099606373438361822340927394750761485033355628967612489471861625278772318355834060693589842781426254239859325252913913688612224603383940053419028206321910624541785707210642968678318831099179711393107029522476826221426798646358974350184121161573915522034486254561811475431196504318611470794761492488314158222038817138998743143081588894582209039977115493200578371483376783047338201752949837035781407234650623190959715009208596352785466496237403644906728122388424633340671900941454624103147792419686294401872920271546751791912966068455290827869382864664455212456425564999108863359541121983955758991385716400744114463123864384666338895648820147612136185243992210964365016180192777583849468509843503729300971520412652511192639075897476253518414887850247263165329222385313726304176752723159555903331315546992279551738143458703012724811724635565135016941576048851585767377429002404943599306653181565059243244792458174658189318168659987839247785054326828998573016776606752246851874359731250155413508622901822721117793248649931947381518278819874380662575639528261276299785920276730571638470484977749853102355932364694451879418441499120071472148585894738794063567236475461547164906975668726117716074564836469711903205476554579935361662453745114774685923414117472244155259069061618938715396839735257063870445369216771466997522841283189125419605097071047108368176278075355676381985658884413089420840513278949607399719335112324357758478102487467682368328999463963416315431691853631386866781038591431161094201612067165860011301451759866441961872725400246665239195713072797234074799314387731607735986787572379821501235718274630693336482251874653262215753981410063595599866407916267650385850462167943739644187511571188960472427706429794598358731270437499867451666885298750701964733769434043044672531823659246542863593004080881392016628386952905432654025992845705907492204000123230061819564241334508807262109886388267962697602738599090542541380593905993891606630902622442326752512234600832384540716543765122409485360437876530883434263690080808105742138861634336975858531733858090392719855220408118355060681276219119892373324084227615547859632065329965667653998979914898337860342695855575173877668822182010526255781464991592062677251290355090985371578645715991706961620155010043704180763999607119545502857377664289398610264760683605659416663295330896832293980839554754913064527655877719265769513150125979369937313893857931576245588792829398271692935929603079642033969355703920523809734293087412546397897763722394260359167917012403961249037021115051612185656417480191512151504819843156456188962336650815051790031603417245365340056574517979193655656596339509838025885196840721036565118712237723720794280623290327614235434092511568649838127505907598358884230254287455875166169793166857549064954594922825218380142131277715550401299059636836119099266153830566392010967855446903273227409758379500517734715560941466492677541525632965634556587985292882010083360999629446900841091142590262317520926379100677336584944736478412225665958455213854564300161258696583678062689411475002771577305053751601867756424914327525340754340107146716385775336316961321336384444369381791946272006510285445019644855877603423825257419568239718423462958838208203287376824491653440315611810425371965202630261488653531113677676542801201056471265449327698046773164720531578677846457463330929986493060099280354402552661147726991295225187451541640065624101691775997194489896583972738145445770564120234927281303987563512680575167998347444206939003471646031622502151865874108549408868890507785087063153957079038280564243024176360510566403729833035136890485574301813811943564866744009831415276305279334683236375511962220783535405168402654675043614449196234728582353140011928206080308335454345868635029851098467500051222841322849900743313551259491157529226144508118456640055909494479725745273278287296293979054164948016162526412480412741990600143756251989533647291286960835122087856558351939423919465757183111746932219480580116555001330030070974612324018643534366790361310197799685752194282274676730846593605333610519964552600304267297739412111530264157336685406907358525792453555675182184091542658702683927765042862715940052938818613921106272136725671665001487678585112254231609312256823550058702161363786870069782003933030222071923268452890920835513289922986664056580252320632642067258451331960891647007467939015547087432294957304020818509938575011148635593551686397378888801149100788875562720180262919942828842141219308158280078016712809686448556660014876269596109383927067307648650217087651631862153850705803980196794983040307166171113300937120433380422131037582171736769652358175645208632467235139660174763186340329621024001783494590286413597915361868204787485857697890632651650453924913792270261379704699065231432502368047746699446199518402881460031394524028084774666206945043544110900041413347648118685246148538438430453289062155730888558696969313326850080828128852595044706306727894483357865234678420695146470894600388843655414835841617532774286844536131152076515539209215069713920121740820514104832184756181503912656157995407190909064183801738869940714379947762250197007348728949684018885344393187129634224476586625848575403061255569431004331098730890927985561663839216128044809091317670319363345885686437241602568823041875736657632728648030275185328746584607673094141786368623185890316189649913897312894809352318249677293532795474012055395237887868612608149137967457825958634904851847865006190155860831887102154782841021568648309060495096539632550212421223443320209479618743956664764370341738341374701587710976420917148782200184942569986804885582746629278831900404389963943734463202569436836290592743489232286112810177687803465538671234039637136839818688051367741814713643284382799323458244367589141068051956153335019018931972962197089419993487593643033320237899693596430763876008818762260802380097254324368963289981373447592185063960628017120576604721262917003507743453270139062613403852274956698923659845026559565087526390466935404745821770237246838904933815600361638456435956770172520181653614691751069177028238842247186763434444831846156480920078348484365761113839174400483659032010948878666822878417019441407713433778237104331356674796119033505003725999700666869974259701076208530003664124254442653814037344109824477770752762865188072357749217135261825434369902059342661397637870712760943260824658205757987747933137179939018554029002709581181160953260158170391819347280270287894709560944747858302236796985299673759661522972904059753394032936273420264896725683800992905468893922928535306983575771580117566024897957456078251074500390274048916038609196625947428314243611381992915484109791964131607991877804883403989584719357319099215893038369827838988616244048578277317268279966538454911605595863395375511645981852286800143042685044442240052133496594494066326036719613433460455820244325599584848722373251584255075315417827714943078575939549452297510152769523764506255269223751816060496735982669968886899272726361198947643714414067163342254579201336792632806137299435562714881650707575697281338334186424135546117832904084151516580869336158234476119709100026223792756350839022218564151395943917429689378526555960390656529855696171143158278646068218094544977996993708066384932343862170857613041814769288752371076117354487356920102028073408968623988948408146281036797718458060196932375002331009398677915498761253673865173182871407966330179106483493383793587132330513814087159593390049191743508400899018395933582899534447703253486253432677434337319285488028733373182616874364966135531355150415672463330384786540772040986107079215796113815629282577842717259920165115097145083725516242580475662166507061591149332431219879263107968753865610542233067802712254208967025033442044210567937167155399711820865505270271308902436642716569257577817288246506753830775309694760358602090025139331924684678317933291339207595819491494266463985507046324382936696632750530027118131630401063237149891958038194359447694610698024900378917837337507962715783030885527320546162187300183718267983972066148865432382582558347269445280244101518913124629171378560278725658183630651582754955578761123064562421724722540424453732676807880558267881154166174335450151916772043172070114417489498429768674732604408791633286610691242435182445185866355443490147271059780693917419907799167495527275012245839409186728868242549918358420190916149604472332836843107149723743267049938475970367248012538267594148726511019983575158418157059194756541441218625829717760890088130122062270914699506271567911109520543384255999044752870540299245064907049719281386271349849338964468012957580704507216911749703626505084611736620664915166797364699244116533451509443752236295282623150732272585296398807615453022528664372098525568678683454499499996174034999662422898154793744037955951317260991858308593413012498616878908197759943752791750851247762566406855668136922167902649100069662904001508741219771454952279502123281809593941088350174400913618001476950060595195047604815988064169166665117277581708012817440444952955191264635252819845977631032286073317432369957859842261687540427690131453947152124000542109654112764327243412419982532475820201063817780389596518783425762118600692917404043416955310711959939399910599755426355496232856385305702957781749394801902444655718774113277388513415098441500255688305116939642603659059825840604692046346207414556585290300366681941956692024856711548441549798621109635266213253689790956449183067498519734237801689994980967672708170234238083031254590472580189755522702156490177748245444077293419084409382837424191096561696002146921159911809867879044418591698888977718173626392906005092783572170644964680512014036803741656159539962497372394030053499428840916283462784189196273552567288334811655102412442502973137843954070015846650985759892988725043970875296553112503641401506048814861918175034609457377790436893594585252743862417408412052922519575149344945421733523176386876119809926498456036552682594703493786084983744020911973985187698610985953988178143800803484664202376979156335558876103123601823935282881290262090683701767273127247903222235152921896092262677370605242151921167679988720938179259572870469711472226345379675275971169750035978787863374802956748111614203076507145928592902911727321905145664752775941613818780142459502764171198626153177754333992970374501905310578335892915849010530803558951536985821371672418958107597535145168558741426701764970148160820603000162031698627299110446235482212059669792727268361073026604929704710008129544786630861480887346451137153765465760186179855427836671967980422087560394046257466048450954961061100952902778970873297690994864604683298446235634233492992960569490972283044895243360383934890475976892279997461406777741811760924634877711589624865788670625109321519620337368165387084880008503794401123778369770349630966922184105178437514072548196389867983572402531956461059312908945815182580432781695372300213841539475859700969874031279535599231783520453667868802629150935174253374867416061616357526471588484141846813366156301295935341103065314333687853538044185919473137478340837904961905236020842922380847547886315522526532023889049416322410487201255414433518365576291025345236293507762790498030297981256196442767313281436998974046858690254067136617455250542700058983332562712677130680976148088991929023946708845323592725888057229782419591238306894174485417463279012088303228812285629769853108416917690896431461622315395816767819678329246827931731522498955557343909162993660875823220729917393010467686519203002071948646650800981607520731851939227637747053136924806876048772500960918378845284162335098754943753548422799544289274809357224014830579042404859081933906515237716602096337041753633259414657763854895249351420849176574295920867180441767309907432164528479338998280196070269760622226757149746660710250483302357185985431217096919246502570174886789111288755676876710894302286936807778044963897632171903570388274993764532184764418363040756139131064753699390873882794048784318539355164798874028820040780566293577547920508491560966903888670819260463793100504896363704339655641061698470794407708317037305668294434262745038414620231171117901400155973869277797541235266251969140354493654562991588529478274938635762322069623142242901392136157073210175257232208836051978326658848150667778151356294764358134150739971268286905056217448252030811088701052287474813572227101694171580960104384435911225335218284696824375343859496400149873523548495971336904296155708498190543356434861807323219065145580179694651241261709877074709980044354219288846472015091940682126772654025648096100705882369610083105211072549518168211498209187107415698572123886496170695230458295994399747468657823194819596702579012474708834220549897067136658066056787265502296952368294225352055326316790040606978556530604380761567735797093985713797698298675089428610277584734913933037174764850386174352460271645815890147411939491210186582403114551001956944021698782178478945850799971674301062319324758245420943500134040751159337340672445541584432714665218011865417291450090258055343897739020050838229554168315647579092502447501668861083505079882596396108267272116076456585147065967956740838474338369435967448787949929411820363536395631953594794864294467374999310678484434393426704112939042082164054571301570157360814518105884122051901332510162193269717597064419900066959167138751131335864900019340191913752168774251091684081337397800698600281668823106019137722460377393610563676343793839011825902089786160279715508296791620041273030848211546592114946800008409398249348074422148993901115908101304111306825134546872467039873779397616155053754775209541149815900691421018964536878112778166388537638233534051113747110621000171224685025476997067342849743481917389618830234952301084408655151328094139832649076791890573425434675348371915594476503367022154076609436119650744356206321835627074391688905468140698348437102032270906060485160473021941263262966099489606861854546432605813528630817956513030075682795615642180107776887749376833168999344233233097864554979010927866557145636490335205864227002221071298244610119620810640181825168267239138958789822009766968251347302044220675365731337439729346335269696848758849044245740112360616890377936641698847283656757976965080870316889831496117859468811712364687709957727539242225272231658550724448665996260760522914704791599757245984635998900600495795958894832053643507403773070175462949990651236313562559658221807546349237963592191571863580771608743750688387872097481433936037680588210710513203795835877757742121425744859598002680488521719219760290723042132602574855534750601283482004374716458900074429117385635403142101941288288946154423410050091604325424619573146923309722575161958691377265994730319584072102411805013026589203934297984532422150041676845991824516382853196119125941231086249587214598044261292434180137089294312794095930151085691784552077503888087355915508337728557656648834742007366570841424480347589793274768448398646820376470121476790506213108828355105333689513874402958887110960950218442856075231840262982229634927749014895553157812136773264896842159265137631592510921076887971560880034053605676269497744866915320176422790470589053288356247966456098212757614573458875175903127895467889189021979441980365355152840602195618883228566027934296831595950466909948741303473665193966363738764197207503224676954537128489756952674773194568295849381206260599954564591506391499871164570750867659302214855781275945660546844430072688583585113432077104306937900776032711744269393322381898857965402841865764102407673953067838743079548124891141289972442225844726038914419047963758027217283161571348739512636517025312036186021840324824974544306067351144731376657776191948632413850485088036653493378522930046546300589477086098975392857895267129658974955330438737733207138447050588054860327314387057512502536509906254088363781343715528002503855049533864687252958870658456506239937898686592651008623256713588667795897100314802440805597782227367458269960907095117827552948156660692887183091551199447685020544520786655050018086583829783930089822408741027096812854040628874218418049056839203796713105137473297086813969093975170526409510868805006363562453299795820683132138172899682137796895498313037188670849754797790080512508264681773128890241473334271585806861541293790980703748934843171420239644067934172123382846251262581511766718521388322896230726492147425913550458394896252140564951546330042690857806597909521240080138035311744624493737011801577371864146495267832195487781705326028827119454364194794688295885301756961653543778278654105997221690001854766978808994554435294391999280813635123793029297159255834651257466165363549528076924655203020238880285071830143167096307957356477264689804085224765043760628872540252569264296066438953545875397527084617137100630485870939941864524922310024816010156698631782877632869904536783119232414688042525619316807193668389142445733788924707073405548554135821716491983775712720959526638896813961042104759119408284105952509194831951810317448013814633875959318017145112997514626015263860171633787817922927420142431618058210664206454888908218298015473582233058802196865873716142654609243875990647229302799610814405099225374025424422706900280995347023623429685768689912931541814149995740328461965565622364473562948047631079345818565414582974233913240841908236308972132666217406270992348690675046991116343593505383314765983975125921159374150934688727503840964636447337004337944440142171375356291524826652113039929268923495970340179524866941740096920312770655951202792989858254836622161956063722375135942029790609201718660657513860140089541871627422479633313034702232298855370365503484015028381966120569839484201761906007062358532868611779134853397020446363691636246779062036198239877387931806256453979246099806507759510843435870199635978411728261793498427770495294101724141723045548919379169244216310700345573243788472219765006339921629926345689932726488567032858543019172210694906894886301438330465783968541888322305279155419709340970915567194074986918481552666969042334324962700825803518898869901579943017420935625593681749813429598417151092478448831515355867210596984592596873939004416730283064414253198467311665773045765154100535002672769680490903690795030760744624283045976977517169687446978504301579794314144955427411321608209554981994518587940869708748223306526468330462392505195937976879510967615769651920012809832560450405238586045884772932295925309045875685280589801245714716427353224409768972446195792437838460736723415387869133055604285688673805737737851698345518628807980778559320265396466652867863062301500948829987401317171148324564562501832041054074777887595267789600108383205165593769534598929673720137354668772890780218030997924684617828763404938571943214146374900123079456822607350847979435347485257260752471629534897491687184890241726395806242643992802647356993295236696143744655040745146920864146556988633365356406041242368637450122923125562940249199097121197171128117037135026463559677716383922111339424432759719819083030837525288821918812956748419470139834801925489040432459884524844386025813432032178178859764186350316101446417308146620405218745657260488864812266974396010634622359869063625620766903195403546042531562167084579049952492550973097056463510552095347849748554510392027892558526909387687539165736748112453949819980210802208812326398963422195175925325907492589043462533231318260033647487636023231241855074340865162863977117300315246114112215970575102884242372153977463214310863807420129061019848194698810870663267465133151437083664529453436734942229953399112605857619697082963833395376324823921756447146693405395804345824845956206038043364349447834305340672748941946867172962819164845909762973140660094179103192446761677297760834417497885632365228908993580649036465869781741277597652864445845088509835186319349627173934749494976855166321266498551601142688216873480213918221200302340525869101141689941533739364827542215925408125794371970295134156969439861518082966692576777457812654897289202990495922549746624052770744931195443394802130333428801950829780698193895829050414329819037071860618239788764136241420929804995847668023473435323943482420996167491417545430800234486126737475358971982809344010721652526135619956847128730751146449910278578697228834431369650427985979579277186572036636055247963476472319927165246274700444814945129437316324808534644644462940853878468819475746407245222029350610394702201721586230002399500060697962352888244964722941091790048064816548077527816446412005142528174383982122434746178959589592534399180602175757755216968915047763672509006650977815206966282762278287001397550634544016957104319756854919189548417163002302805914868981269894949891832645994753527660594525460534501703741788501726299138614230848683489185465979405310549753431709206947769224633259654360035741313136594049060665139927105305619873204951509329365777815854035016660814127662843701489094548444919025337151315539478290191063879158568691462036006789601398140061686761919792450613801603464262654885677383882900452523811373562507392276364894072576914778312834375791216190933858878181591505572509613256100526156973835977521117062687163250691623754830767996643863411740939381760014843426495222704699090599950406122834328148673613164212817679706555409569427457465955696238996928511682865241928311498944896987063671320205790452902551278910580879821695838568428835155078553713859955648598204491937954476248897805803931113449319987362510635548271118752387658832727503706778418435046343565173202296035409811820238708779986219871828898399745520492908841341448620143825749652463055852283610101467617263657494418809618449619904830216901217758764622031003607413158298758678365668141478609437495079694107299345277396982728838496311927092521619346662349667831457987810199030375783604932109964533192402044910332804815589413751319642737021834020478759060653775038806544114864107632975560867828319277658022669481166178678218081744446339047674064513881993738162755883148446486613191054139934830787244806472280634924416271946334599693001847421898279431906744140194803640846019121714506684700880008792974942720563557985459498873706596595067387828574972598399224769041472500252482779909688399947627641636158348129221217638023976166597741243746189802703339950191923645277037406380266679564017580249107919342828149126614792667136707413369930422954634513730866342384095618594485817589919783847973203036336076441242003424559713948723422301423285057239511933979879196783270299714338272032217615214870915855621759603557397721915788989950543065694377039732731586745850368190677608634619899957228965371624802568170864866819229658038493357336390528047131629198991720769899105792862572838325038873538116506722910811181840192389655256226973248552811842256963691515201212936851702391491016503814228125918884110295357291576971411048624689702672395876508788923368117542253150423116348513455131698546633147388231997339065478281640332626959366030286210767213711150491524169209159148993560888765002185025536175233408363445174340408565304574098894513099322977047913687576520235388393508675188245341715590336374266989877795856755218501742293390498881439615928238732179230942098682025097542711687165458163059318602262273314745283916277937640439731258791883652812308796152089371995310836868492692778604975062560372684359562337357960884707825352905474165518196273014541300714145250420450185589635946959139759552248284681421276577768069490106848534070534057814629478742306127020034939906842770250850946915790675867257441365805839408657082241398428385933866941333419230293382571392360328161118915626476314267629897964623875955427084318236337895679801725623580035317364258567674923842780106840950068985392922311712883389961961981237664750495106955401806807176545542639720202304190990776244425382772957062368309153058537321166070399220541282576134834217564103531633468347261859146613023313499558594770784891610094353471352847868510832488668890803205895625662449664609498527831775119188244927123528013167520234184336870136197112708302742958118909636939097895731380372170767365286091637501470105857867817398357177301511111749110987510561402007336540145453734172786598278126166678620705194979346030047705299752817101929157681131643131315037622391590708166696220392789861059057860455530949192928685339782685037833422997350614968534755068195165840005922057665664484836421821146869274132534462476797803829020802525602622389437990890054879822934956179151304273553555452943022513713778939886296741489161898399692836949714070809421381949350576952808570139013845999613995915958794687609851554082571970812359749326528414316115120844791679031447216695022159639556692635043121600220549836544706141841256944013443851728105805571714824947989295828905595081352409285923028587379011035276901432633698752655412066834099107059820119835858632030461988220755538323260119848207294951340400073072029273840067587461757567808074821502563881954716651707485049847687084471417209655807634109673075086870929022479155602170405931802909929945390894169416272591735493781390053601311483622769285053733631171975616827026213973847196100752444893119912662140149787550285430849664033545520704962547179667194454534628521694390238445145569144948958163063977569057600716075646658977692727342309311696811480689630311591540978112752909373269238067931296087239166350425026428538176259582902193993966039610546789520770585583497378514530723258405770635448211019218172549505129469052059360932644664218518919015906478688008288819121320002731820099673763383978193953827764237719513783502289421991542511610926287015046529097975050730537763583155214287856416192722997872567571814456064600399517141670682827742085358165651693726306836537460778435774203580018707753883757040719548864407078100152869551762458530231985854845100477697652560657014034948884912556925229450663788946134050133656710229942157094600223820878279587354406849813443803478979615879492825033032052252620260074954046530278321978376731991819901297039663863132148553439372403793962316508767987142438477693885921349265169663760541970624049624500287046060248813102792947727128149725964577780826870042147308648925058518967429063625483717039685968524667866985842559513876690709925640285442626202531807174294243847052903443431493207648873095976775135829121393335953838438936588555560990621552345005942307857389849665252529654630765990546293208321355027084710950696139398408200355544056016162389230379615236214415560574258056865922206517148820757161813347330995342312837184411652707721603188112584183647942540796370004672258878585780096957980154550415056922039915097686974457717592887081271423080419014272808754115447602266724275974693764439642344576331823297083239053493726836544195123518492303940030027384972670605359090289755159441489684488556165579056208850533980122162582070231734162859217846430261634633603373304171535040290844956956107531149425130107710703247532099370252675761855546688979445415847758432983844524416975197034019271285248870852291690642316138090399846952802270980320218617133559223938850817245444562111481668522557367926209563720389810001980891631986724034815566343501309346634842195681410965969344662737617804282789046121762793520782988235956542975741683703403410969084008382135281431586785887893661626463251745558365635874016140100480345442437279823042407063055676118260500835183806436936451953786201525768177076560349013437912829487502252754517333790339283277994912282139503706013552560178043501109772008456860997206734556757581203493044977352020976500892778734613174289231960197215151428533793558036104388716118979328285370626574787696885073409431817822899950315516754522300524215280001602816565796674435219192067328169906851915048688079155910844394308935405658640078812385387520586987661472157348746463192192644788441740618369757277631887270276804083439512857458083027378856766901876617654123720877367179035685230148571851343701291131624111951858557829142748262635961603226402053495683398308941057108298048656342422750667518575899679619741379008746522856813516090826041027332484293223260755429664912545993127537294033066011938672579446750560566536710631585744512247226966985075430424470800926645689111622064422137333387880055385277245489858185164440962279241473970743569810412625942116877870641051681321300470023552510254127097340637297539593382396865951682016941741906212302471752422545114254059463055570962248197504586446474482760016743693367518577295162367309725069318214999706591626821067736152258777882012601375916197686932772599040690849543386305485562919858508745378967678727114128459971455164384537775599701915397781832720607389155354157617647638081234543510725335151671833422324644251842532764659730660422162251955078897610602100164927004509041994094178825342428614467528468112972433320719696122629780159687466199780706602427533884536108606063768807332143730710274266604512886730909541638711057393024602862707174869582233872534444537188119608234451348558322323077197445364232656067876923045936455706841974854468457895785108605475498915259188485778895483063269747512329361178551692828447215539348150698885618132423933787984019874756636818541386529329745163140437227493986920501450628763666913562775955254038053650446399792063430214263139998697241895262889333120688220862215393796061551920937900406586524827395866088496061963762420819981801802097902795814130639914964989156399077997469574051938346628495926010670733356451965605709766968270338603611708036580921017105312340862334585860108710475232345797863400306790054397638886279127884515723750293452389282108222074167613089487849458238169134291716831615801416926932178916287581452933859480612829255525561821465518762688362991273589126354083227038109929465182643562845294947467923814400636268106641879854304389579282470488242182867449003645365580140248768980439060332444923764418946992506081010470785791087300225099061183294641543102382043702099116491873451665160304950151007548151367841620252848028820572144130458327231900907995020236741624309140868696226924219219304290046390703255416156418454235555461843414182220357852694556343536927673669899193773007928979917201461205426003207222134519947601643392957413485324777297960505460018420076439920340301336715853803904339525489884195117664562829643933293652225156099033452688508590277161068850288000346640684368147898330643449409957478395753534180722448600557047701044556839362706514828108236553419276752644274921195106792352117130932766812570144980808096002419485254955501689966418208241431149041847286684745534062321331040904765964025327329080632037290689222537574603380962331724725696139047051266851123916977862660695455138136556989254647705986392757530811331688887022115588594921951452441858656897597087669215038347984123696764193224323657065403390128331031482842060509468760398705157134516767907412002617370968851274405553163699101782479706279802579729569536583444500815690779466201281391884993402252748269949143622640411194455527848208662307205359393987182887983809927767043377691897500356110176318267960613125499172710945030691867320003965994002913654679916381881877862039007056676281220366686830539053845957991155759621161994757825079570824135080119177171681140721340506643071757799898247608635529741300004984146624207860946804500272390078947547166759052917119057046083921205334719498956265681186848226959608002600329218115927350092300335465597980583801542488877247296786021065665596780305545137592216863914669631760974434327975856498965774791783294538280300505895550316652916738498083442833553301063316040604500165454185944036606914518467319721244828046885663740074417923382965466937877370349696985887520407222957772444342272610556422115464075739315065888421477222796880677475611566688977944635882231859397312685547052114384613426550434475248119736584321210709275806019567054851700537657961625289850080923779279105045052790710993176246193248299581561797802136008014626920298513932627531410615726886204132079202776364533932727701134527253000024614961686191155404824157671754183592897441370549819768158317350377869465871970306914756900430887213307941081842975469190622218294410977821013486650768681953544306296050366833911777223825760870672610193956988814386195591499738116391447353912928520650400668712944756076414156204233931413565448145615047392172296613234676392420379897040801467752961206367084141263595705278499427832767365499925973650852515325942241879697247580916806927919549333019101574083884309586443260350097101118665119303130151278216189642245069866589838095985008681623311498910973967494721177958794691575641775161260377426148548641986325076966292288743871595224834537560270254047584258391856674446871993478755812062510608621836797391466438543217907781937576736963896814457569137395434489031254398652809351068223696052311229531518403812052553425515074009727077042706724103927125447513990093460400909154203482727809376361386738552603201388910742478973121412292476842392085635194509575438370401758027857493424558272210242347458637415685472204115133152838204683873929934948551712741775495995894890008914480800165664360029000619247700886243601983330976220491669180634002082194444072186673784783494456014034474826161506642467741816669925506844901675828467966514570629365641744039285230709335915474444518020644028054526431180935623189107069947916779852436351683051389035895731253408444432423601908888903308790123178699019491286156671008247231477587696162680501063762586197472783817534134020103961855178806419813426760525752377256484142699273906762012561216447713228910935920910715263470552728406991218744295107814847468840168428862933779709954440024099670019224345948581600316805845617733400496127324545055782374304121949304621482986095994032616033036267142637945186349037766108688083573178505528862069604301321285215042441039151610115613004173641311889836025723860229885738386185308088029333403279930962574282564961456246171083664823914964620134728726446634379204523648109101336999512167780806538333464796480841694950587136125416815485906109620851806787341950484230748711677184222118018616645977072610410486429882967677473253433616540037997388049899246954286194061852464919390032573230647292190595192550841358256142180658676425795862575337236442289510213366599272696898232895767768482265064174926353589147229939710338227559323925052511866140138962907669724190616474956647318232199320901434897778062923788868952959135074597362662423840761122049864137695176387531580189658778521511570235053067264542770244253774508076534159004620135168977325815040578970241766452228228847753503149005363489101291993459035054589009662045634413047724562438317958188043863710400934516163645547672989774698700675761943640263656419172782318285180444055107220942054421145479331348064675055797603437600399777833691603047180008483859527499361143358519847672231352945871330097686500384287024345913712559466578742274811225153282392303292129845881594349916736746680499969935734207049998124529516824844841427913724181944980719605510247522992022181530159747880942580132960293995738473909861239515693146138332583629022795791389739270588957491494658544906996217309674171493751711413812920483696203559641938600333473255007804966696196820945797082178931202918366351665516041971002224911732954193510272743462786039119571061843332080929363399758351282777606949777152327359339819447184669488879935099806097219548985078478341962943954947770352107322549288919723582600147709212873597928949881069191098470530255228323330400678197455224236144329929577972177907535547488701005786503822852196304717480850496009003754714818065257256817210996674199291640258108005557816075536877379317160153768741450776941542599423645045474161151273462067790582455806366647298115936808008054754065710441669600264754516996795134639231390757942472290340030819700042672140784300447584107792815983161341235960874522950358990113967093058411280817007656640467779338651221927335198365226710986860126402694525694657050851958605944897697452439294527277441736804646124280312442803647794876192800955725164739084212655842380466984377900370852672865485244051257015118787753265341965441713141837966802919744836305138586471968990256211612718756890657341310397782722591391342992919641858457272343008435439259204863239206278193656190562298043355480309775147613872130739019443323139219472608002093949883604855612012315744175611580768801419933416962681292308265146007984611327142318889340863883894177780798435469123922615616554108850362237840695995813015473245913202856140106517130776228029718975371080594478618203524614078627827683739460751368168579662692859178567157379220309801578715135742246010129603299299461161469138103923056608311598442717029547831420683512233696926475446373558015837147009839353550254416746373135588615611492288842678038777122254635096795892271017479591380041510025084072174069005286742501575165210105466166677071146804607006708126748924196298593844968668434025696137596350724110073085274891405110909199311335895343755825319664111005493669657456103286804345392941568813667824523795614488397590054515336248873453999847081611933757117782576476002830475301388860488147853683541112216773470991486546526214764033747504854406105702582647852396336117483712808996866690535191446024232116897085583494938797776040185911569115555859335944771053711716677214333189626103257050505491716525575247627319700580263528883044389876428658309430068759807405523485492939711668897367566951424997546454723171306833771133904961392619952051878699226572015376561121426719903468476011865267359649442375616893940577480494638404568686058518989020554353431730890733682386254398848296170003088527516303275603632761919632757151100896640824689530121255739361075588413556185414367131899933775787088692072324135741456669825460217533535902650989163407610302469577358043406460692484145190619467807748403151540295779335984829753322863700454232349394181730554354285148549949052057559577931810361086801243028295309072410328843317891329779980130544654401892554694239924818071494395125069692701985800960377254523648843857042097474616631730972392445007464680360051568583662254991005397444232673763465425529943713569410596847685742438293309909108311071452498277837994023396100320778862586330936422863543573397312973709252404548179316989511686288240160929912312529570205943724347042880512305507368946458883720713017302222518387613247197010443923326866252851281302264470686615570761592022615091915641431558013727812063454082422686932916682264551985141370104972097553291976955310397339811704326200683563474552861983771629164297567238790938575094995210248266883925495243954596303766712542982972448178430463357008323371903074011843481411479437160092973641876195607664097804330400870781699369064085579246427955644919692610484818070483607949609164298610712968578550173292552941437167313752109802709563565772680255286032987196953509194583508667842566009655021584541280800712503203730994536842728760764760476862095255371547484129921871362600401632519844262925747134081691667317791420146366185517780340683812526478140661629604802167659585584486431708322005831899231462400205530189535421359262717651403313710743371970351452172100904138262299315295514160543656240508743286843013093650538778755327964141062433267667053227903262583601555750033091109964719428624830975909333165104946197530747869674184910827726680395652719311787656483759728171917590646257627923774488492995349456918167953046770336767818111269313452438726623376375018467690610969126423961522111874601087696454146835485850952939144780314499621665546836641834651288646149860620828042856920465546527002271627950030530714273528110388190789219573331591425372635617048197932774340153640766031947839072268825004047522485089574358071833340307489201632201799251176724173583291140923036810136673205576132886790383123874162627208491159255626006604065395397796771833833009230656958802990419473059298752415235939759652630400505968488642798974194830803289078887889982213932288981253572256191282246838908801864473084246388859455369762013046831932177045899542996699090168035355551428408981664634751158833616907614113682422026446483937065537732464791315062184357967320874400534009593079838554995366219575544524827755505936133854462887969811879366092993429063639065009254850808400482290389481165358492559216209207394902029570702798148659273200869880869814817048477197674710227926296106955951972300662204866899131145455492139877400975774554329670001542400372191748871495112867659672782537813714423533427162890423748477269238706675435108396006276389990127640702175156149389145552144873880889817372529355046937219540559201766778532665211348251686148650757844502511505884594946419497932489265244294144124091773436351547756709753662807301972186309670984094235352846700870858159347643151067659145003477390221711336326757677837482965118428034323947562154799675106898817309306478885795297215046909359973223252225166264360605386639843181644615530809257832102905473960169373888383086115176756813736573040998273621143524594498758979019427856642350797375492953289630896938889020844736645616598846245972701605837260266848315186969869842359592882599589100343707119340148277810041026718106434104325188351484508798975343401083833047657269665814241624012970362139962266110377540093454281979652955691659733918095485985245406473120653666284764103987401205400858424956461619106712059442015723554948243162656434694001485395892823795378155279654577348709150336810298575408725314210352465587684504752096180055315506091245666420803980243178871953057193456498087950177051389852748809763532784525831466666971527099858779674782144810403671533900561098760733765084265538397458122066366033732578166597696749254256398972735557918998646845733454560563355065760255148188701381504451664422522044422190786252062314730969401613007245430680363152832044301065776959299711394210163889867624250741316507016110634210851687622961498652420349768158519583174183610442705775648144580547320068414547700452609261921521556885647045868765100293400433417845676053698652145460418410958688317912530678536390752902574417157416574733399421298414671318628067793113059056212630563342053650681641329121904480008925560337477236876764349616531513975440650061967140613827960831893786763987129310500680842356617219295136282399928253735185901626320961324000351645977705308819141252051221994428577036737541421232738149079571938611769504957940890992321485457461876118382484169230923093640808346268476208272658388776538327691431327562543537294491032312902644377688593888406446733397252780576014310309588375414790675384573842590658329938773823878695606359936112496889573615255938963885495092156401015136923879910063612636294504312670352276557978889636153826326518802088008579873863177901925579196210884348714831273170564569844439654594985725513835865545748448601972114107592666099267494279032538193140664213556782938856172104028859915433127367438458546753670610185386760861591280198790893707862506256854171265551077357761552082235667717100915979243195469902619776102775936373088652327120031773035552301209155217557340294360407688883945671807664142280578471651966014122451512574371219944996429782063701689230449122268020058909064009065968016056414452502897617910020195079689205778251220503790992647665849169870537372336844139802200325355486914811595225076179680377290036751535309795312448810701009176982031925571016089215196529898728616280069490838313575625491630924764500074665109679828591458481869404890425990324878311309724313094793869533782560451044382448624652126774486449189323051486393223625361431340557869270292023371473244453511282569762368535945791779960848479799055743487602131673524757848926930743552329955883973491543463802219847510097615602849227997367702753407608987562365686277754576402571352791067497876376562294208360311478405610826465525622009540737480304405401775771260403625706042547417505277897829103914828983022857588078936217891002216541884492594011204473537011757639519919381859270451024664087081945870424117572147627651690607868162632166468530428807452653905303136117574974384735882969769393791449659934198878211341863576550673889128505051086799873233771643687451021715367409726955152469664662331363647334320242812115333380712819266690438784333257931693309267010382898266018751689891996927231069370910880510170995586979182227955549152738575263436139020745878622179037980807725483113902596287031419111008035618634893661356439438443589841142205805695370881529401709819457234100476218935424161742269423342999626692589839792111264697851426919414200167293101093634954673163897062271543383534836375000038238886325213597217465806730199928771500009873802509225415889316896480853016461838072114029743095504155844131623012485721605050331320383841652813648343047958029767432840066531231118098110737232173963057138969673671767330242802810026853854139877029366021669855049796915043423409399627424238893741041518287473948787665439509056827981039439086599287796923808102622387811406945341751156048132123191223499504035511887275711960960440630906036703218129281563128500387846129207127570800029881101972058462935529137401009166615477445429624079362494844110432362986502597936096309166922278743752080962903144907978067502615954890067693941089127327670479102678975452160614997075211973967611912907864843475007460642088781597615465122648984442758302070516435978754203516160309668556760080602712739869224644290509765139609894541160848568526841802648210078637577137820229087441877259393339514145001928247694248254683013209054576546616436415215649527320817291301459719811095079394874069850141757359270990484242681908998228869182484039053376602111973972301162384712816691557578249483574845508998134078976797689905309992130394686954083494182835886191098136025378774264431262682036606577135219105289541524931555634479637405581986539694589118102484999337884543071680060848500459951576938385794576259083391648663837292866474625582497718853881380418883021437308732128215898299558938971935794431527284109173433688724308415621883292627197136996451662569585064700942953250823736833343600271861493445216336974792142061286775483224236050026145632211942908226626506460039891371012782673223317557211168817121796994099556561818783945132436478679061911276835835094345100258152746250642232905366080406385494286540051093647097981651912583600955272377173384249695554888670624173306067283852270325866165779310863377975568704445646800475741745669217861024215735924858820955325361051670930590665920330410660002380261545397896196676119789334389937968487252031487443056115455788400521219346435717120151057398324638475693848443687042507654090267268801876150941256120325138255065299661625104766216883114257097660331343817670732897193734138989013741013404313662183634772177167688147918804015734055231682669710721129644825993805475556008063156226026685543322807325036122010685715944672025486085318111058734315607527786299579961878830826777211420640605501729277517221066358259668274827763571316228119106520907094035668710940311685187482884853691032607911578379721529958699298245614250164186537175264220983236276266822741536016039404739172738465200489106532561014834888614403472032196287399362149536941596701290148934136518805392205903827276374449331087510306349787114811742584292392502521233508223475440838584808829723337790544589509887228176458372324776213961322230349240359223909446581870297514834224562934012335587287960849477520662278643996479442809857330082935630508005608223362902291915904518444857551248366286637443074037151608910866523819308259451830746873497460936024208360610894890452913512379830870343544591531634887116835760550592641183068867664854110184951971107527922812451532778080131516520356008483717873926118323157312753485847658408759576483639941634069945776376476750494436015995168412180002974683171134902213000212098243873204752086614853078303180285062115039680276520233785042068514822318914593082017737041995274907203824156316083840664294116307988013308555891829679569260401842681835472819747824541779137639177709237970662482490505389973164397345872164606681891455501732766591907307669699105484289194529247338816305683861724833326066189444556864088196296487950364952524508181983509277675504464561354005622825489968097755982652407868710443618467035631380749181040631876101824007635853644416199585743285630948171158424287318184619797301943670491033449981350841237488465891547583305683063576604782029881900250310780601121027676406243012630660251105322287560686574345615510991759257432749018302040894827706747661230107736285814240068436663018148276656193583428691210038390802041906538348094818761402132945365104282787446911543867653755611535796199087999552042435608918309472531281407187383340437289229579021281533735545003746571278911859512019124623811629456415053547397788670862792590593965523714146374344139970122249131792788893674876768193727267205541170229885236831737009892415415609806500540360783492658727551103153589961798126211149087221204597521713369121774507845778819724069257279710456414173642900060788269329525610768597171139760338869443317577452291825678632785761755600939842139037050599051328170433324367689155711283362017030056031219707435375674940559558190093221305483194542594755776105556316409504058793798900729945639323112128409210807268616712499920771477979464331880637411238433669337099567373056198223506725179766872322128885596982973296663404795625924373168092479743643688297913947461371733629797644336031500281799376054290008631926105929586280575110651387293629350524565015693800939161603165954814230391430201841824826590721571197847579871778573066270686860006211167110721596310469312292862137178164144296110829337681453301677063739938066981780846369375150301118001398800159735248185154180997858449877717373006820456081155797807969367111282076915157402721015954705649671001432442672210981950657809788088830998390236251756167543819640358565729203739364945734833592448846504389444820087354637798481298531322130942251231187455597315932039447216566727374294936992543913018512159368881960897471879511861586428962905962974664804549744795515774205557123685466370670652651695058493087153257756874273477127924740780803360929238501388880647925812772077321918038560391467343301919773089341272937200065501543272447850816942037764410870263570119916919913329075165606441985299334074186277441977991944885885627905162360871607528018620299896448172223973098001405249757145641153737039458165827219667390359720544155453648331477795072090742508694914700264999838743235729499749777566028544272400266642479969895875255713638703589662314596165668066754869715847817489101494310990223461581373207652486218861021521880763333912924648062493588236302510276135746791851338656875453114087405273946309644503888682052874043098923148236888853080371149934532824850061246490983117217109084993419649580227419650674239803914213652894132298670265418106357492955328583186808144427964534847103656349609930639103198740933787217202215494726418544486432904553703397532576193826927798309950594740427378046391131654635495980092723107612251133320243171571289315445277052312527374876015839345458168108554334091743875301133725885952660004972950568226243905828938700829128705770406202671981395303171331235247827865426666370810416556084719618582840532970442812305164073313673015590619702268823706705387237535713962977947037821851400210514649744346297751913656734243694310801222189324161133780008844723237275372340829853309329971999965556690861858999566244692335342361000928427880664007136963374674044336185536042238666883967894926405928119313122022096161079211609303275548365915843738048611427348868967263564125423126884609082451057328848090416081069170368465424440050092088867560447745133094149828768584052214302939370027744600155910619238686870286970598069632308140269244354243336825609545733024497941869126946530902855800902103578996237360999003968446794335872968078811751157731675355966911796833175488727110041925497524303189542485098749335812926550736404482422901833417072743140275927382012273579977143289576232341697837631211285250735453551379243088897414259672978113036123461309750513099836036305404735620959842455622148954414238569355323022078734630513766854138023637533756165157580174450206017072450441995788698866982148354869580208412484045751113039054620394902974150968737947996537686678074525194874684794303274287470839257793273983302021161567566774579448063078688123051690963274484683766072345456645919520838046350591429385612483695906625520822533214850408953062850131633729443720533854640212746728414385804494136607241443252241408802795956755473234781013134338347119596989281672786268742157182302432415545231785402493923661501292822647399453260447171965815376618905305392686877363888890483364327562157317998285068807279877124377614812034872043848282209929432455132687285095643131565782774736228819951135181556322775099424749614736017492604271081048011582560386273356104909573151212207190805743548338286039338446545602023981847444186643413699458650109368075058769800420436646920129173074756035331698996989591567091608035170270405501548610367261781462007435076859797386138868856569475630588923201896940033893646054920265099976653554484131598408452143840334613884069056319515296871115927220020427692307606566263050547619505784938722894583655779196672470351932808968417335815360470062571668639676992326543828013612188773348305731928815586669952888307239419152887758636004329300376459235790848122400708811502222335167285493863842823874857141160604804315489999879119101144295173496373606454181749068982806273526057996046984092403775893254615129898225136130507829432215204494825279545770403771001093623139783714022621730655703453573728941562864997834336959472592988818540579322487900588909015800232600696169155699898091464203101222016023123537064774599241210770619789146969799328209620240709524132687841246588711599577532075208054428114008921669206341735795269805007664883576692689605431105096030034974546384836180652099504655537506461269203240442513803266762038632249405868000321715780669088146721769805772925629301906815929327175833507154943930159405746283449999839740226380145261433105886011191112394866769428057604798421279552587405225045462787110258883891067502327099577350942529661361051535128455130155633033215586225507876810631836539545627738376769427747166323589595619813960863831484331974931915564246776822842855981440715286802619337258121340283101451496162803289684051067487006593435470524036110693009266601673493638464867852520056092313016907097628102995363738510846194740108987341990727356078224634505857451014545870330601021986679414764286221506838904441544392276694664778465855544719423099795935269565138909553293580190892355940517010403782720877236881302688791675199880341537248249326605424524509110215483910319158996122923849388988749644801883549550455425287894834611614372546849113990990329132298229350072389874079814476733745516718463912647168715140684240926230780741909554856277533021475295232292754680283685906882073042632919312759364704936906990583170657290915705672332712776276487390003423200905108762004890232720125644199939910466552188394621424181655058816728685878086121363528939925392660564060704244188848355804055252167985419561163239169578651847393526305905037032959034604337827171912536153098215663881935029224882222816477231528136680491870531066456471619291013619742567265313916945818540930524558708151967214361523978403047031698516640357129300111883760398234487901359800465552187482014494209308066997992793994689881287607627380226748897211927300885185181022536970904387778719320447613608051937820884360255537365486566824437746894602699945797746467575383932779887741357135777019176920781728605613539834273357792042998788251235653024525120870963152716170278540939375362939467994850808359185208147699211681054109333233387652464858756978543733539623033346792698995790620874001399466426551753347740829181980149969590483655822555773086667674305507777833808111898547060464609712656618931471399327402020422321029220255427375448185642145802801597271231081783810972079052414279291278813548102663196026461446692581359114636075829603820362312772079118975374114184609518659652660276610885704621990704464883852183442132277403700909307464552885040233286964889564642487831221073963844160408687806572159438460181186959823333680127175112891577739324923380326503714739587887791459565560943837845975573776105991615314850121512702908227545969538331325311119389679531865068306214162838001678785196814388880134283479034504688381354709428009969070478056953827919305153244066145484675134786320688028622912161165757060653657010454351163377699413514517119702411347090648982052377092293714745452852668582817715624459595762550126872689244417296704183093182849924495316245064895075470672712383500088576078364269710062611323237907522398017154120988595897338270515739863599425533652218320568628568693568572911621467565598422004757101297915423710244302221807440257391641009220375542057722928992276066148193445652049224616776951524619107187202180861527781209574028278335975206410728959759892163913151400509220406846762045900197780614100136310111524448229142018167405930768223247314300336640635302601026938448751433394625564374823473878289080395930973247088769320896986091143709980195804047318148874630017304930462665454173335875963095527203925064022060021171608078919426740294974217253096364994902216541617393540460243063507743838815801020668076049793301675307658502532771306897326867236608080492179498083088297323327993746309480773460272839537025319187327038915183828150086656146227519881809067321139620461497332598769040267649834515155824108888856990489814191081341375862009071542643797812732637380856985165362728594916091540971478256041761629039419714862212115022126115359713806557039967016874545750031961131233939953956879974374788850363623851239042652443315324644814263123625782011824201582216178741906413563208953061024426861291965943951231078829511596370647685721369831880755579366447290042694457256891520915269102802953198291171210086361028683850401357943968528137901661961693797682110108695474287843128569529422474563219527171361377159010040182707831047156292120414306338180860290895538641380283912364334772996677977501515132187308612883331892882183472421505755806259167863832217884812911762266833841668784872370012900272308014077443418441930821770967265972704107917775008893909837455657250441155691761630371491652938023431046448255697835501863724411371599134317260286691639424769365768855282126492124310348144353116604468008005821102488600047712065066703274838266413166016602771832922126557904876051902515528705435197448189799136117135683033323436210916500301264753316837522750185462698138838042901001766214745856441567251308621742269818972126364213508111918572577500400509694704979679987720893628698736379237194755330359219389186967805430293920355674085083550017363417198700080489722844115516258028122619935857233080502465982320582989607907427394964584341934332777950879004011355683571095086153363197690802163255421458523319078585178242807427854102532523134822985858939958250872620110845280446715631566246910065649400644580030900997570149017827503104241532193010671305103335735518819815825494897862595289805445543101743651383302883924835667823352386263773467716452534374682781073333178598974662250284455677348756253165642168385558914476687147453784326247279272383485597368558612031116325610476298328754971916969732984869394025782546502318372784474882351730637223163856561167289259544607868857417842046863927123458096279710701615503351490450006025384670983603033287141173455181424169423498125341051948216094882301517472278437101877225598672824595286240967130177921312476899558541441051457951065822085649563991316276136409107299894638414679787312568012310378509558235939278855540496719060401124236774274917266044627421404501461271068013322755675532373531668156031339590495965968044510842152414273151309266206398785087500045068844108156555904149223558021045328422454922521331577177031426434289662334037765888817921014690183340658589390375856161176373283591747586707791423448144100079955512001867967549858298577190552694036866775457205303453371311180573364207087405796695085658099789403828945870770188693650714989610154563765752950128334788401840448795773777911818506160517109612821671107704984103534765682744229927558767501566492451741681938231589014932563215796879586727099976776827069020381484781258265311530148412830401897141895883182906695765127758511896540793284481111230362042619587541622030368556807091483522310550982622647330226109619060381149714279303215972445618087778639711310559125827072200747651345254446186919033613680564319949145956270680426412279456495132519598252542923900503428851553007629320194401164161626865027484663347721237319566990789960458413783818601559215776435360903254929354133505300222585272578357667106514581584228640689497603401694665434439657409721620285911003052995340811948173077075662210382613415521032310435325354937384651595988382742580086503376666700129487083575396141677974321744667226912108918972351491637715041848293182733597556230687473316232486616239626261717301912246858219919827933474689566643700738843354328541885231060474986851149476817708564405264899543645331019578088981275534584647979470521490347871946406288202682399274853287429268739476601860099898312744427853328913312393860840144648486698573801727278575424596522666873519823711291100046953813946085384564741647033532758165527286075715178912983065945624113970499345403569530973049473007273944782837252874831097055868888302444816359080700691882591997328113404894497048015924035655378243927724037351949232773621946975745460941781047034792994062181391200094012119373901703216094515608338027992359270731056446340632918883527191010687166256321161551627199660065168045952904797573103496453358474067423968532574626663007519799226644844127918703290702242922492120739620454170602080816548129532185312004127445369997252130069228502184680161585797227193638624247105057970715376085969759481439978904787940661384224228618500886360166250879181661317795869123833063383608934439603749127300961393182007100674934761486202809644015138640386847171911991111497979839432149089137488644546522963794651115689655554945441950098068938765163857749249069683932086529719955340879934078797223103358672911758839155316322041414512993634095970705456553322540289907541543352760764653942923302094949004737231431210498537680517020901700884800159773052993544157400173645387080596253701882303476443152243388338788420835078439166122648913258322615800271627191751635426064355996975759703188963187652708045397290339021994600928321035768353876049604092255340527666272851436038282458456300015134060880540941700230416297814072247451205630569758634565106753176066658566317599796058743779495418041658922963101908902798498656450431035150027107032957939527016360865072867286769892084400940779685706263443365173170014509213707165214651632190912648740938530745305486886056073609198478645944438764115758014356271042274771961462259504101257400492304442963379597095742779038672836305922065452439394105013772566324618697745315646906273443346177341884942817083259942991511637741914203174937838252817494198688775145159193727294933443969580585592454673983994705858596836582076209289638388754580647001398532005445136140308566462913197711814075044957598023756235974265234215213645372230271500656963633855766929618051040333277470527750745616889796382554470694883152547351620460078235524447802880461266563396695419887610642498343736757605180268418839608828978335292670701612314324699611887579565943074178005204145535597982311195688957355904408702099126894545337329549820864757650428306037932045352232571015701832513713133398475757220884720555047838438339819135887333278716593504534044220388777453933927343778950764581416579698424813251993569484338648639593046925017697431204988146405749035461728187882729158270185741808822637469890571604273025938321546432836287040719703626950348895665195364871527179329245617183683472776136658539184156350606378359308644052228284694553128020450205252165807905664410312706801392694985375486987251014463196987314869863751256566778721225173083150751081116949368613462450102121300314608880890206116857085830849959165966844803229065215536052533946282468206477663710997062977919058319498415101621447738141069942288249590879694170733393210903175773131225248051726316869577928760403888569309290545164548489741337681800482165396106202971972367586048362298476760666610526454476286743530243644521502999930740595991979722777397424916067283544249607418076634254547847787021224506727886623691430836155886173457991447318740847363407189179318413793740357825377714214418014577548313334688066920921242193043855720805685475790998052701130584121333228942996873217284294537916014561484489193919309219377919876071358614974700045721719802121913872189230053977705101444111250127876494413125924066763345141637147129448992596937188048450227682739669725278257947121730159294208630055936591275943820998826618677410192981194079271692917601281623887830963015893538168918409355628602744219258602750644441352632631476126206581246778439887165594045797136285770987908334946213418607205801407470520383829009131407095290871100208649272680522855247257335207371355158483517723191094451046339269726622975178485571827360199936640044677855773227460217293183420215693861041389297786545219856362408978413751476788027138477535040117422336351486220776686395712522322926996329500215888856248421445587539335040449850641660686834717393970582968619281924845103125732619325070829263757032981562387838274391961568983053750720437540459207715913267067720430485665309765754757201351631963510183906735954586132082351823270193120429148759377864262694045460639640909218294665186122236379546451487269224976452266179302708184288533052970287570273536235388852949911080649332460896658272420101572878452613667489565265211628115023701909490985520954409324804054542751926312247060906271348296285586385059726631328606303876324624839595088462430483509622622448996003254215521413690769422801202013794488802165074763777322244725482961172299131405545036036394024770102985383852442773619969941529943783970768818551130268477736240378855805827635078669575150411204774906902033840437566511449698593533433634593860885519621039370754298252639315269247355236021589355585738451613274326477110967166039083824784668310398746468226874065342153005289183292652633817100426319708191815925957573169832262515247624957737610753741137261964447381802101767883698131258507312102773403040165437501474150942157707566371758355526453865370970483057527597485740214074573860234892285015344642491052444587650513129804605125242905778209550881283369838154141994849320114487068044408210278243185696709203104872380121275293260739251147766274484655053147426288124681322482989991676105435687005237184308142460507867325329325382107383158657150191775516741237467294041667154486574130492534431007896072066826044194402507255521558251751920658402869280152474786950466968628188934176947779835488571136935633329443924999302435830467185387079753519828175795531215198497766735104024681321181384357182094950418097949407034620983769730627892307667868065132650527276189012746614384966353709756495223709925205721905388156892832428637616725935847889365787504400413570483390582433835213666547145160785546724893526274077422428752648244034483606832447555164891498604131879262250253218372609010655783752038701959627132404601607249909416778896846341350306606744501230986611700062895469496574608745857502435364860239270805998522498378499649861673342948964020893565922848308808132229695588379744821212657449373553815587927620959111560161947317204367786811934799032566175061925930434364721705311848286888929025162864324933186031497864546222791505324263485601576249396641575130685598029660079623939804963641585510548995430364781806196686212217699772610321669443188189147709777338837494294110408842918138131101030044581026133509240910277286840078309842717648759668606290666337754935066169490937137437955824972655943322275050757783568809565114246534060374935504678364356964403166299394931148187846614196911869273870203918255964616767492881288552340085650949940672725462838693558330966788776126731247803136487832085500517881620694057899269166732603485653336546602894723122061445062842092430582861585651454445417450438772025633391741617118845603225046492986232572917616994190251430592310468979533703809129325175812519884783857736322499900217806040757001745358209705315950263557364381709265191135485104636164998627813474786631829287123240578002342601341258529779036223110267392178895841165457861105828551271466581149955110954632752654321719236527777239743198352891705307824636128733546350543044583130812268414469711797997396430804185192684588675836903223142935318711487762600303517827254981835580614760995018578488582774108722252944398388444309786338328887156699950314345447184813168529582368947720430495261176708472317120139345455100894236460121169980544971427428172557602161319740331143310322306837906163996584620395312680707438316776956945951043512720068672244031063908513596961036437987122281869125653115435720319898332647065643310968289018784439099223517169806985274606525275444401985958276982317078632434638954412561359043713501825889041878079504521246551400675608693426727989610636707967877320020734716975037439546209195746026668978834059931347489282137985833726776275036448221853889067436286833313972253830159361658217548175718760859164123912856146596084797425847881826015738100383493518494379898949755901121669119809343523899262705221898867718093049584913545291416384677553714983113564265746431161282655414706078234109931614051050218233140965255974115320019283313748378136582506684106059845570416310204748571046188470943388622571589700270449422489435315499141466254500848132229032053184920985392863819657731340602261517218723860047424293907984628629361128378770353509661057450631443170981627130200733318841659075674007138454314646475708040933080850949158323068536736160743461098998923493324053288007873234041369086252635414300584554660230977145487292205305148041232940946719358194416073412848220101680951213424656237667989305096312299288619820596694312045073208923828979604541542900962824172543349569011068398718395078747101640084258061312763993647100065502352813101944413678956001290855690028371805912269692582150506899982151904892716404754699673987650983070410431336764202486313324882569005794568119952801782671338739001183881038444197418309612492235227582493861503801931481733428469573197777209192665505121242851785367620478654324945115205107969922710261605247019170740249970289208187669024179478430630088841457216871657701802749654529273594803670231091007506662888039659877386110048425756547238263118806186414613635047673629242541827615345771075802154446874289935852894545841885478490470144950565487817365795105409699147382526992472799552696347321797666891620867938598896839678861342294167565059228910360925590767183536168173831798967854198367877985002542969661476152353471885244575672108537502738110525011713989556465393615821517385708984574444213345123181376438756496830237134936068747107742178955533192033196628776143475268013531898605885870104228937231601632102334086632916043911574046164046738465761694899263597544408230363366068647720013749690282581094345509253700582434216752485382861809842842787840713742266544497625218553737609275469151843351037048102258045836242976206392817404550611909485432390242190506203850988774986386615181510286446733046975723932843895960060883765634667773567734800573490834873174670077026566134614589824216363140071248357564485711544698519259072440363257896978174666190295322689416936170818455754135411569176972122000862862519788444115000304808646321633247875894196689974901726130655607078175333426032603997369651034198487377797846164767918818852026048056675836128057001075193023001056564997669408442866989675735510685525262053441147601737527410180346486099076025800560376456705177850528924575104117060994140864349962519487979178982349060724875905727955049332304391812067097772209975532257208530067549829524427158572862465331354631182849274286445397708223129182761502766307146408081444299408758186838520097917410228883434481854713769597607800818846619862655604606430267286336454354294786555594446868175884895952019827534938297196451374643466997892022108458117613348478020775317332960551866601428743984263587571087235503872515465242947996233213788021024986018037301725511172189864697770962961537296113819177332286723395731650996501413738735777009596156893094814184315647679297249862593498511664104066740156671767432308266345257053247727154301053858815322748419629044436375044048652638397854311262140162905379474651609098234655689352137818430385293870192749442008660689981855525995027012348616979335041800097207113139659408622051243956307950441627718723143785103971229219279592527706072618207316332993791401134623106641796094894001404826988198311079970770808834519824313103684808885231545537894476027903601981134954323151614937024007278797213373506594021348188421830849131241668688549728609817784305558619251179591100982982224952267995405491324283451812499829999976527088487032705425783674154653441566014259057292697638450425605494555439141763975653326465204662928299533440939008688041758121661601897399230799351164262556552822563705573756050043569548767257008540837892233269103200747784605544223280310776569186239859610096131372431909459338080980900675695956023996743065227433975157553342154475836216967020756263698479044274703910437208374289762998633370992295536769238479424323974549637845752458337636720019395784359060308415128073363744413299802391373516121942009971413994756982760542406328317913160114479215399973534584064179779255119331643796454463527120515729350495770988418128327535682085270206632810468985548596993879903751204904076861156824599671949959597317981990829975149604890940842548339736269463979193137515909893198789025325098791842153889773576191308336880926865170092121163490971106055506294811754777842575864136820678258602079370374135493354515458660912177244001091473469496953748945106336581258362794455025583945179478657816886934837297768581662410467324849273984046912716513996956239548427197236085280270167492927346650459800152470213713806209820551889762317490660851351366437848651736636972759537088383494788556729245298034883531548021645196980759509646745102569616975758979629365547309994658229706283838525361983949875126914498768610884752284938472701915787668198551134370651734531515877897552687316101198975232706546257098360847755002295597638807620605484402686073020211718569385487686308211524363646578082464895089182220027836444274574306748391992993585531185383387316054343061317864162399905257702897945760984429949237875861141067835385400137190759437612259360235181803736781284150329772954052389787645423063424891357109355286078374264218890306286102471606391852740457926874432301932536626410903304510768133937593472712168215025192509103602338810073153155362717587484497521130578690104420689367497196939364863374430255282710265032948430130248772078943181488610567092874854867253543811816966136260632151239032983783106120092716378632826328487462820849006615273378100082102846881345809729337877942067006522224885675691763735642946879732798184765617047173999339356489396355260959097027670305025567914339486508770277047204981540544428175180321900228240365811302155042998192273030834841971902791890458001835311634556795625383798426330304995856687711250289505501742780049805696475157053716600373811989674123505500037626752092618623186193591674234613896757550648741831456265707352863856632212266450469126812012250673875800234733302458935328727704541413966611785322232186005248571649550108743172316423687759921659351982399152329191913624981667977239293173869168007500872222259776371523591751181690066712778285996187554990823612630497635238019332005589407703760175118757403389426574213521791188976633599253061650399730135315743706396872747884686079145703014021967952350512634466671999399589082634379613255851932661315099001796529828805173672084879779923083484897208272023191872669821776852808163800817829500308897775708115469152004379229376387670250108802023072792807759400243455026453035203917906879090903235174174057970343035164726013765891298422315639498471053791178970898172222132962692607849024010291677955737328011795257432026434737498199783583030880941448818862865241103637426269388552505740849431903869875372188372972351229465465939168989282539246211990804529392812997851591844507720348125161235008655150571096407055457825808430885660067800296142373947260078616842858294259590223753896336223283031251364044720551192719147711343516964673715412654847921188569788363980119988105686367831530428869482388256289587331192299341596161507105694382264234781708086213968067869848953193596692093246871959905296185609523424612282344966748307083747424232168856148805840197607234686225804623358212475525994419140779750141305069959576950483208003579171614478690151903975287675702864288636323533683511659513557198067979161090107454410544241132819105987828687006225537012124287047348299569991789581784903213801253958540616176665916233032971104056313752325855964638729142695005973186251169851220331576080445565255584345325873875409179519766565293103052001462472517015410232111962637624973765553004216238777524419509164551460930760588904939736998828759213638897551953649352430521618492961729592497760680032170319273441103754914668627136605035147766436230424044451303421328602264297320613750267425645593670901112935848892409697822082488952535836728972236630821378194740048140106417795866622178982565763864129976768397508377997791033738732620296652884532311980947907291531846568067481460705987318198676042726891193188571342647142974444448114885717178301653286760143587829877194745750479588619448884618231037874076455884114408616632727420623905386612886265338346984284207786126412795671391624853300017842177082385566970075977416398822215995265311146905950058379428391796906025895786670363928883058364939044342951392573939294093714254228931586859935570019296517252729967827675970031387185965944582178225289655004896073121535501148924770728906544963133762123190850224171011022237159131754239519783065596694252284302253188689007343130521157966257705530518003231346946882174466463960713517307363973541315309053623136458581497195974020540920363591845771730877761477590325526943242848437121276105400646680246834626184649543165103999941937157537620958973353781834104957414959264176080852781224205244459523682787569658694505846758715207067460435995490499293985201726312036448908611568670170614333938862559214270457328172937418446478115896875356115288171116130363189958507746369536167230648609546444944824748018079219817926259239540628264835735847904499178226907568238479100474145725073020226862577745171635869690459735052827467202043131053757002647898838222001099311452310450977961321218835918696563249202448804704711174871577355505154718869702217066390149931295121072919112546747193005318840062376908520403869383685366840773184814158990113015582806894431107896044261826103297217227928483759983800098897696838291999178832665422895211759134417148778603973868373636812219675605267251438954847073536148034612218643520510134928260206063941253797159865576195588151552809917979551550859486866540747392592632860840615043669948141761324497118717173377735631054374597727406121278543668398750955618237689575683446762001600184632054799700987397994032367816143485052156859637564335438251326914427886291869268444119896025339400880103536261758895722300673201590972228536079601543546093551428791146558703003754815131927765921002664007492720892237291477251869788784336900536381980708768155134059927686037574891915760809722012264694868635433102766151018375983885892944865328207747874222384560391230951800117818709100543202870462307745057388819612100476747826983767155480089448700529807291609640721202709493206351105499440280013633702916053061423942717218196453658644275647832577767312288093623998644805687875269640544029387617445797140716453715522893970607509550458970363394410704452743204516156308409808385769144723473943588694755382475033993331923531511084135863272082158077003093952564185818227353449995998789599423894962525997733045338291582371565716329175134540714699726343201337540830967837611215766541648772819248620871259715662834431034760322092949496535616178903904344599791694270739275480829411587520656253851221512718726897486688225730534979260003748660514372320783063352732790817848600280976469545727329242655901304522021631232269297223287744567645428813732939885213759711087516986168900105927561454584314915192257283388964174393206788151957560958391028251940456225547124753937564112215895622456965792347365816003237325064419489886495646215238142655388944619887164302159611263159129547517554876240357584869430041349497297659313155786810532220597386665902635915223948231201937097755988921963286304823212653761610645880295186376483684871255540298663884608208624902712303085869440407327110703250972992650700024007656114093057730513739033195348746736084071165542530197442225615984594774601673838272448932755185403878635363891644021218818388312764699770428581167700993888053037409421595791747395086991788088607318753468789333843961829563709725377280398794606732741403953759509476930324878176285322787643898649767042327648679453601882907136422585089743081489811460676091764789403254077951509605585458769539304144290508936883541961622466260547454066881870296670060751054249607004038369281085036645290635516052275860547723362810701800060611110480209750864816752782223192275795316708014025389035682187663386495624077577410409907136894378398143728672249695304062147195570928067236920770261774647325147773219782654196515623479562976665999304683914719305352498890328084800997010397865171494831994992854316773505510599180579152922714170361521098291259162641062717154005542021447986267551276174621840095606698305749428681654854737014400742054672617552392908609222289139974634338743585865955806513254050531051930497841594372610996032566797015667887674112786996769853162862474720155294511951468826337817402120455235969848245837110338761130433656312989807461372494551848438237349060978180406196170851536045913260203053071440143098262280399917243167105750970214552708174596712796888274164090979315944137990449653749257758905367692919818261548491947897160289511430523829346109842765299788731466188437942742687536488476350960135804924873785111064598340286284556901038868517447544903835896245682218929508816039574074953152771038895463136613824755531303891591769542298331901260998217945197571459629487823607305474289993661855657746798900061861400358145193174770442015214954147342723662713032010125546153192385881122794371949153023495451967530351475732346490398193920314801994987796943716663204638612799622857568965219767271181800433299441883956531437699714484582681367867435969946823806929153279955526714352707834532881197863757191845902091737074379975724797424260973825734601353537931157501901745196645509585430802755877923979666602398303285515028813016172001687833577889653810165273252623793064151419280504724900818584592424770427309657299996753040238417058069891688779356708838319863426838280382801751231734290736696619396662793206568427721342424795601042971645792361642033714467297872088538498499607194805415371813540166627017024313982707933368110659061816937459830236016428248905437648308594796540374656363567096428188314321786326548964739262327791794486492315196990472107719999020340423823325163765675841870383013102704300105038019886304106327411432767006542296406437365771812108738841267531901694252311777563741624331344360486150777531681330008466343951795563070930606639189537202171470091965151583506760490551725598302077218491092133754156739276897003307978969090346156161401343983755003891062361469746055229679151442155163313951087937780257433754179544757913318345559308566000518185529758257040419965953476170011776107742900922524369371956756652333761176703069788332556116818257954852355022009143142004876253241103122183830992156241774209255789243312411892789997194994160506570368563168686272088043601901443178558078294465958424726218427718031310685806704729350452445943859282085703558577611328445225886332732383208623305562606332695319214062323063558870768551290334818251777102771901320731345754357418346122860586741193711261104398630242036164024043603877144278578425844869229090336520070650315205014343939698403422471368777928937572329880702242708984989327394071031611299095070146335482932839745903158218156711945837014473644371858253864792693959135141545320376600630700865006728301911288597331861182388313224288929439313739691680474499594548953476851947416006889121212285829565501799964807691396996095933148190894528742247073453077188714953317413908630944774952999103940102188740109637046926355820494085929975794998757711234037513277018660423443774703171916068155085716490539394083565575066265420969417785025663335431834204824573118586054349501990800432222557908114320802811039497731216105984230128527445566383153369595025110682176285488042626333988354214933353507577110676303020492173683562848418579691050810012338032180030037680046499491181065306529435443979283383849482916701278424125987256738277460301431328329274213327244307513844556674867601605185290788782077308991527576668142528205088603585501443574332360521012116522321955842659356205260265452959110526377724076622849512569474084315336704257710484581702882266324683996022953431798252383740752342882212354839104257588202703058536256076324795008132360051206294052480764198743676216612081084436281337845881987196064310766681003018925321168627441141594401184211244466295895166075725060184370963397732458277524115852112071792184954864746742852245517366760155765981602193792189199475936668084201299217449949597373595334706157312613361128152940637325650655795654189733241072468270805520639793079753548472512784854363460902174090561395529876569530216778687281387167280202241467273778532547189816444143116036983600415080141546352008064479031499883922775994625184378637918014935836008460619926886116225685129004052860379910872438299067182487530509564961096932165792306091539425672326614021742931073605796424942614342127703342600033411571791997353303069934393631958600431425005562031782495563206522944884107689873755876312999635937060168094321692233816220667706927230123303794321555826034844963722137406506097365828700710713505899066328991027009516540883674759736524816824485294838500885548845151039648540012350030232264476745758674266212945335114924973602164701422783703440823560706463963491331757845602512118331889062482094702017227971931296000326257077022124954651248022489554052054784360087560849700828998203404344659316525714455443017997934720379030483876998555497688739423241973278645426578680264022837792725539990011391020445313886852963411057902900584959317860225768116017416869006388262651971573777373003833544280714504443542472568437755328486993631191559962945884026979426822813173713927082657400909099326110821387860715814926787728207575119132689736199753764388610750389633901048811597281909203879991200010829652736658881907525261562585857887147411338501746521663001466938852069911440989534604969532059402714341522067609690560458761016581397075477066181441740610439949038158456009395317956868972948796332081938841137447136630065944641918342106080482155937709515360785319747688898857798589722366427450192091638425744093450461979928885600972696187310781923767046984289742532442330161770038930513349699765095967151437807310809694363692218682036043721632034962745155031879110800739875058148961188690542219033466766156211749312002392917302452642238334695224615888090937104004898759105203518750258797797399737141897284721917109603309957755478129033577065127339192599169056396061991306702703817871474675447408155445984252892367828429017288456447552246277530874727949202586842576642499693973369889965700230963260523071891968247177338571427697360465129694663512378999743078532437852316545744872476906740289478740839597616948102363688979435406202145197049479799558743357708955877385979175217419893329263260040365823730621835434524149220997243727116041464337383301187146049672868960920619308250639928571447461179661006755400826115290027273888091299729376230491578436885738224291481076147192338376527558427122530913323440849361887228639794255914023509300429771677398359988864267719442526204873738193141087543641353730069788705795135471724931249750256706351048705244865377650200934970240763919474384394166612951668822344345767820841982191257622566805519604183413783466851110843371168625861313256877246496223430473509344624338079407285882059686848860711483000943676351286540663916239995707013802222142302771224370144898393520682125778085243575274705827152991374547230119070140261202063411471608100075839974410565699316230655869696059997244330395489430119436196107628588221827847993218923126302496656189862845440957886428665057289787423468000342230791977110360062070965808192981347642697525337988798604760025998422816217668652389180593599272947159463422627169745581558899897575836975524156762378867208131746921758142480774189705933744028164193076192467158070053899672390846519028297931035023620672473367970838027199577627722930837535874365564207673904423980287567714232644928882610545514601768681495219370660933247638026373681976568995562140194515592068930354001400970068158442568084576829272464945933904126208218689801534653376241624746192282081648481332023334565835220794717964222369420927940273268259084052168951294758697245121976523994388965740104697817799795553620875041183517309288774735696060364045165089397217691957792058199305175635908962664826022856145081939394645897290659363937104046698292058980211034557451681253219547921584469873661006636759928038083662952882435457112483700200981221044196952873192942789278538942153725777007952308338801109388494882472553145501709582024121938450466633059673638857689234014186693227316016285879770307000999308485879907418515772671738808445781716522629032640362796040211119598193467366350559207422754964688043813041714378899979815312514799744708991886586085305604897186539787550484240476741457509760559824464213920779857965596889081540205039995949492251097208661898296458299197528041031324509480729713735226837603681429632462305861730451063102329233168823389271929384356094555103815712351976026423880462395639375040187310425675608661341675475789296309148994251437335250800684587032096916792854317257118123190002936655738808234546904714362597379668666370443560533959516822768774380492162668801137012516474520589872325438649441020096084576584910307252758536603951008464436185258950687407670820520645412753194630066959733419679561491639248324940197339498808654216428622377498113298212183743264010081823305397085292648291288349593320500992009091394288953059312833876348861595188887661036507460116126651446198913651070160561635310670197590902776350967841023158018805684020850877313907697250247103442727229072368046976994602217274335492398507916536816036211410898941296623093952567843645595140776566823703372559496935940352329407371679177669063311101272068545434667989778838549157911200094754798274016900568396184823149318707292173568654246778761162883057301966800281351370348519597302918350488867509600754637071702921875631813044838389427054693605327958538115386980306322821465103817265585559740976734821167868080284344941935274214854584546896666796383838277802385713393885961309769200416796566123006531112278593255093799125623750088357793080832208013931080741923669527345913417031403087414692844727818075947220519499693932906825776699179500169000403175532161448758740442507558375755551635603685005242490974949502947077412932506701018226904643308398808098718355331040466162341481697280930204136948490060417832026059182651313922157473807658883914464641152863779628869950073076260896614392854718126462786603221457752888764587077937224614627029190938480532853449644552638569653891369089172696857621097821087705248205930386730918830182994787433245963136301531721809488194870210547608021862308125651540682485709448226924943070022791162725014013100263032440180713092265640543858250132583345378679026035229512015072149686271360426038285067781032373125368228361058589350146650176113299799198791643684901414736882910085431783468465073671173794618873382377036714569075295372405361369303418919200783767237157858028595110132439522865053748648926272801795227619956138900945362532800382546042029707192715921768568251090354936552329270555040475635552124409766383693883206681640677841223457359951582039997273317026840743199650178383874848726664338980894979706070940189209447607963397371730032165842225596535014715746234340613000944573322762070181811741891285828909853550051032143353236391595777445913331524872592115288170670763523036842853317720102544430456697746204855768069675799001791589903394486164557306489114204513377823092475553203294066919804511933954287860408539175441232434157532576119229264997093500454935322983776724915945325926291300180254345874726394801646856879159044968748989246778385750532845019316822802019639429552918744982739714497761765239208089591882420072495306879913289708850183585454384175858433677483290930138803343106627657173945669930695980650060634814904792430004574823535127517204083161971065642719536123713987438971382020281670972108985151754239286609472054912615004706452403460882489516918746668496473458281640300817990133269870217861069683590058895232773332125613509465487110080955317189345400165615455514140339201417446559226700182492707915322366699375022092676016722642391594688291505037118022603137466207977009204740348968073841956146306221028764716646917405388381025913890014233611863295812838088849452358618343707119315740073155057524665948993589724952869321865638885803170847763588585669098539907432285578571655708186192533158386768860111286692980952360083989499949837122954235470912775393120587649248173673701377474789230744513463767022944107938366161565237515413056169748472314300739063233608736438449843033193452356290936685971402617895117757585204645111467866267172934419932751821749109254691482090290318414786483350063082281993215746807687456605615116116344806544578494093016700679535024967224295297787915014206313451307793462472560537290383620869352995073876059186812197968566419854612003409150436095840698586210492923420390064502560958519224681424209502053255591812125776088196238656205076125031105601643178242194820752450114839613234269236969538505050086693059606112774460002379648788434721589241800185047868739821356095634954522361214615597324404139265344043677245326162682318456423576505720758391999391645717168364470872472110747454704757760971880293275421399426047718152291161267530735260249311284838709010997059341231733988385592041348280358928333209735425080892106126988016164825941391712154045759857228017293112284803656324375105167609256882584147464453431788545710649876080004491592111810699432746634945998717305396553840988535265648415384572560447994348260591986466569271397422996260651026057508806071056896154085317348124772482368022237916615512264250750086569297096292433244931868122378926487480159577726684703383001402426586171227951773756008114075841891771440124793562364586035165629315459556177689457955569583000485642782161180497012351172095186747922314778933250605215575095666354574934045359556805551822253396881292576672890228011334678058397895466363068528413083896184838436230636591294962272050505928023795210419189653934017389050257254918757147623282633456425125127458191895273143042248258539021879400411798042443758611953601001169798515568231134038767587037864558735673072259382407517674582409763225686801875963996168905523589560883873495355933993853590225923308900762546620077880190943528208052314377097746607205868086061012357229742848926490251517932577693580331664595035094970145033116039891626780898494548695073533477966977557588070406113633181192019323305937627526612799182925192432993567450770214210945077163287802989496231435956215656046253577046749064719209236944483834595081551664249834861489127730897324283156480614390480858312115805941310435590681435361012848132698955610686012286498999211234590609305654392198569259532274042623857699218676916512861127889975063708252232353362556792886472855233131078762569053487389105456654960657943546828951104953148615278636478820618528421212192476525749354961832591512551353310154710550951188125806324884772310363428085999197206246647756193787426801161236475972079571380212536793611229464675553326603909343647787375596044482101319674054886006936202820036509528560831196201872783664519849540306922480028220889271262152980998257455153140493751600570637776991090758431268324346162396695970014621060825468212830846158449735942938745256405670358714503828307030840266673680880227581677441037538215543917864826138690360463496777440685606043379115410428055073684861937037367035058674345042715315271736309411985996119982763455969320768862131839915743265707131691108086835543544882199502848509942505079942318433898172327882773429402492380203326208532809106333808013581970543851154178840251179293244702474097886489387804572617447227387463007290230982031255190703125390269450427608153894568981455700328040128716830479389427870556886430717534120382011485597565765305154024997778046893449003059522412768021116027636773973073008089360141940471263439442792228804399189012512423469057885726451193835747010912485779736830508779450711561369333392913865531543776267405987656621952335533422446013874546607388176036091689190734538224862630017906692987493614708409929269493818723017588462672672692289938780029079616743151380735318023511105366735450210012599901355342977678357753291770103229631718911560565400914191542018618954707314368000443047825769558570588855713510918110446944505313420284166054692626235221003228236421474986403484027520832336352325729556428497537255627310856354321208171478151111124526869853820665886812192023901376506477034557606510553375736496010013563988567985926124876143273332539979153094813551675296331506309403030628401001792413216939322709679871580861092834503463374451174742654025315389890422834186040245868543396975360346436561143038639317242283765024811176823877602374829817543651589907499846729849729066309098210815098942830037936905062410930680059522483972078225006827209044455668666663881185578360138439619087306772864582739906097670888315162153781918893460441544361847383487125662585093418621639480490211914936830942678334980919532498409786405181059581320454046027932608851306080290019237553519039365348067815052517504993879877046400804351085361616175309790618162656878134668037402450951077636410026252950912321424131440205132503938044171032800097509748070983023657548760797407215216920986731880347373545324805918514627652672902864960548772051999891252590941156955933499537725387269613265697231502816802587497427528473778227178176050205323763812589933421583457956331100788558426801992427359621023845619610661539922824212613665483982312179879307602880529697918757144820831858734186019048709655239840567537207299404400902109938606089656530907333649273287191954974932514765854691215351749855413064005399143970748297066869544251851696110552193677938795930866574445655164338620712882483734132172644338278564838379320709951990866999216690274009750062240156234732347587645959903959674039709797441625705021859433690919648240904534985737604789764771189842233700729341753493228853250276129830315679725650747720371652477166132310873251932232582147105458040728090176732913762359844269313416670210205822321819070903226767128496203460659446549685963008474802855853216100855450738181528896506535323884812411085704966065973890360096221060111759897119239591056834345141468191425067405310139228658894046526568925600536889039903737971754362760269968243904535831691191625418906368547374933163288581010947740647625679562781692665316416765595405188748794726765779493040484360397510479516443319443949561162986322245883424099964094554548099891364820633095369408398961615768996031518622364745981430064895483781685823405827225458506898182913982285725140608640216320191576344079784856613585301488021432310015668883137481190296667178483835047875742976382484187877692439686519423666235546132582438920787782234191545324346513259536707127704179798846856006604154675430670130730540394082647272678024707384514863409984318914703598012755816460817055648318007967354893608155837034533222578732586729080141064365229268203786574379043677038019015299991615428907556744149124517185440633893161075654286247200221503063089346482397483878360724580875190835179565924177567668631838951915338897727834762075698834193480865764436724636026204313102131359927858590846566714429023981208629592946765851011182443439846856520017038214691931777390722406085442410093975988777785718234977347884667160520470926442347401328789210834766660189331991494172937357402015665649743938746905000793056069647187151475051532178929026921971049541166260844698885772576053203695071613385208549886000916499473071605682489012019314028627023403024043659383544740821149870163696317326420292069040529529592339213964915624686824853270476850021436511757010889672405468083751973392008737669727709198361829695142635621988118973070714736937068132527711994029295648394594314311299039781932934607765661450602716505763332477053718192959755638890503329722728102281125941765278915658595336290181134267972770170697875459995168239340065303311774559852760435587621299470100044363702471297799874811331916850585812965204578185372558344513717686623646073552163530279696111768265755012236216636189197956249993228126975945280997540269481527010602988564007997154286649100404462561106019737115531486161154477905113372762275526119860497405149241362529458793051074081814549405946886427083081150598213340857606908304761429409809021596435934471195797719283343001528496374454180718322025040647354259948385400494049288433296577793162290783928134804239976490586448610731841462604325589875090510700243954230448471078437439887900674707800623685546838055262082413762386691425125801895342633567969876200059317772954063437507376362552171734110373410768570651671144033359611060631762069885841459530796591161367858994112677419790990579180567334871522263232098552129335229744086020307818042541073040816811835171571413603722890190672509273597399550722587131597371605922933861854284523561621079995411286032407259768617068103117753216108647635107673993656603371987914824674378820576193203768066853301272466818511794874195778568892331824392069154212987968125344894336114963826755205405057219848226839157636544958171535258338388688329485480819844160907699752159263769221308203318112955684872620881646353657562476194335254514441564221126738921772453958996529790038950491731995720605294755204302629916460524575527190200269147861740908097204822129129934061642892855509975583700335516864985752974354280537762524797074794171017810388408329218080869542905958218171870507410693056385279358838489002073523865293701627991890419177246613581959504598258442123957475925944637977529345666616697167922335760018025733572749659427606681801109734079827344131356414175394383301116756653928777065839632879839549264146401313158569561913215790900226704481545989626014555787994004851999988263276559249212215368626262548143928729266706970858943395477079139798075439119020336098623312240420441251616006369195627994769553134576176709618278680513313791055204697497211749031063351623878174424208543710467996324019475393577455089913752315552044207505317560865415552914224954092120447822201037693977449265125592886290814444001624921285242018550733536931862517308375750573757689214083333441666240170936577255656385552893353226403936952108138021179479192111035058771034831393131459016888625714306645608928339835414076002642900060175061908848456901488761075931342902276437296597930486393217791958414415134046771191469650545734851763193678074406959324660945543844196917459556750561674378245157394584611091678949707927213563434777495329292528926246091536544804522093054735397909315368380262525378231369598093539628442346420870503979114004146399591932776178801020025696234838873004922897062608905141420771531370205818910824845227907430235603580592788972654546735400857455418443654554779217077201979455391981094984239765182205454744117965187210890749166181964182917794925486903786804727571560478127545209008284796988612442113304000841766878881767780177030106614612407378079232682489256090455744597516406804679360961832396513056012555222881360342315922946010309765314820669658002386636045157666171715881618564187884842499594338242990128032441175335294941443932602196485773855846457465656633386535509218055584789914990440502351519800584493384104936052315725789397223788041820196733670254482643937173839708493241240832451440324519660565952171538672830220870506733544638334289730960653513690513075849815905970691465426011542336616866455143473230659609899666567430945408837699381237436690250667325924610961214656298816295629245593170651357576433689698920279123442767383402831689904102690361137883571081780734167583966251593893097562882087380087192584488880774986903796733757054713389124071631278944363370387138377406063334403542116168778232335046867142696345838919006521736698065812162050722399649737944092980544696569028811792340127951080733621403177487217084513190589102429318715563904791727942998670188585457167827924497631381009207691652122208716490345386677808370012057218052422897327752156716478491673954010341312289610645370019346359871798322893735407050996871887942511178194330697413884049603604760688600503329788938221051045917503033317694002710672826421242636081579813633924229469285083259522081143996183076941115796660875276010728969590848715628930891235376427130689183873843150722205438915066631749578817377896869236561191047623920704782949609010795564465895655625455586181762991142863546283347066405356380680365219855575676613685869877742590266554434148963293542053045416304016877510889809182412400921517354772916497106785852930852959140076719066365299474761704517712107685938469911138491422609870547275166270522571491310268159593497410938494705274916096987305218819626221235218961800052190705549884945785743260836493884327892241899221492666518944478608969193044568903496637906560052695900294564708438285267204898612709455409809937823944713208302715749352156460986999003615469645502465333591798531420775403859845698936430155359629578207343740814307223048648883488943658961298134765496580026414589955529845755333661087389471913512970198816298674017207434577541163052669564782866101479253951118985434078817311644544631959071118297326592848753073569360353167235336875376604008562398304851480012457649952991827102071833195249731760586812670783176571953411965477094785625649334363542867472614721479595085969771323616206981378235381989143089009403047113961861132674803896741515247017801714343789473946455741896807062175012767248043438354148964820650086591210145465060564037203043899243746828154602230234184447166851534049265157344503869631640118293199922331561085098387931255824069490714720879519453416227151843277219869303791929045137846059539775842979883173554650066972879480820967959912940147471703187143182978692715885001681992786763872761569234972705650640750581431819942397197118975278769895331180931392269531310058182630804275270208310195628644574546598918747676154605571976729170867020939772347565054002973403534588630184296080053364126344635422070035770658071663309563659383004271061841984343104852662384816518262481921732657397194268263290373597207562130282535181237603209894636879349647982141708450570749920725217295084599643389241455270023035756881083552878666950156225439162765489118363357661715740564894031174116115518961720390708331344869565945035280060966645037554381986491065283665935905108411721892752805787990842368236077400504459984071170216933366756879088300927419009217222930850156102553138049569413526834983437159649118926391612565464431575764233032333637973684595347929455901444214486192361463625051372016133765008115208047703056526557332652828888591649462755537630497293653707417845968671247937214113027615980212557404832304398729576988156592989698506894300930852334006024113854429132598700472045099174779852292238108124946442331816634984611573021912614219833036430017863647988024264757936539278711875587769734007526774003218789147824023757547774786967810198249704691331774886876051180626008534219883012606335614055953845273079966435090495517647996651596520395102338668535554011925132776159723979932866039986427744450531504322973363209804914564309547898110383341686432251358383279518154686618602070593237315265949700700512817226561437993677941491709360509230415113378094105573690816232394728122691506744836938588477928613319182659901106881321825917716161382633815805052570931905963606685323578007780625485223884088138166180508464459512042615600908688882531576178278471276702435680238669841534084031844710295034540336713208419619592182121052026350122581633719908581007183515363322494963505576384341732232137181943346739578200121179233706699875679331668779316877517771046580551068065576214062953675114086915286075873694039506529580079772916994854681037500108723763467096661498827544735366557693919796649531326436082701473169140248080424927372397667256841078170082105539729545277600596446294117852363464079809389193980338743560127362412612948527818623430502012649610018065529401033698836315620721610032120791331187458221248361120856180427121740718047376959638580702650274999280744654614668114447065099253481432852603807003133536529299453123015551989227415392715268945313365804178747038726482437764029906963212751703229812056089975197375021071485494519863891405536270115781734048253473503033547231330464313773561827356695753230943909486245406461320569018752704989885075493711766287053910721765407002934451389106190113748207591547754563069485766262861284392706377502354236673958174286983652856552347240628572582567640143536462602605917409879775803796048711134056775587353237610985837222291123624546171487673228141691625525741469839367254425694368762585172083244556961882941517067273193825242275658490869728346963642196641549637829070565021053593180075453235508098346634870486281296453588450136773973077536866979497990542281558533216585856978136796592442609837547473921379258695233949360113456579984028033495931437064997633390217287857178058226567562693978505416917539190495549982981100473163540989906996928320107670225932536661152657677332077800936763118703801988831884742029455189713287496260707778366159000153680904155425655169197460260929892418199666090611865110237473234676011640687759315056265402833104334454506335143612488660883418096019079046069509807278428425218816205148199148081151222061855019222923410265019738631760513127176234345308497991304478379929987175251914768273750768439196725787239783761489074561038476870489354069117761574102019515260242471323706767103015002319100594984095199855139476662439979860553077137708527260181416985310371686382844706345152071171110832770249943917640161061380086544850378634550446543969076512944808220538959840542273186906576431922879105702206163647008724282646677283195249822435918524584142761747369598928628910486200839376564541022474256076088644618258568807440645285475862070466441196469581844617984584362782909055138397775087376315163988462573105208767830801068641739117157354013221884664174672273187452444126620183006626220479347617052194351584053855298718372639133171671938162952844294395621270770235753448927134259934061235836231416273514947008648024009575878839817296504480719605229194787326981020435629012358822906122159290097135161849465865162542171186862029906995571771492679739392566869163075145751857500131311638450799298959546971831025016053427545146798991729121478820750355775324934155766476143744603889385823657160416995230722511226887698377696146229541919959465282082431539879198508651909906732626528329860157690829219577081797722777558760480703232156095754104872190844125862341579398042925478436771805646561197871961721085891211022135453678714150541572235405991135543767130763205023184002431908287781287294137049416113093360995775046023520684736255134880813084943556442969427167161072097234851225985909046314002352555117174010216921340158879444971337670233482311972365971322903313148649636806579198525934157304553718387986875782852784452878318613488641449868776621864316378501436109778273903932495904686693115475197000869470297477846981959474586814961837931804531850647391936418504290739198021352611758932556643086788577038141584654416402293850418189378944107866625123141291775561445408853626386222807006747976536758267265175086660774526696275430805771087870109346243293548610704547773243145598510637692040235347504450718043254426728525946063968545601992724315072543845300072183027712460564333160652022294249538375511226221995971897476182908797023056985918261445718696281058352974163163986138548295335529635433336008017169127397254305119874692965986805239435560484713827854105486010518200889028826949888537696674569552453701149619178584608359515781610493417835477408907256554535769758022523779646308042428103162075189572307302302072531796753936816332070266904644126999068225372959983663886360071355570322736150143803125922737423038596842798281289196506372393883229137789440020994759558222026680359979939844233485463050727130323802877915164385880061750578710910129041085571725225813040335348293190951959574757056025588127451448431116799830599363075022638017030356047975824767295014628964919795142895782235800700306653075668157213357737976341233740337539712773553412742938682419654324479273489504064392452981404000229916953829340858459883682337610303109810640363534969017107178634746858160751249672244404955240594116046062677036521797831504659553741049869478116009449318506786583035389685231455843996427615849116989302388631026907189189175638536188724949907026505442153678204290010021864547904086010096088542158829894025635816312776966118251051173577721797536634179224091154054334989131480683840788976455549142213674050757563063769975447569304020631842704799798413228652581661938902536425390963383527141168171756684127935470979041065855328224418449788848579838597029313306627500093728279530058532816356863334718080807501429553304856516777238734369526154238630048621734768371777498521871769173033129339384525315111876420987794858261395312284133558020305858782974782138628888380278584736213557766203728397069504859351476407340859197178930926971537296674765214634997777840298901833398530396788374277715926252405354513210347916112441050222590139187420576459487428060815673056366849307732980979382699539122290412061619513023801929850154559990009384159619744194018394844876976162575364756913676939585589201758659497333449262526645041470273061803465199321524439870954954048428459655820549130629360741721450374526754848052007003456717214355625337830437338415734136284507449387812038609691565603205006720836894791376186452876601064632738018867729264535723394196249252145261299653085892022066773620216337644609384891753711688607330559246649861951909223672149791421197708311693311944523441661278022996724693004558412598777924181373454852743434570097426729675169241922695545794120419614575769254274400383829872227198895342997515610524450010989343771222427126355000196758235460377852766229575900863996662419306350831003268256196130198536273038161613347237748216862987127864553530330163740599542810719797623216450613658676931528128776722792016408221596435601736334379879832332021475158090535475440532172889379565466906987447502140570576968414704816212961077718810007676363852207695107546366113019676348102383840789086937819673057826267679510829067581759384501587385835796268084825360099287241429905413293856657450248911251857580845181617622521390571523945578029166723038877176424043853369937799815552141301682792482875612372227185792139754254977704112006246132623610293317984436853827589474401064886961671298609484859924290407949152291099100136349149390743369061205523740434841720986318515411723801406117908773531719565392337337218443100510395367861696273113696311493832993767297303885169046574624527441656479695847548373382930099591774763184505102480462529365948890018302226992983321700234464528665749187213398101104962444337208366913775835950585102812371237468459771112216320242139661871646524796629341857503573454154320658995473278347019621208068700625676139912883272706728785416789117169402385487193388885927548105355150723545302294270049707388612920385330586191424833063705001905395412833013386328018800979112005701301188759070733353910302555444700326804683979588657553264985515131938022604809660321596881808122644455468401964543482349565592071913497051678865915402311653752300200697893812067220040513020468746445429149762817272602669070890946648186908002804567678366853289001478564994560060800081326534598669363904509536623423908263107113414735063440500266543941106980677319674287497247800933358250052461940755912559547369210307119902364179228916022388268179255658401898563227384946117901347287331750141485932478090874892759436352383775388593572481064321527498008216003432984614040958613271320296397021083560241834992305597274159035138961840279829028199837041632007941745175850462639233638723589915165258800757778235136618990905172582134515001010501411032940896729459341932851407428904902090877975352775031077171727502036251526727085483023314556627749008822470876981640728578250299655986716126892435923790678835890996316540567649931365019440090141363201754729299957182234091285922593812033435068735431916929822363681573479041562652857940867179863948729497419614526430178535733335922113707908938186391900240067555143371626223474391786261251764162657230214608246225237035372615785885458524447859200041515935681904118199505038174802910762356214866002508075597755037725184412086478166020113887617778543973304290538381133938682193446327988023601715879485219198301182219559139834680662726418253140171533826554613195987613935667052033797351532548866105531841745878961906227509865453142626652519823326965495282700604346493648110062241516980326903596192428429567694501253685290253089627898664714850598474014278772645270908641729364405164675602499037548117423406083107398213363362251390808679437702789642151328764844190299558773483001129091910198699124918963365193070578318161248092840840786329319518394004219070798278306903791705963192279123204881249739762488375211116203636179907170061594096742751345990447593924323560173605620750592034131922776730111023982111488139151913441620974679003429121191042129222371278828865001088186752999057117242974618573646081724598766988528171110229169577275653463856089672434132066533369382662820931979584864518961090583598670503801889457152439405637921555328130993965402392625383050160582243431399795355125871916577088810502682625117066797196920288932736273361491846371241144280217280684155382582313264731481249369539781999205806379984455767604797977979668982264638233824696871857974089820806805234761827554197845505531318943260759368576169796564037692502951354724683845598205819709681097380929948667075630108295069394895614554124480989057133958581300681850141009129479847599305550334128738921437655380213050889799393130247663817206840869665676161381128545779084003520987887685605273995352266149602723968020282968619755719075966266783419761432541873999633238767594591426236496972605865558926647623131347477987264131914328374906724170479938091247285596592304568208462071780770805292406562075708098707580341088282862359367908337855770690754308314445990947529999760527197723883347107387815115986243091217866991685366138712459485463399477569291707535282575902378527718008545111402620837638788114603377314486089205985805801502049224788907052844034887052338014153110401708613757664193056597252701350904088176997939682149222668656925586775208023253532640557592490140570943025628011262832201961754300698513853268185454874359726228483789520205609110881649311444526879457586026702512707981417949252379186675770063715757079327164455884857333776311707571821852939556994131854528480760283472445056413758474413433992826944161174857643935538441643156220863580987612337626622019160908011296762446199551556476173321776956836783200722904946384466706242955699126904510068299161701705393090699374074191680998794687479415070631101324897300027920585165681975193472775389291547291818213933818275604682907916800092072927106494621759531113723561203296665143271877846091824737818157927711679508387896552268072091480317152196054432890320700032480376708837803747658405385273410535337348665909293031238882165355728107353287563303168881097724102980282891132969061497545029405727482251207144159415590467485509759076650414154283349772156308196516747960623823768875028539435506617603518318209071718869326900022659262608752421425713219755492788711188120639018458550708674792088493939681194347553946740134342017923698730943579747835830543943828814156118982189279889465797268756556407048097895176230896635439595651085890201847015813009278368812629958608998868230859130477247240022052740018962590064112974205698559917397347285794778107021114625465062861989931586928186164506052670212007752565727640063527895485276682163133840868933095337086433273605767869629522042460823509850966182485810788283704594130955214086305467252556547893102462330507168612620531598661400965606673180347468788309038739928885854355383107488832529246788591812384710268228242008483323203124567477837011726075246011228332926093049226628970732917577259259833256238773383465889926831230728055260753627154401943873278073381757860176691819514595570958426328327450878625503699494625168099432374722134506424433826075331556698934251693310395122983141382073923768960204588915563884275621047841393959167790267202160218269439473799390063936670960194635317697681566245521128038809762820224325675708117139533533326257661588564539608495478006735694348575680061011811338127396678629475563613695363088788619333049702269881178051750949200342689942777043871735159307211951439094489297097537057538870764497138834450766141321731752568776672988554113031579692340281228817508351293720019539956765671016577493376504518818429729393494570999225740755231147057651305188754773082520142549192037550154925505017829529428947093517592851254599099654242188539217214183036839334878155288689086387301916061981287279081814935210004160084221625713552605381249996710298015311895259735215933935108794885897524163926232447685015206176651861206050520027367030711149636575135063225613459655204596667829072064370232650874841082905349907255172952835422533512867546871319686538909020845534729428851941611424778014542977573489169226096095969642831217664278135978218362922092553326140528818596330607058853036945294221148519154430542865427355353124981765093452325952010140302179788808151229147925025458589703081698106011945307161389334675320634999023752525956848474441908535494136269066352475819517664574297801521141385570882993389985418784172483066754769016499919610227119301160178271781059198076711197299768983156898258882592524597982014915670312583527764451843985757849877673438358695008693952858566705703772253610625788112763864306352550251080977357827592547302213276492990219814633544990351644843428217745855437209512598576291038598747529295543196899485553669155554843009646280958691595355339776469620974963142207321620239926929043658256402872520583083226130456459005896908062977961515691073619360622213615671506496096613363124312856679310029987806079668439426354202864591501721974404173205454128738290773828067379254921948551988034363819744634280964557312016414299050496630276370102428256327132393532887041004633291230210139262268937838592104040538093075954193517993464372788707415054838702067635789483085922737529870859662061711651182736556135221150028261001173855393830314271776414132717380515113770932894239290245859221877167435084815868050743722942852889919231950959929986189384679598428513825773394496580681394484122929847074762383203036943528574640563150082251048437833292484763505881102770885365187628828964576420414353900699217932221398859753462169012222326657114169204079919421411884328507026946335580179088524967536177099429118388860814078051104072032006517833484998451396602384572614755717546904661985927642931879293489256406999727933006781337266520559876545611972700146668095295984298048500838016957798225081587366745532805825635891296927287997071600516219223396418681740053967163563421631731146715449969186411831611667584316548817921148820916918472483070424356516606568353236488071707635086785520777078346172051460039625934011937241938794019911877908730085256547493286787523710870136084951993917166521679958481481973484977590861022351352604214685907543863154830982344033530761370209844438486675324503617686387206165955710680631447082211350801059525554987778753859312652633509108672895171047509086735487652098365069838141032240153009740961212792693392364901331657869159857869284213299124215275726447765195961992412594138580818475759710405753045955432627520319007035531745101719617555387389165249983149641102543020853579094749940532400872497207152747355477645999129022393960523188112450876808880752213124180180137052300084362898272734210685183182692737215514713334123497159940935162838162609296939265950330308714989891822125122421005281310274273882420659470950248695058103747808668137187046142238717536828381556951811700829779097998940673130089106411490895815761293697392797380851519932331122454747623239498970986368843620091766340203724710850367151660883557787873575464669825734288726578750026681419847714767693072509572295861446328427905415144709173825936047952602868665080980987356169359115770383147352936840455532007723435183803965733828040046435688487579996078151641076870569097079339010206463826665986298146237736150769959422407149879452617245725460405451153121809974146320391137843051188875111600597606374127716791264269499911923483385127466743649945584137188990219984365207909066824784538196316993967656048431984302589660797814443884153010671547228749874787749772714762531656454464898113924127066835558378194868279091394477936744676000264788373018051019659921907131998355458808672831241741831795194727588765455177704272771467295010454142047192810383210158698740082789104546773630023937035976941172131634111432438769653036840606442366485232626831437156922310570486817462035742045846642654396921178711624413772484239602397420470682023434443255858423251756866265681723118636943762666873341698022794320780922441734575550585509310735206082451907471144258372876128162565400595145733994570831168635042611579372440015362627454960823098738530005088347937549252743778188732290243081229723175814452009460492295564088708084391807081362376083340921072947269250944098636345959561259954452980269870188371679236439772271997368779915308573222833346869990432474166831799112228266691451734188174144502748280163742965937866442080711727772962271305880590876459473690367339968322521084439949664223284752792048755045238958336283855419496474961056849026397178042348180696919273462828086415908227680761329777216065881186586878000384197507296871623449955688328173815838671237956286598371461754858558217686001549308382700283228932964413128462018671581513825122492817748210994068700094685371895293693668002121183781809255213387068587644093795304880671808180465888999868531740997991214427672742863047602985916689979764946178911124757371862812365052862157123047597149418135833079917191492163416747336599049067426684257239207242883403624735292648578663312752475019904560291088541924194502138215795399257164192747733559614974895054642995053066685612179803194610285595773991355165565191267641356326572489132592099709368979508260601049229913115392545530896585481914691196976446133101373138947994102832815009732876498362375410203830728489715708761854546549268783890138698743496069319233327460919847567277112664268104777006439923142344974175506709928189374378411827272457845031372606384698434405248615167581392246183451992111261929559157011636894308953675264387474616394493212259573125556457848377498887793926776792660869562451493232131333950410982296649342664257567663827999793220507232963228692509297637378087884554827377162680050434438100050169920576040832100055753462210057634187870535276193681629452885070004304662712622123701804736624254194770437107623104912396639345193229313818393412227841024557968492424833669136488580267749145530475586625122530223719108413504221556989597734950558900963425528967697197395702354612562552789945439743790019836802965637850341401716682639169760360229268952799403102224633494020868803305634786188255835897932073836974660955824804716298385953537141501846852596506856490677353966528228977876354127876940592439153935674043955142225086946915223123987284687715099209574305164926216102979150019040555172261875132173642345584744117077337031463512995384897557216904331836484607889571925572455116944913326577247464979257020797934355845992060604620464389655018731940225524495232468545536588752243477507274695932027346568598401848402174341056652518650387680809379541141453092032953595030908022868861941215808318027188666862155519085986184781932187492173888982377370316336244189438654377179740526496375967875606696453859666782064550630459715497316659337868434663371012764813648516903004620565398844211491941492916547686199312090272028393751555840961638214211493565129307216973894155076635464260731302054412267798191936661444244260102780773279960748330587716693986199019970810750718447664877701484936468364747955486772317141605385404166384425221488170760809162573259331838021622568660009035502285968824643333130956524862406432737033088865819689895395735775410903600673139387730184007944768834469213448005985900514625796730068346917124600897326351907021497396865338626351483123740218215260055781113176977936392304202787957835315462660076292678445556896096945261938145395390941093048606842890577709653626485428932922742735160236316377329042010459198971060776338623269902888508203367643370228910953331498323829104079599064331929750620288557822127490533653668470873798316122321359927829030453031371669879911782437577863582745740577956620844115925420506481871117794337699696747821545976208601478930442147036451895598114363045280812427268499640022300655005212565785138490196239142705871183845580200522754084534867573804567752819478931354023438923262010379744869863522355852862775762469175627346463180380260482682526406608113471202356667647988080358749878153504583351881363512779612712688069434102172977126019758204300394979806309293374008665376096712753426547735377910902578984982325039398565320050328126800650907947359220194087285755219699507926310060367568216628863691836194014628757742926085893781519790172165586550378387336127781252650650729012878291036002769646675644671056374973446984396939763396721266104294568209268957281762272747724129234055794729430076289681950071217757822933585058622093882820275219907634935780608979282744844063900332417629640279379845860692235648846839755543002896177295621827683260909608179251675096952939121167639829765814264901617966855382212318350601188642586921699524363780963258299901122037910594666979979243081202441741153933727875086743482167993332382147938906300010937806708540420402665214946946318460363823370258590365337877361801890634428345430979641067722288700978128471260996189964458763188558619514580478495878779283859450815255840297381453058549662226978000759439058522704602154342683488293234148445772247566624531440518458575970592675238634520987472840018594235429095385117635080295478791905208592872040081826919751409458082565852662838139949649096978288534574568007057194771122615290957456590373106153320832281422024564281344062210649890998117396487689347171747854008417220115650661254764248326476834354695651581193027856008221635994482861037237185610337729650320480857357460150646193599806180861780951182769144468559197222133138057638580047580501905117817135852981081939337738954699412535827757488342877572303412608827608231480113684861060040483038982763301108000487585603940993542958679021311185328436204215305248009870592763644585778539285614740935784436361916020943382925639337291680193849829656107038966911906335929372893876264834958733159652501412090473877539857998359370759748234157699384596721157595014413180370548413992965338376630860941892917973089235681838139181196723903902862521305803530952295830521637540700033161550800035338115922184146827723121850555285164296803026584020969410440550927366652551999333963107515054622166071487469651789772561407442770652778593216107670999799082693134515315500288553512290900104302330506425215358576341409568840313091291866465504086837074201031113634567972556209970529546040883689980742822017719786784207031090684073717466311556150699863306787554999515006774006576208377846063167840218248438896282142643666911464328339460140729242132042862222999208837292706608568070757787405648634093299639000233155523684162742579098895867073168911222930392061134664103796853861226118627536914847047978697889748663582622842149911274272251117395359171212065088760543005456580159889791140589650368022031829775592000961873151495277542750118435805860840162533540456393836703605740415522483917782193374821154058691641699692627797302292267220936052246073667548673283220986791486056349367765647257157837974249867195097558426290763362867824703672723642660712582699166452447466764064164940771196380446930296204677686911334161422020058157138500615143982397109985182642298997867576973725249456622399513356135130051759442961211648441622099388700836182261778704772426120433542327451224164785853684194578015829971108208894382285090318835516284531775954479746651518034437389429416127049966639716170442251735395439116108881754225423993909957783237308572485575912746065370247814648398092704383549055790670988929495809773677745158668787106670915754207184897541454438464911697194469803464262879742840670272521398251887014061743590510515868748555093073897906661575196431465217666011814644032779547674671805426184880264251599531005074840203701704507294445119281355292187609825836180940750980049689508298395376909354573772459578191076854752241075292839654034402322868740598420770836537389912222085030537706721434978594063156097083159901298986116916267643670331035310436435235186620318876525845731014910004527016647362352287950868964965066414795827988868651367713642180474548472576084756803518665892565565394197452949990539259708270767703943694017167017747640844715980767927689710499872561005850063280012539331487558328921975154800205857578384107076397722511285566702028221667459946549745681297677817936693201580518325365815693030196763132622928510197719201891466257708779126828422222841540143183778617364183035363197721339981773181584083333210111905227732050316824550431410828307195235348952909670707393663160940168376684458417683196368767185069197416463177379295211691683385925104518942135516450498909857724430204200431320784840834941680024511487523558980786669879514657108625545223702497816057385190385292593727679058649769030543558813698258781185113522097959006178673799889535770369752652553350144041817098224813685664347462513964439293000761188471929474207180010785960564350322094912583754460099464792826349300982260666652876616413700047790493385394712812761323687317667950367410747714017406872315007673036734411662123458539091474556872680632598598735039038672465364637121688904779180708643734005215060417425722724293918741560533307540886946742448358241052962511399926402031787883150690503319712982768264250018694805250333868739120147606970072708435329411341203713977038226589097366169573861297848319562543692281194112177626064034081369456614838563232943874814288962664045642248030821613079924303087278509107529178112787272279875006486387392524253780622573261337676565883056254869167490108042569492692267735822548044467744886120382450274580309905223669319758913072931948638451139369723069813256592498888329535633613563438579779913158881854189597194408189867249355516966634049180945340902417568012200322729244404635601074061209776681646520659310788868697371606045939179976346326689360572162636158136073841134058823159268515438751361506251782274215627782632815637568442073531949053408710122157530660034040629528622153210572254768462279986148150025713408399644040631652202730623548387132945750633866200979298888523037352628946204618288659259926100665029721774634769492622510904243788573365718679987876624719367821365459722555193726345400965691731585176288320509947862966012250015055854673766758318260666552286274651680636999994288218681634417910857633206043788740601054373344048252255579277964705255330033926268628911587563991578982928982059095035556049308222481026821738046814389164628176452836242811817106542520393843230604426355786668927411629448591117897661743810010246062880709635053079909077780698290374670950948394464217023705014867552661442273221702882881701048247911319244945578145218152466783856613535428201384201776072653060143714549276171903339742040650271911180254077320399364715233091666406020001262967197021411219165390791155934802998765604307455904472726036833938592480107491075183361095007916176369392731566353483473959534142202662516103635825886764046752702188518561791885429124583953732781433804277405798147802011446818893219969031910171313283759573916907365947443600000865459399753658977302455613545101605326966859745938504112385498386801783607278757362219085187515673500241435598094760767274977784305248923830964158132886234657534218969373922212393945186573121503770455816780798407064006672091759415730255354338772840245329808291199549130714923699630586510667222104125896637402861681180887403224251977884631718605493662953559472007846127125672906359826504417809883224076780871795594594044020367811757170205327253335771037714464778408168819990183444110049130211239675876832959425482265768198525882469101357026481477908477014129784151054799401891389292402247311345773305497204373039311035072540253823324177731710728992258272423301942706287409551547749075223899164003806308608709257034482480128748491847747443123597492401507498926079850792730014675399279373408501319985843876651234243697072635477478169181036419743037438356254050696670413176544091628829084348286894035059995816531140738134541565920730023922726934086715001342725768440542902075898569336678781274796342272438349792726952951029757884966979206122925956742833530431566029997204192067079395154834302315846681855918926839169067837100796862963153106410599847318038260944583850183299423434945053903496100286752210244145161579986103986997459977793579854776917056602845892689231054635268941611018277556129971195905894012716669822385135630301506722540216356590110312993417244870522362339412321700879540930505162097346162074879360331597878492633018038230204109273912030409621450192316620476090968161596012702070730101556409635600101367073921377957941808544605456983552299550885862805829755412326978918719209511254826982122839766512256451640523471052023603120335690179704197295108809343213514111527507991894643654857276541249460939535593495910502518401502563209609351657355104726811603790923082051991764920447503301280774739536043240709970178922570614840528657450210335027081611225546105363466411983662932154946680547747082836092582179463107001736170239524000227549348311840294051642732336423379340562919085497683462641923606208893714468011773409207293227540016989904448581553305214800303094341007006918495940237167919251026883869758597424702948928718123202750097127081696292259275228439903660740385661782456280274885589793677138324570882957141199807290125664621827021436165882612483592956410880659918730878883565300651558790494489510029356923023878935845913742728591500875222716798027583662723672295505686364240717107816363058395008619647385589804188479020120668768258962745838616541731759562302250060967090479031305368186949426278678753574510011058101993446681741476177595378658658470744686485278169861825885682292521342329792028620095010813961420735680295043051583389251922724449205828652096901782040496042903549456206784973232270083208084114618416326574739329505053305742468540935434186271991772490117425755194863875250398613868599252333215612141990311240553729364633977929257828017943234838094236296542787654420042905425377960503679128388675260505092602899971031026263899886879300637105415709025927833957564533391622735206264367519295713419471371351456240546548911216468559517452779223018750729060218731468909382557151600192761771227724816951003620527286097004247052146684644955633216940784474838844197133066225916563584084568098490075512181781646876888430617683590121230668881208444068099953556349330363695460662936685318770296547643007157573852633900707795938438349635790560981132649700613186447235136866414990705792588298907691299097604808375778175812991556836112337122891234872101016494424797681022445102324227423252785219859739111047218204953802512418900699992926775680055044781251884070117700452130051995582042167815630645230969749419009528966654690812333542687521435696841357785783804962207358301744416845803462482485605831740057734825545831565780555427424919197109067874419956063614340547919011752311917887429753919583664807003302270303710709194650305480350866561582935921361208043746288591858780024307436789250894934226435499163346834358927896193462546542094371643783825821015363292897981694149741559587809217657272133724332319247863047132890406091488149688528389010212977313869285248268608742138238173690198555404500179872175454702503477215566585062667904385591525259439749609110059019006176229347869405351032935675123085181906480603916441474546341711883032292492323012709877336613643751903035534902376907797221157698030041059744882088675557985164790448727019413068472940778049402323482889889392558439268272001257378400773044747881780875659257748868941042274509721871061813369751818440763569061371625991230188375853777583869939740961764413861674321972757123240017372948794090424474757915194736193388524997858372458004753658876907809503298531998404008490704998577427609503546348958101055110323657531494251372800143366389003948218893558413140499409193078020161295368725656269116983702480142898925724250770217409942185834891396783411306847200827450072617369413478183489420307598606592606785020059787861297681213172690036894779941844755073707106188412146536046861372620426642318156954887480608718626972038208402051002553313199252409412855954212387186679684401591317986256479467819181869521597175552336796738289651788349113015295359636875392639661377274244330546987814168946253008587352729443162756304801550520967365508909647705935595837107530990397100341622080384765596482545745949674493612864215593727955491635713053110399315501182570788798084117295580838462718161140961581754470689141192886876658318156008406522295857286902938950668891764902584139875900653877201729356769012720970284903371482035840131321499626115766352284579502568984984350112715488198279774356211596131118313503485986520619912917001713213437736975636980240157527088762275869560418612209977177959061804438335144810822030197068157342016788027139106125043341338213831281966962412088709896244114600544383154932620329054127990776527443690045601027236040535939538345744495300147835553273206733071950995607949001475313882841293355229497307596389970726172539383080599599699066924337279881713600834982335703912165254089166293930849670513783925670433511756141513280986532804183275239711332488339289913875145494946555435612220756668510082590266979354400389330938983892568063591451093356425122132306640306512301777254881532986271982618111206069338976665227136783353647547736985477908072987594781264794329230394274614988776255011876262764258108059995766389549741016765155400081370342241990729134931990287268114696992881725009455345942556166074229759876592015936516443521624917601000922198182150254371937344418856742788084077470867662361089811884248758345996740449729320055442809110055802225713785720796584294321060799015302193210531226246403427481243269312090616313516896401348079351112371164495857036725347105049995857433534719260610763217175123333088603879515188162003245407618758098026051938282977092207666538501766519257812721448353572230618299321159368498744041508009825883216895654063445581986649889786928954257010587386225238752040531600646912148765095462227310086365048405045696316761203142193882705533424222055179498041376388506737734893954097730930505752477078821325041523021858279141711383833113269584362222262857583826483370314814808569891219251932787223571959918374082691271011438490990263983961373564245113877574518870690235157081917189038948318432283464581599412802975126755902747898024964146245909552675204382365601092409052257149568800500151700146359519773160437697612751760733181067441602962737014918207048576607897401327696979306564867868444891353428257110880924343456813428246701841670371927668146281992835090914783200467459783043049283252129350313576947139949257432065387465161436675118842861105360277613269829593645124052221679278515090035262872515570357210051550302620975781530694203464447323963544210234052247932817870786376557000154299422454414132527601303588946889173642639447764075032838564754027955834030767610002835552082401131123172768342076621470281186147377944694716551777631109170441184173620807432981354467575227917111471324125378245115747123942601574328018745254455384714512072283630197132229303277777790616510908697230281461695228720296980005126687734770996735146508537472160216178732144176592837952325944010442681636838110830066100046731121648952649373415333857686045775744131237463311014135435245280006720169412007762385472910998706710875808536068842311506421064197621390686412338965761741252580450023025820331965957380254132808338527808245597358624070753644906627358494727215821877969503968655996405975422393084748040679687920104023810403186841489828612207323038546172740802053056969605714663075673185205947154747234483208899267404429234472806135631430765973147376558973036812179093218881562862381782336440223421731096089835117200336798980646043508033045052747183530019553737392891751644896395998625949855879689196583031035388621330642607457735352939138887459012116638185707331091470564054698087278365800579434584757847903524362478079814864732345537418305475391760067796533765501816878585061223193236637468112429037975050750076075009799029890392979586012766695306384753388892197179116923722877624831783209551111678224552263588078094754817515838933730073476185511448820635348730796300924019264329398059883970815654644714024018997496842840112915911923232637365062159064312787729932992234598041043269229413228438078098559003152865352219102223085306340331789534765634470673278874895798406627610675623611174368689482023333959766923736980745805979882559442968712106947879807605415278570976816748725750181740534195646482836360657138865112311065643303584058288483046490319245122528018973982922949390074787931726990217505373024625593415837285709660505740152160648399545861124497683131029657625774556573910409425594904441654559529860320440262414969237931380588504001952101227683043887039938190993875913327051740648723964979824880326579683218694688373941550233840746227377798508759539377177682129884509190945334322741005754309150994097632319384721619031904162677051977797907392393888504499066396229831245680734091644843099896283766713286150302825133139248944099449054443484031540946255892385521020650078696026179731753993696243578076820558729957822846365314118076380666369044361301564282267067683957307713426083659159067670416424121398450900607096201769925202275065885915430060595235715800255909809533537781279049168377864699402095955816413833472730039721936336099106212664623265369497526303200977715487305078032462063816484420513437062884812616294216573882964979015461482537835879200150539683316651212493115692173324767507495040504102944316291024989120890958360931771570654323341736625955066842236768617166818659332041268301982418827536465800487186862988498395434026931669794151401163929892948941154969602553848377234522914622666576843485622867635403070332135858426683937249718681759086811876494040852044482887782107625918627791071058976440010098802124731983274866060289978649231905962657903992364230301916823712752211567601255402021947183833455400508584425082642312119440663309781105195453116435839817435459496440098089010778817417085653535312478683725307681608191191842676127545814560432123442777003253126679906686693101547427215914722937366879818866408282815526510860155281537549614102369564235075649082562112986364115283523141505099057142205679342168456820491964548999291273919706369032617965992783911138079363508687973179036020609421619168092403108753480828658540413474604068344685341207296293374068690614802465200716842827575765875789065592922263484997314063812341101724651816471761369048158794789379578197805077916939100232818863174255229312433918563122140035809727903056605716261013612330794045397984813750366499666210867546939763003267182861820907221411079680773111714117524297358272938308253226799027172729555946459102652625421711841808156910319930053034841913064727699442135583227713852184332798668086198609466124841165256357215014819905196940796067507596252440908156463909686382359393379891072878924593320247833977504279973084205032963223079352269959010925173059609251241751730233933660482907162024183051346670749249046545825488569046828178795934922679874665785087908959755037533039755977304637659932142483516985774396809042105953589602270796188134222504173798246757595970354924825710856421910494536680914022314574670411252616994690774406792779396459943558414894797767410131829090504573179479628989642290800040775875917232472685707885592471327781545351729747845855217408402982435138282911103969090783564081898874219650690069421334832285774809139195084068593162564383925508746069572432900846709188156572872626165307222679710667815737926802382822120806259708101943580428393237422477967697750606885668634783557671328614427356105366509377846985012427650128407494114469773204862898932085319221060470595874220134655235881193090270743201240110630980701015374998057145784067439515399241851557683694762744307849382090762875778787588639554569604249257326236866888673841218510656683531340196707796392894265001653285916142114240131788933732873121394784820238941772823198059487477093240839650196593572180440793365159166038559696191826676942667007812654572904623144487435064156866610273803345250607830923947850713814745636892559715426368524446030817492820641535837315412957125472392857207629475216965542656552598967359120771105947041628920980964519120655862763844836222235162000732007215986567818332435876927290556056975673847048201907689173273009579876861899938918780456582421200934510464131783545610144418465907764674238569453291543137170079179779935366061788687076116218524890664328736272328691531188898425200898953280673463441102160919439903125031784075538772913627359334530158636799036893322130850901346872004978870492504345680392622322543904552952845268753341851216293066741221882797512534777720645131156764511955416444699241576669382521430898403657206994050072158718373173017729965697763397762451185608356020955970098431429805902516780228839487265553764132382794602033096703989158617840217082827894589836140834232613846686060767811745323689987571108935095034245468536060478222553641905983808628905441181626723389659915135984696122456323596173325163347854976431062650735886232908531186075512129657901878764417564652059173987180683407361044837582753370971597401891893880686753936938665996133278674869776092576406827558383031725196233784775426788875935915574576343171828953029328669795158368682428375480670611757938640710264904315460106981727067130328579637472088876970227163113261248165102782044887857514184026735730344076733540579864732230966174782135837343671076862912494178317681331785366289084867746199723591306368384572952815779487407245074477566681396275558412536725241238709557809655450404121410809360379106913564988870900529671166663732128645010328212609364551234506774850937928998638828960065929572837955267543636753665364277366528950361469788073963258247714091083729859253849362512004545786724786796525455350816136999558955171210001626983712094843187125799989948867919360877584067606509824494639684193585369877231203028832038288092390076680801325989923600118247862617829707356600438154479433054005347544131485257254083858752037952960258749055337490907264674640366124753923154262530361464547529274394911702004823931956026443669221409301517185067578462683859539628042745868817337257188319493729873756038740861777329324782878684509211147219754831535405054489050334309529750617990973128073246229065647120267306061792715831171992491997507549867112299051403308287549901280562313828700912078496730531380750566961519868924130253312025840128905748860998080278908590303270920509370150697471018555891076615109472634307841196504163499194791240390217001254383820306670421060296705677908833517339438645720049667227937050732016170573628373798285638783495590004994291706040735022109752664402736578976350780341225384155727625081132937379121614898202541048102307160413214626506007532526258916375417958750160568970006978558505008041583609562081196260675243473284198035025133747871086699111072638526930341405803818961419108044662394648101612947131562311110530732277978860812784740372138031399207153407831460740751271798374862346775693557141106211796258936863954874411612619136879318112673810929498609313678388988462958316357705234631329085286183728647642532957810681909259090108048006994764048706559336997772214745837382605974592506533648478482153726325234203119230056740076755993530250943003002744498040150415325318292583973920564848908262931289626851352582524052316743660822237049247858053049004598628509573090221648697613332508148589902780848587720286877701376209655637365685915216731276256052563613575771234958947642600504686864125340764753742639210001659216498771504456839340825664250268183145851563195784150846211971828214088179090348927438035674275657874002858326842248298124545073580780621522714164272523207859960602401075713618108003690650403929196695843362549972944524770458947844035461183551421747908654163283321771420563459963634211984129591382609782479652303171014275848764357054966639407536072123176171391103751237622788571924275215762618070074315636326383831686085281593152020271955881721754272361899197191849938317083031957076114891509890025647592040023594674229820742410784325530372846424393634529585245385470868916070549469869036557508821626894172825597423256456755148125769256752537410092929756453516616562617383699602605172410103460407513079332857177243372255274539539927184868427225419103027303937656495541454406964275916835730927309102742531660010016294514499333614655175709062290227189743268612139441805645215076501810247739571250565512220130887085623729032984138203908436445822678893398962287550781090565840927520646589253565636407846849196726971927287198400274484924868209217327198235408138082607467406799519353984964335163056357439559952157306342777003806941433947904252295436659450812474581597471644648620993875632792963430764419735488049056343423120987236724051629755731015179607388375589644727753242693464603824973589827177043679001674854742926492903519159886027171965088208399783720583347179676492239519414304163481395285668599559930620596288806922429682433639682571351541879705985471636795339879814355859490994046140177816175804148504590046864536852140243022830352744955926086643679875370104857037235879005888801845710375463861193413587192765049923722318789139537657148163600445524805650733859829969225520413858949237513737010152377047099877029252441295893110772753782299081921337439278389853072112038128736757255975890114719438783684296123615357570100978532808428229836612807099938516095532930305046993121809032552297999340095094233750489076557675625364956028236529739276393546609168358622144300448888579046805338969491523022806128145211138694758072365391789236058279063089588344157231322073411080153839055793983560486629890373891387736991121137875174715965637679660005619069531153816077976486468547450972388021961601291487050945821299196265359290707828788976161512472401438969892470224625714131976139342163390794675691667744093685232875026833803664209161116164510235314858543255570007107746641869359145898841963138045395779188266391034382807270018429665230118621004766850501921709522667863895522551320729889837726808204098323405622153289974674032826394013673546648908336160402312444296412807607777557208825535017966833732235122409720961308112734817147547911297974430692416080711603857817849726928445332339730807591931927916679226657277895934864908281939450584965352251952401250374374940629163371374886600584808585385905433723824771584942282054908532951388690213008686078901388408521590159257549681562345826690970020772515480843885430273968486731309155043343624670668536820750561836317643181182689170012771608139113405308961444864513564579308527669031542765314010959072605955290757757275822513609732997753113385371526798391646432190551177085451569950573628530198952018682780624687862568018310240455034883401679585124735316056730005823461864065417735811694328324844240912262813211042738530663645039440034155138249837128262328535343395871005345465881264728327780606590125616345676823060333451305772539827448853285968161909895924645796962678443660877111239700339622555706672423378546011200431282334656059140009737237547208030544362350587323690738850847711290110397106963237784544991361365332966305764550780226388884961510899047150724027283779370207053667424868154583336573206832511122437706720020866346761136169081265343307153263151356369277116450284245084520775508686053628725290898573305333020060246234194492854021031185520381592237823731834523846528980578197513771356721736714303100617318292932974991237762140720218779927888156971884953311177288063858498828510018355830866302501883896096044375553101763796628619481373880181806797542350963469498510683244316095718057315213465450771119929999214932232626456220046334200977568875905133602276626793402799225034552090896240750412543532036594469327380953917979845748153018070348585985269937385834185474586300167589324156773993829942192524717690023344372755432527763590691247409498383001407973517054318606198864772735789392914977850486409762329422696347587585720406625534054078486769882468870869101358875402045276789446749092768213195120229620882206064869199671256427383691242141229726166170420974853938363510941672243225110540233677643700735898525935319344995885810086941190250191453392864167341997878073005605234052770712768192098689229968960600050065410082585224130812895371507089158507104273250160786784715295706693692060424980409931034362284899548883892641786590323366010278271389238454818050973594314682243331581933675243985949992075697818682325920632005647363953789630967385580614731636145303791105191811122624079009304321346591648312216103725809958491920006632858769870768191779086192493991602735221760929323300975079033317258451261486169400286792261117728038795529007977182634450654762924880790667092908281824126880460832540287377439258744940181824452627389977874275704006740764577574048517168256274745416345901034040802163230140139614820986675783127487374205062465652033144291112769842389022252036697499610564155805326234872695508052205056240973265021103182800996017548843141381218779664612876740028849295776789150006722237940468133454137209641438964875058160293724092667983972829858238103433366881884297271539139021914677169969977910791726092021693918634071065587460472539038896349709733920729192847727848013311456984976244831370570610677854014206987447754958491183729314316688149741188789576023360023824912958162599984227616964801710612686036317721017942219374683768077050753830312238135306484171618864639101741463543677942052490735506343576658336791123222331378232735119939613476935015784105424475287947025402279456686335879630341518423441116047535999212784405909372320886894089699798568299343887725758860571149940837056155334788985241798111311114490462787200292613498354172484923333826110098784651215858891976301033763492700494789672727352987493243491904551644431288149771984377419522570391358095698004840652033550202181808033151288116802068055702961463627811335286632160820339447823692136207952350620207273947120498166887511514897664389248891978076108075989079434031801716290830915045404045321505921465866380997583233357023663278678485337175380795650902674026810668946473403100842591073262844609572313861413132877167381811484750622696392630133346690104990389754345802515404585538110272160152355150434469849371081438986031840283767286260587103391074024976462493207984889610416507072434563797221964533433813962481753908375708659044172615031493312500222990094451415303308638114458335461394998477445993253605992211940421879498841698804534256475570817088907794951122067872834779206018378252150314355189604203940986902501856855815658324453253380786194544981592961601530490063180824091883241779656347954111060286424821998005008203403561761491313445057764209782899025764929329518984786251701930879612919169764843072335918403964105061542590690822675411971371556888397242663446122734614236839527673231892522865529843767342040561234104928592598206348485059670157201997201771868222554247173413401786776016155385198780443657292218466024575382186332233134847505668022425434000819306760324798933352910205284201891726906073863180974014509404305221071219253129354719491587630708939239454888713393289896785021845395159822604007343638828629733427877644445698517067003330723827881063433791861549272192705520512355352776328779573103734839522131007034184241653458147281714259595087420820278844156062550043707006366719310837220584575103058265011727420709095742458025994431439896510310756270671295858865000966373022643187861648904765214557370586253033036245439122635681131659439223783412916927084216242339034056374602719035088181178448800155625472123510040495671964675386265156773525372089844891005004847326781782030043360471039264932244511509082044900384500751898203383998782316653093226299981515120558292833921419084800741046888710865889501085049801781909938354355489345716474868001430584768481141061589543390042150120498986566535394054319712050110512142096362467027271606749535888498558523708976731005083452805511974179358447600325615991826211459207457540757060245775294054211831812961807143524359665785722447860072944187406797596831219342799906238693052073621996849532435709730535118670823608219146723461363150092135769219318353500746912586247548521151350011018619146830005420595080732336996829479829357011369392603001957836985322164249275461919675976157803768167772880155159231311652049650322874885609266189150704077372960784296937448191019012599442506665676100453562416933917706495662342339763469366039131113904731480654787204227088315396110762009212475962417069153513784337194775081330522797429087338624829598662196300453335820051743391433893822680824551483647649095141050926935644648786577158097841235169252909909300880137977251071451162689985602686676295722313504119668916538768555294998621559601026876549146277590051722500362950730243704256600734106672895387694211009220332281099774916584968712704375570784204451110854578349109583664379801488435434851366820679984069012367134516273307322575522678894391814297942331281377680684596882668002704823986461239418332744084914480863670350605157976686244036466243576236522708059103436408647855357125599794922488521659835605788681604211202854629104636934810600286125346738785609993643079966152826994482775038117448466452958447922855788944117891023289470718181621625331474609592977932178497568579273263262750399285132165480552705046361308244788602149177787690568236052958515643295420466704525167634871867764210964121232145503760290565633725025837375884065229151864437051431919682542530043898213221969586672064564492371779464107492214069428578741078119782875422939679938055165494487172157889018900313949277446659081504927374999453976545804947834457704139603013407131165330155402633348136620166832755767537735167575800800325252056554685683970387932767221600129739309170508280527836874384388881824539413704493812608609742110536225034136399865729262319895495616447360390738482611250647056458431394693666365284565935611986937530063128317959339044511738002016181755719155290720598125543250204008051536885155405813140044662878434096774659024453110407201334255780956828991395015733798213296276376365187163291261882826966152470522625322879332888204998712554599192235204902112034821388905043093775379492414017044620721231221168267161141688116148968467221500175297308083110392260548574634393691829994744604357460780383414424618349055481430498285809613653849908409408307318422407710320153480498046917995363518177522337640318573923592028406212437126459797948740933712173457622239497642095232874827748966031137673149501262586829031908262136061443778031100865642399523170628485283184421259446971208086792424146453126636831622823066098053429155373624107555791683830873131114839290286951984243826201960421018115930557026985182544093934495017132820956909350942738044900660003228172469117269164713892664874643877981628595490862770544735200126905785848591778429543476643996415329108205877834388162518127686261069723183778840312909467004229699184209445965945062484284179192200672678089124122038083028396041021694500558291003937910275228433980141809254160084456800563408676182048650213900994436407351225017761922236745555786384314119100937340735512708227989445677420235959831045134795397543528822383995921118445634650287738860317634488845289979251643323809947912161834919124403549586530813432350479034312283131814988206046584369317958705124236400355942251154037878033581435513772400200572718140517645916613065328364944071303097693449602805309189355233573317787169354976262808258647324474264100302752727065150712076478887465818066063278162893923689902880608596252871507760940893688998719558382933988206479141848915821418483756020061379681975357792706838470803341743651458983040003113597095604299642163421693147708915095644969297783658461563327183276544446430404468064096401814395271231162758030034488404843906487781876741673035088121508941329162254005650034476419606406633191489000104591230856286602112000702006462573146102414890941038310821411588537814667565288717888545666345548083287319506764303644915432829758434591093892461752692208683251650658696430330637751300356706121525464411681566949926669055549034413444658432151017232052768635762701084837769409708291005807007968462661579612550935517502144444557944549834124262678590611119437906955687252693657958707957895138165438348455415285908745230689091208170346636826857873667119553674018754010672299007185841440294981431502690446938923608846112808879496166974094301742722778794709402545057570182750602306301750456458772140955881318625472553752318912911171665599268919646315974419896620621729857504032044264625113038636318795814410272409926016834226244229145620049500990242518838832188985019369378853117309509698983731280181496415041111943947607041255693158560732733872071975824606387099377711593566897859112870993773709426116071734956514631394889643973918384991745310824083667585510040472801546860612981702765668029149480474202776531853676203893721589039227015046319044292243446629331703627528767697455429234574297539199289721611012607655293200430747131583837172964343594020613697343943551759914954796251306230133213816423683935242647342675264256354112235320736274157292527698433538232317323590081995613264541408736694617510975916750201082738772063890745209436067772877977176778672654936462329801840317929112909984057426281409660763885271801125416837535495764206071198879014876731144602312191422440045068646942300461384167745582019550970877250400408303817511530548159502799508699552082940622719638371888530186223646711003549240745263575622765214341514593371887116172376053743043961130989237454902460417091718346811215243057391408593660266646668946386997962352355150417975040538046065986960477487636618850114086538637464345133496681428135399638767317541763194481678563113386736093901540832253285329862496376353177404050399032485292592161176373160659588534739889853615330163472043664262578002417080347450437205169198400629158380755341501306981745934860640820077634139860943456342620229705046169537217022259464500502929696629055937250607430893019040004017899234919619259926934025189655207696965552880143861198856254573774048140949610274889974135110677715656759293764663902004578905734147346026464136617893098314165087871865254862241651172048340267962173919535720147654717471159732466556930323983429520345588027800961042984391087368956571704835764372314000275563830165706274260136163879057744878377602195449978833022642497829758452265809933096239984786543494209836929006651646462565229319971300935616201656652961196082038996680398215504234545875432822086224040642240995716380149131824104186299761033763414911921726329434641031738513488207073591956625947988794010361007877379704484753828923006862144920582726796289178396869656551789935401860133512017627710839714505793329217819059424321887048333003945894495733826540025483337973605042481912647919224201795455349657913422447913457380326202596444479610438785817298761349433451848223334063976775620168726936506184139024472793560405038872200186079869839666576649358066664352094311992993587798930133464486064163443467513184623622559200162280778889468388878070285057705927042807427261346264586192120895889244261666440117080955622082679547828830018193892492140717612904910384945961683300139747563261953324357617509012114813464711405201059231309072501147925117805041193911052485100086177726362369964047837493073439289220980311540786710201586724160580959907221278033841680773468038506885373345600158486358726299119299525584789207698570746319452925561685280064027552745595228075993093036683301907001988161288567545257665687380036677004853185709577770506577881447546980651110662138419987293824805622694032802974543607937055961553918878109673413857870290923563078804868525865190410030800847940500582517094998662824395639062148890015136638003262363890375958973742686314297719283272532768026746615471405455804509185640097267399012057264440529411128304016096879560161788430788227856677719630515320494849994738592348533735751163321087387867825249893351730620184349833727894499814881391356282214518744876664990294390564164584074043984528264900105307743498755244785521964274357392796225074564704861835444245707959741684266258451602241669741016183420488050667635105254045339210772529383250916900930300771975710528957997882689624557226574419905660637127558703772236472245842239999116000010713472504763514298897957992430109240268944906580036289435668106676155098872970045061224246331455499167372239555526535789595701263576222264712706908010573436260348185382177676593855502098079965070246778571714332838789791401041442929474253713623608420438832665929847250179012109560259707155785640373200227698454378405847056982677383253859575373987223849069586574715629052931281780894301150425774632029214477020852165472982549585879277703190330461665641596556475661301164627074644229662304180077729605510475188236278923914522911677403910510939290639500038532826305092229198611456510770085639938901709259274127427998662124358393351474009066604274236880018375476480064660680695130777266580416445819251334453167355540509421250270931411300840448800244636812963196128546818005826443290072354949745369342224598336937444667314476026895784346257249174989898091281283887171957290087551340256054720196509415764417477098378030358641663314312044778761365008991398762993629813369753461468328122738117854844628541603703389616200119727021281976214714968314664909218387087761549728617261883087987884191187288214759796785633679281574278386259233939766737684276424486039782716625266185557833548049968983441119422088722701416125752302693458865883759168903064885274667722164372634159961442056715123644868460957095624308357150762154577563640041442566977267802512646049075701883780580608430885909059762356925717025527503980610557241840109930459889551111451500043426307520196885590998449313951251913239209470285622710318976012502237070266989373476188620205425962236583998181805459963171927758993798260271489513194565051059389401256586889180933094821769178131901329206183706510427474237399359752555055399730660415123325622073991302217758249661138132055050468963208454710501079684191855758109861785085321747525381442501809263392073627202461577024624065821358712819007573690512785271006887102540386386641926002115602554453819039017324706822187286294830610402711128208185350372472009482195456928904105334565742411969446954673505262608313070692385909045048195251887200079672835537257580277259097033770590677001946372675993481214150356193786554636580173962438553920381820947957781660671729194188817829942613111118035361705437576533224194297887111306100877717663419058803313583682678424258068551599112299535668558832790230490963313088877152284447836339813693888609301847457982992484569124215582105611240331776509090926566574051225541002341834237189299231183083985321212228846714823654951276527670127289001106208400357411176856400664451376479305741186172618341541897340974933729715380187860283233668042617940675970510412324250369273957451389482187187607143958986296866314975760499438668363630382494723816710186688186691452158181370798248601066709895612670179014800931458756338563991514688260496206444434731079456483646597308776159867589853237356126661269037107167862067660882513081424655695046082800806787073525303165702531317524239993294722441059852852737098685000271251932465187429527925370861291181826619825296216749485846902081621448546618531570571334770261444638166939244591658884524407590223180582912996195199335918368833568549843534167682260363378607038041216417707158315401708695281598306931561103770278211291806904640939194518842708563373971820620529692504317357581730927353350459024797402728620886489505584318077163046004409019782531333508695669558779076042284941119206295944779546620399728223889833423266842299947085822512294211469226061316112997539382994954728402143472314321892012582878770797493976161455052413711987319029658131192910128019425555758537510053906081577235581358259061105688920634899351293986798308793200857330292991117316699606546027099869971264467382140140409373747521717371440290951783104592013217838325026041484437384497245810772853613840153187153576030566212535428883566032239025531288804876584190828593919673492318475877863764107047291933326864607594303990512852012203744531309383958892827432863724758350063971746479575457539535329868246866781183613606378692718113847173163687636306126170964768898712663079829541129636180715081028372809159814940171480642320931498349555734701513334862200781517508620112759080229878931058309094455792471762793856825436068930609672736853885716455088523196604682081580260572574773309359892094196491079590971955391844180009782644941430390426404565151594926546130816543927921671371659955653051942267242858885749104428464373721937675455186177286991738779150764176589853537420164018690827412334684766881891305206454855435232754182441041659259700837158476196465994331031727975888319708965415202342930560379646588667085143221370304066246962723240868459497020837956869180803433292070410917501260107454116989930176800977208546337049135648622986443473406955257214143984296050952439396817748592216663116013582731455150855463502047765984446126109279081072527846310417244865688780262285959047924450571235685681510313528548193283783930574406240890641366382932597857668902675985254085417178600874038968807213591645582346480412735655532172139824399593077094278519910777890376917655729850698043250209781289302378098838577897739576023143700754303856530992748508681471061463325556854387527790499880537679577647288138111649350635431614272414981254057506458329091250695656311319391416210702273208307274433821329839050955707721046996887948155729917802695297270465687404265756626045135905350229341619692312519739960665572875891718742656947458852825985831937371521933085832894699767562415413799120712813727670045197570114743744148617254886811789513559729427651171681160585821880740025707447135834259635687686389250119114596250152196180137761107870278797491174732626287887476126346786871421287702214690775874952284329086349703514495573767585816356268090382962109230176185185162597759208191031782678981460993035247161074189347558267625878162178659691371545246930858200390649428400509800209072638840229149326504103980154764633862180787449259989790823666096449667325813390063244497913810843949956646621161427653123248968499948224894929625009621617122542612017000294421094536578513227404569928961715709350210755540222455402566791812099826191836389792743347269666862820989576165301527848272493457426531998928619696856208508012103579729627833592784348969320563410859407399518111136893016970458453959828372668889387112050991109019196991596458127946410864086685838003489012608986777963302356612402110039405583601171286340051088387773698094008976467817802377850512391819459837368444492332238852222274279953689013897761472930342685901017004113338629508628732529874158850241808602548684918296860683364928104110575580360599496703938068185895862430542836396491799226617658101611081637414813140777883230224792030422495731587001305469544714690125985849402032596160485211023154918445941099259228787813371465109179797207282924654068239391474283571999289781496907221005921017023977258597881614997291107214020801717950500300051355877483712814218371326427330856488232971897434574955204260552771065023905145582899259457475190069464233304082963213980886708766035862072366760587955068406472607870342935496063620738553301019342616962750050778139994270884707482634898052424822173352360132148258522075324021979201363776464966145100718468057222827696014878180061058524233933107529785065343839858083302345922168618361608656008876199866709377498004961480235303508168952844792765612604280019157667479976954697129197807981502261352699268739815532345937386916491002130369838764048118861267186633934339848253448711691845618736551329626268100134872771671061344803849199425488604746368886258129327984103107700305619667986712051688562874445269654117889789100566300094600446067564321355185481978699876845699260447816424679604644261380863756558450083053400364054609055686554081460791017704149866797923471609494846518521100387562180453241842650927954820277388743980766183712323632947248325191010378185107896294990220912236999036609574985852119067704168454621317734316688567352469758262330632626036184118778780115835967787591316459731507951981850355074964337302217713221508838084268851576136184637954274437346383981305421184540826215194406933287933177076248073364554645067665061133927072633423588494217473727170823372815997540371086132524146336580356818787361587200770277733560147289191975355735798100387618141619091656153543271473211098366777898042792943270176363273939963818644193364257675681118453315102257657832786789061141500838418044603956153197930804331129762822488130843979210457941190523812358013618347657403347817751080797002652278190283157790727137234481735441673135739988273387379464781185628966608450525971875986227122817029514073254676047708441752002685692204978495852642548171969748414082137328642890784142385947175412859271994212213929048849886070557100806647210292466480917460972415630768432849635316177887881233776501180897759821234685693062385961758161355406343544018441283797615991236894858265098378165428067688477947901918221802122402268441508702546702761114445261038912374054776450204948817011625972613924695051512952275124441692464501140170891707519529413699683974746899794217309184443070331794895662902269679150802842655828065797753450643018570540991904821590789289905392675073369240247263912063935209011479813583314115998621535318941252923400354650546856587209009234344100976553490528623304077139846817419957109619918559471893137561417824661581919471967396891798390751101280251953447347627196779404165593306516352862478470907193869153078934258616598923205378777764381566206133696681865536510418552782695429419753047813041276503946397710121242411084139359976307276519175646448556981678087792977003875658882323665413806300250377305534801823891536306196753499075543692732076986316061082767105221995007565493097994453573895100092713119016435134731693773978462500765319374945988333043351910846468580734526999054455929926227693190624572997999434338876698684479974586052084273202791490003590853113328765397091917620413900508603720267755506951322698983468128439999872399771874160677104401372881750601257355376342803326435215350084444193280384120348361919664644056892179473615671868350556663093232664405400976693891391254803703593268835042552600044358041544588779379947529334448090107629662725960255342310067240133399351600394697331696909469057511172639834133998659075821829629342718781751853653067209390434406516011684511951647873454945781326287263463966590852396871470016620963451533566445455219022305243255358497624203963312878872949688855603135007207097627576229821790929051960513002963683985403558188564660954956426000469124087996311088288410108937226895818470545266104211331810544746943226226019196761560819854198558063014711007188318633351891394171866757630569749182522877967060029197103839594522509424096706589726740267659168855784256520633248385150432127309025091218708747734692610513665669851451985189555846657494243490386066163438380199310400129149487896267614366203424158854534797710271578830176627692271842319384920192394329968326620972918315885165395946871142522965285229401384206512984371745093609015901770350485948462883607231376647940191149239127012247506619570087008243424710803866942552470244980832829629970970367256401817519998200932072742679524321471512377035622604558849106335612157106534930709144716609847469949747483770641522946718799052010957041459013042928382589901316116011130136635486831091237472935760869901719532266273091213358837326013265266442120803193954536565379642553787360840754926735495767677208089032369349447255115528830849982984718181401180083702603581124184119749614316413596265626985040834514447836683038960665484412595699162888263776849612709612825204598887226153848395457186110961846778382168265766774331639060449936213088320399304060505282224285151224607567320024923048472762306131992568066739115539300398143988942691896170930656653918818926926334449604689320102250712943683378340012168162061814086985595223377272934618306673676842510824381170670791674322425706081726946356040844220238980236397952065952751943693923147725831386883176001326281846538593912455521794251297317922489745325885429797134485175845520686760029127058109549666166641348495717081964331869536095677248690353137948321481722980063547669344519266933388117773007502201018307763564703054420323190651355754250532197272257474323562466866973152900918251251172018611414498816525612793352132691750217333993966954243038498383153338543282057312400803744245531504012759265234953434197796860340797057217652432068700042637871833117164984877922055975857092013225977283280845212680179505569933554849566432990389617795089699316136116161688344890934761243516600348931422628283709801902872939938429264484976094158726483188471101777783993673196567914386658456311023650549679298838651089379549220461397509832802138888431386322340988959204726941426464237937173065580922192344547890256512365297569738394561769385108568461488061062573373001832132039070193313299765833336446365312509127820370540872259591349085723107938259295364233898207901714066402955300717630583418710212701148566027807665007427462759807755548810129334830262405916191653945181297692049770884680231705714708165090074643462050503814657691829795687165426015046033015932206628179138177430947937937513209834140407240994320468224337103111649409438227944838930336868766906799078065722382041202742820143184921926178796236104137863105449829251993688912792059416099859353063373288536567356116044295415907726756787889421275083947886415967604451986269175137385713754581633435652181987765540271628119953376229344949117462328724917684511778380733453819113949197494355457453701092116800304954470558103328308502030206980583758464277637470095803659808689572816293472996212452353618153581404810373509316192318632016668609035427859918224871880170787513957567170270034524536311972851918003282302264636090954233638740535075636184423798164694896248449114305915465061195685868846705110961271367412903434341180863780828693103693389279821656867642827178156773379083434801076009776576169408419057976532408688241784298774400943934758384172888329550947364943799023792837733596990661111025370802309840382035378930550090411251265307515113504860086722593131290923032197162110623030592562645795577181402970968981300450299122907353708595689503880955823468517315487967825477226237014640300705615757495987911356042952260456602934732557224124116898170579309063465499147305812488230994380441029102860995311617745321390525255798317452176827859231835091394483391315768388953530336696669632080731876139589969358010536466327859886416359614993734647295063094876347093885920940650829882882325700618109987623323864587912064015610217431429387546039402940875174164251312139412226280593488916043483790669322124876366623474063052741539694510584778292179171778338646558295555529377326557081621126802502789763181084184747230993602425314443980776839517805425736507943344867505571180762675832073894034616284198020092861088994923210229404122401471269194823627001115911930186956441904193058210087077136678064606638011392367807802881606784920323367424996822244287398870988525224462393482565462906969412189303799802487413519382046596842686541393806735823724793797078413154537828629179638491259838403908867257773073531697676381376690834167892578032975655612051276115123698526902207587407474189241289349531100325387275094506399047496844272262816773046471171409790559966178939476691200273788282449583437841005230593219163947662640181654249354876545513258211880854366545187580029663282710657894803364028950928603146463764191245974304854330521679610408453370114207581230258104357629305791248281449028577835748202449570680510257800286679191889662147532658649485717166058306404332741143786807472534349058568083028881470388077703387093153877867725266266989770427287510973888521454144761060354029347060961015794679984884608597070819551008671075509582792725241099717094688902848362661840010496547774778504708494840530927462286526638196333526451110145219755742316564278313797884699456843147321887822863434446515103686488840573644093898423490901765909440885401543268358886486848277548083978280565428447231523066492715110586477529396509469143470370227821746990522199119528039572557010538068797349714297439356592213588939139300523524493875189647156541138373805579441953479909940999009825076267446834745853045523596420959769390620114869335433873893157449461728682374532927350801182782759004693672422751592594974303152856788904959660238615088798725641976083802928170765471705361613060679628204925310699237438401657055892278087224014849532051358575687116867179108891942115587757995344861164422146201947584718690490203061280204475685296372376337046506451509281069920799806672278749887325474992445730615642311528402201312900057495338892902956142524434530225024524025159234709508661576206485744803276436884571481971604639475834264509093314304921641409647601678642322027536796073307040750213313396890489595191183896628149784833320428216479193724964973328149841031695015448483695983313215862903869902153574210599851051871705275178727765711727862696437191463863599147254058495034911857936255755923713946001078500545045673823549184545930043973315492311041121253769965565792091671106729314076673281876531146894365830228216084301759189311713179388257330312587444507521867871378426260531315244495882177498326491833173886716051449086349382991769850938689322773036683492852159613601821175237502553458177231435761397382565083640220771504255004210615218534671308699874448138096731599097054137331958521236637966810914950109424591962451513470624072942398323213466834263489758671684107939873747087587706270835912242471071022411213989836744652659797428953782037609269907095940124197935536588322383234383268521139468150471140342564227924474406731293481729893960252644267980635128753428159315070904606488936376295639582991040602335582316570376901318501064293674681104451752449353779974368109788057230993443487248168147013096029386629907640570974061098589867662878485515064546454872122723744445664600391182786495081193798256367897290305175031202406535401903529020193852213524072779639033000491443732989493612747804353889360219941027904123456391738341237402502559356788495416694045717065328284797073874555119216764640264452911801973776146506537090589517485294729040873172940480743326093613424345394869204613703845042426171186939035765633894100625464258368487409394587902045305979257928749485583535212133314682994786659493419101812792787555344079550264718708997486525784213135134228578115815229980173843634867134923298161356100961635719825234767262613974162713175937909348661106551711696263406254820927230251135887968240675263479660557762119058875514244438104436921253541926258833743909551475580124117729401766536057685047603071106211457951745368456296615757552107941197361234458946445921402511836730836795630978900524935089744651540308602850285864206701827833135656776141572913654001708677944890352177311121054673599285417378951371018338740117782863604489455677919132567764693009758603570136782246958505174508975750469206822199080130059934290125116418238341127164839245401208428166173172139358703517792403074088202282789449126923094105490897133963767759275314989831154243726137227155746732989882181082542702431356216515389577067995845574172544095542311252749729682797164611173451051188700890221287240590226579917661473678022680570031378317918560050332187519940736369070651697479876145507927647151804211380255727744513832144085448343836361994777456002368339835399395220290599784087161814844368014589654597081058047752558617917634002757259066308324570402738800838356010676519608974019292926190848247434096388350532415377540265496960858284834760317068208505464856790715197829652094143795563516207836975159086210882975346629461411077848016388839959822133024954613982092443009999959872296634727627256809584013142636090102014500072557010011719154273173465821099218208143145258426021006974724784373204675945998177312034602718264405067726968441523934255575446714436796055370420922602372067324966302884240484815156109824923429644541906393138102130197151566587168101427571036852527875212197437825863019712913784630168040526410212164807748447590373641286537229122641738182705642576678899937498398774783868710338551031611433454063553395790557439583195878328337465375989020109270750800867891144923878661728813528295977650266768420064259417124875616889509421018482409990476045121572586982515572062990156819345556667992593989593240621828136881927286075950302118126952564269648712579814495142582232975297330884615779393364421760101433296906896880666148388576014293999108088046257708287773957143087439385830728511848583927399827690624157514436477969479980993645628286116785649936778463156665053156492175814745134929445786025163014606700900671074619832406795311955443403714566379318058813728228960467290220401412413320025527095557776939735903596211187742133601367641588360741914479169513492081099788122487923796648036774742466367237129408368349045319530524637549344682919531099503050264595458518141470386595458418123906074585411679542212495772739269655338748342912952284433980108053488466429957972503631876446050595987396476452963564715530015261754810439100233038908406364125459099305569971769401563434327322686246964529942605032430932300256938163374009387672882702166963038235682792811433936331607755237385740936048543949128715119094712118363980189837473472255747153143375813326793027234808699521005947139912530467047438741362987715958713447128151236258277224251624717205907392631364385255766252350170583419107717456737520326115344362417236794321430665908355094209951281368371196452199725907787501841018788524148449618360627807872954304754298905510360085439912797330248246389623641165093926070624730976768334719414809811120270056839688152193250828062912690324739718709322657381122948411042622684138031344776617755637703150513091900734399038994153059482600186448290630839831727041969236775452393716282092041485493421529041789598887437962121265381674310897123167542184394711741436702706789556211436175028170739992733812183876958170467914442844791202102457118118181748524385203261458705756266341642569745323099497674715736791001728907743553710660431787175108541620161032934856648814484035707719114808714938104795152045443357936212724989978974921830386143783274809260902324323647782405142221566997024550326081601582136808648191124057370553156767820044601423479454174327195451540254548930979529609156456814034988245767769400649266827925688086826898899185140049364437211827730253881989470447933745246410019243355266838019765957659346556555297653457789498349797004993199146201667766777912627156620171364744681656319873788032004458048197405186848408002191157810166861348393224594842195314295960760585722434962923467398979718514685582905661033263241546971270655178651464958600848354079441152841517649333239226212801844397280555282655845487984590134017326199169112280783988236337875688441660907964607515201053641843131584247135791146051106312540758760538853763908212728534749309305012639529740319456314922424230929023457129911175265930351135141913346329044148848660651010856739596686697408517983273487637609573522013555038449834540066817365408094490220851997002800734412539240270324802683546720113994705898702176816560713625257123648516926958923862930124560123107549118037740046384628758412860323966102674642672123121074326699986035209339237120938823292859645321843246879925003512170882631430400772759964448695359312420362637490538664581481859616361186609944060522315844438446978048900191962893099880798779349653194289373940527680676287162924398370608200660870465652808903535905145962897242503625319649127703412379419889483902482755699784763943435528412397750271987468833987097275149094022529721326050658455275557643118506582756202785352396410316662660598580775023614103163618842072826223793327270547997523804624677353679057655777139577602934177960119225137287415390640749489855991634810358928257349036285093645490296976818521997174250302037390923968481683197327601175198029223098753165756795371713305279304519901592015582379921924149612157673937736280055217061784067962752161478830413369785157373136103046702811022614333582220283547865971344896764447683091411123774430535734047452819142233679683673093822872478555769890258104916815463992529673981553210533150795860671482280356745217734347254712744139050149131915999938175574116627224463131517556744507744067490132301065357528008158615931661730387698941049672454581857805387406343539893928469645234073139803875057707050420053580598440219218907384912999182651668335457850300009351393379921587039662653083315928915279689114291985031638500244351474000835377320436881119228271554976130058837260508170093300230897608636865886532778190899094555446006451016137986449250256594707690978156268902880167121304375553230033752496314740197451042829082656378722865334910129144709624960457896551208022405029457934907670377716098212151930920657876350870348993320579730446227719675025166465676888199913124397091494171338168774766550814403224426689207099343319986674294324577605788176177928466974020218123774698340265617625243099266428199465408694706830255482827149044086993119214040510182068704185888981473218284587858969469621016975395662965244074282910588262436961293283912533487231937544853450899572830316377352289884160215588246715128085344612930958467793950794786638061172413135237971526192680424349412092394319630593323535295855686919141217800396912356480936402807726493062800747273439617835422026140465413892191827647485664783797572691811628055800847782604453072004413101556533773198962739597224620118225202992643579737987285172479031286002725268912266812828057055466489154938642182151587123919402131575853165169678353136933318853588256125666179901019738723513136919848449959552752968025599755684928765152284426475207898217649630433665765581506381043251873362906703589448227700392325983058346805778304660058035113433235892559628668207784880284110725969355222873940328064038702666648269053602767508730924641291630812760312888954839968953164236084934007429533425996073345230711096900155711948225446505856854278618871621146903962875626083294724249348444214534417676097022816344911506975890642434968454241475934035678755536823252858787571756208441237746006538026990406369107216292817160023760584426010143660510454630942309741853542097139996412969255604104073220413773219831294835909641368681417883659839553851719185331945632547227943431961894176529498143505991649705927693250718638784073310929944241185960383801491916263404289874298254610001727244514055530076629248287855743340005754933323330935969370137562070417564745363703465228015948090768222765927444132066320257370302245212150013798225383957602943775658452159074158465921322952903514536089450370340354902196488575678936481546969609061194288506274060238958404677519543668769521075538424557974229710224088414923827507832707609658095790735838789672609967792666374316164442538949558025991304928725208573044211754343611586260431657893663801230167821655124770180732093863940873771826135888954629276320392347772575485988191947375945435755400521977333645462226582849610051598085974954432235341675259734296263324654848684223686560461281965583679526705691896842731193398629194673332629190787812256743516219855090746184493410899596391558446677527360453003557779475278796059855504897433178877329540269129197779117469282209510463233851897681792370836910016829747468331772896367560401532526673706492387890429089070191708222460162714459938160772768247753792144196036707253376254379976213187097375657602654243295661283415936842431352747036218151857822240294323713340023838882377751716442459239837725712701570951707215510140809336586800019076584326750273609328693653313763516851110281839696837035713609399030695122354400433467757830697028929597222785954439441515488944506259006859061275266178861960218766629172031884217693642911757385664007955939424352480016779804424538199902183584333598907329516434689738123618909509828011555627296069596374026121829268234296800319878956996536755037937092180523968498634238516702904612255127379817730495985881185770835976241560643270419875268444685268562113270984433372073013763533376615578917899110028773708967719128168366382561326312481873147251681639317732732137109695798835031891595082115059950496907849789022029550286222198385621429094834925784687242934687931674450795360734941592839966275529146122384643258031131613214202286070622959706727038996169427602954865907020483924778197389814504870553957379619361244940256030682322670602470206635904622186583603283660177890513774678293373917197660041277403641799900819015700292707103142939048757725288933995167741285691809199384319602280572114041788937041244402445774210270755039516667099492054827166575433337729735708372701208852634881428528294094674336117557187148370060432390304487287814508587090359678486235257310631985312319320991479057509360369276195013528138286405414253462517944136717561531993075814543733096177885948743238200987910725677820971008994971525241429396658989315293213273564938345014831139191872631723570998339986192783131901000504321390511077509979115740106020162753286645461684460670512084515224887666233782978047378913943906563671684652540687274129313428549734746103809894577347518618126982349221983726216566506180382767465236611462442702022058287954852915431807723045252040915172858382687490705660627975899906082981932153632228691731726780081515193370020712907573861261473712959699288280841030208129016957258900578958462594541698911964651747226009385140527785331153776933239734897446928418390032815382664758338852237829334858272050908125071514957007601059539371791787181224872646642102622941510708502983539581969447545185035182406761276429321646183874913531153939717295631641094039537813426158343069547021576759918867271293635659364444242586130867374250776176894211604629961562006327919088103847463109955265020183002697937169884248227544111768344668105665986063210261732885749373890555699009114667813547050273319394102601080302511254260536214984537117398326938103110058237515766322768965762576631479528275531822919435229823579853391805310235947879569829711653991026671530695910614828009119351247044991775261497904805799994599126422784226218258039058370442071223523095043664708301825342709247152597453828192122435581326000654168821608519699932575889930418140182724941429232746425861131617841613270170228869988425069404877551806470655003187873695667533144105897217433846885553525314539711585744759727236478648056840006215072777678839478273753639821027887448397187540983115519722955640915069760115110987059518033690697195747035648695306910882725620641999853085043816930842968478608740505045755308299762423301944662953803900796559118799954438527377035597585003864574407180549665695417804674111159647147602647511408691355062116607214672824880317975614703687620597706199419486270669201546879270965799261198377049263028850661881986949096305473750816999539065370476956750815884622502516690849331515275194745430392988287528294155928973979854774001163358779903430323580358379687439640117002687338689641792322295011300722200537069302529794488557997317418553120455172740327275329552573740854545548782464660866269352147701709063887358262629383829788870570375547645111320319563053259969624572999757907060216515902093376602697166257324617406322042592812329613140759337849226922075388111100768857915001520172654216214385272478845228078005870618087956866145788138395729772402938954127803191669400671148379420375258337458894540216838092935756729579588832472730194261701615906091295329021975102639228780756994294884632503848605793853403249645628222408577370585445591365794698237801979943273248908642004157781218812019056862280446268706925498120257995516709055084218395676119780260909703396850482471727949980510840658008458236552187188358913094232784396203202088279935126580790921799917129673055353967394887748545819851713649791270886469608397289943474799903952966590477677373920527856428745488309147550652577867897061286121788748489153615723872456401376658665191398671350679841618336842306051611943161592673481219841860844233108631969751414938493759511741976037308409842460940433279788416671573920344080684208238347458115773931833962982038379977648964589150358824916351187999223395653136910585466988376924218164402722186635988856107495871150625653388381395512804520380856604880981260184526793305807294841352467233514331367224111997657201766552318326617466225764911622348212632530361768289049971267907422097909547777453014603514036190812434853542640465631759558022066980521863139528979960462781970896066475655386244466536567635245947297333780996714597383444348823289423672235275229940415351248193148883381364336343654122750973048336708232856166424680291937413100294570758100987308412661398486132583757076246962054200986477045264901899927831854376565860740301067697177847176158783868553390965302757553453346044971035045653180433319119999795730694884220342671577302366229574038976772250136544162961425814223431542079097038682853003036500443461816232268785785071328984772845457187817182879333693753415160365006795021831292639620116562364797911979223805121862994581567007111885856509356354144337949861699961405283141588760152505817495826774383248162767941684997353859170825011012455686498529349279293137282763116374924888234670962173571457786458801007347885048246865011274573780998257990696197654348819047496390309525326322947927260811259552268642439950245715220579036681868956525822832237233735118747662942560773674628842109914198698804901071412235486473923399780007359154940132872012163594503179712992503949377558529275904574787132734430878566901731000094827008644130169610028814127265877451917757206247324822566201294726059839328902631384598340117847679831594782541216726824460334856301480244724570457011123773082467767830884673727072069721256154926181733284188055534151869635297020746474415410270708435921396861976414460339292831843420994300811047680720985700066434176891475447607702610717805158055058967443027979389477536709214386852596708137614503233699838961736526930628818387731269479695153255505050840282753358213710755126537661815442039467917882010732311727694046805741218758308348591379082706637479506901460794498812091732897311337622083725278504831170448021135997253368379193867911314580331482752263109349542716016862968342338217790985838773537409628482840996794528490865748440133903432780086727452079979002023507486041727944764587651415027992439795983466694541248610849973879622332796961981084694903757649167154946485334654170917204037444189418576998833021109072895580001258694472705977460279524773779071778339125682832384318290834307537426506511978033882623658568114972576933482195069511657721025803892297063073627376086454794926820280304147037385661627147903526116039041132966121587148518553309021236694550035617875871024104864527286670320050870656101425205143860063847673830289161070196100837523743985790381629652241458731305152770676270226010029193978873679618789405115768402979047042764466238166839924765276180847958330052480241975840651662759752819162846937249763308039190141009739513730512478984941615180772350402824944441024070454143485909974567110012432765619073400693293674503853984668220553290928966572031353503271062653133802365895060716698464437799741771726253380245016165694666896750644535215364177931952498713964497513515416195105139897189578472120977677922690507822111360777277285848687103489706612621522425086836535366099435655910649660637411235035495221666661852871575386901089144911304091341645780731210769829049287408507053945147855551475934185754504537640179309183888328658117017045992300469196707444961438723049256432697683723984123067396983374446819629432301748393498183977303462356652780610122889275137490210197261582593579658754178717634690886942884163429973182049356090334747379991867153536232993716845671745955000491407390579911512322085096994049992067655497687645760723370292087955147526376084514622547925843645474144560278970703602631478925650440377884234300178802847131996914243203655401748360589260676740959927922482402525667391896588758969954757019606456841786965420981917090985271529727082373349471187651566909791737430913216781479027130887338401520641918536683010196121857140367172905850663343949891152193781776709766626872444811076320137473716694875612352512306883893125943763224286702098831152820463568729240468425861372049357517384116828199256716912614206388687392182982492471576755240488179312810287628131984798004589058493121858949164597910590213504348987160436974809874710347920280932745266715737838621671628231723483898140363631882866931097348871978186834983198265649288377568902371545926416563627370361355122386671205355356585122287209942705682559579790589804060498927757295321806739248848335720235754493816343342883160138575476449545869883564000777115267036068641478306241950722674676126334946293871126029649374186967889943106799637536599159200061385565912534972370284138502299871802558546279439082814955434548541920597597167832990024009799584997711957221650753768641426601231053665863474887602384714446026091215403733389885144696936096450165289488087814695341064879521317599440912660939397158407236102086711757654169568645962549268523990693358216462795117890725836327130289165374505220955734147934224397490771234365349213249220893210070920717017731247079920016892757607353517362294721791214906320651144845116205141010139938546553419227021345339797279929286569245267983152127126360190369380366971470967760360784293541235855489760218256735801198550481631635736658707888623822343028836546039099356064141066360202314761653907926907177495019063079157345103282579143541451566682145265680349250645766507699043176231960987296594428365157260290590615727544437746079438089657811347565271499033981527379599161822289108999600765150212305063508698672051067337486035426242103984367702806423706235749844142100998110378897498875735105723520739866601442929101340981243941132767293197515401776807328628822245074351414391092796214355086375527709494117904915951397227159850495277527347965676542761992102080972701641431042423552743154273479065689735753824289823656788214493652813511390485159741734752717112619994351106934449953123901624550401632842789740952997645019028668072380335868980826132005072096097692026583188593772518924295292496415430767763081240456478022731902707314907836850820246915444621771455778669641181989227863371792500604248507273396201316166308337004380927165197148354481897301438092837158135197453182219510365148093812753227048915656945373960118950882395107914530248395039233722088431217549388174767779509355882175164414154223852448621815250901607061864013541356534716146855359556107670974215785171948669727082058554791551420563203900742778774523295074142558981298438543203307868671725698945158475828077438076678235927424679234184297794057041746873045734462085490499295246134477607641993960802019283334774481547972064239400048124149857455917214671157138761098595803433834211246659760287941612813713331616290250915045822854598814177578360628282448254551722092144752535873754836391411991973303684519063557801315294006002762931825377719785852790685209779355115275766307164169644976939156961251175765784537689945635330375070891848790277790891563575484741215819124950391509595657529284005672086594001947325653207739438771570251349195301657435966224487906664889023792848603378466184238161054839587966075329896193841777632877677292137933296025695132350483541194428329361265599075372972449774490125332022740079185536623762164576371840477487520093598876544129803712998149256082817868371332318490083513776329142911692942829966288457594688667670916762047649414150058599077782641150806109200502416050312663818097581734585656282326450673418183423833061079107102464292870798125226329160952068879178882709309125431949380669331465458268188217977284183997139720701550768321801924281866173007744578460324740391668453811186529637339395435839048675742247631253422687110241125476509721919775793160334656023735068015329868540140982528968098478402090766909749022346031902253876949584448822078479368185839393762574079888533028876372396510734522937547739409591797198711259367665488582018457354780576311279544882454947791442319670878717153772716102490686010491517179117523808389298096405566764006741830711190423281976754256922419174105556902383829675174348642852533837844966344102155608833276315406903704649455719565085646789105453184822431069960868121980669971681720343304729476917693164973276212978699281728880274216065860736922208910182035244585980297838077646146069630422410011275496242297123459001777708597352922301052631087914916112873526367945501763528773501253081727156412433541826120867119820004323897789712035410064104395676596590654658180545029310169081174967230073924808350321005240278719873630149858188159859754615269224693523847669149072678204864365158991798723727761606620797424111180743063522049050827544656223500588652332207765440129163684340846996668173927288969986210904089091609687495760388929958609854788358113134899366408157936005122846034480065654558581857355578545966973957906451731983018080209636848717040202782967227699539575753807410497509878524677133285151282762648440701034055167302800600628202406151473657755466150207584738754714710095809346570804965410002760437990295794743040816769468201988856133884339743862038400098509619950950621472404707887886188128346050910260759575657111609165373481126983380976267753948994438303108740747100562450556751240063282570737784534177776029408956761954165663911159243999075424275652215662434777841481777054864549171065239749025874855683811289720097317516802308323503854472706240458689587253795353345718105666747027089327186392712137826186816565412427651944055622195485240077141431742873392621759099909547164586723900063582396606264363747728857402042770949787218046500859598985876688381066589336128572225460418928573995292454057364770418774096020958748673200388088190563112295964246436971251701312634735081881707297907305980269448615118614821482327185602026923280732128152103196622476350167858583037815982814583603142525967105194859918282591838401268702465693575569869711102012539311756050902856671652202080536876808200385082289780603115758258866610998468111852752167506486711963326986030638462312049244109518782339770092693829168660154274871819351837422748577737647924037937391408233056887498762490530614952577909944391456922458682173345896788545455577503131031845811650057190566248606580742157823048669424378598011136315355901164619138230769279208209648818574884896367847404758165146656915759393885238428058837578770004654233710807360052006681527474783405213730792021528788522227215238726471451481043831899177940607304832864002600829869914540698345025603020173934193127448258107643558744199659572456350462807639991516558819148836370806945991639598875631616178493306778786000152091738112745088290022563831202075172906387632623536609804804747987461073852540823161174308139949834703033653579467626396307645965343078038738390150668812678539495187016681817322653978783981951968729792010333660391904274269531939019977934163463432916632310179648892330440654175687145389151865188906255704738589584005628746889084037210185556906179763956367452575111683228328861276750133323823414242557831794007470743278817100105633685858578593089144657783146176277828977493550744931101964737728229914827790362229944585929568770055473059010748462791317243064357006628100532920878055686516574420878469122486201020394456013893346610629592437677949216950881357804370374883982837570541074029183884473447779399212628701806267373244464187908975237202821845608531247989466878796816749167373539851885688015401466247098047684949467676809515305622314670333039959905620331911197868531976700169326286406989182175311926761230615720022331859217497913155736203665793330166672205625547283524996320761028673556892279216504946858951617893691004631572806786432800605673957443493746046171745642113074253191739908411448644998532456949934279319550339258712213100030589626200616110619439034185262119750961331046602355235590781911286831819963550311840580160954319388452846515135600070920924073820477265533820908508424744378925928313409819470283370236710591376949997912142812711756016020285606542135706090606687437854292810907493269025992722705147144207979819324445980425339156580707127279596592957349663209712653088186257695729920533718022206885755046104230347983319798564354699442446680023489083887179600964030170772582109610342203468903005406148800659760397850368344257535313827531069689929489001546728487411316822635199513766919441602291357043403561322244428264623978951929471647351308684220699654770362542155918039294806845100570267278853280801841486478389417399840393226288495705132404754632656058963094192195701518862882371413138445752316039094615153580620015657719073727305988507940903840640668640618979213852964474497683948571795123627657815392938576222393290072013914200084172163586477383641418576720629169629117643071146439326842684415893365586039692136697846925331713172460305145764371670405356273384545160124407850225696364698626598429179694656578660207690043278050999127004538221084573102941773829609498809417733174054603275774546376773706423454041374130066570051503625319100331651323035963631299111334233559244948708212666330204755241664989067429209216321262468612183340443518654996567483893269427804171003574950199839470785390590789485269958325061901017224581868500419706761540879726341560798561524573308149192218492484776587693509493905503484843352582614403549355035437210628189677374196768871192614191106873387418591490539779778943497542321166491049499766551846304520463233025834754941373183570379548634222278593493292254527562690746295140749407713979923746740018356031668136202312449265096156721341575981469895172559292159710162869448636503435710405467252931152786889240538419719602850778439254305760767782704659449419135004966734410683901084528479127949063991663889141440346547496491090685565748843350858364327682981106901442939051126911841062709984492894201779670690269532853567468294674093350574094401394415182518591675496226276723555667515946693479839931544051558451318359307769811600138781324242073499854695917174858662011925686073911358010154986090448765895294564217863368888332225114120638168223445315271155488450051204436744480625742193578414033033994144248604416329654289553641172424825605135682750917309780477595879087657219003953684236976848056070277512245185591438236419571803848094579232137681933510097340518358248868296805546008420264010624623116149988433019108101075451354663003896696259265108208621129350447778647010946674795412077863358481960292693637656868291571734753145941422453951513933696414459200960064378652036260507609473845601534452698282449894980126118653339400245398023138159542097868081179331694694450084823162415965104659846041842649382816882655686080537245042638813919452455330554401945106628125471093954089464292529071240052239884336636606450041119877493404695333402494104646816032593604219135438502665687495256818680228869700145880563803068566602973489381724677057072639944520604449058718454142221567053807846556842907677446007532005086845057097720376713702815392292913211442457747067892818254670357008913238071096225148051434185750074019097623435098116783112649564138848155128084425580501596620318993804584545116945584017800315719950494131280764579499831215728452182956720100601266134081976350923894538566243974610174621472149090230000198031570778363336821797144203780313987203905356164388978373621230766167425684411448906650326530937819528530890534301363808017965196920681330383709443385380439789767483121060105289220998380852599758961217655179522445766992206600153033581687233920573888018372881597317251901107330699899857038784809878993846385474830219462116106812673828940102923760863732432544488517053190581885630709417089673377823676670797114417210291681622783911584676692042204053455473064943167187116411887330865690559923581105321403113012138202362978687105831871734661970301602656592267799802142403852464128364198361054439946697153071474529748047575499803292491177204059997067148425408830295489963636306308316818460484457378591103341416050118651226930375705502238995509711592979600448564231891299729202655415152766762766902777106384069693503923761606673396677920301074523828965095331100845688238565061188832520133660725034420282012420210917266137425666592856230379248810270732158329160269316665176400515291437344684206809794424103699532375803082862806515083937726235672473015101247580021757713009282334265489242462916328336565719403918254641536690466309959513875748981427973957175431331559088151342521548299302060629291865282573924492592378041352769270884093824103456564777883909333145221166699190058228465206078331623801353521170570835230876313835400701193369665495417340316719818121441155037578787717747923207486461982564446772527768071764377059948758600585228162820554509404272415873272811493125513437658333602336471061695590567925334884748973458397882925278845688688389255674505617132290746587117456624725343879908855322856600655630036179455941765761872743328426550176277511231298086581749304626064583074914072976679973252840713655610336910413916641271865820256072559342260500431343155341558413836013126323431975691187287236320334957024314890331190160522897252868065088191379706425942960883754187316070324774186509196895542286063619179833880446134194528201768708264036701135884690693180031284918015583011503256771141167963921337137094471047275911439031604161440610528991418479469600164381324259627440481668445024898920117773615955061833705096666292514381621801621680727698430927734947611105974436529818290254281987616819268113102024662821000004466219591371835577119768022310705875937702518796603531877188101253661178606852688337450619997078982198341806012661145832018976755014377074996813764099510079643877493140333631540394863526643811554675550979227778303310030963250117729396155619653908924069568376210305059173462716651480083645291609149898729388502224184597669270867134297942134884024194186715362978943629397017318256467143502845441688678621036292029093392406365422971317488497796790814024419021354505818307937211310695059867608169797380367121995862383187900880941618336712108396829520860376147198757397843542903670313428750078698264872769479240375523664989658308720187994915686212510716303103786247390665400276204677906376812430825970318947256976519223295866626096834937583207690898414605540952640040007383094804630398109503641530170223731557429132232237470195696519624083556844880328763332681446893986565713835925835377177824630064181930469190953028244103090790138447866638720865024803173390600008997490627293662531643747873906454200049765377748038304204730525022440940457848562132954631968824620747875218884780350809398317869849994263047026536577481118054525011945747946610826713604776189358402604616953637961051038938741976802838588029840626114311822228989132122367189148423124922567257499755521521912752591933258150781364775336670632611673469839015293124179426281114701792144933816122150491421934111159298353197077254248665213526591007881538291261705257242879130464004292434090269862624462910232703317040228785362458404534661663796418007366373391193667038707923315857966314169210705673880359895317348913575637780701418264368581249758516167515066337364214846630956026145916591778985829963162893811767303770373976556351586412179065149171872597373157933636638974089533001165642618286094901621185694367652840147191965730197518470622028914591852614486208154784451402672895493879953632080590270522415212409726654292142244891701750002511164433917448624587079333602267804611923318125288351422919307066631488479508581145920233192059583202719086194909827145300870010719023185482980018735325133516242295403352904627638616545458664216028446614324561354016357731625510634891716371440252028723932432315630371358088935667791205145078172839885152669645052564247052620558179798428043947265145903160611966269914655458520591513989234503082453240269731163986723572107916733309946981383816516128364932386450219522966340709765299413600242757410192555492849540932049022957057904658306862342585914151940808571039462136356476120670461602534990145451789112232446928765026609460916422802162693191911179782563702979791550798718720448762106642305873331385021838607260395368674549738062480920021153360779171741320743629229103198223177011701825289867866668957879599648726126993226279247418443768408064549270584071982467612982825501443574895739328165080227203996545148893115347288600457756824803142249545040282797266178129041486867401635966884298808795977967421505212751451532061459842572716396885297466897160760651529676445765398180017487959954082663019197517188962327168160613091396651194617108379844213216226799622161859699989521503579025069328499974875615621970711511622630373991082046921925330857675590392787055190365774044076230029874481300295618945867074975868178899657591195140292729828129668679611385710228232201418577706091662037154542470414723749774100516585933014035049289791711073213948404933358250959327316903646200548915099202474838863556213628877563326132213327231573660352191440921211670552260709718603426508390592369407442067579659270356512860831824119248283707337454619820856096409171749333798082995200922711031184263415673122389139263116049159891857988969452406455358202317762170078789274648608507250524440702318046884776117168841085647670551916013003912530898827748595591386747512340030762766455884924024237963719161001163979589309995239073661606748583681339111170654807979131197000829878898823556746797023778303751014870156001298195497847879688366743012781982663538569889737557600029364611954040974996545254628655313762378047258220232036529941589424123812898865389920738193688004535930240406127257277795250111619432854042518690603560369371383959792424901807738626242431275822499562204777360629100788196858392115906918244962388994675598500954732502446603442390853438201731587982864795555157161465724372837126306529302747340095939304566034886621283395805379939598163867019469454394156449439605122510053104484497622239648391290466679621270188268880351369507955640532752539882873582978678258058562933360080332356420732745001159574219415334683008597163502420734222852331443472737712468253625046256966574484290752568948474195509029957044336852796048252423138506187707721407432230251062593439647965183395200297356184777589273025439972489939015210830587322602000174745367702227966897621435494892372729357002494720665485951672245764901870372600348407666374654514167208877919683160999262379208826262777280987184399071947773121183593108432425797110271124279833488043577632564497748027426041813709295405631479124343584599220250373674134025176061559317886802737459166148571671215270731869840281658188706502656748533476087808539088219739157083642649974257433057046781552113255325561190474439417679736150240904616214489882635838109749136684880695702536959496176055746616588651802723387228520761193856069388313779977803256284544629153415548672786386277264091380834825852136485998977172300707809470751069193619031924765406047913423585741697353632877342904955956356857251749258002522042556300944345908186898335647825478365760848706525636910355176641062258950985264099995462557279025516140452374063144464662686414435406514325699810702522404711527069299375376469840582367197271630916894899743524388488577549576277460047734205712496666543979409426603571570951319977167500787496613615067845444506053667913904620102831235150140050637635962545656740991816737335521133090124346197408275046300620325849209826113019064884210394617271691169354021142462891547932839029680437199608275131598973048970932697366407387314920098272389837107005508922103396024443358992565810845271816597068590365121988121913712228149154424593473747515424096855826150647312830124123697125423230754056774397603865582829532481611901729621152619695761212942750702544628990060206260332173027337991906825990150252493831130123202378240288424390397336959262036052565088510981223419023968922238530618669814058519538991909667463279793434901748121836554152190146137077466026518744249644163276193441688019798874130921259457191189073255945917501340785742897107959543001761637511159819593601267599144077563988635943449280296668316629547082833886930048981914982257363809062092708099814521560413056055556211371515011140779906651745404187245052524557675417391570836386497356452866222715705602423014668378545470270706207571842591802761869074630759109695883513700145511055729721376808536935215804979872049001346771741401315426145230938907020868363059359482259800605404631064387998773628838624530084812438753882681841434037409932280152893066883906805581039770602723330437246363174682188369920331233280791603896201907864491179898867004443747014737398445070933174854404881237666803487461673482987939953802503859728939822239927383764692620791149122676237484725905812593564921577774671799645061894540638945569240483552804397300798277922096859244436892542187512405848927344757105275329711383976528673944565075097723266917049566828545804819057917252729618981794445931989299224640615478235917455283454718743955269042131702171759683191577702397905861969003321363046664143025289931324597517408099643200513545092202403480420843785827397354971194234059093059345999599224960375048322537526962896047265179264610205322600190523542688569353773665787077123004501775405736290823057609697381978852397714564910978429962696681158640731362157019763285714661340938266385279954145791171629612196257468418715438818658171714932585656501024135465704733343611058408918896838094993946739674056227721254875398376405770273380609065167314241113641981754495825468313875558983085467719414455767175903171160720186842962110008946950437671680700942316189268799800299839028127800587335408824309136050734567911528923585020485784535891767154677265718415287786773819515440263797032478124111894206807264560734585858788427250758068345933888235838870099451048325167149323214016322083205562286453191625295574999072802336911840460347036975836352868860539038273859327613868961787673165469770317164588534475358785993421217944075946624979218622934358132096469617505062050414694497156192267577182028003102734825334548612826166145626267752581888061661744429180741225894542718315031002639805110933265950219821950060384237182205554836695724131834026316602942521656599081447269282192877767238348033484565312475332175016740174029238740984911188013031296253559904619240530843349437477893829390147025593883240417097080079002064992904706383973475410326565750609665097312800182882548098006661530236961807462481934921163934455580334083729409602565431739548416041928375732681502823778939460138095427563521971682445108626502264726871603885080695420291752571931622877996449621194214509902648151196051497514982619017837510998919230566147189955734105242049212381478843579330301459656928104661061610148115018556083142477813745425679935273187533339310769767934025186765962660935645242549188006349820590163963156738985069213577301585111371716227724762828679679894627635131708598335999626611556386056271254812856409297188663345454451905740205358209514281366886575660792283070773977141126542555032110182534869176836108556746492934389517846559115122435245137284952339790643834573494269665677558572732954768501912843238200054465518797595304850136338480643601280113194440226002884441447192897989943886169908548596935716172471552690116895700345538923182323506949713311968172741364919595849737227987232422762029844885071016400903314217957397080325108569724982764948189558260367320272491285390228708023952996854353343300477465614704591542668888790059911988221509442547400655223784230305479591922864281262584452427789412675693338064537508097334971597689113188421063850980628551287363747101436181616491735887067131098052525594410924974352277892834751007665498665046693164980122774649344718174704539383699122456036638292434001693167477830101105472384542550226677729558434063558436143806940405572050484392575729753213628134915143030104158218052272925702636532793560610287063565477070768894778272488365008750450598708579633623965139987968563834180101363122202711879366276004694266323364913387342398432198163446001803655852537456206602332674221775725797036633704325513525846532748367298895436754811508836512190550127020546502396668396003500900818830761398494779540387596760480922047269423245055322339598366085946540834806026049309699317338195146509748379848033126607343594176515828334633824173181493978702240080316378426283046324527043931527150178013817947283726067501476167490334351007108938565839945609330220021132017891600708601164338739527243805034684784931321852717045793553167332904001482634659401797496930226222966587283178133991177667249641866872860132026956170783348116743276241129843857826746123428109501891687121076925384678318176534269973732549881170585171374877054964190138523261264904868157742593655646646835800762028186586939439575526317092935060773668119283683165075039616867625875812143645970123933546683489899669075006478820612847146664498492708749278133422436633224617336020788364224097011568943455501284309956035028138144106245216013199712927943735707494363878684052717168429124016812553501524173774278125438866728973872545664176772065488098472666909681478214085319892867303543221786027908129092844167157370012077206303282987593066157939389894938116283029608329526807041262277255351227489788759071877650149690449756486432739114906375434168024386290490958205574031335891205372878492745816953149446564749120738030244066148428716132028853017482283430867337188314873821488310088401370337992535988792084638109912789278770422158944012111293437215340166918159510571592900777496127102481243633323229977600306003952908133016359210459259240345830742923273278230799923946274545758081883281286495118383989399608598059009987581609493319382114875042394436533685298028214920963700731181450499887343267739039284926342001211688283638998806494167119326969229485504408331519456773493029945997560128605647450730220590615990476488004336734787819510013335944071852142133119652095499822325660433547130470843322244476198215217352991959321838455760845487828761671506313778952137434473021976323690661112971600830000297652174008805092602454723376491097232805664042382095143050209800644088945553462435591526641679685563308938429562896835158567559130422972683156655089827469736193616451275730336643006890770897655250436596496394555491804352406677643932334554163981805683062090260984843842161214351464580762571458522653274227917902208209372406963453248257539557976876376873050294430494988305744401559933035704146439962364970506161012386209279523747203190300081675769918566759478256526190158930348640505159821189006151722667109577168273367666651482214552529936969828411013508563983771807379384541897974641613000756721271669023755165971029142792340975172889745242674460755358202391613813383738523247240372989203839688019067213778178402774311919157675980336642258122691877030281425560001788959050341191915341461611071236585123174434226878436087588837014433211733960688071515812451090409711259422489431999374583202293601795283041563805175783932878479932070677251815488159645130482578887408957132369115464402838469350460967797304186339625074902515463170733488873170362044514171018957705191045089224730128165643682959657026479800754565792632044840572694338163025668472951580576515956451010309724477435442159710711807240509612294791776571781482371707272890813749635589979933323668872987490435790129616152431071518719440834820890895608567241115611782204279784049845431645515891247975759476007970875362497934310542882220095347579288045268282642928053341768480260864195314698223278729211319887894879009810285901186072353855950722480132422084030959508129339663614382248036459510120599322193463066767632568746573810650493585239789556333185068561528825887177675399274835251308598798530858524628465055261530850453449195949560566608063593298299837997298563341139525827670834040572855025824193415553923391898904329176285794512125871779478286579185638634884568318777776278372569394937273488992502525575358095004581743313415920628506338022039390725374361321318884764180146289114486772052289312324249866904188279378018261451849756321524482479716621287176172994056597824361227428401042552312504515242783074800846944570088529356429215107194069462030007281841047311904155921008183317006570829679569756716688337750396669177505721785645602001439890366220298227468074082543117917326327397215305878296382855037471555254230342681838733414405556904485292273416922398230733074443766194077952230665128760063094483622563464427160726808712342716829521673876297872848750795700153653077960698865864898062209940098178096686967767799509853600122087482537703968331598314227609647759954192803307061961571609394507533804118216957912125297460451164016526739727956017882260240504852886608160597184631316099393699023749519711845271769524136406425423837631251151744836122387036729950811242829245592234256611799687719150819019642871153104231461898264383681612778168103222249686861363658135587909261971057549557327336121514688783433612050722946505714885414491256443143065924477360812686877069255772874312183721811343555051120821280594235780103380086305257122599190798637090812451955677402570710103678468020538675978024240049489086719539526969633475800831727756535357642920580487641236071560288365788526441577906067212773704475541905664181419503354593182791683535801903438904197348946110679158908597667349901936721254823207435896670746716322860326630323299142545439341248931471426966368259353796351342654744538039654592706557396763354732547671108301972812062980396979052649827105604243898337170238718700110761744996009479186264277418875021536005686594810544333095061687435643040875948706317511643465656516759064650524744687760170617265249381556453358605422547848477614132528047798247586363003941102119303846286876498760229876101645115562973957321256058845719413466409324528047568210790244898016976224369429870275871549385150851896589968540085000601918646744271204681720840686633094682694702292719845945673877518910601850734228071783957926371711594131710841483636802863647273345645064039764015695020656531103428096127361605651292642699318235199413337444078891910891693297652188218541636661875602131972682865696176860357258274004928780398356457250524941770651246414139492423372072880206803365835248801906481333140272079020592635279120697007365759223555923114765451404472367171978493793584567998808772264937353937001130761359336353737111197074289821712881531633980796104771289768032948088782761073924539263099083858914298555915355343500443803070836436277554888949430295520231339317069457245916608151518247986798046288938377963289154996197507758426631985800431034841254910227665313296040850596352376044985997104278233718725762217597633942005565660610320392944048372775311404671126361851220544332084242686331759789977812886718885953425830523911268842302679458092118592232418008879651314820726531777147464941327680871987190425591139901776139660954626940794855309798348003598253507739356642750923497379407919446204749732821336219149102055172135913773298314822441914136211855624462164487246791232087153799111980128233506291280609614160159856619871882782310572992622547145463526995975894494230225365207088387386991167609876007623140626525463775418715192897552296196405532619076937773312871428092136980899414052080584097164321126186078965891722329756425955460621621748587979772929374147410647970787860650802819244125276626334472102531067288887537948846305281414463807233403887327942408620286132728902159153682261760900073373247910446639976731325149961540781825143280427241024300026382279351601686611186951786699062721918148569994087830457130678166074375358556324394169159879462388599452735291953639297680851969620993222808412742860701979158560852282302109586622470516163190864676258373290636792904593404214947559094853686066238479372573739476959250769273615999196258025272912244996648356176677702066992764771025574801055071018403456712782958570085130406038192850734413047268736399165078710503966272765507785045710544819689594284455114887766896025229036068627483235709426867705960517203426778296388127044738927977868141243641973524507160473293212728428245740902856612732341674630957753085455597760417471906528456838667684675811145705788241945108072690889125191965301607001776827319755243853137581596208971126108481122132145471479436538142121743749923274080290425203484376794202162840037463652903340163008267793320863938553230112857058736651284884819451600367851691369073960349778096239490572226378553542360233492837813693024877147035143992370800687672933270652509975132339720847442864678125773194293423468871722556677399125290990916907040204860987861210782251203963821052558609132513094663085821602236768455931430593244232068102083708256257540898666683622004621889650518807261459184076479724499542986603836162585380771305323825680063515258849198814495953026134498361011451497256348893593888588853110802061320154771422919311889313265375777992761286610493277470054644896478571269197626316851707809229310214272495125999847979711465474061956338474154265178632030868846604716456504613500612368398177473601491558081384342143142726990207330801122437787156513409946163750841864198137541101426693988652459142196844273784877956812274023872837082915049737911958393927660986364111283467523147704110595780326145011647301093116618978198172294188042007722703038755740671693416642141964651372749414685596381030032253641816057052916284034287647048171076974560132886723743526486846406341058829897058655685006205203416837295901681848491359660038780108685358313874425526628116123681323768667729399871360278091022647665453325422297741516314160653962605359514942524446596869177758337630288438186711831861336057301199821141553702025953446662585929056335813184583388391993942237366855031282537168480903506860208945475250809366845500296607978007082542459660990452542257935246639717333723720754588387872736663049289628487933795890672325265981548269936536774001533089689965322622797416971039609287327426157618903239930269790751984145971050295211252738053930440177658932684495566209309214540775055026999256783656163693356438368715615011039684649019706725776131907771945856023775603722768807090492804808198694132297645649121089502524359661222935719347311532169631416764066445090190960504760211207711849557981264190542336331166675785973369139549977317914575350438639774572407403590027787882804972150999265203600459735337146976969941177169591193903078478458702735381928762657853984054651761776275505311386664738140584110719012401617184017442932171844121248248564870920438061762684695391694119491855060486884499401568950054311478909504869369390634176285296642834395502914887408340638944304226362325377209571023917915129915454229649328920069709796127800926220214760154299113080856649005550924552008116910456145361244718766592958405399925937840477247843772462592874741741096937170596691414078405379892613904156666442280310204508921707171052497152769452644125933264654997476053576023336119056468423214804174115603292879698499295307291412759421301277469612960548481966136084499471569471069145140187584179618126613749442037552270073115381005923142927472131272047522640958674289657335250191364983806031503119668136104789499101329219139435357803570414243088659801982495222609873648820296076273268852415479091359005520835260165141949366823947353578624263296295826837840053419823091003149985963860603814508889637429113928057401848280870875508096571194944151587255518074887526470632598370548695592449426199324032452232856846463565137186005089919587435372339436988926985805473448709023025980497052753444115896233909502561816323448297637815686298513517016027287930670010108329563679951669656900387127444063278010127787171163519451017556854640390641251389708624630642859466715639844272701893591008637593673417762568999748818633639817071952012056783764815819144420003150492140415482969151094383553928489637212848361015702773865689367390288397317619715366165938062041774998614838687639129828395562046185880101950975399738008235633295384540451895048217047710780536488057861386103189703186375516933080261002085127271481441702237912681917443131841106733537115100703453953908407254002411908395896013265264546850511845659556386469063597109931183185772255256269093001035805438575382390478345360787588460717585606736481722781187645430333122379478699232614458435528015983396267166649055250334932570201613709578907768476833560756133674507554284491721233187067271378746564635930588007091154267768614711923473042850578795406816496799999652419383572358379008829767727846603137132908696996753766134365413186700508795388461701008899462168879493181179342306349114385815256681805886354973006822073793531285437237413406056512662416681437927438663409924528405034339320714417881444144156616472365765361779700272807993711819496133065076499311101720090820971763807790129029633028182993962855677179848406696309282415269235123049583078376604686134829559372491986345226477236915754986159149752486977346490990007372072533890619081279037081470870595015780243139534418487913558710115691131245281530960805781394665225555762449939324156913294644272269057757358286290652457843648788724258191587925087399034873863838626282205509681134436409326868699486560707659889147431136190180477017107739187644092815033629899379997250916294794685807569517926956708710157655640890397745815744602792617409476244994454188114172636201882237214577831610645688343149626842338785056764651419640332549441250661386469143940529241955061177658496523322411842982139247493457880815342545773780409458820076260201141008605715353703944202809760217478785220842405019585957248131301538676850806136789216973030747182026633471144430201946828890175330908364562561350801416332633779787879721857661547607756262033341157352677934815942487114809135308606535924519054870004018623212190645587596589254021673470763102226770533122888611821611143977686346595376012730932772690315963580762085310904567871553141414643249285259545210245797701720195840372160544698865758325406233193852605687691624448685727490645984019477999858842074595617383361264575049778645646130118751223288956403841982884348823728138764909751416902096475711724977387778259091440801266520343804910372012878002345524260017561837155774201187433171568750588269245315269387218610115583813920135817881854545346224313670091303563189807848509603432960247442554298044491999967439172458954434073234629449212182723673558429329546233093236081254124089028261859956324255226980072172124573478806857062199076076787841737941024333105815580235084785908879696037526559255555543870696662244147325801675744480708743206167956493782367615340227825899560931265202006236270368329710624333707234627428764904879159782566095973627369908746915875499123692708832889286172392133070532406733966061902736364380661816396212422425204440256402195105025115413865865063685065184388496293737930355805571442922478995202530108667815005989298681816564406478312212551556691932249865849559293406236626030759284091276357115187130889673737934130098179186871510302960849142032750885189951478509795985581789076792317039196624147027243349341540188599496163480963058947272166979784439216402926987819570608663742484161387418809093351021406444497866548151345409830131835001441510735484209575923256478153385145580819280488123823799443517871182770292291191349835055104997308014029605551107845703283198808250462055738592339171156417345393611049310376671701725732252485586767865584236452389363017543931077882311308095232146348413962319985937678082152023875362064051248778795642923352932258171701392777080272414337533579650567692708686725730775201898611647831702037542699661932984282853647032187193104815614480060778425829636039703130971300860258829245163710481647578761157547272936687813152616430798335078590722248398443342497558338575230315691412928971131153776360468079708732312203210283792133748754117636466601260709969507891216979034258488773424273243716131185388380234859428376969999930888954629470695572315615126718224948879238790511796454918054111352392400110539484304530039114609107979636337031908287433805842078772839655714273773414702417481579501146639953599088073063726325894525735273526646204116178684609520266979394271621508549324910175013114426775866174623745900445826227891769361464483561431447936647170715310056925815077958845978044353728427354533422874053738179079070826824625172904481370247172207668978015248115359930823757551506809513826403150751949775196166977456659555955770627199879201818917953567450915777448535724314018125902670399029837413029630798497176851661220947526201455865436634720613988211248556674088267738708951507142592232920235740311518980699726440032359237280738435625059600441656127097794885828201923415999778019848751864900268154897552603018329123375626715895302896046502314560199848655858048661108625885130205197084385605862737826146107249553817087213631223723676328664456008718240850928129530195558874258388571374790648259351363164380060810253135953936248075274584304525734341181141070971950241407891991259694960361054450721376827564974203970720903713325283055272212898045915067569979603824163804193938548842899980242424348587842703475384015170547537012194351549841668281298983672360920672499363893837971863300352713228294759112506143384566986013582891889294030376546119605401140044849921369867536436917912144455767488896231699327903908900248822383735482040594740487468996994007460460971867275808360445047517734879374635369928508459774685743248851992631223160476445907566622215062863985631771297697533284156543002956121904077430205026133073246392376516849083639465016020416024947266960966414693691676205627921178113381969853900378504435581993063077435250681855732829717465327874112045510774618608332617573250771746869960304963610368973451626207813709451652632692430615325848113635483291568552316650983929098583068563953015253816568872801028159784245283473972304594065847274397328226731475641765208051831673663835095174369720821533147750766222932726413589533538347525114705152538606409452178548618056466743149623615955074835741766840792603801327502206355717039963230875983798689421102656292491715782418220879569530423834608593239957934764658186976765000522961515338159748430053302267671491867016002556488268096377333801914247031901723153290178258532092741972049535456148894925034719245401824589110976310678481487087238202936002951397663626991013736088018130589610516901086139969620544192459680715048050842911541077375411114016878424663825693949914959601818207284632156521623912235509477969529811313674152109764024162679056052433154136108988386798124019422131745335179141639482080975353769520183096892745873949003362331849995091433778651180578660138970338399703795098605144770048125809554745996829929925953904675103355405023809334997202989744259857243811952578810527614434067301972576943637170675151064683478599584806587535881544727748801700445017479977003430109576671471282862339663762156702371135271368381710406629840121198963448544571871675683952388000186962142625241244069307961703254015395670799355748260914669669607069912779068374169841382711963410793553243329843108075804196166709697249086215885155593696717486917164156507337290018947016832088472399684053216063397928538379672637823213782336509794445857071660494499561064422841635014027770485739930659482504611381328537350792899240458478187911634492957580070664829234120325670709535221235876127058890662686125699055584565704229377972127252146717260771962340658585515554585286003739803145038588287347451548953019854111859727786208940301177505356241991392216136218293361333161860144448265983859690971357187799938825887372420653419531312615888522999628167748827887306926331672974516728923502346373975195518047058685108645281278029191907702617838275237723969300501508679702495055525915123746408082498376457372610732765144568867455209387972371541164211803251016767960507768876733548139150488370062367779937980006829623488224016322301517531405883944882529404618502818032686889227250391084001179463925063686945314231243847886857723641754277174310475843515851017632302379663600153418955326293239243814667667330245854434841819466315144844070064838597036614255825244483759017742111260844264811364211942709838079781938297602880462303879008499745061136225912938469361878403437342885557876937345436444825444228774053048235396041467153059371827667965083038049938208963826351402993340093962443339285261984673206667531098882809706284265697460295905120138553982920475631281654505748718817432947789695597979907025061023065724551361512259997533904128775516780150784356272369523291374716441890332906552092724018135456400203800010662615732333915847217884381856578440894585041306279113394572933582955737524157309871442098739108484104112922212322202791925936475547320898235720455923702168897228151485914616253575465584757173741308568870323467397113446421212508422643659651102985229303683865975408955229926093606239263939809906922256068272397755748104017295662109734070039331034519460885405042705730130016494765679314400724746221169238174268483773867914211213924760181485511021636045138222310398371004202557246494784282742989610224144292830053971971843001630894851243921475026428056637260319999997001123349609395527118330103828647857284545584629904098562579309450671010334698005126104195929573074710543233240476429114320969496075988997211390295247157478543217187836495702591340704087868503150641881745649882609773174522232442080317305449184128949908291209354454086031283524376653855045658484011391704225739386195922478795533855075207931189561045740907515084710411124770919444988530529175211388231531142992561888381016281731150398664167979247139597882823680570747276962316495108841883265038019143124230227269163195073442669000812096363802073686619963097900457649085672324478735140163574826309363495603728909449803403009325410229802126782072427668204134148076773402227984019420547555853066780133654911772533814064361700615687526768970854757332977170716951512281524994586701253793087674695033819812165107691438377419466484128009590055925427646077479422049967189239154595619544588998386786040716644505130242016888985241980247413151662516745492038991437537362136968382065337649369648628482728053801734680091963744124408801521015881379154631304613492910460807494202398420797627663004784233324143587872922420761053064702637081830294674856879898121004338877792204841126440855380633383715031752020351227156386587388624089721978113120486510182729851718918115257674817762075017583640455612596151367473884760092407188823843336851370906147685287649205842062824759425418481680677364563673396283455874076752861265540059590294809541949109067846296344814421236407848496592515966883895944980877316281331844953936448730532398325906672217129838524283062594426086670570547511606790408252486458749768672800353694568987002937902806560103223967657230921437771671680341885770366361021111944884013303223127230738840529746323633289729427725120108375773285305068367555099585432296408508343984919502353086397957456643628463030133467086311055439945667882417836013857642208788749009162972601545562545036488837075920832978238902934535784453558557265459226690050376957178939197641902863286667165886043880069234795439219684554439835189546289917701476628919496380184823057350216068495156005010604709415933613854451581136804596700928379354613293194510566689255448224608902526748455420548507901773752107583287586402434689196869052776808880172935044563197931273780477228327141601734428783191984558902687161401942807563411128013312158139337095680028846599161507005738077655792403902988979734271816270975714964552426888061535315016585488380813797138580867844176091423915776489636877977382962834913293545175869525349171316293861531975767301451865511505724157357577428927681102480327558185294172326413717952561062357554005124881561187500377051646788767602605759240025753751225942243955725070940450627525982555411729762006879967407308840186406092899711208852858778234066648199147929551627597973815136523774218988408663896943722387936108378655358404822568125706351393494188730454715276165691380872064828443473409458361790417867758624160159414578574027200225893955048195337615709074606470272118864050754574282599228775605852456706437167679370143528176073989223299886714687503773173759372159389941782608812581634305421667095317716242758759943319300566818271859366001399356301378005209373778174507025623050327055945429008570315324090254585557477429956382618494786315866650472071309933538870915027253612846992343690094322108441677604610188599678407914859065317712412597641380124809823414102077322651961732825782307852484186150401115152613286097754337025676268945172956321154375462087390555804423480820344558624027651604465083039555069141845355364043754079782869599596115251786091361777967695719669760717589237176815756078935081824273845390356828105673277920592800946050174254878999964205747117844923419193148382962408757704553230799359267298951583397357910783765957325650507176205026962594909508666400232224509868690078351412551118650244121967168256495902002364113429422304316167575658977953435632796068941376832395232289282447471381844744660040183620287866478589306717860788483025869671075455129605099594911231882150671422052914540706200333256885580815297842544743933606206970853673552471232293802963504572865620575526220818493684301150283345936188130207951426245606089247206641858716388568625704185136302582767308420465077006381842468285225646189462427806554629573354465450736819128092649388908606060553518504231672544459496509426119216812873948699796291735745675946307786750664685230286806861936030520858331892453081708906917790522728370268757473506407615744909675623613127227288509959646137953817230738175627609588963592367991795267752664909646326787340312692165441267293804086556828944818609288596591961880688376909434298977788662105319082437127256895033493244701750026081158956143109871918707764629833249403241704075578181832618653283965590313992085963577150354761645517247522445561299645369179869292254234187180508279761570232784133966713269881434433867340545188660542325175621480260205293456293255162617872308099087800725378323298583731139665026156333376208140502174199524496105891905582442281577771591001000160214420453650847785037322509451336426817757971464406454902266478080789424718515460263277216841979385699072352927980465009205156371665898974083823863509664826111706576121870356277940961430944387585965972883006047372516285952590699660841799601057345856731279344610538874102401693835456943606229405127058516984038137608618351705556420970499364839844735460394941933537220485204047100308189978770828092896495942433636136147135914966634179992794361150360035796397233952140107716343788748374164379777829132488691313204292557027064865109718816546438085771073805809664862420620933621860649965297767265150580305998556022964350528559521871822494238647543548857279868802036992645120024903184298811986185791361522194137798612415466987899747930509225298429002825630393774003222493052472095065664618325756312903003733847244410885247839158035693935595189176517771523678618209588253639591146484503812942143755582263820881387546251495789227958209033407119991966260165012877560944017821219200365115926404369654608386834203647131385984623276014136583890500460902088978610397170609973772644449178945886510052258905548771742839429413014454487380202851627250637807865435652590996011852245583510744140342968444775278269912712230507332625943854673413557165049762910036970985681836070982628377623218075146925593081928074939292891588294184074432426349449577874065612135013915108781924810167114720203101946862746627587001589544953735603843087370787100697925529811643121117264979541353161398764411741018191095869317103028270703281542736143501278307833376851195018528659799358524997925691617802378698429269256874889596089969591043848899404989124813149023033677362421935927208212737437288325587506929988761404879715975172741858687806231031855703376492518005288469361184253304958824762909660919649505871829098541349964958437465608372672279647824155395544413288870699575539531103050131022740651236426967682328402884630766450855374090007513792209423474413238155074768346917463006879090743226641896134383847667609131191758116092138529412577317834781767880937307124059313779328234045568171057043998824548553380129231792599606665267946498676216614464192537980461462534418666846610410547252787484687064680737979658009718933037461205077443077430858542368275476854513955692240348149475785261694612039039974246359385878324759542462275065247680586888347851045466995532043956898130540130528664960664058344663718136499323364047115562641859011285026320263489050575282034783277283380360300565731039568159394266292357161442995023593350136317348296872743697159188516134865607941683897872916398465950497189650753743483974316553099609651982785712417090280086534669024450500969115465854429087406213826485793903853525224538540086389932468523817283649987523789248331947161522886097747038843814798259247636720519223805674645476884765443950288549938237099400946783792299920857895999389215009974128305030861937986031331444670868849954087962662453838653510471090835693759751868120180905690460081426747122961187912618517290443379124071115321671562870555524406495936373172846543672327480999796836787808664549882780433136380266554925462778681392738459855792707842308914365949646527565389045061829130827234102872950376172518372995100659440155131743490100085160183427792268892240064239509262523816893926565428102348837155087329006022962605926778113446761346870030552080854557287504273705344808617206544337111610913933328728135890197209265800197971091161052344374598072235564494553914066276105417594408928062650699435442460473511429517139507911394219536460662524612500651034929383929152867806892917005847818749503619998355917324671528329010408981872132755278295868317494304407529434467821522356154210403037280515262577076318039080757571102706344164707912084557221528614904686409927505059056126063071071905850645636726523224315532316711027585037047398857858343022013926800514420679663842773223210989359648973818916551390293780821405334091581910850887385771969985350203631856873140773122591461467449153620373007646083907264285920738172196462875874614241443542557051853852533695574745535220196145650579696147648780948453560092262091634147601962763911548192349627276021012515173494845837875247382660611958111748599274423627783259891850734667573716716095369233064505015089754824309791647622834416936542378798380609970874927841947308815665924175652111755591279473364409909073254873622260050860193787856601171726804117303628034165492655702867599259192592161007331404836282702533360330194637778007306240710640140258585868020225131771305584749739599293943529357271567993136039744605084059714809709228857398151978183545241471621338089539599681278440681965108270696591681522299196702521869720468997079733241328545579531004699064225807463718642719887305630465082828906270691948079535189577115030259675127789025138105049737181412236978639810643426592988611695108385462405030472092772371511639909211409580216725893060650923154763839843763151340275279322641882955756159837409728950256073100406627575590245765013201139643522675646260012555669093458365230167085663630308671517013306956078612604454645150450146742952858785084075750481880299993793610975837202675658443802157962270038011156376642013404683045364624756413793704502749981754690545761120030629672813752529058157164428204060324301494267961914020808603270505975667038059072962878546196106803648486498889878357464870512674210438515840321940463335411826637669489209411563828005376611803219227554868723360998974455241925994677794547772702072765134026027091719099453792370442378538742699748018368914766937057339664408919822390822842478656010004604873998598513103150779985211511470746516766474168335177034507805955156813687526502228593947296936145775922930324542515939114312320559536670135458922667969661647982976481856022755494234220337299301842952589526698283209854943531336133632725888722577023174118683019769923614421722092909691398597563217637090208523500714668733305689579919888143158284209310846575878181264624211176271258225897483885323420278384471386392888743909610160283802614489603974872387268005028146807132134884061662261018760013145428094790039897613188678456811619176406647230841486008952458457860612795948578228907779297829596222815272423782039288213399483884510196181423149612596053291224646912985071098411251123749453482699377504975431159049664042279008854881252636295634817960999053062174144153665986024331340600628494402492191392800926652015759009312547068899430310909393939584079758604687853308040916358539556301451464917096178530885371966058852411061471373717128225473672575927410302315327831378090322296199701077593548361375498458261200989589400062448397772921039525370684982773164864742400558376620375982899054701489430194917645062670761516585826912875227678606694205651388102341900068241889028207271853265277512918427089379072709060025290688778972649670352459864827864646268679665716040352383243269350136171372046488461013927363681525476516430433404569037849081276321255118902439247263657609725323191554384147277019776622313926550969446261272961540324590409585003369692996303209846830281516450222643368664776679268390342017445548841120032274801341149847371937954938541964471789034769469862180327697800923240607715248020871480306695438942492505182119715395028146128575770653640646256651324894955082743093093743860924835990146657047884199817651499600658984655531681940326881992490830746366295416256542940725526531674275209582197695746807918054797914741923817655401926299926553845634688477238582208416871397450350465394183884098169451412424756869856951232030009989595208924532324253646203294122785102590950833655130861796953654118972740517662387460257936074686527092474175439171035539996375855260808126770713582230771746395759178583495926725568050727267206666964211108471569743792306118442316775668731511135006765346160310272698407327395803146703311461839680905375488275244673171317724011066989127396734697410767028967619391777408904385518484792979303019933254395812939515348728352371249931516003636457153668372816342762586652073214087785880204253629869130827697360000318236568051425690889418316187273492791885279494486412824204708533862303874046422650237257757115023359334312412222738679780819888650437205621488585939348261938562523493283756177188987392131145290775732853884932626833011151262018614850081489331861686741234293836383326063865172583768964371153132213843956401644695055357812657096906543068726278223267073489569791028552551516596910826449413859385574860470172805957931358109914100641010472010343131640130601532070694424025767489361175607173009927632324343096489188191068170116959319553605142101182350542797498834564119451973469274289299773155256719475140592982591146523340336761025554143863445130518165173034368792592131963207260484925885061437212938021598292289627764044878681894376243856649489540956870161456771594380847061562075976665787728110188559773721554324922222951222292729763081890918670891503400084020866459190262691447315665541537651780844104540976656600886775203495637612752892366025387535533630624970752847966948241110003482954183142779754552446462823413858018725387141691794990588567858703317647974352799779768898193667677363742498459581755504939401173888694267627568204391268480147457472912099253367302231000098893673632353125392418931972724217285214078553720502950666801182456263710283396182391496783002010387433922402348659729531200333200796344480068940420531502947267397494450463627886304001304036597725724344734637082037430742291456173457231455900198155503731558898401992273278240644031676366598994784555887463658272415794072866938361653412821033066767122265582324719463083403089010885713889775430830795286727338286523070279182641740575747961245866198249587168927136540161036699726655570921226385961930932716550408538703109263942520276727565883287292687685476450402447683081972218917831839212390992768554074221781864489563548537127124809427196799796177897999714734064481979557754857187801184816435408412824790452327553290189552056917103765116661993142114946887735204381031684693698323909091809442378495835151155297524116595037001654591400883478328651986268704497946481052672622358536016418718240053610675653283419070582964655933654983859932980984865230141382951232490114988815074127707875892962245992597516183363025658642348450263630025444228416041211074233528928604634977820609789893882971940387735818155842388123185094360650543487968036528488577254656057636813226323078369090932618869043265068715647838219245211787230407614998383728432560199645692548009533845027849242150966630283226343887097040179312766905404124336199020761545907854243535408616427950477157299762981574188661949335840626135064584665263050923512867323190313193510386451292442222667592515031136357401967969126569721117252771790795708619050976820719671731548852643031346938460845353942309957386718575404765034576704468317326069454952940667679056020355635645084362234545131020332312329349950645177562533673556725718968661998635426198102173496258414069098418570379485851278612655710439690129617059824802156764602688338150108369578400346266227695081282241704876241690027753487026609543399176999175924750282680002159986831048269109697781750518648589009903484282042724149399086241254334938609915580281122159226176861544465541332997603178728995695224462615435264662043989954881640844668737397160656553535400565746192806306176344281543805098919497069394876158535588281002610497421572027576472104109829554129954816463615354015601479514118921925218771635099535127999389757837401385975394447274671306490433669161799557725544041839243508752909084190821547803426769314276460020417235486663780109462292181119604636828380569921598504761791841427286738544593674771536621670297163148324114642817795058082454038636698318108826053834258290395331276151567683334966922725991733235437050556419569757361898464899017938435544506913163879507037408745404834777864572806964894427936147404291261497626508869528491720880224288581142933886612052188350216412411146825590577632972976554540080003291359095334860961525174417434411374630376012975535518169209539588575426872377222228248304791883241124493745040452065051598416069324119174949330162556616072890157640749739185768521688276582279783396533134317728005482227241002876094277993409332994663920907142086066414993645797255398125975474019265470541994337977366304610604152014905697312835643130269451020604346355174419111247819595453447511046250021111970757691119891600929078285343215836271745462987791436414041745820164041360091978897291218041909882174604569684572877546025734020188445450976032309840788806878076805004112023861686644883086333559677908641773436546645942467801789941313678048741666247210584205535881771619577629725531391503158728133308965406117605819831699819260566880040548865722790473858239914119031911490084487742445330021348438704727994596359331399658163713054616857913520695727715748665567529504866524818840830050531612769574270289653997429130613401877963662804047270195246785010796847473837257173593648422296351811195622831814600085995851112515072636791546733854629507303925682987699296519837577583570803861750118694025363591608788626216806481392548874242513367883990687928547297735494632436520998924802496016120867851167418366107041156755092895118151934285460839768659805103927009333692692188549257260166918701930487990632141257871859815132271450867556734756655848932335603897366070810157490797252365719397702697535534876023001877621706820132437207348647769093727029203444744967522480766200375165117018871908060376438234775756499982127155005058146758128938801931340360605509879685371603744941486531857347438081008303248268569444468107080629182362900746513428804817057515704666667600451409216330181593097007338112273995122176771216338263072588458874415604301167028154160353628909776699582807028069026534187392552001990553333015151668679041171049365058917700302733198501869606475470644953233738991378145427319047655477811071061328671488200120628158183178073698266455025296728171893197333067601660357860917338745347434404073908287393092770975355998900617888491241679538272372364456173532819167541514831014762697203407619724066439673013920394715853180493985045289504002019637041027227584692804242167708404434575989175737027927299904361733397339880360173533133247830585228557246048870027245442497484947810295512144133919563111835255801632200653120864034089810995086736459845640634855522008538686003138006688931691873749061561269161367188669029708048514462140570121868949694028414445022990615723140307294316073072156674714648244986091993403685084127678190596469932803183917726802226591774180126675140511496852298444260267855730910470131943694868141100282526315418814808682672088453184448376604257146735995386193891641085080585381195203828227204478506725783822043995362451017443599776836226228188520612966049576565495226978020203303680940522031704743476397709318104436586013549114178057079744912627029440220578754642812830076036395777999731558084320341556989753219481534394003523674878210106946133022518433250671236063810300934016382991147495919435516664066611733571510465138248760813418154910893403775903043425017268099795529565465833184464220236323803985905735550982603655709086888814449736091251798506565701788614625195525108673959663924839664041130718221228699044884563605982108965546363701461995455536525673278096786866993412316314437986931655258715445585557237348753386695246093019065039615904657055419707964008211535430086706769160323638066935156157513742382160078487542484316793768193995788850054007881137882587000174892108383289194423368382557985875661494775190189256969067162928126610253403838687182585123303872144506754108950564477609225593682624580539994296221621224609992135899315299122520054398717916152439846594973814539324694367261944803693191932888778602459915509815884171252125390748913155850476865433349162292047232696674070561354379919653756898786651713310953162047701578738452311237695057052467642986562019794858482825356333714197294322445199396761621291967055805065354527886702766292488532558416634746701539145157541781271020441040472023201654932830962532778150112829339855597882505496519279545953540334688194278562532117142186893935669673904932560023023823823776209838581725050440103651262166137871466569195890724893793911980148612181872128793871971828801457656888497610737395752753265135988943348140847563891132980123215378228255911027681756916456563914228075406288973100061231804848391929808771764269613832429473774279838745629544773837429467175266573688619138958616554366297645901101503178371685066653781185315246567982075110682615047916307707013839519991750431186979763068676441411604873804578919834789106880421146459034179920688594514818423132496793446828202166349810232989654475289017392376706374361473190674873180090905960356101226043536256666771145795905514699318649634839794623230479681091797471284489983008106006225817116214521458506983252678064136579931957940233913527374894575361688821397052202161887430046724008933136329342308474321773167207901848483017737982749098503186641501469449689691759549916140972884023031100647616146964863579515445901374650693132787060630615380094454746026045958976789170206352896500980524728631855938544313496659109191354757847094918853083093134468938871896751328357137420224083376597326207107893890867785605258208006913887158065946043479592581331269156062018699817241047820556710311907826641721143506431276335353502290800086259163111289894560205099803569404158584463742645735360323213255195846644537456128176787622519888718549902706423192370913278738100111911083622302914495245403353396119704561209199114606908977028779936263919750452133804619692049254570843627451811251401311127366627724537986342823819380231308039479984623382553062235385400158280430205133914942455787183057111909788009100558693552668742627761843081094357009056455166429148591773989647613506961211796353747797864518006130297193173379279343879369542808036245480652109542371670700732194744656137530248650930110168129753573223927412669719396423063379164641114922381450982812272366984550191107748794796088320958197668794613781368240922384490879238027504300876259024715218784470441052657580123284522141023173547260120415618010543618414554571301839405131087561864743696008915213806953659388362043075026140954799638844142274917382468640089330126843468273200906728008092739607517013434541338939891226355635838962451372588847984794819885353575272185167334024363998813630431774259023474384671235829223431515113327775602762052162036159322083921894289486259006474492256442521600142963525846808855340499515964498957069644172803165946111487119577137483701355683229657059953733245536070150505958470470646571626728192712826526301816731674791657476181857049656414275683740574934120788180467010691230780152743821517744076323273526627326618025451714076377682615070620763271985217164501750347532256286266462098014428590870782105360527806250711324778982702916206356500164526255009089241258978391740622401738670093446466042828927048661968311031492640843668152317617192360792293345964026952867711266600089819058523666281970421769693588441611414159205264812197339686246748950839085758598984098095216283806021618494541742663728449017466298630553832958773838761713903856272840942981785892395951115122310998504335841452399924060412178290544216670651094010034468132078314135566681766015932175078013526480557602869744289129922038674448279967006424645877423556473514770344267176113318245935134218202089929937930262069638357808866139531340464103952541817983045336754115187995022949494777975306395007503588171343001396552940208965052186056072243112416514170563545296707308493073290113718048036699902880798397113124095163509204390057664842780623579120490798691766835076311213997184328686112217120332967893167568770661140381836329645503827270724437416030616497030759988846298649169513820819049331866349685467245852252556877549721916029444034788382252864567595349699904739918259319883479535048266183628762334458124466497105857902766204733910776315755669843044266149626071438289902112292218077666258104664008132439416150578405902837982362542979642955955537645141979270352398404882605596153444948665186965033244190171652530581193470224210994899868529673903346348655741271839145652528004704760718389410569740768243402581643136974326569023541236882421546439002774021500657108781553155464374537003423193068022333818743242687558025042380507127074329152449871560738662681908990219676847107530736767737873247181933378550841147890654268103957319693987617825374683596180095278348862706748098892852831838464230087149969570352232005019563088304492950976413632227166568769635047596754749840005040720318275443266458554783039024289769111166576495720840743111039934582516801047754800905994570018160691027404572522943921753707198564184975747811391019689518259372802430482622764371318226122519555345531355611526661489732815483117736330241120368761245578184938367684471040371683806840604151021138455058331916951834849937794308197121386798129876403655566445645044698618480878473149552777526300325529232146608039576999704612678734375807725873236438934156865567170125516280117822555615215886935329327550732498518276104249242977059686723145891139602442496653313254851018071318149391851270278087419682731390066722882988316502193661217794363537179990306607574778234075029222187660345339211716242761407769031113753702429207702369874032024413356176475886852586669138111833705276519410545106470512826717886714956999268532087749185290624783707020236574919173501841591925695501521273888552621953882292360788269265837517342427286887961174673077592399725464225197201042638151462340948482484990221231032028281539435185156818006512318963594766189070385807934815649215555150397943861775180631321649813137772961947613555352395957416147629184283929551943022004260846905059821322585466043661367422416935012069257082113392792087917009545306134598118570469064877336987597423978535981819358924259131107396519243633784895865619433786667197283783455030268502745875140424623588798016463582732913488459874646884576733187241253136406926372422010551378749951122408152460493350177437945488890765584210095030527064052751841017083910813750747827779022866870709705398957204921546308348014875493483426496076879371395068710189992030240467222844074149760738921698100640156088494334445729593114744882226631745479002709925854767962313329162660549745476309376394253782829340995992489540131348157942066372227507871684440398200387246012173592300599727906507666243428993332690238545934959279353273876131446248104909043506737667538209299785031113549413167794979301308328955362293272002270258071516538216129136591673006549886079735351612085651018483535361410152784850778725187757895210105329735102097933157198420654770950110660753591136713687249498794165397663650263795402627440367170342980606997266555565538869970189843292729673272981874378023678982511707444479944731027079373580949651205931595383048557973178262312925026223619177731211210337831965503499140615395623890963264435135100449154704882712734958311648723255570673095437396723892408421884416637198594108758028166398460735910442943187176072154674187219716747207572850852372248638685090512780160220072735205247698282846380311273249249572241130387408400365758712128498700027764581382797526375294416792224123144642227573411428195501543519126575071221719982288165578792203146505593446551487857684665259300028317910934293814450352042573835577990890866603520475918903791880265387901626643803054886314221095756801057701701136906742612031745765242918872685946768302789218587183701030731452892101858782856865183178601241603138452399579602762973405162010225606765971889589944055614070133647639688763977187711993322526538930885197732538280928861336354102683976362673206816884143478877825261741245121155681021404266204209726775181138545541969499856979087615631449290846035421502455044476668918893608756714285622632459928824223935061860583229632650367632553648434003017147791660519038413683782813273693654786364431261834253335896321366860289267547646839455768933806591158984205701781424158775041747413539666125132965469901868501682399701962457376748551763705174337918150313133013137735253346075516672366766827342374311689796966456695702833626570157790068889653720251260812748145002288217351234610786961608439448005297657434267599881171128344986112209921031361864313258564939193781226720887674079987845419982019197047438006148266488895505238642251594542882753743604113282127828581000248202325171060807746177184216602660815235037358700191508521806242812803447239291312562956773809631202184214109732186252238093700509751822767925057066582897445346305310273542240838563184487594849488705854051093857646267040747012983578533927638923951973850404152934126386384528860981343854310677176869924552443166137293149943329390291400693825542112573520979872639352630992166536046072507887165233296993013213990276133782322559653659537590995465368339792395339114089489471970839322631832048275625415849985905170297957739449925245366148781166174451203804324147033734614257742695640712426769256983953811962791058704983266259619185322488596637039756484966511454040284953754895629118414342650180857891138159481058527228672050089285712108642640110482466238992717280922872004510865047737749948557778888892773625650837603009314752092258658365648828729431199478861214033517777969304567528325832457939836648386960701193138537491036149174020974620329539655596303880652748807187488053700426915237745677409941877531588078213530205237531594521127845846837134227796505244001675857977959788716368944103388142581636045694063030086545271438052572204818662064148925051941541197819248440454697911525352120916297673906066284154784618163421665064637468541059137115904007365557588621476680920224471954249702208672508274772940651167441490757721896859877144781337946889588822264648266657169024836765193805194313896953209310156412157308720991708872272386769460472405617877156985855268957314408045748738881429065827945306695521235335768386329186648532980425923056010982479876071610305790865014891604303265901324839035661595468546925772084413915742873163408445732635340626082690170265333924573067386823502202394443184265286343513529472438036027652435949913655075558297163689858063553174508017211489442582689228430556458578165504836386186885758316696708551004722543557446943977228030490383754216564253638861460408484888445630624932952488333946506119643352494374035790710053805231228731212539230641320863363485288481791157729391484900334665377638298055753598801646337257762044587178890720276150726350892300929859538352226352902257970925845843119257597494182755200897342335079280777572590843981905837166215510261627275253741265498172577715430547119824966321438616977894592105908805020906598413654227287274011940611304327864173696543321901850813252108022485904978788268997684332733138221509913497463485774119089989425394190041088931482212973663977930580158393644085534041563166434655838497573830925731173600323591524337163794577931520506221384639125176057211855249859933141389927131135347817987435277805139377047513293768155023779899920106145858506898022303794702589635790798577273478328324515747387877159237801746615955794643956702990217876545430048069663373972702100357239998477423648837035961057234209642315369746163652593300403934573708214969298178365012770972823937616258459418850986784719054572588092111675643446934484159155260057360597284670479910285234569029854131242763743785322924493431177589609084623089594996117656971190429319848386844050520118212528793788938661609069503531721937000668459217024632324307360488076761402168019322686862570401741907617340618754038135852463017950762589002881199394794627488688783550889651871192988457631664634135829378950472682095410086432336207409413468581506360521910738431501829776648232974677056315179630714726665767183906635801058174507796686932277744418577024438184565401834320385298474712064247720348090455878655325858453282443901562945663856202316472529067479643925697998992179132883828632705393588606789332655088730403492434785469418802259232816092828419158743884417250664951327471272887750333659445005672964109572721309829018361944685739580125560217160360732556332949297420680305474565126964607530144920791924281337979143342517164663855686979343172072322556789119481397043278246792230644027374934427904002233265109271305693915509919142974098579589166092468352637006937455583374439392734386994134822555561277539796221253322472561046338854142366418829608331956123041564820388130724139840617081174192407680426067754309744195028618320164897244840203663062698454018676959439618635922718429875464394309945297926243370438691406670102448551456865283574748700982481389064782324473475265421463597131535201213172030936915045914533958854126831810130702881088433251706104453293680135878097203667951377039668773999423189844129789030557628052639165473506616849740833561341750948187481471546033516160613214679990335757190080535697720703796171963955084026090206737547533585413093488387497334379374761287607698483312029502522051566817355755792326598979626355356379511714329799667601120628678993168984679064389833653035465819739263612962838825383151961619921261011693971896651130927759039600618345188855623988563069167830319581583430350424454390304098638857790547414184030721473525251615632088364350139565703408910563783036489279746401373250609554652909542683861488175986921891471435816239883721336484775222711631257480078156317133934197360729190052970260923769195157930043986872264462253981920906568102608488779998267444855287699540161852306402178912196681429299086387222355120027214569523677475063696563349287196907721576843241959808783055361577895229828634436799038659373612924407806720464154702637987063774717924834473527838220252138095288039963569809797308313675131209057114222974155589850775883366464746360942506332130544489064219549275557260523614103522467375309592252892894650462367492339759851978116370828610805743457859031063098578675947134781511577703854139568946818537269223280631802788106562171313544131180192653489739370258880571174608739961250412409246017867228018154047121922357120089736859302925390341268820361529683608272753848454728257729375318902846748320858401653347254556092447100036542675820916307626234148500597957591719478192392723089472149337510824326107467810223113133263386427361892707091922799325094291834277842703190947373489458658184768453269396819972642773533632823088260614433396039263158075219153740618265628144391555808504965638987585449773490731273287582204037960955282093269289270243028825891110319161008718053447536358340594814714761014506751214996463765788801615806309489311700852251100724080695496469146386058515240211314853714204898683135790680556220453466061517022844581043764441563339104707845452731235700932714548839356505002267918393937957466325508577216381935753806123350648942770059266969023101820373454903404574060161633663482825802600108482130684834738721458766163923532151422882515896080289604307252332114745147212979473135886628592427739685632259406296183100478210881209508642680641673541573230056160715803445787493839813468610264303666965516732919342662668729465743863600623831124130214543865916610697251596260837802211370580216685406799611063389157258207667676277247117723195826367212701128208932900050048816621121040466886828731502347327900334324562115252269089001689004544070180561258381697110051563149465121066280642361069299713343306701567270240620182445139179711722832077213013582669026689657099172350589934097332743667667134741899888236904127782293616079814091145428861035191591148692300296366411408196807991924014943568533804927354408410842413832218065452828814910954519523040145313833655455900272074099343897302065270441720807106097706431822438404070059944864137105157563589130736092129874088657359092105795055002106719157821067074536633878151397646052764854592798149786533637803047371335671843789064959305660335414429695107154408531296932106982309707231370986203636080079548689854920427645176602667171191841036375690408572622498733257872843030268259543922463736535113811665543664926269940078693437959355597965089416679187585721495376223018399270481954028514735420254433173656278677465542181989962051044119066484654598624227309985103251863316325884437567565559117793728636007051439403571891353347756013190886265581351261279191518033651610105793707097148571318467519436002560499269670749907736687559507134275813639317504169074872888517005683373476368515660087784744182205539391619830071012674676116210411657025213088610920310342163104532096459238517427817935167730731177835488806367135430480023489746385095254764325863760796710788580075608909044127095999445725791397267110902400243383392403641979985234626908311590239050124072210595618526245697869373474801836590577780331789923979380481398346519072976917336039678681958920636434089315441604633875432562436957518389849220469611566323309305791386074727559608044481603576076713426546849484117207201679384945211832230242232392798379392370286408172436634568650640178956550901294371215093687318116512221127597885637062676042035976858862338270556639078741552990294444291290368722642258742763310574447274561006054681262423845571060911709463006856753690874822968591470838822317168797719278808040818867230796382994003038987669792218195963254832257945661620470897222879824226241973537588031341051993312880864735653697030316328951553638437592610557099963353285227029784128351987335178278710258399485023794295574989671777754812444736829622206852849218074024623660256053214240595863380790361755759275079930616704588120071977264596999331688571226815884018666517796111250221442234245340876321026270543290483466881370878059423703937511210443739170803537851578330645314840483443522737997154936729792150149807673375865769144890057553955388477952197798693597949335944360042247537392108940899539762666680944054357142147969490779627703378750707879993270527788218623391333767383849408523198667152166712640242687789322474684025270670534878315806451623157303100868322700315372317926337919206097196454326644737633419674311836990912093189602232488575290098052702727936181356505875930369990369615199621206990151913249949769368697383269534478572589320828754753950592645079852462530617351697297196461381355159248522714421806155475572286794724861543662206487239034124903744955797221535685570989112562468392606308459653298887202716495460675514984054216962435521134852090554300067470239102339232390709764851024977392440332582152737835250859258272736459389375038118387266362948495628701419257438322037142365416341164044511847908032775707383352789284057533216003909655083933409770873595910069415649012155358754845553467640260757274043401769861174180574348973772363567245574853115978027955659997490228948047819741624096435196147488091766673631530463621021755801016969630395744402524385218606026045580564424871603154606193764174521493709634187647060258450985376730451903953702303117273494374938082488865718977527705067160497571757573512154201829678796480060974623190616884225416096352805010525335353293484613154121009934123098689991710293036184541986549726700163418092995596999104319528162738724582388688411485967032494242675879874273016562170852133954910757116030147733088272159390780461181540883188532163562116470312704861620066582427075578342191797053116236134497444651465331632516366964610802545440239259663666830464782236380297427222781443592128885484387983182163575262283059274646756352793282346270509736151801193474954398045837873094313443229250016462509683563163957690504934480208098178325828339437081427397250370336334494273936007102894678503388593705527388309529222936772024332816483847963175129675578135465121527092743570861550086164183898688912811658694003390448601036896160553863032628777745445898866587352716677459615297465955534558495240307040966497510615962607157306521349553048984683723916164087307369793127294033230928915191484601125384089746954425799569186200921657078785538413412126735829384969560831179094404395049660276535683821196919062303234004675191014148902054930251225067209483742052891818039151276479872099198794629789527442807358484706938830290082646959017531843856184083214994699109941625813356973388683102264565558618198695132168304246572417273521850393110518717614304873943917596392328442739070739222052579837207195365412669233368886739435751034806069197784294846509964629006961142614453616122395421048385187908150502872493360772243203622133345845259089084690063717049444635630470422948823289468745914810588328416338477788811566252905523838545732107212214495177991877207291230133389199764538271742053770846308922075511570948063654990612304471598529083968220474507287792769013478510802175409456784221105185555079575312501436714962059412229401423591230847289727613368136829598329663726426833527764922262997717929931115384090154780690433765264497456562364423604429047284976648905336932136872331908799227992494429470513540678407671739295736170190852105673080616631413847335361212048723107720271514241386458079100311205344467035225042691791469253607424751753599805935443029182070614137025460540436566436273599461164955450777560416885336811197155922515857263658341918987163216418222266901428242631990588741925494179154205621029951249218828637176937333129525487799295001733530238252724622045447054496476822490822602917656390396733612093329380942116410611603821314683442141850917530596775367817602071262437870475646836288629342146417318705323665014041132801428296285541825124334057534280996507401619566709449202232497379678296986311037694076822780198250809651762416055825007341482090196430646626577181993362431743408376132469702076261777569380294245765286117183325954817735655888357425171987777682949996084856112262096445306874045453482250333980193594915903248136087954074250941633728064176835493342532407261512405577037548590670667341877017725080918133700240113546725550804794308202665519608228257844334952043913303650600486323624854976381963730937529314768536640731010082303072710678961486725535248008960266878621092415518708084348288964005726136055116921865742925074478628238597480890362349275859286696352185811781512789017956147658192260046357318032864206024210567515621593247079344495281834882435283430028295142516784006018120408854489199988269873792403962042393983782465646471117152389457205643198288738945684594618834240672927106419167634452071153586019048845790743368153352923416976749973052271145305788925951259256654646495990570033423288404134457540144210075700351300258207192787229574396709642211229129878825639508896334352029136843773772861812996131243128460040383138603457398842696158066926330740637478974127001509467299518859838210403986228642431069966050185704953520375350011484985639896138936247040843248040519278640991643710272900611359400922768958132340207692982342017135200093903113197725298411332050491988597735137189388398149484754753273449624919613343570456036698572042210652060585812989835876182058710076372654762875525241075868084542287624496422503717762847667514009793972832806571670037747015242698448639936206149659035868418578477549489801609211280194443652590986004972093840726018863344194355347444766477537647042902298920800764144757159494966258719430444620761531672357082936496597475544377417450448245958207056430400456280935826082768218277491480093027058624225267319500113052274581844218540262693174900420416838559132980233042052364948063434439886156766643654579511400300125311877086538836250377817255243633369108233531606408428932742730942674412257609091098573502135182553935145661053922824223007164971484138737176503371784424006224350217157724005228738163278351022709221255091577302504058132225136615807699648379597014720219759848088506242880339653461973879625373918762879004628684660935873323055742084416044121986835982213421830851123778197479520531559929831381097573499709244089076216666916313270854189623373641566870351269985560615714375703479303679388543679099545958386039958793703324815623295823890885179946678898010071229782031583590507575147401773477798929468098297178448129036094708582419922086862357221349247317588896725702678409038455652777182122846790405022858344134272146691421128076118771638335158916378495518265552752981147887105018277046608998010647178060791798380202409139906923566466213049855928084417706690739383748394285391265467990440507034159944591348848319701387629077380325442669613516206741391515375741846595743759824060580040787544770967492267172631871884750281921530802787032168753158557782836408312675948119885833527623917405117709563398095840930507751057954639322243156596043757360426960920271670641919912801293352186986353936952966871063111818889821523740917097988784381379886723492382386003921970605235273007239369542494975088317576776475949142394157877994512075585748872813176087428256259889293802623494957580021585234611132791675199933086552810113200560920135163148471936197868957637503912096460586661752219401920200162485914458765781890600005121855646254308615420275053131209889232108338527839400316192491767743919293278678355178950762449375110893435618952211462675748775087809722169399627917231558179102795278776222077660245543968426395468537632827426496383613328013196642543748631299406650184425933590622667793202864113508911757061404859900768772929615461520906031346609780032024695801620157422903745408650455619284908948167547425717906851526971263300331604900671034536468545781272521454360125712298644506276081055593855769877089420613536725673248850863819370210039889864538283780727454700680011098602970827336018160420927272661603418074916746826206003773225378466592037529170561284149608076589913673815126096904555316737691878900907979521998553985580788844308439973448449534682649406407882795962248648542483972310363816996931274305009530356521099028400614821904480491094999461259843352784246358956253209395165752160912186876656703150301067928435850715950309959536407596972384611704913260304752826678298717621268270835314454101505593002692143692688521002083800447224002982299661572902243094161085308724974309895425074343421623758461023580230785829670266245627967643343946185638642933094653250518098296761805681006837217557684066340223735504236619224786053775409705173638194531718306910640926113543472896003062672739430632945120199742616552637000132658319474077756251391028363299601592763134414894781878804747543877690359334560428383259333672672573077217582621274192987112151678214400061809347789342618154639620829532429432592937648355843829482027114051338781242446814849957106412777102116880514098708943033469006617372128447649898798200981094613630622600391508461886072551097344843475840670965336793975320643493698161481409327699976802165940084213189151975286765589541803790382182149681200540754200891971414976564101508434634985442438012392031664908681832145600728138754169725802451356896775354784323856871641906791010768546985982471669894618054714527738120337806178829031154717042954517841887690481899736746834071815490636047064678811876198693638758608185640383999343871293966611537640298250390555846189630946432234064111751771767241193489091255229100698984151179521779571768541226450550498318532388843104351200188899933549180251842111977721706773308077650233959540150167639425419570933336679374717035841300537433719084373332750145693393647235872479876108395897943828621749165678743734043650255246960643264833288951647429381907861649268838718368253591815345681476260565054210681355719481132361704763358693180727492691283509603067662284635112382239220083369542761466472320149647720562894876807554826587552325916213597420100016052746665841875975988897115216799943404045031153047843081057989852876976327316119745484023847140854799355314059152036503008324137401301430034358747360707677452819162921676494473597240545466640752447906125829231503598711699827234755583513621622575751685093081952321492983879604273371006064610654581901740066902487864122957976643570238703167226155817879926622196555232904358800580526913649839636122124453364357782670533714939777360805913238918561425969290201470101564076071809690844182017486126116526693242495950597521928674791521690138126852529234558003777693268680456928943583876798036182994550669126337031607451268927632103299015622134445644423913811673471741751196438159193717449931129084749540013569667224783436052365684289040871956852851177004910936858173646539121664097932403743609432749406675958446464458476391434252721116936860128132952956835564881129487744412378766055787452129047364235566086099160928760710707176998043436772069191267192543758925516128211375179013042110311304396829497373752411246870854371578419638241580760385553102526541947882000988633023492777773005211547141611694893509233366869792190373130973733813768749703593548981795927309015011041076323414370442452959601609430344082300862582756035339182678767597162248232966595197458713985901947017888231357523890496967694370472301619851384486112122070734162483663315589302704022920003708435930638797579025406634851399910030567114085365779758486896801623814332099685831503495628280072042330764281103115184517089200881651543278541561888021593493337944232291205421785928237440718328739955321599029521230695663843459168408992970063535702704625870703271989419031756800353532424746975580219650837200964603477573978613091353076077087078941113443377512900921620086184150811877599243052118753404940000957701322900557273297223233681369252650647646222329374405064935137252803250925880109835639520519028486546259960725998931030768217110863961173483910670986061080906373678455414613739903991101713585613677350223058737642485629431386747960203222508354479220844684726776226984264720369339958028976447041084846979825435934454021631344083214275643738916793983913004628394454456014027497830408053086001981831702740337766371520569232434824730695215350883480922776694491748714099479427586874513562563896905720727154409086721245848245284197299872352427871904077068698213557430335009993226580155965444805504656202466783949374360365995730492774494488435071620522749580525384468765472644051937000635625817685868428591955377940198037942496446681076786250560611839429673183959665093804867722774700013628313925091445582224304110210179057560621066122805488048510872663512253610971307947647223592294228208433497756555801151769454700271074104824563233790129055658749372973936041739539123675816028305173246210402820766089528314656228871002277259063914385552892639631022673694326015223685739914169703012932106618920057177749099483977941672116725242759986830378807743514905438751378587662661372349936537974760304548006955878130577941998820795630854566370663760255951042815158376051512410502212876026224665261262101275933164242522940938708517437256237044812760482123983732165229250021189495860559324227794742158325667272046928828614421442692055664061468294619363152860519273981351244109810523212834277113935644162668766463470859053008970076147807536017583565819959699644962782908955150221301845358316342720375328637751971085447443764147905783733036196892642913015765045636835849104306724962559621288186323878398831806242036222829322369270722705497517715993650080875264683689505270692144166558653655309854404796707775187099405651675539410008615120908245253016533835964339695608970310870728795046368316368579334194501921234821383019530450970901451295381124261462761969658674458090083967225743923883422805160585166762924653230374976654741581720739887862395783279998990276601373403945665972720304354173086298887896562655370880137110443121122423691476885060663597044987850406761104678942545460307177919824357381879982295216054953735274560949790268444781630273465887555604025197969397899740562244502697057960843511219093271118975765685259884394635225645744803231748365643661975798252887375014682537159656258171055201154095702230118255109163840219056470110061320123657308019331683073864267256040751766855421263861485507027425690565551440936266292773613358481139519693852936924717471139978871815489518678414872907103906782700181418606747886934974328398883502633210743339067744292803500432361237753335248106287080970186866733826687132937926531303284993926580567226048037926608048206472340138816028529112591920610479432495502679046762177018979802332963889256696507368249895203542890770560941409875637870516608762715954744244809436321929700902031153320453962653817751280379614838384367311295917083706370846637498365747569767171362526696011224793257433395907095257856609438026177052017558438311998374377066651644376727097984234500763569212829665362620427188267934468269600677768529093241532260382342654184603473503881383907851251575014912428467908782932955692172986605806869012332000115818929281861583319721266458637610262850187557250619327148122792238869281538345824762839611838947608695160351657653067900197534836088256714709188788538910226826241961369326735293486043464853462525424401922658378049464851909341578688833134768796059183875692182448151678323718461019695590143036205269107666945683045706674325538501025195500647352740168571196914060489140545346224373787359296650562784865595391434809594482129624316217095564047521729651343178701715441701415453372951784807982701723351058783721038769549970166300230765395079458388123071349158952607650418551659269130874541792066218440839511604266020130947354721185624853531014821668934996993369731564628879023003343751389419016614748921021731377830248091022601737561503700404708059154517648397847651161802036196545693651944912819563623777631047781005358188475758392149989965234067071649459582708187959178075359572313273346162342648631658588620827448906187283886258036141487786437133024885303712167075772298645032839317822869430836713164956127403944364798728090837699691326684599940037112235349054931632591600469068775241278704865156248019601717915388527158909952918334757284650092900956115917764466381988286039545634805873239393657783428203357232843064154804356327216040429400885624548500958583617579747951523372219547046385000067278028757440299421433397687028027600142754891635445111447009985243803257574755829550626090444346283405801109225436578056557496698243611951052802459921934521917750335347313070109985581741489176427004943201051170659766135430304560712794212153865423676380631150122591809611072849777035606541927702898791524712568578289737958883142293891146514056002191889892224305676780321914784953811619445015175972398421026564180890745780388180248790549470275610622059727379137885661187286906646335159178201190025532167925064723408093318142118592506112964422168855180324337013838420209486028179299022966846027868288352010392115150149387526429553056955586265050135288345013610612978794065870301646911791488851800491240791941550120501614525894358177399487716362108107052336378348870273282642468735139528792735324777719237100706529004387399541342066145124782415354244219544417021826645382877698389277709658049206293170498986109667334812067542797306767385916254131942478346460805311664709493246976801639279804914314240276179640189226728853990201754857787751150333439286430371784240915778294358753630484450317366201392198951021171098647493284249518545213547551312890608986782699944678116926239159260883934111976653549139419123001472993638486087390384005825307109424916769116203368772774025202036339665747368567491561326689515758946614313294367126456722752362188501706248979732396121594980451715883947720390317686505933529244191764713115301185454688812724620798613437157153041541883271512004931165826516358827111277049864079944208538084330793259834426973401463555556102053019016597058460571501738758861735739330964038038674058445389225921797741931068003041312650446559787793852355285121657072863298805806263063685210606091989327271853760132100203041010817000634701853263900676174903203563937975204860620931791175917785003048713993360923902922023891277784516851155006030501990667809753760356852871391573238381353417939095226073636148721732505212690342264358313081000324120152215051579409046312457469330272903411943093944882057909944151484983341972751952413644313904271315405890395755844607859067818852125302279930139417762488699697955560185952437212982591335087890317562742700436073568077256728986555675690808525059476569083583831802175228646058719331682774797527148117410858373743514142724030211132004863580768974177249881514930854308478859642480744209736455593076316526610976670403972631043448443943985263824657246398289116268922609195884505518468881503606914443019574950029199626501632598189230791190751602615866449253057237634064171887095478880110821543037924513994394754555890719607737993165865774535307298608836606541875554708764545293297131732279310036324430212934817104173869664459314229284626315461572649399829487997948519419945211711647611047987900059779699873403151533722449626595825167950758031392355306623016631510264077466422037576131722245981425246478917710164473609714153823883654713086088511793921062474069789585271559419782279924349149869482681987141345390097503074197363326576569599402146773294387284559105136170378706559557857152870784596359479792290370054243494752245487255815957884896615584352625826718167602347798289359755478101811822959170608440938448454211441488093297793564615357318569104846353318188526791714245714384342769170913293904034659060482473276948943751863063067824704753586540526078103206240547043685208314397579721758116080599151461464865288946416536485518455261673712491744428777837833947239448066404858057108875761515787384143189514366490571570575521587787350612236216798315827422381352699104893168622442838288680674629637587766946016495105163478447843961359396593382344613260710094671459753523772233847090284560785148450850060738989917473596897242409457881169767567029246052626754214696801588252651916064385030140675164803358564756206949180270223707605676414768321496550067892889441799911548726305424969175839913738651184048151402343109379683278414279891695642117731888930702313327745891819540814654339463937897360931768626926404707991087206513214727924213883630176254134851664330095448064804989729660746533164754264046780633902511344486452654465456103851302043078916862160507117852022760232362359700883345764182411130669118448668969919602951417021776436784355171375817247664981784127613954581063313332672756836971719941304731918047378061023857870815833808772726100000867364872613668073428031347483964658365615271099700097064066213500214044290495171709088873566700792934487872141052990487059090407713782421205458353215415352201951333358630966144642580646156938995979147138112197938055812561780718210014858928294132426667183127301394900100872007490661070284696897459987717480456187625443417326796854440307587796725866816968119846906931159911206805432146377591321466345340940587128310710778708704539999023512693733187154269883387322021577015441460106560394540582044047529729851415818742244227361360897749953348298933742354589788869609499753389248370608388816122392494232250223683873949156976068325358874379151521658645312099255346659445691434493936252247545746371714657817093951182437095492263402437294433787204825631375382792068995170152974395947949185904861126556706429457828168352641166645941577648071815322261626676761204765412260390922311479597828268708734543817763319682081855455405401967663132853348460877798036485147716845248402703504417449774459356869548956622927698273810409298379430621490721152791645654017010628373992653991516331968439769380217934048958928396333296006957705011098221563658329287055752222754127324498169685752665254834759077520886742390381086256533538770607080352073041485336063014600253850239549957662413544323878123317290601260502213310950394704854430429837664911306408385528608312003517531765893055253629966530124193809159958808902141397871197028376725828189826506814736998512564004306576657549358386515403346721388856176244432644537414511690172392833734729454713182542174572406062204870194480128511235723012838172523971657753805686359884230484038231712199236828296676565575914970898397620729349506933956822555655857084150936006092847852376916847203515579091429254357093038516373683228371064223764631064602828738637773022106100202495766302861505454796542139315710930031305342981713783709469633470859241777040202707442491931314047584304374644414881298371852580079221414420926573083477454247047184671528525965710991345057356869811162892636508861578254176432128662145370858798819244468606245321543386622565228707615883311431586918223161273204846435136004004122866535165384636786167535491637101567251717684758139724362203971451285961563984932909832201200788270194621656767341637201987786285640849175607529420725666922676406557136206755545080544395943038074900646058047724631439812352542752185504321330481465692067866001435419806946353986929798640944491902216002463489981436111582163959900198515697289443725273119528986628320562468029429601894067759880855453486763506363692741658738010736413494301683058597855541878227669376246662080758636129746863821067127967972704569402905443315282515883306130127682514029352303829439066555001130071721131165651690140928159820175488763119379710586768410359562760819536558470428874010003986449369443587849165772132484720662277501571966500676319891479878636982272894156356123812033003816344491274726413310690501235526933234656858354814483142680914996713492012507706405563259867395856498073187831573256140610691388295285696180422489740143349094367362986697747705769244872582671927937006912428346936051100168229822444275872302869421148374188604449226296666631022627317843410596721998865330558661094608901801025619736402093945524010688155192878869729157419681528066241844536329394696101122250238815073211873626179615059804673262264355464769751887978356938006610781488404004027589596992340572867755184948509952920135161508747802021401184699097747464396981124421478831706906311847418694915592417448630451807623402258683348021408316258044358719342608974553712314443700207305621383207090408000454635553667667818349847439039229742352002043088139463451987184693976565879774396714825523611874438927258856862450697367069878210248021949316877757396198742242250896695379962568969684641836135987625127265635749533613385129872582836323180431003248105239310160898937744316862987315584793152042162894507344174205399313281124881006523536327044891130077790237816425708868236883260992253807974883273113155490350703559469641336598926309948885614087342479502543658385968392330415720216578223584726804835697203916160887645234681747988434463984593297575399362862559203967214052661172802669106233043320888107133953993680366255925327703573750191835934671956343902251961128440325032523765426629923832536014790358039338152730963733103895206438890762402374722352803273961492801497295739727033187249286669503299407739234778904511833158316933520789413368731470383062489889757957867824665364743954603775615828716813485814484585824024643286373975453596235171374476247294450715086264859104735842937182981918332762137688131888740830184071194741001871203236316363248455759569850821981683639082385107116805639416084974565805803184030349182771816340464210112498205123213878155791710120120249289620800246391459298240632054533370455760862063131190548052037158750078396562931409908620670935047839382048715728685493507348162243590966905232519571455428829832965160457869220887790314884557083620350369676063162496579146617730498579868088178879717401048087509375666012615345278041738097091912020163277709194033609157717445505583655450585470461020622365396543822336818743750362090746743020324722638663808583575931436839416841462443618528000134980752592784273453319577358177776406814711059546126907973238536387066342382934846679918026451097353212315681889486215537897914041086946586045280888630522975720429876854596680481011417464628016259429412618216512545162660428518155121566896871959573277929581745399831272028483068981795349723927312975325698386332979094994401810333632235872024896440382519711493847574981916548899575680643461295210317344199063119091183593364325567299175932340658933739720923280821093788154720452467432283647088404557372236334636807237442241474444440616321775552195143300669968472574958044449729933867188760153531341215338365283139799950381533006103658809973712032253819825664966208653141999526690527740162608574668626975563603951445356626346038224566496190494795667954491186329498843095287126006975755318252820948067375546100969751586315030565026618422308218209977993565292075957335588102857360683278931321958031220481321042944935337849424502875407367815897654943464812700490176925615565428357534540134189909293246358908563175510844939331495903723783338274401427775141539710854108985457975116057586076763640517965690872392083661349331893896045621548708318239305745200098181143083975359206001469966917996393288728941016652002568479136256442560676647277760979660174043424941834222681838492975379082083856505982450233151036766199884579982046325553906011983412054974373789552023108664292776454819137928601764482372283635667892151289471414807527032604203381444022877407087905922606977087584209262793082731761199731708731802753259525722290706317330254030164591831474076156168070470513896502121746473048193643950324570893484811464524602817314766979286469087217518798703953621297351648096952909166366373670638215646045293634510878090065451939443884230762847172163063228290305546522278348589699005287048650182819828168663531321342435665326893843056091956932134730800549262722824884936777893937173690679692576951020418171853227298096653270890496502529139963476972283055107123339601837312090758234357818266485347879149862182221785779516385776549537803672751152794793793565636053404682678604242866716275682286005970202550315895702089701488694305781797932583820332082680007850283521710784919260545514128271545491607201831996062235787691600020828872678149659821884331688123101027531145313197493136798031023002206101351849704945940023533245183957101961000879682065792773766502168310467024160857921626210099745122424643415433539850324838048350485828415960800882923102348979101827941767352016225170511002159445737859301795153740738699944779707490883267222108617315978945120201703106353665683433007441979327196686044669251549563042486392249347226758766225493329804300260458107849396877428217111777974416208864612338352980927636871869465175933900131780458689464354739731750875633099397544693478717740947127034167814190627738446284641851319239567628202418613241158302648736849452617183619863934340349853782301861050592132741350691936783878226039213972676329753719548702859226789333113989729263503050705945194963291483517121650417324637896788864549053021246750907303938876578804609130749338828674555342938655077336868508684467113085855057669799708546334926155074537873879427250161268556887053908193091208799734241975953103417864169141837319112853711392983664350098113132639906292193864708954123007601690403907635318087242464738911150879841647959611930363952455730744405957033482651397119461598206791940400320597210996330570852513347383929277832174004756092230302605891728699524566185074502723240776498451497500277822343064829015932813812448502435047354508530912407347766591845749714904675630109145112115756018737287877243742617006295316590882160927557635860883160389010993196157145969825839504977771731956360218040885094701011477123187065395824429767658511197815712299705671393608540209595111061324815077716354784078800501298305372100768988885436008227475900967728289038168072894629462854974219157304166596494100534362380368509004590639205735265896772559912645819611846324606021564057951188715169420937928578441746203822653418514010936711476175582028789784042800026014903450926303220388402201549016274640715713115789584717570373367137380352783318319438452388842497142326834796014198713266900506952542156497011070138289150898357583909452515697838235071465478909361771475952286266277638799669210714262616183367268924699966437934731414704897869362360739867192559542047195714879833305203915282536043620245442911363989153078058479383773338731906646507298720219129130200276859996102060793744026693731452486638973498195753818977296899959529755736340637879833553747764521355936168268019290934852948397177769483217901732504133911034295938590829018090022439663552348090139926057429788067406800830752606396427492508393991872961845997687091083000462532136477729075415371598806194103493685569620365923872557358750956631479147669705119796087995667443438966204632633349480486837287324712154061119288024173175128754123876060186971378966046744844421080195112230758938320988951793381428203736196162191173685708679884043974428335958411217206465514654176140264588937158341655418342233986693698302558363261528606098838981777681255384412233790460646352059025835801432005198321689686935990743025363828336068413187955905108122300740728019571653102104983884224419710901000683607990679395698912086734364871293674053566468601963456297542846671118573171319147745377854764252045885649581671442348983183120805117454534298056832486070267600684937114888823311483734552556284316961302759616505651152963390107365581933142701852452013674273385981636958599314224393923710904829821189074109944981342048012490236503464682026559054433703918604631477580081958279727218159987033431250865297123708509581118810623174248931059738271920829689511427471220544330358540831707014274583989661445714374320711659807741100419992573393093124750329550766823655684968889515810738659195453865251796349584774895979084803932528153048896361833714637217477932943696604726450204987047965422533706975256149985437329163386535172068415161172471301805151576491102486795405602544365490835156042737247896998125144556896820165480427171153221680964585135236831567638238288571360284917116087776243628642589669174914677412455560241318327182563280483815978416086291459140763039223909370796979508539085643861109039416159154382475135023578240158121910649687782873448278274323465012750355057735008512399213721064133171386637309273901848892624622018046107325498241011060473174827560392204815688634037854166870711071766327049882555253882924242366194883486173420628505608279000319937204868030717215085169556274586938600969837473825745586325527796982735758745853999340084580508309981609362985500692504228046591674956932258253500866274537523308929030417600505163002113029609713449024744375906610541606098980704794315663367884489777061656418131038655660992398978391864607142357842310274121995178966234066147567337430534174833496793390815085144006847698724661051766601480861347568051041883953434275087942045699553892440597391269494598366001239379552332056685320016474272641998206102092709895469810882266085379830584017497327172112082068296950005932917822845272878474262442309328596233256708303345555007183568325497035783218229680857508535630949748828628266618567089105229579862026713355725598422074027702395498996096505695417249033505584181982395718069038820696400620247911897404111991385197384548039163292341833572923267632077553610806386843049225528386064148627853398132153557476829074712401128332081166599380241520916879840239181817927828426796323293881340111598775850127369786453889248676068182110347070473335995260996166736611870627773443081398285363887186656266361904516013263567728361464665075524248004208893387913798543199356928756902180381488772081377234286014311393596869225120020443600698977878150535153803276219414860936291487723281996992574039303211095223929550772707155516815093138002059063782846294035915445087285214684293964147724968425598199297342109367333435829679439133128364269767835208786620736190692060493272688127814685275922926137541506034706020478235433126879159486202250629561796643491280473374976941223997381666187935586062091134309362779697397950724764181701735708395093340667765729756582466211602814378043380503423596843416440458661683714914696986517163778524638280162174667718848927536054082809331080118187058701999375430658422906362470967664889718050667871080200770329803473618501218683609131858874311042134552673117975033407087384152208634411876752292660152281009920488267876377682062457607979473594379464811459306015330112820336135791687784856280499523848534160466233281020538281256304641362765078246120958857973041804143525305967353976723305078366680113559302787017877929822867264321233731053319781870080791371656383027706126218138160900643547894396999982124464984198037148091450060208114920950072446711394125642115187715490388215345101065709568821177058734651677675742925135905310558904088302579163481622780004799164751595990114101733943318070003172609851220829087853606411445159591481507564669173958727622414954970381188249265515509745245284242432046456791124015468976679893253128211075838759851633999518239447572321379914760213949321718730562381787429775930034670061276476695366122594589244007616669688831834721041154868862480227399618901535200906904446069666588912353964252413419165939139013326624767045772896884522557752911619978758998528545783979010955076336086634040949960828156688454548119983530257603256410250751390328651907271883444962039016393153347348162137378316335135531128664561172124960438732674100298792950192909369914134890963661626476261331417449176089592521262232473988476657589034198124688792315200183684488867061111289091799252300486928965285207738138786903344753818669486119338750177518936491170973461420308612109083074447513532391104595457218538763666000251874256839443622098814053413941195938434248732764310340178304227359430379255563487937381667978587139401228042894125285851666277475898346020688519132585529076072569947947346816528769241756830560398854247750397179755557482896383612721003772090854086697601210566800457998882270119457316797299253793540205364080464270175567504423524516021737088079146672481754810592217526460201057468554198434406956362212297043477216919164119297730853237805752804656826530802448938178468043160184888327864160888544481068980613202324789489563856477740927106072290557797550418904882465825369433954872427798316543932802974860523204033657706765856965277528318617889399838020126196192870467589851202906768280449806827683152848434731751672411346049620515166332262400636591753719452989667277885286345649081824619198158226169685743509595262239973704696523388987420567785149363969694462123335543224276332744540793354699216007761292944507289270540502126987138909529382651633359449957672258115518870790497337859120736320011413304673538198439686949229810452522700731148736303825975152721946289442345031504451152418928028576024862388279317516214273320614316805821977667259029994983710160422787165510334511720204862336458667431775946520870903228716926904111338464258157830857245698388789785087705619746167396034142155045104489730922701653201137033090271751315662056329992170377309033664254311312969499224562795837487073275326415317860908947366117676406876400902887646722876352347740906045499011591116208424628179499602899201545577617775007570153708126346715949297443926728423059157946427927492376672842543426092683939618520967743859426029462502430954312514414220872811526937979963256680717678702868468993966915621964483539424918011919200611001062916034367093166589516289192176066667828027627415255995853794015724327840191160139770400717052000358673481934253984882225260261992911065860327719535109921840994364306841436005520860959786159417378097863399015195752404034974571396214539508952275545594176145573846100710710908602805458399751270700856551123455323507188090674968880902951349102676679205205493817280139051111331272697672593319840013139902518527410873008505487584515828154086908392678227401278247772410525018423747555311775557516895786820416563645312527512080904250091615161305187883087115588605466702098715208238124241000952971941276649873404882962802723514949870865259110467298290931215138813967126219979571605490066204697284905033865734736675350782689192299917028555452556170527046679705265464846024445087160817171074760098724042089193167175299092291896012361390965656061158958028731118674845785993347210877631246262221956989587815346489284829301877002683969013757216486381190294673122014402532481346376525634156798552156684826929980182774627003433032510041668943956829120495096806185752951467085662695770761545240066738096756848694679977054886386842323165257983475214901553389274905868754852117448554951420669396177738222237771596976656905205796743344281228328815764633778239114397912129443601295075620754456228308610236563826829701034107413228669343986045982851203143240451801301307786589616294544408151653755488187659598767345061977279403662584368200479073934609912707419285439162452058284914525545394125775224342060331752731614211418766060881743880681946963993331992415050598860214453116305724757686320338047790290254109717407107270117712923986580211317404875073064794393504466719576772849033422817395325562727510691246050700164844787706318587378442013357026692851805275796388572133538912737204118413920002684848282135105460880924558234578533485581559401506413815475627576527211894748566462868337177554868768251157270510448993035074813247978765224003791435130474101985691807600651171613498502016018917040886738145686134274784606902619488228064784312445972531651684052174943319886801289866540455864622761780407991011622663175201731029218026808983460421536588718214480164948041023544835161631735531473956718643836467765587816279893492077573808465628406649736448357093043531282767840414430073260308183629954546140736857917169392100828113610412835132372543593055567541426339391213631295550776377000644038308975179864632784459398444108562076558740909319054257940718424035453262962228598608027637424936193387586837333370338275724580784543724758254131921851776550465361393184846779507961652483834637768856581271145969085409914051345509469419180617220507534321378937352331524425827289987719709258588938320926937870622150442487116552587838875346867150099766838292109048526632298060325278777781710743595463486343624329099935734215389966877268720014433184657573699248523516521666897581006974374910697949911110930069406767205155957076301702662174918219910980047953678692251715646783247699179924419527535920538917749216537777480036518152742364240091969868860715378647601877115068864872369417690404245983665757999904660342724824521144359238157536911561655981739593343280889270992338142040419095233559039365052605789075303979924546391371723017348894247012663021532467286596319388960704186592739724538413083635683213822778167130301247156414434430902629046342578247721444850286987078667127120836980469925774970859142755478915699351918117685438399458411912233001760012533016768878595323185101792343666705703375888575910329610482659997005527474042167870480646433214924573639896051688736755838601406934537883055532415128646276409883560190160900757569049603213957959111645826611704150958402128147390117127664183441647137453141125725281194874020486889995661280719469589629328917027618777179467792487147687176468119192314402669456780850992008884007832041224683385384719702859544533152095347050165878842404505457628057130541792715151065782777439056095935499742393389550722094082058761128344805507100759577557351290968903826911050165631647085167277468873383594102431506287282998959828107467053951829548203780440843237057985332528775730559278130142709935290695699501015953165198928723883118842718024823722664284724924319015798397964933165976503571277617830309667767632589338950629405651228512719964026784122987997595248044803648822422741879456010196761284789933358355526052922302546903864943050483603056700890324904305840008182871364503276172300220457161322479858747394913402874201112738003921744517911000198597118102450278003852642709223784582645501515881985008270063886230726455567322199628001665859570790141888870381275028421268120556055230899525636759949080938993464568124925196340792120308095558304022119548608870521653320741636785136611388616819255386259868745659731514420308543890901619509472683342228321944021648083667849257286744371115846942232296275442822696789819480612492520914304196850054248678959337114765502800311868943671403785565820259695222381050514941278370802405035770931541658453900623650670427155158119189310661653441084995746333228323235225251318543344172349224829340091429436720650718623959436651448332530599167196337223495832499287492310257808816098951144081333461071721957007101108559299498147777330198522035543951985470770824588841145800096959524252020130318089412060073248074851103569248960878291537397845138145239971773315834993743628234003377086913372249979821451294450116758639473210973767512230783702631042576452526728637819741553388152941258489455409227111679137638493853799176869405289756768384132168147201946743571121179882592741196143939963575647865336174774015236540564192693594142700258908654036956718785219989457462688739192907877995007203205073580916065352584425600300664178538583068400435422645682545219185360980932720810837971533817636618720893826466985925751802893767296673398322279872581168876442190052496559205149502896004488278110925194195802602720024909234436991555584423576740145825941679217883726790132345687912837345342980856034436917276227428289524879353969903044588543672073016415696799316490633795018384936262867101483014677735930071403266874140756013696732599974431892156705701585536302794460809422908207131980015765159459178051556737172613649885633185110857639286446526441976895524981473639962575572468497617081458031095248570623997048491191789440874783739708077689125822775095366631203050117919398442132613925649455298597005789590512304541540243950572619010462448022366301312992156834116144077640851656471058504478316784295157715261313906930436662915336193419389032119822136141197629823708103921808860499168328624950022581622095560526790948178064222294336635321345591462552411135434855179856295527309275728720545532975618794622344340485258288172218912880236078256816617911408698486178754074015402404230052545117320036763320865712146628934155758711727169673472967102172189202063284963171570523199264151857909496497901568156769724042330721981595917260880821393662931300775863992368592092129512110507362199818464365627127639344148667244932232739606864929948641023781138445908515915577779491853897167561336086671081827475477800092169864178155212819661634895655241692235452633896010337396741655250066250862238254616069525163157651880391180522499708504160073312815669676823861593537442802222126951140815906554721351015568207268060305683552824954225343228281231875457839909960488538868048466963037703200269653691710874124318388402595900671266073929678127540897275427849869513692997282203969203617800857838450916270818489104920125452847067938628207464237807512089442260584166768462085505776698181287466897397824044900508709064422093543868955246113315680170908345092021673514831411734186296778457581893398490295817995471587375397258774807600867231153124088387062337787935436878070352424332920618129793585841740314471161154928373716237028887027654639921796436610907301688117935211805646289722414296052444883409390857693590066563654774576197198004893489327610937257612632931093009847392049217870881252232196084084037330475163501648070107377538103486117535959239821939617648136602785420097591201782265234288229064803001753338503145315512714960940685794727271270636971986774159148222225391003678607126484409720580055733841787236847590495933256615072922797135178106735829338443107515492216073211014049780394663050013857804780702418301255650034499063834427829561698148475170238594808069639355566001438775356020559203275435949851335668700576967489696075890985907985482275976538237145735358821357719643959312650015942488930482441769300696095828059845173056178626061454011233740251082886243351963448436228376345258647620104002702802700867620069619992109488179195666886512059470609356485332985934114745635182080007031706806527447363159106316769763849709454590482680020235596150624848119760178493840998472796991856317874975509024017338137708028076958302412726506154499534484152497499317445530879597985348951446523842684601919892895488747045797862401751148768654672630972771315481607361373812338844470523745130281198836852794802934936755032699798450130797960612985936617134051834202434696882701547639494862156486334781311810030841108283433673246341497959041568869442817656335414573909908751104214445956917450171016670195520246962794172453490716544221514876216620728177806791491345526367838155557318729168494605416684399763607553711530011939191793969918014941096330913891194746389692545712105657177883222388373791638094763100611311232193412594033643536202522980214276476137224858811728528039135551391364694805194184722643238668613497020746510536208818170411166877111634727327962548139720587548821252469380492896931613772834582075415740579128929449301616762505198315511713614150734453160924779467508604575332619870168645318843396378604810384193054551448571709931703726119185072630848555456903147915307483479671265340539376990430537165265898259210872100480311114883188569205965998356478843263726436085845245511368435859910242103651588912225400435406005259288049548066601691353413135753553787438355905688893580721875435421783458490386645155592581549895234329744260403180335300919423042117343406696367216442643265832231129368662197225892911832600204033225223075262092031611507894172946558157527976831331876813948396626980202925134247401473016268741210125790846338915705011583165190241131241603230176845367254345625663530908496914617650871832276351637816082985966855330353484823188968415786790291432668898156379362581514182974195742758243077049132599043847186340169527025086488994144519152647658182089131828465118746877325414580643355358198626401562656866552199147112122592188257353600916430717940535762762988294170942058600522652751697741807351520393012092596096314315644699247190860071931842776685071863114548010453084176778243783125609877672572820720619999509936880228208056781423410030090271079015649385640089470182087240039734648776931086617123209452131781642178016189996738130552257067170736116812321746597934529372427733364044814838420853865566288661785392663112899226875006645078554181986273794239048957075526390410127389108543023720819703324804439036699477280074231807401966380008604435254062184209579234422141855086880175730409861991808236703744250994378013004475746917502195989935629921559443274764827757444928453077022676242458579656050046427701454858784586883799092381486491117764643975086139733466798443873970441531630610348053815514258090379503143977111510162542326078356378938285207465059942853922106532708454201839298663223009866119287633283765499976000287079323910020909354783674261726045501252990947512524669884977292833887041412332411920716253331007701151810055677357956875455800279832141362352510117905818307342384492138636076796061345359531929595229298916017910536127931369982752809997429534847264328421154044236329725469179871729463215191381293444188151546531471803202608492993175805923109669905025258274482851608308370087727216736044679506428982233291912159729273588695291415601159644997448375365976263718480259569101598694457308924028928735612816989221024848872293628353716974389383609114107084046089972998827463329182924964043346924682815642106558278863828963699440036801400483277918697629002152016909907185475172609323072441774584372287461096678177555895097763849001266396144911505364290123589467525462518131605178550550013723240989405986236748442200098518249194097256775006186763536679723918019114227331768338351770664645243481082403370018606694133795690033812504619822349967212927344563984020342129874591755545025641164704831556476601356073644786654946946055469659364580792128568242556373510527540121593282977392077194151791101252083969668235653465830503761091116847526821453278884066889459412290073496157870270081767467006014430270360808232725710380906685428534899064294443394773835322996127878974397582082040492069046139180997474563985824198901073582970549989057966168913978227177391067183768846115292293958998477130689837710609222123036527832361147014245565508924910337194138683894812757830803895820069766979920235719566503091961142992693106967512110705858052134569776300907853012510509018743730224213651374296462952526855722655018450948084015300839010395151932142857329627072754328582681197401735470217128789514363199652270468650637466953840951274699794375601924969554469737179231109607586534429869377349988118378346419410072017492049536710029504042312785073584717969134083683540200438153888103535620507368510327755423139812295523493875176752343150246045951087243374266403469012756144646390431830269973253813781131008247896510021254004723197461656310071007506827089738639735885475214183614714584843615078151468226285749332429740133976308105841101671422731916547679056204911854571453299019532246608223053486108474036904072695030803857437938017960052632757210101968896102337713319397445087286719774634457540222983422007114435810028399996698165394275052041766384031139700880833466006240025998626049699641349173427939688422830497073963117881017580789989033084409267902789926850961399287338149228671952196898960966126691093252881620942036642317485850335197717099461842725592222529908866152846347753750683542414013544977348677913781997678474029703891972504304474155822814435300566912123750438451085040646373575207019828231070558316940330750715634719369847341015572748522402556887137334819806551392290994095093337520690041337356871263237515585457638800546070899763609636015931546155731453931399376954318079194374255790281293365976895787447827744930168250491152131004024640424281449645819964346026387262105755680518699269495856951906140140797080465714214206949801360171882652638826889631202857422745775532796871627749694393360742290054130526960445262380594976703891543090753399034571985505361753063994030841852384830729812478155108933580513911725984237354986827497791325543528139210555168443616073993614434813738501071596655771506504234304748822776944776664502289557474765225065117901541947325722787093910347539898536907383888869325737696568409240080346937906973948371994565536458371303230668186474952636706861106170013105702213379308028177448797910073494440409131572748537695574839003893791225409924504640392293359482771931923982777024232183485538913476307901884754031234670115616355118967224157539823523287548958465922734129303957709078610767243763618425999568389388647110996541511209498910567727256704998376813938094847227220722000656815850292958371120603560269765361671693605851217328718729423263425139580737454879783663893042494570703374872792160782904417765133724984839668452654282570084841917083672937997489865818412458917068483345804629437979970597433500288811240999961740884047504936857422976202850704521306335638242201298285294925512021423446911536011149874578665379750332030883916458950700619887838974874608949297022833225835482265847263081690276610948665950227429053703109201251092855682309574583257697402535407054476694815315363985035597141193363155290179828599375164482470007325129843052706118873860460090235851163478146208461967524306904542608689623470249949932547168536562532030946698255251093267489553894856669997247787280736752960223521509976068214077521563186427424810891633007294619507683763407388886547670241698731177757370522441906508412116018149461967601105352232898881203113778734531731928904036558301353650253443314317908538198314472060947259103698063232656846735136270017867863522961439220552449671535842844805655227315114612316340234528783105139354304264515036561571577994929872855364280186462872608630638371816577934835849047624080210446798143071792509602035796551803149690073874242391042491260601678293756773612309379224106584571136239442585453998497896998283747140576400572784440537873474983708885345881058696746499279593222854750482459510164249235267796365718953456385324872581552595907493694135670763923272091688366925981615720349908020252422089254535846204208944834782363642924681459174834857507662220378960332546833297281503299198301222848586948255859334717855571001817435913686332024840210822839854813330040092675100245695395168427957930235988857238884404287222822731112785637469932897131847111272156701530710838590839731356971544212962378432846271580807102542320674702166906249248134454061000622196569391469349051041932147851899211490971230700585282906134518374951826614518012129882636854586778141607477659648760352337631323418635467053223789712268055252432657791635649787034316214990735113512083440336855626611074741991673560055372177142289343779271271793281317719643143789216644653939418150545031973126105071940172555004298102166066008591164770688330458008487442658368719583031472041939389835069440459589651851828795698448534649362585202316731711454956253355211317167586978821478701994387863552717572507321137130630332613412788646021860947017461668237185326247877681532427474531040928993448605635689860123425112032246291078337785652026303223293108944409939975452423325948876271412346018451890767954753484404207394952395509193094193186899944197383334583826495582171598995899312668337657819431390522345083645345118879649200487223749070240608963751818599035743644543884502239161719093741650569601042127849256404570687649922234852122091866762960532437262302826867177008759058127361792729301855565503394817535365909941674440042111763119217420462331367345400810561158100684540688437587003970813652850353336614432291962385011391340474832565362349648095545307856871659012922986561918426808329551704994829468155903763641881182470145870123389876742219041406428052208263945909506477175815159830390673903405771365014700299536087180747247878285536197920622063007322974421129200117838109192890963768327771446237264238360523111095498214988931567635456394273699622403058123694972726795620281969579095361394670749064798264490742751068168578406950914610182134299684318599711546705916131919869830240230378934519192105007534617267699259921700126271230787899817308378138998639631517768399302768886812505984503720890818209795474846000836507636548419773380842297430435119905509340223989008086020989253607374360795969383832451265265473206611841850646278801311424152175586434410343251870382008321693957060664461080255408154547367312235591778405708647113687404080274789654715294162893159486480396559194692846263382972598890916935893016095384640644715727255202993742452254153816916935804751160828293819934896142053562221800860155812426785801792280380214071358269411712844336789994291244745045716741220282674671725478429246637487483216690672938073651348791698904698222865674647724639440853896081653115673665094107233066643763785318200003659435085954350352849610528234767951747245861426561728504428827209367736308894841968662888929290494197323277235050892973236497994260272740659731025021711391356225950208279582031818806440298889191568854915144599908589855378352389256386509686177350435824542947466467978965671669546526357236204719521780569290773370743753919731636449292022176448784807257393138119826801291736168598328256387376195708415043990927168468724561019169366520620846376555355826257303874574299889991646994538007239063012770170460257781546460339615457032729060594470172043022482988742009762094075017904327362503650715702683898961808695764539670104668780322635900146468761297286455241440258169283674861391677944335805680911488874516539353401111469215608246212241610356340914870831579507172102344013547965065542355574180465184667073948082716202227055108044597366137753029613701056184378712372226331516750845037805963146469561672733309383087057585731009103940633879190774059124848599925975960207758664680442951125906514824892642406833730818085190893512597860430431861071186371250044363169914078829713706884156887470275265299400727730317926570565202866852246931468463830953473585747304138992274064467277397492483016455908287113377571692846791734399113245508374843887351797397682174164209906071308675776174255184743252622398494669746282741608259625071350299814016581123295176223550687338514429978910974662486706382242110044277939091054063168769249702668503218556254809314249765770761238850457509010133372051507944594360466853515059272420741495655591542309016601709845940515101559118422196796768112432104267835815288679447560492263477557486585120001593347782382091255210592237677772432647898983400167972180812346310754018320847012106460760233384132239852082617266945823986776479164911338878796517307125144607018094172225354028965095194446217951258381090252638854084567890082548112338809680314795088005291274189660542108566207119680249968408622581066374599963929236623505226354734698927063481827019841017071426286208716075038203594992982893553488846052469651034216134834490155054082342354309054697222614223827099782531660668966150009552923906987086717815604767426434746043376587607540226215922820466457235614330878802143814570382875583512194130628283539947339605700816586709875454331024134437021615299077496693421303858885557594849090622978441687784207498725874337356955760589741955158646856818124568226135218586457178086879462871004324959692319313633273506591251339399453397436226633840701852454998578847663992063280689626387007742977512276507805431877606446920922478472097860267710827123224938798233856167460070133986050917338098985153744659513600999733823342721653585947340151567536684502883534701119177221524214497673735744508849498317634359274735591633341140020850942800910164260731644083126088249061186850888207508813184534675656766443312811577848526154774739571802200015271183038285904895294992872762718467979496202882557326739268481012064708402899275972630537106559742099734022955769135303243962930609777239900778583347355267087678886396040851112516831605915339894506102891893642921905160945322081607626845150431351556922801957310289510741498738246011028254720346102425157726251101640939534013419875497840454066533237414185233131971258596836106814638194973800222530016972451395415879853969052448500658331835024236614617189101281899552160031979845325687938405978841698301320028896360984643011640117686261800570973680846000951920932316913560086555961952116297798398152152321643119822165713371539536804509945589044450491450671762632700728483390187522470612884345474001194286759284120935012864133066120579365485233389113664016395270454387580040464261816134048419217913981790810751933554523149868005386582126591141501339877846898581692027217315430085879504510199483102682731870633977683906228595312561590211467340677481231353758206677969830341471340949978805239783311442643205538760293022551009856260601503508371076819440140565825197868843440154602143688654129112386078823539396605351842500862965809900874308876721649929279374873730406142952717155300678038550371225818187246051446593761480361929957532743248139349579656761373425327336741965241426573440567609698324362939787463349136445778185557430720544133298977629480057111439303515201011781120208577714760459009634078503403242669230900717596943876295272846813705895538213314250733230025287174636998631345202278302507986928772741092541941753839809451185155914260234499625062254215736761267850771133524023601569039934226310864263752576330323375000155071373013640027703873222934531305025653061940342111170526255601725161611248048737436418936738950820835957622979667906685255528193829085812365908213181950874369336931045174118761792159966149720339680052201509820151092219651735955199480250634643907681424584907349377150983035716855807449961610767540161187104297953332514196383878211740562175598011639784321786107963316332552183526482621667447196161509092562406252539692759949795235988214472338219051270914537419617025714696831881160074583812578415354941452274716320959189617646998096669017182052276639945777189729071532775590005882454471149001298205011513477249761015304740162478894464746924399421181584167725124135846130334792937912937432252940103814779236230372388899771509665653262693472943549447315131017438587305255519959833251557037860485024006396622778265284638969225445398243026622469432832577220354365077892031551902539157985771933842651779725574645338759454113849055817494903806436374152073923084899717579672070010098612087974527165920229182437493874066912688942804563133405300108683181065712404803326361758901638626884124450781799432803252846958720772224836719987595040181104035924061854926514434449313532244174638827634029749215604758113719506963271520325501031392095218065990987126426716390187907710116406194798357544549914820604387729722222723004108825118033388643928349448082246918744754099363077698935037351033455724651868172205241126706571215274794644162222075813056196399629082076158279702814989269207336315681924304073606119879386077471704139429728245732064022468928955373971607150124678018415188204010276315200451044929770224513566760033321134951485939693157273697607863066076957425162389997369534893594309051579083743064572097417630173296792669139525878471458073352588235552258380480678417415472521310135851723003333714979634877278317131399812408181664149871794857175936979372641456180744086144181217415450002871703439984195492373210530807419129617729982618491805329254074457133055727007754742680092756426489519180953407134337990033247978340691816586879916061665062983005492118149349459030854510940631962591261999548403806684279224511601867962547250757066085566157785525703277495885903860750650861338317274044668357756902848294659736742949874198086035633151012355862476470004126636836359825697408856804500374744398517288966673764494772881223641253574587423369968093761261568594753767496375630466111207722842205734510117550462364625228330485974597500474460545803888421547360854020653013947611402999624840684843197866795316255029466254134559311379147118376309871309313879378088688348983791608116340680082850262042696092461781579714001236766145638571791421057811118125081800085797575814650483379686077519226145576182957102435711820658482982407419485195128751752775478576715458670330799469686079117785887802137943431298557549797076199698590918896359181835374521719237033650242291736705189812696679792863721034525750727355078321487522494552465731369088241031409082634613113247055237732053832871170890480248139973219278498476525630746201579533226400485654012074982556608531844070877824317582469397493873705045786220416788219496894017512006447848867582169558000342025919728999702673623307202489163277007218095836872556724125733019289662373853798645917410821698872585043288943066787483106550614437834933835979138898107665144413561512727041817428948338778384378623234971874246762723310875523787703534844836911297700035716197595762390430204590408895593971329643164735944886346822029062948975537854707882310142103481336933200292918329839656535237577506120136475417042062103924847524042662653399386244647612495551593949109207636098642530742990714565677662142273750576057578877034951267341713400614490114732215831433670091324259624988989555725610348434661506736770040793021761212446846660662608280536830502622918042939656840772643045653282822551333128296526009949083464135817059560896450301728641946258197555846430723699425093076626748389135024305890123754290266287305873071947994902909220227307704588394667187200380118424686250616308244590417547528789206416616173687710406218514780271278707108407524313017899436302490498185248429963224738923422615799074999884775352573237689237691995014033655964477837426632287998413072093146859617287044206040126709620958290265237348680919723241902076973321987202153264728203424601619086004730389954126750499885148257206846073812157276555917132444504832855591016552780745588967037090248567469759800437914293655026083387403580359357514100533272985920557881904024426646920236922628073355329282029600495890107180740587948495195307242922353667189924941616142331226966231985828857843981270939524962003674685365924741109883738045985756736439753136489116541301520394720600345725239363545742188166094200215666638020807110899116048996795065346229752918670599644963698070224572593194820895269842894720623150417167541242937367694522613218148876813437685953164689281728254310238397194481003573454825546007044260534081496163539957610078922442370962185237339804069813329348357925073537805946011636721664719727445140168521058067988456224470271938200652466923157620831379152839204694903291569492933234452746281514243258567696042087964306919917090714129836161557483921774447380720825976613840868061365651374843451999452760389941040069697898759750804877917764730075217121918935678021332455572770073643641903668757752718983722396297109797649986388990578675533155256606765747280566424415881308838024055083510517924789528841060029603463668966022260975919108768912646153111127209284320618899441394084301149572904357044642300144770445341571701190893344822001860783115201009960205783737216167551348003142400798718841642819769620213682017132291241612389856982975189645093759829343308891264958887455561123424391933256645143626791082481515104179711278459527915052140980308535937660550693257616040181172535340138112372470361340171022825427804318454142048007807124519165853933183560689179530510304595537631951016407320056286592578789721034504538089482614100879406698192400008540678578693990727484628799416193733728086265928716591631159767090583590988832863292645205265413807954115090445758860438145282019058758824840420694595663194762759589349880222630116580396332854281297924668234360295998675658709220465576819357048973954727160065525765610170562890452727642378384584029127039453831724809053021620199846385880644780265697528379087702866070175240763273589266217651558015636130937843358076962112674454664652487432419578168654649240747443316214656528374199432087394251873675719035279108390612008029537557667407813564339417180596801972214086562636825088216927508331162093442005093098110794868090084291143328122925903346430650022759905823901514611410597295657895849205790493411575029775582443990008301878787106644918741396270874663920467896734978054379699440916185062785741836054426845944530453843022280348509825394881571498014015913095597768133982455356576993153307038653245460913361377350375969512023138544214763346776629527928778038834314488111255572745618373952345627161683866934931907761304970665743433241821979692441649326365619260536456757499920815570064077686442908145061392575100998366613343823052594019929038100711725914519625224324628809451308214169174895622773089981067434954066086012072822058192500171259927618551631724027730330590774416018003042793411268243279668581963661699579585615995085913279534815417214113919886530999150217745940175468876664668024600258719949437022135452927411565267434127733418909473445540971657845237622927741067034816102932598503282694592933590996314030797792195348357713904243317341626721421080171071257087141617241872332704856943519333481535930827314674295874014230531985626047037969141834686649145876917408249773162033815501945665539149025757853344693062847714668692749190893695697219951123796083658107761736894107146668697467613016855122054990863741019018381692911449972607696639987160781876145696567441502341247187164410071570309189820813388983213406152259955130829575220680908555086657291920343469229517818000602946336908391068550056839394986630573992262226149102302983038698426479769654332079391142163172984236526703318029451235815725383454187526437394700395666931210443715781785604667973340558703816135442626295376614017658373850126200352974597685703463992768857942054582726307740477759710667164254559063850364904056046505396861149631576572297699032662654526339144066483133606606648597495963807414465866545006937851100455686331445464266800006187444243270696078802576793814065627007419056757923785711577414412674456872570745982017894465249348883950076312854081360354964594375342434440800871683965740283633716466551648435870341443223841634631783965599541389205142873674012220785931023275536229726507931145533257060469999590556121350838649221657954205981049126826252383940123511665654503285326516885807694447552302932597838261672807714720186113676849477459344849817147940421402523230396591314836083480275689435105320303140056288080127467390328686319265114926206225337728808038642541435341449862735065692984789710018131851330511637208192195630689709286392287657762017415608836093704567960279928537561270325645703571384131832063083494286060912204730002879733277108633009678859242777123323387676927240201169703683265705185944089384232777912236088745543116100337664777361527695121875609000365827978323727912155207312923133044441584982580932027748358115923094315595296480642992735027104173213365092706415513557563942544745928441233400347712433019506633403773530582846454401511285172305632581340457947107824540224985654328666695894810812901431252583340821656703910803534300785615919576461564410813760441858339690280288259588412286152509599354813308184735627999414445109375991094976233673629144232108270381134422550712249260363362311784858673994299113569465945789912362498180005723188602166364415320175249342072432129497086088350265746041774570479168454624431033046873982380626698801714745637280306016742082323116435007518493980523868556513402839723958944728626248757261242948699565854824366634658064195929252275846456773291243960281922505330354807716106055764411721569255190277468077190233345136358773214444120131187058292742029786410353024685912511891868904159993093481569409441933150178521701077088848031390372328311001341010997455925673709928919730135682456043103604362360984968224729539950672557310402612299152576892654495638553175109492567651040199993446409472805390266893136307771677351059547632448099302902112124894744707629792342659606919893911919920975186741326745609385782032237310368963540425814082150973308595976487013388182140779740161166975522213395808181013980586631568947861596340047122995835375808745878923571360700321338116416017942489221594230986146987046719244347067976574118765773644935728963770897645131595813165051381575803751100328045937789291769941175831839614709739209783702004064765414538049947150394384195239577123646072193914965502031092721302055180054707283060444191460595012087996328344070544425177211627384686671446444017861492671918937885822140708045072966808191556495322116253584914928148716244402376704228006560846093232345467262528518126613347936836959109109930753708347776801520878716178298357205084340993032474177490684922569410115384368122174315503525114667080569766956705315395588481339577675155366170357306776704320571172486340860223742071593536927065150102000561408430818923481801638838893545875879794193963431890604786366554548612404915989363262963876869686116437247710436247226502965085297300502304478812927363110938497776321124558164160906312223055264785449200952345878190755368885399909967651428634322884501240146579716850460027313276931587459876218116778254905035602804449495818832776802566706366126542105466732560890506318254937412173302285222754870135201097077178377763953006983505095760851412283562178665747605103307618708812885877923560967251168321783631776021926603406224255165427512123066499551615289587396441239482345208491168656522636414252011067528474794637670159419215683279599571082773111973026618036649048202244595161053167097786540048648086154907044115588969779138167356688193264689454555375514738773294731171142230667972639233355278003850816896981713647209139781104663689899572707519240013345242429822279438466511197657910680431593391199269648826645304668311527623129543174500014881959189237125527500348386238617879272288682992655375891462048191040332222795651636860583219393716990202317991231628350188036863772424914837424951565129539982135290735210069385326493961685594582783682452402335894724708177355235723127863173791711372371629418976957942297156787578854760061353389589662593348505925269017186762340639047349990242640413345560446204145435407266706558214678057130297332039591153308861568551366572639236804570435413883045526386258660260336675538088030644197374595502760701825000087424198556559469249706171290256395887442703332449423826658417992183783916191002853874128080490348149735372407489371279313668790263265388838972960374324603344837279727097753778428895599183989189837452669462701367061628247977259417478309201660574793243949175185295202265304917710565726367842706706201112205657940893233013865455373623010311527296808280699850884073438835938283802070265379960566704630232372678728819720782858700151055896969494001844118598490863133745294789109233459065906570023981033690288344975143091855202521457534694335648099314437004099014821799001513414135554990743860934662603686608277413362993676340464466002300057092424501665681557639389266515021257139583095082158849750474458788812824088190085757530311884285149839719097002508461279592948670624411431462571669963045528396153768096630696502924407130702715854359083982812510888449390758416016508060755924309716093552801173041759586500568219554981173403804761856263223679443281354974356411034932221842463739594171842172349477940329394374319793784852014041836082688760289408023456537519652056090452243815557486690954264137836626448512688670186784977361297680434765053223949156588587057379798811683216981414344954021210090828221780368636213373086751885719055807341108663041883245847684964881684004872260478106768485937801710851568171687286046091941951137567705267898172378231207520429470844947750688183738767848200799690789336743680206902277095647492714495465895374873351030470837147639204478443581226247531014184501372153354225113136295384341546988684712223947205322280223161962575898105118512831795421736850907066571956673254113309007802975408149626718633260985494715635885792386556086352464237020477445439719963157559369867500889637170919269298676650282874734936234751035252122296836528980482447849654279750275638649169765908411839268783176157685587478731271167885585714884013424902795365450316977297953886151667133279849210469685738709641548010218496348858062509406094039397756860513040932193222050933319181059453152069942096856901256036495225196963180061389765409832035405714291359306325660470995081886890924707386867721114562392942517340515171060674030050545473566690860109401643935123613986605985976067483907783965104445823803901186703649937680025555285612092059320150677359296182344773735278705164931067331260478304952265806140759494204284451246042944151258205367068748022547267747731883133986487895530156847730719295353281078362003808917842040369164359730236102272263572069762886372994599146037111873170618830692526453101500580541910771935290603422823815439023398671559496667565358413927907929577422559730291538032403930479732155424136127145542245062044058283944942909130501149330159885732365423496597589757773151015765993222452914916643912263818410948240819894631391025176541717339236507218091589840501719013181283894812565615503083378028047062016639314654226134021044675964758685353050327327970420438180650268734476208039383443950899325266972206585040109119176312790640670673860653824864784363511059352119011767764116658090275905869512454996174775787388567933789124808505781506296789532334154176338468736472638254133680009389282643583254653727816026445095316028106836147832880539772497852981816895011061027361654333935946642948086163451614760554338179242574593963664394740673952595072384168560604894403029768745752322159881777531263085290416711198624703483203634787546142579247852014814604315939275320125144159211573572743254374113026994502596880583365860194022432994923032564677178290928451100529241737270860953653160961416786633466615005924194236947757661083749053525590195068797440754369249538354101499645462358812733851223948186360770673960494814283794829629325691104241289426962115889147531031974708166947888832720633698070977889979896461399237530325163929163341206247196462189669812816452367047092390779255372197644536978056523880283427790389100842479763330581433432646913388534767234503288022400818193577963285919702899017522492213096619296734819106789482590276127856536451835850750985513452999410969966008732050535625057558927289568663194502615519077181620357478425757385570411739871705561331376065947611514442432483005957543305261323554328690213155981598130146608850173218135332775019304802241665894250368080322159203850837154193116775750716767676785697959545458726426618363073756510617759487740265246957682097059303815599143404654743722304200677321497656743830047387840301049257020962106257176165579066646631841621313392852075685767865365929437732782962684449406937393980499792195688854793407184966281051540758772412448587427133200474357640351211024188554088303633384382035430467730280595224278264159184871557879246048120577860015064903989134338335341335815666759597862583084280261133715916212381416381940327420844324604527530897542273541866122884501802686357694754507412545566206619958402242852404245485312236922628614196764268992364585884091501850546725138262382064395083277799217395754143165354328199757129020445299891798767453635039356088207290087448879035128294159913410707547552564556356078172700504036854208725417330973416459895767615903167759848640332327821100406272707667606436520908846159714070063630814598894770914490658966167388566803317173267191283347752528078118161288557582791428644956502633876541407524175713917346666517965301186535391602844870294482853986007739235610372300449787938310373875683059994843601778313373173224873247885545802564120281472972236077517987183394514690537203765289514289360410735098965254702800137322462658574485762661454022737922852240355709626246974687103613214666329792690781029306695710696470842844686793426380247971865621990664696452935682093982756229616403966986128913882503997997555399411172689568513400148537758338712010897878062460517118230692638729983707940190970440974968827100603338620587873062995931688828607828316069457577248620744330519803286032728152945202658455050145790807281411242869732949623019529042492831385236270035295163851796122185028947897406435761123720679012572414388882227027355843531537645474710447011353473177903280171400352122870875837091821115606522933670104959686474915119951126295076728999453733410791270529518040918898715184430434011277006897469071540975923446234997324680068368701989055113595587656443818216704673633813429138129423017125523666673492537395822707653008395221843087941607896871306173851693364306028297951631305113496699767419741170163751384946473874048467947177826294593583917564565280823803827121527457414909955913298454891896631967389943495796143168374179365364482618832123629337191459114647336631947592000721214623419420833001784532632238186626390711567081539685379266724171715978545983032142892044230539508360918749667247832553413766980417756641508102303647777487215120905940187527627357532554563577558711788836504638336550416963150720535206599381984739653030831012556309476535134212026388313882773147974437086133107100905904732151030440392724892231555122565210320859979909759744077685248792071810356650329286105564726596691046893739739191896684699899745355396898734583764790478000902549534997176213132758909669825094652586963991780500888723656795828736143005796218010798991386590394944853701744282742461197620452925451154290225773096313926587180357054632073722716099567535256175340687320680284994767291208481535925705147698457940646628137503252935017891654659278770672782769587634143981260767501672263402400885018195119645298272169086440489065838610091852680985206993762950539999779494040224006337874473790862609261181697750762509095809918744451002237469825231743537441746325038496450650310244042278365215063914282895378462420025820051444494830153574114974092610473821807370934506125258430515155901651994166870022356878895677532813421330682949440570780685011710314670632700922456469884110790479875552148860794062203538260061057787442631988250754745111575435255924217107324507370472838567467315541614509399290626991148594927697702703250069023455635774595215449845561839480566429156737605284569306031577340099718027552420683917877778025472788577006723775369535909522492456937308229822009886905200599377045970688896340481387522008426077642100640229571764761258175236460304700962873706331235357764892513928574248771892374089431794455173426496805828106053449867497791842010324334097137353270679681996919199283247075643972413606156366032586588197587042515269517341044642603531122230190938314922433083791664612253313619121730099552185878188953857878009552001758547663157358512901520875339150295168868385782748410507489902450054956932614207516038472895922109497259810725340174086049495692226605351019091672070904834096524561720651617392640955748702312992097812614874802783341387988631881618431856613392387557194624180024665129570081397865559913079449926830843203793676807925529956729272222495624694288401091135792398929826863024428261576462871534892837872246553634642339337335059462575270917916938218440722994916651812424901516252486756239168224562176013601556630820984903740940607756750397497338402813161463950085351762721296023936003281416573802137323194064774563102230893937241816313538432500859907865520514486959839418265804469825154691848942600133917671476359400306099155466252870374093084154864039848101110585549250698835231101428693773674090320348842176324858797826146814456345159614696629139603744944034416562669415608268223053537578289488928113237360942880605767888771525406934879600428481940256582598569401655664186361933846006330642194050492165533087427469288897010979259777599824186102057139753605669415761205906920835620372523847101565887482297826199773621583931394448959788518297915849114254200813865864774614647066124723987224010569716375030060781069671281776890322994799431092680711445620810931215737524243447328903678538879281463163271331243253541666954513851138578333756170114330914923043412680164478019827336838725177624903450801064489592390393981916704912737902567963426508403058316564028219785317795062224463526376808907540620870682538642850452380979203489820281629327004065994962091023918012337605188367333349764855520450551407136563308556246477518179201653982198824390104416122909182841966216651457900716535971236000368188341259587184002894792693051978932017898939213868930180902819630274793949493315739416462711204755144575029446785824403682154582995431358596910581249936249224050106198977748862708255863243600218411834386409532101845654194061168535810076123584607173320172916544689533126606045736468125946500535037078622492894336830493040848890404026820927650344391741970984081096405501260418234525423192857849885516970863273263871840601159055743951676397564918431080167690916423870285791084555543407740884484830082724934439899230873684374446429033036650618144144611012705065654457984117889157641585340430797189730817134995875732759163218056969493062631335113426919957763482216503688201453169897684230548081027670444658310060376970281760608837161719539152219792217990450343910199927655242300890766271268439681162020710702330005942744032180826970685212518002108117935750970454933494119399536076302414980186963429434323114639212020147294734390390408743911400590330123182529733625475951929526539178962599526523199925684082102510319638170093813742948008066006735363332385416722529811778075048709988762618025720188982328854059355303733589328301522270236551103158016352030882679325997317881362786225885872415050156243025133056878302568590497525443330401477751514569010092968513957124568715512220675370082768424151852132602613381805453311122808045159346154146330713242992934716724724667407634065713978491553591490843390436518683787947074561571294193676553800646900234735956973280228377955076778671715832932472384068968743597619238950536556817594092853399259001638019776346659332596037562954539770260087906229230841979282034118375246658798868723707149474969080062031835222750792213299682391430480903955623228726877723192809568383329652714438368456460265546654356074035799952519175413237537995509937756183735425024130323410416290750821765149876859976413889350863470864251936803647115942931541185132646987137460477325202278769749732054891780149097887327868995145031029317409964921105985681195618282556933348532952118935574262145708690535787352220373393091137102780313233159293418124842044598930359171043869652640116044113506861785411440945668685087640762858991253154867241256074489685092334793748538112786561314111883676411244020080671518448826632804116663309910559121989829527186860407066014070064908258877348129626044599767546296649444669383265515884502494564001142973795044656849913926181518047732794571008157696718050574139084102155855318513117865388761856158469296675528974871200448202281436032327879535192877148517798291499725582153765403529157680063867559330552822333069183067772179037834787198044275456272094774562055550517766569848528162103329909740336666462257055441963693621022557650529230747760026739760067326225218674919383454364125176218640222327693767479167811854006959226371733280492496786190740431971260618256067876888375819011617178245780683315022831562187795783363952796816510994636357639756047300999627978015610817269130818514278028259367398626561843123090520270288837884427557685454073047866143625418481498436568268196529988919352160795888541957628837795793441378055131629719812105399682448670703018770512307352784770583692469828040012786568926244941411526862696197463460905889268391257723191696691243900113337364556667606056878524547018431961038554030100302751593328573080500568239773117051637736267724406225503839522770862593508934992244073350455592334693710519042519119583434244158914228157055201730940922494131308977238214132396993726334922039947773859209176618840082621501386227130921155485901461537788523240567228412016153575770983480789551260963980643888888330999216430328039942584396963156140330419540674578524372903792320294280516907705640671998230277321833604630806584496471135388055325214987558585996304472215883911144932155259620716059361143427603237638607143903347069081807201710171302701996425039689973605157234197153433009100288310453488315126174753574163629885832638095920276341492940040652133362085640298046952659433577748179015063060823209745776986451239383294744826988846600911879093003897361495602112680768267156455616125662181796489075536254346159953413887066291149454890728877614497363971098036273952999429538922614869587389278937354670317905367502252167640995677530138770923789129193453252745889288690138693230854953947491613723014445146293556280707605617236189585375924696802018300609202509909801592136268131365085869292463330101078576014218598984661353813490066697581607656420365406736958233431224038850099449730499215195186555039016278390171479316093242465376307121872722584368824698512221520204911155963076291942096922420138596484121885169628157081708110710939120329692759286368009865701887119506452251896407515968435352964595090675361258867555340080701311284650536448355523200353351840438491383175868082253465616340309668923870638392806224604484536945596905844121462602447812192654313743087921062799047763499867643087016008671190671436215218146473542841878954366970626355725041220972137050834030471448598667442962610206050169154789632850627404426760461559632566362546665480371973929375107727149884101524654036637460391002901855357691481276641217578757932722131334711928299203256993255295597440587413140527925087919574104814258248556309792913781711169246111763601170245244016298250916935174907964584466410109985459090454788063310492879898508118873299073580772987434170798758935471547294784451916467044219696825600292821513332424034196160107063500903231383592296960381056644431717288721492389974590738630879420100688597855180197614025030324796075117058081018972500656573393000786964492717992562032350933401202175309560540295703193070098773881167586754839682450696979329786762670345454972976804161939348671196920656898871242527222456897940270584785621074031019204864031948328647857019061374116577860729288724484029695667977788832908200750564479485280789600950978672245016008653613375001165770490642637258852669342265390016815358099055963680157252510385758081582691512395533298965894477119947145558591264775863878666239631151814246153384495693313802191056736559342092176445895604805516425469832903219354932632946169273761026150801028639240631859641557748193142915454409058854876535546696390441991220399954387313239526200321592810519913804135752120415561755603917166208087637530337725454669776546115351367884785269064456224350026693438580781546805285967811810407126762906002313804809153136579765448642668126718257020771492597046298573264753271532307098995227741301471987540956148043716147927635168769034337524453104694634537171582960301691307442724783369795406500948656601616014066175727249872919860458264086405038060945903185892698992069894058700783435737832660740548082364499977793560659434182322698139631939307202638085276386178026449444021304810087283797727378033353298496044461263451547076363999414514687975973466437361497784949609392548148719927759529583963671703623787455404298131362230427842094639519388039302984940389390555641869120667199841109802246804443156497202244145726601236598403828783269893074419560897265973283225623959133616479465821951499422222484922679252348935249820382980632901659196488800943307902589504445468628892885528789746557387561362880307325810414474269681505278725229739248699550197090950872253854134992436857122886604774820410503307512610877112053530589234049075994448560732247005880252249008735426562886293669518633284500950232022112111973690862068770025627168874369774750463084377891241139093721621700622430856028134566711284367018085667813633910910840163645484812703107376569020204847847795928291124708568509488727765590156191837132920248254903605544275792558411839875687965563553412245096953182754117014456432598634453355567171985553871532986785587784732126520232937307627318334428662036088136522095440811325956995025549473550691726562741269294988524687120287921124863478795945904090823910374477862392498372804175250724201140921162547707708070941567394213836034339483133957619331550928308649676511252126101264347438989800215161871115686045369350563799149748374192057324491928110183903577679942543738209149522428234968138599623034503921636366335039594608450386621212914402383749383420981321639397820007359777982901078056410552229216977852568583612892017688855509749770104293277310436626904136153934900406426149108620946959161978395198640534921913838296032396308655460693728102407273625373380391987914882203035885446416055652504985871870463022686250893039624947027558548099616952585758176826369956033542004441899558658809715124778137103620520432025481387371627926139505134838429629915966606994213119600743663094879793647056073622528254949425719865878242793437782319310735889944247474283563140380752395126148798529018912123893217909577690706905961141363154443345248282363593960311602335425190411767986433962971651673888382522861358222889650326494948633478351806204969832109952189584211404782705182454270587264254882215951984134782792061333385229118479094563574075128657949726053441408947683095526602838419119730083163705269584999851033054287318892108044828461788490064787188210535462042187381429823512407547443748160515388268500749775743217599217634671224927012233677970747563614043015307716601637116139495217638921362345101978270124883421209883155559591087470775422480094368970179458614730324392438513070578326531270287864429729766402485445887489730458048841445065585940823751602155319556350619866885061482588524320581296561148391186159110724657005058926390718148950927048293812893573239712476896543721257732382816633846339077764759859516788746989588783703034822660290627453214202339147786456807273159462754322483531224816380435708568724965941830400493082879514427363711011555401551841688631025944056910897643736212999747257366897128456480527802587925585785809042381996250517711489133340184298557219708502749192853737146347133180538558525115638975656794106073776914945931195269597120775699897865993359488218302733523372835431415690372604122392652801871120680143714697140575608883884262366963757940645730739649758992209572738152824466456052723073563983075168309227308768945035845702640716577887096154898585257187797078118481819396520120470946765415154404662482110673243400441060829280965189261050891900939535286253346614316177612453313886620007474945598187660355446142869808997730718509254913694174335812691662875070729313114875783033256718140294928001451762946505722798961543752741866881021431775257645022996516042300731822900307287029182304460914305636636205242808395813788266385855272860910431038664221681716898247334154241976862550081874720245117355435308434488618319040103926839399311874597879412193831483880177113904881399749792018010870032863525433278892656530916286391240131590074822415000219279734617633988157381268191040982448527312499305157035482931891733632487794207765128270723385071719981413828445472971787834298437977551630289601505031114548135458724362943700418875162904181728495868652530666631767911301907966873844850038516978164413650014780018275989735995901696343388982285585849688675364894301326132662791007642027564221686318837950897883739596755662782090155821267546425235441174029826261063303586482547671034310323579490776319290309935469813595939927202579527151542203726765616360498591452530465730705100735059965354928678207588404892106772712281038912373824261236318895951375656910781042280865228939226684962578960376334345656617054261534391521769662219031873653897482586868101304526288454413926316894673698494449211738615069412014579780382454209548279194020233517972456398561285453916234811755270416883719831378852820412905999695230276428411079594305672677970050065220552059268865915950388954526487564245259281634624629148642030823693110981380145554195727004708674404726659022623829878335925654605021235132128076735569402148352121651059614864693716011394763425529846688681402061089625907071045744548213563760592874717027080921670665899526367424020272235373658317684927447547305696598562359578605490532734943437045235871854449629986583629919464642092980265644224065041830738350371105203515511943469819782773514490781273853749918201003014542039462344651048611590080710136278697843119968026499045831098209333786117820807844996924576862135920212138236712728519401938564166634184163504279668997825454032640740792030435946519642807283001260629360108037794715368882159410693278842243652526052286882207707665650997924670760230492887565177448516143015062707285409114465409444562771385875406483810888494243513859408038287572404386003257685456787385992880001030064852370055257217469481361510393877346965752592579728793839708600530835899169451423383763859286749607213929229488237709654651047977252240828839692748860479369714134785532096117542170460208122333452196728602316158860489902142801710654152122254456553280982894479735712849189789487252911452929721158643473910442391613437686561228637490372756400227352490707718683266227563633654197132777627908523919894415282603443866137665928063616040072677710507541082189991222490782234407027444708356039159352793086415473314862123432241839433560193165053797142935865798075172832873735076679598591635875383472037923983984266327440974476956748245967819874792989284321831699997792066550213631416257865411012808668553740116014934100748612129151595612257103660003478211438405391759782560612940300987087806694080772363529175706782424059393563349839654117063617501483452002210912294255207768920965401549460630998499600196687684710774591498339904478429171791554158009315592339676902737610329521432957672142867618101347164966669659346967161765286771279245122849722931023210530745294527482203016588601490716686464758195692972985902388827922756498907391192940264383537513803718001941512890677673249386542666467250053423344048923747739178811461592172150941821479854563200955324531185707686900715894045322409165074715002465467873347467196090769156167098339982363206459407043542451527025709188716499066423486867160145209397804812929097892673918000532585596104867497167347482523923758912420208266566180641755643551007842735090705047339359687607760499075251267797753396450444350519334655675939339724973310080256661350645923663515787115041096356864466880544853541835776551429304603002841150499299648136622312585443011488884110669643991810864380079645782398787454443719390722738659530111093730186912610987868257871539067756722387929669156313115604003608933559764403134001624239465837431809560540239515678127708207747615990023216162179560426945049233691477600714014700948388410321860236617753748783024364807116934137136246682297252225290140163989090984286760960678856218278206078703398596652444886987315065143595301181794227776898501333618173005297876438629568203135538460570729304470411517772697616613082196108030509042245998319267774468503824613270473960151373819888278539154782379278379065370943942335612342649524756434469309469485235371750541683167884334435110980998221987036250950691709139647140655357383632410221942299217437648058613652408685399242956204556647320074328840890242137257649626813825975739375254197585616377556599880054588956591616089717934624818289848306283048443943983384566198385877695579518111752723307736994173238716053761405589916125172111689411194837881109697364592881329554536225033678231195989923276145339099568107826157699822015056260036061996448940546042770701701654308099171376871494856207915032152871827886011875819498888624396397243417955142869041696685610540263411019072516368931177563044581500860383742496107288175767825130793948161280875460932460758495675635344162561843267558358650723317073605831787963595071753714476198145188146826999564206554491565412460969615935742826173129960031584581181616046855875359071242719818209243449494217535658979069176777069771605692741479205990207069922832727525493639335442253406843820996543724404101887966565750098875384157075091590331665725137488871701997801256154136692556749088070251693795847032246713521649292488043666007628169322934740414532008488877800262532876285279330694246712686255880364987697706872882472343295559787705517283355098208927550463707131869322210620001995293658450323699557876205535350825748828068451774043291622329128875066714626943176733974653351646910513103866550984462996189029971247199090181886390770926689040388814274625486139908800739210918579606457098341059432859895465787750971755999679554388094675827584482537327139260669266018813841085603362585977843808326723147825882254319317655041542275993927280232753937444493036682877732174147956727035408418036943874124299380915155493844931370558818983331293857257564430947815295148858487324400033868245466644750313167012043604853539629062891893837179826314604979173813237994736250565525193606779301966194148895580355569833264264980087202401845571955125157888445981405621028850081373104082677695952997273246913553181313439312902588211049926106112012454352279853323289763975397026988676114547574300903198727301148098348457955699483709537678331597131788977085271643433289253513348604725296581971925353376171812559331124298186791442143222484740969146078756606362668026274054591926984067327600977616858644650450089316718101677136980193296111487220144167714042188440983598053145796219284866450303542167422008785100046655126279225422447183383669478919998656957007532762588030596817569548875770933206081995120988414365285080482455377607431283588816410154839515170556696103610502441773831306949243564360084746569741585436830617003975736419057875050104128150450495605439761230760765335558613113562405579056748996349241750655636592999246672380307498414904648974991027372647968942034099946708218967056374815514036870253822497750595758394862434726094356754371098475755159886536188305981655742096662117215733343003487888807377445464736525947940232799077461257157954261138912216234456792060043147782355236413009531671521822020700395507284689862016790708498384302590983183099560908639057981259025209351621533360282797925166062842583770537804616417521749780484377062278303225256314210742037446670708609196835197171907250817000989135247620286594062335124311721954485060131870105273588069783521184548760898431491060169744065909811208345263778521139105611727735161379631881233666727602406967319891598618212352587672746692537581315958983734602935908481588340232031557694312234697454471336107609545519222132778277077921105447507560168640862275299028011553099818021261056563090230528338790613248401613371533610318576656901562259610024213949875226422137985629449233190681570570902378915745461765801932843158272497777964873510909577128480730971273856755206379968177146628173429767662943840433339912313492743193038494125346363634778240466182662375777033056029246046279646979428468255479349201847488281882358907425271567072857049451405215276294344949945774703029226094637065857571187605998187693069755671104293481004180983269957925703239042043071614147609589676829177110380861884783951147028509665224447141688698708379919039252638869209736109222110575165177112997242186130232757141223736893939737279822003218853712601522697005588406196351009204011840170981621508727034119936297673058948523360364773431295718136217057153453181553238148279814988392032504994330214086538673201287254308894377804560171750773506715295239445197042701535984650192162726259805029885636244584823960647274529199195663947474736794819979364861787335450739468174847182097800168817013281288435857203565867861114170256649131562212868647547767217671371301870290268077316247903656009943342237477457278336341035526569302946176317689413384133009346450675786044810147711553153555923968090400362495126272050730580671807283885608541852664720235408585043573550684659695517440574618967461597086904137774736575453372931372670326693249228178136620330215183463883514149557677107255795093996404785929744093765370816801813693343637924113916529838121569669011292687543122195299902011332770901112228693905241476047690486958232262855058412937465139564540198485482907986129381778291393476748167023252178156860604452633894481773848112707172598897430108396278113423267151664149716702302467901036746224348786168641302913845125842893914722103110125366029189994389936310810838179837925155408697002481565015566124666584740389021346504454950133791170319095044283957071038226236353000134958592718537653683670985749463931748371884562659114777583912883031120418434139557743099107656949792636093706159557232330439313724038399659328151012264082576207450893561381730892883027544408293882755237399332081151885102871959408282676237326803866911919467460103281613841122883711409185512417337702343265267399981211776199866254462454547420037376184053434919336499573807620222685627446618455283001077904591714774030176724862341160558959400626128423094836810080808441080000786975505007496435199878417242442023004571606436915953959428788197975969613075941650026679558494838158585329646332546496122482329923523519441358301189824265606011171840375700880041913524708380369438834610150987310999112655132880621395743957746454524187733890976279641079168385488338044271831018151972248622137533259351507419187603593986278768591498965506643983302407215056597854010982652916990857562383330438108590721632983806350815373638453995596061279827056532103550691878306033075844915361990886727981469462229119796016050945212743696484822481318190931055592398398826610493837674074962299323417359110725861653346965800004665146241489613662643037779134221950382412247720280207610773548082805847307500967110429568855836241578934689565296326901973019914779141507115685755679775830937893796147032854381698164802568673633333787911976951631012870866367114549841648271153901411342530014278822713402994895887346833847769548590461598039528943067565548621500345157077973503227026985349101946634623124340470803042190568546374912292959229824294161014769832362898625293107934472879328281880817199180358155388112484409027338891421390933151830280067982167635374658443824045997104550667230879358599583381931431889378365300353955214619839789387692247147650652989788256885216832314827476418853752616009924057449306632524045483037253455617233425119795646957216262576346849255538638176772329311781127108951906420961789523201666703636222965554098670931205128539745068534696066627726485443580070364762258641235376394873880254604566100046403483248142370057422314136667765461207614726210118711817993538112017750184737681045936556656736475640857727622151995993230449873793215105346171156624181943385891616496487695484604132227353292225459853446896737467594326117227412392967416892440603718284901929245574686719566978882807146462528554331450596239391612419281294375927807601748053360340614935848483782468907650259933156099883228123801775961653243519959860164844532857531567943194635758284362273913869310984228909550372895189988413149078221258034624362997823814016643010184547785742198510575317274704608616311619932424669616227666384240810286236937618408365072400463370425702652845368781136361364364800236742283521833961790945374487127310519807433111083351900960703878820952089379057283711784419059488845149962009558643152692258504635455000624565212573074643794227381566312914716136992885568869664646488627953655916994265288213272824661706019847628544727396021318187100131717718252520497229918442915328143078694263474777361089829035700007261991656500370303501254138705126207113871319579714804642967029579159065659911886757311995548651606713835290944763942733937052698239222565176594173672277141177648769805439795989265950850388240829279737449374559981223747581159982063302187861672563968902102671982898888920781176103387809183023069657977056289197409463205444531983705921103718370129264769368894786625130974392146233124889517449574333933491477971753620072262651727189167985851998999417837665204547416351319418140377260721206258031907634767388426062437818397557974757978104121192974444863214123414541688354357825586174262110156366659074598334521889737315599623230520025493217783414464202008035589292762379118404982887394498917182845993510834876570249077165356383981606281647350395282628067248556164894442971657241913565925781772912437814969314899201412494600604051629128532177798963309955127344445300028449078884507744425137316229055984700484306785821625864704606498899398977030549005597105472292888166493108482631994940800419255200141477212992829428190319270372745801053984515314820669801152381838042150969484792118705778320608729866909661912043835809264159756115852585224636530902921084705380168557826970966175777703589435695224420146639166881138453412983588140710665914953234353029205304844253436863078277092853370501519865300375632712314437781883504245123163380702213763079810307641976073294383293809505991199035259735378819318096647667237495215303068278465994513834732724072060324326270678730641788207466295554457668109928638128047741842505408667492904798395389870861416531323660127156094399030853377402505603309032315387961755783437052135320128652559081573009435985701256132531964807225994830403711306804060646809872948015685345509906005957182050790677629567296628843766365407859984349355354130587731366890724715897433218072802278134162668265227512603202685013584432198995411637336921967794922408976895472830596823568690256422595497346026666897169982394920607915496876756880338181523103539529120287862292272921729725345395284656567554416585761861370577951381241428093164832971279146336844194304830739703855140856009907094191973115641395679657549085188035475813262977238706679442787606290100256741053404762324290169509993210447389536571507114970310004732988190108714209379690159331264985142430344604704974494341040416799495379469949133291320479453336499209656338739882683136061548508825299309666341103707884109226085052771172134074800404688966289650025995074128117580580315662519901173956556362741088982693326317967516556789301340457874720586068313610972874119298372085226582348060151524300385780353081555252343300854076465938224850029907593618565330689141133057002105478604930308220526954727471035182905118652857494103615409095683854012543241455153549625852676236680315132906107371932042031435555859658659968410311811376232163857935484502744876315385398626721987438952980592302777050279525138842058778622388871715713693994978297562684685212137236072823745152924627358833812290497137444437159861185660240767913268172681777609616667411680994323506546746049593738288670680078704962409614231645496997601242106944781412282412549641961764336850791228610606350831117814779947192678143611523525263332225371320021246265659891879155414897801747200512782472134869020427960132085953873337724440676983601540579239310220208437599248974527967590086666920659939096471211920423308554256877728193529465933461875974446073710589023282260142813029804326186057166976124755276349537303735844485633424036495333532331443003223747765649983388013518006354839641904087985965328782029071307925571167501261806266476016364296003622702769535357285560621323804502969640162181710084409086511385321988159554179780074651587495739456518098278482058554730751292212752959114123249571375379762526482794966347224520954847655671358521063988956760052842087800298802367198185622063702299036653798723027251529593128771274134232675358803059254074220428587940424807005316035785217759462305293222641765417532879687219260678641402570528605195696762622157565296745147469008618443244540798209760647755557843335158198244325529196818793824548964543490001046197678400086783811987926534923662855375469348411640459597991124798668940081396274896665058791563868578795092358143435594326410166472553525563810712424689846529667890151044960083516469334577950835930011656801849135604963765988103700937190011285701491982975381422205247074664666542565829930955000086984631323365590924122417200432260615392013063294452454183363404573995395110729107756663033640585192918294427869411267741984987979170150910513763921798137279276209815994614868378761283492766434284126322038728891093584725428635301267689768353168115753332958736434851977457521937442181491168959724091980588578961352337666728451660369628477711567416649921619899961978145126168369189475725240942046551789002855046523977482345197519794719783129611948836977465658146423380433467335415733531351923758297774857185853944513910419402217160251013159319657413871600229893850229501298881829675271767351724092216838495018191598858344442268253041417141851374514284912502157810473981660295557691465146130025782551346534981414122281895994300815423342282976939716932120583349056767248109681305022189646421883922869297576061202747684823910844212964934794062718690720767732356079998414178124398686664186437715664661622212281046077908651534519718081967062596820748404315291104554873668832155625838076824742454817867301634646495193174201101644764137699176239331598251682479922665773735302485791606944844974057665316462948999472338087024521971357199818697496393687193868775728426118057473328065022810073383850291766416873849519608142101174940054447947097473352996868377879877904006280219848813141142583897315006063425784008604783597127063238778235641703082322259760373689508971334579624145496322679916179462422228023085799488370179983729537023503485894417393996885728643412362293654427567599090150606874263276883186259206318946151501479807560836977304612387486219756964191123607897637384828420021677246254548333460550461859762749023448695363384941011793692699650929801825685637200787312852670318397153643755418982573390034868802776393234022591315265290805863239036629148996142339128692037087357810082811990183217801117362081374685659087149394063394362155498726389105076447324525286065072465396214621649580403119356695819734631431037438265308281583418163238210148400185619003498587443097583221018366325652808965054331520739948388923999247782371233612449066988276310503922271375389984604392516500892726851710615679892904533418285058548033247072647685415659769201200098746807303253748335089811497350230869291383475772811055952993928595168322641224637292087280320711831877298832643251647594978880305753791464991212299511633807256642412487645926232363363754935602298151790380354585893617121936709055792693421081721303358111459130148920168531793438321633129194528919302763087048858139349741996039396033790397016469167773394329200390933171313712125569397026882768884473500423590727618621726834427155519479608665624619672267025911165406305396330817529046662531370558998495045510074753499404112241479332843579595903786686801291095437205485496803042258462792115923676198027002798466309768811574347583738228508948137188848772463650303691926097363577614173905837537148577611692289962699289439082357592835509769665189693857396648052775939839371258163355644706288851174086431781387701810849957338868650271803815412379446902876230680354771528806288710997276506400140582311957340607290632386110922030251443540653838567179780500718732673028053839845959899964652836152698503325091751708989201899108628377776132074549311099615620247044652042558361725655082766283905736152759166516866376049475699742063635242066840615099059707043633739478678319065170705869375505019061833543239620045711295861426471585013480235742368289155851537225604824321129457332514877092251790474460286515172744662627542508453868373904166180649798197250143434949143613704666648651452825386691335283407876029148800774550401959103674217957059003234058305693655348733935229380385196306538357325184983151667079023856059095007550386641385821941122538910572827442976060799034679113362377954366676414026835236727854093162541321864990142573802791190090903344584196639115385751248224018976890710222492951123642644203732094978472764090338974187941919628420731047885991811473962156271614250080661309710159797416381228673214008367589269609914607314789151452501908559787925089709650782696154760040703948067765693579341759066519864345107051678792946593873714038984864169436129269385907238892375129088156055326594033740121102911358325130683450896343275023281391832687339369487670803804878969937377298260667634209076622807836966247818467374845764169498873218854958297046367954806579916643729801512325043665703561284895019329065445280981195418662877221053724586805230389830509294234256781061927700546561583937200419499792523254814633287700145922273319437158495221816755484367167846084863060810122961133571752002450214572181882702606413684837421632399340093470684111465903724090471030769986006605270359573306376850894205325722818410498992221850417514140975610500326246294404613764817112264507858670999302936282466244198903072423160684723377850965370039030750605468432497828643522651520291776460517285472101138168657654362418209347005642491933949298584959775345511695905392913015607323871010212618177160181573834494755930837563175798109439633977180226283809486165477613257425186937784966547319500824696733737131993500665943539238370959759617570597541580406559875581476952522023010692425381614536145958932792371025469208952661423364223757143714483965076719290753228595338461162936481479081780135274680491551285373269922139932463406008605219976049224394017583616192157076945907626291452018439575893750555987830146628849299690614326203628906242186086464937382138643164140405470375761497790402569233487888088908590305362607083368782509141735579684264338226384341667712903544419951043464575574660216287361971330150873077421213177409886274902318714415272376615206750380148078264230889586293637613702678053786626872093115824158882379140524759815979771637491719425764082689876920641170226391793524517749810374141171731169760617579208116524465880768149060151114921754463376179902796853050792756427791176077064198115323736416097337562836964935187624778067143055766304394253011655784152890658250149439799539207794593488486590020765386192679260819043118912065460824849323437581175469360828605866231592024859822986053074984327017333382502401889596560981952507600637981122886537449139592940057174521209130515500386309290957380314060124553933097534309885154633971176282474650286889596076889311161830053499690682507028194236549404315162344766992570185873274234355024660706708758624247276771234386061258117531630819459102379928445154438654012171516994614981899702797067880014181907223593852401042592818405888345046143469569467367495087662326408080004937155178194854991460132392672938490724324645723325968763572411861722708399651014173478189380484302219904986897238066660337382490000805113867178361502676412404610060588551926780727967083939938803879810431433325845412764761556337706923273773493142779100091994958699244765510511071713660819477523635483196221498689284011169426950713670958904593947828279406508510603351674312893106236244164989607569518787800123894682748854093777695079505026145952448434961396045879401174877030107078846130715047575999577601103116221787065757385123943441247514998271943858377922796907790209289467682505758713362001306951221340267828650200085466849176881824513093916496379382879686971403718686662421557808097529368420476821459229836312172504899502334057378536346973213638247482228920830872248175546520803701372411044589394348143657882840896312627360247327922516273938639455247375199259458445107422415336643276754621150798610077864094859665564991631830787379680450956201220917707343924705509083784990638822069097399447710204316081572280208677658371394226151580944951214918437583939364442768121260807134867532223916905101506153501314691824164327017693534046076057068541452421619298586140268153188141676386926687881905535608670246741668835687483481153969580646315967141860664714437341770595645551248687654071314539402539726689434485932063020347199557477753946014796817327330313135615638276708967520659154563946019438467947819329256103262854162737264457411531022150210800515561542175855473616418789278729623795283979222230879609378556863859904909746198504551503439337923297350050134403211101688982658399631075504235755183394231061498504977410242946795823085059349755531123547053944905650096649941826562631378508696768625723039501278951777468700215059272314644522965259325276848125021319334835316112846227409439129913942814591719130843677229386240768453539251654858898640151509104052815847432915282717711536788669118676415670791607322202440869956956396641512565718334189321373729328048239988503757781218226203768007582850127354345760249605313853285298286939821889333153959677936921546967151946658761977315595012896695070437783459214862786426717791726821972952613596035529360720255568523354342758904822813390863437850339738356749240504158699817944975870362610852373730481949903234034209023365412467121732085097079835672738252822914113507497841840992583251996592963568678006807154921176239909698902133004562323942974167019903163378481513746269209257297208294211773938808331498058438374318543834504277658016531893831749296963906833693026115552874282294001551998651144785269102460415149366262736344138092846878912139456460384078922280223808309457815519313618770179470529488071985928291178031113812870628624297494358309082564573566863207309172316817011404440679158723980777202781937479590770670185736059562233644503951578094620116746281257583250803252629789558895256404514521915119248640346543045666329472493024452415598109329843381645712410909624968903437757149048419749155186994760207454679211553864391088740033463852023610795208166617060974838710252991859094422623750524771790507127919598492767520961526056773419105907451359849537670075319776066616933280007476709828815559703266059913085955530867087940877722626136464323945884041602534717532819115608198464341039427819208449806269234851026722500049382217524827434423284130410721828313046188456426745298593099151551925225537463365387026637419103306831349226509669908699270726484797338710978957528378152420924741660583080747284800076962265086269530494093395390645637991950053807405727418945903126855880959821051607187515046501524311019833155052735615078373092888423235399969128651679400595340670838887138686319417067116459816075211561612162798916415251949819397496004331563764291081311888509840070172299071736435068328337215876197550146894912407976993353983806335713712306035445958953287945376948603151312590279797143216857320846467300787329606302533878016921381686406235052488973718276404727932717636468813282702357478918348167558812248468526861962194367950339253924790525743047629114731314456748695022082944559869702575849855125985046241788012475135705095807353020182733782224467458522702350369926297689551951273452757865621589767258783688143342957899501604419826913459554411029023661658098296261413701396716423551387243335611430892041186725054781684320655739131763843210046703038512661479653627848441710880956225957281955689663098627528569439070411094388140104914702883737436844338780077217347242441740029987037658544309613619195612142370050266753046522147510825320235713954725577452282514178095296008414160029417495931298658018704052557442833984911634524573335555633221550328500102670087656461752909131663079754240402492189035638665527650942907695546026707369949980805259460515155520899001937145447092589614046960052598939688724843867331624345966217780611894437915005158085420097092912949637727418855775353307396552844043663779675678157472745357278071714872228811732244568381093851746577443680166289790909037867855903135808833741394128958358706864012943140234464885852246384124905239337867319001142946524524848719464596768304667944253882109817277708630914609982950322937701925181938257812669716825279325379428409765741828066995720333703922154130248533327587089372160896949384999316404032768641803069679003339962593113634387996543800609484209343518669920958591549223528956837658973311653667937073757184962306180737660141985759155074907723356858049527852936973960066804880317573652677367700680966538587954479077197668295046682446270105821861646093523127635789127361321397045536487224088505164230516626316409680624013729676049489856135783873012904073434383035506068643246898795442702991886084348450669583633288753806371715156204776894288668938234097794894509828015578876703866170090785905393144365451212086118656612145902439842355490391619105925700703152478177629494962444542847623595869944363740586623294956383533269679511367604262131620732044050650501093052632829848134366233806703689434124439333605808901838766477199932824279318572895584887487192951336968435047089849742898279737802575600126382626515355579687740227026284818220487074016597574151594833154515390371406530150265573999429118403721477444285633360236049980100984451321653683363057980403065878455336666950681304401692157278813114906018661110023934007284822755810824392959779927788246431245708807289417881318960456783163487469445131991552006011756656238109313346943172547677349393255980757563194891062759115485865212665877218158544774490588033390657124183119750096726341457574241801200130806371476012900663718170375723697672331091531878216781901920431092947088845284727953384698049081301445991014150164443008228775321674396556538710363763740588731422744928666199796474786136336769896330402427033661436457702188160887384759152890184966085329956013172288387940922156635432534760170226844277523441640169903538933204655236870333412177198552479407868480040030253186665547936531819659094946557101982001173606487421798338270070795907785159013097564309569622658977726245772950878017945038402472495877852161014913654481181237513513704129330022019895947190216340942114987555717856922620686914221868624777706269936129368998336663441272987512861461330670726985821874941434703315714871274390499552605593244381750875558413911604282739654827916406597347205031592957459670828466743894711480756950369474939392398912189343957106544824662434527551567239096463505669576461392082488902568405576914443804108323774130389542160847248594819835457256208853344273325488737004763652400237549849912513089649079147902347743487156018063800919477949370334529556843358808992808177837009576032717363819167408812102053628804240393854485539450534884721870567642845984088830560862793816639496843136397098073685893918329243579373763299578895296847774077278987711557669581740619270959208686756921207046953288041766262824154835564359124012768047031136998295024296944647033289724568641352617278846240296319672054196180788619409277030787462370743907176993211339152729549785242470153062322673436938331837398944078865261208348413627374242610453317410944101820918821924989345490182491713420213967337953757654793460021846829288660701297745685130745844110787257662005608759265457903985673777935006243509336634318094331585324040834670980788986706450426961614665028536302824580733019230688726044469952634148906006419557425473914229101723309508661322397035403507443803393046013436206022400302787755028201751425318255239374149346181466564629015634104799264796982554170492233681114639158578248235513787608092151545728724474383385508585250142404981952277530380467829842703642733656268474485292753197188338882969330562936406125339985803209763290617898420150979366587249422839889772486862653156092132283357618455113579788146058271687171524511689679725704963102391306261965514234131439926806653481064134160204933820798524978134582766695713012347909913517489073905549284983676681896606970862194133880185231189152239939508694176567655859287057532251427030188931513913783478514982207294426529701699561062235939989771768523802061246111464422536672304705054342745676962344789612170852938762414407128710507071659418891981972606827787842178439124313071712321325263614896872053490031220985601430723976617192810159265405657888752941127355346720430123693271485483600741162752274793737384950739873959827252959096999479995679929409319148722384954520685978051250910049589095046785624719581601432740459871885088541700382494046989432463852836794870411547933971705386587822195072601144299846841468793850530669359674126014479991986074369832817471817878588439547453770254815201700088257722230928351571619503101998659921427960144779000322385463680310410716583811442107712518683596335633125868355710609007788651443874315026769401291005887663014899602080329131041458514095418552630798875723863592656747505686645422664487713998488346814319445269820509760009733833982467455294843670257407934003955759793832811419439741344631438817938076281413088577473672082017493125448378634049196996809031986292086355051187569842194083172912272941704366105647508272350983217088152738889885649480532346940213064147345920034792386132231806459692493840496305678616557296066699854787241641195766837439175958962890425289198094974120876373717326395523849502429273703502669363707050510623333697581628529345272421743603941391999520740035232529546995783774164946524433452373342166882923356874925954986054036662297128753910426670752097150276210931550516505408817619675595378928086350911572743422847510356486592771240961068432844911835490657381757524942662518652403065324375317992781543306120476747393363469296411779294345095120130248413785806573814747829019140790099238145666287208240346062028214827774772918030766326543297478871236893579276220374578357222278413195772084180791706227064099825776812711610621284284672840871371267941212311009696720193626573885592762642856842744134790447557747018891422046922844705258080508739180820236312884645704823214282321539334175982353699988600593494563431338270750462402564390029768458821446051106033693247013689489492687589929632880850342106612214338843708163073122823880139840039367217506627425739114401801811860112667484002274523077904511205856728486032203131367836122632312108966780722890135659142534207117370014835767719204379050240102358546902604026746520713224202771679173474000377608264987168436132871743927979735473668478488797955693237460167597446671334627598093964876595644583614394241170338626653402910564652415586128980997015022024522034739726729767157878446118869475761830341456049368678484553858554932026929856899850397435050385096697025792970604097502735272003479309531289882444347914396469127551745020846104910702458097945911954356171033754556472866599048562815108653780990170088144344081909208274806333729602437452887117724340913766566195218377043641837886276743188486322627709186928396385687406410158248968009435975750510425179435715590767941793756953255014116259796146125159357544234672264462093181718728420177047528265461154171469929296620010170189171852718175934977821336834600535431499943538070559187361563160901757161790215168681530291631273517813173768162934260566991995475562280267722263001230866413623089598127289458187903860126325760140108336095820255077685150202628723562452325744320801643441040858768648891228208378676637706679821053052135433153856292086436184599250093250600124089041513311081697677366134132658365941081763963214627716439320534559680943406296468125852163121838496542860431577525862305067151108063160963028101911917318286739992171200126137126077694897471785977415380750036644364488846353415356669996953278140888688600067422081907834872621661351076789350916693253165844663195486186164945756450199106577429785942378172190043492744269518304502496658835673153658838905811539650893493622176820571259298104119293298179604473965776666797783671465175931681930581084297501980622196313940029811775788124160479894887112183445692951377930422939162437881048269734141796756982810721062102786582693972445861403313685648684327780756284907330641294477909711355523960773235048797430824509373195668493776343720897690346348518195893386817162271825106649854780995313530992372698341172380687930405098646985644583374784844831852210791616321295311507191430417202876483897322290919187699130864719037392490229368905183537505626240451274398167159977614311474626157185177652443726163288335692412606116490146817959974685118272345652455520189222870567046719554686100092328544254602681253468142657004143787272432731888977941072511402962099549517637716995563672384116233430840977167998505996224829291319073461176994538783824673070772943856142738772437006038041599644271569604095150943034836659732054550978392975849336115447077128541054168594287404068471561703226400341348078531096482759872013146872766896372399638260868116238051098276126160291548870573226958081580342919000502160173314317279607785100511019211828695346059804624585713789574170309091822785711857184482745780326487973686077002037848021638067393882192200372643813165882151645488989608594796022134180488682475509016701849801012553139198323567941050080622569666429677783571588601857242614923223405030181631954227114619929908097295269982478140874353631519719636076828014561387733434057044439723698768783875002842137555279992904662686069455944557820101986733585038193674843366575688848109623925596913878162936267399452378705993611802194020773613795108205740786104536230898923702464315460478581857497070472863945076926625472620711960442766985736681116642411654474202853954080785707394410350347506892379195992745310498463608413261595152781119568440777395468054471367449412785293025543207888833450819356580776196056004096598120189147654080431880948988163680318138203630367040443364574090391376644658353648260207482526101720082045803928094940450692342172313548012493777750158416020403051007342884278729641024583836075991723826822862499421894769145873693005390171012681720077504206514959555207708991555737312119156770887137028791301508467425407583713895783778771635521870413340160522828549399196629491501931152097090971992341847487197563352780268118562674090212880243593978866510907818576296739397449374129958262810129436051977745736363420662288687788495719393923590076672934684429054323863550513721444784560490360836599040316805481249383095286410904901752157417726776154418137621727390787727010416895108353886467578771373088902799839236991908428811217345115087798653288082883275297966966054223708313430039350655285801577308215295398125974232054862582337459724931096853821142888301803780083606493402124403562567904417015841176079457007526867134142593834135117324595725960065686639919206278824818391319771287382494352456085810911753162656098827447913710771624755260534379291953443233141682203092680620505213619910782220395244435779521139200357331411518560032258901833115165091797179780465854273038192794327015051269160489859886158415110060418222813838561387999276117410054539304654386755639773280687210480583312049509967927407909326374902278381672521337971423353828568694370690149022868527448265449592472879674098663848517231002022681769724847027853036149549903100330633843971187881208062846305968565789658786785248861055784343693436985551366058228862495632550498108558201732319227589517406089561738627275815412932049096974862591644279258130078348105182447366173817146793302016706327471023788750506651159694091865505151122670485179580025527291457788733882264851192451139311718064207836907625277315633740759095344665074010479110510282441490317452155823106536851607686032967132603786877458894964994022274318548247826020569738266407101199739938405553514539823872245313691523350380777897822374637379353815209586818948456139197192373317824319556733264303686149796337284248045670447007091760328974884437126476757607209989090928904713413146685739429682287486982748568330463811101962011672197326296737095281490836170761320713620685509862036263288292831211537849490994039608615735152605260459392952028246564615848654307870814384367703538391148372909960176151572954492775298465258898772388037897269365431164733399265310919233436182766232577226645726226276938154598551554293277479141971289987699080154264924097498517223529478449432394858632740160041934225975870054240336027562807949803618088229909323762296504560136507009135386857397299276194819194821212401299505056664479156072735368241839946731615451465193275094251522528190269462633590265845666643267959390874272890521655649723291991405297657137828429997986711860874921762379384279489986392908328885342510165609067844771972285705764380250568233241092916310063207403922084396881516163494688438876366954010298442863143060972858029902551577739504651615652530673351295517634665303139949626254679089286150329379918606080094055003083128148662949094372787857800764372256236368226234371646717568839869456748530944813730078567579154559407109259431760133489749431862232443284065069912160951605510495403528239055184412865886355942454076182697705989039176802862022747156828696553414928843051585265666742477694137897319276878713402624914246963838023321499305955170145701949125862024992992107187945950451499039202698497388906476441056964240446324773398264811764667320194047704112078852843597905439112691222310901169241979339710287100996768119545379767307716084031168204510783592450343611183388006017093811563477710812888502637371043021357868693460533643777383287858990516491545951417972127226102991749604130740042144654650920696998990462353042700609341342437078610208035266602558666417760872724782318777273945987771373747570520453905615773782344976212703902635732645831025935847882412555324983835672276877468060076439209410294014652815577003364779310965071050678283216420382422189567203574573011907228368392233781659060258354913497732308188201548856843093353093829378869463281215950761867744271410560615328799241933990466232774673170161470841441959687243978982316697988952787857783252250633955694370830087427188581432992768541028600741560191998927403791209024435203279633310405567666907324225486231211704944598432946870950069686944138269076560197341289616359894272723691810223996306053993764349651285053724768570942415888249562463254420096847054982542916056322880518862817678809438249710216906881395731973087553125138046902423014198373241982113992874134879664848207106976388956358262878150729649330628778854012273888162747173636785390855496101283676870551722561575993019248878386042344229772833940913585950138040836480177912078506341711525623839152097520386592619877441388841136432146135851157709306783697984814437462907992436068674675585314267861692451987846142155521684767409110263892487101443015321628214957994164904837527005823267987984241723602208533280916884199886207981335818896691465149587873359085003932935009360817235892407673376702352412262260559680364256727236508362347410268530748732023695147362677852362571238035158096647274417285420272364871882335727050979941058618514445893898716274404458671783789605144608093554560461780049757424931078519819521757095903551526951443844847360403510093961649270214331372575516002215568448662576669850287767388948645569101340835165925273989439532609339594050019143986988539089886219292109280196984525621992559500541630660549223506017249648381533782427840795775770546052200395543015763459796685828610639361251051808986710717208781826824545525347480811383460169030955382407726747032929215965140376192894279025270761036416095457824805212075055271948272927751920400879832926708906711672868570180416099711731282881532746625311092667540727907555835218197965221514643111923726724229351583458902975705711670103226665324936083938510003645888895715269299860028368463420904921178631216184977769180555741954828893691003958272978352323988335088436349535303452415796414194263662853188835411878902521145981435465742292313502257824390198488403181877344311497442046957691601520368076001446003250080207803083950317243209864756236198678207096302547590988424885621268972844499791955356964966728493932542411328591274459018466151263418705977912651332541947193553717700645098956771660685098258516112935579550119956152979813793123533319223507237221737681750322071373605680119154106918677515144101236921308186550196044558686147028693838636394618830948342695366422613159809368662554882059538345054974512113977146006278776242035127975612120139928557760018954037002987086266029713052832109950706788278188124363964376423231140620547533088393655676755279236658411072654311207836024969508949517905271818823309396601395344571819803079843036523521665418538073075919814367665898189819068033833714414160468293367182598534824217121356991392824866494498494866404165449080860822329925917818778421032711155547976901847085485876805409396058067799974321648331675021530379721816568570816104779765843606331705282367930996184074961337880224742527655511020486716520108554294263720135336803079316873334515091961101824437477557114123735858211221253908641698121065338169147368612937278670218480435006909612755369955955833681304732652115876627218597771655699120413341979687486049163260403257074740744350792737855031808105576528791921276211554064874928051425061232972406273911339022471763071267622997964476408516484926762655153240471488696383194777492712705505967826779733167995539389919808184934805415852408445358402194065144449260604903507922114579029441209052438602825153213025626692935986375871162316011988949437349127189299977593912744956154715484266364191687777761864648748073633937704641378664370667818594227753947737461169260184492069074286105848349964737913080537877525755637046648572527251042729591575763483191908156366728290679070391143943258616351582666336669183296449179807860323498865661520491836812733586658074618598213713051025569283970982733597061099668225110666909515275013166077576992868117364086067900832005421093422864881531468290194717019801300701621663225607856249257367942276043069805233232494345451956351637480133776248649064294536336214724036531060859719300784942256326228807104729698025480490989552132058838890111917109059044418995247860386252564234683375644429743642398663903545910546138912755074446249890092570207117087198785749311045589261164196114039073740734367001865901373099368930209648752191972493628618250075116949414760053070008668123696676034015527816512564967934829218708392801388779857138819240474194068502332813356177107525471410589160163702594933791266919065719758187979386696885655200833807374776215607856184871712708128062966464363419106272890061826554464420181069777834186675658880294092483229254516726842155769957139709017638283426533835146048635729636845500216315809380035901859486515120995143469229105143673129935210640285902575012394881132611893639301660230862149393636916595086389197683429478519109532512910041349552839536626810670271204765749884120640442897726225156028956766664312640455316254154351886699773409692754448469344620914472072066623350059333228327979318266656450334581980538819630708078685791653650878526242656333996652709904475208015125157327102892644493855222876313557333243561811087833085623057377368964320488629704423041038116747460391771872772749928478587529219141950834866748722345802761501672483577745862853579367761728170966965939241409476181939849172693473557228046472676831656278656250182749959485569107992407314398336363673677774562519036790515549267421113537672524821992889141468861529539030940326120848830106417318873115986681658930175585286052586681943409348459958679999231576315791648879953365825589512216789790409805766113394206502834141360232019927633407022689810411976093886989357239153523220119443626903899543940287056649892666681974452377009449597110397281972009299004951109294358931652776221092421737994373768008909347501374255159388213229344422707478737885434804400508144217276714239880538579771982949198991396362098944622374853074495075261712283567867955691915820446163995464642711165891060154752896570218704149027127758553502016688375384876153275028763385226736329533500612809086212587940590230614244125870736323156278748759299733844566007999637450198514107847984623869736036941335235432557122070858864244430049493914763796138770529245726511363430024605565987808335738906595625921298146204708834600888753787024038962101231579699617731695990766511964815162094765910261111990187434454931804312935062067757772643466220185939012203106835902825987098400889668429044528158294061206796957566168944801988597306108204520153829516323560567282579274637240222384246696103266826213252787687344542900963203780495250078999344190563287950797024565537598013681392637169122560122989631691859932492544885421956555808319347050253263076649145365259743383986056770204004069281644341987227917950425408970473595416373852699935562193208988528828576084903634872109195219424189228205241450525758998519662737206987018510163238852004885516486947082777151980151860580202940752861126334844633935177847769126523477928167505546055872623792496205752435341620795767534417292427864979462535334393085900772706369663025093966312139825978458335704825405472884395104205492185852474410932256212816502059273730724794399366511507815927113063855147354176756316298211834512999371645252800364848493185917408681657988251312039962564240065688858222948081854235052528783347686611805294573269564855085785668124154655418861185005434407905703184706015815845991747126666175044134406721533319466449112093577592590996784467777910740200801314516742048517257151231162882641498519470729166766675752403849638173110882522004182338507883327763938010697573986887110230375435080217368074476880926697193164214115019763047494681110828763811702838344272277178944794701828551349690446749614757693049872582191392963701606257019989628351910044244498587894712827943146399252992868934748841717993992929107181386828822338130598905421288781936996210256418178817218018435461862858735753880116767686813534627973148130496537989630862232552146415031915265660689715187345233585201121665126875029191331164712268709372561657054048173783121598652334271059528053337689519094833947223742925546169481594123598870841207831490262076983949626109466356246387122926752611532389324638583280538669332525428859375873083028393070146386415326052772680526599585057441033610847427271754000462762628790081337917836056206779012020831656682990738997831590383681753444666438704240511751231136248756598685308844961304884503737623291558848727130004094401107208499365207217786624609451498361124957163729290088134185082710435584213926430605410755151751922072034426266028475835473421218919918995416944061213325226917435029622363984301153135346399868089495684642621015192176638690065353741002264282150793984375538755760155220430846233427185458086216675048382697310281275262486312044784003808368804956968035195583113012560985354317774257340347819141303183527820522437987073441485111178653593395697991318074153803774458368597577090518893894059037995697979254589229521987361867303932783656663713877101598305234313581146673192331037837032964287750641373486370190590685691345618618252537256361252316379460435663200538465932209143913624479856587079032322946070539290166971887224955656793186023746484466320007794477563732111648827448407146320474307023929288771960262648393159220559050344486398761560216876755990724235270052675179155831852648794712228435006098109113197597410789462941402242000082265098853113852165580817508622845272137164544999012742497472761317161230357391933464717691718258055880149862035902810752283333032488042249106762014199678875318525395807871055007876143090347838103129260671321484355569315075106244308817847740615232771148891738781991543517138318364083548481785641055537243895822177750058615543687719251895530124479476326828634232145275555116989174306489137579772459011271978647469210415174214018321939164814041918185354611931807222855022512079730556389535919576450334060460396425856676994844278396245043123916601236467784231978985046536862667766554511311482615437916998752616737520359951792407140131234517233296656597271531675993771492678166649943701159239546648468428400171458677808769778684432624636380984307383757534545269359176263216880512897790023846062865317879265924493220394740722375368740041475484486338395076539824239775826500061988867562110782356055023839550867575778401536723275139969730397186868501654503254499461715083322270017076744918818567426893790748507718766926254527556488257865612494259611631496129944702107570504017666660233699300696852314916977215282549887488807667694521506057288275787685261423578578917783255234988020919336149265178192385362384261806196841851317173086542845700889986225921175240488392002836367955731116233963699057467789421582716189666077022075170459817376311947551022480707612552727703213068562184873848490342213305350760567234088281342806426570161913552548792194245877605122390359058938889907090390069561122917239977390873851423291368401712661745155215064205624698356023074813539977943035116628576827587681950070838184079145248934679288157537780879580806512216372091986648343924590746724171167524026033601061327722527243310770744656413566885547603282141274276626104037243279890043989789936682154929340638351485468339582658475235447711041389373643005172355985101999395832888873459216008936947563396870067138919282079241394284104646311102464737463572584131511325807874055060285731627366109683399256303743930411982330698552907201303716008938646193167361834059316035399237767675186765992798579676875390416220780154080317435837276117389509994476420039344778656553630538860429463692392467747617973611907507685966586826774231727983485884002837713206038075558283939145838808404075939456258692354808350322937081274483325329865460587538492346700897767063287272500637409689227735831617239856172974794233427573431276066378087943156517674464489762921141275480547221016697253406438465928950730655515063004086414865485278929251844150967350674542189241416199835132855959763015745904402616695114891909364223251421603372870593884779859470982591639050740855408376019537553674290839012553415340479722393223705772622599637550555329102485534547347005676963113166066448323184835656592717409780597725538271949984550238760317147003869949617486097877431859455261185066286503788647593594970116257554315485585550301885537146615738084119815887157120429150360229054830105107289060403496120287134241577918242544245030947293428347375263248691308165562048042466062394218407079871002491242243011011666526791248630185010301980330887410718169932451664262227054765963740036785865347332013614790411875792703989436391293919960104456153984696258598281639509322134347047307306660603069715008049775628616765761730334015867543013817782509568127400195553878413518287626456550470671296947108091871520216412387880900219063904476763618771734766354063878570837280829006756601136642790397947457234102884437036999982529649641063129727158072439795742390245430566938196340272308103932636770250235505201776609016648145826663642870959021858435993906901966771214542773235585372960587730274788283395726770427642599310684030246002020441645424451574152721889468256527588861958683398015198229059958335852072156074637848995125197941101925546222612389157887423461847701560522558200978775574755462583273930476534306996099274713502466381752625911366997012404192752125700170120845087169089520698461844017755794014658946202705878503835107680345474416808245516273009245712748370593392744027441875910428854178948437974145166503935750015363557717153567741374559758652191422353618643886536778192720828496447131959164436419180275590651853657615869171180298733155776665833828625910806205547810911520883106114619714264787165458644730453274083715668015376273405477329466235726017738188586264230707190061329026989339946760408223531871271289062494334483604680502966797195251298862002990617844221190417111429281128364303750313190380896254204645979343987751701258051455234571531529088414759030326934478878155740333077812400210236380746681473783830073972852900485142403398377900211625297754092403511692761797108695490225590475549810197660908713542405111322365705141846552896149088089838856056702376687968542497399404879056148755448985752214645988785896764119148384890747852208489613810612922608737918874249266414734746713358561238712544082194495952923199268276044453178320670400609202116451724118723846920015811044021739986750216327738725211651407760337694047750919270740776261900805159293823784935247497178509943120296000421010892704471549254919239205722214251481992414203614013243392950422116181452243623639500091083996441779453638433212655762315092630525833433922955466886195872883419622277494994918813930662351164026194365056809054484018130761431673963113759234695957213439869784503320933210870823008844831527222726428595001950023450667723305970522007791382547093266706153077045482783367683522639377914287601604608625037111714331496814953926640201082201715835427044712207002980592915464841309676689382613870622499939725267184700919736143735111886739316865274083055353236081987448336944678914907470444060510438623920672787395841708604631654093259533302423578192664078015330697363099520329883682087348766676801871606638803797010775967670710538281960305885697451303844248825378580279035626762769160370346180572369459112332444499189197029102399912692777546853875162048492437100730689388463397970807923794704550909002049357789822361352873698607292704797361912734352710988327091119753355404383592967940928449746896834103867635248666078059539029731488374676347046693206065990214111773513380327222285273391389190146562528543567751076188121879372790505378372439024547934032422951645870663550045912132770904436712121737822047013096669909848661183153964065382044680229355794218429198075431870995418473624387516011561230266266265069046696275358896514127914416640507446626854223362910923483766874529421244347896898312498062597946534712154318362720569336206887404277572279649536150924251480869846648597777104129771641594988898947069983534494892001484406280381292766861790755877650266930653562223804158006262367904051287122903130393796013906703534916456088061457230233869004022853206983129138522292815803844574249475903808772252472525704764928274749715892211575891284989782040658979108375483964651407569182647391184057208628543555194375732576178915305063980077592233824052154552789315256501882762767445376519942456570544683125574400042044433289625455171854741947646320232382693283990787227141293614154013811456390794825661615631809111642530283881891930015166481878848827058205726681368331023882201310003335451047466748192949781099671379774642264621798726032688297588061509450824358478681719254973447885294117318532987404031864127420018131923146658948883881238562329007003990628767549775138793018283779850180729130472474323770994927749928109012264431496208760663310394794123621420216007867412485125620073905374021740468168994813435489858221278318048388119282764383990176652003357298961930795903279725081866202854790496048670232860233727881022816667159251032986862518286220253567709411724205835804406201086551186858411738955662265372036753108041682032368339137806845550707415719351736156544259657211598378579742442006149886929777643667648896543859707178749071043794505161819724525768766427882361481089731616321028156144428093533285439095129293527840326913554460853115811788620193897817594983779451000776286753451725292001515384909991051976162767793980050978329528027881332426580153346588270252756693854918145897715520614923591220369664215432151593773198680326255971455852236249947468543232785939184226979055632655207481811187490916794049171511857673962309004395598300143450908854784566942057681896007310490667748515241238023842018990725798903231361959768409287392228004610653418382525824462027007265450794063642676097653799284784674181364453905464902541522386658649332429533426695486779732602150637008573133926804150213576857357219174683483202442659343814689068050216557447787441776694641206880585458882491656626189727606726953103406267137731505968516000168290249365070513988641474676621107725584972917511561070582808796168726524864123253255206280700419443277180382765673101450896881188206928867968594900863863548695105689722597634709654964189545920086593805517745355814201758976776364786976201945066764632760819640334119470535802247644269646788636635771128969276621464880994716250303261867458231278763160093033310979970606548821658850838650061559347698139349226743422976892486944315188213806609663841630127656574111327807555077690462376831668889894595157974871988932118279504831283497161081251958052355728003837464460810890872769186482328177721420001429960419059769271398581345078444054082808775655878975547568278711362935007351061100408090704797392195320199522561292718181821691262517223783722565840491089913958886726010607925536974649981535616322112350983748847898035052405911210850449248645026439022922407429197608629186251666814440553257283313596951449336627507063890516295319709149430906550989112535477239541267591989130085836716602039117106633691273611869925148814873468596781075949690167722143762953682419918013535979338824235458175621941324572071295314549641924194816740245255889998403484599608550269183669453581267077917695987064550788898567494880589789540341122749886345744398846420086138928142199856980769701986112298260294011820340591243164637878551611425925853219227378024677760992542178429603604411115110738996038160075411849868784619740642624465705339436071084498259312917096073137490545395942283107852493787683997643645645029065221922635031093367192004148308604505628434068822372230543511016699164484725774274729768544986138458131002140202192897370215801063734838681472660954330911556807727744055948518716311794179282828256158163256675473588184500976176965833423371266118137906767270529066586563819891723117485320341483843875374878070980355828777154686663607759918796866277586045684514787736324175941795327454745944261975233552167901442195543989889343353526653753136453627320807358751530065751677788994285507518040806534377541163441902090922837280922726691693716288221308421800384947753019797574686846783541301405567244713925039011041812867359060698465905920884015111494598616013593705406649281630786041891745748820302014380358253768828332636671452725196779531522943190263929447925916315324004123922245612353678679597677726834270659759541630713283643295171887279708879171407085517335184338253396762244378711972662038703589545697830493741808222329698750537983925105844830858772926870413151732500313195159876234216600773616482567809650691312803739974978675407471956141169207622958803389878118896910884865132927665423283627363017421531677730396948743901144425434169642981876567252581882410251720994224199482299862660086220683094872110046945338815769285413185527385447923304326068191548254731707491544050548885612882182546423648506158245211927975064417673012534683650577134979103792568245582853628365478730586546831227858688388550126618157573833119222959862859798970898786512657062557127682405791831831574475762106880273377265654973551017551562146281874597252130123700059745657304593122083431980146664202597056638561104782256308177743257062446495963448457717038505143046635511554081112066362507102468596307845699738918278528815445113471990595659688662249676456845171740851816812395285601568933807944684702194505823159020887302883067647139781339436355669626434652966071234276460928055726061171024513716580896321449245104545676382043149642544453969566918830618368804000621868436654510061701509516774009962085331826944673742528068174774806499530958173473712839486854592180191893449622393149753058114176851512846877136341237463763873400802682817827503476511797622507308729303001803867221170302904513699260114352636800660522077018900345305395589058771262514942829184300216230268207023686450913385179533380544149607355460079224681513316829060162817107422507815270192995052462991250983562624729830219048743621916498779418247801058024085410535785990429959440406304253485230575082745439599146040892664939299474462489775061949118435903572412175304861013503442628764207787284831599425852638406980970776820137807133264381360965972283168587864198199584456435222466537332602309016224972423716748694006638315894613819410009964698091543118047780654422422493142472786113983679001332205723732315386235687613635855073076424474074194153060682550930475178197359164534280230138843558875937832962632346947532727882568178204587807585149634171629266659772145051094215627822056707047161917789983535246398942192073944817866406457499089497645211576680307053795863737183145129886258362056676531456397199829516114529700495762732475072456675358529206896945486035729770601343413505304241756773797654598006504596453622880982039019424522147716378730623273273675378966856638829860561493229886982786491232910017621716111008895215911431372254336489310094738855052804049982683288410026731299224851281590607456741835099609507332515280253295915155900027649783503442958198469818529619717178910539057602236499599411269507820206309025064509991635677770866053267602843330033899715697330154439442101697274755900095522429907167221123910510017398424152952458169261472910491582553250576806378396418149037917184187979664491177848006139430071910694957677695160779736976806713534466118215700003119539776299858438453590722874446237308015956241106428750357653878987502753146471332881168220380075134134485973497433992964168738951416792556976901301378849753343663950531492319449784676899884862768968289195031644664645947034914456807136097724032991709641562508893343564112157015746288253820146710583906360485535498958766451795018291436474621957349907977967990366327729363658701433108697387396363474425549076719221143199655126673528616335945651266156193769485498822686439240547202126310685196699554703460761282035331793450938812643595863715369761828465206405577232703482539527636854269817867527233553622253720275768745448427847512475434940925073410911355269588683464280752078281675765448932236830915281222236966348047041163960558522360849745281766920325124119400763905669179236776606260682808498924556870080614636306972721207972357417393526446266235537721890015071494673150616097349130988766364636156558647792002175286705794585394339367739842965415850432584872873989263885890838702354448847368187077391892545932533024550906150377243567808755251457401708873629625692570135184094807601132237882247364946837143939906719752472414240568570489437581235773772151937903816276384338148492332063161416453894290987501723074148633605312458845898658548368842175164614931738416358420831623427257048594123044665381540445201942497067865705053289539888898621485229035694406185440321814139241823855146772254538811644633344602127810279897289578154238975020897243214383004470355056855495291788310669734759143159833989942448520229144214730423035673312778649386233414233166590412254719114524647925703191124652621012327759038583665907858119027886912611198972317640887682856441475258482576125295918758841506106765104493468971407349365128628735057426373637957293326040514093064893469560941235059826854140698309775929619788655757104410826291651916976609153006510881371849850945788322965113491573434728687381648839148758666156106212277961306254939679423993576830605300638182519779056678319274103700661554688949610870823698972376169690043720029860238484010519483296544350189250148762778826430920709671122405817603718467500580298195493072355640303783839727426522176248606835857514326470873462978373808916071300737273737381441939847356691539460379320987516907493028290657605806063628047338222609916370402243048789066592696620109550179428137820686819333804385375579366326822971002993894954437956718461674423148661335563823388854990513879116157384418680926236230422251572615252706148276495536548495930683389209969093057853065279847718435643243908710251368832548908905641386244926439154483773117275943193678530486899457080717125510810411592396142324089740845171859894769794519393296704250680845290335427215994721757485841703850529517869472632574068696478455354609929278080586134141044777084182781885066759943781181232360965275664705467816558560839054011892060776534437311198748581656630380279774725295174757428775623363838822830537097714104392692714713163488542488161503779459819592061313256448677244819078180100626850621602976407344606023849794335701245308740341732512265484124398858021717470706826902339510649208534362850352311787016895170864411707283881320262351699405299805358404429963135471386223548346287409315597065499091987407536218688308350333502571555853149289442968907602846310010846083006138021144764645473601768637837366233767568227197714119627277756477093521187672464551740618433944335583875173254816782738968117800846481161475426498359994735914154589352651254495725646169621346464675419341147559352909355848642152390173017910636275996109119105692802064895449128898383778124789529218167377973402877455710717740984560138783952269864039385034716009883461824637778343760343426024429186799236458353379818706282282121454411917155668490123312168571218520188131321644318568634331544969061093302550797274211931668066096031736881729816350519385220760357517577891716270439258037512779290054357010708455029722570678995500555740683233934326543846808828999245682587158199764237817646056593323739550376920583179886345934352500984548799030321111173935276250395191925523440502170591987679710114697495736172117475646356873608780945052608428061323740305981022720936123800867443042065944058734299722758103157265689934494501274371562940039800076756986015061963845373720219774858671401023201999400160407330013916921617095340434659645603434454272511684641641301236755774690534880503855091977835998087367778813464350943541586188035047735319352322141378523689329926376656298280456641102127441618634278387446402233535959224271181979884708251310998773206584529490180694019289259402128721800042231314295464032251827012801995939987576230719241365615545721820778438070129043341841437373734081172040670954962445807171571332131538848522401407604118470660205217105237143197951616659089339763669611758360058793550148747745406522534394171672400820126595005026519201118709793046882381328894519529813924953871568905477731711622812477936102200355988710192598867058455631258094267397367603368528552143585107515748221558158450718241900589879448385638158388390773844962147287901956358724420229669851989096901240858010793928377808794034353387842401640920670816897018071750434600746090371967408288033794610450163032342411536295087606434852121712028269588483189856898390504916288147901149534619117492915135795262928813797433681580433139002208465420196128353748849148431955314682354304532456677377532499179964653518220768428443103364362736843220167452042883981576126604303906162469706756394729318623297371366764270971517553075663119772350112595620968863685801632212284707996578706776550624919816635798103110518864385614232932333243743151007480084576459418903720420031443015700247969154620467555066836268364687257198974901145849200008897249826508174810440577236981993535038232342947352238101191511591457741177994174063298639712684087764655712274363890543529161003220664863076805398860369176389058406665443160528537520401457327418816190260648544936102554239833379726790805649268580971376328969634831964484636143436157091438695415416452054861428082632251053739443431341297138986975965720300221778937970296120221093457185693124655297580682091524053207777581971127481423430751944922618950780828597749016258817815970471351471963336664130452003669307743302191249755602791027874067780815953480340745842271249633081292942959711410530140868912068527596302368572265382170247157524015791798729284368802204184759746980360439037742576082822575367986691513160977882285055359509038085865289034527623313297915975545879814013023943820251207836368064514744095364826091032778159189133900042221928958646396270378725465702744270513360249333869872935548319023646863346318168553079874727283105236609840625390948117369800743406741376432790404870052177360184761008646221694376779701504294082980039149224297928057250858552193702125388262026738419058260926429387530867318739301934988141603969020672509145273956633594230117339051235415388159388496100437734472019153277987011936189600518515458383854860475216393642780779743176489616945458793990727451683587575424819717747155619572466792222043523234741326344397480524801657558611384593671026264548184726932955436624164633189054624801136838083224799274638837265935045513013466986775094760186763586405409939940064730402443259670324751424740801354226752023712761149194358593445801757963225889031344086093012366074957931214455964435592670464296011538993218395392626733079824458637036771203575158050618409687052485434396858411610412944230621197030824181603967512996585059696498934700751503743299728783283448480526034468508957258519453933008523690925860376988148621938000364080357829848027054356271992254170780973615085507955281257026760843225293724077849560787871458979067699509089734371302418000396419613808553923498050592828816859246688932650284334231205024392235424977535544184837633816339797892198847800671180261491784660797469875039215852217668991849854891423622328575685691010790071212611934403476866893308890935882194842894393172013239092443171487482642578173308436979194128313981597616622232809106128284035119699423940955298712085056901442157738901236615579295219072547972943180762942403910144955810402367844410283705390562869865030608806267307902151220189110803336988356493079873114482527408991880251953838275356055049575116880411447094562861426949807435824704654555201695585456559242689402711577435035372515951466253445427480813671843687361117037790283197924572359562298862640806266581961477979374485283242005735165027319812147182259538998086251641623313732768687617747206555572011142108889353136669128456772056118343300101251630631860474763329758396985887331277259931391449013239526154648159090328058421820606785134232644781636314571516507268343876675775652010533555204886250125036744018993025618099408391404334378437576404180334107041286736196088339374213680960269159310831087796703506952305372320140663643685432208975031099216751030060542939240912083525901872204441434068016168818076635518588930931563102522833120863954025065891951052402212004604069639501904032394840526346186109234646075417849019217414636992712753551428177324207617619172381099623321161462764292400040610806741117923414325873256014472850498032411788026658125759388618457979182502080904654877757229319275720399080970762205468418265054492166374930925802465533649749499024331696259713963775147000408090408313675837765017984692808311147491329169448889655699365938137745610495214420960815873886065480591339337311986050053382304980568490928019331499560738538061894910097081970579155065731444403983772512787941562617250230549784571465064316167080692224975408915860578274893283623166039220337388900007016566644509189859805872087695832281166307052253374038338995803083480930893005466823280804079467821627390006193462154882652016343394558064077097754395670697409871109780855234457254559953411167069394162491978004797695906733364374510770990522116130868998484385794032471254182196911879760725107386218459702901703091625723559420109695790177281466794417977448051015309599895482992301023989452046276607465323727743738246013127327628917545803252396561693334028707587882115305074923003230758346359085857229727192338773707140912658167406506667072382769663011624752152264168924768915157711029148021978615115505587820808453173867577420235546452931723664024764786807330296389372398766286310520091275238985052767956400159847562030570798059113644388814341832237148282928438749465398555217719719226160815518645157061458593520272353039490910083742117217289867811907443726960933568015401451182241736472803804054618967927350202527061264642087055780069023592338344751907751968686213011161760000089653408042484003485902349648057069373330417689633956642795444436473277368725632188502155393196620217262042499137537744632745407810125659515257338712243594615796900783972349470197056992051998952032284441400629231070068357590728461610616893505872291096513914970788526915539757188709821433378637709687546990175528968037217105965113065940464442628919445557645703609097809048710552815262920164143139028058703024599802924021011150880867993686587001517319407539417719051290201964365273473004338292396946887342886674957925350838301356271258704879539812837426543091703148184502381545343080855144537342004253195093163926109783866422461485642069159585199975450347764196484728668705508225892006880040449362498627407573154823919345545659235986606016848400321232593655235038566836401063043553604619925699916020297394540847656984903126021236916682685972376346318917272121343860713540736866042853338213930457722226615580634645856050607457406224303898571048638045115008951742729428710231496073176975937942999943901581471720982995441022850803537123655523681135176754040382100859637951336122156917468419829221083362790784571045166445441830323803936982701422391087895489221178214376969513136213792294869226120423319864889564507379786999239092756245425599302944225125207234994483879415854910674885094858623310201367503668305260422084762666285352546279954718534426128206760722701815415696363762209206823758547212607440994337971731116697876527504985788580717269761262735613843448698697493898719780707866054069376978976983593001720463231658557616921726378706023057286493922429623418435474318195032623354722412925175067326116603723313051053040305514523177042663685865496393933552450511192432469150148701082207575495607948891156336221070021942922923948954421733129816372483421330682940147623296522303519651285446363510906341336277880383620696624340119593855922223254631045556503277286735058760516547496052952709892364543067615249341214167379321532716007860703535199972302859251019642458541002427285555726199283680930704996950032743561318158932427888615588589591971067953563752875672449440109357761735385712897498235341341949211339859658959047651012853068696853932988134208996801844776054823517871713673465533469098948566832139136049888511454044365286252395510522360678558743777873326398958581850445872097917158336975186147828737571638282220085260795978412856518381986748395903418128348867414681527112890454458443662730329374216992412993508367650420406948914641667000938152255311331523912693861628608101097215643112953654177869362976289147678758817570385277354389644519327078788662705525785763386597701085502255010046822265019679951091170895755774977359042782433909442991340909817576944504263448363363231756844033891042588781219070175644435583662252973371183198978371266545466198126651350432528187291556365512087310383743808029177268138781243338591001337329166537111722582107403672386584526428249213271746547029182868546431028388875479055253528369435961755524768299958303877906342249064058175917696720487847506494545128971506689151156186097073326341396724016326680406135879712091253169395389433931047812171184377640840649340778975822909009097684124054476191762024943791403240801409374543627609501376542113504458919598176596142732134677646879589830661324556930037886754510810291223847787411897662490362473308743095873984198969982328226687123019029363202706177946141704596834980155443496276733563576405496238739090818646963625072569936422166597517593207627937374698636352720001685427983544841489216315624743225437128993433209990127687718605108344095003227720822760378927064354837530741838794364412873531401165448696524212611942535088238105635667212269076687507104799605672786898220809977010121467293618336712069317698490426551622930949229163215770774560918835900975258398778345234107346924078086817975120164708407153895244293020629203123109343108676292085951177300838980435195099501983985295546132577387073892017353904705415352064054567632004565615841796823642154687957376348185763087041775511124560769723922703151283047255705254451334298907845099061864466436109629623257065564804624803918423479475139693308624101758543550572566395132751052896021753274312720972323781646943834597391407043835633456025845494817187964555090720979822553831769247636346540392206030970851610807168990618174957959086343763310801106718714635360412466889676602273872267364253282237928677008311757748619820363557894888047914890694163683984285816133365166355388370809784487282177247832220030323003918739120343984785752912974901489273590304936309096956798718262093025977961788047700236418841705083351495165910788677745207481405528340670369027553843179393282401987307554312080219516472020617730723488331051861398654941036248221784247476322790938564165962399418193650506300017428072730440405924002915041671158930772882132352128455799236412633883984075228762468672731843796896997649862334318565209485506488683577783639511084011458362488622160313634841969147019028936004625586049828079361708291926579002795268332730195818584268064722761409386455474847442553935280742920101956968941852893353013638398222630785225924067597286763599293121906740049481089425251984635737702969395537053242765433138681801484731046026863283769868441204652845683421607508031727191678700234871026413547155468055656090797514483238266007823378780924472835182489071858861246162310011321246941826061061320025512468447634016997916686005279434437094379592094312191248308819137129011426542430829189463051881207496627939895976662611061944750019277405622527690587391206406609559871636045731092387382595863504583650212062830601347534371504970500551383500385985823388421344541338854107633070680451273934969065301154076348015684168710282254605002964387530136404473162762372365548622559205384291713063303781837243627066616171922460659608583753726020835225463751129816004925273434181344918947147437904185328591222041873352057510033063127647125691046045740468070686470292036611641686839829589420515313197968272676000459810432152394884136382765030562179898946331069863191086207526235477356116076103644835794685626052891164782390528081690432858448428032981190941481083162002098023430377187784931291196252918743937642959182877122015453826412243808531512353976245550183580071744939391937864286940033382605011744474355214858039625062197778595013598682955232339149945060568795118020407966479728149971442145834806302257593236659554023618148680173662137802654835873804219562204213208611122063465187900234882678134385798707950436353388147313809332740798349980633784527409974536415814698226549559342190648282989692830807002325277229761449449271247730577019571994488423586561742288120421961326401933860323121758364477128443680336027480313883131820950494401698008364594985855959887648098420207850194392223862315304931533920921873021074319603338321459752085846501694164786725441087387851801915611550986929291085671576087442108936840195435753167389500546152686494452922403682111756732978568930548467042545162933189403645050573703211113918318128677855941535438470528369334011513518924878620035442096621937166319589920441810590951611903843972682297567874144884901111359844827659017583311821730193370682965879710018974768043719546628843236081112010256581626739986006145324266745371320117848396858040359148664110811896759245181388097125822555365289397475314181237989512051243513006969125652534799221019321910498079880426889279611347261527717134603825203025545791785307987871123467816549350387292059221889704677925955667888918418489617405279087855878714637184778718626293196142551137288243784242693500732002499130752225931395503366068552187959324463378248385449660507118176156152657863834154227116818403008560245242509493585289255075184089339729024947017880586654846959281065124661383392904357919522830232403189789370378662568948052620504732659618647092281351512953715673991813662918481797059963219249709693846898184321287928147980858814342248985056341170059159214737374256027442704696709477090255316750966168657872078312118474261810793680088573444100749483214138437927727835997640844221660530766873046836710714014743018263783315862680785175067341567900772543093033833535397009337656485624222329819684796302268383830085484802058437590118912797860608763171084281275207166185732921685563626422450852433924382889847542470675763675645400196581722659757561424051511577635135092782161424392747598368664111986892502813828245888980573920926832957538839935718248790496193330039033632870618634869893035341076011202268852472902959465101633622039663694490549095023104340026108390619219072344834105098255605259231994048150456813104645360445043230744242698308783219255973486101460693128336532011154795137593667599262679930087858965465672194494975462269518806041242015892594305061101432469066306560332688237816113682059032595988748011808610076203138662891600573171322711537037620517594709673009481402565172576719491262030256553912603974117922954463550026737950724952500052841615095077735529733728018707201512854183574705612313569261951567184506481760271140645660994727570777377267859876339635715997572233631894100537525629885431987944232907049597086582105710270718551463928614414580477216965089625971356082191104926773043084686944255229180329486976334097993528117804684562854589172733346397659558268752597912880014369897234671365811232489172804166574101725227123316946572994805330250906149162176040345931706677202414267187658582495794220701727474115587713638725712320234143685541130424802512393038762364022878978557942267024908588546008881534531623045932911392687496494414474775904961380394682745489738003457645652062731054960206431952865871396228683923268150329604461195428651132256999433182651495505703808907713412692880653423058137339698741453978093636710961250926446243213547147520990852016327212122649485640049519101957845266172617064201325033291599085736102957013368124694341406505251205182535526172008305155073475405572130338332202689990114624530328876834325426633718380157208562883811468431766008079575744091756550632080719035805568599224580650241345964991109023125436285458126577085027475678667537672168681943520245604621852445006591809119859460566895912352370467408188593084220608162078167839428825720079690769828199122012884566753423811847372211224684227729003027860856317473696638178336466639750821363319092227912488549445477377373383930626795363749505723786785496862954965033068211097661584758875117708819801338289775770503022342097630801440890835131011494284238620654148042410379514743892279660733320809679985928761344356685349013596921458767053590159207341955271462098568458419160626008289586437858074554117264162049452652956432031476197550788183091627689762984217756109426277096513304889929737933636428706657455519884177049103383613491770978753972224325295742919464871183515216942975415700201256830477895560769525600656749120342730052207843385110133446769108355418271731721389101127183541409898098922875673496645525708563111887622964529641551457225693553493569657080516647974640382680443310480394721410772970148987980913154000613515859928900852268367115484661508341607874395118447316878243498651126898883241937965284067940696594776694860220896853509447535680770953568712425453837756611497874566746953681650852501679241780700692338896291192106845741893989944427985282565711041358004455887597931802016850200963158322607565810177154706078937836582901996696792877248582080010248886350770232111414443736991297733029832451565070560101737572584144863613392637549460584609193657194919390103077084724309875792631795212531471935761861608952884151000670887893648524847638423970581104433859724770153658192182611093658480996478012320903479626631778216387928327674873544993584622275521812197624098979506305663114448261554264544633842102748420426636392186153796486583895223544646265442176799947419289347605127735441376057930053993598633669711755529588791522891594259662805759122419382049648860297091971055590883931909300923825501622304472037154445628646146375266182290479933879888432211566258973315509231645882112430260504050327317218903201154519571320304743669655336878799835467764917810330149355593149653085232398627671296722556666549810920952490431135279280723818801331090198689693045036766515663184980610994606762469650988420583927645605209017668246568092106863347062761480440314685203250831646112256222087814331215813213409007019970800421161084824018072962047553178560281870581529605423918743296385975068086505897873321086245160678353394892971972592377204227571688375818454752718459450164524421832246741957758998193794203409618535737223377699162596364546275645519414985199137520131311638723525226652456955677326854891943591605175379720302636013097595343445699875950421841614501931879419110948761775972573735853057811476904096167640881793526551470533176334190237226595107829303428912482777557713917479277709542009303053096341831913022278293648541634448069814512456308800172757929928662661671221486223804164799701670544323762848348057202172753848516582122425133325226034527001991697911801286445774479345692463449784256741286538208484439363075988906667913830303172860210453403144264912246451317306924294650939213888787277380409485103892977238456267629607430635837205762520718451468126237706514822034314623971923195491663242663128219240709577050950197888539247609397393475063053878441269316180962397943192303399624035098487332442447696487284848577625101170302798124156610944622873735230870260805866258738928024803700456889559175838828602117110994258162555566642142983948806071659478836441348862866024134553480574538095754720851502783594780555630047690845667123900850337388717888458575443384498431309031798432609926129153990453618545864659039242063377859207087818227350895129379523489706022564105015575364841577932032230996696478109185814260615130930048416176126207661536314797095367621497436033168164413856031231033448777849027293157564264108728173049250530790599249112586770746410722014919999069463114739178497949570604912297681813071062386863060772080426371229087744452431343785055849305515500950061564994149525016145486744977538605179283642353263611186029959654462484135127425169844339501837786760738442896558127052175645816128347239699486775613478377600899311690939970733602676382377441571382046068819269614068870936523812058424517780118991160612779466236164389447563501198450670611345860133380129546617719089262986060669206875403053639094097305541912806608969942538489544353645821708942974879397520498431851436814960390286038470315296408927952467801869843643937160453735926071594864972574787405066279183979977205353325393289587790677168600766287095482380856258685195493251472742957355010618743274966002168017309774741551763060349789964491865951176853495658115853508345713161806856296539215564805096513512537209528736343955135589031841278985929489778311040768798288493386654463341140321660723678034827031941076352359482124863471642377001137244595776598999665162212731480421755104173053723091124696493978546341777895871419152201784479649179538069651153967789625909366798813310620754465121662862390792803397367188852700800727733065525969158795621523129267494933728810413011642493145438806520585887193312528923997281681501051117825843438984954634322557772116486957404343217422517485941825474021958873851499523366977300943889786522271216250515196230702031856466317133887952101411903818921884721959813966901355811675394268230606964734544834496284881398680592156872232780179441438694279142681587191393423363008068772062358455134749392426333397203152926892190526919580045601219699639253371536486389966792994051664172825266707891367005484107253418282592445365661650859733610307931044760552174972214786255228776990671758842049450312585984812049808361488892225016091611604275398891465956860551930706804172608108456385632265007235909853751266285208009205610730683440564344761333658026398859539659906245569531768095989397911883282762187277319285908102263918390227428822813002873383317040413607525961541344418882652054016117062326768820690394612104292709750703960239274203357008404362737180785466263772908467747836696753550374742084121296102464338535051017470717153113247414926098251007097765135122595241452473682223758851525718529921506821465093382379898309863383215890174800038346814689145202932198742578552512750552628140353439766051260569393492574024770606359670948354038969214300336347212146698012597188933557497437787896764774717071488039500156186995351367026577035205627867272327155505240975288460536608257066051984808231272954266045261100782817675090952315544904491786301596796392139865699784720062115479302483958314168068473584857321731137298143967098418777401044130693891201488094455170584823302020671292662714304576402659400827879539026206912058512448660299415420237270242231498282737782568897039723526524008627809544254423781142517016274426167117485361910034691442467238865592644869363105462858723612826550726425041855545922862886582144404871129330997266984175009166576972062210424077187626865719822102521947053733162465570920777300459184834921701747564176942421525672253810709124708869033235818695047150909535197821710157526889854862246651240705557042990277863176510300587522847133237662603050176282771133428503273919582469038610259146429262202101749244548546911646323884975568096132216950933935444203956752909710848715513679233095695726754200524727733814283133989307418485665416914149206031324134581583993849383443160448549071965719540869916998182707956935543254345719798215373525700965564705684307378573126775900476282224817426528212374716400636793125428656620138233089285691615348828938217921122507265435636376762398912197738296924460314603143889978778660543918443111051061733341859398851520996336375927490389850828500562912073679092023138768418889330140796821491228990771670864185640705157535699820568406849940874041856609740311955828832601647131336449114844354374784849644553164852270689227989228429796989715586680710576736789571646962744286323054992521959976390757705167840543004374958547367089871552507145528832670307451640594009425901543508168320154601685794370239355390366938899029858653849673745621076192973037434153027379295763846626479768151187593993688333747769763330561784513361049053088047162173279681887792433513949313921153460994695393382521231263239777886387845539985577486001486091049635739213363543235403097765323631578234091662796462860856384101868980728567627252776694841973877312987494447090629312597119674173848371036873483938999494023658854629140266647999348252646312287205430924243539741685375821059946418301647949075889328023401682324489887451372316210889849339085803102677779605921079192504503070964469124711555068413644404279421996115346845801547532250670980556092442452200992019099303576331419184448627862876559872431360266829542257136765524542035123874729248983826485944923723194845593792775321640358006849494049523539434447974543933604043329779611237590060329418642664017722595852952821054860355124777863075181442662099012548899489784538621073572742281584999407171734201332577908215338046598453023211453561054797771627324067205152926401786378886227969841682668655280482863784983114032493814440262922373428499388506296912667223397896196629135190596353370843114138074370391603952650480638813143295911662567244206116513054207739036402756131472735385882517911947449686045684581751707996087072040896091239468193379160779887847884958615562169402058668994886538124849705732349211464084841791164031807911285791129885910715259509841492730406079703097557664216574393769308879052421636802717080775927723401017098398133847462525713798236959472968485665987141333547349684214401018583380991208767510258175226146222153817218645412410784394891562208095564446544147359913017116919404175610425704187697343029347787954188418526154643689683810216051058525912818915993330469822582143124593307595789675528261137129973199353918067239451726384350667036029248688825196310600110571135701024812956720906642267970760667044549490953849475036159845109113889823842503142657865774332396142170173325320509220984908359434898845674845118067728875091222389558792821499715165194829546769669531909562500147170005663445301787544839122308104415576224746110510051650974856628826522332414511769015255372234296652397632495700261611495473032326287332510241396831765540060958460940654168356790061069416248063282255945652237037943899717777533669942150840159058430334706615895650406833584214199191832034816812572441545890261438459262057629003109667718867438251153118310860209070736716630805697478342913471726013098102849309320081752352624475147741070950878314415418551530444546812584232795309413301642380489731495220873535879807367740306704861642458951497806344419354855850737114670437300177862109502168470860461956172173792246151608772812276812223010068401290856775607124254326422199793474195260615526389951557953687979544030879611454795315481472285224539388955876279973899825611837887377908584581612330735376021786292621167361542348986008107230871628589894786691964165827261224638812136900855328720741835657613015717930903732523420812524318368624705608159952432960435351750471005691744423581934283291525446533390060451865071272533675274080120841127878279923623020626932829344035409441814334936677712752877597895634792599863210299752889750587861081126259007193741177962467073138255862129282767878912359518475796528188630286993087715360893999434679347809169595710404362530072338823576819583546883693520440588746210829588562203632544041922429969463503512664660551746648552548471894000888681617178289219794579241046062686044935904132856467944184914275587173071304781438450520661123786728303790955676328124933430882832241543234816399346518527671273934089675469706819092087602321620249927287939942934287664726876348268880665744415512068544640455725352150367518134070504027733428836844307112447380889245331311176541913821789961634349948346138819130577559907634774330512541774076882361993033741540365779420325613737195417479090617256170854467336533494612889132926247801929619733873463158327206054910842647184563838697762876090745118409092642320687064027890019285419508300789193692618052502142327274312536827222010679085620590986206829295750328424153231955756732413211022596432600498199825006958170420683799000361582452485371443422425726101282684709727293743874876278403270912251224811815374896329779467286157262176436045026181982096783624114024228568945395714691295830595333423003188304845533858586592477605142148921606558704807758408025110961703205262776500244691501565467295542462583137209193439113901052250473736071286668456331278694345599509936176988960670796070041857523054563605977222775674230982927405882326754620953672178659903093520287250849031843809428541878290095564535576936317184445401773743323114421660261284669123217325774477124603203457929272385383337259037260760976710836536202516066564139834336461091906070928867251854783945826258678551976816103962751476801876667150400343962204962802073121548596179692125022551293530852748795239289981280191060234306578971621160809617074468485003577362345281982786649550945462602078185561140556855631419397356429115684245658765207867863191857613890844691421943564111988647507221697620088297779375990645770973704671404079268142614088194973699995877231100602261138135356986955906213538916946058308114239477287361924886889476534029055220080148685923400722886411825968843047916910174237431396271040478491016413460858759141663795257946459708032601304621147601362606609873138331245517384858871221683554323772479983027086109461587183426633237354479308295676634937910338897218378706958400814307247405223676370731802142408334888894670217352873172903726430925232371442551476570965956163602917539047648748905066449009207281248109357387834976396510255211717158727600749363727756019552794940606066263924529485396097730540472838822897959255267378143304259795831504650210452144492159858798243071157396636689884563139501847613230835936046536904568084241860601020129593855543411017816863116367825095384835006040745176109896264002628024194122369471399744445007080652617598052878345036608461198261862780650717917462016560608206239463960764450850345027270344803498489517526780441734694934524447552834296070952744895806634213290439801838293069335071177834512848861439837729122616603724027163059781630181143149417006694136290529709370879749612020580061390013999116383463638625456641652506433871508956272466416249377206032048663846951612361738239793070134633070485787023228689417123175956835584593995600051319633995456570826154576391322409510968355108613863499472203833477956587459535951337061479049168602849865152707086524787221886706403217887640693416188093700291186838675026818973393290888723432987994644735809312196822873034663915409092603398842956439536517187558796105637983176028152237355436813842838566282648549066992026764686715556731838097878995104469988056425696289567327486115575445999085672607228444060522190118762147203011873098312516176969482369899461631150458757575282474287433158356080633423547339278402134511639082314118449847923937211515558759949145790519907986100263960654075495926574057320674909154809541766489859769152342363643286860563959808760808655838167531331764363195470329727854603909580776987612953411536961645365867052851999239153436800342842439619308074094977524793263297241947017934474483006142311384259079129582309058965288750583612289622050394464248658176227942843244084023849941374260339921654898198122658446117157652008417368891368395568706021411617575217395869081248633586576321828002646370638968076404849681822593092682318666495019344474775721514163657255474868793813017995939906478503241608337255542270597259740648296680849134383135482522961758838834516591266566109947079523456268635299780194340272864355597010328768393148231666380439087152981744795224081368319254863446667833900534678187217560803782456400815032373728901657515749429878184329178338959152374792393082270717930408493729704108304962170960110454456223617182710182078024909928113940877164305176290458858288057287596347927768391896582206144916011392580775073427808597723217417974015070912522138147313068435216375865744647427435067999473384753532264527176173815301122800986867665000375202861947330769985708338304549405053356008474329998486967135959612820675660324283931641055541570780622032455856654702574530356396992028859535193878922576109423646912361593075696593068251576516303233847217656185182930916267303304866114233359139467525605994174330087928339148697199541034399653758872542568392862671244147411379977182219483344235735740218186757562403067017364601697759780150959272268004423729247061726175425444990071784751803256481899985923111428073842435802323522447688418340677567943257928956387273934716606374530636780334137103629945091584472446975958884733683264282575112682122424132937732199352922043531332641316574569800398800813673456540685503216337569608232432757344798802857823649297332536895680698562063704051165257461133480283533712182038130187766857770002448535392922083296884352346154654126615530134837353678817214400114672176879651208929253479721522538996224109705762968356322673885470428101130829954762331403252852164014423998292276029322722925066443695364812063648661044966498096206306728924821395040309427729213085706163838599175398903197668144624787398534921950978362272997729421304756270231081030136910209774764688631215026244283861272552000675996271027855712092701225571355955390319047976718562227216342096063000883023490095040600765220298860402858034894157983549495865287253755765864962306775711559012035458874133969184152902929814907679411309606001535790947784736355553429425824892761817428745117185129067899696246336014147761768516949238731327272722774430070957971023015521537435780355594655965825399138491886197939980567692136472249948149598803008405303197826774809178440959454028032189560010306941709631265179844995617403820734364963495460679551283635572924528687657108171508970795114477624699239309066319553716047573574240306386942378642019930016512541144858183207382893585182335780293411054221895716483808500799612209783299312728875939299948850642731273721571124137997685934671246328635758281173823613347436535762688345064670635656360030477087396300265043310547820503199079513702448915154088549858851106791624315276522758411655357982260175074026901647568161313652303126168064465702671635325259901076825030557796791359685175516014586131074818905669478279489310864696270312314332379451156734918088389269442360208006389113855413992832869728037059722321332420818065225522528219999853195434416340844619857680082949086712462192200349804566417226528610537745043259065452090373910651540670667627561578198604725541728336258014506503059697439711070897323010960804108984100499575681278348239328154898754586947078639348468584433433154851470290285109230674228943851503738986341460586419684711896183787904238233400211510812771594412042439923169027327322552260457135087052747511115508268043789672678575086524984484923297573340458149357953499113194839608766674205593838087777786374132132977655284434191488236862704258536436516366585163018706111100819762241306778222832260309464869324913545190309398260879233558301583371076940279172507791183859197451710073479822807711702094413899959132734050809675368513029181011746459755030970468288514986793055754450268199891676484201582190809577632244829502587533608919378818960538513787496911349732603964996763487602606986657169612216076712421843358241262622031530622664415022499608851042930874143350526464256275983763917901602495543369710901386809728651729979301691097746573828124157500213178866810817895578751335204777224271753845642059264811855268863985471063715183137889148493206244557109197396378626485006220231215833851619018983700614093939639112707064621737533408487099237942314991589914437629881278393898514862780026216292351803229068603645161005378844886330397787264817980102802180236815761251491943127668151054018344964856454293957246299527877105279532412340265539522077319103755419674295197765205045645095615675406564630949116390848098834659875947680097648347719324070949927510168127735089265233289508696050191303356832528213987047411451295896350939037543561040452441603851007746129892666703453473033177380181723618117489329618677391226245671105210000155271115767274035406228552984501879664126511410493359396013722138826123257444868798629780349922539502836140795503134275969592084965796313241798021720525523383275109725284496315965448759739661230149266383804238306589067526056280747270023875884438983839837522109549732463091192028048433261204101190816545098366471235232334473104974066200158320169431544525573945843551226338553792979100718985867558511625906477638191993453438138584838061724696356142828030622166469876496779614489606614671243192641455163018763270099853239166171103306613116075279977190605973431168350194737817142394425529204900819718191715251208361608330317735724719477809854005997285777170105435930324789475450224316299892769520472576851681466224817490034238676411878990868167951537867532164202543705051157627553966834467851780601826883883294508635649052403673421046911049113033959092103242463540835955681404879162617881816716637710267306753869715029358377617256268119553671665833007942285027854880711768889127602206919486733440978604925484091795760792466351735432510534706906611548130196046963720203078431448585781513788118117227536253023251820898534390466952169826059969657577487967337126516625556161266954266539480738097668587678365404378074236821806803198465911686379522014723859500351843018155360167488755742645956247321294453935601660899252563953431778693043496542251295533420238645149022589360172064801306793416192053590409098948867197849076051364348196163892581946181174779519004220993023542992573326116193603416323033276517139520974588493540154417030043781990182895572295899797450260444994549096545337244792511276260427912473959074805717995635184144410620941761015712586078876520256494468125332541043097905260882035980410729053528498253816081549209558830141774386459033985422701587892983643606580607223039254469101194519835684851939984511128587969436404982210370382515066498327319375168468287618671583762692879518921119743872526685062717903400279762820991696816374333511908030143141382610346714764284199616038941579984713829743011911699385135826835830397851558632985953322326438221248519310290071940649077468259628809873803627314841575798732867737470720096692086404450366440214814393134896968216288037980923517074020876474352819227763542917780932047752698073349131368328703709915552516339086071371718062795169406434736223891708160443451719664559422806591197078261067331857203634968256269018972415825634249983406673819973209897207658896592745497676104650451967173140213766695367523863814972497888870827292221601491974505103415405643405633849033305368717287667934881937076167729457713716548791317804249078949537930312661716248248726177326986397583549872615624930729338040394418070462116585231629928054975413507736690005920081868072943093399002482687857691967427987415426850048434128633503822509915794629185516018337236122719374445945128055569110642033651582912059025841180395071874414720672270499842768804393854533948907833196082816434736502868581872484617509407215317344839661199212575716332765185323679785400638478893962380778522708894659617355129680474903481345489274526111294584757490507132412807948652616160722536355629006179189307871283721881999761813124488930909584253504950085229672315151953371193509654233325590212455584902352362165690619672256531845798557894523884480050581068368568275126325246610702529375259572847542569724726028981849703340646112256345235911908548327469381433216903892225081905407785139173563826093640466862539657396723608794166624062384133232201657299915575682095655033345736611042604644632303860603026075807282243302369568908064348708939629988774685555917873048259964316115657006340997143996396130324750479326920647420939342204997741285425247105363903807898821399497071751505710640864626419534073490983273112432048691964684907741429057134852493069216320119125618725405413780742938115279957037195462988702914673517095989075616554443497525280810281052034789410660666521748870569192267001279764860286048849736484567550630477796714515022189662551674173571551711829855971841714302277918465461903982059220633176261108143500606343853388348746780073308792008313771722023612978353335781145213540669739218835033985307329311325587103503972864766184031734531043587206021520356797964395304954082149734460715592847638876192307439518800783782533026270789089541711486003571571601110599937589745528245975070719860824315310893723505479780917082129932269158775718777861613601130505822582329772956529604791346207208301056710580228813855496045772494401962436059701090442240019439160577011254291885593038114865349715253370132860228530298339764113315338956712624863009447217722590797232140836903141197619463381359675264114645227873426139896038704287934334171546026887801387753392277405335966194174594179027560444914331046075525868636306778582225862608091334520652900636842917637145487373903412098812367284978950744937252269700002360693492321193214405848828307626432137908287477810660868265476250122367768754375959470290169401456497054751518578349579242568170647767798445903079726334439147811627707282897522747892867569101236167431258720023536764463515488947920232234415175574269560042825308915457508841937893201931222476934796333955815570675140048002318552450859648506373367004392213562467453767083578820848063981464028513282628407584948408406831130505978114981827891016795358264572327430029472470882767625723490495224716906639386124979998087521105779461590075419538575000051435700560896502712085366905929003527664201632041793003917522417479958054210528498111594642637033919331056578722803706293213384367604519332975773911871584910461040473731831945697284011052921580618767056649255961212359350307023450926369322890212994432006236641963308346797490323567507078881501167800177496176859288715573049195501098474848098669587371270944327626591114261006911710557114058477686438140008945386714362598435131432918538909395902927601213629689694871332569744745084915482588858099076993351303662017395870836412186563965145090854144092935301606165965039625849732272380915682683962360038203342663610888423797618053236300234136784729192226299895388302736086142952368606135980525889178878829976642348295301137246908829482080784167871943524364940388761065390979429263767113135435242252296724907849089868036542796631010671473205051195056236707498998305311793197408537237019437254360135150867132758056244540062659777973318780169636716619163107136725564944114874743518886649905913957128675507568020018901704889427628178908363180970753487196644462930720960371199851059846870435094263229166859933416306806908829373032425841307674626892901236652349525064955780034227262993957508676016477838613648226086516220227218529441824699013696262446359914980870442640393063896021036798344055873785956782840171417684307473865687907981997918346828779212378802167300302877328900495553298602805518975146841663816539228802663109429361619094846001417284038165243791321728058004057723313860639908708878556641559805086796209185396205430420420817610801778618328607852815352746173500345497310615338912030964074187211231806994735901904290726482233164599393039183430782474248830738616239613165919336398450674596278073140048321410237549362419598742422328838636242585588271803156327001756745497655624774241263783011182452845825618167896835818962159769319947787981917992585607739101444605662885861224872646491170596329726369613956083006148935164090955569695912842508824430512858247277653042292776546134165298686917915434007842838783488044393738035602208676016185990150826896787913009201708569437402008182302608015947309564860931043011762254091191495765648977685367951639187475188043355303190413917486812860456154539374142889043390528526284883417479887041500853438637374816627583607895978423684016451256989654574949680185854845713845489105403072996682903948186566851649736425014966557699132788918649208171208079310959878192855395436039390924164983572939324900625118222384503182344228290545626694516123331724862736529175208212449988674853876246598244850253351185807136577468732290151037995259862568842972208364797110758885681582321405195577580429796614705438180175890722875043765697380049003940734157024517640089906911588243137604210434509631055887671293310757320220298196152587211599009991604637044837705106755878240079625492703693724122537640120527138029793059739712722734813450742789262964042313347398736441048963348868226526389963172607898600497844702066506400430036390446136851844239810128011369785270060619914492103676322563616728186113038686990490524563585466945224221611585955579261397614538203956939547966719013527489869102887568336657777257842128968606054510756994257896591950349114111498326190343355919525415676748156734725563412719882839633616916455020211059354267717076444648987779380985499942129643675732165564664904941420153542670651921551579443069298896840132483505285113515172808261565017491518468021701049521961953165075337816301721805906911913220173340919263856079830260714364183621131019970736640809689830471291037300376078360713404642745060687103930325558701880439780143644754340511438395110399419339055458387581730920344248648052630993010915848001834326298081150973963710664619274131548801678313323064361439168710803629853546331631983438487478586748375331334123959550235606899866390907074049608841985161653657757138690475511779610870435264935356292665246656005411626540412204074140513234092470321341092802876941571589215875497750788036043573737534112512001028918170097718420102824254892787046298007200772757096965253848028466558819955682842287077269836440227909619466018326977549348449030134939326996106208230881581412439652246415024470763900402609483234334223143351488311542952038035767627149147638678195562516839976920209542791653959270760106722406289144627582371484132832530448721046743223397092193257138932869135286139949820920915888046722703693392626347675466872020471174031700081317878344479578012413556367609865772851079070160324368686785815404037583732554560223544154050462244861489135403553257783318267381640885254329689509361131081539654495587850749638940622133886249199790735231158631720557787624160657722457244234897504718757963625619315225653797374551075702322830719238409421325383135470934032905748924015275062761431269822441288942234850343404807439607078288152682802158471248715065146939781426797991425744899796528355548914756484282236168232064000933626167246216069702985060026676170174804711673087537107039210410179476245859241335319868063024822199184864424536865137900961454506668398626301771806066372188073489973575163364012674900354284174022717350466127389485436745957792043284130816485754910645210234781518651140536904348871334086011517395109975290622863449418281049778617831956714067630345307493223074830468062375650689564826091865676329775496503634555551783034749021209840784696732544134890556237303955142892929199535569873071454442079377055609085136085509155673986570957163649146530782594077216047667235082438144365006998610348789067358764107144497721473738336614166645661120542054162327633857350816615902580628064657234572876592421949391743866971506819625846095297994202623916289624429909835447967902547114627794766790780460578054565397071941631427845978744310070133702624730267494063077298990873943958645411847474475593196278941694280469596314455293847215587809548239572413527000504108531872907178594621070824434534404763491301780499954407915104771041295533394438454814472913817626580906914967816664468513270256319798235602882367492433363117104642865528954514535745468577723235438640860448883392116009807485684548619346356913027462262188015088661244811575393338541139848634326252524132688878005683908707283927764074561105237427246317028552672651380754392687834818973817610598880827149018730236650019445168263836316924204154978909995651709734530854068894221226354991692631154425271600092246381203082812514583267305761295823348356223605493412307272839886124260173856050466359628728200410523068897148918318357351678482481453482704898221930396710760429808457254523918849494691853677301998546475944185595557500380537632284213989378716494808316938766908271878849245715456826256318618302956956899097766072303581651038537323774531764297818294805136494547075110090905947610542920963766390391336183517219853723774636518316579573952954688329498724840688282080002486503447381643967394898389797697287974835722734170537362888620639169658142856707906143156052643704049002263054297102685308358708087393280495184676621699705329994532253446259998570056563323584661702054789751345542255740647336619436693208548510953856084471470734941505762910124102695973135858338564272289341637547960462489952793007273005133246354778568734129507278775108729732189877439188857471181773965965521947374417693675139164844762612240619628858467261309769281660053454155543467578652185188176841819846829152573736609768225338964037853682724259820628560373757802963868332991050055153638128126929552876296871727117704831167974701522630424092702553354650528155691658517058985815990676833734384391172199748323128000902254994368340443425527737031350730064868924521134572866709823369131817592048870309862307432620153471794156354535086978832549226319730503997378906604890757752443948715256253696069414898257153822423265901462436948134441948910930328782291608274669771805306256950995573835670664848660732190008510875000751280691487194319058859745521879563491621016423434269120251143620151087870537858391037018373590455482421912275117584165734030325219433611433700529231614377526112661486084926138664757204945313585358812875035902581214613705425808924528510854882313478911127083307608996703040714877824286784108741800660992062332613106773215356924362895386342412582694456838735917572253124449680139221051746057243444271744562368727157332511535594778738164145850701603959500838130976400687678480549389829296198098794984588894706617389749319826167072578124737658354707473202834610057037456896957283895428766107972781376826408343657083317688892517783614468856086832422422166847924533557290035618436839665427259950392989149780633333972600642833849930783612298627822152712696118570274868796506883610781495992105804040544270756581880331240320940200717087537431233855161956914452188185274348984363882289210179515298991500888057663058376822098052915452042450140865059657501511602699440459235421572467944485999456265115627613608736793220634937745759536503132929124276895683241600762586160399558651210670978637861053983270297516340281236933740692809476875935187610368150616527114144719940541495773822008428002556078985660263191622920598705392185937231653340076738471069421090929269810545421068978948819131652044311991655975820165821769666725200518172344742022792646399808486215393953492054028505500886406145927364439851862861578292118356370905570164964792777132062945059487627110798035016427274674178491471307722801053929295247303377752817647843150976025615896653483152447565588773211289326851514162687959257688305549129845267964089314654161337776186781707819276272298458101984987509948874802281030394059151260281053272252635538261437115302457270802022739512624708569961895821848843579055625236717161316262585936531729672292336538710954945582335851122557015174285547454123466068481494794988219942082685900256219016621798888216407343824513501756911479239894449444917828693860423308697167502974570550346477885964448748696564018017479953931978865161506149376716565418537977142533052744178808084267704417960355236502526861908486276938352019953201416441660217163577848089785457286210207614647688284458834866645201737042279835331745111505618039081225986002952136521742984754476565536777433893853488533829789144051919140039038088897943025603004981608112889411679234189280433034148116200459893635972942638119881826230227097797930540539844285444157629755471597933827204861955067891455054491387815483083930025116802816815786192566808644713059205650506472998162055889348579661194463907554614668515581174499633975598362148767930310580295953788423058711292960016451967316915279630779895816647850137824056675972908886150742717730373256114062841903065068713030728965408453853205253562168150682915417803177979302915155078371049774268634500372272106042333426465748681388996173005175279712598707048231023035190370146841758136924556254819451490377764581027909177972261031660883232991022504071133822225948479937191256478824267176091624561398696867114787511085867056547813124473066529459788043922105251715608498147781651111631929735116496988255529388949154823830120226648539755237273175246999768863201493458370251119179846012708906839399570364368631478935307963895150055782588851494845119537746446902501736167660615078326313612949346612379914423345223323024419939874268751563770739901771758347257111329421104848216162112470395553266828695026898349451293524665804837692467876569672453279844189460919845663390177917216949479005369157438325335892751098933549793926477663308687777943036852473125798855691115410138544809008243082396400041547550527949715069914463618285356265956051926805588790556114897144990320544534234115111422045083382782722373827352620176814423347399797261908928289083707698474297946124051837024538096309324195198058481448435036217381486217989877621262053366666978280675606760041977543541582118672236814447899992408252842150832541995569674140137224922259678143271145647002417296649114212322648987059044416057505271608319768215005498680049958436826450882103875269647925921736861540765962747027992283641504051077240725897817636909329128222894518740543345481771081217864775101704463359948834324809414298418980771383476511722114138474837160703926668733932050248703824879569062324641992217214530434767019980821404998143011982004363591329500859796374240304628972640186160789079725889116313414862176866163495497209631844866476645615950855170248345876304150042193633691781544630205716562187942133266848319288389005863456748684425572294371770734515417770394685984468170678991181473008304687739689807701901630228152004863318818100063532381661718685399334286849924987381695213182817518600980941811718738581792825348443261239876164203008677412091313135660442670954448418024979801234788792618151220701105116513845418326397169022470457804133033263093181363459087011284883814221295751529111203787026482787055028411562738286308206678023022598576822434874009354341251612689115633645167846278954310828967789395730152283361793616643953933054348581113925040440330001476128025228615134572909554694253274785915930553863668426159170855681179415057258587572465121599101429973313638747020475714219543619245760060056407567335809356162692547651788140250679087048238283154806981233505618843056451081887341590433809711545729483938566998832137242689130418323536783796871371838184069342455189746322115224435936888682829223828152677032686267867034252101797748603909490087581936775969955820360242075837093731297423078916411810702257954167567577075686515705015926597530961982630582305032368502900968726433502207141556614930766227945916017898871629892934604257466956068419165635331797241005529937881660266058054363459823202610020976140693687523968660647603414252720201598170416796835454187105216043309801288935427415799184135308480218019113885541337475837059060273258271715152303843839963569569014241311212603594101214730786892503311049882343952834228153695246212113491512146303894154748610330549071889431027332589618267683886576998882833991725758741662659121038899428074048923572115814521868277216666104034385953037782572445727180090743385148386949222364942860029716296020577880244393994042266873869255088511404333557321515499398387994074508975418360375776727042759870338304704290806824215711054053130350499263714912138442264388728929695873664654595724840972038415712252696639951130051377394967833181467181275601929807648729760123799063104448724925311502867010143939625176361392434492654074599380872276663428503685490655073679145354233943382715232887476358660090691629990922757879868665061016703173295888056225932296266969432737297525180670312915643352758490843616225829228671635620067960214645550386099049889882748576080806068738772153457762620072126346914070816300730447285794118971806085352141814951090573087842088897301189639139623074263987110482639748736744260269162168596922057578888016523999581664918449418355216992345692363178004827619459794937771843819356480908576122621292729305027073973803549587025433136893007642806962367545270704394700590191385793749304865541779495990181189484466060905843090683668899996998611555623236874033841368848267301936677111706383280062110495372806803098043490243615287436714577022251958329949227110898137665472870353037732963478715458289605080858567795590521517160559141606201520100435309665006650761845990657222484215293557529418236958676159733016176110085827455937973370019759363786022591356471047295973081667225545685388713900498204918444512464618379675691402055332115170187396199047346826475001271125795451545883973441676590785266919450149927778021883687432781344489749925274305857614919169088826080783527716492160963656044969009885514379070079838041158324776587771668478271524590055367151135260305649094083544165364906539150125514710362745762335835539907532926322596843951615346451105597680609381001857577300856372685425916141933385150215241231322311232558851946435061150015744884011958288011778532389244645871690656899917651142065554980827664156780328518767129752557502539454895691402418212963612732578657338301205307264468568671913309613781714705283855806378838435866403091197967257671557137434637434913525966057694787088361889167494093911467861096943769033101103964500444894434527673707562363582132302070396618255218631331389622246233239936766353374283436062253563828425882361933330476319512548257244795501788369488280019408912394746095269306250208588091924640845411424336592521739017619333406344107872610912922972235733809929581810421967161653600183464353707468253444016854714452800713723621879775267706680188864638197087470834723289392604037865836391942161013658014394260127217871164605205580567056985381798884220564701620509607282557328624619219723184647376687618668696771895257897579234724609032223163173049611140165950792096957635619045709811351217830105289461532899992356786654070406783684433764003634344562210744948964521631906801053201717461693470633586153017591464278796652398600360013494462539074978198136098504860618687063885165045344289449021957441914621633207697859861450329645575275309875423847686652263872936253223332312513384596940226738106563582896304633921733689470949194960675066017026455886520342844652866351803302952188735533069786861369500397216824681810658780590027131035468806367809458198282328402476870902568086254140081723604452181526054539656513717704239874763027563565241751692003407455445453348855561483367254605903207780881185978137681918102769206941111398222328056519864987832679750093838141734376192174243684850793625164431188660421490827132748256022084486852457562477042129176185858459201596172076744281389138311565585910244456637844924205588794334968761999776041967217711371747087172813787331060984146284169794674140091533840131490126396510639018084228710969980511305742459792046329877714234804682130234551909461296122358083815941264936186765588904344444357493969732319088373803826310135485966806508189040455115745700828913907020486014699682345472773230781284680408438855561177313041236418812258474357338237315030526506502244847436345124411817131286777126702129826332666827101946692993289280390699709297174039911102355707565064323389096671410136092107089404204424935278271907365653077494340277905572264778814308844893070130573821577834243985147332924612561564137567932405278638544057119009048331205341972950706947212309853580503536100984030712675647464753253036583142610525642712314200962068132511920617461192924042973221022267945472094753041998840744853688205347263483726224184901918191810788660862626703083568339873306051662047691230939750255295760218485748616896865630367274312168544925188048290871741443842573590241201017158921856125957891714286198719387918637198676723484240663536799589841331221386333000719392522450772461080666981252681819244923276004859022999481206945850505556738294615576321775489578574872896739116152212861380671342303861556117557608738227316613364908028632153399308992115651338690867207422982062916290338425659813366594876171500813332987389626696488175705568905242285386977241026570287024369727066949483698343442364749492552624114502863669795569672754802307004385860557421749223263685184376991600924076627716824075792649981971481805137317467187396544846452149881192009754332491495777674189698999029303673911061055623896163351111683812622612955882755270945805047167145422701338559854268712413942271948183931050338665551308222355257378330104571642578153998517669729171097416659966318743239409007443810021967472269069858935058312890489140089113380622086483720964751556999866913054947324472493078213954527698189627884084988524642286563923492063192471436190851499335779833933631052869758152377027344659672895878607071431218250692190609073827322479014339304952415839144341878015520169009605252767143630063808976488264476160796077404919165221795753016680524895819893262093801113262300861982535555147087656457111275644906359999988963348761210844746913135611703136670247893003462344881939820126642458715427857594475811498697308959816985881904310603472096332767726812344771911792340769518468107894247086762166022402042532802743160233747213632782166887145563469422060869514751267084038683423033475105386247806203251457199799973451219666927230781174270549308017222484388002898929922896113768129033363037401205061235088735468583534769116642266761320504103962682657270178856107756415892472448990726100720588622409867989363563574356459991092391615548410160822041871289696347026747926998757483967979796692968567482372527823071899868969347517283536846476482024918307321753446659199253246381023872957477283227079500946723269380651134828245063963095690936473479302421382082616452975689079177339120821925678295389726025956489137230735882020495099484546661255398886289084470628654511218274125370306979121565062300838802476172336098437873050097246630316470180885418227913619569875979748956841943242665392319168345030839382485239592965587917265486886742228369861022031801118248415558939439521665817298256421268931594963785997558278170018139822196399083787022321366372110259684505650305580728051603256351042838839734133258131843613070784779907273079017827549057060699049407444244944326441063667558471190900712656829330217580842728559184480424133440195954140362671923078878019985227209444156931185654053520989926430448799085648027056408534270102300794592387749017231980227408422146196984505238910298012287883173703512883617879119809353768764661337059181837782086137986535438236695171157571063401608734374764872845126487855651133772088654249892902988569548690199340930747089629685441094996271049662575250473070328743287006802032092374495206408098261980280550511959183970737792830702580620464096968309123052946756283237534707438804533672940869061621625249556147259549610131842106848121644132807882325043639124748429403365422655187177095426216016214291484890206214492766078025655773396299520813822201091070933587013267901232669121162636391477310720990633210718421031945323362527573844812436169454242833155334532282481422659361771968489377287027640440011410786451683382349607662638215406595057521539038613340529029835014985946229951372614146404635680240756183695255681414845075126544850724877075453220860040323491801346982476572286455920289293186639646500576551644567790022721285664014458403773980847750652090012274250684829944357183828259782378595493638838846775908999881098921721775132258163553159858383470120553232855283613133720839832081899551645413925196046719198764449805316002058146700944957373961862028483389478063575425134697087590325788602535160812655198774387906350003680188560240898192988942132995422358536892974833811325755169024812855190762713227681687665099556750134815315908581856443448413872325745023008042700174636947354315821759590994640893862604576477570716798566744113155515973066788126816120273802169377987700807171212581754472595023573238130082478300698519966807757122583243929781661079937164733665418797511111074779359166134582083421001157057379835895727095768857425479822071849701430778038949232724232656214216539441934791913271672020816197323034772025740551758445533361173043972478704082436234548969897040064037371502905139572201991592751607437777401602101675010670897656891517887257447870512921015692121984457778978071282552884393872734263790133026287413943593934257455590202299833445101101139694705217517859382174325278460002342017953270237521236443354329545975814513813672167953251812084614332209607581555060221244204875051861742788874518538455478455400162250344114947239018714022094166356045590178215359807562282218966088787199704634609310588117391665608515424048216936964818636043390646097695434228929096130304433925296663425091338516147324171094262861278279827739173012929002642632350539896552476813971443648270876791533724953915316238763068647150020111573673467218905766900313339752125823173622243624814560549226963173252108562920468332014780318716355551426823464710905134619551590908588117616249082091151387495414690581032025471427122044289744667844061336101826416497180018279227680477093923641077815037197757838688317107347518771419177837001443936795798553956401065481254079649233621417273135951661993580710251173424496880313965478113253206945972706507289562163629712151137420482059718685525626524407943184299518795736459685777007762605563602627760637858541333780576190385783525545561444335324527727107636717755563673221899439763477534647429729311583257986365792960318729447128893265020100591082948404793793641139139533201891107315744047070389347725238823228423664317285642187141714096670107334502619730668596523369553089870364736399145383767447263589739361524017979531015205817498424944155264208881550687584154594118654362928355965901975283684180316046097537151679998962991426971403720677944507635466174310683507908637330895645800360384056220268490166850921469416167221982149658428010719523249732650238494457533355671881537351902674797716648040387878882698828169878330829228931792920458678832276693505660246021067590441315739076272792800095074382884144537548125876609173239887116696622048917760043143926500909590888810263591256359530070262054192899733763218256091260641133598952421248372510142567635580533545834150544405086868030105249071243806132862488173887905251548288671636083529862980587659052412228568280768322875615390914824675674507690794502991817477078330639076190392135828604813363419797920237672040189809838955878922260423225841034005602427013497955524839770332978177734697341352683241104070228333374695172280829377781460066294453671900499381778402238282414702010822362152508648207372988430979218671517411040045090277245830252854438355482128744528937344449444570363842003997573285973313102942696213711380076259266806073265306545368066632270310766581997027146915827534535535665638346803954884989918639715482657343839007266346958834453776072299886387690461515623822831530560306546493656635893257758520929004421596683554140904182566821339717864703211456294668822136536851773668788579071755920535121488009893384686195649529214722443427383987052243595367002338123815839467465737987168821124568506054714137603923371372552426528236201967697843337389099214859604131619322147667473317153762595985370332847001193544884619787934668082363218533324098889086408043836627827640070970403106702755760032967599633274828433797846097464576685905015259716440700447696239540580928615426039137428118177415075168363920719837332754919430348591493254865342881140438439358992379685194621419088751028311889525449024292871047051144703130601890795041806203716817803847959674512476461834289909895135409870171423584162013368078835972006971929900746924967815824136156251714681101624183003520375195266147501855552829962401531983306965588086007364676841695307401039586913564533356653643911292844209737214649577904099481648927306949648405935065331845970757532884314392208199866090004429321373321997677840841119264348193603568645813719095382510469535053036692088811371265937182933034679131916263141242792711504312717138501587947620097617732507604498215026822174388983535625266172719633152930746399355542223679505791261056505067484531865497424847146927890226730935836445535836455929264481925559227855600836549940578557768318051058325097034714401570775203579091222382679396369409080212904462323586445547919606868905390138468231533369480670880229572985361777773873541426474020091293735100118026936718216903421742674413001279024085491315096664989520964281905406346632130860374368813463835754206912638285917677393827156524205960807873632251190748748479471277072905159843302474782787036125737441147555085079115443712866806205712278843061765508077701930399412254931935519333878736274501333383083863675425772951775642812274925717138191851726691479216389648600504619449762068808739079834259568984609246599855002826300852569494190262455827572425444650842282704429227137791787438245528497838403483519208648818898310912918331618439647828931566269830554398032532741244583942074730827665444116055136549290684699230907395956252127558508515866336190075134491445062149550103861336226504245511267473120245763489838125793892321656082608178968266536089432224125823880001210835170371740997168544142283800040230467767213295082479606195449064617923134119377525469464988129509860048012848021984174950342475812615611380317883727164608360068419753820259308867618924692604666090795545128006008072090547523395256998644122553521160876654302023964239664523188618508327263290122316165885394517527988694331428249845075240295491969042560834989484402873797787711490701065137305922379672001605688484224082204776181728301344992375086048244602697106809976479111443374209783873049634244948525536031354576180921391480137405660002191861139115835695941249360346958186964779092324494080968157464042837400735670970299028778849425822948707200208492537792290049058611268811054305755551261619902134801421768765027111757221922582492938134848630221436286683199903426909211554074050977398643287030477394680805150595237380875883254481014790035083815530344102560594656522970981586970992392231127593361142595374815555695385427519246247495717365561961178865009683699641824457298462737247085273142230305821289783384612224620479693818339648085344147416032565428380117985486039325796771930223380338698586792562966438401183440912701745983878060721510719889971288648404765969633728674873317591161257658514719364400938426833522556871632159412592054309015679826536608229203482438074488614028531338875085024469525519838566234755030959037024077114548570005952882068860628684428179703239226202491667631233778032315591586176761245374781198816231937538934623023312150642334931873422293535533607307665646179401704765144535788377279049375082735766627939554557779983474619811657861917016113150851929309835972114065430430107825073889073062854420174863515655643809313370530878598707695942672474858672889553493549955158066636088649656822104075064562376019003666506906229914301119193333642717092939457401020596067150563406112752390780713684397521078262981553388023165266264444093177438681843066094936971488742919266412158938120607659483135735959365904432500577198780813158255779686212127468278711265228349116780066140044442358807062949619741632335207948623407292735598684680109837826997614514820135148905472862834168741933394710906184535337879497739738852246134719573596969995555545792322404128357964167314349988573274835415586385305036281323277024592020807892681634815762301490838916977953100395010226291570495633817630883518559235538711858568923117356546618130911728442667814326491914706833214166587526655953150094731735951872496498788351539381854809943914284394339907870975475182417068541230684606628638456891980028740030315609515405054586634282122303945928992166023350251602113361169421707125801330153973981605003597847313403047483413101053418411195109424201908483526745297581762639802819494977000386500591593243450802368346433315982779125321197450062803029001236670235732268988689937632110313951549173516593078551730277247831345694075966928980049636346587782205617546894201428262768657428458755818512681054045443477392445282243431476776845919289052301926179296685598094852326911969375706137204155112495777508468394495134559112699526679694620705638141833510965954560900940397036942816086939971960611773576755461901002163649174077967942473073720265620914974168027286301370532743564091257553698288440066388257975797248784925267324436963362337435963524177676190639029710152449450426197510267131934223275064650701927668758841957556866525055237891886878366692296603731720095123825666150216641094635720804765254056519291743130719473126961524307413378995333142284058040789482477706770374067307743003288083859134836613464352481936626844998714442164284186211373605294173307288608127555494767416686955535361625653445054910760652149023902991679738684508377072911769709501604218260467358961760770441438724613723183399123422243799329752940521132539686729395559130245972162488822913628551652138389844962328586475696742799408166694606986335609538558889147819852743405257952913305113200735053905157991965006018887110373182661839913291180243952112522811849040879006981080195078117554303571993938067498486529573477509663216421089943499317777576323326905432596688205114703550224249943047414314134318868950194046067886001994376608129257253582847912253843115609508528886852244901796025208514266544404180656006856055343875219406031875665247502171751915722704508971781432344325580946338687534258367385786463913109003120289845678715438070012514558937621669193654466985132952999020325703456157227100574824914261562858065580863323982966742544800295983817205600105366131067540276534406336600428399293076488932644479895167300872197788047009988746808551678520501253598624981835467497030766747680382162465866592454714141468806446373766583393092470415373534673707140442686347666083024044769544456589085543145171376755329899735652221120117598181359154926691929924582012891930954868298767655334731778391659497184273761854218083189490181717774117635238796404411382647821987633285219434908398163055355037489693731603304072651802252377237990734377297029614267954276959983719951043983184052637159642570762360833363727990593673511230112208304438824059625917919060736015364977238968846351032207238243117868905800202987188929866477871608445889227419655787333178892014555662118716020932801583396065975357292532605540443217221180487003811480807297799086699976344725056677650694480208347528857083329709928541165973977805901997860992003462835924489963986455197208759020666606377892893113234736578281304879802685887138129550595617350334164091609276716639863380027648221598711223302981941128185296610932555689435993639666980434946388912204909035086497871029398112268277989605731602381049296719271038623887337035339740437902190321976114051072018665555359448754838738716130868253039696094485296477359648840585738682101029717124913503542054585958776982926746188446657171596416096184657302421302169066306184173611368257353535203966184951625168338833934625999203369152368738698963782790566408458748768523159672412026228171376497431534472843094764369919363687295770724534601249257791115515956151194110576619112782782693957646617676160473034265105352700003634394432362559672041768865096189239920119537340454639380949121375444166134968417917347167618832940980897412569936249787358720436765030219615440419743002249880925983025222590234994580521590483567658362800757300228478198595646920411757861243029399535843079044610735180059651330765453110968792084862535942212950882977172598750192696588838318459269961901037932107088402076668891809525595300097509962398062007295435884911106261607977215618058798169766792896136277863034293494805242410358934161968958138084220263143088428034649643628232850166333198748174697034691665858542773249806562033405824502021843738146294223431186071032987151844383224903702552454368428315044396972720039620580169719760407252893117648295071496182847494935506105576768518601213149027772465352855847823000975102631713033123403689508108554134276852225505612807140154357894123552936376975501218120415907692842511202362931513521712091299700490669764703540539679323730335507696802783940464228926228325470542156218152577256215848466768814400318784111799236188887931369834108567966711434819003826039386464198418222614044422696206516478223475593672035786956449218808258640856664064910389267044373201573527704916252984884889063203996272001253209610408591170393278901635295703961410013994822023791549069713842403718377905848181273932682935732608257976729680640310790146415423416046365540874735817494474533564007971972955606882460811158651342624800453044297992234581628598849683611478196150163467056658146885401181455444523831962012673180065241506322745390442580210492402374085744064088301906173797641443177576547072016512343676628729804920459721830243737329466633663073255601441041318066906096533952094959158523887691690054148084566134829352325685474815255776446751768421570869182092181876348720782640576674306500797049652917776715141694447675999802105173817927793477654963660148473321189017866486850220482913483357476566354586584573893793113442672852352271622829365415906959189889210644651696284739026499864314669773636566810249632434460943527989155288729035438691372128882589087500230058462114446827287289812092655868566772753340995690352361260339186441992247019075505451746754802471957667358239797655516535193810737654709901938427188290990930419616815568190512066444726704399707164791122033522832813681421040321506587598014675752897595127024557658145303896560334987071168492392033119664965677426862870368248181920062229051390319462298444788703227069775081680565226475590707064417184037706832132598628432387318760109072771867288459954169524321853794268167320090583237155838523350722695034731688662107573246551932465716578250149803321622276289435418373493008962216007442528360153739976548648632706444209945517566845280159465955983472483581358801696113611396726110348914908964825520306039071833157233773364450002795563316272360617261530015209671701441429833974348381311187837099652035920884069409574620977358433209884677781656462793514990859282558694894164984989873100905359804568505879176496763370777115920438231769206223958650229908552849363185586942847744573283737825604864888947586029942120432003394113598411331215020984392695536311423486580357905367810971370403107819268160812138687918404271764140190785599782071217733189085739636703970744544261491207973871460460694532994865047140569370664721955169264633746943073122368227585991624571127034534932532966299486939134832856135103823953698383561068582590518845474026879015566143321660450183982800126468856565992511253115514228149014070285012660797370569370700922657223908572882828892225094699032581513220195053284110966306264686687245032424282199179807085234795947059455856957304710112992934009199796296750016279481806287686406339243589526204513328665916186877448330904437202789753063315614518340258046776037241018327864776132911308838458137447557202934203132847468195467647345778894003787505074902952229305001343747762927079979223253611806385428947788259691941169083987535131972122542350293141021160807927369385250837923110241029936939452780940302031649326830908758290409756659550597150294149837909040777755436371354287235639994174204030521383295308934016908031626596457689367945829632229895375688943247570772509921177357853862882607442395405171797250751585781421473526610577164135358520584358934892262762851644179081900502951785621039137433595408478098051579828119221704752568973421522318262861088287761091463269211792373054337450657914061282103192037450596526401682777517683604180795056296708989127665429393263887434426327390938361557158086129158510311372796807165758690098204504402048241913384339362777558659133094584864784855619500693976828370028525556816424906608985454900666306179103254789221529829479587137172433789357725132893712080890150858591482223149969528173444826422333544070958010002548175068064261325967381219783575024241176027377077509430909090834086637689367196322092788860277532746267518317534124770998805426151826246939821552875554582318595382077579939509879453452372793999720274119891982381558041211895449993472591597722300300890727649580059034953743526839278588598820429390109490047966037032338412745289695370198945007547901874532847856430370165091180456897900873182475816289134791016966903375014007237690518192976500718365186078633009892371402631830467014515112150191024468761760837232507238083110891047765882330824762195947011886854478044582310553064841754626554848289034689429511542010492132778801186491956379333873491528476289055144081658455201974533935219641097586568105813337126146279429590792823021473722232865351315782503332212053491522941943062692332370966380812341470463960602230492194728958572531234214312166150698165332457533586768782132737030090262155289587013126716708446156344229527990982684026105179134761033138715954844372867203683515877091206435837558354141775473325540093317658686714772988749662736452745479360528776883930501259686997781991443114728757387349454769396952532808792005386930568729857254351274228222552072968982255540761436161659126630151043200758842477681856923395195143515391525113052216879625861124185881600900029044020308467762780384795140375445243686719235456871936296228307906231227966459805637258640099308740669980236211302806985722763401705155352094521627950685769526487933118210185921512262113841132825679437544888628466217919527803355008387055848249966945396393894661504522200852544899096639887114947557321998925594652255003291884696510312500230866301490528779167543355791473647725821964392934529454153132082576369654019260786038209778601327824889545618640670467053473885241711518831841153458947430146151497817929154022115505700272515098971682304205585303959418155008319548985588491577338068067644129568473640454725624228412063240312586490673467972133972142682857522537389201089394050947628825699334310586268517427651645318413120490418178224897857576395724205733464369723812796243131478005296781251498343685375728761233215145413706208664048622535983445278353718313398767689407681108455319449872013222128943586952878870497797170454096027308445564548106420896323511384027731828061342823168150027347661104662704905310451045394497305466001284573734652765742991363580803604815524860404858076339197970463160602616744633842447887668352624667425609491196439210525019818673892852432143019614279256722163694738392717881188307519913443366661323276484881157179715389269454693392757653379120788501232265331416698818172954312966488476215605751763477010441002555802754443337018349762767677017370760159816038125396188247146112393635163047202508935123589698010858828634023952231035134874128453065317292727488003016787534905691621727583981598132031394227790870526743160206897517478942346426225012703068755103036019879801479565162021970181630338603199349195678453071677123780821723483441862987171455912556540516919141077796613065699163801223685207757395698142045348162940682184941592795401759460842435053350597883702826924702562736549656117880291781646092173331885156732149450224971233241314556280293399450653007112949293161371470019619310543127497685988791779036522894097342828734317730093474190268619384235232700272422906217451895475266560117013060718800826785661914421097906011755337254604596955305816435263191649637566482873848861828432020871339528809377024809959236227692026437857417487599344845741624257513848765589289071525247741170894192145096932401991381784217085111829261679771744918249846774635200013438449469272783643938528153030845377920309738810229813297698186755367720565334867910958724534296207172942322782523445548975063730015446968744669962139687427100433735051870769029181535362064871531529446775909530592592532038168488878644896542245340724095908804508348415428732735479841281823678060745488518132911338084239083451378265587095217605726440467776809955941325404505695018437256986881064549891036158170025153799432196180476197540280148410815510222925055785231122247653762732618039356935459415338821435283256532209587366753255287077115197686571224229940978609451330004034853345994328474769440800716024081407805176501314087743712815107801416522521884252452617601692527909925156026307093198026032168267329644766846986735739263109194258555454210283865998652823216418655982100824215112326723960638299033931094164208309392847601186181113828971104293962869546913880192245743960770568441165135630447802916690143540831251667264462214747271146830189959146189926458853714757509624874769496186904304932849146475584054886289800346157868067281585487904209109207866624378292049837197589112588430945387122092706714651809168178845466035491744531406592380553943909853772073020639138741708946760831843130867153995847950850313070887824123526550445273703281951801243339968527245026801955761753497176752279778899773937664236701808544807547269204388326094985380643689873743087984901487091408167328534142394779928461936086696497257293268461036631905379158978824304615994424900066373700371428350205548902607987090553255557782468232274149318365723169794391029473301867129944955719754711754278923742598604295229137193140673962385125550178689869123040867633165870801148161074479624341772993592833924881197957432859446247743181420487080382514825324804003075810588783952038900632230793967561213149869062033696417527428886851537549503122089983198059750556163630961083795607598393056215213024173436176108458240534609702290307392773059706182833947347393964439480787664338144195391186577439345053006997484643511220279602266166670976936806646816683842028131982206804932630406000162564258595850806001618346624207776728718039479770822342255359941757385413609327694071514728032284386221354783900887162214072191237594726041155435512174994365780561966682297067841958194668133504969972978040485974896692922405304936834261251481346011414136110920655461586617551833927706256754994351580112746935885399720861761012226623509617398505958764271808496527716010049366044576594441274721031268261400553144610140058036559887462342455493462370128188945828213290656275043502108853087779450789674451271386153875996463573535694985999598698585548132644127786380889350102454027220833162089647740217527572360422422844981355569867165575069575784062362973480969134126812535075441932002386440790326085225002368521023423092268781804876856550405921496957153818869329514290968600415045951120970893492933842194974559400642837627118447350290546666805214322096246800501309839956769310115804505929777019449300914974248190610957053413726283608047554671114298674022713700105237299436910697980434025713626074974219752940560346706797799606932617847770065584319141218151442112081722816519638382118701260716058065038096611929814387036177821811915776990421198327898542471721730196276236338674380129360370299245371843205515578838191421752694723847712834011987940897978661135162989285960024315153020867724438867377555168950882574877577533664455586437076257812672767645457882910716063021937649674238968408528033115562312722439318454865805817320503213727201809537997597523277590985217218691012146777310454210990585350448414292840251075635917660293370721029582270872048448646760050754207171241729208514338613498478493719590834311590248442571112559744120711361066551664991034017631473787514797207941303546600373101497933276026057703586482243622673590665218654350479749548919546893405455972959527032358111700281192012386049104662212948952206255430292622884659047877219420164613880850572715869873080479081795549074250296848026525672369587072281097959330093274490235519723958728296019769803532856145409082846931845930905374115236072879492758067237355906924592019273313788480759726681025374439441284843186975629898642552854064930296096454606070936409644439471610350696048480521253205529803032545876681432537595038698024901886939409565577803105849138390040943772629065508733320803232498390694532468115007205649776062298475564564730489100003742153344479866467661747409664833121169170756636086526631359308797415963087541591862852783673795131356669049098622756319215207920516919087797453514528835128458805751208278542814026171643440916293213257356131020462885689563357691441873982801382774202065001176026402880098845241855081946760160009221091551719958715855212949305425442643729650807129769882442849533782761007574675039660387858539837000860120644619963968935164336206532974827917853775005596475622110987771170104917584821811793176927942409224167093427111695338896703733218992871590174775540562534016017672378983412337854207842457663551234237682906133294486188242521285422620192776370451144431114128677142348452584307053818820460373783457953406308743302543516381202148287173252979939932271364007047266974649482174007681495049041274893860045379824368975979120088266761474506949691288470867848774252221011858160617280433757013559553937532283861663120665974781921930172591678358085866086375270034846870801609910269404853527939864683928660826190688001888197407498435959616074196029341790988664339866155405635266475159995672776957042637921916021681503149500939496043278843315885094684275421491666120457792960464440472034287117885632172541381640204256535457635770544577499768885210251823174319561463404851070581002020717811901638117769179474819962299857738536212623612538354488440446092654515622470604424660258940751421401201947152591303667150336255340408602839186288536407731851821573488111971528606870548632929461741861171848197265417351718058468775918534560580258668992859591254400255940006335496081817560898835688036266054339854691257793450057502906962391497956808507187354025931978647037586537896109174260379863917535111831867566049666520800874597762101214080007160895509652000000961785838754768406061852451798171581082863744130099017299111212573088719074356150832599579465339595496158997290138957586404304316156730832475691409040183545370884196174716934757600278933746306351387772605029615892278810270803134847248768474820214714722821881803723047314819160474337391085763538331236438526328483602787713619101005754032927093749532347233030822310289477677903262587698743433309920131147463800476658534575028208770924668942226883526286847502651778848493732131426337536214343383546715485614059321104266490474980160567386818507396213396399204099352740666881174609182471095107399397411973820314548043977285075769562414825659386079900505687525960086079622362325014184346478073981161972700919140751943676438801502244454180470233054057281745748225189306243728182148383937976428569493684595057072180356052891417147895619238797773494075164737329459289306134094711917893945767220549993897338808141575539901096772302241694995419822816702591351881961318230699002652195010723050954744860155396756450678764028088868033015616851416320672812683163377849287734504053027845457745147629851609921490939969911943603203449562089512469132149396800660223714248428061491298517720829825626292623188847809274063383070348207764405225568594843481843661124804966764180414181400639192587219670295252564512826648974949140844526838546864044632074978012015425119213932307793386284648282506880682955782573883302731145311231570433736913817708654811026003797737649052380941312993305315669011771592462374400755465283550625116706872239026174013806580629167154925223555874678474278540738267953527185610326902685214651407947583933860807864315085827503599805443550727525899510662126412716339783193196699429257507696021356394084229897921540320041845222651928859065068165357381836567166279172948382319715291220577783818722118102977481875096115254825482352353733313259995366896314920547060437404370085691638483449243395937172317279470688464642140389191884559892217321830936256949284417365319268013763207370019519414609422710595990259787459824249056537061398796281547955090177583586991159958690770406735306273674681976834278016200920140477155645460534237558461604047585884156458537023781489117078314896200993993911070773269269325362238853717556105514677125929013547080889035615985400669676730108875459839726096796440577472983396962409992843511275800667686386809324051345507733482116429286448477516666007383130150052907862547870684499582888934537856378988435019201829356910057374037912201903361514230626186096670419320368481098629072496824602047661619387256920914593850461938283422879889298339429508355953310477414452017902873698949185237013788696605869316663916230327030501151107977190459722549235524563284080457900316704996021221394196057246844575357268831130710040963461394819073384309916841666647894338227642701198680300485322607423184719017472510622500309844468627884900435173591473069444277859821064397425241409929416083407837996191633538017173190177697956899002909868616172636160258331885119632415680663166904818644895664886071460854435478209071055736592409389553389671368173745153084616491039373071569060149415267686884533990781528606590146906321396423720967430308665193267210252792480053447797322525738829262678744589125519833517474497187628474965306467907510245053198654204840049695149756070790560099994282150651043753952587949269585352478078672426503722080141972075026795602806122864291245773685063176330477116474422999682047456673642815174309947775335805885493316468755954077052476428660323911844885279137401239711916232200383409525394075144144506790396229088849636848632279016216795586372219519220468868621860834123022526282125655826259124580976197207031723238877864468000217390173654323866078804749821005632607375145970113614533977330672766872065260275166725115171011352556159585980877638235023789911633835999924947561301182390309654903494808256418257278911610381208879576929516965880344153219816354591066169388031875904083864523175364782686409728329393126951406921921994754607016996981536344268763548627111977142736801709583281850338279167624975197358324821713891866810950581138793976113944664872107245339597159626608616815839020092749280096472148442929969161441615448904534902033632422435259459069613746467960671785947029779930608376375478674690638255825406836300528739822067461809982207303713552756109593598918699221461263003104414968314968113174746435924617267054368687500536744199660296754473314069285193198658734415329990262290816845635683242628721285611345731072647196705330771415956397845297391593034898650818241952379795983276519389415011875857260826391180618885109500360923852273240819576411166680050568861196444186542304013101747387530738324567919574191289048341097813135846078232476098088602541803837265357413321646976280671347474226899028304743523552600979611707689910499470337737062514062272563805158950250897171168873980608684445671930706937918255394892873762749249871289680701006201672613601693763938103259815616892090706305082352810599080078137331723777470253681011209585922679753749724778628931276521460975843801729143277170827908293647264108849950366517402719699125246521960544815608821502921292881893693695782380154895765785534172490549806684892752061033423407344189008745387145523500610169436836798112157535299244866473343545949973576589430567134467482342576402638124100401857466607065663898463709968804431062820328844614858673335183383127951258391367981329934484300763066056450666850978707736741633520705120105867104050872094704521876078229277203702302126829062673408877604774417834791360757835977556652018521004551914337891961230270766353069151200370888095173238845883323828998806563471127287429844964378562069155191259502577623323908519647088758629227071072446827031726028135385106372878276096525654420575844525690257772621809501726205707665763126465960400399802324723081227391723427373193223552865050575682387655836103737797892310982483898924973090525482932646919654758432966798208369633758551256787110011986061172782294126194224318702815474087155396197587624808722165778690983705448934909894882440140593609804792129244566854123437830460774717500950016677585970140449867427601855895717193987081802965350245834556160620322167306783582392373896599770417096181421191526525786606479867178176728923842833427978102616737182509245373280620865202757303837557053396457204349890743089697949289431373376292939852554982911089935478481976487259035786125245915845442717868572651746643413633482200621377295828454915353582805093229839045692187598831872499195151522402693908842185173445710435301714990258213042299219194031442878361272897701105793848603358846912960790078826601189011651848602452943558291023213516692360794587329727587931192276665907262183080229365819902293789392681708097801537295532278596392146314711568239764297332780793931007413747499683481171502109136925611035250412981026570400761502080545497134681923361089093705084942703544857887228295459707486257291725357574003407128837629130359794529513972257835750475971740387223106075774081088118711524492665528205653005396123680362105707588689205749171764766222150785340714088428874008632089650617451074839856734954847494930678869316644439966629103032101750425247962420862090515840223372714274794682290212366356713991801665119118663004799165120287902741358647449179282215863460302719437346563474509584847313801264998185352352476581512704484840281149834274434014265451681141561652685468076082441496252302431125831119053798630466748937830794724047502236022642856921877053909928075368864180070922858327928440146718782194565567901259884710429582212813486364012086671696513100745099151824568566225375552869838648249299626790221936140012381392433020922102785387214340529576402909760561918960741774568541176698893701909311524855594903356848122828804167572375290388117026804792398262051491812995625386391871463213818877241017546089462446100940003970507659414306378538492680601052524714453200688697518851142229916923282248470258145504572029228124723379495690610686935349314481204304789220908302698206404182749209183882751533039085441825126826918572828171575239021688626553505725496900181840073332595760442640549811692621202028666803866091848623870112554010382281942858281980520693015800414827716696697323519151606193986448019978335921729901540470990565628774228605988840823022897565873346573150358242872696432480152205635872493602848211891756771226504939872740482700299155885903821802066470909247965069010059112398817814191637291378382374276070813550316796823601666090978489204309009973562155852544608257140516192355568365147962496636443562924784404776831673652029269042282664746969209952382079331474097999641667797766212495464689541447512702365036813568693905616072908076750985332158715073895925740688544099094896070302966494253077597158592960284209682992315977559058902493511022109615195495558250294913018928396675191939178748013320519118244809477989621803032016894945267983521557060859719858694076501981063036814439649467249420756247704193463695959652459450488646500947950808539491067131708706701850689327673769506164812840870663232028670277721833852383450218838513222644165719088807784556978371774507217608002573350965081857017023655583707594247208409276129991930565131161109729533688292902079296620324582926179823161277851678576946706836909992084604414669424128631107461752295699149654752103853086203067017560196512432020671175938993350227033004939108841051116383930679393266464133624160164512848977871644053042915053704181598001132395305789839750781410514948751986801743038580188305076975373484752326731768809983199323749499590623890542900151277230309548847282317353140881950840715692882396851073101909340878127783135614098835439523055532418572720760000990861488888507269225198725786611648977050163520709749844383055259049216613646436041227137115966885612405253365706120962536799558119942948760815972719097219926365137184120296337407205786549267412846508786913544153925487140196142743337659622791998919890936153097403930034153418989413536913126426414452943125190182122799721950794350047535822523711089495427501962353180861092005658827914301706920605004974961526799267064031389920931856224008541085007732519175797358147898523681005853315191292184365184243830737841530350557297948470183441721198682999971159780815165620876537280839173244380503445117840831380223064698587500819723323271725280572469539449969656532911536254887532141368487544122842895267584772476401719091632441068925024308468675126704436680939833919681822259839951456120920715651795985388357193245351082877119963721640225984734000689867783661267619455406570229393469364376232523684966019219180888849837525242732232827876243927143232599090399798093418286736554068153924489974400122408335718226438342774135637551382722502079005368230427401137935477098077566218576045556412219133551831180241191430770216104904126296602689337990045342684414979985435994432106899198100307557218788756879628374389225377313295900151173759004804865334796127220019443580396946055137522639351601666024345143076636752321543252941770844617623040859017872815806138946709442864171409888305340476977506991767426743083672871132111423013965126090914552457729854001747056709538043805170644038978131943818819671829603334341692996459728262410795675278654865175220594903448098186039901007266417231773393326528665591959897671034351236661547467980094020160175598624783210825815786192991947735815584397298940583303299433139633978691136178912522711938434867693069114333586352670388876070717674295828476530160503302403757590810384952291349994778176097736389572067354257900397839423129947034472115134559655550541383393565736572467218544478898929814660333283089546643943736447635092523006325470174533173783181778352388992972701976947405369627323724093522914837039030024021722460801061752982692455639418503207038670651144327103819110030105056144503742149038646563317285145369087220517630255580266549613957400948849255806504717427383030279730308530278643036524069992618070194344589767631174003213856935488249383185197661325839066808254199265091537886559465815383017823218154436592178332653148388536637098400285464652547960049768892607488401314590335646808312484540944262194677840260200191565889327640955872879700918759084056723794874496822065966150734943271141741366900782737123437210950255488625651055969332335251764399921324722069594365642195591455363528760497829784246610616907341847977784656322805147951377791983187830943650829871268281574591883870623641501324954751806956448366138588941794063060972878694760125897997735504114147391413947916482437819752638524386632525212081068556898837143687812139823924409580084503901171571417917775576625292150497233227655076639107554247582264759506675665648956242140859174502870304491516027058164598404569904027305444060279400276709367077043459124697802083436229750788076188531095411067255017631344314190441952539702431880378098681865061866607618171413639432921426596681108862359714510882019923626968713805099101935778827351717834662485690823847979350508580747123715816114814129449232304362140566738183727407192185678681483669518847106135704532177034578961923241389644891014713839511944941707062117707782745081019454328988135736453664756329027829623481298930034401264180176442707410823973418250173845343893085255062335775917206375674200314483049089434284965755414291985184259934569257823399332601293380816153884391804570636691537566024331548005923268281756370631275208435454100632387809051851191455256013329708252556834404632507482546062616308481035178947346887157046413646158697021259085846704587451253229284145292648533031502281024963571016599677610175420265102579826850098506359835520395841876918842199789543043041209146593898899068510846924996211315669371022460947603535172359117377778641894108309818938105040375679606271175573216405422511582850664824570744495937655300466727867990390935476848409050988058965893922354196831391379825649270711755903320690787875767333545572677532466456322490316578700815008997016021078191784805757064263332633690269047641730703103853897579800168698208716831554706068623753075599673334442781210083331193211860219415062125519687018645726327360547955163225089751463462764498483644601502737358553086670057866185425471542537228546045941615714791096699675408015797190106521393908515591598827292975418260830142577444339863896328409962572344502731853239575824596646269599197185903725489734472796415631174408267260727915166406880580683565704431437323416046835247503937426753495996986360167742238073871354573357811249527938533530599464086329420561428841747233686738335919624077103927359000618333452122965847302800538530010556084503035740499523473133880410980964477039306239690548201864934424005377011680872133191328131482644220851924688356847706981711276673840715802935051242238830511343754721045365707617452240115984864397321258025835482122175410869672935430970377171439448726353506491928771540049751198846495099772796693289390742840521599454572782965184588324897675450150381043421877214405527466233241961847771754970987981443009070989480555846607781116017643909581946453137163342361508948911019233955498072786431451459134080854591121448309626137468181182492322436000735474746186746484230611405237473748567646930148314667728383427617195739868447503913937995762528405880898798049699168571239443586874159240988858295375316254008416452110689077181182606106866808389390977976355285568387987607704164593216777629638079543769630311123932824354089137644136088094284472743478904721345380522229065809346234861433189097144133438494842939078596478125891238673899785654503587101535969820224642202409068895684935965248124718577586677433628019324394498831545385834239122134374536027613193661734629165685202910819271432590384267456826298620698013001014244647875695321788174926379809732921575383066924179444886254783998434389361506238216262716050163309127782576373268504947660790260717801869464031838794889553078804059783693681250482303210694529382702312079250964028730068892309979602389808657832849718825434560758717019116215037574126726380227029446769367806413297826776515452633587095384476644949572836334140080972368821777025891165207577765971190830212014796747636259187664739648951249766419526436444696326890464348313047453634108362082387486919946779909720715067656019343704600729431771030990863000006119354975925415105624309123705389836548971983404355052951690918199786780555335822454428748829645391537825662403805034036135152309241911092128891782325366856959162553389674291519531732776589915628736092689217800967402517226410354202290230280346279042436198081597135693388013683339012021534577321885458884081203798369689523053960471668090764077791058543644330785119916482859709811327755179817998556556267562587920320010223555430218201560850912303685503778492526178830462799639774045348330422734175047513819645119983000208677774259761886342692915651888134501160189086970520960794225546734420434882535523385382634814214554664162233489792180339332031205156378618232294113106242992191319146864066107746741457774475915475777672375185738938813505152152021816634146893980302655391015100551462545732263581017381081843207327546658997995249355396628932343937341204706833287739194813341525693615065725746200295850099784856367114832522790472890265747655089785857914334786180347215337203099973409605650847881926104850317425280508657748677074945027791608096588337904498384120913106187250017613646681281228928571874752458001281657133291017613725262546596970512305747925090504613530393062560037500935564392867763464602955470854569797560815475305784999664473865608201420089742049929623141622102191061040251972366502748633098242217178368980727048933774013422277013469286628242055528635563866838522391399654152348723742246237458640498663956265876745597427038444180338653790007666084425226318340694046846328675604343206616783833871118937408548173539202409255386500489265415303084059841329535573870733927583911061236775495871088490954190846382305262132246810813715197536368213254776218507578971789067039064729546468929258284211222945481066841389830097129570476802956585343450518169703977970976719962198865390799134897926871796221744890475129417866948451009187319888901461991863553323066873542807115130657997385660904009084769864274816756540675544280568526794913355788066773447665540988280860668343621782293062521824926296418806522701094931689138815959682294786611720566205323696290171579022680895592086472883745527846936377724981491486200729223996069012808419361828963049887467364982626922380175316491091923784345860127754046587259296610754056023091918744900129500103582172794803824073687353028793749479184442001911553667784338281048911404903035706126191787966731259675798612305199654480876773129284423882056167796943540055428398652808111344891814341270822659807157492427368220101031485114301220741248834651620190765434400118888722526624890578603968468812729529624951389451272957818288981793264748316492539821624459954419214644791270838525982296922912271924886377124592708582628867356164248086788331585296976838271493223455119109202245350134969472937038738917578342948871457874629861316223792695064131593915793686017100557001865090555544036066226088053802657778750451762808549167190142673917844945367281988250936435360229714766166900981385787347732837717060845861343262370021212233534180867532774724585378156317087941041627550918611449160008191024139416831784632934095602630988704338775451000251468523626677169757308387913340139560023386603145273912018175111149363006848883874197365768606565503282584158064334251775794594523864805637102251389602338956551808732270497591540681704667737219058167144930098808801614567651096995613304511136348871405934886351294093550439076442047314945151105460161998179702523203307367805234487351422078803458657322819173239245332359067736108235586652717936531335641988324108070762066371638535681348942730613586543202940854761008471796790583353463807846921743827033790529222823365469277689294015526861296621576019338802212909928129589515643691126574869142942247561583833556453784994032472138990238085562904199403909504432733642480556688864323012615181251792195941880658370359623418455712523098410791908698367204489555165900614075928126280258777015315723137618860911207800640326846402155913729918611562976199717687074501757384854171462767179354179128259750303578771275955995004937562316558522080834324319844155306407747716853254948255788711941407564089369168396597390616712549833348677072100122622549569127411214808695289761918115157529772024207873363921098230312092244782036991732052678901843275145977670128960203447026053069862644228931133648820336583258935581986017379011258993162064457064286445042869280503726726155714378911877676212026406281283348747729235423978802364586853761654701029447413296924041895976399488889518475030371281025695665905926430040606764292968030089643396048723566175774857938692031257973769118541087530471763392861956178198965789310205396445339602849166554659409794754506012261868998845326493583841340434305690393878239945703834934750254291185717782565117955989743192410127474435282597693238780587099252040625136766694394830893038946010499999607314027266836716757988676785401875781146759743162244935909415799680872474561172083516207939856939964705518494593333929914729216173136515856780542353922599675616263228154147772121775643228337519911543572562758783184279589004682248187448410629009071095509801404207998062706062897964298526883310887778699558980753933021103768966594693342751016243402482002299914819809366118769723063354767464837896209530822646538740764795884413136778740241587432889769163485216208445141252523912475567144904470851700149159731235421734591672164152578631558737874946041739995303218859359362906214714781772769030796941578121420227649987804766759094014990531310946428949993672325551129490899108880326212344833014647695002759932166867908278016196025166058135884178392915870651258178571905235236574438242673331399616272624362168785260251150130841177156640653140575283999971791784859966343806058852354456746470215601104794137425219969088643363337698442718246294900076576691277721995662945481608116560667021542606808037035619342022692873671726411570878183958700834471717827339186920305184539125819147029253896218399615644137859704895038187645118856455156592211640160353085968087066493657010212050319276307746120483127897402082407955470761670677271333466704506769904627678801441159285697109691211516554715379260304215474666120829781549176702596050845836728157309143327813197937092865113786105239794891669686576240226599637666248449271249223261832564058008145857550586418414406588047811170907877064167581700933181491981601223763301286850531695297477658434925002628013180354426371589416228500464156788660841488630114902551896023259752898081888006339949684738017119412041589317900209283717272401204328628329447830280645757037048905856396722722090035650488749524083638126987899170759055659050676787486268675929508689664854052938240177958531269741219389910678233437672469106070078242896350950766622682725374916271841894358282054403147760036687464940149760265632626360887135352797306524020627818563559341337625591612950133971310552130291348857366515326303943540887252966115860241058913164724829693572197395553269379265835689898855249377184023796886650553937940806979474128613063472536565434417648123379161402591942196173247065744311361017842861280298780422516496964437211480157311590288916451829185619122842543565310116024625903680917711045505014844685665783460143037704893861248185113926984900556059231919483454679195548566118815222486017773383771323217789715487081435369787486748859828763102977150902969872088064712035842538467257528167667470399478500606324181378590509995495433502169315477074702095988501837459649131571929472495535114963093950973397445691447604259805199346737331086643005826077452964598230793265303900535404024265534526831475139747992342025324721526226613447274918000072675110642416172364963151809764766253491113167376075002139760995448038377469222409025761680812737268293242312395634300588868016094046710689552346046686189472032198659088801059566785728750933939922383763778181763289441096111759993703255893954509817992977466717771727389970301124566804880519215248444242734222893910407352518904776599593476100225031816234238029498722084161301069239141947655531731799042024166554222211146054610855123344641572655182236868840900927997165564993749502123287634331536755964703601055584988738364523315772688576253753408225895396975966562729668536554660854507382091267724826967773994804347259326138613772184947152545756069450138359920589390762923337601290399954699934331821871269075800203189004296812381483523590739683686146091215092091353354914798133250812655493464861587608146945076841539624330208517115467824054030624370628581696046401120298794970141099467433324916277229752418674812908130619044585963710701825380327548592953301387081651531821791567165630243822316329210937200629247434336212284408694175501070129304133201057807432233122965439316867197894117207535049315318463503145220046593252740037314439932717365066424126189194156369456729328178694491613336645578677481356898448438556538700264681692857589584404737509841932838657435243727985763942120429003677480569855930433744397455278267655712568034475838972958680542186208244582258850057207051136150599435916674949252751218537350945822632761352993769168823962210338715456493159019036162623906313145813490739811579529971441720746569264218337326968031741571461299346796211411222133063519056907673136801425153120085715428686847517511200199686886993464029153047132624635005188344306177643387037230157059315559552172297634541625210876332272907752108508612999553605318603188929207251336012373197380573053949112952267611443274538430498896272349625651916534905688275101914516737549002815891353277713812988141507141735234112395657095747513565373649830999234996979571439874399712235300926136488588390994852205058227790688388216620592937412964258349709566314144064283800081698567372336733631824238486498460512992399091106908238003594822892628448933526633487889659526756665401926461128039281655163393950780568779526601182199433481716633288180510781450841214958901707558988326323802113954597814731999066434064176294666239508348766307501657568310448218046206009953822969349555776408226284887715842710637894907235653669190733901432870462783904975086566182898099547514411637195466058484810250962701414785674372213213238772007955465961764003662435386239203819023497398698665402745168934423640866087936015346251935034784118249602415864652219624792875293729451481245504745686532642114852126188374871891405968714151867688690436995538734307735537687099335788544193339801801424828779472820637617912470450565534663594259744592840987110771529307007007642335193560817890582447233926407684821788685394082802171969512929384751356986458554568425961123477144710834561278459675332305539798068735818367266925618312358953402225654552277778101807491778095081612849795376802011536849192696632741116099752242962387660853931126770895229571592830544336104540059986118992310482306522989173698859712478837439840839799522888641826323673088460154850610694594348550664427754180045961292329200373357699243071538388584756921528537424940591226305212230086571288600044087719096803484464029268578418678884881858797214143366290903969892765238950352715032316891787471920632750882673724202207486665544487753458018512251094452535642795829294263069577143990790880118905525185039812984758520905510238072266662489520812109359093256340495064509085791684502174913185708281694692476969986656389189055085752063766406008281889008599229393484576576096911286930854679839450540451852081509047252051601115349506318884824605031941019315319813934036581850055204548663267378341020852444829746333243387943064725101702154518203756632162311878480031795049651998360141488496959983411756178253389207625162981716904248299195598176813682134286613473029615346150149050416169170791061320676874372586140984061007462405596902106726297898315256565799260209985736681326989595289224386958883459609880220257218870236478936254848412910953704027151292343178631641737325297873621180883192371799921621219116819491313608865076167818201791619763521244220970732238565989999769966078746235893586663160294259998709046546308980916683741567568563783872845327415143124570163380762331072165574715464614866329188702296641530966921363038048906737941897097370969205339703345723436967637900650190122160001019811123789949441132922883770625330785653291114692698033651442791684002540124288381503721204752004822557074587819507771830644768331613446947392362587507550126059827394289586655537198223468190237154874264147301226093978471167933270044225392839504472429295582014922561310774761199956588461518248895223261743051240928142161345220358386866649799977718069447657754985795294238824114957523982579095908221822454498699788210487292727175533606710348906025633059008814727449950034536182470741891073233251249739246306419641332839031836877831853891917339640705610816819624447999273595128840264352182923690851763007380169731165821784028128542437926550319260651928843163188006677582501863204876019381586639187121141469364427248674857981276394045243093383185743274525234056051145844440279357895203079056556368412360131550720515433654220109373297128811139009807496813794817257921909004271631501020392609523421153198268224057010919202341639335669479428694298185728879883564314186966120668760812501195313280701766934726874302342064457861577379039191021502880720326722770212803684498091420893407369863443355648176007102055130080357705317207976916287101212023906929261678796215403516684169466480484801830746082933446606750723342329415962011027577151089402798314187690168007140569107056971983771348199059782410609711864473038209048433432747348552157357490289548525340832744571940478200027163547399029125768685059458753654357852634985785871737937285856662873834470038271174121130291684782670150378168461677612814935776660310524303578149690575546678221893101073033570182582855092108118816281503002012781675347227591528129828962162212597313730090892438676802873677157546095935658992948498671668513162692942227389690484871494946721598853419761791437438746999183343635257484486692264691058884983651989908216579469188050297689918245279426908384482663793043300417999708587006365970798198128582804962305163641058904110363552273885216550623071589832025396133322017650419276686485366727718693406796754785058921205142381095790731468859395065149937885897666729920612020940751725162012088800521417631996059576285935101526204557033658268190525557838113847548325797244787314794368294356951152665422958599039292722329330393477873896998009578428226175963053242006692616914207487781577850267003124064711154856098138815555492785050908709276874065897367225589535412029118632921757875354219906572669917553399456879006047025104290620849055829157560149507996796477179679265367273321167729432791253209959380093954369324548910584732864485682238606740501443168046352706901294966661070323127332059338647449017641960196757616817696574958765802575809407062471274877460842421554681108484586667678882125418944181540439972184894174328189721934747203490025811366684068756173072834602179581397638794942677830895786016893627528575857681944760013688811231205014726306977338154291280264901979182713536377529339224264574193365180008823711062614154689780857637924202357517382409543766843887826727552238251434641696648653544244815394059400433567914220802840592265110109240849986974173565504725692577157014276460592239642381429735717892841639638004313238936584738568987911451603707254242151446433003614435446238947467053006990802103615017051113475934360793389549497256951491506362466335056372945689278659633391494244875979922207990408692206878389716693753658413172415347758865379486278978052574914838770851090443259801552366441189774523020957803582466326791722093476863760370115560190927145124029900926331143883441648612946036527132371643363812703410430278968658972829869620234379791790830334525823467909868798020818268666278899769881357476756409514207191679622790898846420509943037460294382272639555976912136807053528607923872842068924144152982081847268189177159544931913552271949728671385144297483176076090525062478319021299768841412449459716795998512250079174882259645613137699553286357363874554055726146345599237772998559930097514586818169722864204668491163670200880814495603109670516230601651410925215262496837654937229334468425606468848021253617489251237974468938002277891364854039392800555938103352209292129385329300663916129943941120951990169972489004872581046209975528425584774058688119357777026932438942816877247989512202256905471953512058076219981544103838511440804182450651486155603014789897755965099787953248391161260146258504823822048734808966503278161391006403459582433606167711212298917812985827475034191058888180717128395930343215714790826643023799466588963215306675481217870913921737642793271721004758249768641422331081640836869179379792660971449306928679703603209914685219587937384395100889277165338073544406127626610937802825530338876432212222929118876446871917804276820211230179538537707358534502582618646396608997746192277449716500578616754330084982482067373094562969283461369879281233700292751188194349962032199990978469186783373635285059425698926621290487362012195758786440347347957104116017465398133543124476780383892122890564356498152950930726907475972104737650766615156303260847381184497655646576058256106739294870767855132979957435576503703304777291546537263513784284282915401339980274283930365314545819781184793996269688928463986978438463795937878845219079252652790139859914553152687445307513905625515786727468933682266855920018478451171802835046285352552237329692761555528810263455508716762118209750454629933590857303446595313434480397348129191591388770426854030936289554063547808045042947724960836002774704756571303680943235033229826296131757927842987292681002076067168191226949651826346560650229464122109115219673566869612826196092346298333903264130255315635684610530430671927746735760387864401933329843930791590756069568206447493165644783672657098747322463820638646637339968652854364212221243372762990993714674078083587681606092490089772141357168737640714148000006438822953688992374905489786947312294359698920100383346091158035721270407880730554350434487896665103390721969521013260952866832420604975682104002061788308640415671707534566584384491203554593504932556009164056577937979978348116719047629236432789286452419387182214915738012433986191102673718149119700380952493183831235152853177950072703325771076026278194266845263483126542511363623755579462990237525419402473643867625914189427377415645151983426653430627929109968152293187243846934559151787988243403909860885832220316172814041165384638347886673528418149876638093674391645118704469221771098234099306732038471205786332374616329727773013104291982965918874395646739931726383400787969577735379435533083011673487446215341028679920895613952755143041602999735561673084626218176149117057204586346566702861030289371515663664430945428440422824437005545695532711577514570103475792094686679013309623889311272099175101564983469829542893435448303015536867712114448330395499663209556283779494440276664295064879572236403980401846801779773898840306502937169856465739155023563953813932875733472170242949492344673826890741161426791496209809908025677919080372922165510037609872048132651578802459664939749397516233584879455468597108201312857665713019524973133639223035281865411897943270605970695113535307255148543633581437209568664034824276489320223178312574778338372333173565023186382229116639680038565176609029727988555027936121029725842538821775546954599564837786522647509790171696000415386966256586106492515158433279223117601669939012092838154548777630197388217657990791292003156223031444028592976748149030197938218136258688570865799974134294293219195356122342656097571625049935958236159400284286627432610517381601588282905444341139503902226712790721582906443814121126905373887245949083818141783445560516310651637752901724451056947786909546889665303983521258656393447021693846603451546688494282575864235538262046149401009007276417656969162853840125826959379880230770216778022750840308183875371410911242419053663290191348898124962975589941957751611139055880389306518438240428439673414617533891287556845900061480127239673391042179012169785373206283728992216333068303520862969299780968292570326412952952220206579767149328095538639204377714238020468805733737467301689448014230514962290209492659580953600151560109351048286028607395164243856484344098385742101954035904398140398827360498299290417745223005520125510455948524180264180587210713095269356630831550946045184887205350415427972040000558553850495197040712278304678978171950505023285514106400749518117781729120074286793358391866531388077428576660476069010868104669948640464394850873531962710870020959565115544866085328393283602611900970317436156594712884386819472604582682844022876520660292601170412345205034146499914468075681987109388714050278292697960469718887030077855993054045110752266181556325961042823745194762018766511756323034896572912007483983465773358916476669038698453694214448673156284647169587397460399168582583278501970069304646036456375751000469270773961503382809199320375764791986272446499406605042766395943922573163956620296816809052843500148939033955661516950659384387527489904573783684352923945720943246683044519308965729702284199376834883342600582067183779619819811171688502742406607826580667607622909023829319759624167982091434995783247467543838004687685927680894792756762364446729994492534769721836936764543515722263332171466593358719894524003954182017743692987740448856812366249370127490721199999262588389100998821930113486325755329448539390579089506984775803238534087649409309922321590980256512081957322970343133890855482703277717986067076649120132064936073073649845807303673315621845726103630770252892913015350839153601918438110085026375899404816940070045748240644819847033500401077184652794776205921398450510197310655468004416103573924332176700204150437166838642274677663641451459928414255197601383820138667418813617982386540852074439971902354708639397344863033667772384419293875471463505051700967630434109926094188560780729519824873494186853076513828965623221912917840121982087558735703777213300291816906409303055742965373657116101266471046210239128518200506282892188069573431812391314586861516304242844099116069554942944497086256711954757435609553384184070668004885079209606091692381667163850420910177774653004690208992716926166671277924629648421423245093121119765561230022561788075404086583118562615531939304216696424475291692828799047725894006612626171839342742166628598535101092021281534533194336149560726758232185016991618506939171513971212745983690142293202310757978955820187034732948587920901397290076333455604651647272402745701845470262950948734615750734315910378204284296626814629947805085259642100357773032057679980923855662383329921305433360926208908275793722132729669700902741107050501720510718621403079148979079612631072788003141658456935369270627835147107607309206697325242709578663030463576430290285187391423911125832054502017247101093600238378342727891322963822999998554010759660640384569404419502694840347234098583602672190321302241117113314989480594356387976354868031395429142561622980255651361615700340552507756661463354477595119178046872930059676377936588973985397278610269303841191095819183343371439229674277878011397995517865609041883732380562648073639524088307512502962822690521659244115223072977969273695768084544086451325709840997343845311032788611369518416099110981955416441973702872783331553152549012930996099035932994679506868520405223904868363751748153545716501013444971137282280229815452556308465171676593288910034569171726346179634674909404942638892965982222050679673586915642605380024973927939949416026907343621660237073312216108860318022988054948561235833789889698579650528681419993800112957684322620339560827477131543964156853479903924972199538652663945513247371911268409377395838186971821087506947460324744255361385308590395695243851259493812489706940909021897098905306591693814525288423635017706727591194772149326486482442396852179308717467234193695310511894509241877044318328217713591453389610753211937249991534503940077543974685027800830176713707449329753550412872587548377061257107934993384201003029588506366366416106483265606625930654018740431601734714089073102991025364522306587583628343783667544440795335364406646225868279995420580716062661058045106955045351389188556861181876690234435793092820184626675554668576316438943771659567227162825331904446247755062508267871521026237018245058691891887497099256468749098928848315248730852182182342251216239541217439875621169998796934389054090607455667849812439887782902195609418800299203890637142561284813826789198011498160905906353090550721544767105405748194945678018536685867222066723145915164046769248045650222935494425619557152103838326057778214235518023729366911612947246050828470195302083325850030397976326941919948867288132089481853395675974171322350603976778614338465349735070122792848504184407847569410695977018067554473203624495110111714752624626858315523823252962451357701866886473848002470801945217809509920555778523447575508101911100527064344008212239135097682040160945387600702495553933802416730359153424094891601594505652284572854601315989949857047872684306602385066575500097641693232197004702663504933076215151679309433149266773398819113562508723887158889813400050616723191307713976057420909928189733355268700144855738017593506316577311034230307793993422873816924137554968185526501300081358403995195931658103202965395326064994498076806679947246469858780695513815021315410001468423379119221056377658273206645297629955872983035653915615241811168856325734937134015532475039694600607872837308096437841301711200068783369595787069672424443340715831217751763308670100166571957009515272802039691591861233135610127241148881417175558869596171562479542578199332829619983913647726530400628144154651950481352703589862756166616422492661390243240079768740120559524051075784585324202739838244872839155248733833072875394848789717677580960775865745567491008848122350262478426776068024508193298371947630717575870147647340522770483858531929496760648924817296043844975439008021327701584529556217411813904653998366958452744387661788898033485294848574509340029870984014402956021199605250267627091679624533452540918178185747995632185968141641872648537997355653814927374905202662377000560780344029375171913937548254556778836450441254183306649548513588137651656354259833221799158141427029916433349021587785872803612863546112477036876111761865018477136778003721294406632303630298141761951353050740179801376890913697870495503809805269463342319793857364013531510311034166271690162412440626776407943342598708944978115884590577229725820824534742168989608808053680566916941088621186113971826171675815049935982365322832142406952998325893010772263408963599793516883975204407449783948882436363281161586175481689798261067577179657732634863666891552321123935717758865861628955942071519807274823282385823766209241498781303520550584220031637932838581359210968625522535888837372019328246341055620734550126735639127615057477934636020212340826850654208537289390890903221297211869028773917533111384699205518663038076559852824173935981585656533979999155178700317183690909678210860979897473356050905843500228764264650272601190030865590300319448502442959447137835889242161276461921017677177510999386502823457508254547340850043698780785646357323782238756181554905634434575075349882242613544689598209991296971169239588785619107654742080661155207845991474334837753997461872492739843460192243957055197559092699754763134290190948960279316396472983506632463859302221885899651373335486699084890225832630101828563870929243556256049860529703499598063683309393410888423473386215101231293855395025766390474863518141958402637652726523153163056469647024422501132241848944206553409279191485981099816204933160487442219414559764224111617806001898705001943907023551125615041605903943183184930138463022923526232047605606157528690318881523655525759497178298171918157756734779768823486439089495035278731359233211065137659445407750287159190310176240094068845839843912976420534958918024572427516086837607457907120336083022118928401209109411458407068413971552450155627274997094561698863212347570148457094993254090041627428297072818086917813675957667212147312683948893710622495089225131314127922483168516110753206048677177845127801356230264629542349436391204182360011785545419798180026411860317792135663632396687192000875648590616413524238514463957307863258489508020103842136149916231952799753392981155988129160046418142330892798024352959429040703144817420662772164007517343201537239562257244793750358311362916778178189673988690472676183990931727671791792743813571855207135512318627141418122613818648793278731348988850578256558628590794595953399102530579225397826037426589807247581612606668396434816288029159271029948989621228896318514393708069593526290561460828560877787221480593157663119528059678015192773297913991782553319025407261471980508602376922569534447454568153421276146628592615345938540279357448588249591625576131691994631691439401339474421116913231157806991035159167484923395434729243889831310725346058001790879891266732691412234242825156386256861090662739869019234516024056212071515058102484085823929324294045082919034589407727583661414664546703534003775335143131984953927026255651959832570242471127111237090951146160660479456318582574026566811726251847101876382087731411005956080319745609090962712584555284105189443962043301562608732754003759688440190154983887224396750283552233900655496570739559574278255039563660821599853252955683046057027515977717652644163772871674513989445793716999117536058265029309319836161153953122202273303582015948147052540979134857209250340335408922266576530842646625774143968140151423298870729060493292971695622990175078638645802431086466681884380553854003433644976372108581495053897125642081343201553014309545539384506371505922885386847697734613137455116051971505419432466514165203100039906270001772863417675403460365729125215042861499283108580789353424740093280729864314243538601748814277984731717974560969064044144644022486516775402537267024683504811561853356489439378114060500325373203343778240599666377856544587577863539944728451786788996316544413361954190833028229583773172758471775662096647399479111992502280977306159051056706657305973872299157640178072639582398659590793922221211287415005376915509034168240304692762523963796726826102165968230780990678946881486146405274690323709612301243437871076112368682635395123055700434765290042838208708337481359565869505411042588895448949795429708340186840796820839923385666192017200299140528050165554370550252853986178183062132313659270160542501085398126194684275275864917736474639311206537403922756623566920680566145531512542394770605616112527707292958047551994758414298813207076471125672257600547780577355387200145999698391786741422591916505030278312708660916373939482567098141968469008096533117127217398138996931599574832666324261703972757865755877701170207329553356318817826895051228381257134964463933101910308740104439044367775181205207617100433961580957469223217643955745420966216912419857146637560707338708650433844786407459398248106632989334955715085770287539350033508345755255123832083171567394087551878740006581842664286352347248716310361406985336219011833430784762628705545207693543332212864556101334042670788468925465022580976320474290772800024248613562891304548563309797347406457494815192878883030282730842001832446750677995269646201383523322229461104499239518942038629217024601441455395360156438919901154717522276759742785358674318413288289182713488262333012854742412115664188711428150380019470657791391795152456586660236843301054554380385894681620595427848312079364826948813207607029849446534418245706606798073399178980638683395226324903932348951178542186753607385181043418126818456736913589683829075308061944497665871804368358235386167771874270465597858357679064740309966734910516813718056923183334806191114423872878064506803635345412035526292864845310949920705954647849333167635257730757806280861276147184971340828088175352294574114337414219034103227829553749380274359697040507036437974644116391321149258475555596065773720221817192415316112880210975338283540502220923470258093440291342688671365028926316960539037284642886703103211512957261923315389290302062447218700913159300485302869144963709845144101483601204630372987052978554170626806924732974940536266629747549290243983262755555691568553280126035869623654883505313428938235591389717635335178013120438821051578840073835270460001174662100924087968118480308308538038388158455495718843785080906483298617837079997582498498248556510374502875646316481528527610391757323504638838082308233476776860396729456550000024232174303247014051142984421824222493215910251231941438931881732757654983704266969251150779311596122488816254269194524837102201490359533498845832769179228933186257215533893991146486292779794731351479229525057157959135563210528026295307802919681500925001685479429673543626622306880111674368416325174277351185342707273223007951091254760626289816058515720751858752313779569983083586216708326290913744977360192246154195408053956521736906434731129522708512143507126160365263670848600752454684093292822411507379878747436361690232249927268132171853966568064878402715831005297986112846478433400913939684504943640723181469119182807600872046786819285513460239218390935195159077627834507844648275056610288710999042176403475330909735810010416859336117317944368564631122378709334827817026751510616610474958442038469981432181663894994154733909960269011556889845627730627011501880795648811473194623370303497829518420042184753756023202668653281578231661460253497281425902185533755256782579985347109211072968142612992000481779182944498386492430188575755482234665628434939202732881277879115449308476448956994392261607104497504571825241987887713922154980252037139276524765146365822267292690028492310489956308440147090651916504531524036349068723359624855300421594823362341660905609142712461928769870052720836427410008984652285095715704091077005332543728111939502341055031091298410942715591589980031264054838741896868806893892229589752374009777468048523690863517112633790856113795934335995394632218616074714547222024299718280951895248404294029052370693290149639908062217191226716233802736533558360786598860001895299558201326633754196372104039156020720365844034825663426343815526092812195553814278815069753526008807954874187955792016628481358378625332937744851273005639868854151071299412609421954796088209123447251723412386586508435014873186384266070125926768023540574606070739419854692969195217573716049986402239975724999824566600563924284333316698018730798164205036638661404973600444366867676353579102088859817824031822409714947703197382514975745609310644947756315434994428595813198352369696653096726985949334976393755782229242676492466333620600124374318568239269239155386825559463683004301590575488716297648299214998010219378449552911745689381598629501376513481650818985247793023232487853145990165134881685350809615728638752506539353806984406288691492027284345129521328707705201073227126058716678899446481374993818945920026757571347022061513497388940258340793771675692954223818784794838444441016800190330283891359126294171616028968381168998716228107890737060293868921400347832205437923074656048044968129286964702563051020904293862278847049366643763557670901810436667391473338829128017761368534049417080976357456675320507985192185897443621965800174034771613340499642084822849166137593101862335021200470849207161918902173197022898938356786038961650505878966552218002850853688978523022228188607878526974896725671269991352729750617556065398836798758870582134827481956938494645665195494080593102889823764260438344760872461485404243792806875824183258942814397868667195594267106872973874532251395191771932324996087454763996411433410156295103474837945831085395309183503967747136587647749072649073298084815621986734324121686575017484097632044691249996722484316310425693788293666417439346520591033547609873985203299752268870553140839374017561891352834523388586863727894144033816049631552383308868217229458055438205236596308847477284103560016326673371653732472351405194052143190145501070396775144294479521804860946999216104285757272248876918931274727280856749229123985264231550614138457369930058459396226415784462104150263096837237167560710755438371891645322656437209596967062997529877282256182779134768879270562079593972586593721337159326389498927512493487706935472876112057239047212421074068773046734348647374668828331214349484781966384458676435866019558446462254549334273016050136751522002134690568750103870562942569146077079883529753805615542259857204645556942902401712180417934750755678737378935007196815974272630969009582997549366422155319087722048770326497990892362163185011027763360427873436115612480102186527753849294914271296041263954587391439557862454240073803169632761545784387905745792875622069206049779790975958097164494178031117378349255427884353755274855559807563892214927214678192441977270540576898952900393602265276191172375657092257874503809300201788368164245525598772948457845236806088768010741555948210424347100153371624345509762023066424182925022197898749695095339274716073209285461200610702380539857985319498260758028371681937837825939120600843936470389099320162689229517896784433664886355587755730895485083500020897688946097541291777087038927600963514031827161292685124979698992747905202840151724705792778226658415876090591278636196307933134295857576289051590218974775886612984678488762560663030710917646974243121470502808376316728881377059165534336098795081035908728991571542360579313076575438164947594084790169432159484031349108491490038499325170979617289060231810444955546876464037225646672372703486822306872392944323092167783603262003853546664090000055284121057674033015831108970338293553425555385080616709318156053839317831561669987450434203274921074549915197986490357899058826145920990550456998990665273743090194389275241517241015599080500384118154142912988909522198205780875480499060912946760303244192812878405563020134132150560722605174565827197454856729690812864531107242794431195710342644930444729874290568250589091112506467901619748340683394831623929752661694277036943210058663051787748693350129534828722986547684468666291821666776665103687353693164377646862707894335646818129104347335711151438103006683034612676265810857833015138257620252876027187939270135603913314867913123151829010249458757765834136812283867573385932844815298703844613822040728236629696166887444122445047792167738369232896843076301726195021250334526611220108564443097370866746114792938635757313638054890117286437350461065708006997415799551834545409787155672239384483866625979906737881359305635758561220911232163984706079546654002826558005123799721310579584206516515231572544205520362985237186302715863853256323063199044230232013076748517387214118213624316107077554397126162255340336369980155345030422665167039717781239228756968730468237477806377128477301739762048084546864470814110558442107397269576021809113125850396433885204988579919530071327163300334360567102142461325221290876011450935607310827771771966049233922441798669657214803633426698245374219634782597600962044103957078373346310223809024762627528671972600361959552874031496393772421333978460697853463801057053972427447481129324699331350050251540920185222322031145470515404656454370847247513791467028676592713737431195230013825813521476273274474428810992462950955676591204200099293518914597113319062222048843680537455471623295226359386864873955760331915296113507254398948659783966874397980920421197911617898803695946835905868770048110206764532232715831927933847522484409922722584358124409174540355449693427895835472071443901335108932349827322456615982540925445589191870801963455141196150552048094990704694640101692760406586750882187412093211495223928589546664866120718401988628359589130222565654973456733343146063137951951363471700645419349504454514590526018718763803857476951576859701535935804266464179812978145574237884797417816674677977927011860569929678583361165094575970095167632360326965042365413544746797641406156369934655778728505543809121505180747789887102344064274322704114045348662673980145675195465550216890238358397737066100881551439075070137594690601421198884528101313024863833691786924374993673439085544742847914168878801203325981700863293260174484773991989393248020943915344108241689555743700882247997682555986729621699412461718661758803623791415257139414659366225901840095984993567478974583712859531538404552249291497302245106774028484244337549852640536096210921679197755980067266723840301405026301419026054544925429304735863268056736986799674531051562529833932354277480503472596502162429752382851900881108490404064195340354504526581005703475732995334928620915041244935240636176116562992651283742435478617890198935146551332675952730174408105310699662815297184792543350007201056875390650421714705367563373437151299191117599094968548529954125314809761021101315694885658355204055347454793950295381603333472631827239421677352526007801823823637872457724476366435758349526309161532415045398875519632192854706595062638334128503052624323777424174451223890171241279953158053634266031317807549339455105507778657016180407674876227997584042579886355557121008906328094648857613761056803890407086944052591623980339278919391204291279182572282000987885958672450062324882172901097204147673086237892522570893038729724973328648115727229650139799736555076658299208489376943258327449749636046956151380889088478377721556052220627930995348409610684028627386618727906900913675169767765596245912493999928320697820703935926513571553143024909244895569177741547913082821289154940594882972522880228041223133862853939166162359872920406114284545526176385020496837568993811501384430837229499113635825799563148933520789682837626902310178961300923865302627229590091127681030107706719116840894375051821677604377965471611277875184397726112226837820493771170187715954466818911845941042859593351676952084827955436041999733561191208828471028024748017135366723949728336551648115596451566716474900989968316832677795820726938028571210754141270821470648531507435656012326128740872138293397713127233086135026954642051967126635222534382163587929247770567958718931505357129003042708843252286110513096036518918669359172203119645314746883588009529842898932244855873806179184764314900021714120721095575485522599746728198856492282137561973790441930464442017006796116450483198015132901178318805895812524443336041340429816947358505876670351049188189783707628065407767997974452551206451885408927635388513861646021939383811910584052593878742774448548428718817886305219926548866281883166472683556244590668636936265039741270420562042063118292465305948603101708608319787215019424717422820847958392910438476550524577762808819227918935457978435263124221149201121606273335554126137798452411565615566689257964702779484034943921175332791935611424434483215680264789761180131842080080590034028719106418178370686509463909307060739896925557615423032705442303248597125491735393373313878765593636294889478913998582965733240385644577683441455529670600428380459634934001539708370199033669337075352405115892557410165008258966744457685612294271236213668218671168466915552062539792423509225775783704848661135004474965100680988813078671765808296131728755636267230996796060479623083752123922446944123966519046120517218269786057672223587937095791379822760905750977343102176774039226390520001558479439476260301445939160996297970170863192096154817517506290479254576361542004183182111889960688633377740714256498934907174373191863768666957645443673228144372926975852007441768323984051493796189209290391591260530688360888815746063954659565419552310530399843820500473289589879256603615752184991409492101053341316844594536663999174074055593985671231006735824284934832676278624994133376893569907810947873334261550559394507222161745614800298676835977662653435198202998216227426265487435276370246239612682130283191503093473764460708265301251797098738087574997012853450762922606756905993553328264945779285190935183089485391159661335416009551751148347211867804888403643413075503716756566781039331394636366475284384132152914809882311221422412097991619904152675086143565811183696039536218338814432127961775644793224693369880973580968245014286797827749979320953798406120236808844595784710333197626359638891930020624804455603907117548427774150298633874279557356326424636761476290458668889746172054461740228426177569100709036754582471847544695157891759013241119151755249483203596432572172074702870271120031577369417818629411593367934662697395073037603091489380275336843474076396830379090470191855831917447664913975365278104438446598752773697385755216888170628054305166362963817877667857819071287083760225920262234040698832983951635863872513605292677455132358846290356851268365911731016391772250827933206876200311929883751644732241159951916728116758103227294338846118637763914553091512327484496271056402685186555989825152820846806340902734603677468525665014881173632847730672095034914020043301909823113827923423382247172339326915037013983477139723343748589971763793480888298926522270348468445104918435648593408250147091675905648507176569751985804029319075686065399789709235825951707841804662746487016094417178119569398281395843806719067188553971234701788977115088568556427598774603986534735522145385163269414947016502116534519958638906187235893923278441043616390066475664446791940269803289579646909006809629012045612819999472239392953353333072370561064726754238220730980874071155351620088950075823715747342477744889588273381959866561825145482973398506376095985924057255143591118111718047315296990601674202395875893772642403301864953077902564203099782172720929902982439057362008942751757649604388831733093302101733920324953724186924127492764327230526117535268546045498716500738071491175779470467629883596066640976378501896845302784598980271922144022028185144607233801614029616807449301224286653762389418933328815908306384987578278575994267466487710103584050337229723831145774352927332221802655073685483299063742844513812418112028931310497659285054236744810267708051112569557642404166783972756944939346720454413880042848562323256955360080003680090513551835741391305348729706357937513983438904589750348756684449495268313923030051227383636611279759017308706538980613758568789386494484867518550149822681721643498028306632455779545260618342399444694700201956010719603310361099492904923970133508178010432675536804713230569923700084718576290583591648708068235061788785494106124235362602371773032754362511881495450107237364528906444212712377036408913570781297275845684537790987499365738467021559285187787997717162966187446471799107202294715576777836020927229865405705628614989738811212219023461980631445182687442264834420154858659195963126415483797800578370531157773854248133314339864415171751771353540865904212762006859416962709784997433128473067693000123687691032780728150607697887782018856706362639655716592109555081857263413029895864603681920722241485349457156418191840405915489300939846660781445253464874250083704641257497797777803612019892113686734319841508068093302848433490998706062815658740658669153100492126850706359720483774334993497588012035954302529743658245027101517051104582135637181779084902782957710713747507156490102601079979504085930120483986825514051248037343500754350683598398896995041471967045639004663952179319827231744667279554238066099471414249331219204557416836729828799092837038491432811022143649700538918301642569401596952505336106532915395019084779911970559590081878845972336072085656361580629168699561999556250229091292593578879725529617414943576643326676942067326349416259858830706948558344119147915957845450073709970659810364833096332488737403070497658459932471853013752731652527897331153568721132011205022770710117700913342795115175765138315708487573729453367287567749261483522441894877389927994815609901368843178643975185658675819074607051073576875998750512167310012798810226558340665579028713472535701226585796271867814852234998722444911705971046181912095642595898809716364024263951832437038326284284889689989647911648750828898066742380037434280940119583116128971801455475658611471987504233346517954172147539403960560587455275181731007506708025198213457229444336985550608948280244941843770063903771076939501971279640508775046097973543036321802804326964768546169621598197129181991666544916837651308919937493454606428933029979326389563530462223374415861816909236138969237113393017453929488786392494259570417052849633547029916112379428098523381874508061564040671074264083465633046813074956823294056133489337547797753928431876514894126436267548665899168370977904840421525510883587601601528806778235554462135613407011236846833644555878127262212881209140234041402022467563735121622461870657978390628394804235582248911424316978859249481893094900904862349106066261654099374891223726458103980779893238446024842943362270522434414772735515695707950391448024171269461831090509117117286959502015960733618522079563795554757025961335899210156882854244170834052775019811036240613581338396371643910190630042807793706805544909377139847178436351552248630670331801504397630012796018338534524149171863435610753357980085770513399241028074123740245804541559939076764663654423496524991407149364025226375730693828206604806123861163541295290207680185866560260708236254486973618667268035991616058765237502419254297905335628883062944329790483217452303253389462844199805902735141375465817045370935850100733742625956566428825638806344535868793271962444747352505377049101382864953057798130362137939883733825643882335874745775928554087900163815227391692239218743350033495398176234582989558352364855408006841696900644043207316062284926594157929463312270266179641016637622574941515021711412593217950867631440984316422577294924413678492104156515150742208633385512066732221978004268698158026140069016037506682979475911176391690236697311880058799765326437773551520884499947903777167827992198499136654646814269406109027519822277800410322373968556732690626074037737482710475849490615334595911370707290098427186874378135664503344107130564077470312528167692532868275623401184558921596353444656222739920518172997826261129876779439531353089107025664995860018302008129005805560126559755757737926235684647248882246290239748677790010016295071507870159392280074294955795854266319669799482983150474801327305023136148195437509960163116364323594496278594535219507985317350120303694330954364631651355587227385446843993640905423085525559837622655698713488040598819915439371403819599497271389059121145509801729814424003669646018967219964885131889183585680079539377032554438266082931446966097033837060269009940064107945731188842462632470529140993354809935307383137631920309530337053179177939400103282043784660167916395585339217070664718629316977824857884765206269485999640732759774521014408115197736395323688542039903381311942460630619852267947636766207791219707381035602981329431344485258979092779112725316347692918504497750486168404093621825286329300349744609791937561746708435323446687921557032164894299946356685425069792646694129845663520669530279345245485401106803499985705364639125391676330734408093507243848798630924096736529366297314425624463130269191962404829007572979786951537609183967296140783090272913584281824575541544580984124199486879550758727047176637258493117021311095271906992857617422897025547342655020205085778029908895816430189655331705526161696242776345388745812995707244565365035481645260171047085490144841190199578202585107945573642518632940207835854544427913949003496096944088691258538023197740503736543252958843943336709580448234022369370207783951248936139163177393974356720777792003069249825509242111018667082949740468173386567952605955998008886544941279040685975830751732597612692764404224520003920233326003492521067590831432336563471333143259509929865583214286456689729897847359705449646945513830691562138622552465579884997196415587685544300274702700488718239201836396086968403025102238311133720905495398103249844266735228381659175485750045772465221464092335822875676205725092704728615919042926164426183278702885178430786938298853379015967182901443138585088502910982010050489726237984680612781896382277729065051090181808844461825363330541651357304557006292833734737218987081737436322405592533665613367638860259857656780903941054702181802657644519877689468917151333600633974925030396518686042054233139684307394549920530114856148915818288814060768195145012310721226520215340976923676355421655558295175843098343906873424521722873292465506460877081350473286168873973779940179343370070440072004046408072492754163110261735063507618351692656577568214649986719594370795438519696226867691892136720054789008858275514323612370777856858897279696784616751973082171038045010257471949784748908792120360190535810737391568808872955744267192012694405429119431749798719080827279592178529523273101301774583363079909279500202428951618332771060679905945558098471434175977864586346183110187365288324074273316142318078073326799130952308114155264932925226904827751037902888651680333644329824360653262127858280791270201519262250592239585820359364366615189147804468169374713426316764538069260762968940692920047095842905590351087783116820678267280739444540297049788881305744968358580908494145381396535136471703721735062697262207629686531699482402590371486419922769356089212552352276208534245579412258533315325992193548730464686158266418962561383255548739804478382705715183167847753888297267327368512289008153307760910532237277750015403001612253987068768254940204670620535423128963823977211984506604118877989679586974927075995808175327652910482277005167995302798627390938558668421158399724237280947773836607160931581033546412753862208947170328813661262981084970788875642433214448715403169311666954598877507556001600571048490964439259630717326605296946728750108753523797049774153350783740283813461922306833766068451974129907361853155612100542596846819679364902459986543223902969733198522139349770998200763333303102808554937491275314570813418344574776063604902533726370008462783765881811921203090542131307605958302704940891518120072928275033177937327807553132877568533548874216247679895382822831654989577835921635207809942847936015409201717575832158354754870503118043744432022413078358816332467907237600049882998479434712920773779560586283068843255734166564675229046397587455920563818712033655673592007725801914334348955283886390612517513410125116492775123764062872024356634124517469056257233626493256229738184934335052057044846575988211398672039910791125523919836679133794102255756151876507953217751693170921804626347793500129915296669917771698562521588182142241515969113395376150331025762959111643899029555589139705306273255540323579919145522552433154884902158267885667082724540910966706696292233124922791777108662809935306879766302291129399036748722311077061576412623612121902079182267255206134473863208834522272228270864060514998690499843870670348926190663159986891938820194707847359636634643371994186415659871585316072910228484462867257116760508545636227487043136426344039389043913977720691377259831225982982153881266992469001213889338526145379339871136039342423531252310229114203062776291963585835723655197329712291127086584870096469632906898276768137313098635773985103909727318394677646740220815928511217276869974015459227286624909066590647413193477264402084812513342720535627490343480372427100689944477450827936132104204712095985974506686370960155755401147255941082792984306559045173081759051385172819959808032235753761991995253866776213617623767323877125809114476587788782535712432818960637420783602900337840438457884948505677191329346557161215401345760442482567030987782904721619722018347487725498106810607757811984684544983044701862686305713767881113719681401904048379062206095497499343670623632404385012292697790379018428721043985459717303758822459980900274147408033394820207059476724910737751052289410078270453108206814986457628499481323886077449979014210049129387213085661409914504195857906965796863791224854241061596049133618202582452707896468777321520592591784861203058780388624540185998388556335231290735447598646791464539298927397462808290085529380525563258515917859613940396368935250552616221860620858879167986193572466127725597362495434392977201803432409105441357368539719042675894155545043661987119230459314485499617720739742959851483317284004218468952402201044110736261614269931689893309518039437481690309274798812530474144966732939174079833176863623292678354544476322744144552444522681368716693282852076530354921642321091716904225475241544071044182788996493540727948569305718984869731108495095352143237898358038926244612102073520321027962533558216188479784268071370451271971618120765825610167053785943181123638000811010906726957520223281679694308231210654259213132394998311744544241118750641570705107429784641253799096295476670274560500205015521928926870583631537289979987295618779063275298194303460394214387413160242038949937888707561409460189199808621516626187465980483673099210046399205305185818789667242223713062205725072837963488604133657128513401840646629390623977756245472056719524807601975046113339241584424312405339691976709002944392670452386978316994530209232535656798308640957867523026359028883282892157703751359704424438146054443590738138281391161593922417836971413354070316784861963698858907376043262207344498113112091027467989504038812751417686026781410793642656887170587696320779678313339951755079407872773658135812842903271403688773281401124552479984476446167974761165415939652530115941435573285524695461175171596874206923764168551037396092384178810109758071927610955849542539363953191376775963127302192664965944270970557681873784903899229170972381055858821545367729275171262447814311439452634990725190850956087150722636249924400167891689913685762277597748453204273689264793130881584572062230774558050590604840007557231989946546824865505363722654006163082076957233588516141648136462333410855406350440735616694539480438272142979873869388239463686455287738764543971789675868913427588610361587761600479345600865783198851030287902207873427735223230828482450157407097140010987138414296015677429502237236012689983264055334784819410954789311749307205827567886812408106555414559077254024530010462555381809795276245822067993550230319621653675617592500354953308584467666403775162245105840825621330877057365568209441983914025067866058980281007347918923999811235572733884351673647789881561532741853300279156953359920892596524503118281753412029480891782720696510143059706254103274430760705925831480419184997713492821653491817454736323436411260021964328790297733247423721897228627816353518345767748094922138186645192416187854506475220156766005003138394453183605763810307551038372394364145337445076914681294802596599409783077509440653459453748460682643008050292306738796722926936627570283494930750251940881501152912987520360051590307223217415770507423969557042069246620944349493485654674269443052113175083892176965285208300269127173740224290507199407834939049731681933586295888522197824831512505416517181371218523518576148316104137966760927530180717613223481751359864528248349066122895477990296389331875905699045293294772770398329842145780591934966164474323061225189767018691828160728405653519681964445181976494731725219214361357753927838583891529415789950029700967303446112372156430772469610640510643949663632937629843945976269130344571401293259318096886005099960684935539313923138195697719677160354900092959171726393324773798015304324850729753560035187704042015200219793006251325493657476507129194626793086903912188523955182055944480822823350619908257232918136552498371436733108248526729227848482887892074643363186250516091054937948872640520140504486354177921192765629236482823157599379132616815080663354216437039219706508591454285154737502168670297120579123652938354643038696724817038534930774903178103676011944937070335142798471323035628172486733822074056051279287958216825684430983133507457327880164200720145990367445820122344209459103250900285114782615905384372181704139256544388805453298210410113092343845823390212749448635541833724211759436961282799048331668335748580091933577452787772503693280644113982910985588292900359613406360210065526045008041272505116895769178152179443271651033608435972772968531542556183725963481766024585882574643308840547635330474643336628975420260244375142645200756017531722338650736248299684694017235382232035548117709628042710854508804646427286212382701442158873281297191174691270070037829960130552261035112652542847304825921143257228361875512959641212864919240886371422488601468698184448964912336743704271164129150799690873780666874098323248853681025849039308155311889952612976117927284258405667083050096204022564164717319136567947760524747130395947969116862045706897137601407439271384040753024237018674645619234014015725445504251081548553052959290188260231095449321303368153227823676684571041256733209524130369579450013838347144639958855666716303816540301139475655047381463910854594811932629752042007325348628108621443398984319241312754261376546357877062234164723187967841710349884035872996136099688412106163580233717217478054015612117910033720200982825012628597380741969315047761573445953125008681061075928865264599155134002081825999835622245852240597096979749922772066068763801456533772246080985686230971122389930405271919622616815215043225919029634978801356927052462259303663825157335822581609235766970342806335504077939879759756885130077275537640071050381598464517997231297292856065162402155481902405101952848431318151247706530615094814396988242066953262721283584354729065848869877850864751293525476535517770130450658322099733262474963887870329182111997479784728921705301569487396745778277952862495842894042752864566851401088420052020998275587817968623129750802880854349712017751665780311203901642078391773047677605542476564840272119437956448033390866178077787698418618279818404271135740741561750657417670274193778946579893153907424876374409147858058227643273555856536262211919987083001913471774734925350021321735964523736947184394468129847106659576046044093541245039513995640832969570509296417503489939944815637872021108277227405701835738440761849237753407004884015738377176300048075543133839633588586034066321803860654721141533701793258834779472074906619893522642506690886943935411392791822542789833865275495684403427756451521582568503848802743816971563092279301694805804295939255701366884993953605644237179193374170141606099631239898515210854647353583438949755338426907248657588438314995340152319328647345961116435282067097497521999078202730643020130452752837590841822914591909813826422287331142895958369990037090091893886553936121859219360929754251451628789157725969873656497633217866172132482862815416390107110738101110509568008938898603123100271120099207749807043648793996896826070234051695939713807925925072907395264432941740254674532631764020898866769117163492902289866381530509920770259216742637127392040203973491308068346580582172315134858932167871988599377859756377064932242715450040661096266040800363885805378696441267195785769771012213885105433549420995152286051758462151212152681069041416828372369258116388799705902655996313608837601513146591764429382412860817298712058441610540215589751072283017162566720643657285609840864510695815427832024489704696072789615964877169693962428075379767327468890576302101340111574572671700885003489764925969025416076947176903234592986914331854041500141361069324514610092343633634846226575561666698552713479859037287511162945288666669275324581043070973858581928514665836672161743404989956903435365572751998183799730052530985469637282711680576957623922915380365147988736684710065306092472229854370428889987964281743348071648416740428485109355318805180868802495779771135790848372582940643714146353647063316728008965755407852076986562919972049027829280326735233372086459855451918624326611969733130786496975604445451971649863739884327701217064838588581525615842576324496487078057575517085042105482323033596304235134905490727317373346945796006628440479749113135644510670578926212157356474281145133978280647469477454349580950708513526976961833035802845360263373254094974851889264255081982747798715495979375558153821448245006883353466013260953594943237567831012284119942874270624759543194018632829064488423007957734202122012762795994925030815554018790801837525507785719768103344833058910078898442859754985106568319337266847628521659371488843550569967201511819154748479493120325579093216305169159361128410376858684409004942574166857823375235569180867650965104049058394691330873402411022760407172052962442448499062535337127763715821088016413351947237442243127008263752918454748533391765830477569052503349661199928384762792432394879154620444865279671580789186506776957912705173620431391786115628952796470826605774808967744734301407544502346637624257007868386831861169033430216180068884357123324542550236456261528374914047606410165194022162682209123600951585577144810619903893329491338791726330611429303790796773602297978007824644515326305842084798150507342060945286231721282625560379669548426610793458342571769288369586482457595254757894045108873212365418287606670931819162825391631761917122308924532416342284094987025333383594714576776724755403472075410813736020084570940213935418279518108716113990290659102998761247051351359410175914806728003594041700721653423951555132428474088993897068866904781036087182951165823911067590804977838437055995286139172204168084859566136613513886355833286439506541594652896307673927448966683866694820765629386145963987926337222307056591579211734127210424900941713698721446341122789196157020932704560399530639131485089959213856652834917257280081736274547099212450451758652780409169219843133861918387360770147192601749124822419192469184190861215791463118036030711914191947145174679359546396404263815077063217312778979705456108173597797582958823330465938907015071578332935441108877192601413551133314004716449452520650473693799578769250907017215475496674596359098854708305608010162792629380185664316612134581091834369201241275488641999007342512875301585094563140745672452918101679221125700559548610166274921644446479499931289618576953268373342912832585349679106341083315891672467620175910052053914861439668943888105696572213148685179466598716963172711681740147079062231811710662264024560749470726008327564867816676814449458683173778475858660100095989971897847356558017784014218088179920559537690603146975316032238441245303334317609257765753862235941265720946260373522280529224844159325192106227469224307380929206456079318118985079198771173955343799911745562339611821350276761566566859636420517125393947110279354373657886490126727483008749545180923021607807888368048976551209829358534008309051548519822546628150790146938742145361524386973229282590743328219543777624930622759571692295098271550925255806760046184581017470676574797174690773963084286663525444466320060164675346764539815658511687236936420066584027064784973871285129651432987433060849568187630694242465736677294603583609306709485984449677256155459019557832255712228969659598019052400271911228277217626635993755545733524562126261199050574657682225297618235967723610409184185837697217427089952748228452784211536570595009206900560096906766557525083397362712682221692853529877884320641569276442985801559631441685521944125329498544219772226415915137965072212009468079962044196914295719884820471607204977041784674759744271068711279261552264830106733405164388153895168518231112280435529269376110899801900574641390391502277042277062564878139433833034697892358277035087874884269670847553673951988521684099014096747385696868875070815074832349740320061528445680583429892331049607961216843251814622156224986140479409693239321839433377558717626584897209301740994671731599466357032740221387920846031731585746379192396971287458079862556276764314565444896462300327245608161253730363538761263462873902367153832253851247257912218242548479786784973817554962188426388220101039795342237188908352146013872371338122708225135457536283306001362626513951522939863686801067360106858520936071988182079020592804168394162324680405136492055029278840791681708572818343946661673250110741368296316559189686959070074872286510621673811246429843321003119108744396834920343140847301769395490981735051263682925746285756636627221266478840134852196904457568903021116079517404935519120869594017040461737267757584973685754775957561738144577398641338520280962121715746233616148685610103545830221201443090931003987555263250526623764608103226092319583156318595469924736458797979013505417064461696726745755577303697375925955822547128077695064998577966546776600296788381509323175852969017753359014923576074740797779226630872365926435103354765943963284946544931753861598209317835614611718873013767630606164371429952337294581311675765076067979012630777150354095382484272898702961170396152103966083407294443424585323203607053742599297760564143164063152491694900613293923034199283429927456843679070586772608552872512256411950680928553091411869912568108467512580082984545058999639705334324920424453204568471028665062993511197922824006388675992105630874721463600716358426851953083196339215480599499996698804297201788216887609888696727279213055690170552123237776069920111021709035733262786759834758141933881118309826058338620038242142052719885164790035982606899464957984558471680900210583973007841996762152499693505509852866964164947453346488322461698099140264948185653891668867284812512478378851474889274477971507375230461668975588709195295859840874751535295164594050979698025970936644907150429111863178440520581866093174663722220954028684807183238991321518710924872756174270372929966685517320702537213020389948676670913126925951256764580616711791734084541846913748440552614175403270044503358240226809179386667909438019755081705087053999944405041027137776104696753284440419544848077345095561755775684817573583031334272606672805766699340617892755276672657777283452953375301152580964890033932837505446740452025551802164714609273901670619286911295997440124659327621927123171388192629529245652553398349142823638989656465335918839161404099503055421746508497858161503958617978602407884797501002412443660531704141384296695297746516274101703967171799469293693418296674358991876102920646475362381535945487416980494963983103487509579004773345406878750298610207150512045787219316650959182487580270279418874610032694711047646278605641788024909532312872772985471276242288512092765843839825870782874606859176747492684076202038710172673457019416048084327760318427771318666316137045470167618241455661846650511356351322584746064824253063370632037694569287874700875275695817137682767212241597360245519572250795909341460419637576015250174460282183515624499010541716744575901415382449399132490406731199727113045136440458624564425653662901204402200952339187425182652177531003262769667737467842774150250887273838576346370843017343087294902398397681928421222281098537484636762632173199252381599786034544486650441418730736434596089487152747224604201411044957067592491202677377346100973668488245011978778751899841793229100509220853164343131509109108728622721101979386022027500335360132313494490682981995643826711737325980046661488267082768480089961457270713918940703284620787466828519097372653381900517479154100672538600129860933547672340497210634953582978527807430048665735711755274864776758263870929760325422084118897932658331221150741622685035357539177886685305909343233653003516896470625732642202136114110473462941727546579997179217970549656321568574168753339630723983677599685457352302792550888673398497854986068703125522716270758280311983372955248806719123095420582934545112696283947683511233721090406343657261542437660766158850388544287584836201352754534672410790900649878899955358465528339923869748354631627361423120528849726855626170101736902227983157920037780821303885327973542422298505025810598141893418234876562074786818492634442691390155852252099194189027468648506204834412371728545005451404584906693266672880055198402357294656314380631144209235797075991231985175419187317086532892751619662019357897417916520385320285929660266605335066267330545683973967036286002494336285493468332678304221801888592982543566619533798786583197701555596816648467135582615294662945252999417493238227016714318450131316062701298489872327635957501167059294336087491557089765261550938373258110111209143077229778882478573626012395601953734764705996192337908199544961735823490453843662199138282143515808373458168696401544680676643295087241559646709670118774844501829514185389891008099141153182459379267661629318632546485080023543332400263283678019304236868338054432834254544392700765308171610095208485743988261524286624199319447418958294225945704909133158368945321021319049155575506714103464801592302631821607766800121646501776612045735744402494393374459977008244258258113474316403342810019955240680232340342336723367100909134509688765505062487113662638193796007367736191493251647609506644948359489334767649821460100261852654361681794066135610606000481835311462948267553390484411035073829359511572816269825071981646389312500320428697847801618422190291348615971295975983776560668220953595293609065928236306024714895591000792331379373007267803265536252966023735280283307524054667009062675837106344719395925468850000545998079854760198895777314153407085693736444495053447604086034115698066243351437858268574952380208905749521406831917372266009353954892289539649978459291092571916709079906005785012411540605325187636866903626820665376612737686289559074047822756623940224658511015539503859769763086406915433798875288023097644174784897321382145199580108467763361518230498312017819117861138378665545127507376753116212203290828099004853274624209421797224636514309272354404386022781760304500139030593300725654272810286987214087749107377489392085529707998289165478613943766708145929637490073321013554726336464306630864151516899345492515748574013215651060621703591811908733698620647698296203283363470111578142038783047463906699297359134503576249016063312504351264553468499328920398431622685485717556196939523805959505801564462523923462111515606005195440138236300898703965333270393990714898965232418497068057515312790435077268804280029511387547246083290858722128473860532091258078822210884426289009465648376736940514769485238707597204117302370340600990653409349529904607509092840248765213751326986570630444533061780813379032491487522822295005804687818250521437900634923313317122578776136108961529709708583204191715793177139874498114041840580017779781204740307565395736239266292454725886188402335264077041246009585880238208374782272427501452373223365139667901014384860083537309302454341548720487053047673231065759663044130176302819185808187866449913375994574798232708316284743946007187832233808770252807343853157197403246054300811811095981557606545587249048315602246478038446832455816867320791182332219272090282766829639341343020660580267286775579347878586969184085518525392737747869785738515865901715720794056652933719195154925163376832480265210074700963080508961183984270064499703052753516227961664070384506530959763793035950294847283268298334981243115278596805935282847542812654936664184048595383727046469634976907334541276184741316422771126316987103585876110089870117488313321677052810288186667825513949634214202057608997579416284439572271773897127731993990375622536186943335608987195931976298365627634423464241763027146159600357870768100832157402063613494936855340081441634480740313317471643095569173750584033634383678031312637225095634979265995480421960210069205241144517818787318990699073507987596987668180767665870477098826594153416206249234911094123877172481424445825512272205584492650058218436665464923381272179578849901295705665963226309952813934355820929956936777387145354328962913947417345048132595480308796973019221737817041765301760531612591816648812935444827864143344440126255684063504586629914685964218859283961738289394735011151804557164331492145085368811119771229872804086797031903064065555060099543091540269248160972142230335246324474870804712170170662961673462972567977152869417061265308914725381891996056485601430377445760609379341719745216005761209936583275623310658126265841830289817595215666990636129144605449904168211335981806026746313423688825445360406640667683261848447641602791666795443557213119807139965684824260123335428703059834551301703984003877776522093196918160067856237213645412372736325751042139976199572016136493993937434688616029728202756423206686045988273387450208535176164041925180458373762413222881329852371676741143877989101487899149320533638495833416369524190204745753580591247643757513090109708518633611295707038347249273741793620673361250195486954231023146649534384065232326638181903641219966352237359649606098775037768989530695288724426103454188495798348259559197245030599017635364078491626611696147755246863168052638604782942429344589994627078628044148109842084330282139154830881903104836395555213398060826872059414349059909925112228842279665960453899110388969531285235928265762592973813601363338877286496618012548493821906992338532139454667444148854355693409157730654847219088608965976999434850132612447821005776318462658900781409857837906323753220626087999257213040541790795294005320298518712624203728030277394232304339486143375261805140137875036215139868172975584119329483284238113298484324131874748506735331022347283582511949358023158356808950819538613098546211771057573875480207092733395633551333985977566199382445667889625142259247762447923866117782251056409805988764397878309256239255785903521962387481258120065031962295151119146891277023869444675766366282331041534707473203505949511896102284915984614973826985855321226484540552695220888579002972459498911828166954341206740348439206546611681646250372901549044791434743643973952848901993642428676639337911794360126725532860878777641596521033625121882362070553703770063992620973933739684457645077448473975356564316543965757880718722981509750997013697165024388220797488222414470994085551125622759090661048588076960002929854791736447853617041454940144625804578986135062250639474001015099060509808019089355654473979110659199188366383947331730704251322158038228546566630858855145365634042123394594124905949460732569337831183210926331515262632204747785344240605907965200427284578279145436333512661033299167366443826185034071610671727438981414754747077231512223267259662344629163263580189744721592390463283621035143878139303574849838994159226619827266693808936557066331987470314473376655803412225465535643681171890317475260123067482512147094822526435520479215703080721535450184027187235902840183106508622553513978455839480906961623811036117955911059763304397033819812081706714661888592939777180975512564629116088632745688673895710249862805580926053315839608007218739747511751534127305787024486769379981301975705667346662999147818253258792693061394840621627903464775261861097959783038737574552435932881168103386921389185450239964809393887313994526427502652181812174565140019674761066544853917878801209091715361029449044629690486878380928000481686495880393421709658922881213190918116455753598005580654417441366348374415163947957039214335232740752145039450240948817310172402612023069205555371492507592218245088104495933069506578699711893909501124075889654363910281133501156522850902098272212330987789175980430124533742204376440957303224212304218444851600349221465251354175262753419291838933557407810949802990664735272207890930387862805439131590250623054365419917727229265897374780675068405033388383733415982774884659351963098747542229602967311665899549395118845616924681068523988333610775241345306452191428377462871049502505153578737347270139408148090392957375077391534588908912175506963065544502806460257771852612235805548175606220181578684763208270173652247145384404841891515249807888268648805374919739796713671196311959400928690769016949279470999823427804946024684339329092085765480164976494659377704708992777925920436332746583251806052965955468102274214820707724807004640695799274581185994560986488925079529971849009143116295317993631480093771886819465803099802818016227058628581367562592467886741617269788347940778959607534346730595080189221428759365083161542852471834657777815952066573903631360152930206353169600175782382538881813322402147389495636670937575522128048524631351894501236671634957527983575652206147004015303130908885586276294409546741860243527727742973365431491591892564182798688777637553062497586053601475773984899646025938292843732300530514590319048555150919658321721454863947342992685162617956160123206905812218834497755644787156637936347332128871302862924992516868944802966511290446497305179432908750438562479653901391319974520424135181986620216087486503397959565003886718520150595116608753654132597893833492015485876324614143413092680000481454105867593282453197182376083867896069307750189233630946255947817809836748169036165242027957865229661375509989045235034299040973540643409720506452597965233836361665034655022808656888295954231150363006808529574617590576386228897816905266535288338221441565734869960323614667657469859158370421708863287298112231682838316195537303589517642367820547733943392123671947689248180530588038196296696705370697602562579516791904795223101132541563215958597859045964509574118895472282397154906951536811146716633220253502226564088450484870607645384916583234833513090919330743115815636608914617386116321005708702570951583730149320461639878295115660339863097291592683037408252442317224519036746339241780784172369702555385625371240620834723227113145396020824840458279275355737044173439650043333474549163035032036552628533299598292585421562484207873948068083864071123453111399521161411555908960977455227117563686889356547700433095118439518407977062858545401138691893980578599811280850326955673530211376108071526939099035540972765718955410622363419185139475438838150640141741156696687481699339388100474551189821820819730317371784943365117888452675004673784793221514717545634823931065474632911321912017127864107626572672825782614396385790562961493518197683886573740316770657502295333697616447568646057055245653990579391905927395312972971285860605012315236861602292770646252427948675945529260738439280641994893867262992606954874949408510588692204086748916864809433904595767559078152870705531904286560970834123154117238961599694396535494420466602976258509809810981081527188942986060275077952497082389397558859868257934088628309634412363686141858464067829987862705805846417673500883704841922754281306631539877034375148456074176809047133824902809339619315114434413754021453781750938536745398274297469073247805612349294550893316709632965532549648646588387345317729177789220602619317770687610745210465333830194326951112291264921111506826383556776326725069483117935716443926574019502256289415491343262494235968869262323906408463530885480579487937414259378915977591633292631882980366819522834753827907628215579945681141031373196478374762585331550098012262598023465093424186868459526035070917783977536725397359189201459023102778814160494505982044253392236485033200630357371857378858674918536803895316623314077466198719806615668901740644903181160998854547271079187954268998268479101909180936723044771434322417376041544825877296754394767490871295501520759451863727677947683593728711440627458484546268788212273458487575930507622589464076159415535862954096915272023854403033716677436287248666937295368073921257274466202285102835219860685497801014034200420252706733324821076833593315445635272583693328663427989346473022858245492430231020154050234099379335908043274741875648554206921906460247018110769862397520578794073275522713192946570142250444197300794363351482631800982101133996837871085816191363928673164669944629289808685243353696131372037186404792932708936336622498000680191943640757505760441379761010801341277252106075984760990136420561143154492750859216930541389386156118345333458344494235079976519073905010789443547965013880115852276343327975275844536102358523291623778432452987980874512682742762708020846643307648315740462543050720259237153282002737768882634280573486599830215567853858749213184861523902390613743261712984513704995024964941695730409337542679919651990836559154172365811251676277520981266020681859996638866092574394432543644514646400108644646740831981311293839324537049166760924799312078023195733935889247696514148854739082184074815184884257661100983418732436039003120493617145904299256115893623520462170867250876285396035130759250161351573827144821479182623248121111917106445394444575584060356965213000329653744367815395427586124042669655066116655858080578071614311126458835804955668230608726732368300119591341321993867446615245780445573885559067833117325450676253943340026489956596544774873486641195186023820479032678094379922860878766843421187869801861052276525772846722577296545703375288234002823824431212171622232455977040218969169928113005612269052370687668754968739484242301862668680206661593978776192106213732303111772081863509399947577278849115385583225222192268790881965107008516649244680105713276634056052890093321513737285926618693548880756084528805655451686504930562026661978449474323575196262969929298401032640314146331619314718861581484161349782779930787475141781682760975473753136363530799812003263937858703072628964107590455869599367768584894016950615856189054081246790818712490414937599307148207716923466937948447760162693886913152463608169358551051989061839911993059386829674658931336172674982993629697368091000922974807450592183238050200258615840621089195166700158557086912059315848957864260404549857328007756624374912203117654886795368743132181004751428348638824956455332888361199111024523234751597802618517611374667056164863725412573936189791909430651343395449308591408765403736860916512190836107905071322155015035895491544729262033053649380138913225124008188228978372527651998932951189754993613173798960080043022769495323040749457579101737957009801572473115916438912927633012167722805130736699774264231719327356914142621013358398835783683878883094141577800155661624322903123980979812575743974030557987135078356110922830156173714630474008143066894617973529428604738996420056239541279734391977419325068131043920934693029027341240286053583797575161793816016065910894759944203436370290260543123338718716882945780826317513660627240402784041037507674586685191898749849477554269212383859307148940656675037109897443213511468714373498312201182035379151273839478058980423431099750530515184853382537928791342709824984749487252277668820640878148201844308512061945345075518532498976847455031662110965518969618805668980496491587440590664414959707994568617039963126801847740311221086977605800223287788722601500377372880900539185095902909889500831196610135301157427361823389119505569381456478554796183222412106364461073805089151872475839273226377923889006452107886435506219632429013725333108359190804574577076425046582154095259868878506756092017545842176289997207330939600895320506279052251054653944827465549667283458658208297048988311861490532455351213244659694977148893661698316712628060233448819187292868567085141046694557091870314072083700114383730377872418023800542407500714293625019266611319160510531251452439924556449265596649318773544821623608074523532260565451219129969429573080465258455793630743726023612541623950348327061356804673003683969460715647894339610914075787725864580573169389610624757148460090265139590811214934446846840446782771998823750303832922131057995012692512752060756958122812428904379997654214342817641009025647719395832682534315528147136822151074967296899416031921618897768439314450661486894513553825326859915001091182326255022552612127570278643157431853164410042941100074568528821934414331506889744968522007265404851240289228091904496566424610632462803021338095630321682424780728040790646259530227612381797339552098175033224828219770252476868117235901840611143708930528490726974506720321465395020735429333106488752006102374369816497622600721882489413969452365343003788842637337305413904555450318220950301636756390697804186314453429458580157143889047874251700033431880921792255598254992438274870810918012872823782391004422812879916379271529631968934297479497235163089256502940490363415799799679560687122718137143636834630277504902349652088078211896795761696391584393462507434341526693416251299636063632265100254888900870648508320654939512091206319716420422501796816132005475520692833547167216181156826194989061282676689500207643786200389329543886747377822002859970801190110655009625152129763578783309894533396942065925657338429830387204050442407809884268233061852528536435924744930591729103520872298585104699687548619744555831582756908458640406870420180115892529623165753702461572611651353856909208757617363018332250286208402039721393091041030629098209752969530095142973448422102685018609443360115608842563887029664244548122703768318398794662957231705837886701014647300357779850553608555841087871971656687865876914265427652622412987034944511612579380571487514313974610647814439332108235241003640520853620979544573243302871963554350293202385451602805959864982038245036173800210298875120471073468402910437034701908262047760085479160186794478617171688553109203152120954512573233114928351869241173821827697076771490784110440644545091740716671157997463908179230523892942117307752380085225965543972477924426649774581088023714578719113029495494910026585174012688450175249462219007653112757552660107551243923605795463584130656652842789233246148144219177064752151224688368565486521916576784007166141059969098985380075127246781933111252860546147542157875885358325096905416306729830169619133139469111969854594141226050717671022055091022000041189955579907174326658036544625258253471413814695922783071235626451275669368737924167057115571470274904808598742509625994971381511782334680090468896929539978228104523255620747550293635773638699017152336872235284770525235485662062235566020063197672517845688277291031765098503277961981134325469341989152591047256941002882864299494357206520169857068911261494453673327760780297292690916432305556263013289912888307583475030604291182401512895414166178439520563058968648131444030419647502426107017425770637497908905855973288082211472117345406549004767802898453951723079300756888162456817715653552760555310048320670356897257298131247036088335386935888412631295363534190507773916850900002047230836068954301775234176021795416248633145753853562213958729229574012412529690861665905195527069389710156864418494107937590640169005498732644872567666321071861739905987098124113409540099686793836512384901893787589813195739509532560176865052915773676403598895655028581389507413096780663457057245144982100294960978954451710902176539783361259276157100001217623862589948461681632048277387484628907996505983235585497796614891551078078893963831665180496286946329384663028637778325374679686508655512971055501517336511692434794549296166392550316742212827100920686177189876694965141582856788870141781291991703826168177335578750634942606531161889740913248670739280720945374349523846108260016777609342536184918820445969856743141968187438922990176171891608766205833281784466161171196923298148682061148325850480769335655158238896640863388879667362179593088034504248891359508861728563500138697576084964677169019918082149768045446594949265336431357612741966021753916449889125740010425652572104381720600044981825478459528878634176590075107495683717628347181693280594893725196603359750059377789797956338392685005095004123107482195621990947674610943123602714574694154237707190681067858586551984305545342319236869447247102249134690229412855938473094156659230705121018605463386632313799995942708131030980121677308382417686619206971826862643835582019212008038139672504056901731145090551772961213676896577724988014868575829363803054882491783254169309387579213207122776943552072775785910744180991618737615073851891165601541542144745434566177405925899035613505038410624436099451597695041669607209627409882208665671327179368581785613213264183145015157704852645718341922074556422973669604075051381806598148676710037094036225368571878506016671147629546867636900009026560313116940621472360661669109522915565610312809565065584402984490348008013737997478264493538649190144327571068746411880830621766464200134805925030869297964950529520997584454118362569985859343928113412177323616676193164840454458802198575506073044470020769207434997292639724835604066675420848188444015999815960034582690636008174804968488157679500749902800233645141795424291291274471930902292181250461634250292666586077714527138722087393303943783820741552409030478689133511187500658663281928346527597577177348975765431049331695433000898045262536284473905753759574069901805023300634675950369028652514843569029392022600032571666483897924144413500816951402905536914550953508211143601381535559990471788835676470641393251363334038960467896288274945465621505639239299022986689827357540840874182359553627015066659568482393997802424475259829092994679930013966332549972667597611853353883100101020261725094367890629056009710123545167030655815708644992040580839896749921518309989212839668277041682169736741120400903158812769389036264814432051141169170136705193357110163265928523763997688414395496236841529604679601129473942260870957338616591981486328300663772785809960202807870947792165787400785090189627899342966557067243221475336408712940479628180172999054476931975070026494636804934848705170548090839042863716954745814009391817168673043943419602727870966556685174243375887217455420532007263728329206009926632500004469953117873497877075211209277684628627664343001367841163748824736032392970502549958294799093958011919247722312445781825568832930031777863508285172108519777237103861908890935902351053909490306609403231840391687857118733126951467935588981843252487662148825939628442473461519395688249555004262541113620801321759256172307572009730913446997399254439962284619391350805916025329726461422685722609274100276197529358599091866601504970224385174477483199915386914544248708294016129323457309879237599746127860300012339803055987368418179629493473252706936237745156249481656260321681912372478164637159153938623616976855108882648534707819702832535526807785108000925191378283224946326154862865221117911962172433799397717456505493063296070895213370853554489001233951790896449767618023649838330086030536477803374907238349816337374236477191038799455481595722483245621028447243749386030912073358698973200534465422586186425667895553457070647170324800398610990894261856886442549455530348568238009739624967661014420221858847415950952812321971391359707298227273721537485669068365229612367656272166958677511014243888695429590595539945071924607950220363573984538374558462516796482904285614994514945011777902037946728221883678041492031975204713909047554682531924330719871483583345123063619911493886456492090377993042551735948098273247348188337214697538864862817372755045797092026567712421357984232674296923432886146157979723728813718137731640479640656435706583017256485697724294135468517490099171742623772463928555894500211605702131546721008546914923769789081704183993797652312693146452337284580185625509527962523074078187491405204773267935224718982481001890442374120843928896140595618359138457122380079045874149412345580244441128568057047330557655305980286830479629824813895971200406948712422555340752660252498133964961888649768053575723871058972780775026763570387856644985947067813578322563826551374459172186083548120456096860732866280264557902037609762273961159626980545359750220262727247773154004527273466856899492178785304440099615714500507441612911427952140743160614154840352818558013175214579050937367281349754663078793186015742392907631497175920218518310279600466635522299215823806081485326360663101132196870399610304299197477357847898645323249879206095488914084906541395142327486916321403185755018975215304464393271664384796260004219920640278023809802547775752590309178790693894135747542892298598051276488594949703413346333479467993786345807480893018343747745898694992343131583587454150994094889179669479055140680832578030391007991729714540162111068899838028625875167507357569671798847782061208347207629467987001803157484756101807119419986848364920986258816310802302734032007811383859765549235055256601437817362532516606785167409644146352381323278974338230854720022802619252786063415571013807572734411870143113485399075662452171166458239502308748200789999623121335518413632745173715377749252393048833830628576179230596463430837017641549187547545565396217820608531164440921903910845607070581679007531950797959088621166025593211932554350277980430979868975012612973196098225358411280971452279141338607418456905921983615345520178238858918872300034921069907400089425124472385216798197160788649324251103795951473855973132205643341345781761691351108388176012381666468997541685944949538393052986762367664793321969856140807932553101461596364206520011200392104105964267727552384006327208825850271260639084189448024229444968460987447883070311376128835324948366441626259993413188834682769606943199572949401029132633014102961797690299003107652946467274018149240459743572553224796768561730123085877026286933944637102176920208685647352705750694220862048838716601791361666666160199678237571240710238390198608038336398746586817449995695558938944689054412722942636268453867713420272458035492298923746556473592154746187337732530696354134285732935932941003669028936877627960674044706845469879071968906568477024057564905882278320316554207841667574881203421616644429727524099115950501024208507326990306708622213460396387451511642744805689103560876341176798408163469798860513252212091742400998080831928412047553641916078405939333817214946451762809428250251275474846149298174761842350570434529062678203938236524927327126551688960931843670378221969046930217207808508772946270761597141994038317206967716650257426028615431914801990540172608579793496282331938421635724505163849451172809669710936715941990759114719536076838598828650289857080216206278988293186149248128248050073336702455158914216904742033746789551380745721983828104760001907713723394471013820033795804195163490106408064066729635457281887296442667243376704773376310319644657243547518468432746094653283569645724969423765645247903822955782332941603990757834136207560067907662948848739326305955050915765211216362653099225811849260540524392828537547255533983819203917738519360494783712911973857663568169387326430291330485672242990970786000920892719271636832348208500608157941983573299553894223717156407124818034048806861151035651507041352924875849168151964524398088163730110304972931600359919071611239192802237407986144621655813049153309697460968729802686708100392952461132526141368926324136463453706373501196953760031833445145469594256107321402220725940159096183995415342586519967007412764626212307703405199102380183070550968080704723494559038339543330003794395925257605826029308017916501011352910142552476185833764096749696837648902394885988795797106664092589337030910927999431133613331098782010020451700016929052251001242636958390479795931209442397718270914621834587582239666901609592454974710185122887289475673826899941678719436364628990267884207882747918871200498151757819244049629322665002944756149616042602099088827553890369436589511274668663755963719928990911631501112195675891440175450876773480107388716418950294316189502609837745882714966620947414207686100262650556427693836609256906983195480743885079762711455185556122332699243075376491178153926330140051161788940906045047507246555717181126485690354799879436351362945560326790001736757070578726851753074774860105326408523458788608785666766736397293638076539701425557601321603471884578072214382312569882026377361734742113208699334380150555903496031624657106450110214374461119273453879327045988200532401798067303571368079281875989124536427217136436026269684909119221116437009677458062148026755289760877980104484557844685339493458840285150290159216512417369605241006250675822929284697793311309284947153052777328801988719547616371703546948163697771486054976081057772316138612869157021235267063929076400694514562757665576161182960893427426847867973491567767829649117234632467620081327906296169510648965617370720456005929089335388688227209194100923346649202939838260283005299351764802899607963496325956309754911242145836428247332900751077227394200367083784780583052855404292327739049144781075201052209753539601669176397368353836175665152807749475488546519409309957714642950831951002057643313053348837816445084611008865714148832306340804873306777617210748477679584062920476429132166287426276189281976394171462297621376552023538056439741304851833927831165794602771432077674435290521119874573285766055006261109331701958187794346934939970577179304808717875813399021850195640573955831219089740538143422963538238994360162285343021325235555244585011717745076379383382724073919353974077519580691441783479484067301039812033063065994783895626347711605161592848499347137645432048355343163406081671867347064061195526636627473719821921136899461046109263227136537378706690648723449186292780484897954720800002163048393362015041621443555110804195906611013166195815282232103234218543484146852924079986075307350272501395614389883824731563999284569832720313088776564102080780267188765778496876169030219300751702900064102806980193843888396507755591505594957583696348705798271830649213404777165167349039877842962630319902722174681126911231798799769016434204081939577595149265028401575508080678979579173972763632457573556347129826761467515293270871207158838140263314382107727990039414880628531305692316679650357245276405168520625411830163420681269491053602797631877068707588227908287953188205963277621878448819598641576202071855770809509569290095765823796319240540278468772094519520183157984366816436660616312977862095220425908674963680613508844104864000520900900130523648603721682735380862714270074561986600492791554652466380138265021040487488260538559856260833931454269004236915019056464716054669900020207023407922441554662157444927403984736658277978124765991299864899914998913395098556309237574284620254207119222062694922756533087082667551804976020567852272977402571148980049993407493851097640207748067798591981577327206034365883396441884527706590619570522552809689709919759669276068680648431815050393461781621179594991041361767172319202792686386059800628601334021477363449915032490522820505689008329779168634297053170202372727717122509651584925687372310819732651003101374252291017607000679717137572339382777046635600645908976505431085778776106001606875313570180664549644908952964189060750419964415434259383091134967913048020090993694517764667430487841506650444658851976359809452022794264548289182412336657750855942279296619363039230372185166751988519052394189105799232117629330253611278923317626915521033567604951954207719621327072342138345498170426244876638051738003480324060725119135508424695614258302975019219955494408620297014021291619713720238949909271270521517726388325517472690221488199027169833881669948501326296692740022179962402151973503275438256007502823870620703960127852125801626613939403121747463003535997498474302617706583858173865951611759468611626426676614424296855591551166746399614588454292599646733217101365485008663522700289237991856391170670106775281678569594914734181632486667180862694858919027236256851797201679986789272248926399982534730216168632841410151224950444336868637195036011003322826490969912312049273249602431170803467824832522488493861330803705455142998092584612335868162600131293131827493518613555856833243872026707500938178490524036657211164129836144551927806828939806699021756620868122768601698783284671856276235365068162046624233184573373829865604245836317834258958616059743492626242205267919153545072925870756585899760674204994713409724489453844363724271607406097585835502030929433939725379881437953319080469556773377572648189564339494690243535874768632293175812278114711662252274247135284254100384765828317791358234464345387509631819416791353034949852659846970905750048589699814900807472902434949644753676281876181749310233227134087950945000893834119641311695784578250896231971392347294442459719015878720171321468928474597484232254191811039285356986697586811462991513787187051390140171287290841922312779560609708734749049946144777881666350334453391459325634129615818725099870435891270307668352115651172799676273616784576844178060169058625528105467981858486512397361837247569305665338186995602820295959814949473509403269438156079167825328829635131987870755231609609473365361128777756166480100264588746265740064880939287968435778117875020911222051138582255226483263734256132927629072836442690979677698446658919929615727435185555026220975344316113338583998917529325085172079884733767038201948130086466639405758353794741401957312727440187090703940129050782345961752900677555748077674863331121739480146773611480106232676677006290366904423378099033408107023473222776129244672718242084887774619370607028202707064506240048550296213974264854308484176448946823183728008613772269246032580038286983236122502932132174848548215296980799357442827899319018609164535198715948774850652633821942387656435595303074805796390801680411777218676039921382486781807828359936917269170666964106757902454340974555403367539113382870941883930927149110801365872758882164579819574624607039807087779611367745313860986444887951110623044114862352549276262441523333013055909853927333570227851854742373457205956253783916810959143187464248471536289418281823038990894892561265878991135311082845411143704192029945122843723942836772181495150272371387713232648554364155631158687422448738131744483296982084344978949786864684713869506373292118392934116786971767303970162303287369955175171386877799882247264448910573446653463151518591783578445782886242669801135875318357255045830172276822000592275353236388020959260310955345797726022681238528294030157575279378193000964314060429790072000553090148807555832432904828527103327860271211666474114429999607720890450138618294186046173870375566521592605788898489028694602094562529809156368544884834636025868663396746390412684537532073312941301604728220215975516456993664179336368280214639493852753795450112228401697313276249618290961001803551199365667932317495023009460124119345165651163130286540718044043597730523246480198976778539283283633895008913833303291726628217301386140478641066848344661742261086791361980756837342293753465802265814716823773715682209228553730877207159881807097486975188822070361248015892099853962037558727388526689163983765942593414815105174285106277189828815464771563946563937035085781286112681534349362730497020670863976932997073489224111049744680490646596579716844631980120946183882833722923057494144927107978474107296336741437276058072523512536064623375648186082446190082386169492411378482430594690255983912135568362818172456548146200875010615442419188159643846437021452097768628386590557994983941474957396665900118701039420422240060241705996383578244239414772147540166818287728465976915678489004416983009244417210144016097327613209093241896420827530578088626889218204788100595976592171152598284625702015443162389806555425509249777377270459966799467144433169542540866127893955641202100731365917416477576012637700479363382716062399999343603315805796659451350679744417341070473682600103143470570125744198207749519246362132942466302451521333814114437900198670254024704018929710634743070506429641023006420681975558095922473777572171416091572471451674002183147842125366720085857045047223415014933537972931599183048136468233861463970402717373281406874665955211123792001872160026862624733074320719750830835963942726873814635758889023874164818204677856083553827833860729424791460786738915113948418024561414730606091064486487557957434120307194768605468531118887057682875471623357964154409848441396187914910782704378582284835342130565094721640660953593018850821873289376899592646365818264437753870303629032613562110510433873976597562737373821022380714694097942444032967839625080560633634843491562626775109682803656312671929887474030716181170511171933748995924120460246133024062452080725118783739673358061656865057093388630598382860586372235004679542990761335822134254113376841138079609745619891520654753654609628718317359610808167345224912686089117921297132844881272266475831177027875814957294105889243525397436671862253057096329816162813401870746262451499036613097914453787226211309643820342008792873705928180666913846280247619425902121468645040036727075551367058360391269474700464638743377995168949860056807059608602554807356019087474806951745900354442952393009559879705777221636198004150697897436518377180060349213310977586681952813241329450484797954751558061299380287349353188282343172374479247376001060311737935365186475966273071763429761086776043677090247992744439579357137055364213521973571023273711395159824876520397493736474947191593028054105922495686879015896104542895660864557871624094555954206228287921617127594884350371600636913473280101965630790387224264743680727373297057486724885681596866474767754826795439343805706744048164557750049334046416410735555313802380184848747057520646111244897893733559602698309878533313977868773933261255777279410580636004923639680738947399677852041856107011387259055779998340139945896239500039128839284846646653088899294605002222963301707541904773414102331186545347873509287297098918861815973885066600995060816639486895499914676296912893083651898978645566224567705758735273438107817251152535317268564156214427347625393526923181829698869448334520853481098771841516471657280767573041155186829380113075876310039055898525718946220022456634843447856007305400524417991268026368918277314750813607088882091042191702805480928716136528333952099962755273678811168772224011503206722939230444343935739227762709800287391906692825062151358721198348810341850991411826886398773765308301591457862039300775497135902753519347987163871194259020150694066715985106119846207263384813482234176756817597332592960738441359852861057822530754153541464518855146286122929263367147648884151511168965403616448006334126713972618346319068324757390931821769387389728512497349211295662039956518291400634081893357090081230728139954847943800005206087841646132647305355725378802154182727040424860102256513863613085666353782182447637507957546967019931166069445731038554267028321479693699429768244876994587210119734154826414005911833546554690500237353210711500293436241125368203337346098698737155479951085553061958392676657481215443432539352471292311499653582742922337255394090288386190162564490348818412130508605685348880856135271624582534168675090942444828522898590402815871142752192050558635400718531829440513368287780201026900567685361422499872805378490985570770648076559526552871803797562438244372491044945126503621856328784372245370014082973520231817153509346871217094110335456734817583034410455375050335431590215817844939050095808316659988683002222404467222154636454774690229696119098338467276726083806171083243226747318901457859055779290203905215293174721468371964910735903784835679712471684308220548670995294645560459121636538103462666863950362458237644384324531200368870863962824728926983672616578457278902557148589582584189156090988773114603165946183490654839129852660381149686833364336218758537965576134038610449797007531597977636085591529027041683455695940421176913940584628173770079058199945245571016140302013913857511225623873832640682591203823826667870313676117601116962258980116325893971263334393235067009964494515280593867038112738021522613729376046487002010647800797152901481450303737291606447278230759152492650507422224976834084633822649094966111210611327493061359562184138422666776335330218964171819857655259720109021391573303502412032932040405860724102513445931833204156649021849483844653761941986678375220589812708549205462711296621268315118763601474300700149280920185771386441085141244709468668122040780945587985514374543939883322716147283108338686483463529364082582130827600369822634315756633082291419049536134458145085069874905944823342856847193089192484944011038750352899321885168546264247335236667205662170814188004450655594624214336710807485005494700832682390597922823968166015380453545971061075244256983326081162871557791024733298787802665076152060501529832347006430566200784395780176152079473536474326600598073382971767464339007584009297049035574227628494432640492759733406198756160255336507983881128268847697853759072852646838537148971047024428131378899510202033989514283382188381658230980993353891585642103802724369557156740451279404114900278046402726017736395215248362123908573966123091500644597952215139399602038265922793597831514653956000586556619444536633589489525783521810417443354331823150622619845146340408167018728411671581610521463528773404385358604902446416363275719472394401000806791293514053217309972508117025326209939813222857768147787529458996156150936234707395130071741813091651716585428955016375940230517797848472132580893949487411515658184809612852654561014731875535672858631505640473185562535439054261499907573014166709001769294692325575877567712646805377822501365610842157930859296653693855957713921192947507449330538172265530654864911043093504835052885695709869213961386686908560905148723984614793370500443218996684552040217878215095533829708237332337496466632988265567130044667444887159633192523659476904760717168883276402565595704570557801085815227472295964301948341716718812406680462584088255803593763759576427580924906739094212824353781321773621969606165976346054152082210455147797752463203002195143910167505817514248201228202611598864634123447982315247658868866035335693373711502088756766537066328435221516946403938452050150506308829844946930031165021071232075657280871487206335911062394850551571899582871853730095465812989757341142933825693677955059572561359551093543181248426115371869835950217362377390274430479499011978332461397431362013097775485806339125340413591233301837568703346286575056544746473105123811177667864701182734696889239751153379102510473723693237736061001984541019871993414577528541259761844501146906692986257974472533753402595041872269827611489121106911735927876048675059104161754048330679719232650956872131585245287476552155252322209890233758134269079017914945920076952597400480090899633121886623939185369368029071828087133416559666863533009104690968376008095277676201380489286812307280403667661040113357459427756149112902767256667886544628399741317213751467464155216919572375279710802992896539079016997622933107413178973269954949959460769217127228925151075665301902446273310929450817992654791202689707944917317053428564159171719046042549408157214689594639885688584678451359137495883622990087785646036909716869039588124875799714814136790249594438741890607460225193769091914137615928189799115328214359294842523071036838223421443592329605024375568701209390174393431641237753972444602574860252568017494554739618715635613291533215330820422207665859439608554878052100775926630197572461006927586426018912922894943264025059458091165991896491983893537658726598538924329175473584814490685115971261588690722078746615486086695173878867591913207952545941523466625690480749657337591388329585468767627330190363422217065155272618575919544897010085842654537694498454638939610084057248510905825788157446013260707569589375174191992126112243880120226026810246629716147323663322557578620481454951872363135678371626315719856484184918830860678684519297637206997470586673074186521979365370225827056148759543998960392905434159962608771656325935968898277286346568129654846439288980662330056450787230724457114390784900439658145158165880810249366090458216052406471139979277290609881271396400650783427224856873131343775174804864493060202667245827048481837296503426418030171587578123985695913948727129336195525788576389125784885060482132356888317841771195965737622682139273195352109091748627612794125456242328085741200395817764275495949596735536064699643098694800697100494624945550092817494770294575432671005297075550599887543497155670300829972753368841182030225560088766259602088095145889372551743684327184758167485428340801711503645547753962792528891384016818901305103544398622612494505048164595139460374237568039798527040191131725392588938929149032371240574689106674205773366039524500395431872220903118746954238315309914756862343800782530689614329385357875393167826661932067880693668029068884116945613812585622497892778378781340449927419334303708729304321498179601966702611393548837919484744654299934020862830048790090180851251280858657264050373384711298040201867207668618572529564364769114054667315859571263333430366047344705517189649808068923639489896791486518665180615111101947311578947144714238063736571913946052971581940857266730663003482174271637780394170265314463473001426631836202571773972980100512416750635566774710104292230721388030305999841503781676731780543515835309835986862220481005045813148417228951444387078640884638554889242590161335352573828868460037404162657829454920170708179116149356296372312602896492932605628992347542372332454139368953808395531343948676090891646896399618181116061839318569422991875516391496873203852962801531394585602079238737073607611101590353948851482608089950708858759784149810028491913992348592359337414648361963737317329027285445868170642299062707008083442898020089003867181086298010761404677352385678927520233902428718930710541922933203329440271950062118496812754772748278591072934798233237957878058336007266762448940763961010031528043337592951090002032698523477012803769044675836975924768320517850085692771636525122400964120856772372889158290596492479827066384784379792217026832714255549880564240269674371755141941374973327413735626428833058274654884606524769699479607227878261651412394312860725422030859912577423928917155902999524012250686533346141953208710378412359709135421669156179277607725616830323915257034874816771470882598370279123531956430139208949377254171037318361794284628113039434046890780812119105166652549839661963834520923841441852096067446502665073853535594102688841961270878990299978284164640104239399943363011114647993110716670614303888383273438348012301395901945685301560430554854043650624802115722851980559614273758405226075444092404677840131784875418551782603357392761147350087621170890729275269626713590561212076269133612119867553551136865435704349908324732445436708142487082806128736060208245304195770727055399387307922410783793714512824425592737691087151814258009341426444530391655296035687752394278479558407803557157910181557357180631240515403877301933267141414204274113298828477874582185575944069652143576451458849828694053584579718233359953116703147120830273679735367200340402562655621372558857166998219629633401440837495315155284978002418556729683196240192321699983694210839151484791552082201980932255486495183213287713569329407539929710298318626042657866482042596054802142198417561678515801456280075936201655134004539255503127423908225667481294694720941783128763359529712689286643273389868206496712556902145869659084754718284700040185569070950869118983522225470482439485383948956909396468383755398087910152218474730211565243697625422776402071315487389900278587449437519039176700118072430328990770333858296827730307141585219470748470704160047720891723110180182292830779296370365297552375657576707495040057977398417424144493678584224484177473831290905242311232523627260844201995855859598705201660071065143261436079291149940242829194460073511246930161965618707067746352630046236136211181705724928074348151105393872102857976601993184145825386956215773499276834587480656285647323955157909444348913745439580741340629815311071113488325617134860342261732638818770760999369234441973772789491743558330632065985697099810087382817559703504013547838212790370302316435049758296645778449865149774691704414714890923202446152839289105080210909553265943962327140997621017664674260778208432887975643775930193119044685918383486887575426830778590691575779320191064311889501377548877900141850613025325074651610408054246244518270406080034136439377287356885298502681321282483975550517922154226317423420587642494970794898054698407134701868164585892263640598439001806028720650908551734804829975606093310150509731985887442728758160696808890452384439397012898838164352546569186178770803445656983733009658097786623879586788612482678183799028235591712282886925661965891573162697085746336363540971383064651091095867728584108108004728754533541363356251442285747619324794577338554594903767235960233913861387217043590134431661403179786257704365701079110164317958214535527843950455305631016665194108520964896544607252191339801740591970467195354477125318998110274125006453006394620676169722081787729836240103072409471681385325910399146883824644565460819189651195486551603198049282724693844302479025575054385498425955823324535160676750906733442818713972456136378572549761565692123802843913754849906134443545064142236442605617130237044165713416754246230430483090002894327280927271131091150745187145391513788553819443966058990714997391933098719417151472091020059272429962639168886226412548651982551350946530756913721816270091716753110395213085626385395335842751690069854700221008132919678614793002250298966948542992776569953062643036321525945199989400326072755682947046740296809897919053938950972723548327268314802574914298730173994834534630875913225788987234091237517539843085563197552233080128665028134220483517776300104451915126907983937233754822204248974108711476884403974833301285019735577438531506881126063355035816751672907161842150337637921637880631863239346530231808384198673462569441237703687903279603586809041776933776820894052089583422748269174746776091792199813874645307150066857583144093303543650365060309157597167110313430510699364541647947773623429098430876014837001114280904646912736526430108276020614802933321289871273081113985918117170106549480416910136336822181195787413076574500565114771281771693857299956833536283000520452490870642490033238676357626697746478224823995984463018384839787994609725019510338981237361865794861561928463482516902403051782310520029735428191383268454348938554509948624374716768783142938118032050813073979023353252732695744065782368610795402957921824152220177465767240576117225696055663177116316307012153684479267702446499736594905891713127298536048549169951288263302944213989347007100625033566371881844274308824203278175347141562590605943053745843806078220665035903701840512362369105970391374642761779589203672420420621330458628873971613475677951603723540794961501492543475189987943096728125857127760257576541509070794600406754747960275780996460101956991678036220565640978607155297506349256801072087745754573002170277662513405071876535175011020149733861077438264951820508172269326115762628545012127775940703569722912710589804988503589861288479541202594334005757591718494112623024635368903891576427947453649721989700703114122360708065019031729703149804168614823666335161110554207541078216361534049772993535567116755210441543597357836506600803116504454646470915103525394736904788557831605643327958202813044062445113309415500510625099704905997671543738115791430574766153589173676079758823345188467959583757784525111902280501726080636295383967989065272003323305138472962822074034966336149626620801884036591064387445825757485136283667067656554186379465078783221157169170408645231229466630822625543267493468893575715334944779762208963482412910710990314271897362248597341281045102318255378224992422158697792458708755165106672467674007769428079446874974459476262476414706871035885799412784794922069692224266355633621702824305989257886805597932365808157486019414475876345023887816482943865522058786044150491563565109500130870565406911127078229376400675728849380572864264648015781358143580862023576307804750434370412391688283013163176445799986228844346846157582034287937231001090971297532996106121994536230719970987628546608873270332278154876018456205512190412439259433975725753722224103144478220649541004008980883024144155197980132614730564476138546783543430867185698816410735090123584104665440380462315707381014105584861265691393113970564033005511347061903270837282046540625662315225794166092404601369391853527129690050926123110592387335717939546085719811071162639187534534184550929534866647696636363660889540818638128544003124064731753692816412915454863833979966069047402737978592382509165960487995057663588331373542975356953310572288529731172146513206802346965669403711499857924007429160624358482307528639560810893841428167963097163459636907773507015277076640147272102555873075947136820641607508679152535268105852618744096641125371304352661382440881740029961744958614521266692475937648741894552790991639822358123632838015644890754032825138065724856966356312347481521315438219070535519051585268223732558166164186401988125784625659036105258796931791127398775132435880261430690623233958181660128205502270109497749109050715643079533672274077493403766382555825381842108292428677155303825349215109215738800215715303290875896841929374523345697779404668792835960191836401235009654026141569508406630257139003874270605731358974905769002965972683387530886842741791053235848001154314231263364166635858393467448117394182579510803747695065414855769704672398993842437489129996505842972986614616778632361420486760161691104493413338355065522693753832240864390431436866311154653489588343146821928686362168056572034755618019631670019441755095828685777323781614474543219386787472108518301098802772973180969465510081529587048042902746245705742810829134734034886831048421385344253254643501768723036806868252147201469251545553712391320017623366168714278169747474764722213430794552094387474100879323983486483090891147375390828472210565520287764479896947079164020346964717071302503454110347775492373988680250366813210741306336974215677941867059378922782186475407454099514579395358374677798625100176108158236246670051932300141251374430260887028582481053131870250079646674039771137686212900720498063432950720879697538028151669800270264124452410111391580193768116200906094030618884367590987130139267599954763586857847453866239839786652533472243079732355947673364272654294872577819074571238928286565218696242023322924788829238116401065358007052227876981186791036881732296092832754074685230170340514041956743531256541795370873557962980193541497667981344783131160343407132011450378710697932646074938799676888287516271552266528242591939081069640886486687631682171259767880155715295238001899498113980908324289199584213659176673196646033548746295285810066850096697700654275454452701458273712979759716834198355343296157648728195413628471399744057539774397248545590338833538479097700817074855852898966073419522513213543896751469347487696226738997861756662026625103515975403726926221597812372695302345093479834826058857224309033177819712833165487379017830443970479773289663186874406889474305464553447324441821865256835263730957554543338781105948868424936352134561870871094006387476265679541536701011065710086452096735672090876456440385346327034135340681286786322428619285196734428595433644744468580609055646409991079778788981775096912407987955770828166698437130918465067576783644898960409231992702398317029477341742908015609523850446760225383500154131313711089030748184398708365022414023195963783765229728885642087612216890870092379281128381276083752997268069699765998012833931768382734046075666887290398880557741998760550109634900463886686037537845191100970982362471376402061490150774591182985491620781797062949662321239351462902157364548660356513519704428317243571938017253682008641114176259230453914778113149209938700974607633074365306822507772906062085591315267142309520722127975147235147723572465870918046249767316968152107760868982466125873397119355545828666572363519257453974425425023007633510037798492120834781907086390132929558044377764250970777866911111256355140617817203613724990202410106970684417782253891040479110601978403443379734996433511632073168886938713443407955776299131290138193972207619962984962448021199650646542015552024452577692410756046181424130491530749900095547435011432923955747425031199779158926649459800934700312998571994176618048349966756116671747468989125783394512808695143257794800595205985314752145849322192341605701181340858700612326962040726283880989897931183352642832172910458624552990695292245801770896728157644313877531907783233839527440728881055428149439985870016909354230627544357681853270060832438328276513791581089295892126502941925750221552353975451185353204125498638045279708700598670307053744080786490412679794379505977086704977134412633444049741401943811790635011145895072562672644930294523163949994184069507835766809768777803101258650366168017482982898816080828017681607361241139666090473082115946914961531338420829563636644492958593098067697358657211226715275813567809265878927017607351453924425163400972296815399373653981119133150873132474460496095404066491938898884953732979797217098339582312747714466927118677666988941477601444741262236914036427206476629833400484190239019649312957447017344115486246841421300768361817124803804557699866054390474033654641502400880311592056356285723522764060174568950619949099889587671386883844417688319156894087798935440116996611420678567914315205386024962219322676077302006051757345217697129198992254589186279581385164137388859144271939107367509500285066500875066392586536269337659315198514369279463865905254261593906365929757216675234811713552902861621843053588014951028571633572428184127323424951592733521825906021747608073819651688530275388032757344674744703868264707919444945891802775979188099155880138077322817651352573961627637724389475371373345803567873982876727556401336455728783087751098058509966273889594848545493182897702580213719554535390636489332621120300482384895432037813783782510817744799660814630203234122239543000350662569533019808009907001354023040501892207685636196538917806684631525105766311080110263913312286244904456117821106050657515770646209560653477104935378019879239175126367547637134007918416657796518530561792434843044908251857693090752658231781529902332122009851867823822252506324052634373106650938188241972035226668935089441687312073215082303844671944017494769468693371010541239574466280428192249023375171740006475219300770192856881175307422878261770915879987300694171339796114316527975386101490251079599764115161950342675778571015861229647512404855512937679572883317331032480268027210751359466360002065677799045113106129144139724744574472359434613261515263580881358580463736299443304683957759886352475975038556648157119635448315250371497872704016828196833195602525992020431886235665682277995785000556092902492953774106130056024034698919507073665444968831727360420129654476993586990777457351303828662724544186736940996925775398914994398524304795756410189784604513272009025357208883107399052897345972072262787876596478722573134650608336448191107800510012066315222837520006005057210325035899881541322654825021562350758368604276786403459020636527079615533944348394556664771481471141788707763255187174248577393595343264084228694047070477817718224040650484453860893825668725071572538043427062146763343551777755011526699070460527656738345807108516691902978009664585110620500435368624198229320949818794198895270028278702313493095938785613274584263825816048677301338418238636802660542040459501617957637784254895786691889727537500720212376302033159127213794345749696403980109615249331509231590527470917188523975293510112912377443203874770490163839521886901503018680978925046123533487123803295718739769819628091446042872914222310550767307637693212475174932357227242948246641796265560107289232339919202491553347696025086373729926094907140102824173665772197111052581548414966834851332850769481962861822940448900345233957769785732565919284206649918369485137868094969333490183205523268247577813264686703309146523308413346543875364854488734931207289904157574101951598529719229797353484119138114047117388655073234096592053196597745043850382329520267197053409137574183956126597339537294573527924354707114065721660784921717110708835067811304911302495257973342047958706262481201097137120487451842733779309338611687880848950921896624272871364184649304578249688754571237992739798707050778036334452455115854426625012106477190816143967975487579149067772584672730462870955053344336925553944599961175518002342822475312409251488210421312810081755729235877608565396452252232229779236609628548379341875214027316344046960382109010305299789813005653874638098044415383298350248318274872682950120832965890700390386415132959144374061688405023809041016957798374608977275017086757104740536082819181685596532629004818331918155878846011019990376319554214837055396292146727362107417250972307092719736048029755689529495875284313234522267222002234752432147658914371476942360188230393735497742771600074747632533573573115720177310245333999193990483415805329678129531694699765639359088405556179538304739321148259386976444416437492970114800522693912115169091497894044567915209840221145406148102742052397650926202631367746649073278038017839317860597454560507639800599653274776873516793520927602585273837965195127981320460740266178708096340215715580672536496999136145196150979238162650363632209582842024659150440165245390091626995146695246183351103340741710759834400284217336761748932893546488993382687320874351091872182142995456788704378426994734890648894079867067794532771698642608503857486784665685813738187790106710741653905161469953966913354164383120150414679113825151555214107218830330551024957797896097853756777340543175555142884444271033418066045040906826773899256269977703694340808084342055481499409702657865832492725257060166576902896340317707353800866147557053750738567984578398869328128263943777254296425937149598731253534450110644565174014352647062333369159438508508613417462204053777511327149487979064312956368479295171238170242530494497517195032737253237957982353673793693916012304619290362156828785226523592279026837530413423638616528477917563723405704530384453460186603744922591122191330131906821778628795170053904662220416321925711712647483363969574726272982605118424210928016858518441300003862744662670474397012173519938106704399249487353705872627471355446756518855921014113624655588149842887058099132618193295983422276215446173099301075725516691770754042208093651204175277777039935314829694504105896762754769593650300679371971900196727201725741721112468448645002155394717585088373758260095389116068724938574965184089484737682404254982854521178008421758578287875477969457833619162362809464489649977202312736585788560194529215311908290311878186530680838055724858860607396817418702190714083643845952161948828956839570962408065791995782819004433042451841850920029830185075747704515984531118240365777046808729290844369319905341617383256686125616213428702325048816194282107195724379993515718813096918845221268716860184183209982931825017334696439375755888817645838011757758210169932568508123166177900936324537899172898788268209952356560091048540520017511937538288441061507702233936517755452378488950337359395299852811909843363618060652517546780917873829844746484814907751927748453009291411348122086709325301463789963466364295575947068259024170152306699749984237609769558901291542838055402224372208391010446145910127087690333590804409922930450203881318363782196556359568600110686604784295479016233414022624758610830498229853546117238922090023999086831081717897302790177839714491102311276822679989635951862067022203034396323951437197630171835952673253774437916222405300060900674438392448055546583006550143939924770190354999512672316365311321465066944946722110248941009832162154260593404150391390884449507672287532684419782316162075982995302342479665049111987867061005912969928220275423980809976650833623458959444467347230507831463233530236674923366972534731305362210379239664697921786519368491544705630673657734511482230385166120383180881448922347365329702111926520355021840011719781682164799972925473962049830370591433366454340242286501457194441307600457654178471782580938784614131304522747041236987665664808548227660270514803596434810750440726868807101673812841316846261209731932282370499012396129136694052311432988867472570496295239657225640883664769928164821676179594533213574923460807594066956052802611272289745454586634774523866420639031427789686785048820357961877320714908481731242969164754917638191534242969990024618043428112938434987276648912752077049925912746829349822699020770784513196771422558738784357474393275437021218476437095242339326553414734048324407902971475378186323903533117873766866240130830008261317674344130610219552379937518634116241526486213882294287987371279671161057773836909740252308119703368767024716058080546666882584881582855657629313267256957896127042819808927791416000351034203796461290764206155480759794208979766831249578226537466738639645759141755650095518789416575376347276510727889864049830687386545096880063668199883026186152341484641828520201399642029467901103674620404232010928169786515490996278722829663104244415535117055584811310769892587357464397489738234087336114816789836387003435673921361899620026931083429755706073316331586544065204996318215215230344900686940972559916711745051901906842347266810803857083585328438331399306612968768702897411066960501858111411315191406976838241616865543992692299995097957027166091529240088227389535198438703021247000163012251502863198015018995736825573296011906997671816778846053520556490699978795434215220266771658809198502173582743064254150883625542415340146077562761681775174279547212244619654951852522967718920290210349045917013559318590671824363290163728917472568294608343525970618114447802849439962008230188023298297030023502712059820602455378649029053210749793430927057599202244452567934493329162494370913406522427525605808181851383364550300741565299925433362562069613449927719816053663124879506878592893863196703059454362007187946551690389232696032913990863146390655231690388470316970078109591813285091304125764916033275959441594844155077903263852346524002946171898266605168820649021653379864879694508967852603458163431875667617142813095436943853242595094303272836273623915475078549519129551634634799754083334256393426756496357228628108589001412823578554986472645589233338718945734416570282862523031179770381666508014203931723098277015156617179522814953256001446398146552703938409411187864980854562020951666579835236611237623349609959805791485564003647311567621022576878963341788360568455535055870294514877094231712367804369745248437633273367358768603647936075626144536441234638868003184166580490852020660066080217201109122724292392055650967434640639273477397061664391042895071368849404924138003914746204546579603269139910292703202891317066475841656639727146991325237349685485922241043975602575866996573962356353071744262643699882143424560356512590873055862703831628512731789313690264552712915664634112320925825660060162192135859353263319363627708295444018057239365464303306044217991461199976965685458360148029230330906715062270440172472444266799717686184901654766416893917680330877823926522583603179688528015648603434763178378698325393392842186343804815680268560303901391712829976987269027896076488778774390115519878305227107051220416102416032621794070076554655630164744136129729637918323745116657115937857778439730202946470143809483530905164008164234971044455387833117356907992981345173930429026467308443017794549740056192581582559067672736689332276021788093528249452088268138774471428702872253266062104479978155706970702619982195462244203315381431193440566639978586782469788456159301840195442768023923092313940684701055315762828682339855244964236205534830049015695311651738522436697716921070086173524666519709235407691831924744900956269949924045758302725746395420247888945490667271988214469082065561920870159224789545866866536727584883172643658878067597262354827026773475113064690826112414664420710099705981855999074168473025824079468903788640884960932555712308712604143676664295636782134473510087591286082281629933929283662004381990105584880958263665494803250606082075739717691627767808672792092898763665102227441465440721740446800476154312325273245607204118324220398960968099324693900976795505086559234430796800723816101575584071890647280283172460896268791462242922616785559927865455405702599973976819539995328739657898145331108940786535736100995956502338458583975709525080635301423884186016949966214935916345037499405205744673241412659087613510977814111871867438217588819105249370247402573039936689128515744610376082854593932656862685505323303749834283054825484914177137639170189100930013913469221451585257174188667535633749722771766279696798558174946057947417244809840655732334337259682746014971383985616532836207295186315721200999460990829678613653817921562535070228091688133491077120572992201615532012583877458993168731109706324555943482365343671705005820524368379297336095386583107123394565551869156039155868981543950635784737236635083719666865886700977657355024114799624069578469901544872858264272310423665609778581868876526415536252492984287466319029763809150533676529623099972469289311435416285505204203443366839950170887722752292067866923029058688253053883108810248460960038060970139606454874915678243991930356894848634967079180254929857048584065606024748534113638253140459101119675680220355242610240000128330552012522913912100969527864268888472633676049287085442924612655288790809238351295113392991183960486278360224358425975506677762933854004980401797113930755889913188680915339650645484653105214127099152029843853875672528831355610655724757502855676348409062748138285210419219934459865472468436503114702254207038611773753845441854397450751467299031117403355510371126793585481958994284619015747864320962420933415045428219447841324120988214104726169418655773369163155055455127984719980564083379672876243633423827450642633007211327597318953845711139507574476856672560537409885390547846133347124259966983600173306499782676146754576616117566019480145995138749790416838781368311756891851064781327626381807699006223422819107404900429345896948385937859419493717279099498637370247863016358780014294590264891723864339901481021358983440567377602892937001948119421679813210840232580530132316816147607253554538434327983753989464137493569773006616420876025136526055437566241362725889137027468105742851436133643008918398618295134985075626671089091830466223973432860808973223131444752539189239957452591524156023449496878440437006732640799006317285918695724327453868025188513878640378523896573321663975082732679131338777327105642472797191959094128885939827882074293552159582843158498537943506348534505779951682097949702496438285953464651242552083308814271953503136846575126626299492309108525301129334540316051981121928326293339430489221006076512484790065616905780653015018239505357918345283166695441001498876860774328876768253849491262923173798215255223184378400912206545235498732293211666000973736736791463351328953877336679024060035202503211592785454313347830778402004640213219132899526312824361677666606351005834028009559353738128098862585428916158753626616601005177700937939622193083001330860692397936729460287829359119430293397222330996288514894948063972194836899999894503384083885732820587480307597562972749730467724961152770868990795169191369066295010675727971498184626878371953915633284689058674634194755307877448612774740315113637664605050114649478166991776054993153948513961662087878003817004479613951207773897566120294133248259795363681473897801632055085445384318105611262217699035665425002282300804465888295397377959807411813769341790997310941278800319610880271949920709245170176367372067552810886784601932353810273614339852305725378046285276146212848451382743132438991254377622402444357534261475273702477953257677592247875545796416272364532807864754563657715031352684829774348642753353834168480283968779288819354208232750333870029358354539888185533715102901913769613050580623660595123102895032101259381554081442081418470581102215943496667888341140405034482562361127167767546353268867954167593492975336876256473506426278522622467026071215182182941735875666088754608628897757273392665466044392985389085693997859619470926785811965106118960302300634976440890764791701883612231225616054073167236046569773796747868409271695158340820762718049031809886232463432605294944363979414186434433518809546441422403434877008362558926032576973661409367348715528259822355613232781415113894507317784051581296278690554195443282077998488216357143046436803825113560127926794290170988178942096891080770649382208001326876010691276446779673930166016812752112963819612845041827929324322738364811594184246291035994997799549408207058980443297398418782474431240636952868771625161281392792396613351703285910113201464598818259829286419998370769862949595601474126044007734063564863980514858316683913765161229614342790206841174705591752520425872588663825969713955267679816238548975924149356885733014409303834168341254058246086620189951073318712334654645782199602797545895328558583843764195783996758804005907680123741470819161466861153136311514159953371204922184886647222020369899011460820678996934192335351076012037537065269009132289096583332137724193640332532550430156612745342564069147515207884088258295763212551632624938659513978721658409173764405240467991249296490158264557898260560866105216205066861776698545654437583378070144672066633816561101391929799000749765565962617530506876901615997968217883329424220012738316216725066639189826110487301940484689727368990183228715307951090784913746811603871491240074649097531560268653681134911732298555227301019409717383435194031602077506839899895309191450175279452281903545380343751687318761667848667781569595644395541468247760109980188069510849516262739634098797074572212487957635084195971902875677190306120241779610861548859523983766096069654358173509246058550915697557175379801421908845624505152767821175898979106442219751702460961919292258698992431606277565814440944674971981593690672301069748321921896667875691182766585015973402680233442460112850519983140106169377443370531369319783124623228669798193117179105524853477712563578565672056157448125586068514987491386469937326930109014839097780333684171419402513068365978557763340539535925018664992573560681786070050515022385553024868110954868375374897977218327745296951815905128555151568879370430030105154832511940631457583343213742426832373396993290063271392772304530762007565911811238206303511667056009246324368352971798212234449009489939088875003752020700167940352172281612702244780644214652625321467849241402139343381386566407353641964138603389491264321528375735984628279820542493485798669236450681769678554591697943553911504509218667010086236973164355374964599924196440786100775332624510926264605809628512060422420974049072724086790247794101911009845552525352806761426750726380226689251580277703988808893105756430008726360534761617605900610600285922609878025039748174743676578868880555246556728083670937155536664412110120811450981025381947446175100080960811887423710905958911305901992497188578224332042925411171065153803215311503171579163277771570905341544587658875819770997601922421624193775718632827712990999173295869678055109273664908412593813493053139710786362531354598407739985954656593156358159727429987630640245709049780960144554273225599237662216233496008806242954519627200318366259917978483897915820232509949501098458023215688801024380804774865416082900656847952831775217864803543352505167526027831872285988339960966943608165455305752791841682588307989337929291102890823708389444033858950528571845320382178536959060856432051676184765539856165972747150801405376257539972630321699729848586533646029695269415935358875462915029728936942578927185397881406248259829310268610369563397020423317389022428836341360444224285048453057207446146868552333590387111733536622561856156846216838857881794031687422214099448124233844170061112691664647425030674007864305135192746204582376927043003373638360790794838506044307245257220450254980754359505129451547336298918298274204443539672023242482678385365864708968122222708520252437953455901162546574653100930039165878142381275421332542079591209026853246086249707672553663346801932396816093354225591797294269734002040215376680536340169459914742745400054703508360320189897988409816831833894101036337517013365483315842348222482888829279539851748379670941851970679653591189526610662923726662063647620732252434974718180050170202003405026015963968733125986233021771241687019432857671347926309464370798280791482188492678454074870814704883551023119180965667974124006750733531520896099466380979684979995572737231121191524354718282119629395770324354305097224024050252944020424926165407177831109985543986187469233893243634488441445727442463661599118866604248393190702822123274717630818667193033942810541308997989008728805199277881507544167057270207937303949004339106474591501395549176751167372493561155783926587624847852172859326071487424789454646947588069474510119754109868867095367248762810556560960749503055512622036610666133178084156037976009347920805780735936184094816672809927735204748092474253364266833712537278828193383370030543488567311814426263916889963470063216233902244659738978298348837237639536546408619493132932171824444786063146814944456821100627511937139175315366693024415543957210568652522924907229529196809890163836432812717888563000145309690574407905388848278989094386728460385406985775859050716939457635853337704338267566392320226719667841947380041172840893299276362767926852947260050264448189602935922059513663722991717592494962085460312627887456296750660108684745316535310244457217496752868008378981206602262118397878693228421465875481801853889563151619404904289841533107142290478325907788953793202759189576052038401125949506562806573914464343423494426295315784094343380210336698640669366156916457448279883161801130610657392841909646068447813886255754213763213241283740921309111565285983715093398346987852535273962334117464680888978766878163254485978080152331536803295970305258161478033707757157326030505697029366560242055857797816166050461082389770218321062388884500949809878494097872706719452386560620067358720018321582068100643788088595628900860159122389543812519118073238513644522813555951316987898180640324816376035117697841892797386613274309176254569038293037296130735625527057031053034719342504706013520374121674689445906354864196183809471446896319968950131146903219458436436661449073705561696446088822117467941756293586412165399021612389132028430085320329633893706234912926298013840117934940790842704532835609937706943231387270621616257508452639198983852380135198151214959776482227479263002013062405756606851093212891207687740101171012568795724589180415312770108392093446318571712999771876311248005605749562218485037434214799069950027095246708957680203660559479742832498937939032061259564552528818653470862766930648457224253852236528420866349269958945923382770044782654659937096885538563841454490173659073465975199917532244035009562962021395944257305324615117341628534065680093437217573615013668243761158852871755991106860271749574082166668176891540141240417217287706353578935542770725919640036642372999488428974890602155988621977722188129317558389356317891597361425271938829147444572924648445431936254205536396922607855814051091491008962024607009284808235022988484446528931509031395847585721813422490956844577707025087645796934851342527090786294725888514707158910648199822515988347361987406478607558464912438398353586413397640352071373310223563943577130454557644749577059521346770500142098401938144923527675534878666993254573343389894181162280848414600863842535248592736974509298586163938061765034031256860199424724266111466630680090535056108080532536042011546833515763710076995278008342692474790001952279489805583997180711541439786084029909055687815321514523647552167953386418109902296197977248498747283431631341017320206602217633120138597050148558942937415282231773963093478402080806821510944086611070453040397984529674521443179623768526907971886207921391538645700950530306282229162065512819341084032219709251639346442406213344924404372915401718321618125595507825673369313053132487663068427455878099343141223689367330620316020101963325702696180260265495338266895446989851566684610378968975864945127538671465712688263725060040090995610180574460443594307781448162315783476792475667818732633066926160376186367634659972395704712702601359486453521400219299429352516860515484617331015466742624631034649127798445344017603802611637418242183131694725140437559572030716999585220458730929541141783740595923132918508886845634198455271833133942793577389653796341038376849697441536710296570644389587092200491268133029853497790493380862939862029151025558998030651151643085475797812839013414123434808238128288559829754677961791225504289359278450110475511426556253088098761940367502888626831561620410396487785656258333188385530994482276414426804048364497380828848873798975352899586309166476148486910841239561967012330111517036987255030035464664497732675094368999433514557655447149956600648877538171477756137114172027520375091242856876378727621449836560785767932026187482744800219755471790001086090028355106247118359876534822496421505825870577175704092028147714118284907635072693878583772312120865743763581643877262070263481710227317113355101997107487370178341935245871621046791634084408127085015498461258730683005614649496216780052529043107465897764691900586195985202308125011598145226687256187354434848900546161794861797282061801411784509818516674474818655307305644565601038552780314820561961334710464028117119974289010028479703560091911733733649216608826065333475687563991226804582618034025873433469435257847300887815183952493220195311398190330487277882899772144170972288622362648867291964107635954842238109465506985465710717119026468742954721427910269632716195823457774174252853435131579216820438848820052593712331409524001912379207140212316630410808527179671407886047116454143554778812355374218607905399877307448103845951735596768883898382507546616665403148233461191495962068269747530569502119285017567586384541585215369313167147291901790982531516987464739007745550911600304226311285815150960660675466917010286960966673700748334984975256359876150979948687859891579693502178376335736823370894405529966457851267376594003273928325099844325059435708872156267260403291215932352867845622000487344969706527333099665092972251517367409819828848844492882125362441166361509277356724385202077823704963885701578564305097665938802155550535560186840673977561955192158286419941080238643745766433559875514860100060475329087864572659306287546695766487008064115600535771924923805186943480936633889316809414322738987309045913939134389924136114166443218426423718057820375939700269652853006628988035046199603109111208748507103036687574753154283343764438155122013013687020753358983749229143709414047937402812079642961747094208155199890418918518631965599049107840480023797652495158717204623203024745244054348793878572114297368348651424027182057158629691804810747812655775355085681863501553782760335910345056511690617157926852904586500906910156003840051462912747493293893514751747361342201813718907555508188522650354120198927121315765604559281527719182288105856718376113117271765399233126797782286410113083230981564578556437005119594239614209406374634317745256350150592903846955787652570801291687664228286037644214516489249697037876647507846870678280553335870009554057523696642544330340857303692450437513042460079430186961971570964533068309387398192334278774172657992711186918338490941495187471375664033582197518265472246258317593337189086620902633651217068255366047991296790189275209776878024161186755898211826441539409503378905821743897002794306574034645610098155156992106592453927755209161641588728056283451584397921939280752039414279550533411049858246387514937851649298047193310719851411335095693520054512794826013463417273083204741158039577147536860714507378039113106350215444982403997012104931239206996966148723290987219657983430897465991724744163272572721517502100992742115392200405499260533884864066387786640842516631242239856598471940826926445789747013885870306273262852639092335841187989660797682326970346123561152413899184040342606067060958994862214128359659577833157071630688985833979563618912469251855973996786432157723294292064286949951533325985337569148224087011538627871814323424097786174963147474420387208095552468891668488789816130998434465426792732070735062597064147021915795545267735784421859915182787568048416122300785155518023694729782322140836146569585786621328266686119242175300333483251592275994316240207290091857894163798091356612409124679844219833487977682777047459000843235023066385756643917012302623057928981851716080537288783703855921993863904412205811335954419877031097310048367249394436179164794866574368476476785582064193679685246642900168169443684494463362406690081266169483079355378874129982321768202189079104372777723731603322885898303971802112418995159717105844674472813585057873680442528751340963981110560102417734687167349786827404154902996865468886004633036258806019883455476643947098771394006681367710450758514724475410147071670163394996575194749671060524660177129744722131435879192206216763367963626072922820195539646892439640498380605432775158100479728286469104021671388555675406390764003962499574644392323928095935036592769420282119097938151029329831945822180916685277142066465525438213816130601668844873816500035277176916247774491552002218679851047779930228209955154755165270678198210318009641117641177912676737711370497101807445090382226011479572046512487031840929656769061662060299420328983980098105209751136164280584594460527138627889802911138127837467128645501964563334141945465671246977757054510023587014748556661010276745564526182068534673731300753643965696142975832833369323472093313246311733465703144735767919475038437152947762301011848724665804078952028574167843718476692413700688959929374370887919275024695439419454613933093771899813653954224346080029904731200506843135999718747465547226198057528008886969053074781640433547100142510254040302972276682553860902510058473312029292959836446779641366712870173473173444420530806041647080417707359007943992403826013309573200910020668422765984004206085888199519335709668107654853532378116653121559907455010817566177813147702066478439186061080085277273096858165109817139593706054901743943909911673363320216414702450133824379152237864719895455324487679183318324921844167852841090129300787414515342647402881423953182674487379556039698210912769963900370934501801524451037633463385503973762541755034879565106993138583497178254528769886870186634126168527139513690441593509542100578644909195088632900132024998502622345598951935578006288572251781087642771419403602337219797057903726951236241335595154465598470479702316293810722688317206546790230231427272231974567798827794183893909384824473579506493804302169552890186663785857924240151483173517666309571846920400129808549650436054119735563025708712407438529033038299796873595044264929314264810334542388125948309663512155646450123154729982536628244576163458801321162646057682969331297580138545180042058164043725220267050582806203465628883175030232121825369080396075691726453097216235824836670174841883724246903339784451006184602125987349321344103090465856771249325981714918879178778724407310091474641295200560363380366890742009791006423187086567245954704085217975112888021899391967712020484848736336004459819367413113903097598468144453523907411561099877236206828664187806448781082676030264615368108131845858997228166167495613705329191721486609042439216109678025517828865005731428348723986653261069312925949603597833945910158633397202710626382399078600961650692722019507710300720868357733494153527180459526356526717944993621725472424513214727886281490182852720023188277404280644262482109867551776417671684311308491411603300734561352074926226278615344847556105427191353845123172189895375865190546074550200512636071434066467694060549409717292016970657983289793635826734512395946210968783083502530932708187428225693658044042447562710173057694496049691799625071527275395948150441937973624879829076221903356779306443678073746172050309803818840902109504163622143308369083432127847177301843427759702897874795303511697099288000313450681093421133367483444625146055453630927436617104161139984085517615686178293435240995189114214265268071046001930998705384592138582197534985410200138800408013830323845178782161500729710899356554460864625787776671277518774993779360938610836449741020955514271001095943513043570291159623450239988542260268994842901116784873191056171365585056980890829580925945989210095702722703021762692562763973005874391147511619843564620500148119365831647314194599392957533619728513587061465764280385959271462093459278362793224289071827629312420121369912456941260299828475605781549080926184820641404730288268000589965740700771290930460439496109611990912153053855167677225338509706724003214103090180964758656019182455976989189346672372536247111025935403970884411920413023349481837725560443753815749882450663223270554178979509342506144431136717411125025384036897233767943547617684178773963505890092153971301029495782240538613597880604151902056749942950228892043466422069108049560621966661197780122149827615371313063498735555543401128284539917173189219590914926101491780806563672578822405652404546072417076906502329780552078327499513457331830434293548383189114085223218301391198450705028411338737272296884426750066169372699924502439653544883265074043642067421201122185934311059422219794225755199109738321257918300342462864671927347278201793556889032508058573866435957557985315868503887855828832244937956756210711609897400220609846599716048886602511737832278146760221112674963221922820533780151955839089231615039313334685840687374619432401812900054429870003923870071095209593787950632233855685662122309337534896835545651913518009760582750776838144189361459408724515656737000930810253361064677439924862501677887236137870358249476695119603888113635813477595267401744234915786542490871562274759242330655455514508586068643725062267745343408525505672309794036632546144411273779661171895306641575445673975217478692074517059875656700254315667689791635767572024204926655228507065161234412441236694760503402681067895023106768371190292828102520987015034913567607205889772610403103914168511150643214161337359978941734865058950647154380640108796080228724750077559302434419674752603622925339388961950594617852710729394303055959829459778754283615499180744942256337711901523324498497782737184070445782588668098630207342445912413481181244984930122325008414370489440948678693786413022449054326644911073718632892845555656177027644974538100852243931011741271420408174616839652457511379685498081039458926807671548587895778921168121201754129517038859621531212882483817068581087925351893457385959300529150048670289401379151657680312593656287768289821913036891992950899682693280124762684183435846476792418901114052569292480068627192989016089991424806417902926877555395221108139983936133467427639018836765695913118904333346965091309355142822134855658991552810547686308274756054171002477184178088855669973955222745941171863671285997869077358948616415792952972631822037386137277814862554065465368156632229927016272617550907312585990306355685327868623177778371998946784543252422631765470574493444743172082383641758168541337641226008674239540095670405479074059140370920066029391357232851399359130825287954868550956793791996458398198239437782856301322238496159204067616335579158539528707575504005205398141052456170316475470677351327431025600520778276616464262070114626668552999120340957297567156281138067453249432538174985723961095015276770844994661044461755955304958288737896376826883700042271035441140515303824982133724250149685723615641862705450281875088134606974461160253362803235982570944728673549558139701118710277352479369980745439016574177652384783731566565531221917263127558267010897471176080401237045482305475119832514318945260442251540285357549933285288024815586814644806278853247929992991372908720121193074402932286900318131456403430642429691198939115846580546073155140148094207797876925359947491117226700706214129190080148227802098554766489073347898417327675918954281963051002217241260634057333960587614908566181345633979602095384262045252275742114111391867462164924139692189600865082348647616862648451620844734169301178676691110033607532878879936732967119635325994957468408396185382050547869870799587839104810829293303633902693100215877614574893882239057004685598314321525002697469078441959774411267632892762789884741592442862550540408157494494946792766490277435495088890966354962794618446910176962045147806301264262588754017943291591418431424450859220907633163951844091418251358951659145289197784936764116595692102022572759211994223945634682484981846123015151618798571491810082769645953101924001698216693812753493058135631248603872367518432310084096281902612794439307924257754912290079394730920553412579287301295922309450256096519543063456911482770503043156491876458317914375606328480982923859440396827040870530881565460634199147345692710400047043771055712929617728894631806201397946556931139310698894950717289668049142455869502994635215860600776424965049514303504275659747274395870274732080683484957230438769581758453358776270814876969701982720849745699021732265663570654910702324825982882049670711962236081882426310115951759892265478250545845740246306695242989693332970199850995165826551425131661259141100485258862326042044161345068571973121235667595534883066795733651607112839870918137012531430308768879011106895481849388506992892398415055790635712109936821728753351298623132594229900185457787992329257235616941050178737399093862313205668269451908853091663271293001302369244094849650076241692496614430730889488246960312435763479296438080396887111480453347747915995202049420663043960774437971728904656712010532587853375778500749500767528109460718692032873641035326958890044654944576497241399764421757589319063583869737789781756785400268267032685942511582216856776504802077852341240211382949563577274488272522504763389954967563004878662790289120941863182730295873663742884970512925462368924695105286380753958475280421184783435494961600229182264497151453145744031432088614073663219398839933089708058258035594074405028035292822792605590570201322360131011052490322677249277058606272697783539441284506242728425831252176365504081337336747329181217766090045024377858488022876564591599207347972051015472664040126336506730953328486264802632933346708644608396583745145020921686246794693357000906464610206836575016276872856602716884356552358067915546104068326107156476171103113834586182444148530469081446935146764528457550393597704427481831514914864391627278771934789688776160348441375101446965414456686643306933817498587470627622526982099283588533101028922625892112482952233381927999887194337331200784133666642492024130082888269621330654462990417171639939330636256005869553580216965005751978798797692672721816772235169840816935132706362926232573697689945808115171108999124552476464977749889730601046855728645985449078101432791780599338993828738652334679182413193775895961344343964269567396781263804441564725965846008484994950609093967681736278598100865366900574964655693508425099448130329747457955740145985936886837486561968072629821923363530145001144566832022232280774453481973722317077200467134422277323572918708414776497754018720119332385995611715742922770034945725064199905291226969283089644928554664636672288678576040288433315006608549266703482099807363923498051066046224453915554706608888201758604016454748742317009585282367848726505595182038338012871593640325099520998337762327840918609745714191118394103720563121112989799901875245914309072614965038564118039613994145737843545335314780338015613280309945875914454975058555568184783880413922165449837978309296159231479116165077979151293183093578892000360793498137735947204681805853963748267061340088449774798773502643212474785154141723091436093253683363346084861015590727123547636143286609476338967546978415433918685962880170402734076219827544703979216738004200926752114682549764719702649724590675830059148684689082104111764164423086248486108157447350892398838192808503936427188960580205442323261617673491536611582525720585465217134966325130495620706411948599858476304929303803923476506195405858527173751937563692526831954784366132288825424413995385729823455389185415204850757135956403887516528641147691707537745375008943584602757820421894838683218400887971672067267329173848201102126088909694388630725555136506101201405832413601558932201307739916315144037204599177888889522868449635595094274153690151409601167522472701142671261092243457024288173116680941073665809797397733260736056601692798154064308359988217862137050811027110330344130566552619131434278206901651418261287040854317465246966724409541119228298234226333057260836568981214334944524926470309035629243045429430644394944050561353929350293280305332998227621423373880611983982647921288826637119953555551336108983587881502039575957955331104859796289565606595526671145236955595819659816175743264176259661520856737849204190241350656022570573767506635023382965063038769551234190555716001024821455343125213781700428667390157646566658715918686953646908797292858030277981838983307413875292899730491026312096683884194050752264089327361651610364665214907131707111836476263870940978185562404807579717282131342226934086951963610235466634368295100917443775696966198045536108220734907781662776817527480449591481446417064294416810165335762634773996146763695480983623224337429571802793909790520445288624188718825022020560647403444532433139381209336720958359754934040280759174529092479668032748020955867464492238735479832462036011020366091774475547848984771558991158254199552791301375909484869910769492263464081028293616636296236315626953534496881810459674404054592025522942858281730517931025385567000676334823922896378071549662514129219541475158547143877786393266563411937470840839255981123877410426539444190360850003875837696875886729966261403164965435709728992003908178960825630093960740380786892239074232277229937421710165054631412321623723156303045150416720939698996472044082866957286734307489033207322107138812064804621896164805751661981368735792340293349415618443770571537504575513785749741133926028801436306683629419743475259281056513805468908222451408717624222857826036994191321590153237665375909417189761659677130702117525505787161924951712697996168298020725085604725769558231711411047504727859941698915492621247613470396665884154425468811389138962671113302740729918440113498435990050365596684068689437333525071989575824481085185865663775070956864951345840803531130177671066747602270611568469378023703489329225022966351987190889610472769618439901166159271481117526615134663441995885854457992162564351072963163213732428852973273121003150356545340178036234138224216492433810322715375990733976571872492366048307690526298109839632867647541633670777732123611781386821247018492449686583932515934756091965121454211375775594729556190727595918196512426790983498442084679990279699070375227661945037122037759344254762605783572351589980135311700132220182855110837487616971817385709761066134279876868246273647334779839094184619528170898426058804753578425355455051913958705422910048643862965701083677520727318864020504958953679777125263853785800527043679933570633692984302847371350170483418681753099225631992574219397870834592925945162026492614204476874612863483798253016595328550801914202356327433551730455786207010005730796828381698716265429863275442373178558614278762319153892640104603814407098243911039598230835339834901026445895283742949514593756928621906447900431622184599734406340048822358354409128255585577786228964434593738101710278965830387646058197298246913504864555698508009670774316638002870953950921612781708008327197310574129096517198351319547779419894511082178988025429123742121910483449272337722475817700248534918531543114321967289035221157812841175708919094554064060367660052505086213915483254263787828593326461029969081204187220568127580881096947051883003142297132910801607993980338839560996801162685818637683780125703371398990151245879189829123863724781147552496954452078797273413245077365492838362035033626563021302464664526055774818416966846158680003001849783155661438564307058807317428044379651919182786420535110820422360219651386294705401153144350838965529928077496305648056443722422388560660409983439932324950775483759627307408549188524837286054390687247986838773195650950882136872457642915719518770722584106920691356607523414669079633734034594492054990204873887548525798370681147481452269830652782906289279915351161802502705270052752635674216412431496880446469474825339358499472270793439837944199641730994651262441999935260927265923730770145000481996065059382910546523167028469248313202073247455867608177444221616051145754139901501179648116976245973020211716128590125272886413246420634233855408451619324618839793174500000312534903162978821916814270682490025904399786042834815799113959839143809141754354372507401165438632375978639679055149180890648654135896793105214458872803158214112679651347825275516273289462527625245719724708583118331085900814720578225671252682807392777013600623296877361887134266685242425598189052968600094767655295207585458179278546548063471040093841456143984027381286886084380200176119535338956460820505113506330339856888003524331462660470565674838530990552796156812010106837306193572187365444688424329530665065347822781996497989884935985728728858382700321182718991614780949421821445297764629442665548016258660574412628437637119640620146751377778223181494469064418907590930191470541002797193894379765454916781479694868074185422465244568075166039192354801732178382451292317019291441389440309921684387378577186788953666395351176357855830871657392861163528953729386815012397086556170268646733903278417861777046112931957740314209352607020297328083361960511076575439048793652714592056463401713053875374784663562034799391420432126213930306413216227348072524090449083473250001981171972521712723077900569021530623477966859976703430372094433889821003284516918711103395762039631947098922858677773431106720514951916185194368036648887791296746856816405960962096963552936249684555140850169324941155833724194438255358667884637561828332468030606946674065626333635993384747516633666920948082147577848670246858441049232717158350673239882043514210475891003881272475756850742333204447618486232447493262584019302161071820022967536678914718569036253672457913725553832822485195635284372043337595161021227239365803106885653018516953169271732480455343690802158538978889730403833080688135511453469404946615338182267795249274118263468327335429816073763303262994153864569347072915180745825133082752924454770469178981593111462644092675848582271375330284226163187095876401281860368932471560952370073059954762803168811539699167496525108389698568959997775949068862728538527668581740752731570627688100852061379417473421924367503325132718241585492858449548016690499649222034918016648599213384690775060218754817459118813439456179106944128967487040193558079284587510834391201429630659952337920374046722379234339103962234964356989169185150090269670010180358091240650228608763829476295305862178129566155617985300558999509153420624792203633570364809973095120502036730087555329495329724595492324189085354486690399246005032599527629085760220820983292089065844547348528611213197861458401309457175764521888248522191033916210252062978647396275702477978650511360506164013888212958483760079377215392677198199770088438500102738078873343932952576516315740532724827541390177770213615406036795131020220285819114523581208606570555726662003713787554337911399857531794226157541848309203406196790081853236208586243660828077795705677177975094715402563362114093904059165855330320500710523995114019715245836726339358026416108824116568684012739415029618139970155746371821349202477621467341957784307798783689418039359054681221635475111780910679411220714385647639356371627504259703615746783689832785648464273311259110095424653848697381632508727056196309887331862043650590964196676978552351916456862261469952540576601761438924113561697084230219110081356317106769507813731376197531307540783671771927653263039316727854944389626041001653508430397526466846759671911670391007396867014480385403857369593860532162286327872950264787841424447740006831795622809414411654019726929417024296022075789408798575727596681846668312253750413760335745278871433080586739932539462919793422931554566810386900630061546055623723040027821137137144839241930227828175829582964594952758140981764398441136359997637681082754912636680947886606496829870798553729886864464171664092271616379652332963739303776737188716095060384302558836627073511585260840285307441278850836792629247894023815174597499426345377171691031461696107814081058809554554958000648994073833411446289978624701408403755590031050390685149402076910871617382963315599036570969142975795245579477811229408704526143559720351765589726383558291914177697523126892591390725892443512321964269706299904052953824847911729523628423745696007448265550900033007425822832855057131384743072112438168086291175140966036172615446734513139077033842785925313847707273046615600875160087723076228926807198771893817623430369846422295560129959615081104646104639820893861236352237017257203433412363025759876782308086167005074021456854803315160028989849113524947355703415510493866893028017953892966303153853620007519013268346245723063180477766730890083748816986267135080890707165071036139237258195680645283108449490276640435555397221842507835546569280737917237087277265166596929278746033873641118945126400574882252821539368287305251954846875571055356707956456890265258800794992047585731319701718128548723251535613482675716218060578405801197149038015581440242957390174250923081021883095029739283300613375445374714894720123977723259305265876590479121900501885854650706121493250907597525047167227619122069648137123215645261314377388343401633451997584379523289269782498041458287780540159327354164001672292144367537020874786619567817731560218140804029638057625308287718413189452236337865926405634654032741735397828711290132938277042316695668191706506418083560725395186453856738451865898129410361292167208631747615864220083409413312410565930497070048347744631918710184411944608414812549352281211183818314040583062431312622295078809730643026945031728664670986297309871478564214520753564212848471624159009504874087953557677584531471007030240519636818615301510533918682537203557237464825242659641285950687254656563158806080087680129549047177319771636340653534599041952145724746423698852718038370927250213812215096689927611216198987287566488084212426487647429819459093639224052119683197691970027077712416630275444825726472873376285797115161769399556752260943067594972226912032472990957748256739314081571508646300509580768534962402615253534485171792295909777857924265914498475302457540679156955040435342681643194862195836491112493774521123728181249928079824604201633260403040178634825305918725965310892606811321996078415238413633808428278321970715753331055890864038051711288261296233947173972870783222009720054056007269326190262933504118382301386104737918087173007331179791140869030638769456185941335716225218714652847663070727061170324732906987652632111628360770608840595431559562740363263663739938622241356749554918433519974254202793350724675806949093083729197885531938184047369293225818396622868190281819808304440781745617799620530866977444978574888833078680905436195667093738228330904874130073550930488609980599765336970699033384630511334002846055558901969462031566021330552883770348405410293347877806964628195837459904407073002320459965123900687319930127830065517081486308299157679841138273058546860452532152400076328364004940157479843843011520426943790656222144242915143435853155923852538614597195187603692655130913956490213018008866417972203860184442140721280029079836919908297877679498543270568301072952157146802317673673006653896834894075409888146240662090799002526397172411740475899658900171486325158288021803781223444791697830015366166834122397580340812330466429530007397310462196423826538546702565325709244018561489553801617982505470091897532999962481704490616041254255741217117232144611305526962943533966439270184872296578934825958942167295075381335930517379021528194713152533698823708779833847520871104627735857275954195262564416677452548710006681679904906225484049752552691591548567784584440497854999729111452429290546063652329682964747501168188944762899728250146575798539635441326435123987966647581254513325099170881922734554734304330999771696367650795197070142755168454838378842083513168179089996021452500675764427114256086311999420060454176514994798716060314365132488563662220701816803468823449141226696273392420848380224587620100340202061963216432686351161199406383100179597834180431834607346765700351641890584790161443907422058853247605230629585591543970491754503913990084690213249901120513351897178523849695729719718086570243496199255311638792235076047124108715426777439154249736046043337547513345021475033370307255401191650602885743791578044507027167509975938239530085644861318257645194566882656315671483933808181817221595714402563565766670191930490599260150950229633256795899372251444920669525055916586113514330358401070856422419328616206311672719470993833979840855528736630803877710598582152576165269619479419211022729267817210715523829447795987368169687157404694169701161163084115952659068993718867949476912513151284025131587434677316272132293040619750280647242386269077820458600898225189557566435180011416259202715120028592149951252830787346541425824047855161135399242812399207229355264952095788295604733258220422970202414569107874983933805162675234081302869727636767823586206838518431996845402844769709640016713849248989444891863684224652444799627138342602826774689990173511895947612838613364434923262740381993906949163445071170733417469501368356475586570155025592464229361927168327967068392153309501637017342869164294359021708515551881305919762068265383365293872181672045596470708765167986872850438626139651217493202771776101360229844010688878394039249089010457419463805977180302725572291314475966432668033230794923389121961512869298007688918178164638358163099389763897717810095319377914127103048795213660769415034081900324032468208375735178367184269010129451235944157773371837696058194671868294224338506074587163995752926515436219562155878774931748380646981503597592048959918385044371213610002429077707902210035452957232941760125160681596593332946443748018757136092663368656269812285228919438702007947049464516940634850504684357146002744746243087700649013858861364777484771141966198712774250488847142230999238521416780637314923620383466525705927799544329800282081184318506269429178318764894939721844049957192685363513283156327473083694369205870225781985763825168614561842029151816544894520615818043929082257648312867653702436944811323648861295492482786246577022533608059672259956239793488481541771773618918091281974969540813641785271913535562835457822343244572649279267970831852554724876503252075814734784913432805674579920441326249253806875002593395012595165286775720667548075385826548943367527296977200189749074664482857833723859739026977940154708380345685017933586735128213977879189617581176566006340861850690181572159446891902537383819272009850257237842379097698815394706387603194371247406461818908077918426921032597016798101746277498938695027411637221240926227387161457608546580376367885957251133871643929516271861202765321050337448833118975400043157436621988470101449446630885046704329696270415803043441025020702742461952008485608931291669002990071323425514250417985385562637019592406601584469855608878623362409313877021702011977209351359041371490913810611196388380378657384255862984539993667321511701394792798891703933563955108644549440068844945631967917361641086837587127106697300098966711737728007603212411766985971923843778562153181005397687902455779483975738019820039727665108115335462328999545698213868984199576421334459847938192170116260927910569911600866209364184947925936287335735144050702107917492921726139761539524716966292791948830602864950171210216905407847928574355055221541695955924773750790162443631001555424685532342885161966644964539415043564586545327688505389268635341551119272975976603716839676547775395903219247537034899325830589787754227284864378279433499014302863708231233020618238333736104511016964134963148092641203584180171805886417977216791897851559970584660914290856634966226807879769421632088224490558905268414539201757090162875625422155947427342010055362696872229027627551495056948642273915392991689595341764543981935352751719750853197300924334032076915145906987047454610355112426838014138966839076864472341694250696427919959098943106396451316437643264025549298512288562624671720868978796030327624127970184373025318122221635533759745797677700206226254469258986285582229815659664435434894571731331762038825209496910443745418144837904869529397368613123793739984734969044301843525061559071808710420445436183671004269829006205286960691331649441040802083928524085180422101405155259001478462388344410186220656157989782413894035896756229575262284514174891687292064638228186498987971934978797032834473338714632548385923201240558007430755998754221542397275404282350219556970246500539266167257883955404162095727582904226386039026415043128653590030738524682065184812653380426341141425313329799124311171394730900847386926519881464924311586491389628107985482010399725528817697061477476265842136983520515969926553153402129795865900258464509606478362525765651665860645631774994742044059675901933625993899460484295949570485345799051055247967611257570786967056647799930888769846455110944549331799631037516619333460447571185239142117194304083934517061340225692592696620716720058962055856395535686970134151678351773112201047946480351899560493726642289227520730977513963572298898835066034830798115645092525654543147113037906882144010021581455935444782798142623352001076825229113299593770846593833620533805467848870616687550603397272167330884951632628431720146846063360066446685304321211904811774563920893653356733764962540006583223916053477773987238653107104983156081473358084186556522524405969599958788299200147679886537338210284065808374814620665880680800076917887841703231928094068668299006973006797179991042645299166064663729836612110535265878966055384115678428435395530461299908767848051324761319407335547041298758711478034301857468519441071720917457107471358395683841503456946052790647548395051507004501838950758400560637774062030633284758318451669047608787293509623871628228287315187504330591832414914694943755939513058100486601796184152480466924724662943252838642771137938842502770045212031845940251051634890310536396657900977681180409920885110454685677210227834812039931924111589902924065186809046481175270289108345456073970251572157089724964898952299538445250616384129822100871426524929132761103463372672455218940873482148412451065561136279111572527622162775038561336015955747916888992515495264191363696880311436374478851162145491485636486661757111263158013800257050738677836495939353589446503606022656726185873417193479284501819379373446530561634265854413498520673308151886940181675498844305541115379231276497564911273726638416137269944482802436258559812921157234695059060857837379613260271131559354278451141067244870610344210442826535735626287968955108400253224176459143902090634427012625261908990034906778534592590565558852066097835437007656862138033425434837193192848571755573990310657426220532559227232148755516548224085889435060062594480279250119289341978826000191594917448816857839756860160573493983208707169641320300951438764851769029295481104826256063997094323892753810255088905889224089859290429969423005816577428979640809386802280682368558985631684969070351189419040551786843352073557013739646318152436999102019117688294243842853111434357927781282795043923569491519113315347881347933356502270406237809642841095056152126794416763567566915614740524926998495626652566987973803768300642214209410040998557490088242946694117466170843998261592727229179760229422346209871713548154632882364241484076289751053443816855287432900188652669075054043346021553739539225646435717828773449954484752369103956143228150056186571662077429874416254158101984539124980149733748427770984212816223287808495536415741383071442220004279123952514036622691874527734375424594516561541551870011820274467487442156028853188566703643656347556630864209684026234693098590605956357989352462571771009198788010401667125390265817045177945822089283706318919204092436512568907594391084578332245372449110502401558164675452204123983851280797763521756361085957673154417488019227478120966143696045783846748217399801810980767262024528357628914723775049937149005955732260996728944144709813064381753696581328855529930189151103381230435775558455750387986842060893106608094130227990882553941322708913141209598054579656646696245943014149162690828135513419176820829474941650809546335302085409358761144962315510348568688403983208296719846154494504901019115449892255929021259842953837485220079944685354919161023551021747006968450471141004622992077574572756774072717866211441086419302048522589815601376929028559162699950648879704913940811737823528466438355723424825203639648919845623699175948918027567560160907350778935752923160711806469268016453635182636477151495711338860714445256969719561453837543733529141252110036666268531320848600977367284240974970648542860847603613128944544141260031348160642650044374580864059106432063681708337031612981441302480804377298957279340589843018154879503522713669506543254472114459872195424734257627213025564479636932935628964843968290310524067790538438177880584697376163282315672797936730965659889464644094857165199113429371896343169973127871263666373864946678553550514930364852477660812991999615898460460149145659985373078122890376727390966997793218009957094085777921085985260172786722211644437444746192900189945719942191660853594593353695421564443207223907782107112304906505830622604454557365031092727748145735602038928522636310939487867747816928805546047078881304560448004120533719700043691347150602707545369379626583121035220766144512976168776786693174829318235781732892137393528393518356489554641004388485114503956979995125295449612508388923879403416261065444799137613549103349875522121400132964128227163181092115235466540214120655185172438354677596882873907143877550788198486998245197962343363584160668148033190090658769350021828686881226371588706351182384175740384454335047521658899055096158296785190805359827672737927851300542196852884370451104287096088721604882572665404150738956758598826203683497694712702430483111622541761754790301046979593278914210945212280286374698343143609322639774785533251779324068959958864734418582273368125716200991185956639038439606515333124099340136615927544840264620069474170690713854548322808989547867904003185446611093629164041252899673747983041084340638319820960171719501279167021601549242101848372728861308104657714528483109642580431303636215377070781539782654376571326128114919028851123448647694688125593823777400265177479457577099917028824190933810059727519610599873509010816104786703055109830472489339065532749872646845172360519312341831167863290941205381643097114861532802157265014548736479206565038344368561971589092608651437852116880358196201338519976536226586764982644060340725991412805349895105611481455986477127024081704496899095370716337109119486539875296437443266001185878260334036068485780531886603136854874200975545009301594563674680964617191997226519847155796848138434169780034752470207833610159924810358633601858830798709507590378294488880238045687648614348507543154793322176055653629490708606676632718688972135689850082335689641988977736077793577203362080285991008072508968437512723990658717414474041983130488075221668230725804400832734445264353209442361906475348724387113160525599159151581186005369076319244490870214103009127661248196755515298334356888800535077142875448249923825466353401570815641493564526970840965499360747401637134563885147068664287996006943134679025095056181824085665272143334090055231487478809354331094393212690606335365580385280805749600122167490199602646713938912488999959752625216289344423355490351243691084465451738562780594161087721997569184411977261448061491603128580741225289523464900883032640164261168270919832964799970645886641054731037578176255426286040020799570651930948880045585869648792751711796174770771762407352348175369896871925549569757858230292741501925906924996239383563447935217410798580902419839135191041953816047013614348144639328652856877821315439724508433515560057978885986477266169834944516159919790047614895258953010737318898497052065345525970064433844037216685042538739466241050380493338037305566988089115342916683050329246675550229546559315603625905272265011198691226582809861141475988333061771244543152001056237620012644373770512105452766726483720903302353202279608087539316328453133922462398413386864209361465123547217263220299152535354079975501327344785801060107152673459253559363861421067214425293160869679589006674008874761204534489501343515876329375047747426846855224295593267349858946704502936796373344902957018766721722938637075928035362209191203980967593432970047541752980990476574505065574234597308298275779654166253194994111699537640465004075543225345568961414435468710022432829878440662569033892780388035312225598126554496765491575913117440561884337654742407760316946657230565287583330849124550220971931804398785291623439085069157833883400488948183962432781170499431413177768799149035713820629682174512199076295771097817110321818790700199959974780388262417691958575684888794350083903050540604550362347371471289018542063312690679142785023076889908805759383453817826562559899765288196936309402663605675005137848490008702645339924726210700746277240769901355201197506011719818527528897989240471510545391621621747787233785022804425909156196311490203371664263770420553507934222574589371500703688589471604647008530708983107694145700539053686436189102400188018519714583774642883590326840888217851017252775485240115723835991041293048193854887390117228292607358087996936897557170586032689272768163746463278153924743848849025818612211573154597619804802405809157360358417513629548665700833542658201745457216554285005796618681511425759168929694352957825836450112951140387645292670990860521944735474382795436835941056726406497342836502730909922024134859505473172496122058591925673500596028072154439260498970029071759474780715308507935904925348759729269396518597231580787713888228291469495164684179228663942289098922468666919003015506690761230078221905519311219700846343814218891563300319423049557502691675647879264147026668462753787494650695415357465236534634200211712963911775331632536866799284957776774011883548762911426196116475277972766435725579802775562086553447367867788219987528663254728542897632752857898126563095385587255767699682725788866660360078624644742764565216195939340350022501726604286370403579853356669915553321642200740620497248854600095708486370349873596017595975478602445296021920299895716214401782909623719788070480811043529751661108919223950235673699500561336211385519197444619226734356880855729390263497074536879809610914174133298333872356945139203199000548267234863439224511056879773192212971359101925065535182051476293407336710055800062621876878807852316908232856577108364740532197138463949758193202660112004920540517093872258662216310293093616605820043732563050349937345992613649622659383457236660256170986432567665292657370152031552789594761579643933350517192698653100650644580179769285754373991377223486592053415425640192205319581561958242564312563160179859502729847782231098632188579380080778773234377876700297334415752983557228443739923726297217429465401914106301356287633797766469939616550226544164461938989491493483902742561794152469650426482336508827007147567651541630171338447801481488149881242582345283250867829870312740972579677476979173474977481465637775146780762312032898926535575193518800915723072818645633658672139194706627611961939446493810480433381998022087912458815399088409769394738028679274049449951625814687755134395643476725533443213268328191219820175671184745680861935252464877847183931626581121429175998458067477351623574499348669369429176713344081873965407273577785210985358901121357327750914625403827168415738281266753861415343029617005285167312164687886552680569203371691907723658239026857101114794642435143141749169108674139112574386545445435065151899766059652623255064748802953499435706763359384915380845056021290576542581680561373694231932694923670694338958588597501309023877580242702934365341657081448097584511006178216449889553485686042201610627860563019388850740816838021932884955541716038019407556185882854401096005788666995464850800819042603223390835336876385362575996873039315649211973619910701854251535241793039286640646699871275958121145628808088973775895620166421864216128080376058129612435162268556673129143631943363026861401845085456806069571346107513878317401417005696117916488540892747373249727677896795365034755414295142955708463533205743023609364305006790943130267128294916256941359608863394583841109013734226445848445910067010348686842830127196613313599338353229120700352255180207165302818114253096695494560344757683918788429580840242966376176083468733953353280924502620532285521943446489316224025143939078294572080785848257160372919455113059844052013772596748433150704407920478587748246065671525623346266002766442993297836128829050037955045773460139557168662411426172620580647247919633488068022095452837645694450988968010661248977779867552859626786513870999505216408535700439496995499050288964666435178971030054166393461198936456440807073298610434396158147985347756875826569954220004374082614669711621971506704500668730209421460190644301314925339447975310393813391383654155139589952513880709748177411221461487507178031698051840648506974712347259400189477270220044698076083163035396061709206106113307648540492519078262042846012836655548280683729965967188397339249380731384529173687895592990419988618384248578804018507344792178791779334448524427830169406359494064412991830114225357987658842853994842422667673973309839830685940312680121383478735037415227778094804140867007241072919407808593960744832122599081157985612354224153744181825951382442120585682236248390249390870008830638281920558350086766985876050463077052366108218497075284114394156385203392919635892137177299139248028938205115429988267658713189885953730955243286378965788259704671805087117822258069057888795567874895398623693632019843659447332671273582898252460099522741911914494074877789353648160969044624740788027345756185654716864253416654914823322621994285109734763301787778477541137826216942426292523378161894952623720678987579791060786172744232629507692316324117727664298083120708210553259151580864861825959251871539622110481836974024684407951236726707076538665263845868566388152068265257230469367321699496848901345099300180032711695677086358919002396995779305307044304241096237758163629133853489772741169128359880526666918605750052817322315394252007580110692992797578753473072112413396689944956185528339625841860217882532944242783638088042719519874990402851679821219491671177294485730673635075081037684092165743560788924096108682222643590658551484776710314820022671275902107184123760964711140345203635999885980957548424968621489622214386025857144340229064262027635299151506380179560077459640756605498179233186306462777620078731141721994879213884837253046454466732492415657192785934444971419172170701395774455783360693881131234631189196486942895393377323222479907604800140851787949465387736186005915754840897332325578274595971777265700118908402088379192823020818145844555207045598290386162429990413405091205830780639356748116697958968002106918100381540873818392358648822859619406565893006389458909536842699292838569735086108348185837826161647803875048139512393271954250595795522158296532322938410067943681538202023977448985622715561982898176704027457436840119146664366764268424798307221683060979117961471351106988001205892538157150178845803833461055565254350887927866144382052452008090144258937316204281833431398737559695309042816441734705574906688542774998858962103129444683356555312632763630529051429299798631172415229827201924033315479417983747836789944006662138221226766613160637438750088490477779019642814146064371951642608259700270433961933938667161393158061962244201460105572873890089165230170642428456804198364724356244166323589931389101405149915442314319301028287865801893051948925221076115182340603114734773741608909938327234946228589572676807925366785448370730564266012575815217061594207805818223949822956007446544943711839757862262649238645891218638862477475637990916389639646528784733984500221827925485887515665081537602372920918662429441179426144229226398199382977119388262301656026893404655452905155463968112238889616870288104480629089529470017227412000865955744243940839939523296241358944733036511537266921709598893798939024796232587420846567938935448287205176550329120566168553769113126299984146111416136374078016444249648891045389268336214442122193895003712561557478155114803579918155443748775704117653180352435448434337471889580140429933365121135648795036090023723490620760162079857784518145212294365776386068335967432280089934292119460850681765056875079574306623073456663048880392223393682073816850065815406147154383435006064403183101371446136200133509111686067134851168627584219181686792132513626841356923701898571687210285952923939012002393922742081115069060023381164240379541721301033409244365063814518151938736378196069408797392328364430666583970958031755017365191215008024196209969428355767929668769943963301454899213633304586041342750442196896993799600724943307592048763589711828093175947490402774008415027054971474889964842136079293952140833340161369370174999216456510913497043310594741081395688037505712290430502209874668134681283426600215527454084305137622654537590030986546747322985776296012861321641701537921830557392810525514005358069161128033130173009553769198609863405351918078794178143125904929190932815908310375905073322713300556352378538910523335976509435157218958964171028192685785051630816858524407817460643687602680482006628787606108644985230780685542335641469018885018826776209546939144630480289606254132621789131912693321724802354201018928062107506095089674670026294237164886537829055321233556552478306541303089781205723995592935123038745863436418517953291869732025641312012322824073215154085845927559667131138150774195885155570208103403760843394987783222305239789475222025997845752294239272153826009957868550640252476945278462312268481063117286182339286453594139046365340364310650221644102942263075789445740528173768381759626363644905500967414519943571788989379928632880263947715833234318115137531752949156768192931244953405077813543560611541473853492896152884163587155978058943204841233867759836885528352745284551241615676666747882530109893451999754630055422725869750380556349095566612383529691997882992200500508774357399892904749730690781623017453389583687101231044246216432442432919739620009877214143713225750430479685604083508727981828293585472186785023425963190406618256903616964432214213898486206943364209719808132416056737486960217032314923943871716702674778108513725490571145340849836633567274491619334429444352142347743200626568248754264200997766811421105619341292178711974137191786018130881557161926149245210011669184817565744526097302073506227050262130636059949486229086591786881611824109542196514442302799619675329266518127924100091805197996734531787630787201551321277555326592139896699786394254663429374264347693813709104115581260492676296007450172713725910160138585470962606296229901254463267490725014381536265319027150678371876409003500474347986341975949491938286290113633362263638329780892647631547582606273029666860923665657393960309236803791912861615348643543847125820534499691744687820605248892009214654495585280459099080244443983286648931574149385892459287534730308693732254654842955342152719550423596951609120776962389460465316933999703128290317916602503382710818698718278569983363543307108566714439369827805093504243878168217993218555665233818650499937044471351480502247853166148009809538193488487644581124639860595829159491209094560818882317191124933203264928589092048236367789497745315892822513722596818422206470307411133927360853782451790113070587602184579973473467595852699237560803002990733461103571018987299411640562405156632892846314104549861552627926228922671954155403448700987197923603166649185465018035138811750405523517578753334976992973632599561090285339983897668628614951673863904736991036289509074413297146047160717564216446724868346459051904385186678421084801936068899889051975918698104830246470322536673599533621522261730637990667799457206934806097331626229108615288296455981196352169340964190229573488705452232850591876314956671838758560023667793912325020215849376382243649999285726118069948650055666914114480594660685275496806779939123513380085105138799295180022679494377022386091424549403512239090264191836376138465920426328095523332631094382853801239090580991766097497407226442935960258431147041281300834422879103674724048939039574340611068941497210212561437812049100190466913245796044813488998072865409109559418568795654294608408449817567260740913677477677743227850695944667300474949429842044708227980850444776665755098827722270867428091690720763985328073325333375657173808537596819185998561067065844589991216146818346118953822182132706396668735157594708750185793151064565897612057897515891088766833303633443869105962171864432981649982011965112126201944224518085255674172598966001969435956084339151614124570531139905980632536191917684265939334855142614543892723592020439684701914265308295380112848631308169384512720016078968104222813577891161129852599011556850733394660121646933130871235305838781546446167046523808887779884724434934508690656611654894408556352334978744569172551562593427011746243232679932601737438088210319153334849967694057153603478283214713038125903140017844908951253431138853916093488317674085869509562664921852297724657330552401126521375457508249695879940004186795278337757509527902676836678290035281539910866612398592903722963586446235862759998161151001798273651263895264313553514259850119423696508422193360350910040818640929079654171322888102646986716898343563530942166088594330329995059545913359173286767585405856102244503051229045771502119187911033681456176176712404160152361745196827646549635009743116128362656933679758657578911683370381103134864137084922027565695073014977243003843509368258384593640847641988026890854285180534744075037250397415043334438242972717245348344536376205387216691868556112095952163631486566158047660491080692304059100106365030232702660409804362863201795533593030131996990753189154500729538994892400804307186481163094845742088238886484889747259055972725744141661923578994476373206511201596098554632793049704537914649588006048439281740838086565046288946244270774124683304979150620282091831301946707225078131269248870879680694902022781661308552402025482043268891881509573840095390202612271415444232959839430197995636207668976795317178086781642989542053623302934041017659619801146181678122399400925747785398837403185889238891885130903635159405894031787175095058337081611076493318979852985506681902044008130342992793140518145027301827993606631240708436728259304536901594192504924028129046714450651512363407201019307152779668447577696694292177488603496163312542260348834818395750150018528636177779065255496422030494083651896025154803704085145086846973249080047222680233019721358909475195133931538844665474442256501328331391042254539471653885022822080522996994228819406456378637513482595772453102295266597423576727991022203285420240063413200800642996169928708040585519299377391491154923476302117679474756790638790747384391426275587373162265025481033540368794811515391333034701017911514481268186949010034842752495973319864410316828799477586125566105429298967429017713009791601666693275661653703727943111945994403926838023162620967933244597511282252617660243685965370402518449500851118516576290525944053793989603997268898316611398048344656435743594615120844425645716740085998814861931230654658500283909019470542745524043979840536946581952531453181324648310827741296874330061063165573732621229651977009550012415843173567198543717241350596535934329387764903523280640536842720202963719983644479505751178520682688480373739780546580419238755631486050514713636068887897847161577082658413682770063615789184213469138735585298981869209319647741897741311277369916546786678068409571186129709353507276225973543003843491041022979201050544829073980591190082787646325600971300706910461560626688319675031209391873119519177819061139394217748458259840665776110430777322672032853796165604983353227310296323287805686055764530599886153347991706738520709602416684632848078113552416231004383735796648518493058542993753975923039051460919684674155914753755232682267938804745138060609039946909886637615265920084517676587023493871392454876369116176882323192693763400267784635168431690318031990247862570007140357227603980995746616526108394922088560700172575051809884298656225673387954079675576098946212789978350543436225612211172630253881899405904171015975679055100010058809444185732561334882732311009680704633129991075610220950964330590496274226474683146641936531625682507358080554241330442908261975363837617799103651015263286680018038020438237197306890545841121604103852118903608773213670520759182546985634288883344137265332942314930732629465917391220585741400582026696059880121714688427749530677488341164656581637385660691825432838344705225264793787110125293554459945904266921196155949747532610464559862680257391176454821463041440040660803488762501341478282068827042435484956863877077500560176948654851111272698828204769896968438623977341355569817584047347981526062701100616252478201348023002993055812692417148443301652427567751906677523792099059428135712643041685664606655950941784186259929025862082644579817822891788526640816092850259773425689272665040071649707846764534889887292475390715777589784612297657173754438608982541132608370401298749402432916794776721784398259408099552419904001603171993819812499501699393866608089576469560365187129631797656995549031733279121751350031383847212668775340052295351723449603502518817386545056701207386968809382390383346155357335885505082696654957533070277090881629346025596240773048613032554163769202345641131400395015008966400780050859433863219134603821172476984117402166575355878766679614662528592957785765890488175296372105077057801064804666732063942881843876136775934169228262720219481278901201496180840476516487570556515782928620892185464851029012916688764008661824121820078804722049473175806688084306068995503571747154145081273671154187238509571291904354440533278471542538329320079488521480578847840157394835168975784745157064486676149102203396956639498551987300420737108931510972951186215637738559411678577331391284437788953478559149648682854606261995201782009618778989635509289251044387472052488134445065651626490931443192379897818137025362487222625779705312792041530012720613156237877502949787755773427986114992827790801834460241016291869290263106232342366767709033531491151587454348360720428167148488915000498469832214528889105739425563087481964550892192100461768474486701950586017512458343993740330059979485970136956243686448278331620790880155525211923768066051087901289681023215440646005209229834997892433455693835911103758167177080080691007740354610162343329972949445382275486201028835830214703343493998269064612136211470618649038320258050242282967181605625780277918469834877064609837330661792269609499099225491584383418357603527464358809705067500983867064071450085577265162120936181835465734775859854395263307089635825228861056732453269876532497416891647909570867208752050140018990467349906273488949938217903275178468792589301915805072651780028436108051898724757553966592050607322471827510680215599693440522452728926986513522170159663335627384680540461718387207408222204171410295443020695369134201635691538894247610343028387709053929856826728496701317781474329801441417511094469103170616984585645133697326746256594810457724093361864212398182764132921629342380000481365712169583139626787689600605883461130618949930179873188395026264073649610232850221429046871854949278983530286325993189591053935076168451111976655542473759056489010485753457684486481858829585980286801261988907684374726579802383803128896831445913700152787531216888702670995093512719965139470226781613412701705425430006440212662045614936978619505006958909251664300218159019056465697510873150990090547699028199794009116420338090258065495736350724187962960861656752617316472425800923808146698094867524495956890889012851749561305316397485947476756169351783969927227248674098098322119470812230083146163251754595628331560891845838453423638726349044790682357090028778129509016504497162178479427909639783095512387873925432888574075321372563901306634996463041813619088016411017665373455220903037370981120217294900826059502125560832703373106713951775443060534714176857748121816036238575945417215404024593747974186439520945400829764483658726334321917704204962571702002919308607512545041984662194707576638671083154691461442783614805866460769643830924362096974237437381209418478099228681024996121565095638199652213360546068081914957078786364803752487671263643756322218442322769999976489758542204595411036119768267135577472346350540858038071361831738853822135791967393083665123648761743475113289038796078673009792669675209915754693874647915171279677627228188800560861334533097252083123055103072426638836015811992435305801452779786104615527449461418915244168931295778320946462243810095230364844353827486636807910678002513481372286552288847618747334612683116540624326936068250269855860172546162419802589912614847838154777167566575886343074681555908842513563685198248831044836200238318414949597971096779030181313415136675875521463332203077461095660854122138000057374727696091657792942253051711620529532638052544554331701934585179502651067941131671506034880865904827384628867620576457283808893181797793508212652416139865456287695241247401947036856535794250136499907223857068000866941547728673539771293152301776005635528570714549934397288655587603260530695718837007298503333235828527601842432461304028335131511533462696522608809311442506659443177612144561700177352011062496108357178241636394218313687640742842452070965086628652488391982674153600120044008700235726964900686624284636415354585707202056107257204672577244945641970551152643612511285218024343496624110019854484418293187305270455729830637248167787972524577787393519239649700127327349688636684193633869869426098419950974998531982060894080621282878995678804726557428664520762205819909256515349707195358542055966171997774950548562059996482747660441148166472751795868630727218774442707910388899008020102135406866653379174395376478742935882110333593645620249465950960290750562924384631283198425904050973783023037059063994838613166004262235219802973486774175153902479823498093366331959048898170091969206021787089966116152432370051506484822609206617900996518080216068986357915952226909458922015071391999556501116664209950519292373322158940409124654809127754682335696801803021340998079284994394071769486092919195542918823637797992087191338268522841355223252676305794618762593652365761362398436502762385391512946943935907309992618230898779468732231127975535503005708319330825182825454913670810387843162211497598722431530867305345739271605361171565291112334957566177251011354131622273778476003823071559079516444541830481789526304393146623815527912797595269349674969963446191422217771152935675689764160197491576509287129035371317906130566825845266358640437065901975035053815018075973710570942936283019804837503204107868886561694796728257246102318293793184931578647830691271519504574731020473071916947035162935924398329247788475890523497076325568625492470374270024072631157767850748386829951558322893792547237642918355083944508292086560081219000985670902891215578101559442649770015082260057906765071147334460077348321211545156306836813701354704515947276560094046496446213784019890189462196228294654034908542191961433331421907385832654859686593649312949231494193028746853401463300323929603812622810303834046311861705272318552749624946232023398951947959092559743867779393943542470026885115153382099534903660170488890200678925512840559439081370144707244422544041065571638504431292386401555801969904592760202571474861726529264475047308921301948417832354463734403306600662991097309151922427413050615674917418675885567697074972101424981137412621710637388236347125151169008122291328892226701465043334876606163194635752934531776508663814002697733579249190122663534524362234357366422836091704221377976245183475940632064033756692900298651236578637824954568250667571266486192383773471155135903903905035383201533543825197904528754507933355471670615400731115095584790305241661256742228743111234202605910197524269260770999540461213962614409811087995889754107588550158313612974111116002531178328101719468351509316149044444600074847120925955535023074061917877048877614397925523296548628598415782762054819441355828144945507683417468669606216097499666083242325145730119669121734466236306918207734232928697084516623454859670596715483559744878963700346773147634440591820359804360765864891047713634639639994119870376602028685508192286872804189496040572248140360485326468328043108262722803848973835418669397518352627484657630955150348877825861611689648601965798820088643219909679838197945675573286412740164679062113682155518353739031173661803111681109602369381377489653132617070827548452538052153237731254314075094021256287398665491030805071792882823556838042739973484177024627843642992526827904954902602203433115705680746887457025630332843709487105495338028903942720423287057294950817598671665326783442249523570840856478709767491076876123594733765096401548854441198454637399250965998918050872643638403057413985280920242511663749054099087881854906153408039922874252868782014122684215222068298229700065304671905353907343602124903935004530363830830492143678357635455209561401500391801028228305091252731250197731450018322573745279255341914373583587053260872964725567672641777722555163361942222202085231095291666457259909140059365540677765103628472399624819890804920790304671308630630793524251370250997266082980477218460302442613812929091135057532693400231140034523566287185723871355762721606365582941540599649770061546374926405722236090808429491428979880465535479744768424942798381971482008332651936559542984013452201335419598768628345665479435058694587256126787570536459968180487937936426859627599824674228209498402148269527261628927596874871481002250527668049434151708651149900629296389473663392083089180516870314752267765434669639712834890518086196060886665240013480225548091568857773021785263140398220421740675746101830523352002033810832626274949252487677372998067387470596831693413196995595988568354248601891942393037407140305675815763543875136288939290500045792603663025259285823449508639314059595720187691111779352637903148821782490404269591107062804340518321146948424552057237498338521552743813437538385426962821120964741895479431255622641426647664256674975428106369092247217370177582825390542635867824439002243134251303040415210853823903482755319478377081136040216846431357848271486887902526509447346444626281446193558715794299648933801940537537933717516180142219004440153477576415489869599643971511291306513770693079890443206217535790119427615844018290177655155824272506820517942523004142125095367751195533252990062105679307551303057142647999545928258506773276662256382950270650281705818596262880170800271072959844683120874852635894477739017063315182742731746207513219952694475982530638140264850166281754955393574616899627688821077984235906891307070718277100164630593798323664836806677271658788632043066599431455638886580088594355684308779677428686037906527744821209927194332008499379803824384679422880622491568375768672916253715595834402859588297440631970818647790633684665732827533290318856245654745966606056669261824973409320188409167981353641944541825655271323288515825602162974619231892201056215101183148773470788358144267690184204689259453446301460253956398161732232929472677956603234279693679157862618933579652108244838715112248586584477836886187505120635440569927675865364753306800792759229094055372359669925468374837849585512682804397465039611846468008804480821899821863640817716220264350994934929005306505036487961920209637531982059971611833440778061094625240175519464547877349557430982028626932449676012383606615589921925854040558768360720517154715093337184105390221813102776053439869677914406361821334643997755616550515542893756582906022465294350499692372151717263848221118213920766979432437253344788731738553618734031514034446435778380824605817300761782696726684776065563243599174898281969576077355338617802917513985870780265085439059067764812195910898939799588928105898997356965111652000265148362493244661859643899430064921532130021861220169571671127598324157532627253534559682126708902722692813853912464969289478819664825968997868611969280149154262998880780864763590647380053590759487220264732813954406517963429592541990960727113675649525001665642544954408318478467103776202352736749140510641096375583998577877392405377972186973646099640649027755981401194722157267201316041974426934859914794612772880331646468080207056972384838218697245673882074787025260974913913294535618436294278301566395996727932398098510380950102071198916618649037160831258251492305232591301747301344270628489502559825865253225982922728012667774934375536308654245023035219782589380868883105476421511071816839504599457171248533182522966403608676518571630256892579983808388057549500274637120417281788944434245061647885174874176435967313990695546817177566440715213448294991549637271679040774606020587921496130295754930633129532814464689618833460172524705841842810294628862113581230203659941319972572678688560676584198499738321383869624491590339383995798255989277113261575003217175642346221192777629860731352559713096525243526217229942414523331161068752141875792583916803919824347916423028647302349923325883717306093852856303361034403462870418753590450408396662592144466227065132733424149119536613761819252317956451255399783869388552616005136285440128886841309549082516125109513234899796132389996276024197673765924017640042551892769430579014684693733593549436968968362282687402881717392840794563216659935343295651373446857951520962428651385618997824761196372241913413773830330281906447373452510369017459559980173312891700957182220574858982054116949734471867225133405496830342276302219996539096010273593762911592859273656182806331607527946058237631815357394406699644821107888639184132666677552212372664317799091068591253459000650249252497981334154351554912832131954608943731294227238457253875358253852919101234845276793013752119427407058988587709372449671732488135511167726071874485428393223030075168868689767456134408754195041744171713876628515036995418167913758225194074620116726791273621713676156687968936531696073723672522562176529466294878251118638520241670228190969132814078760781846977925024537866761891862265963867462124867930418826489208275779154046721621411396657292417562713083860840968461621764554105505689854993015079739936760338864078263119230031093332563007437541134359998731706185342740432846848749358411831265792980562427084583585157928156742135701163967962185946621038699889315502359812419241074556081570558042636015539816468728476915810847764396437735575944451769837766306304525740309700184217269649993681023598286194123580924839360210564450812971084774655739260627640478339114377644104005923099133621200641914354480873653435603317287990521579973081266291168587244843877245760457682901443136392111912085963282164925135219947795393431751559597076849602121637709523397555045808805533169705179866750569046246984486885499307766182234109588653591693199589281709533930583751335970516476132874549584429492274997392858140130570880632597160787861235667530457631006128361232287354601340847702736749407860107617262630335671503437035380905818501698536321463244040054579956605604523470145354364142515941808157299293470316592937986801116366460086142209917440952440147958524667733306897029186767432527924186601063235972738349461437840657620216734563624429986763987407462148261217443920352710646870794237587316592173331359041063169279311522322188271995781092735307273198114944451341244027467836589665184356651030378336502809793594001700568399088616971205062269367015714411578632997505717725208187781322445300425836070075304505191657721900796601241492995456107443443654015314992013945300274514628919698376589200729220871498152501358284375502490630135334192867062905149946607733852398172895439115320800555634628984715313474383179159096914093547600623257377705684865234715299440804439708810102358742869364514646919869325599244425360883264978201813865233441272473683981435950022176813532696170785394348947929380668160210241206740010863190127091337316846573601567999529197316328890996448170591155174467898131237259900458551913690462486835373347511646707450324104801736098448196554625483378459304002535749261421174326181127864635749589168934593990714903312345117554030518798411475255452160883751847933302524631938633007664917294811417847225728820908718495323106371542865427337117669070758577479551766367305074170383325655923636531948275376623545509428012617943972429780175816400341485162857051189848940009597482014443577364486647140537218109479789862961677406311571236926144256637916388364812178350100854184324127711584149209960885358050040035415671831218530305170905582903095142117629057205185255252799708417338790934663522632367439998671692051844923061418123125975592951824890294199906173182734855588443853779895710972355961427182903790446389752971263160843067701911813541976746311827666253372026887327414665442810017414120975112982421291958303796780932223332756492115932125864695486515508048905832260008689338264783580554246240498956084950747082112234065793421984019212540256723351781943493006389926480621315116993729820076966306870153075458051327488305116331429702806794552550251666107235909965629737690513200863996971519693156089501348989458011190905285523023584893295369555944617344721542271090046035838297364540729984567676903298484083437435228948566038709939079992408013624833585956110467426925218044826777278754581986255251418381575720904779859720848697851164958388043755670901083561482786431112472993766472290502082917115650938901844557756439985522365933075356380420231762034280689298404276064431832861535630584293276897018726866657950322702454140401951659995632112777702059343413203832713055445093957752333731261418710718109217338319451302642215919018060793725905162292159854290219597428664183388058608349194979086596674854536448609321609702752461126262356552654597701591989570473349219144896294244168056694837957995968898389062934015005041765373304356079776928643901507365437175189209220941108974363024116611486549065248633862154964322414332064117967715990278863921617700544249461057388374171442087916137924149568326231116129707771987988894399400678491249003473126875316808762834576323402773252738549921168523856922507263743112331004551716815948714012699869556302553606229349538192771905036908512759770366640838776015857190232405278971377514019215416248663511173282796198322804218769807957033129254867700709576763116216895099205256312803581742428685648709926456816196465017415107173605326477392754644762536950188264838067496927650332752034785018830212430458814422063903863423040629684134348276019459497604618999874465429561374812593363786537186734615015549953171846566308031832336466072346384099152703640920000801993020767088405987462136665283268538520456351848777696991027506674874950804964719230209690096674653704268793780877830327927237714172731564874930398073032585004225463453287686301461196479394087952816388284172063295654015845081570692693893398002004684981075867555349726454885002774930849955936613398347462913391229469255767845277191050041363130160429155470256957661772476212881839930252202646418200391383025840476239057793622787200118486162560894106585995637149505680006690944938460246912298398185884104434330391872607708501330735545364956122822714215847910576597973597447780213404846747797892220855509605210478924089873854894893637629104072011160215788318924587309294638921021372014514584577208080604948120514063513699622055892606748358754287212481390378543232853278783818362349757076600189704809344331148475813685232793233699500246342098976880344446175304435943305162885306585339437800032973810625943263513008883887225278889291947573459268748983055835538878232347525404422259052252585346924655193189882305677867092380383602594434739281318749058461799334253148134528813811443282573776314821818738660353804728929075894441844236016833713424262247878637863467774124545024862231799171242658977062639769497624040061396639980052073389118757429936386145698624982693312535699551429756097115662145965067972632744171244722895439321499281252505376695264700235421160886748475845892154235115719183252432142624268080600624111862467068296651741054055395924077218316458522701988757100289412359075982423191377886632446051877505956215420498439036976921029889935852944585691109497893308899872239324541829399351597969626432717448209531719115197993102487511327820181271115330626010714010354133023335407719280681997253459396622448460647763493939683405682652030521856772893365189775578003994740523006359262326415440866909964815248440084747388784947520647840377397040566007020388663041861643080481536774213402919273907632465104387947429278213415207803665414766379459505339476392529535536485799008698806245964111168172187083482254524842235183723990119599806169095561153341728303546902155783593057720813619768444579964832958546546261692766809965366477682999974028770519545232966778599051359205614653894964804166558709105871574005610747314743147931013288424157141541242611674404752612738029548172896496255624193695810713902939641118943771761053676181851014730610737414973058753411390595070395337334337290264783614507279440515525276404758718827475113182401269225100280580220545104154103744408668697572030788197702870436882620170256429798093792772310970237584672251886237803395658734202906628926160407831161404972082259224843975733674317910604815998939236176481839983250105571880640861325446515939086610123391344771664706415417821087120811033164589167145623485074811742021678124612064918308821918546507429703224991106071157548908702503818363139351525693620337154885870047673958945646764702441786733256756118932586518969004837886304846016475714389460526786194054340381475018714232213755526430449190514495157420197542986702805584574170876500722627932963396790512451615353537719196931848210582404727929680462392121687563302840408776263080439386808314711330858945509164890868297238669476382356034350121814141884258680956727501974787973605630173263337860088546705285366628534109409145400904513253007981377320445143819611449911588239597261340702438650575367075804951078670790655947174770323800880271733593624721248152378736454321558911771572214661968580445827936445350473626730652997898173419672957214293527902504696949750362933352105858158787359868223210370081447242983033626185179048626834035993397811997029435805549518190197188659428238059920580852689584141566439999094063402058807831556034820594161004302256096141006202055017990603243482139584368876999511643339285007786736736300928208080931352555962558286724960150711855624258939618858557357240166911304928821662555393306079192059810974468475267604983721406387877062501022084681791167819239700651403706498378923973294877924587050265831558172621116475673267169767075360245941047814455018295860706493393357320179558119072695386460107533647582364993044569388364670040346482787319015505908468707195234359681433061275623446424283514270618313964387909526060255606241341772124457377119426206012667504784580490063875628084193297133588387487915677347951459809953955382824511916903890377021696890215154205040582747069952543852720333749204708070748321531872081170328676172944863568905121199085380065193628395978078716393185525096888066984575401288507383528449999512952626124862035645073929907172138895705540483499784866537746705028217018467024552194777612286371919696227691207152881097870803259929412645420673745440704729276593948845100722191497758668409367553353615052529354597462053059224113935062929386358712693613581199322562560710746670678411216692590166893950551920888271337275891805610062083334221857829201085304096359027553688609109365415031596807041380109434932042507204100953560221311147121707812731623992129724464339322440700669983781206325317404272321129631290721423532495803752610454911344366352029892361284655749189711455935193777954954466619882688584299289727311944939426276393314464700110823378788366462134530845391676778063903087586239567435683390668340451294606796861497351347640449007016127972331602889788761232617908075979747937495029871538860505784428972334985178257609312210333999217587475639244643491413702702320865015050974535556356640928291252765267121771380390779592428468494926011704238055701370679869170126650319982577831626789670200871275610009405865443942394524245145030014257640996077322844445216351741629058256413464707475142659554907046217691817291537551576668000994795531482896870393326030322856204794301553798873498267600876686063868094435884907149993126112883077719310191351197451327392564063189446736652373358333685344766046657477839075252063120136213663342837131369809213659811431582337410973377496481252737814303791121822592502466150361444429422102072125021529667091252546564384726858624595510692903514704725721029335269277824815839683966868216482433704722632459507797420226210955309005001632765168879862693177644132608449238669252513779831526566822090242249489695240189828694243293505935441039055410367468870607723515661426247384283577098211368842974834884041095395130287113616333816633245822666055801189186238383710444892662374350758987780564463599632264705266664752920532345487699951276221747818715204267143336608789875878225520852726430056156484754591103394745180379555014725304627502244510060954808652954319806742483308302289358455707465932537523034529184567652135206545058420674932826087607835444243748327368518426730525697402320715555132167574791566192263431732332780103547317397677478162584725143614535844470672408855326939695803368646580105542239245669469856806860224996697083030645174816526646689315058615706777620365576660642337327037367867929627112150102678492907056636200067927545777741787738121204702207150799432249938155861246092270622875109934604056675990266067441393431492978161185147809468252905489070397927644448547198076533814685645049206701295283058555805745479978956651725215615621337760929211934070940196561285572640621618682147133920239118096778618292638377183285042012400809105087205931767683170497796403685720468105710208199638144317477443215003703485001899428073863472043812253256478057344497648747342266943044331823672481730575126281266423015895235125089061677785227711649311977862490015014576030639225045497437799795168011440820890846485230164529625986885903753003755804430216028232860358010200259623387677633451696483153545239353610354848658373946807004909937498170603199131326978413981809712539087367244815418192915966986517050601992953735611388121074168845913780809503570146541684730954083999054228181248083456574740445135720302035240582287868947082588816380789002432625124682022232409632329917922569684917730172911612687601400569561520851775263313213381195879023120534844576977922477932100180929654095528563867155173427558846648734001919454709977202812108934428124702857566417647249278681010600288532169908188555037527321291591049588176021443764779324447549763706354517135039628484539947715441427294343620915604081508103303903456432918995024463079618639254812145833277283151099945192006146303892552093708168531684099180639308401722117602273235465873352493576639816327784297576412384699836717731350688754334677688321522900729756509697691827743700794503303893283711033950159431169121108053593534464559861479741358561105150616066797433632157967289650834228261727498008772299289621043330953501563217782220353778067860211336231998111328867207934422349105186000109943518139529278561911288641589441168773363658328582141966213125162257675534038503210927891555727305897572739774851709705038589105128945561795768736495719326824192850158380163293143559832341974244576957657695688183198724497528423149406507424560080735642419936891206296824355834857585998538892509025551284635526129821051088245341120236974591821628827372638310730783174579317810769613019528230523673989122192251157465673868697055052809005141971175178010911493441807670439369576984801936567973472065803792021596727285751182700578597995080078681166972937434623632685188011793916254422110881779196266020302459137936435341437751110433135712185414572189348013816272432922055494906149663028456117968290619758015257465364503558911564172960959397872128872841109907873732846243814038868305552664369657703162257756377091098546575992723958119822960362391533986024495810888804021176473741175713198942988930902094157190866552466377786254602315209492588497979893655988920806002045975878033786565905595819691221471560623739791375100687960142853127118133919130922946239762542329086379710765438203560387158036064636659622497254070644804332965149634718825906611976899679793723164457252526087473111069407970461254019339310272032881743776499006787661635806472802272366868741841437970133266216970507656471724116745812513847037049812512897127269144309048919834988894338367941576046399844743778667187123714406573424284293743531744415146903305344480183155715326452667684484054385532460042013614900056158580558144657094345399569230187537627533206996530470837165744795604041463257736625381230251431743835497593309937777465113955660991575284344766684653689007444036084386971336325014435604214006296403402635963426772003552921654818783621970563448058945959595753671750593714423594807427291056017783174642471647559696983064093936263895208929723168466172179749247318179063227854267513149501020152422449074991650932187097449905530506845802295505125980561828309965363350617739638761779266809486199791179966928069763634338675830863210547149330104683200616443427029788148671804130197285112281826940666367637952101761721251009800709894103866825535218021262188889358046422476055295408957470310011670559786838776178577594220302812777371147919616013978611626495718925583567836804290037679071618883377390404696092421277086398119683027140746028440733500583029925318163284787720033077898812908730429519347414866455565512292488258055621573925179729876737981873810956389094453030071124305101227849339605942020177972129894323402901367725675806465891887128723593027080876098173390980536793943668850274070623524541646084526765640322160988949116755650773774847312751908998481861842468133391114952325847876247162553453678663796316814759417326530533418784584738436530329630031770074569636003042206039448479932710351002494262075583054515690514857744824474236917526009407056954313333443293774588294663482435311000784816450561416305185967322830563505513695918859033311078665761318482561483527685203390133587580907679427074352930127886123304573857450321522828759401255067581617330322872371145601227560453287585329703411902100302484362139939882222484848654486035376019906207530658984496270875163951129558151663584232981002827331331421894359622851696574595304479454956577084441683500015369605286775248857205838610664135905021245163183104304805687664711705996760394547980657693239936758955995409842456230681110438099021334287962341172542513629456313493290137677609149166761845806795791021442114662324349062803161122279590986886105518462741634462996512747966520181013688661033109962359503128740373988186191940936296586955943515747590990907877638628275917875632838133782240953250942223183185783276092204194821013718383847810421796703387888821155940583046390930066443611075316183776185582377090184845389377498312509275226415945973895453162858657235828569698993068488940785047211654961204910811519727385782450150307729980443597764744147141502295935193657775697284869153602738219888199769136841386723296004530603993165894481257741420046391095667140068456365278181170158780549009191715173804015689123829024471987596370773353016075975661479041088313090653239303325903657866575770478984584566457983864622597715799012500085547328570430993300988222403611979190823662709173572281316064856560586275502443969515817738241035779683119775681108220119963095992164873010964873000454004192208372617644192871472026516312332669547759781846328259583410341591811220487104660964070689095399247990400655195330124474817215038844060747978320776611753431409867504270912783391045761523942281192524032680556033659241589756944564447507623695537378274970375826559753715981596243132527906260613045864806340754715564917274943048470197909341060962509879439407943540458165881384842691855803907143580102966289083387400937443750256316130322962148405157977222283751187631690638204711264136108110983902203464662107588588108948008440281850792670103465914166659625947557491753777153543917236205673895872449414069381535308337278830828085709167695813384963812638126919004834899589838050460676652255250749426387180287946850612792930280477379422831706413175656560222955343337011962383764434549162403703587452372301795823153417098046576078090758113936224319284641352402106685667356982646224874245034991389102352652543214075791694451477403139386804078920482074577694351148365469657859190922551905224219910127396607681859959588349993911566646326496778614462592774184450504576327214297299366206590361467035516488304874431796217926147014481660707081032359173575728791886177125540631690001543846095336868570147925528653666820438089301204242162601262900629644913012322721647783829215394040294357045213973556638311977025700180553723771256264092253754798129424799705774204304565942260034549702568740478122338231571874678141458868796271275349308594799393038763817069254622601098865020829431333122218322778726277380948744395536138150391672405540240353322901302708810384666278600992710935638463693063720125757125215378569357850531629489504368831813892861302077423826689985736429389980203329394234046089006975881139025981675022425398509990776327533260968281588861618775379135632638741979969259620149384469052588609223477112319235996356881260516173924626884831407643546823750764679612591710480541368439503608843223328444383400669490206696124237857845524889288753115962517576584054075098484452169880934022947285809472345997933716691964853533917933649986763021031299265893681251678113367014338837751679157469892224161464903580896218733677961369263394190172524354890917335005588094991851844155679820810464471151939675608250585001579594978084001341765890293918538576501376527509570149407596038322042440030284900631744020461367950066702730219154586353758113268354082022252831861295526960140054587815341718702559347593522764289493543681891236491232662103208252237667929461311176767410101680037471646800600164143676383061401716018002374252976125268390484325566188567220506007016829496482754127850548184467545502733304978039477982859141955523324388638112340021873908072177988278064566654905360708219208221205200406838045676956670538375675482039275554809410555443068365328097350023403416377600063877080691924908745867240389675907247776708791957285973448413449723707700195184529809499712573244188474994032544689672913194373587607430131130901383469248370068802347319730720678514671210619424570495015513938725588281409177343023351051245955232912326031879492313208064913338749805500090624441943008078209650793145152595174969705840387422948681272120900887297673407442245194391937688382175635008660593752665912627802390907326738051116904045644873605099632901619257910265805803211253903883232995006598560839734305020347353654935079802309197875671739868935016088133075124453675967835281803089143391430685533773215317893284197299835844513764305084888654512016332825815855829411190184283666411259519841594977831669297821775668526301902947274077962457227559266058301257658247656435151252692192940468366305540712109769210531643193737978161783487926739452262291905720630514238557495057475493600076060364060254358250513318147199441455673890891001418150573994655533619913110130919942751531007345109921136159037936391953713738776044709914202316271320245803416207318500854661354206267657981081060898972848639492448605172943101778944868858048397499942115551635742502856843970919063389729690515152901599785782553889298887352421838464765873088750291842397361335955015144763206936623591292452752373062264157706327100640617200933696417000145076451669123742324070914284120328343954092169329641619080095462393744591339321040619119484676798809862409434285125651094066227270828728838887809823906257654511671783999553860574719980335398150769316303815367620407261771248610288288565622783222082027135561715886460692643431763125273657477828737432317073834545392657513130853671068094163644274458670170742201235291655325602051639116466481707427958102988680755397281584802666944076540608506047006672770125940655247973546953121466580763373582007187446270260990341222143772807942412705594262375146862152472985397154824586915195929769535909476581745729941832822629937223356664738065753168505827032075815020794280687851358959432925077137828307782042306306684141272495916176032570126636557362839704310184269161175393686391913748458220372110739991901905888120532036968163191519137507189222669475006278324733287168633572504015037904307554147565899875251229211561495161204285894270946869133728079269174668041788805882250910657329367095703338905123316592152155362669906946498919467216543591238870924034346013099489534068173345317384941999423322116463433045198881581330369630027537743095394198293873502392610634282333316999577573104192548382270588917324533204755320098953462772653189704905596010445233881788530681829592062173237441852544873497144107609870705836641514294880714389746585433526854932132633994318231766464924499996483294346590294646087836001876210421473595331317960999586706040094491347638936075212665601716992775746439032180969092540653312598957822435432975842651428275755647850219043307587499478924583125675330433891121632025895766373150208364304830900019221815941927948549598242693215524820610373143157464498052917883749212124125320301004204532191126746276937489421751695049051421701039146066378830463986083395432980469480251736788439298840676129737760286235136900391951864853672076420123568950120021735115808233529212051800153020251845762801124679162552861393970376558382951001422752943268396094736850809813957924760975801998281156345437264132885519578261765099647371606280185623983093423801490646141192159001909173615600485523651181465537252734608052415092521550603136159725311812750583692444176429026021041392869127347350858939014911687469768237797256926397322411461574196340031521470599498397617766304632905700986157853185066252805296858834197384973060773117409523463602095488003116271164415815830718412663976071194358200473459360034493419852229647407213691501434597317016063313487617183899613605062017650914299145412810523693893861321822082893782950650201972050097613964486452219170638926587297280806875914805003120561339969773984955603641813482132145319285939285653148314870377585633640070555172897490383444458140295628663516774229481179760609920354899310275709368814131777542036453306448203765752794181155156989694515156675387124300754711474841042220781471691908555254542763798842705478183480565411259094547623992301985991151507792925740949487884779963780453590016656773898086359154851276069352807499131247583062357796544795864805865582452192436384211160684045329018011565487330714066011845987717750020424677177826696376498153362413275466785816132511742272153050004988860994955466744557447293369353985681503451267720232346816013892798103661184400756855136327624613766514626014979817123443659371025530355612466407855956540796242621431332254962709821547957738428348103890883706840346342104744812349019088212556093309075954323794914093615339571873515123945883337119255136347575895711366442805662854457866843952061090463248647400115106549720437895663620490173625925508100876089483133532010533157717992417576804873026923133485987042933990652324045311238954002682244228379598785909570174837587171131680174504558500236831079408242403808938100420099685060287829415573313614323702261705743152140936429126664648681188807950190921321664890455172312215751046098014472951729666698715284772065646517255302323252733350536789480280895095889412867876427017434223489185643936939044304414640310340693910999879585766825606051029214297731844009210734931415801559146852914310493218363341745552100522690641816637797706257850355025368104456174474788786031028579262676455527642812721711938890916816078421056393599639801135280543736455544994984570934100240460225345020166002604387952246975080187758025521830388014464338226322411295355484849697858988294420684914119459791838620229661207554115013077577660972841981017364742978540372825425467635405501418309781059349571871579937725087451730434264133422283611631219627227014025862738022825614540715623649249196036955308161766535862132833088557510628452825161157250634887030306538988706230318082891759180265115826515241699959325238688599872981457990874596070862999641952336750007392784550372763151514197740248021256297353282847331518653897114699913532576832486833299746598540401144985207408816260936882588590387341304114719733631484847955383061279017853870972645403206505124049055042392943460670831728589634801660515948833415701127985003681295331773069337650989724772810330489517573406917020792456268663876882380325570613199599465130437168838256842623115048706136001493143648394334868942133844467846618262451103007203021964992577849649960612876532758318658911636995989133536701382053768536095382912834747044987600114449670923868906935650023874881222384189238505269379889626503157777703028675853169895973302389596129479895013644202169359821312944494451420627702515758372279396725637778481241283235140503401122340487341436525856431846106020030572975471382883816299981202463960464972832937333414346806468255247421734679612752130227990446667301171270467881394621042180933093257765995208461197699173187841735662974640720150955602130536155629311066094692651913181305386244307720966400439953970071843560113217886969770424345905025511326448572118284810272859547731325971941892546561484771267492294211072694003672342692495946228460604245620247460511240241063142867517551738930260868782291364076934440855914042831314840803838457582451174394566446871906231031574723951892644924139640896585894064400408134170357816735347340550786119145122523660442106290228754930512564214388118870951520866323045252856486016213048105517571214782413057919834808606160378658797103229633273859927633593556265938243304694224431320870231006535208496623339684376705833105561499322435874009498259148681969773451082996667151313666674734910242302882919706136615134991854619513255631172077269408957992850228044250985271357244077998455051691910376548927535419635110709503772988587548786578303077408168023865262847404719155372521525924721143443442171066025612616428548836004977778688850706789189381263242121055573824102140825117359676338831440906854660907298300870667439144959008313422814720840536899695104389468641568071441222175540042005795946873181183094835491781647066129904061455077325100038011407393367165031642364130333736960620077222582558820531579274528593426529796487497959335943574364722233111026767932335260495389657338786923914963867857237501467879282779840682291283353431194704169888221102749995857905684433672722847436841080163379737792230811035104702621708711414099148295743744922717007332859293366363905852242659255838084318654595877079298320510804272551531173156893346835668413466097487490012271647539551616529663124898366310396430084238790272645895131828227492982848255507730392548187549213549772067215143785147357178672403076789841239703502167105145492811590098861201267340975003848461860300548094065507060485574882644489392810083923546713490200436251336544857904058755706551945030910720201716420911994951899926856154269501769752082635431325116270342213913146461657512790099333951819858875412213497706330990325502213595439610804091005775247982360034479630911389686632250749828175219294474544916306276377283773513306729728173637606606329439158680926379075003653752571022686260586990666004077261849500453907300040982168023262946911599603351035272570814517356152121133147646516350987835157923828429400029500388394654609608762477285811415424048900340280734512243508990889317466459677455051738831745178069433300429672527066981871955095984181468883811310886990554006456525743652054854595295564512062235227465041993070642620780995083006981967209543939720807588696756219578782193045352202889465803507827079891668468679111881142356216707598373911657317627827899301483637424247910338383352640494005472709838076136084776771309409755501730335463137413015348506851482221187190413760129887599957974779591715828611316316887491253990326509747525189510958795625958347906586480236753636149799037052087312706214120598033076538604922810533856102396739128462184739750386679287708532749267584965537793823012079242281211612123777838746817590222786300589937405162788789446607742147792010114402350407328132880512302777489322324030391560413530410340989841295759470544793187288095314557404184940006642200010516098909278017005637513591793546347183592350524921129542669831332664305871942854286597412557548143802927092769338589370599279999546565336755381981749404179908990803450987772935275962907325103443806731184206688718691475730759135197830872916139423522438390785278598868703515445091903928969216752583540284233677323875127144459400696799556709133608442611447329640358323270052260564319271718236234367808606889137120344886870324578180794560707281986918708950059377574311793291466928539984629021642536735494071875982217569347642594824761412614189834644455335866657159822309690741945598763528012955804537973356643814524821240532717806876852875017809952623117433945388711380261936001732500035911485576403500485842626269061002675385427979805263996122009500906737688027111938878818709259409387057282093934854585849692370876057108362743860578370986219945640845026244896531708390927376753589211808003049635633635101131440732178951043059063676882331318635805553226753816138682129988333492771816532790950838978827405396792519004055774046990193607356389565376978939997555714821634803909346635561180680132321798039000322299241523945596708219901306274129684564801473450325601162967828755470146871537255657487506702434180590954992907232242175694135608521334518834997313460593600089987491654845607829220506193663879516278830725439668634255405910551692959651047951779322131063841068560110270392950795704218913400821467113610796631782184192574459539501026999855352476805069815980857481351951231203004866945844029362548830968992491843623461141373057352786691975750930807879778267875005127944581261210142383317107406533089290347178413729979431441281891564872034295651878704847530942878840244775546786654261924536246606530975213373894274671110085218872812335228226877027848173987454097668663046344543725229192787356092914326258420817057689546810366247534965391493204351190872079795699813767168937284116022794466627129289867263337175485929295537526771361989617232352804260636492629615026949029951910767438381912477924268930171130449815084388128792894041837292649879311236821744562877713007034459197937696650585750583114835373545161980905619647958160807529476275726403878164149200608562140417426281455325233935520633249804341696100306512223877340602306416631301913722899633210365454903411262021306700930192919900225593588653984780486238959932272016033642560926893072697395398389496919229269463403057299792794221370200974291801824730776130641177865862368701469288650679616396003733222066876403225004303475243987580300129080641322141541549099097867329783930736746939034532557468493548919642389068118814059362950267766839956716820089792532993679181673887748935723168590450450286858578593235273487179726317266450093848527648978710317822815411774992533308579444200924218164053859829839446391015619104136604964924857850782299721026761091991283926810417613688722454731121844661217692863936392328501779165068453022162389285895275948135630860081429799494284989557631299356452246270521411870583374657186612173744935159872686798515307666749655570959695966279850704438077924702472447009759375115085736271720588116928587574448431442419555718589053863962713482974884270969586236013530633812846008404722326116583441921969075415483435960483909993878463146351947050140529985800329232385781124994025317677640343730364676795586292976213268304881938941350233583821386522761881173878596406136055442482397336657137576011815417303771682768146844842824295820486377814023357597129347561241629976786933369065012984846001538211506394973711739216053573739349324137669201679664413852101791315732132005513248424463754053850089527061450339150013519477833615602139986176472884861436450957658372754591218267681477072470311257279692489695542002744764404373027055104044014203400872710689929337357538136061002998500082943056692294564642819822686382279724996912059142388665369995227420757561803723305922123706611872413014568299570912775020229124062092645090213180679410503534182656069568412988117700370529313987402582348517171045347314311773825036141155042859041160362544517804803362356802170237965644391497328794398784570586968660900440882237225464466237002639989877312970557076183473457580933026281311095449599772628947568458944803527597378421221061707395756861051625706525911777346470559585964806223330894291723268223082565338700314092855372895502314631469754176862355425913445754592442815941072420377396808884024292887098475056936524358055224153136830640861758303537575226629943578666875852647834208532759021733724470487733286070335080312774028126197860494216217913819512151106769370078426958184582183596042736631004274491709242997624757252793711249574521691435656479181965335747583470963532032483360807732847677830686381920824568345678362327160487898661316107108062122898255637443492067049943208646699891610341540149769456648393919668757473471641300227420231065004113659487669836595548178031451609393939938919514255080145992621065192721069854730716356556816505335192269751132599637852201099598281313192476669720981354438630633219299651148724527518510132123563968126442023358268310248889175749866360337655286130518649168794050335234624190034324206467945873217029156641246870010602788617353308349705797531999875935544387836168119734388079562603839617156196851756912128731489654839249789846352860781531673491791903725570530804587390834600225997206691662024534872704075132701135425121131708811076932770398686297515657423304450852941818553298394256845359548771125564590448104698405680830437241539270779142640524278048182140842953869463594491858443526963998819152572669383441756894660924735717998563866643846341599512634889649125919003942080369287712042654163189813853428882526689780557924871923682175105835383906535053202053087961879313831482724022978723296593021133569693094511288776490633375607691087361040616983480122348571551048798593092327459799488462532946821558490934137501596505651113226534895290993842646358867155709845398060002578007575815868608357953172907354524007096749976246161795715251028827446388827825633991023270322093393478496510673704169505378303941667841259778923405209763734330140775771194024710671527600898218644788218222709368098408592072204363716086755598552084489404068315670632986687217163532302508402982972833819184678147519922539562189576762398853666906258445196376261790261057204401462331660768654586911330024534927391415054165210844835660619455529788249758438621608675890823804337760875416075607799967113677703863625980637713409993505516502391320477492378217659533018187470453436821908946020321332767640574576047050345017391591477196036373255533695733857504112122505638153575769279841812793411274797297309679277168427930759139451258360471218534392022812807225450076375135698896594899605477113736217497436447988544126134345317596042912592402687660829880849942679990217514574428080546494172716221610098905710216035812354719791591521960824093058918016115196780584961220551828480672134290463160801297913940675243817795814260367325468943286043481678842306350017729179243092847313217252588809136287541852752977186347261370882552328804880167738091159778596982118100202198343188639522150283454480379591233261604891179336426198251712866428325557817224386025647106313411575092809747109323427711445155925207985912736454398561190190996833845078964641077496416261636593242717487370221772865232211942320349461900766139843171475265924506824726304538058497836409922176456738463025747594584734511096973339356290859853553996003554750884321241151591396126799374749504261342156011931693350388458534645003476708570138120095523006417586668702789275003829264193549501698957234514600304087973364499452750489550376943238967616139965884508834258445082599353465841379595692171337269629542260763089611731715922179255421422734457746721004323313146760307902021260162858288432793381696634081542903668169921065619310065526650930072474104018568968500954478601436561395174015361372421107972777589663592178602679193111203342686366039564859117235147570442058249992611239560158876836301444134837180522113110304493659646127980730593945558221257611810122844201830908006141009367827630928436629946501503639788190718832771603973578084018693941834898796883970045112875391246950822796156842020384941008389036144299495777033390994805076707512784576119400607478676275320932861827289434083543279144156698674678178405023527634703705724201256024248313496756844893820884898948578555583758143018038296628794529185586228915125239045896642607015782281825040930411389665131556822305787751135027807933740728233447895595484821965899723475239944857739034717186990223063008597377816604782478176966169671569640637358455101817597902751499438709147697593991350362576125828489665883592038877957409196057211850542999471810559247614701955187217225308480962248280009105827824552114915689893338826827567459291938123576150421637843802324261433288681050412812349571161563897821751962537404931150454855215899906204910045849601612358005656362867452866353347208154528293735374503815348166206885231575705421860147665279233794510156188372267969650339999681276243024166643917288878059786051670064439604070620336412291839251299701306248756634058955221363442340462915471375941456183282199546942255486347518885520876728851071989035029930824404134875785786624642905761181443644714046770247711658086933141662708898322687591385894356028662205200206296940728829029789193009412850403356270261411270691290247264193884283627877052005434591935937732348567091961961601602005013896223801957261429530506553447176499729955297622063326018026252825990872415097799453432027076575669255304532652878646119677434670206240396197731051297089075568445380835304712127382265495015374612555619498056024105898991136386987844605721289836025567386652064260515051582231301162318128180161619300400668692092474513904929393815352634183789512494635160748833344620679692055330819370365844285989332188383971054816007593179622096278299106178212021821111105118717924009548762689371819280527005010527542837832460539185250337275719700492356577928390879096830565719489401975642271694890826804931703821993503813511510307638670507736251468036105981474437855654668002685952496421524674187339899601695010596007585989118652559115914243948532425319656851518459479458001772613513274298387645934057643570557954381298583229836992266812105277660889166260862085045483577150877734026161949128308649494553877764152271218664274010556523560761394186307539855176544101373494055258683294045381078965394487488994887537251837310120540529981779585552137637344263480286051754322094953042030849294675071639042358286953779933270134609475797396795951554474849408494285395628831649327742847385852426113134407638897362293478185745225644382256812523678852813181432223812322580260826570516502862790328749922878514824875531671542330536630789141662012331199733418196738608226425634250719558110399546975162888082591971879198575143973498249816985579819177998019157053140842726317157806699911700673227067825318237696004035747150849360061828768758576704766318078221466071251221129043541703362277078666096040849478872585844769993304073900566256506101401860098788531277309514751599526777028899202496484305946574118258523828519374098400789747855941126561998213938995252364124755537802397449894578125905904047115162102351446277108334604423432215533625663402815471927019466975035231509835353983994885882234220376237303265734930610819810194659682227764250966683144054181215998227735056003062534058036592598309956805688382622533307792160830315527663311930449510308669159389096830669150884369057650404318386469179092370486937630763074085481203895832931109836748897250463462357642435136171226909203249758538179935153842012800926925036228181818880033498950650721406511737751460106528046719136752772320298373548216559992661848378586257490525858143569759792844089359351271249540210159644159151991493112482099173408768954764578467138474930173642463184695628126235436490738124466813518120113039794843016091610561433505069681320241364812409733263258602998004720084119233140829533322782350035833761991135430697000223126275089761907778743118394788885488257539385825956428877852133786765704979912304651497969941837112358137493177431903703742361236553700111891285711438755795322964720285442079332320347051180454825355105194099414187409082710521342553969286920356989804796911571998622554238781047611437661133079129157090838793546696997891693031140538248857817652167036623744043067522622975676253224397688885613370035967151512417595335564963565951038959763583033663449750941323316658157018903477285632945972952381287831617455033928089405080373367105479557332120337649915401248929451514247653608182384723538469288203060037457567662965413314306993674742336044846065365488043180976828521968874748472540589461309478497481461927217209425015356378807265390718501040554828508420051988575720234205188500374802408867641607372857188649004712332849648401209581595607079324141889871829451291637650865486370530894733847028312711160756022082824122924338134803161935779271646959146439869648514355106048732505102693005033081274694303063214641926994703082969159414999892361913599893557628016192929246812309200570904575167829494160129672634323649802745896585188195446353092223502859437170150289610057463232118598289782509712571258524755487360049797681549501500787783755135590710842674133987176784551496663815926437336663122272940782674312275119344623484888709963116355914010326603888686114411787468660481561299405891723980580905554882409341835000121477580792448268766971406085267170328925604987512096166725050087438228943454932901394328062356016998054280345129803350998013724205280922839565746790616830910764321013672877626265196184111942556684097253856547616659191196031223549800185209361360193568253014900388731788509399610640790565250703744525272964991458344538160864440529624445371386186167132195097244147821205787508123264485545564938760919208562671803940274403717266651017299011277480913475454540726860539797941232470141598932339909535682366122717336314528716725438967372028408024888903599955808113359916117253079797067130203470964126350730284578230493399265518122555293406201903032012320820958924542367924630405009184226645529673908616140249041371668090799026202170772279595255896496112988211937501248225377067833168351186743321786746607198047928168695373726922685441134701935816409618357352367138643810736540810216702926736948266792942798740758924735924460104240632776627659698033781211498203984406270103000256068521782990363930132491359755433190289980177502300586506133730739004814411480822245549093209748883887338899972222915815423946307375509185975933993165101672906151653242461375934077327694145466048472081618391834394232022349731544178912166482829669307539378447741538550485428045449776617097392176354394722911724749853972903242936777614290121138807058366225055249323861329786068303892998732408433923608073823975152904233448989635741067405686181433831639346116173689871942637063043366932213701754486236516594475425907584331864277516486251408619006031697616511064782418916068326343822435011156577486283762797561780545195785494606449461866251278549261285513575622010465863506795167261872854872527089997513885050795361822918409189620951484866673673897518968141616712855082078840286631313868374150988990796585490025433934377766922644784131663255905804791293508584282096474728075983676660188225114496097881759866457934629249502159195868918004403699372927478978147773272723596074554600464751535742102028953406899467373238877854304512120069665269166742685341180166625515132629248085130128260091795510219865022307732915783980967548957342994812447957392523123951715296387111708602577369268879494947792320791266544322875924180866851225441130815442543888401032477338802757750188571172437575295691927199855180438689452962116488119913089848405344303283117804264559630567700002893130754486800859408580163509993449735186078438524707042134759962841367930442659828885530175283424802127330288311045479746385494244198247280071384593092078447172538986445653829976178894211110463497597425582390259221603842462410680714745628922302273690023544404973447203606250507487627017450048893728244908865044032590868403076537171906413710323383555647768776463904041410951738595726965787852617890611913898655472955309653386000027488467771616541604510082075478038491829888502125819168080054833400721547771560711295171072860552160480495888532677044679003151890136245665221708699945220264379187355944319333964470433460992354806094713701381340768051825197921206800462975675491781252269282495461366659613361622950288542622851689773777029987812240835328183195197910743956567434813679487328704934429449104684468659463193304826306680535117066298491525661515036448496134405977330796647161043185678168717375615317951430805458051092668727855481222878855036645862497965296399092043222511869898346840414709469658032671591573818485432184401710964158598204646815580576233260081160561465555460472864516352583428579575418896477579081041883456808853426506853662341175451708704588677523035901062475967247810280677815426475309100108007010521408331814791510706187891850646493916957445555107169298427363476236081084140621613291718740228458793989016192447529387749071510976819640657382385264881201282350222517720607311365868151698306241052978980312936455176757065718417105011351510612032554979292914480627559130799713286343219223980078146846090559475143286326806037570061658019569079819946597809954392469692864535424151082621474562028277675327381687288359854976342634901671257145501788342624177235311459014120629688963323251625565287786327393130543844826997025062880576858188342593519756210450705636096520212546655165680872284909628353721244189697923524159014077426863937985380115126237585778835091379308181487779581034544451938436469424574265124120719612871442474514513950877823152344363076433721185878837848673169451396911018585174189159884573395695441261124043492895854533624695179026849000713492256508236092750425915931637506290541310114506944945397527040693077810262441364423855885862891735409391313890314963954173210509224482711425662756031194197435915522849828167731421028646570226447378537895761772013639702855278022243519817082803954234166295067758005572995012523328216154151680368506234783898345676651876467976209444971574300302581396062345421503059914418801139467657263701113505284897474496596616582527640777367884911615023910545799208133767700725498304801928331334752899900284614025104818212944076939331192257260238138287584852276075659466095913278615089584451836121966312349369730520044469764995635710143691124871358614300965347101766715534249046410125986944647513464548570182870792618455924531314217126782409620065099978107874943539253845086171372531431554804049543427553928890504205398644984571703480026181863991114029673121488128263461365106597970914228666228823797517560861688934904977181374904346003638128879775402442225089988379186319279841301860039668444310049612662404612376018193812013393688693788893059908135336609080387533792295960196024197171779774699737669345668455056689453320728993174826158611989803019244942505136375463968898950038908501093244923695485694749256371431831869221222856400338117828230952305660791280713413984438603919275509789486947686908546030776410469642634817644032233696527138082226008493515931433070304755103009242887900120490414109527885337222574680373506053658739677514958682699175488881901622094169702058848862374513706452843954820021339607470991425246533378966379890409130089554079767376711974745957625441410134436931494878736909356334188872750540735970510288270985450537778948727025173333387490730082821347165457681858423997981791100448850578173370152843729909124306736175204118376989457953676597189166437761352712663684928265909436274812981392256460015492300149348999825542217715663537773900041491801764704527381037603378805004363021989246970162584881446141151431396359810871544454505398259169964483131203511332073032150337928816878863345647641734512904925661509184531319301104420060730652729895082060525278083865995434009707156297417104004058671411182509134725379850259042895505780792722897693814764932188684883758692540829863152074012233869485798265013133454812480615614078501322538040320384761471244227168703887616236780982900832651758633499720762219609218482514289798853037704784523249530467142989152770747180555864613334813688151748959659372179220448610530434597002173206044774135935872810896330493366491648554909828763932176535972486925497842472609290503118536931911811793109151549817440981411878546463088803310435521138612480977908293415880977209150170312310790543618242952547152158720752321685582381578910060462285282118472679968235761825582263535533557121746870217199453655167901384354336594935416689460019173817695506120951272782279347674742479825362850600518388025682989641177353731706370909977148961201355444431001242810022419419259904508380661077238595414624660185354885883786632709730099194586843877635073169433555887200014973874810649184529692301561081015558814445225309676351467427182347205134746798555788738312728461118520139341843500633300117397029898497958334466850474195194206631803472556767500155192376965728632910877715699916643654811766382401633115119621600807689634769850871188187040188501999873153473696651243197071477958395458508975251474848363345899403388981724011592129508576438678035459817979352390822104961166520120725301739179586215527756875643656166194212456916084768460438000083670363391643537224284823743348230113202753826297548287182543099749443030342069361626111073349546201246912235343062872693087555284038127928792586738663196256128400256927287496357079002594011452363302987722473594550175868498905466167318842809997203548753541645908873700659827136716054690232971393113193773865765811587809952047446966054181657305456233937425634630375990141330784239458146939021110061973276238830664415507562764961026159100925558652033042357268334647050930730327825885475259037178271692438042505397439518479651179238433765389063382033837197160792323444805096632268093447283016819805083377942093040059102340959948154385535989510500072344295085770047898991887150552195544230456760857639941530009130019609179331364356115243556772137966439798830209401350405590128007151930275955794688412556627808213119994939281206695860363195534365744913304895387848743899862398803238667268726417747242390928827735910786934231193981661743475181819508710432621020842644883522850929468094119371856828573477392030840164228488682013098515805743623861372822203738789552169175564998425377449083409806326796986825927458920746256072829088038160402432093738749970703146004466005471802318145284886107642343083418833442907313744616516791205367709228263201007254741850756643352616975021443599394491778597119339676495961258140975817959417970864333590183736746389229300446302867523390475244923953461577299844951787154364578155297682522203050791452821003449799730071563791110213094630832198258657896201727848379019911874059779608370110471685547983090205541022306805868682005186129772947722684409718761664806113790613272859855908016514653056801528665818394954602759974264140957245831297470684564947345353540283896249972498533604925568523969342220531240230291624495023003746532162748859269135599780956105920107340120995559369589854562961683133597820222399201657678938150735099478026584409914037800883442008208041104543149292735543256710493833580159532525490321566665441980477288912534238619958483403517960744035350799102714434474036410461755275838954405238646703559742949582229534582640579036852703947981031064969801240715897909490684896336078628941364109597773928682843733955127968208464097105775679378302429640908152725490512663286414299133574858396291065210628541376666470902372803011896980221613531875326503025489501840993344176292392549920208689402085596104020888510789952389726821164683100005342113521477492329397502882786177062549756967411540026384647860682428777012245844706983480543923629408607139283536835161276220671175776692580316083048650073243882617795063131437452147974169566076125016724983193245116563208673000045539199292224078617294112143659699775241846117445003810695072592425817862607176037324504039178864144062244742867051261578910502306017581218275088906409307247287226212758716313118543582185242709659210017876502940864276904065834825430056985759894257824520381473512414508110722080054767394547220781714033435052358649461590560196520928433841975129376708432313257402267365167034214467034271486210950704597955799278908270885838994445411286489200674854404451983150125490998261189350031441305618220860937445246376178397140448171026424748084016115962032057765950855123605575185883205983754880886340865753337242761726524380313146153649115370404071612476230303645819997639829203428926962162688308557015502986236212828413876154206699176629048866958479383258328697455330626690890180905001728639438198968501272092502061113900281595457210139911899742120896410067662060195349080250176650338544259591381306252552693238743166682599859555899714028296858785202303233537398704209078020356684607964548940677550394944497626191089044627600833734763168892373903239372478970628141074082426299180433131728482597779943150001047378241628609600966992499338885118440404620408332892053235818663955422606320208413940906144476289774533398670901480858932163276903016363105934591256409843302331230166206118504207892591612326685490002185234485537276677640195233201725714863577967597028397095997573588432179279443868430460725909153785281374358904111500791543039422352609805037106285405745981314027167824098844114563422192915524830187692532933582543931355634464592649594719847030301261881345547179684568618628047923785300491675567738918337032953449903313284292604319059617712346305784914049517066925557721484368927443089825915860698274500679277154331710382432475882883424365388124934454652259331327528235585585365567710929143255993003592917868802671080959100591185595203041884139275722248139034711804253728716333297796867805530084010397215860749339841791076896597319507143759423511572907417044176039221686786040822941302540388874122460005626259223422054664085727283208465494439944808835425541995210908626487811951142761774239003428854133919296943542980748481857102807981640063452178908254774495363079343696019740011244611641657594118254291553134856883825157477549416190046443303395930403401488408639381227578510286791017841398562893505977174500412792612079681443407259208049106979955233056246568735900622606988147569867519772598580733786588245006607099705797036387723885895578627404690367566730178013822911500612727211999526662228553753223878992570070475493172341361531164276644476174745797656680060902463512866052207603211794365631367047450561030080022097578788762559748995757033263101942713815492696100285037379543589911822726027709616021142175932631523082451965804737855276418257371109549241254920227434275070536120577803119585099750407997149102848829053227702576690269961346776159979621088071027550353397316014145290503670227344810323470369240754110764530976255244292039299645492770699690189997270166055126443442729062994662869763919489717133305215789707531176480410679552929653633053970642473779416595432932455556186619087780831582627385242204700570360414469870744979514126893058536575117407547088213140007339439348261501948026976634331032442875385664426566803020713059459766455778839699834281827309345309128658423157937677572951052109379137045945618281398001661603637215683381850211145771644848851858872857418663051997708296816418191218870571614514579408272836803047425750511757712496696924009904339599164637781306381698587915339629430283000661245904326086271595946089485398759378546843960707714075182088853828966484551725590457287438431612827389041644566029520856112193088805045430720244367432310367734877296309416738015166408482693763529095118653175504744853716520679151901609638115141710640719252927003323509459638770072508341947141870393117056786011861271708510834253779138473795318926601801556594812158881202151642163572058378422992809959915851353580897876862193516617526328348527744980850305281074672258006167274204849549254464750971305263283159180720648101866831828797122137999123185114648183738150441249611559381721820233913437411579143389099916321543643603323063910986172203669167733663296505489480728497122728362798975759805043593518363230044747830538036116374126949951878822892002488877291077580023594774242768945200109785075539704257016975989447360916901653211368623792473590245396681353697286138910484110944271617284930690456559199615500573261965688413929966434788421619585778558938015923451477814331215823355155448386589508203622563377294630326761128732349364263534618312255467105646396207736035175217111852007154002683335183953188860564327744001713470758027178910858831825457757719701003966438078632354715165550472537540863644278125548805385562638519724934267843608548713588663874193009614165266533834210977123399180345998672011886884334237124108801763174094452846741545642652336971683702956768496120980853182401232411737574724300165993328877572323694247328242272271234977591919446409684049825268731977140069317487404937044204440193934283108799757269696829199405115247258090429447152943358562202478060050096140013250877113993352305165575010999685023247509160741135370650735685896595987554861445694742078572072436926871127882897991583428548050115344790334131257780979584612857956959414353521652559434664132588565067019790117529837615179050573614359544048505194147944458501045192463308454318672938812622235725454275179711626819546745665251375450233439901837415041404159369056206971525666852387507589874495594350437930647239319162360611988484310396292457235046666798935678403088692960402890563187489456066904143650273122802879532020116433779573145061965571580489230831102704422840098707315509555458827657947490935502792581531660940278608898010518089585710062158279182818117249728192091452081558901323695561338683639110020992197435217074790395405383222755747202818249772978326799594422074643519282031540304757196973652329197641755155710152294039900347215058980108321948396439787581225521430624100257727603087542649503089495468804768888459459760120307090798688185853287411314580870926666638792409251294296710804645637953665729455476844530875650627785427472110522758924313127629765295940919299809406204644276735939340833445776546166681714202796135561631875061365992193516468575184887242152355302425881011720160956108234773751853691228323658606304277870001351638925577701522525172495105756929166633688212633860721558592157121813588989268389127649731705182257729536799966528840982552631444024339954408398622478192713589611889696645249494830265913745721823558863280946629226975241404799566286507411199503892888959797359068568670574378805983194293086907114419553210865294666482777552403213330137688246201020186880759120314432751607043455305363108978650701961085925903545780419252979276322911032507117740460051427537240717390758261212490278835437122836682416649430127425169324785128854843886997441739233103980664484599701862738154009610644439966172728672863152603042754396504634775281804923355042383080606146445754160794886531771887186038555857083580835472776922231406310679180443868505301752008933668635499897250867065631839719509684607659285782185673129552485563215968223035675702419400841428022180673210955228606292508479524535505007786016924978884026299545022211215672026114870243427630345756428874403620918120587647676875918609154292965068610247486639866056540609474635528698380598506172108415649561274873462378098929512812353783664489123546550046803891755078696764043572924116749356982744182600143611750207086218735020099252273646624393761281997061064817789273341538725745116423343435800566193113600953460249635686165216430076491176962034317871029782832986120646549559124109376988612744279172960091490627756997841923971505109977779255310429558680994669786911949980839929033595227540446958116966013661885129225036367675162410372388940846927375423134571726536878048941599417096072686132200731805260875489588955450252043901656898837169995837784292061237893726846432639488270570201403371969360726469863932284714152833889453483996254592074494466195678651107651769278741582251361304607068891521171258381276524075766629536251588285345786761529054750537763425910139586308553899231794740848054835575420801295047144449944914474454353236089690968270584601169761950843192046939678593193020112611472164061507149674753076659085011672953473218806677245273831521892828711051623179543547725077661145698772113997648630282049736975004929138435534515177244622750616668725196260057775303081756112562861185422665663034982590370938943709283304366739996265842529094049207831753034939624341868952806153780871746758877319306003700467913375425774564746728723200292803649358316597271292703200395321622707434019490259067309500081303423091736421822608391579895465716806744074541884733186826014405801817639510708099255926985452578152679830326218041070269948797761670184060007284672838582472074396131074989159658580561723710015056414432831209128107635043136305782970230505959128593712257027622180266459758185023548131303357852210314620821312980340952371085465097619279816174538978017974263442543561886075665692476814391378431602897740148155184830291129810097989158291129961917195928053071262218567004440510154533884311067544323996320755266178792981951814212879859302251840840822223950316679005463974630333816006864505504766149714161808733387248071380600312450091951444232170340162103526290432327936528691418992637299636801713649224673153141334857877189603153023367069524026692601957783826342427470915118256882241028200505245031504666258837805537274676496212591397761588346963575253937439126193710860696686092916298485397396410391052562235259538689877145156138925927373830471705114825678062094238279386617693789692248720831277408457767756835803239640605857381102307561557342274516220554369199503730788451938903130762874110097711383890421923459924982670142896995375678893392029119629343937749882736929998303096975214943794584121912942201744469868617141632662321342298934150653054707466903016531073628080267478124210263850280896952524288584432346241703899202207055162308843200367920670516078007488462720996798899996422399454075404890424001164331918099921787996218006434692814557847030000979004452815698259003208706394182575166738305281811189460571341630770677498790926027640396872152198292049117131101431130259218281520630235193656774910251901542512567885215896004245253825086949366828270917361279607587564317652683949750588383429672799416009006382972776125078202856419214797348963618040072109042042929198953101596822319208310153100966707168466741372941225192603372411380504072074748601185602964636270325067951389162032614520034592597460154171951278419932707043409853085141121584676937594148606586120461553783700795976390936895051738586903824468299436088454399331955069477771250687651295217125859306350809644793347068457947289068272009072333719924537121820859883458642931287334811022601908206308782443198814079871428103399476176214185361836663453672537941477484239713873281043301068135269005197179779433991096298478128213298169919029732366436248222538933284504505103422417644240859873860215765463750999160603998181599231925162436989883428094079517787334779814456868883461910547733760227995894925014540715342762213992628116963837612878969594470260977338230198112527189440487632300585581789399710832164142989867882702436498921405598963464829854169095843799277908442056362234987220974472181640950804870688337921729506805557358307523876255242548428385891285618322311550564030421746022809155420796942100163823317876911155156775818171093897835913512302014304180426015481570243149759537813215557218483169883871944677628501059128575752316330828676018003390668841877741467889643018244102498162877168106561110883368814396559641963010113049475626190260946359430666379527943712140542374280077381712569870711316255475498757593856157136883875896796389431287676370567715058489288327102596926231860309645828895225783154906371381578819599749878894237358445771318636850960393035753644278439894699346676157252732995067301986840540211141914876130315657727654192265575093604296835713969616318003943270446510459587152339372881803240640421903144813252572315532186347135979636470034476811082494054919826002493642871173208273515753473250164963903414023208432720952218762075479264470974841392962023369932602942839655395063263251660241909304716820344194019574871327935553209469844060300955009936938833875273242955040078404471683634584016159836524656972951429739402477334490131120656476919629373532706248287398398243216293950485117304676101776622613729658053339148520924328488466605143789590108003180294826453539457929118992227491895447377873947759545131257668355010501694579097498810809963455123239328021025891871266280397562211822416226155581880360578703111002498565622533012794427132696577139839065336051358656462047563483971008912787394289750767091563617677922044354500063256064529148121298978594961831153751575372696413081668080735056103337146896672403359078709377088713579389927810630855577332228334529164126459628858956042450561162632184104337202860657085082427870413746218863773528478388305741653887332038596266945512506631967040700738773089710831248565376622120250176311267000629861589025863475909053280065927144836458296406095921952977507574779139774828949012596559369988784151066211422163414418657836421264644598049406342225518885480926884755535079013029207091413868794339458714388104896488296060834824466804537714313947765398861478612238139620930375389553216285889794036025080284141477575833911271966843518853363738126909633457217782076820760383267852974843925139516972864978475100430266756554689596455559491243984610443829224189153051369091697925111233907690046781926813079586882182255598254469709588154687046299481387330640081401067623576026881646076928163926064245148200549774017155977504863476661005394620882095185927639695746680388584858444737405463406204097537827466376934003176772969811361209478658777181723049994406496591506328559787897372647092893521290756583578471626205165684210922772979375362775608181876419943519394454069559995106404775148639268093830721537602122821751274313482085222762986127060690046665813912633578487763688981089801415526189894029341536410835858251927000367048368960001726420960312789066449808665579672063315060255610756340746791103763756579529962967805275115422459421214819257800720630736619232216441377214051308496723592365938803601242461971754229374003344895052812364526337381468508963840028944700130639792448954023323604245804825399823650091008070353178219958793992640759105364359234069796981094583459044581639778480018705675179595861255897040744451262442699303040114622402325940401988875797470119772918989584309487306711041153933625445470146320169841204519843789335810659948847220435361516261713112788587839521578110112062607650259934496713050975533144157842994472917324516679064692908907701516203052382759025579287028247519011532399021214281903467656621994462319110787586397495607193058590399469333661467936758682518614522012116415547115736086048939961429775936255266397880771123656482571733983078581407737804308727366401574375864236679758273043227248413070937727328964271032791155431407197132434228979138671232270874770613136757084558619892536076778739160638400772795245761917739411160686227082854519650588525781831901126945463640554244700325971832472141290633301623660008245714159339668507753272904916492721806781982911104423413232957459663210826798426598180500308219872326737618875095981687735000253227444217687751752717329709577547203494321136689939104760182251254297214451281770834167264178401191797924891815950894317635167956419575996738459806085124954978302563052147520077330989978295767451449241390353390001357108340568275589644900178218912208174765964373707854785508877304712508871745465349308246413982878888042097417896099481272724824784695007341279580015579063091741492004218282057688415630627840937552399062946896974776546068214965570968716408766383846221885035675890021734696007249383683795142574190933088863335132061760499495050647315972195567711497212968716330903047463638511945924945320738919185594397502718504402308985971270309954600445193391654127111299829021374641388883341494090445266321930963964862970906180861295408973950027547317436022727321841325342606471109433375371239718906046050080557478324257443231589214883781580612760837547350367229597954144005426983244243369067699417179487714101071549826005113724821635323369375129779287214221615104394052630654738984725860099179488054633117176579128369293650769179660196010958242850062717956796929930384150617786381980096232044921758914541033125189735358593434723615958336735042046520359459306657259512409376083230179876378401660419962364898313998305149529985622112146325800786202101055188251812209383334965159965196868581230378605799723286686820780984975386545393947385345207094926140442345825464022601354905713612007327055505156840847809778710663575792745136933355136352325534226146911494944594619865106708188898879471319634885560042964262527243041974254889238594936034421703895704756539385839543277986911236516218847839027169562332693330019437327401848286500590613182403019338487329454403025880382586239992935522440642859786424317096941820917466935624904341502778283499236057602358727486615032253857955176199497547650598411109527291852951938475584376416614227140841923969823702645587395605541098472597424346966436987974451211501938327471263372130108090971539353797549208751106113690403007037100820467551569179940794692544372314526685809188387393944556044102380331105966208767836253249212809455047745985879053635746656409834957885545343710806445324359313041351420048651269488378551936251653052826036452872027270613421201665122826117975707191223121033567529743778354740611231692670183118120313822013874666023130695581289732450917622581940448463614330919853796158048420755037358374144750629177111880561140170347660310975554323444813544086574964293310815638442168400065663316969999682921235054220408140792595268330596017934723045866584326237908565312443753371922192723845585301675403843136684152752019756390000740077342157263168902462038943674314224513865746935014508630377741608387950288967046576218467016459233338758888026815178554149156655095523407911705806910959877938636314140664423785473862341323517816571802532916499361074411025502603726547712601543471305265955346046807009094885989077470643377555881075556163047785602270273998924154293815609319938576181334159873067282359357366376495512227710673887361030113263240417655945444701023441237568235995054801829160233679399157730870593562254015844764778341434222982120633366713795749812096698231724825614251981130431897044957068358595367610941050008882571407788070702087129828046716668434924041386660929157067921447904381183538339862820620428059589160505295486755160313209570255456480859103747367376286208989874589737058328589222711710476163220563859762627853278496599973007661370669379774732958686292481130570862173836460818502137846958306214537391673835288076680367469774460047778259866135772275725711968206137293967576759199443910191824683452897479056385729257675428248120866011363950223078015393576303933874965185812519347596630704732651795744032316867603380599172941364653351997385754268160541174259335959022684446799014243487363988590705409778463793647716431718744753353393021095538784345345669963690552474018866844727244730534473566045351331862216850792728310806425389717686390893159832473817930780411123904184526829762179007614268206063635621389266170018614286994279685685290754930430068078859853125724922622335638652512089985718748850730348563771583662087261853826754096836910075709940413086947029727482646059119729521622935587405815682002999700306173854813532666422646260331190921046647162837824525566763541735426885046732800386575623864334029330598252454807021364771558580672243017364625644113586546990074874872168409852513924949200405504075447156918415727097353942692466271765722614319588555969452478129839172836781923892963523003258404249432594981288055349948786551626442875790582809119417941686546406618377517312839501132574716807112845462227432346973113748421256139029640974662579416009913396028308455294656234160516689140683623671115495080695851299582824017896753201122297769617776062284127440881110217114567226972123408303920637022709368123043894210213522044987229536531482396791377059800164932760637146409116242879840497841549391608321806360436124037761360905991629976640749756699181293688305597812026201306601908383556959238781677920982547261449748419998319635735873384406462379647174541453211068351608813741402862378692799945261187952510562970679488182961026196492249176066371460556934974083244875870563111600476322691908121268882704455963938825820338687749949900529832723940678770563083406003410122308714443644516309899574018050137394944252560099015104310466529177264126149048490997192175401251492931878810834099500465677267701453324151997203946784213378556101295233928306486794058552180683555726781581861789862126549527803132307893926868643535073946490289191271008625842783481756049562303153905738000917925003958942411269006291660702251591606868493964378118933055373188716750755553336868309614427739953883674011561847272053994447888424105476921123324294398306343158602918491887333586907495759068533925334124631076004164843361416715483532799516477284609034748221973217741151545219513507601772199673862464900681351317904713620439298926466913437659888719865823762447661776798698309719032752492346261237070705900624489585554375870642477393279850739747225999258332747041390606637265241068913699267888724886093259957358710444175405577020453044906021307690079439054893489263939285163346778730758397848899527503482898108137782149405365637943155979376446405780078357366277786347689137901085228899922932269192190491282652241626833556626275450174371323605357676205047793494738887643191212721213485227170261127788043310819131925380286987850346812988659312599645888561103127144257589747720351227281975640737536649766859847933089968904694829501945698373282121155199795768771647734238912123912829847682838019685837934809405996088941996918841718398778342231589124660918220431600182324251787971783999557615085895902486064624210959829484853416330598692622175990601273152437672613525104604140376698044755981722279690343529618513567535601646652470314508164175442652641990340207297304845792361517931373207083321599806292964463828925269216870049101780982352318914955853842318297789602197010592648403729886038454796380036173630618721033165067437152522040236240928042420727096836679777620756107869041408358245076772797243715020425160265451645567312869236774678713911191932485265491117462737961138352097489330467298269888150504536155367811086212379774779727927845420626602201305041665298752188319797912405585133434382548613881844579288133188649652220348687067123309919947329312135668174861236762030814976115889959296216302035225550938057192114415647460128734416184264767668373098586384019531931491168893413917011175451585659496536163573856188197739626807327679634490697972171515747701038683868269706979649956027962688168514646834839907405577407343585308751453460000184799252669201952775867529967622948198931697875848069567047023510699748352735172826070241150628433513182013593646039228520720420442498517178526636119830487979706725490425938280222929930667035312835097456332517824450204912402498684621792567914385517805581953961267211429438632775289855358227498978846283159883268738456353575065749898259991635412433877782852856623059811661198330115545233614120440873393700195327744943544280997994266256215848591299191727113916688113111185317008798567928770125789500874891389568905281168867524566591805626477123471409023469708546259633038234728748189720869018034722920865306879121261832834879585302736515677409736996180734173340720466614226319165545450869245637703352966325383335165369719826672345875683801083388511115796614292982563730168258355462440622576269117523848701200116560211558634998151633376858090934894096794802094667168704149127134700929068434183647834127117935664980124376344332052602731110520359260553978359106697788693443219661271891734333547599678433221860394851986810299886940588245788072816862872235924163934758818047736263684835193152732991556616798748629945179897036892263251322882947627470744353736696604790742947725961451588879270255464749877047312457142769495263640476387079924240190888069501146959512795744039883638779510367127456061097669144830229886354591198546653438344989589818090966365309386215549702456002028392015363150236352646023069977515930779997308074272534062118558811668684120557861949875546564702445068450368645043862650243647308595726223144645886784990366032562065737447271952424068654657990315740665156691780526839581915717052967849307890127479962446084983124562506739254419289007046610143833524861202498781996275903717366679319345251568861314666802687525931758326962751712742327370294691925823759152107657760423845534058016187851269754403575929945496393551240954317871171375911451771210248221917505035056060106147430690104496999749477823289019210648342775383437187012950803248002058067843403666101829144151678669845036163749701082021173304734438654182594807044639661485756694962548909842208022170611371100439701840374098151670959255416671209642675756701151597367003450826676970935276102830592235275176584460115658975001838424255163990347304971852602502139999902226980604625421939957993229562354496362497508176223761780429866813193554459383756604341072007376088099556812715352389786940643452285038854771591347001680897360717878158992046660187613775242842183430834810955988209297123850185762782324765987275208054342797460584948386565686620796401274645518503212724938816704163745016086985428404339169010931582352717904356688970928873338543841520063694644857387759040939581694475435476780174127614085939305375336460343566300829044134198217128163063043888823715525306372718767388566030599804731604306509155608993322496372709043898558677691182881905083677697705115667687046157212144241118982529639356325763227437134060942773779469846461729751886602740077810574341247946800225743689947030227723184138881924454169005592756635937478597240830665682153811322478075268685471459269004439058032486290718912716934607718833658663760299837582441560972906101607017430823240871917552629839786566899088617588746599529409828230606841666670222755329263517348401332735480917946174299738433572020800750259680942193431894928012651882678784971852037749478222025152896087869825697784024248352274046835737838729131779125264944079053787284417268557658885467668879735190213724734964487917134989647301415970805538073664075182657208456539800729399388245901414770747714171365119031665767993131792340396571387239121631473109715997123857146277456335233055096801500188364266531453958927036600116385618157230301411958566919768352421924792545688216661991144705639171299854657582036482573758184871222347833971795192988917278908431453233631807941973307173415176722162881775744927645327729768604563985936686134516471263043888915766992280078770325532927983898233252955263511888985604206526201633858139753893201268858811316047236915186374999193150734173646507224746319766564325573112729004130070859378784548683390639447024041843069430156209899389621424480588175790503340941925450107450655570507070698873153809905852528470059365405378062810028004053003647275659090407126776742002519824758688254547906438274277786766861425255943900327065865023898557403283953278727999043844493556571219824323794843576648374198663234845259400750491960871654730506832330546555841765378441017326538960511662760052655057335904990794846233529348818938769658045565647804027632318639849206212796099085098526324271135454798297569665480664303140999669956416134125777942980051914680659462839205624977498388590116640404109136861864459821589343874864896922956626658801773056043292343058468955079361020880492762981673702953314520171640003116598054260150615432542508031345491122382186272699032780344682814122188256191651591603992065121933617841021215332946522875713136595289988883500430041620166754269140006983508955135927335080888829877372923041067023427050650928300495234390489219315647894724273862269727836302939670645750175356501632789882317965496315260303768416791870774065624439186049909820447585984173388615966770751606403662231156163732267789104034415346685092298607173049562762373461498923888400382988563773717089323946459458631553073201702040180292808041736672437053565657007213375166430341837465076183244676715277876590284400143158689554016303763562254522556145533497092831312247548620891842284800232915407547186580611565102253675127867770124468505480192752262624015994317447458539942273744271553181950098602852823570753950652136714132375632996249729389245942790160730226155661962562163296813601316708527861195066205321949868785800106277775807524376510026109246606212117398876549162349339063946472176460536917490324385204957561582702136639884113178656905790477094971860870064696286234893545021483629197151876399722298930350044349157937472901358138639162519734707865997059052542231769592380488030447200007404293131688608968490931613265908664634082083128204399472082422735934122138295562062273048048639526280901993827991912891297514729863335711143465247277748064589469823591659182488804106165612672424924194770868401818892002577368117792591919204673278632879233534708268251072477529306451534389163242445780863886321895473656033537733105811536635967139264772422577303436440219038278815348315387018024712600633328078003207869294245525386541129937127295952454834010639300593509166947918168659717223429411761942997357862057011196840373110004878836518367154863065818472184406276464988568708002242093740098926074790157557603545894988036136633368031947259310274804203606865530056685549326303025252958093162872240921854874051840480620784647450080084682990060298560645857753618116947609430014891375478722651714369953697144582261498748777392386332250730546671806359427814997945918192349160694907131720400447979537818918505253389487226002334663079231980177537682122616917148079928924698245974521383252067621544171717347882730944987110326781661637151340061157000189244823581736062965302052830016462365174260270838063271437507632770690670638756977954141554436639716365121015478019694205050422653854486224089177535264032363851650141804547190543264511094365792534735666176603957519052224166194268941601900258790521064696165211022674213904792008157856606925244144065095140413353390689302204214340927910475813843851916620800796802310302798035175248467845084127248421024290266076260705181590631294009569729913548954326542669724541256713107816716646099720528679690663057345480530598267760338995066870103945636032941740664905362031643365232341810676401801399689193204553507431951383737322760374796280484796392759081836638359351136630960169729341949744273696167190645911975281960853344593152732116567484897035847513724533073467300293142843965917035059385025270068365235733339619789516055351651432421654137271859152382075525203731323163608091141875314605578154201680124201522803407184466126826860488082842547251327176382022390392839760170607537202393194446235724946984172898046815072732414541122691065555727142562209494292168245469758923229415306576072083756940009997758484683126967688540002306305417597378847698049625318304272939943753334566660158797286509917093882075381049528296278718620255281045314474245315376132122859997151549239988650951781061590271287320195502419833090080024646771106178281069463333576386966529632402520289549388700913610999420847130063966155515004725574061132264259968973641437403215543807291147846776992899259027549149444790647651205035405169778875467968421505637156606560055268281208665659081597230660585512900710408883923764948588365268733290494156373785730858392583015803579340693198229247784869195791877472170479032404137295163584929287295410619093030416916161486453907090579767310826448336959297545497916481951804558283190055353525941569796561534659944464681128426930372892695134481715183144079091803270388544338926305423391589203070426138325809368676060686100004808523405855939390477965872728030424220317007056020562926837329127788427131880180226552092345081639555203130370189273449314523433997408607434989233203126911363313543315897975878689565868410983812154573277183801907251001423577243986313592012413994835349879860388791545441402412795844386076378018315087931010846957402199155325204020785838974223367071720363544093586006500614149366390939223611364186880682189216747455045827323251412674257962205436453889240704495845576437028894701328707550341387918750441746359369072364607037707601260273469577329806591223509906807447355266874046538164194472639590413290526756417053773099818424218770161152691122609548322539519347461282678471527676370268285727638238864666204060980178298749554476357477967054298653927328004261548736037182089588745383177266945031317179433951686600640673946342168108924468873291631117953646084596384533837848474136929771142984091389423652428734186482136709172949715527659085882890662817438182232809725925365539248643599785466956829387405863619503313888168703493602851881829977874597123309713766364603215176232046891872671751058759182226192956051995842441138506927965822055285678892019582448322235234715025780140859013558853131758240865615508827612745029836192790716382035279423395018168146899779424880326670266613328943267464015416034312131134853199640215555616026299623603871970253265755463561369960708898196005034788555188490717779672097644736581639498091798818844977492783504920471824417438088873367113360058209366691788766928336884333292197803262028369876093853585920068914315595687244001016719163777293536123419818292175643484883671579465969281787331985780340655262847967683168087586567323756187379512291052735518285903914437828040756331779122165110118717436903915311291001471490371513991256032841236309054685417241158343078664721317185781111326036046251672755498167918719411548204482562244307891168508655754801040641859706756423747036109252194025586772787597455651825072605540952980000804172111699718135005061535943961223522873824211152225310606239529114726733133713434573218687418123367711360513388545916437081480493368375935316770005084538239839703957285378192511985843151230148444016118145232501123454059587708882567131553312415562351685988217851284721718364545046030701256291112385389726806952092979391559535607323716255631835455732428648718692347863578648508860196917661448421537035088899778888274646560046961969778179497550493872130179067545417574138783206022232451784808692605176652281293926972376564418488634191897918350211560754726692335904350973724225618199379614986637821862857514349671649408197678724553200063680282509615608805436036546530511101765919507192639479727676258428802192434010901603336879188369519238349091738125287350593296250490930288446505974893692492626617533821370015756363272198417238313603260940559460622810535601983986154041744317747288107140460189619819146375647426132482750459531559132471771168176853695374121661386560368841890598034711363480066236372086879784891534222287747005543143795686878056659155935983077597754311387154659345728479941004989164558521839893118848698659385997051128279253949851941288961226491020838010112290472004641993906154027824504899263196783070922259363772183841066058850998984364387052417144345982519041259697589425779658414951359803095845968171574306943273442629703914632376915820045522402444517652497067733017392221848191358446921904361900375820641175460190062125615685960958657222067700552011330784174039571910809496936127393577220461324543966152411906940660751491229231109928765107914808715168363053864679329290223081207562843779124785580036832357219143143334298497803341981053142103118913514648424842353500244795467038711419413220853569781309993061980534268158740211077825408626596047485882907041298015656588167303438617039132019643215448929770427334991936283226737623215629111489101583934795162087061795918561560221717566999932464290928814163642135341343060135375564606340795652200868194310653514917597952769722654307601455326454943276092578918964248067360810878408876226260818893947877907810873844509290831950694735059298649442643380600519446357904311939989582686412640520324096001516813267277680089988714268582053992933337084081010478292675177595435040311336748931319077471166659706632809747931269713750090257660761709784083023911002552027221610321189657893522778096914439824034714229180238786472239478458080324233493724935408496945760454283677995999358514884650487527465284637484977199165080375836788624043029273427195448337615183607673004353130776166983951514561470045878900053383640825597578968319464067624105625519900884335457371336847071475257080834246359452331897027003861449653803887158996664379714338050141397210192745550114092270638269424715390533046726239800461715184457173178856555392101717774705634621624051238572984365335166347571718079241235372013583144201688615211387707277595304206885803474012492495486359152298627664975161107354824711179975739267620288118407558699073519678261403667904999855217507492674885740564809823568678487547335742679606294109496822017493604108401644686526795559747455112737080566378419350900960604977514557609905277298225253344867988197324563912625633773177189906928761432981717778480406413195097640316611055477264702316231849484641107432632734243563724359411807852836392523781722950788546020801679683730687328950181927106812974857231120555224607840243483825802260484353355499421869809280911451266837911263022549770137090194980607307220545207194864330457956767028353630711057310392714510381700622517188492885436594296082844002767923168438147241533150333485299726914289831756340252812429864933432789523028958794778867783144716095634949677908364548069061075327459765214072866150930119645828059092706557923972506960525429315939679378428019168121484815630591658149522555669697399715684053147610928609643196151201962562840508148883233701226237863165316341601099257584843067330827897275881799442127710680157323433597049795426924774337347077194991236226718204870285692456944785283672894494203500307624684895691169705380035167620053330837022511115357233817498141377066871975225769332696304249164430191608303221449789206194841841882245614339673243572989001498082145850111470569559050482305336943192561054743424718657151667088749782885978345244203588152731321326184890073220130523473393170678315542702310549055905763533281557521588562885879521530040650673646325881723516805957914634806997643552192752684711851549008225819626493946279365446793697475644068356641624357404474138711603053780342670818250911585486702775869395148481893302552230498803781111791693403854266379917568550858703660584267617039585166466691573631670621908845020032731350813114735012167322916850637798529718702722934512153545854584440210110644584819138055356033485514665602298562561078451919407596540250212958507398135102132704464061107675964410492869774373492882515810930758770108291230980764325977340332551975088447027326638878553944264432925768728562233970976904467020692118361468823637412041475252897273507140646374357902181795610943143924240057391764195988685224639436189786189621484227581556975839444716898049532385187384859888791214290295887071355430739956442638692953606566814975566385920028224080231010907470624449073811517660592168668700059414431929952429202669266620905956238307104278765855048004768439928045542418870853218047104519494625578444161606584062678565147667861211200495534001466088426786251835998526010608849516699181798160799374974590695719165969424184063915613563673460546045491982555962398517933824511080263345226430759638724388460904227366497328824164340369821486610997222316561598415214024754930362938527258320898908072108447827250540247244032176462498275591145074666601256001827213953502321750137387686621928106976300044178278758255996752915635479038183172990230265705431496625911480272375603210925288377827373706859341803547146598849960323729956090473156334087613847956119702313354685734869339245191286850785239981950060267173891211752269026887363057153914633468732223298431794430436073442828158737677551329479874710736385399655689796138816064491142926475260267132052673733823061997785683617381005373973010180933943141567501595840871528023550461853846144555855166117714783267458380475060747597550017336353931162360955329327659887772214597488583653184141214181649791041608263302255833142606521086733494349293985461324001002981880881635035269063425493049561498963902220544598541324261533867678862147876061836365438509532021869395067431030514015930309135627279487083926121215356612876312110999146235973311625478653472828792126986163747772460682992073971282772043285840106766637585996826586076426112024882976874841272493511522274365714730289692507149725905214605057260315712411608330701925825975624587560833110044400234714365402977207853449205376337724673104630973539744856152012906990002003691254924970171081223978536750746881526148671184901366453655061019397540999628135709263598544086157937572552952869676064418005336969208205305795961417917255803383887086615279050306122645418382265507546990884915127243678267545772972429534913272108277820626082111616382641731283968939525385301950271414380657080772298481420808715134018991107013015028143355603549608750113725284555759215870441291254154987753277474856295145436242509687327888726796636310016537393987645473476303302812707298363638835648285079850081668584711912921908592165326692772222214063810911127781439777782332695908042880472505969511180460758293095843709386493759024723076907369039608717493208056551041361426441888409455966090130987608862348187223922900828966989013517740480530442916881037153630449273509669172810362266572565776483479145376493396300730450672706832888699911806527771339217825280342322454417268838617489531158072702500228184381293873335076120564077673282147936815983057365964081219702956112784503440890381564822135551272189029303072080274199978129489512612392494368276118192648919008049566439006292198797483522778642430371863250303848018376694755116560183009453180758326461836476762623354341606507641966313520531466306792920817586343596094163873959956099229212636178899568880995553232618328791819309892169749213075924417810519584708588468765090217304572779666840790728110603105989119739240554625107427278148302962913357477855695116365189889227130773846284310310810457760152638172775306340414524543834861788508456083179605987528989238878985165080165117655060568325966014545673211253281682699922959314813761993763859791867676983736369350124896342811226996626830052330639187480103585369134986781670986844916687646611202951984184961071824345102912042614488270677407843697300636594468139222353324076844811595267674360607330901096158038617609595129675432838729967030163866440172802940507493504744699739352661567520539808619320720675354475771057503897312573518378350610132361075220210369408996594014225809666735676711502552450570407817299136057469667103810198360020649022074627181975108112122660312143689079990514208314458942832751587500065727337406121929660563740056331190880061453937281330366865202335254404660578114697447901229487829256485668273192467858502536256347040111386894337334166491989135428922858391135818139028785895086622878101852378147739366205563997191791011958415902454703737437960670886318471517573770191882431718320318784682368051177735717354602775197908140351493364930176674327272749023436941397990522687803380812484266840366958820255328216981494606955392105413051379677738019748191436519362387294224484436122844194187132311813483684227112154148411997852629891752251306922062325244941352282021688006777704500656800331198602750257317316055432401375206859355375616157299369940421015470077317275218558352251001811317164572257134578800963960979357534473287008789421151700898605033402431994989990817064122233993023185935430138807205608321769164455088166044001791524263970525673888292788664189436923782003834300834655563418099586572211793700967768793579137982449571874246134225617011485481527690331114449554154726322083601007069901216325701062788554944652981815379997412571058019225875271731644873274936948434611136512861202158814241513028928232518926579314554253961163442151082581985445171056798080630837661012268076426445841089948098243138493688940670389159831762011677880367418583887338249483377473559911694846725618352830551432476487682097451830831377667772449743087301410014633685660082365752800980632224020496884211618378584382083346994556086403156374362603393498919089925431614773825469952209911152431755707613930420348454155861225828311578483997879575278003399823851092177759607182495333274563341695143086805522920838846207947461092873157868767009434335897869365124304385921233068656173364668321447245593109257878142739467769380685925933635542409087374564369851711828849926248988539186405373413356945990785023003904084573479926348493389101999892221167537144846825397250572096568482261905003932026984134615028517445269558134768700832314483475951119765667541515599892736963371072108512372871948081474892213233927210906589864944429099199914060068464387993524832409244279832982776472195632250222989139750182453893513316295170418102450057688592064400401791891785415596192922827562817219984166308059388476128473113785008807630680298723205392886925349799379023800427881515543130011744276753930055868566719235265212213739170958929316874033850541920382070472331629957177714398243859173180818152323203230494692952177505911775083181081852651190763268119420611499905965423952255589035962675680480462694631835624972697001968315581708284559941101061169283065862840187373050179464541541674850562361853121373757011133019046330267408395662206506180654010156899905548842439738707331017520762102134032846151636767132792429848475336644767058716479935160599746930627040056790507456792459610536275914101203957442520022899232352508631451666813897676931056342988756517552335936519091468675334250484210421224980291904049420234045662536756690224388242287144182109291009077408799157882824151708032715941997064264546613918908350441858898383879693523519654793987035836538526923547442515856502626092394036356814484999847220748586772531453177498944499282659465411205041150211491023733343270366329661313189082319357966947943231327147868635532847050011000682937972802685718673007912101314581711528482224287570494351770266118307264756832013787768290967488391401712466054055476357914398310647749660091653377732555295536013501593303545525274063214689212629145043917879640198708125126368993717366283272628564994958407137133633087990601236383148911887195059922529335986064870935406447681649908954341557322820974371392820811786522172366200229314680090367857624763541769492572836057114468154643076664269889711532369220019024325826887121729320852799006787607980525866669817227487152062149238609727362805485465350892149322068027542929078633832253030251532819711700681822999139429209513395854546674223838599039735256869432588598579807240388393811586783238276808611638177901794342593954832892129601447034932473363067628407730357081938497390149882191464959544472360896088065315769454161487735810883861755505953072060371016038775830002255291438807737336413920010743575443705825778521974834219707248090831160118366488273364593374064780822559188509492354453335796246619623406748435073065882897468206582388100687547927039614203578313647204889501936189746629597337716215294321277721110143307964447726311815721029340438292167203941579350969639154421862433893886789859971984807888047798394696748876752361983276240496451814655832047744666003641030692984804013803954241437593467480415975943901243161095067857933032387805232066143182279410281224392046147194228385369454475558377851279865827063022094920179859130394893293474665983394762960330128368138502406338352800560548833349837120667257495961065385838425166110941105562855917351301392532708974062539029219727780230423914120839319380812743603895301185606641899969690692318887208160025035528610649156388460058852152556547632668665576027989454838722915208049842801932511439137286643027727187111823716077294806506458367682669233824742325953107625200385815114465986468584542997851687528174180615230017132298555727947094473107483321424318771284300898595388302173145759285265058778257960065957887580180496241896958589925323328978412095921266564207243673326336794190358561243097233671885243512280633343132647287203317532417182533657119882435404743527675724092794125789575757717967904859855171371880219168275522352318861543469239798673582278406791226408897011589387699559224725336339650730103472620181010729735176806343482548969039031937475690296300778109399168430294178815689510469722750210259606023946005224854686254504112070123365891462091727616066592791582228138634772715726558620600195187340907967426068088989530627822064110627877703380347983986563519382878159420992283679324310325155592189225655520039322910534345843249612758706090342362668973815807020411868028300014518230270641261003292848706326275052901775891529639368754261393461127696419251165398740441863155125364773990368388556173270439406923712196038912594441177331043087037722852977665193245667959098112238284634474881493160484045439940051139738582416513796788416010542792174063920671701444954197105731498299878461550187365951394558483738126745701128585186416031071665945277883602267911412935064104801844057703858043522002932276907130531623009893599708496098620589585196442409666886973953425109152214994018059925886851055775024539871039032654194332269527352231946505713884187500219983867296480278683511234881183664107147158050724442360661361319924953360310451733683990006012770244021784981089428626580584816386181973242703373985417636391731034034005758421980877357284033298551366927483508580062377260040038005745709454581025931716786402952722376546408714872416388990158223587804976056400872313910414273036156456617799226947630743385228236257523709670672547287600963462896627474649826017161175160406164252739426094213530254047525049512576519556237424963506091043049047040888042811449301442434913686607865618578614072628998352661140313787130065689798786355104970007897188421050733424860108596867748979482184269130665268543988730655140047302822477812798239547110625380694033099358100710087948097424794358574388664966860458628199831249307715098205481661802220587545212296950012569571799631735058770180269226303147849603998552419419471653900149784777620254136257951544128713999024890420100880942252620585795796204722889114220003669763235461495617510215180941076342132032470484811298492952013592933829218671636331847177433615143533464616150573646109389576319424427295152115975933478525565888334255412766938731322836718203374527657692351231348045388512379231437306736538468967048392322343425098009801755890282797643164816274712357808858956379690041609129083923856750215720734270341563553137856267621598369006796973478640137182774591642370692726824424002086106933677360299638608706951036108613329556454947862101778519800864763804695570759785549066182869527494602492301964204714887906416502909876369509681966736290885712720477330552000171213487797000040034500722553653055838863796506829191872653597176718623471930248502758512102672339212841620965245328516829705587581451423515333482487794638422124594393155029731589022762222208976746339043807941496124032347990284774748553627137289846079248055675105724721704583600987501810813647011507817431035027767984784722073293079055468543325711845589029216659614623315135497653008069254259433125070481461538818821445019388807119367483678420352205945526875351128324920254157179553735034024521347676030481755941946476679530556575139685625132688984242227323742084550638840427807775597482382300566091063382095096404850024073854306262521200568187380726487179801617852463546422496186548323039965904655115130654245787099776902768818157227108641807990989992615432103387116627094131533917921989213411567717795281430981228067104178519971139345624229554755779198241136907046247850945535127693587970068882930682861495064880865076941206530019141695250898210751049272893383008738238906634550466924047392159040765339890500124431850763553551690675951962888843443855953052586224207518511828804041032159389818195372136802095223172181196014129427332203344281703595376648662531829329407584284206694280118997883681391918469293735026999177828457957364515170606477178610381478475761701632142387818930402173255888733039202739716498922654238380663582818668793512122526598652499557670031433836737848793768177045397967475626040747232322403218276578046876810350182336703752210706737265506578019197205159877958195173316660931062604966638153325890295262285407338387146584563346767849966225032401913132930012635567087842316435137101170967326288880123175270406295116903596480528545571458889130939353280284650889363085388868863986276115937790952797691314536794435715877603237868502136242907414304778734054627799203653874605182106219703410398001471448606427752218731295103151609627330466949231663020136005133190217163263566318886082173514177391873894874664474621649242959015656381723638962991315766945072184075322024906951472363044491980100569984134562390165337813306019616627795631202221506048408259891148218775252820315120838720495661360851312821655285202741015107026446249803186355973827537781370989186632206825141940227281119157883251850484913685184362563375899691449676722835995973077676655274772886450005536336487851519630439347252126078236311976447738735898807427458898798579336662923037823625234283531219810315278806081607196922517130818949084845858889553433493686947633166542467475929331534609923870554677804188890104814617568520715145392115381993279440639862545896272226666277526200970401255715058906512073270146277076475494940934789955860911997511793907387819836321049601799519116761209204491221706033022651108272876819957557677951099508032067221025412245324895280790130882362477793092759624217875310060806987494265155858301055517872834584548546122514863438545114469469057256153911504476164539797286701375812887141838105015641358396450418819590841644840843801935512280015133225149593207974329832345974036337769351472164430245960685074904924932738271666421272804403078739831968942850188122666502017940684618958757657618468592883952041553895935085858202287092303104275284259903796352171801473274538622338134396161770531756277117729834633598811663652746060749223011070343928530200366567805813308662621882376122947291402369285053869509685100031839621616712606728977223285979345861343269508148125836198019756011794159735130669406970383010316216645027807814352975344610219656973908593712589947469178416940559059836310955508512249531620837906598210966903900936226027112467428781826552112610276716447377752305374562916205138724032027086990615146176690410564909661848941587543146053510900927398143528306977116414791072516791003448817826263294422746391884768908585644705094461568073682191557737130348762968058950565230115186359180923858332609966958783430794530458267099890434077705634773326679165530121803931552875818858405106320765553895609938128586587623758445209482242359482431435498512288523431209153109430768500148013604341344635922687200782352891423868964311906707189800532698424968038332634717143742997938219267817844067019397644660106067285011595584047738271976760821169086257423766021430093522212476654297727864135570411544222471449515731079814050357677239176551234267730985746678351499444043781926458885119608770847496869776680393856948613101212284407428822973398019298589247975798740562098085091525243385905894293987617510271715879992930724884008800594598140175959889982817272247416293288721174482083628832219435094447662456792865058770050455795918280017745668282596058406429753083595886182707136385943148670576716531634688241011497978080509488657052877571518996401712800247545901483579972319987624818687104114235381426499595642682302104957983003883440147345190062700083417072832852149007500033404794812054942134519107134047586277058899741276914111561707216627116010167255847669408688844295053986227579955248190318959310154943763502643067173405347086210611978941471259554964589296779750987963852369780071838520235186486846111482294109570938504740506577578448956656632725602183204898445136922007865442537342090008378829168247267301580544707239727647526907316814993016718227864552453407314298354968122394824235056212073072713692259354205393632871366043928045594016672794760003811599378955889904207185793454924694169678597805437496082119902391915076261920854516802703277524488972720657041781093370707678958742718645198315626738212714389166071589541644958239457731426109621031013018726155537050926489799607663858244175656994726300428460962835007913042458090786696281195436589590635944561913932963577881842157203905271959446941587737549604959634840813612205105063796885271923695190042956225480022889682022457310683174499905873480529711833998055136285307095850435099582826276327886314540241475512014116314881976840836394432120854000103334860261098473126125710976339060217075762096200721055975939647949897996190750353122958781841528348645254944365449400931696836438922127863234147032836351159859602214669941606065609812984173256887873335918946537223737529512073568686051009306294788100610207576204443048882995265388554403235794879631973426564766178747013519223828081028354974793794702966360353189523545712527658546134642748560216031709895395307784533552619163866933522612886439002945121258692190892577596845536978181935058068926319603207350212078517815393303810451032720678563226474809559875211878536822744656322747876556626221257041496868564595550901669236224878916041993562487040940375756441079754879001238824370433527392692993643897833223115757061995681024209929517856449727331463883351775049876200445302675174830336709870961103071759957322985043776791713819512174909465963631468374215064903637482501535560205523931441973843203540251495818868687383104462857245712611862506661392696045889125618535616252977230219814634402278524075517468849304232520388162724205976993447224180582355185146057616966169725366552387608332660662041502318053795701943267588735544683750592411973583962758470198562512324555907557146352392866133424990871760879862742076643864628619091753396620451212880173683043941326893615292510499668678540523130062855832462075175413143362409530546380217302933016644288861779852037293377753055328221028359230740004150429470687376165083457004342251267864235087613140043601739205020525135892872623889558571801372746357116891520709938616507727110618363584431483495930203823499768608929700015403505740207579771215127468415394135572952304181757740407766222665106780495112993883165138181488136952754768007798097770261587750951288890002515931992709264726373205186830766535195065177419466962102367836701969250756898718794803889687534325351203789304916311411544392735995162498434651311105097110931573304056103930039690260411802037117291753900805537661525249038508021879884533844970340299864313488557950938941558195143349717768883012165790107373669487719254040293300370536286524100292637472358631131792261160494132508077657268642193096293355179219747546017271998650603463038474364010987281567674170790156905964479946026305324232156665491314025566548719467619118832125133714029998394237510668215835600944085157098488439467028903521938902442601399323331457454534566333053954119890075692956837521204352877566560268711083567953180839805764068073363256163234152818898191109862134865933147694512506535208922981552161738388866328933200754695737797726595478278467054365974040217850578844843570066156759411434536744328770307115770664776708363636856157173577948932100809395354273896061376297830618334787908142275604376866151612514809263523755183198954629689670052931919865303857211634438673533649485086259184893197666910963279995488587227297139144479871512396464709413669946498403670640356173406649640683212802370081081468947800178930805089194287029920128615950824787686635365015782687343916115783013284221183534721596959582998140938826215415399218946834827857436950536337555367863114752276644362000702093558274321199349872747550966953749156410065441240831686577304633059164660293170637727552320217872033009786749967892533723988828033406066793122091261536527960404131488362467742176954516549313664489542622141520364821935650875909946702378822796437958817871567532782099287681616501950798536251850011853438503841023803516997679111166475317538736791386108804423217792399924223249695752335772740184819555963306377465544229490184189048024583450301764577512810548966940059131064225101664145540405531566471926966883744631663645485192630349576706612115413504070538655215773994118956906757044989964771812493486796220616334766152033419281741167822209305196254939531012580054533732505070525692948010447081825846344167479945318084855491489545677877033872964002010741404903193205367370042269282399786325071514827408067994956240105601237276632233458084650107403141641389700095224650996951158975966504784429104792489832091162305117053952770479993875263013871511293152438831290754504222135093566751282395669916261794094420486266434843943014058254164032216378765980176816181222448471742730698911471318495588634715602702718760588666072769781739688816977538146618065042964917348976476441235463981811754859835363511560639886501086913371443408479155275768369064747715928788805096462788653747272145126963425457433762318052243485867109377578526519950407226978127175708846973789183311899791689306519978954013363219669006732036270043443276771402380489138446550957042139149365671050131767688462196990816692283809500376029406586011976641056963453770471771043021594465272147843662995428585412827140347803435227138309297585978643550428257159575708808810858096979913868338405072632522440837676055923891450373357630580069573988065573894024264225193297817672199779008643196706589587470107285042230447653383177945753955227493535532448812549951200863661044125527435547298678628047329325872413021768512999451679658455536508951841081691483273889560715670213860043011565979285456842286719001254412345722210070753724804296821512675910945828659251398875709059903882423974839577910851275219253426718753779987723725224710504186485083069179922132346285964101454940894362319106297415360712820889886130569595911450938097186593601827130525183968335479781731530283415158137304810121409598419126142705492812405472046396090659604312207107385237227096685516359294953016775115644379681835369827459113878761717999962486145331850561100799048016192677730015444578242218932190637482532330564204668664026151686979249323026591509344080944095142280678069447126364203202044408534354143373635766303570607786972242602609349491766878448959221880390384241652182098794478604947067871015535558158904384636734898442307679515485770991455205630978894247533003424594239884407357791980072597344943643197245270672005873843251749591708129800418254603893477725391258816217427976454039252821101743638906788926961007282261945210082819422604767047865439057257975499284280003249961042593515051357411054046974784271196699495005657623982330994551259248111356886095347917451358664795048890081433503122364370449673643741198824545064715716104247031388519576402783022815797677995602288863319407565631386880352587508211980571325346480881873199381370850512207998797125866791827059401585603425034179105711288743659557544949816878803077735177837971869323609695076190500493985944343599790083070547415573593039794296347384783411754176211813919263497381229565996224068294629493103519008582644284451159756438691762911701315884014228175809720544781225490380283903845031535059669118282500548701939742764220461804142565409388201424883103300383668429710264288676253619173526520523749792446729328502268521836878704917669873166231199412205924949289496063592491003025062645334444864693490243237184243474943766050139244104340576587957100494247910133589131320250962350873141079268095649611638859198957810817310731910122057560885221235257554217439210331764734299905531946105102764511499301040832847573926786162879125046554075796629824163593068398475442822034540298556681979226770883534753035526333040870707665066933319361236089810815250324184140953239439563268732860250492305359895871841918652568697697907045963378316011319789770341802707833046576847560383416651647010773174525057107128000382131324868421110269172258173626070768811080532700082959992110900089580079698485802389249558774793750295153534289850406404621739915582546072393669009206152518113578022638933951730459391909689895155872221274583986550979972947007637665678969145293398698193524516321079536637200720783215437272442368144246818308417808498755351404399982938136953952827171661500807067127027317766311951499567990924713846413115868894141381930704252162233548301416907272805152579883301295632191866527437855098303549945712954421004462678108599966015606708704211766782557981495544418985099363045805054394152500390896720353790714754728295448554834450409122763982693617237771216366386595441420250276987879541513028959078297249250871999214737234409634528198265513873022264990396039177946830652546756888674105848680833463123278605425919598281837951526287293312873933609599862738723304157509950039284951760669799052430702805333364074580934758161650190461365443813336513520227969998891787841640936237453123574813109339017787650855181887756391014229193726353017255978933756362218513675750409546328407564526149540559317411706794072787289837827513179541351067569836066951712217626865882026776946201789411191018126843868705708132849176659906965341979849297797589520453894157824313147214308729697642063942891855601838195950517563413660370361984168971405402276311849840262292206623147256053797729609316554090369447170213012045160939659852256622998664856956289803361173720055254009761933809192408124978536356929843744917479657911569131878576369855191656098888211026896561805156334830957964274644309787715257412218017290960795190695638634952207110156710333136179646414471063161272211410163201592056518337164443362599800204912627843041147065114816949980433647724651069399311927975227089584310404857131096502544228530593685875666830391363732539811999294528393867285979887545191824731170507240897725099506780811135412400520282594805710854942389404416973897526886135304664331568403824102753471139376416541301191577075771589640531374142111056756182161288378226442193184464156896614806763655738549765098785142796395886935384733599125630292141637233066254502402457734552126260234476958443451428215001302962878561384261210532865450685615458597841581645977731687809956563987796166181671102475380356577825292899813318916399575643264629664526193097281261645511933243070687620591734014852612473571758269394628187081842798953733840425914634293380766451228105798970542435496621886461588186692054983551114914595405760882183033587100783359311134158740160923397379663410283611156088935105184246620394414251552795591295136814085467939016061944418234637242932958896474940435466712504011503508456516082336391130948325680999696099107922625335190975686399821620131117831638622766145904923704221749740506649433427146796042247947115186541997039199327831030983513996716695663734470699361042607024080922988861806271454884951691548546083210669790616946581952078386217281574522234391466248109413922602612573024973235404273593704941957157683646520709089512504131970813386416790801924072901909439020352056709775732901156065300213740755735830196143200276341434340362132174576427112982056516249900422609957444868022892195242081218232952292968395424934292205396406395489757553456495879956721839620533419172359581341809519651359796398661977124361625183883238278851665837815626448872236549120653258849964263989623608828346317887372217905967558511397790226184237667717619830938361581116893341242924996392978489087991482503152990384738014903438019760392861065879432749578240743057219604524258018297741616361119368247216604930715603970539441166034418013518466005643767568842171941170939895542695444695304124799170453804919558028306784616901670035920753822064468999879105513659640088727157165036766599277072926616501193221704245899287685136855290249069452444424017640262911163261387681336201815367082943560289664309639781976224954234485703191867820373665964422282791090469557627953330307199616712539357849858240115917182734959790447631950817119663701986706914016787446405673558167266212015862522718642573736934841227086090115842166113166552041749805516548151646894180189475598027106841722935698199656168048927889717550280951113983524908109022445303046711798285866472062363226218398894419458260574824439379643070058096892747979861793800241673569924597029957993740789890109560467781936087805764494325059603597816575259362890986242295266992020497541920265841166485384708826522754419430366591894803581782977456167486932591805367134456970960586705980028444283480686571705687756805735517159489195870904902920417695874368848980212250046275515040150401985858347431126439126343620380807271503741667313055009221578397033338363556764978065804493153787874984610738025908108327124978254435152678494113365274280360064165404127647582588313536056395570447510958220713664719144726540766686481649051011576276287108511220852971208185605532166724033467020506774874159859566782716748853757333450610985616548954527199684802301176657816165862443597022604571848470766836877895397003729926988306961405657797934739832975012159531894382998025233565593245887460739485790026374885317164939226618251685710348880882189635108643613539079244840988902313423326660034069521137736073647253562202881497759708489772525509459553840594425826236046200546363183247902763422432277658806862057113982082757574627558082759334039301884245394220284386041065403178053112687661317923801816059880910340944091408044752332246752253248618365721075417781556986020122822254188816880779506539382243339709983845649369156465499475762821333136243989275975843234718126520491876995634556609235343158632511731496558211219404128214921425283732819240386839445129274716215319119645283739409832019972904673517310558847493862315192678803992885394619702947547800504232223044478854412568451131417829360231936788473841088292795403951002165216046476704263440477072148243798367584098929639557460806783451760506770310089685870216478402483894942222768686366804216205830536813002477756254731091085746630950445791362285871406584685371791305204342218207964118985567162201492679583648354505736081790751960005836451248742037619498864764882567301325516428055903058236351796886409180341974530157756307047509985147939058178646080294430080175313084818289394650393342190581553379135411728025338351572449761775959859728236142162126521588454584034621403096609858950923455437005048321235757448228657465164748258334668057423285320827650566477453351151420133163764932531967289496807989628899842484221522449718567664836024322674512473941471382508897146584783087673471240763162414260818479712946195571601394885941760510778387575990848214985470097758837703099062248474075719892969743510920517891274989707824034104713253966463657866794621829490132368102258982574083577838570447868993405025370949414321448434262386770754365729838048432074972208764205646330886387172167133032752378153675611487859742593162890230521601185305549111072125476849593664614997573247485470796219244942586245422574532254099465718706598513261998995030378210891739825963263315322178610113403683167983781589466638474910239774895725438124795285508077777067964072126899957122986422842754293599704344153288546240998874207815642928670813502526588703180883668688222065086486749537121056243491257093228049895834733872761800462339059505647669760212226717740007633613960043241797940596877570643014245068690800426743131843129093477879857138464546175049482250479898572028484209016923468284940175593918467313422473749958024336293629850724661005087800426084986530753346162000293561936329972587087392132496617468045215426535359915621591983755297793178072458615535974520236535687497707425667116238131708203952435162152278006890840231310459980423273484458932975993940861748259521343532050238846447879034129725328390809911140908235946018069439208381151556483420484481124313073099814945595156839488035514330287640549813913399092331516285251092906523526354162337228161566885797369545783442792055910565268023992217098305651164459123260724557723738339916391378750933224035402565396427799183473620456967692854375008684954227234194854991800369386156279363516332990252298547760667449491854509355868121826492137185359268843805428493542625654131478813826813341024303750962679971799292871136658657815226292236515298487994152817400737621810643962923985869690561715277485993834027808196411917823920811388131821069312745149032374642444130692941741651719145765188175774201658639777090153571742637217629841851059676043837376387880788579372146712904070098820619808542638989406984524489317819701951712389959238085795984124868509903661983571041391906082746549703190474998531049746702798610661313387397518373653273871346393988510727435375489176131870745460092467734020257091516417071717754932654835160814083576876696330343164614098012536369564609330888358123727783472253900861874443813051104922586064074553612459700860047230907702484482081398659152824884193428812157594185807541883860138292947342917540248998194101642655278164481001957664325757163404039276475808504058391110986839520952507234511351558445323570568068653404638172106815587721340926649224832772722609855468323177630736276948200453399420145452595520046479703172144890038816956368763488062036324964747127332381988986284147231731335443745106397421941401840119743521434028280760876027207180778874657000322246123884973299864520140412626169925820401257728070228099403576441498115530837927203982688068951987028788972596067894411138353313351730108139716517254848733557359077989500664169160233644733139792128787744688583468067746473068114350064327754121972227569922854889032006452702403708126327040754735745524424669678583679684808797736306211353485061985763406943902464725417677370944528656903752053220339948886267373770302607581533175893495148115632309646352307561227754100836277673476807973327544868798629687893331476875160481106234978563887369841895574682852066785544312709140760968161995293510731910612682704469827860966530581563816362714879784237216722770005709513112104151928049800263048784057374879290149835503238970989071882494114036350053168611091089379488677941653636780790199325218282487094945070817915345863504855325547849764298682844146993011728165964732593498716628850530744357784069241201251731624850265465716544267320693684670016432408972007953071180135271220293501257991228023506712797977629925187515686230829082428310334125598260728451443472660079930875298592287911118856128480368039299642948806946137167421223070483716228559848491732525156247323751534495197048000666961393114419715024342411108750167597065469368460264306430044683163193792165502436264461504332767603721509838482064337858298394869130577345626147905377394389955358006475022020301295587054169168407260305772383932288456588918899904620120392815881992326834834619775666312398615997061021115490839991920580092677239932221111098180863767077021991138954670771778949978911386273410192818452199323493962708545020440584556135899196236779787142911350308403836613949942779139466216872272858323408180334648042099939284130400839718698038210500427465947447121299399891809554592569378830606740005527601954860424913230495239066025261412677059531768211393221105651013897438719822155995519736772786170948099976804522600504058977261074593383718229706929841678793136210555549137614254504217726221241201896570834545411899104556371105322059927205912608648769566207940668324582237925738513298997693190438844900359318708979616246796287600523234066899623836437459589911397075913270593882826712818501946835742432726279011279438653900950899855111837945223124117418216277267455444283890901389866986876741156112929145831124790438977190186431840295680900704103594052365066642833513284174152592423338944314855029868119191067486685653791240633720274503915322034523063212286354702413874719498050667950945399434358782067007329424623377330187405387446292819214984940528497881735634853126604597366011203615191401842965487244068608317854719321266220335535755648424203979951896950273383976372819083689692040649676871775608654799228795472090716438545115149591910713889173373739536401532311490365735039394755318344126720532615278222072330604934666767763829695429660349017295424502779398708230362272653543773530926848243255617586738267102285515691309508825280867954324380921259713927346940629872964815171961547525588514532724839963945143074707960008557064078508701886615218821226767950083559598870495375852860599907190683873058682769296881580979011996917709433449797695728569235964871729229536144928597036031365492339414762747316632513760043759968980085706411996010784648143579159168262148781392004345883390931655619262380572343306313093921260838700291932882474091206539485251292901755293468253856273961055325533670875852638526445728266775601320419579787606754545893924018442428546247544852238244102204034942399803996390223566985852262913013119418999419939221436459094374461633110917502061444496717668144996991176634791692906968383491632065994042615529795614797441485614448459052353452832468192211298182365423233063600468103738767352330644626095243198004281392799475795019529017173506574336542609925913292492702736538636000057320680898513446647092122014813709616677227112105074122293071838447849949825979806087061232887782756450248411551272066880031707029700163563295912390990377096951150235471707112279316161930033876240887280330598274093576556114877720901013974314457911472209336979677453269253248555653355163395675217582096718286326632689985266500832348795451422886020386391083448237963452305701508998665567182679383485018779199317221323040644150083983767068742351966982988878954456423627623106771187684694911674441268472747813662759280427572820221173186882510063504056942127413421249643810917537138432195250938602277606300933141983111823985369674309753400962524032012344173484355241788342311386410884926046822400983242929115587219223467046805574185150674010017518585012967970387671314340829179184419206385645826527636457842356653452497257768238214121918591576943344093794913061737808960943619943410933659858548556163264088629530047046160724712511882436121676092423546813996394681683280260233924929533523337084506485692483028971250383615346956500089492266430512474211914730300784834648010750650865263672051044193069433967339074399771465568724528955612208229070892363103086661712120953688309503491761805808106322712858207797120635494623337554530990323309671606182388475788454663047085847335791353114901913586516938399915775707121573142740519178801017216891903185470608302145193394993068750704895875243713338383089935455757771637869852752391938881720018649971251476933794813912281420253215249830098810671740705181172746483613210896363489573916000173129407575257315414028428625957672343967656455491643519456260803383287658048024211261540885014306460153292408607462518465310454832662869493500532511459360357155002570822187157200282737316612704131300971707852847685119615361042331878157572143636568108111008195202981500705243148160429978391408287393993850172272451879512852403140883877336982371836423671555501667964604755305178805471603520913209412810063419886674007013552071403579389796246254426428872989585803272857882944088183025255919558975494437610132774906667055994158682941216892275623005826057381281770527784268316285956225920434327398371784039551309424883500516163872095183334900301889248794123044150643260859211279513808407469060048940032088577024012689531344748334112700643535127137047482504779498701383640033827612005528362239683203890761977247821227509798821357358579965653046133772012246930925753911916641934541383548265592995459579728755107984965265060853895207788032648030566478220561804631818705773351454849575365215146288097654706721604300375945745442800379506448466889666395195264944431724666395077394826730226833174811390646202838615463188556317676126202001056124397265542190903476479261846156613490218192297615284412095897612765022501760997470671925906498948353012012379222996394901919858212379159641974596952904559466958107494022615478774720448001546767644637062199727419869196456445068851530486517865555615932376529933381569028449295118380524867827910889746818994717717057014281861900315261897012646176395613174929071700201632027550652953638703580900514010240877317039362375526385088662390355266142794879360197189238105500493825086018929863572585927295307555672563575144008703775320976353603516671932594788324774389323244349635277482741454307736126950649595232395565463523794268818191464791322085794659104594049099700695944695836606490909092451429966156319612442720273223993918653964947700906062274321730850217232976089680182445431340720173069546445594129818154137661091095179583238221018168399215819849110906489699472991359921489216912401559073211344648743047117120784909907662375453804246853687542109977557742753201663428413215300279556777208115563015922495961899375869427994697095145847789572892072678894103611770946690752896488851065861165651340898328732463182265261260967390148351571384834675529838359597827427910045577448427874626919271528377239004020549405916913006633781715594746804758246507086133636736411006108271126718658268115035017229619983286337464396347236657308639647317904432872095366688368865627828033039093566918181737425308554590862428591695691961490805098397965427459982997456391754571789360329872271821419478154771673049684146694096976685367772906641985343723176729584271510852971594611934469781350273335775390863668309058044842308385728134713588547922942720311917918684714065756011868832019335981593861947185256108720880493235971054025158983236797011304477084040720980838416504818147460291911275871604952906163970671624365637703705185668835445169880734612516389774515381587207484181368923781049830996079897872608584523332353621305233831148782631208325239979478199965241481119591380368483796313599910966453053693610812407345460393193673203816754442158791112889223461579304708560177696051452733229219181755031240452175800863260528714080798363009573286862765723476552720262780387142664810723903710754685481561077860758335396677281946441661623610647296318447616838574803698088673135671598952964812775880352444211788393837332253489418898963108774318483785593675233071284930572596495856635373648773494809424461652358700861961530791577057402731556486459535405496497201800042500102904080258211826404405773501630919518625450297086132771661781164561814378243429680750502620638639755885946210684976729530487201553354626572715902359031899781733413724192458959971623290479357005870493523719323531486177353516970670214795403246455738163231762292168551549393340914009170681747284219106924502423328969742840027508220665210483746944972645673624201584179649045736774495684502412310932137160988994859049921837037763295358232449822201832255587695988170838892937498842664232512662805438631788453454666973669387694852206324772158818947464636660630110309496881969090610302355329430727500047601016914391984989158400811385482900682748503330103006446812328126043259093073125174127343422427632694099592285160881540259107631160684605659230735739689872447263291224434162020108900914005019263844596422977164053611018480315064768423069815348648555052431842087693042294183146987205112939038326399204027650834408540046883271965297478569564641222291460968573722552396817917345231141524730668811313008606437573749315305378859628209600289118097490414833712414979705228194460437564712211929114615317109515116772910330458094045158301571918980767689964106911815988508480808922546899009964049488991545392864587108495147357308956696672335976997837912479626027840053875628435660303271646897468661260226227495328673753230181227081470619677594474820015626992487689648001713099518918529345032087952115031694091311460566591086666820319045679742544184455898953394011420630981204283542259689098394371491956687010603504925902453020630796370064459377989323189362841364269777166707480757986999426249338101089061274760940245087043372890993581155732120559180706941152184744163385642244165135488751182997811524033139437530815041997929797460225652788236501657386030524498523286389236264101643360254373761329347482500668870989714659247179988821865035149160829545370512190612360290160539656480691101558522915173908783373947420150425770492486718763665177472740052758448381119165079609650992504136489971304836312672755744668930974948891573487270792804828012782909864906728142719676540298279361525698752122951058282687187066611004559884739437521409907119948132047831762051119736919362924956244948394318303464255943851865042479649072655424374179123392471317647287792326114036881208615013094520677929966416888833641565083812442599031811806679184363553592626886159422538240760855087996608837909020497607189231117750265730300428080077616539622593747984385451635414983740727039732983090095228485080708881064097220603110948873000125638974931811343330711810431318993631289966658494780171806821374764770023724632243856553939813419913684283004040952960943795286183679919250926646682276244635701987604391430339757402606962227541160255618415949844192029127221858411602368380739628464057577529027023709390850332459907181893724406786044999531035680004060801933654604892050835249205014246814385005238612421333549991068840206469729369140994685691302553424092629036195471183732539522956834802730911853740317996887609048905556550426847588061117003457392532178230710465883748007682150008937808202903292129915817896519237699496381693707399267700241242074290987447120356374768514138158611495565957959550978338753753068258142189277430276552822806789471371246816320884972854618833527497046373653300650799725018745330790656804060167939854992010165189358090911477964080379851748507063547729739534169720694892234170044403450747959538818960967366198937952417575047484650483902607900807835047537838189993600012785277691490183591543242859885936855104985362092185646259956630681044223266292074434049346263372927286554644023300618241187198969593764919539277055525206171197350593205467656033404729705997490701065702948020515497087065467017501862191962542775653014289706285331999120473986805110459832362464027728911473358449880032547596179687886291882090522696679965221770328785913202571405487829356511457225517959207111313309573748612558346934045404838382744458961919841414741169739652743377896673413761099006222482064859220036010171797035329147602975338289020213943192971000485882238256795460177306553243498645985965681927811745503571926676661138738649222007171206618443545729050262134150696924953446283054158406549429701308384390292327963614331411846753616870996467563549624259825030812923654020160493669901457224865262477893177893196191236868206539264782300917302291292015966155531418764173888506734688732419557714272130941747377554186701231587895060102589892070697635694875381374912617749170489263624978080692595313933214669082911964513808615593779997959878479565620001874954307900748040973925993646169655572531910180021355959723670825865501135181706805932099451271401217939109119458130620168321834763174755723956420765182340485873934710010702062201483346916165228093607449545849798187286047498808335404456607795281843729718328150475196116855884640991140342177965562926473615775170767300182812335530580278570977545656882925286445675593906889273184557308777772862681235229226538513911541077410748036027964447759431053578739241756901239745929193408622027060194058764620993606131842880355664353896405105800938842035781456249761095760995758290172583422529607654169356881287730040011760311707661647895056507613178586057207990318471553146339490766218562444874252453141693198183991716969507556759851105991490786288366817881498494271324456413241063947558741761904733265521036027021725335154781722290294473280337699699416025600787149481354621892903155611552123983354387117716544366725617139913200757564208464652598542072976206179605289644373854526634289208479142995978665241459670964925580030010522525250180502275565871425922973039706191768712673189006956145672638267106127450686253399523562356048097614404215142644935348713686832146191888956731754359879408101323620551538682999505972304450905318855112350721400920465531983731046604323976785232868358780323341323762679971037408165608178001896530419131446333289840899244912303669634410296705192061314993345123876448320737548112224846359125780673905124155848558470533903191345584620932837329750228311685038462816424854050557543553070794432858654667500659509210303332989534923022308680430151408540078672465638361633137881149895660238902473042747582889412955975724280586710444015088593833680337592659061852548011022832825413029026078798420798961448619600621573503166656722367908290869915432261117936239667244682292317255572111077290755022773368259969113718452810888510013921355324053934937592323799751797635702270271771662138174657996680378336966339381158276317475394475103556313271822301592524035714484301034605905483253354699830512219250836076635809512428205616701522073715816082852140582955867472826160067546096082418121751674494028938456160201261077964905342608951234023808160742721916586498772288039798693385900846899020609155429203242412502182360864134377519278558150785958773370870593729980853426680601230829517043670168725338707540612150147596017474068346040045208998903135292463325666609850873757026624625993374176923962177868546641584154582300149121826415197301491152593619389969691167097468011920167754229287304907878961447691417922220609085061034263431707909404533006907131905773554574209672367976379643684566985623547024595588132801807047557675383639680750004590019450994999276042901984672004539655053871798631146713711572550355079462691423068500484083413655349815567675322486792138820131903598798262048631788349832152887347768503501725644197146487195735268382079843701575615481490697800661215328666637140097185729239117210978284390737006921181027498811014930463633079035375011889082300834894786713875933226630600078076463198188951972490237206932971518945021822649016208223799586711841358706803734892625132388264575966478369615344577797017935901814561977070922452349039169395174974033851143631088441181300175231052707163745564231701475919075979963954383646088466092350186886864487850134074087188078728851425507362889037923688298990546240587370231082166943236417643430925734297182954545036761648030931868810254541581460871811405474613710130725885447325857184721168799525161472300383969305072156582783109096852046358269641587946760826440963869939712156829980548746010367160263043557669117873029222276932019484678514909199025507499069906486229615698776041463225704422039081448945619616504111337243635456610584068211852163291816029858648874803412114783308793526297720304708320755090427655968709216889867255439693832620187788199985489536113760735424266802361409220084560869271123971515273135963612692246926545319104770869880756473916872998307027038744286860597137561325984902725753517611689365970477130292496151942700526361568186001349418914758101020210188620153093222613162927213822817317122923180122417583525053261931556716643726779766971428772558363599024304376631159903204027957996308115984597138042999115434348867946979967561743347959314266777992021256824646527311090968148940126733067131498431529277142779306715724847985308258421469975495267333238809839163154625837612817398924869056090553415839935584473061435652019842574568471317822396909111238484223149281943525433413524703782969090221374328336544692729654883800716632867851444192104553410066841661488957974110285415416309893552555608238333045718998768846161012174783611828735789508352938418692104226514098255753748399151019047373416427206226242477196403168204183536415998322799276506690506757591995773718252584857352220356075335895117345616510008296492992325286049043173482419946296142320998635620476299244828690623394297543144148701259317788062777535407436075594742410305207611094854694587804699845215653995590604719843412851261291383974695903072377570865220572088542035391553317442942785331686581615816074093517707591661823877991026541388989061390658417747560820122461730402775353055239539749754243275435193425513057098626560215284964900964250392516200429201012466902177753632470198807342000191024950857741025740167082965130687718542519379885074083548960302909058009668110376434684062169138258299103263804417435497154804224440269017128576947289501193353256732572307682063035066511292614736389726177230553434246091525927343210966689619592811818726310791519982837334247835004783845880963361284521507656804259996932138036770515480841436442723926342389408193147491396615920087156314027032603395714642636966154661649189491134522797298758875321974739569943768299112695103046617744960332108409358647305691720972102155718388863148831956959136874383387714262741722452878886298224776289063785660958469488125157662454480175655814060777120567739075071269385723982652736063290651607703593543572018937963637842057231255951841311413433405561701473244886434968998928731748413433298795051386617606366955927373023632148150848083059893855284007960337788630362787584873979079673465084774443362379615811393946086623213512037623580407978598460052384996102887324542508504667281582056653636357420647234347396796395158795063334695212270295424513148103623124143381761136109167817509831708637194767906445916558603802886571330771483173978703543441837201005917038791030275709489712056156558581902173651193159967894588710656783785451862439835973615837987420594501095851324564324897101429925346789105296330173552854127679539560644583107759352089256030716292490054865133036357611559079243545094159234389155359698869999272834763052836268873049794151704797098107771826342854468748685592153963261637290696731854217291781005352905739856702618638747080436262446193982856810762047325250776833317481020082605805922467647172353033946758135294192314790978636789708634801054237579103344519523369240410773283226378256011717068410475988654858835983506792524976479129768929701125920201006272555545362101341532319202018096295361248122353712840070148673041130839680449405488787935090259657861593492143113307082640968581608335692820242244816521416923168386219863912754735134591674892609012701322492814975047665944115700556134356940736271612343529960437575319054380459301963178406546322573277133982290119599875486709475537699664516724434490673636354069989104892715774066404015477798120163652848594256858253496543655025743194580205266825886297476681581091215069662988034746541776739289840696097820269975391977619905487080046126472409799385668709691701002897558405391523326795421600964526183437511429638235953604924607798242436999781898651949482856438735886723351347923869784994913939890085644446661718307227067644322296235939929410751100652815638591616870227859810516075676765683725237424758822225485125596665693671945868965876310651409291901683758009561335433443005499084469312040636442848906087962486839305556814030306191887758427800113831746617056464937101242343597919289107132031181458846471203936955526313105799427664230661480230728244870235040474750973830080869369178010215110288007875322581338044732750572483744511251673377612148071643107057226447981522148304347335145132836496063711289082488538514380139800640658521199214639977046270067181392748922220969122738086917033088225594373989111189867197934630493486971875018168469983770773711135166092832690845690393694090293980007476654263442211592436839798979284150316196885205006797717426632465781326776853365752522492572359982438380369049923058565947754662166915886373468170845912842938989286089118921756118912953022784907995408407769756602583895483841098200721925357733079673313677080339314980548845622658144148392293106269032848973129557913910516959909530306089143518383288627859707805865834680690721852926474926689516677471430695608304288701762487882500399591290477553122762409194704731580100371480540765952374430402386490640299181502189243034888593819974052287608792690724184389057817879055427538386707573187258878013380991547237918685462328064552722365744012745078903412472049420872635689918159759697113601897707901228658087079573449189641968498039612635016352129258900411404445820102348614848086681477951695466588873460417916834694864427524356318404925639538272781800276142113941065830467255638970482034607603395476549535445862326219542564964546183915625070903858532711219715333421172690585602965755452069966485669057077792431907239418742096942943757587413952582868708851764740556123197913119646624541666124772184250083310771234741952294154988716612571608935346319183340032177610078657242501129423669882337409593642933094876352042932057221056082195510813573894084242925101037112967350445424534016337214647119046214679470666018829801415098702945776492172763132700513579283541331253022710185025894049990155687872728586197382437275666256143574308524129080715384042744131125119851672659065590491003399148437001519688352356622661822015632504135467468608799135957739923448749356637507855031584214839934004452928335516787297356842888582094865573794733284603941247028639305264027828119406418785218374480242957886333573974762133352091175028078840779154253953792985527537345987035273624505350548460130969788071986287410635062983748741716126063049567249416821985955727800849896807510297553433200601712505266872158367628390170956293266293283098113310011664828238740499115141055459999028182464540755338920864035130161548440814057743981941098680478903038089854609225572164437201884150156939225117664507054722511399392760902551024299656834676857507636781322882069718795846326712977020236564982131739304472743186268237332831321105672958838536932207083397365761123600674789243467905489047814565334815989708994406335703678471292734932905683493167213479509542713744968216632591376248926626973567988122108620545109749891174511421710167159749909482946988668312009678950510901488917728097838438514750734397955951189431954189394288401072234680704366138270506043202559811237965582688694315547788126400989963763674067474112192475288188896826897821667797784055915666485034441072912134351789524671692057768184459522646394605453407240464700437783218257468400386706467772509419844315114642460272184424573525073209017304007664652669756523068870576889449848423808187481778695625456219075574480652400811873145508505181081633830542311209124411694773930244666197751831700357584061788578173300939305539677978291575100459507878034221264813521423444740031778754053127409126987998688371127403355133161722947363167958653369412803286408837585555698938847243811652264599067769536122004100192284761537707890291720180706187648894072683470469559195083753257900814103287611195823073812226607948967698597289128515940025212227249608050893871821897724084592189655534517697075500659349393169848439959516525650473261302411605771623724920120486199683008857964011338501814416678580524597266030200972960403172272276696110330036281179910402021504329928718228094509579004752895757451751272572506103020156272477335143818665200352857616691677158084194074533294408573233021689598259451173947979893804653463398162313787982123108617632262555912550373724375350384243163957411686282367579841030177898932356739703735589712202991675526570866452749979843685168955592114527926813893831091285646975469191640094071498715913398274377446085820550151665446918068502299611591163827061236748659073540075961250099504386543540139067085987257321839301815238142460448264123655248618099215447133768038909215028585583328143436377009340486771070276723383932494171655394794637872965781282520043083048904041618273294945011062456142898232445636985885646362511567263772573556520737229268174441303836569722230251745587964026464652149561070378548055369244746497961826302858322742773556886438987298457733502579718436964568883960997987725900029866537568608084229772033936293240440302346657313956450365014935391310304076842880159974548193129470900208328900714419848849378095179794231531280085211308148924181962689312179665462789449083913839507396335623120098878016644379883004751138212536570961639359476438927124705476402522573158417823525607331748832452531366570185672690288587609906596772295004867979385914240022119046783891506214088315084097147195641491156341580067029376241602063353653661826026030758446737077122711858875327670764916314783627394499579713348125754051773684955160667160495853415531133875613539150837711027737561393048307116118064037356591035224550550151172655168117333195347069127052568209694867162958497588051384644848146670454820446854944805759172725612092801450377431968717698818609473690186443136606893042052305423476404651910174677036487317832528940098944950361382738073593184073632922327295008843086136527108946376233546005036163910935601923280444052785518522664890524805180344112789701171493626229543991221083891177242584847981601630040875755491198138668820552538792167222188843976140119213910683329184195761952224274571513116697543370098911024927460493320557057526161071585901688187870130513392733259712708894938836073404790044670968635259586014921417081061032556329443049861928955745818336341165074885655176212167705179763396115558447368444245574591645242077096730573307210073700519833181491977948497233892560709022470482263278371741792941391059414251253953862684333913577407285787343521920601418556215319439016617753303849397413947720778329350870664291083564618895784215145385572212621160448516067782404110399272634163989546332204468355675185240242818617482499005151877268138609173239721171658530291971948771371557805496880182096886939573445123232627608079391606527604189584113955879467403251902308406873490399306228840485276411869271711935567607693296831474613918629240043786115707634303442928125338880901722041764660817918544282175300199569684431120778395360202833506881305733896219842881029932854679450237202483055211073740476443082082759236025533784444455831625015677023737764077834336068526434588530355870766593989603706575319915251420149080732560777733573007396153500872373181955450469237935876811020777178946346105334313046164773305152417441084843330279119684178708409095040166556748359848413024357982075475421311404145655098277257699683712320565367501624675930617058688506515662429118054558832860345923169237945899544792822152850218585779973822412964101287976412626641109893039162617052705595795758335944352936797537652019186662354563637135512626570313280623907255969290520039838105082513955240949568270216669392242922613117234802704707171280363275813208463384555609431847216308868563046442851854566920654916203356266139022586726587646210148576970433192022855350927177414667422713287643080192246584514283423580559251667832503152777589571780099605476434490059879260107596383050259286425677100667479142634825191990346831752577187221806376540139470769015795411096210401168519580555747874113342738110181594675931765279987723958788435181825501793054853725791714190721326122948806332191798966728888682171729374639087228713247399593136480207338421588756627611970809815259976683614897471943561176850529566328453832297107957938211740032046752772041114006273308974832585563873957870045366606136202498011575446230420753137201246343116622077000216661265455254137746093393021030652480320627637120377182983931311302370881164853916508620306643554786089221713324790859024106301979915801773081187213583299008225474547354064722776660531892829416340307204696967992804206333210862585988658637522838200081900551512429862304230877769638280609734772919181904272426735661118926589996255223149542228298696078860027805303338228286562856941547744090173222195735356642896876484324939105181765426151405272635765832710813418449007045279335430620315598137362124422139448853490355482579576465840470313910055213180956152037550476720448885436131545261506734023790998291204930155456789791335733024586915977121026397064155534649714887446570640486029027912411773262677679534729802679452986461042194827755969492982906104094510072654551282444284530695989222319862787614578348966246398435052435098885429883060725517837837032772869763153576043265365922140013437700153405024430592080906946999992254096507418815666707485157252444991955452186590250197120862523202305042375469188820138307550959535958566030161382869254790282592425382732174999028481470424773049749012334778664754316269976724775374042737405509651751780173251218051440025914370880484400719196500646667701786621985875901942267623245483433358664386144767264159319990141239642536114530423317860780865598710820972017880923773613968626615655848489809670526015688140824962966121372259219309613403663702946975076800808881345859691951631600090474329591111158292042679959450235174983793563920568072354867255029719422901608304327098286323365226317591979998036619947979548552818279137393751389442491633018444983942269791702228699602575518130071933024401530332588235899724092060962605347057069036208833687055354759188313296487849185851047675110583090144674566764164529429865837727510211833143204254535870459243256765551825695478341649123057799892045502150199513072620111681966668971959761990117520314757157060803330118389277578618424686810450536083545958834508115123491253915079921567352394586918650118593975123861950095948722029996622842168486985690134601578651448017797169290523224166192406008033978693228470363469101865647394203799945491524766902618777838094838114349367918593892266274235175778136414480041578652459875256362262581071998781965069024211799780786199570069276167337468867683807432837132345319887357537713602275285376691537959464766050027772708255269895390445123565190933032798408755037265284257994581650679263576283303679791531360913043077691996487864479224102232468138561461194718677572890797367875634236022569927600994760265890007893695205775771386013150252383168571375563730926906425242511105544277998187171719720987211223690615796977643350281069981239624707682762982221675675797149756594576533993618727653657078665550765922746753169054143767667088878187803563317034595072010714456972061088488000164038403130379971746277775138077234948800915152584950199541560326412370380898364163277674649870450990953812513994896538731047633920908348437104884676261824174747687741352496422787752899386549659606122538136230309301156061446068071248571735545869094452780210316805301992183568164984681977664005206189685242229107639220414464868383872712651630327714536390189578187262478351729551747873632287453563488922905634626106544193797101087676348531773107128366556491439758535194531945535527373135269103769287377210565649035672034671178992311326718806402163397126672550937709507244442975574405673246310974913893095811409065602209838108063674318149135471615438964201835809937894951227815533363632419876809501411383984102588899382876668990376269358831524282332948852992242923018125746959134559149566620134521750876752310557185593498055351953196702704429724216470840879886618907272704356718089509275730661499725208580847711363554917916502371673094935781129779534954162519237569695237621224022045195604710993436087536770601128142190876801509382122158513874568767205263471381314400047625641724517814057129708530998536033153629194870852708960843220411524574330316778238726007244532473063718599190968588874099605377468904200952279590522396464760543236746653683756572420679385280754542775641695816783014410283120430805908562455984767479270864012844232071147578328500394256324094581212988690218466873244429634259027922251406565363006772703010050072133846128894950055496056378597735696144521416341972796422708857948465207899007503202215744631799572351908273160474407767947561033129908058351331582243330766960041281180920441636379433584259034316869739865519268965704608613943299957028336664703578136514399851032369163855951851728457459703937959735518906557456816427284645916267665253878589482075571170611059267959196802386824400130328710646647616108989505984970034653298047134995525358528318331120345418930738882348285287253949203914985859589263735860286113624688796966355904880112902374462174711146567587594589496440706122858964357767827875601235465709702080649395133131744442550472766313336110959127911912418582375622223386088558411015574371378254396933657016408906082573981132134026436082460183091745554233259115383467240902468522161448660272377184042958110756765028123038616093634195063914550342417566379189356913027383797036274552940080341255246596197798055549395387048690674513320836756237167211604988968391646435941551893191181571962006311977163833045931347927725363237976683341337840307601101060579366471645437180696490476893104037673126695652901807018033993871597510638073783430801867322977844703631930359494291548263245061849710541383074995196963855104649442436838122340463427157608784630632931163895334546599830762519302274119212761231604291814718783918060225128504685108162838939325787817414187182008480818449361177233936729370450812457650995346506347527146238275035721922923365816905800975962102938125136160109927920374768780442002660415928873246785763185558202647127965022924211626064134797961110875790910883361327687270821364332797629951010958403395103784933544586824819946209061442964520602778220428360925228633031919930345069290853834804511748361286070625078961178429966784435278240988879445137327651846775879857066426113526821436482488047111583746528893424887744351022403871849729880790240417971932595362633229681724764780689054123059328527058304061630379352345422726353751617419742850025229905258985404996404463039747478467209192696941168831041750815512722997640465093732303221516855534274188718106323604309839190700676453217171106875839282422150294678674743727982224843866793672702699164555264318995038640726310316661256935561606753362387746396983522784978545674935049542714791694083703954760037910451564081624675598864729811887160014022992326686690926801381262670139213357392074923972276957674623002768218710184077278902479880979107683587964959761149236882381411197537494797185442046943069899157466624492526961546430184982233462733942640708123506416858883248381781740445950408035998350454693486442649720472517345761590614449733342695598270008381976701239111765506674399709000036093475830653180978400251240427332724888648199742101572668186325553608740886351348103134107251736458160863632816534418025368225719688329820726145195509859969468666940680234999258916828892353139047503875264506744172534394749406920653194995498042784425327036872693110372390499607172183250098674117069833496132032551319696901760065384789714216236031710979082189547232393660835745030035826223794601222401719158788972105250397154589242585459534936180148360627278045002069362474148481777983976051484268853782445554957127091068324553666866519914648655303892660053845673126324274341724254197036014700470592862728674390153792767518026254842950793076219599177773341229341035761349381117481772310185452544030090040276482942514530660191780360225358284541897038563298893854286502297661115106284816420159927161495984099507016594353848543518755848535455978970269423001734826983352780302515323688691219227681448718553572025745491290916755936151413675614856201436787248694432762268257908908990747274634016580437001371900659290898913166969377473257021650463191615998087336109154137409279477990611766031860661821460083264616747192266768451188089478862199301104438330429878997355778818077789529156080471245440796637526958473236071904798298320149368271320407929774547594599044064079935019237233208477356296144773156390639775672128975841729555089869714350861896704325418677806267526600915114743654554505194428069360756789369237277609751933652026672642135211246753200585812641370020725955749843574751246732800293925974341346200801019890863471379801537182859573190147069842986244893418161639075307258008403266119836408784666295661072030386858822804824445395402509238507363576765800036679140651345774255146063152573337067820286302531229022520572819991042105841933092828468561671021748395882930641340336831584469271997861024332788442775524859026730669502277408477843187402889897176352916728628247999214276510417408691516960401178131192645235066247968371012348079737092132667884382897191644187204461299543513516031383083688303583858323337796846635147093037884556513235672426453547743485532381196831208945865642517031296587205496443172262695451427571022348110450465239666462809209843197107283503641110968142847959896332825891144367094342482673705304507746356132841200495027551413129964356743322810320290872092936142042382867331327789171155282134492839352961343878386668212627161119816473743357329139959750490934070569247709635633017901677168664463197709990133870250661265740908867110695928027763596808510536902344287484026862603743355537708153534363368563544923393474244902386926113681513159795511871693229397573185935148241950604895189193167973553999744755096974275956731581074124285341512124236505693529164121388286658151504856115606243611296951162301339996953882460216362524712659868185880259971051307548800631970707376776626763226707069812034842085942633372232473261784230292319299885129123813820682684255544721884197366864237468598356355640293882117259481508673181712790448979287492377925402499996187631005089856317005901811319181213002849110027063205020777947168497773680525612954380436269274999980517467004277323289531768562322524112443333298010015368358910750881223145681232142120366543127855543195573376315073132596990792992106641156310113776149143118329998843911161377205754243342083414715469225049979094344545472035064704059597966089788413120739797868528364437154618418691717534985391272771333341568387520792203875759464642821203561212184129504698665779281054904856466097221373635784126767663991555280243914396760693993625237475119710465289020221361664382202848528978769189793341743745585361829959898906313040282585835185447408752406896547054111441089725832996460080452550515936021985738641188094290552810149933596510345677865984340726711012999359421379728823765721963424982965174873511692112695191782634765551704289179650819854629114583734419715543333876213263345454978080765309012248253926815637194756352050231082431936797915010232686430232129390601059875939254793368348889291148369510870890213900949045868246396482784896092933640506060539109342181289486112646799228718717136200245007360430344013276428008705497455111698751472927079473496102988224862322824396916888482782050333860254528167833686389605833208655584509948524326337353328094584326884021158094375780192540792480684933316990973636995817701015750084149382207448530395925461055830679982621466049555160455510889561939346128772677202151053669058964333739252851513324701754177144559585130992196997758505117267999987086022098986491108077393696368442453900810863572986794525590697737783128916291067090717810644166197895858553463619179109655412315263223659904515357218241176988477653251725791876290887875700885842391782351574616004242087547341586181986702254093259332182890733900809824013356235826746757424295603639055409029683019232799744981868617809993832876295333040926772650539879565631075306133028278191094748152929574482473139318496215253925387600989846170971651459426378549407298453368322129639104758560446578357743443964667028696913787189142833652040751045878416580647801971443360553734971252225533090258323473049080699308401430738394833869170995189461138279292338809602496261531368168978655447491838575603171261075240844986800646831212699049905981387918528644444855852519672551257395399898045813137984005209941616815189267483148337250239142998174947418027570952257233721860425788860576188104672702906377234168565961474250678606777358767187008335722430587367438436119702847452633448743597132933423395005348380789904720806364025902667309461989793481379407368096909023728424919059962262740996743588037190852942720544145195239741456896794066736114902017105154563544012254419885942516041657747021323839328900576220469143701078901069210112334980612826589571552854651575602617281884038668921175027993676851964246061770952197449830726393289417597715395841442708255959792311242928528757228514841870042458085133247075348635876440141956734648163277211348623510959631426841050604183022665417164390720147264400829789564882386370484805597162271796841336304381347452506704194745311718357362133515104621964962525784160673203354754190777917289203420587912191759892699958333703183538559947415331405447315444504829523583083294125880627853578450864903761458908770900292303514269228712842836595788750686901951080838627840111914544852312217342182068030943799812554915351413311494961878471739232019620677313646819377743049970718305663961953837054224641875768195217856180432657109882973832005278560851899593232140445397259994501034362822596678091770187797209409398927989107747078732326243720318854250771479516179291464303135805365136170489812384712657735176325802399102677249745288752601468128242060707154804111394299378886782292818258418438536255704321020262446885225508360734161738760163959447042148635937660380489608887085220262240849203022112618898545323101657290629003924020852068576930186003880068764739677506639585497776382690059765973196517570797221603299811179309353225824345283390613209724250792166993171129487421861732678745587050787830300366340941069503791746095761026373505489831766802654026220923683616688828065243360704713324527358737534208364051493595889339863057643247784992976283755005181130454526548150522273143018862540867002193682554779719935356766602286481277361234173793115071873701201724413504775606767573445016765705838542104938564946364641848406230862959081997180110926617279883437558478214041458941844687992488445347630150375662394577928141782566870578633802158355337385362475245018879554963239141005750247361459004486730177753449692841282860043357142252228367358760547344832078525279652911042611830500082961297692280093656896289533347166526581091894801886719352394116083870632237786615541556958215197818216350734840241864332946321733522883328539014688562701387734578338664480552742145286395815546956616519873978169116866598206227691454827081596723731533616566699511920889357754017219307348201957961087682713295172154833411790187539140854577317353411629693484332633298536483569543987657100325533173233796448126623996115097527743636725096712632908860513623164244319099046745428331787808107186696398402819625794835119802996531023359858466185999222766275587435878621838919615045348604233586840426417292736317391587174860670035060309003477725625955536826767537977091116229158934541288843002154787291933156371371717895696200099273016662707295434864201712599443862394429597827895995891590774901355256903993301145015652962363592005824642552836918407865989266701916392573013353352495487229699344993370683364734159158723365331472366419471321638253654488378603040425849645551408603338490967624939580066341803961110530345854385538586595833635255550227862115738864313778403020556189866089801809977421606872831455696770661178093964842692006553787479014999953762054496136384907746323605800065373704203209826536634553269596811258900959110868132412954062345511989831785010033084951568377257784379371522872995183400338782855869002428019430821724060438654395094863509672102954772504718760757450142050263872104831405036825858495125766756662056300742898563106135978625401083679982125607412614951995363570914623650286547384374242169012579265384700473660986651209407647320491691638794021671816881497076007083233807815724318756976133355788734071502172485111056607696539891551856409953228143271850864287347831733761459470992373751385664940690402285397293981648687759171391133341938978695316642039163268556361963233755298875621547644232941116914630849104179783622224352430071279388299599184821012867128408014504460867472575179112757597530881655480534650011447928536071524575164726968854034718987984114458586822275290166432961242033887361262984198360002116586272753956483003584503248923188047009654466516467213653592577119432958249993672318443077462222865464112943746734065854030437244492986462210939943499391463398481846063253050284417698737538426762463894833558558492531929375206294310635503246709756188569456289462029994018960744279012124613614316829531948454057866042624122003401319872181827638293861129857396601236073478305165666688389939535266391392337866124896257271154628194990685584931245769286816253054841942492618295953189284960974899131496925132285004822255061795245337194079469507655354685840807436184537362800410767284040757534081086086406874013895755475202617586324000261493662750329417344588425447113769779538554094453704749906137142448455484451823986418360310111165941215377256371580923044719874576882546274360108728801174551696893351547616020385115500885611579034163323911301268706334207540204692907679354796043016532607802039533305538544470724282959635949717820992497118504072503782738669840198627538331325510272195258824931825174520319721658540903578911739353354136240193803017585063076863712100777258202723962334798034064841184612308402328302875600662335941688372127014326840188288135621221792197592706528985863067382143282844852408918830846142074579700604086734890120461275993440975850084352698668235770139056380407183001280538060120940460944320064236870585421971353517977545798340571110032907905294601650332862634506898999824913214510524637935645417179662596242513878144789439659603380175737436244057078325648697210712427192456887438505479052467877114230368681417875506857011424045650977829679557818106718643274117729056150269145256263732944673452561843975294283988718928503341932330631223560988369513381896607400395994669188324400065956598477383657206048324817133600110335567950485652199891295998860131260305822074624069390943869944890706847080205711007880286528981438416634373479264474689932930481061902797081113484888604613474548817162953933356096051493404857063436517308662004213482569187581063524180089641392908385836098926149627282129091279382886787815615876097600334016331437169036919267920706003105629790517218212569340110846122136780356902154851880518788324078424256277668183721781539471961113660851959711397154243135589570009501507073866422095142724549549379664968380129764388731866193579648697609301968454711125521475868754505377622740821913871588446163703444504669671043075172947518415253400124744957209632584443092352112434085810355060618043704064482757494651647005782752986712658553241131811492808819134526589568739110404454150733830189262260759929982574650141298630810520846583385495557254103836744241094442493523714999928973714589242091928998204385441134647082694564474070897993194360474233021545787931483557136467047947778215326580952307117546324193417488042738204113564790645612804503786148739134625708037155477751154539556959434982237358079902306319415430875847647117405152515029954226295291629884607125775276598755501804827669106932966562277729880334073551108659329305330947318876376852389665651235311401720553448769647788762919664241644747235271070001948796846360001906042568249409703604096408454393857509157555839474423113104334487206146026774287666956789090096002107212530804346548447121933522656957950894715177634030751085587370382764743035355570276944050736545615140338401306953272814755603962828844090916663902763956984526503392107292202238905319012298383712282535039299816143121393352616418921259661745287447051471108001451295416671090580035270499692258594967227224445032040039203906262195969587018374667492039626493423395505710803476082709696917307967755927667629389268404784324537914270078824414868499899758329265831525557593378599803478923795046870673403220645640568221088395554202415504124576040104374570800674542460724238942094788443638603921748066790528715990050190100604104042902085153655048047322688463429130882347938124159685418909120424986544403809640700338715401738610395810674789268521441657505984220372474009801602792114883260207242339435103871725337058566762125841068384510687671967496152447682619818051839183247229639042549097843340769267613882143239342195039571798379757187750911536231857521517938592067617904222198094052481209764096156918902505639736189460751509899226451419215504086202235808818840488612114531374074392706321634073541680176068795226299026510384844047559779778295320195469562245377102814526495987220871995893032587244698129080631107679615008697964776730204767044016657597911161635743970258536644155639487735531484504607858323294476808711435500333023521730027780126012506620075455391393762195778335704904186028254391239901326015581544329321467921665468243028429265581636849953602785201555171202353546579875027585757595869036319307146843508243513492684275094567558456929097453366294856264089636251403841497983967453445728862417483369707230733904707649261233178918654005820760060520209656716878094434599887016937673635935799491506888140567898957153466322146860088987257320124453490806152164031174783547010706029764637766741847949990318696278575156601929655891854464622013774826082610175587747099103505772968589649920765323019047127480650379983711133712339726992121563951079024538997090168932014526334982728401088077925055431152495576517444648087567448099097819591123378093723088771264666800086187049394786232443695934305624362065203056023031664712347428463587979655639544582600489020842931993248492047564766981760889739774197576195806443760629825299638376339213524988282355397161995146463148774139932405821118244660636683094262575675873616735634784144501251087844950334462368736395444849456550580862444236468469622602426983088595211290551945262643267327887249428139663626506103157493329690618790022435836533902792725356329037356425240111707325032048537893755411146161981633935537150454227077303705800284538809275806221160374269500949992302152514572087481857747091083606276268827667370970298502868005285911459949227760367601607995048744253920919227917514135489693152083048463826145668473206646309375771572614961272919559726218881326160955370119268163153027879170525985617585006915779714522648245515826064993175602681136561287226315329135564341431376811460698664977838894867554122174237427701566376283222085096257561366685434634799797987960588486764736625672625285609929268106110173326023842715509312850404968406698169174617602378269403518325016164068537523659472945829781408780773571993244821389465739473180623172552707919074923131057630181075547238779786107190135119567144963096483272797235427667260595796720369817269900941806362921994801421470241807741992885940055284632731630081120250372676405206211707481382843337746370977065505741281295989047653781297294416513220146283565646227087852240823044213029591476463699449142326892994937431901767265542080245414610657460873888995294860935780762871300809672795737499421634691971273385420344729418890208811699423106992298107613486612634401668496859441307322177107412464027104663439611459186349996244534316806967081717418948818302547302874995111479255204225304500742121933635325767284707145407557652027317863113936997060222874449378264320362430931633091072145181914683590295494961544615628072606090669727264789173804047429347519814643052655506926090766626988903291296902970387408372401740985502830247633901445696591233505503813672673011425547231292861957213078103945799986636963836925924474147054694244676557681577914984585592214190029553672849625686134725909086052108635456496482976456837524391147366921181942371439793404848891423863226660921942732334579899717118228129608664571282864922543092574525338775043851762634012544410978887839032570833908360327099550008210008901239502581959685375044808146944689513877236914864373477356092332329498525425349803354088524800737347506481410136476656655300218398508955089946705814992054774608915023653992196170089976042683655291850910162939468180869575424936166703660464648139824647180468471083867685438665806455629504688215262400816312348051207996182520051104330533469007591628521560514925581714769600048269944302986812535417710390294261206556484704874003417080097570523652212535514091310851010090724268085035038939113956077951301438172281062825102294699499631165257285640727858982921776410579247035872467987046956631083780644365889034325953456876127770431186680758701749162035285143377329131816274075552160589898882975753572506248355376126799815246698770734253364255981912683419329950632008747167163595663769582846500332724942521761849102439079941046807489221674644357692683236183129405122471035242803514149878383484009789184576361952210996849402824659380278185753572150201061818364621522506296507121114256625251670363724881992982561334233516497689859491196264523621407098443332664913340570376395593046840897779247055527810092198600542433460360193071371244172164842605464863035630180037115523296886996540784085368234201576299857914045617359859600394956374825743815636276167892480087777552229425001015401398068875226815109603582754391969779225496737518106075012239111957944452748905570772232733884649675412331548318703573460945087827390531649334333810383731330188169657401514749747584298988903067686461706275518870199639000130152734844194375427215146852862560413865894246275564732464918311435657795471615026437503498642928269424439172697480970364265012419111560051897890220493744004514377767273600667701187551197996738668384330052723312090397718301563064495068277372319511292320854892486274509397469356401264143829005174953728145353378569145773896770457258417617704149312430132927272334096493139047552598916141469841503560498259538765711146374754309145485311512979376254364691221051653521379777514337469921127038467637870212028058885866462935565887231181205853552772671680323317237505083121179996216445623883267462598831148711914437339384608605642576643594300108590711393225690143204016717211150725340230036331037027935540796161941401785337875960277935359374542551684165039993857264166286162791994504288256302006980608073960980326494657990166693068984954664665143262647986377802723301098493739405640638284193367849467534055210333213146700465430209004876131846358919750169149597342243885230312879011798353690066551272948624702460979427791871373051100370453032098417312298918962453488576887313352088233149145238803534991116737803159503448595177425413244851908869002911443227833602567019686838325128680108241135178982577541057701169204366490290832818326219097541410236923242777829791810293080215559122275338325187001930490542685274807169800720178920362815791525003202250888349587211739022458807953063240448286656599065433753926994399503034769259679945432426072423390192747702219933233610852441928054040588548314947662424121254207937990855540431655964950753778214778422359328880693041155876113029386213618001659125437306913595043719221359586281137338346560230094635864321876641920272303385087860697702372617505503730541445759449911537918121848767949757891207710092997335585948487263351230479944096692984910512064301040859543561558508152806793984791863200880521925507604546666825509239738543573085391863972797783038085464794048041847886110546578196100067739065531028846179892961351111085832747974402155087245133318440085507783263854928170810265941237590320993601396800331072952523948464892647781853999479291822649779923999674029563679090170327658599999946278293542062225119543902403138695510998612983604894375628662018466786321970102807600854156270730146186935813926039817820182943766290188799092696132224872717914551111130444768619089921693896853162110349748977740630054982368051548898160135201790874695449612618893396329746133508563802467059895794209614199775224734154231027780352737788238763515189884082895832050161734242465399926410879135448785319043738507383978650602539709438121586229416361766723014236182575166085147078401607142373793520441790632416088666315159685505523451893725186488135550422460271435795658918163894688338934497188571344138026277269922566827954532221513110221410252273258197057141927223156416602958401433409967281115209373827942390399157652617195250405254842731037219124643329626065849298077114243675827894717797256748445690558135787544019648516310640108704390682797045560331896091417371335268733416248590232672564310710170686239212722398248268034014406866467437396811753647597284843800375228052809085063692308332333481641070006397957452354652115234391745141283983228525853475210714827152520005510686109634122470569416274173501927859605411781105773768570798748573595138765823139165343792414466306775950815063096413958628821001297098182447056158593577463654824194066895936259192757197250025974336459053673247788500918253508576072214474329334569183549376155572843578430275580083355350309557736918087916516654885652244060158298311549358695683886857185734699215609756394555721056361862541152936629697059499397148074015773821111619539603478776367184624715027283235038189517839487826761671577021650829988482312789074640996079883108697266320628759226900178791155515731707655660371617907249556491724944396513845410192171455510749810958436908037858555703360112127826995079476026098229720396270893718109040811706871643838945452909882844805399745669878060227204521323681673595847390951619752816256718916071380664667845317593879867775976526329656203826553656337112390314584346994188516522606761500755406020578450720207946009958911649683860059487497907855428189966854981373307090821487686587060832383439855903887867525771712404488735887424039646453419521301088156102836125650480228797415126435676335819932914007821138127909930109404472894438312988680208491719699478911454617556133079005952892750108043375796022333585465038051210326859541130076406329394500049026690803280469230235296079476063699249639602727156476862506448811497313260171400254041775738554133261049106879285047060708538409345474650209848868856349039393771583394876092002310908559620767713282521130197267398856004293238628445027043819227984470984192179426738407911992288339881292395334589395741218828684573655312838671656262501604333340172025566982131099250660684197591352355562372131333965076826460909782915427971074921483764149919274342563503102266963143821259274531450412169973794481731209220369822586430686702700299899374832489367606512627010180255321428575673829322666069289138303933871519626374634786353066654684051740687421722668231918084276288956371918695505158897720681352480709348554135010813737794873788721688949085058673142821604437495742152572016081174545426911007026253415660264329024577029335587362256937362567503488596893588163675532774804087409431378152607099271170723626195430950520991718464277942730492944646155718885166450625348347808767748763227348174334051245225183240757138550358723369816045037857824417292381801440257434862866701784607363889983313860351899123532085383012874395293402873513366204252501519912317237572736172869621583899892335817729128185699044547668015673464369517321769829384275670824788899403122507520916186189330267523815460992396817133205063821438837905435550189157896416154796255764464770904702993835413069802955864776285934979361168075965598230471251996098867469476601750199282366919574260764047663873310580437536505075721960816627192259783611442068240223098249967447077488059229970277684398735648469873386449840692332173745355908633705151388003196295512314830384388677735453037882413544716450102464065371651666968415770312578382274949618845775357851666239208693618602769512525923001899216711089584001005761019668397983020522945300827437774101580897599377799044484017353061158449223313863591432812390094559675671593649084888601665135180095993040627442970462852832615707864663213790570353764184079467588219065729476628783462979281278897023621126416956754832769590382681748845671257220974758745629603872855701827913837668410920825710430455443096095894426211704147053085901239502235565936016385975560399572087625048815386189276293153300781125910927813790906470074367187460541784855572867781173987772827228989761941270079478438564161222308093443400915227352688994890706807826109488996025862440633776160181129997231798995752565866769796769674731538831088599317706363172464037572944634111182624084348759901755765616529205939076239742190283857054226058633270230500210816400468538220000922957666558907361695254436488829027579183071458121140161007742917435484151737997257989279224589145723903106455959196625566167745558190274490292404517023713585499055337008678394251622720472078547096366881781404749889001626578247372209260908747426352977221379908319273345704806895056551516767273471863577012920627060780727123360068689412253687244826923165591818759572044154049041854046841669965238507013016852975184623386793935019817500361893175690034678048073194773695631554649826413459323293971596591453242585413051243483740311109029705896318785340666991548526376788781422249534808265074343457914285215202652097905381380238005278458296896160345443181489580646043594782722041405012949663637939636137091080055885417220291946726850182852040388087883878934388587184655997478191181901916112380352206875551208378590810314324862959834355587226928598365950235715086318617918897369068870400271831039105886792468650539874311747756252105714436023355667182934098698621055173060896241708991278903009926901782290045832889603640932260464671252963655162033573009556085514966973049505947936654527777968627014422327381593763564959532105941559671735367422040928397709609257860885456790332917409610171234697756832169978666910906576981272804244418402822357941496749402054959845264753652136908477852506468547684007301591148233711589095709581820204594951008174402334901034980462671606813196191410917141042707462345746564778119884761898881987592468382310587599307042974536115151830900797617699163581322400325864485810586998917336954318144917709288420163681024872079932248468499301698088542188268667719864786106563725522260676517273671364779000331850733084410265186698546637427591270963608858964978609344997483975942366485215996354495711288757504893677509990282172788911430498990190695733175377057408523205938670913415696809964185486277329604450135406359859033367857162252240081692014831047561499439620081000233006400095060709218288679680012361696535808797333310882522003392711177721672793628346957077010339584675753279895516669628040372490547611318864574352814830721123709591318611564833604612926316550278055540536256074084145279068223700594716521940949222602718194435378299384076137675292486875962052333537456541769554085156195918951451521824633726218176538224720938716539636944282658158226888993665095933385211262564301616166505193892004184703818807468170587578207688807967974882264056262818113602506858257380257250085726601375452892514951022540913679644148653951286275196612213584630130755596558240114724111979635032513465004880115426968708923894159069120451814385112867307623776244448684996226412302449413574860458109609631942211522922578522805775730285983066067862633516679160170154615187080363851873898458596653481493771875089065760027685849356732950534102320337495599858977072718704140184510203361017592050069682935728862380228147448455109938100089927755824259637240899646757753389538305118138624526120615995155232881876669292579947518418941880810023916669128409736457936374241115424892667185219279438149373368856480633476073078593082726189355394477915048456005825606697219148622097825070453074077409598176101526741031570361159728954656465235151350178754741726012109562216604574170787999414850380501289814607982060655594953254856518499847952688617526848085044305301611318402883139073149007694791059859761524904978126252423993329514411865726620159112729210188793787108882493668034635496676717438978275998152335539532216537211026692151127849509072524436740361824940520019902342622565287811092345887267109129263848978998621316836675595905630670266676821768071378599229948977513585630531813367677740130701972672360951253586134647570011949313415210802298766978074873342301083948401211984976687241318763084152804320724769994996939221452777456960212811102344445456637754199292824295369746913964750515330689810999380331458309554655873350828972059604623704815241085447615814526319873556281776129884618319493929091707203812737165380467425914828970040247641807772308039566309594733408415137532634991896082351522007771362229561930851693454487735501586733732520552619272744919634766381542747353673831384098603524151460571390337032750509330409918381546860195116474600893290597681226711096933625006012041182735944105995031365070054253420988116678513867995317819009780343456429387229373102908143384641293594591991392878725157103714961450492618514346893563310717040523084050615902955065640934307336451260015937383598557497967043746153113145134184334230695168164338207534344362492364980821761920457106365755895119237210286258853184337531739198123500501528891360134684045018708033464986323359913750876469639946300583338006311203559563615191697941344315651946199598466557176685880530714037230703155988449048843052915356279891141091327552828179210957702116305353769992274263285280404380442583227837664396719823733715781597106668235102973904785043975526488484736669463430421619672045539232431269865857275575140971075526262209739833162611963154284884868809969475378889746577492066199845549017158150852385782756622256113420258849441798500472132138141854860877597393676354367025988026921231087145045015160120340704272785085817096152560889352727199821843816034518814739065999749682319533598498029962192478544143517708102382836254224490189086830151876590869443179723773817891738808753834175487502234480949909030592398025670065825236458863945454727865203928742757608620396063472415509141713622693563287161036135661773242023894940630875370879739416140556272336285995732009210446843854254076358416591004404513859595143839775897825830830266501057784782900799465411179381379633608504969277013114327601075609333069714970188867523080733454768814810776984554423927676340914458390828064189556227442831112576795168195368651693240888217012295893782729747619618857971398676210003093313679135318069673916468354815952880714887194345202004787279386214805993172603236006035739897331011079887751338475055667582431238787732835334988801815017213587930222405752730217450579297032517159285911792680793897401611644276830229640040065487953560637123839997684356426910541385391114700125256900212994220991071404241713086699453231273257126435701125373079531115419997605500975728960292423980030187157325760650351566943393820740065549057658785877189858697101596336103578630536827868337503295515321364483354973882305721111254104773646675313472467369127085622465432434614967783440799781476721757527206905750575945692985478174840709806529541697134929719622660195700957729659233673912861206827699800344671538605764195522746366133638589466186811073634952032140012602675214076975552422773284468208769960174256221099940456018763683938620884969410453016088250711983696281998094236302310878837065518775041086916544270432752130456404265362875280969119005020446148308768787645045519484285270045158291448610636286931900870880990446644887691469866775858719698119464388550390050902162953627238291684417768279729409836229313036360564225337157881291084589995490816921233822196674712513498611440525770417991972286819014125813578448682466568294995635704395817913634836813147484069559333960669063583221893427397142161622176450004397523325276141845984555035432437476346112123868439148104549519652580103280046805933272406601151629608354775492879284126330549333558376087600591752584381452563455185988216392501909893248511425619063662113839194133318206277158979766274712160809235668630417600420830223454534344385506492918328700542511826278654379923866212172401457685005255554234430922354309939859145376026724291744031097065881287932160130462743781959266734421665905556120072021429954630337260059865083974917487678533932618715342969921620587200161960308476123041217864244815675797281376778875847393723986248795680568682140298681741288446507373217829777372153862808017683752554766619586150335273877331206610857804368180966869455823715684767187380825508148632503904482780058657976635970602284897178937926632157625304886119391423962851633598326818632167601941831374156410392881074088093361686217472719877297060443654628632206361072437172702289333290549513114142814650975328474874898229567920565122471473128605924779014432353244773371340836519513403640131789441613736007720805122098747415896744292007324136331360726805889502303033646111013708323385413952314042014038570638030035090006348249723993557658768858757094510379366751143717182055044958425569493152437820952873891130933094780459391258838187431816054688751694937973702740117940093381492087712461251114110362795498392592552061239450621729524652336134084464537352155781957169800256542517565221599053925455030903700078963089091066406100852597948356154462469922474588227399572218284349325233822486923634817209872294705690599937857215508516239303298612839264539989573074138079187242851713738741182195405991263411125417005943085714596946055287855564684858079225491112931814432835489197420625205638333826686106387075896359990251350357986447360073632168029608742831452690282041936617936994610066720499045545493008743252502104604871650113254167841124761296025517987925355063166126342271990068463450075276981090695381613655843251104126689878717213287383259909180136952810820596396025119213720198590958801957195582516109330681909758835589913287547784379212412425877483713921663214997532373519155950840810306258415665295017196123439675588401807316248792152145740717368402728869206063094618133177653358406644436704688500059683302819400801424056959328289253231454890207020386033168084171844616969568312575311059044656908109372454233127245334749967450831020593825586201490289114314566344543538737764106298117646701906729992592957612230544480799282801520033480553728597642253324976759616941176076010966782444906576293849608375778103171500282703387659199325864586718298721089089544670285017309718127806647285462020725885815010105521506321004754522224881887130313101485044720190898563039196010969740186312924652063372396860361472592405039977021295029021741837066047013126251465470118992152571643859264486529709669612216155310210791307405384456353256305631978115665522376021860456750324118965164968170338114736435821714326881531871346945317321568177403755796683170444134833299660827006880786886517669316743167914006183745741190908255649353859161309191888027773089714905547210909650903361572527732420739579827804212650797917991106737776964647613940445756164020483336804525635174455664285098003985066374752672878274833251542741099759340376239784752438418634210724560838827271568069856342800960135575553828355399273023713451051336237530482640809165754664796444889751654302381137501156149874518691261018883602836497135581265464114320036763020512550005907869279526468237179596362105497859043463359743437848777184851554682052694464086689610096021103818467152015659636410624972770268617852756556111387458997160759840086524608610151997093215959382088403183548519229529016124920908825742861371969316687364164066026181384662638913155157274704549112847353482831393671821864231798548956992962013740323628276040554936401367501660158231124306613300501283661554424107894971399317225489588492966494828846807055218976062791544548614672089259147711239750538871962553052576630634819146932643253030821938729711064087671367593346064103638931126590680052680027667563343719070984444230115431051579012624165116176298594460548011749947365269490872453063671447551651793893588148583483536864251492928991933142659519392639924023646775964329420745017450648145581942776900102971367444137588380500868134184764306569194943628011688378376763426204403209870538589651940379659349812843737005326428853862092870102187398744582157612755817844869138004138027839006845703297889379455255423533203751391827816630268624498881332086085829904064434453801361393746479356237411935661167808389495749654083325120160469606258368634788244520824986658806323184757391161292952885219523731793942056431347995446194076181676145437961527499799520539051842407450212397025988266697611413281840228928629448006561874550322870635833621698308383390883611801914136747302319629562936067486452756503047896264787662525705890662392890201927711156736849268559568874297990361769397199659449930412455238887736174379722740905466691935485003789046919162177278123170514519957418230218223730648975877131164382561365388981144357799924674579938538183439928445594909833518394203852723194963070722267841383049680914375158156105781187115504332525381145047664026674096966409839590644534756459559364605637997132338025169700728497737461267083127580785409826870303236450019337468416071643820056336678046400497670237772112090102141392943152491054714692645740169380072758470805402145726628536483844284974974629022804843354537403905168250685672807532937191641643811417753816045016450327477248444174559391416117845528488893613479060879866467384088380378360439047722988543684373852106236534068156857977825966401352139868963680671131569083149358658117749973644735883280193273169727463470472054978710743903255404392540686207160675965236613815432158064211495966706538123421461872128675222980762404970754089602695517601444722078268217681453966892736677987176885106454196488675772997646391678095524480887555981710813034075174197834566977258833710502840010355396490597165997838022581968098121608248576918049605922459491560596306985473322535383571580015578203345533153766442186957382571596910118437191179436243887178512028070873051615787601308785400426496536201696080029316303137955883334457688353187780856904340368104234355498534278747002503000902973578005015599767752838398819655455186193721238761576403560219123663845165376353117609020124386744334108171388058394081040622201217992720151669245401230084680162202536201901429696936702433954044093627629781955192976939894907097172592367642280853683539114980971845047984506156696365010731492981371875549426391173098533656351865484468755282244288881681172190278939833353158771067959844769606980325429710670254721664473722894573269963059255119999902410251620349638874715017869027271410639379685960275752708797807310062348879558843520544501117259121912947302703530496459958928354881935643502438707036236683424326942474650529372636091051123683136534603578468271644306610442006585393491995528778016159407991282925797465496635251086209006812425975939508381625356767949065891128876577281534404768112809267225658036641483123881460670537419558508879514720379682648173318761565157649766544301337083452876992004439154483484434328740552903889824519246408389034627198905602011288949135051217794897582759085513954828929613859393971469278440052442508002623870125408529235435667114975075412647770939380802945848955139550199280859545981813437801062419628616380069088807403157643610167407973889854115095972590677451802038173046004515749457194763986538425069905660258666773700125633054525926325191381170442545750193025741619694951055719281279551891495767276283855322141540763661029202326071313144640535604780251477107427738772711995026268201105725382525892658521547961938457978404476773587541001366904732600742048005513092079617349703435603820552956153627666277088354488202500199251557858749320556034210929318668487507402408475813794187447398572671953550601718320051441891597242515233865411237978675775216522000816762091821878044768932532604901213795405235885136830552108031130622337918828212397205832925185045133638235035511572969311493805444455898497783372279220361584874151101574007168834178478883379397634869383096690556109298307123621231402516519378238850821042927955762017698669283574918187014504732058204098982845860595385586405367374939423746931997145265795947002393516457533920655537968737825994828673418743222670557868767608174758552813609185235010899652942499149964504529529831117424813764155188538635734206790718955470813700917640863995201104388144902184335156393746041219472135200936250794792463274419108769621109359092947576131569500588422104911622002133467305654433824174394339364146218738865908902827760465419916585130581415695351257401979408246277249679791724769876609429090891379067727036243582245203068161467348087135741491188691457324117200548960911124490821952830995057971562309430697121960020107109281662757784748192813579067665222078695512538851216244079677404683076238091364159066954664060244367919579247866456634449139230139774960525443855743454616982214705054507728689285639189013297943051991731461004469581408555605670860121179089403947388029545713530642200313639985181656024537547727254300816249658440769604895548314506330523670330850389488351252176463017667350437515547076489566296723057371241168117788091672396172655788160266064169119623340991057930784969717245589793005078075920617773026523416024897162946869503407963837806029516229803391654915186963211906630688041166919158956865300219783681657368413479744702009065094986579510604991060277312149665130296089126154588920219843759629388099612849782761073037821084761820898030791901919143751735618060153945878895433048924033577009667120241668590212733341071123851995080781782126718104809940375808750951936215546941993450411206701243952558057175214241195403764717453889069965685903169096421006713591035081075731066746502504271496569820612084738203810137088730717834105634758195517932472254765253598263391306368178322436302536532480359190777045349145472385511086078961838155207600975322679556846765041680069222615682507893557365976268572468724338662261213716488200923915863062334649441459154909732553836782641722036860162781758428303551374825767620494946089133220504235479442525726870209442827033036553930509317752029448049311208095779535039086763916956576780097960524622166234062328857033984122045722953589620789318602144647476067031338069742031687657392340132301031374414722126426411664000200346528903205258672186911666731507526524219010338919064608528309958270118687815808242680226484469252416822415333957006690643116387430745415906350084352401724402970756667108757207320870792034615029866463202040729533040433930846543673935627024459638673712624603863326743768122151938278941252416989135216613507376263676411316676190400204731882028043537547376902585714856963156358469691954915804567934899487941569732549450407377714849405287417402725295437580003263230675759681551313277858752745258108767448017021133732215529005840029903768073283183870028666713657704193102456729353317909869172539018863728381670602167052545936797061181689075192274730635581710131346576307473625113584177240120400589043530746402220365186300317619403579092718746461264576821896414699050501258287529624274872649259860768446389329556500937190655006287372127485497003476636935930298769870770130046973297720646919980897991389008301136983571382007460432042815896692764831522730868412636945501987315262381810214955064381870397809868531065975133843623043857016052818712775970913540214051409585883557518056063272654895848232703028362739338154525877915089379586735495007339402046986828429461872402892916649561742212855185844336521593525194417618700500557751611533884855340038279880312925030812458767069474868227131459270221205193158005517702860665680884757146342468299178147092361929869345767739283564064023380015822893507495100027350465230701665627236527817887626073371619366083398115732541812117198696920611584608663753661029306269138023617413565790388827161003186102434428799784701878441783042126523158558512286807299715096082361544051685652018942562079769697036661313658931185710504808005617135791562268368378073597260082489054397690881697876487564066101847172733194169027806560734665099098472652923019362892962648847440329132573025692521987740848243764613005709373836026225238229330263364654817102517148487258840426073452249669301141827713252489471742126624532300434852517542981521684633320435817366937398719444350091954966252553380053301068173231431909203329461266148439912466170669021173965239729240466482984888231627503924352491981140572989131599295686020572930707786235051756044562728956439480645336258909677374818293645040047279416672879701602458904570782327722942798221326800334720747051345025691457414776259617686654179219466514222891598148712404085285508690412174227229705718749925936811862180028404299669685144808058304408334387654031091068440486148985828117170733339196766079431021581499693849319606423940193424188656697459230233129200783455457655269968682534227906590683896225681753346773912798763830975145103951981624704805771625689926984463401534287199692031271292630931694938996785387074869025067909499730510562444702781724019349805718962952204084697718354503151028879103396786425692865362881713062082536526271932054571561566004448129637272733692895485401629239164174546573346839047684935868307531327535053191214049850526638340308954686271445240471781202401023293057864936606209275697812199066844021292880286551616970711392892173351378923587550514955512299335507707759747649671405562030907130867828414766768530420783568844637848587895792288806981566860606726659721723936488852119035925765945708195495878449424323879374175930694628187196040668026431336193501336324552808483311532178719648681913037425803508159288067038999134994829155523129192702762742828813465608869186705266957677061017010700859100097611181526459249528915107305647908143118462125109909199201591737827103103095455431705459041572527312100447216243952901852794861565780924341492430419857127364895977306998435252210186544992983903804574027291977782853021623425264065577196433111283409637712414116561358298418895017044105258323722705531590584087410491606425351064484630879824971461972753211527576128677360414104330611372160465172209849330717813708633375563204332993677139688480273238146495840392384593962917548617505525738485159929829344971680372660153251038069114761728385494533247112284789411523082723643565689426529798229382968270936027231585385118031834922586554407160427810334994488931245213011268527459722949290740195883408612971313538264222060092301796654717279789421056004859799279761770985186052314487506176542774416901244212035725515499052664001866688661259979394406199219059908107126193309821465867154860999464679539148365095928915048453145432760319947022854645291783738251737977729550253394229172952313732628294926437077644169933391481571143702559467106708940589339386119069858179808437656259838075574594661987448007563373258060388665751786194701849275254058238133713234143075826234651837534934767685314204389340026955386672127494329168412426985694613298206883402658200973149981763309427483783764942761684554147325631044493770499098561483589039372075249399510299253219318016771721981907832361981585962818736822184557547734378083673403488541370189205633764933849236479082618446769384386187243787167903123287790887566043902529803294017837373104397700283556702669618945586181070121937675872533995712991976338148439452593695600231182793885135810180812101608966074888454219571727732981434631197969640325379049493899071409380021530861822778603106796269428061320237236279349526726264359763774983870064913643722123155606374984089216835903769534782392662778316648545435516481888375002194771704246681398653737336197148272758168593135583513646215404212473817017871835687868250256324602137966124567120153422611317652097429977074885757487962296937367316616713605681358372292646119754794152888775706392042180931193840111099286511516605635717777126917999911791144257471350318131401469273762993561707502845013942125068336875748869966731423153541722741820602107867131659126728840354743354187025718497958776011808597991570908145068283033339434608380079784009016655827806452818687116713696057922861369415364608753310679454722545966836325075212934273705184952683637567319383889013035063112998923881058106053612284199974905972974432001196388224170183979804297702630654471532811675445544098968148479792171164549487024614373408041444920578880791758545194834964713719757064882446893094211653373937651079692189051862270386295734647763817165231435996351075042773364350655303114912068060535657268376679519406540293394119506829982300932696788274801685136849909152933349695730830642557135686496556962331486991583218828996174946500138280304380240675257935378143942388551735632667594592948902038026688863565076382102683102058874000776740544699021812160614682704955232254741550244437595938286861068342442678424572656357272466021447255285387136905059388052209978872141992223784653925463622905609044572648456745476402540696298578423366149875880071324715731420904933955625099974525587875841153237571655407046708529957236209118076483845876103200717548443645774342380019550167361536290303603147287135606366115179182070764199380687845132934065929613270980233597518248948734485226334365350162124228165089896389503652748129025469985057361787116890301604845263905247324685344541470206609072638925638709496224799633538954804307856452260344003159397024467144449226437011348817397793840620930986768635133975164045099085051321524512984583370520476020856442685684748487795051176618658564710508449919590264073838935223408191379107466839096670239428717038258204936304598063781060714680644285280336143493689127751943600825609951697378233148027135334116666771831169224648319048396559330488017411414548585236431697635716589372070143778931769453947857861327023960183588234749045741882468062913242406608614826033281037763043233160111252223899447688583425999767081694505770078375314593664805759684793128532345675890818169627944184290890892919987551517581363114604305977560676449846821237451542696068677327658160030407422831470334670838710457137081772570397075456631686592285942835474767711250424456361866664360910311566105508340103397723371340936224016820015916658343111346337197297898339593921787111571262406687945054809611916148600047666780538482733800493786468880645104455753139342418144667015063241743576998199624782288268135476595794053667524328301702249475264112993240336527426373028304252252354540268185943125038099769474310520604475359326965829786632106959058785979767332224538906593559530664957621924268922306775878717304364831750667352151387710224358251191110290911132010668813605034295769459611901004261051378466149152899005633080098140618327368146792979957418765353921435464277242089796567481803032505716257943351431822606631940435426396753764425553214224888267885526844131797164240697111967646571530166202536046456061860423900632049239149811139804489709590730550233151013320866616260943016328213574180766108134544993211634584796939688510691800417177933805820960113404654545008335211403899675033494923571265757653534353470700659444823740473619216351729882015844714107872804799997496145885621279547168746927963104405737811655758116517563475297846757867888073781592143526071051099058876039272564404236111262452479074921700450946151215913189152544826564007618203273826268361300311073540493691283780431337480358993119484950760154119196225672614193470441921667348265738409123767480290695256707437877636131100210362250109883568281432730475518629003158891216853035666088139357284923827748235900621023886569804325605475001734645968157436409019978415924639640799720453025451222391556652028662407525279164799586162287485618586978511769849732745787317322558243142625290284064353888981212683012280369469827640349655204131136894156666803264849473429862317125376186992545559845168162444420603387712184943633310992611947468986801226852151228027894669880672924719763547834965040928561335147867465754176005470936789456766299043958923129895807981370043167525527731796181155056456486418202090755165708717973599665346548641392937678928341022018036252873717725283034632182126324173015042109668940029919642111072907545793803469286240718030666888003182276036553908336373199608582385556808282528469796502530651207059442938944517962569185656719447758073972198750448800645309946185861503552670292744825529031930630660181271707513434331122416821167228095659057959158053227607959174003269594182979447202044062210119056869754411828005515779459877443172590399868326294780739439696393179212017793623258434890139221682395316202256738432714696452990857868393284328850440258169202466557304096928405440052595551637995973505198957929496853074753460608659053101267040289369239959224011194782406091784016979858177634572235271636740507130117749184604209391467192608266931714276282582589908922353978248005102014813969907225726724487006108366511705949078202499376390229429494736905880961710958204022048562701352755560624529991630688231663789041823394600787420083428769093961062648819826592705430885729666518267825014664122844290359452953014813264576053415441258660388127325103394642548761355651129743705211176509857201052454578664979887702353184822604700429837608239488458973385638061829601998692911108292005649346738455508475636625791042297631284439872935285839458785018791961577576410066379438454093196621562655796854323586523711139791838907127026712095337874358652185939188826539020091436129159755090963589064713279300128746241034885137561746084002707900396142648897106351965066949184374532917075056487792467971678914066441966340663656761286381161057996022800220565195811190398216895453349716662450853573407151128589495732762877993379377557592378775418052407607455764387825908747473597482618879533185191611127735453632269532324613611627467397832653638562362841658214688407260530637067294222391360403043372350471367468005893580824690527765054602063739024055908715310831451818263836098030775365284407020856831078471174502476732944246200532830080602166674858357581442912176697501010180850643818265050117172009153283180331552705023431918652238301039569232960903820113170236992972064219137888726045859480068040956001922001491063231788201290512880953830122982883321869820208789159778531036886291990648556256596676003949594792720910854371125164042346439528798549705491190765834209481443918067495486059263854094058281320982547321727189714957053179213243050073064976723346352376555327860616518385447137274680282361297622269657863161953383801649638694348419414721760663600511930884680813464088191446593670981693331625759049238819386519990844255836443463945681714102618199973396789147245804621905642766912656796562756365029028660041409570998799577371042729026625853979255587260474201116881276598828128308165191176552612744813919053947421062403429344487923093343280584534238733444891632474028888138835523996071719261343724707340356029039914567835701428743997200654221071341154760457370160943353693461402374548246430002744123361309387355886341445582413703181637609768557397316891018726140263280129083673961904680863514582031235659172063828966239694857443517925784609064491196920967283254134732108221870426083674023786719375689100204147938024706453246122234568925505240651714734648220497406964936282239089470252131788533886527114771281032365207645349713436971912822137497532550141403306390325059742329033349527871407998906645643321308930933394186653370531551925325805816950008165719953901613061297252804257431733717390390490875966530615584668909055107704713800479339443099795710582575620993624465657443721726426649571665717907937732965691402252768193446628781718110192268924077584549206974703497740351054701422426708452941997270664344267783814789695338460456619790713133055655393885528693037801302754191675103968741923253507799373929764009419648801850504839372105723330929305940938179459837848359114470961233787292217075011286446629928480312384565360450126368035774908113628936090169918887988801484890985110664974982488099000422990720346650981469949397949856794537937124144441688884500489683803202413471158930879357727874189297703808041040626085366014049745184133132174356074242720577554260619975742419985664877295495435194354091334236947168600480774236793497072741879070033057767753127134594834888104299685267661921188506144410286152556250379889933521163889231952385122033235802713331381155992290839261305688949991025871826173124415552496597240053770345098088039623494454625288520008465610322565578371896213947271654446694177750151452370892555892804053288566809147718988360133718199072042442473182787918612870350691090878767139936515039557552126051815492029344785402446369646210199927261906980554977069710236973922881586574610709883955549928287220887698129194319019669704913271022406278755747769867000742302555859174323214351822136237598079535067245442124274388240315159092293338458842286390027168994069683287386442155974031465840822613370720006789243056928562542589042680097804151050068587852893750799895128563983243114824544349519437074029456193058412247334942101797301620923985307067830173668210729956763696419319359277975344008381413917211195650699550675536799379156320627790605377549230081255576438987096138873616399603392861589167098764608579239234265622569780180493800599371511656095259154348078109991540596495628975241945039199103340658537857515286413138595059262359668903237133347459781760652800376998553460440379941978656386175782862073209432850180241812463751066286207916359325299358030772972539037945849840051099334130048884411817112712303549508941103257372714520884336955782647009609943464373846008795625644265661155971610951877993168373345933416666871817090748733279460263754361627830595445115279656151242474265976324607435402965175941470864312310764387233948399807247128319813032574998662534576595889411527605557015699138199341434569491471282433639131047686016956760542877939504015303320537774602246135081646548125516147767917971002280047337474810130857257012888842886960256409465401184912444986821638352812982545713296379510264280546436053000226324812357914961156050826862236725359489442219657432562334616052938248291462715716791662512074779610504097191138429933267987670997741306413840746076013970319374179453615204130402179980398883012229637514059637433030369415204276197403706011000190600100682403001850426819499875662883454751136772903410203857972783864091781379400520965039825580830870130434336029415368667639235458094401142499399544579553847883362125476422655790756271958482338717003021720585123067375734025893252899430499408293599107905755843083385324376770940099200164042561034842759089919572788854127570380950877650864906972562503445007945573409729809074715193231806246914451138203705399428840944581481392984008729207548111278125585813744416308096729482406580775973072409801321335355976667356271476741170254457501213279282906375220402785001117544774015804430982531294175292165285932631422115717636473050419035738823589172828980999890010763122514622586956618692394938242444286238684379267342830578653300120226596989573816861390576312212202769682990743526797685019040793994577807362527063272794073488635537486444015851751543791201459815865393955607773782564287194551026459671968967134191584701440744542652783775430597679650833003499848327502271023922947062476916253098038592886985709139392617117068571448557975360641470066418441280421169766985874188136397334288444475680278063122572261252137361406186666933145842278498832749760350750608084404670904599825806273289027027578697086122737974729980149053589695320568103298759579670053797576518260768866229769744167628285165679919011216609433767645829690118426983635106148485829165487778189689444399697183384956987294429949627117787647922097205404755132106355698314348896316377965215349284274625965438149157302785540752114479831468269444453021296776018304685940105833784253078183916692167841468577020319331867389832619314434680764262852814539006912659783969860124338632038529015416007061477288012642034645146355365036910793822939256604040511542900979758190583229864092264026765339365680402921050986059448551041766527310362843584608262271787139442252915617335948452312502833302762181701764335827797735311852941353526124587021468273777648744157421036338298214109228526264546963302300077497119133765196193768986182977288463371649808501582549889997231314161756254973867896506449488310088551347469047297881324258243644927028524147469150243538968153013563776317101212072211258571324752955079802612299091247291510144820363207429388866168163600778318249160194920410852942097581742797808269323290824924630073337726014743901215906232032214952531943479779990533133143907383998932174192881900766656110748607985656483869109591456050589061233688185416597516751771734782225987128315047034145595863547048641121709918600933099098851798728090845112543496861803148130017408850510431257171780416444724586778932293232748981965303410140173691563576695425889436618577753784059175625828727948701496522843480304252552991123309476056816896478353388007650841064147866114281641192039594878878829345018564364664921629928802180475817629456281164636294018995147166735601813817404148373566394650380553512648598866532409097753633708879772616033141978519961609252993439111219047705460767620787388854523155928504995471323210543275249479772442393174411569203427905821671969953014704476352671676885803986075693112652646718202516647596504390927370161146975263624763941258173074666686141205061271256734263220634208649799490786124668897682317013694272349847539206109742750491277405594975230255410598067510687856852032491896283887984426530993809204037934725801587108049412370454329140636433363852848320991398015342672547233520598443415485773139704924949353192051537822857539635322805491599938796967024014774266495896374224402843512132125463708342898548922969769423122808624973618833795809273188961304664709507873220409069341439688957088872815302916971520123263709149131492153109434173501106270797437899591683158634182929401423646343855064473156890674699651968818199440426468271893457971081075433507465021805400104881497918311581963993184650894151222478359619479146033866938540876611768588898728439264948370485572284821538887242235610892506582929265600679575876843568312751323961366404355983076633261124099513127363631815516977757529991776492060348645555145118590405443477680470663451330433519949055329178099275834075625385151683960705245256140793227761129401417707119031117008277131245810587251093339364984126020530373662220988955069320768741848216044430484033610723140576615568984807618205503942860656965327220736076460571808029251700931055038379433805433044180801875771467932803179186361998479145444828195087680526866007928759649993382870561487974139774134386289495073637245876059864505270010284230233287236564579422648527669514917013138537067319764422178832870668024663413628973283591308684125189363393549679952605645622747754444395760618051640502710462800177742551052023541030889075554016441289054714653509428794481333011554319098224654273060658300944351333547441736590682139093227126373159094250185081901992218842138162217010802537561508654462551526310095744673088850849850582593050487907389448464211359057311190254891854115900251785809900955450601401185936641897682831126330477816429207532636937497896559682245029413689579197416025889877284496806380197502191846126150481251053863930621397612868783041266996058125037014889811379032369731476436116710188337130631875895016755735033411466189432545181527184205749109965581086340132270126162733025153262444562054147886863345105451952465644750788443684541583594393072941969195821596280890773894242118010896164855685689704066053959996306785588266591517077175210032861296618645999512791720001756971633553879756579669403380246689176951015731683331281386911203620575820911827688804011210010026344025224359609147343883963459485026718261250745563492719701983699261825798173859883305780223229203463260423733869357800583591105616331643941483734249536544409536744127019622401005931676207728799530745828661503237633161854232416743860305784687115261828399450055936913450868834668520667036463145364587921878789443239480261497519587985021066050192529369917003319287305933463137906290636412604037505390448863698052377087238309600508998009284303579290359265899151141340702335481198716063077711096768681207210829631089000424399797613728378315885467985258050794084416692728652748570564099142497491310916141592010685764671357086478229961579117865049856025250061494718584692122255123956050979753815460324081441608497582370015329924569697552773603078381134755798090320320198146688908450936530666896142455483560683328235868270038002037578938907884277600001595429463289207389017480421271350726273011701974245469873187528042008345274699164480739457641196503033838997061904485521542804183739734906747404321762650660848668920322755377918806305063420312148868377645244201005563775337980224927779988253126669646874553759172342753557084152199061790355966089746547820268768537499065997499985996594037761912675469010490775390355344842978289392353535864163842063111788697727648961271349112548293159208104413857065752616952525646931678598510509346605129463258375342776049735173269605236388239277979542783043487770915038999393767249141920844924179682740568786420816400725480516872679568076709729441639872304001250871999026755435705650093056519644017509667180829751205325364746481264332310050178549239456561326973744491749689157971906154368547221775856129666462536315959990948211852437562433046405792027307515852873247446054528554873498910615015199312224686881045146775148617090724514858087160811380247796813016362924488215917433228567211284369412955143319656978820501197955433204107871819112517804337661652188850078066397220971047233714342032371841538306310548520639781137881549329974667541147369981376728248750951316034189368013536739287627862283512479575618098570753483230849324342737177112331287892692908714265088281217426531194326215597638987398924884728246037724536544954443448200612721334628415326515073193770068803707671382380718591888231727504084163630745819131196223176803702490304217471730743486983421654166368866559265502176834526116469250668395978924601180593558288978177227927087828011140280131773273165756572382890669657509598506734965818557742401985123585738375164795992551584021408936567170285807155235954115289365481988399904520464668917206253650505174922021480899625795716874145761566698866021635671533650644511033431009143047476973244020125918097232408541492707885048240543771109416008693742832902970632042151826078540895013517761011063122843994770130104800132188615899560769307864098719246934841521844958686255024177957162586076908620432598491078094611948345337677080507939982087350184771683689835994588191105108563392658846592641717304584198734540899415605662178587791327488682759361163807926084419709051335916862437494037748066069823538995110416827006648647883684452196192127236052660559369885944818974560468034604871843778621702100674557755920640444874057383222644302703823846002628941700957253537573614450641278360294037389118146583099608172950106615011898261525617249961909897479872727646660798137356759569404839808072527553045554873674376362697994487033201169505510539184619166743532491025513033500562224673225246690275344481314344562034129524609463029925219873721581958030095625343901705907576759049757221120008975913522966475829514121975118771332876103191417411409559608234533696214100182490696767092735888681727497427741662447932963163621166317377260545119541138120758112783465350456583565516059442068758999502165773689746992129488756529739316133363670731542985664674250125347089126330639123497707127356305721721211579995431676701077931896304335038517686711196276397244534581369505857816389131895066720490468831784952845628442371788681226106968915525743294498528372495493947677610610691532910271042419897823011918109927650159732754910128415371291240539866944555231331613973767360531744250387327433896983951086161780159625028336341208296540174877609143690904920368160308683818142751458683672725198387625115029641472922141892415351856884101991727937011438652451366749583545228800009902872176851627632286139782150660960333196641918912738296456058744463134326024029336735164332804646571912914264387745022991293778884330026319934393322422622428079910749589405987528141424212599179062341472298991768170316404285913815909830383238130823451958665797539626838918409645471857565651964311242464833620969204866932823846862075294165803370498103278499607232122822588592178686198411682594609876334221848609145204550844854518886636128709040099429181861057108208278406473312815145673335214624970111837099896727458603327767223993623649915568075158072364681394919870693303643497828626893193254157257711812099458796968865049193299148574301368701130414484730234180919045625297156108442832779755732488165216370442362465349072715644196432793504909603752113017378434974368781086580064876616464487033130824712498355473235968078730998678691513171311080220283367163851404102884798901493278828682472333897381106526837664261616701010836325890674531908266928369844005508579628074957345066972980948976970029540441672868331877659299411231735794465956164516929478949556737634571527754170256072273382165006109861776258591696005541539403921650482935596098127523134517248785330527364561223163171995230795209125940557666245133048226852232054168289354322198299511241232306944083491367004111169413817427255116832572490263162212350587640217883714782836487522149497128428268485226888781246522532819352323274034640684435806009100208685158975783985274588741747149010456981458834242806063029523797027707288516476027203952841948642528643676066930373296240415596764646181081766335512113539212144165047537718693071985081513499711141940554786061594778413658784635295378589983013184078274428898471571876942027875801398675031657260315499186462490868883519302284417510899424445143005102974727207981274430351588033001925233410080253374274602870685839643533114054041279238329639040519957613569672872334804722586394348924440270385258619065637461779995536220979112485166290931430220284906621782051028717066768093581976609847746679788444903750213892422798129313203301576989862695016619516483906992027353579986200215442678726945026214329582249876150309840356303551374569344052567078376694025174897497475987865761887504391189590557455239246314549170214774223042339445878593558316222961162532279342756463376634563768193956916485891075110587638754502390379594836054311107504387762858318087660294489531204530362515648331187848977564546704215874305828547723155491672546885832604271028850376670435943151728292558409111526633814286194707115872332685666473588379653432481509149587995327528044411175148446249618793971643451436794848605857445322851607911551168463060352395242410210889305029108781895980454496607274088667207909861280463713183807758369887376021470289963277999759444544238238187705403395698457750105435441541317634977117114941268870972757242420806625117988944688870478773882987046822041936934408092463849200160598605756755236167572495138372894768935795126631081369511350839456214784417528340732965941590129901570811170529792864121056019813891220040799440485454369574731545491458595288756460255218379675666005338366715833184222199244164215285358614448265961915377699629270571706996345236566228065434165957251481134281107056215168106263216226365828740275361873732864837092090385475248065464082608757885765941365378825961237911820261282892114068200562974490247535892874168405273265866311901407123915515882884985469736899319840259844986922666407722917652035051876209939372638102077047907455547456664855559860778106381323187438236616162905353422245716691212182357480931521495457931404479388753085630121391402874243585983855130904300791767476368955580971744254163796905350162844401936609114506622135663489043087007765941679572230711945410636833857762654151143613109649014212949029345492595017525651886248489506982467869465249550696900612025057661307261300598360167310855591140032945248727652800962961478658954277697544915766598997548543714637948365900305262471580418494524768842819002343445847949053636636182535633964063551320210829058381551821956719138196940633935938940627033964920365847541757025225735003678978311912938514486154676216351989078482990706991569246682011736364703446258749649052740031689730694846434482004731353287356162068905267530333034616133536401030152888898639195023783429835499052894124021558880864924491737836107147477252865135237438849692453382364850201117845271381845525403923204566332749496754392241754123679250549103457578157658627917395835988812261813848942789480192189455048619558247126681455855967318783959497701823550354406126207587860879700147230782996000327402194279171400988917234526350799064023340411574661962499959566316316120539484143921323848206096480158680123597269661351567218829191210274657384132199411995192149607148125776730822905091216145440397991960733783666891387342864028683400478253768032633771657395913220082199615943940067169838951160624029021516518720812728570424392788753643267049719338619893210105295471051007360570612571739751873060214277213125676383165409037221224729450984942702480304462157674715005273583728691835520251134195344276451100256766726079014188500359562819235942699099298705412396134020142476972495481606601941526500449571102326698813972851451425723356020077390850825864389864311172733287229764725247250566188685837096485291130334975629104956225250313705539507207370638812841115550554007654158937840649085556633449517041620123839529412651670411225539121290751145368780593600205760853873488030059724626585831195419791295752559391012602727643211619616301592604687565277737323130727087090680247779780560509264166802308051924184706060175656772860376090286589028587630295506919899005401290437781603361361630217912306764545010217202123721322168363263190337720890392897340031133744867625109729433956100164924771107752253519193199821152188322822431797947079495951310347197108303540715731122302556522605248504796156084486750524752558729883030856612881960804422241098932610661340525509544534047222849947004349960250372665603113375687683683107263653909658567146811745385348574781850915632144342216458311177014529797795490403626385549444260454020604524725278570139596173267870095747908948460590703646317209409545058616637864717345418617290456762029647704961114980797378429375192596640031213535015241515559326311462472293336500326680322490893988054680075666772174850218077737500992882896922208755100976200538667802869208542838215333366676381201329334638437352613378491413125156497099819010055497845505032593308671678112285133317428903600131083213887214432096727327521107365209446982145968327928945051034342507621464961923403367491941938249392996862299974885106661626113685812046375150992471911643286337968133559113463529041235248812935234933967987318711659228786840987816841538627045591036528643659940409593467064635086095285028262083498255753384202282288394969272457513682730385846278145171391205701910479871551172829330809799586902765554470897208662892940516485475685612142987845958758557075155533592769995257761412191320132437476878868907183350070094313434979382755054263843957069042718674231660131193514555539794245971708419359677394355712376269933910774735875721295508059380977659611522625934359681754837350538458817810371444305658360795460454525618893021755324033700897073162271598215583540259421198230583237361688247657117268343431747662266852814847381910559719511447163644774103456794501776083285570774534545780138351611473104933875892141841916928454776195499275987131397053523667446952791237450604702370770520134892503075085702093177838644708109628255569603451456621791102774428352853616597783487133828772494446536205930063315080148142033286042469842404778655906870127424849211250337867493412785526172225574331021078844690603822524554669428839090015442756028814749779887343037569684498745541357182912837239444406048242044844315837141533904257251755332621367060856088697024533631273449809843655541988976606181958261750071658762926197181842485120921628116912330460759717860759770730313295156700582047809163084334646239720765018951313651514404375259848057202239718501055404873925778972813742593219200023037988854240980016367252618679558152186846502850955637216662153602144871523773267132957408143117190924422720777854789701397257419927459751494105794023147374551495024156304249753292635785721180555454215745919343060483302356939575972656564613131695896355362010947036012617168613657226398370775721144786319248438026786509067807318490688306098899581005496781559367117142563456389544997882425389660120160186035361993593821381253578575180994848779426205785573944282325568955652026341926233499418425257697965138570852990776262069380124620954519342501760793893365164506949541653315433577983981876510496804070443878713965197572280049534566203216118681541168479778114041693007832577061154714495288548486525547552282374215268374939485558646534558454478198053029897918862668578309783972200720443261195722152442841647741578396202080622485245079941985812624476148405973830684063015326304656500601532276555969735812079589537551083203124359355988797515313645879353244499973076913789158480700006162929262093510204975548416127566398262489111252257181008897345347579805337326837275381620822954429084180581643946293966215840483872622071856061257814584023606388208617798311036024913697583802880956638751178918715315830614239283993014087853201190317409301997859168714702482779332481243212868656350331015578751246378200674652885574473570459865479029207126160969754371596380605307567714359037250195406793556398662090713154386884278388859054442930775586707624719305046008921194567667791729069467871127990292078668607350976800803192596669693304028536871040370548662601409956647407639058922939915502094717756373275438794888334604242637040796230188962550216085311428824369167166775266939554231019475872612399643369148543713435868661231707925037794865226529127118202050635458280934773240480294255366882602871818931991013930432463853886758673405609973015456187465113384611949240255249320955096342176856711418523095356226255514927704927660836027668533036449771751883460328519328429029008509008206645052568634191378237783487033960225690882563717836589661250438434327929088709026727748613770001022740306699217879518266162934147355978433949788619189100690158145705346669712170340183340438806598048254910038161393350523606960279904662662238291990624980690067249605288320741630099054458177503378776330844623396398547135886322534177505848385508555593858632830417369666945802829870416077640957610953203188545351303454504873925514801171341279198093868418533624465898910511581553376781076171708238597019208087326984366084164478822307597709268011815083285501329336433008693822842844153785746192956188336688859572319264546993968491841136089789552350392152465158245307736421913993992757623379885338564874735543110652226138945433983470578612215763271143113599849977782560719579872108470166031939122843306906858229118709333191799837049416895539957627097696285769039771465388162199429916272249050298042743986743070636170890082179815118293402125870907335009888968476402896076714196521955695328626842863712477666869148191988948454139138793214938996313046702402100348851222802765869791814570177972446695689276620132574965990361188615058750715639064234533259269302650391583172050621669846119623020875995709470042347116611581510832269872884316585888716843799880790065722089154934288782077480888966808887794050577180388361663274001172657607772385603350971196531056362519448721337557676484057396784135775813701634187855129405362641933260833369314751149517801793653970702566724860490950853368753979117053506979244015474552977476553922572876552145506330177401843739558660923893830788818975657003671520513580830642856318152926242720283093275387870390991989172480561026175542275290065946660799601053562007702173057023249038690344772553913824880536613312270541030578276786089501736024822757886316675729509556842821023118304860700774398499961279266658746112731184288481902260524798236649075531840196800329885802036745282438622904863699839702207590625784419762759646013162637847856702317088961153801244247055535608722198176576741156869155925733278078096408527231496509735890385991254638720296617615101121864298521323945994831383195609097752354007927236827880466698785485102935425339318597039024413529341715364702548008650689703712892072477904720171532861505356504298609557965965746096150486746786785194615946173769146709263718578933448716370129904058866337736278489455880916435376504582172611894629314190594655959267983227290880745137051520486255520880685786510790431569824125150297559700680733792383675621769692383214468681513191168278321355839203592248438790378478251156768022414227051187337667572241365149375563983154599708317381414142435257089723936002648202102298409674276002900075472831281770728036497855110742459099188110880251599107790173946612107920276786651700805924573247908741437645424706672795058979431329023254391953856236595996619141936789648017363047665407501992161504547547642049517386585055940175825896368733677539794604199514455167418191551531423209003744010063332454167950906457845353724229676879569500185603473066378104703916232133792086544007570056334585691338707154516128594959022473890158609235649481942743570549504436511729381208624293085049608945364125209169525603916211381848568574624917525775811414809884398969276237675676920070737455868084317300870638693605957685630629178566729386184739294036918296293348013032617290419312578289375998873190238139943353991154591125223157440736644126738030008159040351234628616087229343774725868812511767689769448231355594137177258516327515198628745346223363711132581480827409277215034044018665293523011353755023704107325946154875562168105571002006153872349060590667171359653751367255135678308615007646751938844924654562286226745667422913522521775216474324409337291393807283884590018902189073515598430483169685749749316520073728468526980692287813541780311210400649751464440443339398675713453187098134302781686254513668225334219104363241222715766903252476528820292078598513816315620715709269429336565694162484985931488622528984282275405967130240621306800358723139078953308468505790087196052719060463666610145283176146615546971549812626903715211274846761584710918477774871130005579337921782842477580731328212540938598686241456522975692645337167351048549794328567185352983963784083421642769352839166735386181524116344820851432499453885481337187597294120161714623817585458865637503302690377209322581199757424846278038483091483148908517001026110055978132762732555094498477642543205329325257349667980485254012447026766378921766062887273020049295289325770069586827386506499458141214493851246316727260149167265798937217514623555598774504119638947683548913096530614416126383775459277723029470144260705101285216050998817999630009911878888825874726300399392530271144195432166465417373578705769261624922253279999422782913728314139930619873432365656472384882978781459906085201169822630644929698476446613142248225163498119006196218055062154885240311953650056289146461116383149658633275164668293718374340090127382194802892462487103028879507267189649684983627725259346354043425448368237940597691820717005158797773008614261660814089402569286859589415023030039485751326595942968140392819182573023237180809346283054066339312255295583284357040306339470154355668254778326596390686975479257986622614942677244375430160912658995008549138745915062266642816124316391239561001636053935309380189816499748343280997421474240432651864510364527048112751951038056346631859478551090356263183042259042326021870150523321789493681963931217402377226737718854878938462935609405193215998040016045412531182241097707891950861561137571595811067401440164617337274031813437974264007717924175519779070359249536512953294981997837400664132127914660632453218390831762966795604395426218866901002605856454348021267473553584686801946237663932391767423543208683716511418103450100542541855780719716064234155936110073019655571030308838293057249260234102140490304269904704855364289880440244081062036421696826570604777374939749651871425473464785878363559226504314762362498593941146339221456664769318790346999984383206166945159380364318178189475053582273014960239930105821595001017700384203101823361932327645675839098383891791850493256066869455137912198240730469656949972376665593009484266606667049618344607607602101889889679204718440250089657112550533364596681055639024038462795940882251339537430046725149038053885111162360621381824969678989392090138313449642690420371821811388830695642313283379370596623827157342609740802004417461521450546500839203745223765909880613251557074081393404832414718277497350854453751538171411807740787687247808016081813037240377087156590569236590898266343619784964676165259758810873375623260566911199628476072960433829288063952087459342624034912746530858066534754513923899163829466650412689346940401704489216369825765140904967246860117152532255124030903592311804570926574878486394185679562304991445840908510785470883184840209253605329525646932994030672395362476770557229762966470048333174010850639180676436865858748645131841934943014745421648580953884775121398522363050614761477416777358514480978275563508573699867501053623125527150815851966091252123253466532422206692821265748467390616952139307873944397239410084641148353923156329126880191529903546556182018942430429107950024886026131745527112650281693880379970142866926731889229111258806373290680092837477004314625580392235984827765839174482635190014855058658322050172951910339742583500424089571169644932495114929457163522835699877009224577142542620120919506800796656338891135648331572609805492844398244952528861200895813749900124196833749072662529757738525747464201772367346975220131441432357439837583296924850113108762399577212525511354727347156254581482439708698933455623046931525798319002155496259388814016895742296238302551029249211154203425980934791990594581348358788930019563687269766808636944108662174072059100760233594193805254584391676537757191750794782543609370121792732517251386026660490893085060511974606904311087701574414988516727249029515258419780405564778744199317798790790217962070129679222656507045931955998628271493330140304361133388418594425198523040849425650674101468915254512232762163795564499251603016957924569656228466866212463175790614384816837451449123730077226553590705081577543824033602479965712684413955607950387999481735673479361256293335474446644958716748684737750526242020307680355121596260231374006197950715386128857540928828852455217031187693530239346860035686194129097733754788329260231144618196171661333485460826904265702049100913724609760233449094476171538966614426829935494766153602990272264372148106838051269873785919260839376088195196198407999271538961579064505748227435443720255718723136910702219776939810423443539221687393669138670834064243781976821166422791412142623762174686193049102107316430709887057518937994937041806722052655582679933427498096338654050849860085975194743141082528022452734504622037494800078548705214922758016290767750504286065020991143806537512338765064390552628046752600826029028832994543945821113359455068920059101830821440576775853043170909291423708200996235031650138807892839929318709275871826225372828447985337158003642972500539115975389109207167461678061307716126745072293083076715386955715831687764229064467457264597550681122965770719217736986297126554456717485287827663819395339814788288760996820001032187914077922063590695643754640019898550691149621074985950478150347355987549209043271182819035877201359037359300417738488083753842491010489374617273015141424782954632650606288488427453651478217403562808060245382413618468595659085137371790079522052440298274558124479761873562850223387050452505952056934169441459529622644609577851638976514699520289206222205676384913138542845837110863295268190932141127074309931914708911428958048968500930105188860753955666783385721999719542954674071565884432199315145526217640115563155534448430708836492250598187205121010685518066113517005526085923751074908526422283402030997658390675327541397975775665074360915015649882200255062563385476870836114594540447997092435285499473403996017764325861079547198488825591395459658450855222422730026737949703741463365699638893737842712437959603827132042343546527515491346086432516959160285765111122971868866769722825300253464373417849507025454484749989865981054187922459590506741262538487069507991401158649125100899005372270794161094986972075514429695509205322001367986809786543070559075866196437735940414179619820887860334535404636994707389127930452407354779682749906801040553002866011243235889570625267031113692754599921532710933684191495133749182791543086660776329022349839118587970237483708702540719201103086720742650154373510423516722750610766419893273432735730490331610473410450538960084438325508128163102982715740465645084641705840890090433597517481975342125856389107480900264164513972138594808819478298958302669605218835148953777524829646102345884495625185953397062037702311922267750691260030788514898110594703976919931733680753338106513835484939942817147960316432506795225863365613980861638388907881492222007562218341891827121076211187809188972749796743619650591489163573227542169888058581159944181690092354817728580430084654036249443217308850377317652394796017080041328413897037588223353307020155244286415861117902686647031322253868240936991926713511496077831440237289476452128714569284451872489692682386023982579175670976764504444532056087392627823400296807715870672788844439870342733791382533275617677278870904790341564448162529684909467249759216286141716116241708321210446266180837460217521229987971759253216256489571347689678467472829974660222176485265231113908055572616307170564825442452786446402109131658599365520072770647316547585792031083306234172969723470544940972979879128076645026294404145133527291119082446189921830182829287191523987155077001545389778065655833365857685528337096526124316737132757869212519470595305428924240032453107940265044760256105576385674933707723823144152954207437150770539748595552386118354332820737897503400858467012809789987785053936780092668555784897203687366803082626085211046950303932073891918077631232646915251389251162337419518055809622302173006828884212882962884248782689971337668463774814178191403763673571379901282103336629619347357947080627721249879256453157994040065697479716648416291346964743113963392163518007328808829593786414203675379815730786987951106463219104756154380123091702461737497946557713828749481469668389458693727694134558116996090866834980192414962033747193199207528964825720529343682943633605342658864845775780264430441657197897201871223932173357701793861173561959013959258685747924480550936281166956214372311561003472318031914737106359678589999326854972483572462298269148758177287615201614817102695178950563079853689977731176810130710594694997651704825877508649492897758453087322432365393913304277410754870155359917414747689732243672819035236788152759625818628424888690284814804774849851590653826937182824114005237441545595405019293884395853990804638518177995559758475347527089260010071060312232865559241133258645176390427816928056544756464462619905795567047879619899657244867720324752716261509781515033885523941434198050002035730807699934149641127891894332230018528327313524711425907315546604092601944502591370008883517974311273272373997384687596675944526488415582355214401083469186225254460681633392883457785959241204758986401666088077567888144071271744253122309970819186234335728146226191369742521517996810982517932442827630632873313793951171959370291274847496764159673865735512704375991564343343426411454888439497485320888160857439079481680614945489162779060809588280121214872745689496234294872562155526983300501614747526643567027717220526499508852559130594041957865616326147841784286849010317902321221400422491718340740264948842857812330494850680648331486840608823671532986885405886392281343219473348527862065696602877665006958114156795083386452192085778215624888270777406810889849433518379293263777952180647125563565272654632938812323895398919418720994578657889999953991652464922793787615789668181522160461022686284271654286994183924841674812460749012765369276516678729273900178013014994377091259639221702449205154411683897206079760537561141129523700171625771457796952183046661232091057126085272806700227602715846276332968394772304204938930771593649883300991652944554623745360927772151430195266126637574521367717635347137791254137030399934547060877463016049583006684911658844134731803475177484968352753731501564070312955903540557138631917524157553579733940062953226411988569133113821831016163431291039831585495605640666282385693438333773389328572619245595700041746560340845568194606829702987434966534357204459582792212128437050729225399693755456638554226936268335669558099587648017067646900342112286421973662484362181233736666875298938120468789643568138431666210822057482449000673909206225577771112170312623268825461855783238012464700237453989485221947075261929859990835260520110393917971858736837927950097916029985252328393155566347511953936105333673186254239740372383020430262942947710982421002559100797616896600463898998824298136147187085904453159510402200243676964842766900186183508979481012025590426159606361319407428032656858118747451799570022063389741139911903020783455192427675484625013284347626592443928751572956850455696263624787470637021721263495867982601979007294360747183756517052354155510590089416060213506877321950955891899466001477776729777631793920476991624438338357932714330231224230836344950020912315342045265127477936594735245733468317536525117861271624269410219724147491119798840552275122346700078405398112954750590530779074798597451167590191592711536245744390657531182192214414818544353717034618781362715552181721360909581333309917167611457380638095713655938449957329447422159742472890502526934306461824473086420874199355602780801409641986429013997075640170300476730221958920376469590544076418391967019902918170182188103028758728812535504078556583219810946980272026937297886837320707724791890138736506547419039036298421060739346948007432854910820007816981156743396305533856419340682332517784018508412129470725711111771167108522501079159940069397602513287322180140575459161663635676209901823494542545013788610511370090274602738829388699736545604515275397008140231025886782431985118553425297812109468477403163716007547502402143275143084034851870871751321930578004395324554223912416355681060600923770168603505309439684734051159539714840039530821726102662197606480301181783790200289983502534191701153304976397103753045520512435755545786219064645216581430898972273219611344044626944823891154795142955383167223947352415374410044461525818457508032883225248926677960109145718671380204984866710414895100233405201813078429802942529506817131740889658613838959770996876601850871814749375139818718955009602523412602616557758219809670302931934611044046965015497610764725781814875043704261449210465281472530995240998538085061238410570954183601945389083878306972056547868605505526627702650847565647537864844367427678938257790490415760120990490339070401198334491058015105155374051879210326902583861693195916611330709523444318424718790534765746150507117525598789110682646001740384475278392718488073312396945164470918941387836130932444702954759879255172991958121679014940983809523251899366803020082527475813291027779350408662033242913473535468293407699331466983287071130531169196129898790291179358896059822669629498911577121410948967517834055221745871972841501708094054682702498192095280475347420667806987053163717644935841600612923464417145776027797779507755432185761036138921536232157390562522076684865001087525011919347642436539282503844181532142001787789539990403906362620982407094655522973771994443300011677953833122986689674968146274656189163313675696216232536277940013807770020572379541890021631459932538116500276760508014593511841283462865650514824274364841230996083377751949911268072251077419871669433525662737050688967953386138199462161127764699585641979254459439779101016268582059048413695032965234357749942027841350427454076950481530047522484749230056642921126363801058784914285230951355128171869022872649173087395656293036355835080238602911824603148556626816286828585130782886336751641150279005463410922247142180551977859557372208458869969990815315792738087595412586052655461448106486220074844724930081287889073690358035202465213476170226349573484465409448923600512305288163093215713677477087391714850738026433611499872549181382797576402333480134222858348503827609554460616248522111468889742058536150149777521696959955087980175398695679426734332021216630780243842730933174269540092119995633741068471374496734827858085108375294148060318121025705963064649584384053404130192985662983905046719665569539374010736056593965957993111691704541475176949118787945089793668916324547982386583135936935832120644258543916460538789208332890746219959082450762299457181146195967672527082885077993110965494961809363706475723311849851577002066162923006480995496244970396509073346359974023193148834582998103282788716996335890319078873191674008640553907282449956033747829644007583956757492366772960618758375672709223533665572469814067223989186184243975942860100256224345692602221328092260001691531370285372857169186552083855846143084417781133193199495051041203181641744523227940582700884868219490204915550756715779036556598926985641184105112789267933541154273001814720009726115451684988998937357760086399121065921805767568071544804907705430236427558539164192083310790568173610828352587763159302216959928763351759087428935201893584084133795588825134251409467366891167138999831462098940695519922947322240001045517380667356432226050345978706583472847555346604448715535213606637026969517454026019730633639071710732730810495594935056047022638178947382039777979997084866677223502723679163876545288542287002951758786422727947961797273166582322167459931019623497109203436125749312484599989694520994346375281420176817067349566630168581284336321304478066278371346347046226677385370501051307942566026228624446576442289566743646007695978429901253711026580802871488124811303596702590360663813356479919880616691067401521378573316901392658905377820970515214273106826725246281535099168598069049616543947906476412415413921308326452033761847136195328482648561893003614442197625415652664513650646282303151027601352006936048528165722211191223023536405898550837984316915319082846104716028556931143909747055283395084213977047035119148193803202562426696653229984439039288739879832522675366114092913915344935053557019560377308253227451089881693168558555974524698594231677635227727338258254389773672229104467969619488578765090489478469211245890768598437569421423036275754093808909361060802293900187582440936324162258305439756313618793599834804923430317865736289699687125540440842240380410895023098684197600206580905573509565848475495819974782970745255488216802533952338355716311121486588287831451544142923368380177077300149009722097267922330825931743720918224459725272972232795545525140940164351831389118321206166461230572789785431107069644585620078147887879952729542612222636117330140673874624765030442612566249173585718347041386429198572597902957038181235660482558326347919554069684528291551326173372507999566677762610102032882734091112139264824022319318686662835951151562916953597994330801269404183970251308192775423266512126196413867728914361635420154614148763159313777035864351110726739599819621755850193220890369693068122187204807396071571143860999919449564671484251332342538704592473404706600844727303745462703839399773716941693368299148540968589352318604087116666677389630464626499313015246560415960168375071710538110556605121358150537836125369439340618647926455810800454388702421428821629422650010051571150697379307626694062575645674072942902240126079142246616914906464060321366292452582536461083716788397852518744882989409863367281697918769311905699243793913149224166684308919101809070597216901237172752956143796538663678147980209823792076710688000039193633439709373867288836052318305835169950314517025060041622031869347732891375839921757569738294768658478969715567392434930858897973407519419233244851815050056836365237849560958325782310859593659775886746802400656768600047844904273314015555374150254383655966040185329910929060455182452207430122193909720489366123039380622345684146313018454972311663436540663662929084500207196717019089987814818573775728854704860890619776668640664965587263950684178603143193776807090630880697109478374341792569722115676140516598296478295873350595837183998800859778821681472897732625278809603695566151966506353006607603315846780145079354655135723700249264224951409970953421048125395993036154550899355625496327844700814573458859488638179113215720990008723697775523413707368272054563762998679966887784931089312815244576877322095084088124920283777531647426302055182463461381135832852887301508003424696211137856502010568457768539052220338059830824963592278372429746541156079059466322648626290957957898229307045497223899040909580507591997743652991404820212004203447706939321094817437483475916946657602548206210550943075946424460474783010154539509295063618638277963743369457580089732028517296515218210521124791146511658401993070833596911539627791574773858540171142205126605225452878860375408085174154890134884494547491036328130783064003632566614640776853005699455260140067326697327582441687639794210492677935837531012208388859546600184228420262272251569561657802159496477725819791390419312397271274730351140038923519578616964833054204261745081509359754625331573399840023668509259409837754830136296998492768884088409324997957663084915217472489584193893463981625533529896564764673572837575399978190449059917097332066847798086770446687011150128382109930800083851559001791113439725582783049173844022079586350879699993969234851910080228306789136390166193392362607748739647740622406835651190233613523041668824652763074976645289042294262486099964941065147871178076567322749056606245857313179915413730592111288223013403302069102647373316975504111740489212493803641943971606484240051267554838451505079961561539347797991186630154182634055295936726716739204290807656334039343282775236164544868973323112736122294303965077351705487017481215582078055943692895705508564915444840691105539563106034534297758531775452247438067010623512426250658213454000552874665604371976480045757698805721147676424838127071587543689754100457445302430460577556699180525533283406995643601427820132311787752092500286818040103236676893623737010739623485746199266592997559835294761087086624147412585320309268777146945220232095039588289180377519324204627425930396773678151058753204056199481622301929963848920428556318905716046031825991961628782487169612898710852514016437441436616389605839372394313072318430200994411213384555606526464979864765472022340330011430646545938193465210315818497350135945093984736324915306524064448046518805296626004165918136206897270717282507702719771175894635682376812112570505309399628694842195302557112364433431080467978608677221892454376101618690185598766317495416895793762494092923168557795919811933426804358545956653357575977763093521525961933325535539628046351317490948771716583800673086079120553544238491669684623669485830983618566848923316686462069698846596224551708512082891866378789764170035319555621169641777082116883578918085428137268538117825134327693259195576837620584724821952482201685544491078935887016941055316960128803089029220766661807504889468156734123583216662561521788642772491628755158731916058383844271006699986408870928909517742917600803144411649833059895928705407674139861350828746214755288892083517635684587494689667598797522596438715473864232026389668969052168378222970512358956747659569015455135446301401377321477499101133674375949305203544808536036558723837752997226497025432267401461451377971414326648022253905215596001562417151356122278930236648734914787413901217930046715421261408612064581985137787343887262935045570383679649344525367879080549117205427049843059591814113647305013978100349837506553670398667152207072838342878430716443033902935497906419160072078334911525592348169584488253277007979354189919183976173203932440601679815613178495230983565773516536060663174297011816887478982580631125227703244752494823955078665910287751473586609423917383967704903747260316855108727942646584022322836909206370599497571094821991819905186613392384986564041174813201104524402487871699788837632953788556691863198741429596574416772071491467886454985775646336608214484827045190256554946274903002259470006945793355035042814976686077902255742092922900818164546144322083027210705572106248191731285623084214261753096056031997453322896936796508681392118915695205791298235282174948314377197511234049249580309973883932268028331836371711515014395950785034392107141517489755719954767238194074879838193628771784243127281372920574224424685398282754776449382245266925032660563718644779335001459269185418491530833597370939037176733521292176964876545334040529354159554918335443543769130534931500319666268274128549973067383667163110607914776315060472709934120266623184680696741757003203741690362379321500350739800556632971174862218488730656282066123576607540622531888227809525884241564810908911937360026461779396242492886393179175917091023044533975267001968312959955611805674106312795052422273437320566207104358269960012381698260901346962207271203489686507237668522758845005639926380899048728392740614755707526597144890753517268966062603157074623283772411483664001662311451218103447217288463306122688401367728355951419803853612555638908659387671335671710979275033380256151969167637576732016042927047847775721333208933047668199298827769546862984433710729953628497378912976419224899450458750704397349542012345206943217083020252744237269051120188645220440165493976647344727905433627518711053669384707804636016630203024419589629755649062002353427958498767346019758812134701497109344534128807814367865713865589516698699142189727343697517846477986411907813720634513499605420812656092179214629658084453140643791251710511002890462035119265175941848951060991984455561716213223694610142764812066772186932406799530514443279701458492564631436025974900912558577470014359402217207503002377537727265209347551946593117612492766753198801722543872153664744730332147538954146537043155909970327648018587597458494041613964718709656699624652188000477672763364555634090186806731572494223539660957582126017038435872398756968918217630785173892998479591248427689083665893107054942492658028206378323317366194214082160073914669247767095080116180023768733847278842231310062901806770963052911598183077334839352400153163894022161176531080618162933646918181295913886123332430862185678863420169331416394330527315146090549271081234950233764018513121093763415153993480262796972878851008513635271229004227041234432719700304274668799485408591289105983151615708520680950985292087179949641213052715825615785031486647471619523359959398949461183771260353385264500603697984557260919152589044809683667573806660733594600161780111400007220884203952020835769655941146767774293088603737343777938219589202246831954771834317904076276012993543192839096177101962736114705182627628342376643739110780864290581912184751097449550006226924706201627849400172358717429028593669687405318348371893056573667896785000151913616778473248610398210841596071803086480186593186958284502061119874448064746496599970497901008874983288112682728546570662046082878410097106562851248927198209493292753455609671481078629199810777039160439980721308730819911648481265543992528333956347300500334717215802035850401301329239069345430824824080558313721184668500394120646990888969667909272197508760978750883812863646560077036302660172114076115495159173101522485419658248785211989275864680939480248709046860171170686675150618420077998498928779410012290066916833219494202476383137690732866349181078318808681782793112449116172256421082138060568725049529421531303280749967033391883880964586433829017908540169052574123108961603891421593292514655524186037143195449803098887934658683424646407785126293841865692699633409439035404535339728867596438947196879923657618445058952468805550247670188965644609240440948212753988413583667480437135529699722842807881739501611716070066849816826894059924794110271046158642394719004125194936076537554818389597796908624552505808929334116438025552425359884854021725468996133370041136799525734492651625693707355177646908097722856887959401928459379377970336616149945481139560633006964564991760298438484322575589774419791509439408820105219310774601850111627697505130865571897577370896801287340529807256419660124847627107398193323820851309696504834016674432702659461921319490594302524044028432654094970440366210596713669496820352956259303118796927080749563875425624775886138146685308637177327823767355498532078805857123519085896969272264401348186560129728891169294905328257967470360993521212589195894456341918374120069253342473169353954162081334268330409867247220846292053601292146034127375793613082843198529861990030937625734985088768712886464651705252866523578555361434012872995874064506597902682204722463046080261695583325382911582287031498253338278113164122071942474661258826404288671980285464610962867148653121544646975982838152509597031723995922589148674347713359396314680450309209650821036525300858273076916638967750492842774976352568350456149024368991073496649112794466762839379295377642033748399142330235510404457832236118446960378341910885404273499454481299775527261113803324212921040865790212354553706729864576202082171354169750401203650021088127424692476496439425418039442891248260298194619942084731618132369230824579735526653663495860975667541007965416315617925264485128147147682736263181207275649867636199592455192822085356388112110512039443169096836058705808030467489658740064552672695875869281743988209688471977625337969989967387027013401465107725302926623017764891308156206497934429584071729177326691799068281532079627913758760194584523107638027470100610308728435406962520766072580974161263779090115943847967133725422809811764302840235337931646928315369293581219896393636971615332789372490976682554548951135475215445392449111270461788830555096563779192775355873145876818392597376595721843000916327127664091490747616424684235563068467766763801128110558825605836061007180001206931993986029144774943843155775844790156114117256392080024219385158263592813740336813875095912817444507194161582625631263731970742961812822906269454593323109892464604712339134669584448947400651208778913703617473347840998817377506492547505613746991293288239603537632466027803437218496496786372346576428294717255592574979771813931757014001009472392077855438168485632101030976182268559605656820931414528923850404003504879301460757019553096732648081279396713396921426326128409819886650772205382983749761006889838148100633820287707638676908536222752667785489954946113744353410541599715920528690638433636356753314994713985171143857098562564202305446871551341160018372014414596470317975937775817253190392882125658730416071550544057572259160809456492467146781044919569457992256505152560908513657452486243035562658587039585473281406900264449133431384095306748791243988671000131420706939496492651698347436569450503011990816605489715537401422253220062896165724766116982575916195184184049134173556394865024965254555658847867745822799228625030094124362336388974329385485560015033548197124683303051386490664592259940195937051893904184437666843923107300449262184663618971062444373314722759384983648211788550792732437796693928547449319608907210765926014256250669134887756565191077521913661657608483156912703501586744513124314295118582259505144487763056000198021097894331122701670486978630676652712322804664750644365924338776497698590425170506253371654545482240220899984056474518700530788532069810387081239241998870708004661384922493454812687743200793023327738711638594054225658269405773384625796208819039127299225208712244067505463882226890787773529889264207581685603341310020712601415466971250914826661553957566900325809171780930485560320072441992470339735057351966170552946051432842280577042822765363715614805335463864220075333030927245528770441705135412936769980497822959524994897402204753764818472684843136341602046526914474982262327754457004473103952192278324687958564934050305891983648325396063655508378959976451882074945523979369108373812677936660635802270885337295287940398297767669419307413309233471948528067515597814358439483572615092418306035417566762798833238888577864078457852210508920736703095923954935917289681325071138175158074098765676683635535129570951406465756194003912098647726061353429801837780475450917537366348447285389050824160241401159380389655850653016124602035133614611249059513693254882075390424834654713156094734311152469844860334439587839670263657087156108329867506029954390909895521794558999055135403771149268642867015031145927575682498984420591427630659050509640599336086618009954261065566986283802767856470980649984893575736357561083288983350318869182136113282212831704565330045373792784253939148269735692958262907518040746093958722154088850878517689073301894315233918656968149618404715149273713209313371312322880798232803553355097680681348867143724537591261104688057681167817062770125817008359598083373785107256348193180220068159510387490915902376233409034025874833228442388896559638549080365314621097275093302645363479194774563273829712241379480101032899280809148710633445763413219313897646801753466752355075297511494221639135283633605815040735907719269321472675753694078064117698435489425983790125272996792279001272942095950249971466128554885521615031144733161521460018649797091987049739468601973877399948174136676086186463624868146684447808368159012858886142677680736658758755618600129815567781884341963437112665852923274212795650216432080730639288096053387685489982636232966103037872951363325021821978375502160086996830619627936494037039433246824558001025012705380866640372362810693094303824912404529029912813084688224589017490201144803449683105664610572053708345300250134538555673854615973676654303410542156396611440352910797723593211299467079949453693531390118023767770078745268867242623057523904234674052821919696374624209412340469503708123870489799750389701431858436297784397063959386923293621864762357128222604531243164189211031354256868277558488395686132868337495154308141503473566858283762729568666384604354814060470044533338354059131262540211409918509404001329032470201669897022972109822015956112317356657676618129079314797274477762381905203732687484489910716931744548017727007831725406212136957491728692624758118993499312793839867025442463689944464050111395874543165311707932265729567179127293946707875104193441134199173182548497133844453519999138728436975069813172468106083657316032100256980175139691052181349268826208804266732422109602813055030830756948695753530325197399564214963444342162721701429326346282618061314479343416511955422674109543638706060030618989838179175701347576405354826314050898065348232468655732368030249992109350898753942530841592444818257264313354123879559805768381611413548493338295488012610799097141755223666986926228173837354974260875381858878724647816257342907317696388487578443640556353685092148224768021946635222877111953888231158792165222126237234531157775251408121012731186737179902330477913110256903115839583896293895102963608941401051415346262420507329471566296356102176487189417040442342128996604584046487518555447680097118480357551601337803704111767004104077210281188267205783424717608838455732750159091499735684784087837986192827820191821648550217537127830438421465618281598272225752854081067240525876114054636318205908915127568308653503527689533017059804545488107684026180114830285088432386275726560989007561107941512938831858919279791589489748227182302775998716493377104608593443645519115717596606150305587593861606016395390472736659434408228177506112136711557148381723103387570366184895685302430070139150859959538176165308862526070324704098113701803387965793285817611406717669438371880287327455722614409049278733517817659414927037759439499626757791113398947321442809971501305784556401638972230765896712066642942857251052401850708704851067754255227385742443393284687393184702031778438627136812817551246676802303927287161683717475315778205244546777811017895434548651856879640776110233272527382120201162746157881427496033219047117588558729630469232336704937417406989717539832967812644400743930804910563596347161801408029478713403517482752997558753004283982167287950778668459797882274156452625352345634006215962153492165634341414889525550462976120459105259199273291755459887913915748492130522519560270643378821979448251889494764735209779806729251407956166145665037400128014646382185943543814582951899937920753861724784081327839868812583594295244109532846289472767043190608418852604653899711079326566710392616086823585432080344080074473007384776810398618421526932442001297374187656683681361509083883354194000934748887621464667361877974272181814282499168246140656907140442895596723311843990786825116561563077387081775862424192619523571731734658440936000519082095822853199654827814695132930290945902947525954038821555443136896375507784609094337821976348226316491792412838287921732601162944436820389562452951268694362867237011895424832860881157131826887090666793394257186157970571626049975991540426329598843746216602913719137337527106482924214014083201204434696195195108521759108949373082160642896871676540993452495620154739281881253599128449878878779854761273432504644888827417112100154846632067299197546420695132446547389246134103400163484688064189457864022321195441398493256355540280776297597571080602529088092665798245707594130177156839205070548118805122018722961808877163829148032918722933693007241111011364991160087958350587715343212560306453069364905104744479890922847337701603147876117602430333133350293391114463305129402761789186976550112108220250664155916206981468451299560432024176388142054623868108190076977948635409969215709798217084035109282561698891022074867199635318947178018613089167935562391702958537536700311061031739022794161906484754564762220266037949517108517303754576212285388092531795199535318045620918866758110603005360564414579674096959974495161685655324167407732172041944288622705777814197571014812341549108132792620795198037565508635909711963274892190323538247602786710449452126679779037826731257299587289211900424115928299593887336138911183627800556451396074551071848648691367186905530050831601391682416886348944305769522680209507594563141456324786481944089348361359200755112550760907263058920252052928004998921513697819820533997178613168780672987175480602495627980113222583741149507406035876856269383968219085702292097963670832371643887674059946113798702414160382770419742322959972649880954774466505114102643872349808689360226584588941685802807151597842753868015172272302873374727141833329352022400375058201871536425492869606344107853939095132973420492880650765324184063595480690755755712871601765597625909582179557512698645024888100960426971150197799695500973414166846667825325620861502902193599971203074513860131514026278008857884144580599251731929948054919841258700109220139147304492393582223135842621673771036159600498717405553891610125583079931098875340394882817399749701887426141157877280297222485125082808273419702724377369986010412104367771569207976411421700866165789940784115779340658437794938324703941451149039350481390300069566952560128294253151892368873074156485768213827055285794758239264984116921144800358439769373763671199793527926275174648644054556497642346477711201367502866437543610233121674569870288048433539982378343211972851773108771209532318702793507392777811915959615265057808299619072496276003360883941978066183968150043574928693275682970175934152813227280509344032126855856691328512223797759510596345654365582341975957417619198262394837156965611292533686738431820576827862748307822103165658907962522156069356109480711094264225299036218054784462219052872456360345029126056529150015575367277621970056340732121205559602697449604229163897584240093766884320891448437682136789715653605497623461492552698039640547281907737866522109602651638443773014882756865962208565649885153077020273004056887614530304829335838688284901040268655638176791359196231178092477495401464022163499908531827917560417105580379334708014029191328433034298998038226978751364480561159164784771370443103833654412856795297440390746026267347309026316581938336099545929234189034339684745234384249642358862791550932995515969680450582605282147953660303917348113082915433215830615282323317496262088900372137830073333864279479087263289329851889448687968051900956559638847437763575771960673731058100394676101999020169406371972340722449606284122296176096061338626455041362141245735669435580035837326252066009206448543664887901589661933166587939805638132605397846956446964174427167823508374099738080549098358894419334035304311773161664736349364864219967620291357590320789773522548630294469528748766141487183278723720365204885696408768104712801801038595597433492515692725201754476924757955980660796367573741690657325321640462119662481629214353599953048786730675514439912237890198565696936979918864878884379295760339976464923575033529572869092926931001190178350740364554385313915522411707374949134014530916637527901011148490677140214923900459349104313437385646912585231518588207415701594879603353140605894392075585629071153863311283641679876147158629720879243281480670682539530584071200451000733552826477375997815816995690311154304069645478348587715826776153191437492261408260409090139658867795871896193193912834492331065093625552906463513851265055775369309245891954466189128756297794358196569110881095078973999828755102566866242234895929370124160335296838760901924748872090235749854836624999347868749363941788544083001410699203930110302611342776444014849988983999217254315310067047222864583076988897163490254699819607437606139432933001302942798514978629799325458735405857176826599144085466321013545408630878783732136256931113694714930931313599851166131940200187089462381791726411493454561668012087092149584271967843519154232139709260835878528455307921033887621743971123855996640445873152174754035886826218612617468767519253071380569372755500116429412316137085528128817649791422534567691220832796957350803567102470435891179685174073402969629159434500771897007893675713372308170937511120958989789508397871236763489273806145164343002069482994247921114474140602012761819251679836765790181367605089307509594332682580365859799912243040310281636917253097344384487360833374768034250834084138279338381796798623117543955937984900491303185092645979416499796606675012996328260696437513124049999413842114765585042901581778222901578984525412735474773330974415094172438832594533990257674696005955747352884984045910457804331381485351337992827883884561642902385418712061188996547619539717573988655061917413840734683075529619061782832293870469264586154408380147219888278691055740222238033701062454044675323562629639893728052997348237286893488928249106670462149688899271757591968039393780900542436874294003234512869240587591689649257175125340361690249416995291583674507823678177392140224785365197571798995268335377368339832464223105802363038331295493169499815617022261002651739679578463538267319519110319176578125724592211101831939441057076592510465714705528169395937727227525179750977442976338681449702144653469396071483941243097254838450818856620493388169099365059961276761655114386271566112290369644554114272904342384052787230690756677219579719354869904177970368710679006581499659273187534081173477163150215348341659586519771701134360743140828369115463459518157801731734525246654322069124163801177475126272435339811338610354502645401449905105286158662630336857789504327294935539004801359884125255885550173430610835631883345674764764718825080867803032153129169859844199851404049112234459395417652063645092555609298111996569313787009588230214825040913950877804842219695956878047375589336348558566181548353414789235317590411977714987174675920101684306420462462587617060758525904344978889728233242133741963892699730880865857812228398450474604408573557702916732684368939483673562510894146547418166568543806679715392866943421071535313570777003163171583423541575811181037284847261374541025041414544389328897204628635735190560459843624206969309870087027361323011695657065705167937671563760115379461400155903500883555639158301513695122917527460052711360401275044644576684850821593222433484247534368341512740989357283404189532202263672304123609402507291523318637401503228995167010786496425562785881074273405869570766836130288742561821379071424493394482663958456968288538605185505146904691056506005585276061902858379375053017005598188662400095135221638789616653864135552079714941452882347138880786122115148320223480915473774594686603088112434511253329411317636556769194727490375356258953122704248960749415317550095107828332121617230355194970303003808773773138396157544876755059767489522464553104049141364019117030540451770697164241606649463939596093143764088282065469465003461852452352726336763566782529253572104501235014087408529262640228559632240027242899598160450298077998448345796624092672223733965762827124294905455310199756112430049816526653855850172023364485268514979761333188855619493880406980832847076688298168148518954959278553684232338759554156905929438080683403074202960278983966753764361255546923757245719895657151806015018904104960515284076241531299285148786486856527314503094198922348079355038264500434796948411069966342651814048136260776867502265417668904950162000390433148101948392376226315879570141603796241236165486485843181024925281393067179198041588422916458497627304709545958266637792451765573513074281270246559736497157136966638433975229524290426763262533193423411546712355142725792783634184914110041515509068985803300478143350914044561948009618511969483364353845609175831714892570798177109316672455655163114595677299841449670216121833449932838528847765772006012038553725696129339707379886958367707434027256490946460456558766533133530813844371019943088894835076285952266573423801437812924593473147151584476395158405517405215380801529209175016262433451825271790701338959209145815607894600997158375853201675434020915072973696656323483429155357030108414959493505664567086787838435637214038010426157984978096137921217286276311740118829705762862264017057944337998259767806024111497883352669330795891036070557033870228046015071137637887602302552831020648615807632582417196684908353837643354925593956678683813847365956079324706707808717081469516145882625534712517050796205913116706324231142943390384217162070054742198275778765043001591044219983724356746110238879826544587874828240817368676586251696037206975337264767146265811973043601485584648090777287611822019059283042520595586807035934207467323448370611040999374553648328622631901443282245024881998614648959887162518903727778832213535365276920736673430765303143201005777408770116554970759097596854992799497669300025148510887956409535717835653051831560654860468442829059860276265623493599634282817899036725950490990013064045299655018183668929787062714752478397740681016550243767691188782938511415227092726398629778618332375318979060832788831752801124589127999303683833051031901441027127300281511981494649764826133804216823608082500761426541621443821274523660352177997402335598943673238373301002271202881211753876184862730466707010742605223999549571297741273032480029638061556743849840681293736091403397978744857975757543928325389485488096237335142394763800619841157322801600560403837712732152051883758854620051476287504074175912144404005502524988785534114582519038958412524264944153076884095976525315091772374554615640614998377769055923992334069528674390539800856366797098977135797950095390733946031016488532982177570594796136622817338276006512703617861084708547458013993718230078568357367527561743650890570008594039237910491171287560593918421753560765635205136452148659071066849447511190229928435484585301953326329685906047353894782978090908386537433468322600119466960738762379883033671369898588257752369641405793503630730643339537880724232839332943653300432681031222277034046842481948997718343062072082180769523932878190341041729358525923026114908683099864273023014475706681849481074995732153845052420133830071284443535013115204297506026552218405834084961097606152289698057543523049670538366433256295718169718581968318631304616051310645412155649316351078058923978721526626165367303101937129692374466361900952615440986261847912284614011136421811759206006817462800940879598514884704113817816988600825204452276914831331891511275704178951827635265008314471041442391295684686336809066607530538518827159881228220041218274817816438487471018314997384056734473497558446720289209883348876411086439570500688443982935992177403921896922512335177789081210843543011925691670406605592369530498286041595313921157520725146860737422563737237064361704485772115724197433561727783997672436200916814341743086646708622431832457301501934799980244516870438345903247459220944113344540625298255494376459880298138662434287632608154212189568681295953329757029565278787490391695554499075161733956745804856591693265124711070146408311643734010318297786625975325529953295044276503954765590470421755666465803222297450248314370425328206575340563228271220830644924963664876435062149845549007906975674858361886571480516774050435054528305043898673781728889165311813088899633820406242556433778762564875592686879678344159549263029298598509157312715377085081778830939573160731848290508823837991695090915331303865624171080287641354568127353351122245852968937167603767309558146900991289966062371589162839026876312506517319532663797200491110089188557046788663577002278480164486508021663310855038355875172483946634808179255711946612606913505458093443283077222695355978940437717318247560038295262000557931369111931072878715181270451547653320164960857168402981390895004946346325560206952633351896182529602145882701966622916293829665297235130129950506112870828898357088835364834471181796503723233654677410415105950045958607986363385759557803184550767661352876911313160199220865850219777346076766523652200130079369939634686933210442031974736779451830899280074528376153074648341056638697506415212546171249524216207323386083249364542267481089325238788445947407161298875293676792589162381684884098416227534116652335247742143430939952126222745989284676454792789714625298531606685496602013299085990490483045959595277302771424269221506902287049400895003877749655614309779772563128040977186722524627266705616387257313013137152595951820309274658434060326395472847335385674982041456820896647261123682414356005046805659640781380311294615564536800234596403763105385213555683990502105176622905342941001161916179300468187544485117724422200880319291122227375962234944809328470002868140454837366281290582681860921492058166919223697706095414485882039542610031616067789749160712454848895109608279157580106770243766743103195905154836046409451893492498305773260217036858535567758992432691673471759750008135544397380104916056175499760276370837670287175732338319320121476699731898179730002649890335357076699426133975361503016217937434919806850233734481909796873797603254139120689309379058867310828507616028259489953604893289138438689057978494345260947423776750565835769106508719911982132867303222810123213196839724663746214591630516036375131403010706368096060395751933242630527619522224449606336941629476484680985953404889588792004504015058416060208636720303825729259393926165803034639130703330658825879759727673075878264257956880849370583184911504719948836020295240845707749316776180095423299851840999731795230939946988636181656295483629238164054385514740496354724224609865544431349540948918840698555067005001567904006079661286264656683156050919628681812597420627964200709761891334673761309376820927089741872225152880832770980015432385853686554280223292252460524468312654852932826304929340624597615797440168397329329994563048617695985972725501940508896083601061417592919617347038927482587083106256041499021395399031099225088854206070514468963622048251936298511275604304016587217395744515065635236873381255352959502872255036585411108033887464580685732621154850429519836810020985411313913420597970810510678963165343377957309651878300520357025253343674181956111029536441668612447559736030122470690914715371732818036091829158765663667796307158760383726031375779853355413428988798204083048231330695115081410154876834522377608779465136114867910168042521870093395915770856249219220360655683641435047961099659867792340268511389220327420044816586596458994998288490711516627892785241552139276627265322640240475918278139857422386765376234551487335383490701032159231832011396280354534898942600513277097777229215995132744540070861266242372706623929077921643842754261917462490130381785259275389241973496223491444206377499269074116857358974431812304088468452910744371234434657796738278699828445972158522544309676949169431922256125409237309800402140838240091629885197558881917113592047527186550993745749747469146882651561446327775938444803237296867404232005266752625469139699928169358782523768798061654105646550190323061122025304791323175369143648083664969654933133771967782808966697455149649974980367151359757417571938123887776447153996562488161680081842511961264358632814272887405724854062810643716981307468896997520205728321666289681749283798560407131737304017732918841316983727841557905127762505305110281553327399522945426429361427995591231632293725158017621791011401889109005585376930816298310230843011535927664131637164304816658797123268354521451129608660712307033860884431219698694960112633789842876357044455124222529482369528579565014811836660514784728836694729739441620754679119416575478269138653492238224177796735008896931773662362655044318918761086300284601393627516207359578532672074584581907931923356369340093570256573651114421589655820535055752981305880188840010223012086976289311710883806162552129134157586718840737613505812844455188572902248724315944470449916531699264268795214656926144248888785789491349822934577263778006763847118884450346602700484248468631199244518070543572686343660791673514218907302173508317867689410513316702376875758369454716197807819124803550384966150916717369848492080014585319840658524077690028297061602781989956151260226256293163908226056472744424832310299201520702349917070423849685939252027662745431439478146706341929721323665245882222126533897268005236766028302388014782223565476424131717809157136100727334134465435640990682571418184247161446043428400997005599245051149185122703790255760324540571924654265737426236189260880587681840780860267666036689662396273996788956614273232508353805531232953343450973890118228113409813504452666067572593457078571684539861860368769996278086661673359354886028056565628004496176340126072394711568152164921854530620426016517759146209744878689651187881295068760649243364227218511961895820248375926911793391702844164600878093186607131667049838657661850032898556532330179798607454128177106956821401460906304712044714693623479331174492074198444533307952440051314606641515902732948768617527781598530115577973862752696394136146572723568886378778732339378297599222302119679324043152098384170827352774999550260798813354187836635371626274073876559086810754467244266647374548640267242265062502203860767875130579675470714564834848547068833560713874886399009737431581708873605497256136252776979560923857513206701494074653610563907202381148131845494515886092969509622482696804880137244018776113709605009134739433626481751221701731319660542899976276628070466070516778642510343207149324291897632174733808135103138620664246231907059207904626848970808128694325531413952759001185806729762772433272530622189306848947172474419275698714824175280884485144933901525957454478844159278270086484109101185417437752428766889383538013515560110925727808520543712495927891947075119371517530381439504303077014383254755342159526520916561050827579273782756616155804855058692816746846248884547505383826571650709720348099544645038287886077969633124556440058030900269200162693219064079300278071569075770498600244906330587563877856499381332980919755709282407248485033326928288059179908725208989828235128958829554229855361749120891099012358113149934601755695842501120085765426428539562588485896656852254298741794880271646516547636204327844665254546128585871820671420177208809860047247840100796690224954288188526530231297656496053643512430997605450870482126309997027276414444367306756764187694081775764231695695114868195479646079719561657474685965028965069307202824275428548882290808676543339447810760425617358470865455691281638614251537979377822285616249626749331360538504007238716135950858886844293886213393136661123591484495105555339300881574608693804400727406097042022571279655554074151914828228415382745275529058850088732241728842706487926597385901446543740633436161894973048994633632552269028152123055730258555119785627122872750948530379313151945175953570655367225733697167784899378804289917537786513292299637580825661859444666918058547318656648109035750396116979337371954029281706501453288502575303132279680535596574222565417564948481805115840408728679342469503606913003386664960546742812600214290849124202094358339195343740001252502194340613296907732791341052555506556526790621517584494683062700561803276996300217734106764958415168093021838561858301220953946664179386887483345966204864740817356154510496597325651133509515674928523916176055341495243783660551726883955260029988414793172203915710363867639771837710215445231057482816490075251918166409933567921491652549568712854141026275768176488911792939249269587904343227908011241405037274523371665688350611575148327936869395643961644348998277172211334911554266775603143143215234897869501635305016434228613525175230883671256210656344583953057675524483935469873605976293400521793280456013598353980945704396487727990314383373249313151893911213740861681804902757429942787419882169180340376851856666347322851394851617385333997917773687160542250231549422456969815045081270639567150741889685770281546117512840317549771462813063419517634024844164486917904223200263688807859469808210872159584245622328057018268436548249469563433708429917695787250935305015716177044991160687939626432890182988636196240172187577865870359384949279753595335469209132180158546502408180498797149021697942699047881135611806198169649734661327520334128557628080904647643470454104910192659438908007696541160341164041736234026861206202991812677626662261736515567702450677865338136365793918175960437902467647160748496694254335435505613841551758994451986878415746860161710620961329452082902319636565154680136246280915827065808510127138561785180408438408272441949207655519012284925990574699891418143496580275710722547142537825912102275492366431722520814610771834285222450447289533859011993813736468531137147389330762429655855005637224707923563479259211835160391923146860018682485677280258654006446706326472254150125786289727881929565500967525749929562496553944587950940891596019585828874716262399688790964697713095119787547094026658488204847933859200162742642480765906419452068145492414954952532933424122563708270938544603580212108035894261012589870096244258545702195916739778836138848244976152144730727518716735156177502605846674942089797079917686499691318244956974704039310442975434186328023908288827315907690602954506665304079687430228672322083674627380391464584064984842536624734805250307811190351581717446178824308781628602750346760517190757991481989893998299046857686312180950641694350727038977775321481638947836728385739120821830956363486413164610013126253783009560380866483618729405609728946422149906616405616261760291779977899281872224840308830671927980794193549461043216655662187063070358837999462605188816783093451170544222618129774333364514169240339045476777175426339897679376245674841559336792758251608154626620234686373387094533645454162248583649539280919496585783365854836820305647401721405955353164917719786131801115039887433872152010056124123185617697537066967092687714684040067242591841991902674228704853426776690610620039888104927369524305523157676915849413474058957241600889355296534545600023006998163817972987425225435669569082614873387543000014824594340575152033564426617251640703425219360924213208223884073616845324949444810795560244096204794761147343287518104341578581891451813804359178184596986248340473335889558246866504889625981465718192250578757687026183352454294920635084929591582883733135421290493043691747903869925650921044127798214418100158124335956875848001523066031277195215761704396425896762616168012804394539217185421717413848825377962164796888468805497234445550429311806857448515254740931409803018079377091327016869804451906557665949900881592943589983520658473595302090139756228544965545463758654525105104613550775170776155786169556912238208237950077097546905105390179967108399485873605627073415546985507041158511539639215750319551253390567087106039079411301022231629667674724250961234891078049323530964647712657512689876743709927379911997725276144682791199894903731298078401489312600124168221634156401842657191102241752884711096284512573128723307580992858596049655345300767367527327546420848889898969023469099595771696568944868911590846970882585282288640082944791785323319455719292297328625317217775146293583064383001233101743817089673855608158942423429560472671429299698785938920082933609823685565880544484026911525883384670261531367171161825732280648272101397301055794022572650441201945699929360880931967594614577428657750695509919097711263784026619817716704176125838682299134422590233070322559651475031627253709727146524915249171193299952193021648297471772614843778069276230682506921765716520196364989574595857334722355623526148318726975075415538831945186664566015803566975394005831124024920171358023541582174803115228854024453212178804979008317438532071692253977557106754029407538079510113429223751634015720497350282006078057820873068804435130578418616278342201210628073884761276944893533997910412450142705612136187832456545724126544607695783531200752530719529669851114683711442957648219603612530777336447168200205642666712513283067361117144607186930746783447446376484996763843974389793424502126722066347728313000482966770462294528975224801720452887790125054495643258191690799210601729662638906537488420306012970987761953874901731790847596017920066575580971680930422157911125156751763883316253446302586622266253220871572833710096917611615560264860761186322537453411027165404049119938933678397138592146026601082719063566967522853275307224018799562278366838819277705722202245503993276248519021667829497900891474360678901679930254344960946810145703838745538367627259182560897864042913000230457727098203133071559780629628380344736428437325516343777456221057920618572859788104654064391842865151235251569329135523327558856790306922156089261964068932460265248761872374559893399005085756257472467838924705037112551986958861853434706170645224767864220943816376870777042416273455180375738617339652490167735759421789780612496994216074675667819025978572460448169838546817179582562359820767172033208273276385257249722472473057453986534640399261024305959888681943159116500968361950241924185203284946118903559966657988164521339144130962154468719014398410278393746893162641548033756346566395026993503205133048741365078707745430927285577516027008523905812200996777810166289353451977796466323769425831019996509919218161130389123365442417027146300153584529071417348231417796978395570117626531606787599267942290117118351968848808885921150624448606222447653353585332158102879347822629713442833492456616379286883296263091638523927918973068366399726333144475033971884530248530069080548335979727393629190350037775845619784040015874321500599691152994223574437157453106556073439893934064574053583796149711492153367270463204140718085743211910283000313138633057652445914425127095985639476783755126980595441290814578658166405279623546748952597898729140840552413123302687918867284130192383805334379013370348280685832261378143865859714007640546445033222101347799784350145506341247403251788099143624453411530222933993055023296171749314790281839108770383297711311579461888033807094122280375832920477993763693290107726180750958233385784599684255677282928643965407146026020794991136115172652704798423634281762523036942279060977166573135394868363645182137309307244988976873237754021451635643097624623699907446064305573481799964035832923631659562666841431472914693085413346480031072369306625604283187919803668236486787658673199920993653943220053596797179091671453248549897787704477442058104079025899480638869875668324854633218931954464924662755761064702819582662518701890968954579439860566163728472482284776942257896096386052557686293342317257561519406234911830566473147509743541074843744043324041357731857581030749690913675633031438738837231188934019331604674096430533051234541966963611319276473936512069845329951152995276130142648461708166173302081926514162002653393513187410799016267028923224272710821514608615464558441698888933549790370553190999079325617745934755844799471969356009109738466709667871349216299678471633129571057302998392735365712854515974831214731876485294789499110132873865131475111303278756953842093722045693003679464199916588781054944975277361665064917552186871359823080800371067287374402743580001108540258663155701630731266128010333799416111231250035097146713611413160839555690329064664058552985087011355212075950357282415208391690203249306812533087052799514651718605948128288958565013560192503784411743644693354670993747668829338935855151334619143676785117680060993464128642646788417904463817834134600464959700839509795975472964742662238016240900542139303430975776235670816530625906801023619158926973820588608443070711812349617894911982728549337399719008428740887671210204704604326165716789570213861229138898511325055044399262848766155016651770114431925557076216101910217800301043031087681867467787980259946312948790551669659963625057207555568084718234047034982060368471705927578536177697795146511567808349898848762826492513302060892840334823313428094070626219817033683665822977000972023314225884353596438906751690082406177365282779374669997732373591952933389135967596090957407293126578253195617826889527488040836832135601906979814558732292326992509198151349954670191285433930870608170018822307172378014351244770311866659967246394226442263586568936985829518400355735433478490400697395945350658089710787274597243564130391280981869896038106928299593485623894106388892894413084891209610039904806670493745974769235975123864654022560802060463344833250461374248113690696502629926678397159391150967777131902108971353789187281530503207750591875562272797964402091941443103300739953571959167697382277680401105574860657239729294811258334566464106438672490616485480826676719414176074427937171619935609518000799271595927599450687037855676606248678300177874273470023970088091361471640644219877833541799190189670846294126434606227632344759063414330625044401939656032711766468298507476717976304398826366460634482680176366629881265210299265483973786256161332007588335992311531105948963967591637026372612233780911170652136680334702369264323991648748734664305231214518279241075589669169223241587968013577845440631801587622464634535925570372924036732958565087231474775410208681440268070353661873028183111798245586772315743233363307061625503205341190995071246544106768770180808685200316033399983989660114996935198342360210490091962832362835871705511637111572622574885294155203532017318579807362823724737872931932926082134055490515352533538823844397490802624432607423191161422255468676674284658444196829377771132241308338524250837791181839206217842976061108172786948573711672299544695634217625170863726680028826608940558010845746902159934167778558756213269477398191565144817536732854194533142600307945641973499361998512256779046946683906723740674028005638861544354928137631370355481143135962919204292660983113176632625256175290543361726194302156132075601727072500341824970868185427090928243262070858243786342302415133299152609488242388013203383042815908184339643220335211892888348429029603562164345832654526700157072538838505798583065229315189410550528642690925353393481240146699747706787305358344088391017171775675034269926338407775047996644943795198992156756489569170363814501206961908545110374865234014264938177312837001574935132002385601374629879883511963767087381536826072450175282212724509922966670664929728870613612983131166855145344572062706908593229530894834463616272097457671852980842832475778692327372671341543655969081596575430267140234939184880737885847979598336780392619201062957316933907455826569199166028935906345001194344430561453665510588794393284739149547440643582748546138681662530597247074728909756908968690003673158381531065078864087611937314305866081324351918107925141941539939780117122178810557094885729273769245876053970621519886110658111859341774734761314323717380809982592842291967223628288349536342141856986472059554883515035394376862199419612606916591514010153237373215306064730092405171510992673174143616828220689222491722279394489480426557926971327106951189192051784899373483759109741953214128882935267941728848250921606494632602065460743508686047431511955135172319504952712859498293492374296871685816583689955828872446269808590636088338796116271724763558892601996684981261478638661152497300401647943961893206159388195075897707966324091656182517916406116254924671356894987026853177188016338399470633987371316915118259528838595744765422978206118251168936650172774766587064398337891728412964019583209277768195354152524764193738990084985548060445598203668569619449144942639869907932862166869892655440389441146370374460967227780441470533055399486209995473468141866473811209095229988802399340593863298299419481152899815393129379385505872684042177470219107520604294846251119176752809650511506162850821665722458136178524157908431561697082590630358872693996621477534088554485415538950543991749911973752414222515808520055043052657633695622563848045941527143281928196165182976355373528329941818734235078529330609141847799191131874317225194316308744003965913125323582982266528481512484372213567342361094631927606000808966880792885294034111631317366922921333061004712117231875303317529466581147261710690987648795937433642465879849162693788611801714288450701680684921990117487790222002795610204314211991619719415689452384003160451166265856696350326896378341075920477786924569318423538790364695377753726662065031984349331093917939724245941306846784451452034923269978222051962634570840027997666333856807487797361520372341404921607089350164316604393930567343586920795192999922103810861628861539936108973127344177883965008955051787455016984467575984617341335955077226269334129996696726965271786045835632763352652383188994938992800001410568239398890747177512756936107319476097202832975759982976178327630220110141781558414866317339661486274555989462720891824711374820385974207403299919790933536751503692208212048579702234028978306814066851022242628154788328324517953947381874757653989921406901909694375568551162762994488828814938311614051926525904497136162296537410410709070973582799559252128765226100574447521791058150058483984010881850393787676932638204807749669831777360543313927619187481600497997438138938548936256131581208375357737224972536162639284287737118731848390543926576851421772165852004879537223636075362724660994112135254634115714573161589693074709038327661856194329516338859017491792413638507940916668475323146780078848486609823080334265663263964359581358943616210304507035184780193951976438359224724375756405098708353357072385520406646754849616187257536572054195688730688303642433186304399444048511369288514164830868221155638549550365817800497543955847419387395962822203352631931336797049093603641586228160045828671035011502135571929223445244818376681292406234574018570972459676202643261944556546311162569326319201183537135954425256528295749849043744202567674661548867699089522799524682955463642177343464099546992264368799964362596827444959731143579015786308756920137097060191742113191337666584999859762897033970327855266629341872991014468585003449052061695101438862996562816826686477151465009719724914343591361723207098338167588816773698474026986782546364629916455539554144842535844105961647342704011522156798188889730262553053090173673875296039774612480359516218633463171452026771283605529518469881134086371493264303994081264200102148862654024499465948211206284607046633737190922129829446015549574347783099698560725999775701142325470688287927949464781169873306059541970581089834376307678290673662504802999864097922389687187714214462064666144819244213631457897730759476538293505155473429462904917823576112173696347068272797714978070228243395114194673162790811892081705255764118570371579943896065040395119123209043758099459698598783531929537833716694377602199666627845961882424696907692533469865581492681304519589794084574655705573624446081881740328498863263204062108575594905620572618716909642256795418667427548741465984227235917533202219352052693809664950113537083251605460870977062183576473645900600589705996438795880615694238599244298557998586789758565827442148771561357956213326010374822703293729689840267412972676664779635266911135241039776509626947912916909342148136548505481775250901086933054583357635924321362712436018617432919176945055008051361105609508508999240629910813305737586524024767340663700511411347630787011601890308292246371932379741496297086775883614845935296954328285002423876302763739465899017811490636943629929119974456763246935721776078868090328100153939610829521061778530359031133666478742912952423133311601879049581724434847184883976197346243585560980272667857542063448749348088570376983025621343999760342440105155587193529256870745845341468340281612352196774745022857426006513594207846014434849441367247122517576824410420757546265136346495726922530844438702390662670525515405969151451734846283982478203885403973582078885775559902846298415904929363530468600526526358575930479863057107530290568076958114152899267307693137258804411370346479580627622486913341034484552571006248612821613155319263073527803332365348955144728235446161261737896122917252642982764522670144107037467301315149680830988011767216560325763490554805116604802210166057199296343623392082372629432799078498067927324273459454889852248120688315100776010320579078376837994450575514964717618344309296374957387422109966854523416492182296103485951337607292411502438387563415471520377236134563355291370818654849665363337308238632884529732321486182070581686216672536058798276335445059822238854115541442157120292062114847436408626298792359483091046819856905314710222653988702301450850571930742607605126075065563561176926886625586905532831479296813120378026443928803180864501698253888813468813529601454821012835392880672236708270503568774947603368416217147048037359500611124621850783885693311513959402431834441964903693364925410869326833687583422595437969748714030133200699775882437470976477706519648056364865192890273993410395732133729833584978901029071541489797520122563374941062964372021083046965601937298879748473142085868740398460697662373866830644387755521674228410703055157726537413745217538371172513440880243011388385709274287475644654427665193462551337735389123601409736971719375761998522530462692338580899884813111899224833202750509596257589732093735341679586614538469121544513690033956166003853673363804006244323141772496923718203837134103515839791160004019971420263292620215159639131602971513436459837245036858696500434805032190854195715782583427156832231005071096735206104401822947202921721653210244208385829831376557330453333344470581310850567258712868560353342081928369112883302933028739096524971839933881123357179848701961112833828625779652141111907973227840524074202589183331050756537524972660489916779115776765508489353726582812767307335807158365793293883983066501779937752174172596476653941608638677956174602789698664319171735844265845879548271896518149072822006998953985475221111761395879392864212175816140483467870169707798033869778333664427372296216020158080983866345490323268772531911172996691051775704547176524060497564679650515493891558725455636311699161038965547890447709851671195045186236521633477599604941157092950172909177115040165623503934256746620013659146858283391474207286606914854012620948853698231297709085516459244018332159173764953321927911636766443781443025001734840548916530234649200152905205728748009221284715602520397644341111411882269416007541159220120924293731316691286374669721635577868515205796591683629874588366240643611687335900758245636995915482313293878069704350413506884909452935113538320687161307475286901729642506033134965667295799981712893279816429640579461248825832506745763920637213323733709551692231110039824323187964611396700714157743687656995994412916874345619315872730927781802409295629954170739996586689856625884285699173233234095938753565611828345820152942768624843443281982292662244259848927552844904630756155898117996053554284059899061097092976638390642227228118958935473444432595129237015924870347148624650908993217433275454916933751946972556317482103200488848837692775477957250945268450526187245821512512746202787169052262858715451984271782490155996054334839115648675637251412471354348320850278377568584317889192993841457637929462969446808390037805895409346132783833614745625089461089214680792860989860577101962899414812247166420785730127688909499156951669987678564610022820362929639770170253325086793063055418732117916201560073580516804783135953281620959985541852426135426555132626348660698409215060852291939876141449269638402452766327900704073153615558526765626856597684886123654555407912548383888116198393611765540078066194285821500847778956018891302336579831478157883120830818851117801207765044392648273468236136489195561996291151745239798189121268354308648582212808138471780350376778191855480976786078860414322008243429542249355863082148677446599241731644303731515017370345232011397348735710969389093343162111034132807688593331154189693325851158032564920157834344253750513577708103080156723811298807689613149634286426577077062737069096026675490250439385846695808799123754939446391675862895992234530643002335727442068612986105602950112976285071627047132059062336144656357860398511163116649156172566950669880150751062808908648725905606219309501658606647831119178574976419890790358166992904234139169177809416630453976410408651543024756499312363387140127940197224537570232243520185932521545776956450227690493892768720393415063246520280125178695237243025233469021970401213085731294966819040991989836197380343363655674120646429361850057075988746998991369451328275813431363176902260084319517136886878724906362644988864459418734359914895249941052930315186355104255490947535874867775645979738240448696767433762455180447734244489632827291793047747982337240259049670603016299761576138325219173040405805132308734939154981441718469739424000051342526307847557732017896441220540341803246155647930071499854446343381882902679332759558424453728437589693345414805755186394803604855415770374383059255353103485221859702753614399074372275750169454927202114826000420125140508750646307599902918618995326076231327905527492169950866746455400811681564708119786843038715851617893732746866444373704579743234968297741996665391397770482935305200497832538795572030954732115201006470971651454588284621682878462333096454307588593677556195385232111956166521722807829506736775924526330621091605420807135701867783459499692218505251887918563784005642253201036041052580776431667284434474224129836570715325568485511737726077660189546411225890216886819689244322407422881706602660675536008791510575735356789816813567709396698594510184952245722095395458480517727831355263529206356482446760138045393591782638624735946073258827548101333657910949163338731032525311093091612470910592874062108894819324552214645438838186662373731915900080212101196280329994815133814410460461995102230781559612533208925952939550426788225560172864053958038029012638252141712351393307436464456135125741507595868580409265944295554846044484747037851161551507632803040077324525931171468037201860840975873130231827956485956994126424585701129759993625665124012315145605690446979859691472500535810347764204081001688596465710053583804140197357353870842375967268153246288610582048215863005370363215814318806603771667368667147952167517403226902138455577355611720943506927328569943065964719615753404546895830061855642363472688822571609745224842022832784739802022769792028648036712403343684141943910952918238945062927544957700379921592229654626427308484297314731523024117584035944399792071025794977005189288329287776037536461791956645079789346401752607519821083334317665744948350892868512543031268202286902359503630339082615847030467872381845477131972754380977768763171920516840428480765511351295983121853995364765279209295890942329278083061091078213260924501668204361166054791449998688026122246563741081513338376445242033634821514338113415928329760630235564954901199345429241234301111522989158792273674618486782135530238880608241392542403463641390868737719913181754861897732244169228568227458820579221778167569682626487179491520405941400098027670801367364873539889015539878818170453585976210803274344546482638956677865610820640293416146510522618666539920276222483241667359910239558469046301630346097682910485359271662764820141073662950597203453830507045148521875420303443253813498588132650094028043056417427335512046666765287563248489204914780650095423936401570559623853134508621931531920588250802191954839522936685676270546640464511484187652534879868967958342180329343718918789822821976629356521413320173178448108160099462264184378024257818951654859541902933652720580373112045348434489345897462487352563740672540792013034374977413638337043174024064411678749505794040434300139379961967563984057076698054118604482024805821980167215777059044987336291999081790726719297708656214117948017248829619643207541673889531029705389302514886328105974720397624841562567758708141250722168370728872659194422459111720457534696412849470686901804625679549773569582480557428974740552114734921106866594521454386332977747921349125772605221297502822183693067120772598823498833690917176685311809892678894267797388227150743003581640354487523854676924992968185358004842936631870217780480826569012802369578888066040857115406954801425228695822331043737982567966304348436245310073079097178288678024992101695942854847778345715530021355221006857930020425016997538127999337466768796995808598386636880483805612371241163332262411052707096929625524277617144072199536933445816666468764835631080937538181064025167930903673758449758503598070425809986045687127588188711579439834803130774914209865967879475502012514249872940896510504515560193310420958426976064173865842690594422772515901822800751536584257750332248384188024902686497313254081278571993086788129543795209563504084284743674080267145321344012846121431412027896700564918581774470631149377233995090911347614205108307271162076750245964799182021941370680387144478215275516792109510483530259888985745518001066041541631965534940476675886486748042961739665532790644338552980443185204439691099380874067990512647382607318346892859697202971323436717920552114479650828761601374638254002588675184872834007858393892372519120169881208220207825304590010341736709420245344582301568245085532710359213952430912231275469551225771695369487706201890759066569926663203012626757897805874625572411248598973840606165860243427082969988091597806344149111396495662728700790157287722997972212972901726878206736348640038310002680862811370118221787093468155979451404950788858741127278607672956010120674216758892382979259410304897347043217197771842887649513558497571918392335735679469683825676614821630890683943480173260798634269906229935635548060915054201884109759695818021835154604826608890221115902812143761854722047483313045969449088971976831193563005424250698844953732191230200729374010437789855704676645777908129327792143023014102012412160807480662982830361635452619712062662207603696866134965428273485605115133237559111942573818971418616087387220618816715024887458133239534072619894853982566949729287112588984611971710556793938791548102551495634921111981547094125716235858642134522404815760154694929763281153129361271463382255469405192823369625434950660365438544706275985270515385399594795789832957211684654540730939176536683486948591128973252648036616661595590623228073778101164157015053006660023817345412380915715982203910407093130195671821704327317523789286753973124165705687824939888964926764194633001073588673825431232541967811330054667556582721207257846201138346284984002518756074992041190042048744513597694137707409581712145576923236555385309424730140250408962191803739505447808509740523395211220805218668862787064127621358561164162046311969773967207019738715024613567628532091346962228165999880628574275431196543909397311843097329314709603097554895513370845750253763310958170960535419940756061744972360850524408837081980618978439353183319610583577412658423824399457697192210590532737484791445384897641044528995868931240825544061106163486714749179599613397271429583862051239055057330356618924784941932379541375863963860477841109653397968037027423239109754385439348313313149810090720080790048766145692371676969155766405439351776529807621772362632078757073361252924059336058527427372468703769850650864013700849555315980287461809667371698075131975302759534152025097748374526630045150479732728558787343849820523324865539124749330161294992190313132650540330800688970507770844359365214837304757689471841843655456215807323737855437619480806017222133241445538201088330042240629332137669814305268569570316693314352490087712770121783942206790398646368395266398388664146507654365749888729189367562400211680409434404127449379574965110030025654183151144337974464802142381223709866657645391572608551522569698670399901121230945460111314083040987005618086523336009789837275365066550414011357699557784491852500110844283862427093101931170220715211523802196153354975486844974867470957823578304199174638262897861409546246959209400796000121840148756834505959303880794360415965488006801757388312211368577352161253265032906483732435380345758584104098265605901190615433700657403425784001902363251491541599612297170996371276244674826990523841707991878811158319952146423989393257891578876779555846034040659776457877031478067403749004123675848938798343373449699879864083891219209662860406099824194384436083687916842442445321484555006368923346412572339552429809023893658364737976841760800696891130275305211521189642428138505191435855951466943668640362975058794001484302677933111265897312576149343155132964375036980525721113278241886812061456212314152197095211421817634214485749086639594527374418116760080299134741511376057091869062462191732502332841484894859761767377872905703882785787944182234723663857797373629005692427989839371488687141400912805335110910028069280732203717099283140376820727951039384542854867507960592282433321568576615157058804432043554605370394033029895916737202953175310471103020870220206602826236358944824399324881099508164395023619879605951360549328154262258186153944503847637295486087857313566962231207864915725703494360346929044781443986488445145697159533109688234808584980125762713337132103531945261149433056123437523582038094768053309503520338887250275391809065895634890992562059521115680767054783480457680752190896308630002327090692255679902775090683430393040683567495769055850608210438066744344410805340307275080168328041050096172398060206012585051521151865721881665601689562608939430167732670048451972657579042347543518431024469565898518254254179167950071833011863244131969775665490377615468574105177182610931091481795252491052611721831520239894243141355583177374321821653839056356983407622414837131970021958306616447263043030865034522873918496612654795384227596721802056767254101298752895344493407228871153070675228436888601015847547110681482442328854459446775822100711850270336088392548746983015383017792672407234874763581825926736633281429253495464582829413501844803337859220798872465737753818504195101857933448144731167882421674040833380860414696270304651628737392083564588049639927487268226566334695991339452753213366703146087918035288298610793540577738596851499336104359283002707635057299212925984964150226287369146578170099197538830349797016708007647746267143892588612802144908634466309378872381303483027294171956344488088968909196150554668093956219909097463173539708418323734377819046307178903484100504079724618202950624243119856686988204007221348191433865905551831451681217681058520298362386765704873093123192491947335807005748322088715514003225333601749211193532884428249824348081770812294618375460527786436309960257401187972141241659149646233290070966428787771182739110943022024317027701753856565158245005789937787256265146847186971636750777082052711878426265607217939465482592085560381500948458439445327259671000712565943132596379288045466116052198093220432552659449170230319259607575804595134729900095599683944901230813783901292020234485353864559200181776622293652589158450307031497883516082592800045744048330744578634587105295988083717417185128788969484556867694252419432617134637837682991026549686996093079758818122220335217575073681365420951585784339136885874386858639475857691106888825633395522313964047919022514460150554666427157808553573720881972938054927900608782194860588475144207247438663434707097644458204345328013995746799085710729700568753759315850810070128587176999829396611845372934185414938650204151649540478473269140050342141434065125604052363859206071357200578717804948614968126169091475497774425346273619643985574187770102335647573932568247080664262079775964119455015155810705438770849075192021687460321139007002790331294385442307508161473537694167036903416711582316351089357624476572119304793854411663741108641930096749310096538016256920480557646393553991624483851418640455143011676841569121839626900451506690425199445306091735917294537431903288907853300298034853198619593478488891520455379237930872546629992876278976496342370381274779782396200067228818009398662078855346772433861599028733196620182199410151590697048898265772894300963695570354104501970703739884574253229012509782016386534311277853808676123490744157796960096441136912979298341965851852557351349398288693993362677312216871857867104956483302355540254978727485462511668652839852666877880866657716498334208503251953162816274883042150444947090836224899509666751049454612081400540947172355967722599547730604941136641515955944599710803488793725464863378723365505481476898596495199422904465553267313197949119711259808776360262770220048469801408789054109299019055695752746064377971607410915178492814124694852601899399141216918460763962607842750975779139009550397862676596182155881604529861906174522251994420384489628584237178038624388800938090502394987857680888585479739764380015062333476920615848513999205693830079180781343007765081944644449949211929832827116469694132014883519317260443762896621273663482519607243583638020941953053375030933085346266470140604920400783661820408283795484395633689577412436930764032024283794415935327326603325943653704075959424077183064992567548424892345150305843620278052545108213928733201876471660117880570373910566102600336982874193139707299826361836140564517727728717331970802299186135197218018099956962626712744774825279678297658398126604834258292489781491361597573005521164102906819850453420538647973839828781444428031417839182299020555804159230417426876190079784096505865732153112994959551336285542129681241819438564146877917009822354443528877180943570354960293883851971943878285086380763547102574486577931101716676058955910342932584562205977425497536035827025059868325477276174721132776071191439533310847525275918129620650834443163991191633385498690345363811542222806408939619930667013071684018630153110467112909572234607802835769212513190468170658357607160373345440095579736612213434802414745338694809963962424458528149648542241865548063203038803130744935331507346639243770382792021087189974780021221178450985633921059541757182971779196284428626202226284172623411766309789916238505199825010164710235618350014338582346126601693099671840756129130368632085355625016264039914352390311022603550869601314016478063919294748229781489383743379232461109394547590354579733150220999979608348866150701955223939597894043198481093566249299251143937700213957533266264634155449405493594726486288880685282746534871917121685354637495712230496413520526221679852157356588779779720527824540678788195126765900685616465527949491499012220056817394826944141617836479882877750891246803396836636091961252600187124305971705885426778712876913125477022274088963253751027278496712741184285486605200563739723416371948629270166734480959938146361677739377750780663117066439648657958739732345411283778742703781266381223332472121897477499730986482049191712080874946620808201314194862431605313317149788570328489228428923521937329978009055247727709903752998462233205010289579721749128683266763566468012754159880526583084156254812748095298278237361530378570778121417697248711550019568190925833123163174673271844251275633774139301013000551268972081696790194993744792750944998438024935214155383305474667504016321104437630674655317724996817154174193812943236105379455070586619094898715801584784590863168860904739683763712166247542819303481320813144617497091551994946916236285936029831144154742190544754767281691839187495201600264773068573666207110539951888223565075201904098248550676344807537697386076092863321731969372047641043194928235533334844816150219150613350069016159267298848179222647913517057769725553713730773420381764528489038385928915139839085919573017537746784058081068565620221911832885927632108746674898862598328160848885341050860172211511285862175686362778195297221986539454820769327311261921615438936806903538099866280694908025361635054303878937626018282968346090916531432604393088822963037582006408516696577156618970675061705689375032501163390959004245113494582442766021409592021322008396279935923527836965852927568121791511680026439004450819398886237692304872210924995555236655191858768704277302551279634214223799361742270263626321073899679008685913456991984321999742347993128996623646430854916680896889330372121473682860643858859790795138453618816824106748581362618796724654321232675393624859058446063656794738394551536773363436739606981677683090481385546358039732592797333624767925900454765514000734538382362747404698472786031468200878943667982356857371647844161235666476048861339106173973555756283339094466734359935207728558829203975288136038996728411166984921457041093099108547615411419800349482133027369805486690643976217258114702663272847947074971547895804121930768956532819992668405010286894553818583387542974118760971490045769237540235339127631701031478399824930334501577210890377330712826651730351318803208426801000579382957790319671500951950265805869755046769902395044239300215794422698324368492855995795013014083933106442806803879378005468245526056450712168225048224300110783884966368043419791015716267029418400900274834333866054178269483883754242298350479887221148025129090019619456851638257804128413421326229093931167749341506146726458185132776723001886795561222387860633799724216839501470293205971828962694734692502560495333355885403866177422061074968547801866935527067303616363331264850182696305258802872753781283201477406906969594152757351856061931518453035853370872346361417989783030272324915986404989074746763418919562398456419387381646140892683999588896819413300612316684270585785509366099026048684664738918266064582313911111286672019618363017155111002743314199485982001973135884059863661081892035707156293412928228706356081082160520515980526147947553402785808185130586980707753806869215056795407591357160192631240202711823527193798027794822302833008892900463016868879597423262586562801293467274143601529348338572286936486437195672254940457206325457899039896710968396040315889453676248929474339840954329525437975121887268685893709882612577895142065799320173975954339903232297869475770168594701436977478295721973299830832754441306633855203661329006073770540627006298835005218891839956832703897611878162084158312025308169955306011626616872087537450420315811885082798329841182776287664788561080510668831231945205969321558142228394470301114104511928754497948348667763510459752751960490873123852917127951392179765424157585497654467205070182382920503305415027342883227211130253349649500814270390972057620993680556297500696292858737231681891889834340105624015616724654742565970965357035362254690632936623071416377982961976607287513384241098315472024962068965490374328956341877892941946496635494929860484504896573442515009664517542667676682175932585588846189481998028096056729627020796013605753838870549120884303471200144200508578506534562613522521320856956477834379019710181222016572395904527962628233287445388503962574519366457572983943259366218548427622510977860244827993761654446200004071168669913538631006890283075494376103632037348399368190076209948551238773608936527175520496870881699149590601919846880226313494090500673256356203591479285005091453969174901506730321038901012915827316476211695014895796386711806839943282448766280431407459596613695364922548455057609997167094682912454224330489309629062614002614198626653039252685232540466474615465974644187999553889812157356612238088216565385927003319801453572809278924305102002849268201891295748950631915027550832265453647862371160468657292794387485513559993921897136126569374356198826755373908797338074189960963145755767402849090414940296060944326133260589376242289242085429464687393115511685650839866301879947238887611082562121668199028829129399100739196811100574424729235227451892441428914414439966339955406107666835434459019073181889423247722412763214439233925172148222566136027608211230786458117247054144081446041631867666378929843449087043259746569394933096788873400633060592152460131318622427276347332344981972503614845970568127439985589972057966631641417683181416230391214231423814429285983707172134886444347103838383550889111988633236708627207962707107346916004629967169467135864223042854067891263230507664066303198129328907857496844254055200086864062080558168852718998236044004178542153816444982920964173461655519960403459199732371974402494560886928584321371663375988027975879007428835046810736078052394970941164283361264437533906309690980669423854898870309375297137709047188464108214338176060174701577791174198231639211010582773399930557934747207069063298990712453811527137665130459551349425745231699024087182438508966540010849376023693914039929081054216069426672409455535133522904076180481983071512054742766963174725347729056391611316956105186115798612501611206962809554573981340452252216798736246360000484859969980475743344577578885885478035417657049871584984053047166046104350438857527693692600860860825254100820938508049349967834760556851643945851452378472410536982919151401090697220175278023239409728483804326935849230060243623838021544397214425463699119020937809373651906901619505908485903433909074060467737737523980544086794683481386845631051685311429650099991736016232469783452870026298415065988343359827280172790759829773364334302113407994064662074641820415073656114469840522924593417289390701562414432255760642332368802071037504829695174880791030538887457084976575961634044345445897108890163785896988597333014816959474978460061456614580008257198106400237605780528856906387504216499268882558070162641606015378499315307488019014443777221679475086139214897091421996014585756124910755930034144298643368474419108504792803992281698046048661725291594974413934328747762203748285439437294788339470188884717697098219726582682415260272171268028795322682690127599424347391340672566748019082155415506572639896164617035480330604649925701095655827719053919482543957909166889529946233454957154252175988539524369006741190429724030872967708548165874991008394861072160992400394718825343844432898436456877574129942902836963150535635118415729000661596572961832953462893484478035591219286226382665964303010633142643810568421151651438707145638196764605073954981832912695882711612534293065999469748087618677085814982880804154181453738717669683917330154263919508274510644304322962734793499319371905673719921250431516746555041173170851314789867275947672934757581138127772999848692025868756194018264969548864045523885372699407033395174220804479024875033363070033921402314593822142801640206390382744596586450647402510120164867699320555470686569030224833957443902620742580666107684771148114083127459849246747919459685513672587543218635053239739643305921469050211100167970756974785567228448873562489569999454025532653493048644226759734259446330240655480639262613567133565431910797786214802777576235411972672662946279808474596161680274640544240545620608474905003892806469813164322687682546244805347288341432045360725559525770720386288797605489244271023223574952624759525535296508842914595347685299520834552546456860897237749944712020454874487208841657214627946717742282607694757177259953022418702326825804753910312197856461236575690596697912811350818021387497704780142185080772093642283511512720335697665115562106974669259302008579844668836511013442773244469067144756393388600052980521672852763829768315548845874955471801007396260525549375509552514853295190188843138532285279755596949986332693552354204827166186609237402194061634219053832952037680689466485379602266284814445437572786054603166210574131648265811731576516830650392812656613019035141407219914201816973489510911752588452599281340903086781993859819985939175298047108245285134233201446822993479917096480064589257205823581393938490940523675204033413293357420593878803543157238414172972635240956925164985014845152651769289418920156384504295988332163972831092062969187876588281811286683534445431258473123567630941168190362701400767105192377725743086203279199027017175166076902023372738093071820272730935691827802869843573220411787226402498809817546834840486265435631732653246387973461714010234201497406533834166158731722317044814521472578729280165218737593245511610956677155682515208735424113741911548443493843643262143387969151589218141874846922475325213882986255696892779991362732242504648870315753167087184629473383974177320957956479926901050885271733953687002547206877502029813567031141305241716263307670327067914445304415661934444472472913903570184699752710700189328147952300301120570911342361915866238231678881914925590758855244489691790121301557646455194463925518076012671602892363753217724822414103965012617745807895815869596764562453244340049483597297907932294162448277420379660601991987399220835568064001694880484686631223898248359489873038824081972053061339334735993727098897304829884093899210267426823133592521516677697624438316933048908612194859467169178732597994395651082760321168050033896878472152061969754715195769240202025858120392039023593361469140746998523726067861705726648076002677680814761692488719921095276331838022132312305245969672427291694898447403913888584628766745700163159611529228530619900969902812880493180692685864277203961098941524911204287220665421647285442400584171969771622006729586019648103741719697859662638825293310802892312454083388333036348987199010361980909685715735057209950268504926245527697164369815036597321492065979648478645069797627452058000228935821328408793199063171888521498041598875942167626524807727193872235552330834333925811375850642352950260220165807384604244521384387093715883322823227870779035458658991344813618985957015251932629993519630616656942497959007418523465435637357827519306566004817242344144145739960384140614825881155835422760758575744193199984252544034985719003164036072648535644184933386722497618856214310008773636239928870994577031165692381789359166532115920614954200525363096967012240959132006057395088234443564302572869342910982114729514115291996069387840923927939713478102508898147596237483960418137330182495670620259238052448700691877757835789220369636537353020656307563736569483421094752766658887333018549718334320039212296715962943097007326219592067405182067856872605908335467091195366712306952463108402384279228193249280095123940484192094396799123308022797637483583704705192420810311293664257110889200837870979390857477579205330128223189221842294063267537180602708180671140713442920193316824648930055962814490479927359940187271505457278301838566852489773605893233459085060782311057540755770943456715304901590180296880290399081860440952723383467333798608822850228415653034468890748180391065068053586134063563955277222256004043206782185662088829430384971391041819402114092514083656605462041083863490353839654510840467434780691332695208204280648561990656484430761652067632102582845405980678250399118247173477361699919640264725169193659376233528397736005460472949935894857769765021999805162021048819724565453573150645062512188266251841643667294552562528969438233580242283350794014373921149769553624720623817897371257258651454387401181222444556893202565212363849682593023425587699973119114853940071350020868598804287541998328986444997166016497868740607171815015162505433406458163093621260607258524242553895379928209628356176165575003118325967007080607969828688718317387837721571539330273813466621475838409104330431294895216925286766071215202736402032760677990373197828731011016580591703000210115966297764960170842435868987274900056228847246415719784642860582801024531203436530855417067413539981503604079806274941132057155893491467955788986006603408825642063034183794493709339365409461909367956775312394972722158151144450018543173809401904201722930272882302516837297425813763748500579687449518053074601485305112562080545138857193292502342130340371195037004033952308293641751460789467887853306781758975479421018193227801366808111798999854161611893276469914916853949548804764467313521321104281904541643454260481132575413346799979001098756670580638058539414876269092128860142496018945146727712785036817945257316617354574825207596042377578045091510424641707854129835269369792097126692872947164178141682085442043370167313478176809538300116309244531433305764455644609734733789429288250787458662027812736856402574801784190720119498112280316588901791448621249975536481116333224682544474888789895465590063340769931556894165437725249493564455857454761803480118355191716190794737815217539554919853980081411409222272923818577103823321609568634829575127537812274297923263838746791175817104185618837341126227830474166758450418139284903092621770880949228630905348547634144929491368730588641451130843683715377847022307008157384418149459185710638464972176257865584557420619282754558694274620670672113102530147545128815483379538333258553469689836032963873359020089232657330094548347032802807892351102114155494019889054268332630879754060028722030071630619771144316793645691945126567181798365907899173569807052799892209003598558111408307940687622654116625120082480373855650985093583954463010410038907654234432620733159563467924936855240772553038828444873371165365298207554741885731218743298349391727472141162649713269608000837290870782190608312286178043658405906358682318492545468522777225374927865868387727724790566673395825218973814744105226186045544310759429680368047204811241332301909756524934380629322354678422495560950150206458670853418664604473797780215892599501487563155056655754049790158549802530421324378823325943504369174688382466861665593442024887231177917813765214134980714459295379828278598543332525844746502480793234458830120880859854775381107135198813548568847134729162612854616549061990867405512635869569646300914678721632196783536294820488293154250345651771370324514727426498863710915487602075783750513627579952129823757817312117369723539328520537281774207893730250440819830095011795254675630439744696602489525574504196722970249051048822845591119544909624324910953162447328020931093896605771153340720307541470711110474378019217948999438144095781458533242573358025796219159142961558292040495782496202810523398465411168206082469696143576283956083662741995069104293566935129519896952529772233326685367065669600416603258738593720472999664743794528946126364661696698845659546123128561960719233270421557669112006577104363590041916702997634052814806238534862959409188206942657619649577400398249177308245474972051864792919895617097219141730088040151312379507865978407276809052989445313861413477762367713398341481582869649939868897473301258800799550826540796908666235171835810517677937326334697767579338475522931493152700723896389254133705434119150329512429828270305453844524828750367579329460180325960613792459028220659172386440968582108975837266817851117352659070728139642204948406693995899857488320143940611527126694028982829008009631461015750687837308478370129597039940592757339675005817573409386934871731472410333920143986662362307275446653978559731430907718543514793706583055084836186000220474334949138236784463563035950290077966225988012654078015686567923307502447751412166562496275218542247250255555265197686411220061033408351079879883030028123591347186766551575176415914438382955944392322807216384951843642712228175696418437974990513995661216081931094758601969768466552290401713153539564639079140556523483700327993545275573490597813816706638399349065696780264606987696491028056754305471031384555560569675499532799483834579345949026777340090257935165411685174316665681864706427073195021530201242371994972567561596565968885207888690678135286028927796013003182029657536163903103612000498995798183341737818844566543260720840737529299340749841354196068448841591068293556686915063619741191527410839603771962279309445926555926324730070032284093856676859757810471525584836678089312445346433381275743287889478460724793973121336999075446323487393457624409616449841185562148787989391895421584209249555740607470129892044297109923730868304188265232189219554365602688045994032584774035424226671506183161598478054496188507327491980710827303716762365814986668350313624049889459872955765520673998479482649151937101967391665944079654246760153447932748268294015013607748692067425303613140247952877944220966440437182635754480337635134630502337609336733774027340290677075258882662320269623337231697350859697995097396576359840720876382453779471042128535866765254339354011624342925322697921750612771360309233001621449723279033486754705733059120973375276442698853774926355282291880932644485349059911116893465951961199566909397075677105584396876283823028310619740015021111468564619487158140067090343148261045661655982515613799803351923478453633291833971273043251170615365358360166955294966561074487673378040016898329176393253961248193183582010178037743391019074542974166671641279643694898932903417681021985569325653887638758865486837001312856312082868120266979617915402778257742893687037095008635924082234929212053908010628646940430388445835982172988788535558386907351515203615881743845340433425318759380771819544766935139113960038411711852604414297939348895520340183438385961159991203288090198893684466354300779021165042048936991703390844939742813971353263083066683195345500490012102214048483516416101430691413055584979658648884882380306895114309281963019979053253847914692733225020795055015232853653812781340235640260130512693817708525784420524888910842334478613733336153108220858759518489532121062982737281396687476214330677326515309160767391045979472012168882669490342451334323947699685500504212464894361356527295955214491490379083642000827893650521361542834851513358671963830650399364763124288953091776310487483967756781861915771921276926891294752854940698306961244069192308132513712626504352034859898708670122570292456789316534437991935296455554999810274328951550120647897925660654925265076874049861418021311083395024092245775119887577624418024614334024061214230589377203487374521310362509987859437369741883098209550597396135745235330175980246667953632511087648627948986971868515513897286039690093440399260706738176036761337785875581005314116587835258873333860919882009015876154914099539326479187486729019178456272040580977081787534929950281033557504376572107713747450790138908294397811582655152749320945913200031151592744248419455539743926007845283183601387729448292666684949602069491151179796226868409630646279020564435814663517177334121647720506419904989750212246141171003509755454360409391165067768585570594716338679802946496370917519858717686313721585812447623271690367167087762716868555289895679767764064112231411952442459859734011732077914621957222072094678508409034325414391401001933550084148749786302922972998289646532644752683149418876568169637273544938626852274371966867370187647451696408851047067390838013950221623456113925100335157549111779201286378820508580150149264658771578112043968538225158059542728070050518350167054732265734736565658863295849297601389953550083817716665073013473237862285456653309425898992535797370191859983192570640598403759834933195991011919340243645048682563275062426777059188117928738422108624917000540378856655880839331895466657515896449580089447283029575230343493186931868185524731651240099837752890038232269865981498454584316942305700260635862761114517494748019906904928641269089303905044378751243287200116317934153963007259265922932295080975158304345962796438404235668890303350571442716524762303529428643169229496075346567800687625887857560191710470749293516183639113234714247444248870589083358252043150070846926228554895560120460815003903949026145592038982993788247500403064682705741039545914181135706366416078375080613106545262946664662812482406749827552625572582524137438401976666780546511521916676917732201207321735885378425720485365676442805797932024578745476178686409783254244477235140184588606798727955725452301196720287632476634816836391213981603629753230826039587296315940867688913337313163673348131527223422196366000711412647362680978481545509220949164960366911169872597219260545927005142611402622903854779634905837465817936925284300312991839499446464285207709282619728421040770207961754392652743779340230703841389880285376759588010315081431244954459082765876757272609168272654691579065034173366262083952367938029483423894998834558571675361775373122220584677204176305286349822011474907815349656241535080473235007048673854438207698240421493058035416811501673739995661498466503643565897947234596907693495554129795222664605273463976953179490705744740182805279444004921448219608678915996891011376445362281485665576281487583493363851586715815617117358575496745948881568971026123990546117705586386012564681442462870806252381052616570723924564718117028244624287500483682277898334217053711605048267074335724969220978053153434816705695961240444467874956247847920831673479179148908672318880333977743954648388590114963463601674422348339474671769412677116261647812571373045222554134980346387032587565511310065917888492463085716856734000686027209957201526981244582116159913089256261732954390118538346917203284669980158108829510555049882592469086538981005020957989212769050141948046448868048511268372766233604989782558971972302518022336500513924074976462778631932864629625463145436694846837621057326765469127180378910321876190829585594189400448634114785870757040046261897186628461343136804611952201587335215086454944884244299434783695479892810481414909206543543089533939376435638914651851240721423039995954899960997231511441341443967784290538490954416872628567265723867609286938782237730496574696014647336377134414234605282803672705917356487877197401869116095034272504299125048321142835853841818727426070790573766886679877053913455605675542006318672196146665596431788308779302652905568699115969066902678373029260019245609385412758910317478409220498934155746293013612349548108934100180216110428083043950556775668658901000899513131196199213492881841535127067043438081447541152893485776612955958518099134212398086475688691452379372267845223858877215496288063962308669746259849328139834257719324114830455578997014395215898036469493097327424236286372884069819561240637813748458327772335810417651790190019866295242786093373626641256766168789140917543932564193650805579507276172285018772078103135529535312557691699454458402663315310608345196618559717638402260286980237182190278911831614302260022777149442958593079405048243513577971955635742252540320395545342835952337271924789535160936534193416771727898773973753389528867872997085449006200032264709743094997314837797659394045934402466588438858772156596555780649143938660151728428776647553736131388563918177875446238065378363543708716714126173968754944676034949647507502909756040960138870332774107369139950173472543115147013895853695392948535902618668982553658337651919192594731089962513204647018710741671981058986225170902023469326568814157103213759506778993371620875862158246175052774998691508149173163526809359902711356402118612412528538074972238932725159038544862855005611205855115329375606570473726192459085645642843050003512875347580890879246491374657343367260845972898488499482519209989157125084848494419406826459392639216065671501357598967974011900137780071581935122172215590344164722398925761698952155914870534746251177454741241218334847236344860839656115919266897439421944419474623917244955068702606368934625843675325344524813853055193522813175264564467274816925547718764370906385140655794874481665076620945631493791797941138602132273020877313570982226539724502337277490461331726699315721880365097023963802983415607251135962320527523100340403607608978846522449187203317653450965496859007345234588011923351297561424201663256276344398311173690958871208499737889328320557280608628548045320015707921417178278232092075425432987321318491763440544874534358360545245175987668888510843202686213871710244909165413436931178820362486191586887234957963786169139223292911954202360516519981051110520238624651559610726622961880471069023651972781310182947831488696239386073836828072497206050966296704644689505146005780841693622097820451687175652188750882135445483752041401635012195702241433498513046378906323457684379049324376041437633377260354818819534407178252382222539293801885938267474817393483276650231730067847562871595047875882747601346442747223599015815853342149596745242383875563171383530903815072030803732641836929329228064506311830119124744512875841485639797464290408669227008091141424071525458722701402561681174199679187078985765754531524828866333402163850418481714430308989269032509847146148208447060444008377503833371114179281632336283106299318176238612909857487672310645729816360266374500866969169389709169895223477254935522005913480415020875576900084256624305840461771770187899228101662984397875881955731504551562316425296027584023914215538250504938633608331679199562317748187133485406847993634705709521009644288843357787147502714221469905761569569693975371018512228538648323563506683688335737276161297961316664465785474924599587666362357134405848850899096558040724445348172013954739184459706523183737513848916296938612998106785177806436948344882313050500763690533529635954618743426987140928758765354804123969444144921835912520259526705404449404636102543033892745118189585606987238084132097254459207580052463191164194087703881661484209610209797892630116078546888703743797993605102341480107504367741571476379541608924130936893129937828440530039536672565692074693488165633228536822160195926973713913123897825955494338585655782170138249228780791096638992713397987689206644381767161075163594289532710624907867542669170083164877424598908378271989807958165208643729818984676166210431737674741296476741145370862203366359913428727333462753406097075675750925948045717715549795466922401557265829817240742601610853034978319228556160056164593179386245825135600697224661953555657902103095255512062412153684835268967459944999568977351505878842130580585693139528705047074551175093950423237301577642654776501033856943986518016330931141309732097886116870533162969157612335086286398376690852107218132737484033157150563607246270650645995761817629661616982709095932921180901552939931914092631321554518444986731304553688509235609387456394380005347882989118452843188558539020189727236172069802177152414119059281999910178144262486723704234302703458992919830106171272603850139681509413018642933457043629661159122412414184804571024057897063824455884953157017301258422990149648387790682776367624828746689589460069888620058177271641777781230531515568169682816931323924548878181549369386648396408097856930167798175916768457623125218503136381582542541641309327405872052553639067068646234766532264648472218385319999357069192005109445308892943147038264476034972259832290989591924423799218787107346068532070041090987294206844647093139910096393284957758489757361190226284993822362354026054558132373646434955211411468044000414649800416017772206935731747025244869736051138057453299387495212900181405280538003163346757105772318658648713191687094108654452228244901526300180344965816498056109319363472408661169440293621281777361406800389709084770382219138281999245328476686836322860397435635159849299623824666485999335008519739775078167290418658013176074402702913328751045328950454581551410332362867908977545327262193520677422730700357460612800693335699746685667364954699226055651671681651709593926043378493145021381519911805470017936205698889614675943121032912599145783184381638862857404947198114587819054078090422387795316764409831777342982877520263595300805702430678372791255031619533451643161641104663401336327754002186436917020959465694888398166318719664848111206218471498151601521382232911122316796593481582969824963295284937840446620961011119241861627281242970369767330804518066345271517860597979764727184940094230286462100614260448670523556433903142982660378068972555325530161618489497074061260690366572581650789098289303068510791500468816456784882635790813503956140325321137547864799770103683097863291738722516282757238235721523568752902210245334021202221706798239303216735440082563849708327967879364148065936277103253714869410846317381743776890690057817225340224837697604798940987869094131835377239571321243464076303162386434154374483887664534733130374562066024431836137458124311042872508156396321028277087831074425557683749332615009548821137945793391216804943799153885217428602092248853895854561170502454251973883714488055639883634634447998591981500461645703535197034759455215584768869142001715738740946908268600517509191575906380138816582915513752354188096584380570594051597449211713495064631201922005119456284027833226412734631983977557009616691515067117600690981715343486609276115190902368042682631887452153997014010640404441317262234970639198087878223710509085188602941432834956316411277384960322528642336202832513718627000661000046754736593904936144885355555229192806180284245539706140270874493015280670291461542591840167694736585840885395191341995905190840559453663887394625793488177207156719947319916111405974157025333974028622421134865422571492002264270050056747335822120852641613824614240414853331384515499679438682665531201383952700762925135295640953731906202679673453119951760109837849313254402055665730930668351500488965923258353068472060849583660235411237936759448040741434516195463279920739290363193932717869514953275588077368054548558082182496878757978543631391322718175326372919374197713747656862125868954973099099734587566091781478191089645051367027305049445922219520755674062956796259548766141543354144936247709000917032270352759493641501828459901801427010316594510523448742865464353228158900945450070238398851996092971183177960495916117048935172026398874651577719120720476153303989651078374025032448616020680523382130610378345821288126017037056810407285742897318233072910615700458618551509933222061211354469680331049007143415496279782619986609962283992054351951150169096747971250342623511185933088776844675160376738002962152229418686870772281163880863816064222359464638232693562096259252081599633788740125542651984989224732344046209473496575853090156850927989067437090014760029279957417683717737348387506734167350428952272264368340329150587464254644702394951233870905126453369850703357230331074567906692826474483659155662365349290480788017344679768993267002239478333929856741321701514220813279506757717647768139644653176313144281592455013734440054980058812325699177113478036769584580373564418537258898145911532148325269777401381665841743382536519295734284127008427279968493897017890355157037357898862487691173193968306062127975161686373905503661631527257601695712542478113033434455193934757455079878476680649400431024523045574368703349615889860911234662022750724084203966700463899017141262548128154688238997151841779895881850290303373120039099877020631934972300220440358279244401225269554098121355918585662974065744385462631239825917549475158936562170719830994206650932807906022063888831589614823544902235762873558848001313985367813166341815429253606516537454649270334278119545397278053104598140818493025845676398168712069304667424071326124000752681845418713737571957735113350547215818023247801241143705816546385897667385467148099003931470450981191455722635786466573603156774905981780564232023299188173604871170884350009455268305975214053696994162966562255243330092954818136471590087571143424743118291181996878457155138644613110972729323880126149756779970540782687331962236472612008634745597986644923949548421350120192575197868370835472162540850442684390915976672321245213706029816588861948532752001260122145999907858250483850338418469839195683299103673227158170792828607292435857650730208793628652683937073235451364677273310982682199851100284644113218957140816846983245088498540196115767108089893423966303925729895942371088106385874917489651874993513158109463807004715257247111189297225748852853198478792871436513497803947352411415290735253327350016972311424741787519875354942627907186632422079785981299774555806922657764400388907478164961896740878098350073374011980906803610283381194586170962145257362529136276231862540885724911063737006249134238754673375783951158607567091650550947302770354022370069192770607934183157065248655265325549391160159292795761931437135208688442802800203770428270121444427849135172832983248029181533393095474880963662778651955282302941703770916617781812014178933061809851305151161417959454189470566813087330947629757919729250056715892976522299365161206496249308780206017814507178343339999298903897923092550951685239587777309931831881763601576595536182391824387197989312421433741994767636025833688679082195162307176548284441778051810882296754935285417633863960254724568593645964563303678638601981176511020013828854442020134908785943132668277454818543995927047174025166655046339624378124701739318931740292035737770535862345241058913798132370994278356397581988914392183983489704140549951986506372878824961180913767071847859249303618077278559249160920956002756321389878900308596148932222516690883046752411551287384255714049303130270596438753868448224644183359279202437222139311602678246728424323761775878768484716202975636557028178037300399568944097949402185496852999121527205103523621383671625271666515224157136349038039027772054260237350631874160140101522965239444898317340371187113559008039777373435469042179693014165912236065378102370446142417514237490357020153524471190726820959951785429810247926877156180548150108044750189789005907333044274121801590325625182361693458332402523147461428600226456268282840360669582233342847904266702127146145214677220635236596742177251102997542308206630242524478406845026084508439589238517615091912484584937528320336008104970485689243956539458938329853509012988155369227314021879799307080702886925665060883524501975108495340375417340968618733235250988508483525940425613710351162012162439609472745346406529089445813775787543263912604575216825988642761235826756341830767099558886488214929744189892588499258728872423378465326969013560776216304570804376143993242942638683943683671839529304339205964096611771670528671693571835854444658048172447940154643436242359453457470244056721607547158668973132924434578001172913857452313645220640778676742141342437960209344963731706592668604380606504662955858470860031201628711450645611064665380030681679057194561398442157484937340209983533444380782319110000256479150813295061801419864062680641478364966247005809019728544107291856512159572498898020865535155723815082229175436955176818987858176430378522444850321181443698287869401906498708996695561112207300721776134337518112095246310723412975868538208293268541276925341551228330237854094929426327292829237179851113525578943138606775991963818973193557314878368026703740826325065536739149673572568757908010323317466002826149447970890743934834114114883443869179641549442279996537271622384776315915635716190359666323694298210592220785000468100378631290510823569681271401683275429141459612092129931094844528304661181349156749249760362817281973978867083030730166158134669293870959846326574235541378043492842504482292828870955395382918973574296126462290229340874579421899003689352420680837032107030688060956634622598242680970835746444555413075530810646551615732378983362451635473970787362397373653781953137369642065525120310961140050418967087674219200178237393427433648693717228253714027635372512823697315918210584564046690622708999616058664997356134204242020369162617885107033515219094215867418890308079152575929430542924369771640420642855391722907540140540383351298670347281432422924483821104348044091855745251822005741254202418650285110973424414054093593518869640270180078875659752555930644147568969158599314424972480000331222591204918665683388819081737263686285707224745510967632929493032488568968481584811641787342152293970334530894619916941059656850016912647594677632106386568930827619432378579019696533915221985979698955562083031928404156520706445678217038894481430203637627511058835259380876579411018897453995008091761113349280040195353804573543848221051855798325114737303019623264116156494620136891946376091113352341303297825274829744968750699121608923465912226647276469463383938056995749625724164945709950431429859844794432524870971202969505040460585073191274977891757284910079488126425927185720635066065070723064298499190824015717992399332622731018832907046798273107862851660938421713168681723612320452198729895963393427774309416166925013217044256481648972995666025678992708229873511704474060708705395280035474100699385441878056418910009285915276912613878485228056756523824818277670748394582275880256320265096740896336988857834600557796541666542156184663422543415430016780980320439394455774225359201497702261478218423040390117565488195745918833905229501305939281313846911918622635378886504767614281838102830774287686786957498671840063790301430268308916177500940517438052144305821134439041271863633030338187710036835637754028336406120685637251127401401246788617993355480701227726352193946556300570680250878768734762190257233693800984275644733667282736052035097429955160467103065469153595581759907775168140877662802333319022548602398453308496796075582643108124500316154667288556553991426903735724109086450484269287348129894549511627841083283537176130808191521138237681091942143839250427518756644567802203076889282592538948111922360787738915794599223472084550307308971700950970781807735065013392914789041531212439710734296525718494529272502511772236638323420840129562590096773622488103238665617722322731212477377956227761431524686164238253692271274294022621155242036738758315543952452105141609084218988606445300909885651409398595682858039199362974659410673390889055189415834165210028765704652209123645740978496649623393555771759293170496972194903379635490225452335375583596015843767449627988071171530162074225020956940650023208659256402139613725437226072942896594292343287918253374344969290173937357511969235905827895849333477012676635517286057360798894883485334131605506477036136739306788085002827719565320774838437687474483737081948718664435407502720887060653563207048292967736186208662332558581370841510504197026173501286478882539626439025257759282114730768889313402092538019967428128744462460134090432574923758314420671764050596803731104836993372833094725519199096589784928974365002539641237537737188548812776250320792690544475218025611527139089942269668826863775801942701854775088019355536009486069117688987161014623384356165756355286997940704706245397504746624557231307484130132874447898010545089577283774204764669309383409457811090978561079480639997132333481159028478913918799694040572238388437560359056193028927754898787688897133156029899034389270791849645960765420943614529692402792867511154941938873613513183797680632789359594419742667957218101571879076790395635048911203440153514362627288436477368120235803620544025536984864156456927158291354151519895935382369472828993578206164937009533890105022435398163373737672587719700591868296228773680196521466764547913460559376965816685313454363837916610271817033824546179188712770815605509266796552610356995397285233234898109523163485007575497886050810016699153777299064082347823482292696189172308188702051243979793499251876986697357302675393289873369383060159492311390797558384873691392265192427530840506292491274902690114398528455515308993832617299272657636680646240870834455933805361349561988004449850389586900047714389600969628695855281591954893880571391045951161054975355205114170702352410957477915702204209588228755938366883433757739969034158060336306494856640692209971302187719300999918250252443975866324516062123019207682340509507810626828487421174759277581045288269803591823249151836829862115717599456224693144556035020023999866510833142555045998321202838137176200113658373543980586160517167712169452353131623273492161965801087929790691432088087740300590240976565421648214270212835412883608832078263255685824422602153512494120053064047907512033328229002588822895282151834264198284596174247933710930555395502871953321511402949186703391634326633060579000008737382453265095329417829663915779938888964286397997783181833970207338968182647558857720102517184677017134106977495170190032979373897424073489719112774213997829055912902857017902329694508730362282140327635085656068139330544386012167507576402405820143464405738453169834922756481140972721597130188586090273901950965130270402080355761036591742305204046206867548715526184915395134557929853544848741753062731847477757107697915803056221431197254594317152474424920266819419472798089532395745366971646723158275511277416193731462980669883033467536340687665514483750776052462237084035760449984040148706734295485621900066005063071818811671977861615623954446598916771632134964315276278140772496443793741637998765964592215294531374372609701459979489124385784004460196246655632563905489127359474888121121593259703458928996465842864847344589222226362191827872208942075269537298968144761403190264668590846335635449227223470667337641099760362627551161601161855080045766863131831215919356901326496182507007881149467887571537826328753768804530540706909875766304520345857165177566439730144043945392253666730165016574135978231546830729724672792114463808737287584458706285592375462919264733110426908349431768654142736598815657020040017370114273545708419446751289348893179113391514994842276034428148850258394251637661318742064019709973875600188395696512349509574722659791830132480120219834749425832545460552843970647370906782790730696429736650672885748236315461816310582892397032411927316040671352188065197797711078637853488584165073456344608887157300083687554827851538184657813313848949703258226623677182714759307067263758857975588402582443884446632472306075121689753416222367616813199666066167753811362921397612438210924503961377599762418220249357868907908781541769816206346254340146431946143954130476664365257034836923504227235976921891408805603138474538290116887394651770188296202778708678327899995664461299889141999814695944914652537759780583988720524736389468688858812056635871207135944235702388180166953889124427964363503017038240361179665895209075429078866868696121974212550801140514845312827657601114688349459773935356945368163650304418300666821742451197651788251878661263528125354262342756686276697587518289592033900672667040376100455371858890480077667565332843808069441534975034910368028273042036151503595984848045678503358039106797133189911512782418281411612911225151633125278347555300347671176787925946422722343818766314147506516013966414200789759754265088745827818434507835750952655229118781119442778018991805454719732247366915348298335765489871766426631012003029453450880145526030805133624203818084285013565125816102921298777803298239156966984328708594645437544061515323758481444586374495428937021489537715539185759831841975514000307011803100540395143323194864164692806502346436947406868245014748707880757144187425426575094334268884538907406669058256252595832336079614269061198455336370646027373631876991143246632050909496921627046337862176423258563127799341675971442652440407655640944721642710905690403653811353012442893451880461317892345388058797021075562948442966652328685558977551874379332772136501306727066381153907219527337526718673849732446939210588093716065250953555708190057216835925529567245796420169698225913817949886669607030079068445568510420473173482990463641238926668653169268441282086227178326495004801981530330236489060145651593873253277466819951161648038161069798835942389067577473105210087718421534839471973762729957683717912387399560745853418178069107216715830650205063802208914687155616905091018432172349103333444380527327645788926458071002441648326211419441014633998847518171979968439672652199211364927635466322908046897932271606548056897271212124434383348206748131667286830918517956286443078022065238083567389060264951681957988839142100375071306636190025645690063738670588723888314404678784947807544756131648322828318325873254086521699954449798333341111626362238058029001451024974080225506391051897722103388345275330720731645511482609432652953511403664316412844970613598113857360788927412787052396952871822699537861407090185769894366878245918752112863706613112610504765157427506733246399347209720542834388623984947340072751317540914702123076084187447575650005670184911444202753682121310957353606746342060360114020253486953887515828245961105918269753622128103716671100601613822211498549431442917843427006649001138488212797159620458327370849072476924507448534841212898384011112528339789519879831509176844480923295409089116299414729046258437342414467119177216978215399525141920713334762474141701194105784198778369290406062490449247102726999559207770213898208173874045991167138887463379798574681495058079137834879737983679412243573765506565929314144983530499758744051393041536224282149798784903597878181398756680833830549219030572040349521421797559033068662573414044991985066858633352016096643782079716350920676426151951817013062786381137558339265174100820126091682793036179133597959186590371696367111567039489058767008965117711033238210249160317093109345052028927172128294421857590964573145872762170319681419022376224493754989530849497789215235298400196304418852297923416690498402212401182364809610552392030699340271530600015496907437089428281324191659955105014369386176597091079470588538891394665512839890941223941111635733903290633349720827832631002845227821310169401052866722138006051443580566127280885546962781412902113902772447440124595883158791558273755593131465819532279076472837829018627209264022296693486334467642308456289242908717546728293836640121529899723193420018671347437830905066543945113820756390783593846922171902338643352768687949792442447466058716356475860566754542349525099298162884339065725346565168740272104685607621646551737446844742135866435837238206225557123225836616651481999018324644528977756583629737849089609532886329538034045774160562404221092149281121398980158656687009710423075993093891683699631525189845394177908653982742521277682778166371866573744786548747551191669522518387018982351657442722779791274249421179178786622415701137517191935669554122187634640377775450779626688386979794683392021726263467314194430712268258667576595269547767544144042257871477303702130505856383916443475544237378054977150438427528547526191892918869837759836356611162381848088225103362382070513995099708697418674297519908496850673320233115406618535071777624253857727639523553521018889867038057117614959234157862466961875571520993228259000034581698123655253262298553638661622208093409838302161974153764357438909011735291757795276392992160201868541895564535329464285753629803591077864233412365217382612759485142295795693547566959351378778103779959573614875098711783970998130450964378238698626956345990030949242755079132291304517119679147873582754586155683067636764463251860129415730393901820299450118052444606034420472384430990962036149369700312776641362337877990153041583358095008867042412536886186656301729730018174599714167626538250975416835006240326427810904646738977685709034519986547973843173147036241156550083010713886223144193035338406256648679941445851024535893333243237930940428083736486690344969797445724675515949545825109507552921756341713051780358368249564409173118871956891469940020042120694379359900368616682237342099542514089539610376287685384539912887619656992309473977349355216493415982852469863177174027948706159925012103201197407413078483788610265711049860225038231244816953519691228350682755396123453014443611523040727974597897225002077102146508113025535173511018727581831899911433989304951200783540322899099604026763370012111158920707257653842677424308833901410354149374809126586656174506306586947299578158389779680199305877133074004907411576781733253104232954194440369426499259923632305918588269521616149345518549919396236469816676993598659860005053953603100533146001835011650180330012226008292402078012712217052409341932261556117304034180844874773061711138104055618383662134897068822205234802759578402877446673172753167068305258847066137929830609560183142565427482666021928419807638837134800610894389680297202914489829341816209261982467804798651477324427192965871179860697114430425799586416187050482403453264756838681218732601793143209412973222970462525176730050858268462731226314586963547262725205834823080937118942443024473412612906944491754641758091209594031290194440871254329414404307345601945957746510813565805374462937382546872943743463899914584701649958904179748114722907752373044659082653785466429115853950707510974164326788804059779352493577916553174683670175124208973864522815531396453666927890699006111252054446180308062738894780846715240945356392701797787484867338783700504414870877327377679624268754240267808945855702941440656791047616152249989052216406495685460421383600615179317410478565206084869649697287454343236413460819649544935520399273774538793177048449693535316030818915973847810146695968178589691040398580116765882596590635574432485155341725968731578157942331059751578202513096339030855521818497421955790476131463451640730410208083597023122908076167616485939765499892761980789367568401886511174351418874855206114785639502171116008462795164237321133664738810488545318137109616285667376179815565875464857788922720182398276880362902327712133236962726428269198863098615440340066783903105428872229890118355118784589022806679056946861127805053441738444487822520831136061105943092747002513939791427248758706728200712238962379524947606341170372692156380599324561211511653380222392308004052507807563784770598464774048269364182121987575758236946098239128572475425374774736371930790049283446396197212020640020997770980668133482380662551384410870101616011662344912498015042788204249755425224352052430083441431106205416197406534279953098895572746202528714008619527385329303609749482278190152384859912910625217510647326464967796278105977985231152276968668045169951186051666941760866702647268262413503230777926287729129716744222522757802309113308913805177357022151716746325039325051394163973790194222223021251583905010567784207182330870371848790753891810015563153771879025582351637352288061417118025821537435911676929437908697163528275319349237550109076596958782733325009183944822394746560140084623891883781287976341048732686823580084570632378945281014893645305795948889243383907410681344258601236383602466398417586915078630507686228300026593228755336227700754587745549067179680538062186213112352854088124830840005560381915082362926192921294123406859397987458671997182729405414887247753615085972877110304771878588921842482322879581051351890027815621400065600744364869253444494695402233916606326156116883127682621799146758079918719836107486683965677249650056248077927881912879961694512763475511657174311835906584216642702022979092598133244186758149468573355206886940558507785693650924920952857370881240129894340681570501029000329540956924939887286148627183593754909502104532169586873040220484327034337042859537017790374190359782859322517523283077581820404557184988170244286354062621598314706800995720175081913895913458013765094748248950683508127396312087655568309159700628016618368666895925622201618719472794490195420746192413959004358108593467211140854727735523876124335988830549658571552674479439850332216496665571205291262987710723333510869437657097968606829072655731594036477629249455408997733889378612609189329325724135645233885913152434364125042279810555514484910910964709130172132583895400201282191742356564182125855102976909373372541666516145858747289227768612937084900025789304373587059101281817824593577969471274500772423954538909693086843197322705889910868406146511910849184981778041410730168011023658122653150057851936512055568487080240715505640263971405944180605280526849080953242520014452964076404491850591872614608422873576418308843886133276111436349254279359485510894902499284940301447270904019857256728732233724481786859665835466808381207143957600131453007114022959147053457659145852440975180355444096841477277604859536660174376364343936347404504674297038407666351934476953847995788958321725154918468405123146646505847340654871705781417531010570997706962460302262114949247053259665078875255086397692389956518816744452431204066630267189672274177543360176020218176811420496216594009835303112413702805902943508753737382766373431589155651521347652146601752952896331323671516784032989382239545885607595909704849296898487768366242373908800020189194031473269621356042632073078018391406896100922224925317847638100690753523999477471822830521796037005997301363396785271620000163690021677877142460011432160393363222280684943835466528706428917009199301776181629763082223983686251549246182810305897355469464710966210434924559138551132123694886653363271874511086891607050654590448542118126733169494331990003672180672056152069023008810448034223695264156430262263809013523053993408392262903939939957611957391119634149982737320740451255600347060413124157582844634895066841742799377982665324745084275711677806462788748864640130567397029468167882414909459279506349311725098810335658658160635351388855500651804622894023414929519591328285528959891766607323018455150263032482069998208446755183581440925243009627554145751702531586581193446897514702944400559500320339955169313557458007924866607271808845223425714938144696250435934365708781643992316240814458448433486860383855737829134877729929350376121383388881849304493728368618137317818240366291576376616954031512677344279097942638497135541124973124513988246109747974658181446891276051604530414087365664263069024156250174454987799734837851553223056917728766663020684577029450713098563014774010931802083233872492571716839932599825568177229286421900064217830408069171173259971411698246661765203657941817557334275201738662648727191506045918696483470392053378639983356169468457902594648572251246862567043631915324266371199562732531901664384775436433309904984890076746214497285443078169280701786242122195125453644519468774589028592238135749430548275398536703020018497107972306125018702129175047968772030906713571180249984955694014051551214431185027205424641490684978943481946394642270403524916784503160961892481756835753035712505899413692588876770454730549500020781619343670373772992630989601039002532204353527262594576463864340472261652625297832196977083982024947194846752113894491690782728213031910480370954846084616179123546402162478959260290187690267530795721761765018185175824992956843649420354956254586257864791308554605233532895156871912550968714994486782716696182513764229522780525631220876900207956446376323545261860243623036659148098562115540071570711353424868417516612715351079017612051895773405602696987855420799519274854708939527503055114443229913830946782015007264159411297065949984897148408020031539158428836660878820605588298126303272654072303426001058783523848851088276543508020466638079936260883594880821223135232816007218508904135485502391694449753999986258833334134509262752756758397964011985682085596797102646038004087459219621167094258416522211388807395740971219558248682291561330618958490639449715250064315144065941521995695459809271045957851472671185277149361305196157151814171815410483183083931200316043017115988216915429978123073011628752304310957875143715547862054109706142597258850105073411416070859111032772040717738247281891642214813154485568657678732065075651487994089689369948355334874639810948651015371023800031371866878196293387253907237284107273626803515864238454517052541245985324302151052986717644383377953186498958099830991511286774510908669383587451260172465140177851702113038056152656683582080473815990583871049512846524463414765031400154187718405040116007001512329478002904475978874091217706688566634168568191515607653694361449071882118425659547614929135897494818329686409928245096329067289993804610754302401968764613954000856067783514766041049357270050432967640580816439080793812599745580517283165002206744868603629090913692335095585391769678083139045558112754317066672904944241510311807005421836613696668062979759408121305713950279193743834835633929487030336908464305090148836243103860958755653578323295819148302105220354103114281006608332755542544330832413709255547420690995825233854524838780525141284899614072718361217576935951665618789743761035640709607331144190213224149973344533038378210428220178113776149760631977674349015648308007393819317403518705129358300806135719830145250462208556222127739505619780202065364767948527352978469502528829882996293510779624969364458558958359006305303642784097662328692866503887879712828628541544620406832533766667556981183581250184134006580625606783509240135756040693250400558271944719187820427347960014093648088706828902819953497977909513509244559082372195384585708368682316458784102183868935645886660941973330618551707864325145652374695649677497503705950164637377485804219370333630407827858460681352377494188270849966034077044113823220804431674231383693644480389242495087551638896301050630046555827977332561128172427433741364506029122331852484787968210388050385274413271869966142673546773576145334839001080050342045353541356740809803985917012202861419690828541488896971414752236282613003163619496656832829355843842022681369168745644052273702944363466799070039747119351207266198281331277477158465193042949526145719600672534485350060838392728404790977691251397224326903467205059409479410085803486812935573349476737661488314268673424842555345807200056620874111837207189732378046869972510645697368837609880283809781332275325477324422618453259681898569716707738961675821798977852366427024942793912480173045864301946091230776585748613381262860694875885436149423212634800917480488979530979218521647567278630084122674252452941270202794490982116066931603738489305602715293713788297466771770218519419369971888428428853164577788078497250049571648060018520082939156913948594015521650536106601245326211543615883609712587216288063482122389669403446170760878940850697108051907983142830205793262490261414149179717979060423841476873223476245934230619425877754575161369723735396301503934256362314181594033596946307702935591608874192530801611016032259857879396810330889449956662672834702291578448982092555287651412547816736670361075270699616512490676475960071166936838094148562269402666052070815446276187155092689932306128678166468690683872728414178142159568341521624835998058492819042819467517927230707965536382116522485525851403341189571189130124138435956441797805086337164915477561821125220802552808858775550540168899375550868624667340988175706472712364367242400866411781078815327823728128202537102867137006366142457922887139167261265084500829097837626866020389122363156578519696010230890401446405988642474527541716567528676823828095987428075769655899394035122178455289087579766336677880745892524831680184206054361342817228841827177226038991640240747298216517459394021578984796150635459765072241003066206520866933091151292144982592038924805670605789918272574632935866414464335380452878639840623335683112577068636643143007158875540540677399073140630740959801664379205026449419831599268413313708076306850073076033622491848693978776510566815780888656994601050549112537432133038190288525663922750917934518192513738749775877635568588770195414332976865770429787155925933297038143664650552169824762978799986489452321017840888308237314909530277520033830900493004948752275036245510869765045005305216137155870607330283174351531581088281328715212040341473328273503719238594993292226554677762672765837928530449386233723888607995548889030612002459304280359069788514348548085882104792277699218867440638134113737431201258758613518838009074784135156264869869516194260867015072888598079224526325202965608531022452457618197644182851830376742803423638978649329813805057456687611489356742969876599222622288693117547152660534511370720015631122797417280209291558896619813013072164177560896314990935771178578993270311415302120632792203969026325125453328560457503766813443337163376070283424427197649225322923837036336881624734175281471082473951819416955229802122999858364559247650103917139566755862168861426272513029746852120019115822436781536659608183906644122039604010605821704326868405852658646544036569205029817587569353814460932705973712320794896991873438204626380675513723168355172122722940894832992117574597462857232691607550955521194613450912368221028138446000615878937934237035247449839913126565429123053531607677385198645232400337217415505812813362368845549914164126034330181381578220484127915282729674597695006615556563846273522154566717519709915779847083054165123678002845755302741994905249284515496647032833935922977933081465131839557210297468770712864523388924104747000148154633484474474205161141623340144078508803389287902481396574728488940054435897746445429015586890554851085605623279772085188030469307566450928565205967233878714644386684860125724556246053423302936237673817293696045841625579230320669254525171303526489371353391565764638443032152016834869631890503806649844101466264466013111498932001511741192701150954338034007609433550989699160872694314839469321895274036064957351919256568858972975918346532451883914159560846112202532202460351013165656742032539206323930496770421513273280351293710164431927870457515125071759347469414494600358502095445986780524602084912711579260450869848866584634219077873271873685292859160853118210861231736867396916290924937808058878165149772850292228697938512326051716646469371647585654627075390199498853335405281103441924786161626541102189926446254704970923450940344120944224137544178099182351286621856906046076697188020311308161848858384733041186502227245059489977215926973627156841522486015551784983674560483008637941066186943703601050951538959678954090243183775907625745687186054326952360221987100418630270703678608829997550709939091601340307477979494032944983635248542708746059277718150087973239492519925926917223163834954958706804123392142266205144540913618666069074385027287418292772821232554396151164564959820753194619398502143334649948913547456982656669465049214531717658007361022502804770743095121393446717614691052294815859811969036962474444189652438048010696030308654989462559686776244205076209838139905409654473536705427683910410300770924152167977804758886066504283655322153836575434951518264801974016392796884172052896056080212993787264003034989825820038898959566828823596802181814447259411560051476134647852511998410912361119630900715481264995566389603940316358580154536800231896867550523356358810935880200007694802303316733351173135921262976904786700082836377632468289335391385715674850391912704812886462007969317012822189124867237227704039371241353705497075893497820369070647335256830442502240051142221086403607047435136832536618003020245931791365212848223007195342670932846511458057909794929285259469543343212102776302998071068442722368213889275568135296814418000058171822969887886491225172115476572629833411003864278272319539503629607445722565332309581621122949903009204635444124120913246440178519860402549855731836859049055690190879760666862454143830595441450783498018256728815082631538721914558527848929262363064951275269922249559585552961272613985448342852855575960135484830129672520461148433254838497388678590918186271191107189561722701325084619939270433250399771150829249168144213548759808168521817745183841077442215392537494948361894387534651909458133915425061224544691099474897218269214996322608598409367174238427186854308678602329764008392877630681006428585119071821661490497422035016318169933426520892588235571056073409117068357864946821994660926800121279986617694996825903404359506936739470675641095964161832269923171916465608732901110040439465573908338996670538621224452779937697495285000111507653103919055245094521457340931302740118257409742126828522184734009157391417523252030189069176485755044169019934832767778330931232676108007163299788277692877544596411061095436910056302164511585342651102544415815307031668139399005230686642659819568737504508828411820447484403976640097756391193037635423130528976291482511703637772420255455320969598417514968034945604832207879057618400916692792109177384348701335391879494002432775732415699601336787582850374865552125456939401358565312897351813183329002625274600078474863726184442976235792109203875788386366418879630363845636052244125388607163025178740783282819528811228115216858668967528197666016257652637818897815449844343482890535129664629930143714192398943994626669384769549704312794436866255420813443577142715930977379135067401834159799561045035254980282935915077713424043386833658207873342280622947126258502766915901716245500420311815623585004033789659700442800324900417228667368800519257610216830702752505636580272529042618016529553887074382908916228433514993308201609550508146661846254624528172326979425779977579479350515440462144148622188622753863540424148661504367294530611819840430425578975933091498809112338535516237304480271105866081288550558351342945501580481783840458371432313238130168150757778135161124016952687286336611701619808494984590640778432018255930853282574085167983720700596304971269440802017165799168473140130673340126144570257088749186666113123654843114548831957328229711120489609010457485132110683364988014563141696198582655235987161929253461764055915887947317307250592573071216735235818307568158830319068237003393100569175168421812593780818749813757597334314591170096049825760872001116209187138558951713935920945305169913717645013444303118246011480490027993916683612499313234919167879933345777569020819859002396093802135500138797269131775111006710077534346949578778027038477291501048455655786019418792742568061763082537750853627200058613331367786783153159664930575374001381575029557033228395182707343080593618141946630666459712714589133712351635914770832703396119082043358086778636928612497207018048870378193665605289877006679595224448649409817753806702198919290882930761199211902403070849040965739914584998127257131096844459412856624065175861631049025739290528207923066507318801782942378089300990709386473729312936613123791446705363415558249353849041699359444705106641080854172413412550036996087388999258235107004805105070341850055644296773797989929061758373115673071213254087044723204337758970626095302410802935410657435627943535988616265182622185342908864439224882614668890459282753508943832694491428334816168804858014374960640490994491048457189645822144303883939535692078582132105871420648817984403516577413525910016664840731549874298074854844319532556503889973238819484889128984213074209275513859412514805988649184583153579006380951858469079753135216724272539826189191985320491524680273019929749770060565681624576310211023670637214416475057766843395451341353922979560262579973399821721611251530448838158923714588532004152980971533488188917778402353317314033872339899163846181123296123312548418959573746525662908370356403060958072025317594863363821998334567254325493542364923662591111835823225267371962109974581080123334928773176294348617408513247313242832190100310634218638439313525645367440896703837294466848902035089210244555192765458356492611610093103153826000842411485967562546649694082970109509641615143289875670342357350336638977453781191251431960633594786514612336956751154707451561389153371669021688315021796567532588336069760328229311593641595247840528679903864819342047342034228213632697651123798446141074503383919958650282175901619826697856207000948812341149252689511754533809287387252483846802529387117727344185887433146618011434528650020685111085758129196173309637717559922811735436367481652937001385704768571446768182267246604373812778293775356068202519601577267900222011430229456711657160571154044992670830320929832289934429415666108428034198120959666216867947149849023021669729627820253582941651979920301293129403286543423497468925431618212804537099248854016651680099164396160507985626359752696464886544550020629259534632507990934407379378389489212939753911212397635523685064944702308607866222893190123279342513753677991762655129663959575156716277293217417772982899000162769491952882499438703905528163873630842135544159665536600728027533666548594818795795037244111165190951324375368138558521917248421277418232408109633459264828496581440818820976510779466437429674279601718631483295455153744766391981258962568078997689013622553782568886865949439235601050056652444424154856690976733567118247948774490052151263490565198275215757124504188865078698228126326444320081929081614644229748325787923827021351268117980984350362132225899722260068309297279590355494022038533564828842581360974238676134946409851190347828996870782098591024271013339650027592544667272123157826886271337267377572754170981246668255186741605964535693501342443471931891590780262502695798527679890206311129587679498407203333022300382791921664853466415297476197868656676837632316698012109063114545278576304096825753775564344605323252345230222816255407501063348543759735486902808083386462390992161249483003288178169846953748690873106457051506214146780279103781181574154738568450279992222839557375307638408174937103580264679687114233472877686526453566623514066303121723099545497991175225705193321906704555435961143109336049841663046388469480454129779030855567170038128270432536756273004730629500442977567029500554495869012985772761157730197128392707042054125333819000679416058602987751483117923070358513394791803714227555157739116218733579741533976286187114183070345210026452577126119555678626129681437031298673406270963137791907764947237152307083763447785071927209717162721847677332987414894762388854836921938311817979761274070835994651087336450482850505578645914941924429212001440148796444139103867947550978587810300112979388567231478765706780338413676383539308738002547117528624980777889873595912571028644518940322062289930211774911611542807918063998864013395048708819401890976340351570836147667909984206629337631733659513160919410485111650846144384731597606803636384140148179983661341772704043902965982734449518866879761278432241902896394862903508204955923053878124122569246638594459988152623536524436991558524691977215863504192035111289519294784039520043091453864159126413369172438507882407379683622569551950512993892366216187561349272915968894695634358536304561350695327184110703254376634538608067566867114429949869212980801723996566595633266804964516043747223775356543810524338594397649766561287528198794586258335739988322997818184707356809578893580697152206180875239609546169450648306664613479859707929747274020785750159957107442828425980369914173497551207859992035671627915030886607690682858868329632973037942129013347647959054030643370102153541009555181487852187148949204220282925987220635832902250204044508062916277837360223828925137651965702497994150946365042246656974633657983245552280698434902990352146278354577069306763582807616464143343904671904273109282480616022329808950381907432667257598369540401936953395540245812884636892827032195282084227991911336995493961519452930294030932488800819960130542379301576399124081506255987404440180874373257686806170944704933693017620894126512496864592258246432891420174046598344588365808320736464027737069660183414245521931606936386434687028845277148327083843467441685427365669418102121474753889777315988583665774379772902872269120287449344503825560472301211075254031940951276437538417866932738713152403916766857773605041169441158470447505761567203630162862688951761714612303091324038640661954479900981012300504179283629945091618915429347857508537167457887723410554828236772730913823726423883608613474722240074388242163118919270659162710795452593709905668521551758786740342909520683591192093554513255502719143644267439497922400267989829081880649316490939444493276941881660173509225174997922700942896264202891987621361297371436621832221477995387727195798721859618938467669493361042683189396401874350636956945249105340077491367935720866921647902611007114116499990754091033333243818217503637257885161256845828745130898194325177748341414525608046158077975995343669024253043478510826524597722553424066768369943669648330447184237248021276306629742210263721720714604167138450513794241785568968135293607627722292349518345786066363386546561011084456483971411525342330195502900846602275942239957848546704591471859124296110182614112111928588340394985385961902335541727916879455021557836633566327639188656865654418696319525255504415537146104863273697449144895106114833706164115676089632771551186112869030768563793021286893291007529846656404185072272028764929041879094829974178073035598424465726309867142215281862270197377429945274202780077197801716587902605662786509408290871480834340261882168866437068754242843554525412990686757970409117626465873726843688132697818383849179570093603179509469967925367761487828877912672606688923601613906222467977040277179367706356170246453133497496186575711717647636746765212655241617492034063875983460230098436727127371954888887191178571261787485368408526001458478914258282544788817369328543854381816935882767625295393785768375923282286110382467700005062572353770460253657872738857426385061320949332052549795771245311465270585363058800689844013353605910755818537436061620394926387920875633290684628154499776283941058157177306210747708901598123124199374792536801961676271686843305246457164138174006482454019159293409129747273475654660800148483386588304850699880653009530837668379032531006083324696010089921115773292631331593496957722147641404054664380232236634988240028278316269565416858376234998256283636427620537412158346255352407976116593853323054920047821355352958312487273699850336204676261669491793368929617538574831053773691267914904251093116066649176405302469991736433601105238093120821009367496104018072152493039341254452851539575567116185445408257964291924192069850677837509013640637755446562696976423426784183045826805058395262765089812471788676080913051270920275468768056202182424909669153974948740357485382899984041450153946175379350748254418547364285987055583828436578498231515546220055047128366657481034474021434378787113223246664384694422302795797061194438883106353448430036061928048755512711614578929112826572401414719155497935909233431535639082258811586726694037878593043424179966991726976290725642100241721819089434504708897445226728556193174423076942279369420620277660720731678057135595884605464462951746062803679872186302433803016303037912980930258386423459944343332979809461753528546242526644156031457609701450018003316071618265340183408729140866149902273838138948939675778825555118823183111175273096753763407931087533241243129517665990455766739820706339902779988693733766221746234175806864135161077145560947025495492315067920140012574522960598812850726443100417885971374768158225265675421767133824434793848325517406873462963207209280564057762151728327213502125081809144878644550811445063702659037010271194709623350231134237035141226709432632879043001707251984244589597099983329408635566645453421943497788905234415050110052277470923044325677627950971467066091632131122487141656860697123648393573061383196936827018147487118779169590781241843577869023602939742432601167972091326647247409439831376312871043552701694374562258957703177961407411418489463857466500717166956696936831803494958967175106681670476375009316686931114431534872891067602541640929260894262734673671335358994488068226252947058000832627090361988808302078239585152014136439820328588358789998279369221821477902848563229282520771034725934996886890333478561298124590716167179784755758445709890521686805288678834453623407571616943167218632276670778191871187595515977651369195749673685413718042604290451986803675027094496612914365127420929451910798682139026608387631417659293239749445774647357263452384054868804795166751157854301293365721308534278562791239380112171112651275997443553606117530512233925972875324232958299338495219323611484685064529911935724963030825304074828689976180832548852234360409200705897475301249418300791212484610855335064673955034097645804239794526951938101795888562748499180649265165532071966181382080997416684310456217924295303102061184365320073456601424624222190133591941945240021475159368871458571985326469644622807678252323119340383642106669329465403223700272739324172794060171662942744121883202063959129621071318381948129005131696875075809261199349681408224926593494091767468962533197387178936291123006122117321656691029228915938924718277171112385993267041008369133878201891450516359143651936981100804599526268791084949824786937337731716976132981329638028173977221765985665506541122714341081421692094340073990953443090557555317415430936252219615048241424724405726060128004126922916516922142717562789772967744876693837467795919476524711640428579201815781895170127630496994506146180925573614422750426213751160249471043801099832218609976819771966292903789165563374829601529881901159712327401776835255917714164358479172473973419595397092187201297325961835284918374675088927586331381473073825639531106453321922133647833520846806362747950766717036262994981712327150683011316044265762815655131768609181558440477809464525440448054086594382992512420206462434171892219353269901648346711573637140150522351699031772431465522091405289994040734431774494346605223417547405621076153049776042324206214400980187722355840823416417387991416315741798720662954585299338063351408588482894452137925742765689035107947166792366866667789490973850645585655906497635825300663435173660574606297385121702948962149532393033111571250831320003729660309666576595738304162164441945287026756146501932951762849925941619311429545465490778314002629451332000975595028168021120261437045668345584130733427804039597861265700149137819839469141014660881584354861034667879710511634169175342114261850169538093374746574891225454354097803475337793191526352065720312612877623228299688618188401264170916241062545157410739121348424857101947483093317006858445907810853113818015771921201831639752388553407385231107017567517803344193057752606063442881417775172163256194538089517808516719398761519377889643076707804416636358417744479679711487938901580443381243271043510612238159980939456752368116892611509174812952759720588969418671741868357577806057043989672817322652610112546934378058399621962083401423881303967289805617612946726688688298997659666876096038178037267758945480592536639625488468587531442912938832800606744995486030894537044123520369000782994994044695975941018927596404658670740394542450783438001898205823305949623609593269024233366179520440543021204032875635132206020394524268196386939627263191894962978744622081441192393484394070082087512105098213333874167316522454728930270738854374099367510326113674494479797487959027268834702992355788760224509825581844067768206482289290000662237398887372246512162268382342889328384513038529923287698533976551142943018138581715706974694171387388283978690351798211363139956059323530593569842192991603349197626083440959297032549448008953086037300613088292965750366193058592233082131231834373652009079572162002711554934002278082524480688779019091961349789844449487537458184714566066909275760769797808040881351512680761951858077614104850201071278648581289343394357332629733060540549083906961094766405162080083948940361049247917502633055502021793053303031077625771192057273553339395705473755136159594748823582858387670481767096229469170200716416133622291588732121921942882924491840303697203463927177554094999352703709588455457884461195380915078391430973905707876698910303797477064981320274785381139297007161964365452441159985914831670232974447616372615667878250029036722960088834570077300028120327755374230072819242549894409678327135799116921530237498699351612062238169413732890043035241859371227486165419816598331260177031579393205381897262661946907703975383134835886385383305588012335171815399070817889646249337659285458707993669587389420490244689941942546420048017468580754713909322337588502429612466014161543425488236605599262713626101531675641427234031277856650815843292379202074224872967403976012837426126673968131892527398401568172456117570028348453477183698510907177510324909165746029300533838840760114405684131449115372886160379494554547243756744305556503977501164969233480662303171626639756316790356504342945694064327631055165308881079936033440762783345016236875845506048242976563435094792194883740688833735836947920479612938847321563723282912038942931109389168780738776505239291273331523146716498081410066175089767305800715380374501872956498838062719107709031732350139802195412775371658934355102412337654744557289628166331235025924985419704546791432836469314205172596874202852273676681065396456074438793172616362787518111354032056693797550955160364285275024992910648236574051946611791939480204455562206018592213782171979009662695936180305126838631946843141322635540514631102458456340881352817013711545154256335979154855232353173600728258667210114650635568196107951899283745112174086782405802778142095000076453385556794903480499610809187340055859901715362619094632160179383903576084075589637795870671861013049666293575382520272982199752712950143832978413578780881781143884430952656211338336366882228322170944415541011731941611728967214342376033680378065307947698391283797582158627830350383495216887578792946668687997297057385314042112979504667900830204904767734949539173523913176969028284272111345501612661865371275315326773642054955013534331094075321805538699643486217216177319102068272666359548103775245970989938477289734266756531764035677991792146975614476295938457982740270271448924375627723608899944214674504482539571087085038011059673263264649937091812591507551186982921820549928947169356049922971481262633694360046715138305270643676823717715523791847308610216377408932299306973335329322973813603553941632540718172261834828241758270673143483556213512217065739957611424800299191664019568516163589631368163713943896057654206252266463731508787626943273893814410174019049236438575754115964766594478485529134744952750452985238872669561766752010554456027495581000199225713521018591371570671796985571302080536186268664013997761981449540498405742571211285202447551142837489060053120844493212126558270000343901749976693647935678165744094754971096622353893739618373542024417115450319204056193414674199831602160812364823515094758163478951456697347145237969175026234852360032905886316414410315820640000917983759132422708341100539881220499807674303151123669397333180761216621128768390157772765286600231143548188827600648720774958176813650056225835489590214838630357200661238634442797930692097872747069795208757984881576304468741622102333362407926379918099557521245502772119985961902790295550731160413146013680692633187613220396167309016038237646344011471225839410984510657665234646995756938826298349360853917576844392223433450147768760660980293486913322567249889554258320640457559802204805679531889901457083518999894778418203797536457948786015926740379111152468391684557627686087085511691918722398880414369718959989373357563826602804424372548846799267007290347637408981064036980076351976235532899533707756454511687481536161217019083257331872294329628335071541668757854453558827805939510414413925416471120868062389565165385648788892481145671917725709704788661497938287608123149255540957967839068274136290110178253346646446717292704556037552885818531659773614850961636183341492371822172488053169642395164215337700431481620835584228744946238953164591164474423435618428089709347093181645947026154446948911226723172287215098312714927680928614434188756252210557758813775697388235252697664959750538458164015785113372307752180433694824485982997047209690816524251193235246522027043866693543880709662045521106478739002621442004454501993241459849681138521410416253073688285437813926232424408772685107555193961337656588638362150773316294623575556330968711367642365593776022313163307765326566381525470149512632566794942923282651611279574797895658742411275020405718723840582847597266499685754562601033349730446300148365039604867866027334251952407930375962638513668185827749059856628719365509622191750749033015804659761190903964704769037204716993386443733557121174717729307229000147537137022294024648489516810287197876188049037495632382692854773630371774937344186033605104995618501496089694654165323875390821288439431024974346674747549461647543803861792017208799940905917196829012855178960222105866401600516419575154581990694016418658021566168136393416223267770325387507743230131189853810188634107847703418760487765554684103477239227436661744445624203908046319213811713895025186793685732704390166082491541571703806153558915421049975836048962407415838495971054375828438799665677180022823914116109722450657169122116095379996658621407234755726321579410053296455118806623391881253852856045977589010046313539135604513335949852589039976829408017751532261410399321337892064013636234619288066411233519967189400568613319202740453382090618051922238994759071056657675259254226454514129283338614671078914186168835324031633885637919353962878983622714452813983279874091565557120370252174575074398063172107749093875629646746848932019742104896390403580018379140604869566359481909875178772959163234969733000987599125526701507060880973664340201862919280312453570420586148670532788163220971612801984543864314121607209559663719128576655655542610218182982134074595929255370876017565487538576252221206429812667379656331656043650076905112617419829076547361417452787416275401912432229146422100720966482090783404042127378784984168767685073011352560454078034267842744134276557804394464821041366039359021054925116225936945938515440609197381902043790720145325786246856481392310821967936724550146866926012908738604953827021319309456848386606144642983295101119790773124166283124362338465360903639817034053668177763867963828261649210665757079525567903478673274489647979760771791641987076360502515239679969345119098014151841879371648521297262932067776632400092874186464211447981060301330317615740930670695458322108540783840590026866610326271432378796494058756032693039503547101474078627213382024554990006944264936835249807558749737802030166960961418119221968211529544695777137334201438863133695936045271151862701202541694204945670167304198636887458606321649148751400242819190667488491257079359667174797257626738975412726754632099270560411025328076188607225606408093228656322395785338181021479823684745998319639232575316697019944307604203042793440364468584167585492914240419589638467358629815770159568119394922898743882088120176340186474739318918582069448683608495545944570466369987141008884010855210405550378802502500974979531833850297919638394434050803895432414443756771714775932671161334668577282429183959828993435978722774831682969735898031881209001890248743447660765975519638052581602963263707731006142317128406131432520221157454797133410439228748833482780768460155681256596794618889654103467809800876147120781531881129877236947741728963028827914132932025632527732319524894374995688018764505514760891814601117683247219953795068415552240080091181397480027638004634274625296956294349551802266393099055801527555645343440146965782081366872437062295305077591911056844922175081798200304127012007206277352331109131256607402679761365069338345390219981728520251564642881617955633502190039912442035897623250770560021975516622022969015233084588246551451065927588092006065021465449109056358784774735761094358687280234594693271529621164984422725292085585817831618594835035162732957948514446756148998797481179704998224603188519664290000648665427046397690831166649879530459659896703279656584358176714030446210436003050608655521227933243070607682150246021385579535343809750872894393964226900320183755884428319531151923617377460948964502357417226620793688561514671871722195318470014551262707538905935509031292808611923364205696030215123953414413029682645427862187678708923712627178795091272954116102128209034644616550000469449333899369498377864761471151170449742117835702737794870563080278480065224157270913537871432058492830044874627609428866505509360499433770391946174416790764783130113232097907818477778517899262191182352312275882319907562635737143867546738922582901801198360416683826375778340012016967722166797195673917881952025865831682747000685688677247825561818282105238402132401828484960677301063605374886281397062660938673780850908156830793566161428082826582242409056193157547158764245269750525986627004782529064226617209200647889530318873640243568395463792701411319475077814132812504412476545542783507223306152083192412629442368674282249341564161531084785279158361989907521998591145353190571198008036831742586984427376728446950333247975792960702575672448178054265290839520466297700788816021247318001286610341402597058726011569447776474827633926388417846033311922538636072338414986660692800622785013504990656218987468085813742608288133298024524008850540034484293326987028018599542047597474537586216618545483785299303453731750621203215137737832754545262909638771093461038929761154585762187564775670267955220009286580312145887697668133490538267355988442313618916989478571289136579571669391607012981927888483707124650467713022595419823441750837776442934154909591333832695968076008176180608009596432194078858423232721452894595024797684146543250804400150253774903765474591201260643943881154429132370963556187764019995766245132517147907796422887882105099542658156673322837074979984399743683407296891094312227199044574136250912164244733648651695344738878226783675846969226186519784110812166279246276039011645553541435552717760239255170478675735153000867151759618695264114937047104747435851889059783627730176216513017917930446468471190343512371808925586278835421531222038493880841950153729149854448007670478437857304682489610544515616472544534910174779190909265004073279640960903343520353492904500292258834738979373743565975019712103854922791330482148841885685668624629406939613081178979365122782455162408045127664481403630617071273294866178876999935688833280099571408682510706047235794364691699400865274582111706101473867387892210041786744730627742519167576836205367538271738096713552647745345923902159757548941973809959946662982230741310127103138653971228225747771886724820523310419138558825929474385739396614691017045032415472795567197493192566389560366394190685954407887453149843052198481543007941710033258423963460720986563464298468123630330205109364265938502093116448979215647378221668707012231617709293741555283987097454550809661973689704136900218604083770233599967175986132456357122176678775945380282157143863219651449474285719171889931526011955549330580130018351035481678856976226417533844611931460719708173463491022951096295032210083356406331692057386825581916558734187806494219427423534539371275607645516946411939483957822633176885530590961106888430896236116358905800752154160568434379757569499443462149807736881309472434614265497467571086280988632521528424321139475332917884141283575932685576577434952088166526363383125686442354273536623064232987661256863874785253360137749776124203486916168561481137051209422649812067346902308922122385659378667104558015110226336180676595094454177902737869622036508703708009104047194510206584372520104645802098597462051070549153644782809189646743704314871800781727107822750747461327883676532022071813514324756723377567352469502336579299704779395647903514839999276811024997028794580859452039682597898046631205641494010104274343374357046162087796776993246435878275093986004958155304023560044396953390302189722569256966218595835799917867862832888789365320301313257057358916996843132142487935792976389243856726419598154701140323667592424106496047114720673768958661691602276784955654263339314455973134109284403479619598106913529487597960846692778191280009544003655773185545407783070506942056724115829841539794825777335250555689188223847998888369828148834738576133033530091415136201111198467651907132170263368813238978493910638641456020051521228153594982644631346415552581617371311939934690882997767735784689931910124686615644430826897955389063909270906964478562768249415646857824062491315748813111880475324791164409951071599000304323392138698471542956761822649187022125431394530757798896593467775849884410418708209794818361391630420805871213668907735775979276405559941941897337624552238298035647897720460754820594796463074969149231758279460542900892602753672285937611501827406787327895843725200076201108445094810442479092243085748914628599234173227633922107843783602493184924539720561485445681714532131129470546928847618482996279155360129110289520863004694744395159593137692704333901474359089024805177921864362630475005619960916501375374782559783984140177813271983168340622813551762961593192720318385738514711265465846586649901077766659263528047708833483144209733270156738564986879451274349956089365185790551461791789083613020701964722532046129878294893240723630521378256551956525886575083387773621992431529084062045122728778801989055104543746025693008667492078014808130844733120679417441807291048517932434966717643422972784831094003137688970274686261925964618394749022159889943307659612221907112291978165244866330201454721829872467179729132165609544175542066166526917171825100323224800492693525442997508596962771540048568918863544773482498612187408518062214623749168084711769444700020553068507549560444651052619894561932680031603596801964161413897203669499213300089833389095549055386956189510260272992371415085595375483155561569948803387012957630243004237285968964440117119438043550162901523869836454468217100797598569271407507512978713453137963356482692728956862544020017780678437213620183562968451477687572557242111184836903501823510400080587089497825878764416479655152001054179123544394410653792040209979074515359162607832995890668372552894581089113293817189460083097549484367199789703455799453483973638733123243036425189704909175452459066121560360550076140574854600449362036743225621183885515832895628914428009354595659964792216679233113766098147748026248433707031209480787046684034579646313190100320698086296690256811433654191742135981785510743350293867863098379395495997972232747574896392953542958388260730313159188639772505052841025757053619477476875443811579093704277649284743998050076454526989334852787438408615948680659247479696719346117126617282906885622528181592625135641201884216846594828089132295903550228131316766898801080055912687627238245974354103827282302721469540941648257086183566453942980485508300412915706660281879050751690019164399536762606904243070768217097969621382293033819852011957323922568313906805378896044644102054758834167936072413185901629130114556356775197143220347637510303024591681257509077621433498187763332627658048586247000710292931420111967992592282369704518316154782514235385679507961492971878672734459612334800590403739745846915226009252247958768453450258871572479034384691188468414552423356621702258505255369536476595473598982596799818326426102005856271430961710015160110755506195595741547298722839170076624207978556404926203774622836225533412493809330251003355416274762691313177153047237211314727626752448636904432971045863779729338868880699703075819385526569885803591829682433325844165242355457129855942552039504093764098710614563617350968720460408696286631769677740976007745690734967476953790096211323476100870188351396080856038973926801905229009195511999157157711299007427150303410207678531720123341122575830973503558768194721970892735069613639516008600402460999015769322355365150728669650496884862921894291527351761751162540901733237429342074069586522876899370286779368779936273381805001060063297496060331964049102086358032867683643126235060122836427375297697643789561030714582260398917426558521601014892456334868308332798304518106147963339852635911024661200797962699137137741401345400794550186351678836044939971613071020638978160254591504051689301934485871024473376006888113422936970465469617312484080200413999518445764580037493593007893872234410173720215344692322732301081628828568064303472054608295291270233111300937792290645170798549720740770126833046777756575863211948770470116825463868147012049963196433078455012586183897336337691819570164010190531422119850714122170255624704689591343997565792868340047267564098398942214549622313394730020198915843334696887289647708806416725171955170009748453463767485700512039505684473096011238535794355164221398013251553016994547143106259859970811105781366783677270303418885301145657800673208371665042313613618458028698904379736603725967290804202725482491513338116028360142896352813377031950964260228471234602980883577884005674163506109649084882075363607010858960266384348137940169420428462465298277226003698014300428039412628767569835546253660839624640895223453972130840148933430168070523594813655956256242983024722265381729698622418846012273236570581799304522790630698288156345016154570861121636040587487644304384360302252225812400401718617239399503736496774899179295553543832246078361430788207009816802486801614761763399343882648017277192493554132397015092596694797943342882075712615849973229015273187976797126561474275556601230830026440539268020870569244479821551494265369379628636386453499868830390015888415570045431635927889429254565221994974858214601910939682412187844254116398184156894820163431553186662352820367703420443831759339211240617485859611039449907478363735868921654588176763237024021548845732785286081062521600468913509654811136761476207349986192074580312903415897056102353659349708931651613294372538525000110141126261037451562735968398338289098377524103428142785130971120216636918057795756014960094990431061389331707125909771946351222567623171411947115331456149663640179673730714139697682927792351948641284592926175626345979160319571290669662385364518430902364019280431227181305955422343464993947575960304056042484750394049757705406669236607105612354767776586055906927160594923224836119117440371235463562398324830879739141943221365366063481799476103468307456439577111816004654731661105188217418589066792148180262499050468095652967030002538689071779111417364306866116988049252464285213052073860605817141426379976155904770216978324933879358345345672714999389990844048757020778451903369616308089930566331996346247813889976394936086469063290483303094977727244421890627797772769004814210620881386572660239142765381800473119861980329797263753411834610103822177931781944329163424343765735805260523771933306224926146916332326530701668016404857848800317612104171334935895350849849862732546783526470219129401187088550706604813275391982392627646658897046901781855625971246865656491348156552359036478968130995878410405132508269302880219605696938270820482211728840295927955216705174581175341129414879721832291425900959138585890174537889277354679345821341826183136571632417084475040690549053721732603038387120361684681766939256482988552021555005486447630041413327935797035555548826124873121216681659822863155171487711672690360996508249156732517496596298799784534640360966862111847183268788332895508192014763447432837954154654744788644012946051956363109905548383492573510135764856789830388683771290155165997918429225568144800810575177882340112399338660709436539819223140133365880256832382508141125530900354900846976735096035938611508745003663462764379111626253313804871464416065749938038114542333738681546018579647469911445433264226371150600302392775748901212370081835639017484541640426832427503033742341438219889918094884485568631768895450875579760914340587798618879194329097635389052750140367748251278035995883289958543335263557537296102431162423174420852871000853506091233550539015574457510259370655296095980540911617073591966989994484114772881021917929743576747977919947693047808110101765029600581976401877776455979214186034337342529252781368381879838851139773905925667770555313209442974756397133721627779225035276556455413095666402417685116365917307946668000334078276114531659989676355475211196124225332164987701814643292869348356767413550818366117740811380477537015131591526603738145737218248397721891832239070723119655740412262661909182413454492399224590983409962545911928135454711323280002052689582114145624979482840743307398979323012803120524147993265084568036105480059390209521243556733618599058801759430532579272518576634895306802085547037060211828130657210922347904372748804064059512718682169897454461517465332222585433339820070829520673248761140882977148214926555261324259243867232502459919876616073884360084960272442489707502180177970282309366218588843743495676961563844626916064851444414192508365125395692556166025557981916387521733020660774524025548910469031895532264401488441125129456229184884814488448588366592010007710655720038249494472665177819905744507748441682402976889693236351628620238021876460802312091451450763471009294203470918991693606107932925429233282220025363242450096104316881427768329052216459666137030201027494644078316752085598638619493583253672410039218384649831673337161672941849351003590291273879950156264881306295382358361746857970765429071133750031331338154242827988121951737229444798162968604369959951708234137501485713937245669948713207299103522588101794458115531158429768148423342718738628439201157613442980062381289247024230513007053887905835550159007767825970384570645034861914306624689515389036437726002185220321805210563207607316540924651373969357303809246597984519960628464643166213542884431687203114229859532507363735297754084229713700394140090246996178132104098032459811621813581640930578273388530344990542487061771935583849615237990356571483340813042221593648333071842719760185492024261334437756306632623997590344659442369287927258134293728910499374151508211623181179236120031323910702849346143032342362389799933384890834712132009857144651167239939177231656026154538500496443989104739774870218730348364082648878866641792539948682983202153855185752709281507132291544687404427190439364093984078941241344885909132208031875743952870716253238312454121185054423356143426462561421246976885587695685847905629426984671967269142615708404962019663686512608390522384440831688361871050134107415156681524036941955783363974868558786485364362976256959717244898699861414455949308736372114439228135073595584875891342085920206381086894585005584964517167937533916080457917329012449849927684956322936259675746422183865507120819765569724827396038418534519235490511183119338266982677527477492365462630258560213111865878769570434926758549091621151254976748372557959407425247003847374950371253018576864056344063890584348173867560644141571226989127491828503627446003464558658834330716050823191344865806014605855731988350754906717653240112951057330314159158447259110335576057621110417295638392124257409919024028572410875936097899407923994211294170786921596517387472962951033265770034117808988760454244957826004722919690714734184467516318227773448398673815875231265143269456192906263369861722159307571468123762139115797425570401328746393130373781656237375802672605373300549924916707728602329856155588428622824325050316718703726666245472833091920963246489788893855395731209326414518447094341308164269323262214331203955027105333788191393634322315363663037421123505777572313396238252396181529344714154956943876522941447495454113824845675481691991823303208441013073563619622777008283262726876703158886126291582404658236709338822917747346403832035597909805218948969138493818635173475932689890546561666529151019210711030560299698084162753932253710462769227656853819401785775217445014434856621896764121215393720621992462324568890879884726393171897296294235680830369850092622206732620921448216479577995288039842078819844233394745275330830236821570754679015177264628070913045388547424087579938705213062526830903756469311413247126595284883504961073051857693052482000820116735838881894928497732055912340015316657012581949839472674041259823177276639702242886571807125908435013173123250807429740007525633216540402973026523042077495817294332543780292320285570646033878541673083856536657390415249566784066515058202388481849069630939543432380324095765850029151999320788415916909224809379054805368461918763587803497175967170302345961451844304909742716090744670175370644601438340946935032024709375137670142608733331945368282433090098009486729366968745707326326652778258942264918533021850522588181182726024638084774154074812016436495988241199752634950674969335830657386516066111218041913376356271781299742570749343946011124142428504863672537092690430568086680342609439528790322860825871780058288017930570294328547644061717703173006832362853160650969525496850274940859867096398074249991267442167198531879535207696428355291387999491065653677254025266756216949833639651410292781945196639723404124250610964170365192030795005709313604360847797214118693351534237921444330066789791100376520031317571537598701808067124630377232280500710087934302851097919660176487690618005229500806878735711469986313941647451785510780642767570895239727987789756346763757560384785248712473057055216618998292096213321695292383496743327396970285684657343074113050734300234949448515007108263306922802625339254385196279982244091534714454445212453256938932362751594251592930204404013249020955882114848552289860964825943169179227301731813111784684853967518616504201417517531937131465276375832573263125811024822182566826405160346431802279870214164965270236030315750817168725764503866202899480960822037491700419115918411625657243125909524389657621750531630067490972379074020973640043519366261292432096075875498279051191010915251534279813457183116894404909800726861403425003163449751511767543375884860076032252248394016905562721202028948262095514661234405559029153621158065445492372170037755790597990594601854919132673869565906476031936642550855942761903469198598611852533522530583600268220451500230084080827583869874135356317748476254620177302726202794738062841670444191791832226544851177445350577099213270210274588320779726996529296554332029561189889524229832419979648228230282059880717790541378008674200774853005465657280275534486792831174995615775410533029710442957627265203310136405989991202761039083805501952246024616645771096810974583812365799333880521813735725251272286085548584740704380123597593851140295333723443344491721846421836480354672138956888117620883230117657376509951684037455209469250831514055423562327601894755779334943697442653689859265450902003578209391389285389660418704096481854191798361785865659507298088655690136378003344814369351277298016577838542910649566245932668083646958175590057826867738889587418663464414004318944152944967130630928743409341090394833764293058314767054277472596752664198649579325666797111316527344835250065470766895109762108072106459048185044743724393106288411295759186325178699785938992104029455530253258475019813674059460999162292691926092705734597080807324483068740846631989435610578194920826839699630749416035777141316922671617790383285392965850537587280023209755990577271373609003419141914896589866746121375759330976188164328096550119161222697068060076734422152726787002966879153917690233661415688399760930819984508555853634525332295530976508499535505729362868633136254659223232159792781671774462865173082808207883933124486814280003496769626978456563629354224771517900831669406893799012528976787959978754193120048692736868941098704457161462961182110904167047662203929495763617914350690888657502718072411046326540318267266248787493820562060461117971105854217235693125730591634143931203294745549181764566104020904901299924107833491046059607512959875678325685206548469052479490296980512603940115673335242610476334799597672458678653328246931278235218090167966885879554579900131890658750521205248520844422451374047663733966375969519180318326360268256861088592080108223217715753440051121820526885252763463204034580655070779950050428542759680623415829107673629579264492649150699939410384589448157624949684979777248479482619415503100162665635858256274333754828688844159605640422311378895272459523130774718144790060467876176186580161296552602062964780003767325075099338474540905892809373124464593214020753934079388895976777567898220949172765510421929111451051461655708978548220983152475640734530235708750826935707490794087840599817104247463798579245403148884420139037955476001188715880372392229641252487828971227292877274460311080943574709024825689927912781199948702312131358710750307331390888100314535461235971410669893621306109262063967491429354114614526068503493467663577455363683931436584739787562530732207700444893951851149488121527238200071979218936456243414282583599730180553472136342972798453702058992300691503163032659514556710257706154020668781592614491550780878778079514462369877420794024610469692796277890068574466433659116301386782996630779425721259773779355126104149559620689507805765793299807280336884322474965174786874988950327631387672097693191034767523150165255185517700867061354252655775753653788447411133315299907264074398948146322413164603720526805379609021353921293319350567913354456723277291999586656698347670065626198198008641393627043193374738014982538460525515372599392246180248842300336947823798448202283851554308350428081508539955308667981743509106847806703177864495110875645641530717249090640621447863767399428461816801772660383188889688335159367999595997017245251265387518850825537935945444360472701760916395190069484818238516308000587929294639867773452777135947383865314175782868847142190685492702847863986583780131746335503770353476612292030243176272469916736375586758204648448936892291789977963028632644218578587816427946583534230109683927947919081688195055517119184033565541808574205945390214114807239494764086250177122327290878214168208235700659944988226924907645771885833188641671620602354801602179896449885719752359687564788248813662186042756176914133505958061687992195237624378930654153907512041324721802279062516569880601652445967398702113612157067170083576975199374043970837413543161213944602172735871034436254293445343244039327742718964368784897360653456577881598748417066338134531073382497306741275439286744489435562480993907075069134493012378751183917286680596079159783370083107866604097294612441925065898669012205695561004227515347665245269834831119619800220280642841875161564397272657493562903095596481664471385571234313372654547933233293722577244425410407454995551970708108184690983759339311518747284615822426084528113139956627793704418523670126143622945356892194559447352123265011014077087411149341541178779224841533999618036286292346756879166581959937159115206292538836910258565810673756288150403622284696177054882719062556088015157649573543826574861148254711634170232368498728522251225437759655843169359108305977417750366652149918076305450689480427399166881622268761520613681559350963425938424303323053683921624206487792141575400693572933554812336698504177213915196066461183584612298370067488207485304373941162251275283756325829540882845166079515055185131115822260983410250700548966494241082487272645544714045459674609712237493651259102212712709045908972436550240888330723055934378072424734464490731182420658095773306464034117259790695816236914518041505067188291547159423298623324834444639811446706760798990010622333800606720994621113005475985894790497630583434537178288462597346402111035428564427113880333648159908453910726292666025129507112636047031755383059669488545974302632457236447253686755642449454713275245933725951196903960093290327083720992257600544729886788039167230526411236245558095979467408672318371184292030073804114969072882119890847502278215544486621095048333423403018621016799919135224322705298450809358453732973429030926264276895135980908819433574421622383194970136381748260327441284419687834893152114037205043656071974734099376072853693690843732873678700119815988676935465546557394788747997717143758230701285734287387759534146465022488757921375158521510382198496662242696338284320343708069203555478490155946140565502108308926788793014417615174209719124966885170553425228125618362484201719790253428764672744072496384966232650750517009135687478065377793489498116845145468249518893592507702339061766562687060702922632253045635775374186898399419293850794854069719315533595316210422594477846759445290924751405114787809058019459535027877630922901419535190166262665773873183609622304179264169850525587187888282841956940391845894676664737876965631140692185518272764085546715174778327988205751294990242293484615923620017863527994407270643677271822392146008138205654679072493991839969821703984760381139228995296345888759045235955476518065000479884471202887683667764109599242014810521233114093995081691443411384583168672756866240297421380988808982737626310703082917414227822256564342132243538885273680877568261991169982762959351405982709799247726924493015114578793711992306255155164510726077266898596778468877584687905291708901443291457952227929023125538381131690639140603328860598205247917279907916549500153294824636199400701769323593721759651422483020034721431461728506946045583479433564791408173185610013136138701927373386773119965500657491134493111107733719861376273411083132480783600635452194844576319663109921496160057188292564045852452056834321421041356196476688187498766031236226037353124785863809945034574388530951257380030505871447900029799586607076265308120825218756448262428967796650805454778905078368125640097921580588646619692444738048000578424657114680359011717738253179949765967466596652057300858213641429349339018334056367995322655995383676421137230832182073854548195531246823856270936770072701288542568172684417907641261771402620437990446606664979114464641223251375144853812343593055083855268504616904896858435858299492648021899583049127529348857163058076101284672862686691869606025550767049997638342010674388455391004477775306660482086362531187787196352976168561195132011221819002500670026569268142828205299982199138097919439443442230771886482448409195016085993653959690357236363506509412562370756204482438291957854942178297154074250165266919314243453185240433056885624868126459997542966128382096616665889397129797314594284307831951342528312177094865864602566983813076437419341683535937541749922256244722073781990925491628619798102127416575780111303332385274539687147869448060305847706834197895890153726626102715005728471943214272713172947941298186225978579472454947590478584878458972082990246320738558908927897305809569173348359013274727305018335074419648740111716831248213593736438569176569315458880996231964128082149589998422759429316062913120646726316092657673478296964667133023580402387569713300550040522899034388207379121799353850803928604723145045263258718614885335015004459354800580912143473144402447608632492213162523260143420751630608375809781971584282855832199880565741322290684273553228802188886687583157017066180522109231916630497953751448400386217175235809846729924884720444804641936095974352045683958420906896060792416375383094320402713652057474804039854705289108837312204776694617690708351985877637401967903395662154932880287532173981701478474018742076750036465658422756911817926862103626431702545030025750306287246222477204487513407230118722109358203074960970083094189136332919594223105944216630372833387550584768786910788875380998054032544575269951904452507657369016963466220039162319614718841065627409864294884886436350940055693108597868509556421708920518229495811349564188738902818040738639952441597208286001465403432462051915651897102615760508947949436585095213728244176243582767754775774190652107177043200978600976787474665319663908232891889525918318517489240730338051153594335522261050010416707282345178448198392217189386166686856015786175723615480806030934320610517178210559933248929978452907343895680517168673788319074423716155005604944898127999547972439939282594363074663980332451949368152498479256462890199015048611371350463635686099874216715041401408291075051185844101114723304745191940363793736914699926688379954093622375298406238097709828694651257537760343807962314363733111958959931325751069891065321328774992855655275089803214465958537958532309456476173166275967036394476828300523013987135153670799773399430650064668805167598470784380892230304341624108716622668014747880682556979858675262528597430091850279877604652976019422152699980308508282335100886593153296186494247466945604846350798717828330710093194802616317378279307006275274797289194409907272944797430432486324237893095255568289833120035352012587988941653507643357198429036401301360743015135908226431630337332038003244458563901818024608460703752403406157111322834130842414251050001859450952823078629335055334539893038805502135370947776204030446476856018762124535133169337485050628082027710681750899918596308959225310582853318444302303958805465785731321953930547737042006963533949398652780340952415011699598444346298866171531915392091542105766930553074162460348218867121807852567257905809858122768785801799435165920076515094343153088231335504913120562198277125053131996321734059390320527177604229848164426066766369717913240748289172851567302852114915796471894867322050997926522628600779220764290735890597663665236409603026928419491562713298780934474654258822117498824219722136793246045444963677287205189480461682751008605726848301775859227640822075334403641025503656066934167931378170710585714632779491328609043900727902253508383110716789825576786523312765813235237352746901411810712581221609412525562655949547426841732831694210127891447598394165265089762528149448188680278190683292121541401231163851179185767515375654965234689214470219397682507077630299118768870802790835722021518762067664112372829246861689561819670729264605488256969404819152142570563253541649907196677387315858167336640261491802575191018993059956317754110591881123947311406170300491809223102934153022089900828154850478260256313735376007879761897304762339558499128211590744265801591695179741230030406545878836374545872330658021839072405038546338881882816773689941399580093782871569573702803747603426142391336013782964038356483057346594489593746985324250533104326841018927118941600822311855020550642011128565042530405570011515266706768113745898067513659953940837537423187366997356936081247304193482442461539040819514810451753156685051783651864484432976544057871582229838064999746832930424941545354154256690672455094514569450376363507225778432598242840485239225313332924275336241477712334544129406803811476184069300541430481090247178617547668619110381436077310759910976478855776211892109953679473194467313308718308571628285394956763741053112772768472882648405921592997266626917189155828707843087869590996431431694980899993788982126520368961129169943019345925704200728518827809886526457358940902985591009373483623019718774427649344603747465889730273429796049508402939069753275320196230612421964356815241347077724175996870483862906309961829413468340935595545892700991182276081501463573047611406739761447868990750692561942047075493522116590350398036570749594788369808025722810678657655548128338053379435124389181438459841469840318952372231864326743563721067507286207638075859337984201735500300557291115172020696873073977577172444860690768238276102539813307230399163087984324521307573621009098237269169336205686630221199956951667778003834368729496147043151016867318352134700392591804227787582420201159391282463195808674528701053218059759927940271873305007034736554113973687358428857404912729095176341026378920475209865961013488494555827494568113357965325775651297165137500864959414797239762870410260123534410062254084946367011626458160709698215935281014744299281281035438733754118930288261839310646050524653850445624310171036997231697595968502134414089515133614272831989222443105980891959342566953494436959162546401585170796927481120475545678830691187868683751760030279004943717610257356469236981480776591437337496309449115483605654814068852702154349595331220206296559875759724768065909021925097208864731614384252499112149873219941346942289218002085563623747045405415973957896937626171278286206703256475233670806570739334355905077692054488039026870918164737590549359646199475115891116220044994187694380442447433204321236004128700774388314960402486942158457810820179428812505066517422577833660604414800669798094817718215914017584527815132925746361099651777370241974069859371304378074716624905351717180054093019397764308180831902068113902630242430215758288164889083637519898336246363749887167497576247242728238616013985176773146196254454855401886850332129286966736857566496056074153791524728844516620779272906766798986367543085533212256743632114227292515045965939771718755382423307328627097679015021063487816566650229702415308270149203400010328572397583467601499785598509870351324032171307312214531897585350052303810491093703412227889434654253811440499350426610505426677150840538411315219160455826846157278170189655227953343739304079102952727828272440259554658863135262143419180494980714707896163979161509673522140868361285400161583227261286047075441864437127430950290844180955211103055073316797862358164963652521546737093778797727022518927037322300986197269022137968840659290849092622522867049480917517362689320901341128769184170368440502565761387708466574277816297063024460557719960606883900247841754639647146754371795949923215609418037604453507691346773006764887438006280092490772246761084919588611526791178445178484526955260059869837966819329365627697729488714587103288384292310579694433500952635308810747628252447534648757430002181046795728453009414613053361022593066239014291056728582643184997707436488511048973708529482241266527973073315756935108705851519055891175423651747466697816932910460222738322997975980700944019070156590751590683854677260735907831653074704975866131850868719145376180558139322409707838725553872736552221225234474181550642982192876252133246566535797596852346392483833445071409512929719993115346038600954322385212533486351538300121566262479096567000858257086567553485751301041918073740106793422330550531393298530578561583314247034161919562583733022495241364901619449232704403299612014160489481932703251894108009542661843119202282797035613389441339424391207630787451718252974380277480725576210411017587507085280632468668039878837892654138944883339686893992094517313772815954460229514828541008946094082416088444302564848288392071918518749599310392084809600948317213872821368698300236278104228919443630521252662924417684425352164511143930259982195412147274055630564471646249538943210409906410598121866906466162044217104604170902094930450590748394585932049017338413831212729720337722914427350922441935357018733571493055190291465483003936714927022078090099387859457920175967998916294538265106868386954119078170084325536119532634571712082708073433395424341357834579613791611655827533991351642505749807076998245770819806000908200043632591076529863218154757931997090553922272150163672477202335352931160291792549533818309454000140894851763125626749430729915267284245824279807780175323714541471788798803376615508579543268003197820968339977111872988693940117555959111383842794338148596916321633603948346621331427801547710942017014085722439718174331969880494442657076569017468079697698194129171166046230655117644846548744964221596016853796929005237026926817549418155742590656661211085964070145718565418955534143367628747525167424565588326175260812806178624735211751906528505315725853185809364095422061583928183787186075855172703379927598757007248970844248555672236633576601794477655312228298747502735636096629425664138367290336007107685287109442505809779641241139529554321705190955807827506538464560866189562539668262517001154269202934827096033744494079008076654375009786121145861677376103836550589570971609580714678772804332656781463576244653559642690963193956936208163758222875612886664549956737121345653413845776784763299646105728678987128770711593504511515626503472884859528840592856249662671195487726061402884859784332504066127734121617824753053138144198126356419844802315756501434811271619919883192913747955940170964122594984671392269791505242646589892521356957025730033845620410249327335754635513165588785664967752549520912389659362993122826141828481427547891920467406580589756006997694688824267573669171234141457218379310398007217179444456034626214634632793254665872135407517277484512290584742750630904703655880349959985330941462691312643578776691424807470788305531384484009324723872991320190369077980455905171938049028212363684187637291253769170353241677675927328470548873992382832842872505334583565200296492363046656056915101946812863623732874623203370851833595544410881261299191129249843693186665841823897238913600862103517732935864299323541912497728677821440202757445512638981047784389283642171218707813354398301001307678316630360612888566952056762037645260388507737364325444217755655395592827936994655618290800143089988918081057244455149384968570408828540760563237255883492225070822747660705554511857696770494874839862330903663963025407754135202873555604328016184020295297431404823140498751950038253308066233357219864857683329088537928199314235314973054025704952878806275052898007518807612640760703499904383627314877704443010809116185846395770094028087281204277675907857587408005844253546101116088184143171615072850833124991078467196033079855525501140329305189958785182911643965595982835277100147213419901401125651961219568514911712543624436735945321814716194502658249800259353824241112254629437043160962559562375878243644450872928493498998135627836817243693563791217676291874594392436775413543010640936375257546068554197772874297649832279362551866827199835792637523516114813532623111949714216600635466444646813646532772278644765079771791056412011194296230274793217730145891551187006828665213138897595592960479282878191485569759204262371913170546979977391700376380889495005756789226270679221635573628846430475352376243065487108891769917646117275173064621275650175511100418449406471242014379312694644170974732577345294279718503392216348746400214638862695783930105517135425872295931525798817491790699013898078029908050665747417913839746114649562082526310824057874549797765705150999585791584251800202058404621209534399949462713244930941323082498028992030410073603990954276842775038946850513760291708881758750669216633652969506439286141794106601725761075684861010829297084458936602484852629441113094588389036963593898830796359388234771968723599798488708396567966067547727692667661531300212355143758578635533994793143420304442785609462414111034251314705206489414280374563113640165424292378434414696518854273039792447393409388039941709918788098645220426288714513392957872765789885387392791520518688995027542612720906963590928307971400969390646203589169165843197210075131899563068839335117265054648399130165569776795948366318564203874173936354621761365807455074854557463954789157195930325762291010294013740051945684844638842555400980428729271481786117707549944645115196318868717229492551641398328903442519133765078216912746305634030492307108876250649716128133462314219593984630553196385140371206072143319648988097377282526785735255845130714116954553033212355666954326549255448601638875925753523695693276854329000956948623939410262391283096200620487996732228786064412626916012804576264660025411313514990405999355752095229165362427691028269423379671369031444135473959955679586020615298691585003426796864717913154521323348231989160745899340172655808403890295834809502900216786120229456988816451666668997245071334626658464545765193410983768152019913009346811482169288652675185412180505855397713799801190792302051490266037773314333946774742963713519944028544107908237381252103137484146094692641118091281310392052300078736101255031790382880592616267260939728798165699476621610775142763730551579783664017523869585166314220533309604250540255224315018669128161721471777886066521111739204436111216651505880013877495808292489979560030969580786947123490004068518449040088150694912416690565061751449865194511611665827828143558649847314983920501106703291896060151808044673760147322930734716397979226048363351765882166717652329746093829224798574733158077113465631797761968054980094058612575811508133422755767104305447598733206794132942296460185910451629309407354530675068207510446245800576827874196435569693174908209276705511839203227258914806009088980648192775720246763491691811802509404806240552250187541389371220070133398316555054751861115289485591816051844107621450865237935760798525833483315251813417569594518790812799755010668813101664896419909507682813760644727439488021014071760372314685219456847643166225388612156475122644017895603511605563633814665648296537880444480066275672113807120934846305755732518837610101662423004341780409570602136765816454827210199818589398831039488934871901231897077553944022653411247472129063313349576501417316146599261563024959184007257438925051735521422974240254281591113778279524554281616677156239891780258895066138879421655490727276104807973743000177051135650490552901637328046070951494619289330284906714315182687329498372170673326660240896219819081420419099805172009318378507111037695954775792816263820174545703677553712127519238656897726603779863974775504424477780265196434008186918586959080357832819604259227130446167264065757689663784422112317582063857808522036109936959776197774229143931939715791423582320292477413699011105669027218525463484805853626685434361307698817079153669454533719658445806674840799375796202876521808026908416549750319071634824977761865868326132536311160462365315291848256211746154674733145761423398517601651832605558367098431643256807939209628713319996989975359241874479361044893009213300004886465255986825579121443673910273963579908516034081992046759301927967104579289901863029685272070673251959207878579940994081970824305671682415985383645053725541019842094827156962143554988333061596553400986044860131490121462471778956293422804409861322923175059553651694927467536434700970119944485690829839588914133650947994838521337504533698582552445555904150378309060287081510426173156134920806201525102197065101209512790478490337264457238724977820560046030929073290657619075968439030712493906863225547249490177660823943738055197490791797860843115461999632586958064031004599647802698060274521361410406902981407274958374462710981295237483147499641803088864561964863474415613387143159185485621542363297725891438336601020661660351107230021203661096370845142662181605487497706122742395736943339544213131893274717127423830766231453789274860354185502338525680898161985494665066201695924972177177125253192451394462029850848947183619990488691185250269216137971847625247203879319671757747978051889327281210807523846215260781509290739972239216615476301783913211228453541927292218185942718003197678954294159530344274940165971294620940007984326930215404687448482359876675059921410690538043075526533998552609177259207716434193930330099840973040854934523074061654207085742064456244854293017140154976445483070083986608235964865344759957890152537524442720649156087079283513978968074385589540974185398884918035571649174746004142740941471914386772262296362522708842272960742840479195057458205440658724637766911842211099115479731135572584913012173768562989473775729832459581286069834878615680892276110076832722647914802444548786695889424580967789985284762049495339746318656361701076575007116395402204164253561780950031388766557207521217082673640505695423699471819281930007310865635953430164619772046426098184508283319978052642975010683527483150261581907969207458542050883377097188983474058672290908072267995299066554012913584478338503194785338301683201711684034501654213388468644867239575958305824190435196099501695602518560452890155868470007333913414452292962363653429181067938289024363372053099559787497928717779643638484193771257775106397099447980107487940274793458644794457535593804831538091303311381584667096823223618688370939272820447596299796198133904896277954658126133601025645818420933010019126354054149655230435498558771785586215205037411304698018195172555714560386009381787900101762076117563824734027912762723884177937722607113490440477690984313322513373193741069874181890540284411095560440003394055137546555581236691081829223055401067611910802397836852844202569978286704227403467576317663526596291960698812180052333957233101902290580463911642575490195732704834360254019227930668577423995979501961291659302339108997063964027371722313362851680626018997518938917214337153864162577830599635115871466878191295497031422257050030402133408579895068772809696344153941394732080767237297172469299244691876015375520370220319409204213494718914737166665516952033201950103575053087305137460675655977397236363630084026793604500036424817457727860389134512138394045107561357078434820222123617453293290013378798651261439637106925327087478903625586310696059288898364976404531928547504451021889771384013730926540231962631114725405150572584701764174766273938343942604444693153179846393741860847971736341980178164559786289090075531100890547689552940358087436065834507573950496295101950180744524772786078603412927973888548446398755962630635773011536572101516872206135746743801336597275269093092847729472464070060299589531031623141682356892530867886584671020376498872497669790551073777991721160255997694366727978784744666838463140340041931347663463747319769434179601946162597641919941123120965957818384260654827638278689813468106506962312383674304509005534435129172323500986949737732941658686899609374023742139942117614321327123111699292888176667832179231552882507776543754574936210461207706528433196541252739366228652143961318049274330649706507462667767692928044437891146618193559646513011485669069558975899746529294065041521711507071899902891606084747451671227456763886742103214379629591637981580266945382009156217782455356068366561739080413446569632035797223593332823406842358929624317334452311462497574327971582853790570455527994575861703068742555431174888618967000922637593951619283676261251907117359385324444527670107598404496028653724536624331036241192588004514411657033668753168514623004366373975827785888054238967756224841804479835956380837966798074168582065985781129609970628840467581789827664197992902296117510410746830262252038857145944307437767690537226514380014771180505599865780917712126763831982034063023764369353615629477302144134981363243734512176359990380793546248091998870069937844800561664019549221397958787840355506958445349652852330653622466523159573181081562540749113197123617808544507615778953376095876358911262201074335781042860688407751385307256284133932604140084749158526711560680183607478186052624265280623350681791878187885983592938054022900581105750626291320508622107889639212103910196273716652211330285961361525647074028607317753511821220682862715109692406964153915109371387078245377297608089622818303473783788150566130201217073193075298186959113651229949750401451904373006227132975397632027182978036885661252850211754424697838014059622812522391029583049059110587987118371291255120719633217964749925181976170209223305296838148418817222578744612475774288305219053815303857731660966461090049188650757378389283365458990681463247420377252587992591347265999238322964360885748832717122286095125703062075790720497552183206995643904531109628818978437729982943346162534528878689154746430531350161355415404937437276146869371383915366457732431872191542683339361658870394622018412405098879460204618634167784527837995061808493518390642793731965161464893165166451824340830277710175440703029505283514296953377868483925909578834775006846900229354688681972948034394331986634474318614171355554298063718090769867811162426731108470190409206097796687166469751447899366712133835305547344594076234629614950951967660965881316794993616006140980860911194381657190640857575687007940075331434117434673186969454993901624992233576377539630891577905746637094895572666085226911432685410489512296803035194310669999236744047725638227375504306255381713643005491566087559442169204231372479998332845197068481259205316287874705192844363421261174655686634834148305414179686585670965479874396113074062107555685960936949569418375847966329316634835974549232175387697702715443765285767552173236927603688327078834306432410462497732474000533134325792740600673815751833696235543352124424666956995745549559918118702125423678330973442374132061946057665122810596994189586187243970908575079868428200166175186824725122265863652316819274942999690161169378192919315296467196729907609615759130611291600646217125599624123291762870302445734885061398430396911313075394013253338739146325642261035576597143232626322561104789318784737249317863661565989258327556930979887697905086121934960254442028466533091912693244198731601963493526058858719209116687580516672075912350970403545708406207591976178650201064982669616426846793256776877696386708986058140990757165983033305912657412464888536753071275385476430404639630304764251238445206495841196964594742707869843948260497742309733034391100616740808633042475726746536813064844103886037582555805823406490907246795262659568329586512431335488411271088714255233447571204676341539324304478122747410574482370042304420965607441639102892613194346307692678234939063984929421407170159761280265615017695369400145103543448955824690054129282187240198785622171439381724523566704558388849237943059043455328509710103352830164189647018476986948064263182427929965171792786726674451847621329304076794259382385728895590066641719262645326624332360604868881478482559215765859438384562104104623395492041908027385452521199431590601054370060282771092962160969762696145178949620690223314296419426199005133835112345051402777777343266861259060633033900959282340151272693402912054158499784815880330035098628266374378134119396333386106012876429929272685993729594288396781932446751856055941751268284831363201027535256325834200475349771697238959386361339465227781432312097636009066784847409111190785663906117435771563802661700099120668276032549084048489685284170158809422282044546496147654135847919639509101081971233435008688227617878905904665724174711201306749133541466891292763555877138258781310568865135389922979383438560874323126027317149634812547980846924012952863062103549855571845811518509409717911273936128292782448786745822926646567110778092029371476345858950742046080721811343228237257581745737116083631179225339711421363467076346971285794105633546634632667134420231112074813195105811746452470505752517940669632970929074032376642894017821196336606208355082577120000646785330192632883488012311045685845785892009774559532476988682438345541362818033417882865579948487069049269424011090162395415904892391448761829454774319639144880677903966669942122401239283522494888869402844489203344351228977495100697820772512677367037926507719630145861761827500388743898134083023048564855853024362614965336821997837849511524506326462908314779907658697340311730275361273170920739290637393892575755556640568038217984117948333174087384572581157224683781238621025051289933803322952946462106607188600950880782151385149629731053848610710614663105945459573072133851714768829360245479686680609480017346392166251504968957401411591017468468467117017086772279559110737215285445114741544448491950096767162534373365708686891645395329327048142802426681611168930112789360626859867104105597044482060436809424275739903223976214189919640105847571873060436705440070131927109105550668963843471178174667186435909253071740190983632677101431338564826426000292809732510895184881405011443419804717916365898528865600524919924559357553236954106936620004182122590999789253911111424463504528286322522955152028646601065851434324600165603093622746276588836519042589193359023679329387827871530700311993590367230214473640463992248641954832079411718002057692199761379593695727846305250596029981896166219058148315397523507716604401749817269177141933520556115370595989799840294202672061169866481370623270992016135230751498859163700164335278118399026971171380364987668075567836770707081637311906008500053750606419880469088965119330658261167743019386303858492922269101616653565411102974187918038048286136081494062846022581409336685396565821914292927419023665238499703196691843365811571190067694443823914409339079548506072955023054418029420252069115660630514709343525924339849287494057887071677485634017582164037341205361426696499901062479186795158952663932190045503776719435537639048456450864053818176714458197309233613535728080721117593537046683918023432449659432167352617210875530035542028480655093971958401027969152341204697960492700164463674850589726702767084015347428773564466520603689786574152399485807222882253128495389754718801483671748927336580763482730082384445243394213928401977753745447172633072736221296176646100661076817306372188455761742680823011892417142794390506672333943041465970948508586439636895039836303351576807221111665778084784801277647002510121404766990840884300414454144465061727193570076182977110180338512776509096698672213644001959644964657489494930367211566959498159543224949799845869831001709316787497671882121938708944650030325045271053382392289947557462259176637505144438881928101497857729783917538552672772705142938258887509963188468163628804865461340783123079891114695208778780745252219897907024461648958042604939242713182670783473600524066952463680228038744969464696699891799598756485555647452316539660218288178479715749835443597907515771024176715096675689439380266890080901828000341710764691255980775133595112927496479438555836405503669200973016629516252717459386190969787291118203209695727140892618118595955218684383589798416221421779240444599455193117356080874722096314825348940847368660356857755079818158517947866501061420214095722568611507415604888762914144890159379814149098070223586917249070227556182083550745441231132256061731469379672971555556263192347144913075236581014910504090788678795690478756871307217028996029184251896254200821647266321464696587478124898015189853894023784728979936534482182769107410776190788703872395863623089444024808678660315625173881155485343676166037205079664708430713260464178544721400771972189740042363169433037876504669531204641601673594740640062127135287438491906848002530447571849515387984664190035015110553045452459741335559499036568703489212806304452089234234954639969614212608862488775248087417580926104431081403483880774731244593496114432661550411891677411078943581870039229841407623309684567661105271526272074811231805052944789470506989660578054949260192497763629631599411507525589500297380852401733568247657039502678576108160248306834155876851890674627424551909580969989768322602138724630665528872498802274180193031738633353858988891111785342421137705589170959882164783210704389769852968450192890483435001223848877172105407876539230800771744877233871934647821713030547175158565235136359220773649818987524822616667711901259246612400195339787333229374372854524183006271572903907530703702296604113729867333686484743290822530362607475636281540539597441823592008324876629636951018263659621035369827520076353868973373556148401752282228795417447219454694807656619750594099848034083559668712204178051132274535023960038623504417984682777997035408362096106452400468299584956197615372756355688061290063546603736771571048460278261650305117107890206027362055378477997496794653890931825984133227634538529166832935763594602866726873690679545729690854596069547702010809838144506504182693079057762800421723943904759293262294536744304262910457574695062107569144899876398013106893166435827824909360783810791980524722578316066841648860139332356269706928829548009388936814114312346628947286624463736573191053351889015879950302822607684744186781267971294970855517951443908498046561700892771142576979544614120619148040356773022721918316249791970079299745574976956498742583591928103231842666088257758519578591860221368653041887203454491429204287398668844397848396714533274897424787143879331476294542181801396120379957414069116391923537110615542880316324378329435928580851327013839218154266929361642404992051945105409397493098101937537404533132465620051389823831741215948926762716510314217361512716610648072891244991445136310653665677288795682191091340862911695556418508253909096590855296805113397992726870764916667993479023791029651819996154867207249194808665725534314876594958778010964980040063191112441168773671857364858523413371767553158999370095667975001065605884535329881864747079321853372971314679698414162050171344670550361414657805965620074009893421366064600964895037888822383020109546883773232890552393883043680887780359146177416470846736603967476612926937701698690488262456943828131203468855453383434848831229688873081283734358959445397415378643765461334015241456745237915556157247995785930846116144023344168675741095274067156857901960758093000286197129736554612579295325703600006016414405367542979664119630857073241418327415858263470163352501002499204619582457030194147670304117900255258188533040191182409745888533892042198955719419787075967276873025033255085300638857978995231940389807437776720195768298942527291735375333690924520223130692060265421689164341099549020732275787387911051452081215100045055872003883967157627393056898320198051129993192009808242444068304369581064208094760454369596839754241829573029153039062116485341771485558234953241110190157292746225044724858467126355727254977498007703528920900390052721130413596959222460050196227927798599881987103476215073309035907683501478942627564998771196276046935195076695915754123334699537597445841183889909035848534774131564766397779975648147372509052600132225038381163202576292938565548326321157237383160151036697934074170455116311364773888318118514291430496535970664173708545059338923558311318181735116204182124175084749581505115409083814656004937489138876036254818035089373702435990445159412445256644505804726092859074138395865067632280793411597225683873789827988447070400970767088553172988863536120644725022546984475582547724630655788883858915383202700082903638594201998961024314174405950522130101428342801531196783329945230243002095079444170184058211139314961513368531960957536114601484341719376486067155174497276179646582030243252028431327038984683852484027881254401670969274494736878558502009179817265071705210719290592401674750391282240882435928240741218884566773759340016585320323898582971606790181322764773841470155755870788482102820598939739729277692529317281029948360738992122597988201412136688201685094191064524712088950136419133556706631383058433489295503972083394921141898547036979887345627134324337499416170428635636687743894968024269418678250279764903139159234448064892123818839223258527794893022283373922032727005868219913396072047433485969306464618197898745397649581345607193023980679476694726361029580233025823663459830364207880951242914463806110219714366748035937943923497676176245804943031624069871795926378731120655488235569135044283023871186227757870836331123742206609301502708604926969255962637526592536400775282282519964197002970215369973806069132818726820986692998676387549834330816302899222752614477574888987533417783436386570432755265579658456697202284181306237178723955738306381805284586831626277094182905198696078572757662385354772262504985458359277883444541580695167397366813410008651060814086424379155473383847040018730114882436105688725711184559079778403584195015903214762908792831191811802129344681341894744199180181237863274073198962429899726777748277924111809132951189265504222366863232710912489047998027854289546531755296112828397070802002316572202830112368133272347256408238489589800956387148086907905388094510499895651198196432191260959344920773487042396903168511365250629511023272625155552533904450525711436997288969600330279558383317476720310801653202667113405236775132680024874629047624595936352284447923461901754670198625748309992617260920151305195201869445206519103849483530370726112191853944535411163809747837549391942418012440743175210214102883443565313191711887416175207317319030065221123342835835825082195026876599999738481400543619060614173386400615251796541678238091455172769697434959668304499488687228214050612444626916985398320167318623799115013555539853411888336092265711056906549886467524984496236910480656228329056663753242658445064067259163667683260590890035748255805601185117273892102444137235378129809650779054566479749039855476844255955875528400184239535160669855589970303142788679087666392864031928427575119456541712923583161807941164721619170840878850482557854286712190759997659154743747743785983960244324384146046855059781946603830043372703479069102143652847258264041147660498077442392038795172881552261857424036759052887472067534342354690334794919763631035258873566191266901442365791132672352084889325387820270096839231772962732821667332767898446654335341703996684251984759220750542240831522072763477408408361064096314685692249721570563001792997663835035828425811351119739719752566382985643331282999436701227078668783307663881108602211579605071845334749509532651022807859102072228931619211490372988016792781426493791065312007337422890637145588343984176288033324025460619512553706447383497068066110290279204549627915205610731480499231267102063694613930533605992086502449001813410008867771624726135315177139696241432086422897801373566085102770257555662295619452450087260325262246012854436678367719629168587163239651083627776370974004133620853453227034610941132866069493439609801239788338666801553287586722790571119716059321945278360263484397096231765665154298121447036426061222066904264073185398690247427780334327522636716524493053151066766502362066444556996302724791883491307523868183430692584252127739971537451877501784022918545799632234456045591234144135378433199194495310813835442633210894378961812420498427095132657637305195446774932525637752474157625712159082888965431747775147894002224962429124934725603214569036725222455461742653758389178217804354017860773304240029356853268479701569038146993631718181033431652158218743681113936223817384075319203529873386548808569359969643060056599013942131788373016639785258111564386197614117156016724932524359415166735566623392083214692904864861112198605343123605325187289526449307734046117819502003443974219536681813472552173785945299724380943267683527440811397803599804585522258450496293488578829989012682473867848312255750002118032922679931650146973891794218931280597011501702565224481281143553294136746754258231440552861201178687620334094983298468013587907198249437627905649356319259809706102892355101497108181270730357653115599881463882989900030264774894359334252453661055057480700715985813054377257735721981000613900208989817454829291221342981741114518758941195253426558944763722366405222467281947581087032319450028636110178908259373351805790300572668707973113229826866347790716861971708124132968848734423401487559142760475503202293404767508336281587809878033761603380401818107477057334225569934380013752915715816453159732967002861686150942611186652513428076937931799870687325227718262574357428686130480675486153635480774297921493605798038768107137802787226999454536062550779114785049963317132719430928734282689548583682219133795141947621872258720900258217639964942315486169833143678170448645942062735152427834387962135378280537133621141006210221961881551679304925137501376440055892675908397039712155827360506166573056752356388400257711896800335660595811920887527560516265885139500225307626381246224065843172928592992617101067771656925321847528792663129135704452505682858589869442082962604401823066934275736152015281394444593172734441149652134266261153739744723355350344108691611549834405064653991482470629274700601913847179571958723851673784469893418815016239668284292924256489780517495734583894468992258901238054337890195007853057359061353739860883980879435454961499269329875242423041665501431137733018019913399405023083456073629609404294174076529327493697607905019603034989314114244172766570171789714178464461219780627649229795638175252496671566490357079404372664923817626189670601681974469938089681799015655618058253392582653130962563929633862656520944148347608182678239240486543242799704750233984221055646822735498154750299108802012320966248079895932555014372432538635604012928609090892440021178569816376951467686249734105187700015061506996959241833772817218409104224596190040494100438068582873829703930310864888658888435862237311607512194222001488636632338498162833507433319629359969565553529973550592094801689175600106533574856516388205133034107807415889671278035250078257536415693057815457596406033534346572134468448278686118623203408399802438792355185865835088467085392677137707422352802917658296859864725666726669021006428480127949849131755207610746765961777125503636360355449550940788640412155674301287354104288494916221812910993844711550850526085934144543628792048809165513797853075372685660757448994941778759370791411086507440500692203588058757670878174429016580836841407776640515885512900559814874512236023201147477616256527020016594117839993935786077941365300559305597085131951233871366773862556293930326522342356553607290267383796246362008067184461870139895210658468872543460344639992136913442971390552841133227586019923112506893807675334357813645838416773839158683879492417096737851938545644172927161015773555445380362037389827737365179561145557040957288934554001122565669991263082741168828976822661544214927701825531099181260073230672810151007520158138554294980763069680386218483507790340219874424868585322855632972874342170305961574799809739288050638287718596259545047629245874325994442823051282318369562478566396132236741723238853593655436533020265678555685248745012525279958271090359863641094574996933059010358778638397566312919160167969808410949077648940009699046063278781811381642444674685299681740593189551171205565070482878759385135231205161053914110134138877541076870960060162923378723217228691105928904527317015211848209167473337142783192679084503886527197317090504706012262511239915686073554649479189310688282018585765323457253879999345233556526824518958970080321298453424686667852107280035542545025405811764112301631948522521008765711129742382674101674596800323342335256791235251756682557577151930136313830154779501431803807034544605367068363111490809639915383168164161093050505529237640697032108573791248028316730750593526208207603744748669046694254524633457644832371629105510814292695441903384905761233944724073430842575576309925442470329402511535397979823820517690382699104799445573309561679062489348011157524671104305363002596985803953388592594803979958364156553245057899303856349628645869269238852465651838529633957647411735365762220773882197094421222486166398988271878652634160419679653001749086386438144727808526221177595004856923787386002043459540290287724344033184815899710638016268882982256339449126920113360402230145761537113858978313295743399046606120011144685944504892574523136677468659823925665254705978696114959512086873021825742975191439709169824626550688611810624145836583346719844784053528800191800471330600596706655362174300026933580944910108692047001580377835917013524172236027871618050419098898493817656624181209292616747186827907885327942887738879966572835977077473139089051565441400685067040437327323362569269390006362695409378868340959081335752375041980885037950587184624074126955446570661075636966744468639771790208216590396404156576284342114225873905130931613133903129580430353332177533940330104287459439626406138913665867942680644097709965409187267149980487414552026666598628107085175552784854011729248433409727241534442732482129128476809214592962176796135113682820656899166247858621414089985907598577973359579406882155941344641319924407517357040607892612521064980283200058631172660438164026087655195762018375010042374923556743479120322200831063608689006556430445033580294494681738194233335683923765905964374038596419415858965974720467018013078089397014992052575644285418739710477718136683198891900420044002214236758271470249134456866715039504853799072535802938379177296497980634402139587307388556847837859071430535968247859690004183294983759707250031626536311678266701601189881522897190965741911986970259182095403302779527507193161050079504364121170384219685403896681298984352649012461722814905509472761225346761929685668113947113754408838575875726005608320260982607641333666347923446047525006812392139425444004286360242684737643501675939346207158599408600367114971875911697745212796832071188860318160330653470073934445859331515326716410021440457025630509386331257350852209636646994308565941487797010403889092947064058175772449703979600238157883407160357279773622460812521625307751324751412261735061390811088832180892659466413007428720767998836021963673878460089012268541957309300654275137256847112324517325666826343401786962570375275291951696982022996187177651245417740317962598033309248819468948380508906032042660212774001683282856317394564335169676885129840430724079106761893864881271667834415008607072037885147742946434822435456768983646943662316772703952281355379401985603776770015964794207537368601332785901697601835862387610693458039554701250371140834072773714523628873039234880640539767509038834911290168815465947099710723235066531486648787132406713106403133438294946321421596149720058367288489306216514813462120682532931367376346309193951590114551152349459477904956923385169400671009144124310986813713174751201988234101413452713944357061709849874577167641158065808754392743133425452429948348561546940213621409558175008894016217379936036043715203594866212718591285711989109234079081140372307320339821930837466766561269056968620897260551935325831376437044946137960863576304503360377151430907024245612703929543272724352262928750017780732745818541806380504121890733461100530495777431319828674819639899175607939453435024888848369947092666435827679991617490349098717851304527075260569791905017816940812723019943913420309745124469420696357087824056977002787724209675252695367420376791957369311000390211755709999134218410723968348237307506998186778428628619827663552878071187919143859681479755991990112093607171186341465158508755102484844273002661122419145770004418342226370598634161523240422163012872672652586015468086436138978586670878068105683678678405119223845381616763528057467231260006557259104014171410234539586356522367312563117945601111811689421230273951358612654075717065370977374663849747040139808794754868226017683693299997559676621585003306881920725553537019243974383954877736363146076636641486831222247277686100704534763931172342073934458032026392707548585585926486153300058720161925106641873942820730384887751131159616684726897514144300079736143211178079006796816574996251349463188983142722927040018726396459452073882899331966840735282115561602565617577485308256265263352656672924458024218928802733997304800710542925635861597548024688844004122531376979973049989487512105801292302940109258521460775770832045849183705435172876288711820556941881130136904431154280937833344709800393962818511735997426034287345481309113561349825543960898178665500598071412480999083759892245319777014539312977000330034267826065700082613749271358955971908934078463575569363325384345669181250022280558521111201726206228827047025342055379269826195978953778519928625651565829784872848941234106274743382563367033799657913289389391888274248280642816416276720945424432041730392297751539470821470938185297747308308462986788295444472649908001645749076617677809441934376535269674126963465185918936629938044215250953729556920896816299826244353666268480637124890164691204824884064638395460773372904766106797461941603496855054829311035288958083155019281913000029432631793292512400358646625427044593466762206408180386522479707491434677666213576409722259531774835365244407303044422322438687844537682422885932691052737728510290620243844058631505928667026974496340899790754379703952658225525486548503470307515443139855340308450639151199516882010461071622785638744670795955396404397476909553200783428587111153272395032440683649704243712173186640926414747324410888115927120106874322144579837658273914116077137511780951519359040054114314299002166556727026725530565005855465919845972528632265827801377409338772790677238778126996361316969575716671728307615478453510688641402291724827900271137386770498182590750302574283512990531024329327370624692936174238855837652610371753040738981518266758404702720503611098525069659238317211140678979349248926552570036216994776125375852227163928091466762540173185441295830273678265505967135538409482607892617801298655444253050958716330460583078109374042857777266110518516162381989218581809715591007136442638156491745477515848477228535221512188492861798549377497076774262301019202810779866925985447537244385296976995099204594940373610369244244431542626827521478261975923821784605085731269047963044355560656831265312497241855142831616278604233754728042777646117337120613686417516612161893157378033093280731708027992918410221632852954310048954570083876861414071286239480919782271249701972884312206997246366845317055604250424117729145778637674584612244430865953361855796915135002226369563892304811293629374180358855531565880121291816498755648791746956298239263733238213955496721259887695371532421010498736567268870931420060655544600258581061648772582738780109718283176487300202362255631081560232277111586108623563665205633534621711507944981117859727280107019319814475316332277773565155483682349723694407999974633223646974573884345394651496781782784661742239943186429119656381311000881672815592552496628394494861577920103908633512760808056982308912514714067633429487319381535482530229646083749999816444151706190645282936408339151158281122338833533463752417973581583486507186696908842802072279324904638761943260471235542423079573530745701510321915369570232620157715019008958833248455826209918730257482765792973864302934009762821671588987743840858585541842281101399083530945574090880827440459060227236753811306360206007918890828886012472052586244897218956528623747370542154130960004670234532384799733360825655541674224441249711683700578406641144987577384270461500159346720363519954164651160952453993981717328479867853610768565676717255701308903318154511711701835902009298315300364101880364951500797521431236792799595021753400974698207642437311245737129651911571628309074009600021330989169775712080813334920790306801364188842812712207848284083205524674149834417385830869848383557405470365515219572391241811352065666581207936584692489517665830455719446575612433115061606588901122085399764483358459764594433718969263942412538394197601683327003963249276997884073092634861395572436052790386377427905407192489067402377735610798215954968360328957402918034649578886094111596550501577497936210124761142866849950213137274575003316131689685049926882943754615182925108948460049390599096024528414716378589598389268621524727126630206272925983387791175377429308452925901662408190682972675614652040320316682412050911413323551691308637762557403312113226543983377296780025762372548576837815990132981858233953026780330165176938218339959054581383223362257338666448575523760842973874936629347221259755964680747021543074248823486009904826372426350794438192633398260345666253541302668753366666272133190048606960637290850368313334753977172909959970983971060532804733353663510486996393385778383107895571083061345330363930582377138252913944640346548085783543026170777562428286221494270560901599898177130660308640813800408358543055741711136972563332050231111053684274833146232170809049412341673965824308087091251219026348397983446352414654632456993687230064074027960907353030548964150261295922265783412394732084807202287748356754033202882454870933801360591858303867113321915793784218155118396423495639288320667389220643452208288464537941248142373823785940466059345301823945000676903659848227288242180789406067886136768435708596155839941313154982142858077762100461666417552912390721835223889063775339672840197046314296779038310652767592661862007412803445556988363356740902805902177661433435484920604207624365763019373786401762884869362524872945668664409266521573318091376210532489289007642793328655267829475472800774784462282076225060516195154728046636770441675464553142424746097475607045761007150091871343659713297478892715703116763412526633822585671759528735129985111746815491351365755627967173099994160559600041317844473991818445027660930175601495749477791613932002008629529234765370610024652626103984910758380056621852795961197284109276036653723709999948304280446228544087198089841308734443071639968708366508898260609275168176379781626126991488400426234830260847379745601622833944938224679657312881100219587110154987914268065273269671927539149335315380584281003924883106396855814484994503257715465062927308767065014249937614802233979961071975297858663828618388649829710759123983111193134615563135308938802467118714235271063135041926740052917102447759900981970331745401216626550091930615517076558986976540449213502096979554371989459252085355503513043464683932122321866996224926446946717635881801094748073746404744187154114074381499366250761649220477861158622605376257854446045973475316156160106610176386941960619667875469389103957067649616563693037361247122973448449633543743634798281668275982179775699218826191488476075211867021075052417322295689499227280206104821608764773208440551522503526938020112419177956786778631402277786592690029420953491260174158310690698265367275267144810212753063037210641083361666599459681857523777123802343443626491527008257613744736045186273741448087260910300380836889287929904455185810332257074490198661789847330423803673183661022335774074086114117460301972082745778662891394007670920346122819829241381643510008817457882079294891475733833403375969483065776766604990483984788018429381362796912040121164395197995236474991339534797545457728787660058121964913831810062564318853740848153487629740310736086198836056386287658607510770250433327766760139352219600338860868055258357058623744848072642164439066819944786450011231610587591745621758475891229999853394787397854105996880051591314053600819666583333251080026598952872691033971733465581322582707274931005971608730690739001497769237642494524468311728333345270488388211571011718020570202049717720433857382157760780051910778690780148680216272991738052540397085536262465457206509833508380010284152116210852891920555286523538610155973448163529050528634108987976303322068557951839464354219342706854846911529601695336251260172396123491422526595452396961620973203671353569966195013194681124905728700540888142964577548347183856677214752328940782756242721840686765926632323621446520187058862394545584397214146851086786882178559247632065763044903569057718061652017331648821684702708242231060153921073921482683314988620748447308797883328533115114531026984367035249429773726546287712555436108379663839994593488142626383315930082629725732169110912255118926275381884405512762378585529203863024979151989279224541381578997342054181980899055978587093390547286373079290269840413267677401298954176071896642255058024166939367432686656762743179681453850139701008482185467739182537608181446947602349168773066208358094334934542805538602025809174522842675607338944622527405290045125929215694394662364562128866691076506664741373289857530917385919775778142524761045807174374600907109102167897693942238816783637652711192725631194207445914660147136726672774488541728117038670651090142364927819177796558930529708718599254931274362609497029587318036686111678121116104194651069815017608880558752325782255579061749797057673262659127253749886207103720366860013483583226910556300830082916210936480091147623362492187863113813323298743225691991444155648857521669813064112081531758774484506402341424466721720415096964249127551462695722346673176205606655439169031333114365506364216343704779494336227127758430755211424235109779319984354246523008250385618779790416913934435481351347155347334475014405735324558554311713281213448732717351786845143763495520639180446595882337968561969492454527927944383554643328442796892688101030831127709902191427138280147252049126387592849783433822878821296235302468937338263702633457870501854415444384429493073183959972232262683615365132081462224129519962660798161736995876143703129996343408918791308049842519788153098552610448182045985954988993501464132669612927912712407766967208401323341772821718732981374897481362712632399916081016095358020303056255186225637194346153539332487974459179468066857837420810338103526773189888897960767060358971261010551696541213825506562098991686481276151277654061231520869233265686529292817901862770753811779317198505948272276382990710463231288957368417408230310885299317033255405754149251184964738525480033222864376821711906725144880576893099103495201720135725368518251894040500088370113415170174219535842111055847596160206557241791112282370736076968172004802126554089916838918383386804815246167735171782443795905712991898950814842809491517923463693184802392294394987461341972669615946092177287077957670792688802165960403407886041078171690337508201708348300973662824097375331326538089147657408643276115893603557179541136217309581071133318676107448615779229807929164763088954383663759425871902342195629061251841381103901672917823244097620314034328460539891657937250643755714508995664265049173063070222931886333961195132119637989447555409191777526168414072856983678477904284495750531535179893723370526387889799027157021068103357978410708661881458956257905031283076287012803469392231959899521024427302785645677738579433284450181047987694524730154295118026984938679000442020851798636170620063681240906293477265345996883943663795379745426556889412383244525382351787566034930761745376901402081324298873830715006742673161708105981955223460750410396689308242443820118786869698900185070962865078472027190741986443709464560355446763542371241765322849224930016582349631279457964676662445032256253290484606266840545593006914407562762040512215313540537869057577697643260757021131250563714553018298891428574294864999955146803882594631890276606052584882039161996184547173560041412516012503328429817774427206357560616427446659546851648563337587832899854634016365136034837584215571079013433062018106237488895558562588832978198487422574541769928856977292310347658896434323084639318101581693344091817532804882213891160318022081609775536121996239201944712598150281854820235301724956800003000011114466312060110794834707891917125461184090021258508613025018058682591228311948803275442409849397882007834161842780802592772077530009331074757837853228264166300165885119527483924775289520687569399271029386272669261689854186947940879275516866322856948929274510921164104095112352698629399889310664792935403128104469668853776770217139013794783387210021521098979873475768396797146578746094518779281789677789120384531765296755410821568495492703143686607278519384054267120629640695201979264219882856802185474419717134629358511516099374270327173591145133533743992572341305403391165254055641793477254465896907599897062804051856386390608993630054893780397365987177667652980357633883918588223982820156453714370890098190060472570578440504450289438482190990393512479516212117996675994761412816600551794499132761706847641603128323466176805234504153921938162005522872007880267899317710864236075315433814833092372432731205345217588319135796191194093983307318231929048297307079837692228526234661420825399742796317145250464323423429695560937060094297984634662681040001793524635731616871944737346041001545623133664340703844291755458502521739828070820446979933895665690143305144562539964786213646921434249351741094038213091933907592940837673308717071206196088817071327260184970029238033686527754239128850927681062685429850889100861867835220632343534896503893532583227034414578287495284653377114194495959498819686043999375137743540239043274664449716676384575222526437940096835762090420954302545892673760283251263418350550285992961227230045592045010314579169813486036368149125495611417897686614284327836006138262313577356175649966371413161116624884301326849531005190499553859645961725399215676395522296561416488970367608451677051120375840625020848702741210606855501718724506117168847166507846909324040915349577531212087314828450595581194016543065892229293959904740849546684646974900634999384179476291364542873468362335282820074773077798788845167495293060554553279198109138865581065385194633180878568304109905092602896990283910016466141517586695501115500035466247609658658497301226970091331594053868212152634110650636469490615293861356365697719154198038988949612368504712826005760261758164648051752075242959837545466844710455031044321812878316763789760945892979956885893633720125948270653989935309978721228896426723922034841056094151288158426138275654368735101117929339881342427967503303789992181510599337126622215169291515448746583909107821989174660672436793739975631026734261856559260625919476505921817948267667014664475613183251271405827422992511086890670408411558394023226253183848167792461955262948511804545092176981518289740764615472208688190657265763422606118588155516097877145583148625448473229566316772654033536848234696474970115281688674982261455737236980811317495647861197642250308026594767094531453723954998044988090214352530424310821632771756794748068195665721830433838837617940456033484090170173949951704112216011427347201850803593340065025406693960649670738644159517263443045778596979933818890789976507928051564698050106251922898907434919403572968076980108822749937060319063919222205932046692004337315466197380352350848472704754613457540044931181465507789892008490329436133030137380660912788376533674199633599536053088827405053662378900551845234175272293328736571388434862577821210883748064602428777002802648159348468567296062022119554994941371498658400099566800749488468191117637040286939192743342729735747433265063196827996113309338485868499695200212441697256267890204758128334286640783867638479586978365902720971820705637869122093032261643723389086384525426266034946512552837304625262482740465129351911458097469991562885526221022342072955365280106679996548696293915170096760978335071911770654337175241056230543623552803382481706138960850344298347693130219666006300556799755484056388817274478417885906830073725455823203137581084321685435655528727497198027640522928037328580938837098867989526531606356800278857156431491760757479960432142605552010210723665199893507761880045937277907895548652937761466514187140883411402790698022538891334877835374925971835244631734366623075592110344668113657828577727200199315313191609363471067233890799766438225940531814201072948573478114148951945966780461024093471606877386751721278360135684668632131254593992833421193459057052744353718124693837879794684645661858493369350583604295335362357413166894309602375785359623477809412557730405525874357881930351377212632123384111420677226528567972952603209896291210597852965535491345049321393129970195675075280559109467774810199659458977876797668513933769968533694867120414165748534551526826149932443605015300458503944691083820726969085236841621990600211223401380106791743155090099133476801729653983618718439360021754578471778708437062543060787395620422131849118549622457486412161786902741863731824537330266874729526385225457961206283491539355753919275545234419682214786364164091992579317372829488102773437790638835537432364302828542612143290204722842172855619553420304024277686823615760096023853161585192420204259286845152528307763712866721147554401100719040366783770453767350789059124485528543073413493794544119868249115878973132531773257816496370026887020540021052261673421475500328500930565019366206600901142658746690015541688477311205674599687372142634185021693262201300583439792122618673352924404547362523491124394237642015838861539103578435798441161741370136611579347606092307265526339715598666932498943430325384747847725555709662263754227145620905999589052091400650209508385706323501067018503951244072564947166954440611372232529989213615226050792429884187430066357696858764127281049260359916298124177173703097068950566287630247880024503402074606405189770958635253661191271345416937749858754007142211042835074459169251829413889712551096610926965842477986894744782373228624525493288258767176254270557455844462660076115131457373273306943798467977903427375854297555963954087055275721285860394543765925738926483781802672175895793414291931489528506001182413430589703988230665245279716694634571788870676469515652239534041085152276741196586306005431824835899659759906441433642523954119525366528442682718951454467251341230857906998766974090873217428449644411047797116509366622915093917929031601122526853902386264926466300832139918172920738110997308688167580447280389790323903503284768649282343284954635860388919402479663639807776523816185512039202928513824492390024023473771229223785231900094515962712906168206836158035092929213213357691246615639305488362121527408525555871958983016047462360404484248181163523034944627066258622852514418853105385948302495942804645079507932282088893965406561775433285700243839911736914808786706519458552644884102659387511823264462778533166225802976929718744777562076464299683576726579765951125008866762384047811572797065726661113481121075981494278463847431547359965757564842109249541867816531275154133417657696764290445210250004890616907975085236983085437604237727696225924964743493564038348128192052413099642580339557176796399608185889254926193729485104246684535409699705900949037895158737491904966843208753497085297354188083717364442326576519480884222689701177124460152656210345299726415426097549553240682199485586670159321451470364190683017723994708141683740634206427734741888829321848937740705778205377639991018039736869289806483263379525001474902912074175156525490145262251020804862755495989333357323913840562081223467093371101753909213198806556807949878234884143669243920669184427624227671724854481321204586729817900889856441453763229692783989319115363526068987901610194221276574739562250795799789079739598768866252036919483236738478365991164281603297004687328347161672645191583147459192576101499265464434334100644350605875311884247145280466315457528072478528972870362278965114163628081207211017097186764133361931416590548478578922722830621507462495121127464206758338139772658089366931841224604674461014931977763563124376867932701156681916985313528447615454952654050528410535803385328365522936352598874042405333683760724247050256846328497842599924591734405139338064396619276067597477878441705920953552850026452603047765324352199318719525627072629979448446562762621575587616515000460902588833532966130565573485708488496912283964332145339231603674368454008976719884484765318064795375751656671805432069232687140726594230685221045907851095030337966134551315593386007132445618029238465735324833302106678492117608822022224721042268138069550355485303166284491812875090889514990226630008196256622180358863663115672297602555548317352181247403166275383295462110563906364982885092230825328321401313910136215820113897151576874338207939453846548871174062354105452709916243001057155761776410454411950505793526164518816189944060750674614551492312497231184729348481337059654723106453412154540343607216640406646321012996673072208413319017416431597206341502884979449984510679872424163971143704356450273960617858742438442927159133312462040996269249328038424782248506182657441383709941675931526304996579008215799991837685376096685983299490215600875956918633134273481228365944382842079018460937912341564651158108783876784607765740971406706693255043790353766643394707064639059069315118206305262460748094883638136711903563748390409058728924986384108945175590820631390451594489416812424262736582748674044816423766698612865572724093386794349769887924070307649514159805288312508691002548022433549163291675259249904739270586169005726326273385116522447513803743926959686603693026644572318390882931171784605867005692128452422054613685850739243840336742536740365096064233002995667575927867961698859706324217052245361137462402461033344825166783516182686078826408533294569793221555865370596494170827233523556371800977291707784363924246361683778992861764501269035507108824948521133788928673566382304312293046586597189418827900629779352478406044637650411610822031563188903866067932818418380645585426327521845097788411557113676507061270311286209966905957903439329742820778951775725537492939711991544026879716988310334077703926025511587680727417712569504480513466990107695475064533987450218190950058877317331633780037836377553087109076291246030851503057707442348284405040398293683147958737830523761990686619891170475663450727263717531677959654073062529215310236988772916871231852465998369699471463043764815206885250129921506802397386093080400305488511413859420759061417181763071245193891589510489022589578978489911812991418853384948791763244379211309916263487535877410467978235797289600602692454218358681536656517007316629528927491191634256552765797016014863823108173058004403649408694597215173819142498484372203504674970755674331415231841045148737738211935347303457323086475259847051158518626486900695932481688560334270481203433662185587257882175798291258713137209999688627146934359312764373893947930843596042710976825415180406007652415512991934682156711880324715074505589729607680859666305228187114146657929716806227784204612851954149824614799362920419215345432000170885714416970527720382203920439439896245474693155486405875404350391007893593867270281911537002653705188188627623922617400136091391370446187022111691234779557253063265753540530975751904708109894860578858589713779132997927191104510330827984598945900611207694904415188262479486598049519465364913499605408915752221887290954841845058891686042977293348978675572045085128277406019950772142437948249203977141301992278218020170428501390502817210209233216253545642605962600494020034075324264975553730851453895331096136149642198469602733862392048602933793866610448507860827193083573642885405444989466300141630574634648002889935895830425325590358056028884325565224506481316624662691232988758966691027141452850773995324190143487986406858398231944301260808961245147520218327505065347044023200959369038844735100367011342040218312642476429934679077167170004813962484125918842754334467595694237605825027247550361632146646539353630466165107580988537980473409311957300029214042604434094419365714379406176311524252238184370544581183347146538881747789105588558861734676404141962577838834136751408780425486845444115876388439950319962305778158533456102989873516246826697060560872622415238685641684370101593526755001618235406690177763015964371283657188869895749450431724969351982399132006854808650689786443879931206331515556289242488267222680964418987590331713592712676971389098190928520266346355431684351264424753825247420446399933687297357834017552694701271715849277224745935023014629788594441563004333059690063369668030770548477723680589738350209595203915615832941287480138147116526670066078783626162961503546387262101506832256827816853126625839955230131586844201016837097086120740205035700092649912427671930403022909729503250315784345220899787537095846431230157540026789282124219149687704996006121540382922342775978413091274265694575862461748984039677096294367641196269596851193386859263316706613351549871816748829087705003889739055789024002840873485124788573408219146764154789739657660583732248516329857742815096823797437085223708659266230355871388591701123494030773391099504346221304045032765819143558167659794499123251829058127444308234020697329385679477231310392834518972071364175103105727676783761490004495148373328568037709902355565672440856983800788548864136851268924837979123363516805549670540309680706975495714844206169383540507524540154167973179681818499477875630432661401220388898349070029013670374289088576394298708494479821706669945453120847505279619647614663550297856017286656370417617962193606572513121351529505699750174340168914296217966429262383205286372642577801159962303544255063772593255568999499576871803116839727392009024733061003007490855945921299118710537790214212913720018663347991701981742849139220864650678085251302107358751149643372659349021845507753623989755348908678926550650960079471515664749444797712656053789578187918981025783820564676092192020512277514244214044146188889544270518760772549597238771947870202093969681189931102850420716812378707893457215556077233994933058798048589789803388845811592450524278445277253407903981278087689204489814592667494204728908558270113089635730550882920511076581388934641026891592600189422171073673257440563679476974030859859474245906572557690782429358957794789505236415481112146777767765092478943180197713478611761532740995236409606962106222163987446456468247432694112187188252301060163854131167197177448991269808431907938770888297260563500941712852851193840918992136200717207289009388540203809248578604277409071249018087808599926764012054818411844911266823704673418381409670895155463535373994714253758601599214936385283940493009678343809745381550611063315651038737644835855622245763163178838941504310254929219476881243539109518066373304544104388600390500100593007601286947466081361847703380972900903750528031189237596898587446407513418960304076254284739541768247846347671966836595082585292979120575252108163352024141230037021677707862136267178264896823686400931464193414112867575904897148190877685629174780063139927952033014659757651952947815568625617618585510234541377514613718711441987676877395128451109055183925764504172085496214471876467089487129055099790236350951503640539946029140919554772303900487330196367208145922920721267926449948224493227972336985921626685153188249548000863273481811945790305736921294391958890920022179744313301472597602873970079701817926529186718173158545180433065223343418056247823675287215122165202904967770403014896763764962754162273303539022300565984647692324915869608516627578244583453414213600017319300474690027880389474484685260732602168329432783965980664754129128000081259758531004876876707077045905349907608843374705240276939202241952706232425549096864999087925318299587462406288203620310682871628319035863841133432127943447355251446420624162942197974344297207287944442534398021388552349305633854335220504568776849884803001738616969339455610479387725664470305347635834359533305312913941713299006341533979122273273957595917254846828747030650946518033292488097247480928609334201459729320839695342178478593894918158135688642397202140942318314072497136196434701724986630733091601002632094993680702756686322971301420287609911324617419343712627936182984937230441673785261998319515515738613478568026906051095751944283841229237838397377832252347918196862407931922692528989904020954577182199514388978752819640403145479601455264535166481289772827791896621400906077572926453258161933515151434519281342474357102932423828838137526085615591833035113610331772504873440841279774626700977190471800278775953206291223376865890594650613520854472461647400588493302008709224555822441188761783598024449008395412984193234542984004477926153080384422368896934387293435571384780115868125235327585797426254383883775967521099764841014667116699767872923234837836224370549623116231477972878156174443645991820335310676811568288238987914483015299890080350211282937643052426515788556273679606108649348632751215538831534045532681533947699035275013426970736652554802500279861759240895893708890036762873941126852665142897708196033885333057413049687356979965405108507728561946075140798724949501069080784005103922739816122323791407810324219171013905561988990852137628534365685576716845577839671081996574698671633098621658113236843693220794705072124282649742306543680890059312810392403889181421241407404085642704334503029974498182271205105816475750704635756588066563086711771584483933009146132769856250658963855141773056137817544760880727483404826932889678823522194148816291770298006761370367667004319404993175621596990392098506950869351309260858279396671932866828517130939177226685285840129494507401839758415821277281261774518985846071955083027018836010209223877598685237909966677263355170689585586207159841164370950628913426600773987386688691519695464795276439091229036750008684052677550208727705704802418053354340302931932002861500681294045028887715152865580463547329195038575449340575147040895759641055963695392009626988379679945678542466004862675291430150257166195013404578352895512988741945623010497735583501697088239587165587442833486944057139936340654369229781751668557243367927160150575306809320903433170584464279621260482221698584045906721399654769978259493573948468424550928039782955156470327886151269935419380667449849008788253503624094709922606034830496144062860588361991744029344167658133635108430126193375307840950058738367195081921027665628292005174348615256907159540901681130666233705946516449631340180099479391238609803375435917766827284934838977038802306398910394408517806613850330048791868158061761850732280585953590767824448507303614551175752149332369876900299714111441833404891363639231619299680011497095387410348265408760633307514656832821997275844751086533335884567878808965495844259688999862565051834019797295251101486916939747357647233400497354550461710676617398414046992338237338747154958365760228482967604362072846385415185469059445875339355631383053150647955634113179992204537130050656066824573337409336351837014677385702544775303230484934777589577420302314386014912726680791871449728495475369590010311445260322097397295096799452047279528420183668542886021177765212776741179049633334893774009997435045158653368283750838290938237812975254849699195615176568017526418941152142450980284802623019118200271867622139463847312068047928800928967158057554963382489345929052264530422815045637496741094471819382088661473397371724109506736089784108942806743719179765250622845024852065671277863837153497762171061451976002707178359659346409946194182271755779210496103133283387838319185423971636869008416063941002771168589788612927232485739583461046379960789192427734477973446136539505678219164085465003471076826654307674448836960111757270897029252760296922229947597215355701912317246512977376777589778700386631926167320112494817656779997035431891625030053324276027297071402992459138942468418387935844841233499103564036876803883923325622595634083570861592775997513079790138331187854295494416057603121588102374889957337427451898966372909053490007822041851230070007626052623223492291941362863183317518385097922696415001725317592984944512639087021543546219621013492019475266287877871724966134011475828233348215536062458327572411279804329854568740308751652714648154311607404756350654239074222819555507814955989474361826529792347828172324712843320993880110560949205316367707019422347629489664453599908535372130096515885679129242111251526832746932045665255148256557509636503425915011800861026301723649507050312694770540627110028249826890328020762821517454115711704399248047743020898396415052984682504926401479668702304002739834389020198595334091731867981711189832574276828368910630267310459941515671641194672983900048050478670635068832130774246253864721637493908672287888517252873236608861681133960033078679111107760350418349237533272235513752938707692566314587877374313055789173206214370439234961152734134114182361585707982616811059305781113031259915675356776351622776075248382980456252351141529826540231291515996926801220229690835965759932442028660292138147823811776062124460228333761822679086181864384739322428423961475342766769826981769118953984188995781437202798713643134242942087490587107476917113693493949225566420055423731299578862197127071880419730294939775220154739072836424218547146364914102398013228053665259579547843861971994000166538325434604843788620792313508321520396278769736552645643244267010337750595793699077045532661345180549005527570279196361884671225968792390262251936802014158634269332388345640645824651250598186425797004442749888353279584159626625701766706957551457191567423671010473552124313865247026371936608607457219871001822789643991715814186910728781008152236791156469299650984660533612208109076948605842703053646330713476256470490902815153383082488927472931268510779392499149532087329612134462437932734180466615879793301866947696720875123282936217520042216526920786388226738681949772369670571400222829609074708863790591800986061968370056582778550644539659331296305914035997663719162258598699922548662171657486822909748320463850405147659403398062600145182814343283863991013798291083618462390299470769368777376786341739857259875238187850348313152689521294570497582911738189047489844663454389977895591983763174299161319113998601025662185003175283797444828862822873349561568147877756137882930055806803272652662053039929352234191279741183318829909434796913841588291804621014183076943972716857777110844382611811604530427172884498215178207348505836966880238351225632265204851360820434751916901150007950350293648867264586941156754776259399927035298309221175952471133322657403486616026770685180567743473561168450943173120081940359238598083060524272372400612645384025704340533124999029626243926951013566724248086356094472174544874666918714418820049322168946376425807618196229568532653027202484311729009249407463123890426465961757372044500763540511690825989130704722435058250065754246283262002293225987431655498321409445179111771469118245862058286174272736766547899892314136483892244066370872433014252707363154953862252923690996171678996577892606722635580081423031790125452053979532798130904695973241462974979401475625389877746108918271479205254573162923159333002238622825626987664684995300399654722256261669256583760245998963199366853087482727965334379065859642965339147350268496970619172445577088964638664890543237162770782943849855170682770116305963953133563171551377769602581759494257162007996314164706254387716241757236794017013717745218211469121853497378582746170048403651229804676380475924781991060829824159000841101981257033734944158552883525067872637297305119287313862880364509572763001068680978499904831076685428940672380819696944231170088549047101595448143030476426224147866034313879693547638934676792301798816496044545405890028648781284183525396274456794076173966613164887187376158218114010201468955758856542569131119890911787063062718664850289778712182434317992378856916290069543341672239041416323236411413734669107343318561871863571239195393591511643678305018325991208424614896134253968807379214698566912455680678051807879388596249250948230533741528009946965746307198397868499590795238208266867822178076206181963198324999663104734211404321366691766240687732079985888536519331148169685771027843779045655234028614620812467751057447105472591226780204559188145614348635270915575466352854485055978612827600858527183033978597164064547301886717154475635301992716304801602650063823262796418070974687469493136482894844325056590313931684179976800949622990534907324461623832782019217402181855969790870223062919861926133648168036296474506685859051593690452460609675429602751152546909809555528170987009043715305589823648915811785811302970129240638611394176718384167513431414667274059296479742637641937431857863458587120962420627918515291682211197706011774860288984455009996624174250374849131821776226787580362580386346070791791011099003042127757299157376199339434909190868136922226238783252067019305006344593290711395831566782191510101069334824857427046277193253955220217372362393245441620908436839543210656180349952628066327377083921811720563579347583681692625725952038252451591496499722895595138705734573185008318592692956159974931047309764185411792255623942927878114286897536944450157138379860683635188399599077456770953273729380738088256134542677887747464134666236617959341821964897969845555130492986198197690558494308443414236071903466621219427882537465056127674249643980555813775220795705857815112142629220334701704941718871385301511744692182992053845843478524496899507872708277187636454035024105841939206674848052217040606084442278457193444199444568650433535396567097194900689295289923316382092411165001001892884934590936984966619982785595928726006069168029253517364533497158459415074025932218393425598754586915415802610778543803731013817633679414526923484200166645322626801307269568025918696518978438872020550778496136108333534710295518037286991607411843850109854593088649412908186641849295486059768625436923539524043511687070490713560485864606900007449645049410061496257106994699521628861397861551863914033824846703521661905420246037041833986756507078008717053122129418392595674066365593315097631987556352156194630128526278559512539829445429408394258553392739370652787613724743058206430699524473564136836191977564911353496167598696688552306965206620289367510811974234836207834675887464524235813856752400053576585447887345770709757714950417283782100255046298783838757760127587871457285670867688369886073196872003563825031581120943269358752971824225188422222875054100723542807190819642653785531756171558290532080225128339884571280483276803155594760828502097125579043593689879463626036521310986833891609646780597498782265570352789652733988563887999780374193013977734124163004200972809782542577037106469201106449780649394961717860022860765445057684065155338516495731289251761654923541478490170136871853168564280488691806659641129283319767765959302274479703761049801846571820657001059835926888167582688185256034888094758606098023838715246385597429699296253651732982774832989270133650189927069028951823460508566264592967845248598616695526665105509450181470641069279261644680735867563562452133951950082636272491918116069813384003213750754499769159208991200656992380735022009956087766756734117435769252299156997479957372907250451721544634711915026610958731887151948384347321330341958264043678144007703509255924293020774653432183669313482033741157785763656858160128525805157702330412840179294539494444200414603897970250297427823930811410848862379392614867199178390778982423363695246548510950974433406375668229432141435650561550715182738691737734261125261538533535166518963638142635905186900386838541826167528897006192719721455829958955962242165633831116519456140984738546028563762585328264994224467119689601944189660752414967680321612586708361604862158597176757368714273291345046388873267986616614319896654762826399769640658780988738021563862667576806851444393164923589115666397968609386564748987610661425747186296694072397308894618349486314005648674211955752910204726360734668161569198777431782183174055410476587605346437773384044460395840572938853464610722597595909882074329663761043905647114061071487242417252398103492516224818841393555059144183518753437899542756639315820732609565365726814285166261301353676581517100874260352390839158766117799256786498770491940935827947998002278675943838008799873120783934234782159858464192258155650867236028544630255439583986357662255701006639531432075231466846505059118453852993713993232829083887170163373397850542125755681550001983792276492277684774919243813819153602859426504110054752336973778149219735323588654761959751630977757049631754441133248073364837263450568741214691465658910556076674254026176546807026428740339664401752027386607183602651569437947777314073016701576424825897072242298145287127438423008970372125687591070662257491457492996426640467848554133150894185063854528092431718606808111924994410955535504295366790392496729237624950396413468153860182022568913857032079663512961306658584710788567168559066181034306354019852793713261825114609288448761546428861645835391765759635274704903527534354050771650474015350988874688595031544822796677351700708591822438523482533167200201491586369728026516792732121603195318318368197256129049313458443554303652856398235428356750471444018688311621574352335556112265887309436330188359299931162331094778573138640631771302055500431079667566392812276298219456804618806837194449328526034205831418834784960372367938181594827836821508991209458204842710211124610214795096826137576675316887640484226215501543512287677002195584562676756731979320264585076039456078494847142540636647474876352339819004578773561252887708718315965318002641714535431712339213116982864838711449182760939331028990331789553796407696694511269950890548802208027206283710058907879301457016152643585770376877073578748300687152236464153760432489530924360115908775673878189897312588812514727554379510425632256588225110403630804455068392155031638093365687266015596190874867690781638188952205340412009632662410373409297828782621330029294453941540004337835736826983771097450438808822000879534495132232149020377376370422121257668136812631553807235710122008680101441600983779653492473304347945589206804248201119255456291123269182051000669696509216690288939379908064866692979921545190305988391246395674645100070088853600850911249760774091487978834949277565080134334895246934678129933903793876326537905132945729877129398830990799675275499049070640487486471132019886837302866457683101258153210130830350030746976000266818954637291622606182302654738862374683484457636336820352473254869254977523103208181429164590748372086894242955396842102007893895442520324143902937217586779825861578673625034158826404235844895252097682815859752166647328970937825874839934043172336391551529373686426006605369656582008627082694853823005709253702835117011487659221093804022689203162730945500824213943956255491515406727633175350674727445098442358381136752923943437916660597591783265370495286042201294596305261503128977620300502696993037325524016260311912174132385234874887139053134509549976515837490470348425583094090802422954970662290356331091323112756537404567660273217258829364540450696450772546201957281544530001728554972781403093219978879918570257376905479633780767607385074733376751144345398572670651521413162677555109918322861300425720204595801820466406882688316614518704127816496998528505235726519521635588331405671384244728453717151244220568652240536058066286538753710521197666037645777678084908200298785465480753638958694155154159895507376701767050424692407583418200167118721821057236260619993024936372766589112482592025184775470671460759333111576997087640416619271018042754691088332197525569309444933284828016895928139696299272812616239395754844218612253580958604224376814324386153514674498097542140849178593849307009299347554031636198578380294197500992706908986507173470715522482103824092776956186767937422536872804386598962239661149792635173628298965075023829514793724617901448269374982315049901975860416894938312475474269039062622750418181668608345388383470190419318542018925483206515403256059822160884066725052747130002129684039858747559814359172181957772993227283636786934121893417113508910707481317175148615880101948972408957312544777311690787206374606228847259666340686592080278196848267763093643926144159379959655088934632150767309965009781713004096477740327521686450063335131303194287085321552270971416122132928666321339832655664138064730658049706772030180698457211146500593877662288297532395736830016680194684711536173950348851596485644292231509001076939346901709575379990133228863164169327420873118113163859387388868977217193155606997737592033514953086298023983254425013958818162595874929860796424383334269221354260087955035771935811919777617350152322745965727163143247078046648767653370328018276052480423128285900193686275667725721145364471809691546040497980898060513012488138604340477638716577741812026154336882613457023236776605245163319090046751202473073477541115857513947297293675981347299360860803527445128613079410868089542016811392324143073647108417662948945817518651587449204439587097690310931645057410124958726250429459216726791553369077368424732354473898224295635100126611899767727240465735705399155556748278229106852422491386491728722131748175718611767818799737439460294380099220322090485443297117280233321421029675542952297057521088885610703199933520620923267734607433060302196090812937195101029842236568581013331200058453713486732864010128465622755666244205684312038704665044449260132506831405814686278503579878768349129862838564248565895514132835740441935118144591961984256349586740834059640859985785345550862674864745379232492254688558986411146261605757362426625230808720209364525278845368941898123081314688677833612040387584008473254220302264537920320074577234770153713035064345392443307813065351283371537061104075184941091668308617271998958522513393821854268734633164510467368340178390285491251638981942504225087057670755018328401778938095007194964303433116339893269357922727593003942998482918993244899131059193523993817092672065993029426093907260989091386715942830505560906191826629895278558245268714936786434612762305790630364191548438953920140185408803636929416201040000959041128249155900179843083250280609835167101857454011694435363803486716792499468954069484154585765081419263187063405441592429104357961391101869196664442591692208406673349591592498298291839099753951400348229865523751498081722679941276495285113295963750413838227819416038951622502455256967703806168690601166621164906627542165240146609003064256675369464920273884274216728642334960423497692135529104795884464639240446910430518223811684573782771791425272309788372359824189871101451372668453758565235993081929243481963505730086068110526115033373261203262880958121679969169384318891729646522191156489781114668368819754088187567015417526850379921627397694894012990035927738258287267201015800996822964981184369166576568020155961882921487624831430692698938870567880301431284851083131156828633609893817575331155203228288063800875780482094045449189973481324623828497891920137578734815885847003167645544656929562246782449422751965334617113681927431987120341883210957978979298399345178139461360893901028414292799948132302619242858119807381753089017818556166075153082621563733177441916752583958802656284926157346233217439883583008802867603682153010943380223289797917234699467043530545373819623233929512006388594546948461457042207720309542385347641688964852915759836170149311689528973400628265317428886586284837679563698181880945916643249583066364535707312899899378878159887976484157872271623316224900924455074868695568911122966973930154173205896829850045754609008405171686135830606108840110852216540669014577309410197653065545711903998817862736238371534310047200539169098692870342544513444669919852810248980049484617429702362546700173894874344257071443594891632127984650233871651784760778147377756025645398637174852006242298030033032840740243628940323153568675666155868718849693220578633035592745598251607506017436590695749135952695251173206461631302161090887521588718524849392558479175246901045384200235798645017066985681988633973007758910104213370003542599009256651212807463494932258853196647779561429509342921873323747425403501091624472612544710108067026080764859484000435449464609766990633298527778857904113577620424730325441312987093691428921402810225444122794923146078147749288544961674616082336589762016855917443184204641675493172663855301654449223143016224477675358897260319402716035759703223951854118095252163725559753756280005028871849739520543007549374297160653356798763425041121290075029763757309974535421916176451921835051182999763845125056990408249351747073918094122394562292251651007886300161875868843085380891311755301591515704772083108993331444360887720895655462870325399148822551102911236646792862855937826510524407714870147630616768850710868184111902816608511116543658646382094106318757171725830240146599747239514860730312780743733583519971697283440652942012292708312843427001046454990093017536894006343186015775634079245500936156705934884196301534332706098584802438304602999337976951114664422920348084572678329107153270334781674744693270573827610716418125812047889593366124033887640055107996375121059927413945917848291057355838258454798112491505688067365390538136637679729968260844446352901142845469249789259568893615437279596270632205764620805979132233842783589112925454100355976113179998979528711849671973298245736910859383765275844772819574106137457281312042334242619261902018252427004311755456451163008404733427957374563802724205532999367323967817664280107572936562686169703721646314617157668277569453925181503818773554214188218826304973146799187371351951065346934343037323385211736195372574059630482349614690828269670555737184351910045558607759300271240033751727716741376136511361504361474504214151650415610515482023996384870821814766553391605804418750930095151605423555510691900328753389966371383410063621006923897907974750582541647101275811415969926355281210878015983916180403617301119856104088534905318957067421653602188596537753154711575645318220847117997066765513488533170964346558003671412025556748340659636860572064616094781247346387827571652148007030184263280834074628275274709466866919548397256342593436875477547772132829666261474607827616649130587288531725792071560434571240821723731481996167146845823865419414054342902478418891849973070850573148064411904808452000731853474967100054942945651417044721001481779816783870088306609039762145253199489171226829338437090537649477321156476077851857238849191745135598641746287309662012249792167035387824753709239917305005389990091356495612935504656328705286449875422849686074667064195871092705923899458655797583707219631800220434306340832573785930630790897302396528585199655311153616945553814983874072173155175698809074291879383654188739665860744234812729843253383605185359494374204292262516104419482188906522472323357854551341974665176393269001366321064147042245253406043330350269735939414613940364213951857610886625910637823296973729023763799193083058160828508957378294753032431024634578537287952500759511124790620621395654658934993289228165836313652773037838876415147535274040687629546797685470860858730025631691060971148951890835071523111306901302376130956474051465952617308037440013437532084901336851266640515995809928913171785302911586539530143001901537120661404136759206675375929982999337421616597042369979848215588277035402117959309489232044502111661816089224473564921646296011358743887395009027649798368855280569220926328929557671487708405483488727671363338795319956752924512821065041078500252868832416827077164334385024161346611320232257745392648218080900961050344561048028989033693763853123422958227832044682193599362914239998825917984848826186919358783641224158100802960748852454135102709240142122449736470078052629134323926988236434066176090072968331330757877121849127792852952770644427916244931649973624446097991119337203266423466454465152050262069652948723162722738730098904659522848398048758870234678590481948116096659865944977415069961520423379307404112705601053308874504242849240523560138732268819569857556405744754684966863959804512894581656669014859259076951359337099753173051532386882621758848578289548250560793582552414595213326275959421525342696303676443831163699645049647612338210058075084690656965004930105228258856593266394538284077002851371714265275453024208349485079347474791888584830884622696119484562948250297151177465056050071868638772106142812379718760973783715344539938016489421496407927412358505468692288900056144483201222875397884919372872947607503978881133970234813110413164003506682109699090151703677058696201950288085813264630104407140875495910265048202968465176703368536117156959217224032866240088592297576707553842126581583663409297609653818202829677602373385085184821535117330857778160408208887534665576171197994687628485401933206160867427488289121228558547748045266739444738273942965431067323151104275667683831572446215630673620148526482664521111295390103844218162260166172752224905905748037583223997532629143951905077601851271708478634048693643640015814141977189342208493648526655436946682018063380717269835829866666881415228339669644627405758678492014224085676330987131218586267933398949313202155107737901714849957682925710063325086102926528029633649285936824533280768793467017721871031831413824724044153270127256847362249069482443307865977226775290011458154072649682646317348653906988419653485557963015596635406417179679271402650783529313988706892238576951833322254091782983392667284709695122184878219384902961711732099509151010525041513083047322631042602257633691283340293763019665463013625580754478813140344674345638393801464239352498043553625288940475095710351445068183870994436316263656684476842985350750841708818695933472911297526149202341978903145675984783564101445541602662882876764589606566861603514635538003151450786324415581552924077297509633235132796903629272276258610097993584367134639928667921130119988020873543572295309802734209296050562200204646865292259997994788171392217589009856817227634933553307739826571429651497189029276274025682216294203366485199753954609300194515155181777326989238380379577772190004291933625460286778136378301641269120940017555090245178695695494151120767261405854524501490067030501894542348192090934209886950445212819262288760033258572428791948844897479121372196454727204022605970182147571526605137316195578632411155428263259160394337446327953123346996573273690410490346209356676847933915357131169643119562023966346680227009466614893243720006367951988844463087571912542067004188212397611910538601213040847794906648881923178995654294291735442148206520998008463871417025207233661784544033274921740314033128712654971139280020251305386439871141191704496705734162247609036709634780627666854732828767994722742004486357372448289797466587275968739243350166519244599500790200167801250754074518929366817275138150969724449421268248021907689729954623860334817293964527938066643924894036777707424971269308264391209076294553847996510963644010288031092933830262962793684362469888626837794029570311864233343911764255365600557004921406547080924785895144101385087621388997524942735608621631049844838142034623461893201117385034613850703428758693408796445718020797054340565966409985966295552267310079321659881051758564166329211334720700049462055769833039122591036138523521676058294233340162165456617097783898823735646966439081665852665203173102320798017372998671208778251876577202896042460770424074894947586922520104359143241477617870536688245863800969633621994188791585144426233982190377504233309381940562845011921010399420085332675882826024103834750264088658808753871495562581099761550826142194338609057378070418040672454155918275275135777346015059498837240446018064917116724059237868981425419266306596433590998063267359538739447065411532796238796391679262240328454787749919429500301001949685537605538761603657987733558621607067415816242385513093525197077263960538017941687198763977684586910970486813335678298308575806154288978963556889807628009792950565809633055043925877825547201781424540802108057253131654896986816687875161987012307044167153575460428894094331368575160975859200551552854727685096380465596016467035189354992260597754791668362357253498018970932014415550617892551984990935577631794700131008361462740199453695742761293235744882756127947784944335412910027839077351514399926186197950781687490501191317879067007605483041939876311602763467751997976698764359828255463687384523899695776533006917449383588570266475541437810508894125809359772831415016672396848747690530854688990805464174683336387147099411025518966892921822532720100692823160163733512539684914687355214961853182490593537986716557351345775921333176431780176733606023387990473184050292580879626284619661696226620057743672675791521494458313040552464039612028304780880851493314995091552178082486784559610281662678990254826128903047401256855017534611727610694315283373776058204130299558531076993319020336873675452752422196577072301005909096296797720803558579736027923028381229032062122563026929098664521157681714949896874998598292439090962607195268588779089422925283837891955759143935343366208519550124313689330898158773491855108075739320538220280486693402456400513392174935413961390103015806168359685106313609667549520246429887845553723458582194468587753693031709551435855304086526272078705249664664295396185599135120803917129702360339416275556975785435961609826161740750311928991457302460120326927129489872907191977931174741188839612286816785266661852012349978432611380496173656581129077475508214223892716620406980218012118769144517085967738662438052663735958801557581847278722097513582440812112782437756735232203432482921591047532153287955474204087629959923623256705517536746098019758686016756331423316929250446691031463060758317349178697200324774015294545865875339450246693088555489294277269414232960143173876750246730656277947189123991436928097008577953998765749873841777166079278835732137139363544956548318248137415609711641135406595305120560272056365239042473209047755359966443383599566683666060158949902174248309396444334497276135018871171901405819260359159697382173341468288796312709600732470449555808429352893777458234189372884626257359399006581366960472463828518231561018477794240763877245974172503492779283141009809404625312622618507036428242921264692904084526886343540951592426365669416040152048762139650868395925494052283729462092740190428302493501731386933091633427782532603682886592255776101605915232640553364076342689203996381883946103612341115476242894182919204409834869997927833564038818520925628484438575555033336719116841115407016887155353977297085969451875067927278673310268816644192484393470133402461422113649252199624748194618855433723097902634326832436463448491770144565504985455916908608318874952060114996233863681919083590663802126893324172047795957468209425828273987664453202727810642550106186369629472709912259002457986590787477816960514485256176257969166525529269089661603825785969482177766506626321963863254159661712666051918180419504208906373452450874683957852056140483499940873461934020241428697545147032579896367793637905620721245460364230194562692430524191073504379960215464611730615755920306684540578027162175293985175298188704547850451179215966415426417906214232114456813367369908616479765930402111436381318349778162456496756078690859768814110633508680211422675181880800536098090740886699011145454398257888423247559958327049840120730834793860860516698694828622962640168033954420961773468193025270464211994992035675694714915937794508620270539415272168966769858692698256724940541949795423586874091998149430261003769380356016778415767414612204742171009114457880570666293925699038508496933935577090583720611278030738391764176815058950531515426681141976616629704664550553302847242865620331949544548167832946478525830265725031554501752954236776438414674698107457291095436817090486948910013363872852143790588651132597679641510383335409788680892056179718330437812264723667771536064513903361415006380148206355686163161434616209545184811622685128043213655729436027070938309433465852514334131307675492768159890195151451268539128300060462524072826803953573298348797336966813441206986822368304907036561048535024867798326142369894269638097126834252165339827813800699872362902354621657313997650449479047149625960244855744409590753104489053474522753114995474228049460211950506423096367946900165175254861227471959321756761761714593186681965760522346866749511927843291665733253160726526553811367219927667776000985396502619475647504568619699970811151188870757560128144749328605511239185633047731041496711183265666573894948272324414738355716036691296715947265839127037707529894942112909983963604632966048464542545389920149418123555049685179864627800923053917988317897967403494492757296190282268976080986465144952635792216954458041909311249100594471691334908460106387759117488027712895058640983714023524925514840412532555593287270375276731949991075442601811470755763574913142949668712329523786307989492431986249188437280733715426805041635192821214999915959413466375805797367998446927230495996788781050866690168226150684143397051064293868106753269527570339098283140892791930391944408860635592771812148385795907349386837021381241474308272255991754214241002782355193929252252919835584499318766133350979904807155720613653543181000701199234160634278829491548215079525321861575400233850716358818684703106006312940936825738006968245501293199377963971042901566602212674462298539506607698340818908273746162800585008994779206607267620465689146712486721158778824483894446119303743451821560865467458481225898243087398795596715258053304803921140483276210335717662687826511729530677492526703569186388826590005115831990407480011046539172859338144349613584619213122078746348920343212828569740523286615053459379023129361172630034842238130468524632779305482670112482678452039390606567876383369997305515149373659937603565141784753171921973601959125103563114810340255520871814082730853180867169198801684415484656470759667218437070701411145082165946043071488632588243008873329448702399507732867478492236429963327777751868931835900904667727427974515195074269867946421640178221850593641785225100039886632378238891145190359563463587862531048130306475573635385944143579436663978577871340492695271039304234976881315361424523291796402723440658295924338650517639062882245502161436405615288835794978232549090544099695417999680306441025610074086932146913785616897080071610729672095808370938360162748726024953702990273646024268935901938625397588314760799646083574095201799667063420891275411970491921168643140116923188023727448816817850067942021756914168083797417683833721982564388573125376562317527749352927962018156835480945191924556726327700040494720007183138545834831583730556304357113316496579223652895150328524135861315963876536233601452319067437791829291518010019326132267005975261938781669439373048173944870741665871907004436080754781802457285713891523022962548400012187323807349294299197530875518776168506635065603346490788482983529308795485964206870214961945384451098000644482602330905453782548528262750716175004601381244739532642441746892434797194545408370844839818668010732502560542645828523540617913774967389606852742413378257199479803034049545693102385272004245125198025347720639125762136197505457389386072730534828790026066565193284410858555820062295965051700077571907905328989972684161346229384180875744028980885369692977021125314529107280222829138247579846603361940473560557129577743911392359726139919437678188112379782326555542338095581898719846947323583152618452837118350532259340282695470436075774862607019659528902372830926685639660666859212305742307807828896915472661981029298526400648376603644148737884580796038138910108373666196132628200173785061512004347888152902521602139724995808080103643372984977699019383062944322378036060832431446687850970317583495292033983776343053238401127818112606526712415957988367119663798248210490390175849191975833578264129559045878223803850229633883992846910511403706606295461137873244204382644854201692614854173022127196316410857333750990131351111411070310700024192489341580343636094518919894249895155871153482803196017246156355431531894010598124924014223324396734302652000928150176873644038633363511298218983478901280753158151211771886795099601738799683078916650360239367207238801935889655785835760423816635041501232793345069650340028573898262150359290269377622682410444947738578125069212910654696714953500959525263302647935356478217875906192799053434546608475618319328337351968604067355566903687716464751366713049987769521213509589625454304475916828436364428505202458147895853359898979816485630831295426728118647140947042578900542380418023870726619750769369751048932727597113006102257933577372824076502709842670938773854230992556200577281431211508916606983376106693086593680347667040068038144169086943774504914403212136292042069573963308828163731852613656992470153739316287550110019211363965424152957735732929846300351788320085653231647545085079692307900295769120997613534006038548965529074925359514358326410174973524889495275691282934913055834634780877554522503418824821960942421585332374420898852798454465038349652950787606582589608393132265282024667752230247028721767034890976535977230736225449595900933864652596561601407073094314826768396391823415398864866011100674189021597418994768017926645420049094548970397065047249624708373985831285495489202876034868289334472779350603899869348296473809536095469500966296845415403485088045110561712056819346795822754117153303146630076881922954482339049215784508684100913767754502753609542441530318308555326660671526950324610881343059680141325516123704810182199809803165429447981678134014952468379034828314227664151991622933635697972028765981801890424942409577443757367785528565724670261607668383716058257639788646634668155212832279149623666867620556458963008673638448864922014160821792315195770942598807462281186200237065943494804084445762140781263517690836371237092992125596051283205877902372296900417570213530194671027543663175947702684663981713405585195678819299355964246379986851207939080564589445158762080575551556421374819464408519933755049607326587671200754967371372089079586454906461217647656648226492473284052644862524360782957251152573912781240623825321051588999021250370652582572686995488296676462523879829497935174049435154822156734934359111543629362341360592817609106812303587264311240471920992184705436922924025671686970645241001553763051856589871290313501732163041153053032482717112282780257203525470757311148241423308710481121197035673440219376271204946117541236994325262209614675469277324780334917363354476170844948329538496928783828940777876291775867881255119821206951479972181011134783490502660576239780337464592225908293095069442715737100078921854179506077193325043243305188630473408825755115152304093097488021327172535871612090197318680332050151833691636149543047621350124538598657924148835643877830647942402172379458694580329788326463184711051429315217318781546754187938349645104625693777344280702949577938925816594305743543686655957269507296667887558179018364000358270109888588184032414028656576309954101560813913456804118075928196162742714886762614949173493729126716396659761067044436568572963486351456462779034595243030175778016212586299985626600253197375975118363530694315347242770057117011608851663597751250836029888227684929447089964540349441383555970379682717978352797651303849375624131294216476210065702478393186036937068596272920485257728605913273244170974214992978716069678111428597081364972590379617494809735156078818315314417747646863854366856645744272083063736629835211152338014680008600871899614618451018555652110516299535576855294568709693974272544635130902950821317629630213154806866347205744179472859223756869765462720470420948522752738839936929096873011054004514741620644409224306891965335205772906860652087360140606588728595804816854032380813725583537532468146906355677182445893032188744913755054450675205869032740646056964865811135667183720233808816264911827487123522031659599121018357975006569553155474764581856374264169303706541373451525296721723733898975242780847531723174260314584022629640581857258794131855619259660233445276224309439198168204997926647469437868831495921874295644125881467969420975742060410901035124557474843892637093220361399139875682687307765976503676979496747747399330046231486788307136392181049004806082933835256449123389767225812590410227455364782870170215451780857193942611171588322080571421332698859535699701108557839445610543210779408756990298977695931028893350194651209639274213639400101014623500246300330542994557626820616461937985143373611035844279326182392133536397446358193483290625919418019281418640350751188697797195888696382639600539053281040716953126324266858517106165359753366750327088024732645677655118768071959359558809010752627204673021300822533636283378498301755183218540471915685279325181411173256549517370631054072247496121324775225107281979198446218723171724843066120122064901023206123911223630087986525082089296568873845023394445541122104307776360949730368900841027893041397340349075896605808766479213008292116049184855011717610197199920012248171242578107678507818307289502023947391119628032723606128096848902679492017073753749972567269371266968859980571843912501178968762182609461911253673820657611585207855986553667369457723772226286401756883206244823589786397358328004815522551041678364964861228517207435210199485415761540995866379538434377515967613964174520666982115872699218133819464167890207855458968841002885193805320519546028036431816490366550333201454011136476246985862689949753584705975144664111433352998386500594480500144568235366356963613423533732426700982847431343398122226477509780520932537099643897029733188254743010234754079555463258639304310526088671823663446214231640536777859278864761634744609221689055324285983804411270728296345352352745520780248836454378006823222992175577991068334836248281122040915257127592140270426839069704600571368928848022513991089396871458667848452193268351522550826196886523574882960676700227163539598838879218256721462265236057368541338724968190541721900055325035229701151319503101306007841761201447888648413993930879711257307105413948913516731761583024559368253285809672470148844605207578760187319378460191141438979625558149242977306304900157671488973699798529419480283097293648936175567313917415738998080591741444545045022041328329206719807698711377121936075221306248920405281130842334599486517321174413196820263308431891266534388008686720092807051162538960512030032561598920475991684967690183001013375670046217778145894622546135810342466514255859963458599392051329848885133997112302105772589336182074842070141123099835938394476394271329330565880825227280834614572402852470334007522564281282408345090966590754019552697135842394749920769738034316342843727764790483412783968357654266012158182161533205363483968736635379109898994335291554507605270588286622018155070450201764436016703638777053644603993169938820908859756085971272472752466060789397330458010955666349461453788247199533491339971121263730434458405512757957200377397719473344530192326129338127480330324022481201952737972307886183533355971120371155565871896869257963444581766565098784485414031509501711746328174130754131994441436997531170379368270724528102838503121254200586710788677057452214143430482809652844997286098255345245995395997291287739330781359591672100602137893309879093942981470373077724012880294222193906198257483622676359636622351252657574442739718976424314853405360792606669006891042409197045309110109538475091682217267536764670585972648969636580257021714674794219215068474594486942788326235226337581270043387008885524546109069002354495091859283043104448097778005557679312345524406036658271116147575036670774873797382604122945891978309301784973482988021311939746266671551420428138304194164689762417011783252014740788495762572946837168232913858453494102641947465496780264975934413524266873809517665949144219527456460941872022155859889069730132622902561529196841004687357486200435572903611284546419383761139008675960844152105341471334953131854180273804950487147635633237605407443216136901825399710966034087333038459242571579326439305263457737333384520678983184593394386192688003731738518853311603132945280986510697075705378491712969100653147852268742806641633932533669847866063909228445012855407523452539854994459133097665924885346436388832991317356586636176317111202486263280842240060239418741970372046490617100975518235701495893440618761569216872924383366536941154442609061427870270368707137016772242498251019597290726978829028745654679932641049126969105759357498609018507326702439761454636651929232298422302011891180593253233927146686325125578706025491540742357288523799434947535247295346335979744180623259532273127418156765884763076712113289240603575964019008399895201759592887273556854244041981870761984122818986155029589667003146100127260968243268585613315145636054137452446887881343658959669052211336769602964237524174944487568697694568539932751663552661772616590179566594178715661608510799470386783686734773738993860948269274033715110435848291114871330676049334354500456640729153951007098799834892524720674972081552932274000883069180936925047292048693579101759066093296224202655194253260993349224991649899590699917550664081626141323644342464963636927907248047450389520242499745869328985380192355423861128333139234552672674821310893438100163596681297737999369168964783818299941661376109385209878820191526409770977243845219946423899017879739256318622718660131849457046150307661829059671250818837063000632039678091179085643562117485348132838803543079742074008428037968370906862356583930755757379196172668786686328361995543467549031538463645324138765501258235658003489533246675008408610365079031995285583094472508909186315177500391535495055147607654620777877438505696795149880255347008638720158152739382767121073076364117618906465040180556901731249949751625865223157023774879474216344031695893955680855752341331178905812300196422788491858452665185737022131420793122110054787478372543362587275448277842239955487890688434532824027217850108402827645011228590799748285042663766294107329060330375619527205187847497372076445026243469203324131901478081880489762857469990521833923082732981064579533334942596920881009910994468542844828177663825619319307363622142898374730559119440009079465301522526375685807987281902637343490852610843990892935003794481441831591338515040889714994940193003783461944837069771976035676321106176258019362578866533581614651418396946024070892655962967408853851992152539657987489563529298800054032787327737505423607016614891909937489249472060328893375047633890966754516410141254418236965592381652488760595030231179676355234241187228254270907779337933277640457144553324676524539530778444022504073473826427385533307081658820774783472155101928030985073252352322619651715463184699295185216686491736070927983709615484964551140990070433286917960832199778897915116388558651335124750009889089862062175420208784795486611121023392358952711893914658600447594990476570502506163656908112809293156376894745338854607027975180289906378126432192557579465051493457282008364305709196837240435651889048798441311233863977693680782610589720596306891243292453892439434727005058245026807450489659436178708696484123546109166708542192090765677687910408122457590211644401236349627048752242168784544284878830333641023247908475531690113607374071239031243133971320097710139822306436071445128546930634967631965229710056459624831577783020785000160447417534122322183282588706991174611193709628321540260594858309416814402175980089863587109863231011521683039229709257508793450098706635030633847493488887552532795999381834584862848198266737317865726695291088684143106582345338598256639830364845794138827239126761095048331328933310821080754057952484652448428511239547334409733896992376239955276901280220454589902482116984279620077724982385756009370837531460469352663330015971169990896030880580984888352429423235818306005924773297223963635835710087372052715303564655762857029028452839344365207476996885829743322764578486919980597874334523787708987893390615655008295839856603878476711700505226270240940854789925763933228222952913161620240796192153114639082905566556228605918289633384059570550281153934975221868661262083892972397398628415815185087147136859813895025033823239652345124555699251690359343278820053917193585690504805890675213551557465628644822134572111144037171377940013385789860620863659291319829386060659549781479722439580747868518571668750165407453487270692854783889974251819068518480459077698802893280337623960135523382735428788077535447191171625715933566733038706328433079842655846761474783265881575347346129332851704547891386675728765190548017757927696210638808353777417192123438323181656825753521962338081157135861803591800121215063912414560972317348636904012601238229658911467424511992396354649747268667746608136727120153924817792055503562030923886583545465998162837071437153062544055338251066940349407070764617455462032885059961998334363017689328598307242889558093227935781629401697767207438210605694509391338976385219903343406899396415968527420552891940289919448730302052089936936270458325220018834380636783169106778674906205369115934895054543636132388902278184548524574333297180236658261308912850786720674938436548176416281870269481574237883626182718354205789669157690705325506656789106503783701968499198993306223867321582795335810908043320840902511764020508544466732674816013227691365310736807854556742091005613875903483617177926584910300940629315650372868427879623871221036667548782320922454597819761906926614365167981472758084792781282266826145853857093158695509667830631749152703123857475746841426127608239881291558176040148192602653752221250883830307572833506552599303397230340125835227933309374927623883792193039550614642704440782092527083191863175468417198706080632199441695445369782880383963248048545961215672312023103508084311372121848597517146121214358515223642694026149823844378412454192272658890942849114720902335397637777499077200870525503692199147670176785759245344850045379802630230836110499726742606891924063936763908861896938752313838388751577777381886241480235913202482391817214025740118898448283678042859669690556370107254144874000192731511468806189846056989318834828548709370643380554361347029323152630071030838982451892143894482075153620099148274648405535126805589810899243970435310160822900545769426992992950786500088663584826391906190099076333123149803616792371315736024496545896417159385925127407892018977036526384677159576800595080233423154834171213375308166899268525117736456863306276079898998870143261952661460696429493815408932919299198673173164701289467976904584745358990105974207885698982687567990608737985484399623252510343114790154450626949561308283351966980250893755795264013977072029879515159911791906328183459136342849668577116871913350752764056500854873249536553097708139495824870274469387822513648159755524455667679669363263854168146501210830068672267171016025793348894741218765687603952818097393028713892027768511758833743898341926038109342592220115000483873403129618554271665687147331102624794397648239431630248797151498661189203942537322552435917220742978647777044851337810574200306996668846491792760138349643107849470802654794619522770557759267656647694041024019535568492981591125964167631308637850639838481309524125945574385350378755732536440414168882998469640708528912059681170267055846764020507096733032266943268844483861265442760569999607374135182193591028298224819403503485701473769777196368666925975514001767571844395016898420874883701961647386957858522919233602170692451152171486715578769074316591805719784029462028645967509496401616096457151601123888552884122034166992146291355925261291666363245095847130872310313720828445567802279732308925742540899106023303627775506152486968103725847850772009448757902786223584671020542458767662447869940102882129430184523014425725441753775992113760336930011126061184971904613531290182557327213728263590925020681483339372187366797264873379585311758337052247168004812862396029403080156444374759099575677252177472202678097789161436185120510616691783389017596595277367716031406399792283398588962737112167289640485560503956366650576909177745514431948485121408402711891280558452113628076926018498853029581878803527501370715301336065343965474367946533807087983699716665174893208628169826342597969450848447340865076845207868780203155539979101816341492032425479195450158218196592529416559726479964405416913238469268741828887297591241146189597753156340359835541436465991431995296212783931838313962838968760353764987639737006944994142111637521582517118626793370408972496498567056349591770398147819519737653906857726483552061926132813948258597172996030230958651602079158191121655574653387975794430832545027766807928209971520768997722511627507623318841476969100754465417466942600591695903506304322360928260327014940217666318810844532508308272622377939338616932924475324893877533942345442165089443407432780897926161430520300125569327170684408577141748611130366938880117295140094598420547932787314767183280468402156460872800230794818394845030175061783227532833339532936632776500441037348135611546182016044265250862006054015665566519869425551405890502437463762709642440102904760093547208063269648946234274798066526398835482907268341599249856246981155854235853087591974484167977057753798188966250067297296759111018596801223767640690689080846500658080114106558161761223662350227746880136464242593987234232772559919016243894433230588465870607050617396936359963901914269235191252211558348355230046241901825426455260637376738724969854470950761691939390236175916926245468935619456428649726132795701727737485724008196533795329032136508099467348889752487064164220053301734873586737873752349185696500773526036618360552728348886431521905517498058755815623286139094898846738736527757413651502290014374114070937458018378091891542359884769972947405824754254813847560501962800651453188236413948045483064621656364099158229647438580437223642774428317306908007228078718654492662637714449689953602617743131634081474534611329463304436194647812598462096372931541023019742704505644478894453411141881102670287018491863413971844015750697881502482338511315316929988680265559128056497171077895140552138513341698044225099491389803014928684654075015988854939758847258884759316459208049584214140719238347433472251201497033934241776325383757715566527607157016602010002608790319293496399179411725589083221864610194987158516294875208170081519356530713270488873232456163472444068957283245285037789841571269374947605831346820300248049898850280938039783454896730137464558155380828874181003355814546063671474924587792062793987818922332775560549028012634156166945836655382213177315887864504737586716567743046593545076233131577274069096982795871578147260199039717947391683768344850982307982004974506725692050655992682747159458365472684619594536644552483813454302310888511821026069742444331642280155504845837526437445287150922849977157543028887836128029935550251126710487440863143252567258650705641624403731832441444271814868092442653763519187192909704472978827832154754246617236540037658954339088211366763493925091216923956226128913092354647961807011879382280960808323879957233206111368387705012678568759366732461738049692184478592211479179642373567334086174851964985210458738326406942589790200141948299484007560544179862422080226085842194193258629766339196596821540864104596066800965797642759626542738066286840039281934954285725445424971152007685688350155719783517436117598417426699645805698571209555863224984196153715189670170707822246494020810063814853126239500402712348801240130429368416873039764445553194558903605452169630105718057079962283676156303198798204004028027445316372754488700725524869192080831038336759152821114631558788738721266455951683527523820631888569187580829913414155057565362041736964060046884343818138230051316451105363073449429688890454004960391564734977306695972284897804988948558426715811493484374874842942573462535578479878978428152170408470369792768445848396722633841313798432874682064793479290108610898339012107659109093838254119935277964331167854371118335874220537734006986199229898001283500793025182588809594164641848734211330530178819376481595069233605005802831362822784015432818793295353841953709767161054337444093849048475580476918206398040462798453507884237065626191309798159838434765547584266658321500488301150893314788830576627538111287743362666632657316840567591837516735814325639391198258705756699586947337161366087397043524774775095079587754917667675439604265479060633833516124622355057748390911635117703040660788467035032508769363793272573212388806382415569951111904932175105766761558447671548137568108206042122517499609989974496153089059040327500611454786709929171473523097259156752773849659767904431271431133934080409259522803437201939097856696540114902660838478962103049201086782061091725944855139463393142767488724961088085606089572965116635829213905845784306469973455743401394348008458315471544826947401654276237779534412184269059201525849819547074961618243067015323468161654086901785505318646309902669187740159806790496561415245657091180883868880197789546250691661509928929936165089178026117382241586656546055105757316100894588298295152444782466643196844200219811318890827501897170388762617966696611381429202436379900196179193754229272323472303314095270796747227613373002134336384556238347079454553487276174176826098040176851681121218381350492170882211983542563642014011805211135566276328666347589257732004132146400678008784586875513218723666988526377332767031811689175985079224685866149022365429437165790655730926259633775420303373534575540219135117217242701139042074772202042015558920563415250356282290403021755635261440983639010611706184875246102517961561384861887009704164665295487186143547488936986780139805812547529666969347468046688682752991792521543403096277521230578742298546987430047383384708286190195290112499610779018050700825964406322976905254302703049040958766769335433623377389993291559403169273364625164033552685372270250143023368128318143051076735942632631872914747539499090495815096672581322918256055028769812187332379201087158020973574227754778220001972142983262713903635561010037689860140151266435758088707007074673121573732794229225155764834201071993541999548719372891946524670295504889249316066745204660155365995988078946852364127059992935129449346000521730293313923031474960961203708163577188885837846157041371798246672567129944947252819435591342796879432706808493434889287788007710406755372842216621291294756491736328316481070252647515078355028168531037086395767881491813495200832950067619950120828446489636235881967573340756931651676160964571863806166131690848376537994630120416614882338787380021152258400141659122857154167415792494900544398174041327535177086296873117562521779984292935427308287292732788436403592236963034510378197960030039778517748496049423720967240996101904180596782201005605818711359996943341803812160163235760360110163588083825954437717211514643644400852839366275043871315889425478533137544991920486538941462674442404261018546874991470826888377665771827569285570805802258519479553555420597625540936535443751393592054403744365477560418076329814315576863639725275088190852865106265625254564453596959879468828635981656898356194012591041853765032213056899348223487497517583286530992320244143954239068091545906520501593253032285897442079681734328560568981718482921265954548851440522821729910364284364972381326650020601875197909135642397237861008484138647356618326221801507110646241717892002688303647335911175676181839199612497804329079318300027607052576140109853289844916479702488466860199683466262715106629470027124071586288867344001725810404098712761531195536634776044036262193608025868394497325028129139487435277021080643471177233294199696281485675523257565577208103949502754526200836844349353990241050766427795864343770768029254759176356944904981621490177392917494499800262603953506203404708805638338424311136312742625823014424386804069809860876568427505220719175200132010346528674601802409777471194863199812484098780136700628704914752683565222571614241189173309314514489316954320954767232800376562400187823409539421555133414916090542953697550994974431418907342287455532607213763653732827067987715770790253970673461969320381858065100672442431941316183719245751735387391640046385987048909607900968705536401000275323011000404220836561439687820388902269322707583071983066275787887768161891092768537927576514631967930393836332466722475502670193969301964330052139594930252236681360847821459417634577469231984233486846321851860756963711876863854229496013427713695213867298001864802477208370435313184443909102503548854658326209826403859294147767991686911082768984357934349499312411866822792848192757941302466502042269177386067829528333016444814275559334076566062413228205611935172810943799302920209415551081808026254339415028121664424149507283909773707131263078601551369498747646925840530504169023265878713741917858350671675104522799732101624032282831917208164387852976277144772160011754452279228202118315626718398640332604019414719442805591001615288951245934019923113714641120822362670905605976044156823804847940798141723156483092263290159184705255270856380701148669480503227998860819469128143692105202915798051525906407411649826287911790529947905261537703843090713943752063158659963370383214336232458466018264376660919932158768301929474011819880509590410931087355573987713756720820685931576185783070607570189978709721020600204147062725669267067109532166358527464457196328610684604156723524800406662728211382535696855495051011961718875855100647619327811908796715087568601799344894592936069598012792786898799531001695703580963141483823655888368160060531008383688461746445974433962739701268294105054017172887160747585837237315199702078491456284748735570200446177497148496597916753443925486863036050637048620438658134653165535358595260110479642053748550865717301095143239575304795718413799984552196961846625134141423816784524536860340925779429420870685487803280143787136874220675009120670749827656218671853070483639132122514184970697058159352870008184870984530758792445667795971748695807968280776899615554978051980385947068296936967763160537125009091292428187910126684608276016805873593613598710691410528217704978593458811110315967054014370358607171855853391099877956241260514981600182936274838839655576141363934379945187260398260383824028264101209063655104902258641126891089817225775221571858829636130584031440956818965538265060637125339369451521464670686864350310561619888473276601670449661030321165112915693238790362468601933272550511476196099878101139113789972405299592908309861076704356353355855715160466437951617637112020489284953969217944678436921781728387241444653355820848308958960872397033552331576854567495832269021427085332634833709310948851850417475427644180338878722389524965541176722198546087975095377127314006863078123378956209899851444356368204980098276137000023816604781926000137024214500110495031763657071144861917997672682068675871834151718949277948038247328972861893358796187445242103361614974719133491849467592009733831981615909485524323026678628814247910334904858149458157371327578108357171841670211245010605798814507377105887746550928532076851379018461113692268914890354915579684616330463920463949052973094828995595249518183827971476636990213164598217588953919089475838461422827126422975322594071939596009539357641729012501318546824204997920021744701994697481944857929386920583295518019115557362069376969238664372111645133043900764249404706556302059034037703860478260279640439119237710899237711369272783793455802169547183006488551339681421818361763427334710063120814577213364449114772189675511659721935313687533138414972360411933225563694994266404768335712227340179972084846933645247992156967009370367555503441742632598555021226862670641781310970574401114959426772012971919176026042761661572830009702980703332629995336286784006136167741470820096086978567700865355437226652363121370895094918525391756619953864465958811725462046213248392187721397576147529121943420828322804710389291717875536725286424104997176497910861161118952500837609897879453484143547877101438694644323476750757008921627487614006830414913659154208703513003996122283380733482145915556028097211620662465058906490872541235565082894202195471459918326145945051720395858496456925645567493641144673931718479566538879231631342954940439306896860363496542671496594829101709818007943675662409200636682472182627488151354650376890449645637256317281028508584513176257416498726586859867570189215485830550003386755137876146442749059259578304262383917303502764767607946565463488242392536238465165046809722785000898750273590891706410964714019955564784076207476698641339431842228808669360841258086033080241264856893356740489019811912025141751501453442147290828472017063186281538317526149929881095572084136419898294423388850542465356646116377395114551839363591337826268948470870466268291559726624602611089100551951214875093393723641642953128206746675451759373791996603442065260370146966321739650039853011060561205955243151876869140155117379664211426169525086660452019965625427837537176411147180804848963779159445892167906961741583746168817031428274860701743864369547188414411027131251880789903957729696344016290767696877860493759469033168009168269872934312463227538330506427346489522442161893874858666352909778935187585765509529036105724452814374098495601749807633927151877522093491329019014670900152046087844374601683019878039749279062911268276329301586051737883748862025913157486060923491638397561915284769514172218969006771249206476969916431230185763967940954419666765008479610278499580333809394192806190495030331985103753392437780559288347023576648220876288087792892460576691713438352518199849227543695935983108780120992526974931432231994933142457508558685243598584351981525700008382135207733609105930551371125753612219426271423106264994154656322228390680606771363957261599704878429154636392223981010069357742198203906267143561546572944092517438165227037512198306435574515583218436912688113501589451265494899813075539617633032667811888725006699452064032530782670067609536673546479799283631362374723820426762252958330255419127342505921669049131098634982218005077289481473770818557111121367487143032346467315276982888685562285703458401292958415726623826636025131647501764037003947992802985550386647869966751810073290003736752658226370488226105284904485485432567777911585389837541629079500192216069007017565457564864304656736298871603059245791069921739978655020015082113490579958529155286307401745908225498687023769846922306321556469579060723427400110482055964289876988846065234235279045436988189298605977108176032519556445739040557315578689322098785708427224618157248603666652267840085451651794074171856525701479663455560885289963270859193040816736362839655575442311078869461892372965398185322465771663785100963242630933197862112380991939270510846307746944868255338621065204579991616615645463777675910474246587166978655954926598683101626389448055752595216280747454105431053737510324999720500829575260215414939656161443001090047159413191762103988786534926323902533320322948858074695621842833476771251103130076992943830826034480882655575919173159924906042201730542450365782327996634556092175190237881471322420739355177626519839852917315411808616997524779950671005776653523595138821541024576857829732678674151512303256423015891964545473874883395652064755247199630897932951781613909871849733063517820826726144060908067911715100865402783226294373267229221416457678697462924183348047404738054947423154626053530488506887728399121494689597145049600112168405025387456802164227895723138090454272941005266152727323351109896037965174618856338969556711567920226352110098938805611705714276887854102596232550557943527764563858121634347377907742287098714059119909351747020798205926642987433286647101992315338670699569734769754996475465204265672359111744105189395618149894670428068886828128686364474760604773141103373553763822356543215439820240109611790863937247090759752097717404182953374561129577165154312626871579328484827307352520174955539814968519855100641651283941985754423895854608823421232437945470642849680565394263206981232116560939081062271239923406671858251983541918083251683659099333012449349528494064225233888564212238548692910002369918726592136689678128348562442341654355705734090802058315279368673608665509774785234229620617167371473200456840731926714509712461702415538200094664869103456971364533483438671935868316437401771996138321537136908330838719355766804960264474702751891343297471828613110123429687512979985558235199931816433686848454556939701191881749443679609172945803237514137684610875624934602780573428564016797458292834397073723821503169679015993982734589800959759983645668813542619376503237013681385232618222539503801077697514379317410407251083021396052806686932515175094945032641254332128712316188729480317225842969200830269822323817225504399605978029713388686250891214239578247181834033483945743475805055398612492835455232243110432691484389832163376582845623392300939500740279108877948013732336023491601850226862136203340301793857421950073183519525493811985663894172847834107302462807941199341532269055762126916723626811330295660397210618142628740672897972521190008961818741837109375197351534223152213149245412648829184522033563433239365161567655448225816655654256200006326766372628050459452354022560422062361398921420602530412758189724989415811236072407346592302982144178650632168989970536182000403747750560175477012385835680718893898780059933034552224483272966436470489519877439419320216246675106045457741756990021051869431047705328081085654419820705126481002908996495070120529104343188996443996238442222782793759668599802640613725500447003504055027366703196128268406661253753278249769359058554694384287824272841826886625311256112663485040893382322475027759140913264960693007225534226408107150204326715925511593109391323880439825416542295992398615008629024972257386048828566718680660603188880180646933165853325978405863076502091832608749812208515005494419636486022570847112637252993724692075097613371920823018349092829210257509679031847772479410029525473959437139557675235980346244288702509811919932150260619103807722904408922170342622737933911370098116755077781791430584418731310834029713971223850765155111744888660913803451648749997782285608694639133628351330109524218861582602499900839527773125794577923462647944848570320135424666171304140106148626650185499678600987683999748577540598924797197433071898474598996182760138638386429055691919253324631010181465708093323144217681506986248805608743823060894113880922176157402618892786474608588506519515223983731300627940930610107735069023973086764507277480804848685008234196154683544142752684302313343934442435517613796138326177112429107191519237524783392860267956056457505948233723763144654207598415785110443108418191608290615692824203055108265456254148501074556381930569868205908698133177751677148547522200341816804807600625891157764901952446775443543843401851010074411875330278263351706365678268540365942776906238640879704331334779694811432636957860929776065773014392826908781009573602241637007485428221864068759733749979282197505496196639637992735934491721859990906517910416269278377695493021603169545897968933255454136359301471079336694865606038306448944050329728125200437835902095474664111135859724807159775028361211815792617045997204595593681755660402441688937194301393185632457379829711632574979733450417463416315980704340572945782619463293089356408441105738482440835704038555422728601084588824257055808883330224013733796839181038261980708947497035247740796872106965558432241453146614648828522506317459711044376584544176893550146033980015484667896066459844949932870261061651351157567388527012991434780558126027603460697986779973327152780603046143856959852176589487298911429038433337173555673909009960855065343829683722237100730462011693789797387768516544559215532047882820999887821987622935336545968691430199780951175017739937397335321638343285295674969329719809091795875822363148182086617472464371526263864375666405675394246287782392046917132713109428883305229061146060541495984404028497281052868941955300431396768143731087399205427684679858162755982641194229386677079200839396612295576604728396494846874619986164013425161582590887643933580300870800063351946349909268879153582559111912062575088898668292454988616314815807302855494143994161297286370477357482289766000358406946588611265859802717466593884313654576979821810197776972592371626831396963070138699440998690267303344992590015627040888414129647864665781752353624712812646937886321030190605409939035881063665533705123225355147521646903054325769928884797194613666526683858003836019839364677964708927115282569405267561059979567589506388061083572336414543773426171675938648884477954440812612357344929266948784188801417054316151761015576062739382201543986581708995864986433274778777696752554354239596356427790341266383342389299205639946247370120267205749557443043846082011005753834789142223101218445583035982334351268791511963682017097591828559519239184498752762580940456096361281980886821855319492133408240747466796291150467429757679755368529440155893565517479001351315929489381256399078891373002979378518100805662120651626181582612554784246632232262745807676840991124114525370472882988637871008077822697174326274831039291843659427460060939940619796192005886785652271766176276519966551983399566129665153190676573269312395628833550954177175483213566039514142446754102268764710215616567780614218458785707826010036810192113267803121019622477358182895855871792785406763560719141405041574647822602732481819809098509792987175167163918576260271516819915203661379530467619330420446222151994043130789142754164794668012465165208851100331689793214999411511330759852959505021798348938825067985332069860216606733085216434027192065751144116794685959270166323785676471355850400220700810192000353112660022424548611421488239152226206531085241868071047725297278743859530754071267407390734046120053767003185862992618144998063829895860267048735982384743676559899193290225646460876878054828912569955541853359609559193719829300102195518701880651700023717179927459455166649628316082742911001768212470939105556462178056370278570075013645329083604979477197230665895611820293384119525596967295117790326771618005087916906408902738699634967756194799123750328846329926482250249175115342535116637270848437388468613755204546133952911375799134708452626553120815033191819025989573926887757986617449661794165024411896214839369885891766551031449527185229143108595984657446599988319149437480504241202304318740490707541701194413734782460278538281470362604983320251498418825928241696774803881247476732232886301602131225883241629356808801517352754455085016593888777449350413715995344988667916201992566150740415610529760944397600352298635638150756578710859998481128243593742354073472448757796157956910375177686467656445829717217284604773531147257663134293819119022948571319609486577300232943621162471035940689910099142708448992797012101012660086544956856536904138228890518306471041033663397508401564927378589470805730197043573093504733573268102422805067807878839309081964310367662855394828810676273815513671282545855299233481239679844201265644659112495806265630275218689459190152130669254274144024546469191768214817874843063126187041224775045778140780847803591825967447760211932489403709531280466767622835774595099370086161254837932332418106715321043947576570774651887444071974296834655840464718495212816442729989983319512027371977361829173655369706085587084592000869134360081984063765906466261282801031779811707188396772389397980688363129271637766781806593440256858280154360627871945157058596913261609776809975591334630515273153695281334090868546411973393835700423598992299951043162816114284190790152998955244010095921992574160846326192648120982362518381409162586731180523151462678485003393524186166305626589580804922455794544178808300019201064226860013112746274141115381007024232804307848813663585311950410644738342991283007450995493094308967447377895958308041296046578257225382506663711068492715512580473789292865250944631203573599658807498966964673562261618749105294541596929950800877600088245042047750157434913479674034863340658226555357421587725196071168937921427504218258121421927265842203837447884812689002147618669713579103807383538624023670287172164942560384229478750446384991597649602877533207317459633314772736392467340802002504197555211765805360721501924362826694584750533510706489143436942564529700546747280866011412968520634191037798597142746848506815874862244602747253195391479495102995052312090624692055810068646493053520395725535650038004358914401747909687197472380945879704868452271391336063422350655630373597232657939705686227005264805056332564135066460611118301372193598113074601431450611013299212871376094990262896547571322457855435892512044004308417219845305599390560023516698213422536170997022638688572542706498699762001887849599927418156815003953991432789762151257190923920481793600957574294886809565837305246691140561556784383070164366833527306910184006370551446267626963752005160968124526909916423072476799492756958926658063436139624002128873582436222891280149521134786715954136660910802676162207861964819891643920791952487719328094478201269969322392904284066345056704718723213690595074445130093445973458934660205967047100419790277757289951954204741465050584579996250502122323520297671860372214153700486691789597497074145556272781813841607008779091598125734941652768230584509682808257829466349729499218211388479813872446875120475628443992107235698413023299246137561227874849857382176327391778997791360214573865308999092583024251413584343544967556655113513731113950568895623039949511680785307563972652999620564868044002447474891044145517526268509685141597719306669809790807653250252169996029393777581365955163530744314672092361373457468294765874649650482710402283971252945290001951639385149115309241318157233201974424451672638978213876576074573276773077473309632629683197407363743182126305210196084547440790401917242900455803927129860187650158256713605726802643748393325704965748078777104821951255304062144236901473580951418432545977198862147223453196887802668510937742983825001222473250432401101511523755572204366958536525495795353694050653461389489593600149207506568035124287452815438850353115374735930730259041480238407785851283371583142223578384469539981428346395075515226703681028116555348973854021324022866632539297838330094459454739801662852534602284954525198558373969888106580083483997702351426810197841756753778527650866364315165932071166632977897642131580091278839662820787418545055553757925042619822792712636704131108127023295841357503759750424296071236872601950964314961077735169648607969116535104821002654970146869449013461504829718734395336904025123003487876902705393809935073933296776409706215261994364653357806014285110863255587980253653494489200481559503752449205319385249433474373834703342660342028733642896544733668147536973299615017729048236741085734425072486985281541204580933639566913607648332344008909723436459374307260307777838194823260369761796297252336785085317101274257073442154222107022073628920655362787797123442351729655774632034943114448882030602103481632761090610026944561687973864197597693499509713980846212626332922169497950758901791015506245009434127679108388492893534109843508846354241652819536062148598026619983595936958251940060758275741547163829817675219950236496253221760300097458954651843641051713666995810055314888504463159509627983776535667563850499436987876094530140584925432631487485719136038648095785195433868310667475501716198173377271217388187910927014203751859226925090639607564975977780905498849945671146036854138623455867628128460474543505642900452073690325887958436736192202315644485364521087833654994948255935237988286672193778174885825898558202604588439909282142846189359839298601599286253308783264045622989233807696712646746961447038266974420794058425369386637230311812991781625888676215545395895528973181348107617355460668956156025422851954522198057486665601616514477924251301917389525027190408435850237751907934636401971325999131073058873430262566809483519204617807821325485124906291888682319865711419784903252477446360245472284352542468079117356879866431087718798994435702918330923052383773975084082888595857702017664799660929951424023060797563898614993021141691884085310257612568813840392262696601726962772647223929576757497423521235567266914050364669304398503597466090719475141615099435141467555262332542243846060816007340567520578394721409485779515047646965254988476374977825837081802373535912761663689882065755232299670894048577332278792393924325382744458492450053521440375848148685174909545183594209826424519028834340971694392537132496668670606984620016229822166779705838716889316484374940122567293692778836177010238694925622466453662287487191629067443388212855838381934237719123592979685292562516789847977730455417394113119300934009741144181072848094989244187350437808612096921844103087447865467453618186859898488234931300471829425694394340988701396311827570181124773398911865754822219088031596775527820938600619479927993422015317584849830798792634370971454862105946037180056315989084076161675598745195387452094365703921958033200745951929163062810131863506181753846743607946592031622879950929796474020465328506752396699250543375230040063102407186972664924834761191241382833171153558598053147901841609206039191173984879441723015446757958023014804724386652227123920252499825482340105730526873049275773208896607984662446935214164530896734207096472284044154733166766482751376356437892725434708192218874063399602098188993122290381130571016545998883526339959460519156440907757272041241901192879445632516328911958115878428632940748448750767426064694932203251478667638784353361422362239002652674806107041618880837411489965901004183592339105245860323166662541390560261670145071147432853895822570946761296212525892579970212519701906770133200443375211496485418751248965437199398132379492848812358453063101556275536220449398785118918945989935149146145677795908797896019715887196496422472323204367784989012016244323241764383129183478207533438956496273561973834563999531773141080337377930226244492383975970393109030712535945557521150174371466625013029347493327643623087760461327616473592228716726841088480531516307035631267800917759736472009639680938264483573002931230567269399468154653917162474524766568343474049627053445267795218637219778802232583856141887298349567581449321226728110023673071558902979014652432367556526894876794781437631535743945959577618728307430216817730637937711874302027777546421342971930171119554784883386870418023003143655310688535995718645382569740546922937127481306927635537610869296329156047172969944948644931598993609577664545788503446973052670951521578690101594944378636508244427670352692571946370482976960565823644729180324325818004883899527988973908033450725635252626436686297628203228564898744192368889654058153559068092889749757592772014240106631427181092021616283992878266891667494550524004805409439896801254469978141759578988455037948571482587939721055893054286426566710318875428428743808329837589751076302489146179078401262693267467201462355828552409630122312167308484393212449653870120611411497460809511776485603379808622484438554910074947449047595751074099392927597796702797075916744103184063506258567686005711716571073965419753869243215852493976281376886523238421090241642565450308256440989078775772715726982401754740652437667125790716384507929800572502320069825419672551378709866436015090896109477717412101304190071765206090453787479361694419468884414204948997153766686129597751649632429991845337672538948358709495519572120262957882037419307861007747041524926622644767669695762888771761194690540889809426030602722791068602478378257839782669654846675602671208224281596918834421569580404755219952213760048068633995210715994393847355086778769584092333644549133400485584869323850211583749970588910933611178479460744618642567204942570877311856089263065009566801794817176339395367062701330897337130049481780562057235320702429726129846600297792870167065107661494893874238194932812517039699350256080541689470613130232710249816252148994147521863010361127697802193973238170039994132210739684163336312430903499844519428833821871304521810985778929282539896542726212703236798189514684487445420447741842217460108614885839808841663749976238300071445821480431722715077798514513415360448445326224502491267329453600643297778597667996398587217729125142035886807276927533716350971842530508712466297316068171663422025854009061140671742238985144417744063073646127881917801559201018198858670605480752468046175609598691109665156887871826671885483118082321144468837309266589597940187890539240076269997242461233270398652568539468739584476904681138012579205796992125241100341947063345800055992636070726226847299969829439501977413091724823242439991970265230804676264144141623816714287482787483775487524954548038001706125885004659089197666675089331254713040650308354897965071450526562516516837209893048473378955263662360526596994924177619719324877810746398058912898189669991809826021774972209517175591091924494223202164081811638693251756591626747904502570648585360950462779873511817449569996171454679431414906518258663398091147112121522152048510947046145714037816540992435151183115115837250326417865056739791164515973949869482429220396700069879602844934833034139063410349976104354617331461408318870368752739182308358096573828533584737937980917817180397280201498914164770197257789193017188065263019956536889887329622653187447943703543050597522294626404872213285405520912590742829137094322160724393598410975957021421022679333701132184155820091514422924772895594364853792008799762410011711209781893619539295616095497172942746405423659996280521697447925482894435518282227081076975051759070644148840023318104507626483998121554336363752272043738083313416221670138193629370905754670264356853672911750900285266997419519121541572926731265666040719716947218443086676808999007453010960419957739479372396104511724118536538166851355785701461505272014103614088241780552494105087619061372688757312445756449710094034785496708229982594531271577868064675251362409353241396190097954107545190325026852029933207551896397931704532373265102436382732643753496787307999892216319386786531940037050429697561912869335106871214658727876170607768925378717097284549119614473686486487820424997896260258401324070077601817793851708709780636134871418518817730525572701361289692882511537817548667668499862586437081428449897166366167710411729882431599663270927999537090175123136640295491405738815511274868397794540988632668202526220839955531187005749643938658224375905939699498833639443505902854877587821730579202032732811162659533511878339866931588123679216745196488882623013492290353134286627721023967631384408860342155271299881673655920002473625257630121912442923606173543629184573356722215285212455232005910807473289979196557885798283039341253799005155371365381901267528448122697098538658674227458906364287411058734642063795922652379306503062521706318194938501275222638241471560017565346971513104511142080272748838559052273182369672220032063527381809861247066483686231308706818623406612770847553305908644585826014176764320084718521429650785255581584209705943767381122451130524422511658136079523841445728498175687287146048728842481401839250234762118534593733714372564281245826921867345886960987611078586666479408319470053250395637865362941697920573612978204170019513536254115877585759104359357471399719398323829254056410496715371680106818849126362122499689449781659062594771655527279292206492070162121820134881950169248710139854932111798417472727616784147090046300888697178476653812505960832792372967273439075675529401933205432902540990188946843503560748133178443018143535949139935351139664997347575745383052821206989294380097525713434315427466513091310790934454201669862388296336432650847990691780573998640223609596971342538026486072654052058895889113141058948501501416125929630542129323040234192636934298597334747208783786542543206175900728252129807489345849312701848119070176799142521724101564895143779383434271861112550259040639071673548050936287937621861320012286537510547173059991663210334327276058348968114689864150276608997433087618149609110999329745767346223808775166966841984079994988806951165041819520817742698475732388299645541474444815229666613297252897542338463245558423234889099518979894203802356980540256309105347238327221393750426839170936868192737715763634155708728672025859407717028671329065750597782090877280908702674158744235972249797818908553094656063521042733860705368144991721400752315684190641290214159646628119585884473569913739123395224253001174088484728048640022517835817895135774606638653175821770561468619708194298288719498456239847016826484662382582031575596141643260596440514608051624728101934409806148312206502889224560587803284090772693509618517702560918438316997147799444723847874667552573590041563897079305666461140881938419559938266756382544786725229428966909839429636952705877116336815672241462901182993219242912567275630359841779895471742380754633347822131655922169486943501108741701836633579732246369843026107858932019617022417606092585121935367008968023190929871397553847924312343549923218938380768300147284517308173653406310816986305852078328533034075051065178890272128750917663815002634871640444146763349967381570050870948775958481251814487587870704812845996510837794142269176894639228251900974519675455510481965489146136800232309827132058850476336639762230439041048603625570167970180733025892558956329636044623516721180827561844146831485034333459811175130934463981412368902933449909210477670813804578296803376182874545088463459100938044289152591403364757897474157531951561621189868904897550594119781362592632450248820292308532424506190447183086117081716314408338314092529719647325303234620245345864602024295072876041198373877268758951965063213985416929570040758615082467934923997529199571205566403575600493068544540490216812995942526732366034521931522824366086889339203195490765525361722001470171539327763258246569956630961111409837564414630407429667122802161591558254534721056936895734977065004764238153185191803775072265820528599036413265651379063193555662191304355259206811260860551907937898713568163740660397420364627989161262258029973021956728841900392761950092390324518949547033206947676429501555403565293554660300835119485930306765076884666454701223175269201773009412363140697235111506849686006755794244051952885770868470398861054569173238794047590839737634453960882885059573234903993865873075007674742142107327623814605837557007511155192072101757819448340167325065714453060951851371643386103584526011476514020102676007117018033838838138219329808868846895462106004880659544041333327460696639555915680219924460186909083166741100494162203242416972132983687110393859921226369151791070083542344169838531043287037832285333523531146554401038022508273862915831814963510910494540384235412649459523206623518172784855717522800948290033956815966756240403652887934006992422533681559990866704544161009148853380859888612537047274961336326447679771445542196608210586686278213572705230223963364489948585822117973385599124133484143081298396430403236973102098206000073035586251197666713204409590118303606826818192810968557895736448830093903757556675695188092921770928049325914023319885622360949478369593352129649814937604749875161758073572127962026580354602881498838859206317306833229081339156637159374157486987272890823318610992880874459426166298951447424786060075945867135692409629746800879131906792148804177852006201775526605735364642387134643905610512767222389495037114655585654904311090533207897101492300496314838982806827276889814006636881798077125699609934180468081737542145421462395969464685258977024747676144214153126367363565002128681075403221046404620502267962902475448522872806556047938676194511180848837168334938480078572061512980408872527676067089587784734706260486755156653537247706007783955278617113243388544187746283246500371648266338152667258185458876957776056287052118696921284745831992243803306030607887668923153976327071639385266525170848275357397809221975693890891206452640403167445256858407962673733772565960419925951920581092367145695951642225367839823993194011494673453063693635269799849563450553622222152450382191488499235314543852862678881295372529109958729927295783626972817282356655003445516639873286719400851674628101401288678434517836775035284634932256814852413890643391019647172357655183626473909958958149959452026706150339496210200917278393146282258816890348806987891594232740924012252467370997406920810416978798058337132049333253248450004834604112236990726534904992235522742420771476408014877144834524426564840184525373120528121630540693605187968106331326225174602267578655785117615552955920420887857652632308653078545227008016485476026333996374094773387085357909702981030669373969004003232855054486371409650624489032308710598531088455688944260213299845553229970603481628353127205322468389530463179584462984680192090262343136059962701595815498991205464768056278539033787611236698559041185863448255941858342505729238743587034108551883560537985557428406154622199139649954246846030803596490436164430971938645347969781368499507356963991027004132070544056268712479332168467221304247220416374466197351384246818698952290105890910881518210850954392796626252332009898052442644933511266563344745937813178573643392430553900189100646281193241819614196950664453808911659700383790507548925857656647482479164608945994453033695714923809333816671088779871889370937931079269641014494623081969110300795299162825873764521974717741114664030776292565775304016917306673542449524087611070718460518410871751359163516753291795171332147340065814130420807918129646447745463138500335146902071071802582580521188940756313811664481339035301999417503474939605616496131731856458410503258419113825780670187781196393263635221968251018897733143242972365514583046571174703930302890290963426113529984953451187559335608622623069071315564586343784266412366296274749977440577874852254539233908296420694119976948152041909092869257113128765723987008714311248115578079604967146408389379526396731108598819319125273558088777389579662497497628667567894114397606373980929247116635186429001093114979423393754228673511147345180318600008776346981501149619123303963132347430214291431814487288435971397485522535942648637720238127918638350662541012439953800135558284525326187310900281429091982541013889356293563606930183738442607541235806768126792799708308490088140123076755960021781117670310406280177139050138581380269631609653732405824512095679486335295836141685603051556715749971361819446897354548868754950116979892758979244824374467448074180655910715585857791977272840435416154344757950274011628099385324721651423950398974795638850731358874518788167225158422267648123321840720062850063223314970963479046568172740717597379690503220311077772387940071936359581655230611204226783885514642942590251372054704009282606765467662357742204518405884145568672374619475345548904017060828058488313141346548966666444969029316376710163865555363031323625415859193022069255744960556314895415788802764410704054825021407017300225751072712078252486867843944285394279161806357015620480967467994674608753131436965067225637876477572766671176038796080360121678852898650974536324868587173782002371640053797493839677604901935627905819321276151128047716612013370214718700119977608632632379782218818848069341731804509863220305922604359450497396951172155945238544166646908249834417011462714308964272477505366207337779182443267823262961722443793557075936200067574106497987087339364040339625770962414626332406222826928635379264504812591627983623683052255685070432127521501583070299173636988416824006903084367915495665289335509829882328980141806766586183260921851828594484083498299204988366244985777238990568867770949222116727420170903342756675740574144306808399802178441941591385621267374504208216086307688691475884296524528834356184871097609561484926839303491850621371350442271930107915812832691476627502961961567137577439741629624778579662653927537839502384057319535338061873418199340460544779576944916671597385849001874702144599867451458937686638825330878081919499845574902285995560146856719568519473237679970546858653956768301963467442218432154900245563373685454384519717740496736194919528302818913834104308313519166131412157920178922736719537047136293750509419238565342629766828736378926539913964440641223436290479740459872229913749237942645639202738678657892302762804380798618633644076705826067979384625713208111740121226019336938182329510832922723625230175635546506384642899857748321034458330896737920543662063938279778652878701326021191251399254699250070881979198479799398879544347025350051611711266701333243357255598225785543792622830461062732569070014198181989946614708032165645470398320319463159053213072049079017730477033935043350562640647119887607017985480876822681398719375920315700008811053380779650144579434068002847483961108727661567098740058520388577511603571612519053530965701825203911231289406027259512144096155007790925121267581783862023674716539270696770577146058301698763038391122842352577183798556930552064215543020768266371328430533149761039546940880243758495796963861619733516810948414187547375991908393209596882623537882243781571481726706154006204210506327113750574816005261652991571686739012679800681230133164627362647222857882493943283337240858979074140297817598229379600915946133689595196648276448456097669301589014826406583840424956094594225907511954035594852245696758361964604505902506287050996314018160556309875141313619749472188110104043195312793546063780442800838581646320965644347230398726085704533635128669115616145443529327606126598790094989790235287778105268781827444711214763881838441744331297774218235029487691365861903181164041778240676226239217322853637373333584362031321682760970399290773742364383943761275854615447247891071909522810355315075196836178769434780490600757791194581607145311011848862334881880681298227227404022050055233802455726293366942960719227464134185337731413582224183285529353751757341930361237347818459799885739710498131394953202468043603805826180219728072242764626354909749786695266015636733298161880426614341788599230367435051033848494554487621308649438012543140108900143316020300906813615568576315259560702602304900470971147771940666418197424358897197122560416602774031820970249949602124541047669035137228147699285949068652676689807196781677276479897997828184628931527804773341997830893129921340976366623985881475287122001809582301570984168080150386021443698427962996039884600929138888543756460392488912479775007853897052361373289607335517987139682923384995866708784665052405022550363007933715466664711123272907025112994583017261342630293882545463986709338115571253378824168149220544162030698974331489251475798046795406194913363943700045722266779664660095143527979322334629256839243602704126252726619134256812685057528341885160134907085124820481586015644217784540786006657548419566761095638978811496244324209126149529982503708804392123643296289781834939440278102611629781265467739112308481066160902675870203139657690299924503213867495223909073871551175751020876746390287733729875348704362326219203082846601684356390778483644780847980453345784843517980380559588621278431163336286488138527206366851369329907209097229089336867022021959817011277330744661466705366337219075120975717418958775065295745636661337160018869031254099418648780856512282446152221904507556146410489949836971588891293688724764763285688370004858747337701008530499874969199140224282393575252099352892442886301657930704131051861848828442133900685958461552627313490155245904156052775783971071549512141722366186193691884428800129615608185756984867485297899099362659084773081335426794976218378266831012898330498198492707664875026488535914866844092922253507239988068892336667697475154872111582770727506901996572109386651248590054910645058854336849541675354804850763108898283651270701119826018609610617117233223240180883490666340324718939453478668387458909982948573663102433292085365748277615812244959539389250536057598344275833854033702046158866132911457010083622783844453713585600343273136160757790247965648284790742619896985716609856059717722577511872600978449751799182426681763979987521734428095507922400413480704835206744898844818768164780594519318044631772999425802878610050987732721946390351894729072617937301757108398038126120454482993195848333075213300424901590162054806103624111457546161982200737720471698681584908889643958939619464400206403131787877182600090250167508714666294066094811614309493810123993920027276548535719933130582352162195001016736683434575086491047533682071765889432062783645307610591839289291340786188977151348310926905883618582245987814349953306348793200447395693235532850189077148656916833807574253779238717226701793143768526727907836678708374055020164967851846302164248353444962068890772780378275412337946832462288894504552094282351648873907332121575181848948701932046531381978411614837373682437279283039924650221202019544721093672839575818555309269444972709028058402059010337329696101354260557395953785178052975487606915971586220074368961757261939479256590780218260402154912317092000200940928666879853781818178752963067800481709152555584939227077380172851039525798369627216535614231219642945246584470891265117410980183885315337404733682484462376831981679271242664790324706237144249876979804283409644729343388424406450809718669203357868663226441623048206291127293990858197288298996441876713791986844868565339416648696759380476768512337949311585651683336766529143631488343991735746509384653197356766345404086331950961130753456087669729347615208005718618533062849553123440077474668341234028463770478714561303473135853166126364942719521683545375534151752664838660018197992201998645102062317578153082356387621801932184571737123929437235287975947940754047659635365095753264598383315024546153238605861166792348565426613443096945687774234660964653575082893044455323719487435296841816623579429221282439288344110392048508869016600364282771612201727238926120019639634120309609890459239970960439991806493669151013075508697426141828344621715826895423175201247468231372469545597408849010469018834559778593204308063505420861514251719924869055212409724440597367770881756910779048079522514443401376067579249800371393771527042371680690359394123425745700749259504221971318940141409876275163033729710374789549897032357083564211041623442735092468316827195206699672257883791493285933840328707684697969681683636383963971468484766815923636182989354996712894279755050884602100588274681558113303274535621831992635055668242342180642476624244097872436924058131037612300053815320057703624727827000805666665864257707652842267929133474212413142346031094835296743433751808629433873895885398806406727428153369924464175433201062980035175469389195790485464275316930637472654463286814456930936403506358635303381240427952287795515469884378431385155064485387524576967741884336690410681793571165346257440094840465423676144304524728452333534344582414826718501738330211204079425086327499049788680195766186009069229219732402845975502454416459294238957223600999105210664832690799960341135149310860859560450545943999252663800176464302587391995449854665833344523217501387358880484428301191967353729522561537642946690332522203932637902620947548438125138122091974859911755626716955064201375122211629480741475408558707306783033959219113372518845931258668962908080220780384836892854347154537483767128557073437760036298523982844964651470940746669317805642930819142120149679192993666459599243769989162416038399225023816555584822316877999877933774335381190447587460605394923293763503227929362623000454786743597659886951993358059828219792996180301559644536512623678754103648410507068199608705007962120680514115409024838457963038914494959155006926182126629196426583524771145385418461658538741005235158163180072653203413387389810199554017629072602580878496231006395103174953821874491470946081450151832531682750078858686536607767647301311837178385114186203422512151043320936244226264780518302915418239283953905961332349407130305747086120994372795743918771328941102313053799816398801527111294010394891279547805246675511095717985059997786928282760028008837838740740081982131187890792385856044692199245471312903611430166552029402841798012863815069770831991812309671983567059454638856811587586157971009217291182819192454373131237171261191873721810769162236416584123351277549740813039463924952824530037132169941654383977230061073004133919357334604032777535488353817642981370070376820269613053093472532794453664167651034543273401275135164661094996672972115941716093030486205408605635299676865908651146101197019145013289085651222100653815211489843793386314862867665178909381286873155212261884314155552268829045894705719893453499602071487424724219579072189965653856433332865397205941321256621634115207668082783091385569365412844690416115698219654401646060883273054550415992285945639855768563396313918507758130558230459368156200653544919547648833175880384867325054994870584389385322399718686723426171158304927684472600717991436325117472923938280686940387547093098059798955034021188448594487682338332302820636329849626190310011011963283865780862166789390297319402915208810727162519832562123585513991713212603348526504296553073387711285731757838254891160504989445014529434044246059249850609536981495223690337528950588541411182724282824426267525600257616017763044592602842400429479991007299050269717269070297492040559270853862984379801391124435989054789928099606630747655916721401747001976737008559613182322178957806351835377701495209936438051016663794034770098478085412866069671208180971839340761210580340677336696752161806226133539261593056999107212439754720808485587085389618349071564177918191403795565719462450737908968523219052135454671043437002528967118537586609835863557134706974600816831072421663597886340500277077017336070822254796986874297491746142992767878275581799411020991725847714095327361776419843459656571602324977960439096555200950576819736382866986059905319006869770714401654434488452552439732402818238811345577704726795184777498139502532102281819951134477156496144564863918182461149530254725346118604332448174785343830142207524192062211173808367560654784826383451283919738195821336866195244250667710723820413693308062459077740581191254104065678002935112123003182810850844001234954998912463214204042343771787577677057642562213015754235427013180645517536918672020493054038295133832435309253079143750902850763321418673711485782179366217228453868386369671801386682818186945561688191433257703792752780071117579748976537753835143320861667923767507752178642317994977341908087189774555404877465949455385106950574520968160374345896738070075091791835339574255934834608460962743683000600289977358153089519280052867581793306403862668992189279915240574626424993511182254051748180096173052026014012629283729697043860982743149038446674694361738733483399407312572816044566652753188783140827781918181678336619810125553103618353549043192432484503741229497132249743667565625721347750869417283438842443023711734337257840884255235200400709442167058955361014259608650158538778909964474596285338334433333615357121530657502692213320548291497405846120944118033412007777683206389415380584631115470290213062644870150912497004050296216898482566872861565154380478054004496204890333012786701980797742149779424746721859633882182906910684896970393501564264992551216265855644322960897925377335764974520519218976790528091712646959162127682298404148076776730816376323826675326399698580330951857527009095151750071973312579207206361518395928240299630682131737766112053638187351628449781510473777855903202724441943024990801081448101020395539154855336716375199664432409217659474231504336666521649193749892819564384485299474324197084230521248441948066317436441446618290494815552035872559664460673499241514662626096513507907284365302904302974217485597744574460409229347753573871852046737924704143933914852292339780147143943541851750888337495977463152326994665702272382751113087318379528877751922186333210699588047896464289821080281615238063250013918174875909961606653914657218135749738300621547577009466562781880661246281254409903212295967821813966959952334043538161566018524207187827126862599893909658733683326226789708815670955894972126429383642419263362898233708873640060867913944393653707892487524921308303642069597732811979911851573657328780940994654054835711483352469880084208506838673348711537758511742435744268662022194695266468474022528467681196450557754009337247960659813449444073789296868425012807862195468466408035656969105711689250804341457878049814182417990231212564449570399719856432909235348858134894863200469402856043000699154925032741633884186148749567879882275411524134812689074872940983148881727003003943305524935551030925367638468867728884963262351957246145117393148439567023241669488576584345165792899955925986047327403271545380081154303155010540317432168102249938849823552101125916577029009409652346907655783913321710657570880171939584071936242975573142367321171614431889982404809147349059893137600290290084584258868056005155549619334055573622048667884749860915878996245166766319512060817237342174283177355164825820196121993858252863147647576455923591861343854842872306352853641234484439495257467869288772613494474526205194961871593837999640049381384222009638704002070559348116178306050926945749890279614107079937349084053727858530909715313320428373016598448721065243253805144157743694942992599273597827191318475659890511150962758989718005361743185518281498738101705609894166957816456177176652121543870739664761447511604784660666379685660059748476197012505051480524927694188280349691014615857006558232351755103144034938386611773181167997175784567702721425289480969659757273907599835078566677544993715487547490258504806796146181211183223239989785065326168717117806087145831800468264978659706736033004081418932479288050723881448769974347982736986399585424111856930149425434391458233516722320542378944076736350878425709297062482687888386730911590789350871096080132334353011053951230744490161167733845031253141192257237765469440859009170257833093051572598185780642003830704718010703325334030021581742759202478270006974001437455395072188214559936105614943869132257840144679372988716248407776185144069732187096061223584654259137192749529064967863436139740345058713595018910150585616757808464001383199392489168569804678498882587219409536695976705674968981304713365337450436181795742150543501750422363664592474023403739758165304459322802261910804441539171285092322590168972708306607436442225599801184890295036308937807579042536430788051016960937808959788095402670962288792103651458452058720979038637255434759091945888403876693251622680105219690095506895573293279970601590251694727397478145137633047800202266071388502000089578581474169214796761402450679658177519095895332506277714290106513596295873666063609219141996720006159922954674946881640686619589503563033134149608225966837375224212623460441335454045281177903370035434923430496594214416297030695601970301706287493258031162894477893974460437268651435743650017724528056890745783156599097856658800748146647908200953860399168701493222020383398694540424166929731762247567983345798378036547823425542329279526229669359518425211237644280571794282357753513956457789945424076320925835634144646797525733230167432690502560571988213390926366767329914441966156945352316436883792530417121516033896605050185476009806845192000660396319932826624588716953589901025622095697123749293598268703624647714056507993282184984684697907096067577452543249329765062991904039392255886863365127304632371589069409051942417136076310839047253248646284648529912262104340042794228212407215251335363267718812428755912316544727109641910037292109428659547604232033149996636054635206996200268430321445536552612785572932875333345909792622408193810712382119608502913573842408395421727422749631050957551129891275516222220112327468333460754033881933412048623201595802745697038664410709055667285045904789872070212854875240352288692927053626444277842586675649486767844335229096634741089173895888934073942414808337447348217863656771810799113432515088086940343004469947342517553147061624813442014374520678300528193151000189690182695271632852241026744216454972948881354895387129595286469491291929368082960097900247142452061892387293095985328525745753540993908553968465453181088150553082683436014357920678453377417027171381977929321443269929741116699458157275304917675424199049712577648763918971144044496713911404072876197499237273139242278729512103669609093041056634945201523710383136589994814961720099623851233494869170337304386441982582155926975651304731798022991986175599569358127613890222862682762050420196424933282130588264688998525470225409567406543939264282357001836715492058940567387213305109085105803659091775559116643797695490227238026848118516620577467817466292352827621121548823349731328775491062191889112794393774373956706484377687721830686744852114934906349143282603989428814945346028154465262352893652558633047151999686451977330724607156279951673380128005697343118467688043014851201049210898087634477592255720679877386117548955368071865421713093903888239556899205013322451625724841555279532694785138159044466715033537933958486794562097535779806798793717236754908362711288686820776757355842107816631451841000256699213927054894525715496904935602104031884491975869580633997788333032059922223184604712506040465529506960780297690872052282393985860573006811130506744066279311023086026873543377425713707635170610117460225017820722849691169643411172855017531595230007642688275641359640993860328224375311127081091097209778409623219295503020087009205093234083963493056585141552367801798226398463600736781955458135971383283293749947428632610555108789442916565530645310646643014753369602410368379293042334258402196784711227778161503705101993247644711838010465397585905285768399813360021449267259039037004263727873131238941338918851138041058202882710899594154541855945097745447496110725822651860520123937495617178470836286472668384316483122480310767859313822976596549869196756344452062676150193951176125686880809034498829721302367325780886142665739120712567744155799723670831494547604082128450009115085146487006468854612956586640173188246281439748119863276308417637004015545064938218086909244031337568113937095836873215027180201596424142133299059198810897719160850426724182277708574014089143534596384770299885804484756743674633664096669520683952171840591793872088224670434414746981148225911500474269355978440242222848917318050763734935923154547045757833885463499712313987714804323046528518750950427436233673475703113721885749708353290546176367750057726116569602316167706954668802540672535398844968982606304202017883865974244458375973586616027051197435234772851831763915667366845515770629851383888102863498769424035579749676460667884563726702859730133032206437044154163463363320031369284297911777434718460525980962657032040456196002897229255866779780957851372441704938793363238270215530414809284209996950716933249229573889020444043345557155947006737859667805996100333067470374334488570733425974628511842398541611003795679529053194776810792199538179880372428658008565609098669016102943461447244830465139280156797640267365730018127714377757096527067502911300840269876414407702316075209035179476315098276383238379095177661391727777729015864764208069543143345272118285062854250486008326896136289737439613408168651496540996605657787124178670454731621565640891093253912159871512443178926862443339184628123400543992368993606066576450255082887254220402706109462407992707252362159936435298668662329095285171648443649719000365078445375695433858579727801507739346424303029192051588366167473983868389898174464103089330495524211495879634822885081045986165934541789612790826029722609133082815719221823434925663679899658809368487458080014133915420357399011239326729813944450812242213570198456016307892050985286790542860928901460090053340646418193219540405168235448753622574630707105030390659290525267446437929554038371525930261889088096777740810110241713769678716781446035285779031222466168011509954775262141606720067782862665909783742996277037826973645227507140409919205858823250685063316862495551833891493460679157244965992810699244889740162429966099013798409024287265480380885475823082837028796065498788262055805841541065729580183277422278605910882441836466635406539105241922603142921665465577322493803848978563019761784923954890367093471243784016456621234754884825840362427804016665244317338140142856522326218057767765488351263925494057053579592943348854289886482543530664543136462437153896726228446015660887071557961290337978863303405701464074250044694865309081685508308226648900807172600760912246354883913985281746067119308241905067528370643366655768583571356119161504291968241315272972306379338742514700770068366735562121558550299620360219907739996545029873719929617286732202472886865023447187741352148270881181226447118906518798402350421949189902424549155939365348087923531501861081594870831721537239638979545399162746689736043052145783966613836285059281612628326705315974170367656774938041013902485938447722766864045169120589065052534173009417354698578275000641381270834929898894444950577821316225863490986657295686447970100619876375100787339647621243805418424290305164032318331518056997978658229018874610963417821052109043081310222639669741474955540225121170178832726279816640037368126853210197488992342476260954530074898163792464201145069918382887251120483208385405382825740107177142607870579093403642944414181122318138899330111864142334189708052423635779870365627529190277222416336496165423982113137907872152580863593278170803451357246114377886482169724261748808718167168651361156858095185544312266220252509425739013166189321269117211775609857456557854098277705432177225592033844898008305676238768579142883699838819767550155000871531527349928011910386472658772964245138941152617371178125918565888693216030915496511966527032978042084735203912650837337946310822392637159483279270199539080139784554012202496538752887093586070335751124934995214320286787418530137085294355301504799286803561170118098378804628055072531823836124520337247154309914337589241331691201737906281970427986991272964450119496045534442397078269196684454556634276590309312592563618241351155210667135166580722875188158963999882058376520184653336064626357515819455310545391960529907421846472273926750402658793789046485988670987079662041323635039080913346392715577189722982726152511660651153209374549816869854926229286364986102475687314751480599369547528274391620657137538579282719603201131213733542946462368469856568355031189829401026308289560938577411543569691786246780246424844673458952505792497473114269635024972766407197894999075135461328362663469033621642050142826325379017891211348728710495559060574478940219848905053009219487731500535131658815147196769942806533825827978756482834819306599981624841824790808362255597924280145415096957856892501542088814704802202428132565600893217630931616085740551736006024755076796851423466998052688012838847590144380120414438388082876641744838163530759971178495456892415886885089797228066565951919995083528469291501410363536640732497201529570684443960196897048159266717679866494313489420351536721893948074195459988514572735298932466650282527771663134742408950623294998918157881206346370330454272660690104363872076128094448668654759290424123010663686825527410715744243387655866145196344594725015741585947190472224988712580516165623935118992031588918312335293426668368739619313612082661439556883799323618311684006026841870039317807424741706538606387199195656771348140147151315436411143293421690927975974001787553873701556523249095188283662343774986627816161134759886433532195697920119195278502601907321707944285814587335553541360968577189181244323410197500482226585988558178562557956249416824424870051651602303358509159685438667529855051499954891850313591364323509138625603362657987911067080403284519749545678039372992344066310747630629354974035511580236410508400960911422914257350615807764599709985201941198900044303431357990741341853925012804227448480782575594105642263206354251881183501929784225450263641555431365016048217763009045766852312446324674511077789202768479125188972147804418896857425998730923670888646071425309473722344088035400961396387222322159072193155848770184920806056380630138546434127478344437977818484873244251491273862503289392131637801379906283878794543897527438311878705485358599069263570595531722235878938027464445634316083571413691889683597499300563228031006737826832147384292750621220621956610584428551618197350244468416189119557186677334070905580268685013905769693226507835710243042430837555124660713739246224321589837209384445018124659702431076636178492731499344865066261691850232945523274602040139045576011306459014963503540233612138037465269325591166895258798870950286531897376089466438203638978126566555912327085191823319035301117550750189247875042192657906031826444716188542249845342813224352814710587669940038645895160591470158722555201198398697281668177539761354988470104654068915147595482095601065347610717198375761639116887028529137918203685775856235414600848894214138563781883463796258792184770122021079023735142491928550013141960236903398114580213478949621796215411756663068723914948410192942251868109433650373012761441277496256672998200399568937543778321252467565570674266728680730821462913184382492095762540916541380086290639906842472114487710642909455672978684138886016898901275475170718111577390137274849374064285515652321567289186919556657053934767740637174324841104496283338139090078274229724756186683078939733482485612921819869012787967399364961666657948415945579142613296546745283484268316176497357557267793898812111889683035944792204398833070228735709135807128487946708637869633627032807659947049808579347652542053502938574887853303438414694978964179871576718521479728358992058318303320830894893407810026263555904718136548654993598723869403455849025117272836415798382089250447992427858869275864993697217986345365874623400882513373012071417735133971452636735414911078607911907214981766475144191946496294492189704497669964998706629219686260519708525428174096791815783907447982454391555321124144888642949391441536529499128524562594535342105530482938317711344989946317208942533160687342928020647575569617271376339856794414413594415656114406708170366209094419719862825219490214220228399945043017709360443196577083028629256078074832204394275516921892602104027097527743929677150020593397498555948495438044963195429572608069799004559077741707481921136080707064463810037115417126513982823662705961848920986918388051542915358992586035547422060206692539603787962974776331390848814631767627928915398801645914017061455902744575132458995782020757867103592786731401819600898523452497368750992064254916637578622268198870613919582597624493053689185412771033509405528244975279472968205215867549754867830868943642358398033204615821208526271303473584895441929637328379810313672562394915903838331589243118212246979325028206396964063582513639784465388892861229205014814737642630023470106932921845493581551121034807076821606823362539129058168986557394318050930156398599784881217284637990917949064522329817755953660789965685572252182680646144510643357333740614377195072554246602122155657306631261137655291686341641695930261745682494661867645413423948377773596496071303757279839773959395687999920332573748729279013747980236669966434537609488381379328957222909665002878321663954467857710919138618775982384087253213965181804990603333896976025596943292360789243128821904054229414518683507365016924970462460930616556737199680470900716096319461002590341074153032026388180132376486889129783779881414329213252959427426813234417685895798942774442753097205498637955606691803357083875821194066228075907272042412585028259895319052341656363361902705558560535553954600693441898887042103636144453123060503800696204898609643352686545028487355466129624121111593799924299088034131478707195126229307345907798159710803337829351774749355502534975985968892432315864661959426170148388149525431180991025514270398938401559231925377483839392052543656416756048386763297804494570156791063312055391876633743095449286428118305492496831295487702392489187565671876374513645301456851705673926840785459460427445434876611633757485913935411081607084674138753914040525307664320621955623262822109845205481248922329402495540224790627619396165187809250084303464945493129696094046885430035475137158795023195393901825605474858460341521013502410277463449401019017270679381411550483480635269088705120907353823690946596678034604933117918498014079440510034260099790695612305697408688914661073953643302657713869482072470714659458803321309948382251099764432812418846752356653125059964766121152223750143061020756877006822580099125134833940374682304042243208097699353575835860498958884418431365702954497271720598747297293957046669109471762107104295225884507841623984794456706437333245506120730556871643085470886239126813135075432451445372771368444312268171345200791546267790890677576997022980331431315799370940097801954697735473303570509619215461820155711813672431605463930548682729211409673146206822772665958656895812691894056602801532618946905140976737156013270513092025210289672678378794632161756076059875914668814167997048113264259650765362940088791235933126548835685559089573092690884715486352483231586302775859538187582952648720779310175846747089973990519323307432136120828490116089846479218931307192928400487047248386030596452564153516709180955858333902351421056793783058842445214319610528790570265783716591157144869590761411509054674377165834394468256118995221806298034820579128258008848676603443766225266344149070202584920927416021628293172193108976058949933365447756528600841649789395647937607433954236423694724730420375377077603367691130197351482850024764108820169999415427354994117615454424699436376584876565846511386825272456796643625484848500906541155275541538998035530940204104847153820989638783907944579080323602514200561581461618846349168196469864396985863940782098747594081904096955119193799250306591725757989579284662735214895398958088482515816013024132970672343237160801110251832135747385046018521474914182551085759005576481567253084587782509917939121632187819206166451290917134689166651279888553434622748945366497298602057472470083161645078248114149951508194179149728329164454943571638842011857985676844028753427268085938848625986701355790965241541407670972297757600979601097549445079433231978688502085878436388291725621463249390650957317681496028037309315930226815793789642963000450796386951087305849872816988988658498109933152416393584012017125983302299983198853047767449949227312688236495610105298352408624607926561157013724238865529419667530940496943060905798004012708233095788364496682817206314364157120475433090416933856346115056172021402618412438807019720636926525030280940555661438704335043303871430828758365854942133241811026362405395036115614285336221932197005759812077773505381421079138277920558546691452821809426651497712011944449195938229629641839790192930894292327218465269342610251763064421366656730041144186984953657227218071353581191306320756244666887761017172058081741885206513182794991657820372159626831868935243384167079990010483221116885197879601385551498578691069515059047712682688693935712223523106435160906565165582822879736998341620140425597820347934630541149771510887742552450715261533942935109155071534205368572430389866384732980474742779207366700936861179444310582164929588255571816729514369982091449714645281825832983126463261521775686264965543822077486082662388324056433439114575462723401414743611869343703255712874760994291594556079594720056964354462059763575304528372617822420651245821852699014381993514911519393261588469086076269178006060913660915134612457518786533270501786223285316838979111112347897252058923990444863552451501042533620807170079236178018788868452858566386854779316081222210508909985699963413579517947956077569207650882172144929925958058490293815343335427357121848241424224256841772782348530354021870810354258587133536699056826081450527771322767985460125222968569861976530348543136943978071141646776011256729321654768366669714423945005703399637025631666245736618138165821944504069588834630073008834965206733918242306179054576778816202404150894677630390017464750162668448521440205779256759840996126238451605174408487157900345451857642090917372256979386369276956143045747367739215255638756824712569987013015936149340335866559210982028700892249109785613000534164212021587032372461687190568930913649214659373923068668831672546652833200464122939676492310906544167022664508565998413190042011297632425773894999985296386335344955354438281055060459492389444890622579048095877207851345627107071747418415527562844214327390871575342252788290076834188913807888961546556340371326097694462784089031953499958240831376257697310002625393383069776821811655967751578511394283296433179595846381600002582732152268385866010546520351936330455963749966446030342524162077109205783687523908070201940206832886334969886616569020564927097272743921788681390280307600051805093900711278968612652801601241313742400473809588631820882705902813649649873472709899390020750805465340574150390473381773397838820499908228649200736632008168448015288670447038429856017223263226178068886943821528686400109173946083403605491976331583698483479060822754942206995733986663036594555925308960985182486726499538154949713788842525729338051737174047461699240028504563114385042249267449353082432653335198790722234263317912146745548169065926405724005780793816923227138056495173387060064593167929432082408615109616061596337912451124537471719746990144599175875713227828525523037005104555750410286567164005274909921599137270920430029761832006074061002925803956260173338053814631779215973173726824574799148548970007361229714393131142252200664286027440792798373992053571870854019101737185930140737398410447248086944921776638528921047597966742380636161056960088366329388438035409357480487578103508129089479783499904705695586762585216961036703615506179660260794055066026354425403687197120750249889369848782921663844707470291834194027932348703903931922698089637954974527875357381842207866760872309720522556723982199509812885265586744386434232347667407530477320807587452099162655186665032574041219269673883505266760261728702958305213480789389242108093192964065306867986203288848746930263169130734972852656928951531050671273970525915375314548695403758788057735996729076266988677509323628755292701407183098820617331186855754665088527333697795868516786013011816667764052982102907362314231392782962270933576695734925316705657788459587271448621640049234200548350328939963657743169033894779252567223402198906464835440798438990190463827226253335852286199792912175974207869200351612521391826236518474162527714326935260741339293926148077925400309614041702471872334225034187147694847461305491446862664761199349385370010463164421099527244046906750758235168079505146137345044595815730834939208472084466028224532679164267166576418048306892507507153974183034236647266835817062301238476206177636805223840095099368734053011435770524306175950643920637042572551702712463744133055156153444431245214366518871009945113880204156229735518875040583884823455958809258180895441422351573712220253171526351837109303402972451710746702357149581615885922290031741128708167026172538533138947012338174916659963852957647242785512239651295669774207090163366519145798245535024661975559830891843548939037965415614363361399541754606583054870924216103678273408904474267344282773335091023650678878287801938152286312731479076886162696867944517448364322494930123751718239645456990444608063555326203172733068506373101833815092642500985033222849265714435872723963994444976529094208058930705093241726364539573416842552533877643685589243673914542017429635069764007582161341828935254868302956957751138716144265016318264091574969963839926232746091186188455930514891647059790498031904773695762801654339025643682792725744854027898474465145739691300681859035515710771141178325085291439227424738990935449374420012528498302951927393515345386602275767943443672612457453221650307685183989017821207385145428818390289013421198978658019920665216518908088385588749767816147825865772702555443503753378889690951276091517677538939532294377429399603768050550723524913432140778384621430347401424383721745542357103260286453900944060637383918976170992328092543102560724303357185864234773185594043784198965481510427180874150072695648143321715688876218377718148908153622024646822924567641325703246683277881838810193024051613727370746307473358520570233778293120115369928533651345863506406615015887171138183142949388022418197263503039336223537130048087270369047165577389874653874308142531137779768169803874035180855191958938999593634062774609580825685870151999034731497620515069443685787746159877187974824259600045940405226952038266596280875233371977961421523401897196330285636553748243820891833477064544180739137160384554689355165699845181719058664147857116096258841044092922079601121653358548603830466256429581696672872616620206393830766334097116518889509843566840046955646393404334784077690552288683628813790631793508053207518325662461974182638527795676124858250670312485286957369195827136843506010284314571629929887049606464507459267701031477262085726516410194063117697641915812935925032633575574249218174808081857758245235766100457383114152026864749895404852049338814818544356264695445960474057233362522867036430161125475804771469160118334009759025084998501856273395563489613770642879214710653446495655194688693781206061728379654407038232374957150793931008610092674138565582369464176390081308795302022201926756973272085684381968538189570589444274766332847482487066725030499912963922659537780161813443246413407408306860695724533200347599106332656076240634810786481029145315172045796555797695331984388350662033265750980380236123400848361851602343118574854400927014978115815919997579505632797504219969879040279578231424327542971971781114117710586693651898949052203935791620376649324937089534812116745383289152876044911983857635955633975835491761905545150402126277767667071406378319276251395998469290471031963503922392536479764574302270838144349355027215359382520579214401324445336438657177867769963412870925016853425959761620726696020790897563478114842943218534965684472112004356924226197141931787047539005952531055208067495129907419511020499410463443936073197599785124134401161461753537149503509755570433210095402721870507427774263523530535395193273277763872723873558186858707276936090932756515039450648271033172460205493128966838991518899813443264203442552679604455933269409095987989216168745510568383741774321402425318145395349796450115398759212776045390737087617559409282417132219619436919051338586820679341353127905672256749051078908298103708661200187592989737133037910036731510166684370815806548990464637058125029539351913644994003388097654774698406404778930841291620744080858781326519171686616945961662976657335895262955839764089602240000871049919618315299432236321900667714027658690585360724125160835018924727652540518237583793817036493152899496347649360709805286516418694140447767336649752525300641477085016195733241076239107678959631724351430675373031131708114942614753722336487140863111879886629084056134540972328526349198695566819240102495049597169913720738076622857123528527627661446277579015310100847504326689319333876373547892756221244609491219253959309857249998984685489344196366329565200159451326898481819296763013625844952210595067959367350213468512478954125078160959533323767227192423646712325016428598357818851043965380617387867927168867399591814058073338647886609920297580094065294151638079680293046552212967570590741590845089662811013625737986741956280580176686806988208927143029014636931793389384484495961445378983228099099092642179496456692926744966245533658030381811854350090084908270416223473120630328845657855761470802372304232435350325623262574647812906190336148666895805270927337202368045225836540791093818637763488031150506319487057983927378501625191626684524823258432505876533519227000779814206154469470225270610291442977115921532592714551011789202747467927519216383952961784338734872685382247162187618160752663342802683105475644768007577303684702522681904633149881769991905955892055454809173170603689343219131652490065575715066650176521692233573868563488297844869348702490617421573713427742793909697322243678491058325526698565755684660407886823785466836897170722996878104754229719144602859581715202203088952372876159060532096516318251389981254519932660624676570610485927424075040271507492209361626548767510353566048879447712864323329244861402878231268184334397482981010798870240302459476572861458545533105668826466283536146101878271855467558893185623391384958751819666422530299034836331403398032807483841323724271816395881551343373338597988766179960493504901332015343024041916109916549701332465916470174569464924348380766808084176881816786837695539832308135847840834224189800899391156203454629700570927927406458772554196172930175522130671458096388051999284143393279418989800303460071959438265545989993015885814955462961892377240323406138004067333854688382028709983431383359742018332557359635119863170690233600035326124648981743654438215725381349277292645080422437668513667818003880022638243928898516999897090548796911928686903997582933183316419301780158251410668140714248987933519241912710230378604565869022575003660945703114161408227886683631392601763621927608691193533380464734956541576238753623538173449031887845444692033439579484970425470799236735026883374526984160570735538704913862416440524449599576835339793379435019783052790469275734666032012485073904492874150828624087982302796781986494808567973742416464573774421737390272629463124106330004034386601621823430050240134526087494191109193434951472619298654539629940795846228347541635039716471955132871885468190361452707029739429670307147696845220632388956703376092694945712292878170026844353658984559229072358814963681451526514704161817371998455368703967566594612316339643423148999871398040020533120249722651792101958717028818840611387420949146187488285868844361955491007606233105170647947674951937707854467166187325430469728541406524455829708142863576980943281189207495303318393282861601299347956118653231902958949028874811447373806854511633660427323274102637521584090201459353828347286860756292794683525520518537022205115278171073698693333567926440332472054486451170292377702875414979825196031453952982748788150506413551023667619380547050983511178756277629737542563591985536066175817356393020789763438741232792913931070322020812061011076244731661830283107412961239586402920048728247896390383365332371409991395088423750419601834035871915999072375923349306503938182552726352630545195968155446235371918064089801170858293369188247779083174342436236976915855348626241521260337589428998956843260048547688363750711496316319648688004114496950004165306064005778966699705315152121688685960715027257677893265688409933049736061490570719869713155644167323193747271173888375469965977545636869665256431250754759114929394609188345582073501915409565707975874275122294391108926915957085338346551208263029058415521433288454004819545909628178354826143455836623363860433052323680885808742328498183097176591566956985297730648978335131301470452521364518769933750273395789438479557074440508269872591404027697522845976229335687711853288534156013213977619359861613649187168368222944010647874181579321112629801269280704799831207143492639185144944085315686617465057480287761646055789491568120126504657520617730050184083773981357124646651622473985448782384917933482801702115910813969038162229356142404169190587671289817903985764103328740973542699916459009948321866643295112979971455308257409032721696235023978500405260136313618758215990127926563450281024615986592522456479604229752396446019608098273604297489364670125030487992034518986021381995697494529038405235029998511471821323446381218663627032803640055192472149294919665557675608090659648389728168366875014329997453092568637198189544738075837047717093465523797006113585691036352636583071320149503080899512574034751999110243989736952710576408921956049091462942204164155153504594751040926228293666203454670119021049753010233458672092194386507709432157279607999114112238870209935919419853015371275278202830057871502623864699791047633323501796492448964263994737613318771266563670637665405811056388030000841523832032610192382955103752962465128858649518302185423806423595605415978922279225517759354381158329642268919362713217794869562905176735349980095678152155186629791539264965822492560705091021057289246657194156430083201203204949097076059586812733588630212432001570636266009577135914193172308555706809868388275917867537666872101732974820524063081024634193149744448745052665671033965935436159547387824207203484775915270836851740167952852330548721074467007843189170882200117845806892015643303950911978172150931630904809727202036229116257385143715822464611395425878868522382710203397700681208740243872373469731321361586908729307270245443146477276414617010422925624600606434706043405802293006842448800047273428817601373172131781215707412833904636146752019414600119075262548058895078458613487398528269782863054112423953920379657537308235753915591194119481950797609675564787585247923000085041835920955406813322304329658139588440550428100092307854845353644546396137658143837884779551371488666869015781086174617965072204861964218300948136399527867113953873849483149844534687481447529289596120566493439103777649965090506105829591211106767931230812519764372820579285493104383768792190989712919374707336522090814107451031670101528272390169368581396531819309790077265692164008942389274578861622245672930177429976636559611770861432330442589180726703020925772624362780046482024199624194413659858438533393381326253962888401386778684052306648616853144681003598805301212413148861864270472927971471463825273241998742626394551601028872614931382964969192192609028871438580325832872244022889897202711372107529690791481171013045002937665400086308664419801801938622443343434289907260109536843552961563409928591919585003124097471932789119311636787969081665160311052174096818638929132247091439703480103663931414618033518947420974541641312644628257688346627262404680633740767281758494817397631016473988909534893835801138535879612441646445986589088385739500727330239853620726769328616198050291980161024044650093596970146927834336027355977282148398371091042489957109918187638779596468099431880975083263710178403699994833721480365455658784089750168605114703176834016923012812765186815793426076947271344413024949477386048653889103302555249939969627816885860737986522149018423713223508459252573964418696961223256894711042256650019786210865539669594813673759170700611338467829845256404204910942611381554448205192844501769327120246677888077382927715645553757207589017588574926701348961618048712031260129064993096376231336609690611846549187038022450751245479806486925823316573780676558512627313341220797923523275901564361043065066801395259222990525917763102350298887714520185153044589756520096858293645231012567724827751446588103531058299338783926121125929943389392835144383398649941415654587882832425372715912588126640054808819215039993856409955913957118509359604837409503613799527465800425040331232163741973896174348100177178556833582139668952933560036959586614448410299162517229064016036740958067324134126165033108519977905596731879763440155038920718136931244164694393448638304332806425876807648694575632802166119198702891223397650860022057819528495134702010305449798255506005734265110042839441041898834913074415175326713866174155511104837120066183842515041580528951923955377893174654100647896498663505962491800484875621684208246961363620315099616311780440801809160684057066748026376097167693113062533406777868968791872654700138640601715094352940116569264759388867687300644605574216989113321603563281791075143208456671900040680956848426862207165357756331996203746065692144281120931169885870807537870466783383753691492427380232365168870806468709909895261951725207273027748525629472478579513998202632866442718816400156709353660816300295370542528549084343294876132981332868375645608025358478264055825933357127561696005592982119025655893436986372427145786453588171629469509373863028289952483597978408691186592400606142717450221396034086000793164935783606120197024676261323849853817248967135837907797075210167750150316672424184265748225475292810028972625199817896002403653117772404649069085933857997466402053114802690643466045611435589664609096639941144922291785096306211981027688493220591541295622533802202250966806282311107773085768731924029410475718575305761820290861390358500445900477604206593090911413229952707010455963598178113491118706228151621686612360715311762764435682503158466329108461080498893054056606523079282088224505941505675446485440935435907176885119939697989958834647890652873578812291242831465377528486372327240002494492330796904592967029599546545934334092562268880437897605551893218220799686906938197219880304416487796723868945643115876674438885837099385994884997133913205634897483487670767320105670483027538293257778913309517471586094579947900456806880688429587350919712181126821544678152767131104362495747845997181190841848409881996873622656129426270961016870997017613054847116652943262266311482157845549757593253230063186321282092622386995345831202437982906488979090981441459609721834534091714259759669327822772313364129429133474818336754047370134979273526137712836223988371614019501868968168706852827898084859162016518243249552631712790181820347196975471833214944046112571532150086637979847568617454191713365678990683052903447800649410579850676713519278333766598851738639277952644119192211640773617506392269423532781619309300810537692796484594973215137044938485107225242314891053643537694621002612498278279144037367001886965651618640547030337348750182127852967256283080368556805319070796436368701134954327682492042850350661429125111356623981097362252383709982030610913005234205863722134837443514959431783114810703604208865638126226725898528843591149242388137566808808090859047951531973390026587414703672809983101249736212099260330703975713223996833409322465556422633557368904382303105252973838459376614548880617228294455922903522927306484542758878816228441330884214560939022475220047485759836706525221933928078766834334640586640784667068308952629303660006577528224745797057647418119889348023345996777053726625357335619076629296622530903821486531771313540948176874839465396726816132842217803578436194245561120343298177539418627082685493118452903470779968713655143340042272087541266842761736836194733552888511553823185204284628338926897988006617573717486868191265769211784175249606614076679858622369267030135616681246555400288016755643438435267747758327038876557042908009195382621867433922796219283623930987408894131026220573684320178695772248726689339244235512887761712362502867006256912648155207856950350995938112719057486697406448029260828481286499013206636134903896736086033696923943321923513683516576894133263063220795665808032436321928070573340352686421871867365247113531461068487840939780486289427693288555438100602847090956515578464052962947367163052173580578444013525268028890739404569252451780069205606928761447587915138397048704547091570877088262397827428778352229782353669209941010776082403210064659804313380040436384618291793834555486326258843245855425177534710200331099186816073974983793591754515093923953948174459776172664312540840053135293512644207459009891386232444172698584599568957382771456437780616210178979224155847219957032686440618455667553802905322022116951833341684409239565404871341044269580803654317173687344262155159426474303022262933567673843228275847861441378483633432131026347080014518447739377538621676769251530266661687593571724717344720335766649002458457950959298641734182933863936003936504306566488074932669549055955566744479321433282262966617529302282896892391339701033862394451090698254894213031758012042068583926621860906233937765568591625801221816191141907175642557105179827489858455107640106572827989161822184982189655402008431058354852099647657828877947905917610406194472811846818689508480211887895284060389145022545040157601617918818043680708489613816750014432368250425928861794218953771012352045745853777988342621208682967279315708324414333533083216853326197192420239165824078421842934230092624152305772974060219097992525519225417403082681975730469257222414828047087522026658407150973595600924675614884120939803977419894302731040184714918160152774362095053867557602174806950042876290570723026176437771814971011053170242245284237738483666200373649611158832971313127789663070184159152604231603049894703652246407259664683871940156312556008310204514451282108445517436048783147985004375005971702406131359470493008472012991048026040821366750022337111208459086412324017852208630134067329579292665686318792894449548749984552574327147648494315480894353045160900642630195986448735271699606006954288609131453174110199926410345150353328715282096155297726341617634960447359809866279040595095794569446194946718903902806277603605789225747104173974765876628337531451867948729192593426024716039277664911317228224132107695052864023313469205742559779464265229133387728743699969725370698036948888497112639112657759685479091595596058743036929698329064748054026615272506778527291015867070461350047551929584176072419696589359954804616647743352905202460267911337555455191981328421645953381043226665325524268299306946759485968142650965825231165376683220722975029409405256538696670353998169589118792183013346419560119401836514317107511925747677076552340362600643722425357149383654527763607888818254776030448289146290414754713515881866887388751590540452946491476390934963796397252093854616862474963971163634984578346537993131212328988720524857028351952541658169683646486816724691343981316529929332064477346527696071024513643543132381737948587478144485087932797310372460202893869833642235713045529682405350034989166439932988008687497991970378447893099558770745394485776834637283458697815459378256537943111814484970211782504542871828354797988889037661666410452184398347007734088653422276945786736834625641905142542690061681735894777293081847223536007538709251416908280330090875914095229635472450346281245749021584890451369354686826896757598091651332351994418497286358592698742906775471092284148936989146074596107796209097215193756065018285576130309613926546484568633011436261422735023527997401644549349689918468348792017264464649271490181748847918862767459456934086381547125416925584225315943389801902031460403117491946591826873182317385264740952920010398458226707989993928632997732422606991739995357329414265730935660317167813096562667246802631098201005758727797687315779883835184176794268056307979474537087961161299908727541465330851446392257134957469952917704323306502447415705125717100935745876729534936419649856273389386339046695031154905683592768934002033847067352135769811318333653408234821981574088051115985063378276166142782689190109560928432306932798417035427575314793061268154420532953714657680937375648300505703973410433140563119089639117559102163180426991597823800903963572117058009554322026608777157504682578304591806886646281834130680791243769441537301829939499085185947585950548802497308981258517706566311921663870031282095956628680219167592843897929377245407694011154691659675012563043003735874442888391021551696381909027031198746988739102237745852750318513089723476221474018598519595189243619680540677830194855989188729247476901845839085418539869309937708365382620608543896030260954703154815848794817014534233433813095424266015115029495279536825451821215145443250324265171821292927063035456517112472760580650500373758258315368548048490540949594684018105864972963340972832783655323871834225636282499170077428237972334534247466458071573833244188260746193120073607241269616677831471452328891996538284476135533766044645031824234757088292754497212075334188055139796742136780978575263904345131679486676067899629001042758550140462392002590744755387817147546139365905164992586450967793587252024654473911271381553030000377376871340807621609911072895238900038089923825346031387908141513505915932041114637188073471593712031601777705080825842464601807205784436341971616859750456568633113601584056750538418731249576455827626111255017620739043725382524398657646783159979886536835227189043752655572900801034898963542030445158198800483033900134663414081190534890889438316703716614163067667886278604836549151141892757382347060635370511848530485167846950437866328703701796495117188573167735873286347189456627466542147945752232817770410144897745053329988537623097083649443662207829910422908766700069749472031666420173266294623173087928538178345652885448613478487736536629767004992942505091840907175700672505281049664311066758169768411257185886103752168512199800877355331552528487800495137564921283095063494671292965899409593208187863777719187521584285682672253562563715936524552503687194442673929001746185597576591409499691509269184426276675133625530295981140659153914428392922767239014724823630104901943969482963410588987165864099127878995542032656077073543360465631121538606600298137132903200526296230030945102631785062317935892431329325889288565307848262671973799892874977234187889707022425779613845779301985040880637612128132099463170035781066428144788704365537523620067480775365652718391384542489762393881473135929995987391733160448706231624088738131086797626798441944684217518613474806392097339140909456084342141100929299843029489411642896628548563081502258731997959167118506522438568632674439011375822521829918392363485223445912472708025320148446768792061095465551811985555044217922553462413727891795902619815077529255189856581155914089311016964642423854245869023948331397152142236232704225776465103732922784916555858801414378695302999652118628904632518752618110641291900171155289917770192030522219117476871148945689168178374888248784001336341716147238137627930631273950389035651638107057452497809256745813981084881104805352351462710984709732726819923588280588591366895862263069810152042482079561564559373237691646099344711058948309924007787230443701253144289484056263625097115626244630918443954132350976168256311984803561493687396937721878980918914045903950648933825533869034902242412307500909865661793822581552694225552934006613363673980408065070728747964980475307561116702279493037935224794961744959349852982119577389293946301942070372621487006939495282800371057808750021050374762269382207175527963987452868105423102899379870274063581880157335302117934586121458797395959772860745539322514795651395398216715099592190228691345405631272965129719195083299767420340857641620942708419097978512952522152645521333840618573838784580324671499757474863765171662537100966211568184557928010359073552453234480131339673875879012113258673864441099205821459426950807217881530842375916868439162871756809220124488832624729961684126893898787503078817956921607629127088868678262630237665293821231953967182528289671432310153066722852788381737402644037945515242765107867153851133515851049060196633468996214096592573415653580693596470359363408244572667967851251036503340352614789434600806882829258218378927021187647242110149683472967074091017758530027089052211871838260842410997306587473400476721577797794862304418321839927922789656732883351488966014323771040679768655219415467407639621153575988013276300498014366053439820544206108011669740057013986833057267199182824804912205766757507974573401311209543726990988964935461525942406374563164945715373205446287796193379514353660165780859792025893218269475948427705329327968759492568720472540977063078528133474658975399020325392890331610837397869948200207157174730973811168883908454348587028953167914225117492500784451087123439687707466270602203517305945623136063824612822720321946339927584115226326789218739455785827092338219242469693312320790553080414328041668485327933118585983833363103215118891999320157115338199184154606385357652873629014274509933998774732650844820025423583731988661083730496180566386917290094015002435382479820753192148620046794256307543038993155670094753597348045293644321492450544726325076607066976247409753097319956132526660509817255346728204908010160026905332297723969709537180133381914775960703960522867000503609848542429049923175683570130324074647972850241492962715432681673461985724557436424260597542579385942751875783693556755491960769892454496570789186309942336398567587386459295203893681507762467484063313079622525657322873228446451144134864737498577973761803755666411586440322954155881792445229730913365675690853388801201166814448127679586975018694920120639901950921904032591777955093951740947397313193740789667461135778552653538534654465147580736903903032978159920501771749558552230019647182440236505073839435944692079049557903796422095489910916446227586088076592278940631115683132276328372078333657849957136420978987379049880239098491663935662438048566498710339626883092260274629390924978436044702088476960895961978045695058698264321301250050384446069142810343660269100864969127365948595402136812297187608401325932338968907193416381863921534770796806481053634028943055525910067674869633585373574477520968684674324825894139941413310911332955260131764743996628295987633004673879858740505024892176065255574820714046270856815439042223083507121360797210879333196235713404664591831452244182846523925856556019878728753136748447675408333632402426001502456210327262754108623631389422367826515206982527317866600749736881355939710131664432916558061698425364768622520895725624205776851572314716578642658869689476864671832510434710499873059281922074830847020958461665138036663583782215972587393846024836442063334306630686119495700893364959851343413455148899829140331670127240628538047146738685048457054847262109901997054815520174706866278329891572728986410311530049911609483891138205589006192930662593572534379793565713772658658432928918029004046573514147528313218082747691506156801207298586437691836069386278930578742610915753043841388766789492456007464209334171771326555257209297458861544649483068767376989531444049575302461876689380305568231415416174987864662631692704392904931189634675947182228235702848032779228241095118720719708423007755337009430611054003497411206626945917310865246935154388225071901806778137639570483419238010291709977786270859428079735065924319440896085340714275360995952194245182169308235466210625466529773073055011742491713370628987741227786502315589043179781839911556784589259150349260582336481933031655059344157592858870971888499720682852747410746401551795786735501185963534088008565921222315464093489228145585261731805272414213631657501280458777317100332041411865430157091352554474335947117168735622539359556240925947160023743581917956998123225462251964668016626484456211428043178857343531089331321883814309336219807642355968292437434437589265012372879546973996649291932503583016969774529731627722258003815558309817659272769084539258673129630105921468609480394583596070557436206604268921192069471804617425480732363970095951220460128920844136530846528128515272882848465690817247933910029527143834270704034538774281034943868472441566843059131153271941385129782852448008343839113561903587618209039558270578959957620913668842792834667197200523685286490561634653213154517124903248415910396449534676633454714129695915702578582148452683782576150678102841819359311099188905163246431712371129459752777572603077680252882152147185395172049254040895624045062542651851306834463999816289215565256850736646442745435237685416746908401622215486233370654067151404939579737439547422189269559357570447431109941491049513344584168633423266197216346654341672504400988090241429190393432666691926998615998608066573504443558347246688796035731962847575409438074026309468048980013525631093765562050790343249087798069902759772269535372282637641435311446838293800987050916877007994601083940906154719216404176332813634489897370090679256026153098258858386123140266036222107257313335621970956735121304461311473985511729983813528653195830072548143627680711782244780110169286567425480045384939556248016434719475660802659349560182993697285618717787992313842734316110080856720442132274210363371679644056178990205343708273847962894436311274311847263146786684679153197563383568698738863686019119433709428755992854422456379280048479270302545023516451192893651729081333166056358548729472490302622558503939291167546727531555525700301214422917840483942080103053323236159282434858333234881374614489944803959726512911051587899500709701327420585773055158514949664446217455265913651989534810382856729400587194471124964324108370811597220734750661249799001636059671852882824739726830644784890939349424470602632914072223389311332165908979805814601373297132685289307496979448216757227545769932793160938458007496020081754278810410421275655029717884189965257095837600358028723048120951666899151774936914213121887376489927902968960732957206764952291759331958170578742174607865745577113810474781501810895393077878491352297151077255231783274700821717890329959495363877763721966245916153657003612623772358048042074213619220674810149383635817921521797279443809042639636008513864565969581286607526123853794725723627252006844234681306260113407165605612465384193464977311209582649569180691566944015356206844233433859268472836022568091226102200769896896451236843866359907241652925729589819630773138715290121186075151107497486501635600591969401623389936946482243742569786095665456303078536286731992372136988136343864406050191154354654704314365974963477285968703015324458218612951791890948590245382940811467252530669200990210590860056966586105515522231365902801053758028934979322182980759286733628093130137835107073058859851554134367947901066494259244590529079064974076814390799633529883786647553874876717545633816676852186021452740388509637017788489420507541045117425558850698001653377388752238641883463572982001542204764534291195035433510577556596958441357868757750986840054739187209018997401650598593339513436948540204117769918523977011472429801208410303110740049396176721585480596569383385274977495531514506144722590350905277181448315718742627335588309611328371452126497929801069462193960920064685321234930551037591965535459097172853581285564092296078341033491633890991122709443285701617389228620812920186605664638182764011702223678775787892407839066666395171222828754824585592213619703824973306017690330659714325787584455758430002847947845652990117843484329387678901605892331872494135144463800920698564946088581922856826179157102732923684865977555272327143567631149029975942597053984649821379604278899849360156196770266363341471520701705250639068262951532570576957731196500166620599813427730400008355902642736252198993072834253342128383361033088873346440963234693166230233276160047500669681309269006079635727711487170868417454432805935716202348321677696015766030367299604709835742838305927818641711709181607972617260285551812882461719141597271209900368773153364568986517187800678857372907342827862038403163506736635411475949541512802261865638946324175717160292140506735036921428371569072843352515040610817756024075553559127879708707249311600525303464368184294457586763670033653287628268923542545385964754662074300426802508886363527071906033053614038327864425226936827184101249396263732226014633657798616033285862387995039675660954071340828871892688787446233957631721857275698640891163817236545862907773642998252614643652880671793201082987961996228372333019864522577012257408420773502038930142612446308788830611390392143228816527733108990236792286419277764817594880025191207226402207211601348700281989541405466957619525094073745722766514183992779899088697469766848196121250247716308608025397899733403237010174384978286671490510210271073596709039472399460636631699698066262847156519468407225711480395848093490975300920518403688320668774029058099188376096813871472990922700925856506383285432359545837946455083026650975023230214629566130016464089990063379693512337147340006941742396414162212702615773901369515529838371075379612118505167098328032283871296831429132544721442200646916841875941433830000186022011968454301715965752243506531573366934425670365729699398464144058805911453147626626053427090915151115184861727024898725787681027553521701351244484463345530603199868707080979073111378252928212293548709276009263626276656051419974710482001247888567016234960468602119710667104490719841079642010816797948352153248054048166449475436929431702422448920542030263654709125421855818147622895234476134731964196828309623491331727453780909509895548916335152036857375961641747294400675529055965344524908064240488811106567215282275238380041886116276745901619623355501405406773333199439784378487729538757856191686264952355233843348801575755067689323407027177738925579159027482032245832170958598392235156123663892409088469308216697023570736427683613931426667013295448510786315107745349731222359803941439296298033897199225208868102843983233439115532543359338722813185202018912823710980183719539328198366979759771189716076623394366733054315938523223498629580659704727443803206271002699722390730268207689285529940327447536182397095849029287335603150873128574654515767153811092986143800820759972072513785732449594939871140995661164970766120765643483545043743838178282672891477011029843150404173427349961318453165900843096491257995395719629975815312996968727889182032745732175258512612136005387339470142233539479612714352974583633968901024310209507679324718937296207824238961921660992169910875375260088894139841515996935288195236976908705441432596572050877780409514480463686857685922888358349967300355742103399242931669723866492762205069506538601575567584695384198164912207109911960187313151884277873386696550049838214327247047312799515581564256421416440559584581081985086615711919646826960740885883769535047568187394255054012757067750575808636038858505978083827183804614623025695943970989622739872107085631709567254446004336177346747201868741521683306962112430480159539604278493463655892913986676711777317313182602850668190654485478854833294271284134854894590552966333154942087530937300886601776582051645964786257751865956067734148420870303829220558691284904769854898085753002896862042496689990294595696130492604858813319164539910638854180214377463896870052872083399794433938047417094164137005062195322915115294996080935317504682839315564940774896820248402412352244824090302866496872596075951792464538757733638673231236657881411427074502418781846217701838415510055136452956703166294728333022526677216657104047974374190653807482170210714910377250704820304888529623535503333328641437912750221185480609466894310004553942667511978129622028021411531693579459129202964153587473428205169447385325477455443185767763290086297424407892807812168038878562177178875392265144472385528367984043276812483122555009470208342162548642672019816063206432610999382366947167338045123629498694501394656123544576287098009251892966106101350733134555653506211705137025787092403406289389738127242756906858874332313411342774723473124617651693626034135272326494267744470836469649785014752705072011103603512329328356452786128754830911491475545700789749249463115852068978387119269279895428137183764979758637731419199963106676425184256770566262438515901046084708679191254987205137875482801385485805944461303560506166541454860529284815211784600771701037619914449232334548299170586883075521417177326437558225139635928846394053943601504082038382361658819355147424355854437012499815692361031520903556579188501181576977583724524713865983020573165847358958673583489728295995551823069505560921410078094930245061353285787871461516024563392955713459921963393908416460952742659759933200758583933571096133925644981936327642286752877470652918106478958885521061632838202672698833263509758737262397251579118631606193967085720639353181960500235400309579344904859559851791432083124985913943027567182661236350198674699201216561164620595984346020078801923664505492142159610802254891138342285184182380564207371088420926869706499213075741715135241467298273415817300711128269086038487774764021762871166962814123044802677238952671003406923546380690697358500093430949642751730717956509050652410924210314734253842110858150232760927802938241398871701818896076869765329637593054414088092653540163494859311457006526061366490768000587908720477354420843635850846264356730383613370548893203588916095238588712738231576282323261944214607407141109425428899018873634269385888260284368069917008013202761067369032384005242605667401485290303360914575962903524507812532225840905885563048327267491650639650231055010867278298668123517082388408711008265753965961858199151507642126312901123481369301697781709583886581542562444777240860367004004187513008605892088242766181320730960792045023499798811648852962301075321048186715337162432616056213994161769061433625387231968787200953003187119287138937552834418165613457961373902150231899335358732319231441680077669024014975174377544632535445308868954487649633976327384907683267375771578510015880811097970528096488713611880753390411114046719906415311241781251891035101750272851153707547726981177140631510703975498784694584806654985183951848396727347685611916450580854074057770515252338303253186033733375227425551718026154722204871273110693088886299503078866311125803469900665086972442298570411400975651317784864669684770125710734694893492866663920011689351384538116788185797916333263290348536786356521722511694191534082850385099764198727388842569910117622077757418335806343585168816678298901489474884599932608322884420515598509237157513504247118073934574536025751752539010041096958290697030458547433788984412475778014686768251550617144974776371811185629870105185114262952594574864375432849425562566166941179218699794069507278855863734161930460026195844012174930399808674365295685347520628047108827779242965585417444347533601690727996374976029692022963880608269746065085673591175749173409996654101455101830888128874634537165656980252246175708342230898386638672202157969587220242521028094105848030153855944811786713747234217094425192511194864667204407838394243367216980609139881858767272419240960986246488860817394181363611823941621418728011028190133437894165823227806233375162830070394413313436649019584333210052405078502938706949021498821550547974221921966593665055775199446147882446562107201554688423940241581498401845453268478827300249654352804542987763954233638889020725378016333741068754928427543881680693301544611140054998512579543897519580363945714223346779801155057235173923863460699572347086685437851692283657287778154270407332099347660408468447347760508473221046134766942235131359474698520969295910981114600983922698391581997580631570272278330175414647764746684268781315367869295650283348611604504138237691256665136642982947824196907122353065849610944262875960839704251905300151824399790160218425412229692842304916665499526283459454796367194062225634247407136152698658094020129298187729774045899987183060126715922607199994794403117110807093217942170974859897810284590912779950076003054220010708387002638957647554908897908767809862478764158381379654185432982741376741495624570316372445506002411207613577862871174373654119869124147654595460716663982876768497063129900025399052793880861268690137149543243592075598965382596902162254355917443488176324697310170750468254032121625839527397783680079560193020003281901113976191727338646343290510307399080935786351638343131500448082629438849627089864809734057651232146925459577522593625435228323164717263085894407103739178254144843398802404397202804433380897075008050213164609990756305938501963005116232167969771276844212481861414396753062463108564907589022818550666721637971955888638671485934727880530216463828159909893064309431479256369916426073239593262566035367578497740837561074736895170523036782341376646514437815624197632710642241384074263066647335615879876327750575356257659432651439874437593827332310620406264016840183496740564199171724585846825826264756135945065675528050155585651747999198312527254848085280451515910394355872525790781732114868848789183295658205683523719576994893507090723033225998619832715031861040938573982868223817906933382473305836845859728798979738018454107653714352779309257064959402321083157787371910691750468496651912280774121766756305963231089993877374074464806005577855813858655392447270371480160488937121893938345852237389692399881418485040854635693796871456934900326697842002417356373678077126180717070669075118716880463198085099070995281121948346859364909858816786567869553253123413992781230551260101444381424702142506214408319303399107603739510687315862836600098000411770175794530643320361596721905320201736665819021583918469875824135285133939292103415037223775706349364959135027087551876758292349870805770303267666764170144508711469788478795585703257838596879904965201616726833342464169605876269684697497062531671280672496220560481693569657595555451969927611232461380973605502207311866158622966407480285658078576445943102838900735553050767270366064835058964527543689472886700892637843396203375515593514800547496508304928733337337024370351894616107734796007575583241017881684885738320679789095058289085829922214477522649144827124393747968032893742241711815842184812768652170544407185954160546077728625381120716924735411413636210411175911394103899404885189881116643806593247565882126978741654462523548069247267119311833020558309509358180079488995257534957140982463054772574556376102426872836965176751190838873418650724933209718102152325257031456948754002928634845146696421968393535745064977929682943064076914628934719341166973641262267917089258726482288716583152908644913564597134846441672481896079999944336136941872270321031439682851868074096868485099212436337925225983896728807578424113798863164074910131218391001377020470734524726745171031486133738440332727849498373473826323047708131762264292771692117363754421056253613652311708455067334862135652683375773429184156792464601799130109984360427789509812544766883545343681480288703912215459847286934218841697612774977023072582761247040026945203972699227723095946474833727066943615649343666825395665679176554392667229747862742341103611797258106798874164685575910428983534631458718561868349446918929868345372073906960278147418334968591506675132051532645375866823873049831996944788933291634171792832525144127483572034941865248653241107137391721951290990601295482704571542519752856792112333405244902155418045380619133114162696777818008092046218190009637274547699094774099490834507249638435545789343150783875155049784578099996269208025173303995169005782163377671478644389038038767946386020446087179485444042223306468097783094251836108237362899303416404662764935024004162909465688279194720232397750975573117494358865864594594803510006989095807362902768093682539826534626180676126451212703354140262509038637845110183875645826777251525155028394112473478805937952531009168577394265687354822986371995286168653535040989425189072705492156372519308851629985555809630410202483246045725975271096605708367274615943082851429831706241814930065800828039974047958542711063610187761073074921204555915339898637772062525171761505842935645013334335176880654337413494364088608782148536031636166322774013713978490467478689194835081389359852752499071896556594007746300254027985829477803975373163396077548032119765058598524014986695113386787618980366921667677906418691186947095050308212072440936943352695576745012864900487026401575375118250039943551990749543288757758845656958696918887400594220882149945870209107588530052203207756147573659370900882691835906815774094987999725266987937150586018432973439104328150279293650918541822189717040198282322462092777028798225488056680782433672309706188508317784365766432030818046383468727833322731916240270817322081670223285695251091455930076653154605428262961808566528172206920209736425876488821904646723340289780355818310836202857466717457660620918279632985136014699037465967705901320764354210121650316387981363389820635740898742549926300803542893697003695012087708720486034416199700978256387733601909146688298042424873085469079691168793721720295633438830328851280905119264798968968262339021130381115159337425659258589203552198439222841222041997179397564816366224538910576522416861273671958801595202166102685710179196233316819725106908360538887763005284275320825037563595356577190840246009125322106241986381089743830079482543187835385037547640882086714904441155889517531855549344952288926306029221210247123044393330664052067644197643717634483173836325308658962127628436816567261574602452374764452571280941657234218860416686045193251370300182313516311523121468203607983777064921962612011345967498030092320743212615700234065835401126030662771049227799381125488888667758464505112905160224768618643009596272410462290441842034407352168740681716514603646365242598872261543837711831631574933538583835310184798002655814213612460622896492948114006362510656656251199025280917564789952077648764611325640184600678256273111722878361645008791938444833163671348156104426172150231448275003723187700619827035564485244473631726252286901197352022389066417026801742612810248011497632584687427916927037587633110936689276183737218424697305189359920656643852467570061214237589233555442158934289418200809428940680339424360312792123977661543908728483389057374756452672173383079982554417142620658453695597579475981142308638761113163194915010802469434420054141676737749677473296716557847298003730378014047564350339451286444760543952292559948732954522747762773570830851312526234566225694175083708210846621490922170311287667935948636095871397645904626590212351504474531212389190490181725098836536590257303219078482328580337715945381720072364376108885472799515897108349078384260683742960275609947457349577231934815204102627941217862843291650788549731517214216483859779011952511212953782209176891953812466323496054751650588658766112079434834107444211795029669774367388376747407388215333715542486798924341549837081464602854966016711306487486553275186804556092157612287900190042577483235527738363470816202251323295654152597476112121519612924416142998826403412007317947947626554777595094824662740598965655664749192806239788258109967801373761504931084370000048640837750513830303258882622074829659842363360415651258306178433330385335831286005993853537912959362521577364653700177713144915039044774269929564773058509862674069467273215640506682879451416746388898597215944359146707240532842945921971007932943536583381966433503941621480026640092093171194975797707233847381381155589508131786232410130070692231553093075542624470537571205365990436227952450088080260373267115110816716001845513147849417908460122490528982877607509102444770248281466987842025647258444445209935053202332901338811904633780791568323586183968731537247169759405348009251641735213944385231886047609033130271590104280395364404598790277976978558443253175851975578692128254187493666180916038025569578825901873327998729094545947085340406511314076720609771561134417506339261286743344324232038851590664563863930712390409528098389296421585717992860051928580815686918178995608930991754537213203469448359741581096349495180084778494228589295185879530069534447978029398470705190127041999265800802354448451532532675553505251926921255511355808109251815311464616515445771292977998980493175011442722384019881686608548365720984324038323554081050953676572584821317531453856519296460746049744480163280463358633924464003714055636526742691760225429815456146817844790780749150655769223154954581214613153985949767738311300027436680910541695017509301570606713662943513369028040533017342438239480219299830611029870666159588431125658367661496323612094048976755105816015547754300973370251673132219035181830440775488953754812964347608833929990001142087964038723589577431600674962189760087586191777104837836351499265291584918186445373771110049293516721852441658827942724559170083066631798585103647388166910745729364336250251395058038587981015921515177439232375411640072528262379742252294558283214006040665664184157326920040449783525742007727479296698374431870472650336767262638600372469292685592107481899560620908076949329764456556524934735630476627877137223765079323380513163425425847768899342661631453285255404807699676544052472064466469415042399070546408307920277373968646913615228885175343538164912647123318059991998158426686907048133830213488241910306096610916977334965550384870443697869473088740567368454722661131194240588340654768715747754693392007953965658483951045086378264093955928859856837021292158966247264361630986188358349367491933082101194524988344627717537770482745112451095124406234659575395975500065368043569069676164801375833473658788692249230261469748356150838868831319572859616451348415646376604516530866192399721432241740629176353886951170055097625842396179360480185943816298150277247290099841788862101355434509588935721948527749219323107720785948071585450480085004692041432485214819069222105248472652288818128635961692581766919397043729800777889107776962623452938934312622266029754389021776740228849807521709471683391888841102016930186774726047563817279437123624741012415275694389938713482537867321563987648658227387413394602880704318386233874838081768440615671227109202910062060775682343959050431660890722462068284947325332187832483750473439547165249096288291067234585101322437216899061414947858290961311713324298793960015316836881020652893389173963022821417854498552557989223486913626164355941594570342237347450730898954854515632895894050867909915515298006223822731743044881973053504013437420621433977958206389807558919846438931768365352491770669396138289183725762543781777792283768886203725607199830652659743095774751412924603120135097087847500093875588266615777309094624841946828764427877615703668692290404145830541734964221602250961262841906896017696265286142864915975347097823423679728586969221320582313168539096302504935865375256285630442831745628418900831567098529646458041368305532260766753520219267316740848043114538823790165402200576222587281310006906501083274293146565205921964606620203838071403378250241083573973896677756576795357439429954448293813139734243389264801510451373856472153792679743057579113118045353871386429739157189541430848383277842809030335129328756961212841381070180944519240013634140937549133656812444516821484517912787294107892090939496762113631894697280512434439958400480070645008480393859534378205889111217035500959379359413558621186954078857345635492751230690282882812613952498566688265642325842414260962711194446484887550616377614705725435469643606004880177780522521101448105211774283351896101627181407465864700522134853102564522175647418002915375302457402132613897708030926001040749754548819396766913159796344206902931494859284328033766836131736963275076874938625020012369660584510386414476507291155254789398039475259017070790589169703032768015939718803039735623548953192642961319222828221988456983800676620714949287193316831571528692661962692346832310703426100387328012597838231820033642448887634086119680068578070851003531839403832137359494508604856714147297614083177735083029441022051553878731701000471868565497450047235698502842520717122177068921741311933974193388536179929779432951646107307449424677511314316219074724986790141529409563703742600833609318504383903664218269564285575059793761060128891756508650965883067985427109502562242756535764992821978653680376397129397267848759523965857945964379131303079576192260037260594574671146949654117884703121616090932070985860303461177298776075223377921052355958669187570231378736773578668947705994326696626455743511064163771841798968712884012057298777228310976247514020592262757395938156237330943770817355744166606177799705614355781601479625322155100506109521127698988295574100277998507013265237045045000128834485662666499665935723970939045111698709676358505904880455984968828456401977238376413367343936236922798112428612289016454816558673498245606785557301252196544936974165369941532046673972271786306935497970191107611000524919495301240085994103871229155802991282144017513204438282369749564561481513711367424667458812783887707733654474036783570908871572339624273110712906808420771791183976838776309508005150937140492035746073991257313038947681122220285245544330412409043743460125460697230863375162263587807303505777488305199287157724649513044344603140953713540980837694559060525382790156877084551713454220112019924625417275877523678046273211462223785100338906750315639643546112282531269281700482294398414096175800481095790442845980945968845790805538296993114518737335846325121930237244582262137010274243530549887427881829546526740556858741623937994121516075420160114377569038974792029716184642378696577833921382576764346932482775585315704524047856068688829506223024546826118216120052901051071489734082028926970519229344265716334054815828573980388242644687971651756879173438419238879503177478332523166672696953421068507683625250494048650065948090593971680677549379781523955324465614236485733085433589536377781329964769661260860598755236756402881967593778477933954742518826143576164301203234950945785215524020781371085381684218207426982833934314512830735340571394719397210293209300004187951525889475695136210362470145014762619417897489009086938389539754482180029913105396909827193276711515596876684393151106792595989778396256423921866166675956442756873719626927348135973450577479646277326732627858133027173546674806016693280939282816988758713991430017285895082423292250806450360141324042284923566166821114644801739912015241323906118953589070454774113416359484321194229925097755299971152548755126272133069866960381824137776057880553104471853582286013561197176843842770182927245797343048997415036856924729615835074193592322349395448760157506142636658302042116883879509724990341425752148089048974461075856529791632229174800481738089200959955986392082317202186035247445672838426615252478305553571218144143903271133730173687663185291410309864772344266714900983850603893705905095450462845309436426324756411138293214114648313771419015145901535625419114571315528427824260993938762057689930228721137731647593590042370866965943393308861551064358827748296930627805564461735471218284410943552201442114660322505249643313666847667862797011793222749539714672606256327933649726333196044423010472561535315174893902514898608672291687739357273812848673734107063960572422179356265582307122034556112816676495045103002073906901818119752240275542425033253158788510533145104882234047523903351825057509701325046580197337214738616492731707612696426236553151290366359453274573963429590664822573051309678715071292648309440736021331226345183423065470122305826315937106701528478275834177679975046345665765805105808369593356012643434146737515342872668723668013679846915673756577123173458694318848499068922715253929258414288803944815731731805037394120438804659987757856824231403338155359919293784508462991600607430820983249612848408065083427543199741940199419875267129137246439470452908080490940850019871229238384568711952398568185095034874228285848234508879752461253175986896674281413175550079594701566951097254473608147165561119823057388072167708882936064225578723041923264636436558883049186467305161152462552150851612256906108635787381906327470886333179402137346203824945949852989280738103393812290588569434769712707205803223715941207309161266851317946930538275967246716804629303004588633894313781503038442866179604169591680489596237815974093912006765704831323458443438147467947032621211175903212123507983415305126237963115542469956883469845663598577432154876769269743930166865302303212555276445141591117969989279223703664626468236558367945808386420420257371243597982249606932232459964930576087849522478974368701988435866510292597630180798313949377993854783082956859559484929217593253248041714413983318079747231359504070579259635998322528637240411379030697641186092717468381778097005100297332587680223152871953050888866473338764933230627800766096195108198303721977808123578357485344953569637685902409891475450365157674826419884449782675329755620668669226451144465114956658846903853665682091290091546162882096517005267143811453940220572923017920305910872591343802707050796143100934550343383140753754989888696902406253245031266517035521125600669095783127644949360818988679125615007986396151543143921407834017091498718301619651162945655603582500080520696700621939226903406169143799213531131538510333987690344725976991473227546937668404249772881097157952095999221257479283303175914062807385491917077544834141138702031824442318251325108017261209937545039074036070803307573484923421229639695587481257929181932633764523935156906171902556367806442849811062414215736290423566329780491590923081847532654706133533477978771801309723069264076359326281372074814305616086267660890192472169591540066157864780771673647255436660772377286743510464043110728352337838715390330874356308317194341566803608865934126109919524704145613966414324238910789736931048923162289935257658523816235893659497691836248426575457783326054786360402424367060340493603947837758703595714235486375508062768815818400903959544862121760484530277048190942267949669254728046804338386536515601973106989817119439523200607021869435993366567444558536804149230530926928991299809453523185402407778078774308827219586015321666183196289653889788664820013484674513857290549405142163106441158580522874657950243418901268283563141057547655174275002608527858615876912992826831442046457490627302427519916222598714353440267669205871345671644741371925016270650421269102094144616666159503589532899968508141081956639354315616158240271341919652393106806423022669894126635561962780364095400788872999208902979498205264284680846756179972185217630190124281708893374013954581081960206835493800568873247586912762160347534935420381126287604991723572829075948348612551285247318443962452554402460614371951286433154795037624601057717084450393421508819995611609217451865610254704571295518710328351658071983711999088305736957206135357430250069291137409627091425066872227791447035921455450616289824444507265140104176346886948311685822746038135613091283861020996820658034507448172052170919339248818884667060972934269043653154094046216673863062290737738959939664701477942916366176465165795305302707382975636662217469906466800582416061552920918943785393525394651865672196252378916381081963144808468531453648083088163929714694425289657059986184620600482636349601143946712388966352402929845680035739150987409850759057667802859592171191695554404548247865504253709130453774897253038651172751590026249858672539053120796747907395778578888007829598125240721887679964025915415835962761267126199180182036928490123443766208741270882018871742980442039452605854800025740619109612753999196336822994243473255911537808699930716367585914304702092102053551362715358985495103445911757309612631418519058540060899946468363302867961178471841507085660870597919869133367931806143328149377464893715639878611187267304742858991737932399443244083832963993751127020267061940039436115965153054377935425056148560601720364029742984382865042031608320153033433284761386742076675526208502736228263737225156697326005402949678890857769409917116646640456986040452731124668748020653931669474449894850932957822556523344058721102840832883924700388208315874122237741524330304453357032333662373971724028355802328893655780925260689124984799077138791860633330522498250638905209232083153860712710361485052087178294612636515818417837656114751326670385155609485386994645723858449436678794375677871209192158367443631932810149739555589585547841815716745200319363809902221031767560908854695491140700571705780594828625391561933747898346570747205236836404681391407594612918171435145920447458552919529001087939563879022244465385636622162944578432497946760428548119649720856475592448939266535181413761880744982991828899124959519433467698739656717751935644691206629960929670770441217892510109488872600370068893311253943048801915643083291653888467853814225784957932802680945494075504039790639731431069322067878200062172045292479510009156413069512948809822005072001761435973648364629474722778225523551508864288853839611653582633295930075551706369434375190685685422118108397552186582149784341946939736727550190464886530821803885968905771271906726154193314734016706286980654740771382220312930798083179072031230982636942281105656446628388676878481143440472311556829344959421462081098004673604808644454856166281338171910008616194741504776328899995203826220936563548969113293100402483688753893323586330770086147247152986163983304678856019254074350331447294224246814676824551387463190635040971614451546969505769696870572359649312273118129302690244693598071122744234975841068877722684060059666323247930906700268728310172074806337310553548177950264008342201661931968078536908283458107509114655513790093017525783357996541067823593530763556407192307982566605390673048552507280970658613244147868399526774473001950031066523508201343801277486154681637054859178808476019764877280975787754670357709351760750056199918718283960016156144435294763235706651727107250567543990327091999139562223704880446889951508137077580481062525534209598431051976373845211761013881277597314907002160233633381438035180997992439601644001881722890147642037698794061895054173788794352554551589762119495677457642947421864974841557594651033637978486102598492184508824111431888970323509423360029519865542847353219857955266723894356165894938694887423138969618343636319523544617416509690268267350651464422993650531275848048004507282097134134034756083409178657992782539474694601370146946702129533617913832682402063026739339771720290866729867433756014143861027363380124916224271873843270276244466967821523909141129529964728214473624992949333665848029230328758470371035231600770172038529405389684599456593054218645162273546101558982048897172191149044219596111205015913528041506269946040813285973653204967985721914742110842728577629157900088505629044036025875962831370254176533193859281412430755311094195559765478310262758614707364515687690521866141547521475709186513199411862826148543285432066288937221215181606744328049783845230943269087315709171962459042800597325470238663399070942196534238822161818452604556465195815704041116084545334725095564022291790056062901136800124977512781501242925305037798640127694117023393675545187664955714106418882449658353495707183873161366577052452684643465699459452732055796199439515968762877752766779595835054935406423486770473221699435249234229858421514103389190418604101297065905881907947438421733260175782180982289815607598435528438113983107878143897025509198584359818962046872730996445717975067811689342284374216157338524632064216891507140197624441413070687818524470404847924079574089779404684260955840095573453219865845180854200451315774191292723137707099525875329864290641991850179061878860041045801871054205253333126788754406409037741072851914961573282320378065808776143661329946399123164570847608387944531552260325378161435127267197320565086588108315115243969944596138809257739463033592785571791066373246289231271170025694860005315703869385546684999831747899969457925934998332054513019835858234929428775507406451417027262133236538957103660637024105904134733784825145398885197393558980912632823463411778797888814216000507144858676442906646582260884815437822932911001001995632532862211931773146774520438725077280392506226138748738195827019902253377344428314930388830065771534001769775654808394390726186716566603137145676277354827609475431621651924183005811064053052462456104362951687688489871452860700890959728302344153360527652903001877541526391576932235793009851822342300212823347384900405556203033617993014277291417651508310840882953220324047810111077929073406186154669471228777176644779235785138575088375724655278589616730950987809825117175434480643907214672150075935133174666507184692633220506432968427289085758160638477750483402875279082241425797144830602373876876050724476451878214553068623652158959033663459606172746827847535376697449053478869994419964293643277384210061395853437463558292449754080522331044307287367460167849975870721507480004068257346045979656572399413745939187887468410971250540115822424904264962339617450239701488481197938457008786352083226711361000716367260309278018412378055512645171953829375969933965948436013015036238124449014014875205189419427887157169678450295449175565108269929305460538123707903626074304199808408331935560646464041601919483927160289225640925642115783652471709883037898442344959761749962274331959948896139144320584934577569557696245730587624960076301621851109508643527074953803401015462829233628944490867025284554291359252427538081344288016667373079135608169144113153313575913544717988319140619895107821234984778444567663838647240629988890752904626066124075391400363275873216994782976124552544275541387951360756313728333302208527926113515929122570686028254610465429541278650712370016858208515888566056071662457564261259029560830402962239464715702493996868682923785827695050983973639658097914282063425716741001190368060600545952663995093382539861864037301543799570418777926578778736745667330339601634636298394270744844650631445794372507928455979330166447613985921185667626968341204016581585792649034173510477179603349967236375549272995447387602996953613489238874025007071692469735593692969076380485671647407866621254925107088402451722450775628965579033272071385271533549108198433484026407964149973620508968412828741628782803017293516021671705414267320126051733417588875501671175271893596853917481053368858753306252564989559741818133686169753028341567802852061543930600589077108828813354941680827112245904106897122193772734918325228047979527864139228789646802949934055209351358773220904803166737874013110039383933326342810401388781323698696939232879522296937113483791069941808076888999352473297822875931410362556644287757012280167482221118712975063352541264618177580859201045316772894888569232964143391639291494306743111157745979622867467513835631772881371244718181956807335066070843274414937579772444042235829254356617297284853720998944977819983591076506218495521114814326211185780083883627181335060174089834863134545046619718712427356418638207066796072917030106393021556268309142838559470364827396635462945126434608203561869887744235107023119885135287167414339034226924892363828507161281737969128888266537935897396792321575523509179559299759177480773856159767705353811245386613132882044019062334602045398266054528861703677968100441900317973065499240625216347023181439329687109320585215689085487661379584459157152830558365455781270670051240099292020907611526707483314283018984893661181788046105481191036160351751244678741593216967772493132630334170083087034779806212250009339559258489595020708083315459687900788633065850471234382259674749169326509712485093532571587633425344686762730550499800437149057939175134344549942037769454914845700726364229357832988819413502981353533550867881163068982056754827964230556261097124482037659956884823749837565085122495547286698161823936238041575191644913762021460755608354957729356581868069713973454796856214644645506523561908821630133544376324571369464483567412353862403131876301699668146368993908347469435968351577960559661190250060531627105872297911884655365284156317644183688382608503485579233174461404900202427753645486713028454159452419432454812832986930670128115248205725982507729019913956525857606867298895259876028687312298069963320337139405947949685043363045351611537125770705120548978201520830515322479454185012771560569427198623381988804063267039356869382232634940524038345200358202471561972762610814161720324933151979335990735530904358885307547410215782633046499284472069930601683131442575384940517698488652182273663731269956377188920366700535844623824869316491555256889742557126750634736003446376572752309847821943002379336756054217998833202853814876818314187706781132940225162280627861528527899433538126267009331261791554380743642158143414580964805223404327183184369660389593077692387450039433246197150461103641691329595162340252086174689457939691361561906615362114003975764095522494971808963143344386618421587025238709682160474977169343317407152103623591027439533942583385753603781671910785870768684601428844739089701387921354738077526971393405044216012818652769024060120493661879066122991344422754749812880070386787697456592833105080601426508144078511222942789554456109723314994692404682130483232634421864188105149695907298317112949256483530591233934500101133329052746591361537094903877902308510994650907690422690909180920857664219381250583577299315344236815161688554135163887627684675522386080536996578881208368476900419765393355807615869219513467966478250941398078458950078989786136000609481721260890833796232128446442154840111383180974666558200971940557769804089614415897776776892969552360372143220561509480085983703462221127092257663803934366674395891056380921265233460180259370377596340075918339490716176036747111230906542512412379416382286546520343326529817396681918446295082950316888746827460404652733281387585989823061718226744495943632045540494738339176416523263993844844867993170695095725181701446572575766557619186049762305843769299608632246465961400440919281410316390372705836840507638107341405109785499195744517558124420071300842808640842598717774783108578327347093210361547545676862537565356891410734642721964954921110971044946746545648017441290337814692063363027923117025332158012850521983129022301137951867096661752298361849830558733673952202631380407034996953107571036270183797894230082346669583675508482697492667545167754680396267954786118096349560761729104553848809283339129630351324578422434629950273087027677208900614979880847290054714429478017268654477648974091501968269300806608039649144694426741058111403114437654952142681345584761699579611930180388181069295920075942129930791605143134551463179446338543967638528630435657799194539730626221073847024250817785059133686664104893457478794971942037452205000086576228960571962632869452605242050220140578534024155524679610967586286297226190013187890503692021101517615288531601951984000815231059048665227491906407761030982508097784040165210205100032651782250178624906233558860956988838223508429827833003446483076636129579295339075474350138813284529347647709622187875516640724138906309924948222157990195704578926543131102193720170038018867104404664338071334263399441912223536066694590807438467731197013450093412556031971723435546636950737627444471964106007842628992372512694971253243583521177668548622563666734332169180013279854144518752604754534011476115918719102337381380458066365019730570167052067062101320325049076293832724883926674969869308619426776702445742155761244857970188327580486691948313123485310418584590244147452579685509888819455432140709555014954453809973795624080264264095582031359008194680758534815055912138003037598993086606571765909312187813781931177772608190610769908032229798123916679743957682904455464872522993250439793398876124378182871835017900700966553661808388590398966431604320785654359834672142484888916532820451966668392669143582025984349240251236844832114138602529071201410666640432950119117655151264300813279863489477765795320874648526298834452560049822104810477553766931423047778306731265844386134560620620811367003348318519398982307364433656708367122411746048076491443737654562547966877442058274223012760544798313208491167642818788221444388336090650440141761570323941901738484664637226682973495209857173227046768206060411990998924446049085091297285248221009270197483717565422554188110300838941455671223228853769047331459837685759274827404689683192654267345624707492543947631957541032757167675593726371656561967854306065597631335785004491087545230839955593538845932891919526851144584711661834268824562848175701415635185210655937075830021542499644932345337399932436690623416000662104805340047003601144009196999798075513202704098480324532224053516397990875227395156251979896164479076851700450639479577768946343001536872180089178534761965778340254555531291193273117353039166646663931086407387228726075043615790429800395783433013012547477246038231163208542065888067904160725813186945510732348764991782310651833971068399376481069107197683090184722845743038678982090139775425520873060606663758516152042437039344299057402789141652584410564810385789546494987545143112612862211065979926768194429489509783952488723569018695681114909566468802675391758155059578673977784203691826089038220182152644122746166155525167175304829198155800644208232962810811537077662348168912596730292863764879794008817731525144338996349317135851686654377898488937310331020313693184354211647727361026701173350767840101330624885955519069952093800565788720292471166760683959374940666440132482288576349893481141527025472845275075677663530704696301583225736751401394163099253894804822860821507505783451313600311911854681393524150388794760015840332186605321355632258942517916624426439239076140408446933856576842668184460145373061368700967324665153811766169914594946282674266789940354110449763106662177156294693283119812647698543265393076420727864957134831070643864710693955488124080723546509190549107876976748938407474697903604969883660228002220426139809900972238666008486720240578599008227961364315617199131285045154944011936611352368855143561753472587862530352708044613532657368014798894495191093496937240350650217955136123386429200612497934905527316567533767153356176054390432120361819290568744453271512389003259860921973156008757924392905794304944794825159814759398444771957093377827450072314384086539169063993539438103062334943748190137678851309484892812899006270589820180643141874097121745650079112280292566035564550490738763124378270990684313669339552869308834686580596955861471684396947339147916637354190457865022564844567768751149734585767550502132698309953314460283867630778935436155156865889251252981144814220128016059758225343448404578151918809366531597971709968498082068046316219218593978747216878749492481504049194630753846916610615349333041050788830344155547586868144249396135260928543017605198223370907956107977405828157529123821707053779997591931849911540937207080516329667696950916978270954822585122314971550857092766989893161277407251603794493316801942448823886207684533649437965038446521577888329038558302757893555854718984010917365575572042416996638221332910988856291745879523291315075560056189698540724535810821629440210037271388478874967173747265943204963259503659064373705269440104085058716765257280563101333588178362093581931530559019967842175577526870474254668962579817923620499604403426621779567364873727535444418702840343024548458151193439172736451041646192905901302052104781300122604000836041944381558723117100544825012038982706822996748691918077428773032765109888423087851559369701078689033432349924103725316331238442080677640706714092820594535486499915979513549760912378132371550579400144424668621210225710106393724211293673319596765475796967549523667158315161517087858259070219418631339773016582137718029088697557717907289267331731709138121882840851146350558012306415957502444048418552935336439445400264463077944162365633342860526669220859835437875414031454683330677565952181875136778573263241769190622790738016098242265150755966894795853283430575387807137669108180583044684652669290550020990844439254292744822762161155574763571880290425292103105161028577426096631249433147930054447285633783344741800072632840341914154714029024269866305510535585539679552393332681202407261665164626141069123303032965035932388409409343480810069584136185904747979813812566654806168840920273008506939531339751588690307419461741609471588581057678795900055606383209391227232586652834701974012068883222686265858955096458368424786907711362736129804946867699242226255990516577494804177434141937127122904072035407582652640754819812092779461762290438287335522685634896107015419171589226805905316652294594044217592448704550058732092632245843691214782878952933489006700605426467489262823290282587294458552368927237700279717562638742725231210178525405986939527047425665650236955763720444297269808919105039673351300431661228609682205466386216227690676107985149802076754870465661611867447823368116478056909911458899661350232268891771701436856935655842403772239235362362326837950529853523636076528183103779351113196573020531675232592801511077746729956312792223280260258759839672611927218300035888044430140452142872309399733639950808956377220235305088040417635872082741484633177644209023503909308719773901502492928942949251186119905895962826354380208400822735999088313824539495957345730229036483401946355597187607094356627247850708398513065930913207503643762009069561554450797879221538932143416088191202559501088181044126110727352358924459982527529333758731188696338924401653015068810752581686171659193902625725413280563488551657986689926333948540907093391870812913887134482633721049354917585118123994016104744241495994672861515228298538618358613375759792311503577827498816663729659669569861410943074387624865184011214530601226119136683759396398620372502486587844431790045577504437987074536044850646087539776109524864865311246800840552834998543726252914076803308832373153622820588894856531850295430604873558475321605833817136780036970179037417934515140297931689920291649671830000124584116167792657728850182025985943857164044213772799219130316983803238806326631128547387960037449881288300232825007303421623097990276570256076480974425765792794855300117809185364666649630636924183644968558901001848983013997788771331816010968498636843019055854171912222581313178804803495389159657948247154899424733090229888825193933879129519957652188202572262856505151389166844813278608093351351553524688637655904202887416623640452086821446767088058552323026109585453975253257703922212722802182658543426865057443364412073983987208317633710400311823649737131095255392972480696670448532278757483301803212965478383375820617930886625661703783034571438501315567723264346053491034060202257733092437936784256303632856171854605370306251764027280041979425219038014410795724665745080065098739209874279785756129788886052270647877826464015517346449158141185687147990747874295232943754272056566548025594741910918813974109075222477503131870581909288502569743108103906491043026904879011912450386064462622657283916485131175994203754753853003811895685960651100213835204590311243356857225562795968088930675294533536710723535979376708220291251394207511821265365219818540117379148385805711478191630505480071437768814211129258999821853566433246465725583041540652906938499502742689510900018911342404842115716188048490689171751694049910477102766038971868231988177609355783425993636228517829278743504252801311239611712061167481441440380298882245219206853638641610991317925801568140699500787912094789617502808946886569102810900987850760296646926595532539719510539842646425050320338336633978984749538961114713294315409990262599032984447149580722671702383560380374021587564394325537074500458490409632179675556431790819334504477660410285075849744937438287558390378914258825071481934129655157069636258109901097644675221669573263720395579044648098750688850742609110878574693774604051979436918230224674275963674844205473071284466587464148658801965771229154675547234779819760223129402876249758008249607030556438023358263358397046195357049111323797343795856402412388780232610806675595335457816652633638103078334541629898557619185342369109071121334327979031155215525772342355112574371718066977429244376409970120915175984448153264772742040065979900675991380595455141569364997989425553846150293799595667064093417023918161775001109209716939835089630004306578421298921946015123615348450591337929190562347842359961460599796695591937500036771255324949627630179021498307505532521960823156492326706148507748372821238128877054551416518771455080367796455674999638738558046086281609988590238460112659986363108461957832047571361491346408804853914830296101494658122604628596349327482189171902902209781168772947212374477208024727647606017011214611306284958980363128431710492762198052475915674598037587809214367338939528752453318031703181250166899424122908045082413707524716235764445803185456795561836640281738550103946942650866590801506056067758863261095468133503430237615522332730876775079846152021233645899136430201260072060366664275839381763650333886659728210735820514722070350116753023275115131811512617409692464026150365430826311399057584295577663032378094880606323059012127001478842184304687260125897359056763512262340561811758353604521495029831686062900460490812501914748915033101804192773276693076786358218590902826096309173973545740891027958051228158684954599388593255016359256268938785603520587627945879327154741532589775224189775416237690435625554083960552628758109471210181408900372814857072782775222975131986765578852232104361920431748595221307153009334564834779250096761602003261831742380862156720412524909588748513673863507159709489561240182188181589645408035998361711353132187102461355870597866369729531735930365520463982463674952404338390857464803720095361230846684795855898211770214948216125406239813154319602713607069616522966626889631113032465197827886600321752039812578257745805177425153645046450706705931827371273540158375205787846452814333346446359987252639127055703471023085011287134508412216936697185717915806852539436990725420315243495417194612056657572883950587660833020787235802432484340619580904326271996613713842976606607356422685231987628681484341617122237702764410410506064095862518193958399820200345904556366063601589758126546231508615006045302030183683568979797180572791605852971897977302730421708156776871669020169789404378410427354381382621062101617187566607577102081223447356290325678158432658331998464707749984633786048182714413514768193059600394466048799563402725819417464668794211486610236612514435089409590388015824050854310647249463332504784486755793701340533000642324675491532742209129732542268067104502131712493814124568855571877134077505694948741456894906681796241320066715057199944606016860680703120918120707263231395142307061831368948661023387321248706016191178213587773512576622178749780974688933162472676480340749432211860016676767148100071473202414963775127526091928285254064987704520801224463887595541308923276283867382173004378365760634288494862641684090869686456293005271189455646938825264442958332707672095936187377585336379821348980883077765895536848586984534054132830895824668502258596970947635340880599252924145327819339642706909891894810410993498023639259605713669656693316389596968392245306453697651548438919394323476857209912228590449760860136586754487140148427919824173264054772225350298537619959494059377734620263107137054756693116340455819370667505690457071125550184589292813571446718507998455152056266040698399945114290598990539449742558825349346470486812155462837002562811215579280927378254747688541626439149570430167915891253318426912559334564148217565856388275569319469244484982828091545545483246355220694408218701760653583882023314114764594158826589095887448921500898244070196218123176391338437530749208381498582475001954351758861459252383726502932011043106387417743826816484794540036956167527176856808139953676313707908440354368472112634877143288762932774892725255400318512016997640950087340804377314775450448358864689340503998386719470171181065578628974233157605855581457524414727981299440000440253088901948186404441754422283544426322387038533857071193565524649323622207101566927871321639425830425852725436390430263266903110840060869628377851538409090199361895255991968717961870872142455072541414730212323389736845003215886638214728606851046290690506179855550547683139180873262824275833501424735423699218698517682363887402346207134207009687771422917533320879092801246774491487409021922951741091231510946476097997249744737257871989963480811401698649278257021269784931390079985542306458260227432997909472415710536507412153801465017898459644825674609401202612249602096315911996658136613572283003063595948933228036002441130941744932900079910739692559202262166621336990983600721439321938514012109471400675608355891725464081199316242823319013741306281149316322386626043240789672693291326473554432027978534687980500698513128496412011043316800079788136938612603576728371068962932065801535632972110402697449132072749953989567572729012664130503422667589428261849344915383268474388470281314722534430272035631339195361935143534446015813951400554094105578101514593132399014108231370556936431974559085723243475679281325847946757423098737893421200221128739142526766325673966530154955557510393864635199412538875328709525236017983549208416101455570787351924071323341205743742230802327190104384527178693176433128798403373179321632551775277985690607929979176700840539681663447620535214248211489519238679911421053198786058156469783676916732669824241773088486963051701527220670515033965371198317430093231176325188358889978927446518443133194688436105805732689538496870795273504717600311059319666353443659702576319668020425494724579851671277473553174821440567489138024386495244111001113832683485624999832084751055590104878268972063857279390620101430534575338284430187509484226063205195589808050072513279164602345112550833562497782829475584155374456060391094434420112598527391159767961837111015052849763375027054226734670841814048068394414559494853776371018624135095275816832251202458049747591961693707764152720121491630567840008958146733788326107198694713986252013329101077227243579570258637826336088094845026544884113038112597799884608832847375316934292402410074163688725676722003671295434544547044215926642379368247866402625592008720482671184144335945241723547299356901731162256782655426284437419733064383942019600103473513059165735108123309825679125545671699704321602144824806277601203375689948539001808290163923679989051669725197602977913464145769612245008622599234995674502575551969149963526838916237134533730200139886894655118055079176362430287370232110626704643118368058052042482314123609371119772733944681631450215774838259876951739171456103602442270486281556759205495383346909258406919346652087181509207050575696253498827338420435890958538213355367882215540396304301034913646115520537166376237052296942658368918289908210419425008506950997238428330400919208205879847129217509475094275758535697043702984188462922527160377183283444955434883957947152226709385021324939693371181145508512474631686747743124998250094381814475401981277619336830238471059267127094639876772835876981962299852479350886145974468268056956722177444589166194398802088999537350074231124620302591210999637474763226671480784121249753763477350559240936299954589552668415876841685033983571869565112549656484449496589732037442461270263449402361470105720130781735562528309480823032652240781686573643125009043960240844895478950955612011529026815665638731571750931275346768072630174840703625979936587504685598770241378050873161874031291978512590093889770584832861104792674859059177970925649344043205736591464942590087498732921107613752648813081351393252524067563519115067389223575000624715542562760925456897576015304453175761980132309365510223322213561203542239584138061056192395181693282960812764755131438934812928693587928280693903447267390560452278701310210781574994448724571893120007255161879528761542083665295262256884561138711741218710132531834091614896253993738159116035938569656352805768148424862000986253897388149048675614401841346351165331394769521504655364138032761388780607440122260519742809966610651373906846064667541933874634417109449020886433800722115358216335468904054280013439292227460416862069685265162177932594106170994159868385311599976093165029573235401140073403627481422630450784277285803807902353828648734423751000618667365036724580486794751939514905608028054608838033651456585607865929943032403956701810348077464932153020392706037040180871382184919679184811998119836169424999627221201197931352698511814841577959504693487869340906111668453558510290570339108700689209712986527415472030281638001993107344338935356551754236631781890866178836161195262445034474091899364018163573456368671552590449694708943101504000953350562127536859508099695340725436739652233172215729111191769156188841961174374975892934897470942161779987525014336537605484582916912020591061430180254667331644309589441684323200887182858550781737796364369270589766384534984751775260877382348683854705274245571460773886861493883315468265350800720494844109998744727313828246459135330540304636463520300468443970367906080786998578066367213181541529341018060448020086907694274275812047229813992368334905299406229653294071946766933195726726110926508515973284800544130769096538588343999549452687240321918800756678214176594877796845349735272852334491339693860624116250739359322637170534663906778618626743985007214754219082956601125865118337387990861186665508843835888644580114502399699247922025840094576818049521299837480036950347269533769735191438475421775906504933703693266740407851897379106826042868015186617537987211355810496731169094093281066329299200323699504578735529210871926881074175385698764838264914692374412694389726168035537111436924224201810914107436587629227985304290398102600218486387756603664345494447350620932887885794949738401545448228125675730405775346144294038484382739880537411549680934515777104418075115600403080579024888718667094679189893656334470497464631551190112997924890953436657851741611921590291814024322780542954593415137477118906066499207778468221010217884055847959004127180946404245441293621942964295114502909592885362960907469644244954835506972852882798287660834292425709220329895341671260175816909172231432465868524435191666225806163939597444313777256216621059278112531928050917247136289311533043926370819024760195806927821282488095923239870788612294496888999610731461296127205683642863568110794405148919961021043194836907595332735411918747386403984731230635461909373121867617234940170535573184684859452272548970231816312337156101855584268037620380608154046285123490199585667530383943737657465226020120623244661966181696531923563626637032068795183737616448246549049106977476674235695820591379940261859372962514538484927729172342469061645709141340984593607675388801390281222472503469229582182758428730922306854064328896826864205928214386496547794470310312968496000425987095011757627097406149537308474542216616559653791292655566420652620837901134134032199267947159696698343862101675372280396664081247830178854982799752680627786297666206529549089837250065070414499648169467776310482851259091879696256381409142703221833698427433526863494193872393405692625469244765404852455819281278106543722966226472713203864179312808339608515847559227075760205446878313283654806221690782676831877561906965778775772830502649771217499206028730685044184456966736204153366572695880617092726679911149537264593611873599871171380765469044902085749975934640606237329100546723394173526430166616005119924155466105228090932680501797946543492241239084866667277101395820475235491561076332607269026519010983863138219691795461024102486893610387598526638380450888315486183670080231480336446214512900527170550836788226041959468723745360119875900631139612857547976113251043205340500275389466455460048862098276452647636940311217319814397778420592350847534852146206280544186450772094816114512913243805697787502856235306300569235968639119560658725401686496674002306457315795704747047107422050029883875218723186334436665998214945667794649467808273927601565495010236266216354892880916658467970534398215138188687769991335387369748114990317124772239391352686000236426701779462114429848244609602870266706599058973622697246401666807360901593438493504922454071202558467135973516649314758336851304807016399498918618358397298107053947044925153459429679585747763340477714251629209476093652531164892454899481661813031297668200088370697720349106625701639590087016986219548991866416776034138701390284065582919786982601229651952152918923801619052878240384139570039813649963433298063478037664345932010385389921770016761747697070254480076271633267054454497316318976757140124620547203722648925691626160556838036021956246609091752257916457244196462377064764926962989360498056963264666476296980243432223677260775199676914948505002245435077842030185577474722322094136631941018314900179623094982007736332051249071827160997499052624353206598871304391627534493258700070253678858501268714449698419073556993473825704592214458044395397105253660234362187907594495643609523125844360009223684315665549722672422024976600715957170342467399253067001336379677010852849471876397979880474335123197101150130114097863059532363824075082603024605126605163431770502282023363985918206341242817897411409587693611318347192272747025942318959259936327403191360841757624706899441580621602722254385671849304587678108454945279955024395791608814953748431513196967822289248057060906663501057760525171508136082968980836867240536687600366001955664039694874786940570507486103879213830919866836081234681287496551039595385570130074020844894648175724981791780097755603184497930774935040935176375054657939275003077650313791274341831098038399562669914303362774828770131515926699800250835669567791945186233507742173335726107563033970534108697735369991141319609976595518884369952525278034188387680944665142230374016027918629462191621952764504292797560904691705065969211398123279459624048477906629448672909600510165423167087614618567377660553579802161417776893043743694007963233854327468369006491726836497700694860227596846124664369969258189288376664821000739473400556446563257776598701571248468192420972568778280725173010122169368911112364957638951211354681266698950963361921133915683768026713205024749326260396081964791036723383747661189927643048081402301016669461856226477507286739657890623159763194436232678071677750561936028133875899685946687367326798734938829113669206218974310585631368980668762770552630188989803786036407608795249490624655770765838448117613976767090239150952347288466493953070241681063749438071652697873315179712860564363175890027877462823271070161608336770952576951510140226047865989303043613921769835428093579290581163097543385324921644930305416095274120170018683627506092089617867789269206843787207240050880250611120246053795450053862562871658197885201209342645598676088957806530161277600264475919614786497982469763838812693614713481638253444081853084328018796418526134951497238375866108881863534246354495906058413621527975415159748927434228046464455522329752704756320602625417305341193576657779225664926589798403254827976950877029955139777191553297590813742173592660733398019463623863428281513069958301013175368573341659827852974158115380676109541988831969880449021527344614096261411121199168735649924365515037620390795903209332078523896799957962669633955105396886132708395157103441660523082969207264393235438445928883908452392947631717055502790266525723638925842553146257467109890051858836459717492897960485852597083235239973573015620515077414500746518381233133606860458328556704907056093723637202409275067270130949534885883310166347672727221731930393230101035462533583509609325657580629042064438090359657298751557360537728598283892202673761900329774614721672733727237256102735547717977470608423545301184602967463314008419262847269002813217521236598593898313624587754345690752450588346758248172809845141087026955807548818861972963927651130555984486538107054302283488664105402099100729806226960627599979412781447783200883991230309227203761952458673337994613819895992893311251410419145866209459854153283796463284469293753440621737366982541757168833103532865821631383060910477986559393654114643813899947091049036140982216373519168193611107352533314832901560861098460610604653546589306412553947660306149545906592507114943700582824053255811740255016704945325591784957529982760161897434750773606128587388945828526898645870903026728059531805269085764846319074268864849634689632457536250257789766750087068074780325541392029596677355641460969412304038033281186631052627644689685514723156928404137142039587865730001546385757776016270670946718631925542135423721379947209524993983432547271288124141137200230892355313504688490437328914533875347636430454034928702776141025682745457620822753833254646029846116275001328867784102660324473415588463015563976164045374938161510512816238312692711496934299296821152076113136253782669382248127511524016564653948058234885153435290473223342554771784648165356444725067545707116734150330231503110862315711666344584333254762797627615285901661200768574127545283152918704875084703292255136801768101773299103164747859078880163089450309995008777644692396398107706339155156246695944926754047103172618653596959896742761811924706059598287290318829893272187796376120698750098919902508681549131974753345249505419897045719385741316572461437426517159409639322935935943718495796384768987694371631053085594567551307287246956791670846908170333745594197082383658899157884592519370951378356508816171319346107638930260150569403974361793887682797440517731896703224738780571796925524169637004542185331439430863851912317147306067771256058870321854336371270992807836851453044488179169814395170961914328683528965409431467358272128961812473179529279745022660054626760094900674660207703688903275985791949839610563635379027773730331066251789950592729257686926473951731053752113546369694190001109778598789030043996689593377311928630465697257627004893603589627610697752016643708461939348598751059800875058891878979061589898995868361977107246404493027230152657660850483199566299472958991743340384547253535426010695385799682691695472671923800977539772199049728013061555399551166552273097621928122044299135706299375504659691213519634295142267447584491951493598194740508821048752342102403183288176504033874385580692553724009170083725838474598753617714209152348762888225642083176500524065689021773528824090719984011982316278986878096238140773163588192500582433707200175104375888196025162050261477825568718329911066620389661345118230163698904427620587567965341569744856373194716007240969996511255890980269433974846493748908463487896872992543285363539274602793367658585966677485921457581031210868415644781384097494645688239132225408847165437805965866027482140112328628868121236893083835851491791579576841095052107346620775013493864402853110765907273693482917277668193252175481394097571196205705246089700228349806587094451236557641832744252871878918381213274618788128385834744921920792632048907500506794222760715978309018596401517009244020292501191122544804008939933642601121566515238554491151639383975481946033837830865212340199295119511271270145551166148124789254052168331202348263379685683703165641808306409848553449533298683855880692956655557790931426483506054958799171594351301535621666834517664569010951501538449957078505428145714198805808287819408692700278996585893495765074335162479455726337423006885267913709624896802634908917229719905139617003742982381360116981950112472354116178828028460039676826698605096934524689408770101095125240357376134377650148148902550190956053027672068964203481049628717999999102126727652733918183825288990298160818880174526783406668174252714239661929562531950152905947990136686024391061375631240059822470615206276082040717899313746034961000598527893521499246576972324294705318903327453311382492709188844680444426059823184060513810438242235627264154385356825457659473278539386719652083921014574894897791140681668480920321024800222902365364121122694567755908648735021225874401608729338169541689416665613919393259364197900317631782036111668165812803116733718772797929384577269074921932844084225535434451745877204904790190804585174007265277250853103421148814160204162298271124205677009859252380236717220127963107325320521873483329989804557274966428883677218201423053893976750653520429700610074618829265152566401211660407877566782643807064457554514432273990585488542248943921593742301499039429148754324014183017492255438423794184023435082042448943637704099660916117503971721969993877844615908679781360131964067853267344410141292807309642259001835838338898398307430583845288937839972946382587938945031609744908311249612105133431969686487673834120339269144373693787383519099980508601242110972298125695410498384051717033187378965441935334876433279453606020851275176759024280203072129938092030033187811722837583289698629825883658792180076299377596266273242946160387696527048721185683173849378223985292714707270704561990236415897480588148197015803222749752950071567291000159133982678249144617800467327728380545952401279350197602200236815901106574153987156605755466954594979004577254913278426141473971265236326031791374825274571897271955302383965484739942080365168516276500375649490002210402881517190576377968667007570782314435830097378527377912849277078641538380711663210291009262769672221584332456108084690207341126568517629521061132934701340137494113569323653704466020616366367006445975994035586453403481244046725079451797129360411949960451190034817424949495102593057103207516029082810256000490688309425830076567735307261887270014817146050509227974052083443425243441105597462446814574273392391216540719410835709524689826842823235116759550733842882135375377103784141321462530817281486285265044300445709560618388210398981645233511114242747277791198185532529469709841685688191952510156916753415896150319982439577189151732742281373709563380387750536036164198664787094312881937183058650673965980737794788674013084105138238617185218542751557377510309641855689119928995200792980393583344233326566197402952457376711686033261482957333963517337445689063068067160072293217620352062995445712275051752684671638267870147241433826626418823900475602729640472726974884793851753832994557070452304311133342126440627896939294813413839814490946043632616097549965979491998344860644820499857525760900025858492262685289051329132952072866036032968449909994279880487066399027107743679881030709574283845393612196933381695607125773757330908001546098382234780440108803991431168885843399538080340060696998369940666998568552518334220740744723050012202339380289476609651231474290812369869239834073486659508225198053902116073951242598171268655919599738808278642347825586531054891634431144454192033909527161932445296076581112479697011218123953466270257626406967585489292807305937910781300483921544042247531981248118730483467756472572230703311245161615157793523587598466065602816127011521680885774728668634194747993001812972750170996186701789144806831562197190686191619445263497644179651104647732873374561869244760979585591120647024881179848454646527415892115404357926178971120537069784582515100931292371772888219464833365856792987978346900044135997292112447029178665572449709380002645292757907868891631984450892762832198310241497482669850348704929061505620903834300113173229339562405807835233622322031483826816502611495538350425102275169387005345491097885508049835965227471640598469929841762000370527394133987382811767648976430161723483309843551095784572470351618260884313074207169787788901953455248714918979052185628128733816090482113214284149123973360488948249603802820674134960550572150119509410079287870387988427775137142142929394092366924790740052908245907976051341258488693873603257725685587046791842356616684806845179394914114903318974993851455312539299254062907017906863782295821019313194881746016054600049461609280526153917344117502246234308482304532271709946454095147440375094009191848622452257777681214655830715630695607890005798264200244238847009109021708012750878711438916415214768174844634545112960394864315002569285535577782914014526437107048550526971790873898968497537492773106690973977001133610417705603161354475440140527868453279609204769438094318525609460234475840077412824917460411417343004548427505707673660688156597801497430184298223211393028557438017040845171801045939326090557536908846379539868793868212935312705087111581992085413423553139175644491986666295862669084004125834896747651166805927557164405729538088082075825260588646490460819617542364609274710854325605077000976275735893995249720089039624675433813089835576129632106693923083428445275044304307827475024010837338467014182218355786810261085826410919386145988823016189107539078034146460280705966184455324635548302554002397136450436230034791498310399142370269074080352117064187521432576680059814113559398969667594606978061673244028523851839380764688061821068205574998768194799229947033562681682607140318044993342022626040336445286258951079017214164393564264062361710308289774869862006885993700953023884575793074452125450420189039178320250892275434361795390802138706995321125339883768926866081342580634847736004712619858293658393012208492207306103898860881991124404191601778873149970444075691689616672661593256042121981576833186339431780502869628841459230026838740336318836842301949022948779319454693089735540413795606456167162994115397241316853673879688288841486242812320553606074679513444891820617502375826830950793324713787119048272905336067372313255683603129851763354421835085792098217818662617506630421926584722246980029287245941337666686531683185446356231917126442567058327232936724615170020757640027935604278554481552089123634988271209161595573517682245058082973316264891089730022471454556714004851733191376175436271538067417491823636192727490568018677716838064901821387507140256793982022999386530501463264397448869661901271032682405814149573140700549284453763369020506667796736071811159910617210717735040417693481402223303043447690523364895069733314676979484087130221623483360693268848390955378805696556882259466886265144780329221554796840915708236593256546484877982480021986418566980045459552652750357178184428861281340380234630295522267486799783048354612314697249049502848620286239139642008224068438265201374087686776519541946382971871079565069727305054853637525276294251025916709992777626855968991563347256475963152099499829398852118264205908625422563907841827787614205712238790072808904722907112382982883374308837526059984830161272560426138930600096234503257447013095184304973080232297278797074746779737542662306505851689668370136187929087822188320690831404378962304356809582123141079227114257638073189981840313266597741024844074222728765143776054018984500224893051863199931749673425866862520437398597943099666428490555949304053640377401386031334324940198497063143385893399606766427050048620681606113312432175362572470862409215062552141027297496213212526034307113236188049875251075555845112546660168453664019367474618303711826911771708261351863695783946064986553904289015449171046617113508508502245883808723081510852492467384735755509887846686900176764426708086378841587060358596075913563956430942373695457903773558245003670087181077966649869646300106665010973857686806289883775193871134221449940611886450443886908697676615581158648090044340322438773600952717415065546548541135723648219716693188576800321214369351777228829200441676426530134818519434988665574865406689568200912935732949050329453498633528129330753156791820490862051342282706951691181448865571542787489265090444518947286267080554279069135032016152690201841826323739179918646057355184385213971719657955847927982304797633338695891422685818819656493216916794549263985390182364432831057833345389446177224615064350084229052304436452404156161962588711978279387479521738037541201748345154216489566302474980751435253885631206868273678942613530806632878891732909937598767338311569036403323294682699043142958663893303364042431749723914033909828711760852515840070501890069708635720808110710702603074183618847963617971573508655692596193119919283099643055440693780870700686505165173371739649948781570498369783711347110865132512906517797119490663800722836430913789883376679271081325676912294434755242941340815072735322574887705275247183320933297603395185981496855896341273164518750626875833032312043008793069489083730049532439916347432972238761535169387809508116496666803391004276018884876977709320918111818606470866312296539273605991242744095977548928049105605619570288668223245815851295247964243121035304469252775937818103535173841212222862398662643024365670466916492666757267654291479301654218048359570183520218192082905395809163842743485077595047625993681490232106604111377290087837511119220492345461725674866044790656592525233501813332277776612514118644231560274754186935230282783208304520282269896983664536224424547893627899422242324644568394862360758619469152850836571297750121454968137949538510043550742916798199861311801082608701331553046679520643117380075148927404954132480369915710791764501156676459266077240289804119700362178369076948561099440987408992320878018541298930464307319209883459629411433395857464442364334157815331613758055360239120843814805240000304493781301164291511111719694489651683238229241400792995820201314902457382956784849851402956304672164259319578763170024681137567942187300445019467399801395504314811159130220742553529885064731063717442406260433570952884180052627261460154885106792578765087195012913670465757111987620915953886376975114065470544584231319897252534284126647191135214910411462126872474503081637277078502701648350898883452633957474138428259249313688031264218779443859412018887283665656507737668344296789606837944581270967212442778086470411736218254622633690369591746047320842189009380227431120584067695562122638663217649904003140304670644025890363707513650520578644095173572595104915187748636479477171606027641000230273456884202884178931547738099244396706769125935224537471845381929260540341643104697473216401504843193631406374309519666308612157002929309890740879108801114621223645426644155031355435229354646235049652584652322217824709178447376431467443710139964858364003186299969070974536496821633527802292039987027276902284904847895289740030937439625828903708148787976184455542060157827805022907560354447014680936790989327992875343210794324384667997403502249387243972620680858375769937104676777643522613674272230447321071116806492258202113916353100581643781395951129259308211844102819698666812282838590498405826508900552472276666208570556336186814741882405973569276430621722195213391772014835080693538559540434447265520454743958833071928513135650433465904305171031738365180480908381606913720859141358932859149070767215264419792416847325794778626883331562533117307773139698777599887000574738700300078753528434179790332234546253137863763189010734325394790020503008056044214706035878426585513254247199209556888604181636921296256701992079209537984389984618038014965982232401353037209928308837653213621877670602193788535900002098898446779842646057051842111212921828755818598659040731493886204611328950882381127110527750108244510272916432778685131829597341755485005613016340654742423894572730284829786475010087464902114523346492904234467962380263132297073757279781781743342025525494688548719062923936593456934634743697645018802303523768895840333179205693709010457625975936434867223119637455622054099970843712114651363122302032322155648324357567010005473262514805390839298265152053199301111267592841655465451862083041086334318620408132474994961323653739918450862710515521682993027301778277670043605761292065807401424316752204781197152303407083056636277503638386233215048488766621359958938018749487061779812316327585675645757488487000565809221473230353964448121926634726204634420823007232164968490067038349812955707736610946501583459178842175755296544190241098688415487074542038001663843568640263507011634432651653086702240960184851458048486799722321861173393794094337667321134305557159350635861962328064481418360312649370830558048503309931289890055867685019093897246310220012403203553233206167036278481847441989090097141581869792279751893382938987572804633541694049376225486368154273610610631483719977911659787119307937774330584792221509908169226719514286562689092311700745476486252259820459413535946462184003516745239078616278514253700369260874864911415492114326832080379444290104122600620180600135764405762538683768975140890643986354008968340289071821198089398316868440871669952787799908281857289041240294924867126673794281332539101778244734951365889096572268219858613550226632201109400029951078069889067941926920882529106356806788397593504947244492550074636115103468820135141530231866259269915057315706765629076055525805853580322738871506596411763851143578951475188409594063765891370248971432186129068832320381541750987628822671647842633119512954320704777206316174544851943727863174304558249194140818457685619821144521301104354691284673599121218440889793244630041074461710936547126513501448188612674926596432418113631291758207073797131466439376150905481467551859719222778748537680343472259714638835437508195732574407670597957083643094975188391167156778128561070954162037762615629781155758414562819546437636398338287579630173275267037136736692518621622912420953412650599645171697891929496399965529237573820700359464223208710998517608405706783714149300020974760060200758526561454176694874989550916548971762917470874005483378617605766016166667272507288288772637901199280360778787166029122253158033919264508295166508576245050478642308650327686023834303976735638125656912298471435124664447810958061829535931578225470699511971422093350496948031920986534051287412882983264966497940279461977862961367270572857559506391550298023444922054963084311580014313136555618701064238143169086241929620149661453763400469811426562794126154457403357152792450575101340415535412924833540937742408653465422202864563423162904426531575628192978057282592934924966017722880696153559520813980257249774186170408464940779644269639044594943371973535059553972171683602473405837980748885326096028833846330570065689124983742065579363143097814752095809858773564271478346453478237201356569871047727747502747747463378342099491524476540458481426610506067477167302737236090714488617877700246567269280936550737408301040219046034911888319883740887029892601936966845113909026122228541528776111644249328612392518994743516156138995197988254095675055661551873937258267282951776752296612630799349218381803921517879300215105589646028165394132319560086156716569449073900168728197155320803096011147692647512136614170243293645704304604335792651542871915521403048535919326117860439680338635814494224134397989851652978706153118563511894828159962185743865247446766951459187723676311013212138786221817446435841427944335941489828665250530000967837031201226644231324055770189031303710497837739707469864100389608887403101317885663439602932055418257854800307831793133412842071767137829186262605883340489787892497470752423284824607695944587368504441521977062892533894877551220540181449039797294582754843752379177009917694786179380914814880422546166430015113124068608005412969697710743651611444057969874064203841495909674148766827188925281269246219749757630406902581864802052209748428139815977760505789084475458705809644500572790023324530490490517200390719547003206855798987267459394680268239295570156644775996327502404675105006405829709765465348633097255577955455581008380201719329683249422649204385265365262253936452472964801419597593072922675968285462375276412176280018619829626171627763784632617617506715871304975183264231924824002006175247519405182931621030868911361154011039311871935018724193049687662574174473311276817925670757427760660263579726399748505531685797698556116180283729511846003218591484404313758171563120454529983548274670100581483471236138623859532275896655022734513410751922696745184672883946448708627096473215662318668323412981604152423464287115769532717675332931898926359591682014385183871651515054295553448722136154554453010710521004373896355312119600045084709663445294819510130513213126293036650365769455500618273689292618722660211114606024524693847340361790145121891094183594174118818951026889422456830521930153332019929501940364630265376750724150495861600843490831442385296181968482013050955210446768042620330324912421374664967473503006186902999084634035222645886122146785122003355121058747516921778849381399086459750135488599334476278395417520996699861081055325920227988315121279537771936961128786014385030378979367587286593074742871494505784883237942717620952339988577690650368905733654652040582679934790863178673722732059100576613634526087006076013065346854899110524658539252651590496748491702480530872099933253579228782373854927244104320311621598221050113728018642710710866223709591158298450806975747790815430709473790753180335199121327234006181686346691932215516555297293094686737650845292211556188900355450314161193859517946362210171278884881997217297205270525471225194367595940340997505682792957318487889883142391834467274416338294402110928288319481731707334677185375465525050175493180820249550578940372481870801536782954475313431854586277775921781248966524579218714096392336610922928034909608189118452934732916794162528254691273299908450520316804597933395240466447698849235389825134092634696830490768084890844450226652440960425182208779128293806073169229398734939255170420561201954210412940486788678422295372905482276697549299406393709824625550659391707378051493182683163034261040597071187971745359161790092236215716976231811694127014196222929333587164692570275699149937719395428324763332448931114777973854439939955721349465487962482082707700854758422260754883219483961943352157876771885228886899894716556410920459591503589810886946940385053913228034054895735315315822452984578765624434125695556407703712623149681973753555022148236179407483762794346751571766887765735991907576620909148917696115938180131911569756296768042747900742744008191886039026189403986296279731550372850039041036155553717397795558195260916985688351210189015099397162254659010627087630459875319308612668219044967797561681721138348515129908842351304910964865222599531160947942451975503554111911968307824634852397405037308690558123885137471047917905472568301543781757456541859787394107824839563035952142838504124084034107189591501992565630067570834038226058105626568285567270689922760170886239823254267056415525500066708065146909547318936993010060805107864923805936107164358452712798844552676353218546001931995116091442132793289100827777597235684145044398403722038799846130870994890119700661575059155375243958973244620909413611718277140871790989424283269521517938803763976025501646187111850343832189361885159970066990235009847806808374350485035954501558786420902826676468447325496096788774936463886906410584470512537993311605172401894814709512175078442991718183189081306083612764815122860807498719012817972740539418311877111287387127445148092284216619763975143693343685970844678313895348769267673601600849820316964775743731880627805488041927794311797403079541373903792555604418135000868981635036906825770997733343235041279210545739734020204106384005822339607131128301851242400836751333472255633236426061782648199089259023981541254234338724247156239527618662394289815420931186665938995518504403101824786491241242711315904636466186199423896394589498394343151698102396859781771598170653033546524194289071262506532303728468492832927861329044336276027170629885785996191119426267629954250136178433123893683911977932306122602458777940512085530907854871124520223713642916737232368538341357577125732187149513628889953393108535884891194254693500154036817889640915372092516240852445878389139427926569822265516475837490651702285777514461068666770781705312345724976346609828713314078257149530957690878644169348667905577218899525798111337907749230845959793849322918523954381774438469068287396948910403107739828723252329352929194501235201881839356988625231090226816749663778317328147295230595001080685666022814335899004533471625902640129710783890330441147014596005236596717661486072516167223624210301648846798765091012489407341944994155062411915766952662006357254033014875780991616915479600439378539126338381103684465978464115660824700045116251159527840749106515876645979692279466762817837898019089876068114401684277597969798751090778279054300426626860007599644432973225882853409822211857348104400022122419203765581323082245352402279933690306855966468294341786584545019374903787406723066474006540726376947869176411474956695391574582710788878956746057879441559977458840887134227008714737331736622421128193311768908176232461373189393703647233959707268361726656993699222788042237255297019154721863107956318129230667928264697812454168502812264940802232156813233805774907541081940691746842431083179577430198279481436950774447268855261180602577842301293787641717705011568419793106552734189174563396155339688592922358214236725480598099234204145189199337222089880270906605939944498585527978768323656443312501316744299367554859635664132631984656685145493907264141183709454273626403294468877182284646994899826512268903928001154906527475977974777905061774478566810108491072269728180376934657057388544552916050691470271285915010614391551751532850557521634225160861006272064911128241011602508040007970573993428522040482066913584134625285946071547892532164811839328570233085271165940919200327624323831853491352536364284759312370887329525707911402738698555261942388680801778135779260447813779670456945473101755080019801064791740061297641742614553619210536973083115558952053593498474538335166385144557611106043204844079856237738668322040593501461553514872136952372500350251692190644092191616708940599322068454373717197407437960374829112105989330773430070213682515777280326470526073286383563098092221910620570420285286433636407715791183167697975967259192367674460489039390657219946016203141083941733911046089944043602349081297650408750173446999087384677336929106418374128229163422748869659611057776586895408133110841250310695002222032067008169054127438764593272977916617437023306905725466234070899567111998705188487751770608836751662872783668819075994765473701069386184967800488659533561865579054997501348042663510566602441542097993318281028861355250328355020976114947026763942271305663178451496089809697310333024725248883150467047953402633123245795688629655029032698450499756464400291781589802396260515393060162235081801823002213130992670249073799636305826969924746683680941408173472624859045557010734668746346864255035346581468320316210016254789191910863790381961210787177697959465816308161410399865840781862754592476631519894772036572996349426734419799480589364817593416345820646681059983982884867160062333047603597248805299654152812214629023249328731713626254881301059515679227082961435810341928778851687095332529045366649723518684252189254361632845188308601279511994155859650405813761679613180935370385201965115410806442902365431903716978959481978395064548417920790353173782093276857135189079605064655251103873584264789482489783648639338834659394443400012986005820703235333737655339341388694820746089959991458159936720609914024966442057826059825541562965609203212790241962629158806490303008248015554673774535531822243803182216481585215550668600327403429088485830989038735613794287199615363153682921019171229400457153347112594649528994552392369255207508233851824698977648903124268396742704614547303973606828214694054456221663441077430400148682598844985738177706953308661224396931956920447726014986053276163354912291514507466304478305913253119637371813968338157996933134950342952384578459845490815889083754471003331266167127294268593149769918795854219253211719331728600983149693520150321181115561828836649397823667821655186480759020529713804657383602182317683552032214060509178438605761673082451840479178458340613977308101106363266093035465691591684251991869164219189862073085056344924560742196480847698433821660610314399538293169441955978805126660531366714680182115459084711680654391812147872135336013812516640668125352262783840113378294843189960697040398778390561205396766436318853573449830321604360415745139853219591338463675689717474091714926802369463104872038906585635303182662669671474268759188310875275261756221341053530521784122038657698388177386265176239723245385567383452055134263371756439375891253794168933635420980380765161225076149362199506467041613143726634611144659007118530880363488942111780161549412166678192368224245530087640055193874465825560733320622517615446014364306897007309539838891394199558468604463604138284824590725490499096199183932493428379066364194901030046755105531234220643806145687941097043581231626987071124912774688405630317537322961446468509354792535251705862896486721005027040464806392348595938820901600032684919928279666436221557714567741015928326031363258641471738867135963183760750407567734077039978196292364791751211764237152975732620186039018482913338846174040750726519716246334188616365135157302239089052047137902620223996799093542997232885443860857438650292895494702486005250084176273549800086686707218630468400788342811574178192101300046923451070718318047440753117651999329561127893082639123919904365307325689906162708020660364591813901616729406210619304215063799341283788502007198281359561364568577748380031789615437398844686204707777991716774234995222385641058201675966975667749000194438492654114924845329509676117373896221295478464307588261121095500203277282137669657916472747089466293624251224266502962904732850255827484296651135689482757093422337568002902146247546523565386570666452866958258562097464570781057348616329896506572631288058713654722008357417522364516214482770716650077415378053934474009736801624391348613472741950289117285400063843583923826956883262782587684911487105748359425887781341459333199805074490276563952940961267708262558857413645230969458626176593579775714071957966111196705522171969935974262784100288298510714228977982491440084732632401656273531470113593816049511264571704563547123593881630220799315306869616055020890524392279735849115394874691961749926361647119516040215925452950691368757662487995254674282640980134516842104642289733837802182464411594746490108338184647236915515144368765180415056066903877120716375115146501530602630075011916623529666679365269844471269871370756231129069377986799859478550276337724053663624355125235721689646517221043347081183845715686991862016026241717950243157104044471917120436526393784617655207659344195141795736449389597309891491838934146369352757052995648108835645706930119863452620988047158521841114393735520014414958195261594306317344869509506593075749782421341800285934093449964279803730822847542318663992792959425777314602339609500593748921291003393731782997930922040089455374375666648576465321702189863418652518326085912527713818157014250440256682256755950513279174982907948405618035737776238663474222869125546177643595165626988572873529436456869215561032846285060826363931398791315190665509372484216889338961181221512566162901989427118203370125789711836496140952360949088730718279103516760995765481558815497030328987341886097085595301722109012638177718520605278009988074036101976024510279313559627196031099559112150694588790216604020451584460641248989151278243412554067037369695375753992214248937017719193613308305650234474787061819205284649789426898802623191705837126110951870187097002652973725203869339544434522929514648405856923905761220314079799176871182866209693968369025819763249516534691115143506968701089529756297411707661527699515637286753553916104204503652628704870393539581992676386583956288396704462531238347332818795229101321975419430268651534710265397480577765641967069973327721116588336025497441004920890448746618865184422942842833972033953275774396464805259344243928999349677256860791041482322180889860338656027581282555509965613662169822983286361294539420746635828191120549715160650957837093419075542562030293770080552783650986863126757638761368400981977025800493977094849263838475667679969681953468105681423736003962134860184284566397735537674985222137303209353826665557552221418040104514960873559099016490799989677573825744967407589210915570338563648233643929617245937844865644110506533639241555843497650910753581551017814281471997566705319453404955255902170294692330141874214438907817527627389838478401308191027970591345346701272564668364020136438193306863535627671946356374235754262810081458736742025756446204079172168414458860280762673244608475450147473596440748400293029134467060737577252274152026736871781716319639945022782915084481505316583434535770183116354438227109048212061327281914955326857550741394615294133164294918016023086602275096606762118842876625885491105276723913236595554743095244788781272142711587044490452908718241145590601022466099056771070384370515788157844543174936412797158503099700083934821860902433409499508723324540235872860951146956004586237769873244457892277038278870277522821182518885939887576339824144584919721886780766344140038347486379991212561378255819181202985122303536231847629162777726966631032481758612821472319041862134310458557670078755519321395728873757372871328381698544636618394479623100350314615838132335940159008454544665227530418826616429565506962764389372558571965075903921057018052327097966335069953204714692786990806415170248288681721733938149425454329693390416108178843740783251959873988923105681987658992953283544227885667515857546529638013625249149879395973814865697436337532503479948521720347011810153344733082566501731353859882780998385279446513432945530540215246149667568700625358448038369911647860323289939086416083647743406624944708284462890985110470892521970104214102427832511295454562404766730997044803054732537141997322001586908283723997219767581321129708362774163365480608045332879800504229495672810223912858538238562105867846333361465152298953732635632910579941733926509048665109647087006134123285049127630713560084285839307446133668536760653025790429951065690861544536908695538629658579133128878120655626689468594440458661126377386440115470945172068590448257743415212110923776709315176452750773444305766919278986502913015213514998098844585966906726025040031031273998591993663539548646769256892025848550124784253706352731007291764319691977742961886888714311685788732160990629185243455001043867533874181291876540194693537536413404131903340185535046408145739437204967636151516513074344189775844882442170748531110013847160665800713571248909598351949234842328250691076353608290750034301260362595409699931416685794659952591716090096471638409651958988238661338839017707703754464772117920940757343709991653576158116032119107098955486156886574246425529281288260545887262953964458047187423818902144043183738955783266986529905936573382410327715244267757045952439447516438762745175007123722363292990590527210220309273456827038207032206191305061684054544561098164126358410886471680382047308475310060243597114410201336117733726079569226332434828984869573001345701348300716050959906147213051731719841733088823248566318914616325292122828906014806113873130978588418471222960236795054887669600952519885808781750371883798849831441611969811555286696953800307639114634741869736512955987449374375005070823376168962357976761828984057525365717109488120906216114637290756542097428291794537603535742817884684615234292386384794575102207831179267887614799704051252025933655791437152206693054905904368506173053053896258426170585878817525830409631226142397900275563403703129504047456669763956763712250616513507979718155578691943741855623848264356908433996125085783016930464956739311070812461424225001027929550450825156752250084858571914014005825642261879298304787575770803916632014787833678931268729394942159684129669551750444428197393642154534406911749095771161447841418701344836274204998213931503803644615304372605106316441023555225893470149990109123009096330439966017902273449745519846711056406054690732311679839351787811233692380450845454008002577196419908015130406225836507262792177796960468300887469727941482906138484339234632338141191023382475169688969406333224930069957869037926213651574565644766533140534181468708298181379672252624365258232372918509787195002983181824128218114455245792812577551028379736824802638665239232279141802951150713189601376043035218684063277028144653979750122022121192000781178352774112241235160068998969256888074488574739568252269815015095536121780750592918326814016439241586326343588685291153088846211890656162438102940994529204199700010131760656894577079936059057273034076692200486137816394609197291121624931069553916258715596055064312259855815207011593012550822679048408375909366139370954056485263134311150110318682623404924191400141411498302943204265828863156362412749987231395478313023712597903626269700528527489532415984475877048904989440417972475607953326867768713091152675132025872856930109557726169316487305658512811382221976508145116729567131855861168422822747620469039823881247509712914742419071326237070403034230851232725791322667274212245751136867410871406078699006242729271227756040277679694993991401905997749320764730501248721008174706067380257036970021426544130918449603687716386494285709085169774627950062786896544353246273176958803157949925304849900991222906271409428898537578269554371761020717021173059060061846424307498719248686539467468546398167282840182296553387291273017357072700167950583830270733055418558172703464954948884346131129822865448409660516044055588708630088581768915597198249310425349402000555257750528884946411227877564559328170080607356284416624115322572652705121790435765977457696303319881951641036860906497637120307379297611987561081566216511880588150495365820751055254720653059616385944914218634031520741633267016975954832879331785791749305016571519579810863523396478572303379216818104444765076021563780777503563732771356949898451360477821939247582205746896113684612999255682478014005226115350827443354667323253485504618631273890004556905831139788369475967604554153550290267690613190479154150577786166909966526310556110883168279024603207039323815125171567124844081637271009857910316428540028093426504128740349401962718163087872304886440020447381998415452584632455516741390826021012477290877378613126144380311855394180799979540817571743277437358024997192062147546709079389998519594928885624708263595043637377024556683077208256650831188431828592838248342241240141295547315135809078713820990367070473814015449673477894434421397311534430048296967848579367813873558742269148666744465098222352508245733963602602375955147178730857296367664292599717544456529940788815023180537997466224819985564844968997582087697094427724621525012984776846396986672930983256899007402025468368666286382568125566259486828812517808707720872856542638720416962243084790366678443922589803727471506097313324603480501240232994187330410014652507363129316052249144591977067152935413291232529056288030140796200775257050310429872852486838820099009594160683852008124372827057046059642039507282137198644352131637022599772166146148002026252615651873043777055816709422680118324722961649455188187575321627175186182010938053112385415457096593870766432703271933360142667905360827280815328995876330371234745410693246671520718676907728661649199300849200395235345475861897102425432028410895688976017587945976997674175105216540955981596506183202017871012748913524405848071359872607843955884357546121082949492387890730552828033655831389356119744900137216717201520867418929742531716953323532322046507964013493392933516584254044194788857649454156695368305908976885745310151310144176917829171068169652924528333174744645960508684632409828404214117728816776204859913276288538705488426220272446931441500824440474139317081490822643346283061416226246522835662884654855664133768922224361921972733752522067129864082347914002638207629706741481844748436927112744343860280903183599934092380770662245158200438262975286228302694499901427593005595488897383483377627241348434811120982091986200584278103294187108694310284909545649678106455012604999918209732243960964492003682837093443897228139523142416632903822058159531871351484848956069485393075782529863485852753475522319470196672640491939707334671288234097923627146606224373698418430058067098138243676162232737542647361837173813958678636187977083814183951021930132505938015271437423170329983435800906333232530015689288048283545956609127693688493211446828717143683622208020473952949711971663294475617965106031455557427964355793372899209580634533698569647128433254404519218878268020485428231044890599648704070825237069341928400969262003744842797415797896826567956692344637534351019728659562868987628457183212144263821705773739629040447274760567129938313405099402231499526965180163439639344309190614511071696367304181242025434521758742276297604196939870978764465190501166904510230373443751470225702233741404396996924458428049227623318393230031154222525853906702436847028009782789913115873963789781218925734688279541002434243031993201514267202930030247026998917159876492713131961960577739843554185926730990718855877335460863537076950957402844127653366206542433747660332587893152070203110189562315489977056244180047915727276436835049257089671884317223512411426689593180322267614226926058048674638450188216314334291014327139141863478460918855205062255314318090376303500443990625650039710938106996249763748427109614852377147945327980656544831042931953687588836256563723058967865458102899339700631410745386531262528795196647086973626365113272812089528600094743884380703800038005485272967450308341732964463053255856694186765055729300012530324659838309305508439944918828595399018329772105854017682792948368868444936002860104914512575157327746017557550276179819286898445478903432477205210153138357090452909224571074148014239163470339416108787591255190078380889901155021039658535491350373010906250585510979547462638085780211977600462081633784026511267856039292368195526732764656612981756615308435026899615959229071339683060967475355463077792473324551613534989568039873021862605865062143572781381511147377693221550581694888952164723608445461815941402002019071009766821395174619683592641786871794513325448453567094604826625855956201222420718995863293094731865342719273779690958116403964845271496521360636099597039219525555483336407821430476248217963134249897871614723568057138588150126019337058215984869520182271987916027420802642488231745665755281940973850382227993181027693016900521054642942779748029110467035246500932166819319041254326364386125235235578399965917275141242043532419963415819150360210922313061073466736818994012237591674722238373173191116431082184792944224420080264016819733344909310224488670171803099498842532078873556119422896732321997211926732478354111623201016929514930412038418189741739040250283151645201654737072553391337753686676060625866829528463639383018835588064164918342527962906317987449009816615859114223645036070673681428981492724552450615805059689534904071622267543059400021744791487839632308032153676426558792065910384354479343253829902249615802155708179416926087606435060473346036042778559415585192318647189620900928277347026562342274398125297941055719193378445755566642613650380539477252288134997052528039880003321675839812754209242311496785890162784030119393513075716773008026625649812148957960026173156311835685640040717091336516580255172459934446742552404880127977713051977745865619499888963140041098512285364141706237161418599928010233886518582282751062953094182750928685615800409093168129354390920764099879302623782949348010113767152660957815235370102828277292622119896136035499560407491564135065782685287147431923601919822279852357167023394690442800543922878432821778570908655147810365786201075846782799989387172005246474301985277350910373821076460868435561155538855510266954892266629848651141719905034698372193008896619781664392842826795748802552745005782061285816383898659614345110271074005453821318299877124870544543738042640178480923668539385789596835081018874653501961822048740534423521746705840935977282206906548984976917633369909647841685813760712320015092832079191532555970178532307823368106715054148215059535992646679521095568193836180639058600971266788255948437121251947593799432047165646297490504553837286560472359384885645108445671703991848906455475060645714549775473954033045140234433589042960779664226113808861318908717834333712264052119095216087814673389278757680048763158203481267460418982423206098283904115488828006082104007647626184400585359131221752985216950704199837409931547388426752491920020227113825937906989071311265371576602866353528462626911464347692799850321225383188379662612929074388839869306464434825933447637542536910456671384820529543037855404278412408043339229085557098901285333243708398460065651956003552140063828744877036977665235390296805213580753010401567716977926059455253733583303401435631961551408056366153230704068072384039105367421390341760203165904886129190859288069218715419452886787093798383904182520637061287944855535173678520213589287066015818517598269464305126389988245918901326664302136179552073134151204445061172097517445278054524146647272490995446302673388473258612582445516119770779937743789638627821763208921490307516662473657634540114334650143167835842899071881591215646347854796901613167648321024350900766414716754567154696999107435676380564456853770592706722064624020235672124768514860806929500253955809752119778637758352431105605590461801677270985380762795052005866067118401810260422367976696117789978204576088520006560419066313524928879213528465800319126863429133490199784216530715327472942439326095279718252674924001276397641596725181101320549410488442280589579004842515448033061489391030350789453147891317220423476307883861859756407043932737589474463482721558919681773128754974028696795802484563011880283983739565218228913365385660916068550309532944254922163297093262142979200418952551695005228982051244645528355963417653284572584036795274404761600139487871655042431139267284802025989347994214478705896909174682908824292186125347383740967299197029422384538525419552275241894250874686878936798817551997098441854690755323305082063083104696260044315600862231793501229704140201551855091252443748946035387555653097602076317150370261370284787760428926358601929716129250240183948176223661969693589343014733374064532750388797842998065285497190383064389290549487121898909420906806362591278631634810579725500213420031663413525041287050547967369446001168950375768781429741116604006241429481931434878773454197079363566256112476892772000392948221184059173283069370614164300079546507982463345781747525887311440425597751959712113998164472418737873193809007562657461142104363642556382052798043041212799803072143125373931644669551311650284339052887989179616876002334037062590737788267752828806989656343212693128217087646790052772293658558093323357102820504528609816014133966210261095350387473272798366912215111009823214727133970544746425531040427377468135088346641850758562010363886729243058951241010677866284884830808315903397534995720625531538897180705398853472084895898008312235438939534113894761406418299318652440947644987653296201071748459557716567092453540048066591576711277867857713560585690084657472267414503499147045244686938031848914265312007466852298809470890799548097566750248165361850245600383699356713251945806679220351099968756613775169686895832646330505838018050438227970713417806953242493619815515145224082281843015187188920728144533737972788117592836535902819955967438927702847160259252667325692171104747088762889746013617549161829503387577495336743528741095825794202531177832587843952846633102156661320965229920201702259307862060538766828203529549623155418239087604049658248792389610411050712685490230629367236354358522825529966155134946823582978408492579988670688694785523580991878179511769699119297009307137381052509050602113049706594741735072983276877806202196606036999571518244196374234238849156822868114922899709790718686707321321104945687929625125860979770227653893707964292575234098100703778274667254596498893552766010458670724275436383713727960044924883433929588728059532985327500710970110385705130519377877832416693662327100600335114161983215253309019135334165251152020067040755983519199114920212730608585325414590934594989042544353672581046918124117908843084283002404440971034558041830172561467653939828916909421976349273612798600678359639954371825773188370921279483086747962733052466335101222865394450683354468518982360818735003214780629539969778850632524780831041654486227122581546350364216914824613991120779064888829714097563665998571671877903738409407364231507548457677438241199238758893499218536365106182295284300744097800262561198296631658011423497833000409105978475453060371996953402673492118693316988638672463602837138218947918264732229894667580175264880872192969159461937628892126003879131402297888672460498802643655935148436625382214671089802670318959210356562679724618513740206688725112118968987285727099526651632545110929243866630888565991870152511787981456838585751601121499079853117172670761541379016315126329788343576058420286912757427199442386021569775109538444362492550451400319498885899707513639195280199468423341926023900551690669450135442084831665499348520588130876851410256950799442706588681991349377969967520297856862699029741650831551882655325530888686972031851476241667655275663855671577937249667868530766752822070830584044742762240013904930682786522661577233380199918031487460209016646319851922609278577628056331596510402210859951209237482683389659535629511329969519125647516180270853148900454893653436380160185820126217565424802420112710433413457196057711743397113973323453779460014298475065522205814884920607066576979174763564308964545662005065163286884294711127428580037191396099652299923248681468423383170449179373889257760318519641245308059066864117971590544436736371359940712705170802293405635559885741358640823805846562754547883120009309508491845710064183993843775284482278306148434168743332064237165724453550984092594081338627433856357225865532869913251155406280693338637459775605895988220592443345148512200101907332758823675325658983320104835029783573789159486145572749404402912883426551738935467333589518636727346888564090017057658974086496684094486747650635891802640186933424875530353361446415657253292795831989421620365476156240721019593028262165089987570601977544978565797443703937122783895583395166718946852428565961646890854179296248166073614641867947852215246002546831869813257758272050396708010292091701436894372705694635134520923375102021887942586094288483412655816503457411933502565238739503678278622229945668138866103278788502357018097835939232238174941349515217318344978116468002272234515482636198351622855112428125735739933187437272042012848386489739981239730104512401263225894480175783267130219105570204156968067847690103094211451758290329937979287967670012976286459872411506584730361548571001164059065504128752879141828956300374851254294455775787933927716042702676178378512336318954477552748208855745449004371271360297156315753892189138495642316085990542801136084951494838290464390917988977906926561588324599924743533821542393031275631147868548371738164418557562520859470267577079206552508274863208203831409830806999074636729260912764551100338190685608001304743393534977922299069837597239198577128437999471508071176646629595548379073448013844945430688490101531705702003339069615884600730785142180927039067114777274028503298455305572014126955362164199825180664035554323441642007765130319797324111332279962453196161829972022417051027056767374075387631809619919691939495338266566789031213631293266096495855691010030881211201732717311330853634890247403294868860616234549831395518363570396453317967586637333644912819383253691479565418267052517846093383930508398592570168835504146792141074333356752326052205857017282817726025772862307460440433817586416763187806629740338090227152676889639618498550381488965494192711372708289464017258248353020907013745604433423213460903316540503547959831919409330933875161059693834539674172889822946745308327468028253184371635283358598346518718564474655168860438622795277941865975251338691934608028827070649078273551022112430867546428849784778405529471074422198344333733136676952107932254977745660447397747154250741713908780973371337768626856137785553914873754331463640816446055067784429142687898907676357740502104013009427844800736431275995359081959717440482439592274032478270294032836122882710386787174442499575396408601059538578768705877708773453692567422564101633453503328153303968509845503252596801262619794220189970340068278932336649232524522602227335155976605870926656191078241956975915275593063540170066795192719353387564305590380895778303832658029639409846015606419617330249775208040043018368831540420509259494400792131035018273362966241719676835609644721906542953107631188517432558975134099982130594198793491365917604061446977251259385881742168486428699505004079471440973675636076112363807217421890684184922221734828519226763098879318312704683753950862667086800945261347587376073905180634750775927632728756079476328161811816819819562558762067623014233317412752513551844451339089781936052321941833476684573457393041368966928624494572904966876211535529687965633222388927625294400196179641296413095265787392147759472575418922985686984461757469450059378522614305791699220021389113820114835353697089534840569401726451166969870457905144594721290576649833865464157642560736350417302844960798259394182522194015809598753525121001123003683576158737249404128596050834796495643330498034767198258474059491518531411774033900355990892287671832354312048228562971056683898628279914733961177750037695497123880792158670895771535307661460711997340841915438800007466254040075571709051405044282183091659954275530281118090250401024384491365793611393532613465140143863657910584677364479510096120385113011177318108578851004567089284808859595896843151996976162676977323551421578137638856470151883090645804939854802570191876563946704796256638792473002136776294693007803432112689495614609340308764183663308468590428464231312025639949632475320733626733612495704137376512693362480506037777294052018714406290767597711172220230303704823111666017932784379209012829806892708262007623637873617529703254682206261656555587495181977907767774166750241753345713666643850257097186388294829328661493107137276787532406783477754735532868259184609146021952018667883822817395584466895811424024425827641703975279796333266726713213998177178900490771365477258770883096568019700192036156344895813011839359963467899276850252116964454968084359812615271393520708165967570059180307521765549811442705961808820337620706444887099209088099698149089498343922568421321018723722139446473712078868084578777667633924098419247201118288791819036409203662720700505150200026873589840384154994878979772231018279272793911548536856199094532669130844562580309682340870062726666001909937681786416868518969882492507406504835519355831149064807848509564570608349477971742454523658787854178871584188355012878439720751662118051576186792364583858317215956741792970259752853130991173008956349287502477813366646418876685245712843954010019197384834454055510343835618627573855033620278998736989238945545936629519994277100198623909648972985494091919967034014841598344014472763271388073662985655101312420142677499208296397343874341011341487075156027458930955128530572021550170451986679019574122985671303096321183205128166750512715387859760886087538686814269116347614803433821119548908938944762097923741431518285628116638370315861683569158032536563986387405628560667867127500024487441727434784890055862063416427480062297380952074099625969707480915447156569132008047245293388898799534076807699329565898369836056360842397009389512974026751443797353938415473875770358766315820944922201899886835860777677754118809445531553717949038592817178100109008917146459842060988662683372556802389927673402141935237666961776384870849393602880391050780334629695702205063562599773190899463868084777674548552499214402494859557565958056085534953847721628648063954226422472028367451063205505213465148114393967951591330343436271727895584882015165758770415142897605580507174905084058492918999769506726464225319821826644733615781817740926375006005927881397594341847746937683099023237600267660405812756199580224411940436511674965654522673695130926173856228901535760682000279793764283422854008051446449089768931137634655782551238168378796522725593206182230888224525302620590235578618277553233615918732404357544978092947597839425287797469982997079871237720176648695023944676375450415193109340937082675144776125836811104075970514822123218385962226336531679386933698154832709438505821188889771828028600741146196546852652473669213457470568479100645398208752161315715168242930382134240229545741066554747857698779259986975569567746250294540867470570041723168609002588305840932733530937273049276510290048381321741553956979404061783874456664945726746833443582590123234003567039663746425559382386197171674691022263180573456579826901697985415806075145155135726912858038523391422305336378204707510423502013068643409685255931226731420373334408565750280521473363509360495788021376182520325472949303373849823637128531172656411754190044085044457397382255333855625470929991774550814730575550814725582972846113426048431596724477657207518704875641478212515942633529478843245212504676557065021621943955029664165586991317245236358988413629425729916374318547198958407608429687908820553150856821454205140648095046856266638706149105517891281561309070500437575342503415468758281187835645114493316399920444565750644244150941691368589018849243244225381603357352585086040986382556496240092093322696088993933018956434315902327144028453818706896282932956317282713450487629487297207270408793891616721950652895199920306155919771066392726674915045686659121486958278169022636571927550692424074384192800032442666235440224446847793180406884427911100122924223409510086651843474582238143564741395763221420678588857448876386735482027147470546083317625984506696175713772416856633034423883043303434196996097077687261353899611677086486670430748489188550032451021434217319456409089081171040885261405560652626403376874463064789518391096836534238087305932631575590486502603515433762404301848565399418509134136499118823158861817323376070626326119119237981348242996385766380720942474968767619066138072162425971049148792342574557784465408555724238804399737652811076173216836354866156298337511687135589153074995674655280346205413781280751537772383895008559071165087195780268935101943044913427402105022199781672780728942837310289172971723914860775812308577857712715086825136417503860687050439985983460012543847702330425396328603633521171501701375323192799557987685582672787007492739497556029814509027410913220146940258753497839827219297857273821675444563026308672014752060041792185924691111153622475843716373982724997459976018197253208036551510059227581989698430145232898050088541596031691828863923906515496261252136529963238074472330503137553356541882088562905758769135112914680702777827721499229704308618906807018073856699136350650191959185909709540315776279745790504433185636938079069688330097968754322127860226859143282428383562399349570209675141494645500805396147477595011813485214586854030572855709565066720602728773797343661134513126186157220107961038214234920649573949642577937133129035591434789516480825637913220728741564388467315940535861307461532958527989942872471200481648557046166365325253013814562807843787880704150561916577248832762338371771445621582382514612809941623849840322920631014038979199949047563664208156727119890407532369759500843586220099511030820438705273148501204779485086311451308835732198192600768778122363566630606033714566490848022500329387021501743472740371163092872922940361446652444309513614116880284791880062484440575051553616155111882229002396175717238715350956263885460490777679852020646222018213388630836976088843026113076960661902053870030349079203478611050689194451410730994760650313299843535978066540346753319790697208782690407834545847228203575921797433490044549462453891032929465732250965942238287543663288548840744583885163821534024268978023825409792572413838044026617086961710334329086934909547329654701185945648059034549759467497943800414922451570191511885749261888361082825620256971316770874803079701589904120535223375210480586964638700272523560344607072240946140283842339493116364818236554122550442323114309741266819876151855601879976837967518965456183768496895392859227786642696573049701948343617883840487598146586713924342596420494804079917538827964023490371551680488935840333781474557504723119480841405346749692580511153794899351170321275034633819781904381810112914179987541488035065873527831420806842864594273426143632618952315648397014247858558826253875700887368720639873632634607698670968100307186182716925899138603422220995352617058267942249446063123014638680533903003787041711177833716697866598522338268458468368738665032593638323674805563314757206082029639695724316924620463070295142372315625741994125760281644326668935518611015918350878503179542961510572269456333523838331265045952678596448137548328415394708409184649430533815872852250865622430321509397321343686171889691259696127997853595253822693793403415470277628997462633802716319350131093590021987146797328955979446807927514337728245553504455279006913470389221925238826223689276166127160415191571042733546744809794208085551243922625339172871742842134784733595040323949026718373878615202261200430303576932829146747700768671923281939454184434472044268712393191040391193620149969278099761833958832169378199149915905401886595617519758015738124895543383686930826744142075566190216812648766892806057383406796100960987658236513415996454931361072175636628179473827190104760240853695695299464241699735648438196392413836109424561418489958220856089616932274197061594728500468793848519205573471115012648894497866183871545407490376218474494917457245154774886581473755365364848263176589553798535287223399571834709189535585382618446213497098888878487722114293169413988194758212891794104644765293251125377787689075055438726388179113370078817761681665778708445361795477493002513403733192283322946983298813754979710391515060721887960235380085283709463644638925360105189401620016476335740248128881552454119208058890768098040020558958067878895835481345582186802386800276595229346741239079056335329239712014060091159136369619872972395120433108433068832322805451386101701285611931546687750605888087885346881827429425644463837386214408901374798897289539690182066764680418221205668712646081791329613871290312954108236443616231135925320733194897224182905078758621396357840816918474978191693501148925136381302891421933434797822880217184396904879814516101397188413097066811842799738845958540108889691066272162080127827981237389948699807330562167181221928557284666782569269614229538362832929833825679544783059305839738527573441604445557124518928792591644906593786221795526197525038346693028392839052724712332895692740870537906916521501505880098709865521330057337483713857844823822848461149694843371831784158852563047980539101150396032387569046250848314243363413681299943922648892079980300338277773174112137453620501145859551266342756534643400679132272966532132888857273019541765349925045522232563376929328515543715225421946913225322935686758286833850071128112472790966322762621536605154428537883678417736012184627022575191630534704635283353877865924642080546242639792695863343330777984502096821066791370719191419313484217072827903706141265564131114275143960040470835044440365494106368744300316785845325295620017982906017150704068107561815906027074483660150786887185968389247193683325205994547839711486131371553768784118149612296344444295390209506816464560992594146524784042466790818876318918420028969472971047730757988130314712304298226540846518683867185690702838473173472924350997012025013706181206529246892524775981209947497577802222583126176281546790895764282527818322045055422372318805371090842907725956826703085839810992974178037326115573191309611923849148399870394424481799507609732523411557724029516254957791985840827386265550671319606708455266601275285305936519045430451030567969245212132777566093717936122160471841711142231704898318252318225902163832797247029823077428239062342093193376721958392247742400112206768236567412909249530635819263662403522654465465820847260976715275037398566993759579834374305181478461707683792123486886097751600606274856285202718514527751471894122710518815061938352655097364669634738288761359060840947149313010948229407573700225925173402842983388001291954399049965939863195535017624171693605054226026173138835749689580672683344925549601607312011905900124195230751529787990245615248250827395263204112627575092363284314388848494023604717918216780044021875182793339467944406745181602362587133929186867657274237235920525494145912369007069733650425227111701268348187104867256451413349212327464682548264088489925294280704380338764849753412460658846194542853803224880786679089821532601520569715817466513333483704875632094789143437694970340727539224532739101736090781945110989617080190490232667503244956576467352965081895921883829085607342583150638158964885106406678973943937235052530013821532595541470062373247949110189196685100746415966421432117519782696293378419153849838196187159953794309755932557416893047230233601357601521813770788990430737426459610715793478845190716431175836823511762321446824849279152726463396535238178151882781498097006243095918613943456922643693816607671931352172836672024657266774863527304307993344567263445957715227912162332356455422298387290048863935477861988677565223141806631599284227347785730898149918107031828523531653630865946360433565181737666776672773764417205889501964410808257682392961628721226458226861226278681752054346097710498482324489990969611217690363125496463098522018721202446811899056978148222161550970761358861719539317328632626730004596295672562406554801683747499322423019773504766832295578758448759472840617732646892137810347890605467207230581374757528748668101187387797842715432379768459940038120566065281578659962314806582937915401282580277607076007143312786526052671334497359719622982423927479813900062615644446157804970013826113134464813880736147727640642446651674271622946800762690725431551562308582869743096237278046976521151708424966749313403839568310454586917527669186427276319536996209634021294949854933136176162491873965486406205871551446437403434038926269131249524797976258743206239446606098332538133335787702145077713775294953766064074286991080891342759848604534536665443087323033554259310128224079553295801836805215913733845971160653863303782239680276688707687517972335751583657118080790547674494660928406069195227000181188758514407928376972711031594352215339464101744098309513878527175717511901109353110126168609813947101894083530411052710047465517538566038937988091992018783721496475472320431344482496064197618556215167399454685914522785456413349430621736358281701436952679077226722443240425449642459547851904614174595633207783085430761110150143774336176580291452299130980026177045952674557402894201548238609288327600787532116610961954533186521551845396330408559207817749578084470997406341067236844720447858153345907611134574744813272366754619310822030724638487554359330039812304727506983901501550634083794648399433896914934713002688260245755769190702143168918713352014951940696545451643258689484746385836850710654658710605387978159778880568796136179638079133287191897249521862445108247319334788045329839543334837588741071808935993567244663836313940221637344924715068537429767569638402765974999283739946670417835056893357235816708607679856760963073111875892120098908169276302535308691242748755961032285011610881352131699525703922750322811734655229424873634962584370920350706883295138451095887689586058788730584431895043055958725596601463693960540448611940034521618329201394012681610526884367577143461634660655607571832971368772502195081527167524408463375795805615771154333290576735761577931226542210473155556351911113866354026851669457696845015054960066982390882001651455985088491150722184367264244576517282417443627295725675253668680993878138586915559716494539992095687900289892499464377133727775420973796547684863628155538382938416587467663528327295779750926534674486440341950854400607852625483396749064458254419976945890939715631361572202249837348601392104039433194126506444948876711065839820357775230208492188058338900750761365150625552575977710665880069201966239511766437182599846762417558697409858321021620501413759721790066557870871844287022126486968658875146352884721492028248300397606903025423129873773298330135576719001935294026160404953029266863808545249405738504022612235069713119721855828173943110164617527927759780895831754782568581182445606159563285754052295160747553763047512534198280211603921846375524484010167600156434385898573972944591327237942090182066105271524975210159783846721905408216323267134517623122784788311526002312353916125275543093973022370730388589515026876144296477011812028303046131186706498342763919848080523079096115472766291676047115497981705398327852161878543989813501369167831681390698768997130850900064416388918290588035821724720806401818809810397287217140817336009195374605083073492978932868765422347244140518201394969737335603057497311620653560923174810687305272558391266480571905306934959666321478646648451041822570932488157849743429001369586854362625801328476337100157518210870778903069145021942933247841739858617727471928868602241223447814597434335295160485569021450113927699930129525565632824639788428062955235399162281529310394819258431460656781815731464472093327379072271347098800318599137611344157644265229819033793159582980393006074191862026890069856545046347903414629775747509170974612239331014947395997061017577198265589202882493597829470672923335815827492866799361640012542380182797019439297870530885340827445262228408175297315304035779947197206777990213427273905715398114064422434805053771700230751665165014757658998445240798481207211136827026217885720323077856557561825428236872962817285086707625660433390579944976040029554341763247187141661568324602163823727744490429979219808048530983211163721569641526965563463450606848705397683656522585572315517488961741521748523536804391661696172937418452698500475230504963844458656404586433586881068406661041210211290073023427649626829158969002187140082635072069489306806611232741349659404000141278395281526374510459261270343658598913141548410339771105436875579727941514655200713815728527932052517656412847644225209743109838048913191733701522372272982673184997826779467650851388550305160795889475844483545059296453861876394187274336246909710980713796260931960302295679469713393416650933233956818558015705386710766139451352056574128807808481903749801074257939760170362829782726626886016327626334081390024655198094964897277518386179767049961507195521046169480897317949956064603946355753981601019507646027752473354537515025060986853807316856344912987207104535886204605419271616444192642118521781114576852799644006888714672482483939521103678085373555321280263275226501840882071663601699936633555274807633206914562556388246760697279677477806477417054145293794565704312873434757977044707671980398456708871613267544145395594615549489755175039796692291802317054748876787587448196145620540671782955529368422176542392167851364295702489825339781348085920880489398358301058670381859562168572485458049590578260097386248914475871640466663179692487589479658810853745994925681432377018520217750634532255913563796121224466676128713255764705327571889046296106306333196436861973360143003233723659720563848944547119204962655182758147385969289785402623472229439458226908835781314450892285536902391349963095572399677165868844744243912437198776188177128250643439407649851205895302208895543620152555873834939324010481819956084937895362020604875404900365474655263516592071121460547521126109656395759161413373858742952598135661136481528428683618746003533816019718986872109308017340593296109881287610550061192169971410719272773570814354060383807992786626257981585746670016136365089799549641329766199338186343466448750582236050833334084646805146198504382076255364468254390905937307305475218243103830340149331316185247904109721211360287064826812570356297508047543645289611120266101654201830733451628413925026221410039597372677235777234449930695049197328966630902350267437765793675100518792806477781039595344020223694070105456479922777058740782153135225885822353924608860835436207221549177601923499700237046001190493772401945398963543184553786454772824666258912390789773512318315039902423818419085611959174033350746270400726576689329781774086862351227626302633482750869367986227743208465794494375851267417882254469488809478899358280991700588806255166098404953893699683835763060595290717283316025785678463774337730596200474000304136874866991190633049602158038937213017446822924148661592725697613277384885477003595127205599781621933040103136115826552223885585386687635571083533695033852559713984096896802082239154018550549374231854171599165434793669346898621197602545992608899767794799010129061906822096019142060115053145078617394276272259911358878761730055777170243844901100104997146217073911000319352022162498666177767787035904499851296682000655176848299144129728598949777957357762341761014380901750907517716437583622296927352877435571784899673400750467250281795664375216876254512807051016250404710643238743209377322953513447013939874609855067485400980992550807826332527929406136055160310426759965307622662765948224680830440012476723409603500377342884037211673975184656231606113087047126020883588642257478146112798538800591393408001525628016798705341070014937464157840311862042964883548643248754031433550747292676286350504003886110391985193983964876934341532348071251625869200441846695548850310415024960265087790100824551359621133019012209693593148246602986439178782581856590507064683011171584586993045923340156168453385700818557318234075979407660980695375537803252067790678596300527764124018619931958631165523097767739442204433852665715175904019536882633368069596757424354194724594191057866484221425010233293621934357363948492602057144665456204582195757818321987845380703933213028676450290798810221630635442290199187492008877425980436944999656617728605588719023190417540938209097114879873477068466630880246092933493738870070016133743626227445695240145273759350986094598559828124600569794863766680749417430691367641010871140331547132443417045594949066793564614078783240231869651095285838621356497913757343457180485874202801380154514942748778160663851997466119329227147864126596684466759675076507183414391365882144733670102472613852096183014301649936501740593096561455343634390492005545917673473885256609794103171729269398768240478272884189818187852618700764028093480674218996891868162343518480687252493700611726237011171907831808163201130903372703823061579071296673161946825885466214698947272268969172663143528053236395240378752353944903544684602400869577219874517509644624224938329443003406711308628830187004978236596816903997567519626997701297970895489646884602717736709013523034739213988084168992996944353871624397584394009623079639780565967606222417711369022126402595306793671659082986579015718714922375955673589150226640631337123758552392076487229613176455375910124736265627388289400953283619162578050913612951647228212082331884806010086516206346304974943430724306262300349459726679946672667925039717035424731556878002936373378040184689780630866876525285140581307299918165769456185873120593581014662443011674904668723470613693062950186584405520514859333608379436390397156739176998487953960547498639686525999028840201743452318893652766769712547440817751162431375945814269205984753091465155807974583359833139513284837646256971951203583872364032781932326181350251414284534696468040382197836671898447913127230291800186003286356512735440832027137420471068519365442564348263759040900721889479213407666605538493247699380230445927491503237951131128526622612625774630636419116210469807876649444287579776572973005067852783200648267808808661404354358989197995863381590916270563147950111944214670506376033460360400779055217497267409751767826083843067317777042431151477009639880501978032168690164771337081872763361283230897699605436516208246789393775717526288268771496896562554076438622455806158786287869198046977899967240463408669981270844703995376945417274484442735084270257888850682930413117672568694180630779655457825258922295235443046588215709686185285790111631460819659730773873867613947893114648712165329142231076872878144877162055609997068748277662109300531630783652958742895310125153923565529490033576874287951651891039183811382187961352404665486352448768070618973222600018845990591433240790347461661045284608152590932077776075998048806247222789471692915407889844924103208029502007685189077151929402771555961145453286796309344321441862657491530412185409183358909128269310593957217803300936623717941640787974993385576746870633907844957325586470559550806830177691825436092931506117283513320732297026563383005698411989292376144214115511030582818372396403007608956531955644865622840087649575678439719617249802506578403052371949732879902947452650553054472092923069841389830926596303437030876734645970426052153458962730030499794827487297714033126213695644168174709805739890039186925621954974480753809308508916311834110313595134755323037680484835133844007639356953193345101725735154128608121539780987103341597937410119736778525453009140292975255937061389572380538696594262438898316885023259972501384684255794178467164214913193264971288716240994434739236406350754513928502114275048542593946655196021028049458384866806695515180274085935028412799063607145544629270289580097224104513223170147416504906846484732105224376327730525118238734589042247409861933747252079638517199218978734564450740824144286996074796581440580987008518867273711599605654489587702194435470431206429766443041200616768726383452836753636892396950268730657881651090527941310958993997267657195397154243538901454486643494476150055547825349603836263029398123338434812802047482546886116523136421883794281785103049679349862601201202544409917472068129497528693455102015682907395023284868537057079036534232864389398425680166139842327666003441422416424557473788736853857769915616213434696011240265039262737467782604706446683295207996022992132258119380791839197915281718155452680776570536602909865708261478589793918326411233635856537478454835414777527318835376662035694892618446611079076968031036657460330270002292958503941074214238990640225821916635851319289133544218355740488512211180371708566124832577632475572461729448606080169133343661689483172946154842684219752004741145800582114552157506548362757005054847500397546236057989671139566015056771930429828313755239876542438192792611852762821310841639707946146063284096840983544783468758570742658770022689618581309305303964086019201843612106779565493519018743935214393077428804312752323585277632564669695113153852417857475963503568155678231307483583168906025529247846225484139958453950621905833848579727149975216696736452733452102122219885036635334853212760328955269283398653185451188355693631439875979197398958160366119410573606153628553348209731500735107728358249198663110213763923486054206950882076022899714565431832181956153103863250609862976967098992950191798884797601627457704861679342447870724240954094016708187905864735939935487969472097069394152446105566174671197804694371107675353519951305129024707595141257719373355091706271014232952716344117373027857466036543296568764209549687505323757818107176763831665535636401018246514663520604091344185299554196661806599392135458173521622731087680489287130810035666702103809746538832899425149685055122140002956942872232195165378641514902035904599393953159482394788227200156527455894226979455023083953673345482630276644753128884651788386400843466508743793828739725368430276874422309416948544100158262489898294105460604433710470634779187414635717077001955607555831723233541883889127270579948340766436184600673370748468496575567409671296452329584861820624861180519004405599314736584540081219959745102602652322460114424172403616602602037369820714541993770862089526841435550431569667629666248636548998521467243927079373759294138977515644286520802464020245035433016158646739330678806922165412274047588863442307889292219391807732404587846254030114176278232117244264023274898850290784877523551368323020968765354613745566601295925052130398199172994976411968059043632182167694669097214707226587235059283246928812140654841710933296232509060116049567367761542830292692906010751561122153705273142921778309232245705007166876163388816244445164934372596071931096047094661847205033676558928038020864429038752340194672195210539278514952236368818132293901909139582162390884251120655781672530761052268613401887029800107473783597686392362960751651208446100354259948905943048059733808333703706554869109252709124762263341136628139650327160116569604514035789537541473473199280452871316438778847133151158848763345353481947763723165482897290854837750509786487232119779892193910627676569021235638387320515153202989118163402303165128317632344698777049396187392748787286253304835472549827507840432536200404369154769747762817282920881487015344353951428862216334081298798081488655059849159110588787252411815167587034552842557088751295293576473319726753409045516568546103628110847829671983129611484282528786432655598092365867830423389535996547840010740879840499156029668148832542868406822868121381394569330397598385546637112591501113710474080336537275101839136204816453056644334796988972202372200552172588186158028565321997688585809845542152905762160593933014986950180974784345690457324085888965167315752697398119508530566117199531186578494523759674029497602930907223462713240126530857792075827656616684597842595137917562692977111407863661375920645912451873949385896069465083547244571890419167984608179186328612230187279457792371350460471485972115845849878247060607326941099945593308003893964237296449866786890385856454704867886279902345257780294291227211366094105500989397379314599382013736626409706642270743523940245918651428220705668829752730350004889862113422113518351553501095811182921232843087557276724588604359373546215945200791279333336581335851089022588479351025620963404979991716694251138224891841652760040915794738688271905072793840332106904496650363838944085106744323590311841067244710143575883447539789534563722119530578207036016302165541510225520064381458473155202581268589879041096863657186056880616226524571847227458762201411733341647693218541041214614265393528169276324310099798470209401419485011374110355803736905236141894271988813236441408161872593055629921398036223387020252230914678839660024298343553421392692985752012429911944014485489069008073168953489208179314321291520742642150819360580024682627986474570088340382724876341553591314820960374358910133919757719943292492064182476382882115934183322519083719988957241330275389399781991319147114446367691934894516090342009446397962990817678694793948938944839714432990300069981261572080125858543892659681168206303907629941407292251167873103244646388051290684658374351801442943930827639861922313683509915543495100390620058106619769305083565574640938749047098180650050887286902651413835947444787728435562020258472977537762670014194468237275553068803085823056018944340317300279280551729220172575929187091164274072334225209947718980028610196751750089989132033405468417038994527254348201403367513575867792654471510467909330622665553523658784230128330546760114409190595223433577836094437871763799753170681461115135736602006552514543316794200052379765016649485685398223940062568856610531490253599640246736304976391804656716299840469855804626214668944085485076985174288196441283395595945529950611929194324802566451075996334805629066029106406527498073031696496348557450479309525204549409587472508549875378652914688671100874820496515107246866367275814988641458358147127591155886183691043385800059192858064244495083046555448774659104246562312655125826522075118918233899543978673442687368095144768836385495031856316344772971181493447433063672385436832823197397078289897696902879422387476349778323335221536926321279549776409973643901670355486509368194279439012978568330101403262095849579627604364442445665754626966143609709653118637688058988832699099994369326123900958200738925338708823646027184655355712218440395414574166726619090196760017764844622566500497686188964540819046880127746423500914498743493513772301393143666384263584142800084624788567200142721882158887270596317346238478549822823296560794347833943344946128893708711216092722202588336621730204036616590745280511070575223433264552037416289032466374608524545685198255390432229436327318002556408978648150105101877983747860840162274896121966479528676594158464843233480781944802432130103764987662908607460646166805048624872749271778564946849119936027780176730211355724870304224772414996767880911047585267609381825937977932014935615302677332876846443703432721682329988753936266842803096560050604173242096875215026536133883810160999834108630439529583710941705743283890840310780902477835204264733898399291931996863616229635397901674563956081878409623708496521449308630762535972063797151830137659034510455512925332048094192011579778982410145677226814598182147232001478906138307477114071301465717469787484667408437010050684519387978551924293371959257840436028270375717661467609492776001101043776396423045007344925918383340605995061734274099750048362524095599807004201544328137393783124957495890061097195107093196811547491891092388949638278388961198786899656944571904754511391446192744656497188374226865937168291609845976576272528900331521175340317423151936998924909827975781105441053073404547670876821609043372507445158973936166080942555577875986397388344501393452748715372109566838257159125881198435371522403140783728068594036638396895773127086516767176467913514853630962748376628188053552336867904843868945860597349246524213037772707731061128575705503618462121477128251898101606207424687765728975122833357846336290283568025216403715104923953124430027816234427425379130867936347114739921164974165624341793548267419264727833825256799149544689498695034267919900323914937964616408325466430324615704934321388549616725109002313108439353746103212228971855269375033572065042656889604215565110676128511566134307965496014391036175653625498340588165979688587068278140434433302899320472944253735313996466051618498660239261363694839261094993888517178366219028858130394968621375059802206947167927234274682849808160639578055084077230421888767528740392898194048133325876466017598037311775108207661109426457867236349146628065853529123893008583111208534459600662859874561961461028808843271215135838609799758860612769560532735744101882748558958808456740748819359693526992123918070017489173517978072817899559329230107106749473118884368335929625502841546476833154682177151398563339802016936739575969990954744655400049538582999403678390121573656449586377710118435352295752213435504968809493501198239506469412363907219156259717077714353365732874862186770605146803817892612551212795805384114800093381122439031478402719441209484763587448609814893459272093823667896502266103804103986547795289283303730417994155668250596621623078754058580663800830329691130107267207829550829062126200794838440185346727388263847652197021111320122495531340874167076091817073058727328555425104501948753115771764506387770355781794872284368898722475175965255666019283419213385839523405963134192482712072010729203438774553263925899655580723431710279816402493607353524623595025626796285949945236388170271190566060507615588627134761697418683213732120176076283525310139748654948258091376795986593796834769885137292920034697848826344224872795305350282626927896515155906640510282646861426757080729217537935612894352772455971278430845007959173936935207224897906403144936654916778983844889895613145037887381489280188124080931152540012213458997504084185540626572115256516717046005005917960340197490715607067597517062617715089163291091522975904718757160202760643615691341159305078478477459999471906660999375257297995558387906360963389084504525040605855663531816546970123749907634978860771297527274274678921454193317350049917008773662776329344073758840649676269760340188469446416009241765693466934693146907968017648528250309520629088073066738573785221207624073779804771556397161652838566720484339112940346685901699508407222333282566267359201573127119846658923107935799074736077693167111491986322153841489724350586647594340787065792650988803025642650350757111852628726847168508089761105574360389081174960769274391074713204501410390514852488027618481879944171772600483103754061796919056259763607727453205179237208364512983631524941289107534655456469899871688175885994530032033401660518652295863109187558290904665718794454811518783473240029795965964228400963623419762410658059995208167626423206539059592236491048683464579127946870076526925666054623448179479390438047017260557967537052605065463849804052883739918963377899972255610099807577890887829029321601913208952808002117478328019833383788711745731476087805108054480437218429862247956010652808573633504261701239353824611205931190162689360158222051613786006697247156965936975934037419171341060805566011702704186020718401873864919578590368313370108009460633746535280103681549233337873496325563981498726892109723470230892404018566580568021392926377832433565072247301900803061070750012978457046030726985618684237229240419622490728176267195041790329259361614192917314755122354343649027223948878588865636560635385698709829788713504877894470640048677730370496339819994623069885362891254868503605375944493704958457600750402865345401142057779245574441875871370475596233855612015661283920840428087678600318635891113211649023593443627904831987432155960904011340186683103311422221376777380078049738135002369003290337285934186459282874444802700381289973515044426587874180443225679706893723853455933597420610644844924993399540410180560121263604047031007709998324172147581573623304762546078170183230591339308314683538104195843821105796833312593255904030082560370133638747467505337828979882083849050579774076029047645617162368085802916224059998797880969748052609307997095690786845685646665238661269089969974156284909404013093011778014419304060300938531999539609598791966049552057105047606075407671533143542818030674997845012907759233875742905178352895580177486285288412902537377824626492571689241894300425520451731453823227175322591718644566841311847704566194070938323743237148245995424707601346475530098149024463680007293098946783093287723200347321663410373339327648588432007115536212963254864686116414969678651300133828729368577200645481115713916577699931665618963411968241052378522441507758742465893662739200363498112719371476865278189786861346386747146513806582007815719495391249432170259747596039895809352688694204568900471495568408724207581061400001190996584025485051168986425357271163272873438005761638520100093308905098424808833186545296480139425142916452280231064543634354212585553636098526504590429124558282472870076993381395900141320341307800752163088616467553994257700810250934805408362422982320815039562310397120278774748162306513716705808809675483233306744953960522446367452985543409703688620750246959712892365900291375491381800681917472573628241480570129231095076374747784936155082075418000608411754640296187907716855529066394590657211633137479020443339335409706964323754851759777853086038761320869467545072829319850903922909758554896293443640575846390338194040682496134238591664355182883239737171634347193851182298333273358176068699569530038577402918997595580008815133352520263724160835631287073440861721525619421810366792832713342430061174461386453146208075203524753650748955540008894990089086820566354322877076239237766721746252529259370858126202466099176503245130748930985258805752219145509303228282575851047821188992187767207832750506990048819261429507423170359759116698879611245055888952135156252286209263595915003478344011107576237871494504722336087390697724396760289777004105008897235020156727454828362136588476389859371276500929328900670001526690305442775167152570972616167648162749759562966831691071079089378673986925581494196848435078931818435215282100531570315759840603383086342222490238879602753139298987436599630820091422762320039150879622722319744116878822345564576318358610988812741567272786272243918282699208695240394174285667689519121818333948533852643077027273352758499363041652050211419085133416684484790068529086403431284899090710394146123929555096821366283392335632535360393499357926061045386572368925803013720117332549402182821703767643538596828754650828034666425547330437387105741577417091348430017066015411137935293098286327276180679813733782334850172434739402171748158091381954173144118371963963979370195859395905548437663106983146970882067919727581543888439600553083537098095118723648512902589407700326718840490771696643077396726983670906567779794705348238378292722625269074635196688992968394549255840742019351472374498418191419277631609646668463514086452224436188755266305192386519407460589422777503202051597608227804826306025420528420877104535958980067752095975699858990364303526905411507465067080546718734661049250472390834241532060575994062648847385142452095704789176370159496416240508935748981404200706845027349327329198216928565789479450369838749767571120813969726254054743399561436230472479021851642871387153706724197366364640171927244778537348410510075993381211617123103582639929940360858101418955558043919316982249417426356307266903686945093427975908075182598979974532473109888727193969302595482593243744744600358763267689414207703532040691562277415211215048766656712862678469841505160147965573765904325089897030183636438872921740446555640456383887697792289892012787241969583686990249623813954411526829115055617860601891839884867325726504993797189108415224037529256975564516531952650046319173664255447442449190609649984023251154566324212110349582914145462024768385269705935177537810962628731939036392306429415329862751683683158052045770514079063594414660279178230432319618174671208402319236591911794332205057060690079033540374654624992634007465124015912247412004132636365853130089498205602257590869381803525496856764667641464576292107665832094991205973300473356804616759985305651577142113362459775729950284782096771204908794245945586061285911645598393917349473090843009222570409136983475067307641311800456970379079732140417515627083640696538780500088846627650036955318591300009659157614419538892993863176415600715223048404690987174765873786998916183815715478846825281092679846626460291812437562017199303329727494163107027832915440623143836263969019608739263774228843306276296250219065918078336143099567810091352682152328222347263713099711333307981822516994610042069357870943084987293463928231858946130634011342064878593708408532661364265808140130525566177314267560423079239483583384535808873546984849428397419028426630356759222836662393985024035555705828869822932945673118149888698094562072198291174821601078885589237160065784479152905670535532905360886489738828108211414641642940689467374849668190805984785654704233472689634226386879229667587608485247968306176480162711361741577765514813841878575698602392984268535866191968953965203762155181853064544016569337579110585522595860237277252301213549393584421359963051619515953372894339858870211306816218603117832104678748613660873860887445730040202464410839518458359454242135605915075507766236361702218764446588636705907065438018578630034986576239070342567353860439649119954281242261783710524029358293191077147232147894061102592549353919220818239035077924377826231149404617995314922948807004490366971043519761469640334276188526427232962168558802606070463477296941961228474361768729208604832869078414016167272128471325719123115950402016713028902263076704080995638378220643416628781478819548559208103987302869803783503446026831294112231979228501216791038474984405354394768821116763844937778210828264331025184662520118646409563586777663159389219010556968925129233855572132636118130012785287740105256707368973776736111160276930607048138984144051420800840825908919382611236591353135207480048106423742997735806750656199193670500460755507291700568174259541929906153406252901547066851074068841560886212426026367780354840683108172827130592917521476266501093888426051007374395908748405420030800408789857724748205495080658263887257494414755756224154991332445929862215277895999646205788929669455037366596568728476837559024873696369608473336120898566746314189987035118267474786073078907515056491677772757926382734680848797213564043081285384574075407065940172160133905333225491446634150079856516027839345739612682574960527176506292147059562421900246918342120437917749250904596377645417743313877399840979961180010209945157333461984378776520965088909258699920799223171027873301207869337683118649588406403982285304961155650785141307388317829373664654009590520354209438959575795809728138916669500637668840762943525085820749364585424649587630939200014283027705435728136055858979395252001735943813863377027191929448648227224984021951508164386274578943269436772405107964640488970332246201930506608362627166549175607497629875730493258528966120033825228211677400932514582825380316965162928597016504889208733857151484978617331222687314809358912666798102488075777766101992825772609105116267506692499322139082559207189722611208452675310257755055656743230519441338700324742476372461060448152573073102724687550963292808440876175478056599000803871349302391983836170804900903086051155558456067033341606698758253818850807533729704972583447301729608441512604376562233557859189968649793630115891932754664396449487047413848820783661454930048361633962112320138325857569068891784370385297146367789106398133621462642990834446588188312152144424006932711929164939933869223976245809134847293907535027873677096592959343221456651425300548630682052097219540006838611644873468816074563114567190178712743534321485547788503086570164909036188254803834288732399578934171360673442625135898081395346062591031064942479874148765939822233558399524986369212432840238094930207317951578704343196930070266029540602591975730452174083155774627175694562742603681656878599779208424981622134194435154847220220664107535869237388230351718118140149970553399566759327801789717578369072505764527585026494028427103761976961891042166622001006835620466085897704630718651328247163422624334340390747050702090345482055688550965600831238061346071063695495662468217683284328598912123994826967723085357382169627782541393501199913364803011406760846554675901252595855240010358218098600121251662898312343297492491455026889428009142587244008201229741533914198361908188994230582214049756422163943693842944039982643015941104732585487214189174657739555595085404194937694223697347341773046693938557292498146477804645642721603724942480425079686102672611081755483241420047530842812107680014556036744926672942714665378229292025503960458920484832430654992522754304256581214575039399863331105439654336726970363861515756732267579775012082775564401338624998593304505978557857414488846437401575207906513139055738584978661510262916905373737994420817795952941640585343736032475025934784540781131960083363464742242031622400043254165377986542895409056403312889880482980382233096630734111945488181810465083309577316121189702273092365157081750262714635217953827417000681666506923733809750613379118514338514579416984333439129379300903238596005500872858671889594590956921718844268833279132830617135073384245701097555339575169864423421492616072975667473716538819471976092201257323936310840564326000434437575964225372839281032710150930776084107840290355864342316645136144071205858220638483125946935898445975631788316012154084998230563025361495376314765304804055662406276133782034521083337201150470418424508006004404960951020981798843852298911998720462872547123525490502423113576357211234326573701947851559228773404506817875294647415022116271574298749344072640014488853443957082524235414180400187822587957534163929985261434828144981694611184400341984221298588294805908917332190572719958655256856415148346656462973667860781273531887906440213642136881647464950478144059520521420636756827537870627494677106039535216018385327959871165204815256435101227231852184243793852571367798459096374636950406831887856512053945492998703494426933743681395814757913106939483045948539389660983884053101063725217004426592488418521768440975491141132867040360700599913312480064348280987588884579751329668235670868439512147782654023532396125615483172639676386261562688901215862474201751842253959370850181099876020625075971572030764585938037162258060321933477249748213870273278115810492200534823270288735928692632760784698587540872955635960784090483546325096524482951170612283796764430117657109924340413786899382705162365969307172074291252558125976185909541932600332995605584989333326744343660636500302194616928568040511319327556392505677445384139189996480612843692066755992225276522057145547617304893887070209549505549206828344554158220737457060621355043820467500740225255265662399050254692101571183770698168134387392840151349203199874072025032124039382320015017420293160043107685131880023126297810942018184873104276594062931548013785554734679794437275019760081897339567614694281405498793701010378413315118086748530800513991936984342461964080656290835614537769277575709443120639592520087502703609106118698144789001414902166382309964651145005805469951309631857501458617121624768702764207809479169700716034583682264147079928531283717870027910010188621408060483191703168018885988694711713225468860544153384322376680814666895763637000351380990506145117570047321323066604085716901169859144657639886567011924481713920228758686280105878172812980004072478574860319661588944357933046907415192500411163286141314078289145471140800523988518525681917549746509457065867201944925647531470123434947295377923461894170552716724648278474637256436988305480493156101494378851111949903932220658894213042697783693157463105780424563900744958724677408756782986553815511250363365453069475129134468860924138398355236220161464836000965469092982490460397072005803064371224096287020739203917051279805170217466330445842691766040567732000730585524559392560294677620961968857670556739380082420243706829215853807270752273443225552363211950113852309802560548921887564061388038261572894887056894925157476230964720242779454702622818073160081796356523324420986569915589648229497811649515073424236024842277471243545091166777007173711939791600876106118541506644274080601796096693067546455481619883466429598401400060967772539385983389230478607501755365235076992848206664137705261790787546055356280710216870934263933336189315694103609991016215516370698098138241438956643567439768922864246942148403980512200995780222823886956653414591248372301302677833285093850362034145822375976715822361640089966795064294697474515349467991783300081797897840898036733053199328409881835836876648822160084978140959910989800037594487834296444976491385873714349897905350649307229905038651331999351061921038974148237295156270661277306620623474278948337254493635943021670136473687735587330182462490667958178411020486723075055213902566529608258557780953482691755467461730191415813486553179716565332503854209057122814178177635590004876357324244489038339306664522914591954287220084997498857871907844725764639239420935610883205082290548346862146492708046807123942294784649330090521015760041854838518428146491818483587705386044923991120542640849245016229818108747283936702795464152736420187665701501559843803811602215200673399696729822652194173354735285691323441352356358570781303824928847266636632891974316661498126551609554639422855628456834931064766487265063536211956258465746698759556693888509158654267079516936955242085925886717823074258480110683352340410902738760235105137013215480609956013483685340756754416961279066157779178197603012848199368190851890866895106700310438164508564386651941931289491019695748126714123261788066718970711331662770205677543178644933603659685752191855835978360614258787471791701628198990668811392839030518079099689043966741968826398036459536335823243715615826162367107742539140851166068961517153570401939691645788307910918787711044387702450477271955514980686247330682517601735045441176583990318890631801757597995786956558081046176596422674350227464105393237247825836234407019647683291913999451148923500069309517995615093471816723570471407597639520351551560176026120707099417011452805842178053492383048747653477625637895860218456010159233656219086772280632817471560332685817957450770067074811984085700483854710826771576686460079391307276719169403476696739046396927819114794248810647459684095814897717008877110164644536100223443815583169487339522267817367532709840109801944345012143381606736062848498583792289289887363826204843982113968200928511113848090384029147722874240276274083527359959431592951193693647029617657431526819135270500012360699676707101119729132884650214210311843912674771245063179167485868176374326936858744840573750690908407833675176606309092661737162878427087519846990734195132364303057475550326950376701791518409783927786678852314516528872024960010177922926654443539590700543203187309047201144113765718715363743142195969055003855321718338283358704517423001548444124972151967682720770659845005376582438745906201807741356246923006847996988865634585311858428830985575653257685612196293801167207492388551177560366879849470243883863291300546280379184232793348675295318409050982412700385364610242899495271736890599235276188251097500416257994016345680759290428549364961034304969498838786385365440686245067296757114418697519206308575982170149895080108455897807958799639093251395133258849741589467514257156540043850834394608631384017499668767170000915368797928270382300623551989621068398034209360809467632959851806917784008103222270851560461675360857154299380880013330561496064118580932834175201710085209974067549022070313650767989661257104160721855393496435093175910576977514324243831657828873780201998669701189135755281897564007978233312892058370592747828788219180993414344465699285380457753424901876327571343338598525170113696010234938681638406432476877931909154806972824745216927039511534071705079119985375741912316744295992776268641653591422691248935738482012637372883287344826956197691557356070868969501774028570808835205949439161331276528762425880625637880987746895460232192070317972852253385753137952327967900235074262743741140470967244029916070933874171009200056452792950377906482569327799840048625966573522336758228892683896564451158267727797391791999559781554196420372836790905964284401295608181568818606242389798196369903362465015635373400763263681708952643979919702704064440621467256002408850561159346643257155863777299241552518525571282444982754445847017892073192132516422237428172782678733839068781125373203306650804775976732602046877115738177099751279081764077036907887314103313299609620822627536987158204644834133875780727887371886734446550564737424288537085063407799749867902940121125116175465838215780151413940377541171434643255996303196951157625470278687119465833399212320971295390771687006072045777001928437487862680600773049413364898031882525542242941394614402265943175434495951739914583997698664643383543756204627051520586494044233156524548907783257735500250619061320095773712257160718633635395189716103837994526125169394461288514289617125291185290798365337476236467467072528147523632635775329988118799924513003162492248322419211168526540509823929590336876240346305666781579350568689307286236956276361326340393132049969305005960043091694697984498052237062791201720699342701257475913560693315328903192277451751401188219019629774200304021160909756786714493889693926412681067970734786205041178839076990146486939369280580085928516392251385968579194060866343289550831082800201286195188253558381822271260213955449073435029259648260052915750231612584597691714563791634461503100760946875627354373084574027581453190431233970959670153818376785186356926217392617812719282368128383110183089146621354922347943176281248381434130554769816655592187375851075853220295202937764064491742307309955648866012555136324315854647071099872346876951573211346798443916989224874773181706448573139201857534931045553155323368969068512095222656089668534478055803384735940799935990877190887575734164213433976282410518529264501632240010023720751159817070904176922444851676841489660516019183080419667602224464638452950327547213360057088739462002488986461276523697916371081007842212880622355306692089748207411612422947575153664151483555864467507320637940178499566009912836447717142282079266450963827963906349771394437709333395888399833760906175156929125750272841095964988883819630276506527384118636505152181267433613868723976504680060482375986527438573225106661369283441240732624703804680253495515722415099202076146491529403631284395966624927274079733520287532725497455530703521783153668000097152310322157916576495442239482669941698431036310450888703816096094685254596103389042924205603266700775283053984683316292525184414979997089659779975398949125203679842487862320102909673846593208714918540629802077193175276280388289728245438314237873807510248005677601107675615860945923057960685785706466025703803666272967671064689427218298665944234647428621090073732871791474968378219847734015716515573075437855137892836513259920816761738828144513621320849922954644913378676050980481166168214290813857375255037253334316299843097494661430245608557058819496278531420770804564126816584876443994938467888181749729991905239118391406086369496970579752689458014283456262144689947945534205562681106912529214876754071258505395551901417695042154501364502313998392915565270549447468887153616540006382939209476266158871642753173494205130383447061927677208711846247020745306372529803128804549197660413946063812007183465200821346083927681283681860925781209019186561517764877031477722067300682351856577469640222347643246207648876681402574389550117172330126672748212845492596809128598837521639655633815389765208078070867984971953792048475591047238307422523565416780081672825793308260150104992023918587823519454612877884191395771356228921964512964568895601599328400209541910561994265801369621301179456937808565390965600472607053748131800169296001303508577769753685057978391248153843189219166659494037399046706422130120525602368441640467862623585802587097180049071719307005436428883341347936739780881797672880052723640309640298477571590156738174038505966191255747643730326228296047082670576445746860142364264161110008596319004180608273804471859025430115070277337507375012286889184337424065557649241562199382486762485954451624565472840091451230225582741993657826093714585202155673148184836013505880034935175297769358884989556241594036723638022035292084326267696242423014499247438665725634972804971970029731013754422503662282823421510501806383662170155343680774136455022986263948487865600527648497655498775705799592047707362040679132257377261981226745589547043280591999974669692231595852778827970138878291423595596087663988317824284872381697418422199940260370550073453515930318925585697141330021086274007121387878286679428822689557258016560850426481070988091335760880553532498824743691724686001918973125837667035057097921923688586337751277561075684522392825142459652735131976257090843537419571142611381246385684823569624847711169480623499072106723960884315788554558933020933134020747298479668776946939042751678676397300447413089524738550644491150861605571947102110904178977302887282698799410031295206956640405891290505379537068507393360422810973083777030258943720308135686516825213273629916985062627096071659533815092136258415919584212458753354564868510691352463871118692700510836761464367713714946374755491667799355331363000431313673435818543094727859493219479882333286850006162462048958913644906236322460841300848181321949792053627038115966532742072835729586252114673781670853437739294537520006117000714535345462767996246735176223342541924359752564402101782038969097580288077381469476034396262058474133894843422075605987603327814380539296359130112064884633606958967727769689523955277672106421988521574494933525254182119184452839311960300169295802091511345844095958651969833276069811649932225515403992071442369303538097581625189377876289897344471859086219704898280181379182825250430487329392460269463988815756673405509695241961681455334906132764416439674735097377846066476332239335116619080819183769945087208035138607440770305895338345176381620940723136664532582965434191938359181010829493387760619400397877287104828449227756823662313343246436465146062761153072750601278023106368537858094560692248555823493440609658579442178428518099079953872937957061627649188764587068491299284145648995972804086026142704181441416966170369598353081010949461315177348175145795267483325773780793297471891651086715923411138489381396569334705913447020465882329462077444239519167841576613477844239730481699813615258688009563664515126526137829328005650855549728585758585672361319375318983747340278014030574598349624248933312407976170581498250617179650512478036036573288089620198519251542800423629767417076791180280102499623490961335878565761499363170087624294246841961555795380618762239375785501537637663403999304134184951479940542261262437554276344775952273994888041876919985780361606955696192138631633764653860605840421144687510362436601632301581328460697302069368639457606982379543748996036488292401346917720046902720394276878149932602077750803740628490357514487471833973674521121977294770215010451123265404303002055288762261741159237864782844665258926461413525736283591590929874321861145362117231484588513081234050980672125044677291554925232180831262465083960644389694312147415434590119591112961507431727911945571837542825295114798013644860147946528448301754865873553935234985225589992652683993687179772512782008114602881531584357723776241540467205786384418139895213626139464806752596946955927577095119541035553772184520152643716751411420450101186791734445321311635868308027852301199726400176142970824937389475109241305565051756661423810611865159299072506182656108381118595453217590775324259639190172432861870484691390440679931940831390173488188135080072646087623674204303967024758045919682429556650423516720459026847932347882620031698185831630788001499683121206924695826040772203357780143170630215873280435315769567028397134614702314698729929804684614734683272680753048617280064310707739371342332452117927758530047046549356876647472792186182465650273481859997723874775287463604147111339617637521455909743459057842631026115871661221728386828174518902273972743467362355480950065559265212868366388997665000975325338809753136029416865096281181628202962583770815524988920416740678698963227483253356371907897888817662817009998797044910778497575594909266115290489646770876442692219331559172873284241947729935155012868720559856601638880599667337122927386015165945452201265740395011632625426873972100535741709745746772408867639993923567598154761759247041149978608653615009347924573445194953266115968053975984650498137981234478122640044422460597192941197479945697344917694734619054767415598235773499964490292521667745010604810212990424200601019595992854142352340039331637610774433227886365917126933930251271904415960985327325766575856976224790179057999434326079887629273119820061419572227771439677979455312728809472272889205611855293468855919285291116306468891087722855730330090839165597667363491887695634341845633292936468415067586557328633821944810898527320623621736382388950388213803774975214643979432078201853838679355411926348141454810793728676793694404650635628969859051362112411416034549902904377072903471333991436911983867689069517888221596982845655673599711204312229990328971847394753480550119079104480558252901921695452302538705627302776399281616188551492789844775910488490354099875424465390783697626723876793250989768112689426153228522588366184689255919944997823888830964676570535436988602516974091676399366982500201732435256414335050464705251781725304415047127274138362294402738042198002369464382918341442009488874458356427069752615087972072827888261332985475733469173016046000181956471108644616243897837881261574238781333635862779737239239630217118386844227524320470629291974605171693274352258896243968683853493347722969882010059107499383427002019432850966278680070362786094904738004833483919572424688194165877293765498613142529106825908183822860493350823459553749329523870484478880980739379483096093990927534676891005359671624627166072029685345769638068446323089044369554046892171667060921554431469361410084911595551090999450765248988229491301722859942611009412474459155757222636071707634878813231267363637629482544449946043586839909463937565958815054807913941294650706057599228472632919952034301710548092242844245830320192913521289630390648087082489466570407719331129595811153883646866181370628006147333815552762144281464613281623191344140982215852919502956722480297981563397556389797120591638502061856384548527701106133028326960117469535355963103978809518410252527965706095521284306657644782860677560558726629362637319474973069598288127201883486599419782889143978314105557985449160931225702402446127792492615927416972050956535308601690368628518050578535122311677386773857821121622245889010498005252586768697726575575745840351459431086933788742997375681212727099995388422226253685654834958752840969163944116025499127007230306752213893940042558276864924067710132783862685569614350006045414306172817146499186084975878107201855277789241816349394536931636531095884571862319024765094239324778088733464444420630771959773450126632958388922218585692718905770487021662056896687246593581247915717760262350284015834394080191575767286821131129256752362496573811402438997521619608095156898526655095318628738390483776150608217194324260191022334274376565463625451480827365868020241540251439875756539624480634522893025977434575622956302908884287316432774059677826111474751745786886758355567435252866159959715418762435186320826105720273149558375307180819934604469416021165219234956136077499545700289085547892155829403871146213706972599507613239096367467652467900265487139550107034461617229189893124925800731793256395775373540661473714673596479529146182887550712552162310844678500407859964079452364969043892225614078518778233382144225599450450668421181333058049431626009459969741417036167308027002445118362186391130408268549975385682515729064728258150045006461164888737616498069098139750542694791614655061380667628818882397934765456447921737849417520477490688244624315542164764188596061977989728026861616157830400731008383378482900445231174608792660366478184846891388671750990241261078996447396358239767749284062904866371385764386655505358508540645025113432780300885365568285463899751338157553991879997164260547342224890008231334427897683821326394278835106739194913570471260154676927215581167891727361892601996260720180953319024307062773382210422361452935817800153610908061538982119892420084127062458028896385796286546773734082201980952565666916738293676673110192886841808303465140411268667372042709758026722968089759104877269515440577225826175670965253032216968624469444656993566280129900185624034068741748844189133518721707587805203986609895387471615243733214940105243437318932318344089053091481812758401765319530049272926963073692633148953378472573422858478916967502177298463991022557624525741048557502224736020365205269887556584990981865794335920237626621884711337594166859644730765013545406801972361952607831628031775497397107884511918934392680753573219941438300393854469897159561956385289458663372686007331991200683742652901787445270746716867354003310818907876374199908812221097726117693420119319352224036570495952664181824624909225957373296625375327853660955533185908451172553904331075213025567385004985404887513016917848363124362957886218646562058541187440312525853224421235012979999717832858026961666197692931020043210548809417213045357163226923098592535661941087834872861505269793871013915991162822742256166221723844084373241860904528029653098524019991481422283804338270885991186924929741017205820462034795237490718964687459270008179173796759386393844875324035872000137618923996522374674903759607262794340004254445124171272586013024444108960415799476538216249149341002212631851522848832855420099119511453119141185960312538629209931599901360608844907488063133059447448125998676714799632270211133181808399682423686228806720711037816372650382685626152664023359497249635263647837434472671982227577901427709957251895824319380783551323669400904911970118665834612406414051816110543991624813280528759108727299358437074376184011463160413384561374526807444593429450009373761972375720720305084015473778362834488103501888674926181944650233174723450582116296706258607201551476566936412140387465129534963120114392658157700371008723828880694555165694228821171048485274165426101969671196153905766286015030229974883212528325784771625473296095242031995103634447742157586592006623711848163578078076900575235777869647734697897698303956244572567165917325151835899429115292126648073209367147904046694510353439122432691687170053400528800897953857591039705607596869141891959181425236059388013301496416109208423646348783275253287680940078018435584992336594559035273379501993506462379305907509239221180958084612445789457508805312562728203745474081583988843513500262632107492383829823874280024746293874704242927707670961091903545742284630626650977262889020386101099826248481174569185103126481133348058610712198248082739531457263167816252390254883523130657128257716459058541544859384856520304925140128077743602251429952101431176307440325902216157457571967068632901987982481692047362834731141193979827174858138325062828280864142365901371887934685619968998804554658408552944723241888601060144163766079615568054262847248624265879764773839419194870459533914257277712296365876898418195023015243045046692597709415182904896464343692418275193830345250386531579984667143149429769864729326854681459084882642081361813427100074528120518109439803209232443696800503145688297906487973436563226511695521652613388811747649762357442194706159328369264702155914653533583936552722300722615834029778016804073710357332454516381432634447219766263000548033474235017196855814733722998428543515164127635896818884454868489358077538408752686056925119688428811082466235627719763792833090196841337630709115295103188600208293038203297892841190470264019039834529425347082552334137152416761534018339153185828716237066523535150375609813086332873076088666686891186524669581512638537920844111848558392853443457448420535978614409287429784180545261631223540369612146973645592263653630314718186984579549008544852742642379160518957005118058059071476134206729339989669385547577530040987751257031209270893462502508449043048984264296955373513019345263868181789757501599509776456553757547753317861701292333647337226554226163195354518441004544511436971077534236286990160590514303112834576817383618008889862891458566821892176586230160401652295681943275380008007497966655419779083325680140204615396434300451136134170666449176725661938647092573744405963389373440290680749495648879314763023416888167377010878986728349047935570775780538401091340734329590125007923675510034863272915679683373253893898559601227235964960773370211470487513279404176437065161507787248370340749780972981831664381025041598281930039495443902368835234860279354127144057743206823497000982759159924698519518948906241975051712524835164411549045436875477743501757074943059533704357555838434908083766332366882427686822714079921194746198830685930599116813069183467274930451646588959204391084340079771542626441645308500604551324254335015073353162618974263191204808810036210452734619387193156390672339795499635215247010402766596358319023007718711652818170526940869048681444217048709138595469447692402399082588574296271643303733921668263453732772421847237478218649735844049908489587405227436663371295983156028375089148325609560054177097796395535847118602230933491112061794979704764434415384466938668405742246654719431448114663720097917005960072571095766809356494422599597891529960829949734502192900149105916121418013917604036250633306247713300069955895313991926370195348942053216878883687156715246596062340899549964279485241937980293118255491564525535833344285362426609704752604980764291556043585539695210094937807356905397643032984282384921108049908750158968241436863216834198417236999724447181280359506258192374047844986520468043697731301972424658097404753207124951564406717906651769910836973481092997640764253477904816997709992673304121955978079995338938110878858853632044142311875536102505006424106284288112521069579462904800860977425771891631620393174772787975260442171820007094638106828250487223481587089056350560665239280345514173407657047575038064878138072333550090864059938837765583189856900904447339690980707276988196425137251975293711455682477373864063323884728193767168773140698088939617904958768257613822168977444464344068659664052721688425735727470560728259266056043758464512405089084727549505807974148661231595809461914342401831550778761916768420063099360941964835337155907357527814586878792556720984741923564674386615326650662823359314194113760158215841433455364104717962225302138362172676882893532453344897328410295336554743569060388560118702302861412708651258758938577859425897952564496171290903294285914617526474806392384497437434021488566024389053444610705546526604055622032517684164125159566214747642393307015114331349400265778230632823212147007688678083679410397136046586637796485294813019937506355066857529564276648036557975646802594304785209133915029706288410243805212397514354960552970135821550834845658924164896045069001874948915421486745295358237326669241840087727613115207124952637503575902613719197530702268355668131028150171046932956723934102364802795620083246574119678549442616605196249924622921949022571781274129428785932100747929736073673739717220650750010909482125732868340569628177144545449874800873743005999698400299888621594644370081990473673915390820734755350591402089184227120659691629698509279802288906802983596471644384735811333642607207527106849132344262538586980916886268636953522041528035689432177150541872479042821406763814510150947360704504940449067670807820901116866452189065154678088798671712091434131954651815613242933847543609187748303691498039876837007771906592981602659302890614817357133970617332552790298389487582601045898112567093986689269684700225067614367397813897112976430969648660028745104445925854793101263785666426439749186997542082127162835974771139310601830198595598505755054537496159777757052613868716292030410103242259336836631643536150083393580428095582114875323962916060467879066610598876328876925341446851330702563166361274918482926102667566322174667197540245611301241185908169125952997280974935602673221291410837167326506504626887756526566789596056210221625874143147675127328030729794073965912002159725896233136738919764525035662250171639546526312700649481402583116336224340761339522566963264398457472256615275958413352161172633805721715371462874956457280858405206747243067631562259237227093468206020446682049455052994793027362356996709719034707455385506620121746035774822223409572995621396896655815900838206445125440108910673070459400580951460461088820469309692075522125541974379943691097892420296149849530323643744347609324881735697766007928974973540187320705425776675147535284724522522981459847706221801721253065419850604947891164942644695574290906134402878860223696181026708068493562901267903488041753622844949831792749076181179679628596414163706366311457200929402405524397622844975236170872951040948116288522177969811075467701046263333674688815824734598051098454144520622359812654399871410254020629117990372934454553718847557131807551540509999435849119424550995379919697087327937943772980724210662429904313964483664345121633110143042296947570409686019292818738282245357920831786211753717490154492107966263891186846446664543633564313419852923219351746835779275297253952258384828374004836752256055785715260633149970646910585456011715732613486257303411945749920308051456498244851892355161899530414246687055908378667365616685157219132019046223068398688172802430783053533218327674904791209077742456066889562087710376976644035698213692232897357103008148038572388346875036489163369845009690701381228115755902144740614881448765024320529334273826223993701792971000981078227987358599289045308532632395124121535514110154946090803977818215870938362996122878867766388330348699672590595682389717126510794112957589861237914420983756672710405435053008844075745919963845531955772873202270547547126476833170158523049647725491776777807129526339402016643211497576520688689982130273453517592114135846776268564498399984679174779321219826596799425711715435508844794506959360969489944227513089140195186832746825255637343704211668410579775380997343329832214107772258378599333049920505339288091653555616308516689382015210655270095347623446163760823406876468603130582866997678374260745368395514095706099545511760557259650314368465742948060056101070740858444064314118598486318723382064742541680726810789480426359826622006811758036317844859768612001213773470259982345693801272629421663837179311089994336740091455450360981268046141865611609351760283531720847063391405303838904466916983964933225614710961133058896598420919134609993545347097181748891938112795026207551428224082785404940378378365857631052755082505550838636005939118849629286178184379147944089600783339562130351990388383376415837571065614572646166769547433818068013762464468385828701866332128151828020908186008981892068579220916832034391210296229546184976252141316768522866374932986227210044948092641257579538438977412273088677939938353069223281754163720048305782584483380031409224918249665833064481898283886209282649333263548353978368551188919483126199964621689912041815291612612800497202590269748903438576775446414194786113092667828424159152777048160176541652049621653888237114822657884856282018997738362575095951032910868004062094491058821738803161939594619136272922943888727843215658468883117376314945139099906135119710176480827043712088224198345832220209139506388705765793924500195831860976373178473189044194701066323344213555018643027316826017179950034149389453708569098658437744492991836244466480757568528707068645304139662197239995039301250531767095679674994968017844227121199910177150640758396151204257148868986392009161648279047397542748241993289727323175420621571629005154516419904904651269580916929374620092246315718385918177402215092081025123227979740432520217603975891428668283594350465252755544539022050100022254684796083700516029461674920724336084570715748599916363526773088658525097238132315294890719879354390699174265418759605588095200687766038517986992620012866998886396768561024524686809503131019689169718217043076174902556201452745994859799028147886656802811710740692464853040687121108839698623296997122789892992889054101362443265471095748066610374169938253123613320140698319627477814141025859842600730573484013218844424735085266364950138783405431291480532834514043341162499141785069075891380509522737490062956227239095274226028148515735821798384994421170290106684898854758703443710385830233787158217166192341678040969702528373064869470441020431434684757315237140794488631271982908448816207917801333709485463471095971585548748387828004211634607316382959296623668753563780407708011470742811859173093796584528006985417193246760034647514649530591956773573697544621618125736521774574150272574790313434153247573233756001996043799877785033515328342203791392391045755197473706486222917140080611611811436090861394586060600567978930361382423242132416121311626386352970319918543805742342788150745642803268177317587329221814137284331051518138742494935044142397212454161014981577176251661059052454934537281774388968362763462939874003750642269497175760111853821006719315721913108354518694800484462417364304376520286775990492010857687069119587921268817618567661975840435760449432405114305102361603849440598141423448491672299794532278979920278596309964855889501265662681314207811976726224207518334979816056737616696784533139788136272402178318973001207819694157114270707182503225507306065068614108848435851678598982664211616659217841334033050277262172776299422402627803198629813803457835877177393322623368652391284413583210053404282830607958053638106423129517900558514258438599495156613220801652723979238550364398237993561370524627071243023175266128970270621984344765922133637671661523644485044994237626143707011852237240141738427285141758751384776249392990397407871104299989817212466848855474761723736587856631096142376064847628348734661194350304963711712609149416366137084967297323123635488257637641990543810828429754977259491043554161788465294976577527448235119887605859003234310736193452078095864598112963947706350056890244880159737794176182999277186476043852002754244669106877900670987832389444084863077677520242842764330707270101817656635793524457592363068670269698055496143980083796760242287984687608535508951745330116880982523312939248271989268965197383020992160774434673914597748530306686330752961731367184406675191294746977330511685085418528625441095709865119257134894652258567220137409966226175403467953997735707339388156381598649957411305913162360692721693831043691025973167651616276355925627762119624028154508556155266786313827475919788360052540178070590598851408445082949377057775878029096348392469520277616734159555800875001978743844428120784573058678069994990140519744184378182957454036621712341481364157696358071194270185102652690927205758044212854347871225389881292446681604755294857608799515413224759436409606881646128042992262276171894016148670783985693774868454414883979431563006635909575090444601192117382147823358504605574940932473836540860189896524801757051278486461828174904789756403644373257331644271455826216400036867228944885821499870524822721271585525761278638533612549252475272543501453392324284666143513405238418150307067060497453371859298079401720232069288830003177432092765299022583474198775603225856750495431215147766554496199304869060892249823650554132531710154887265973363867192482242592809773831305613724433260289678066443470793387960536194512876361784170699269446719605211807143219924084234405616097796237994207838450056045259159665411167351924301211096075555804772204304460664264996789679314745944560298355651386452750958629888896586164456499369236512725888124283885335148321356153647926259010932548837573828248324461011958989174887698602252167561743307680815898634191526671386088731838930753481893354261359441913453162085608581347188630879769790081006445357156734287747691320969497458083762138670530352932827051356756145887853058866662323743471882534246430073929470871867220059013091905152254638301920922413888654547465924677768582684654355935337727364120163080561293652636071409689367264841889038170473752116653756245572946596589501080009399111951987992883354818169530074985664815482839947413155831340022659244413064042096019001828780679855371381037635377809907514851274161226493787644412144936721762388071627514387642733927163386667367745212199579569156917881640103466745009681151811187673651977982603258681362829386566792394933694786461815965804370853351084121501039698233353050286033784329528193688668679027296787731674777651771945450082328205410737015928089005760560488600848995836427173528553410690496363311288313168047909417217818442214360964210428089828479119511338605598509021560144459591519917174325755287747207996170182718576633192914988069126485419857283653198112508081000306077021464771434384957356491837898411417782979049697747452371297714799313025094627272942605008968601933073952519648699628131860929340416115604191757316606555706511326818035073706897291977623310684701555513519297959752251826846712682116976489674931180826540348324586041236403646492102320367050702116987348200045930633172294734781245767240362950423526600783571520856503659802812918207955343887729387622930416181459993243056214205308815340970388495143691212493019098389578305464463285765576786774242689086075613022263408719203670665079035331567536054813005292005871185273255169103065233159865539724663372232251295245158164824424540775760383298171243134296401903591152072275262437727047482678580066364821643082811528649566895015818310067755224463696473478294151415058107615195674168641129095475155151882942246735027952598946540261913259790927931456278191836375588733780934864477601610831931392432458826151222516800966299976526094545086314130810630896140897766607471284761695165175682711909100375205065448706301570426752566310937776790079064146412101886927270277840411083869550452714689890263339349907502835957095626976639566703513779736190308670535077801116023643460739645851562924559652397325896249526071380449072296832816829593489479041023319401197206095028139008009678344085064241559932355016422914663823017376261333238913571981359780671723110260304538575080183276484212662723351144857169645403048863148722528238819024061552581404874516206541766139092734675691136247903395070094525778370717126493774191301984604873456128470326355920037232032251604185927652389442839346334574392724203516647402500858425436893787745728408766828209775105199798085374301440854426370547873061135973871028881843305314050904768102632936990727802293341563145598785272285616269879608618420066673774397878975533122257780397193214473525865991878877452967956301779002874143035720625974784192077748195188537508420614323476297571796137201592497198973368411349162670363544100968194245253225802784057793533456104536666034262779809966883728866800216353108016108656646645029907265569776477957190669841686663403856125167260167469019123868188779635312946324497515109492447958962541121266064719824339444176320426118061007265245577430616017480490221119683849303513885552972772903791650063886473929698732267398347198123118011045296268345682458170356087330337018000337115295395506661940450130101393250395138438803615892471433822240504782622441509635181227899977409548692117035090800695664895151505865008233764142171740002357069611963693391342761982214901206024008244115073850219905241890773279958791103454676410128056543449735702183292902086174392283107842890819301794968121853506239946430108009204017686463577258703754674673396522195574759789101143967207985158503169081686640098766838638241402703865429752888063106523417191528199139232468840565631131335774753578997719610496761861747598650357726986270784996601647866583827632564159674999697188218481125463844558674591074222423327546534003557759756518575522544457749953287995862182114933918245417691227896142613463970672032620689817481946508405034258929756128111961259485983638763747617519194374778496493629809545430734096280837163427505800737952768096159357993584580122593918449726277072661327709572818431689644492205668395927157902606677540328431261076998609396501520162924234815857575555321293549200551117818533078942086243066624643682236772219305310867217026940190333322433228920443673413441531370276770224424626038938153835122233170679797313249396650171650252982383806866113053823026309537633727245546928278754052091375698697107551944719484276446784163396528715304828476900377500284892511589540611296624490208449307613857097399135373358638289639374885784741805745997516161272743018082615122799168864327611463508999954837857914827325603739077404255672579318858640741511925630966943134744047483044891834050661878266417104453275536387854166024742685963029029924187303210683480172758010784966716506398729174748840388030870511833004346987402597517180084855505041350357890756501028653065112948128818636330991325590438686128176967122974336260980907380380744937803118828627627124140730474640921848698987473942940803422064753498528811706594818046060461840872225020180798975524544582144326671087559921087159929248165302689749810972741123027720609554511854049825964106748732367091429248320488900778956630390434872047595416926066943225464687463022973470975716532673593601105701782337723176250848393932958036292504794573324562884023037269534335735169244545516841324679448531308905769360775616742000699372319132634786520550795292182969268687611951661699706810983148186676689932592300568747314951711549095717747031598420491737041778257041795655523420901759367834741920226098733076387441542905404912967113173093440176010502899898484665758050015572575337371357306962773325493694175196660964541894733174538101181088720643630345625359415413742471684073870053021129716699203145364393082993960782428499236304441430334733464831101460047428489802522745276978341133147150247677713991300756513040653802187300440435159130811244827518962116289944632990238814910044462855969849300392305400305214047377840339922827389443993575250572123394010822018283700919245125046394012191157885583322723871213785173963074986232782643113804734584603393215747219216210878189436052534781813766249579851834367369412446245955680565266949113423764954805747590544530795683310927521465737512074171463782890969364730474567699360066427885235210961588546016794763393715447396498328366276832549237701316352268395609579566167625522458427991519563619707098921461763836641914248022459205545418405854472119903739200770423201551687946615144612772949831316361655503376885146922390784550469233273773706110356714966593563336714426378984555066604411683601389693075392214208141835449338306004776070554758277842188885866960243362692482511962871068773126583949362896249787611377715987081836460835421313666491388320725484098581318564445378689771266273683404012679355450123059584587997660022489769459833741439262499444969432202469007573546143929118916799022393814808492534589892265459796924208648014084588252477612018871419700200227203360593775228773338606953609443232184716667547597218810709305405889106219035782831918984608268117788234868644616380254498748519796460358797446159437930313354636011887958950231226894131029288016748590648508885784133619390442073604214638337751952718602092553471486993562741978777783534067607086019982010061607961233324865532491988696164656439494866238893273681849664171233570016248260466918532641555712660062202933327894634732385899858242844264476544448888585378002041558680604705645017791822104873228273991156158110421259993860403002595475637339684966657845706724448957938122302580813901552617928355952636675701043081552864350692591243994155788944236680487792624505170890224392950000748811631348704632555666704433788383608546832756628108854661848818417338820434809748488135017245595148267446958333571272966180054112041165827852636710976388773815669265259619134732685496846845944671895339778398466049809728388374684884197285291530280273647066837957500110355981775279679143483882307343668782684731419867803323089274947999548854874800787121053576474740870273503172683786986029370582893099408389868389242584460483274338065484309288116359930953720060852222607635557270737393275236842041415574485803204482357918034165978435191775740080895196384115733971536177193198105373584114430370848677751759263129763574931501887237021234401360602149814837898015730638390154289473386570254504017673930199872141985011606339505322793551265458324052197456990947810509038907281205476836079363213072883623783993998600171928439312977437891104504121297701491045685902373822533268570236630571041009870871630028670535166038715560066007013378478310860105220987142298471391067738310439022129352357456747275791407863517135308265754800232899621185723671201669658649817167337204032248667733385769468680079440324781510228961592152359103549147491536176082903499016183163961488837326712533114440632755135992289052656173099975824032336263354148884575909820396246502158450564570955261876996054088027518082344272027385314590217011457255310160320143035685374691705681302326670281947212225575581214878282818489796660566190176761689030728401994247516553650063185389810845348878412295902185749958463426514780174663888615165207707667446099972578608429117861737874802654474668976062378934588686774207976607726526208052504160588368666522880098825302123949601010604675588294325797694537554943632157803053680643909329938006235086767232935243734148542437339428554654217425101779771104567064774521601655420643062710443610312610117074862467156860121596251265552496001010172551472872901397445760084200497887396254603234267685189484019272173036339646058992150205057337945732718556064912977074571932394362918484148571969022839388971040908351153206199705765970901836368576229992894838785033136236090694712943568678931906497256154150279638630876619410758308724449773444599074883836289256014207078990982435279883933064024592157359865430500041941541208716103322018135114152831178243993331216002044060618431494680960080667678833712814385422436373353759118920258916495914799230283759528015850575857398970301957255046839055125567106172015157271192430348819937851416888551319018628299522801755066917623254923857217697621909769391023500488914748139512531112783930189384462387957324752679092367354476940005125382031404735418075882395960962341573240656488563369554402084998951846211531940415880769697758304378583839338899597422689987061336126672519792653364415155645076900748925394609251997541743971953081259787000857798839545254714932499499903047000200167801041444064748407366092363073495676257930980937646937440649599946871092131508544473603478589413979261645960214343151723942337570346371343466598105108358971440918787269091765025169741345315619146502591638508581709369555503938931921540219626272440824996772554680994676488185091451097785731945584958967791163482613905962623800508764433251541133645769849695647458590820134918295014586292891184143898916296017321646741817641905507968528972986337379201529726000298441139325071363386893898795322730871065222349190332501345497706987644656357606660155045030051414337873677327542624647321955346706658056447551408038790903071057580420578788804383630790801946783851217379873566901672808870837391061213028451191144123957108438102519419391946762822032313567052988996634235294750004673645171131422700997222245378524803922308800720676005004056766836870769276981227803788527939113264824783287963291131301585252593368218185727930770498912722042687330840277728762429271586260710261914947288388728494516344959315081315568930815499850672413560791880059799347682610043039303206450829940577476136938691239643516530569821160010372344374826301370470459179201309831739418975747508989422610379564116817286226932195195323845122747814369059339517491734951833892351262938602431005410432840658303316652764635401366768528117469940506807121420370866691954796016867295271780100762847930562643457338422645924331178940873528944458232448272779092188263882574004658136532881061646484065598639105207118358195120190753242486301324831753443483661276639378499130175492126796656392921156141562440911953574131699541375950889690241132799589519584852488599884790925190371736823136567790217503711804162060304340967013993748621319270086716315070532383006933509562711242502719944928646867726235669970093230784037727845599237062676859565423372619232936540446102871588900649789292455066958246641486878203308973204077834457574156290033791479402726138177058452091166670818659462078865909175448210596022329242697510225115941023206264840830584054174283466015434521049148845863507341988732807846002768964024664375001330397011557290059061542007292899250044530934550649600511698085394887848342970228138772598579549339157205879686612087495940633171592834800341690795984288304866231432606573866388693601974813795002002370734883691804384722787288973588759203404042348135006337118403632507821550178992361946834911731212750124399617241608607714762972262134930547553278977198500363861792627933548931183645215774675968407248340264670813569572226143802624703359565372702829138198539784649469237325017001753669302351195138432214649342263929005548165350054869484361662941295961249667764236020025592658963312905810821303444455382732537550530092302412576836116645081159400656070377796424615364588007531601991758958734215686147703843321635006404439140234026980949262968414031427764376914924177868896340345770014985389678300270543194862469556191784860897729048538796719235911091313927726547689949322235572664874768616733602865612640475806306964327832615463355318958186307937121689413888354908859705696741720323178688013678124990436306902008664396686704034234551467072177657162584893711343553566282851012593507434819584844935208715380607032801567836349790205516972831464844207717760047434157140831372978906992234965339649656139408871298625642167699649042806235125478533468125485975725298116169745167953059991631116501219487044423350351264765467861196165127876429973381011773496025804695876835796230115531907457322925226259010718193662242148703362613950067095232367673751842365153650682625815975889625855459734719369611703825688983305648750867103151962987215114780328759883060542203863074724184923177044897790380005750865920345453730540805794667778107089563393804296170132405663433957474197462435815193533886258456676980603132121773790221809133602427125345924350326823594802482206333189465038157041268833985557571912193626176284042355362225913937809947133879248650633252405181541727213707959709424994480427304152552981456946654794462012237285633463700627250942468047770320315454706856079702187040698336824387269970678234114395268267788769992649420628520219240243386987032384964697733247595655781999758199593986439749962581623598500828508198587204568022456710901113704407224230261223484528788024687211668215350760569820864127288296825242092812740575548833748139114025412094556790162394939308205996976041785827161060599558068230733485931599505507221952299185262781716418037087685648866669093244629537754963826816987674450493290812020643585907720353057646260739315286066749114454941291383787871842858041046943613078763783470556155794050700719778277595112086380293834334414175508311214761580544146735110115624964579816845653076929318902982555509396049947835272802696139820643263242912703508718977926981228896909111721750384137739841616070598234061797998879128316789983686184343464768246956070213521838087638128134936451746131273473827383963719704443665369664897549855462239641033817768422554915692144335608369850180157104480475343842562232337368493652799479911453915500396221756414094385311526622797927980268193278584491473260080152061613024858076814191034567510571240801293147553027634365571469185351288958204050812196888454008851472023941710108886277845438701756763072797987972332560345433424729817260006623253561674683142453427020295937226415388060380346965569588094433085229795542988282412332816404363511697296048415142304879343467499148628055981200457332997839829271389587664020874416123896410827848878971297561765594187619136771664203747966623445317117850825507513631862016346601892360667249305064312611453166848146548966059146602828664190544072775768136281414837966292465393501261558969670308652244621140773368422429316688173047900608696223538896677458437135727954490014640061474724765993652801251416129256876348444148722681270534032811735529005764727436003668720430454609948547272461290633150074051780044463160013684716054924917842051681713657441912754707682885181701399811536711511524747053079765590390898227649690481291742457570539010829284893784031714267592609913203560130760207742422360530224003372560153783808480210995952404341634381350044310301005768778433002900150778318308724575482957446223231094749357538693197059307989879948457999273542043312731754081706638462870571634018722087708298050787182371824512583537661199586489544888607914257665240298569579392994009546441056204150023437899890835700467062480753328584001307790108526900294544326705765929270713752122952584139765235196357839381314426144426873797762223865273188716162666297121110387815883030807233182018997158664829158723628283637132160819933860328348994985807667999669166958796420985943345927162528812675042640978266947512849525798326200560867004574058593494568383300866325404975246647669017338397340826271724448333758054647968157737957013577662681788636987511072110170183357936558815968958751769764163931806690008853101568824751752502198274588386253126190475556209389065753042476414318589544963436775201732030787910628176137722866545644912637395824881075712105758125881997024353018377759432580066545642246525662754745660294850797821356166543768429735411443642587915650104910673268552572473546540417059040433494208929403439863305952899170507341264864180406332900076605595086296555671366182733356327058807397542276934538529974181832502542056923492455663614570369415806119730385430397478537391558701128644799214771092263494401263913930524761566156139516977392063651987049823201455431116200238376340657474443512225230862710704492154660744688681217146336054808625994408995043591697759382630117197865546424618586533582841346949514100853819842087793529949979237519139538084821168783926691112814460541094553445281060636379912418952346766271148072022635463731824857532901043184846931986482711835515785725909887691607083113837022892775770824020524204454434217884268362943079071047015135505170095262422937991490094146729743632087077044000959999095692609100341375877235530349945303494499660175242113635989865403398056342718883698693694750052152143546605719456469729834361805882194421798724374360878104671702860860464475083187666874154347683350198680656863411650719075677707607851775497865761157570763628078523434751094946486977298134852256350827010751574773193098483879663545819315210991944484300198495000310913334139440425654436144309450758661063309231796008007933966844451365863117015081997433121034996283188211759258735423521591155559713912752779648591194238024040342910752973947382922597645876977158328756904164737322629602519376172341149358325433730893592072184130133451573804314150557390497654099816776074374798111418136948239776858310262287651483432763797740202398768748644789426712170879836826563825258873372363396172333094077677311133118609707262180815747765520552684444889839859867076035337250687267405779135975952638972765990299744101397928481751677784577306813395299597994672206465672474686025410925974286111528386078080837682181841159388853199264648463570417822252025298604524353108402090332678509336685227470163706361626141574172581910080569677240576166362223107296027398025115715499707096878849725102581154191526002127476166225674310983780024023226097945300590519914127772503752291266792346673356577697800376730195762743539394584596016114834471482415231264355338723180792700484465825130279946648825225195679313828192788343160036414106461205874704502200097308632608537379751644284105706709701783985506694951984035159033857515506689405665689392696143398112867761784843247119881521007049650935374894677145193287986445579393969284719724913374083740546629184755236304810564086663155696300547382699034650319032535188058373826244220976076929337040666913480777242935760269623750567896572525721375843052187271770141186302109334148621739678009214516256459094841270309782672486213079578450483701701591697795532030423073457979232373586465371746100111748046390659300224483586347371492014636416435084997568438536165842739589989673436498409164212567319204705789944633083785185744682351331202050035211533294420776630680553434597615582783869690437735474710730295397330248707216178227468635360612540893493827319147288540526270183866756862778995591438024004917675350390207091144304909015952047769605376502254464856102830861065837691456352153667545919990188221144286629474168363003357552349067614658410839170486194722075447482642752841369335518995215546697527731037871407886555984050758316883991677872215290294537195942286834933276726538397573242754802802961216410894058540333768163239113065382544963055912612101075380537708977327907228025695177338321216892570021036587223183263338703759822581958712081141350518990834678402756072128387786408098706512958972677529931969046124802438178006767677712732224464002279524088456224418973844670895067955594338550413092558190895560156304462651229407554086165920304061888546894627961561252632931873295940933530588696382012132620031484774023403362380671800894529578694678427882190621707384505201230824885899056048296067128920939894857578642963447311131090656283275205094442530810178562995590100600916205433615307677324524942009407938024581769321278940870718675809407398117838315016152811798562412420815505115131408984696652298615098097616936065416134685656118705566110216183711851906142932993453203200413609466620040775147369146884864475775618367161510378457687172469747317864125874371552062812614123366758554673645478114675832480259524608173390520631238801833300336968409380081239802390345057292027228299283440547295016619558102413444516264725840576156994964578671016183149974340303038337381582429289935608802367341165618387934717333136466256949857435070844026808918975527371514035687288957256115997149503165184826019415290968587482749818112523793023904901809848366533639533037093765594794165656534492228870498320991482063602121606974017024887189614282776856165677205864160805929476700923343364514048909499118862692062188324755719024205643465253373956963738645003284493803412446411544438605174547767584932973727941104915285275490254439834133379722251052557018520133154039789165365533353048356214389583964049588394382567109538132577503740311234657376414977232325223764717964077760933753577516691375752583352956038297569704278981752707401182858688586972847713733814804250056194501366385252353500489300813884073530955821090558508985676289341557930051267404411067736677742494481265238671061668257127736088431405737626975410602703572079452161073619393534278947571631048084017258362357285057799439622440185319594968920687514914432920790798759171023997269801318139716119721297255275291865841421287630124605482489675372617341245031856968158002173119711237257703504997613242121517068842188510344669481293093638801009551167304208198352298062394735469271589989251839557227709093972042169848443586543029939153498147444164056503731657985447311606947843716721126116452760651039000337620916836620223468182047470803616629339711360541088692439192893350959519463140639172905352876355879055897798298764796872729176011566382161964563692955210751718600254295560546936714208299555479758407516975220587058869705318595718613200597001229205979613824254145466414658678348419081087437657380552022728184751763746316210484260339225121295904291770761622926664852765126626100585349486918078186919838176875546020527200542082356376761697423887074246230961790053272928287874048971440487249573757078756753711300010669281177701869798159399699422968704093650465873829371079769964400346361129118008323431130042667827901205281032449067749682591268339289289091360611776004021173981494325633583843712769732624219744572356843840634866301995181764541355778620961290883270175743126506941183783778868886461204381805514588049728831906942157926539796548082638183797172237712416000635161053612615728180572521687756486867398231379766783892452555556602029117767099916306531737304128366520156879835464318247311097566087414020118289096387789902918596583133746701166799910465274227193837531654355160212293565975234276664332252400653585834875195581685198273605949199808325493873123056509020327555564588450427083693090977196378723495418095560130921933114326227698008466096201006627338208939420488637906183812477255641807008332562181549865761733938504918362626417278356850293189205606771058195757014692438158284553273661974087652765217259868968700141778964746086621930810976872574290256254724436785100403409378742966828314147903848429534636565512354936900769329401975663800578116232923382867061257223462743643157152467925722369366693292836849349646532843467195380296096771446810142991523907111716914997818798184272099159262631820823756429031532052554452970824416210232358025258836639066417040712057490982156261800977282646191273906945203722886297356277303038495149957141434231365765925239541549848634931970265636708658322051056969963903405300374060483429055690800901717639475531786220427863870313073729699596807804559211289779266643373751233779465586085661920632929313960100518850600907312327077306416104227404074497389885979302785898437886558783987719787128865618976770583336738798904139233267188522174510628160045326150290718007266945943228838063227343425257597632438978034269928903047011271534868282178393479565873969300541630923293955832665301773736717055793746721827918168533099881461207126373839995647314945310186165784833736103469284806818649706358886794734816703350569749450148786194700737119593321762519902788340068648340798429378120125999360143104430615809976654879841127491062236394399660671584265765720229736492625059307117625943754169785850842030771904636287561668728128403244133684814322421462507900526324305568852405005536258550670610250896820940101121030910945500265499073938107114031137487272160128112110659696151183222148187050326187073961526238708131671891229801379189887808184618954581132483800915787375866346692530908123948207059743136554759908116770460220665688747929906818677979603435927139296177413034274302098658250030259103017128175477763291382006421005821264974902283744974168756736268388308373081716355311407205801128523190927997274393553155155049946735839404048827858391709999830394002123826739925194004899882216947797416845983366706594163994300878509580673496574902615420511330514424689829358537377172054113900416168224705236455562815674661700642043212847098025897672934513216243514864927302425768562607619914253832539703735437330011333378911164540459558902370089846410931664182426749814042375929669695623335555369182266593599036646517199846171260368447990318010153990803481171324689334073182114963674636976929062536297327264443988217872294203280541560791211914347314053690553940471794622881492282639918433731353649889170662432593712020930250394248438806250872805727047538800477809911950722888572930927312313200392750257502686018452048849609007313482195939240315818326905983143965542886052336422811956646634422231996221128696488147432456440165387789874243045801090091776869558164321587463912807332859561223339021774950480540982749919615985592892959848305564951969422357377903783507412068228001679974787247535154056719759539331446741727369343871617766450249305545255063000448588759112697635473547427164824711399951745008154813587143731284829136687680712678600093543268611479726652522572233825291864777443115201572110018867192193681816608775887675208647974164348716354896629279344428213645533308493640941579738622817411773539942381718831337562004984038005422620528346756878052042190547660908787949444469471617294659119379545352057514824763979342932894496738873967575858940755942174823841028428953775800749515661101044939394946024798127480041950787147146716128772315519819904736680031285994255680991848344145303428219858054461089580536347503571057190440752383546919266995083466722845353956012558410336922893519140400701117454587264974569249490927517758117346851031545028456969025164681572510381805759261590803739411883106870475053148165234724381703270844825146796875775586237892144654479414658040890530864638618007550474437987693161761109210426205138439585325957019621424102140472214342682156382556880036810024844619707698142182992712076762042067920158398922626356727353588014082378797980085825707093547342384348424198925163005358190721118738942419124279025365290631486174839297304082645810520487802979369210103617121154091951808476232824574522142718375024668923805648443393029544488266807357998074194792199937637125375384773455215790758442023154532797538792006495514847195069321518723356335902700264403681439546365588923355047576523689275213801298859002061503939753647598312552794399751270081425208936298901590750603626839838500265229104080997448862633024126487627579390600846618257769755656555317590510737361510366378728881046638357535173369970740279655512324485604250238948365302999949471851809942498592695961371551106169036785623393316331617233587080170016093251293800081659632161017497070906045679701327848276816334084646952980737115832546825866310906867931589456127155290633118141318936392025670726945307228329862034261901149350486726702629744801894575032041959407561422055293379260028496054869995743557463731642426806298755370840135569119029957562293355475995288249340657183199721923005052286006012192344941000813632515719681808236872123762182905878470596820842902236292124467478545284058759477322246065510492837017338904674142413378366861997995078135000793210263938968596973537015755934319935718205573671456907008255004199004580598889014026455187272401110016088275343882892098080734141083073834577792178307968471343769510132795272343465118235256470765060953490355826996671083967952616334470045161819042548202594929919432994729520238561068932320216622859732838844781182718889733025675345074887502288473593610683919835713409882815682318745066965506280957393142419470170616846049909568373033565733262999063998021628499096680462615940816908958496238500104428811943938816773307598774410814552028949309020110492663473836323438683453486735266002059035132303814021326869694543559221396828711527460952438311649290607806075413205366481597086958296960501092563534354043006306761321894002220784788386080847553900430717024272353448406933336780984267434251390475098961595958106144423377220304173341555885131099257629930110468416358522656210055575951154799873793446095419572250766762962741223020382948488827780610660005863882805546997647272368596112595042351136563195970671357350502479547582360238071598448090634370770032078923285079708359576340517297856654163020852417428967729155364082051763936880187514822530366825123923398433328239259656789557597595494215698677043125741455175886220126901476220282978729727839374874590618640875697016500136926206215064453245119166487363771258875405693752681576113421181793251670718079074557286640017696605543371786008781281361321412977267002389009141146799016661564664072319252161368148637236526980920775948975449121458821909703503251841516267294085860597559898324702747845647251720013048166772459440586643138037971911384533642374800610190753518332883469416440809613655197840384124188556003385523745249533704594846052366683030777173738809638467627770413439355361107333024060652519625090911817426713862428030047515080637250901825833156651164325318217684860345661890004358823712407796647359679014873480285601018143344215752733403411928648364367208813062124416196133082120054182631018699416785181473855261811770015873463019909345267758639809579647561251043031475637232955339365019126562070966475986105846934991688654865786001895701529470837301766346658372586726635214674598653503257572637509658808957029103711670313119872033331328710991344761340840746789159166382591248910625719360724366517577830179054305605427819529790438408704232296352495381654831723983544364892225029814567050319201789747647831776039316701471042165404731528519834353463613178735501300081416668954425246849284828533839451561521903652773481713707630651831852342943174509840142918672809938713582793326102626588159076528317955188880082968835418455807985025199193183403258503499705670755742865965230651138022307280790562851899623300569107991483919255080351790146697676723132108600177814983673041704095697682435828566222502571939248200927686194954406237088982955980469278401872625331579011447187393576349201520824227998068560392071612327450542198601951718626144379102352921975408378336094465252548397314346794919479872772415285356546413341748801286780333422972031960510166755866995927310475134101429916463463788767566246963611003257780448834282789102928134276408356938554862491475006487788331887296950406366517429355594154507871333697277277848963242138217451478000614615616451275144632410389195499245612871662767212232157978134793753158961677443962412581018579893666181846392849603602272306560574468717076375657901095623428296190864877531036397576897964318372557153792332080013564895317475550922144609159555222552567806836440953229541104759561011174785148840010519995487568674994967059827064712370947604189719019365267657955448522771967770793775980681569200099246476253362282526456629620376355983693106310742159286602599601794903592485403807751191929105415276009218353648057916873823334059052029235617003600771959210877173525639977043917012227530480616023310824489526996038768739105380141270956713495465278733476075291825403405087467092177395332700978456356868518086295858415187169564369611763462659398213099396559734563335119372666347015507028966572935776054231744307003850918925504305678811511040355486169615142246384292448802746068756663944261043859458933103774598835686169316548407668109501005864733901865801861512123789741210085385780854008635208247252803149107765781527893715326742964442658522347896556010443433054265693386139309841865872787233080832462611164278087840689993388366971227066154945128239180492892812253049970364686718019754117079320416976395230475989202023047453496500191982938281789755027383084803304221929591075713737809007859478017541431957460257909922801751162700741264835481099452075388807604572618731501495482887953914449903912351680952205675776994085597671786198208717681734064853268998436727793387589725526995295095092927761733780364165666181115371247746772733217624546885801584031474806353754033762754438139811077288007216369073942823923483478551197867833653220174606830587891929554971089207938689071820656782830421659949616073992927843796785212771202696219221742142397335706815433621075435131774515688841093829104904573118207531733270360716417762112249659744073125952644640092177144216740435173129872850373053672178087925752647487484219398501870824790618924258734066064946041178812432004068863412702801380523714867822601546348173595916625632261824438007942919642002561318622161462373695102608883771157984999478171255145016875097806092404656257890951096044240439028908420792720179143771300743262901892496037162248326585726149068372300460418250290823832657451760676255771276213046795460458048585005795565333112928662734750077942256088389285770526881458325624074399051411205273276339178068543844959487755065256210075506146829643981804676464146754301195819490341791608456214564525990709164693752522135553639284795265975918222597802207473959376408132833259518901921143538162076687363716654992485003269692683550172969248949280801990587671390820625269522729638751333174287221052440021415856725078140314703226285789496918649467175373338277085114999644017003889792914403957191271728472192062593743953122361690893156438219579207663020931203968768547287572713558402171983108879678437612550435331470672597047357200262828400003369679348327720276662895871785408609322319739250822036759539346956578025798907959496475204361722868593515602649457367408574319564072088487993074070618688024407718169587278706574974991004066701925188690269280646911952394404034229381021397843092921916357627603913878803663336154705149557916204393280736578787948651502952751445525986798744684840460706450361379251078312616924461635571481917709051000857354550225948468316293583512508794117330067007486982283566682893817712387853228328374447339008058109209453591269535368282077860450623433358971941883362392048229849619338762378705438791633466327474737808363913197862781905493114957380872379556733698142253252286983038517578944010271077962000451380243688802331297181084886623849233252080266661044044378350507242577969300877160788264831832747726853419857952633238663405850808693159319998149717739469855258476724813203751226656213633626306010252114919010217224500065273325548049702787478748582762747096694450840177665977514090523467024230289687104686045185963267932105679379812277922988305119065793992763564483444470534359778700766634016984791123163231566827480587138560852069025210016228996685083268181246492026806019019375896316121585449443952363124816444363155907849082079013602907187881139183924580067167183600689123751698961541841296122269170850149899529910989470093547625135701310757348629867557011142897337053842099488788101833141634214586553519621879798855398482918823317365844430355033745022583537091669185044079152155474077838988601071841915114378972076361725436901109579868233022582151854919241442421483536162352420955001611486830391822742662091783515175529054872160230000399762226071922073533634168722174573793739236274835601855021478286626916642460161296648751692034976117483534522783573289390208414198560579438436666932123784385105221982066723402459165537393957783098839391727423408442599873741057771970056887723535173039044346809871542175807178775028170014417636338516034509758925373178555313107409714888400310846291588338378214767743389354153543553861638768784291046818996774049039569241623943902519038530365380889742359513092335920767550851412686005904797899063833779090053692496594844970938185645772882926676909698045368463529861927676079856178156504292651513865527086150928065388883603937488156588567693931977404217068750653347068113538899957475352175163328129908066798397359287635080844761552656943912958954694080032821569114110589507921345423146907551127418052214808752506111065299301089923429075706697129897097957201964575239750766546770650835528487456110903921084462557131590722725149785116107510212040771981450953311239583466139168263567567559500836492304869577935145153224176446083915853757217078758177007795318646647912759878401558851493638913940827729921785819363657648494585666469098717602557758491494824956887513673182574553799440982676245412396317114868310374965141394136214608992788228935184639296279128679707499450806085147194199457976152789244494670088950824890429702423781608483053262550574160670459488390637113521699519523256936749215789571976414229226071835373167169290834567640216236508086265998160053167866251582785757433830863896342061930846184089232220904617090227349369337255408587872769197800433519937657825285097599909332643932040300956750590551081197890414138910542139085250203764368813350870306554276723119926065339699080514671135515911099472076265147510804487340506273347143470193434587489521700375018142724371758678425046101643736495555997155174995822273143174386183285897057848461493903112797635256714003044479294981152284028593876429561935438753555237963144342894903116400934943173440569152111140079630267262326304192070180203221296541625677578557044263599702795506216854450233296002567985650651863365859534215536227888039887650057321683408291495308740905845411263788569082972524243464488923336111174670672796679060627396338837270230587211497664370122240299036159431381243639303500960363912987755029220144325298863696693780067334797859016057506509180054707954360945719217580016543071913609611833019251094795143396183830711186238019102312269639675145968183179996137530121996087565171677042241956229141810962701233142445407830212927787277785173009908245378083113490575882201318078369515069583114528844316914337033445419103667000364999521361787589793546384100916457266346782300544451911030975717888349448741666868682555392250550983351588357911867663064785220236755623472900671283648333424212321466006984249292838178936122491418268361320036910317555342457431662082026609066296332839764281398711894587041609152684418397033362966807258199767614610405690265900129320911254140872164775439467974002885277312124463859566845035613523066489978781138759583974556998836428615361209439700977871057948875891444801909575527282830211505950073456312378809043913132456572478342667951772748879556126211781200112260184818365958866135038238059203341602950409196021959952094179768104434546345965561808790695474572573347308627387118542812121852535324312786388555104504373858578106705573078012452735466286376885163508985190967134101955870691732901921322564838656890222664203723937023538601510466763357415425479571898266528873263068658606451524569831272680114463729185927836089926293112917454381656194306424030232963941352142817425223316796149919413158700681160878433260766224832747758248928109614585628471052258714707986108858493837692272667778635382687612896500026403897316293733331826874649745144427090774288172645672120215780285132606402854181639255564731548170370667272843504898592633688405191431188413185154280079441461592658808007127104537176469969455024514809820642078833148197915372845833567892707570594853590082526589724100179841805696936668177923496774628852805624353160017248715467336088973937927510143399359922035179356572841069975269739182876356291467318012504234095962631425420169021763277435023966456604013544521942737625698012490003129164839914461261489885860602490405419582072573141131819464801401607940322781716928093279275962993951823042222319107457545636126601048834087440233706567079752080365898533539420323847894805427652900006863387307169290548819063014900860914473805932858702481043630383226306610185407430379348810690282314565650904376862908727760694779449979791517980520980621079773376827192729180071218494974710109620354365189916562564243084756032816632273514273071812013204470773356121097652256039792130724418496252369028728762052228005252451293522734346010384868649295103127680621681462440729537378174377072328197841546398880163752725461751547297317119957981032423564208463842650141051406113103533453023296863779541280870774161361772793583705271512554068244745263471144857575817920193933061420799982381111237436439875481081952530439992188045991811960158138121818951614892975520620382505374458539587543844426139036073929489293463075906779699879569479556995407792919729234379396122954958504631465301717705462674166576693144901861280295169564372669104942782189648869154087311252181104270130513497465587511251343861869709633412887319887548989760055974982093695350508152849313639714273129665888117445124601420874643346928873114160633011211277155543918759358460114322629186426638465036312464333602463737239662406641547593810926255896813377007497381490620769789799008757602665616246001565632178266996205447882232826547107657504369550477495763280722960968792464922691021777100328089598659341677033693296479543869124395550731262571774362543661563899866915755471984427998572879465159894122394348432045343602899663917969959851588901563146435810326132985711472314971140754417287052375687018019877518329666245695529974786505451668402142821078045249122266720493333126809828161578230443969435817626399961713317768832004213029254601506701638322661767734160174372652297946368838463526643398563418633547404419654851530674438480477446069453711261391976364856224802628546582624572163701929810937972829925128162862509317306333493291219324818484533920065987563259275818327357720548195830969127326820279229683904578553067099788749329714621137227765511264917964557822370314608603576545884877464535345331627622135059959111943216886949228764681306994537362530942268817688548790701316999654475401983309533622655922454608814862034674620621062469235130516168177322393819653076203124689410339285117709512442767025559796308589307974854348141150828048787272650959035446757503873323654996824945081593602774509960168276346429584610937307628197896558031831415212656416392042043510036590318798501897860395433267557099841354912534463167088625119535001089556958686951861046953910073555969362953770776803625624247186086867007716182001038491707766933289430348485005863081208802265478681948113364793212590390016880875051749195324575803277815218805083170735092209845179327400178860792565814396488866917375481406566890413344632401064159300395678681866741445415313115843071284943631760694662434584760510363677596907408239010356807182203374683766773937697792084995024099739057355697001308192669546627610211240799936807058210778967748240552681337672980621490528974910482928077782916937053631692439701560791375440958587144187232538622348625101783500579070193644619635909746863322586313776550780449728861447416299924544307192277832514047074517861937213693206691138085727699759740996554378289041871680722644993274497811463855858201083807172615733014354533134016029375819700126555409629145419567512365999129077784243097230260473617108531411626202470413010639437646309053513003779600537681979990961548681597972279734762436849747270817931942299146657176773356468052233846692253859964839368883741938773645221815675791874643869970091441135528386446157127592481354511750436273937886102149114401295635474823179911279220187056357961362556071842895390994599065931266578949275626478992258239366985902955717175137773791437328087094466517011487474025964220014851266817809027672972294113295545497765305446227490389773032815704174606592862845895067598468980878087776742730283137109543217397695716448197022165849184722997821973746543498676300717219456925925007621993973090752104102879252907411444591732031101793695195318272276275643992447783989981954831659958017217671144812413100864891045521618252503475230609679577567414247600734349198754080663366972629348875365332021791426299481246889368081266030045628533482965126272451344209248299171526318077455857439183991972962339147198171824206200007438504812164399472813504949073062966240934178789192325443498323854585395223683291406977852822829379572767580096924278262134997593827444626665918132465162397246688287676824798435214568859955770176153148791219021295726576376347050570759615110903123791928360413020819492784278642624793931823173868387494288292122185116665560174321247735309223938206437730058196716989986320451771966113277257760633307072148359356190455051296588236332349436175104477960338684201316709065136683658402992504294610422457713742917679317516829686560176354734161141791342978350416182901204359560267286555370363369683931207995829264950083934375870489950461060147817624526735929866673996403820635769430291858999451244689155657160546848214660584358376517537305445537089161709623650349949530305405525739984456904261722083428322873832248277414738437096501461243135857518125941700974772187948887582553381919422683162001847379222716279052347834382495670139751032088415089202439976089667035273355420172580911569011851500799630155704847427290206024875196602965345441653607672237807712244517592167152041847462502353998629648079602922936784830050095338766091785175060781168927560022272208134503765961412509312463320502028516521774875076671433585353724869595239418645596977440928724581295693220602452509666359085906990313195930510715578626262037530204284938668169545435148040357975000305852482765698138471319654452956879641426495453134533515933332102142279484749366392742259380042214194997011796896605412495732539032126215825842222832517463478634577188987961885121302015739788067631469129844529186499254282349233225834119708962111596206535138679670590900528936828298921380321878946631682462366123974142233758973007330441737156900745459644240065655130487262595947674824353590532577400752831741354093991813020278669304410061892066177436977543654058675405069649171009447331006639969294106485884995329248738052412916063273997007799855011955191613959075311205549336774021834670578938981322555167456995129915244500545131521062756769329928565364195741608799482860220600809860157050448484990950378017356417356990983851156292586486713056106526374608355564391717183229263054194882669771988611803263178927686378102828047619747045192953688499364633709272468799701008564801549696035848045062841216860321649106948777767305808967153198537869604359575645626372936195477577752782935995148538501330389736863639419728904023436796327625338888706817886252641056991423774847761544720152268950748476537283834047644035787637610988834439859041541835107567811355271834552888918732836021039852751462167601799492590039578484102228031459255111976718683638897947426792405611495661325747346650407391379588223745786609053931688476291015780926748782406681096067949026030573353297749929403396191254318662548877479973817882210700430335269137356268913770642035014867263851606432480830281268806279707127484007007928831754017786618742370450346425997032918423682781225452737120383810342671984726392910293548913924791442738830229798611724391351992202601309982452448995428215596334453584932530985989876628829690917317874358882730902415673787959356678289544169168690549156028943570217601254745743042992472978803997928740893610040405829213581588127084886861871881296422982234436068015553566772459271149057438211863156876318019271535549669227560727095003562202572034534408337596562662292539138588317908141848237987258753944872273288629839572772239143951745448745310801870011189059288294194841564228082662305054078253919146088632632954985252392816326371710956160395235670998743290112035179294908517347902263736646926269282979184490358185418199947614738870354043865011444842102057851139900746372299856181810128945839678866536896124622702107035406784989478577733898422441394881491930985129609777124641448309872198773844511513994520073450924218078232831996690289278241881324120265378994892297422301236510549207295492413289000733779109148913245765632669522176907839858855219299312334031946341523301957138593330927506139232514522419580951478494181772892162729601486381999623063489446322789729771641630063011985503882336363132874860762060749640520395534924867995907726525567002668604230182036438984217757079151395370576221131597896615626549908016758287030305693203774138742555480369333864289250885104341004874843883756110671097438687700687884431582376121954863247615132884127723121198126743637585163618615951824003888655168778702026687595112379456639794214634366188997823185349345868361490399963096796740427320896862122595883485878188891815823879400709960217217613601279891877201341141364553099269749523065917235815619798546483570381142961372687613657453290007388355076407909828230828196593611421595213861438204949488618844187933842593764213589222220331873075288127853401379850732061443308050139282915047534239565445847658542525093840918630669672286101897110490653009572424004736133840071581698921274899893156100088520834036150562023959055799079414962086575760559689935832835131724118622358208238406040780768564111090181418561902792468434033720019458324258624059206231677159225482934107061764355229295912252830433217150886662448415097281757317209285432202261340949776019735151179333713316040887380113699039791345770897498920317818754336393470334834733878444947947296775670328468600191542049441645996920270487814324307479384753476373698822424860208176413289159123091771781012184524172687622032905737882262888127164115194154751228964388817575378950649724759838514077992600570928386338859313423912638675259756608778614476732653660963558692166426693576011438992527134582368729101537192712566454540761928033377093078774312403956183244726640397852944052502204059590829301403427272657425414593778512665306166744940552081480059141327208441959824581358637130993749196516126319779411537590320482614711869885958382653612550807645322629432637433290218464064815676921347141172230745350038642985866622067106158178905875176829047176193334143231902877590751704051499517250124641034969652922767993325812039957619982101752300319378829202597323703860925825949900802404843646119608521629978175871854030539548192654642177920180901402364816189401053236435675676471453698084079226920894513990718631348867671228934035534531857551060642341345179376541661547685403299350089089098458953974684510266139121516905488204033716587700859975845691510903454073060413694743682093449138125592274684225642734527737658135756510079266947139832305289079206850903948814134754624291502470376789319584159713682575512538453627309076621425579378441685382230014225071701571213794936607364525414523591683786225458394100804456979299485973391861308370507503834169545835678331079721998327203617718671564753588964975544048122972717474166859197526245871380430184327617319999229766494419967367136015570033922768980499500031036116254574780822530057612973447605617235917286617268960781335642123693583581223139680375526899229915237179603277862812027502581050071657809297844837803714832387810862731093692573514854248332933327667434078778627990443777323786010124281842088889854307111945534525677284099795604421823541494132302011574926493683599866368653919361264882490559141274761958691534526840170546910074701193400188994880121683248572341679195209971172917779789553029781230066594593236801332969928913098785600969631892922219882548435702735668585459248218762171601832841768362543851201274657070770839773706822220312924585388208638858739187312092583440787086803166647174880273386134421729831235249469987463427486837413026712311149285039614931849282621553288307504253718286184063539156312154606304932811533378814704379014623078637130328409461165734200399637016744482987342320321365900981591351525521007148203885264314722196596279035856825547694515244459272750414148027106311571394078123649365598295498686647696014709017658400173622162211618220606108261904844143012179931862391759596265963553811889457348302451059899763874104299287242165608719088570066970287380174502925079334943772157822239420503632307303302312925164252693043117429614170077174059294866772095151045981897749317908663391715302631875729788974110259674836581454030949745821319036287306982897182484764320090282860601805409832330274852518833868463848172645879799987623392447486296142787933028510280107611434914753213219672959739271166073833652476579818129660110390018485248042584411420109030322447135741508017713530596157393603326878178935339820164592401755121457104377968878227413518747579303781311232984742517943440508925764831609510470891366718727009641026334748399532657147269965235736570894984014711490809240422834040570985597888852147001547761178364869753439750881434820456857843557328216933569627541262130545490842266722182468712829992369602660366165907181178468929875564376969654860396822676928722222699354429390380624465224626313572898728340132521535834000574030610720713529582879639986666312703171275565452295268064693690940099948837321231598615105824550586133047582258350198958228432637213557645471247497439342744627023211104863136033022368396083155564101240801730405831927387950744881631619647571607345392107744598481480192072348383001664534843956068596966540355662036861867143266908590573132473582670775488959729042505558912464743412804841842882190877164338706320277863190438199756119383981408543686978274075597104667981753297773208007948889552022013300674640503778108049050843978050968417948162599771504912428999601404647266660520547052020902757548334044547156785876026106421824485862604003071742086372191115257202733162660413233935196217009702656293030824241158398236001028716054909012249737809683049968328809723662874126666899137872834447532556986930700352493224701716613773355248866754946094105888492886918124126707641805962680299666064322909211269456350793305400924638665680273854082187443471013578227982725795275484048760434846361055272787889782483768525905042429261292553298995360025535643236283585775381709555632869367615037165456953374015780241629680261059537752054971183645717904311516898435858690490483284849075109293531055886785415249160015235024388932827881103279936418922537428036423497667350217091945089134654413973077700045080221529674613814675195421055147206565980538598714083715847259751132764219151011272071070540872586894917756506148464573415819463120153181901517161523830569956840995445355402895175718227937428703395858031543370806965732056864267477477023725101979222614757525366888202520143364895149881430895445622119688335761506548993826025769625083939265619268628774597027181078178061467563650639427023047193213455185231175720038161076749914247600919631866610484724277890577757919856147394003036581149678601712641661503766302283511998901901390616164870078441619054385513945703249219934222785613442725786829288092428966745490720860259749470018350771530092107498888938513422324098073957846812788760829196126281185671129124451730858521353650609084895335904940999172232568099028236881630800493705114333784785661111653087417604761103414581267067931086702805188735925300048508055699670194104110714967843326930185320414411704944366251337528379492316246634470344803580924169082633105191322482749558053263322245613401104036966536392518112918108601719998358717187428518625428735615307237091315431502770657729229378440024859322398622086754435343802484501250666824334516890295382202101868387144567495133600349229704541182001147168359875772385757695237143096053760304970209531538386374233978075438296880427325431914545338937529991633058071401581775570644898442681634928477413272755994175572939494215707629426955790743236899432875821049093934099383830766713288848469252974820518121944528936578014769016294504846685759963635843709974157488613720641953702668683604666796251498424323296139845197473547031709804395243644688921199652502542580593646906867190724750653763755248817816588035611756262720818025195687900290535679225226529271006652002904423739347932221706008152629980451631544453954033940671637567435833328870549782412251821696666111101233275419837885719982518341314530269507357653595672145005890390431046985604812751659041827965842702900773094472012787548758046319669737024718257221460207026994040583520420982712955490008384943660828245307565348762731443087105131291194233399947564132250498456259575704507889764547947079406858824744432573357746313264100142373767331538853874231544067695409671756492644691430239318319435352164767049189632075325219151822757448467862632495545881985666362768720317156708704480689781023612059255135477176723795423822538610471651506467913762789286265884667503804265076090351241740277923081293362117042305027203106013393570752678210483522241145125243528540766594450885878461823347845497704955362350792359330676911586661266005639660407831137270666671384854485529369866028630446060267255651000284302578198210263718014532240588067554283090077802363383416255906490697405107335318809556701986330479546371614993130917642135115088639143960531473047719291892020167210776675231647247781717775728545050000642702708617492537164222044638271140875635914108306575676739553875568539013912536925119807420481998687622649964254837775940224641234166845297266747378283348771844054230681938328233101183230768679786712071793732997121620024201814230607539820895528414942401574916316502009641183050563914126440872069553021534797512255161971075708908108549544254566083077646629903454641842646294400267773491946337206398220979314347798050355691455421988893393709086893152267797290144383019640706234578448013446065369932385031356895606328098813952991795505712556642142115598521215860751444570373698481744823804421056788827272096091926689643125090023424527741218145297143571235314746341321049443068751917702109675210532573314306036558877079143027515997846205343485223772978750170757308749459369969829189040193242764276274397718708060057556737955468328273582015904689611806635814757399207412590977393726620212213717314633440796186159839954985185800888496161571672814993395206667165449700577517098755546737426330108991393612210957197101023053686785800100602424167682182469564814202563573371933180272220004181766802978387509660306178461086337192595784525084473748848128058321927976007091633030030619457371022931376472092980840749142140920269127638672640602056921543780042223062659496649894840413140382111321108722863771506658804501136504417319466178414334416175045650621517257110748191431750013549638900818930608004696413587883470438269240337625642417614820362838749302553857628828624156387015990558841119548821549300176281311042741186936054489144508779375247459328896291427605305033780692948240170533602593069990768766977457389364937640843587386557131947186519376085668078221950688826693439826943669152433721313052756483029809439055426207745870100007307011768546934529862924751305558993885266804981031203526005620877800773514090329417290620736226839015067296404444764767770310512513533400617124823260619393891167682227953417491308646435609996069079206845239302232106119013581254861494386647621770863458933374346444140795842813510516519612004743255263343751180146988464162206957915526158135130693616371372836184349343322572497592418759162543069525228732554087001489902863503917866987884260292704021804914196226632555632322352137039603795416953955688669491085687864664172990446590486370736511058490331556986101712305543074457706641753019575078049862711542799405158134218509227006100831159184617916605809727733281025710942050613966591243079494960433360090627953299722015695861271645005452142760006235090697325221060413822830607419357610739829192831758262614468077650376831034076331705295570594399120301394562373205897800249146032765583212288494729045677434063831154858872396742727686384034463098489766505127107880329084097059377575214619575156229922307201515900393969273474884157362860148742217125119669304851452903218577299253013544947189454890360940567998369660296269139862719947215179784843195647729445349183585905883433282559280702481528955060749114405550724589711071809479475702360704522631952601868047280397077147691791396155168310561038022186181210829995987916644747068889219690222439698505748991554187318491915747481163463823820775873420524778190296457898997274874361789239253483245508444577082719690208230636594995966219169807109817319183500804378576310605721484107222451500848249890576583233432615545508802916976505284074354924484611379894404891606445268420662559648415721287367297753644442046226572114829174051463762153845746708730174997529755275759279112829536274377807949921315788553198591152197261176708699338048693949983396173652390617411187851727618005077617893332397434036811489196746853515393844952226737562367716507037358515315791599337983606559106445829712290844990933126350595107179531086342189742270377060221930062243098999669359064439160910700344669678407107462850709076705043166529413650347096632621726817104037927715103556836522801127826074116864511222601317530500964302680519942951765901013360355542916928293334031567705777464704287418825475931208786621179419368217192908361908534884796990737867400828240270340549866691944941415113976473358769647892240754732183169239151983058070956859511738205919196756349398509357346309913612680260174557509150981168430704914793253555065173978153015956837226682403424065377851538350204673124766725063513040273294367501405863745467230329911061777903067956368752826042837897458659988325089243646619350547718945349866843059985234930544549750976280531557208040680887661942500238142074576235108236557087573955763303854115589510565933629786525475519262864964322085482920119299776677805281178096129673221861158400544905535620949016059722571731961054515071288738573448791980220706403733828206111237359701529545643902877415522407748737618724011773298362177230880057720288103435065100180144767889070666742053359885002788508039012727353427955704022921760352854861792365689225162376982286317686133030738102171259685814729007450014496154599830286919796923458953628854320495995523824089151534200396487467018810937570014555710572236120161212016419032917484000483244058563397487270358285338913826337153692587102022597684105869113835855626154392438830359088680572059663452968496909872377516332677042917633712723239999313808145470124460950973343199135269634922291574724307760611714926195427002367375222472425323235994409738953620004946043393418063400823894061643200854125974920783488259587377817670301187368270503680944758054772890575049153223863686073790510029586166205254445929985061987232648235844993772623350091165142850495868942550937026215339604396722905998982749089639560643583106310962446461370446705174442284742141375726653040420967974369037265939427432893845889285697246645959393355509065937308661705832406312463927783714685423708840396226581768598965412423808086411486482806871886072790129985493562505875189681729545963725995095074616664141260525863839376198025357324232397706778403779653512488002867008003986155965243244814085654090656153392916253615605372484984995963214382115817392047872894401857250529135802803615773276598748744245003151613480821575966951065850012835198271610715152271034023530755308876369683513441129883424761802853292561034303882638609834603467720324319800748670443379882593288587277609488243081672215576099007753242894021459343279142510971130934847772786015625943276625568715865384276252437832450786475994865729850330078652425552618571577217972857989987336378706897061790204666241974010413160366896347420110648276799281797540161834070608205894795149704005027243038049567042234983427228255343335962268444138124836079385128510400965121748065588274687144787073171784371125573014023661189341365682357397980955873818726635862963689435657188866117265458054485718819603461533149675384095768628657754001566222265027459356443317352290035741436749461609292300071672082524874762399579272911588763779748098958500798588002325303660846266232668588584351675008490158410038058314565093293105515001054640563801768334420221709831672653115978821747233838862705182242531855379449919440892556028955517197221689174235498046586258294447644032830886905067597151264826321543709063031425779180309599837601107086842978135029399949155317348675784379922801895073138274662655955155181548439487976960748992332825765762814486590545510924443583137165890815294638459520918832375657809579562121736870573648685562518067536276094554338411614526462238913326161345818198191508409378633915885784175388748777562712752694034370689439337025827568107213394353855436196096344848970506343069279126265000443474555698248442318641270680812679741737953156859718083911595206322586376222739217277433419023289560609805498463661825763992785281668435015732653031386401464047364077745490900575068217549523921701748957747751427201843903341800033262431319127847895786418878565883417042914271984663801865305039047057158080130426829010337846120180140069615433674160707436267216009379884346556162556722431681511575792427125827192838002023531640834809481984857767772933755011386706372605949472603563617956719786343799939092854265317911274707834782364342191175293544642983363743779008274677513386394737078516831627825275427783358686436100992898013743671114640710657287536455206586549164936517547439307189974052659601848886685636587193679858792509369229962726037002287900326755057660620379568059797630899561587007676468590756697629376831107941792391551468053970686142086615172172092900836647683560783013982736035330414957730597198687794503759067420446492538445126850684405081068738497326122287988697191228293494509751262571655550387315525289072165266314768931647565937986275699888428947943271604498033066637847911393332965129102394795853352453211689464267644104669585660726377684357294161776799804008551924794145585995405869374827500472827737626991616761999954545159801968026908693667243759626282631058334759325255412706986445344174338143756006719947974545845650686410603017247455142110869779290795216529075667003020519246336683054705390795680321478382387660558726493249134442024533994609262842033103421335373181363406709528634107914675368675243907441516976850952514085932998874940037476321668691119984191619451334116600124281694548364082080461564365355950238055846188018287224528128130364371128248899285370030926122016227703775780070232578100796390927247777609568476847194360250632753883047479813595343076039103068518816421162719462091756183417404384604018663928224328310020503259559914835395716915366755768808090268462651009584880914593418209435612560480571958790004867142581467812656094193447092228260315605390711663493074029493642032374680235740033833404193597158511049842915403761293024805162668728914083052097387610785168948267680528344398851829063433813639108070246935491013468622081288709895605114197306543102037715354298147772397087444953472466080672999726323453152977471961122930386667042202408835200306205821687548571493775733233988403736904568938188299756776650311706486487803910106322724787981578975343529054649809997823746109960483954427331328442794214354730465890123988097222790212895399787722895438799196714630664474762383525747117368445484817898435800530135431374425516745787334071009244317421540649791969950117231565222066042235053118501270014953298694675898216007128683101673887716214934099651120640481540774850759196694262683059693974811778664954470927675623065203097072440935386727562940476961009800744051260954832837552561121039526568345815905043408491624409877239206618678909661150880891255706105628812306803726763128847495053967989959399445247222637181113831313678348536548405889317213884645377335008302731254200277403939210532638874534560365130682382977196812858510163186675613247885156438771367401434254441710216547682204111274138852458759131451133866936732145906728959453846651913581780160996336339715771017430275058051886704741592993270201707909309292127354673276524034420047678197780370737093635988520237608649343134005179057561045740459166349413932456512021973253601106707354526457822793793018808754026805802282314921536677963520479246095502467734565584399692931089009411277101239930866944665200545702668150509667308737551236830734884173296695038369234870766809606273070873117038218125062663264516764514896144269264856360663781444183264515574894976926975307785150733958573289617420012996833472248024982447144680841043390037932749472124330916551685665742684687141823916238441776665750613087812550814185332629357423412087849995629169240358182447365062707298720028748002687024126907066169771831625465543321425294388004036220024937200209727954648698282212047954642623946649850548426410769543329320220747278949260068114146615882978328202395140603478034206575974295095187004959397719923257580281898430474174758648623863250786767131161035526488434456676653207432106273553043909753723252293416039140579099653556600833532737514202221308409943960546879293744126642326969472408053450613996890752203117869006721529229848640448381807711123685576616763257938970502213449677885453434953225014709470601284589146888059715467985223879453573361302094142285985258746738641049931785168821650373770758767574914529612540168350962997301096910216427553376561504965585998782343570706233494456963607842755905094977179252642268523491112303566966372293544743770046761970303443777449469896113355949990539093149851487336616746546834469317233042706450348571713072694824224738374930663178052751476457854414463145926765469525485749995065670138743295851632279970449234007541202383045722546827084071761678171637010986912098914742902646128572683680180380938936036922103064886476934302720740371031999914699167215352824699955286151027885770068785725075821241213411048435872194327910543241640708198813190943790883415044876316977333975957785292819718906476880277409665935367504952265859992116394742469661531953255917640119009214646908881887672114154822259283378810690589052085502104932058504326262408350746311153052370997682419219499007751756015810128092128063204320725420445429529469663556822833067770831081506905823774925881719233162916373578614761207527541928054757266163274374880214988746063525106943196123384990336970406742637367306749802478409229016822692929127968049096975142721651483857524368240719101691540880652713718362963649195505666412667002572167274472938499901435261507518636449315667539042926972521614817287549997879795350302099076129453533596911845891187105320178095692437173151308073782611678563102872019391128867911640701316890483693682039887666236908027930949952463012599149039492414499006444421560149345592608909662353427411026404251420806698756081363570981962997160371606228410152584180551567079759804984403964922325522521157462602394815181359904358964918268764127884858002117124166108824827193565229265495025487399109712919214582314297259964172025933532328499543994948579423039388847591250371501354374212333496281682995373400773935751153675549857041106672291958217206951821472461587896376561283895796336308807786488884158647888096917856919738020891318556279300721708115200436361916673815314303829229160435618355010037988277889172781688348395004750754772992595177502617838712404782511118200090993336427567735028378402896395186894952943790131254594445350659633907107810870229429938445643769710513228803312014988343886838076332177481877412192537674109024780890421663359656329871130637317969326801378607587203805374743112615220303362653714957185322852086991088996685461017660793295686736966163878170929517241150500894483411763776542975222994952353157737802866767582461676083385316059496229144206498732293354463449646273550401714542888138019295623824656577776107002724083900266458618528019602899396593914520159944344616819145094886771046774696592909407767084381944154809444196928920983314790767402950090903908769793157240147614407147596172573149772309363425473594840844037708861989515965780025950664706949686175023506560957521187038003264260603684413446173905183757891625032646991352177284627094972914224868629754032428444282867872712634390417463815357497963427427300486811779345322737099617418724738406987213902914451877934182828051897361175448820668025876841374082319593869203724288091024846890690312648631236218579972661188183434256447376990731795996301282354834119325278123688428451112286616638269683571683906008077531860110351919661639314385463072690738523656967818155029811292083254608241987380297235197870079115133260107178077649164716785515621309704310527631280045644220969311293319671866726257408634583593524829674884439514402477499333607424244039862300125314480803305379530652308817001649091335500869772064540759956772760285009561701693145730417694697412084011090674561210057875324979971250074862682394209118863975137092601690975819346205283733740987694660013306217080397821019644304842969990073705857521534583017068646449842347530255766346028904081273037050650340866727866330752230715324332899456200692886896978814073594179843587730598794253052939667022497905411060155790288202088864659195262499380735002738253614521815512084697851433978403420724378200239413009900132129806450882149734061394621477634772467957611984381532553236336417622324753200242754125948107531573101283386118214717769504214051924401698896402638577865823446717788918028066698797064775705830865801142306157669615363750485045472250712481669176799292971366190587973893299073274761276004170670119329390312110837116278032103967256746988020049450817314512512979518682861741692171507376550531874018653033632164443218760808582711238394751470921214881864585426753335848255053152818135364989327554277846945994991514970974270367583431392116996793515790618656538048438694370473196027012039011537457713309619916389384819174456744232095164486799486111895777125989153053539430841367314204483591251785057729158517575351736351357701290034413732144422216233217729649725793880282556446176551285011711905775464464365987716554545323022689484715690085674670839230380267305147669269002369194617417621605897931892565836426478493811390588916927103679887322052957907797849449661324644932073439283177902484367499511601670990669688842881559307386231505654782000199751915289789670214136188481838225533510656958796628160858831826530394946506998407879173673180044289053964007272414794864943758709117460630707075079792065951857078165272763392177312446924978525485078552057348389012479571588665282209974450769879769479546546541762977995409395908224555164912461360578220946136616118131092504882250211162190710089527314441636815846575744346391578690688527681617818095794608446624019811704543713018757191771666997854903579114176888625513748206557025418255643834005685712513018278485193887294768136055499046620545447004299654106923182119149911184818848762303580765204402593556180154414979106633437607376310477653040062699418909195010924126499325119247306224161887099632679581042179956242500186015850737810002293855498359614235604100086205963872186556548149099427872705207047210902246351054583801919541956122989214027894411320464471194651638240405730914872792103897097350714172508055828899077447009935646484462740654969190541423916172662353720008874521538147919184117840713614102902242451012540717115090646366592130713873204163218735404206984539419946313686164782420362010717054492445783771359470317830046505102714362803305212297346474016616655768903292196291605450162696449831123652703954108385809758998595277283050204308519429611814725694699681867173138762301456409340145691313120985322528371440566136908895638468434188254420618042777622375524796423004651429923073905610602159506866686324814646692603906834992819523197571768282192542394541939448891492577129603206715227991062891309101082148428244985761761844510875626736004911685850177299049380958214371554526298404720147439129459422538121918410540526181662662277763141374313416089350891573831904186412860436928616103359527159878710301601656361640534638998849590796596557361172980817692327662525884231054259070061321618540722735971566529231432913898754635812053083125453367767718337186808958616380500073604367536965807672349624347380067412925164068466694493423147525017883638507648983575489510908156723264143505369697919092783374553315234200801579690773884598350155385396317871746189895175578746304943672511065383266173942059650601974276420902457491691364873912578766027763904628972814626491906499781301952123772180765467310649895493465527817713533172199796356561061040099105515666203637396885936519528832698607129922486899122781158036082539678410911604623568887751327089460979437778702143309937489374579831387096296864280464232638830912306220326167725983489401635470637516557514515992377782615223713155369920257382083968818568917999875674829404084085197426612488762967351723490377995004721336550023784488223967760373085721453289261322312050969167520794942401681644187455406923456916166951899755013180259016174464039403268418312520549911135561646419630627151421362726850220279022953672768478433988200454740614755867273250752799654555501859423040087989648092689479216539446246562130540793966661080201219044200875707419434912697521467299536608960616465004712933865957628658357311531664066212944470820801869909217605399618937793963274172036539740273238081627738996652066991844493426440566887249251348575084192521897330985287555069882104621217080885957389437448180868979124081616383126733154002011087969847714286439776007019389237869660936291005161441258120664009267499671757168402387198888202563624566549553429005898664730269118949261050229598450424669894717146223610714553049412397080432941127025180354067466217875898810892289340776168879871402434560737211739154828968034795564493244453916801084693269561033487600579652695182720315129330741953088784875616546996979734367219014761581180472727598095608888367301780431886506156060244019568351854162857320141809658365545994573474455191971317097014189623397665930816675265907825789606943615592263212635068449595878972628028177444644071133503321348208225309159167205117713642938888330293231873021202775947298865073190998838458336814790944794623473528076262249201996327570737367043274946949764907724473671541699351012090744070650484311049923798462362400696771830025291194970024438792313105408753007676039159291918316504289708999665364004788674913583365931083079081360985227465923293509664184784791041756143702404258988429037222899923539227552808701721219925541009117371873493550654722001425311095412842842028655161925128024353794008675204065848976984256477523433837754778850577412383231013502633041392903230501082483975053875289375441857463121090240403462781864025511472953926644415287962982480143976740550868966130249094635111237431876351907828969030420378207560169097149081405772352467734258487553261819707866410508916220430686574516190160786224884878028650897244221240785911285522073451476638818104695318469519211432809441385746227824604889018438429508146938428645691435740321681373373352829294320632022158065872826177990786655168918956933604541997107939797682603795491618670353846559757393262297927734728566493716248007334443893850838095092692452406763698401162864007520890771679450175956936715860166451988288784434614495641888397788846366852171703318470960168260900611017149284840106324083462117553481201541154663363282745503202563167574388819161373481273696821485069409231897662820512948543425879837639254131019329010530994726303576985765295743948197067474387361138235032050918252883472665041707348360904056443007771729096665646150768209725571431459350728798598195171952816792796496387608068633801658583132922785106116138218007885253024479108519720271008164656467703081319796926569259414924541323848324736282523832181651531661632809136414711143281721262425960786596124881096912332537355790871001509776532192713648038838357216382260882105090623589868164637592791276826015362111278203449120720567140393080648066387689419095336589689141803309296491628392157161570241355323631444841162009531068421899840341398321853396721955091552712562547716985742704974521376254653521571151377823379033298617013712278798205457385444562541060946426027297404624896832746349926478227018609741943360897559648267345599366090978249730715124275008807159410486707525784290616329729431042806739077917819406419499129915801391798902846353114379209919229035851559253457191031757373897859673549748602961717749088808511810099790735136479548110360160157905600963122816146193024281162461343294423793812624027887766375659299689974841351716770518502483248907127388387372112928615658859585354526623292124497187181834329193612074746757080603063779474398592781173557080291895438571409220938913540890360207841437986787990113310993839238379827077993494021295739102579385206429617573783856403386121007708516895858494638557540093100583432642809330891888051465945641554164511877976571149388827195921617511832245449257447817329360181609652683404933686596103668816056103263281823166697855475649311732544417447650877763057782121999244343390405935748185718547766817489979597749798049110148521756536872710601289137374022338653612638015399549133991046510292650817232362721390929014134678652365308066703532191903519409765943981873248760020796578011963459997762390139282665199386469907534010125692103722870551713346611767715945551843413134920194327985715811998638592004351380696266023334514384372870693438051762791321235799218640429278885958805115024042912437269213114109004380530788093921947194435813385974951028696024118216583524582282113135576249290115667046562410426489366367518345650889488190104880646221425752603492599327603262271795114562248609957576856642579319743069151776254711549914604066981826747261032778641212925988598206142351074973066386956870747292184629688793419170431682059205286896937444941406790816195040169133668466570063302374188789104814554658097979969321110231666503329008139907867011670749515989907638027263381382192601160041183760060551968816712440107530535621296935880537474056451138447019938370355908380173534104223227618264901708296535592164104410060093323155766342488944827876453960103946411033208626601891357447800520990313030839662190666153609871539123298646672747153260616592687574961803888318813306032609114790716202210034891957289446551174345300320703032239423539392940970410955965672953223895843480565888521760251678100017184545697799371710973521169869605452945472504208734355351465303180137712207161932904717662966709841065732456543083594634474983757124336723525413178731651756776009251295659822846711030021603887515229527450547262493040038239259279549037165938910333444935064454335746292808999083311562309162954598050770557429187346176951297936605606008115034209500939667577553730939423438951499821663060486330399457774251095697105396664324122282770026001978534256962953561526633992987114423571121956172102586973107952103300986837305975769546964601804839143436090917500492082434101880361719905619935761579845893277221574823631805979462248385342514559557590378511809730830737208303315889156228574811699779103899395567318395839656324467048667141703007945979107520498334705753804737622063065258288989122347379437605895882711293448505830473343210729572439624434502164618304571987682500708342949591998132270694949062471124910953737837119980554039794302437025358510995652710823056222614715414585110902181524547160218303671686436530670588865874854954418114018012424217833039629566652260720543431111830675759901059724569742017702356678753981440375651102819936033333401034593613608715084620625564579559792152245514688747290476961577180321948116903470990276077481147316240643145278601773714071524857891357685758659308552642486798892551779527164913135390053675206883420715419925842785673692962883869895915984992774455385082216462428767188287007197066315983018184426839019243796078735369301295341850184837171823542578120920303433999348941234880672731868803015943346953970127117876140046522004203545772792691719551308093902243952361188061945521253058697003805839949465233137915551636405038552938980769343143578663369321924476396171489084359782855472602288544142017426234588415861357850957620530356718281361140982041493347601221845172015511262649794905957262184925651078279869793583811773545437352282066837623259116954613776774604445715168304170003515843839607695559238495591861665474727038433040560866637326997586723538048546844955639437301456381979653264148059447133059721675179147635518310009040814361857307407060571720700744490263684320522517878113607157558261446232594297429894271012450484536650835889960395564541187405129987447836955264045004576486692808064596795050939933978484269001957730717130160160544656418985533486656326661856693319474594584088014631364943331773355112254187458948011702073140132824174651899600591086864149377325350867582402780126813334866675884685745718520900628153701525938932306753410076514041558695369253773696136633033862275290362225752002794847127764691172043164096039358969778353857762007066512136284946560450506057937985376474563364510742294651379807427991627212994847188701973789117451051210085232820291753534250190370883404135651044344087460536268859763143177152850239424576377946473147223002230096393962891530099078121604310582595196400173798188737485768428813816575138880883538289452639460832926528935218033947183090693983302666456854641774930011437041698737479513199675570264840652634232118338278465655696360844157534074523805551927076510597846116311718468280445123019676009472323464843677252244462611592545368509004324443163895253657773431271347438290684104079792323707531843503247425360367001469652422485505295729019102615879704339568257260794819807070255771098388793423704096300637843958656218706623230925438284294246222897280018891834432270463321638513311752517104446000681634244790248662775456993911505015663148647682496125098307421361354426056148249917689787387927450859820412919308152775055908648135553781549212109325739548391699774783349667218884238835454004843674649667621532364009045429572692242957491617959873972982180022637090811092070898196147556122163337514775675105152115300770648304847664361379197440108369384616537778530228568202215509686824961886241728760556930890896586094644574321625561166251795948338514713532734228658032894245736508746714370559159897885020166548639968568635025935444831082822548434068875066587273826479661085948653195388762578447750458701354418503854457667703038058830329427454220855406527416754809288634538145879542356407235772300099621360894043718422550337609037042465113919488729522218864479103220137209292422971517674082112770279458269807221912934646301963700377624495819246547431157438190394059878148897313354683114426748043097531898987259431410793459243052569053978422755479222216792661380013517826026049328600676122534892605880360562628957840216136978903065458208543658983458527457805255169252459242134238801800081846697390844521726750111873456758030069048547359221233640452561904497702222930738079839465752158547360537837111545027878462493243259002761879511501928346503221835343061824240004383204027324517681285249896240990796687408759320797153577755696143999137477350224767627511860082778654808107222793274109380674539135571015015351907730567645043316762234132098846797744836976923764493264952057310420314797865407044473709275635771164480681831276728494131341857298348838740783101002862662348711028260384349214835015948712147791712063526179955619447862290398634011240235523119040928401828721460231565293827841469736945959965521342646525812466815835175939589395438161547989687646908717187005730170833768121163314236950651897269583229582090543947714098243699659514458482985513217111873775009283537195748411385161470993353003580119965338120724887094868784423680328149360458857301710702732343265585831035003623567996399327003255338591625675904953887341330355467383576128715619113502053320474139962873678685964557109649844707700968693139272566598134331166384239217063742333135608117453807441960195791641296742140287232116918479441956804479080817473726013052665597089038104845254787947228874657305217090138801123695959548843814952569230780085357629741152504919841709419722781917648393067008347187528271599258141127415654415108924975495589591285050188856843105381031977914737527012208205693170026198355458510799767537834733767087882918541919117041462292255146038565382179559408207595983327108725695884017658687925716568464552096875602366281478507053071696020570311567411057779518687281779058535330315301730704378749317635950183175635028727053232185837514194159679362069290594233455962086577439624253316822441848873069729171899033373838119691648609801553151961446465960966126547391080290822097402863077870305522541036172787179472657356222760790035869142646672799944690881321310732662130511479540110590070363605135227803115884720162240252082058781900053794381035662014590889990353822649280251026398434686454632663086697721780272533597320443268029767908165825828858503354535994157374611688176814858938246841031524606346584334985327892183007430411193549532785756583304970393808540410871605302195968297873059729656212264193977965998023355720323668120397998298272573029528316196074781208063372290591799311398979205848305835593567168361401468488718895584946474349433827857164375960637621166918117548941907912106020419072528480880392756819909867689788871073843011484278146193542605066981004810360437139989452162255702984688305336089520528664912782829573742915892610627555933231293243314325943246361279804478688586404025217152205738687824154688073640733195613590507295203331080209147851421673339635042323941891036852964280860059381707119202704410939897851621716310910697068433315021848683109567531879513146057785866698545276617249520851367443068545397478695355427663368520571864832844645348661916554488087977293605703219381650448674000557799164501156239291427474857349485878126362374368749252764030697323191120428354366707424080151384408669352192263341930084648713442657379504757832710451531848450317748897828231357981758245071760358340105064454353441350211312870640179824537274903905176631405158294786383008627958944328551899232717369452724996523860559364406791070351619392526667400582381714115236260254565105052192051294757657598667455195258963998571536642818099771203089601516710012190416504251782997964096839932019797375913981948389868227177586442063923629092406417349103727053556959712114403118639802332912839243573770205670145355866565744249406269982817187737852072994483985696150004444063133481822405940734176376449428052829968654085262447776336594582989918185420034296862812613186228050535991004524732107716388556565802199632718890066085513461816010757902203071735973381246072571352971450969907555378348205040371910433783830598479670156550506732703773709660791688750481557924626365630628889416368897724792222444700580063670298127778812446768741422833475704639777225304855949793531906584951884577159867710385887703454465457722859313599093132107195557503400273778093194317013067299176885947321084780682709561203121535418308953108289397447868603966850211088715307902969878715852319330903581299229414743299533910048108933724366669667303297667508196720927400903443784630016936538942844735802629394401032333390812586259140726292747418390552123818279561003394970951370439246068586854308282852607122368496060603395203499105748287180585211730206356126489860386415174178852767367119745853886272112303809685419197236896604130055685992627099943143395775682953421448429591981669720556817886203199806190248558477383416145769942367251602265553204821419637844088617904450409390441113662249707502281668829496156461370479912119143132935945670922011347014573481509683125292965593488713906129922983416865128045436798666365245603519953526179263594265792334866502084178787930030569408334386897326535024836830300413259568158881752835785876289199503994409654014372375565013107607198919639260008937387358621100226416311775076475582561588873371890085791155408753422035164944962355245539769708024199117857386403676515880077430900222859030862086577416932139805823270800098512054064464121348649163798350862926744419718505572700124636722328762369301713541676710244350193030501227771140715756240882612477921914305824953072428199009086299858450083497120694012936283911754889780249731927781752950577170268596169560856405009549602221025165608401305931678513346860553910320476798189330636625581814637680827142042263077736095195916310336290380535734283074714811805545262439825669322366769662832821088214314692915829082763734591209663480415017411131334949660231794278134281090499627593502834456595811863799952175396121894951964532411007661227631875724335803455066498603085475590524153801733751036407743635124722220158899332384642500528122466619111529550686885180600432197405652014218915485834701070630717676332293750713700756899169534307434169472224716650052543804291515673654928316791446534401747619996170585285522187189998478800763076467025966913162218926915914430492493118549975333681352491838430865051991666510912380090294822939212483524122968406521118317287033817951898297729776830380955731012356638353808259444762647889602020612935961456340316692055426831795284563038270838750980959797998968196837667142058019127862473421971709461653767170498151240548857171285634195014471215878918564317325497023482436726211180276945725126456105879140606742081741838639687054364111147347532460371060105948794756863740346484361145359362447013276800247034441428988209904543761533053468669400391608722403075739694050935440303633792191767256392479886892737217519598810590112901381216387035859611686491325314281161845049195085180963771254599181495509949742697753433230997183967643166329975957865448088707222374205892500351221885218801545856997372139030030964736476763451541486344902928060271361997919252890330729595377631081079183775913811664188212308156426657402070482412259951470801962665318616207510855788083516414384896345969405877778954976378377089264985278654173493695954433043054185639655673143309461415104776948434076323056839490045831131174622921686868779508166903567725172734104868489156458060306578363214033364025839175315531600988668835489718632493753207006379241560645395587400416921420681993252557779429010427312800334720731622368318412630696197663196767657588786756502263275330226197687703160701027312517839042325977897046609680460295862165349359579384120512977101252611980995227314661283900368707824963508629540873645263394246540779650865026911956770288017268426507376239930540871326630015231297784452980728505286778766397101261034317326652836221416672813737404797068869811259589791288380070231551924237486427967192161797978883464363971961576023027746915698929627931135070898754086730350259564780469675522948761285122142077118833810203960416277713516561208254463786554212663633463094055907921474576515669781372007458829993814627702529310162139755660653892693040547536886654335957758267368973192583533663050317042013638028474312256366601719463860983096149085990317389792289369851048570287380585465327916237127040666800606125560278164863332675349972113822053145236451923256532767921229673180110147677104686765947110957836168074219071919007643130176081353583535434408302093557886689685986316366953158281742679310160783315480399983121099840964994661380068572169346731576892890025026476689084892096217854391761255347165916901425175943625466811702233143950639361911082442378059926403431450618360992420571855077276575953622527899343574149292282436209538446571992057665440230648251501666295771203447142408395832967466330297040908199641767084830941204921527915182547048145849250031097537492081899271955604786434133659567915045346366787730033705323290966452688935103272627386473269648499985110153898235544804592535947414914182272714487408810446221686499922148173819004470750867063239237039474211998374233706240855740529953065715463561020134528724864450287050571194305361026094605624178635869304133780571164762470574290441275959304216379638475297214702982986395246433698476010033751400521115704573058807674239951695390962941461029435346827604228069211251557329106515547116469365233262026163082494504985189658750409016832349383814817419918013793229490028112005187145288751914159158958826057911265582690442609917259483495232987529440173536895417940358959485804490486787012134373545596850903970363858887296114229062803247792391003908467966249356187738381145858300206222155239620710819151403781824499401912935017901945737600384347965294634519181225728788037826376941609081672156390539878083536972646496821398248538797889411013764277552808746958948920465842525346686534851360921704580915003210121025703683064183208475938881552091587113399538299498448510268251343884729148908708609366546448701994757396080221218943497418644049279177975680696384320693608469719433385294958730126597310781390846305274598635799303056834441064567991670150944284553654456766330241394585477313592686675523991048116723887126651272633701051485063104490762202414818298103495897319288758059777115029730549732175127751231335459918943200259325609946695499893579748654088236782105456245373310316097881088930995646671858470065743497431747733193087318544818506488821245658384121883236871199294172459650758161092152405366764750852251060888692434211375951977386225229437863157793253787461119972612150328790034651304156997513852300191042035376128774687559931436576630978052561463412833379071774641905750012238643479269458174268326239273958791949510136514723513140170569391417113060614016652106416827610299256704558323260727591826857439133797055290674740933479319558990685365665484962651500213253497735670200283504118990320445785553427429878902794742147318264099158007711523900661709179298512207601831207517293617142932251974276632546906003226000203167302427215889682744842910944771484583427293976964785537669265607957635062543578040706635998659701087998085867938999472722449758636392104449288329048182532300450196288415810025722109439203154983403603572051025567066106298649222318908420656085234949597745214484105225616381022299990943969311128836393965749007712497635114316719852168013897667821202634790965370719802400553424394535882100003888833870770754263331988662001420228086670191181453101835676425856462194553526156840193963019348145837251126030727141606208878641719057955380810773278773182395619928680579422302918441990000360863182908099567401555539704793206389606876713129047701249363954772168507469850277606320986531876161834442700470830973811188860389301018574666379161758721411450798377615354822038085527241304241777446062889021141855549116454724528907447398258118084291792022174134902571408675293018962283389743811340394957781657898518867615165312490209892228265161021724160783123338147358799603663863531363195156495485294429307433532395008587020840628694771221651231008273573962133965105451961350819132295784733248399459146491362065000412603788418963624697641753417369543281818835121262924320819962406619552993488379688681960412343026124724127648645972973385557880895967582326620556625806439450028981050194296453695260172901150131491813513849558782286331519668300982502344089913483959301587418763518523229292174147210481677091372808212874342096894040460516137750206928699234943132093729568231513739281948195131433066625156309728407505688883606514469614355633006616557927239096303269494070919746932167670468099003581003732393076137382039240711237616769608466029754280540529915866876972486571908496011146153479098661487778208643702397557661791392155381003808705721467422126332661536343722329164391183351658827653685008752541652912837065998918830908004805556584908872334109209248292419029175771368863906739957196842408891631538826236865209529772229990627768537779604005975399152908010949509733660226210672729468497809937306688881125941512575118787944801044911366713497043234096125866166121446884971541192256967390671424294282422347976580617617849284524086295410789839330394290505481384712596052881380500303466012048043168156065694987833947750667281293568402583020459478430552662354829722956308158499178107574557392188906856785073574203540550283120849183430492045978136341671716756512629350884064180262794038206368834286837034368693975682423150061398087601044233133836847083605112782643004547523587177341745842284872377668858285784345693710531747758034084985000668955131085527265507138629013564657823683375499231248883283989658185058190672710967776938896474770169651222395399133808700877324198800889266259851536706737944514114543129290814375916976733281702536509080020405541024698432243144430796544583296034801102995568250337958558319809999743330520543892180635172070299227478535024053416418986446632296421889473468566823274882815676571946245201511503250519852645994598328598749339368219779408789858530458836202040869150450786085963277292786192199269682779504677897570625691813367927829217618244064639299420083182833699197644635312636608230219314727284528489350628764387257145023944155425852672579321851517504558784802005012424986132243702131359660835921629924495238273660261145958610087001555582534523126625374423223099268281665608161481459183269625870768856267372218698994326221496852172111858801640401643645031870468012047171470811293723982157462844397532682224983633103400578625219663210676545219198156973504582066830092034536579420632103078410844353412266746796739409442043397543707345732274634340022096559537607144067461402457840392246940121765021846062525792521826338609534298931039305250990809294228907509461604540812685532184039762377817935351099440164025265409429856989395290575355578947189715833273148288058087971829124022399735202334179643730037409793932598654322770849635987334858981901974651881539611840317782041626371485654078363859948917039530754313889992703279280298193171214870116492135157494003543983605281716488479072163412395417150321024678803790067512677135715497747141144765690628321314495561404270877994479539325605382932595419881806286238979402198360053409739722570135778367042331811777690372545085856131787304571439628670099265993588419644342982815228649455778412118409878146324816702902208617030277701727152031499330520450291833890576234721069374349412431837418682702228967561595349541481901773896902022234572840346110579693456063704152953231633689161030161800650044527623862219104205668774794384233129814234312863358046648101185314613989362794106946171957051358906257137384940003444876016583286900808660034671551465094625299374058862229595948893207153399783939596420894046580910927888764912046205622019916319632375095214029784517282283665899781796694109088991154923569696964215327496281123090323349081287018905957832460382089722485221986718752551457362784391611248226848788168147325465249167894766218356307801190836270738649610151051619532399206628112845803280287527357397751624459542073141965174090544734659426192678080890705756384710804128591104279987686458820247339458153535856003095656912378055347783795978767856149769792827517989506766832897436186094851301644565421364748061125119501699094407766011041549992871445030290545378988500582676639486847263420587361122390794749648130775142500870020863269146069312391242898186895325513638340395082148917774168942318913610488964648878999238177935802458116502527936840976384014095224553204059485618041027872323113807114504361749411146569439777580684480973877173452715782936233395059090600571666616567170279413362626084795707766799353755116458040601971882981703638110885683943925594277197214374376214795284428699520099705152694197563712893029674839823213698761773123727374177161340386356610536654097244256914037474314560929468562380714199764930657414904858729658341569247648542429541734752120235138197883769006058265863163236390349197242075448595975803897026124940306262113931063030263380802582933759544490184286286981840903577699925191430119991910080450816378331665307037470935386333095514307984454260586734919568422715094711484150992174281067036447736391780962829219736422792397514979026651069264603242871452443266084855001046715560170535685942526967412085985460592980033623203857142225090860100136801827050635707082329157954312594286803672573233863334724815479501551445328596687120927650041526536945112413983547369941763893319910172129633656974441105121836643260445377759704226106600884324585922905785556790295190432323349902375397567329917305316264900240955308602251656383123236060428891877855343922557479225699925696547951726081845649888184583466895342463236725769873939262554308510918974090689440835905545218621935924106670969014060746522944822667279432817166466798719627428677898968769398354026611777178382804986665273269212238067815558398922750032244553971763058390299900889906254777468396318497815687779250794062510580084968506074531534955560946990015364124049128459210093375172117292165817296008053080073173428549013766817303100717074411365447151038157757955333119528280998452076754804009078463994378385683756536298788759167095206317268851805870531554454835096944209975251434485668375280373351442636325255983119187067385889957652114604818318024629369974172800293876678140394191455768499447634106814037158968758685969263359378848338395412537360255121924276662585510384791212678274038644666470527934361580589226701729950064106768761819943437392993455848220170577107585839199692104623813650863704296545468199114073153866027855586673673306513266459439615570311373610296940501675055614999979913864831288064106312408739192941413008103939375787350478481275930496975213954515472183802635089723085710765939208423269159474769214978785975704229975454074542822146082076962863326672155690336663112449444716755813027198745653067165248628610009825541666500330590776163821106137794338792752353119534178610530065634680438021491834915219115742985870888162725130692423825166763597216240413640512352413708835535635072019562834206532585137565412897701308947924191156010419119551922908342118092723058318854077253466414060836185052762529343587092207187749979278399918951775289431307183972453559222521182914413040313338904944996831273341394555270102889021197796235875724441614344532790699756833993838671948191616861317339011148587296983564457671195568904499385636191912184848224838446927745521965766365878820116281030193864092157451835040595794660297228518613403772627492697174867566465089395132784864740246903214792922766499479628633406098429123823020100929700454189896094985343817821871939992090715256176794235656974570650490599061342868809487678120307033683000816928750521879365743522407373641609507072129975354414484899595874196292288818509760495808928590988305994252320285959293855418302263620894120865261136290228733733469082769760139681322779547531172438245716137993354617406477682660891878909785788914883965603504224392527667820787769193878806579485653027378841158254547431691625872133351515483569298716039028314348498930625718930864946206450014111767075105643775193141383373488565497335071853745206529354537886055895278951276604221966825962963657259635351088674016172367268392277812414307611385650438520190560599855714547371551242545649782278848117705550913909724586859079522587608657201583031329575364275814876659142548522450168374669723606651837710579568788471501834338050640975773375400915097098746786854014142902462738461284016598282633975178099329567081662208793253602396302772806366784552451956426280734740537889781877821016384904983610126664910145491321244748992593626467106142534825413015015441015816605886924664746986926333992333247263121148934241771071333393292987175330875493697574380097684592789390677591040979106688820944236402441712835815227936301629045108116340966052966623405290259869982521493228480024870928382054671329523642345865234108145389757468816837167980576234098591660635579918566910174061988474177520616082672820060776878348801976642343688395848994331288161432972801482575100565329051392468702586364651604481335026727699572639359631875832991767094853067374091033300347910849403916365315249430102563296940133932162878762283798472037562083842386499063728491153075348988556410874658030071217524157725955158160689093481627759219664539248321001607889262416683985667053499458593595012602834675462161145678044391411629750781982422399507193113326430323445886818974312388849247068942720947940487868252837038718754647564676582200825716196666896286376627401629956136961939388245509116612170981806295588688206327869084987262120416844510946965168425237035799800601600682265804423734642975364002107508882947397717231313358774034110275166302184763594085384452833942989329975764305904083901947217779857556347877657573446219151055434886767835485674742435841605691078362786318940673112110356592450898437180930153396484845556695141173506788533285420569946471939099388073169383272175735317564669611076290272054555565741961726921167242540758309373703617545255258544557579475361474446338000469176759146492717872531646436926045603790982262952065791978908477047477319668890104456904435658886101754294568875368561115307991651444232860889233314946805968267876842205464626988443054586698418655109142226942140451240766602641692014704890627540139067055545546591863756373004545802427829150772439215482532279889762521639750226262972317291200110215975676721757689956862517218010396936621567039597563305235926238246550211677675581302453284885739141796118120357950916218998268005326854507018892508632862629648029071903877943002960593566783853722737017081043994915139825018442921401986400940944621753305015048207830877571431299393393568387493690034622339304171595057963279089576751705522681479838828304412064210780585193142617516030435758746025830917005870713706601093075761777998613908576396007523105601024281974562273109409557623411904449552618187266845139204884156264226817801701965170497475150375459256009612672962938408522280542719610472409706183848294117483120283934086235654281094524020836741752529167790056631279330894581676325169368400952479321781954623589019387805284010667200787560512530563877843828856451106450995378652014296238211852664787200867789011957177949619300766948898755501148377836342223480309903031853393543009545233204617422223407248599827818878384441043215403208902626325269854861129926544936020350537244193988999490539377792892090721176581423063021624960314043618129741657536840659896868553955528173808794374426246685055109474457265367728992891197085971315092983446362246770219877669788167923981119628889695827040311560694902091194757365632302379010766580656775070143980370039122680106013213265150180680306663878237620192681632912544980640262933872305193187645266667350726282783682314382631180429486661837641467981931453285542061360420070539950460338710457894729748863653002262931529591770142982393742190377259614928161950707108851050956342812608970620349481083338579522313466753323177739635315355640194212751578865611616675166885422224680356982261288674395101930049004205660510649510726275244467083530308633586740550909065928123174507108131808764174756665714073888074027133922580018477785818538491199737836411434205696603397183761038625838617846494151611559709827864480454360331874400694513281709781131167683433994417751716535989768575330523047898823642715035600434597573095441603901665993435298958750381618947249890539512808634384108497766242701932053648061108926762125594247126439528740169947409823484927140433230474466291274611519250515317101779209946830814024970738519757295963964200951815006452120172588618774739955973736658379709143552072941502657317118962687616231320702884281537209080508292149356056747846575660703242883731534323239090807971459555233022725631406777585031492956662810541365179983176534440824197467169729134898040525181990784959082496545026904357991519864197561111772491205676001765062238878663837637336113417311765652210200256679512450282994604387654491156217953536970846498091810456699187487947490047382670590372065346767234022696604470510796104582084665650530002626762478635507379704801524180681475347777062617139932272526857178868446041233529203116267591454851485629442142595220659056507900667329708006533426289545140931814764768772921849890592532690502193628111027596956737208404669826876868364199025829155788665937997384823284506616734778108884865558734451553972581521573885260674888836523457103054009152602465775459001768197678124909730451458160543456154865081758749199427443910709874259579253331515138924460499466761864106984622185432039982196784484678637618950976661875520494632604686175337038655257567272287066886865861530107259051210610081748994496948466664697746518833715197449673571173581404398635181301106482951307329011126408198391265895518936826380766877312677642361087811014470400175845499877527378778076864545580207658413933308611893932221915627628862694939042590987487702764240431768189417482485523734641148254636687256631720194285553900790493882233297494943879393211476482978676816454905275981862065356473307555781877921799429782937305052126639936390546789662080740817844741104520878852762147240488116320591933237309136417629701347931863024658018184551880248785860506242832913947952862213710198360494922661961497743798723263701346444711308393693863227244660101412129853124545415794172749842362263855028943474799239537046629858148573794697882109279656346021633014296089905550255529941700367481145527384760660092313889843291425439098333480044263697770508642815921076601159976124710730692037625079990530670255475802451958269452509655774420991101255336967827886631197364231945996161050823450130045193255102846913156835720601377420377315077312377684647154238957694895530689905765848969588632015668680851429302276993386163843493613050952978489001243841936376886173348010924774122548628081202893138762517557962540670534213656653441304770117278311370282319914663869503425352663243325273326067917733248080752297531737180404329893853525927451646696261656698644480486624229122581263172954705147180227586868961033810599169133147092538228356504127620696587136751637002480102362955068716101567838300536838899429979902723252391654476199579646584849847775647459990414329947093847295839942954422856438716518328302308802354939887843214426113234600187114466148728558357568956302327498635627621222052628179573950170519657150992476674094306696249306637230483820705500266154560735407227677458079268751805699819518141861055793344833136247286693014993364742996658753634900408832865927780524037121155606900472201667121813903646452703012553532887456673055515169233731563532202138433450378708639983296477952838075819728617523864233478072599629628055345879822148919833203064140637816953534311274140138671319619213424481643638187200701378496643060698283301319311803130900599292791922346315483123568792180930837453833274095959579702362587695399726942528433911400223129762367182838205412113101810152162591202906157281949729221691185690564267701470669423267508363278881180541880489001141080427814398450404313411639028621971468266884900232390572946920596430488391074724878644279878257873472483611730699213857986430664344657797481634387384258493787133625653478227683056303401009012668101402906990548692843128536744873342262447594675787622190165891075919911671653187863129017648490516607706682346244566118122475767444912703992068980434901781033152278708292773667022544008401305256672050655767451549818272836069374513386930636050602306734725419111723505227204007080402693252920218362267284279485157404102191678181728038562965970817652047140237660219749532564729841351728853806703377624203579378911278791403570820610156040589292686968422291309843889485493378025244457198415651775335802580961777216124393485290952900591290741311054072647542037820958533299098077886907008009538820179698047248037477576078768587610962717644249676338412055176734697438048315245108079416978146321244744990467902074577326584800827639996997335355887885382915900849458921198724237712926470568736953889773343099536012206036572645235440331686579577501798689143057529873344401603738840119441291980201401028172642635639895335674839325518907100381321102379991302871495326102763849362129249241415566908147381985611714961774274861482160955613544853073516827463071368679366491405437195079322490659443176372528108226413527953268749595433453207273762747135729568753716445146097354415979617932842499587610766062784533013026807640678950743092281339425647612682527767326119209843343882758489859482045087194117732181718438544253751804719845439796475564854861840463005894848677020287021183078838969905291467155502184217303734932505904154518468285795007465684351008333672309751902916632623700335758042635967247538987992934856217695016072374740671928426411046210439514949956078830124716700629537298887781916924889219416256288538662421600105043187172303878374084434493516797200739857970884093573946479345287961453000752237702005060009995811576384873532560980837084886447122124132689459420787726517089815847157663347915470532421477250958266854333305273629095478378462133722432010252107604208701407329801189386454166099489466776608463174726607175830813667743723122205334804725660437082327237631481171246310985826175742109706611083956248069669850256256604407549829343682443889028066607552337651334087572990526046825663815526698165937077446009887638304391586478183802002073192332845999281877114133455836824103081511243012940261921082790175076642942746866272803236480030087365240157166216422665921162707010452667143578008392015937610770344306724841282268366058808449551978445238050908257939398460792616965188534472266638298580712133083086503754487458914561323367777610020823155946885188599355748410969840891602982512697563197897414261722205450115109148971610258470490589255324796198353960473332298330672625992914680132683154998278738614170067943211687751192114993095357389093314958697981128714444181092153486886772964246939184997924235213052387509225508284938100004917806885142451353920965728910962726461766913076026019174914095128129491759006182038131450094244437318829769265812861494441302424092490589292432293599672991299018323815044275697032521463808093213775581367578961357381837613576547817708060556083727737961017310941053004944614726256812536300185035822628456490367646530932776859790941060774347942715812938642076894327040343487912734125857755159357471010599567176132822867410064611753773438651203947620691407378754955291628010442597568955243124136099224399337049442346501534820642901585189020141908275579966850836915849444453001373546656818222748744134194212737283291124613249369068228599467166907845277465954340573563830659983485964614461640668165198451523724943566003790589003006370410441414183351685384914090861566037449206734139046819350982030714641036241979403975715747034887899637300295470225007048858933517603420162543871379139345530416418454458625828742935707978459745576806041449196861936324996721506164316934948609146285646357057793765349556049489761165320491899430094927410462600487797020467670957806954368211924814318590606154370180771539455989972647732725383004901125066813449859527297831875850522046120336283786743968040109099717481250848580599510964994929439640121863176276108667448079003383166542151602530140788363154899511851400372596032774985571521819875676034745774497850674326445003259079155366204711470931753281061797788496000895182983167001748910004375419651724429663354267152168231226475006055242722286680513054721676488929105381032837441522759574679102883665208963453031993717215661088414331955851820684839242052264708697346806529680858991500816537279962517396631310631242641887960754122702218694059844497480864499714673945837549100532822041631158662970063016876765713469070381287687301933058560631231396966281664953585533523625035832139407250703564508288443427997582454532851303272693853803435043316107403887143929774516207775523275778210082195769985223542641841336536427108277897037071217987518706963186058181249900088576505709161455416572418509953849607196030452120263344652568231891927882023220266911883798771676669251605116068973406869911510836874909727985563125695222844922107147380431782018238472459674356433662454120833538749229377133281818268567857208630428041575695005615483892799294921925246693768719536052843609881334221262850597375594218890367911541256257152799320246698875465359176522654091739024643601983215771344049335599619895519839019904768133604168849903736194778582222119288023148400995324805925577591195962510501383075465182746003791932885494753159456493090048915451713517578571703109654369780541874247493699782704528558646688144639820934072487170851268947989785983935649201401835052411934858990355638374619362769766884827998904892846848417094769268748799148435137293713294848791634025805933833933854192563286499859209479596952787834821861806062729844919889091326406007642598942281407362331590722877139356936420706087168847192404716683791893604122322549408294201867239864576269644893112333383083550818730460616418251653508812858304440285596720372955036281186232482861180989136692927467019545033189175018530250023256015926464001386420156646330437861061208352559949296362153921120504780771812297639698433752892477078111156694703600329777271988837923479648421640886300397675990695386290604230798811812788490832084991841816984447800401596328726647047885045268834365985266736972657014248443722603269070026011333898993618416361694209649365513842072811065204800765082803203263894327226525740318822815511368014411819109153953904809447354633103269230351584957438875657926008764112033430069805638047684966707509367096485193218923991964748859133404012854553719571836192167241357037789802847248365528510432291639987481358381085065284340988693866147361717157560825384257624483450404979683294135459076858433275119039858291917682147615204252236987460360710376092279144008151281141230915395237132228408760054276806989371975044006142448521206218129933231045912198315960280119932301677537465041396667462030897092932466083764188921450151265399769241052343142992880422911218543510872100037194785475921971017042844516241699604695376933053251559706804611377805681114061322638246736581693225150807240262622378357353589783893996755729022195855143691973688187892043064802491864170829810550650423477245230265212634820725017907229583118206683148236897032434001998771390098245855131715698198781200586445517191797603940477453621409769988138332980253371943868266807990453809654824693098483043747440221143707066229848585045643102096422789303562113001179013790038494519437955807010188407792467794457334826139609228931894833250258051630380773211075859059238504147499231916200480734215282918489335113733277374801831065584451388066932343199976136139609861627153427749616314595474722409687493104784434521764529693439775414399121131225189222486978373649116248340365649056414765512185028674515951780070888200617422213626507797504220021483659729774157078547943731774525693578794395210338996412286975134373201213066474777440377047232777395516924141241471888679977200920687301147797333449588116324354415662355523841190190232058398348587876700915820508249998332074426275916246089775256970482554778710977399955349036505308964452891067944815224184249905241371955045565072035268078684114662220275541209395186137952335126896040293074745423158880441771730853286730637492278742635198642908063231815397638277815594420772509836832548556313027155994651432184407773944261548226271277161684634298202379064293822800415579250462278626340873483146498396946543200798151156176438330378512943850952650119081360987223857354479973987923897338006343079414993675120351921982801760410500043427748486590146712884731340412940550269779553979516988449025466462950545826034664353506391101138740695781569905648282665290856515360118814064326378292139789864202893649401912165627581358055652523087580298362371755567366922412567602922142945761947068834369905837911736352365520316106612670428825417576908774707408496246127511946287893707180361680582725197974834763418755781360703423009454665347703449524291965153659059790947514279651353612379847073625801669441818682104854387873481034684064336474281756102596320184686923683487559410865721664428258351787681157161743188943810990025908702728528641315188102163126272445463939748349714587482007671269177419061790483503448580937452593953013816596911325358731211453748313001580966375822470888265268560547115612445595521583262994330894766872227333709008020869900150629494732109910016890600666344755108513705229770711506703077745484123878893092388244370096582139399413155281845002845106408620051983308271098644265760570544022630994664148177930992113369709874137546362290992530920168878967229268394956352453151523589551847893772377682521118901647107443431291773649713583290979665494489171836704806594460725113641512587890908474166272769461286993558299241078890736642927972987903324663859828078751418480254768776861591097096288069219124268961162814394157390595184303774406141904372648588151852590279769712434951453806629330369123098199226251751994344792881029441315029412758539914286248137234121665909841860861617638397492576521718893172312757036533413815260243792969625562392888081565706630418812829975452383158919962645902582784318598814212584855052237587210532407768941037522571291101801373542638304483450178496490805558548285520513368818331051782747609723411340341597454235699830612460793781489859991467035919110160542695742888744333995917970486538347127618412615199065268569275385816218943022300586663016331497876241312940818380261403894538629776909394126988356304468901087716086135564103998886396446519908535892182648204204788770677919953545794487311249113330691468897993177303678172038349164932894553133337667296612265858025788876051716993117966193441834975777346792730859151423822674177144259771180946860421300155094690688795566077931312667269507982956872006313988765593001612099726312095542643678633860737539535288583421368920051965057645921802355402874599259165625144299971992536996894481286666143117642131972844470937362212460652000489420727564300832792610367289788698910071871030372911316614672144364292361200991157738737274226622810942525011006605803322221945782729383689893367200789041590153116274792255441882190431260131355747427874593656619048183467431469658818110868771838811626705039435647555647352305388231173088997623130722230823047197767316153167089609389362177898540001797873125437346256141632246883390175195036278139116074957810019923194362187939488231052882947208313454771033774972969614836349596369311282738934500579005474000021787461909719968755195543486163993773839606281147528000405423655669494173209481944880854835320198661222591383312505385982991363464412861871124833576771582739252337587648589210648380188948664482555558582756093713561191623195524852541054597534316938775026828762692840167130225235672042435165452407183274033403574659526765263718283977081150221936990741547151086883332289439062369082331394138757533648775637456913865462381913354118047753664021691063300151068130906760914559608076184091620415410216866988448679675351748214850527563878051653428704093279785241260133143913699664346263088581687501785870284668510780594274639266095298586444061945217495956159982851903519283266701406768737742052457932015083657667760594737643030178349588120022038931913333119465218741950479560351942706714974968122556876097568944246689945189460225848474313354842802644371265896080418276656622708385545170861575732802677582790278592856789344847056859109049372503936760418716761299557328080457137389429317679981749440871407274303092308491591796561248030134922976494314333483551280586109848519666592585210250298384555527404258183758273154054935896762660057800318519477579825425982887703734037790337629192711281336178801779734177413006705590049413766222283904248636591643919527824701033518125767474709695992394786110158107341125252612994300151587867365491234055803547360551061305347727145603887875996337614887528939166271548367565248181693459607522787637395374218443820676435321249763651670267178349021858093550931170042075871438418052936173570018678122661936530090287294622729701677636528823744792544025734024215793847434050709685398410927330864465089613917749914645368614613696939267442965787403895659139452409308598026710951419188124930147139340599231903346164302272787335082830845461701202289047427808064809050387894921534424713308345094225137839413208805737199855173884777360723901111834349347792619967994376385383333565188096786711963189255258287902517571103497762467459928204961466774002325333939075949259060336315349420551683127019057353582134057600580798286736307436112978980396623420961538134421718959380369617779289039905532763791920646017577472047727696820597097981245872798509192096493669662966148337983459921371995674976731145721716146440642235096261045638711058772046241171263837832979623491782896552683022493596161569604748331643890799057747265031379717698182098469632332524488770084891002847303681435470970009353624466678624621455965339258485087281593311146185398917931769394053077397194977627595344920452140162429190664324494848804504085825268194898764057784621413302167637277787760805937601274096464910330149638523621242521447756473115674611440223835051814871961134104573925334873538339098097358437417818974660729366653880529555376522725421495482661433679956049755062770342403613194331611495867971517703038648131540652506139388223923270459151402464187303413189254224057205280865051920299866576082025323357352447408334519140710290879149305301526755173379138514187818464811466166289959374134061876633827875751728619131913194304194581953018489502080927130360117918955250258954835823678392661881269561225758785487642706994553662741990507958340563076818774156987546155914589439012336676008767246932635496108812880026600404962197333653655477680931512616132990284647691354421535136012074492939467911781914637337314124944211622016229404678444655852346131359909870310183743738320720682570559524142275679592836857928315308762373345797151145572493322907426891681866315611631699496811000756472972406188850306427659012233682437508222817257972672073436574152586715993649748373869286888982314446347989808646307587585958539106171535147909603805682880260332094695906200254543485018237009057970127174985209539583980670534970133509119473116395552294805583542750165595162907502569696913492907706675176612914594631747075230799117744280845033451939879574727203995711848027483605756671157567583577010277096682484722443114255770364995906073329068939355581912047285875643943104947616394664796052804453566328601082399848503864989912960731970085379355894981114497949944158381835464978426300040247621808166589716914897921461265966717606440879354071068179523817120892581169619439785675753362942502994741057059048931430760562617886523657472864789068804693305600280705519015017561136827709633284541973127115999538903018358210048841558651919348529396714831631416068095814883700377652483977765147229990568470557484655487736488931989392281219320954812387447285875714314219083227741435596871606426477671274271529909089916201987424466064327430768673112838991692491473010111519481934549027883612306749679791418387514727064908619110729531653488793307443901565288460329853004434633987401112351375438050944513746703538313894721453398094038515986135322338097352607396913296300985120441401722333437245962929229510930703766806464694306388419378643662170326055130690634786928370432633909639159897620360317230106867676388430474086752722995388266988775369220998534451053040108524032714757425338910238391994943426442842149919366895367467714666723618786832075645863894693047414864034121963200302383541482358239226740299902508015171921848945003922206682033327259132210872517497256338927869195322697017782611458440373661677570092285228521802501099539585918403482111905870495762557612010866821605382684987747110158438114962932675467805468488632154456834102929898181755667851063089468423647141879225447049914805055810627876738052217937255005181663942166582645524159163228517752754464132965527468658510451198329275865566398743417757746875033693389622241064234161728952463130330892706927891320053956889360512910795912223917989869243759221537077659854891067904274067192504288879447127854323418437814804196970181932953488950377819205012691308763227589707823483448886726868373347066429549710433904949433346463355595369919619075050247265261205661877037853944206916839977889806910834758660866888142511713971527866723638627045540841744875848958255917183710643728115141733082712525880105696324266476261586151096358532742173836599406719572291477804932769234938493935025328825102089102584559770091808084642016177581604298751124052689278474696392987820201839975556516927950133043597191406913469725015628944437436463029565737168317040369056302277369021890215519143577470826810906843256936733753339608826816147637047584579452822393120991257271720534570662378667490537449752324209662838405473862805788050061270658314053568658714460891803946804821999099539378950235589899433321218375011916971764503817139484434197899188774713254802716366818855712515163711810901215555017344843371234661282428898194662751651909977028509187869711384174160693261403941345333928926157135820623402016906703787271514069610619672965369464486934012459992749636303809511733190556651274818453349339239210249559335316542566422109598689918901279533370643992328427255580505564349832637270024242143350998106140481459381185902455622713214155755562632306561879881110422979755114208208040357056477438133014144489615704812010396040945293996146395080250805062119022398383742952169400491745231253687711743873792447311368865051157385019854021065684296499077304226721019889304960934290718205612754352518139573241949636664261646888218358672493750717197929151975600303893355675722873841161724695315702683642107085057709644476130312759195518241665921539744650443638264338692517678093538689308619979787924779066366419473567952200618998900096209377804454096840486570525149172695738207696380072644880637898202255699067101408778666189404739632521225682891574219233351084033979959046478607608529463926167521454591802392745558622550751510845460208469271428901904144534840300799309084929771180983497481453874833427377770562152159315693514192564002799912591213630070876046221262436622152798872670598885645098347760295730700393077251336640584462478950144326113753241043155371920356595869935997882881596511145258708516748778562867977319964614227462244519597706070693707609191477898880738284919373500650563163615623961189835043481233155731642980061781607612987559073809897316366205269906836956805721533402853302446670001067599033015781476644368089325892017239881038069863092785392612480339928360283088889566887684218456672687987313349054021758134546578728062994252528496458457266351565454871689242262630347204803308829653598384989167669700749441769865555970532129485120048327298908245615687498641909667544993540367330255152820205098415518259283587021686648233550566485358117521350934762566248104088866626759348982048498746180144921297893249214244030866771927525971433569843324631672341538933119697588150581682340933349590314144252526816191638810044098146488271524887804668048024299331865595499261985771010621318829975815050309404355782622319602341516254174000141098144940395986673033729438021205570056452384806619321293613587883881567302021751840353519960769272314335842581656217724082098144692183836165499165188369073310675998281056727133369431701777050922366249916111582901583305217459339898957827417572557366031949846705406353342897961375853722435452252690872479834352590409717219867395842392574640345047497149483127799508674688613188287158502754685097616924040307442803710493274447661973103836563296400168466367184920961532176871758678834033272353401373613973679791223895643849179343191312357273928393791146288298729945369991425378136982491762813038301725073184858299985330049486559323504400273063375942114325794201778848618116788067406759570702757907965150826446497394546053270062721499899837817393019496500168541653751568954712222910753919513115989142749124035338995578917898414077304567798678568550244932210529074775316946096706596922311031880607664895968255495543339515044340622695555183283885597556304932182897111918829953926355244867090064352590362893347162236057974681496288971241920467026138743096710750902290408935335142157874001958239394969606004898978935595879000893263800741655180917146628291372682758523922901116027708844786084011746025332652829289923022445778423241655084021884498250867313162214804822125106155221599545501759633337412367276801935119874163101881812883064107229808575118344636165203157102956486225698301217841783472672658111877474618516537846787065120048511779742329869905102759761615181518321306455619664914001984371656182616085381652977065437888658532933801685250320616165790345912814514010077619553625541965415412099989648946300730391524153724286155960197063674307578516606329509302267552053001705937131148047602035041308423284610335998697985444088595613989469854625633953134728453026645643502944974291876447926148916437408736097187771620115988784988059595716702485743564787935193587678129847789741563828354390915890521284121118484092601965049325228483813648036278497776867628637823208580356515476195270617866261582449391880082649699707167973086611630185906537022408797019277683630063733670965160569609479176751987213809921188269785990290699801482926249672682078678969998425865731402050196164351658635307877726939188800256162474606660056823096522901818608643122181666639373905866943960657186460331777588185060937228977653647392431131197641968642471405581770839346940011072139457972514740646359507414586237679000591039108631048145597098318904105739723647246329922100704359919492784405221447512379332188991286136878804413327104054909471783102689877166733105661191703181830649235902336099400391292427651701968352422968462233698372312359075222834373252379924691152369955799639234106977412338696890735778484924701666153180056069379826938802255388563431996988320490316772602926524124552469586167577186646314386248100557626598450838707231985587438289840795452889422103585868900379999559450904305754320223401985695947634177489798533761317777561528339531221144500148355058267469849279255773643218656459099004154159307530707612203819950918167939458142388929107341888010024342010749768503648948717862939108050409260234842057789239541461537523066496565758806655616784466145539282916317024096388260091206138743735646721745560338905088829745234298969858284596847564834533111711039445513525197129289681336569628585286732703143116565754065093212497657261143549516059367329027403358012513798115213560385464588409879768788222946444975089369280430641152956772388915243048266886965939272985563315088658160061506666434485529627600231548935368292776906294357566358809139078976943317089932327948064072725032417524868114446661050063507538307320217012009628987153779928757496391816441915083540771966476297549678430331326886477011115619240422366687166297567094033464306286465483060872082830608174293581868815955349961393955733551283787442902912851734197165146380020249281189311909070402448103140833019666888040462204849018748866589357066864893715288645120653612679166044983538465885702411447783569242607076896512944253552518135589507466443534562754336265654642949391219035235846589022824923045473847212004829394475404794724367977039846223981313345713878455436371233737070941650980021642968965003048836025256329613441414491705932853119078552560117096468140848913694873009370437105242553067010591924277188473912332210179377577437449292227513637666893479466007807652077246260328699722153342063314606402168555434303041402353250311051110348041732705221087112629889097393545822060258253962284932638626610599425872401546690830842324435386889836437427159780921922851707290189022623062795962320219417709293429026859635613335311066201197542327173587942906460898956998840485968874708165953972844742761530210808122213216430579115110573983215352207118811616455949736727639163528995103572114533490046854578171416476864913469037853450812020360367371932303263465184114542824955770774814086412628396856322858920605058939645999653030208416074456873401093089644216251902861191277635158386069021876243150829226813463751680462359680692748808684029020091968484865597388770229611217304781348459701069057781271386317800716618113317752226183270568033394463154801841756550214598560672165084864376329638092031524609531750907224520788499530831422772764058916333846456505508467711423116207924612787880457690062696130531072636729494388963584281693310345609693419093860344520097444518511989757379965113272697260363543407074524792717422501223229610037110969568997151675033088382017258033864133876278418089965583197779271003792452783228080958853679010296953018818149833671011272036799110057046128589431003175719458391899184998092192849467146363297829144876299481688281809450608795871393211194385598031737135838572197599244309596556282341799800317847194509179561583010339946595011560123610387500651059979954562141433997375800496554939486002944993392547840344589348892112504254294799877121233081827640442740360486966639264411917420526728567792795913903895807769512224057628998829288889841566649659936890072542714887205110489258875763993524275276504120137677560558015398553639716468660144909452483846043593753377117553172256546732938607161105419064729572859511033712951770435502679877334948675662058124216080465866353611160766467806349659161296532073856050247925040293228896920479759699295741967080804213940413353238969279778239085995813948740676517397962781005442492685314674012619511985019990803491396045962433973877786279158888655028196084832418432373314380481874242302712534761176819144171051235365681582120185800468157144516143841976966959849237782392350445099810337670359599823635944090663795716752536562877564209489471855082019385373431646853589014628889717300817522881212958442677855954226411802453530049930417904006551357113562711389244200205136365808646279410034215621687130611915597448908067516421811363942489705941030409367773146272681366028325021142693330173622682393038641366084679064127145356618665070846907900764652595529114781292730447833623874194756662100211627927577460266577666168677871990955647748662566492481949061467481291752302996681222000170492047897691352823145557292517946141446916719973262923125997634572848631356990259427708096120385218396100391780704921036111580722781853748412388289748016705169368796679551352451615471087120924985907452672955450265465547771936570677668991405341033971664272291677586444482082721182462158602219941357152489665082027138455551509872464396456360971005089791695392508970852849730914887615241732659926500640968932131200373715327324408712213866920347321577192655277939824912000145839009944054923595851476753710879324575829155029994911889432700674433354775263317211893542580892335230036743244935493320743565874651944969042233703827714756680230733957725825127398641119979444251165930818802959376537522267528042963512188939125150509534233524374985411649943490112627871093453390487418082484220160382782073544983418995176264915380981512471762760624902824577424860369943919602384262184530776903321392233518069371657954867904937269931579713791057637262563834283650946616764862329979348725366484115169598258175354723522271022664672098264143469118693171928135613264010073515963960357401713108250893525952567371160516762819191180076859131695120744872850337382551482540466949612524200029837786687193887141712994544317861061729047018918404100825352834750760767535816283035232413267644436177642078678337712490541338828574480585349059402371776449801367176802129000379266341787506039181697816170093100217807207857306851991489975441435993142406241216113679772237873593424456537943936350928570967297170488750992107678319397885682185490311692666069401160602572140280222245147088962163307051594746553207655582679560392935469694097113011016505294333218329595059615200100706673873535718008113027958127339546995106966013071049549418548241202008762377276401798575502442844345414193902016394513596333052805357667495612540304199804850675126234272794712840755140155544537941404599960791460297086191759249570815172175325004909060947941109978140205985795827407119688674498101199918244847130366508530278163535707624045522233434589974915104250754925279927666838311013647746635070999614302811446845954250626495699106163522771693462151342790313324373416649253196338872294097595678417548242549795028425682962842176805179847227924779055181095625905415140980847740698565048235797307883331000249345099121789739659627785078729757911626205056367858109099868263071018574068050690285018443637155031100386887725942327234716174875668632341268892677646758148831638373367498906517655028866798379821205838814670801666858692098322234969154623454728563468957994583384273416166527244285853258298598365814105783601278122926546976496627537248603624920673697007698496090292690191275876331784337616285996855700353974547215118500965715862389252099767570802915456185855214133045540628307457749297286405128677238539796131299088491588996047426095640777847562581139130487452767455659178672878835213511917932606200430572948445875811616759724849795492831638179693213544956390624337105633714513479485895256031319251185633803489238432934893211112019077201468955544797951038097339049106483956482948731860206188147281278237721823028856108194081997140304435699049104739669399278510054637375833771335345831167887841568814106659642598068312775340937865603272826702364774352342969261372745005282803722584635131021158111651020726349470815843408858787913487808482001244771584338054463340716748732005116820830997763703483130586547884398084467128070920568868210071372343612886258327889800822585959412497413356392384459835485187431773732207712876320352413909231355973383402446766967165001237331816321477349345025601696184209006802831230768795313367878223534637366204391878230642223123037971006972959703553631037702907410916282019042892611868632501784345433136062770141124001108775497233620415379589638321995838441249620794189865502030220032110973091948357904801202398733314522151424398269292854236698026859675945697668351075135137793112642730188904742269822874020003934604891217076154023800415353496700623714411088706689280497925663411052280016810886428084719032425516180589202477604714188350428268645312910453646144961964565168864796767550541846293203680171153647319861336032960278196934123158749517727245175104648868151048180652533482537048773396924730253586540924084614599295018393514604868468801401745013343402228005165097752885864004199403979624238127806891664723222900061411087814238955323991846416110306076245939736642675948869311162786814590270872529213751610421935000121094351491646780116186253772004541784109693383934260076537730507019952030695471199056685704771910838895109942729938576683585021812766622625991125836796684197283522588959748981919786000689258714393893077083344204790325529841735228752283323406559010641144722834333428777825803139097593785250063116749682432206436961574985254169232780518498858573509574900237684352961569483087980707115105774681143238861803643543140373308445992206753325877249633385313541570959788024506626836472039768686792019329150720550590360393563566972130821944468409805964621046772051184644802021453604756305736802794468323001842233750762853791395013828702893912358287737022483509341790942773521820081580919861622376882952879367348551473979318453573505099349704053822313320692372364313140786180317511642521395399768838606055339731380377424698924324674419769690974932423293867531358525431509406882531257565005100766977981101096247500365788294936758565144639876456595230618301949525210413855664094417388746727676644426054600118813334687090376804483776348968048662543798038861128525623957154214942238866039540643576360719840479991927294590415846137510931615947388397958290480827974751395190068061558580685953166037035586190195292681619071231894078165343526784626477337916265030686576749848725884222575890985004355396056485341338292794991605927864329726176637794239950168397801645403187658982532290834584780808998972133179690963650395700920829278540106050206684557824134044986481407066081857096252004545836388043126294401434655453671399748711746830248927360958385212043769282629142739119281299450414372927375527944053003569203952112401996245358576474753906604021421785889002863900980274762893439802822119086628692606083782356163718944370334947180684844642561909812335530206527697511438424529735501786329298146715036498655769248814928549105575897002248018059334381577847337231235692574542718450097070981774765967667210338094981736992486180177503335740417948734034674539495112908497725191498813550360864053590455705017059208423585827869950311345430748232098694390847905522054829206361833943427610140223666192743271030645251679790371179814049135722629466992197492913781795215194979845305543441844222780595024768385728769887107041619247591097364982094992493231750904564893468402301636081859293264516511239851926878856558057073107848269632143725306288078637022087196915040484701117346997482549225937212469129916063177665996537859733934218632892758420563024242002508644366898797705865030567138876636918514248634923200485863754824440833292023809194451981498032116525588509258951701830322947698504391720341744977027733720290777595617299024877202303913087435625405743832936030042039397396718098392273637271354916491993616743833139251772319172839546185982685758779872319876316346206340660179482792747628788228917430470134813356952202907815452838050791504340657524411729381074193225680308837908768922459320574064363628919403930838941655881674389269467689539600833245406052771870802606929465630763438015797033385657059405573189790224316475061970525853785807518851917273647363146104049507462463332101757842453053161783716849883773120340184026679930325872196449919618609595736357471454633107912831731426006483338934977217553166498991305518357767534663378559833962648004483818064980469326480804470289525586461606181188382145167227549012459148301167341402599528783180511433371056628248424318738801120990163406837029374459765650691601412131993456414333730442840390596034561275711304720072685671245917260951869192564775192328572980383959149834406842416714495136344362073227797558552311265114422116838486140162989476647181812721887356539676202287736864999862695948814438431930549905462640603480126552033758141973635674298957171668654580344670002921005933047452772298554598371662647754905418061025807689532229998050892058779057981045523638297853052184982279241708009916243357915448733952717857514509778614412192368795604726545608246639142695664894832451565863708086248335374251713508525920135341600619602071588421249941300150563110432760295843728566377309632852365275134871181407785153321151040228289466434478299423593074060934436665748702036455434687598679497880514039685389151170101095934258369544501067239376637922646853137112261846709639374157802474430241274217526207985800514635591836187269959838016092869016618793059936627454528199466213430922978687998494487377698908045827030474383999077294638805502234923420098580837895029994306195988098252197902941793679760540223647015337387480871075568583489998741624091399329156905077304524515151424653718199479805071098851387058677992604731190169442225661597305143358798593033670111647698280146146844529585617461326061903523522460155112645403466950555224039554969529491122102118860590629359420501548574930590590732650668780023866883965431042103725387653117822448067889873662403454959308001694036113454035979841084748430327087561342935734667713507664383541818374117117797823283084557921604991267377908159754693347717916895311743505303288239893662970883693311253365422160803970038121953958403186774607383970251900756980950218234198015428475562058578982659336074737256129408141725838942437655335526896407522084485042752298536881357459857566048857504050574723103299542103799408572854517814006304809624728054108471147403083065382084552151133113585340604816992966495285071082414891375375870620523371626300351060616176232438528389584956289953324431401911070098553821939632968968958522315567226403031002923163475906781476710578098827972782864373404163435329093553536394121999400633201631606000918225099044609577853279574289797747433112712274547423466113541410839628299552402137473637635891802141120235785988406131915273592058579733666519247705191693317839145862916250145311446735510973681178952598774379855714925573311923728605767576504787273455545885821317542681330766605452915691183274150688406888719156851871832942465829451343629815765760968931998044504129817611167211261458125479988078499781025979704135979849024679061732854505841207039522898223616904185359020080583961122367293347913567688487364636212739143525568039946969401967855487544317491253159318267025534450937780118819450017708767842042117385601074139611509954776855826282610232406987352228982370847821420723867295535094955550476555230676590544740544454530304716691466286064450324354142418278816498920098935658209621533096207343480718642711435420446513606842802531943973763468352784289506822328882979461982290421301354245627559667667238961735975271447179143642914011512752271458068004631895895975867265684194362610099292149750642701580114939940309313636450642859086720242125049490536179876256501858064759359905161164990683831445087262891269888147332336724762823279586822777093461755017392937760205581939154744582457030448139363721635573678946121234850266342401891546152549410855761488224653100006143935026211542352859085108382677302940970018101791278393868745413022067575297814271592993263687798375138255393034990528783904962238976008899037456777821410028071205558262968970744171362496092523132042879382506332129589282237702656773727733269719160684961354282884489270287048143381714626860435692528908058066700035348061005961101139186181249954249496288344042622172278314389920626641271296812877309489903079737031891024728900999984613783783792746932704677777723084267361796414548842962541611890046788700951392260364203397662316761079727365314648525775302170086436670333674539883647951197003799014588873762021771786428915510937581267225311599530145879806173829681174056766686952241312524628527032342686943366923810216946515492794569060982328596697951418099428984832676398768515539583481427220026805579610995537541265558648693638047772234039020707152291386920217938990632740746155920792733415373234528081028313398089635137826662947663871800839023183228206085951920585937318471600917071378288854171597505467131370604480108909065399647448183208837584452935516348800180241171087841991488824466912280767220565636861706149207979338200796540388813708113916217627103113705255398736103343915632001451758651172081795211414152610433102899941650026947315425353110520772953118506552745784537282999547210446436595430124687717142110117394023549222629298973150087523999421954950431409906683581767203647118472522620651577315108226187559638538440934183797517827206648401183193169727556228820771048276767161142074911371709820842353694432171888300470058783549096782083497099279391435649197546158341784651040990145752218638633885484052950203929102137559324587626777665726246390402842575368306941515879937317812166977367254216312996126516830673586228715270260493236380865018718640325463133422640456429287765978516876904720895533712176466354301885649442956709310006158089126596524926201130241660273669731315892735851295032656782841861980587697870531352598707356620318776114159874928853905677944357185850467032439344839020331962438886744585965672878524141547280966717361902831300099695911408578258253436614720468617481621260935507488674988044631111853380076778338742893318919076745430012807957480141372934517684194460050995114414025543467637072528208332619394071401338014299495241051040380436465293040682228678869234531792710427647390231965884962724822971564251830526153897754371165611917948595427978939162146989854278775634959223636934401716396974178624631479343435838851167333858258963501943359916231910287835880083763723386360658608457458455145575154391653098323779329517079971971446609906413331355192431778933229553855415401085068605144951413239290186267212629244236542564186339917427745247527660864407442341755969225262771123536475977143242067416809339014451068943767183766804287817381150104033809421396262080635716071839469982416918084911433466068161710079193696801058347626051933455632367816215557559265655655310355357345339257095124739289091452095798189648816748790278529405568346752392099366939468317482462361978866353725532046224463681046185482040803970206483879526990603209780265272272358851440765616454286165869460230534488882453840025904033240178709897728081616484226186149205235068056223540677609301445731915546458237626929844109720123795929718930408113922189515600671292892109542568103108805391414041352012214066611654056968455049393817236095936089451274637718342114901202108247155085072444404019493193196045335205015154369686939322734246888283030504163097841841539601573140966514352332655981315096477641468843782764226885773656044810035636304896872125335007557278302690148049306099281700327872092523147285611500691118725229799000831611717601257802981108906992372326779728347394406246014866501825296305964072819622954819663087648094617302061535071018468497668995383419005606745128109803059757915844996491369005144199943245066463113310011950090968480991391892216280739899625449781193377587922608473303508435137904435018748451315796322897341618079452916499697543116198063951652625158006039644840505666310375511815320104452381514983374627544411899022185523712505244472039405553797321334508362289086441831848564363695447333107967020233238688294937418040015782191716327326927075528119824066357365549041718398826027787714136697638786104353058348110543642573687918623680085345557363522363574536028209828788802806048484179881380948666794447174877658008794729187375348954732160398258412529032587317218498248492334229098802115275539865556239230865827117052657063963440830701589664924041338028097610603269625880186551858843818637148751125428915810578696482219440207856362940502180144899996276725593512132126419867218777618052787905010448319736973742846963630921757816016535152089941644756561902040334913492957997598097540597183279729664655753058302189944816843160529733512739585281805555916047180193921300470546056872211843585215288656130676738826413355858218940101244080442510161166529352713153967056334809272996366989724303486091050254394951716527711390432437827172784876514439641218195921995452805391114640278925177539044912594367244261050646532672964647611902284154681409286280478776674683848792293183422921328315180845820493786897399197919102791916869900641826191172360245551379570588489360672815407980598824020169073994908504457708860069031864301356835781487994123728359184849445708743231356597233046060405004181759539213455166972578986266345378292692549853427236223827837570552149942936068339113804088449167265514571885324045273390388258740288730219397575778498933103140747701742007972187536695201190777078520246221190535209240440697951646397480919096066287509141882455452464506565217948698845005337806519800059506730706315455591821470039999122236690280579733206152427967085899212177268694450696655920585358538048455136619863187641596303893307972191319857421567411816640540506208881545484003421145697406937954195050772911503496520685334766330579392037342153435888225182464661264798864201425733341814854161495084481742139790906422227917941427773734707132277753576748737007906071725415560964112469004358515638604422327462913861727840398921504723554519270150853929465056527922430582578528926906211307498530239923954889824180235471985013066161237175994453472694829743889486088956157146242995754555145590929786538555266271402808378351008294541376535253655750776403000013633596370975649407190741917944768901625174558358965320056154095658056590812248194186099017626023832355480583583362627109207871764095290134811802870752173261826355768397691973598855705932235882461871405965769255024331384104433670632968593230689017792978823313341965639390957488136525230858882010619090235910127761532492029607322916248720218874944013229852515161262221749424206748185170708669217744996038231068175983754932977280368115921133449164454189845054772639549078893602203793704031683278072749720719483598310410672552474933877031402298278525607581128348672214370420462786090085816392920757864169246568366324331615375998166302969388490594246251154954193147560424310138402976182508634673782882876871320113880812280104923423491228396570927906864559469913919073423073267610724735163363202035858841777248506196794465012787858222366685988123054343890002532143683233574996386347678326045929224201751305413292057949597210698037632637445587864558178088912793740133848301928730740285292889580703425952507317407474870809276768353019888532914919637974316273644231865367896140240756690056923105074647258249132546143512773347218541623104522356973463242234380830995053108105475747678083097511548472177402244425167522661135065990466888698338431165083971164555073700179409737452591505288631693387425388548494890888833162639925987063567401201113981583367659766396387993420662551123218307795794334500848147799415578852277145583880682035844397101827353658651120676138489285474874330927705370824859129343560309349463586815253333438779262533346039594309397048469488052068460347347207245312964649803200014855725215611431068650791892511310818159562503539103904632062166947592541513360443137252864061117390543652363695421524757510241825612666609608804217950772715405253181064279689014396409684403548948572240982330554895515981160692485790988771540592170584347480450532089476094261894074263800126860950989505859268546556854511744623071945696266232322373296255535650824000344301798553904853891548656414302018913091366493677504795330635291653568778428674628688966754597684017135412032568859719003792021980067159014129807286837960245730629622108201893023912285172756724487220506399223189234443354720927988036138222313500572767749370682514143824858002119412851941845143082348350634211287408943530461639771344915456367577488490779038217728354321731837684759804296789737710459235303023922006905763530786475553870243359312796131494934461459637491890273931885996132639169155458642560901446472986910841329346495935055888232663178475239030007546951527234755023950124360266453770894547093933434226426570149781505571169548585046460720884423455767806521309713545156480251786504620510592648979418853466465523721703759195477915936254898040860073175865714625108949283788891464562931035334691646065301262306556275717327319249050050211493510169566076212588999906436633695791861966256182150490775098368183767553489453873695320865330675944528706397152187949282239813012499073057321386594581647644704332147269402754834709568936123149954063607602740655026998995915836746300095294031914850343447929031905633421962583693025545508249014505204418807447434253079513715996397332753082425662314568454534175123936867657893937584547968004373823868894362702306684234108175898100899567896600195241358674658635067286384375582587651503571181578368484238216153420460264401793995604153946236646345739038335384591023460272196418155514532836958190541910186830347622084145778792413180447263214257800341101228437312624072266441009757886347809246524811195336461726376280847246072492180258677027009891842502805099716873359914265672010997888118266912945331682416500692826429054866959923067140757540673787230283142258197453903248719529599053018462567666261604712363130101001226918845037459124432838383804565358066458799161091821133897303730274467399020909509226831505927270772267414925299984829104257574786938911859941889261294345407348346649905298683850403864995829219886138129946909791241622463528722928442378357600830597573311309448107170116910578696757764199055642827148275253206448597299168121414998627104147769692929137818354531244823465886134447252085012853703012759100044864849316963034963479955034764425055654820678228959631540229071211630230957658780442077318771827864714995547991787034512203328367580634003517968595778838148607213252003668204640457871304145056636686538781790896844263187379427977577914245449729512127826477871989994608231467729003176654583880823011987495028855862807718750637465577207177438988216546102535939243948722975297386656533635357478418145292523472329229402107346084352362601759521660230336775351812755229054757506100850163776690362148841777562836362025562478136240284462938238602925828823616776378177085025006233275756624670516825363239308494514471944048262649711711091857944423435315595375466931434360906803566455629043482315222490423196907679483951235186635936232696025011242146162524042026711412102306059516756244487471588501980451695492642045059991771517887277680773430229625230323227607827776804958031360047379367966264410419615020476725006552302058729134395253302357781208306748097795941779864704463577689507554048805477165834904546644495888437070237209880180600165829071123855718213336433939520498170155337163716152787553484432297451922800896226067384200174824085285341430660842578127698877160896525794373123902098819085959285584944556349044820610079908061368801529192316272974966718298788024260938505958063865937961424853447605257973532336033662117500729594991499394245479444254217279388874037482549453999250598334053851107619805738287344341893431221660870940877574023036299853840339915531408936724252813670824819343961283840977857614546286414210803817976882493174571328789857911353536860549018297060898801962784399638026622163024880913764095971231088037441886759047810497124700501078404752649774669105052531175176479184125111850251568459823381765712662757890168520792146818843688350093001564357160489797758531252606902892883973261273047130912621846972057799767699401289078181142647760826723620264455289915447579935135184784808140542519885047244549740367678351507326126116222692633280183169633181475908336798717267890317014139893816210367252109186982944917079097899144719198711467362167311659677567250140027990438105504891330122651837714486394490760450207294902263253923641273897093911572623541981630365444036861592013768463539684866318451193511757740173609205352089069219487101864161229062324426714425169612473535992124630163317922065175459318783282310577440013327699465707402928133602606937093255036164811204238124952162003241385209926914559630585888921154944178380445422833283204210725384986030809630214488094330021087195888566194552437217960931111669170506598457461796015315867573966810865050131500700432183484362595030355364528812694966072380448664605397204837129539951023281995415469149451926977853363295365344362445984362202924736974122846309059288875890003005594739139484298969031255808435276529960328435728470457080871920645192455469786600762120516693670737708186275341260643361209410084983450320235307486921801295036687256377978868741268880313253545200255818145826116734267383188523275666976315379058471607907837774400481868047034078948724497820155087383414655443295498624912266565431774388172905888122921943831817404308098998728528324157435774383435935687031855796457308378920085015825005563164288926386176996239043211181353258683363762115110659126858671072804719059684297300032629516552166228521848757179471507565607233781682217167922542095928378940699399806084336195815160703942473756368727193606354296739903263463857730770696829790970653729028320154365549561463969698688952067124714516248176183250726921574528380009588507745880825169028273478314163849380339589220151785615865991772337965584687299663424155532294720212697702336549349527234387461564447045963595614961311711310781705734799280461913168604026550132702707005861492441611626474261800140335755627968245206318979903523834229510557256605210084556053265993576259386012419697942004705297736364711935727868948809523837039459970895337413717026178077456376518381331118492408468978062817606933279837169735417371643960057927938129790533782358376418938958510847360070189462255784271331567036127703345078683559640921850107535752275959025147851740867017570302339016151390653974871794273057975821052970170854164931064610458605706071663273601569013675742342822841400855108834558177007169530229316954746132953150122442191339498618231212828866601140436185964815881709453694490317755380977628890857937689961141027094568288420087840541286238620905587169220519761881285309851781830234075487536915748582442945437395686991096711355782680808687036230593726990210154355508085716348754715293085428522479237006305101535852278625088034840032230592802666019864570477395597089466879866898291700972904084558107160153075115069178387628094894902476925751309112650004515806677196367180419473870275263895793385500215236786550483274857091530942396256512535507479246411639379504168047912087970356650070726248397623672955892207746044016411853062858040190459746183289097584169544358249003071001077875767081830672128913800060668300304989001902875403865628931433747856695236587896189861142846029780187320336012166193321878206050261286433926147247358258406165848676287408970198685855725699112500828017874192411161693868082871009797111069517965091564489501110619730821244838785921364320667279972298865460656112125063796130081181951104133689860364514801268925742466081401157832804587799548929019472536468298033690868091127704780558251090053700909157534119845931769984011564637532881651293282630041256857100857933990810328402664422646899932753593945925730777995125081676979369663249203612252353763962673471757466570258676687765128312328587417728127040307429442990134765361207382287642272916596445866557299387369981622674915445790975182508578557524205750679241273613593892033921787093739761615646290095731137771571706505595549643963336442287138058828778383256231282646101961125642970251833018972632182610689097025586114090640583568723544055517762507456939894926061301364941879798325946906623738069767051304424200112232551098711870312418198658127731763985076705680258546973998390786995586573959626025193567797176097170361151589673028838481529502444272519585650516332247149785789175738538090364246650783875065988232917751563501748470470119960083650354005495239171160040353166901516969958898493131854799464086324386500404452731045873987430842499066159887104278798096829200442478472331117448032149285896950536237474738058401508759625514366313046088015662097774716074012868357106865074034932724285501527749222489658043686976807594857387566287985950627160375477276817367380230726912451016086184992173510640191048497896649413547171974560062151650982246341307294796526206618375675168600794875193728440819092041079956091596460007426006961573466717221903403059204381204181329311788352821335480493142642024226727752760492574564064940489510878535882300365857967712606533067887431759718629345888136037159384595651860073549517496483133575425083578834705898524344437078135368871427623645080842503410828714013141612112532282855484533040938501100721714707447543674601706343711721733314300349306855502254778489971587764086667212546587231300248614066478046669633536132054581187633203420310964721825848745239519614908405139573442917028376177809896138181456596082885826198140223609004566090930513974096931489259940363018488274834840507335558981834060447756609451572232214732186961913360676106075519973758497045824592492533670715535744427716767957217148897201121372808891973551505404927265325457822833236433356099044719516966209423900684682195279042477538145123324215459384085047224475872179688692801088561102755046772946244095716892745133368585025871027760394409414402403415287622067135560677295760778228982481882339702814442823012779481995692339367722133867908853747375325762620785277009263937466968739209173038652722195419329718784906361789286796003542326077559134201918449734834547772053574362944561832051656598621846770645197521505983832446906115606393461692370083303210120106710738513635850009694596669703841564282915825251395312454574870017091582445686095137206681788809863721138261910402040857867713791628257816000547828411123216326013389402503472149774462790669871035091763963172228056241473142191767135404498564790730197688667321184800655715722354521588733266563712519499798322541463692828722009401924188860101317531817160522213951876356975972830861668424844159744038716909111817334169463593143106245925061248563375167478053904257791207125117580677766747597389714978555489762950110461737606962149360708274719510225243802347296860560064998365909980415980811029522333546128276691544558335954864956884224970458122462899447454564106890196434588743035165215947390363990242990397699134979542608701109531478180563223670527768695831353228701970650370252753753943394720192041081409335782465110429965302347111579176183592824017857544301678864616258786455872697597291865124132804509250738042391537538827971979233575323059885968191840256846151242913435236416649995776024265204758304171711488702736311552800587777321459503824523241556257471183214590891652277630716671788306207892135676119140175334376991302349687906610088982758112332253382697399383044297961573589624444481844936524492786221848541623710571329336040572445262731536346773244716592548729884206000032426958702750485577274312561090455772835158582100755894975813284147309474426347406753192361704123049387609301846651776326143697945223373599248002552446876159361022348503070741714040563709392578110640639083107287678566387329107732020500963363548363016372828744964350928844551942463300665940305994262998084147676118015958530682180503132601080760336627466290628395627478427768193715948836485817270562680545464695660821673560804508975324165995613938807014832758613327141442895909960295353912754283334559151786220363640868337457348356278961470222402104647319577766893109372743563222177836657494627597575930544361384081543427173489457008896856870715737556549850449300348812983722872433245657395565958346808112521269559808352862549119079453729587190388055739942069476406582851600780457462848415333771678718248570870831328512394862098453310799661640864092496451995792835065246476637590702893436677622647462484118143316022835643211824532618490802724170103663068197843045924519385395319733808774474285167435830130984336765576771120616859730489193565937680404105963500137228123972056257452883773039741419029513307532806495858891421607289645822831318047479852322111869233288596551893816303489401329895672300292339320168749440855691727980899755270008725423498890652477886832426919652473767717182577485242680426128177838167657907551484635817387463884570625094848089508494182775878488439685649938694108322711906845180787271430200465785004702000973358403962604521743173696888768761143768541096839830558395170349473599786869208027722597300877869865199211013571397529983312218156414308065403588443583563596825853455517472147421002419753598518859956893913258183635201969869425810066756653734258278376525275762677859845624290340808006312456866723459358810456332999521283214190702858792728198148317151513328272450048394500201885564025731002305611432590022231022076474230180143753259602580217879822790777343057833721375426863152904174909220333438977141025840442276895791035451092604023709378888355067336057249019068123269921378437047842020629464557358287902765997839512266973855676859162589225272276704530017923991599204298146186801967671846406020510396501828751639830526341879269789884939895153109137620694115582573586892273254817605356564759413419675286569529251812571208088632686851086228458087363753997751565190975875398407098966750355378382883967858362205765566181856362247350123088883842421084524759664562565305398147569181552507442428339201654400387556604562049222541767678787256591612220718558129755379649560396510790904550761714361413319152641205671469773446077905061336685451566218277613594048759659837649876533368403959095612130374159759886749367390555014344669402863832518432159871057369256641883128124312114549240112306693350308817525898848281901924999502244666543174103428069815310928279638033323753301670963368032035417733482777601788989795340874573915960115014811812747232769575018268039180810177674299029009891040416852719646922751857101785429648695941419961499750827843554184111378255338459616752277874715564843764263663812953548718949470973628871800677092900539092746385590401035928166025840842388110423561354939003146907955805616492120578362360686531012985020497990903571934400256949150393373042837217602961490467837751154066478649984050217846591679556849089345831570415463340734950595821336823982154198956559468311684235574743769604907386218769941906380372804804153145782277760943547004074751732123193160394198127795679550761697087420836557917896959778661324106277845949202869439888855472068667564267881689313108652498464026375825310844806301229562016462063583864250812072916613063497624975991515950784141326271732073762006788008142749083921300362885513252739136115985727734318501681106733629653013861840852775365393884756901046458061559553920907315541949998791538429738155728343896619810450559648803707252013753489362075276681654548397464683544545400169181441226957180036490683245452739591434751841508936131183883619058317407191297846544443163051418932934999400268944661428962764999032047984087755509262053710816841476988638521783381032271769131537287115583230092878489543391446460139425377415807907959883725149550329815108682837466312198379694284787276633247487519266169248176038879444656021864610863209523230060281679350173546183056500565654243686713853000230217849099632517464972696254163744122851618230072494332662981321195793143913891599447122310985825811138464700289979897863972929462382176395314102297149727909243507893835318419406010126018942476769191537688589118540722143890264031076785607056780539285053917608813685641246805436307669653930572384187901051889396100262011741241752236631488074198716401504221229814614962825410813051173923528403248771929529796904557472281918839026708406474371711980257174430052691035564343987984594517866784448867377987897999547553300270435764377660843562038298064792728922769059071660971710547623303267406290076940965753908139630121123883178400655645841159626544915517840212628001122838015906977100295106017536467049112656965121518747546823591108938196595667653845294250069928466955261318335682893116861168716200476295645565207620262237004871964308275800273554037149458812512013219141222497301538263526535480811673711449079816672642607321118201393770956532053256344661419323461210415013635424924285768308244931253625607923800741920469590890412175151568535637335250021257570470004944698318747901838098543455724904959154110413985518876332576785838626256518871183509044712010824505472803122714823745848694362550420326303047362323659194273438776327056998517414305833746978511351741089805616656824595778919447832183339217880723995072477686777392022133675750421135295438943415954498713514566826098299925450463214275598647694113598820833112938228338110320159402126447952431428026653260460909756596583966661007255138415849773026504491386034375522254934904657704731326822141167666976738142959451797202982760351768994512697411351006281046360073697295435296088473933348089318191590530776374452105016540506777352154218815677874257950668287522615294035158568878751645300362239369092835186394396308695359243613008254325677517345363138043396531836927912457883070240718815764754916004346183824939968773890225829573597979864867904340510814499376641339610999099390069094125987245953146677357811974399490274770957586624597164546300637598955473652074237688804651295061401741781456329504086832614606528490812436934007576904425788380230900488871617962088695964314305949778002471050565284676284938415141060284334671987602985933775441181194807086944987130448933963610941757566658732696591952584146489049758362222401944667377732570119538610315910411213627273006505662588590541101254612990335780632774773936910957631923339434506966157379406510438247808796123750208107838932554514402948882605937382055666399885899960280109290643954137950202193932472989223609638897776653177477809657464590764029636882900201659890912723601119835706782079436379791805599355038204792985702293578245065482493736199160744464978143774614266877976475789876281127808480682896569642565752511893639866286750753150415574255638079249274977616286756132908129690885989045877597040838477194846834766850449892728389911445132141492990898315790372224152695461376252337793219205931534964099953041627149863340685235725633005311012190651270159450694422424885874637042054882733105288437816897460759650319908050890005633907355083105601589443839903854747488901976085935523340446811389047111001574674048025184262852558141355080895152762141179814067091657914125070472991384984704050695999168308818528188655675151122363083815070141433747494131218100244262014407131539638193199165053428773808764391588162808318177364432837036861669156601495877843558657612250425687962412907791491337590797259029630109529183443023765723258870737628390235296657859057577501949598241782538032374706864001005571629911670256328388936399226640048667739201323344970574393405991501654125944768333875078246497153713721581306623501722359558363699412655961511772634492214916024860896797189425846429274649054667856741100746453543083337300197449221800930576313131713849052365396248725472096351453744209386581124854412853413274101244963754599475500840770448002040289871621175969037211981972691564941605764585489077984218468698946444097033861997061636296604104098198357658441787635079227107551285874436967920682463039825577865636445349282356884630697018902983847328566527564392959100313295655995475379519595332179003100442048295272215063488447023190696599506313225723147722694995670882832336792930484360398224911227019962241186495110372451839175261547807898868696802737643231994180580019874403771370677748673081310551650954484639877043655301764183351352568979214897156765980203135822229486190451508909608173283208958919792779483704245192020341980434077601450529037803710202453122956211114089866738193556427934521091807348348036417265934790863758958915265568242506329799487398223671685209020931731112430631393815610529699059407903280114276873291189003153843001713803505275669679462609114237252634202237340554884395333097316064341229437042209887540672567407013016393274562776538719081532489135028305131598274928011851414975203932582054922905148950332409679046624865236058326875117141086521582202992166966474047093509535083218647292377988982910845042969955676619373599994222587544077403010536273978069707152147602008434850329314969952535908837281077206513211719710248213659891990290653377176104824739866141812892980513964480370609703506670943389054902703120564059063496724756858482313349913185293680656270297429434842409880314262764251148149523876874359351227251155201465849079713658877585951946645151794287261559461766907886791133777974101749593198238425980130392096163761667910757925187528116222320529626733895521712133482888550010363783827091653715806079954724109922607219373984566334084068750870700771668509831136328349201405152407391990118067362343097712766145829162536253894836386625148004768630938780302031984728150368685552478273257233903005522775364030126313579191309118425301323507452354540151925684122834065718955541643668977666397083234824097390001326752637717033241131370519035931776513863630376087387975363909038766342043865773317896445340174670363710559539984843931743701837286724408669849400235104398550936564329313414819989386627285606409740047662201541019315738867302657556695338569915059415987916648144078372492505395779991770795570175638339310387615186362464970673937351849546125136550288279050385848111240420722760613433285688708381560470148248385309756091336213195273716995757065713691285545660437385137028646004139962599021999318348691416090311625055315602209587617716928696485070869783304065433925634352539037120013061059017904240836328814695226673437390697601547253044482797270427629462427861413294269434245275766334660862097980112825392212175608294549983452300365249351674890592955176928345365347866191265095949230255908447413166447384467219910628692692646575760752499772681986829786139273803749490958989614565912566892159721640740315209166190175496077409705571977859369645893601558831876689314962481111839252966665902310491771499722863851806832505938270938438637370434546903682533433103600837380496566109045421218963507164207566454044048810980963737745890815893721548964544660510893430343308176840381231711598274487321871843676646573730045819907747494552869134238753416629795007647412437640835251041916045351432496919492391219978195551572729514148009000291067261811885942597344729818898604057788886595866862158830310552214678019146390906637820976884611070267300149194469989230765058595558278300804317222556872917665651404080188477608876030093580096347455537727061135190400526177139509708106630607969321951311494636389209203078624156088996535330677580931195756522911872461695173084984507197192214427880476056168244362149683563516550194765273415031262089221096023787757569601958148228799096911506960652015957840559794758904584941053967390148655637197687680499352961476007714266511114010374084801592227365422999511982602767732282141275805350252498622620025399031422195871153842202765624267173755032696753355533423630749439266909134504105612731946304753343508068480232657725296636545727244561508855296235454821565856323911879003676063599875821398073751671779030139357570823744402062944025636827664877687798476501145281346498481653226416711972076039395429195307787951881618124451029031979351112683116265094341463777598421485220764422321813338936245569760272842630733125476514516495401143687568172508463418024300843343794892136186211233081530381589722479170978033115152121384332129437266021591477577971944246118662256018040632755324228076730394053348176435898102457801350676654468225768799489786878183948224879739155191603090508449639142213460076401156704275001061498186430191238531781657488112918137016109943940883385362816962162479323371659661172055869308887500471452845867680239532612540693600933647403305489399502868456119453954586668033030627783291446940529058948605717746513638593671992261253287667192010179839649740392155877289830523900317056482576615779159159030931127516747290823001158144649389679557832720362500889222914985654760235522578871326169447718008188160802252102526607807632501404251438122660880281497728819569695796516676406832280471125430247779842011219061792014649541690811418320513526181890358736802783594592568064473572485480918846433080909931103497854991744095269220559681235641432486972012463579851843434151868996483298236632147138502991375405614062981892887690722699876487765509652159691364003526662078452903797639886973837565914091188484960681046627735929564059393244104662551918802304135700187363303760472964755093065688455163734874138989806383587034702370301092008195888482299368712471623356159553213655132207412880853671697386522084631067500476699552903229674691478225627290284514467230895579731846549619139767390680171311966788722264502372787819383318809011013902426836681878846447690654008577861552336458183058626526185052654262041167136342246882261518477219550309677554654851581831029046726539211675192682944745461632559255311423855363343274238005808998191832246854301273147605180705015329748790360991322400409534283367743828780077567155251170403644038189573641542694177183478943684240311820040506917110740765980556916938886399855389982367422939145869912207968796538876812681423149485821792291756155977190071796133165968721724232181007802084852841320312897088828621975769862672568913410238399690449913653789779514568985414788136283597773344187669082805589077114317389738856994444602107206522517399588696896927853422955310191980199803682549743712859539897919654510342808836652702685837043138054475965108484694010163491631097936083647256551362734454511304861168668088230857510507124014927240779903530895613858406846961632132425465583926218241220729360190270885482023650240967808416087692606022766483631013020269216672515591500324225891796338483728348751153916923243571809580638994553260244128407092396158376347183083074578827667009553391690258033118535463993338199582183001349818075877954063894793454151803651658864534856744567461960683393485681862660706567237731847635781661506791867367727453077048183897430608423920092726642402265127492217050342903314531199538169720836701064387577485570821932290901804590701958608814774510662276143195230302843765515013987697808022000043496726867341648620875244650422177681149271429698242675817990151240815553461989042577529394436074371219639248716012312988822184890838288175979852536502802638768811437126588669100829890657226316821350431271557316546458888750479472623294692470889724775031843474569502355874305275326113347872669240955493201795455024749037313585167567979188704990882229492755330982490565270856148103060907514968418884317780959748307373479918535575744785790603866744763363664433081063142433428842052681396900604735502488837437876446112751922488879548928429237679435570316929917047735137733772044119712289364117259210242680063048986145520203133923327573225347445509699437884989978600756244786349421457700377951242664248201701483255803332011184171124340000639179654418897722566588531634557286286628469099101718670341369344497909087690727533496506610832270624267201035590777796953773192418870431064463118649742395990523463475323167964894848200738420855417975304319202137875232462914032173019329652865347561806275937675019536631566252048892852206275496329712780710918374239636537290436864303079420967645104047006337393936888832530160583287830292525657781949616596428174769264244219387348754220279975111879854501108936199170471097388450610460741408098640712246678973730625365287769147631818970527141187552212830054660428178854622179198823092342498312960278209697105752904457519108344103480285603783625552347701879395925804013535618960306992972634905729329604206706885416772881180466481265586629963522571593088943420484805938103794477907517141001915259361570454355600206219801401729535014905131450820252773027720567644019423239250037166973717567029746391295693189234672337024859972721061296881073701737858911411697967893410806693248220876943805395328863930854707178625441337592690412268430353644053748131149261637922464363488077910249439919282966825729217424452614161161925325143263120335754624281949092938864208919965588975606161212736253232138593309822708519330549254400665010879576470947420331534353374091325465947899186522798738685991553711137211171428698667438632960554101891094796428429628158703265395920863103335151534855857326758194027531105441140930686784926650239589980357562991881323391751707693802698398459414126192417017199330872864136204371604244888632651902812066740949766163839785406777042221673273051621282088739976390357572196614052895117318727939335632871970169190670526524630616830860051435939979627638650552791763073555242761855763911384616272586331427071769720409175919921997790789184047525349463662576607997770293086589230751505340827919830544095294475037987783052023493258186495056701993225618369117676271482297422332693640743545448404405231106087271003838511191075415893711918210950780845385870194970796931482076629206690853550145740178658663268924382714922817109335226783684830448106286397565799759384537733611872172520548051749811821743141181529105260080015703398952444289527093752480440685352355256343273774177202613108807018977875498916740426800067835800212248950263598287168320245878649674762300061487405657910166287565656544484629007391512825221320433372083625967408966236719717884697901825127332202937102577697751041523581921464904215530635753417270609489128129204992563409716745019102442408838098789536416678986360203938585851889967464330056335757587223011544489679201360236552930447407060457215851946792112456929202308045037153630766640044627470326620198401767994835596963514171195793205904710821270258758084342131004120199430918093381640887970309302566114583678614030220250482448384637432006053430884551425387584070174399053487698916616339490280609406506478609866185241803293409224332798207165861840488275186646637604617826860313918601467290523855949855218565369069465882273387176290354610374219349577975090403040813087241440711812352404286950522959274306694350986046168191065490972752736521208875859077979795202809314736860736360310771331832493327531609098622258341871141488989302361687025876181445494658149788426273644555015404015204591607064182043087806954341278697478149328671952982335551398812576780755815971114586623116278272214428779509102351759505000741900312721273337301508351219732465479668213751344388130311877592559805965816931065481294668344218362203637356908118345427246565334062695095544941531784644631993578647713288776657880484595366024774453340556574351676599464299341600464376472624183431828098257016002834004515281373885147734966496160984105442779338343438692909456882087696626699606093841956780097800608765851151430171507666709036677759948139734719505258246957423741330128748957909611599452635678293098857399026504449594331092596285116879613363624215621141287343555843569232917579681503372140341439595655243219563312674804950365885663746314032076687040830907706830292504433651543033391439504795729650172341238024274066297780611463772793504147850963279054889132266255466145076294940835588864167263062131455626050997006707255250465365602292815243483907335111713379325113861771933150782853800536956630959314165892094935729243947516603148269171941827566362746129758272618468897322395637407542573682333816428449621770891623144460795486293519601296646702893174171979831908974355184270792018253633466953010122966428388481357286096879011494786263188597941016877180985877358997378825108734476409683770794259647111970245224315895599502711175589365868246943994620443747701805324569926857523511809621694238075091774282864876667399536318851979533527306868399087094087269519987005810994179910870083214413144673556790031676551068899379675932728306830032561176776466837972822141286925559659307239585206602377386880696438108106063899923246529573901645074030065265715786616619606940886757479653292024119225447261732128274081064279427574498532491513487933056459435296792571792943957383246044689223077530520038739812744225402317162345983893094606755679404913334417722220310651476828079986232460464102967857527867392923192303089912140236625125906387821660147518499255287171781449466285594831551745379860184736432116077207387540749424919215903628359956707245682532907889283492877350634696357899858048988515050734383323665021105821973868512675510605958925132451437637417822722907832208190626701402875232036148208578377511789668745960178001571487380845773886446009103632272217136917114680551210030378925402248633623226588943194536355140536182805967229674598584578702765537910072998515157007006119553483955339406595206929989442408305104538569623801784099284969323626673625037793896830530782148892488825054750254484519704029879376319280395297375215358487928217471259767738297712814190615943745944682764247232156495833418204138862861773646200272557760560017069141866623634249508011859593117811069471845935551259711325873444989722288477626775752706560827008960506491941450340338694141423686485810141452348315193745231139052391338583705507639725257155457855823668854048437522213409780320335059088556991107236496886885304837795715979628120967795123257534001291953261535991430364891361469368833792278457046693845436189631432347842757337986150525270913290200546726464521578846971882420739667105249630589175162981912705063422872408676028420731074711730355453949448425958373600240275200919046773670719892351065845790566253475314099524487798958140247363964921542938169409355656579133106487964073664597664439809639917566106972407833844722758420578274197072783838516030195539362865554200921168579651289600701444782990343816546380763662836470447622208270877033496436303251531473936076139968958326094865870024351729891187911499672693533538513990006131500011670113371786903299191300335278480819593138198550196014928934549763272239601682873284103351214591214216999196742474661662053365998417782235119188315993913148861163929038337556251401392605737527818048373083372854039427325107922076386588541501392677973100643628759417955835632858938970566507407635213522732031997490752895348272914033662339394681132584994471684624736167802694264654052707490851470446045381728671774857423739155206518477115987359590191027322012273834317356508579638346272612951395166255939037767900261240458711302474457306998957888350649716639401157207394188140177077023968951574910161520751185548586191252086766800573664220671872673205971688771986160112376681995704384472596250092540766972234324142380903453831645144401132531651896375871219678619546731368683337465477036500328716407928390966190681992303703656014466051439111282704559087590598198679439797278481121269184772330908760214292737464888894222575981887172108990290781952422946134282376143360817834013259962353892774139599903673615752866583607343508770624702370590340617220534663393006345925851494521323683807929992662930954638534848609404274071611421848052441035593380850604473530792984956428302889513728393068059051046029164827765130249385494373852349490196599578957997594623246975157110704237043947638148814220871283413431637152194872968671477949686581544290066426241444082375620145358333474751300921191669276846740411723344154536013557674956918506781311782714621270465478380231877942938367485102836895524823218667600070263486128427887459970346201003332085320395482912359831073450304729488292004566792866350853417668462499004594143492089297926386786311991795226050341369868978709204525242186768274731247889300938692885661916177763132606142378469962829669669017045919120420304354038499618808893074272789546927506295443527734127071257924872593521894105116233685027796880662602113674173758861677991683184767187995990840408053730259232788762439487002039440715014472654656904303196699373685080400098175717258751955727420946067771247427958959901161088659688244150756213309750692884905873077637107013905644359410269853425112075168640622556813759734257547646456153463335999428116095852170511442358722337632502030593483078091364572378142344763144997542096757975387877230471213905324276513874133183146623020157391450782661953717890647573818521147781009904883718094953900967852377731179587868028749072359342983047242141174141319739432861509672548507295180673059355365968488140629766241026320233690815965557085893137207296797675880810176291820771770196974755043674559382404450289063958174661663786133471547799526777059331125533932643070259198538226951952496697920715749324468944952906263360345426602021175038656585267463273539974873369000450807149374716079736315037818140673852243050257493059118299385195151462229237078080292253182692404930434986176497093639386523958491848408924902669427304563971168063661265659869412429131706085838737806678820795703285168536505870885842446358984793789916378786370215825187036008708031319992556698877113442471798792412463415878639841816702203786683956022733131413059266402598272546820130278841660298444843626177473712799677241584571142099455546237215720009263723786338351107363109286098848544343418105516094125751059832018978829518797415066636564130996651939890122053246695369180697007243620422944531143337865476518962797409856437715373832590593820293171142677337531529732823923954123917684379942043181954174940601795338314424103593707945614851097317815276280314078984231052600421484652577299623135039079966255376269861789156593810794925920036839914661993323871529136090083469334165581267943551889558333454269850802824480675495346083445566858016357127746772310811004598894581726095397671265680862266051132963400299806743618303492101053723341514958191127919226767317893068665196288289168650025149019524565850906396138204954364947857565850338357420117531889510422186674590617774244303035069248990798896002005646052003911492698841613903685440222907885053635088389924590650163176851871111271013769798251372989646861180380976174756575158689791122594379690327255056943108631334471067372575599656548809396215785286243426032858860489675377658002793444137935322629308313260604335061506024366285584971373066267696103781852614421306012281408382285607457876003246777746454503224562842430434043755132476091622085785736789535488884184188091293190253287879902171744411912558582995236471117446244228667981437399856787049209493765379869991305972765983423352917941879894991388345709194904788148496736131340316206454205219915624756744455087595334627668333566000455313868044359407233828601910692988538597146477222620657895664045956607104905390779654131959894472491180296937903706071171107421890374026487382089636158374654832295662987081168461923072743079355423852010090737810888621836312182261914732350635400168892378473758070621245142714341597614271918130478089227626199267283812768745035251580220287851659946353846184214649453880003566708050221735268640161925410813656974438475711700362744266884795094473428209897972167547598351265622178737935990337389565549798168096393054399469950713949400352023068361104211811368768012140373539879607924613254545020120483549061107552814147108496361783624542389001379598305609473733250804640151566931771758576918696014641640188721512386530762221490790673101584037143935994937241185381564319695034673853874959597230064493980297558561677396906327879929505105264885997226798768558192540257163384582076272169688491824821195796277763261963727567715659033249262934388425009254017948616892089698365865612532190229252118102242689692378498393399548544079094940296488620549066508858500810710683323114623780359731723423408330320680503428460137071556880744732462845912546321056701518835771773790492016852689697272185918271397728207628566416036384393124470162105355155031524973540536402414610856706307454620472440598556014988707480938565981062453933373054460199699504329360905628794929960159252424880021690579798346179733201579694096358947130170007021962751743494175270102991087445796053701265287830987858999963560729520404557149259693191391656721852679680834431994899812543582616956135838119393805851517509476934039318373421264864722142284331506442933394933421346475295770869619269038868220063275042008365178729906451142309376861623976853375091668828423694553935786993269039440978306444437930282020983243189984915292923678290695444762502677108752837530591125442880723898336792678953216134517427499419451489672482260624462547571007384295190540516050929730440122852704384507269177945194356541493048121269336976732826098816877195252987081933491971815773942926712035139491763277919751762819334644124766162656846739997530989622588351420575978288557917753919259079924653877589825319924026123471255320949004812397053802764559883359153018252112674620269302978230194642220498360317444328909662129091431718489862547657747445473706440640055921625995116389404550104803176496067253462538438624995934582075177202381286682798794913508204731865756031161580467641595766373034544673083790549196708988789735500089015290394676561977592327603979131363460523502711398120454198111464953607325947043901818932700180590215739078776735155737421386196484827442294467336518033122078979368412383588557333968719315515230336977975152214796252907769455065935196761804516233305584014636785461404666414895301117266474396060929715744845843526384475741426849476515286274962891747058026343634235181132639490336156940646852361172156071461709982939657612678912445059850614659811922220342730109132022319912863669333382987436321147352581498104833521634872926447774206490721913927560845062278265318610051584516649776481735930806380668010029503503842197164464373900119344112838057089955007956902841323755508673747821115906247510709009019410308140541066971702803168585953909033343000043773744134386199614332010825866176892467360485335154527579636410427821450645138476469711083476555102001334493242352437484835134352060790692451944127590365003613408476985634457951751742081894730585370065011929833959096625583736096557801872102447676663529833639537913114045395830678307628556232819013753867997224238750019492639517404731754798390385263615246130129883572253696193281229155354822523303162070753989227574619574016075397803038246720301241952308469087007166171601726048264519999081233861938864548414219010975704038279058503681712978263332736612696278853128007829026163964177933576894405270567966454854869946342492678106585368550696985378570130298226659611219624084724332751900327309491928952046527349056970372775113951306461799540816052306693945093181774693941391300420431397400084198136933190831896692872389305720467210285633830869453082747766225344302451539548117238346950957331787277315869559454082743600852149150455761440232095408284667820407158879734089317750814269047570028755996585306591409509715924434790636686390061247047027037338274909285666962133515564054092598426910890795555117190004690288863399116827052700101835850433085561442553617296052435558433682142953039508756805277595226792360300524993738405544136592775632641086560504490748010534040381942560912528953791792223287211760543003906491531175536204615242500393466754323815026588930843690653994981924420379711939752835538802047615543934220879319955158881885652463577709650275883120392436003140848029542714956054742901721676657240906752193792446308075832318783026221494976545618426762182901304359085900968385067866567193862374419771220185678385506684691010119938614371937541214873289747188159446064378495625293663091840043211599917988031843665009717675995779718271707177427036876802411523085812469201440754710828998535685815819440346869898175254211294162820074397402537962845954084706244163968091544786706914908473454964858905251692050887714088771494492492261628862758036098674636287467726914406662104332122748398100506373241157160425416910112717966643998227577749664774314280155756136516198166685481936518218367083184898387029326911770800730352724919878247697818295395947587042053101076971929357625985157297627089172166434802819243100877763138176387735919435230723605571004822239141071143102306294425343748513127253049352531532939098739481758097896247500578498107887339114259559985882624737782994191709385706347354787987170962802305811368540835347843300946767437876064219404925611172797126553288485052658430168127379094984463172699005192493078688082837832395687840090397600478718669700951295960960828094848786330052157795692688752192402053211546308942927107095304482738364579517962854211318241711305045482671155637248358568343343902929007169478004927047223579165954061436913713557620422098039884112540631119924072305449329925952634093632633223838988414264059178814392022377327795968955515625619340490849790270213925517233435637956433983524058600868988891217295246031584700262250866524903357175010096864450467633225645757949388292579815844620417030005340996060434841176583857698948095763062727450420786308860851671669974643079816381960335326717474191825854525999430969587465169072757574938043406655947615964716669378499028492349604761964878586198691776990174233382406055622264501192926578708388273165136451304623171252694846563575552571548297005224374152628086680678995923706190368550596462115493565263610458050237666889574674226685156446931539110741594431926251953581376569882740131216325283202948020170850523520467449782861563239537930746910729673759913874590891618219803457947201564784410023367356010497853721978729362508439530944044129328886891689151947273334967905308220026097938541918455223028011590531752555846273269144511303964812887085435442297848066658808279071704850710550540495058589208012289958546400626419919213643104208222565610056812797752737692681672901300719308877056566705966260326567643283198163172805010531750655403168102872286573132163637068525963186677903891812183703053451991784693549585315470748384169996915355906597064388369252104401598280455219770816778429103698943149234235559304014026327354688472884550318230274306849476706332283542546936640123944273827363276212872835520845075840646676532212338230766583742062230752929286536419374428072932257468791125315001840223329352957822654558995422634609159096592967906397658447633382939822752151493746798706747735752326694119845266556943111614142514874405896973918690034962440407197778918706367371858758500719838799463284041157639963334933247412235237770509355506379224742770843063028964147550208730486054247021261264792337355865025102676127890577787989428683203283477024943941683901306360145016780793854755409500331954357466730541784747645429335568448525551500281042515268056581299857027480870247538183136415179807047890008320811246975834961508926950575995727562484455096933693179448534731559342400731406706961079604614248407608664785957529447631235833033901212724868831397683340296506924454590819318805876159469998388836844528602544675757690517760742599011122635626778880752349039638984411068294121696445383858179554546394330144750462404469809596459150683991613410045246549393485646707535489808085002499564632607482439468810858386216735229805942295172307812659005794943152845474551104181873824509037309346301639800513066224813907600927709038247164708889284881100963781015900465835014349843708026378518587507180218643611979876472742280309644057211277188129830576531610768890165751619897690079980820646096850992699545884639846996271575276827288575691814152851664312338154606459559557046860926973797004503841422123075952172961341019413804170425239710553794142733081700058501673764800819138352321015905385124587384489163934404977942831119890563751186316712122921111278177183633034954480406576969762361131993116203489829467318710533566124215095794705353314935851153318323412460922692506122331126967264154884472746955474876177814688916582019741237751197735099223974908745979576373205122022331756440295469345883866295751128743819491468708101372401909245878194172717894436242165463121900434592432582821757844460064751508479278986328273336892620117842484792389240777664307044533075225057043986022341470418515428900957316645721406172825750226091757342312270793349293752893828419933531470122328085008454202990441842154180454366815650248832451815292264253807934577092920055150573401922240210423367184032538012289540129133162572523110900548442907881116176502587696624481679693491436635538865823133050633726983205417260647312649413527719197673306043490290479989088644082126289745723139152781942115371370761194581387701324716985615790486051765995536412787287945033725441213964255033488664855119689784602895336065847772667786657940426298874311579837275178107068160184578378245013043782426615275357167981509528451099639581717784589164317454732722276064849131447666331240546429764432215619156430896535681403002050557581540312606882210447502521798320913295887345150610674457615796202018586931074044078607458602802833482216308019108924329621040745142002702622902373109030511392202103953841790764469773461461901705596732691335307972193930461359980559672422081481002785109707069026472041580331939210665902352224850079694442895941094791293260712159517581993907932348694115664904273787169517805140225530126564561928158663725664613473908812705362401497227186129712663293745890554683866587665080293675835876641288458836865212953387061005641692199842860528848089566260630877584622308711106338437799876370032645349449436990560742512554361687045442230799555716069235255138393758111979444178036392582948603551286063819287160913817277912522240164790847881191034158488386283176877765436967592166685702701643131635235552089473335470037236731115934809471843352438293649435497502702378785711967804849154579747280232093792277788939790571410792664974157998911521802834033114152508025292404920838830575322420989949473562182865256903604397982902721031492818355048544038406302922037102594340689660874768513193950613404002868831524497803445565468691381930837530769402218725306562415960142191603757132347525499577601377148168139785098074656468373716106899409063614087738694365709933675663861921162395666432293342541709318338500736679404326775631876911156479170345595673234774057771924152808334842797465270589351763928918827770517792732289137443641785773765017306019655361216289908635473440227243074285332676645545528006695258967549985554032136649758157945743230944453717735777036536376632754464537874844848272984679909726411883950670298024046858987081913501654977670930067445393795269573253514750835548084294392626478264556191385339167530155935037477470200523320109973884374801575825741651479942075970637845274659285214213619374120498881663642827659539741511711067442448484551210204286839565599915512776392189396032160441029286828015754450414563483235848110675682728774541941639268082927476542885142175269605078184064117334164625052105388396463376553039021231934088383250576414921696841930070044586246742731644351359890629209563204130177975664884479530904514854343847174988908210868112968539928139187921739029277234061025802597289098256664148370529060674130270904483499127110702755177686424949866981635954419065652386094842867378468778802100248006732561123403375917466395947109296967729257729665119530000953358063173106492612769770587424929308719639560933205816148099753926310176371063702484993070615025238671776239420519804906868450450917007435809766202825652744422052564250327353134992623934757094767896177954907909278038309355759810325433220652036419786581722468295122623407763278549250459580970044281418314643560956242518419862971879699650425323512897601531852678465379060965805208078608813382074160713148916697399141203011419487367626003667819573700429345581484317751904212335308887123419314553615794427672343949462988605361225042483973689820312258109315068816511408797614313723776189157469810067862412115904183016957379674848213601671883845285624914693901788079862337196115139046402309700880945568957450235548424065855523182516794100511044531637546305847171667971052710370194567044069861127895866850681883577551434322638976237877852723115218911798995664758798058634559023985336591714313400647812865465025957934541080163789614715219290908698379299478440741765980988445513455197992203777116770226897955702827389773018854736747150449946794874218545485412139497889103964047903558115297980459625251550552034275354317004456588914690080124186787705576079827379788819104829597851076304109123448100391836677709514780311389634004204097274144184372457886706639823533169371373044703351608246648878150721891489648769337302793873035244789201457640869432159362123731080936152323858990779823017960357967940755416513495111987655290912951913577566822817459889314085763067883218244492517410351820316059068151801830831824867152807583686843966105824274317069636702526172894354108714449203618086473756394417253680096772024985989390237100630613962026213161752618503435291548806193527200331248872124227101083369348765786490910082991138635341293311013632240822813552791813996563324851560115564781049448042384002002463429915848595570018329683853132534715255725687805698536832859362725037608178322908217293467515507162711767468967684534414094065201349072291056446619682692528783210421624432418853990526124294864166971230730919484050802804392432769780977028202398782478429306396811656340947817797714803592037790091402124983804510448546169578517946165247191052047359455754296107663113690689898192248407177634585658283182079804720942612720225363751120225268501339045058795367648676383906274024963525835749235668152272572781768095352715653930392165745884977710140504082267562736533974084765104884577836998909284886990215654344461437905268796729728333887559705028554124399414536350033791695669686710440657848804412342617878617769165424191055284147722582075858984864332475101692417484080185503149473873118509297751042085794843003241249559704437624255311802521401926706059532898010082965557801618467871669052522618669709379690699083184962674619912281257266122113149245898485289726830197817322555761302907405948249697823445060539672132040618296165937871962470000157607409565175526546575440028932949890072047159426113234933722898910098174287643000829469108718866542503929948435839387915070721636081474633610060502979196664910982071087485956927557190506956460501608263899238669777354371258356127734596534337014162149015874416080168019405391025177330027212778663989437619622856608266152405468691166721527825277774054561510304244393231529697059363611085503672894229114563304131522383133540081347695424679937780032043861754799351292762738455528427297792004896172461341286961478099690033810901607917217236580421033079482500006364905238394474027135959654505366676197126135789534657725731076882676620668623507862190961157092358432522375183970093778330999992766286683284853396345241405550249650327466702623252913487937782625118628678846841743541607782022644027014817565039930673954325630177806965730240653763126145252748522990050986417868701907917543600664004052707362098614276140659172502625290395061489457100648522188803731238678091005106343984085643020181995937704758534922965390422384908356556820075482552884481389287132508188745373403500915392145394586222804068652994974196546550450369130872988215462591944505667158795598375238506656333901492588558566182491108642993757180184580205200351377989338556875042322413106344607615006184742438369783954702697840520885806242712229904517186825554635285600203716964440930789205920052310103975501447907885239761123486682067339754840605629340982706777636262049706220941538858216413177493436393842562315974747724947865462657779430224487858876508618147247578539046437851573122040048217652919928701084739918308665922125870498357011363583098157451223150961217726249275206321964819445284980342647537856890788296756466874435071712650235773848555786935915278565410884542435228872996839562336013725041665966994889240190345950963485966336415248939798065095531555135148839411989896860562259772810410833102558325075188269716732355172202231540478752761195675057879848734887983246410615316610391902326470555905491345469867365073245059363092140738043772529209823834916876261294237826163455205309572097900948459008102231337651450232428226730385152315337000216546467984915374980987733974556370731689974755204010253929919432501815901172006410833606983066135129420347668282803192232577227759453078578585546577202069840580446296146381441540408996176885057055818094901761272758313936949890189047728026531223732358023401685256692558622199264691410905628953653945564910297089507190269356207550737905895707044257849159367948149829772193422254761679829036693643911674786181889261651530255253903648402317922656578959242858826677301058817782195935835871563226803037372581931374638223118126851623565519507083768870305307195938837899522650078702674730066829103124036300814453931326163908133690310381122285835112916760661028415700141503435982430193487781529621869910880742110133533916889222686201046412856050869147962104886910246525227155366384420455032526293783273437324227293081903411061439298448135013045693329872112720825104353580576065347583560635703515501598451984553901647270608774328780740780810932043070602279333082568129673841377116046496035414814401348286147762133678730689550560696277677323821021781486194307155850167429782187389346905973915854713440761294331695342229336368904563356955504803739906866783091014566468620932877276091006006353066817600867833095521252013292897025411887606682718274688787874634985334981975319682181513490962623290224194801148665766938258552272003114837990023126917789314246101909858103896231875303047835855123983810725184185313518487700334424687382237738111995017028678709996782287435221742062740387919781256769767164107703456509584597692325941008544864919209375870997054107703096482143794886119943247021130411729675475051434429921697128343801786225041272992753960378465674820523914443628045985503558573786756026021082913813773862116725012415644447636643372803638713334105648306410880554262544145735482357350647939157670489630331610482979024915536515245188662207971193937730269977894974227570276878064719166539205292290530020120575248590529780753098681261119221051637605514599827981677289391832817408346495383070057298838372128048926981340331565904790728701729083390938230395881448578175924014944658522676240820267511247965949725736039167346456623472674642565104414017458775765306702019835423736524742880984977216783716950361190536710803349501835973947346262930099626445326604658965340537559902877446895743526607261994242898732764134846220673244363431360313889077274194820145494015118633739629530793689639884084725366058486189465617846822231893840933670305936912456355204843970151569780516712051289329689267488334743608899342199424667574087434924539777813646644270842150790125444851333035134058230539686510397414850140898042629064652973114628166106595591969115557261564118249629279957717564453449718459948609959641459585704018179111144926699318894215653291809854368453590808357868121400812950237214207936839500852430931035747263505355763791264450334382254895823818487107584005240026125023212662184218752866634084230055639162850068661826457084176894139464978386118894126438730112392850142800146662333980040187716680985526238699670422996434587854707573853665868404062902846232310904495921652383913504463079200051201510947680890725093869530105228148819791431622174668803928316496580506389503598550716399925189011147767275691829373544866124376511821457989337089123403317266339375347884711111049023075582384462232107732233613828022183494509172367417593377998428266759172599294166999129876708825363215960777068864414343117483544402926405628261967027946460340828721589792859972578272433608197698548039784502399009820903344890345521365459352645371757824889395956252788906309859508170018716735748362180222542506451838616252932850162035694962075928810095654121640551904021328620376961560777477380484471543016865577939826247465342741643558400039517332704828471164980697387982509992395642137379851099439327318623837219194914363916991678354850133330252134483800081310400845119242393439924904866390169444562787537024439327500468747599165504219628495142471477360428942570138876455087061046210229959472205983973476818382830993758330997578567074113130293544915933527051170604493208447326706346617494430826717723949612546807173189766136131384291630156118743168139831137943040393230906079196249180812064331913877100538048076115904085372296968223724615393627124731533607593809506557570784367557878159353322450550415274744363820166296016077723495779222506405803583862686513438912962699803863167137984493833612892645933536410456823923722276367647121077991660840989376851537134777963123278061562584611665937483082553001206448138599830948554580978663048312441202293019285730600481061817859358526805183846978317196181226159420296032419198941443377687604391228251475778209709125753073549557320477342866452778104173738249406099929808552076127160143819611094217663121782245752177840285832983391727034916501886761204241361894685312269921113147882053444039255892960838614238549566428359627850046722951556561260031614443780904941560882294913545306804787835434238817686715010150431995134934250125664248621080422712665287638349917618806408620306024420068962156708484484080965092930890304574513733961078419714933913780358193257397540670289202547527106779665455311798706796047225776229854639155824452595954365913298521015630363780655487303330667014298964962127734292915097553639192835425830737530063145713491327582696406065034178479193852708580301553878483518399435141948312966495824899241182118610778156833925420606040197277587381283028716425174462171198903932744833450421341636201855594996922888260605449124144070193562469165789264044960705013917531756382343390446482742222376721596913354991399941413066372082469966451574581623000695466426847042588644820015943715294989814259175589386634690768252507343306644525659986087812208323923776437473674172693940350610197526082939344393825134814042297426537543641829592544470445518970835188928714063578155820219052971995589879620489818399023203786606211845514862768507170297035485093612695432547613362994916849708997237414237488159201687899803463949217606684658239884311610698069147965135739060565731597972446973951058059161552574052199234083584744261609072517729236834921125428856012713180067455098695989131264678667992175341291659582129682766191524935820555639530139968337955581797668345374085577727199980453001280589673029429845104776450909817850341862651515602977610131200323404062268146798949480063478528393725805578121012175434642953784740423340550214392494711715542181446193434228225286839678959246887824463707888591244369919824015747612620222962753133437822585800011783926601765158461243711576493326080907531432247766045535796969911094562715022910476419086439527542323839774316013327035338467757806224345087937396122226019805041403052928453254470837934549453152033260963497159493119450046141604102276102720215291285045831796669120377816171834322997620250019511299249344313955075438069674726649758961209522410865622524374779006477500020951395639713256045406363968392578280176672386334767279852598143134734745242735698753108751436123644180723851694085978160960617769421748696045011749698319755858005068625570803029202600124285080379625042585352020711126810113207433832145423403975590194221936256684824796322297445285587793021838651678354828383433674440167438689422299894771312810036996219628855200339979830221655136279958164089987992391898985720666640022740090983035413413164208181888066082303141815092262387331733690693072618252897545998824551881598242221574201601221925963401260793671643070538009570502060398764269546633132030200707894708177823158955789180519350289080711772689472015212590229180672937606824325516482401327459305158941564738071492937738240229657174434664537692000826888031487044122706601611243613529230246002902345770631466983630469012192479166708216950329707160878052430527553920623804052587173516749608356958766842756030149097883756005403345196127365663073230603600193120685323993818715049058867980747405841182941848606113587164931062787845334714211681340971189656755210511152330414583820175499385495226404701243335762850155400921169424315524600963994223856844598487185185282185436833277710535717752240344307729750674653703759078990420100612289819267607835239415528678182743149578632109314553890029328079937507055563497359750919012802683307501175340050125566150846026684596731884162274873925055351556955122744095156352045486978334222127901221370074411063412815446973924512295063493150842129310563583004526064692974640302937529391555143869825071229095942731778087713897829202567948609071589776037200866867889317132335701505538502291221548606326035248122910982190997763278871624273750720276037481397616306095945899509015840080510053578050440999454554259641155311170847819866887037582981467549182710121854261171830350848267328352645303049755266140991287449190367950663648981650241466591563080188268347116081312284334859888989494017630387978550241249645162173170254605846780228019261124786370779307596593460514883871751900967753366068651415442277392408903531433153344438519420230206361397994838571371981655885272391345472319203024498293937106547048629211875494117767323792118071848010263690577235757537439951831951014723839488667770672709277783157596357692973779219521273913671055844280184231041290526050887085637700402192240303393361780862112905686409570024999955398010181372578831802399701813095768101250587211578544958294774541574320979527776904716382222980657411457846729551634541610708155876698519221108420414868609376152771655002846540565261718014008934648438761708137792635053225006282049700340725480697679903407881630035463847689550543889335441647994609514416475638781845269537811967305766635818316420193705858728474059899342949242598237656686824822008777647874139269933594361622610736501864648290080308641522695451513063024784951490984344694021354605586121080349341708379284122830980435135136907255575601748653826478801801241564838008643261074873542313037204948423711161638981540425337031342877814681672012509694489132798972321933227173806626125485314286949835016606186930776429209389369781964670806434461283656332185658049369806266127268432643808101865383851723560385431897025465435660446187713502311651953451509797105372666166428706820226837340793414584685709181193512704026118605286239309245707618005568953782629026113623830889525588598178042588249742013558111508142293005385109709034365529423041573661930408077233126547065262657481124813251327794525316280762002550641100794289739093189201891130568283602461423028160416377988635280829607058701003483189329901807433589388266421779042426595632381305557313106851879054286271971510556205389992710813803430564858665291203037793651282006690773880472258746756007925009317807875843320386825553973343961298038547110254142705378624661859857677124733571603086553743820677620340910580556819684714378491185843834237850231220349235299090314825778654463055138597538825736210305617397554322595231718509190247696974096422352314026245355243699707822615761327734521103278643689721953753070205250536889825654805925117893270196323460046151880483922280065237605509615942461433713901348122429472533740562785517174308934010531391488344208047008916028463405236315948939793184653463012401063566919416881888549168909523787960127876525455402186951060212366074254871289441809621393051945491696865173075074070249971227770736062094485331152684985063616302233894294288140365395939123582505957368208152915538763598777343945588286026674448158198454409679500688972316501231593334499139282353542285483493565531064114662295370541686572301184759123301800400086268605539752753841456448301412586685361126856864807096968350576681155521134143369257514539485114484181428631854747586754039719628456437699945191083712244487072720447196334354842035043179067325120006634785483733858011319898333596761580972022531726658531911615972766072498780129153979012862146085630699924999797957313977224389520773421986603342620103755214346440900520288405590711280573626630399634178172436443780218291835775111674026742943047229688929699898295800616964450595768422903411752895659636389688039465950845040649413246338946440989864019906408704403815393022776373982823216249702853948155833165744680111038047274635769429509048627292192396952479078034461242147854708557072233675305647968253530125930654945797066080599782668493954735186919607784485066860026394458567376852681050081502769146585973004838171709872730314732458579829507240704282412791525615385214508433005389201541670146329565213837339946300517801512430670002049328950178928069576886282408391821335686498525368902613829698732228244440350437098595191253173285113492688346458101817508252795360294577906637407385125220366013350706350268392168637669903347550584427338312916296666169958988734350255226291264933776902457998706117102372487391185779816649063655632435052991187353838805507701021356622385963354313990965455332576324793568362100119301170166890172265527527523796629910817638094899607680987422712968930702097795067910745334392809768087755725868188247596213770907498529392807539432988797373151146767766355977131125033728857508866958335538122522089291476568078091332929597793657849474032944978181656773993561441838646101287438392772006426979263220698594762847387138405294825611190379784449566678370718068512976933095009856568141858414839146506508440223057610640464738302428575859050999699653805020155743229455651988988713119503849304966757696871797630634390513031664244178886928349125006298023199793135532827219382336488866974266958740571539632102318489479406959671173125670411884352215605931199213478585759513335278437719667167927776909448120921529843512551931907749373212911597085712177741132749928218616697338569591800100962840005686694311383359036341444456638159038906594751610112737219299997209615115690843756805072656046976075903647258349560029204625201986356375497049752234518559942950423936096032062070435223485214897940475594234187591159439495633101177288264777997358165727658698105715679834287405284026818835304182241099538425852878644261994644044024122185011310461942388172096767859557607375898074698926043803189840802589639515865637061381294713529280734810137730246553335252359091056063066125128612668455514328421444995340441746283433207742796978313438189249122590629200285059158466346898018664500369537330879886297732748024773179169721106448863235329845018322654358131503820814702538318793866041653401477910670828689520584483931725356796166049372579291973852170824746906207742399092519343523715783476296230362019765475358838366524084723794510089155318175186893491350700516749917156075621693452084527577422250928126873737433648079154706776953137799212331426346808800099820404612351456975264721507401228469270393813577595355428178828468142299248238348530188677185725158610581339679718392185315269705306589135019705745789412254627027919566054902525297768239965208504503625485118999984594092903059541974033739702261228221505360437572254990921634121142747527743362707712574479184323318235852341346743532743368188668212608068968429293357704017663515466182872247113224232268729674673576154887831125619086710541935302944806009377745779315639150985751982627743334851402154911579963237788317766394139748375858349441017516429766951283793834832303787249963967367165295959876275570144817553811521721301649474796814920440349890752804639700425701711852353773195054201189386773257770974407863990936176708808295415119846737670963121377860575586751535867635592101599748571107893380261085398061930128179882135429391406879780782818641446139915780829183058621707384335397658096777116757972878715052547539841014209868108811766144058633696811397932971877380790443232675028548552267555039076423116349632464271640272621482935533046480533395953684978865897720812308925596245401790191248398244663082865071826698211144713231647286040606390445838324234307138994388521634507133153659023197812723075666151374086794529042724284654053414435385831739682420817250597990551039637542584764310994640379415375752754931216757354714158638266762662485911008570029108371861335943630877310295613697240794628970204039570687481516847619954545946272872981377370519022244523088097337011356437925781701496310300998412682143132685394187989063689613560931001797693558999000796498880294245618645204511984943112727239711201325459995784340112915368701240830610781858221198637947798637138617903876447454792403560304162487183778693609829039835417247694883111933177084904522208739178604005476593743244818496225311055029749403855373660336614600127762291432990897109640101549492957053858313973197717485337650673131125375686663304386786141017806716097271868710161997328454198902699974060742684451903696669585696526578882475243773343194021484835816828038295547843473715611191944108772707180694929256449757951177569857699760341890754336975997182051204055923500145153568457604950258923447753884216860961598766182755308229126154082287125307257067857933289048339092406993041546671157334793285437508057998081137418261978519935422240549158605430587978230659299191278766454527012657964224715194843892651347598863336024026578353901846801809893886936994552951552676843809806659025171042702184570003300205771191288154617863061524953159636291035366333147057219981627984126316204420986222815876789616628757527255322993529761016486573806475549995532951365666018355970428626665130573214518728965976534041693496956441611063985498788378614326957145670459516359141665856278074643956850800970555642783915743915202960945369503571900607559981977279956232880066120909017303729236939468769557543863081072452338959381946795631112280468202870242471368876871929956494120081070671068903285242055164164579563243539065625188355271453324964890545154575058553533188676986706859910927440963079619623622486662197697517637061441190872008534416533039099638498497572078142102525413345845139989465381627695148674369206775446169072920373410823399457051491682412951592100950046021669218875350092661367210461295926277614986473061615706996864389869832818249710580935505442919676272741854825636727716942732871164878123191279741464463206137564515242878550618531088671974652501374561168994354827797387338905170737401430693831509449769557742108866036067639145967789933414150833356254597087434981300697019730078721318754275808066073812312452818958201763344704250760338814195157522682383468245204594939921289017150162808549048237443903494613461584678185704645587527292509742350940116604303508555750934921727596006275519869307827364360273880336536620543255130783037503297697057034844467783164467356875097465330196117189716349515802543878480690311132458785853086978571998081938254683213368582149013910345634352829648408965087416704316826492192179258604397593888591354080045892915433274415649350661940022201230125246738944417244517299409160640998045738079554668431219888983957202141320855460905385216415522734932962170244193352001815165274458734044101261846729490232577837539515133556268664790844337799509099230820201855834170206499750413864453904907174083597524530261662722557723368503895869251946683279044965589861933883247577059873874815124137437286636562267600953161531485816409837970956554561591243086284485332330715040545760469485098951229461574653675689556131953961432006797046393371233849672507926654430713645767553760925283001234104308364415575379778276557437346441604003191538629043026780175061002708531848356694367964553022423614883997176390691033747978913629503915085097056793073961352551585044991403597413155587027609512434296449459978285582168770701767950533237674072685735754479078002324352694683718372438980245543097620371550629429382837134296856358592312494214589089495585265641714876949384333716733031566327763031440608646740838640529388733895785039608706870487158340820770852117803592893807096993955210417141219428204102164883014953161172596921341027422550374099729601925426843035757157250506794221636157849831072844620630365127689824434454650751771281531114806797717129687571144872817479375221168973920553825633949840648108341554227778891973860570301855169458472287325953440286085912285953066835764205694357938062968707327113724468839014981300016553486332426315538058070198060518584989667268877731497173157751605383813169246857729137032518145439705340331342358836664774886265437436968464734479185109980697405470156010807455716063514432933567094274510392996613987358772361249786748991538393832762226654686781191260749138416854762178827818605584638179229307510541205539968758988072520871885016209246923895008511687380942825829797858376146972561483749994714862165873878443700950421968533754746240943744915610421543174009615022806511853323868982272426536549783591815968382827289899319395173769487776365568995909810996683737135074189455401993583598629201307596428217506672751933744127924789750202563230922459839169057677324191571779737492345895591320226073112816921222204748874086392087623368059732240820611181560164122633513780384847192218073741283380223356267563059257714463417668680554010476533288477856115557073544873735213178996214615232661666329843023840011797143465331607707585888859285606384589350004930401419286955402545437891762825954241176270829367186403932935501362528148022663394422020813852658949409559647141731124485478908009069444588140786039645899978777056133682850459765928609350978019959736059996580519423825929883379423809059175726575159986923636804012140205388653501255852919095565769237415520008848841446640091883216261598291898092965664241655610163963547369851566663762146571037993457207091700872941198608945372811261547707618057698482578271882760535320133444236864987088713410928836779024841026901112235069246725490150336411313035993211612609530415355517335474831322095885638945441946179331809887018091034225286351302885280938337838128200604872328570346827071829014489928994060041066147740902180641610662066319934356949817159159387502426050929716501064620743546639135425623442658470155001602437080038518040072418264782152792280200045289691548873954690510805557790883549309720124363856750250120845702058573554072490575122200957031440393188730429818587704530883546439696216791916308126693482602476713078511769392014407078689651832731908593158850258546629007170893194577003314528910444143070377174424748754428643626133443087625005764194964088652171831889425752273050522700109489571233037616745361623283144122146916667714729710818165756240269885337825564598966006581374672777437564074225793224298368749811254461123259757723485059735843322846722220196360279347489450865030582855216127646714720986854962794464512899265682391202693785374352241301461970944783106437558400458792972206281187684063480685832122413023260288300095198666221855066001698104698921346213549986088677927295005365214899970230680281736859593786748416376870735410212729765106019372817147029961000691310605358905453050404329880942891931313364378420367646559317635986757640747180855936098909677754392095926160322111734055912937314485744551204765795934048627499076742471858032852416613809383237444154578667287650137158462113304785216984647448574399468702149720946656853224265732035522438351593766319207607512775208918475813220740256085761251716937519480585291560679839985676394639656515113939765329838082594876440595896913013915979508449929233446958440150988466706172633706877268724265762790103967024979468423701869467488457634125776895346518522097599810359271107299490295524882114573206597674101037286454347176322840632776426415748640555575030351314709741869086118138756720875092159758597588447221927630389659956597081323548508845884323616544283674407458078366022195056646048174200360319464614772467056379598418966408419286000952250654017215370313922941296723801830542841943193894987517190370383269604520273300991297500090128575391194168806413139559036238155380770687768253720107145538054727126221315259564531567473507318235166830242162472659092555104819651976968653719651092749354365715630122945517812209371825700637760244782834374126816907065882868348511747402442131160974050511727437577294087098201055485295445691305020793406046735950941235851312913248043868017329075546768130665293868310911767218469896778083948354890493844688801449284527128151318574154699326968545283810990563638716812395978917826910564943292716529077703072592692853214659212031598237913550484926518868670782873024386316409353024367314056469511874750327540519413251873747366044518331095004395858298867117654308043964175727196807890728966001480083178313027113607380854723167091651160527418062271689459340847093319928871326455880248192923111948427895882846948077317772601877605603125260164157803244169601938810875580410544444336182589499425896335835181838303571104152549456811758684991710093588331543551355436930972279508351229132125285955865429799423933663057018918991622762793479215589256144952769776759134426485842409667128754676417926358311554511130154475968317345567220115726854328124911285941292803929188113861155032440504621191988576553656506507620725985581586425765431204582758347710604776125712957438705395995708600346289743502771563712960576390911668041423366007818030564276660374154433855737184532277774052072719111038819167045164756668053491475587642782199278350903632353854592612245211974234739678345288254012758773486873928988308114980334907115591692652608842065849852799990612504365098124194141300405735845644300123585296631205400851056831570508904801522634304010810823980850678502143378216865268124483134836845580176473863195221411955409638622934062510706314028868476767929995478754507431368096810043255226835958088844261612717942066843275577425905218017921731105192448328895559959406562875796916153266091431803391719225511281566727865404923267043961365743051325712591962281350051488925094255973417727234045532344863341484830345725681773767520709891398179358639699897249280414478596745953588501971101038872865282596678571871023056449922206405298934929893582478926599356337296833251247396509346124580626780409837706695133308669533539459318833077086846757411651688092324504508030781713250312412368266892134831920699681025951864183717840568091432022636049607252301487479482165507671322497179748985791081278748987885569247344785087928350450972758110159542906963524219998321920783687691921659717287424044022502132856924120730827770558889045731150608318442571558011170609829880189773455431826879835222564428624568341623742513321463694696694415326556993452733416809906458617442628467656611250346333209437482637496653824734454767646366671319408405814929979902890192096089833899655029137870790244340373310474571365370097391516858187645330115982477250411779812091517069576548311701739290689569087716216717786751613571340794433295541422189744300997313653466413293818665618670135534063916817328319784388120849928856446526930119278629797185912347124081647515239155330282323098219470476363195675243939021297331878137888524145841480017685402866619439926211889588020655753991954191348594098605970417693481855414144410988857897416814147682975449719096917520625189761265474173518597022977791385597186251450535620680274520254727266964917775996165906147399176811359913210947926928575841129042925615979773441407713193908198965261128498151428350463711460961221299544323608945642703282722448914677694712898313710699686300533408190394827579054903309060948593658351028463825118279809466030730673002289154948743282739287800946955383436457313459791582681560764746908436497879770920657103301861179775388721498908653760806243251418841157837362373147899034335882931234195372105750602405184434949391496304795738002297707939970604029501831090610401162108611654848272405718099284241862738388875174215252338141013205427971670140275088338860025884435362768871848969688015545862613123820692348150060774947509417850092073478283133275351572201609265502190712718567759825654351547733294105557066227018422090280101557926569106173373987200452893375347949252317551585594831534927042582423532126406348950265503090325717825514482959743635772071261849242139964328222794275629864878744300902946993163938629468992148919134582544040014503035505125082871598662658713980510967220649094379257458950634977177144927097759826747358571997605459346737256093668782928591717370284794292241318744634802513153965615812033983587412329271898833952822053425014567430683586128211938442577674244468035708563695008473651265167834984110783086676320093076024542936931294799393964721309868352259112431407534680759364838717892272775175999848125112799217894411896946282752811268138753967199225477520959104321979636532844219638728444591317500411948962951178304494840572521212378481896572347387973529911188020349308200218975576524226761062075197877831374771821079493211407151605875416812143167089520404662668956752855721958440506293234446853646899006790144277473710183962549772841487896513338159398252155164294730183412969908225752869151665063561789905791828427759507200823475119144561434449379182761314397122469211540596381621904110547994653494173042220591398567944039142811644185271633445413572096829945397229300485155107618916757781719492905683867547539424153352848433918439685018417728104270437811880467023762340434138229503899105305744065373289173295940483245114956874150410509265782344121789102093555828479699367061615621878362633257257477728597041375103585161195656523552538196365987464229951716438201882847527883874924731113624092937889611188680095023719363794640364258552748928212098174369301201670884524181288839822508441507170852081281934964315329046819403021902442614176132812221452437396987232626707329523213195957676465749848538321318847694866033033177642990289830411875596918506531359183129629225614785474203620983953211117315736597546173639421296888822945615929005694411357006107986019086539414423259832450501349051720034614720995923227819325639576130529761144942805429537069991436301071972337788828751933468598080054108526183192398848393822378745052064379835344649901376347435942998310182319415586958578845037258099613629374353860354152236018613203762138948072622369848858420930741334820754854881912170952955035699387817385580842461275276509440039188264295987158488200174861854707481302735412635556499383676927140525676246043889868357620205788930529259910909738871575055024571232014749932621042014827915033426938687974958615627123916215901661836083925455964352885974796517392011263286971767018422043922434340027118616107995080035324168524902007085712093963622647903800081575506776774479560690638864604758131137420935197103289093511664315383189339128612185941241479875891538418380072022158653827684253586530359306329365375709567591336605872376576898569036975813542551065794330527941336504007276266144731431807880064574796668933279096685776450843103634356634345506144405400406341538474442918848133743783407898764199249573676301569231539296534352049022047191526730834147465393815502665955409082201074065216119673023070853881631735236574950860873180250945868572268411280180443819362725712059986341880479288061204782531013584759982890742145521013130058070193381023949319415382252178176856120237083228586603738387184582088666001882134008388089404415627434896525932291140484838808042391192001354938176313337288331084293035936476093741727945853142698958091258591399083009002325384137719331163199247480425194935781032467555279477080360032623183276056239116220543977626283096707558029217396464957138764028555257186195074994102387300946063957209105271034586721572648808755367229660015501426766954129798793727982530773724887978198095202139913290824780124707130170178009297267120967903795677069323197649330900727156219348200578917363966637685729557035407393169005871502585611495066574894374820135220341737672661296570101900375362632014251575955434457434858595536933502420765033828216263481401764811333432464745249935599500702143586008458573793080191984946227698100214966026598529658247208272737246359043125034120806289351252606911458781186991931435924901520926066679151148795123649104245025717361423138898057291899945326127993068110482900661030182552093410823835046318198657002149052023843552547252473381455478115052868258808260841201323403843877695686342112979295605711935103511134540801862892290305899016894803183899692251982207159310368090868718852736673900429955188303690246690657600213669403575670157820908858815230069413490917934862259890443063552146009645768784110913571484808170704580464205946817804168740417820742258360399023139679907774492810047213189499183444735280121204254860387771201083733224305069820986899954885646468466901075412976541255454399639161265186282783886767250371934060505831915919654497418539265436224103287161530062385766077879195356133044488725454433424997876912968634759013510864719659460568797718326724229582558642876377383944070225676774714243120375883899020843450549332627582264763878055132553784577315940434381823324212448041399932270197121974562069057884702833601504473124370366138588235339945530980920183676372169121691365936709855732018636120998723825400757751951837274959181242640812661392863576493155053439717803703630094487427917063829462949017786754900874394730940169978418474272372728687579590094389424940725143038624366660878658527607474698903073512331410003076297228193027515772906423810362588583214687348036633839009497088876783140687854589422800223455243163512208446638209395980792339624821735850818759226296717727648422385330095444184098232421534178345142788186733185303871093799606355567504960468608274251015086159427272342950272009246700712451882163435435535964640406450988778807458241293999399184886321842855278245639832225101714364791955575889550671249054151779772525693932524414363844835114894989390943851815559603108515540223601749668132304001678560010278533181031514266905600539491651124297941192120770245412191970230877313359448326612588981745740221612673070150317473026416144137827638317144048541708136883449133851241737552399966623016067435481995846711206819404972204810821227589169527380518760249826431509897477208181935017020426552844319123391688506422053415817661932133637087278222818046508432635396787168056744048757764048372096670995039916976805680749710483993261665500493867325481956405387615976847377170327743824913490158493205272365942876498462354274086886769964103558391818020080706458551269971388614516024441361988465281182237757326587761025793197314861328508980603605083209780229349524067919865541753981912440397596683563547219133103189774074513884454295905590375959986358925314761706563500096589236569147253319588946418571820024074491562633628497750879821850172822923879872998496417983538336641411911809328253603601416619547734685502636611937712044062940348983598706403347585329885751640856367757844939518648926256989242165475690115011502509813936918414936488304387492690611951457753505451061276010403090361310178304108653818088524787920308037124820125984858455461911953951641241707428693760631572907262191053397444042911480508671668823313017650395320984919787085507185496716388914900142226756094588105258626930186130874349097363799945898724830002739299209733052860237860004466423373761094391383941003141039604391326913860719525991834418477400123752618704676334835666404093067415191558963884014437187047042144812620459794725475501209041847973739398401021780311957780276062578465633104876691050202902039532755993578048683807485424407350259639245736594506848858600997383649268863495908052426056697155167215326033240170554084952065061711102119619270101842232235167957168707242923251084284199652989970957401507388038390385491844515250244353146803919285897751563668041853889461183156008278439734137200437346759211959330233907564205399728005514304752055578053417365552896086227488081604211864843206177078741218305944429773995354649543783067085860459708201435713871641073733025365533731010182309393644660636688859824290781589520822725531599548445503827113967834393421307408113352686595201093834001177859608074157398878794047577924873347723498492306912783876461274345774250084546322738823909347844368501190729434621167226576460652873627833216547752320205217738389462857176276334555445241836112301029249113303938573170460405744304545954127758980370901637387152468780771438809601208041296157386902070840453593384497126523707950917421281045929841542247366152341466867249499750934799420141182916300872711378759818837947106335695884845733820143435586576807774271656812691083370054368483840632719587756174399430205536427552040625919007122661776113221373782496730430841049276589901126398554310447392352810403721711942219558160386898048828514734591858604439315444819904310889719159363174064024096735228197818671358480880674361347602914538995304071706309279427269700353386466420272047214347748070373464181393817645302232319431723141908300021652126827531599455096692260899637432275940643370591312833759711198181759360855839952277979599716948857713800822964814243322790970228715771118451104790742789084012107751174502039214769849663201383547407154447102683132455084710035565806945751700569001745890320300022481934720307585745212788895043206265933378777089107105007895304130376282389461944501256966244140688231631848788741885922514146664086486714100948874055006909490133930036370929471156664394070811797278687947876511587032301756418277712445076379598190308855392442805773354685424733092301247762361697294966708650664150552139774775656728051593384122440385242524640108665991623653505310324976584522409127570356587639160056832634035036825490259204591739018546969962229580817411064401817652294725880706480443751507029277547043501841151261709217806174845323250365959065393237683568269167980649310884657493622604139777586992046333969949340693812300689355540570131867099470788120077631495969755393789463215446453905632750999806318652295089670648920068250398009711486213655713808056446993989331778867186072142244328662934803177134501084621565118239446107330795671382952475456149037995117848995036051931006966273745407266065319577353338966036439535339967366490355500070128217001859639168821711306799385273323414446058256855207410795014917866313687614591146478543940732259241678987667280497927307827192239237012671018417545381009716905913944542585853463430540846890141763394607039496205784018602176653034917666441609020121517606368552394655466485621834015044373764790821428684564850839234918788821121680344487330850690469371424892930452579190715721777652414561341945139635374038103235204785662837864514363251558905957864476184852099236659251511090663779445656133519269318440754713507517226709685592030968970328844902893090863568003465216103184238042271355850788555905230077199988263055655664106173467541973497653318018773713753929702424923245499672737261421071913632039039025886377013359103842561173862441992466274450937330287531769583584369942984229072825955863563454938328310948317776378919563381113428024410323431427000321450381876326460217959546021174110595451441665323443530866174279630597356415830132717688332461050295310321543710432691821359573280576524339022659835928330268557051889795539731372628177720410467975987776300550429205119466001099705776474871737846781535519751358171700481875848037492877983150573732270941563648917238251660972858994532522588490703564011587884128408843564863926181841558348050795835316086714428750511404166853818510438770736040842430113678242872312406839035005380721095399259891750484728833532733534910948589670220499929583684708120931018220816988556471714436996066161936933878361141923657266132202151850727673633673283976864334217189252843867154157719529223556811653718162942406166218642366553305032141901637897741052135386831694934842301994549445809469412809924505541715532029255862050059948111204622756736736675066187523632571469472242312987819144451947191154024544451121079320995989739203081701670584932736346220382618170754808040871647836787544580096362191272421114677916121888509529641169199172320880729247413377469631531324677018809596707788587167301751592950769405441295692243062718673243264139685442995201611993800156147300016748678019377845127952174200009882516931840874127232530811269102513151699326291074477528915839682089701774801614545986681173449958360843347516247508285747810018382723010074396530265923650137541954217800744052609035123748062398061566661537170392933763144363180338796059229586388914993703265288210122936168375816292681269666912541928284720267181391811263818358370270021924945000050102456434524287355917342330588073515035986085097776019064796421871523147705234564610609012074286822088781797269707035774925244722791516697835739889805497319486076368471477749600898329165131679202126733783489157680542556027042951609567345187876654624218158987581125333010086067460747365160116769361102654700283370925360051075198689709194012497207448008990766100393147210898335769608496404244432663032456814109880710557326416454194795027874957987631290121741707619241413582055218779821745714765855690663609637724004828930340394657876639777017069756437990438977158872231191352843751751060968052431783912106458126967202260027300269628728343984831691339388098090455259757520656846954168378789761232730992314592642558068136202648484333372213521958296871041901454064292426707772780009784916699735505758134132758497151396058947871766573770672540151981021311712519145388618568499332243643322510099230701510935491083343462657571371430845767433240292435637101046744398120070898790405562402826268022452521176868232292324783372120867482727507210312575188592842098916973927943924143653462726749913928038192082814482685651361532135937323781686867783878259558366216264468731337067106679963020774658011761044845273051815631861678564555396987025506568525107320159313420662615268573513782690845611121999485181397155261877449541681822359154991624846517003057592845562321499962154239016370929108908076305534042157193009648684825576888178316104312595023400862852735415432557078918442561540209613658194446068079113415557932028453172639097982209402711832712350158721596473488283590203337525551160567314037881230314617783228638594180081433113122708046214990327257025567034896928240071267511383599438440670151402396264340042174620773779377683250312232527485863457320592885867857103223066422463390347582822049246585222372288617796576129689200835548350071987029854113573333812161505128172827716546920172163352738533559007073166419577602672514557879222239602477694027306619022339535799577930957612030337335010725508268147816408817166962988421956012979194996195591877466444965084360528074804997322711862265065145869620134067208747744014137170452203751972968914175930468368476735079009832876405404536744995156589863908373455683212043843954087585865139394529304080754434658813849444106738690140846476504894052683150365865669365817509543071679219580664589201445438492609672687822368389818302381090399093920057747451445207063829081458995448434302632746391807131739289254587121589540466750642560749696592812532672223543856643459642415820798906372125007063778902455287717128603628801664366854076799035294284308398076800963686005071752425523334806641012111972711102034739228186164666194315650595920604487262160943377300035975254757113790880451817821719538161163595667370094121384009753919536524012625584089261871089852132472090230052662323639912280183676714387156254207049985002269692690393219708170052740118911046931558875691719594809346052955169672312814429273522327087521103753871900855061915230323396743311260738376692252901508123065547024711365982830598501425324804135290912114932322751766792842234969406806092672270359213605624415371640124001384253571855134444746617125607898282935711389036201952746779658891082605697412042318419659348859370640332264870688099890734896886661256923474589636687611191663428855340242198485688330892725394691022635890262108008957623872111844288679388889016142057233903721634234553768612367463873665131377147706216914346294064479974100970129416739456363558019781612056505102777350673847297650221791114249694949170876903943094992180277787445812378244586864444588076072156074265930248524134965691562785608034638864057548500272790045855416718001010290659677086194447172211455399153761211144420478497285852236959734086538594148335770806755590644668108873922152285174206247007559626529867122981638139040347068977773591578576906732155954312189203377998717498188999034850066194950668681637677162892875513503294415400627402346677959685989400665934425573098506829871322819227510996286425148250939856759003943335614705409505144267071087336586691214891099798908472565073042482293037309605385606887590391712326962526132983962744141691059630809958886533741154958980711100365874419001306531816280132587031101940707985995362300979048788296333925322608966902938758286894637768436755480869034613312098212395937307005832552746121789043217588339295445641067360013460260240055329825186302876072995238326961592838223701861929993794954086063686449619730990582147892586925495388128992862622366797972446840709352681284259118875098959737108295443949294289383125096136565229304554819128087032216152726345586777908136076488760942705264968815771984117940451165564726218715323380376544719751155558188815192292736857396792201786885154164623527740691231833733455761444609418349005969022538099859740350432236176200119259111079837630142484273514867563380918264980327313619813290485730772568074680315311030019267483270988613366513498509416044774974835261847744518742895274336725768287127103048639812642453168375637369132309703574239382212503907493978987110207909487888508250085778888792528370081079299284538847373433364011793329639410745646887844004215961567958653193539117471871378631289837288161795619851659371819397747799971375315036920899010111976455552712177827364584055315896845933932318979035774271047513070772277101313685181226780946340194806134688035170963325517449728434804817316989748865252835010457210905659135030743364708762324540540353351232148469387547067444919668663891178629211267284210954885487636571562173800602093859207991595944146293473716564404813646076151215345116832547236864201050988297389180003048466092665234569112883174323435615431968051283182075584849072717581913466108703084839154302001220692981040886701153336253972380491147178334698536963682596095519108119385773126782252658175496588024777397972300712812071755586240933764867264888102649441161289956458189772228928340256174168931940984924775735368132282897478254521731665268417952451582338845112696941673812515999179360646950538791741092217787385752666332455334884969490801797772149761688305496246286463024585636006688311882820806573781961054367413533796165086789640511188799417398391923801768614620036175167192246141854071891361141594775774322007953024530330062488697759424380281545487063895569438574551251156787870505301546234510643051660461793435089113279769170141828755589677049962606759209531410156708563269711405048336671687289601839667464686988949135805181889779049064525738705556535634732727621892897014341394579015894196769859694904729762950670343313297176012722358718686854055442182226272016915317321054218147929191563096399008338644329062174307417069464178885095735814146735987846146941828385521118718559510164901998537691701777496137103206099649489390837269629341433796678165757051270582324587472575256110356627497900613197794524501421281373514842538213830410267101340720600615089803022977507463827685292820940031216825360545257368903549591539371100236573044377955096467042253688671751136935163863736947532982080461341985208937108665684788947679196124708488345160387976096230324947511040619831410950567132072835061636616884552054164874597389089488844512168287947250544759026131347901748303335600451710562047084443471071657561723848224320138061212129457890893780362158914305244593023956781984621665757247093773174704258315774873006087182063675975871516264871692345909178718515887902829743718099658003915473981242844444013645140924615542682517925829801916665167476958676749860083376571598911491691535678563946682000443857544486317799772576554401456620121161123436354058579385253719361587576796821113681368515380530179866918707002926062199112123732508387840152880472584502563696649878863113248834737071969139886690899921848600612460739174943291489220898913213562473695046092567431793075619816511003996693635778395165366640275691769842102541937421656578565095402464357624843999886795511016940254117014266539215630760897552190405889579006344773396283344361309193948075176560804255361111232503662742225334290569441886462595609632813161435858684318515473355444115643048628509974725551756457513939622997104231944887182752628103652293439837427092761199387203215860551714551154142794231050312244313768174343072258564046765122592833660575010854468552616892910970346330562022878306109883886258130131620989402026051403428359578129477621204358712950119278670878671528034843943982119661860389324495387018776786327173513979947245609974191228760023440603236557114667714354747455895874262892512546684633314109350986605730702602165645885147623882238924080871997050782137503818195618798793620729095719247597807102036354588579033244738409564158037104189340008666297010796448204017537231542700411891048655664816669646335934474658020351068661041031081366185493269487248015880210870582062207021445307925586951929119917370913754869337231615476203781323793885378621641500672580006375047247828758460773838299258525013993658475633233493141314699164512881355868693252106433000096065806448702922403922794881548560060812429318909017795527796087135328837925734090684304862743444186047302977427959764557029475709640494913573090620034190744997985064567615823287409066130954599637798247190069591665474914696488697758673169818531083397475144767811762520369647167224266865564228293370693991207585173971850692096973631665397792524610023277419264202982235384902640641688127922373323042860829104305808852520418782194723559431917418162522795824112103955275641533236232700586417173596364092247035976198629133876848705839347441159338670171183793332392587771806839800088153981937418516316442599370364602124194977072565450546895392612454908034302177700403904915357276876036095362040393763359917914038639196191216512093967962492985357883617082293566029056993452073878567445113077868252349443695035020619268913156204636271284157687308640585203173871543989828205304345037744545888749127839627332608078834225017429470429634159962882575259626547267486092947582116402656926683512263400057370002073981924897311231081913663902199055784338815053638535177984142880428333609053511939343946891587744891488931108815805801720391479464052001953554330694064614194698454556153466477724787105163139933309167179707693380119398670447550212486242434163335567887594963746091015767824704612865510345450578996206235473769626754494506109622159546560554244350318992788474756468470542521383131555260268624404827241289635066035989888973573771766736201546740185394268394818504106426751607251428129829115510575541022733010706659975061699563680579858997316403967282083269882791191680717398770431185337496011735658060155948966325777093226915360701492014846326008666184113272242186379466155413496095867824365623418493161677976817681051852911698573187327675121799484648980304317492561031667012740333492580437357240485877484548216185472645619434840588381973245188275338488917176433759463530038860633478105656369425593204442816970560076539574567340854072152603235922824326969984072986922691461692559178815376417744127049922112926428028926172994021620072867058992092353750065289562836479555777358532452033242050161604243938087150805674724902633633741035219761238267887538668336907984738015790477213817618889497830541566421992575978128756661222515815378738466160471594333930705856766123990323820681293054390307158315629797166127414964219239847220868452544004920613874576731412813763668478350328305910672123452981465992708687085328026757707878305955928557562339550365886949127847537605569134478435308016910955038574310107331947457753212550100031318668969695405374204065622911428460398976578331500739510433725310602891456113748168633732732654769088737209714176160541887289183300267128529445911686994734715110844717238234422344115137327616304763000153993395091066743428820390992455387202748847687441155456669667370247624377050929211001773989737828651275532704518757592251207043532504192668802640056608933800510587860269128335194060287998509811204532019678878985086336012034449847398649788417302085931185459780503452381541053206529931780341988431029072407752573324961160715392481788373823259161173256621997163844045997749961618463328659410115517094065744806050712475556104877267024693035610690461548720947053873517790468268236955294929711349722503275917748258296555784949661314013533041216622762424767889403716395897632441229383459220593850142841404200444810577903597521499986535077101366683373050922636255396059305126101147302719627864624524629856299903433465490208768540625256007999747181370171563740585885583059689547408301191824507114957476171796803750609257263211320600587474310169474114401362348534074195432452861402057482317883839021889316467947808599305315900297202613141002196597209934393207141902603073996347932502870983200642601430596881283248084297717519938732983174653324797632577181762679673384190056733407655319951874006156282453148713574953768002017576863671000488300834308029964184252433141261567737045063475876601668696102520962446964335064239579533465258742636836034702798361358548788773156684856835292730368413461067850507976464965339227812810114525853483144430665815043360092224890860056719137750024464388916583629804721531218232863872627623379992529710680527895736281699177608058769422554132781118970403372496413300701324761840055903107975559853389017278743108086506614622879680784469129256940805381995685398138174089227533182605237569011636623644005266248059043237856862728306378264126122396048291949403472177416511493504124998434804332603325726283900732812384761178982959651047180598337912307635175067084912603777206755803814505917679394816404829773535230759932751908732690873409136984871387363986177613990264334145461995297958495876870981620879245396116245962590106890821338482876436625266900840047492932494917831404756021666524171407013457301025942214513014110035487770185155685638514589766927265387478188039232794275562185436859192308771196744708300596581247646842201747497481254512888159410239591529502806319320647070657972944199102662074487306383782686827186960944498013800906189199410701948518365920632143268124137675150134660480029392365861558868408972067498252596366731446580823759348789327176224851050801594691918615863982907692113618437378461328994005407819288165350641027178631220795612720493478437127709981003583346740449514539795254830521377648864470170280533191425481446026861460065114786099863249753162692669510722335550307904451079704346231427312947448650483255709654014988624367517267320052287078218041978734774284332278482748980759621141654009870562721346982952841872486887470358943442578154133291588620814441946520735487789674336346518524949417408764263848127434047367545048829571329410796084871753470638588579502227848747137853902488862278801024639904308853987357578838041671672463303874321091711179562467862102385291141917602592055170759009220924214350468552945213662289670995100781199556979358718832224681543815920460035950671701172161216428109954873745198918107903896295696559077611835127451122519741525568511182086772650015655297018565206385938428994874187684392518716946241642895180364806870289803999839395984563428748543037952465357362628975020039316284944182089446524796903288515263609335922080607162989996447020975794594713724418513111346674772249836250849633428667834641975824433996509574915056798371705725757319749113995757588620624169196868462698743127599525893981924764613041184668833332139027668732139831979721836169790373824701310519056320409049746846964296916067934362007337743002752266465708218236488960291419417235033637996423927951542429383817476798456089553049051182245143045188083665206796998980822880692127748619133956888620321965985787373573583827116174001815650805917590760526872262796640993102721889333109947504974959248632127072916309986360398971334853508367328564504044662688344091656435995021059298596753382785061521038778665111021689170388868596018080776314952211608297486118419490830131105737195845878726517108401964843115052978814338661736703346332729772091833089468454584580085046245914510029721930810990206637262973936663962981675311560053544057795339214924609335693449461604578251509630324797072178651000732624598912889411292196354515094600281167363055370713998268709941856401823328427392325368387847963044279645710846956054294109023529395771967465297739774730187317974526927910984906625742212153842250503121694964520967519263274758483776153668762714266692414888551342559285046265904294851294437167052862086264145009935248697167082628358354456465758078282761682160113361939678300740659846242406993561669737369682913310204408314559710021156296910214549448938337037858823841067241378979090292792747560503570900203631913213131305424082477699993564435507041183131460056655340234841865565925338261647916311729197330214320178463143158428881785221477818641872108552969687784108655161070904018906155906544819942577497156879783271317771675959709149242672393905160891528946397718768024633767587148004369510316399099365643006980285197677449311972035027529951338430320999276229270854642520940371810197178482788690991125215505498369764410331008585444188242355603807398259950446219555070577001495323733331316866292854031272199966856632969762012087090270650481777433650905524936292411564745126110911419081280743728083696615809371033945067988782929492622683068783472704493015181596560639099731307044235467004113217704468774123355978050838503465846924953535155941406015490093933615788609773243214079596705648231107796223191810553717252789448995312045590287784916682772458999172942403151222653618505266507437830813491485061137351179708056911832851816960028672880195964519063088737699845149182480150694174898403086279353331259616030356424582069886145168625968012073133777770292761507872071208510359248976583791825203815795426448031664486594379106358469801932188962121486773601233019893692603250052332513227496249880550374238216511049483098969827035561608226906166105656993339366517051148006375416531381124660701146118474295184581423933283155570317502913183344119905924050891435958800144198615461163246025820573533354515925390659796190850538811673854260145292078850001618014229300989255141397666304825264762649321021822148561865353563591525232627153755311761624194761701395390643127052244478093492147606025279595520842884418832843357946674434210013337075917321502947069573709236680165069264019582254445917055602352728692329094434566655275145892501345996286351779627964133558713943307856533431147477789166592314351745427623554828806405703134428488400751195216293350624166496256521744778248692163267655194608881332057746774396151786935174925062490405553833476156522610343917573539331209631054820116928410151041098550748111436211669799708394600014382968381979822058778390035518309033995330056719780706706763071548087722788741441187625726866606310415325180334629043492144774372795427656871281658265816126942366425451343158105817019293328638202826228624874572766964086603365015880203992448953412893813946298537856924929873431982417975172544749141869034276401510703062332546360425218250565638493841949809791463289185373703117139489939819792667927947192567598788615504049523133592626871761069841503758124097556569663073010573885259491632011368737949139298845840308313501239432737142557373868126052653035831657668440955675263232148215543436632031042819517301895699329413532391407969744622614618936888096889452206698914891583678297939663481156804141770218004331597567490406273077241524295338220145584476586553534933036768163298708984136600887661373865925152785033677544009630223287187001345253093653606252894128034975687542251293191677905897004366299552294281119971372645863228385434089127571753850274361441846738754019082145663071782377897035231740841708574418578131725039133576838367653315193839241957706581841485349594867424515085493863163799124567425526286410351150761647920684210323064969221178935256269517096612332300905365098289761222562592533661928408020694479297550212455717560965123884965850534831007474271717031287669373975791919230083848800600132868988117945147177941566014425232341741656842140359267482411620282931036272902402393342422150497854716836125720753773824546248940695656690245758576397741597175113239343616130493083358721129032202793617057423074517517172060365649998758703157649221253121205452229506636643089783821192551320791880685210159612712126001600742340604044541506055624561151330430141317276318227581872814605080660764349569245882329955586213026673375368837503834134960289458146384423593040543292225347263911252765107541534932102194591674162862684311725338097514782379799095246390131998089605123864507818817537500855296835859143348892585124005114752962714325903624483270055490642474172654395635025966279342177656490316648192636364261643188026679677624837257601985313010836626809726066090751001172881492304824007137320664712658038157389852282325972457381953831665122226640883843747677873487451794428820620676981328859691419332030373813062160494160090566778081624655625439561604671835368235496975548853293433318582575459848039791111849227736940147620062383372145603907096676199989634372838310242641084094073562305945582967432223684342807167025946627559475158461532836137420374587212156133758521375157044374900518786333827776374536165112358088081803008646537147773634810078931935754394773612757610181113549860777146362386046532136275263097503233362742947396788470215614977962440079073661518476784611391570249235311063254241292830396516522661507700969105160480721608100860734631624788181395915766723642583766163981675451113065179379291799315370939028049599796794660049211255318285638487596830185481366637144255099146694125386898591935282383796753622886370610156212477569123673877528920431385325997363736430338839839945567990730786014315736889197877683299372383875872649929192285767561155571202133456383287926543029740486151060591271445524861462898032646686832339201544987369693312454363151563616004244090236601870427253310515188625304697890736297216608308406617040432263882798682817602058205504094788911788140160198138229582464615625076648898181070537112755064119799711189100220127931956385176087731496726435865923323799973971061835957506779606191286860048291720849512025915985304247338569195972422381694046509295137765777263683241170605227188363745831895989949193353085635059206346899639176935062337533454262502845795375287088566023351639024998910297341757047756370687869394323151021123321885696023858154762300191857119282506051926843484473441628092225099456436009288656687450113052090044419756214640123742452389136612544523873799795146689401180830668255710187348306187139853834204897562399286446961733695998754087034947782778576768178620164979886119279492774310591544489814200869560186574127818044195438309546431903814273724891528517747933820949408134715813101336617017658898329597110141312606405364287588829103618907912944412061378039869794960773414447200035073499576040833940464208272589699915600100491568487645022394312819079491022346982962218634927147048487622591759886069467812671370210772762865309090028623461357353348119667532520429553831925588532052081135645920853662379296555986543792568660290602645697368544616577745235704826967385743438055817824954729379492683395752915603202910978790688593401561190967170481456590097913727432335947716618499649193547254120440867368699126866363065659638238534506743753885859775690266528752995278444363513593674556145890192852412806438401189217250901251097245193441015399727067598958457291462334840969764576715176912572711926618438462863360117987231403211964160689739832939971947356789062629859272799897949601116564164827282477258756683834898117853144145027514754904413468350693902697389409052822183805039373049239444653601803595020511286951067415803641515011871071643198354889033872842526296585391709164030386079913154349794024715994077174182975927487214184558333479496802515922813512722914752805949375274501938797264032426035628703289034441718091467131656183134860144279792579679039644773659671093081310979724514030698607682906195190115739838259780727795796484363659767156966484739101037041422761981407009834113428301087164521040417377191588676605725347230095193426503134000624218741272869756830269007346626555606775858132797646038951303993186985552964722553089527234259456147031780307983016690119557608354498997101741909777054437052695626551987433275696256004280126159301501266913831029001116144385058138923238909700511158608254051831865799831916711004620998371800875583678098414087274007705173887804233413099585070407689733347782370827005450633305114058707535788270005936325836737136394057788515755671990014656437994327906812367562298723250951446860706903446746467613989790857566734681473821010172632178304353946360385770788192993940080213943431927223448285493605589502731427928827247877863653913667827767846545587640756780909640333961690292679959939367288291275889068730473150275025237851835684662516123263720761696270113058895651993069849060284887924124624288860382489581716565970165709969546770431851221297605409106678304570031240960139060453872995939081984924574150528974980852209863614990270998354252500230618908010414358376618212698409052066366012353833833239902944759626914832754825579551396424321309190425605411052711454161393750231551353085754739465329904783127195742202536339735054684071991514933701536066784196508630242718843616031173239170383794029253242325782366337222141441074402666210332811802785740930111375616505614340388557720439722751128253978263217026901155676187998853220990338364505274307963549208245983473127161199748342916118024603149819539301110504860083613301441204149549022484797798812281445148837822548990348286614405427053179233554107166608669477074953819159506100843475888531026471783750639221321482637875823356509203676476514978845897754491266881675288879174744779656031374565096348724688722205269642128859998379010245049685029018155193452075307464604831998467308937023727544114288327498347843257542743621257731757494238714355034859646719919926681009028223587816547180803855567779088519486085385489331729642308469095631896385550987320917856816593201897917746652789319618624472579276117021412288818172786484752112787123603904487127919521256947148639559042635546530752791265573721404323552448487084381669683093093297747702316106933827442303916650632762696904689051939636190647210198330110725998053081233900142819858671009692260935556444183644304143445145600054167138328088177048727345579846134198894216592132113793687297383196222878755221984143832780713645851940505124628332848407376334760022421084727636408521779039653112860298438916498246984802256010888254424181467063266610175364586327232113294758791494786328087412896958701299685346277413039789603904473793782645452980592452330268259135095414330088041430960991383104350731624968131559735971948094166755293776113320001529748574811950673542499582512885927623537068897383627771956548319949312611009727135109659943107745107529616226684773932148759796849676008039166394013525760390562063950792516032670670322102530696700638010389381083777420899885772019161699134978946787324162226665607946776095809488164136053307858394153627192780957451648590325334469650211541431366346335404415457717576196429727468322453907116291475727012177612897001108810371879323186366959602393350204548966852132873868903009298533563119677959697068132820366783265560416379618172535389275950485412963064354617986938063367710084059316760203424720894279584295042141946633158491918806036866084322606978795215023510621735157486966270407559665263306612649027429694157503216891754130282989997460577019291662047389217688537755086131957888783808353738527085965294820815270490360693664899852993059217179490602652980768695299532286935177339538277562450701473836230802386796908643052076361139684188434586912753542775881423186276922559364601889094826458239523066959379408049718261656022846527867798537735001939288330244027649283692886643216404306436298020173458504935141408413163747593009199563930932456769938442852939111464053310734445130838236461141600937068333466623779241242738601304499464764278027851647305800579656431618238406055268169158093407943957837300127143759793469971242089362728502354199560217688712830751394613914025272252115652350953020239995305373563777930752342372417918520216982258525438514824014606800511748144848672370840079363726712254240313823061032237606476145705655215192685565248765178694301406972443115509878780862009710892854095736945876102944876469951773708351892263538909455693331386179035495090784218374640048868769115853723919194659219507910210204714770139663671149298199143265494291087178299446080354679782069932608681368339963469786576557025012539037935907656925111120103603696247634251733778527540209018738610255642893981762741082774851408409345534279541662113956768164387481013605685596428927258437843339948832181697307278864486464618608507313996739057619176431481243226036614077132028438180035512705507147275569005372102365986564511943789438516329233484508686639507308219878320306572525035557219659218128385820344453997456794182435160551908534819049197088733683658287781303863626922362933564462600712214134702580488835577558121170437234275027200253940228560111148702024873606413723435391204029811218688905606836274652133451298954230662413117034340995699441980985103885409992617336242618836012874790391941093664779524307040576038492498554041804107535699248033995811429018835032862604581224370897565264474965017979052014414762733365707837614588043227125529035669326927743906426102245910202881766526748072063161617972195393201569496420975594951753730111058424673599648360172995674984560053285994377451304414658246765586656493456341079021057122375377309727571223854490542429537006453710695582140587263692889739837113016439778580730115138027768521085613982946703448851498055485377257032465048471838251887295764626257776196803544651099749931736672126997339551998859675046847654652255671767591142646341118086735384148589547365627708382272253072254816026289946078032501952645975666453231928508076271914338260855033508665085703782558997470695281358828339004653835090490823769544957434736158235514871551980466574844186029067893553716733185621917622219520462519484934625379872972241612801920229538147253105109988115078742700232709907319133083516560366291885169117874787054049307036964585415613294884357349866602563669898184542826236068312606013390324385474470774756580352255472258454483619561392438465578271669483406425491527183343352283816650064165615762572354392873841458005983926218529623431605311572502014853855873016121435147707926824131019779931239476276821943013418150158255482133359633431812255918893334452735830440335247707621914906814968228849799283478933677549536635499620686936852001839198149461898156622365516438592532833733675687451693057622465020177760135386720221513997194739941895062542693239711161275363151521923281036836943648789846736484113960862492641592962447072308960303870169109776208858264775139738786153331050659196825061179039542404210030700034747200903124430790218196745483385206527061245673065317689360715262738616930340093184147426670588847093191303713220400821163775637836798266938858329905822917189063421299939620558462428541258654215445990988380170222515464646709257522324227315859243279025188069349329434748676257956259125037549881063431796182253465383493001045647398684576196139333662103172174415789406232534924831262502469699072993247472302268637632419481619025427100432751095066678628218679355081772241144629963224967431176356214371187940343059587413268956234897672734371628272412447337440616270315812149410514005349095969604753563349134023450021479537291026498421631497096119044965320581618196709444165666129091653040544702391932623752192309028733434148552844693936147477342143097034444586800215534556597662306726343416087316927310508632322155088003470748617294439054643709089406884820050481031438925906361842630973326407243452869626511888111389651439030660934926425530810217810993064377767815830271163670662617442324855833172528817457432303913637145618429360495570374360908791701842100681935362337493516699469084351702881736906341531326489624464747292064235796168867313618947849540228757090956944717684570389164322220907513463874034985942364825608767801451072617344693216061630970295060042171366819279034138739884955213561458667791835568995554278930863454188140265373156744121280908170237419432758271872545372132269390006723838292933764797728328694493008953721558922280026055963537417397621202308598490691814064807635490469666928209668060998730012999304494054171037256335497063463236916150940506281071694307942290566035464400153095514921782472217865516934604326172729186178433297148347166092897527528329542308937919544293320336437945074069232137791932241602804546700446315919231481460620463046901914829799461438477328618195692977079121254674964855730149317743161083654950222163537805631388839996397610278458124168751916665937311028716060852268060845653721466384114414162815618402229791094903787714601093408312789885953136583362041769649629173959689260261096676967800768777542654711580194982033512681436137393949348029974919348458859951193758190170948060343242713048084570251304038050511099322188883931218007674475355678742945144656252963853543770051218714445420129465709557102304008701233878365673905080176038552545304546290095461827291162569074914206001054954617462524401013917018765937602831538580440421455472039361185366803646393025106046872039377491461116268391682047546195863849809777659536106206050814021528163564498545427827689088214211033141553361624077776709148451422821966937567472117540119025391849786182382337432764658248645091856680350024762931624401214591720585782681529452319673333953255350345798812338344051903462547627587409645319317374161419915683606106352054780146568935704588940914839721166837169415634331939766482717903328753375799139961087218731395889419610838105580490478126486433204142380092574890645326816422399744467614183899438535165289142920223931165155799264453520091768569045937086352189701080807175062292550699072469438105035908018907949734898470277879666711004389710012451408509302380608761614802225230090904701339854035006798534365018616082833572845086424691211232614967287943678628130905224138149288938544292943637520600307924899184836543112919995797489630710220611364623193366062965643131750695158400447924684299466188790471752626830653963250505111512143866272510023993537152348750051301905529236707871432926337591678411289856668196839563161130744881853301761316456448495225364239329863878483819022879000919995547254184252605953305081873918776419970554069755431347675594309349465768663610424994182622367018642321067041684557939129081215964584786234197186435903044683405003045472362447546809380600702109503011840535758548667867004915056005289725702777194563094968534704557867296783095428878493529216744491944779379554419269094712279077110116233833197482007222430165233681104271327572567974470875597319834251925713818305565925670617176508189624932213448478121736393989093695789093465149952462813935652638420329224536243600749248949969269093273995510057050726541579207661407300604452069988298111825147939531647597269566379779276315398018600778317380667098689722337058322542507864825563111079169102849193979884334032579836435096255581351554791321220135124389754260359446949611006694625684896934335247447108365881984989663404135957875572011314385003733283406974084064441708984010021024838282672478532601184220370168764186034467515180499269124295915415151699784701161244378571019466208705738274283508636741820050003983929610637389155571129243365818071899737540444071205370232702987836708893392321508768994250531589712173408060433556593057497317457731334326577396388531902253054048783418486328852299440904218784996159662401097592495351088605012849989907477806620037799439721838955444456870044525714951874478650449313382493455044079300739334049183299395649369698684132684586569717242559325256270641052507212936450800638814260557390523669302517964552949127498496613421574694031414708950640594629888866947380413969183607825840284288093569186844968051655110515435277771566688591698414086750251965781296852415760244921508979892570520338971721890825130925342546323547996276215176440341071695317289853476034956755129735051576983994188630247961682233909695343080236102383029933379613402226654938141160861894770867608359353292017486647688196739723907958677418199793144680693467081096724041645652107732431015926722016863551793150063052312901611860978974042433544439823038739054988976885829150934065236249460758585840948774438016236616345228808988666841251903428726975718926271033274151655113011296371743950283181712823550363274690640767008857547335944274541837056643985526308256399791004601483699717096913841557310119077427683905616222405502361149975088110236268380726567037810250540749654858255806942936474229978972942851161001520700880724581694609259288189656227295203090244761001304335842486900951643297534988014008623189973525147366807588185977383779790173391651205440549896505083089282621826211472185810218341965255472526076259422698535113851962382469807650549704701492752974457649912717995502648824818953235785239956177405269370600237127194639044196698430811495902266350015294988949161640645413773674248493058602798819469430928970818218379822538040448518665028416244614758783058754161801567511109213148466264264535601966376364950668099770452670535658594999547883128720872267263521630237590480086092908058727142339989648924495628330220238778841374295214534101981599971345740730016954235660458622814923078155651933352470221491277407770556160055687965543769211298791093651161193762464220427434306301666159167881769327460374123515229637316352333901652845409169502134418697210317845320799257679022362949798000884339716119479925432203508303010039496960378922857706680503645549064452952613770746651071945413029724365062416174967580887312195818432063738654083587000131856797397845812443114073757883575396905652407214297672678835280293793105733537053764485441072399198774195850995927275398400991958947781233267596829216177042829370361045177419950785013286393771709918808402420737313215225738778015068737252710356050263973368136327183752646192143264678464757626685908801439688335732962318294040774371952105744588046395823621463981676015178059353051769939015046913043871830191478641839671220640097127433961863569039391124505285341279020699874601544455880131587288120607708327082163922204942807408740117284415894262103538070519916357409015775517259846201488764232026954142008772330158290281358921542832509961856902035818506798639498442609257692803181520030965396093456830298866889861960547375802197709108323526464164824878930431979677400401223825274749452438318484595648473062107340250972268614911372851176154491894474837903625614304832459689193210824619438947394947631116971030703336178568987931053084893967232682129321152079869790832769751378136200927719121654720279047623142202050738705937890120739226246688152746280364210647534565404783369049050104069822277143609353169247492340588178689079967825081342281156925160358942202357492716434300062255772434468673232698295503343396763852249649196274482535567688384322583023723687706671224784194114670951993657920162942687492395907216054162710437036852027411185491608158458424332301895653379671309251637421741559202232206712335524435586500416361602827000544269779958430982293195212689204329500986302332268612713638235183208146218822670954477188792655112988571967293439045226120623591083197452981058278108123306734327964255911655157379543400501564623621135313086544326342305225267960752802778749671327090615688331486605808738070128167738427912406331793785474067721203363087875674857407831844496456544179247982419781859643178936611015487053196932339924242106800564124892495174031674141612978043355266155859383610100906334935317681185672792628329295048201116462402189584119174593947546048454453642984964303712436797818449945183246700198313807996491021999128902225933736607007847511433840885442245424781732465857293453509668320298324264001790501833671306811190928951756099278002694844709597107335826362931879046122861150497572658691047338585508910186024462908133017024489800721791604327541562862700095681358906736827810575583964967567997071271275647659051537608042563205543471007956609995943446280994607993315522903005079481770120376838033807672241531789653674226512752469588869526524261199109495386355302419433816766164241467878587908439554268379928426956095886427238764267122094361127296472800822379870227770020629055337257614050245597558926502189183402125270338443898078646203074927647414064937310754285469420983931771097929485227118960659875081652607819867225810890495423595810186633218381715945508433734786352216187636246146353420597294119591936478778110531072736740762260136900354412017249415802225398745055719168414938827539493179563841264641016424621342545605506502365179399777749720101544569713484209760325022710087524236409899676693593575941813109452866109546512090164149032533881548498836335542095324063737033470423042336610068651285112181811784270296332322723236677193723002731652082264718364758042959511794345509232058994039561979261535003686842866971174973270128595381933561962512645209784006008733544054320781401236554661714926679420870900737916055115740094760053432596494431801553009400434628432889474517648785173862681077756577885177276610379693533153680752499682399222506461170100737845790591563750966687710712543955806159027400491785589460538530437579997603146170664889614518849224705297680031748613412767682430167312921012268259017518475619830852937038197929337706234836358571607198941683453895051012728890587890837716854906632745574015346317312868943192047203927770816916115744271604631625729230537809156357036359928094797656875361015075634049230952784048044091221119282209244918177331686083130533027510268285104128444834705050762349925816206278817283618268635762347633347905574962790500159196988258495870425501461321729512819268378874840916126207891299181845300640000580655381858984809439604542404189273079480417853868902408235477055473147873751250924258197234384266437997254979271267711466218106371068337231469395626336991735922579970240515877435339706172739557578233762907350990236977216188705272667106568048680071697625073172075806197413627645656471997829213879401191686129640322192082907113045886856580134686196595632568275976413459325396528218131685981455390107274606990553335419714153561032711923560492997672445594236442226597135790375811674461158489231182846852274920001265907020326937917727678178282310586887775221122366090728960835432007539601088885055375010959337297172423140928510167461506091768309849780476434682497618428156273701445682327190810934405022399202890942237444714216968461308856119897997550756187396265049135832604092328290864200947326676748989136908154728054448260153982759337119666982039014293553559884351734103886345862370902720651660098822499577845852918731587671080529611796465407548580259183951995600914670350580679710042858252782848069728209770689660689504272027693310837848449373225469971638613077222993392638860406567146411202091365139192124310093977621127594258905977749893235322111912499622002928882288999711572372998615151636757019224024763501655432885025379501766640314329979007572997285720264218408037301173558098001553045066372245025535387056115942627837139079522762965947696668560950211746180845573849369692484846818939010124890960251329133193309266990278723186386880120398159477194541073520711022985277346682553485169371554105571516331822691237228182338942939982564829607507104783746136232636600016281906345024738145713161973554392822326891478323972400756221640830532764122689459623844563756441902033653224516778664909242804103653380178439505292259268896203586189305656636009779372236391385038921536336165401922218731656756668724766564844101241966777218274692182806796531871473349900972495027868031114127695867808729085117853194831571832095907850038086475539002203353070282716479083536371901070359241694074654099993140794784212959677544507963179058869386352299922611114317314570781506072330565613564420283276075859936319102587939849448442541878175685001409047467987537530610926177078026939868106378131899474466601867804275345309057658597970825017321950561025420855755559800135265127167432616622253654523906238736115030362420707976403955977181474450523821467471355761870211861920991708972874445588251933466458842586069415128878832894449373459222080654177446816743053893679907991283455891833236836493181688171960080069596807906856233379894037628060045128655733293044455713169999235371050589731732537305154853141395845875185044767758914668066842513433277585710103459469624419340353162955993452495921625419581558035465747696146747688534189860100452436088767752220698454902047970721820389621265107656516422329478801552400190958270001544962812220209778514458100124070018172218680939041449233431717470846184590593543896352340733533622360173019003839285642894931977515048346611329700203995791892905600669018206725306135665852848506873521094435009388617084014691239739490041267752685744682337778369919196684290260948028940524254853034270052279563759632328607498173406481129721256602724128114732718838919069300203290482648850995309943634645498408704591800054982048896827737918263431963252095808277314682522785268594936985518441862697844394393760527673096079213272454341231304906821884668387892798692783089011045177215525990519732202609285718972375351739464826086071728808168184320116898417948251919291828475653583961696007283236397260186368374207560434512606042527225998826167143343453501948094219082122022591553321962901151675020347910360512700908759330424783149287520895179459574416984591920118768108761261366776028896458987516416443151232950288956514924493738758911136968861723542683862835371160295231454212651423795599034761467129962064434209405254667775687925341860884122890833582561845447444427299958766696232456052513182412557858516039798795954665554202440831501561976669939297327989437771766248195312141803877786807294461526726942991040870115635801020909915160419141491696167291220774930707366839259757924013303073400654330922243428283647814704569958307621246091373373728240164659571741346496595164323782553351548194514018098768001628476968016292360321299518717082707355273562207951152112280539220999959762900139167026776682749773215187605589211535074616646329002443400077566863433246033565871586201590440923871170186327505440166044169624894123278812179725675099256640338220246768818508901406768459035237102000137577591717409488015529846512323572483704176623324384223395259321619873847769881617326166332887450580891627667520442351505071074470305733413283872348163719198023187589569671471426776903879061483235458824427484357984219363427512454134349921182371206761043247486456827291940338628844579527871816145108359879302372758013577205214584776218415458871336787148171837369825153850947956390192491345397949699005599826728656354738798742149203546475733514774851759262222491158981797226639961397214120963714297858816956426257576417357741511492400504647218825746023171749562551344251848221141787966146348650704329229990648796626106721724681065322616073688301299477427884928238872578069039383182917678072890782607994559782242768741331158736828359327584865100385071667262395520029259698580060951166697796463099070785035484748743644538161875779595001087851468647031511671321005867326764616389284377257423152046597966747655957860525387169172133581517031722645534775289882961239717915347598992452672624096820380259689466620192019474230793198539673619683774191027949965628394093485036489162385560019763858951367571936877204499760830945330972122526225668767866463749645763447118843434066906285988466908523435252754830467682174809034055089501746825079720052627162588676976131156486517291816499570451777899709393830978840203547520173402703798604233465997464323771168531119497386806068447448360655551009037261530100559513423504811764865180202605061918303201710897623291455561783914308572129846393939833821693418170043476553600348348728884937467959594600276861150683292388740016858244886011666337951082589876976518677555102139009666611211325023643566187198301451701449386448904047666051410028366883975714022079523055473302657630352416750713760543836043787226693488989322084479217503253816957432580853179515945717448559573845480598603179731296421130173371464678409543477426982685161486953179504545229080541399944864634678175670393357658019398974158836170802543236075623225383451493013518780125160651460396486131962162060438065419424079306625595180282424827862512412700574492767724264856328790673458861547111069534906700584404951485960422918858094513483442358597040024022195757630297948832473216239078505128996737223767837823815117755843764529690568242644591306120135965223955800569290833832222352672809454636911398534196006069544992606008970859725941924952589369177387856016444845670647650903742496990318934958675007414854606844362163979211575717228857576578068177328474747354320122939923122336758732274510988709993775738234789576714339569226339776649521822718560719960171147402032055814278563189324889166400489415838841883726146960024309500755576036064592062782761629602729209565541531860301118963576915741045940097842342277457599442306475419365443706204549110520702834031918773305778696802095473799174025176156634869994706599113330581231653817933754583427455401828030142108715460792764652999906919235260551945316540738360103636640594673997212222993239379416282799392677237700599078893238572859397589087958959951130228031978334360993115044720153234274291625218746374424035184844438569581637210274656995327570262084587415784100441027202936238544088255129756229158414248493231322198432048115601453198233938489595578076255095540243170179170675931294505528937040532272912213209382159599830658181091815588452664461067352083155425371832433058424855443493980562535816492110764496591380625092916912868267703960660868423051103763696761283356514465126842322452421801179640218341326853439594275539250846954816166432868157702219815222259937569535011700532543620337236739888814554808875599944958750134855115801016317601824474546857715109022396850481124554795637340268991873741834853163546813243837696724479253529028152071353451573598644640538641718856319833625793089900436304600560815945401201649883681843032402342263943658884585226160391319010758550684730143316731112890742043748172525614421585080843006014811207925700403824485941364445216875110158167401392434582892117021476064268367500732163822873704347330985772573924675053371564701868451123048639357975591825643675786887917636883863918946491236838516771596666385937341031478213186964973877724122648986634787640834122273982266374117364829793233780860156682406740044738295813759840281597599543854829571098790258059474124066881485813040950574592139070575229489128385661319942498810603021815539514288951162953929083273586250358508554593063949595718701342572155481368652730348419700610517193415562932157134904468449135293948575528399208535828704564145990355855512723072768399746624420070648434851972933444973595497449462174317951484132657022066485988810630854911233227302140477653567407326413674100722221971284195305094168100088171467850971458754637248340300485097752625934379882522420483415152547394364126256679305637081077808061279361604360310347756800014104012284507652921083020931751551688818963721765218240411213827481429977709117527817280527858535356617205457275184886974014907745468393249338112427948812206251476870867434706396712267615812776029363072292197195577853630896220190153490165605496223481296475796115929105157155714078248060386708182014664237964592139540299161195255105759836447742121481492925280048319992435281955363663030981493264835506266765157849084627880258625491118382892821917286794630699483909374098412282344382236110173764316436625052928614295564111408318108942968624173909664367596181109287001392794344652833506672536394232083529338895563277201130279762030078862124920408911373394600387419976937560468534544367503352566702847679406384999025811101220186732693673544848660348579114059607010197307269779186236004384050818490354272536649958538562910455952062805910148939002255054599656748229120726612242332491959160149996857140249052613374903194013607211967495000072626672679126454446592279246831230475134362549748617106123807408391520865140619496547066192400658841770251926908451026695190659796995248294382598865926003300767309078987254225827032005350311402803042993653246971530487212709075803099570805086100069043420872452176431120415309582532054853463759922621651245650951963605416312653858706946449712162507055972975361911268190833241400171421755102270464158210318130346739012216343817870525737952688345125474471731109382025866155395944264894099816851690995377047104591240409214448788638748795852837366262867256236419736469143145830090458573886237450053670178588244644302484691148097874512215280333771229494822943272265362861250774723792048288965446962552712562938700722747166397870951164661716337380074472477066720648841978229450806280533513188475563332657191357778572545578877435804985116060565245151938980116556998797475676738038256004146893410525589253119226229243322966400849759729108556880102798146207049338473235037509567993073133554650240980843341228106471299546795897937583113885311525507293526568964656308185513830781864634724378802020614574441183285556923664774111417521002023118167781898976609737181764600063708153967850492112531841009744698891653295008947508449711995315025490326111132035400972294933309748298380318125382002663476350487039917262242225007537935800780472013012131126795359121297190612132231305331172349279609474840204505286295916788166699215788782460779836827976514883148457821486937250737232264036782249426345222515614048513856620387706404677577184735596081908163278843560284523540331605589852724863611523116093718101361122595682244990091131177554729287019395148043002287121917571660033722963460799539991575269051998584974690613284168191926465666028466064449088063180613409974160064843018660965833089288405917691017876177355716633735450447682253737254237135670798454594469326991288179502812646197743889147518196654399432601545071405706383027286381758795590730534300986511103906809174249515939611759144689722927995254511681909793273117210868943989841732799762241040902808282111967089115484831843766590023414914023270380481291712402998004783789982236973393156533831249227177870104496228620010449963643747582062325776721120281189465009280556083823581472366778609640316552584102733642164609978074819134200330725821656467959413073239902462940402618554720534430336475697426768918001096396006768939294222867149926682329137553237327630733835030233577765602334077646168435549381383909507602974188855828394926311566498655169860028870237540818566128041024892803147261738160326177674475057987251655712425991478940180420431991290650272746920545165741463661229302495841423293425298101956267254692996049884659592768877362676572872373858808484944563013457182260827195119211060877585119461592564258890561919977749633943842500589274382567205210518479671050031585574413752522400147004031883766585298050439718861223465345592744477504838353919495808774508036314011643027180979779803146842997712149129607187708560579942022301091565574061099029924438884457262130296903969505627088821079839456286688793523195219620805745473148343039965825090339619962995494630624011171627699747092825091577477753769059330377716532384504958177080720426796104379315155138766796634612881830980765946830298552514897012386003162680866496943661649627842923947729455210523102820428818133261714375879656520546157240885937784774322372881170605819506414914397379355680481008951302164699632868734045943836015710769236017072549080098044359024302036876936619045120949321343655754032949252723468081580330279840166892203670216766442249789487162855790287654679474287929356909764125194068547673114405354059681671014111032968737937834049129159102312644454761905281064227673650489065211327299176798629988089523909525795769350604429028715626835165677080983277458095349540313260444392364409569140510370281481189182120308313141815711662177448272782026988477511655898086401321489498542397518882043176530874675506153810118013421106810501494261065256136029174790500049814848609092260866043998963355173766631267394833118163921866541151750600055752065090682481313059493198903947767729171604166383526740074554907249875314383269668792428997600958922194868534445845897195055836131055958242097172707870268420880445494999082430109787849432103026322923015733547026586841679604953820793245441542167484552694737075536683790214740210955995039781320965700309655594092318573537399687407923265487000624344514150294927497030599430725901357839885817199314480269662392539790915127785771228757952613843725816648507349703892173947687027956954045784037832498633915060676184603192923024508257696330259917269725133901519957424220868358786495160816822045252447990577910004119859072351498164505316308158048874598649807138352332876662561848071740965066766009242405176044809727308707328343438038163472186379972206398221478905757733625789253936667984381621001579430777532378067015161801906901595498281614003598489827453052137159115348520639043378585861223572403059366616978864000980321658308314635090241661686516701578467450813613643752777727120908314207928145995453886472871920691342439672507322502998027115370943182108836642399973441042659160754362762132461537694344288325236500923539425063155952655445674159005212088232208895920318656159132539635152048266511312800635935799965450243959123129209205545794804359640923101710641947819525241201022056907758730833512724083484593823065581518140922380824807518729890195906532114192721535162843148473236625520972485480713858320238350056228229263024982847860587609953220006614484313451017600718289545759190592097727001431012653164290772782243398644882063687742052078037793173454870541353180906985997611593432113425117398709756191208987626387043606757773223304774432821403995546126057757604217867972615410630326365245163782347477600686962389662549550106930705916937187653407527241700098556907943871397210617617863426418783893796563591311912271511109185188470701537757063962299991564460602229760184080384388730307450854863852945541440383294387102017710426686529871250054770792551576322352771793777182889146434785986303867071140704573273420631063126055777065376108266637154302511462149688360757047694625835850047845661057259738887272072104147676051324843189011507544730751454966389761719118922504464949563951816783683132206310289178601949579216894373574183852098900723791077631713794588610068765457046837210443185762858195481439590040414218117263363110993311293217048092548196427946914566833319365537738365169876202670294247830923732202505627231560865330763420023224178154515732118540097520163336460850796033194729857749988718189125678762655933073652258195157623694781126625756404322806201893984760452476582887555547042108118940245277866357060336217090858770972461091279504189381529211235469410389747437452588888013852973517160659242750056678577991548949202377943965240520663746590180357009303065785463856943359873932721418276299112938706763867316857305579498033951687171282155734173365690130900129449808531470425875674906003943692594527611718118292703111860794203140362450342121542493333526698763242647541274423856120113461888309297905486020046664547592569822990687514591920416413918196139921096057900833058618981060030875910591014412227730108387808863553736250878398285800625651913092245548036866818130273758610372960307711789531259764429525883400519445967044470254591493098024194803918343772923285090640519746184676929728436207785158366568392776101483840861783264609035430910223443364377832450343707348037361140546548073329576466547618082438061580989558109372803177456588353348249047730668106294146790908408310975765876417937372798063947899813702523960603188202828234179635626786263171149164129682904860101617477919642554718892510631851545527388002336074420840337274216066206047628132165431175334810576447775330038103884146697538196299813327308006214185169798789910571519051407280375297519020555731770636319772140107020400000156256531297900710799850384765304982262970214746116452604347518571854894701609288669951290776450729329700897092517360975867051767331977742460180172857779129017783053355950207923514865776131169152989510729349287595158506972108450315423394751186099450544662050425695047861214473808101339299799917218694478836200948142777776154912447304149237838945942650309830689738271401782949504639187799396054838551821130882771652480159144591838929317563371653787300869208970510937151696249724506388173269836684946905887594364056653340609168987709734661687762515627231550526865071783206532239846011330191774329335282150204410457835060552322204313098858950068900309847928208697685021509749942902655233998941588159844896003730820951423206902852686175075647907010813840529083448217896481868136781572226409548658917703974755160110838225582414104763133753329985254901191436567681895535536411179564594887017283814036945046836097660399509531237867926524978532742848711829559223120755120952866562957799338786669068887287468835951522043935633713739264835196559412427125503143971273283844137751948243740019366383374944358829670817937127894385237404286496389425290963202088519925826461753548030583304580686598736549251042783213243981911476851892424548695270632161075263219193671606336078728117188017614595540926956562638713372491731568852830155070389580523102456783942792742762842315702632448614807026265248573797809937622462312494587265352710622027425445249186166248710231214572675247261414832849301953414486921977665128956746162097542425110954665016323968638171598387682471837348291049940473693177767045087720428255655067170853903305680818765239858802497019801627016097659159606143343605870060066196190300025491213721412885761075203704347548242321352167825611532117961546463869304583061500057533403825052764574907664938632954287885174671862883857578628063967372856803476967039590740517779876774287027524651770406812516897749635368439130959340699008262681990978589220530587349979394799054440639361137800652858334441824039227034037344106287887515919060238024632615241965204376044228294830876188128082437875081631216321839774254063894674243579835485711653494832219838802636109121485992701274685581916066925408484259602067196500920690569343709343316542933823579047972925714470815752243036261039876455200820010447482266349496265235005179391688722311084986706096091381579591015689225664337360273262290045238107472523654116354908155002887067132593860220581138938763016640895389670559128729479694968623551392841450508639023727038288373488720835581661240254887118369048060142598241334640278811408289581867491246390004385071613226958524714349196757296440777592842323235846578927890242893684603036433877609679684030678832725530204212731857302293810635520061780887588235992931615014486765832497401442715730140155455112445851225942169439089316845613402389566493872174789665401722226355256035142136177020664973216310404221177401979234637331986822680982740235997215571358076662955854954618381343997713706552860852931231350817582963606623136461356792363932580707040183053650286634658419708525863345789837006861222392117371257768572009098067651500836892379753729629149235398734043349398569740492218328632007566199691222958016284304774178101671482853078346590094660694054007356528984275376221215517158358505529057674367100074345120796490565233015405704603392277229402718765401263126956439489864970046643408365064658028093811152490415978352263153968336454922158636631885835998875245129278854857210985416612541342795866290704105322400206832736293727731441508101433944010314383499303323724544258073397017917673729780302434363980467062556448097230076741708334461797298176529505162975674423386018084323876836318206733071052018113624835268651017112204190716355306564384130887117020456612993104014867645249965211670742330715686235003885685707460670637477551835623385770456932333514244399325978238359377732397361343977700777106043638756224761890606050221350758709429222626266014049146579598093092811311925414664109705813312784362296855431324875075002710784937518362734977939391597818059168407042126735926337681638445378288237565882708608987443486285776566998834594134231128576988955087933878747955004549317158845612331582547209657906772404470933741938166649245380293174840133264284252534798650758885195135038010317351301068215433465941126648120415950864159293785883276692549615311921779932021867599544155997722011411763706984148990844387205016124691274973875821782736658084353034145225080884948796222260470714736206317691202674459874082774956245378633773673007483221547916125081258001546280576960799133119338431229489185937438692152726763040656508863787353387738231571579107667261126904577962001737899943918153681045867028223296448933674020929964834782145068310288252874985117011453462363739328227846777506273885239800390225849355614165555956290945044071820012078045763330544464431434233736712553983658976566819794637315367281183565163826542125088837506901648488456947664041943179843814096764289996049897341921477945177810982346606267225780621296094307959092719365045040708957154289395606195929869964291736239855970396016742413634742754922170627427047376489346437975315607101226981361956540958312959239720315084850783256165345791403579983744164079546797901309918627743102738084365514998940877769507750852740703120660453170312616613849364537707629571652778908088302120667288855045072244528325878802850082468889943717680123107469658849833576654684387681689276188765056181541046016317261949600603699390280338529010172362070586952400360225192798930956502527847958441493925150870969873463645853187493231930896726815453986016530245597255462038816132400389186896623795757597693454140908888048363665239551275551342323653225805595614736306649629170435646348700321408843638458251536377278457724257398633369899888168100857082642289567586588901739200329482176591846397346331603592945336163668409925078259647303303217906249252157651103083076148779243674522422524093450378719122792792671988050083410741456883754392636000920088364666523825557954123398456238516100932982070967404516819620003954568063266681382558012574117462387418450097904799529258383680478648473788957416173192486000837143809556864415797465981933641346462146019417781714392276079443645283071796254945330132868336315160392142121350181824207780818369493247520459438857576112634752891159944905734101268941994670993910954997034684520855500769652215871782959414483924251086700637837874004662886060332228917087964602158285034405628609210662800257640627201030410917890726545281053754403875234015226642138148295931333898652424631508141492899733596617508371603960852482848775460628954229767437027656247793415676704681019744261007674994898107482391984295240180097990368723135822456414012886618738350163901342545724438491540380188617149492258503046239711017171459274092682809666753636391851144427825686120608434658750300338854831708340291091454920093735040178772965572548023739122202304013876639682678859516841406185391305279648471171817158648050760432756693297799060801398172462848426653990539462496320269016126957913842713594931477611090916705552036548773511037112031107195922768970712677068411846316546834860632978469810915241121197684337826624602564686615322212975453144006490353065045451800054524290369351021922672962387359912197748670438500082236651155570892611256556064914929199063088356213923025185371573389948193698053709094359812116654490063616564267990133838984387743244070653123712902233695044998981835132274311768951025414391455572860816063480262982456090806537118134252047539365551234801042418047388767225106038718570636243550552666178278133189452591506125985026048872917389677038415157894557030716308558313712749093825406154559283646508881497341657237051186666312624195393104340992802527104492881602904662282481530789005901617392308492175719592912163221182552684914202302188240663532580759454755788735736372344214505491662455259727987242333121192006277872002681238909671202952895907214120139718816361104687868502167275966707152017264105332750177142176846806760229158977688020298406540269667364435355069732912359730150197081286501091310853256306350288081879900661108660831996217696631283267534629063372996148259924830654757835168493579764914595491356700099731599472962058001926526098267033098095670995969598545677164954331483869723749868325559170258470687291761358398283332397115390630726393402983813098827634131939963404890182811014858315869345144685786335762962262433538168868468508486465861771049655766151690565575135585126634522243140639157896338395129502742151039597445364592952632342323377006558348166601945072695098583454952964607895617169255181160253353399709775150097407651219857866782407262874450018250389446669663358247393805371582189486275723440886859227402850926582061095460985131484969687432814229503034522423664837294716531433031513561080428905022339737229278498849743163999423694037472237441006953825371077094034409948893081734009405767818613151377024733446883805563766217327416351174219537933514574802350279270712164787096088104866234905492316250075538988421541213818618489628768249555720909583572410939925716579461088027454722465017856447600730316239962995218000949498956742598122662567087554398858369091302640188717193468743406817117244423911237612197525051672217835335206058010569469207988747670717642451146446867882198041102812106829419771512868565953653242222852373124385028124444058704899087279699691547134294290508007102511238874213214044963469474759690858675650822735929746629866946492229407932634511818915047964528013767688479367330489230471342053241710669022809070882058269472877340688819277662382221904763065815268979708948448025578341022897171317627937573246432727968437366019531229812790647210860208383205399687343454063006075814822203785895818758101538652807318020070284054346721403285897615081191936053765697053800281425663849020587985372264491685986423910866007489983818254186354994305566598098969972242552053185379318408885324058628346612533268465701827027517877530955778634054756628195403007251145203802994710847500194083818876404535530125186549488105756727029139661358660859438745537002797068737146189498782244438384973463930717883650484030515439198518493530142163305833989532613693375435904343761066184111135978744372918876177186257947410555598626914071254710948409323090476778274960755730111634631382424019064410403008532962874159779193503880677028108562303716601030150802402181550418430748332428908069710287773226746931325471098511016285760776686831840739817864579653035217363906406676191251129057086559700801862654648181036878464427692291567096298386539850134469068095184765169568971429002033317090242666016337437854403881671776671376707737768980414448577955471125532067641112932641000405976065025860863274877458317671690300454835193302046919881006887666836354470038702071542909496095892178524939913835766555059051296554041662324069747583827074177254962328468679706171943632649818961471385455395095196376023123753412911722996317545166343361303350227999433072647369850054082739061491241271827696304549796952279053436770006640954331358937094332961081216359308365701999226830542993624246574603972865924338069266614053733739136974588360449908179743607654877534729294434038922350391839971481120445078900571468380569012768414054348660002506366819213404467072241484568645528863169359265925422707589189636640338647890990013171292705161211524126772275076039691726783978815511370080862444910258883455066287578067501925743503316675511584162795466925360792780842515318567045246160177520420419801358356575627791476475544686769738097664273641244720837091372297391798615671040319566665056760248209048340572501724555899576088542126340246642293995315350406983349155714586327496872085522098110156610158668334351259028526311420169525524384901846488231482638154052769899922680494800533760347624746184435157593447553027632776631931528808071790713559670672826429655996856100720925805161807361746030670190897774622550722599182398651409304403341192647455936754084823899223870291498311382371646250323085226502303257842712388026352470834523812280960229271455581574324987708276486354478819364761288670478340031348393789400780316752029239956337389697892601430914971961508823406529797030115235963381104871809353512379002623306802032241728713389368951077611419270605808082540712932478409419299730156282002737818864759917913690555976469305447712565572575219422009163451804504218837365116211851527951412208894749254811434296816538467220358864802169730780835830358453204994190446203792598544039130011539382275273059857318898197931293466207719416853562214878980347598059565435052007075863427033984653191505780639609585409770627533645009743777411747085719866824070164341651531154633439888571881494790618068158962001408713861485370460354203737162149395156467757309418893577888989138024590223094919909667170308350101317735872172196896074566537991387030864944887551494650540477921797118926181703770334268102640932505261968661313443655398005329217212745421038651998374476843155560915918071339232354722878351058269247131981229255876790458386893580250118660695517180516592822951459039955397612941200840048980207728934066211926364301553979573669383308335857069513563725561208619709547453231160833616769033480027318565667817208969825329209843053796474004412428545393070057595862932061403394571273996976789782122865576317185043676641706858957518470890810254641735474821624459532498301750211000588398697208782558493480001608409316527340053458928706648093726811723406427691581075354941041972798227223917904218749547787033994978135236572657801117152924339155293736693715004208784160349642623979155052757866131213102873068589257995736991479282135875027419257015262910519519510075944344634538316467481601042252271041063416433699201135657847495367513510640278724729155259685710124323359275933237876677475598720676149156397216747999230276987748116522172130412116892104187670870920857358757759256064337421113071008497425412019876027697540035995268922491628856259394904061554624206544295346586334767818243430103920379112653737096853185891936379364555183136601669231877153567573480559171997860384844870806063714270038808226863056562492766927077643304126649190085603440447573424641145825665723788143776309431661059603536202013463090767660142786377788331344943849730191193843974427622998975239384920695376540503259978614259236711069049372094684734042508907585171267849776618715379937486729742412957812474676525165156290463071216106782024824528349674266797058729102029710116478656959091883560087368293790987474773246582395009309358892058389741017172113886814106445235653136755478359135796781400676258249005293212198986276715315551108175654328675967142248995296514655889613731081929326772431804682714932092207209073676384445875591245629982301299396662706079508156563045601686267497589008938662799841168674407360927030358784749285526103388094976881061467666451464491844276426697893416220974078572417073575096250459085193918557802956229141783527988720091785875555988311521169273693681403085400233294706285390124569437638173736986493113070334820175267818844339420071096729423742151422884453649739842685573011125682384883326534191329632249090256004052349824296254883398536526920965638172961258141095985567471791237815328114645629020884254137310331404701887388384342830441129756800406440414381772855653917402159778375048490836797372302441924579553695392128185614043729482559423503457117882441069412807723606954276689803996060699452273131641274390872279295213336118623849515789381630166926572497445414062804172916567528399557180606974828795964460915286436692584006540412791863701550342346896587608466593769331174498616687518247347960645610038038961313078170108719259769722622377890839833810866914922341875374143368098948995004940850080477031826127753343330537447637685708475478964835558191815550770700993639599201916117513714693993836163197584556747423328431786669018384682711045792240625202258938484959728499822260272198275619473324024973169370529615946045253191465745535720455716905854690019408271311672642305725290947361321752614518213996863821162371056840674454004237723478002599638738608625749028617757998132580232140579638007387127951647817331139389466044401726912252680712582712736955458123155835258300210932583418702653960719807565325938164617088858113956116219868660061018688184609141306540111415105769613126899768803235995791636068974847106860019282713210185634329253489052658748237460842549964082511800454297811259832279694455588902228842529596878012865663086990797178081817307569375300528423118371849602882764423631610502395377076856211203563386299474131705960266229973864865337043892273194578437123859196027788179806256067109256083586262842275985871199450797140296406690520161044050375133628707212859338065900614605413327103525921480792372988650962826371216280765454873731036146416424304252452121601934432682937741435553376308290630127974660649307837526365198492404522880120963699060439692177054529816525644450184025750837775481818428480736997532276092706626545719841698837329181370612528078317554927336613497210550611110878114843088156844203458960496662462562202859861755754909011614869166552789309214381350101367551434374851641584763711250458687586936769205809500358444228843346717016527908941006196168757500098250089039012646724960545981916061659212971869271157137259074123146335040158213501434816385867512195577980152127554589506733521468896028938610635988603539676316536729079685868672322798724753977969674808837260530696219945214032004251475455652446489692697330421316347862856247767917761247350330010451827141521297363117651716715249650262837085944142665201756607513110509185121841826480520997941995069447123781724359142602431595762957400385140437267245781317351129462116214813934218685714431502995342625043096489749965280842335466923169483956772145535177358326807809317514158839420655629931854861927713681056834748513931520518266529216215336599070932076817768195055337531611191677999955461414272860137464327342892156159155793888912377666541478269523229252891668473419113067163051496656689513988744024757164382652057950798261077705952802840889542574898113384325069110765874355814075834287149592376900243599308686780759185264076249368029085303073470066873197652568927349179733556586009417502709420087656087142745603431435746603048237273531012898725488302206147305425871819017297385515993084233951877775838181760528475415170237098385001091628762242279111855618258264013300628159424620852342069861996273307495924053867591435125136720926994029235814500467837217425262307549334764183023787066162756731646451493105567321689299833525344259894937979177461930888264964803126868895960318004743487952753739166049476533049955124975325341918411793691233564637494063952764540513051428645919961749106004151826996579024977153825215581764943140089429952986136356792840795336300238743990770063095422546988538780208741722730988181759927638757792672224481692730728785575273384505593819138431222638756616781178424268031242363921060077684316415483415832478635001568769566235710855745167308049994441917369987592504374361076673893338323667094027789726601380547605449552025991704916535642328014206814057952472518368261411667747538704275437474763026924425933751156655388057648207312897056093780295190309480378034939745852242228676266950831405261755663771139846538686889786426308090371945945373375710122330142645730093408767901276068345199810470997878562385450896753391667613426255515469081662420758496024319054251499849440548195988415208066244201565028120412738694092797248703819373863741324273139230756316175892661489634480888096596201939385890043988379195221609287954799198299080995685146345488139975068547726967624112394792718378635820565583634683815804314534177418133343486310311923312390695585005570568815934200577517671775622987285147334870028599482798112437223932456923510412188851518243727374060393721448710504209121219068300576483691800738769352062910883718597133460634475823729978330019915173559890698963085261829545910188117494405569052507057559644173839202413939719065874638178867543630375114003663864581486779372930297630801745014653994669381192816638272972231785602204261599411841414329704872240378673317691965371463386762263843521010694318609162012376905367610771837228207103998209588959979508005755722635905011149126457568952423998978012877311608106138721464748985184215464093627190918512329060004691593641782924295420865259978597037021708564668290036215866786169995785034098927624311334263263182668818040360550319552626516245486894999530602577309360879787206020455123464968679144203422048256746644855650792545347714895098341470601713021148720557572344585165287466836887816178537935433583370219429109341360518241812198580167810725409462432493021444579704547159403616142451447176280447564318687737580520249611920414465156131481180415000795876144121904095377613975993380843364309088480483225721548808586250777271141117962255615654055473672053220671168570425384939612708485701923475888895560119700258928431648138665616065937928384674372109745105615037016397901280457260345863629777374669034342443398972638153079198970970668870896255322696449318149428003741337741946179377574826550309285141830521423020343599373254433562588269118573051621229827045976249449799445897977969841689906687753491189905175537610761015942157433468595808515637261579073599487593622827066455720981715756380275243293497786305493075126435318970486551492024424441246814610115379201114249001432928793494437752305644815146483336109308234858782261565373111725065684743529593955350542805196385293597764547946751224074470373181318510723767527248273372902516999958705547904840125631306165679729058321612649358723952403561973702413984101325738058154618322710664324376682752298427501942035847842091975205469970859505064897191084404748800134891219879486202250192243760635392714334036075251679727431305385370690577253294371599819552078388020284900100115999598338244952070059292100284251853922070587265369424315389776329697905948983949963536703322724388130707877785794804108605678717252538242305474424162428845223627266889756957481019670862626073533784979856182042493597334011945986098474568436584454871719315398055347459274784761568511079607852564709190194464156321411014664443455382183016989922804699708300790555322862940082104916837351579738949988427793894281645024877654304727588725387773596002896966179324170518432310736971684014370205035884113038730004644777766408543270656311090048424666829985019565783757031025728206734529011157416020086042568446931515467259285588614399498850458960738323238089964870858853672574152497907351139262314546903655065389851940137482489382274002019553868535370613735115625247255684966961911047918012839912563255021449292758063276514635305640323109940440828558470524356219866825368993882290797274019688034245441964802959578071647285610189229932745163290228156678963501479118077758898964722490837827023244711104407447503232996333737614844302340160739337070723988726963387119021679019765332087544590238244724704888324741019172293485439160010742134873284432034492741821039653098344082521914451859705806836442754281244428943934811011596043032453018492868957434847251334537039121933065715306338252322219704642214724856390108246260648401816037371138749877078222291713276487334977976188834612172487801108943671807531687805159654116878416443244216739868971363098507868386941798665364188139456063740453507410033506189145308205042506285389416274369682508103877310282275559094502343157165064925496119962648490882563635320238479866568379037612604040098977385111816968657005929454131886103359418469628923049537636300689476182251288428883587066336055019763315994061699929865950660928631220934767533546873102610791580135518787520549610025611010198377111230407106172864568431264088247543639305856906474811951419233271719006822365602532475565972842525442625375416656933277174499042867733463165118998174908792547330713557960723148155299508473018887625935819628272804238169843843200596525293343152689698706293689492229942317147671836082614698002338713202157012750743346190146709105093172579423930571326645959828494118255841987456517105692911789978958148288942322827176623681256366115222293624773161226777127779695715782994066349214984554238522442618711416499631136818747350834418010173860572493647680930742946850489856298791083194801553759878257454925979747832157377470844695307966852810581846392174229959703794513758719119463611925983616850223275736092286992227721192378007117685064216734934870065973734958397346379593434974192117342248519488736279133775397979851453392091520310249517839388941889489671672103157640556334219406273238966461995083721360346993882882562176075830449921530345735608416043058867550076052930826257735051497657964208565277396463412593181099522113071461512610815617093200593836961966020266247960331833696235715459181144462624990348309538184587761759378500823377029850663790238716640783202396821340536703807481902330035477171538511714700705409049817681892403657899756014849795749403460483804072318701652521667421603317653985940850827245514671722841110544501276504765647186068731487801562851063177002312000190904816400959064693594233241167206352235357541321347436738261739091846526166979787123192845771459133679143974793534712801038236616258949880011779110949127043144660280383707424566981621303122993224587137166528231838477291046971707725091335446213764775639900243415936593455800247733392881584007782302609734125518542803476984076416289590149205032487481534921897601466654578300330455124435604054802601859747204294182767847537233529458173663085507478715269633426918028545169813288913000554109490746756450041631001582431907212469226298102396738451202567684302505638228792680921935881631684187632591751084920479365782835242499988836012482871736911908216983320986761914808243755706465236053342183694490951639292422616973480984892667010591456749982628470616611028299308189475618203371185031926855551482439392719447169297042253076323690399323486567835963596947705803401405415788572972709912920789092889538723374555528171091602510680770720684632467329968433478740367162164013682662547547291960811381893096072457025626190070618565144835039805685171741033756712719125467020526642200611044644458686169744453976510269692019824400174608686784687582695154724145090612635458784185338015146357894175835704395444379421386650499575545299758362481901411101519353019221233623901802357552823976964751349557189046463500028069531405650798229983070131864566247266495012445003728994182941931245386690357076220788962795345498071448831533374803000045103564513174948251912221276338330037445146881242826570617357133375152893102046204903676708670871141178684514591773379955393446898157490205527337375750920180298496709023259488137655265804917369013540387721768927531804882226973373712459857310419063328800471582722849513933812619707316826760785089018757251038895232453802227104520011114298346604615295367123014955008989597291864214432747663294558311483837424173852215544611142798201149396677896572260837732245683129053604137706361894721976232297821676551712066020394469957067706377760099197680676847226715688950948776995446662413068332991137279151187211907725015008144944974552589259487217367890693036697923065912829541138866962526996631344091735380718004605476212868310692347592555899098038033147097577037775582938212422564946312105877360001800607328238188885385811191116341363836846908086503844456935811278839205406444592796731468944569836651260320558742132890264521456047557455265905134715848870123868560799275556245417365304292335469548949064206353691960754281343627092617245120864817690963372521026516453684831089663973496095927411578605162120150462444701737080685083381687001177468293741455052779098547466760870682110564160710472634954622452633342066154530426955224024123467237201748390343087143815360431316647970280824156620873529210639079702716131196440362430023539867147340014972399326782972865183918868411436142953462193783997664397235013137878840564008867594438216224766661613105926014952734704033397789870510027719311574767255733830947967864743313657923727328200933543841089346827210879265463464174071311412562972008992123469974291076654755159865418989377838470849062874506280329767303979961449682698207013554640883347400388554594614864503589265688442451704851795968238069461795442518982831586951341328028369863467970169416246316445780518415875530362659982747282773984923402240583636567493202922476079988588402157536804089429314831138855393464048977894834498037570941064455678248369215478024909624735800100454532253280039449227990570091827782031805107712104966924497098955958748214336613099298459833102485845670806383340587294126892078076095314170206564908684326365396440581984953407154509929149135193868514725633319787050165277818134463869631010899687479898946926449985002033535455194922157497411619515368735895616841354257891181948430661296711432498912102424697356477667108352606820886310100716548592225317988733555536394867369636674449111468881401289725013106715442794041141897847205342627788427195830501051562306720653148396799029011411399837163062882484503700324068912014655188356907978280035177592739490583999832618964778485961253106540792558634732396508725558803176142110763352951425580287431270678905824674269460083578699669737372556407854357290761533902285403271187905250824655704779097542844749924272898475426073769935065331838172436626940974581966142030997233739525223789471478599522046901940342222991643823558756476552954043532001828868457178201685587896601645074948763575100944229145180363177419458001190465430302089543296886922528512796667810833214324442094714583219280475199340369339182187698379625788647535915457071373830612736016304013321200715912924945184424763652375809899381462010803399768959035152696639865237941887374155321273049426537519038527650976978839385697930773066389630973934603070449396559154527476950244461700409802715885990147361243183830834403238936717031677604359161818060753671674412290597673396384661311351903209465807327798136099709044239729214979004519344010278686518344521151492122458030781802519035788433955418596930024097563360380355624920617570296199174899577846206055125163838397045440433346871727772913997582867727065852435934508912105956403513216669793355080263566913745483550298649258499502905216843823643192520485757481229570702714006648299798715745979922598511676868319725041156312708840012851569632106112451661299388566119337327996816929578241680711731226680152267615710610914328281616396552351262930762226101187749602837243901539671677970962077079274921840473726828679260297262188605837373028073269940975925718117807946249297479699887608298512212928412582360849320461489404558634081314751474078941105284891059781709897511004740936771980539927063192787808588090432848364138630380086943824303655661413330421933002998614926399982180768599065964235987857133020238616336185468988136144292819694039704292266166291899478099046150892952421165783300407809780039440709369783805789583978198312591480962194291794695111186794569202913964699909745507560301572841399788759487186964412400661825568259637830219985202092722356649419336866355844932647488555518312588072538727547623185256387855150817340536726228624144138325623207039563596991634319769628088325304780979967075533268029508942149475753202548464312700610856329092928636790795829128925141892332547901485303613600032438620325458507442922344759976019016014198630030240745688975404263326706855621527827000812569914355391455107297065928824103958348803817357337343519786685302175443161557373722685695441053316277268804208231707996215424436173404348360657619068628422590906560371673562964134397001829636757000205739354081139614335251237536123033760005639761993396501337713175845807265988295391918301907491286970791214392972452138118830651034341968697053467631651213983108546709897623436835344464260396324207971676744497376715947612929158347197759874526067511494280051689206137334148223234520172901414461188662847206652206579204852607510990634865190673544153172131688997906412360670638390216925645116928322331591664032130906671979644923512720491524241895832085784835763131939940807907526723016343973173481045988457750424249319319462607657063589090106650359946061375246883886061215414809485913178044026844600433964301519094288856239496880766426677066685780688157650992141109041203408453216528539207202438029988973183234156987005077080251786818636278947164219759664101133993501455829936988775541311131276080033231531387966525617407159049736393630214619977844755131082123953340240684440316911650216141922889411039732415426572021501802812125514468141186579397519511285629041518941524083868880508388357262569681115207424439953749033523670954250824406289810167605513068939319362534165035090634203627504685500942126972650391050152337920334695338338288453290491865354979112736993351160228706603143873024418037473956691617439023424732309630937984545883947061732424408377358616885297031209042619088234777311118769999007869143214031447823074336774975323746703452888142937111395023001296038667237909992521019082261143558894024908336009752665478820934215360346469153530127990761926698443744275937348218558737145508774492953881743714388253487434357638763538385306113315085725291986238280510478740243312706829912411396920999388299612791258817637561733077671343238966505553926915564968567929695205581886844754193776405081348149687859258617785737511299711904931650118949444677224895289217243430403565552769118148191572950666508425669763886318925279720571889413249813196149725565695298016275556226271618723803341759288126008556822053141832184622793926806584826240375135439622488848905720264957019047691181904825727125309903636406337519385446115302891213440255248362071931359559474123715620498157342283607315886650284427498930741773134783983319131247393390916693310853600719376653705421298150286039101446254080079110800188354680799556636041596079529049407320364336403140677973576460964306056682892665476360100924320403351664431468932367670500995288925692751239264069779158764476597217312019382988384407664002323013885954961424902757588604108601158293729890462873970937732810272784983447119451528347502107607341826745298940818797332905644533528140949324906585045023314662600981965008951895315034210683950129665907569522743817039427856431972049707382115299860553852425408905775335778845708805859913669075677134565030537661931204655755102039563534100197033187097401841637232041339249344238974203385112717713398184249385106102509933530186091260301972729179436086832081329645726713679706664292926611897086923418448375698163755570343627317830425806507356672371698923827279039056341494778258309557423536887595085692563233919679988810434309792610346523523353942834498849137756940634812949774574822744269953402486093854361906300847196426937890515105351080521484732925818929200582810772600507731607085612480092197986204209363567750442472442292294208849194914799091718420404490605708994488302626851226595582858039393809075097226820722331745543913543294688071567365369163609399998982616538812201149126564329622266163434808452396486336649390943010131689866614318981671190228802465263613006895665423264977902629384965378402330085753753429807338117639826377265490356841487548000364248753694957162745040258135012966172602256588526472375279287177287800255701608181509680578941691584005978518652751537001210006063155557422609531350708268577095925613226048031169383304579660992955810153193702870255966862621897429887923313784858149283725898375394628533478647125174005771899567168947998222744644296588210808336012100018054536210316810009279206952428258809936981147873268168180065791398372247116356636274900251231577906089572601589965172909868973634733308100437527839698436015689504238074721593259446826424245064934799802827853881181813761772914379344310699816032957951989042862618215717889635388075791077646269611417632401194332453450014360710425494016146120389262009669680261652011860335852897553095305553403973662752273858034699324502575266565206170889892578087709538027940867883698240240313106586060399824304311156706198570318545208975250129950893473276306595715788610778804563283925454942836366380077752527332284662188598564832402695951608907861195537548096337320531515780984493977285241412323537993547299689206940242460069755062299406483811877311112719471968930720248199225210519625446337898615705395619780156821834871398965932931700720008614259577767969112362370412527619741861724571912885376767714324681689213527697516876517316633237652244655538367002858288188895505279587283406667090544420980310287742561390158620804030078568945176180537097215135057752884938271294916603000933054478269437079018056960496855935236783164685244986566863600553043860429860885422768934213627595062099226134898176784189737899563527146547950219119037745376957910896115203909985136363987012274147154495056961852839503339886659356563019574570427124607910109670873690527451367232158722702690322302134111522379551177363842590279988965706448996712567720907870718789694941035441715321948883221171995095806085657277504199112233763778825389015857168773833978026715290486511976165728598553066053353027470312317926910691283215710371184799318791979960213893061593923475386694735299315241315475796818064485768028625607205408030190174623340316757070724991498368681927439133397534706604279281218834684486078653672079139280790386514998428504439727226823712486096596877675993555314802116137211390570428735818884861127322790200494293252810016242271134675381509230472971398418872739956186457253493523782891694850134153710144710853251179056529358016111232662553088015001595447475649642782129728353920917726574561917578091539316307183853524335959303252967654092872273607391153872147984495404956100549302323357666849765741973293929265065125668672467388713797175538981099878440242404391302345433293500908817069686172467300793417226685888112735007130516692404918651589659905600645007779804286797511500186431245380477293619973538208480244675615917513636403705665619260100029157563011214962583439961625012739955625108355962951708736252963140069526049230301944301716233955088071591937113236586009904572729916332839973464304606050444142810214053541512524235418228475289589115616095582565627843954307035506023104080165431979945123489759133947947521920881915722622795357352871464039431153830220563427605918172554532090979489593676341567809313955404932298775535829740771923966023604630864691018036694616934649949038659730486664383501140463797622391720914325207484646659234766499377285260913449140855597313042898989726972013382142175977324965420584732609275540993279597568662129356589936873195490236059271775568300797388094278238788742898344016196944761613419985131625295301867153577491954084157432395210499761417075404417575051219243640727259040757700257418167353640307579427994807480809908467606989044108726056391002162999423848961882976174303401675982614442103682909092294103875372322711152939571736945704403128256220930836988377930805105413674252550051191245534983327734268581839862919063061628337378579404846919384160855772153121414399783982285664264944358309019378361196088624445116550851665134490980287311076623551410571875239322798222408542439327027517386352757430351344301566666341024282736085820351548672668897501811338244818831542093965820217011895444491610385561006112516901818684357109317577517007358745142502365622177041525796495903047957976758236853424330979722380424872751334759776231722924334101389841734912644030742095139589058530516146391550165208963052064670587103990592644104253692104127595630212208175686584785921893323953314519636924801706239156537576889510838482116403291907496939920427193713007351688644689478929151698858168824005358517579296156906131470434857285904060015758137788603322916298317751671981906839701521003970643142553993716083934939356574631550896741128318479292003728707161532457807660607102508119375591198709364543579600185163661523831179325633537817166853128624601579214876446518649187224091626567170717929487771154580655185522547913901462517335708733737821215900080282735232080126043079511361622462680674017630553677714023699528553772611366961419857004492439890794163168747682981015677309353616467225530311659340319365858666660566244671319063517754909884463016117285803795108679030362969761645378047162037886913060392553647034395100973127405490909108345642780460526649894095886647599893558034192798154666415512718664450216859194641078367002584656883165100180817797072154879346037754442564161834447311548718993429274295603029366685027379234477220288991489280710064212403023866773948694719562025721099288703647695200544260796992840026244296169678182172649572760140473321065083353186400112957156781100736468503997602045766953795124668682600583529450788211494268787521892081726989442386225620158122770564765456781653917060442810234438644569439445342493984258956803198422788644489633209690487474956237516487961124524915799863374734673026382863510408655943207446888417209552026360369010535582604746530250825478048784361068155755892896831774893587092726082770636273818887452555496045125908526862953451395572933501445125795246732790963417358405580920457632451880057576476741458357611685745071943894516671114651799614647407014834404571682193512613890200114996921540395640057373075871683097972755244170950101865402143896306020260555638931402341845596724091689637673588100330387488068339595555979704420038685812460953355696508239513525645438998916136545417354944651075211641842051461915123950956096294726753432035874197694676107066262264544602035365555996917322243775713575314193116210960902245905708051193449651224493496050784173036117666998720614383226982109034733836253024621376963188956102710796528949872819537721438019130722203652315337324592639911785530170935122144162129645847522028530401838050287704385471820550681275825232255396885707273634614679123261876709787710782755621309962471925739313144566009638549871891630320347580523498559957167439045549732781504369081277493796408564845738092437509444949267107498049965716763472769817367724546907708474999389297779297255485913808167932489138798593475813143535506494532763744505061682258751974158117653339686401117491522447468761393608792272563285226893191413084634945340558908815325200698116235289202939642027905498716357819000819507792590418225136213598466814552622528214048816363594698377355330677348631547884761138915543536256346059470035633860285100844653632993984334297266647850831176496704832328422029321554795288720514004793128204454396764583716040995915752365570812940116234461376682433970885235980205194088822664617560625586921933936500654452886597410865937735257933748226856339054630154510366765058690928003889858683100901128899225066692857183361453201701752756620735882861069325058195293001500407194956574667232656507923205288179257711225176212710910894022040837647269375760585195755833173912368639926989916653147337278056348208575769480259197871030559720709314528710410117187441243625832957748650238722832305589816804699970289392991354965211724834643588024221949187191706199887610966321812726093669415706542802896839154825322637816476468324778646384819944302253167714214149658733003111294095042245126382022629860879136025673396591433968635898834512825779270942855527004782855384825191744502860202940798837978713151365132462872680556095505511379820866635599854280145126710137447488453984347482706444748711036129948076231595480316537901136069785398619934049746616575495778999765212441717173467816580810358589125917277047590522153880286833897636225855352176233827037749914562488646092564575890837491932238563627030425143313947039248414279009127025857603432348214413263396941948885384091864401773293156609325671058338375338386635015790041940906779293658250662055087722037687193687434683082600599415441136955557026943440548645425717862085438206065576854788886782238441721366313495922889234093536098592485890258482284230570610367133793232917419340672074570088331356798227881435661899913483092285630742392934108461860416023167327987685086499311407413751355846646638844548580366090243711036076961009497345053141067131426733023592288870585891493498835878311022373285396815011018407554616343124606397264263774789663860545186732308951378331749953889298457498844870791657247117318417536979555634401891999256651610918066728687619098240027143083403550499287061685925327814146409338215493903950838604993262855640093711411046478906315632788485821357728927388755032365684111269175433031818119599476452522202098053827503468533609699707478006202128474323839109628815118046723522449910379911914357223311232493799057052269577801492436417401191054857684982391526021418626327271554308107792940427854886906488629354771167678215305972818029104975471771897345892948190980297734566451679606981630533748901780291069739312176732707593810910097719440884909529917416064933573172340887671201698828742341588079881746842230646739372913047311956398398091412048611716222438290400596467234276538643943672420487649382139371599338517566155479042341635294332541836834676420796602491877562344078437983782017796726270461471732817391055127967969502940337734063753205463775726549192395764856683691272860192631598985921944843029146211055813152141333156694784094344198417713157828497913132652452015615977083398165158346914586776299577129924650900481621447640509982866667710890072734583992382570903726229781543880275311271373986038392633378757264684071875515934957770353819785854587617103437845279396084804445400294425727001723154772289744834782645017835012501116730111097326799725490676766015964409200499311274293228400843339213806161194629839002006815753352146266632862354240468626839431550488107563623721321316024000790414002139452202867737587176076186063905905450018320317016436629450342429269855523563850393865448569668080226595650434899899113530702428233712170789480333556754848412132677233987043062289452634764350317193600606724143305457528139646497618418387713027261947866659939795365029700534375141210467017679570366104135041425387614915869522697078629343609454421794507722283041157067184795165430237510817846001539064189735675472044695897895562210917748834272910837098024813169570710684258555167349241907440998234549082380777630334182400702948136854538582155586789516842363935281406873126599351449099277005838240931742216733003204753226894795034752403994039995324251709798468549408171169484173499772029616297663664789847835542206445428618339318701579568404740274183756010071958447602803242320663969225982383920238479840397614361403071897891080348453086883244056200385952131223686676342072683078228586384275698653257137786517928435718038033485593387195233839340914507973640808452760227014949602058239906768335513459256862434480437298303132403129720235703960607098300548624060302220407810033930045341902884745431503314205501369678865754504758904188354404422047293103336380344397145837915251071529471576356830998290234524588157344646064215998766972406343743445027988692542810381020812840724098492603616367515976467681442316910060842728135821802498610656188565647314361209344119577590073872026096085065659468469377956333091339702545924458730503248482445252247349814193837600084151559221407116068061515563641660855857700557631374891395590158639198342446192498593159575041927475827977611279591870842484891397231339057219789999263092407416879854958114201485687949378425623093345501451115560525029801799752289411084930039881919821082187801109478033680852018976310839665674683365128067902691221579293597090062530932732279442185926768217084054109553526108402403133873045458693622972233798418657668579634740856659537458451872004334482944418940251671688907513072773073103599329688000356290696914781349888597393504175536375561144178783002669134357788330220716743548760921541176430172656384132710694199064312590978943347107388503163740356890948987336050979663993332671653324064330741263823509258433274488112036756423167522340024520478946537743187524055462033131158513494161156589427469882459410523801262467535166788772565842141513445004379481628185433626951454363835977307574967736863963116035323781947409088000372943778705743851811964365488402079158112571495175234960421171305646958420450383727488387436490666000696566021828076086586157596646142457800655932637433434262899345724464264959453006098260775998131104718129403256772972322839649472803825595728371857708388386775457640643718206018175344265789002520013092934714791410045280247179963389811562348258967797689117248320863423156088743519575381185123604618704633944038080937949049303248552117674660690168666549773130434249179301826778583913540348667899325131476854595224213783052708603986446437054530770808353913700825377713333437624810583296056612122346232930833800849302672313127246780215838923541422288252482338491566146357676431299048258984502188767011023310182402333987659067305431071469366346092755733129267739525183294845342492155173431764791709155251129169054505316999580074057530939112176217359266304287507044407868356656990468510338544658397713105165285630132913872700164812581185567892842334287145028286031935925826223244420853115873224647459616534982581112266287225065160685100438296504796512263060233179215715396618517656462704041777034188254450656022038004194952416876628904470536515350709973401549281094575337073344527775240597828498396999517022771816646518845995155363620082423713541423165600184788357017766857355258738299202811427728130187501814290082177837752543027559602887937432295911546471117538210819005145896444918493680128021580133433970210691738261487720564620830102666962429221748454673454570030874286842656632388998083080633121038122659154260357916748111649408473016412765159893983369885679290336255477076057496842204390176152523001323272521679620126450992440912799926024363800782906453850557480742881528845806236122685436330310362195986293079765935289886558678176172830063749056304346818590339161502385751590670900193325045538156705681289316968817037417149169410535192614649743455733275583877204460778840335415070949180402840433719235201660010861275234184660102409792990382481228354137829193397905567595107223081779750506318973861009315664414848649162569339091080388838650791118102646707841301787267371149161074000144214583835145285952482846166528428937659520495603142865443568822110218078142165389800923801571059950739181781402712443854641043656494949504811512343488560890780166336301903818028709872675025570303989941883847019760075031899301150819801527698820218807842867653673679869729697591624128455444174732756140648959928758183093566006778770978142509361773910982492548900908091983837642950877458499137876522669644452807651357331833222583525251082528207932360192102109260673253346405836634188108648114340983661179857802666576412672826684122080396839446677200433957305105449504667887243991490611095691374626535306386750434566820302644531470535181169494753955430910816997019437252893317152347804384704565547901573395702063792354683050278252845028171629858992534200720730530330031640357543509482173270286260599686020949973000035582682033725911907807911771982844631322340301213753960943470770881999823230870946058736343950426793748962076442311116866370088699361282101801229090072990811843058308017500641221368181047039993270250114162366864812807914122445865723566287779054367177382500801683522106296514790478534908102319868227332105610521527356541020297012970724847927944968974512723131827700850771665572174096725599505794861721451330522744305857547926210582362751301639560266543040787665379903930015816372133348801928850105385489552077168500495930326828607555379782101522750226171942297417469295504244115125502661445183458661977670603562509869759462290342209084035627815243176800506677822771555314133209809037677231056672792974398220006463292758404943985019733766376989871139350924966242066655441489183781141061285338189610891414659722524716602700527747495743147775038222597924506093079669974940794563999063541419324513747692670872010410100849599347710117883055167327815651634247847195069522696441607953552822633363143008107690317630030728558831165633310486864867290872828654849561246331222944017825143022927244015720535313252422735495878044260551651663536131691113038437014360403061762036345981465040348675398373733061666676848325202908763647730940854457122505198648405648929697657977087245712793593206604186948714323311558839535205500244831847050520791248113997283807939340958303463104370560141499567832401136135019758344162487079961480783302810909986495275749967832648150961730170431949011081224243101762768010229595494039456048347141630235800634079139825512991703416769936674601801452741214311181283712501551589462218207582642918484811439849181005514727585716810430611470076599612298593528414060609177649891751233611070556299106068847959156114591460442624071191898078689484160832492393765361969196152862578009771193881936279946508668558630821318141009067267438035420374388335115223652728222010886308840947711375213967885474846522024935134084305431365020454342684686840083956055206043060394041856557934390956552392420579537990388434094710417346553217799069565703516886720981561156555710351136981979533987510347147876796254932260583583599155418360710198569852308542099418494658542200778041993709746393977617430658167974283345281610115204418702140477203593009995422042976131440818668973495011325682411041977395935732367699184931498152569576354251233059155849372986466543840158907695816963628439381072840179811884796347580868639049166651127793393214158762721521004798566207309677061071372159707221434711709525835391770485291863612028372923315319378457032994043358671885565042181267435723210793811915259688567359710065531373152909705007016414316391803132772935346103293559572804179402418637826750900873749680217140223035740953364182794200325509344144584523696068650286177410052952657548672492960097038261593450391209523066518183075980419417836307188414512815701640699448184214306194867491872041093856225025294485740119949585544088380206378119084452869715246251646321001769690255614158454652583250218181995941243582285757554382075858704862540163872992731099192647050156864920186680643351249290096312917032469754444983393491523619133675683115114960026210318713864391064407158524349689186122912640508103098498219436341608676680790530809317737223726072212559734506150877472536373229055888482810518869304406482025689712716905830014592945417873348967155619234894186018469318576531235571119165514561635518750374413201012167670596968536760452859157988447587870676831585420687742279665701175119541480714457392449409197748815647256606385259416596286548453539252898059317463108057699815863347327153088328462922913013590533754155248757190117702014832126403423516987114524754145727158561955483113676266192800876410975435834231392256039048305666479675754237973352819949210921427725106459303808421679283805791823083849518333253092937817749458459326977926755298091888225827749440071055122702511138633929498727523129987435147547213486993668538214915846191018144879373866170235307603739661403814906583246579976377985699452885212402053188712027950063651208629809165846875069802893228245952394265761581591197674776061634778223559717267914056011595924398514751781879212212378580168433943430457514051306553884347466741046003255629519967895101916258674145456508782254175531524603454630105799723974750907783346916500882046247443528029552701693738926080446759791856451180339604798226181547480806573825357546147982594744875641779281289426102430847373129194702291828082330887930374481038536375296323745700972187066508366864622989662277841227232462954920487205145230316108999203714244181382225368233951780694226853878546762123314572873960987017644179443760831287562144248807883845807100274617079560076274498138342518925864776861056065107305105590533546943717076282728796922496935428963306145756932432405315533784983170025799102486556003440622243293373754180787303407878900005779991069942328325897231604877060923705472283702492108335091823363954491213900766766838548467251937150958052395273612632712546166392209723373433782580302190117032991899383286400459566813000518399672444740453376807374045621030273144503179924452575904628845386328118207587210121636844678373947912681236952118317173888242215436821384979751028401113459812308046144980396671310828572572575964402682601836357495590158237269299392029911926711673393072308371057845023428903788754272345410281895797309030291531373886094280594070784350047141437917333302330132593879744519014116088670119628510703188447333490965862789345069817669352325502659862818230414358630175023740003868083906823657040575642196983524474024478944901780984280273670225267043959482400419121629093143865856105302105287645860961313489393539192563628052376406000259824601535779366199185475391394497722153641843357130394990898387064053302080322618367638795776544705462728139343886756664043848783776856471920967160750379097764571771519058650484081422758117512417219588239064661762763657304637051491009765249302531247869043746831224756035408374407901547806621087336210044611628294529908528135563255933653455134746669907832333775040550080258867279955917123564231265230701848647849843204136006682019604956098427856439043282857799560161507696842161311566014862313690157131109536211688583704676938791734291880835785228159044870663041453851529887979650356702686077026839224049228299260354704023862304074284075234218322041851071990264365402838084629836197692015833927583306581067921643239766697396943448081781820757240563280597145460353782114780799660773557762950210447682282416778770444921975228279790420245542767878177998278805527436512579741385199008858412326618488321559596873779091893738053099064211482697291802162783537562999596339359587591312271405281927500255662928466198227275572455569423968661760483023845277929126000901668137132649936127529208422308400486206948327571385160301513417996621173677358310688231137242088180091400866953037270165859404119457093568642591793704547088110430368957823067644953843049172302498029497490116969058272687994523741727689900600726254817747152808046780737791305036778535944422996358057577434316042030297119878714743748816849714288325749324759671874035697478292105646308345070947985383856986603881302827725205393215907639461837284563163557502599971433064524455511643902712703456378405395061980491239502826272273945352147825218029452171170094274981194867288659603600656652226940903317586605756289642017034882091017324192191923877563699072118208875011781680606198941989079610633443533520255688701110386751515005328765911479377246937232152541078873522702205781950157752210428727409043108175227308466730303585852599879375093797938038215350368533818965793055666075439722388992016345312972435343865309582710806816415659635103458859664390016302078035442582269920499427163193340608812683177469801005208330576028992328931026643199046928824332379226491981331157196986698176071789727112074976759060757108353161394346689025241696582435887543791565040227335737163648431024142831025184917925679013022975779737641640381011457223490171035652491027138795854557148143571861859931316656147814634702803805646756834761257174843678802807743523422726150438672463734033691914911188033640112595261154571196068521369951641557879723434458418175449192233032661699074966917317319117258641324971847500171830137126514555109010523919425343566809305194154511126483642881721647608770013370537808658575787178407166122705908568461115342037833284922395792168403445457939632313053957670621601379427891121650587293865963164643882486657236676817295952516650460613700202230727569439563812660192332566310082234263234036411161363361324556141323170028808421541416683418672755617911434756931919430780114923534316463778807709706425469364919907502923515404838555330697233989775055433383710147022124016931694524552218618136056788341310253036712464240907877517337309734153019587147692987865460590086589154786968096802342804760568699714086667843663328991457052794556006183310298449580781510381352621647490106622730642099502238685055089769283199182640000968188650302258273547490734909028958713048899874194547703039451545085662839399422190585433653578928916844671160413394312357792652255752533733938773970264411392703307159282756634175825906350166161673497742624252622147752346447412638413399806982439897716943868336288140373883826234422987274053026692150064925489015279059266149802726181584932274606967827792344237478216363440723980185703435501773897046287604936062967589091095044586533772535519222030635289009023680764169776982722142131810536976446059979968485758349455894938450387778432364636761728069426961461197528209430551180727934683679125943042771381380662554632818486023935386972137359552687793687961505446788887525572312066112980816469201206799663850477902125622642247459320465776559295306747803865261340010914620748042074072380949412392802226546771044324533091025870713787299839845808802387992671374139567150812584685158043879492720527762848787579109923030839756698362242147368152591392708778817754744632489633320386317916939763426346580107585912078403451505724941145203488603351820743046191590185135398925119805646867083067018954293179058763641973418884689031980646378087510831150677341485662384338963338890879436174272290017358427906132167839514394199556508422567353076829638549639030393449689319882899479122422605286495012977214969948525681368960171811474285220278574012244706748630304859034477500044270048469461719912337174375866197590956548752039572883693725801404722079005215237544240563491800144786316785987726777608930362846626274852656040998202490188789645552838265180659247728655330326836853248901862945610145632579140077570843934650901953692831779283656760776926425984955181129261845527432860423308833462507097775139182635939019109116082385503900688189045979469287930618514247316923950629749050742943567053264838274032970978793101547859491991546301157712402630963148668361126732492608549563710461366976943505709512535887797969863942122981775085469305232187001734362441226529154961100694874634050072665815438082000605919326202443960336775401420003627367915437987737285994492291147767965657923041487730103252898481071034022339190343601590669129488798431321811366598807217840659590059327374111167424756353816123147706058256808559489668754314656796969547596706675105928907465935026261643604883379507475139282387574802937231816533573607757312258005358215348094653948435301494722111617479490027622189735720227660766434083986746851827592405471219720382505702601267305008067012764494268676330005613090925417802439740167369265175839103750606991159232248891463183739790556954731168282302887621421097338417819122865498680245280714733528715601055185697528671855689223179437333909241384010326896893915306102433537384773987325342638278335805963647769134500510519223221238570386428232111851249003686408946847260504618061535185170861071801833944383204565845595716757862666820042651824945723142694586186329280419790648130477125432966263240465354883218609813831633124127441137726704190894533221144535430878277799092044890407594912038337201431289707845218935492868480938560488833000889887197652960984723890850658040460611183131500577618279172740770564196720800808717236360453418435905623625311674412988449682865471352886754731138785723776901212604048306021616848924123056230830277982739061149449513804479400197000959266393292981085990717305833403937636904315466588559484039730781225623521341662313830639389429080467270670535522378556283635333343581672579801978332624531248000424647314569552414326735663776697592016363188115212202723899987605979935469587563381116217066154893807786457188153133072529025645656448000788273962454496126014049996275761803809019630473109496311598745153634317083177283907795221302614824374313944795339884692559852563045652518894067437771385871411612957814135385951793376038480169111965916189003229270531924992617408327490331027842568841049851797839665995989286690874626681673286799882447440468741661632736927977422921426384930002961523295998531600866906590995159063586479115493656329970425813716194962861200511816636168806358580144697901544481487648415864499760776575381318871535562694349024155709471065591359134798478912691280917244826806210954536330746374258947020739272874794479962539450972558748809239888896577903086668331924814739984065377067874289833588403956551401550497956793118708131855289572742111174815549879090551891914959857098443431147332362409114109481307330131334021304885538969884035530965004697897562824513814654653492623351991054247067746787425669426856522149627990442274544679675396639043940539336496132447424392329141087368332508745962931170986177347468087829939382048511637952435045664565558379116318293990388477525213927743909212556785395952629894893976746306470941640583601183880161952214752137088686240298098291988182755408792069463992520600620667708221033142271172024893522128086455153639562881403390904575361859572683966147072561862767690567225068230338940561539923333215551225683320893737238319668748343718744601400816561378653303019773813189648006815129256674349172733271196869682340917413040266517199520796649224882193293342075965274938245990742005955513398285928937647270394665967520016505778265916953434601362496046178219717243339130880062020468525035884384450137641586737000735273079839752634394456595250697963413254941807508139310918118751807517241134731119206076619819896201993726312725658560447038674170563447263940767010038069497244590660671248950120575413355351343273336085266537061093777146033504569201434884215410595926686049115483785218164403642746709277331135725156098322062079828404297421779200262823194041184532159351731457477476033837065725298964352820172084993694579063114195111038955531815895502187836521379801287353860173269516437457824806832226628299716668606876776676366930437398793463699260244860315810214593066591617784421542814829225671624722215629802108849783345002512153278656255741079702183325065747395810825362385472884020763140577470645962126441398069206777186715918224513369942723226957303208653160864234547612053810203957331559915020367104703513966951648476420463027832640909127932592916137783459926325604855240095996188528829916404923343176335948776939249064026183822242091615468156323369948817807825512902101958279939526993908139486953475567345099945105175213705889483211628525350957644762280799855772530185282204064758933370084638149270978623187277575041115348002231200012701542138219846410355097500378583222708447487471739955219793295142570606562094132525222558510098301120519890507390317805514000320455482265432343417465454610416500631797904339937231816574237876853216255771160094807377451318209526194939026638322321940952374710670812813960799535086414978839511658140004084504935214228649873881398607739781072977312127217133774091013050710711210054416847841481165020974035847098339490346617433575882379240436603094758074245061272513744505877777819069110229426690791350119229557955539992756474834501109495996014946853026159234589921599293648555731660362056269469123606901743379687646419689337990264167181453933607072103599106928727490424182372660171708367372223146149176312343107922290155230401623514265969318559298857778776087272750445141421148257470129735794629314416767808116210126467023890314132577329201745901084566299936894199274092074627569789980246441706106659106717973833140163085100165432074346807762553137776898926633330761230558839840803025267219983277283701865185539515478776497144489048985517762287909896552369972452888675632790570529857415340419215989990300729964059007167304432090991128091270913931940931816668537688603162365210700766624450662509774847003411418130467558606406845122286648021201115047408049004013521536824646548470994747765944473526898022903906538647952037911244734399608494992164185498196384069949412401266129515493703081981664527343606818351265111703849167049055845263606283026526780500955964312795174557178911102777119514602265360198154483962997174838688837546410162802131073796570413326347592395436828149739236482120627051692179758172683340537902887459017444124253276206396448969757693062269165470944444979629143888995475494226539598025901641631149197132973218508387527239799446345068293756420734681612202978786058288430507567224244441414373852294284738775202973612364082030259770834418749600677077360935060317404677111622486674306607966715695706958453561388064359733175752353412437639363289884278433431961588726448093598886454219366128234220616855363540994918819657582384120823298362312286151565373088004922356547354581011542574606853717219091617060473555753954077641641449318241330186134111928442185164849320268834277938818744372684937678478721646145353100845532735307958551912250358310163487747880287486740639611342906315395157577108404690110371954428244226441449007256831072316841053914480120733641962814035967879092099737103447162946299046502830785924566395335829803352894658644073113568049286559077131321219103771515653741654693933450940146746638762397335906718514062389265485806136078396414803625282212826993778084354982396232802020422334675470809883806818135843625564137054000162189724552152942703912694307112679440684816550226733018268572012893864109103079901428298615835060593799867950759391454217302055409679758264678079435308956321383475772799118050849401734623556036488350591071718401878461130899260620047993906318962965170556497285417489638715447779404544588456220533546624722337599434532316250834752109088361216977869607746573148549067047846403256608772222076027212014414245856159869037796946875606370134450818280789198845493215119276441954757688662157119967475731459096204405841932149609806039712635134005685501006014854262611607570750678449463344228433890807658009668109503928814920746015888019848547493585715530540967253727585373769438500000979186742446712305398859128027141251271276352187391206178987534468742839657200296254165543033718504044531423455546528876171878232979279702762728616111651345590917010273920751222895390621171853975173370844560334907843066789095815439518753910111546319617402400408973851029391715332681164526618918988576085742691649810495934340583156564648896265390636896510014814824296500105930778365134745270066726949618456804610520938408228245524344957033617499504886324804329177227731553279803817169398781047810601856188036177709460063949309070384168785794155714410737754743128680585454787654372483173634764626809076522070309597668003182633611009445700013047386791937689054293215468858304909858493115342468011556330751675554968071795238875774917133884730649870622252566596615208183717880227792008791627675427555181238118388468559386970390386267181910411084398475249497374562822462491508775558990209303066268131559042890926763293458966037236362279623292171578036402822325527175110622370883492935823687434522510347877902924868959126055746411900220007942866765720893816695319639101878676417711320791899613663909724032915568438431996659125636469733401495771116575127393725716562719624445964220148481086016030467879889700460731605074965657285516026116348333928402829449147229892781388185293046314765086223390241124159362093637689890522166765851561609837128278370348540346181882865466168995832865994555155011117114817942837476465403567733761689925947744977978822722928610599304224969243681883886025855628953839459125823878300312420581140896518875377395960564981347983207139758320529468826224866503172344147373628798332014849893340677280166041327323646553583302744290735238647648887367042542815799571009238354070055647097935914333427372171897903108957714453780387380121319844256416408183876171729641642730800525748137624798513077033071506096216753366368684859814397732846935512000065711958176748023771939494753117195974251652668835061428777622268077565596112327738038122724977943627073109623849291587727461118787720225205335019859799956387815894378092965713142547141592161407056837433137815103433788013396898771068476419975858302197637767657267645664456927099756183209925829641007170654715868703550619035234425536357816308029164921416467676511996717232304506173623437508962257589841606393535014949253911217523028271606410816781551121859941602103897154222345758000544928400610480067832714776651704389450110878655810665314862402935331827758706554616921485149704218787307580067599446869533256833284186615889350056086059466128839428119199600752084617852982087447976862745675000417276448733347290739201493442247809657535400425145665464835299619078719609296998894792887331387892238591300837672753916215794341716707807457569314103605936403704686694660325629636823090594185529851050301659378206011553794694160250709335713522505727080315904450551966409076229964032667589966166812650982238393775634758561402467155797421832389681816184722014215596990817072859619471391285097858127962012991108267482521005744517344062036809932231848316655093009508054072798666306207602926062193407555615360858983391279891745892397434417475776921069335838485579331780980706744791046040619863775463288518575840287825346616429859135063966727546860957168783690306021784222089580388652188553092511142499084218501943665376891318409461764601389740382941070894621369396978337857754582789803125941530167828271166158063449004524674334642166108625054221772718793230790401172189882292623844210487757190871931273755732154144066820574069748458944331477294611310162279933104780490590951624742782357533126329028000261655634876793230054172746294636087844683157008319406816190589215482792091498855388558165559370376069184157976467024422170123085476272723029767959290315301374034457536575230941817485046341926040941272247981258678847142909296899272554852223670490925025028368229211689979437096691640481991489976802789995386587766813272035377469653108476239849895448355912429028447904032355231999032068878714172684398239758947120320676663327164979553564870305635396966292427192888735696776436767778474949014440834712427687076392986461411386869000851872085214761381735574491422815812735991132965250496694628584941989019397710228062241032999350623367046623602568546257643081422997155553788359836149184376767309592368319491773172247376910846166269436298047351158259915484624906842729514189433072990747337225566887877248965371699559649550707877980603775846064695123676964265442286487476372484095006358864684430095834912877974518905285639057555923926467866154163993737688519009426502107148129145921881391062066175494522689911504073149668182967271732086074745315476601395156192541738539794485629923104247362234088902976328995788835568197130592897124984616314698272234251576737549675799736419747045908331456697587035388222117259303523828936821732486630225612022886041594877171246857359053313505277464416805980901804541242636543495673930399637012886170574203804886289266088321862636681062072735130996862766027880791806446702539812871120749701499237275124152308934524629526204687577199827553738853604991811953472206423610229440423001931711793341307034523936410009123618199479576108669280683412130470885566648903230725484920108901456232224229650374248532900771350341229179665251002587836913699805239504053768790684229972467949055868007636241256639167012277162456929432696624787133419296069133792142547605479261871301437871161883891010785426086737136055317870856246806931709428019623270814187349813122611111894206909511773468198481097473120724670373024907156087398955169038527866105779294646399450684573385881054322056189825534485494865440655901467613637145289300904341550481438570523186117761686102340297167314926904337671272000430502761752225560668576023595331118630560278875103582132680498342030934032049881586050845863974739600067820094338448576097502838118334033313359691565070053960293500974373186270636044139667955800179562792265354764579992524965826054839778867734454181068141921515557826814604276475303443447590113692791275858146577111064354042619460793306085503163401712259674929015529247413210991773799325285276278618040327590410188428281961733237392902922114931423604595638324623378961059185710436923476145733022277610609017280551840050389186630167806731092805657870072904659200763321262849348629603789288079673140306009211667978162501436561830219122929984401171607522573268896348770391322007412994157805074237362461237116240506681547493843655806262645986630410013957677403653482474796485466356567358522083967225715663967278116253417009767969418652876139999926865146507074172369860914763749000386494406902498787397520227248635789667678298741501418716201842949065983488468125513948828001426801070386549384982100101388653568618895991210300378887049900681040343367550113003462661038439764507598652921948577812514310306433396285624146585401814335180360054477554378618675113927815246414493418458628442015630222644035963988930040274164383688828021649597412747589090903156509650093592409212283327545700743020620913739730914132225484978998156514590566945015858354944397261925871516154665172248848706700015676203021127583469912480250713376593737851409394335274423418800319777006221782288440624163121631089051530911853109657901382249413458598846692175922428507237598635795745575313209740259405569081812923410148524089092887318358794194447805734044582235275354665024596288263877118897807652131126830937582546340670240014773189116992529092750067512030200394994961998888044238443947708448990793898144450350327795605920469749723170537531444119905991583041389671622766540234324350932716358904047378176439018065562773542452332345101190909534283372731000018681694133302810478917603170428595626310127202827109610412939147796781172061719552615084215017461106648864276701650968256757331360013893228226583273115426996956866454509422147922543217835667863078859279384384990237301820068447613880516535740718040120509107115926541638003522018306325661100164201927122366653064360556861902557502794500493387629189371482012545732316579416157365907173165939375981671587531016059319956221558455591186983612583175705200886233986740975895736288125335591226631675484163329436098548915533983978647638688169328305430960323863773938364057605753116635670888771988986764233339813740536496133609624066321641264369039009295295264053008536193425641879868249650856559593806978803371350062950537014159397776190617482925048591917626685491369136836243570349351848711688480598123276797058211486860840427222779340315868869143505627102706297495179420452321079520806020542718767909948771467980995324579901569035962772158077188786012643015812044935193946735082024814034687886552904044084773857631477006075013685587004523719679389024099936637279129242096895912730332462291462536160858392055493795894364971418057444020149414872708853145487655970156959289722974629234416114727058423786540341609633161605495404237458788602279107884656513784256850066381831718283482545579515419094642281502275114610635663760763254597373110202149912251100549825236857028029967012041493824456916643622519674101013829124177526210768965175431740322929291816179217911475787634048182158987561248982313454667689893323507049028516237520485692787744670989062431028563230163554261088188294496441830016895471210370819119452584658819304228123143728292191306606494548255509421645726516503607230357116477211510876337621583658872550030880507058619384162566798340379075717126073546278777165441178866001249877717782205684076832811141397204886099275863523258593527805514909352614899261189178607541510412910313116173540326443859380975291409687666122494282135212484868461024572883616323740754976093796082422808821273403360544352496989036875271598774703796312605096892390471484031526661138494964609851956475130366694497010214504582731049145890601740451308003745576769144886676676119742403407030590666487393474310869647186114274391935395162560863117144941810585676336253795356686061576400569216881334219360466479214753135798019669270471627708963970372281663517082062591870659538671154652692935482082773042195895055847568279135614403248930889343938133791689044066442303135186575406980372644427145476042199927614016749280142911919827317855490953201143310134435932896899508659789073444548568369215951231598992514448705920807225460301567344795430150222548694431475028646822530188809368867034414425914464826720892840878258548526636196279693824015522189833391558627070699166458818530525686577271997355904965982940949407523892511262734040830520138220512516416402358321981337022587195560428844842217731021046990520291053410886479288908559934386999112125091840599235425228350339324629096039430530595319784104319831471237628027384158914817936879960333202405672912082317086923600507666513441998015939300451497268934191646795518854532676693932031453897780590479262463685740854826002940344492266490239043617008511830481402687946329179700174984679061088876563881213011170711049651724428466381648543266444389752010306438329803579324503237568592030238685041314255176265885825168465781419978053706318354724111167424390262460943683951693224460037409018295766550336992926193518658053379915168479931285118153532370182518989969924927530225955876654248844793322755627159091466927627189756158497965684515622664170445565215682804778666147772373783426498353671652708834833502212948625631751086811180624822704658371159033321507763431020837378346702310629393947321736790517243846303927178311048825959543290496077777537454026701384031993346971749134585476522040469935117075471623931638443084407817458739906846781485756965145025780848937208650304111506081366350778452411573352240939824224301702447762952925583463642921524810710104049798814252587261348285504583788186442340059450552936220767626464509970063628668318853903277351688124855058060142169268687379449071131789479239326322250426842471715539671954879897050103367221497240536807180367577161295584233751716120143553282511081372939217713960636201365139534665648128697019398917352267097038574774940750007002246612581091012043750964881175071451297121686530281043963153478007882297627135385712577914757620874074741523097467756181682380944715159854114093310001299539874135233321194607316311393665540117523973971619228333006314499736480830608512919214300376583576030799412840144863599973630236975820243585854664015965020727840540945505799246175620577311573241960355746760302532614533962111776222706094373381850734879562623627112979891565290258597630657403557046109686999904700642801435165993715002670474902452153026793021518801405958730194919692101729778412126198477301614117463187060833073819527641763326187119130878068775152426389962492060193674917191346278607442547912638705052463468054888746788704245330716751546997654783911521267716955912117274619569547808585038622569288939319627829223770206894839828588013218984319698925804886815111444978163727616681749724643081935037858541979427328047901535374823601496034183598708303693173913490664558881503024609219196177776337916131785785286635344041121090159087958794295432890263175207990259590109191928536992095639384195439926362854842498888126461844770834418306232594057974732583012715905027120910308847236527951454167858650177430059802606204289397340657030715989929651157883298696171161850617820482146375984235997301717167639407915951996582135498518310079351504864124542117366932134880728391737310775700704136381369433579713435281495026866064415707559451871647242332473537560855081828400067239309105488823579248989670589828874842393719833493531907475552161270331103321766374391248769943633212079928990525927894725328737265952500340671763786995380345941613820570429279547238142639940803208681468841861059018722572699167722796601471957531242509380844500423770054344257836237394096924416715723620525168107577156889943988297657087726135217555090418546706220355720503172598961950523016306657886866826825394870973523777456566569862136082945571991632992596368086311615459621411756634322933277002338020875389597779246631955057731021323776533406717319826804290037131654557772686186171607467357110987540161041262453768696356736828404578650330039000345167804027654559067670523512826933137404082626206964599721350296623800338491038062217074130438381754756026094962279117169470664648327733528675951204813394541816038363358901850432395070910961470938531534559868794169264414383449087384541027258969008653409319700440343359617673811235841944820463091637195005791310451278732820083701156513121065996991324658482784233169684412368419852541469669661913095467823843501188458421896170482422212086461686342824559722662216800393877071178477169132540378955406625254285367606866682291456532514857341576277351874475332474656053336300705531244681481433203046230245097096842182977206774708252715627149264667999518406469491077781752142365394415407737738991425935858603262468155673950612902812925741808995099452483393306408827278210515421288775445558372567392563939596277186870814252605395549485920302301538700022844438906111309770254935085341428208090891966313898363627724879464861108188981378917574324952110696728118093564300211242690046149864957182806087003438322931081235927693104020102979693937657156807201984800257488281125880959816769743732055114384573821846007395766115116901663484353951405735786488200680922334894035136714137485103780975264450916326458259104669791604121266554135849934915169143788586147966851723157076860662747887446773907895634039234835895610850318858406933206864241055312267662344673382940532555219599697765188018156153173268770817698636975317946989732407130474250188029959142839595052717476974568574498400479644813725797235145191973236328727077716192516411195326587168809429804233743530920391144988321416344853881266632024357255208903817257519752552425206010917939952027585368156900070967989101081539365660868409821654671787945796808708107214722360521284019976169653702242878457576401146211819390332934182881914414071470437112665240793327272149177452144152584171866589140953826744090355346989895525549846984853065739610649109020894467483608780401119245799006333628315122890723764282298651815597396409631234748797110279910525904887600767289280290288012868825620455428395220942247514699467449784435081158411220373728384377678035454922877100372047412757827439273115050275836311040073553179807164067349327309665242119941024569132740099007139968249965671614433934111825553307051362456393668755465758620989334301790274140066140992713762714733103797323502421409218437897979032724562846022165119470686189761618038156038518660766566586024353851037719590275313951421258183408727297831218560669091184307819493729609034218835496731065192079274769965051376841223297249031348643169233736237406581598367727608991411849464121205791330330417478512690366497204373255986716943189711349406800033978556177110455293728722037393622519619919650765728836588949339377427752759477178858573033436626769397329925319874173519607206737947813462163286263037628562859671862810097254047538428501983018164367143281602736422212255078171009712975893309503946026129617013294397875422350546992503457034449680794496165365452589418142060636785997185501835240466502568344230559225509051076841505924468728980352913660258284961123511773674161343554060316240594784335081534603439935348241141532801114532162242155933540591239703823740928246009255428484314160217092465848919655695164231303212156329020154180423696723013072479887741808750284921941448598986652126996636824627857025819555006956909395886455030993820327832272765917037080694015036194864717766524066969419816119400104727774347663906708706556106385529298594226914196107820316637215961118960896195619570668864552323346633359653326228819749211784874994766391512671387681192277048739108917139736854701549493332281908580525295981374520383337331578547825571118845242999902157198636333463469319983739147765446068630456851642240850415101349410667744019870469105757237625752239805792859998567340384537163408428249508787398671496594217820664112302291479016100040589610127394896765068340735601595422934380355136861923616047191503630653494238245049063653740228397071336597380903816339509971751197717012364047216489174620488807722706009364910753264962610009203008215403974949825886352253987349186618977988752023310223699194194757949851362925914670111003818681732817008350756358794005203116638260199755663441331575726902329717889840000637939415790238244175835086777935789325972820449885732407433205770669274528153175170256789305485013250344360642784320649832793595931102376756015263703137596088866681694286805543100698825655005558970588819286089621637073428032838792519826185230004977845128181449591635788687693394977440846592471218059509201434770291203445612908454981535089314728021194844381465672167213614393213908270959084961764838569698548932587023409663926361588186853105717051531913379497919927180544219604728013993597926049947407065256993211221239684518951956955189966168359417092358016864886713507349341029385510102367310394725367713918207580345316270582018289180243751680031136398645915659171331541594763273901975033730290177820675555422192356090929172755201222736359946437679096270629817466570143686568208209708732799772212328895461159351951714380644929450245270405663990455141023609742023240757001692004035227079490075219878100014544856927552317606957780352331935451220969192773095164304299485904068161452850778754565506552103182634297872784417801579445466226932003720139899654830915535020575097986197247522814007667179566142106483342282842175922002934091905054052960247071404335381153189924051015488290299092302010666543105083289561864381652756367251734192675758095928740583287580110692431937896741188646622543042029319269349600876486425903788196521913851407195510548206490088410875456427993365911617698409790010055418535502875338784464526625012335045236806851483679096378150209986237257187086206508349281363594515324862438026137196352476340539853874939210396738532585661558698207609167033607285818735152852191314873237054970811180317429378486693279747376809820227089958393975547613506703874516175214302088816905906374375735543391857390587822711721985957147378552796439620039687450683970783856023528439485943644325392651866782945745532548189492465693049527157911558213580240567982839272594317840755442925375337497792343568569426148811495344477115087631102677423740894440673156115311702167909283832390936967329019952559213481018881521385687822605510922669096897614147075370545928233865992842971019051220488350001015395749721314830615981022104357615894732316158368752514165046409290168192921499581115920369850305479427607709006237437941897150666454111782738345957221513061641798347529147820363271881634891545712837606291021638360340960725273136594693870995312780435562138523567631010096634470608711907003142690021910141850429088093521732846701458927384267294408700813295071859089359470603056221272877689992356483268321820747732905078162710809936747889026849107851927891535833259069827982553352025276630716728275991166321677466329893377698471103834229421696583913890394652618865179610565806864651143459174103474637032999519568494271079840512473372746629398325922583985975775720758715058991124171112547398788940597864507736498985765546452433054831502845244246668193014865833569871405121728472115361732742864098859767664218187572725096149310555106990225553722076136853611709550228535094688107932098961016043198149312798442523100716251670202627015622125490447958100911356619229056276751884806159362778670457944774956002743371460491173935988852373854422222678328958300481081665230960285559863554945728346384046660348034692455966805716183050910188555318565374946266987064773776693963555528017024531624943894631761880166530229471315454399250696300731140439772243985526387575846308196159224259075779532748995465504193768119902289348338413939630550709858318780559975522531419154105857931321113682910700276564104713377567157019253548369681919212238435067064509321052012701315292684489367213018338809499343599893092974034101096136718915325296950492491203207554376650480077310996371625053055607324394458101966894217873628035818117738534187409929998550628327732958980265576103706966779778727002035188558987150735778253879423175804404608714441431136628455581343068743889045833157540217974726027454014456451160415280504612729092560924531131054467451068859247205991978033901665448000576404270220305909968312826657648498698106521308441567848150615620685039904418652545527074102070100317425390789045211748751690628304937736088939972726578558261341404668000510700750328548535238178426773755218244411664750570077877551971724858856563869452572386460903148732214365419049317915623023195991505370125717583297174816170500333586863043154702871537546837849974122037130233782480770648439240425036387551016110326750627458633497320632348926198460501840687904651563454506940539612318730854321510055709218156080681386607509827373767817014528683456052753936331351368050898550036196508668104854659690270006182551983443983521508655859194884582717085255000753638271910588008289258873588284993356867146505076543614047500025875412785059010156586886857766768823832111096102866354560878105202289536998634674425461885988218686254476328304344775420689476907398485074972930420569181180239625151122063102181552429106161925771791180425203711586307372926679147943641086244894116135582330804807138029252648794112698435102640660945517391886695321135681384924231099880802590663329478109569569957181174995645462450515121040550379185602557855590450323107366183932388714999803817215600717234911645636448896201397645116501543053461561985231041872719058258478684139275843044556212042930725141720013300430517693356622997538952826563792146521709270447689186084580338343376971322702630641519162236473107091716680623434732424600658845140915344736407454675979006731636958693150627030759271931985338393067538394049464233735719356134290921521855058013223142828110218067994627186308177583657134218307184116494408819527570623289127197647890023744831413218151933788981760676463381954571330069731279921525832530244373619739620178453007771880146444977329061517048270399587372792853215144715467529335308985692639134277287860576948617320025690037720866571623842742578248177053495546862625216935728253542011128266857198363312542893848729965832160278824614183268677049552585767948443588314245129711637682857425804901558598348103186481310277573458375896869133525148308940947642425249199492792008632853695901845995709728515805778898568505604210321640392058672302826573470987660720254485343411156517401599168572840971645239002220283727874855287982809143883050373650948197920982178335113103554965909995370973334160520448834595748393712945582498595786372356367006365367303344858823911378325887081775593393599874098560590471203240788435406260862370986560291712642228052224631211879856084194700661920053023789647776343963666293003986980508087070677568737631488483548255469076071043079544047669502959581761106666684438516706826596151929298305392983645001442025150570473213752036177480468315519283694022842136066220771327589493519116000179583823647350563551020672431107369387040894237857860132386604352609862609990347511224356459181017737015587920732298049252172703645279163023940547478271301872606629290474954537434350550087234766799824343208101137848182457960921843864680348775543857408917518034325198458686220898301184276973164608349631347047349785796999853024832847239974159357976998556967846136485494555846752264618430011762251344947107481887909802827732206888559716265529244790301351188054366221871767057649254525805712207516263380575013635238627586886825547180508765921507635560878153621839462086962492596262652025640150635892059521162193532831158070608590755834684097717673279309171126076017590653646519956192818718725015775467763140393154245706476725974360292993329079637456414654324077775569412356052327746268625124146324127936337690478469821868805969071596033058634783326431890217560106525332036354244818764611439433274612553834749242471910540697747942981587583184735802451499674689273091081814436378942917809249638930629203678925119560048633215109749319955903941718450371085962384032505292729494721937779740530932195816350208580892100220277919350657280280951503956448963894005035962527666913722109344677695848136940984324065720425797128699525713696909431619048431238739700881545723312532187166552845895675863562173659546913520351453400301946306962423336791810947334958512651617451407391031707680393092620928389467496529577487487816809350784033976211076356446271347596076011081040223361593040728214886501498594596539800328497542701032488510817070285820786016571589509479285399861573162302066087381836547643564237592552842256198305307183336061988323715685681622834346568882967824949927232130023446157816045035812673563094473301568291820400325999364261782815797523531212694146129637984720126659425115804630080287053777199008236509085673523410544866286480571369533544255252624116990371735928779554906549346744639363480179841396375186984135553216735017799291099402564787052624419499695764219065443411810105659706286079793153871347394082241298997425502585234601639358653763200612420048555025979856297571777180426970309352491936573967651579606581707981110354759213350666225848928099337968445049449399198340754669190662323436188811759860747776827142494200657433819323343850017544998513947101698709560205899917009728802635688216606473693910445573077897060671032690746704273384621161377810743878269661756534469918829702092752452741347000829486023655581567201428898078579192979183866281564809511439978178058375515791487830378780127624854251043739424318250389828958437277176446613673668868234809998555996632693191844273213332432519666037125453186618575651045367152866929526062329720500474792311293861982768583896498193178984148054378993183605690098213537949802014184781562470048285381767223136716881650689203263190159356811540061431436623548106556427954513517005049489754954726261749917470572956580386629012954240386871309990951172379280520743552194731954335891394936438941512719610628929595752181895947781607179109374149039334250203046004084414177812343237482673391735744635891945123228906785614156716502138030285902977105404042299989825421104886640064236021819564465172465724645698695586901108382715341164098142032282513136927586242519227551218360656594266106552332904650131018559172687733818140983333617764442863773579684130284508810266055216054546490983654806829283954833190970076814868469378267064198330754787795084946703885146591562337520192992098469934823070347110039916564988222255425694038949451022937663761179955821778743822546527726821687665759415285558293636944117149148561910500263301097174304081332830497343261801246628588490723389184418055302479757339442093658313465979137619072514363740426833020875803182414936988860430982490186866552187646305559843340805578544079831076143502976429066255670738782361336287800082606730553202517422767866697872225360310290775788171179120628807986104325176217844008992196406317443574939929214756708620253871791435691258485341665593815466338802168223568862185502177213859976513464355929856822757819565909765552561159713273880034784605242667667757826270287863685702674517152302820471190040733318716330982160455989553376867678662076382551423797360061275803891618024913179627949024338815105817791829371669388969615493476828503164845340493310346339688178109991515719060232609567245374805813357129065246249785924726864614736644056949182771412300630917845969247830464127122047153097803755257308059022884842246582135030035507367498017480438663970031326363220089668371386479178742505773108003191115059426554906309726534670583376615992048008377642215057326288679271166127346480246122654626697434221172198453009986536699418332242892742359252830977346759275281915199404217720227398967544664578775035892359043801780221418522068510688773317511548466729067649019052809110456574537035887910513807451891329736937973882529637989447062175966750055020639502086554458566004772943525383487394717556978553326325831547339196314476641115869819617970274027099358777466499397621853776427782226462219749458678892470215443901493812318181399322762614892862249318085004020486929439267975005231528011571913225816350067208258701883129546093319503183231314855575221712976978920820096226558707587091773104726514287664390593226427351403154364242382315203823329116313907909169366676679656538821134209295814040141281888800259575426229444349887494465762085445998958322268094287312772579177823300597873153278979910353116571317245342029407342737918039549710295029830470915704323551776891064057310804311537258763370843169405011353471761972873388173662307948941502336860581376067539183549376043083438402704488779501630376039452714262011152102179140557812644287629410294342619192330604807832488734582406991440307714661970995398525191048640174561035300010864123744297108490767052651404643354964323820647118300184919847340525257436817364091158528525532545170006617333239108101735784973816354931314552943545618053560931544138120124128331073868312376677208851372953306806219968498955758867920086162029879511014722143788676004352095441123182389404214001344553965463682506608636229561763385139013238862083420437196993559744628313575368881629828554351702226806654503826854389305490608985900912838612183744884092697260970639278762339488472879078767747578233126070642416736698809790254921568941221088208595660296293636971418659392396813969064128006899937471250776389819717073794082821158699347450085284837670456384695912492182800290189372348016857752208013828155059407228344501469924629403781835164200556747744747460173334508881292010684561077080878796293507338277676609307121465616414369478440822760063318420601050799480123418919623394716995855657620762011752499154049999130204295881715337097542511673929428201263784506241771938564851909524451420843963772759063542469539742498269442208849189053305625145313957573248023540700647031298098135611338050422389467489021324336479738758068647521438727323437745629321145024006873287997436606281773514228012256917210553959333608829285683788998628766435239191462374171862290749248380165223403919855432791211053763532176528611154129586874674299408573049405844312442997875496482900499271532963650529623011692872864317528666048166961410133694517079735464831510592172532565377648463232071256500056946373672633767765182181987910269129410251111497393615624216152102566437808720892803974913196913502413499533699893071835059984724271844241551720764947679480930301033234091922538763122289935054304645763388741310831484174278267732767551583059512300176010175104633257392907995965837281872627488276355153201673677209209607540932139634139035574578805020252889882184808424540732009944070585514083562782623399319305004987703586164607866352760521868139343603561931827727320586623432924297806402743457639160179136206139973961942144443796408409851920076046773331998213401530182155781455329767594134625391257652856274382475213007834984243634508370581424040141278348855144466439802580560026536157926085856494630551614102725654282194687376296561822022195754981736798880202631568128529453240142349247177194355173291642404470999769807264534528844716052491863371539009833537754169588758034857589605867674090520797566614409319892309989341556310197485951781993276639110584885782617106837062458465811711265652855208567686141625673682609795703964493484244468643834471011203691493031764137348333633128734145122124187811077148816763652575294070224577715606043860056365010029660093745807619668521126560826707023488833156628519958811779621027065148081502256703042232504499644629411197046370621775278977350558672572942506388461547678503672702024248021821337587821475452342136459960585206918069105582696707644731613450123843955655709014136121251628988479958617131635155448055767371324695641953179519788669383809162327642730218417432335286392441987586150142653882763207895869720485941325445285521876117927582112556863138451082745478980367560212118288020302385295716358853886731723087358249787137092092153097545202957022830177919452391256765220063048853716348855374729215704045043213270006155991539247579632686881946913482532699730895566950369850874355677553307891928234778238628971554053286665958123497075840707359028240042507911434296443811794146175464355774335419768558741260275969103033410552389514013319331985168718003664981043448106392309930280438687608886306934296587619494315994982898391499875001109990861336425912145859055634346748138117199550737524329298976499907353097330978371025521231563747831517381680821298279337742269024882539096937386503528185924206323443168619856516823604987864812899736338488983364094096260826691839376611215380383310932950536099421700871295662862465841315121591713736832950573199346919332206670416579561244690170775918382585137864574539581844073051844335158249547349208183923883727824479768271500244849429936147172872965591835271956519149157702703541953117597332202657253738797510254831186769645712036524753371846912361396777508081589504785987474426226206086535348223615730061071716822395600002142301450436146521993529084901830323424355096884884795708749347551572722955181162606676768633758465013052057411570584131033712775655138683123962525451376142889411596284088162117502377700451926490515944741168272339537649221763883206342948204578562875364927740703710670953741101772009022500373962943363283671925965538067236235687899716647835390495665961008222896076189994852192026772203548719246224189822056982704771195190046480704823601802701577660822990588950239133382796497410983196047297812007771073831646260973696075312385435184629254559421143555600337396226525955952290125839287896465047882390753007281382966895716364788916746625707965426611703110034745716668627311424940537786858275283082445399703052656771193338747612002894852205324245763320921046472058894546843835975713857218990236248425835702203314461969749813987813584295394144142304077921528066986416818259997761112164187157675133446407592455221063016738095562046614814825463226913687180252538036813691185773361931406382313918798642481473321437573746379099056670881557766422403354645528983793085266348894578522017720494892104610760474639454271996492575694234259576511349661380387074377002971037423124419918261638241173028722303273421432025010555682338477537452611270887755476360877271667653891839739123415401247792744655218291160833743304562089008959940079253512061030494323941085881694923716744185917064790836765362161017561648422888411965801894235499746836575506255216276242395158298695942604761419156718609519459825187675312439387540845334510220189026961620155329496629051858742295812582971950984004827329702808071071375195819538566155143266354001268383522715463193349757246773041736630753137818059341527636614159377761874290753550076660076628759038734862761217625869538985702770931434507160317785885166643549796405667741504689447076145906970914936273022534413424643086055192581731308852051487442864442440080556454969138838586176159247543047272730256097857949185981595041767019338854702097192210023290294412079079942610998482755362443905860722481746214410688882294401434278241778435885722175184352949662623050984731290996003408057640292182727554757698196899714855546812571002809891363557970772224252880662003058773375684834578687649400473620554728993225387867951927477402689622807558089296636634097795432777236246162008494517177347008055541485316334009899517180204563655485864195124046139808061905979777888675112304151676870780731795455823215256041532368022080028858501727745650260980558892293303039597661241994649393291806125462776376704378144094765982445116305409774145158571007555737051960911993725242298670713350499845772128401675660282502576200403158153159069658423856393884854727925055300931169351281959578699008436626075196947581545886668276708435482827371906779025696655034690380670013643831910741233152242340130009895813362350764985243386741807932653542411733009785714967257857498410974212724062718331530504990582469558040919480813955609671964396824612051403326296615295964901223550401968632981105032377421418539729919064879524127545869557971479832337456730580626068525266647314552123717446640366901447204690668478849917865994934903083787077213592417426270395546054775979660096580415759547067293624747753252521581602911851274914912153518513598582402131767631389314224828065071270069960075742827794405144456544285725078819797218635991456890055852349025540767189278855217237172632648475089884010265690977466651779886389715682936814731062607068812994962656965909593680553839259853371272231669740272553239949537419600997777399723632917114843108632884927833300186833304869375544027695583222493853214216786313970946209927044347389506633269481945711443248920009270377723748295230930872023989159330750458614406729222354334620011094374703156105632320388062302606162113831113442226087645159484474704528488027371610226343534678877451256638153930172448796883300054613546643139659711728276642890713965931787077682720042389883489126000591016741600233873035125201534069671947477000151917681038442811956032356119069456836289275314517138017239742680800450508866103027540700190660937407306695526392759202565926029977046962764316387234574423140970142971980003769685215373433901885008796657094013148599492111586204829512720560778547421270164482493155488140661861893277874832386443781505577515261996906007865401442631764842081304812838465671683290345217138691110881813995664784885020740625534310400094828430782938401378663789512395828214504802932744650056743385856699828288488389391244647662763838534898426385729479648910708623932020494704897766143764808655982482171295632131993839971646271425990716636169959394439509671793409031150256026377771304405250676647564045871699072680473607697554174346914127703352617288326710531950810526112165104407515205216250413037922328765621947552986881365507366404852952849498871586580400636530997266343992979504250552574037237263077968804873010515676520620614325741088810481032657915144584363184628763519413617415592115479726373639756620532356929587906014450755173683960397670994229839726945787104745490645660194617215972279881444395027049721265090827726461987126589876407764147170798652915133072302546111560382529387793025116710845906509967826925035510054731537892381960562882102650661809105231668471102106317667270329588868232112444414686395124166766924782502191457860390978397265087088706302432261076750167001843610810825495354858799701901354189105555040828188398843264992154244230507414103857566001397993836836429060246825726213229501246475500366498039619227521410810280646208739985731079286287250941394652279067588883410370608199060340867112941071689383061982337079628411036007935824120219476754409776836494634255090201414062704145295880094910914681551979331916186584217938138870477015833527459846368785224615794718214316514259835522479736994535951375212547807569392295880957550139132299122146400453432216050709044877636573041897707727133908881121105090885427684189316648604425650086267088569901116580924067156922510176696754073512707918560187420587558258573357394699523673183091850425625642961843497300128544624070388407853856660412000767398422504481591983970411748874838300498143767764968256085408400935168746749597589235489098638841944366006028399704955591347543474233030311079359246026208256464505052339206782394059356479629065068178151959310492824690671460156161506273472421436847090583136519511748645762308969006463285126928967309729293116218147403205820056469454016397602805865686696116990382812802735311098854639079837696749207709134568326872870686071578054683903600000485052027246422653242721848678427812854808001022065357053496913876760074299506251003812803646711456662858862394674984426961913179461286890941846917796482534396794122752735392498539600924712072648307700972657047877567558123484137954410432238076060660943033327532585025296357059329685883634046311313603236863978425694407009554185402103425581325572225840678142546812393074207990735354318293908019346726388129329937954014035468815783319961918099628955631099952877217421723772283993628142203389810563587822709916105564643252642212101309996265346687377216361065246871282108435637600186738734945202681300508819154580148566668152248037075021298225333681997113613491121031298504610574927287757944887335719543616016618789339353182381585801465203704421575109614293278193139467261416981848048901550177865285927226855969584426606926501884832873433225447977568960798529418857066219917977928346052244630890229116596056555969736009357555769827106222446039881519620149091901563012832914372249720455482414137379697791565778103943954705474380538665037535002944609317293507287776046628606434664780730181485713093063514395274816303897517599807741774189824500508592640854032915193540337706512248524327954873116482693112218812186841333761353310759105423849484922359309090534040055538728904711277791666429977976024678322777209788790492783455158995242493174823480934397105791111522800326124525677028762486343960582975425636986277250445443967037033111792388870844415491464463681243633267144355051348563987995180562286477095928797608048571926873805208227777546950631794136118480312693232514157973644896867963094686101689134786628358740746774317491183517203672170262268199030375727518317059307617089931152712789848516554738503794244100853696886559221309532969755843278609895930957935048677940270580295102393129417480145256617503549837352262052451475449041308332122978147642744419360286084226704101965723428761001238262666677420174172767655767229278059591418933134528519498037275215781190821385571627972402657775371820093034476092123942094715858385301670642314095776679357321762807020279976469820996377087476981749439106179450887570648486701184145642271391151456136922749060862320536910488947500532875098165872194591125702154926655588011329678518852589436714794285075307326264954713416097972256905620496970575761038873426596358198894838449787126578094074529403313309320642896269445158248800625702724692153188358651280593510149477436896012450238825441341162500822517271883658919804192820266401615834838557075064928682036330513141835302610219868079104105097869392455919394528232951753666694963320037607751043538672706755036193669660008847780458222118460197178366628612786272332916329810698487122765064477549755548508580445269836228773786628962392521736524069751046717041725999589159418359115672384493140074248375003599851689321089555485002881817071412524776225964872455793567966493464764579432470622761878109761661633226609449677953525923743929918619413743186181605741613862959657229618337469120470790514984658746574278474425337639837390771357250764756118748916316203273242909310290204189885715287086037292123290888841029454467442564172002443558885267946579476583707599963852177989365404594728154875708884792742105717048553412526889482677269808507448369222900830749661876751856296151896891624476480878104229212507044231903442554858712501757062482219643172585475241717564721896722568013962885505761380312341277592765693401371600603682789014940701400505639060654800810289470087142038553354328519964947259286825166727062560672001683068100540771449848018269399748647919088023932137665402560775681580180153994910927050902992025918322833674053097804809379967051576391441823287411669525383665968610128237491645467619874230994577300539679547771888944800699333796151871700452279157048760410205444440655456734087148879056870521994216269612628135323190520645308843949750470860788637936494394945089626326596648028130829731570380949209549725214885872259369651026528211252984289054015496542610755858858185556166327878529385429329973865846309350017786700145790704973755127239643721281909309249346593560885084707455654020737514912593864395287075839176752237154257846066004524207419945694986753478478499709641024355297553710583178811249895828686335935015920435643623182522024082509624336851448526917084219347668144255727321291689727555315872098890992049360260264257102908468975678492206346291309005536663608136765230764693424218284792685679566863195512848684046425574242886834622917027798719136006118157159390818119294689741471943980889665042872226400604431367366189742768833300865074583761636893010284990543614625541401664091790938693029643802369866264123639535035356425365782376405726102364399670274501031145375552257828804913343896204243505887928950365575242589943315702305484233815398870707327700285715618190943466254452340081399134437854579654552242379205465380535958681013188053917777717162607273298173328077704958924540281039305424460513839321992838729011412996091398776799682799719765973167626041665992039785363083666581299651404673238996149966993632294513390169987307726386273920442960057701179322014070806692065304051833810452373168356913777344024805659276349781908529651616172119341822699082841834012409311489642071166635372401767406634149487256575296940176916105648388923944648929661076374830640445477148306778265392675842029405351517720563394381311144188001011225693543085184972838491071919355406473127909798278083351115604594383063941713565861752036811076876927234074427390240229645777878250668052000412728882896768894379782828634181364106187644332683353669425257661939982457086956201525905739524930938498896776915469515729106167541906828535301737314780939833631421743615691994957926291143769132317055557485023824955471647421559053477462404925526615211467160152164996165067770587154864553548998668050966106036852187176855562917979931239301576691260195067354436304472068587992689465442179802999786430126829415820566505160703357971231597490547727471504002741304499386778975738243347805565339682951705316219417833057792391751688136663545759913217921487593548507057257659450873175058696720837583563511837586444447171860310345534858251638519110494310798804121057362095220491189297731621617113977724862945485645763135343525770697130916261920020780345546222985541172783336211858992756718534344827470533858439438178435033212057885778887650229671879784333392922708889768794326617596549163717005852937886454074895364834112326036625616886729253420786032707707869336437751081832428415796969428671006186579525480804923987515051945904536262032530626200789714063103183784580053919133935396005933569639206715914390943278829736331469800502584327059198937004468766799221477341172353302503399414398852609373521376166744010219468140806705298537248147420842052000213132108071408029159498816981968795193681251246542693591585747320216823381856975258170164406714562210874349981187285540649061762001600312976806130705100362059979706875292752934500826379206517561714733910661039872679975640520663242122732071379135918473666279654526400459632364933961148312289728567744304724292448648964092713441756368304392809676792801339651347106937516699404892664467186919407167474895408532517435880248088582208202145889719107829504229791893305648275540322927616551593750281814293364490544401829467174398287000033894042062410806947463617298069481823918619949553168445353706921545787529364352488157138547949150742935492243114136565996470766894409917554255259432171823414451243820356749461843614875241015347939914639346287374595286714063392015495201992268868599480677737427023517605182092418363366336952640808573033667367487482958331815631206833441784509979885018149409352755663820236151274467842982838821760320590077305281403504014089257231268866377035152917578597747159360147232158439797928790711492704539521558955682684578334966959902488010896082694616685741473012820032706918193834228929451620075604541355416374936789954032705604571493415777507543180515114183702114176885465479469417195280084951190438112331611118886550371872485474714666296047876800910725123819603681391187450686314469945151374962964356248306045667601762576181858489707276168993974369999485096581506783462616077626659882094462180190560819777113355716668331421041023946373436864182868688823778334716208226793544302432204814792145729436951695570610558471494251589296819182951809770876961021004750464928676421432511651852326717519927241453097364891070377140959836005840864222603310020499971479381210511319463951248184320275652444294707400369644900900177596703688334723140789755080751734530525935654643896627983555057459124754231847023509041015690515745724428559536670572799295585406178835382770085534187200315115757241575673069840813959269345248685538110165394186172956225169658271882411114144431134579429701070711692214282233874896323924521759657729212983340661093396357072516964287270365403860408218794052903836730037033500065766267643704617331701931325578459566197783161637077882705280872312648429300554311632746751318528845520441959104811449625577123377014768927417164669938908522141618083104488563188948120888059801799246687426125950742921449100837670950735613432117655748611859387316661439085521416282527551604629148065009647821129664479628511263994872194181475425984610196907785983609105909348838505421687937891564880268297715735388013699894953109126319317256538990282068352292188353962770582231707581633494230812503336652719660190205830555737244006219416261577298850127104313858249111261685962952556378000582683915120427261991635825855754069407868387139613943407798289905751199488214218073448961805746847969561081583325009814524065619775517931784102377990736312663102203414883522042003671635937817034163867345834977371765169586987645666979364701344251277309882191277549957857032837890148252708735552373090493462959804015596043042308440713958432525009092525625889488490693295558343346433666799338137676029067905532744863965386105701390493387209974660288934218222292848441167762245359531635235074594323586831415835995461443729998448509060382966541103365215157734050074892188621752488119176680585365043340458937641659086881083503350363404628483569287234653063944241047401182190588387076466718696803533375270544015486589410980903665477948153040650852149731906440747447619513272970595827054130641227125119778985796724341488628340734640967642118746038875224787444820933148253814690985213400590987617064873139600339279502518633654521473694928639536436383768352822386728673499032329172395533109045021943097393498828863030493020313677582617552798689648009458668507732530697854514690777682285481481627232847746480530618572122009984939479266310415830431372643511887061075428378641621574435750819243595404857268442280273851129820457264697431764400823895105291897922881820566409561379332141242220556426457293389104098560847777034485154119375466867096775209958100469012749602035870525781737176158743081018386991873367061981450422826781345741013421645260458726162387092990610295637066985123359546843751604788903421448184113480542418359454983295327095274686132065914454820545701991075005550584562965003649941709013672689687034193681370642475223328732231983637266428080196416646411359190252061141893003245740917587664047006936768953231588438928448952589939552336476307956325837475549406728229621822576217257214498953066081099769286355836683009476025700203951379251058190133627897278734123562861439025804076561946594150588863448121473488586915302867705011639494653751827801700935269220515376613280812750476120671948848666610048134600141351014710317654151874497331304787007703173679773836509660722989428522872021570559424801741825085202294482435777290560468650707320144355511264270461380279435047417780534018129622612598799372484156326167565952080953926466805308999150021044611554393479306771633335572125991949015909319663141831521233682175836984601585807396534098038887485635670316864968979704639466573673425875552705694986373746394886102825912544301444851382377573446754585831474620909520775237157281782939773547384803938973251136144439550912225530886187680012163759967231502523887649890320826832200437893946480222767134036844927994674412685656414614242122527188108583530627851825848305104507066833455064501718904909611343222485754801924193373761777122455948346969848883788597662174816004236916822774767106317329266451243233426649199025301770408567589200674741499074302099138050518451096506272671226889476507625763552296852812984326018644209931199996285466661126022990391453375399193949165767116208014875571860133880889873949515072583058829373993161473438460553686696542599189610183481364398827072331847783337692929811948441656271661462348015489916820850002489597511037601293270121541464491485404398850113473835651699940892052675449254536464015423834742040565989665103408741133433309302153865578701344442118782276390046763943670600807055253823534350701838203829860437876984066773226735638303676887454013153566343950159344963887873069427177768937616093037228422317234513207705721991026137831720078876648599227658840387456920133978455987791827713554715933936187355811734736462161923818660433438351913654318437342509992992066787073298850262615484361511428469717283190143608900579923445772648413376126979469491066207449894376238765363312026672471903676980559337129625447206621448213411185734217730122814324961180286244387769007861764902115175719311727829293364585369406335007792764211449889876959106479715575045165955335297432898147490937440471340204719212766085625467267400985868738007825977023692080710910688637408390444666066695578236025463087748056065315863192534472588790994694362195090736568142670820740180313496469130108890671596796992305358797498284853858544315336495422323906816074984659377853943615761442898949981140016506653291857658477015451646845561140062960053222332862840027518936080857648646303178310856464210234137072391269140627322699726627981015655931863168444915776454945905888579654274146118102805289867633850963746949273940436563074868824959202098347797979439122288144839337841818205481635113170795320925989571336254281750116203719875994638480580236741953146975063869323864057422554404729005181397976040414370192256664202319966319421633872659575781074731994067306873295249629469039373771263539384866045482001802326240302974119339846696907545456486374739360302334616032060048938133861380071941449648126384100600543774928135225760289003623675576969544918094531586012209756540253244535024042617277805342403174998070855551614004771075012804116189731877144485928798789101277772034042608714199540573923144563373570578319356910103397049224123200160673079062952596524653504289419534565899931230044030003653402368830045803121199084471825746359742918305821424806568653473236337720158288270307596126633558764819015829564565133191485372318268528230764452747885438803504438657391322598067261472767910474663291499524268991673491900795892188816983289751564408293298562652993577999021203973905625499562214005348333421583759689870416779804583405482123519400824538875615532235143902304625685682732567332327674033874613143478739391269850001302916863468613684060880920619330271166100161633360452048655364750667566690451108362468420143974785429180058950104628294708854919617755987767330730378153849771902285360229206875685618005890691262716202502494443631347071175818265953828169416587112579421593675318497288206004856591064324344458221562632167195350371223932182871444849809939345704624059394916655812649495086101303669582898088429016180651113467254351711735258678059675736763877662780746024605155995381894326365270371661572176567110552245512103555508892204304351931624552044772673668058162578531606770945294000076404744441190451009353754150632284881267596624527098554684212493367230618092378044991682958986520855635846340438639045885278564303159612917743767080659626388402106720648350724096240382299468089117552396881913700619723715027454412450949436197681087010076332639549209368927790802904518492431723166503693115853241690251249731422537069186526106164709779554315961331227031566319165775075341991346210671390692774085697222446364528703059817484005758120931112391839938231280035060931169100049984112417358902900453466533576371502217418332390458410777961580744448495274950610832342550517435260128591943338286334753534259412785846082538900050480533763419294696740870931174241889436473737807536226679396859276872047939080570306830341912952576782785031852277884316972891825930088767824283072560722674863678410432176927800102994081836572114517175292572669992229071346490165251901005799210167074107482290330132932176356081921801683041847153727524229802096332364492886622178914565895263555856218676170776051719116647386665204990355375634019096950379415036191581989135894873390947523669846025878027031906002723597273926374357959108899021258824330526787278535260474579003620193888578556777753013318251002241212298066491156297472401658734915027450697079427679875540098456650142572182719342522906407287911128893353391360909246889991657382435778344820607629449950121443918202833647330894679331998353028032451667088067615191771649371805185406324056688941561113696893075595317416800816809883947817551164675082790893169348749885188183683218057530465455894609159914365816066929271640545219429868704570629027681839695649015597312767548992232565133911039756951844205340370348646656081123968523055815782973272719512533671807428328968753259551342824510815842799905082746523697110245015490631186679518329567797988906860880947936699353809084316977797846594211047063630303819483055489588388465125144128490324841523324302429695009861225064230205583252250536609580859331296700121087615309299643800886505834579551926931629973321147902745428120224236975152256767564176398595807851081408779120096868511505047204832113453672032624269903389224649225671488350023020897085835109242520780256120793179698317279422196721349840386234635592815817016099591710229868646014430542048576827938692457162941528838318345201348687000889356625897284322511356670112784843488024492815026898622061166419174186247825303044466306626133777554873768649670593176095601059468549119509283735859352321296993020570862411388292189618622439305009360697151809128897962126574505036677714910581048330336335906207895635418513254671382147506865128450215011417865511693877014314356951273679463052438336480528785135907082554553520940224405359180048167709107881681499842136753902831668684407505555573876370362395796633708947855676365105556718923239347252752594838238302213697954866007325319260402245573753288983505786051923098947615534159504923236812577959763939103398856796432309212950268161636067382081891265636741060979770720537705234222311092715078973417510861302153664599680135836490419186694971803795551926489633316797561871403235723282067648770095886690683059612264350317224955158978898602841971340174862861862612219657495725516304171751245246869320174950510016618876743644347397958680138475705804305008012920216558441282415084829294929524888849110982476056267811274375967992295811182598350050128040430001387805273758451582427542086031437678777681195178723269820006625240789273344763526987760399396944912325272015010400612557244670690177669012612390359992654769603634545419043679004276564341371775904299722388092834685775808782097329929293227014393595013585439439159532198635506206366268812058536413217146719602306661410067526506865180130683753446585929247937237212646493064308525233966758860461659317769702153587862130355351967517791809782680523406323337897053295027278187047568863442207478908443501293806742724516914307609275398942561706811481611252875300802760262110796722011861737373865537373753563835003138685040140527513802523823116277455447519919111861310069623155251143793733117544922126910581005357463540059945784760789096146955500664364547405516052710096595934224471805851692060603468844850834785296675023474569347880781653355303847291813367184967135371535238239963063416035880436008565298306389388807866035807523027602666338821663742704238107644676837805544722432458398543935217962009628984329750520171537033019103164146195122114817670531985541691566358763343459949689402945212045151550574721197549250002977455919093600758004314693598349555590825970902743340127966361236470556934883905618474557717827689143890816611054844179217047829855653903482725793227222588930323353900977522028843718677458135759886084329360841639604826020853597953920312425965533385636068697158134557398321994980986935029808685308736008316696740832947962196809089091888737106532065819681019920648705293649661830837143035238604188535678864990323113394445973747619219776527238671434444631781792674033455762262038360937156876859949770395882070507694568585940953576208348036694923496975783680541163681733422452018791727660705125499469580638176650755345669382752367590194960856913819993823594980456614193528375839004225877509610912883000532205290977420932158070407162575703313139847014166801482106936107125925241957966854082341603153745953632789616825751110253853062679578975311505114746340987369660041288816933921242374585247732860879840458923067588282845598686956544580006342290362937620219014205502665665825216909031437169013854825144623431475736738052917299656260553444072637108990011302496905878607563010496955832592843355684872884193892609594599941401370001440186030587487973095239549378150497529592485236228968805991142854577613788180210313048160002482598588030218040190128029471024301764269472524069564728235027956882220597842886538103616529233757224258950297415355893824408736055349630854589599649582979712841112020914109810490080753536689609986652028867418569228666082744891049072343453491232509971484976088050883786453733681278149679731799407599984852031730753847068976142844214640162828534346279728673042091654292061278485008552859610405573650122089070205365415767854965262525993685658085374933950198050888538385353055604964468678613396686852013218610655613894235757890735023261266380702412505703891025422445525157766954526317497291398660635471645463814566307681853474778760568315079188182523026314159619682277342782964291615054638910690092187987055317229975848440715560035933430067945335576803377064540021570472594184799507685330507663109281868794022828712189757516575691981218054988537768520063313767261749462370329338632535084241646938362661334237379212660603681328784138846638589256707450898658872014133734200175940668862784647623811174835394324993460990674459688347422492703646376124587767311613624090127563352288703257844098885114905246158671835703124252768138266032991147686947025024952334734270453936467971520942305634115018344178330100089806429553544398047547853722062055759986011995701581861614998494934588721146582895270244016457622838631753109624772829130177415490636197252943799645668889111600194016648093159861509603161395857768186560999559539010115703518785923320710628888286556316888467261155158457022594167916544388891060128670504084717408776572941397636780211341768768692290047320436129956557913339267181138028519475189818411789355033088841319955520952549737792389986132991740938605496523572947043313697246442134698341570276094853499281578045107604135386480950619573504802336322601202724701323571859658582399989122859173542475225685742814598753077376276705179999065639756495912240968300194606549842828482395413698145365747563798104290354501182453228218166797182426395980826252978853579838783485431720835601596310990672661799747759839737886030660182691226830191705844508116675123474588677529825885489209445576752320855543422964828913291359279687293714920003560781796033851112627672196139310887505431016194895914149392432660316200779948354664476431742274838981293113787003564579117393280433815730371086550851647101936252901232097628439097224156397105758734041966256288391077041152798787505884112014854592418736129718488160042831680409520038384284590579738124789333574355525617362404241774027859167282968517356498797809935604194954762404197934910844815732821736875487471203982727169487684536121051715615813028564531744964769008201922157845193444920226453705355833782299063713946129315675890095642966406284692573228300660883856256744351822111448850866796409038295939773057206591754434881807901875607214736960689443056467277345284068096376829513794110829542401560044563222007277617583741342088469814812626539695326459964573739985851876878809804332929878013420177066674791665984207945564812447919168968230238680016438455446426876118435608904595472437032236928786792886459798903235483376326248157496987812294182230018166761220082541871143166178656548711956485169593486355245719491351853966829400328252918842532628803629737222194404414289587720284782999158499854147368382992614529080326946866391183128834939505840061424604832649212159600839332851007846396809203718766582013862868848662762620904366759406266403905818275004367134909738252024384263180879707672380813787186316118477670342880845203325962937484317567173148268660358276844728645462311893064389027094259039218289561205425105381167103548322183559560800234836395803903111558501509163993552399826316207424205140971119067640474817586851903064007905146624107651949489930594887310997590722250510250569170348261260528318955928476960874285416846777749679799504469586736399342674578821154773109708960377456784403233589622985102047166582928849484638433590327108214538727973132519795030829666309203751950087761327238500766787858605825313013943703405785016619173589387310333620125496211196247612620373117105439020496462337264936201624654625917744864970303633885895310211914003675519858177961945323615180194888908526259966117773637758515904829813864169078931355715936463564929517765670313311670210048132950511246312284615613725886971695324449390740017625441095609685179911391537461736872263818627282941036665834866046300869586117075795430465743053601480949926529285686251002926345093406185293158267537182737655570054371604930351957496599605620734786303453996503055617038615846900777137040039413062264754679765976909050381616271930576998137287684295383065931925634342704817761630291087373610262193991203990831304350437708098302765418633211129383077528077498466130560212507556883026538230861145667216021161740157407014889507423654066682746460674151213648653397100138375042714804313473530614386332704158525103666571451711651427970984620627321182085202431029902802098500733395344789368549121544361873403426606551628254540297242165905968554316244529992239673253296673702406743244896629755916947438125715316228508493851421837096805481943633157895714167606058451551120040967535386880995430549939783947002282680925498378070089182839436592197476586427425588583583197647508772902340210325691590557285354673830813799042193500394095464395393931988481608776725357029829615159059933340731657428669462021769527489490068917092425670114697374606690531456269273494443252531291499723094375106341427333998523341269743235629517515140210560824336845884631221201801023393562469826657782542542965570648865822953966283473417798419638821088626296416869547553387823927601453384487193409196419842082695612532770702099007345926609961389054831992020375055812306461914951515498754827353752491296384225134323429808226385206390586882509666318592855579450213256069207375282866843258720963448019052239267148655233228587822878836240247968294099874565599735355817042604395383554844262984247525126089582610557326549996534448078894558930168873132434022692451613133009763477925936884055150660842531235679443211762021021458391600165458721366771961117550950022242814013638183235096309251258731674891707648736739165352194960591120398669527059790711019541501488321457738495765479455628952712192701825824701638508724754503447847584285034522352888657559969432620880699490623585853812779361664712929538179502881560428821084503592346342578690305950067773797253673357751168265148921177580905729431545132007306068515612008900585823426602868822162901089363023744958209623433413413165835339216195823181454052471880599425071119925932608040418481853514250582200430078300650136392142948137839365940444283329673673836564780236926400629871360246241014356454047036232810420441813742487217581435964159725145486473037752588759549524510124764357479478621850601471033443774516160125182654535750900780413991887464181333519177971673346223876077853463085083777646183952231180206837719644861703499656141338354060098297336368214726725364364426007743626894392507218352679666103586094285092735598197163537862432995679879519557467096993825819667283310136238342566517673236075657265597438710303521387988426026258239840404921541432427336465054264552196584092207603293536041497956561225870737730947398657820888943387955527876890549655965582851583933227339060563118746053271877769663812651583744551932058766365469770145244543076665373431330164484583843248812603158943991821309951661014441010223724016817713336048547165696081472195228980235076669445326792666390503410646987024649435568801055242766339444252615152049629482441578630725746328534471312878773228484294319727261129702750661729176421281162140490863340232529497486252914736565474369235490633249863918526592346376559775162473328697778475675399582677223724007727457732903247672881264934631811357010432747481576929911017696320230094282859736719048477213776023397420160669537630619047723247787435291376012694455780733631023391415102972953711656217038599017727837431055008689167592529873633918925223956355551204493909032528478287784344407603892172266877446906670298170531320350759061839389205349401066056335745893195408812110039960185732429249383353970333515210415761376518795076370589621248219420202861800546344940148130492764127415338298226219559570371213297579287495303033495325781637210901302562983808161797081113089005522240594196816368459081362533122586360601210472488924991895440454472638267475831627685329350189985261197840259756047268186584808302964887729541864182410483910298841007533008574817134193458681666223317481256034851709515647575573432511997837771851603216854020965531607900049243463427190228383187095213557940840573502202328941541926620277677040768279510260754272053983312496700970328007578907034505357949683004388825110918866117887763105535578795450166020011045026128565900817712153519333869096333120677454426393671492501657258671827165075427968166762881424924298260965786737749430356247035905072047936919273616303937060970757959335674830247482630198641127502092971065321267413033352067760448545978403077866401560259139829401478074106168754904752224961951883025291761853285382910998056586857585845333992849312249877822638934633307558171648373505173289629914828046313162260401950786292455616543869502779518906449943791222661670041569726492792736522052157552570442625810625740186130081023566086151881868574724936261971544989348328534652475010386416923598528006464585776309082905548897267274125175397681486721525927217302262130213885021788382838108458819525027616161241297670986167319435547347685659802312797451840577219126373987164613533537233047220227909932624684637183493168896594885179807025353237141577259311103045827009206956249715265508412327891527831977904118550204239812483633453712287521284161862250871273798164099165647889391070780567553633690511178901842306810447154139141456328140025336485079609413886560129122793193719171374255596008128185578619352344047247190055401468468142331646110233093353399796715297908039128796955623897284681156353627949137461923528009797803622841681575983998596813335923793728545221020285808411621724718483530485887786447744094634538603021367518508069158595968131481584949162837831087649840213157943420387283905528980241076392460364266535980375415979611424013564094773468935306612973301949547894946408918325586654068205888148043841511492022325802494773849054041938995577295936942219693924735415695678298888931954172345523294362983664284061338801494380168466505214907996002554538860496948380173277844570620837714798666555023632864500656947900976351967500696728890250593649502516776962691828369791281573997043994248128545031267491834770427905522444810172760985781520591472909685076281747892421265567538387249301989965054997899941710807437024551652771271899475078594352256624835709724089329461193544687965566298631411366449775979961683806494394141920693568680181487847818046052503812028129494983628273770689839169881612984898872475630081084921076027305181453295421999652001734329850961624428920285604261015586401440734095404288638403631921238610402640198478978668182048192462170544002386277385349544253980318205714473634155506760710023929866536824596790111546749701245450459238241048436340538837519478991613806949379589377121164613543663367077449784438332754784738290135724290917059729106479482567945033095779804147143089197506917249707728335386507747140471867804109879293480736032496932309442897158205039163117439603143989435931392568086457230316519035867980329819609326141076340375715054022431889906676544375163541101706854901003049433862291294283641447257324347210227240520884098287027928567070554879691266539405448839982441699021308470526785304779017079402958389562617154066539417174177217318060986988754400891032377541094883824204024431863291409264456376681330632133903439687936260582097917193743329867583670771464811609299175280814495057718530176766049003997771590668685063662327339603808225858509193126682639395414482969394245135366971202404414548842742240027876065390299222549376668554773810891621455676312761038328684834448494402849924642425163774580165675610620218043244931535012878862741083917081890335164522986769970015788446112517035720067437409779564714688371101765062329157918782021043249205513044061349426394217346661163654611361787430582320011804340726536987151034916124921305092565647434659784465130885201069839015724340513453666202683281216452081174907145082646191032986645868218323733871088143048486695431683326645531115341635555094271312890145708360668006378529575159933774046086381602361812066287384881659871987345852406708978035629610724270717332920986615930138081331827569698522034243991982016069489918468642758834514921796460785457897706943339826469025344212064865099218074290048857163170429255875606563875151402667605111057394498597935728708689747455170746964072908205675003388118901699041798754171181433450352935188509669882452839435525979046269697840853448691830353394697170455593429463735864388201873717385482621496587139980720102980944620838308824187193780340317612139165391327686000958778231221431276047956540750000910705293402600392512727371756406015670537670028309468834326919130626226664014040966117155393953885257927500872990586155843685889664582135594537300835299730130087050337909520403488577616578011161558455152834963662712695753660567040987652750339423423052453161597485720608213933196407730960947169394922809300340676913041915267421271582796271742383815821064784468931957358256068489611909801963324124667095240644460507449979987448758328516381687141464259423886689151086145913466183662499050000495524971201542417578791277520481231650391291168939443435218599170793743363859856354235986733602688970630335868584425986017073127612028805436775762608822417747592144571633606471362739764229171188132575065555740728608060173444874348830834779047918550121301245341032131174216172058391984535830064768049413412124448042036715241757573866951089358710053195256557329388070882433678294386504587655155579977765358150002497696753903472871251854965171069739104904523169689384323621381947002763853924609862273336028536296829576962381525079562850693417221585210811211185925197681249075555033943374974513602677215901627057790258835540147231366715683856569180915297377718052232085888176073843496630060294327395709834832316936922901179910070332882435553734861888999423520485848845326440142288031180204367833733553595330556242859264678018335024126745051086644292075535424349230250701744240189266359743506323325203659099005795440036429671365453246580684733379933549856711538440246213916857261795977134670668495982269140612000346487821058878805304421079819116077485627244129475685878430972131721126580185852580415075955455972754117237992132148145571960798990081240293250268781802856859589100597066401027676500553344965241641702386634744701028869873908716608274435082441335101041716859061310526868300757635547157064238515889702351657877854023645070024957759865542809289489642209257059383598081291791264639010909996548855046403044665284597690726245363017740654460446072589866261626341134122902238578246814800814164989791276149306391178516976017592711444179083157288084484750211651162291293125095301713097727613414477701130371664478153379747140673132647448584100336445251415498070099007048330391051672978991274551291024522874218132623000526427292344561045417788767650184246136737863050244210632863710232995143397380088638076346948909957026463346878152617851426663491859610105440250757438604463701722885108701783693982303552018948211423129757504831996092314338002273218558407793132210362178498407474886633963615145134006123664016887438371444764218094120194573143375960645414837391771393704065725096716607806705220108815289280540891382220097795939181738811282002943162885426497772359696739366310489736815301399411268862225778647189098740305628046448204122460007246023031524238931218808519981163539887080489449048685525757718594566115382081950840021903168501863246116268384941013340703455658413294085080344749065485712070235218692081526295555922303397593424133868114825833308611022186717255993574260091571795567361886392185918657415344367684743297551710549726480236848980005426242048611731150510429497278796974406768576724228216649636111913937213938131565068452025936587510431226411929559284095166373380541858617293097883068838429771941505594421003971201246288503448603931478691568338593796414669699412040700086592617408202233126283308680253595839729748835660475991626395805952857742296782582581344050058544886234409643346888576397935407958613748471160495492141709651818347119310488835963815499438496485539292915038625694259008644320787624012488978775925473266691014346565202518775487530594421169424624848392849377965415545846599086214756166676647316178127493055992328265200193870364849628413522037701282218315075060080816184340053224817059688599018842480667321959111561890199521410154064223510572489014825819958208001500096909127778611427119028278028798960586680688040050924563479213022433072566384761926394670890485954427709348223390952747190945481500811578783281780794838328880348241397691971085033346464377104310552848564374567052989310686548620287230638026965463821381940764779843009997088134728747277931808915650665240207761128548233808944611404237859263954570483416068497207275168886609756635881672516529395544824353817879792656527525033030469774370468442265324745130561909209269735722817850105340819801431973382422056995242156547493255344570515761189453126647922092324469016462013987674732833670413323742336142586952909314079071142375628067671207367579546967830772699938359251210431418098238797618174461621125166462610998892248025229142753982362699947520057377222167040312246985187852162387618468041146871700390150857135222567774435759417698930907278312733667642743126031291515092526990534437291951205715130326709490619027430687231519903497487122957893876166647044299414076454934298000850530143721034687686578674320225470761179103167108134933882609237206719997062147564530432282553499159003548178931930264596653370379671310015406022981756258628078033439868979587125103403523998825127707574117473261968008195997290834451613145844396462130599114599670319883129040626061931799585050580366376047857815053438280639979810348128757979990390588729234612291738934799000592287359977237471581130517416076485147875590727816991255030424104901646069934022024493018022828409393456031813370575453368344817787954894348433451007909317146559536165298473447656432161730029687977962623972271654650124018052691649195798384405338454927008831862022314352204127695009522772981824449072138606821222597197573294315299324072031291650202457116263134792569492640182029414168752715752733071786367238780709181826533488713549734222691975857682744183445128364885143227710061714838044583763691394740990144864968880451565249770154967142303528190311042121028379785693130687943773159397558509865901430544639369521913060662977406933069369381626316528618715847866675248664540526980849015703293504644108885997977315710530526015250535854195025212102498008131138761424284163514305964463389803391665814800842385766989847720675726050415449731566276680003541317460876898819879863015856766551235746350184364755126776085088552692280981311071113513252339225596494105329211268504201838891989199422601123577993832243654975965447390318861829862354392073850189520256641462850972021235302909415213046514771347408883847813268470763925579575733137938612107303923680854297552075630976981428075912024899139008867162652454387305220987523142127219910901349215642309694155964961309062947219882605736537668549598126835756801062447653533274816598632300914642807213553278735190659468671612652034251229480701805019925238442574177929167935322870361265402261718439608768094816167954074981724249294932018344347945894670651243883467110958477174297082671042913462329167769415915606999415264927618583710809323107605180788188187295278101528254427223342184500589972770471182947381582105914324912082160741796445997872819476237922956976088750175547608605658900997679800737195541255713153939215709463990263916404707566218653242412978471139095345367554087524230828622415028746440407946919994524747146340308115532316921569699369565284507651542920686870066467380324960006639150194119788996571797852343571706497430114659430372600143289727410563806767594812538461276089261122034064680543664071619330584154382599424783244649112609681242109529602957131120369035301829408183616419868592081401173508186452840974036086891065032680969825602324390731232828374524078115711555154008898021112520802182083918385735670431837641774732772914471823062162808652020238843264995987415763041210162243417054318086885615590120617460473113486188862535925924933418117828205529033386845291531257289584903815672022942695744914442967365707116653679948380263497403915363009607390046427280329488863175747997372699085602490872244144681707959925106599003398865956918262731673468128740213234434114296830993506700218039422767656579362999973349528376819635406920194285574926780069579656349920414010882044100900854412199056829511864276136795641923853726538010332079469250179362429252930052074288859141159094579907156364478449683093030705982644524384067027253646404347356350556480514601232398725427239334665512950422498783719575431396776473721703642724508109103027189855978010533810373901981101847660877633086169585918605271726046662622939082817026053612118188249636520698638745273299907312365392333346397183563780540551399295596583645081434173525658804888597090995770292268245240590219908172080799452517765447973038149544281582906883635415881100133091189883275322519759233933843920825475881770110855338013866896028238299723568912461845679938666962827783809021795786089955206174121682088392764209089889708855344769348272947640408440276630161455086033587003678668642203452686059555319450679453281598642709286038470366994225787814005058109104062829700965136048834234770704683709475471032201126877990333517988344633601554971525246339576970683200991646294883338232252176722883871239541055390600451728823663090334007186538462177163360118432197877120862167232942726213709506270194566091331349806689723684728620084290050248258208939191550907274030069768486086882504931533088756421144648248005267727622858888274243783032811102770227891085982158472280579961955575597709944245217599827082663699629195001322190872138982850932434206957873425214825505383858060952693761929001567209722324949226728822537637957875398269062781838301979936649286911280951132868171745409234707021093812700423228591357785468856821997877233496133336041076460225564002040976143249710375101975333679025138141985060667117497641637801447986719483721958459271648029499298016267298331163990528597418222334735827745539597323986843480575743027462034558660121881302487033044559737983365735658108497423113099602560504885620914294488143043173062751296907679447247160952135064120055044538548221459509943786417967142081609629633271115997621138838673163360769714950280670508256060354404498353651868764635282504169678181429961609201206490353874982357226638822069964361693848614082475221845848236971380540483095765755284350115234002240473039937155532637394464934828196950256665418259239855094972619235241454082746135559208035126502997366001599833070261513810871603756319525225317434805410118569294025862814611416107202548305680088029301528675010314362562002520060536161543474067541234288969939886454992325789945642047962245003568396555177553113945980514732372509934269738040079197131772833694667573799306469888817824906166738769031429521362610363517712754775457721944799261149467963500475726945775682379019482098151832114094181779740296953968359285166941227201750895734632786772135482984401312812687623970436229364591792380187694742756245189609347157093602687407323150187452515234217848318227486932472363767238585787180789668384747114576707522117619445487840409305221965390893570789460071018204564277373305026005091183381741498190704261913483505133817410512059716551038903273043661670351496062204774492167277937912527415778277772688179486510632984960500868775040649337264999394083297375194239896852416871817961767532912424302721807681514338448711427286617103927589366183327910397328854381413602022117927287909276008979993543607391294332671128339289108276850365221947005779716342608297710529943664860104254619988552733104110780946666577070051062280662266822309133170415034061265691165865302655938775317248924292857432235591534213512629722732564583889668412154506722820386161073007827786769240544645696147955915650217060165476606147034129044129044324290656251857897795527755600130366693731046256198187304090634617570272960352031197080331868702660184076748063289581499644274186677324195129430266012535748434573509006938394613000304388741305783991244118081376765389431105399240349312563724574495435080084415562043863874570479917103866175569447217721320663888390582381860496542932893273170219053292221909908973607938118824773073957498130197547246613777654330408242686501904150658863013369102164856046444532279137645308413154600831606032272630668555041245624622784671159394401746112580049049376456068756284858778743681226649139006661769529440836076133788730877623818502462098055367987948729543907583717024622196631200595327646475864421167079929278767020770170439197537727355416113021626907631004045702587097280992032230196834737948591523211464896590169991842994307801968740957770324288031618396703192196364338623848863348570323854613511701889290501927631137329958413717059110334509004011000355472388751016861003851882200365873854744013139032189780159496815753469995696138901067142252687575928253918270359375580863850511558993707082640680282489991309739786045742005004342094964280998406629450539324646524942140665382796558976206900788135740631943749577565861177597551523094623654443818557506167307579607652530432218105628013746749551904994437677264529752441066915603101429300352391794384657046564015379214807151196480814725133274117088941436203546092423827835259759887845903462902253147128537728966394539098109432751021106734134063494955461986357489982347456326539563289296212339670891189663200052994892615047698507397955662554004915211764306154870710283518698613835525175836888913541553709488877744334963493173245786801283930033446707058559335872905898675953685477645143576486158473599789705562242766842852112620070012152090559920003250472199427837437364853509507211426630110650039921401134638209066048596249888345357535987466415439820584560591425473680584089143117357865289819834507443222986120347746800955552646979831395275228919645669426264334441485199539146171657419581001084031705037441943889512970162498048726748737116530686569400510939191383976144134546641021084864603617582327018605619211032518844064264732256751239162475091728287882909378156126192697070919887115525924676353432218316085076581844528752444416011421574955796391372570443740317916533161705088963984471594334061497023149364527488133463595565067847040805907135665340329133458035567212630299623139884039496372423156794450573002182249025320954133696041307986540032758896688455289050769556843184815042961529110479477461500526905058152386128928323588623016256223529927512551647750312386537087222314996525155404605272524538384185466280936569920047042106813028585257144591190631065375845468369490619996664021389111200855779922150619486483631001455355774347633343321191717282204203627341021272185172699653795419822123515015397646910553666334284580146671520058920908188441995880726336579796224742776093105422624588962113895129696378037539712638484328479774746805203157764970780073994923019423352354248150505594628915174062541914029103984694761313646596267947429400052869979385499900365602279263058842334517718794937046424391792696693592838449579182275587509930255064229743776063903824894498815463768958107813028248178285734075556913946520371194102149268142195171974672597073777616807299436421827900112215565367558202750128844777421151767627423592386887536974548795566676113793005479517322995310683488043914451785948902801080375362318854043357530144035098248058490200701381833741125598950072594042424778659295364888481847793210740709471125668020822821022873376864688302716613416681233193025581205585127694898604760553266550016691244369888119518880085134562750795803753300756263177518278519727406528345055608611475630080536850341971759342047192357612004799874089288192742109798029925466661522975985424515905628859211007870556405508283443688962716508412788968330232756860550804967606945488800408518350463832572990331138663838520360631112313485623680233493437681950984134873505619450435721257149976323158334746510876570328761613051392480758875080361069146812116920509456049479497711549140324258204636070402412975953093751955209028352034105611295218983769802630360223284382693828289336727412948303649273197281191835261803344165794035100758177174419434390145894838123063153519816362436156403892799888364883993003058793467948802531839029710892537457742503534590533732710353857864418940172502119330436508003087827207885184989390332084821200412547915036968976126277435051562646934407383781587887402412347760526018737844979578491917479028489304783943967259338169519356649130077315797557684782438381216835962027102974235396689701621011682936118992580539566292878474435965890334749387410810699562438040609562732023356947170559020212215201865134356105642222464638853887716621542241957048233237008597889384126592769057686575122724806547441424416915814148361285985555560790421564036062613725128825264628162659685464271296613540234298633608453108241450545914874865033756288290633227425405561172623628950992491033108793533576990169438424100314101222584455740336271164943893560159488935517054099750326877669173046538237309730459867376311625506869134551050315825489525169345253304246329166400935618089078644266476450018512107219618274098922602487308882707873087870975633950349028123338264095945882650280227894048804002360705410099059741518123721050027982321813830096502008218939306718861852561642721460008651758957127075670846187451892135519989896297080531939926514257212191606908010702016567902739295292296176082785738724775017657589395760161062382715543986747728626961007833833435473285526011969128863517000852268299703430207171683385430588515534488876823279718459147249712525059583831042065391086520880361244831428017363257225820503049948271108840454607191419247935542488257044862651363592285295511480392561584405635543464075616892295212547005825776104616107228530084459961411787545891847395212984426278843950928279680346278108072347066964092314863286931226403527127988549011744194610582802978926182742522514856502582226477835735862023995191660111966409373229531584483244266177645812824172982898973681191729407194827960720611312768530620968266755681529671415892316052494232898171531499459448540855259151213612461339060925402173598102552326939779470047072105586267912318004787137617856816332144752370906635715697988419818554081337965447441366257581075634326578869955776136664929652720908284312416784367711576826216637400096353179835430839971958364942018846172998455128624137005912636867163780748169665451240568063654856502962100647088856841267072621978464129444400350075578141056605142590674505627782675715882450862453155167520743433875315596961149767084633097998163590196020107018179212148592613638236124626906681593559085117702726605999901196331168802624729461541858746072804042612907672286108209070089212425465268087041388252731493901932120699314335739974558358767594366762602519965458392670461419692445450609222307957392577075808545246102699696699103867784116653627688767710492026479027882322011590074424444324034561382120417150449213602268193252441800030276906926209314588750382654389654398398808504477053665114075058337786738051147603778900422074585185459081284532907726726778312402115932180937204110660174638348411100345021811512811364590048262413167287538519892803015414153478822748075366137467295476255467313889230005435407992241070046931366715830232014048850468931174319252685090647087892689030774073239809359197608519846342836759520261584202999862719331467871273506514588534616120360692033857432672092183415503262562759625279969259224675359539105709555030169039872984541595932651209221143924531441042220756016072304510880766977112962738560284390557882911597817195077271725915008693257016607209800555014301013809393492856166316304363692659794287016781164535328930947580770905514949918658841421296821501042412597035650156297904401646505455033769911547259546157775341066277168134820077965090022434727719026970159621271254384715087931700228451337685174907774954750595690676625441748914466914501959338241702763128775740797436532941972764288820510779607162290270387097897057036711944623851815117943868306237393914035477208701353422915279556354154289846661703870038125680745816452123261635155911009247688174155407812381597848142409489894533561317179677969063648441336652441104514911228253555336005881877895879909905289883066121164879058134857506653477312517996019807233556545954785928050741295153600329379246660015674401401770802706856659812266552677968327380122751728879274329461216513001457146124593131133357663403151490024628822255918164549025854040436995970853287483393934525073503317084266935871821163300543875226867183364667592864722939709666005343977345100652534429844564222890984583627467502405046224857894886774750590151299012006856826148855625402604977781988765408743428888669738384332091913367619341066312948843525275100069206273077857512244191836982618373997121510759668173966371666561778895411520132191117852427102566570126468640176227373664016775706919570565512671084692134503171212500638817068273388846295545791822319955319934887829356194015733434164683582406005106489347292345554842681956909286814080151395978727878597074648542214223094982929352836209466927690306389707653102613393311072937415364599049006023973441251147668594952127778936571966382759529043183409200227969183535306345593704843393095739482747832382567841615892783735729732644825198805495621112073427255949608066621002507520689525987248675283378957744440864250533980726214915520981420667022784584606626339754663125265743969206700215687194931263203554214352555485019983904527407133803592853025638498243899748002891915486235610327272755774668388265784700416282114322056938567875914329433036741129441315323745601140778725511645200693137157275744550363833793747094935991080250521576090236520776654985047603617316199902844116999240603047860110264496074569683378105905409199605518992369768241551020873979309597802860296516914289747409908323168873736303183795922374636181531197371585616624714228332704836235091102714007899710556274741593664192090193435889193113738479675504561692455220182806038098421947065040709743024786999101892583784080874502782213064747259383781469653793124243771997053720894356998265222476679057462880549796149421512364884316063498460820993189883622861345178821301314177231137213669716514933280884949086288663294468684963651168005561085177423767648969547215777282192986112893820695435172626534489703846052191527829937021023585432364323666981411358287083232448164102331817505448137173449151327821294641773602152975237903205942335735655678955712310526892036432312682903994287844103440339731101415241165046731920608241117334069210142707354341919268445750924509660924730827246706845638365973565084947980421016188214151666498724405567440877664223461490869254543045850860536778982307934673606942270720851719494809050848292560125653730798359306610060399157681238997743948438868848985088322621107516060781800833054662481274187581033410364637869117514035167594308779130457616281818248115885895795921217579381813007239051486458331730426965293178996290112455013310375660410769777734227648277582702143571050163852365830238795367718423981991020027218465173702603924982265010061568409362149177211882314295931676881874270315989464618597823943314097360943628915983203116228208170005232037018871711583494647174889347033761458576394256872149140620753466423107526018431148974312715538009242863879377794949157421763512705093680108762108386175847758293072433358825069201960608187803149092768433667175176533382645788036810373077642067002382777874877400737072077036301714995394261333586781185526647616685426835743153529472831785286766592307435618511668217412641932971044346752812963139039259738911197341976842355617037207832568959476558967012118981416759111041438008216524390002070198226221567313647512687915581879937927100918479311476562580866501540124625645934875464380102651106904184922833699140300290591748696648685552173380083866188322037464229247781819846477971118339177155382669672229544007451849280365675732758541784488893000124383063543490650014661800280942630987374714657626521737112146694156245541609303201068099611524686486374690737140527817448407794922159876954994757910028006334244454120407333480464298587469462470880808932637794368922750417189138217913589421419377251771922718886232432002477202818971804770921720782598831172627582724982730290212054995635938882314608230457011579965343587907322827058487382516810824699608168963759609954250082564440500997686230988813899649829437434409874886879304412551352240140611029228649156418463730501576790097802791727489533568309405624992282177081836785050021160965751713032350684740887834272822004644873280066370838799565094106466298457330980403937610572834657604390252037084942530431484081850665525875892007840745803044970516514231947844231069613210430642201186800495285951469771070942860984267767579777883781635181420403893566626760381013982596744784499405641709563884682069177096367381639871250273301298180304548348727919676721918767120932360066032777764178204566697114948591445171117112790873008851752169587727248022966864377603445176947274673914018439752131682719204071590655663565713456515361978238641685953970082458086572989620310871173012233330993072682311094523213621859170613603567782967361374562330964269829244879989815402041554073023143139992625216072985730605435348033367538927186741635335390706373037683681348579954683700655918783630421493043336367878449177932057270265927366856594421557768568665406012715845517122489893972600758706072601748951357086263283703699965990117074217415743323994472063906762186504178981394104873694794953485660141253390706146006311595138814654024827892400504411520003333187237619828317781214525389712390687909760214920495478453124284690744203492544348280961778765593677406863949656843905261209083498245366567606250049383080380119055495192647697968900143724010981802648252461274306547631218946437982690419638605573798666727875427839582851432014411183174993808931761657016813724406505360450536815947608337614943369893059161685826161811315162918253279475606853266924729177737783527825281135859785488814418105459314071165209752806701329228259827131478061981104862910314264563376282642226019421164347412796955148494152421991628804487264280635915305900950828893237524867940540362248975931108155822375383376387858965047699313740944610201503218363368727069076471959275605467148984117165337285852029898945272107712824655435231575081358353499837263454751675288302960227849738220639723350533941692957098381379994050816027421649252429054552877813739325513696775307984026410953981848005829016640763217588195176765760216981961871467126039579451780766179162876208466686826748834494872440741512368741588472374220115685880970290724446544967376735619802261815833504761140993639439040781599891612783422021094093581023342416979855267692874385848351586542093600920767214956472914793505790659004239458221156263893742137474119299145970636544329018099862385630003126633825626529875013927556389459560745500858308864888821647099130930192012534930916832017269918799299952605278850930498085260042136671076144851439348596618399147502429829836389095130418571507281048928573448432988230426508906111497687491832542624250063758187934100908824238335029102998102706169019619575891377645657188488548872710121563527788827467098990470633624405681022126769997971732935417701261080800697236730549355569714993041000650806734861717083831751172407621192472322883352006088564380698872540723568621618368560788651131955699198395876761695068518014894160412700776271064214017240738451690991997085900148455681942633068355811017896069481061149223709714133723101453838730960803037984619985220692655535815884224874504146349713063381436519077994545047845295384365755654903600292332044845819090317678648386466842473586589038308939753619708898771588298337127937082810158243890784420707146396385939353714232137709100260625938564167159932667631456378083062269084032561167430874030018421115304046891416773299684906241461405954713933946978657576863363376788697131959120668141109045586022620030554511920272917813163481089997245453667521844285995388513378674928691294393014346487367668888796178286580579787537614969187944310277154797071925370546747758244353018775853602653720657371561302987966205961359202151412214704184567057839523418271207588141251537673439564523289512495128527281448904809025862588002013165495913390625994590033362939866609208834695767697192907255355284571938310078802388230344369554091290774591115157869261952214007683579208490976036049008729113114411065438672232468211482463735457739792663712351118785340386366467123831530155277055879394230299493916333004502006123774917758720561062154075787722880085740638498698528738817056801401262851825325170458545047747426515197040210706305857282234983885297734665594369489999572551141998717068736130103192435061606585332263186413184500966605158932387048785720440278917721004561102198200383555229277011874126043866849670037399923581393847238149474108759530377756483750803635053300650191454635979824314003727394750865989827563050506728156813033294230739121308935597500195099723097653393607017276936273332659788955930300298376742920207883630844432193832915348519897489100112772647207375100092900165718654220392626463283513718641475591831364123023203153039562795957445227540102998781649923233469997653758344134417562690519068275998681324375976858949748671762244779260328420843655130455067016125020453558946022858856329165757602983775963836098320658115742216138771972189016700418400702793354769334961025280726790074868508621920130774761807298705552789210483409545855799923812738739843673185208038771516204420580098521083253461813804920321136864682954447915531758226715114262060196080391080578103692565462108158714706996354749901761713613806394135164069322554958680840414327662751292299640219993009894941933362090134600636032846494728452911710964150874580732646036973099918724713843813897543052315559630091047684879574161484713362155820377632178298464434640252490074730865075387324771106080921987815874598296255175093158107470412205821068314594248366813669270934694161309234544592852956315947895140468411061953230431228443393540834717073502633134955287847310157818347664081164260715846714014824493407397673814468623976575482024437822285690702222079948477282311403903746480059708495751592940012429388556546385413290100628305095181272261038533683147690716903628261616988298429483336966287446022045066484657856774587680476600805397583933916978832072193099597093657902109606779588362464602393180660782211146844006680212699287284941123818550929855237093481960442688402249759511486194132026747109246790636070030484642697395809206221418661779321939552399766038617484653370930130070971691444901561675164013540117710291457227242611497781219716646051298348304857165008686459817776926745647130046944685415884022837470143877341956033971100516649520633345787542309984272727582051521036986122354129098511835209137851833147632751715921783900490683157358699200071240577535688906310540101651914176459012921461035624330943917121246410322547585393512789180147587616633025740830254580774902669335536310754835794276773426437327540033804098804848984635910427450546238261467500205822674436915559182899158579095933589457181805054480197699293223622915377932198616329310654934718352459001215302773501580860957473497758822041287126083798634653406319430577437002475900605672516555104544662447964823854581018285624391403851899468044071487844052310075065455105963133206820093778352424721626051660373666473883430540763109726061404154353142948316495053364072511211828297959187238159356564130270888172486547765159918782588760943811047942858043087728305848967687951695834789365236649700283725894530714483403883424407123648350458851769067786728363238618255308881243238172667784251345047347383884659493442813315576431920068774934562075656438432192221443850507771999289364833167446706469323263388691165781929508601102984909106263205443486490518185118697077031677177577523101562664428848969605478109282385988195641971563659464530614123699544470778103503057629345225091839314312103086002023257843156292442695920084045282205153571946313766093015407341844787550766173010001943761023345839654193407127934773795125872074896359242664675161838876477563570821362044340190832711975792772155843284999319158019595400782423680412887997713621562732394986435510513261586958694030908505170415874934710928708634785741957136328242948044200466380892507339898651673877633904769245586180155370003185202978097129509730620637894950027875465519468535260986049413426683832308006366638387888292463177735146984021403441982374463078711214752718549618736306316448448685908178058754263919034071862425291538663632483535970332781416497401404030425589915265626620986175193835121500601724528669744802032601970112522688803473030580561880237781187477229540018906223895769032983730200163155384503735605257620250525590328152173333049941258442454549932902600687723417580869519887513583315375796798658098822823922696160976642100664842575392131811053735896062840702065683697303662029703257737019302470187651900703600830534351268475107572592183460390924066613801742043055459075339389799079074882992217311009125191049610812472088487868904685126326081328034818138222617638020202643694534666493372546232031143010855731292663825091163951100534704543796390364755106663104617885496567428541616508961823176504345361974282509064935696054840297612732058427000174960911922792808092043634674811372815164196013217777808346149366666084685054937626589703294706192621751894842615857835435945979295789908149555927723789040234064695402047822717726986991776684206311090877848282915719950937582172832713501062761494755728808123572917465098318173914751750519466623169628219556257234944774616215626027714712514699353364643223082078101186104286573791238333537291281908927066148203790907183812576107106654185089728633271933878501147405095444159950339185019544233207756387205765025181226481700039981217165738714902340781695015402385067485544921980450311978349988405417321360178142915398473225134788062061825054607316706713362630690407746182273793052198676146022860787114221513657955328467883488720792562901445175979902828802509325904232807683920957695908759082140466139263863939403522894072765821462440632086677980339622906214283958113790969771475029244675009151602326636402253664835997320308363185617183675751643590612208271284337500227042108223214459934520325959433188975454223469511187816162861091505827070072628409421248882363504264479971683028021737751446477710184778782907530291597265543015275693836763518555218208462911701665339637092853307945108292336435261485071453784963275680099123925617021296000411184985747383489654880957769788811827900789020987404088225351471996449232563958917550070712489280426889843679564675378874749405222272579239688848265411555212577829500646881704731776727474090249930516742490884111697766164269930652525490869676881187248723948297074255611294747836881770338131610683639855679654915311259261206148467978952931589625049489741078387163322895187276444291475553408038219251664663210814069627106787939406307933703175483421395378321417736243883004102930721148012984509649845361311408096705951561906098730444950521972417690096042609900758512923894396505506236054362566850872582880395254087881255620329407366761487178031220065774145238486271417617490954121765363620815610975235638600061191025866273948802764264559093189165502445709018184086473624516596807908070246030928514298690707747842350408074028117310034129505650623040784774596115552855826414172290582368523435534790284443289761751231647371107522046324626910602443381412674670975964377751189551089179326043117711605194732911235877775433790553134878257487445274112484296359017500883987484502357136496964420586212110031050269777652803869143475334841555652467295877822216383573334388149881902733223845701530117029770899185737408258275771789401776526495839796722448462847211432586323065508085102496010464810954525285781986585543190345007441245303285063415880390179526598180715739536214846433249376882736663260786522559711727856639821931401419663487783859648319955637267491859979413969837612221247477663968366805297495274001266581956285982751173115133082073383580393123935822829327746340524668513044285326893319476937782053396494035571831706957740345307904800782893619145458532757441133715258090469611812877476500720763925048841091727384635999905751447002734148789451632821199144022805760508232028372270665077094180614300135018216429629504794547309538484446495314724739734476343191924867959399475287612342721868742854055014562017086885546223112701035514450206380226595808752780115990853428902988284405363166073820462902705646613340534447759634335096511821827413383118602740620238566261660814569032838411290959369066103237390699107250135988621838216452551785442504178096870231001343968601271194481723276043951282033336226236979460709968451221827541019295035817084119446899995002245516750956539370188336553740047486111019954743571471628284321964251282603205475969273896772176972716110803452260469985640451587935866787853575653624306843947599717359717344868021534743546106993001017930479552912955254980114144885091199515345235485944384739107451381230124515715932381215111492246167578239401010038448799655031480133554610613301645544656715040464163730015674865673655396665327853626579668912882002907227748163865373071565349990641452095826761102823481295488891337755465658278082255535354736114307680244368199924113091409030982591635857521367684742016966208916609703548509662455501021684529764993591922548645215081206112826943782035285836254641282738357268370630342171460928513456691679554677456776810767656080172773904039666872901517711728029153579216959406737439916856077455168042218039713625132375608461092083890655688885199857019184355314589955178082820858706020748113079020540715900206602204120426042284620660717230779269729612520978211395141972270568652361304937511157131290637416809394703090290430935077162337542033648357229967904331832541228965523417944581947130155018688303589251433877098388092967097100431995536362875065684645773648047465460912655235499674689891157111999427880575676258614493667572604846724425482848060285279756135801304410360479008695380908935647245792221905723444812017653572715734476688753768903446329077420446974916522720576766447730459727780622285594144203085196351842175249832601595956888833460753625566088202298620139575238588912232384873289307179007755243479492521799608629500287288739662262473106251336520041861800414422647084809677425439667896006126000694372408167054528738901770040311872367838619490223706033987207557719274306687534629200092605669697846877734005268350876084194884845779158457233900881454868604567849569777683622101272387780359526341857328483897185391760175129660597079727789498097193508341251557747877866389120294056539685696836736236248651338559809793297819865536376702843337216287084734890182109876211312462457236395801652672116694756302263637180319643547820743878952278624073124053383386349166360963558395854729436674446913331009269596264930195344364782712495036787548731233468325242217515450046267368459533032974789862205403343575278686789301649908138008482273755345632276998261375819757204458916051400399928201233334944543026691780698311855749243449457831211300842320638858808663723997916504109536201498954080646078093115790183284648447433386526953487006046060091306457341503496817348178633500401047866535041600274342603709643611884602891440491790740203949509213233055453076041531054409100872181099720619673127051979154025013322709909021886448523564341232827127499637478485325967147769986673716104011849371013233453792308226586309718471862495352662948984812738086108289377659311021146705855917252266161887576861133141805243205347046948755462225477020663977920077445226427916588011988946879750885272676702016934286106587616032392915171477421554097897152414783281163533433055346503196963820651491169083950545588388536611042363852807220932074253617281992644583808397205373498392335653241152201335727494403010697451238770036758772766226255449413938131793261554283276307463287349604335778053609401118626571662275579433034368640310453442070077792214747339432976835101306565632803375809162797243616704182775817561771153933995251465974216274724233070559474958268815985106048347477975425276396035250462258277896937725832658901808792973796524053785969405370591517494711858972794333728134498532152515911288807901767151562385758098778815116507439153868422415471158306234584627197197198374301538969666632807056289258488250288802626237239632263016942598655068869173132582164617551016623082638571062505873379561357832927864332644616871515224556469171742751303925236033680678573309760778902988762605735366395389332373291394143090348004355048541727629859549444603622283436632227977638675687666739015064422812728325098047607648267879327045197867355341150280524817006737695604535844902256234806198013259621224688572604947860482977898717289945336858173657274017573047712177000690491223327632951272594636239575810380927808782334179167596748782039165031924186247633358875535252278078987450922498279893061762031461296241858134530786674815013661091348750464714706451226394464323253741903080467115642435826140150168559135875076643011778603739900579895509610462427391328613362391125719229307832219702139426289473922933754190273209808577876045098805428303572209261884240794501906124462338201870464282026542864904902590474180163715284534391982679904018676024459234042414802816179018337994338641880900514465893446829364597945310254797505954078902769266928570626808121512103351035237425497074291736867815776374735511006385150688559277674584065036932067778576603346133650329784381705875018885314832748559256417793387412451708301187198768309288893188955928555085333231693963042882769363726634936800010074714053081801544286880706892037828004419649999557091373493885769540640973449543637495402210112138647710148631814714478563279413060635091109816575360753892175784025531492358172744131758435341326142284859943587910955754059103888659534749578183827590363861015154471996135949279326468636671168817005650379083873798708397010290824786487544924858249496557489816063105859931361222832112803400018852349089838640586260987174888205450889347299823814264149145617020594379534944679470400075650853721379935018404995418459019733630968921750414627353438336508015993810815281778976936788706166407653207666791531452407439681422333785442047737040889635016796494425875599173007118095698060160933018298948616808167581487996236128128982747306365532601455043092727108084103281598935046401383395328057503611075506417029292409875994650896056930203864355878972494052285324674602550032598742479068509907749547254362481820132811568765089139107272903024663732476868899217884089388840989712639102224498711142881421312128542869832911837979488934355965786143180696154811281348407888371248627921035950991005864102580327550311590800244065089358302895593014973569313724348048139078931786259825871240277477250090538126963954214706344203031052427121393892109824236473568620672162946888683446189014721649677082510759541985335659787328018698369094578827045135327207814158941326701619671072586703233276397288143773488007969533339354118461563758960948737037536510543487568938752276601722753091551660869013385702855846942085811824970549464764705491808563096951516476516178360075619470038072992272112583531869798351566490656243150281122525317704360809191541531519626550352355548563647532334683429589996141484612689767900383999967350896757370176113798097553115844148284111014117110847181122896761241073089199045048945554278594095749475573201134238611997732515650443097416595991624841099716577044443482332973581081767734795384117183818219071496633811701956461475767087181100637864199121013476864958080128902505923487767540036403953641251842531299146127216284385456625718731168542954787869110733962466102608524702234828190546384180230189443960934427172130107545180404558792016242725849906971320058721047630113988558408004918143130280113006908415125569824564000032485130935922800726772079011705607358819690267367822086960459687163125478018969562904243517209147268027866200640734400623290858124684305371555604108238348709457581858083201914998943100521362611849983810519754770209273161563798477388551715221513221488872459830488769072824878200765074808359914247753755160738955149598658426342566699122382823966565338805154218832813343904918359788309617763261418103135895182529510432648654947498150062159631600076686084664502743061637260837731772758880469304672466998858979167070744950237141241053701145981890129620345034099841329482427878186625414272006566117128082546824501867058730430549785663108228674837134547017586468879949195088609457756357950692719479338861746701192894221455494519186496470980106302385042374179598586705270705763512488975550752718676254109534475749569197878435556510657659020043673385510305140677682607483063562210318529016546216010566771898597526147424830930744494359198680576019569022350103724442615126296780513545344685227745243643364457320020325761826053425523087956376990856658546559016467635276653415406789411445902056116862975454817825405809332581514119268662077300558941029804439694523183890332884649134482793483221134233862846417651155234348198461853302742323053271922836336416722752417250605875739827834285110923067560571893514940196986606267626988731325090484494358017451465637873152185767778026860370833316753966764001939835780560273477614884043097797058170734220050945984623559421761797940378970086098962270949032718799453219540874924294606300230303947383785205779967477287738883590374908555269297187413599322877468501193614444947675019879327950600086943040717059429648317115591034352742099044416407494288171931282239037964296396566642362473702666183027746573380732392358072310957440067782095955660650871600120495554055461841154688636391063552466198158591186972614245930019905332167042615272883369115712115851929303837477779683718635936146659109517686209789306900819890515574600674278340778430774867902317738033416782231175929927462924957630946313363626314024919318584435283776451663458096243334278531555916306270331282326641986225564720742257595349088307383185206090806604252632995803454647421431192723087083082128744809311662234467290521175549533821344852159015455967947520408756066566561856991249561070182380675581891922117360625240772387803654484024095305515053925740802089582907952748055927763131398377117002737613234632544786052843393380992608080639212278669077445364681927891689916909390570449640897396204405534246821446988463244961038297163337947888439398649037950248520573895085936304183859236976360385091002939541737959445390837396621538060843648924003363362157539795142336060535823791830594017513824832758663421962153725495077313303454306704085962945165108841133289520804979087923141618082360731363650509678773895293613171466684842863388476748838232471249267288103221040549702672675881274797193294054669535136642161559157187809844219808646107895180311035563379314163139438939674357100598430896388734687431187451403851392440488166051244963009483474495644154396738389219944911469674254479166468208397586959144306835568862093743732340005168477245359751472903764258835138211851721998443085807623767559483994595947614924762834072853756697872428217602922526151922533244242124390140912949968699420939518272978657519861396719775595139529423504121158611428127799515589973501527680224366432655239173093562829744735023183425830187127982941550741356798382140047337864704764080540246634518263641892383664658778469372750492555691868863708856508782596760015442180088915473118245995867618506187932531818195468313906369366727509642090694904809831385757366312243408398322971717818648312580026539007747559860476363191680009121447688624947377902219101657498175392454250399583155006412366864701340728853854829651029108285328570362463630387021498479689826600432761258906684553941933385266113478572430950087909441480802227614693706914870138457284555103197199814161552969070644765437146072507167104981873894720935435872741482818665883247994983887988153972464795327147471269215682594116884956188465007271276620693938510842046386620818453053454594327725509653784211679168418978734490959885937757511311264559695559687978782089827833017838179361662497145085295207409259069539842599929251354097766465539992734115209136743563563306194117927317400921610705700662149954249191781050571641944024524499869792554662912032369425460848313351162141884353350039560027713223136125486061794631425849102443157216807695823191102339733136745111639777664537933022114790215188997366452707975916579322397004537021272974640839087098857088228478798989248597381960548624056918360719579094956023658785891130277581799154074180056221714015518951999224162919255712244525430994615219326416208796502787491003758805702496535725853191513864366756403996754349684946688759759574639832315136924693467110504716548733535931745254341270286508848332324092372940612124543917681940751247141958394205694817103847603023852934066932565283544137105678203990945160364392766768186051093870104678355125629172700750661641029646031991965719269516596080268613553946146070392218775360989584903678356915114409324861108497677130447565465098280836448554141972033635623986875351993932587953355400550903288641930901761976738768977047986411428116236671383667790690127801503176274311097541078822896543904235468087269087753906852658908703246204844540500262917539433550084526696866651860507853693477635573472638123254783751268966997507053616757970375192787068490980237618158699903222603386105509900358496057377196460400448240315167981128869146964422823844822391193239946283298307795755489739486604442079826687843131493846293915488316836154325896199456200524991403944713007841698642905191258350238931097983212467974029768690452400135012749448117826524310299723819831933723357095053947211325615179138060899536297369306347043146782869629871661310902526952416041776500326155759950717863544413275177001405829909463113722404949368328776162453443629177744800709663852633154014446708069111076191547317962411660327923357026076627395926449322541635672740186816990481496657101912658356248065762940827439688527867424149951421502679920323543219575910391915394250346193430514251539680401380439943413594797837142001170593790668127372491746047105599753208195158253733833987261122062742592861267909989866894868370934403677160697646478034974643847186443706165643197850499636532394012905098355636521598092739183206814529399690799550969805300325447971832773687190661353304092454738704729411910168837875011168980904601025848979989269706805360990172121535174457447664457775698947383838208741582547607158119138525368412938181858659642370363413827541404180478259273939537458807496326995985239216637102727241117480947474022529791236429904849675533969611785216279619274161300443516357784793284458473015765692165529917311465710871443930602329715973478398214577349064268715403309900188007277704959935199320270230173909434128257460772025939219903324272746695297496296669660925223148006694146204236608691342719576812341466944657017299404897307211503009094100052409006709720906863153003145134689906553642604303070048584535668357758122772635327917277050027665503452268256870515558924420792565934430799885507047233652122627065479907431597544665739219609577416192306436400792393233157676403242846695994988907830432571135894096426574805280270716387380928265288358139190239141252797124703234778508249595233037470058669967798052486449070579026038373683043662869283498033708373255826153627612626921111412122626413425343281834307182431051209968862046521571999030651944377727040518203793647948801133290960412319581266988526665884594664048074567000577703956559536210411888523433016375547277653576938795373863428646644250430811355401294414642416731563434133343486534163873127915680306209234679390269092229422723415774738298167912432574886073747267106877769790089120610046758489295414386602273936134838624353685721963256587996628134549615643491401554141644795358355866207946512164823026660151016933603387060684204470240003930318862238216862268347134569593315098028591002263848728737411310024661495006176218639283200853348671575025680756983472212749325505647612369424850743643592349164376163741011592056948012867125070402845058757469249055555232216541836862339362955597118536746480186723908507007274939708772832697793571458976816945501867484124172523217085117889858409611259405579107748010769653841454510456312640938328625263322308949138979624304256767615426771948236433696180731915426143217954240428412177989294520118511077575925491687159826546562448560062497238570376043814397226453570314003576797000204627014737943204491780133887879212708287849211742703572840610401629512126846056433750706442550720112187247204280667852445976189261785192902835448667769030713129374505062597319960218552767928621528761420711784150829044717385490735348680188004669459309157565191650174957714164553720675176607229649156565294194797846171077096009623336886730733043272962597603723737850873571222083020171149374894268541003782171777127178250707188966894603759321716155316440763404648316618948572041276546592659367513188790547095750302220657532345303896833286054419707251395087468150356546771439041308114752535431908110385315027506387549753801325889298256355218156042354744458945478439793376047463942889642114259894356625675067547817145849711266132192955538398921091106607608091789086995484387681342009700953086964816351144548117739399075940097821797419599198593259715661600614001545029890305388451826331345014581943686106630836156029956905258615004884545826693771523110755430011878841485996279962158961046102568711714972983338717800654670076850736226091710041470198523419170325021568159521454539071221409386101428025794582446270812105346306545126353074641105232944373258677369236069027713824135655531637746661915327237779203871528822498472272364989309811745374149544851746346056722143375961802145781286755635037557191985306345291052869475458524361303762669241255564536994633835889522825156261114755169772815524468516243095052781216129035941363726332032805059905720083031919496083989994202163592380608784456050379111946353278133245170228499048630312687049510374294973284987096929962824503075318127850936379547835511629478019315424172354276831224387570136220404781961024736486049355790932505965054632409994316499314538293847268583717071887055911797652448229974993587817599951578163694725025257726321743634073749771695276651434866735497102822629927991291254014050539271139221828615246968210354079986239343713098492139620500777665060921316937273770593712355390893742009471800530082683457849591864711740747766340410673431300752866245116115563806669022372781979936856616220192780958434739885704515313776139232088208137775496252971040073156385824814767020742076390028974337471609238288343951542411022768871943260804420909134115475808260006246512969210215414257805059494356379084708481166806519739178739601653430772822537737190396963674175073199749773142267869987033636299725502808056446590368140159125396210762521847968674612537842928101899128490302461877495794087304119918940337192917972129615382333126623509016013730917990172632890341804608443945437534875517995159276741952577597603460508562389178356040324800400716710815177529127582769702907877234326167588341553790352972131002925364168132637305614527956088694804314591714363634094082509972672183594899138272440220401583450705660173581015041583659121603957429791560389030096930881148512447318201265083411647999477750233199401570859192852949548593495290051620711953441404267783049596983096284151968410364648077608349995062975280914998909173446104689653637033794931597316583112397918054725032681004533143229514162710238128669482713160428602501644970121350090240896608470583859786278761143771566891043707248984052687832342704113088173447319184178043186281824551900505038701237616918205108695950599782629004858041039532669036173749723128183540855561184701355168359626949249533718656144288587233280336458434534570560266678927480465625216034116578887035150054268814995200356956502422345416458924875860151321169021115826414355409263183485039232386832335842978584940980658417886291159537482805318163383780652081384567807870330828588121968811706379647441882878382521421238380052662807864679761754615161070678124881867686229013157235404769551050858666592172674688817214725857791222630800349150054071771655454769934861852385427507141654643758644939555082723746917229646374329029999169904143221537480812111215996867525959729958842429518369160026703055989403115051251644774807296114245435664026291735147997869437059439165959223975689611266010026415644445431366517572639327131432843096515538037392864239838317163984479136070250851494141095059217299137384807378084474263717025016134383991032837066542542986871839466515835178748900241058920626913462588277231472620983652268814436038449564696860278009015050375867745979269918411755520451662393144029078534242311872226791816125517645783646488312345658319148243942904109068076978186767716894738975527653641923012095511013670969456383665893908886187117176646781947119681774099286842579786184611075421289262465187467384723491106103613228405539093467362258624592184495593066160067652831037265018943718535766884758204919295268977473695932155836353608275571327499271569739467642210480005820925304013509203713092244111575739775140343674022605103863762842944143506565435611586778015735872179230302121748426668114397792908134408021079348371293342145382679639896343030726681866827823562890187711744910520001001203300726331205411243508698265831856878206623761497109287206383455026039292940800390902476279557125455234564187908313333535478194538190388810827609417046849926109034725430735440769218973931335669990640198039215334375977513139228647304026760360745528450157885231885720702038475180773020283439599295219238863260923416949376509081430044094505025362864041954083362737942759065877245322380572559399703853859466551713143330786234242124322503401708897674075129365309522330922933754230457627761312735886547185020797533743589284021292883972844961878420792127789940161423109483065594037992135155051105216359577468552600646799981883892194023205798783524598350413001383018575266022380315412131426691580790032652203595719358026960627665392725162396590547733689620132606860209158865065212838531731263828735552126293536794145598076301303665661258439418119671639796341526505390504078282469542922592284041914513711795802662034326016367533544249936358940965477092637671969141007186685066902616158406463151105870627733514113248160957086963897128866396590209966299266025275245588085376424986440977419248966591384139379095172317417025704965258707251515893496763987905020375081838551213608114713424630314671652950637865878972380335805002169849765722955019523062614910366453680505687779397308771527111916196656433101191825193748372935006869592000604829503691295436545112048167714835815284970878602239116727929092523231557210925416648100623386523498014235596850763129809998695542571525295385706982773296010154134369152768581623823495791188692871890684919089504280335164887679119950501808573069177012502277652392115938498962704158931635516975384576428378811864311250634194068794725463663252928502133755777217239538454388948355752193072553947216751121522534428849489205543429518694957469522998371672571377204834433505235251065150650681731862921552541267477734532896502053683000226277437562275115464442742597579698749418653867189059210393487982326620462379049915771246924099321073657436213852222955392678631904863419690088049383586929646788914533630442872979586491715588319633780433074364299755615074618873964426279811491229175914781982873544449887203507515498379178365521250258697379956521585350425729623966757925500203858131648530801484909647966252004467897285827736627702662077262583054176814776583131998256269681704296457026101022817204244489902324865266469329870209310425961602561100273612743616136166028059071986972627164600761302896469870307872112816706012258179292165525541241534091696001530177225914839139816001566757788603446596336678631610987245281822100328533932640637952840554049911303943998215979123896373665867992116958430748301335257673526287067608233126480657532268716588596998600743955996560419857351980638162229677895084782699458233880317256835874603910523568176162729802248423955875546050326413663265315102179879168108701144696128644166647795204459724094418001314575982097786250411612487770113325131554190895348456340482029806881193407219797809645745797076106946252434037201584903835680317233703998334383038831013245467517097898137324601755750381228500605922169865910859893741467686171598898955634189077763272400042449024624847876000188256263556028534081554122404893853274400567966973518376758910648584168703995258160215786863786036580382295510869213783246269144023567832541185258350909359312783901769803130167061363210615573630374863785292431753732143203082770005578266335284602183398944773638600765180290352043788364485606421079571215432737310524848794762278795449718756707979015193102946869775159996437700706653810420867941317610196675431867385988731549069108762282915794444782761482219030189435927767582834507622287296167266676634687422506159290231761042883383803219589723238960965924848788302613296949323926978352880084845990247556363183036760033790454582719340008604492566947964804073135998651632580299579234066407307190550465258651304361133432648816041150772811137699827543482920932271884375131295363546474846574852416310078584648471236333963165561227296615725968457862757908987497039564698335939740395299729721799328826944040820542962983299422436615102209186128904279507030875087836850350580588791369477761035060404656422129352031441808779358207453757142165201169163559154697656894884404031318657024746993885905063885420089876909868512968387561646632653710493942439573020778952070954605879111792501697228105359825903538976519082898090658262089791924860265888017054692640682001029452411754099498971004118472442809497043474815416838456148700882328498773798491889436190456045595757919249720117219706435246069830949085474927635769421997529945705292186734112190075176991728461712641234741052905870528859269870405123165762680758242735673989883793549071089952457433266879325814050474368095701216800867175884549241586404335526276975156635278760405224991663975252641921862240292786474565043351029922735106156491600903629854596061037679300252922419757774973079837012460791639115202625916535700873402976835301606354523341336195154774691445023757668152364881313584495924861483637727548417280454016404390243118502847085897344565307144766447618384040999030037185023063001319975848814622275618466082033228428144709930903798299817862236458957223554815994967172814291988629643473811469872434179157512810802616065196988460640692613774358602263129016569767155536148547919761387501274703884197011608070626589021389836348893574981888434122251903590328378905928078014340214005496490839577206776661225961682115145810481239355552802414632295455510898310601912025055497875752495049488557721085890323835547225038133936069075073445587117860350175821502632219856744237088988870726336919872552803226671811057441772446130772683835164362600186804862305139415897214996220470127244111603056107584787162740164700015285193629033515738039404674633656815172523937455671343602868948283615200870615617498394758859741944434495043639378250461225780387719660933416310294205525355522002775677240244538794881688084281263974816696581108171379959391144313259055929293562572485837835216486853937060644108229006592119053338446693588317129839748785975831643860322324559242541763583985470011726452787676045596324511916374182848315811639467187399695222929762482537709017041142432457973736591992898316557312071369941107869450683078213268972727150002904736833499040969198104310325184241120838496540379100241377161393867032964381390052609911353911038783339726851826100469115817121617351738411489182844754916301864848668173701589566920000715698692367396964009878759133049086130113967697390067020147459210268123720407073317255289489852629325173076458907350047704452564256042377114490130332240937526211945806404120034295960955221630936474103550643135798301562366428010643782399406807972122951600921200565342518252989723851204961333893817494198928129280290024124714403123185346264982484093040755059584427675704642054040825816023073551424034233842877437920923432057380195441790630549824540634048529742155399564236298198602775777732544666056486356537657152460238801165845427955183524038863977712589591758306899964356258715088609068905572613974739854481697604484990704624037751959857865647833486086144540668118584530281903429309341370055048435811758389441359135969866186571919695666468612658000038481832612198648997272708424402439490141369904166792429674474233158885954201587910871706364849158591290772600882988021274264113195680973642947404247834851772991111770823940271381665425903093684602343729512359812874570820124670346708201189930029195077591191576172390563784245362938833551014697311420161337100657715291567821328898662965013897725770556169348032146633653724697187572171088690247347807045676246153763610182388880451879450102099370269356008112350793559541893541299731653986893754486912437672595468204806480076487664634783961569368499652755805116451249453436507118713012515083379938176674240361978664397298484571428309531203427331020680877643138091494962441778062518119483943450702950070833146911177729472617931070087235694917192604408498594974671746687082728916324107063319965716606965351777431726808397281320682113452506180015633091139582722619879892159621667757641324058069127240583528101337063187426535904794559301701563618284346791646189334169993511253177397837541551465948688177268171765802041106757842884387417232907936190047868722934920841833121533709339216854032579498796469734011445382708576307168597615693253706550450205327759108059909410551672790762949252777369021377196594711522060251699837521652230106524675132768625037807797438169104499127990662719213044990371035797472993142506767155474024379359874401277142659750958867401797896060052953021932747676943762329047377135252361187232541569125292249408148829380208502437959702702895394460073069015083212909934129483346914370474707369489769953042493198163189783171828902788007217742065591938040725672327436410293288864695076800732088255647695101159409041222672524020114207117562594576614583315262893446503679916519039678715642575531997448206550504493962033872166857424815863684616882553840209843741548565318106125821605024256035028021598423098656565430635128745099417093408760305040134641979233501645484016052128226176835720312376707034562350140109476990382477236413941528513119203184163338028621482488255745184787173192450463508442577662966630484895532193489646128740588396274252356230060486870657269618934303179058191315534046566318514592490790915958796755206151635162516905906220597797922418759691962469690144291622519434181542482649042982164748040123826369798462176760765297174593975969152667316626843956837778426807071180418850887129116305800942133288071667898167943196742250389978616676848074383709885581607427679431722419720736695215639365737277680195286756369680976919852980740826143757324694994707788021255135482503324476054484987448911616708604021367753773800229151646711102300148793050394737339462193846470557330635605182406299603292648394364700012496462169085721530389609733214431350156565249340041253781980995971290274795093274399401012537873145667655434773903605972605538948649097090280911749008480632703586088354025666850618304682261013025974401949295452458871775662860983956748439091056935400869827738650427638741433829012602876464086584100742901317008730103387590348735427187114938767440626897692530087091613998024492987064504435145541180436985004270160366196405596593585501237307128307444868988180913595983588251815252856668143482711586178095655232227475744626200092603475199062348539696951515459291755772725271094239315915494436285839387893522849927710565549235982272762685181376295004089020197846560255215152731903967889910490631958935148331330162655058854107463351513698488904742364667005528774544627098665275673211240638764508486746906939503343042296642852402903947759463440728500707373654723010772173710174757499241472209623112020223545430244880444404376508277476603769373174333226506936605866806073294315493515351121271957222936472621729413591051094324888482261607072996904662904738615431903358307716670656452019501432320727722472062220348193664567338951739708715699318462489691313732416028302013268090719155658527827621338179234633407675428349354690420331891824803166759879756902453692271434318235614555037462892151830734516606266673966189140550482706914112501045684170490526058345014723993123863595981685138184481270585872666964390784107049499077822269661678349514391913872381437818926688332388156665998917515689084623808128083328851092348945286148910295074803519601535318253975708320471460737004433505253247226887010836628029645585094097260700033939865419870380266157912607793963035071962056130984380795925929284881563651188766387667541669798844417665516431664625719090788845542301109474406887139909485760154344695077797498774987523760392853444000848735776451574241252681877710723800781265457733306286540464316047779100114615207160995748557204305086397088871499511944463010975049803263999636733231021209124706811751599627597682688468755005541463468960123570270495174278957442296791747420762403970725887112207676105390407361311150255958966124133449630235616537445917007327468836650543138037441171926763204806039326864492704926364954321936863209075922071228665946446787994834786534100121601599709931325003373304825111340963353606301223548662679139178202771522576781096323010052306777539880079371435466142149547508310912900464542300642106648544282136280379134952033980487903856260976930859909149266405420817642867323969593790836077409994190006834651866666077038155144099447688094414518153333063784498851897336882528817810757440945656506517861333509565750656819245401038943838378651859909336884072912449776260686587158515070180172721722991126060624855009649974364722859929331254356195578889046568982965325473023436719733347976848399803296878809951363943434751484642648044694516639419645017786262946107039237850013114460037390978990589539899399166368633705761133290595269341460116275009342535727003734849545410273010731509762233513922210533852879574970997192019917873379973645570107588488132601320431875318979636476967448555530247113468332548970128725326294696574819050463023140117409576708272887284948866854739388032995403472128313849116234048500012059999897484536680205223487111796872483861750861769383190404444213861459807843515203861687635590763581926251620062060801983452740539579317314197542919214177666642993959502941886112663458937679179382439016882025392408677013999536682808027395152170216033240278915708772790743641565633971625042216967088677529177025163948907256286754229791311791747170390667528463900913855954413046744412241836844031313604707089731894300140489337361250031564445446647630667810879664458038611718881895627075602649314422363136137852061852063883654956239862438023266282316573554699920631166726413390495461018642276958207525406530074052051910224964048665397882195797672027605415362521677363466251177035056445103480420190633498412956960523203820777697182551700100508272231185470831439841502874499895015018155606705054113794234604194627591868628286139108698567314016314761827011263719351308272583561372253015320725091780582588012296310281050208627758600929965336101288760836592837803261459389045778001952866338951755445067592274227939026278525465796057970488760865471039687381547336887942748918363258316020367337360945341830745202531898269226980414472260357209531429886725113962700722075891659880206314043043261642451022437307532858749622287571125382908389084760319173211739713639341026839093648893272638196087569981196521573517443847104357240684899777505932355058147835053206775799571775871221204090591457192730966815290251545526020926772170813408684905438689876372122200717430413431799865743555263760658747344212244694201093154750873088674112140352450574256291760364059578281000001862254215749831215334099136945582993813001273772304406680872594444406000823386497433252707106792492655509574682874787788022635077339339851763680041766010361849866457797617621578769050588302008122300382707687321853477849361011876696333940611339085456412615932876220434638282710220947204268760399187982992474456092209114192321089238008881707375340405124641143000826506111811719204385859601969728236667322102319941071732768849867175497435603951800684750982783587572781929856865547392132229617303787960525544116008156833179438498705383618268241502462564464564845250096405707814763288512262165808410780666653877982645827925756127953569055683153111495325959060576648860771114146280152340981754249147885610709899660018552770578999563582062087639476550624808460732179911741702395288900995112019760483010516389143851959747341136556933630723793543227259509354609693359503996052605360632555153001775069063781422335333894132109683815088779788611781168110518961059000075876552817535761169741824892243308436033170786539959456202601371169738633964391627837174337721669372126623308925487105862369198820695716752984481940487477858253070570616840335849912949825979920581697583808919738231594859163707296984926852106413670019179339538824643732947685481846041063086996368915794557119526955434345767475219334731765669010380967806517016022908752367741909552507919074519103915536076770016943590757019011242521899275730487100662923328815269744615533896833671236095854503914640077223641252778223337541612553059917132081690882704377815816117270228997505321411012496194218001531155812671617992124602785315374459749794853554028225559934509569474730591689858816120141444630543472001469503674667271550019068993428141625545306461234326339850782346486330951667472364929427685684186000578952942719877194556017854140745616049505455996686698852265068743589935735610739602749812269992228279930258076559611016198863891032974347630576688274700830029651536467007391948633152612798510031249752097190914920224094298166220284473987762471439092873045387001429323700200826175932908539695618611874325206446192482518007434087469561795393830275567049346241774741483813165580216341988370023253604590912923377457093230626292673757179645491910311843717720857979428708828470577939705038674174611880864824782612632147262449416085849739568296131589975109805302255860337285002278444410256487736551843483433378927329089261305450720696979459021088116402689293386525722105865202562259101367281866183224785698066590433293451412381916332678456205031319133606318094099967897856235600972100822246824729710284889980389617936003680054080161347315322371276767379601533383665733402142256940194179021433381835554202723647929898886776173512658241915175736555594355743346895361774856182675058754411776449075383757711980113570795939354210097951100415888088677569817329735613754181181412860939757770499266294392043156818262110427884962492163868266498384170516293974971481566199140436638885272504413234093141203023967756527261690559032160459349759146223854030903675136688927484535874174117807425244995007789172778133011540176968971120103283570982875717749705082512891193841624277976839743955785458063380324649405593970098664011293259693716635857745757434079772115907663459612817527519777887471349799202481976488769112819659267874996177829658897878454602884976899746259942434519707077547836737188327956527127454465573728356251259855222576652411623540856955497826470852974985143863516311239495797016733743347984840196483091786801897693873306404228154905462147093917333353061939913155470179123428984675511065934165245550897695381730063531091040475770680440926351025001530010275102526661442454001688147854143732081615003184392459742292073491920383441744455471561089954251256438684550719856012093958252146798371830291466487904800663226458204931139489659240106526326563830509574132012176772135588857351400163762888241055591798448543384230278893883203213184756020661151227265823430452981346922972350820481661224777473875050343186842941688954483945335863616965231953454822909621463336273454435535138820125170527246175601120389818621392598138186616238506935208316750358589560876494454969345993650581904614885607370290189072894254583845089125950365653028136541052291349668454312622862970231507578779827564397938148560601233170772016169834596523282388493021268319303886189809667102700070285912337529023481937532440338404155397497814602454857823127559318191883403188561433065560670752557325413260233238901809527142649282835002710453526826423349541051998754051837544770319956232182953721603028867458425220141992143178521174984794704145053508084873636313253015521476185429398288642593926300249440955490072754794621191330845566022402202240077818253045535025252255180185033207194801181536866859077159021916862385258144983033743734044403704155405697912960795516335285746833154498971890219153787683361531299627417154009204854254631500458981071900735613911295088275045911728241095529578359896768596798380721860634245946050553799432456545200251016445080113522952826397761925004683817454581361982563361689812435979760173901729562873822547293722187473071742735987400097073694997583345174411845761777895045317027176540628172792298996454441819757102018779368875978347451661584729072797918770975338748485585717407964610175436792118576816581442681140489108739121693506980593803639436035597041004373674717885675190875322860174156369602810580848239266955143510360701274453176330330079116463239934890144663020907848662172925350246608716960133786218061575756077825280351817427177166559881747871900688586320497641032641305589635504841749237859794580642444399900203445040443656819142479486571657321507870093801739203638341300864222405503544047356303879188407071022776268256747861281693139034580338666559755893650053094854030556086412823019612392801666131149220093230774930877221518529705524366711616652338957228465858214307425867830147983729777523613721241551748454844093441703003910257012989109457679637324105220678662634180301122103624187656364839124813543269112014162600595490230813325218376521567027623124855429309811296514430044454399734296425539484080257271116662202781086645331979016944454495102483508672316071050190693610220416769731776313418577476619279702824048303204857657206591608477668004898901196343694819606607873192361878327773347323478953567796373585521120759086412584277766254817767705284448427253547099610633146376162056167320746248346156905299570956339522178160341194306440106344534428524215201773891790763172876301677101298586995278388759945614435353577673246586466476184022549272040794254204809476571351724650204597257237359278984504106035070263880946501151495804165719143374195032607408894582952682656724484919654082330823298908112029245246811761721659571735729548245115141370946683692809239175126577390161982906898985208003883885584987709237800494203969254097945288156435798950177289334995057432998913313668973922732818796393660992933861767330070926481469227590428540649594106464964996925192659194402376686658334429369894376370782974954547496965044083633559573153360380561538426603568614210782305402749631785023986556272314380117339722230027785376250180502129083916949739917472789208951409889986520904134235213398047376173609439284611600793071511118339170354094957573744644375313855095511297708001608754967713535990517201021850565733526843957903847518021474036930443025916914846739658215327769552034588547627193660506225339582893164614103611886777489164320659179858720789856827645056117799945812074271659113201153321422586857099821865304863396059452854239395620391347435143957002778668462414274684693175599728687441954200502855666648291844306301621548035336176831139792197770612110275362977249034540991064358533369604074788394278985226079972753465835676421468392781451346711879193296373593308400340900722983380895485360049264209897174088407535441428277859523722670646735823327404299817841769392099620779324633005823897733257115931119898011469483536334513667212489185204635315281255415153599506195148213805585662020321072109069898109922581640260986311132488420609114266020377961930798787523720724711643987750133191624336592664714040145636183806338073781119264146039663122127648948000144621252383469395443986215528030496045496773613252900387964894316207259815694979309590487027190177463401107142027092339629496830338729008595609517905975969343755017077381854923685161763027437678172139688278340378721606708358795717837859354624648477479143537839033732237229386943529724656191026762048307196557395206050136648335367300380448165830788969533323679916882806823424991120998142750769591431116789036255177824264520338172477828624092773375926086714658758299198520124340688222659682066480165864839741437254193124514517558451379105997445720723141554866174026658057155588007100160370861423923991416127073731453080712270725812970291878906913589925232979837441722684907077080282772312795538630306991669630907314680939982918219381430733905762587153419982544201719505849942325913402434221116865199818570088118066435361189031270415198434547388732936599850306969171503157272796813948297533515890398597852512786389479507992325021029260845715764721796372754515249970174141693220360920529141309862495215775338552310034913793012734010350608794886516624141326882882777692098182433578824341179660712875118191182685105106479887649396175517384074078200488678825803578656928310478895084360722164256424215906892032063435694321742102232732926055265962813602537532916272123510397443404531927569213324831540766206859101902225266442736886779964443813178345486104969554131682491845121047724773479039255829220937177655330003076848729126418985996193959832671107831894407234085701452024228738887129558883242147201984321354857529747083297106587633279560745763627196403959300257843315881498016523952326585410013990793389849794548251447031049339789834350602552138128946616885403691973750142474620201583344786490255360473760673978728003144186132903194674584381462509178231569678163762402548772328760484938435069930993361491743160769069321152555055935093131335455181088025869212493062909589856481591943259953643845923996642930650139127776915797179487958909130697032351423316996058754678536459746162042674197369735162219361052663047189982105709260474244986868732360272860975928830388329034089335481503175809385510890402676554488365738347479394496470490463427465672120466303542744829365071824961783856362595660044736840957041874718229973834364444490660767955990343385006776783241495094143780311953068499952389879588041704860454699688868578805275335012878778237026909136128046803967691046978860818053216327290397758956986209097802891698344596950535206617111009973236642083799378848010316752240086026156905388857558267481214669985329772938611902905662684553133423723417996487176482917638994750362267402006494765475763975141881832502355684632538776144369656509204157504243905670955287376275783633768098983886553259399344038995535243592947927226602773247875621176302731890755773276597551869266978508266879622188429600250939946548349345169739190761065553070902652661208199133665643232267235559944473611067244784591552684135985667927291325882155262742844491708270604826724279205373405185822314171773453010494720107282097618488230363371934536591129191880616039649476351971266368717302454960414204698087850164173739314015380188413447962080452900735218550213462233796564592913018230003893029500523056139359058083102481935966842512874898903514173621895971057007332838025402916426927289397981016880313663927231036539115480550733618242235338420941882526621957228124404823403057111544811586320905796921287176899722570493404408202269924245459367776957091523042031106805245418848192671013135111278117420157657377861043987860507843479271447708543762873413918239534595338137643975475303742237000096336463016994268164114928692037472394756988218363756066955184428542508487150389802593759832894698419322788200482962635316247220392806425574648598416903795043033270565526138771080616600404220729061090299658495973845725058379938222482111161221859550029073044207016699404723720641146341849558441352935511042304633580643500272088088445654628862449765814466953162845090150208216462958546078055792822713747089345572174757221416299741263649007570917784473591116381649410776557786822841272697726195179323290187169935839156494024462703843045342842856163182149588025523862993848977843985792535158603520792461526711194903398745557472597094203739514525278699483142400020095233009329380734763439206792021915347881790475721869784623034225387442852233482137109019083989593469787724108362272806120057061533595673787235325979318979038740568492548781367855309268693319676754251960196069943742484359581450624715577795601523840742162640111840976921139422018500357738233326733450233620720868118777682786978370492677575638367915989511517014272112906721723009521174994975365987567366670559875915920701579331415725065389978814724157874806259963314977019146756890827345770980588228266920481958826729433146658996658630772175753532453965894172541306237279030990695038760099446583074882204061520976309133216082528242925365591133848262537627924714258330147599523802487201740917442651612117156439757093855464036420047894565203777868347438718135721786057009587875435382684286706005225354624682592864257267904147733116169598436111101516584352465961117207420738342552991591575199444198707015506050924134090456006160166052247144877512658646642022751834441995049968143262571264610028383871265469993698771133055477288652781114498420976860923134780736600204168027914899519084107288101434145632074608261867119190940924116858130347077442485659467117642906818517978420443836076145534550412497624324492438425550429828281595865670422326809007300187553693113560990539076187223205599754615215048923374601315137681673540932344460398657106801590898722699944843460033402165349079337525471745457132224623064624690281450581795438639278091573195088519282733144945611226507725408232086536681048038523235829519554188728041505573326860390130604387804906787984519439822261635633140152343265343293024080094876355677555141132364620820259733046843939766180910278442318556395717197998626854462502977323266687550355075075632113388466844585987208564051596053848909787213065422911877869140034687823243803824713857981944378945226646454250639054453507568550519743513805856360492835477127889016740753300728870804165899181276412777742915839865528460262821091426275931070083946405245674920598109529523710275769896649025435940674541473084552950586810124416121640610711554365054428318235719374921069510597621719290119747916850453879682535022230262709070745779346797428433276945429654649064263903616005523223416358647893633537523962440985436241200069328736812619464871135392143716681051102350539324070729573820821609549623590702493211457894951434246460951406257443404602449174679009146843020260199717258307214286097007398349200154235190670050164686551326355275107137824706328047551240805823901424156857937047438371839774086587037236895442007085428197216853883240654950479981778321154705692877498699002869503860233665275065762323410643212996211554574153121157643014233625674361835399424510538544742836534735279715385535142380586227044959118558809874657305917107485926468980068832189603694400545894485288944015076280140477394740905145622511093445367386627530671477285413120394176939350018353268303209222230820178118550493826231116633761660448866967714789777871231828455271540832217566962460146703307001902438199493425281526236285183012300819630439303946499364893035356936780678075875922855038890188414087549337354937127616835319074958390968891526684102609109845489028240744323394109899223678030469251630343128480196166172575875582572964542784788183003700228851886232670558085091677698579873050364380178185207013475815097603257165875422149923420796143946732789504844796928197554506067945156734503871984556540283454901843331429484627069888880329994491836599710236899873223231641411919318264315334624708215412322538210333932366442376581404581280640616229491697110905505341198505669256687737847446692950312010260570300640476120987325806224189705655766884654272540021715105928825131742909081049204818319108917326161994917552238197705800589261347477464377231689644580545645306089166596485943150034469455595160863301224425526489338851419250957613153413189998464581984776631530782175800368098476811342543423423341612275589103393318126310564337396741081140379527652934376319045801743062144469240829757123871436607013605444679547244063250500062332198892951640631045197945203654304987557656267940582846548075523214528344438956666313284798261604346624917251079371297227470427346462833076075683468090496393234862620715704901267977273584960041225200172708572448218749369152432414971430951030179368337863817982868553651243905098458235035523096476935865968349230418631524631845396834379679609053943519270193721766189351046217593681178032176237887346466323837255724051594387708353783747034715885811105791688494518134000747032970135848628285825306239558572412986710573139689635908566695928302904111723980819292899992277265944248475493779400880502907615018486408063606329849797624858976479024111218544201348734986613925747139384191225525996826471699596946327778631743188742442649956167018939392354188710770042526528994944422637351466911280285745482768754367836199821539967589822789002953850937859319513764983585003027832005364300292468871913632810767462087461935959648992768102014637201892641149774470361657176395782862133625963338803089239748599823734844516181841145816104936198591364525403976351842629196057624627681716986974971817563510098091709572998454291383297577618993928130504404911534658655010819473423340782404662686209953619410932839236741739112920294307938291833531164697735207682901819987913752691958221623096851660248666810544906453137729164911957681319563101031147951638904726908075358028571775585458189826683109228070553793297348753819119452402430711234319661764376389856136761853290044321674279705695231833946970404013794985312548839301076030242140390349099886384140467404382401309997782549948345613178121699168189660598888706279613239993133072667295963700893259292847971276791000447496767207509807419556514298903697419251237900297766601202797535585693975082091891849320214699239310655519575168751142170842214246583158832124820945662746455475459693857307009801462300180118009394824509065645426988930797031010971686036100114201030080082289835167692438481005324719435037265925238292467907252406982676966550674405200219679695032518931209845134947906289535576059405956927701020310645942602779785863455589743663016194500354715553203902438582906780423421493364317796960379584431701026877693360246220744252395594783818189554760355147610014175378071504484345792440316838871471593806333580747369809798227254276040963697857016899386863875805927505327367181168234791938605702434564056731368961929392863717718474039061354968524400329986207481231412955521007106831907619751908598162125248073937883595111048450426001421705170235391104542053766558804822792498522585857071582986714903579351567559073405210233781288823430653599547042087745897233494295136909555134482383376573862491883205073606173663360684632429482432542515204810851056391624803168470335592225749007222143837401896670508448236759338072598043986032794865188727073426696545792453779905300095242662719988563645628405515677541271695328051164388910387372577123902355095777815442456420809690299413946530555994686594276629308499418942996494766873099781422041404854160006679985707772134587610387845091885220095224102223254530425639606475646139000983786936401362688269634681634229876656484116222185696134165168206058259560060632991259135130583943178594431860459815540563039769253837798059278183484595674364875444993595145313346361778929408027332527989573781504686188407497247004630369949201186903670434757673535664968304522056133403238662650966722765537044454833089481868048808184791971382183650534815581042861654083896604523096287439096611075513483575946440906088656025272804370557538632612530440555186072847903184689541040118451145872917689147040736896671760921031856799667066712368728505908528483559402734707867565620875009566559004162762247763582448800568766558115065420282302451848440955943925657313465490006401727714475561727288829006959676503333093121229554610806131703581081928208834998663285136738716437487693310334681839433006354918903082193328990522183867017831536952727557024236888980835858939741965840826727958624322960639074503523479546535845742951952623230487200420669021338221348792961873844925212149482761544387054729548781206668624198665115138851612237976873347808472243087226926630142621867993965870258655826369663721846530036973238511564109490698615685076415783801017001592705559054677539089056758661448665635232485734850423603647837840550411605500528734532988546900166687468324130441894878020026503026012605652689724223478020336409249832781962549075535110261117308232585752819338977172021544338747381265234596579500026987666103240782547837324346534738234887799115507544986767048233750648745315461306602067901466306729057907190567110172813527448541977639753900398456552891808421482795322920727044708593819426570047803475488083084071693588953415027218569317115257786263214714927333927847130400758215930085689118756473168723184566591631678514375151225756125646868934064564724768802336485106727834256652173938826580939327578074196576556867774022209499835546107250366478213769689220010898047300166018646940896645310240987094361858154290095184905396240749733321604870543168032460997743199793817561605826678119026294646117142275607903336168079065987156056647555143174816584753568398002010401616841446522259904094843224386913257022806347600451391605516617331617119437657531589672332363452928944028074250682733040430981456403330610552131322597039308461198616861886126908348434838212316576495460314483736856301926662418721917795997305323840766072294166031470423718363821213033974577452157125102613920142371410492753276544014435449498208831159478171758151764277954045140808517996933274632575270622982085512029462068492626278594654971884810501085869825248388838091314407424254351132153847728476483083258765581492084982145730561542455271332511549861695592358086742579175043281796550683923617597297254143139615665781078369034856558256162297342377212634674271391357552775404615165999149229435199972392037278055507854168586807871688309396768215134262838264179144782438547768091652668608035852801562379102598603609069654124917740609094200325651478739531881644771364308040566646574311184772105473340677415536015809020412159395442891221128078567744813867837992987009332427957432908300024869661848515277678021276402962176012278888380968067652216512829031174785966954167093179369602798319178147605377752107584888687406723322715349551780533287263242523688428918673834461451890177603527520246073449402435852903902538904870117889536319534806137176645723833614409417719889599116530527593921553143817400875223284528536111877086462539446339173355558101641084281481206689451123926061598494535775584620006405447050639300764283318525516385095381489510460206191315039121027912106296773242325936546528586590728259934864573036620993367526762464794328614013154556714236458355822512266858788133836800784340659520260170925724624920389399893297275675940573556483951575478809630430455325119953390178129914810445562868598851459095693240998494433930594253634407419002159811939978710777203506210170978146322102726371077357481836669906151956904043448665378156137100113723984855271309517688316324835222371748611923350265311606377635708556189551850208739787172330358871429739737175115166991309776128612385824758083341614651705736919168349841147008399718389032518798217187023112303747365356963208001190877320647803922305997467836086445740777876697253398127023465319178985970899803164434979008256704844533824448513656715129286613314504493099594316012900570496797489932581753078600877202843685693194810499553883816973886243323775025717953534065472337765827181805461659682874197525987733422938346595037369923002697904400306332004633926133886838780622897840986406091698603528043812161710036399857000159536291700395888456605519714834521943012158870502310367199477931486718793754796059123138258973181357771534262293219011922043251674165461709442743810016252946388128480646390648060582281928626757909961578344391622140916562060909635164539816861164551620301553066561472576304769785161459836748100308244813156074048388313398786716474610037915956117380313947601547097851200546020433016535436032497175753616434796248936539091168634840325284788769873579623531437242825648525923438751055016523549252079819410543686470517224562410063856022832059970913836688008693519183572798537781239636488652165122637453779307652263206736305169809978626830655024866324990696363099615890258542945406628029645055078810305350279599116156899260302353098933427337146106033551801153667500094812682930279205359404519987188942902507362081931925310552498092746026706774692994077696976886013360131980922837028471846066051158208967985812124756767757925769181625242011308922362783738998271284299199593116850074212221272565629541300311701462545090369104884008737168404816956793958472208218476046337512881905090598164043117562318135493758771968942202927240465481009029890942727948050773523090006351681112825093736634998504296387591444803768979484259109553578295310571349980124542050406857923257525731224072324738460268340058158877070393814417152072535989347415696506842821632793387816325419104660033266231428386253522689992469026249897453824968935521015577861860214423978773776988812462746518810306065608683997975971295291820747268197980200088847710711082482662367666811702481264839886254118317727694458635394121286938026447031726372981515798512753994440073606116546355847716253182824842319376016964689837413596677155477982333413090151805050173974125405252390050646497820784812897060665097605560160921275001935030277512149912452690114814223624735711690100007965389006938102570468277751417354047898974452240055775205159831593810761215328320463320252123244631714817260656982267566324133646435189554321474567063653525688413600488038954047669750913865929376915013529132344819946128693047545687635692744415384932029302641633288662588443897718828460901239312241980404427555925150035972501018895281151201547351438279423704732098738974910805847773408909613622125252051892503863414192100834687079151444306465497870544077222718174196707477576675945921852561303319357620135660404749306796994089886856559185064174881540807496782467500748811339242958792831211377567212917721150127685665863762289249317932616933547052275675047694648701588032704047729832690890794825951393705304296895669528945628917244211687529790323323929866457997736008859432997396619420775029466145772906126840514615553647036031768254577990454269556094571662810348147568496965793286478081913816853676092846478444731385508319771331199850487009284801542043936848183112453253874114503359776154066891960999916689416475438803406745882121466930182619909297526874288581563321688620723797224344492536110084869609469670285408223682047283804008445435980609687689223495137514939307104924163606859301263097322287120176045118493876352124683989089618536922917606211385520095806333744770216591460714453895021965840418400409569027882984356674897189218317851229775683442982918337926957027723690561015292285088341390517063607674350870437489566811006925025434778026400122049618222586656596705022169031871583920005116186565200619416828238667292671406407192409797954406542549758990899674385711383543009915914975953634501245041233756723607586767353965502603847995568645087253623029235430371569258018031915984614164041514257405593298364892798535297395018020043500071540109103060945611217342998317610630361986907993776891060772108147119252004005682354773852447591577834367715227651431135409560586250388225008849678481132257442897482833042948709448398350403433291807157739274059958100761482959467391520161257773193586064921431556881969330567139141816743871893487977657412814647839252271670735363477151473891420029814341444257450445156555802604119666624482191485226369670807925835454997268346512856914772371557371700037480878143308100156326297940500413874722202696543754306561113403759678287149906434867399763313132600178257065104516652449547485235010749173751798622543198563015735771663231925038571788981826911791116228439683232715174224610807890739006877083229736721434380631851978990957150451924708396425041149810692542022399647248027907797501066867049956914980384463202121818453887517706033806607812984979345751267479136590802920570096184826110338938438539460495889790570039517489364196449487321139344359458977283188284702554515790320378248952116417226746480057896449575277248329075805783423302144391270410267036560349175294090047014518850880173828876198829987673267124220966269494049658046620502871720139879494661291164452548374043125185932248234818840895555395949363413466249895988169143242407515324897207613557857183029184231118194402168607163561126225846175542817763628489012600420254052603113126498199407901211508709690040542631836381415730389829618171621711941143189088862024174437320777978716393797685755576604545808995624496576330682488141269578320593475344076781490170565273623414208846034391110727189740500203603559504539264511813688514841376391667848663337302344139853280969115390218667382863758038581972907487313461443822819936813242116393150015729912771396334683523325360792823452367073724115753550765885130485587588067340264799620112470406956574993897503257993706936072889303886555970037635229883806630223502959187523074717994533121007623082524246557262346308608536997932984397959326775509972810284786501245672686954218874825452922779563244356223054910815551794474422177598427751466986442429866532685279757694800078949120311292133399589374362466767794375065525806738678321616065331537441240751576787528528999873313888876993540820960380726897554437666639059246937776291331533097568599387798784976327147489727759843902234702576882923248940689805182542935563323261626999641924627105577172759147157186268547767114704250368178901420827095613287649546075724447472384103256353967557699440634023209001712289999136256471768138489094823987046987245033037948184026714513377220406240626600072466313603916110056484196418652315817669550577954158749288759955525946038278638318460523952891812011813093258364308504528700876855111143861416006898983257303938489921867629014522785970663755256673687998180140474941367596158629892071543988290043156148705735581957104616173444083742386751400244597211074302405365242026497227049408157571375795633316361553923374351071424711558215852584221858058934219354413393345210882815220401003991234754970062165500768291809392071045187566031578432207993910579711052489062404034338107613771786005035406764801824050250744146036400981864059083634272682850946089039950172090940658365958059708585111177739693739600738054914886452484652444217447795538672431497192912745857721797014117485111247212465162334559081539094594592869732776423517993598484763005239000215306782385064483373961406183913849679605986599482791174507005945199814762648188676441122098192837163826973756567660435776997675418079491262754054706565986489510644215688260254729152252781489842468418538508154387407911000747930947898098184770932436131297266684697189319637092855536510030876945269935166406776383316011078812737440823323956607519063442934925129925422807763252593393920552261979919544125631144728187988303132843404187178462275423765881567576506512061392105031644090954308711970292787355557516056033797838192979664114025966416505799930335399384137106157546394386431478236367395464495227393391462606680908744375639413969902391217288062926416302389254515235801806527746741602096671678706940164988928727721219748786812890760289932790121177430655188507406672537673398688362327836163256766817057628910034831723572214556600312539058054032237312790543962962111343184634440603121662167377155112513302805502394553274764622803229887510441088046587513718027264010382379188173426006359632950018339407254611589524219131058071662926414342174944441097836034407224496310202644631400690923650770873833981083307509243345050000550638157905882169858332122913399838306447171404820128058008987761452658176555654367448086761183137389686261464688268677134872042485295233062611058043903495125530101249869305673476550791493651371980173592695882075077836970093773945051242601956501184024675387892524129905043158836629551311777208110222702181224640687574900629138869739351249635825514889119863067709339119376958317097660930319840246221482083522607947297814428097837959794710413154506167679082483328036874868193605370715637890280604601578103295942034627218699859090796718881057216143841531578690346194053691483646282050614370363557645643001069578945623716589277172080731743529429059010629877593016574864497804857062400287950709568503048049656654352002815790344547624716284575741636696512096233259707859259747579834812480157351396288220215088478370649278323860821575288299165213156321653731193032105529699445525489955218803291960500057962486342659625132009454894927295775098360136222676548952372282186600349119973073845440627065470647305259631049388793457040487584606134735155935650258397873531988109187320906307688945606918174916417466972657763133959919029693990897482421867475310786905066618412251966290166321557166905503925081096007473766686854657060892041704440166649520242843568173557802439239858336937073669216249102088757675877225584046045064964753003882566006872384494502480506257430805543366250067201226024133294556345675855581218966311992148632664205747268987821390544848246145933784948399166389594331765725920685260948144503262679753179023607811986418463555268445389330258932136095808924265477043284783792918069735079100692286132797827929388828773521832981017037280160148490544516361511679277434039471784006858733973271161430916626853308483462093101148542881186404067421991095611090517125423899231202042839279937928583362216918958186826326988422427159957764980238176166265614756822728100996233971302846016820281593629806375381126075968363210886301133778449065864661456564238943365306099085287749759681415680934057101799132062413414303944174425234313366976695446518363653019376253923605982764705964849011546263492061449072375815448384962571125939096746165587679903928317537992526193397975468257058628939247098063245142182043474425109260458561654779190860610666790901200215149671642510586153095510987799332469654083408145838542231474961908621091587211038624080345041493994389132159317611666006839653422944827367607922621196286851968938846048349712608786337733503703545845503702661248157278105558533083446857265566114368086376258428722602190552925357214359715920285072879950717443202185725194945046153960432064319935741640845101455948778315208731135399503423873238950900832625493066367012187747907285731203369733296334489401737771935477625836709740893568232067874366665435379037437276374265485488820195255098514779596503265211828291736295446028384507223827667451860913455733581209810303468333931176888868425534030768689900852340683479561952596102356368007666253781714687402690559841129421181465127106610326952523745792309290724063730372517659999907493278566266642798638049816047783193900733121143454213719995081832269639781132840548332531117394398557843707084170168390755114534190168342619572478906521750725279640420767458911159688757695055888277551327017570303828367801622274621877531471786593199916131261835954833637438881374310783890231473066228669704615019242910001545482288406537368334430476195781313264156612343198766129534753408990683416188248489468662247312043095182421657847978362303442402480815519982601412804745182734056514364299903150233822882347534796973771111050100492943958098934960761354205858540122398435679458001329550304066193779227143044601441253820935720186106488728852340228608150339796056091537183825939681337708388584365497916778901788783798512567745935971247475719054837431694117815898310398945478001297288220771341577975596237742307125230506788493275959963673675159335324217924800411577601856191113015398390876619052987579640994510190760985256934055788832968598331660440991758832848492754509562029012325325151424635451160206467853858561429432772589076243415173093206466359179101975455872027894795741324481190528317881395674951353403101862049275144229593570520156947034971491254692198846222232331896384155625034827488322991371998784685896918213071321824316209316536782412704305425362722341973463290933656117460038311369374206366167424261857339470434570859476187975831665711814478083682444515981734737776653317351327671987680209723043208532971321196209353170866251203559630877804439465675678305495941674335450997986499271060287373811213292667909220081980485642980215821036020128688777829121869468509719615466208002510568717444169852769616520105822391328157230277521926989437554192955432934307423678180982842469207061279169473385722184062682173599228494851247489482615480443468343492319962832448915087401341490867757158433878872031345451225509269572435650619329569696838776260313584257778645526658682628071003834619232624813630586750711382293838858301841263429451428898814996966941906901437416244360419169376108394420362058595556992682961390331742619772718714232099655105071614739352597817714083863688989195084193568691489010578779099928103529431395013645948302836431742536533793551849068691126835310037368098587332976211835581298895522784896419041506214659631666981998997938045009518361756135939006599571411998588951576460650649704260969426436483514937725970791908018024883385802359347503158777724065635720821972366428976073212659720067237184201081088120209733182809237467499959282921589102821104264777998211853806460927877686006132529812368452750271411192219557976419105123990776939895645174064685064172952053973025798164944447965489837999950514489712577186051792200260423205665146050321637540844494496772962066312258111826143295015599571968670264070113538728891429101092222023837310298678882317712047473294701906092514968072032442350026500955005113598638375494340488732939652247232930022275242326011763910494896291692056946871548954370875038862621788315997303356327418634096509801916820901752628460528210542426241559924725656273342681518294061472448264149768006780307713054749414164587774984688547487177454732426264860079678678168951618050679036410305507054402856438532387391421190775669225106409032942920190427127318145633852708777231788473955859185674752385745572650080721843930007778521583978587829276943142282718277069799547870023611328402034379497809707780020861452860621126529170973767122022183006363168117711443466217364024257631612340272730249274202076004447390795940115902469673883407800250334623394789152464374407671238182973189247412984950921380659512520007016434246795334960086787775197081700904848521924110418304373396619964527989318051635007191077068077159680030008976694503409017372065030341430224501756825074086916544228787068608733597681683412512983076810026423614539468322672825904278961079752874124874982882609008961150204060194360611624229096349021458676650095562088908295346567109240210450963222272927152017855365952433217033044276818922835428342081245502358331300020186540770387730935201928947978441024824695959197095252224536433484051536230283562164192829053181006765293709263164658039008336979868698458530686533782856863579629506494458929341890385514649855910010262746076408027845561947575306914450097644907146911030901723131340775490319557805208124068741619663552488286786836457635490532194476552913453291882283411284924017542957132105012129639827742520085318513710656665483481401309423969477559448358511290996562247951735588514001638202221266394345798265615593957340840580773994496214355449396612972459125575487979235750956614169265124241812230743926585601217009311057985427349704360337383587142576508797037433408198686226020133358266991871014606195069121779043429738523324401819569145898377744164285194157311000990562687037559479432026311311919074329828373890783915798600371830334154780763004313840924500080530103756018243319534476067852110971229182701734072317237563529218489771710321612662774533825558127085740789160028735547514644866888330794594753408828784042042826458062312488854025756780899573986246581933374075815846280065884375454676088774404273886819412150242791108942096351387860621221384045823474321966278904487061035718759908402781424940184806096444606896572734324372445622959234472077122734088677154803102022685527999242484979908945905892807006490188731848015898045925591671182197370840804558460649454281745623804921545838223043435171473466580011112812089398328883310205279487547696883584713326579867023941564735545448171506668459643556142678836959954925577908624020422045514103427031884665652729539982233378203155488381322237301525409578667414745792679673097743178237336008379418651245287655055668929673979241744455151493683228469213258635238920885972142124186072958915101274985714280835141208501556912523189600501323690200134646007115189305127560917098296430614222676981393430151941365176828641812788558433538899107583802960848251500891392155291144526229519588403343334667916752601739478975875764323491279596392277477661022692647343248697072086749833836172707756663622274531208625012916712347028142142397846042338693890443372449642470177265860024188344732576664994600726197286621640863362544863694725133793030405551971249279084005667619182404548923976461569486697138544297482232974908568146414999505924122036633878936371894986782532026764446249283983876454326582020018604969331042616062169802112256473939974013492460688433489908003840982075157217402559908871956712542910841352660944152383362621844452172460555179931442141109669922189330586527779231354386045915324590021548889973933612291956576367536590588504004461537954974068792538925262463926783515047932606128799225499195664421920931003186139879173714816633861645029149709842136350928375552085619720449698014160129760262473371031052733679675459816156626026599503953003666077292615314546324023573692188647373648261306920985058077177006336831276004492651688620335192671632273060663126842727334577185661974432755874515952322123403469217420775681636366334402084107119850644953491516473086430914681054413859568846135383608996834497954403277332075763715792318363985295941140350244431830053908074956016353330037143902072694254475635084879591971942441435629418989380623829665942414628993515863946272778339779508218366322455175222702748896284470665841712812835947376130500749370089441229536915269151790774418636618737753900177808777122388890574134934056624632495444805166571903035330258368691738147277662348243143637327634878039970216240545878599339427880926812871476793441202632450052415480308062813697958715361313382694574677993336225142177888351308804014312382971553972502500557938015158755199181753863367291959766628601412967193230511027391684799297786204484041398159681674766503166934154852616986379383927062652266634714429520215140119193181914057572709413614911044130941859379971395248342493395124599858899815882604261925002022795575157056220229239275718332500841036538506709251339336020581727257406586375479365802074594860516143831839912626757448154843173022588988726091339019477090714599544876351412956129965032262438866205821002443629573625135862995569591125062383485731612966136813862056315741094772899757779724282056269017634319575071794173297725643309845877888451981890362882959595513871382222230805917622896270841633031910260404052379090228847422171350342564053526060297991738350525546939334520702276633421185747797249605237548450953083983019711094235739615124804930640235098509554390465712813178228419497781731798441858974000345804535633192516671095858371545924841241933299141375355397012063656026667437635573530141189084456699319574214379192524982414552224506540001428808233487607859421475028618984377088115841330396556998630884107447073967969221684381857830506609236349017066450968867565163694711553973122540699678496296336237065326129335482239888447907104989285226907095403349293605113919230654155812588814592043695965190908940192263842113238481066741308878249128836618405264638211942074285092365289171844408667501249557417202947960866317633633706448141694545729896999421726773949776743906370472713027527294567456145771203027594873814755424816595915606260818868893576534446719260288505326939664883051274245181030234886553645992775161578870942784449934591105696642871110901526607309424623425602219225385470687124602207100024492259369862073162572336989551617260403967095906419400771847399002887497694302552344932578891941109715110677431483461475681074312709181358170444337609974327230131669376738272665540508745564308336600072746442384134603017774944618164760770091313005756723166531184721642664897916322481549662747854579836878979801187812418452799211135245717435080064000846265791589475699082593003301306280278605975807824098989389543755207658159819736837229579282977566200300646247233212283160055269441271422399569628779266220803324099208287945022199165759882527613996677358415471108357995215985502486561150649018177906206748539886846012297412773173269202301228428726998547476916653692314986962494702510254162146098188716120481261886067089780603467648302005956140986449706631429981046012686608361251460721026580396286236525176084353899201451608017011623586921507699946058415271923590494174552118488034926738967988575932004435207779241004586462386297229556021965399852630048142603823826386904381147236489023226271926377442964004285622600950961564193464789832222246202517804811007048083795880281189360183491493195162515252272691986544122851825549219213604007760594463072112071076881162748600896151918639606954401207924948245884118005444735010060848583067652533405503427254602440674300517480854985473970926867595983566681856150069875061900635748796832191843622952384414229252924592003356335728802182514470220654307532059772954474303898215638969103309158783241925568212031250834377239172220956382657784694540814810919325136502212877001332619314958144707151146498677074171094859010947552534918372503350525241759506937199105570864367485655600092563030203612168046251988825853314535594021705603286357978239936011385994742854986799724771205855437092190720470400096216864747514643797525680725729489750924765461311651237843908091892320831312601577132127370980535745719096180370174326946514620474019151751559747772621346092708832507374899177635259509666105345100721918097052515829584945644207609305802722456559543643219410297093920856164339972884809893950602584371047882163891014827841473961388011690450646707656190974607427644893143672471478463699949281477273292384580919049004274043994408913193428333550272813500079414813097976097800285258288011978050117468822619235560876906104459127724182765880997440464122506498259483293797176475562869432368749460872630425248666099403012625720088080785710283481142521037886027676403419809603109674693733332907191648917052737785016836438167179509126129323829839958681676226504061527687010761466131836312909975202992622560062441272758988550598107938929898440774183355854695604013738586953353748316684598187838872020016140453699648670071716954618646425683927873196947775278259623240009367410834132110877761630678748274621977430764893867743747209400185363386292513294948590246859380380796077800089502940816537088583601628071758493759496050539187756862586898074576710434186442002649750194841640123582214464860647222100326660598751003475750188916448920105673051712841310120679080448947214081683123777186398002824516653381480765672371325671468921259400439708810518664921090532358395371205649533345986740715588513341175072410306493282459880821534043149274843373780465927411049760890157036598155088162460913585619533763913364359835373842806776495309050028565814750011340879041626728139197702540293478192320007016855368012365093717243854753182277243788836620853684503330292729824994207201461739224972390281463835680168586205034111958035627038905489488485951144895974418374998546307156113477336172336791260323326057816991998936109067287531217529554977325697732757709512066754059908759526938651016329653131562672379443320098255003586364480907155343753324789283372169809295513137676272537841717874258433677225684023307237305011209454075507121551225891542991231844745613980878199697444388934595285170790622574902266063788761333618443862077226901852905280891525979180242981239649594098198021065530951104604448591294210206229089857226609001243440038760912190964358483897167684826677453882674635126648172546015656386234574462436004337794205436697436387628009608612359119599697985134574321078065050411891563928543796797650896922121602836073917676837383241986138330301211988277822261547354972932834146387354489765638952789053786364641103811130977606415743870544481153013477274379267441164955730222565133583101581023939614265800523796762965548071241444592454383256877989978780808282145948806814296222316411687159070638741522834861719716112479420672918479401398926434572089089910996451454968538662450676101097007457209421544147534516684667900895747036527456563468185335094567337770724522596187806057337910916396717984598294760608046023237695033123476489053764082422313738999579871393023150809385520251776961419792684479469877863732761198121362003369247059834579757285072165726414800666185915679370159783611482413532387753053522196899171643785466619808489400222856057716044554135659169867181588837466121422730801133721604056233031236785883907879373960240625987851767215835538035684122571643701716385100400760359669378245171171104209973593956973793706655250101666769294083767567734088846075738230006015671802875178463369970304827758400220935945718443320583070659746782715566820155546635624466274238075642437097374494102983039285674959706653992287487948600387728780341461900106518472443881745021333416303401762373482806224459584164867489679003017076510720226735928436195637271967511530122087932145051214417772701157800720606645706190951591880126277096880205701172558321720811782603022597631867788420351559195401787811762900479060244517688394585896285074926308983998154060819293915738904770109446868094094536595862072430621801463838147890667410882138291302109330741656849076428360879352521247060728395360407090952241502301866824574757520051710853213011040890500579834470572246151173240337653393497599533728743839367905324127769317163878021026360767295575365466113035333671316578208929374346736869127241842636111868321055493628640236072402403657181705695692289861546287554388962478162861850562178320882909198450004121223802512994197166077899612064394587089341010594997197211034597029910746177516590675044262682278325011315522265195069174187604953241643158192136282657965035114334998775384254714209813712810090099700037158924192886456474124642627511565751584885805705916594516795035276189309341897636770820031827219245801514405962740666130687218794130360330802900314526315350693050171061382807001061566220940964022022979659013922312720627814428683408160800623928204545531241426459584121925778450525795408039528691102445943962598969622836742042088184592693265115447609914365182810339982303339126440110639883485507108489474389877939219097601013982246576978996251627348014834207487978838881952090421299183668822390860597825698051246078785421004211610431587295137458797774954238741806564717406225631933629318685276678971958550954918203376630039665132592166089526107606484337674261696886774860810937669634756917024025509646914927230171522897072054397625847043588020735666587929683312306266767146019893088950115321031229032358679790585138556644407479213662041657646561013854439970652201218771922011376216669508165234721702612917316152866336996397953092396381824478994340500662958834483429716127961332991340597300535779487917884582679503519755910605972189511381316217231341839905856381267122611554154258792924527495120910164322465656551091735350943484562215712981280498054208980836080461433539416880894439327759249685012754253731438895986698381485429618832455770358042370248879864591124380984424686565729202211095475717155498132745192287125541194359190820932224436568304718815958820011822054935336950399376215192943731604443111746005480291215768178401504694066791021411933948962748947613538529628724039640082304098056472851486689229657505518658270160963446262026571020677432487542829751903909138492830339123773552348465271225070414194944651550157919993071623349448733859212467219662520740228303666585381698343471279194381896154224680439766121201903155914836938086962560600176489897895328256797475288904323929819559958665836833934659024879808057922256358450104698673247446889854889559166704650886126492986355125859367452946134527857336199826346032481485888429423801993263587215647640693862526839344306510036223475948972898559866747956499370242967998526444202853994258706670564902465493143243803936477877859755732216918339819990301437107383156604967879653479645497887725380063118824865685830850280284455619329478164616594203530996178985456219820164618469086746869656974818414819341391983646754045075556313592484273799733954226096555230029810064914083452551336793079383844527761142763523070466429139875622023598161373736721772312769980679133798525446570764224206107151829518252315843883733599339226620986290565751397445044425833839192067592162530378029358272488565506986699861291677237361729591426829017387392806115875967748016728250402557119890391870440531001709716007090203719774354895861353821457593191794821885124177747171073032537773568945848888871415914557422010913266821812670043355840110317147745737016462352572972113396132137024182325824129815356710742097950118234620074122916475765066081859087784337917956028130493276643893928056247069114561774993583255151771609976657036735801305541123569785865512598176991502206681660304991842882709097620124445935739935690229654579612717110792039378478541063051918364732495693510036263133733056366936806691021300767963357039197622699677948154503607555360669196178335961654069173670184593665594342470958269345982202811079721090978770402557825700249403196315675752957003382470779788919090879810259386201334762805428082919259737060351353139726161563997773480558816237204438667766916951396375558234851650209399027544103559137545708015114749142663159001902622980452297128013996811502094055403524550414928058703015472157247361209849294541799839975305366523432592383659624941281404146827816570612607828295158516486339960599023432039977146057785528916772082557512779586860427994755527406876571062935724851817875472291107767107053732819363850856921469995205114830047054120645536421766309248090860861331072456514572095865856279056993866073085784300550974325224639940559870152292872033929948439361830613333460034634951410308722876557192832413071488147151034643624207818801498976116278657479692225935283802319534666085735570789239928379608163584699331590880146350970138776886533212234827020216237962401758850129051224976961481199387519037379266619280793169513742526427469593653073181441131548609289871166025224369844667422620001140609905888364665430669585958880366720999352418068093249408138837809306229621680177372845440228336710174130300100858261848208811552817712227920203298422848727634425243219794125345604941393124283042512044409347183869777857684852227011939895651337466159692118536334653351841808305201145188058043721612502179906040133401603863080910058100604121211173770214822615285779405726688474240988703267733421231845652119496171133943999193576930118606448756024948845916227433000868296201721725067808156635449507080678877092761901852980123640136100457627763754973912568865755182463995323732828662695371066339007907338484280565768662016105594422989820364858549968460755915076488067237480841626881541955008428430100836189418570810591454421935569315371286001675529333315974712425908086280476780596792477724758290516923762503498770254989432044039984124525594073094265002826633410973124808040815494670408641406274051837491782085747172096446046861032507991238720225640146707574327482675876618612708905228904807408348123714325622498213497228269389465248071316579123837123099597663096943693301507595233248941005939685081787487966487310332496707885033348354532279354262692766284657096981096596430969565360655492955724617273943842897506821556709113013863584577742342850968632409464045463745420131114923913409961882225173221690928071274412773142529206147383497298819843409541800348498413273937928354084193951868097077544898528849141850504046184707653254559797075163490765602511058689778643246276590748621243933342080324456585509743332593207012789026566000060323817988412945600984161081508548031987568869809538721099001596690695264458527749934847706577026155006301668552172618930497787618330517707911460465157156750920001890977639029094317874070621492656308781155205161639074928976594782444081412421216248803311528400782010297771957237042919535646870925253369534404146245055071166186261540301344337093029062276799587606555564891275141943897244755426200503337453543322136576405618172469410702213933582471633927566186598459171070174067525973630895307186447567882088508666882581417836981536704232320094484414424682791306694173677327381328360468275251516490937361888213047275858860558040384930400362200776357959155813489157913000928814369600356557042604574976289021506287475677520898176194922615319391590105904091656601003771084733152743104619826747896249202935936558471080621927697839451272830046838641775792005362711150986652976108584721620249066913331939185320158348602321705356681750799614524628864088781628325869575854065889091003053261922955330643673443381149841481146755182532086935345514739910624237817751049598269820596657839485349418769173838858788376599295997277460957595222289322270788940060890392549829180676699231514761921579187784254453078080047531420055656088004872651408849296682551949154294004355768372476368502826820997942824256180012128873283615510318373829845428070081760096481115531020560673700737523809419048526407771104652706409788205753555931464674263754021176624121257172918638535987711998367602473663751197596779089870192130195591218273908692676902349787999358823088922979605895415399214364390597851286076321622558462329610739911604548544962450408002064877772762505786961235136113131029057850163726721075121547476583090846531221991828171041862439595282614007955837276911307031144610242708816613278810882424779082725939144168210243782425846695919875866081254983258092960205107477370303648634539273588311610974482415895067042398331954399531364668963352705773674893781357538697285279317983477663535683499716595541707246161428385632835262800870251569423862066658018610220109630426343960948003469343304627556406635537368596022387302094717566869998121985844134599305574577512525280314740370948544016116838914440632066359526805577308359933927662495058133320853189385910398470940041467830665265599809073696281027094327754997804779137435838005736082545815210175566322995096925461596993938417777826049987039753879477368613584972758228425020545324412738380564927422978737681457053559267323344896402011732965911776015490257101058930626536920707705749475671188958473630501027360263193578456689559807869598178865223881299328049926168462574426774520244669746197220571394355075893065795330614123647401370044261859346547116719397867925677756631002952908760679133148777354838456537872951283006802511757165171455667054546539481450698700818906817791728546413302105506320499384450813064771162359313953712750347396861399309719488409560622353365839026039706228020749523219608331876343293770979773921560870556629251574107963794552120840524674484613232511673359211597179254009026849505730770571306212420149079645703394175854437010943708860527567790861283094055850388088271558818097279830964231825407190681346904857664763491238641992213397108879145410180596163492045286010661664881456937559693569111626125699418847405216703859833767132018051031234334611512441464620055260655809069283890876841785064431188369075574982797173164226355058664984593379309856531512312926143094089130943903746720287587867284203543838528336349567529338351621430317039084470390049972360473909282241133705844641714121019793458343651316053547348233065324538117471096050346536527325027208307662864550437528809804847623147717512394202908899119940368897956643428613053372191152371575740551442540201562063230090360529262000764852338013273515145902706610136627015555708967049963906869583455736209683148320214359384718948973607001965153246947915732248748430987431375404381514303094039628874352864421511462852219159436169944380067094264256660899162439872736366678052785362501857082012134209805897738693530562697669974795583777183171002314591931454148493508854778087305505962447554585370140641351772100731209485720144224891826523405303295838076694107865441992203093240638962962718745804450226726642820478546730719568090737745253260960236175666386261641144588149042498835497911134574927636829017070038109216435204368212966560698660718197771706423755581347364883630044988554168878022897373075460874325464034737469501873700090703326649874943884206750164923424758910558597087427794312760276439168780962322147869842386587396875887492425281883584311183661525181900769458292894766743293703023837382200136431682518919305269446391755260519620615712818132313537540192909055804786425201782339334923440198481936422592248659339234876552816328591999373234288894526806327345542335247392198528518874700991646463684393852958706465345123996853557370885010702418888784327997629838862134783947136888429339974127712946284348941398442824662507662091607279767539632259510770941075613034516307442707141349190437442554394818672018411443377961192839342793780105278343174109852388809291770344092400749467164681324646517626536100308935462872022274305657073619287003066657208618798572999576891212660500001094955612995509067235831942986367540903896029317350692532685844523385468778352163223085046637938840862715166776627693532609151123316460365341676222731448411802941828400234497271454737934847568166385120892477671206237895182359704293700020570914826298373196198388256239039557759053052630115528637936345228683674582163237659440422816748241586983047424521509812277497377710255954317779602851692018292172909031939651113769313116159267332768406581157710484619263443171720738006279456161856454444279505882634670768421145960824426163994475686213863550532837753111440676009780958492625416050154009425566629870554197639843291402572682653171375919944428269818983314236256775205137677495271224485206320237453084525809208459768613172052731432187874862066096793701337335375401796883339060897227796435317462526175375836735439019321989311622947799553105951307986832902317442620423813380396120873546499385337119115572340020525323498079593061855175303788184367491915992170051709169855691693242169474140390486940984967626794643440317082128772086674010749572819498882552212965350316711456252656097336827498014873072099344232297506978539545594997403060450749368854747517157655640591732363310227515540049506780867035868884131652633624174893660905708308344107614707519028396519666090089516536630775838396444733135084654721478878017473986132549582188718998948158959622727564085315332781448114688638263628901556809667168705742887791326303045460350370492200666216242787729159188020720462943579885016822765176962912761441048372882176292805809419167118410404943098301309045770949638045380329934805962317060334652350560924735712299613776328740258572678367038734745016441852976572132675942588195988112839866732984780588537251097852002009341001134366517876151187430501002391156453228103571094513365356575994463602651485103313788601882783466670217062569290189499854679411922322730960801691239553955014459093802676579899079661090863903123604385777949584241459356593458929722561813931371788900946208166627897892697523644629350444318535911613646987617235232673497247749373540401777894405958127823020847571569951537999362984332011037736521568846162284156509129216856522584452262646014459138957162772313505552210621106909265455861486688245247018558345831784707322583582434263756982638488894327532200965034613634004722106006871294367174397254215953469168808814914582803310070139168240732799697946022353771832892803545566174214798712855605527796469377216824878662977483952266817767662872632284587266247187349293381475123188692398231827179142499286124981951590590622401251988999405942186275853106649175088154757713328464671406435174778847323221140859018230878963407271116345675708696150778682250421097931662489836053993486993400495229952283479123503657210904277103339098203339114907949333270734434684935441874975066141372656321928727603432420290052767744760123901596917810431992751514282623704182654110022698838685378824919767769682713566085632072725427017901037128435381049820247153576098867144432117407328749255451970523523475055093993757482089507152796630239468903440998957533097942960874316023092687142710381507465327341520705818039431533701768541734839271562611263072138040447027269652003516424659378962843154997691327154526570346708949843673702993980487616988501756752003823328949612210704616157120968021765913606068830318628459219338549507583860958741154554097554095647836890777622729182529524121954780891873233617347632861316464942622265307944725138801235756488707778829129716179305516880243079133024885250565813167575245514769170908425448886767408277393938304212472958880783399554003746282087399772752322572738799932421059465697638169520137162160050360643359680851890697791574402243423222751539981470935469470844509409385986190066016114698975842074983260417944744439232082998224416790605361688303525025592662306831488078525415584058242255478298066875813108812031675371291620599612462809215980425770277013394217499696980860042730320639409985254661312869605921791231846928804227709104673882892202482325818426118941310088349343278567835991183609047856474077401807225077799806306238786852968898697059356748351816196559365849198168845488024544842172352141301858988966444817808789536738263635994716873950179298232205897614952841750759194611764912437535220694545858750899290720031392016665740457485022173856675797841524530358411228039674885405885082657331933855260425404482685625304790079415245458745623141237104383680285144601184918754267329072020757233622483408232901525102195949335191255084811837360985814601535918837819610238382184637902355912896710525165328177303377254259900529938071808308629940496970239851569666671676526120453406685867867957996271591517210216219484537614140130365229883616300594882147684048644715787868446406635299337156975690403815357930686404851583694841733894458727670967593912290117468877878444981010679320663117507808957251993601986677393007630862854954864599532293529588040117997537274155254810025018219620270810659695130322332055516856368047413368590537769678116663109295961305397016862600422324814576148543126968316515881541789728477112705550158998648626036815647196797902927296966210639701906723802848299501790783088887857624244864505894062847603351249744679285347893472897528046392283775535870064428599967038128698865464069497236418206962134589111007381661834897072597585703986600743488484745699352084772822004253829543342229511120739967763330619936492317326554428961593285995571800368888485632209753711665342592799520645644220915143395066134697127476940176500950138850784799229660696239530538904459546818214052335793351911612286999527025179476066115535984197444997640187157863316429958058421424036083285566578081691369314765668156582493912208910848278074960795060624651712733656413254355247357060473391718851914509573459922073212381012009141538325836736036621233623569367012835793734177687683643709804639845215882857635654704137261751623473499903817300393143586941358582597804405879606103226370433295861393870193045432366262840785324637335406206316397413799915262549820014280240821374311190170270649222607623207400540756776658069364655583435685897241366787936658063157859778186487564819585617378597252566711625339672844370926602527993120771511022647078893849942198821736165480331041626201610372807319468012843627061090796652054879879305638302875945914261586317259629011393756716536751693673432368630497460405720997600055828700651068739224752288174819279439736605534267118861141255223728500483431928792710985682901017755983617831733019353645080504715794301971484849569518520143715137497450783479586843030514114489962987928188361028630202419256950346772823158713222847181199605236581137951381179414003612821642087034645966109767127106852282347479761050892541429372441729940924161126313848955958474492546899413764245721302408689732903766483173070510397515666549937708295375936393904666412113669748905259719907442190990645856510384739729019884434822119080166533485188482717011236106943716508621999473745047875311639515711268538171147725410686089797957367169188268829837029791749321385984370049068184421790666314266892186561216917918136803422739144018722293802615870456263834504885646059010272140764640666398052213778609108420862355710817166848151240857450387168757227669659831197740167747776819982871667500922155255192546546649893984939468224407864633058070583441811977126979697693426986444622649445792752946039577406784586970177934948656614565316941195444284203193553815938524301931774824888212094622287003234769543096682447037271475964550571650779164684848649073016534518061820845123840938105197929956493592763502690098225760000534311818900095665613962176722720650961820776237932431451085342700182146031093524929192888908721687665066005644852174984995470407699906009797100257512249534599297011802219979144979344917766242790809205658941787198908826437530711095200698401204614569742958044676343529808964465593871123341021246691358657956544637433956430463695689091372769520490296049959742554884353499156659472360140175512154208632539774329844992542218252730355823743213771391523668388595657304186154082954095921300265005289269078553116876767815690392412908483666309533869416854793446914394984710746490024895960640585791558341337003087270233284607163879397495185893882346520152210360122041017780043356901852293190032129514555545207742211961082091609324639999555071367611033895920352212770094754960337319871266589723932397144903352484764276519280883063052176332982566540233211828187210079431586553925550541375739418835763041960040446940911502710061061809802580276631100190576667043689432627667056444579005455636940807352055393645386748147740007379745613851507183174369005362136959626620954056150761917861433357595380006166243198341454273287006223259821831981390476010061255958478448514263719210565580110585227573870517534666376943868711927985950823056411679907831998158063031224966177183453660692522230012542035200865566469736170863635571422502741359545514695671057388054857267777826129367461078552522561136138965244762701992044711790314911445931970419919712048621054726920452366658371115760403725568877502500974322769098977923859549673093444252080690540578164634042136885327938744009749806354674422487081318347102162703847574386888285326802220928259865936653403230609020983880043737566407396167237386775926433328964536783106577395939978962719741254469801642076722467674224549123561657658500545989407612049817555350392266304272024439575415053218007230914500272628459395006476719716082617169455727081995201698439808185995773584168327906970582738043829655721241110846934633207984931649607362415385014794240519380468694312586716883413535105832086527774996032155047076031003655266503364620152709701831172990685141137416854977184367356444331707219124998603529231628949345407116643453254761562125218196854198252146415878892764842916397838967094448823053797533532217942422301870318570624511142500675668048218016630268718940265374922779816590827009208169925585507130498998246699989673837571622905352047963537632986380309847810011108430782540224737617376423896532011057549579410345179176345780533903275817779754191020002354942288067477387012560858923105672191311792950794125493360072904730940407511002257235092464940510977466960464466211300136955159089332358261182827650242525101695814916947842576367102263259635875407977614130767424792471372597636002488570200259310383119637162906136898788334423079959696619490695763752150197954740089729679572732460333130809442371246734535120441327806584808639486226147916319872801474888242926766293599620612699401371749416767660168339928583324422634941692918572546689206405071082971329963775528648694973139220119625857618201080891287188486671733820483605124642018583178573995392972657357833656726821441870371531798618481765997150785570491247009365777920079263134875734572143591368191049707366313933079473857702078556191219257798814329691717022040527690412425240571112751049688752003966080178050990679986172434459828551231873865537446899036349158908487177476542050348731442332286536347638223662348008795283244004044448648219114504807749089900154775084063398875931436302492718614625076196232338718675019217368546862769990037052632764399736762538328080618545940189068873438791873583845616510404790956207489202482759848611428375562504739542950459632285525742423346220527137577531809084080499125412591363443486713076333349259478419118816667538850391780182950028140729002389895004227545786491353534619280081911997148523271751592562377661716758125362447038881025114603668177454654313876276661631779602562475929213008837378413194051762260239833811191863326298080100110156687272395698829858399488594408406040602254100303706069586009271146014400806290769425599498863037582565398997423107268486786025154944926553110556059695885815154272043550976863414066787063096019756610879619475631610194621271748631325248228234036813591225208707131935173540753043854643683881022023932537514310654834397258909148466452999695214030707025665505796480215331503178913703910060632076877712152680492347631586568752509888007921891443651136181754261536990711737157458815272491124143340769241157933856366836307182913024461720889625368489103237030111154388988334904940871966890874602966682709415646050630182161244575959888123459653981853025987197196528875963022332360346453428449159451041003308917241953516582228555910265001382845932306051076274229303682228116425952766868768203247153660712809435882713602923736239253925967021679558586460423346629685786697598042250925602229231675375569634418736128487485833535382932990528467307895176197555645787708159616804809954068822583089255830699986562095660794089057560994938085244743337264660252036271728650042153487078372139253439108448192239669677953334124463184475435031480352132365783833150772727826409324435124696230592678045290413994531322071056282487549002635775653779423393875100761365757979109633690826129178812678016322966583202310960133506497960149647872875970886990658974708845314924000503552333101883383755480845275001383915012263493739453641311449742899476247041051023119544000251742104455120520140082353087013263985348646255617974221478809500837046065967129212653244098941265375578775227488499650200320600016264845660598262089041815245752307761834374878302664298263401223183004220650528773429780148552172625102475845172003489865742662329667929642567233649239751324794932013456751661923475464894052322994349363936457759508118684709215603473837716973915492172107997675897565914827624625376215793408396183140956359693205305916288604266340047308256060607218892737949699644091428241618795565332077622028179814575816294708311091265604006719801798122455829935715852398985905226563782100291235157942530616100040323442578641648995184757323566286147069640069729356669381217380751025967088311033646495090139399753548101133094653495223475013632116220612133405571705745154594928670008246218808469952961179061303838880612771303690831469049876153225908481276160038622156987575042275238806504917648009649503595009270302216543798233099881827442884941457895425074996779488626653415140697469367168706167041462034628755414143433282390569522182768371713438728421622555341644424529262512338271331003955184412932183980294082631916863382016455818097037683247045503303036727532120622549324243614924269943562810476611963993184734610236981551495229020674399482121742924680998704012310473986745766850391702567424508148403758370278693900851782605640556150154829032048822872055996079615622010340684900552627672169306267210792634738392029138265079788942556855452177311831780853631023879320893263179306485499198696407520898403079481338559974147584719307585593281131476214145033439826010565460293353928271252163901269952424390500132810922001135733088585120438396296753760589240770594095766372578927265546582889932639003530452366570062773015690295908430338470051928718120506575358121116731670085841014995746989832457637008001669605963476874895123552715922757018368465911398765239280391260112814421318710169782312071468320912844535224375383416992018551036760577331143037238115942101637157642058970971984221821480725526844115639239526187489953286975191452251698195531440632477091511167116728101499446557666703265386331577795694460089070556152920707934884998811933148278064044865685621372257380517366271951939708829656188469871853941241266316581886840854089333984814689649431194592239507280545974632755332487356673397944384237239090514377822733392251128000987288295478381180848433470450088107181281092639879583728341598593544229171676062709788791966112056039253651863801511515528070439661546161616419413144077316876846605697528253083152457856631177238254932175084898516196657778968011819249418225179866848961324607361711267874747808773166772675413925533457191464891603868341839766570261016014328028860699229441033798958446326962985976340843533702127318742041020098763830249908106687535367701507720963797724222946727803237617472008684842715622430401970769520193295952676674593545588743623438841110367996077249776366530515645354663030572147670257932890826822625743728276444364354994095211797948154534564187778317950426496617959666933890358839882271960803867480579081772771591907326306370926372856077045768444495482992447004701437655876776082263737722993496115986510990379264264308078787297328562717482399372620837980286503731175600249425454516922118328084472386560418361817562384721259415216159766003750483286627935253781973940739551599240795522885125321510854172670939891863639278053398667309704518388161326764788619509236293451262247911736713142100071023886796894635689019091359350346678936639852420144801052297931587906758826040612630947094650713600517289885786604337909185322716901137402320704747953113891187225684797422419497626685881953944813645461737036134033215319012201562666702879398299656587302342311665448223485373433820165464018088624002601481403256106968669954393264550940767526795696997598789888025856896888623853185679699525124184710146490308783533059601057391760184384410652304485350701983074040727252522826340992595374582055313671478156481147106936497991651418208022251369275144446387794170986314382512320794199124960769872249284129949454043575671389341754892380192479995709108771222145560329607476250814690316216804729720414671344099766179962658283656954158141158584606886428316387366183328777879054263989000811146993164883176916404868448663518160738146237476575275955030053465237952610045551344025748851114481668455380259906026399517209915683660895912044586851510803823156678681267201127444154363375832417625859210545124307198483214324826067149599010861310883341753072116740355696530293852873988901193908785772978385644272864358047098489746382802786292196979106117586300601014268940218785827144065738079578884892053669223978485001279861064887793408316255593265142945736991431303122518102204381512022773305612196097591892320868651357166205918072509588385083365509674283792436349422243130775797862889733993256632864574932219985424221906009227091944203505883205803874820357838228871269049559077990438755281842578753074450858859738506199732535993187979977200336295884413278574880191415146571007504789298909741448543472159980341472811021089590455475157800925358915744692802127298360244796269109050967980273384529640978506305604570704684775024181652728416340689767546554750064784958153686306723921448005719730019033842847865521491270504898349512464787117206743581253856434963602369290981673280445926200092384158847496688902014334071865257591303954877013581680750141032200397370793741700647840029086529046099145244529421207020479363096478522294436754050578236720870412570108734259595990215477887042535574824012401118840900059815023188445653930849269943259908151874837493450633522870368849140655540373263492044243936644351540411286392997911010265367043048183573981636365779963190797875959420534113114804071286913103993527519244122391468090037198393765493678965794793406416593303724593797596033340074134936199820766780572858436208890403757322547210442203136098105891704921823624009629192452245502051743915611806632129358257538137460623912142674907490174246707664946305926597149837948631066919764134087599086481105919309113530041995415688742382752353994225473610078635743407875958882002360352041356849298861605603745294878674870766844452187639613466068588450954387989107188351370225682632210308141649012256830760271519865293520942109323025201005746649527603433997644364554184410049151234104570690698868149648458893361784765106822717739166921422139250966905104171585040704802410791268710886802761781899500033916734262463657833516899471829036746845574602722040798436097146899847756768871270017141704965781340517848849697108359945341981512212380634338785260471079948022923586684473298438011582175540484955088567710293402431420843060569445135983424423192615807600752411887945280443903557382286468189408678764274111113994990074438357554479734367300765269682571689233951593951613149110435772998691123489223847381141562551791442263179641855379436321708098782085359306620996079539058820887944948086999782641718879970753244033833278422406579328547408314093783718491906364818146567051671585574092196280375028866958079667983860557108863692911381651229641061871301304654004558783481563002820946649005481721233753902357173377868712794755281027861114030707151777817955972335219501290559893085037854733704091407724388728998508186886372452710715331948640066103978470132038057194396817536782286360879775770786053368210463079012563249333676649534793650973032933569069118939601644488037257028268400860091733613166355275041586738102699803827513161306705361638256791702573082499719057962939130577661616127822987878881221183565859500689793821224890877857415800568076411665812272247572696520755907537534503307259106811758162163272415919629167319401531686324221148445756728055319635703139653449909643746786910393007986342260547093762018251055562092853336930662024403587941215767664166020864604525224378385553874480327515634011974951514092563124875420872334169130180767591367823454397959906698633073754908255369433977928176821567881995269343622053670857054724250406031607679827707294538055059013533201072906244511329228382601384744783010148476560479314856123363489404662077479771718682018246675995292758239619150649630174767989383276119221671804689883261794864861050707979462093955949183645514496290771720790572794062271190598536976410557170432723599751556683528942673929515291723568030339896173430924613643146233353349610759484022348347811869000726732540935521915586286076260739441821642899099357369493170612621768303020261341138133299087344483617410632745823301965192888664094160757240812027234700803986144462724850332411235430042590341003557300556112197463133246816687873619546100286875988057602621649909936372754801821790826882687430107024431256612010817371153317109749513758090539517380347651789751851274051369295811606623310753217455060330913505165309281209827429165488664388203194351459823371823960750287205094407103260990924767370645982539161991712265485698799315513561568881000962728892195292936182785646167932767929044900674690935160653455899598487648192687399324774282742651816745077751322080979866405803320131685579676289925039091321253611667833947756405644339279345174399215104950499173482866333395504461780414180162361994278248350581154464765678681615790456524555008270553579589651228574413846369768201485300635683676833985635116187768505611065990980684865624054269964317748527235958151678647592286577063037664313433367429128839004634585431849822564642111280133287018372243841127641613745120740264219197531705940277020003124172958989214087789874186838383295479165377141814646503955377872735020278925279922067692426288173339659742527364080119575470336095723457698222148536117911090504119421584097135173834258047300413695410403121679157092963745599336043141745076646463639397763158877968596123132951821115210093455465510246254987459792026892795307192676625768486341669102133135186827531529184577248032184543403059928689190087531822597814907646907286961296992841052373988628485508181425524836005458918441682637016501034223822939293543424619420577880792436768773266064027866401121186491446771970681788277568900421228993127137128934870057922706723733806611632815197694032844813609744390418441921980025120839412328743642966230879586802104636407740848155120007923347762783362534826846440271424990285869377832534212058861928644417631379242367643522825806507402288043544204499200795358017423492153932381587142996761477625274597934403816298121741389669931638563432114670886642826568680084191720726871038529947448932805119320559648411864788782572307159471929836067007503726964674994670927597235169717779390900380084296856036568022658984716361989352763665313400874186895972162704013199182497278489454746736590120381211430185571521656735888084730523499330227639276897773091461339714486549118106209013047666790667423633325632218151910115509964489543614875982695209611282637098003640823295975906842267282703486676265057152341065402268710321547760107629134216464113746951190698405007801650129673014398524354525044750804838721242654601120192896231956018070582456071196919434399310228287780246588160556109369390335838335185430379904604830501218769910852901075998083839253193239420220971676115218792316326430367982918748957170323907279000735191573131759073244748037971605665336288841160597757195696806256635385721955620719701863361265691244388078185580910393565772964848537228970053132236695418836604640584665274575663973974567684056537362747349069508902178350749180827450196072911356818047095706571437924329267781633164131971764193972502765556402319031142965665010773656445206334154589771835103429259349628403672414809415981360999621856654622686119693448279369087930030763664948594844759754864995476906529321636970629314590717452582300190459834595559149454342674749951268334311862498738059581716163839403216055797729022751275043532851156360378882366228824644332579841321424177866754137784955029612850550435541240536961960166855217119666180297146596346394161322669302868564043450510557179398897784624981938170365700237276580026078020149482382931670839501855522491233678522540903291934960048362990309916604496373351864098846317787477880517678033345679124582509086943166602692030369340226962699542746428163889508530629317509585709249384061490288322100797112811804345595202111097149217547538571372813401191052113623669245024585506113144115280199286229624860717148253440369920368822424759695081251185116358709421425037319922123084772389389808893353719128743800792808194379157876510390193543700705375065290951341416590787256958792479048423780821043578284637611518478005783163972670608533905779094791804666702169078368944136254747166821361352124959428749431058568724200876104858854362665611680621882195282913288051988219711845272513802917305995226045547875751479894007736325759279652440317021912464259801586028280517259177205539263521263478052494853679349501281342264096123974482637068839896385378890627681871418714763042995534916235154500036158455895925903099692351907492270173012285058433813177773331200895106784646287795370521731317506661367761269113748387239481294343863596313660676422282686565611434043370127042806474335872520384594288148960131798889250520291715677883136284241895232334084546380577776898714227145719856796160314068502282918660944662526409688719800744278795260827133642745711873711812167801535303477175251615148690288406576180493293329597772374829025645391644241439644552218668332142388828134685550665545926904518434272893839845479624778108275868495845182778231138922374380504042627260271033275312400380901505584500282229209781803921664325939200967671559132413582538785369422292093645153482356138414904668784644608572317348611781030471582861306901080179190705471800120208839031383780746079629058693891126646851151679764109067570178637096350104544038828477287777256178985613363763258592361997582848750259794388401815113761994646723564016962934001813844540512410978708787955991565005931708688909551327879337193190664547443517434074666371652819609552199438674874050053587171064608526190761174208779173884866465437631018891381862671791002729399645751103435914266456471728277782786529253310124845851130696212966851194066837683418665948479207971946603229504905561577131304045978542654178501059455315697277959577828242469034633700224471364470722882105719428848880650554392126096938322798561714223950507455536096456294993550614167270407516462459367749078439155505230731108432988815692939081297599871209945515952531402965447502940066394973467200601512356633270724413845701005435296528978688781668648028953207852884530033197969097754798356374027269715230811035933417667453945490387754462515513500880566139221070440171581127568022805146308405353188406832278147894215439822257371402439274196119206149116679746981019025089800657196953161704478117992600075979411534591251093413734779759663402911597786962459094923375395038280999362218926346145342725326193484748566076950499616407515491238857076174013383075938333523180843766322360446258521830533389979506851188812551059471587179831530856652580021830011275702446092344967075462905573625968041657584068702470904419900942312097002425526539868769515743713420776276800886915479046578286052721703274533382861057075015403617659866259990164259304620411281254577233165724372262213605795736043570141125288862398819112193138883310080072623598425144865209981751578303113959041249330884635715605540142762478314337754484988415563629337878308232548994444687795332095946271586551143541463044743101871785302090464052023352136085958251507428575867713521968112956390324128066522053103508300078882846388494024681459249806657133077228413173588215198735009960838926243294401609142283043211454249395007507280289110881427426546568971424732779271993645652073870150857799765035549620378641638846984830534635741952059357300917674742789683056667089076134725791794372031730125490375550905626279996039439614754862458641529870613879160019782014427159077714086076180942255325801549115238042360149057922435597313058632055785448071605625654308680868767898852908887330225120098891903510690541614098590180245787463553595220355787061492782007124855396180565342330881338230497462029930677253750832147080737351875889724918436308215679025261580375948647610792986360702564425998094465268479082930581504056634490985581262305498417600231652210294744315257353692516327402512819800234991446522055438272574257392917370660989742496694459165825352081241457765871206387055054156442669510311574737528101042809487957108681003051509005498977625744934817960458062818925747567478041447944015980792693355181881178956337005961407013118283247335858509809472775338806519089494148665225810643042546668870087910453005425779463498177787921005806444774891793250965970877469949115845724029354217334668217391444768519898797479241386097682282106042567654450630812482343610475889373220165261383088618115151677400572021552421405458238959695418559285007282288238035095873021154234322628508256556552314305353012259135131980400886961881636412487256998330470240101923806578763271207150142411081307013363391254696971100064469651559506732539720490077551634758031272827504441341459189811534072239768834937844765853395119611055954576501548717272696856824979497517064814846743140550074454125957858201831534407494133949723682182459406235924183761800942507337813594777562008147548856670436486437153226007983391194262676978993323736256643303962460257983520475135087837953096315831586444118371327122257117836000657650188959116322602893247245440464369557730960300004154150795158251626501981027537430316989934057413460888854838131192006802596128694201582638811508664247927588905147735974360018489220657673865013959562856733158063991103622897728159470016609312970655371477708223822315995972931719861030021668166486152533977443735039401712678488172305968926087559828020536650140490451704384587355383132600989936708660030214354626966134935756942247997585001506963809843869531542711244771560700471438995976840067937780940239407522981367320828228351641209785189666793672513493462268450492644583232467577418798729834068205965582982316874012364407160102420734067490585439382345950698039741597526773651669519477301869219826159482994054848218587793043810096544878151356440799303024414394502655505951775691794253578815901844107557975876338598704309120213497385012888170016384292821907809788050318462076993211522216313359309485534886028673871633696472003236711658186440677972494725128174683595589923890638154255354625609565024079984788085619622017960044113910096560064251870931851910828889059816007143140276832515146545823844457093215488471262780482104783738799643272667882642593893980724376061568367734704778194257378159032530519590400764272136378511537838597479923198178387454934667430802726865942718898895134666461194968847701786198485833484863543186978019521275519172979007635765964976227018984227563244511522275900454945017141411411672672064604915616898971772401642609129380129444607293558920364558118451540158293723676987577736472506038057153714734577474136115811719566083357977667011046036631574815031937123521343430075948329152505148455727777685055023763789946098787985634278345949950295394773096836226484186567202902623494246304024249815651134398621209813528672549325025834563799308382463540386439856350001723427629246608097990002776950941450280692065847776789332205916295442047933873844125167385031229822552750066721253281089036159105117739177213086112616567624042218933885577419394342368398091038234484677939629761065767752992493429150468756938294179957534437689282259003461420786458805789753432091100135879642591912837037676307609401031728235836454711719769427964414828976217196303828115305451653585860571467205603740338971995919615842151167312591414412134621149827618260567764805810633741425957624794410544208098377525457080922733556510547307838806676873964480810148593443859953872117429232579659762090211055527007391748396328315803904653112671160263298508263604352190355958350718582187485954977700429367386141923637339256063026510506505697246928095016190355897892809857788635137148138529422899024452102598600864350224877687172705753270216398632922324566595323845667293061009309305339817278687209027926094096969486294732183225372188237817218826513349664002970050111486535866291423694034154854762559546262342457377149917299091167501854068722200519282436171523237274681295481416430963776034015800204885379835482138681541072294136565067437123855593408033889955421355494186994670625899094924590189309381571676299827984041589018772903021588792937581418314530782583372488369825617269853934894832270082119602043910503213851521754184943496960994889697022512989838653515166094157169552844053853111556765560064003304907693824670718533714369243233209186188300550309510740662664294265181139921159609525650574568684687743451462468379908568733924404844440070404950347367064612839930041744974645433038844008619615410162516058759905387263006041288989607248751459840225972206392931047856258708962742414576776247632839499409214502242784996296615639688700972960614476569143090553491296953657639745933147454511238827593476037805269140725849089321959931623945356195980458029558909208982655699661296516592464327142615195894574699408804335455603907106719809717602434894391611946922897035156785320085137256826185273347203898673338812842448627524419400726325970485552977067008215265975582620591847990150438247776680297564927334738108380232032547651817134689306722782053640915510481725227138076837868088903087149015318948647581162471823335226298099788925933227505299955838773976339337855523425895745135789804119367727148156125515829735947211378251054902302563335277323517875587375577770283340182805501702621897522394512479859123805131834046662988032449395970175144784540316609387550862139662784231307394508516533826667233826201611488151454332545623745502239191136296753205617289558592343629983892929788003661999317391917984355453294320810580257282785500838708867810065927016385700861155282053951610442454320294689990423462183757142871706021142790666205858636324027927180370712348734898291739202866907273137313003649268889567450038266979986682623041062819620986742051485470755000472214590223082839822748331908967585421627610342579379147609346279457150459368629252605931393086312773607463799789849914151527856721302251069203319550320613253443075275378273491896948010196850978118943886001457536623349131403181287272173959815269896493011112740804276086888439430121876815715125122962301734014602317363930697769732732614466552953240527833442936064852432381352657202212099137339180009421999303797634927336252794620300026413579886377243437924527672346213313583476272708147872149210599221218986268182607291326390579320803368744819218043047149757735920351063733007742265004007615914277650639926172325141372727391807295263950888655014787460254435736321121465045393448869624128609990193269414953480124559782860011161094273718351973892084661709448449229137460281807189686105928383730664024228031480058648808122563497647660196766969929402691339368279865311366659741001496795181481093404126999242670026553900537614675111720160330663814864776185280581830389802005054966828996300578086018654142620558234741242299261950616761828530749646249243933068251565959205375076337829031967167258739213274552673758057414625393407395180650383021701555165293812266009963506000352975351922901936783356640499312673851640689854196069067990013170624495754205079794550724549255516238742822669891196287602871366263666171730500187832431359218157247311538421704755176838239367052277542394887133561885925450935572380823779527966001542839113314633967933067899130677392361153701129454910440292178586270653976947378351671438880571685087791524656542275681232233650540638698074625674709887173567729555934085445765954388640182497699388644664494910275934770839354123798368571086359454394471871964895890000838856493348504501633700704003811053417317831141365743728905974833013125493731391106675296522270454257429337621311557280402025017304050936734061610804685563160980086460133162461353410146553478016151748008532411917625646589045717094367303175928911050908766212431260871128282295030590406856578130417982742531308705021891106780359658332136690978149447941255456151360753650283808607680504202203281903361634739945243659488680494507079908437895938743315719854284618076726812047264422459872176515142064790480184899620817814516236165783391291871789520559035355592384366711725169561853064774031946652079457061913992207892335588941273391935924071581077555023792948186714832434772123702915347957446024203255125291497688435582445068439402011788409863108164568174519254008355160082737883661038428120780778854206075172725272804649104792092366817357078049924049056739788782993071217539881580138086225234618379310751659961723593996799257328993473824410069012347163736608874868695761278879593475319498001186166893723778501109618381151692013511815504646761386037135198025163086372549423586600031074940553648839952582592337645578341916823926871864048727643720781666038753092300622911044892133197741004987189500565775173994940954451911814482838511086453295975236949810349445659704564644855061983505509446282046097513272060634873773464969520965800498257670134687414598434633067334300113188681491190414162322262641921156083492347139521710278661252494553602079342525564728396382106776579378360713861759617949793218295328968871365597341739701647117367795179019410595513519583661653031705137876775932571366601528503900507081024229601985840888085662515356168675358569394867453842885456865018247018706963253509370772074747035939183464820232899467979741811520793614338185570238271152673604984815136155226124025982019133332060894368980073070986337490426819057431715541353321174828493629964253530975006954789470976908689771469953440778385024721572966576619615111854885080041698257856650337303573188702041003258225089643038511088864064974118132999108010065533653457438043738304609084008116589535023222678570926554878817066151207803684698680062880724614179128452943702753645359207347339165789097375241127040830807310830901257725180109260066295663112654528760031197578162636170973630218366146809116076256880854623743557745862115146637694069265282543814808958506379017343443653234184035098072135612258549642742009228789296457431988213454539077773819229372190063004886197829120155414913268112949805927871590033588435239416079985261820507448848935394278265929369338220435352154513758237677469492751004600967707498264109792101712043374709631776236093068489778401345252028690330330353092221176172983265857659137264464080391634637495403725433486142492270173572380534016874765932339684502459879474330478620823482419998256267757044359452864261370321702154961418499284007412400851438187095339163467182910179474608800848886890676765767303467862326970121084666702435725534830783759962390799283949828028956112826253999028289409639449599537644869071525854301878505629700032590778059589585288757836790413210216769027160760617126027887767498849655693426315787956443285339336378406852957723078314358252422998851097259480459982151943885363101725564279450045395465335704527437211086380466988425958840180120037828558203694231885814387263326290839967965449049585136308888795399742580172653978069982914207725313391676278536140720312208868538402996136095110243836526862850088499770441254973850000508994736033743969767741449206595867168477487855570952526407393762490532278401457363094256816922398375388961297534743775329318351165655296581519164510307226409319112767642749897157810342954934232883151008094860310323807629486913035229841241516276791368712834318495042166046070574089513293053435560792193355735932625559099830686951688532252868233934295359439395766313326707866293567583966151961494489356377236437772192108894893771735608865698783310905830716907895009635088007691850061090522525695639782890386257790425061895785913047460532086359204713178772054414213931674632831199967509114806611937138580238986372978340661854996807450500883684305690528130976071017293688181415404730792426633381744308157320056264196934145267086475426097900447364629470603579631591514457722378724680975005491188827905042995414782294862727861812602912417849080959801247027232530676462900245966151226178770171637711339335740758704104864608762285593827361431115078015778568873459639412419771058781428570390899678363413289901422245353312159899092434886608000780484829289340183507839464781714520373403638445745424704670671243186532330012145429888427034763095942504410018506296664290567267409845091526978811401999205577888289865690960152833004624520543626848299880694727857289271796056796409168572986143627422495685455221532135499429321218894919883986783907053413153634967248960832449707697526427368045160031703896525215458209152119449283788476010041902568368001174628889319670017167432031416317257584981230408772193990110431996656019951850705293608242468999982588090833757218902042708646130994828245037061701984575655002662186473068851999276487218212216548289151324591930433154293125532340724191202523711814377961134343726981646326542289786500399953839158694419876714817319769545042183612283002466613839658585938015462122044873765627419808525087708781797868925333131143723242249233489473924480711064362218925817803288876328513155316085647420218466921549945618613298976542756280966763558571259589608994348373333216352323655917709537261060230153390248431219401933238708445970211476891765521070396725870219532596035899531225687146391055867016117356765717970355784302222407566189528906632546587157654684654144319322642398363642523746018423578081246378261502100203127488542823709924981723803351438201648168142479488557835801192719530326868270655158341429995999256593190083785049473851549000268127149383122022701389754286712075584471728617677882536566134086178319304728036686675511505112267075183936525221637145269353451887967695758148732510289149976923616421882602414003100177300084760104921348655160080200151668860531117321868281156397893242409941777326770373433418446557652837439518799135205824274025779283708425328337666756134797678022358775578520813032822445316186718120511471623911262636771150168209924138060578150302370484396877754630639218183707707325536467643382242364658565996991373617538711344717386920286740011018885784167228177914724833125527863786090683912193038704178687404357551568953462620506376633394601961932291175322925327026997142780200270448619386781641349847452127518258939089842229479260442673219855856357051190331654715718774427670223517864427254550349219350151334627879849843952694178829069043578842994825480244383324340890860846355317563303198451208418726413716599876104833830818365264626676246991193102182282782202017384940671906937741139163491117914674130179053837328409399595595759017628375903826040348365900727109536652817865818185404247467321163744152933679555026357196457773755035823247443761594207184806430929953176744214718746392933867806285098863247931860834632543547493483839611505403593507350244689874334123263027592902380509666121964861595460653820038889590907317336174923431671392559973831320358915686858144544271579100941500064142886848906036023498467207425255627479216502438388780946652387759350718730414171870693031561547975693573681118213661277707663429793327495877869682191170480456819552706898838363350789358037720225974843832319999731064613045686593973969849092782270761403123278368897150786077847829886890182066272269765362875726927397561628798036396203707961893351888609380856660249348216030553504690196501897496491006490725307654100735682798470482002565656034222916431082475685577980076598851330030884105504686621737576770941892590015714175549443489138926956566900938090256692288902263863744648060388606900062743027295974424165619507593064400644006812616440454454902772214538980905036437118419971734909930359968559323733888820542971479655132162478941606312371150605737123228954985053340139681046221317361814049372302442889828671215365655020389646060130210237152547060259333661361865670993473016368219491633679231221471419969812136856275966445279813325821674283997640129939831504894824814321414760011546574157674227740907920257873152254268934175100494582107601856421663133165383229297317510829648703102536893824131932315862763347973146782163482983702827045856982184496771241644164804549009085393698157249253509251534116688360247173231825129459478807935336798792768928219507392576912406163258329161999862402991182987508461181995276142311847379120124246205241782907894272252360776319223522828852547918724809428627667782080599871123065354892492596423270849073566967085408636998432972367207799522171805556943491120593268035961037281873120095843459604997786313560116032084005804297868246805787646034927940106264294819002211128664923806247758199986742670785395382429487818227979167185541244074493080524796680420210478611474154172560870263829958871671276716711774038398911417773719300089473623452968704372302834082434032200449374856005439111070875692093641166481834600541256891982860791790480307590761925982917875631944246571535252465894355470492221687559418526037543094868421061029998181866125635727948942629047590264589077446415644880568652335227636011116780981694453475637959549316692250806992193277619480414673727208772796878375236547195221914408507517107597076986580424023107295391198914271495998229229693043656694513505868088355377896172031546817422412912219790284496750261431586046530986363048790908570412641983832132212948499837253232207911575391094598234239093161619792303476516707947681403059463354863960353428130636734564372931830033581660947807605535894061968767470873385853229271571419390526912216980444589580462477318828447847162920646830733467207084194111406599680400049564752290471441757550150005269371794380716728243868706374550567722700503712339547728009612314768532743569332223620827837645920464969418680084994230889483769556556171057163362460362389652745513911302772737879409147538404223273534321035086818058290373528188875632126390952669585547692258168026927372753695750383450711459617059118842591980718914425569954993813704796955714332502559276182922342828081403355690852690480969633052965691655882175109821931929810449066575307039819661523375127792497422360602365574194992768983703949416222517143411075777541222396067241522669404989889902459306985205812784791374692973839464043358683012129454360357388516715672349796796217914544059848338096388802065181803334336586413432292722325941135212496565205749449836035314364331506266581435965808344469308823738419027777662722708303693908310229455761575576608512690716018885156476159702526850512653170656985079601510577439917454242922431034200654634851712664544037295668455139541133335345284561586384026671001041771114502630962618061309937515412498282758624033013059694767467670431662532181401811527178851187961564020328348258474562356097431976494161848916656245928432722160505157378568366768478267738120991065647692159541708796207201719650616707684026813004596125010731311711628118082687969709842727211325800159090841475039739954719054649031804611029214336625654170772221099051081174614939891730136195406595110158705700538333062181856248777061690021212207114332365082287628518426099560621472779991720842510985581756972468813730407191999184743659370148555365351251592197811455413699460601193578554766661229147224891415155957360103223939110136742582465898200927181469473217135151577574634364850409991797169965925781752183172526871391097561336629489218800701383430185556098834587419163910718403529887061517516820109954168475817564053700975072492575796419617656146295875782304684018796373501211385551775791201110757486929088511350540973981804406229312584549856124440274176370492817049219139100250540137363391961858078816377757945103898792240714913223476054024598840567388831425448961464429807816427873639937270599736346085967280660913732673056474377801211640523046745614212356502784835735912572252502818362089540702646468584988509740375766750905136921497120707027436396932979751175931208733138704640182134123472575375821814138365297629637102681893562468504254433024903673536652015741981765998338570657502690430972643465073406168358981282914774707560031374414586004796109948172069746346815766009867873740368915426398138564624875976595526150383105296736607210475223645021387561965023523185486135148282893769607975070076306948213853071978003948064481413075278855761646026080101570888135318297014751408216005211225975413497175226281710446247236790718645186506111003078335784718679351117219529066473583931674643079276417937967270563739734955623792326016079611012413502412279285690076480927312978775099215011585718288295358576697301149983315933326056304894361174004513002031991874300793531967011905880187924917431887319739100249294531837481767874155015409215339825741133649320832741143428919926395308922082202444976253526190635701599284502464469015251949156638899713109448125559097551776643502497178393766981932981918302422011245112853030761506988728622658709711502071747938695989097455551897850040750280894702172473466369094647732962610907040309449685356083207203483678687808063906945368847358887291834846583973205862668128283885473662159734595643307302982755229107348195024910867233985308979190738176624276663180459518716814346846780443362581688268006645020679477495796346357711257657843905808278069071500293248182957959488903121108579088868379803814554867471734018138529542829101977286513091501713338605974669771942032028553086950775704391756783347892258804837209345128835791317282585353449497244377585474260656634272136122073970942688582058521677320085862428466482135340172622284337860272540196962077405737548642719488500773974225988254338613234525074984417817978664606972474062438456106962410057481767230622957683089619236839835400850327436400058508355383578755547041032416515651878477205064883281393853052465644724211134112149822713369842211375506843479964733893232132764452489428243078733871678635908355186142053618294850203438226881981112058594503199822218315953678327582201054571456411645899580133480968000073076192662053440715590965976023258544609568499642009886159197591380429470679039905876090205101250811076022249483161475164874390576606025768143284772265519245861329354985434147510867926956929778686274578976299696687519783994388344715042555618478000893814958691925110781934688073311389184705885649786711123428613328314170111205715393090393457115826064679839859649169666834611284941882119520838221308255141046916440957680344898478435087407946821665707620889991775692302610629110602846565090731184559305471550544467546710235852474163166113618141609069535709447386788645590284957510720515520067168846017373276344330255720654560969468033762446531044751310815701027480581251836653966223102395601563015684021763253905393562349510348297133945028792883931396894808251275674321135450975771118067247287723321532723458749419661182421739589486790834321951596182244235588424869860455393999096307992138916063801853241704240261984050783118137323725116149892217289869429270055162903790721108145265131614083394981445138485482549475727928874444422726380235103583623456485787127758626137134767580248291836105813749661883611895109310595281278605715076718773139692701937480488433264560175790289391752056907557802275808996625545966915049411995247562645953324395534845956754061586610776920739078814568842057788667809984181707653548035632218371051259074395205732304747446791935386813913693292395991449551660169808451156846566327162223105341175589775205068565525105489378728413684772755453755368658929293985661152794315057004483642027394180667204606220540540972431152089893952096336725816893063178115831099718209699281539553545560509747500155393205179256845481554296482873036783775641307193470081396568158358835607187592714748106955765601494628430092764635336768157660167754081997644164899527025295875431664350901586674726735705090467479343093119011256167921310584808916780039866445746101964632121716845940452124720633546107398320087616367778014936463944829846921270132517961892006792299283981093078878333549540732757267117064226576536277077376024112114359433650226663304213824390739602629700865617561711872786321418061890382340238008005737404352509457811002910919134942948900916636923829307708234720909429416475536972747476333895979402572348868960682411327663272430115884233306673389462852544559458721369789071420654705442294719255849012953794246171537628923626248362671035657087343192442407764612449719261751499491591477975508999213274634886774710746553560974615502302529220683945549996021769000007086062463620763560589882342797021809215770535843112392676847934296713195539954890437014915462659769306790476434534294056319922607850250504751705188065467333754754327261448821284739515708559401313648003967007044989493297858281812032044071779861645397466662081294509626907579770823124361000117878502736281675070277662453551228429024025995029494697279839680174557305452368836530567548747749278223783624828970905086563697269945622806027417389010130871094225529389032020953213050004869890784302040920534612632383446851774536758478169466297177589657411017557825624333936830616996875950546485784117855952014572261171230905283784915844247603920913798897572697997053132947575700442720831827657579674607532236500448769792634312972085581910056680401481628085387232928888785811352828888318922885232567642700298709131702813452895147781370814049147409458772979321522703298643809233535425567381733317787649580826936528424598007423430829164707527351076439722707223864727341022959170304732207427119341811092930600180606028203348762421862806027248134205472742667099293269800835824113691777477524207153249986379288464972382334975083730705491239897801439820955929777406866348511037208088872854449391965415149511623805612629393336030597777100498085593603815172334171794480907417722425816473900004596159962520520663780226751996435572447495438561273724880611539909845017292632196342695787972502440133055804479640833269316248030437341910167581338907289265298446657689242970360695806430936524929071537785424064109604506253881156472556510524386988650671492035412765473745069329877736147066741608985830439213202701945117501463365893104120960406100949275707381831615939514911734248131765855669268192649420510856645911826239849548025229328044180114286431250763647502003144000335977143551478286407250816298874272053746409722945194824760944109790739126551775779413871196695778761198756328108634292078833462890748612899626337609580948226130758733087989494797629912563386093090272482952640688033387499086281536561752803179738130504650433800408998702754535331580224784500795438521128930983487925586645124965085973965254518867714349909577107178657664772644974723631449926613789716845169645423508922663115005357417382324778192229057365092781533513987434549728832566266690607857328899429931435547160139761126107531367903019665451792154951354252373949960269043346591624759261245699612936196617463145954156508424216984250647173451241474403272560570094887442666286797189999595108661623036487696110459579425579439131924655677001360575050734620326181582638236447269141913716304166489533068372471323232923085845444133067909473746938367990507991286721036698197327572451366512692172180034326565215951066886557553548273201597148595718495320889400593167202443491176514147644893036719009961921690590081939970408007814765766149200184436342982291604802965049535859486505081765594964781731843768640873991270562916527490808298675344943930082488977463451305255745749934084471862689917695778288311289670404189985038899546731437497077187937052348189892786576046924349238247586526555974470409985868577609094150385226921374516481269560747171364857954848454375691950266812927475753421236025263049224099887726480737503358666564014573142772438311372391344667705956243891017738296519972021250100251975302727370481751284152288294620072156559900952685441344749455525055708846883582995824900485935350523664158808326003683924796643051606299760214520065840653568764681089218191708920673532464563932084589873075014600107011120175785454578535849900824860069397434034062927079446866708546893975949420482579879243846130966831665103455465704188839111674149544578160399459400492873894916705097866383272906578471264093576581644400087956380820094781427425748977567833829842301496423907935215077703919412480868966877628712328713031535355625568121330760947454414547164177256553969703169884740304209916614676818156575414920376825520913140848411198984226541631875985546425608081213762582626357821394537358644636574170686402535017510900560276049954879394309968684471253872070328652273903795370318384183435289620223917773909855115260276265718100879433100008103266599248543236386750324906127561835705070382189823794066041080770432284839009682721163562075159959118704719518612335885559489477418839578137595622614884127425633075552966977792535539522373062262049063209006514224191101728309207074729706038871358906601563478342643586539341180210269367150894329737546084102920990036986418436334046307118736030467563467680375618264590333683997608183298607406518787965590681833232934133705681205178359631474825655608183673331861537555553716140847685248045692004954345536220238283480789435525274837828504531033181581160464721435948911380603316857963093517462538036448857282681768080000815971766324219108823579897782794640494921075001665159700140422544358599819566539053405882768693865453696351518801257514939874788558554163978417626665764859726754222653548943366382539355978645696865282018598056339543412187384031152802387602557199097701252667942831167131287392111964582432199387832936222360765576146931444722441482457984157589169235481031136335295990410006090631475657823785583113100768690686218080771502082003865910862779019657907824658436178205465847246083631369491989485292378111773440419260020398130512979347237796119270057989176569235062743588516984846664497536561214574032294830442441883447012771448708667342087430801025837180850774882980176828140120440214921253254944268597106475826781278500107797731759392190732679496861244898058891376550132276415078170915321476927713355496904000551348853200964222255153891470822063851636200930833860043314695271566876983047167176958532883800205843770055677440441252515082551634874055156498090554955517304368831892911824121853773700590673045393525355136451963055750458894195717642075491801360780947062645317604938313650521931666562987953626054211606348784798450348416982016109641258146715234791737955086901003479238130661502723474545710087598664577073777822852903475274525830049814067073397977937986805145984805078385462700833646983032385980720544523258972328868668720431455910655614018909321628670247171085294505018857602143647239344193570458623496806235410102401443733233940258225441950808794663578532254666025191591987433470420384564290495248983273617314838997472320760066208365298241916616940044235314913418310008520703040577909376970503619414945064624725806394215233416079777471583192969480350182573923227376258807632034628574423375986360552134235472577620156824746077489788129535674115282809716453188718425823960123219289298514119909337464101677770112882289946674111274763272847733278236071567865299430460976147283720700218585362816320649679928062091785595150031568668128234572633188219047899407972081818825261453869182813372933635615467570545671096348092759131944910718857793173714080308757182707086310073717143250767942455237127081513216824689404013920421606216421416804060820326904744795884661871842816742305406902333942050969281154525788400175798618553440982009789338262903276566733631462232624918080338858123829304809754450399489742538428315280748485508284961764204740724701560253550975461186629306097583939451278965581720466204907200168537811176793001777186094048989202829747627841137729627416264405373946541439799184364552895837015866152679702758455858707545743998932213029591937504459300104668834756511426466885582424674228887039268331278340502234331308056553783623766727027560093880639389011498480159226817474647190403537574908923645926320757002426986612245875216665842640165498273888567949464986141555559243570154704575952709830162829291601688439520426200552505457511285312627747672866053165530820881302312560004839586156061852859202745559420653550400948213597745361698363800248653548480327979167418541079654394449628868095924941724972853851067755752272517169654670045841231243763517475180078957129202383064896656735601799649127490917667439337037411636222984441551777030641965684947178135219474680757220469014090591869989146098172788621894068152344067386905374065342882399240112951877216487279057773700103741216291149542796946784310732739882191989710580185900631108390634544565501437441046223144371448706928717469684688024583921462177175844096536655023503072394906221695107724817454219911038019069540505600178500385895540437421729943406041226855049611001249053393020773618462288315336812417979797777958570018493297145938571566664182183323493070186541240488600301368629468465724942480444067185719435570198645198824297648589995809694066679327178908211772492570210827766414296096901213051798102433824477241991423626280577017930768162796435699965687670363319136662635455139768424682572055110603727867868065898170392846326268489050427355790355353440854963798095348291533258472860364863858249050853403168279180622900036632344106412280823411501122372460969697655419472225455474276177998145361231041753680000437208246347962696917634457447675833199661918448566171859434823174839401249213598311024869242436221782107109197464415039945479276219475796522344638091559532260653241051477343899592812731072234484539185898338034388492729382914605356693539386260812125620000143470471989603113242893072457157635852526808583484387370527929823661033253361345416921463015614831787241871962702695635734560022544760902672532460235092802835662334947579122954834632175249518296528722485846017209599492361087652271277614469438776582311845449330882061334315026357948297997062060297714733866970708293170439276306543662406007317157280784459943539754540507203614875961819519232420069557721394992191363471713220690861781082081965013508458179420889277116271180280215168357266568900393992273603001643549856833139844532070859346118641746509994808424088105595361327790704957270127924943729323728329050012491997262283653493968565417860669224925683985368730545053872716916812527117865806754797526763679072588225145115730546978459246808355509636421034343028110154476573349002960792242560088133525905067337490137165076337070452920640530620869320866340051707538972577129017669501415375049398044582327156830946304674517654667534472135994312957676210255693136542978424931760718162624491270546523404951628202068697666951387258731016539827204586719075540298146779900242085502952697985901727885395104776122893935846865537567031728624399870051963866466191973386380702581406871157600206604898270350668000494438883202314202224992392569343932517883414674969828795818725422393769828947830879760302639260397976975428123041653274152349791721678829506917356786175080808400661265894372703207294853966629079026992766457406665942922357381463643507763923035280248321775273384307517228997274992621401446318840321966721735960310050916230568058176523049711008909250754106831525785378285257793478619353197958551563944748248672710098465813408143129932401490077374982354831312684459052423387550652473754013380545078047340340995611300652895221486313083788367155853750382815446388791288753711338238259755162020660006178085693424574626574953297505764029804167711258169438043339852559514909290025737599213065389713750198141558420985472676530877931356964728385733662054960529380999638991875371751586352923574347315740144853487650800832489291994274571262152117406496969013463331445100345104140134338796319715710105470599265561879589532309746312566775808715355142789135287803276222710697985921025069036980197308219806443800591515963234621235136983660660772401320754367399169229903689527568953037211546401050310615562951055992424907347964778735404783505685731804851652908473063532952671446300677917607319347472958406452098989580778052498608829281021097823279930087607262815335487189160864783895105215130666807142757844623981966928840346643601801178878744459227101231751115348314080224927281855884029852273563491261370537371820505773332318078964665972321462360081851012569845175136470840386663397717483022471261021483314781188010097912155341197097937450339843838702791080540112732499400102023197431969119488861042559782769068263553032108550630104619858621798498566445025770348744952202342879706471425085143992878354345855798726203831807748278484850349568869503081221587351353506406218276787900671691797400522460002017582507563854073022994623102442664417512985669214239704266285363975732535926774660311396387074073885058933908965230387059099414568135595339666419527185117965782294540636570092012216931308478023439830011375084859132751369665074745802114252620154034984481328527861366142702054695066557518882984153923983643034609875393375229203004126942887540703013644134873154716090930591221972009352783427419631949345391106581350788131910181807198735430396233267380844418465531297857844048150172428145175602578069442829050888475294271729666546196629804357264929945579493714118063859773832279901949155974157740074365665325314967931014982384491435991208055354853296566061158370985370795414404276618602868301214344407957451275756897272452355643979748560202129523767556579761807048469070779053458392938064253839866120088169232535642303367310962264760862401296225000147959626098578879314877027381706793149883514940132950623528340281577539696741535241178131450994749087481351971899256495671130931832242220202689610177877915279012905721224132446365438074510242619179295443813790714042713618065590303904837049201625786721357349797279391049669387855263845893303900581891726132495229567639701123627854922914809977170164652761096371278552376590154436535114387656088818883171121506185535168299229713145571277777666730811993244179823371882702833328286607835021826653078968298700550345665580139560757332338504079368633089001821918843521175316971367679003455864082651539890408935330919271593298654700729083958876979394051976799948732970322206997138019198911466728123632253151741438347904518020281759230230320068785274373433951521034590358279603492611355920356860156332168276156957203650395814857442377887750095490264158400474858039099694239853608380347950147659959605192831940331868170351735582512149670968010079111204847507422873261077821305813884659208836081315695847157363573895109762645074168471783964217422115123334797427526450758899866058770668591820660960629004147347012740301261289334996438207948320177493763243745519790628607858551215634960867757009900519266884342082762933776427484574510847316125972625055156576456497535550151387676327043496869810835581635638938307655530117776636782835962211831392140989050074974486488342418777935000554831139241107546760459433362455199645093640312057897662413927502253822021401189340600044248990158835318890557690932710937857493249417805157629660982480651762634293358964856197799116333124397516476899829095895156007371660146634848812515788745111066630158871235391389425703932515590071173165643465867937550170073168550830324084899315654425883873409951273427945368086932292796660980612846668613499786704575767587169225734744999417864595400767977731675817845074848026640153479049730396043682643084210260334700040898362074793950471620037039606348708385435054759830899045240887439323071440614713755233105523498006976329177527753289155592057466958119606241051547625318686515113115570769757730128631086698937172977019515295223377086183000960587296922556442180809668695687706720532982135710919867631802530885227799692014217634392370584225092344901286153939716373675525312038256794189879370130014639401309706916601444205970116892566029448970466507077133353084635537255653956091760179739832782416160132834982315985320313361273055937650401321941894802651135926298801595844883263847839281866811964829145900916771280951766272300468730003267041864231685497429155873564628319408354774332735216799042394746598959284573631245003219152977494165116218466128089238734743108103296095629084846053425348225414649041513473405282593976898831559791066263103173456747341422845754903727058471964386247625878239978823457658095080467558850450730244074307814515621750024656208279849649266973037955559139822333872918024012540186992417193746310252831381180866726942906351224545020069589715364680477250288904902774085256370829940673198384768229288131333463270438717171025927437134264210985160297552738025367479950733387376996890171034300091900612292963491841678118816487718504846469825310801574308902261083415595941000416584870568811163873377019363126304711121248904149054436482383808079752726610481481926817724559664342532779743593188757009295952190553828176935798357449182343461017622698150409581049277582225118186531529881900396664231050713472419685784274436070803976163734368569090207675418703276562610481290839586160871339014940731722432722921389867959427712288663266821505083823704648440621366435560835900329510843249686687483968616339780834455294052910675662410288052671161468563604609691961062448987594373469867200472573866778664934991837943216346638543394675647108531891508584869725296531080255380207199432992207452472800154877093061079703246995271361940295125229136570726219413864832612359106270483921137089707180454547862427308360814569668975183609004860276713262555294894576698071220311448519798610202604943366427530719697052977250183517735753579413881532747273913950755432825755292483098939944281972482358008167663544998813601824914466656804685409374848289754872133371277373613417896247469363757654574389896232869893640388184238035039342144397654043371561790933241390524927137121271365400202895398485991574663831025287995781430508449454683360574334257501501082203240657628191521970073722398896356755313496116877589032365132696881887299232454214923483966420425649922186861229122382186571168286130585355127453405778103438712928338720996456785376441854793804203571419064911235375099649427119437779404411956500450117396206203697970632374338069028608892827093780055919000071272632576179768231246250300188132281300575119865194499479944186804171387271939242268104001232728506328885310315655078526864195393847153901334523318680612801882990685613642261967562852191898336782996967134961302051801509140151695918012867109680387597310197315053299327949922154143400229082569815957777542612231285641302240575980081080509784387630283452447677646286612650506212976720655641095154104047484221770823868747967897749001270597023338195361464023573627285364175193892867065037459686318491361694001946045871068294437750292999671961796625053564674070541321718416919201553841820793760086982843512800000787438490748976042111731230594696044686151376308650983775590966027060837047464011826822680806200555635277238734085902310633855602597478470608768885944588027528161154051059149205904757923047121995644096008237992920301631406435319329339682339727529069713417102343300678755022069062068212759997506522450809176510838123361974184852139057680966421038357889547394200187709381145103484317757671291403761743564986166555586041844600255649034407795116457729740916878048532084689867666229135672199460259114902640771684942005267220231613726494084371758418042666453639268324294582818627166709156180898806122760794840916489712444097710441285542290036344941213282870841658886687816693394615230575763695317392072622775813382940988595954256964089766914022243647179966993680708195679696788432502309617927342664460090729637229440349076789495466254877658280325420619054589908487599918557578972139259161650522814110866881588218732882116242490119882258401181215475700429038928979775605552543175377240963210191784280982756835964027089907388778909150454474480130556750273563828363141453159612205074553657772886544862705104020715986327798497904485408478468420427132264358001269025825536569150310061246154736172652261895992929546056452737819678694026197122651207235921333726593055492417077341298422733673301677277045515704538675429572973005528886057456829486247526830175649223108488814942140425053742364402922412394674845358424450515980873308345983005829534558003441144933119635611519456078049161421188302605543987144243443923222845936096347897897417459026285765951047710393200597742085543932023434101188445823614610724342797122201926641198763256312924987571980601294686928482161024414775723741900020416965239152811281431769073821292538343214823554135540336391679366675133824899239748404568799785531964036995403008918448530808924426126762429468572016440911946584674704302777948656649824026527177980384745361568146602298866387481476367617281888989796086993131039550680193135246289401563611000601484932396101879894347891657361132142774029889732575290970082118087807742748644871565959827429519839304802618934088567184478028748090738094135779268777742159356411454122997854651993621704319448783048851638698873934188153543761753460624974063433330663135123407127727343209763488470624815725988175421555023282791273131938795267624198351534382971397200765525340999576266326906386500408015694832804501202385047304421297798537309625105761318051566230919938801745830359520071711654288956910529573070338181022640719242158975280064121058053854657247198564421121395992367044352647509146091958691090944395144832068122289243777844593423051836122765659010267692498046297200495797783329923563929728930730100397547762716637924585470306723084013882391115552615440189917622352608128275446309828867516915238220274520319932374210767876685702914047709952136587540885227473415903204004781636240658648675396431006885293879893064586653877356985466328827594902780734035781231628884923147199670987068775087645578622769043297533704569794588746727878555276787388714143698892270905579186009660603401034037778226200833536452220926304645404310282608088480255726853850349604839715047407167755743723911471694526611980120966664124365476565672309672283311209454131850364724323177496944409965385742789163801144430268287623060867109408792939675798722539558704227807375774344817815606555945221191018374633395400026993901562189098064654632680683763115500405733662373439316911836745698068626546844508112586310138187442484728188677972768155624731074269245168650833726255298425763751583812616286260387809118923975322237882474164446590403877028380405646402718144844723742401331133775596269503452949112255958348755321395672440816077480770606267280556706627663577472824345546863157212898225878481660160748801870020495607943833611962125253256708214690600998861244785389740915108288527600919454345559687119732836743791562934001735774255950509667594921143832041935096278525824208000135736987993706564571448500387127093068215525910462171193203853746252989049404582546766777372506324088673030447172334081323138219674833618930788877852845697893449801894702542913708667107033264292916253822568291108490896355092180551438107327349696117646970871653523201190095240015568999181522311881261402429031051406285726387161223409771929710633266655443363188267693246497996113550904897579155799723194481606430392823152545243312261730342736568314469291891353620952291403128902011191827129713256482036412922790639096340096442243078872186542628570392271475492812426540392378925189845354142141438435410457508953806121238486438612633591870890567569073191014156879631681492796504194328191789732782365287692042320652372083038488051386046078551753701968407393465493790888749377894459741586521486566038268505674914789236618266020844422181456026246785004871860683985599122870263022221848982942764362168502421662772247468922272144653215843555274674975296865675139961469407787871602338357763465706456900024577684054255383293084867386062428708634638621006540475815198111777767018404596508046882309306881488763587578330582975277750490458397047199748851164239838617749675340629201256096370442818784633343784547279496631188788228190239146176621741897475413671200035672152534289389958289477154083928253740756336816353123044963858978400018725118297989004245438865046003981479193478965602092524219112256482922647646198352842654714163814228781702527228990461305758134356528489134997540348371013674942207801064955201722631485947193606253668972179915649676715125095335686372649394046286125678396342653410087175432233033165896862903441314069225921827127563857668035218861886211512341024409093648462700015238184797368015842135530352536852754842128031264357496871130474173984870057413761817568620244768387382160819392038560233603985214301728316343427319596465269921244773541907582700698509906658998683411192117779651964560031923204067691939060922854525506841448359308805196378006791419768385429712712604186353037930522110631560830503488720924817077875083390677101633803127644499274608894481719906551137700575761775672280634869137647528376418693303414112478297995094306516910251760173152436154460832384203855751858946163773149649132730797835741782960317635443543081585097684256268002002354858866217244880829719736515049368263777290281354248867625900806942932774251926326299975160456487673974486828828254828576744174740128213530290572295300915753474452989644713209386648608429569188065200366287663214680376595347393672946322454789627754289507719178637843554687958090676705351037675333968247805692646220545342954492502193239865122457590904434706864841532958635823218119321980755249151306236072434942517922052348500426539395942496682420008044184000052830519520167103313651597387891003692895983865203641643337131683928631877267114153111256927120755578351431010186826514746504695257719528119285357850599942670779589810079043779492531786916819825859793533307967599394452704036051173705345197510131231947766578096301406688265835763635066195168117932680593679841608510862536151735555532109787733704890339182635838728399874971076300709767193306643895787541942519943044947514237380029489079546014888504900336871248933445834239494071718405527126147855068130225364181540054805071765139863811868125444342608761976458960776126832202174666038038136635074649767492492348127708437071111446513909352627645775220580392817837502774267169707026030298770964012186866093135530434215881439349806826006722683788268251978172372002656980209717122574387712409293862268947636932968374085301818488294523084708456432987803989189684267565437553828976151625525585599433852491210394206180386153540054587153546262918198168116616769236760575369084630619212797644224636292854327344979206495621689611090953104138093398085728499558660122225165656405353613800320307761162357630506733161094598249708050913675162206542090184959656500833885922473648388880966459883617298292353723169779088111693872706831497326094898698471257528992511965448185621443010459781662958173980245752131871797326114398349097368588930290991395780161775980331401627290392599230284455577107770778102876213733502697236594247786618620368571847000432735316135906661889773691588105296310256338560546416153210308970314604668677487895650206993897233171837331688060728156689252343236006894725571861868204157702215823060620862855902805917749632774877350813528977553215323398221616289513359542698396600178793087808707006586011328857558249151421592160470942855555521520325252547466604057103146420907499087957605649199221208293135176990025420588129499582308275328957212130532835486924853662454256399689192867341980076267433761928059637622726314683433638962677081705725677112582659414686127165287961776795042676411997098876236938305638856896879136352916949451195415397696550211469352382634761895575773974625415036537975796972052453394704723754397416031989537690285827210357969024261810661311979383546185026765300176171192181812066821236504362967138679142626982985351866819187537244402945887232621634823213305898634497254013702455203202141385418373316040987283200219003921596514718178492988950502682325384003725911788805526404751591565346816879535099158496035235203915478419420547093987981652719506034154034440244480992964486654408471678663420623717256179617579336185173608971269413112998564238570221673810163183681444659332378213475888987663677719635061303861359916338078675171324823857214127938161523391981203776800068609871870164454786767166170437006488135885448693544274519190430983521040330968151226232893724009086594620243775148884444502786192521114114798334189368535553277693753488150056747369581136193117991848717195172825042091757654396306638492961254729843584874432980476296633251050448081242083498440979430621587539786264411479093414539222611122205377605638214877911963388369458011657383179205029638754282335259965649914107584211925572901956778880662243876681227475353129563238810076595817961741363056911756656154995463022727561316846406505452838312961068499516931221695079375285041724872148126351033878094292145083232471345429647588463504197134903099306747789270328535220587905931738126501039473185361290992307270461143243063433769690469536327750906348202659721132093120466324668888443655225913298759727261047645477502884504849794529301246320824520914752934351636807759945280702455793178934727823513149822387022956756469388619280634745879588175268007365035074013457249360232412611422497134542340183818025812699880164243022774796180277040458252607842206986124408449350154093200671616326718030384864441475788494988493453588758769387230947425230890718222090365131249795950286645279453217234394563917880376454035242497225793775586072891165062590657993475659828349643475832551862456879852917852997745981868300195411614973989419411641843752266280776803516475274926288365205682968451532213479516387156819000247391992886007920125132413097934273310937354861235739028615623861786638851250112441096572659043068549214820957941099372949371702843061161482758213120057036459932984563371969346979005552748851330737148827313959493375136456544053984459404358658858358533828201044437633558747224316503855299853434078381296419786744401162643245934918650328225647966031502287590122171758219233579201321631586158216934862028448646276589753074010420187359215525805745662500024391954718148498074622670610844104399034060460429114926497911086215527898994562458100412092944023964516588491520206753434157010952706781619730997918192337010376862991101403320164206789208954008616018643321264607851863752176184275957204648457818702869127471418032162072873742882357849703885993991865413896089627658788923929043073335205462080352879238285927771081270605926369549044411165943990673140273425150907275688304517585052487848820340368681561417553581912406504307012079226980663197097374350558493010681920278292922758744399837519674253217323816738357451841298506941011419713548171584332403609906343108643714141767459302558072933134228164647798680440068109038864708295130946484118015454162550997403625350670944356924479407032306511852671073127142726367411622646325721301978736399943189919127118720859797896294760794734440812796625625252751853872291930669995102664756319184679047192676486837472973634303816532855961772116978506904970550401521666215897150828330091009663575717226560385478402793814521818161754695436095675188210251146966516092700591347771475644707909496803207783861184106987664614167358126116679357069394492860270752082128097720429232884207718641234841131734321545850098612105180457356704938161322148675458682878816133129584417469778639981201809847074477992723616436643054223344785156550459690521605048996807748845164289540749774870135400232583818033687256619109556012554168779120763623262913891196574588534591726481544088442973689748939363945103984323316603304544851139485366018151830584817422624441684634004575361663703019157290947142703746609982205924264849361851762860759740013705212498066555277966220363705213540578270456280105839417737784488199118592952454602750613469677839271750462127103182261834088379421377800851026861442768943625574268213357714290854780775787769521134347325041819815156594080965768205642236967029493559131393072414927064744911397291695055981905912929415813782332531947031404486968270496134122989650129622624089014152450444490386062476865234827396811300751226395707971142857385975421372991345830637407206448735317124897222314345819337568213563106054246435771944938164400968999856046411509546620124800056939706351796136246062594999956256179533987010810985688260752746702768349072826755560485255650535187557518887582584143131153212683050791513412752769290511867270421398042319783754782494012623623648976846448142292832780360534422979785006289574960744561699447725709800108763947300957685641075594433757642134666735666429896760841770206639544568637705839836920149291031672126129101940382103656397693638403373940899219482617064559605155106498422684201910342839044931978137885625628092289724259209507710889003484907441394931674681149575794924189292287933621544281825582060069558755508278465321647144489571301516266850889508945550905998089185976233920966647762118732446018456622289728135239822658398292911926881120378594415852323256429768751547600100102790089962542461328559871318358721752879986531513425014832823536528720996072765306800688904373197907478351766912011327837361952419563568387643795601055940403343080200439019723686675875977025850212739879258939827270394103591567461691524697665310693747473326125835561572705636075867256992603564113157921868224866964511159626734852516546581039368652657953230314575017794408526217345222135119525505510454293168641397794506189849491206503437972645701987587063276932536536379225108273978811603803890400487380574095933637673063115641369123050716923157656558410638987405120810281859182802198983090045448800619968536208329271556030683349056934948933977612873386724776967278577844829234383963839425216445485349315036875800603450162188923186890162627776941208601347497585019552004448128545477150865520316989269751547175847101023900633643823526880510130979145414780037253161634177000007976014862088604554565027088443024771058014254455218620852105502641032399462399465861503920875282661550703197531651497800078823415442546662893291381613403528409292520279307313079530703261567094045024798974880366903729292622677437897073701126431488233326430111798608640789939928256375907205259763361457665106424117667389992414694741184163769570904853137565527583618516795416920534458770795818484032253169812101757884451806648912612503018990435547786696467395411848620118216083095051294144815607378235559895282307238638598764192019865168903276678199938247952167873635677443138638388813986761367851560587238152636420329215860456624941804276497856484164908398116853165919704621835456730247434388489831709773502849583733756817447171160979157223278438121742412855257911276014588275421588947165646324944255859849496112907871792626332612934246819519454912414428581535579106172599855009926466553101082776447124593122579550959828806798089778133105236002612745294385037576436396206800277600315867870233865754521659238737695495553679215630921969978846527538118468182841137588968623933613863634427043288552305657567026396673311282776638207948439181995118955579555568501264347838336490296560743103232572390128472089374957197063307277895438246404366405258739395282957750733924613307322371467326368252014311360873515456770477178754381134283401625654690943671958464286241832945446436784204269096428783311669253323753874720023669650560263462804291900551297122218577695729128175181437722404222961195859516428045681718988786900507090113822369890041216077278224448761286556524318808946688433257638468976106999048675365306467112693239246535047530116418733148359815434246028697725561647677340297322460460174685188477513805760181306955519239502434410516729551961264566595791220432161277097113315397306426817877641697874075923972166537133102682737233772414486816205376984996543212838223838211654975237803936723382987687745131972092442301478095622612078679166334021202200068348576433986265805340759402982765684127011445923991224954983723786143623606823576397191799524624663476769446321820338742715724818602650044539180381432808235256243715681099762175294253090353900264488659390690587407553248231510197707633487100294271818652741825674946477431656986151127857941454157870902635423554544278868668384076170325782627740342587574580587052619198999286804472518698394385276820219182006459895224815642395207745302609545263469375368730196324115375528255882576777400863411743911238624363192103508485345600323750254318464901626506690474536164417115585758576984195386640572443126941892372569305397630593808917120622138124114198098653217656286073884647871741426248815738951707352952480066083232595435559500964716728258871181334896739978087927879867565506644189921747971616895444074119694605415021381152656027459023510696184723061455206184704521067090466794886740498143604580033312411692096195659371829447836184703279498797525968543497773348186715423452366366321521300762319866404551768042189508697944824003307958287659100399371579112119363558454905535745166065133338730691017487135408350435271427883602457873134540789241642597030433925106862355568886618144549624612384936065709177941544962863294413473545028866138526900550590520493196751099146250582455716324665168115492739410180543450306496921674034271227403472848437668173909544512414520837950510327712851901358029392377099582961106209696664238389233049554847378418309557767095254607716557676849245039662602464712871581703653060583100074834347616070339919984185205470854830683106777533577365987534906704992254502030640151257276945977573888467823350214649421762545879571885290146909453881301827632105056701279802627685517038739755414870493783433414151159633004732407713369042252417477984692433272289526222645743752937406500585203503486277974620515203026861814772370785563847005330110700814704181023893965611518158502814011597112579174870855738062441781714811125295344894283753985013451575553121966458261834398614237265217360314428649436414936857400104310762556802248729418450220034305207746557606812479279840524626364401095845173450386263627411222298349555929121753461376697198170056982585151984980038742157678090869716726795008714568359496234772512350481234476989793431963270528096704622981972861617189802487254418692710700538034941212636792065486241194812636848599145101651696049500445180910701820554684675646977610594002935305268944104924072579129257662838157890288027483361807509380758765456711004839261074605282095909918057365748264478416593439057218854785618962737437677897291436822991832441906840663476537356703155891751180951578943477782886709501098679881253949412536304096546584954721285323067182776880182980825124719005017195167445494014192335006801177020440168894392375491886805424605202451868244980638252888899029954659947736330710634522415248671031965759908718607366944623871443218514459879059772711281939596106890084909093464082803156822577701507708902985512742300729412648154232409073251008000293859159836482788617694354424530985158408161947464084027977442214397918926318692411134231205382355041101930261233068186743373343958561012163530167274964423396887946827009668359962324104159721118910068012486418693406091982504488651877362520933552534642326164325262224060027700321995379234253427684491381398001398744653056834406515425240824342474869183687400939456535632882131698062148188046487082028203439571848705756209248703839234888500557974941687222380459581093008612400428373006417522139281896804134787480972564147246799332213646883385438980689607590980617500655805329902733444566148032882262862528499780447553396159231535288875107075230503482781273998762831873174614275682184144318042532187915328586943618215831723987410893056669998001565164330157651438116296220511300173380996849243714479033738309728538741752867250479795879755500761109484546366910036210457875088782943239163804752652421149394452401644682696871609587567874122366722736729672145007557527341394693791647818607369531136026606405386908595508091272386799303400909728875595698748746604744285063035591297222387225662976919405106217084053114709953263926092808993434479615155223399934810513691399098402773935979584012321696843963406189947374268444465590229458463662407836103137440990165160704076141588581305475879242895304999050302226581113322669988631978741354428384314919394985655798983815532280919751515979644061016665653384147446631450430320780231791250787357680276920344452933478809661643978064622960857007848327529141386304045120067927823657803630617703296596953905007969891982911264467750047441731485423585278821414590406740093041764071075321704009988331092201251484021155509192607687935001846185097196478197343567365676655506427135112778516775166454914913121225683756827241205949600711552996149637309367074802073286323964599596417491176890334837697721306462906224385627322433702254908342296529602250849014061385193939549842082182866195934283134568664643621521488767610627604296896639944931564439788387627941331316069241373684654415990042869954204824641327587340890570862579242932738695518296393152580784076206819956025411457302916228170218988304995231891860296072353991748372417874268534347662647222017289426549139404778156174872271449710058435970364227156953391803993369310260297306775994313040958604316854975686956482278638412188705278177965056802287849425853186054644552551857656542126727719966309294132102881380306598597944302025359776673813299023843533563015266766419666767719486345460840838019301919717455468432544491916738997761934743058993758690664156395422382227152286932312386558172286825761426292856795431736750421505048196223987655227368762906495888416396859701599801142534908490569403287161726064589292278599610793133806224906662977858121022928122037571037469181647639261171884264503588763446347488500381215670509186969074827673726832497036603833719600764579243521934610062704828080402080421665687180868557784952182044254149437819767689564706371508845306556319155580022955846094924655601186020691756271920149312804636880398684040173939594217252885230728587712268252896342891466398656775250472849587408592182682699880219906608790314744546328437057574735910142699993116931768595875509386971778340884447861344228207391750695113954214858349677326587142169839306890455715391906895726728687188752210199004820076196910768868692348766907544230528811320436344179620377164977191527081252631404296702353123462627571782601593603730181366383791314899824533750604871415276428557258765956550586200332545040083702102687367478423950034171745502103758881868666306322565977164068214273876310887759098447488397137684440693334864333061466224336659304817037823325280454328913754812414266226280459310577053798777613125440422150870963594296361638570084025063300698393773723330304568040488743432197797011682998206225614945235483060842895786984762794759488860720647815531128942526774832366048478632028339163391449387948924086133317138520666238868459759327033262805254309548131668947124145087312293346069221329042175016088907816855740415113062403067651955035815563184372388519713874003172396778767613479412630960470922087076717312164590275357453235528358588220129740857778738261174361213213163855479104673057428235344445931253364859861317693955153455716557094289119275121632562157435269238911524610789917314072762016837440604920194358455078543305801240550686387912832521280550749757468260643182351234260563099622103099706575087844114050916490360607593343353936496794738829414602651010951664021022600059249486829269921421669990435076955715699821122797646643999752494072291833754151326823042444345622608243880386268337665364633462326862814116455276659784409531275242143766059460699815009824016782574146948442003233479471603244572302817943055940534713033649860567395204635055060075362740914149128068588396199203188820777033048270411669186132302795858509736225616029552477305908960510627632079534394112333331989464298769929863485682879630914043889116945455938935238023941739171101260871975344560416507529006482631727043294443130483024240995227976502886016607901971036585545122309206822266201967141012971095346011442009824249071027298109521878679612215421900506809890073975386245338260417797558092649690092410219170849484355749405874607754498482408340060253737677786700414530464402835592029531776910987206518980127812195787734126202032041932642723179360241096260236986993487013152787898626139773510169021968793941340558809718215279213095441458904184564162402038713435125543390855405567434365755051090697038317686841421341994108056642450677323562229826206840271580710810765672699401902234436334225372374177569521095993084588368249465383643664591919817811114765404572588580436164956065005389371780638517248528630594274841959776046802368767981055303455523870486609352628546308280762893460084791471070433939747911076991777829790879230523118581669251530801067253559766974370891044085486745118467888351326548461953164632282331734489602634184760475237552823043825284618450032589765502476013914336421756896324838080069208258472592042857479140128276367980830681836882521422773993403805858369323731144633664735026653310872777469918821671286559616740004148704306548136194847553671301067451883504326460232748151563861120043244622768327414318633121045085430079465730450395963187728982804315021118314880960277464360002744440169425704376669672133944919587599848921408600781473636463306169459276455966969775121508302953799082824189439465348739827903040516744902138901908227010099162118320298068421322103388229951399853966347913588164817758491032377979282540868216431137980230151181773445312894175855148337727132234202515843548152230360497171488413233886089805155763035793406574619397664698486117706163819986719536414131853745043719253787066361266936724457284853723811199801172245801869974996082962542628069100832046486192085865155144570633949702583758024600733600604449455265688618925090141787570808038673042875979138128606123722050750064839759077681905885529443717073719481779203036781075551513644350984696485262538056120942446894353951441119344227191892148121991709894807358451093912434989468382359632524023274428219557930927860196395410507018699303533274390168663163288805073717941904835124291085854630512721189781349671968286927707229624106714466899698571077010619763910121064508335159022664778003685069742906130334418057193269228641815852125249777884922028748172720407595932874979692059855363908451170520803396054033742734484807690612809071192177579546133433458096379210047953582463112572315956700511995074564907053671146123159854588195703349581779144543992965658600558563937358202519433989067987095156462808246631868874350405883571955277532500763490047590420650873750912870836248682365636765312587615208897180639472260193916125461855881868106563232105369250322632581206131927224736173420321397805080552864672488922323002606304679976403836648926301536944555490500747400542799840083926028618156145369156640886544964166494065151572934652867552674387303621939355459598934221169754366461358805356835517678368481967457459839510762212584081564380198026036431457522179568920006897580810928121920301060778016471419919252795863836042804301102224103777680521937019362577114996972631853693143646295248362774144605995848347296054537360746970637316705491208638667264925321684845869984842104439666264751975537589908341451707545326019102208038268519977448893603822749012234817828689432454574117501682127951411644939553013044219504623662568692433693821261289333061175612503805175332997257692582798726423386011491550532009745252966925226160474199319487862133398533777389855452725814832051190054194017693222002514716608734063106632251422960149417921232993635409437107094337299390160302065115067040831912965119054299871895350695801042892568092457194658613066199440815116199540858157805162804447717434316647298278230887399808009750002234383348404908134079075771927610227429425996767983228602529204416893348162214892971691418684484457602963280507625315140223507029538577111501929791334160683682954745541366937983987800726684220684455594823546436121135532896074947204653718623901618458290356706731074483546622198307645701706204471070896542891782983839512397267156571324136997467254164029552700906668918315104817449057932435844364852240249923981415387898539949154172533625313519572037516017117103749653099576211472746070884772063427729381252835650604491512995373767290515773285612422223013773441917640123610762841206086220316166011203909258317007700705357755435013066419504385725257767601371321748758662211605286731432346695259056483309667208837808474062535948618272513211007708808377847987337079541349831726163623463012619208011905194049249516840369341799585930558567550597081809053943105406323676348790912443620058208308620117922574501169560460676187539661839900789109425972856642843831284269645058064510296808417552816639883673962411400154569516443699428823879477013536828950210711712797145001050458322074135170709166717529669571778588277597061860600963652211351700091917129253648936026151172131557297939783842506403448398567008548564969258606835662581994325404216656732302659490134722705223109817096842825242075077295723830429101514593964457793637839334058294966480046082704975734925378593982423003790527333188570603595166160017583431842963974668831667760047894523876929878880630717195673248622634643042327908705656557232157315244669727740472603721354684260292408053655693953276924964532433244858007664388304012316709458800962842071195424149165694072166855810178533023971702807964484961969683723801766230076468180888632263564092081696713479123633544228222769860901422942179491527038351559603619478549471245817350515840710239098057036402774576382179063569088694947777113008900282922529742534982357722739445153052236518650398660085785644810686351847738242889889155999382702971901823288510821780035416412706497291775448967071455325753075399978124574235431023444181798892471710528206251629499776628439020112647879925189514215785393434933284187155477222940450449409764431206556950808669435381489112185107292310516592527323598050968221695474521165284541286355703973102723988566551078934831518336149895323996584511195302978939000710615109382108229937938183921289890021599032702424392667982952940334379768040913476705808365548423844272058769554357730453276158720748626470492256169933715540514251676253278151605123608712905009635487695411888858827444259337897112213400530640652028507323206624557743069962437373718108976066044521680312876909238385794371847879951817773965183341253586154830187439284726874481315634970703946224273854087980557823586813738961431795231812093997413444230781706811416795422179433862810208683394012255376560155175647443142832742680349052510794452554097338518034122573087877822831293135697402689473068716262807805853602304383024016732441967401408442700027394587477362600053757249627056434206035542706219411913685003773206628170510240524173009831056148580540389378149818969767866335020784440989154364799222488332184027072928868752494574055315236405730875477050653466953875186299843797135363188683814719906890354320445666962153373678322429526148564529932604892624799308147552594760472426494779412761822870629806653475747419250029668910842572176834517410286699572554543946985148580772042389986306282499055096162129766249916933694190146410100522771067291540290330153327120354835209898779717428922281512172795414921581533192693329270799967106651307110976029768327987958861726494143195453631753610123139289256674987608542497937479921104161141728053843388846694221691776470757562440063828972647666741683407298027297216059056104737555885795727201335899588814566132464311287765418444870702088271763385365151078088444141372035255758385768277137162472622755910996750616958568798691129338022690173704820832818391249524995805576673228523077967378186775695343508044380745858333291984509138709631208561540884717109009246669582005527853608282625813315009578813152487946872248967600474256351407386173027019775239973934529501257020799264438307844808427110860096618629435257191864949132563276943554594993132000000702998557508740520731509406961878758376331551942491004441997426912409170541310430929909691347210434134743195311349669255573369186696758942471121931411024646239105083051815858502324184190469633614954911196890544021743335179647873088417159769151181844488087474279885841822834719982879167504157827461196615310916286978522085129704080115420795886275125613803403981229330158613799841462405473049092349372020616404683088588386959135584559519856325007253413513099845157340499785954908757540516985993092608193903184426630485231250903964934499109793407420037921666167259594035530978992666330302313230082836489596048589735037230492990808357238238877854075907489103147110226706648207664697969583939947624229921197191384957188420197674235414995021029540587792326895038620180483576890763978812762196477993997905965200529350932075329159674628778167806567031834680411801493436537704910974881628766109194000499459790052973769877230878401087478108635079512257014100918799482414016252992036863278189384092646866299434378289992945469888782204063296866740415311756880211814347368855355726769485794665827945176835807276495860836335328899339665515697288109551206865022173709183040521169765239322316122185498122860045565779443918019684984982151791349808305463379568508173989270259133338683642702878053155317339646578012945310849394811592048126188517253462191324865144501562126744308123862006290239688427969942159239097357777965047552403897983776170869129495992469174029679098482935885953015565928207564055973905654302255790782610661735691561910235994446737349076231912820364331948695991026330675841872193423427597571792087920095154988696243226748803621189208347832764142522106320495039493689958864028288936123840058367917813700626482017121446524407301004213846877064023847111624248462301126017519210315565627731881416176690999740771186976383579822313677784923636390528137018137419637450840995215058896337690791789594445973952805963330309250697345050203512184556405271554411866846089131492141263614082633208694438156235879897101483279414873643850593687480066214129934513428485180941255844528309547306997505425130609698738976691260852650650158939743962968404508981236336375472175895432749852489509034710860948662289079434376792780181295994700345892768662218478405333545826448672521477950963027243362411853080690217693568992770100056690576825368784393191868045652895153850664312037606915110924144167720956521703861207730948082430509666852416581116291452073789144691950478050595292981877007812785566808922893347651285616856467185955407476658627690123036857811250581551277905058334939965678727022814593187181967580713741163334140004733834873944811854120562319048985045593378651369582662414826164919266752202774582848052000720864021668847894933219970684491820924176327288347929234908558045418389042257620960555553473276773630054753271131376431397728162775717786130542394250391997584315234775923653201558267193983174469246025333622929669831206976534193054442226431717390539920064697455424321694605191329048259374152598296092767989081231283401414330364646115435404927920008554157252238284124077276687389604932229350771723730589705303119541387435525019513461236690385447273333355706327240685537969252047962103434520477586128834078459580746183676243983288808212332308507721896264263512629869952855741330793985443535141116540167650199935146816103494818395823960092163949984837317430089401357613269918742127546743468161035875085604940498599937293390761588597526085725199727915419431238875067030928500222083989652790885498336867965693396601648417639621814003553678502809973183163404987542817545659158654480365075656253849745966173173809772412302962300773523954139460791120850322511944218158630032451009980741959921879882292021629104525192745912173725528158548352117192006768663272381649955353615190632498082629934838595771022522880648308323014709438026248753010903234389509621079123537351606337024036026557891807117700284545821059959931653986904734312623228119573189191955918111091268307463280847525441601225915481227790936842594971768397694574417464277728030946442925049656529376192907743912676153580680935376501828397284221217704572375929175711690318029157876406639877189865696450835455023624343206977684539274543047523102253328401248656336498483058974876948426076602546476162765197437931217505153494979458591354692745103049207645425927773875356092758667881942603189423605449490261386893417350050914610839961276884083920421636803212648381226552782872734336910404527404695498663564654333837959329771751637072726417437643180260831449544045922334654779759061723275435950636032212084447323349288227056252360766862653751120716856444615223803176626705006891311711836832323687636849893346279481566384561963421820473849527711602050740124598583522498968887313151612102306224035021793814984213394069082811123065293261540160072984253914001420160308289225864453060664540749308940259357444614170760841952383316813913840047085534704117720276141552006610895090354457837497997711877217213757127086445608293925321148697076394891315324226870188946776830594843241178645404637988699488687318836603313243668544076050080780222572645338164842512272530599793735382191438402603468628145171725291414687233922293051118555254359256955959897551397353036146980648520864754429623433973165931901606264933559819222954657608213367414220559049722766136745117802074442743122596625705332949183149039877407125671362327510530650142630390851550276516137459009509862891497162392280108228691640685292738685903135436032706828021984361676116223397425282684374898704723448431243049313413757621598070096896872567834665657063254358875657613939635216953697166598777364830344207203945966627859379178965449638885558545779437510899008417655802638588791751319068787792325238227482520088517264245129675928670974814575633053680091181521966908097910520234777066171847141269024735046949585427241823645246925889104543924934416239296129881024065142602949761939391534942730249304511144109120757949308228136201758063165687891587865011700793128723795323168826726634777489260213271892645151489588530416355144907074550634072703763450519787690931530576951237637477411730530459060969873261289265248548824062946203738718447128276780262525360643781978052465811341352901048736416018590119933207106075916353290783785762468608276835168565341407216766453953165728243208344239597903906877420300610888165513458504631494149791517139475413557106633571598375546518487723339847302908925204347267558777408131654015516702309647356531494116006636385410727195558431165377131549077573391440259657276859312308836721752216276257047634437858032627788072323374910193928812933402309673563918483808909531941931126733050798143023427399659146430106643940558116447495412074839332429281634973452332031929578496055009393272446499305988705811265138243470902065623404477105662481129760567529713051663618138264577067471938877549423517396586495858364732149418824912496554996030957129916173140063578825370757041423085335071600535758462258106456320574368150013270366363376890997894826415618887459106579898325994464508718080292986244070092797824502544933722263170298735626927287063716265789711047359783071745230763834099816135459893079372622168795632065149069094717198841865304531011598121612090994978418735380652666237454772793504046648209316198853996063425720659715640623198671159911053711430062901455960508333593929577453062694808547746359454817196885836280395572292808886449738847528199617217742474456297339848557876232567779230476674755176689501516562225414354744271398497542500165904686796917170546221548867183033034553369753621405199038640891801452363220468172660049544395007341416126926126450157144068656727687259619278192819867571876654463517299637168139749582212258119755206807605351436551466099331368158057622951221422359463006682146353830720762712912660306960872515273234012879934853133296056667521149899821348205703921454236348098892939828419931063166730941795713415830552724704256181955048668791423069491960336912375643711525403957348429332051077499894643839224365085345948932646687406903121213918549378841271814597509335705738833733107604634885747835919336375621094327966594319736654990178160523874544628564008331812486039951304921384830851472042334789115234783126859909450665581196207611620080717549722698246466538846839861227128098899584832470086252958183182049340805045067568117880263369335961574728813747188787976329858905717629594167853134443314065141746982533333563285380312189505571982671712649187096370050833473462065683441735405780421738001262802036065122296678093142851605223822261142608998365469729306413117766882511826494827570736352778315059000879839823659591681379624329957311970231706918474269371406430805706359083756819972142239435756799475407188614847389011030854084086855887453714129985327759306902798959435691989892141514383822084406648164402448918557162746518798353409407047000885485810792864762844877717027978265693699900265895233172750138805449251157302394634330985647447688969898338005422925828110986508006818976871018289475062739055660418811982990970611545132946890475783954217614694095563900545247485164393062738815915142173833171480866940866975900435336827045430926160644889520886845506676912153930617730034795123984475649459626689995240262231185858064391242842031312657229490322542966323280945171260109869120855332122872314353256717623072186113523218929564799367871405703007327378003164320453498484390668395116162855089072259697660485129844114179268044289565827561591157909695863184041585813739899270069210987578976070818691277142893067276123688061335793844247587337246398943690465297682873898585980140136607844698036015352584450903411284495307237051322592954101740292101922215198081570472633690390252541137702496709726106218911165802414726843537014034816920897632394181712441354600574823294743670581186182124213312543392236666548460335155296097497558978094949756254109503659184335894899338153401150207540792603696508091491115098367970476701762043201017203677409022891905651905645105344933088665910638563002705101243142931717563787724686546553972810600491820273084345672631002440878783344370946265441015118095375953262267965606172181096889056403936654168704089963177320431993766967074995790464013973197029052643524252448204923091112702578705092917923512925648906123692309677642040191722279858021485625982644348200097292464543825216411741252035522382165772644387126824827611571673697629596831011771457715765934922906158746236080460199707127809251435270239330703615363776520718857763438809765045277312854987726767362192922872858584191376635288548807003995559976278621377306154604129779081319386196778245048470362067582767775254613674462271610718336659215773242345759080667930031103368323897862342232988963982299577348704781038903889793130601147082120078189373790384214282166520207252478243522549653438697103541660510147506616936593150270915575152363869792071967043471592027550448152568371365536902769759126946433273468273637383560985874389360563277052998524156472837598521169003206727869768707982306621090917028663843022631042436858222912608991039598659889904453607670224083899154274956165390780795230734171579428386336479164133783256776728891968643817687638667015372614042672918591108348638020080528432306186865971682488605193914666582382707448082547863824301832409201502263476850164893701912549688166629385213065321760882319664129986732351468424171742457667607719673883841125716016412799289306848058378680867053550797934255799807716869282548812757997009442911974278472802486051683270433890882940657872889301253914625917183608462808061655958863200972286303922765466895525421016597463078718031927754869779817791623120774222410950861433125986982365862839433515140255785953206425701804018060871047465486464103978001278311497647398885859951798858233061827426420922685361734180589145447825490595878287557889579575571320077801437822810828715336744688506753941510675619381370329357472433161219183628435524977401287568187329581140241335850323717870650489216396438740948090404476652837174752785004420975038426851044147692332933638693197774338369693323004274576778326731549731049531036139087694215661274616342685172866671556584284795225469537063944427353428524407152147535951471008346813401121176503077401428029262449266014405893822176342269924447171028023460599062187624967553486247633236569021829879364030255092368202247278745796653250240064562365353745168595839219960854762095425719975675950804404972202009726772269673268180015283675714110718199326072092865922191762855596205927483095111885122777777247629013790657423714419407102425066153089592457045350723874211598746084118073012372968542283970116171077131849905564486841164296636277228238468834059886412627607730834183521837201405963741561670135606642995731460198149088702082109637887596046557803386857834211048105145548904272146134749331732440975046012950162688701919667189988950746800158732412943076294563493025664460632252406500353381025935897836509382883067296830337924016684413728510827955455618167048704315001147727644066848218164067608279164036014449562693042035602906448521519058950893964699902503307874198690890970152474498388947052734386184604740886281708888539921129422187501735334140222483583929373473321504322602966141766963064303011265311322830636361641359013278074382365916504190274964677364804875527965390953989209208510420945790740360546823527224056420342813355885006675372398743316687000955035212939212803679087829772517579046321443265569014294336957899485243696207049879179963603918605684325701683812463651243960159744561930122191010152035233511926665492283951161490908895516164895067826228687906077274994977126787923570700618518726318792688949136203684139459065178235703953718799030184409923361121919210603533044029873484603005457321210730197781137078005251835624468029461367613333361793751131486852622353394072267891093969417813330961561938054738522681801102353971799877413588199949206872493895054905651591409352479678043386643039754073431670599254230135444462967708275092076682257870620555473188526909563509488849586903815761421665126028547072521607033329721209608862171774091728543356625320057455228489681990581316910616826334908404047368272467138637436973754581007589367562321636156463145236713882463789754947513389788228122511601715144266780661676515336126618089528042320526984258847928207148572196992224251828592926497387316967993044408202157047537500062081035082442138899957332314027625809474923077046740587532183900364344441088480626774595807346504736120318080245937328998416478613335839835300859347857386022639751945300354024264911095236408078575494452191994230078780897381938517128415179291091059528835654208502970403562011372709034860280637245732365174438367396053909637885638334883267164341684921657502863559801691175250579858483215881297937382371746550991769349355951239608479374381979947876549522370974498415059370041400171813572774288943695275734220496256955661921227126239133966214162806331081854942063319022262082992151560882210234304544361198176308605439002894728582672850255914790565429860992627354700777326707163851254070117776374693913827275323933525853995327702826611634597429598191435519384959480162829704907056524266132972146059437051795690534283167173609518434425971601596057437518542574743619211146547511329743916541338245454450501657223481775317290352027201475318166205952098329593750166949726083092229306340813431238378811340260332379781154319058750499777297371683220314788508288468022082349554653027957445864574459407646594155765087015112013284844709602723239343364087471223298385959282333341540304988211377157760190746758405022639139748410414872714023437719384656648950491644921394298055197022208957375853488177485406633102523076888197243857579621208009988149839017842763600495164397466736277494831080442787524293922175210608131163821162620473231928852594989486644028567465157336287648979575808909941031032505084218030089327627658741505717875960468666653132974644473400270996371071672930177402780600402529121991410459460615989081828145798212370796413188015021692141028795393404101451647997507268649565616145317902640104741515356813330124008185711575195650391813704058284657529868500280630129892373811694630361541942844946344289641191393968138862064795139850360260935714394866626746170891989523228902631298243677710237362934812138106455726264776888192161035752866693820731457246356112262546088689861303150954219507509657065183575563645680966142846036313217169492023743088105090416843848526305009095414133974617861766316285546973287215816586762812467710206128031303243884561547000120525172359407869684576234253864608349971757887984007755261270273436981530414414704168074553270191069685363417585419459891374681809348267655094853668823761178411858379887607487532860032868875727782815601768454769653636779282012956082223811181907496324979691052770719511333048576751150977366118069919614513459609816102350929652702501287630093658280377819331613015117875628574035948412251676659132046210534450431997650832612797461269807892932859151928283731171096686206262101514451560483627151565459586773290513066690012652591028453671196701749567717577811941088359411325906009136733791953962460892251176076851972066262007603086044158385481263052402977233050356957060725750674269412544626944813524117546068305184982076894037537383324592430697706011890497463788717413044961135455742969167194863099410770698796931950482152257976678908768106781554222743438483890494226219742987943051299652691651243273020820061050007789647068064833136921481567928647221257731331486001942284890259119426471999200586478439060220065010684898871938224149825327937251456555607081757309403678440659601361549660126165914826439355618809471152125572415121022536791303886858080223569161352241112470683263489891347109973023623383423634220005034429285763175874199226828581123180828276890337299984491303001229937720422671014391384505204134202127577978269819221496551838565384581138686588120564680037986002491319221855704646422755767194666681911191966796359517009872837803386318123078705454799066739303734732833048665470401512180668143286904636564092346005588196644087776624817708569755211003635874999820372334623188974575231414362772708210035601944322900518861464513861520317043652970503341876364596479357780969505513785490331753239908682426869562379538437013016597337188257097980877544696096181899828692722956388291965436212959470825515992118255121361956312102161211946492775915580556188287282757775749838534867809826406056786623120279950776311461488740666084806628322808625830677032781529431033277212201930860870033151458677368315264390533023871416922758225377311995309816057593706673140261288487005081916133420974388159250449092108877034042457251762281922420621155234616675337448399316324040570102241563039627949641510652238386364511655990548181618668207535416528081929704527392419046927124346979647619499546175695301627950861901432247312357745129238344223282472133088763173245420702313115125254949757280706819261514596649459070795724801593455465913966930905111863462459156784871882141221815390187873436225760337364813816996240001512231230898283215347275047348926719189011080344853773426092072551974210061889347895691027951582597825077792985709368410179633589783473277783342282141341228101573164841205898625786820385746857902407956834788827928921109246381927858657106853149855055379835749183920464136830255524803411529658660938497085738502339982389132643836266531237946140871490347792661211110135439720312326517011866720540239576223443935650421351468103032729673603525306906481370826593280956494378606259523601679914636933108171721202669073133926673067886737109810779309726255502251474040992099162160797474024304058848769533307884311248685737545056480210156891784346058253568026208627976536675055766164810862917264646606524880634947343359101308658627793658709601023259098420955128102719389545183679625536257116933386947226715275693702402804790791980784336150218488753678853576301017833187387417432142372360628377270793515497142553277014581003638485054485270747219589762905815791523390668422579877726291528667176408187714619853105400442532059903910076796078012996269653381908468957285403130508682413989576032627409597004530230303820353148871857738610595414011725463838364567426752691125095034010199238419613850615977170963584025570227623217137499185369412221867896320575955482070514172387861350791537093994235712030029856034610368785549570618667928469248912729733444086221177098784231754593432458443107560615231697630026962946131085630103136816879564139087469039148393259712634629590696621585417946306338400283895978089222603080549210049061468832845885034872887846819427062232410666821546431820627506091761497382328446798483923277764534882118413962252973727679344689619351272052339724779352552658003275378298173690818246081637972414921122397550549072425338959467886335978424137913204634570932445697666159411435433473469352776460390597495470914907649769649131764552423659754036998274055540154777259142638830026267788853454911179263424927848890742773017983259663377260563712098687232696315743842397298460437772723038485055354556205582088775632602041483217069929837954943203463436966138301221047519720657069970705928325450306064285131797887660506891886729155479827051552010260526552644750838718570997723370893945130883504650698517270479677279154268703708114744126434706881521241850399732854533642770833391860240503757186110177576951227061759286428951907036053112797170857388840531068381594767272419746156790043599457676095889993127447083541322408257027799845998540198700137290727732146346334845947935599934227308607538919746882259131631957618218996920967477796501200072534482616089747229451430971553276518690798271540211566250190921965677549925489744008497641696915405477396178046776813992393681445615923344363493577261323190841449622218693747208410754669085935533795495790394418754490975087606264117109836219934203084185668301600276639046853605574829290524100962335398125959264793352046377686606373837119865200118620582415535986376799973656295859090776089900190932487244567914911727573347527039716067683406016351000793628740243976594431592223539427166324928662784223339582887160106000277706951027487803038196687021974575725860593456105159713394465953192651321583728532752105906225310325431646239350973216866787660414449215851459325367620397965568790900063233337709586559153909847829130759838664781037496512346262376389772560986068424853015027665107419090507482896758938446668564333476522209295582443889135142596440263186196480920201327165736406744711084828469017285106761042853460685966241520069448015318669559023590757940261851330054024674946365676552388444140461971729302557583597671577720950650066714536498364630136508000812268283145602597898006143779046336491661463085772003477121687086004216499893154590385546105140768873747207978697219586741271154092430087524587928023975574797493112054672652562116013671116827448704869600130443597564018451360505894342395822364724097826278252381267479376770645336049873684158192796725564829594628530673596503107928014581108781658353179527230979358646331003802887238802785823212005490300791702588081964392723448098194388879172339439087351095184536106350699070066672442414878380070929909084092089371847169054367208772800791390232047781234979107319538476124055337369976882056305226787538278591855413200706346001280861722336184962762394147824850439089132555518636982633058668845644337339672137760548272626732735053445589351006459845719808073048770062944872877003464692201016112243520799443990656795560195135462526690417420292256243778141265447809078511739214964501261213743499451837112953222369787160767679191728199201272745560686831748839266690319978126287563455096440030277167320916799122855719806908651094405882686464541911804511065078337166106465944869598483920055717146060467196294779607548411575992063166604901756719742103845998540243888825799206295097627666131876383026238093862003772691737062472619395640048130034013608616781223623399624827969231681427275916007418768930135522259244196072286257532793401137852574628569451321281246713465673799793859143260461302034086546073170209515627170432520468899315484955125777178628944454658810648271941000193183220120421449638756826436596769577089947537657592136500653651752211054403517597897774593077725235818137628291859297254298311903737793464157132886270420941506570999135187229413011526424609873041177086062298680362943522345732848455598163713968541803884710932793764886268698538242357155535061005351751316588161293398457730292527393352263511953089939972506284180037339868843020453180866609407181956767242703918183647634977720325879855326796368557787080603441237723735489141841022055924856117229852287123838957087799908874206894874679222959813967999772034977995424722459050440127076306582258671988185934894349613656307130460379480405535250370864507997628513094787051413440679326015874358507226923963888626876008399372839991650399583044904165342968800492764390894134121699360623787578230852259381306939470869495296078935250206893118721466417863144297729452764172675106923673682599386302007444600039739585460226454741913000926300580524460529177339533301719682443032676054819718157708695661005553656949516430886847842816751664411667922945860856101671351753026059220687877837546837411973866049576212032228731542397162263499174978449561406443827963368336326631761437545843644334184756575439358714230143170492649732845067562509160925194768825165367809953950393433996269850686642359588248095226865950417586697909731469624803291570690929195151557887038486821510279098635940460427786785895550110705465536719183385865954818578902499563095787082685987970301009062153180198539473896144805303271775866755600766543096074798533093355097890597213991269689915685106959778286574000136891931730604268935078736028429939011632367043829594528626329113504398950550470945250105572772852271604611911926367285034185534747799285457892961101425786765423322289968029159275473865880456542494928945448729478367058527083959087731383578192827507803814163685992595560449873173404714407296830165717545223403302976962975269144380633281664345291263771190595628883489318514031562873650951598548537140131415043274270663386379099265235318796343573059846442626744148424164263267771970368116946328771506005875519114348711494724108527744275923380759094257110243266831770098548461411302905701459844258379861551308647079660356579601805153804816936246917259241162980315093959045289080535578564553451897152129336018013840954693664516439040599700187795401179704284940626577252740779502416680007723103422762668807590051700625307759154007143220406996050329678775348663250082685740991781313128297459350733925003819035437189882756340293897310346367954145005695562561846749638855778751284161056586346152446307884373286701325273954436289877363512088912184137863935539776355965137135366195965744003903831417729082079988508196849237090867416615720392792436640697130240727041224232591688641551396237134045160064939995497185183126508785046080870221180128521184093318190742942230556340805846779150485610981783734566387021854941597689427585669569492228719635036169511025056764115071935523800348509699695659540936731917144102965189853548735152500880552853035516366836881431496428067090153448176236641307275673543980379164443666941378389833058815783358876125724309291721814532400350684858190156562838619618107361515514772114389063308661579539707057271437636560697779053147718865345292716941267975788437534208689223961490879288396658188674339011683077230312563326178801917409970248920235231746627750391126084819858329461360824965226130319587699500722264782054513139123197384346536011620071796375299132463683025073291249972947814225229882500735630956505871168252137790204993554847653214555927712735957191023269374180402770281496886236913835966743894569718255985734919583604238888289874565985072026875560629053997218228814815416578860892883408094556093275540278541749600422237898962908135156311468945182790890598498013170187768752224557487594829319054271538178679916513558449866725637271574487858718580967400837624519855055846625739385740292793598674136647454553927190149688729233180211824208534368420387241810802509118648278338528837932145226309259488701846070646696704416281126738786676620654771988325661125310061466532976289379032191064382614410370399914748341848359357368810348323884846939066294968432670334287022035316656971875027280887694058842223783411296247618937999462480515318429719768016261026089255599179923940206823300910352219509552278407874490973690121959839792588081536793352791747126061097173293125703535099056100236680082727857984441575292954162044039299801330055666100563610107616586106113179381623555093738258667455786763143326027129159853631266708662490335597746291498830922494929120237220868764639266275677436819356911342350165965093150149468016049260730231609220954309561713104328838008060608703473839120781704436741563588277716046761277299168950783288532370616871167418184837261573743023316274634435079387436626590322380801506385302444856667092259411475908275901653792740809290309945688138276301128760902117691743948748961736427840485498796624571158438898962482645100122856367463663935073894911327990264310299906436999054415791786682310624856976577542310935642259772306503374092113361288924107775291679016420891380000285001888411351337819506971605159032483003055993785605910602036239735578072582906758978480701998923576976258106381011996544331615977757631953247578402137930450311999713509784725884264666406784242735745753805524424136512461385174576660605532305126264757574158119195700920270769538913313693072130230381851680710931446581506140571077957108696503516515456208448870049842600090353330461741372117266276110380665146901020154176572907101851803719477736311963031166718417991796926315785720403456075708418969615746766930429089782831843902404046596419231078780767123565622357759643942020445516601821977278162577466406445241027189416564554402668671572152305927509201491641812649621441283048696527307653801904553696443672507656090506359875252889846420949444002947497008010102278186790370622530798330453708875516959882804427233189695881589640962370902499311930803356035602645185620177362982635256773719241417163158754969631982378409905219308537593215549136637877556518356710755087361876762773066561868955686996846573534084154497865598564011432351138935883494433089436248217004314397332112017138038289070171310873843345112301795531956186419199344126935643354257699226312201669126756854475071898414580480504634417022992023400026746865910638080281043975974714328592826833277787901698791083520463141755574100958117126338886463985325887584572449226657272802704641704623040167462932578095722504200452451056367032416041647702745836558195321544938044719567936536857503135876618484234242306371844087943468176358003277895668314954750822635765571065656592171822272592919214244508366619621554671561030277904577417260688631372847299895404055641085396008770312519957498945541741853457379111623402789618266186444957370561893406542480817302163279313012633098631959589722414753468810796475533936106487663633531457314357388681626828880936969568769911526496640475379882008718904538112517850465925758272984163782694997903124081487062407190378037069528465374656955698720653466224470172217343558466416084753148466781305678811918264817283235609750172396442033890133673138372473363892180299088908024999845757165624115721477535258502170527761486350794744058171907486553916441207532572458213571397753060991212054714993474211786096584046984473227731430003064182235665348756202990357874990137104476626286726563910658569430445093513461774256393143900009477261017749575793105000986821964535423487777435851200033704278952769083505804428693279707091711975612312079138219858625661249306837694207438702623787585914920532652706491546393635516723076316774322233099563077867352946012472658330560385550682521219540319314545401189415562942135236105638709615428635636493437397181528325487173357707388874284612380067408341863803070234250808319243707169968465463835213063389944525743227646831747417115769221081744768556569671920501081067562392674975029305545169793972011408697990231715239262618850235412631798603508151877105673786644174711895789301146173310928375884474186657482810253352617530992622882466065045462267401920949559420995267458083859952436771503219149792081712823900952938504395702834674503351143152300190538153475753086196891269680178424408870989336838402907728700776314719843473077991382382793499256606713144996152202668218017499479672974192733709639680114962319856597787235102262790604290173723724766265964759940697368055530681701846033174940169491904198330725297583039709648295975325666347624382822735025865831571380809814780603188932101799792662890180432994837290573674095326896966650537765817746052943336105672085505485204154033534903805496499294515841342619385243639727393524149681132598020719458297672020104900508006309929036049307575494675388910400239157246767860307210317513007640179128243473164047958549784687408241604705135921964117059868439258763842963034777933744780601390060735000891724354490080801836660839297744324984774528816356475567850180646124813737055370269386170460127398471756583280025988292470473634562161134227817789168414811154313297495363611252899284661472793294116162462155296221019413029755655086651785512772349206412884829538192113794460723096147942623502403137407830599648912103585697105866670393452213691640183291928842180513724921681012196579097124313814126280787188964815774019197898645564487980136453907509535534533438413137739641713222998762531824912954582763480011527328631571298288844710742584562796864491826920989946616637060961822672607302603964320850006354643637134097821188839700409973300567196749678776268127631459038919467280422570737544859617059870488610390159711618102430531746334288752408354048953092433821619633013454893990715618981206735306627972066753547535515953382315532428070108995678374777379401349941473613521944436868929490473891389873699576808035000230393081638279429875645776104493035325265203049594691069119479752297744659073864883693819084065009874078543472489877949542622643397700960569950671328808999583571436956088714500774323738674907058888594724207142799288143156082081200009138937894942424605462466984106568728894951384238224460694300216998188733253469933547798610007785025096024592770501291462595544534189384508053105935424229506355408985827198144033222048741406765778852672776170611071252069534551531429803955712933882484065132206664690429277821600889744647916917538705167933848828234870287530153953419586703515542426989183563410992164676296933508266842899773759993502467761391185864978976567939314541611141109184989028260672577496415691432323516923435790156808768190629356160336414775875471165268370007690337672275837307271277154127951991187469750213642008636119916156020445380047342622770750612341441216805959504796857227764939805485614434617592563391447788534738977184239001611254733985168733818460226338741525379397678114035020842229925659389280014768308331040681567006933062591602147043140863657579812473344439719440225817537126724912921764981857615042456525980091713216439662689804810406182864578376992859398476808367624446422285913815935040424396490965251961670829747988523353115618771692386404242543352733440773597685033648075753546155023543832869724968472578137386685703298711711950264827341791096478812537169946424320081877152198099631606424360082037805641318685544484204943244657249966151904075725055259526589044119549768873358142759551381200792079652491642147456066065668556277364911932008623666633652342924332759476245855533829222300779312503811273847703807681959748578580167691736093906064968040933349474013720084866268806168428517293960771300028940397320737529148011911615880618169886431980132017314022819177602109570539433241883441015860001839285198289313008067033087874947710490241641514887535865565157289929215607223675457605770288787046527970529992475822492571905841365133695669791998803261700337385116087590349898464124351575459012705685205046413845720428020481642503899431320719968906557778165372366299592743770381278386599356043405813686779673564541646401308629699547439578994277605341647926475629567564878763103924914836317986786085343889938379256644819310517548803037989290689475767557195824875928067378511614084353647440153660875609426644616832540981489788855162052567485584164688837970678986498475111510999329492577054761645767527678411077630873427260222613151217765023059567169951440371138271039317963095401287410179771506970891609834362963836727197018929611066774291350161308976586721988541960678194457284169772860404501156920690451155850119604033508651075502073127140368289326493902469323642681009105682605619208923599325554172843974082821110163431927450201786648788470057697545192349109458626478207612989706754471494982381973220642686219679317775043721319396178068886186309444424219060243701826519251440529433496089330006227356071016540902459967400671842864283149355304417905248773591860992124500548045630819993733777666337113965298428905259640513804704585694458075147286797103597100187852813898628844817041329590237039505772721764024598495481027893335175897902441786694725807991868085818969769523843878442355851542960566225406611919712880793423373476901386108283110275736514865343781136487088660426385741220571199312977793854903148573725605984607572101318855674477841692906711324994079453780424277339847087339464986649901815667689293515949172639145308472781710349562593741575738997082597186313092648842716789665423467677497756937133703548985307368939015777964394669197495998327565885181055429435196237090447916613396523801668695564417800709112384750437590998845568683318253423559008159296194645555822445898898933227298444743262526353566115357299122745155497341872569828238419963512236003577270822159876792178078655769557479660208372324977445969995245296597847656057028566908566577299542589898882802446179766900217800796011101339709425961001442231302720793172355406611634726376625488367656339978257063670029576089192777963293300575333921006771930877826457207634495726832336810236565197863540616633005827093672883485767395178593673354354703642423986800815801088018040860616978576299970817749973167819324265067054577253456435937775295841281884121583025816671609841676973306381921476215299835282158033660605794160335556164187582981679874778413566162333511776602876031093914802357524975536591737640238991954256379071069766449024339950884397316931795434416205497411403719558190454654481986631330533947855459999338060598803748275938335003598137866485820883473814655707124359356052449673403597990948144596932869711961756420532554367876212494175621890486678629005139098011275242785657621357562808692301386001316543406368676608953914892679424969368082526002196220948384571573204584162852325580116191591846894031065041492304939923313326083926747986059906509204385625003334138186490899101010943295723178643890270532222051383002120089174301637447322145920656407823107032953362011701083863506400036339193314070568101039837568066235301514898739354665789371766358640540788266373159450026466538688717461744842830629664089543244928671478107282049273090857786915048320159369549774392711521579277441455147154914067259996690971803615812963703501084223504698665064170411419965656982957062356554498308759525458083319971054125926555658845739264270384835457083603963027511032211493940759615530608049859306512584981633215673901139606567654736111095818076415490297598136892994629862786141249451480904912752871261906781383850269752587926728120310893581677107598974808078079993684117992361347777614269670107567681321879178416855195263019857708138317592300567018153037938698435709657497082561171673389589115461879537322474788810054008129783076426414468041435430597348777329052755994502854016772788412077553832597745398065917774757173125265759355732369600606902017294835457266951288794783830273883085146897144903421137338345374695131829446458506301565266587402980867572572076173430253515454796279114714311703024504964357994574743244186557533161906184339431004605255376453205527603149497012406994068465705110596090617541279403171581836321894982044009201501730576971077723114490787163592944594459473514102876057066395852932560989602565929614922732293678957144968255970822151027332010791084494662558439624685167304941978734803708029544668028558122219985727416529366562891993509888100923088469895215211125993644205430361126786467133666526757995080928357249923082370539440447540735899015809156992873341819152610791163109891383406719497735035952422444929758905851775805144619872962430365459915251573703327706242416967310414417303876631255486488165011180836527226103406170971872471904544157277872093128780985623665469536360269249189904403475610613637122759105594594841767710117430684802268009850353106303323998549232029333190243803890817515916946741271423012589957617864041330605913147401938726002732992871122893275195379327796298059863842710461896563806309483534602546755366885344312101164620961766601168606180301585101443921884873670096034845472470290984931419306988498603243944063240115388420801949580288613986503961745299526587741464032309292116844622475366576244076502168677168153537718698418827841816209086440235167086040596586463159034933117824286938923228676660133321782404372249062682516854071917394901172044608407158875324582052321646466397457081500374826534817341648007339258194952995406446890002313958894586880974033161871509343035452861651017502477195325528703231140350430202675894987745779433967642772350188675457671346366647320637876608276538795727147117266587707106021792195020266347334500120322346661764654095990721509954867232607762310330755186589187143240322134714017573910008944062783048490573465159386578206440890183376686152041586716508519988045213512473575489194653619914457127029596526597214669189293021228789191417306733500922996683799611331361006021566209104848282405111111072856173534823744675446086535405502119314793167900179391292529684674941440499521458316095084499198399004903123400811874537966161591495202906155215941049706259089702611355303102655224453481842432847391191976451205474900093801485992832491579859923568551013300279159944339736214444661285340556499665699512567219736605546777095877233506480267263996218275392971033647006248610921210991801927001133154430646994432650766241288711277323621096926745840256003789783661167462223797936995047074719006148087534451458544446156234173748082493770472181451291356386641898554786778649854033091792299345098516127495081317083199084697726675876316328193869595491638304709293464978027446091163454943994453156785997132202200591247939854796590889850201496751433609182839781930596198428785555419143784388859574602988612836334214567725245286672718456279681136227129525822083869235967640940861129601088628203226789753838925113611652016851634461503703005293558901746023587101721748348238130289967874525183712685236967218902894502779832195500064990106447516643045725353349327340695375217537337177103561170090399825605052709239773196706973888944523252765024419634056749298961486739285704565504680816347144272251779040045567637728978942653317452833407706703863250804267666284708112390698964327739726514992491341271199220123119487463263311929013552700204915353964131138345583999353409077557613051443663326466378140181858728582213077935133771983647617637052087713270353548663835148945423646319649802675041651192718550619047310729324938766576423235505058521426655407358020057093665499429164247979737018839102082142648910014961835584078127560232099107769243323060224097276147985138336271131517344707209340194088301624074411829804695305250315935729903401875790782195863046199737466277622652059561996304991787506567135605118473692036896035775756601665335237936756277175933832765911463345104402317922326982197851908079636750989010544060953696129549199520013336018156069737078923991391614152939618483894279988072740696686969687664344555135252374926853489146784446244641660431812841078627356782540706227211038231192612702337352322465997638122708687705577210329890430248406719752144156768451722123272498738585217151595860910888479206090042053486235013335355063153147448118295996544283569900501419774585296148985799995094478239352432933766163989691483017257386765223287302153093158536995458969703352360683284187640656858324484726753040885481022121956348443163435301203193632246198855341007943589126136011383091762602468351473261872800783069273519486634899563153622901477815713332141229075212818314397336692890506223275537518763533985823775217913903788755904036257582699659428799429481131805865001756333450156579928983091359625860453217300305936217714196275531843254316376511041621075991968177512609049629952627239503912328576612842170451559041109718068474013818461803775643076283198045278944008453532551215727663498482209004827464185737672288482731461577140029813280936035617558944674184963906404970521188186530162401138554531071975967704274593842737979548483974105531725814270508220080565764160159405389537267581257522839904273675170751219986834814930079937534425700975505764316615485575349236794355120746510441474066372781611076050012173198914897560038353738070400930697068510988732636422142339179621103604884410406142404914589235475053976575245263626282326032655596502199659280433136951041621687277904679940680391289952267381947335734481916455706162761887928259113467992904620400488816338435907458237940745039254897590761516328103198126359539199392736850277285360263066664005262642686640848222866650145565059647294276341499030553162810942848045878727779669979775547774381954404806787059754405021026156984471982392956433527098127375593091388568580818891780679850726490279845284456617527506107902784403679096545362684907624782466608078146201930617065753962089046652500502829240605417322660174065425406717603350956336186418504516162394250841516211797836278384496092105698948208367365662309518713131126514930380149737457662905444686226065524461785331358675529927019450986695593034597866178944688071682041575949459931972139912893612814624257566687827596199616688477156284922802637003783244266834357608653382428333218419334673631762744491164352428409519683200919078674480469445118757958174251226584430579922064240255764071717497787712859118574025134370184866012165459040655840714654532193453915355281353060372218461493586376132371763158115942946553352842860886376404005307489880989237905534539009352564182387899338211103392743744627168095533586980259911742217684946641145316919199143405626807459194393813771103806520881986240657296171473212011542890240659155145954573902417754822216632196536302249297869806885793406410802468921488189527572871153239006415439410920062472797965936883453445436078484437992640562816101072259724951723332026573964900254171748435277613702756886916529223111594377819193285881165851162995808362270365763896328553712878032236899573130447559355023378896358880111122730979451904381226457783742126581915869937935142058826474526885646331568996747950283113461068524849173132674515500659831787989146547703144561619911347156850674592823682059062859882527114369981415501016831338536290586679876234190878184518527012511392011739404435729036851936071309309759396338370790733671997044786486344295434462582909859396028555203565205654642985867885316269474265173169717310860975855224469564936084814916437343846538459308122906551576822554042377122588848444249182372792217379030962877241501635391147171016925209195368458064603233694342114484406072035388130138687294029456606773631687144479212157786359479362393270273928660891780139240282764495793190420011127124376583324107134444392381302062928466780778333186110503818314913797168204449006159637093246367286332170390630459826404412743436675210982455125340940241185396693769584831060030320805512243625515716598382823711115463601500161115220300512630809280717006127333024983120169308203514907053689914174371115523803295426606483625730582594649632198448085135012929332478633964160722058019148233793708572527890725939033501482210854456166524928033036559228178825911568957653989642372111314624114770593570371304161982656129039443952238077548753010631160221239012500597873656113673689466076119931587273999310794489409881251744560233509120741583000518604831132063053915203396638881720483763418721148987538066006298660348752676251960639908523572243391415908138079097033149059142260583186928023656298562814834545446808516409271703114528743035204829423317304560643033626212770483374304740981341851649710481966388288126483434664653262725054665942784729788836131430093514500587519613642914925485053601025931488079799576307963636150016555103799147556990619619286882110803292604704627345080617642548629705542474074923383990119529830211899216053738113589746053718590263151571920123663953247504988637767075006906613030708343212552508171414393595544781260014178271111015087525013515120047681540132176241354218533571757736653413284412571133022830537415029048749867863705535435853253967308125314642215161920400232965775403025974391051055400875581464131824379940573812328353598706167426763160606229908875515868526833275561530728513285860556039045677323737056225000940763712146140898012347963165385224572125173694114472596098942879674285764825567580375840078086761245736991024645787533238942705882678079171368825092260869822568403371700503021583162379198735366108894782317822411659787115431341784043522649129519766131557735181609685879009615190554396544137459268844500581130717497446093232963025085296955317228589275489631537602993518885813954456790179005136337933636262205825859515625844333700129621897541754953948258459190728395448198575793055071682551268417831102557379022194956498398756737330225116949684638824468988843058889494132815002048081085110935527280991340731446460577573722880347705769073973680813224774411201148993715888527640650758333957453839381668956333803179395025749432180701468409229587479270888821379096622237877419695979945488753164072254382605340892042676222346552773724848940370211021140225929399828730150347531854183398388975085873760664054446402650189929564003488842021227075076610232950119372758203259308733931119017675230615025589357266596812731464583198235243410426653487370574544557027831588698893775400213458503756685562680132065638635524099956741388139499483952995396924068814015890869299941916856310327462316676658645499139875284374043578349086593934100059795871105066304626426555599512563367508537484765274395269872191723597229240415262690014713218800174923733434724351518832386556326297989921518473253120025756900507147686703068932627826096267935388964616867009181507642581605368574936831981572996758118820161155609131733599018449133510759776815311068710855382097617203660700052961079609104825315833019489622340426999183652196082544292964947373476221219481133644001460830691879777578541343834965508624110534145153735558322947932349896122151943274647369167662369343834618721999580287620012195776323868260796069774873500524765864936266755833709555045931624949568907124028177120914598328261765020138357383198670096287931668877117508739808457307543555629577067469906431904763429953950265073567351474517937634977515529564543430161746910342941983937653045508006495385733493235797927959886581923403355218346984707405023775317815250910966868124594313804664228303802659048097155425778436894060174014753638995475629992651717519309155591695565477255649190636130820593625488515808894900734053905171405999986446900930231729128338229506989644055676870684086251999660945286733183817913096050473528550301199292715105488048915199763564978793240958298811359883370446281368469103045766486081224426984325314022502280033644345488057412717344692809718024156663168271430453100177930146803248670280785966386512768114984267876545419699336771082010951248592765851441403551509403999293948282336747211945371372498303555646712519927184965424414687853488938642446722367123130982046055558790087543847214134789907163724850000997906583470194288460654401236813607486520725557842272980058838201215909321605420258024137340808315149777057976873156491962156889184462029008312969006470543292188192414954748176778412969605518431670005785693452067489590534976024355757664906848368779312859426246072643052177911795887981997121423184589109795129461095757112776057987464336880095855816898379837323404648597147570721752721662148335203069726906767756966385005031795316552755382732950088949236279431250186163861144322463874662776536888697594355299887466813323578873225870821920265921227601800334053450380454550537001546978764044052426838631276897750528132932969462082164735045131660682628074418208872282273106956050060026470211649845609369259329563501746503547215235562760987605840183227128059622605981559800445192953414745000876683625773122757519769530701678301933044347086924644658582166734092005849634502104084926897976917307752623080945045231836930453335581052162301848736450005505516842180170032550282930579699658602552873138271423593255203391143443166612053643397673518544454933096784079287445783955056329281453563224738807620424821314406681204333928921120151270622130369243421703298866664334727702536146059654614245392095846725829478360106273986510651376374268877009156516431875254976357979979840790588579428605368673215834295191211123981500006724955517163028918537899499827071958500750844910666211865966837633229980195490976068533996703403507010315302374935320012570024321333467067281776999134763294362624481532854518600040609061912419713498155660984760443409453470685100338301035550004657616159066073433237185729178404288118394342514715351436016181451615484933841791177965341323158706991712859387090885240602070949877867474928034395582259875868583476728581510588725306949160077788601324411963137126120862019619879245344241260404751192951807116462283615327957012322898125661104948761138400930796073928209559831872140571265947417670468912451595521911898674265525426712714041108309243729043266277542733881327250936421865256392426782461422943550660854625382441037784491561938500748000874945520514176541976881592968182476596236163093609430233128634023027331299154486821951314942184121213378475809697176159039969778793788387707016920136025736366955921070706375504783954098650923348264301935480268247078325688407400989265707616233652191440659204783079074127585845730292985218027205325138310915788622061836334324916864038995122003474839537691221457740608126351129161938782343111647658252025718339260020222115160306023005516030094677683653138520200687850315942606787959678589214628759294390338116471129508190518370385462619115823807905978127072387313795821999389738482853379132623555066701692113201468436460341322481211095238146522943087478685885213697328654573045103621409649163864592782258731487868857595321518361575221545736030849548210524846683063654367929724979039686509527920238026515927452232653868689966919125133513462673539985164169677821433695094140696313392999071246758345522117579839909094729223933683482871401191871264073754221288095122998627312770407532179537784901300414588302848988864093032529041435118250977568076280471803201754326104662627876186976644154825136213122396826666430519247034096819240415388926208680397793517794400578268528581946670789748541437239139070589314508530316777337993802588569422996518954330763772353580326101749582733457079839588341139838601182545221116844005998400028055915820568728131795955988826996531754301732262374953883803617140298164843949111997760938286031479268112192398006170647451545944306408357370999169881726534339942589712584114715590254223626936561550218700994095693283308601724311033408399507826923790476029357775493703681240631899488607007685318979327163257411439771271700893295200262595949232035080199891276080689263523072595039356455866095877680093307698483286219381587784607266798971941691742042730887528828224251656669705379221973864730787550672847449076213299107817402762084479543287860172319348165790979922879849428531715643162632674156271549397168967729662822203235070738764422715070377760811141460126091995973570950093152564836559735329159947313045253974961671299150928500932917419863660694598380119140693429510403612524550660876943925673300275151912542727191108025119676806727990078361886473895507552990617260218281487237695848142763862944297172965867356234559533107335105640360753284189704932598752959877057855092891068979154152673877145933010225806173569825841133321375932890729644118428429757646442202440463480766340360037299742624763070663302441052340066529219674950008113676247833127720901481173477461625658519379100764363908850272915257537641656006861693168110826547854771056712371221245537273941747328046253423390001304610930731675149464823273844378901552782666198162197807086675313996922340078428367217653286417804774139582699016293238536962406656918647552558433834998694820376460833328694308336761428915668058117268403841869072498552648685400912138361544783007506839765751475844504592373777210572863040710516715958490942230680607013513237759851803311324268925926947663942529796815047251226584208481778731031556595771197767916658397000619160235768688044170866678263875262259922610413085847724062368859451259273037954802822199650251438996867247552273691188323039410135683720032444033229222267597308657967581272494064290153632056712561001872450734837167542237668472560629583961834275428640123363206999348879813919260753980831535935353241321185073335112773324524305280860744601924083674563010203480890787068638427325848610961239193080652462639877653071215492226035974601958105373676868712721358010304224770261451609478680991653113077041599144693610350819582769653549347860000250369986461198928801803231695490215793589164954148220847320323063863266631334622257618365279402119353840508236296882792999125169420237894807627503656920551085859325884311005797818041553708052814040784660783769063415529707056040422313054965934011593588919853002686405183255251033293714859439801645157715437501816699765516988643950577489332806348445412699916055799724733754850006709942278123189241737195340554055850641168047455429707700166133412421716080039619026648218834053003316603375365861399659148833427595382790318263043966735380327528473269326380130226083119973141844265560547780599526530747864835369357262532580404124171979149377253542595485589763923231422299623208376847840022936879316079978394893047234543897721072468650847426909920239728823401652049620501071481569203116250367720502907706518667184741580797606707405070400831709486695584417410960703253181743039593286845505602064533192887935752761491811987195682467521462275347018050227719091480850020439998463849036621973919425532667903046367673736294619798473313444260230048646448728485615921968208973501583779097795483440927062806519371552900669096097423927034093858059108445719301705282019827212857952894680356409333242240601406648048079164039715968748889307293032873295988441551041970098288058592759801786364530931844822302385068583575150814003611459906085332203891720095602178014980867553834224292866565042883959527929491995924064598653369950757782543301004031876153730208616432049096436859302714083119606943867617075786200633555840520983373140966106313490886663442602527537835733335461928166702589594217003135460059711602729046961569472763062732714598447847918334439700744110283505825974848278314755327406412282347336610864329049629949432158928516325448243523100136614299150047809018080432368054499931048867554598976403356886982606647073475471037808012963473593307388380346645136698833108675942372738167657615178637184661857710674959153241455170865745258812494480198327723682669756490586096189835811643988489050720140873637223712432210108759532845622432681984929752675283168013689983327350435290898389379287209112323356888298316474741095044161996968944613602597364983555634062083883019770713658510766929519629687496071743164202936050468795205037869559973786082414095034102663311595507463680442177266298890994012313667825576455865647807747164688646306717425419019715021642239050362235156463173424976613886924046246862042364972642417388506891799407988779892858543454825002252766007919329760246119852183482962064627175196483233540080105634428938333694011010869640531991349689823250531155826013452993129325794637938879985403495873642927665347137062288775985848005983683217937509254405084572990389250601409457082369781103028231702442359458666133468268823858144771481989051155925997365001720628075572198904066635294761730319275856015153302173681610203296726995455112715549054156733891779582756750257137056682439345540873035878958064609595566268553426384075779766230026727761406562734527049987319999537130411767613949117852577764014306077649961176623514709209593362253934500795994393718473756079476249479040719632113538559708918500515434000435758424013712883534844415859405020804641463124883540136556701994358669571225350153044698089347759785751502080454591882221626814508344297919697267363542144978487968719424706659364506762037199877262870568254140866301291301248322736549272567855749876301466897179041251096753690602131489570366625474865208469263139764119279111469267427720852604740184332844318202528433180865931862080374404316726512232715308907089997812987700707690592893147752221956814040114341713156886639176574992219778340452667249078023111481776429306970466358439902110870114593393208627363250689890788569159694036731388598702888204426458949812108559310658900365629681476341290077846924032571544848794230314724224852544488667640658806000068643591184188879101660268211215728486529524534982378175459622789469630289629647464520574896054291212466723323585752699858310636678179781230708524117623255363211812204342895644235373992149323209071964095207302225751128247063060553090466911135900465531889141791832899349135959944601972881748681453395308893819773505723236050305213570657681411668885979735095601339158092022606404046601166234734167342381230779585823558402275204591843596027776744064733941932523100050619318478103233781781619288184919520874445650522232292099093396322866701132137832601342900559411852794130058880126511053246686618646126155637311914379314442312567258723715332060497889792777380287519978058158602088793430558576306539207149794305403600195929475121602599092785846509716701762554857078562713146644287731116509417506299239541574772746665470199737428896943181884792938037701475474657358468866097134894354457976918864131534487906183188688702584988771989271330285919753250063528443568738245986300477571453834331668313092223933572105133724054439042598046664982038206487512957867085294254728730677264902284917622228786794144559565709073380838361066302785906410994934054197319763750499309942780879571074417878051166706897442475072437311475870910319296784769866510333186894205155213443012259813808029734654480976007772326579640587362715341076184683889094826846916649594807493252464159867848123484302441961545336323280316883585132929481264969164931123706057401441811352608524011189845265192566967391564161148602534610491670795152998459424220814357521588124622975866376078199046929255764128047310168059342707501217918970819911533456462121176605417979400037743793017133262144008845541632290707785388676656970616703976277948824507469596477166451397186311129817746294056131463912186402494289317892606308825428808597595483342762047396949412302179614441557177673510480272795541698398272550477218588542500901515482177765153145955402397618358463951741556663791695705526286270503903424479918621013923258704402206360704852643353528190441573677923615822048243266066426297505730204589299641296034965396506573289059429017501231651765233069411299010963066843513205094324132902342530156366940852580693069974060754723444250459254853620559789062108387540521688370318661128417406761666315044622866156344106647173849039819131334976451136107655926734877538890941136976331863432513224134880421996423786916972120483309406084816932918169936545641202631885014372994096017471448374520012038686117730867228201926024978414730085075490564155199193804923902362090077379349274100208286722966588479039093644281474995270449818364111999361245633101414959412521837437482697477908372606838171932675598138582227897721683269931273044267270130166968008769476171249450320910212839421100832482953778360362328704997194398413262442602063432209277736102458474056166991429804296142718837252232540664688328051783926457195537386694322098706598237342400860353224766826396844243488663073949065451116830440872765720233115374774087756320349686467547629803870815965407098362891525059254629994810428318290403103735947370577929184206478856117104489135205804796915833292178921620273209695752496399500222001445655624546451134815638864212345330843705555271709798118225933281504044884824238492921703860177152873781591069736334687391205611625911491514783027536944453641197289029644782504685566889252126869837489551402549317153227679422809492687683687768752943555334369865643757712113998010030092883728668267088158801601196096139514397174787651959289249826954361663252073659515584137692813985791911460563581295050119504276359677483581087841338150034758236768299489119184862715036758626210628913130950686952329330562326818826532003468531171696782139573075802464147188160215958258353268218289024862389529406095692042545528546103861506539287929143956918864935661032501090599267600281534379302969445679045339106449155235220693819279235436241589683553124578641467210975058994656376802324611179508868086595047652555317887850613593531840366146890147234363576046278261725042529825046174481796545651509283842691649976847501633991976781599850043696925265014789062477525010512902412512437329104599231075640428824880092561006064602308616761721075683114749747700554043791821178403456699853518421819029291202529077459983632018066361636820512310541055730343233430630779012361955947516563829868288072377374986090825300373782543718850639229878038375605705113395142107143492641319270077109814627392254506741867575499936969928071255490978288710963390575636726982393366804867100714618977592196872773043122387823763152494220126253583094732074195103123330359635505270430169657859950339757257287310989024903819211199072452870716429624226232205544667947024364926984391002383157795290620919623749805249362011278230241511067155908340455427112114315059993982398863195730796179109801042171574246701805023953657074744459500362476267670819208097314324887127082143626896808077908865595339362488419421215739374812385207639507681220518199591706409220170423980662508790360341911340340413871074647490083186166285668786640640906342547299058941818233309763219275292067313255177090143004541260088815945276809682405987151988617535818742538003419523972062967857937483725945015308965429223813584503501043569542740742281004577179773724190017730463249573150045348700472271076695286977763815359800073033767352731114080204313724916220649020154426759611438115701326556605381426100890654163773897651353016879244634169473687128660390825398927931233718802748696546810146225167904401105175448150982111944226860562090354266353248889310466149793917664397538976703514701642101053800500917293335022737826459729266113326700971955675938835380074821066860230440721513444430220758128016417977292537882577820174313280246144178062187506057424093902659184333369028965272773492485809944463110396479853504021112579811162516425464987847126838126099921051913314794497312202008496000390707915491241775715211612497552217860706628505208151881485811721165998421448991850501070770641650813620635318655710742822117584680568748723130977268749883127474175241057729033339102994071605707135065400956843242861366177134053374352705527397443430686111135000505558060740800371480154902013844645847802824516052513409671076572661388315661530043054388984891170668980061998280798465008550414071002729855788841821156206163569038844657443245784320273213439218809984418332722400995345341417632663374728267691758908718452578945697548283865858664209500998036392347112564768782422391535025802562138229693161012759882247889376268010757607452982537948509643211123365076506614857229507604891315719661956863551268991925994138910198959412647223067672606855510721398853398276040894383339912899676901967845635007377679917578114256472826375920387199737788337653492856153698689551255901031808349623906072444346782167293610594358270177783586469424038699474219359407909138801933321908726795578031607683930736185572439017273902986439706964058722344973911753072799345077044612711975808858920435149860848146697741552075880980386371207179079036764739680067504662430840593199033910428134020636719673330656992903103924453825862964531982280786621517211856690942779299658987268008383207190695983826568084510233342320435139819624261092969526730271498000111071385978211317673083296017502077598933973253825088556380333491322033423876374966877018842481845368430200533086456644774950204149100588929581484370566265766403698797852088594027875181278586524436700671365642748007180058908243393377581942969824388897283053593996276308556662032803781175599798545249209608204566103563234784245423872163679439751892059316805250844178021288400068355041853355251485687668700660075264819939436349232709478295594235895011124932318933847972910287875747373062082741521264967403561504090701786720842640429392871103462596799202113938063087737577072165993153423174076077727104118051556322511419800865492110309120143654773360947036532168384223805447861245995314244906698186202294916077528663960616050786788009274928153898675754852680488828956631729007539604468867632453216187650503941562092273824306724439289879507632905817523755300217038918995579062763824261088438215002104863167969876917503376312730033361101855563993248956919699416060020204664007970765110578145735550521795025003562933764347361296001799808827375973964382110774980440556950016617931842348410258392240652296657126665328969509425133885847199798582417329771553801139517062584083195361900292038419255134171244865582386722339976300054216354432084043043520279317200987125804117232668976660274399436141595617527479004436701108808418256484250788773141351090147150079484777033638155077265031933555687735736616054957231079027048516155546875032659370479245786363009316815498560388707069819655467642863335577663205335582414566367760949394431712188621611277640308090865287725068535002255106791864745829541246517588548295320792265423673963811914370444066137285935365223021213864304231283227533652384165332722693761913423814911543143367615451480658287072429734490862120594069397034493040959099980462956130451793751414201911251432999581417760097955859708814824762605905287480889510632163886962902917190229485303039679028100649557912793388456309904773723410593457005256275651754200633897501126618345353280515460790698771950914389445582549628083812089587854066786262644277699828628182852929736867094893637542480202290145571018409393205369957284017139385462304119632782935819441748050880313858123526506856567258545973728352011058744802031837643824041997421924816507069916981329844326042856902745015426986368219789107081742626698464210530311476430578723981442145417413505441910895816430673518688749797731287162644637980544156191780836243259981263919030719163482827312776098114642501088846532558067951975853223549407439626164023428964096832149034945471247215583581273637912800384681973541606832882335642135645843443659374705914115917043665061976943420351536141793131765021716491936227477438140869117559048506865414334189172068463169012928085892088242475621753085095213902708492936874546606816393326112841788905716343810597314780286889575428003859778084517459813435557719369157979307024934021918123860749151331903429813157523989754613554886068110491459467580507105798078495568034505660643751398637577673223872358121176087159029057554995515346667249853919676817829640915215491835417292756532788940322107512794514616276798423812601269393318052921208970293994360128529029152074271422660226336545996991703162117558401479217943642254398781268451193945173877182559742880974651803597071161123970941419678271593049731121847113500390343528221155978860188129917201466521813125882207363634016548826749453604977591362265752611462152876343798561730502606061860090143954626348711567326130365442389186492038555420307893735690875776991848410575735084085454355400446549614546707543905259581088380223993571141564627427595991619944021230574784927382942552432523694893263904173962788844068670140723536517569021525941033693754420504154871445322672494713029662579891825353901276812738901228051760192543297667318369331551438205152851942718687570485062252942430398753442082821177118396435732523794582394382440649277718342948256896593282587208226698994225809177612291852788484953793805291692589732080758366263239601776448870621722561846595523891183808026037861315213485668425517767991854099482569515079492394688208594375830298916426868920164916996723736914459120297535810683618026864529908434889610167985308955416072855662041219945170897538445564016114029348413331594449065240991273800547974213838867806137241300790272778248914492388192022817972768701656857368737443396339752520601989088983665282551219997042979103057210689572475215325312600839474350750921871865755543565817379107076056781915508117300750428349931434177590707510226146341268300012306857839470303408121587292891484139202735861747469419498169842935855668843922170704839376344698896854554597149768110623663398727431212928062404926933427099081380441428717074982364118696032046826484116118705049946813209701198352713260749346884183263432311439603335482311030097473438472883082834094971465394407660944695668258585434350712500133320819119729640483322910878499716993144581476351381742825093701484847713454994870750260483393251404578367465644473376075329396993463667148340801342454835430678980143386199952783506765932367568038067009512433104037492117367090003571194643140207197831366470255313367156180395004319211274717191234532122068251063776239413793729631690648080590473920787074913463562816531733073880684841654316124820520297077751320528223746424425509244665738294696643552717654079986114222027913002755159199522786712124055656672019408573888458171084964891295006009712167662164065684714888532670971432897543212441834742697791527375349439174819855111732291085580732012652187985736155808811950675558187682985134253985536059329395988843962032568402188243474517541536295325342792227505937799599614803428880147369991034740979920883019611958478424910953538389832374969625716254052641052623148365692292453408617972630345550400616753562920691753389566549079843756227583372089198041176200171409942461248869083762538485720334444413277666504369442355003112039207780775837225834279358365913931496877171930815350118639183283186358729069746600552595832534093972270944315580056228229093391165186067330710305372134228407338254266870908867148047161724461065641978369686664915477591152892770968651870819096785322837314594822275911453849923082458990120710015195590039031453553509690600869347278768292672017686551297329944143344691525452181596738364435307943469733540289453066825039445852379201628149258505916796936890450274605432837905340892409513427125004895490210035318036404644236350886884919684194043208184218736720644327376384911851721466429373218998921230508496588416854478271898777612304302321384977047701251366065910538268394479940638626878344104490236876676483882961362520123935740073008381783874563121875869114414332985961506998740230896896685737031142752945249140752037423499383975678919029564137184909919111923240229567292098958827868048239116437863366010606942339896999171575482713138232685562910118626461833092533217201133603040632467094175254158322191575811003148591556467529966765253193597774281414478905635763014393614908725902173800441565076002919187839725650116539587640662494891181265355114529869337299511208855444430897791948854798260508960153672270545343729909132067833290104866618233996881118600343944107643146199954883133541765975827838670305857125441484206698268622659313645869275615039265431391744342456870866193725174484571591793627885686835796197187872407609781154520062074020973393120546338264608247620267272077596284361767147232070153778086491536717034179208480745021397506173219070458507870317719894088601964201179732909214756796127354601041365413739890794307410537387885285779916293559236855346284328252693251889812745298657288663681922757970436876634246328492256573668181674031356106167064060012109234657018745721989139209925429268738904598088539319885337316250805396351058056601096390441858060593575052576195953422148818207797716422341293647101946669505084760845571992012678387572248186416855053957045352422394888336953593030932175453888189073128638775251050404658377089196096496124795495385871475186738378230118563737649763282142212653097051200359483316621144320103912552679507974860411611746515558148190178412206022459025836026072634113156765454306618511885119368776051259636880414123077183759246828000843063610830573602843287907451695165811353814455165090214843422952628547975523245673845113608012388868972905212492571430826565805712662115673223678811006170249438857670065711599103167869841326472219574066211869200315672750455809372297532122783165466601917177786497557685835796891793694935049002036393221961052734900563350770688222565141611422774681638354133299118952845407911796015349199286491334134630362352719179322146753754901500030374039748863397887311286689098629093903063423374883497579568893105013067512943986182898078947528104949762634404776312180514314373996497019157232126187407256764754383549057935259349987051254382143407981365743327956620628735427263314009094227129445354006012115611254068457095939085722263014627830345288332840974891270015362159794993317408706229804838351735482842073397029077682748105651603043124353610644482486898688616480515888206803078624142115815617535645536028835997131393740067855837722580881335595473194454935648836194893099400113541160684496880171619846395205148243719884597011945297806440519434302073266459821576097515966018543856949481957978581213810992168313028352645157741038253191727549738220520564758451366538769796363580359773445152868587145891945558585552255868728421813251862072514064338230516112606518918929428635943180388308083756796654879223147557736345747155034278071974254360704837991235293200377393295151525877671834450074740828089683845777871021072540016580572746877099244948251893151336313710176292008337161335885603265785603193609024142979335397067189955998198277144056168036823888680104802941504708486541583814625130386072518029057286197310756658913152011313530285773310690132250937369417132420942532038358179047626490476691539729133030344493014838137342153049219483358622292577045535311877278648820703455579844938038286397989462654887115001684637142079471703455993980009664678312504690303803232797883455740160844550625873424776749472458950935781465762554114511884777737743549403420991794489679752769717159340109403656930525600542091556406979491339852401424229091168022291994685049876500814289014399235843122154019221614984732962701975847024415070073735199853655392730325671779060230741240079393109178591154373053686575367349596856012321050124769076514494736682027205672168392356888588018080140931892299480755644955415104021830686226349003134542893676044235326042684974503758318161375967516670588331444542358685154609635707650958965133129940612748540207584174926583574064653970987353502904535814073490241260185211283871851943949120864872908756579791766300401430027380203580488009005926123465145703584104852185655883084056358842094079972942364455504691193944140860367961288481496465906317814195711960701285717197061455879565224127831537434297862613091040684411889881581696994921164193393530217635859191752506329018071268597037186858913573321461870137709512409846867575329015353177768657661248928741883434291856185251559184720277037270212355363028689820506874700762958647615220330494615330100529499975689707530647886657681980643686927789490499483775994097953263550682347667054127136185745939618409575777736182874188436400095143704090147901855499185924867671378269509615376696246531852306047582086935978792571163073848309940052316334127285631293633387394325070042991957827696826840879764137674980255386073857369057463767928311309193031990375608566351855278348336582301966618922728693026329056834570742227181369721795861649903348540170193482887876730979652782081929168084684474526190400597207407294577423391630517929232001354905949679776201925142992247758576162272150851249363520709666456394022711563949001681034747234849904626159195881463310899255193644796241039754980598947554058688669944711931937795937667261309372507170083192379726296409716855025984861847787484198318445117340274407055741397188293504459686425463040326305353121894772203061235205281451802257361550177796411009477276908646355678265964572892803775272593695392111470640563329310951152569753188098065084276298716783317114837771632967250075888480064943010508820077548408550587440976811091930847842506825633632806099641486260036985718305787878634734244955640804381762319255615753669553823583956884103288503947436424947465388658480185957660237520706698154147298135924480908187666712317215738550944725618601160450337735388372335744735256837688824261757219492607481460609308628351272248124081121181903222908012767174349403591157023296034620111974853094986126081550790488678824364350066517558204097089724738781895459327116024504075646330511994860469377864986219778576878654616168748166689015124726951065276521326121247191348249460175101286549265286946934022957772764714652034870541188496883837308628052555742922346002039631212190866782175074375019705516717572622969526974290724746260298760077743561001970019289504108510419002471983351700060556304177041050007656693451988692098662837997791104957289455941623051331790618752894188502266517993864848691067701589488936568975386111011621945707923459082540597616569053441797784376925424758293733893103740890081546660512378552757201242517189562919195315423449042952429950412438658508204980904802121510145312536178156155360683477003921220701534857578977810861625837253166767800428090909784722460561146977876624293492641036230189690752775572591035596169971270933347089967714547892721250471629681833438670976606694810720035963007245594680113949580882402120388501879064916445288994149121053897660000386866354338620275015940436923737729663425405380122908338971139989558998450735046522153309734437467207741426655004881853266768183038339037215337157757898570245064006844061644322047388870460040251144875132114868069576955559918664812825168459616852631960422794531588921388608662908383186998989748838677461155368370790278072781041116288382086233096654823725378410180453187971547636227807790872945330270738680403813348474137217903830152117498095597714044382910352557141234666108366362134727942971818983312418095266893853781719395849350202830596901243275550931467574276379777392608352536487208166581099301907230198730373937383795344485848734984282352106178445870889059384395919528997569275697426162153949584597703282703324919712731585241202337456132123949455934696403182036609109615818753758239062387973887216410798745260823488810203400987437261923956299386819162643966972688069640713469453163843339599080435851022351231333443926483481556831436281549705301090761166954596730607231808648048810278166709465866542308807077030439970796503557855430380397394225346591907543032855943210500113014780953572555042944288088237134847671168167366546726629921169184125437954453021394244243208376203699869341518054642642782099615436671259691533233796281677494348324588540980464760762984440776739497560953983961089534219406712981409472078386575355764790131283406282810129860431071907955651908258007371450600630074034511420376175160651575886366919813482753241824489198039619244002617294663204028234603971663945006516233723571920088397793727703557677546629022520762008707170934363411577180942916691279756006248379064154575567643945061772224490132194037705393456004964116664129742736872777927706098908704183654755022789416868868632134689799310470384083265932749611430449701778112357983424736863078246691681262825058609241896367665748775466759595490676724742190004366197381919572112490863715704300336254279507125992105879958638267515074326167633773615310112936041174925544461556609219283538051739427140893056933309929604165478056586854839262628343447084785131999449918192829468443732739666176999915120157291791166384022022741025552419721467346938194569799013517459283108065153035186077252604808069485139903782317469536648134555971954208922197123304481313411020423675627713540249346314795277448677039059509662987356208436010267306934411439116956406868281567211907627355175428116006234651739678918467265107692836525455894621095012257925420560757732509528938828541067933922919940680827767524033182770573555522700857699523876969665069340971773760543471460449321988015302849706833026029799951803285627397796605922040360559502301984142002666778425755306919690103053950930683686529385060741708259877750180503113516015185095966261393432898507769477243785068997660279907890105867960218109512596186126888528395916705559780044778614804554124630128742700186976356002603688128814875368970797460140737494653782641975462469401107005031160019209649412205713338087025719785199345360567800545956838843156513842351401472642041661116632022552370512316366244610004254829023810846062551287485957650625671096456503645193443760195152007691992396975965152912756947444023986199666211614247690491583211240520132757367719377656529228696563749242902582635543084018365081887214432067371698033023439392715581873975454367086853497528919943443002820823135861510757497785973172889558889502066917830368798499266772687635342891804719262590106087242136487939664028415522542493619702882112245370209293120455486539575830145562015286199274364306802193670137746142855668440430603730521461137703483407404649823344702740568052411163990576719757197285683008802773901273688070653114078491338844644070040401359299778930435695144485165209220180944424471042741769809903750672311519521651324935755857248224344944557795866134034171708679168067237133476158069624002454058426479092585101705257212594418558855246868514373952367628025898738707481528479074484199401218436170585339847367370622791232689569086948426214927351220364923190491058618573368394475831477821640165663865482503199068879211500499717636534359563291136824155685887452342334128094067518993328717008743476569468638707544340898059931654554936052337137832156798106620589487451535194060315934036096006946439351242602328938885026686019376496112253394056831511581649319927045763401365729486263605010314751590688516354524354601327857431679662481798734189494448834050633224720562421731533599877459558765274375854557475077405991072155218442556596658739147973362151073681217450775974980129608399556808509441866503907364998756789616559169402620290545468318713596911416666711974206785520511057466880308827411568200716826416412000600332124851078560026169224909362129677457881406001648872096558232444351320042339844658229990444558889398033897166384313389478137841706373000296066924274829566387212210971406730763836778190338027892647745653866315449140571071227414465157264768932846788130277910298459584685809634071871782034891829609827961473181845172839771786010455186757228032949282395073774744756257967350616122214428279644084216001720538534386822185486020596412687478181384695902198290325616342219938511834035827581608033216242127656263295138280728596300896809277406850769424770129172272498402621126627640457837782156815351260331187386348277353983093784698568173235692755568124037503923398652785506098266039667500839026661724823205070108744604705862592405002362163475638832396037832785215181481085189778745583859226780669320194806438930904585607872311745086934861537637566010584630703836361967061757510321638331841866108463921449727110574247974757195649011827928285696801013388711787616807960985637652335612985205934233221680218901624384279985505858843168946311675912735651738062891999453501337465715658545941960103383454151302712846563814014273358983126411002778758218278265963938413958442577635218507136516191242139251321210946155976292769173621757977973346263887930070313362316190738290502796839908913686869402389537241797132256138183911932888035112428159636170587799732220013800998412042106810285420045031084724448732021501214712792562234818725424162492286239984063799834834029619718202307476171565357936732864657461535284733620025929809123393053814736373646296788827705136449502305844646058922693848768000647568981129314084830521812897867013748312411843237462735823711746191252908013881704355950483506810672279957621550535360008721177793769201488290808592952713427738774779620132187808289690970534375884652525814774877316046942013091324101472360618970934709743344327438791810621836663788813558751633167773886364195805306829673309218717602889882508997593383866586875789669347670658970660735704170024477375450080371015922656131924803235874724198804440270244809683762997059670129923601795112293844262411890663624088670020083968261118943940048074293040612136119128935346347789626359653197940189646335419043927161085576995478901052721170617235509877605775461654862014301581669486905363656413001803548037118737907981299067864057846961322528930114641229598630149364764170415086447605052240455020487356912588899029925901843743299059680872080037621079866335549958348869990301844679605973581061562663931222870589204400861159539004118145402127823053095386711615325255959751806091230719632690622618758651763069162014076064146339670664565176700617251664956902500572800453788150168430315954482534705233410773363466783429230232093271889855708442046840435883442587122730767230848363590956610102873524029891938082408065336801093549828536133054822534778021491063393730803162678241538584717158032473103143140309880555671709414320419528604471710601908294642756543225368363642132303748907659431384476257576066713837435795829325327260159761090141404544073280330687368035465873965858581433670648809009958062646500152002790180772145872673665696954354439850282347294662508222316619845433440836066654512041053151663145872695507385621469874808307176200943479663771151416664519894497927356426515218026390916218334750318717821539031188301460799975258359553565660772375421825904938959076087332330048101832320778768861576204167251050683174251476483612685469759153514981501236971513235934866396866185523509669307421219292034167651646047325861896384781368268712371500352066845596735224423572187222483712429947077846900091736878463898920995481834369724944076790576843973238558347106056711179092704451697245012580653619875126040728083292152476364425346092182589413854196677731822830389697798046922203617923488770596804570317871325660226950570856092727286495565925201294616855198469238105783893039037349713820808567616730429205668927404411743159471923001008904084754500210403292665639896586695779171346088804883882190187845898897677972709434119948574673595528351926754182570347004658637273957942700351957332621961489268887301376119995518284934825670215424573381482263943890524616608799780174275780848891568478144219289118374467024005876428272762785144650212127076862452990696849579220384501371848358047695051614572394044072232409570995343371208873823957673968701456264623508558405887736867196452658217369327797145354911397823146864845665087456937495442861076393738490155390429910169097358402907139487228050565538770548989800981864704783292414210066245799096177799293835546484099004344140763355603521528784843589710267081234349367411373393728671067724352404276958011875216285089949658143106345124929270861821825303495039353724585355710634650392218186206551677294923412759829651080137774970355922043939538908828582177422855284951215546547272861773570105215609356792717514385533254568761136661545984003617163258552225703245156702199864659132776986296163963463290071833790021679852208098468060900114531150466061292955996687428966546982834544415680924356176851429439051414572849165813291982185241079387116624050061856768338955679168604151816910351511109133582493439608005767899253987849374571787065811344229616178429569089824440914236832867580729019831005021544113294080519932431810276200487046217378060932413656667567072305020697200692457924923198618235750373406467837041701378369400048823754225032809233935182764395495332096288964464412428952974992172394676734243168281282354636777271892739139822667342499443156184488722489747642408949227027771079212677051976827064390951500306361802113190960324415768656659758403100596865530498348481403020482456432080598888032733101529565073866741047259830967078205841586634913132740447745919428820909552249095103301069705607718447880487065275264764924221942877905428499409461063586993848583436842563389392245575990870713183071097096641945394088466639543862973119575791141397477441345205702632646397867081184865789617373349999936694477789498671188067368267219232381492525199255444692663095373656697359631250305690817220951124638196769565077529332762985949174378149340648885056362107030749890480183855469457978168219810574556171019754241711051218772808516622122759108855576695366098993981770706977935754616357667337411241755365248737161282951767567837734753781267997690732474883391729974118983856263887873007777390812314636032311400538646562067331187202174086951311451469602049349193079471778102027438692417592380618105901479840347534123659949186407709287738094103465031086052446103454499199007307013107034369584188438475806326418589512483812004558159558518912073573371188367799075351896830814086798158075889807202884537791159530658481438976968060241658224882030089499365955981662357424124364123850246422153805914736353799237277654267054207226534900793902314519056645920584378075815909267677299381026702294425109798352486675586311715357424270283764269162626868672886024028823450239034694023944258125800881502506415283579839036138316596166795477139976848747484981825342616564036079963941460064676466703410522504531955946451988465184451015379305346318516832089656180292456506465189670750653300907150110204673479830312924088838330542587018564618331713475453330323054154199548654268682921320469586149871152738736686508062640271643843569790575244669588634223460179843648424284144777450914540504164670836098959269697005461800920810668456013301299994689017554968525973730364350109506753008084553364527821935764702097875937864192298918481623069284991075384186692765460778117984601714243885846646133729922349374399039537515704259082194028290928164855681905488576454704682926659824285472160206154983516720550569882814170850076758866501428460337353355334460073587863215200065741729002935599676476427720370750648777576109477250866255913580970796251797243346667202588197886253430046239341469545627284308107153817555543607479926901924224348777605390001635888916130275158212838220531556927251232969913197125873014444738885556763416114973870214963736166805046865355312031608694901656701853335549801614448307339674763816605397682236259458572066659404876569791397123299593930308845031720803518393394625697162320744617994405570004594195652105909336737786501423221255228385680420935363406441055785246720459150200080717852164089427693674240361520331790338656571991255468642321100652305251389314573099897404896703463313857348460658584442661179329307638620176013078701811001156379709524062251102620119106155576526132087942687112970759844531133175411620349396438428538943443711354316003676612103261229633115666819397049926308862525866999200370922647729093579339293698284086820038935483483968797617942286129157717453932030001654627856391855810387766880229557614385023759410133980278493523609470481813110636232875304137721650117492957285113454737803467131747352382865752905328596902979793814257554048901003658850332471611871300458819113731025340162225998339185915654519383809969254202405820500142152572709304171382461942030077132861357885371741107625940398760087188707217377621996381733921534068835950194111422176923303938799900597356935675817764976278746032611408198186152320325016300400130609943382119889495135682109249988651430828724927465786765468717139946823704996048471392648593379000651630160017429905060181400027473102004376748374678004877540979928552160750335693406915259202336578840775069302485772166473054247150213746092178165815744086938438285097321610599819664037397276589454027093051937327673832606183920060865561867263454950187627506434407761053432910249468729326522148419830937235385607691196573766363996589541338356190825491899184797277969564391109963454447613462862107921713737414401952849885420555192954439551809752750411857098730207433665008986510171875424730089529471350509278762171200082309659291772127821516856920884771727769281881037101458998059720950563351182339617825411041087344090848955193019622935105124021651320287898025137603385581758157849883062494528408631374704374816201061502099526168956417965470027505144640773104230582804839897741384698228744039157370084134909332334010196025373741086560817879091099961901200710337681385533245556511609702188708615937434573804142714175047319238040690534018209488843787444376550598037390754607512226291434854580839110131787444174089912351155599023366994586882552228506571772887708015559027802037188147613585961665251185110311555299652183757538539611022585005292998760888116524438148212668396572856967024949059868490970267013328520215015763328288194334173314249073146823049924071257956053533812795138259740878853893988576994820995691207695697178389709011616137381459034794485178348487376130622574725118288002090482172787712260605671517979422347317403912724737321222042247626269308368143688998642903993952249823208818857433060397650647861910877122430438740267107155756430793619746289894297816361799443956615496393821347803923395668738744809063560646573347611530619457423926371403159514933184038488892442828712625755376654223424923770715795478330401281165340826298148343381437928733974230525626494158711662312502728080800578629863145915800972106976285189992388021394378212175725029316576517643774105835759152618329764385775189882875539616297987781101426823150128467991475353279067177309617529159474475666657350772818151098200697987642460396082208293424612103365974310330868582659462650198331161508040044875290989533135166883795589402779862202607348809609045515857331201449252330963522510397782198807464715560141967250824908581145915464595300211347144712936352550947195388612617807514354908009700838130503104355137080859775907482616180610655988697313277285709740038360522600898116926948549301210705885132227870726859978210434577669837924886996812729130574378132470124123784260212992896023490477329835394439885804289400393253863021605582289354277321597954712796936589541451023719826478057383305489504541395133666396790310183689613702660762764948419492498252319727974397811629758500163933215518872803052930887263529631691409695247887557820760671626051379596695892570071821393201863346789883797561438187206878303544762944714537375180312729106221669642338313960184062283557647786639058667845960091854574368595781550374487736891171084926161613466373895295582122831887168291198399999129494230504805644068355040150846060435300640449391810679352270631542651085800329924675683742321378821511772625050706202941593700650878648890419878566489377884776460895745102242769252721957295429859832719646573725702768180959337577581098842202650985633935262152557589057627106199293384458569314798958517732230789716224897817695992768890575388056877176545084099432134379040309825172115732588264845718806402191338937791826896626950726388385911769949076405546933698056678653171259556425990580765190068262462251568822141596954944215261302422960152602666707938922634739872092422465673578799339028315188068602665620538596681945538109226953757458665468694004235456051823429436243461743264266994743281936490196867644612412224767447843420801755761909552837043612882206993114720193770562768005985852330179805331809249078781230304014438996420864715613175562433546443955293698105756254840815133688238684458489238680612082529528449053394607653485398800237215135427727341043311103256683503864383006409645913326168381323061130715584748028950021084111980177834368562122665494463349627376343493563551182337272865756457639372123888470848240593649003432620665725233918901460159603113504599828593919170319864600356001328826337986887163878922423885137468681971049367307827426509276284596419776675467102552871543567013379451335542165520155164667717165401855274676846593268932127238656039725962107574462558081156413007495037070191938966660356738291733698199053887443308330323484528780765926441356651708998707295030675344621449776606680018332726821704358742562055001570881173707155270570417589056479051408070790907967472759395919576251872427431597086418995030151486442076678818366719103298943761392756634934896338400713840875536666548134545728120264741767430559092961466813488994742210434142965122059389833120825601184265714212040914887004024789107582742145399693619208794097364100156581046826028276856605825427111821944317325305137644041722685360676084744074501153218241452231721613025770499302267985006467580553295339687872918666390771936326170146561554487609718490929436289669630256734537359702526064021933038051222733470278024529166167149230176444280335800189627112078161820754239595218823388397863768158841166906241151683171505572240321100944811398616113304913102864632579025374956262673075267654299120546987649207708785930116422328184041952983741476771344656680061071969711513273257554301345597357112027816351294874881856768178677049370573744858586962840226504877660300556643742261040797749991855069708986191467393893256001693941188945968119433430424535660826831063634074541345139025079464342119901282294204470008128502895420992444926113611232663689877849657382196187638295454025283924427256337966013736052693597434778903485328921609513582077118317515177766751806586600570663563481458335546482968787215918184022370410265473419674442445254986306909714262397364473606592747699819430387602990246335116821493761279708404955393790078882510380329195510220037174294259327803892801172650412204196140359692556412320975131274499048714105268273364066136671778167089980789928549353618131675438681163731243718854031164752152757989709982406698465016614981483244147152557589356673182957915018982442375366507055753683334517690189083311950629088500801618977556240504408908481865061330859070357294163060939239875737064788387511385217044281378325941588453263589312697075679686623760350094983155514092090431903947725338043210411268151460812995110555156201325334412031313835259514386788758678385022894933166119682811302028635867957666631334394043347247071651660184813724016057642180805985062414995241062738084497476882310434124621116920476978114602252215214650303861868244073952676983737597574459599964525847205616382092724547116287598174240664293506441617321099864331606866508195967600753730344197546914112559948241598549466780443001301475739282253690452751595942588157662034960569993719099382844957649350098679584157712608288739702840580355226690182496408110938378614070528806873042381926682024398385201961219180754692775971228116026916385745862167867338027410945094092003772628348553706553623569557800820466345243555570837862928363266753074914295864890811312096455174340652654560679813276850085369722874231990009257716664587810075315422763684779109396254375397706431541718402826499567224842230455226130496474986152836864750062045679071316275489421851283402273289206226545519166900742238208296184456206445785266228887567934777404986825603972685394960053438469202635806085945629108711812998168791000181518126627005197601303702294226617907144204429058428906538499461828271938812407961394609008422871991660156331018104926419428056482985879896813140965526859018332971681037624300059671754281347480349715617186239626265742236032178728204740382363210437174797989048712347000156305111833391393473553715905212499871581137692952575358055222718303578934807932335007873140316535053059167573205337274481411680532661875034456358414478441494958624392327128393393043386112544715368451420525837876026687301499704583738678596964748015620898853759863805432977192194695397214526272237637468752654182535834544884738942828011465078882174521432549962769977874201446466520294651662497895761599636104744795966637740431641948682180432876954174688056134606247733756828415196970488351863161163787250429504649566524930152812850153184054597188104407223475664879492802010111804919451451695810728720213108083700784178591918720099029392277105696827601074685688618723242669511263014233215806193384683362401147152054381862997304844846888664087744074260305610323938413688325765422760251035347873085155671194462446671590993232127053763589008705659204744973798695974238287206200153752924022854677844559584999579400157840522513511782699803360615698339570277463941821078159283213489915595916762982133388114355647565228197080492597218785523137411930542115179573140475922224845940329655269377643250562294615781745717528796209600107943687619381811594622112043970718280199804657182511059955444895425276137565598683451988887178548167851193836526428410506250275249450231879039568455352070465508723881078073256472580205609159208002617445087922085610452228690012763848465861241290123379168405959656381588118246115955748726916487838547509887840901011725562435750958011413292876212173896059915621413252119045986279197653199847032530237294011109130945369973230107046672984746243889707229514409349264340413672941066841636212592141103917241917014648763681866552350472665754596623387412900924999262814350643199182097611081195952690538672374919240148989449575013114072289103651780407663159291798923208132918018908324739928443624849642876085041583973655858221531774304058798254413776898154948601108223732507697697964534533867941407673680355005522050073633264348044966363642208988918189332683407554837943585537824960522984255666656159013404671068772531217716310088931346957910869677369480438838874248478850271481393352936974916633374745724068495427588520748668204424237092721953295158227149986332327893021233839960239991882484455424318244287279910776879376948528952817045460966220155290833006905715308300399357286308859004838768536311587362759837195002304349566486037771871009663645366605239937395983571281139047892628929197196385964937502113259209874969483536307928390460734865576697112464657220041040925210450478566571656516766446924478396443212609770044265738991880499082265668475356079956283702718692927968439681185932001159397341176476875130387465684515582038158823651452666982770568917217067783504861896601018079847612412407174946547029332127892961499317923361640399942843413088844218097861278891192688350463088473897390303717624642274414310422634476465867263809469185007342010787683588763756785115467700411983767977590454206180810349222367357537903536126899750192745482418161547320883879646449498721656656250395796517848566235731664050842657935605285063052273144564621698301413266480418175151461666563175361563210618075976085258454229793952825305976765610286092576208576050418917570317004100876540380254535215169376702663355000976543015550588360741986827221273419727739731352964966046723224255729472248082471554821698910672871113599815419787171420191058131383351081312078025129680322095601451695587144830047773612440656817620066648670702324817340425599161764358503313678622438588508304092435926324210880761003559150714900725113214929501242681830083423389469686820037872084323442252650255900200587052130929782358327141634102194685591481166506524680524350177275972817855708237353378991213309678206895057211281496190085532756779576942769525147894838563105592244501970454903325906939423494950305110696114137287527506656060120233585669258188139679200406297646335194418341998438417520457496860307538912483308129464253554164237305011116699400191822153009739923594627519360076313861560768433539940683211798056180352983459351127234885656853803690469648994208713335153713371537196644092878252280039659602447777905373952029588501904022213055462758593928399676237080960416528574616914256783087069089525119050829488724804883550683204920267076383371463901367309343540888196231531757319840269188169171999389960332971701753872125029477847202208695314332535997098900136357706484812334230919734537378941866696416387517375476617189952917247302089754108119609799964953140475872151030977345899081935884895232152646751232181168403604930948558735307567371837220663844119229750874723147470819195264632111852221077424113631423688463833881178292478683605405775704830633193521402658525223467351647019815820825921329061508581794534000711639312264690559434449124572970751011108028123910875253723582788272833948681692081501669041185985167955146181095218087585928843597441556380034737108953773743462484128694464878212686727207017333680593457361989026015469304902887311619528705468322525038623411032536142711868627472323850845212521756470923154984707235885850275348733410926286922081824258863188428570158394701832213912105891088341436854276711167454305869891993835326535827033970808937937692990466817970186817138068061396438448307236195662285623295863224311735735782617761572545912872530082003496854632159503419363686381828566218108169936584548248885817961325881810374237190802000280057260641020904844985532303304116485312950384978151897555051312273577839243317937619231288891666074879167983221330569552571909823567818185854836813941377841550284660387718660710581027663804821047214407098771608858494837935507065242990285254386027457892409451158577831966204165298669952538501044150771261890406938894835565183060227230243140698891555440247281875959180489614365236746163878692907500361308736158811252750255399409289872375544115240651429031190970590236246531631135610149197318696395623362943333480390193406972104675419020809106840529296341726863358196082657670783797788307639408766028696227869069097710104864652574627836331706908748911919237135042855365564003399301487079330106674970673038809607600721376763532141489229665892808122416774292681153840761923032632080238585314993988345771945686459027846348445475401665642358648737806838313315623452972189934842291428597352114638067151152341129101103434109761614283276699461447567792714464802564720804476433258007458385490528514179486475699751352805217609545734888813727959544470498167592736729715660615092872459304003991783822979476727600904903005333014058401845341308760689144249789702264773343478201877443063894739918959804151812138754164700390672828572545413829558205374159431985236560927912436996454159805822957500216679361345586961486892367937580199155686106811162612480236694000957305509647868954044290212026431109568422861681141141969278510268746479313784246229638931418569683990860179745501432715986375720488446402789254230300482143192073775298696086620599837559402193927188580835217245752378025219758528726787752748181337181613752105768646682148007723497939825322384050867605889327341717071554047511033020669526687823994819280823478661698679835946867118502782116708867524334492774613986221435353186320236388648644495183419414295696948711299150078564182019434782601121074307597808350915729993024744091197420418067546852695970176304609472710654360532529687822575914141223981407343937592586891316457232948990005928958380342870389902105361621861099898738915616182643322202403041554181082103206787751158290678511467729649570592665917575431229097461655153071729067741725509957798709580235030294272449294074868603567572237014115783352597570977115862466870374647686322338792781425385845639110778792168486247991063598390659964584101201701568574064685832994273397213441411507087741194982875421896299203199605429044523349765085910749774747710121063393596309861496344945696769552127732083521437292264069028833438807667970500500803757414984876771122078249288330907095028031805907121047329511001975155672575269987180665488152550478020082073060282582652826730533317077111817810654721978747943387535784536334604869864536775221207649376936942315849558134605394926194574569664398114066237489987810245507268963095052604165827611066460186972131465505773080885108129318127021882373233252045953672122371592943378216601200826081765751436292450551806717523498520689328005132860603197819410961156141088318629619235312112327820089904812841907211111998075484868924971410824136611929714214230825498405785414038777518305494829518283913095645431945740088465940956192466870786487102837874858247483486033540644247114596640395198449015380819872261555320066344319682408294728123191592460019875609704741507825831242795181365499347014934679964482771493264119150745978603576435705272298685024745035706221174700382105696118769598537456670728018298148763688863622063043813657551897942769260607446900343684191280562217648163613416828424939596980986877922047783861476706429414754239874740410322421235259610152090004321638541531748956752622877986379100319596248538202351559246040464858963752588726998134453402348935999835792932771061233615601285677066810100046307911005217984180421695555276185173070327790838046002895619146645900223479213524515350283324682297367173222036318470817184486640753179367944855731045975140700210707085250680671983215807985515117225526569921647643917971818804995877563192310946713763653222946910509364170150200653306509785506734566763604639522758307951237428538743154613538532395240735937999502074772328442046007202791030300355706785454913272221897868393792105886736322472761509223141613568814534963622592415128650473727781252240527189914622989244402932926238286806116043283153149277328328935772585325047871853705476545859235376116329989088165566110979595388302701253495115747348323920807956965369707666719419911416108072980421353637914621312115064057427651331387256091967212486902204708708424174541908236548856850290252017132906657468537055791748242077799307855995224641466481388899748400836496774725301810363404570162995109259291456105828156016710091548696393050390971077226823418394634396896657806139102618157808389383786374815494199789520684667053719150506969601603133128722538244665550245714254507982475492726043253446467692730578013240947943691425356873967332794601045933145388445755592329875288082155945369922499717820045816776623516800546417221071973856151291108432419886335089757590886537188770875248689389475816906801368509146637857207095894770785973405716828946443690823782882561227969603139226661802909322609184266712437581084921508104633030880086437955593019405218454903561238413611096038437920070509877366871139150200817571083713257008648260450329155872695564748386469740881182903930603260032819763620614680726377841135988812951166416649553097808013251655224699483761303158236365582386005863349676739777647578480987372205023145029583684771594167513416500731141519869025486024965034773274707805026002147143211732036449168286688977716152566165932484357233856599252348795045476196930252277856550372910946942076492344106512482872321198344150924986013904037216756202999589276373545480653442445063568581755989123244542471392566900897839750051480579995445359465957662336721562222576965833104792496230580749456035569438672621439340310724025390033669941412402977420650363832960695955341923804113026000118838311465783086033117117037219590456064699150442912744849676239674556363108487797414955364205224657191339917030150806045349392011779538230228437120363535117852544370355730254275145231147322274874662582211674375312414789484497424168616521642878217453264029930740845218526808291725701411153039826416148822673546755783234973396638911157733488377940611627779393045196094185548179409537848978297082156912479079607302157022740138758547975790748960849055714810146954454066577275394562769244351500033588484779713145664985661533810721015091428541934716019388019447730692416005432382725895361801489923864739720670569229581707340361950769553850633975890109979935906729417556317917492706814389102520808104356043428892601320388239660064413066619557115209734596622842182582538815214287781271743296890870582821637022758415356574272775094255101921524121051133977227582427863763460553767329318394912919248764481170245150472927645083472132829432303149961099854849315976836168226802297490195585508529230925242000183104827913678162561842510762391340777951023162263774341087613558379064277436965673850722207868372236673636130475800034625195870890868220502231920550719330575173459904486418350607795834584577392939538574643928916206473871168960517769403130102273983266867673446452113023439655269073510979030908075705548609835596169924619185529364944140265230303958195893721345218651082333282248476258531625660452076010002531263921151263332343337993342816199509571208320996008342408421519484179970423664519943625879808346731606871647786701091770068944848128242952816450720573237301303905339281088812976675742961720702348262696166135653979704922537273545299368477617726961638882530228685828770649737123357653369637115763783347346508255835931548035483002763956105348004349028935354834637506945763205513313938942010829231015747566447468775778753689008215468873653115664098568859897558308517041541061849464035206317261468456476176623943973763301493632896974954726315492463783314467808212067082231311887433074398963273817526884505734793205180380449608009980809881979094194076738657709354813881084489157931032609479620996624755091991668248335607372232112055444810159908796223714680020413110705542150048296823980176386647625209784867614120571065012458636650831598874413678445468697688287297639333252796270291548729404094054679143477035403820285316417901174498518035682793296878577301205115416571395664890748411430467378177103315232354638320983763034033947487701153030162224600378900820736481136094906558531301178402032983692103815797841051713268853293803841497082192373678268589891579885291276009502507988113397968152785422112826561420601085992964349571781130790098469346638314010283124016095149284466407528314450475602714569858527529258372987962530450882706835836473026734595199309431147322686077272132017219344109471217096755813428548254903525551949986913413640097201006521396631755286140677826868481532882047704406619230325335047928218323634006319737065941566477696641006922142897949390227964263455355534204857420139940818015005372251385080795111468195291049605455614547523126701653310605097505876289152484481000799372398054003736096159495786282287940570512481726367477506014458733893921581605497964448985362842688266297891960328108626253474537425659146896426884373679060323460792500186358398645406097742991352527887790079443441417372111311023434605058857890754913240509938218679970404003849004625228607575439351471888953042938772444958057193912371122420226340805523246155656368190081042846052726250351906095350012983033582446589094867717544238119209808778786896959064937157863377921109778122194024147614375261647194119037288847186052360054707155196991643569901200054966281359602424870894195111088704388609482950261809065132415196754443290155232930268981056152508326961575008040170621162391891714862852820977659640083893156755029402784525878402270475840711534997181800812751266424390797162710006953429448450372709367301514298460892487898830927912131171256357647797402297036290121851263562433920280353835369792213354090120958732899948124666535972613293453683953172147718722274783970677672953872650331535618981667787737314692030200244091479796151552807750012566322646015970856438580882930283575565875791551533418197021532905571367915448505829220365283347084281391098823005397468623551418142844183858214461304334283526571322147526764272963455918427687232216348956274374117361605454705706772707363312722381900089072363868658089504657548090812579519687600220191964628931335006717805130489299108727886573631875576937252840369607105121381865140052100455994187557495324460373078160497796323655795871355384745000935437404713758929422894653836037226029830463056527759091211240980647832836852029110589894348858079067303516525600946542784246976255475277667097503418730176030532203519388194809609711513486420479446663329299679449803352712305128132839180451574574673216277458715443729047932303493558121413240732614102455590485831906982595640751563172268607637789588015805284428767655203662754880607874831121837190091087681839189812939190169767150842346945983454198893357340913607523070321261333298812148381726902789617968257711692803148721177792083525773593674637374712913931736177353733615380204205532085082216039510814934033544478431772348131362982017196060489878982234094480893608879613537597077208413110300961201858218506081039165407324672683054993484453241822705316438837798364972306079633942910314371107405143669478471236870096168265246508046504605714505919547012866894340158687357793274870559254002119638458837920234137330678544558878837271376475639825815503860464482394765847756784748721938424786267431667500865312757935953987688665725876166504700275654435576893406180310435033064086315494348351775829360021309158806240479618600029802511921512619991052694258317221451573573708617206376632004400231247202515860022952907733393237640528088756483502757643623656740583199137956113364039763629285611241463936710320484560385632583481659303124279867665222083453534562239423684748125490104918979942652486072036898022732982457889706936828191751099840994092731731348566140562862420607325025379881613384189429965810006485992502456136681679554048615952191847914665735629386994756260041666774060926830745566931708883327539320253020301848550050251295487461727092601924988334423684210970455819557079869799410463015396297166061211043968478235745873196646388277477725136053805744152427662885740642962444807294061380672303807015431382427587045038766578518814678252639211262394497839756262786332702698990415367816586947382062821366085121512104860894498237320130563579333499786890065412250346971857789330686243443117033420188718661155295764692780972397378898663588908003296878242502289600582672708052773496251998938580763645465790694176918328350370952171203088633567268256614534579489177923389367397807177812819008513990781661139924270717459472990276460764531526842339053703795759307489058762314297757162711012809852217844740953067376130163044167466158398726454978826294749450860033781155644260969452724493139811015865135819017655137922135738914983302764757606236449497724222946573114803513342247359996870120336497712993684432561803162832835390064264834550783432231281340499953457418879997494757203822640525736060649994943706786459482711139765795467620791338334274872898235003417362953950981666994640927069309910685338063986052955447959445030122177666109937189072320604495636265553867796448293041946602553723360259644746561924095854056441558170252107785462741874823255068600303238299711206999383086910075423069173261981696086524992614590716045091881158944748548789069330841878032993819481943169704013073892207943705625397290392713867110249614911905151832541083420649577702850862303172760833647747272642795058598336892745236980097118008219903030252496811597010938116012191853514845619608798489605634204607240351803187793747871043089872682298490738201670274458828562411325501741464455448617868740417981646180830907331676649844414663375898346500665900265417837791324488641596109469194915614981572408198564316724558412090634437373409166853716640700704464553601985168841257063473738817917061786908990066617661410400604561653528450745455580316414183218249583794841948929782229757364511023240530893722169588637464782293767421191278190171652734665966637200377589108315258244572291650138790144516635258474069566393662214278244527379201268786332233844531170068138230126965899405971639288827232203506718786909702706954168040500040768519685326832161946360621834892911626085989556238657277416968705932307806399646053504390127052093300664431361598450987444701075012853632772691227483778850663097925321344517245148102338783977140244049028315343469119475365587170835222754935230862613733664567764959141856322156275853864911399354678926256841860440397541748043431008346968747831313925909170877960870274923030401312645432126369428561314278947925302776075569267050353776179140195803749410429385045910297361814106922929056468429642056723595970942285839107878719825556468071286907892561128785822409875462474499456101140386442262756015567881709830209828549728323808980658882635521641799161216254370241744742148853450855902248036667950387485720118859471311239740399425515907153247595968881626992317044830445596885624759117226808097998371994393041096475922672248703060018702113356709224249866280997566192729236792330816191704789931208469241579240348981129202608757457485345563743511071159243206414381083444674893943415720537142282288284768673739031623809325928489273868140970207958388258358706822579889038721588969296078978224854093122582163079001488471756286349096940725420093058493048742521953801627757304701737823055999592193205185958848298877026275265474842998224235212550882736349736305919577450154638935732981608791793673362082529937973086970352846493880892525709156215623154199111222696581653071837686555416611841998905015586826056911026235543556505929991545383697221135339714120206578405841941433786836042985028637121723534560187043896579703760788229611192490616514057144251676895731006852817811009575969787783946626241299209576013843810966415932383181580770033861932607139128812659397128422827410509970348649461914818260781318137676599726557216399233820492403592992807387676616620919855029564205685332344217546976822055565644328389336026582152939445484444372927554343617793771805443968347189253554574944863228629058009006804261647707939616940479061918520011986092628451964162498326629159089712735708232731047697966376762867325888635677153349510854354310198987905738545916900473473157773721509922361424646135232243895849805971440564786820986050986374676438908260762720063932926420656834264956847545661348401797016229331398978643724694574562385276149708473289006998826794844571487763488809098999999100635626680022731673868551994206129457853430997870027033811925519822903082825147164201184773067283074236562501501076885398609474172650058185731384390882537893449260280379159391834527576452015938516618935014974289781409777675800864220101797584698165288107834532875609381048946691379207100075773480882565603131623407609418575325432755741711912596650512858605411496893546198315995098579189956069242785047325749730318100570388161209959408982535362451780628790797516002165980469764889629359552441416541498035237950738472042865294821765700573144646384962125886003087611991468018603453602692099877340428907072706332177064907696146170243345078048449718918548863216784799395803079746423228659630213665599457946751174399009530875463831495867361865910964928255701366466383922191700257592364921430651737825861288783845958153446033910241070345232002394161882271255785349738116019993941810448259165224096530739192596350017787229879913899265664702947314281484129484214050091700065994350821007624759592237688811675857420121671031689331265085802795524873767378781126598366665433030916797950878364237474313435861071898856882516789685033186581108664557072219023386473020197682651296639135988708006317609288175385500535488150366610805480878909886624563458457208359781946540567675222965437432238106815020050471639107778233241496047744495559869973086541548006903505802139043091118652561246435820522878897336019633557005538293476936250073744842583434781928228577586492411336320703780110961745216979765892537450854269031202692287966363248975613588025315432225050787377496287859778659816078307258037296378618696703777821068785371323108071983991943039595175105470287390574256571385772235195705852014154098651002899511139992039978347364595329777022497894416366932383555298758027457225740097368289793021771657827118953812836242460118099197056922676907900413063100303526055695393329819181597519741634767036655256013727572940581096198015114594776898533919041495396162524472494369659399828892601886968780872351948329047133808392590868217670511490792471555647834111818701833130142675319612474126185050221348069697363122686959043386241688179460478675733581455818113812714894438580642785257636951346058503450408961502602963296094887530714182370483319353119546433474651558151881029748723852248476702252276315941549716090474277037332907636215997947172647969213028142856594363524075434419207683429934436580590797542806197821132506361828882412725188715827491407602237566797591275024121588374375302113423780025213692375494915677723972910289995369460156866802671736386011902168641571878763117908532794809571079477992725616805239209768097894302672524901542212969708449789682842671328715542850940122064178209796714314644247117911844928199707089993890680131981495062354943770312336812510144468208879960751253211458416990148854676047105935953629822542768077569304547190863379772677884971939239022538572936503354886483683446016311886131995055936200152474212739696220446678363408981355810271513862847786980003515587728212297412926820140721155375221691353649865230793547852314671345057996321842704046951834235743195968285984788526433995346003322318828946855348746033704316550750449898128039646887176860976190855464388873467230959344844658292557695711741645125553390193964280190125764436592154036583387811944926146588952313871607734950055346718481766391403094204057574124844978616277555226750285952222861675627807302759721894538516186053425445210173011459647120956265964706505793140852416271579671529352836687757358364871319934998025411213937630785572373031590668100213804785064922705396644130145069153591572292238061420154788417596761723932400682104858940127025633634816857156348368029413052287781332542778163693956542329668464398731961568209865830293391232713253850232597471310873751821706584068274583451895820657763844816064311054000235092277737974082411684433788845351216392832054727992503628961821361943045640724152897078853606518957172086321122288597907402593727095684511871512132317282940773362654550970351477874042967448764048202042424298955260167222141276554519410548566330137653866832579136561428392664878833649381371878521354019595672019765094774714947075138018824547785690063643742442081231526283295192966304576431137507853753778191874432190511135032692388522707382056785317518934896810040583425534260448767681137330120190327145715096110750208589151702106838341618041844377685380252111956716477815348487051634219606079311593668199513812277399782232658562366924541414738330813183769673033370877305508620559696257815945704920605485631734070987276555929915501190344618730773331804527010162562332851055956884690487727049136238616513707046576971118305563563809621546072455430614673041850020220914509727292064209843054179203880665381058192556575265527148438307924600373760571646221973040077549979159914161607667540898775698343255135890039334339693662897386259165462885019349360491789247034128770990515320708918066138736241712887987785525565655928001359621178474179458138095011122451492747276107086020969603298421516148046656554167399274087262568615570005623152701428688746216527421148593914903873907816202313118642148110314439388203734452620288667546491930559085169323739991307969458664689351000827111878558601767123776649361330985373254480984419993513886263635459563741173329663946204698699415681375652932210349276020642640069371451605532325358528366280683515816532538288669387558016181327902346056921465178763104469677488008699018220895900304819094378129339004681833096099390356815702957339917602121333654679167387965559058912210767276544780017430746849422920846017567323794618433859698146656269893579615226172414625729213785546352239395414042940567820625386553543337618212713254831827494178296679171769049471182316581426382316135769293752070838324564826523886722934200175402545641910145315766259788058161387219532634268063462496633099634829094365120654219414293625678610473226729976284255310345956817164524893224233188782323178039382940374327296396368309227950679962133170598529597466982179297083623946346258636950645200970144937476179907731218774592804134908887502304210190804965558803081102975412781190982297860538880720902923356932696354501479000644502788706362968214742302199889370414177933291577588312069450806225920382406051769109122594541781678916196601655387531289987246735523234185924729931433741645310073693904657450727294489246937261721880876386192652435242639478518742308092559989448819643990287354296402469406950587501325950924179236704955379811162914550637747831614073122185761760430931517227952156950137268132374770881742970426362421264308067218690161552034904936616042294793053342078594866323738835253171131951578283334595095232932374845587402862242404533056055202741862562321693665860803041853680321868831264500581754838863264901943379317252309119088150380699610548608417474636715737685617414634280904797763048636375162482179084253929988364721533426444066725525179624071633620551989859252029839452243277273811330478498594856335739304780304669370954927826119715003328618231146946241499913277789113356461778048560636967842617982576477628505086988147018513994353267756860910721450498926687663906963359529633228024877200015445188862132954673869803673603449869807307584167952769923578310785512536578062149392311975034513501913070410630260937075941357738593543704811810296566371844831925136036835750420726759240922006444651794710196751862076066563052683445922779920906653900116300424736360609170186907716332764659699888506434036157030813232268580109337995646949492882466687860440003257327988625135463927847032211762242683786324320028394278762679997714111053693602592786787362385953314094099637555409420784152909300502244185903716391374885857780877870764454731587820339221897057125074699488510997149593139387024980821988358960768501840136309094969310826543874588160497925539235979131767206179851983348239493130564591548430677589531058521721044441880130004079325275720499070081211728316728911376659486542364729425856450911969637563818688791853991862173347176307418356926142248561286231883908167307916794602453619673790332197775143548054213453556089089525604807227653615120543494869576218774717874431995664938287247927018733278897260715686826478577348338808912045548680631502296586702909317994493803799184221674238885900284789022016031430776089939145283113848316527900655152119816989833228708748163949378948373445775344448081944784469741465084278974708076737109424502354417885173602934838415917745325405849997686330617269640465573546537016671420433328522806600915088477812236918633606909218234579222566522643685674122902748647720667243143864103347030546487620177136552570131747276489078080138612956572282771738144092247179184255735715183890619925955877065940990001896311922292624124769905857831006638285927229606689025077980179831652015029945785780457486151377320093239971529430475044738791028688970309308701986363933191331149157595863857240107742530928485934322966597353307732172286771644285560286603415071830919137360146501512063016401981357888732731078112436045143626487449496028430884861307641016239573856079805555897675571498942312543863205540857813640352930418446635552801707058870500493658228114287988000307930601353989499862758340718542449874955402186749162641280364203554240433363502137808460805714963955568979798519683835663208554942744311308106587608757252224416072951130676502626759526590701261707066829175541643565381973964877553643292101991238482669467762535762670670057626315396037072800232584463053260378216948215026451139083335726813164455212140383762304694440875918148820309127329436939093042330389611107588875489293544250806823615958567427343808001585370638693600908182109202650316934207987709732199122822823883978174227261096426321693478822085135357053370055065658424669678966978335203368209368630027446421465825426695428098018560447033591134866737194765826951336261910173006513690506130634818415148994566812052108507815542111096993767052896741806786703717241608183620049483885084622247422329595102305353672782968580341757291533526725041336304855625562956841414616416615993987524457385466396633284740625867287959098394085180321117557249448140804502823858575899693966786023563130766210087833957894033702883989690654077560248578277257778976262343375740488742193727117616002839997322522543862169711223610853230186624041461994774727008854082169098743416303287117310715884622892379687868706136470190263134731845346197233940970686830142662820273216586558510635511079295481649280461412700842681775773529164558468523461893872502680188835381244177882386025917371004231875911367424422147336856820553121036456934672300023225912556637255990773530811007766711293688968827950070661408458095158435010631921786215059105375663513075424561883609433496826614834743029140457622378816283891236619423927662989559377035254568145456747949033475672179944059019540829381399195409627192808939342586384884227012628645058637915244927063882355805467750335357067739117438566505290883394355008525074382562037168522189954122884105503190411774781470857606565167858618619227985120473366769107661818464468048051731284509983202021504126935277076569074441191698222932753130585335219896503440850696306323361399586865005910749172036933679830534107662347824226502718684799750035892314059808413869977923527566728012242479456573873106772062840766538503797205940274090408902039296891872721388339826822329229389859749348790905155895874531409080358920958168964809302447516078572562602661164592269213389906134972773573738197943659019565217762102910799962690264023951886654923597928079488542323529404074060748102869038222630569952577702380934780150715300416484012524686644188026670806862840000271965109472624125732971605455853506822803127469986006432413724307484689713936811110587331514923918231943070063461836941448295294170869477806262775208278709619563620204146030703089929387992515382481668096658795730725107271910724428436381645785555308979823256683443453232890428933072559997671870541775303565633114243571004554657297098117621666463051065255010025568096416207398652744484523691628070173880463952818247636343690796577360536256784664162270834597187543484766341371576142229252864422441132235573933498950658142842411074276847545112851946721561210660301482664711905702253428248580406871218879782195747662250113412515405090557523073340582429222029165945328556450910955077644503380767915138938498954818012845500273705439143603267123690219708721859631458460117186455927436089854819211206374886333945281567738045343736347685409584677697138508627673052655614712855640487105630167356637528848673816724597905611640906871090339461539810717232441842732217459922043942740730494620834488769185565089281021666163078358508024271924000703024086820296405174540815745904518263852539357782279604697827195794953690176349879257386929882138545340143129698985328298988718090414801200930841603257209208295204117923195257605909234588714389107792435008159389460062661513681609118123750774808218799397740742783316389522525380458980122408261691876700955132937267747918733810975082120878926197715811917673226325590461633129010526728677594880091464328957969600055658513029336778270593896151479926496040755545163120678434999865378692959465779311643922920319415136398797917492728054128113861315690114925276611049493245790381090823495740394068424004883445897783456412142743927176649456131144940293752530163884653935257837346411562819339107444126510959693863455174948140721592376968471980923777770397226415002837091944517365966809549931070866016338006423619593657165006392035205902787828235328034636475582872541828707372002753245643501299358964185816715431655116626238722217233774149059475276569008247228719758114735331602064783260063689708524766834310102861211771054464678570470786148161859000554360035621739316796198007015864040072852175101276398590198635570815816102854807649334776753852223257009961815628825718868435029992841656718478843974938415422365331290713367279551323286738883770588239925267369651190521182617413521402252794500574838594902427247181167885626925049525867088126545815348831065112401285975964070580073163540380297092978694290500159939172923390372189600210445640224761433424086792953105461286854092530541543486162965766889113303712582010017756997136507887042276612701817742433009277502857239867817220479469243518213052614361189457083897205526330669432319476970728794672957950060902592752795040106411060317634990649313977250112260308705790243261362776568402544236360717817279177726383800664995681490973680143006944482905128750500104434521403026015085737456317132790424041489054038311339115574466292938088861128747145055242540684346143657010824517355881809181277473892701056549438144534643233349527870275484703276600441541840855213013813848984326322264615511051638355960258095238852299376364815074913531771510884618130324220752349330570879189831899103851057933276984154430701139135854698780190266393989355268168786559407457629471985011498215684910638166253241981627021478613358959059481256392975103884679085674550955536992604960806507865284168033762928127578572926533489016489167925780725227099588959196504126757740909442456857409503200449922340865140054766330372366179083945151332402590774227504269117898866762087870575875444047025031526166627979541756743325860393940675708524465024909086289645974465726543938547203176972304060478625165409841517250873599700569777952361377497319697184037144729581883997280048565173417439290671737052170622362145560210445456113577593011778227273943465207192773307780858196516632103478678700298563135552044948459323036246979815079106411598265267323068156304744685896135830883957638599465109468574589798581597396282606716694573681028804201798563367136148649404712974070740144926250568888340366742406180171106379364169257089754858965438037609463409935579134021306519691652211511599300070508804398641967146360994851492625810652377721363144752413007035091141648927808126442076957923898799367516960334932307832744060096079675982710100005879453177222744616440608516690730487278399858272227178229553866160242168891046322602638276610204846470402627419994081578790128798985866372335810661970675903602051231461449925232269676844566613317058280910172356608125169110815287895627589847410640876464624690715188047234556716838926099135215677022466056942002371488871799911543174813668926512075275873745266800006580371836247093597973509404333548954512067914320454466403241061340462887398297742106458894809284835912213887549988812862069976601875268716842404713149970064743187621915892527382841192282868702750145005008082497992478436757638340896482511333314033639865258275675116181309368091394390834860971776912379209976136192873297307177234107481384136715045887735771676909006326170910953184964523917732383426667217147114933669051802944450382801022007368473009019226500221807464360842008176411027628011746055858872932303587404807178675795622587026725997223709980196389003471084816475907251473386666520311630891305250341619303056982075199924044050080097029441991910126420732449535623737265973620528708969475493255027787856139221952019209233768709598997927818309313359252068181430376229707482651026649402491296638060843610372959841791652122339032643979563567737661999845163821994847928992273325423599641820843774124632269557848329791501128450201784657748257135312409345294284789289640443007506127244703666325056293724425157978644274773281697857680517577113276245056829797507568098185106405621147324771134408224883993385375506099574992358909482875494424056007184407658932479921191767128581661767162378032488864626842622650548254593053045172918351182365205714294184786472030225701561335747394914916293699125915042657629966470868885241090389161113482312921386785635964966683096507708411083793812868936548109324247532778901591466032639382046882120042938035428062164514191436076892097954395007944608028457051838365990039136936876390388181866688755805453362709175418939247461140248665429900195620409312567011783393341928112068138346408253445308055275706181827745148593000912965581053072311256307851725478973886331590992551441183214510587302800261553576949851040524850940944498833803965116638766993372646955025809372655708582654378166227917893303460521749553006481036800650901182723693633651844925471150961305304327208760259550852039914066787838185173541829665181172833591334394168044935235304897327719069342909172410655189890729497632947976538005366625079138131148031866465549495482772700330605452422721639969183304424002581031248456373849801723820938606710196170662420206240940084910512493102311999243166721825355891808123997986344387597340116164786846820947376623714691678608790970080085454266382250481333259906522310921998132472067967751570918650434061681365230154119910191731742131651865953094595245079997242590822656229109308373389211902053930948485523325102849129882399796125064490703795465663715378783771056590123537750101241916886745164072792477319427103972301967324708352496440937759429248470843471922069858222502726622142945763068509019273229566931427376945384559850487490799404360435825302395783319013469189347411965669402659789832972412301947907829880925287916180824373590297219290704893583383433418078953690463672132818389524963748827699616287468950880602739496827298453617754018370366076185657399845140063422170506859862347240591024544049253032115136180411018029023648926413529630833092261258500919168447561187499565236842175037417602613973052864290638888482685191387384846160315759676500371216834458653240932735156757790536313039694672989639936283079052381412657235504756955495649182796202219849505226527689849739223870721395296686413439486828416105542179564960669677654175823075456993854880826399940757746209365287106709753688038029445743516319804761817622162844073774336366835168115226418459113457747556414954160020251150622990829482630846677188050137549326133625939339997589532763736622333162158344481127135994218293387774925310929381364896847833879933054209682512335401071815288333123250029580098211041758260883817045979492883624082679052690509670505094178627039867324593140784115803704089205819611057678135774696698198543644508041698866057146181497672907317298687188236962441246625727040840525507964583592392382654448582659696560021986860610754635679421641856323950670357377731393112160551659424962820219099235708058337297188485395835689103400211954561147809192681020020665786398956155689431493004992324660714252288753305788783549155303483810318231668976370218782193991689314888409810777312456015442141418146564061456509834911255171216447400250503484428277799327353965820096276202435728994432243074263802360198384306797403640957881376317834578056244520305350531443575623402951362985060062630940048115837729134498883961276718255179105058324969641199357010168152196284087553050458385969211883469569596053136776740560762982524724052772948161155760995997859646143276249828848058839146350795564319801820827050789774675316765267941911120669559127790809382588283126380956722464216362681938372402178047950569021955009529899631740303611482245120689386599484336435016392423844494267271661944851755973954638245824482012762114465054586250452378717612273214166020293834065278690647319159924819565726395061080145598653792383668066021227787543266945431407940527227508253796450488413120804001755275371391535327457421551232767645733417283048092937966841779554465408991191520879998020517645569020556592957988521755694372042115608571531676277804951557695353463446050295234404881360896180268368987381760518830245609819719407192100361147811108768225079774236196379993068724692278160904453843040670444668271773348974590870546588722324849387689921013168505536856408086005095348216498227034055004273053301075468751520167139861143109499806711814113596268728669872209241904849921553511582635651674164747880161065354744903590668246083611029050370930616660364971934877803372494203857176489562197407002150952161718506606736003208045678086754791393545266571765673576934931917621679580909236640170310244453240145834845100529318129910122935373536045637244647911840526565040144048989070473818321914210732826373463033448179275787249991059722162636553558551372073409438983558038664156530470389328137816315534234529080752908917601288472763538570147417121081358205410422750666594028030094635550529913111210078078966014218038158815077813871176304428592832367198849906558622728482630755410255679286022855908217872697432913080370675002832181028134200309537486849729058099833310132324521548980006314338905454946513763624922877351251923697488138638393155976447215765741616508238344045827584965204767565007018392705738478886644287000750185819201668531000298428575305954501805589520530952670257365540084485097209377724870256462746413048113724477389171869987131325419524790810705268695461658353289818557181154895112076389811356231730126072086903233498867451153634280159237474776872517942133965498684456202432818957785457095834966092827050986159755901951338719327022323524238035208117076348877463746650762355817176281522419907249681925309851817694952170644171936483246231253126113146066251881159763371992927681011317012147429876548837080577169728103523686330372715206032582676347832095720169863129577340901792315535512019960165429941381876022007719753169871148945042140255871751391964781314611960535087491732554300428288806072332772858654131365703287850558070389946710087010981624508062888885735701356271474510771486154183626202614355150957124648984091548002565578347268350283124823729176911438713434471710190729365778552122120288671632436944221686727241644137136904214900492381651591709606434499402296395068192106143051781882407504628568390180409629881335651654218070530648250655265601354134290876089366508201252028567819173682026218510474553460676353492077302434220829064601400645285972458011554190254251582406811000442521806586841119402982619810676666707582597926801540072116613842717514923438763988465905733927028430572231636842479275505611526664659942524366702609917217396265046200515560392778937614273695956767815642936300674529472119895459300650369997690009322182729949479770692128638708950532653955542461628892792016091496716293858094391493849098730940131680269298703114720712671067779511486512754598761769859770410409275838328847764049497124008913494240187383401099625504713112396249573042495000786664924393750406227551555438153158816704114498464896324231182697869893122492310692684309691790938355137238700665510010825075399798787075610427943393206871178939801537788358435598912392613950572213231093759608030024628981465366564966874822549217162690124137739008611578068277611489759752492071931006976479696236578958039180559341178124130926564660213835074400557543755785399647019056020360601138986323737340957179238724485577548220646008539191372547984808266369779080457783442846595785426788698475761697685619730895496777805923058185707775257876450294262183200874228192020279658255850369491925254209175912162488278704920306067479908481982845472732648362108339539485033797152577927222873067500413905256900350716993169904018445791163547085924810893279894183767194452483501955956694662988077233909021070763449719916297878787087441808348671163814443526240280094593944757534520789509221765812369028620442327825617573984483888802840307719084486208144182106384259752025289331618078655433657795831531342318852911433017786807821030552578741861032241399660404181578077310503826895188833894808427476539974274146950348334450576144306559565899512975318248844507415450194609619610629363059860142415382546843155423073862469264353440759900257381149914253249115280111379903589004816594745723840169292889014001867971918138736586313610858027264068218560657043228816274134635584331647200932077791622185915500332088858024974150281307883773384020954417389138105322124382613740899959178520594129607648044970747028422506235676450217223400534969168742747074141684299884526973587456239275822203666428371964848108669117982788322445202918096860056199722994298155229868663534877205022723035902080813002638434742132704436742375375500608041712931695977541029693743978655637791510151204430957809055738642560166443961746092048336017855190305262666979532561542343156287032201575052927580587819499775792827791626996742718577522382292652535329697545027938686176652841456045774967064600459928861538125913442273983834283365471877810386558216067594712627838747712487131501321336891091589968542676391601636612115367430574766911624250814533449365574002150834723557942694108127124867210859108523614542217554653597669833512673698068835041897320166676489205499954788928940931282633591155741898818851065782658562124235563297925809374805189013720391893236714274448442980680265153018479380533051128595001600386709188547153770829714480934888366011948396121919003081575185851472501436464663550643217954432037227450000068692055511970972409395983216634633941760810368597840230938412906259656923119893235180003969059568934010711708123335067476642316398668167524451667213153841148694672500059767146074051793751082889702165093681058378576862341961333806358134016024119741961705355681343217411294573835846144273437658266402596795191983511932680747987338071248611037165214498278686454520388856519327776701480318773029049438417935281812598594558780170646254888434942873643085235981731967973871885358895477447576616328263800707652559872776828041927215253170669407579139950145046644090586513489623874329091301715193646575107396245026619933923745772334516335058382690894470044582688385951542464020722249322836378883507464185335452143677105149023097168475722798757270086113938643661232477138326397759818671490046127611084287675742401963102709275920017255892997217679527943178682461251392851726188555142599751010020557240395482519723159360894373311946583850681802387153463731594162825057272072855782028944384893738537274598920442993974664387322211121994521340127586331602902907845387063876918671800456280814292930438606620861002314076551460901167149892549727209208515874237177498069021755628766364113653502523986109245518612322028458690703626183344886940155480946776644215016361503837162253234669658326950987179105687616177334205452520839819775008636862342573243574768100751024329149656886249870588804989489665493300018556367827153273784812645649086417319645490979663506270278339178935914813162866731692147884130991475317094795394716909889305592597504130594144396669939618144118954018323606188820173108249916702107669112488733428483371292563467611614271398501243397541859902539380843931219798958614170158696640543377114618350576508159983300891725609105233954137303405727489114562830623357315330638159316302206813907803764671812983034300672001227099673550555525387391099678652532917175951159327276180033315704879709226047592403612645184271312423225006624649791153215758474222947573557925765782811194964555190840085227281788148024335912543143846018975543857117965243958985392928414197863934221232569421162998402300122916016785737042724483101826978603370792137504410512622156637987360641061574061930084320297534920658250165190814425505557560165303105410253598970147967989802869744175814380180846041854463868591366719764439059446713585378550469420982872236158092842054453978906321607246633095940009516503630867319705335981037248985717239525680846819433343241232744457508143733873962210259544026462469693476195353634964597827163606880211241510550477419817521596402639389053063380554918595214500905288404786778510661567174003048612317624319409361949428763270190109499479031730906683526017470368392806776459435160867245589140121790420314375055224573451504415516830864131658168901375545087735297657237503767949395738115391490513341491660983791030330307634576933091211668244129513851531062830546110593390214778127419924243937594478295090962496189972403987134973640217061324041845037608781402234474059431301503764363918138243944592548050270772058703657400066150304602443645513621270661754219839466505077116221732818785994062528290496072926895279276937531270359793229536032304199641533971795822743120495113033252006519812729757462270568135126314390530160312831910459815759773737215543351172051479102317549613514860150077384512355475935640746713246036738125780337403029809932266465793795444714004711934212702452589648478864788500465471518349127457262848953497130074245711833298566979112398813660446964779531704749193990405425066770408150184338415818342809115326315444112177402455780194386841873460038721022604283237027496981059034345252713979332848208606055235663403078214923004709758160139396418618358163986678946942722972557542534650239200540391301081704468710211683436399120980885726347086380761840374758765839018654603556575990785248378020307208796710319114481680680781543612483535774816339971107590876723344831868039995378026510275757660189818726933825938121289591964289338316646580063338759708500380758400891402503852966902619545650581563144028899544969868425346758610822909947328943630423213760003231527733588450832710628905503842060161439049639779266535068685419930561849310175363910478963350887414067976922188405611111296125633021981653855597932250485699433724299340676878432798054377745043978676178298839527526892322708876382896729443529463501026521352190508556337695043639233875354075005535547139625582141126264529806659061790548428948264782397049430780527859070071449772750646416572418002884478417075498607326209348035674143080529050096273440161908075698678522043212849495758350736698463722436224608069879377577788629223808729413960318372908094294027677469537195920956921345560036821513305530019680250335328660799990517492532898060085969840154057068739542321301572747936082775201905957742553413161282647783689829071156674913992960360172519379878556235646582441696477562586381061670855432424632166751557388117201197545560603519945366131049769189987438943271990831548929991745921255463015493528976562984806176263764054411609209603981345512893479858214585709527174056788246943429822639277734616390726092251223030435064772157334419292133578894213268462527946891649222655334577927483386043624138829764103808431459726957133435336348759444009463088781839459675926015377230981571786428872362984067178593459369226907708880700879876575180374873731854139986031140116837883797408352000596593162537733485622830511173192131185512180744860205333701226668679628354940871263859067139642505540705070045793102282143458695637578355754718161161082808138382799133334647242282568151096996842998541246494497990591675174657981955088678578935518926941335412625077899032359919810842165301752678585976555975683548412122830147487421497759205156950042573744644919283352940388037211306931377441938175451237515185350051430140324971624654962482879892259524920131364543556863503191635175327292824653456996656950097269785820921183471294058748791257760736285605143983910110631880278582618777415732403853654781535052035641118953843503214929959903996033269372359640944004507862456569493127426826756454824219182173145192605162596166734793880370740149306959877774084662280199734296122813854978266492773257606399528838747013868883366980570289169247592055844503588230678683994880893296036163554354748473122293363197249506824954644200305392280617776337225894147031574719845779581933440876537388025687888050498868439290116137199020648177339974906363679729137454494220062660396693269207463578063725340696371267884298037255576412950862175894509821812782115831989605300176407248769091891618423472025256475245908644234712411964594595547043592516390556830367393012013090952860697600524526031588017667304056361137196632786196868028282120534844494818812253496022415665970653043875207048129698768148116723237431620413304851234748775876045959627082817772259246359084377844829036686505867411931787000305314717195834535267248840853165373439174660386144811355718397706967420791500108554453793646551247885553309056609479045301859263724677635000737807494901286243151040176288908879294654755779049504873232336289252667162226006153008209016949180415372719320304705071191741054150448001588377645479228377477041668532169292171335810527583949944827184820050344593244227084033604280333760253561935394972926119375188998195865981239351400011475376486155286178090659916923675989449820320608589400121101189349859934149285893928043490641626555176812567087046217358363681692964837881418939494834924521859882699661137036657137528662654171504150192965098637645833604712485165911912655553864750060611336978464680918067724650483669741142379253578434381450806600858829720077103999546804811798342591948832617532295142811060178377291340146508634768210631455383846400545375217341858628879728038666576114310347692088996988941162302331814428623776928237349256285036795974073646291562964699569306351689310306872476491555172424026210707458157698064092654953200836633263982240247257886857681490947973429494587894541156151513881555893570491941676827443299299299416418482481711261845313115082156285065885303366818173441453875278166245832366292556856111240855660316389397089851905068533930402784007389320052123741599178904691131853091914141501886003698744574453923662773405224481368324795801366630901567801914619160727032616511339529961904662658437484853169805877074647013496555597900482713679179919198756979002289505433761632524258490692921266401912880050660019136537114259145900388090285476058347574312231375218608014544105959876955292277920565116021865959273808579823603769640446982025278845095728977396488250860099627396023109245046871729230643709870604057101363951696574547853072967215489009048844300374054956402783694967368351494507132898509693686052959515950295014584057485122267286869820871283461261076554355602229184296218399780867712620668361081960262209849216223151744759732519867661525127694479038642582308012390970317084600302193607883034773345370854328905552809952818427505829053163927328320293348491284571469800951026019697649011294089196282356344347109479162701737404694735268275455084637362692288722364733112841171547994535067955708180650915097273128745382094176882840653919398006779774371933808855828378394505080423046428286905388297594585989326283526108348802066908350405218631708719450000513837050393892092701915930030192495801242154738499753241581845997422671602375929026626123918523081653520057390634901811459646941224277628070546319474837204545445171225892562311241687429059938043732634780006094532433684279355795895017832314979588261889920250421425997134643967142701335679200847024664906069886766052708612398359202388949914886981493171424980869255838891500983263342646559208170144160601313067405525205515258081019688068567630218884729315460162564116370251427255767087624876961339750473726535185641760874639289730570320342868512855732162727866555089669332171740891477975664416660174880896380645434109544812410559052916684272811736925422658038965960701704282051682161492234333318210787586535026457533999372414767466547809270411594203584298008688472379328986945044762420103346051745914639326578289178036843723466136751922440318351434969676655631363559085057951204405660454543998067758873863995456148657787150032987148726487030744263989204950542796539334742299973692338095715161084194331831237661483359888803613601433143299782649154132676126373160168378425949003711518986379952025044103879649370314756468767649810733585483389447811928261099196074814966622197531808878388380594807537399924367722324221186528085865882473042688171453831975588007973227145823128768177161559967629957678537357342212040939351422332744472409167638263167037302074331042679120526938854883674151033586786466476735156313781379274293171360463800300000858999715202002000534979767579310663274753840948635494434083532064011992844340232399867945700842302765561406222223481713145225080218012307207778530994473560044340506906143669430569589283755674627055210777681593511274755969552262874012000933798110438171027686082098111474908393348445472285864097609887413011929998612925398784221909892819901975295374082513701871385508485364871621626557504458866344118415073865769522282420860935830279733947947623873354759279700908575528129937857537679769851742287172775551768707155873137185138495633523873311806836451101626677092371432322752305123679314229287703456955577593409860653809825169201546496659542328790992332951176695694766731075211819422539403586943215262573530373902621102198985445307814214896622328428028932869405565642781853238661076136426656069970127847783079953255893320055174022754976902318478380851900592357210355174398762085581138726315191137776313903740458908538144770048324444457261036950677890344273818412000683192896795306121548510411675070523256802341813286954652833159314245902850793759742095550888810045797946297474038075821167654987572385957426088174313511174138040630264847071351947246589160866963450701510833244910815900623654311443381367200274621884485572520077535711539650515280204661563449885195399220532052166731640115654117034325077903728777055686843354599078465253440971359287384532739656250863963683036374790497163550826863339181355440594215548597495539373202538618964488965981100981193096528291951137927873838378745196201673334124418411585907220776105244895824171164972831551058766079402396890289038779230598970963580831218121588242562403135616321216825649317440051139851206164298227319918208221263925100755899957091414539162675724314533378255277769340780230554321427990672690717638096930811414138200942610757632636783323743589643154839569190573510127501471626133013306100231069541417353440875684228474884294179539244213954286593534831421792894921752583389305858923477087063412182217168044113399486907128277572975750290824375535491386016092592661759044049081162416784236576289546329160167690484702479118185791195986800139419640472659145682825101419400863908354588866915448838568657349644876376044366914039517267214781320838414828678248892080823367551673815458191261440108737982113843963208186420360311684574547571808986369020146973675625188681570296033841030230831371929492277788125565245860431602432970618395312068114105218021636256329703190409376777088759556796626628722545688263187917780714007617144459928876738142857437201350783700918910581601563325393812693027257549157009354256336302995944070286325972015724657553405852654510451369919401341377942193710491952230929802890736248845128856152251229110273782521917793736150507845390951685017628478817130059259018044393380677619844717579855408860278053120294394234373756466644083103383086738187332226888406322182700176572879689467416865035170698904459815653854477019531526597248010413075556413713818645818255623895935742962572378781330360835353510171684401124623316070024741595632704233886052722741903482334951470327806132249579211323651043510418618951174355926522236428630271975201862287344265887782916815499869727950180382507536993273182377826883537547143003982576327023834086844850556743453632684074323112124144746049512189005376462627025684766062195252207472179459874537179177506041509607533582445021862735709759108261959544792675856881770110948961903828865026445712376199020377000600629397765980020341741279534420991058880107828124638280766983396926194869384194407732019859747463778512419439835411046122116253134893015764119044691491098265227134864683363320279828151363453288071878002036254177287284030217145974437295717755602014533076410303875071861400509012044178219695201136071168572716009670172398298075837298560322906925971909563868925395754273224692124521798258595122161414635778805384379961417717126289086542375274619928296051006174258960485859089067132817547393854861591930761364564138219720209697101882114929372390682446411467969515908553376082250843967728685219607540295817164906156569428846173365270989531144720689154385775517279594821422825988275536094860874172033476151736047369986930309211354175826724783128006236651321650616007935709101314428589286802322146850328903016160312405533011455646169640485239877841983867701604076363823380772589214497819952106612686418509219737287713647818250146342999709355764385837638783783083421370407365135528850245955709492178042007038558157457689410881799743424831392597495741618162741863464481332425171396091192905248129415538355433147327555741889987744283693605752904676328114753751867708894689272319915259591986752490907495148757385583999056379394998863441990385664767543208615832575610562353645407897582616180390835108013595352056352031928941255969303642197511466687809856672274914357586632717610682196126317790751261707197598950453921752191240628173798977005501843679570979085193390188498717342461650459451652711755884143411269316932773764459597012266886874307723892294373722644104124724371800921214297143553089658426023778632535191304452301446804383828714224292384986567630068532728737474613470595639007722839659401103621283220913831497967803250353246969007503748957488620225596226718370684810537641516002339532752046764161508105075354241834996510323781545021438797988331866334776030030050118816768060160732087710063681151082190379276705455994770289236261449482234977287650352704026770172950356353452808146465849474611034404682845487560271975261725757839754771110201984523441060117067776033165214455000051350441967701727114396940020347759256659999490964836944262884316163530355582482088173867235876065027020916608982376708852910136725830429879805562922530363737075951678276480687228791089783536439609323678091007755794277540943587924330200085308331459817848256384200133530880648695324470762216754151164213258539116847987796704765088941497559474713313773698258542853488705396702725224192221018172785352638081732624112464825049994642098217489824406092583488936542625256292197886988438808629988786225468653067927194111779199472538036026609339443286262781666000231392918890358646188340496495301290849193494276857684739704530248385849142363676037175437414672960624225797750346386736480105414007454212677739142908224554031272987936215728422677352729570100738627696735935032158026549722751828433018925297563911496768407524730334793202415828340634716982589678025348734185439943334224376984570404552259118439623580771281747693549365117220392184788962040060550391639419543502732126965507220668201051199839891425273649084130245806957633199016108709187308655402679330661381140589475413940375526728511595879603946742607673846766108097675395709038397458504729269899179095229762814893504202632264195220585816175225889746729405052643772228221471315259070845361497697976931344930660583970321104348465815089836503216032903669409113584574027139034370449819330435993580268262624715581313517157510407241493826220946382406612121782236842089426063835912321043794777370722244011942299685073954221530863120638792921260009988995476222576744115254784571197503672697408429339286897126560774241528929246372913790081101580420572877254354111485265687961078832824666327170941544350205881185473787499485182181548323069659094330289008866315691347630424526146077432357649342439566159760644283366285915031241381955250546858725416635458125586212042310539693527041019898742241739294167791578460660083901466811099924665396801831721892708336690412657979948033744104971104871171746302646962141944966566652311117797838344775639220510068127686632627358860962555851718805914540455579481900618150249563593174924255805708148219355297664532460771414224148952999950823227175063591276572848594606411436782584730847888293986956611920396790896525926285014956075188252799140672302884548517926969106128640460379512499548253943335923474362493953868205348062212462957882260349518075666860164046325064529038724578189899594085359133911229661859321630943661461099217919888203785951190889114386045202604502196782606706383154383601084695521437645361624866631297091124689637290961252514274479249293553936276324968099721543667824165112911630851076305785320715763769943247044558528703828845434300628142255646564792853344807162982321488741349754418489878530314443996724147853256234339954488340776029519299195743981727080504011189068696392543871433370285491540809483875157778896281763733238724393106253783369850953081185243511209836218213707992407135759135027605931550255289880856596764156259661279604116545976518283063398490926681776859175884829674594417585990282050290414466184335916756299370965476090620018849730906217603019164995507678756215697067880197909462558924905247347919141510917532290724276451880930101041526527832750509385779168496555939333772975313976153732492422806548224694625380623144997814441456333007995450980661068648606856549106663561405634046686456072471832550172446044398901846056959936036230196125584699131492231951104193066353048766297395411422245626883714623807860764841007411644054605888002713545387759263960068267158709833008117395837843822783412632997062516932835213557414165258568041734103391220231123802294749151293243986580768732776806219727307378311381038513289752736235677182749442458139241113996132215417034142360806233961440506914450310372024920678571378861845588692777473368857307934022349259293254072969608146675856679132203419538901724281110396814227411022564947842325914909164224434238484946475785508741036189166244808240942135007171458333908295223307748645593265150107571392985399288309979163692765767602419418028789404657077588054953006621899426128200370479311438518801416177377140655854370653476047264753870884219737758998667528673110812362241200093109142304555520455090423085508061870048908616592213157966261814389919646245484274291501930125849695562716326625774761524355997856940330574429969669903950595051804409472756255629934224031310109684189073644044230851107383335297015042657445289539736821306068625074978484002855216987942742532705072569172419084647229315858014723674239535571933253375221653431806071320710962067991841431969631187695622323479272267015398954250413584150374033815541590266039928289769070686149785883789038143189381972116443841823816052182802216193964465811716647050888823734437990750345982835154737310640224928212832284301959431686454976532812915689449395122427735636986215613157858536278053611741406113078752814250817495692276519274008156129942140902084016928130165268234624561716809959169730887663797788675870520964450021199911726569701529405838838366027223628717585777739885353013379171849464242631538709708476918486367592121459423478299481611389172614472958922556433771066818261142209648873749439915334380969877223768112314061379201661141218684134075163634519129651913521812409392794850679677616639499293707902388268827487191013422764462014494658890876730496591088341248453101044305341332073263040273995470699240215604266182220464355540837937684537794027784844895969122289779159057550172411079850422288488052580938810741892992398133306487441944046947963654762477855801759589265865537891306341694338673499591220943767922684065518442011931528936820058948575344905168218022245515456026345219379253486104766204701597475906760095366207307327422741202832648505715015462482355199127791355461202445513723239964304177160552318207923614033276115768645096133080685342987521209321151327188986143544839310021618331561404386744653098428520734626825085530781981707223779726846400390129403516975041465865190207224465208809312154754617424657630904762261981270269158565173418282218399173189623292495437940288823069387666352099570620963714666713351268168324170111771821221829867311199138868621506598237930753989146316001832051760215846427215045993420947273670161145972698778315578063585229717489066926586867143918286154250844507090073056590119183382682738909256847257554290699141685423049899769932580778054445586196934088055578618286587121757365812670002881522243059039631806708621581233257148601409151049100256852585221707324588406495362871915090630265997145377668067012860222131351492668725253582860020742181464035129124955557240736706928151987705917579368114003988373415859718022315911536369060945027039768097201442868537455757306483353464430687817838632144641204450992853643942173567172318522944571142691637222983259381905985010111053025265699366819732083817740331987709591427807668625864170159626414485450212607925997699623627774683242334344693706746547262151614603973394432505916142584802022458632311622876820718255769612060693662195804464357049636364921711891012309263947250160991156563981495282234302834324196660133567540330939857431741902078118464742701652502660534986471394495135413413405992529919467188077462489555446372297099577171328318323883308364962749685699229502576029699891068597653533087836438688585087783400918105406266803981524921585457287601392760079248640498076019201101084532633751503623377573610367029761516558196787063239330113373735510060012151128046069448582595547572069041394534964476354984637037144315119679868877546205924752732844456701844639178529424451170654656648229233995795983609301269567894291029594361184619601155419499547838105891670729978601101402323171295034765860603868549072847833854560699277877871670571704022739889431153924098335566513744869213086625992246271462855819061370897488982105276138203624893405719756614077653186373240354320503452812581700014610707329899576909647268772665613333050352907195341753925762906816028014381884825506712096166176955957203842868001344388913141447865100735959908328046967006175687086757864823615717214868673080476978213536627792496545503294523480050337346749171117070356288293501768876186718297927077757135208827688675297573154056924665099932848815429262901539671618951998740204194097734441718978625634362955290194679758843891706046577316529714748474375010558725698875756341579937854608073447683725200798814778740349351579244922199757967105942186826385942515893787903704731420060224412825429961193674621298640231209990853748158402396933593872986652996087606530543561358672971280793027349939121279360091568815012552551654353088476438609391396598548080381556786422183530877198895143733887728915872756943989678615573979374940258167892613092977709647765673408885870751989766187162428896849894169394892385283208224999745722374822757497254042273489901210606720311561154204403061541284532717759130972692127187376229864728087952717910216757540083451356863970438447107491567862764243881279575938691206390339661953654842024084596490615790932061529649516422249899610586986749257549971917432527162679435460623014920601218831488114905459190074787814736793334884362576747957582309766955778624645814896034995042754384784168615444100246646200968415956753451265902869801300569967269184894583126507469997790025789320132900333623265298693417918578314235742498486599752275466589430413625414180592370707426847582538679476960171271062247477615151692716755512742346921959918452814809942518406590334999265786622169506799119753133078650421504491148537367337824566738789432198495910053725842146527219118604627003925529004359659241053229980789045804047551695725746060189557354440063217115252427949033276295434135756410183030289400726540013069851892293004919158860217239794493134211360524941551650420464200094120747255808152882921727894644922827339868888357589340798030080550528990095404986185509647049322419756346572954762084540402391901917913604761749021294874061089544201293501944856293619817159296639049048675884126554211220814220928492727264942985323064126123258825690000141692839194984141250074900266792729087633393423847310496208427650902239229070497434610902698401451635775999246518932726625232814194036872029781151773792227903979014571632960492819878208402090050615082161576619135038671325611603947587005892727197700811176950463133341992300796146686294375404871106002287395222461812864955125813603010608215906519336929162333332649071435470563049688710502906251310958729944448012711483876921589492790859617231352868058741599129741260225577592217363797749407993697993975365871473073636298054868554983975090538549217763225101769523883246181473142245190341981959073304452757717961100244190043926516467065228562363228700287429600656522939542918138309383341415942028104550821193504324239041985907124502310073236522383819892881195149952228363371214335144518382525491923528362490253621664922145093110901924057854421238331707666286357840936803391356272543050774996007455383340273200860299103121720923072144295167042209849930687433621982715761233616509242294896033486175637028871629189523099834000462309814153894328794282148145293493173555882411522152089980253259387336690615770133744727188108995628766294798486451112517646539911693005836675902381807428233095962616774993472888695592382787741960500595525144170429665809767764366798028042910267504018191873992475567376129938520370441104342556810467770414269504917237430131123378529873194093391307480950558711793027356085800443068576677560922667584438801608825296436050068846264718102978622567557852738551817499399580237323608680929542724725352544143362774341645783656602962000226503851800252638457220861333430360656892183560467769563634831017127860183698283907139825908350318999870982269879195174678259173632670494173794583379890491768105821939907716215866958113527050148955426602862184637782882676041219572179384275569081646723304047435956602209812150254518609686940346310393720147531297015946840937831940154244630422144879728598740768064019248040310574135470185710479973193704581464948171976775755690351595379364079942795775581037014750151007242525624943716310707373544681520983842360327410509586483252857515940335544371454642631466360835208858690365203759068897989450384625590558538332894472763468030362409959504040906406682631928695786318259944824796273187064116182020539116623073150354144782977999807223073394701191896423363925427173971045659614442175408091279304267114369974846997963252793085091894632623616077673591355505463706822507990987247236580711405915838673534058673003799292374253128784348230266268267264547019932815792565088273781666470288540576418166775444325573089005343927906440856027778897740281590336255035286637109870292972600621642776871345782089885360406036561064034838830617768506215571442755587321869549782330064553884935394655149419743252848373093749883606963274766079463702643576132689710667048338657160330241624652282828222674279747435477659468001636680641880165909456022318144763860896456916661319666982185581188258449726555545881785918335226110175774082068528948354885918846359536790833531779959029063945197186137147385633125261436161050933959812134050977420406826967547534400280703528316200679558817354041936863138766878652091973765150425918388200528813500454959740551860193068541333427087659102749685560578900296991199108825918907784650651544014526570065728830778871875845779881050615666711865122382225437541135590113905969006536679571961573090156107389341003298659574675240812499968188572253794636015126324794269959573028175933454519294819825755757619557488976047732598910035538178248246740900817817259705460995621085660921253783763784983540851398774972779077467510849446988846805741498273535348675689197875192174684910959394996027162376408075949352365401659765434518478202044190901208110427341965020823296092584996776449290910349594864508216750716084849834385563983217603877338939930107708836854721019121946634070624281304706687364628823544961994998578512565918877898991657206330059733999206308440295855449526676125940243144774525519921557793996176849643935610310374886747040704355934365245098749564960715021169678893169774267814401447613934768421650008300015273542260764761483844530358805588506979231514016957498247927569966531816893310966154964979438996870614351880258682365297522400483901290806934255106622382680201281426388507005155204533917229492186556422099812948891795776686300853674522371900427829634921056803457818337260435371723809818294011827762986714928932977465216786004990131314194577168526005377348304455135682027837399447462458419102035215575803512896005673177065514069496717940259261212641104971690654638982832611945336622295154499792953479280686092885037790562007679293418855313332590621970419871422130370140205441833536575630990722679836926147730428436731959442064070560595696587369315841383679644603557312779416279459353184809444432407110509406498627284896214933560746006024556607712804782086046857390186113840726035388443765349539837551940849049140406796561465321240191362654319990295248781993042412418639757060639463337520920377333812544418675214735829494041863856758557807316092964957922341053974992608401552028600992637260618048535168162155854321189536669913474461886254056006034243122387872018279107887254891672604851151047074446388671421974372338271083080115759992149796035035534298464246923324021602228961162406261313962942626461734685963627670901575998182757627539953440789136484286267144636868129536926393988514441201965355053002499913912704334667706464950394806301109863964971132749963563308340459903288908044554788273663204645087034258671864423410240220508930781380603351520014762126146422206678165173372156895575324606357425618425242407418830144902883516796972474674707292743556111498342742804943475024715443664929423840305953642958913128992598429395320110481507989254178612680897230662780937786834972437234004477111312150597978822514789215463771753442162804153339619265315464221091213642052173860848205929385201568802110192045093050679730524468154757118864048398336134116014483439691364237730460076839238061433584998090010008380607963560480258035608340476678983889161840476217186330927837764533602341803075597560974040382291330094289330230272058524327463438154389157883449499762861367773342602928902594630297239477935704805242363367595581387408018405424619554916837420139489024709121943076572176271613014177115603999702017103147386103408632901447776538240315355438832484960423677348704386382627438172559168769654269404897671336609400862103166995261095553425223795755436635852220305668146006447247537620944323564269517352599831380574519247232543437201993470030052577799001224161355461730003226990902910630503162736824440178253883310776295077126741178825995474930439451077609951720676149893850108645146339700289438431997903520402107433096831048422699152100156843600789899258415193450771267880863586400437161661780328009674654142726649339371165205409813712600155635434259388344317428848972289929341588065117139938626138449499058734808820020042475085886795603223158542952860647025447421676440220637486973977852912731144969394582282919650336282075959263769557469946152714206502323628429402911516686886267212975137891215555892143878510068474729075250462594196166454187316032867923591375622973695344594313511085074161207350179158518124565727158678618290840467165880914531008748045467618764000757701548757372580042686886658161735513513098254720908486237601415151926521165302848476764033212473921735464023072865837400287805984880554070706003953264153820300464600945628872395757332683031199562154518915723624418765600768785938456801389046221840454246045216768721609698989898179126843897034349099256288677412930381925254909023746649017389800919392383853200376741666436334753438782606493670062834451703328108456529601644871974659590775315445912762904763326519511680122379440974329626041818155889956942596270999513091621168442119652323495090111208902881385149153100397873353827380789120067729222201692150726523353720248826482938602321973648447341351640591087186623785990251642723720508610891710547146703036587461580757914306737230886898056304152560277677263711003947877347068605234693637111720604690633121437766027334553074210902583051356506285229891613715237522248219800982754620121932954088585487647370609550741780299945246362020513548082376989617448564630483124829835078352526966881497621619815209165557574622684755250108903520284657882185900257160478331860937064878474852852886331351709989965710773471061090158496404981593100241135923011567528330491760139238615521078418341445450716139973908607546626251411171783376011512264991004205091717402159855444802152146523785260956050171901388610632537216081436714945551223057097709957694883564953579324167574740881331784041086606560366559935920748823106538430139588964100621552132515141395287008384878944799464898450798391382061108253992498554304501929599838241323503167668717615617437588731289697020884726326883455822153079516303774197467180997732561670458505785674269100865372350704447388509621600637267041517080935021188727362054482650653856966347474307633313419556969429251332800218228314867994728949136924887224914107268015603340843718502056411430450064941079132964489276499879927891018625179653397213715324446553095208336857852080982106701107495923619706130724544669122721917297329600801445475781847550492329311501673744311243838848227221867108288263343523658901820684628615924475296647684341936335781683943551590270516194969865483866714446981553943852719156826507778577393503134496745236294294251579777880551676981887154590376265430691133733622389499976529053843683954463243251273176786075295550160383414490684956096534860217928310183424355373488395733421008855598655604684470946033016581574756462942409520531961083376959199487068381879448727280528382374799908208897499851114239226003708633219296713189217093282477355644173124478326386374273465290478643051967675571827928695116067169213539227124124089857831250077264684200591068246385957478662517225905757278644994640362194795730865055680084250144079972362880057488977510758192857380736596915886114470018132042721687052363768663561518831466789303221408555934621354187524370896519884555371873765083261402965048639192960332914710441736840233097775365027965101370492594588822568890064295830539229913564621118641628527541333928781196745009672723479899250430912545979469422653562100398334725377962027812926024687758338113936347429308493035851068386125373806666646592906344195380329180206126689014479487869199708187582092013283906350594725955989731828078879434017514418930316981724387928907166488923433712832410567286841413031575720730135690334824236637361511187662874159389962961095062498143898690963440966012141077914442064220714775203978739354523663638668140288338067666909831961054497999936890315921274101739672419822636977986267847387498277569945692795007506955327079350026699494838926774782951336963945304032519500255996456088569794544527054705695777059854312737041862846342388119513476664613207821531063506682544612733548106519316410221565968437074517158572900081367369703577756880648087148278106907772901064998489621564012925616624554788889559484384308821195510353106987588272693488492712298685724647881187035472983722750496718596784379586117183344097093251410344161457100578081451782607308654351565735546956817225236895409755808110818940119127331903547598568506629704139021572032299541114882808469950940535101310259504836503221863110371279670845561634944380361159978501398769755980429472109340082122641706576097856909691453768010578518616567022553686093053850904533722618224328203252233649830682557899389040054350535432852405837748217160615239694859400153310295831813165811712613287936141490328814388077299049259698589734452224819565992394791320181547265967689661086281545370433264781191055372455839576618518173343664521768841959964200524701662164618945072296882211832841340178508236496203437178237122784459005473078900441347158988295040113957107267297201637747629092282505482267108721897736745685081104919461806525077510142552353631805660944106134498845252525515045145054092937804780036831531018008174201897745174091255003674108805027475930359929970082867715884314221423517891796492773551697793731132781938080074107800041237021555300803176079120135850206034069457008813949827969641948532886476494158599812699370932690313638054592883572919901806775918605166832422008454810600820470435629492831917855256891754585256866820841674681945703491856205219377356447355121651222681508993562408852134719650403497575830443859373734454902117747944153289454906012907301165880291883889988805371587359601358572046260695349368729639167964139474085864786386589344116092208532592943700236177630862724560349645919614788279434418829872117792712153450188986607689274459373261218366411995520225273324694024883943667752951896005527742808986458822085206766291962366373571021623009739293095503656016921649400850780380272990631933096415529256641116061789614946197959667829174186840060594660151824433591194903791185500171518586882700115515236574156146326178957509084752262089869826637013474275537142948329463147739530427047506223122064138089518527320442957607941626657318672326513186514609712263845274883716007776192448791592351753992908508093328331067927208425777627358940343705938319668265855868798497036708828809892084337101004210315566078457242247895605494459540103275753966166246651246490573682555055944845897187335099053125994314724633623025421508215633444782023009137306862057353821332417266269651465148124926950933339485333798289145053852941552853595955826699860675221878429725772583484416489466847855912576621268877342582969672075070700776699721234547883657750694309691873115825734551434800225456970938187315134999456249109551259085059317467997256237159792480298955246454604893252681040541637713866400146507261194067704317948883985898468238247916096829718298770158085762833930362876092361251829748589905776435863894161381065013952672131517923822365560616429847430952257240770581757423915700321557011249356981894906294086670494438108166896431628021614591320453967905353739285496356746088923089769387099999948684702204805763060593092012355547615238057806035922222836263968395771117633376777590805801239048782834306766341452052631010306177194581256734709186941019587901842362549314479090020808891423956512493721189649399745137726459423317933363464841520999779696013548902205087439311760935833057414542930099659204876425963464754862609627467991337167374941177779307219925850204609081298168056668731123442524115927227015827708157237390331406385892275723186403125492424641021059193618037579480243687311934187328051761117478034726287788902077905661512865888658475111085948851146752353361123113252345130321738397311772181559676162369991441221133625694594089650772523168503563429969719404187700158321749280801574374841484063651242918294902004399066856075353785253212501899962232463642251785103379687066405273145302926942661416377309378445604449586967916769993914427515094458954245427936719232870380542646516283882467031009420770123436148315326115840238316163845842152762293988383868544469561928403246691141960788355452679218305632536518404271989746140824020399278284071455835872383351265724170952237457731792009491438835232520111539343822641696770589803488550507760068057659765582280626037759116594336588730424864538188937854844004749484539804475280036721324804932091145157839593210139941996181683859446262910725621740883753017838820179308143845518951020701108755111401869689408516370335984877421302766560137339674614471566690653517829657234709190179636190335395653594289432510619592762752983326992874718889333575477029799826218411269994216133849551640578830257996100151368452560586025319552428571922117410576107650975827942504275422174564630776645388225117240207654027109772143092015536973953258816979295285830762361684650500454252786981660623294436426982170020791000392419693182155338076264244852936244923494617382485859101197103626793848079579418058963298339040845333772746281111399521107850007348593638720585885000475976399000540529811725167098139089095618732686343352718109091530892891607534158836706005475397893519388226381420204750025482669403650487758460256263507804719447684150457447835966634975997565060293991738886342510129679312148925990413997701136511244595915256743985876372855681956047318372683719350979031976359781846469428975401038246380250477883331461177246235055896084913237697270548923310630716882677689480970810540796107207398074776386308863403221504906912376699679384215858367761722954747886142792588895192328292698645752209037130840302969773462009684691083921484067254405671093253224471675581142708867215892800449716160597749476469873854359738931594520776963189752665045158664581648397624642545468116089169084292461236563487170092298396524832656265072828052338520559033590518989007605468627416837499336284427098385147051035840853402618525837225048509260454480361487437792446807634146823984072760561305418527171749633421798932963670120705573608604187157145187064403574520527581096138399082646024469810150875820153975281699877097889808199302443409675035063295614538619038356955027076713963161387528237752430098301924993514290243588187424964786396861821312018326643433502188473162326752622479629438382508902937536163662033057577313586466510380761757202603079240727043340157172022549454341788018640089657422735383379436398230389779717093411150677802836954240257751341435373976874375147213240727807152850660578791925223561908332979049799733353495427369208660296978788959777176092684174619765555075840350481272200189305717419571766062535681698650507693591637373262391077696797282280758779795014589244095052573489635451480182980737832252403953233820908441073937757835456363660242695217369576452153697227988794674921140439585172768504758259393652190586025562867784475914457001875334379367579384322488811836462987315258970953616730662476770068388350786069454987549939360945823583334683225418140634652080165480272565969693308301290154930399399141219417804178410984517432693455639675992954076311218790395385186489431295481411678193463180358784573600741620522899409187839220440026128848386201567499420046261944570222598959234579403492330602355961261426361335086302826458767927428146113452227843016909202223995987795819667297502361033885089305339619087926637213089006184035304364795628455551625606423434899237905895035556412016756049914155613272284319193587741094061149175370136298449013949445305277451525436728959235805593213913447420029650291993571511760322282544272365982018600398812161207181630126238201388913376783785494483756072482604989511433475490189669084310677566069778023556489526873641376269910378709198367626871395073220163069505907034019020678662827727916266858939527720901740411189467592122470861738337064354400206634260228000451024096836225366247276499963249046162009554682481025824081994280227546617318469435949151311257842449721128268938929797386321879851178035458778107565240428350725890936681512781766062630571596352924304005295617332128074885773093699889909721913755445206050515771582571817126013163818825928706803713280126857873735037113083591438642867600202981396284554101005443666067100138968863106062365838460267659951573455292591184932759064277189911483380601259315617674043499654285791751168698339477875018325741154309688445743815923090235306735804946817743349640806155540610331921961872520011086490704399947872386218100073739040551313005654099965155774033918654430340851562107339584558657975405869039434464171478565377853473967113788339779635631397829939181169133163963881156347705164125577293168769145729390971610546092250473160158341726536944645142949763935499370097165755045456263827498576352002067540615060544116280146189309058553737302913572756404863919759669563281378927637674451242487960725981175151294135234753993701426456178407842405826468837879289642486463943909562260714233305775534537243182884091785130619581023369238172202443562060655151294593251880203971675908105777390030388245967530073059792170944339934026237347716568091744526533164635204155759286103482368734510070524902258901689896531554522626608318147187381650002666193114889884535753430339492994188801579138474715774533237047535220509370376775966135319124980829522891732782459487803357298269558690263178235018270163000186610819957327622617743464527270739692725294635462455066887445503547709459886237679486342685800936077452015191254765386810864195673432186378773869473558986083339479776797644465693145519881858433875010369368571781440585672667574690939997513466072259564463044042737308627334098676050745399718593306289976428632479192042491151041839893432575698504288173113368263174611404149377442939428793460698220800002203991949808079346181699224535204238997502141152942142589302705241815839500444760062675046844916305612509495359242076071926002696467516485038633533866402998027486003996515893140244614619649512327581747602433935443902146457253512036291914273542619412548703334339550562306809343257391568422037169493478109877557395913753551170982855350661079442358627924687217865688013422625936782761668342352608071668238904220116164547681327612410717848155568813290126214941024400552839523493583128660102839174941297838152825828335013165349298964391291865432556406256203001916598182672249432409608825526596846994084128301476114390241950480711538697680985402720831089640850609902361873734381682366230037015285339673900066318772192606048793874799889765625090466867806717136731887597024404027812802053335550303403534194338089967762814708342056278792113994931743977305373700952216298761888266564919948186457295374929817681302684619702649349335119506221117850253964703499197206175541775218024315181881038861808612504272684283796175921069502569570275029030327720497993064001712616920535199288834768702987590385071611626813742747336078212645014734251863940626633965960631570662212800950590454491107463594783198390618801679652836692837010520670414736172638315571304789307885363599571083844300090982638743703229368840675321402337825316711620611414987341497600291906069096678544779254426786321470650311157183899395093302339959713649256114275587194455284716225623102096955052448722270741745994045909453594145180991364644237294749902842314095810762169983962171845034598380861368246449582348274759837750448899018837127005164271021586738403915192596054596141681588117430625061433227152099000571070205050679592018728724531343619147925556337794962979588880801781621006282799730061531775671241201491849663581067925119760010409901491931160685051152061719034892544874948902740875554411301366546222703064603861079972917924939695311042981638485068672135487981166008864421031328503680328645590956418965478186165415781459161301948198694087281480445161576955654597366398058988690570524708062535131745267596436377352177574719343966134890360460571230209953677887480866202995106785750552966426702757580237510375844787627221404890161283535244818593248333762094748709122230439464589275451830977744116432242368224790949457136826944986341085738757761316747905367262339061504731127983486762285504073855420535230589878657649335478198963986589653256105505516003163433540756642370551823927659775247357872238757879304691269544125022143575425577133083571855244545869551465863181169782512291570579265602735779008467616693032758147411677146747220070499030899879378599879149181644198715772459028753916002667282152934938778333975253163667223297996813367304639367326746443910386202394203260042588468534369854496136308089534319106916319765277207363766628958040897152261720521661608520409515026007463681875650233096568398680271211506368389124332288066384898897535654537818715257619075601577870727556748357010830993361211267457154959424370344881891906762391828449339083154253442239264278914439854104002894993715422391449484173043034330300892666019416745047645456668074780825913129282766430229362025702459189822265757012686308854607109977368349041970254711885980258820848937813756758184316970767553022036715487179689328682918047432636032316865753787226386632340264132013368654758441263884094696104055651814637447978460361410272258483871072190602887353060546160475014720170505028741552438650122302558173968969080616202245619739720584341053020427164239540892767924264820353121360938194426273708944324579398948660553906309178567353155086421136321470361864116326390319724465176000719971393295448768387497470760304832823357316302258183468898738132047614296926721601825961722632863998742580034274737791011632272433068884243054488382774210741998260593583223325988070109762112102111580863632806170976857248155902297181233485814021083783343130228307089411594307097524188757176331981882715960794527410018039503020237732157967656986780545170835215896178941767765157907220023887921800609429483610306777992271458091492783351551404208097858825583035181116699916677355867909329021938120012197999452414444085288319305846983894093372271389960059714664246001986651025952528125635352911648768093908423951054994223557116852667057528778195841798779928531448269856835341442689963088905736560138406666169772340319699876204160257163052612787320514027955895569234973490731607017248440301613539464519573695286501536215391360823435893475879955798809512243151661120957201765589080765275358001597311506856455260147113077753772395103894018358158127386392037006919110466319378611680177507389970447131013858567948922686194212101669213038363363555917463219058753550650065257440225493010061726437408268483630485699996019520205733825013050793414682661278507493680075322062701979274476052745003873560504239231277471474418772814528796851424763171319462460386026945263694289740372709682493445870086269686818727556460257258351467484759684075545660984489277803408717552882182905093948745882924011807957303302016407472578278147083149049356384544803101411094079337141522166320905289378484623482284832346835328434791977812137095664106637847388369232087722233726876333765079153558634870668963716852073561446046807494826685549599128563391865516933609075817351687100623694090337877382698904513050947068880557216807372446985359579665079046416786253780075555839417288556196721828632508089183146321507457630108953336551300106840790173306312570385607487580145522539748946366659496174031885211385333385212887838545713029702913428544006725389280566868501432993156032410553343137831662182835737393261929987239267981495684552927211607487532317109526590582883094541836468582265602923352335392337207919278286974430407411839737936494821606316196497525198606588064013980019555738370370259209154648474610644876512157066838645084003286592388489527945768362969070900541840219069352453889170263369085016127681423331946082146743881285255305657557508677267143583838284139793263267795784730029437838345932974495608206815623329006061870664613963125159123846918939317221314989086217546115607613819902035942638674140281866000651680547244294058688522478423764912884433538124069268865514403101209244297423244944131964562974217069424225368273814494812454126602996747005889088365563309311901419428830423081133073000146690027987217335794307794177607960905055286723721079012150280922326983527482708150244634793121808544937530643837709746614996699203720468288570518298891019599281201052439579993720599786816846228661768202762594546837056191558848387385027471907769641675759781084159147977893993883672937465300473666693781132594740303269632933927653042153005126077757998581622710092944253544192430707205141642081683817630028756858372964795452392942585955128023397927736190024945182984923818822085463524483266873105550927096053835708133113804200891740676903055713933255743252355632760796645748372293254430647668089121665607538307196206296267593303558511371767496733769074734632686854351264564536859211861380499202407374813237363285388400077862460672049391693066950822113061003917309827974723889113313996001229739181125258665559915589218699126759030557445723036850797683791564047808839000005383857811523175302857743135759659564434594089001094506266814664546570463369918842157834735668386936668653289231179196685315678760178690406514135313134799172330992551307071192044064685928694790934183110570902087752925263496877235368440786327445294548416738606325330727197447448605960750668827952333901051321713297181485883112773257349511653752844491451525874664256948036168047077566039742772228785486010345057756067212042707990380508647390066555007904438099075120726626349368154913461056850516994833676703064394467768440433269540439083331852465363226196140681830787880746854659361645561572932699595588136951953296095457860679274792134290732592888554268594184152362407197251997183597993024976482503790304035292745330689461228120659184819358321216901627347281018483134765399287702223283507752354212521317466310519083031756508080643960053002080320128733641655040894735502101190899200463334143148099397321814259099056350543417509030338615134185341292389680923336865077273690667886292632010705292026336758244347909557126178394966956789790341396720289630177730330659403645907938901510080638793215516485338084382217093014420502341499172779301980621046588954556944707299783664458656503889681007931344615360868271322697971785961985056644373003130072725823803492366409765208897738424798517223002841639764625418097495557323631069679584752986728811478204856615599911069373539864490438057611441365467864204236981232365808404628065960455076169233674949771685006104409407594427108884137016247945418560329782477566652467570397464198452623047252786944731917857350344991909175110967937963067664204962156633610276135331251950092748061442854413384780173687031511661389978932903781592993556227550536367122279326511822207129779981195461535046552455517963014240795141340282219137143711662673393168902544391590443089945400978940983550099831241303240905229097242488497869355342543840237601810525400939283909043092105795828674499366513692433637574970022517587309855668970927207265015505640008757746064895985807773603343935850378372184728569907212207217268724968274867841153548543248945626384688457236102998827740547619125691609406878474210558200526224475199018976015860144865603840474465663125962278615538784226703197454412089687076417255259863639364675339000908249492782771285678727025968624007558246881547174537097127432247569219998876650004535339449447097311953228777637533258932841663483279118024706525348886415250550186767798604405239585857701504133827853952124331264124186418578640135268848957444433192962179006423823005707753225638865398106010790506582797482296598912710630771046875839262020748282136872141914346521944189278598284778736654628326918776315682835539916188976206848846280121652536222015173872615495135164666369193220933448642402970130427264928413909605053218029445659524414215384404283246368610035112053344800118117062283108067806325138420254494602160650101860749040160941741992834104314515636420240574451663228485731232973918739367493750668704957972965284579546055453961537751042080937497517046552887829358186382939792955365415672032563623846309499506548357559002674032714013955022834073889790097139995661545143823998442893915641183675225794903519182959629672357327146560410181186034760990238354495164146821162961474686651244653702302448453872300576555061194469800061198781556439345246547360284100225997861619157786819786574016871547093577904629530647646005508393500041809546144670227503518847162924799411311626449875057122518961966443250022567730182111180699918458187411724571268060587440522516681850290886593504866185712501146941114591290182299517131645659737271670679699253830176442131707562908260332582393415197831725267060177509404650429909988220612111590849022739913657428075659244334589020105016117801969641991353412276943037367451948621748337388686117665793971526291779725907766331796234442374188473123189243506955275753709678397514954469121479551381365931568915956600799336355540413498922365225626339892071643241328894519505903207050374303650148819892584908654495651068497457954182082897361256169948628238710732835766857563494320537883676232242467699206854107096118700793937234739310884014498428171002062558813900973035691475433816446573340906476528252377307168452283813191942831893044723646262511275545372712037597159647921049446234181920653884467432379985024068216202874502112136892186243844162359314504887739434169550352232830235140605419072066557196075014532053832865462951030350367653986953827897259918741746641446252341328643997330337557671640114229933784103743336497051574850023812428278335966734142822893928110830800877970067186138362898027713043647142336374975708275847313050156183267392854819189837376265282158871562294410764258700831546024043421174441958027137443548502622856340095352147848814438538095528244815956277987766068173869338391510884645480576861606916776926446173808632687427544790718412386022299826241567096952318805731112435653844688491980155238814419865574202969848554938022575948702111727729829640037589056595375234103337127297344570461346371594097646101225797405296259468100121198265547063883205542667928471093206865907297380836642825576298597634539967490158912676995855748495257294615087419081591923558004355739334991665647897059475790859027850874073480116787534572116972240764185146350678931353878620825168126347397996182683047667218922565415545263880469993066622944491738527233012107464724140670691635851683018621956146472808458064436899673010795990056147806333159229919468291488096848187550492755565752027839385833628828212350835828075590173981076254679015485673264721708561508665399707920695412984130228123539100323715819610791772830633032793353449687928282418639435283385136922969317024599794633008417280454436383966602948566029386088215669607997818661041265342613206855238609601165829521766227926180463110515276412840767390020019896464054366232974764440272664746691934899882688750702464928179312376590628426380706910296207965160003207784895862829371079889777383355778779961444857797861200562160889302186147615066362152975636440162413873908825230910011227572692946890620441105131948068291260540849248963493552781471262681286197928869202871024123200027790747809298358422903166519387180754111240147410320712954317600435746553585690131770140760929187044529586718935440589772301710666067477756417424148401721393558146764851139127623602211547740515782807956091468283015914740724509853460647170822229156400403647396524586288337797242564442887101756725814170563450743870973890805880725387846153096973274220326312219004564981416521440468274712781691319184786814025339298613880858449976725568536489867226971754529743713347177982508358933589661418520878373999912709808237721332902496474121594278603553528067139824042580100344932894084360413649382469025243605702994086095487806455711678017961997744004207564650293504917975716845876892550069261169800294629016170161737471458051745028034145980846063362759934080939558552810355844387202363750114029500877743287353045862502670025692272894907290333572028936434224794892280724172365672383020216610713426574933917328113488274761232346036502611048044718178276436116982005269723621224853423472971394725409178807979493477238499521196885206731536618223950219987600172329657600720732259996416100982187842567636647319039880122752074354683323825824453906900864414016087644347348290185893317882671137092558661911178695857012390365647793503219113776983951439580133789615162656860434111192229541729572812816370141961774338785050505928654231346476564792462935296639124919794943126530673763751784291150326733783510406549262341768907955658776748201548343825864363673077479956678008091024909922577513998059694434580276160441945998794585569174241848861232432795441042059416966230376790668618077049034314051228295585773231423625381454229738463600955416368322870764864729153765786487732154114793104733601318453910213290063953360571657825219589665699801188887891197275799879584317613710682619581186521665769023810452267356225118154251472186886420213851321396000805469362296305143111368764114863203474814111233853499663458884216023854199535892226547249020792450486354418262098346740957491641676001581097597185650814666801269446794890440186664753764046578187657524566244179602667366937709927740503956707650563419407078562166592988012511895505897695198212375516580941155086258855786876482003687341279725103083500591830654255421724875654238703686372436553192406330505170486333334926013076957689917325461042410676124565138823227509377238695618245543791718234581096779129108400673902746082595020793587474237649030805001779014008233736854031512037636700146454783861378958371933064121218002285567279793383828217331260709807206117827879953864017844743547813042988975576135144409706010384175814677561315805942794249645991587023653477347848695563601484093977200320918972732565843819837846042270171318666503379200690428606621186754574683551626220180107526025952078564952454464411842186329611417510393358326518594282905397460647046309070738706897189783952686711652016134557170647548860000104676422158972108101475948480526350572200282090010304174154139330042363116781918569539175150235094577802877898781524585948106139874188934916651501750442894591953173697119951404045294561537880944380200285930172730169085736983803744892242306066727270643202640403446102959658483847300123198906240241801033328006731048837814572890400208889950225323313559132716918388545367645261012549707654884982497616310913521932311349136154745994163207005838811881248118193649518185013768710125867560354885047416656781141507313806127672771859871812543640729756873132787236057942364684411880456546208632312107722529193062036998795567316786505612976208378516349572597207572704745875035590435515315381644788161714104293157567197870297788057198594630236195333307909293001199023586858537409079916031472430094026605403976522171017379993473929777422701022345713719373841570043927233607208439778374473986577994681481476496073604309160624223595388870202890361883490733266924894063947428607348639718505177911296897713207306964037511648207906416792289018593486665183165517807974105316323173392290926161487448890837726543179569907796475256477784324184431592102233424688950836101573865809452512753865283690024853583274194238957270467046479469584700772827504761406361099715147485440980163411174110515843070477264963591300620133822770432080477802780539903429699416579763578684065056135862143464642850362590357888075073154610919333814878452901982739743044800263388973590189643419060195050426863839768579240369405377985841672671321421132754025122220576657147165594934072625902735559136114832285915469823658633102925627496296049655443352389368135918143855969178391703374643237698072733358978681384111785544347586682309099778583665340911905811585897676456585913259939726929518364297745941856090228582057979509748959586885790408011577179442044428057590482587642483236472122772248112696445727895898350477732871393750299760894801221821963886535101737171074277466657815930894607627115359432985875646015761866128402275697596027656882067879031259829524800992299731938245263811513171159460294991929085571734514841414949819535872304008753597403284205316663288267121955197127002336167148978769848104456029979799302202234667015945382644779941349871643479957424265257392158386592783804097971585866816504013213016262248014695957621133687543053129089608812720267503632463762399171655831657167286579990890759044632608943552224443135167940662789799701884318151601952670293394503192562915855998504649896379891755934579697757313603248792582607409325001065759507571199146702341544964313172481261106999998340674586958166965568523107565767141465507599392131143667920315349897221534211628460259848317496381714761559884446523795770584690464801259520126754565200563286493412387305226834177816315487346120854782939857619803766420206939234327434393499425567718535399415999334267604747195649282479226090174744912332854854790423658687970761085305624343946521350490717976489211201970815060388034979286744465389635533846150914245539157151902390038468331966892118875408210186222274086785196319561556871778209938981112116243930144938946026550799486196121032622502413722207963996566365108142151998768455982049860444189833981573712596337136108555172683924478995301776926823759394678680661025085653645806936150923140933904415545292994946457840318055554306761788714838297427450681061565138880937414638250594628397044833556025119529434940442633612832295314888461891934423263608446598013022459723243780378238062993064186688244704130815544685610684095479964397822360526903639325891028802035844715136243592862146672461187316805895191618713136361400481107201393870380625585797536981564195525844028351076867667330628434183325718623714488667388077032291387417702892592850316877286775339708841618030613646499680249369513487969611855137103179052868283310008598404404212620625801999422160861738471115648327845441518556955759028427971206344382300899200517129078077369230000883830879624990871428966839485964208623882460065427488681990532085992835949555752003603128988018955007481928579738413460640908048362266175175238732016998470704995489232615632083252790421711924930755426466886284372661747340726064089755448218262203981257870817528675296301478967509382673091702847978309905045995958328866003501498403893704653532608217758607428067720782866436938874246891778818806023345538354385732467352646466192490564508528636708837263013336818812020098933405863144386415655896470457261392641027679558645800017449982845778112420212438057600309111478969596549787510087973506956058353903432232352926123047430114765710914832086955235789907163431161540664464693015010584113362133707276680643048939187451745788946201446568569328432560330543955001303781708812419823456379511531560058500752071692455322152356310641229815109878985629514472145660816495786106814006003609296297506446585805044797421045481159642670851475414067678083485926947255277259928743480877052592161692834010353771784984292683050610886826487057155868534736426737938816443722992862717599232525222091321751774235856968699730768102620360050775233650014338746543720269399942300154612717343901885435404898322336249871868237498067071577121458242824645972355736798947291011200349286128903053456025243062427024112306704643903354773656208854688347350997649046036767141531786893584734484602642452737217756793606218906541721007539503119527910670819391885947122751555588010962025476255429831457143650057520472736914622013056735407000932473392603318524150851401809428862845239275591151671983378763308461718519181585288102157065474274468726041666015461797510491451060005069936460996817952753866865068668755149382320119234191721647574004176362070914794518521768147531436017491511253672702135744933216604505813559097387629385107591256191570527388301459290635155189854519847950211673965083160045188081582382525251693989578751905022020007901128500852314881939598487511050232695430523627676237114228142488240612285165493343285262652533996790169677007765765108411840991719780085804687167602351762674966231816985164389782549100803420414745093995076437312873830358458850099315162863604222913025668866310754639262830697643141610838220573521009072241026840280534061065936979332900770554876357102258614268181893147572521467395735385926768769510020595974204576066877358347449962715989394826847227052798762742249710665146727204918215720895527475546468080528386024363943814957003894371125968734173667497984133805938636270105932503062178309554688696925415236991146215950656254868163701686996775293379670323314445296247627831738919955140252199394327824474393545768325512047296429442062795170163997695149457423576865873236033094472650595612968399788796376637679425969730239594182444206968690166915470782834291664857983188638520190536615292990805244352683282665317425168413107283708965933227846555032575013401544124175423167415398436071959814750089501531525709482822245857528534211073040544691852534552749424084766294819673997262174882778719309353417362472462432132299850784944029589098647186204962921082740409297826641289808418400275963999543525875807485799483702064605432310154397038257000208752424637595090607280191810497672284370239878635189320983769036295779466716881045291589371208914877072731386495196324530989223188489040114865768241401986889007583253356435976659650495172493671884741294908132525104639011424780058172436985279339985517640909688175505349873871774131483311343067348081354037590113522006850406615925321654685429214483292323704738851166164330312108387756809147341980186041627709171799313727334168171067325269315865370015923304523890954563226288661024133873110289549343665589147790676365151451739738860286263248372621489781803067427022921467476877257623449963265973291427756584616836301461017466870968922321034441293735718406998149858609695695461071710909425507491557209859906774083800713067800282965800354331244012989403295107953182831844291658607945982409735730135613081163409746205248523021754118516994306794134225794547409016320972474827680383372446382404652492466089503981282942181205799779560333388445367200302937459284440596671999451199425742682199860110997147328205929419599621244781319185152251921735306554300551038882473671161122773309412801152116835749558763066686014357671955650318850905368493189070158298308380082159027615567461565566542319702578874063605994092560679257798215223753934975408901337617625509251318928548633443263263313516878030199844150373085668228732545923812549133767168030828649407808809005769036445265473106095238611436740024905735340817100444738156460177427463710296533143287670723649144042990547704759731152416124432346871533513040178384570466125882274785074731121582680110592520254113802935086188075371512337892340874054506159569366379181120026550366379291277593130635288497002810262751963202007683901310920136848448084713992660571223592383844153525870860133234980073483383046676228407015322769290660368157483736925418564281814832967651709699337411352020097775781610124767023486836452904045673688167465002791292028370745886912864486266810008625418806713416183520188148586918229154929929648493095021245232579575705559237997420310339665819499274645871857354968574851739546982108960047077752332797790988199208108951799785709697266975120874759578320884515501925304133660347403805784093423940356889868128325601907891261716125737916936196197011995301495406873575450094943510819178792318132435550970927288314349815809705783418941472711933806187078493053079896157335073291716808140108756119111241700675479483344996863397596834097352034574145362900507791672912026721966638682370856731444337586691893803962040245377056466400289482550372638372327084442377823400612200406856392901147560263987302447227566677847585816295766857711746026381406373360162580797153775817517500903927483780919874449775671587557434822146617930069153869062006950250643253066427479313742987038069838072255564703302191493220435701387693194453007304935386731879282107146904032919094153381575193657285828226463271535623677438024925854688674376523968426360160044540327639312112459824491025986520153042488613269485238233667544031822009150330852966651203483622777922144908151985806212655935359052677376238100099932295928000999228872687859783503847606263187985749636064877345861898938854682694525728847412275103895689530222979197279728404739017341512231053676662517539975960958256032546443264819160451479832550762734590985286319082637520415913888954942925151634569897957076004181674794540735371856417147182482094449705440569422968223313982051311554939819717714180369226351605214095728436406478900948628068553309890359139105137262023113079745018080321849162795392421231327933874609893140106455776187276018253030746314305986995004027721284558032974215391874788240301168238362899587671557619590943574470051814533350719817330135913209452191543012489339560227943011756546694299467974702383844683101943506522612115612868806295348450923791804648641919578061675593055561136039213672615587234094684354661496138883641510410239175997325171272491957183838734549711964766864043885121410819480653758639449658351011923437887080275930908870516261431325496257763471637051253814197864130634263127623954764596333105457000255026284757923312065622938680311027951020794084625717833315078868544568370996265423677031896338208637968450350429572030835386269789832566276014186860547450516738465494952029350273402508310276759620269280859505618543633809042309159389920073336725289729353141079143422431232537924250999707577618672331552051251423765262935349103819239289030064202943481705723553094481423265919972849526120528980920464079778888229230549208983256258547407154520407618203164414869951672056375322436810067159824767944331306129724066161983905596710063470707050585593655979892020105895470649726854170591159708789661547906692195455211834601397322064882919761505074207969364652695725909521855463515837119469018124283547455043556263427281327645213462644485589393896550744988268371223681539708330473855851042149776527664161484326055873283822008156259608505164103758907142153292703100090655259424641233241592194589094085078876221240324143270585964061717658298883660593426813843503669922639263233617812629641865320881311911066350905414152435825624462444667123090063757193505511582344542514231883110020867555312891688489978260291487524577301184728099686046358211036421000688792912813571823104304255144663175940315798132809559466467549485937797547246317858574274714943460067291816802429547665860483094576858307437432050330037325533805136424283571392678812008548197218334980372847844843539580356323905257479099176969810879092578057826107320809219096042395922320793082762368567791668797923106699454795939036542272373063977688814551509415394262548810270684012485971783536353370861859429002605490831306709013065659674368230020455014911960240330002977105391380629445121531696714110633590326248043147529007394905311031403160984138829293018591136570545118458188348921612480047884458075885168824465803517540648631165599129418515566887826637806327434621995563439884658732582668867142260942998475078963261607999264214542682502100173627645398739869466663147895603782620981109031775686851397249044458570589189977006942663160772812976347772163132138914617826058788475979733564547067694007574725853372296855519684870384187857315121157601097336462068056321755548725155505815522273014746648590165903905457416655261726595676287706491055511670265402197079231684875274810125966409604622392463318576044314383549702616125353794740408046830884451543783659657373225061691769923094718954034408701555345361669197919870181614435369421564828461065681150970873229501771866992808183659756493169260923506837683862874896416895981671504737227425501425618857860026744624984961661718112738359211154837442189529618032386420645979029884909204365677159980968452033171642303712229906190375860452854039281781629568308205681463768467205228504020762659708156891536390709705214898885378438092405826702387479266061956367794127773797046504673127554432299329833114188194310927413149353164987225512279665300905147673280326586891093728875294132546336556845721047960416344222575374587564606385623443194403810775238838792122147822595004505492103627103050127765367937446263705556217027325839569242593080222003889999747840294933791545588391511089734515366260343823599342767981535229158535898885631416364872799823414739792627778245782874394580648916877356413144808160070993894178633348011428505931644632687114532334519827109085964580926233946654639248870124287659243603167404018929209190328650628643923024770204127435703442871882057586283926625739412915391862602739087419928505672135475456823224733661673836716279172554456586469730343038136064114218951129242051533841146541851954466606040934280265063628110073970062980395537394043024891040250036189562570320828225219425079898666299227331184526871269568535609580362012800969574858699293743470647498841587743401803888998868601313538293084384228050568615475244104102663095326914545229568586824067216388547713215432894947810829641244007021256684966173003548471225474152635613009691560351001301523362826576021808464148827201177582780214861297012511002550600388776335634629721818101996495310079106660434039270663231662860753446066973152773269718069734746590368542473684287859046676771300369626772427559232479362899996446658871221667644173263064805183385093672873647392783945310232023761853868681398001861971602158812976525854386909541331669163537946198467110357286952997532755627388784154644062605934700380437948249103010900329685940071052678582121565639633420794848808782797959097315260410896222958981810952887310999274626787947473708600346087389446916087331698728108861793052616769982748223208962864318355916671818048692824957141131042881888948503541232514957718495950587373717366650906570099707439487923495980819197293386020670316637872798823507994237138373195480257326864178627979908835207351486900853613474803983609295717126139115065036935501356206667500427367692476641231798752349812087340352076017215308108548357753257112693113967585011979657668760289686480349882134448005619700523624528199980457740276373567193020057597258700269258504068050725190837364505780254752143185170331352943064614367217762051909726406270043160488458792392456488185771294730659813685728662700516830653678879029247055791810667540885948983092912256913303323232457712285532382989886068633052244765149555826808856808915225991310318823224489913800142231674213915305174390764423475713653112850451367946177547392844055709127546663966439815851602490493391536673119093695285064789626452734500511414944950013889617707880974551614963671846889476097899907157683902503451928894328617325554787091182092106821084518769437779261892047276125935585699133591200857301118463985296236990999439703153379437065159301593357626180622277989329606907192041208938404086443428338652238637899936441881110946349166670139061857982607052426526724347316648264510194162705459644514998221820807883490454307457034405993356062547208657632480938897032871043140549160229729431186352733304022468726178826968660133732978207918376509670115823491039193313918914871526483368891262281266444113183586482348264814062348184251623929719531799897036623103925514318502616680774048468657783385535311465408903067638373383068336865509629299281902699825086736829673827126026145849165792461423898031596018292503381624618940440054902287535360055982479602382471159080051876416393190333855030660632827141162257705665980132453029766105028144786294813177164589348577783524784798419064672510609962612612590331284637661076645786381714663645502497645602513721691774836946274253865583807291070783329830907362224596111181233269737949296972252405621267801268517185555474647541191541475259021623883090304080359529370242054443551444249849499023927786883960056981325828982296057683179279981998985055021735413312037717060447197046575352688558293787314092972884002034403950860333573618572879639686939037273001755612431837546554273081851241596003106310849950020093102611056894214154493997032071109737993177887323803135550994923327350025660851817468720886925756044897764083376595589616377235951483298321080036389512189380743631140552256082573225722745898594554385121595863233289979630170340225920014411076330915741489484683153340983357064238052443300589497263120785891926171926524554254538856990576187261068589556504081066209058701588226676513064841545973581693992590980641331268959959975562288418123081761692480291763270581873280257662156397955994998848627285365802052206348787840621589060581265751726752199424105772707946760389768778045954150052061823319869053398958085042690846789031530358151899747822148484620764712597752156601004709904320449289440966061408709173901481275491108940640625042505599116452881864039923706175111343729694530849091208943033947097058474084349361973960883453350419486891552031895140608697198275342599440918465434265668543624617248503229916088725630782149941166657039236286598180616872574626464109625324142164705310073049113904703264586347796096444845115317957106369129932423978687173224872436746956869272841041469404487936143199802659965454459522858212281163068873510872576334335581422848776674476572625374740125698642270763397962369937639770799186278387286067454331469274997083622424604714275769533750553319536607058944761089222136236172566253747000517098744951910411649946456676637898716292487317259802173357038705449525635445827497074268578752317003415648987653679903839165638848534506831444724654196473458917733797486488932799338061339617559272136061381234423571412834085347391385159152821810717345644747783292403607663958622413618210088036462938039483523877534066955470217141785529124121195016702475539409325430905773762385085587643520602823511702179184078994039069223783206533412461433038723084380109028137023368397290686473118920899502955327721095441091207446404044383892422670896887691933216270777956419736169021803347111545197486530338962991873879417823193493632528907294659807118588143632244929613021599420824338901216423591316895680750191928071478577454481742419039429475758142722138842806926548697534794317152121175271951962882293091444710517884741353963092442269488484785095118380567589927745492258345138173851248448656054529632085588995982692795079026823072163766415414607287673433790465825693993836437510099663040998467131950015862977698721930798804786308152288799307974966364037224873536728168642149600613680924982141229508760570510107258190963475286318114742089242065616866154705329235651363817169207573305743907310065379141763635533863208788146155984971656794717122469223410627238706811748761218497957844085451336482071607583175024608271678301152063026516302542950213491672084105928629098835262367178282776277669299604578196796108147450978595482999291609886460751189229722372875447567528180995551528909960515025900895994183179197692853022432635749320804358562004155322186958942304690651840539289580155626743990370600715651320220990722615084476919945791561849263464940775795812713882923168848641427818292640708816897592560508170540138247237187885210696946560884717661832079593769948606380884339357984356000147243294545520132695142029960409278623326123242896995116183695828325307819613730659083053641603787048680939456543970541529256088440560792277014843251252045485131528495306329306893107622925782810420958653197536944486931895086999545464120314136327728204990281321747073569017469384911140124523770835291703219163866225623703917514039919815977715055742713595726010712174194290289752468601891361649192436069116977697578387673726492457866565449319660749421929980850049418997658358668665016291402719500947049110812357322013674800986145240786353882095264234187615397639683950151411452274522470355062122701810583514697838544447758203727189640322673674624105292237698799147027729105377045071095119415260688677852082582435098043237846881244427788416358446506508729600900234909187271575935300911129079121492826999972692293417129219295388089642949362289624375852946566348981526374993241710589566418788204054968508844307824861616685459163421571939474322076861276876238121260676696281307058882782571641341179924025473286816779028742340552897538520751519196235563486360877849620779338225469776531587514055847859115515623985653504776863182969462881254338215814241392354906266110053227262629924016971966296188414182411423756647022697534563911566052245517715493793493668476686817219801526861196691029997093169253172026216294986234166249304180795367392124213999792268498456560994601183814889066111693115451840118092665760920446972396038558983161347151678939433924012487143595090724494245210014714361164619245539835140009525437526847732218900360099666502352883902560930659928162827843303840472592272962178594052949497254436200648632093396281167825891839562583833234442756108846261834594345717968457088188017424890878361396187429862767226062852085926439084821847375759294325600462769901093811915941057788595668185415399292923929134293037177649287811738457099173788454650354962381996828081911806655657945264838563556036849035288278384081800524438194250389572757567356906563921888659766747872416806777011057034988510655855637553592171199007127111194331274548541758116006301362243655029245783953642200978589598523662712218245960560099812453525749627459844135932123367872443627459613198228999644533655197105136710680996000413030341571079512406222971851243340191523734088791291521409893053307983604986894774481677824795571495060632279712203863442269655175733067328154646380826024407068991990438831664010575005326606004446326512119188021309772071131989308355338803196479593704867473906750702495452347428070990960052861003641153886770820100700778663190438830529221726276620297360884553106039568879859697649713014161695324066260221496088583829009371495866184019154500040822502356695300950660215974197598946488827629500792799396639839175844405091794737321313590447308083984327158065340829583492660172627149099154400847212451076960182925534590725854189065523044288347835473789376057713194513571974417949666517862284696723685672418483201382337008713739320465331419310278150539070222333012824729768167605471830590894750637321526003873827608799561336711755756316190600131328016454907739382228852262376714005651268352937141308314006317052271806303883608331664168664635785508606278012736918241152561657003542744042945606472940258281935400714062048090088206799710254715289320119375009471284236673498079749163087225409287038896472697444595727179810128150347381096401311361065655411153868451200554206170910420237491181750252857164629219448741973992887278414183657689845807645727866000025777709818836277053573489086140135032190913177431842305931157773935368799595921469887340807548983309462038605424974851985059324917334072757329847929952901678981835181112284838849582689434172352130902812400071338307531727417709662630245903171600618805291368539612428217219130264768640989861501157625004917591488115518435528963593150542979784497389099869746285443228127495523530454434085710831460994758693973648871279879782281809057828454821127698675776848647000564495106232853126334482233247533263615706307692957615653983401453996059001504813727898765637621300341438705779217383576440430870606945969140383757158638688805382556013623690194088916561728190097753154571534153524281009646412349323339333830875062000795986719890271584732278119067586068041658680403404634537938534654909882098821001433254009889788748418411257386083118912213804247556671812218250740067288679328348604117343406416455102226712316420075408955450779833187009654503921089402288767455678868375587292047943089835638157498553987769832304927015534404836742362820879776977630766434414750163844048135819536701067786373480631627693546045749003289199695070490929959937475240899935310269795741825000811899273586111433736202588193113884174641835345719356836422236369633944055786687739751481393761376362647091399397200347987484923397671293025767322202749171158649500582345940052193432378329762968015296687102854840426737858251195217056151403478069853849874642952293354343463547469862149880422206233149771411489293450527523850243136811755695791088239456620579847082210051457752638632807952147905022280143694097587553924802211522003000621486275946112438453493323346999394769781900318298002437521794409039670282494631899587386558822381035683384683655974235517775914282421258729797828329308935148552102689240876078629216773330032866038041124425831961503959694097694846159121567071171592438111690773810285003363701973991957255231164748169656961414754972441146316824525780875369858427983733435837802176463494523226739483187464112895731166138098394944538467091361207907620567560527743568446172232890910507507635773636509683784340039502652734041498489306494700975166260738711925540663703548982787859088341846282249219805558715086321370933447858953661321765811283748721331559378294080899340159619972078594289163740218844835646209662881162631653470238598119200313166903423415206340038241292838710544435932857411999809130359941298451031317098538422173013425337432542047630307688732994531789667253732671359586138604625162219350355330020578374656579818740076408999232128112043517423975588265596390208027128734535381476644335354344210652416603541522904802824992029783150460989065197096228948154112142940157053049439228594001739833327377187750812741679981498928373337643202808383362931290400838023691276316319750161993437796334163788464716606796681283544348817484082616636772338220684393530474301368303878029183585156708101780856369817792806573816326577962400092833474805990568583160275938192350675355733803134856770912088645958113118575647380435305169725760265158056222051255597569808641942629128150690933082833921647922171120738110723310430891622504662756520819482113049563219893061550477130339321799088369486820171291464790081794154003872515231081978283739660469255593630923194788456375705053947906290291513469403839422162779468879520862076783807683754938907376971807428472043734711925395322725031011825704530174870370201687736616028960822113427930619676982535604928273534678919515124568952431088513814170380098825183947734894173447362323860300308186462145149477020694383680186946365266241033027067770758463841289594347461427610952582375052758240933558727850522842389976206356321780926036483268390746169875130857024324896928509503883121232080018629142603505913152044585922314096496985420151344545521039820905216992042575199146678819731434844287413857681238628013187295584604788898744762358341405746306245527458791456862782384641062452790977358811875508754177007911501810743896131483300176265359106503616699531350578470712458667274883834580959114969810789967558304980091049165148252567401982123256107003147524268617387173416752312675622015341863184960487328016530992497321541922745049428735046317935265544435832550003884620694953740858251154588197855105598231870995201023612009889443261165603561155107003316773188133177068349056001991155111782878464808580757864715893348295033694036320330799014722951662765457923225256184194213639155614602654318006385453877916366366445142505586729707260353816488008550000706851582914148978776869869682718302586192897854695502911382405390740619884260468513573969386524442498192788659841100074483059706773214343654465685806582269989354166314339058630028176879514274220165649865563307266645465496132295291655381598609297326241674518139170565381725967670645825332458293999549132800582290220667506399058489013793368099985788124959374799853196636053003679088341739486238857789422153770520661982409958206584111242388062943342844425191323790980027337465578364721236135460492309054184577302261088299581913770408004913278121294647026847665831247880088108638345364134237765611565337975586507806706760364106746308667263863052025549344804428201307372402043459557590889645229817917462927366215250776496837849234212492183182201576376304813523197888669201691889292689978893090311982523163374393541007655163702331378428418660870991912743535050576155961789075899706511009424896043704851638951768599973125335650118539482180890304598615897835579002806591025771543336715603424433936564218177239187283958895265535517375158832424607456065452137575178130072915716764357536151856783396141552780477451048283231749257430451560643873731637744150496794662854460672457147058054367850267109692627022489885454721699551615906660629251527800496816816375321436975092017711576253386693209219647476233548959071531227514714305539937448717546742669815846968621487025454150586132497391282301248488365316404222071195288157942579994629754947103576322178939501197987154091214625703307177395071776165167086927702041611351376913495232729638835100881469961365721764880378492163138239355495444523929225980800627597790124356060665498039436989948180136360536799108764270329931529130983084399757883816507038951769448513614078556513087814278119955245861805261228943266615866842488944592366272177632063331685489604463704411438379974344544446988624343922982595577482362388979331678986585674866330145843521386315593341480719059288943561533129936142195575221384870255644102750218236724080674316092120401665409332889327620036723077622116271474851933187252226790592126543158167093279283011257935566714803364854591766449198214667316503057529443675112972520564947017450593172122489613470673619480525643492413099933303168827479303738913521662088223102197542634738716859487508602421575100617062066767782778481789546565523486976390907247938884481783001225577236218374616816118740673559741207600495984616449265602502231995498036886595557501481614211544683099408750771995893650978084528291159100953946519808711947447497540300312313586981140865660363194848653789397465135738771849532006520182102679036334407505691448453303637567010522359254350033133949404524251614925496933804520512953788544888982217025609015120104300755830299004123480112342478086052256709406013629718163580802312826623829543143933312404480410242913513086909926145671267598392800646812410823289779205635811570772018275708722493906445783060385330880056622612821816914274045721449932335663809901880271704913714033164538477580238613588740619371500808117904095551657022485975124826008273435277259921340409558173287543722470809616372837502784017938247787819501910456574448325412951854454718963083486922101244180541357217736220684781416774517238901082455929042058815612787578106291841488920290274304644275026508409468621525517683168870274109620380567295975301357874824877702303728372549404095440096744944321240025495459365521171244432017080462870012226609840026960168714506373074738637402306284848853066483299834480792369579989279299685332382458223319733463200213533958617072297974764273832805015274133170018062877057364812281023914783364306922002543732941445321543463131352956395991749767136682530051608684359301653148045677039443832925502649525736128996898144092485266490318634279784509809344853410430691239413548582940540078211699284951375387943898948209815247410317527059527041735027864986043846863703907372209401076753637292105662729775585128486573300693802239899422334534517882431794479509566790750727768337707596009393292722221409010147211238368988552073377578017429094961927878026861661504856004061378253269325270211300682375835676402208498549973874528090677773351747847930669548208706936396214451866531682024622327649710215944754342551943684194419079523194042459701533975650658346322318747029913456958462463588379757286200879152615234006423996660077109983523160816241311063473452140336608320433320208287360095344720940349056430759379567182568858539698246470631715747366688248522257813461188971664279782233532080664420474552581235395725700136988299528760894972821418410999978477613985689260634586219319865598286843755333108521534665590191659300756296557722024965915135309522781916653898991772039052661491326980855931050842863086779641442430320149949659559147230047538799283447213789219936585701872321123323878880892635341933553483444306024354283552345731720024348225570967505794571185444104564706542345483298144460887992104045917513397803066920207189704329969772053017585918995532512673793838532064957386220291890696193463496638924652638104057494393173012863544828878514838844137472193363431340072328630605743013486831429088947743455597245050045417141040341866993990331547569037235351212322795185391848800521003075708936314450973328367307299622706794661016550209845476661819396191556658288147600551315870054570011323138537012069478090625649326205016366917586614929845714282202394459847904144514610960050274700163126621634674988344742577900527998923974588666807592829286642946825389034943123012032379865831881813000118481890825723939617469588417681713916297439753215141800690287509190138791380335176450147473064602819409767822096692552056576805028910588041116018927580178808926250133317677793772519193916482647668445643428544561600849222399327485696473372597783880039096035790316258172896701931821397675187798300778802611639073803551038783938580885146274618073330647364176604989333551730706314507295341755669354871210227453000770178068597197197383221961359615193557873627195490242976870821247479179645403205490477521759759252224189653989638431711198836928133803615979880939373683319515910896047041906701776216279618977896644848407838497872898004491559209450353898925395605937121491296960072393309945131363015461524838944667500079443693505412776481727313738442595402704721507285987869692757208606827823200874223226551192167658320874942544330787311420291066831749590284553347810977168046267296138210312047473368077915347883807414002926218422261558636624587925801691304035748815193656042326684316062917072784549374790313043429680752025472814040518439907751824092275985705972751998268359347961310982256563089010958401407187393072297257843194687156633504542656740795092076439748537648314602976199585575325464809624782787657689795065304594700567356767216346685581316473970285909639997389898289590107445991537158856115697825401050139677446311979907014407831313384435135928744761225270648482332253041820417869505422354383043992998286146058675726437860932151111138310826105111006811540863251053516630143853934295495369595204571549856599522161623924178476439600618952215726174373359924041282411145879236192499926615668445285807966478185689629912366135723079513266089202471028173476695216834469208942912218279573886293460230010832990127814013062299670161987557215127122144262587000431002322037967667146013142237770199426860283607265331614061365740671517727646165039706087400831625896106597484877476221168342250308610177434346022669600294083979083289592477410646313177546931010609415272174266011746484326226887679789343052011847803899426558459989451993183561447208655694800411632090798077930170017260397455724295573206854982661761494706751748483642401589950341918550781263735411360979875076648604771563467520743221515704063187839467413901440017249773726811864020759361126357846011250479650403974227994053173219501194195615547017429943669897894560086972467784181628429672887094104564891690507147393738636434427203627870083988951138545882053735791878547182100495059760711839561352924860153975159343975762727054251599466099661715320019665270936594214079815617364652018532829750754248492194569266881933997278722488727994444478320548940767709508961037367791437422424218233938657669488037412370070467186956256696666064553885396045286883528718090434156970446111564565568672340269089524845069275847309002129372414622030089364063716517391766292619378605594326167861210894558562434526537429780495809342144151935042935802975661886181241009852873320374081951889923543576860573341935132716734882770814750415522283455450002975198447474102608716211796677009175273124600998078657184948386408538109992381653740690314504697108129358862525850574640802915391225802730855876364176498042492868914371428316028535367722997313604811175380967323887418796379153315616038515205294960959138587624060201821514143619324169821625352309716035115588079218108291188534404010414624312952305125057099142642411317898211170336351446115502186640529445652436290044078387194963350099972324648812418772406761378751295373158626416627523487849228678361133241539815555587387146354598237378015579617144132391637095810172948386838473175931370229456395883825864688641821278431560038799274128019184798903230385499623270427950496695650543320078169072920447582935037924639766136328029414160393184912389997423962265295097977833426420527991504821170295683262551127557006349815710694106693220216000722473851618145764540826364402797946057450237053274459419322227819215902796579633429631890523584749472619959937051023494987779601847108196483201110352847760799010374942504505419036876848566124553973698729488267962146088956194481985951047216320970498149874691229643972250222273219102762819922769039802510247378139746084865871457892196481240360713715298611188572080344856943555489466030280380325840702307980214738689839904617533172130005034275094662389014527945731233233807519902146529605957214168449281384080139571304381333488307229835395254623013102415796011812188568802089298910398287816352428409652555574905719574587412506208507941816035989912493527813739289666094747969642413411931313378537192746726160791750820408742993147928650395436552437768462945945720253859354777941330372596383605647439130809817501274611432998607432785238940173897066512534762506308454032720102175003377204744791616362508719291110420437142053409513042024415913430667134876980376883680068816389223245090842870679529776090896722906876436285495239695475361894207104853417905747605491366510516850153605367710797701024330271914112489465409359544413671795928581745019137556077995232650010563859427427272895237266380232214964968277360869008350995770211130331651326364561282032552031638024476939666039249897221753323134725464460420470535334828262177387026888088926891173034758550708343469367594656047834707313524125707888264093207969697660681272148334347376721197607420527490362247427674921221702684215915301537108055391992652631277082373509447044136101259055724202328483548912424903372216818983615117938467994736855227024735004908735540307043064922422084225638777188319183554157098023999951191992020583248202064548411991885972336011553598662103330014703252097284873595518286269002983041411969781094394130030282543016814366614170965137504255183471211325093829940641398989208480650142555359371868880599137855549365392326945230669038453787452401478064605729604730475851252769209537999827709856481551493316725488703577481979155081974743579656498501941701994104411963405897310709337538327518827076199311452806325182061785979025169090831712710774891163043621294832106199366694792645561770034843182840157411875972370583222310736219518264666516026044640018503785193757117734184764335693185621990587362918162799290933569188251306062067302290392227456356383955208353265134563216314479176694436991973636954124829158890990499708114594201449774849178956244653509143790950612322232950624192078476284251223062109936878934862642472748455680165774820715087508576308960371081657492486877381238749340895918710009310629163656906303493836114746221646768801954887833746395963085977984309310051116129596287568525785933847818913060227523255328815998981535531798871382402369037824738541831452013963532332225814241109575752447043344119523788984771835834532308809177345031937454043018742202587211645223913422053111604333615361854827930041264615907468434241293229048860787782583243512199473698485168919811022162839126844503165782335348857746732042793104370656600324487747804159157359831966181733001549528442680270491412914711053257731168017534157428177470297880199950935733639161076368092474128713606226766899275478152191371426863265760560073387508114495515146009529698290289043507918912487499143212696673559504544622500597989803969709146562062667026859947679901167049095197453286188510247560609344727458295644808188947198759112365078894059908084900066945471709761886915695847311772877674188120440288844999192862925587799623850716757061970858094266027311460538022987716294825616051095663275972561120802455197550721009910949721119848071737373781707604851731341737897188659883948466674721794747514798942639350093810052266390032671946936810335427981988941284313333127921612765505834058590247123734685676800860130328025593790400938474835590455873163511504318284938674944357538363591397514309538579647941821341724892493480941137388561721357398628938046982068199907588785852703519917509522267448838913907056231973029509424517482748606910323185381327015161465024046697546299520597658820008866322176992177495428608606387663580834707084104805254120247160581150932104506653389196973858759379609442394690110051201447636575958448904957740017439578556191710971109324875791455632870153078788657901415208713238328706302912830592454161314810449101476292626195224775696106941722677091387886109436126525377884505464662586399489820675656085787094311858302558371578067686605579969159325473656557657956139529085323053998420559053940957791258825268458108547402380081507267769066201542434249063152841097028807602686922557666623634628015570128781482990786078681202628597044201287919182898925001400024972277776678467836697265694499072508450514320074757891138832208244971696226479434702060235046422067615797445168905223828518501314070939280383331248071279922386942196009506429642677055171785921235241974447538668758223837350903159883692481018845165464125680855944703857150526264174138911661964069485680795227267172449968148334553471685908793650750829787481172511523806258020187237958365564207843252086825846452355771429110513417411164430795888028549353056873183934401355821456362898081432497294545879860345797543421090786363013822982379682050381885902372020667082846638672349401286543814506012943731526518091847515544272687121629873350103641501855179211109756487894832333736146144967891083341235873787291111504446958112033050073686300994148824934927542873269144834912615809249746349900786600707742073896179195028518370590979375042430435290620965980398832685070018608489440536118309643418745408523573166185587832969233471004335389021484710089949374214667525334850529763324719418737451962625142149443078925824560926660102959385973233496522681295521240678907007883256131125157954999519357901615984979868391543716282683501809182041404579885863021214386111271418187427364995981322960865760982515839701060938116787312736050062748677822160040601249364471268854827197324855946354424713342664108020049102607843962409817006787312497041461081865233982291915838348415809371905988545282152488743418618315104660701620430516414117102770717650199381989019464487477052229684593616389034254247887930945761025322374502931002192747672844100679945693040879800407391440720814520837065192122515970619097390808746472141313716393904631667237533093327443497337904739202230273113741235061327564644351019061198129806787993085639845017629425602612234740311416316248186835334532033195424504929535322137009178495630500897212850426033534891048298067815619344159143712685114669635507765160835313380246808508415138543022565854346638773693280610097387169829710654607204005515435581640111921270917770250434857075198122042370305133183102074866083090165326663376288746636655109352834526235857140447912551328328848525543828804681129850713548944370894860282886667274235149635656220644795576503456083184530611460674269694406183751035171543137119794011766240257624791144822123982403519822398093045802527823274977549736388040927512400590687100522543550854396619855965608498964432959860502010854060293363068827767807156476894825928627981241889141754030160640245220684297270632723634373348016822632581165099507963892030394872632564310259377804069323854329825236703438938471737012867610599152797666374197488567978551581396214294365759793855488804532974854430023410089331421645546320612996298584490439208832069074275616877038808007498001082402237287040291881386163900359358637943893146146375354777350756129747465108694601748936166432800225030831677481823110185500808252514403729162083426902704633602576827969961853393874837136071563410214287928146040317683253248500751350296568038882587362518829208561646908681808850938949386253963904143989341835079735678593864137909363807455550800480527121328744639065063017744249194501562138252851759514731443915428084606790423340716334016175573874566058641188434758049373713708289425705079178997331376318722617258071742220523735443737266375467172148161844840505853213206823299743191985745769018261719065641146618981348843855635771009977463484292875899698560045628991546846846229374840392344320704071105774844775119825336028950555668380323244974939415526965672396724045141067642008729846833852080417842331043214824700950711968154318523746401551053415804631014400527394510849429816331264926096090190821743044441148363684101974350470991401724625602766781527181595622215274837189453911120270831956571886156666587906600526296642895231986746206137178180851687161329328050773675398292444854091723550622010421399367779660702905339963158559855776035386594327329116709920728077405185821734301682282664218301416736815798257031857590125437500472124554989627074894239302529826731360157273760535563690564929169890573421693282910082800603660870496987833749292804877740684838150541524536718806784370235804233566443892957287190939117674873353745009105993607166831026010514732469778561123505004768958248201906514342270360629437319315223369500951092152548568916935060231671738619533741611560642281342494665164056612883307783931580182639234799994579412674197919358470130758533655789402557747684422690883030695075799560616408794410556184770454937761834150944024648536328870154544693393712960310912812358112206754406996468026509805386010005158502529980143057494098218910509719275583361073684182975199415824087705830980023678392571624111985403577604408575711525865954591898813931777404095070051570224519324890391271414186696778456603034369192724596122408518562236667885822082170521121556321005096580271953563935405997443456569081668930333324168306102125893752982690512796196150569545662588352639962515884971260027343003011665832432992093464959152636400644863564723088928738520776851324640972371501179406325430593988887293160319695461333420935989793640614647077622223316431756654988599861257726771646617308340794467755581764520847492701067404932578148891950376298605170694586458972168685183213325492999938316890407733509559185075462687191020228833372109825457234636784310601721134470430280250413055253751991038495739497878562968992619105080648601947687292163176933381325358962891624877338130136377394997655147736618031999467380861788168219191163298998703450782966163151710123996731540543249223737843897663938880017644075007276052060117778373920331901441442619569556751194040420360559354086885502721949335069734748967520239320462157719751715663411713374599398084787276063997672397920675087196514596049676712289607880950367012438347937442624161617744860138621593013976215746415001030386568643581954050678954914910876921103963774600948715236595093034835877611648660917676343064600736452686801322131370907276861861884849808955515858750257701820906398604068515675729603069574311161690817540444312379799179982173703058494162745367233312556974916727000377613820199558116528517036350739041141870028777080836641598179673849807760162188607146876732793800252056324501672592268556906127650473941038943669042399966301745885745461042791342667133740076015386489053279115579518154255005242289539451239208451004780961016275488285274712612734253896860440001140540118093015060286619964893872643384886460383221400574035836274632348566941664407599325463689057486175421080617102584166481455996996972165890331777471808918254376025553668103660137352254207260022124716689722553036867067598653508568826261379291321741677338232067269523032731994023455821954707321350275377520602654806983364541548562205874034405655539108516418035963079557184057612220015594080639963936531309704930446201422147557192475442874042717303035904825668776573667609119620084180508807141574932652147197099048698899636386812795547196849134322141703380892021568474755422099126161275694462616146060278040586956221788330249695420962216229667587466341907733997237976019790832738083623233079968886432076813570188287137786274949676579198806519588074017398247350021269871057507896664847056193719779523882036939891641369955984091097198529405739646578059049774238549694291128175162658595010914081545917991862486537491240812044257994077911627131526090646140041600954425246307320650298009838202291035873424528794680368336801284276222552143818356518302041625590643857225470084758998973577955179848111128603228391498272906477099181280380988640159339212108853464986934588431366109988982582709325324833797990206084807790545694131467097205014650734072560695458135888506839476802074943977294744678467898825994909269674314847209684498624750439274448566528252006104663658061923602430919232590287455309951625463922055756581983814379336945803003669037720619345174457147437758512034638142010982505081297105728877405055556083854142463636756985612478982318912835025937436846390803043020344784888454149911787839370369947564155245213555158725094395957214915948459510407969374598447346637021285285073459847015250901410113929454658104641455392848736550157446909162788223414487130898552108971281430164642194694892199396078267814595304659700677932467251272127468951011010961248175514907336792207023609926333293072687398102365339721869529213089626908073813553633611932560799352246939454256362129921803982391709876612509536021161197410169797739677210093016929173506061809666450609470703901125659683535990534719731882159253752247970646913654793822068538634087447769948353052366101294456423724862390286591869521498938756793141170490822313344475412561519363888334103711180102875923472095242330540061014896100480454802906532331750723838735693056040965357914093196054381686774482814220947097051532491032954510546675426202455606653154385147771784809711176590796533203105583955812527243773691742436570846503992661945489870557601209038695258515584027574499840031636022685784563017941707564053048205081533735935640931515733967316399705601800232518817068886338959095714029005738287287992688900496542902633206323744012003181696100070433278193150552047250949117662031831366854366731971982963980350747221772140528199262372531998390182279227069761180118839869667442134728134047985141352959841149035116216154926715795382739782166340940543978125937142498032617315351930514097363174380274342987418062299723908028573575381004010788852243107948912427882270601424597005978454711767600806422020366809933926998623035913913770719061632121553832949945353086204670781997480095372115696187505418229943092568973055972138085522617505442834426541177837612809957532884038776530705351051408794326901941901626795820204432368923083332749799661604223765737374430128109905210024351063816428245361849578355373150279736038653319919415124695745082965593081978964729658227674159366058922633624157983800058273781689884445478139082965550428128747926241886029060478839710393606677536509545569528417054078510143656932369127142821591728477402974771059476242638072826127916951949061593146562698783407333648277930056913352307823693848342110489903768865598274551381164231812280045805430479632555522238333283838899642427328117937794600885542693217180022920620568834091604470443573211078086258783519787988503019181952875466276405710163239463553220228431831636038629794665630038612407038479509147295328720842079466425447507040289733865683673173146089878372964650944974902408232596592565230799807499089570345833618827202888197453714985351892755938932256413537295448758351664256172895796370306377833019377401554719961165640770315058011627007400295923309551716394962233125997822490858392752325425757089353854650905253465179622715843234373130916719515602673613312751286646585985006385768298022685601573808962458066445581367168547644554962689133517216479239832629887043669556204356335905861405930418796615684401894157216561231912126139753479354647428794178812869681083705030329493401676044142710367321932425698774877394732052232733392067872450585644858597113194218527156112239837618761771668946264060281791937740876404864714948337285392380760187830892670981950593641683999633988064958657869878554113438954260411569179985940703450233254329817879933894953447096282112327632947667619885717525053771232454822310806918924708685376922345155847828656535124737454353805825203542210109657144158925851512777595669041280190166236108206241000244276096614742343444499051709408118264418804792815524104898091312308803268373574440016498927957754058634795794617773366547621010027357476002510875551009580392132743962461017920694991782423547286757968364009406419815573708576579167657315843418592763575568323510431065917856416720562256238347510137072970745838138229966353702903703163841588818716727690611525869297607428783816815444791336990868671132993427216359545804321324457161139006134728174853059182402019003631473409978168863307225795777916293345343356217834642992574155291449866157240983771707210787357662485552224545750027325519926180750915758730286009303758567071657250489824668700710221959528447906524084981905970291770629418833769882264728360801755859159774021206843608398035332100165917544175305561171122350697111008919651853614806047703033694829414182377793606558184596688575510628775700964937024716012216432342421035314306786112372292674669037657588889870278842672972533162475320348587935564507545393938106704800312771178118890900010260952739121392341552619626456893999636077162099515736848806736094497605735188219313501755481597518926433033047985184191129268209306972804295954386354927413446958847967175704688449784670990749150450085909609207085483899372311422229904141518239883449480618199656105246521582599009340243233541446244710466672345633020360077770104887783704051929213155388876788547134116492981940682900864016208059473677319014522010449078140586601396409585358561624609017218495559818866334989144540350193977290890042600805691979705187863443516565320998022050014204099821413883073635657270331497078514171137528005159955421325704971765680293432604901168184842667711306518293636083692517151983503346967249581566535091114772832312815396117976103055236102081189547765396215877047822264781918508404470709848323688948771634691213144160468702067374044649711939789797159039372845023083160934311151311530638476169661294697175867251580375683543558939820802416362006697740025877142308382227878168291005548761412644030195826940869967818105897779048869407722128895608587977622034422845559643142657366348718484740250610984527763244078038401909919550536766342693829143804931644775383303061918181062941201459421032686636267204424097268530335660648343500074860863377351680883907296259276810704750055927307157114546872284899180481891796495506125238286236003383153326232205724226274060582620718930243201665437288527881877111360467362704256675403963089281009899532972808215752813423700968818592992516896901716713009789295160414002253264622255456673556598590946820326807865661326622690453982624067316672980835507655804554642437357058001429029835180984863051468737059146277583581350371574340923958706069146870223958713783037232508507552347778267981287401685722663358836600026628279012717127703976078078687363372471333476386970731634705399070735030113604994047043109881868327122986277183848010631325846490088762491483278559335597494139717907861329138500679471910574490756570600997255892179030261362221068117636157517946068136189014628749435445666954092088305080251719375112524944303369493527651623801840174225327722566341158413776481753095868956962444333401562961355044281796712968721926614994903948002411528918005925567444267548697894642362334842368463877883171756929730123461426841480867366446855644296482105001358887154602739706657093330053993053349757788439953001909129372204031677666092693268589077306654273634048051276171462483400446110891772821329568394343664070632113140429142803085964659633278378875101777737611485479804158420174011259973188567955217614539707175921699332260522988649364308985243354982512836071436596271322429695394313838830511942979805258512465751033974981789813646418068428286895460914381568671701010345552711016304909948050870042313532265954234871784172536203621407283151731666979059871587184313574224102697230819467637546397753469137158720975760851068945344300548143900641508906542873115137350188566336316337903435240011112365296430063466894049072137664800234486505608407193782624765654037626663981153371225349750299247397829065439512199229898076458205876283230147623487541254535264093688077282412982484634103088279081619324457530802701061716883314079141996934505116585505265935185025417499233840507444695567770652606827763482187063366256162305795514595283216692853844770366067871828811848060835592768417610986532273762217168070007817940499659446439172914154000788668933877886171908148813494282359513756056105418371307736849525038368413791589551876765498863642569302163619267326540447515621576459007359774055810972056190708532475880916220902599529688292055422222058248108778643197363806180302821759665144117772119373382369503580529904453406971983391787335464512016681949935343223298548424664045459442923233291796092163687968523470056847598859058379873097726672845831139222631660701366643446631192344681173009058580399589778502486196634713142539726853489722466195251289207477033991945351485531732305844758854986752871249925113025200384290159257493366192120443841094080343591321283995960930467913578991934509027241814707656395899680865530661469981826973141311924286809737764108118602373422346766012294617639956360668528618778995406109117699970842624824307871159567109009834992830371653303982913567821117882692567657243745604868609233674544074506424583641542329956607031433804020511069047760319683291382153675059114267852595811209586875225322120465923577984224942140668892671114900147123671626831395523911189051030592683694641511382858026368233703102236083777633096230312827082795652800257461028438203881513168697533262383289448200643184741668824482599475887016296456319662988763502020818224928863474020245935000458648587517810017499451115097116731350403570315177897445816625234464639327308198866147183113097792406451860910771603287600670595474407522455278850065908392890038646573506535670411382838827612212600742457514020091508618016144979164502281555607464264311983512054237482855578027806729822790150141726391389856427118230756883268216403183794833739650340775314408495670832247741558364227048711950555831298867665512879644639268817596495966058588749730601387079430068089665117465780239704326498904767304491500858259201728525597210385479955101215930816600710434985103127801003656001738462701867617780088543742985820435398340036164251187175737428175958729957582004471369818278992934985758033391695413307784060150532427349178668838707947982942053210861890355320917437936940759474773525110166007664095270807177893830645215082797757107268795482687449426285517407709830331078158662961784239947912893998219843041456298357275615804870185100811218829977400527499939259710426827178048223703088511198104880973236811923756690065720320495449616770723114418234598500844201852197921332271798142573838181033504115805211386162478895717983433810641530870175654058989355223712400005444975339388828039766358185220872493138635115604409745584002792672324257583027806267576959310460041291609010557529102273960388379646586414255479504717897807565384341134827339132849919968025583677538979609441939864381235053336137685193228501931000574731212219349991609178247230970189979713836176676639190798617496358704767263283207514304546436926168545534472255508197228040754033568137721980934809141960219694847956947203627255590641791614250782224968783741211284241189052931420095016449588727301098084976977614662942755020973705407717630479015925568543551877089813111425360039189219205318098479703591165707013803877082538988943094041496962873847230071884195985707964341922969798910944231865291855663719444841403169446310425022300836864108887111478022448470915291760330439604642532221445071622603579317744457605205602422536728060943450290536733431871620876176843080868664740585557608380051073094942230383551063966128157807079968190961989617016975397797410908888266938457268538167515480605843636884850022359527067398401319278929917228041825734434279346261797772502780164810727818129556214115237130596964123306928558913273479721983465691365891893261730289243444928552896507962385936702138067149849214464600833041192687342273815816572151345533578665385146466664709462147313529535427619647363135913403843865931143084845912803089401764106404956985966201927414446408849404843155110993783722165568381585479150783833903659101029475344381029033668855070461879907773389934956488291378087417864829356338345616514874512467574005802080132400095494378223195457671365424364657729939911220849922497382493148223667899967955720495444571266842229081235106294866536561130823445039204442068769055722633399422820739308264913666753217668772225755900480744877094861235985167714667853481534140837251320833099944566881288722024232147516762329705906714629986919035332903044696284529065850873559176514586569924763986320493117569653532022634746750506929013479224685320050146040452969406518489476060415499514353880532921361927676264856789015683745881782250575745572049286446228646968122825918581162290511720365697900691960718566947261904554969595432676579544521786678979325722103199837542053782652189367919578146469228809951218795370271220983334665447563266897286542489862459302917188420734346095576294652679770240347675548992463852707473620631050316156222395965663370568850968603506222309704495968300656077800787729493682003803616325719432482541362698930164701164284639746823309294312443991589674374130212292210904052278887130816724334718227668352516797125020715530858633408618926036796142682657166656198847705600313234653539726930706012274373621477111380288294145898930830914073804066930314629279933488144279758389295314529251121606722854751664612208359401928000169794493117443325969301355565435722354454597645493277944030680236572523240925698681409702125336895896611866859115489232902572764010540766586404403805571265689041871063104764455647867009557248398527733377755281421530063921047115842773369661660922239145044033568904151036597474100058073535551546214608224579069765950519612413744705710017013949430698757001546310419556397981394996117779288681717102531009711546761741075393517145355003516973655494111989634742873736738558873776001368676680484414820975343698290174548607324417453417178878213453909002477362391363891355313659534807910679038453900918079111731507311060924893208151085068968299344946607545728806982936647333104192653541973101521954514597056552736166754563241312191221069687017701354336492365156744799824339433599553963859966588028165794704813040504816770394846601619279957722662964979852857484031363755026295774174579608120393681535019436228903931151759849354830597601327592820438642050255716241831303199216659745128808046467946062425387960671003591519742850019239719459090646289398456970746969586201678119166344892973730329416976165958143147500675905711589305671833507499870470219639654814152319789973547919664195252964489801685466150041837923269047436615218684807991317478936550704283731240050650633861304661631099341434920022928273600647686493694693183739605911477646108705395684810152292659516231593684790467590293004853015210593664430631837823576056828699316861750621248322441574738898445969436145312163874687743064811200283635563833856170519150928533316112576596338519530413927283043826724147557088757241166192024740410510454964517583747701293972599378447400580592836683100169596804559193319804487678758770842201917444932914212266641544061227801493996473796139534271814868430806577533735528228396774787163155489895724269518435678534132323165195353305995398527476924963277072344012749587017851579060692858276928403507174080191348566846052470811075051085374238209307084159357593481080575579572645096780083837458551891489360687468274603839378334227048285264073002015903923160163919402993940929666013526727042252665502872374340372728163368787712047525492637331709956701137450949683578127418515710195146439917531547019668973169642784000680734748072630374289888653809743852859943960087997509748657294818261732899130254647296468382928608530378997984219093118865655046080484852882792234995506874085267807181439221329324542244780568861881877300785936472515536109435125665845834081560746087971057534175701545608090392785425732887152754300547235626020479493028770805159384162104136495129510437162245642261771757980858406782384952941476736941471381369564076256834342276317932749905317868784875460761183310003326113293341159143833832643076358928118524885414428644760407267594307872470723163665709981715227140259740096338069965526050589246277709400899539059385446005573499876220968736417859693119939004995731510421565764187022619957323332326059079983292602736204185149159484595163396702035768979762043448212791533567095760280580913287061825252177072307820170560444927915036419031686729533530343376504439221839264755513910746158116975891764646322109346621503858868830561503873222447687732890126015105825193694825597955757886086839613212587510934866400997770762482847155186094274366690380941963282379431549096783604268711815702636042293753812797594303589641407829522839029364337616026403856400747169627816425775290961236957798445739861437522021958787858273578320706643040163648300744742233379781087326390461570060115868870464800154022504202154566677855450846927298387325547750522389982055550101902458364058955727232738702028523528859938470139207771842460824421373651291458883162358724925791287266073527543121032912672502567018000047306856563522855965562110266146690339752223072911624784140605450238688881422029115119232313446480901752895423932782098440657736344077657266184247219294934121923638304085720947369303230390576004561547455739659032048331237788734516530859700438601896903766363019959893779330533073707534431615263965248584430682938804770323234201354847307814696238687408854421568614298510116067441165894581098132893975946048136595632791177833263299516239972671226254251975827377031699699667403547116457414652084366676212750175964815387348068142730997615719715501351545374816458251035310247814457228490188657257166211009460997287906590073741274443238743289884805768106680824041453210430707412336890118517996496518726697389307429678308487914528236828300404664529286632587664938378586296972016944672131356880770660990329238073040723503374890958764335122144482596091676206497239451924619707418788382404179274510943583345638459582638789924983687174217158518814100623596198774592265795165245218820064055428228296586341175181453157179075488650971940117251086479277857160660972296099113121296884237544016702249509557737288184791850498653091957453922399592002962897116898332173513162340353497053688970831423280541739349657747390923347552842746202977863046463191085956147409792046805849761566869832570477735517992025272412318797238121129124530369530550635998528228471221674257334852998225377246728322344101536570324989312681756432450567032047242096273781560045721885706797676421273487361652297015784888068885711359438248891587461883200773721798881893890258390554433512468550562876226414347764017242819367793167535595967211183460772959903401119747665160324730932927560802153698270518047278822911578271201027050380128294749464869813338156456095915649168073154855247441110858190815179661498819155089060440648137642613040681165934783405745312758184914290611132749184450283136706294136454066048838903948712089845595430380900016845855504358413229720005672951264026158005390010241472977996799320539657204804141224345016934784185274959209731912282257892440635487949465966629385419203352435122311740726039664936844922991345233513264650281255913084503144674547261922130436309189318701717641567307145760830104284781539263018617455239710103051530950000404068508479176811679262548146623737469968613764016383447859048851760760054317323328899759106479177035650651815009963187472390249969673830264512866708365764772382710713436685048108213574936034715839397326261238340972646628421268005585276625337879976760029845872627171654586481989514295521538916610097813619252202517825270717133170486120283291572700262158884929718184843004141099314880621041242959899026745875419323891112239396923063895113668858483638650326855446174565812668995364774050477756577430483708125763699611652028891493726274771134062030179747112074432011568148034235192645157299615816319069533137146306562440130243073178886308782460955555133830409321416385833224439306386535211099155177949396743298363375419798718791416905165800229707315174446664892241314048184913249991518760042005500913536842259244798339100711753897008357582211386379327508628216588123328336515184476527385973029771280585013440553365925243161255249131840836232879390499872833227863815275045973148375655247721429442790902709126097419954085187278359761210915083133175622594001197938233617245815729998962052272066341743460585055415458921138764268634117015395773240335465992802256144250500931875939974447433217763737093610060473355065213961610519746259584472598000504792264006823262997675219056090920583489304703535010834452718398506725113686207850017213312106592881592591007480477529633732492597731353624172847875567013752627557214124351025606061006666855865853588893309484248116264148905176508863022810912609317554860477355659155672429179933307408292361200407573599103080593287718481626311973806861518172451781998375083378101394092391428644971343035572343955584641410369578655164148788900035841163304408082386964621376694419982320618852517053729732972181257366318791469483400994607195499664485382517328273663562812539865831076929000791800016418245370071908167182045183203230444765433911941627861061425734314772354408758083682807541590931963256755878279796651216336378452710486212542186010991931647670656134929435126654683510234506882365701619354988055204227251770387014921224656530508100048045738107307891433026534583546636416364625717367218483377957256360782175240471866419617343999503562378456675203962465551027581713987382646684151676453400343460704224917909599964142837113679645127668499820168699903572847357083793454673843349810977168055206217233152047836344876412184919054682448099842826349266509744346274487326705843266287741086856253279148036653049217622532938944338513778438434335313946611530489015675227540138951923249266795601321110221834207044190446776638182197153862216095643571992199461206958712419973688534191185085288379798404124390093376045280312303342974008355503378870028600315731589272014794570641490210595503801614575823893463226683048226097187795837050984212629972679329599249878941047747612639212418548311648900079839745287619815743064356836491963872269141881591862521826244713818757375754749984863558050212087712434947543163364157033179491024447159705791178260978583969772216033679731258438657661410478075200920954207651899705976758281252517260132068838500618037512912324335951071860523788538244235549708387064173680682195352683664376160668563965190266511054864903074187540855754077038645217670763635927533989550289283406797755176265956145457673715269221696840420287841904127593160045929016413988272166260376079990276220299569160448936662824732154197710821695285867653686574593144185605954665869985566569527248629336352970321896225200261295380449316748022835999218530551448815246246569321009049317570540886462125709252305511166487140704922805919376409455515584358134668407034722379230940290027338132463549204842777722538081862054455395853795045373530790635204322955274916469218045208277008176946006031179742969165413127162577579277837573498385186346625140375156038976760547427493699446914041991666555674084881110380676078850607516360204662339005367449924529854366040303561271092025507774215522762512719107912953032226182031438684181761775453229971622859135093158694119870729808010956778302319711357220382755920339347025413080880485150770194891974065728369967735980152149089628861657573413998773605291384067371672616293571294499829497924057161562966644146794367444070843661827139046963905101309031182480533420584632828426841381610411788453161400959102626931397741447787374751379035304038508591189165817463443133797949368638085740235457638677898476674722057883553078870189284748839362401649703797414187488550512983139903100917750807957107516296713887226172118538091698616634464573896000491009944474800537914991246085336585414817181095076722433159173017136688350392275366763576687281888902861091502528076909893748968505864451021207826390163335831716727403017315806354392480394224083744723856535325907474254944327596198872944604945063284729801849864319613664115510913586375010524816829796516318550802827680703516223439884217039529146443388261222799427709250165082606828974353054418066785804065676867523641197320524839594662737660679780928641050120818799765592756382420542426491670279403637917267907619330596454219357743332715084567798306455259453447499514778733942358433811885601080096272153886916834875334012168775448708437267905081239118916108815777118435476941694093695919749202494941979706918303847008258006265407975276563153677502943952649121961859847835933738396810750178947078376428073006326438452053074526882148485654253593263976506389438539611658598838229814032370113995288564572599565161442492103860101365418693439340502820881700663151811722386009931860591552123653752226663369707513143526972915481091499999652919862233654194810809585624433104341774734332354540183916511827267918365081929361928934776180352634871019949815511701324625582471899963410224581594269246591564205750264587410596975407693942948936754564051792618693034253978295119772424300271038314131409045968709103866686584673640362672237390792501644859401234543884365931955116110611672575328376740096284748856029650354856634349571228778057231308112216019423987261523399903154258296528438107044331249296183451950765627311361378008120433974875033353702210359433046325953860623914196274785989977420988870125412004697548654782846725789990704954207807206397578068937182338695971778980422715732254773275459285680783352993325688930233296199025388632059966124794611392405743073680641308876843879612874620696980245829828504872157477822813053548849004642653240105313429177737940391183770047243831995809002803210425149215904228832645743238422460830530277210519587100319380833529790284423040001003380482650675458954758127920954059277365082181761872512142562200124527086442840957006057398894149520295956140352263264407526024240351705436205291302658556867481092920980510464581399777823793229620669993238724640641758375926151707215944008043010947839453747052084158827981858786764148894274284674761242218903008573760264387644676447323948984582822769285664796493153909072131155445306078537090396206398067858269997083496235372072535523989672746171779057410304362215912627988939819646457379882635832470222494871766743189225486881378513102508779353159956649308682333907297462304320772918045876553246189062439218782782272901799987149643535745728510881452458860203420375605389596956170465034882045707506366944685039543278790110430076858572248015608277979878591992993340335854654825777637770784252439972658460928525871658679176962999895300550264130004572231579607917515621531648308772589506467798743714078122173719801459947239626447194632414484668056640999374029368802416718851081301240264580977847326296228833496405292855147210992348058847397727639797359518082552807530481485720954543290983538049983319373717552666937548432596822628814777818510309332520926416126133323931351882452728191524792446378741920642678376662563195348263751255677471273198446280662720540758589615482205194880443650859099475704024994847430373376727883780654077515293211634682363088138711707409477205429605509369253853588520314387228301986768289623599988507905834508215275568090641498325817377778754025850486807931371972140595816353824249694849617339345589474805528844276741590215239925888156005678591598128314135769730983252523854198097555938117014818165464673631721547401902046907490547789937313475260692986995406551338656920487901274404385713190765798493391870167132536970503057071608574689066534411607040410001378631314561865951375099568276145990130992036613590502563614164130601984227879952474834709838337675555570214262167907704453808266862492581971614379317610026863385012376344166708213341253421564178167450452725683972975282759268318729838878355253028771726342333069367889332497166502315840320679767459542877437959449517739704066838898766062716496120981940860989696871465087974830998279773459780943699004421309345432136725477491340776809200116792616193303890617532687159763630513409577745555008306745470250934156084777045137345223820631691443020843268524000187366575838081129244683554383235931814312219149712672405123903519636651213173169100901732276211317164538090361958989791910183728302423424851299199229456006391162771365123661042640719812810476389341443656008816468439624384592068205138692713938510826018987899851949464888393502285955506126054103107641095701270558493290352362034994921436513754690308494491066511790995491192544464246009170266662601002762840312534127029126246000542183608562291635874450407828321473093656415969360971479301007279915262125954355824294480711691363458650384126770337101297908850904686633173399744806432795272288713278991875290291037416188684633790386900170081261071037113553896971431812169248496004468697594012023443020183780911790330263926949857230102146663873322632630631434014225118066892029443474150373559389470075068346202467392549923071696130277888508600730922802191930725671322020595730673044736062696299606567616919291638388394904833620348234602877653923286503992761602235052512116050351607799702275199211351755213868994990007570332533377302653304090156201256118774962267485832568982307259663984683981054037313690431666676212275857364636842477233591490303965307021001615713884428423010116635527173173273381489172020352992865628247742881688199210730396823066579284600616860354557576941739666758470069325163406509644472404761208769138749223569939482488055974543457872138930114472066560570012614028457923206030680045148069307370025059072089564186368978269595676039111886760562797168850560559859407617194248407308647698299095676454372196519442816995629659605074095147861878018566296610912971077948142041959544453417129812290202133503747799525884343230871041178345614121710568078617699437917819613141298294220022474261503600434845218619758861864842911709402663123564607139017573579461506990352272970051855522620621788579822644989437082373022728517832088848910203784260174683073406716660968343698411925629084404484983968734807009567751213897310138040359669655879838480926250080960852545575600482283628784136424581221934683293659918630059267426170472552067557036463015894671443222449860049051591461445970576653803711557506121519345370605329442506639612459326969273393706200950551531521376703457597809476451935021781164027102020347830915389765830359744310595406080686946122478707894922524645991185376090886797426019738475642189681677709137270509635865303691510150677454972968051394644257228802231745253674353598192578433910337512602990494439231116826439184518062776254257764432126570893123577974701385903339371970069703525693322536124406476027775207963760968400489945165720250617440360780830663231498514940714353152208952773289342362590153791623196639916772761200125018155793220563718811834023985979203258983658532469070648642706881024300230885861673085750366845695060612151283583853630356830839824349180034874124567611313917745782873301893975322216151304856747351796097735891032219531230309680169056331841126660721488314031770845914687296357227546220661477007086782271943232228279409672113820741148419602408808728469789465510535591490273333660240382878636014215736804737810981476673259090399620228219590112155855838098428621038963308532358732226946233107316680071517325023034315149009741453887922862154641532624762648022266539994161114243243898131273176140477466759509896602251118234843107203290875987480653951314059809279053328552125778653849164304967391891035897647784522716644479249947830623440081048582979425113718062276110920070385944217517783092185306510455895025774227882145639436099030997351033762733626138866373270145215027835395952134002740580475622324841437535151988238910153116538425430757927227370320336075401759916916065122031493151924121453458208351732358708848642528284454295833029871698434532943882933612152103872594677218315129680601487012917154691613498088505248532020623432255151648031562755579933208322559050809992293558347673490646967532955748871894539996615492674102110198050538862074194682275301760850547038076546215827863809818671632736776731269811641950032503860851149286558771086187680951678908677086648086585537024607567580250860268350463187463939511433380688629334441738956572715803799809055282624012831577537511456632759471462474460009708713168384793103229761977438239684806201347297312769820255517845240059346646998328266554952319174346844324981930380578871948993048484917734841248783863312163114322826092921115572663819806745527621171019815828046214895930953518092264095360516798007756317069430965217252135511939972236999886956084563515364041841112080558252929943070185772398838307556516705925406431779986165422584727145409642310273838476216087620846628888290647442426772266004099941992972913468000259121321707172530727933028247455320688909752025381534844193640634990872645477366221178613714578333167054182248183133741374990685722647749742484339041819583967821894895840104549875968698553192160775787321540703073499472960826542369532335976501331911543704114265064323835065177603123688369079744372947552053905150647707468291289678631832638872113631812807586372916709387969544689618256034090362049762553508214795684503766707967503853841680239102722552876186960467754338887785004810217844954656868860970131883816385790394738103640282602822923598346716492847717614347136627366635867843684664041688079106001495820076252153731805744346008087127568196883537500254855126174730296822415977116000314154381225313009409348967209366915034668147861712078888215337435564729003057417726840598135393900345628937614232596350772148779269442710948551652474868260660768678357518306944003395899483359550212316774309703778004390939930426575537905513363482238890317136620371667088840226577744202673581632714638347859885827300074925673261549575277840299997947573055919251806235787159842001438424369116288307884121937834584795513161039604611880668606894460426085951376162496004053594057027706085750300552272775725274194950040932054058070750043957236926065690750338586141156248245601324898438363169122097045284824308112115174578603935516413516925788264447443691486369247277072964305999035059629242657215756854343295249811370853508282572139310770080975578649675402594583793167681869091838369720345930791905099526866840111491535372490397550751410125098061781071412536499686004734265832580405282698357792153741739336801382179251382966657002948724248113421294846482260727411228541069709743930360785411791075268760342070664131292110302829573432858115215815052004782955346011565898540779928326380030280334996296742231366041466124367767076534083964014686826375985459628562843134464769804262765189890065236398444714528291667583075540672803001165189288941755388104314873369434122169227037098107184838103661139875019371234295523694629580132902061810440863657417275231664322272548274828610046948855879488027045826689603998741741540892027876149134485190666263823852013083492336596435602762491677591402488645680881381973155294819650131332612077620577035935679210528653809983939641476909278730320540651412141597624361201671227003436086047486677599754527503762822509821840563726383597889461601980368304153313523173658982236477764892292862897802425797963896137053605818790981635442877132481415163564113765258717905190652686933621547144000906096161637085604410001453344283952061369910483209315651075421213685903205859644938692417399639186298399893308689862120798433515483077264448388475820805178210926348277163924704204871093616117675203869986180808863509474558473322065247795346471065411283150858815022258684472015656238583637519061056163328010717685151545214555643943838377196387420455678695738127800757710886339977389085581399030699716682431956850643576405270164085792979145619725727560309472271387463088301962399844884582653227283196720581803032971117337002670060167394711719385623527299851905858936022862765209649489822869248502515922396729231092055197742353854426525801724431230722415577214279006770455859038559968810677277308212175160538262864067502750108213331654352946689105544847094543698924464553295574743812993296478362323136048801029879186949581951819685879928744257978499458502605197914163259403249508591233476487602228133148201446703072147937570487395178781498385156166257445345947709951288343012095774980247809020936658486566621172919537758094644136393596485069107988651354005072387665224484695361860370561411001968163579423623803806644023317743689584790160050588999324214199828355544384056725854959186018171490345826287912147349544537571899553937978579135705044442612605737263315984417682576254957074190181426033278211707440078160586251935673813392217445799967093534797256538899482838940385220023453235197977019202454203434424682926928764116327637981463103806069762248119293418091204588095650777306376219401104762649091283378868154470106777295267375562052114551916789711887422353862440463254940388507500630471671110086565727660613092273894221288817682120210962932578097144787193347333831908949518656624798370652212793388673323887158171247373832807087244331500281087606161591031963012324291740077185414406242539202719612429041346718578859837103466695431368282630865679287181586707171296472414059989325968310889661254355187028351574682358381115838762467530187950725218728181390889090507321308505007665131939385327607843869666582417246911974674179986425207440056562452449691187069741346033529907126090226072547812481004513610302499127173320606313445169211631160291317530338375729752241976356325114768927658977438716516289384046541547651580250082950650686919159128900087742811815361949251594427497349402943135241263560386213258136834894357111530698237490235612293512588046948789040079252795168601998356645319693524710010018975966987718569815430657939140708314689400810926026390537182814963355751897968175204079674473224092288717653973714688266410894667400389331547799603312569235537463580968085062276561079390346740226324773741346919742628193354569130484946908548534373710027343596545219563676734753815999542523623407974148631027225663597207300050907290880231970995692868759410785721178561156621468293555891807887031341733236753484474776203340510664458063129855505251084687969684953634958339712154750853686163219244785586988692727215014811776612397906981286673271417952871384586119925476803912314098989721611733359776284717411367383784469070111261743203324290431418670321713406713758522273143520674163605150713769390187268132713515540907074428859697968941990444524416345892311129498813546441658377779355346637020773221171258845858207381824294276923936924898934185414919057065160535156469762861434111417448279650111681593573932441338659200626621163379659332346621283630733436466813911365689889876059383490379626579658265646755919500248074868379822793175925612724581820706279947751223727855272340612450363316086627461853256585411206132106290946141591914929279386434156573144577443561140242089289003339657876567418971867036786827510833174525711040423971824104492640290086753187294600569094211953066655517134246302182754695172757694267655426551044269890048654900531374981430035711469434357172271132537402981838511943284404455384663300650119384675019366428307804257698222976981805723110247965281725578913355683396016687837302404327999669044888224690865099457199844765663632343192822384565655474319928793308664773318105704231045130850720140231707400785850965109507201402219002141886726677101617823777572871271819020881643132139155667908389014670604681998055701510037567368449222383635885906443996024550722626263181000044474426850654845927918742537183670513908878186724317231670473486325032666584315182885571238772465226542424023319416790661568992256917131134648954496341177957549524802884515146195639339810297761948198464081788346398606261164312304451575567513005312056490428358135410172788048663639027759538934185526385977946335568476236287423254772590360870106618513041812725455586251233723942600001367623423739025524348500221989583746816035820497096608965949515171584159318185265985455359241281693970667577716406159100697696855072031594822045950576440344145269665171420529341198768915455781238750551512280121440949859319431903505754403637793024254263754900190515713549024283832342404159591375363964645387855686091128809321483743161922162394129066670183778043896865859540162445236588662432073964773067319656068835316198666003439482525438737663395009440941800737604611532970828750830011588736210894587924632422755339838237060106598020246937863368192930145801336684466419965801015435289848019430606874729158153591203644087433802507358715204783987330718971216555987026743487740044326571950041350818308573104588336382918808029996609931113985040587874172238379375251851421953028230981068563821403843650434085319203746359813965913614089107460330046567133935866843934516966760443341467436624522931536747600843655987262034980443420187237734800227284793414995826771315435940061605947421777294874811608022585298091097141184035886826676621443377165921323566054238867655901657392347400098171040124149585022748643680434490865255841934332922951042314270472501574893014160065842154214214347488794739090746322904873132367666068629497410114866634259015153667061600034307639798726826562082842636994318443199341160130027350463006893003328989339655408265347063267081855885596184284938552214111913143137312160686044003453522540989633383969586511441767879151316259210089361516791964841495381998991929808318317298253130824683943797341367319863195019198713118403224411081999866115537896592368187491134335356630034079510970211684179798482834792087121030763761368442548956298442544142119949272125382112301984546583107318700913446611101384297031031765136336252958637679556199682473651763367182630411520900713479492970007606971359137820908278291891183476653737463452175032539623590590453625455218532419258554920286295480710207675818910447839553540998841653001255121245718156699025327959799496074018316460289988064004307007940869134760500228689619378612126336352663928614120857253087027624753703332213002031606763439360862590018386464545165823173239450351213914129359522329592436304176173047470276507682057923404594478181135439597431060792954723499800735448899372475933579522114384844593620694447965603700706904628396850656971062473490685501623944652890229194081948103435605018802686896593391843589412715480048587083784797278233373129515980062707945985545204168545163347418153868375731473359456325535539013650258929083964106506173976061391767963092499320375090860327053475671372140837279585662172219658707103458779312227072723241165904514050542868804251158595875093092788486251445916012455270870638439291956481584856416540474165788458692186273594916226416010165718032860641839895410934846490793386436134341670405442629398084992959277496463097453803365294477060548703450929728259207346427657888182791311868100393986363859218510703989410743286151037361051253077808874840611023096507893820975722943018536884249340994101528305853048243123500217574094181711939158280872425560407608385756632664794577815268266029267518447935863844496537282663212921105754681153220059733255282882232981956550001439433967208046864094634414582277564221431175277391816937285309024613870404226343875240026953180271810028730009381359569297252048823328526835873931114443865386605809014266097455271857951433023787451146083270827104758967311745719271272456040066355223722693080004864825133888238256908656619733242609855389642453806429656807931750454319912593434593842890818696838077353793449120022586923186098206745026005579336218304169747841638049107748440219277160130804577163865864155978475971539892245257168591914556288807311976228333108640436156209487590683569517747801066645658377446615125050459622328205304130294839724752936816049709240647426335216910564006393706986716981554633625539995360694451074683637236197909944252105723132662731476353005935031587143485127638048481941079373387633087697490931833380847233820031434659984941933013863223264326214622403266049905198361640239537898751919005189653567217098603987089979300114034315431761117122361830251779804033597310543384918180031696389900169336004176907078797881740776725240770703502232252347608635314855086360279502607664643028281966073567592983805141424438006315839602502580767920277949660261429159745556023706459506914828103831427026375147284846922837192336427201597109231132623322948456545077101380800321981681014676267784478799355509909579994964730383791359599757839712450574224329763510766212813381211878469406503507711542995878061420616280825627519602251694141638064633990425137083788690838251580258951188781552351458771766631081260568236858083120975395476386455166969974690097518649410343754267051210008459338014251535341224074750640090286200042244479823550279893914830401711137197884433991182122892044694364177520350223916827249543314463126193997688016024972464009262265156702137341872885853228470540981984658355213631172287096161772365645360450911090146766564652654972111385613451545931122537772968825077106331523888932463960704877182286444541395295209851826616046956136280724280585888254987012338614343845239414831447028802678240771756624411532987470081723155866698798779528494873574870301860254459328704179201359371970384327870479744651970181221224165504025846000504736416604560010358929371290357291522565377676089575191720358625080716567431735862121177439763066294438940106034204083772416413393986219149709841381054040485213809209154410757280362981603945855898512986864939575865317578387330064678789033781281412382141702707490561281570851964835158724689111619396479660792911352617711117300078021915986849726230364644926956900929781061606319405011420795399193844507264211185534438875211220143842945789617406497012718138584351048281474832606340977380023497648725406821066138024182413770986377329602719000088970950988848489606444445370681045027374127514632087368292341345777760601590462181700762658403651362047075566449158322804871697039468159522148039800699662828046609556332816119547835871011819923347667324873120339288440621324959327994718668900480002193624556446882483578941316473254131963975437589805118704388404242502700187536583904156496880002530384059129689473338681071957280639503974099794659006653818166129435120333126943129805140985962575805383698306918322017048666069825957296536805202877101067155718545303196115868480129197890594288427043630926208236346807690105805950646748796805909666010602369092328679049776683163222011377579260269908755672910708073517346560320805961429457154569345300965053342961134422685077391802533732787496093965740294884919265525963280572263433937766923979466478113842414447482168142517522484225631342831300493711062524220302657056575353962841586958546771597566616007188127568670646112382137913327825269929102802070775814820829866465784812751408267502658875307371995580556196757350030520693315333930408833870245986161103875311142237966402747065823295289610282701670647236126450045192116996272478716725471791183474610750409247036887834916269233263466247760265418455264226947785726908316707653501315402673318278876644851783640164206119001810124580621277289361600172272235392763534342185633158907235427795862186713684801832874288080603439082311332207413986818927996803131155888722973500189663126046950195307914226566344222802973257396769495575651603002369585023713988782341500281115177887720127507808298347879007256294339523898032324341578742559482049240426605187303149947979340095472351910371247087279672840972364772824088632306984183570750444197729774657943524858754651115905153367873622861284940405858539349710372132733681003509138337947812649402888059991738059907446210255581462986634803905877004348564360756225160865555430065794510287417376270300472351365669079215766145324410551049612446381877663600135988636062159979616324175829287240573042982054644109301899845589976266308822121470598616473596650883279562921503659153538374869120334464936918272182478161469078270234752565383987518167711849798769876927104024313022541404365982118542495261551288386939941840131532212923579762239248261562705060764128901911281765842375846952459200712305317764055173258465827337714415628380080389053938092634950307799276003761188246057237114953890429716539998413101039283640243582350479779040197341760880821873291880267207818035586958967619558538772223287532660920418278806940153024007217718202303410719199717422155773734579488815624425549185156883870241827547639862727991783326352070704756949512924612250668369592535429163976050537793258930137403671315945402665313338878618563861768165105883314710760071902185986073610097959249422249687996683068287294125488667751318148778921256070904805688649088393487225565377465856402025796247412394558823366361047394287891333366805725156232733235515329619205074733867744768843635127992821959772666003532225057100823169426915782315240201465646420194636276594118502798708573689713254317061406541474607362061334116718645579714533030856347682015696365837029941153543214098561412099786448218004163406962660222540313856790867659551361209523611209323859716358274699749219258591712050042937800349022239282473803614362097501561766817290145450583491013408339228473159102092955400468903932483857490120642426221235184609874100990592685485986404513233085868383275621061144739223514175350391996425134106999481958929139352926562493138328321480977060650827853710789676142410729431302078604991980124272456783081556902579172203303663888888911455076710295538497442884599376615930445082640434774915640471756666599421853923799762211806488512986672275921938046699223647929251244910167740472526187288089056476897310840441098875740173142901031704926129552374198338688212523105450234539402770163218507647973362662694709620698569469024643768354992192560458657854479700205863510788464950188236008261270972076611730675657925442913095134749747255266327940800782885962924800490765385669671254359373794993913045673394169635155250839781808376361995445400398495924986704613248516632189585221032807844040892922191801978319686598369094016067040892046173746814785252736173448372076895200014127469955970060533994593637802802170984283756655208936875719206328295423854670219881747307011816674107696376782034703411646438404281895573223656592948221638603406183979258114426900290794809467740881496102454588547344768987497185125677127122821284708301206464214061345877638874621872437067613756328556295760041334679777810294495663755965305216264149045611495870576945198423530139745550586467856036772120617545566446600787530622021886692115343013493257154256296197567841403528812446987790585593482247296106485955451162068704256337114023103594519686803796194813839736250589230290252018299378841223214304466655309965292476747461389356401717382344539486371398985516165657351325936208522555356719784329402614377136332652369589336002358378281686297621443269027576522604978587463736434036665859795081970212619031505409517141264798217704648479324976749230441673730388726466259012624226323907778510715747984876915439165960125951313358446454966736402742907320253993555623420050789909913951471312448906101369739900963385107127530467368799728622308924514572658102041262798435317417214236472386886751837267483019576571763263774947796839074763403562011342458640349362597578618384184541813702350579800998060268593735255481051613143156364814640058949309068194050447353132928929774199070685513832964683362538520699730424914200941736835093500525782223067466853643297512317604742970945377781345515075674192851276237312937738249833902737651547148881647484543497561010958332321272992849551921780819401373678526963621131674282811827869815330099113409816644233269454216045916299133607135591875703786583474723515157303637312253012621776733722683729642344710232238383789603577179502981375563965878108120402995798063459960087909866118730899100934340945444118053668510956966398962959332811067534741294691734973119743764730293691646882813722874519277010997101782985919623184943570972967473247047211407880063825843675341247606713429633832781639373909212830470446889934476058652852709462607778525306381748866334622429745898286620249008478444175154860195577921207715586167187265271312588840926033946485673295230753476946965727272996899121240499891304635632571490097261597325688486986644744455463925259081199728248329695767669626089329996450201635766332206838181744374012881406454058207081012840654013123034988520822847437311374700145675334014184334470814296178470302403107986662417445486240456125632569699168331268052351480763964666194648402204687177645075570582089345509167746601955773550398219316765043863715588725277977103967302362047600977948502051118370339728031572054395191053864863378800799342430680508008069031784080719767658866799214082892887033948356190415441514796559258049099323727303561704128780766615311884528560743024243162712350390034133106657000623649320161247364841213298895158623482903305133085532782092774343246662395948127158220108681265728841393776485596490580477849423237223200574086929524757032451063434146409199552986050706769738631058482405081894475929724226696527232729963556281985999926850144609019125184149384745113670876037674874721372363359245958174301490573158041256157871952038449274836235882480194691776427184396431388288515873452849960970397700701700157381337189687029807243465431492918797595139787694413015720950675680382000754424765576668680840804348793523204348414662575638704243207757556937386050013223833053446860632990307043451078512987403711161220398624802145504334101814837360533630477787567601542887051511281996334469197238862273692167309995508497379823256884004583593553323377390972186947531046538437664149070609001436129587238557737780420316022913365962250222610879948833328779804844272315606186235726967460893349001834777482528009756247304202558566768813044429981165236760640848987248878931612445868998616507711770409733117383692089098914303077383217741098772524311736441652328562794552405823107825705472861477149867140570454755241665825903546677716784358704140058732869912120566414274086963678194256103234877281223809944892506920036964884911707598222212970833760255066122815832638306720513743210416086861503795770240636538326284091623174033845627975167628829327576708851997898824293648968942018622213480572682492874101930413125119806687084327492912871595723248842990228992727171033885285299980910769108887994437144576434348849261816038275578421165330261928390400185371268633738361001297083284978730891399696188451242395424868380946006821406120289746306787364639327562975229110237289131564951252347746960158573393053373779454734682822574004989851295286492181528199206508711841860796418716456367201501012365933930832787776070720644241617230794958190414044534443439119606850249858640254810675305656726638393675312147469680421797684226744744809355014714066701550393166732249165978993077947372723611480857031408678244161396234517109709761932319530320348830879484373239280438926714209769099869812622772715604305592500910477048678748212473750113744623844743904775807369877550204831070726387553898993192573639616669269311656038382274896538732101818243704106019996468005303114161980617702063718612703935201497810697707253179343615037976999402902661242125332682353709141875001326713191025567561211869658511387093914521017897431797504823289296963330076506555457359751999662591226339091831417171258439610168042163978379049618117182715316924687589399887753484547558140696343648655638465333531966954300811246706048619482220662902258022956173236096151296405882971057172722164048292569508024956903480634847899016097436805304272491873822464181165459632459531912697871363493955490884857476644551190417641718761830431698491110107331965421999022266249037587577264628448274658387616682405788135357746001047247590135931521324709328771759639266390431992330612796746109486860330112210873384543114104869177765995617062717776748659007771211279895811662005985783918295027727128634124336395641912932824938455288031082199227186349483641169189009818522887419575854699712946098748934181060576132090259471092129264696500833943685789054601725139635583966826376731461941256853045628006381081188053256711424619725998584939175994771379058120483988471836034762609728427803475336264708359788761467269935655407033161454412515532890694696336840653371579073014499015211375094329457752294865641151760275712149509963298974599557815319673554178058432544893179698314720640315889441255006654615936623110546223918300844210638640796946245466235804318018124870686192176693253243089978273477889879024202779295198400292434118054792669202930215816467443793141707720018311890023374160179159250616210631532551237522005138829341928102927206176456059559615445595763916022816437698217340642604776743489325462190212799924118152876488989890546514576578335849588634788143378360954809516317455297949150195180812762268358041942820439076496209258363203120401590538962335990460977693956771678581527659724312023098746773566531036890652956698145030324957301582162592315607622792884535135190251267774226361428203871398196526009533051443915163957618424885624936990358747160190111655992344663167507064622820155353194282697166826864671222018274248577754029411932205575180309619680221539652689772343316517137401356798040633016792885632619490384073610510606275994475433834233321700068569957976348996816072401512663676715068217203272202995590817860019925316493997871317959064142561014256446299254661475089699259853038314890241431508342267522706933397213488950697067638247365568510334002174329967999684316930893216150023659890363019235854870199482849684864480975238180868170648079910686708196430902551345578914944771600230540202357883859994592241446893021727057387808245321813070965056069625908449817870282318168741229393117748862420586261356870531375597599226751709618259672442081274801735922281518381452491221205175329886222997889615044402892767442275300202802203815130894005097799910662168660239160557803317964408960653694509660186136934472451548648314638631756805945998756629240432009604844348533758399044792451858852476575870904947584740515161631262478629669448258569957845320114281389574644507280624531381604076371214367160622113816488898058169219414451590768283077219348735662361521011161007099932996723423797611149227950401697854480339700380636763374896469417400906831496639666760374709132092502395423422854688595175228124644772324951298290171576327086615451648380573292389469390460825071225915628497198060675560045567041699896449421614020860011824810159766881323753480189860940598372259013622654452853146130510623328820501794024568560399016158367153605639751729125764370962347925296110824677060680210523049315251107156371843401994081660822207493199482248663454668932614891375000116668462810162584563195244522963794733566926349974952784427632192395563250939138867510782476606165440717214039250729842344658908456843448839273892803540741135048715882009548860018171773073673858018828338022948474882392658830718602193259938248724866808017021114806628047102619121410639279058507042018638905441714955749025675349909906262643590166197157778985939910624984066229847636366477503108652140985846297333898481940091931765720594729622499745770112943562393045338673873648378605296161000199117110244269276998270670771766715570374087437073957326223908309535738591730443290478199706268886671574414264639736538244452957393684038580854744705288277593921006164098342853977583106803876251872032800659318445763370645932117235051589844044995247720764142108441852943693536205449487269119579686308811696173004196681809542858971769007766015741532226461068034269173580786300989374266272035817945021556314933996336347039835104368779534407657894069340227956308322240740567069012386972931497463819271123598838153871083123738931712082761443608877630455348685719789710831349934340381036678609222923665342126860086137757229241212795985555239815715589191880183876421267881982388752321948101709180938809464699547585108842665917166246773861141417623562278959480411124727989032164722592549079898464035608841044649992550335086620034690102559343221037998490287480486694003214892204588269949148937738061443992556360440257259172927732024954403532407128364318158398488429723354875781233466238340898529658144869998843931209302776037267732330069116348890418539934610131251790187382362504590702971844371879405651315075180475704157806463038581415873597709724853208212902371290528265055038579180717096844455020142036617339807870044235099804544947401898443463482192850577855000943751284711575044542505204986945445993689889246468728724500449938433835639129219207853677750829151457621654447478614881686939260404967226943921362787228243407004801707536904993290466222024786679395451769074542053848435919076451788800502138375360055495030951997638478752029822014345054027574409571532388805259361676143580366971939834398231369814265888886950986069957579379613946715731090423588024858028252115398462304505298311504788417843064477918321179283381588548508267021289287593871882841127566183438867679745597685214835057132089960231029965893882748567066728040915049220205942087848751670887838246377156010359203030593927721100490298934274102965216583008258833937024477384053314661177524209007577328804257398032192282876658595227179715796195085439130131133112375884447974586001930247100716458072204705663793182171874697763846664091198854883001567243134189735092393781621404037105211121667485078664173595128105819630942639471062262911552440966564621823519659807051234161451025218338369098987988900535885846650764056742476647097930256520577153615135945034985581820819101104886782091563060262184126026464122242059968468373370608527775490651194734355876567825482493563442107573807992079387332530901187998576625013177120113418392478903310474946173588890343185987593697320850245791429423094455603289905587893107208075859980249150229819012500981832330366179456057834439258533787560460654432407507856755748855360257934085165252939264224986325002738551771850727932891485943515369055095411929907497934029293337156247813263692979488224996049150378919165456507240851411222303268771360370528985842268544142113006837272441299613441543797831422299485784462782196475510142014744079657212557730673731372670674771190210505199530845741228308298593193796546456829797509355089453284232935116783430631692651460804046937703028985024092616613948263132774010799084579963497460381766639622138022448350963858474571062696012809178764827913466571449116976888522696182855067970568429175556404725044795355833049253540714888481539094643550007247734929430759062133407003384996886659113463233321058465951141432237061164742906151388958533144593890685779455809841155289869582614176361351860831813788596517854416137873004362363199690436460456064691304780928998197245192316532064827137662314140054565900397192973152990510058722399729086197049926726859313467245411334727913699763145901064552841368261770366848739815755713834717676380499795140932293549181281396204898722153068676051854742890976978380120720916778834255002180630215775468445806076304883775123341850089208226151751691385831737908483020482690364526311234030505291063455831390558093220411129228860252321873522771138621017162692168992344521671221535034953639208445907488434209890192066155105101488864437171861154765894704452119615716132274478782874175457950106965297651202788848063625046077229591699542791277175149392230252200581745073730787156965444903034710101462491296079971367536193126000496142569880809120195202813013541304626888460949101528631061335860170859127115168094225515738800018689894216027764482257336022420400943224589571334248084294812810174189930597338681400565547229762101252922021520640343690771746165082939805968050313873293182614459395888001744874521567793169074699173424476949721056978200061381056592249376932797716505854828052456629268366542344051738386567769003383069127938290843188847094897760512329553595589111277710504076396948087566234914841364337964595682961153887960363542543633799813295231467797846306128068432627106087910376057880485938034857668833549134464979504865732650914558287298567566924951212352554471946222654403714290779171800106539750817591052849927746841123824346826371062373173107827336101975904908202517842404576382793008120000544418412033559234148128928946203482776378493510860805573594628520963526776500588560865699055650178612144671555155359720532273647408356973610707296301034796909797082714043697574076163353366245014063233242012392617356551229280505939300993700323282142318827084375023922727916475793169803224817980536560109017295818871479432096010472664865416011113480988407706229343924364473636655227388434398078744102646285330988574705204430432554722036397519237400788545695167263367284994249113736375079298720344182905017686116257295401797945022459640474900733601099584106815381220477618375966205820819987785048535899075537181885325108442546143133941109024783752865367606280709233934012223499290960312709064585745761804612222195516354568862962607884746842885809863997157927501034053225198670855317907433066788005410727888028482442681860036777100291383297387390743063008715900289919495917605971696634254782086394245734661903358401149062266980555843911348415474231517779085689089084147925795378605158398214476999609200628071176808975580947832250495468697535780622593004348329941112015116130887956213063146796812968688029433094591686564633797122963477874724949337352756272917514325796296254758416701055774685171447927021456823124730667802279626647538830254507638819699171334865479957535601982128015041538871866642760407370418417739229306499774778818313292790156247572404201693604169184149248501866590842775848126299371284455665124594386310465102331921643582318381413549585746897550337408876581491348199493645002953415369193579863131980822615611579021045793053083941338671747547042040490031977761948751494754145885686447419930019326677317134783048427055281548900192855106410070633195716577333130440068983613367528977716196063378882336623443193824886699855262056969789225923224270305424688051097919262970566713474281126251369613511358908697508002270256831047707405654818789563366212455182452095359238163603711040596791035883013533856847420760221029548207943758032130758072588836489730014364915975841153858736738578288545649537515145580911721224523354292980860564261706800128237423143893866118785772360489526199466888435577215015582841374079265721787461095565809892890192852632688787938726599430901781695458536144671581796520013101778697026605658969820151057340092815412549582697784825311186412176324797566262385059887737340235276598458139941656166274585097284037498258158583852979396829858874199797778219693404298931682379466928155951618830927298929032193778526268930605844310925818095241473524368062187661921355838115526937264989567118096397905936094232010815767176651657940093590049872030708597287949828295721650948700246899066218706976077503507593574635104559417867426838419691264566906054892844019167285023179383582068968308876244867958199210846724522634231509764262547141085110865134499971787172413037949103474299081384036132636200260890852548401713268779319187773781617370546766425235139536872919690187895818594341309716209605769860410122784861891070783537640161791111384692296453203826434957464999985645240653073849538483740517244758637037695276525181345743206999506881110159360004020451400956487083392541831590556351276662624380082497928194793949504054634110026555860695077050261079364735604218109036427862529150131571375830371381494702182709849363488714726361556525284799653455980526226100812228646048746846903139111394112852518405486995656093776516682058189614816372111037501147942768573933850597353119547617758288913171111972713034061203762600488130554343796863801240381587683199669067536799887099467255884650870704303404625576737966127046710540294388453934920398163822856058991120631650750676151997766229293375754494420489018318366026511609827049140601349821154177116361097710389791451562313387552955731377448280774361534970935432999438191492633073437537593409644630972544509476754641530127772416295264451413881418479885054293247850052777493920298693378307759789376857630411546091447616546016110574687655820784802686632807076402102999954398915635208928966700462027078403339473833883069748953717378350926881071586690129309109695572135747135971079731708221515859401264215757267019439469071617727476883484019979700210270768098527386869804838600823286137614251712531883504229136307585169555478408894887082020851573319432891975796472966075944478960046076161185717948358962398062768167676752317496731421820495633274547492675903910257221791148143403352229830411003741193969877463755682344629248547005761629190330718129624643852891225326832571900443623577958195744313718303049967533918059965983218518286649628850465927136446292070938075634461799895087182748640495705954455685130999718025094994535634475271126141563900689435234522927202229776318831866497222669601630503401211387559311765843850218479917677860645077851751214232674794262809045328670111243089094041683994891991520231201226383892235505102785582130265447988464910160586520029347057962259951498317000495784468196011793736693169166529004481202091221929304661720498943415110847412733166297026262181961189120670066028734951872445818319038977458389806741106647413005505099943874137788754822807071947436489956938512537812160574832024346683643000265141668501057274634388354838207172008012636864551387597684738685420295403542227975975182212976859905264987935829657401963494585719591578559124813148871997012411296861641070992874923888570246399423131991884194182456183230791203338838330315955210816926184096222785291619611331579069778380028585990082107828997225023373175410609200550372791797773252565083762146520041118075968055457108111368653105715722565899418098553471879711517804501666538805326950836559686906114518874295948321303984456897754829380675920447190023456287619519235485742344043009047434581246262322203547448006988077417436859830946678365608427382890471715037081129183790594412101803696066314380226652663054266119462557634915495998241728859125728306631583627287804514870606976409989972085838368264187390528045342265371600876325779348031162890009359798586954152566103976688932898588265953073334984570495837602191854945166580106684672267185915832393903595469039164543300000481480954267753568760513969109377954246819840684724807993677705445862245174883950000125451408180021856243619259072493552803663357683120333752995337031524386549230302535047955573638483130818514579429996358198462293298983684067209100990912003712041610559880538892339626145921377700004238339837740261559871919237657042314835196612323365529037219799558709378127650701336369647984745633491601104522814928451831054754227766409351692760617340463884153407511307490037373744543638060636889142318468557436661760404405657682379206737473653669869550789108344873477841619540631417693984384593120233190483790177425447254903623516533117285734823641482020421563817947016199107298928092604639297897253355701595315491150232820625958031603422045459786701445882074305402595574467708369575024153530086867143927771728897790898838680924852851274656727348022309883763028723306623649758744447241294148272408334541293490807633952528707730349902488322858381006026286741081239156044565657302190384930732050730891565349394684048982561388938540415159927254825428472606325536896661718977764735679115981606841808731129277465807544966306137082862303807241936212542235433374769991528138525245457379591140390841083042184297738215940453059926479484912154907869434494712236209961324706418590028215843863952851853923194940050468340424906137293944466275554745375201254408338302926599512899984856647965406861775937329476446183354242816632162821724924173336422131544845757767394057580218043564881568181965641345373656689874364252708308698688839416638817401232406536334739350145711403570895027719839650871817941982949119328569747589206745000756164339678080593128247936502387697522654220099888006515025548133033832735909473812465313843960182125791901244390130546173268013265830977633128226997931032139750798634810389005248618535745384155581113102301481713093560101078454570915330159247387845468101028492419499338226979804177186414133706838799448876010537815050855137772193619086404516984789733137264745621245748754750669346708658133507569936207569100680178176546643502300406471253571842928728714124416847233327442686911587526019807170530649504916881145847537181383856117364071682858424818866258668472045259837039171417167808651958175444393911899557870226477859704301572178682559240721561860306639303830170060906023994226157493321188558242451321915117034550199902805662762525458715376092792761004843394904195360300182947106621986270250934431391743391047716597367661631959983753776992940625792819916962865979918787004061111869067077226587517463196674448768265332904584075389922406404894066182106490364443012522295908266650004293528366238128614520288150631321478529558805242532877550873307353614967577592316156622410175433842727778286002432280930697779916347612055829612574923976020376018768098209235409820889954845587744853645844333643826745256627468118356828223068970596284994334111940080836458058307388670880753210709579758954889055521102386171375987458055174712790078840195761553943913602530854502076556221475769629751969392672806385295041727820327415298647086155241598187238565557150391864911804360456930343011080502568681696605821149189872856865653336390782296624883493084140871636243485213772931843180889324197593455943468849815382157261097725896077560734608624089792981732829021597626302400243600248111488345639061187459538086490378703845308700705554447969328852673904370077440110162569688574879476513840300439673407688915199511161912474533752900913805453919105689068522216132581486759042384508009425030635768585787517406721391812101039534610826279932898030638024708361935936149334283781955944346114562702986764296099844157527804267271938921216690331458903865271087285317384086788319778304073188657510877493543963270056075018327260961434463421933683477195577783569086807282273168086285258073718319180991017570970666116138135886811686423609348462585198232078442358442894211862759321414663676193937974725911600630722603146027912076828420144659066360717079673559334272663786317046630888481070202609997949081598982877999590778857047846523892433472977908856990566387717690398640044617573228984007079791041685096083152033228675924970757555308751547607804076579029906119393306491253491272523502779158020925036907711955628696361603033777925192744853948251602027978815029737058562196979785215717424964593704152275948737145339063888916637056781772845804171537078799042149571234122030820252509233578881102484753960758132894714827350757568808346828278908241885656664632452376459506511234013557651176228639698902575290286441734574352991230666115639741549265951425397173576715731580998921298493936845436282060149228671030297804875386270714739502808704530065371291850541142108943570181631836589481116921335455954694039352976547743325740562795412219040862830127669708704827361264553572991480149444688888121459033913754827603110476206104066836202560935287465260634826958458350075777313453397705227780722225563244368463019675214158896903332704548223907783131881548433971316403753404109433014712572259259384354492162193443255095694720608167199348627387568887314161676552459727255068094103292117717454073083884390341163922404278970996014052661115781692342870663058778603898221232734474334421300851342093003502862452851941516139449737174518378181709177764561754219276878350504102769433710443063175777803463095361441934684608819856631105718224744649568677185228831001168205818340722618277842120619332580566159824309541902513117137674418189367462742977859700731686364514360773224897609908557628996989510278789651191896274058924910595817572915519027419636685725878534441987749965790034525076543221142400822574170443626724787188712731356957683343376716767866842443144702086249308634150708176343108492830326059686987708680555992562072385389245729623277476680445841268515605856743752258593818004013830229082611066998930464231171503679671629946480885020960727436452702905470892803920871264134065913981303295527449927446602654223507888599620837970150374609910149052532823586648951166019238857175501781041330778800671840233214549291245918826212387402175620604623323582571426735682297028333917811629684736646826463596738884287810591710270673279022652723672671077934245844901712271653803204061127740860475308265548393078987635245773137137536426606280032981323498361869780159218016236939586797243121920432991382428737218830963381001171470429319070823580584306431845678345374399844107149422665537618859341890126732057406494792195104850861961243672799435246997176204110619262446238982289079929434623109421155385667984073357162849579185433661617671295815637315066117185262285106680051527357319657780723767783476825269417864629625718759320814308639169805910185710044348183393643571163439287925674544742519743811528933053132799052744366641117700709885007636865453325535522359804261720449070842806976199963326106812648338242312912716100581549476898614490420470780465705260401684298220950872884084066627478693236757989074445480218299954055784761333374854069864839008048780973695300282781658464663664643507562279876746773322360573245223039433294453180104629624636375998282322861041566738375728028540090655147812227045801697681737820204405453192768589327113669667675787141058419945721553167444023989954654589311187500884169886244897844008403901826345269977209727014611758830061068542359334908204513942219671396423419003015952360406879227075690588040758793097347259648806161368974874026978467491144230184116228136973461550513952139471943093544639088475891578089245067821485340331320818467383989079627813263607395845403773865898429554236032649060632856719320034215088946743716181900973406745119613908152936499344738629304442177167901205141291231963121113424158169372849233931106027179939733666243352448720800005834613406444997139664551297680941144978770087070092565203020535855665644987270420830635019266380077698790402450189807032738915947724101239729882095141513200381708319826031329715256474472523045288131087534216282994253324004020545709902509318013235602586267997613265983968106392505616762372072728501748992553464251538029720757956309106830703074957732141206744267833236659273291980868079679235969119922395517077178070787562820586802496094129114389839190127783565280194684301165069723805819926870823677292035041720198410436743334207960426034039194919664316461093149228142555126682142931284963644178160205477916166198897334475957833581638657229337051467473748396252183272876404775599209567843522171521975349230972553388358784068310060728273687200268177255736270892393276953950743419727107150633706689077626864252028604093400750013776055637242380361290857411441654029306045469251637325304509921997437444686532072382775462545284831876198487227188616036362005121903658148282344060753933441441024141791806686632827001633317809478917150662755379486606347701442338484393365781087974397484667480668819934663989440811497301421911299271981753836802001888558982772533411477941471758683078699592365368912828871688091299971637615222969102610250558738471214234203907970165495091783702043221853017222650447099379826993509100242727602815623977735481163544600035401622992717783311666502841846607050874008195031082394839243694188987212752125612813727659833355131247928268709816219885450234578700918657125006622910784051615196804808056720480302969258855561737578856880693025029084688707536708503776568246121125267111177777930190145462755265370120289977561132216985155502638020357252319359269778692339079851732838524910923416735214949577909994506647788296010912259316510260171597773688544182117845711032932810256356358459132601784953168739333174639872069680284636415492321715724620913257407774004613377017357473575534545841684622925219606260140097003136181070006023627974343252917008818553239892124369382739081908481497052654310848495360962982454671170083605376889970222439936958552629086456917500511438047161432182271829425637520601451082360212599736444396451243751649586364890664982265845050505453191016170514357852642866482720942891664634954267604378793433191667830604420767027456839939543040700223531046660656028946047823036949520924153084315167914235011162406174224554129914337532077069158796621842734876432378808368409850332160273170613600919035513660163512224461393923866739090107229139392757103938359834650240536111286685909323982021380697306266352504639985062906759053355201791090750876923395991152825573690028394950183717563721106660957207514877143903069312088975555821046477171205418296785931293866026868077778467490463588374760781886817514113293094214652280079553739833292632092305526472602235652019250695556532869802291391156918998260538264477143496626411791031035761580246030679903174845823092086252618375506858123791126311048941609849745052777435904933193955086593504461501004433799398723060540075939464735416015065242703243876479508399917300429655486693849530271379677884820049518265787951319982829848933691858110198348317453387578752233435422720796532117900976636645366385909043737148286337847259538838355195653535211721469886006836651915135233862632210767389906911122177650040441623083682955905627848140455304709202005850872151606863316280173469592304820989421578488044963311662016968558400008039033162943443987602997565744170295905251101475704525394030772575248162887858995343511665142631231855691716376973047581303803418352018818859203721839614743932937935553362278406053030889096099195832297186211885580880796405684459772159440147237995786115713913155000162226086164192705878573074748568570257260961496559595059630268830469232437962389450489412678049841496975805132088120973139597549209334728860297272637775781870527137107667241464613740783056467827123962335677763654733333883383757131778051657936698651490247167875306928551926925362626767762496112998055347969779363721341656332883293656269864539694192096803982590545406244950861627077390028438574120164490942590455602644805826828967490594777120690274022429633335405362735913983587688155659710669635599262661681756630802189952052700132774874793820721700382296326040770317025131001918465240071700350692880697166848578629722584411667132722349114148389975330607360870849384430605115768285041676834667043810193930051921466894014337621796244113203773981435196930509269745251678942796561647741773612029558099540723481786025428783101019503069880176779345104449999334242680284913256261022249299623213067800058497768197008602345261280698088823646524023997066030470708907778886871164991626398936041649063568323629820552574086769581583693437950160050011057166341525284511940255737923937032702382677055349751478025592194904222570514762294582132625182662411280072538665264815811165778407392790224642691212950598923389271203693375581193315101749868593051529787804021932899783642914528808770439764260535394272451905532108667197088880734011856026232388663046135464391114376108841214689632483878901385077690980365848940914688373220593500222257636958963569004819840840945858829333265873741260675390025091107101087533205657450681621278117080969850318875725676987972150038633028469992038462698412822266695877983196742564152030289880631245614237342329548901129153593324922917133867706624807442545648685557800908524741220270192342086611193497463942696738513208893430811088922212398428203376573788585676321923241017976965500061145515267857448196112107166150044218585533243956479589533701138998805334405209522182469462071487690525045915210688101636683226903428264956319883958679019824790264370901453500136013735845507642612927997449372272897650689813358329002361516184225759482924816121098177951013724725131980904910023257327281226482443451476662565337652991757257443760207106968166937052448464807841029937145996700571815497288656487478799810644629523473003226280433808204213986484008369508263673657104504959799176815044780303618930271652904246795596447685108619312228562664685355361769175751183623025250563420060239807878451555539802265070818278104064385230162700324814445784306484984245778744338919391356391422658896205830247290160911301473708013670118115900738722700339165009906764778283676074628589170332843838553984471003985505964310918949295354571689148339436028359073070752017821454323805334849823606222088086012368187511499051758512525080258190905740928538141603518524847662533004401510549851362820340436562116412858186671277538857638330243884177943930981359414572760191022117816662195619459012017776333819143668355480180083404726312230278609995563203771040407011850652153521446138341729281053566012201543518997231521387376874818126080476445030091860590134062921848323004194602953025914308123250024027772619473993004267740387593358454021551978957556208754403723803018090568720569146632185622590519317055341736960387402144444869091553709069542408895059599110250142317720259275785055429531980164009934818873398923494009288915423784640151228849144109518759720948983408964972250562720523458661886913667700089070902527962834467534779447436401249572668998249611642720338698616184367704341145776759534071769467844689373267648048660842705762984703995967771149823488282611676905221850232169805054785575828834932291204346058173083390642748424655150218132364733317372764219002191287844666518253583355886356175627007161984554129901558665506222066710134503132700432578470049126189694261505219109978363757017914482955401004398210115954164623331571505273469088087686576869146828122463681746696554732820786699729479877229994168386232600741874729959131614990357895229848616534348565507789859915765055746066686416372731617169723970911480747376263446386677753621950566530358538574026578234513906606494993817411896814661009135755932163204976532347315424263540456540278130993075888387647171966288275146557996412035046182059897019179048819796685888357831151945956939542041997678025472329941912183700782252882169727454895063450970399162349447915353547406565117509622434586599170865691871478563245620166200600625035116393573274286513175319991018739893088681838245603044691353702771300288156248700483467885569319407194035979173042837162427157212274578432432990481845704824668075599355201516832238182263560987607297140746030356808798036855112142370790056909737414435788629057546985089593708529199769431265223921611356938377036694812527225774122741890465739211053966956362223503497678789987148533570462391415810638211417940899553684080418237534449797095263005503544035703821236935584869500088636038293329907989483397999866686067993233299393564069604587751177858354599907817879227883267423809125436633801075927128492200696733893475195500305082817150411294622920724777866372451181401395230687245662296832364052587642761587829669112114677970300805740603447730187811219879192262856459922025670750241700556038745713986668070514592048397303022828898600556481716371970056081291520097541970868173813385768573997880059031866513725695212538392752238240751481322770356941179328426256032892894408852749222367838269255070398457336410037641862218527887099677814268442693369029504307659218961391315043217578041875311459287555893261984853550646151128199304750710052551086855256099808398316697036791569833927481900563726115165517738525485866639477393819146412785373947794158697419310234204133336092997205799068435126393667621206762500829803545792284627617402797228476083169382326548266486946215529837079106261795491979917718137456205390670379972440169628150468457481006956858970130245271018944115990563390882226470199561618247152224535557060607066371154786847985415367934313031332833205563583660674347986873012563667531422818882538442011016200300381786239156624806440033946868078546700468112247651025077167369813717926470593054792253987753193777352038399802678714522544858212445443578552241834929724340085947196788486762932351389608352480743059863064828946357091976574347668554773739092566681625747471750295011546494626758585801718512211351304120010693062852315922383905132077592899646998863462191855973093105174839554226042177547301891690077710610238750399450159576619956564432187823645201344483174117214998995865770485495880421238308078511882891772877856840828893247776896015382461342050834725334126636167358754770541747947887604508214021760594138076309421188241411614270339501740106961823839552701323401465126004839559819209745619912021154970724722967673984297643887734364545883822245569652954528382461187214352410200591157651883401017419001443924760246975229654149057298421015749219970487031463609314317529903807378538625895874158652357973132918434544017644037172752683580538835380101711162262979096678321938133025101265945609353064195964578628106356008638164957795320907474878409534271167215980105727862580993624737100692628861891138030405738506543561201663107063218801247536984687537012650526204991795021989035328931192222977369521077907488716981487844830886238239307278946652564754825973608592558040765202339775974734754227158102927893714024497337700019451031560108363171308382813464355248593535098942313179054343362167512199818008598278280198155340120553673939975782999291392269910210214604374224511075859409112624132802787434499949362405891519344478589320390472703779405394518391535074609940353358776499530023862589096652156373121093889595053889306686832722190297419818122150907476432413922750549227393706075462665193345762807184875385889627778749553858116817681969364960252285912997478086948249112151544532222794361518607126632999771144718274765769647483610342649005889093122383474061652028784712942439490199159124304512703519957521134529784953543710317083444477486339442283484704744347163133379915159495625579332584801699446401367100928111433730578051093687694448145729615310581807510233599395104550045923420775534805839488186403430144013410770418374544313157583020661513991571284542441841770214059583625357598431145749484643804166203337246430774244216253535146101002943334229256828353703103070331675354206239945613410468774538588122620727176711393728670169855501139917271148967812260669485873205335178329413257430804302933807013201751393150819552380246031362414793378717597411234258641324449495289704884600021922051676471351592058632544070919996825021840995450797315376309449678052894812739553659684319191842477569110899002216802401900290933294446068665146259116820891514931095378834706923349641845048664439737400177223148057203732354231877706104428869334491547192378000938483342397364590216277425410821472751799796050784395432606399483794409091581807383550660320477298676490476823936209033433272416964309316935825140689352096213770727449730483435572843881809178225483826660639944333696545675270836999354189695494627767655439266209899976086012910925671952675842169752306136988654777462749215301860407202849923361570134999775736901895912048040301016602753472291416743671199929148540538240694722355605372366064828789319621967203821598480961505042470427944566219111031511231952116998807635653030087889708305015696537562693741408968690991285168487132875878674148270939819752105262325334784450740183843854271379931933381763238753209741693290263630010170345445689953245013611676408422028180380233379090618466971572893872369798782136621236470178460381259048614384566245344911936121075250491845381619929005759584463448101697581982142867592953482376244509681936483880856977588336781587859309448636445211834262452900291840750046689428826956984254479069993094080379545180256414717148364132632722343267268777912269529674037364924098760799197173627814761340944115179699357047995673781400511496989721983361346809186079088654030495502065314072042774981729917479431083191001387694121201968126311145527832600413716716153529031434603841597304188634046110646363610236505914523263814074351412886219200173409001125629475439660655761783335166023478433569093370180539544504340999180849101512664960567958397895972879289842331944753459826922721626029384947229287131387612079764278291009820174797854197602447823311126204512577350487818534527489981818812454423253354250625873619676406949193790586136890162139438007118475870664572188246242666684971127745762469723025970600446246629459910015330780139462171539039629955085355546445893458073285287359065204782225650401447311718269424984994184866374751634808005067204462003037306804954192039354810161913638330707211506825166613548324736354441624933605097106974975118650095929589640987063554609606571003710267451904380108251582308647153718932769373906363652064481393883190231716582079034408659980443801925155589483803960352143298235055373607712197660388670144003955351826662557814431572105427445796919658385082902230900199204622367251462012677485656503520964427357694831786758412200426960183687218971867770310152749419238041833989543191055927510362470539151243202156123539296608192010150303761230392431768610668852067642810207437635696769196986271632671566260160532980302248123676469398579467204322250079789380985066534092369961403487444584871312681113075773536837946361576025321075379512325727830278667268373830647051784124536170460578967523907229068423115167303910312220787427809984272202844070269667946994289963139100175536280201896041493866474522957712922157625157108644885589432014800241873479104281031314856388856495052436594730782871282125078498115821398631444764105370675593012938618079366371352853911266153124410476635208771072282504864069684887776512356273918615849495808023583626257346907315718870234756915274212472650320867659551385552709438583650333702699924632944152290197602056666707658487798724635644125439008882992898632313052645370518157249236030612103763744382328298634846842429589816344924529534091610271619464954804441027027453509753621822605669752138117249532978586421148350423433073252535110004814984683335602332934432137036809681339756023637911385812709359185736339701824117685969596722462973017912963439140248431223251461833913239930013787276062971705613358666461464681002350315788039887666355952080242583210604449329942454110244755661759170902997433480852284074019190586896531583175103365014218289881810924962088470504302599305066477747205218614958238968193501119576319974539188540111898718471384079662958932187428644074427873864113612975588770708147201040274940542194712617408218027536475404186803849702041166711527701978212441444084517816213825429154351631564486649834274830818877136312177153530495569406809268796915608512793921263006512046292195319851064038900069285797077950255190087778030795042701644504736270024035124554073979439916992937591082406156315191790623011492065007819087988195586646121870236485563941371053486291634887697122588990149738786565246842883915449021419275332961146658514609015092896572994237677610469622984953548689278518899641630954736732773521557479339291048069397399722396640316109469988131747078251903705129046968894832958245804564696529057506656591634373826340189492958091552879822201531727756992857115940753477099213976080075485963858664678271223467151861091390293616607910381420465555153309503391060857247973893942107860592085916642294708959947182118228518700195281416230766275735179159959664210930128885680857681869157710342827186417861120115950266566159104472876286232266930256282855916212286705781595813452899909695692267311815725139422007936547322767541998504737473004735541526855902494925808953366143618671073419923353345897114020022856621891421690088834084963946032128782076889381452595552380333523420823463963470876339475313983015846286578428480176655123731394496296273054675621358260419326286717828655902259248037729830678143589916901414469918658776383569803365053588416726804361479462689719597703365769545919678980519493579700336096727711632674394553358975846669729796864559601712528338512255085436840446799358197628524770424456537076015589079078741809665699019189677109507951608930202003868933473617479294009889080483163404355004417276609871293487526547118993184918277302478340602016152488341838785283541287816850807821988577747639016365755309131428394455282227655527713301115932465262294083019958495894460007049057071435549023528619595206203460326956033341855671678492625848435473656008707395940555554746418295220796360371601910368917286733794675354690152116313057934658089635778758703078154846966541547782722020266771062947135695025591946745126566136077209676836318322128329401971338663116977252166880393260970115315408637751452934158603261087741137117687494354947014646710353220906680855830324050861501346700081650453226586584053626602981701044269200949792304976141814168048188720330658858651489020993718621989070916984473100794226644366305978608617990301358604043697655286816323906101150417338288908152620371747451599225525760548216670828219315700713647390932821068538751838719136262690267915181140392140740789422496664305764645642402952796439783586714692545582056780655741306973368280565046035582791359886011822866612962730738238623625001187406257326438339891941569666751831208792478374086260807767298405131109490171029586028565762250123248792752619545204096110666395508568255322731683426607762152460017442992121566946693931823814263339480725399824128700151675781764608586722036747669924970223449658130796401318467369681582320726459093092885781532290864350645908492150795275987832008793224043721579660495021872317818826010018314713858260114554942358193302378222926246428350486759376976527300611382206850207725658764467398442763350952614478395029458672750278175793995217528713986161665198334946282670256768627909737612970082393983903052131168471695513905716587958999677873555420722607393758830225162757764806847794469737632113541985488382082964453874496001142965721058008087926518996039123501432417012601837332658470844500234431738646288849706106030019612270318250893306740177561796838051538762973177878516213057218245244121796181627127413298084360363364526048367759508301382421009080598051430131301537692771088780358626056023467291639063817707787766901533594744595257532156836237507966411128880770220565635571660915805681715160621886920884898343768315046148335776563717746295438702358472453299727373117561544109171744264879312115852875933272932363126094428948230706259438978600480690624944329664067596241832809438789515806350051799058544310184100136764802402217598369945941267513633790602486148833525760825260469292737008652859320142146985635504479921258403045041679583013984578156333878221816838468010643092524540692377546797908542878959453678700183700175289089660952492454306665573258793687288158207723159342847449031427752046879465702682035084277350812577194842185960695208442687566347868511033935804112594061072989367102777389820869683910149323663229449950995734103276865950431953564479654753321103439475922984462850173726550908327014488306413754074123486422084479785051109334604111718898181206853113178644242849389629472788175925718382579094734264423296743348724877285535579974023077906283930861081624898937789152961143545041851380265003258545626117650632597800097733338957092895906141630460384203329666584278351250541001276279250727101089334635338896374196345910809848597693833555861398692285488777061929289777194491970383538703422711527284458247706660316206194281148949170506698666210088725642251913073172709337878866266284569873647201628039531851289381343229151678853202019330154598354644803476341549545767511384733824262125165418200771631015659218224771277483878131062090225658973550099624027159559823303348701978681414829666283448895116380879407928333898141386182460256814154356990459400067437529641715964448057190213721330707597916660089944397626661356216380421226748383117775253840317129928600224557305899994171712400748175101917861051157073616494328099165969761612937586475402861219652212021558093772565111839545398713154476913142091332242947602443234038524066604883153261798476867160359547175101173911518964861431281548832627960223531762061563971101110122393847063246831330344752384099060672507529673740714880102757345309587563313157031447294490669287537610924940521837403032210625568033690961378176051670754321465019299842521559378238152537961103492401474126722967734407759754338017718333890821175453657071571347581233612644306241930882676138811964285478120177601295900537597310254895574833980807134846429636294426102364503316611875393146371809517109387826699045994588837079483378188718992496410741670373581415633936060006951769100570444546645982058005879537869260129209519742148287588222725380368206455925475651635212585390171122604519747693756115852645289105106789534284449527225573588992409890346650718077265761133765519609980473073726503222251130879788473216686034663519752492951681756749457642152551307222959255818750033129882375434280152089232297976305611807895042087989499525592441073119507254472737580335638496420807586216065741600254508507375310802558823246720366171863003561558856937464579532334016915627264353073398766289760296928888372213674444649020109287848271299029138945949354873530603923607167596972136270411043202835315198193712817241138691282430996505512367557132093310225702572941969869856406170916625276907227118933274013839678641700771147707128351659011490825766537453196291201547706391523212542026014748618923469137801154868875623291738661480573892238486683053427987400196557206501740312257071862281953725225935481453136379800345393200020906166970408812365592708684075194165939618639948643365053002191498367461753010332344336079768877299543886539669961747338184887799820760704302867406711726475501022652902144812065492786373575848322437329538641809449562814473804457495505420751305497230327864346393525589929223885323945552022124997598446723957719788307201117917582449953600370478792727630905841339855651207282560965143685704036088365012914139293687032732888697811844074959213439979213331229743381954921877189275226542119178648147002822121298572817637363578540084360148577020477872857660211030492747681792270346363073032097001184575184171168543379689991970861028165601046154068688645618045533534113629147450589887697947107320551280683405503337995479979856873351869969327526445791072936577346365794398604512158605328089117254768897589174248797805811208637175560366197150329880047993450094511791054203214564143637639979298409914491666543435433484387742965968068896988254987881613220467084684895208006381384534817225174236421124259731484708102964494215726475712234703603560497489351132183224369364983750977905006285620796640308316602334807158574912289626637739504097626999097068760999616027614880693351402963389012673210853536539945169681281612839314989721340246817318725430774346177928387895486923148103300826623537154454903409402814288823055007050458290420803797573633696362215314950922149422025483941319931383242938342623946129358401978803011020492958923363479911535381179875462483249369119861328412719975001155490589878126426761724326541198793822466285954373672298452814934564982977961815752660822390589354460437819367807913989142830167504617776731750521090302950903902202593726433933816859085733002900988203955686157764831661959758175329100375476526587049734926434294541709872549911655848904101621489884487904144140435907400914340496538219835448512826032896022613509073589463388688479731675663140505435624440816446503428466822676731711657505654042075518566819595998849956514074896403720803723137166596478058643611808802235135434470297302807112349316140145681986722954493827399060431241260034614933950305804567566197314576299704312549376459031163107694139239539274342700313356119871302078548372413974363534831759913985898953079254226010578099889744034393656182544554594420559935694849889396829195081210491282027656362083110842924813071277144609187910492584155511595775526001918266518413942551927715432771744339767492408767781374409408822845326140965069452955859195399475458963911831575269429748384544677886841971947882696690929363447508801995106856293539434407280220102730794730850232371552696895080978247639509938869339822778223234380218249193902878196342000928293341973475308677301730190378474828141244036343817872891290878409151216242100821451138264657378240462889607712271619454386921790892065619308787286879728685619074473220395896434031432795951200591179616998345629113511935367340965005660962839646726954592078908414187138378502341634385618578602872569883096518436380755268758416005328834973322046077812904631866211070158417698816710123110963461106578891364790884314537470795240182306526260899817828820790992044027786138343154875887453385856082449602471730921462730924134421259622117463724755317481945096879679078752330459933340597631930163941296872130068864268018153664268532811155022693801332014815959023717144035027561053105719346707743157139283437852113415918699806915003511265106216261076125512551130351753241036602887893562987858816670621669165662230711740660441970785279611991097943878760446731382173198543767850186029825619570149637014527528577494248209261032027070419348230569636116294360600872929545262717847395681141059620597729145907393994660657411384331632564897060484170672665594953799697321158217721682060318087586401653363287990932950785865717763456797319159298235716369817881452552815110209580098337639833162360652654699337681412024236835207839733714461552518975367587549866819866494141309176825293934972860285981213803321132899401366923146351816799461823674903366443550365391828830126492223432432822359552848441090615125605874627285526556547809769933731709174743988374198952133006686504330107234741146314103970985455673887889274845619171171000853120985238514435108720218251497978896751076675401757404330494844252528926776569830184768557650272226554564094643645692688304955876589403687035791104469851544359277090189390199693266465705843479880365039645963841433887181944367181670209957217422595526622488468608292627130294876421818412506079820778539920511445562595055569036179720955779748990227496669651372410527748044114831296251719430967645046518416434363414963383107894783544463483956862312892375468289879483322582380842407994979729731894351613742792845417677388468325386359815458454719996180346391555365081963123956009267670457946062363204709470227650006044447465231102524266012810380622590016068981210990069184561791498132856488561377438010148341664125023678313833105114449782289636777433438017561174207456411170138420754239941406148261925939547095403429644932579977303368740059847608115151718341540942210418763217789996545268844206029782508802144860010764861960452653371657477525085572848609598238209007090884617131357572196579957035472424211962519442298278890711783246553407594181909680583984682081483586417903671422861905791764044060361825485417985641401922443725622777404025365399669557217672983256296171960700851616485124724446137852561048083712583315789150675673493704238471649454704306210535177695243132399202029890247498585533188834745615808908296268276880275382257621076124808124689555931673925966023897950567569839491530437460278515515799849026335403358318677210187999400188002897121128198430128144132243950012683608411303617660099556330807267832741373345089226595822160443252812600436840197749335954975603976899506077611995956387493248484084480673869516822908753914602697203229588767359082936819049173396026637328128385976504432750996975079269549440627756929969742896965014169534931682151810030497010891148030650883839989692739711468096735889998988620860879713663922017863777536667253599665832618228492620156981532953687579055166088412338626772620491553916941146342607826127595809576896117560232619788232455429080462620821922123787216026955501399529150266821473850056011058854520137587893174592947882418403798336757084969521190643500168972063663668480609996335434549588960145851050177151342530487415891660465980203467147147424888136570240344187186963170308993596503661074370514701433473692582647315551735474062207675526376040004624487414045927304978708843670730763332104023321663490972290033562517969705218401826918320093116146843317393115959504172376017191023645096412369432114297797541474215875824172421340803139176425104233608969979851301913935808181936242992258669745780486584113643379463379659878339364269023647879573783734563166380385980403533550546927006015468248501449488755740524940597722480506969119443380124116692384252838276149305249755536834369182446101575526651947055899880615810840114128529361628574141560682897476585069123984847318081148116415600881718417440006619240780632190689745377622865386371713619233847889740269815060537766587525327546878575684505937420233155621272170421678057987301434479548244326679401042795857701079616816128412446027951138767467489796378616799370391880316013311856078832239854467651876695285427271994202607551268251401331389242463156835337528445803949558675426886760940915377797237906153542668912606551722415512653565154413260669034689653199980558579592416417257009855325919830792579834244589621967231373295808121961762533910955826019084146867169710137346781117535816132706869630178718579473702172215249308948601079092662977562767875680501835797605493965678334283694666379710855677787933439528355797534389740408867935174081356628617089269164633967041946091395114407511365613735679591971600531837572229339521941039595278871880886967382134123448270908894472432601703007585736591016240701748871743406331418406891064469588595454902565380722884882249238768726274848669829264296142244175592160642655128104100535212615857328448995024716794195866299634132175781618626632676846615052494075547905933132406411948073551713685748772557493721619846505786774309578697819272359667878510103727913416194766898374010352003121601210046344343350857249061308392291439217620165126902095706763764116071036302844105692186955084998722206007375550915706088277602579948903064768691042932755734376488722225178124436821969078340975616380600442371960053584647953308816053260250849853015023504215434266548303609776234959545384883765007319723990009929527615269524177829034766600412706005140907509112474151082627918044754943959996172417971324790880163224710753764218458185563494306907882699135755425262478253271897683462589660954381861807064725707367102246212891405523416557958918735066615894367768440503332624936813942266387750587889755316854319705290887093785792492281632154068318825281320238094187047055390298837363199422815423325964223784740080449121185074925610079007555848085114860926319636037129848908708933291091891226803345177167065050999022457380130791267221131339493245401681758752474620388736740599441682830717356385394660821561906727420120149934217492971780009703095390796926105261236515248365751625589707869128174085044451677565492087224732372248184974950300916703722560399360717899166867111636983228202598073503029400711303225420491950934827448832822090212097689203035837261043462191328364531731778596077961722839364895448110851026166658939575607716320122608961467677645801933495748757177831726844151121622434056960409995626818804642652669282037329024146198648081087921356218782504009238986703087242041424831268583255454981086643128411947892362004126491306271455812892352765723523138846684196981967027291265100948880581539934468445631794848688912012170668131583157351659092422743554886275284030715945553346195622623160078434740597348242698458914512499689412299695315120226318714909472108439325975772360257919692685951017445664026935825152498193332492418652495281234666710170183794845978128642256075835738140296941025538338306592650354604713362796584784704688272714828858484582746327205623257642239248620140245723168730902267767999340769777802305306505268812095466076330427217892349231918741802358976052614697363665809829383581658219212683043982298326953803886779151715471558030309248674598175624106219315080649435151065583738742008166897068985172165680339152884061615048672796382517456450831265046273661085958335751756241562571540653888153479884446363525066138983536220538431807249186978603164703843472215347721054051410089849210331508712014354487378285226760742767280235393629470565077400724800477820995557555124710298051668742623512307692424980434216935028750375906947522921787333366742265626132116390135493998326571843283912113841755905375230027694973185670101314633850078341690784057796536948670481492912560373035183848017796233116240732283894432006827014629371003347287080395463673784989503335490109228745685990261282785263163176885327810762022693092128469687669097199592454711586301054752842986203575664245387333551834298160459202316234943458504103926642651268635039439017474161969449909812401982398664947048071126146605668016738937655051870450320359041736801056907064807725916640443930894909949353430133503159607519432688615662334979002405548659036264971746541985724723728834184950258549501233877385809050980184769029150022168812655092822020318748898879938272655470673426467563538046129890425708213780080471446989100302425800016949621607953981629195726094224884398522887670616447457606748908212996249173108654121843562598648248548826968802469896334348030318658139171870148636338558044809888856924430258932759046968251351421238118325229713509348885003723439369868891452863652982278763324826480478591666551118511818956683300392470734810078663138552962613765311792134582114051536866646298764726424708070710800689931121052110875328145656455521127439704519805068312270248182426495142722033555516376294469752158072683058243642944084651349249305748074049519692274215393511219442018905736059911146712945582423043517009069815638394349737274388994449155315277778017717260460002314772144589846011761191216481531774814933502401671410246519393116970373135353212919177253472013443773379812113209847277457601274160615153466020382862433454972880430680713308799833805687762866622361110681767333352738526771941001954557518863951594065612043246262896258284865405185617878905929723554918091455354951741402820252869625498692716071681413657024046895722408113151171342339397844201078548791560080148603000591211144929338450782507160964561892717889901185468439051210403754626513304807122596194472587577436224844861546418146045278151860882269816326908402671000384737616805612648340611257866033720812102846248676842432115117527668808345372628315250142775184896744040676182814540841383977400148386950095894144622453194498196085646245585077250300051515475385251103449851175815266114921335129010266493695688128294725021273432478413030419798732812388214273384215801994133061666353504108236350872065175589847309767147687619805051420554897226051812546003130901754847998145782390433313771845003603061565551640843709501029507377723017803326463398470751178960337832420488616486564337868442635381723337691980442439877250411419048967624603947809765488035062538924508762591218281671741338466418604861036685653807652926902406785026697991828412034395081743810642808970546425259721123098961561461279560780364023577184503070319014506353572465368727803921129235618798994746520617198311017322449854637062751533527266137058701514456345987424722649532383670201438746794925306887372739408231088892244537535933845094009314298250351675905221170398428974465673094140035999267979714349364072009999670849062498849433591219244270887521090534556623055666861270968586312374207777180604822110769088301478338440297085695602450004097742330172012041161467472855036766320238074919400815676408077862791447191202877545163442273419070768260517100582327490406309413202803932819737987973707174171976460468993696472741695387448245107088325313761429737680025331146552100057931607754939266591146574612466317645179187552139618695788816898394715397859298093034687235896789563505778087637888649480134570582470343504281197836328729973037511656636940174129068246502223072449340488552403290835994035141350988840049200929362152214863592706045189868573872841199111645830952386347086450601889132362008414689533410220522359616473490616424109086055927654716022415164828373039698224489379438315106772881471298299047105147664492077952085010382408188996462459618756365408730505338333595541260211091282389332003804109801344518233303285947502125567646561353746111569682824221897305751191843317188428537240375225425920610071706960678812600820477041768496830223346863546173437801155237469325259867726771026498889549273241980752382256387717341757848794578286678420880660958034654420381646535861000795511591806340980578018719562215951956215952620068363595532322868993419589724965001293479682882047423643328725214314133519083809805976882695474702052033417438811246600906248744900673563738164946746566389258937202843589022704538908356051220818098488433515730388078842841435368607260427044735382028331314209718899650286167589496252741153664672812726984209423382270765781848158274048443021318817957013292497221903678686423658489073120094783137195838218095363808675043491930611920934978983038520678733788482115513851246386241388550519153607872021268023568799906399799897158780915181935335767868217166248265240406537454757496628383277646436974774414275447706443901639130635259027122550427788813159568995004161074554077912368991474239826375454748386970205869494630690586241784302116051486910722795238520476100214637485875788442777923430744851982132147926103658704292097326555973935846556130054986188188061027459436786504257693377640266204632538813270478020137259287265539158588418508417765740029420161381421515088914116876594405159302029420381874531431259314327962370491323737001725033722155097039953536501490392339839460734637016638022436538450867409885173040629699482256437428079243379722712344799599669700461092495758301476388257418553603819931066383360707538442035700901490148826020976926039548384984944356485468223489100192154519562125972100800565811907855933740813767982277974347232972305387468211014946959902854328096497957402338013868252469683021389290029661704706845539395608901646520841179766672223765596560666762297830819419297474174859019067753030656575018383430378635708722439027902811662314192642868939574694093983256723093917246572636648927844702976955851672008453420115524070982150362864866427849406838370702179958551036551127145478428183549850601849462960676711328479128697779226244568168905987327410760853776442690400711106044978268944274342432916994439645861077139433649309872361173049823154906355270313884299146554427410679106462118330762524410549376015440573951928816287178870788631445671731687166995724571284014504543004017140119046236034524064129180805973816750388998297929077707709707313819687067786287105015572927440910092849078761288602510140659390071497977899826248819380047401183687071539016272015056196830008835652171449269307754834323852472758825435924592879325410908626458768910923728758057389832868217207777939184326400943990200015595867816208718559384600068062286092644051022961610720576277839008049241226729811390185389667426190345084819895442109994541632407707477041215198605207986098682804804375800630096522469306365201928339716191945827002428536118129038242327088596318248737297994815856307529620584092580387608093044328090708065868430487340834551968711851740512147483719928328706547538511362816238448413533382682092691147648940460677514860689550593731703669147869384706262793960592862027431916731177611426894878245919705919196607431447095384338347629548902803208075601705937573446720379412026446705405170819273072539979612575032949599708216427562763796943773807596240639968629614253806193632568771052954432528513122460482121877021559644456621596743595902830576473941675028511859577311694113188796891028241701477432837709711459143640083310007495333437462055601038348294538967790612245971104066011539058223200907494567664231786459287056095515443345745226932516667500739125782026225814141868584055835449524099039461042125590709043373622400533463670378497585006862369678105581315239424484157482751665879659378288167822776295080353160452029821025210008787364667832753938265766598846591878576761673087303012590999378033825279122571940882388536853716586050235655947796906426561446324263828684870365836874520117224351545567742902104546635481233304544050824074299542569001759443129387391269384256866847456126658250254444077951845697566223465779795306480298690665897224499298333156101681818257818635759435135464399608753208762541537437716409604177545025142678524232976426759961248348076864175976778166399118102631543679576895560870639640920229539579043397363876907875274474236302024795596409930902078792646671477453730760567790378896901304197819436195069967471034363772893979569074166813998072399708707007297874563545195702158732382304562836218820452246707846785004630579361539348543062103169573231916611956399364770289155975815265453921328989990898422639239770926775761191604669606869587207522666831186634272664468291352413281745208466511330862808260531512504486756871070109932829466969630488784362717525607349971563461760395396353310505612786105300053494106714999319573050681942822840646420277503921256934483521387159122806935493650652896598314255071613878833816777066064477384534661714485776626651233230597550395860961330183225955279827149243212040784251534261107067425619184594543343388973773423621046725758239277406931115495488429029869470658625992734136197639803231086031529326583010761886248200587852011450619683499909111987127999153781493051283751060404765728305772043426046189294351505957516727791708601407806144637581978032274635230745158884517165188151298031795907320248294564958262175916102286486508428832990039103662676864770223234414932688935423166808162217639890204111112219410538739999594184638935551891128841728911108889479760872278918526619081027268258225609909611904616585855525754361675849685887557836540466519927140153569083284117310373101166366149311291180471679980040205171098271922735843604013268864497461176634207191733037498472949508380331909289326098361198045263259810563438989863469306920216082973535899774495697760908529882043517632580896909919105983218757398387639039066183949431421961829166926323412321275248941728892266082773607327613332377318748938038085663564037373319919168175582109810222276075642829020779981182467248207298658433763384908263108792717866642723548307576466073998173986389486388277819042423829953801005966726147212049347805194661149543067267135348912047670523987951646460658224571430163852483494968666448043367360525019366036646366399579590640452301578965858540183592064604393321441694648906067939619783088085833617774594988134410510519320502960547673375764652537671603586189979199291892432143811046402781225049802228653076582391235903936041656684934144381455044823993165194902865320016327253403862908949485547472247366616760298753206401839500718938777344811987263767555671291320159835041316523368191673502385208198039615379953032889656202724896799401323862617964541921397657823612642434588645054420771749207138036929310512454194481455939220880358436218193247179819259624650561607015550418165075282872945854871364610111195428898584349146217113653755001117996904682865214361404328847352325838862034527272688139031953257181556228014876136457129675508216538998067875897026354576280290426469023359762360846317768590391540911688360604937539640381323003433483830694847241507643048554355016189916322004069475481209956575803290615459393683491175770866889047031257995985941305675547338606920467532085748560314462923144490179860877680362931449791041885617412223657546982518961120745034854308155465946778122912645602374638202785782309991913043572655991913373516856463583638140721847551026582274211033087854832866557295610918309766993712569712729926522700420256948633423690443163564486061871269784061545829257850467059331662880591278038715653621678192272200923779366489281133607447804603380018919208022319625576158373126501602580879243630935623512543849882814492675924839222915549402880825617607201416053624787906858632753201634791701415164999438659154420744648078427487108518128574598776644610388075360593727992729255859122761639234464608722023993406386093436841974754461371778102504051572332589709794386775747147283704466252909990893428579387362877431290848531533446135400787079720210799656320979842885733585231953483545060096658425423275456998839481886865158339807289250803679339552614194495024619393319593869317660459531416657964300375849083601118355744292548958529423861466609291387232865424933551638142462161682140745493832792409984409101292142519740246990733708264757256261485136169937664294575222784144343079594950609050812326651517817375203743605789419802642927989976231311031545974577245631558441546957493081842220663095617534331081489409535292780947362430070498072584119356128589947165784342125484893612798265277016684043230233998378914257291073832222000622151938330455048811197610496191783124336642516684325017192756163110287998209840490961716969964146540542856036852964552379810121479854436397589697342883604889765575718141320453248209413861530999943982432057757041986524931638766459990664520439872878147260589864815533269453536980899063818931486808407894142899889920978860075017728731986362931636771264198014505863312908744740774730096860721660340488487757673835582725231789162506073526560398120405001712205283260581741402288057392314955318940647166765538628712674872113723803985383583241223286738521483174021688112846602344039828674650608975525994777807473481959348719500447270338226152250188930039099795532510924310084358243286963560549658802744011612411999797262236241515307858918430730047713638248093203356034931802379863813703623979327884230745202793424443454350580120500339956344297683225298543891351654724207284485257554668674173755719466192134516170370284694216753278856112459085795180603486391691605309346232003406275403363826924859732323295988199020943509925082321486209332730830464552854713184073076267865526085373135211242917711672817319169712017838974986372576825843190655443928284930760456067201916837994105848900156640370730684494513435107495575176930486806159814408629388829991447121361629218718279703208539345353814753417359477002426007063948153015833407994730409516341222850283100405520508764532398241557451686252299313658671792325635448083059840490141756226615333022308843482936090866977773831025025566308423160648683564339645626642284437137150199617562881788192922642171638247448311827248444756678947016720126513350376895716008741755784957207175605475302364696280161342165020070900893468710018565676151563072919256591332174116009706766599725555259628120500335326656319924105135378110847600846413916598749995306431073103982378983673686271368004702933569344981963716992685967169783532618961568601991464293990222112289055679303771290763977180912483703279053197730515646344822123843661654734366592901383871049128243972459895228971218583558535715864524414551576547717422037895275125645176189726354415420491983473736841391423120889710481100156664669676862361991647893608401434905835259951883922710914522851909153621086202921983861027186782645291816391609151305885156109676223267299887438934969666321011812586120857055077124046823568113898495538025746496444634138348827999865597969178281352191695358243353632868959231300096508810021100720723972323840740040100893493535798195014833516476076328945336900040591721310568019105222648133233177405790043648655067334708884841872363153607638222528055164382424768920294611383600337084746761071242347846644085181287674084794163589879547087418966134785529609068266180840379184024516304338258103344015112417102177762964537620874345109077133563078919058403097277497632617255400256921403106181512974623410627834692172737179186295483965946893093556669294869934079032842860803965156497105524817299833017865207707741039253032753150006206741211599316306819268114256289584944615946238043240388146122007131335604364543282533817172851259860435691356115227709560902979147355154743617591046383434020487859606095356800257046883827242964850092900479425215265590174603559753384310046200273460471723816737446564591984100608870016714979973802060565885713680100822284452936343537859782104884437220897068020623786777867046017885650752335765618620656113118357114367875249525704960710536246095432186548634963838614860442604639802302562217490471827888563239494576301737657502345536488895692565205974918722126999860325303835221404712421132331072560850898731895848738661995734513942163732121186006741539412333072542505390810484777211187588080871459104767490008685335897888784691586694690034427719917896047061195521197692040896704627356452711849168919605381644081737410447123364214315190352578839471854797738811651723902487532644263430720663454220507691373521930071569801160383307135522693410455930031460308511673294827638726695385237200640337787530536941941003181636002957889855948062557640750020609477457315641092100152362371661375740150047361895469898332405461382315411718554575762159566097984611908746624734837112429480141446193170140933377673186872416854277698975648928079899697161805118421908132792342847527677643837154019685650539357132741028726596252382547404477677284670615522594228960692432864986687803477672554012174199657073630928488751834152032511134121646989193037835448343405134777712963099699101371498553263368584425990636829960748777450214498504782051016150530206534197326861233686470071287004878092635627434476003769554602062773804566877119362939841828655331128968322427653317571235168035294289525335446548461768541741474218708257473428876922793915607902628982918747751979600849873180958488788007460807775246162135787209091881943845518638618890193354429759885672974128440087724386811235656459896119253998592052347935841004150788675390437766109802976129736614812745574110030193504728358856869399446603525547615486698499042517086736821637407610387328182404541117989951586081095446802917668000534213923705215697496015510819111120295224762877125357169199932891215518906112653152025099935270727638279247149592752108331852029335916630503204441210788795951178393041116216509309060895981547803647064139336224606863789842667548755570138299028053591717521654700210033088827482865916793145998009026427778541630261485227159017056050468475945874219046366668619927336871670731668582256070487653719852874208671423574420804753550479840876734530825554568620697855353064754971521638055101320424853206212572587804511144130948146912931543343007769818035871173336433172901578534622112109501754492078311582722121038169451036547954901072406474840958917412794965893819614627674715882536098424255972891295855019713393613530097448540295460591700429412055485292397665407652048329551063393430362533625419052742432184907000700351101231386172516105589664986703542877245945253201639542912241015272081073557960883752996310859370278749383940361033492925684596445681812883806330955176568020515490817448337541422854186323737931418224924367550430008302004894008607188154233192706566190674614714916503718381239013334587830579014723555369987272437494594183338939712258583516469711500877125755777185110205263378515406616296782496812704567224046012885059247312069389074765234577136659854259888430582087517308907767264581702640481830140530888294959841540993924270313397581205864748004926623218598866821329179283543323564494770130662788236204358636027734382399735137047359844714176046238854296151231515696186046237267780127441526761479455964644625571707280228835004277282226151510987573857946004791539092684590021248548561861252786345032679624925391335735128309741668520107142653681467434195997694187135164274695701228426035900662958509494256446645689211608102918653866945179130033866430144005940395782399898910327399934932572500513483388785970587351560244498961096070419933545400394704006833497057800418248253726729297740469122263841869884760340267565537408293942346265951166586415882465330805751406458255121276127324033183267430741933632839862442602070020703083836459790560650838430120468537574085661536484910614565240387033671131926692626554295378008539365783279867545392932925925137580656158229026817571507416210503793001239562903021981436067752725522002259589201513443508924144381362820287517258924979574010179006084523331080242193665948443397972280694479197646287816859827950238423055146690184391961659137210742319501842753259065641781123655990444899139552866689032590382916294270748544126158047498004587430418069412121283151117816834134540002762219178216759149069076136399042125945401035003302197909350764268288361459303086738017409982247823165469013490142121980504387500969536230345952722805742768209499919952387847375943823601073643045606778818189222720630290562803257876992455262936536325842336981676779202465392341760719935267268354882038575451042152527588949582535749308894553812425656741846798444840426113513822640960457409494438211757480289377453203755972785440996702977977036313860983125206360377887420909337309050758812640363652972233630059408649382396868943302679055722305023769727389097566669542659869479737723177988456258558117463749289301670668112040973479950384723008190183814384562156321864694254020666482582762868219749544093216282438973340647665505225397840783267690500248024444659942543835755046167306592863155479300954480470576585050023394764656576871821957935269176490621653523959938025446887831423787992487454412527799848877612495720295819699427613974039350168194721795042890190028545497136160157806973523724427020204712683898441416877691898911526371920436766513792467852280350432900337899078724363491071785838108373235574042621795025901475263722400598584106047301569309837902958788598400434719170144144899905302472119048398308198477567277974535602068094736001918049495557076955684216641195635413786268134204230077592436488942027919269504858077169042828028798416231951635117531427092495330467218621729135614633173005108267737785000868530322029553265733909157531436197901710057624339282614358150502521298648269579655767562799789749059087711516792282397230037693087990311679081338535725521975091538904808813282140749557242274303191323742373452100472496408318686065454952360192049650462566126499985529574175266892862799596416392608823480248969348692615881465761875060036889084466737324623212183197271164579633229816131843403656915520229106526395560538089317195967055829205079501843297506726064581942189215497824248789879258149428421218771544541669380203577888977545780119936125849467605970607322210797110218711467743067395309993917539793499347194831519594361437139339720514706708142132300336960655335456123857560829727828031134088765348011275937572100286254160954978912428526847154848310360304961068151485495199528759681787764433401179460595888649399544848270122160874582442605905176402171081159153198743849006142875989481176971796435535944288193057593706414959881544752747986748444069855210897561110572347071186936862598366328198990461101919935563153785052461866168318035272383969470351899702441399321590835858666369094473353175249056529430999211571874583458215458673982432287360029180595629997974568123581086901778032803762646699994990677132005490117575673624971555567008530932212980369835758217681059699720889601858028329454125696148937063522014772370635792544898207999617120405802224413467539018301739015273297399589224304477850011433900036296167537548748055778104583273658574263604884432007544214982197318980673665568907406356105731864867430078576007402915162401796747050605462378667096717906000609626232697305244258550100402220933508307932888598684386379403866120761947750914005517399733462680234737341414548538971416526464628698662088732084663614770832540976971224049389014547582595039342760676048762595097241567442713067666739799958193190172483124975279454531040967464809007682206532159049815576013959469737578146835816009081627548161162454272890345895365521061373124961843846776969698543499068993647625074649732677627029909388092270824051578625369247610903657173074229683376364068120146895886209767997999547389983150094274866678601901713212493627785530459701466759630740580311220528216387049324332071278043612194087201378915350362895514986690260004443745987781651156461829184891723376177152660434129957367719810757155759127050218852368815126950632868471989617802160222058013017991157456110292382776087907220974621316240633461485922318182988424257257443695133125211264931822199829696151133597200160085246588024851343689709102882573460337209704179844914631322729012012378845002671474740469279687688761224748183879179480717395325826076906783636846911429237132634793014499216278075165063168284920411212859606318580751703480277947844402857444673977678772375842765906932095938177471411623652337962022111171693458683545181117889604276560391869253755034149965230560804056240804485244405934617191368706355412700257537041700192779581672834866743748049923671217285356625393222278405807263852167190593550307333693759784050468380734157557966954608014429222462278398695430701538571342255069831848084199298656225143348265979789674257208895979272632735794765425662910901538340454636907321116789604179816288300250047951566175858400600261198225074884460032675471127411882105636316419853952269197663242248694703549599882287112007387070417992097157453497857669695452824179712179165940296854755664212806895357410901502650342020143454300692620341444178733548604651845435206617306065417947995079172804666731539270832546370536109377345204073068936207982992062057096173428179290749743803307270273436850016233969254240362989348496932255033276743170461796320254948843254927227884769373271489729450638591725878024154222957539929480916184669342140892407573694765044019830017299033610374786815005427433870907827884580238171081015814033277703054155351910056890787475097487163450240940904103833213318270702092676119285804041098448116226061228042537827204495189446049681658474932709737081440233372116817391312760720744170234260846672330206656382513506719429252973612336263348216966310231197176869022137791205928334868511193368344240440800363301496565664775767951226419342144967338438021046338726000922785487034957083823025644850712451060868112069081672741258159685580466501123937760256668679282208152388511352599938508650894242960851157319173239310846876127350786818199470006259615769566915305984052873848902718181885555234998876250203480165141087668108962768426004181307683034432886313663011338937579988649247518042023583087692283073564946911801999050174391713239048479427145122206225397769084731973991354749733937829237518404886960466133702154890391621661896673356510652684865957449555463656509625579359929021616319723459561221539176755334357312579998137781537603448054849228045605116260740074129291278778681917838321745258377404207298407160379432431223740474082663109212023630343021341437143245857946574001367158254751301490816850925963479417238565737460054069749291527497281777999931998464071833776849399426996991216396675219702220274412467214165543006001247645054501575771175706012753666077919204012349072884513001645094399009071111220908023768664989813929683252467963012419720902536245327946122453318034145773212720283657912397503537576522836447709492376573106544862802650811161442573494784100564209555283429576234019441080675951354765816422131960628049967801558965015641954864073050778919371303446795016382991645780851960156365978741810477462452539363048402500627972682168609013152562757447888644788194959231833757388846441894699892067343786400824894476199951630795388915621084953753084593319050116895642846226996354107939305730088063213477049969516242679931666219805796961724715182916308490068412660422193549363892701536951288097175621572860151239356404260753189787202391283184430107063611638350401750586269148535619348901427134542789068141650537585389813878961994898844828980813003538999491224293421228150542569862698244654790409792171722150870805416895482796562744740861904494100521465916179251953230442916488595674158864464573424818549121765131865788343646921290084032632014740084865656299435390644061990147428425797076883203622229523590388185573709316153354299204941292266851618231485820726095921316384935369935127362473351480797557200580712219555707074384919013248955373842137266219960511164878572182748602457283662187322397032367193543010280114585267698766493829363518019757952025004765069100195101286513975569958728722523038291016973576605811309128628953797695885361374406761407329742853819903566896140247713908614508559321260363336519997735967819342653711273042430304071720836723160071861534321552255414485209868429554759853625261770996954718209186122485650728345526932290473393283291029422675236654173591171123505030961861941903802968418189383908052836563014543317375938414325363096121887825248354502101691149282742911892519982455588563693012459159231780730394260958856640778995833979112728725497188610829103545653515297405810663799524938636294620491084312165959439377180630275559904413890644188503486836366207242500910963795901827979088964541440065604318853962121808885168530971433896831446604188346587498057320793765362743152151234585920621970539077224897680948710745079863257749021775249813235673732343341115766742009804609744451266457133978993035272852198339389793951115365037754191368648860509855334335619594422639132971388656966871277490551040861179466472064669785658532860556499553308785556411426446399849520905235084025360872306635207926701538390916836792226975705067369305376803003527072469313868437827262966244885897398434689272291891693184298076475672000236121362361403549505724588156250121446339946902148918399938840633600647769357730067686361872537167223841636012314628884565882225687326419179557601994934935650914017515421498343136200408290082879083137025778950973090294611146167136190653023524546563751400367013178380752136050144557999367783875335131638662782653204117890762832018396562052645349020945822701934356766860273130982603782651421228013720378000658302707612463185032655814276602307354950570535552724488490491099334676536013966017154671702479506774563855316272497786587378469771742917080647781152954002647691411761153668805598277046345291155606168209650488910837258884760057419966600723383251395195299076745693600300180588368052858753490453109297996235486875926949073380442708795597096470902051677469713793340707890478764523023563722430233202367242186042311018944113880354305009946951307190757973464367856610654232937964123037666868353114511535794726396942531745903686860852550216086494366109895191121691024853307810209363320838825908048854494103969642294810833513976035107842649411890515052562590984712330302798720902917833158331048345493690356984095001028763552377667076539210275164483674367150601349306538051674647374929229147312610323295988923351126988652709053920683249131273621616389432676323938852635280043116258356983640657529359861588763019141319417955201636104665613108481454845024455182143328326232840895926070771652519626326712389540546310144157540884900634667090155082243766223223726058281473308331158990327657821744510051726690572018882784829065131549420379498446512940513720859295086705728262756293765355075897644083920572163582710057121083997251957620712468955693367543256541008015223400354226426519632376467146307293548248552079638854892429594281332650811410209879559066995455974181423666187175799662599405078281114780317959489781686032628906082830908395151043688771866649353094134512800511468092514720415070969036914283426214865758293951044447111743313017537453444646417606615732741049961290517258235267225397440645789847194730668768853644213274082539717382436644856794081835355358241010586458850564071397872712896402001508384136872639275809156994469676009626180329144401270832653720410731301533578069153819291614331760026575805864873756750164937420505782790265218078363561824192625373441901291426971371998019709768730225163001634154816185475139020766209079053109389293059843222816931929533369239505419458954880490847069874231649269964294192596898748547861495033431696329177705285067965882414675926393397618307630818491341738037242929618383500501171957119040965329417277527698229039462126666927840246897173210657547170915302083885598614301059236710700958618048232081960352695802789830746204686241808815465168773771631043146401934431760671186378529711336345756192807517195327300177007948892389909251175933291748249982784922897344725402847775177413796179135682289272598342945259699973879154729030450268216856868600477455246085056994538290629128328908031693535792742232657603375642736795112293241671459647026748271315254717809477466917983502562707847125388134112632537625100124310303781766449502961788730426459301679695073036764296795831801125720278406729875947675074722387856268105699303410119448412837012968550983441579964898744643861742295314162314295988705821338043322192671234731457639019409953788668497414456475634258158057182051404511192528788436249994619654480632146772182244985943421617555122149638229313149116774228680565701675715157660104841413043822318786338495926114022776552540565443432748683929949369889157127011546468859208413963668827233225085383389682583374976181683238956725309410961567947107323548291765873564275816388341886776886706950871942659468754064435836737074859029024213702323806699077136836750961517865244946942114915689736854290995125255752648786359834263848242738115896438545853697628150858654495392960073805524212927808968138361401812515470904331150159535325965040707172496054661982248230696126877108383254719659015909455172171522996932140457274495127666931417188249955214218101623884689829692828392919205292723132191945090752988579131988176584111189736391543196606687056209648071204458057171345459997450534403259118869339748148660670817948832231022244494841695296732901379418536309166708492717562076973080627974418734614581251592734988406352649731956740019017040961940175178552255550433453656559031541020188953089136293632138263440310457212243899366339979543620544444519209126965614579812689434627667394859796179830725161417709102451581212668954252972770430759326777540407578618543967185844500606911819331369348242220548805527535474728197776843661007110914040239825765179709259864993130650960972738755378730136463542489326293275950575198674240988141643003931098787367148320381300524300390468897994209175119515996756191104446708823220478413201075629056497669351221567483212309793742321142608232441093318668107716517198833047059946463224633576057177037420672952892138698028213924950577418746264229628692004778078853371383462923297100784829575210518446601602494742928549215710464560233514432664993170965920547499093901044103019237617042976895582236421017067999503135455641935910398725050607268174315418968037414614229562349054534901363691151371839729427752364312933793847981290098160019132208682322257692608761391514199578048712447415316521260796073890968223298788066017895972433029909410241835246150770396095328492727604926188527737953523348308476215825000651614649776524839033679717984736077520939481392644020456451257074014027245467180793063096649456820451674813227780908999138713782050464720855940889031548203632951197673979174877153519284689332633741648803495737171917293923586549503496151577688512806852320270710550086619263686682921020710531841666070419946656622912951815499800784311904174960939711016869841566900511113470462355269007848220436943923837864582651291325703827623715076715781121155336973690465652066695521346493046068283999407662401608904411217583924661290435606684686807366922328423384002497385578606797860271530470277827862815075610839745910512175145503567336939151006158664193630224082858585607258851209886663849760308274557260312160824824430357902906990302918010282494557416545692281439154760338379380662257686324672115920287869256962123101641148877856381435375857756604255859550193163182983282853536479897966127622055561401451156234554645160584615514165727435544918136710182537731223506773892110396431658295710298108533263829893264993701555034614027839728407769275830568943632509952312318261517085305162735350956057122257214676097863720289705457513532933185413868184167066647099222789308133223011623297939948707289542604512231419290310654226022407873190029371288694142168908214044068494283923516616149303083703947285412742697575334699091888578303242339552846752017512194340525637249870623399828562533316825216933584295529525449428712020546611393996870439187856906500339239296800163768349179983850933067327184405944934840275949881599731683759836101738117016716782622069068414712302094051379838175331356638021539354825937618148995127965335873428492677696639688339350401212277706967513754413395511986760063918268362999314331603560814507685976647934862764243550355269285391047057642476104466067251633535824869930975386262539632810038319210968827384739287581026709775998543762674388591157588938125478394210450049574467522118574758872112371928302145693187551297127750012888497468700148314331418266911431986893942658529751018382430467753200379636158303477843143292468425276117298079274156528885535985938594192008687220173359082422993807512693506683158764716558230267661892957298196966203626271993021243301976092743629802792056594040582292711900438929080187628052464977508427275157823697317421371734653824373201853345530540307290292350470999104390763420419511176277914743008074181960303606847982936417535125435342888093227283601620329358061521280683533580182183161501333650322692449560553733024560273234390593544027356297773688234091742639469505976717038402387654867525430064995846686501151293626506737481864397888398663610492669899207187942589573853899204338460824656206782844337081987355030954074382892626969435207705146571710816316574910021326255837902610622821128864318531294962740242051399701216398158737283956854386239687919645706901306520978092187819977307790904858887671584424251511225857523677747449757809697412892067108958995195540915844679243938690971012764469714667051034949691375765699910570160024655952713909756083863654473186043001243225533179370896409292954212374175096618732237342453012352638795808546176091964635304060351655254770002919635935989078672793960844667305327290148257418066333079479024965774959802901574060914920407403239354629813068024628488803902940088070845908066895445505396452150449418346451330008889466572535352566403523682066278750220471116578573919909585935402627045228454308541253376233872570521818447938845834029875519160052554554676307840973006792488081225574372583650139197069233591027885229010280295487382795330835577880611700970072874270744448784247286166740560291656452411993763719510516304876283655888272984629837386395280049441884978551009834440317766810122686264783936351731103263734074963895812306383353097592007357641160965110759198223127942892491810947755776602950517794880887804121757957595775529852612247858123114794299611337915561120245871074846594688537200794212567281030607347333057157427997679589996487549868658406978806515860376050758933842334693486124990147108845252747587355692938135270132629471042014075091558860447091776981582194414347288475055712960449381331277528488428689511684620817482494239310130587102625692878015819932202723496808203531867234519890367828309387330396097520592708480707032742756987534433522425436697658338555346874609385024304854614870663529598555442996687748891815186483096324625314825522328660371181637294349786688627428341616503961998382368345762621534706699493578553140444362350684761108783411313119557167636037871410300853769083939126218121964894035581782901534148603837025931818112475951660021140344583538713671809333426961458891610402673209548968711301900230077690996657245783937865056790104879947928527433424077596941602307965706290336089329447975451618378783798037059467848307941317718122021829537550152813110383385875816102569198917563937396580874704290787279391041017937639155124214744380178718240808212379654334821564780420690226498889880850794372414187362241853006850748145358567018520508013144345440989694667569766089363433315590621433187595138873508050514245668994966759982009274709681435745876635411036345443251915879868006104764168774796058116465580744102752597709141311252823331895947126632556320561753855385143933075153338429509554932971637663174377049937257471794252301790388753834676418466308438125582997092806912842049747060796358806922766420412460972329497181263660642126148224367060590381858800505666418607662809401000739398993752596048168680394791299002897263888376681084196216343196105703808462234159504718675205541929305451938011698548055440017639968789351367956603242946363924308890463001558729581279243566836935623329813371868394973415374330865483016415126476865340529435193125555628195002940091616710012281762343615464444999850139915989131360754771711138815629884974402387790659225336391162255992557215039250593495564627307600327412501235939103696443680315906623459737363688849158616034186586755444653682141302550541594654657260045735955899654012385072837727373323736228649616994662501449202091629646187062277355688614651429069610513736926797013551904387760706024527827290291676920178535759663527303753411285472681016406183053511115141361794185831651404133430183882926220185331575536781699879104557894443538214028366418728950573864584894872404623337948132513242815340019699943356937166698366371652264189149650121502873411768861175292796324335061832344306440075494437368240495100012853184727465495548123944638510142497741417798858768250152139215186020626298712375160734780544309053800623687850851581865662137828990741062372484597362058759882978168082379451043118549178911919898477414767731905838281929465404068360455270500781671161189917899410200188472085272384841110501089003164865458103614936001514570976653566714508723557451914573241785255266820886526001142974365904850129243643316400284807659362728002262853125544932226691661936526250374426319442955129888608450638884983093223143560770514320448579007439130283488463489799892359133707271762384551936188601122021929936845493851587244991118643464145770268227451142737450517363064810116595350334892670814276850227113179970683848794328962853565240569615252458245355158754501081154277342206090594759263568696556285628029554065704293102818264005586968277831923812393469871245496806997441553572967874837209258530153613894285850422920389943291098229180894688761968007091026428310990016038784124996962491549404354125125573526367407863171755133907021081969346963759699278730123718467768733022846635631402159710259733693631295212575876086903693384389737423369379256561418484975545678213069046921738987438589258708300364252194737676679062979779715295971129650036595116857764599380554148939571762750536812078430917137521827557309299291242512348558310276068149959979226021317263560163771266757443627878174177714081143070622732480483402843708313918501092495808113917377415053253006035294451976490278002783491325792594547779673692698215262724463371337094453154134001211189052012441450537922390155209984716249014351547770602903164508952936220470166596967314945038917636812486351180330900230911767423057428074460283915333278498344833704798226731407023945062032622852593774338018001859992755909963451277522976394212710348106948690796918507739206276848164803628037719278334647492405677098917955631722713919529290827924392720091935658324114956367785066969080632738494990343949901913041000433571961763656965273682815647279935743316555718735002956965541304070716185654609593837038090272437108854258401936317839347504367904289498728081650092594344034755950852957743517504929789917710135717184211047332050674138651824912716853248772209008812598617135052753837296992427592036037742156354564763264838137782382592164783369515102863590659872462555360418974599562086278000108928393683801993084269423918082659459352553056166458536164449193091723643403856535195980453510726962282938982647751274126497032251011874784901023653862840109253279612727070781362540290308399126025955629836909412044525477172545791776123069658183405825300984039287960446858727324070367886852348708046639980981291849597330998361274329017800604047469436001579144287653047946917397801851428158699269327381217471809548015053444238860910305710898402614207386750659481692522048752019166062054080829838761821008047589440388968829026210805562019397342252160375965444441016005127408033282667767103680062578392912955778509760540206298361597213267022521860958123480664081425708903557224482795230877757309927530861545920573399842472503319263481407023611234943557151553656019238594820802437067006781593179172556679623511004344874163174371757733069355587032790938017523958925009671266274775008968715594079098018819740421415205191836924155513839787158619379146513378070072124383744294095386308490803675675043497606992118137852540172452685507645483891558534520742148128938966579593090765276492421286077793834813737048766400938687518592383308048284484321510784631631541971842045384660555506187263820588767762681229089591227502054737581603695787498339746990729318764438094459219500611697984223970140583788308201373854056136657726135622186664844177554925536556078974209666609323293252468804250832747864083555368682509031262552751323582531860050585029438205307245461750920738440429455492719899191470828343000781181567672829321010930960777915121342599147661850726829520673502141550504797323011066241311302172639982786398298182423130200260062981683186078740842615508854921294378956999782231072027756891108592950682322286734074584202136215532990733174116439233303980639685966695787465189141002031737974255991336828949001823211226013145214469975142688886096044140912246614817963044031057734497294094441041679789708090153627682803720301373444450323871764359166095030981749800247704016916296775570849588036147100573287306773640618887047869938923944284835335767673571923612000284379179239134752897942705946178660488283768216682344423747207514532839736904143798351240446032493785523600279005283253654716854626381446658662928977686832104988769340372595144105347365530590671558555859459168293136272540368578033261772361581432779872927366639703904989341890244793443423338363745459851708710506180844180935403792948702912210767394291301844912633533536219120744709730188991753322589327856924670120305286213593138952813182611208432786619236713445722410804011547177170649012025116326825405520291274512292988627856477236121653937001803592906697189229946267709275966345236095221811924907939023448680308230943512543745686840449259484013902421876457706848535398708804750437125604248627114124731236267268603702817633691952617361206292039818983684117357064323319425413263856835031134774975278492994275488083764279612171813178986935455963749828855189544301275859120657516649195457564820423852614041987270528784076566535949477963557598733962974957803149272385451750163184193982304601349817666314946167027605774900905515933272995457316936792638058587996852841765382763031188213760551361379781625881912445290433680741138696567497325305288429722408811335072750368313444416110233534900807543778055476456595355640141263636421374288725330801650649233022192076351987905582711621378113419465139540604990495714835784447742414669330711940298087222132334931642741646914371553346625269932233051935623710803598992421626115343539436679998506537941478071143380111930641807915193913964334210335943574745703608309057194200281359805732935109430002458929864463186667411069343825203931520422614245287881568864446747361381723737111746589674262245958714614549547454829886648869706041411975135107363246854567425775448383229811886964891568020721394337735239741002245835186210815512274756998442114870988336976926292507161195124362294288930181664397244086711190408578808721111340208799058969198692345409029474166654812303135845782554321289890323422162140665077942729790208631141047436736100271550961298806123487438422919795390840720338669883088740391971685587130009248495336781400495953064438869736737430088591924985046034654929793958377175294009358623349302467417391310619799317048382895784257812238707357498520586840292747779019625485332892216770138585016620718695189168467903316567668205141773242094069701405841192289455302037505837513081088818519244325106715467867040963589196979131397784524321364328200485995937171889406072641427048763788717673654581962474938682608986991652878121263162481115155943680081005714495338685116596546544319810586823130968611447696569028648356698537158383499829696394603654992494998221742727492002047097723193643354701720814046700873335846220665532223767519700693231583878350189058304225240413401409522549856628103712268213309490229724449286753091108968652370769257416925005471162780850169148653089539256167098237577756105852448005955275808208928273258970501664866855237496184588548572234398869908988422155682560797602161260290305983654930496750935989621674898621191606617282778328320118811157633166275926244884561239230227416361518874372348056884312446212476284755272134382172947458149109573735929255280954751166658130461064212400530018386537936525392341797737334456138298447489914748799935098385206929049885939887068651253478035351241578983795317674138513483832539288067745332299121271465036353213412253067169933129904390475090931535778137424485898792786996754249803427500159464785385301201304866219798816667345203097981891549720361817029440849426651241789165185422655311742601394900755702650358709423261451195320665010557717288054832044443302782833931371537221606808002926614440475588285559021803636607985146655507452054856545324527758011433491458357623214335510605881314796892653732298319202607732702922751299983622530673344818251707301095896613276672353996068559037219775849871344079728123771678339885606610923809869376054308878969037843656135154470852889151748533968415541703105629183683801987470447611371815677514796212725079892325994565697051962907896248814002033785330280050244545921416460286059730231181813321906581548048237345011255150090529091915614725550024197682903525188200022924045549044508149861070288506290308496269431860027783276195961262123418827726479877921843697348338035421999497187310235526019449276268013331754649295633162928476608797975986518167460020821728024180711489017564606201355928783887413499309314539036062055231474852307488061576396315166111669745636376437797869854817906584317928055484437338343262660353574086026149321351027183760702971990551197185462054105297219459247169628318529044994656521990483658197672474522169403656621359260321385122033795803488969566043237295243658288244336396639749594226650629882329359422795215070954187677295207003509699643643996836267829025413327713193180991230579989634966189048085642339092167249734287859157923487674692479483649233231180327028136045446857361001179301556352015061599436286923378679172950581572786248344406507143161319820890980190952410692778998002197222272497879731757156172979594257951012119793038522426039333501563278506815944242712417748014752800349759166476695755073023539287292741870428630542384472438648104810626824421457312299019503240088422223446556927984727823861985130288053251931914916359349465251651107388809795127979015310670658438089091209257551326664794233932991745540197564116060903860003305205849297011654994456678338870122568334393829503156410672318239904483567282722921286177753416062746817360341185732497803735012048418156255957347141425743178996289146867400232726382742993085834063650169308233511124305862285229284308259783881565368752225425154269220320161355840923623272880785794046987232076721590263083607004216224211840009111300085982591970183681781568860762541648764594681887428881228770089482251179153178118585741459694876088876982272256737920593687090897533970304600110801450318452994708067064527339551343284878448081261689165627941822908624042649745740006157483046290285641977319380490065129484613049187917574306507824149905522784020241071247455998371408830083615096982876660125704197286153147475949151124089984412446334608823863439391647805872327943605514867667289216744772889741998401236055306745094622271984253446120920385247870233179382932274318368315620892253867570692920554958452509138493343682021104445101306344943003711325331200536602117257408966922047313800771262016292451974808764152860806022067575562230421351249535433805287886257785428566514127143859427613112282612566083036001329399024059607135962349850679698430991135467652641838152710296076545050991246560443605068194358316205459021255661487746986854491145766152027455865975685000823890675068362570552183802940763980630853796268959152606630424635986107765900479796342727516793720953294899730929561295042592733254052003638331382648280538007196649601909282449980173933960654065290037093450955063176247728822997059574118981527518647756687267765872090194285518642667170452384834236476150714582030946404253645806107636908204086487927070150301373165447582615504978085679010369326204913058535561422150091044844156507725810911841197844660730345347028488969912492883475567509270375083947820892090291627381300641619833269519328723104221604738839120620841832495134827119004864126559542212777247216085690323462677026835678171274673977993942831745477385495404849745939567905654047017501785724905803634742256972086362189680070306076175464238711371358351478926963879994743519042944389260736795051250230422172414538815829326576179579316656050235930910053843643290526724334733589543003674278553894551396819023749675266169405132806497816183990847099793546048184599634370744059191878191582157850159035451571065974245587015290058056864363873858664555960882066343528473101248919300776755126181139693529612992934917109700589835963921489477656349335443070565066339945327135412320364825282440660949231048202047410761494089553003333092007984188443013517963692373049147212132011228411946557354920383256596993091845520362522536726252573649219501815685645977584909205297628827658462579997454616868372128681354973060302276304210575343896884387517033357492504225502179595739465966840836660386214728728330683025879863340207398883339991207847725890654727320685141438564699758370433444180191020739728080872402228226380568675767188382793948779184934376667280961018184626071499129180243302565914791642868676458777010396802729394677860561349018422906448124501924743425501183552526577098849001529356436798902392810148195938002517538676510196034614484915811635148038008838789228036149740841079502648009681039875491581963729376234322724114260997921464153736029715303707544970120337806122728943635012180085701481485039743734711983297596599300713438833961666552999794960615114118429379707432126178425421667547201953664070880979895548013524511071805291966873290435924057461678587316277840502740379604290614399936086093868792939260116092852781199235569397730107045353211739293677323279163022887211234223867806767105746595314287329026039829821474568612390669298744437497982135619184529179938404949838577723749943069157992940304545379403962602754087188349602839794280207513905870454254314882228309396844576204598448072888888585536505877461327642194381236909398044938215800666295936060061271745329846439290195104497247548626188130646344931611379289964009159716061036261333897346883087127777725496543220427757413034332360509997452368184838074127830637166991327619691883458545512051196179215484651792822111127424093196616755170921694032188005937416928393189543677779202827527935366551012947790139624755730536554776408516654084890724712917948393368829793508665828192674767293669199835073870119134597767169989362843564171527756938742888125823925851169195530273104419638182512773825643820666278767263825974643140343530629438989762231313932334739599864545335703436838679751581943675328882980816364409630739211353774258836366995946346184475852519259691917844452275498090201790075045093068441073573078467525431296621300901020849867207669519814214468504055403556181063666364166373195825231478892989257933587404587917449502049981911355704001213899476773087690691085979956148048569274616905507522895569854419739415179743064399291120973445901545382093801049967849150370582854763972944466866007885197065103333122150270938070042379736260003460086125997014525988646886236492943586233723248282201241437241734555541997479513783743211893709039409689124992285080424091405304001268298395405451455159118931643006368377595267333089492501665686618313694483696154352185876363162654417857390374897531521968180390247208806037942143826237544435217283178707912936786476037495466857232817714759162607130776761903623338726084331482539763100261098185851053997631818592574279749242483862925790400007981421723870222839190084381739851267399923959841593223074633479996878623996239335936280206240726275144709737963605549101933983855752068083928698071353403382572444126257330615577522717829200922782412991287736520026955473776783898412340131337919072081303061865691114145189349573691166279339499590061021387724541604220471938633948459797724823459337029483299630762004746574033328025492149876407893555787804956320192329470259600092854551475144399048340726085293150703007605532394959908699769935181658593423293514665850910005139393273965348816033523139403493183929684099402432247255248682343942033573463440718694270786735331251719982011398855899020116335869815891762556080921349715909599268976292965513566942444861057449091285794837105205265021279215057058158716535885859976735242528896626859142184021570827251420851567866441476071509494473074970729680860222361423764365054244354865088434793280795733380673598133981817951329657772081050982867035759512299958030939304440206752101724186031019975929364002492762193903855861137291529006455067603849546225027325934654348689638595937281171053511083827167773408436339164815770844829530822484449845523368339600745381850184780046087333891212366475250480391749411070665876257026322916780858725831405340049835108592647660521792071762957498414273933396042637347408764380443587369006116000245341329232782141463405643568597113431775657028990048917066676183452583160610225047972599544140551238769525565397500651646673216072759248204792946075436975042309318242825083264834735351244320831723352528720440241238164173325586692534050123315984010332627266008073239483334504380591690724577724353289323855301041742444294621158497073643157275054089060777515859614111862771279050066944141586497389950550854247044680063889640598608390852292256791478312924019680916165003932987634427002515808146833068011473737565792246841126012519361470843697525272321888341366680636368724522434261712595928285296364609652497835635764631831077886133168806389893928196709868739568564157446837970158741454912416077576738810566908345712006146050864505007281449832628280802203010679008671765416779603496568247541215335193911241790986489925416200742063202146792000131773022810379012706045801616331623399718846745331292543520518118851772180173489485307016320954948557982963866132335297896602516965823862299769717639891443157856913277538129053121881900365039272613805487697129091661159311895248160400856667202271820754683072443296416585431586631106441064270215415845374032552296398040500123021004195048098257098162788917540401586259726755847301726872079191251888918375834376961627378433585155373960911147866888995737756631878025762453362057852029649074872920497692238979758462598991975469167385444284494283012385772496478547134664558565955967033943534116262216011368610250584422574452265555158547703324595079294715278936520996083498392002543454021792646093660507172595975466297349391849776378222468193405530929695625517948734444046033242120926070913342553341770530068126438545804764869891508148638125035225027118252811736100112564989553822635849068688720079826897500363421804243746008305223589256386680000975290145972688559827162168960731153258291091821854918218486341846695464962581345518974414576896988108734713041755118430254212936618553858917358960190546860956143895648815992463981699341443376152717091365350069115976889516639245251143753738536186038555667478930022659597644087568619933564650432978669336259412523382625222864973379269193527937363822467596752272896215708070747507754391851336735327804353055674119566031380166647511813260345440803926009864035842339236987187511305551426942841765105594950073699299411411401653834353750889573943532304260707318847872214310575678592207106141404479441294902493109545270521249907167861666373921597720177701675114671531937111891838082478454139963978362707959995190654511322652452087512717112820476712072789670665166212871737147118756160219866610779387642422891635508365932257599474457449924537536906810021148539035099394841946262815846489204838306620742717477259087060744725177086711650053119239487859784881693981329226430268518723936168501270775201437351863746596552866199608950359067838118183316321819177375524159757698193392318399314561417286219734767177967849978028015009057009171908570900847832813557389680595725221867036312499782531773961511943835041190061269416348215471357077647055363877952734758399303365050889954935123649844012396213576691579840248971916774580660910414428118496244105447548024977450054824524959238258343950243019417103962853702992447989166543247249338598274651977459630847437026437982633953327869010111388498917897051302707317744400914329333929983302657929964598537127779674811703274594999728664914399545032446262148522789954907240751208721510200816191203063228847939038683349912220658398728817263572152925242969371844437290619050917824483870747385301783815878966993885782300802526957408178462880620202119424152533003381267569051680704591643095602050240264843367410633019431777977535438077519656533899157656045133581109212601307956748332050758233088829708672923448469041195296241862013533271008290894095523067948283180160100275618845641722719800211242088289562133001888787650450570640675144847362768778009827184857729444774608702845167488258107999599538672833552777561455947058005477054785920625910825205334391878251940176248264833250126686319525934827651769201120025169243257464446717689632940313210470904344682591802938556615096119704981708482148669334046386618121301181188817264943497461792810374379171036020487526211419910436777431445727148202307594087476473902739890071963049412313141487411493423083830679035274428237558530240560436435277322424309020801258349041698411063248132930103634769193785274136878392588610346917118878643876687899078323219553087456001531336260468455184178454911899640041100469831063877815604384045143544684343604813753012698291382027017942208323119972309667150455754039445552239568132399082938982214634801221451977681015587164810220098526952617650760919469878028355937516683172703220432607994109468164908595862949209462185872181311308462524339582214480311931135650319980328059674336400018993603728664645750427867715832856332689637810713037673133663721996212265225342592226265616603798792108055637444739905646899806168635639993834769918394799759091415195018977657414608352071640070128219895099690568695682685253651100202552720511762725807287497498817591009707518024883902896523589435469687981138060217197765158228611518569038284184891150105837563538105880368887997123076318885937702935235048883567454499034777345688488063887474069649457671100134411455397541058351003484569275359871099179679099465007119296031127868682322506688601180969262641962517620793046799686970297421808921487168200106532035943420319088974767161929793830379280576459419339932943256762409576712399013060656471948537774052052218348856383734809000307661745924372441315241913791260864188444768322849275476120270666105104045528645292831784354403746163374258582861886019872055839248825278790403193535944038905823241673250127267401994189196292767320781835897689633051534966406031275857231430873967298247064002783351085388528313445115971841956621680309036335008353094879763461355251804197147906942409779162741312067057305549001976474518947481753881271929778939817121184992844160190337514803615201897481842238899433681759563326974865753866579339897997554697860286837430694421831581674645498581929676748500775685609374619625045374143240303779483769714948185261755930503647103697973107840724575432151536469961550575887205372723185284590287778589084990967573257942344921596274792296583464377996616680267215845435714285224130210677683574658425391801271906484823031109789199381404356830283804101690078288124073750761954159326217131737147300303367113352830649753454059873650946888818980137652339514089979897115136816874102204508240771882998748596200404504310496954962787850743094243121306102310719272758519086759193040855693709206713778363969370417252682954904240460643766065972838319444527743456293168074245936794790901294206946282062938935217471283556609242628896973780490782284380172807396520574188080494447705145762423601974648381567508737061003115276883647357117434010702247473106192185998146313900216374717885159301242175885966179042933137949211107266066653135608354088355059092859996851756253084801040808862637954232590080693220536417848052359776544458884760617926305238769756625708007037399409958620227497936098878715676345788881201100923870971005789342558012358862135251751993643085353800713703283575537126202850167855263746692660453400806887881248624259728302960731438627037360166059881554970395711419231262190951791140248366064976253306205268471559637181670562444573668336033982092470148145801261438424635421021622496888391798333996594260096916401803201492986000711951522014457342901926973149100991655416505127455633174072027790998254129108116338143663437628071527548312030355187671289320294675106547168643640706041723604544447329669938645809061966745199062581516074194080701555662615734522500523435745075407284124401601097561268900823822482898489346750594844023886692539498902966475280367543651639297252781429235293833107587943554288834879008005160812832449795301991561439599565152355376280515162327402798972905263594843311640000566023669010170825322813641491138665804073736328421590890610736867719089033610811986532318073177547871870422829258822264584786800640664761817287919098543020415449155986053374293701020860812889493103420572137968505699654457473308312418618557168810168842658244989581388355473750030768951264252063185159475347648858063946605791097015431270951638484108466581472915288361542111183017464030159606495433000275605635679992950379334389619836747310612037110931498359987042422278727746280236168365862953779233351902980427769318010349408921788663878345028931814915331898287937501364337649993629962481039570336326612633342742050166273732040758769041486584848588496149338169211933318210438465811742158234013884838262066856683632198648479382621432454993590452424007636943653566845436670877155142190627332004949140389740701678901361173761748031775611505385135040450543134472876249422131909803199907714883023362310852228261580259226353673280128650304388046460323967197839750270312411906830857340342505244458593449679570900750230929886326313891078232120702913866327147341255952933132456215265947472967313569693324255924274756391612602366233701132605468983432035867208901342578995672601870016380564729382115154107009167135728799236893417716193703512383024016793605685902057086118291053631803054966970307475246630856569484395602671947903270398632691624530964013981975886890929640546558403960442649225202624863128937630311896495731504393020152972297818290363393506818429260776241355858753540387290816262875550701883599734285698376705106035332719446162264501251224760736154778492974345111176756154289714365899868206005935104639910065739540047959589344437162540681506446375690982713459333314720565376522594457517747886973245546131504367115075231253353101199528132108007787263009913446118128018783222513408343684681126021344890238809611573672495073277649473103308323148435542024868780418880883250590500301138643656894028979405173984474322161312768707459869300787298131229293476295698898965039846599692208513777362027400253447642969913307823107241390363282449745261676987840710103507872911148504910780519690707774490134739441841381442798104930467717407017909733926446243412337618107522145208408860143075680274861751577687384615280648660494162255540629761839836299247214877610034173097568847210117531352818844609427414280320535255808805770988589511640030047980684804025500572770174377788081525311177839686939656454218012246973757367498324300912858113089690093361028203071846057865189516711977410731958607287961679199059577361821793755161999284938160046226858060329325660825962786051340049518705473236877628533947984490435732162872255364247875087363431954436281635500975531068579847069766049570775191962230131537398165190037145983037146870661457454391051334563506508338017745831316300824396299734764633094658580242116304384337000471056814083202140259279702240091250898898007233948212917998699164778430972337906719550966387105690112009922162260327933815750652328921578307204330277244622128702155538189824201434956077943117648243143828731737526430209336482959665698266408879812131984408629411086048095782422038423864047690381253851972547941856609047126949588801666385130636102297594319245978298459532813344373435808356788429897724724232064320681122035174961893168504858668676120898894006731821687482916400967175214491801581449690523636116741616957801365618022580095284044828163678086502022348849659898127145799244987316039467082302685467934140037256599516880799680232649932424583863109994088006964405844057627536438142388758775375686666836182344585695369465911824343818078409732325553425844529757596978395647023139459192697894527846654992131831927895910846273116624446287688348581987555098154858252384098321078237747360714719374360290779380434184256102973853452639049283556933314702739509936439083068259331331825577713191427573997109092087803807562718217502405829784370363945911398479205960812718409093659966225316658369663581769079358341067552602075178725782769633464776685984893412420781809557953762077202622873684155808763182164244043399167621858955179280323149923993238906997159805808622476333015553435409275704073505633151223467553701357474254211632139981503451046319186304360908013244611755271212287839660407808878289081148247684036140616808996714840319443002771766739389901158724016313181476692657832615833585690673338920339971252316697846612174498967641111925530414546859148124743309677437784652818920922637854009252054796931083150192034517983850428554823552257360476486675099605666430541608824517730053723542955525372990361390957610935636530342928743207274467412113910942938004346475135356929416640343394306128023387344629016285800528639684309281691632543650095226541162981724018862345351474893131213397931601806415794808282710001450083978183781219991563209878385932724981313357465281587447837290582446060735200208160196463257616629673159016607828840163334586872064950233485596168108613455521974671991970531744541261015767817236088573813333273316030119492122171876086865457971983783035512930274824009554006793834216532495110016478259035342877054815890977274997043853139991869718666463391845964243073970364828707912993547464079322635182339228605301702954485611898197336922880722570888058886301888168317836599458392669916909580514730850568684198430751756540662057831030404738486291554507681392877999129957590627406528071580756372125424113553130928944235951446016387270197417941446014913634613773691421660526434803534562213704294831233861860846447195230088912688067678748269912011699418492360713244269637013481723760522417738395783088076044847959488920895108324733399496319863208218396913031671790160033298424089903717748876422081296099857257742272582051774826381380712720055008825886494818633188148722224605423143854492133374201543884747188105402758654259729217873974513569409919998765617935922152652138450468965347268023516119646558186827590768649691381662754925761316872330144733539900326245286894272782014515498699019146254476043795039848563077961617206852907050278689086622889709551950821015161095188183222859324853465758410176395088778942777101108831817938391166798122604162389332023174330132446555368791577418205141226643043696789642523442762237736897056642125238389284437189422016912658075143891733113014977023827286167592031526229386394986967188010014537486218219121362962622949075181648908802143497962873573502076641765264074627081032319610924647107625425465017335654151467715487772148248316816575257152304881546676120454234512280976561890422891505131406343384238668024082457057089561240711313604324878883180352546519032283808431137427423937261381503960897470049005451751227627183661929335354272065512840813673001075980865866428928053246679240567143810189181525640265458290886390000506638536531042998417645671485724512687140183838435223664328756420806781528328660653585937613029459219255201931320006127778310066340453810618033650128670283375608744287819302377905733351216920585086522492004132709700019569928906369412922330825310986377133569235378838949560645500518829417418039196205403826563899079865490960878053742081460655629706305715143399666372091601089556949520452183995797291588885598338262336425947384070249352505649235561631848190255109930594288220707555391192365182553229296216171158457311739973878227491778498666053667856290815356934107676523298824907397882185923926705111390558182791613016508680818944103809195919749668154511152194838184665954281464989065561291595403023746200697626929679308659331034379702585746697483515830123997477062803510779307850592848380924869714638664327161900021241136164464828977031877067707530901069662003906452229664115230876658359312085446499973914290663513175608859419824777750870243220528941225967548386022411999307167785070599573115164269237340841412591435789913190806929255551094531961987117136796034211272996247047512886677894509268666144066680687976867426603801706452903162273977544029677047532895721014783649597563876709461102167391351065413978469628860603370326629682459970020627236250792557440660497953794632067741065851934534893704149085430538954907340146296220575427457168368607286079619411414158315791372737364201468424666208828126740842943818052789760617318727031576474989313831280504608138323345803552873890521376623394911772462317614062380033411319792211931464191689708389692462452866700582488007673746568824502479507985225993840589339132227705624841162473102528630596986681042396463935366890537036764998957885581493743708000031704238012487751165069441649695999555408655061015292377801890537053158762745184291677098496515868001599872568695002396429898117779328144883475482490706082279316175980466369995350180028118440675695559740750665798469007803977600562591454507753920179086978865009228352013543181751893132465208845870437801470155543042894312841932623158508916501644471138965761845791201566610036938804471183882995714156561366460959245522131300630366729108128886901980542825101446525959410943519159486700338831594528178748690076355954080068529406886117702954059492289652114465886493972549366898163151244028223809294635071486661582779967376796703030068448194158003238618448524797456763835290376394064622896404576366623517692246167112454347268757020941688068419402949141875936913963237796323955646062097633724884342444261249309968992767068520087218413593493526655794067324014988477590800160516898790640107303708133922792594721428844136208864154931410223009843150455765821611886932018775212126246815576539726821052472171296791515212617987850570661133489721045142800581282322465648155891050752418147120347222565414721069450557605512691588161269810296270283754968867726324881012780959644464589102120770906461679031783293524974953911155505350468016902123675047707294985993757306705961895304880996078191275893608174388695231270451962273623498274669363234779334064035309867065316576337106258975310587140432517136853471240666243803734342841753140760565919631845118259352238550297625226132214641931395161875080576136756755762921423413119608002606057503288204520325976774263576945905111099963191053855916723217635289226506182646233026766414507885438885936314248839947868825790734459091788000633860898730899615120248210097068365029807173960321777943945536490987268392683055398332910466830832225137858411873165101132552516613440150336119961355335247809532993636472862508689104191154447187143230173158585817081366093802767328697684579435875512120999631577647773309787619756812389714864771194293943375712770681803474793090334473989990432903888166505821562408171343115511597568695970209388324685202566272944729054989994533413021953241717158319316341095429373102757023318341311791841333181029539015232245038513759036684283956336115374604219892642267558924195822787992779512277898298139831849659811420226583533566693573777696041135855015534984932014725766354362391108259531353371996743315390236713149589309167408593949656872674730171231834842522378200370206552852609948727142778666419501790408185582209071012392800566689010277340826439953648964098999798014853315207976091962123571391950531066768374866406651262160273951879046105092414182112183559232545325322713941388712847159457085158275547831727935502729706359378409925822958877689477754580102780133559112782359786136762562237444839341809108545805422388275932134752655692971574261216238683821323760204936044441134056549933428029153921884166635081066246293975768832537136441922081516915630581177633532396337301670054501823000976288116016009566212366487077708133078527528875614124463832638894909671419991862813567281903199117579569871105062609653537215393882448516812614869885882321653057799323784629144056723634306286153018747727793546126862327555686211747622577051917187438792263642694793359764833538649906276389224817722780927082833310448371708551503287263074097247914498148558453265236691106832348572435227663414191591615107944759420842374330415971132757556158842219737121894705690922794554059378541939756812808417798005947477063172137585893048198187970016074255432129108689337689310751053901452681199024477149135202680034158917151101978758844524966046762252262202849084183509955085902437442174547903534410363238760483568371133988077945571804554848751698972140789675929235043241834634248080490664908552638644688151839497744850682417746901189458938500450685154896766291177469797858324415814015342250286348159646461066036047566683303873860936338145638564063105492241117587252541525468289219726376943918078191603569460666493108219626825538388149784194895837025173844335107691188153266498096160447839552867564564706770717316512194734184266012806391686842961896568821968942340596591365490344082056510724273845593360196851107586656088544339521845796499855217564511601063974217569246769432631006503848836019273580825663236393275862886786675826710462923858993140960281087124082347046972928700358699310846205831413306642444976493400316527012337190931213370472743210963261357926260834481602701654568304445220576970175358239014647431230876804011659359690526072218443123987221673069568175692816193404902419592291237595246278577933495040813209164580207581360194926224735301276869316630360669261709367984162182801854935161807576481878552277969115544327826628300798324036358139389375229992447237068488361624546531474307158016030002473900127321488096225962028896414459807028168100896503578766869784064198700794511049686892351881393282378435315404141447730470501436052001361221197819927567497588682157387897193876246520446815767290009625511834434929996805147709116434930061903238424558503326855383368055178691972682176658622162462673122769901556118671343613157393110700591674926059758925683792542627033154137362131101296905426375528711749133074443044994461659173508588520051502642580178396313516176586819203717476707907594922680679543695089635487945764383970599561397777513338227040989178495088157661743222684434004998760007588716067533089903557039413140377496825760060468668880918906200881104034381111274082925115220320183459962037249475247808966849504449383171784694449667618657528760274828394503360556006386825202216746442989742542315010944877197425012889647821587165868278826347662523798495325293271833824073620129674234092542411537368454684283682945596185781446175562745272516268249799178305058950355194423403430853382105063067705398643667479364623281965967622194242496438626466516268455998298462351380268323419273275496691741956814953009129426610844707619653010127422598972541692606180738494363298786362394861069974389403848126236125758171043404187928009879445328484718173343070745436426408439532009387489109316397566448780581122179822325893867899899845201750874341597102013409606247165050615203616710867976237639428179003025033516266963916384237852862498983774445699581373679466634282467221975524221276650421761492077204897661009477977061194885863288205696089505079926912446407833126145363718608406635348864209015523801753448967991719553731014620258167635633678568781995824830341076116086158085909198054946030141970423986162051081517017908505478022942297448197328691330056908400111620487429696067378768199717109635930063167589548011276368507651645939268204114259935941986312209060547829232498979274833036921319502515488894130367822763433601225378794034144704105570395525059091849635146227279769665294768341098207555270267529358095862438776455600014223181180946148749571472840045822427412691732946002986251449392225717447775984091684966229832230285063891770348041989974497029186495764791647694925615774818619042969422710721064255477342150420614659032320831062869557835922579370057649716971288571321583301977376211378458109693321311860611557972550612310480562347077456312574342715357016306515462093523937276781811517329977905278444756620017705089142504162525321353740314726141440172833614103349097259942770736542274381181254309631694808563177070772787224099604297263355682519728394617632154481770008293864513457476125811910285653032201135251559607165312501492191822440474123936660259925134327612626533432059796254042279924397642842309739449331120955831111691646065484163482285234930628928632913271848306878495025502737406422844280429074894594574615585728368474914208161983968137093902139554478700072982051517851193543252560474556144986122762754827064657301906952049235366397716054339517246932576427141248631346677037941664144686174311903763213951240195535205835200669631275680511224276749039087341858152600826884510812047880464005862461963715582533903807982755089907284000275783775216359064803532311899315044345631428087591867905379253301384181071214181989567113308667759686403921037409219592030480410567211565886500088897027803842868825878706288476610813142201666849344299862179685035571435034043605618647089461878208719190414568468609521530487210690462124130402396846105400071271418584411385568735197861590197945552503216506922258258389803817434823730597255018333166971303782657111863516693426613390345754128946247287528117146324943429824730906458942149905235991091316151902401718950893260938961179875466620332979863261698494666440908219723325303352309474054115213884052754387903582748080957500138025643328111501881179115903841892303043922315313517220849729938745810375631827954016574977180514869566745402096085281246813303753450047649201149166374999686110847379705176372224089358708215750671465529269355244409839953207228071372655265343916794622292666632293767824216967030867815007323747084033026715858614708849059635775831142813398643140898490153306892771505762570494136178947501923050780053639154195565579910478295969158938333327023656583317253788050545345953626535140752092959441597768259048383287881424719323303166306254432987398037393661641230948171568606745953985337898463753374924276304378505368535184597722767943422172301646822861608679097597997544847932431789753460883951217356748606350450578426004407234702894818242636047779976421992803746479616559158026453445050669338900488421678046069488708921434307385880203454557351541447452897537119562962487223030036741156151064646117156454043750403351588418255668899122049382791414147894591276776223806329855483649519515969666498103160505364322124244245064173941278278722438371484219318453321295962649188931031387079025884848347185357627100810328095232084820942112256316177812463816080604175859303533988136544393855402317905348105109152296820727451524041153733764140519462015043065438126598930305279024756682617894454428608776528392222825067063011827886500661115198185200783592221735784402807051046374410557934132136403656699827373972893354783310220016222256996573360490167799785155971398683912103158814943272894381930462548808487954334592601407585433841896722313975143553754076005490104597978539316748946755937845659089815165334090068856889113359558498007580999966406467276186752923539613144001676748276524288037254231098645184644558366497048818704533208010977981879941027706452400076370482301478795445524871505617813889792950395984296510737052545808006311390240118742469386104966034579264909566956056772274935003349488626562223363957253934414845918527254753792996707728425740215170552728260284441301310110970558621463294332914120710228087133249063097831301159411638142007492728559688809298135187470686948768698875276748575919211491568490018904705127182874905952093510396443627955686748523778449974186808580815946669817075442732067987578949953040548414842882579989164364131404963779062259347958729111153409472538652354294748141936798039662636447709314390271966206281298418547770160799586008873512738449622010041767196773141984300809702178804713124195348892891771291602767105809460840916338011461042932403728724639457258379678079792900245746937118801294575229453857336263242151381145419301961332151033305284674731295569805399505288645351897639414684048637644094332544912744387859627828072946082469777443446125140016986580430285025464822734743763263731854220355018352731788339503385267898095245025609829832991305892969725141046685337251574309273488288521438485900769279268083483377386102157680261117511382139226937417815851441009842871551693791252921223419861445876468405322238995359073846486038297784477542678770778178958201836526407934328822991792059224112097933927164900067847150350923191998274379702470138612824767480674747794689425575142549735678034674184545412896615631384168364492068726247059882556246580890974290604483970129966036340479922038908174047548582375710944339696562486646405878150197981176442630507499106734942667893306322910528239355732815636530177177548755834326093375637049870498008533973799122381620599679684000332625483714645195590152157152587886945871731422405541485645489735638002709556105925179467908353588870747168155366278417689208552047889592844685591962268507338957694389669648153046666910046135576788149326428256548338010745620200441926834014757755675651478487511668750193654807221181051170336276113714679033230405529224083211876964532024155692523608894362536006653220397321410731618298397815265739663935742108742603045920317971753283605869005590749394427876785420788981345277827881659010863474297452023345567697235094517604108115871166246702346116721684035234836883383247152090147992257929589179828687605649204545886214274419930189488802281970505548639790942016279283943694020467769225010357882393110135084138023642028609044730217998256075334153682715153418808144880300129893296138966225267243304086620642936257273987443175054601957807568461535881542256015144547889890730799951996412821948278098942040889084962219787741006389354496060776888120904595933337456837118791403093622531283602862910208797841997169967115393534952544766693342274094063225738944756879961084165064609060321047203268972818279503613846914911033258867083979638691973540167073074704569031617968580399852328842906555635029508616790804132399723664099212550756057078642347967046928819517896701954566157956412420639442758216450309656911301874177357534130319969947698973126712511563913391847271700323151510844893403410297746166029234579199834632669878972508305333837483351100865517637014510851324126220375471769932631123158869880331354318533252741104160306725316267211066596419038155374610742534444609335926980960622890999896515753631126050896047659177506941042710282884270449844162332627303645898298441675845802489939940151170645953481149419757847716985645025069245274933473723698325700887129132992623681281088597802122770937356633774236499827623176896244647222379376279911207618079296158234506289937710558600914096852791632827561753683562564820518965017367049610067761388283178876253253002403986337249749686607990838729341463431433716185491475393456617111298756544741082105381191930639196912027765534940814535045665594949063464330070320209799446426055956336587459883804550983867519725292375601363902225257107382627063774056776222849505587551389825915699944598040126537224997689010719441389715458692016372992464014291197664594824475870104932098147099441112365965683186003896345950976109308652874578399656958127791411117142147719136576964071725229039833870900459827215277438235378311391792084767514320242382185663717933361071378164474148830162613764482453753811476420190672411576783574706374053339770499027416744534535551794744591075178036475878845673861002165330907845246450550670839600956253925582088675352236391738647148224732898347218490431157553079861823893420059473409972701710943589021812020614703060065166364083520321040356109892823027062681102127453588954777542609553039312332859269125519903676644950172618406390155141263082567352007448951727298993691385734693119218733655633711397576635585166914664483267946021104082378685915278794805518909377525935278366110090782372949830360574637644277745092333694179961562347166698845376086286182917669437474933538206199943708692891325763234224020450681440429004410823832012019917282355689416159261373929020457949534384975454239372372291588702582444540945654392959877355704954488920604290019536406944800224574950906023258948239059642646554643419293915213750522155626856643597132315261382407185761734533670085204284561114508786001602995099141083199862632412122689334474459131246959813884198751307705931650030813304956704292467084651021191811963960413848649265005567112286054299028751638416497278237303725751973694414843864546241563818445587656351672622272408216548755584951423829765988434171546718373376372507267868345877428890135819330551580693443912139863981038370245281325302358717005984929379674637019580571724789492328964725359059252853595659500051973939364339773343265789882735830618782449906268528888133418149417916601601733435503255284112866358881419915871962202439046657547097830819162086702702666299185434213474488697778245832718524301332157978856029339443225418488713366280813309463278058040195561147907937438481308173599951806796600776214435062501244995807656515892923089350965093639030797378267614374921370248320605548723933339732153799347517497838177496859560708966280116211859195534097645302082406014122261048792393479919211816886788452762157453072394850735251912273156523177434960757828745864129765323249018987358660250857110190288313023717880862476299619615681901832122253093848710716292913301857061000985652390455739312715486818900908333141408618939113613820750263075941510537923981126006130759460108566961147387790715748677699230416855552701500963106281234139195269530399403618818738672882652865751254038617138356236007129721972620353291439310147936914274927610452172246491006136310911250103927317560565890186139082094483403036069371447404169242344009243425893497450206791201783391910204715763861782551091637594566088398711319507349396044907203950652835850446100799060247492740242388033465308922298852599054199669186723469458830652047928441974517554225797232205867317437566528568407669193513209019397182733171494160677129752261740802998706003510506047415378270388475478354110120516544118050141966184656583473853712367449008763136790177878280034790300719908624411272356473077657419539696354849017937433332538977388482009172431334076964267243442843491597968132161420729617286132695791475407924452425563113024221353492762084013375556317369618240930596954660233122250306752160751304614468361931226145700721937776221428907887057897317589817527937810521968616127896621442247899321664617097858734370030914480774912747797988170485249492151581327712117835040505019505279224155349948715440173817359535064673901330756789886029047216296631761526594520364025277791599312171595456922092050765148955498726787249366874548215107786585566241819704673478884745986168134205189596220133123027508234723001419189255141471795606498926615137046509169862772908476040009186986235156013957843207678937843031503062464872110191430563103694854120509874250115194570952058466084373281142334042626570841874653021653419717801400250221921909900084679508688268341050915102945479977122885787923900264627737998904052600493001687168336377386493550814971333490698874664345325802584525453439748649766493679391277691707879153166460121850201848928432291607721304527461351319447535717479518149950899542286599116358293776711534122843672904578761739070205903390485146584625373127622416484091659716431018339448671957220531100718259139582517720474915402680815110230925094540993478866666007913963680902860841155701235084053316015705805726320805750951716240811734563888430055120872846928859134106420415872320377031350290545486895841990273288614097697802199777845333018748278542469074269487202643607024492795739212091288964248318107561089166453834786392312334894418461739940136484762632860771127152088457770430563427765515960510474713479956889529918798577168676032078868426682911040418112657331323562993356040139447566276767311031427705087260877503313760566461002835842354786553497903757827360227388685540581039364429144450562347342527517246768782706894206688469526519718185206852208361546293048364033565777434356508320526459457796687833946467106736803075975035640732903847749025640907554210007558266194732397348780071399333577393186887885601292516950955489582486150688496282771877226742067671442164327809312595007295851905039383792282675740473438892280216478435921681531900982902456548420318919124641850169374969448708943441042601633900122380613011044170902416839878912964961748403289087689202987886084191599783938477780529368193211444080182377492961552492586454300692486600251369805845749309927020406278012938062903238651553954202516297499683869701720466586098818241530651090991340077748144639392022277537016486935796331411389105802842232110821453138046518241676352246295266325247992648173508542363966003445762202315846016472315783197436554734306367599244787250109016675128056705986634028209471188892003451800266921620753643271759757265446023878433642722249011476936705730549475333185239019246576969098269243636532658528851994454882401232312504292463088582828553623881132369951185557757081082500900607316101934153142100191250726854826657219200253439220385199392817101911673671267616787104672965142437181885029473975899898170195431777354975311307683365204024561345069536169663696300505637386094407660963860049000610088243221751512132211434568842829087254046341299935337510967378244005230889803789921665127219121325782608750271536647980092777483904914173610336146649216180534660548054951410450997711059404978356019269833273044050172252425560616749033336124381291480476232780336811834448256741611777189483907595666006531521520811144776528779985587563984640388354778350686382532168764935374999531354588825226558864601044861969866915672746231031603720477676926596372332896815790727542678252786376298313432035724820989012178862944794962714858274770574772980258512746786720073124325419772088434742593205833449576545953881901719272790393933428705456843923371931429215046972199385143663087150144145182468584690261618009380450602345824982441602512045864829842643328205703158560151464682075677832743802274912494085428003973894331308611366560113438575269973852459165874774867521460442689063388846610082935560324148485174021982886328891684565676936044536149141407088324996538649810820988293275629107186494935657980264775328510169887561401610700297063817753041857965518513537224987169613647871910066651599679794864567138380385208332377703806704213396232259728707491072276311527775104997631417241491552895305527701048331842409938792710973547464224731607730235795389506231113593573166807031008219312122245358279631064567270484318438856518142465598547643906953302864370050435056663151384876080059954375762085329265668423878172939362879952680295227194352170921184426700752881829557245758898941800442227706818922031508401206920187369029213541772812993644587504461288604685723280231086727052206882736677454893032635954724911564736744600564721438813659887101208655359169810441382737894410157029536825065820026117712059241076897325015201156161730524164381242509947765059315725871603795229311536111420207976797407881682208596726398806783706755120100313740519541216296037124976758110596966513103788586431459829765806506824242608487294105637464339213284744255445713290700213837792274424007440527139258538105544696810582411733394619307697131601553739339315760997697485789405660923853330175451008039515429130611231022783570708880060066659566155993199592000479455720236332328095105647004809110413722872521355540036488013223618450036051307164161074221728683337488520773207267061722498242994696388043127846105331467563862472363032342234773580011127188397887844703262869693487490500025608721698906535171999585768799559512209432619182295453858701224474581188582789400150131684007583884515576812847151482727794482156569050482763859732838275736682004638402001187047879544158106060092943225356651084146387207808765539413052669701897182262974136835529409522382093434872528745934835663747567791875149383966180262052958500479151148024353073229954069717428024875662613607917833725235012604783200835482127738114217461197548336445455439108415686197175489352121379217194306737671894980628013948483096023371801103185047450261139512917971568339185692849107700907097841816907088876572801988515538809782723280030445007254562431579186998026675737103921452287050943080598194701400335078806422822990304917228619426514707158436204172198414985782879305923436296192743641808319341967834452948506595399564995959295061271757694259965779735375288442706022041674120773505698877579062698258465456946019928509901214231379763247345535691246383890697592546378404049005890898135758320071635474911005712854999156041641364609694337699889338424611901193358983284802771350586620342941285977172462995876650476008335844840901034667903427772018390111784231198127667374201264044441634669590015298442552165416986021757434199263201997994354466520113882368747464635979421994392155621863760030586821145507981895464250292143758538063661052133175586492035667860985718035873247569096649365661529677362042027304888123426077306065220243021746727011518791696169025238219700447074150595894573209509320989512594011077242692620390480572548119381318019527586523999542976569333889672500247494832926381094415401921965671351360202572132619772915504721267019305366900617580624879998950150779356726975266296332686814940721879054818148908284870472725632910625662903889423407967563252058309360211613658019620370593484220922192955545407048571640943525967949182004267896325889919021538325556040297647438379275807094566156491806937457218464139349274185391935456505279289627478836620966755253658059013289298762130335184346414698273845435405801128636943973147142781824226662281725907688684890838075717163929126620565454977544544234000429674762250271441077820893263379741046812853384017372800769781593841127129543722959371030066199940484352495847078069170580320539077227178912062660740902378557061111714287104010784136453118403271606714473710181519071267590036670983926930299399389519532431198622001061209691221032661454640149707713887762973502835891896836706535739999922294159379209685661840550934755877346468763952979881902648951779006861960686691181829997618349052506474096227859084831324543213767897516944728638730900129740825092053531054459259507826636952146444332855928418240549643581008502611815131195479658222756041249079148475524112429974267814344255557269777358850221381479999501394023714912035226868134296898527266499879336699407285913002485744608085065531683035485665855967239353758261833721828458894379103967594240051910305599609588244457559785267338393503833239702185887189794567429845914898311367978951122055223883076343057453164137799648703710857591552848515928601695578623729398837461470958269819368951638950513518342603313454906138130288338927652403461720741874138780854780893563172119478863394979954683249032532453625297226024501914692772089298502043639289410249128292890691114809025965811509007121411463813605287936765351105575082349567449415774150094813163310481333670135916406389158160788557087699202321802864410785204635061189389613678679877019839779375906991164140790255299134320321851354062886541323488880107492863052327324386126420345481597781799314672869599452118195510306284850816782518757030465502490749671734896829116477528630100699862261750771416248730882948098563298186218208495117364482419084750163105368684329040151656322698499593695554277204736189261200414940376884967098820580282345828249941598143999419322367094971070110372622637724491450274407165009995368334671977575461721429885621562793414104896284997906364449751042991749235469230540720204385214375043982458379943705538764851526000185964997537200021363655157904109208796600048903243377277675004517043595704983507626129617162794745814423864355479250507757061754712755521214447159463328314623075031596519766305023032647665444664385738079961853613893390763694615189493049285376874155806166539172436540062405764580166668775073590332645051987994007061699281919154423763335393145591460821531806699310155402079542935240543307948932697902893987369355360873514296159414938331449305405846946311483085810698010200264517279717609566197817471847425189486625697907177152228862806975701585700078622288270078775304397142507242545320317111623563835646700559386924900109595011407256180171371980254381009202222012190627573795275488930877466534019679123663470759212855989219657265902616545998103034429729030775740713532185845127566810710595675498695040323423929182674589631582320681997543747085619115192356105495127132111644199216184351194521176926399862280460318851965613784544313978521904656690498717764134164513659324977985324102994513911527474120818624817337299642099569058450768035618754167751918897476811498748706793190073878639215179637434500733294540143539328265466274856230399219776798264381026327465396282478982155068332140814163888958497677747476859085220981018499679096584633070165797535453168204828606987843781201337817471984024511109644537527231229517155991996981916778662303329308953586719940636773340425154955934288308550244254924229540751073479845547056363927366756488609457236730346733715649496723909029623494596773161499733008039613541796856131099146092240623324676244562682150342263100648104518018752991555920847990302630343160720648560589369030209949830795080149968318422206997146666974688356649730150738227901292478500328771712850689268655448174846831041387399766739438420636255501967980950212868824925000740301886231755152740465893892387226217205690429924355583174406546166768378121854463773882126232073840840972409809739502777279455886118736974617382427068507875062214292333660203153783674580423689042832566368254510114248797640458450164146123835072210585351846348043293886865413711703267637176291424263989471211785526723170281480416414731262262274005242692008718603672784159768557382217922690937310369472001663983742471671202022032835768317225954146577650530477603663737846707324796909921559848633321590251118767940870109529222495360595249883262365453754192556295979380402129713008899805569202303344352343400773132780483984645327130385317626663583895646714867706086711169723074819952482485088084061028025667367390277533485152085436402560921349763921023324473528386720595077645463152198811697064811203453126037653831789093587646113012482780439380642769646241224472557210218856013465946109644616560607222097108577563776615917541303744049268996320496299848593634582708746331551309965913082068191135482758731991782813594577514681134563593074887322068223759797822160111949010425544343064131838748381431862617663990308193169716366423789694715975830716340111803802668392443024773800423740321301043097139942711276662264558699243834991318459137211650103233794431864941456592611651945798441658259525924605677369608530963775162830033484362334568428781314193477102908684960118062972590125577042050804537953332703876510716743510875247297396813420197898292983598000464443447025453222507431198622009549376684708761349470610193061411162993134909759153735510134105336546124806919933553059828768019944011324901044158678209954609671390855198561991507665258138372756271499926599528179734763684963692130574130359131855163393004006449044846629528184654811646051607123178561551194734767026178007819105364798222275126007028938067255944937442300575473857808674901541772629322478813266132723270151140671178291281668981957452293559495209946238641162688917338676820305555394025846240666001643383276336096243479397741793193139749261984830751342331419128217480183194243231690518626868402216177478985769923573249390397019505125864695949323451878046603411903708116430162017055251627040629075741928246322052219034926987159025878023913397373850214349226015083527393524473925315613788400890055299069480323946558072735396852669748511306733382233665138461345936609666007236757190914265703752683139333628777601569959834485024399594137304898697775461491648467216413205370400408908085333201694952955270589923707118677562232350621549402544340978948746125308035070599956292614848655949817439125481611798186469048816772178275895039997630058276678043586583023812569363855548673614337719029689794605911414698848173902604670944744896390907516927021494323189180799906069383316528265278320529377666637673196201402348337612569068497671868424843043900814081759533119051711644449404705502799028678121225727693937031957476870746085234686792174336842088581507709049892874829461553897148650036764248926174324297208346951741235792127137516884464627593697953937858483614177312720935968159770793473048019690122606289849541115692238363685164278942939503420750727710889625197340951328038139345647303038512138024713512560271989052358563014079568783951811203457467799981103025475109084123770572674704496498670987016358313482104806248134474733780270035581076419259069590649683401113226082298702822241065867261495858487897205710766966526010252177112778891557584331037269592415926408647230744622265367254707288347385609723552495084121761403507104447733276487598390824487909183654914896765569872714988426476769197290787142234964960009792282338926037587376737279812177533424693474095455884536773865353648853926398541539578708742164728121436618773453053829881278207669686162331267441087369355831238664948452663779569393353158374690877109709195487740797448283528198133705145172629816646812528290975067841484712060450720812509543424799210592674502361153903309737907415654913987787160063332308308242876722542981342012943757518402062191328945523279833486981594500483115797309590921074441949974351476731822526613062501448644059230071721472584443070172851568377889897532981657377090643327295687440478431720545054629773501034412558580486765677913439794388789831151267357752105592886871420480277866578525331456209816748415263700075169146469895550522912680193076973003834984669799305125457273345176803720918965077997561257615095228258435738047344367358730077594188515668735041781704348487052380603697741261081527281785518443717726193064074447718018438366917032946188890716053012008977401191727168089974415476073176523542203742524995861628435804150043819303669967268203433502883648838059511635889927220937070088808625570535619245906699180410851282657335394972191036251027869613549687873119112987992048947031808160019595966266970275569534043426394196925556286532660934561444469028055297196396278076538421408980525894162324150765949419774293018755690403375238488094397617793240879544215736521487735074785163742257108880361055538999744858454732988904107819682153990707887529258345736731429987895163185475059864006967856228668847081456614805129132107889485672072063422205467447798565925474127321391803327716110641685636928640603007276525874332802075260799414529259650186066769713444789400593168777574385281684083567632805708726491336671134605201784587271229021343268660421889116182362285492387410757468461440351026584204371123373966513221790809407833021291524519681332295926367935832779778399953735206403905795535998970049079428163867874045418159587131193783095451200644800658265938618597393925919276947789718018590285751374307412149854992796738594194537171621170127364163719067690872951635332357170056842950757313832621608812061894846617667080707815209277149585021648214865879232187038891721026822837273237507957526501547201076036791365834996051526752838838390234374302901620942607391233142395032426398706390492108308149285228629122517571609012604822008436722432340433375632606179119992943823678655190206224848665506408162519322115600673444138715478019893389774053264322077558255883817662817451550118861893128774808755332894341392025942405362155364137561771972274603870891132691404203587608805336916011029229124858106439696041563091441425290968947167472114287577456261257951781830703355172889785553070178011899689724506186635267569902513919112726935377846089504575232604553513191118454999989725691817132744222220331347434682736401083494697344643577613663052721417918734671245010664747198185327961682691332778308972544568770874548815200835937457503229076866678045834828146437539449007954644413440804308893692780443699981218565331632446989473937988454941711132114945441133433923815516464691341622726562048228422792503572849460508865034096639014044874831046429353400600532249837512971231313894547848944231177625643723921864432764978308524775935538582810146490077218789494605690747465753062023659557134852515818045473793909384991720772389004456578667460278589577461579629499351365808878166803248331839130865792507737910849271452411335572314276646741391005904989944227943616765011801547162348667849122149115398699731637395791228379799428844175832663043103993694565874884951325492451519753696895326612706484507777053667906406801992068091250995017490351771898653081356616753338425832094677134260086706038835727773440145028220685540021157632753538582701607905013346660059240483233976025729611689940518603839718180334510590398512856186015952777913715022337766985383004008413551885305704040439812443998990629833074038240438860669437400865691155395690026181491582730672538806131836989960509738869810590641563079817747601569492447726444332055145168520770311632662652369260599173034840751502443119472979663719987630551575627255061613595726514119759468292284258779361886922732461933240544897481482582208231549647617587168812437531964569871804717194159669361592409508982241563979666241253425853870777650520692767559830891113435398146388947056106270459165501916714736616688984330329105616198263474093166446199839539740410284203735532614365065185963250259758297020812097776830982123309081921619175000030603449306252443647577879750319688893022177366596822340042268917632316046174974879329072338868069918476362164820354136560626082400774816671130981521515872896470403838588601379858656947342992049364540054414192100358607218031216282533454969559927989123905753374033355595629015242335302204787984703241297995835597609537873573950059979583906657004637519414451451620642578627002121503016300236772460667138549016083940010079807516763948846085309729111532847526635117009372893835068327523533989850645294018937470585130648898494261830334384757228137720618596700012628542392448659367812831862969738884169327699022975040325339271220115783904182432436902843615342126507969965771744821355178529570877207929758489158544042186178401692905195348043473787687962653543965544850653274073987038038036054344753233409808394790948960170725554272268946290282396011839481364550543606001654860054853629649429298712401657227024039541009613571037544310690206521602412704179930776943432330689296606807764016540493485456981402079237295794841614386944324932723553364950940841228838895118903777046189656136529174127350147224574767516069870848187959605866409603023131701053165899796798827304265179139014953319301912119582881223079236612728616332096721576624118031943692154408270627902374721116111992885540153403227848110664757687618594671677315392942894222746477641469923485122190122083403309242393505952407910362052487622809390635240658139024114000627861821558206932859672097227495481473379556721940414988675776060412143758220823520514526858880185088201023659131550033512343013963361491539656938526665557666154088381477717366476511041490853712984323458237087700666127304297327251901306705167113089117212948385237581676533772488077755039839054453793013553799609806377188022605983520124039507559149640581467973000839872264260008791268657345985456659296407934601621474874604074634590417323794680971742371983340109929364476393691776896164578224067992079448328567824717038206277429758948582008510275199086107375709835429054926309674846872799240364676668998329965296126595535430551250334785625368848343823983887334337443708800960928508997722542584516266256670256562941532337360642674105946427655742570269535519306525005352340173358711065734305144459445973779362347243227968502018171018154582452029955268983917048762877110251314201220236238918532675100701550970030514395080872960773633769929201413156814594227253803876189591447096950895660045736771004505095841955969673261175748116056790800954136555737105005709974046223457010397094188884044672011674445501583835724885574552175905402205408734842284799134861383449628454354556546778014573800831757221614132128087866322900567036060541401596740200052409929799304864304755211179374777876341345757548020675809739107771212162985494583894425018445069307442148955862328915233330717595662929366688410111785806954517595047341917935450236388811505501304310457147242155482377485379940594305705678317793784401921481832590177743741821807112274336081008145952181834816299599417910472577562438171481836276595211094181911784712846619594105508764020721161793784162990297968472509735646338092002112942483883588169964386946651012101414165028520101859694003991625634109999478066481425571008113269562525248543913215533795625494418711308353420569003755769930641140657191417201042305381368045117198682032557437397265850946162471379550533466921513716952490261667047002978455617296975357038849969959805481448266622391587308163959736057916356056246174527286486721460817026932990142970307235229687509153190822068543949650953700206999395297577008074925870259395305221617366134465150005043436076277567056900156367313023035265915215808491090808318409466135779229492855899072718838530279390347285519705517986397850910271657738721462065933248777150158818289288539496472046707808092156391907027691458419470727651489551688280073623606971904949752743473547618121935176324313669556409368981910881754166220399842929618087352641169812867626031279907456430302846947085592063585433277075742409171208064413099968272769449131202525746250456926328063221113409339854592987809321551301102727350442051320734560072553497837751621520993904193096418711799255789535789310496534550515019877191855809313418781531558915281422321201280123058490592217589220625482954558339565425992263796764032636293912844120314386666145107662197832728152271018288188347172884106372338734570799677909786341954851553765767562539598890423181507663396536961741344960123796134298959453935550937777218519553539780660454392575853109935346502390283254657222936112814080519603050716809985836229130189819295024569582410462488039011521310311699823623977942768634614874037018415554912407012081884784798185781937587023610712968188769050707448356709465351127502539907224193561780027506465533710470277596387675638440517900155189950449042544428300607617151857009952788253471717245826580035737131874829667934779629622367397714925769068541298257932984769108801686153365649414927155719948150431920286316365817154920113082369903283105545992111159916859647536343662660723336287373886552852566051319026148417829843486901496212057764515420853430048484209198934474573619443354807853507810184513181819239434367542143756649353962051773907945138675319780276705194970311108771695831947339995989690469852792346091277528530465683270980614588836411758840854321148729072340134586748545730110429408417684195239041641005918815722150672283886713713504471292867063083058981767876670992147084865777746350867028297483310706868233525206924425463857842990155890286504864541931243014317843742289136453725816278948091370068901163437891091571217509054075036250041258771414136966364536638290226430977772659285433647025205013104422551812489270770679108533713966129728606671175738521929533425606196422098004697822112476226688440099154284472593590306041317327640785242560133133001314061212027589092138528278059886167018416520887840031759124526264318245813841482263335411625886643169737544701437105047916543666450996163091358480243758420605436181929259609051095516410666884724326099592771698697347630469367841881345559882874844800204809213105242260401289263417620248787564848698061469604919131183192822057439861943979181743722712945202607416096833709028071846643236798907555033405381841451220469510418334052636662777313189411773461363551814736116119671678528303941078517416552797695371309322705826619971485547814439435099538331002783162701931486200652722731109009191601907996669724983130724606516833069008324677342110017018435931437294070162997231139407291493291631977302455795360133823195254853320081214339689913413358354289905190445863631576497318142934519246079701130697331238908695517419080194531348846210211685234555139811262617256638224573646778517523484893055213835394991268847314536173258892216955873809621399005077631082589109158643108099649560448576093203099834750199277570456745618625618835290684487921675811524800050467678488565040151839045198931111216660349529506255212955456254808145178644494453876523318433260946369714182640448639963510302176019133214413392585818675658861996866063088103900207813525956607072276917939026819017109109347839996490422007544041039074789485586176368967401347210379715327043291742439230245327978361036131385051743651863001070584048713223745550245168308541111989052218155320304246937879703139280505011886743114799579290615417091793883341153229502197138801526908626403698218642702467736869153498236151438140103833887713868290977926021906847710865630055204698192332951401391766978904021800164970931476322577020516489394664828604280319263824866785525473217830801966267732102218509469275437532101579108503396463962898724533803314435369351080169704512066135809856834491992814991481465106258708355112089188551784687092394841279382644372047838222516005277377629016114892317152654803312597345033846368491788877488078400000917992832887791144927208006152364947765985586540909036898485618097274822485297630947381493067877838824124183314825946654965914561618368572312630217173352987960859184238602388712534754834343181748429452012255826576622183190707436407076186130142057780181259991576926708051930183910501045617731887301143545990450296140038473229157658992516729785352132335555977042850407033916382112277582096597433646633472438786859773030724795935297338210662598000543216775398108133107095232243846815920500865775859309495157396547809222548941128857589185380596557303696175418627907825663141533624114318330786006551304966355277368963017166530115211218941490228325057819170859168349445373897371894054282756575866444588387287728738243070612564925443118591667036688841922466616224674019303745499934844615931934018495067989623445825322039148474220413287282876393264625079722164608583439639864813398662949194818541616732440793069650372505928488254706780866655983037330095257491854106812615157949537845981645626985715486167185295365063070635922799677952265567852906568430837853265729502916552837111207611220355485746420951090562794477004007668508182331893546542633168490549513960434747565221662851089312221227550217495929376137721635723722579163448035307982921691020314457605382342395023449012341140830390547371054296997978414918240646479499835237370331604316440058806496711645009963747998328355367260273596525703506371159087688566673433369896685005748028847361662364033912181263198464925331901837385830348732073854797943808156547580383985834044891251376796461499695033770366705862986500500794735408237884638828438240823664107061103999338805464909987067679730718727803022761209605172204381609494809061111074376173430053033907205228851110684041002199852488064959219046690982189126318252421634290254282019466917152056703286532189765077231264185329556404725405419055223016167457786853041107075275010269154152828108980529928169786544326411234240617975687136544711768602491345903284165350540572459425845990065940250403343751399228885244462058594477822145547116551746800103377014193463068670854385337292217650955402679016861128637057441525720928111489420148112914907965461867223044019642576373489018087626531077286698565655947249750754932628140273438286065636782642862425662382328203294463952975086320622048356698563632720306461208510344341862332785628731979270840560920533534181220369414190058187245497735094892441746655495145250660918886406188111005304344652483590573956577251650586295574588230961097446194548511646450751341044672689300838462560199093657688247913347768140729237105640681071274450373782690860347711115702526894644369427868233992309948925674125985607974000184149407316895237481603522412943958143095546059203591928792657263127305403382051450748196179068248591273249815100090256453569022256224077843417790302656102724939977118955490403234366467094279892418643032081433220044581057717434512461234097867598636426810440438844009207238855886596762430673105052897757444830069680710383016573511271507949380478980966594083961841528133516500720405797395431957545710803726982523827694677287442111792053124264108237192837134448907377874986515913870143124679781868583757900277299424394309057750402304209475910978500129202335146358161889073957975679053439736253879099603411217242173067338260748942541155018454810543247829438392724605306114410175136889420864208311718519639634069550901305336116454530023303851211467135499962268580260249653386216360709811871246277003510488166993271922491727024510045614244125058255430009236117543786598809261413676620074481392699247287464345968327675782626961015485069337632025519311172530175269090189390375946009574010526122416517549308845073928381043881834579342860413791586292557480621240266019468515052060913310359008298811385119353395236675937987106376160189442337957361542232267793998845696725132097720992775997434060837582433405179419726333711695949470496121812137091025406904307659149217881581030255787242370692318073186609671209457224688687148788022669508251452598873029872514514247978998431696314573770533819519161236595569210572750742702630116924843313869977425653412864164562065151474651075550137435736692517875579609968607554244655226818567872011310956363262490161007545548402029684125889923839983053752300656197687085721871248951942932333810234475036548310129301444430357386587548245708959772078326746427056969502372389282231954055715154368712653018380580057118855508080658954714648560752633047250010368956934792339853057233840872248547906412155992489072590388780947244121435435360497723819666268839455363930442009235887513066263070727040796945000327226368128360745641831128548150166961840932475998687826899032607425421909489827422258924148111970539212338324240033623480084489813065384330193307925486996008347001672243565282768351686907410281507202180122664507755466291424046026598512183303160742938229710193127696862011091928086078582640831411853146772885700251005231456150890285451534998957054648725060035393623295611944149694962996974700601327000702982386644131691552765436038884766835271707678292666772464444760022047171904891687260139857422014565582082418522946343837031713907371941036329860830091288847904370394437089459194224962543314653196873934564610915372612830081517238586101605691807710541148280145345579499817412171191992327671556914651892140320939110152851990516787705275599834785906320927204536251467115671805901587952692047182909841277033420065212771049962603532135919144102842586975943303704299585579286589729455915889548089765933610198079140865644779418775167585319598039996014700208600286212488387251892577644549238485999058630901700696673369997332845388554300384533677359874341173902967011721414994882454344172772750505812730750387648618681168467003303547684178518610003963893187490885652192120317426485127227430884401589576930265328022292471322445156306603736092053092579551275556086687186340174423961523148652467868868101129544286405872060419359123752446518028591683289253169070052435196569726704304503297152098619913736181130730217439935336720617042167394884688954540904412471441332221413238108458430082474383138577511654815397334611920669788405999321357702454172647368066654015733173512129334431548286467813184825927646286717736661799036444569011092024902925784346181754864516510373881302924758094781078937663801131862112693385872393320504107017543337380282669806020049822033984469027144188718462784651625907728116788251251659134132651651641504843412385070190266068941177913272379368133930795043492227563436470991300005929107110156300135570836137163004706467605202034317170203728443483456589219790442135813067210967431269256857989220866530349608984144102425287687807310840763510713700187066248849995734443175439388431356758815247600044308884072458011864514633312733775850061798556354176009387974095399227311662336477159631907000878134432264587911569807919183191922853503628393078197928839335347014307375150031541480112290190517161444422221354474946575782085901081769020762124902197602528086032235950712941735918894233974848114129111238224928713277838106204991003195835933259333933348900453865647006543685291295456383479585387361582179489768635957898610083531199004503092344292294208903713339324702146178944834448037098987956507962449244351258455000815242446219021428237877314846136706665224543953425170957503429003795196530198099216706666303421280877697917619050622918703111922509333777588758004128604027154150851818978806924947542646056111791111688929765644317915361413963719024371447709341681538350704176085167612250400648183151471713506936941185296769616184975182291876286750843324021929704994888776460120695380133212332835481656582721795459125590469440035114319382412235250095076472340778434639992637959519478924471013802892507283191036350028609601768462847266957009385306436737917368472244117675162342137090005974486967216795663871119943998004831600900220031478250474482119532074242202918336630701962732240385442909363718593892847967753014529895485820903905185325257158634231846342239404466415211994956079466291810947429036319301360088732243448323098150239795917835875075200277510644031954965428888100823245463480028423263215909569559129247928113075438579710900253950870912365244730232547964711125177426219140291290660994153540614836205247255925348497009694904143952200672627438102223055706228113386339715208697251293956073684168877129536320411154689780232602341369135402562165535584914567978282049579718222933863633715495309361912515842403956086514322776527289259637887108970985148252293355256678215290231841013235636795797919651140632873959883023239345738763773314299972409814071396724847484003372741516269379243662706740057482393028110444129721278702110866624276535465021283569330140252107017601220344323955764725149413214697751660236516374919304948459796143595507807163853325714370005915989282749765999488800116145036178807556132875622947795386032425414378138322960782178988858979291616253052121836750056847167017562182678015794314337073536147089679137912547148157089700970420676494334805017800767167661055205262579097771423440062061760685923299975806810388951014517056689381675322925607439659524628931731549568889372394361596176157696452830565947234108642776677421529461142913581154817752584995394018414740591949686785370828350751235009868966139269769784094937629249225663674308481069873973598439382556918765546008851632104618712322983736597457508279476740497704512323800023691855267898075120084844762775079659358733711964963529101915936964508912909333051895783595606759986188530649057038873115454345716313204186242947042913476498386749149357745426798652269500406093772718553221752647861745583660906973513991102503975306926092132921931429202174421251999683625563044361989917487554225524206932849919577083600153816918427075214034036167135205240833191459215381250846534330974909994063421239621887538823886763869173764993119490301138315140342838158684976945926442441220053565016805188538524712697372386799102984684732592585362896903834236089396909144778486236188186764552246466313296904854841133551998168884310180446912398928960598058373489640232326957708371526161661560556869568604510484324048727811688502793092181875035934128861509377426081175887025847107156514342227259798713024300693254684349495035911960144880968575267061966309914003246725733974851868682043360591993208641819496535256744775323113418052318896927490701818908893768653212336028156564785073829087726300416139670243125342879867031202909717598109744235923299023998036198114445017747313683357417137397433980555917498862480140407669616671405772631645747273560064357695236053033069280005731937831000433657019495843883224049144280758003117651164232358636335322234969308457542160464689280665547136151636323585170674408488452844193943963350095222051481698625665868997529921247900512007092524109487826342677178388730211205486632222504342806061831202995554694284876452772204902771274074137943735501744369877215518376037387876991187210398271577844039301614149675438947103783137611903008228847690083576230820491401583367432526618450135726374054484153092102378658202203718688573980877129472181185183599181229031377333109147599868272551150331941018496187336940434417566312098265093430962165379208869275693349523795175851120031234222631398640211976225223193112590591250167706959112112798652859774078417485447163862748984204075961879682331114208210142484313406101682205175898475619793138674270352830671919324082264958282174016861818690638732861576259304106169424974672465272137428127087889434855919063789108010503576727525290279771151814960920654366434059248963762591110369474275670549374339426456740697880589714823938718726665619890929464765754275668691028897613532928333764111526070938993585094631321021807089492637730972231450386963285958678339110595827517813902375282244605939684139251029199912500755053563228950470390958236933395360607134761945176371657272862288432410042733370057334998955058438670677767868770509669831794097574791454789449704641606025162553213359819079025916897154294653079894436257154105733607486225678697653265924195198975343503770280096695545151375551983393759864180869594317294936338426261890832009589676388809339957359230738565477700940285503544071276308793216579744115737117013912103354839982836232949080143499657287095174442118553216141756654234791373089569450199108460005880660285958953174221138100810230222457095534370902177565746120504450367168670161456012528983508877486798260697537451524456787413085746739278141829283234830815264290612086541910190294077675039201012047038900911072603566367752389363376356341297981288857007539558909201658517477611486072529893049051521638299836823626205821377879178094423751600896250523467387925164928853604125818652459619855795517511610151374908899738063534474253379792775500968306165345821770616121630764043032429637962833029127468635088477250853079331234353339534939921514909735067540129037633794425796502358721708875629302898682978691241241917764242029194855112549729143355098377120663682499894250676943074624626437777246762027817254794101035851497215820591439473793905200650179006661607242405995825254620639276465507303370159859493365573734897662571420300064964519459096935990829154461232614622815137636569227585871926925579982103428532940192474307823728708233953285242209562360541677983692383169613396247830934188851328940087700382960711778125743622780927651517967754779476757779589689676318134549685101587857518824964303903833211008496852018043822232641773017726990205623308200628533524355189326733437494156913429729488306334974359164445645673938522789531810162727916922846726993330178972230179661289160586727499034530464354970249040403750310451176443301938869406519403957949145856700432333949957735295209943425172754236005110691155411925395897805899436217737555229170909158255696455251138692777793232459241004597466606290396165723606977146285918437906995427656107499499009144604790527652239473048916374681757539440495647849728085375347726317878319954686898264886744869259966909843445318689984969117922518363121948103709232991569080013137575778208038596643168359674448970368233338006954468838731382883824465954250203691414448606463600831405728746960129871661627306423477304715102748415317247939715828805644772559986259428497508306962209992467233260504354677858065188375654112494507998350124147391418548353552882531011333096118978707314952245736666929347002168080235422358491965774099177818440563366315662106200349175372619889921482305416993765754312876808280057131204334976443855378527123616500867027740014047250750350913854962840460905930925666393347517455562524553402251197617953749304760232117508887425474497517565416587142419712773381232625512585577730985736096047904413035298560365771626797466135977394703397077068483399777035619312571607949059755109870642221922849324930831382673786204869339121384572778617526271653472082114126779991855207542920941131666084628098542454102666522343034295403563350247218409364257422325813746897920086078089875350599089651903255806979531793319604092063856897937120019577313975874219319260839695673099906942485321565662442193635244638405894726936109277509424489773002409508213878758221974620008824212634963168090143970838846438043073938534163464381819911747525118202638998063813699734568933426483497930352940818947335100102712645316059697674502756930558207011148306634276865813003529014877810682104105236442174572165066241140517638767666992320554422460992736834804219175586637963190954041003848777986326447734268660229900815703116204680885741998243373693523656250067113722849608905788336034616383066984106574671151975810211424471210509592128078586903650911168187855236195069000848275887877738095897005947992596491973656441432320551667883933341575659469176497862786471365915099897494017338359660474810481549240703599111087111712146659290456727430583702467273921524179282271542623809781424015648631894097288528985815827007373707362752757372996942429056982266788671490672357050158628960539063505061380360919215923142984236964362977953617429977130384712055525432386453633337004438179427544991409254880825805370269979973876495929492719873052440433379460829511721218382092171445645922365259178479496192929920309316013079075363048536473186396939950859465212137024453110027001815688373231050695118647816220974114154578944638270729170402974330350850466241132715098735236526795844263084000285901351302892504412691197627973529014926925567316537681181810646167966917116726854887220832218413642341774269707879178850224373456429660835854049439883032255360853416068182617975545761029679758230733308931202410530705951812105334052121296128850043592391344369205516650679684792372933402539033840198857626551021339709346385434993883138266097614747808022638969675370074545698827296593401481169731190722731082031944659533746774777128014247284556520969088136698951159430510731403691397141241451784422506345128628399431398274238129421406335680580984492474402390072181069469951248042580161127075607841441939357764687144412798801633626926982323035338096283748388900983174742206469640008542420706586515500556327120433792505608914172654835591076690635520656710218273403420261320119719691804643681314007054749411521772837499663384670074731260647764737468553456487100709698944735135723333682925168475150546299799072198659001043955933711786245194654661161045517561157476331582461024926233323433365588623498249601275626455207766160448413086104296671912109048780771051762058434883939100613408059477337320449002427357840495424239782851602997130491909911590377206870409176775878286944603234687484679097253649819962341026743242435956276595770255098149441239359687692064808182439835890734162999187553045701166925099767438822122840270025199827985268332196986512386073146474862300499263641936099050455582950403071398395251841108542820717633493420238703249812086276653954997727187157268200168093297545149501256880936817831163301108449217009453159940002705028418181826885942790216370014444029632419124954723580283958858212949051718848866489086263931842098803712427127520223276874314087767433509189160963238925387238620912636182354735306223273495263519925758512766650791763726237779971380886801106883895715216726580609794254031411775163478728995313799798630312796071745623787746821519796741405813217035261384805268270499372564105565392441368053858358508803420562333111435654475224994552653792625174611305947783242715148423566905624822735105591240350403114752447602749705788164782873654499584345001091048775240490769480776150478315033206178658652927586245090209809745796086534315404522983891370387502631525722220143642066014090745658682938583557963308990394870576129142283162819294631088951133903009036352373162488403002407343930521917063088596289553255888901402282636511049278546712244248327433837857967597129961518955941756959507419562457330205274842219117875009067102094558839643919783959966985015168185135383902046989265363817526455057006085433025679539657297021710621264563584985812249834660800691492146016764732953496536198643593150096236495106960419390295126804641713316583947649030012920036583188501329485952603760603045032164192431853235782889893418176882614778767774593689157102105497272971741856749514820183163528297642819733217450705164146974336867216485599928420710597356279590754105075167744273378965702528348164100126520816870723959007848068608067875097240858962818573758852104701925988594574957841111580560459274928509623093274017004028078878059399870579604052184150705707538908256402292242651492562611561158029290384928061166806518974748449558354040781161374346836465545494913083562080776368377132442442066113507950859907826187471849494435863485411041638370867000150661899595360201725819580466507636145493528237430657177277612972303615299298576473863700721008429612751847512604686706693112248643426382204937126045782105454611054400281363568939267237558274874520113260822508215385292655052455542243404527372970556497308545323217378490007386595124494275542806418493534861429015143032173635557661957169290659977667112286357460230723748972394692055011906261186998347075860187325993349195050843820868220004343731330383145037919254022185559452845272467202905014077729772100244826461060590651570529015406974054685846717559087224859444868700265952982588819386133334622213163272257016447724442238223207333078328508857088159529764303195299910211841211733247587329709190704638500611213341391065554162595074274955107019363635451563539829374706297846891586846202246118877780362941920642998005925497289003289223027670521164316099738636506630259952628487711289909317965709093871506289768256377709531762200079600566344078852762379308897047843982898408325524930676500670114188268035083414055754056322040694388310914251336061641117209295095458717363304054984778766613701064677548367796600648346400725317194730014800104752898071869254766189878496036330258471344400832233747864830019976352564079557482370789266733314465859958338594390483040734900661422327118870676064680114902303219551587203000508258174755963990564185378542762595855352362433502828405390182082416368347225475949901407616981778366977146202931306193426415925537590177388502940806099663379013506285376523006936670400201276485743949264508848579153615802225373915232182258092177333239545442713379846713891983751346599447204752390381325704960644456518878779890552017428663566687331498283110649928065486742340240882496371695531111776322718258931282753230731901535414898771832466749406213838809746172658551555018638753732603498196387867754170932950031930441293248022507482367944213220464629901718763340342088254073390347678178616961558898106902353076478874315077494615589408168486204090092542652457938914022155701508923997699265801778593490586907470093869731203860183496316792300652649337808265757255904767285243238232352032609212513644976033149952946277484014233084702511301867760602507269531335075529236655993089837996159391964135398735452076982391681711793981680309603924152743668241962768671310010968465244254471670869448005330949577565974596101486639227621906263246452636601901868406439469174312598277829928560709687198424846131422063346484587596349891273896079488154557521848603146150790408435855135751640772613160693752496789766410301372326955862738775017373437110599524700754209540560132230463880118177198021672956200030160333858689569334987275109665178461459554777661411018587425398834062268741907547585753548717652358167752766162790968336580077887552797721377815254927387464002740901122390051451844682195418769985125711153500113163302281357431831708758789008740620637150040634291903331285079163894151545694540098270896521015506792494243665797969618081795737412837518134559047246141501566272119065386785110101909867371636392688769263758380143501949766977092378596308006654479844052913497246932527860717498832860940461591926546330779244811184935365212513821116240836096045247201758877014101475964861692949218935430693012346026417793538975109139672269056856159519859003452230972676413600917546930100041473314551589689666519945682654973344651118359579874685544795270396061391250684834043963711044911147089488702203765811828027835771332486992894483206433761790754962387528352259208121551604271506366395375389640336273183659500074808239304365198420797809383582686137910040841759411261330695107859072128639049606318615636779836592371240930428751817836192191315911154646591991743181618145470709965444368773391676323428027152044798746479976068388250861054923923841475700009364345004879156835456769646978411663846069588124507414748419955558444879708597438855924105184108064179865717488295636165065837913229927900833674308297334396751670464747063931771373855108735486143096100215548082216577377545764199941235355165623799409006640107112915040141097756698777849167414605925149771117082903133730603621259649108594098624420444906344160704275492392089020770900779395277006218494923462636784532100764380425468205817959079513430879079763649205863778534175824669671693206761714668734454716967255988145417721327510926212837963179441831053653856624968029553713075811292563821831467468931346537190597767524406398547344004350928464398919335304814783578748672626649313244800824949158474943882129213794128633444412875339328188450627789631861554319977084899218133873706526227504836871639451738338066505223382843470289561023932186988325286847024040680746717688008863016458466089319411413732002311553777857763794832990419601562341880532302419949524641837591981352481640047465677698636168972352127766987480402159322553724634778303795642505954035431117330096095018005992521856980544051057013457922468443488470008299094454218111109618877635664519574273647418306466047320504286241258634877600301568725814694608832774264278421455805002476397237198755701371265437281320679086589268125912527123716729750723858753579952053465589500475846589254269921168977671529943557613902655402162820078583907215572550818814496241171942489518290006665949313495145430402220802447105295482908539241642098854726363078568591915253988726993248433245659752123057171880912308642203707324858801954205767932055797854729454804546999627089914890035125312194179063900315754642584308746658588901725021045138143273333696944039398147046028206948439892580368204997656331328972991450210637121994908973892973423772214489587777567104800225527713849021153890921509273394413115272009230908041924195728914545446559185054859908266339120277207141364271395117396026678360793039484262926231978001715325976593610328599036169311507648992090777157364250281753577478159793931184391617285112233138942907086818812938583227962814860848803551776733117872807540666323247820263079671821572489627280168690341324310092522338828139650452594854999722224451814215916462162118157363920984391199337348637262539174628612967847451218861683939404663484278361393709089953187337237899106126532006174354440485265360637136899076809454182326099937955337064700687571961657260903154247971264623817510002218121628090574582353180168403723957647161058205046737781882761272537762841068015087199408107268399159213880713000547019958883447640974654773981339067150013599351246305142016386072903020921027498036257247305488151828875256186341502288623130503269793629805839092934510981259846376958308102273591292235448944261689688449132937986530271576690982296708999904449419372050833545455750003876577258902538661880381695186908893362097815796492211499233590421838205792670709121488585253449603167118338620201527077330644293573386148788778629454727906202704000198960078951023643406443097536598388080387889393153640220035085217691703113306084108227929620471396817926527760877366670027145476024979945567819033725573965770077262811493541049489077089038516557949968887868947133748836347011129389624642472713252985458558429855468424086606336351738123760270997870482179642282890820303360510669296479780830003155430620938582925401825242178745013723280043251855769564556133698184206928504062904571312160407141472989260764809772375317263152920465625223109757637929318927627955865300345128228200892143173937056002282101754708995675812566538835255167325023732724662552854799823851800119684788288767340231989438787191384759006223061691959379039476690651357649815229590464130956796064159341636489898084258621502160528161265663256831016089048409102235672404118308132162774709772069571100543352667766464034446104776304615174793525076766868054114772537815031468247027032117582674944664820839709906338728906986914505140533999324252485119829860505179830238334284992594684770589391080982634896318413296502066196040409351578725714956362705974126650460796122889525000419653726377133697617063847290776465899888052040089694644235352545148668465217912627173394264458885539394061640225924284929524139091549189126449317764787897746293641092512068290283220872167051060556254422813316682086218216530256368113191044949969322690304131943312638727041389887087763280330583521528216861809233698274520172069774125967385267359567135495165231776845155829984603074131155211459373431229135493402993291496803517207498471223267342914538408752866679756044344428715318963368423935864819578506290416647301325124078769528867800950447535421914064547971698462242106470190474670507122313600809019649486033805220243950207112330515723539472449943823705177325876266077093621225069619668408044371610493922555100866792490011536794899696951539326528195763735589716565294477597933842198940549064584224237261591810827477016443168453976038092836493718460396635535236699151809378748388324902396961952732489118470745379788214731864080075409415488560895595257048161917031281253461103423844662938140395680834495144302542129954396882275718501074977321502509175183924398684962303604176009020962145741186667646071786143798497955856304899011433614985157151527499132379038270502324493818231779626562003362464644133664554515430728837849693498464332660952167861086417631835582898525248759295577886822688628009716973113533429315073395502755036670007497423601748246748794132758018695888192921117636238362369196987107800612682975049219638697627077942005599742859834480065011775815433895836428368177752623683719397938159245138086590749760996879815599776425993146719610252709464415915567800766447368859363945405778776604640428764235118554623608031869469424464563570113599654924594535858289251270787746243644439015039549920885974008930610333480274493299396727347672198779581304574393852838578302677405594117024723170019172857156373821665211802874632047787879125461981465171552127316210417707572594403402702799401079927360149999169835951979407371363353151972771193486985468184738599011825831781424906111099472770991782219456977359469225218901749341577502227554279175387572092134642846289416237510122616988221365059292860490976007176267055375686351370804174774218502549792824808656981290032934803100044347333130580624388082633273949715642889786862127228934251934489000282760294427766090278797473324493534012339098426690633723482124552468983801985628196668712058151347281547894265221740055615773900351264984782632873322720536337103244283760414658248169631697106314671921913500833964686517718816252615050478697730161829245980585752676655097814063376598862637464018135015785961697712289952186289622706278652785068098680591880078711505559380778104240588594467156047808988382506801665556435281513937143889978320267545713795006743226415783079727022189600745428994968261775476496193008729338323478933516474107333818093236379408882803375978704764963692705388480992170252232104583243700545159511282442292141874685775491104741842149992598526055985744168764453493805190796712191438284281819704455761539830949137823512511766897476927213873520122339891617401645928093224750875486766893483993040559133825809493860224083908914787060933668886843174975158754593256565397671396788828648755861824727282488110672513018579937778816272688895305677003021589004689041145271991935028116963653168200143787244066505995731543704342788692740885296287522631128662199499676274321649955869159953043357071802977546427189469150915348816127353340201818715683386495800177065149892688561409526593913196318415071804793936258400259513762082718100064818370412757584394629661107498453945480589101378040270901891112097999864653922060245108492056299011187166367755379816819829836677138059731948582164422978370998129628841419551929443265731427572916311696558611233401253159803799754676146115484471498657377662320864101537948942831613899220919626247917676722550524832333420863668747150604791509451528695980000120168829466352301636264658792858214858606881271300453407661520031925624360080837605506447341869390666440411110999504309530772640067469193993440942565347862336211837705929712878140457944943635077255704112826718799602183701008036699950999572590030129700993236006233555702428914368987767273345744590173883042012131290845048023999047656904000168059718610688822256272656674332148173620210242456659386327123056310427447079768539277112611620570612277587118090316249726956366289197100285500775644181825379448149554136152419638084161924596938340743270779618549667472494191278014689758103821281067445577853425072083006731397995368342302803542487376572608932458958440251748259854214182034260272034363999128981036263696806760640095283324805694130627743829547163362958132378662501035103923869894109139107077252351885654433077620582766596728453483748046122236900730626673762962952657959778694949315559850180222676560960618563212486370503799431450356894454701778870034184689342269686965544381175090535034016978654973841581922977895923897158729266046491892479352683270296274661054438684032120619569190721008687582236959914041049926889104358490330558096866694660204816542785942508493410584783756668060967333248506673360556576152280310662783747626260948526681689665626017887258757109190477456804552135366079535609028686223093894597837120409011164246692442306449391031346109020390138121211659112309519208557044449706995831042092708347114523208587298783406669961556745058081744999488010506360361828634291493771610355818738678470721879029711579854949351615146924473407111632936799886138446926290400878247855703998403468627096109540427207843937462805322970513722580784370117391398061881186408989409129777557656827376398469783082281985257782444387650229487540941274750712715019056909656547784023766630501664144734064528459569990781824408905396429499452134809216821311247388670707299866649974986638739041821126368116082068803794901511512778752480853448643383889366590246058696584155876769460592974129498837631056630582661336595851584421656675345983205695691723547559154045725257803403315388101878123086659821541382295610348696141981908365905029292089760296656320204399088374813928342125233984383343764175537404815731929476719270882011417749207032535189907028299010838362023911763302236073535380895042755686322064010492952979091194916731738403428738939858080597919428763036012046805832642318950207486373611198629212453527627106720215274240087915320693787857838771420377414313024709679502535817213255042350655797153447024841207131728421358231381283478762283156815785602424163081585715532212831420176661793716273389138484439583255703499158067519533671333363606506291641893820291229505989436080474994026375658600349451809261504986085624504348431779743169160806761725541491408071327824883616294825753591477874836716231689033989218815137256314003606926946171586737637030039898919155763250093280088666597700236664771402732599860344608786673402204612069193566427553455889314581518480643838755049717848291499145307140871070140129925130643538920248196812237263498581296121887174404519931362182579717722051966065583732939233400365639739035132866990818820606485942330828586838153432141309931805242878409829450330135813195677266339090633216627827312436269377476871635146547862218595161180340466790991089041061151381895761414846063511364677870318200735927007668429386451104905994598300146888334289790043765433942676350933417451046182079929849173738333153996263571936019041525846562616695806180013924113749200002137075207549402729570290403733682616459766345448925779992237124143363750918799986838765111807049744135808332638355123192651580353024198262614562857509371267489499638078960918506020445738716380507527736245758147088668581380230202309311110471281139073085962309344078688934987283600668723413355285868078222881786410453434535904214785550222390963406133142129315920013579734509188077338530259369027759549511884596936159123481031957530109658184380944756830794084544159921009054711842279722916081518629161646664231973709286190248377354078614207455458671807047129775378449781593883990623443432567148230527948390432419327114700687385524590251248068922958150192938184257453716796781632861841209957982094292890194975556821286439101829221295110404006548126490030013710144670388033109169790877840485477212413300330971421751050089162274154857294947895143284714415781290947082703653466180596631123966187831209966422898595298790967595857747278735888935416490589410941360345318503402356911647031281103007171321290596332971507179897890822000231806530727269234084986618220494700316911014590189588494379957624905663206886801036930535268863210208230163934768793276240830323066744482624225321215225038826807347253540226383803097526555325950656169196364781156350115626249245511215946557508971642101855320025769057129145404324878791284824475720246332364859163306191685521739579446266860560559238425494536343344003304988991395416800099604705442593742783480031249745373491626456468497724326796358770267307847194210910197410080251620645656042929837822348832938849363849075968922474550629324226637170104865834102601185655640755309897861447037502239774628213027397797403558829429131146778600896552618314405914362548544658294562783110245603089091084194568180204565845921237034430617596602898004724385378966827554641379432785861330359963520583878563159793141803844956858678401376263076610390740203204759477263611011729812197422986587798225327725749554048512244311875668054883847521961851460727090869118998817828829406986004402946232219432488212684359709625343895016102629831065211756851853512314656148790078811531152902855519979862724889084006476924746107459135170061182086735832190235145394533529032934566465173641256083376187789653226373841162146448305155130901701082487326662197303533063222852819535349303644611896635434131931582033937707351915398232517057843557009689937893333531387545290862144252187855898911835581469303995580563346183441809924518201876396606763794591833982994254547884753805823424756478177609069473132488192016340175419313071901895362797131728897260946249190356941541015250613879163182890409325265585391378918241458092095688618336387578979635180730725279910314476082840894728904736376364855217756516741337039820700226815366148161082706600893509227633423849455541760621925675894543758136880925079558804551369261237093785778570915224464420570226362592948487021864456140312645365772083275769229800890454757118994484235938216825344176706616628762558991700480708867456176873046076267424541000862035201404881938307226973815324923043080812907931564413547423055858195935580307691935257833016756591846671036985976699740826664132805657496772773490314307550814356001266988939572620074843926933402540485633109721880034604049146211013864150197529741196985622688718354736662077085870541019496968854272681576538228135767201075380005064197808480814440469727241155612453897334697298094427869359038727289405020092997912452973685652710631343290202289912238747230085866141619208036653330892721136852765431976089825282477038938670873504116207277437553865754006776360714683501183743302324064941276571379228838949693324816864685573656691862694469043382533728610042678643985070275903319077115903916564129360825888030386579397915366515281008752415345183160035272029357248901142573266563424837275268071804964913971616182909293412136577712848168786814343289862079321067705806026389173336507119688705421655304656762459983453628845732589329711377443566076459600946433813282393045202533256599812733268122143699766779815066633960115167387239321075434098220904258278147701617310526848607490082705260087873699135197063670274050354423799283935993634839403234649928344444718964239181873698366251244302085625250882889564125869740691970655804830563618610017947501078471253261774420466907265445575835207896340946757459357183781151820305315001378569528419813361928024427378151097814396097490041678077535903187503860503775641716058846369192829266990532183068726960088424293065577880544882813405169189658341306040168118582753563120983151766071275595296096252914248200936797344596103284281641036321652533329757761956750970449911806409923304278419584356670011105241680793241999651604175363640106575193132443102269335162260169226935930419396640529159530246256593741700046155501571655339960220775968462124589951774115393268425791626945001116581862191583270060193237786784759110754098822599296948789971971926313979973133153828304049110475713178745927729434855091493519962099643242286451936917131981280123289602856697557319188207706073248773734850514432020659576732256827944856888602889498105008861143185118133469112915685918852886230462366988227250865296780372285089040995772527367796215959051631670615259343072303644590438557070859175663843120517571821839301680907125288927885773843053801599221427372177550109103371004009498031780522714560818306932347177856808512296642307868461110567815193043549968513651061957760356378639931551335682825099920484388471439222542263719469412204713901583836434291967700020469137829327585894063338138457358786706197272856944973194419194341482936866494810390702852933674651629335390967111513032083869690218972474893156488768481722770043371899783991732622551318234517898854394376833974965899462122743068702948782420651902150509892636332022575312590740373228507080073878986554766732664307858665788212781114335184980925755290100626739385558247704679742441069986285733881457176657420050974070043460604335080666904595648764267614360436306836896513339439840911372974633123779546751344851655314007232099327900675255349517012240638067112538831412798306587894555159615659945347157476580105940649824626073730555399379062017933771918946032845668723360486371283333724152857233629265568537276952125459944120398506937445844802239556450954797282749901604552857289086159360004599201068667506017591491222705423733914940272639505410743634525217303468916031060395662955810296795542900505002229940567602813333354546693675846394325427345177658177745345736079320124070510243482671722716868327232311142618138330135253015353466952182432200526725958479595485640817580084592636229367108420427645294217700776474530070830787188786563559205524866330004417980296060302148895352910144023395889224879351871936932899622427526596367562277026823989707705700052667492166262560420704484139833213309174187303557398038424375660586242970028401759069297719246021234490788074021773617318722763705400673996933048402979809531824415915947146153766281408347550749359410112476929393187207850348500592052130823116146675676087470965973206676024320503071092491634783520789629181568415263017772123794974370285174819353062253389687761610340497137146414973758415126460180433983959228890540258249185878289231062510808479263755025514314644895078626844977996427728646023272910179927950274425910416603850701686402368098609457531975930029738469428199821366951883854222315430435255251540466059864028960438140303919156492414751037073130932471572218651710072789936418749862352975025035359251292997303654643032340148939782891871139225971680760443845975109031383399617501124214038218203774349835619834254527660857967581548663553356763094794877814670948334375866274618922437438525568769305427018622798421448596964466444182944323648891110663437087285804092796303183043267027593819101610183680117228523476638235015140977514682659444753780699833945916693992538811399225767148973866632863157310715804393238855505526113706551537338572367868426672653039066570050953589225421605885617324806159816652547236619261529054150371286151876681659345519641101437953066958244690564386991495397039143305937644018156602165086841085374881767380528387500965099385898773026247975850228759949268738495715382772164547528769227478487551821626466555138771908785421780752811360460933155549035582058828705610194617247892945845199013267645849507430026680384251087646813367181463134679556892608857817466679680167998743094025698012029897427756209937027404786970392950302577727271713809797666098667743303801871940988191415324254026846237870471068941190416156673614032940938853944070692879347331653969577403040938022827421559517498159121386020194570999195068477787900239063113155842922609779371300843718770125565234852833953142867999826727455482840675355361147987796083891723296594713897564686357660001671896096821191727839977541788104789920159905575996141264975395354248790343574067316385149621995905049927693394466732052028773311070886389142429926280034017359868845852093794971081859804309533819025169827102203271805866688543613310610124790164677974172870126546717771775286745831334435212703876817262789486165267557074553187349851381785031740196587869589658001811577298043478513659401173902527013298864078628604569230435926492297089857899063756981019768110646890839689839688551522898391539825913871124119474416964137974783227932075182912620443391442610792357862396418784850923178724714160582097639175741621981679969068554236954683036279220042339631801664821700788985616353902317915212047265814029930495419171534272383536741436862846271031823124831198065707275305764665752746520257948747673903648193799105642850525518518816926425405641862934879911961597870691839473047391067158721284003441713282591485079788535239486640361690595685556839126018666921693435142748985813985036554260801654450342539241896986307525940619387526631823075353551803699411882318925406368829354922706817045919963731777170556483253417728877622903425603054780067189338504051636354151550053035008707256781823458489861090469795618722526215777647753761365062769104750682826386635779190033449361115542430848289500926289417495661262992334778017275932360759974710938272955350597886189860877113638943547889872493357648051978303590264381101546593111516962415146796024197675832975761570334003765721260265370630536920351824735302990024184253809891363206956246797507645479254453651132173287068945647614835036476205923258928288323638526656648525908528433706063553244890987222937681479469781639272164133608821989519404547515802208268749985500379657692724150396972256803128368529426376238944849168782938120125157637046826335207734846833651626994227304959497765593144653975188550458909451644556418673235976056936742054962526731750572072964607255255853005544950943684863412960903958610720085822103816787260138959974656745039819062425982557768199641903449396206905682616489392223278891927351678773815606821265883143267797600053572826579156537664276848650745778739443523063186910917237667238944744066450695038880199171144165040046201004032842958965538583476235433713512590410790077644788615978928647408742803579840523413476295991182171829199593049440943990184491962416905013070887939444794215682388149901902424389822378252165235953064843692670135810420528260127197976255750603636897206244750713761605720978490091133388951987346828169405165551354127932350548307934999429531476570326055473409170777419290969345577143491059990802607837400761469872854443729650318184835929340379363781294196333768366778274063470712536135523260826938139904145430135371480752289226810937789723754537809678442529455177597469007031921781388403862647166843305744556303378579991524344766971449829000222097139448816510869156470323092149760850225473141099121976404908540592627798861120313744167070290416392609608906695011599645407418991610300707879934898496390321217685963854159103419272467218381850005122191736578344234231070411453948842176096588153163114304752504161012680059388218255281634012379224745733812850439607913688222880323469766772112058589728533944275168284598232995903261869188772480634256141109827728257239526424355063924822358326588975308379855891194419162029700202931222609637358910545814901670399443102220989319796756577528475081971147110585848142459025599018110870540456591526214005968616238668997459075645827668248844503709632834096563965687392664617051978152637011344183904824129494228755685758614611109707607358935236815940931322207608833134633866362129307294420556962846940020396674470077549811287515849794609986050249184866327268626411974279645146141663202462936576394282213252230488242497270000500512792856918335463216152047708643362973887016176100992903659269887582991184384791104223647284953240350166516694915540996851861362497133052194846290629979352082217795088574867691935983876955618402249357946758032550164985432095392578695720144964344093961784267278196442798575697620575367561094810160137147179220207902665292387368277240545983242930876763684869162546433846301145212565227979572255242459645170685303819003120986686527803528990923132036199098606543400145952540772769224138355252867403688656673480492272035555627321999780697739282125697764107944427129003967177104829460206760547002487145841562071525617629586464378577013450880302122402190503817305142328471340973876659124750249335170054585156366391397500727491737025847088897689134809088568356541641750571375851271488648696548987090443918370351322093233259954553446095661549575818787027447896912890342328709552770566627466353007507135797008148290669131063450155034642856832368316802736399518055291037907632804863687508929036520274516262557428504946879016635227334283277996162481926874763405713202586476578705498103671874725288081950861483803442075223959092884382024576263132256121618020124765559493826789339188569657517093769369369606466848292736396037583900232329859919473667471440874365148435946710333840036637041876670138977890367000831025869068300100751033815589418548536337296014031628446104441913280372193821666901812181598376405916643641655084228824429815484046456736133865872248732992652020211728070611228451162640003452915603450301923324026003193197374646642957051616663441351013776073164054197891048338764088801292532520473990650678314403125289241267481392802521200386900819619772667096404154235717033138374077105236816537872818293094561802515357004162278685859663901842031960919392135538201737903868139135539617628798404638052941869409101929547337044266156954658377808278243726880501060545269796025900101222204434881742973526598611213887955851438173409782258904907924352149418900701178882535919395346458343205697129980791484127611775755066290031802632390187262349889891895623268240827229910862336803975069944269631704629439779993695479065294237546879800926712807224120505227531206784609075342018518558983514532996466402246803032936684263751736141894733475817155166113265095717583750515445567867121421582305368722667509018147779809926531019083866996133104626952160311794881145180193260421570922098354239748313348499314524625127287018775259923308794477267003668016325046889674633194013832970185072316684875949067090095444445587296734476284317145722264862215393925039604844773666894968393795259345194770809341850432042103720617211627833486364912662692777426873353358284109648882219555307796626648628966062077122813373274323748439332586760403119399309376506470462266270341746949386100370491780329186896553626000957919011239999249249510074981302517250920146908536689185076661789050736912898876091806362304943162086043203209875131210596248905032762438545884775860649330065436236939684208862367118429461261339409974131723660255096648158485956108376196404444894993349946094059204140678247698540657625733907799507471944683462341643024293650509971707133390716046431242467276252242700438482639995950714461992454250207928231684308167517487808963407513733949271496157991952178517761840619990462714937962649204742819596158693698493262337133119516823709963400752339791673961382771708106236369900645357746456999274887341242025322069368087242576242339922470222812022973199102778272620562783201691953802849536514906379734136017581507817851793219652121420629232451128213684011373301868843071551087062371451596171156267122755094178039631980908396796095741122525663592005501465650689675658435016377068039554597379814092467349565206211328890348517801586572807369854652654848215868149919242706989241688969931300600035422741727108949196915610671916758097840864160604111004117037512305808364947778109266797662865512266688286902513868564292262989636501560515862873756489093545389170622338299948599794027182815298301204641473318289929813528525722498312473434079540781117892286222582679823699518612064967266666832711006765301344375097792978798236269808995182725604242977706767749568018681351888547180697055479041174087389132431955333713430641783274815476198116679112772632069892845006040042023597668144432291139153179359152700124412568700025208190876940614234118732910826807954821171979870472713581311840897260062000633762749176794192014686384742643097989133440746678347215797934219370624665670611088211002240483003766525454482707340680072673832109571609977086113375151007628792443403481257236453188408998165677134233430455566192039542288947910883142999262306802336622862554831895792471047152577991429138753279997481345519962045741158269983784650204488649897916227905508095463032843733289069039415642755764626644520211251432599669841622287914065912258249830553903409078976831679268226168003783543323054848291607427446070528554351356013480324011073833587510796067323310410845560661036436244304583375669176872671275751431289408734319962146791080066670735688930404062361567766925286928154695057818003281551534190211260558558130787316668252616570461762552925252403566811687555323727683774297181784540536030272180439220063472800052393752791454306548296755326799038934869297612576783015725675671804322637513431907439629904542654381599737618548490324818313732902961115999871654343029215419789044072184314883236073953208148797976258989641624895229399159736472555433473860770779380676984637474179776676894042245239933815522042664581112132076708318976533154195862479857356304990694037133536286740045803345943850694719916319915803565577071330288062705941844632709406588641934935936965217104076448748041003701894067199647473766813876462400196902680219258226015590940260510648282945344308583941332183522831680224868902457230650364663798596089394001697872971159217924028975739281677982003637540175495580639570052989309809273894908477038851686241310080004543422246274417787307340563548676503581177917807100704186394795700265406731105959552146819393567755251838411450899241660092925656814433489882686403667486412933247354101687137792336090527759735609555532940823545966645201625196701232679852571876836133857778300668293904435931935788417188959677632476719648463113288848799018494019030070968567311601345863643367550258803642498629178442853273887845900166251314982357738578541377449285518725297784452047064429391122295774189928112798803150422189490040574564372647598869058309547060023850092663295382002959307409836469997196312207130068267023449890169742255261719980150696889979489011734182206607212395569246908156938863275317605765516343295328046777141462944118352110009975877314537504710511278451020606100137448509242846781777625912919553322766603261959421860780660509246064923232210942289345581601039851613353128930090891304112274079716654583139867594666933903781475584496584483138464323571798498068822096732592937906958909823285377771512828326887957876718450769839395982910966894600003045125776698407636668923714303334808067947458802602619726544408280768822391326715923094033900668370322541123422956941052190547796560796148657051709827673308651346270185362488052657623041875219551446462913565555414573453174467061905175222029146198088113615457926673644472483220092996046892906147804752386054427674150554902830232378632046622484563462802618461886654971515940909465195072304141556419207999811614663731464967056022127181296150011270483091480866978042506884929787388318305626335067750297397745422952417748111520983222179148351798319793842967279584698208103529895889891375286871679400519951085503938513564612965558460843789658714473544523609222312232741257613507214877954839545958485800727959550157623563967095575401581425638998490500273998062044839586941228006786585570512248727601415320761889001122689708286259857225711203460060148638892779051489453401404561068952656609978390914573481258003279058181646390504480397314906838318994818712231795776799213933102204612049330543466084861568534164574650658539628223248389883906208130743778836441312885373803598092596146099396133205226937465493374447486768649989568103236916621503070404220009884698177545349559035419583215053240461959187458277992077995051613088468975813490800592458709449480811821992279854852820167256062210637345060019784966602138680583600058131151562779897837412934109761995873861727788234779432918617114224252622805759500733983961665496720418691169062182415630232543086286120723150713048463634965304553379424652030118669085310839076682859809230573337555289254877328255023285185766012643626489525798305720635274164371624868613367115432579448282590880301465695035981176114574974285317960245782142232999438713920438270018866626408546425881562459959086315757912169091995983242028417395948345373176991087760014786029164605884516180008802088532713829283857772792342518106283524757851465483136736387738493875408157010818374805727190553572206288064224028083801200542099299375838575479939743507886055452173638947308292592705871773873733322382880202939630381280969383080665393836011378702962498433159748623747245046254179407541511730197060675500641639249874849481223834240704267721780942980584671920045910952517474745928538977929778991677016632698804459706448613565703605295190962442228376702927465006921158773934000794460866377267400816877610105658980331300347606832475716977578889283272200059183726888606675988952538322772686321097043065095870665914294958491491860328636328420622692717976500286176295056101728606629099965926489620002320843864606708615776817474901776576322453805909946604926960805129088106171332094747806523652534890352317381728021649596990060915559936580800495143396763824636332513659822304681213936026422151401094193060962256479042279612992847879185673849967600661830508905007906655495780535558198970832230984374431553102228602537749124049197748410609253920296695527648534413756606057482492238048762278131771770067177824262596525100942911300385010124487185133140253905288630051796589679145788244511982432725905825673934363976666677095715214177929457633451244889645684457079735341724363531967869698996729485995888860834308744403178576025629471837592593027318990896219554459577040284908678915509365006686769270340830865680080598555002313294412881632408736965490185271568893353703558654405187426354501160087319968486975276519605818493621486658691620257111884687019765095138302059675269449178938956681250702671246770745434583741418539669258658105039814009155534582980357685219350004005023213848005381151292198861993980883227973943410051236957497225932485053119468471234369574473057249604066116324502324379929198760541901459963425326863534218117578261858317045678963080730497954485871562328299456247181632982967618891278863495978862872060001683219513524014150195760650956759177574902182762249615093893003448695274399488820690836257094678821229470535745602964369032370892234991963031608740043872702661102500421251469760455983052162225119651676939367101888089557829575477460044075612835592102069772881061832190508192531323539804711426444394086098996671028548270814185530497329634240876720071460400148116875638338336844854081437327884504669628427694558999535454423278991606947324488410755723277513584301243784065906553919312130867046455812406069799547507292265938150197058099099413632496473470911092443404268422652080450658322825331504387951610115025912923865538262830692993913403828281850055538680506405414418775545596547733156240281578020284443572133506254100395860264797587208895536436771620743828319270883217041346117501073957620633698233187645303190980262125892267560486029553721243179147701415664804758925175899388562877433558383225636754751066818510476174838315753692261983092450418855241094330509311655086323099787822133197246688743677048115971839718834107714722484677439952721365245230589175293580434849228114313364968441287298043031005037761305554484430191746593437610175538924070206667574866453556301726629154998759274875013414235001276100635115024238252580536312443879738896350075053520415045013674249981990351777642082524206009797339338330473287967157662181228446164859785853978623525530940532585937638857979651815823932398889504219554277416661143897175973338995377875544363103201567661134847258092528508121987269783135948526849110478445324320184703196359343017847877634136327848145501099980065959684604001656759916372735043337787125489026814144712125004569647581696478099113741331503866834329145155165278052073928531033332477113719585470965484394405691336521948485647842417310677128650539681523254769620646416753041887944706225366494893285957162775633975363956229786437314957708296219034304244886620606697983441361367067355334589385635462099212846009402891402856875334937403640246414666023978778012953475561436871938759235964885347957282211697821416472902627663818333234199714334144575666346639781594569025123482476272864939144458625759253912229754381859718757144921916885518518099421926985764666178270312826157510923909438126814352157933376346926624856836289607211126141989903941962512025261969415296096265824657292246694523494374855997120993217079598207389125594409536033550103560365887249587215703439824910665949536809741500136520864252835792935525368390516984880808570774931191311492554163781883313153831676967396084226714861796806310453884327635995484884919214633424079598678922163726738047972991990915677328327859669445428225437361134884361948826337310440360403229798645331778310921584099725016205336351683097319658195673146332136591998861494490869328826260023703128696292780937961566761828494477803364619097363404993718524454854248233084855818324765317537940205473375844121524898452632095202758445528497162106587575866777193705455676720558143663398749805476042519450205435706508492649180658516509061310898186192208698617676900041421641397006277465856159664890971106988018972560943160040108586895668566024984537846461248327967077521843617009004876981232234783462675788037662266767333910282892245228241403630341113004196737616220526884014797564977684431699913263924581102957142574602556100776867481544482451372085965922942969843556534826849454714535844108824983515983519987100800179030913908343305142617406825281381073138807388272011518068155010419186005279123537549967936660778516858074968524195622505982420910030205857886838778151243254282229554160027882424433547012012582609317654296489036709466708732294625697663931715676338884321994948755482764043137861354510749338349440054309845139364419348649363980630304328516816327086890143584590225654798280409170137918606597407161254613529951980058666211706047706396524880435824181821800451177089387915820605125410540945623441452527138337162129373587404385228961844777588829580544499311752039752764117894748609107316470657809649088319859793869684259987139470386386259938243614187575570735009587376620626639846837515582063350140433453684998549238699547163591781468263571413348135312280908692812665734667079282824184287384298892823208554560696800710754716169798852469661258662268518332864381506298107244759043350599996248784573911067775855492180909541334403101645767123071647797933945279595539413110271227056804025447199268838034185385847734096804404859606791812116570041747191218824107045546200274428944212202614864594208301238908986404578336516071483529236509271154771840264022232573100970493815472670720278157632626567521259058250118655844725811168247098242304416229806644536421373797854951944011606423124758302056048943406721623784505265911499562764162149128772174901789689330306481983998997900127655510045046445000592444755290845322431399247202052580243147349410614004796898878969827288942907371112616059884390813956396105152143172642022102865272198335521157595322694051674938354227984684080972601299081352289068531577000067003049640801269131816982601937484972893094063675713402318008967273597281467929440965848867961020709364140506085897766053413181819189342341117739600069753276006946737556346487530523488168375870581006816191402940039025652649166955352102178468352583520417579137608933454887136401618146756487335704466474010760002775224550709753942664382874816930073149280163129326683792313352373381549052337657577939177251786777717744534504270993612074689231325016026002109013245659647560069571577418786305648554581041731961426244852508399105564639243853370970064063836624017319367956066868080207292927229903326463047683204023531624092580103729664115575608428234216324226242306083792163361940775180009117754587373017943839164107147241743545661931680289742977687690665294202490190586475006101624330522370797426483216421034832663446934565514797211137627118829893577686565051312896622035747258853824709572158090916162920768962319290482339290046802844825364872846006682088363264665245381682612034823166342229159629529682523645865716047181937985631460790779333662682457429994258883693601972385944460612376701018963309360900935614107573428027849077685523389148217279417179159143388604477816617859072496737482012689892704496906853725578273740721741326703057849697727873585021009141372019586020728362722675910542733482088106163660332764192632143075150579960023911556649867508360236774190501414435677374844898169695259763509997173302411524613216602851745335677662471800144778850635119755583307036297885941303903976034066629630661977549928707054795450658440978260098488530981894793484551498603209797562392712972987065310269868492167208347489782281755779059977250984108041674651020816289721027102806167133040050076123267746096026484745480856437766840775804508291291196405994519105395054157539200616334948744307736666567538238741835448309517065130161960646308938029830972887160941174316882818086434222232090249516084326258159907558468912096359108053716050196603967289817467793599161260453907923920475006308242557161693748878354026130670205555694414050644016437274205952490547914502161470715469226168805220537602565636624429598038022574731448310459412159679328246017140153617495418151297330424919378474875919225607483094119403029152581196717705233932946368612733337350812233357675358360017897613499558030251205306328312057270221741701512742210360056643665101804163387380674680359363515542729660353095102539661004893247395865659546259548167806559597081325388811502227572605089016068133194797504710983979737077296701388968486430042165247293288922019593186463906085704679447881268076850850029838521771776931299257478660012685691344091934342337531703060640986057268990071652790372270415835365223676856208353342635264507069213337835728199112560788878424318205682393592786910621771471042528990525934725383371296882068122359251098341964885327784965643033897017882214441745700393266883612066445151680285775359125610072840860480671302895022130648648200400919208147491618550676341133534819995455064199193943526949152384097432978178338964051780266937428903160545339811661359050131726059307764380093235300005067635531352773259590575300527884216307471289120930627372598729361515750966662635346540310869809328792546277465341541093287439303153886775284665586552005046781869681558495814409597846042360340411120351527446396550719361698190744808006929824459667995054318380509749714226441611980278545659610179326966535764329393177987727281411739907695386496296322503078388757710189712850154834351929044073742177665687947307830738409770697439609125016050761808605563899078935358007916879177622263712210606381991231621938762351597347913949879630876465889368211969708492807630632441381520039522826494389589262880129060889381941989438089897165286613563029840497092937282071669627148201239091230812799978832243737487922513693683497119881852876475589212332790933848627670624159472294343204452831636131416916990771389935413363273844041826359725996195900748673733845945083625999075339923394074324795860028059284317197355224649749177022898211179666557391490855467767693900215202336648319552039578616845000690823966757675500608306012312853676007294093359023804876590428604278458618322202702995316197046625532157716175018765140035159448120494856182085699524477590600573546628532636561870821587980347681054941732389079934445781508496323709168273649112046836615128706332360778954502801033041044738535254717876912987741851446839628516828666452609526006065610050609072186650674775175752305782741326628533785569562880938731331026424449605423738275087448127082669353034249076075031355131690334912394116163918805491933137489648393072151362123741195731233488416328539304323410154821933074266262244355585828770593105495432377942060304833740598414950412828044379210053474544530115065634887384321142655926690671127845354260233546588106002057794910508961894357554802382869449502515864748888114234436583618251864862218996575080860836767327346132204690096553598610515623286150580749586961842442952160345191307749948606626903729928481384905367938381673990979418066361586559007290517748611646318046751911819736103397432485597654884436074563954616096414841999457770600955935764487126556496308304398632406223339961015469605949368532771005354353466616440556236405593067137347420648328164872305867655980931331746582919215650495479645694317010601822100858002547548046996721774262150091894357597759355335308604760218771423762783998369436842401613189511672555517639192117683333462216782148606972441775401456421733624374886715417485233312905876469654800245923071239498883991499473142229458296386994429840566508116552532710521414877740609063169082977726051910749964546997778979543147790855677698588858635416816844349431174095392177092833711986173032065238763054431205542310466441729728836463391110056438028266888594214178791194672884608010371772564482163497172553623061543893035174769926456996912848824627413739546409947903068271889283668599899002055708279376979436531601360664480894452335866360579125907473814304907327607719237293054895323931136896264403736355545740275741806067733720864194248169152357730891423361035114329331977119774164945831412088974722659565310344458230309231055761315122430641121239398765867318122808769765588812403756043473673593791229730993721930948566958692551778469439567581291031056086106320631770923065477373544628257211485993913667828374775180826809460097366290122187073126564201893247372013785635413120929478823243302005467195508821897424449936879148298879226691971629307536863780277116741205306449562715479154092439205023909772481100397838571007284370971057531291509469550582551485819170767043738758065629758097131306346108750475466935699826147105039005479136241715603288208249313965382295947177534464907477995396202444684227067846006868213238489721516636414326110188601551361682985625658500530494514271702226211739768574048046785182789646961270721361696965609231720369940758696041046754435560437421461744325935514383470649364055156278689288216367189095710077984926676478470289901038709856566442979882425283582457912255775516391450684286109113435510430769940087018263881039197444618384706877283893613633172900026672859441310761296886622839309814111463022461960476054494222063801517552958181748742998430891432419439783571214592563003885037445779706238225742395510685414014429178125725454725201282432063241531822990867599999682240023226036963486210693349592851976323942162852226401554310781453877626810374752957560746594088403652277163025308546634509487435067996465612253447025479669018469700493773331837033586097856000313435015144349490127090290932615609142029799006739732947473542524853904076011450383273629467950442955512632433283971758041770280824042644334477048470055779778932683951379420401879570345654626477756839297506160324559827748181058757978034138394383129599751250510197945919232291032512006782747890035871286087974204908705216430021160166123407517842631702146027071130735782183967594023088113098449515228311669848138937701083715614057929794156326381880523637317930659174112949205267113244282894746764659272383115662760587455227083176235762092945639877589628618965018366866165837611180146261494643418395258540291998050293608548543388149630175215982829978670892875241653949809609088823378987151342580729458991334150058649414291623771554815887855890625671544372421216640789108269360055895293537308475567612110125121218612722390675642134852288702620996055677658601924739016183701070801928865144419709225167750127393234011417097535748147770554534067004105642421072228644761516613616554127485522975569137271021310025118364373967497296533795488870935592525451666922921270762154309559581208228949091035584319553318977696045598353701859971244147850906972781551187566017862882838003878946633630278525450967443630073955250751189658875520927542125501608460653438814439502841547067113229565747085735329065293548468230203134351456226382480701104332402904219471037059092269919490884828480514898098882163414168493040172395417908911500775129395759668208697429072787693293084218410186192499807687540212724366827285609528849343501725579818430697060693404230238845270298570598410787286513554512955743836432434581881796986049204500004383378977532190695454549765029830253293313041463514529033370106263045326539864715058094932667438534033159973774697976442769803369255867383906372900847713693966181728182755162563772800796523554591406567078585226723287646581632941170659436979571497196172425368690622636341382540889186864627509662042236322635317179799244189803093072802703072014265194123288127258579855981388125045136751512781782479958099352564170794858908997652051366761489772454611590711395651417418007523581042296971749197791515783878876011086441337290477275104637639143329389851543309842701052022100792863143724934507725479862344167942634980796837901974837341303492920662123685041056559094522023745455919652022124228582165629117671536169273884401567234252068689649474561206525684538995751271587016223052353292386359880123690251238872726039399545113149202483731245944767743597771010598040690266725110320721416829592904062822362285147508762152669307969114181481710576034120923373966482561906023048083228705189423235480371378940475178812994539190001827967726571264303677769351204490978870512092478965565069931795566591062285939752622217657617054110675698433145578559876415147364263594727783359362164383419648815168907484814411051225715308918409608507737968427302572801678951676867597064960692594113393676185868754802534671289513291002444648620621320294873203138060230587023145651942131964702644503420386322864268616641221967173395690598136267025857856153267722433835582992735047221783892536606772977307034317428973130829095268249386457908176313592104404164836933513755079404461340474069088689425265600729910202612176900303410506118771356319853726823381267270353503083664702354168664896993159787704877780901144353669372941976865719914669231641099054025780345228268568366626959546386545415750172353292292972021893365760470637810660365298729874754410203812896818977832100558067702038848483069653052394554718692029049372569303778588141752813982590656823717795565025055096832077197965980839532933031808499790618865432108423817212398459191036136154196071779384096454202303347278245219253980199923740479543086476512094193517030500305895456724785627540424630764959153024805118011000039229311393935248825402332378809273322584335778466535950527147346350923687305339684161645073837355080456032937328794261819006625339102622952156900665390199482204713680965624755613191030086559188998807766337162670592211535817508664682238568982714583404544519674819962273932787103503883874151664675038183031345098819307484294284624725976847155080704778931527184401496362019926065823051306913683554407566112064084614659799602932602404582520492489645132734183262462760806707764008517468922049569832438804883877797468802159904973241925822298970721995968805793356427178251938923190217179956511453340201073355154817676094205163356941930526098072631714030163401904409539857537387904936249422483754212508161280047501066700933742654255766725470688287629132115123238873569507220867968705440705280884623919074523996641608726432202401260621899881679253235283554461487555354352237881289460502048278465837671634331195773652240273160705933673704298858428859767897266848490347962172770087112553758373100621042471560870529611837211334310372463126883942774960738646462932498901375497208945124077377581278868286300578204730169543926628233491695354337975407123787242500130572796608944850051933392539107727098028459776604329155817479553514958875524674983461232420299304574871346160676907977358153328960814168537062068662212879636872278214963236616436264175293822122190007297654319363634321254064808976616488498202528667958189592897369480120935169154393441153395078673677054458011446067657918917440971536775260427915967901469551626827281535701909768297590722635306687013713755131264483374109050478833244337994106968482511003679494459436019909817193684053167599437026518519199501603098647005396943264211102717821617563297042681054564977547690182342830822675573623756748359778087300698788760329252393779016969532655357469365665917524171852699854706588308123925261647635830844538434683160663222321029889004636546466280123257587203929995203821061784108706345569385169534293676489810027653205282144312067366659032261256997103604057060960632624717851193138636508063772812610690727187421693797372593526492552731337201706121886735402574797627774023201575057764318360248554631237702332601410238187129007911445945431069035322090777356743473744213081068290550864313893185792308689018930181022205852094884256962173787416643009955611282016576111787615985256689966291160528029386957499866294784460447918722028949715097981490938109608947903080506367611300534302353962881195945460125010224516345819936844871670830610561130976653076879924814331331845942023031214408615882745142228092830217061326630903272115136437181681281239827880019845464106094249656153833028276282377779483704655949577805599756049071682193279605821245339760579524340716783881948977297522830301884076412187582250554063344972212115726483994880440388263873917297216081078849558126518309614327000272112656647998068051117401288937586916840302351032010358970428419378924010750629127528845980695410550363485030168622002608762595829721377495053623059535693806851234784064041023307369496638710258100487610685296677319554889738405169797647401937440535292849769971039658413147452639322742220558523583602636275083402953380658898617142774448675238971190746266272282299972527328511161022364764187686193621328663700869071153000928666619897444791748650240802559589599177189040027742080699959857920740261296589198312997092354590774021234956552718951278691646330712538810306295261113181672820026976861394990168829859567529704207173393574853762759787071139836828241319737562016231669536629067958842070804992847877103173583461849497656742216413299125446895538378655558129136342609811063102951261187605876459473687861950627734367734352007965164382951643445397119707389470705941652000462959810597390372353453667491676662332018104842876038288095539252790056286225573680819649179327256499329585656736335319551819397184450292112846487144631639589786001958133976202883671386677849542329296755606228882151931106852450345523460228935755958061000384198477925222005500347092639682438168368343026141438411542590816359566272058992547348223279235821332410034426502965680475094663963707131417293799938383998220663270842523189110936849038291965379447088842021554567600535112796618694777327656666889919368301259285746019684569016365051487975616052413929276617771234068138153440592813909434835379332634027016961132959451251499567190517413270673105880251121870314966189789654937043221990971369387685959621790336385644029726928388766259687343729825548105456094809225907737687253355811401817976176957232390665591431290217841158680361910411293372341356845859537983326326839100359148447107390032181490041847102704881825198778472201147955456115788928849237202955394739621972442328900483049331035631931695144268795937371755393832749613713971303242707105839673771741194125196757345180408068653557809795854562644644178080033645297012931816155456066636393509998687656391530276498532838519813391695890514244294926096811483209384078648693980468427956425071311120657850165111206089615459228748934761702917738919205219973542917276781873661070016159324009445979201256392882431634364151726684797249311204344718879941016059610820368506115214752757458464582780616481121153575125903165406980439011804385059847036396619989643474929017287585575303403373525001984089880767665001122465842413794447481682093733800211770556761977826571099498237807356387334281792510846534516338142263857112793233064572500935426164519709399146885613229405855204956751138837085052969323590352049694174618881795253352063927900573595156208548126722851116279826539244031323029149878889244893244842902278568699859066873134571451328355949727895942590865357547231086371188735452400484230803306229533632096622781972878144884750441568271135045083604555416251711414190313786170678992209657651247384408564943467462908262165787534088995186653189529109560173541572417947237452337999751022456803634085821680264233103677411906400963837049941445082886625410494149920985740793657818138543371618551284684005099537469059981721710658720112598172653807896528875527851652847496947142538374853375058661933960508108028538237991592691969174616675901664200319548764841902221885556615750783920584829941245540790643270897348370375804697230303081098691640590717693826305314516193244012279023340068576725092796626022242344599355713012372036022178094438822820376358457747582765647953151261919006028872395441081865477897830793418171308089867501281951010726643714031398065228014732496136841565155909672737305998242246937260773248367050423335659140747846693030813840756661115294983310307153432819770601310549998315893184279663542444894243886948454994886388755552703714745030577511081197360953751069348234195101572395460426080301636462863780500914017814288517681214565345866553454573593925927656073505854465148050693785056875831684087603838167062561262840881606255718567425889968517428971289946142422782203447689687666791707461271539683468257946479604954468224390512643423616730538958136359395560123494219032969810491846542555575364714945090942168137886406807654312057609924529110173557369999396712159528550012813726778608145532188308261001315554434280841038875866165937743257132694235617923244161947852836432174477234423375406741553584805253937631751821021776324380238020192142863824808324433526817359269482577377484492157787775517148565259087939510897825165478240163155436106993639884227678579673043348724922937265713549031841485329432577962193148107606016392677473375687438337943352527008936938407422645781257938876918103639895160470794957171918971188678925997823020028955412145216327805485464942110174164716392995152069672329627905824864477865263807096635271665803762379290622372670340802485901792899174894018284161094978475906454710834787777447068163994767005880456810093649493774616108332557821107630130149953314704624889074235366569915307344541056052039527177164119944041234925146887870410331213101712069300288423108798857537314640722611255735819769359514204877357916617157395227450893648019308177550425898053844983366406993611046643615976466647615880430115843074620334883661427052650178826881080069532835971161123304140552578007595150626171983434214222452263216206001596214866569933740351847302563516417000224374536452462262032294781722809019123986761636419649341871946994870407972942154984075014447352164433417897326321300891630041536114277902526013210353030958781152649773008971302200522102591856152018525633201786794620126945761922853290059183937295581436668530509964025742458062336665762489629423954623795022250318183793931020046590137943035528392571291145059064555116028862311310666688322757755650322430314432984369682980674639737391080207278972562335866799472719375563297260120878556431674230451697609742493922333777054249309593635482043816477481012283001044526022397472041261502926238940743091754689976736657329256404764433719984485166798713922544399024654247792601849147099211635418321811458303342639417772538300807865741988192644835617163872818801445767060596325878481676047384697355864110809110575953958113704758087681195817140188965268682598867453635172781356015165552062876973623107104704404685866267136945675792769440472505107144461741531470421073667328925785907456283887932700574062314673627576496979437611310157317584227306073101144993074610331135806617250834286661773978436266000233194796760122421569856914367443477418130714619150182201592428032049724067054963024959267713578101518341283064537878500348680110354723826159588425247571769212747544211933756310356055391851411186317433129385232183022423318516001156014334211076063421875835751151422573931947867357045247356856493153338716665292043917576548311830623002948929766030407830819939931646385279708869999040756348763314048570395792234157595625939503113672753793857825263949875891706977847658622718398265652500593861690681073067440161353013754341818237459072662001541720474488723831309624069015670213227155952436868908859235788405880154030291869251658482607563714268822955765742370205962730183611230646491554343370792010546414946291883070738224950772384033908411746919851294261060335651784275678405001371093211088541360865777825965734178860179779046718668151494158060224626183582914687234756967934374559065188114874590646943591316455806753409068219794073956693290954600779260534080344687018548071781739005990794986198522145479829269460341305048105425052525199987842003612173379479299650991104053886636249843857703136360402999790671106828313331096849956795607557721327464667328782257940651958805665941380956425963949985941538457737336962357243143661703703543635060225479517089581768484392095203788123750998102666754941215932115990816715146830792135893616384032738039944359842242204220914245935557383198657807857275268815692585655667415495542065007103447506541680151383111891797875607187919236765019493998001900379806090244255048865768442578682911094668655212901047256185669322427782130581554534326115778812421799003250687638331155183600211051553513751240485047823133642007449953263526875770182027039328137554430613309152170351177638794096189353174377946630250946388684102377984181781582661031148326260123305278749632976321848719715179900793361572838174175258661855656635535228640151920505808947459221016488709273552894442183801983049079195183463251314273711609964291856971239367958794649796888280570251107730794827336116285982149618316905247871611099932245814047214756052981831712313014944541335580962051757946863479868403366559554862672436275469380000652340919275190296004154512112748047893760622121745949675037371018613753121607265053891317900917590008962836860899042918220702386379523277992169134757200456604558915477831393307987724734826266053117363468296719063897111061800089066641551959903478475869377878016773232585587114663132877446911210439097826218101643417748777382126759658065009268990834812553721192365239612727188660545292287115488807437233571590416324435734127581654901479431041087948219987858215139207430484310997942292122837753088021294871531416017308584467003340279802362942457144539704441147085727961315862676610575281710716341889724745957868686555084891136218616058148712097974530303259216592531664220157705152888912251726374483629314242284746478197267372684897139026201859700219896561712723648222495248251988553695802176127786056810872974392777649493404541338689838103967181199870607730674809541833984931619106122655347415885396720935858864961150193788808321943138423396802201067071528883718877998896996826453162251759992139110519317501365853106901477638312769951720795931702446055752678680782292835640814437925988049427161507510554327044167946036490983400431915204225416997826780470846510456219047073332164131074099529727234675959426416999367678097872763530896946523291411362481576825232605787085649821151560375797990247843493999295077958239786020395149153613035115054745560660838471992512863849551004294501193414019178560985293299105329343233203547458539706387026467915896463457802984089036225305989473368488193509493438940789297552151544997235018288675904624079117450892953377248594463503395246382055745907638784528650328299792295802750301079416484591765925623420307420660096294213826953774236824576520191131545865245915092097600868788399046756491885579197336617773860387646074348087363614205133375781454923723746039561924296586206198732545000974333942795492564314501818630668580868393383604727145962663034574398873672403672068216283210136802303553246203295861256803553009242580115875939119837366664916077483125568538544454587609288989592672250620865224938520105629353888156693104622197376693872514399638230420592943658594783401042899047547822541608425997534202873705550570377660246200208707507054517885686235600386941930476173490140207202204836667623120449734672482221190667379436131871868816671153373420607387226911348948275023162285810793166919464221115186106786332737243627925366107895797885041635600562385984456618071760554412898507992222247435256457112638484448786392289929689046145844741516912870491110977815731960234799552556778619554827883163781087533519563763124804056407697505968449084650321550154197140093955698025131530603124089516087248773239427665178616817550565708379705839143712660635746011974602471033608705674121020270379348006338110561817082186503173389327996394729423520559584197048625686265191990594243947864916495904557864562600859592232951574446391748461828802161737613833554536394223409719562532557219093524206576991299043857893692412353995307192386575623210921876759117308326491302925422081071662041505526103450128730234638733348259873446161849518535428765864047761433395365256634363026173398278846881242771935774909756166500680059000963829649865514509571053477057727947648114654964596284123004649985318798403403365822259064555505585884552143970255738126171820275368350529251967213592617550805211969813166098075811921118724830469205243446251903335510071339866566647587003572112040209716800781794398395976390618396581569111021735920211766365121409516196591347000139452536110180073678196633895368726274739895990771782896982133870377407565614713518462409819442237848293136204356134761732454204166761603253769502711666976661820315845391839983475758856300045855443670011799509892224536253228518942131634999764693438121810996793526289863152492681895446263149947902418159729551484223854332995793526085575278011530706123073714140246898731180613337635288851326803606035664588024936810914271117677011232381615487006919861675601360346142403843660427856186110031457982568117982845286668174335287013000044142057092433177144305364422479067923530206862091949563501748278509910209615951035155182043843811832296034697303290330725966204412648281457080500445889419859442578065735497941732502880434492179657552007879921274966265159222602553345892385936488357371968470022951882827298352674572323126529049168446972173972631570874131718085354825844192374105259464793748282728290706906997256789820019317702390434718602996598558298318047490008245612716877292111043397120195300310876277222407693275186910161498989440901329721260847937006457024069057895618349851427557422916261158890642291043209597830820968310839472652699204222358686347805371335898351839501350097951541350424651570910977472634966386268588014860490077077002515615326747905583097715115415878346507308660468044300010115471230811359047430367220038901599565054705030129007280776174531072845994244867863926649325045323412726966455561451565590333533427474707544484798395344737131639279380507263620548449687019546102682464125983013181218217957836086016555285970624076125791935758462229916136559457869079219795876805390627910364227072141133604156857595967416769005744840530221808614335479487131298530517386587638232316521507313412198180345586324547841202306642734118997190971728831758502131882986525359435434376924701999635054037027428397650475978308317702861157535142101425659098198625081023412117576037293855252563729534583546454185390992262639874280557449077539309423479496381291808983006166004810550714071590999703348047054111826734504379019655446463305866585339384957888327310536845149186514879788070910757796914161699756163585934474537891671090554703755914179245825312636243802914818181315107264627678218144434503962808294988091624159813340117783416993289777915884721925030768486116483921008975256772447051922274616338534319383989375772037916644400491940471713570537906617833389418043137358217421528749775896061978234897798535883771853896132282466803154850386825948697558509276454252940330179265918081857834642536970568569821916207006496058051913917071319911227525263330027495784172411057372002186258632759901523632189266028575725666181874847962884366455003719090846401056161708408811105383970645374015524023871509741253774712862824216636799414183882574648951824860603166707396306403830518367505235893348212640191352612942635806031499672119269989511650845193859232618215102087738813020092809646117822866744451148490352932380423147972616148332592524360702040909377920135014433346113696604142119614194805235171804854010767095385983117512785661939717124663581030345880581012259925984607450606192148898982439032692917284403981249734345482693886371999291994908061444899635731838598662759064152173379550114983781356391204334025104670663022119563695982998532809848340216294224640576432865060335154903483391212945002088380884366037405801570307171319220315885645922642755234915593710514272829589076595662992364273566576464613468579410222001118035940207556277952074544509459826245976364680868494409057148449733845138757074469781425368903023829469973935753251973437501109463940562194219834009939009620147807796304504163136507858524270106690517352249518865221037037215890000615755587130350165867893585461442456871932808843730673103677456832807918419544755797119430794146670690636208185939675322231178145765128846684493218751849432030879428457444091465094703674454078409918515859902808114888539881001251098326045491377991185952149918306422025339501947439376849539321179773150989570640781472778380458409325508155456578450487928277251678387314297961848907629066965644574343330777507665914925359005606071804635137597953935629356691454939939623755224883812837987681378672570816256052465531118887429067720104400906036146080307586886828548408507720626428508168504801350493117149823063102314844418584065067977137984393938795708348563406554318522064450831549637840571067384595970019386074850877105064822449030067261823263798080704446256352302695036109564952018239602608075626505789108854661577866978866897194792175308495485615830715943773527599189975886890678414554574254796182850446201458984661231689631238788008743296157118784806487096372714179963098111092763986975253860533913984596004128924067839173829187088209720800911976226043704128146265690961930493445149161135607940925696847794843921089856822911774333328212114456258728549625933980656334185211324715134059935895723459562700390069545167576311717822349419565919380115701731446064281663018243527482952968305509745890416620440433786303944785855805539449932499261163054197638299256765262958140763346561019644857654582022366595384304240095539588198423872983940491359465782507540402218636740968579732827126529925540141372298695316920671576589802968928148525552392136987591054219040756421558288912353191149555346200547125792104708475349888857091833535772109126309559830787262724365809702150619223180645024307174146503474303158951409889866186791395440287170963414424909815117272953005256555960794848092206083035681620909217632226996161576523582831676334177191639201458006352750803443989331308373575203593526334371093851853449891195267721497410630421885494210507252140062096828830168245842119405249224099163094899571828531382694605371471509712566676420017470610393321661855530476049941644713629468051995742352978946807168085725265223037104706373240046646062101965348332197954272359713319634367260700815530925747764192777900596523677573628361475126370989975545793549270404865112151264066989966543401202572053097240794281036917746462427902802065850840494987802832776407924772033753787301165272613249436099303263224637523961284640589553318421824579960172815620761419691111062767975196338416713505827906867434592712583749866924694672450038806402100083698954512133394364296701424522063082217594664123077637052732563156255958448923965899691936267131729278956452466832188361780734757169998152916829614882224607240253786923662725951245312030599818358696659766721783471392545653945631567622633946912525461110490406575508339140479993319974130833967018914338200815311256454605554296971239362173979501936293088433570431769649519689956083980118519669178289892562486427367598267151015175762132876157803619386317764946037413925429585838143972746835428584413190269248030962087837250431879636276988923542951127392458915637854244779285539552447689338547562201962543839594378672985141580704633892182149613295315083973047286224726651683326437991083948907582268949181568508950075024572575023051516765082127463660163038848499043654649221612994768879869568826298857770978296241598136103499661237443213297130923380889389893696120650779378797113774354326540505549703375111508036996580014945500731546296988681344271856344383142165544318028153575042163761509903993646302544531216599348440030645310260792842376476895194815805366545781831431358511639817326064820713913564432244476282167081784081160571615521525683515983863234000784405700663209717301025483518539452520421007185322354193166972117364593341519094040090531067018491638426505405340641055026103758459040122728784009058320825416157451118579945436301767671036556998236555505280466240952104210429156853793989072419852312358782366430521660101858213679784674006373614837974320138433344188940947829548889294744820107059770751507787381807147405304115154732626164479340268200381241794914905160360667326703858533166644396563808625367078423012395296235101679375307555243506980309667904392521058944118409896382996243159285343939535377836609593983630546654119652868676079126386638871571524364621868799848706981563060797496991314674147849558265913234678517779662074190154438912026178977704719971837444222822702715375296639571980281532557764123841776473558731616075726836140685772730368879114986510393043723765906645950849200185489337669708747677401199046411159317860266892845148993851898652020690725271176894190173615869337876628615877223783814571753809555533137036340540440665657681066317071016386797695018879254650133597077400487276234120479054217907454145112100500096065170424366818277552751885308205707935971992034960032792965769175542166971136570843578123220592437532475407711070004121125111363430220105673819070604235855588659789788728459020592974358659037444867305359378872929984743804184138627922855177156094170340718084869271407927489772649273084383952187710083887443433779120250860221903876447985508932925000515471611471398158900484532513384946191993893736162523424948812099861009569140306316166508796267541528546761241066681377478426002123402621704142808122302850407492721010348035356660364824889067420287037229424622856369511345807654500292676903441316459554253347490822612301859694931179666935340476673669750912077679040676266541577119864649267084453448771410855128757383007791606069075501517917856023286439981001855684549928822481075679633982765354098067556585419548285790628056465116116760640280334940426271282255312923365792600494931058547394210512554827873109451022133616495489337880495887999643301760392122774663614900026865363041508598448263734618218333599101802877663101963089996951482915684477508981577589248136377241714308293879412890831729436925952850375055676326662051321341139213255138984857131401860350731436452058605730277161910995685096585167555356657411784380035256544865183260104750611142404415422843874824759841691362128976872782901204510826162835546571424338272069192983771424876702598048740577270040121591341313543780142011004175338215572714760677058916736264870935679285990101260562471792765305068957527320927141111080640093445967761577773179009731872397888624053072835429227029846635934345429454258143774353149093121501200451346986838945568595227208155230855451743914014784948511609035561164960113737514379410530050572476666479623641972887142238551236221334997016443780921308148459541590319086446279552131314269285231258736306382462893912746799235781274809897591636045514447382094322787220589917522165569553272361182433489125118331797239770400515503303758506715485329712174690831721426820839152638045667345849473569826701292538980833506495008969289213088806542431996880388602354165151861272164053591823908154570424291239167891840078296872183085696377347080066893125209316471109705674761802991857586104387193590642883521483326110640200517568181311055439895133354702388860153788087891620063061740795086571046331608357678313859100369395164293689796105335706238166913566794971723039526265848931541412725017259294190465302505441086841058938264011445659367066400385498625899115553219439929555734243258870911464157288808537997135952345030309497355316909538784688785893080615665310432576452573277455741861248390904204418788367660611957880972815613921342101859476933658436277525835670381934740048508163516428955722421003442559983944150873678526810737057712355902701905067206951162174369804650631544241401835590444963756762799879186146547774740000309737470808795945865813018465365053634038006760405086399477097119383376317648216526733506843399549966084422390598622130504832538618889464015689695365625383951287000910759322343284465042019553297696336062521147758869173220358084445990519245828221891724883344699777204735098093645671240200689859010327750606109188734773783933294086750143028607532575182973999299676599995899539570803505106928712413487443007079308826329396839201215671727990436323977919574623003591329153404704433217943258622119018003315301078723373594032499654552150807669619200802079896903507943557411411945301972268484232412955613606092069647258058137786101564741524892155786743411149931433639008783172845995552999325408632256011892363364792308576142329379819137047198297037398385818271341230757386590880263238459167574647347506418074290917978109082793983911106242372550871126759758887498455038243727933253098154961575097276206248662766844525952925292332513451862724767122317650615609175005708745428796281550134461357504232014770434645040821390766502587561502505201586980355175922982897012711850463296489509705833220708912628051237439933424565610180510589223321642995683316975007245535098885947364772251321245717658499420018149400109955771146679431953666603093131441968236768508419729629676732970064336386407828087538002209843649461049744755408425515886401539337294930454690465007142094789506329813982456799353471994187843162034525185258062369295732588619732980343110473248732709194465902699762656343257568862764448001524121356532418261348077854949671143637401622457810647494796275045139140183635977362936349127207621173088311784710201491994250527554047062393539334324118463835841174114335797316657822201256908038495289513235017411379714731625655093612666023061531621992762615467925304718873762280198475121511128397729307798318158748832597870150024137699805827309580415515167044593398568497943585167043988665210266338656515710557141985844508745321979789988087776598810136627851254642071093852225550398208205018112859465313796224285380557686766185692139395373130263052031084446817809037306731117428869408326309015285108772992774177338442753792125919819748008919418621081158237643134502586293689315927244821389586191419859752216715637360408087896051764346837637768495794540689183606605979600917096044235001708636838492107403111866276949387658657729503130540251439908992727464564039454639877134798853616272967397982402741376152032831243465855280876790661614549258304660736019549118790313687579320145235219811667689185312872880328668496992401205543605334379913879752016677639181220565085083823969564877613371335482238783900238253414353417220810405946208865796900603967208132035157960958046398197747404494393251204763048917443119953249525800977316055133816587897076036187703084266246012760287690657459709294313034593001213390683953843148510230137270267016348769378142058637673523746903730408622957445737891454041461033053502882497803235623234500125113640121287285375284868704048318689394668453207279254105469257024631373514182133288692262402011636054991404665942497546095849375752815009409370437345973878204025267079137305254228145305296531072717677166624162023898928786157659915206539691516355514359886016757062103142809994151584587001503481386729486402984665468777087232684376856751442568583479211047623107160185169492007370078191643759207179261071780028231704539971555117112645246591878461053858772631096120170324789842183465781082279373272994034956286991004301111031997247813052091755084956679797185605684928575417650763804442358849162683482266940311337309674021235977458224834981926599378797059785736444773729064087031854583829039251997613007585871931286678868086086157175796848768966518719259124489000543478383327702668971840174009956233370211537822706521597297379922015911634725118756727198055614848183539809262411341100065410262003894225201171887917637956432594971066286601284812091811630349052259486519634668508227493561372588901747232948442446132040798622298955585478758740762437112244519960679625389324156375399181261999565609085985500617417980731811841113321962714474287043606669678984951264275108926901011724975162726661961076297451204361064529067304905721279432248340900460132352971089439439567264372221338850541241410102142798997413551880299979054946230288274939094588236507974193990797729738741986985959305777256976478948955377952510768418903873962824857942093899155085699212472586893852945740206191306990574532562008857570642989567063254330830357312775643188588080482712840918608147428237791580111848465394836717472204916601373121417769707446862238142616496909770795358625557590115113233984297821168652747391315613904254117657050242984290403908593753527616613758760461261478997468902758053786094459544487481903716814692562602473039033090423359468209712415844728826928281301806053079530675611315022143484621419675128643919056949214144221286006796202957075842232038682803269582331234540576250782577735606648904562195043162390471590209921267826030373786369507590464667511006351949496343935856876516110980222155524288279532911813554814106755339441146609487773582910047497317748413101343028192998097497255157001549769600210737910221745706589207198919259354588161680841006326068689221620397806198100611782639473753897393510954212683397903459052023156261670242766520995995303002942951985191174383176848754179322003752665270186138829881566510527402651185934388159472485180284327940962225515355819214578621975305533841631173205320382396780963835442016667004353484539081039579165614772969897560488082444708318448817729357259501288064777172824800494108203636656706981288069544640736147763998748556983260656118430672633185945131794829924639331484123645577141763875235664421654112757694521601574943219027893367642861780649370882122565350773870137300136391579144444057151043202832122515854302371424477819258691140694959470139513381318335472272868404800742378815580614489666425924722171856198651028381820334851764062243529956235578189211481078518356868386422502819627692256977472337762243597635397406232885907272313093140204310087425610626668431193327047944390836907727055568173094598869021991314515714790858350812265749030468040064116418879558737618875193967797676461953878609383902286137666559091907511625340025174076856699216718200254075816778979638478043648357151334471887330276029424048546870173224188710292487170982922481483854903641528369537577914439208834738977176611069304058847575367338054568696799735774118610152839912224706053483472646603465542100620366096307169971443344815392436101361917050772353220647212168028015888413895982703191422762810424955704219593206375750398922649636572616819810492094063334674053391058392320160338191437642737955717212296151402055117974756177496870624320962287489986951149531536444997046433685058381839594096423219809835315855596740700631657865359543266053195642281864722791622368364684901738090972442606230477996634512657954441447764395629822615911801129454165645461293494602876874891732951254776246268560914527207177885979053308351541826333891260234085429423080948706343076169632300705926284514217676763722214481507440633842045584479763564252551411121341915541268172379283621708262938624363721357483513502110705301944393683721931587578830113945374385156073573332559911086154571566133248503502643908567399458534414610782255585377501476528580683832051665479115949486842130380715887053769783683054756139388144321945430575609821104096262564136868222929303517511347988632819920168669492677625405394600196209702802109518894375182233898067913894003861988953169859653081465252760378148859909432422458061540040964164951852039475623070473413837291552784140442714252772605434744818424197927941532430715823244492853493904411262687037359336848409796007938430147877469092312939366613299444144674791215130483581730287644788562375699597506283362555575696782015584921521254648416125258709854847580409583270776952658902383125467483630114270847882704618976305114677097239453081212758789100872969257373599731937138488294837455457021411319500540977544799243868814958951389546401997181938178257992157464285525789136445033280159197188027656100085271266970515294174493322365391665546411481984544224807288440014517289917725308238261069881396808010968387190846775711606648935323774355341906333311004042713809649099739036518769423899883708494241732922316181131843017106293740713970429432163616462386938413037657755043367034475226318913280594548364791576783209254415193525817041028056594084858518567158210102568343029933885091004829257775019667063406678051186760478455934339453000324807307965944450704192077591450254351600938228451791476096917993450399067285158562552344649634378451201770901066969690852791313549103448307909729737959711695343822150991929682266630754817997705218717518276500104509235126206390363380140880117491774617574227256571523863257307868337631683858830461048278152657674977652153465312747245965143092104342793229861274170258313638006204992979868056125026502785984857259951261816516308839898476980109947282843310401245416533747816788436776240921564760453844902507934336737996865858407248961178862529271916261710274162899526477620453684398707403136670189452185972137090218268705744186938868608005526811664234898946968209063667045247169994250529466419538771783372922026831249197919362777193849046154324549914368451520536568830237410527787573017279043600072705943117394103396414462505904026635577979872537011996791902338027477055083515506295845807565143162606257244834030636254160047124856355678384252741204044383110106370362094045676993832483146269214737919233751679149044367750768040643170813277465094822157476693344860209895234792785083688011865138758004049713420001275299056628425150455643612062609010909641826171244294142393949354306195548711710689416756729670050323212769099071703318396644642747280426479437054765303077462278345547259980387369222811268566970092521898533593553455070985190289150864861264288902031027214758932505864726465554381289090212784557341235741549919166572253714906251154966787565480631863179239714780685054020375363816697339096061892360542583813926739773751580329520879835380724068781272610858538497763972558653257875100894275338316699288706723411854851704096077595782571487102304077200118056718695996827057988648360134578299166873854887556051108734960008953060865215521449639270224832118950667325555315751168015262590698425412885670905994336183743070102912790575278806761449139532503361216816912893957853562742563708551878621063145737359437690299517150946879890995115578966105803370807846703013887512304753445151600411780659611100732064756635528604001411970884395605088288456168510543627982325597516919587125452737235840625798976132003055485559245660380577888473871113816505237821181498190048342770594091370256666977246189259888953474597797030078137551838582523183461706155482635011166165191377114810707474856750869721548045172567716284201281686272067541685482600935141802442806744181676872804686213926636470394318026742576382737879270765343321395503444743741557251156058821691146793902494411483438135355664045002154018681024956832865561378323473440511833691951509292327682931767492741720406765205592371252856217282660245429189407809397769258336807384761957477151047964239063749002241178756108763955030170534757937161866577582211325826590254858069598619622166185616895552631477003284103159429310717717498227413106424897734898351483820512312325983265149727248154350451742069094988609346027541950885662043324282835973829047376813389125311239854264444677441849116851094599796801936065758598221144115857139087443980339889056909034092471450552589330226458574567627918699197809273748935418283401323959568365559024681759365899420614576615689509264658749221410908037806590064495856044463947834554557992635401673392924674141483096248302996659662349712108517909834517051031178581446581516185322643068662047153666437970180764940007342710607875289944134060299831534008930400925225506065611664275329200873745468516313938981370891453107970390699594997098681851475001368304929475098946596997364462188323492290281600736790855313935767140231062169361156868909749012659594128195374113249776700448456182043676372418094632282173338810874965377015113548873764774402606953411621881059573757660268597673207906171996644537887388094148809813033019301888472139990568212642179266473499104842673580086823091520470453477071894735452785549196456914780819720189428759990624778834458463101411109650097642891491409811077524697115601138416945277479554786675794458319468052292994667383819439795142692451424055521646532577975086954503493407412559956819387475120152144373934491178578109280390307931590131688593919090507695563967910152259944222583574884638958828493847062887756356926172832592590823629236693092779933294985456026952378387166747666051157504636023306703469581376207034848891161951337257416008063416914564616694088597915616719072606394113859106374341329119797135379646947089136927518252379198610605341175286617047022749320227384308320990660251606609066257604328115612870125973113788866801342815055480886163679741207149150462242026739937037227148819698394604089107999868720764933419042281536277078971517573990357849895746477178629182000239746820940130822930578477630244754235714241303837423653701176108289997416169213083208995205206680165950009940804748212029626587330643944216863138496014753208582983896907831678936762866298218528095825021398175772876782227758792703015402131258109427848044134634514332104671136614767970124430899347484034711567787765208970873959963257575416915444240440334894936331533687404212771611985507580032557509932635241242158404632691266121640326926099488564406111517296155686918637537029959596721019155879966422394752426783114279669251362623234025737905871487202641277157514700205244629426512615277026549934181662733417692852182333044431024487681022986061398448452295633924765607551145576377755765316473561658286290317006647244375310952473242818064765153032210483606159381785704700015599091878172389669042800035390728401223787346502745293948100950328464291933640383414544245681976955137141247170079197744067491604323701479333075336829065734094729661219440283623281407656923998751061959587063877014466997833372546369717848879325074785048659812491283134689672001129881743010624029348065293649598540681040903554683201479975319503359950511558593832108151969669636309489791791741927723984136151022975924867110829116221684832669711465878443890455198434282682595147660270477023816673673400356472828224573503854782935366361306466676831651191877705867827197569014283501751742774650291736314032878095020985757182612315861006403203702709306766415431302109745633092564580826977260164457227925667286445619106071321777279872985367450050316310838908976343552331121447577773382348063437862532649497919241386561435379359643724326108875120387956312715539956658391134719302787747625500237825940965292500672370825486709885823250023337704895169175318485601296734147491852617227124617009836198300722681240814147836517173115502859766577848374060939712496690538210303586852779163773696665558016168895069188235181419987523630791626865937233506603973304904493870869544818557414219075604153092426936748747952562292672836441416897717300512633530529894032539933415333410321726999924744379372878013218761410487518428186912001926363667635636145809301777005004353227695224546321677699587160132932466688299160107812318750156786293759559693479911287781069999529995115275277841365419311149395584269452809582556923583603244946695756121816027762674460169805913426657184617954635022118850321150589041816054876466579282320662368263094502098298176420010400987871650438866843309431610471831374682409995215565330703904888998335180661064707608295724328281227400016330531058980711027994929386676711076420833174390128617954150435476321978428780691094708232708927981900635154137605213036386882543172448554465134510737178230723516753115600858451841816699007241102490732548630213515509615826739642849730752962500070729248807298382763964961180798450733261883335433757400451946824685479264325681013052144292325573763414910732382387025231911902683980399278373603959303815256253962633279174114492391154267461271342187149502591637350528899021072048873762464656514048384184161290714074775282815739197035033604794058207117041486811367413323616095603462648246080639315645363554188735304753127326354458978102211928500896648148851166339575400300364808518382804180559221220953214448948477860030047173919708222137317988966832888713328267489040405964061817273136791529371105393925912865170644674697048614663562658127065862220863568580402463220325825918638588204142913380821650724319121826577732568270538249909966159897471654492674666797606612703401954028830307872016896567412702329952686866892022332883382825522576876399930587248189645705617796295692125816570280313350635291473045046445032291018799734579765679723770242807777543540428937659478809455179318789971064332727163726458559905766496035600213567496741415117088079232529420255859866701562368207811399986942647364977955436100689167129455682490251837899776993810884760242293298588632853333931773846056647648977644892455682132864425694801515400836233465100912834464272069874903765251312084673225916306701978529336278679689150192436444712280164818271270594530324855711455940106893497662694428508563802894432277199308351042249834053156192364909685061956671299383447070774957813017631293525383793562673997271082585702160365503148284216056878101873077169073115419541802994932831510744689686857946966618358597380029953839388679775370361514661540576292140342057867431409044301417215138757104373482530389365098297041980209173110310915310485506119051747949640080136270256193223635293253387745751185380781364504786089903525964889665334357108916178717376364298917153871150646686426776955327397188591987138136232884568201546687221062840852580197108115726587248038336460554024550079519409668567769432920446442832793876252135467982381484652816993996053207377588895524799789013893936883763830786437868077733589391852912214450245038663161855738536736911077929366319218679961211114452399029926999870017788060716073663317363063139093181842635480885818393831942182097455651104731586174558854978682701963775866508579705159344236195486337997240443433918080273071350760538192570639936757443832538337227815998586418998437186483786633597773210918229027195171393749988112987174879779794587359595214060569625807180644508480406594508712970469749710912541376340876127186488626070329893081594009402405406734325346533345079184528949650736565284607576883888716365756908355920881395488604133427685685739769886033086247913792374091812262958717976110182795039371051486853412264129469210260541668591621136889456915021810062448515901095600900069647573020723255928584686618516253386214180140370354103659740310777883168289279430464015307107067087801034946240660797670822297706593388391487508021595128088923060326448299592812625864469582235620344803716230752163129763862272200108369523466688613799157201718502824559748698361014710632503232869205279433855141778406381600626057558121755894526755378490438288823739976432386843027383463902919936917460652194475366500624031959499729322792935691936178256485491858323030967567338322957567921643289487133359012073680327129742637895308316490723221316015245317728055469140259420239148498249789097861656441308151479197063683641966629558595811954701737918862406003624479790062690095220987627668273047982120063703510263757186705262018305790970585928077007546715113644478645213815836301095452632614811576120658670396475256173272514052975336380725738336753570074257252614235057739623825815437028994931105096559736404486398489137998805916609357537490547438691909194558418414742998759552125865359256634187055131180114375778186287077731488280235360765045567127230592955958536991783935189296744734938845418116924304058826017102435718843712411052965177802953541534292927839754800215261854337426346084475331152855059282361628498350948577881254968439326583674067095588594341369665463413361442232354745762432934001170201172487324380983212851708692944074573855476645128133698458853110396184931388016108086012864494638733230405911641200940482513667748549666461375016029141666740036029909621698361475877277841387856469886114717292109011036328064542672840249827907321282220900268335773405424783182809862192814134925157615194798518663164185944441011136177356563413990281846178550313538019719274697248628402907364630079738191830053765972380450876443055149509972053644071976122079119733069887838181869819423607197905962251018356925121998083865828024349226335584785501280140335615259996475112839388353675953111439132342339065587423515256600230755210837063852063756705751344983260806864154740234559441924469497963815260466067420009677181670693808460599757982622863245526331181622119359441391229991333454934521714980859332949496057698782872622426198108487919312374767479751599092106642387999358282578591981878588500553238127847017506420554454968339110693526009801013771433964416245654351209505497954578427418719673020984338977210427382735474718268770694227966325319456839585207927285044328597132683020964820929122128055577882228720326147767519449559965928560713911825591488641091340501316947157321350863051908942705049355766266219183116479932561834117521184322038878619396138256465707548107810664176379466039881413985040007287880838212291403914915905253709534020954354713901595397681342054362963033082635039644923597838774407008830202143135326129925851306136896761557542807046465921892182323160537593644464740116985133773423013559082243984258127718956166961063602836056084345609749530430779692893387130981646799485355016565880444288684044252142309191178480338526626604372140713975517057178924205604977928547817707989030565127867774735301920289391384717249696701465477973653991811135355393816999483511964808463833540852426371405282403545939077457691819461557069028519777054915589920606994162680796957431603258852297609884974013836151042235442900289996164805794137753614834043909298721729157610148062795829059724163164899016023569761098198906544954435690442926446789720154684724116273325101152117437453728023072071826716510963958701943769997469220827217038348698320326562164775024045457766069839944294824384594306913748991781781271605254009846150866406120635521610190855112073743444283796138174197168048073019494656190505590930334835603229050250298214066652548221961149029476093171780578309165810971439156923026884826719011245724186991652096423199087572980895723596567388810669724240833070040591672991454515341120407004812641968042647175247831466904359189379379411507427966183081880333278690877009988902788886070856963660622397979028299030145567177253184427876774766781404502788954923398594751746341961324774449198775166052310840498171174088029952620556894738339796060252008555952975190563740098594899387598883008509593357675772029887809845086877853619232024082138588228956422895114980031303062217139662281709509192850841220712704434837502335743190159120923674843013807313993840100608480582046200519646751170907581471700156589322128615166631046856444741928037217889202962512461012309361091490663018923903503088803233953930770603243108370996524042173677387554816481743157776799634736573917188571528460513215793174511569450486453790683245820263708024505769906588329410576604751315046209313405835869142597743282082874670138757896802257011311076929222973131494059350663417606742772089622658585929576105660106558580102082875328464116933400085121772282968270678656337892615881055734491129917048045442919356258878220855485607317902480610339856619386258245253445755967260048389330417232439540904011947376866122866306879878230616640560342741562474256191790734584661481605353669304052710492568961375959212285545657808231939868934569307682348558866473920466079334594204918112091688155120257359655068040108028889918279325528236186583592675201908630196237539346395087526434832427795233819614930265397057559064157047661291124473698362791915273695353972084027104788363764181921687066559460763987733801731325555708089528230413537418906519708392550746795749484303302778690554167339638106501835407123896591779141376352780145505843615532421799534229733122852502149360716864665345244680270221464630495943725505740943808607263629277876105854562896078684762806587877706461568073867255297901191769628627313972845728971568998689060173949958953497906199780828973704490087071951803622999694517473133498133502710481801475121444193496065888057910575420605846070030339833509146068459214514056166398655218267367970027955493407880924808372065955415609619125997822354528984076803919795928928136350684208511815799232713055684286480211253992379953186319796017141056800797648715321923929219069774701150345456498518381353186041747208432396648394034255415152571330740592770857222924215189663565209734432651145455057494778953550950498798598456331473819906793143383309655699116601877720509736760278831793370415128172478068785173401419220817195125645568708201474806306373864426891099994055904543525629969820692070099805431056836760224983909114637941227390537263758559215368395033016559819069281192437612643203861184474796126581097412781278039734459179924358890460672407244028726042574557030979086703282837582886367488848006622736722008436460670330446783878446072079347851503582299235214993596400545745760834872839085925456057783467974434927073376062755515791756488185202468667578334182039468720474213740226663585344703887488836654743474793634383335263785527081055935750331653333318298250831025278821238682874835539806875902835293893914570861770921860869503669097255981620435106708090585053518698198416280307483796558367654876951005439965823933471110173708773984259997005755472673329287812210282721680265721027860124070072119805515477254955007187058187401847707492374658568172020698071606808940143071785378481423401895010962376286205368076939940784472273593310318958540727124979654026921131520893077751092052912176236405921734967710539603173862839589249577254080276190073162417667250546810845621266270414285651465684155685467136735386803715346166590532505025678253081268122475452249625148936537997205438718511404987455660341034136531339435462396278045342376239525330970873851138707131715352524689019974446127651632100271683886344059686644248646825321318125256057209271059139499561327881715007441002104988659441651194228132284693352663566227985179353953761723435784783954246419973513264393442308141937984498295529959579797074070134535620017340271673045988247188013105609718663952040864513538158562093188752008284592146755190756531287440472148925234561057651234057808399597473579342139691458432605332835237467622695117473195960660914263840966726605376764339271209509098770444992714269633020892061677086319401688901199513584997115004597510127434510773005190553264862263675792011025916377796108135860159926817870951454037810805672075198784436855847603924780633650623689076359067874688139000931103003096037231470549819302485729920105847985819075057913653804068124617233468417042684808635004458066235691314335258813794807742704377385101074938300338653865063507661519363108974083545454496523590651703481295370334000710937548935598509960517938550803786508819644448315747026892475074778526373262955280561882635716204508170632648577864963229879668330668831183375726908067142894652724402390943747358962033692880392401115452339461170459071727989676226579781504429066543467777356106472288393229562847251867667045222393240369081622824165119945642991838094691586454299051958644842432684218235806334484445438918489465727934731769681243663311506484750304114412077183051811793090922711908445321475810699580657313608693816364386695347412556513865530926831076374631256794797521842121279651689278391195243410411636658027272804187372836165501974724144402935517190904020691926979839218713255697039976494329252890216734903887551279286566222732513596763424554341249731327046584892659931101423070428124136613745530150322236352286426003311294256979642059403916446527357593902016488647199860341909565715621828476288900960799461971239635351467305486661497455588165773677869345949611030000869565821387451711554856750220520589309133251141725912862930306860238512324434853332829202240309360567688595376458402027005145553884659308489330349792720032721444057863960773078325222948497576187565964157786931246308632054495233959115285999328981243824680654927611577310116726679974820438955007433211501623276830670571161468377806073835153876521376244963374221069616661588151754587962082940087817462658423237252212499661913395281682602353672222013700813514596996301439334280224219883920092924775773004078262131070994710938102931892608387727037981418149372149959654956874202552509205417053473111893181002010394979449804915926172728680826285247257343012868498902438624872949559393391379210625409434320833995022738432251194167445848612074517247616585526815793908921883786274269231519966563252343503662694144186724337665835779314193764743560967428061918965851484189316423380356800366130870606553143111391390988978861105556899190189250838257975598699363727436203629103977322450712761637012450980263631854023980739169521789896112926145452722395584264102413756978376241539691165714045418096850205253089022924226879078796029852932820626399800884483198955964029190101860043649147478192998452933334358697278673133895238380220024336605768765133840479360117671531073388299331779701833775188350107405004969451286799636131853449831638944409481117367882264702562456509495849568491126226939208471022565747238521013705871818631517881806135474561372531888986992656756249613357014200661652876400871037835731802658737650392033920783461040708698172983627513434609872632244882792679033617181601105341899927415534481699738174686477653491986294128575329210706713873847999836276278343368423697754454273820147028596807089541646653134650921486725091625642920973043620081655440214189125023988976564154222484379749730193564414229107694503484192401039157258031667473055148370264801529757455247644797655539288280456005814668959302445219856269070536544492015512104053138245905549836860814502152727684255841415017529301721546287726965029327663880000658319584163799341203765572313714912520095451910837563195112461658063069644355074688148181132840064570842497350549426040408846500850775681429723636204885418981860913119065186278917257172173296900281343037849362573920924566153557343505382518648753597522070390909288293848172320245807138436660632657430471780675953066509471002006811945590037748876591702721158637557929860902947501260736835651577848751427584661826298178020799990341990459871729059179141060411467718447909029128657425505493192662810567958271022367456060857663339703418510631854827014867371135846706329387329302619061868076185541335094944870872438270400242632931422099700619426489967643074294890196962539350923017101573720949463421565487963872779241168126926111815761531502220459715611541798782531074096946624596463205141673830936834841012064433927800812479319310494463505432761262672374906427373206163093875046603060028496283553227984908607498824788608046713531905961881192729273938354783315255114129047907283340794222432783778639669102952581800655063315295219061344995782197845206798247893332289375712402688919678898958394027191708987165559665790921749604432194007031064812946889080131635806637188161502815221944380910755978826427507390107295209487467398880179344269061782016280270709664531642282623638203560294284408064456432520884981159963623953587324130012023103312062229675388334193210357929295327841519322570019018893322947605178497496479154342770495972156704053738610770546665735793097803379241994642266523190423618038246606815619987346612075801378311898956667551417297963018603407925730681121975796339327387479267103781247030578264513867239761002436657088068889461546935084276952443979516920255565576801382875939374455662961841296629813340104062535546505868607708369733155320329999505153221663512120739468364410832984439225150169533038539188419846557842419962970864067476861353470264794693877929493260827890835798913630719449808488974015414236848643692239903331857081425573086656848977480267269692307264466941523334218793182334131884543893586609217314633941373225672051892897078046858347120875638111901098652033169636143881590977751341924858523398572467460019252210617606354740813316070945048710017317943829725899084331879313362041793290971226531336758801873985668416989564431999797422271003958858337518736072584971744359722001016207323451595347815420059601112981086608635910832402100940988380153908581019123021620706286654084566214791340630847562689020413591606126886254983600719186832466757316084920913242328847101095954547130198419341210182985055514679366488197896410691314958429240785213955416958525859397941204632993601778941172521920690240605151225673563901112791833534724967430778110225190079280204852137045189341799296926063038957209596367067526582121196009984183764092050871206814029819186665967674934784267464752490822173955227148594317330572798130434450357671006165659758015491160422070272008849640156832419606984510449491263638325278645480726306910824065798469658379547050686796978230009596156865900688706847627036441878153328957539153647878185827771860120730275989901254730316371690502176555815276375746258541490386804705591871095908511413152841679684415652775679175832996041934322913526921133842765628853775842556305736740224452591290219202503847216978314577758578885582110937737007149166591021566337592722431027469753011718375061780051161948957855612610115740043184309594716856446779573021637093637552045569088239294151146595439356737640916814410595019784067001859616104598031726180373473947425699003762254874051438715716809432645846426299495831603938854645314865050516499374969459058999001548891096552734825829025231716654918586883645496601224956446535474599564473195861917279322619008141009019790339597216635176049052324975663794312260363230484238661322744705935326128283941815422491895576099561921149087631951971444932799588106245011019890108843210421061849504921658103006265788229709552343947830384065177294492183760257211513257490620718879292671631903262372120387201255376005948505477671113498788932155362262622480607328919183622884293214326104895202763695353316614834545746777340193662334996863380519068907612551698000807258559605945094780348411819360833211629420904374359677348686874558796699288572181797812426869858430180191189333087947604402044783985801384222615017162854946819178010583739139326053474290443384291667054749841846747256072965478878624128519252069327061436184315958111925044904929797143157730396638242086407632388407770946190093532315305790034754737965528971504769650831672317823964792670197228654302313389470391482053383223322292039155497580416986442846784411749672516533705943949584641490690830716719171204632120204328786710395316121439422653363786166012716510409786597484776229242454511181674771747300946649576963415842261954938308273271515293643395925327445046468970914989360768864665972991303386019583794136409216113294622889616185826405432459137420014511043048669016149876136310582024746122150118971896877164640371074255497470278412270785005387534761695361942921873926422672529969316511592572879135985123868552179227301728021473284242363587689477691508438626369365866400139162576835261760840777235318847616066195023473689199528239537095784713492565970765988369872278784007138241959745265855188616401300553175913473036270404481367413470483833901897619864761238093662884416548143038585797965947508461451945091131202338229625599099495252280356212717831853649134380211106270182037607517187408551422591596813054316200703565355745410969626189999246205546529200655809105988863198011272001229529942230061971692721696780779983340003444791280154567786172661118287056147665743487659795932708129966253494195257847713653702003248884819350805316871138341580860124115893121568390463085705278240707910515901601569075479630962518271098345252090569731419409807302268476468689864111342621352613366305210468715249339425587535639656038458110941330965194799240974899834481469733856813069415139221974519658923329524646338989653889941006481045785844686953171192357462734920461420796294362944426104011985213007942791330704025544295343385442953640869432968431828993822813865036713011792922080695818048594242549166987802996466739179172686379660140632283140312175157291330386802950457015771481179957035637515074518278792499205622539876149016279909819764932951571577582535956670497884535521174174953865561930184905105180756104228955966706270591651366741234672698318095073060037114217115675003204914053609062225576011815584251281674988774757801983403680482896464593557659264724329060655625952802999172438711137032850675666052899077595161836079876046209714338034873786250150146319541068738394851328969443587823500626944545649648855637054190844835281365028204833322572393865576628895934187398159533918280051307323857669969156797528670046408706747755359729592233506819380652851258744818068052041128653314314982129920045962313679848341561414286765001033763551635740849975202934926625835760020312642078546468285999040514498445513180048914020504032074423147999823549166330020887669610280982463058476950490518704772288437820501242571601418396214689592558059612792967302834962792425014153690429567527894445213818771802729298838202421855712193259996707537601520850170641674535441200088413715997905242412706914114252832222009307546362984366866376396073338494198525492468904243993196310129738783879895900054590210847731122036880212242722819513462101624311138299442386799006302693382961820208817870965965554404805178528250764556824783588331927337288849099174903668758645086595474642659224966154847347494145276063297567048665172902773266205791454675934258816447805907451540691309418857266768628284444338087417438874117861462274886306376341183471336839240464121001704931428347781666904363193267739244279185405497583270094156356593635869315096928474711874743014967418013182905652134892126920918249830909087635621668123633310621431220506272072087213849058080177528638082531894551656550256250606493830632848516303481267781338939556387195253915612426310368954644860666204344328094535899492850396333033860518755398972862618256202959017380503806022241941903606481515238523798840845620785076913493040016869366087594782140691852049815413436411288995834874909069196546728202344112711421998715447496282027629380804660630209913290327108261723964394013749297576800861504484439296474848576177510159444627915367496951897526184021023349521946036891256215520459982066431477339824063712184999100315963422016323555652429084609645012447714635777438259613920619434125674735843166988469368738605109817106407672170733214769106569890877850315433799285192064164443412144526889559950916883206751393846956968432023136498755491836078713971697713016303789663943725388364410818582520854657693647253104648743388497684086442652342448093544405737791858912766408322609850454905756544079724661753494910589629117957040495046352524120600074134438715728200343524249341355655328435113166930399964880756379945207709506321009202558346342843516105236095900072602388852246615503363296522576620101755583026532972544104271179599092266046530394844792327774216789765492244588309109406950510585460665686885944614486604410625968503517008339963447119612227183011131319756573249033574867651551775404420578100656822766650261897200564473899135462808730671876058086981306076552001679751420206750791857646829074726815921059536135909749289703099574021631132204362075932962941397800122921204499316705375872190984548769542499581177461986267077454847121010943897669640130449321211079160701025063422883894765649721110512139911302316641253626880015641059600096481417142513851645519600778472854234367772656278238943411162091955620326046387518127803827702477722374230402233537070440178990419297799161878555534931603918680456064334178343160806330255861897982430963291486683806764148066638116092137631953421051376967751589766306568767353110393330022574154329960046157883031185311130319551171457170246324967628464242935000205835332328469533915146003097900274661690969282763486079367917670963708641207181735845176002312591271965494587836791305640359570463469716029824805456701514166420147153752336701525904576463945926010869665697189007970660363495287006326127653902568225454132202957731171924707647239616102475015818930565183053845854151972924221259283341837680942291043576784600527549387900559340974945822305252429269241406152357811653450919149891395474855088680634560173179697102737162902213995676656864552897655069351153930655428322875719569578519636378609771501171946054259506952524633742191516384174829464778162068741860523849681605392911606295833020454267053817199675154843678571052762698397671501800325592046554942779520539581113911227040187292453437459186563677167264083191068976343361598591324641331423065536880008617020725775073611235452629046182724952692153675355603178274971072508863228146953747197751159581273639555032530226033966577825767804999589075193385035786993854514324788904452026712729059201666163477353158674369876973318874215988084410460227439686144248226488867638001802605928044142908963269418102502742201572763586956697729519685613785363593424785351879967510576183077384137208854406990421898661120552028667569247342188723090629453378961625925887422184755428761142682839240616723073787282942350780461935188208352882197951627474351225761143961424365983259909246872682824661837735991718837066084057880221152969206298318507245939663338866719519632058428477018596366154604071219593213784516996675817665110958814074976265038349558510470447966874583832259985822612651467729737798849084548110066505119807195386075151568378697420473868964010938434235986551904567668623307986331416356101368359915555167234054105871978019401425560735862254040123123994516614978725907801813884320271642230266199130553258073670538006634359822628563749999994397595570968798087671065532889271413893366637788477007405139030529614254711071143459225249102391587955281804252083831410440781922107931622106555466503614499964301750259453375538363356588071120454190015821485391723279932219964392450904088319194933035460544065248371245429234346122068473836630360698192689245152529295645236145692033739654258090883915031772741902672510324647972906518255218780179884585461649508495940962323162410561525618666207965332996129880818425188143194793725825575308752680651609502119315883051951759040905563360500489260118225404756806455856831734253482824935642460664254809007701721870192373036348505053772805844946027221340133970550049661483069157339813666683619998997690971713202984038774075320834771666742402724693839469465054052405981263327558124331782959629528158801334796853179597335444015731018611226873222191898705515706250849967158517149478408077577783981282380298492820543332137732838831437092710737479638333059334054858397716137968406763203041283537427471340690076642494611650284550287863103502798871223148177472536741668273133320887359631664401301550288016946738491595930771495270355063948276359268017890601684199516936901670735258389282374540516265988785094098948551843127773114869248127678038409528163644533480867274811245185070286689478685714854110706071312771895133279483037845141149795565914360826717082772921188776413208286491589222991934030090243361156178244656399287869783565257918288531708093332978507131975712738920012896890667204781491601768326208108226174968598560527017302241866205585709799175184093181965248499643351648709273028803626634350433792220622924230736833547484996706821219994213444942997131746783009209747059253811257582563879957119032256797480086050063205887369902497151635714695067373425085795556761933169848545618469691339572178942007481376906534544879550994011845441471668508882945968023454812982459031411266189534416141569432926832335825476973606939240719879282957852828933266807177712516784984620556939040206132621878622580891518062503420572415062366752988730810721108765423676849767046592122823942128314039040848368758772805946299501715818071744723312125664613903561078221697137341803032266474574066222409399312387450898800138841059976399575676528246441051880765895593529942331202919237603972433386590864179481859706798407374936620829016261624158230947005439108358056977207748304553890531958330764224570475539430093642016034783211647266599103412110628506461330639076390051046225487293522182921503583431413829455457507615742415562737999002811437482493539093870420795426907673969299572634703460486345423601555669487660652270851240081182695837314066306584093150224080525953241356626190077560557986866014258221080758221287497390226315739762593940137058377557262107920160886794572367940054220971553853021257348528248698920968630846438669980575068618930935225795254053071318238882759227837668974984958873427723610606247215872106538938609081533437046887046883368537830422135963322393149159235756584056464451256124952261691266216636009643073924151645475243432399152176050013769434417593225884049893887746162778993047617846874804183605192437309964821018019825347090821927404677429257296500976434659400431912385851983526001421219644674624572819105638422394029955222583263020385006779052723312156618331278151812179195413245305763446695467114785531349987390162503582299602879858479312250625268543951789382732453341392054149247820949929419129517990182412113085076685348463232847345969900043762245270826908377054697002796755662139059066647362404169915008134950437274823171822540686564730540196319228090983566158739665960102185788501168293260654176439824071126011360870947680845364640603846359869953292199532402841060099805263722169921332995056640960361209733939120704572735391231932302763790931340602215543735174546964305585309331213698669742569776164726441420978115239682311973347204019174203303613369473605451984999501851485279266649178541967130882269584594249991030051826855068889242782844946385167151428201982554793295862114027749768951976342482343205050144176574554201028411657786976581783662497289603610602839063309195631568376232368594687899754969729578764663475968836309909421973694207260471712782531640397947124892201451570663581588618098096460176678858967222859068371154105788703105491969283987028316157428460957191335453457401490447155821100402421312701668654732315018292030069029461896194360597579924860662215686395854395821192163661079399340559361066150311172439960025518050800550767452283116927259197643019562648685891579918891948179211890665510703875445493807624532077448475866550788679781862663289026144440463963379893001730445145373248946353881429619835268831194295655270926903094526550525225157221886536329876088581327933051837601356731288048433966157388937890452107751453327978693141218477013457276422778684716684407109746355848439903587278043664414698634113072018945613360918651756407835187661284814602068175151670615837197397426226751272152480617111817912226537282689849891605342081832892275102136083118289862011710441358049765080515121280779905690233589845172006087776288973105977485717658388395770153284818568857835917519174923730719018518081360387263722729435874935685404695295925469834795281620163536910869090577554836611957554373793179293585551701825082451115365684472363235401315169885389157126127246015192129976669064985880076279670727600518991372554648950684525816136752536160819334426233466536964309129471558263400358748094684368340618017540694760563696740203515604011141264142111949176366139456256035692468478785359499903377486722089344258075967181815413133509934012315184948952959569178260389186929285754018291056098790482583291541327430025007000489905161728743548828390941278393963951272495562987641340434008511386049883248481308697649954432718850843802623224813136365851808201582621153243929738489162597837108613028666990654217811741454149989686966111057615663502428375629674545960356172883166904082783031909154007775388005001292304903322519759211136695984148269008900540875646430088159801397578944750735539690210790061980946326202274287040657750966361554904123784000317655600646513723872794113990171432759836269657713068661785428788220194911876025131316584602011785675136486702170668848954364218945259465231849978890774358924704199872012279856388389902184903253935205984458334382039554843078459301524767070042841770122339965168537297163773653020268346414357557499928777645290632154334863583085209290102534100174109113118501277328380760988007682338876116031992484879015276454244903177826280176923742166816968427661993659750125426337649715369591546217706202287390493565553065933002779051664679072995762919172068046420196462760888439853968965237242666301824066897537464708837489616901052208391229218504266583386826186084955467518597939570555561372163504146125067870957406117651507879889518700038471240137037065179502415032376214148987554367743558801458025732216024422686694663779807887073317359588538106124881898356751837353101209522613882510531976349948719535002165731421271950570896528285626899641787255308357225628314456369388957903832681307096995752463846230921612784161988005234966931804882809758309343984684967311215887310237804235780669417536517274452514745815902387305613690016228246833787222776804296825382481864651279484055536744159295372187634510535354042851654677680580663597860999303148191517602045021397046265611741984312649972769906097996468852977371846801568902850070289298282836391975719819443997473610115237063953206289474337480557812095527342168499225915537574767705372574724822048925241668689953783166346674079773512758555964937912763168569486995823764586788534724304802489433437113635825897819393191293505083303086535330334024718157898167355148944344516860822103955901893246454152984610125220254598961715010820264357935639600332203804130322632675164599639895075308234795029535717494406540988401695409902756181649420433370995182991300656314768020101738244537245469577454973669333371583179134297043589125111457294361916722443300008899767722743125925473452327523801978841925700547139257130466878323352496009897400489685000991529267244917442328334645931255968066518808002779841641138699676273191543805011789990880792325681350036811897480914664202111766456367487323506414202546690513498320096795743624834057566318610286102806657120927634667841387023060955882154525447308916025572570856705911682012239292856744399130187289442055344225013936335401155037606531113368976875742172306685274555293697245757347825846860647225022614917952729415005936658732026462769811389038329570988462880211867213852333542750192783543911578928314059437040048443612059182263846964383258447818481913492057854041287763993725413602710592374855923528904934637660153479881616570972402834857345549088814804751180917027287415637551329075234436184182813985076104017655380177626851974448267456166284948236231540588819600236390138911591199411874682070361831571687494286326823193580403299511932224431610958646537601444935040591832389524574295356188587659864730416888089915469873928512684007596961063589514455277981249499943405750531021200531637968465028063892411718160229429446453250535705974030974411795788984653303635724748500743961118559046960081932559545015631056274434260644971949955090449462906299051467082666912746811661077121002119549993083971874252726482638969360383892037227600430294165071649837001775932812177438924660278094281917914113849295304893665832219302132138288451210344767815571151827921149498131483700034235105044770775567716173925677504833296511231718156098172559549275849149835234034149026912896358702024724371172195025865080498346122407000095674769663069027145750513495703501571526242604305512289938588307684336420691552254908223210912367312993326716797071338435316555700719853957942365006656054630522822555324985619561151186996461864930840144258093864648138940404513531377759433375496370351336381357960245123127397002785900782605183483211498085870136985851596288466630067801563635156017341113199635301547186919697621558898599086253659086243944363426719734945742910473301076599917788070637144534872960380733864506103006682327665250020851799557362280453932961396303466754170574496567162861902940719458701586099144794214910832007819996909256764671410835120183445448050601546304492361302054815923240690606284371793023681610496656677878986897975835608032177653565122188416863196943433072243067372378403434865561958986838200118035383311299456441604732099508613437145901097985728407156473109816061687693217373626855941707827487581160175810171301362055246482666498309218748050738679684970066516873931771436403316819587827996328854898990212055051961244049388839174759368969354850763819719799660400549706857559887732309719508199451612308614587419858428901639104428358313010862143650624757388112332090810017077117312847553819559543336826863723611152848405749260604294293128360492898022466187651562867868817758866097826208658111966632044480339424408754473495138403238871464311194984634691178090238069710292862051540387555614910208531672404477687213398174852781264211712350298314909784420745236836947536534930278177399091108462870370058276635596322114935428747425048256437162897037341462954845040607522497064928126132764882999918134153193793557149423700734876283935689100298584813237315316674414507430996311595049431274892866664434610863463053324415211154939246584190999505921047755000739072234894446018312312702564915737258650726399947924029300917086242677290783297659464029431021326074813843572939154548411948608961934654547628623885956181813137716518206803177042186226312959703993503347388740979195970238846991064150118565880454365803177606981743292033338998753547458134596328910186411494901470305728884103218859786263014646113038979135544194864247569375358239421376251474616980068959812145490060201784027511961942628239107271145368185896649238099450069726216366974398695815685544926632125909390484004123424368078958319220324027254013605766390203736908367452153546649670915873721749138522608887237628597880385778385766697909891149697102655179298017701036693147798116734487560340246458369142943993208273297000030088189411229208304736593201665217249599469921680661081652722974767718201771601971688252948860717955600343865992925014117731581833733994895647371491198390596079326903948329806911457004709868656627145737608840309609198172114912123294131214394498358710642054989797462927872998228643323914011544700933599248203060973087875114412642941571593035127297295279127332284378258830776677088255131300742429676293420475309951238042291963018900890946978193088268532463796299375388756981156418908196165646912243651962410134078122446749858016787542026243908004337372920867604751313527713902661748760893375313707946695104567786896786999510071181442166855664058988985722672746260635008850491381987178135143671211526894271664130438340246939093280523973503281180164021095456747867346259635877892117012839493798693723015427209173450015927493691841668179453415279300890453292598733398815609001673845400099356871122919994581152565956028485865348802331000879008181399306204545994456955693741165162726953723060666743597338714714766184636596151868247347090235733625888448392583537945451501397803829487397654450331302719585653425300488989511356463126140022084017204874566261503486649414401851438730839914558191930202502183665625731904924998737996490305885496255373785255052985102465249850154504388653107642188811720251048582533145339371629601871939397085321068801300889068023549480893487466092128867091497849522168810776298509256855822870272554100775658801341444268430143586806750282966379721226488451096344388534099847526432133906687097549279005574277966534222268429709124939669193506862229699048151389604065188521518070505012810858466593084418980275622542635820999419828981109856439137398228607393114296981532413445256787765929454749205019171962160589402272857161232294802676743248251861189989067189972319683531913951996269577029671378330080051822381025235436920297759770794784635429655882769666680852489760214987414234195305090532537685882835257486458867770222718299335945314253240092731861389842984715622905688523809603281276493345715122367099759344808015317953099156938586313177208216746234925642981878985025933652301052717214319539528742481350047281530128470354711196400131187920450420185034370435877225226850002588129706716557740846996724611651430042607217657660505560740334752524651719703465871905971321157373507788705609714779346919899203048467415864104274072952087617814732176482496689428392489894165721999665234504591131975858632800257687106056529583919703729645739768302142783561578546990495803050538321167168370175188549378234242291216000691636813836304960765729698820003314788562193416224033108615867911420792194861010085626238224546496408230114047116535479871544269355682493148505532175053292542849277881262832565227222656793036378043098971332304680667902742371001565047210863349879973367612807263893514577169221886407669010896021895652289850603581220807029154378151098458127920184345734277198327321474044862652743155078462246431809390964463510171553155425975156970974480168427475472159703390871967775924912038022133785482838459518606935312543894244738618207720842054806708265815053058702073883073864639609890135203777422101769567968634267743416602380479256504901613346251556704404664046643014930401370898932125725628757359794596552776637847759405206891844796408290315272074232326522474885527190506516759857787436369649719822612760681374514477235919420865492443809934767981188308765584596782191929695384294699584000994211154485819965572976975619429141227530102051983434340594287579791793000302062766102463501032726340232002860338515850440223470649985514022921389725954074774756552129484311445038292845506204059487965826255391510718449284735638042697419523344700376468777937927995563389341225088571569387096135654541334608558811024152017966568385419288915735687947982473046407004311882644561912624237158749432379712167139031851732537714417744107190655897856449712072434538118980132649972143716562060989070412270935410557986767460763539536593368622138690929122098759817314491225360037472685300402276731692103192399236471505364780244890381816169781197982273687527877205561454408370506846792331116012058812439730249910792532410627821745370784014844089273714163101920128071874569705278077287625614639986219385027327457722807064921340042481922061806394498632415060204948861347174506257085808539307237942418475509575168298549993860979712938166955419375078541510460530781321206773590830644932663974839694596420640435149363181595560605907845336640891776261880928208274091480121645653625500165149065863916683633774523711274727882690703751714001757771435512733986683787544545620748241681240404282447847094447432987520848260034331171518487817096295020573006284713889951052453063477087127170934025995274931275127232044112266519243696145642732285809010940134196660228807428990464291359540057728732543725215313322959314626699312406877860316932125219789833094202687799946366231999916115248898436635237044968253802053966553440295069110332760224355126853374240197121565108774219863800516771826696562552598464332462486411115262604259451159272787798458484852332957927255111112378747822404298104494067572428546480236349536952823588632333748508480184019641884875451112466325988917920988295441497826587580024570205773329300663540970332044575583333120972435775788888344288779305852289856298734248471539066790491068019021234803355143109870281007488798538060346357664981841593047794137976871738146450443635797961905701232316475543723100140530269080742339877140109101802942660683017336961536140498377842798457654889883541523370216816804760378627427832307106443524278964941778964174214595345345478039928364653960170523923599485576885462047293317055041342503652667568184999958344031237290001348820241775006668045541979793407847338021429673488417510910333873334531773014061510598382957021029000942704109228053836769226434185175198551562595400664964821847157871304350679882248610079034085363605830856976446729299502213766370159622110788371913405044972297450825206247481949360842917828493097285983209101744014760322311651003051213230741012114613754924012271404110374626826636460178023414607943940529502334175009852467026785402719906663469102606350875314955667332871676877984742918288915023612649635656811661553916493508270780630617190006178021643871246666931723899890262353807108360435707592434881464129472392867647042852697384787095153324196724715722768847922463241777877291322874335388839532741033888025692927058109936534437892140830689704903036821975146082120027873079247728192941386738107802461919996007323897506310482665064228726351403928886522810595127869524260401129666921327561575411318272209588796154880691043346149990737256064073846344524337331747899054715823383980014289410713394805752818814974562273165963422738372811763054899788662892140800962703278440772584412085766476767507881281493567010924839154498746153668935225458423978505556130121562613737431253126749927009648058433329218167687794814108764885489959544311385946545193466682594600385186515934041338880293525289567767554178953674685364414521842893376979605501017471193781788804421806369976632582910290594265871876978273420288082261745991540639691027057231603085708127017584336287212554601887975888893491946976633307540458247357325186406096129396890868673200352686603218753832780689375996026192248779521405421613080018997953912239661633832532804420512840499920585322165564575732650716084463832636133922937839258769114281152558403477075490675970042357067695268387872438988983779373802143006804566531720411746835656344683885169501045180782806103430032259930566113180190686167972955436265047888927390263545784931213066598659104146012044485809096471394080982378788371826950040262758049350538443036618250056168634026574975527025397718169534231478828536004937431516211116911729493834560916256681385223368118512141943553309669905443527520489265881298464794770427199609294989634371618181009044871924614089625757168446940797342925107746784568390705671672275807253898100825319636542873559972250359655582693100580330872156047676829464385672548483139334799018213546599135973219862635410276856567202729939002346539840846368670737488949743632499549843102282428270540499155894583679359100430688490652484431036527968984307109586084416518135962833402969601442438275778320336226112164013826091055494375665217614573070605080421895910421303376088399140255435412347976164614952402314381025736057855929996329010323745912202852231732891039619310390061082876499953577674703361283598310041156728820884528916542240987412816029437868786066674215110130597418482121294565277596910322923742739594888733907208939394839654779482965114992510796360558964695944688904505488715535319716451115479136367840450306550099396979944859506685786249217175559613956894553936592187883600530639440104631428646892474323323136417626031606046503211253396618715135127434126960631864625581351799210988167287552729323385862928641211534409209198097922524830247910128781382830100839955859562917547992287381754337698668019492187695143151826664169480870081002060127096603748229712470002748225783337974401142759291921195622098831845139321617552131401647544901453943605600522412572064540127296782527341913141814143392291220764768513191785744219434984362137510879275718572309610712184032235563946005354144448762995411677815319530992744731155590037787914737636543731509246826051548334734053376752417342604585935146199942507724223900302039732603762060513449030543281196348137416684893739951206220509475072636085074271197074985361081469968080382607789015450936846210682027890732701131890379762293450781064281122975421713180310705533831329495599529947245961920042615707678864385069758433736735389056017748583603643727442555904505853684921623371690686535220491744988193527348832054364552344558840501434035018801754915908276463584680142441316861366230517013122088982083014867768662983331839552984073886836429796411459497661613092715021577447274368140666563879769198581370267198220789678575708161781556225862411749029593069733131899509213477866678381894166216153021639252764478770360426946182369277795567324287473595082054385984341483103210932835471123324545143874234292417059969901793175839287652235262114446851060896698913532495243180988447014204480712774481999978628636884170633840580048974486861280359611749193385067363065089440947103677512609318010011282744360808789645612201802977158270192317657599135438057121380374270460705570932754666049269394463348708733526202157622446660145723733205715274519890028624857583737945425809102178003672524008965018222237948441479145824402022361270485130280569195021833377022548342205083794774308242896609744054101263186068578236866063329959186459733979444680867093664208197692968657286481824153540915658769217230531171572729816005279176509495601339157571049498597061399002655785474290248961396817930390830173801795248784446822016771697059196685730763775028924705501740128379091618585168200680759011824577580226161033001155720722525061459739862326395061460112828291660227236143696006424003441222361802086111290908954738468731132150221545298415555963089783486773347582487210804421313506641099003768845101496104036246315786459808079388150670672645214897464175403685861433624162021725269471674298853594562899575106690458244549109356987359030267170644433018376052283842716683759142467018695940999761124596612726065347175820976972460556191433000598887414882994751130687859902752515098115435182747673183372401752315495234065980249631861463557342555355405473234189308533874042156347062252339430268832324526439806830780311849615443001560170301507456004070689163127725312861324332888109188130271266726215639553149086391354773677338571032816469363286462990805526144916215240974623319580053229492725905938853323992440643188050227862627371372257187643162394228060417997718612407607891735732303226519636191734257757745347075178059767202235200848917714860871435428307189049128605622105564835746878100039493768545851093377440815797272517570674613455848813876132388293258797668006544116537065158825959833821345393111645588485146130385463288931311581535757109792254698072834393637411887386436999049611154203847855504677688311031086812841684281290077132732193630499363066706758201682950481757540649989655271691276512185951126614463137993434493155616034961290593842721672903486263932312926944407869806441543735591064681835311134568181968004650020787395796538967676790588926877442597526562357929839625614682722574691985824727114542711792497353134856766048431972731999558177184898998318867371618443935190279146445852731075576296824555189102628040452444265017082347217099106800910594249323466322783698956832026060958091442250726824077196920027772916679978171969940315515094295831225341763816293818538411974516940443869090132735600616279334101027922403938241382635664075136090210910142062082371031484276711150767011307558852577572727843624480462120098055014148370808516361193223621913713424023890977340935917219827236194763687424823199773818873985423279320401655360940724010937836866721309632753401810415191139345833543838276855534065467326158367860934298495793696578694782137955398030725072887759616885770318442010469218474133556220122955695828288105244790528182343409890178859065772251657332871198968956033468507971418783743854790432831880469976983143210915998056813098657933400206652054125100452543162190962813343516509739056176104912238116542777820681172460513343475101868217242175495312395442882658064799614284113366561958514625242865061687161942837574915436585761151429711031979498941767996428531868157677176364336982222488463395918428541324069009230702279339709235125008236485864117097246971253699051716006789904342244322524426020427095153733694998262161387685112385542962314926343796033338652497891510479231261371271644674111776129436283076321709681465900883510748852487499304825880493274474823161160088772788044639864555610953310864655338435474419324154687147097926770230252403816165540755343675799816279795704704339203633996959240505629541343139464049856555391072223170943018617179622280234530885680762501350950373507592607081915910187529211428677542964133712917398227654043431718946189941637129064738373204364030792105107582373551917424819078039430840438947345193702699205519217090280702909586196178586671648671140881312556435264850044193179229695133057216757955402288037759508812024158812383941599193794296068029502854565207954075343393822595463324165927610052109689717700402579761265080249540875858543804758763976918265604652798505847355840007554009957311898567125620206913253428838217811754190817602979975288359409735836685579996499967023165183882020321998940071964423404519774831175547634984075390984637266737300849686736622402367669812004823160343268933537623761401394844887912537269351089142320906114047927966510284919899195267967401789753021760837033156783554127184299087680277305155519881048219596056607748084827463671028731723309680265171369353533519618519428490812579867989060096030702257323162341496699323566253612145238251507716634367334503268470796682127516310520917942445801856143671236891648716986814791900773662133563372137965589943523979341601414429547941560428188597287756196388072752638235490109564984148049527248085198530798294279660645069659364791986539985658054658380959330018897828537411775905101853990594774163983225264089119164652078335978843373688961492278802956080028594551800847904076791019235408211102308050139439690195911342068399076948705970492193601663984528803632277790882783172602355079255820463190027423375854277747289187085315192599747959166831317509466696173676520251434275122672541358917618833116216024229983359423635442865668773380802784732149107971226391499846354850877792291104842274136408853392385320263346196644613187477752188993190315806455447684465853705373140264818952533916844031346957059924576446550333696964902214340876723246299012030456093546456610860931752465907679599217026248775399742000272580609366632615838360467285307979730756604877797587033684883515211786435375656881836467823341551430637870108907404141685786857266591365385128292773635723741369633841884056733533928670141390581162151962058264102214390611317309156650804900427075688885164314435850095538684275735575832789530135542336802831227738286839826531427339728816472831024828415602786367559029807485559107292825035247531712421853280614754298604165327722591978093008419017468929950158573195095322219830239775623351865177143982567747866395266261580189956723063431058981711325454584063799122435601773948890069442456664243126962789995648225114469396278418924634514158059523137960005824161524991188777472322745904141473645353566557310908973531964789932097244045449692862223737182909890839264872819922376496301516806550735976308168911549681415074082677923759260434381033416478126082409707131582657171301977986567592733682165256733820062773564852154312603111140730002966511055040356371491806385079765852745595136964635714439020472976833185958282118138359234228003892316997189150687340451863705476916739493669308258922537621440217646700040312642347747644199351788174070958022184850828643061365460227840281926263739409331290303994953124476002326396400989585689376091824198607388462761049527644149212951024047620002234181700538390623180923454257435417522572557889677382853246142360808956539215453297002812283972651088574691328158324963259010790475883946414966731272116333523992826875976123865896421026412870634627883546213498551358852183242552553076579316388763355077751068790617459679166264562331942292754101694485291117378208577376255726895309890228118559248572196157121420103631848087450023464744955454315500917324331211488417625092953569714280564337949952782727636706822250591525294026252309733126645320347738786827230965485870383466266988080661532949061012148192495188686416049813804862529919826411843169257881245064729294907478230865147945478061466382705386161626549403465959178877235904941820409043246790443660619149286748144034723672237316874977785515504059015467436402115481448516850531185611742412983155986224607362395881211500722611605343317641977505540021309814442397366344740878577813922649023655949074595451635524459958115539427803754084113623908067359845357060676058153916186795667857078418282199476308355539428925190725859865907238640782274361668803092127913696716005591619510371513306091389585681903997901440366388340223373391395857449301423338008684718816243043969336377334562737443441291317293722362968976147209278158109161845090716233309613183963942808900148255875554980576205244643885752648297757755213679222220078713690535427534766181265180990323184926955577424726198850994276505127490842730019191420071668455002904339568545015695813512484520194239219759782813477650694184578240291234962986056372033466177571156895395742963494422183129970393067480548716949866136283189371910872981544951874580463989965395792831401246219656762958710788896139212307447975823176854895818831046466073098624278882756293723556744950707313481870342082343338590408013067395505047973613343165161937799436322085722126680903092770296229214455167333536330867088758250414165432871623264277144504323738181648974242651545970211146008869003957098419772158131009310799613594783418994222356146978683924494108755834993418073888234573252287709247396330598655985241797574750420524948576587761248039018941992776737376199323360220224271074107131556873543552660485146842329636176090156365054670474570839331881212806913820442931414466030379854305866143567987333698170159009586261557610310546316830812718403353004221642133790826941648667247796180539612121399767409740738247350798733268576495048734374580259347027454289268456360293504636140641889061928172057688244514301829778024445590896223469517796339275613468157461574548697956607455915504317384960598195488191147224476285558866097181205696982966145267686904913421682483618648435310193979224734747476666854700112819845587640038140472252619255995507563714208179639515102166814912026936188021767559064441745704070356065222333698163287411524246828061106576808714409075347211669909268549205981582991245738285835346308606577503354489779047110447438113963765949006365455854613709965282020536464755385673435804761659686954534942423678898821423212785646789166122585017674964419592824158947127196718822298910775737532027600674336345811406910057396179942004520021858429631991519567569368913648745250914939505880886866026919178413377491109410954112213383825140814929640502881298981157525233737016361732753501124615275140710328892491700081555458090683740457490355986615603634466360982472967624340256576691646895661740209814984937661138661545632304649049617730386558355052623943930096703969928615103318973707504607073907430030243491119355940465711054485542288825390448800218365720049227518823537533304405870487412884844944887333533265249639441507789621719394129502351781208471080607580197718423925700217474606905459183525574734247580291397537912778688938249771230207723698690480760438081762396166884968387888258510649071155071315629490196096396113649644341964246138517151071067137539778854609069350490274417759239512433978949555754783949665034985490235786411158834418486174757480734830506124685079898725351728922543091170865963968808079938943238177582177530852066120997415741333086439252566306594819537075651264747888024454661088121711556197334135565439687622551502782006903655970070448083515359559082242252955780461562541119259375279854008006443527236323785729767846070042701246906223523877107963243724933878346931402680656257990040176437614414052954748068200182585748564754724079908608887167703219817063153636052132017086755156687034128378839995179845938676057043038972052345203309304463471204626959020465236527969643708679700060026473004524029060659265725060300173589338887015231845455235093112436853564305860561055966319952285249033358365605822459475652922490943398047509013375153133820482080046992989225851041600155379016533068264996036448277025627451203448079429776608561785005471622070832306525187056305284895016942086512131620671927681469426361660661529081304201589389416779984802616584387613245698857058937007865044400518522882428138843055616326056551001569289951538892620292182448191121178363366909500949898258749351864389098513675657680682025262395178153170729094629018152699220039314573605447355208463501029771241242498821433357140494527573129668986314309371949801155843449513395710762663541807406022391360163644451159286575561402198451660431434903553838541691755719886666013724293195671894586018656303717931163723563113938906044449409994816102149202753174850946488210675786974963112735472281874640217621470109383749633822111637691714851132854651631669237175469804800770202914398585908693523303203762292909210787296668045397521509954832986474411658545529732739143486122026196032646245296854512573411058630352810935909844903871659711689624417061793814474954988793525492402822012307860353199997772910259814207312251806258060557122038244688140908593900016997439084413878718906039801405677023654330995304465229862024223666413096927944301311443689195338646207038898836852923930684460199088781592088667309217750493019619159029443610819115638348260642983985424932566649800599904153216345255404840150321072439214158146192306396819069544849959779783224044983015826811886670218591901332267656677543641013553089610214086078711789146099369903733474211329710667507109500513456068747310095978905165537660606045644668374866783447467056682017812616711425777871814921391453579779791549077727553083292592302377132495680480344859952739851920111843785139559178262610414875406756966429383778912149133399296733509002457951722384798941511986353835168194376420162150300642190363831142777509775942037116326598756497763593958257396238452510450374765547767350338374868507231890587508252444735736869670229015477423469165698436093309346827925120370460684298644646210070681260251249500774420499412529256532333026564732789387293346770331240334414552713418525359626909290590262466086420300132588547264220522838068004235630107938371456343684962299929263018908478931834817880238972176112913717765542049459815824303208439407145861544112458399085243811886549371533135008260290136662374678825633398934429754367235016628558449533784389230687911979074777910915347507645592577579344879188032495986347803733380662430156416573329108185519945071377470474451534015497612186733482097021964801051015596480936130889461201338629533440173850531666597997854290193282095972565695184961500522075436924471064207531743976552982622224604104596662046969780104092774985953223028372027635623474927164924931428825679140870847633779683611152105347536967459795365628114539079889174579638518326287983397260745520416506379840948353549703437198588845032713165649210975550843909419273352461376727868950457148825582489430513333640744367303948533556078663617847976023673334723637073179281578674415053598254722472832355421197057929955534633856087494579354096512203793941036506707419447950378922967315380785913385993129309882728682715782908279531465527305616276901624607998027686908449494730459983352269086347585201476301704697056477489168560699360367755243950046240201248667294551897326710526796312773150691167960359140660360882509377539288335854217499060251336902413095352919353916271354544625318832920604421544711876216415178030654350268603734212332104131358637485888151263443637532788059223445926530498172379041237742699939283568950299588792403731242210946967308977746268561977066737306754344590520148761606214592016594194232372643344369561956627436534714722048927004241698335748919034180445453562926070795123056886676306491886988957788028281780816251621750485015648144995013677624829514738321496998988419459145318930811330170602961442812948408406323698709073465989727959380117614763922545229343515605451921395137608389509885690403862183624213015290873867792692448863286047343802347928509128154524230847682051796735316052104220232430334535113106230008057942743324321333343819269493097303665639489389161371682879403904485557620501972538316063168011165271600768661589047878286023227893608669239553023188170525923659736084235109383130232786373352483698920794735900388195245783289797050073742637257726976788882737923554981906959535901432370180918546083253829118656912376799167575180168899730245121177162367114454585568405574524326115154951311704822398920919369106571049216129926087274458989478431671515922265078160229986875935657804817403436062842226551027180499596249520567505395126106678375507781013292992411768623064618430086133982568473130408892114169606838483411749631860769734579216988907461347102737789285046892040086644831252740793488274199073746102660128011778201267355233773382515158877289854236160096889043721004771584309995137018342909327179147197635744012351890221280563653602026702919965259124365123970950016209287578166674268364404378604147504971675510907119230104439890173422923561429121644703327061560941768628564307533482991094018875375629544234458996751468047910127978251423563768007626692258444799475596911227281527416506369129774520427466867793835084935706842897673113300166488347717791050085315779453240347065922391456823503850331246651759515050393700999216876863833393436074730105288464604598263712677516475475064564898830311645523687980748077835419553274917725521426270611356066581256973032015564349724741380967119277009760688599809636073336036204394516153198347020744242720913785858055432643143187197941730056523054421703112681197817264780074473235712687883388458165685980147298240286658953847881681077620170651460863517851518664057163532574273035447193944727549288319864434374200981801180549183417320799539008323233402033681976643894465631018996954276007919866179478138809217740108452069593232537720021314761631822118343181067402459662540467607153108941332038484140665499350332484226143991365277741724080081175334902482033132325552629158212644883640054402702983708935769508874630337307401388853644401519417969925347113565813792671274052411082184797269225553166983530898549202987880805770350969957166616226896470905378143947743305393982106845707203962052466366234504776481472816072204465312998310143277859707127576113330944454988999791010020736614370583773577940394800854792776397699366958351900423444044494665998823783928664933710201117763316334522388951354670418456514249627680351828779175381259947061056971176430501215260644891468893828745595910300651701156303769649106950842674906901922282610563221048913674582479711813060365276697844804320408882596416129292446397953213505232904554159654206329571118727228001947614654499790423064673614188812833494666709403184955270446867527629766686824446138320908293979048198673630603258185433355591441897775373418594880454457252143610989343947757708181183068124871376686706325945636508680213582461384759861868904178709992757762363736870006945886109015049722306107507062397574632229315439464551918804816899763734500726735968185454310630907986439080658315949881868696201268511321471362149769737037020851694191835514162832155683625605005380598905026781182011111494632258987833932776296488287856402465480935452335490317767221174952728796689147861026619173942584251092761504156556317626519273028103670789126391879914732932235911771654091197250528685838334348464315826901761366251523424050746876390583126005085910681143245000284897253720812992184322523275461469143518779072240681914134775740438496890034843421362421250159617621182103232842351498395467340729723797927683498851284482155683428394249271576543757281687873654452546500522028438512626391173957155932051818844837961642448549744539454299853851347682461615662450695225838085795905587890167796308469294549250306051818875143821934869443142906995090793864232386607875990423234871176830262410032676082209760729588058051721008987773818556683119812035439652127634405629141498857769312601229520867006468308260980355351726345893027042381121187098821529682955214330714202794667638434529415926620909521750418835216713731127304268314047577227482343836189299028828412963748706727141271624564922785192474811191153043917892576702495101431531840081296553373917210340997943509232545818415508966760982691216898641442246599388969708978025667038090027537384460096571747139030943429160931772462299807891436661905144655293034366955289247820340207658871459097927803931700804930945327682106246250976841817894440299574525490643715062783377451750053341224580692383468207139180874810457468281876045067476526891903820918172073693023236289521601634071555980539645954720135047265865531452504430771044317061308047755684856653122801225791423453801486909316600280949670027494559243971582827743638903314295819205431335679385756899561129003401563144241988709596386475408911123472796703138090416538046869537938334705093002748928236625885908142241353661172604702891937677320097388164940872629610024099835364428124262091603682938211264612058039663454078287815188370073273920466209225163272292681319585758947114210081218658137826733708724602253853072612272210058137828676101772180330147194445333137862881507209243181609359798066568433764785329663369849321672340642753653645484000761422464524498845522483867685546349696239771395867316275347655892691928242881251702127702647659529250984658853374049401767594498588984433986095199637140918215506449662381694248634884687262789407391607189307158784212839450876992314326690102298184134738985855672114560575050065114495605041362048862006380843009216210537517635679495996820582930323167086904805334841286965863071392787637636642580805042718873260090563858599695142790678942217907349918075329523488270492444523315265218425142385393887595832303280004075357958542579213974783993854097491744818634421280114664800262802543996456608120254968248720252560571496679061052010033587603514521764128221099280529686041208559360863983554687453405719462027473999856902708520069376626432213588081846961247642121468098167861934673619172198406757139023511882611061023272211729478896293376112887798511397100156617984749725780620683449600098174178108686619922948025036150579474493134554853443473173938306132362776501596797920892362926231068269405116982808925189910753687391423799967967324580132118237849737842478989509235117215618410298023427506904885037366150917000418572267697060791168812132632854842273477170855222091526145985069701889492649012130763760594453310308971352739182423876443723707728417812434378652423439594573201108931058872217527356419434463175677000257573871019111691536834685486886605829232015475277435655120571716409496900212939242044021945281643206051519249451486225935583947549690380773608633974138492642510790163449425252499969417982025424621798562803198598722691489345911502612189785949832798028586509483050730877361108647261391203197006863466714235967630552794922185953646532511183444884521790787382601931566756498286882678844974211317937978441331059862569611632378324767722098087755885330079055658608092992336986207926939842082386289829329624383742353991930016575182735145540442554853925218786527949063890408603716110213296081386215127492606583699971909366753398168128077322153792485151027828894983260554573420276995511012658816233700672545961143097702461993680361044392836138147617958400937935983491145204089129343968541020727375547128148830561817672134492948221669234170911275408233504591582176624402200523732009198283987187915178808489857670176720282957635609822038318606972952080495927521926128966076455474149974602442974401723947065424660990697031564280218150387925749985490420368269205795781054076332961090578039017897197711994270666801406090281849530973431602711498283483963337737933868638794122746099076820760160006217746671750796413583672821842001314466685254297723233657523241582909203538431546591241998589099265829682229161957817586030569317123927458827395899284567470317315738155067458728945755956581404383239382853026780520934001103648493278165799793833321399597970025665150721693289635186124174365249208812539715391801055471858648509092131864369367173844986612976066942045432218877124148347728454974293410118463449827766167526032874965686063755431305178490303469805958010823153347502009896023835378821076079475826697815795903122181068365479733290094902908629169203374823665494644580376617706048421708554704160844364048711658471845436581582404615882587027347745162346902928976712024691087267026094752373081643532154887167223433259449601380177611706072287188395262308620531076113808514504278324706093209903327150705796057390888454097070626346668545471002634849457862927229607354418576999995877810423621929810437601823030505155486400747522573446773142109143990310724110483689820059001918968013042438380230572257568617037602576420879778631632130905286203892849829240674142903419520324535114159627572513188817781090722769304674845063498078496249983535504904309826696517133786192333429426859197627260814613472912930429366786972963432948174958628410977459512158586534285509331598468311917219049499785934282280961037147062596928925706208019784119943916728560201721258695398874925534710541222597473753821738389421995786811397689655660294145138206386835336109900857452500545594389134367942885437500300602315975187548824107748602978012222441302014328275545964245192835310092821651264834031311111238399275586105364169549878938307072724555955037769301642926851403891593145438462887068239021184069694890734050813750051359630240722649678939487199634048491362133973362290955226249426800396392944365255838290361512111686550228930663655979200646250345570680853300895298599099162195262945584309825439377033415607167852827815128298396157698312959823349022512055189556649505609711220652525098156922671574836185274889467148118885420268922609923288181705851788643962048410259800323857355157132932279686880936360803899851604384871902283539747895093912748338293674016023629742252328734248096920962852231874191244753480998187032114599698422988785294874014476624190723295014896755652935449863518218446483813803930107536051193993243191986422103333016556926082504370054459148247199171680145645699077218460245893431352039861706247039609740277295759654136434562216558004303681111582764219147402325935934268751166694640261323460292126030467808334516164363328960151685101513857795916453982836215937862460308703449311076792959217945604719385528880068409541877825344630474403508224135402614874000470015478734596824680777563073168969028596606976299324378301506011015915772809828005687454594544617463506728072577343102746163090011361519969421923135497404477197509913390176435483903436175207089193468346040071325399813889912633647956427828876007598335280496183572678707950105162619549865646066948244536298769508464841775513882695366466894219907460197378328596049798755314999579425303449751442984542142616492651916384022286319218163529354242912246566872282549332241124883559852816168005962276796371312332333693684859390380107751508741020757552605957690696927348865284009802717111484108888954282837227962817943287723482680811627793370542391125893063308621260399634912580170949087367920757168291191884782406564148891293990450181418259464123642780449426213309899855538356126716017365254058904672419068683206325620680115714470571012006293886157857561364934021730958317371495783991354355730516046026192882142721358873861890978694117699743662772875118431796756611453886054338695771374307956268689886997139504640295169433100928829526380069384693460099535977794279837247494103703257222410441520458699319681779136336214597715503353208733877362162288651220898024837935216505629499097721076487196462836004358550193695623462261273213233950906031958763060347308690080683749098619275375782401808974684079073957173082470233683739206164365903368368622290304869643480386536526457943676409071216895438169697913519764060652965561732178959342846655210143574994278767244586244830157627245358274358681865592985491637828134612897176836998191956656053491895606530625858088818521761739945531134955805071107507486328192100265825944271948717446643929037029601571611465798134769096293300934868860409698778128364551229243948103570388075033356322225104805574132625020877437240337545763153245227456488589944296487564258772918437850505417671965178713760596194280603530059049516610329296065238287365895361424903290957059283289376063086368291562692938858664158226516636935007236976011395960005416006332236323129109723954084166383948904891843368393067756108407056475264326212265167086226540448247172031681021621236426300347436982383633830564869511710693167991540088257489410655717282312821694648176713035528777853413653699746026034829770106270285393109102074191135747280475789075386862804940140344208746549259345616989200043517296449430007788762098671761059047347169677216575042075436935373128431916982859895962526508314648443414138988961624603949349706496618476322402368810285075987434306457573039645890997838394848297623817142551529014673567788304962823656480912057734118144675876691846353593258099052361407628278015219417372227707696757577381060615463955314177475687779851781030604748188100017901969895503070722188135807586119749512276908108115363122769495250564359633473919327491086467405899196663641359134103093202842997468170846173645684978465946914050549466383504145606885810681584155650659329685439295795398638773018965381233962515577272288038778297071100657370664936985305540145440629571964509034199063965830905242328360686234269283550259108452249786813277206055576514418844896236717235298315500956386267238048681040767635266071140778430563909039385828753645108316176734234064651196323002337791806740327678614500634517358335474632594381132704842539360581992564968164568460419563802409817887007913293666340224327564593144333070243389692925844984746360483282811662869702478913361358926209618677132751445783169927653245303864217671715116604752631020151025298273152458341034154966062234388680241909479764171425503003710408176188055838846339762154019549127884672724118108421734704428244500173958312769964133340743794847254465092435802765379024778833147227749725051792923643389119116456365101113559443986962183458503450131691319708488276236800030709884656018090507857659932021646754722432350620702269949801606437867730351004699853064233133464273973343934587171334781016302789136374086122556460181106401649262252793355928086227131993464886841659411387356700230616099375019805274896460986902967906067552768961920270257258665186309966761872461258744909648394292254090905007317385607050749825974189576882745323459702296140155934832242111539533431980100520923326050225880985212557089297792307534231266737009100134362979940542385601723861883815146359903814539308772128963750377236718431625716835708384239592923072970603776766111049493061391530692881393804858098013276171052370690281091166044043019246531353654526713609323654594578286624589172241587707003680076567245371018573541935059069771114769923514965943147053904624818626705656300403839147680795094540023921312240129774895724297372843676468270541012043489315883431687858989978649897309806667548504874652392032121654718478880395511573821592247586172066118857594002434545014353894754226013554622117935821131598688950303202460281631091689874358096073116065431492068346787890938861133975026508315675834130881640393593958705101616590249301674235955857658305803430463069100399302835476076091976487565392655470441036316841638111907860512311758269805625253442933797086295775607333206453813896877384500846931105874472005666742128263604320314248723738122648707703976876215233014505512360097624790982077877512071386906999880717040635756746888528601752466835448356816958473204378053462032138429532061602096298659335596351376116538241176485877204660633411008175988356915898436561961856729259994639945714636167324560267353605630206402189872758557192969677734045350484777751304911456746928035675315227002503174328681301761875411397973521873373231137990041893361475450000696962258732046159443515595618991097919820078532690364201030879908973599596978137849843964954735559765840993110053312096515693421929767493318499943114537306886772689411024576804520080928428674143103664554844832548414629035694647838743573124155314361430371727190728980573169972390078783375853528432770166779771708546279185707010825290904027929344059207472448533801189786317914972348123828293173637390455233102747457539595230591937551371928190459884772752666605708606402177841873797032791166668440429411983845139407047225485115924159097676448292743946806701339449981062677698695399488553237251503499792652362169195303955853281159935957248196004531133864882963690114512017863726611801038820839036231067855861487796223550509120522281131236217076620665690504420634930784844465071622422205734456408884411649000414276371331324381063679530795462483963101489338787075994413063289865218628167296410868674734878570866128303660971043982901649124361535510942233316392903428918928731904590409223582104888468796228507134075234149942794737647140956723104377325415060718821422062647694877619112157659608775951233854398678801102126139682779757500969804489972777235024401581182026460702853579344422100518899418063927030583188915211731153827891344092838638570475453520856092308488465003950554290417173853063072208087889724635127369535430371372028313250184839740879875829984859750828330540671422973316742390221591133806614306490681619774984659114655690853782537341490233415174002344790368601811962530330462707048948741679679145878567069181774645781575246420367663055001816459687008778678578139582959559143302964244908222600022933649338951277472531703304413948775166429606796043612190817276659581957325224719239370232755732037439790227692676525544355758026021278645479393878067414446482954647982273391194599174777177261248084735435288287097425790849014171232604759315709892898160740501510939030511284139970333485859904039282209888646210471244271634537816752690550330723374428489654774338373690551114859960609911371394472475385442711743171773524121835669611437206800301555833508531336518073829170607801160534856281825310227694505409899906354588211254979919937755329545263604746605041437138238227535749948996746702134765090910257260994640548732129170068642418878505209091986496588652257242980456823634031485844565745925800457833299474238128387258296418124165188160075818682777628771267551105194238630524747522220952708205467499681194672243562771752684433550532386898344803384664778659224091082606135496524339474362966674986755265641182197840191975475141191536068844692278209616540967825693772897251496737225189903302510988263112588893393153128235681422953630682868695891943312546518244163956952906074983998012777137784587988304164678401479060031129565200852223407881922363513951192722934002034805463962235167264631217211095425696983464013849925802736630644819372029269672789632814030190337495535580804749989081998796305854808258520190394720250660183843911775564523747256175687168001884419281412057714454117925695533070333942343059870358108988065540966970362060414403987405021343666903004614978087775859163128220112298837707715466733436149291470698590524813232943304376024528780747094572390595257716883862793330283203220470190202211813780051370773918330973843810599213808785201693777451857766254413867817758166800436758397314247929909784493950477455888890639068654013200207049912304180653269288392718021643229667430287820749396588981336919124334331197600081163156405257863768712851974890991839104189975057779632902971396184661779231892491892767779524411033407102257536164879123911456020077254235463352964714995041095929450251957819839099422303524920376622672258868290663837456221667414776398619912778125325926115547900009270121998830296259899480991642145374320813738013296249116393435734061460994178744038274066336660267942346725802115343070862689171399112868839975399024809662403373401742555353366133514854493332530938790280055859330855329664542921322821778687419664190066108375738643252318890676847244264291697844163780171037938768431668225964150440907601722510620429992448867685330263909716906063526010066533227419774654815007587122924084332867121199656213720228323407071422248312932762313293525262027549188456524200729911303647384795892980065172110710316068380141008035900537663765736084840607541585321355694138704244623370530097559494877338516555947140714432871461065380146758995376935247693598603636416334923598324517875642704074735363557331903189764729818307489078748426008763082395872004857292848288918430511182980620685582391238338791520373119771093997031492625380621072258692802951425006310229735174046595386385296176292298597529834681226771624858744203738424577135863893383452725651094129828076525041565676809986282376997891436951039187791495410286315151185134618092147043859759029642836505911222345947713643934444178211888202455074420166584312517836856943239767594245669672556887811757089637068282876094237922203325145421703181101626382845158958163389760928449219999225854049747567371979340258435334581448073930453675873273579997239707272574275124792034813009774568538160794771442340429409284185453323775511329076372142926296124163704674336157578992988307357828288722347452869353249627318231209092726952562588634125318517194142769725239771045199677860142435584639783544417676267906449931167268069736393096955707057560723638252836151940732964535625591870584519549583974021511486441394325658784960493732962093836321102029371000493586695077729558306907366558267517481632300883469530115485199253618167123468365105705318719744570434528019369154759960125846737795203160343964219748791505750775873932885012575602817009458250226957618808078896325768626567506735804806564208064224421078261311488399349843897012964675441332323641420600146399646217057812986530953654005454602786405535602254702730757970673389887589960566756838915316027355637198545649418461111173871112557307535495502881370689449502021935556257579862941034604495514119155966696453191931732530008881478160364330721145715390610487497784811002773974923545468380291944547458945410487917509491174529782600807534319628260247226809336420410969681697444799952365393411816836725810595534927357837262223470557850970308139384327758419716182311646361277325435782824838776501423082534969506568283739975905394807160494036220072946836502292501003775832256431201315427419681329753946431097548884409368894064932009907777064265536899747733706314045449652339001158516084765534286525480976591827224093215636099603461866118290702067013162871527300658263993316544078020563410360084857720622739031010547231961694265421195970489938369338934361561502830852752256300267756053752336314997486231216413062214701972847891739326601051752842899612860261101284295833906056638467161012017949509186659400527244362209579076393517907364439437833034771310132958085443236120818211260829039125338554129754312425218111260031342673136884383902661614523988249332037605517914641505462219492285873505067444580200102170628334662477588028637004905642153290524069735607774429364784136784956955770338475964952484332058866014162696154915301426894482260594487173822115935592071356707736310352763125704471052536748853558844426592875682706395219227760576639952554380385530003233568941770704590786463701051777009813506624105208820903738671292392167752345601656411440180304051256697021819946899905914538051090210635585838608291598779040949817039477593279674062594798327507601926353084300992916898357107887035115300946497719303348749550612531852720061982922477824120609159932679552214083095437987812596546948041524808297640488555734972627367276417720070674197205736250362996182378559154952001332545760293277567381844433342632495893715376169578321102808423647374832006879064024677328527249297934249297750943306570723457041905347979233825299468595993191537693228489171392964972395993898573838761183988406299641398625790598378832057047124994005053214961360571287595121988262529359738882617818203517321840593913559366835085097539377335431584131925945542307781113656914568286638371601726790743852920694374049913393606165454119109909555213893785604092811888696982071678913752489586702294878391736614625867538481614684488775807182727407064981065754584012464992791103727040719196186644811997146132636413972583479771764898598126565716749270606753074966989781174013681420378699763023664727037704771329339957988310696184479504035583549030376517507637037832432312049772219762269885957594297774172679158845375798327773161221765904061251109363167691465065379400153214878857068710079973061971546796403019140085930153898795219657249232841692811190405284324020651746266334925142280047465788226141186207466549256135321861716005227908296715685911358080170531105339565257729887458561431325707600274373455077382489427194070693160918893792555807709209394568157328825408268411077846570487783851091707788522877601323563015795737615728232340732336425412485581788243789968990510277304920921528558642248796464096149628236082610359438205693711030708037743309994368252620839747259846529565822023254861799714931720208916672971964337491531361113227448784056877133770768916141863157874246079071571267509994875758041339984420338775197198847486399024705784161061563212858258293670776770940737566167056204254464587035660093604315055438154556913917128327326288425393471793896381148781550618790233932547639314898024514741563895490943941384972446061064573866733204577857774152345373275890303731421973951201080469561407266785468415109960709593826338038762911402086250964578168765625412796341216304253983878700303043879949764615270796737626434662982158932903241162902385697306668308330892507468932910616078757991222900459125585496357968263841653263003211292404358600673177332966919054325307329261744073261723416621831556671327292792587137855138565464712057409128819042766700137030896226443605373089877434366984600852574812650983812945695698222949622935742889264883243370423283038307295083955448143969443942630606017769200637498021744688063578150425123316064552314998752864104865533576268007621081517756281678846727083078252545091892024415320026710504819102049453977573158745252505092790809994525032660102435590897509714596682343557492458872722554724831199551975968429865333799982030901158862099966360731872011081816449368332381735839895582640842154065949068422841720235915823593711339802333003313821248546142607786959972381969572921577779873628002463732891649294563350171960039707196663293140093750510290310452858529684595177292914969295136091577190203023728313428755908954900552587809373141129378361362724783546835135658081932710430354929914213125944869835572291966212910955706389343839445207679877020874644348460110821722338861621611404656722178618496364915958107102760864223262477649276722107988495505805047094167221758254680151437299973476716223200538323486357967399080420232564605448337076513606094076141808770873742783007384793427480722364088459245869254771775349071472234624491390252126834588614571669706807832645654874259716736265893114730288893574798465447691245583423929379512967982327112076854396075354539720963168210728636470951466335722568535536516528036939041061662238280827955650156550386060006389430067592144615212634590353310717095381917797120581224211942510852454764813056246626230734396021969418546169391564956419167789917617387754775733991512504372543117453104184231845845854298293823515888285647661243673374815871533305370203418551289526106490408238396306128622449925712807234923078734645653050821790705579440177219717766914557056597543615535734478551843751187872346546272049994828931740865889189389244784836612625001170167121313368277829933871038907396347328700493312121445044882308853999506639772347883394909959413809881489329706838313823934729283512688620296125374935665866251247444630643527499296334310788163378156651834926749911461942610679770786217802810707582644040543116657702651550712741045398197251608961477336542639991001697055482925912539194256135723603887115926994083641246207214901937863854261795138656248345117908131652385841058019752783021544512718314396852503218652205778475017523761245549385856837347557707322248269643752369401926415721976438196817223083543148165485094159915079065006717163855166756371126519098465166580019465723025241342401389677807993756978161437052674915225740907079797206177864426202250685007188134778565709422118376193148393565343173260078264338325864809461547180971264198119137234586524571407825005811248400434069713307857253568929556752012484220681626788728570217257621144354031550107735552568539405903767896855310062935718777387487308473766884111402983564161703383177400302373990169569133564245055160628383949344387879346716791670418047984582374246466516250524026256221378457283782081183611485880922032560861100487704232083998674084620272080389994168258174803024821084346282990177235840199270740017021002438493891704306842158498289289813997258122172968639508874299192562414876301398574681423301987921632393230008723266496754920463849749227708717883893053296816850025172615020426490861709688152277000625145013280394761003037418714607716468090029355037331276115506642658169976094792483144278529447482567770697454875044833152079501991013239884999866990646714352881396224928506374927161502846033158141416855180951285406024871320828573228171659444714606882647059225920537589907608729140608385268334704528275480049769842188124765577771530164200455315680718321570741291533291716215527562317202491958546841448279134088416294343386107370005381414075270331080755269490744072980888440658852619141798978526702892723594786063173480057476013250435997176230193432518111423981225115041380039208949182803468769646304653682282171088907686992104908134295292982137151069605473518442906969311681889890446946992104930019504336768035855017865302536719147857302298826106190204380835355316055247583046043409370367463648615378725286349053690497741990047877371224375452598919441336333548784323895265510878978602811942038904788231306008747538129861369948608034055736979173247151626068178448771497270070488303866295088256884630116010400795940868374353997405403350170876620064580948051046188490569691432730686576329272829651713607324688847640504923860026272063084449802832902667264345783737251389774098672750231343875520869011939015604748301827767824224215699339322978947789781777095851324760344621550867290262346887797973618398212273022639617664044721829674341687543932038263994013461314183783902104334450137717306402986344108045469771379941062920881808885344561597890014592221685202788881715811542654828209582783549551458907958225276844846393392776470867687779720597056817814533037436689858918181492825814752893002766050577439972258911869255764731413753997603906938760896390496667512242451192484836155581911619471966474930651490084786566459547087920102461021023724618241719759769219092065791520128841021510106955805735556235461350724950595670057881597896608126201749991463808390953796355555788888341893298295749259153491327191670141784111591578049650704934143398167536295093329617206408804493876877807114567878531318510767900075721694882404659453124488521353215496536688504055149715007198136520625612771163390968031615760948418250460054872936734698047177015533283128201382182594588049508963693372405253951267344776017061276386522999064028324179521048962470158285377051593520820405407763534012605152635260501574943830623566499433559694963102097711266948408984758319827556474089927842375149853956954551166265010463067999328863744177595478374759800354047816491268324017490653267376014730236759311439253824618848619848097029506756332892553159984876729436205250131578112329868660946075863658940529361535161767796149612851946662596333043963278971672351666402751778666670192984285429300140348036468377477190200260181689263956317982550689741683262861542913918170720634696780075825345538185870415514820640148910527425207004992670474850076797349424459861754033996768213623810649927419193425703318782523593694469298842464414820408181523136118113464610393702909288047447711809730723676038761603794257886631263403297810890844220618258704121461962354345754397625360988170663176256894571614085624060257313128945010548830725115697311664423141342857449085680241908045108231147734813773877376815818628539352779491963763873112677907067201341191475297234087460115450474730849264317803064181841372865153788511864681843603755812829752555622096637786276807165060302650761174714303854761094068745796845364361555791517196512125078938677623706706392498137194522399446346998987880383625522757251005841065867947453628192263710348468015399720390802210706679519324210135657413961760967132128659422776356784275305835109245105962514788936490071276303852497180277359402674489389559634009938513768698002782914260750852527227239131496496812383118495956391259508709526950198316903877861311986422316304428113580656116565028999833499316464684145763989961340322629851524623743956833523794492643859155273162418731322595128643910183933735002168072965039034643896813982039877874386275376761240246857827361411327021910420152257488135906897397113939596774104573893493248774859026948279973699782803793948977920292120877115274867799053112904909591156278640832605367116811277042537837596303630262881600688787352516304566650777126259351362094255495355156881900875204348719448109764989410139473830102909818849277974692159060556851997097803926070618985556826135733363315027589689334442735844650742180775553777031578216469183765228445694272779194348878488506219731989936579752530877830752316332486159909164727542962554344329165992523938378462531461756813527325021022440292184081769599509650217467327932331524902571347176939221917834605171726751435619475327577359749050434668691334453871625159527142990817673041887370510922389441002974779858240847755635736481625450372833935314856856070492200029238635703766782046169384472483221343458246071084323442221284180779163959607248251618466078585066973905408831418541341657394609364292383371515739891096422795228534863153089072232378142784781986051235085203901413977575497877618021372979035368478048184076110905494352975695925928009491291270830261992626943002877517572674881748072224533461935571517736701007698386403052409408455953777826350294841373702607481941840977373999456642321123300696349088111058832156311435833335218693563790397274116298681669533800758964796101124422764605322159657684360618588736028042021090514576738513809554161650083581433325716175412140008739708697450686807757202467143478619688240220156189589639922520805289263402347127221399399499305093649086077917641719520500540339475128953969051892111740402529705379774507470334704423876681453424879654017639002940325701064336166259388604562365935987666155133403244701941313313214260344415860736420381609439862907544284221657078362272836428579429971964184986970457534972188004827383384650589173006943004275138449408391885762921805559089371394091252651260356467931839704394236258025335557116797478396193543551483063018683530403166485706527793782116472719318431457101607167021012294301297433469604077566526861031952300887365462990259441948597770173736635786725655006009671150992469664632963231915133341396906574045366767958314284565131238574422090938858883185700290664482748390537635875371740256682820751750842329149715673173837819311512034514584132083840598228363247320006637280169323760796715364004235665678733098717993777781467917137724972351945312809559613717670094874204353954081905263455980640220575089082893194254768697109564433196844146752852118851862313997953976985152656409533137479841944855171562698874517940135850124848330217679850278206349611722817990351066341568039578351881860001830413737027091642722468875678402449016846362328747088743198516699080076335287800090692792029651281838015640187934550795754682448998498862215381399641391152783882869150771470027355737259786545701527945676466444656532357413886844285834260468485053644486575152835198487108055914241853424715171213154462839192228915750751125117514803943510071325850304172341146196228497094563088131734726352150929810254936731100982529843633816976046615641161023179204983140302555711124204515849608850527293775198840226717039365733181401619550975673117481050245541893561408571992227729555128775791652650127337502921898463940446042307880647146222882657615734457061805721205957076084304542770329441754640016165261904221314684183272526887857908055710439168419751862926963024179131611048148940178657280979082460893705711037112398966063614115523253078547406379535224572762233411337603583818012446881889517707010580049956933933149997081608519129312473715722967116779839640001604219174197169146549091409104495826814092687370162794655479391594243090543275057777571924921822965026676239651198576394387505625840499300449706981090199932137474487434056012114146518519740895628538232113942252607464745019482918762217954683331326251316269776192008926587412270442285539856474314687308648277043651454373124025237658203495784936250202967273282471137689920801182373499681145892805990846669304742311838679553313586302429598146548262861263485110241016579440837621178483795082342299113897313621928785357227026231273542024245373584389983424239990271646211627073140331825265219860111146344485433160348603358222053846182128977476334510489991634950192153177326423797062944162980041862098102556898883381117920796510829485993533930960398491356857965599966129103878690953515488948874206525042847550436727871608482697225575133450618311463519169888655467236244003194521333865939069868806667504087087916358656255431097057228335719507320120219383949785346467392913764391039000431723805524298171079761574463520119214114470558094762916454118670384418728043358369482317202855903808008883365099620903082082626460107967440437250681613356200528606276414511761381863252022042845204592809095797484840143219843979164899129669745672279133649444501775102552896073861681386806100303186574517185902189189996220504663790459886926407728590498182580725881486121354138652986912989466979416453588444218204771315553533983913575283056656126526357689321028240055973832046219210929594111086966108653244077994363777158500019408623919843164367415977671813409409753967470291123150536025463775415754371597057959743894898459332621616103373257764267937804458596584513016105331210636783102510866793610186382389511086580800824049376129374741024229160913637329862890531475904897923530684061853342182119300454899181168365640416559224218161336601799441078703352872742060604778116741982723221945704867227682403362351895778115417088401384468759821523885925014962357796589434900156652703975968904129010760332730310980976902809177111931285448717555809838441167946815788905521621511440134418565957083399822359170167357804434731230250499827967878666775346943873005475439950536084634448653259193040422162867742710748872803742716218210728322643771968258597406774800908354706454402011947688345782073097911301553155288496586074233013581875509548707458393893841057364392854338039111329119490041785240654814707990010124137005665898504225015981407601884502490540590674197506865430062865603259327627993150813291279981958714353176735532252861706936253763570095661532487009977929753917335029705545829226148433926890057206762409131357674131934114190282571304777824019914322851959028701321881414930881471550017352695894681215441013745114574728234409302677561188548445233589977899779441574561208840900040616792867303771717178556222341459555900682627865400389241099052444918994029299897431030518329595481561089251003017949414313038922114888613214970786675477747708029701455438989422784466149259243732845621859127107915679437994399225972578624133158281502036106243764932512461784062770984069069522183371984165800244840989768456757838299849147457999535927749726554799054510816901456824765120544007113048414163322449090446289113805396087300415634491862127046277361477524220397027777121682596585149744118848156260476038010695243791503791670934908045640774699751394186097092689521164454293848174329621032047490559777797025293793781017651526708610139332952478339641143423111673740860703989815614952345180944154832021414150525724883806043047996304958223753128011160815449261826959222623492195067504019829418098286017129533058815909930048464856509115035919366572924941327664565136488409352220286442884165790737761806180208112077002600534948179713379722882427819632731174972805726333152284661595961992863761830529774772980644254795437718881969529887006106483558149187064261410540168050320492168977575797291050384920669472933036119804073623184106800634950131090330152859320576014776822088742448967949368627811085636889143300728234573232125805703941148114468813375986870432741444956161143981740750519185786390226919899487348430070290708341932600623223066719216244784968894300872894387797600145814121418875855001260606764586967564980379568245790859294040651691577076688327913484912093830479843647517409781673743816076507072884391693526339566841341036551582672475437200517333215388115083584104337258976209521762308701881229177969341133895849169213033436224730288980426822948257914828239915092896939359927744423373519691978779119546100891594353647796352900507215151995072118500206457672896038919227395285959249636014776071396194981831363848446087562070837399384332873553933556186972801257040851619858747963757786386376233567849924574240700872622061609176244661401323104232715958094190856075246443847823714223095366021703961050707303345488020551859872376268249738414765791174855389266347374165795130245218724271395991894747797622814767019303239248887498974371495737121240787506390165953130332507309100309909141969359297519971152904619665445578540383004799462108580605528490912214688774956811810218998397317981246121816686132050785103880822992819825592538044298257754738999314803415769148275264171478768985074322725762305580044516881994458957209650563390917328444377294943359173448893281152638943768644335171796453700841654692720904528078562368542818930738410713426685658526347208750122070756248272208960010115473073956116310068904718184023853879893046494045038200418841454898321109620630828773611384241726825961531768330663198516210027185981257637800087726294477735586729099376140370711845202773499525713768617358194570557773292852116558184300081951780921203531638479910624115920406572028782963399283245934636150593614115768508220738546776351795820803002477815175637598626177365291438441400376704116938694028194987579310638701262178321433443419912261566465731016681772559424690717900422625815946472044943201882008147835133404977635395757849763772455257632208460925506069961422316340592543387916925578366993318611544396991560013251299669788347333944622766091035996231667431765965546841039041344604324367735714114166441793742965017601326319967781855661847025677510271289777528568766337791978423902008360190275976384229580631656216626084652160565204824585289468102807581070190048900082747151583499279676732694920091733656109346196074415243297064056777628476335952570031594339867997785524532426332222797103166435414563429139094898154095675533952864833325995942549393331622414144007058834932431663501851627591611929930509680864708228824120199754685922728056325669579200575862018064174807793704721564596466586089678582805007320975236540410029574415849560550766447049417159607863891160825734534226032236108506507550748396842186249157525047819660276382141017520310887865193611984376909469274269073418782054102992717023857409108306326528805322297791470267039604241680246582303436480875790357996496936794410919347186358482049289804140291118852732431601248250881923445614020979613721907586574471005010426650322550987188550438658276800104399103248489450735490618549513014726353918074274834241239781129598662809451945084313091976255633005464969647832724973665195360942981533802643748774776036417386182984435240377402922260583034449483500378161977544667526357818291706687358220423763462323111987492142205298443288515361329200584851525080816281178290414152959996454195151493702290853120575768606919085670951591378868370604341519542628631082403856239532935969705197971018890754978540329928067169293223536304898313192087823868876126801244312899706514711609661972807057037515376304464619237495047507942037213201279718504391513540413279905901540710832041452743548956541609945145446043166483672360589274173154472262878207828294246785061725096513324581616502085601448996886074113885067603936669258250260141416773419029105071710204914793528222640973259159924088337031347049800547778494703033601991002784031434316813354048305398730097156245529600394293942588270519644625843647579728572911978148751124675091765008602395760282121811665306969746291801118798369854784449336374421301985843010503129396010025497397643375376398955545821101601489628829037730229590703584466595850949333145238471552684774676578097125424493485588845424686022591932902400948509233998658060303831918020692569005393063844301229266619024162438581251244475325825262974630301059196106944941556382686399787170013073139874774244080713421679744993637018772792208962628140756767252292408109132752616840326652983271034884599561514212524814205793870020574228283549575498617134034332775524624047499909519985697515720263041664877498323574747796766180749078072766851412262767568428214641232883884775428478938195526373198844097986338839544789465720241734797437017291289402099234556873030545207667558332846127651971124399149682685240497416105353792031401371000216443047102305406166553888572898870062215605154878114547607660517711673682801297435369782110109476524991710177405781030761957566067293828485177985179967872544404807834386388334620923540609939643980818592937669545584565424874106089761986263429295789884222210975904891743082900405444899174273998852791804748952004810753566015054352485359853622380973192836278553409765692250297718795143191863977593446217833199884329390775389424185101121726769945157855555047236207977401320477991962749987312061817151007653743603091267033367593923196689661422110886792090962537514955776569940983456796460613125646195961224098566656249605876340365427075206667619771414067441425700153623048987361869758643246903249614236718183403267051935670410550934913514066361801895664466604776852697034819236743442161082973847011731470889719297224579723112428875898122787155936871354609164548758119938290722631000457397815944100662263476582512492560119531788963713160352549022531169184232300716974362656140700630475213496754606340508087252179485107474558066416674764236758148945616313971790450891599970565692615170096803958865039013474856978825991938335783287350177308344216118563315343603067516455690860244844496673548222829261788800304917728823102768282825859352982724733071462304122254816942620106061799106365032607175880212888403068014307495372212111887298293414750631089156633863721656736328344079195795138566796260738948919039132846342584901583845841535227909158149005164662133134336335157260859887472349088584026020375912611933773273667757103878825372051789683485361570320196096685547936822932800639209617339891094227269508465975233053606276573628313639995922117640128987777448021064404456560810765806766910704106456490456979867669284852352740458794217699659076372059995391019155951725212125517969478930888461676501746892131835048917299840284742003670231042310271814551677778928032452881333438768973387527448395115635672548497264944718518092954408800658791639615668111954534156220146789748302977318451459819144350666201135367306435538386924798892935299839937531673033872054780695341646630344177467508366295206755778606244111077728226826227768348396519154985568914165964827542400075426446967452353957060857061096692808493190918127988501702936394393188047432117201054559655884424893723409148500333335588923216761788792109775727886593111343447237260053184624504958966924195975709033267129712954445744706141158358157145357870906403897670953371342676000250372064850184937377592100732847819231887364882412661599789015578359871310644442485875565525990104233003259892195168511033847712670127817663277642935251402252580264720656483313550995438086769479457493694370795379136355641400273420955960396203971385632275148293208974283886625816479578355885716864801569347376796151709939981940942426944261957951011166314873231105780271893037717409530832304388979427514478048989413825942304799255781834837547354301158204513818186118828575342122681842518924610658561574116942577451198918428462334670697222289686819207650066919460573374563475699569649739595777373776125059266036997247376440027186988218924423468071824117572418724157244914535934497658827972835523494127523896894708763171780976907285251044356296504841522825803885158212786400792300116402335176696432769498937833443431317137118675392669460900253513108876991405342450878741159728199988412525894068288492183460036814941857837593074672348220754320994869392218639910917239900856765356199332522583074754171710480212519551857484742025435476511296381645683738277324745792057658460040428594660860185124205793932421170004867385203418045015381689919934511354405881914059681672533456140739215027329398007493896048251570697937678142728857019773930396549058988640827771519232019365662592609745475482147096546611087239769877663617477243637001902476724461604408917500104787558618990152973353934013739943589065485621711184627364902169971862154708070268352303062357583564906571357917632364523929825294862292025218771685699295966004315524111725501077854225824238861013991708510149883762075323507331129680150036098924923641671056689258671145502872584485334747513086292791339085109150475732504275637059775239939399354296435526455993471968628871078988565662788767873381933667081444342475172466505445933315416706996958345335968501542767701516416493472267829293163337036803066013826955410881013503769244882090185660112367984251034254921102055442654853395315057969947032964542071274731561367761893786685585603371899422057427928927213296601529001910030202537747907761140495327550677438933595088454701381917641663006012573694595008419762153309437156000494209725130699411526275332472093102333076336009665804115639972150702682846668531800010416859987243522820239947341825461763658011650405463823403545571708224538638739297657442627652184100096927836329674835853619168494047154933130346621677925305264222684586592165466178521097328364271400235737135527973088851499984440119909385851609398884084732228569774003094603176188213508903080615065173722821429529792260141486235843477581254975052753333808197014104257205036988790137523648590463638933703139605696315475930776201700525112459928258789266607205284602208715407182057386686660724023084166527551219608384960914747551479733865595650683083255132789451521587371779966414433239433732376293238677726375065067909980000279368716383474783664405693421729968907941400082809009819410643180487385766864199078923468414381733992974208291312036571574803221170581744810955046590715875129963396299369409608576922108919639498784118385921279415661320473123908792037690387880058256249932119546388658344495933299384339762794851592668256562203931465417495822741660891583443060886422195649726410251280297810701077671745793392828247981441861569099929906498617886934941741389441757892596052100258370821290915463615647526417779127459421683842627376425557926013621571490345928865382364126653974334643879952823559879097269534004335922153704478714264335359880146974778873857502049210932462356124586932535011373141747113447248525569519495035025761001391846476498040338739596947264608198440798778647129959315081658007060221080891081196174586582274255175924732655753512432122041544523650054475296140674312160676815736510987524487287217993322012477495842378163825667156600191034099178827366684649903912507407095741572048845072832464824817785014802574762962142072705526952823054796759583007233681772535527040458188126109883799153518445399050270746983182334605190212596393622396605193482680998927571339522643824249452390177323183550390223671146280386092322780210988020295777206363163849170712106005775381748356712774084698420652764191447555525650445187042599965326127482123347246609202291707047471006517975296549286773244286990907272544832967182713739307513914828793275280443309792538452697440301728494530016682837008893881518359279905197982460651474556181227839407035821497298755747045070899575354072607739726908440365661969377226835401535457484088731572256046616039726704944955205413382470086110031779516716521754520066475945591218746405017923942429400504901197347555464295309545026377119266725180135733398069515548510488846161399266272799132294864678048995303791499272433036118482111674462804643663893981686679062216853776844690850660581522638338297869131420346884184797621750109467521241832222201821197010983796603890274368648894352054448813933560751792103753664456730267298748846128443578018831430530851252252657733941356691189081650005485397893141523111052157506524778525079940230866904173981242696211173012723161835480865260716977633037713299429735683063175282579675362026673322840468064069178402701675141691679208481117881111989201660766682705559955059296282269731153469241187186294160249869954734490669825638489305100616868424013916803187675217390818221044782301546319003183997253070735113984258250934348153377885064493365933263780219322892299530855798925417618200236853102503050348536430653429762407425834285172380708517793575936614587402520885632203064131556666276212829911877255178180283543259606770625011241982355266642628132854041151584796761301985009318706727298743270225043988161889865302294748150241808080294981719798719844336648007682132253253790320762706324339134312335781739059288541979232247837031387983103089074737700589830398840855542101813797176917630643532076675751455067827642922822501694733646883108362788925658343852929449407083066650046363611927219217969799026469311941908028911516585914646928084603935614070421852525868303350079516464149641181703991751269966168113459028024377951463631391826994458923103092557042408225888178348226592539896158078029137907000422852358340765054902601510611998100680061702267524107512448293068301972814537080423729192535600732804813265413303586858983102523668346825981845651873423464713357217283920661217400143038680531395028985305631122393429530548406682925530893187244736611655248260999063057061515448052111152876993874803723883637143172411069881080965039879740062403444520730006447331970286245812171639512413538595742604172239416207031550518956679777722300593756820691901895283501142489388712434190267080409354205945738605128522950662394709913366651383728292393376648616562536631211570449730744087269200144028354723346127060481310529223717750513898054679632847665499060967981588425552159196695228689439418568199230286916575875052358222395389097771658501294948318356582927377635945292147053558880358094120451747945037677886159416063869271213503912368794127297480716518029445349197925215774969427434296963197002679894598802008839158379186753459467510186189054736691549840341498142638724534010479170335926754260906410953626225928400125090455364099036621896376162927789355333189994687501112919468270635477890318991403454086771994929018730791887028478806469510545340577312918249185728529436960375944089812953965411522443511188560917044266778355097190844566358941533580682975259541031644552263425725256612335245993569989858103779255177490891619274552549141349717983855506225922439225004591749285587719396363457752483372124449189163796341223390082520101631227619128726998889142302276227014087607765302650060914995103244811250567502830355508091316047506826284893469355587968422914702052982178503474867849951258019476772617996684861093207886008469812011176466552779561421948874677900665409292250408980474051403542935240471636103608111972577687631727076110083761142748940368796863841049177922512672023354647833026361815908324130258306585116260883696722427116657724866615066786749910564114158562658934993230336413239728937628410012464773196358051969856323756446014139265861962178159747034238769232920454364475987422014804550623978003198597766811833596166340587418689049364665934320244181528170138807048659216025200526448034039885246666546149175239941640247445443748751784820415754528937181524043632478656629932437326148265935562567457857573008678472009458565561608811404518321749379527777788043397607059960768596162774313028633058131796406370526300794658523254353258047756630598101674382756148396747031797833384621406860803358467702732115705794159277043986702836740686918126987548029887203741506355075905833029862183419059218553994044501358973803444921089804759998440744872005261774773800261794172527751575776353423547911393579770670840927898401734039870040399318387838177965746846136976475208360117772189058117679688904800962204414463734495626824634309488353311736697741865917562430659888334290132091327978703711057755514111234940152399955679484908863389840475532455676611243752590469161415583097345060915426589000099480688621857629247424414837186976872461294214960375736882414091277746836768011782429816853690663993660806025092666609070255704823987146680320896992727942634557305593345599048664323103168257697311152910226491663797409049179856247747139844649300129071647903117479708478922961231470917801412946280568423038605827208069818886662122511376586796796990691001553833455798175977603944640228083339283046009322891284798223245711286957158483200821002544319438440944844299879174273029380177743091894045253460939577649182305166905345655062042298720380789394578798128883522226379465922544183777528722208786925246368930524612790860356613650648563215612767791864855769972081937931092170437358197875956279104590702624255828103852452486992704921653455450627134881525961717570242858234619286272639742050928459836788412832620008126962958665064079423284158704858324656299490801205759360519899580425941831536073193665010279364263762524149195912249022353065156912512214646904516874651657355835115869003466694299358673421937563861858852713345845551768869257043743617957022167704812603956678769895163195356195728992533805146998368230663390564493434181982794684983605055997067424103400383988042618897031407894184850965790797995340930501913151253783640267882545757471695692540544401464510275104860654929083410154300558884363528911365100933269047440401565367726426115270580868688368999464305157530991715111610231462337326492483703871776710662869279961010090989061152615898649561657786959214372186312472145859013264723940803761885639661674204489085297327740108244216117754062843816819449786649040603174160774206937907833908737023226562200165916951103401183282632852883782003782344182851151315181227722376532791860685174742537929386874768805934603056090778663696121604572260479503383965608228227806528191250995094500505701340613426235811489723270040094507996477673773244562311431857685621723339538611083537599890785849252879437825038253122443774077809976213788956771093193592552508116748885321939579916950052316319090875814715749669687274133247747770109719579742919711808876914706532257958711154636487503823053956738512628114337366871794614779735488179347329003364287712909844839003382184580506284125205012457295759157115514952674054669190131501205985825055048862505989980550016396168306343787562407477996447631615752114133743509477274005906823615478427251818849626301639112240122339951416220876372382278329020235750802388810802633665486066252855575962590308590324816065231442598714675766442858011961337881198905959459620331480269865466918380871896959664791980181214451091074413221353733511351360809419570803316844383920218392597408849320120245299808041400864927860850822672714714745418719774574815160025297562137336627694520362498603491662294706343033320803390703176521620571310011373005335533133050358855269062503155251119214920743737291904937185947915193107212741715058123693098025383733633288980706281427653281536102374302857987386129034890691779034546116709796755025875680104919859678845351680423353097509007938017254655532885305475956359362177703833846856985790544636972210158829965270979149011695977793983139126665899890683552544741528142426883652884503950837304898212446130632282835429408221549910036291576087795757858922147043579586915852029803946541619146214008781633380088705357741436315390186518041352138202558664054725187596968271074650023339528959062666219254602928516818496624304889516146227398276163952635327284632916638102416101720797231641642827663857924542767266563405571272087401890951926153944101447685847600233248038034229010086979722103633783382059889774217469665641538627929557004566043979223127027783857891620440503851660613527238118581713586444755562632207862898460963662194831383568518730560661713956791129511608751337816822551379463703386940564853521303852626005438566800132252607031973876252285383288107057500223374171111195666533283521046080519061851617293561253911970210614901855710848728663997092209007390672191570079211668028117751585222144028418471181381957837611953852583267044485363839080037879921512945958012641479605760731187858632647018257163003488154231212213235816197514865966427902467266172432682950286481384579861410174119770756140799635647666834975306042668780706558084133595106322902114455951929087555377830785161027866759276525214617382396891860495333534585986032177563669618234634035617380995730097981674566470671812033223327757437620386980329125693766681405095487427259283823663436619924934963822137075873727394710464096908616491416147846939913057167998744322811735647681361160846169674288086881320601436806977094227904401169286064727250007535505480163617259314168334579560876155967661310099301521042083614513827390682776724678047136880487014803401691422560735757107488668572692280864430889844223151793765623469476570583159326242057164257792055452325885290637323239365611523300297079532931768296116130354167647654896285836841741948501208430823560703516267977309338627321827696004504411585004998475754413796643058806784295865272141780218915095671860556769616970772445478784722257611919124105518349306237659848309781425752761983581706002304107628841129308643214896867046254136703281306180129445147765383412603865247943037625278774820888965276879969275832534969198375541259976627724911625385792281700845372937599007859955705037625443822912198446411189898962562976864603772415132162568129227770626662373506113652494945805474592718982343716691810505025482325604197332398362959824158043240817353767251413296608319596137789706993604427504381783151530568852352680838383636069596418787439573496668019321753481776079115555691615148828441323153570040190718826230270970381254064140174349062979867233356394245788423442775205916579802448693226978524994524352940287443956256776845184870436428170582369742491590298314722001212426243803338392549995060749420815650011564925806027268044504717121642888390135856876629831996665781817433442494509249370771217962215759264974317936316315116357944924862096995249004359090040119311149239244643649954970990941656873441181244669243599489738177777990747995393246832005229662979204220420627018977828117431447917498692339245125198990028868204578782652330230432826407004352955995514511967024097190736806718848934360901401167336516988005487320012660949501489879133607558537561422160825432857604575358547411519650256247264362203561875055618493026818191497641063689259857492718737869174984744034913320873969414016574550172276347564137217131246190724657163287524403747875745907029212573316182421885047966621401290881437208417393844111952406646884446536180776863975014366007395369512961580289908885316128160568980181923580017357522047068843773221285383892249123367831442747251036094755620675320011394972106315179667530367970338929014238355397784753081745309953348487311357254140135656199085874954265136288471585253286997375878996063237795370453678810168104215498035046932063338078126860312419395235299792806846278577159991154407442592835634500119089035535671325170541953577565116704917716412707040510730792469524104751754735778836016957688827775479630612868502044958363263666431184610284701299048529906324377272219512007646390366016222282975534318902260329060845450940124389156634500007701793402887866353392496621121059668216079405758606794288111478804944296413062177043454840616596153290195327324147582702441153409499412592604027523241351312026738319745885633201883264597292917286615412075838892890438612671159880113491803910451478950984905559732007306860603454758780301560563320062395970780995770084637993278800848705848896717080060053263076019484233314291694460025743041397015895364555605843789594533864117446599210546654559049091079206734956461264282070787371309223719666801426269010974316596329581410902689591171389085817021286127202684209792669485189808954318559973440860901888548093023187026660961990322123344892564724689322068001481177109996644446928112367387283366995271289998265885278495777645216047370495180470834466021080709250167717238302117586073451493997733177643251799590677560521074870812505514832255181674515307758019586453890602535241097805762828823832381943088976326427563291265742224628787117778902758105911300101076626457988660775776767713817971917649013332316763085761815653664409299218741677167959473234763201608273677605954848126281822558360730332344138701544534328203153173945574295010369961124384358253302037793203639866402726479972850997454890504587013235784949845959661913981904202688254100608452412989311131675829466873053903396245114762392502662515735812328280301835597048759283300486845030114857999198256446588652685623219705211544070226654196294220942495115962858306655961407055868118333506065884267283760432681745394036959551800022652238048436235101248026496648149187819728176350335980759235612427527216572099971447985061907663600115149588101342785280075044684155591358909436702997356418283304910844079962596051570050520804294751361859162494820805771724622488357987007458005634632642571467235180208211914394603647132357101741088713952171146649860381057693877044232262645396044124798395095636734500218762105040343997550055362758872608732725466594056790971601846107262990397909958011902335646454337145885098587659410775750402303115166491770235168205318792602461273631032898303253951311389753468582013717311775001127690893736684727341210965155807694966155678439604501795134004673172627363429177736468829787377639774366183924868800980556306990364810370489429616242085955945162442186577499601371124668277619116864888310839533196711932224307409798185051183511184883868772697952253965712613139101664770987280042034893094150872832775716684977895524161673401505392028998545124479761901318145504391418840189893821572867237855776109383134525441184140463958171508153817152817861385463512993674161672333454559000459923121932063360858878535510024397921271086143082192977211533647378920260131771110802001094143322260906256662946252072931837422430301670082282134827595459558980008233947731810476321256425894080898806363971462089655292668437541331988992987067994320579626876124611977107709033197570812831076763868652782564221407146439557392051300087048438548377721360088143942734274067612409983626506190863051486699836150751153074142550529458401701060050034941292269742679947202453055850719875256593185644425260415680484149022276931845895395020979107483809514975022120007746331382014538198401841532245857449263955679400268465003916097593210752514944304118600391967362759959803457173831481929959700045607202663763202099401523393557399325481074342839331611893877111193378924084913701703233489151864024656189152376246118259104395807959041614785324699208768382926818557517795587343610310451394467788383674154414267839244402284527189242281121566793853021376392247184968250660906829640242230803088954221206192439776505073875573443118408794591146430670504030760652529763368677793576383690487688615836810718794639963036247476845381825612248091991474802695292842615791315000296700558517113955221646341492538702748487974800178289448944252731957174841609469295360676751512646720783423044671899271133284556474780493639504218609335575362933700358852604680681123687427398834114513707832568786478639041892729930200498152304414573159404306163839330806621010451099631807713587155483100807071827973174904350715369240985674224273610173484769436306120082493601874160489628739546315954303760510317131512808199318991798090893517930534891785592395327833318839618751230703483845034078510296518768104366488766817004817844016154665844959799067576837249296138520435473099635235077599354982167571141662088045170555529629050162331544942321911493510497306600298842791754641190124214017521954468429999153778811520297100976350396161937558428696153185893542670470985819443584875467697093205654018587105991757135174278246367518751844329095576189219886035174526340078983993912329963943555080583850000068881316463854774899046478432862981913890036889141662914189604613333633736806929728956192702090670226142456251048566385153968111016361256854221275685032575084289565701864444320646349794798752362226659724463506562068938061982509456018159254897115105668853642393460678882885948040536763066687223102767655204891432580899792737622857040037016398592131062080978371687029900562350489157420266941531485660803667559735678931371323994132161669867309270058502021409633082788749003714984132498104368884752919823151004215009722829596313717502466035095060689938592406158352674689269489433721580709196719291363797855176820496678101526851008522754248269388240892739581504401890496333709513128915777577907293177224365231934417891485458307197436808690696820744837901792139972520945332194161372189999348784237909185665651069025030739914892544985061073509523130045777853794644943266932559182605292141834477660932365903709429137791576487083177470898075374055583852011855285048654274183414463190791674998342389860773044458150932237697893979161833602488279077424138284840064789306241392802417679298451207225589612877732069822664670103732439285842656407374586199572763751299875446748712963530532936499024481151433916260177543648919668150956651499692886517063542209914105844443368721827953959033118158114723277149973976117267085117772846372123611032167049936486508768978562717807565927869204361504582604386679078156282484735583469411604055013680848144896837122946570873806606778343829312698767357467614154031694243231659476940660375199192055469420838784376548565250622825582489826549279731282161698131664875326544149281976745153079632954735182007158856166588949059222408145709806515156780147300730567641947372422836052821197181342098288941673089762291374875897191872299530405300606954789704410630952405448397514196834090460574667090204980553332886811446062199550235032714189161655845063442055241642375965801080784118635827558989626898033855008108712628257764632138101482654558325252157045017923710322605788240887044056136405559106429889586251541383766171825288226294882497744581674839347500021013042816792823254713739960531161880398137340404586756963021703059314196433388645996437085595110623482770659266324079708317082795445294541135888053512353786837210985897526842521893798790936664620613658252153800739563959073169725162756389764985086503488447270800996839470803367829706984102628964025363219100361472883130672357023522619898752596045025568660801208429291767668024529714216200040365503818630435368080462103816419473468047441665886327830939531554569430667475175642595553437093928937347728684326186508491570572726358087086503959379804944309416049369577265747189219458929588571787001148333714607469378455016382829936237422319635927448425317936444747418971968700085680557715538912958248243589663979658301961903808029037713649714144117762069443451685816728138273526164026081520738834601290716466643923274909822044184135096168015241662575822009334110649785490309998205353267466887582203672399266652201996434469137246978817692386361149510625100337211800675239134933206091726546332705158491739283618752945391901530584869299900203379725936319413175454903009422066705541928819843394229520984135128074379846270627482556703971765447273914714577403703937101485126695161222955164539568825693352478449103844972143065522541791179032357664240146778623900662594191056136870444523935400322273009448220244469184079443858091308756418384892989834846256285184865373065071017427201545874877429178259395189978909567210734225780706432410162587671752447878826572809080159500679255900800543404443790258383985353404885695201180663523547770479056833419015146284958374120038041124980931002098737141518559472191779488222343024815184860188758121087418697867247256769043867778788826019976021958574659630774979815310887822765379703008269914879358777942378685204212859371812050144663177844244846799511316433412846209218278274548845309897382524164835998488370561121100641390752199053315986579055589999056964746849783825020692842835819854018704631826124643998201028599510537509029473402056336402577326699413578340812063007959463089136693331407086098595213892128828303329244566548209775704766356746104175566356549981701061950179293862447908726466911241391361804741357155204881770052472051172156739422894629801784621420768583764512437876107905972397714937939491893078107535703806641806663325737108166071011865622468620096841931836712576119603592060056315712058991010287104710112008093605556134813938131255403516076031150856176953887040778030097681541751790114469636950378412028304911818171483315465666524249807756549365243096624176377111817430067240259292578847878188902202460042740614533955997965383075099058131492324047506122110323613481264092857341150692551294037834337322234966995373560933241991259904572358309390189413651589336726635781605982036598977945687010051001591305868096597620032943116299007736440917482884966459115853454699502672804667527089460458452592674964074563511300377473363205962263685545149497721247265731849745036722155596693936945036042636150833229546970642852373900983963981813459010353311090360457989530506040352403999076898481425402988169801207310855036498846283727629567848740837764604167426739119046619952018162906573870615177987167843665928370621967557355253823275129766150159833830865089305469489147435790655646574169855399249147134595414669728029361164461953486802456032098189269314162023154158697411960610229076848768182864910509392528470857183155337620968773161279864553185963164441476347817941087932765166937517557702624171349915544365603238885040829218611158866500196526685873385394210910324891498367145014808664342114374495903231146662084684184899364624174267510167943805093130489523677769520753923563584078456965114706987984066020094492170621850471492382887177711512940451687009435561968770931686993264961097264608326644438443467576920783349138613383113471849308882301182953408833099237413946196361080981519027024598768339240018635818615805627576969761936705130449590890945177044794171382881983365819146002569022220132727300630189923464834958495164642489017303144472430390030724536095625224738364192116000006306408405384890823656456720493782597151089081066312683073071949045691942698208643962122748285465300840029569411492180021706576822295128121431293370711433739850022037949213678203130894529008061002873902084764218662955719503373119992001005525809086198506092521616457779440085548331829644053008634114748739600249620499283434196804520039404768267494670173662716540898993565115423928249805909043689065163376415207509234697281002738185295525415904888690450995209791762319995026666092015193223830921230949371950898465065391571813648483599298114216315203331946812172202832769802848371298214831508169289304930674903534257553525514642581079815602782275033564621144424369562497750405584950507896272793952568992116146579576561591611003328699526851085348087364901407920804956314444839360064492957347346343585433409008839688215157535616135531570839670984784467192060284001849888545691945165946077559859396881061663990496308831463782423607817591071675970619183021025316256434181841498780061365274935077586961409142913018143993101932135967627668050245545925856325348112197901972972185937700519902649568769498161415985443983975356082418529438411981713511618696811823709221137062670433518819669680733443413626369186707827291813699956039556366402320634094671999631402536304001435022936889214259505141941292927517223641757561797788001267602127127760345334686710313380738900685473986210150234608329851086162265862251731577300014237736091178710388134741936181292606031939890848449886045239206342090554425343313631525097210973871163698527196447558641096616120431462894177813405802584618262842910526908047250203547112483587489179245889325167076365566366842980644136915974121718658951054849885744964041866290871677435568934310430910596454208989206322517996535980655075532595537460771388423406702840606893033216133696215526505692659805241971031318327869978392785254947715010426432518462794168779993637916320153440433729861418359575780161910265317427776430301267011635951380617665390384096009022637086040850554307568810782575417847625813807084979950190073265479595769378253982832572345313577660112823010404130104174627632746829302513411407068290576771590571528026670924321897775492712646376068899944302212189681375352102957834223141464089443015152939268282120988218898940622477381275167452374717131365640076224390368006110928510434321543150887692663385323120951610012355663493925333645861117671043319617699843738646137628115518444767302058611069894412564195655723851864096822567431707641382868710077871011003401372848603390685789577409651340947697076753074634489833348956495312941581105671210875307095997886843218713819621728509643665792895690462078044134330199322992066389454186367112394767278020770040700498405192288424088848469255355618138401121715738371132438673691458535490494632159637538067385963254535121407565119373147018787791588772926665465554429039987348796719998789155193034722457577285454195694031278374671978610186837224080732724653702991246974178939340202472051349145877760908976287143191698418543627508220958692886904579187316846794033089296854963185664806785980306760136266682466863394512070643313166997199234885107242038908333880683365858549910581635194737179649500718947308961451705649019671832493521624587208461240443935154695836564445648881161677844846630939017260768015573872532890430088140630589165245616241919379500332628149645364628259678125195361884763842288635001503359256748867741419741011624135349463669022575658844031427673364850361364285868503388106867890152002475813232207900888097017123150569577012212344208919969052366392379320850742471348522170782242062159579531619635587478838283886144893366667887167824844862591273742320244928975338139574167299549991788815346312289939777705709586937619659338475340922183039236043938288752560050902514402426230130107925913330901454511664430864884987360299836170799592890796510749086824847404963318097431322448888856341928002233197286921013183585653198250823905032989447273033342971928391230438696599270111883412751882942067578766521921161920984724011772701235549942012765052615624787473005554259012430145680357800163514743200194640662552212017295041856166506099488939508702867753624375132832940523180252830954696908847811155184993441195113956278366751467552199303188474112500484961669551170018431456206882082521044188751510112921642653515536781442531043352624043158784127119793462606349902358767318083002036931254758227513763295697199700402225615010914027930940798822474179234331892964657535944719781509152118484687746260148690346899107762436283690835334101007648362751126934516690432756428130723972942535211916777095433601173445816534921984605439365397593628629852589287614524131155226260980109357163799716070139732019566248832606533961564656797009652174643100622595308136554627014274923197680764749030153062924620549818863317489341013973716191449127091517357839425472368860335146034636371681380488823341904595181235625072264026789753060925268874849103778758192232323181743361867934201419338652536122091430548674975007084497284929721683825350663449132752232703116252470522420790017493961211453889107598496110676080730048697023411692428123247405518729413826047396684166019918772287386270283603480486769502771658974781416385527863504215900930583557645245634671536207659596140987935816745345565780430651300589546486821264539346809943147117896352595871669134203230159578114389071787547613895197005230871665451674417317284891076186799096880490264080078587998654170556917261216788767671634414360033357318051590971466633302057007096615484878406148183566157075602392860300847839152421014519818833807698563271831426021177310748879921615542153218285982055422301551587927747903248936718540442356648394588837384064362947370219839049895165646131979716141806685673145998438195907238042439754502509337785019196710010609870389095170949424746782047773958951112418827339151691278509199899517945429242160529043705872816456867588497392958168027784188088611639837228698683336024472292591543012465367348208249274060556180204267692899532555288370359405078258216111500612353661212733510409698458836484240764556484385124961711158798559354159096726557721356686371802371515120325694915919331672997176254381325021619597516340638406181248165557228602048572530878138924037082793319179469545591160819490298479722276649793421054640398213938227445803070722715072808831167100042144239729485406342827740428401232933664785427450198731309869180451734283924520995126370058051485296732913508980826659449077694972697701693215831645904948350427056678013216030564997418144677955799502335089337932045230331005555615322774040468544515009394295154861155566464588591038343685724768529559659196970264121564013760168722013686367311663828640437314809254642567477937625981978964572618979146524490870233620198325499334467350905225727259420266233539388328295174346273783618661288686148636895152643821998038287675093701929150977683922634262359875947068859391584832728990245772326742818604677720470985051994867544002033494108788940572166730122814110847631501133898387823509656457424742281685746833413766417151881915597591622897706798619215524754877942022883819896126602578893084380018396265105980852984196483590697557938118202129105854388689583941996595194640331945013634861794163289537045064228410349903290237921300186805234761615444261075376878764108297411724411758747104024839547531521449747045032137520280810097860931363250976223673315148218538642365688907272134240669518549143166646144604782851511718272533733886140698474482910425622516947680566942121130203858266708440119764869966834338232290770842024245817869901805530557066683748778044939183350449103958371717231724613090039395827097994146622710059153532569868945024518486841423786501309966084366606676432561274180901630998839303987153648004659043126167256807155066022927521948172950374729784336664672201003597160689567497343287429798935085165583551043261081953043140267047013681479899494544383248857552006771051133665299975086354682967349675281553856707543698190035763776027417100972600207063165904257212733672506316641367012294083370708161156000635299114549941392583306427215130519665847333383151653044897155731845771267687180297659407567010399074749179246191375134188328001362631623112533120344153146627047824763866748686406548629603770218640941199699554203680213275865930421069219780439258009491066410659190458254065943731579172266625073899848669670250769908855535886312312352890712601503643341131157821670578753140143599802146648260587871623389762530988607976038475596146878150293549404900625070371656878956615760161953624473680175066291649356206568367121760856642686758723913026912810807236536016321485601854575493695292754851863908092904756736370921825607689749591652333192730124793600850534061994116907270639652723839742233048713859253258224050895678366410559924611980763960515149347041149563500375478595307376834859188868101584761167670943301109211076575327604120201973167214275548374889419122790605273937652654870348091212479722059551746092160366690411119748685543488445545371300307738698739756232942359244508736793687904603925158437441550558245006620589489073317268863457456205625716189921103470814334817205364852640828963411069605871815236990639096877160241127715883745778918075080791014876258233379475993235596973484652125952781353448687875421672397451696429817141643240381892358526410199888630804792133363434458484770041943049079355918890199225098198386400005928261966677129073947213513906552987205336131369437055847360101915368919797561114021642738521052473537599752865189680464420443983066407160326810283886742218152363778161499849595997629344396040174880926920022178235556094944489654579678920669034522364364453034083922208069303917089292517194375721181341193438088639096162807860604420656089121662050679570903431752116940477841237492325712453237776829784295879934625315253337207255693573406546772499670457088522158885190750338681099273227847498564547088656011801924827532836944138995040796089550005455193435569077883169363899022210030270660249683682447215906330846649422068627851090536392977445496080836240900895147867113666540027507189072367596491043688380473890221987718393249966694316218476763403573782431151609985996749655673951165324469326006694337196045894834312063848126241629346743283875349781853092192185014085251655684113904456173742570309825800414712132894902036616293784656544056069396673712909238124330916337731361655722565748371665629333326758136312668801299531634384334851969119661697684690789845438840268359192735355458552046256903965805769519333670598262507284124373963303531139593493961440579128338939274441750894209264108476040414937351250584538503958148525366797505220560438774821460190940202359072439482928178773932725847859856426303675970143165455867873296406611719423158205098674395878248466851295062658291268199430200832468383154484124420705133357046359913345856052180983058575337085513202488474056875626872498109281037955191473926592638201984706896676344015528850643537360134158894573275816644476619137009993244350636128063385246216216040018219496815346998679385634798829589321485023539549657769191961957764700176005935014453120555043803402086733288043390546266181728289166879161568878287513565828330865222409627853730594275769014180738570326605520742901035031213349770524229379157401505872336056287088931242865359585094812960399814465140105323643910511655609177842432056763386382040303549524462169418832868116199813855362411099644221499319010233059472949094250762070821257865899991008236227753531451545665003377528020721426517147651892792827709068880395818966552254558821196185457075180728483928477521592264446775037487307161578253040052355389855507499354751757584610277394579855007167545033829116136729687097786361500333686173329998643970802179331238982983302288360069985410695805409101225033109874038936827368689627160834830166010630315081720201871509860665267901071185884193171969111609917754609931423596530704825801031028124436618838165430068483085719563469523380584631724056375809707979601537043351155639312075403280843322419740454767604162949499533927671600010126630057008157602624729237814727008295107614205367146593196350550712155158169690210736851662074221283644730949892318369831130584753186798800992769954817711634310870027652531340554714454945218237058646376110123554455579695371478646670899575469380008038718045705219621071488862716108408766337346078302860540595997288219032743720190786487474309764169572785404701805323192688808316850431356737508262673000160715423164004000235331653255639436085847332193253598127620025885185280369421108944234257305943444712081742240052960195203858261522703134908467644765889019599113375520079498711643272469127533876866172015490762986950346173072282911295022241474160731210734809312900867380675846167995047819432238233263497375775978732845913532461375325262272864739664612267880797048853146401997847085787320667106740240106815292372566235140336672616025307504023378799544716897163205523641743585463996292607817489841607083311749186580974204893632697658183860246715880835657209636183513793845091435975571254804399309626328044085852718853436193994618761628813920178464998556179726761107373271593210086946610796090692161955012280259986202726196863766926712444775389067731046268466592815506615822018551755140239612992218622989248081099716107691277407942768234966551430026432559011083875216845791698733405131227602857840336857000476253138137781564457574692788093136681158100626973050893941582758191672787792335824799614497163178211325399734068190473926829550405994469945190361349406135469457215834825244687733522535931131052144389917374989744620190946171755015562167801204093381653312717426467592373619287497272020354053665025670485895225791739374942259133994778383691576184376840441338947878920211840170674884927185161269131070584709784438442638379324833720035682075308546361604139060871245900080729342420208300149177804870284085077890759129145156064188497927319810242461309811621480660607770484921246040269312596564954366082459457284324791545150334702994668995090044654468205096965061727511131732718731007580327397950589086578096413148048708708562161566619199962361197687541302722754741745023179705527295572795135878825386662312209578969168843953577428989665511779410097417342607471541323705321927813174860994650047169969933525284984867473188158855586901601199852798726379060634543188521569766048785687158317576877810718677092671913914158099027080879970320064604802034415226660134783922319941746361199050487822417090879169978763919450698076133798075555667517983471588490445984617866417230814328105667659076108687250005624078093573486049606602566606208626481432872737782800805062366398614147485211565843851721384887700473095380274683320087466617757066649401714920563219274473349205649735645548738730840609382687333414633565080705171156166498501481684934267738017525144692436713514671328212113614364182716776272299713923370580907895128982489468834455147394354128602143252213266729340961873438843085668831522015415991749218054358359921176921039693636329752872136908879011932426937689009714548338229043122628616791295487764168084860675426163040756636249667782381845530017225045937806093970987320551208354814215550026623482617938003865046784487756526798109058614070628186366226430853997508570569817477931063545147024749937578222730814024414273612048610678987003528372164218295395164046151822522551041443465684537814133514888422213214576143153141118350299059538392801945230029009104115675640008117536388206263638053152051023277033890270221082842080330686858143534696541939106206092110264166018622792671774792889331592623625027480777588724243140216841015582855398940265497309281408880108456465614466100040341098211550860164163074201148352517784824184617545059281884739586015241569477301698844854593065317332589100259746844740223782932561864680265862724926041389959982414673870452372928989457763045690689708769310274450455905004734371100693681977289987545420089133450241426046622536845704148958967351364863157031296939744877319455810426762212067787391295903824824720584051730275820947746056676514479458352931814120854072677343946139922479554134118610334983079756059036993421914348634791191263548501329236920573389883921647362417157025359060000344833921273931981281065395394630689703632711173545258352191342517191331188952241939785609371476018577610013140158555353937299799749242623558292941432918594162344849286566177953687524599341343922298029168874884965112325878985670101394470805498692312544423899911464558591115508965439389605655767968249492385863916486601060507033986530181488953123564241245766803498342405083468390442064368316840459404085100465182978858272386584559802601897273623920996289769185046676376639598454716084960547132233992990686738074806743988048663309384180376183652029960540047884695107568086368139341182777920877705722610766721778677347409967842828402368104601379555643642758588854504991696186680915292179165425821740974601516789161944160427046711065961239148858838914992175471466041385867803520997008783799799476470237894094378889080092087416633025070760614380965197623774982360773156075785056338289293922142523962864430570677968651853800499874387194087768767769245315197708286538669270423636493395424002599751859585600033626794737679846276971255488854331199143530604921086872556352092057724284208414023475115683323832699076683205865677550531698434694050395329178129599758634483062827606774913050101482025278329357227266788176296226323884530623994924020288086281884773356549530160335680672134360488355947359659676087532146674717067175255160895593607973289911073096405424373561665892160793484675839721485820770758894612486133876499481655883263733340799613885491943685919687504800474843571753817808159238908487220715437253276510921935374280448091147003806413191938971410025122051434296153836331593898699350556929522453085551182720003655729533826594282003209053564361136349403778238165287782384570296353419932495137940072390570752620008302656475448306848149691767829693861281467902771232072705008703637087419314307341091688853490572075373727114595835356259211246224423015224260265990638698373593634352025372190910067096225776620783643074145058694531337292510321958407541264541190570281265595463740468244912817228480238647082162050052548514647338774884072866408422823827587423476501096248275350210672798753832195404191308024915552183081938773790586798223605960324588938289844806152565063629914156532297790398568454949768955273827616662865972521876538076112727153180138271320826376606322518919389558918168619099599152424230735759384208599417633214844284471028520718006004745238440712318648711777667296407612628329136684246165759962807998101491970945789844650674380417577615734426440796434759736102078250728259531167335400792160217639864472896266849482090224466704065447966024817296995173913686224687215606084617138327130133585199711701438294094541468034605501081453374557195744665997178735523717104889238069535272544232578923271150349141075592149323899131493911615584414089816093133256073383720796224521904538750217492465707874251373648956740968091921207761139218565787053309781317557189821788005125485085044985791743355442998793777477399352144139538677103746329202090255253650487827070465186997324975957461885965552530013683463270484462985655553087465644937629472034151183927860826688804921611788333546768350222075086652398517115949830060886830057259538537302677282557717313675394373943099474797937594873307832354066002724921568763108455414554991516197772041285282279500281372010524191498012205773113443451215142625859214815095323782922438684809997429574910138927252432278890857189828808834644184785856547288067230729159547713729556690375385964688017012380076922302603188325864422342255417008101853542327920211257562150323865436608014187181255121838307306441913085995780232535905652591951260527984543052123700979570926424621912298153264392116396774647345575707557873806267802627275102741904358200204190285352773293630205546185183227406265513346862794206186381653194128213967267817878298308075933732832583917002796081950905095987062643188544968002633978505828919025472737525408776976641282503589510757867904754291704041122594181198413123564727726067720724849396542290582424010880173714603500917487252185900839752215654649826996435706995497474656590282449200314100758090299017491339101692990394597936487284070893389578162114938797335711917469599883409223454875332744654101695993840678320258059177927246966202548998120965107074261418612505892704213456625559451897939587000164924331007324014674828697193241437382549456337226095173987298958947409955132624660410512855491341272773229444010518438595647489023923029815750242665458015333617437575453850729147408372527063935674040015757990849695910869669388474277680999228703521650384821710841703146188091860386433204174159082673186651084864015135458581298771439750698545806269515468564358119860866610652055608531297135881380540875793889962232369679100841946639678267276336864822092574789895348343572272085071615908517010674304777366244286396220569974999712296453022011545991549348723443603770678608189233118298524733615432620224754022318077830982763349166250218895007327747630367934383237141015389493658030736262147687122278124838250071438970504920142462073483661456327228204519810410855272864312195491075302092458842173757437962357950181771171896492255334273311996150283473448207042913818655491921077588459656293239763758848373890505876003874304206305239411278143766709390263022677924008921618731009954937123198182399207205039909316192311692227144300252787739163248303046935076292431943902242600960964832922137596259506586103285361367373368150232498629829393192730403974489403059454998164362224489468449179148536659445417938555734234004896508332327916921919727045977345817909119685568712004852514206306092314250406958966055037409278371623971654437871725094266631615474698205389183445064585843509509517646861488198797507079021374307888958413897791358386065886912707063224555606419123414261244167596886436208793893870618209352774623826955702606919704620735052189404972213443026423862573769315919567180529774176929896809927955047138717933015189518548616644089013807792721479039697564940105195764340386425501970236449827409868992887088875764563485161596772197640877213235354035797215083169445681648987299357994231658998125937064471057092137897086340562447834689782785343195982025428687353647364763181333553642823637589828683765388757043857061411776135760651862988825944968595566513798674508807587173864714706169223364535732227132318310323763287956449148483396568239438884706869886272568952736092503949506936004419365792043592969065290926005100898322679132243365573805548714289693321111311959296000793558437656909225670934072182216211584810950978852894252989466376765401145189675771579644575420661812406330316542509870160665078543237576133725288384586020599623213103200036749872992064083677096792641484898532663063486370987584434948264146185552191339032340942267213289050005311613035991830322589712652875081436912726277989897204080018364272681549316434045171014188417549895246451434485228946682817776215158554822707319327538049066489418185639896664866494413249638453344667199647788323491900222114752554817141547871632318721867597333425242219751729800514032802063151474016153228426386673655998333837925893761945079356444671720009747975096626262334711547967424135851487010648083429037601971728963489973276947047586863889451322133323644543787539429512191159000267683980317080441092942896233482261263038270037554848450925700171976549506572294950846136085004442993436337031276130179813120711300015394943807062620674573760645226860079704626566495074985968542711133351654469937249791885961485105891515460766013980458352703894765678721944713534051635047899368092821336440401003934553853306748749377691340042257923395431005577856128570553312527930994020132250123096544064683383368913064830395037164231524249832368681718869159320373805616133961221308625768669645589168364877486900903454614749226723813070281176489475982649659438681704076988348365155458736371837686463975004638668787809783397388467823475043029396466199981750060854509653814777383737914646587624003342068631167646166248647440297744842021953253810281699235752666901760563336537919661907790046753839375465234279961122403786958159628851354319552890894493964715072433726920665759184013108572390669517435423873494103227854810051209941766629837384312097892117486316621968075553225952772963831018230210039482806002207161815636522495764014446681757995125330756690756713464292806594643276248592706369544094384714271361183233796575209181311445010978844286375738490123897877466380102445266905881122586213550309283555176925468462900744793518909727123541152102846027608405072632451837626517474556270487961195993596205352252565824446827485212424506972834495946999552357282470266823445917080430930600115795975582759833451161055582064357586509308502366092085687389350081873612852183712505542450806348675509642972282638096167576512691738749845986953175669227265092593944129190881323424973870552382244824951941099075439915891116341649503535611941430702427445091396231836429388435685288293562728007865395088900006822132922792525164260852532682292345627190411388907354741554816489719883702441903032679387947821961255621724237416259204243360116518605884633049316034089744296734347611894163883079344391041984883673063776702874431941115965974744265440693705492844856105730944045118467491238065493888506986466896966803005841278404785382530733256891639936577679141454082511518996608798028615547883256402291640475958291612322839599063868905008544417558245751528947321336812523711227753950265094772782007529762234047914530128967498521833375426068256120692917368606200513209037994151947176626074584154811946579236022045140362960149989787914343153351486500341735411010005244721373569326884102209587410377379860858444952790585456357804229526455382479920523367000770695029708915485401561561963777756063088697169028525945344460253331797411792943651549119637494513170958959635243838493664364968172844310811911703601018549851369925552204221260222523406187734712601077365224614072682287662166586922791376141932329133166371299629894930747141546978582781245845905676392056552677889752917907067682046898955724167993249702494913448164361446987728452659373225821418292259416673914389635283453582176734143337110092379008807232300060184305437276246872808838549265805185806030691175164063971784045457186916263557224952640960665100311690313352208018346655747550956114154755118557120458442799785492540643364816255459190330389243880733228102557740545227500565098836781278679626115899880114388701910966576610831292256184299723512768434290131863554659004435308364204345591188726347555150241554940193236304982620571382847696811593354846787881256597950414541925109029184342828134282321356430193505953394235497886774675630500625673923370218362791311754185837807375123825842925578250684780555243864130363265574623591391985258930820596920310507404803984806390807201049391360686950349138278954691867163415053791334888649151317965377236188864406717783332557841904517162120178368559068925252302417571625689771915591892923082096935871377686989101773446986008945000930003969506825386454890651062142096631178095077225957449533790491344099791156242938543649755593643904399217704589185861839286161822663242972296686229774155383197740895204733933378862520780437609923271147523168638501727349461910581395781397742758228528759128451824804274683910199666827892763057360357898947112524779220343601564749933972378964299663059999512391461975104840396041053725564055298456436401840009601916537650571215256666580341181127685432955286902125224305313951348108487863769495849528653784757413783532089056903708972073446939285539103851683794685824071109995513570669983715134469118106358895719196613536552957598841037674268217543802199836184914904235656995568069439666075795273923474144371971539258981675448769413691752435451077023391177349145969892531603644374617207223019054834148769627209702851072828034914591638897144837352481466882082074471142143159438342218011827750151645206120421929735546543446060589875784707430846735125115143514411982818196800535422088134036609580458348945917074854240435695680918704251887695191179185402436406313775699476466903603843023027085085372447792508261246153077079297208630643285013868328829127025899570083552861445896897774494227000589914181220798152279088292127874499852448921646186105190443233458291599406873250566968533964906222213318694637429541975010934426557522664298283137313014817376005749298361384987882894710207867319698877662416026951182124721643011430010508771127543644803895939596083447301613632894467244544161763645910846421060134801854846611469260003008037788752864263448076859798403841038639420001691204783357690788716238535634172141879818468762974123150002294873675638439883349268771735277935813137402432480546384279807693339334465169312700084976062172600319086042894640278114497502055952412118673862009545731892922502515022640796136028598814310144813544218230699609347301204976176273556712811797892518343515733967950272833555708897550930201369911056706349849684754558646115052891449706701083858045057857433440402067327095006902100243136509175521673307252016207679053787568080327151631682491467961694916248011521117900181551728464899327392833666526068427079108608622287674184972110635373385361161161842637677971945556497280655833629990124879397964363925622313908707412529523389270913402067761288146070990299909113097436821019110958176691705004422543559021840110497876132894734849642028946051084795922091066909666906177902056159287180003576020879704631116130362947497138053867801768654251301535188279815989735119501083089327009983827599238609444911493460984355468503370180826640697838118441990309741083161587883484129111294696933482946593358035800177384579125802396573431879956302278050936280027932432377431940883465767858785661581285476480918554273358153288505399915476652609196187926698941651667078426002986663020423559825131465536881811595215503020263291406133864051421427839050845939163290274627352909059040104639681708462127674248812528460546669869830551521313469418657313548612124849052823694076612343984658569473659393957921201210711945050760286304475849849039141152786184238859135895723275939499040449702578459999181207806482444633003811315243402316636054859133002760520169636963860180398117259680682839036804668435957709541732778701816500037989699852029642177246893907597130416127827259932113066176288701382585178068132451603039778421937962438713005145428413857079159857161724534679603131772092858288482576698064772016344745655527899927741394065018168765097291200241904233332794768591960864355728439661710478764815350977684536531630867708742615141813381692233455589014559354147967515273682683253286473029879234691779019885694029565333433991693745170571541706472844437801430374004161869398824287692937259730997966125278592018969205393389020693323049168394136529358082385343284885454623876838322621734588659677570893835544460508532295315599201198929610434929955050786975333060094068985573222181558626751040671979192571585369684192933470845867302840235883964305277540521273167393812988100022934677168092055083144941912320739007237312877284482546871237153963250231644906462625457569684516596167675608016446612632172739019456207703876308071238147413831529075991764879134160514123156042491178355189049120325943355946952644876054825469526870726948252293391314600155028282317683940374437617347199817387824437886264346562871134046114858611047808279483262658571459926588836065047415806907906407973274192339791929851903868047740356340312475000361921223838945826424507820494124690898266907694317452838326963752216474133571006069583780825507604389939689246919519751036164259616875236363665876943116942772391358506866300266272288002220008463767941526882904248384339377519996510254997335252747818175666865670816990037845394479383939975557637333034540067517273416211073806838537087552632727180766115153925894823448203361723474514194712553977140466240297462976388626693251129878706901421698128482107964682846204082742620073354088890069669905292145255932396003822431568002580770720448588483123079157383340303679493207185608692126797996656641404702108212764793131859648676718804017524031397141874565075301354245102846499748979905637893207234728868048209158324788545793296035800044053862088161743820991358377223214289183622219961268316253525580758606150080810764111998818006030571230716121799364283975311666583972641273486811629122208054250330940876596461328552381037290168736377257373465806712064462455809859973740773103699288306661154113584375811067868404605763219706292187271175999421442106380907573962160889427024206321347904423616653270677961794951722411344589254176580037654190397311207952586251418459131063286858840728950641479859117449043020238295156312390085743220684695667111356629445478322796455303595006659197508501153355300966435358543869892029566264928337142457805122186159898835923990849420754930891594862150966631429896031232925413394087156309155106886345921256833794175699176189640874008119684631398604158698836381263149365438669400404832766203548449604388029381834398119800561873454433204462527262229805651733860855519517387525838746274505213985060750508134992392580216372088794961591063875920995124651715117022897820776226488202189945004602040198867427936091847132948125879273607557910105800537772083962601282584555969532218357858175256574245585991402533209271391876134329888462154343193547737164169262543843240216179101626914377079484288336314160383272276431105372973688494085343755050108090949870905826109426214638560959224756223198758271529982519613441066628087273161407943841788016394282029013950553173575929718373543734886734373131768738576218866856171626641573716343854120135474850819981504078743064988946015957063387122583080404459292059212706783607985333001535015441031079000497108349440301414586358614522819925922641200654417580215924370565730687845713164263703706243269598898224223409425536418144245624783036820554099871086836022287303470625939942496524092404295281976499847414999232106311797726704021057184895533544526895879003529113558931468086216227019735776514923200200319786431429788170097990700865574430309943332916886624422491285502676899583544077062437219311907901216408700332925177752930120923278406788812546558578200207036647540573325817149792943404715250474305978335672027030131201553963102272027445206049952704469208008018556742097748188174258771537829218308585196825890516042532624522547299625637220062682262943235810663095776729583737995338814083245925858429932370824304995230357744575978660754073913801236843293560996906755202558635016272290099587304018408808136641222173152525979760041359998859657328979168359711542067286228340672826858722179091700714755859360168732562662046040393789197915587526044294485792733720139537548801492592670932556083869549383580284021729880517016692598991198676779726960583746614337111039484316583795938999556750664349315404879079828208515717807041267883544961366439952043274818794861614332690584044123460061490520383354365880027089662754535961413888641034451265606144975442645609993941340866119730004249508485237726208955949045678111685102671734034333373186981377857234588787474194425111694933189568799562660487830631843233658632788335266503601548296703928147289831667445401331265848019264495449516134052016117797868091104051014804102083002923082746486252459458178172006510999191718469210971449722212765421244586917704564043436963740351265099990863961954212296327398824448658211826932000763739363799835796640632151429514112392046282412717848775485807500571835872476831225999267116803419607747314539302369872154321687842188165580762901980222139010307308209100076871685415829845920034486398981833768877773776474056812068022441729211087235693654094680902605262399957341290947630222145064531512590751392468939273133923270691639643855188004235099433287256530251428567960539784677475300327203646011899747910379294835432205278756964579828021859135907008020227233655574648111768206786938011847699235475995067040715301119444188783114295054440722007378934516570542465828741859452137780292923326078416859250996466938203624028903787228287537673180708509907033636049939097934669856508150327571627267914339310788321639295637071657115228464640364711728196333622576917561836610990694834587837179811702792758611249358069819012241093482160267317477846158141518940403659807943952994350001610243081280492341276686535304549590467851011998004576320382650393863268491227073326477251576769745002593913883356654667047745044120463818263533336462796205774806274291782151582164289544976625603622259876004450830677783487308605535335659805520726466759730337750588323558723731619212574757858998397393469475462483277259778059800037830220312204372969817485742116658882816266027025815431239284277992187461792596844583874908962268812621812451016204369031567352420017203289999390468808807596152812826274127231876919546968539647567671033701716953016852470140956080854796406465385682993624004298733228023578934179943254004039537956104369547202565993700276920452832290808265494773013147843494595806468906515330685047560198880619565753913598725652689285553043869926484919347451840101692514488959348132892892760693775022258755273464389724431452701862168742419074118802661762446217615485039832261474998702577016626596753845377692973482935649159401427989163786457458863085855867109562939691537127582807471539638028446680061573557030454101481068153242350995458946377525791713853438302882110349177802782342025616535872191268596981719887629935202696424303866095248888838463064393427307435556704086854545827448417633079016792121782633649797622197417333012374399825021056022169135694063944529230563579582162084351093959486154493401890072881688840992085881595518954669071923787748467791903123050100247445054825008779715198014563686616358165407601102050587369885496028832717964766736831839848411407792154136513215424932178351766196424998942050482003616295723836871986968501622747612605796495519789372446156428807386655008314400550939027558972000440226139381789638955269610278055966313876984305180987459797560057859559519268851520279499135788722921469985179103124842017831300448194436735086040545813884389108530499053831204244480498606699011039974355758020135569497403839785016387003573936494810631768460932214220861287700356525804062328246342066930308745799856522857549739551713334022494273957878987420208595341972160158057916701179344086203818570861868020728573916897813235908556641298496910463880546217100055386908551333242070932197336688631981399029712879128660940119887785067368726270886932780177818179700106846594516708851836213267215494929457352754536895431673642481763937595442883019800535419220982731067334546498257449749851688809259218731656948810996402093525421587946913308586192073717120119952960856525670716222104031804215821313245178283581279226200797725050047857125769013308934700791761337869750555126265545636887335643219627031949851071300358110417849854781423671649028473078672105856433243480624289001414737407346364397422938947094820375173386217542314911519155882400823119493529880533040273611506280336288572036937555637832907808677804077914390485125368868715729791207299818887850235526217704835229825917111431261593048270747042202124834565825811510641391641802440466352385896754101913383876284409802327984833342849203842658769528257781868506592110775519473771524623774110931409457848949799375770326427327939730293817528790297480599253850297013134115576823828612122522201075289124565230996523828972483926168349074531482689098838041463643442582086276401034002448901779629367495797510167641563852731427595260049586796606819967254877728955830190179880440906911069612715016563054558818792246581573959003072275878089899923811972072982084215812812157463490587822511896582047600900127876224741323859580040259189538529633060532717846667848660432043354645445682328203184962010273534643374407154123787673083089409591217215195123157308426580037448454348564734396439029027630628836561487429603010663100969890442001955835794375814989754698803477017767118465996395769708869024562022598379467250148707300630451960766589336914017506701738754656786798269436576557500424852062211968256896245286588807201746102843830578111127079438026883884382461270811900266999992179165909839517362398806721686407500878244809208085286739977305052407520461206479567906729540593843251054487390236210625036432932243429104490778661364445845971176643669813885938004899015728635805084277059470500773801606369979097321568718532298839816912047935560143136976633922361353920185984057533525455027255786458151620601940435243069193322996063981227048234665867821281188356223502675680666765214101381259261408868185363746884680771499067696108171103466506196727882650872264618765866283271088900323011934344033380536594348858315533470114507186334328921834347958762287010655404586107701344614556366913169481365299365695692914770361379403841606837277140511106374705975033175224631090237240957666310490988605835608440096982513389248523835662828057173655027976271541016956686601938963058375738958120850667735827478315011517740730465501888034745433585276051336585578159416497435108332939495169473806357649341459775949508018912151444701467418834128357876321124985499961117945689354831292030516386921747314001339685797381500754857809914529611350997396083128956024288287252915603947235643780729477589185952356223853067505262391987876574106797223134062378619662699871512939558140119779474626262515521435303533289866648695461728165350462076941633727411279506581119424129689260381403409905161462986604019976341467469471981909136844587213231225497194832766628995348042994488373993439962350160011787576155070683485784654754875719866998173963492082859098159706027141423098979399631425956686279482685881286302925863275410555500346910179667771889325801182393834514625450414708938555101667497933303185263898890954512593436847760838480243756809754400506975763506718688475456061046941555508737105097068760502661357383843664680485950512303788809548788649387487809950530693965591099643558177645542629573477089779495832789984734769783214713612699951267939179568225318468197724186203146803150705854016643622981945883522466718891642795889061728468623096083916249572846190843026930592772560584056942718999058073310953682202323902850753902692150369155314646038943184877352540742362086515002561620542524096206595829178636652599679608505815822805640220864496920395167646453318224984097791840135370009314207145671692934097460893775948766009907144196265660632324059650084409267830264676245769948087291523384806029133127146063004149089533418325147701764223739037430560734891999614499222867149201883786080140746789185356301637057876648693451349368307116077223216811509040416233679257184659103391125191551654287267333956571629638780332663311971536163344240517277292653780128391508109902092712107250740160286312922981952729566345551691433880066927298622709312553422093885541471820656000824156970625139794491141316332074054204556383086984070257847332644571749670923293337956679496669491560454342875547707414667678513492244243610080444885228958259942199378616344305952563082331066804655089308235837579015502238511337816040175839533408766014879783396221354826513450848343525579995806339545746721451533785384241962691499549883389630454863345789841463222442809382089304251231138777690782230384293290132343395545371334023874170357510282173123355285026586294425505462584465121999967097680644938716574124418549549508758639673085948373413316457862575314327142342155211460739821038515917433838840193369396845771357923198702239319768864242860519799222596850859868227130338808642919105961728955292208703719114086814654169912217821108469268734966262328112836442166355789934394105122785717935235857542779525794926881567526547210320513849700252189908472506032550511509054212339878599541857468329232230337834037568617976166091131592344292374271320327471558987088572415832766123458428652733362987328109577415247302835865581286929431330120558920690130038334103275530991826534593720484670481175296723349599970081050881056499013253471354872744447519951178991570314786932497639676473485249967709363850774002970100120955076774978767630155266389730543592853011088267819121421381821001333047935472733260899709131326572216335711991973902054482369573869281594630109682759754796881650910287560850122844360792202815040823227413651502806514126810947206273748465932759102945937358740782339828336987706138515265736568518995856914674116254175114303274586594881007557639442438372153398181788247954895764732151423987263065850019048665745640284523898018723929566956639625455963479035460407556432482700565358170698808205492756834517441303890826567871537772944504297399830606068134539217797036896808344308130701506529721060874915006578703325966164296004394233070385481358475595141339217897753067953903705082133086379818317884348187401079916288878542895330548973367388492273301907436821337765497240853792334289906367546209636819453251453478254405073171561997833422451584233384507861082314301729240028832619945060398730850231894038004192906492847413465649426060637448805544462813454239961583252179451144085719287923190640632091356657470709669175356495769413448812996555798963334438500974152663822503827204900997429673621965035500948487806092055422623745829156905800489432683797883307758904145116521135325958694647430697674192476540135925004931889471506945225819577859820481577782450634408015587516789711097182195748180766152709554438969710242611866913567814311845728270494749860886133804974114732153046262986651128717544872088666370355507104502463219211832966588179143200131340512313576931195970966918993826066998720557368585504613754727292924765248781082425706265496783868085184106927972896601522351306433835980268503733654152058595793676852632687909651801197894880157493606807465088197401968953069425425468780438013712217853781978344100448016186119021932093648354131468302124725874842651716524876083551049419715491715310442399521475088695240631000160445006211218884109356896628655352228905019186934593697622995876172856245660556618731565613643500688255119874719144231931582131226934499344974737626394330441716876563807193775705600763455029555124725283956423060378179722413372613146579791469491063285836191336912441184278821917673294882580589874198407605633062723360201404867201655673091084916879566543508671812444377418508959223013145550979686068004638764794727144779671529566216168345295272087415038955501421405819154118548991396500080743882728306385459998320229847938107833618294139157249700221094573726155363374347684389348471340880424040314036367681812030680482439773986170861312725298015608830171543845024526897619010419096206053752934156890941352670496446105139330388127227983236662054335972408998175283493696904449967050348311735748396300672346963797727400503508843380141657116751485569350264533746659314088965864706376148123426674953241388512567858300249835868774525495009793211169787339373484421331776376138232435094337464449027525805674056520640095627778901778251262318142235173396386609942498054052868649367140622354082408281550646199832010018520820326090530969160787482393995842805577971126321566524853879886454578972329934088133008490471404154716702056541428378035330605664539872436739024428202905870497282858126146123883037700224625792061287459529576358422071651445956457020762480839198987630288948844683335065497963302606741325369359036168269099901167519635025520696394191324642266415638829179352286585675013035503966551065617728417914571578825726773114317389638600488891759918960461513663580336978355998870338013939024267104888984335584247629640752554085871691861053974165767646146849461115919394980837994192975492163754738683203517442320683849583726895364263634409161653239016193384102963629505012623071357813542140597211317845396111941383380654800830008457769191482659673642909132456918340029698952645997738780585500102199881650904030716186618282037873330935772139844013122288989622393547953791949664726904516222275796528487492173171272196603630295401416000997644597792002128468436116572180954713814312557500895442207120850037827677399784461630258734860834071290032705749797678462875162678214246890802509520032400430974972905108922710430913706993669062458904909870146783237019166607156461810001139467449947106441665478068373514328383615013614278944926267823451144620947133057443891619382106543153465845430249662856632131731177412316326030541683839243685973055358434247330014728899603410967190724362585984712119997894680756172239070026132751084314261801361652125920252902292531614968202996182878708169390922097183147342509110977100811084799600005292144096268648767343986771443222852544587912124116784082611329778545983958047935802834350009153839382677891632270341305833420077346269460751609657031458383792119432617272319738409581234690751912599191738728723889723386106294138082283831760861489547837160628839545841148963284715827887445824754471913840102091551748476481228307172787637073322724877850762011185325376166929895178689597516546976561373260915929173368224780352718968316035722200755715604031971228353381326856786889650146917525500139550377206046434649918275157673807358431380822144949721874093580383339596601731620044478631467854100922552183320285175546249700117930661500544051259858069291190400085682529891605190441065934765690571242805104956532734115799642321181849286645877285508398808579231059591800734184005696860167137814130403305920305995788879503092792422804698647586523931733446128978167306068646971734583389236394260259980581325808816711734493563305555473428746331977076407413438361491746597450243132452364705146711008428244498825527764073501891057041449169434706490523825453671290258671744125016048076566263017107435232103339260292710501668905905244386600982667161372713313566061441961117045592558739744776840989456693779233769485899675933639890928956104073512515769502025161745824176729257587270460128152935395982869432216900594873298094491376752203414020498505792655530884456223752755439850642662795988802556434438627256028388315140662481324127076189259174604839154213279724528056821620923759030694317938414755699603562446549090455984889970071697871257801377121937177934550978648639074136077925894774277570320028877515346230052078316873110553674367369544250522890521373821105117846911562677085410114908403096602003732578040050975880160111916000177257790639840233342853230544764207919537261519697149101305173518942706618220892084904450906583901715115092215201545658236652134651291376954375232344480896038964016021139952728217447504619254098982353859642516685915341728238929893280969290376827862466768344149788478603976593366307850578313741823035842394574628022364050918050916845733851387868039550643811301914433780146004428645540466113953757248416268265619882468878327591407065712167842585943860847650915591253744932814902309112800808073815078769949955814494637400481455608890752983902175066858228733848218620816118964871357650366655455743052654164252447437194291092171069415679737106654921829325306306565942672356019789221662264672328294174586281522205888751474553366588219919473616149540519159331958067806329696857617122652375886980433296966392287409965201249002790741992293229938456015020923649274243531216375567485671365865942377120017613536441563836861611096306394183627263946135873825414585332935506186630525634527341225144437487013339460798962518917137385801266345389461911937755019533968643939702203589596443855666741671613159285529708845266430750302922040456601776825135769062404377955834907055087525626815268437292793379188613576495737137925387825461030745625513769680162958610248877908222687256464777173296956636365579234198165078264029797175362406929372151670820554789573890969080139504702322765724143901614728103122028242376650604152435309567550053706966756282442199982024084539266876927991152337984569695323513673893352260016273330918972503498118512724916058139650215830085062370204268698049721842756836208359077196475394383164247779917213273452902355076565340310270532798827185759405060163268691714062041934268618147667704980014428106749778066974462664625139554889669092141053058544601342553630741879860033492067940162294026470881177330487826568945912181581213061126174776594668859499519693346566410235187543789890548603431383839077458322029992449298399346702543315953397351277618775925322197040324704470653075214173552127719541696861230898955931109714680884754590302930380018314622454372869677322255149155058071855957607103614849659203690931669666872264396181118978495750545086979044805453953772575575041751077597667065935377827174866468537114715440997774179927859024996640892079554878094538499220763739239903314940217399788022353174699435099633422398835190131543338584626058171043102276085095649344735067255540558242177220627885586037321529498082814905061697446413653590304204084846600123114070744007862507201893000041616277587609090638908269065365505416941919669348135653823014461582256586415460451992084717735296256619475225914862692650534756673723081771405084067762871734909052451371908461417192222472594485299754935406571612235772805930413165276210397055349024048915410116810673549061618536196389637084382737811547370925394305599948991689377704398549255130673606739688685859477183116702258872653923940698316778711850264394035383922252678097340704156205363495999533033323089019670311624072531939009860277017719384037890300226744126962856268198940721658800434618238197342802142141657615538423116846615613596824438536311773207552378634022885143220044994259461948647178618735451184697002540069007148686371066280320770780554590481477475996005401831020716757559062252451716713109193762476188249860186065489515874632480565310359630807178637212203155401571207858048321456550423769859123681735727582075792858038070123704781089688401339325360681114014092546947116450855307702410214318723507717109188904217690488211235283322692198612378051536009287080973283349800134213385789500277440980729054621502639414344430637109521400466683805506869212008921468139779781200397772343781814522468431484227246804360889405794676956075870404710059689894173351193449469162852610673539315228782681917490159264339268542665090002909977962153952147028322246379420694411100913157225490193892864677522823953437644448032884368910185751405440121065252559861512682635549518239120364942445993637318108570377857559085042891768831741621598919165368641407703337829470892833170588807346611825968893650814048938963633915374857430144912846770599128361094757006325562891052852757238172226773755618363962860876943181193075952507050925025184337771716006724773699548251360793100632750954810129619249898692555935841948057273081908098484304652142046573279392888425734887045373004211028478450548141329442110592544865800042273478754331699074537794449089008925184854076790279509666256856059765983899670984778453489644057571451261278096411301371278358650584184970525943100841313803252490665777887822113263433639484366781353122286102490974761220406389947206119861540098713546970224811105423744334129290075456108657420235243272759526130360711636339417648752252542410382111001064412033516112322732221876684576024084269690349886389021522122533880867143509940396354614017304338496751343672567478066381754277706004496396189637306281820612751014706442593684094991019310312755982824687634005019731572569197325915449965888303347689261795732599668832045012007664125774608955094972638006131604411997705474856282658931478684753385651650171875197728999485014484190067739727326396561573932798477423034465844287084786516800286027382169590608054632698874019091610887161724371149362031060788615653363470588069516104489513586986206144097967362742724304633648819739300369895775945338286956256018480069025000049986386152241866415044972891253994842351742153295527428792336572258262322881292850513272489284990834922763807574848848528164552644642513905468909305724565782936820965235457243322613044037174627562478655579794694111311016043052729039077129895730285350471524050271552788236019905824483647236385131334126221085159191139017161476961737065019237659314783631994756671919711511457128764588390537359894144321146270742397844957209329711413303870000222461776097646312352364538973886525551629196577532001716088463467421949724654441747277965567156254038166723819086366920615745950387834343823039296308935096404478099008187226153477369161651975089673132982220823704646691522500776508399873832872998022053250240354604789927634361664302087740228972926411637676525501916317270833158291219819555822543282739185973674569354989776425649984015117704411703455081299840469711719782211473448621076043484300479203249330337414712361455128774143171742534386815103121382407203801776403238206391843119378151002620073035835227721121130326364937329204221979096279548349258974873898312326975629770894106722562235532076797813352089829598562647292000193702096756275133210638217900389616176756040877087221879358528817418300166319317071831501827419869481508026058337187925991032200864160103399429940708825252832419882235679511538373077519323008976387259650504216225274560924490576603146303950786190518835757636426506054426926592265921341470617305850876505100571777830190806703514868867997580851072523990405924897267096154078568698512709186503920339572799174718870882012437077235162482374028075551194546470379858817449848035524855675054151922296124642794500542862795950020811922505133010459820183024768833080487856686667495097961695564770192282053414368581159653548421188508075320754534991145862608665168713417014232706358566403421606106359503564190517557601880784043020343451585908414789878336585820100448354796543140301691066967380770827974170915558914344697686491767825882460449045751035471455569295132074976081452987707225901563882609429971878803138556265728467772804411431360528893776569967465741881641322471074968507475021590899173677902143074256008358045691189585869449416141488289605859492562653926903397197747346729071648037433576226002362203918953898336101974919985173195927544114326126471668589813819201461271009634305471252646917813391102852878691024348624818050453977161874412250516188816528744661302497222848233843390255165419939059087640133968222179609549108079355435109520735989247894593200653694937379155209777338155728414900075499098429222373711333565142310789042474271360285728389324154285016455545391126690954312835164329480337306072432515827435634548052889965084360184168046989885159905073340730493966773139507392856915938900763881573747228380398701995525729115165540462190184111179505762692647650208686225994563957775477347245179297726663039517854096802442875374376212397194968959895531958945185725156829737918175451806344738395228763784785427720541975451738877513090400705253061254141689362498645842468909313372728146932470475199047482077661148942672871046881798172135659104023526184182392358932998732376412780978167726889052235594326261346890505122133573036453329270725593678480553434026327875409893450982559507955867214814917823644628653865774530299668324068400735013339831453227049180971943082149195227871240145185980253256551871080016887830441771601414214303303398941272521760732052349259261750480963854021213710870329689491954615658820719690764030443084796226657256956570382178790772571715308516802129098004356109574037136076785137097468000785815187307806277221900062013488535248516527771251404710634736639793273117253623747716835867446701318078606004283028353671955040280640817025092042058092913805763398333375370673170185935501955523227099967152400722912445611806552265527397618093106296650051027281806605859406947573547877774338611788575055573015289432023700574214486579490468547951554917923899168051117092529301648566248925701772076807954661536139453246626556308913839451648695009090986188112324288738603929901819912689548373227998368087040783506086686171516350957437802011540943329071023489133266062500913919817923825778089400164485647617453691395780965327585862660957661210804428844827411206493472531538531069922962362893740755231860709132149086403816711554349503433510240266884379714437469043782648970145271068733298576028894248613144195479955594836684355054227954184984680808363036146373624178505521217915464308958808625308115821631435379318816987505855627578998907896912928963766317678514311733421776909620443875379131039634417038564521989584766726472374814818971299744772636754972680985281642658432277825526772475105292785509119595618036376160111994495474810666902776788685934154442091672359306231928977569819338054512707450638713863872688437207553853309731344566833236287965897091380300296457553995331081427795542523620489130976832144286406614156026051975614151280093980526605746176926324305776879418306078196617925520217772994463999390852051930145912735236818359407428511256849748316049710433195636486437821111589744915782029107919970700412740842530951827089309421183681673963385010962988032122332976254243269521511926519276408079441824857280180018136866705956745770229648071805183150330405011521924940917215699560748477904256516530453130046303168330643752691389303772163293014914388298336064827970491559811707344508355215896979681916465940906251258018660623951846023490124001896558492250209040329909811438251352612889412273684022974605693300105087276402331171285401473540046247005349045178472042171640317113499086909880701372249503499749422409777481318269481954183508081592607472801064820710361914537280299906787192540096796239963924121273195393077879993633344894428122661049636727201366912966894718603613525261691282840101152483677459917232527257320734959254390537176308037550033315094019218978602768129516817342694177569834025326439223594913571418683024258685729429097862190362184169602303680511451526809415956502743598746741514152104750187155189053998606272618871389225308156509471772106388128778891870300155564384247077590516240224938630887693598244322098251966198536632679663673234688424025821382820220219253847252361826225079169260334981460735708733305935471485816451207283107867657733391732062299481557905385983046742739003613229717427055744122318791813623149568458608267126076663010931002955487433292864565606881450708692636401926103377241677376779817012765640077359169608608721010493710038842537358210088385506938830523985758796311700792156931520797552061697651589091224576769811855767478917856822925711204143617681137107609692610223293009022810817598969824717565793237221245841784847172682351015096541568348390756665178440037600833530037016584926092990085570452958665730525224073577339744910726497247532837957482062374410864575907084407525957798317755598755907059351327064283534538677810471322296626598311178888874868250108987215585786757661693003252759353070676480740616326297951438145225493751768917751016250018641739046304672332480280549957226176574560584299661147676448065335432154772365518008839796032085928969647188737516065926453127983986833429749526095499819216788151813081511934827196437510531115565636317749194902264231632066851824831458216962764897880797178325093468163616001320334628898926576631502368900967035732697031618315712232890828195659785272611648170854400356643234391483994122569600790577442426397911350958977834136624716458167629298179451844633634687417364952639142700156178212442949308007273303220993305691733045845932582832818467831093953270706405197580534979417191296832358279032401679186234196526512343100970503658180653199948115695392422952059238472943721592303008281375441733145512525096920207240905189374686764389921324046668585623379217026870902242625976318344975218646795417055157493144116656311967287482161387411163507195801203323063088227038798772679949613286484902982611516173538825615895555015911671140578856894221356842927006104540999438591862149368368036774645827155088447476887708343555928846758697356156561212935407999628191418553331421765194190265515438248018486981966478575113155196036006198385023296863502653742824593132300854160492113826280335011350595471086612043063520824417921401218436574896594206691896258271870278164675824948496169645872043685922256294550203051946816846329997550086106413508212296929066401971842804779687705034512679489169439790920936503708539676084220836925538644322493418206647102553330283917460095609786884021579619253948126209010717253805583633634832250324782119732404706505863110564701531508131055172928065550982561389421733895092095330113218450986415344025039096186942992257075786511118297625353214899547664383070817491060294144594529737713148736460711200918685252094935217758647717282978442087718650209136060962330827099529728308231734137724501355214621811932182982387993086221148471338500404573843132478136219586783330892374318083891128506581364382698816409963452652818589865698313153711421839562398753011050277906974259388281474940526644955560354980018806582554045985070136162690973414927703657900894376408160940511923718846656643826192092662876080262220811342529178223566335753858507555815155286093338709738922714517192613135402132112593394754619770060976092202886995891798959725054172500317737726738510758384079491976289441972075490747486754155312171396527077726421578158977875026371272699328831322760124832458403432518864784890361979351583700868481858863042459111418340642731388223619474604941816959044626968139029927893284676136749308124263291525277665177162243375189887448265225594443282129241896650467497902075297581833905060536327598341639483520130763412139872432659877880473146478534562548534696862729728239547913511753101864610171192678472691365899657988674479428237610334575545008365344274020508779385099489030213482121894015318250322348698837572525497684105431853164960131019027678746464765277621475146731632584119729560801502614211679866661239802867116848787237555354652588516483683308237230069907087010944306138418075888213988630230565327326048265885058212129828971740454444049116510503354319907916583827412175763595087542820616662340681872649441204202595821097226498751308629485038515317953640717273739239021066964550332963339869648932022147114052419597106988476308138806533360756817259870703392512941183462454513625140564229847549054586890890734963169702858563954066021628473874260008582343043225686789794658131172549012412693523282170247885041824337383755896753207976258389506557290979090749390670556013029258225910955882277006528236128531638720311747384189790998604391677381528225522014876322133479681872302836892391450812020471554539436533187908523048068320486060407226481768169643447632310925890227258839547031227834355682264347711112014787818118947483695583822812776832384015415620956067577189596150238121983863160266481617983388644766575279387167677523434357586147748984150104490660806181025058990674737190045400814502563602811876900211935031769682532079977766065048506619154074576418013213234047293934832965339190750131760300122496407940742482134127103958799856634141830667849227306454004804323129835118557538263474569721917609328523436839398151331054342405405760742693298613051398992560559031637184876604837856821404424581008872603550251803387339602991450081298336738779211028454184407619687353727342254422250974985403002927470932394827909726533342452870757053247024371791936941882951918018777535795094675696460614538590325413992736467299310191703365153656024112439057700189800872100920003044272693436469315364248705171512693979548079853384508392742568285742992617280295038828659996197649675353870263582547190969486881617881868702577924416781724780703033673965565323778248314560100669925114287086160015013807878144230397587927341396465369079015938245322033433962366231108165024128422026201784092644567752535037022688822057151882806155393451272693005413464696028224056780552580954184718304012918803328266880953266631612734070563327090020526638205416178042521389626844793367552498023216671509622134581759153465053916780165084725233420860154521961808395952566803014982381025503895415336970000964478120116542241086632476946382165747167290198228157428243626211461353482060380471870683679256209438744673426464347213240780630615514305154191179629128686906310856282912303306258114165467471015314663430877875266032831047781271358794619545905197917209730467322750154910622911213696698853904622296514375197495305133809648248358931248890422820544961035197823785059919155365393857642784585873503692087766640393207482196285846481340280293853541761667448857954586224115028946975724211839621104579737286752328059062018183553222581101843657887972925438217063970071923124376486385864633955775615606682881942059431355394721184292374631851126303392417647174765278661805414042661079347936822054156161413106483378104699385315639644518352381649376672771519436136862558097833021345414949905645182991133367003551340562708176529982759003660643461051431024372330122712117174392622052382607970983747324763612568850331450397143049295538893339675569284511340786969855538808130398726950092333329854583470015249142014320300994701227577757341717269867939719611168332617230379249321410894005538040198685405838775087289952991731218110287148523046306277759642900418443181153362448213066765441848603808769431492844049324429928212870578515159546839799823256479127973472139456216115961147945345780867924945679794371949223002398728908097055485330335323681673282077632292159133581070227024501633753191050933979876706908946885742062642869586367097391559304775572268010005564804241025059115246281475751798129878363507705721352432313121749305336983089907361117270277820899174654572981262858927174071956218376375385031596194457865541438809129613096525593884415217902864367258719301450250775747968748104253755600807002649794562680183339046381129470479292443479970987113514761282032347159008430876291314644954568794479684412816552189918458271396487714869764618392176313056496598953478852654963445159800797086821937155575554404964718290588964159928810543725569859759612177221929942192696760034518456555798489080041700773877402179130765722516994401927201322448045890245523337060152412349430202078362282935970398975899011976034499040927365324410102277305599807397496867470893750797961406783510724295526484110942774923671858526090846321720202012568248352434538606733571920153830358386808944863760253238350111144705085343367083837551143736889676661988735191730017237032458483780626004338686856686960449175784722870525773620598972639682368367633953548997906543391873691801955961319166714585777181151727326993559152882497530556911026145335967546201661769606975695014955642534406105090920532856074407529050898097998566523547738297773401871943958709321062025644894408197064388554882729148314005594530854035229047132362062781840687228013911527340890116261161170546014938176356608970602801603927162365451102885780782258876181447875253672219779202197979098921043151102639018021638462672353596521167518519601737348955336154006485060348714245987910236236785833478098698369714306329743935158960496468424315031623686299309644271844411811186972570842778806368592510329933613632202773674936803410179344613425884171146925129345740358660676189104611393985807113821044344194032444351349019379805939397541035532862783084340969678668131011124044254871125860328661256240766727678236497292615551134498233462249603187367489125135323819094829048745141109068470504703779770283052935709798745125164509069006888244181076584934206076521471151820917282918375503576143431161299726373296786798649796352859196974709792667012034960105283087917006111948444783034378082124781057728403368477367045887012413586952432640116377502177146163317380448169000233377926533621848896017270040405206190286723467116907760227060739776603940011019985672381798651899311280702773815476653514920930332353457998275092396989656656532421089727104129117684947293965088576378428363597446138528402690184403992949952265020689592149202090813854714631024237439813190636397315507414670253314120067838173703069226035680320597744085017289519016965405596769868206336923802490411008256263262790571507066101202084825266499877296663533746009810388314705011350060277626077841796901425655431339689731333179088542953500027176172904092258469258137173904331528961316485292979876003077913087272608662860108136516394836735140279896420171148796211362485193146692090590730680015515463609182729426115061051509244142688809695158851314148315260605010244208841984124156450964767219214970406468822351001168575734813284374662791113695211876268895569463393726486640900692751498903061063887887479705386734283386292071710515839794480086749930996381964339179694084799050881700618944085822512519216208611443951700360497941546835907576079492512271438527133999442666401247888786101860730800076434056420483870055392880644927442028215123705568671112108648724093224515452216160827483989050416097849187012193911210348149886428436039281614330214085206625851880071795013785799152650597016193390917571789084629289620800006635245814078566039837442829401655973519085285490884269757631901113139197613584212651643045107371772669910404956994609535751980774556126502456594700643471824537892959556494692478840129824283890095554484218543256544978929580939575328620648550783007693320302621227919658203645463666654200537421596495211935793631945967578254076635811501489050098106878335626366803169125392139377162964194102448706761752812212463804876779861313045411092432939637095787070740741400957313621367220253683419312885384785258145904152773682858076761781296351997483143528537457786566224234389290637010538014632599180789974803111257403973862415270714669429909608939066839548779375290869330818360718100450275262048212135664251737955955453915864191468363041710823685804052548882485860069342345334925234154069266438892685513648218249301813243475482018358460466522856879079541243949661701791131063298425884511943858065775396466312924200944288828370152086645662242204227937376465084471262017525123815561013637015830998848213849890568151938117833241834189890594526321505690573637393659724246533334838261375719067589483527609032696991885100755593199013399052795323433524865267736861104760447213130225385410809908781992803303686535215211043638124013798546144918507718571028146574972430578557414157821422612919325686659484908739799641648039939370274872958272346530769307658332737338721253713463227878220530607854463825550168959288212962034802417331558812051992404946533393579812050079756642295922789049484732308633677828653367894793604617397171651235430958351072627198151602071538235689568668574927900107366629898472881394645984299924414364724676846555309554605244386758422923263692603279502669804417069681904999177818461040571315925791637027842607815103869124802093455230676255450529115992733503055996502240858328994281523543561526555872813694631140999866992258860502502555009899880681070420770511668482883408483594425237579734276321430265791384283185521943969096176731676899767927616261490082552516006829635757313283246807486867203648288865270893188379392992546035448547161131902821479394284804577936966525482594181593320097315998417775656510129801838683974135720372472058250848378042475567955846373511050723604274114626089835186900588839902549227642279160685329425459665408272874151829988848704424838174336068098689183489610234771857144568399760439581712743778025105862261097641496607099250916436151866856048312577122933411776135588237918204151602891245767825792676876676423589153246342622346265203890663723132603758391143809068042479057756052386682369272577281144713087826045804680800099087590348683654858060104243184253911787096641726423469093868514364985090528265816048499567031374430519310596674571533173741164078151175892846981859596990543047258261832547840484013765767763445599890679050450034059394727901901265665887796259536819265862762381617027926115441701969245184506308036369742837519482184903025958920006872584470179666122219953049504651436292427418052182406800295175591962286113291656485983217011676064088268019501868057880794167022015449805242836816914917263175822539867560082091449844544832035679023499183388925060981468783041591927558406706129870321295075445113805310086786276724263007240307201166540834726526208482877739313518015245372257624167827399185054371701607712686966886396572850481647473199042882400301871013333204457718451910162750255871461735414693187633229683747716694669255877570063047905341957782997893347072164810607799241155592988015692099284527769037631589534748489219125121236060864494296462954448791249480919364120462918997643907010978917338659784256238899671691214695043768323384561027949825572837606330375921230332570032863955803827220235341463754148555824917679305206187629287992494621481143425915117554243682074091518879880105003452413972380592285466791064936928294446235137364683348050386946306307340890119729032651674585744334824209301105990266628650290778896280177000515110206685050473628165250531060384454083063739599780289565660241832138565635961228346813399966713027903294260556031716992143327976891444866845210889453320471041758843863575568042989330644935119163745798165068389696116048886722042895604715529613262697480924418745356053299029932889637939663759826689728020392787194549694546942053364835774705506477157530480239496409509148109609686566522528751516286584312894877613660198234706841067719843680290533156238876537184880257405933780458077906093301424096410761480475424511981468847426535940779823509723343849452170204597350510470564295599824820382952341421101553514043402731886588320858465586892935370757278252262429685799286490469682964811665117662466419076143167133252188619948498756702057786192682544355907946343546006596304572602609422596149831755183812070012670833119088195027290128599578930094360904769612869342673758366100837319708305409268992504207590181191704737224408145145277301779553457813593706054973393708742849441852026693860537772110912271379376153442736961964139646727740223128038568966542667314149329510726349225358265483986675467010373557238853215769718640118293037323085599638216873599365634697957596696568311408460840668214700476316016813679428417158572063585306463283891269167865078100133733397130722121492278486509983064358935331865364876163738486272566420761586032014596052681588632409770390470249042709823675032167231037705526018213170597104754024830287755330330501391471487378147628519833839157361878242080798657700391229916293137904040632378052594847440302847602622789699217149744231622036517035471726799850803570374452900986841271964076047877551122311426417674240730748618079050430962492460645334215091130966647816855140139559364713641805699903901431464499413098317122551526104766746568016075561476601487563776256480496896351114344107003725799213875122191468983112783871869507964928240580258432062474650206236126210632034929964910347414850369324920892220244325213523271161008815964360682491807963405332294995960697351182303767934724778731756382922193342510299982449016370752204575768086366545485203408922321524128615803337906982125118775443995665395683954827295402492821017971894359921725573456366632657444948625439258986584796984065940624222543092447502053147837460809261754244896437036424217230287235317232302790372289610803433872827697725042081748151839324840711638857293339382025331144406684985590987907997007184037906764793154067490072440079580629700042480567024513107702261116521524537512071837152753207917165280803853898744479975288474594696068802237686992191122130222393468130209667058475537334366766161719631071904393626318910518901063049688247672118057920273487460415333711342529050317927673157723362591060426619013936850792340531915920547616644511328020480420728939613159628553969277104796808312694959616397725794625256366604326766532525814311589340051616307279318344302906390498379303874693640132776446582190025835114053849499820653539443219268231131972285083480613837968227418223411840579840328260130984648170595865753228427185006157286835555987523751681376799945618578386380560377139539922441784118740172624023190324845086620995200270794150359712487380138475556275804994981252782649507862854469802354096264630301865882729331939898864391768418309782229536301241012359179776098160594720498508744088862075158577516424564231600938998247338707323134539424863102243098365409785504897609894576982459439819219937566286289665955762689272931126438751719768418891181788306915898639740179039092845579804393025206865097499739771574131052112713923194036396006716166865887565993963916570061488761440992718215998947825843160743132602237595273483137045206285155678496551922589884771591783899069267529836815017059042814925359887246482839775082914085889180510122704339983157820979449614051916414142962965042011789111503772578395365338759709579013686900928090173203597820375876817040206404519593035201428644117265037251962405380327628147745549245367867077969081102622814517143504109794253513648484815435137697002411498478884570926368972837843480216561215730119187172720519348338140622991792671322184962571981697583139501846381119928410686859915082307483580033780475282840310096758642068542015659242523094250516453777000560800996074276819110618627624008740665310558406901483499178583585802926705236145999903643175569330642717445419688362524842800493745913943294262668642081839917636671652803112562588859520772253161739696232406829015041911142941693250536702335769832113038381271920029546191262132293803352711096197351426697134337354189499055297799361863568552721806055791381640909765779909434757392773510191831877521116654649610171131513975903847727393656746786805517367087429356054147895081385917837646199152283431895741276862849237044806146088931075868752813293373684926371376327880818416169385891727409987855367609831407517137993960695044574085439990331324975420885646099419493382162939565487857834487520609115740692384767934561084515424661927211950633216947506906184972069020273998050065988045378467125339686557811503454931336216448547210236732117790522291079601366462212093571260899559921770672429557099599025612538729081539780708757351052876201899410426685419966415521165577622926748191088738866974705766924810644797074809405085071221004678497950948272624197529020554618784700682395371587103710974888457308803495898896611699803012378779561341241387112089735718993286130558102206165847690790534108094594273475243251951748223915840876945384422378992448755639284106515716258573741706172884124079918623748670373341081253756195252255292470850457955940059062288791275777885848840207124802200030972112264041401739612459666341117591097034607850812036049590309569821723521927706190236405596436566579036157667529850273059325342484390075406766967683657604156266150800135093955873597321362147348264530789039354790150964787660314995362208124765310617434834268359984102245009183604841612900095445821076067007429393606014388330019077498124243723472765378535871969837573375555352914080661908879529105635113356947684265007372254969282068437787134683643102928847804737886936240154100938837424043368722190543723464816234640393119806193031523208062922749782280819455923767361680106178165406016519387606353510643202081312313511399546115940802699857121473293869849581366760896332206015113522259448873825324868304912452992074364365174974488194705298451632071350001255354368337811128975450901940740378753046671077271619296936207525649215974941320474219222492118416198162918430400819360226375335808415583950356982801698631215021605198965837286139089414736523341670031898971424791265220755595127305623813574761250214989569187799659079558270137456088055521658792313711018367480372653534739719892907884042184237298035693680233857807338528544534557793625792699002439125153646548234676589547142444329837351225663378218438228884157460831378861144818626771885435532240945601207418802240082136301187748778932129742613353766154266848359402953064572580816465698806133675738245505915881349388617932398853463665213802634154699236857371805580593867659241135968046776314716219504618824276084806316931378364327578918646546947246036325768635556413084776432580414225815383952791958846387427656733314617855465024842528283996893900694634610406210150045454019832753802486483578681160936955919061225404676873666078933687907747980648272234240480052326359645994483514662796025797049245443989262621406488958594580096076149880985908876981571995731558079871010307680998614249181139199258629067793022391418680786689593711088123776534627932156729751366046290206551448492076439500495763802346784047804514398664004698373757148749490082398490605778785875415913752870764674864986938008738503725091320485369820932260449570845018416019026400798955635077685086725679216160854246291399368126839729878753878191698608364642760192964081886242465778465821400690682847180412536621262541733863279894738357534873812539448884357921549678878670428165045652319019504852636766197505693126435881569968919518238178029149367733864830240265790864448210897513095255147974830552515118451843999314823585634227309151793626386363038612893064409366492766848142384056893420782204064337458629924277828889108200336782503089594405426779311687466103478490488779674975383179626672054331134027464289183012154998156091417512412474326608908339789636527945504740314106599405268374272214655509322999940993644240332340588316439507959235354375256464881033562716433405712317127497954493907791226465001120569034408238929998279850683188232273502480190457023689684864946142532573159459557204541533980919018698830256987313766786931292154746908098200222487653766076679658616452066195981831171403344310949762414062415759759393390555967123931640346401132907853430626242853870625914416691440155991221936508373755793906942512399438209908988878058533249557731321588083028489191535967298511971235763844366148365447386909389099973071784038283345191817132161421915999106326056918704397214375031920944400964626755963023693604396702393614401567211548620103488621911565555931924801786523109814013607820028582871696945644851514527998714199069046524812429201456391347347245115190720702986413633820882963917598564863533765935083324136386487725685258349236529657958295231436023044478479314136456593895595646222068050443057406159186114525697369163484969354732391066740481959244670998841372662781906028004267907772114686104875357614452049912897317978671387613234085893079123793039500538929366848538766631857125593614505276663833421095669740639854190928677104587653399454982136290978317532932217846018559438922578609279817950590644772244842328716625228173501967993529188936385341516635107261779992681076314882402431923496790811919230224160819425816560525063345815072280055944941147787374483776117352657087721279180069998626275343358130128789779539362344448489694464436422337975335896628493185470737953907093206030565575528003106821429626272242348767743593700345178894629739615574810476582315248489158408257117280735544096723991365928426177578999388562906510432758847421383631685437657330071509440078353501554182900240306889136187864617133011300225862263169733451148866936997034992062556017600748073777255608851886759100284672988782341316463066786135152029129813926359206049476302799341855823652768728219592381408587370243196365222386147090495312574198744458352261167555246590469761074822683637010347587108346749643696169420977937044389203163051067744735873733232294560899663104436329219727330176046744986457424514885959751108923587257587748175060619457389641719113766276314948950474770805829166195761940416578659489350330746108646302687021868895859200961794596262095924204069621506067731473700059005582285850717484047824137507581956460168108428707151435104188413705090033042290057763845527382487172283476355096688856755233125901197842964347920972649817223905921313689882381736459039808156162005190510370172818876368287718826759704416904475725234794593378714791863184563377103260035483062850763792899396400365551138026594514961511180847635188363759847468225224777811036677848555128041017838613329235943633650897636582709959160785600408679335517824754473972644367626306577101033723400089135851206577641228397235442581120306966810919998441358078875498814148992319727797091562480962880536250774227451014710684934449904159313465382285892678099391243396753205516027836765908041753769369558065595323554986102823563465576711176510686811585294426747531454799740795064057171565413807143617504614498948260279459907044579724971801888172241724835128450143722658293928692945104049112254308670558940909920086206348869976752191552780734530391928065751990613463420594649107641072721852850455466564558078387479411696379421474714651240161212647272552062257195583108785710948063173193300787616010935046925564370156044000888364221419958996563270429019892259714446431340499222913190023833697018268180914233824582385242998127454363587146385346200462725479489536877602802490213462645169551667950990067298174954445277748245018451641968677303023592433066030762193112971142564379421360946921107114620744538214636660345134864798115365428694430670372293419409844271652193202720634404709280558055568057861947088300649067172563722054930569173072756427723421330246728629972297231113650172981017992808948816342920151931229649816861607624345669486698970671865204253985844803174470421160719533237440285646806880234616174984042951923385902026650975540973716724172123902833832724178311579555948185568860500253711827941383414815893012298602104555390851065294838759632245877218178978571378185029734796262067787651373535169287732999746078054170855439237586807775952739059179482033482443946405472651119835646422147931010388384538185416803782347886183057004005406748083103985009307067305342107663860181380320805284831995596275041822701765661952468002179698217625322588158550262213730109007659443663541557473966757603163638742794739341409768767725918723240072785226289824693091532805000320183731539746394224651784912173270129184680614098622183677622539969490861172653911078704201589734854722976038547694939286320797376097578825415147155173972628020407682670659086461749073929639772684418643986975964639908989268381952754448658506590929285896189249851865715905508461247539517018188102194572296770952163314199540340680187227646534016493510753754236095437058038050265782582990097116325448190747640268586516158883565899008830071914034174907245977691715125871675289051382095013578870770201703943410386087394824168509327368107591676257186169222071797550905169309416339167035820581355936481690452995239235481977901977963190333553768989069777193844958433052694500115144762095878264525784538351168904899888370934422560153693482886857943358241523519545696918066672104023166759383716310526033637022244247763363574905592296745911792215686676265508896682677792095625992967547937770721451076579510911826560531238473182030225015156567260845788279464529020272869663916099649555772133946711936719789313694588909372226282959463715019294077388939880827161489758175157448561904770062210159829130178028959118800566040074830055836712868705200626463096359465917262189500778581356899760603369977707773742727111521910611813676642696688116554523252335810300158433919932277849814996525707859023479070376342841902437878470594634682258358194471121390269032474627715603755818197975302417987171516211360556123466846414117282267018821942964455963477419150843911650400732876266964365346662071331181062880575857001270312511880774026920092827009046192468748089569058497784281071675857234631922573160825587188543127570614700013937862893136999317462034301703487599400141923001980873760172983073941564318696132602650374041345746838570847537904413840514517528307360720128431937723620040829120166507570979805685293038492086830816264773694518802474191711708589634565166536865060845335739755053378292505027744350866625050074877516568266856581250194280496430118523747934484165312475064290265624221347648423428685778729188264160696771992056368683715996667525946403261224990491190374952981913718715797126275144386362386465467054885804332046025633791796330956968049244323708369045720762704039932769172186896044198752465512496497176783441439903544271310552841849923810427675743310910657662725068669722968982895680637484791435091101250268999679176713490854121840905449634000735024853236828700963572084113231922366442738230369474259148194761103187363641899635466548355276004565307501685265257493516205455165585224840139426441786111009703076275641175730196904578626475511989519167559872427538151125746791612763234488804347795553311649413338526892403448759415381051767489083612972743815776544384360787285536756507114472258877514678507489195737147559826424883327034085157303007965172448238750284083292205257495260425277411437035338032332238540348150876902676646921227157940869145942617791077392590153381213787190412720000170525892114503203354943403228925713448923675005096967333724907287945235317516859415074299726722246829590002711445460100656157479048482076467032003117261215742298402512904391424291821430522109248758870757199649093289402077504998477500922096145262076087391371201364604316865845952977134803768812344547668544586299342575335624965476433049629549071675284391504865842718252920530968046468407045580782582556661038382880361973468036563550029002202077364328658767423127987969425310248954693578058068825975114859222500073332836990470653956834780240044194139819242838282153990001211153712301213007338382103925599151944073911738022453073685418799538459386409958216770786001410685978305115441184915339586199735854663803951093904332237712209969351274917831845043748952811982039967711294874784953377286990393318486513616509399314293581202383984137373475032436682838858733735541850690190233947706935350849861360502497295616528383627635791255726729165109096305092171877392724005805515048229871820243922775641162129355888168762289106050538965368338919298410145231117570091646470630123321963255432045610779654656400939038091667164832366537617368843791650029701606541978967627850626413953883554395951878705718800838640516853951553097218477232603523151171318133268577487980311166465521283447745039799041950651195157758506348419588599032999302782324294134948059918814196947424402144197488310080166305510971923767204292946261263834963206991326542172450390460040602707835286086562167319443329855505450024933955042305399615779516936240475279919796973947661653175062080329616607904773373323363304866245989518878516953654483182252200072638559075017246007462283773394934449214242781460123508606838816064194453890473465444632548062779928860465085685330251092032003892784166326962233785083135745541707922194415875050272023846690108332028676477595740113215912884569258545284706227100613318434015347906185476990975079241362832287869783380215497405418245835408933590704316763250597694035123187470650239803861711112589414889203230836218155938819846849082131485747056530995156956740133955526002666475005726719933264332471733089836085983942024816305784145796086673892316276813896509324540779576538497503968100342095372385139243164780963513602325466133351568509930987189152260127399750258062402102761043375764848170450633983258825771691397589262252008848652223152694612018025617900065831028069023389524395715637240044825361636739040711710738607888710661974665976894513669166095333226457117835737627465951262007955992359058504689212314103290852453907799272315903290558229822094946091409965449535181734623380700372643481345943291053008575261713717572572494752219117317037611020142522336358723513694296978115403513087826550060367539798895715525749782615332239339383929040079713969729581985588415834225327852566299484877281931381488539031111907403863997525320483045483169219626959653191195179319924980329182927878627808648907102320982491252062213407017732200678577169024961136399348688561844629749480174492001210750215757146888053011576863389991419816013322212272132456206337302192706337373682694508973783038046083083240211549556203307657458232858342491409573368318250086486769084247557881665510643579271849859782172260289845949723856709458135077304610914213621407502499104543572274793835922718275707796861753586332246867448695761140733417055913151453966447462564730387259906733723914956267865834793238582360162779891458541633486682340598109847665546161685592145150692847600447301226169335902011726235209362216512167876307144151528333484553536541093289209737926313603511690206824709637331811448738192659127822607690571322538765574880867577746834497943320619285058902608963066714121243242455099284359196158041240977897843486958122414846030085308828280616015148715016000516174788196184989132602020384542376266071567902990199356787587140009776940130624273898052776298388649380399758305598423478600328783509443318746963354625658338114486819463930914548692600858529649510288578911249277757098360189722783384545497347989425275641408991128700968575473232606677026085699341921005528114823414796968079149930648993148215706205288911109028169108778719799926957015986650915049290519091653361243424595872676327416488529582630754253376868876392124219281178464472731971204349256007458537586257241041049775532598699008113145598449478978142930385350747302967290411659943499624690398379538612537884827598600822036222054249291624761840563450762998917245220108333689961524583395897700069475989129758122530729751115713885893003121660903128823062575969534732082929814462431738461773788805790062799235274314792930176018365503363016977300543451243333434543444313217776607966394019335408403948948294356256337812259729039275330792997305432182407156550920719582762916774647903761617279584466088961089850424711953666001428887816157018563695402780819288045507131948748093546886898398798612921949778135943722492188558628679253197507297486325793982341875829804672146264351443397306204000610951552532713046992068549210802441704863681630494398932393188922771421305865142950927065733309604558944227632672438539305354657579262577131864834180877045749500850089639269164113394521569133982708955594048704830352373264358721784068905277419416657297718003424250448812708769958702349639623605053762567903534256018133566216422064971978725036363530790550704113485672110983675604034121313946625382322584626224941030137672757816857205337579246884851398362298109127089297264571749096001655227740125087378882628775281913496133711793459187159278803101999284936153901781919766913851300435924468158021891669217627418705718434970987301085618063294141223706599539394018080053195312027378429423455759650523800807915998060116528847864038263539400615402430363339954454654733061034233336852712133545341368270714504401289446101049126867328823820289649482087921716341113052984894752612214854651459429304070738666182371669640338655198576121575019388083155384069240003212602162803298970950762151483360287595580089301660710780348732022091819676178230031364772382723481521418792709143377764105211089261015446783541063880624049749812007352886027587334192986436969478173888520458451010643212102290992271917751742602629777080695361703338812902331217783439760340770832848934133986525439564606693004409188075527901759270667501235122901774146862438870886038088525261220416479650981285704838400803129273259460742762449628928785780371458924520460529970238885194226210149895312567106566112879754442761825511915333337376027672246908606928490927366530181440785186602028124684210092798473393131696971056679842408463351307181914050797965911910539845277253812541768725855389097997005837034654827191202831724096118845567659034584437077324890291571467669576587758545575965549284010755027854817010211661431570299364581715400232843673467707884573411475720691930762337917930708761594966423597900761797095605238994261607638542795882267409907008917308734529188572037881400624917611238843182512151099719596815478438969762817981108349550000762718638419888049643767778400267270278470525908777409392826602555386503521347823116839492590231460273675345778018493005775181068522952247003093752669938858156758612965554730962777654574978826648690189449840708463555106203938371803100681134414565087271362173135557065353483189009523174079326900982530895555245713666636278628383026922444050873320251074404723512420746545406452508651895611810916952154275817886553906423373374190869385258670620072999394014096137724679884358290706411835298027744263823976727096148064709875148780818717157297303051483232138455095947887099556339999515394676620542594656859062859995069580535552288307762343981218530641164230814074151670081140204193436712034195900047263111846090214242330103223361278611986340347824285038335894279815743877621961608751778395606855106219439359179034199608554997584290683621531928126816184944869917517127452796986882731394394596179297083936891296048858670260290135207307159185946454837638329433706869772208713217320300631968111937079763754228980818841127558558555475867167936830932978717025827418087820901321606250904072300090144489965484987323754867424408084256968918622645410379096074682885225442192651148146250039777627112985743044075076867384189340092582539284721034310348480424898181094607439849513973150185523955952476057645892873886221512976025639156332560582449539102388149005532016816330872162394536203325553436243395927436760955555884847946969412837533566995638319684578509809721142375657539918526012344534353560298252906887220980490187201909680867804087752313477984797252868756316688884237401413564214140365279638623185751997223007028382672690737103965936332964100605562553444503431013619100902776283791511789611233721746970614168886621399816600135095082685994569992742771340845227303578725422347389198088531555058209890963706561119687245907681921888667233134380646708017603649544606336664162678248069910726205848802769355989037211565718357397618002474896287479325223260013117905733358541657194827457629768448676408555782559150109397281182063286136465664412271380915440227076592692297008171859610298133558658813744457453976832812717693412911564243372435188064813621499664146872758875698126158114073374559054005600882135975572839715297699577029674827827307474903326982552687799422181022484648273217004851254183466945610049101839258314847813185871689258285432456038397769063267199596987256400411194044151110444267030598083903743847230112592146673317377315931261755873017235498106109709907370886724759505429991762094159377641461484423802166304082066217651612670997035704029271241366418076993658115582943558840500315718353203822019622896450670627109384362560986927343375356923674864589601183065622937798040380989657650992620989954235450856214988685666344364450383584985178434191317620353015644497449840537769727266440883632641332947416443039633855712247822700656869082169967580611017731955857309054573217633398792213092896819836522515658113516468273420564693224412149129206069096476073570098136261315103429957329256641316130290312148438288425593594062279919027866876151567972480461629369159902024389374272424746755924168166351108937752547235587527998478302005458233994254053682272066955148711829218990075184601821722622034405278875756902796893217673496376781114721855942312915579273016752437277429542334737813279265865396973855649596516507531785182659605993792705816391337443490436149950808566911087575370380191401637322658464929004696990978898509513936792085846057197871553263640279238080894083360807493792785683015048598999131513674316747870686237993494508140779976749568068218907489959401921654641377698715602461992819236598639035917118051755885891303404709851428546199358139435070097162163436720122522768614711067433630746666781354367248666160199124680415346573674367744765102887116639100446845916344177027689446851761136799398704220052537318210977722974060943572158181993850689047965965585507004534815114965789365793128893344157308496308019842517726259361501521897281651733133536384515418975307442503258959686277578747316550655606572379558552762499757123848915701792327387815536065804862392828191325047494749653890496724937424016537699089794095894152577192194380191512525637459077103155590423054461211344907089437588420825156573558995667319704293128500399397296153798979452731016312185327248874096630576752582745919393599350882219904982525895499331977085838925155444960379093853065280298825080182281721112889406340396698200291247270261815897011042489414467675960872790422155858709112815178795914258893980745804462802446244792023126993395268877852551967433206314083363937498546630945637099887433412992882928783626062832023695222632859771767874836576129196436370935871683619658345701280795784951867108542902436829074909297496616153455150789968745223797928831669196880723750547280340286807278176594318247175069436957801956540410560943848535461861226674264399513067314405840513018629077711219291280096493211394452682373062060837217447921829385164458934823488567113691499564201085948138768186642345212314122651752166913254145546641498194893523884125430729187717228101454916488181659830229317340968896560011184997499225266570961938474431944087506951416811242435874193573407488670742476086526618003790591926750313376698537527065761329055026909883635321337594821870437655576247784750396621991847839189145317388752391990196512128851639038178720698936756122684920885413742170921256973432599100969769521103340513748774959678438886337951702924442044304634008331886618210998481562010472678539186470006738883376864644320975802930464818428299588418070961888716227574455005056728282803296790214700265177748469971150148572423291146141808155107373065007063829424661789069204195286886854087736999059956335559430046282290161456397574503392160484547858485824614982336957623456200653138582841748437994363135326782241830206516872939657940803308396602724358338092284868092192988378161606091117967656176762924065610066093581680913319397911119516070240371587995418747194396142692394548666633624707442577519215106225263634478781068806479993583797647533963492610136960906159294047139757109464378201061168069485171046570517777642805108675081616038345057838821567538191116740667996863513464274369648639589064605650665300427942191596282180533480852524301129276452549447149177636858007081979132104575262325478677260368658505273171176694706998730135638710086480450467081134948343028940795569359247551351564643666334914970695044645298651152472972434717912952068305966162872518576068472521204553170613281813534736417296531597998611736737668252687901146357791363467543185766922104460333625028153405540591030747739786447319850830472658834640404805520433338646548245740109220433459164751971043210175268247233515697973146419949315251738658229124819348104353487671746349793440551501215914420648874727602162952715228877412475551258201869791800186700116929948398907528775891163107498073845562611556234833818467186168489243725624015143776375146458758375466705205832645756464030690182591509987643797544270685659284544904110251701442310454504747610801068008941594250127367643691202745676611762627792117561077065441609265234246703809528752093836411050427832255028542124044460720254978554060557545393074894421900142195392008927739092115230263227991801564031484112005297558064661440917761676627811132310724374244112981850389856011529071805245945271394602920626267061475925674421596593351000779322637639404029745039548606505906691026150598041803259559459981435837006236679849807273948594486356927767007173816007740331720891621542362256241925490762394333126494944343403414201360046104014740635602809995733773343469090231048685355470693710146206486129697235472319875197553996246528912335067589390608517026681961999594048951971382392839666299436411028718408732675300138495245358366788712002642501831900313433871411027745765835876192725470617713537581586095960235456974497940889653696061678843748568138811078422831621173411442978590299250343400761604474847275167695406026039938137495924788665638352223571256766698420256102593531724156600801638182398432160809047480442084910735449608409864879019408638720857398847028957304820620823221335915485913204719548853917971893576786023710492490388352737030601420024658091158267760584616750187146773442784459578703663718049210424226359453012506916346293741832169555454764208310026739388136380882721324471082790350105486705781978560738686987721128976485702468240520059253792437928869668468000423468162591374459386631300788615554996101721013179371044940996432632181319982380124687747201920666451111056646400052066963988609395616334367434047050780919083455475460360884592186955220802558721882697370491540825474889417254491932263248450897983516260801033167667458540093632851590365673635143741884274929060168930763494912808623219212595410375102898529002488443167143309487787913780088529744613753727382793347906118980604913238968848782336038135488994830800224414626617535695763308953384132029685033567884223525181323925721575953418015284168473134612974311548517361072998162061126723382581344232277867312351049752310471293440964498154942997278947186538736714332856680992421950959672271147635647852574268286080304237867959483238330925062100573101632850682393549936162162840113301166337331330774034597803472002555900042792924324211725396904622928111446954676757941533081373242090315167899769386713363106807954430615630003384121305480827801529025054196476562579812366540746524256651402706291966264684941592069630932421872890213005328297423578783739052261925510111273478818016258469077368858489003269908039532028568826657780190622352435943321145516863558448881812869756089860533548065410780819538670468476979445488661293418914984721772469841333343320575682123196391797082259581956002598662314931229356243617380891804305090426718380106248883731450768697507079914324747875793881187423181330675221509493721777732641116749256832740062708457062568539456871162030842101868409299753324151308423329888050474926417396970301939471758463192900095025665974415215438868088848429286624395979188004066437527521715772563916940392800506419706755350849866097544975145309739649946897970615007611159266887626347998795604939938085459948566845318514432118729775744623106065639934452981390773485707211924691442064992272753380049274065880410643266258141190364106268483171829793858926459053615833984815538812600904013949863709940299325295373311982193446321318031300272203053129451310254912882231181047750554541804863048136867314611858810013481374714847708846217431772863384811222128447261348240783005236352179463373275906585983790817796312131165351713119229258459159383254010300718272948104265237568189638898900391536355263415918726452829899519321425485124190047986980449639738224971472197003321759227273312809791473588376587882017910562642478358436590501642644512875343408148566364295003427157962847509990036803929180883550760405681185456524011918066372608497579305539021752911177264650439632521111875890130187654073935568551701260004875144102989640806155474393855495012319370392603009998910981596895503530986498851645635922801568614678204763725681065243527676914621557600573358980211272618582655642735857639257098837127574520711032914317416573672927296031246724093570413059425500030249577162229843295034947408413107116637680934484669101316654768365922833999531008579268253141689165084338878509906701999489981068901096130769689421902391759897612430304330785959875173682375661183002857326110576336999519105687417993099741937008149841119093794953005891009477173410888003782932922156358029219335938717643527062620777969738224614337708188050650359001323756271660982279092201379065267868990740370855135721976650052221532032503240463504888459111073963738128184829917032381794120917856487980534363756450803657835842896361134590372136728803329464589437704743669482154288038702978187673958609687954477735093697885313837262197403935150857418093509746345840169579379723361810552194095691475920803445822147307497878461063452867962234908893936813436165878718694435254602400417247046463253679952475467310415673266033057675941976645461695808374804997348720639473400848219941284401978184288863744933994577920016930904539331792540046912588821463887639298197218442727345829895626517530528928061862254783162385931515121766169461561887754324221641093787294286271191397540841576253647982478702822584472114531567877262341968756157786419853541112898373352805737324382400504781051206256434561641512176338443349527418551347345124107768626237793779649064146347183014255623499132046040325061392991271113817440068616302033262814857535695132249155863462225596862253114796948868134756278445548806378062748021712267137685527734284881119244380152406063794094507180022428892098517952307295420846944818448129764728171944135172293601843062124676569782665816620822460281939724372407195998714381826113259549888678146519252944189923127030917692848557971459619138894101588046165035509531817458880712697038487649768942060569562861616044808865676104890015708860592098126579919363041480352298218240809630584191318651675037373399537014501119028043081837981413711151067180351180055730254615887400702609411952314402712943449374417634362312284223234441030403798602748517828389105721735975052683825569508977367716857163780939912059643699618543706114735203801973638013382293099568467964652190134682803168368806219683402724844317317744497863440904253934153188265792019640102646911747516528916301199956900533767805373052986326949908643447777638742444540241423326715603770818708554399522466822704926198995181900115856551732332033582041115776506985016880900744142987393347089233890500494600753135755626725570649958506461572397772167702989046818152431825798596390543562344089682855455841534885774678693444583174577182227497897478925956916408467101990428506175807687478249070320277478255392578543199699493820828688800547475114767483104669470286060862761266370058011639052884602688437372263307304291144001408727071086405302399683978479990767924887383315887747007437626521206437235036783179280024649872832101115856917452921957127900444651998424299765933652578518341484786943179943139527028497397149006361179843367301690696555499537385036694554343297665856738919411885099286040939395654581019704292554633403695877835875805017061984880149872871507663290274602457231272975295831451271060787224269633129076481150494815483931506415083454838886759033657689475711021098370131521856211262094303895911315168608649391245396528154567279104651368497074271258806750737291359405282120268948567705735057289748320840237095441590609147760918557066030506073585579306702066712806383895607054233050850918184437407626885443795284994674713746847162894202299021653987191800177992386261234795761265185821481103718995270871660671896047964699031538350916029413680274009105642376953857143249608199926370544181839562449674697144671128305312096308240078829176645331253777458759655965112636098250283441252145083939228169440380376746758859328259305049940569059281914738182598154349706981887262099880659225889025772447462444381514827175081515543684166810851848337148258891919918764004719825774930961890705801467786557757793788796947082798681356940669687339219252338144122534572627997136711126076338803532136597631381017333344054887213550531067912077021487215396191332214583793681504851058121944243674120415630197710015236030059547800097875754413259752429769302371146868182023936836966938963441647313194842592586751214248963106972581896684413267844483845954888045532116010455704512838676596923794272832755780510920803360676255151974451020781112272676999179381109437108504775255575643817977410274752964151946959320854488201511913646239361377442884721062332495469432943933533866166159569624577128873579787046402107759622173571615671519023402627956873241035196485112783039179926797999498718799475681793138587411100671751967915791312229164424859302629907410171415756757284756090752578590935533877886766792430243276473697523753663165966323192408849229914802238756430390935171107542576426841861616076115526217095874772394655175242451171820011710844133851803187019196815906404288132752246423624006165270731268742543916267461766867296358126989407226450209920854276093179267616182928815381233182012462881907917028296155734600371876060670775940836624291194568309776635007954611012085703385085350941108012085958846498553848562933773416373311031609663232185011370361638302433564568010887623645058981676328453909612440692382646124135517861386478042137652272242446518906861445515980168519309170561528421438428811161864520991052834943198157412825045374646427047959566342498288025662597263359863568689660617511812872037572512841324188088780883470743426674782164700153047654863410032353684438694921967639615262398445967638756167098641788230778207309990618851975542910579565113004105353546747685625731698870674022671274438751280866631499902816512228786991828171990294864234172431633976313569540047759860158927307799869825906647758958621380319023927338986406759961268834785936289099490270219019029814563379382306562270725663149507362639600763449177280153077645880096902759860271720135236165931110995523658409382939465387322110228470670323641933774796923541792482477387963013398146204970647778596586997736771358504595807325188673519340496258904735011762581654475420256445903313518851834406338798981286487170184319443603756719735082477191962005900868431996351699485044301067790513670620011724097155970871262673663455476749858720053418666557615532599202313631216523244747396274696238139025661530049802674932004565650209382766127919720444773399728727992412272141408383235517106223580755066441914647241031416151045558050729067955716942628570562835139730866427814273916389487573905927884785723101875569272448859890690408202851804695567521293885267107980252499895437412800439627624971879563743268605041495384209590163552969516463317804404183506746969288876418673350484379899411371652050536939137491958299293804506636166724503021401375130131658134364949455362413582277111974664517058548286370191118645099368571584673600201348109486614566225101495060675923927448142918567056026302905303265198330572191698228992984980321967361002292101895136560016413257743663587473793957481301962842077982017556540027522033783125177881488780604688847275471399401908637204875717889062091833007564467568163712381080541215892683378378881812533718932240572482996226778394029416242123591034819684592524237559875375937264311269959159735708878937415187134909993126765487521819639060050291122439156321647872971044627005121502453542383789337842462800006040428791394775935249339562760153678653143815543826494877126936123193904387081985832714733712611898607319184499914315114916902386525420946362990672489775450788803477023706547834424693252698274885082837772401933990656106219193129665484349708722717039387629842609181549373300532468816310862197575778228975004342907062591177386298465915947542478765076006608344830768975790714391639783194070853965203590839492755928687681317074517884592413854755157133249680336644516558079245413662433656559717803301186057893140186973963617827382048916622529989547513332442638077042387415444675546388416237539065004872593518635251488001880694465661385032584321512352640208996229578429864461271053272245237725862135548107578607587757525154688509541638371583309576174131702752235793893612476509475144939910283124704131710455517927948618167753824653027258784121367722914253825081922100698886531885628207053038318733901264002520567895940731527474506869898571183833028645109048346250718430527246393116781095525593541452854525413022521614717700395333334894126341093464135258191226140713493197145592120276037304487211104260524765872917128830303782211972211103844197370053718574470022933602629511821609032616502424721877241258766383106537860216887153911580823068781077620662416748168343820059829689503503263945926999045470358843046746044887907969213570890865527328879563597343464779882919215219509784995765511952915521076987967487474129165469428141518610924969114454404859028028766467586738751227218528591789302405670396307157671039583912063305167518459291909474716763933760612235736129916786777253066284033203056885770666734106244248741727400573834063025471322218163283122944437154325383904008981194166019257861384706695436302569650579098014200947390397758058850359812271833105928370220300853236403055427961387658047262403053367522005610131615701657412865463419803182485080557629587287552481305367146013457515865996986596731546649442973671206438390153363264215817748713048551076458791171910159065034625540799368071948335831921506476930513756681512645554157807404185338049412179858784573860241975991010758858651636945322538311617990476814903084191301198682530818836657602958524179457209365702698240452038026582965744423351461198208230176313646977678141114394090545580522773841550875651051245531276035908676133969121568398618776426834243138966589364893288992775013377938088426594636470224821219231200183563122635414452031483070784055833858727216637870469175942647184579362998735246255058364334696068622454339030689788791360313037479635709373133000881362439303874272428198267767808186611954812761923069960603682416604030891491526761297435417753108728488965780378536278367584060196940974704554514560593164288581418073254209646092618918314552308246116599032613715509804309893627931650736985495764822047122521822776289929842560703407426794605097216590209661187733780950607284600756153312996295539976816639891896110100528159705296521536054407207365991182171488429083283202853114413794261921625004824010114314523855901995487204500522272941181291386848073820088073258671859794020892624108910813031685168190783644466314207867604692819869641069180901743210477922094966151079056282095856498181860540174483098926061403024569196501115207229155669902786280173315223132202878364310159314680853341055763452447719546355656580453115250317583785446860613393934834519211418428449770256334642967327393746732611270001728805765205981348517877441838258081855592648496433989292318507917299278076340030928899725078947538025659888675416152478281642744269093199961726428004890695329475417738222618591639550267849802242662275286099570294249505453951007865114028798752160130977837762308252219962297795060594466023816886629323043650088384058946515745864602913536520682995043944984716417395725796577992366038527100339663350295665191685375563739550130749306642550801150649105970189201835396591141102486754207061942062980968489575997315970412162470237248344416604600326457069273493836071361592019761525084022920022478224712809993375670044327194210152081268567654172460838294915879562778493041788688587280052075430160712472754186206882734285615451357583003494077546729532760544010152055619540689545977777469478776093777069105542959182698733085399596733928015593374640834385410238775948756154379095603158211590458178650247782964895314484373351498549352485445083474110332549720115671614518392878253803912012497404523742640315743577568721496842726174686677619135178498277327325108584265541412822855620106504316584126621838063199203707726375036692821894394091364456729726637320388287923056948454265244447566780321922647604749966536277494754515194935659627815427286812844204442618987744760408903193230685797945103053543849875063103164588812989759080863890892021576336647107262052114634551185273834237530201079359224107779673838960805151473466091300179902933921316484511828804960655921144422341257488634032897107248726620473435618004005870093100464393033323274447386977036286671575817003177259554855379021215614217953699155545334125814607956797529076346330119805779976330482349308793117986543028485701224044087281261265835766432408714896707357119275388124078190282596764460030322891895427025686785145223770404600878699393019250030308089918726004911022896349603650700419285017132284440914134994242821373214904820786078282468344322908196104118374329618166140818886593065225103289450434340736043506516509136898277522099529890049101658336219910287670506019210043874858323646901654923073144001037523367409428883331348689943691345801656375180921303569368937085224826982137360637163876438776649836728011121986020415778860309641676133243441063931948049655553709135537508780044573979831388111018071330603232465553749788584039141633899780239688367797225418216093174803664038508865058568075916009955257899983970195741088810379348950465312814466833246025428797457296820361467229090103819966291896378759049427701076110742486763486961692644276017828854508275079115604131211833507944625371785834336953969945704806817852763656424911448589208142433999536490272094472789359408793709648757990433660599324475262511706601294051562907806718086858340878165602870846284928180419738669319714142174085562322930066692441560380681816206681977766104813176625349984279849881993552428334588707556370180972294332549495602518173893022075114437683367136251520599757536159235705985440525547756621959849856324803543242343387475193235426843936069150527271260539999119951016754580301109086565944052669733439825764178618055787350776711957477734378438592839291626213322390547960566935052694767963440734418273983039149415153244981930287650352361701550547807458131799936493244891024238809534405275331550446258290640221064435826915465905006344151095911452688126497595174399949883238971484450886557098866168197895662302315456670321373834899759486547611431805425207050853097409781625213992324163773990353404888594420271915901942918482750439861339902624441374653844101608307719105282057794808825663934897405164610143360417408883623299253927900099144974997206201311415553912296227018207137974632874140877547670662068545928291720017404541144655099345173571821339858299074788089980095401546320091023626725794459278109429908072008482978399893398531742770281864496563778496088773544911562319718226161329845225361762003551730503542069334722683951042488007578826481859262960279123247766934416770069297119866198122092922940605139828766744047921624927674506728511984883581108055844409802251252990549874334156952783416463173074250018160862348934237894002996223097739562366515620588529447304496004589596592302552107701349672075132176417584605192608726327865032909737445172896188880228915789351019257670463650979220649030962903942957617142644749096282635672035260147264403973056483241692877136345280245113225663669392503541971024282068292117955821179905741665808634418739914973425785072098271831117655173822574445609734008106324538835323561464094477485796121868982168978581833077063371178260910242720986694910011248030576302065840152942577033385995681930379398821919259988557658159932711932341916407051034486782124876049225274676476121437913923691487231051154468997562150226033936499819567030230346809027699688371453326712957704372408768946410199727827661653323623328056331513440723208734397211492940903545548263890270079630290561659560574153144041379614766674535927194318552374550327610716864145983833455603870612060453518948639939444722989009282256425304647498376475776433203222967420585928431062197908740684448031014038069969236114163118331835514927227089528306788048524165478576295374803973635916915837276214927988564548957383104216792640308552868380231601520961164233474232472261640256803498323701282478355018001279663040180976915757505949875684058160096158650923716412112449858600826274197375003333489425418011575364308895861095399223798660280412343758736759682250182609543774456813633004592907167928966361606789377036606667369349088998463901018287341945697671539931806891966038591707829548830519660286005355844230698936333984079952544562840874157644879827351780801579691641163791914935187072794869177405263323031482158496215828443901802107070320181006194275736901989917577287471166582235462041064356252777856744038710338867296644963413492868370981154686430162941468282327492130422295532663366529492464552129760433559523133068368895606770933222201663637058778916433653719122254552775023289621867869591196753872629838697866562002347626239387485355670193479159245584390317830402916613475257855334009401193952393656854098675018491838207058369969668382865830397472328246366471504304411593430969454541352866709684539979173875583654917219237101023970942109710682858488246196560970169533605291192083038217560216930830708314668102119943336418819576912985155536629873541926184211555004519530439355494997091964078261481005887448026652933364319622485839195178442810770332703534840560982935872745537878739636994339987956211088443454885426397159142797520427081403000080421228439497013638478434753177423119400147891088672204387782662092701440086611983695444526011859731612461296096348310903101733890294159401839504046937369118518937672756009842824344255417328900677964534505513387026068263065187220888482375172365599558766252762584954761373271887615522056217099415428423313171053399058770475399635695523557584746664254613273998041371146815658447499534980587664342208711770062597672787657059605728694713669201335591590616006082053876236419624303354657841628886832651819569044903899457885273209322423259148253436347835130011515435090036633822184443881077797933566320541501268958554078006692863062117756978666766373350978953327252758971479598004359372880364586098719393035366814183029850878511944962790850299442685473063461271755842000053059684084663930439827760589849273905659652940941911545550744629273964818385661152556270007211418282765953426877082772274096821976872718281951039656272115157848796814425907155385093343687901374724126148720956797156206295312858725648597519050733245056544475695045962368921541605158166928808348312776398971567699815686662406214193705920074926639362999770153109935321240912047255061709219172799158178253689094802514588309157300077662566867632660577719983405041204865902993962078561115213493302812646955867508946904332963656509989229761729597576056831136594381280768648412540536891503929516327628745996537336536758714042329308607698206278412885899695797114686243467966132664533866651886207379609101563988026318449350792166203158459387705515385302301744415484925739598674939530298632379519344102602606256272317243863104864070357745784831825705656874373971542582605789199951306780598655093033293562942030585997441296569440577346023783525105657966271646638222439057474836983192983834378099774550812927387528445832964280117735859620020414265471236528620027725051304480376579246882610379231421786272983464567841080616072862012139330089410483737316376006402100310370448457491879476193791531194194899238941349612662320160423329015138018874809463039770968179086325638334706731677296260852517957138895967086998270005454579541805442037360891457240455957947031624300416686484246164753137041433253860473077918245392862546363956431641396877558966798615456413832524210244933420138391525179514044991246581188046219164355661038989730909580743061889328392060144760871980846988331103529129217347729809673308692019587283091105914469858646888022752340515979264714843771442143025082210298154769554884092158429275483282820588914663707578514600866348812990008139406441221180651015591702227323396238611666452692890220528821283866797620767122665684605372554207738641981489050774663568958665505325925260178459446600693634867302891589400250736989930301244434531590255488096711651742123460236730278690348537373948063176959870845637470270310474031706849994338590447053615265159417074448191122934534382939981711013044308975735055319068502517429467234461272799484129526150644291884998128148298367111153841260543959484298478165705759517295459081826712956495644454677981559188529310285310976904762327245952830589983008682375989291298626827752392062533444326522176989663547304334494296522152543464160443213824576844297342650893183136880583939661476859132832226917550004535370740283643160018368654424129365496313445642985902873836801892140636066998054649862829208696320031670064549250837278933141629327966545300208975769062507438178044333512825840550194918037092971602308560721267238284146095817980983229599716001796875969544942001116805352284951921445015185732304066071663669595075370433826749889008686792258692076860865012377416884779308355492784884305093474139730522431135722990810245368967047372768729802610968011609810220491139656311125969786500904540651050188305488509074367903157870308212220014969840735489927996591621339004970552578547546438941254610133812947654206054163621000033475112376778988224617309668657320047191091524370933787641590105512420911183410800833907356600939006855414975010866981306878939134381178562606808909372152893723304056160067517796959941123610089078974143236713000527234470708531501870091374132911892509097155349678274721451631014524877211718094519214713436467572109531259992485640455059396120200992563149607679241142412460678820390994277147283240161069733185134624210873390702481713962893846291633603234055608263378192580774162383640903884562835317964807234870438632941996754350997316870998892833875009813621885236247349436751135145892787084515507787179307020623946713088258567009111875772820367765145073809810771178937775524520289540969009603399778629022614450491696201061265887065125893382242816384978865509400154493106100612415911373566596345912454048713553163369568441074482383919050445575878091543801383677014704314027176749906257601053398331688906619830093951840161153172455333999178414829006446223046045368691054399360103409673629964617264148920353488615817982343639716337410825064198293489899012670413092971253433756048939776031143074576057335695636110240050524346634248545547192548780492110448202291325343526251223198545160896171238213380580116163487204807303019665802700550969738014320551710162596083755566181977804217263123416194375305240063144035085767697554348694580355841052876946250648621756164393813429023784389355197104468306804848235248989969847633460614351092240168204539427319475918530356811272552328985682584379836477943599958569320895818838824555693206982649483575498541253520178729298283093981356638996740254139236951166318600855850072997003371864268840817695106915327975662610015901221543998723096647991814322451714019271674111177008534209918280514734868229395667446796240139148879015679961035821410337063802291189510560642577273890962412528685645213059254176354888273468046826323253894360777385007594430590681973932623788398741306689235378190150309015594203469139682574064176823688872993086227927760999473066909476316715639953087427477256019183449338479451703925745416040421660551398852264348972102430714289549037894056497361863693744854943837845845580384715523718183688348938399063642934470813195326203355354197816484771017331324143292354146380282142759894918016651245840851262038367164705092048923284117352482573383312200530037364324129008211579878547648366336501495379401883143450731227084492236054967905671980911520792098328249923068962607884285700707081095721540784723491101596886855928611280190075452763561713768115900800288101730075572110802638603978436346208522653432332328935579154441241616084086983194873830691463807028155512911456107802868371504060412744032709092705756228794020424893625969572860662913108445524096751710304559568267811141906654997266270545768362297523647870144177245736311737951233525948387898877551724506936030055830328899477521967210255823635871699408985345809471773985445740373076429965434228805649245790617533924416413783059514121288760452333526249558838986916348465104870555841638075586436840180497063082727398225540942290370612051567044450270698032369089249195168830681676920069069671449134828037129883341764622891973718869693063332558797672423608875796817262950647401781395142871281425241170024099511851244157864638559188086033724334978290272953893078852701118588622951294693126701454611759866097195969889908154454509361556209323758813358545755083922718395661092159716952683998714186452941989990443373933577510781017138486948158461706134290982593374604758356212903674935612444769436828127384985827652942825332929675948714299158424598566263478399661812602251343423422242721039140727374989653118459933933255722868580604716114602444681777558277934551017492712617125858191290459664546833060567887468987230001518080480983414383089887356683361419626716111457339091674540313880774251997201418712697624082806549995552213829099470600204316056058446288650787254849766153714632548141207716543759980696555263953871933759911481523278698052126595294115779033022165115128065480051934840147656699208228722386983880934640062814013160579518497092484493993659099026353765075419389256453929431339257443237962510697203196454275835573899834573590795487439447910492553540336468785461981858477102776791495102460129078835701414175689899182314375543593503248216524823226572004642626523572562278796062311359980435964193113239230272874386792708770131977418955235386657059344563392389005546823172094525096743772190765438129099432489912123991481392016980498051903113831255062233364375597714396764909811904489407997226073766444808893451471461576425293982727327644321146624868955012143671571342082170430398801048156594346168363623968977064480406078684552459253544456101686303282677173752386078922990959677927271872708446816706336484972923996023735945170809367721098172682515044859135950389285478174366341662263923119848877801431699858373850994257594439832595237094067889295129009061109927311239043195100824518608566398714232627183795207316261929000463459026701899035696582654647255558956508578399026300726583148337874397531075510185508921457041471681460685198559497346010694652645652023114144876573311462521726294626374508271353099190746635287402662816436651798262523763752428081075806110626592908369065216035356753005305899981854084044012205770120098412959126692678131369201112605167380816612338380658592830617334936392196066634208391273727468701892362591075813644600877587494534631104605390498785280008188744612943891317275178117422665951946541776444035636760764635215610084150831454683366604107388540769388314143057847413861094534965552563001897225909685841941632618353231039263479263500872793757329174811377604587907787792069147258585587284283904797460991238524664481709811078472939090310338416234357887579440753007449467504595250281891367444097982613633953772514791609075611246896794654952327304541603454425295141561427607276240538917002599833913675449467083653789358102568763388836184842652769760428417284900602594871613189116617991988450320513913872111277605135897136942872110514181332864067367164633429382544985774720262230068715617754678324963471293291964427082347884292423585989941902037329771335050930419377781805550066646903883882244469760004679620540834819522357874610635055934410457820623181143447586075561367832345666219479527344074770822686872418837587925682116556751805239715553141058907842936638271942500982000328411037796761432985212477383575080045020279005158673968253919215291293126546565083912539602499571156291356632408486487556905133587180588893385842189285062320993950869438529488815646730677445802273319866805546315415328294940900381196106429015171121973464078016014441435215193229816229591280112852944978709186673249808726161992252271988479494684377107061051667147827275471218666512896078613915501674168363882391743057594980991316182757217005004793958857427138523040034349936844605284437036195389373181228349015177750391269843345540695993271745386725760469604318534822647368159447897773711593383446554912470612436099319121311846568596224124605980090769854563883260161110333210319342949302906500100184306191962472783807318280123129646278081978456873297630001203993071166681727994618044295571798570103280921238701000010981150395145955422440737971217914842897721296115480062636453130366786582289191840670232855788263354821327085493060929758827520580697817669430114017604570341414418686881027396554211773118120291554199781830818157777337495561286644454944634663796253789368469627914455260340151481942783085049123643159268574474537906695419743807946509233838548807488328286902204052089437680055656751037263387367899405049866789103630866651334927231806543640898210327921573546644105713179712151960523721242031972635533026326345175729279499427061772101763855130718676074808549064901003605946621566413275425875527662879492432438611594011433397279313124874231133869170227350231886909217925064749984392074371627043635658607223299122070277568721814987875486437817203790364295663395631205423850551443176289209799906950858591162874741570245652549663908948769564077766403541845402529557627967126327651640881915926356792637192913395804915969429976589514277694409072886692110025230775054470813838508758107075791790695108005210163044569935796995769732665832066282674291970038207706406517394042334203090865221329979721977018386615951645006527991708026318556957719724130025618169282224276233324818158491774835800699367761320902136482279991800106324209596459559207358473804593006596418847257943602105381527874862111591112496579074591704752949308129312589554108099829076372090694206098309568985092463332355798003273466484126465484173928582033484532215155627611306728047610394719331794807612792407214214936551596322957257407483617816647189585435597697673977610723377971004895871406218121437611764051108113791699857220854579550386617631246540956456205668902482898953776846410971986784572040058057794600723615970910820526527359393765756535708235647753385062805313216412032604667659856248861900564681477500625367183892172595513544370280409605468910315775158925518974603791196377439204815941365486805429381038363160358183953386946625737201622934824348790136806246391991230210780305486558367756858493027980278617545377381704851806908014400696610199355270398546781599139312504922781341739682736336212214386622787947006712551142597779971421012709761919456270418725144551517420847985612620061242641996188386438429198294998022250260226697387005135511872091509179911380352575951387546549709447907758956438029917507972229760060954275949640118370296224967350538622364168846245295405782252330619735111292595638591433177337935525577649973934217332984160850805251583968194712022435730311163563107912391041542571280205762379113131369593136488827042452003439524861125464290206233193004388406988949802280344330057595451010361589831672003101519736015151772512958796328341716616667301959378946292457670748627797912584386878564947016355373713537914305221329561781305282299859354425523507199540657256964920927788130544394786805588720253050719233180967574156037785042539377112992408887703095726783254938147592528402894536888019536188661541836173085312305319653012181072618605054992909473085342299536270381513223009639546161930518379702309431151953238548760133083073610452672826969423967785395276060887995669767815425808076425611044287781109424866997641379615646582417997185658247127522044182980666079916787964894378809374593791953124354125645620957213739776186135489225245589627875827068857231637310141173711476213311610576425451486331515677644120146292007218050886520935962118903645278953118333223591578096094399416573302610516084962786349873572814780793848276544013410828078712524108857317068626035936427262676192184671145417595037943496247009193478176961045347201688468735254870973314576875301465818846987218204280247179211723837560408054607180255905456563852976717841876781531760687110834591233892127137513803495853578711249299970436991480932750066941005342033339295734607329006294117755177484058854915923674154018781380880058603510312310715719747173200690743660066176723944900469199996033822253684229096575259166859242253780616840213237776933340505279365895230991913176628356197833648602930909803802353277968521656257057285721734824839542137699923027223466225839830521444809181821117139449133535680531579736508199219368278595756942798156402629215157451753186042060029412085916401357571238619082712612754654914863400168998587244183181996751351137274923712693063133944249271428266997768704030340323648990688714598371316483513172454386094904476832383085788157245189980861161076429165605016713281654806785329967384571100151065345520388134362959098018890177033013296117338539185811858920512089754455041489379914644808542749969495815986825445650976258820266318854178178443799319367660919779260304328971440908406148052260079340346046779954366405541965736789637805391862069037415110982823523637238070066613772009538995288377866598495758128572178732455411561714731471714432097358271676541120870335609069578294023902957241242153034269064553779014369925788900053146438566722529979485335763839259142175547772948116195653719053296428145749407402939611875798450294404070360535882622936940934928616986443157990593339221761647093072380271764282639619288436421826484240067972648326465533773165148743477905644304869200737057379726866285742487777297534231839835343697277085123325029090409852882120127125510998583222386404857244158824798028818265298260623110181881414367653096234400115890121615018909267577969733955898700850003159154891669530240995631381076444826348585432029262761736551464403161816921014128603320099006783793767132290368368635397740148811195909630875788262821427073667500687560203620029281672622001356666294310380627689804310698006003963922095549825864511208603961229400886204210803835366226024968882770576054883549829711580022062952378846959820952831568761147319520292387176840073209612502049026619927970237766075063367363683551024631574411735835344271599608222523047518016555619339255203990622999681569488023435876888850052136924451762249411556148574148788821468290329304546721660529886714871269078002354172204305718285814077381883665497422664488244129464642626425655050835306303105471180908151999490824620136155686291618436549981811021354366490927924380899242288512596160348669600203047751178448452919480823783621811048453976502749304027313744151820628489513247407663019415272384739640925742787021587480988153053623803046180977849699744469550231187793484661239430085596158429128768628952258471584891165052618618815265395533413764459749559065336793652149718672916740580556742524021970718418877352851613248331123862084339543181079638256750274903892385270954206069203150145631702782329496716434216181153278790480098722559016339414440736905431672949087368838050711144165444094480488428950271275303740466703023905642351710871769335193585235131626819467518192054231453515822603447206678430195162036409675421972661253017408245057137474833880913513208939565816985187293737599540252287206500599155321983952920437818906506161832118607743159406358494826997839555218271646200754417262798079243245313608917487776591398700970154596859680130373405018170100250143601957936542739795584394164412162843886167188775256440877800501661863080050839523976249333650134578562066030962561125850761036581459361541701188385936897097222782954148834585463395824038734277593566979133152608523715586783195321471505313145379087580101391242848061776795048482069478038221967733256500136762589419356485541534837361451622964894759234348935377510638622650300574766089399915934551944778509261514907195571031179880368638739512472966827010454643569944732026209852107633215332922969065536604710943469402764853636695972579932185422242209130017591354071736556475013748419762391409774076752536487240967034665649194655810268771405621006907967954693719118866849389417790769541358615671682731091068598084090732907820430098587464525766797270873039354084413030109887526572950449659869266235779945618257986790480508062080851111695883555221869097618135577694204861043066699628509077035242309792810217898325496357438375678333833484301028766333282731682425376899768284240122068911097038353090492742685881518085167478549642285442838171043544041368465001563593533615817131706161694368841806779185834634581561076154761596845436856780440180497137316040748185024254857467836257238078318689116998213009450435915763297863705504269657341827358121364571703735841204529811023865578825916267224602411309385401371563910220598182807420704189311251870915163581596421895159479241671951365680927605562915241273531841066712874724847371976187922465301725570495064111500318717303516048338952050918483044924409754288062994165237390144145968557165946461566253244679116848673312745131781979514674405027616049833426557664236140794005519943238514945988747049737271457162810687354418953042354975438922023471391543726385179649668755234998679369654764299568523468904000910300269872345002805274396992512090892062130052310490193885446269444455194379762955579176590277449165192590598207150392645585068110342663451080607748590214163973573381517419952069168491425664970578765049852772930523978080123185687476536736189168695056397322991195408936778332474490684548905447888100599916012257502364724751280857609644744548799734291912699207979060396021779545725488366766746517460813757645016871112004099255565333568231154911818736563027338973979034177661080273650916578621150368075704448399009172574926427916723481712763107946778062961280328648323137551989797229339933908460886651394303535040243315611704932104704831921776488849310756567946803578858920263435571566886347908859023286085134925713360948735416693021786504397016413745375017944001911077491744252817353861355587267232265883980646487565008984140633828186805113164121087579292512636989649249529988470821891592767382713573607716686489748705302696154508199970707048418664302154633549344486431436712848758931430453549812734009331319362322089982965429277442075699416997945210355043669619386893442280606380895951364384295072870685288201387846965916668589039119614088386475088666219553361658679964481308309643552230653858629506433703205014145369749297682031416615182402857944649353402265571374078480312684230630496007231207689480832262046863960297520223853411869295181649505225360609436546003535061457230588951324076936168347881974760339507803448751926479165078228422980007886677136854133670895353254308967874280564404248441523543895657238821968135424281803496574396000524448245287611551812573318120914514065130847009581974039485210422168446584017416475459367537150652006359466551032679544780097459333943645981015885411412418851521568462525949843162114188350849856698848186922579266391376447803575406343176142654635919575299067823795810447584872651854263617787929099735665500470137314915436572500357532912121595238302248752044664841820233409705654841529425117092034230855622494634328460330997168024499383877642518544219146296512209375676697152159676382677785228668939914827230977624007818917975378771350858004449589439696591852502369524947561073012038272838448020061293732809071541888482992363390745874793010534771850435071594520569879289008051004053184821347895006335283158545472598817732859583857903891694960345005723744459724720607992785196204488248343211324505178735007329533339621777716335925074830234103337567622097689265691893837125054654621699558338899050739842436535022299895917474573955445164307301240772256585541458477801843960933096598663819767375814762428299171926929006999407806960555215274488445798417240072710591230083494867518737876283822517657792174188156391471339903166989593118615617586036400275228613295471518909581513115473111421590962539847694672380541596753203488455687520351311016372955505895879024569276720347836487915151105927427994486967062880204712946830390058270974648582388382574266449493854360592479826794537322162954924190398593258445528885715787943313968946855865683336850459530520861400370799660301647223399392802576469628742008268329738414607204598654121676935500957162677676521243991798841248713572380914004596210089396919673411096035597738692067098118683611527989381248269143435258313841675576106254728382356656076771694693333539988532243607626546433290218455936702546821747156891764745495715972907607702699229546598964523595694461792474358614317933241176599184951557636634026400480666159258952057083089774887048510725784600023161307765751867144254863301798198176640675129328306620649044552210896147928225148188372057240760152689223720286910480092724986742648684554057720440535796959000405375191481500536287837982228342566917295588867796982628369307008205358199074557804151194377572759340760370788356615143725530452879823846116517272516609624137468202473251341352732187830651894887721455202626808488554962606651094035251795249756207130320992317294964505823843273350736585958539110196236377151974876253655886205577903601885720901366855378945234945609366730075729182439463054241857640209413028743693858225582882954046136360895541116110333215572802143258853532893306523839660387114858190820840422943079989538330091737856518217775198944905924467359359458313998043760704807891876718254944598181642271459586207512248752037118167867987500492537369290067327741052412217601382210272826455856873791514548110934810983098499957405602833964561607848307592637617070407174030424578475466496948954114030604933301505872212267418808396510171510558845834560549882008035290466634229486166070195226295153892704908519773234992565680370275039581730004574300311818437140719145779508835282332665102888015789119307035795462289004845366634354040007537512949384538954435962093038035065060607314675050544438805912101963530906346113417008620771640039464142420121812162275142858188174841412173432621533942917991608274565294277790209283330041992389215719559841772585397088620352842520879959717763202126965901914113333257487232652692453979189646760002540208098179441747099018091612914552154906912601286508160439698537817588915276886315426793185658021955031535058380156788372996552669765668151461816164963921805822674001022812997453201271742909970783989673915145443848400424448085766901266235414539803199903688207775611135056995431256933998207125998431409906264514425851294247943673270091408717079344839763412092858856166015259855665832669381725512920599294406759946137452166549113772527452736012551858647139212945104468538354411693538228862772498637844639340541241125764659363046710481141843380480271464762392986425396714499198907831775406682844039563863769374694197452156557078578594064912516832058151227206776910122599211228008441948112394436376511766329340445202334851151838291073044392808770797694358867453134699110393505054373487240268499712856472369444127703328836047882646378861117670372007260137540623156011017047314066675654732941809374686953152447164325059027330060820429050995572931602925055395571320231877984707896284824701110872529688553676813204617025977980480742243149337836092984074368716336065557206444483109855443578495048042552987140885361951543523087342814724013474732896890634072682609571621536958448235228387188971050046973189343620845242977204458772217047480601380268556031688445290311278329461429870850362387495109743049732339987604726610573965135900800504281089167226387061588984024117996525833406904393580065595709866628740471371576347178360232137829490918075697359517759983807084908730335145969014369306682027506378204402233198480504047937728558121765861428145714038369176644285811679107604501328691857708389447145217127938417741721158828723263027839483198148802809359327068750379875749149884215078417909128879907904886445947131763911250322132114114347872760192499779877417708009647188768133418162610825981701483512531195307416309994062722007879459528142360734171552423334962898306531539212072773519386957876945198040989687829959298919438351622982941537713447211410447101881853359381704858547640365417270182785079203241060154020940577822012805189766825416102460713793630454475208861378690063353085958080590239697894376148920717184944941540182784496814561244829813306005673281914959092800205757639328660399357270491105123049219393868506271302740099494852225290895164799800820278995181785483924571749331789794190745924271480468733352812249639320847934741458376392561915015456140886735816061944029008078690216534801501699946813694607501878396203886903285326238642328383761039581511937190768177308920519111485895872244765628022994207279390649157499054820056933879331778839326408352496315004084506264092623142667213072538338006199902161751582241701426238844450177490663173455825770129363527656170890670569171533109642489270222208165431859316950929541707318954449036254421973984046898559482903350347493442101850446846568163197811258894594297038862250644132345741021857776087500608258119182182693354246935667397784428266569746372321475570689345559240025482470506276501538598127402860769187298211762840016304873124155526561217862008046777621698605932650510727127468596759609689584475823600620511405440567097561694804462533242272376722766160239907591386720517774238228856624749706636215913422068673054580208619252616309100383977198956051056259749494621479236672235217720890868657156487183647781827691759564824842575393176956289895553724000917705624679178279640967689403839416641040133916046845489328974671476821310413929988646424968706897198771063664174633958062397345357796320095143807366987993727186153002171611239789532887887774287255542568127018941217870246776022226430344847500427967807099304788132402724003891818165698552215033665939948557484152543127125337214153667243419609781653336743535690747704083679500355153640276386225671753495014993348613758940502307417517867951910887253415282958586630230724841840561338423528466625044217248228250053071462327102366649044177185410001015269686959165892231114306399979227915380149655309708257202197422159113988030534068055411699559450545692245508342428821666793080365938648911280849996201553219434702996273509320087695503819689283840439510456275247191072254636639848980053513470472265208041562867268361170353123138521687420567974697495178931178310022688863326556775211636899224542444458845541698641558463480171489472792808704645386062496496970584490771314000320857998697106758030276888295828427384765934539547700356295098720933743712086835965670750575682598881349658358997381204294419255862761471628261112253480525905469927711010620253849015352597378144645706506474764109121378813943880900372616953754355853785319944356913369317246648345376353145680971146834441715273793639927676686725048335513490948215146652633214456696267036326215266796493518027307534217776997305705453007185452814258536602887546830026309317953136811896243139503854103194381681303631652984457157510114649085017796641717405159147600519363593141368701109585051021146983469480084748842870418810988213380462752011557037869625392603456701979392803608237603198070236274346104771637811486786249116950856548210059426599055624577513595391332473233054815479073650772024075320001613777333919840298410733162283359518810698339225189665383839043926912779519066552320504659512538580943873765219255539515879464787579426427801494162890597208752258904543098712129814472940897981575933236374759304158062177160156988087293546774002106549090990542197875573777832550728381458235680138850917596721856968432820222584060151553825127862424498220399735541361316543077709371469901004024909687084574283358744551422003401814864515373470979436913942808590869299830665227129274003856715427513118133474877146580811809118099125308187869559410728645908436077044338453853858772956236209276070383540418124346225685849216533772527478406413205162203016033590074981139434980091067200499027679693432160537581844986180308592383163889899630227040054928260807036532398608766106821167207454776303826515942298913360050528564830700741044136610990490338475443934712202605699189864820969268733969411832628429184106942083759222390238796605383615890043402489590635146128152095601408546695688351963976316170053130326038312613550781230386167762527076666585423334814438938011257030470820100063876844998313873108889199504333635159592595239839636749518063471787651222410037502690227373389026589959822023740385372582808901834246229803085685186940530200779460984976813554907887863788083339472178479553666914618945805238919655108009841731693253461265251176304577821191123525374740053764036698797327669459471130392401862608216286918937878313353697383694994964797570313454559502889239210071204287255009347021068911323320259763985016668625791572584429134215753970317613225046253561035755530698374171261134998160766165768762057272402494385418189227258484426508214409652106485706453802670183125522230668740971673317326474251441230986129747519867220882227673427883447346145080079551600187142850408630496895451683200741084559969688085124468533667381609437433528390379285619793123673562800986390784019764373739062729847746842473839397453491558443988122935265766814561084582406203782774210249493043253816572310225367228327947671978414537220268984737198733028358056993644914824399610367430767405835080400459377390021960336211250568956896136132577212715042648853948473339159509372057043995785145592058410045455597714581676910783415652402121939809460355979106305527888408753797599545278469915630541107472053880928215932026859365985338125477971611668019113822178274498644526583669693652769993595948578707943372143819445786947688552578191575745941447273057044782671304066931909123815678136592855910949819043655401864071204752661604545542763973456186049943810198292206643806675074555706964489057321468237797341195395963510946644775635235682006234028417633096725196727853497822271150014252275451001749337021463774408491698127870960685533429618732745151741352365994557553666361751277675039163529758825087317471029636346077853698173341434465464557451851230336245137016064150006018291992978381752083197257490665621414213406241847262996489944752712147678074249641662265662286828537023991738372922549504629603608723387818946963668568645957804651898783700936392463715381758302387587671225773382151526685245604160380072017111728121855703946189692588031447234941659277537681532343063966436675513664061499727516094547418151632218353229875046203096852304380032056664407407511250754825963708226437987209656400230721530522319259875395756000746515514192991889595646690841030012754814483122128167240536119125710664766421344287174848144027515707989319758561992224556369835000917047054814933206023405428273610106712052193084838865924337705224260836293072147700463218596072067014414886821979626802191131716129630402398277379240575428807409534904729503778041200583684186607036796399615394833888379486123173084095966863594986887848745574331398914117780061406590893449247150454462098798382313785430342453022288432462166765027215239738285905644189983754186340466446525526238784673151513045016360011751370190096506930027875013410835050634228270798454327137099650704568885497149238437829150942994986757601132088510762260210448180425117112340080686842806893634594554072471184436805878417765807148159771672897480597475704784033066320673973935793727871485780401531804366859347081071806387017343985718839501111256363108662933831257419725444249356335276696663091280668177947360501263326492162046205749911930888067317420146487682701040092897065708222779346299062612962443206030030552146147111293050693252951346608599341400940578103337884583075782085139480848762158537191827939173136683036429578878473930154241570906435402134933921525182225400883528888688759062495507078926482086826600371570512285004770784985778784005085506911172050076571711049534606673342279733816810992097283740816042700152258419638956266870201538128822010367484036156612422349373228923743475642911132551024460731916929395935769401566136416099861638432878458269313758795435347744708400754527799491631343935401071803744576736082562879003677325604688679662335626010519134114174663790943724291865152488109347239751697379281234846467567629513737565329396714922203793173449446697267808874693183692572127852705587930046384704327673644201545559580651649053325954291717804982915002040000240540801906969620936893634968598566573298255924768336787637870636005233566033878105138706250597084915392821059503863281978575099892511391635781040519515446178376993758976226699224675947515714371071840988993805173437475806081248245192099178283559677361749663115686470091049099883719390779410590376792021778997584480548301912544569825854859096149320376863259201052506704905598543655312373891349344440303768093364767965999023190086512533403616698480613704489280949822089538250757788951375206716849932044347581787783182833067528825954372298473560744728560439051195604054143688745852624741632737679450626198304454405525164510054067321549570978990927041130806753432485518014230165163259120983118278156038732755408222351609679428557702991093021279994312694728210496923472091891565038311844642308913825388645071151747037122495363272555699771517431745064102512108710295705489380220947128167532973710179042749184527422982153457980834335887288063275142141654287515712808889045697408688997988328576733750872858237008253600645664745133654987555744634565787890945137085165824530113362922283204955293777449991972435016048064094442147945324550648385841723573913704124215985208043826774359158286471000794249219332623877957348182017632433422570557363593184162317331227409091934022565037682384971876743637091666571129092495934270934722791310549401548081578258753769610888943591840427187688905141655390291475908254568487407128343916113989833306409539998562983641712807735648058735229970811363372175218607868010484792707825401868892037525283211556944170312186422642462635438989255510529414694049780840779587820372918399911536053238618066665167702131831787668537828773859334310180024306632480109115085873904002477463836200351451337473752454779529634431786956289506292764888217916249308605624205015113893348472809683705111726730390568918213776066838943838191807988698208492272705187810348027816286566776039362156816323126096824979717531365288639128773750897389266407003949167896452827062865279830712481323379371417880532637932714460294010416824839722557698901334386986535205315148248894791184004371335770984065934910185536426151071807695173768252597188546950398586733899880225882022386624805592243776376584010549379294938835425923607418401321902294506447228732927703929974214530344422213110760283287379743832130511805882228407427577457587309866925003645741367225168392831205787410682677763422736237350849133282751210295219842288319522089101900028379912526311453479740199850579400761442520981691224468044953269350349504390490262588830056972058887050768494964034618630057977923521262495442705959330952372034965243342072958744950582040297267508999621376360450882094303096448767281162250848230510467664651420554676170703331061421866735516410329823734162350393638484516337188203028987875918654379752540499301039111036717117867872245714443812257057546209043173078712162338245888262149763960848630914046696470785292057058694091681104014160825942456751378690394283315583145605221136112206297495913534610133806624947167499400352438984049701327033296471626047591605582286506842437100913555759733305790983588800791843308624414121163877282999932799490782412309757293658041942939700505830867098813415452432287767886519158886296022636523866156879262973172929537435031686166024009978752059162990842022400474280190818731930407301876786004065292689610202780587018815153507883314966567081453965392547603744290520521779070313044398167735824407002337566777394592595554752297228374893824219020123582259977507770369202622994875652647088563411592179196899888465697394940390788317876712033231034842725127707725967093916560115778786774097362948504818491053085840206116953718014281826879286343268721145289274281266494082399057257641452748130550347891972800594051647262880465907983899968294161531032314488095035747509819632865983798779830238636066460718370127541071627158585683673364933501735731526838590247298919157142821629319213695668808564099809134046404765055400822479328340724415283601032690200171188301713459120258613723178264771596993634042531161561675868298968863117477391458607520873285118616307775565134987814487230862409019298033512739131130413043235730739928226321392246971375429734751785347699441777800691115891821564200711619901348038253457507444535393987180928388140084534379382386357270721585577159263524478774510588337123580744922451975702179167804828813466924789286535666082632919737506357710950381569625172416180834834223135771696959559675056367047339487201414672204818729407605047765973439719538024835564567082230728069277609347029172908257444002662759140169186246827795912708273172749547560834720942527000951439096366241588841615549974472214804354456793709068911576644546878539981033543674319520821199234132325815493335052909469216941812365673656876603898228840756739951749127191911643466062665520854646294655033180802274623336859086333037705959380451286148970187861951501505376431089795649513677822146085519617738356239390143395927964590212693635656954802805851845276490625377538689606377134816918295343988505622407657129418630580611175049063015999960237886216370764033268402044125415464025904231244806649415428441553181751429030773586778916519766335771886160642029854821841587059615766372841733329483769537163658257595686112651473130469935137482189794473570826191553590185328137050151889883042592255603089141570219067458375778342159193517104747371436220650117281262457387876134469015467120790653713538756574263961124439347975592814431874155670698250897775737311570974133995165818246614666168168180649294377153277903583661651779174844664571903412442008893692251571666119349533210412337674833736686879480872955665301845413428189273982580299153526528554383763846064749896722721669155643187405080404542952373920155343905418073185342947706691757663199989839343476927367916754774072284701389206783894565365476552621633452726629786969492532127299119829987669443708262025657995524426169848177595531944779916303945372703063850448950345484457472169721226259945582881429216235037595830775684693351028567442756123284981745248762978990649747895284239965308876804242247062000292345910112986860988961320862697932959843156075005155619111460564556300849203636996689192980744787135181121386215315817359741568224170445085159305747650263847699285134988628203024818808033421385999913457077929916763089097473309605439665635633316637485055172412530914214687107356769631741422269245960750861629604403178535050965853275240952774936296846129538289232009134887393093802298834592858219170962570231609540727534294451118375908443836377619534918895132373994608628373577917499752557731718767118896207317222114695351784261788242927493104249726534236899383986411242572094494733268406783762700707952939107952761911068152963870081276596879005390521483605606910214406850694753375514810764763174764304183372949796612635339171324377590205667980329327380894565659748521003707489978892196379040950861599436716721217580055854851614050477277278238845415007611475756579455434083989183014730751269855782490610574977016007332072256734686557450191178995392247277294878169756801706714793093329830417897498359403493099774045129287494115688934252705071364902570415404693900130661740815683413594830987706718860471027048516272857993781254573340286359957252603467593111198145220390928347540618999207259527556500734408288793273705696239162275084989297274003902861515839070820577109804060034971280430337460802996487397807513164823235172224202524763676481549629329066364243913844317424380131577515890633416762641883231195348953916401244451586302126832877959409181700278242655476291615362697756463626163802965450710255040025769972719850522133995231646508552692233912068146240880892167011978451729063359256359916194633921502585723775973267415806099653645835528088313491011021651886696549402538729933204799511008886654727587139038541434049088892228478584326307276893928452075003381860192864569090375376665311382704464648711188435651947920146077466262703882244057925098983325517535507468211423030413725098933820164345987433460747142855869669181786201234164913958368760209712206267250576057567564717428442220309513628472712076370002175133579642928445295245651798899586321825984522603560635550595924170931681139684148346458010176445935688533246749816724076569274787976425508160170288461460177107659827430729735991829777591715532790052391908062184295084344782642394491412451195057207279246967227343159672936160841038115204241204348224174154540018144948381634012417160265241716600975613861723456091487554306731240495324441039634709721288581463146249040717630728853405653424066590269457262467011432244652941078412651059506111144449488756676084290722382087258294446281516676175053524426416444900992560814653853073235957842118617272425795433048890171475608709147592013185385903031877706421415928350288960675109812081296986197951361665472790171617050201150511343455311423119344245311657605176347180107578456385021631900772440118363170418501072681983856340459137116684281651649241734672855934316517086193007964001254399952432896588213893083373796542934829568308318483454031388109660219568943709798827130326358795868693462425986314234184061658431597294233825928815696962415204536091482467466659605137652631899266349735182918099767919040774684710260077011481667326338795684304108080271824570627688904860976590161693601628998510735766669153450415164067684153671224072179453104726543873506757723226239947288528044205969712817017635606783544019047292386372805911307852232345463384633060470048540440406368164444893319941419387765136766234277951621657399108960954981892107828170386971811783651595039550957677384986232122662460613133621505566289358366463401927617739603571734089895504532258256941415108200890542090360189200857021073418765794787998698962849614456283534273222970907776896476844348596530474658580178219345055331880176649353671266098217550726799155512421443198865356418264633450614719674322009515401794619769085566373181202122692997855245438861649371194944280827091204237986528456792012776755679406721053724895578395758825944813138586453118873369024059079742195174398084793968628354912268661377383734668068896516090996375353119135190311948457084687037799992379764082033494957285649129705511019208383801969680764898509216871615596672744105696008146431942556557831373165410506730299055123581143341555857496523058378651976474339393342202865572924240253452571977094963481418663287849071397978022539541342584130702146290811090635966146525945496756617716387834324592066907279959155465997690944425673856109739672020271002940942087206919565941527493703325796345671248012924314916203408514677533449327941352564236012182688561291254810671371088316864069806678528652713061432394436573598105619998780271263490339151384570681197636944568712582851728077940990509563296392112845655298638226941094087773056886662307674215736161556631682379089371303072863305149491785670499189115352537267821170381632105447315295471022200752698690775012141866796547105601022860685115113918812951280438851869040370469064218922033921570717632857631823078476144191424852711762263520149203726187618869658726280685227434518910887983607437417036906959613619406713344739289888175487241188679551218719980712767623212734156310359820737022399193441695367583714160501455367534799304153928459752396671151740369840291926559276427677334978787455115208742769036477395500272317034579312533752499505140480640847647661586161617864476920473146296593635106305220413563436185287653207109921256277586376271832014945964179165921686053359781823221979333560858341914198509039581308436576796653455347213530397826878730371008176291887402332888790935188421841777317777557284909220827195286948966363649377173187704603685187419255751869577279621368327284296094159669743688692736001810985819052394272176889578400737660597831862644140179440099400856512377808384420769597363110187617215142938520959138168866340562205654682037702373303802537090814811282660017211075520520185039681911793890802766644489776542860812208347601473015868403511997681150286532959011206087356992739922572608626097281126233197121764880810044591671597644812145088155186520584880133335508133845249742176816001200145383109737327634287004466265651322082269366483741709102151256307273081367575483235370412621384855353433360123873238414959867351876003431114873693500181298153270911799298864841457278175166474885576062074351649128506162325764361216781385633290048758624261390105713052967724480411345893058138770849868038147005384410968224368211077465141316226411758401962136865715517623467786670773371286992719105482472413172212101718546274274747179736891686896201162228928075255915409456420142497399151574335995780649658532095731962775024797277668206569842830425679783178983623901557222460997369965794937918979727935759449487940304036090408463459574882126191876877983132776885614667081253314009270818213787344429949360741233462606929514245247668677720806103846423421931401318026818662971499102158533768472187061861921819767897450935380600860333945568351782788249341614699309849865866259650804326833230782928148878462531400343414804614006336528994495060437468675893674790078182637268689327086703287667764178752987532696148474908505022692192328550271749827446029897380118305865424851863193001770855708131789822221366449739740399574871389099449000138274482326593176833627268329159515859647011656334836002021273156682082667833367710559804395731314924649535187857367514962578970718660539383952187024839314076098271061581437898472916434977799027249439113174986514371259626194650849901447250026438517821977298784041057243999476749155297809629810870590441696670371146201267484906323214085179168266230395900697928438977583802431968069825164121414391600584433978285002620061914858835350729526846050614061150273109881154956410965119345839930048425731888848676925017961152443336751834628294803776055978753714610357630683237837758849272185750564443471879548289310491020336022969678393167090291132230671770870859641554499195599904588110303666252148285871607725370848047856006958041161613483643254167133739849771125917280810896288993299333214796282847735939466795105646454691118779666854200236406550627755681332966558398230601206368819526834663833615450607995290731838032933153656215523463818790055375353108513287156896946565345340556231567362385705067714555962328333857724866848769483216722679459041783229657325189551629278138832312846400273631489831500816289229129486127215601124021539099156919362898051435926719129434570626381803695209531350465146733439379079261529519231137528108787955013388311150930784018700332370168468384159305508453377927524870540670781192573596725715560454118835586746932404016252265606383359096748874389229360204752627021648989452864293023822218533635757384735555134717076956879703489287441139783311135859744943368704989072498762150912173545971515254287890666333375514096472850155620743497542456848110149358188516690659619168414686466168697872421501622366841439582426312246983315792954164332786642095784143580701539050642531559653229294955555394153455408027817822342848181168868994137139792086896039992565549180733041902119529395497140739617948175070008706075709183009830463995200833893435201661324522600056637734567377160890416323757457411423300009358257483169756742482344765250929544695357105950859390375752610602112151894957079792289660588710413016195736835894024707476224397726694172002390110215230269193157769976130901673940266429990279045337039833292590164757162316380740091383058780105130397223147437745920785755996632374426172733256375181164314547528448002171005477570194255706025880513050129486091952283753932589300480167644074557022383892372573247627372333365627640469381568694170413132377850528699014835517341393365695053118666317385147760500114682820014027589507192376847685009010510039432119139245179924232475923940662253419169855912931257016359222743380298130428317077508341313416176155053696847199797480235607049257506077059872162915351407058134242451645976288107835927267029548286856998355038774545741843899536635432711984510026764197831229427935650767043825263812553452448754019098721312540863177445917678684808212055341867846958047236858620750094821446775724095593619067820833323315858677902155247372821647222784137397589039273809907636935132189111402915563374897583460217013896647929949888844690375276391001395898065721897456396810801368335650813242221740316804421296813931587275648709656823692814120476062020499911809046370622523202246911894224947137670922181962385363450158591436355148757215876928019333195911526536037826420604299168786957874934812405971741272674800625669922992364364388102909826050247071035467680572347382058389300275396525197389772161462519225493491164752268953481889426124711613307785964245352032893887845045178551258826234458546523176163875504381955964182732593902746071823101712090643586804045899714198885825926028491388333163637209198304169677113934928624942119454631434234820389568936918222011797657161832768450702585187788677006210723744668743191361836703554456151904229658116802594747807432780114342388713375751697177985683598418388143651928705977914998690535365009441711362935920060178322206776340655277435203885689237243028470641424050907942014807897214416920633641714973607585502676052971413048134534813830660560820533854908349688164234767398196251791617822049025911482110979923714186172014706654921838501809272251088014583389503832182944498101882923129159487737450468046190500266774380544425290850105326686680522741272539149168667685524386374773328712090858300505495005801619015201015956140615013065285342749432509970556974395548038741063582702322751245203515121712128396729980385204917885696539599870248843699981411730535923459754632020122688198472316680136645630567844989362732417171685537382303185043754319126672632366428019880985650156109024794062460783964559148664303858674998048497766759362216962386937969952491964350808364236838395310506571408538569327919660576853157593759604862395824840734690472093725741555286003445581221931828813806135865409539314471050086117228325429316364019518412656595639703433739754405088870178308376118661282253564578113588195511929859572870108340850838549052033997557236916372411215043140558159728112338906189089974452313453153756296212807880232800479986409282213810617579611992686148432567936668734188590237786130079778787881088310720177590243709449132877804187882256775072338306150014070495997644673695483985516411174855010050589702965802682294438390842382588180685800281087700910813245705913634382757230623066543919393386992896080263047412589694261272775048562166317060432373820083153060734260677676858680539743246418474397698046864775723878882247890206352635091416300164994460182369813888009809184596127068172281115119050599896996622474373650018637617520615731630901995959193082690460275523775209112701246899780536784624675390855811360886795116626823479882771566354874741838931966845186093415777258935262500218320284756243944256129194157338458490305086962892134861585297404386438460172548223703292242431028313148920508127762442789300453767433614692883620790039012224275968236962079243155998283042070180154883289875927076134282340189476607341187787197578628616152269518236547188360932895788528947250785931284917764883075272023620745907961675262928887076726435225600090004930113067660865945155173105026583493191707300469989498236609568448475968422471055975589921803778636134314701532777809776626232140670550545048703666628922282938368877345227454834228723996457700153222107759302309393415256275967843068750386422336559928107675855582619168425778207139334688819083208809102802831770026139652144998236765912827140542610101315183978132494379855557696478635699251969708476725772248598881250541159328796362390357469222745262180747654543119590073194441355963245682780432072448298650602872364260025638066568378545881234636308382624711068756243089078745425687187618795623885938011551565131694704646100065328689836789116731507602879250796243635293770005601895302406823361395249200955581942974457621159289321554205763399035016397259226940252241418674494101295365055580663911660944408814265191451182498928149952775164506500368755286127352973719813855066709053175808906471402842449905532054245724827596595002272824738902093403479025791602854565205178952899609743667498713588618476949299270259957867015196631628387225469027390897280157110727362893765094159422813377898272016714414989291851314711279435490679064619685261269149123616828980458794795402952409986258038789536842784056978465488838543761810484154965463734620977721573965850021865984818515018290273297987773622033276013477682290815361719065101395710807743604863090389105774031071593871077558522586073755636347536954424709614239730429807076980753180716654917056083602441697035890957806477353365258089262369360726973769723087776590344775120708790307852369949401026207563445003357750525537856554207275749216185618217706948531422637529434614217511531638785133937989378397051847410438689196667509151037588552660680508496383561909500174997461523946433833418284122003129672753836620188537814471882059308640814906219862810251318578842735963847394536998677716086122784623630393420842120732043882357590882486577947235060942135171680558479892953187389092175660993320016055736246796782750848998911944436632618407005299959521951055639685387004366343975651728466063902622941443499304405676581226632503482124385306557076769856493180741686720900801133844778617773765701227414836401669795342594045573253838978765775477962055503149681571027345112171566724232560350145833694214897560631521567886639350678964020731519514506165466944738121278750418012337193656201600533821275736462813759157816989492669055012560135328806478168164545720683158359974615573909508792313264559612207206814450236587303105082073491963071277376865283862949608263256997491338973101320387213261332843815489826027816717022285982031084066836619574430574789176778151575485985737565464686053466639947312622474413533117989952477496374497336729272770127557125549519553472852064936875823384459904166361652391708632215573017313525745247340994621274127931298552647464090532849200378636877174414502483184068595675471277367048419525733954209608746839671246785147685915265288248070392708787411736663709692239132066652207248330295966162329481892423741190557434341160477453457933530134876711158720444465788721838285494470145437136082695214545330472054751035462700753406311669070220237427698647651322410530669743908058845663548713780734677020730691527914324269084405069852715981720280473116895422237838014948053228351129568329903432901930919713369387221076023023666385531231008984702030031370666885188936843489284776140082884665343128536190181391853142879705934954291196656063639527302207833831114211527236477555148048193734545539022530989082573731334248849855801769380889928095686307696874134963614816151444435028173253640622369903630292208820889096777078268186808270196501390462407295125144320203270920173982806032879900590049028738063122982532532345474306679337739831717277565885502909627612252270069734421449749197804732086878031486078848177715210651424991082771826433253212103934225455484795701539265542341205528596992745869981357051273492203111346998201641369206198320864224963186925134600136633819285735242368755249757559635656359057658156839280969036862906551704268866838527873127035552744274149959505003592863604826923314775409041479247321811635147211893430667241834356879486741570402797316928130903802015853425670843928166171558940440581445302588466406303206632112941569688328694884455132214221812124084773136630114744767416677212603512420735000037079347912159256766831249534514094590405843440910334411666381983750935174662269236180662419888583842045406947240946535269701267565550287345926772553875551471269503671409266056344802643664109580624817459298237702788536615134026173809584538912372658453147134049704150463358607387893353373485451947833338559572556764812829641462852938368882664869594949187912146870091203286764649008200944278061591029315536479138074192475505113803164963164685055074385701410320210710378142390557437010767132181866271323393712583275632922633018776057756534613156406473868906353216862453986507095766929477687863828913006732980439657837390237956952189318423903285671671098924072905226950184416531963111894572496854518840096164737033366292449983746657532402957249439919474467459838851221803779120185386331099389023551251642592583625680845238187642231912311950091549945653004022428532191542447228939820950618756526547852999223207593191616724508285647197762854429661963699811664468442975682675530216559381478781977124301941823904941696902621052165294081012262004240431984165829143673173878699909659373103565696332420709335820126871740586498912297748125229595172304520598635296423246151047559608706255705696415468485071056992746657199461094881525278187535475571265668798108152902774709786023886576545874601857283465901415256360396543244025238633517053934513179109715813499082694547703222901655862422589083041279060782810104568509428444041399893378043368146189999177628289127977180355176940109270341885613642833541548120853365924396304550800581608145005440837453748914081167454537443208060604554804284510359215820937563801814761927136074086296626333978567953786020238709212930122409549776927974913868763951218348066391750348445965483170024652030541602150228615799488019577450720166317934630812475202693691813569064512993563407936202816087619613329245472249262581421878585591008784461242412153639579486983681591177059005401044178322035022809913241836007048398096879281732477565193991232192234451132650947578795889857476090282020372373939576105906392565990625276476007737614253909583062611207499971279512031983987259459870377166501525985009219695947992548414554740347592043302959000100247511353008258944182843307060543167220667648732086871457001201158288150271240006262911354648729674078482810439640256979262249146488445764055390432029382024402141041166982726385720139579535977494898532762601856581533656617646421806386441484001853380738052540976149524626617642846160444060939343446787673995486050776207691681730163293851262716305397982249573185485192580803838233629696601624940324968095286668776702494004893104121810518071674284491581369284178984363715862229883455694779948771563449111013657118113284925394657892526643155241390828556566565998460176285403666479447686101006783040876507017780812567702593123069668757130055034890691784340184845192650880438369339538672495800058325159891313333105439856033484003585018898154205528121854097308223025185923015377123306175084304038640955995083315150620235790475643048847088562453169029919380546137125902453316561981490524523899222453193789539323933770617757666116221070171665241210673726273583306152381416921619767757544082161452940183408738964803833042602460985143168135628140991726431543461173856045428934250561609986306583880591700270308055708539187880328728984716996155294688652102719639027181512280524806925459710476563298876545292951364554339091719902224567884060648380716014029107413383633313422061375563626909969494393601126717991266438911956936276867497644731608498738689191720945255133951358529176591000498461739531461430236824463424378186126214943058326618494240494905579808762664357283548677176659906409466122854169298195182185591653235733984708840740759826474680959952290129494834030436215693075126617275682135603306380064463004648227601032891658289779637282082828403667192934960534272855817722121142778801623130313404892928853971177922461555226154975718025208954368634841950480562075069267513835506399000183504921478901614181622286470642872149718200034367063559309067151082343556417550618037776730026162479995958843597106920302994391737670368947140906755291595731200223929305731694877043380337835272264837055738007405648788684479557339010563430809248029818323745800583944820403108252474087197049139410987094244651221954347739537292089642349413213017727043949247189829589322608667346033029205219350029739952052057057167683548910119144455308845532220001987282763669560403673488948228299429660399547155152276973696378894580498014352949532953377723390602858980278131260350135136002115841268854486732997526524777794472153488870008770585406620875030301078546603491057048747104828688907824496879969258013302237190497982533011261465186774464863323971434621803343314039129763040204611550628595868348128365270740745531597178283918166130917723738076366131823554868702072046336480452316978155335558311418760284591456265781996805284363951846306241082616443267060529497280889996639361707746637799612363334633235367161549802484389514510616646168878917438001106073827811363511462593750272722540803855505323898000788883784215658088265835643887249901336362007128850686926242099340301133123077263897978014031636841345637276835094320215855063534505551078479393382640762983378617071571522628583672270860712669423951645853871089648354855153970555967400880951894242309406965578902992686582242544444214361021532308684743965294589995181800127537962235657359863261949697908631205460949342200459589742888352610352093135754080459102866440557601118005196030666385141072994799581290723371378068737420315524354205787192803753352810242266441653854140676834653943423423384184712635367841759183569637868706025415597015711182922237508219486444154981118983183979987410574205855624751455987311875820384663232866597239117290028331599487740702413640387589268409037784738592899618900581087229015160513198392898610199373977131397657413602109131156802463367334527116715773726938525573085843735977985704857626258554317285734006891027325726864450816663414503196357611111366222836841338328450147415836810361304693157009965837772743637877871264124096422608932405196648764032536729731139233230276407728083755902378958737946885852929933230866732299958677321539831101555557413267701553819557820934771685721938838058557161670669844988764777351922190185806473685904577939064106752595401240036255606417153955492984030666686967916073447991337177367823977406883452954041756177208470714763661661916044597996338256779233289431654011517558115307424879667823615421768527198323620163752680440085184499044916791453682773373196715466457144798041747595828758279366666062759202466231320641015326671377247506533805053882266432289756530418274228947584200524541493055437781665115892129590868063708072992828031552678706374494458896043135322623758360117027936346115886791212691270281930781510979153939719292656870112697390665067370687875682665755423425292846895896580860725390924163410808800368279029590617129750470989792407297533651579066663154141171480169432017500946654492938601817592051023767007060006535748678526856483482671301652300949729529615661435151634724714014617668280556785438821773471213032321550329399536138547037594685183767716988933788763695153446686268691215408457324401044557926587935367414147900622844924072066173676182787362784416358744571503181376386959528074950855957472694364827975701785283683818187068030384996224067675418880040758367124210351395601673427394372938502717934424073815834383505447057583521102067132971725683921470412453442596773720586072449490723756601795634711093216988314941244196478497270355178946432559522836482927631690568658702701571568521423262649128296936312973904708401962897152715595851904172340789152777713334768710630540122958827724456967839743130710477277986912056345890534573510069591531393969611815000799722870205314284160766627889701370168614576064125330075546577979084437387230785538634756466090318316072878841120316876377375900050194011549880973440700185531213973870619787554420562231763075129393404047378183174176791131415912979315475812721365312450136988925719114204530802266200545682571958929292265579371314079047678012897247827060719338429083560329109366225926890370312222062745289580445672299626087065282291919116157199138815997775520059691377048842670924902874442787042853454140283996974180363881445434967556091243011003897267600793814263369348973904814500684287671081198937742262476866645904808711003339949356896979360942916535417481453888395434840214246603864226089937829378334301180694643055194412526729031119303232919181288553559207607435597934809133476594962794474621228357527226630538505123444446152310932239189719281224173722230672628404667501801320012252770646725096583772488126224197417750002849204031589554878613575416923066443858490549784314513686521547219725556328197040346346495730712817011193839730252877407283621765651366688025632846722974978378506057513594746305637848098329267830562791030958968315444770973100793174330598789213712051893516801887449881360773087214239880361253267773610911255293222733328107361700936010481998363990805463725228567752461147553789376113303403707189476778361487405950481235470477062948766340690831121255143805214646143947784611963469282606522571463776004550077225376150998519265583880838707022681293546526967405880875048015670046104858103518298565681481054560213395304694714392725143596328536975458964798006968960484242133266374815640008564703559970440366028293507474608741867154521762516291951269712568524999990681812094368834431761249545380947284639644328873212392420362194636942455601114197456142677049326407383743085572022762084575209553311712757427829052841546561367891434760322249522780336465016143185613755274364866107146736173308673737331813625431326632963248778258026176279837091314578086123298140393441208167139828117915503977995940935067843412051330576214068952181542509508580112879281647262453974603628356364354957643647892119262386182890470319355234837425887621177999775759692857282247995165189110515004916040327761220108808980781739577313236698384302784483135354700208474638338711600828414949833025158549205819181476643537302963588600353322881994603988559383556366913567083472569878789394701171999456766102972871083809484575189601613234016490690663815425845068351500245265668545503490721840525716306714073260765039902337477016574048004660340449271702307888813073155276936630226133194603945573826147945892792294214445768125669664952782306144775589970968937212076715319849499978274296267688909930973804611226320622652348814697171921755737611586668992997081401475741984351357754236009512667687733832338881723774347037629972444503559767368789588811857676191096353922705148453471893538973436708770807033922532584784733447235467895239716428483449653832598322800578569120236117649071699330369241900966288667756102574677119412989800913682545082528249442340809910035850881844898524917657458545402862661525705715965386957792918044330174071254160800152654650836975406269396195714725665564876173684110326611395023397193399376788638984275218914183323140867429714948293155511325263947131660178332787899197458916204860154745624731652628235190170472871543486878597608165271289054829540242836159165555128601726455635733545877095908207944077202434576957771820460744959155938233796838813662987877290225385903325261807097196794098667289517848185501605230664023947723367212780251379490070416836151512747652126022387182636767138365530910353222546250998663209069631949375694773362039689350937188710966750634048605129718126559626630267399855711009635518135366413935255506903923101887137607418547784096751535954812557017887595837564631506691153114682313165651566886383743803036386047512336611535585486397519753624744320377168390338923911684087906968428873326212027123967568704037089693433905372195618711283398545391891190513592877931047409218903211135747073324736157205744875318130233393994941841353454032485075193527632572599307498670128263825141507040856050978424753124433901233771289297727157764373590116590397420079068447471864261043576782117015895447686470458651541052684728875785978945696897333483648570177085466598975936540217133208103397812615042720980304379671209070054381326756574043948860907422703438841693593815821269963901704427113849333730873047454589074959832176272601169450119150252909348142448167904284644087122581154372979279731397592742665280549776240768288567678826444868080432222831966641270353765284105356413131862055435832451178019142200436020912888496245383935790377612337302759759789911120740702390326436956162817433024840621668903655366376587890590480192478544362042770384477894257899585779379909231072361048430281921493134331986542319916670391258627767322912069725357298334005877059273585036844468678430010236364525295159816169970558794602861814982253386755644155319935577675398130288702810679429029356150882468279498672388092554216721123157450721981915830206350913008864022288372648439214594552229880751866163848240701860389187464564587997551947253324511215306117747507077977744522737970735915447258802599516924931802160124394377482648289492072402846467700966731042264018915959205907902323853602296881150971830970753374005660268661991876578872410204912205888949823631473466659930679061313782058088457023117276220690816832992833834102501170969089253046777798775775522760502291883629178314123124702503240169129496727055545939394413531046778618247513684747075688944556104518853552219471828009277510610158404105547910561945939432556680806104678174155507121964699346991124374725678714509904595521609025260797525895708519476174017092385595953982464673628671049341644744126281452878653942068129489451060395472775101386469606672887649420314918732285893198744669730487911674193122991504836078820464786160863642929427283746372243546983182651763630450273323683019649149481490656257064856513979607209401469721749675615443742298753259432681759759834004416472180657452527573182857584437658371606890013043269425850074919119511930422858210241211755544395540444777964238872965929231320377621002172917550968371635461672324802932996644859213658362854527646676146221291846703389575055467300581428658315054549191296854465316798991539337806168576411840066553396050146198364337578750721533256989401058848785449933579761717951768558592501272851369349838166162355931504549571347521360148945468281167627848847011793955337132044900208875891114399983377884435963353246078907933247352234555864179137142451478021436211395455011062057250265949866136024582015433457388738663964016364734387999264160452657541568077222251096103413712354049259490123463601311041078615835514536514507037610702104160045923448061675779345909120546076953814343871662573258057388347224977911918944087270089597175666628306232710197187910158286245678079763444959247088605166481919893218664720755111428809781769653536759017771117729827298400543722373940176443600761694051115271382509231225605383521283487365424021526909634939603892997664631086633194271987618641082418514029969636527460779085102440200159658829093475591272789272626017446677863411997868159044563568848210932976010619561018677458491914307155070861522133009764947839083110731840993665826281483954923104796719743830855579166587084242107396687842152451241771728677452200720796243156174224395178754912746665495215419461518691271845253718280213103383135409619661064635534558051773593356730083924085312277804311513604236028460400309181826312599643224385337123538324662469353988267325407267689503510915856362830391416761847612571018414847182327329359416987450505984099290888246282742823128287834621800433998534103586385230646026216642995474733267124393168608986951669855068853326496375761711226237799448943893932657670933967118541646838518724514357646722022872198922482808475957198784160106661357954394870248948484153583947524506691119431966908778946106736341474058879354785199096061433284084801846467806571497596999408356860759668905071624040928755437600452695554558837912254284669487262393357375846041277684155667296014677506548288488039730997020362010312461569547351250289576136093277249825692935155362624511128753699351245273412133195775728917233307310401954583763037630610837245843331442164458335119582996588024956914536087149186344444057341762548390849266083245800578149086624968552118122876384926760606069034515191893945984671414127466708849237272245720100370510422867523175606174574330439640882271357038117285881801109578663360039535200159653369882255854235153910965270018906043085377874797784285650573882999340639008748193186936416714742485949167228640374183716618467084551706973358542650364470297580887259414785984097967799039406531770860340972126015289261477449271162403609544877235697983180140043452866363468480016612375797225666085448413627895772666961887827492160370842528398885047767832477401521732776333211055025577665327092616578721739498335009559222899071725617009090164171357928219751765475561812898587996715988786448141609293664164618717076629374523960859273070868488041360391116740499107294460624738565721840217746723838120514332557418151768568733158337337568543864923051247905422427020537997199190211040746281149276547198021124871981761800367508783497932054881349538225461357773869985633534000327824495092196845922177675314103414788541947532617552441312203409863886212588839515205315068677384511234766536149658002899594759624788624376389909476263722048766198290873553135795891218045759128532933634728179063190825029512263438694467569188449064738740301875877909133509885693185826551034493842967770359259049766061711873166734542242952645588431227340234490857584433790656476626559133119552569824516907338438627919646345340201320929877794445251539922659007178277442107523992822931998331939430580856338531248329918970912887237926730889147185334882388157455711674842997661557665007957727131610563940351366605673081248505469304729812006472723760034606427774160050895663716842786155212148946985743889159999675509021044446926280770140048199525021908806557213716787377125729485001529446902212812598468964524144483883253603495843224321708256570589799455332221741842422821088480636524611325413883702842697813027237850191915535127463516571395335205378568626003621745701125444643099918027003694678602097340318713912501124263748805497875122051487135156292426562676490860263780600685832601468458918069369553442160627083615811376530816049783330462753809680999230886338393495529522127023284779686656820987302257202044769363213907572669400550629962948945138560163991941225840128875817350819300971661071811621073830503765951550533865479202441285887958891750601431416000938004983047931548105483557789496025582984349954676751306372228507297862588436754368399162317952833298985679276702804319796357160517853205438747417853747977912704041859337697317640899569953100766165079616052665502798311902737447850662476739467641103633177549587680053074324683159061183645380987915381888908419420235678806356152335293793251801786825160074220406557281344671485156802675640458705852503866160515280223325925767972075887119856554651528561130787848780889670402498110720385868777573240400556805763484353818203578772045742327709990529526788821414365823377531262111939924332158060877513357507959697065569987268769401472962684666314921697908580482604961686355480884610489365027079295601135228301091863983671349656847461448405408424834754037322629568414138791827179912283577245745482300865667038345282814735103634579455742476793627163815068423283019780655979615939061516246456613918436301752128853994163323389962901197083923965388642418408919794790573140115390875158046682662225132904660033659778654446523059264716817714882285389103911400571638080557555248510454548722655581846691313773871956502427011498980492333343747043045513576840519048664435105731710825804558312264752987538207018842188049253179875020742361712985974782912295679341953616955855878075535743145780661350799375144966063802612617805086756157481755207368891597971365891552987744822245787223657785691754262043227111755973535520095597259811145143423919077574784776882343718550849318158797272005848652477186933461631364885973467160950318672670511757247308999195272695451073186005324912373419911967819317341143474993484489124920927661571114714286770785808122208077530357193490871450409342310200163140238322391891270867433865155057161080383175863289528624584515703546699680904549841226630703408839157442147564349371159193262259788427700723044676335973127924724912376547621430090755157889608813431664755974428670132593192407264839065855200219452617404092915058571570156130669287253707941648680814568118548118576202990158833586806882560577339713759123471086336925069881240349014147943484742572942904562120702204785536096812458177668089958879083148228168279821981813207335735637486487355828064326848136932727830484714586479477854073485693369759100076557154554793373357463356284751382041397138843050578427754156672143090155001020687965196899737788842091468290764272900881899231090346625518799816665403676865560101831300912979835441932655729173288782038465357450172258751492497832874606544537261997150912633123279225174997522356529886596818117274017778904279249092997278422693380906310135667499377180568898194480174850273221049856145050193304640178928105522097001878187807972061774996187340494123566625715317342066266083188211729141554231272903378953493873897543676117808251702209751997909394769582347980921145353045832886255380440208431566101212881488910531639674419676578311940045825253805539930486502159755222974430397841166133452621518903905483387851446628078329264729088118405621411962725805836653802253869964625077632150032348545176368421326494206085196231453155049932437020857091822334352959192619392206051936310304493695847215089342627745484451144028772113631974171002842762177459916691381539906837574311314191996294278267888925408283109323859174161009787772152794982454140100072715476035572938958377759074534143319909603149209019688526402986897372552602966500719832134599051038655106628953790629556090334329587097674173560796100962069036807874390105461094208718898718328368391463119192394975654909526470616974613389537550251458155897416013941671688739246537029463271712093595563920310038841512318936396570646966118250124764118662579607716347541362497256698336555681479244496514089870775228081468001181666677466273137800684041439408113364515839537920911026295355499603503233315769566768030794731764709553057792372534325287832980795582053174776361841086798345840598272882816436457542354494405839120069036508047008129735732648233926435064515984354011262917157695070192641496640069451112526590240431189142612087602941108712399596191236379599388544252756236834168022752886603557637140018349339608360523621811279699329579183476583151749091589341065072826939178529863855337253401190593395499885065910926143473439424628272415630422255483900526537727586464108963746408569414359406012440028014948816501124823708575861710350746777294252674922716989369585138368593839156727084404658582665322575018822161518996647806188347984320933946457216641077189224579176750260873108052205001648217122526773022533072334190986970414282288985747422509745444887977166048128365037774495337611911953165097725546037265734288197425462331537940463053640818972827066358814573262230773324443426999648345899977282754771869355560986309204926309117442611716079180442208800707727717089035286600769433402568242707374805475560160509095642669530994433009674254518676677835420452225974120250251474761484754027071568815783906281202508796438358994789563593421193263205106217874395949629298100900032168160919417058618068938516168030828417686640188010070165688664457164104404088440716740116334153730582074724709426160366917513678441784282197767505845815328363114051925485041058352617880150596871681648354217005873725437915315716694562408363485574405033139485222470520968436427163413871142576968128375255884026690617062916027518556252035991202651134154359037344912058626447975260958933609299018353183049847068865294126625166274052496125652275982166268991992245653004871430601211883254907441972493293171384026649346464977987304755595348314447400230714502725148850956805326250159773848199725528531983165884277071198931312675126822260527007820235220754104476220148386192570232575428282479626251242284284624535000193132622496219630520938675189895217778967680644585642178469876098244739623888503624177641612050824231615822193045158635156497442184353395978462456261331449169470044149566670902196652766906574182619596723547969284313816826821795222557322894698399247106527744960266031036235374398484662546837112023664173238291955577404205551992329052965946716005480073029324256925492419398288662138496636081465818130807587609922005801778218032226193015042896814198203489020986087666202232753098834184651726254026045768340299404513573982254640014889862978746114356729880458215543632717628287905144644515229235490407009732135031674732132826260240908198856307994512622477290126725101845817760509434944830629592443170427435289539299410155020333338218367715655256070351470502566273631819193640991020525077623302238252548189088085446966802778915778127913136139904620157542117639046039991952445743047395805159848954534407339302809605694379407978912133599214971044161631909800180441311470745269278223097195518981149337402808618421577614377137498436917965433865760018088877599463742361013281407294550645339196273104365518233206602697926934527471463342680698611157263490465103595241927696801377109439592381015427005112808104060822560186719166693075679593267653676089971662286873116151132833637374717155906258679880557064982794582505109086254897687063971331284451653538631062091865450279575616485049708795367452571606138288104717208433265721462487806386271215978580051527352775325569886008377241715446301500964378847801021221759843454898126058454434846569743547724216252358838748597156342477269422490163509524059974634061244087050942406673606517584920893164670374836308513050137733780935066898080756488547036080327875347238665736630829893810193990202402134915604473199362948894108082201256144021160579936507086474652447411417291719330052839009896084097891900843023312857395349762787301412103035072454978607101975996931899535515629550583655455587013610117194144394000640815260069341149826878119037321227995452638006012699890279074984195275361743497876636090157486699020532911272135274576412787243751226300314547983835445459702258901495869976605315964832320959908942651940724188448157766970170756724018527408180627194323201050712008313735872566432201015979059539439076278331528998395140218079541750456580693310529355468765340189733696615042727199720753773852461168063425355561728080410375687771210746750744242184511800815605014824244066443346549507609622714721817093538543437908949263903403307718273781317090042734177204064517902784638350738544913998029607265441601557822540270698513273200401003540757075909262973984403910937725342553368547772466386456115113138072931872268362310516864445618147417269542478132021480373241813050323779470290403407989296920905210729321160301299336297480833942709852545094426749286244519379876191510015250950337684258366028344265673315468057076716103827095005974580169303490962736584853096871758548460351007286250325080752110051745557126062205687361906303896210462070678910895722751235903700190334008625518906497064461814102020569319361314621125041426034488721113409952510211994774314102753644401706791600407816046337764300791597335333444779986623989898111011756165700554859102080377275896331496293280891601255959959847589975883961566121351233982598262953013584700110602228628099554411580375240898811544278878029861291508586664115844527701714430279406271354167269443335103249536876822739086472238914499359330410997828647744458766513780452307426962731946108225905493749742030357605803773210905699458355857906572935129441632886054727738701107218497384704146150146038566807551805098105410288578776495683361910967232532759961619669886628888007546755462112370066445707130610729547181317286051244473567670430064041992896372395189399661059551040727297944692111660967890787003429068143318940977938849303629082130396533294741860884300561778101480635664133954575295130906353068169964531985712000101979825656268426892804661536802937701633099421141150677558089541352861626930131497545134821435104392987937888985473342222813053195231705959321364603414500405322890534023803979015001848647446823195318890166806668814443961512530173903785763851556838847677448504231700097363187326863488621281276120231255875940338094272504063479396701050543750468725567923473956991712366812545889732791441819232792556601760894972925795587083776647792997145588125097754219160745185003002215306664352042998357171483186598954704706502351956392970520286311256166648384546585454757496241749236299892580516763638662838566886885745783375860772029581663350437080887194696640067661516027583740511756380089951224891631977491177496920428486316731225591875321167369767248294752005721021093615134473815011790074453610987732761604665408374568081625125695485078374422267161132952310195740370261187069236933837893540899548026004788981768951051063086442746096489099908895010584314963664375536356776903430304664847544769022398252360593955567259264199078747462231604116446762103937517635599885345215318177859939920594746990439658251164337039672288512446362242572344209864714681387651796633317616488272691428731207380971187626049628662266163000224132276937877478422457336537035069912904330065213472535898687085567842886181969643073336605033495867361680681584310080353112590862149350172049053784204463576402424472798024307735289618841376995167244279771327480060055644475528953318436187980330709224134359854517096996215708756098185655328448085296103893241653792627588900770463405096649824633092945899182370452272815762967373821666889268309898750402149486821211954887664389195939857587861091637315637605735560091072780934817521515163508278360834960785704914811657026523382555913516825857459744647944330335859372319300488085045832191499589641568704188081284691784393575729068514548666315906660334693804545984288090678644523057512222971875088617252048529590677733195821816288130134154311284379528086416548772601769759865643074299650742212458654569219510708122338832914270395026062248182680565230221038143598921050493715115071184354782339303992092123444819372542314536473052272497696969058160373944890518891914411263864012417780783918267506551583536564541000676578227142412506269830205775542844023334281033030232409799181004754417522336495162542777600962346452803381381125301791369241241378841514470720761100393221101584237828611955473309741560505506181013604702736989364243871343574602997818062595722044881478892561583060797944671821863097225708252426258823049874880074481345200255876943556050839032041334958463485540468564925379847142144937686060317162970636140088058058858267097833887338014253206895957536637622055162463143015812346530980464668709647359368194994716585503287672673031320256407378562034858670681107343128595460402081799251278994895972451956364005593671275097421214294533529077515557158196621383053212160321912642344256139780906591735657894220080493419126434622949125020591809239839685644553527100133915760883108234770532508588538407040807928989295762864208719073597007404533754660585691702521536880520590826079880947710203910175258616775923913764333020428305112994630447971004300940899961894253588293621684387873002966951629912779029477949147532144274326500356945035033444529369087002834205554978236240264084599018453494582270671460512540146134608310725178374348609277182658829179104213007928863732315168951117721483754871082058140812614987359389369381812225761434045709818665787752500068746023701426619774417254773537511781811092347019677547910926493022195830865447139384841878954215069068930030787861600593673412314326156256754716076155420557122674154467276675270980120764928150130279428216466802206218441947801805954533805218596432426378520894469792534482553175322117327148888532935602168363762495296254779482496904742478308953607869996078550917655690418364315068934243000968181893800327420931841429217985387714933351886856466018211284494192848820494843560321282689434485123107234437436400434728139837142274878856650204001858554418282149086380993976712418724584650567036898606891742153024442446113390592594080436597301930262182047049051413651937754306971613802533658917248815010882236132045786864542931216187216254864487530173877029514490527886214005854935130507080336562914501046523413309977119115538905008817902513532702290511949726455862457350101418565056549058857903207565220147262940781800364380023645405449717432423294090079621131366339242009338131716535228606079529681174697404050190582386660498795535950081348056317735776556706470828903798371827253551288351299349451430274640107605069834945730807500612962295754096640944636153110354361104557149203683483949172793668625587245732086439368917601908092241199748879867096372491691199641333652971982487222835511440927846051491706428244196112063300268670613510736592818039803224942147181259844874863448280830788526675421210475430621746840862803325534026048539866734073185607155607326910570727339670465713239802494104025894408351312458238106280333287420822676549164958063161028882237278744395141395571732199815794383651008235681996037867258012659972144933914338789041165755440559403154132228735991138278639819781802271342977507167291702828138352035485350291688179218434617034850305110544405164952865413214089012636523133155902143370121380732523633113350054142518006564468634911423531032608959163162279265403178652428917742425646196961830401783950276001263288328107082359387187616961217178572033894243994517502223450370060268381529103285842971616912761884792338064141190138347401709266794229242514619021389187979774537844646903130223493172647815691821726795781657223776870604578084188682878823369017326871201352457480983141260823885488445949319247346467658188711812907420342110535259432710894015202499319735978828889542039218503956226297138717957668832265914324122764799314412322047073882199670784606915771346195765555455610274871170361104941497506220674864857470869433866299559527348436855299386077839360598516931615180455835816524384703119511804789271380312441407503350144231895690225077493185801697373776167229773578379343412096531270723150783244949219826188078070477037334830478459438225321771008138831127006166146313127842835776711400649791280517188346700736414050792218730753014948317106521373271287166766696360872210730202035760170286439983290217290440458078340635169054701353285930249471673876119023492880992616163923824824041487265654477302590942066240266678488980243880880097168026034148358135355183885103664332695216460217054654391116626275385518063555349851175929362839315209402364978222951603571761103979566048318049112857264088803047640521795755713758684589603130834923841832139630523760142967429547041735197843569219920728931309194224262345452429974746782486894933808066191018644868842752619360089073564754523161816903264792761780283891744497345796949852595414732724501235871355166688410484947690959780538863222583970828940338252139404505187013829689825529430321676698004639463207145628638420558139217515310602955216515409273187456810366461323489539555080799929205905806989089300351573947598343566825778737102410857804057952747180684457547369418665133255605823307850201348599727413924644743426215730122241609212874854185411769688047715862597405201703442343246103085318146649336907996669335985209017248058859003409463205022150288136746756529307353162359707121970273119172336211762169880286331928851398795047178486759649294975705147475403810366899590433542799181995567298690431859077600264702912142219715143115065571761570584736905131637882562273549129431524104024055214659143875751474657457798128430796250528830007343068996917656095670637123942807155776141063754909148319633527906509586185124530982369571588079333847212502119983757846882181990680187636696974141316562895983614725241545315250052085582290273086039882846783896102610288485363292314711887122022952942299010325201267577511306099460356658013303916971877134269408265117293313555778215371505491050150116959280359950328345572865599583932765658337984166197873591473575230423043577431128077095194051716922841113388008086054114778752912288601993482182534376617187030570762967585042844624152060931256349579339455746974751113839390946630821265989502887700376927329765205554167984263755067690336037806185594910741626492204743832862346593920451958797706325644660091083619114557158435268086832051409781487818009748934535288390845759133100994525066131727531116728982536921638531918503457801337920006135086898132162992274969296528287033308497331212227511957143110951640906252875544372922650045935717821613354689856801059515994569868476069914835040849495948789806206437980489057882753652523283564417994748071992008409427156353626756016247812178977136781957850586690388776671661305358214670317820666889403186315087968099456957675025150288908858100147611310631906211106909511990265465389298958991723467830220643488299000924206454209401621431185948128782710299025730864123108642301843022515514650797582140265180414575230402565541202599379664771913565336260089667648980145402336869345441346504865494385000105820417526990530945478489010482544731399744840763487631114215435536316539669051326888644591415930636208610536997006744995328379430224112417092839336295346182429262883842348496422879261971722246198020365817990449314916835892034977430026252973529339222381127715363246825135752093513039439288642157832579134623997830061859916656594966196239962626297555731201456632089202927639307009779447283782002982900112429166466121622188985372497169505950807287581372295849198389978622556507433557965216762782586422535038049398113541821431988684340894116117496108258015000489491018954853737437245605771754683265723859094222865995461329189756945582261961052322585794406946471885486404597503394321758797083223407899742027362558067521666315474070027915870930367317805302744029726080382696361684622073226155361197013689125615496536452739464763560941605656337766697085721445825664763212770078221972233064034747933535267978236439353298177921771914088089755029574595691795697898485618076259615395367272652843751689559283655053171200638778493469608698106244550373981816611616449669284501606800517396437312473807658350501106243090162499831786474483951617248949337188697675773646506533912499422474742011751124388602037297977462799377803110599934208942831873709156035315524222568354877486685176505426979891942006580648467977294258873620638661199415118609162851290792046241502918134110616367436082763078852575774405950888154374447489991929681166312896506079534084127955573896222853235961765671107985791627100368979828298825662623225268786076145819439708558461413545501724000543713291381294079056657551604118642350163722348601457269304186949913816827756403420795852075747657857136220821114806869185088644958167444773726595100689891222939249903032195637533705104134661879371205594179508809492119169012560614704527444410744494223359695336596271324621316206684787484374062243481602134767773159877608102050785852696174781913807549635067667821197032980340706987980873808576440088419090530552240644876176314952214432234574183581251028614101283531412004258732891752975874846293770815995633373509018642667512830909271914595239668072850822087246513533930017097983552288202857136622837022775641157170738946765717564725094344814754324426320830786571642549172163364803183127515400988105005994568261988048858133012365955592563457984792354271846575576384905275745365968344278155203129925859804856579550840309108729125182238205211203984583681597953333798334468292331565992931300194906282468779194695184905953875826775492708277020217578791964402724263688828279573525818227008432963467740198828357435937371935498207129995941954156412550625164385209472309034764549125912346180181167303071508729891031698420708657227846965063768014046039510256070812329262116727342802101051419678172403461202858909622940175957572789825130569266267724223975702550917562027005409645629739872050118546008643697791473785235296015682831313450916121739757451342913419328850187140452802311132488480229706484831787760984372260746660819581666509582226416961066877320986282184474774900687724572465750814061093675749748499267287300075276341533084305481360223268946101728538790068700139862952903865467408445777931347246472951507646037108860243602698928372167429266991590154238779076323593064200539150837660352992979694383458973009060433910397461459166911803592575241504538773452725948232941309695437946297231826679302855433370731508753805557752968113281628491313560389837057168917300922995074979142720741447790833005392649863506425391615978048287643215923101672002727284242248745408579088253562313720942055194321408898109757765928053146185204248796032856710427520482799694988128660315858598773094881853671237994725611628849818066990927473438604403577271018923438784749852485625199444257601611899220707114362259694052188784152174655888277770003730691311849322044737140119724069069014893603790199454561604555317945280553055351823033685649704327803848255586313224954301147949964514491487758641655732930857647476227431692886520284979202721342527110728074515444744959387282054671636123870988388021524996146573155368368501793805423059848389435058626073253005345325132007915508973153846612473481489373757732480826182744139929787149903394624077382730530496036952445698927648643715585056478061024650344214422996243677223139368285450858178493266735549655513987052651185171785376178620090961831044659579649673390763710079612617075706882418090025663908825433018980194498082597568898317459159557988909162286924451259514712857242744884366556062085170933903317846338714105127473713220656247260949710238673264856523712134187293804685520725908721588994848521767652411766546672851525543102281610502112969566403883335850564332735857898236625647135577274432222791631163918220215428890946521931929016947843252734335393128010101567070292587144853565859021442756935435744644771803847974259087244670413137836617900374380800526986857878399254003475974864570495750565736089778725971355034706831840111013905577743672820040143260649013956952444002580542670746679060408560836733604504606125824295250690386473997476918384394306990796260275877986076701588545606124837330185993630603541635381399064858416640442545281468196318695813824623742548984125109818216523447099462266951389865769067751976755541076014804406477689441118554728248278490463852365864784361138524228504924392492608450131082852828714008202469352965905670509245281582332651455630353508532954755627338715954329934626011191652182033472744977777735077073692601467425785923066001564515047133373773783296234326160305615416220694870976572163345173191235941975418512102441819935107799650613090044876439515215105194777293037074490749619758074465659464931223748408438941138984933427906312127433351856418493360698046340983993945149966824235319859024649757346397407899984297181542640388723446003853170623668179502380308135912504533430652142869285596371025595719096416924993069381735144671089561391564735823806881648259278164333953981096884754252944494866103989924208168318635066970759079664675345431087452806391173877582337615327587000271166461030262978335845613304201906374048674117909181953030816695716002799911229641507816388040728816647927810202124461304526258895975601390443699971825989978695244081865727090591923108713935859401998709855238697730406882988982986366253775792363310369140192014968262696371444445423999154713494398039539113670953006714311374358859799762226608692675137887731492090294379154853001984838538770094921447103401485365048807795447942005048486097613022860413697626103009037067733112277046241767020972976989547665128384729074012899463408355675851699213341569180930390767777764274378545382363025988546689384549267584044815165537323517074313394844521472930868495805938225488501205988142200795807839213294398880087059081307918734375789947904490593263656768321131459809208324519766189821627548834681625616418465675082875094781984670692061755137595377934079621763723858720181491576192863956585665995313039165411130029506439215067926616224258125611482604420984490509041638530958100682627587266660976938428614725904763685278339757168290846887877651951665361795416563343257347594933779099528717623511440583690421421365758962874094003408617379644796111973392350719805250266061672653139534213481529450099413476607680418623649505034891788451843422358196944213070083880538639106927930320361623358362913822664088790510438562475292988599214811902383874082532297332662554966442311229126439833629981331903785530529777474392651699288491005944221481301900253497827734715671502596507498878922156101079105968197640711649909095637916090267757913972527519445879244083171244658375816723609351960710312244568076602428561938518528450635863116778643204371293259420341592094963478873818149814660404794287236877099802591885613659374195810561181885543557698860731933837335995960645364181451901035462609368986456194450993291439414162347984337897511107562297273327729705586864670716096688508419787439548820688568597850023017929442833847957040763128891497405375897284333065571756647597743870398069008632542441985944516624141704400936742816112855451861570290225456702516851091368348340684187903881562387597792027559143578282583528381971359563614204814192374125547515803684928195104634867458463403071857602746738775715747971591440555164502387175318842808546542649086114941203405508189236442232576751710399691550659873347641368456846158368740671993538486446398049954253945363205756365259693032042390205220957015386949975347813665850711420430913939575229702929007586899682066634982184193864509868468520484753639063961486750093646041345705288053547127178156489908927680153979168673597449959915730169180351303703721219617651254241968778152181138024291503925728885443779516917321012295852602481992580506975639167708715754343030787766418918860837499685976153945758973200243181655400907677358580396594311734194580952396625166786117440286328646482348561943261851110883599816906568630504697617650138511016633600856275264261620729791942540166372964223290479486184459592660328219122610449277899642419613978718571975059027265035597117457562239526726702541789520484720489378833635066194044195384236611869339256964343688052351913859685285966328676172152649054237462074038745466259974754503582870997627824245496400858278589406545135059075590399920786683831077814493897113840554648996106604429974918254218183128444787686453325414803507333013354244797011419749343974322783976991515039535393192421810685954361119957366928171914930655424498264853087949578280534127691686658268029516087945555831571484537441803010096458896251494803936486713703727616573756386569543861422116756559298549198149723220027455255986942439858034327285440020537066327877320946615581611586252448671071668748754523149376142407732183704926445920309437956595404734569050151914277379119492568396522087669886801281471084516386165247610911783083496767921721081570226475973791792828972092431306826065789970209522373086651928741034317345098497230705780371048672987352917696839107430238122852506628577117957552282555208239526974849359267960941639206302374127137015153396057465068436454626597316253953918505991603041109422588152974243168165345048722219753327170266730223579147800770076251003550619049209326726504568119308043784443904766565777935202172302017184824356629557405704126433376679118047806989118762383347827638618618380768108577747306398954916600199696040839746616565926123200068105019704513392128819225045631010731590159394148665984641840581685424306028871730449745076478963174180576551380289705802041250616615420870549374246429928068759261234036194924816472287764206469376441895453850429333262859324924462389705296994078752310845828414998823201936040371291222512316270325245489570905059537595635424930611842376661087595231607421755317350252438520822164824779039649391720454231056499438359293265824891387565916745278116480415584104285710892646208620189265806563684658447388090367939032539095568883107151642028283147462776267608695728738145306160034059334027228854671981813091486168005483949019969896248337297762451288577764624273628550408268720225443101727178374431224188082606288916113916937124589726019381977584165064680694536324976947261017317808101391514695034629484903700066451909837986626772531035095839306451146338212994685007899082216508680123212188944823497833215831774433650140304906367623001117545771277247903002063549580599468923597915687858425807661562270573903460246700240358072834162947656893744142970932403667495503057879708536473762818478116373225974828759545731492753247167276859966011127995550553878286939302734961678777019471523797845869888865239401776114504165370699367681910760166899925334078953991856156941790335535482798986916941855650573747580318406070728342580508034178182841210853301891261143939134976043377936359653821176388002781437704525592238059389655911029666522141376853313764737418750563596455405872614546233694876872677401744155021514021538121719495752522115927526477025709398168892983544889560053494764073204219640344308293144603992437363334055416801487001604138296698813490687939123930862318954168378177476525671804242831994264199811067082477594494287512486895658211136385252163762093253460089832610342092688011131589630027941264401384828514902516263556055851336431943168506347002311697986633805092954069945015170859688249361573277037947962178592927120813757380195631320454017323783090259016328910375350202157516754379118153523683843758027586628586474994273055243574958324992305396381118082058617154962608621215365923288307216967246515728010806806380680571917539943561794193842422951077618247548410554199723012161057074810104852242014228869640605162951644164591962799312610836961944712920504665232834472367460136108244211369057057304624910127513716788262289188784113771952263371401953957201662592034145213675884904810658896028539134325815612266888730084494775268875117643706943379525720557785761587191584522874718618516685969642500809379541761424934752816148183750808522210537855368592098619041057058973204735430771106909053572419595699748701063843772959875760233602275959889691153854260231020290671544981631306906816507017271680790183720267461641051175298452688074058159053321104929231902634129219758023847708854045065109625240106381564583285916899748156947329306038509637877807395742844808207935291195207845140299600021467642602608315860742287197945781936696272117797872167419241727590401343424773433162232335553383991854131825602306412717844956308512246497061184799528296284745869995674437069544170818511267767363111423913719881294353099606159297167757027997526548650074907362395076402451208191378517409374380241379808314933974809102223886464965474659507499724252483840821854354210755264017802267116245749057027316672106824913897869665089562654274446857785298972485149653005539914783415962195820594939280453582938733572357253401607841952582583672545475651091198806632163369062299411948784375503963623436277129112507852904701838391295911931572202143591632365825815574345920153386069793610745482876325804638336775172212510570878418373943857123397878546865561299633808312704172211434015928511542287175343928284152372267546671916200782601234189780731103545305403137423508609014644938460637520536493667111708169848877207763667684392000707355375701363978969227417478648229319255507759692621420530298494375322908214955678446516570099572136439912190037879854382079455138603567797145030038682164155089992424884915859620032786476602138968323768909312627763527351707228017891832242594513897358431838959843362643492668524801274187383566482324053732354684957806261720384217962834059814963161855203997747673607553469284904471803593148442122005999383845914626006951439359031301818371267929322063203172739391890699001828523031398895660331924424030909438538049365695738698035976206339350972982369441344454009966687956746114051823803615932453965479185370581451816507468560882517973881027452462002205395230145048986813537678645932241221946705565764220710593074607828806952270647415527828302011844626142718588283871455194008031454556848923518828153425540771511553541145312800877604527912407584746182517812543789858314712477096026257185673694700405943667970218645953415911864353308042253814411570985718125190488430286288291544764495966623525099350003883426440651566408801578265718207358698510890768081038217289460597485432857091856892964008493679784090514008347215695627552979602250039879280762332969740281901463605885106037066234800878043915113601510792338122023819522453421585853123143917902783610384981487118303796443970786720144048900295139412346785362237032161965070258710772497328303840205825032297782546547770990762237254534282295391966273334877808972139297626596474418205037526436032497754698885684776448702954797457587996087268646564630102945551566566022026364627479158177725440877166734062527072349157157648158749426466488728540286802469413959638748862178058451518062840464473023962854504960740255315655246017593341455950661593117800512535977857919468467678121364739774852565036867369241658240692132914730378605693162439852855308500160347470565115036481323315876145544673317353612314305361528204930950056647630548474886184496073063704148492813463898175182489225991592540864880843488648786985180609670439493296929914798403582667427539031981749916211531550054952270286706267809706303189689881161173989935227944913870110016625320983094539364925728189285649014063256776496002730536515207850563699680798207671224695045948575270106670813672824072544949302206573987043403067120526614195955164319398241669590981639857078982898253770633116074226867256090934249209475491155231885070716740543508727762066568963876013189264641688632226383171183126038325272529407378572187360477362701039578101014528945686981401298850384641932442992040226822885417187363498162633849891697988953697815669007084098996291433358525624201215095596600477320070783099324941372460927417685597402767613296139451153801540382314651634376376418248696423344074410070854113081932859538934816021015959778895720140285200284191183782705695716953724680044089974487740907244834246020981302013315540459429825116229011114597748040833475936353603420480678925789773491301119884604986449090071978563854440268589118499127385931710780291373052356889126569618273081160943515259524007530137828299891740083642497787266010597252305288803697902071757265531069155974140871218385877180926079278988157713876602084849575977722947156195797828485944218712428702784509289578913657807546594706342951311831267273560049929228467686659556624901007722515173093073458797808018722927018796599483802922281367816526126346782393063653011578556791458321522170024875936885551382088401528490057613919672431692372225249816059881504201332215737801548390186551889164316618435227899900884664824909470739453854482138732433909062323781029140363212195546815719464313675608817779532097960084113832653342168980954382095629207588111345880642287150809951924249164787332311983983305859912665604406269089395277010016109365583640193179789249119665459481117466552078642238230270165446522229521781082542957263612090998944447378219468980923043503748145031561767492858051116803725387267269037788631889966084302986481081650775169278986807989540745941942080915407550408212925108620121967655416596875965313696887013816942750169007184594825295816453138727301923404842852498696511950707001445739863159960682768924417857810965723180157533281146376212939248642878223528618016799525385429603357448713710295093913123916073703439883767112921519262801114136048265485983857643307513281778551156492731914883511463085119631853452859837446583794890078034332929042339619623984308269658711378122465970400866666171889854306080773623877755400017544875679748567517625716562056391428630820258666265689015872543983428198143290982621421330420474670123842231036253421080443990837468555456855778381478661150835713839147193870272811097461877681434547374962612893051170290393354338332785485739089066772057297362109626169072854015172244559713593710383010556615282697592652113031870163364937281886064522968069729034219253889068145827032413830244718248443562397227513800120918203945270903616666240684284126723771593791117922397604044265720753344368699417289863559050797570877931201492518488344676690795517557953367714008014734815835112847636533377264199110731078406201191772746972348155101469210748593053465238056518155016738142321066175457017058841199173831706705688868461387899527236480660710512818020326679144535195412211961613930777198590985352266177939473561552945523995439360673565202645463532213895412839594179013654746137491568745178720697411908970360709410643934637012669892163244075121556438412608166830976321837037800831650063272946580511762545064196766778014048868953867050001976948618876711876603357402434157421002389864988101483883201988347505185130661538200468684976680584364360167035215220657098639834556005768588155228556025107901323733859987888520167761590092664023027983738603809401273285527598278730901127586078300821253561826276619410998187441892677362903382569642254427539531197082402412812669708366469844042976067209890271310283972713378093006130719625893687163599048579856154147163831933523435568288945531416892434706640102097060196882551016898311234341167584340982065888925254694734576017113127377719033644540271132238732071362364129737008650274705090240586915198370294954147933452427027276399784501745035790849697671731907347637626446648395403064300858876792593947656518241511555247570355092508945445470488591967046446900262978574704914159796483562045542192736468731831657235624710352716202562928750583409699446273242499302226369956028174650856174792643148542963754254145395479013970531971850884594740824753742420553059877729963696214574803615037805267570346002026205080580257850517336892791775090462962314171110450951304409020191886813766508507334036752975341603782288858274301323864840848324945126758769367398572678906326896936720822459015448967615040189913135502035881444454472594503990232612821622582957410414250171018924624867108323247291048572839461598336597142107415661402929345764390732386732948228048217191132543892380543702299263141680463531564464367016291458413051250338212009093837198178563454205748145762123978339913979820387997475801974083564775862712498694545376692074300635557883824855996294844883386366024288174563530180686785621413138353733888156977685665444348405372049136926862664183876718318239942411244102842040110825790214162663454028062891882504556761665153778897066089163848573372857458070869494788209844464123393430750136306389994212392977514167231329459082668899043887884191438765233286050116822086385210997349626794453228079961651530194049847338286331505853885690485824762956344265765033006809894503739330515453539006324521565213172765316026980798751948148737688814088439297804461789639095047186647849075926268806064450437933809841860285606393081755835919234678260708615765361687687486767877260680185864699164665001607328808419332596885990905022977332351761434039189611943090673661124619064030229281306028635249132088809592667956283857931520595033414647069559856906781699651388267031961334692084899437321469747744610694037324564701448142680729843833998113327753845046262286819123133276863133939700701419420737960883817868443154578586486555453728490417506577617828979856531348509900923343113687952351871704327227701671321863166194929641812931117856228007634609429455835997643023411622831863398084203465003355342188973865681100282495810643162973405063779213546775668858402454431236688261795044440747566374895396198327629053885467566843967005671004234633100027771930298390642224560944644233880504067400307310834721573688474013991360227675560895031542308545186186947873604394105970665100035666013150524861554341453002655962968884329073672433329808865287045830009495361510154480076046431929669137345269847616544015186415874049950705968339724852114553026382300668633806298464321083893754255182145912803940375222425669275699905304906829288958527422496860028554236241072681718915296576568369784829385234594836486255386598642827636070801945811724548112952561991454755572282463062935128587094875644276583628496074594432407742502004699842249183967516739466766553288132997267438498231950884715160005437915792174617391287376523913585864373059121641757655503096779715875587122498176780482661061896938405034301415478128423241124819945403518395593186931371461336205392225740266229242608070301721895144871658192827922554382834223955934939020955862706418861337768345810939804282193324943501380240017760427555971828400956628492518455275758845227686588751584075583495347643732350060943057383082739057223741636509368855774679287021051465504659141103498751751452689902634991552129561330297286683580674493129168070554974130917761690402457327174554937692638837954479646806889683366690774554576058278770166866332864157785096134262001530362619061959997273889393407790105585526144612035554624010862207488442921827930940701283224383226446622526700709497096910310238329680689509358018375305948201200897236562786828829331764624379010191110385867262420990755930141431904205282637241883766521856462879138167609534770110135718599072765164052761082265763685940362573042620071412763423010262228509240521758384675631419853491169321639984954877558155167945943550550041256990323183245212947979457045033222075779821635717145216687777571063293273152486064197570861736615112157131115854856966156645416423657875825533581190170171742570316640466537252707347477476667278406428063736455718120234043196270679093873225219557279175907418159967746955645271926477487228600404402175730295229204300783865225249174415525999624194269848331764458925167255113266817783925315327704001474476570150507855352864804946037937636186344472936915104489190299843195564413875287469958500131950106646372422359532393617064365145976525254226967084453410838805056478372052710679732492879502371436550785597647661996817224081854388435800526354500522329718253497427846136244268009156211351439325977338001005627741343613394441118568335469889094273286374350509793659073375072128596434063717942498474600226715845622730661397550856375195757068044722796775148123431721789936845642437616859600643851147747701203842725855414778828896274104568368981608133050793521493756812072093851008352302826429530737500601960449252456812030129667102674561114500573152852986455481256295099755830762817720104695613559644908157666532960007077184350697951498064681459219585754029726771756354688552833811041388159513372882926574321830579218938979532036054319206764876220005659310796639005171331307062050963336123976603516285891390607496439811766755140987938422771669530783471440063879411611156104088812208098658397006165048539965717655441344537343718513958039912188405318841993674581149442473631364421937050399917428438996184503747836310345565173327641262076552596390268030071843449087339407349325219270452415439698440734386246485903922315588476086259799239400029040993029115184856067893323070285503603412163523598258290899754106171218655443254705816360043719800380206268824675464653638680777453408347407548968972238282158356499698356957880198436865508751843951430332038336567828061546237673657156185606990083162403429539678511200857846365937696096323921933154826033954266249077763082711918105711760113646528549658242503771923845312011757985614578878778871593573129518444270492158884727901491436813307153528887604638115242598627149996614155847356134140359815938320793360021433484803559453302910506723003850696929168053900533316661776502398282044614050885998966604306885861899487665960406381296652913521060453045837792976019099362154985527598648006578798638060671805747836321295644791368425302359628698948658955676023880461603178387894421307599696449936122830978721575830475484694370822494246836312719119831802396065952762120383880482508234699973508711152826446053992930308776694011876185839571275565390583714609696316946454210640708316492611561339157774327550340275172595639055233407309757134869624015964171746893183194160265618158747651403104924076825190171020743798691920824962641193967678675426909849028871722267711102538618073248656197183144603530853842525806673965043533787918040034510947650975102465105170340836375965437584533273786533083238872338348215968157065419548022749096194483577420213753065340104485260482466163555764156802647239613582135782197488822426994135602565197525902043779255234979104136012245118023112091540516006958774644143867165299648262173112675294962902381585544365402479225319645519135142256159179216885087258859351046856485830210446120763238688268500763597209586491823404638539952154737576810100813565133418293882365117171736463982515300595661664970339746152882714413126088492380890376465346439350604331236280649378425580979757537104219157951637326362930242013447039391645103560657056977212663980660174991221417884326689290537366107954959920703661199846698950280214341134347108170615635893962080175287570314273045480074002636771401810096965919937544556390291057174771127423275352890335284039645948696161310648768150037909578922473197682677565510657193486795723167827205623241863676930761397854957665642238919332387399126757424828182039555537999997875174604694145436240745172167726008233736656729863483940457303982436168532885707695370805810632053213685932277555438551662880614163071619221041854751307739096436444117285051898442759078794758909395658317716439342570618707644844530948306952680206566125698814292700920167184401915967530950136821060025574212028622381071856189019771241340724440691606456004793206540607969654405330519935456303656711070131497209537448322155426064007496843520939563817595541455743808313507013517879307301842067986756774848441412322970981600531981101179540762579092830486279459529034677019873497940345689605890745944331766691022861914322898773481764569454106884226361752189455564414709062129305781714157804356424627619710583550084570760540451698471189997791723075043885025658805283623561463104126333822153519696433736411349854441405839497235443754873533772642910669605852233201252722458510117544608563321264939157544551627508807657051613658697441904488580348384942654058394209110925706613169038282788126301940987301497846269187485730523913290133213392132350014930105986098249404111445836961327607382030036441981878740351217364987910999735483097821970905151376932708424312372384187493398424692075535436668440398429415236112708059495281974830455601930052886202156069804528524222158601318574694174935606332407102896884538498844228912792394766903246623470976026625085493409497399812249516434241042084209785281401391313489750472317284092386179578088774008589987397511735080437940609315011123087881434895264259501597249127519440545280480485408473135879374944433725939482817401100108483918864753559355034077905015916897185764635972690907178608475675079898767010548309734520254268405690070900975320827088956216207493714110178859825997674581093009321631369051033736770475179055402087632602536531685558019889990741364919639809529428476962940666359808449156774483874655466162312212609759940135348640063802076831434668418560289945475460675409102178792512278437379016597475615027128331759244543953249271909038220544629071550861842013575537070036084143718732440550200066842336335304923204998480542678588930686149932480683588999449021897878230896012589644267667332372209401610561425024259195219981020221871636837247424778237664451896194145217952278285558108627968398544556489081286670505129528060752622695292932693656667353102016507391324742421529387428367434309938943381478184760579832408309463955815683533925876385041729211692147863881852210656757223213992383340832811724816209155820288846362440869611018004002027236706053254453806878529965240913883104572476656327874133022140271408479892569202835106423863690063798693852194159612116422435534950685690949093818258240592276540549290750180078159823515366605767112501228364025627722462113544063321967376097580280546772091931165096828346031779954521208183457590336161929240259615890485952173181686489850838117361902751710780236194517965531903252542640017348629376945771440344797103280225564840668702398991003230176753091327858153212393068324571609374818192960613227779868932946427903032601622822577184494592678278281811629910910220725648767695109363552390018960324956888685324026952383761117065949962048866394268248228163316837206297679032111429974763921269664369047924359852133804541486454928608449214540813361732444492061558298758893512589585066636937996725057684060002185743988771630079882316673813568678226967476540391761420138377504306319346099066120416676658963582073940133242175055799246746381714515494571991143601152292381921388036421013004981794819451013612191299361680597488070225798373384973502879041402467105998361450227047357472242481481163632020399070732008345261105315404340267600795467038650470914843210043082886300846042562330529363914890948125726520510440675099931645115378926736570928401618115568193022906217739907595475849848687588236229969069125673134591979786084801984778966384232349555579796945977433253173583702725663381728485402350802603154424557198754533052894297863393762657196830005516445615096549337963981848549096525624018463561257006424499387462183219020861046196172713382980288796148753815102964058354768280176636388935923582191009794240559344028963329806364536378605377125114358677560569845031592076179736009256906586067968756090878315772277154749118693684380424583041987035484198454927256054174710753820147614822055164278254773060276321786439818768424558774207852049486921954829537486585062150549179022192643244455216133740351949793242290107946953602543386624442646546258526897755732188988566813037040895206762359191804415535216969378457054593867543827454549173704733980945875305032764914484959998234322203043822653192850178470899828701880637733336355962685064445446808152891678389556828800324779134405839662687668645492246002008770832602356144048069010147002850118907580975855284621020117283572966647962752279232635365902098467409698946587754568263810881917479383673503607863855676338277030135970236729853923639504062777125144191949432380444911451964800352924030852770221911222261612384636923004750130913773485335263600241349406576081124418680307762118098382114270932162348240261606416081510352457482504075190264956843503373802369499779508052813266978424273275404298223195282458519739459754366354045158576041933016938469549350042561965738908772119539376796080025270049816025167720194729729826958442767635790395032734712330275346757385095171376198897596514538649316075510275944809000018100790220584283519562605434613610330775388529555024752609829572526372641194798267318398169018448453362843591043913332650286248968669355594057264272707731666844588702666524070324924596969180913267356832908226203328948966147400171355619105652023843629528591953757715937147367679108065100543070810479078920819808141022339356433686897860453536197822792607857978196829078814692400583118583997476007878286360109968093585733908995418050073398664559790915819909281227102701341149656242109553578840128708440196862159047087843904431781516583068184063403728439322357381722614164981345419464479488308703775952699377381416923563687514576687523771288713026787626032272404609382215340558296648900002183364438478952565359883196773428331543529068329612055378459674311801448609908067852631286401042540411543074057068829922875502451634109834369507136988890083717511941808293030220570283386079971400623174743895851166121786801204897840615594579991528134110376767425513723240965250899760849252187939534140051229337366701969305856668947626322796045615514699611557047039224160520547052061250514845266830654683039907947665976060057377885007771067067630974455277419228118729333552301745620269915690502822540385758236503716721011625285428756394561868242071980321440427232175612461757437938045403946279114309585462444529950175193068089287383481862378877095279782013059747110490676576733726620377463718793653024352512357634501410137508146970736356540904737235106642494256191690525152186410620750717529686091466553170812929861584280024698245108688292532262968540209763106939202322209563149491357847376362279760041532468358124201127134698405450046213034804218340739935209393080810364615894311171311524595152545328341380693523651772019872650206521761791843844553706541690775633217030950388290207926961597231280438089388661207472244144261731512690597691596171007333434193422122283961120858612110564938859196248656657614668506828132816455978006824734857010668341221963619799088029504685408035491272526921357387978088565988777031963649069129240126697133096115786659230779376255854763656769818088927757722516210745652192500027167511706329715330087536280701596073782454450468674597952181339530047992742926550115202085107606608450602153456984287798351063895016674592288447791315220153442147921429481899167234392550106541765467109649988582375578751082648432016044617318542040240068305384888019630653119708622691413055603311255099728263225037005120073991280867887187706018498784560280811978780298314281769528252200314598737781558362776490893328428302646017977604470841580235889104722800689334808820025492421893464422375999258935799858121754258684406291557130625223841513922954488071389860278401275470388115585770989625835056487144199801521989456481690575561771828882310871513407991993084685202331800009683560965767121596657471411361451582211163743904567049918095843495142127046561982170193258174659457998131789729473071876905816746223635043458161805711353725948091793133217860314156106382150111237580126577455742678179955291949019723262858716189746219727508863400031602937980472506693399238853295276518727300768386021615842707674926415662325401737528658425907646183370796986728805341826754520523547579997140179891576093040524943586681405266017764040552667951978342547604577547554615353843284398758589872805859486210953113206502450496462158410905706176768566348740486616254801010249471139256994416751188913070931199226585737020913438804954861571486466455404091442314880789431069829494183738797769279264094451633855039820273092572622782796412692583887338069045978273889325708786170971922762270405745585465435294590639350996433662183129754649462017774146697911535797882784358384310328161275424501532282609286068554053969552903847875847088621681590938011388507336200753551784077506858377222876212771646463002677925871043054281194630486457243089595523066955844258070007617869676416095096953609891202635576498556630501998084095469529194484548617718346694597033775759049654929610485403733811838031153591650103627570392549435631717533291445013363454423053054270402474911109129753250742296816828554914941258506552015889116888405407704246532456433883218067338780966225812365533708409904290250960665860682748568489416368443353680289012491964753317449446842460401747838751048448064808049006796136668093858598484643455336899574762274285110730031149627271689109506797774127498666403850569321785057511987635021972413109712835705839027183082774652102624955672700203207771878204996487590899016852353011867894851841225995894948703585004098623367001443227671100435353785299975355407831983968123854899308761682344081197624371446068229939469892332093396740452654415932459559398260427242974480907207378705869032916301908407524677264952631416004601734382104778257697395558253592239769253708575765677342812234952866444281107938238452756548624578285784841467772255663608194389318314899542851870367715009564512037205612189539670464747494321741947906385395573711235186282765013433870238165839662715743980714472911162777462861364338281714803091353275452163284538054360229842385018484633670721482882234452255177506719842852937368144777028228682363771898748995577951688999970646385241172797753234408172561814281419507154699357175897801472579677020351607625219704853668464210322153576015447325214236312371595411750286295248664289179445534812651999981576646003395329945824184278585298151168081620755785462481921504808555698261926748005200576259527837692335879537680955960057372157279191261198069852264341478961307654906638078376016091460891131060270104048831979365654679923047374726296609366524380187444156365156031556291195795498379032773150846060980369199918213517061126211806684884748437257151659762670035452497842906789033810420680994659231201263549687237366944919240119802479841079080678854188027399902098266214928058668015625384402097053225552290021656721109032592473582360533260859172648846770063300989784877065806579569176723784010361403635942522911784722454131231791643823343462644145733820333386193648740775727843727514996232884172811545932354147425510431591269497251734710667215753150530982125501047926375390461363837329965609296196749458409633557406867022559333664661408394703658952951914156918165330201149579157487933138687294961042223012887885284093288523377892895571970571170501155529313063483233569391984792436680997327109954745837132859303367488223585901065037896992547458048503653962035966801621228375369909930695846985808811777011709416618439656015468918570504277667289395281738132888410540563292611374494304011030552191605436572674467212004528454947412550064824935046156409221543271957575333990132540054996562354600541565871614373270659069586220449422378185871954683057018009112984164919651496653735609855314312624947002335178016388537032345924391926772812607853287028801312906972859237096268237887136908683545941204110630155595956271635858881116111192933401906460681787054282618946467158413474224553464449667652387277477415925445893875075862163233777341056794557673961375829443817353465206384356171719982715500666130630410394581931116014269424478738833396221416264278995886807024555724319035843992989334228194901288924693890347314981267447918335095537512716315800621894454367567193401883737354116070059823081529726892080581309548091049065382276905969816535376072108669769998518079437421673209989476271186417820124915945013839536654633650043663289851530695429417099507374635191440232256293671350284945238104580718362926883251062631725257387971520304052263354378857089969654006802654098477958098936640961491125249473675374418580098889627858478458485780730401778338296980767687994842301118208497350502656508297181282285652933616537627260426448897027597985121922111865781499994233365736026640120146412462244521514473760185494945830543624398672886806044884880252909997122637295854310352573044711144053826362423527260718088485441410439848132369619136316571904448234616596823207653133723958852222939585068424275656605475170218296882511736072920980359398209837622055093353466175603399688232842138035414872525099266916262899834728308784009573547537336103410507993697070921902399247580265325995662128930097111008201588062653399918219562058456553479356735638186407454428808461023149222053772290249216230713658603524866814216430503407126771077372324550421399705305954836537640731209193347725072522091645746063979026703691228762284783390050792076886620256665299835719816123670373387573644682152788586002537892419190669334468201523222024116553366760393497503594572082575634569757688057448285443934554029813914255894564563365933167422481819477119983287584667607063792615931363988991757528330584578291945890657762214669468384494698788702222497456976559254093840123957616538158789832767456855395394068311133210254410011606683022267798631461353719043978549470018706095530629828589607376956314987995349600949549728700155806320926293391718037873967446242264481544094667298628384388218995750726349332904387903516104901921171017778640856820272943675218870452089578649199974852457552627969962125883813818811194722833240724788055340814824169318405579974084037435005511606115128818484015441910561516787038332043821894975817616637293523450483352252278713885811297021127395889687210038309946316005464399691986468059923119229042721345931963134756696187092234555354716851419814239943019695421097483857957627053476683948128685738973391064542009250569273906025827379296304719528879211226900345641225738225966461423848161220703956173865384428946280095842878377850023414416461125414848153456782632008444573984471060708212525030947507011597966576584717335272901230027526108866987117931663331393151530883021851230723388036493706864533274305412253094911557530632037825362007652334147847594650510836272879246187788816999907672336619221411062494656276374741301051107583010096175477059393678339410674798972522610619217955883902372339913168391555261125536603455963084546075622864909948722822525752804907288632261648890465354597784839248277768677872235456656983443470627706296030804537390690247106105627495199034867927811936419344272577943775819764855250475650096896962819581246952459973251179302988245714944863780257275941911913347297928470115084394055030769221541869457172987989246225599407246049363360306506811058213940620008194665912950174703681964915033282070024654529070490972445084252657193316955161071831592856457941332756756366102089595386806950146505563109740303575641416049655508320275278221263430228122439862771724005053683884098474030780413824985325296575863124976193992909621403778650293953792513276033492690346777870636195299750464960964495242590353543723485774919151052408334043401181902334829753859630576941288922219848747520527887600824600254311904491645448871776561721852105986463166253444368439643309102614690766811495735288696805829411666275681263294408326824091815351223238344032788937467307135034670782290183462678477398060771146460304756645686057810451571459752251627056113289875771400477211999890553723002194371709303040719314568667038756150882363483545561181679193016311017805732577412862652605768791058970659701771681032490469910281195870366799313458587000337830574404931388683847533626943794713782133398485281366213528936555222906895972164030175383015480035297355639051552154661037478636337953255740067396299867134282457544092703154120754427659758845510421059120943462883330911419369361003282207265118316210370724842273198688005240927320435221286364396517905299814614736391261259086697620396327116929006032197047601134621833604178574041604308429392313877795689207413060886075383908370216949555032580720341253129545689801813392020879885248166439974261357063697246942809069951365791355656291115075537768941014157538235541650205556430342600101787468370984719027887096160834942688799412425292843542478347175327735514367950273069213021675792217684605104560914691870810026433361407382231706509136538664223747818565445048383156038106812965634231131051310773966924891305120646773367300602623498986334102016679354490115018815151886819745391930083914945822141924655446429599938984747827546439775835207528450794707705253080648679835269923770894759602650256915135609715478104977519218314014639833122281046160874565940954811589316618910690117623226356881040345001158193969224453411255138581461363376203240137880247209028085427376167975650174406765778954102865366758379175596192014209946050432916712077552526401556265105162264086970289623696836156369711297613570463702154927625468665514800328313530284301011992566259104527268017831337723891601511011823426410557344113759620403301506631388348008705160977206766178725191635078452915981384375218281594383108465484059192212709603835822077615983608757797281210527337639921189720203564489725984247669190803397068371508716483791572153583279812308545282101554272273991468957522859808777422227265263049389563027483416074127243835232807919683620676546598715372777209357906211395186148320270310710300243516629660372156790697874010606728734310810337363242884662550212317165835520604877673630709469905276697649339868608099481648633901989371072177683161567087335667079114367813473172368331942416299117461626974192071621985385950668265971619669879136595722223017245773159124387646995977080682949620898747501689968361435572295800297503781841449101040050203346590639292797539512130293380581948814455880482722241211273685362763318157842827487802511922704787134565052072590777750404758572835654150153631170530615654118425632376413220644287887849146960520662246565016821193535219407993401847325655215652881685283156357606941308869604162624459219361172120172822014797461919453906999740572261134767775282889373038988403225963037615352697594390640375199593320387213127364231970762611876380883815617659644858710315951806212790255287710299433418369111879391400209305781886660827535946139016925677203116694797200937065374157440728120264446061950915435899543181814846148438352737883749547173182147821302378287186242841207490488549464611834283992370274457076733962388649285147096260657317208323237270420189617795364032660523806724823886737380069660162089540482934992198920345010555037100899964102256803084149090089841428126934362535395923096487004502074734886004063620257492411816580737041327639286028789835154328815063370045300323451971348842549940624988920790969482835394742163279711640551965486713877218673527148191540799452267558890978566421831742245954064947617394823986427140435076580915670575027019127816073921864906359522805824428604496784352456553590134070252429569829882862150490146862049045440222098288249623074626703724856789560411518191636300859311954352562906048488153815743636286431757525968394500783578167975903456687584851786839969016014824748465358913732543299348600985982504758803605663196570712366372398369534457163913926614526758047557407030422805443643038420998372647826233154805651368625004771103934770165765269869640580095324527495877889330927369821462932404865793278541524997996778792744391662668020785221654573991847727259427441147514147286739027376204183747661486298771529221834117618201034100533087726302989110212271722211906703913965330653612939217841618221106686274861362050027010591200216733859078160509617520010851728046434183229383613450981670007270876910832336414902533453087556174977432641461146940415079921535128527818100731078680468085904194464195756251976714277088111459020061718212126122435022970748773008847272157558770985135526458971048422848263270738639321361608627687492100513535230211837940570786589515219587151629469024363243324966619983259918309378143674703437482538150349671533356646743983827317927491891606568335714208335389124496033629610806256371505861989307543939284329389938166581647100990350614602317998204268344619999881144822464673058330263948641801424332252626357186365802156091442895186912720466953587342039200212497213534260445234841095421168083293225321285642569506828393543157876163591174360066265431580032227035970723898958033220755808169923020336928614512560191571005945240571390027102087565463204234235045544147587694225569315451058959144144803394270171583309189296848239916437272317052597212363735631474192657445766489826512096950353311456901202433037237465848186267477483671057957794282717992077290299597842998952577996948359963040711026993947972792975344277562173129872041701220628708129515730895621322936927452589830634789071485382529514766609024665860763567411992447792927707105502789854225453488887315808140942451423101375962134316894412935926521768075751380463135781133608737857388298884333265848472092130533728779444682287409700357684211815806372770236741491329658296207415529245979568093299347368655669922022965300791476210679393220616193943324671146535485058909434394123032958814955713441749361467565730737375225652085862464680571486050713871192049499174354445291614140477226842234100079017734209847882900326265674932411484381176712839987132023480880608207521454127338486442006165746646868306721242540996891714759156544053169320817247390941335825518131299655165480192187144340379573942399959003712335400179810717763663497524390241340105725668790416733439316513097460922259932636671055594868387435809625144466553694021544649516283112879452662406160639175472273074044071595052606788694858232526123013400130952844593140117653645639350935180416534028477186601567288634288021717440982099548884574599160393997004322113913299502417134214663979975594948010580267117604384221387247589141559721928140622055550552611062660414164789616390640221909328690505807926987176743808599540463463930868942850056411047801296947696376477900843541518429204893008226752586207420708997725156051372618435194335031443947308750007242165549352892508753346549254536807134264262838370505368653502400027395658671018844900932837571769615288943321814217422461357612218939776014931307927160902720034485806891045088254757285174334812555455322936185384015416335711998295145088423710435741023034862806337753240877009685991106876727695305598743273138272975425519604897130190767638387057616608822230764340765971765643151813984114679651100787758783415096866693744570255276113934553824595334855836939633620866253922760660389113205872063711276303603201742218658695153935258045565293871856057159259127944479011923492375635613076651002411956692788013871553265865158251501603909822308019811612948098765311774390081791582574741337535980339140526398335671981634046531467655324677672317287841832759321585242136016926967273090756085179659220484305681181145708818773078500894078023886216140843449201511555953718269165165755530469617917440598621924951011704995384816081189828338521411899338513149158833743352145493397820679075361526822991561855239973971602316346219829411936518986383988448361748014306011297105844652938679101599976522503751502947581620436562781582159666295555664713405858608133197771213771932085303199452156235480941063138943304523184291929663227541937097545196526609620829741516332736884763868011347842692587096649390185851581280955172572808422992224106585022810091602997852100817410178099211260600646890720274389543706996819000109308081481262342725475984200378169537845551443794196311389688306663011955272279283482256338061027170629992430369277806064625055008439449820155891294821650410901400812824966191537119837401969933196785097130974659470802883159579005082623344129118909830956080455536494534020756853458169574664449971002321229700227133861093806177593277274186608861546382473053141825842905833331996567280038220855363067055424327511371629224252192815332293237137769687604837182770788488527173770615577669804616984233263020288161726879287973586571861605504533215712456816495620359058416087548821940433571233451626870018278871775179717910620671737155030371367177520760880677696791357090777818302044391684200756077935751565195684703040251896892459116220713962172930187246338042398513514150947624213261995099715504199396165763675759793262687623592087134377534965392897758705553689359003182511867422916455058979101894235730441545972225671421583304953739265631959418773040542332812455726072702166296408872042023374889601234067820636535893716851005882170534122803217049266509240817828315122342251167849722080068636854692213411942603585382861652717858266557017286720940716682196340018223455001284661848879163535992788100796396351977038583551336616744854960955727165075805136197505405741801024655234933533842064276563982562920531971974508969165797342360517351283811240342604061681780606622670036193702711575039105988060193663140135914825341147839384543341072916340313242665756733990613612869884715897492746408454829439659370483849713642779920008710796764711052495804837163614914738506115198268517028330809585379640372031871824224183225019369940810893632113817347254867195545430857228760007879029546072595768130786029311025875446033829513912217913907897405869567089152304349237990002873616458125606705704299026361071791276438599879227679385601191897116570952600834554767919935549858131670414633010066312144569063271162393553854989711691451939967759261138973139738783935735489663527070565179432081911338504966550593625684075547292150195214350524487502010823672054583956481869532028867557304014940998748705703201432500634986815608906088412253943486400662160614249426940091911487546293395658434143001260097237330004992007066995718282536799203926868273486965086700578308571337322440931483518320930393528366646490474662002467989525306833199994646695653092366792824384045169700903754945565734276043377605421080383030734653432880071437390561543061952778709909551351197629663641577770763655447693395780529567945449596266209855218016551024323587739855195847198943712398866329205393503224515648706443373118852403746326946906040317490311653494520215028457851838320493904373712192369942940358540174282882244612695718209164864227220804709002707554488561481742182911897156168949044880551275868674974391895804494244043505101627748934564736167842955096570112758804909718991125568995230479798397375909824284795388653857637770477915852096424479876336738333279314508762819367669531431524565101533956650963681042266599858549368999168263729587148685317830452284410098639597490200416641459987650769430788480123895937807464507783872642255259660081093317873823000514762379659168572249022434655209628675504316457419540353844282351845071326123559866074607363541070552021972991504041025568704292092461480665385790207459046505076931980942986687906366303193745536524893611923438833870002278549311383879203167545961457538815189625347908302082017174044858944918035540392504623636010787614751708805710731494065987515460235331860123498543607499001064301933053474017718712929253763768977476626497407044115748563200608054838312320165985995969758874514667704943720605349994547176083183816332682820003773470192815287590868852017523748840585098456919581943414224870073545715989893407075039013574547185728805499505646572152652187847401417383359846427245903651348488569778320898592647011680085802174880835498422833401793207512876514575738878046335313614287984752297469313213758069759975489791901922016392366979991467675683887386367830476270136675044833882762346492390013185395007077549893609587748356315366150329560781395654694409592273720869847323676320610024648432825650407115151740765905584040153403993514189537542478713287699234273394645952148771592865159729771135038148986290063579296683360657819058182584226338035588164621206057311785741890535288493047082814616132993358513308091836160238136951125733411513957978362477521788915798607642794480310771130266437274101402196390793245086594622454156026875996636060005339236213849374766946284066837971219334705217937048081996943185379509122301519538018859853886594159047247065436686911073045289761047254668376551203335804358944328544315066221453661322943109880323124613550503650213517030157161371375782658615057487824509149791995115963132880581030787300765779097440030894319613937472048458724437957663530484772309806207112748884889345930804792009885139608296311800158084161005953171530382298301973320276243448214844078215478999976047764853090363727777627242646955945965933607474737674377720476682144499360960661150526621681836589435984318389096782905103255727042447697673266191874423691915865745238500011527108653330907540571468356710268010239537267871591507641439561620667186290654973664865293195413973618291453445940673460073647464825585169842358041648801827043312455743775841349346036175911810846420450935628430723783566311742926268712364772254782393307913036408324300122018750127971782801430988854487604865306046069625107076692364906676522118552890171278451896682453729384350840504739129245027954035228858163775435537041863447274034241379997623454260459859325424863901733598438785340085245443888329515964003338990617407528626791873641769087979259809762225271221854131951065936870335081001645558686711747906076794114651863488399062791753574268991934534687988445069520342421574990604426622589747224353960713338067673936166893928309486564113071686874206727526244826498969646947645325875483248360500059600186233691885400850684490428918053283956939478647612154451994240272884330269490271762184282730682819531314024260886059686934581413539220397658041570035717305695199545834155347337718799138614935017415610595271693261808920598470996134266779385599811363649506940444223698348333627949598034916081924904324973923871276063720432822403436374792992337954319899437972120327907655519069220907101516953975165482479483697428651708618137942305973644272161740680308961738812063637334521309246208248977749946215968626608879077452767802510092263169370321541276597788772064438872423929658808273804988765782728704364585421667868607841239240300467288878689620917707042115746112335846926482744272050962153148087268190164460973414757540667284803773918249050151212792243537935035845719595008450636554919768769536491654402218764746972674106204285297785805763238212594332928142483389684861763201076095800802140726522165291324211167698955716586165828787768935076543077460011603356333520822473602745885620401070667542871815958741955725868300967597312198014778514347754194329831773006500903135110047025129045083049239372929140000368849784177614855312826851232862958534124403978074859396601081369284617798692476399297929718832636029268096076822823749343450713628095095258205750746226392107843244113487770111912504879595839865929007314941851408852542058826103389376643258033297229847129272739742033822817983572474970149822899648132398390138950837486680127803188490332669672332376772840264122770594636129498979339041512605907395109130385404830526977314567409273409023952508411996119281002602950249339187300926220171711948574877078365629704903440823550977390162468945537993214616302094988948538731933643312166115185944516834088161875395647264187815886007359739231494990725687943436849817638438795823731939669837099359054689244610140907736143029491171818943546676838930410185327141673892113297853222118289576165429109347435721456836068977600881554937706199121619531569955534307687881161746550546501350025377107472307461355029769448520613235591360930396076352169776603121526944010133666008468096185665843520538065420187757404305041574128658768240630889378231572058283465476903378298517491897758928921652345987058064913840984090744536650669563671087012601151980512055247327644126310409097611990489850990307305246735494016929398615286826720960860376367454236494494112493646990678381497381128708687723778190673552350379075341743739495065588495895546318992361991243054825616336103200345333145593657231873224104620069959172129783766665092316940611077417013967960680654725939293832551900138143217369825722243986950089486340499049236712114367278789140201687460155983296383423120070681255050106952766926014411276423905684952110830481694078771903201145157271274831335760268358368270067427843631751790913254528700710007296756890658052090669205397603585985434882786364415182582012017314473192642703735365839786059854832118714176088881462644940275107704073012564923372663923163089818798925828223748991277425816121564843139123589442671232045750997615448727708664287709928590243679514302297517659090543755746073949535634724837875531879128582597842620040958036649644169544992859741331100699633404673645019716635468431380953573340994772197705802501881339415365518338315464196459698645975174909535283478654064936742317598197836441947860205311922883947270942304068687943036489301822456225562659665235580779379596906355084209812792380333485545837796459490769331227653422793651869010840945407861058467641758070653864683426950049738221584383755639194541311456343139535084478867623160617603771094404719827265315186665741004224480357253833929828058089999963223573090513459101653733072284518961292017963042495867546447050831192110279152841348357434691553019090757408895489122526333019557154261503551651103598290841284233657107851438574646673066600476231171153138266176430838808460587249661780825509853348112040961858382765855067152662057149334339983750443205696730912304898647173828051909333118954307074475412489902821356450166340565884360378914640581289931670190544300110782878875360712045036031769516187136057756874555549655054460477685856636764477911556668787274929321496335164184213990656433166860378994304401725497875689339037709220918637340947972683507199277146699890639714520036151110332832054084073167650828775068553423851549234045900367682550382030123034584301441672616670165595985143881295210170667296664357225269445761968888392314499816305313081342740291621035114415717506603421445318136920358910337454901003627513305341058838664887073140533065326572017864714877967903661729565475553248572800157603937303213895573798186185296051540452491461680464254389632906959207918435993298996020648652747835065484304830993170947986185138986418105989987324373619712462123349282588387723271130737521446004519589688190066444955164766820985785306691028476608827768232853566391982955165456954131267674599787911426089543349937438772038009223354033428347946224088929930068774766860250018097467605261558006707942348891023049891254872569714166290812618129740212511320756586899988428370998056257055644667054519405465772626569228522058459094088758963631641077315736863075888271763971937194180665568449041386104068875866057560774388637715522471145449387825944957575056220773241439688706580537173064439507558104452379409912864558154157116716925311225594733368007428405926656851886852771067549211451324133202640689486514673737999447803586889160913653256628736508745417759219177381735649819426863102468854131243046531110045504879146993006976991044236606975866432171369139671080457642732693811864202527014380230799775261183454473926253621420893416197578651936326414599309783089320198439242257863303590130609720313931275048594701053314515606552924280870900565407419151119791396710943326776001223875332558730212108237131608330326705973950970259222753719325120114495544767830579455971958312487903477939382674259182907935099816332127474141500231364909602403763385016028384423271252837255956990759062029024914351393416856348424433810222494030723514804695169197538072314357239184470430883336247123528689684291277073080553427801844447019582840047514506191158486745107944930793223236926681505638655898544725112140328726160927754684548471360606704443474324415503963905074172803594632443263486586609458546532520627472120715324246132331802613930791047512664934906701975349821969421442571695752837355605476161393406842382569667045995121572951969452368521022676208660044058110897397698964778132772011996733391442968141076034469368684143367253064404442278512652071042192069784839647853794033767308395977290743515949347423695485372377357196429471504590934721955353915583076908332900671273366679924991540542917458985048936899284966441333023769586301359267294671888255952248009284697496627894256450121927332964085278225734519095246305194542501572174417127261977838967571629471228191696653541110177224525693326436120361544561082849967653385340160172008708688716085706253273234142301513933211893739209610234645687740775860394835912902096656936110613341683676114358827867640204016544162882566005228903308630532305300401334844099626290269643029193034191066204819250551969070624115463292060253001999426792833614771431096781027212677542385939265078479242486671056003660922672476847785279436338933020649367195515255818037115156213289803189997782831090356524180293666039885320244304679698058882551862979548369835021844742723226715505525133779074333000946503224201203161587632109304809795496447269024809875968918053156224291427429314204658497159453425651889178648922440975265775300098222981651341907563036282760645220384524936329151016766174161307830877037345946585431936217317416887903339231418727461632664615722620564509378639880214048931627684514793189827089734057806095017335845216935360913560622920848769335955100152109529691207210893272957084318198541076719876150074860356533577241917131815351622691919309063240436224814435579745230077570569116115002535895596799047739727476238487912285865561737335984866185956332655312885633239738855299527562829691999236251215892216087372750211172399921034617251293399325819446139471826667424176163568047640079538588293853479843573301042420262389363838166738103422606585100850066271530679010266425611161105170237957044402614201226328851550682429185809303978413945889668399874603931971409512575821180561467177267660775954431984663657301767690050492137167312780500380326308885124273010910924665052766652096990850508746177020349541343297583077345744196610224070426683705113729669546361528153550108351642430142881346244135810230280461070500951932751012169191814007811586890783744914495941348771205537602081195619541001176646644671433544862246103410473055296813305000224346020559830747095771539132594099412125357159974619588087657846384586751083652503747729875198302187462412582398176657202161719627817725184165038043505561282766504687944470579896761622472359609843387086221796583643610666369961185866721561854042992200085872905603114724588623906677143174072060742392095338937655690275240630658789855736176008167689794426988208783213133878204058105971193251794166176992697232921024497282893405003050106635106142205369393869363841877100081065145011949549118710317543265020197900216334918347612397264981326739686882222316152245884002088987539192709790613817784953973045942343599430433055345695346346349402311818992065865971547172722145298474240258428437310147076806171898516067224973392596254195280971278363714721028744628051890685006891226151134963381751640332374580771789935692863369647804115600729215934945511829498142353274174930508643223132102006314357869167079745744878954097889393382199240374303038194320531211965333393309463281164670842986358764124168097707677844484302390415025328482958607926629559432188304954341418358261117582478806393262622519503097214061976787546533655741833445926082011093568809314959937339443875435266759210702020970122230241626858295252839445653278942645047645181753166439317931124066355091593524886769639973076408157509834316526360197812766495817873409127168114051805246571691647301729084951352369422910685986601696535674113213437215063133774737560795646082301669062464062385074972915987752206215134261174849415360105882379437110767770073548245764412560629988037020584191189199963126789001330968526892933989444481411491766242509028066649203214751010663593019894205417661403112019403849638780139259567697112427130828014527201180730256744060341410970714788649709783472801460935052690486592176540579957852480478503248653292072673267254775242794047034999538260447312597785271779424565724289036588768446581036109492975806921082643186478957806360676449450225637116461442153081979463574862760769559424718594203168449610765752357514524240202848518971193519147001300952171912573085874348200610284630119089730643315572823028026056748902737911894182890597341868137839968735091384971378569854720452163913863566259493737940972605334186813205917818210966291965161230756447123180204775775063567235581466690104438153650138475388846369838011794124707834008265307796358950251015546412005606964364266175325622947406879940324303581152697277140713481932467807686457476602627620945029360237076087947858619562847991732190829668919625963222867800450011869348084235268942122270903301963719984727622831070970175978613142952189997534932863928757984324227993437594211665805174118305690126332231360710578542505659630541884131104753660585188399693630973452983739408784088178225138104116822265421534448475036687908705714370863791878666348341582316895398685632774261353074070569562106148554890003353411424138565257290855258079852073998583689187821599421561358607038787431891237803864711436326581665249273711091775265148002627351691799387327562442283651591667212683529230750660152807547071605731977014203744021048572100780064895628120937953006940046587053305441386164769056190946923499513077854595470385799268130021035021432539267483695532960844094684479542915049498472477045666984106115415214828981215286635465369068447768411968327359750768640055522221920198114575138460186349754948464331905384832073552055185922159994383439093298662799842999177889821534430511391657031235301288446335122080544834216551111708815764811483213070626720653008587968966183472549674440299553661480081647996664440626084700457338762993608136668721166749873825848513536700931979814027463841232995412501057982946144661676354633022831883756171642415172422134056323022352291687792995709433132666288810412166682252516866682164896377640794059704360029393922221643297346029665217438762916956198349692133456143952153366279172440279420709943254506712203315084401278491133449728178155479560992048768548850723875583270570080200864041968566523426446509600040967875351052292638129376787846754664515979929540438791984257664112543496183956493801731134193809971975545727395242309029702535510794352774646145507032185225541782807068213969645643949769700580403654605177493508217943601990733681715376448019384085044949091690784247144660665640512125021282814529540021630738109406723234286550257432644712647069507110573978355233969029249290050515188859387929784482177901675833723002760041874131351331847453695093243590298694437711509684001753507501880009656673651628581212113030638720968269569237506822404357205084967991207431561847183416227712656201685342679235090583025233347542896178698900921103144871022362771345630594866274642067505155896374933419135995409106764512083393677819678039976985503585238224613191422621882262720960383547541437757963243980049713450482218753003958987117990157580185810398399082135139353152792472454689738412907757691427227822726427300036921597599318401488225712767101099656550239996871579685655635692379336427776906219753438497847445874447992813676075199531567154682838126334190624134176329440882618034394130925133929761959455444709410942033535138568658960041808380148149546590230208352201014141580656208456044588571976445972526507705994887441411226590625970765904270567991306911103857273104477706019343251824444041018657442697128608974891534224272689801852361506199549982715649001878336462940225539879196730802230252057932942094828961288093691455544275054562386325040144199416934324111610258205898321459756531853025471373829466288986597044248904047104060846705908165977128280708908828401187255858647752429740649778798584943292412640746964325365210502566166628606042829753577479659917285755061587364748608308828581786190649681306117778911140327011028465024398519297214478873331697091626008412597744801642021328434584095484718555063790072681270646065508626919751038177290658981643652421697412710739092159346848832064432213229628153690766948814434624062683229129867957005120993391388127010639547849931329263880072822712783181356325759083789943457225068109364804439453973148073139067581907887396177350826310565121379630999167922663176705207876978894017313549236904729933983909959536377681354645927724918247678897814500127150878306798984992384609115703392832090521053293655152633522804028702366420280517120897215029714589390823347604893151947149303762628420003009766021817527935109656724282262569907202036660991585864056618343380015912073951049157438014883863103324438643964189570582386905528748256244223525589162292174532231280607691612316828119670037109260245637565929963360661296750819575899483682006386396165772007396197217658894971623711171336381614882447895869824738763569117602047844625195727002598692826588310099084443147518250154095268071309878393214591561540679172607823797359423674071575226255599536160012767786686363695210399618787288191887241863450962086006068324817971546755343712149613686472287553180511302410306617204996535262840471988342794723019904429193970065858421283878805900752221827806973556564089389331606178218955802654383176948246301767086090483651095546101188295186612111587272980489869762972627035170061424193466993960230010605311062129378446569533922554987101754450186458065387679439895478060625815904060690896514147009691730855508873568869435982610542531305760414375672208533158144143180758233608259258736556474313618287620332447213441102775692942404387826334540039654107888273684886400086384904701541935155432787380187061748240964509880325587822852267792424823550726485670661087333707157971574468197976555613679457984508237261161619987552241369920543776678972640663583871570419179148617222924177636005980633224660976356295003522507372671789495245600690016757958298474332276948897946467086461957050123771299745949624348664732782024277111147124286545729690584280654815986914199199204598922122442629709264948001511356825962624036296333418695531908097233007489721759825866013605734121059467304926997503056955621433963824199003095071099869625273967682067145650872593109180496029689221208964694428374247562006426410287019465787038196298203352256748781268863391528121607027107509920833874380597639223555735713256968598853795696616277264323642499498084426405658487389291429430206680040386772508413461272094209375604636920753849919652482375369996357130763159426423177836618815483557295560358881449773819400021973194202073936494471110593093719697130297527465620887596276540713107537755058293384655470105243496030526882903397444866872432312114274601756986826192359020206292862890785085279967810231395501749842252151048801029364768187325353960848454885061826930291415626167213501368283581902681343518540244658998361923491434917931862299831861543611076110909252676358751938732690466358706728089527658321802565765652691604640605501211257000186271803945999960537990863117585118633996677296252326350224280099488724362175443895681491819963569612558722945678303255670418446919720470387867336630798352748927949131678089458781652287460402394215426467183869812388233868471090112504386354116985083285393645535584302049390352718170926155794790442712304778266432087755839498113737827448904824286700870880522027362663812574769385430025844656112915286065514209348381690220354190228018784192452675120905736052927322063223018112380616910510736497334953753923630565263270216450153153617031316466509286102071967295768825724887021537396577059183991544346336443884983994522938957462133410826958110778363293408016054258138111205259981729916731772184419642294859828755280850577866818087847845324391728521066994378381465553982328715232626545445074340656363434086504637445492811598906981891346587604139744375826609165353846632497096765314157625733169089156423534031544103111631398002354011264387440333215768730425539404443687655679622102419750507900864929556701312636161465204224326811575007917988014314343033605554459519704366308800787794405638203911937882054090285605086718798744285299073474969496241633301015951656028777799223120622652160201684420241726919798181873202567048029019464977071104713057161248426516690933134663488624601271106989994957370932497294746409634199718251765342103362028075161963907771685497698962440613392695504301698853601919500922034545478542388970393971029942696974159223052651015897790518793791587167273194019372314295899626216511369965406328299936434242709574929273870350103731962800666619394948861543935074509709123666708207898760620969328055386190536894154894046918144091397131851174629885704870256583681029341295278177069412354575536341984849694050765381479672419028467313976221839291543776560936456021087904324620847349977210165197561650960008150744122420810590751689997403027956241017547710581617075624698961368870020424718645233210706261170369237197967069381564551793362586348631422900505925422723544832071727685586828656320605400229237088459455862154836619520274630344362429855781425214065415110775130218173916510083345680040765780653453513078719194820155546720491843700677963608368891339096373202671409334174728831320680357499962409297532344665942285206810433960159844113183302761845393581764831253004186779787795697783554403944257871494818891232967701838201564835940136896364189051063761035054410552997317124588565068265968755451454356925628138581711156839866012081883062997995876368392272626162064260357818144656489863578564529667238612372045076917990730154453548529523258389941290652525785093077819079850586270164491002506080175756909585761329293416312271301622137033379005867519117626016263353504777484563809230220204005845031410611338396136160084839532275076649501961447472870751675227444343471712660561038689540014485160546103106694690254431352582624263191544338229521522443300538105983144708368484549654483827189959912851673513497695547111353977600414664571798966421532364400160571754566659988633230762605396549923268305906698281063722481787587696299514440659676825672603715037472993954104452624624026079780584079234068333614308625721575663022244171976204256304907918050065641464484327759342302510198847184483258584487632907813696795472614266790114940718974684947012412072820713920495275802785524661397133448621511124745684975150244378663552131829772666387665817703281865735124536694258012068407167623500936091023657922269718052300470684707328208491048226653318115016543869963813509464688058498116629071367280412868607532491690373797677063353509148793176708241013814074599632322330200884416178161507259025240744385914937737286684446898105821099057014695722943784448520631725611861261180929461658515835310589335524346353282675175802916957668212428521482416260287230230121537532513449280397329153458494840872495811740327677001714233550564708405143214613459887849677453707082631997596933909228508027712622145778587490754813619047482330809661079469321093155422378276164074585497892533823848617887577074086139875288450900044542827411400007292194810320272159165482765832924086541681879711161103594804973100722683612894578572026539155977711926824584148728784358171144157425725552785366326547270725609455387218082738956237529214733191012701807523720748113394454669670809944316899466353830586807112178108894550878646554836216620685077867090944889990056231114490845334822029285826441839099920716093975753013415386318115602861071629913417278301886840323732351258267588436652367170243233853560289989389598803187042485730630570742079385580663641792776852338873570855163893028159779393984832252774353532009631861184034513279282609059745351125615603595979781322165398048761176381839414535479244915998010689521517168469057115752922793338875639512205385066546059068860231926307131485517166935199187655794904799052524859289440688617413167206670183710813772933289876139732196930779828160746828645806168614379561083810050140952616216680669720696633882798475000051045369894049061672790634671582603878271380144795374578770381950746400853834250215001153117705836411185822679818309447136138757356899546691842471640556394358736619366009890154454144596428548954106943830441634964626007294617349366658197030766901335963282575421625677048847231600806900225388437345074355047243682717894887044552688598448860594564106386059055404169177900239962992066112235491795882066960655526160820927243491907671125884180602061794184836588737568694357563238758766368954944857047813979044940920950746918486310261156677767026489509992581478585743669851981033220819270692016811177499884446013933075557307695084972344678076330798777353981384085622966912157984056776371434857342475901263104802080007418721608501687727038643082139346473528848468349329399912692674339675885070562984891220069132441079979388740187177250484542440346162918566373640467642977756604401264692496577552385015565140116364973609085634984118148392264429966365476671681487006621215618189425040685781881713905072817026698342167072057287751101157938388835190544723639737623148933314420734032848264725974546717232597407003392705634472022365184971701630340719025361559591645435310549807616731112732395705444436253772379045820153715635480167459087228329268090215081541077416196338754411023087845425084773916570714563367095418453731308337944561198250028018079507099412652278949954110846669891707354535326390546685434481008888064372036064988428472611057868175467793804967720147657432470876457938982850246348733327996798565442342490161330128441941883332013799249333412388401503935885475334870616864394126156086518877822011406036544989411215963600894375783094577184095880540317774486222209931956528924997532104970240680274218003791867249422719249343947524079353356235590439920066237877438528703569576914102081881802630537398032253291249113466884942251988610170074599742970680543581185096850510678386079457105275600887237547094483285214938890886444551789807418488901339430083785356670015930458780562651201453386277526583454275652411557427821739738103820429008545315637551795053673906122033255122952088685316460665735582838919138996913418872532449908696821950409997722930211369518450794360630850859785143330065685894088768936970424075100984168056788311509459949248038488657474418587242143765812075028575143308963168287259630988082364581646301305752588751267350466080224290731502614056937218583371759472355611583987583432118319607746882634729208946212975234934451079884511764642954566909537626213863531407131725837184887503825681438462326906718701582998743074594287593172034794310441739622349821176881921785522329309747608680199945472021430386413386446052766028909788247792657518934131743297435671049506577234621778145909012744558421736941898127408465035563862268975844978193360038579407916606083719083353287158598331979835756494553161507458396984911542006390135109700548704600136508642438775510666386064648269659995356900987772145749580931257434075210444424284594048485856662296586009081027081813535220769092847233971334224024351456183371086454167403160209478357384497943554598040162359215004843507976796860734436313710909528612126671335193588896096444819920879560439964562354978899851814404992867086434401090360370118390640276513808435334089552520653920046722355738396234858667246148281276021852136108277633535445184599887004287948732058721675431144192903391808923324727532527267763207205825457739557969686803211590043331057071547879938473951588106099522330889111973705907217345000622758752538171185428460085236171332212467908561606219043604281598117588714614192817921221418170302943230260921200479063593983970890315920695728239756662222998655028408253902427017651799975911568836823893707580121182873569659218278043330185485329812994568921774337513011094634154733287026251907756920181600696715991245555654092810042212403061563355496903906545001062374585467744952338119205244161384429271432935730286320636628803683886292535967088346351308044149499860771635796086456089115428370217076944173718014789886725892402685678620306402706421649992359525283426774560419111512944485486718915597645032267217315739086709799353507049993966328407052446018149009042851604561219901299417686659122483697495973605770603621180359665120939015579372972983934136819864498838416067064683466009528004930803149374150202147200304544043773579177857871012153100694359948341981883215996566082079221663755630494172808260824195679586465410577957718128782529849602353416457181352493355596955787836388866973941763527304266462696036569209898461182837017530209085808712579627678663415004894179164700676920462619334400011461007356551851047985433971346565285118881558245820974475715233924874504055847395012126493350941362538414741325706970007581024951362861206865716230535923230318419775902010581926500912085748439987650690983445976249601716811238524267981939503303559005133871533689510341123330628254038553532633304407789604730176974170942329706088022461078942873851700804531152600017163095172454244279723761735692545476899711686283827060345239714382823845177986430670218702087700983608922420429891264312019481202519928633071339651445903746750242146480658523647214704212592972417181257318639930024237575807297613101515469712604448779278469343115234035428019846042460566649225759350872725203702470847863678418215369806590467602239513528854198952611441520032784045721228992544668649223183254343246925358942103090592493033125192791537351832234854632730869491442321046976725313352548392071972516768143870168292784027302928721714981252808188480929487031789268156482699553031246990479377175769602694046400966559189110083991759754198471778914233910224446178702836716074836155732095549430336976497632418728742586123705011734946015791571896068170968544148097180067319615786833582750326993422697384505478661611537683311247932449054999705655115912284607477711456324084285544098049491288740311049407564549795229794095389940989735534344405486951718918775916920971722747359292321918964397697001923466827330062548218709326928990910983892687005674528922018295867474281978630497494786682792911739422125824551300398318965709504495590290636772121042518089261431212292337154885418383324597248568404974965317154357747561936179489029176614469614878628632260924767068998018197720939073586303828077861150836916940294606800554523001900427166890025276730144410772645473937456860745045639497240203202867103881197348528171012836240200329681884896122941191078624498126468123256081442612978137022616466680774218255366555677348536262138068862578810625390364684881261578084114537034849242407127664068900093426083983989767676648219993040106156555327506177926317344847976167330068685113025184354575096705103089026821344572039927590776820447442549263895529563850099731583524238858852307523539402332366875954377882006623493860497292094340213271812010884169233237838001162261924707578963656796969272813663916107872364227407629856263327556432172103155114341497352440031065926502543227701978931244906057118604676442228091131849698608770416216520983902905813855039580140327615703171742935827928660271657454607360617706792637176173610112434028166391151990743203833728576522577862645989057925978886459762527274056886976905163289247905412695809948744519943897951326354300188507465853350014646970156796149342236586572720097286325986354458591874497554723372387171244081770881759511405860673261252773922730624661669773823124021331091995465112913188665846368239594494819410156774763539721896476443117547791834782621020893566945532878823317653427399877432248563780469922473954429518355427539750910383017573470118712128307458578106307227012102933180158737260723631777539064641095275987858117132909388329503514530811335919008949778136077700994460440524945945120396879864636921238035058741894284886309240594941715342275247455863260404859116695140851150672169188585939148070536558509946363713717339741327471019378970786609988747265332173693863621370196170694814303820526203740543776222718670963421717447879239356521173525827282648749217614391482704856990808612880879822006947878986513788975804369055447495329089075223180633557056963958629241680222176732417632916847467099363091547725970699580721575994246910905053739312189103905213882925882433064466496583718131512253858810791474917221269876114835559157019991513736281399162671500917565832043176861017179902794325212159766053233494870762417124652308162567329077266963227400416941198798015321563410226425837388132423962109335410219658854863149098976518516646245699089503977782126177669528270836175599623132090653429526846617338527299006388616829865311479765386272516652280117042716058291876854076746332168976014989651451702680597231709778729524331517872539883351359789912621773916948259457808987730306212548628128240709071487943517602749662790313145519640476631510836012937864074001031408884499382149978264577043740416277577248422016768239152914305540248720494339657046096937751223459090519014969266294499620949847774143736947368077832369213676784134433010350130892373103515458135912476498197381090300304145642481422618561629454852898659390769883063412758441632420776583737167222116799882304695274540407780961714683573190226799493937023075101291477601528722541086252812320678519895066574531166910240092780299675213096777073660018841751854569903448674862955416040957064844851340388233598200986897897307479427183621182645276548426124797878169514448901817391281710192163490805706131842833908272341035622254847371048328328962445824077041327529462054932552570413842755729070325746853735759861215015339683101513142967788268849567132655354197610903574474388566503290541322670662412505045051988387124513734226061401807373184111328876651448506126704623951955321121831670396887937681800283952129882237814075485188031899834175423832480140114133892542378677528902049735198783928273522744264397399760891267004916880918452236348661027872632004186857926864855154547294490428258865746363187137558126945071893806084095368614312878017723918877443022200797438810619784910574097789939179731709500412275745755359739856527612608796546069317389213344310691677001326415246267742750283034826040634178450698599441975262259326595902469548073358517417627389096238676064580743689744969280059620794650093503723662427983814572713624370402168916582476318129885393959833629901485414196667398172228060988852517447845190612037997195410146581275392402359877776165039772717246002834859330131417867399683432669335018232250525527038100021483291355574197955450673156703093266284064132092608299358588715336775773284025544026484822071115818533340352601745292362667805242051767845709107421365549565203539825723901194213259566374230801658357655938995378025802215524660695257101975552214875229876710865420558834936810080190515008589647343944078735774313966404142104569160359108228915716831064270881577640268263959176567755000799584785353573383523791254928003898818814901051129536656764859687532706159179950433975544708049245492978657655372413357625194465418227575769806126324652983808371374848389867941429734463758795601944775022262455368449291574821268776118782706097653319574063274651702729556017681153065415572510493141009402563876188918863120380412086241796464363701413369095324055827784063132580624585852960250475537245566018465917712390108457784120586263122364273772949456883851615570153627824594257480877891777102370938531677421577644665910835152705115302816537698818199188831384241328655178080734313979747279007634514987882247204968450083648963114314118821447506769299133717390805696489245436353040298428464153503249309271358307898298963035510831314825915809673802067022389694958169819286953545837877014901936267157527112557162931558577690726016528260937505416679721752460640413728412430906401950868399353527530069465490915244311717878866591890652838506380355325868936127026023905345807976745072802145176454245302431885448211352151637230357279280142703255424575750057311863756301756822327714559923807472026784211581776313826277230786032422376709461365227894899460611103172150962653642496375649803177503189603924323851183890614481161019215042278983980088394887946705615742614545524816922214239713318246752940976409496541097253213595472222003948102576157512541002028486886644438973140925978049226957155578365059950036646730812496229431225450112732141183973029419714620763914024665505777499481355226187438665251381829910192175683702359337749054425860927183794393811451980335068226735359387378576213319193775602239366672399050006121472743893717569843445895907972635332565533879805264551830741765837810185943892342202939576636597307817794191813971530969665103006566886227029930292956700815320997522686014371771081007155281212556252056985374941423503187548141312975403442641834497691242214071084603105466270916233567224391104033946086746542870634685474347953129805674261088672972101237028714508661739562731605933054684113677831600487107004661990276793519556092494291777228847947624750640466271997628280456633032829980144664416087636995369880481620910053264104309553211288107610161969584133546188479400666954229981877543127642215418990667694734566269213892212310253247038576529868930157149697616662698745089547549538350370130610603551044846734150475294512785264501988475693181055943460363856601360788924987134166170154267557412462205030268580908188945766646657309615683289560272353598110936185403968232699920832371364065421564681609956065828132895080651606983730397174793353668387867006327141651285286313914025970035485412345958573264144902717982793759848639198432795571856099094445161810311599293861778660514900501371476625964773458520640692113823231523229449325978017862707952100410582256576579947072531362197654388495758418407920267827474582951843656872294353761675421494517994065366854414285875163631862104248448300472005110667121634556555153237526165328148741242441564799855981014845967489317676115729640552275023576528010323029272521912339724050842789844140312090392898170701130717242432556852060889483111165086153822532682580802354426103822124939859048549547665936994146040013390036372367685484556299491225943144035784930260728521935182465893149286463660498063844498243703406912155371298158483859695080313064649757827685223273870242485725452775397544970228607560457840466792717350007438355519497051440799031264863114415784821343389569075648781155610902141261235081263413109792354130694656267628624746046958794649927203010095157876159606254223463202941484125880464323907552480296814279784995055720282624300042176060824858096203609886005622349431431198027741845894740219535471163617436046773260332137048948810225976181808310999029952408848257939071511727182239264320717578683312454418759679788746802029789961112481990287461046451893861399336572453259354094102031297260940601210056810312160012050336399683365555969614051758444208958057285371943792587945505678079383505289002124451160899584361435646801563610589675963630283773844566786855613316051820609609852363135144079335666129081370750964960497028051800556869529619614406362058714136554070773058209457258896901443989004549819100049363695853451639477477011854407848055818047912405580268724721525463418474899781514923567325724443321539092420467118957364816303348289349488139045275171842668438593160142412699526155476826628645047892328153257082514356048530317101452111878397711263722202713280264430000243099315548786931976629683031844277493645031267762956634658233504879281057625176661076972440866773355551364960037076858607999488307311382551092225132155261643108340845079093718074074499723984007391315291178395800924448603838157262032979407214116791019919815368841562387319953081400493086621242718064185051271700860802681479319466962938476045864142143255158048586253325123619549483527243669571083232091906939364140678036644611332314219512980767775055968976764750242840860919385484743277574788641306896840649679582556430254778069306233507956587036681131844695831144872714252338566378058197651215984410260570138392246611538351459460429776900021804779388133752266427981966418159509742800160090027037271678589233582355980839973357380383160241789851159532035578310661139370904084227515384854575799477832200391703459480572720234634296411028172091995954210306966006653388617887875142568352299101540514086806649702655513834162151863846222148140051559091182474324457258027824052970789414118311724825626035778981521622860063654510478565056313321146172318776554790145681209468528411503134894463995293630307760713712175128490373157432107858963481331729501716281141625302751249211710086030050040869171121766875937118982817083228860078931519689684494306810414678966692442605618373445978170371477124319676490024097823827796915087930796498379773587133972636027191308844409336239255143459224142194479657486398649954700147452121170545390325240680955422941791699103811277489379479311958771243560403541506933872523052725825877715539461801036476156926815515186385368970748689364645469700258171864967956149171702934576979824220406316911083431573484539363882907569311513942125024907382623375069502593190039677434295687893012200042431844173768302240983717081926130888823491035203559868508379426295825858116605201025157433078184943663324728346024724176203576712312248935866546349078528865413767162801433480881108612910501968265646832118028082509249728942390447751040554245339915309138807301692809016266466467073730730063709599069454279760379609321616746905199191271184598434933890221538662530944863544873193071987752152166549660811523891544488670358852837629067571096021908818413393208488017551458318166572256008995704604539552039879006670243976045114664364944720865446352163281969392693554620686272743190219371159545044084015289301421746691877459334126198214614484186963821877451662516040940361555790375478573877084705090050848461949573656398521761959608474148011252917123052162684440407941073126759281616102370113631486050372371533377763944581042222491617807884451899090893837843627629621250702364091525449950170692280135862196535626713290960623552964478077318114931129684245413776308281104679490223982848914436249015536285740073370999153327775256313378801438265146399244363463213734962096820850085883920711236206230883844982175577717951944980294417582453038759702412546887234269227853112396488010574026660206622220205603716019491804697192255251997369966042995907214196522180972418857547536003172315524310625199270551332405992866270223962287091115338215080665877153479321362020840111873825883622243916173227411413559650587257691428451542066904286274794997828413170055429529933187152665632156910273690547749522817539549044917590413202363837484944944862522944641111689766523920769324680360995764830639544843286507144512287834192472715056418254537904651174476761961320858270622918892831304912337053403041378680840419218572767553103183845145053494426811745864784024961564657190705410520800303022674478779792544440327360758972165354223621537878064932636781857541979904293162446746782128282872317197160469656103440886025054709076753192742855843166237386268063278681769153416409358704043250920865633810407255084078774713567214405247751430553262159843805080219956596055552156145416652531996194325775711669828510207294694510497903161110218847324972357505208390012829157448026390256382068931862655738627893816556023796359286671941523092340831507761692272789386742460414507871219849074895465042509707726174634281367796156898550716081064891132758205116141372218366732196005508836614748728528544827407597761661542414970653968458269575309621589431321358789110078405766082710752612407861182613945728894913901124337762326401823090802592923901523344584473373071787030474891508824618915484604234486010531284119213623170079708247059887061225211763085839666058867040502873992639431448046810795386300599484123999388273304227074017506100409535563697216385219842809177897366010217601505442880847381519107216948212309013800817306100790457019492180553045486590191644205919133555965772708190302265731080902920105101329596166674925377212124275159359696326853486898307825163833018334930203340233705909562803996825653394835094548753691631800488707111746155930534283844615064226541425693987827011157650851013384699336067070163742537809047612776200701310609451298799584164085526808220858606098323992842341386705421723192042459511783434772135230438224916834944660499544094312233120541498868603655048124056500818280576438557705997974237147960128055487894865362578807376684343951829847280835625530765588218559427204194222932696323809922290569222955883758682800921445792733799929154240348340984037085207489856608577795644165046657881921196584549789941939198249269465634155751181585437978251153288318510840372784042110572031574248183260838413476754127311400868013283222909190120296133102472206116585299288350462412034714339285144038140970451032996799646829280536213722060025920582852364309763228126710351688258925723227733798676862511362509756074355333153964667016050666835514556463595435196819770924598233171038291081713138368121692950507611892090014081552279017814724017869650535198335900352050623088019555954025441071386953773913110427232757092217716768988375990230567465210908226214826263413785200241430583575607328818358252319711137095022156609681355815191635432106424540224164075078498481433948753036778089049832228980651162034317985662411582538287143836100886622893608998953045639469623788833164514609001056138224526388555813512176208403223462445303552963811522811881456222024443296538268798087357599852814743835513763700021339931103573296795245093588490111691680122610520328721702884424401553123242667669864524812428808388021574897728932426767072677308363930017193178151050384842600609439494436394416645367783380204914783609660030812665087557012229674177707046871842020557309121926259803955692239686067280443368355598581719521492127652230967210912828731019717773536377621000739702033673616494142541546916044459613960778982894433698367015985987311988321258980512891420174104174014596747617029207942173488658173261904646125140090002455303466262947051813268695817463855046049297797358760989480163593655787092508520638051108926862624702560931668000888869493533916536664446410294769529678425255591671090981681760825456491041037658112082501858358971975771819959918748557278273259121076956383233109142270913750681644131167229391293837171715367767288465712689914202944279289530511597705836986946770351804313962119853839687468727089404895313655317947458004730781712855917872105718873584417619535537512300389373720033098112579806877908384972582449755109858254595060987262916786942095424832437845127248926966964637613488058400019120554248766626623722730076204146545285715254826874100326202354697184151201758191056779626414300686480200490077125666257982996243915223599804637290098770316542690868351826328172550922855230398032828134779174159226699718542570483867962013158847926129088169081545714201703942568305170522582648508358469372571093035292184424617265362636768685392527191191869946182118019984382883270116161980402426967812605207201690378110797302938837333896031045407364057127394547549258347286684999658722879234550006109698217950237996299010407072142881234123282206379256996089939018214702413039119108749593204406806487047547833878051215853833604952536098159567373217754826474784181091015750636791068554402895063153809264669449158951074271220626280533412351444533337778291021513942639213029955579243355481694655738908531981619739150993732655623532122292350599078078164287336358774790147928141493853046206200124954219618680835736575887873766877699976553247828928202983008122890250779854045808017205299182755939046483694003037699103136433299859283742413708707200172335887623916584928557531706281775243046670766177033546604182012176705903047452427421829146574511936582186436055273168574593040317654794024097513840985670795625973681840218996652449182280287952554812100500198213280381810652738463290816833402044953716507793670267634996746169637611424698791043505464340631704532047678354494932546705007908675856877850827586183102444067281298682726578305521147610856968200061853861468812539997773112847580407529797593924176996186299338828045775388281634792802296622612963509144641939279875612824343166310486934865550964233191961081812041289792214877368675081831305738541554683445840807082184715404938312794973304290980537490061124392856905474625095114729765627543579331396170100743803180964375523147556094105840167454385475013888527741366701235475918351556045135930937057312253986554522888498955567434825415077868286040447436844058737298171302102920896112163137231292130324357355881564051100091074321118068282986566277444352232792578865879718696230722311564154581024539134226346284748360380994961277893154769585302057517369352065037978257650726131497286091910506971594704331373271643117335725404682612169421966198093455649199637321380490948019060093771586182083589204335922141497330903456414789696164224116479281004259017695852241533457401915319085958392066646624370094788708294659404974697913500736386193564756842343154384633182782727307589322047096047206502530677619275203533901753675244162424182524680817219154199374604874550061733802203271086836794860347676070334148080849759366085728860012938826615472049412100005289691165421835752621540212562932224107648019712057818783001445540120286813629425636125719012535491363041809861699547426523151133268196016318520348210573219908305780487235416454978276554447292194248890567007695770159099983643852033261219847766534187762889094731315455191596504096510448085829740630728254560701001462109306926596151579030141765007497564268736243277701521916442044723425587165862613427686915767482571300419606390291279829607631674051412754392462499095622023051588022669081389357659082058751415814576677105648261753685593155674509139441719167162243603170900345858703681150336291799536979324905868382980240736662276237352904510949958861621156176778799244764418623666147816467696216105534022264477111422375981721876673804571201715152229115557313776550861101111489079764798274607276412394074467179952238130404042042288552287429935018108798329907574197262278240469744993174081823498808466044178292624418494590989901813772612592250628244127846529562918825755744600850453120193648232138835624074373469296097056990278827219754699211972313270237068211762156146297526805242278578998889430382983681616856601064516915576339311586738008535242233397509813252743867541149488504707734714648583574917761812078426616421019170849727810013439712514240838326074297138391058645133689097498149352351182296432356946050473885943713845237779584622905931297294277299880904772846665376330770310531063637223452631845618387242124864115517084787926530932285833786060368166782747523816709281907497512450793897655866800283792368231509505168637948226234498897914792949016532650284025687836756352612495712926268968365185190405554582342024014229414485064587457693340218612073769325632148776441362439844485784358903948208361748749506216864278765296003437542949236433529013330636405983664746454065617047869719508054805932564698555128548151539070822364312776395663697681038509150893288263401782507795023640532338555933358676831511687308002283133703336681509181249257964808535104396678825981147039945228243648966249751081831999381915110047032003351313539635521577958090887648832942679129030199619275642704124826461016073224341504814054292884798972864097389958104116065979748256281392749585613750829906260699474349414547386541415039257346834128878304846650535897627026562603438862534719612784569285091782584129239270661014432166156553203881133547539985928401424423863983825936510987266953809673373211421388664166180035695796561677875528247167690254396025692606567942038489736715574331022664700676673270818565322616121995767029821660105459436278587979090045703730538738670683994726667122863453984076029132424817690302880188382779143901773774029969898487910359230943737210437173836832210866937049948821595361772921416761244580562568023526394624359971656820678614527103781565248296451406662933167787689144329470035905053263230656343749376189525593403725370389211454549222662465733769646877505757263202371302227768542413962280175783721736928506476635423529812759469870109363341784506231982242238592212454888350301652605941924716032995034131203678546087413118772098682223136442856939042997162186160915249339597855385131445047709172261037190445043769118169401586884842852524871481129035626773987147732170052196085796804304729503977228415201217933819746582803170056454670247183693853612965224699563245966119501724974075894661034522122375503600554655906308095472300319081635194820943247775873596862312613621824786528501568187074331433740475469522714465267576404065404880426244434193198096393973564391233314789489887119487871097797617396225179756842255881170489488971741944827855304931067624751160827726447343559595183294159500574297669355978975024681830849068494881597881257614901902848841562075838857864890254574463506644605297006158487537506495105351058594745897903381384540062978267054079424568816714086742841379812210736940323644725344585939675337796150436982505633581838203934926410710266787104315484595863458149760699028227298287506588968741077521926216082322292596078864030633980305992418872838251595344721179462634425670006130908693433235781671650372485468604511007523014501473557977697114675784297728149829683059972441194497088835437370194274517825592173782674354594546531011159398084515999322805367405823580538729304128572429809883803951203247316895254117043469223700278825030249759951176032252093965625893732817461027015979039929496390612845191821574837550248488519929207368458539958203011416304087536821674604701981216315050969575894003695626254937302638549341052621903501725945777324507531424251194798046897085500264942278631191291990841737441032179883538425104259552218986117968287448702802042443196470659172057997538008823185275998114972506687759132308004375545967875551144800930479629415127771915657197518168729618162896531507291552816006899694558215201743393119403132647922112961882013546394029730082291062181989712230810128457720624972327859502532746866046885070133415344228840002403778129046250022806536221332287375309363539729071204607346845327426267899360535077688526594737339084291292451702404800652289375734966791800691109384823792562288405765526823806480937351530478402282407459182752781286586078086801208872029339161242994120696783678726422452207028587795534021904643976793377773722640788626618359153991187860972359443023641709008721054319299701973121649420148853617852409761287588431216668901027478924763125680023937900676935208628084206071964377449959004331212436576761293314908045319911252707329090380247983609863466476085792401140391363737709575413676297416664683839363180352085614746478480249706267676646775099834475303227379635705522789753735771367832478575584526072393610806887064463044915167427030848586302217292017641574251965356691674339320828067794667503628061067108349481944782514298113628370284079990945063163859588045903354532125791088310061901551722839733703928087974746997244795242671188529114026266745821163490463088117297211514679388047511587526744668625658176254096811010707200194368239887696463031204120020166616567608405766977555238683085258603081244770841111159922248312655468661379505695305571045578561119984491963299714101604058868688078351798291101875321044548631161004791629537018538147965050793100114843561157435747017909033038721907446167791508447586754954925994195929558473249414623953363149620164954136168788020847844527138537818155513272446273508839489727804671616474941482512554213083565695958253554297629581941455816819950257524334610141049480795530596245091086427008958717685634220939787402109426140365455357122181955322568840691141593142470582786444951465375354295552375589482194762981787938352921636715532464690185653060341130194489547957567839748369882503028175458802165847643927250806596927899302239158609938577757110075182122546900532625749250748383862277283715985343249941348469762824088774796919994015575955028606217365353136780410520479576121082892443089944085394294035229731831907185238361723392237921067862396060384198247657642625820702175237753982912032807590611031424286121284121586063599716170135784927734948552818751762639549815343328622890486186807075782499635393802187487940352049861764948355443527278680219997015564118621004117571901614682989390964705677682130843237993010205696326184837597797674232832769258551454737348130723765115329733928113638114526014096198280019975943524343997960174423645554669515469645828733589489754279881187885881531764423268544330810944330924945637294012982650874838529627493388103246795679084078595078850584927296223465857399219549070388191662657294512131109219037130888475407019784400514570246688967621999431484940139857823334559406334541334780465493410389637335737500566448589225593151171261423956966390421098642775710197615769829606288092917301127566680975728710441456608232893413018370225474489656632207048707038996611276531077381731749361080986971297461705008757970381995990413728445155461607079230500042909798578521840198453133940782895272119556056073071817470209213132306607811341625687812365130942788278332953092350687994801492420501851419048131506695653068673412007320182304529790741450989959573618836897323478970602357546431517410648750010722900303380018482104368762799657735270655314606499171506976128255118701143636450702525909869480082220935269676547074406755273525071200152043146271615370287521570454685303515579934241720961860856118369114558872516424330323577803878921326735935068922228615894567856520229685936781347003512786591975941956759692845874154406218318803003658037714170804863621716955190295792125673490223484644854290891741208543196749290252715443127885648725033554386242240311862938235621634182399623847332924835608928732303030856472560105169596432694287902008706463573933079300915538021408858698233864746641937172968650168786244552810650073624928741832188364138138279955457649442294516048445613838571770027741122552276881274853822016282056205400489802845787282618569445227278189702368666764874861372250417598001779953665606628152720921833239684340675678068968208564487395333995096041075916239783577978179977216171442812520900936762607444417117137999881029080727070217164421844291760099226784490749352501535816540731415868781341467317495574668037007317765402163830690965840562156574809974701809437878511662389833690858692713747841769827934338271677198941750285856944164442761455272473637457475109073074072980307841618350474861856021773504973983454522966399763301294004700884014707803603075905026610917424078322727678797535636773066679774027855085536171701800626794146238542440569537652812994123918588477353599873131873703986388074192652643516790448254284654845190811470456514840203492501769050613976400008405317866329751419133930827674367293963417579777211321244010081262155893821058851251927148761232373501092683731917104336987795665019908785867170110709302588028529147167700125481101605725825702644887752980953263554492219005280892077193083330986997246622732872886073821801018063124362155806720812174016316363759734272912133792192693569161183359966511223859247018695738179514593844351308413578332354609937779323602237654201535438013161868885354919337300824041880360614487872467701015750256351136663006984083102240218074761466879104707701874692772467892730046018477407918291860553398225101980534873107900441374163876242534651735003088217211397670305024787638558182946952671053619809236284822247340181420823599704475067072146062483180227233598664377686867663098414671077717311723195191793937822640758837149395080221871164679588899854878387661083521369320713023148601403684695250635809687334530465841430689695710847906484429158282190295642072234743224803405160535060371759762688327809041545672052147123130177031452653604593596417689581724240819533851470369214355720001154007846139539659108072083221357804280608175688972900829775019116514301627488471970848249029528650004892919127708610468891709699755980189977595178686149849795612052294204863159287735897903057971123577344515719219445594089048682085588432432795045708827235979476496442751888198314206263983918590071838111555393867400878403562398777518559940929146645248512080951054677137324300071919620599952826891114800436525089206369632581534012385539476235412891581595291671191672335633245300957230271425040744530236997785437555825258258064477656575918893449700215196297042685105215029696293767462435827653419090158760604465553048377655222358434355511072552814308598190046868662225643339662416260002295693026584939307567302696277453868215861351833870555901353588342507247468477737068942343406769385719095323660263962565607970818840436331183707020093689915018938970325506903463325126648607236944232705434132153063042870534549517553753594726813428540620147922749804406173068600393104011393734836482068693258564940953440139754873261326687806571242587161711618235637982563006141461547048719772581222093271455307006695241379083426924710149522664697026515748975141647905792996799011641097502335847890976376522777878188739533132630340162754295306428406685496461793242286516205486001405311279996058988575457677020518723336378916341387618111595692981409224350330081552497063516530399681831992274220161990194085267272615804943760154867610290579879862781530221706529341177220053561711197227588545721112432283210333555347427292405169765542383578637208155942143865409409749739695592068046722500129952857841090370402015707197830756339754960044973496372370213789347425901410546418696461778206708197714433187330865671065685320771431213206903292164903215288910005838104306330955564542256078695917782752089159244894139137438145990917696457120136550489826765046917774282843597403879663395122750800978303142146368110401506145042178698401006427032343086259567676986068722427957772831622759236206684020336120024012919014091371434130275146427312497197038498324963541992544839712226702439983264185070097621195921211994782862126279399663628548969614657115389148804046162560497165951086343619035150313123373857727672689737542206182030144457713660701369787398468694859654961923556895822315353509729476438319193476507805938926678968684825337866175191597667141651045960547569858861121030079498139831082067371031336830931717488768411787781943673660436684827361641853867590732797376041664494086576695338459370247723784697885454034980230046416917257869435164528010933198645740274701648556133740616683887961509510885571317845605893303925234765326512284167251577109039321652726152031236012075973601797929910404111153131964447672928319053153314351735500631911862463406226826801153385118398070063182779769288639587233820915198055786214720340567089444315558124284249411778192534841765518048412111691288606183703603247840143859766034282401535404599140177730117267689012423132720094365998487939079312584947427950726761577395473212141968410649503333833777619137860970235412964052110673778640684322107103640171999116946104806874083545209558227180911444936387176435697646710205139525711012035896729809799011034354995039802302706258124755958688937481111120237375346785669916997719807610389517628006184224537056794555327003406270348706269941043354248873218294920975044902759253666416773010938727792814189033628577474780226437988486983746462671122236572878712263586435916693027861224154259628752656350579522308357362206862631246542646252620208353314809531264039094225179691884215387232162490613023216187705084674207729689376588199393186690378547833571246316802383704044197190742411416265702738646579699257306956250954330871013980159955923007868709111490997093621814415381581758026376171198126632937297588985624724320182833879942532216325365926250763777657915785137797549217499476490061524507056956489086013600156102192641932504321698703663431459300010674814523664964787361177020097400772864606487600792817492534682372898142558093017983642092166528553881445490429638359211464962452535635203082217205658969321581590922367817780960354802964128919552928515154947606226446132982528029013483742317094233367640575624551108947136680767313165384642443400617527906025919629708817985492357891141236791602959677236502026617574421733634671645525150609169391677403470918060938854279568907120576698577243227894858174197420710140070209363811455151561740184373670881173832001309505871828917995650944442842433623582130310625232784017202040469045964659199355017636453511402905939666385915056235442540452797404901864272893344527228623050276368071690645064818212657275137710526178675137923714852684235732695214000324074165902636085311671007099542446700736673336360482514192601427234236701053648198133970595098511508498754543644196554826496901233245129757424290147476080231363923509028541193549636961652016200182033644447849418870203726410858541704359117871472213488207321535332548051262746951133407245043257903733861667657327401434428175723205388187468796934126158699190697841801466807139738752360087667737633766595709837859293777968126527190457952344233810408082346871150814359907157939788125506636845917120375649504491457094490645166105999082501500601133160266980237689206551561003978837562699050683708810307178797139562096356732539916920247709638012778944686561811890263925425897970325910711153184275926977347872057594659635858681142761726162752182898855107307545311048015084863157987479025402656755831751906369931645137373528698277004861308573634519605924334209959241902079662117683661379507972611803772080398554343217461189463638765580090835883504093747413507399667218704623600086715152894686382540651443913138404157404587743411691616035790248206365084909833887196293761015248542726057238912007090604401011748851124316808347239220672072952873614926017222043756432418663537900649456606529193948958907180513431672077386334261454815589422078653198317134881048440922897246243390292345934599536375776966705399208314556366537127631251420983886676140747365170159807926399438813888272080391540832093136863631038230769254500989752578048850209179210950551506746797192827447842574591454288911063330428810107379212607722995588759905378355133755455731683404689111797907345290981979707903487011402148482064970954158718818103972446535901127329665885511187462353930511036415921995436225661697317192871352894050738437633461666488136103082443741927758354009183044114759448025024363091673881930123216687574182336323672009665246927877484984692232720535872889262543091173673610028164117861947149367791461887246839836012329505253400243449604505563116602756165219036822364988820603822397675700213933009065345928947795385064378282005326214853097769664079206526820457910103303460480145710222835657088570286588094766175637905133677237456858532490542231807326512975591630576412057190165446990372102726157342878964879534515056012739464764000673206414290961537131530241074352654634650471607919692606658195543310454383432715576659649806791560269232275123815342904933650768772929699524018860940972456051253571692199260203397646680143982406450224884129250192701574066608602661854667408523595374752081450320353387174602545746263900100894159845013123434639529680214448493743989296954916243268670629127814167027231325514867579109426731829060272555824371189139048703901159787080564337219691102962964456929108124527806755348187631337162698987057825917726168229527341990259876803118416979081594554872343166270139839591101677635425032638118784185570534569311903458358250904016470201890761760164079696529456212754455315963236302333905255383411726870185727101789292226931363614336468003054147399494115061231307674635816303476942992251793577045886418718989313520619304613732639421905310805915874267896289866089143146709892327238227868324635915089849453500902821054632236152220516021378268570371968226316241339970017115736436106987524012376615778116968604235361897458363181443915183129044087294748845194493690549495809811503721306910017766363369480020374476472817342845259109559763951268847496608988389378285704236412420092011896095219705170216611240471022485758731709055401542595044033243904700088737304779976586459038537890851900438320311694674472258796252730643643195212938128227249022719732141314011100955974863934198714952589016574652351388335899964413898953037653582390677002713579065738190236813073548448334174204946727305320185722677415728025726232463191850845887833590958093197955329381759467918416985337464650890017391650812264568266105164628568265885348576096798826567310210256256513811516656154602591861998302304590118119133597098519890016972140951070175106875865688406692716028286773908881924168835483132034072818531982879547353030103964298798688595771457120597982901648562586723428799719264478625285073992065358640869325050602576400916937446231254133982897263940085183314638900848381393927543513045608524387277019678709484853699623796729706571648401893410844655045833132778849881115502405326820486574931826542238661656561353702725468017392932139472346864821047352062878898016318794221042084638199876638441122766438999286882897829836828165288822697839449518555097295273650187282963937706715939767793262810039827477882370669678784077767317615649195834587533613165674274480974335619776386037378023976119170127862634577858846635811111367045648609658280222103364379357158490725470035251200880739061878380458678189866120118309307951499516584296947646657621310616490694956993868388290044612207071302223863195793105165397639779575591898335391596210381284015121647201820227219878195719739250055056696152836946176099908330072984316876316377468929293911064726491828433265555018515184442839025267375185449634923979854716966483452525985475819164355331659878146136511764025532027872046761430576714010221829064561649653425078565752970644923995076376416083415649903203910499866035116134190670169933264061858187441900432159870981944432607441914510697565112496427087534581954475874276509169868800743083774539954506211399143608723691026956321138453094467624043192545909089082122527544722339435618230857131147849803947618587552399821124299028887453693543962574082987594941552990960897621488112714583074138213190940619081342211353375582848283551884784999143565442100396703199931891305050193645269447884071215054064062654975865614085699109413214101871721405930221053565863520754394783958026793507818571932050461712381835120937124830676442336460677913705643617158424559025897692512237770662631845078934560917879811109561254107106196968187227024486003644375700108142597896890911874361526863134062037363857675431455444647545482987689667034308492345164496986308774238144086336799528061418886622749039496214120883439964279502572701689369060819667292953954739222562924283660337108093834731220217792086043926270167210201405179467155990257988948443413878357090361022663221075829383742656740108060185458153229641736261233561783068391733379976523488125591774577871183359361501252201474431773678030716538375539139774809268015575791394397370256632840220914640459911275338564724473211039899407649382092090844151845794210845678878676470292792880824584672209593567458313242869556596880208483886579720772683573235124608114923276123425519707227461156969645790963344839831393194494992326415255515386067332457375049530690556864380272273958487153065021240710803494402802398348384074476801077885013904462716949388615138053606934561491034808193670533952874699137411043132418912689052556381589862088979316474020426389394010520291126275236997641313840636677344994943312655588208748135003130623093925019614389420268942129796273634764562502228463778341716803805816936294135961781303925664257445551078246643215384336672731034600372595676202398714371108215097483357182856498604864905042162884140841205808823019526608582437864841096528091562131728510252718997198001021486447663833943327083238762772481741957715388701829055350945872774068027502967703941528454820950138733726337090135475117259698537422493247154561519432564888537178129660200841398367057691269697095374098886470288162919572775710970239729793231817912999407065827923864805809714279118722507883130688219718550975271437937611483246803935546768575884715486387671737763123809177724725755544523151444235871203019607688495684800078731814114797663542177829754345864566970512177273207518903474322788855794266196212619090445444473254454771663226742315265154480439073697513243652855395314664763830235890094620879853574979331223097619688572847282942040569644383582969462761389933187628929594406006445237079640911007629703163245678472730808205076824477014805243130292719194233480472208028388870873652927478115756534917404104106528235633701120691496534674448603550260869748824214723433638450920414633457821323274495970553861318729667116165265048064605611265473513844345817252667506504240239410763467088193347857548650231514022268581991849360704584544733492838718815607688942609535204400512818735606136717423576560498191796466280583434690213885555747699652317138784882870100785931126061972632452820070885105283480008521596257690808603775826788670272954136714590485240332309891853888180305024753401375116762297872975501943228436677200203752746947137028861474792404867966568431599006334245009414550563611638570789796340981804213803733900937122228746452917798132205732679613463787898378959903128547542582519681304454103559063849555706638508424795077238649729501152173812001994617759460004164420960429413485800408848419285543432206043379941696970818771328143066891216302934412413855101399048251721281288016517409115737399937728833334301479540615575289564233640897420009583254380448724620582534228951414003530293622612120390785217566878441358742917410897084929273064020559904253774158959267499279616687182332864107040895227236413208973921042159977008969428251688750708713000639981233613101943634925292209327265887507916241435600159307954467768276002289088951219899264112341920768981059443254150923806828949495673055359915136523793235199247668563951475648719919896657441798420975130031006840192581691744825914574243679675422440240556496283386286599743420990098222216346312954973814206119386430215330634343407353045996110154336918061119337428973015319365959895824516261244850759762409237470932868882985301854162455687885682648638187757679455081236906632464594025716478813391994880309967554453592662615050150569965450090867599887182240896135987282535878116233605480699932018157438277734102875454698700643244543355742952134377928061517202297377656185793932124488722184397680934424090684642066007882222713891694686351213666704839151145399094882698421997063104355842957362967525964401033025506374557033637112718011987485682053997492847675779345276467643005072583228433300095043814645095779608657725109601776653263413532122701845223834277686070247516236780760769899991127940091898845583541381159176854516390778004120431576211911038902093815652432789340009163176252880129989235034874246938792586158728569993106864634626133535740757943273359201948132969902332145328927390633670212854583284766168118813344310305129577171842759872265535096630360211931345164080306138567662430082468517181011208966422698214780428481385755751718290591891948775881741319359444691667144936825499769679687916335807159872210515364427361143481683015335729754653990465361398014951095302301235992444150535506455351911763818798564097787374918493475640519348053678302516837904169140759878711038456049769005309020310494357836533704163038618309396390711953318002624288985072012441606616997781323190981437793562869315331506747544144287325003197255118281618795827756776020473971570316521729021676829351096698971556673055744936716773047187170877720290618866202899113551536696414052414689932713690616038611825235997975579727827917279589013152665523120714255440376030155641705818542863100468773334894800547336021695944412634535806813533743370906577068137528066940455720858138334967613463232905033122702165999190307317772080046943274125858178880114308294938966564761386661135417416031305027437880055455679554069625931868158693196729423273862892287255882206624651396426137131678021033849836173286753030505444545713711844532725886744377235984742153894657045438046095092730656834400615520752184445090534337404491168102729210469697243922296057590301225298653048578262808035692623071819233942942470330234281460449129750552083309010912068610713633651750135011815646980249611756305370525111940901830044743155412626522586780611539998935867858199236155214258367235407461875407002524160696729304994383421592043494571579269009031415361392509728601470561411019402691033901894933867147669138724286675595064973524687168501282846694888649929062499363375416472576590614995681094713093647289111020898401648544883122009106184828828332985534900960512382755309741150769712775831640040211556047921479233501759634873425775672128592222178053541162653096050441137460682452915207772770900055451600302106574785073642364316228361374434417976304678244557151308708729488690075225415478311082714040311709649670646881399670822998724036668894794126593665035557601121958646980424198146373369484024649774890883150197989524882041921021920536443749815918611269220432629293930134031891074839695931759525733109586032241901043334096080936300886501522098682707154887267499371116426617400960133168603847004201897557062340737222983773589331574308597597543092673571569752040056243071169379129217422825553887350614705703882679515072901558446230231386157228723461654334099651774935853547296981758630110412913898287449612250341023046653901230259220962025586801453948680015209482282350473319794430125925167180996050270838069116643323487856296642083182253299736273068192214015369789830350501359778597682618670688829409995916064181319328948867950703236506431215630243829386378443837385185103469440815151541733122607252726014215670967947525859033395436532596275111261019085791205424660580086374998672745439564593717734626153116728357369881866166918604025670895680387462610420933532079581773425569615631205239053423129031204331612050766977928549038516882908817836373045329594183819599055830874718683680980087930021333842632775811754813495703104092761404557882593460980367804117554072999972380586150124581790027086249647364775943514006034627328977608670816911077101780139058829616790773393678811373544891172403934809400761293051919078471004000047075235986848956564729874876175488298577928340217579354609922631667684673276388748404271505327683994663457190629429476243855463612232713010798315800338530587933596154676287446114093010447312127766717804598304344393794836930725486023906539463071570709501515288414822937493424883381273761801581969278502827359049025714775937353161032920641545778732225300752475262276278254715068928052113019751622098576278016250522372662546299730333407853011489829490150023220557475395535675864682177387589070991953190520573518095404961240274325502327958900321140112637561876394856953989570834357517976381515486710239362221113354637817899255433019093523435432260453713632932010600639514532105760494089794925991774230740238459637869597331807365414326566152174242008082394172061391215097506436745210457734608879567367739629347999409604900884660772091339626435559785815849408504443908439538167749946487866825146170567691493692796535613333290620723263146207345026958396474513615322599156668136000185844733857246096644441585444744351499581136846522111135128345203565712666736309449849714971533996699343313514523666239041895587565652864439249583883172981214153960111487652876907822371510866198822401200229945295043616273415654672241735631654948738789129378853861533085960369082725228574633039805865335644462991538874896591957299296132297791293663275295287569728934054917247451768275430067429039775069345984133038997386243469679845011892856858471166153544937914168659618728870583625105827412061768811350749688680657173727234315552119165266072484040765477196570702994891080235881965998155291957235998298905156780908140352628693236043849523196301500360449002565320454332669731064250507732868217646943235734945302901920245924541782377480368594873865971528812375595232765511689488308750870011217325314530310409953307421588125451139418693414494374363984130954732342820518653018965129712009847843462554477948239691825013526793800879073386916201381064516655800590553833967829688437257957675971169110494144721484709133961541031360839454617063621375001336718475568656342845289639142524453117572395058826566332107640106017665295475355742701130477052134401029074042381834803418027720541096281570203796372899884021240172616838331433107560194117236817726623495364893537721618246373517883264492010245883382458367251742979115514804875136348812915443435475136360886434380122787229331893425448194047152681529183563088819279390820572509888789937067850154021483876535280158925737525191684843900924128471707779193689656173061398336973795175001590403269194655737308733694077061989372540829964752912223825562642493047773739663657080596451951616317253310274742869516066852152565679909100908896540832184996855679286615353755948759207322838727460901254816382265488152755801315329397247813525624795087826219389863142723769678263117536408428379058697850441702701833908195769645445786141009724604732038139808424524171627030727695639133775787231673162053126885166067095467456272337488668756792973844347074453707637454963657350685062535195319041752013543617682968335787190550978679104868032254274230909364774527508631286588088547106950936296081092256129388408367689449403886886513231882322095636005415154199871258098738658377563140091698937284191282266075759861869505815094991399238722070552575097469676653431653592387368521654258009943595234722716271545241275653299761597584120371874118871729316687810508665845167708232776607189915951727223103462364059896410417773203971486842187485945755379241255828570320286674046017382705671493024541286291887861476236005046660955170721666050941453458300900553749127863298210089100935212458812985568460596031333063062939179016577279772540186209006142383322122303401436862906453975042976487614315005264955114554002875168613008430811037218949788392101024242877281504387224715172800660682523718735152267480610719688421705503792983846117651446011568801035989515660233911313612729682992541708395397751676237070424976987643529942030018790825504951986594146276116009194083240241311889369000342975022631243796341297815731798437735202701938226746772377982485928225237945052358552774814154693372949542725783309192504377317381301210235615533491732742346696098260435141789823908108627492784778958912460458613994053551263060215038327774763549928349750900516249580492662976389669144479691425819747029932001416460955079827437565485997016974112294521797076388766906024880705330982335360823323216365657327260821477403916118442940428952126399352209291018226969630201456423722887014260416980798241434801203476107606982659170805521822945273282945499511584912093031336282449753925189538785793139033187519002673219097370993342523155074640560842342607476183223491582899085203453430261725142721867751904892203534885227350595465872750319888108452744103566845355090606916827313523554624870303903910559610999812303210762307676183947489605157159514100595934030828273582516580569132840064995376054548081744059690904705073066019450082453237728320467722037782077079961318854315612058597025819717442263364823408707194732116358250889169501160492824926269470802172967909704960257257372357267958777208708910998721325339995227531081821912671127818177247463972242889722968278011190433964730068203478552155860175874967611894971873235286003568163263628564888238163036262147298100942579198490557226487058504260091276435935836530913969833159425511738100750446547956983111701431086075853816130299764631514937766836222200222981531928085992133849255815560851523132089639376150289275519027544774393230974676740003467151166667365739805309095078078927773415734902066486332106905088285572280412921459846548771743626731269259814062005007389199970583990501478141003107335069571624470513324129917464319422148744084088165180501199766596014960532373373088095655296874134595629867210254873796967621705631437084193321652887778053650325256478539269244088668022788770166229494514076416350147605250730727818764465980201604875016410915119594026514596003425446236881547554395710171086687325498590531325375068859627307517415503966978895112753674614541724152956048388752771125268762150061639932045162451792191739495118045104115539262886994463425889329368571027323644585899884363351830576242415792209682870406919390984430186894303586689610139903105142021646707963848891646039616155565559198465176288441149935202347915084047555702467440546132295156611531160968625575416013940830953939014872119146987668083051588961218104974926005974584498808772175786997076352936911703816779842214941024463820928798335976717380323053612415392790032076114038594263243366210523442731545499184562574507686437085505646476450714498814185841058281393092242820140934007810084571602989429855515841551329630632400898475438609738827202903528658863801295579245094460782389199992773829010150568506549471713692669274434782971312843203608231844944414501793273661622900221442960082976784567990927436034045786760214440982798913616893517108972661107546739721146005707450121593666302740446350571966421222677522733153864507562323759261784470457791646807428425003145654896435373694093255460579547170247620099776646671820361404490409790237277711168001549147227843469272024806138359034657029430910847374637173364877092361555093976601411358952170049049770437004020775739054006405670544125896010406376223732597147836106123019144059868156454601302054121052901300521320398318130056357549702940776291326487013158212106461324747233789839904072248228228900936824284147834745826150360506542877132137276098541406051283943747534139239816967829585525721291637357689288486750314303929686195241759623507220777389631575234935034816428853675712386855852042492972780619330028587873905283419752225389502402030497552819803612130693968573924218583869380240923312664480834816158317153415427163860830752016076367071013380985057935678760983176713152017034754664604972839255443164291524413626246831352520513093403801976469436489061520470725599842275141414890695253313173623110331356045348448928151904493957284798341093120822603450013111930254846195286432388323158280636709371295272783095998852661655874485909003191217371590540759426250292686774726679130207642834385608185075955238470945193974797329928667838664361057668883840476989717921529738978208126033083082231560699875560842521709394985741876874377227016723616507602325984070986681721469930707274378588188038656462245367022671903783040288415775355406347357761711547267179880900638370317547392126550123302328330823768083806557522843701941505113281718724049536351790774888886547534897929862819193763589168922987852253616048879333029125777968207756355575197781426796963552656100757532157506527570773245779854115244053340676699606698708878733188350005075232447427478876774724054381379958320134501407242956852039396827662044016055024928668835658588992268323765706465008343668025656665940233396154535391232924485135803775376678660339353127702856955330166963627665557084315742668649746991823439634887220970761630025444083890405921986866281511764624844219262574672779763005552755403874066199330163140266554527473043185917920204106244919257298460649044885346540394937825785920529225319092509733671197728181296341965983396659452846518551216788358315948301742532665236143958243741288912010183319758750296234051679925857476181910689764741308909748289937891477893139143022268820979210289852181940107417626941958714965223730661155496965318492564115239015942127336577489605515088600450933031942389053635620519049949025664426630225165266811595213195639024403986799778796702628586036853103716379726434814402446450957600130280535020910979157398040875806042515106719868161392259453585737617855498746243743175327883430027800517000352055023163968234913867061982625153640068163457682600855323320352376823004564836661168292401276938537542355344320312600030698083268218852362037934901849318259175933062890999944279162879884634488289712814932588017203918308795739975377714571087463642627298434849999809280775691674646341355030658489498198714667079449134501294529665293201209209125285504711606590812218760130479082291014857961617825262090719920058691764049188645379060055935875211659322393309530247552446137787594509844926511926840058188584111236707843392971788003679455387088340668063862885530274428100803307712482117858008833809480776226886426684726043390238230865498954010848106923418439913865443580187586078010203125110018757175317531322716726448824738626725280025037612357917993307519354640597194206729290940628549875309418463977018507341640300693490347494772982478794666016723454204905633397330255188745708628010497184516507810640953523774878885404433827055712997242125219391749405184122944686943388673395036680594812592861704828073796671147408244625684840760981120618856666023220133857043007021909297950015389103587700485116560828235277079193018831698343583523067854049179666879298115851952583078968663659585502627725599309159999240701340517706550446917865158832321032419060029583756887389412085267089052498449642262983707696724390646600001655487461918822339783962366520085937838733429575468390779975796508194072936314265197942856546709900974480796711974950418969573799897830087175438150209691925204032185724327628828425388008438664845745853893822140193744262979313373341354438629867827850251154815363127936224025651682938430805411024070627728870277228651119010447677505745817095116510230744801583371198136165271714078461079115690003652540535729522825126061126542963993948561305936356087744712331781502081218521157931834060083801545904112651867913215538167853150555921433799702938040792713832215904963694252206766121597006424753417370299533838620030205827138075568971878919911281360314285988296026462514562673417323141655711752796868452599408359300450622913143706734606771384401381191442163746564141137580909778715328609437665611359685310762211769161548108856378379401067318075978435463099487199855256806405315123845068548642972809676391182765216937166011932920175663712189578512067217256201412834968030069630404422882703004624122064045185783040372252021404315509340876910813975543837796050724011401616963454798994758240157380758372727263373789983585214393017638577889006451009004552517856508310417916672509210745097138751353406620366079241024290172974743567944864967501329297245904883103879280927523878467640389900534074342218517942342832660180659288601084807302346519206389069540049082128508921151562364023342408041861467894671770352934830341645980968335939375478338027166390825644327634505570812423879012813511939832642317116258394240619220358045150581604340046421211088782193889104815234681086709183720683321618290220253389486658427118260994327029244515412179247761423392461225661092239452538896664223339970194445996128498299864210183859064884619460816151556829666990006932032689197426346169795488755768888605212074087900989084723364402296701843098145491395443404166451834250118677780270326085152905219190464309331884378278990222481965981061369048885170060722123997621569477393790441176206652749806461978473872038014434884068204313600749320560232130315829638891809268506273958614976438173916430685606740817872109601316903924903236737246588059198530363181351205880249576917524081762097699425636420112083802699764177880702439530074205838646437777048795741790281062452178944222095258896599961686682621491601748988807242120422841461466357074328635815787146016538556569045519120698693650295484986453125528630474660881760853381981202855143748428166081115976973249296164021367691307759016452529498917215162440709823355581694651192546906212695919559907593079930307108071060407298820047072070076019305333512871497490055439661805513522493746301455144079298334151042946760464174132921046671319161341857015222568706231805873504179018079846838706930119209107428954917853536787858759333942334002587330170075132331081536120201672933720235825624486192254281066604128978496155566809441167967097923465025949085792642639634354984583069845781190087146986792521969223781271138331729407620792897656003111990503289044711243341525130583871959217533805344264212098305871862303143786833570545474078616980759143731372013770533917955426811076201145455021185267443814854018217237439973325724507854945314250988056556425153612697142387612416654068326908955901983317440783467726410590930664118116971998678968388256963403201415707320146960819388686771075346260928658893602947156858135242106485207459740532188003730261454462545506018314907388521900945300062533844495199819933846370672713061873310168415883191693032604145155944554954888135779969668666745814524745603158867019899635889384433675619475323669316422443280514536158936900131545108321922151705241264968129976013400369005526067887803342826572236504924333535518804429248191617651385311939297257674500635038366307582490593977471592971165609214613361754092054142571984806216152785442330650497373447493754690679481812333266871090287981171058060372781738621255322521196174912846107263775465407122556236858450550609844119510981192322664877186319066508063773693114803656141505008701177041248454571640971028384557605296858534110369786916308809259892607205164038663873134461376754114817013458660140430245873229707540070115105254169027090008366055708518965899922383799651429883261118866721481307683452401414354541182741731982012259164852976828044110614403339894822054676953489906914641223447718163157148821409936560588695314141478481959479812607826546715500066178289288350110556043452409220179906273869980933566554292133227613185412632763723521104280347441400521966289925812164713734348959920441506661818811593587072411677581630777499202658354014000924949989933634364852791375235072409916850846272789487095676866852627811649016094455899270202247785938020267080006167653507825744647844771015188750284882627222347652033281379932817673472685962140933468000315774001282179258344357105916675432009168755362544758233409822197228058763547475978308116319718557955280372004434753156819178581064405998110508278516503126551680081216624546444022990068943604712744018599041680876081534158248696293940158261660739431989443254049994625700995922925710875949869754270883734136807244029714781377728193223509544508366677680848099184971027532780873417899781286470463064480879739978211767086542416236496570274681955931669979575475339250053092412818367419471102860232372896031810100021201677721784128598984884482645567827850923225004088598729494179434049372961525641576964806605391922056791068125216752469335519855815714793734852721107486992025250487079803447573096520759995639096480542585672909980562454099461208881458732817308459489706103295290028132068843993786115765722617327985103373625579085687539396809493370001877544145280616968440893233202346579579818144148956434383517117760732539564454764583399738040340469115702341232850700600379648102661187722121673195531295870980940522612336846257354246203183961557006981149060079789161741859506477370469256024456499684052289061381704797699136855426367393429889385453610928084307811840137047032723334519498254488258293897608182934213793323897280714160959317697492800155203250646417484761015184633395457451279994633991795660041257367237894164150660874866786156805340976235777055512975199137283047185151293602665814579098471442073097804942871658305050857527801636226775860681671299078132105430797352447610785987585971100793929437231368285357536891569416126851031993398150546580706688679759824827611255824671124283797651325354345543208307404359933376009251278835144820836644369024044437418503120267320393902820245479513319818333830117374183119605319837338287633600419239662893601358618851020406461008936189632450161181390980671251001892955636261071642632248227924826149201752613854507422278165219960447250883704954151343564802138968003602772199925155749657238717254341103125773869959392687003500479155786766646633641688120170959149510162470591152406499850010977788006604402508317404408878281935357330794289931215756150400810078934343831613577255931077162985138206670916416505129855775527435601644206749707515763438990201234773256736266077892490109029080110627671527342508976687824953900201743359913513588410298043697327966211318678231614136470032274921006733830512152887560819703776700587303812659697885522596329948257128218190928858791814874769561450571550071732556448980902676204065069795896976805729620914479045764461852940856177286215302679480654960776159556876434985504521548004984216114380780913239802658117876941900923795262439643147479854553637192308029851956831556011604140493968408434157734344888145735948042389370297248099119667262016940328211049502739051909753540910891746283495415401232963087855988802851937138886638089060327633178512569344362411205322582661490128778641081158514711153312315879508144164832351763292071361493510600378936291853213267514217920509658906834708984803207907732391904637978483777368254460236263768525332088199344725274300224443453071361065742140758775189063446971388391747534390843472909911879457399382328781012152028005818065707875383389752052210663751559261370743971645254063802075145051213604904193431611205672041409076041817620776635581969149785240987004940412393922655822663883232685492769705299763925253599162256465490499662833074513867333749289526438066355345207114994485293394993707800289922663157468960341286016201056949491205341480235381618128298438706884432621414238996112898661442269798923106962203476245688556967480487053927884005251357949272308782086414906206700253472468437430967659102643345360612486879799139278789864548509899170025233971402691764724927390447852797178050783814651677787292401819566055428166869378063790061581636933341900333292974984007492152589125903380804776632125521151497275757434645904051964286085527982557013830456037515732713945549111584868729971071792274248203614708757084395444038056429695020213128922760562266802248342382166807866958748655515753096029182105819791561299211991491083797648700348869286611367746981288492701814263152426754272512564806755684753954423208188796436945271708054977420434579431055809254537217328724715082194065303162886273489658603699617752176057119239744295769452922027721458129691310828403144096901127926432543846187330582437847388694983735296104387765687444062568644600149262561882274342302994787244092466519751717572170800004522801054221195965846293919236621211136312361568865055713674337715260671928731721757335212304209381444749832039459287956740033769842978465182836184042256769853167954651201915018984922008499642449437005857162964949326389353459180152867183131075573009946686693566052136667909602435838113376996844202993358807557689932442316587541627171909051298622173902093816167736318157247343185886980042615531366456032238273261126401307601219190261084094132255562184460417754826609634341190565793555487290180054112023446814311770193436830341261745611123642134431104332000575772434309237698324927725717813940308362236767890994938868574483527760153024206996142993004229490278957343300236425011105862864480222340866119387413813534392872480742010077859056013791805663172959471508790377024538038932472452571229954879438977725001419351949252166720207803666408389537869263415839806422345534466568319363740507543588436618820793651569384147967073963264334458114423480610688861557548823644377375630324893633725466767835992313831724612382367065577598734768132317120269095196486398693038551810995633082058315045646257777439248827070367820769218930334210570224788639587421750296722604496216194702834988510690467320032422690184205062513459325929260103148452738992681384745674893532960368253934998045503941391844169910886746834023957565927368961186422735915616005177216038442780135926987731734695139823001563207059794662968614892078420989304125334163203231242767449773276828864411172767495505178097605968330392351029727012096398737281032840420510898106545524095685148805609665213337048116480843088988116565853064102783197149132455797336874799268645245868317388681915262613444335836639700720651507791457359409664928072591740082226383149271484750630511686203668872715671473987989178603636637124457632365836994291833422894497814472568938587557715651390826792874523703030848921310692116433468088820481136458821525330188500374897235232396506385304585133101346759595178991779835423064161613513472260396802749528584836407914492534911092452018772367933715951697358224946332617439926348327246258202125471951476061810805117321933495723012096898011100218041576658304684167547186288432911419439706006414438334070681018356832028667479077207371405174417824891163999557103956587636185170413750848233391878156389983322890347523925548856184580242056528912373767909972108427596627045720729872012878221456279311143376700016906813445081789604507562166419066397993360179226999231304345389664146270253127219601655169066364799587910885417248990230950686057036837591149102658103413607666372402951258310373866706872660157262177793743160706904457440437889991520169935962294362423684192006228243843598245639160066243001914312490048567426927463383828264673484376912638920370690727057395589444367299259963205103679504320080143216392728143060109059837695241817350867663756980319168054165598344237004320186452339988853060337225441826789189500458032015060718487993598718396208560248133504149122378533237357524438257488808720611370333226930691621379051026739917681388720328693585377931049734548021804242011627858554961594191259030177064332247099098117730060325326072427549732275724009867482910754721364994320302977507048005997110160983586667067090435954115109116509484072138021873285610936810477576412321761674003749483049685865034022581932796486518545312173324076298827197014211415985913289461090325576087512850253414698877575047128487102007900077234055570627438427979909774289068070558417677241828007780710570696751734058475875768215829620231350109539511828218423179148480681335213025007312646436069602877625252649620657240975741148900124866918854095721691694539060099359261137723822800210693730289551086092470729181971968174839699252548092918789553680286181809418720302351991204839277200952476433027890459069722349357334236143095082271968001532786274350894474790586160558684323821498146241423363877672158238528745056091759479890259427109098920521116567818087632838247629030053713119892676844544939897790696947341550969794473250037396337068045116099291684021426481697365911054687526113690527754760859094305855332873971858686014087691288269665709705389045125158816500190882896752142023490553546423314565051483976977290653347931140165359014376684858915357787665129844230768359389882755548896404709220913216044488126539403276772710776342253764753016504950779933845350177225327898999866696043685016621337437309940474193020231855556395146389190540357132523236477301919974126320580356507718767944036633812296897097522349577602380169233773034876530184754814451645225412156450999145830075483269471882138172971673081061499166922949415272204246451134161437481124283948739718752410482947790749026604982625404581035212312380435739237389847780006996986954620935214937415813080320091071988820298367633982535765979359630132830467299364644401886703652636313364673304807904839954965930761772850414040678987648582809899217935217156033821720205704992103830840289995642896764260791685559641035381735116288264624965318437379691212158873242766908940634451761175815815485121004310255207803668513099652843625011302742125805224561230260108254570165146637647627494284819834306350283431573217461813821329789276611886110094221588220628082421570605914380414358143709015198669070571087010537028620948999111768841327363122194093523781576448078896740131167976970382476356113222417246471753347238073750780036839241690643911015221130140337441961735836091179994990639339281195579993057790057177429721224714732624981623743177083794309435778021328093361610473013977052571332922198104216865227448953081778529332424260978184972028602590784158182299183296699419488176345544688262861039808136415208242538038572516029197797729353301097641119301542820430593358176631637146693586229236442227875732820245150134647405965972108190141522257845466413637618277916786063790758615420634103081519723703691600045477854826066157904726135168109780668136361587752932900358187333102018351657137301213045879347933576281789634208225722971923437458617537611349467153787754522722797182988450267886979935202717194144478195196546062291297203599857935800449613767486803399496313632573232869354028588149060162451625861880447246984984352047260416677099816893906614525123671977691676704749620603593227547629080191313643222601874480258162073363957626843264101066905103128882075602252114288793642485306905778185913933157386054349598955520803869681290249128965458839773095244951989237477976619122539874779666431152521839404319326027632144672867075707846526836703367176172124178884651350843110334857432501884422096128531232601605698316622932222756479234178534732277105859618375404046124570021833587396916941903877915787455676882260988604134370831312840108866532666516144435110626069049189059191849987204962376300461177734653505663870234679406977606799778989317176693702359811396974690528280551104417456411863141763420437843679377903113410185485797278857171512452523852225259139336163119190070890120192979498866141234355347876715041969485580419647050442705107379126675267967750233100618062598593287722543064882722276322301084980368439542033829329165004099507095481159877589609214054187248390054480370481383788857412815080750229301712176376958833154143133181641206162673572345335962628354765510824825852978706486911465665818952164415254792176997515572369540858707636136965934616519779655115701635648491434098284484931187859532586660750375492559297139990927900882256601597164308527783827565718398974153536792734875752602771939528722398052089521026966689328104338951496624845713106214197831361197042872902690636748050510241879717972536412723766153122122241085781636229882717654383447692631335908678187990616886270793907158135943509816062783742034756667850744227295599747430418999126598185049730380610548911609124996216690586142845426006765132976591605370828598412378889838116724589162259428992819818379374031178176361772148075670296725313785645960977130347023069871278683907724706917745059906756164745732181566135075303335523282116738670173323191960069798416154555405056574606172312003592087211950316982175464572351048554350929874816167932237642251032684435227973522713988416901207020947835236454008262187000855796586778085061193767202644255879083332333531893199859137489985755761895242073687069238148219890972260921711703232073300996186531577448583826062543449760752225052352510326116593378781318703675982517876516880032258650471764543702419754979757874392391283061273740728678506104460479458506122857196027910020426428866001925611922960365156174807725323274833903614073655976815652940017297497273777517889806457885696726698513449510045394126454912752385810468317206336043443416272894944940042688042763017546201600323413330115792460380524350561149586007480652892335076536015969502915864379776873422607396617417734491518560780759705604085729341635285905501170063631496697972049466071142929269742694733875274987124581433136425436277792460535756174850440995869315243204298845491697660823285744864861603124032350386011754831691135724158284415768004470123317814064838470575067865951941463365347171522733232307962242886553584674738515353260847226043763628814090818509778092175913545446617535649466207780145489193293016303997552692164160203734220515290189332866594149704684854826939012967997638530798695222125518629890284679868846425583082507066493515595158636773546986508723405949794882018098990995592442655831055055152685407711171970995688170220937625344848939564107046190908737736045772650906915380888334104658146521370906768207603020663058291297861458544447132834923307013131566129497404724738944101777104993256864442176128675339870127006434704412258165751166362195568313152909270778176774770849496948463502676513557954429322246904045431819405752704889280846711657454609954822850319824246801654436259319659409894766921843008112859815411284612100711694532381411784855038069592291448244402563860865647480700328493948195715835813947946763112077723970474308360262084393830825177904128248165621045438086501955378788576056849223213489258834473695577004362733292772017613952658565577441509384160735016403975979731544339124417917010132983379491948065970310377058883394193635751756045702571635929907341894720858003451311237785669152665339543667810058418889190091299856424963704619561826891270739430223911534243308613054786260948940615463697459105707586075234133113335145482697305318710628242564268737323180055070221327334221386950312412630613209930315515331488982768675788801255105483252259595900904234352869604494506224184246535020676576890221219203569669851354923360139657796289924865402211552878208210105813209846025414906469405143981084667945545162750801545083401439663452048779592102161455119387555995664023482573338988659366202656004307088743717422000045563747521876684839238716899989618529836081069124926825792654349043661021849261817542418605699496083131407107375770580889287197831495151629049444076056751611466954492661690548717666083653724928989375527602812125161308407250603920407936702581146366579382878088574343093404752258772748874720472884937198509712829649667590220443591469493047379444371874188800637459786291771510889176572075716706020930535647208624813471348807403610433061422680202560503882668891727286179622236214458495322899659374967119980605072355518501568912661018840257629602705020946447041130869269736209726630552413762853289797118372588038855688154300910794161991078376594650978509369341309976114854039350816624372019746061277739452564400851923895168062645063315539546402546946259570359806583186959563977786746748830954456873594625319131823573582254509578082879297233022770480082106995595310669679851378135210224512906401659076335772261434730208528065808755115401209893206181447370051333137352598152583191815776491394107920019822717253453940608629352865350726182827970179979767576491747371603641526206067466292423995026000939834693157551897464345201370098640532831272019188662612011162674608609335557370837393137143654586940325675923800007914410639449298287439482365060904925955941480294528118569500482425331757916932098315373269671159754853263518035613135283069936672274081724256385052934670308244977954680873256106534876529402697895539090151994214140715885505453620114216645404904510950939829591737751252318174985518832244839892279405955283250942627230131979156666055934115236592544113935003338994920780035851232662986115575657289931627457310182405370020634737900690356835335857257400877312569453514233148674169259867926341653439346866646413333151883645260832230910263134794727225574699369394673109617554980040060558088694807310389451528486921251512100708041888273329555602929622294878750904226832398164830095701140037174592694218508128079506856357799276058777025742561227217895874586015122111192835313458960214584327706787833173616672262687142588316758445353412733992013545406150045562260788390156460254203135568393363186195049189128769157270563334821397552640804662600298602663623766161835305047292737542106878963533305214821631689455675039194471229042248958832031915183674287700736670291540167251608228568289752042693523626247502136725892833890027588559044777573460679628005075836330800099639531421829224620071919821395873439308764429262560992236030557473411528198192767326768779659110800769205877718670309824580086772481842731136602385644222427558380735267833571790308388013904878650056196417945887956920005503628081852742205952905879734528708149478207294115287502912841593060703953069381051516058479309565458576163797028839599882476318830577396773721073246779547506274167545543982146650104572022942738855907923265623744584830990875734190811943019818873586615526606745899994749988124573423670295677487328396574686250351777416511916208736280166187222915508072906367057440131839565994638045819843931367892099949208331966144064612755962753708880038524215737292798842443479020585007250983765762133805297874680420589240320774177024411746775836712968484972558870930953483342703835374958978005477666784859585788366162398758966802894282089688035417902392139397367754440529988670424091077219707843933489384117619435109396420817298267073490349000658101268294436783024302700358298753355587142048538662343131039397262797462623431996608833907370601184248973650146462230765734854600510953568621875260292336783407656142594781025940868258916862269198113430954329856180540364093035473518478610551770069782456946525195370013939167409569392736271891397575522266316292505934614014283246735998445629011484002812654453713111003261475371263126235404810555635605046218547828799404033009466159156085148024309180455821799708543833501391063992483626843715283045731986351700233478023739714159488740304604515379999162543652912988438181363316988066643913202186590138045678508281858917943787581079728163397338485193007258463421616211968408124770400224971942177677142293277563207972035917525633394676757903347538990800443558734054078926925967731738933668467240501049404565234916812961483026332508508482877900217223032929758535525964257512874342242099153343930515944777523355992449147110886607356196125920636651592477866022891405425589813502923217795076648455853098241805928465102685040207291643290383816036876975908591784242358991986192161606529204512697788783040049013559593802016099008406464352466904242917050045230823982984863317587647326598713369699825854255784056829663857940706362437267407208491452634527483868795645378952682598958781111977672984503250942276613286504041486229157010717272161051869276142893412050244263827216525803140626605942572439169379682458512679633806398831221227800201066830730879441547746165808394176291235858713007058886236120352563339623116705720973380695862439476333501500324153674800146993105527930048508761938059430358561201821233577138477096682546449167204852175948184762402826175439904929447876774198699962579329184306209927644371802604477033162894916428971806072773261046651566437093917280279676583516906709689585065955871057431736395248969617484056249664773672439199502751400698788921411968775490437109524229849633923607308485565675949255919781903130643736482342085659721892743914477519302353598224417782094908640605477209011634374837256238311375133770368979720198865584054803247784160752563355246079787763463607317294496218884184505434926197738878972680790131516069675440296566377611127745701441494094793566685551529443816442291374981974624691608697431661242716807571664321780606272775617550176942196341782992450949730206234701605330037354731737132930726858132876656307845582661449588833818947142229538493004738251608693345428437263046270463251842727953310843801386739949181729002627586374781075623363541876271581103768531251782103037160196684661164040470569612881925243850869107802460484902302694094704651971987557514585415437915778299705079218112451790771516142298616829322764226579636883514678180128788462625934059589083251797189740592714255027525238897889819565441746346607213172381567815226745240412957160991765192178401335915546173082604145440964742742127784622100143794390384633719590653178325000846808664053077933590912531816964413132789985758602301538756422345659926180860950197447635135559619996601058604419852266935085194626483720793911657749688091877758289765859479077986071722164887688014629940736348612241825131035191704401404630321103776368966871650104255535302567458992449362868168417789248641026567822184365533872568844483098368434732282492034027080039137440453723744142393746138375684718312186331202288718006456381049065529890726196230933377320072173844352989383865924599795148895588393813967811453659133291646489389284969760705825018080292213564849938708279749129093427634804257292965024842559661097802502447373127555737184537796490813332895184238996108540535722338728491226392180215529358071202536990330115501110405778848427624937030697937507557487476403802099240704159880359087428227242112200914626679485142141008206463134630922175375635064452208957625920838699340722745516056135870886706099229086318625817484564053595909026931454129311759221702802883480565551176844664669896388421742547360479995279587672063353674252608941021882156330100011002492713870825440311296420657270725074912756203020543229191092962165040723506356691696652924713684801721673513885890301768191420329967118323090520589709605606350944049063893151602974980376149650058109707951065202386727360256563959144418116488308418236435849799517759346414509716905102513917183787364246557748807640402970562474576427273710397619446839807524435037652776380887091410942240148922735850281508216719658334944041921600500946903415984694999658972535867386326165719692208344810094178238414165863171381407068682949632697118245487079023104306522987039903225239894839183930354137518618344622835469235859182758743458642574781594982314246469344814586576061013388195309466229354200126916598981919313568772001077807183379347860268444104285287720291041621003278375801412270249084814661855027511116817232456433699392134307555915542754254575756594514478900349681250436320051631112115708443127185762819149528868666176081172171055864260243350350752817642066086429267147784100081941650958178720994954211071039225376879821687217753187907919510572593865708971040101662944205615721143484138484139213871910091168217168326354063183077265968095431947560347065456370164310616535836260409511510278904540571797056889675927468196881029043725715413457606264287386949010231234242727558680622753370669629875268483195384175307997254585339332111958120923518275049031080986258781377927734681847028553726636342024698357670384092244161207174614502498104736766467849235289041760125742698449245697170801772440836103383143631598912365960763503732757840480703048654770228679606385096580009681411144605085465609693693777410867943425310915843584407127988723364615787695707725036262641000846085409500636774484529326348701038137306400780518497711061538591690177193091532778461401182166541581484169064716369229704381443601210237932049430099050474649884230087725954045762135596902477693388201680342914663267859129251318663081195734342316649665655329903259767562959037903214478342279569565430211120511144601835791745701818248630132893850864948268227403652020266302170300765272136444661476314287745606965904479663229886052822986571901533699886417494386990071060225956659725925862162815350907554638002713370313322277505974030645732671350552972029807949000663206008696857455744700466338246308818079713789055440239610550449422404072086815891635986038852782316664739167032317893669784014536617901454893001527948810477204424567493073959504457232919449330556845585553400348365435539139523064812396129186048373452805938553593407207493798142567173212069766092919437996521323244565307095631384576533420682714144813182622482839486272477744556511640625747252858344933493595583653565288341596857256740758304275952208544733156420453685389021391285898028240288562706002794413398489391748072242541601254887861601506314152786075231527636494930609878304280885696232274456499282023357050477813490659824451113313715390481892154219854803376705775952765985612174453867832505715143028154110287462365371939679073743291002656257015252521482692704786147884211706621539984269180105282017189039709461854913538286355480012253625617122939376400898265695789621010795199053438130054208455037402972874116652885679617368015554278021704994338758564773153781660360537172502295868441656864413623337622461842122236055925745085385430570222869154806338520585014162057966807080572176336433619663158858953827110397926568135114086292497506468026215445513251784945048745693603374382414931507800471912290150086295050576032260805593305492611791915427697080019815472481650033407673043375093524012657673218054963884433504510788045885416181138412112973105468860968138505363559087989093553319181841397477414724668781931170805510965903451617833598358627404610273173652080680986341224175553616895339347138980724705909589663266696235556864543649442632447441005218703431367586983208932886272945262285229155455683198879424261463217527502677347886561130681209410167870990638695249810150740236021538985332643288301507006013900177692979702258140801256033619888040425346717631194395398052970588087372845591112978023095227954748488424491483097777071629654710162616007461472969976104050814741064203037208558533330963657003008406315247395334595188342252137143751929772875045397681396139822040390646802708424506530222592441700921277783898283412927791864549912764312495790842286758957950059744384808517653562523181169848233803755977723948821524116387869483591508067450992326540400590234445714855630557640760233083327596520219408305037209933983297120713124212592274179602953277939037612454064379365323625754671176226919834242344610302615596748577771141676220253399982202304824659410125094513476272055608881892742059804049700561408633582326556737951876322422444587450653938045210280940714612343301688206611133880766936084779675153574098935162315645741520278801835910300381221774597814392717698444874324287913255763021098705786322506797176601917767707350498060793462510323520031371051046652651126750130937544719342431853755953281574177020540761998300908525259696907662163110427121143126754607761231761709918028544259874644210922492200128646968329548517243280857335360384816866043289603268388537738874233862929926497137519699379176174179568078394096850295740353063251470997584287694843792595604725036336804599869477620775659081667867816893139546659773036820741834195068899095436894641025077668353651307443951433735853087744206302480419957649891791277230689326567744302675505212365496347768974666854162304195127519912687887326043377292775214137479016312472036701900252988802529304693664216518970708000946483370062287495272156624943862754212630116836260623293709200834547388071664303144432485821771910281885695612304521478690000876485511460581465882222040897281776073898149585603306702286891121586612880552958674969371481422730686968924898184677511294482091362199999634614504819887292043105114854668526626588762085440383708436241641861517914682091352294709518300484470548743126406806614716232644617459841111206694514367632939790948137076558716707439994200560190092445397699449068944647073385272391532325233181021071903309607084768565788803662113524489858153652733640326817406619776874685574971455574384751395932891729321570057053548723467666064080618945065009583047599869426672051845864003045402518101655965255126987549090331751388305969130372311956776852780383067225055312669778002811959244298652000438997336711457748659593690735518950506879349209605100897417496980057335145259373611414653597121169278606922055665866456128279265356999736824810649908373326874851926861720455340852891722470448436799828756957028655730579245924209490169383371925419381267938817836155954896793468404079543977251541139114029104581436506979232647356389986751527413014968974913016844788609279401213404994893117218121945354560205177134891222927951222716505786834638780841539382890416722002057507492542499896707933336927059830936106490508193184795275994978156152726951798505043349844587465238424325110844211286055728154969055448126274557546722411145020848396987744850641399180294022168936006612707908850707291081893837750266629778472269032655223091273068977792759373644748490759850229366606722959913174960579434009361736380929042562862096482662452906857510944661452269302181968806594530478565414993021275798466058661848279775003493736478388965239167259289453616309115017183022566839376718991357425105154882569944932414475727688470555534630252070963963931481979827770057408091427649881986975995440766260532832341056586842098006922989114209342939825229068386635885475614732176482458882101540095967678374897193473020281248535871054556357689920300852925113998808275409493330054019653276777845345865667891603323782583270564348227261583278368760828558403148623890365437733191760730145814587860450421007401939510719933198401940978602218142495295998830905656540091695729768548909288657089193701008270208056191486670028315366830153649586976275140376970473372846273133836972979218564058361027826822225665090553175897279020294147724760330677459940471664823464941664057583395727059224048110634872477136188052566771235694523248135472540216442249552814145804957279461485043342384438448919886567404746977727638985137058522710120983277225561316346806756862018876106053098738933172960058213147655253735120071317606993536018263356770997611244943888476769809199586931923597733600003899233666280421999791427469436243055788911682509070960914537022981581705240167913356229411835749271692843590245533184483794105958297870396836377207091088331587251850231459551831718967360694539304789969566183132893494926998365393695072118105108930327330402365834916468679980224551699312814703330668488272135543567297856204450746519861592163519264413760516830445181559168883201219938292395509477918064541155123697730875200697466810264642976168827506115011487515850523443071738990875197897625479137938843276872034117968312557200503697038458820374867156115512297483007074347713853642387909307829388067868309449360331626312347896654862939137441758214877660903347029604458381113892107527575075313694848616490453037400429339036559622206158509368960793709009526154295182485392328902527591482974823329748209016665428362587176737684448815489460343959781143230586101989345750534558710405215679148638519805611996391241094476590061122537040827436551430260138698055362777374580806724286454706432204920348314598306958786552131120278344142204492958384759391522580577880542983359191614555263477358173565590341643336713215569102305269977478015508803524827087808693138847615684723931356493983745388899835615855510386071143991532434697599920264613715359238400796261374856786987437713371634616049810473032051135338878711149522724468118070561748558917803145883912826727359005574186287926750899896801129953031033763697178476813709010079918636218785945794180882405251424596031521163510559641255590916205752538874570345360141755563356342512942833274972108311749064869695806187624508164261362330399121167315387020529010406004568704488354674128969561802740050611753581646745886966278406651771362690580237967137366178847870132808878622521183250017486212918163490717304500419582409635873587653443375871243052774704986200608619560383247977460335192548917337519027699875905605554833223786655961700896230588118702161473790168799674956068928226443152348444660896752002158113935043769209353223486425564661625818894025315995639040314680181432202810097944827791444950327457202800614376794969662138929410875601999583869276439225351588770315490709769877536899280334531395605463038483305321988984589042986978335421122905822803828284237551148809179360854731706253166782923838002266102787462666496070149871729166511379463905932474968732545992882143572506362879414461784889765072410874026996151182701835129938714768005259186310561431685655200263512308290630185099545864414566055189980394769608527703425785591524162574197677582355244054199027616518768400544408937563522325915943694456051534161330364081013024864422682287596296665987326513187776843382857125133733053793276326816707704185940046192493520951894334237840560811443444426684232830552832025440674909696042359844417073807224698290923994161764011067043149434166493806336778568646770576661964069542533608020522797902276007136532580009500516093302431266548708796341432601002224990709327471945710660681501953013734101787668540093539041816271249892644378588140517518321112842862550338454993154269472485975451323644934112497262337692000158322562143625455647925041709173526386020073302328724508255426202177743664283231525700718655400581293661208228034992123854824124544407946278497891678519196343539321252894376261139744293446171530284979344187743368282448120167037664377360589429323614945088509828373909952229803672143118185547058433574170434858226089255314776187311450505683332955918688893132643797200177132466003490561349912744889227235078190975855476529767221410141078181709513647777450432428907623540336293182717736467347004261841088262338850828428136349240426073284892822882628074858788140593817071336436294653302117652170025172807807538745377157692085024591828849750233688848472856781562266701833418514141428935091834331877350387640359544779382575466252555417695676457448354471382530350745657377318797326229791338569644163286680605577068808944640978089131819327055769420511286045657213030708375934945387555527679689345274780107203162011897434398044510651752061870197320953209107745000278311101470293016133161907462710305881338912148027559607130570290465628591982260893658054069893194402275656222493041363169456454616463239787520593434248327197377374326892746054561263704527382128796219378165406198729515066198415880634085728000040452034708599426049975881245490613207350621874521895393429507404808933359819415363433774015409306151523136846788419133499002608762388253747606579244446261399649934482248990106138102705176319811310407386876380693850200535447024383196089229061275546377053320179842649580464652311939663016583951430227476587466590066222757884367346362885938300981699489951937068427267757469133526118244314135829424331463286890742449689736663395622764052414287820012476747270855178604782747076657944841504962062215070050944917995298296251289861780032524860654528198066758977481864965416115512623275475067035392701267757024213515837883130488847328822490213976032147222685462079632889021955219101036949676725068467682590368101126814883910268821300457343173427735532862021810255454291312412686997851918035518142431886776483725281371434508923065254628517907975622290235437712433524085231160828560278245711615833486596002655950308305249935196384564421283970902140832786429069823460316199706841951559421227556540327536831451555326062942391702790880989896794045491581608062310446410915402929930605789035665955222335905674769686550422646037199110863941945605504318011579452661574668375663175036944584616858755503301249925606351371653459888096458685735955417196878080628903970246642386750571627841662466873956776712414172402467891731848134038238732170246746325029092920406624469094305950333814644559904594967285405504982274469417336602253954331600413001109210764782818749145898324706377394355378843720649901640055821256117423883375706236993511767680718672663060767233903609858949235358772603890119057177802254302816775092679816051731232046946733245981762010189984691804453570946285982421394314304665303003627454640880595737755885943872797753024134686362743113115800537347325280784178995207292988321264765802213140043340858683426409739293795993682001782682077683016652570324189909035753129444089514274419435823230087012862207242236132838262637711243561126799258408275478132196284227734107056785488736795575475641977728481134424862345626248455356245413532811409526670758836709618763931051023779184897639631542929780729683406000308040245197580832280614318572773826261429744805765979860245559666356856947390738365487455902940113552849516805214342634809223069680494498400499899966570185893257452650181422625935224976386360211587016721958430510887538429525708568609761000329311063548124492756517803551380983819078613148915439140183253925115880117600917124056776389827863517966022393399623112704791881846137060314941740746942949841074840365863937075144767944614449645408137828655243570479512153571907155909023043471275349544389783299983787650294468990639286347531106937269984374735287706512137472617284785158542746577476762493333269458931751037579129757782939820030954012893571413969839961868705902986220781732487614292573651631829638559099796312406832669091683222163426604502028723310937749987274268495551394040003535317044205253042222277981061583450858162433897335891707432243517476351017769295828471041387677849727141350217703970110092847503239573706993387128101805979023895485177551657302397136165817337265801366055179930954842025040763522319247268102277811165999164573768831596401803208166103285083583162992236780533132597690937300419211418196321458405557897757317690291837037254404393908305594918520445467219118549953880669208906440315548563445654715186606819653585062567559822612308098089299035186072448071813405726741481024435682521717764679301330787496082133316314692643310740112584003006725661657810753887408585959519803028516614041752518772604495204353315156971834415337581274875442330026488516096585769366465524247327891585776680204347871125208655417547191007716203090121300152061276581404016264966753471238893160244697652652616039244149577912833482391838940246870049214738501400774848527302756922518503084317191288294880963421392172467859239389873478341578773121692266786438684281964409086286579997391877529048491584370832968891803275637628014610340958975168129159488192206728918614239433002230201722219117164055379408582079372572813586775116429628558705389995470098270754906577691696030312348002693355681613038027711610646732118698252723588184407756983471339889671702396521534671966919778958015411567426080755230024089990492763625446880289885810506138180715784713837594332744932949609324746481583826082430218290225017631131028502612685393800136380270778212821616276273433949831286022464320385136231372496885282021628988565650169636739174314744432781833716860095505375819916748048281216815779561189084867203608822212702737828220325874993666417412814225050754905400473346925864037952932721308829856892378909805841322628830713660703210943095224625644060343655157315229755763309679488573851289589506652357829766018523966046728949908964855891357712584358089338690455156113133695622396968518725611270947418302531627189071366034085332397071722332468630692655317632940878148232303312908155163055255426174586775790046593598966761451490070280417913584428814355200751153479198689607363860607152180831328186861619553765353179184032662321614288426320819735431604945460622608286406718042238303587721192424386885741899213399322813934421217998488701497885443130224936316048353090658248342782802486149704754434278747198460668191038891507607091477209891784675831631275061739057570074966756882789774245809716960139661000399113598811286465082446714744095398000396248651808026059908266498731678439908245040885955611373638899946106019364222483147780431752323638887545412334070272761580654286406644858016136760173589442311365185099427959723040131448234959640844350259479526124448401903687079947210447161209473968645327344466321399100957248868533965453867026359997312657437536275217878569452415165126570047550740850762849652527797030528677827461638651412790749502153997899975740263784438373520387347246689324090414686784578822102115484057626845045065538799790951227484584703160679597675677378890290447503599664047240025903473717331760848626595228312574161442735445249058488583967322141147958509475304560133432753700140704902315066485653221612902950872484077478229919831336592114501242947757243032802474868355304355873078205684890340792397865141557925098284833413810286956684710229363834475391574986628039730205844653425348827098717889317720830276581959319107753717785763920735379576821521854022068933614959092339818644327384372143924809400699280045281526982126542165353582801057505094840293925908281852026896810235487375021668732536135634980908518947404063074567492657909001364780101752172504532865581333951119489416126277574849586036941807499869210145296111600563409193471525242750788317928405962753642043400847921964057511187254542180076658455412126166406523766809485728849588626922487345501210861587577158987654110102458453689351118365248804819913076618038526709253066271256091186860181431091421890599545943420405250692683546579932893571716843632202933111465359471639047745853697059879426421521328542641086612423468085437874811634843777871220221951492717193396596752913863479961153600205951704499086951441920229519729898730423491140306889626719785301688487687944474890915795394007246200789663186704441800495298652945925492052841819759363154766445001074844360184370785104807341867567747216826024217226289895400353567057759586312304007481754278322368027804952167160109095365361763307217379879324830932312625002126924581946168158953434863816932371088782495080111225878639598413563723240678332021054325654589633214966657972711616663462318457228271600522711814496354078756298380771290956407969969393645470129392260011577655016680230839024780477943308784799011564893505999796529842507864096317831310443809333374189949771454990943924700026455460665116405045181100201459345167247078628598568552940311316669883457030277749887010261413439006009078656438005431745542220688474455900045825509724126667406611434995724003823547101590443965928005746627048093584680633638111688571232077159136576715583127065401335627348728943647875542818508952494178664039519510748868636850542468520540567121908809655623616279061474048273785655369604805189856495085336318691008683444412686718403329204262844255551343308778432128058393884723584270785825526929451919805193820656335859411614130428448664896814351469782931925482599845520200655824592281387997519869083295439842111599775526531378358597545352867666936414948203395362992557785933607437659717789704950418588246627761430057624526291248352919643778360604906126063230722511392635310581040833350818175244712027301971433265323265596894796308229789273893761942743243726991925596387029367124706748743961222416978652463173402751040981864490730344305783156572215809084418529092731213497160155522774526100555884489330410424268255840034221137599357511344265474735749742805198838116903972597169615376008147121589491773510364410703048093556825036215367190003619144594911284242848001054553066598638768844250869675239566210379993037645198296300806986786953188252061782875803543585321075331297333099602101661485069934973256747508419128436196401219958788141854055678781709001562658284569495503985984994863017112263575915656939934449515238933068848875532826029547352859084966732394972300807753128935439038060710762058701559561644164778980375660342229937750647370202750557098102985433741792883581787860904869866738112049410118493411665529774275233494580330476468535465673329879683081434835829459582134138181752129087744896341738013926822057339597679349044114597911457754197761672108300554268756255193363136155821581843705403874723992597203548577919817840322548529646128670566977837072271615608145537521497769323005181210315044445439554361844999342187186732884137812761489569117150949833168113679890356156837652890390019469334394720540645350397859215616357911926613041909073783416201438724076670844457635774360047567332506372902605987111259189983850036572676210404974235645508856355292853610679145082294429187795291524946949933390751934431245370972379250749327651483364616719424454257166709272137459489826148274487588201564485600311617244718177575676286938190378704766403866347619781016813324928116456864577339325458832812032287253269058601334825172768740226942458605299918828256482106506775440597819249789795908136545868404872657106033686464542613059879158081368627071060865655293871646802851335825228291140377660417797545435108782924569297921926284439384929334166211098877149125401041911081978080821266437681020089683103423218806244060192923094808407669555938475139107967865454226623133014358366973044216194621389274796002402387263265509017856113589620773060314109950143491390508173025274000964928854356132476971047123661005941277778372369748981570997513034020249314322117078278449965328752616504703290002996768149044468196087114007406676231608098705738467978320426869434456321593783806421420559288617662852773806515531964059304801778246332368658478805831070781505894350839827112417582425520486524137371447092410926306391750192530661645223658383852908932492883594959270616292160140184370151209895999552302786915724286689731978585926257375307547717122084314297958160430234572801225938127747952514497967084943244811248346414759749781516847809905811876932186569384117258789348530328738208106412686388153526005524773989632825789019557150516594687789250344457768403567764243558177517916576454950201139112276252475116992187609441075994797240499425888373524080980961416145932829651935468096125357786993322143144483578317279545868718928486808383258652703438974763238267056914550221186583432289525178211853717321656161777726196990730569503882336677930198180064320681319541990049631274415445444270963453441080203500016928274864821464496115251420810659686357217002714419758944366194879715486092114856158849280436628211468590499706477313662538845426044814897607797968863695608547168915103286071779038952518451930406288500682838114543416493248500062604704526697132131625326556193631691389246914794996177962893842699148253364289569222281587023324024345609984452333647173345084302511889840634415998179981602787032140375131144819127933357406279790867970763000588403877657570291049158350809986422244837582093059229652757585511824212603112530910780527015610837408340057883890504837676988681944490009313960453405448233592257097068860506283854075574940065681810718926808791316174079608122159979462277831679564438228795547420712899480857841179598200974455243148217312000029252601242278152774925134052946430703955953946379457676371341627897141283603345832099793403250444957632337268862910739372640748004605890412120048815674822339823719228358663200879108153090761834325964416246686745503260194747043845423659023104587664930265257383912203570192736853679984177403816551767879227674781994194766292733742016965394754581560385595099479544375995863603434127700850888202417556540672144605150849521186470004713572674152846378164033385421328055231870662354794575861440731161887911007245927827462240792835801820697396721606906572163577021626297768401012533727233486796122105387984380622668894675762046527128419183558823940588645898788084609408719466009345795494998678831589805843693852647434026440534047300042979368508785001788959490769853667209667208134812862026946809347599413130958303350062940410990657386011204845184884149168458791229274794328666045567734112218191257230393531998052036493390100420273941332151373903119723241661126164943618541102078416423378161150571306056533932388434776591288338152497890505647461433003404259761372013312086084451719014047698777079377049560433846275030185633964314261841494032755078556500481056812704001221558422422695819863923340166271028607647612070898776186049151060938795502389249776161575211230792329058840614298409786174255596873975228018431260319503332146451316983790686255117610963338926954878864529879325963609770749692911664654145979781080425306546574024787351782927133297515744518330360187206565167960015133531562573859567482633308322974609385911189850843066411730243944445955908635463868710590590285984182104106110930100987582678084677002388907611743155127532800453739178849628597603128723559431590265844476283672869123972170259281843268083035732830368175825143264619683790357649395471019031532489423781809676882463314673410993672370835129294376968461645666457669514957071032589833114512137467493555547969901297201671270880874176997858587408880278113547208380898045062027235036789805262480181007531021328433168880096451313141244803389011228384686464280041432979355886949422349717182895550445810054950003164619616697383797710850919797950532169242875222042115874443609351716553463831797890960979038048075193480310862026251535478746475742635032669957211234219095103770224318793757125998101126926361872637816579993526516370489313295912188103488530143205034409210975315113285776597951741576330655402271949009337138844092620736705495707435395133877056477288540036200046092220030851360888898162939353259263877990101491150370593969526526935347307785432825745416734524568118933901708047038212617403807233207287617268483385246579789474238468305863108868630696413209568143498732849218546854317316582788041363706563532367048402260628671911263542071294338675256109134364437136945891616331857353576570739225292003534041168731159048693564720317789946303053450085380281345741009577519857270121440250335755961641962953814669211865293438087012382101588377737568227951527842777065414650190530116093597076708908473086395494475580107024328007761495215453121843863601772980613095187075668810271457262262745569674767053394615442516321264649679549164147106698095533251442562660785265919894196401644534968804581294127327492763823037141625302641320183650187859632762473194991964783260020604030759802964346107794602270511206091322873300013507162878697814676149832511248391665657150444265247608185927761723224561413468617308086690005402928935886868139558919875558942157314423184900095872834737455215330988164571871936302193827548416620704190270230977899732368758951746231322346528893380147994061717961615858239219699762962132713597961990092213437741452060369339329046023712031963094984585375374253844181350981980703039211645535902090110068039572429627266043326293196795454070407769876849252861949912153710696343691205139300308126967925258720765438235395668668840399555266517974815588591651495479337146377406095902088417426600063907211505070894473768424689440663172620747118832439850216858083387511933084127500661321224460597558592047257932916726105499644286986262385015099806505065498184256736897335546988316505288599316955062586941335752957890035253806720851608160472472446022317669924605659934076221749707814263223725529673924707472477610718141460813906096264162559776185371724844743509355064228232204937908226416750364255017424404117374537818790954445856686932667686642042100813928881761308788646269667410404183732671863078305013605352044795991012395776811857440194980495074337663164352038864298137702884575310425603696429904854098352272086841495035112859810642023773762429241393828816826210594283010920229900082174154886279078706185808897371540902820917748727598487711736649059172571809315437135844186495050411442226890699624421590894723186506137562115408377524286407713680524429956906115318489696630322243313129508185397607209691695489891058243533358560803867719218299742542598626949383935281343027581517333404605880189110120320798609714854383808493488380374704787204545485288101471154053709559714559073631916406186134808777747242928715771800241478433178782923173740031196363654136495588558297389999201580932005146373370465197702388365347738229075340511621367699138677979966991147914851656701331679936491213871570708988644418808186480918865081355358746112235386473203949023166610690117307266563069780217769213981429230001563518934276966857935532034747868605705188061732063372649315282944966949707467719231643360657099950384240708468702234777919418035040365887244510795260630670853257278358206871723655812293908147390276177888020733475472624259465811633011648328554290271913321709933100778548083344790474161227937386028695843539037278155301175250944686540375544807935722264002828767174151987606061363980610956973161735455655440519035674496913651882580863847164170003385446936046946589399737764206119149767914301801552157717596254171952965331108280561019371476909193248039469183328943950298737990343553771834001992180334405052448370647301389738393202831482833488847473191318533074744207660981144106324016002811402077095553538159432317169148092429574840753987630856342633593428255212907289263765384623730628273350975906237105282046263006459369046650650565114922629095713475335182570879015388350514474885713059627785176920965060715260905106255024938339306351463724726487817734083818662134524663107774647947951449365495164307611492533956674035460574380707990701098694210385034988809359642863008280194227814365568962561359569321358042686180589548679040267588379429776619298279040178710652553895842252061972378905154306059201608944767784205020117390473185154728613893953014374356286376907551802808730561386265240956640665163705062036434585399543024912808624338104641856639943122819257282830448100372562029123545635174991355114114120957121411341222113208988913810531039402872786110121741841875939795155346638216709703330776159110341780275886417145397477811610392888756625595530125407190415565428221331288046621254380838921160322730068281218637359244817852804666029584115478845933462273092757289806262341777026665925984209668950687294442148068496700765304250061587558698178198843257232905083982525538051694071861581062237673156125482228851859629082836296959443733884228820862446117522458209496578062337552144335555808472576881302272296790298916730292621227473271472204509372909135131717076611234067449380863009677081490161535195283594932378133223001537763574820136455142782574028746388735702748931176593248520742731420380790985354322842607765142505655081204451823431487739235316066530795905965235086834583536816568594969615910250958083785022720100395795659524159700028916471591525481432107333254748924349657537713361215112456842539973635872908988535033758834826093957347062512527735600788878794374085828104851644847526273635646097389363484333437572816455274929379312495699473042111117415547050321391170744578462320887677947382868936023347703209686381194223473012862198793581419754101344479022757363823935037962394824300418489796324225196310703686556662698479480769075295247842070405512433720177801461108596132114909928803932377444708884169016011607215859571057514637163465894329082079819391658700217262480075827494149055471106256662315482479433788894535627976013501523364690820542595615602495638708793519795728943389137027471351755517052013313238699736638414878559070755466210829022300630793382757724668436643922964006468937352877862985751270191225355150223877605312665696659037393938681480476437317060908252318680072923100433947817330457139825898188818953031280003938407331664361385735661001873899498638785217007393619735196396352791486555244712207042931605575643449375476672934910446994548740799698427921439308801033580383958213000746220917591574346067525220115675996027001244773712698230483163914954200101067694126545059975054922948630963689841375188615809075224942127812473809411474088435306527041850560991379675234377615119653127701554451326403648672342877166940968070225296827520937136769408937552529291293418669539190560866823363132290673446449497285740361330265556726974926667295989477597633337134621349535621854918306625273247008907163441726980493589715618710759710272611213443339011133487016016336344974391245890864976360371931488588335446529156200145013455989246413657300009693267109568937580121480408593704163973938134859809486052377615828331762594720630040441091807976228579660884453211432816191561802474848293722581008589588732161340958916802980326062001375164886733654150720790321736953257157803964397226322166639906530201273686439410653853430812273046122196933668293056276826290894364257115557015229816169387775366848106097055666795388459465198616567352214146706447917805653762133423144143789918410419944674092720816591338061437577813292527844132975458357079887682802453586431654291260787860943851812720677474061264082256577274926973590578102482053839577188685045349296403910020782629025413286863471533834686725502648476093429825296605316979560889304894958717830474156320041165183783353792160553493499374331244066836066666228689659582029576252005748743960829196522185780363117160829299108547546861627662122163405696545204888405488149409915497876818263285515994021917709646597031075121577654148915907205149157021575889947618520831538991566014185023556450772088060163036939062361855659777016493119828620124644618516709864372945578621246951160705268365323367048063594617559678458244601369256403781105314551963604964960449775535644472107205862167982957608524567282875270808171211771806604843063775842501307089622951255235679671323543957433964325026656335179075367532625894796847360806074175079037199603567834040432427880136398094054313336774186587757992223681570837132517297400800981683623800364481359088285355070865377817915254802617602193812497465356767948936252588601164240562118255004544673460662769525741486148084160518160590914647948006863528142601809228484119361745984106017424720637548904917365113028963901411041709014741554614833402823655980541816850164640784638946552939185488076301764678403726943257206021404244746570930495290952234592628649813731115529542471989767743996045890806220394095965969077724227093923564570560045712583885321586435631256211467337584345580618726812170377947807488898335912805895503933450545414578218852184536749898255634914960639218414104060570789404432414999351009031341133800382397355352689505453540248560167341801418066661350896415737248125885098258214266597659406129895051754294292591199373668872463062691349436214749036925124553362459229784869725692099538595638814092050814749843087032537279691186555280464957256674545358465104919614798083284707223857722663651615645881250625849471305045200503882519350977781485692714726027682715426095391744572577874726107759216978098638987954163372606233814788402061255514358093977747128247934614145324119190817273821584192406981512907004645320354651471101913368375654578427302285971429445454799741785291422460731227274389253435606537791577647551996815767486231958458130254538889900067533889000156990746769050139729119326707886182606824226007837789553415581705054192154818188847023165276362194964843561410871297665359762248679807843929374256088614496931735546171762063332461068149955831706234303384549049992511157976425654294113989739851633095241205683740124528855664349304734096111847188829206879582239942799881949319133502321279561381776632563718316599591918993413164195348350839288735654932920785904807352155467364275904381463302444375624054600635001386684855982762707115045055520197103110944964122170076487953273499108672702866204751720306310158295736385711488728131962952037287253684759905695863781043048267663242026145733108542528457529598174632020707002447067176578574782545333578604899625913431231354104176494406086997475120436997329645359739772801519846022648230597046520331256111863618813407760303449171287220983769369389133533041614585371966858967159153219947977384541623269086340234546940268405841514070317449963566105402442352496111861837219660446948759233874261831189777381541734025096245490949439208470097685896388056628096315760693205886955184170550194787491681502398635873181786149740824186386908970635357176761056160436868931405896743067317074608422016959021936094448542614988587563518228983799721090358999013010113318896809754170228080152360637720390346447385573194865355435404686762287360620532553886184515438502399387052138436767059041184936679616212782015307218124515201124932708323127040168922404902892749635074838099663400052282524709201728791923302829070280010063635630252590635336872394618737741421338025189107477890183229547411397661577968086314321252344365967957985115384812614168583356859228736119157188634562300826506601350383136615366348687930012471307197178267362864447900809072810407154418096883616184723180832167965924780512662647180557101494856638849683254669713013596352900481795340129604937563599527715806653155172539540210104187493531399739133512062670451631876561290744969243004702724109536940918032819908856286203101584980993560461843180022793145105973990772679892832276579826573396979685726725464295943987730019986966998618112541604598869260264132746538250902011901203935733430266779739546015794778190312542238924444440632804137237881255154634582504376286355625478227121156868434314145570645177748508048438396400784443935619101503968427766181543659457424834588298437808016303941764726114171475783933830957327120019557681062361207823151111495498385480073352955097971905876561915008069731159263980532745312588655390728996336485356205760125884139643309441689696160568580087792494064234507303291281241859000090065099616366363794958081975740030448880053100940112201827509667749734347410240345868041174588090835897025343012186138804377946331892983837940112749320002759925329428466756337921094593218040040216336610781765436415808332614614234332313502125385257300111573378197306154337473583979546882643619052661803825597121457529930733851883330592031787874896164231033238229878398478337326244481508055855218987194844153962498856888276207418842014822553450238763373958993419886315228823441309540930626077678250375585639213321487678304029481747461133545526819170708391817237474603328306630776642979001031074174030548569744632385885366052045809973949037175111911812405221735838473801681403173214239224378019506458817716949484346640883719465181954243695589106935056128056243695346495392932792780283532499688742259164216221682146780449099530170120269588365514045746252819315816186214558458209192507691915124288174260483290001574380848994523589354586412910300771137174267464568911241992859047681015755315083016638601823775326525573030101022604731278115636992931420529473862017943190525521317510280802067743926655522776572257674386767817299620371300601367120524137478916330060543742407293358281223852250787577209450700710846033181565138566899630100556694941881813927926109916423387882211462815809184757368498974797957551572952587814653420343718777624501115060593806368427781892326228634002766561040114087203308122862709343710980876448737941128260182973559755797746787904068540042904150733290668220943308192168501547325175358905755471393356762235832449979126904830310844724048040295675737703365515904670567286593551064155110729351528046268751257058320773306763071827114805201205930786081101921037300490519802851456380391075851082313985582188498992662142411648656869401859815590848269998754890407821378384891936191354086088574304397732110204035159173498722798793516224212939843691901400403234665971721614097104349519848925239517393359552094020859819123628310522921094517050207000216392760464246522792418046531432798760939341139816168687562306880074336872049121072561051744437095748348319277781268108756830621156365578049153705687572399871227336178253335047952469612301024435573814697110349201198951350417799806339326239511604229388604078168054871699275398914004199159317197583939353439408879405818639694767202895275150877667444631976140293696232744519408598912092392581919009704848080314915363080844183384117345335583668128937526268344382429410073219938961138457816191034331802451234182554054029626408350841301368195696951212855568390810585691709695576947873229840487703278607488482630634549673774685210251064835963686168774701222560767287150176927633910991551632887572959809280045570309321921058765722849949213597747899320098014025967888997617644062721326097354807851250466890976034255976966009442971673346365586570367224297095955295310803713342412385459877843809731260079304161184059291220175376258457384025590236580943312084875075158875206867916930010644051743739692001151284122391069137989189515621874668899350143939847514844983699778477909581285401045801572591203043155184364617198078496990922460303601987211211383620353593724765837206249714403882492237081062911733574184986651146891950457776913389567686303938047741046131929958726440004854527545243315225394686067199865852047863844878149263550494473479180209654889752799140992455066971318739217666091009597265028762954892100204777641548628615017385448677925270916186019590436245737359511225232663965906578161733262998435667954566635228506959491767964109848571279680280864802180377515971551072027639199572640177582896469242734063386201459530101314137489894090184265284753334387659925476754000789385702314285152152765832449547884051090024888436209783544356732541394340317156997853521788071966793749227370272943162743860377368770655258523887643634224021812768699725817749869182620596955009808286902973111014522154783091950595867814612493273866419462892464137737170605746491722445106785922553433523087156668958831890924993460080038487951657859442517287626741703661870416210399194157981533468715266001599473820541518091124785321811166504154245817180262519292013119478095483022816250742884850648739659815436222803307917234143997012710811935202839099008353521563289307812987060577874918418898873953056986935416263644912699685658917579985923018073127300857621286081958365413763446218064344315115146490687142064414534121015509106501691453658283036166949469651857829741953528484031081246751543862898951254739006985928222558138616238032024011863544198893820751473719045172195248401115421314778947809791682133322478068845217421106806558196683466184923254833395521339119036546274419633963610808358189192840252154893512292073284978281113479991216879598346758712909851638944980391805091313608469025278959081238340665248404264276956084769813848738709559606726723043867083174870042350654501654581799519724193338129022286860215006227112443408837662249916935780370899150622936574594398353736778011663179591555825562269004612008836749791953098013993968066371410477821415278019211886299229336474850653218939123884813922415101444261243417903001514159848521315110593461468260170298141989418812001278033992023590816389726720482518662687106863856628778081411945083287799030652402338632491577654965873972209331978604690892587766668657779139486097522676620461581071833003992457774575861688284591713423053253779785242637906472245191189477170669219277858321489020428675628831386029278449849083287865115316731814584799812306095332319011645785592661299260946469461908568292366546391274631429021839426751969235271712779748336758133329187700451999609056047255210903255283017550981691073632534996851233651898560687542972479253737765669572951554633839147624506387279614005202459486532381310744005613217564264557685779040786585665097466551401481258841979092194805077129506405889007896671043893268314508158371967574259153103765755442877575251390908728998366657899490606369855466201455056726330655920101459038083924268495347167321059092921531891261198655981287827377962792035152725344794839546857628600786665562266835898621415662511793336239042478523082288319423661237169298998511913204257281048370502854712190731491952982640746076771035654483229672241830254928618738137789771505067025715033655361374302202860217162678005378487823644538952892023506556369360092860468194913871677363855619632912731528975773342215340888422727908302713546428011882228495190065284880833427934354960667526713809347640419390798976818419814938129166120740768939372876533556403772372234548914463768579633945514361769544789999113568866869824062455116154251730899925940430397947638541768292792377121263599429607071231341018092346224510074427529031259144942529657435516586974372341466584249342984837732556329204317931281168193056096823543258739947035500904146263332900848706904722094166278621647191586460906181746432943329164961979960287484582208708932098965570155037689719512231313978954358976156181295059565726244229904792256146509155097104504030653641443738719415837519399300619663072921754621415461987804024218840634574772306769048273439763134606646628175415466303636905815145613786719894674592748958097519898770072029517415007063267566400055927899686354665997125345576915063650545570460114381496009852620625244989788904894304424023687199404786812114086083654921505578074995040124383346797414019642306224002941255316688288253649261806684909584290256812265650268121162976257874861122995681296885948314098557284115669547657619205207154592043444849498191973513825409762811410417508231166317028847041721486396971156475750640175547071653630054301363940895892008588391841688698970555702563720157998559482191280729913908579387896855868012842790849303955035884383051088971902953283154683179604262913414567821208744004087335223849064413707218688718430615654459446336000707045918446542862615440536829283461067560996175430648379687858236671710912779998095874217896008944929449513726636043465834859293966389619473799032563678770189902658462477447423776235410780357209427508033639019880786078886609890600191565371685639626844192283052501758357549042846776038446485202406000595723206463203423610051451780597559548561763903758697279659935923256015928359712891377805189374690806895936002756976604261687115047247768782448689404613712279053898150098597263866545171302850195178092517855256493550286359766023028240743222963882009105809467969744839484825271358332384307389435497501388386913505123686805915779358351885815373092201632122543050925701571966487153841996155198068681433858520756902432768962045020748015542467561533481714828191274993961207162701528261106361041683978458813870101292767209546884554960015639334559018479372129144599209279378856416515273563840275115269634322367748670943021227290953293748277677040709558478633148807944387354726654793680934027057122827965143160433694057614324087153118597957299052452536846963689133435122825503583354215200628150964853500343196025904976097084301380456666784175988105890425876710445279937929724757449181521475226543649905230283042405748129738754964845066384083356466133752581925315705367930925266677653456450732637782923923118980506032066647787227956559838683574498173735463158783363626594442235350948604478625650450788576235570169511875076640711274704473317551525710798734118092859717041242174675073882205169508919171720240339663399930976031024464133061404804364911261267776181617649423957317992533055060800238035277659887888662204429958016599832823149113135081559222280673172985446096912430766673223313273016909689145959856230038534690201608070051900040241607623179211042347439152507058153297534927742440187075303230642350464865451911713379986726441741732632870282722145945922891035092117976075494593064639265152582075255489664087978167130279339554179327887808540339996703968404754005487105323771379215570485764674122403636849820578483110302295644860222436872052627509364053987635909607334926391205242297549603884430237660561584177900026528023740670918644489559968404615931217118692081308902913047893202444063029608336906053272023205776561159990434896160020139336357646907971080153941628420445160037279587691570894467841655893552314068636899428290464911315233791336341935848257301366315159086949264305961049629725108959387720446565127944903002276552382582203324632624612378374974870283300042034892384862380013864441674842351370090589816473990647266050855089313848285014740803433556335262932332207395922297340373325515709122954695264199511416695595793366671667451865854775096665158978423064718358672501731829602882078635709104484260803508378125439240332399936962300436855767436149294899118671984788268175699174083757556918963161759051539912213261623249281753967242645630688622425344026100870586191753501260449075170763734958646146917676886158172322733153774373136858627154928902811954633129183118151756518209278649062641332367494921296968005116962338809488108558338963661284131668996990656421490251684658273703057053711026154680662153332874602197508685255133653612908998129202861216819721936229812167144983532427981999259868366719682033691454394742297301043993524945317533259378772611223116937071285849060190798242751777947006066728592388821623819100932831805353690055410170100098278264843825267298845331805162460302154299977903243405043400358221422451315512625241866797231981241448736240374468546707251047960625278606305251540195603019897179266899698506899114288586654075504681518123462384253204392507877778973373514197402153912204250446818851634481579113756450761973409161506395247705326681383552949496698710563448912530245723894094746001814142522072356667571662333305745964067261687770337150594618838678860338318348689821413741862662163771515788396612736680625347165159700686220762071735506405176500008930702400763059080597526110124785053182798075456880835951240745047968359968788888897386618414152869383933929094191962770291249914569315021055662855556616775320619439171179565382322756718120647739112776238334896287188539527695905935124214627051017839021590228242416466490426661737524626043426379535390888928766947227336727002224866897850659212894297327190125075971232327846149380989264363132838809426450967981161323493158456147578784614806466428159603598516460850450103473744812262395865948005097656085999153639204512040884509071482923781121233315319539953282044712819767098332194958304760025258343558696880843118490261967973027933085008320309726738032919227099410035205762273774686637144527319619817789695347042822490533937205127104441679252042255409919477974963683076236011629592761149745390603823771156951131170742768287140751968373903612158607421135925511465715240592376840463853796914988845568971859078874228505146394472119096539290642972838747929402618511512956513116886139460052533880783035614975527797063470745274064929224271404512194438760614483409813805180417305748367901812173967597901682073033787587775968252780197748071184790465397416871620648177383124560780736892891965764001281673539253348046811788077349880862208859441163239606673251718915378172554403593819500310893894736754633458688931762310613231323503799293608714579347524961805329019549129642845966622375389436452758973433448452430510055758358411015372870363253526775521939583873157225933334822817377983255405312099716642728780238685779706606275231646459285773435465672428296809721398616123413216869359925770844518490020135349871549315401852917071741217368452914035320954745705972639253093722317591341808508331848047385200957991432143291273831557628829161884475392399726421611493768044240304842497409967188012133321294022413639926192723364315254326001621941013941406230711777757991033375136876030522092312557771286135183018832090342355136601853967010349400239426192176042933712113644952658245091461448724554371032223523581554891863585705953322485775031739069758279895832279762936027451572006226639528613552890429988768128456890253200208014234895308833928661170081638609439916459970186113977645917468696784602023912921007414780430955777083056038352813450286624489790286881332693912049667226211328909652216328960093357706176993291038114251394396447810250233667515095534337553570804002808114200009605077855540530762566994501688464377172567583140905682985756256915895695736307713821562955165506460844852719172322449819223601768157194965994413646311313461888364629512424816029948444384280425949542833678846310124964353723354491808972872930428967734033817945682470711964260342212711573151890029973009222468345817250213993325744452864264784918318819342946345978349519617774878155068568465082608556054312384549017661129966368904661151806876025028243128049959843131598425792277704496863277365587827572867601025481523407061773715699812585563514505026163720521907436255383229871018649741500607938679129415750550111821927512670775540866335359547976708642475318780946827485299436913064065066971376475953219259183919839093613304351993240415365765941961252114106663283820574187699672845098165448095437155522251644991424312940127498208795912550901431335039453489340337520248104765972741086230715841077804901351745958691801636562546276763637804753860496565895296786197635537559609011702831383746677591766708483151440866408594611493095594667692606547097438699651430321482455333448321232509911320363947266412960357920400457244176766273408579460912248135658414297409817416956416608550807360512737130462403569535715342604674608645624485642125316712954598141304493156797698516857520320812337737664858572314130831901658286672699159601075626355704169125817800127952139283583769499036205748507007923545089022358406781278272663223371018162505178126766172157016870268220328016721770761011716545533228530548667192535410867838319869229566782556404450039376956132159170709894986019491470372707792719526843835015640115042911758472015429705708244014017509818956370131660797989242944358167455256886348686704734100247889011479103639595175729549442761739413945744023198044223652438066962466424688514309253873899550624374608469320404313607654316081318961244586680515753578240503084046330378519086328712114462979718679862458028238011452149429550609551188295687331654195024454946062982216236096678810911215630138709053490222340312654961875959295219159120226989343904090935770257996225615539365861559066653295104384870990521941435185972032011851316437372382958653467840410009210315225082410097031880875915133323779848616499755697520740935951052896614315466357769409766989422902502783801854505636347105714595302128888893218946205673129208896708455664066473953284743035337723041406258825174053064517808348302469579966278410456025061869050831548445006588543656739685674365576226310189905954001610887642050972969345543370736451460306319047803350870160977541317312437630273847542661478640865969938318879067222276861789346564631159764045968240497371532125145561432377955302180279909043599950999867566634888076295642315975647040260979821772795877003750359093311673453431476672711710542364865535180096129496002341711733281602072788029776309773953983378804045241914860679943649865994719788375835423407501097550633089885914459297492887312897300446487923531001866688490487590239039962025886821479497489359158579939564961281391232946197380394104742769634906143334652042051362364604229767370238332181579529586624099130973321077016134862662755402707046120049395745384377525507612340144350067996292508060206152816797167767599662868421790061594407110498072705341864664469363464860293799313694738464368117903682532045494923432685616572248034234254112375709240669811721220735631136759358659127168402832920763841386754537553072286138645718410021882149620568835036998109695117078656961014174072852915900892143433544285387532851286206684105871003734057404248892685817640855378128144667355175255452982487336238505201333928448942899079677445745425647515164194456861223105633597090601126849108374356892412684205012431141282075266108395324273669150466888051325989933663996303152422860238838589844002882318554206534388924923977781492173943571197936285478705571450461821359624159050140034537781598768531854069196842069321466653120967998633997291097381235230165871128726534575465914111633751837091643903616543131923421401702004621208315606020548742159218252620421209983327459140791559410436443010049848093821601900615874543589044091839660528188897586292212364752955029629863107076504082089590446685034584345499643833046386365389872522033797363471464654476825662693215952329795696049448990056683958047488716991699950933994420557595047376023995874269035282364400280244033825302700338344934292456602320039181115449655148196344443269342185831539093877163292328341268582340552935603278912954249417392270805849102387517897362549471700408370137248415984611215230706835345451031298518845946381678720818756056404472036163805483156093582650319269863901068040594175047650749840134415865927077686542033417116718073377474415233515872006599293064667320689172272818290363186050536937037605409219632712144833263436686631918520185729426412363370995338426369231623704601594760535792431203965049232747761708239728183949724697040790217355869703381452735064036298746794479869008412481219211033873040488664011386165772499069084351174183318323851208996688300591549970928911163393281766707350724711102774994738737305950512350885454915585487462705320876512819414368503017757937855033152053663281024237541730878434286790082532258490399417754061377738678882874999879298009413301568693716896980938662740204143030622553234719984968612631270414605982309804532631304767134347113659596741558490907124266540476765592697874628390060564026612725864973124409964883250344286632541255207211162170912952587701366551109938273184997950681016425701863947462635994095288131002002871337529898838606727302885392910570213609418522109549614508923260932213183723972093872968512496374378280425678001549416185379171693223409237682968753293753510780869591457049291094691550340360181118538967963032495400848218204964692081219341672580705038290252659739452939154022556211486593781114164036897740017382277534210383650908654241800265776177695245296093839062919231072328526335757870973041569172273894529070052549436100065287653271247971859878447392219869590845051456887850701119446966791071211000675771009396050343765671567870063490074749123695568148282945512407521393508087104540791780161362884401353750377681599289437267377028078675219460112283650614907890385691042705806227336181000784845323415525982013147749712295971179062452138215003697402737588361208161372288690180510181961734684318092211584860477708752078906618180856855031114017137372438607074925975429851179780301013805314253670519976645722832959445876658713325356200749094553696664170961350589385981448099896019070450947802313746843125955713139313937504656067522894089703814010602162431057295902754064515701080514934664209154776093169700659218496990300450150164271872107919049166119369967383964674894616923120240149331285182234514793476437922020597754044731213410139214097575126616824298377400843972519389269715352352397413104177069187890357574999717449629029738563102300601026884240960471848227571518617314183535344108254675133716774020278019752189678899412040030272533033793277865268772610716317560683485939285408283151254930752622074420132008264526074455941257013422117276514053533375283548478548502848388759309116412578964893631553521173533459027526955315440904586603066197898469766672832887490309493828711969309142494097027359047066748001342731362900504260563561340662396609377222214745544317007942583073904509547423326747334829752516782577690093208685561296247976594512266611704717718241069027940534962661666352818738350351049730829675146976320357996605509606452448368885245553312646553291550518652856290690222597659744599130826708772101567958489425459090376699989671677101085010143451554483834865664667226564361126587836604962551963365511841195756744212584188022577003865778486039636131123024757338367930347911993856563407545457894942309100710912786020790295988614399346415141669303174775001038825728385847251642966799824239032812336548003896215431409631274369644245582446589415701857136097048222063958788111127580162082777225889908327689174737971820694845452744763448313122022821502802633925328719155132996350024070590431543671561553336092091947979333165181938826149646104525815821878841336319061814819884668915599624742563884193941696397356201989676880091110135161152685535508383369801437146847840066134325961666251498979031955265074922169901206761920789722402776480131448651019201889145572207285826167950757435318733264653587242051745562452573081456539346273183544906530481860953438520833873121360610321373337323141571775518298560069109897926370611920927106447404490408409373155806479888995700293535481820804039312757784799973006070124241331219541331196204146884537161833692365678129855171721976509249020115422660919637808965117465520292496431512055286048407953827204347909643080332640342077945385872324161569558934860222518748745254038521209635977892069819692046899501394940927601877419354039394220089002102219225317389627646287441151511760415951383111883609333030887525252407687542747774502538495559993421517951893421641124335857690625573928374829337880769148357378471980376861192872998951148873120260317822728120296613073198653066274243466061257325604451123369293214240110903268775944826561623961593903545531583593210609865992936063635028219339755145027981990098962080858367318261012179196639823094996205482580416339157140883130639008313433146678777030189578926513674827428996245526259577054131168619308618669096760594909864568613664376513713646426253886444433625435533674706197300383581187112482427660503457647773727346175111153295452368304189378437839991633742018555126280023614193682047926097228949543782468405850301758179945881396579533943280316478063268699732781768909201262468547935705689895158909739644096230082678391815392549799676917047230508070596871821527850924309680920027248739070457902384665859812979346719623242870805501037897898594295811089001187212898016330624990341547371673362877006139870088641948634837637832625278438782994406767180497427899895859597037099705317464812204912429250939241463133844865196772436170942834896342193206492790311592949183134624454595071318182349319677953506247952637679138323474774326490196407297000748249692679753749523328258084510778508500505294273026527347775061413784948128934333245417469435226642282691898549876283795346010659716929965895129323335217403512727861786969519892341912075025079080307763437239798460204668997730650546914326701923597565741552987974674798339968184391848143615090558585252798965209829952738757829949657310885656930078144546936115898627501404441558944309676706409671825316850346546822664999813261096831241605113366842274140292217928160088658017740062930428498913034716142836591005481044830682115365460775887315667900891219669289747250107117955817684071753502780966853979369816789402304539971459681632514398209929960695823733313271424239412889479465257970950101699446828693414351815222684115801919485071006087619427771023432749675655762259940330573725563438978713054063145108797872724900132851671997436873140431433512980347839289855259761347623660444385261414407126695179256548522227514627570182729575488233087113118262317516080843851248839198591981182185025579413585407955687755004097492625369230443754894519894779690796304865498855002752755534525324021207170062647430712889098042365642310433937382886068924649233434405266956709240708692713801500302997190466736970400615234206556927122210122868576926183086151833058582013974797856151479355641157019245009871701691899802372678062186563869010396765262323437603207152764047923585317660693011520262756559699665763908337210684389379974234734577430518888284156637939628586717521039629763653170729303355982089320036177171643137499470787917670894392190926631830532663134942487976745153101717968251114226015505836619759262988651320824302333457980662108223622746419803166515334888725380737907754964551958953464864777095312761662062120251493736205916214570622457270181754947780073889601718756214302277185088351776737152353802526562408662114977908373067445850071509989874864269260077868044698690044309644212629569691688579156830754748094275130013647191312195588688022050181048816120940233177592416907311789506366870829355350052757979754914563872850436266521003679573503562658528463487938156627588951860120636262738534206679009295030761190330282042877627975515671720817565365090052365401594519616583999025522931110828686083012670627395923763612992600957010039976699820788114519318869991001097036294388713427668760425864485576534549868038312827272836756249361009804405684325651808195026382804959481958578517680893312564610740479561400826039850511991203164354424036459259239015429141931659529548455558734057476840455308804403769212887012015449367870516546300348337844885330306331038735591310299919957074612474181557588731088722568732047905859495543489890023323319397078282022662970980837223605151418789501018660362009179330970669629118898553922529899862920317711049028545125931897162033016279521998609397337997424971967180409993934104436095121120114503839142451832171927068198413850867963509189587842163919398606477400458639455130048382094451434200521984571299905928703746639957101799964673028988144560615187359490951472480382880912555222304820252780498609656579199413242525104776946756893038187499349964437819792510208751763023442329912948981801320737305769954313677692959403812146090219530279598446972264600782487153150019268152443115702338783351702543801263937140541620366763648943966542263773701193382609701380585498101855609968101651978959921342776786446334005066573531880615343048092367214924727977247585052295508660645240475320327937587920550363111982309631196659337706671199490916556107950376780569007343378422112853925064212010828413752965399758655974067855506320398383293716582735454325667097900548912346858552760635248973164844801117897608236279652640538250059653809223909861091960858661305740364497099870793211998367208780242126823696429214270388606483503266033305376102823333579383839839379507319418715846018128297079857938982152303887041955493806712506979453990878493647232008253637242085428307488609275957358844031099749156723440994026120249420715479839380485735404593799357331554346084519299458803267454672519004500501425493328895775879901693837232083884816543095354925493639397123577233909080039440213644343133962978199208577960786021615708672893022305448662970241475847515312433172607587052919897924158824281764134185108888556734693308192286737985220168224893121617086905022768419979120895652024068658067746644650627529246112431378078385092067340626863808040491931849165060451558103236382637942279990478322558610125808813434910871130601604157030399638351083776858499095379365692053306762418227970075965630313236183536621487441059175752913966676929821587478489010216585142086871946678886052602993924938981652370482000044900898943113347137378995522274455682546946562109534883317182443396583746868501498715775625422086594963881051497064533742583126261207529987468613916157876818921483497047502066802551966834363006813030784273892881961165982586367838327529777496933430962691346682163045319931773097825827685182118812049826685373504240751825280180879566211426406656800818709386376484146894511604109981788254653638200042853199382768685989127415404271561889961419947700175059402765440758043940948916670098555099587383154550267244349926212696965479621118963853799851429363778641648370843553746402507506880586557983571096262854797060834739716138636758892083937272677890156769679979453508808280998954649542726954171964777757411522388798004439731268737021845992085305141211130464957365422084801412952110482197141035952534171513512573470072259922573649575490537580606539927579047966423795802651631296830012287279171869088225113533448962959756010607509972673386164233051749808162934570253011527818111175504684518358913826528145864212305139962310618928547516065075206528882121408003975445862155587490072032787606912847326837049674022833631589618104607650139676508019330151516839462979068025025240031385636902015757586939455807654445118473874234464837856892699225995576413389887303084164213527037384395986540562942258618311822264140915944916994617780796714949677256934416387743510683071969314034785448811118626857976653046234372471901125190078521493548508224207631109813535211264433966336203745391969113863754327525901208457987628450077169489350186871303059742191003058239975051138465906343697588812454797221504969998937246817954762405738109355968929679384500332710281209881722632301406313867324772879422250876284221564313315081112155416968191363019778432123307678137188887947364222232003230631707940676857716981767272252639181215181724356531034070746343502577758500932117708833280125556199046443330327658971947893079922149649002434563541499747898955565396525068474078247549985488197013465306454325077227807881381237643256555303697608743032759723380517217027127514634784027994973259295574804806362744088953404410793327352959158639233727120330890044691843367831927380339056588424680924299038080541259356031198743325913156468710216307824478784877786250310889587327271318667899546162570440261617441458799402110271739516284000482714330332662526683703871479981126266918013892648871715123095595723248390881285234704294041152383934936077900918988986852650351573670891271817302650196046135801355034901520111627815237543661494852692454246872583702942095723041390033427366379167114517763433969503926393517289903504397423769943918173327327430892656564326696628867075034078523613842512665589502283898068046830976998238108282248557128666536728527302926477579446052053632591751151191302514536332456724453920375564804538111159428154860774786188521148433663413323786149629777431047576475240344793629128097757230704382519595817786638308435690475980966356185680551402878514073083070375808739085143023041615962585879416480310214593284138248722005438293665898466574231251867999558856827465631105867535923352249089010623881318091255656211550472192219992632662721177091076171741863190684832973492751460853455581913277931339499979980203153493631364921101808853828328821114322945441487423715656121621306612888956365454156364837123543362176113140292275492483267651735472457586239358232312847811117811593595510155215835556779285833021038636222532424638583164558493312351897609535580282203372700524560767880989314246848429582233410573780779493020792049773235005520392421524619108632705009509290801187969712616355217402644940177809303604724425485601495864803612378792532001061839211977934301652255649317236184794547829818329161311354530414436780788470300923696926853050633944555631987695780426959319759261036483999620049791889088595936836984856107616250361519947070750629217397436597123008680673538103146333623719485337552002873411650933507783908013124886926466584847367937910895368697495964023770499213300622771864487935337545553902005565052491384374256824183846638057452067173802118029543700823669112587285165906051977276339875985457761729723442901601256124962294218127270281706661070564879390359223909320762831626667297278329929218522510193687975163659457307409109812987630306662900655143942536528415229890754343067507933478440941576071507051782792299187691656586496127339809693761182857331236038742822550806977598670759038289719969866607965745664294724871912599592630666307864517849723007533446791178572167072467522853783558334950928127318525970703894455340044750921917774716177236240313336545094329428117631391351239293707350674705847036128996569159347166769644147371171836538129003505535808201674719697855100890784610955061554761285845058869486800725551829521350834142201647428695129166916371559291656662328675070933617197663259499147511408292931923999118805299353158184317396598687062549670686512308719651347998325461599273623379604896076091136615153106212077993842851659474526229148427732982036584475795990225129080675712321646751827700824529485133107866686482405205085106806470651608863881697774194904464411751477012174754799430423509910939545567620160499294042657742361907008984219541825459073749318384895914816061101456503750497937421896082361556314760248070553631228428110497402308055635249911861410143472013736222664641002770375500228974400280147526689565128653224958427892006894356750540330963354481736086196653007125219735533746978868099929257029072915146402328931348808104184207018770918901237974623777245537989739021930203269541043738394911666695951548618781604998487710834414523286998400987699306771115009115946636257578927809451891417262081186567609006164867294045934609370944543741280564419755707621149939919363531684432051814782187933633079085783051080570731007011194658666666026430317702332464749716642322786124766958053500347194577805119979087789355954513421919117683630322478746849510847672795639202851553132176489525893265326254819594189860783014575732689709364599971675179801213146809841060198430186836317517166417991759327516578169188107475854849599633603040298276518412853896066117342291658237003688425806847308867543134928703561761812957816495215238913539594110793285452639025808656756381633181797803597267173064193348078640286201919584258187424989812047133879183816147150594573260086987760231603514065324391830556530636165821288029344142077422669143988493958545573497643351809082752227441446174344904824206347738448060591331859514130430849476539451931916065201137280218733875894012531069165897602989775726267741881995769117214358164897802844041214134929875755995427230543476589857757662513755095783010709408908505379905046114249933911240007993488813464583537556485743716108361475928473176622693716654668587086866946811355979064765660660295455318190579950398998483799534768905232188625355984868956315204849021929064657570808721239881747690998666048820677052550472776591511031129923478401900741024564190492889402299019547984972930223455970542707687866739828627772488169033133857785149142388460661105843931966486619568213160649455908757642504692366358170935237570278095442173154951672312132726039338861433075709506627955949923676468288946881540614991524711049078393455663671888246562270147123879373692124941755470375784712496161584224438133959904560571674068560761005083073597863807885448890820685719599905160096680578377785868266118643968274130589930234632174808310545145332793825446710998328020782520762098755250591721171209914809873328999396118029652937855254039750101867300402360969895964267646624473347663604077594718315483752846000402247591324715300290935177806138517341244491170632517703347410404455760124127366997521626956490083373841927639591570284189689154983541899708941137619699531305014604257144510229223618429204841762510609609774251004577518508447522304840048102745911491043883594062229770964359749343173021064820016066932386305216249208337936442132644406019803135233024318086532770009573529095124143339876900237565487372992661973298191231500257475830005938648547590842432378254760144275064143557440668395466349355156702180551051342587510198119903723530407917713848665943694176508547784096194241070274382855829649576293902922201100817281931402203822968607673363974376980723495116410719953210954942606997259080016772141793800011372452883243470615295262667898686541454685446710710027669662074101858411678630172972142334151973652730615547489993814193443295495079893150166002122284827171180839516807901278578784306796294027911589779913605993576521555625589880460875054010208572021546716779248414892038856608211143855996881194794887343058972958467936618280568909516722853012300730895634064054043593533376382613450358455686175481031405732290813746389958628260670647874354350702817904278979912599901232417381219703109657764928019807309096720014629436449892935799050987645955993009375099155846234083244198616927691303408279820084683913283792615704408655865980025840311795056475621231854901831053086567808250883796074607617526468910173951830545442334400935132157168082175642877475298283065367917975045409650361627795379174716404811852088835640003041504079402061264188076457330228467609794727811816778150913911469002246682575888192707393360186729724340583712226832357053499492710241449519044874971319130196363203021665762606991536427417345616519714890492801876769301942126428625942183475098189848927118993187109704094169073729149772307841923812181395154240349338044752803249948701598208687400783499995834864452578662947558472857972801919345211568844473443432096737256988574346543959367661941233504345640681939833839723300811661137567871736377843696128218067122871506106441419642815371785029343644445633200840067423263627985145634104587617149450965491072777044307291616144054204904920838585210345059252236312477780737725940488344817202859989479220562323422980720134781791932111662954985396835227709730451999548148553290915782245401603648976325048288333878392917931198588255510255196071207140928849330201161955616846316439327749425314118487117449020752467814545417357074412119177961628611551310001777303182778675615540727300586160699651495444218779763405135792196487125723896870185955721979594614142141857990081560193645784809368255367425889829542386164729147052912318164536681765368969242473882305019179042055717800758940027716861644505739371568685347519309780136847774096440132872470721144760075278861356374904123361193399129668541771531702070280273573025736327370770533306098585158042080573703090544481193524183754540361943999567138270709753909659937357975312470720723500467868544783550919846573850901905005841332261187729340808070186946316086861612635126054727963992377275030037606542819652261383231025925655330388968838663630034780380684444943575935070504523988576318857466153849402725485958969072179886683028003281724086097537392464140737834468160994806024552577908741558928286990670340880128926399839950295910077831657102661213544754326409802710415738240482232733170430726913166698918884064807659116896030125231593582504127897655939579875201376849995861472233610672302279392396526834160461318613547860526721791820756398930401729635750210818435010261936782139846021135355471770164983715962710783857501595013742558875834659136762180478521518164890420961350734745649596869629595056729276697121417862143292865711642874436212728631881327701348955099659291196442440394947314343092056068750592021018850379137664437184594575433636186384451528387934567271083574222074990858031044754998830580297464949551317001009235439853003773160672551692013537642607608847790277938910325310637230621710647251536384014696235481343944488839258739570365174599572416781780037087590843401645013948124158025954128807265405663893629376171668068372362133739204594630702520650644112220371714593245732841520329917483226670342578956775066414061033258462015165396561250062797491173933834118125629126077370907649717721029844155012095632381287942595936572851417076826214122516026760480153980703872093088743294025044520907266306648386771504492682703661858885901230283515157141504471300334903400337851280074269203942703030544756365043131185156960390509862267521504414152628135786431661135610942909864570037996847030829078768331558223690153080992505261003751583152628162009730089494454562808895615809277707483284121036031144146562193307224450188436483903819752046204930639124743176675660051913427843732188599119639179544061330873217798232436579328566300167013178681397759348946327827466280615761957800171307490153940903761580535132443508072942107003104906098230497845033837601018292030689523292522875304531817209398225876617042830793292604824472563942173265647148038572251632448722590449268779498807401443965350906988066891467805357726781748120679213071780945075718437705200736387253857884001953872821011108933048284781575438262921443960672909433927117616767732727350901398146923463309624289412600773189776892859785506866594822053850907853847699575565479178559000065467712221238221599357267456373213240755917544065894632029697288947750829648052835408393591802416941580918931261050396740737477965524703944071509141785180604429739845996153376601798466075065278967447365035661821624413375246347235618457786960177650146397759859676696687607835642657125247162672816258767436693563083022698109151398170491270496715191642871591698942845881079704986121759284352736958945699779587101775415174193972852946995188284513747764442560042880431523270322924740857786647032244254722010840214613940050783953022029720423263828460009730094423356676772895523519505848523816539640652193836900338330954006436515733261555004986199395473641187919583541108134242061418300777034597455583069130215522104149547079235868950398867281731476337396612970853592381489755090320355097075518997483557262410019023632528893705729588761718135016750478253296159625430589411281693762185251305044522916124970085926167728880682141299280389252669595641934832789055228143924399886063499396213320959355858147594115261270589609640961152392353156237754936813752842660786542268571108027893763242824753055832385696760668650184490630743517761034581891030926854188963549965695700283026211850543035848169349027182633753167183594977157048469054784287939682591764937495758122561547268088190865171917594475725471624488190315790231606493769461442354299817240376610569328318286002882549967379906590897066258350806498442637634695691470748297988587819006756359382141571638420248543632648930413733184162190636649535787995357232672518566795556449777269524008493846299318116079230002771166897382877785939286346841435436111163977347982129146450972385122206910774031602014759523817164697115251930144254942272979990129294249278855411703918975706963484208230020335495882694966947798915950115137589015988524891320677039552050259884714491189650807297601902212595233405676955198773638448695102408823189210544153173674576124976260496398110131564440037787924961593245773822179612131760588945009361709922198937229734441340416326603461413476525627206679162214017456887066285876906760954162013675983244694188973264311715936134492730363108327842759273700015198968271794057940860926372725218319075251926326571571042047711410568529329825188049038378837817820241579937368616691670402680434217436042468537577828097233792688657341187728617057343880575107843314908729710271593035808812659638401603193814541148326247511935720237653877416138474539458724501654745208960793114312286478474428471970000354144589829204832398028463069866163766577136869372002653455888663261895459871411603846071797973075579746636432439281724404031658132386238678405542764471472351882255465017911393746797179847934426430573496110327321237521943072109517025848264477568151042916139322771782320240731733950134870832265128907365411038019667344241673492285048932744659039150578828818110615115193145898371408858164285258436106416517727619515837583279078211713172185495746491129649577559169246260871539738284124062843374336329271316889109793315311860002440861760866732214400827118463740430182691384414409705625360511719885301825887364030695994416880791099639183419600068980783458822238291102412913385617560465092758298171884360306188732834565623948031150058409814253776087458712737649051828130299896788862864096476890246126339788650199086277397133223318285603463370106014147111868016197476526905265541622495418983220347922114116121053763352604718785346804918032085493902083018801327649366047857075579784271103561338140656916700417005888168245490284186320168681371278060271792353271965674746055101028860720015294984354786156673266487810518520946894754702166738173339960270894333426402163729464211102728104284466516924936494443859608596305532536352876735500428177446618349957765671909667500504800206244982078473050772516424313314982712249891038033964266746496880587254751258954665106484172042690287935884511623779835626140063718974709032008339067382061141699652828455033822308916019869121292969465065047594984998323573769952733768782493392580959882502418511731497129416783203296960902878454102361556246848064776649292113401592278386965657682194347711444000785801821921483588149757079667625883902262894655887814951020542405049131669248041366581853304041690272034839389570628678779154799281436700870708224387889437416395501591617250711274467501258248675875449675446644543006323017345208449783040219259932689526651463482363529510859384549920229651974052631785424240495864034641113494439866369382617968061002139904695615697007433506737417341541538231320417850581199360691376441280895794193415778541829356962812352338757906804456068075847003948008603522626095863038715825812767084419262898254491288735037778056627500068938605768086791020388240206206701274528444274776781529878642729204903665714336132562172218051014307922518769344287651979772915648423231044345732066538413674697658016892651512860781583001691961227885642350923293950932894214922443353697396444024932208315015763993627880178559675129513940591753828525396736004525109631412860681963141069899341943024132827713560556370558002087666043650386890869050504932539340694487701152484952956012566834714172909443639428751603112254823605195385443405591924966859034463489880760365873039416227530469381698015737744006576055340566135934389172187766084322102397826730923796495369708760945449951352515723910501511608390709344290464575607160114503072553521368585852779298953711126063038523725011727365512448191050241081139010758273090204988559316812792881891628949329318481571221744683469065881352957558672744657828810146388697147502883016042100376845341151799174666005193055457497579061068062134537576338711550635912459441730524675330461815614628089028364810522600473405603963477759510585880731640124444931616437495952628676727954834126498925789235133913375372200009441833076035783012691335527215154793118960432061914305826046825620589211185893746062503993746768066950383132585186605622993012043346755074261244644112516034419087978555948253080112577014777956076583940625226660878292602709107833936861304723200890063463324551733307379739566091596772654203394811650584389007764686474958331123625426283381302005110501247851827253238140183947949805646080416852022458996610609282483977057160227805460439345543820639348255154672306706722196581419362806995952362089538258801581022194966358149726994515588210214801762822859386912602932185301205022210611460240836507324833281031450727026764716478949788451445635943976591259481394046905977007083470619437944647749620961377592668638771793887242415593250664767131033579135813561539020393900319986548793179762533497848159791131856996026478894464477005877585249103877179568532983629236474205758376792035861792509858610896852651451442598770379757112562954711320542965556443330245851943364079636908049960521690201152766648949344879893499782214632792695662531330283013051690828489269825587733215279930718196369043780727075700043494653014967433627465571662111864564226420307930341469428258806663053772751307709261302980626289064759276521435214341941600695522593672075985522861665647763233581891723132933535343123516465579716033396729734571723148702461100926234060227850695022503304684284036969300534491729648304416688279513656055493494837397496209004907207278783456786342625870473257520245926790136485193902751149788705774876566393317654275149664931243773735469750079345489747050226586940559606885890490920649542062301911117909059322845170923658979336014379530014475823211017365585164603678279248332652953822911731424516987613918891111283635051012828997423361959651854905836949787455896240064049441375506883053812584529492410500043182040090443763357861478997369946605954317362718766163689286343061184700239579998843250369153490594178644537398629859208178514283347056972952253474199913321138283343302136711832098862774002873382228878364744916340641207153231681174932556705590951215553034322954186516974450534572079857940152246054128107351289362214316338465686553540219130787786617315772839324096479734890225766263632937205609415190063359185058973737885179525012213101737911798872071182849074892370988795432668760625300516676646816297494408676175266663472839882815468708988569222827280517701222754311721822300333609898555451067182173807368973946690612913177956273229109800951973901161135326921727679031200064381076148168281400809460551148833541205346290068583556668310512515041740328133374466386418743625735917385803012771404131076582185468574739116845533301191531412798167429351621295902963474471558739792141230008442983822344014893918572177164037979673042436720940273065417422266718849737353309584904718085177924421223030917330319233496837663135881600502773570733951315466491816597903545530215758769818639714736246837020911980517667169136750262390328124838567629187572757593278885127505426774618182127843298411636828828461387926968919704597059527632232771370256969039028095192314137229146857461712872070404107454770025266960109331408104545771185028851826470640264874391509133083235697476810929130499152168849186979917156264380141354465413076631531335789912238069525567139158071042681845375250129610267173194160194715596496281595162132803835161126394154096177803846071443064048378500257700005431957949002617849114002883894906437162683479624058089679911743752462449436045309769813180613172876492713010784912517760104175449112294509067948456981554830384254278553358710030074910355803784843715663115965596943728350119610613017816364943247292550891996341559830126529478508297351246783737485014472688520421142337606985491829970716134910425274728840625195946068687743581128865076457278661806074939503564495925422317221368118229151028816062348073264261499885731637834170201665300840150602776885052497038467519781822929460336029915610714473917939502538336522766160040219929633024210021169141276801595496798985003134824554182741163011712020408164210636306313150683090084587430946929711754423212796521915200340896671835593830726247777750952212758003712276068000024779205125425531385123960160277438044580709582270697529811359961866013776062556627368373353466215946421805365242717808821393852926686047222484552199177773478756102940373923720264759560615086249182366990416453458034687871301336501866201694711382843716132598756298466395592511044588555466067894542915945025376129197380753505364038661282456719990146033232211267177584984254345117166045979702075714818765082199651259783435547008563442804923080603289056532706494137220559411329993462039983103612037447931987772319221897991134657420976807930352756858954050156518778544936395187362280312642755778591519853536981096582838654416028390622898629384025980761845677815653991304028397405819119532544834267146868131998845083047612032700673917521715611120187562212198316669920371011172860377664219080781083622901646651796764156374077220905434349729976387723110860775596017934224563904719698014103054759063226299037227341251293067517836856103977356264464412424541916732746438356851968939194837267896727437374596514636555650557765704077880796481449135882474023917146489154973352746046160138144405647356202718657402642191857169450708593655477022585904405393304023187966672993322720725551963048506255388883285801139948069087240948661731364656092710521057468681018460964538764499681708052151204276950029490456802231476930587928858671150543173250763822925048151122464553175893240622759771680130458469064522279831803218710294350584553933344160545583279094493661821420513007126712413294010432687802716163724251207645440039544036309662729846529027469126103712300482057870928757025406260275811020651235651728046304033110158587936745744390034781629919073743918173275795329101636445815269760814185587943672973972978359897590951669046522091299606111157449870591253039387564147332526106241229599025307732831580886134527585710576058207460457997833097204501389078755148337384128705209322373576249359943540438467095666409503284781929608843532863362706991663930062966774163586947123312581245106610763191938916892377059615919865699343417990090896996999540280676414636755013976106227424823335204335998396014505580617922459707512137873343157761157562591649733723330574472949166798413190874919176951152636815696942738831470045303211691455200008616813532474194723053640364014791964638197322411656838559539130307511105490171170253403150103888495040160338721498231811322102742671937606630297921124214879694473152200920897804408478447692886316095718243322650819590222302609091874161375501902014367075808515167835137220959355455954016364953500059549087358355735851127456566072041687812838122109306604420893380486842998445660532852221766425606071621956188836161100897000601000352955046104368883350380434161053116167729786409748816969324746165144408191969949157790137794038286686985472052970055551979203057849693668605336828059537529410442264567459523824968710932531609806657012576545599187809418458400201648215066147859831020467357822754348526300506259200625740827512867817434318064428887107858542424511998531549143367793779605323446107436117647012344339280274652298221648445631289036484157966935914471011595701428942613619798007189852909114477658774488509639697724586212265407713961307249003700091424677061048226923165255096754561839784363787615124307379204402173108224657547727489898412483697931336232377508369019173417547134719500656113789794113937122360345628293216782930224681265987751687053048823392909914418322051209343715468012626838100207373266373840740397927193253597022737133828884003978672749572893397206183592383651629260466913484816878313416563114871577343242900087294418984883169650906646321807948513970024872142379653304763517495889218378758792050697278459705192496260227594399584251905101103069946153229231762586951351984374804780511016575423311866413821147042826353430340264596634734376070721316250085405112681094404791207253530370951802744148713920722449154119762217095995392255022255614032845044038538039132981299851477998276784353340943918145058234936546462666422665094081073214049185363901880076410367911668903526205746203002532764682498647633718966023123734822064518283802358304201926925926388195541218930884910869230743070583529077237350101362954988842605820913048608932614126475853756040860445707570116524639414762380545119536857599057945636536416957820815806700381165334404318134285991189498326793692799341186556976722726459837076026436080041964904529973281328441832615318894794815888986466096874029172883700581570422835637219481966018114831623699309146371982119785693102584918860413391381726769202343118469016341574290857268558393929090153489138626657854368152145563808368480121694268709498015855787233721622970209566496537132335238415229975506340049492289165309279136862518816436710453699383398556120156668191834254646355164633568618399499776810409575881304449272675838382156066100069234916176825541765101288089893612237628240537037789885484767809761753809123141232835080193854423949660272464585619274282858921297942635769113591972110753067932732566769640429356044681590725975281291587791172637832364213925637724435273261321161388332691449697621134310171376506835719085506402533200174716982481890756841292503267752109842510579525196873292772799988674202238004931000715068654586336661318607454085700969449007058809441571413949337070265752424607439197303030845209963143973169597070485642266516871128371544777541036297564168991904132778275340827963376347318813978174994812937065773385795810652261146407660582514461733043870332270424310708406693215524937472848820184249682611327732399631231589747784174045642668577112802384880079161428245191928137019901637644614964845840853272462223796518011547853867038514207566144969362932137568377036228060289823517299306978344502414237641535380043096129069320519541217887058100700180723986294795220545600915409451262516561716355871362127581730007152380208400544726499012432438686232271335107487331644496850991130588685140248206556917769859749291565667310486938637691241693880966684811963958645017821022206244633223456655173710417109585288431368723895927013234580246816168067464024059961757863274088524986644500631703507337047444123258464060344500105271982623911437883730857376482127631589050643109481518119236247042441588427135550122248562209297813721862250055113073472870467466528505098331154962854160964420963099423740191964087078537602384971001528668258654337293133578415190929408671901027997321974545708925525630640255389115639716738798779240968199462828625221823007870521731356914007210313526965041123671532499595934228086332597475617269121433564968174294456681854871744376816943664009749533223074741250974338851761144068709207679680430348579982458568602592379288536392449418266099576275478476051629225752722260835219838508466263742947176124729816667627774653838758317861105735848402560002702956864634198453475364893884773530003490689515806463124155563140164707615813379069881918102433517254092611106446883228329298006880113554551140918374138984005351127070576188338081423981800345714336058562985248116661315618865115341567261761812450796949536644443361051581058565559513206329264326576221811732688977905273834720238223821238452708292427202229223743289618077204817899203284874469704797465148957217849649620237414596434952140321159104640896433534359750575488552999061694300914214586668404596193934940133124598307649561087285712929765361765778094715395247386758889859909918644397916961308080313238960588801521194644345825196694905652359339598645940498546660157737100039363336761520944350444976523583350303387666659996806780500541470223617767243663791020652507412279720799375799777329181470557839287411216634881963257144029287661088602063055946631645890443062339030813842362677567839899786653542530833484541299429354796046833620761959599055264751693986399258911575618277116911644557376874846192413352616121040875270546142499965507154132368503602152244509693519680510140184411740057541603045113231786886750139853151022028484672312120658188132399294689872001939849971683291829410186335960824185958604940629381906046979934874124281237428894734606890187014104450330184410638820916595478533575968049107490351249898611816799840873016370880416661558574045624395001808045044138548638878109793653255284107542420410000399512612177155004474275128932885374889355511914278306779106731356555552414517288022067835172405971708261915497021968292955354150371021223892659994908736232411914002345537443216179569319166830338309319627864548965653903909955404745584301390558242918543579902723054512530827811999850911565612868624341448615889614579031235633901160702306847533892640208466433455518122731736175602246802439087621486815233422839741119867738983683068928710818256693657787477976876975464244945281199990742558621862021772642524284630642671111844455283101500994411779216822798462857654449178396705446107002914329031876619607849480761964500910378889268607958303188710804873655396845886815315259534923274862653133878244553963486892882410929768260615854582609747721018428838018243138258753007665939895381633620830974854359391729726351442295248514529335369340143124174697190222890267325934776557775809445391906739979411591605343528471054460651770882261964957499873280279251062861789889874857757787861545966813457366550035097550492213705143434053427452844997422298664996820377436929170980772103616388829442414437454793457441633658155116365440962576651858294997049074296473233393407786097007314316428188216374090484344416296112869340737870696571245881923414600930605718949228817230323130593902952452853451988343181023747142606381411746343636009444544979728730727553617013629712330698490954524247124118271776278600744894037919968928741798966589131184399405824155342096764741207642277342316153535223350861396130300728944680190296344780139476995146332591195131764497150934158447382760336279730565962530219021761199280038527325234569952072141758539123483664715410901649162563521696037940737159379832506307926800229451308905669824792811265955409865343489580792090334804431143866488959420293878813755923517985801488841615101032443043273051142140705209832532565661406118244680306425888400873291708289715198120960152681934551675874970636617020186897709598825223686414816471503932180004884222160728882501288379543903421525232045531420195601627574838173056097901819209417716944811402632614999782439283229670083398953234830674166242126649312228900451716317764266297485032817287564872142001435962378835704360852131694859981678046980468070090880068559103687131870794488056720535729407594604324836292312736051678648633096914189658857094370635646236379686024335077715036777406410643757631389093745453886053886634908530497940342686427670808818440535368921917398086690642913091002154705601786489813837110146187845052541951582022369971861387117246229983510219769481354763293826184702512624639828633226987374054259450655773162814005842901110171690641242270267876672350114336616059897605295103998644014508657238856738414053336445204981809817839445264481293220854556419330065151250601937129097842173868010791314280725096415810275176337997739213443841989309113528548247297241264171715607597532518429650758089832410836407682060657916937422541319649267166810307875399765163295688045853754713374342581694192277054660275304579281011956697447111181778328788812409796286331946451276677351632137181319841487267107747882973597125608786688964732079951528406939231946195360383363577387302495776111211035303618430568406407892085189885054538459265580516769498250799537715071449377013321401735534768587029925403494595842050707756916151133432396965501132297241989903490988700811418320304500718721529753962967418226990298666344000430351467103512957767349160080296118891517795007761699896386876230147775314400322614316858180482898682732766547578120693235435413641088991111904923816541730218702240394523706477395587667626816748490353573345937461705094482335654442652523041156765603884827428037043286533836292128575420611562807232142542145794295909877374664098750702106240558634947554724194716021220939977918198632379459785749971015867921655460513140584787821471416880145528162934212111833760837814115434431331874096853248364866736679348801801401361077253643499686261366245436407684911623219064259362734276977295130083363648928841734155233421268864883135499854760031113161641701862132286956762545467364080658578934038438916931031936404946889706450899668357589241693986805569272292917571041597558906244874819194722424875416491358671057256982116095762094462683282423660174799691365052390454021592567787733808752496008724039716906504712043789589511599033388088611211221692002969771358140673231886650145468485848753461911307931319168366695143420631014497523316906051199797352820725328383575152737683031628991202359395150969252388272766321299003894628528968253107988375048992919189924947923827071736933480152244062265137366699236547472000415501503720640023268858297027363622720383622538980196052833488132213377458885904901901895547800304698786882660953938907899729957211687719726284338280006686114769635673986104702287571080217424095516443239446567351844972374169159534969869341338541615859677393815109794661768372913589403875814646680596586155387983172235517286222504295929302144338145280382316116433060343755973740351124620464775242085281510211376816697396312155474130842623037173995055376429913480665733412234770016928176913271586609241772724453507653348621661752025872936644720218262535091664087251426265503986768066521207935023119089039725846056870103903989745517312698494895007096160238095740191881827591954676404602568272485047355292999180224779647589193286869693654012422095177482704695149629847440219537342118100055087908099185288730940092873338129750442458314802891580514381243028112925818113491433355607985469450745277570948943940010847543914617180208898519903373446151918386127399863876695281136572541886582061170326954268260915678446997739424514424197660323038247410573611171256666012612659916448973123508583768784602353457841080041009495920102732149921607537092820299661154481144579690113770040973181456440526145036408047477855831370505868003897156646626090850505227313451760727431192028965402420210816727194008133270673997861006312823599262599872033274313393102008443184593382537588414836424306738275286151094585243137014537730858134949143549402635106273733145553370962528212295079905579862228651422198946147960773075872309855883014020096687757467388987394976245827553029838575660603525606166057532023426100422010088678648331385794905802272985291220364544958391300382416741438809870441901618849854833307876539367476648605058769004954144503517883557251263658000017860693736683567878330496981688116465697878931036838735616432951690166186112561575349476682872949282744148198714331031479505252572649966473853252888266832495868777718916369418395932486517385605776629259071766919679862242499512982746550194037948602513057867451944189215350084143130259097275159264242280743905949174988861326795325861349519142671391483746590982852183765259679873191566924000376349766283272840005698825610577323834966927872979136598132092308617237190083412771247406233174350444781088824424189843627925713937249480087730972436950123555187403335225366936581317890452344139900922859635754976585869264322115473213228257248252674670223479124343966235436678149329235253895135103153209291957007020891685036169072741616424508564700576941831327018494182622576475422909014689774466135969637191132569486207329986427153634815510912198356620188887277100165362513128549364239526341060536084195237593653948734315266038282758085171997314438624106759351320211560529048305138677948644353953867147022257715189483461039988297408799012456735240603319069561688335171666838577330348864249142767294471468681554547171678373601673398078494610534168985941358314319480157256088582253774972047573292771578980345203636848135076618825821819819052485929062960702618879822670895411504383553715780521029531500443628794380844978179563532972289941312019046538764958824919206934993555675017197682064920926549114771620465708241255437505327339925417324846798721683241973748865352521782070462192627171387680612774912359702180803564212400496574145882612201663204582327485969665652584666985126639881088627093157068636507684776969843649879160272557997019991389773107420622646142173038429540556458532197387918589938537021645708551156550490766438719218077385006783454977969718687467397577903229510944297508558111065780596637354121547502781845688391966409231824987989752250125262639283088136315138338515476888756267713992180374577314683056420666428593753381269009873029424790445770221541267542414799535978800245559224865866144714600301457641584598295141646445794728072837964729160103587263384281547289352071548260260416513801502194821207025302337243549238417831333870666335856608811735544342061919553770511875120500777850502000215036509972755994144635071637578741722262109087848157393395657377375927697060413886057215838111005056162474806299893266013195128815752176116028860074781282844556241342905783938634092053110580301931427618227233362797220838305529449737358704878902934213757547562834315870053886844397724871938411319033901149164285862785637941079749819540654259859472739045004390829331532940197664683394702403230063654713447426851770205322233576481696337457583701535387274632089500195114362322447516063118454652174687982074665726758743689165997541950511609036962363219897896268331019012194635390466228853166854719066910964098344222767488846863973113908099546706714611642900906179423497865006241195737651299033810582159023392405639059220402567887921493614084407578684264176572497427054520852093729515192768592056962867849978520401721575185389548037083389204400248897170119303863530735358364732243115627707237982535589609219780868545232626132317449240357208804758394462389297985696526058422718202793259860899992861786080190400975863047921273301082725105174815704797369001583072887487397099743966772092565750108823012747366781679946535711375386739015039351776671331069970190281481216417038738586443173971290568953010935642677109443116175464729563839402803937866619476986246829138613658461880342617190467697244166355997403805679645643208136905324635383399032399094215542940848493814861982337619657716905863527304544824559037115080416989421800350039209503316187805352866425366414744560911325641445950208336515257456646918779227140634150919765287105261120756711553418302987217244189557927937059691807090519822946934165513045556789626930714484010682197879705568986086729938831999507059897831532237695184422610957704182220573232276382310895638132306250849354445796074809188604087929377778516230587351431049337555522191571487623413403527929241143687251286181943122466128713793815210887717784257426883187486487464718512928364332788027125631769627735282522782905394826738682581128988692238697859070370338008245208376151137391550116586095439372251018061855297931019331812593468698932159281438102972038587857210422349726686410160266479723683985949342717262464976189950553191787399156420843586394546007083537385735623925105814234100142605707984253248519130373400927845420131340513867485325523168826518058797697680009451958419132973952099200877182292250618940313855360491201116619850136615351483158997096372698491874398553892675560889248737585370036146831186051540349541458410238119046118026654707957759688548159487660852346634264125212738533334284033059327744867141587374404318520600769910122712245944553941869906556288669884230938391030265941403899525419831263129639349916031123180444018054227381933699520163835615789930085181589382027983252545847852744664520061608179690483487177585058681499455641833429703946528406667134300828445167918580723755387101927578302741322150889955426064397247418868096220956138559794550303398805132813510108109832491246988716527178239974918660735440532718840600537217622097235722338338054996563915329819524989254928343068256907348297082111888290097737206679079534761257363667280866914027247860203094398111270268247196579472591014315343310703668651520643739213302642541786237080637276709496818238072773782813617795399846946572052543936825632646928927654070842294611861977120975266645997464037624894126054414523841333886105396720957902277808819763173386563636800423101800406671902725389015561448141974026094775846135476559629652482001135030766957945088012061077440715963629476167532381946971015427035928608317101889924450799952763304189337984737580638685573455802832326618698283065416037632081858665529637075509023891650687137494999884235303370061191306337901942834297824068284059914606833381851282147250214906337532435713321673799015336403578007052227742309465787689514858334248368230119997046937838713729933488378349736337555546392706649779160558777153396454995950548869013738084736841351744537320349831258362378651939577570992445959179929875407654772417902850025607763930489531978083648685218345216843909337991702819227931662650194586527132276034618720492580001357320675513011052419546601347457754192322667777597724704541086798950734836629152190800266795553529137651278197099190522517521593648400034025172580014462829246439386486850652178946835941375607243414473827884046266329149903198087437062996865157409675768158071510102991704970603866955552716061079950038037218444315780271834676827800084456145570359351476760832354785897513473578336194726168738008150158337271619112176429985253489837347239626737609931712582197380771510546165560001428654351265132305702277258883738497173395583665850661785175821217017128608686037343067610280519555132389612620612383106029666346988595722118805202846928538356071982183175577464434949437554318937620969307942643293143062879606508914578514376944958015949492608711561730712096896607351023418959191867875109130507165969965758494350127190200546324659111028527689030817614717970909918366603979611290607996054176160835902565524980077865282162360965927526563112456463948945560818254534770996575644481690419533876324339850133058097063637957381054900597150216883281315398635201579103373802382763315627764304957652549008882054343479795672536586644894463639800977918322436464678409594058126296607103635467873937045117429116992768939717199885053179867315419367928131492140490604178136588679061955717719062908996573897976944962718621634683601400199119425166182248544724387288624597553216706291609683265811566562114400991626692099820607122760044862043474309602436117044589633387273743940464099636625583286935065491178881288926536094024424086704486098475814994722627750532266748153325791661625778278069438220225210154964175641623031332685120370181920044727949729947536174010855632136912155837463459139512013983401654271719469127483829402247484084051937330433425082475112868375772744941172259088200814645489002484048664069043050168939396438150520468495932637090058436403295787456333582521973012607382741009587391201462407075322504748524644606150847385316835027693265998213321904388717360904060740312246707999510406655055262183968246579723094083513379757823095716598344959631816183960788820963021625336932688939318989030447821646944526474476308270980501893910910040978848053265811661867902486820128198793892418830376551381548774819634874371781803907133060988952723894965727414372639278325748996325868179056523783747131989428467321976545658043867045682794550406207478635165444810959397118753313605349351963511932619925190434301745683388745239007618309267187235920750314928576788072051319353293125467960549351300943160742041721744733987837485889488956624329551505888847918936255920688059823939829711783799464375120471029893696544651717693853870373535472405780439429678487399838885344582752113547567115105792748342571413381706037490584607291198014557145008766626522896568854059724296259533310010329907420164019573891175161219029950456891820769640871687537180311539186137047698635398563606910858009546351181425165581289418704522474875689989390738089612340375250046627044580405045078525464622662164567172951898674540056448621085311629558596852234394753184046635148964000598309268576902085746451886078845503654061201086765247568731874992095849591062208517879040620211917682491201342947451356187708442188392836896733063856367292837037113968970106165652130068494670895022623519713762137177671688909547300583260588445358321390795579630370580363019026037523295583374530862495655715522411154021270832761480738506721575684801709803928763045869670551998273957733146229216180975116391422500806280147916682791619927294218941550439532414358799420310690126071492839555626525689043479881596330435290886414552541298505528843934352857168792108000511229261006408481995972524462430900175780806305528888125827544946990420559611106686273630692387653294346998160721095736444354825818456451493679534614419000166526376565027750603805590078531812806933990762344653811392118965642691995114699759174819183225085386590975367846582274014667677552247778622219360144337812500104539691148638042628641440936601044991946866212770621437782909988374884419823585143408353008507209949867426613268131624807604782887896281840536535863243351110739767154938445030159384816495522734507937477684337637234801157460575024896766129568547301161913842530230900274525151924066513547287512033893042007514380257353256470886892542537251594115776418228799267158498860038230087403066808370880539792893425295651509800946215113557958124283255580058454893464383412457559033585460009895047278335720274448088154217125899400668180294933678520667498948540230679663571265116228441290057990621896169408911426373489120967601535591804395550411239225847828008819568430284814378815874917934578520530120158188244745069526894675324027649990885243103764485657467536044137619516634996132596925647793063684948994174637026062929497932544101306916130576326503230575800729548575046170110293461182535714261132285172028131804473491001969823568993994161342872467257859414748790143903819115123441962546383921041763616782976705555947746458916002638568632913054677483920710678597503524902152306770250332518750015426655923329009330019731601635796053986148616770114305098153123785575327410414170413177301018474125673471402780636683159956806005232051446609592996711678339591117931186558958163155570663433231712264014158980280172093540436916449217944282682185110087912182144749197663715476165042321854809137890235042602060821691413158602190451684107105668579374511221948631451894747494787572634628756239235239918803273766736929932654256771475264413688150799012484602859409036942515173491552541670966317786548045947120550354730222942438400211304631534704527444585522620099078469256384536078910376158556142769839527673671804813563327134107918683100106236889196119615332008127979850924148108977622529890285721111959915792407703993044968321240923601750080812143668119856574296808569931593096406848805468761835782598051484422816327959776450624470458832663945914957990285073336038544537091912527109497428913302180371659768996090026781397125813427790372150162128000891005525715190991755576178264758330716441224807866066279645982872939560383243866366483415350082378616202665715325102860602656293274312165123971810525106045665018654724391231640633533771960816765791226563197691304131511306471580334221785810936290453731559770446181439498499480320396520052674775484165694497914053234449563326740624802789832428021849046075297559043413235893971016963375044197396044163439761956773006736690970832617341436751115908368758641342678624834904607417422241219195799433695327223915421109657924103395601819135687860129951015866558369262994478212842189962292545488240728497313561672038769106977504619698553546707329160020527364562406523310497423985415150545991882962075618281590760853888756237849743055190695144599907048866807805234786664333121677913585060963662129591081245374036701964387481379871210268940615548586840767033468724264498885068647349471444380108102901961610072984792042025957243115126356298185038825009922338716079575651853905473211251745122538613269989608478510212734648087712217666539703880820743914055176754718325768462161816848326836576114021984651697999836716359310452402983257949354156484090471174814459871158475744701517303432570725990349028853249298784581419639964925290919892464948929926727238487492964073866701262323939432327935217987400245285996221458282160025989323336573304219800806001123153251162463613986848452889637269479950361805078950614196476429242218411895552907138085158333439660472225315352073491909685929757457031591510265174201476023973697133855384006435381226428604311313102976125808468622269744705620047163629822324551506442282459427893729574344365560216919474539476318553878936636289295435069748281517045465812802810910823831922169877465842236137286045926897509350660865712939596876822264525473475281274182526178478084724544895715125925446500899966341880192104491795341532133434702364291555243178081332822952439719329498790875433610875323834566603464138572659050097791176614783780985901193161057528155221856900853392357296590000631646977931991480896455475357037124465503226866598928695895874161858078549233108652753314012293239758339206815828012475648691871451019292004681915342826189416032866459558024959365929612871111894581718866570659890170199215740893584158264513745184470523822686901766055275639945287186133443833868182567413587934401162269093943149136286192352467935210996968787639006699185540960573284116738311561165807481283254236481853252312392509464169963138835608930876266056918943043277786362955672778313211761620951117956671623197441244438247604561941850116966920494984380981922758739544076099751676092131440864764714985753103022287430095615029677382139977488177661268913959077339298236173760446326395359236485188205580583099404831721824305376504276030888084809376340731444299720739370929843886271109603331291050117301554551797365098971498941128605767706506346724371434668760153302998505391511442353295924787413984493077405404162672113442367888356876131872927095752906920323391064078089841609908877660059909573295174304491179774286226005830447492181539274043365175675061341244433201003952176522878393557556344949056725568321566587944898443313202493705964471866865348609559774549195376186397519511438197894830847699643772751435918373941428076510565457257324340519446731111419625645545333476906967510511219949954863587826327397914061127934847308046836021959420064672287536217842993271687439841222376149466813456534565595071854024590520578790394188853357709207316584081163909637127329056272927247119624325620482062579624574087581958979022667141623910887530890759832963580417631123098816811019413582848982843792539068690157916468477706507533396564729007838352221602947662986812483535390542852281371735018489543269012696285756501513414191659859605955165850026261567898792937634171668780649461119906125790355158036304013302830472350896146562462379721721463346480920294753396063946862934881474029877251138420020721505419814503798264788791936016425146978283242896667769678435812333094134315157638416293155262149260563444821688662180490883146830355282821899465492455999809733586637049517422687632232403955227413394087268378973084790069950631070775946625470988294242625114384000500499864655357036175419311084485790206849123788037296022681361774792349475936559378214143120820009009323139525529567347287682766316671708817318809047522044168060287918817707618994246523849087158231148208149735810072487263971154166175747236763279932204644892310346438087737081453801984973856055259757763675072805579232090292051327651650327986112915201117331183116012237467077017827881398096668038934166258807336205851509201265316992955514206707427186356243489611617395021454868625468967739206760621813100420929613586165402192239956426511876406260015319344441392272412869266994426429724657630057307346777619739381081756422302928311110760820824702397115355248357388246882332170635095016040010340257404267361200976365476194442219050369007033782659800792103724986865787530802205308228417150590004628124339863386316342555477292461774595046417448714625204553079006475662274825004122297776717153969694111117235475216944449877535969849638691704988524844655832313869962726699432755075406228943309420390955860666574147307361784738996382111657884902399610179488869445702228461139857599682156358284535136819729357350339620051871884106465854973032229784428009518244958906017740306447374181092544129031031212434095794644433971759997935984532808650354464278040902775893659982097035525315626552006502177489087545452445685594421385017365963550802974246199038232812113510507657301860390899369119049003418908719018052157920199664545276817442446952239792180247581890233616782243632086603770402419169110035064762529044708400506622450666933508291008977456646658399797067472685410062236771851012581887541809375466509165620405976480287405304724689787367067860282211376622249329793444410525483754274120257930645480363580023769699064030725775055755937155903970936465931513557241332501709428818079679032856540010333044039693158784413891419241824192142113098678513534491964851405783768993311924154943230465874342664818205986334237567568522704414147902970765510677328186683301937317339231793272885220756236159835484205646201744108109196624652048556920721769165142763901657151826200767622850124994541519740860374456781017160107470255219680195678489176717911385777103676194233623754083065363085031345813621275861292961723304603885354261952855985602312260647066322434912856884975582886188510244015812037710806468498652641904321657225054746358072010417881118229649793434048335121276369885219034945151026127625080165390954011560646981457702297644151043141005660488641608235022879687826815335653432887261201691660021764874096510380403066231153393475780398444024734241897719831954267832099980335098191887395856091062510680073935526047183357649566786633127902638307405483120286427448620023278669298952487246071398221945912207435348889748329741064273481994389846353736057995466035073117869451922281746955618838756022570992863582181195228105607386178873741516801000621791398526841022775499728927393530640278353341737888294171252975761025543090192370849592355949595784622097882712563695625315757567541766726042862028622146100453927375977801890658500026198398088290639239635110176096081752715201875312649934552352705053371316337321865171833311600577488558305948018526364295669050234678570335193643253564523034091540685901458039993504292405401899801491355364842100381423367752310742363379939453768504735706959431472435898158507121222109392164034721661153947877350038454395596245423106716468825875282161233513865754263514348441063043548047954313332312578765676322177647011852533495536605826369712935482922396661724452257522874722142448147601878364295163012637707130385721757047573967592978246217358446221097581895230402147368737636345702390807021111258306950612469501623620111499396442578492167305968436803883867851446100520456923358024924143417686998632652630964990748810394207912001863023651769497320657223721256823401526998484945756742475101807119893101550108313586739292329557754478532204258338805233270083449498703781565702048905358957145092780622489565290352418408332588741368948481750919450783102709867136258259434177425551321386724979396314823608120743487546333683004906649195614286793480187029780821405260592445702886952984223723814620235534190852622066067727835925182120812761187539295481215776016889851326147957146904436692488001752173584892294319257117914975402477232899429113198268247872925175488353411287276647886247675794912350075276496004142943593275474831954346748408016846768618065299200350548437408335928286177937465479334478112738272976095077995318106205218991447888913297276787242417159325690348881807125521557417047037690087307300175590436056379944268786329492884890030664091392642752298758244178719308100175231285084971962759187827600790070670718693627593581996281355151276804913967641606571777238112937486691885800420772953661610794280234446723506582737135748814591976285725460292277146434756434315942320665477449551390125906679662773451586616889942189276856418240082926223924399555067796684815278519024809870598005143197138750609404935259945051535103946870017507887836649178538716428796564461655599836041923659581181701758836075619663365977801093220951680532363010762232410496522456095426131616741561602123723913471155568000218433108789257905828899283284036126838018340638321185723986520167669492297897237136278729351684906179146244018847585680525795449712294864711136979362540990252755041232082739450410166456691575328721937720134898019059167623591794567799843900469514320610893498048375002510213465572177944796342725644468435728285838163834740611223852295753987546594375700104410894276170293914346313750393465849123596797211354892853922241955257918109074915588678141087548959310224418744495976507848185427123865869990765544843315085660575716460521016779845269832628020751155670753424731320932289784322107165534142899401420128564177453268665708868832276666213147685578021504005502389806799945515983432206440743762321516683057166606849715149111600682052356383266470864428995656187182961930343964493397471001258724052093018822832520689891515925664315428613707663942033862165376556668856083438918081359342357105464767988184139735077429429592056917796892248947664831506087562852292721599059728802654817061504954103455064677998432557171100371000527632000273422990602115309135392670532888027698105409066704587796620403671065543170452420058961741316278215830939836018440965005413216259912424884832887609975858617954584357911700055740975874880946341171880311111617665548657442002931610482339363676738351730310713528215186419965869404954072791385082250324406415863473201979030995141453744931039628742657538410229481217958595428944451561425420368454437788638580463171893194033886304659961172929168340735738980450790478136325450910660333665992159991716716668631101951623409499984845656033264572923853408913655385132225794248605090441014232625606954554244290477473744622098492907741207721190382334480833627019343020664469432382352994112369397959984669275211348161614681146005178533037160617201835731791388663123114590668395570068091084609485500136372662005345467971579353384041418106304178803474113131793295181676812987586890556264376283382969970386962763849838035481476247378867871620239731099627043687717955542042883107564292563202485705057821669142834620798182199687059495504860512620736599249712872885813122985942730116786920322659744017430671929217243539036423593145034691656646674670662872457558989957813018800525304989973416791568761300190832746524626855859151222750484237910554628324867259149943278869075614021124870813930228257812042925971505762724164536703799001755204233524389235627205553364287757664228697808905439542804420691991226935398173215383483731259499682114688322857692956318854802656025717202749808508919894704056126024217089904440642145419258389372425716485632181746806708606198455751371038549175646040744208027129657471167665896014796088310469991585861089168711840367918164450227828567523282348765244492897589992967922694459920956171751498974488439471933532867518610704627507702894257804016100766117385149469642574928978891043299321671204294901724663072566758968468892271833275469057232144938833559726801971083243042564969869225729876035835201778999702663491532676406506861030879010996897283025936730607177442690716570676807231488696588632871965698282730881809189407880055081659677274125195172307174271532612536283278090255953224225731202786094437749796466072211914400650827017698556661600820237262175267849039639827611589637070987775886945335507643870536155049680093307465068113066190469365571030870740569903884695645630162349885873522205219436304998776053515632044926452789373335258756937360409052463443205167277513128989430081180552095894171555722853980390488321033080678890612695337994373461362100638230291928812168122471006288528059282854649069690639822804753189516150611515333712603752838450992445433946331827003239762117791703647741195233232222885788379660761089660571337545628819337418559186334649722540131668594871420540218519802116828155977336866091682875385904618844215122714108430357257311236142683453788727996411621323407931352426080163102547933513986538317865296968549276352340063810470314034591826070472005996969258963231681267120152411045648251054336623725679138290852286821468466680600354910269729671479400010147616375849536234678136391783867680958791028491077750567370499380584878313250753299836050194111533447256851181733401872232844259502539931976412059828995120793719073066711708012813280461094383959430696163079848425840625611983834206142243600857019505621061034954595525099207291161996955577682213998570219376651315005686255503161416994828680675647296636335281876165177084332584216505087362743190718654136001047340328264457421877325705499711103121910285933503252297105098250046313059312457977123069821536951886254228106074429657515899536195897355449355754478529664314989042746472338206681845404078052461837893866182574245239969878457156492268236240104220303550774040384807775145220220951902790427456909900173142799207655397041483730840709560185111041088409520713876260400076658413451909066714321217949801147924189216706959942720621715339229718618152699266321589123511964723737225888270316765544777549412887171281061833322718453165611325872308253798582971296745332343379387915437746176405622825546169119275016721743590979178511483005918027086871544410274038150037991225839025979292604825713629836501301255485112755022707183511444167432868420580855217502223944372977236094887384793048712039204391310071626777582201467054553377387089935034885268408336918536828236972438960078158457910154013660081759211040790481269235548452327813611854434644726674604825624820216052479970634095215025601726514038269785187665805399469627819088618389992511886527701691006005361131476163926085049975250034752046330515019852658352144616341614927897676803893638810655947901448311475990920580485049347271891729876994403561527528607528506549268440361664450675079691513960747953496819102856914103307694489413189760020639056825923039259385139403484374453583213813740916064697328584562350526560354015781435735685311470550476790032506631645527868813757461591662500471536794843916387492711678682323009215111749207690407860018570591484929213300820092162174756011679722317780709700278994837152427799269272166836930076322386056614352233984783836140575552409846213174663756582939823103393692437943468906403338969587074401840003109735960775469931249945615841387761884164678970718435292915866870818553430608666798874134978373675260393711009299963580932493576507979379586056142186631469210359420050665481019851544682844399780283886033500346078612420582698353559484229151204927155933148268647017204174268761582323224679980606825611270804728303775390526162141494960449178559274480631240705149467196571708536396055860664317877383533023129869632224601653644691055799375373445124027384281031413147514402386304079435195976222692975213851788948947578128147750300138796565330768305853234754804554507706643416190173460671173105093520002339911025686714092810145015510100111265111777879369370157466627853717213383502484826667004424974258082424523679843479494921173996016658443835256873293676170973885590638477832961530970769259765858318571742258900692243996122197233497907335430649452996951891233432150684001347149506279363123656822218263376173055118512560051553717601895999817929410165277293156438962453215773053451231613783167774028759873980784215342083845972614978120276596541496926949480122718188439205576786821534391824628758870439388871336153857454283985558196080651365644663616080260607898534644493469497360911907609431120983506550372720198479376191771161432827303534562963489656057082192092954398645678055196821759790322099556980725468330222697829273364073365651377356027627971605040538901979289381128530754810305920275213357617458197533367900614994969038378380476483543462336619483033656478579364655362020812177745416617601287233451740604064869912848730873918895591661473554916101015326854566336101181553483456985435133515578095243296041843055805418848113884781780574550014109339966744238737072418049828106066730835470253973924562614668177334656818776086790625912136482403020209481691335194984163562919640245667565577372861502942045557366544068238368040915045830483831377227281217489452499182448018133754113134081717344900972376700607565585371529142122777307449658306253451133233604211178814970240954166857836196151940579710798881555972467791900382053022815114177009403936286705762525091457102951773419386529036688419858407605097859680077352237287561745119042241042206196607432284529907142580160409592092475742352580885018218490131859164825127655415645492590559939417404039743747110892628617550230189308568976337964655583409550879166102984335040434714429696511542412322068553670775013711254732993035113786658657420720743103348854103875777155385756789960605159567154249622359228986893896818640927349960884713848190233869974845873104884086836065623090342635495124574611239183544764524788430745393799428670840430338799798167301688216307007120789569912883354183235551349644994829350262961863402283403764648750042232986736001411030709184035800435392895738112729766906832800183152358634296813266989845062507408706007199694015865392661269809915776868362753670117694338810378477018267192605416105614207029209370355022527081319582083557530731769025033384355798453092337220887069972272990477931150362952196336511917150757270928633097297425100603006620401841858304898555240121992916654554172312233210031552169169074742732888432631312669582410765355127554271757007655836787372710444336769119238855635592129235147261203434374552026703565001348181671568518682065336647263791109710499236238663132458898607884953641148100748368639730708613537388625481302645115094573513669991638070824097922759484505794504530817369185922354875478954797112234234368009751200656883574987990053215367682233680810545687903375578946208891278824772077855615055076981139240442165424736311623267148082430371896789057573228035627357794010257911497420551336325001393060873211425981419948728550429495664298021345521799245492925295270454135322068457637140451319682810647927427087596127443231822624341119896758482029847498089277869367070281987701210371410334452186694143393892932909872099741677884466032735322697803696790607296416310675932284154275016671220961443900110407144644735935336000140247586790604829846823902657486193796319678519636220746033699916991026653222295211508813334093489405669475990487042087103851204844439305697790845484391844132213964937797791594654482485218284906434778213921567295376053374533887914688490125019945833188925469640918096984159263488695751420245611270990469965775897092744163407874471111704533527194275735376441517321850208722564915809320875311105771060442682384483503531751902658098863395495595746571932119550449985377805747649356933039912123081526581500116029283435437023773199948385209859469604767487661523847034506457385508628740103771722736488017562425445478035241324270740192248054979802070763290222310529021031655001194484053378827747463776682792241998763861796446050037376727287300551230752991523532638085755255862703052581739223306874580748073934683068273830416089400007133489561724607998193645931803013084493043160198112765979360167684208683795165712563455460684395315930774240816036828703416350566797409745810748230903990568809794628409261166248600093157285921568639981967963639394497891725617931291201047828153345324294189209601613405495056420956693925554983506587031483171017816949033936571583595048584855183848822462303447162520753742033910243260354774312924248313863063660402051904730595848090422012508822739336874919719319741575361815723150787276277121285451125015023092002702291701671141274663012190551131912978308281442554837310016365286910060116378096331689825515420154900524415246576358277803288353683705513872687202480493017843355342752369047864889192058219315369677778431285114745623825955558610203041209027902294662339360626423589804850914315649425787663565103963314535324004678902824731519607623453954411514366685979345952109652646559850414809918268457681725080234351413977934104863538518220401674392301396420153537760516798179239227844393851688084027125887680600307177917075802780598303622648485009934932629926747519881428419328062843068285432094330042221803256298720221606024839190204582002480812529011337736089530632313690968590101157708191510849159133339478883441560264051458695339074211049026334294816788912586559648193573595926533323530337163080595714902420809394688625439707681679379844202421450867220365623559793467357556917906602613492604982126452088200303474277832818706246419750785275984733612431786893506618346497456985635513555508334778135922160170518059550139581196819705856292477530403449263334449794032533171907480256486629669994885490222056713476516326665432980524067346693338741139188164412589750037714990073783910518720402845508621652902930047876074346704304291730822244338861880614098373416871355277638683342099637811846990500530165629306513897906788910475870688144372135370711495302805336759348700898507078263106496870614372426377121495822229433288347372670745770023269989043185403011662304921298420880733409581382874497218285474660425146880043212673659223647671424981844416355942113313488365532031329866096696576477825482383727411045586447201559224470180723741875597237787552640896216118537061188332438192385498936281137227793359680292942295707501450684054212907445275954928358968645926088288680646959959908297763259866622826984808366403701564295322783372994574716023832364435712483767879551499324415987280092419411623433958676997630322320068138590767385119485895401917112256702966460934813508486336452013917696459671455089720402325159656992234154013725250621545204461142148505759586373789624413207627150276936737577106526131422424760068367559054173560139973781854053124037026150542351189538839470539461558864452904010465150991861605753208977961944483258878926446720745440875402860922267489489718502533050488134558858540236304707394314843369829969199932736178164757004807182166167476626157845570075854597334224202441697051121160336297477336271838187979515430783493129419518221791590441709942347592980967468929379402670306672089846388780355871803607267894131577267823096547046586121439795115611516256434187405706090377362235595517257201675562258350532903197577990292249103652765788216484811006439510216442202113399571655222848569647221823118585221670723482823177939594027614825315147248071316656345678196864788102952442602737250420099123128736366847606018589713220579860115490844192971885363399615126833961744050699667221093899675327689751317989919499603643469255419495742808678540905674163705628356183920356103240467857401129791622599860284581768326836889831426310268702222382586653472620185415399293467073422015878961810423587651127959605384196538665308331832848153317300780145552201469141930814379133402874179676066599340217821476895773861294195807110959666050788671999730489748889204177642853037417029158439417890138567743692120857322829607280597734063838672310636524370742389954453933872750679540530064523477892049679396768401105828279296026279041774718874007163827259094379388673982243452272475543882525349713087634665922932881090779338649455603381712634639348654470953138087935780733060578018343836625477087900520051253144005504936307476326442466033256684326300021527148918109098939516202323112620376454342442355428220127242302847720893877003137399800940131299559767484675010415250860311938839638425764521759267969526025174607675977105471843665498734715469511560172455911481164430999513645346943783755774470799485923684509832263940166245755758854801455760526521812979801655278041355611276331140760902434129453826684184571682132157398628394226798495948456469935407139470942041155806040332556230774285375351309025616669234263478210704231768934937354214202546356551097004672367784325394001124414449561255752020280239600236914467374192494217101488644438826788520085819755788512502277148809493325789580957992052329661421514857139565804744957877290994713401392776874749270984896516204646538326258912523370817920383148576190741704778024321452847710077259266157240192101901039051736046656821422184723682076361078383637442566188193157234927231680812906677516772026398002423222774253812996876244975068589803537130553875791129683381138214318897885912809035516875530644677992581903205958544095325884860499537498506988686807253531680898516817876724356135297530515593454598187140319001450659146489013900240513210666661230033612416080605235422389739243807968220983480831616409086717186715888535883050987563379706946651026723854218286076625736475974020809374624323660348590395304974346755408804734843760956513260702459627614144106784936092171653858167780162115853692034025161900559327968669951906073746449307128888632426318705177550137964766607366786432625188975224376443063965497006218478304893728078594376983854421522102856694837929196626122263696091909807050505297690064687827095384525112791632738002060381923078642711206539267677759679001049868519162181785320030865772175612321210334061588573303944786615567540019607767652066887454395419618783359431747833316085731435028031419589189579832759317826612681310955649118253165176675054221590968469652160080994497321697461025507806151256609477160049880119350721437208454507984983842928461418417907823927518141779537472548165718340482453921188355714826651047501964390292033527371526860976355141037307886300449456369891991955374009090722064150199899445669690716485393135524552626238415446574286894994543516184771674609756894595993356847481624374188945585911614626123351876904092578521560183202724030526685742940736525882701961551375431214708175280858207720827016618985023461249531631513386662255848252332968130736872214265196882170766183814817799949688710159071208902107093613712418181164932126334529084666026102314339950169915563243880751326038477474181854835911690621555094407737120941931027676672405817803115484833434142100939834240710812687038149924193038367115356116242974613217290424706736944748621660673780869950584935922970700135249050436798702867487827625332975210870896881144091107832861814312269969704995379989490992782194700558356822560343546295623767599671669988686678425804463033585642861330342839985832603991540306732456960770621845560079427269310910925579490092398105513928796836035733366073853634501653268465720883097596819276557232005558393608889489765814392746872947589644340132715912549204517000503687683938451775090562624533036280702429714117149020901871742554239264981737797197544796952513376675538408955752491319831043094946829543933280886684814016510100743662951180300440706684251489720374306943630297666621135962875543798607205190349763130641653638649569742784420241519629708009977735992935861202078663160540036827539333768334306252381783585813909875769037219621910518241249881833017295407140561752563006483478522440145907440501278824641069735729565424128251977760059368921731747116472814097292199788218073311462543467937021412372975649532858705953457689512989650635219490278154472903757428450383297777319819368899451362340338471207880716501071137711239226869043684527051498055720742481397608580333888524850914035991350923164814124597291958832057676964883265135530072002049128598699380186604411333263718903206412232837499559349662639365449773097188342983697864318972776840419122665090798951700097994452187880391546005759022379107856605389286046194196999409930444568667036517574278662105970901263843182575681321282452172154558469472703306946367743674695656214586822839024572149242944697461499807650781145253350991620957805263765219572303972528483042918570851716155329832883478992546888073387581115394183622631463109557353217868186935130014920837734882868340875548729812952413047175799222132763263458243891218130363193337694541261766619623567860647195853924700848072337165672696635607772130373610536489756595476289229432226841167585487492053850691425226427772904592297851894323365425258197448861857218290759129940862901740949544154018382092278679868236741366327518621326327986172715603557370989777386706520892612817883990412396977311468165232218163355756424124127023173410267382791764896017243835774255175984689759235484683006275475618273901390874416358786731827323626885858409404134872458082657822466026998730851881646219895387723403504789899251373030420841437600548308410650283819728589554310604189537259384827006041666012009220676199584444322999058822173064454989686301926094833758350723696620272846175617179505717946501541029764687981140337449170869034036497049592586849985286712024014629734416656844296164412408136756887399302266827077476967477665936729091915144091691794458211023634567422648532990705231603155606816122873534922163726678569527596798032673796665237804055410557697680973445563167044681850296757772213025676947415580882825404913030288045621427737933765158799782680001844213893586056953457199880942318690562430409068689224433090264707545051133301928834009307345346859121074038457683840827053799490398138257557504130008310055973862146874123583234701660121681058984382105867035142637927107244455604508694444169781628738719687043432362225832201319908624758270387178543007987474566667132834316065261039205562828913114778914859166423860942879427095970959989357631771208603810263046838289353177078780128479836421827563099147696284603110727565466359401843440391425483645146749046114311054384433149903536854204804698459799461248795514864026011930045314279263299507886080368913688317755238806575920753369908156366293537656496809548721973568349353285342731512909998420303824485176235877076195220705086993264930649317867678262133543569977320557948401601355340156849086357338372254448311938963501014133219819167538918954212917548164750697826632170073975885236848716598575284026897054608362545651581681373087340959556667940416986818309555472093884319839398248085505656627866492951329557273781431561483730173233715600532746140555602558273438089221392277197418335629106150262679721412661572653701246894079481001122798233766091839306275508491100841121949383860689830517825969420297079044164848142407248898494630514603771340577680359494578479991545420032838381522781081627609636420794723933216056086241058403327452873751835519933173000702714683561531839238373339715122046501430907704698455279614538782684136216565222813852818128866155889611024595373682867939734552828237695144984379166223874877381480346225110091062448678603384998966976629931948743747571462311315862379044753996229339067668994428172761235605015505648173636306186713236867301279021820308968479161512538185473101133267008562134590867376259924603353537666317690694399524369167651630059730944460371765714186810095038576327774749837514247637883897620585208294176019017714117259506366910395795720209730330539310499114770555712948184126358482117960303289864411117068681998676705250410258726148069685562609495721475804756644790562296898842750669052659165668384996659710157614012705267005509268409852465425218539289586657638541687727306119844919529040414359521547038137929958945619037203310570930055702250149698782570626448615243269221762004109758781089800035409343918075992877826705900754353121483447471392181216092670808484568446320895436495320498759606740490433262206640060115433461188100380027567329969360058780785871690605929321621315145619695684717532944465924751889567950455013201532027570508320136200889987995961043207926469337635650478912837729854173923682665178447358066089046849615823932043725654688307774627620255433711943491215689896143012263510404148346719963273075762067422662272159973096742076460226501199588558284608498451678614546537158323489592482661843505448100268305119963748229822185805747713303371068595219034007519590570936772517145707441549480127177728884378619050749810421218108363106598628299260216693612527244578839281299060853298451149785852480770290374440337558907628291673558441084130687620622479975887754680183829223983182831665284271436213579880392340345118277028196789522117353960525404258522687898625907048411601597809927965988114002280580343959652065931524611594276654509120071929719631047939502920041156788562191443437364005529676871728400378869409633021523253964056238214516515911044856006747742231136977344404449365635085566510606169577160397208661158248886440267913045449877192553380190336997535725439526659197366437173024763392191040738531704981229956177102291474614430683630839869924308071980067246989996534637829473977124912825563079296852863904007253927953531071793768016058103859894073917043025536054442763160619138736217870839274105126793401490817813320117240769306593446885411393701463775757066229445319378527671160871773433843601319670004787101281145489178841420903796875293791259692493672753596387433236347164807919861321698798145294694778894586616862629475221034770538767982092775790573794111234854959829056722873080744400187126593557267602338232799845043106572849763974149417444086839076744140516366735038296238025640287994844671829454138605536222550298294410389826723770746593716082558258461934187648926993876995202844768622283607678737602222284683059472192289081790960906536210204608103914663073273620648990468361840337166784876236112137249399045617712512465989148492339828822311414527773673775376562450202802879650919195452080110527920648167030060907260396564334980306352843476579203928174015250301449210952208145002701222310610364805077272899597191566006205238732673935615118578857038890021554908219676873795253641844845433407764999935381738782956475847520835444617938221822976909067838037906518659497972551235759671742065340463378255611274505064114311783050543075531070599193584125307398142512619893053546462618012365573630855061432984323192989040976912579419190580726523589124154439337479919802006211518840482351931481947825087125729454188866508589961894932302955793400441630523256027786516949919152119250029771323905885031848237435965053296273942105584591346697094014159821573051245544041023069247413168981660255431847246554588908036476611693124502508327244097911491498601194416384200506139015599431679238347356866978136228865848682293249861876268413304618528964406309762532067491951552285539557035531620776092197493087316400180502153785951704489633252975724219092836147094212080842737488417318394657441657396520660678294324223383002555478134875419936236612314850390456381526599986843599016358079907371905238457723887306453523209948465119703775399559561186560841706490074203964428443850245987746557331235155269175620836586507221392165651443094296395082207467543015268274131546802780214594208873838630824508291254489637767485893169275168118679647751238836874754292465389298237035898051560367012676516679577000250791401649167953191476390496280744110442568475350803753696091735708775701611720580363632491520738455593318242801081658232817758923754725176956267588327152934739913471219803293012242994168424963948740257682462411821976884880049754883238169791382277758208310851767995886906310585603366862117845419416065657125560673096821906590156827344279471251727271360917798094900644171629506584528596034752935112364023326134888989470289836711635930357682213126804543308820791549002782946612247424143677137009337842669585237490323263688681772364040651942482382979462333023808333618424370828758691322070241141159285782733540879572550807634438888277318482701346104950277911179754879480986638382561627745659851783247091372171196226982928407470615945758208814743061795533943900862887121608615066619629683732954448612340250978655548732166328804376708058592836927872260270082987900755378848954536586279603180582178443323459488687035422971051361108841797342845996159877709837807495238299227464332404694629613830981974681474696908255346758092953823897212603763611866855584501856134236596419374035901758884024521330629697575206610373149699032123367458380360953779771989663256783474125677252733545908990615695943730499411250033349372099996703164094910373874034175758567827173577157305843478608743160805091375863566365210052898863201000126041887174612894189259719468417318540625075651678867396978754719310464005955136606937511553011957419779391561116321855018391946790272106191216445888578171691137102370294480568416543862020560623546224024179336165827607876795530492753252956596602734511361778835418213925274619345232956135187753298175934025000690579313677316773266423301626495169335401827717937315721162297786655144466646898631214373646683634965214257055564033287034460873121715948541033584503573645125287500543890103561725894314884120151597064830745710398916877407700222089593176555610244903255693445534145939232125305166628741831381440544447841946474265643329184035521349649536961614188607593769437616584130456578072733242494911873813711793156355624238191397881700434670964026938929855243050916130367975173601064079805977100484817472003647993593460450872757268599179689954906308148508337726256996037772064589249667117108280400332152075618530990207100557646881968459184325883321446228999185208172992605792197609303875928635106311920885388631949605296579180920519687552757000697712750203398864737543598603345301394271345054087022515051607633355418425313281158797952285402704944251299627983780213200804762683578750114405732652259651536103525293618514202157549707190335494802045059075854729335198388170915690032325850845813806241973571118570035983716014925853344482248114505400656836881042185519884971903543701386456119087772102684873531542365847014074396008827784556116842320681813994403068518674646409422238583387257631178980930059486383806861972310514294938044266331917142486706707452620681527322315874915073129107255986586010653088664615656556111282396679627539386140936078446445210928610643784305019901582897618528951121705022892539588576671030461328214455547808408340863733727703597530590425424779296612325188574493331991041995602665521631483651753597039704761704414643689781477964871622337514016666340674909138980908574464173188328280236853713636565920060486262409053143376432476569941239900600210295058202107553786975168392748639894578382975701299419011208290224191995113085418961614937871165377539724702343514975341240132883791534004106999030440975965684073795009620666833663476776183104748646838232477379733638048307106639215899132167972113793835680179132441835154241382075995167879112136740470798042963684103876759487232841184973964417066428982407459559502720742311113970772379307007761127120873483586072150271881117435247378102909568749474195631888950443906365592270643024620338575248776233390791679109918661451477701675555464169542173076118702385992726184159088365303879399109997547123172295095229397451544474367632897523858557053784123447891370453491558808601335117961182812070401993432091636830425884323057951243505850516643314447126778119829810075013500631800868844941534337127448515312339697343734047335260572769277124700280403073871327106465109103809144211355436464366916447296061943747035171812729143020373481451625355802394477616034042040055289473493187210823719047621777852639248879021378126590544532288789765149363484896709795502861826351609730090058427168603155438209269058329491216876171616070625030674417847885408025690440496961317221142179995352635078337586310027212080304199559781880548717177677890340205923814443715808658881920412876735579094945080486272595838266751742931334199556327169016434949186169564377765071958892252377367400776656556369108777153583023256533516148361522047202045004141766349578369675399618070810881918422124748259129546885767550532275996556064572517736420333729192008536374829542726582983279656687463928376711486726649641206193100751972811159678482511576217242833519762550880644589551234988890857731732766689514140684886763134433226013287703087345394044448517146401244551594738224638055730714259433796648596149291379977961270659938088431339830398042562246125858724970140036596209219411912787342429775821255168395529632342104688168933436529798915427097558173936144830436668604871978237609914549337976279847185554799100123795123489030975684406897662495171858267584364401674115952104863363567484022335625310197616727384069540421785257324248396172898028365022517393889191083124186787347731656056286234659446103772212749273048098634452677570359400438698381711996599481601975599232270668189542754383942764085341201795143700911444736665829152795706623256553252388718008236918816530934423888819020417121402196124080731578493377587626424929204927593072717260891583333120184080687426977197986480164516631433705100986417849734181217487040851947787536140939280954218311941192937079019980545483615073306194529157239559745885813847939581345517932171439594919901355173881220814435888856706277037547268043678783163021422598587496709713493686199057399312052302026610158370272906853874192510349389173276465846688024692287970071369952691342040916970663119428329432155447818197998651264522291819848375665218803481805185226319983059756959922150947889968493130025200458611800064579506015877643470798680700567555569870220952186119979406107518604804849202475208314450284073702713661474782400379947578938232253990047532391630551279465179368600049853256469049980647135937602395196521846484207469096473820375296526116060936176574244023510174950847764682029227384956448572556542900980028862295461607246993274348789227009493412199969505737974288044390367771154664399943858721839216049637090252383944257306175032469594773397145559940942387281792573032891394685908937940444864181613310101206330077914750081790888213233015953074153449392302494749149391691554074895125400194137899625508510485408820835447092857373370740434646934449873383683392218591701952691189113065458041839870772787330457915260376977457585602519933737910578777380853292079806507750997752729592363140580817055290443090767746740396699493756088628642258411027601230654966292790464832814009477434046741800019039733355965741842722173743731059195026600590116359187666046295242948475163149138016317473019645748920004666239062573234222184769273422954195912423779022360462971848858943114410664525268829441761599381687880000991451697659067863701325554647935634229879466338666238378295399892606885823944161376579268226796812899550609907540281339321609023688073456951705362961992324159043131260047957775608357700325567951388702791591973453737662233785859035306205497421286670730642223948719952616897821794833363605873950191052312947015710216363790697123318067963230966986155548088529396059398565114493828233380454352133223906904835545548811218567376446206527685615818842405841527949776853335453787574020773740623692603426118001522079813377852721955511050519190900439210626703550526117076937596897338729693773130468766411498078172151207204159249284266186694342021497753253996914146333746968416092076404360273322103991156146351539396976899389246540436112829271405048232480974848209702444365512438342419915445397718511289839600587445263315451849533906364745430090194737706877850175079050571822508335985850704732998965595400618430330570117098917850266382423358960248924338457728667349348310245434073748437789499963756626329552485134201884246597543619484635199780752904463474034791706069001969362534352842400177062136697413851792400216861616593867028330031298793983784918561019040396205579138707394674897009226712077916142155816193069821056057370346097153271066650258286976511619120885294072958486307312953851217122605549500582306970843779586666298715677414964603776515295777883460417961130162919895994724507461985882016076546042551131043895268873458945379361818862576731101110733755581674466351032322473391097358359465592935553594745772650899556790478038429839537015093726333512988749162761396408991711345046239495138152589702255081935599175630732534625047168184189405114979525972441640435305128143038654571958744742597070519191064685508007339363135725261424023360853657653953585794191641744124560444543378093993327234920820104161597820679852360503981056226349956706739875846940088943418731194401649044943833612421166427836474205934627518549442824267742052675112179493510768104275085134796545672620857495658448725668268044475388680645643093753320791284431129794470253715722407314920710453663945498824994866940826596944398671291474883012380049572939010586851599090958921574172952421001751670261487717239332519163151170777928371766201605293885698929213067373626310249585273669595754367991134278117015359226878110730324672435765449955096940961899643774044017485768158890058192044407540850580973209650030381013780045685507671518853443262799279321667379939018451269724408760404484682365902553969326835248771279136174321276554190902925905285992396391497044887206772316516272004200598087380951263922479023795037293494903430786311962300633431824782947156826474614645943190739796123394732013979778965439174710052537534849371812414614395095933866521619535362080499303420008401470963410828819211238753571418581901576730041105586002644118381490102857080758071411577337017018732954973049108238799661701842386855969139077056870612939197018416217368378800715095142437113209466330631209126490571258667814834340305733179687876688895437450293547816730226440813910815052008314801991421588938915384255350903053875441336590374645965332756073174909874084903205151587355775712456162664475702443104788577188305073078400029928729167821779796933050650462158220936781195397891776834502548773024229509688284790528360154004046305657006413466385321469585382077316176256128537453507016545347623145828540949744845648345497299631267674467595177720474650654416316012648048561920141808849496380026559795683186595853271413442320037720112605139325182111119032111173797233383041463813763115358274042424631995124814400456980871643215386216725319583532313309960249469528758084458686212670880904975449090420520087757143434245793828006636601919723055405342112358684071830532316680341458914721016676425576899865465003659866439458950520950933769445041583622973860723749771781026494766011121607569461097214869250186001656177238502696281729558534659305812116266174683111061164662020641734973020417559996527906671588857385204062628377130233049210371111263081219450884370465088120658917794993904691557289884905487589096085612095904693531734146983716246292339305053041809416830459127904760702546707184159507857598172499144711567530609909688538955771092339029926232677629029505610770028410610616736788066715348253154538086463523822540374790129565368803590429621503801614991383476048551315371900959932949323649963145595862785528507709075373750232985906367050746625975596532906255830594718277068655007973754163683677822016706081087026818170567736759445488370578313942631358475108355880620579205566421990835932012458322211505189987321035941718733116570263256110504946857190720940708113675800053521957651655153672258918899262891298753171663341200625006987636517138418435582724524122027657151382798136293857488491247753238398790810122016006565434063364718853852709276285686540678943720717910266545856771468672273833380311544501447418352431441127079454813523693296042742361871200660972042413404630421827890851953576656722971220794686340584074006707769672952398817398589270770488103431336036612572169487866440811212719261773938094919457455215812277363479547769352378666527360089693373008307579128916976399765806231459513384472582113991328825616436776715777097809457665049989194085927315800119661333932721190257965272747963983270426513803371301361240560031601411746618389810163475642968745208567309307682857955666547368150920301856465197919894312888228903719377934208748405071021626312530822570648392808395746589732236383869281661228541625059841891451932846036297366293467032283580385754873636457210385713045971810175842304925194925830301865025984514483330732299717393752118388693964008809681974423118264812732175907352758747997019261810028571709808710591573448171745220744859209930649798145466522790352864323486830364219820657504347429697490945335790932618959552356183511116195162661747362199182796967357870961684665225429730023581440829318936087164780611968917927725474498954462699915474803296600631316483989853725034979773330500857966626014684525501537762810510859733798361043362938597625092636731572744100610842369646204971528952437758338750418671067789633257220566356742618980917014223718966882989875668774869808467439937580408350601471892041086835907444284998397407185148581707275642013371909279258083975843409826917155290331521504549009284736832787406795851033346409261761548664980881926262165478870566213171713947287240736528047315249582335273322254457293694624318507084514616313634582621982546952490324358982245232086364117902420287709830931730292016650959918102183304544611908920302822559622554660585832921055916169086279773452579939243287576610611053393707239467227915245609452311252855250434750388768443258982289082875175637150863331765282042853573219123728413877607793023654061380555620121506666972078204482207931189301945923324522007686229346556817112724879601082618723068029769776782794647687290820833485612145287583276893363339504381576271599034030390391099565990595071693568059236989093809709931924387013726889812423895347371930915272891490470742294541781314168883518797895698812721314349068720871733420424079218967202761449738608696934095632427395340148227770594248742742706092623876867744883626570618072960062260155189638891019759012962610260048077999925176426379448424403924540729106275956784919352833629916767829385467168587386955930207188824420066330564279575156952608515075752316283643916986840669359790605463878107926244297412112462860961925159360551881798254242474419150359946092303353363102071215927112943686592270600443553834805059518382068964417568980472832248387421478589714271876819376923164032366768364955758916435700595896108546116543426206941063818156826545400886803560529365543133672311643805229186873182741667388860500470011411897926384752559888153932982734587506617384781719672300070602750611142755587711446829852862623558625553158787860547321429244435773695449894290205229812213204276871530945918108118258650210565975110115845461725049402035068027665705075234151017772256731813432678573871661343176612200473163322169375840543122699164026827606204304541045930065491007866195735774906984015960686094856275490156161961970242751033593144315925250579357789800717212532118989446294457414426476585908268700184132128747533461629970316822928752098786831798323462805669350423370210526814510622848657039976065369660477089197857292560629782304432334037607351255695814726712075628354896893841694393946700073402531711142685159152413439813010031443353782095669965463168973982053248448751081226544842678415924936613967244968365024335949462175156635809755926992286823896312382744745298875477589743031831050294951305151320618045281760903267247585513932249624339835961764400686187651487379304576371948043425740898695402104628723592527557684849889971230563379982621870116321843195020550757382490297838516342559199410261295772861979013496144132735227480753979493539300742174982233144018928431339994467622081428019485573307191736736118461154473261533370613609447260661729687488940696071241795312496756456384676680447229844388911375016801280550647893673009049145925769234762725767669842344606344319051515340441603468891695723382616688807663924941428321456882646603510280721519157315709122360897429320708287952455999671111141366167149598714841295831526518176119527279995213100766001837126305848354546563850429428559393773257224885812842668326754243722186073315804425226004799259655628516904214608605055394725893772010666344345911592234320817931443232091175278946913618789697604617107484613843960000988452475665823796694146808806091282943362804627076674323681232616540172532418492338557717600534451179273800412978329129964298885375121697336852321112926494614274518600477888022539297188595258865355891818288957943263191479581228891864441018815880455256948664221934458843906328877535284726015944567196736254316135455202279604124643778831991079934229623122068333748857793171845029966706591255681699630667231960967660346265937293973040252059368590182184652567140776587008698104473094933342328207402708033040739206628304212259426199628813064788022086313359045420374407156124719751434260923302465509189363213503512770225026546758254208328299903308823345019511772727161416862218360993158983288972045801708212352297724847840047817778329499720057428155533168417580044158282703369552694082513378148753003417246735373635603672082396075911304844684058240533130713460821660033515274269809730045144959884410200374581689916720126032535055938818593796048737818907045528429739306512273913309315509919038158026933801049029373374937185688452960173112758876264506996639816437397432103759314375074005538944124993141191833838950008969686057536557117955759137815121289477221859079524973975830948658297441858139795380141612477399979263592145252255295348691828663247383992709830755382953204061053287827762914616888132828963586008703457008124442011207272123357693401677436457386707851181592840190245162782722831073596773713401865115922531400212992114050897766518682505312993253430631641949661071761899459022630459107560919677478511055894022986271202443608868065758496998941718651567014588884027245729663903772211050264240764629268891052372969494291041298200417843755234130936219335036555267819136532709312116395982270932575595914457746966349983750100528192828988303482817634714643255791488946168419711495458333144942496293581690050024907271859582968680977645344045551473764444103126757274270609389600378332761027284867854578426805025795345816719446369192337509221970405079611438198131156832744110422514697914974285312717832716302868591435805370860429630307181819359630111263434688268703945987320503681654901799822953145858607907129730968224122319998849848757565604823641837378540304459671831239430190353356000595667587420162978971082498990291491159029446371553652196303926669020768092522509678526773114141876831543640698776884595108966167253802891359157772258160508071334379216002477138416881561543719093533516413380607465153058591287004244494153524669232353440363345721379802527175266656000207581894145175527497954782039915070730680120818097616145118250279441311821336495568443621060721179214489361230491366785119576150030813231255477251188898199875537632650733980082750689112907499511743767006035181374586808335815243429105186348686490910763194369651606158707863686282021639813882861085885467486478600893329515111244340265928167467334504924050396894529199193417038335323304393385305987738121899076419500553410888752434893597581423024351302463995511006965008278874515541615562441949159355703172690814182793002084754318629708351933388343557510573648853896055203724902776740205554109334026629594338359645186481866154511092100131046611950865887342925189421825416731106209766929435937285628306456175015461676746552723702138266265123883873187162902454851872828005474928758654354370261898081598482090873816766381097101908418733969615002842147000437657094485364201455281208017289726498750857848573051318363493111388689612939246439615334544440142124739219949947368465881956437146503726952312067779034364260852462193974082184779347130212048730188892020665442281621584945158813860801957434865100410061815000174185244137514956615695585287977094458059979539344070395892435235866282887505304186373448184324600284799023643153264089643455112220930452394034762581826039129508898662829792118916821334082420954882326287056692256066819253142901473519875655908513443635975042852428032716681705133568909699614003357613376321448043357187612871341038982394030349453644357888804515761884764998110878706977345022810158693327010112597401785479349252031722619155805960680918369602347119597621786458455959129833599789972081453762391423439319646367552400935221316971011532075933922534392334322383794175706586182632815965708793447020535762446297277488900681107933168968141232139123077609879792458004294012704457572314456129037906016709076642080604103155092899789188770833156432949078394791328661744884334867962595216629576451784140492788555398859640769609417299423390945361804708255035778339149523002290218630322604932896809470442087161044568456786308215342138933494011106780123469306348651917206848409546484566187413673919937654519959901264438403506580624567271890263642198365325088882527815986846721021871683983535520211863254317807286653909271717201848962328002155528239763856177964497789182953308608107203814677860929171063153532653513894747848034210823265467419420317648552254336873452241319481470093572915492753520365551108609858977570256069484741782728993415556952501758326217796147132217545518070690148081147881357121355780548066936089020738294315409768976341263443006605691830821943488690592433584074159283111563160120693673063527333465277224744836081082220464042235328593988420766510149466497360762224870484245165117581037513325247319362838175759113022609014629872255775688474180034002568556565126841073019682471896645931027666536765893416772275121630788613455826501250551277791233977438498849920935435103898985725605682357445730412691612976989613809367444912382895432314936607426629712249407646920281292184969129267817224569283788948932750231811942020213133628440650826571548109811587935281523834850466426516390336155150459481002602490753481832233416526233242855510153996066641292605616364850466734621175903833247209682268800928578270568900733538294027240423462448044164661682437471845635031660702582647187230790773216391800726440471010773728126308981776060310961270994107498978608182385025390506921704418368348616292738395835361797030285558152251736703515952918415166976342615765368307585882659220289498076379233711257912966633234712776553706684919285447098277308621929163574725851757820969877904848383595507340133617146852317606225292415249729330456248683495502350995327332547660568249670027042005325434757983970512732445657615003243839812295845921553852623146892078370034594930077500007049031828422970597294993665423982885979294690498580027009667488128818386084736097464724755085972510187659864303370504814700821839265105652624469379470776845857519999837476340722769610251882926905684568591801964445228736731054606514575341908120355158577474072824377056195699664027638116901707116149429812364914146066363249056085287300793030536999256701434701857211810502228833354124753932691772098682045420077506646089158719965483040930410142108996224763037748456329731184257004115724276720589707167376012652863433494807554083838716574919267386598439092025355066684106852323327917042910348220829519139400267254876801388524606103060567779514383630158184116018175899193222437597158919775173203429372780346100687061211128672631500172036544456876346273495228565882906119859372995799876752567449794809248035741896933092586553840138159144899761525646036714761535441570444183664296495210450506338936300163622025071086139795679850040338798247681380934310597600825980015562881852496984769005918503424922237890106063744748065821016323151797039376465793799768572187724324341106057286613903973197842915723076836977650730152130889001209054369740403197185706010843336318707932329882263992173200554833716451136070853063544816930254053960327281141705232073271987881219946601144490693109557901466702056162154251424011373240267795885985404451762520044452568894555423268271785879883109423088025139689030553929298223422451904744532544807326514663689736267754422760336499749126626763330350439834406350141017586455668883630726761250271927389845237256317937587853570104549653851713583353026930119719094645660653962460684792816998273257948474801123472741920160171323894362919744463463636509272420402175962397763035536865309912784520019257724839900939740571822810841268062471834483971729707907918012651607130473482308680931885033591568589565789960497087728182472185206676921341233832928036217211500294450160380765834961486415734310742814623803211943033711572645210938385950539138157973744289238655261109927100514617292134364589875679403544050815864659812034701151921917195433529044417359958444642666240459971546524999007620542355340359338557373054569140360700931196710327879239529525483523067663171291025889764028850198688965164336519885611492738083099346913081242442537870964684127886768997858200077673240546418775405605426985394620471232522900371699931984722122311336451132882974448787594464852014988325069711976706522799620462017718543437657650974663914015332814592139307660176627046581846310119986393299952730691854150598020589579813494860544367492719928811530098969805450983748448680565415099437667917629917975500767398003441012909568265470030462269794788263460846141497383271626328025372009170370997972670972160546596099667987118942797983827758139549312042571559447606932457293956017397574598311559796404733845570946766151598840757426409589852677402229174720593107346705636245266852355313386097058961836113459987128795228744710376670713071260142886754728671743039161553888668487855215873420758811410588234987958776866944730664040194260611317896340569777554752644914803081700413631986318933519322014509692039899062970566253265433377888055630609971928964004428981672492553754416919330349933249771769436475534992724517669968466434365194260406710192404144222805614812310609160663658864774848884181055247168228886330973832801267921861244256833621792958854617892802158944462941184119623228783669183464001702738951747712982112932090180079883861502096673824440290284813434396806038438608110909218620044143081520577002769728296072992409769476588014427153932931915264757130356864142414585453663169663935383836203808492953988369319497237761683198418047190968350335123846673040616982067886652788314288575004587556562698045425056329193674358983662106430603684710364705750152887971515007734192936674426389249537719345339767637122646129936864779841313960092550152727553848059348632869486823561895817578911214842013305221307643084340734718162453174809121099520287506743790474234506857157686367455560768887984282141048706806518963476222848119729659058598128395145645313000760005064742072898090212222295504770055175528321825922130068405050912646013533012579648946190798803054351672836204599422839653218053731274085407681758747812492420463435870891444230082185112870909307310997883014877948208473558763686405134804636387064942468987654950100213588071725405215645838220421460355359266013134754465277704634114984141338647939398962981356431995885373733043185618323160999858644776720752742615592153032193524955888104423243867848874974370496080886332661196643766161320534844883105829176871349374231352792177764279143420977235236429710576352268994525591226077660386297462759039509119316768719576725058989763893080903390814588034744285112099861737197689994168476484118815780800027744031271614255056347955340921246945941148785857546003530544614956853043374316353353179342688851783781064021099707403151927214680589575273477031837869816697128545340873835798643931411818203963907747975632018466086197279399888106206806463934531890923150975205180431601059118518277113121539290700696632245014315880569848668405827581133367916706675641965901663866310993612931737832635459928262868057207463651288458034799385039033553003288743246658066226262674692843259344172070425300677132962421571209991030802665126486051946262699364490231157419513687966371807974487615687269925582305986402004999132499366412355919971849115455110331003620955010945504175160441811806183133151907768733575458964592929109316264382650618990524721569203910624361079098168337872492899165576344920619784291800089666276222042587190434998272254342642017736722360949171148543433383766773571052724450683619225106076033482159636706439281054287813855060898145650848539274901788947041940794932973858088417253674865157748892609417029519771101333052689593416680669391124992416891874185116598495153566877916693394399919728045208023111686379308842293575450930727018257200819842539391541558128387720680874889750023757404178358972368281297323121552943361132835362228457014986802564999212510133261696379732781150719988219506283424518227900958489740673625380881093202647542569119479677825016736574960931436695575462161792443568094131909359501722805051477925976574967156400295090272642959739619910342671936477087037241969435657907322283944888281381617407584355658325992167060236125903861517681258088150390440657503771324797881557978798542119630720824809243807827849772010761489323584717240777001728450193140574837929298955485395999385128017847541627976305076675493884970769427586072943705605060813240477365303070598819598906437450257200868130429414196679531156847942459679947355219823791761110551842290055620889401987407079575033808752376698344590370932084476180726252542790053192220835713248134843674606714786308771755808255463644215733878190370310521995537097231979533197024603037266187416247612865921884922407571886157383382758943595401456434444506291114461606558813261480231647704520600687232748470780553670782493190417505489628799752904600869828964159004346277829492455191915348512140714910625885390595416544418482391280704204027625073027364278083581957226190746475323770786967664287294163862993813888851807094395462154452156598867326888721750505561595778824183169487705804529232371987439693275441723195038614132591685312193444997537644250957498350749468905999672875229801882607113758368429186517671821248382382462155032189499784490194850894148019216730710905686316391658325207627846738637227524766951148486108116573662345484225024602344013641503234340184490619561910823552058722664980450594335264850135112324345832994710620072800556290905931983309410288520836035330621518351780611959815193991068304246082832344830634207503690121551082313576728532740778690599496732406072912104135694153025660073436102344677927663764972900309048861011702820232391597200219245260385984231422450610189511641170815874690191329192590743522455395601007474515046990926906572251363099373897442726046184334633903718861769204367589132512845110689371755037616371534679164061430805458917239581156546917819836421656836990987569620507054259938259469869709239952781815703151523249072931712339503564737834799755886777288965865476244633006101562077407053190235863028890393237650486038402285847122664167593187302426031858992222910613521282854551331491489442427066563646796275611774899106543976770567595552785379729179437418629197368745264057048960185609781025050663705241965166452854911857477701706432001719959573042886917546194714054058394779668089142463911245462072615898776187891740054835090081799383371058681711763575117612032441222542351324261452111328002329524371439998992457005329989207233643068782793071001259027110183316016876101223472609602825861357111780426201923592712546943004701224326833133514392459903138609529016639774746795737423404917814817862412782650140777105802347294197926375191194769757168761033338586934052942468561952410841530627215862808843997359614747598131143311633813906054129702627959893292332211661921414373105071964662677207799681181256977808823129711602416545709011718939806151559223939308532378367272017367403108613690785430298881700576919491131108237827303658813323621116053293381348732399472886253316215434109914764211681828024528920048349237781099134084777907062559134185743374823610114621173885224741754118299950016813029081151091805064700022699143848205110598770382652504696365106957882893327999917649161858333329784722542995484137281493793534144037542144986724058363619612027893189815491009947979114348247104764330159321917641373990052849284411590425926195936435487550869321373748096194811148428072793183013709384672363157693377396198833771648164612562372394767152819450940262241472839879685982293066489364478440984738534495247704428333498880202580347071748093411017247641565941551919011945865874790416475181887909210346892793858244417978519496119906875109178222022557768925387633802581745447227649847082921232679765660130227376659078950796585375193291965168653689938112235796928437189629282336144266982410132366713286396516233583492571039217115724437580184525187688927205879767466304854651705811097831471374526902680470099078661060975661943428786531176969795439470237122191440416150298558577507228803634706169647380452644569378693193736645195181870606778229840598251724435307453063057162766681272359873774903795457085058861866855302977342585042162451481853351992557622999930779725716378919336891843593834969061125793128855375264519097236649238700101140654429578086287994176205145428688385516717081435287486307846276332099761574522254369204693463721667084768444719427522414055612771308921955318937668586133038736365096495274694811776327792943598842787834182078499720852512892998704337563081256277355949395341294864869775641832476124197544370825662321023265838687723716252438079250635959906182662925451847323934175498314100198325655676783944684716323875118706372686032664347826698625738822376292940286071932760838571958628980228561343746382522151758270887588988985086656860518792851011381539352838264491122148132006500320269425237991917326955016157482390427750245241803356503580445579942324765823415393988553201763834438342540587468248180124994534374588006567733212751558732704011974417287803474530966770738790860603594976795592901556011968731536897897440274282147482858039724785815204129132248849802177161879284711284471886291835030569949662478918906416491347400502421152678430856850527516388558388117528444471554258751644814984743167665173031948584089404539459926348484071075640730438783480695796319208643547849175206879841813907709006227211230646626302197065521036741405716088041612539088502249579641970866640618466442172331671889973838279661266417684148402324709973602221528835682160907043765572900293507814450968587713600772290672898171976961112930826659578891508799822816761405013866376341538660665701931580239496093455433851868663135856493790520835095748628756643944888593506686369302037566763214039584011818564531934004306706171328952057205760272853583913745685628823162541108973187165464940571379546320773873975283331704820098898120706735776565774318139188313668043763172430152529559897700046493237873219197676215528845143401389065617648857300752285302479091088494868272491363899007305617916428949908830901184980606525200062881342866479519275433180576456607177060130467787854234984172346108945039303849683401946686988480087598049365932879364468707631287029762044784612776361923245936062406374119743108880894567214081803077861786817470197337944198217258484100580264564584870064614176655882506296148327816283417018261896158423152716913768087864213388008595277144692587867800029562358579714904278604480787258766211163310131665831093813909104951222873794080787011428045018766090218481893569097114591705834698016268057841541461703376284975986857530095000101065839983740548285848672394770118500771030596159097351359068900611891050288479106679276696698030793018421845118651574771838648011209019909328041093621097039461405436618957927512839992571429910809675188526092681491045121468842199053656684713811322343682357020262919998121810002992237705772448226533032368455009381154941736284724188953259163795180273809124714464467474105158970919009894809102676102289847194343514518869217911226085155676068175081646812721350479755392834767812362775041457064546532179031300335093770975322876479022470602701296348035296967089152337800174785208223826981295515475985985989444616417665538259668583427090904431717849848111299149709632041983284781353896072396491551650308384103529858425543184097854044399174009903434729227117942722294777228611215697876720097698206073944276724156804350098465138678446189466524414140077822750817401925019899670529510860988517514500468300558144498023043338598217641551114725631253175022727576070099897573033359364626151902071653667937548800895319361463833819708705995795140046542708067661780071325935761342259144512898361266474651935105058436400562598595617203929909360650774643805196031479711975600818728917576260145052718545326648405834071225217743591376215002461577528100615300605229463281044472098661653313172233817363467067643990973478995313367655991880132136778708106667101798699939101522878296578714312991281924816251519873670256068161255186092095962821611055518348725525295614830255417276223742400689913544118716869896343343391656474275000015082979531075089414140384820728199832761870404749748622846150833161006502208582025376555748997862786317998041657566924015574126765060322566693223938307916047366813856002884219160032375649725086296215047693150584475545026078052290018796846950917168814431978117941975502378707781144159076886673504980965026857559243716777267951447967627035380183057019423736067225448482049945905704731342468203543334205509771499802196339196826918937978233629891607462607919001434880248912924853764232631892586244762720177624689798326942999522650316017589204462270551520927892309560583209051066982892116314282352164789556361800679900022426469205082951636411354034502232478892493498476598095515738297375110933773596588866002710914808844314256657102184535301053112373788681856589898087584625387763203227524062020101961103859173947890226448830452369892205734625982026429380343940197973765837672887123047601876157624430658139096919573268503186899076550222661429094578912373543624597724094235088962509420432132308107992221477804693276071999769608572551807557655548891761955386772249441645456993208066641433125186295356386685947789277643229769802991808124197285002475264117897242407751324157397914225072256691589500144793891314171096610376719638465368520554716323399643270644896001018624520098560186300796532161159941585081142319552959621507946135825068091857770703371830169784915910937079785600101473760269821099576305126915057621852042995745909420116892764798884491845547046543299147672140540259268090911323587749066464717473877998681535824998200611254984598581827606588175631507778021007558535606439422331059551028801165501549579084140355629582379649909779304384386718290128710590978426400136577135330277807712178695645829969372594561723449709315052023040133478741629239779192734243041590064026112927085768409767440709939111672647789230846325784346078851728491665909737587949214800296321503821422729252325205981083059850366522790662591538951445760834242579391171818382420076010227050237013146408087735191852805690785850852255102255590433932562549629098152805795594849974610005781419635426712453599839832353804645487357331790392014193840783008493353926991863986963720938970586511390011673775369634948871960942263399501535376093381192244930033759643465035355558554795661311635235032851459767028194267220165146334918256773932148361817283749450404970606867818766296815089953951787935057767976868057907603502294711793247878575600733125482465315267325190893240594943220021150520558862037567744812969838383825747454610467349911762404942711928402206844751635520719617187692934276149833732492363822431124744076474641624725142885850485182439135605991969092779989019780166229833202327305395389173301150141486286096893182839502844263686096979713706983854845119335617525140349798987287477118186009423285528151329025822402071548969545536300038851058222768593594936843899476687756394987103958590214600440254354206993689384858240779422818513792828507376325027788827485375047466134034889104309660759895350561643115785678442347454585139702772574056478383382636701090942467315952470443234797241222081978113839802474866729899399460400855375779799509810672301630202947783849268012931777122227825112568036937032694474207939391678336693690981996523346738110841914320356994126633105366449337536675268483168220044202609498855269772727261299682806480931898002367924502587913779486587603461115939239179395731912400943052159131884668528302822303713971499171270332134408709399318229641261917582341105290374829605827120119498430935988289948952121828701173184370704128575848130550002536080091672347480142888627923268402032340958269139715034083122050757093722403175688617980649973305911722070324968252189368917252486177095114444209714204654846263122591754335930748295249675589907477642289781821795488328892375277141921903461266812757447329934444587851791990563928597541687794302668660875292050066217503847612107407753718389553167648655601859828127044016729930276668783482317573085246121193949741491973456349550578505465567851261660150779660342604896500323430151270574718930396379424105850041937600042296929583268752131248988990593499668108888736084041770243683846944133617898123217704330506465088243306881264597504958630405028609410783431086162919215834997176153810298290942691174447261222975687313179210035932946420836407005995805309857575495040238364740791674681233715382729706340172433755681190235518914252431152301917815739954436202750541740417425957933294693479119041575804686169208464942050822573588622005815139247734372995928877503183168667923428204217264514778935149603381805384222861482725343970305179770240787134637971593256626722661001433781941757427065081310880977882346577217640977733073809573812529713829910350525725736895284352143622617342295170777273371746214127040228880629923945427152997270551397316630080611913958174217629933218154707584278672790157532185475212557372962210384782206776772463256591025761608914805807910515064437131731439886217591144644263120110639764223555646473665900290618903630024354348417145078632411355498753529017082527522204267899463282920074555214226043164561581876115367160527703776600500055456654821994673202888062497165253333483641625216430458392841312902421747989086041031847389828522807166185391112323547117665126309671195483276772272952917045161923463959440082434182273742213117630383448724393632391378951951935975467419228993832277325585479717076723455571394267654803375956631964060845768893867332960904266918482947313552047761814336083187061989223291905639250739462023578050109310234870965599511515251521774849793565789394197807843233787607901569455536748704714268278779620146938260160944845346990555411879111618985920555732869432592754657130848628457498956318649815485111206187471403419598612922947549067757558510564992561464280934586259094002458139001168430507544457322745966263899039266341308380137420299704539124390826510859631884514893690249917041930778813010782600864286710928340271414630171500585253183956457262347719482362057829725293050355044322469595375424433087639502882005111858921772483122232406101338452826437622400538533826238056413598006272717919409213861588244759729701667941104997167278333403916275019718681879875486269946518829660104109093272600715175995657047282378213101886041789765775331893360941329269200722540224015722451565426022961921219677775963872829654785764395557016113704076989936807228582672769242207192819099213365460388146958754569735719403589599299941108335631160510279738552755446556156015393217337167670846183762035008897517569485370945424074401730541278138901442354551494076883294654839409366484804366596426179779080322988440259862106826660425299191939092532253186640843427882503636535500483421496353603720023274580515977368301662865917707158087981897434408520032743516802116753810670485111664956863004055471381947463088850193449564088649576194305814950177609392372368788498380663850162861822487818938566290062224195340201436783781099475665742769876034603094894436902081263138079217855709026792803713654307048599769120100719009173534091326622616637980455766327356815898853034197040877432006790422101211631942523894390097301114919775465725058098508007840444310956141569605490109919192799087039105010782888122226667209916492939811116796808549376485088927290954021791054825890544992424786986498790543031606691523429157516184220005016491779410968903401998827871620480378486682236968158107370020443162172214087749944410285039314370445470145064346731072609819480508922465415203871974001752298163758380762276621165702682308727527362413970160303878274650375371092617530959880641999122528999222053586030939506549197873188884592817551129921278817600725127107325738577369069434451308371333590151137697425172705744886883861209460456106936791700396623305098602981532656069888129692566211185492726385173171276913851690076272834353781668895987787426256334496126323974251371031554224662675610312506527429049278478882057180305865278627655635956499676479825471553104922474201826185465814562197680118787114969528881288276877264663125899823304188775214502337630706847550502118510211456249876478596060423488144912000423907028777777080373165335060509197947979734296694961704438437993899455495208837003045789255271035924845195603220494761669108320828879724005889707842877592175335213364138575401279696499450380828878308016206616396539172020184662253347143760646841890827464119908226736764553300789446973739293768046046618167573026699740523897936038546641187477217299830107501589140740120772210156353666023206399120206191171894609822479476123362925305558600828288115352282999040047820751987945116769456959548816776213937274298919854038311917558494202589867129545484103639249204108912107171142576087425342344199204492394436130118387680604373740411691492505553906943604804213192856181174467710747528900722898875380985623678393159633412662538632285375558427942113319318741568524127274822982243988640642213770592069245672302312589436005289450068160289542999160427180431982059195311675148530605978650451905649946797897229706935100549497518382841204871592494178434434992391087939136488906811617269440321357437113649571462646402381887490372806335924103417255265918271495984881926186407664993859424558811192414895539771945012111285238308916032848757701315707660813230838507359171593148945584394227295616108013792977769634531987493836704273535907816310858961279291420809105326327617711028058360242535305613415027725632946928682198054992366974694224926362159862733656822609811062942851227492518039210249350257793780989468401723262095500957086860147303949571075405341990808362202607149245237258749071091659682982317509794421329965067352398110823704530160064782680347413684320058594315977046959573634307647965047210396338627751873085401019866386850774382977468331111295257584510652577123015900176264519865992700799629809284797215634648318758155249046690193628138423308974847537698844076364889208258545267973726449452004974629155544620902368345022633943887204032853355035817036381686889571033115573998335085740784574849818330029032360710500502358327497123740226113158631325663304173709320589314869062198004869584285622689340728990260502973603717578709290544667494664295241226988194027278575946926378990218726632084566804501967835624857568988763745603276363211261481202905952737321597834889934961550047660916837648579562766407012502489421341941924474165232266113037381122631548128341814386442005678738958273906329444466195599638798998419314096859597999581830720040565104565883364051712150342383331573415831322251535539341852188063667615108378031153401631264904463428951513277875701798081473473550184060049798249009014833878329933668602262641250588261089641505761521287168150139927519790268325394070077793069048123561156506634755071018986949506011777712745673675507782188874262479401543094322989763787726439471025351688165208145994889374940681644009192279139190662443890845144218977167420766059754935953603468912975262253972124330491764856356155604197931172940962602276874246830271219491532562588853946116776917048530798549765126403659097828291340920331562818377417868704209806826083559700593979040606241285633588896271353141271799788930313596303844031898582279273270122065701900679190602651834444000928140522644963388936180726545830289587055981892403422897636973131355759348442302821167361990118878628117357453854261316285372388997513296255672110841531481839151603578103624402438541876416363439308079917208935694600223559349171780362158613891163801189906267851999327475354725076001410871666031097704598512867140392696400571145261406758813749957363349581033225259048442352160608262265482424369987783002566659814781223073416473438473920624851286771696392490093377162505935322723422398986249768330361756356959658311911752061745797364903152280276976547966247248731561710029315219310545886389478590435277509185482412112538805508308096243474714621335698971380221504570056861362180904453788130934996936088719206307214686849368948490900068296962533426298425061372718837143768091669445149616129050961309907332578749493103682041402875903016928029254230900441215813955258279248770025913459865327516490152170516567744640496796586254920117576260841581002418312239060443558868079079793610949992318934747886242239622204942946401144759858576068482237476133143618169060105603013203215822662968534276577862194288020397456553397727665709294199340899305585758223084104606777802535915641463733122545218267555430611615421072097230083591347409798855189224303979269422784273612595938451278672110197170515112454898403213216446273436125423986176825049680064139033779125240619521981185066289827003308307667476037536514537003615015419509918217506852799923924309512603992229385515331263077404255933692964740071331459771398800696323145722361492379992987774604709616426309240584660635706782865180931641245484339983141776723108504598169258797476193502975256879297012803198796252599165742424945234115088296958281372935020179302931122163314457788121562672928237460907487469848435436491827210370148998119213733932071922181543860373700137054776336261344322112905117844746763565529423008184027876695993418208124953646498609476184360093639322109760438223595163607158273607686190507882844692342112500216659092401385583672169917539124989006011318172820664393678150001880606778335625880756283633107007772080558204754023202264447298175085738648273617619291893877992044181984718950114115556985468510115602302076238117544859479023287415415233381944740322906466984909659860545936892726656459244633362507076779453093209276766511429772594118366421776221510103611007222542857455242750361240801358945416666194924377799565661261233219763088129761757066959893888763371819737456076125205620284110294169659444471798715596376819265484225618730500739747498325551454726699793412391775097012552872659234080350877912325257096579268198883382576709979542826483920008104899479919880328511484239230158870326304147528444332951115674074916888517655838656157939519736620349203477501716879679971461233911944913832107047792551888221081956876067294206577415775713412625923401863681398735424928960680253589520356723764571309906814235164267838363882452279072483713924119092005676949419608106665054781179502113376686906940781876675289246550569798186493226946134218439153621890404544521561732096602109534871065719130840866827722057208411833822635193607396408374884090072762155403844442112708144332542352358717158701693509279073947875017123806230727660664423135016364849487506043741870618132368949709694270617920627146771114087737281015064032940408178161656926568915838006108776796986719834776793819316104507820471937580176747942089807292046715910747998631732334023779251388704386574273285737988385754824958011737674388236153028184519324063890101111457330704932605769223126830725704577034346824813018493778260136328089028189415143465283201842411122582997924371598299358636132632392345687721962875735636516372958206316415504017134988338776031128892665174053979183641940598583393562212868768284067771709162629431405463142447563269006724268023587211511973182432399834443595161338058983825787007890195215267508514560047652446063218023495915428934308585761574702330774320070611475226419003299806663301174705584414500991053335127449118095160657223605354282349920831621405490147059952716277262209171404739528055958014164329173573869102330763296956314811156530806778884023796944533947436612239086763492868879052920172283778497679485603389743112383340443805837449383783684532430702826757941113444147524883176428331112477087783037952907013137529074624359680627937612709667302921167208073530069220943227823618119842956341445166828389630995461693957406410444807306944006702696802158237394309225369250228054043625840440694150083079238047033225204203855784583053277315787526442978555365656083192853145334061448163046353340888906748161647650960468526700638891938731211186146411298794467168726813946876334753333870577420990512603070884906794538939812567713097034968363668426938122933149604096493180280773880079627346003014893811723165264390453240187319602493268553080814447032509748723028249239797499679025835864733724327399198380350683624578635287597428389879029566499521996772395451874862243862667189053650995454749646871332280608667739398177671705030018215624192519278481330113673162332241914977944813318493841058647556908227361078473001960341607568946676055916221892102516290137160834443608211898202978900164575807287613431106462616588751878612185622019923573147823601407777785620503243798962652778216735115295258680004993820518796469762906143293871065925256809068992959195756703055447801518636808583059335446298130919593349586745049846108709987010781553369952246835837158586167181042412344260673683162083315790516873936835369567915334074504226405040938546925874377714457180454312337832022517316685197293437975750373837983686355483467353749084346383277881186184971086456714264598601572658672417349888459602373730928392861959140218440674793574669443632204624495387890433778021611487691189557318253223748145130368753017451054371580973989163454819244583540784601763181047871069921281669094161070592750285958470087210016963717773791766404394189250736292796672615533148699909149065799305362979687626304136060654609206296662054926966403421752949214413357883011924571807044772210601775054886174969059250900773434524608287709911062884560391436777281705763797767781678141704927942020170795105673118941050628054237086620733549610103698866218757734988807950170414016605036312616243308168999503343480423539304174518427360045501469888469797074617599808568473825822857860809483159282772784415448456651612842723367952270906098596053730869329501285456157794899423466430594337222968940591267421005035293278348232384489227824713509636127573146674122704048378015458280141091086989783080032328902972677343103223028094138985926116322600928392560283695526083572984999085039565358591137234024498019321337086400385933055747669931531777027472601950511561461624078641708478940858969170070923683174983404819841041760830517625850216129851523817430057315300241081317842012575662468012511176826755976593267178774632509238468048491229268002793132155791505404576497667420874737305664274687985045855639046668619962570813377706297547316130811806919322395910329732243268350020272248042189743172107712721978336643638401063646679595338632723087711387164642565325391123281816371890223371510663899212394626835466300624746635891355954726994255055944608627725821819396320452466054547314123439011304455991328207369707446210864071849219641024563833945767999295142202597897322281400879094711879850615365694842254545934540103506944278191680969561563350841331404676667932076841317902226383559048534557472763557464574499834529932200190485681640917659629189533376496658287739919253110577661461832852601601746553897445285837673688540096213315337004009565950421892928517091133339113636176940372813482852290512313540393245551237489523415738438622360135544510342425730258454469303587967837627780821992204657298072426770614091398998698605566659576742084373391504593858961533612079780580342871716057293958327627061844908719081285495047393663284268744769867896702557632454800910778019429480363126656147009759492824653247747575359746520457718234718467535190134335122632884889414059696752173269720664683145343663027861709193081508285062701260913061383124664863592953096003952423128686237856506373212493720223170402773378009050631866491030047368102841147631310258818984647285202539834517756237541580714100716640920151286183019193421922385883425997503399248050395607359363148252154393007000265176838006838119352408900951365654212731927760164477733193458698835305194308897197074244272669700409551730855886255686891865765227791944214521882670428087799832032913423413415699724072060884061328331713306408545084432261916669744870245320952220409410636252197682226015422478111057599991619111409805783995166936160766479821004997754624666174538764614758288148061128263974139544771843931941697659125788051520652456878558639684648287368551598233868439800880656944910675120272313166260329003083080422126923603260696640282284654342515651376056915753207644398756365520957124506638607805650600437806825568670691040738295014903826057146079656173011091984987765537065314199168589980111757896788388661036758324943113477516677201308224446008999867036077128383254860688407552265524393904175209815845003338648170713108230055986307805149150843028951646363818077004767541729451778641047642643436587732634089156507934337678429926516259097285304517606842464330727015865820879249944939251954622221394177584226587782919783785306931462534883567893758393892824058525778645552045000790439220719122183073995279363324775520378660181535852908586220247418007599305847781290290681399895938811563686720455320262642065462448624355688708152653639431009669744179647074817698130585309063668070164693897623992915240852274825416849114107780278899846996877822596493645105128682075640487730410686403202541232382002065163979903287952573293707332971690440997731507262946602064163231090039345577632904664335901718330341983280403730074611870361370346660825232140558382050600225903153269773833192085980409436099141193270145871454684158000377347536321527448495448457757582705418377086176630885011278875662406127995609548849512716201757833507026608598667957539809361521066600444047905725655277391435778320183602144527702217452324763019399100244364790170059728550655679890491437446427516269697774715871567405704741888382586653159464573651672451185453458520664449326476472548507786521534476897936446897270685030316600700730172986590629613393593431268991545971652345104376470157573831966773351739117281143865532329787027218901451184879315422043903440775267795153655323759397578145410937371449372802393970420692113592791299088991677970917597771632847907097195758675356669243026778053905249167224410526362670830904540209832965155874170641132089580434598645994286787807221257447489808688260093969327978956229187819587531921821475085484329016825720024440920648245792818107327812342679268027322688126665668773066350270803156956748296972421781656514258313563075390925038704924954333216742940300671188266084533156620080485367884454488859922784679894513354931527787474943764667346273343330198705165847570755937104157708290384729302325780369143920823793163576865446841631749620903056162663494079652027826301454851551289791734247979651685903404753397809630811472107801419616393812415262978107461129759536419057291312700151731308224405895094326532663711783680792957602686607889709437180469332089776557608314572040682570061406172847684105166314047460093121098290403184038812598142773980507949186566608974703147790062293606330542844364940628368441376190930042902182366180622462845035616441068722463100282292498887775326740461491908952070381667055558358279006565977484091094366391064704658694052183098623023922941093984289330171936426751872027682152885125086875553592804626870324623962358833952874315832869641041402338132248941538045197115220943819383771678204468546454396072574241270226174839894395390150061576816143172196659739791482700711686638498178722067910663417945996426366194862330311263280208459660570183118981308727758469389474159493450343350121184834466114827432922192521307624302666417122396340726537214244453750992860427526288420046456445146606878489260550541103508895351252630699310971867307583038326916786131475029689254326972805245680739195411420514862326382554518786261905329057732838751082673001986304586736323108137741579711515043495400303596428731513445019074996594845700839969378507996001411670072381277421932600863843315373090074691025860678748529479707112619346294175245131328689484634028504479470400223504019702947328362849068681299005114102055360333617255505612438700499427185686250936794055237366074215026376022362666290788484135555440929547587003693460964018470584311027565164275610733941103657187598521812447942990579322962502920620092071557904935033928824603180325174296587621406117967866914569834424458924215134776956571378010559249655053219952013669402867419171023066342294228094449994067641670909716909130032101296934655378201849367037227123734805633962036061647883501744925736855225235456341477323561257169696444316299448393299559095347939906680656672877925730251298496348838874371036958449171862735949578691693259708913773532367945873697809735034928177346598982847781888899261561682140016072979557745135457977518071759518540492170413635744910195461586707970956178914830281760928741564940166900312523630407230009030277593087202765916436901443997640219475326746144159514893507930966481868573037094746265808148009629330066150301121968721098995546523576034969227557426119942062281731818725739940013124920784139245428326309914269210399110555796034293322242876829210367110594228844516589007404207406196095429998015358695771338189921422312858057710860228946392117455310365289794634868622707012132004740275294957618090468720003092200250537770427010151393442355226587533316584141629869725607200439914379002638778226873811104885738673944583440183194443740602881629220139216886783966387119671229186683204491235077014468800207619931301984659069027901725723402276917603664882776192929954595724283302009568740044071850507995606475208944185300676632244661826727608463545603761431846803883628486112739607115633979839398808898877724935559569792815139011014732348120948583501677907665339862105597677357717447131699007069396669165102623836308325250883472641457014022373036956893219291711707135874303513162574800184414397542596300824411717678952823777305107485767149779527489720164676428723640960595704322048458526153083273518040820835921848059664795761748288204665979462033658588431560762806744200188846320790634670756399613066475646594025133422202047436447244175398776781709028287723185460991111389672695976702695584512924233507053564399694160977248154528245131085088015418172094282984394060312031231606553974410037684226097006260984856230654043418874248337021187347830347035452517397298237999949435558209503009511800331484391912465094335817537315618628321966966052783044237112523950418929970045964319979370044195268121691312691916769632881139883078815444748398676708485119642608414064897668225749330077968285150001267248219599921526218779441394490430416206973519278218672846694669405719145831397631104525395276034905299243039062652302419927000327796405176012187937774242479242484132378422097516767326887132833712205416416120315307262142436943734293927346710003562429209180152565807891009036307519803109370428893479656942074120115858514059503545064347232240634801538238862928997473892432857100074391477317882167647850963260635208993874847107831231932375619419601778102558881066632481116978862088375279784959883813028400916100032162258887386361402747278825053781963227451983245423872582963923357494248273171736552037157336768443049150739163629442721205675438570442146378307608343325226988167118399865020004949664588150358664713524839806685247576065173458432179318327597493880370830022761106572507908633090912875701866121870229673412752714015949423172956291445725538582814220097197635009510436513977614208234123798191016188559043747753775784143729222164987485849484168647181872741149356078707150100223968700170803020122454784763999631533634680347575170021820952893403643836499590095310877498274949073412894173762210614947569729215256335938148797613679336635721553035297488173208211229743449543069854967795326190720938786257271927204169085413785177221497866204747678096949015252625687267571031025853079105998609983420695618596401060411432178552323289618013776198841589679414928338138593481211778321653858117305295206359765851787591014154625899679023135532739020833058845257421794004359885519603725215065472076431342170466417150976790553658634802674542886600540260695835142362883366795186881136514775094911915686198023876284542889207986428466297908791018121692814535887942902139905178613011329424123670278630189953313771695117136328704611879409598136127305435249540740267949796547479028908489190740518573497127465006032729721402574228312241269498051565460390934744606058561771220450626716853240384547981682174786606417815117828626572527036949562203712277323200975749598637887748193658789777241136699226635349316765681765635495667827212271910453523929059956447631721172760671603299975449863619585607175199771038549497116557189820983173650526226945197660279756243965484660583248124359399383266833448360872727630082537237132024089748298338060642533123416169753085324496717131578960595920205304956266891827287754242408382808378846447491355508843518725510440943424938778466306310172010386290260144038920473060813258620310662569849081118897177223591242828600703644307717917717249792734377240088108822059198987934613603380343863109584888267320128593651493693669205857056979021993415858755219364019648354009174410451644320964442574926329856515877877341385411060609972240775837184751576999839483347941413845965858133220645046262911751248292271182512892917374242576844913459023064148226270532441061411279850360701499156913635599251744658728136043898950454912553454456560139354599352889838613927569168209549068473385535703982214676052614357427151088804175001392012109480032314079348587039746335580792874202078552289831590418528192033612214675962462148042390562615739286375546326707320174897105514018146548553811155292328724724816066109848665587846975668489360494038513394172439348600291966437121479486806246799873534883990555320450850538759059123817355540940531729173885464836400651996611376273027270819938241517658006825389220089183393551813977586684166363379610523789909892093513610394204405100682977820070017081756973027000225038558961992132436516831078106667807328999175180457891738959940084105525227036282870549035533124946252631337904617289510891004074518998115564418832857380329553054523285179280723457811716004448170170563994179473971583821982331654464431195158044247735748877045235273967593884484041270606576598822044387822293732983797289136533192514088740785285506511397622921717315768338237450085488053856739903509764530115204886909549616376860969158148767489834382499474278631963976755916167895563635390540115722790090572735056849909822134574062031316391075893608327274116145639451699626832839538170906898452502660178393858656996319696351360568316674229548790344663694166396994237630342522579121690618849617179822011678744691184584288171906351557036667572834316008138803363756004014845837765705251684195032114720994383613950189709830596152981698329004274726237348508487197635988834854684130627566377520154531862276591377429671142754624672140631964169104256770097282731135964246534745366672313338040848593779701315085952028480616430952608299407528082799723979741874121256082045359856240244570441961949682316172876604058469767233303507064720659877689519764650836552976132136007863143186168871366035278758797430680658753131597946761101731978235454210952158703228022681736599747894612753849217210213542144602067682246361142906178448243775132284808747568716667949964878687478028284638004493224291900532152423737572828585104685974167375584256486929030837761025662951665779038403206298070051491613418012448974420751242240603373344035324697696009430051454393222753746699849254618598423734320342133844293773766313607501835526975536222971223109285421678733845616146540114807002543651501632572251031075834064010725193676404742348401938918495027471027132713602305753309989710874897366002493305122403441225298540791617996109705229731886077093417713132516497093313513528987064221658246763644990249184702320216195932175835869824411661031229934678347072645750133255947573566959856560614749232115395962967935187565897859566301998945107234587015916326588977138455723478508133588026523703957267000816858544696511031947362790778896861746868061953309812665317717177184169965917987955641181416720789054096883893392858950757723515814451051573020749497042571900956636346948501408378013930139348560167665146741435158695519345190743942564567315116571305294652853228531955373081594270293231481832140059059166349537010725392656218200097248533729992832172994889301495642521617915543451925977932269576036578634636958960523831643359267076791472819223958427330485999539485500778095845859583809747537994673664075329945169440656312285302717217244047165064347657175470828651627497796059677528761138383180493315168957139387498279528409939208909489669889475878426128206966615028764746594607645759945664468282093393604804443979718470519724264320563913605903086658387901189931134452940284493775973934456481042705594589893614067822101997703106949516107507672145746451258372948233477073113579075091838683767423132008841227415224350235688400656961684260030149220601151485368657882558114000762961336256798527150288138369329477087898552586984618822960888979253528443373762052434478657997323513873771357525545293009824831677497999583518967045964850276413821451252459496606063532606618299665331461837625522204691857563397212558896075575124331010531416993454935429556706873269102329388975498248859778857002389172334620314097606829832786259010764986973315944664056736780280797794599947843538485625740979716619306811589718938358419252907057374687863898229662342633244722794417133169723535903469824139899167238954008253481039093775437399267986605426103948403162788917444298623341603515490814522570272606031592280874848091331070910300083801949148661433622544716433257996557300716424299540842924785709523656407179652626435441021894445965510665737237728405086919913014697709110520186138926628986148141589005472968795795770709971867125671610654218430691643853558449203087678308908571045185102477012168709560936878933690260993122405694940858903761683429810272856518238261794638777757647522892851309742285554972166256034147700887563767298365174286241509990484471633156051440712173226690458160409594267858771751224512535545000097675997723937412332557568859355986088739906349195317721779645417451300301083231235373229938904809915498492386480375153845028428625019821238540025650423781079145806117411662898362992096361504426745064543054266357949586421416104748141423057177239154421895227601482901390186650843463181263271122870614322509681150883357987407757324592079201685152251069616508245671762367663810952261631006761529134484691019431231922714869479580252550031540298729834269201011681318981973663607799637278667189177592287994412223771536943099609736232750829621385595294479309982086651854499586504738119578919804792519189027516854869158113719742353650250519544047001527609531010789190076798117470309239790530950421557346693379001912316497155192902874977558518601141137134037564180776404052652052792336365182874998222879914425442015245629318464104295821522194861855822188918760794781729319054131653637042834994163923928706497928516568409260093966098803384180275851752743986680836393366708142069651589201869492311337343278191797175896571860873844459732707748870625054507064316042095227023668526463068970142775525978205677465355346827250780052436390522470814404241900817827237869171657189899131646819837029500517476255922032783346348529500583147490771472075610477018651235111896506852239852692090784019580261580345116355002394810888770657541089574477936165997881579406861017100552611972218353703817771701794183297638093193715126987950883433974527646064783464327412701446088099621038617406267423524415684026423883400328336127163042561179976585479553711448848045445712245936916170113444098210815006513365164971568977514396745352554014545700345097621587976478342738572993359625549059979856141454188478837694543379484981959702325913472907655135291397245480706041908796008590840100473695194406021667124158827096931065179490882456689187276636647534256994249135876117595691516119612959944580734780055297027502223435675587576000218852957849731769269707353986340138144988745103919154330356281311495511481543213705837686485885860362391419790289222040098286396596327482841946827615740938744689345532790214955790693972954158498878859381386102315764523700799426233538188616592930329250858136002844037218071912135823789301199372858227892300119052876026035855846543427029781084910715198222309868049516732343596751319952588603810641976333457486469423887304207685973898760387663437816104372576538928458996122741370693194283960265289037149195971774696622449494644217873186305960624650619614172917418503262886709796511656553769624343617917929184319916637304600799749146390405016507095834750749901912959736134176940539106058182269534856999878791812035707178316667866634540383415166031678090340142980565024354991479809449226696856792768042844821176148336061294585700686663698563899931544403384393487523732458189487664196878590074176730990775296900889527335880452506928324999750882601615489303432464039042941139111963879652838681586321348753058827228906286686463841033580119588215888734729216852849900824070243230843839431123750259578875221915226102625846268998121162192883847817865078834590281368632330386771341801629202405683374221886209946855277787999638912571090276134818992967275483618087612993203803271222860411686086534193234016908074262703476354154013707185963557463985043007834976085198036653934399276808520272921531166417314905139619496173658043144248295686624096097839472728104470973430166869510950894769930186589707029159454900553429716866101126261229244656338023727084954545421265031861850788831916297877754162329446825494248697522341736016018301754708268517870803645207429117990214333102461204404418693694151061940122395159430969413846267964176555191384744183237115820362725696986787066990917789315230759132782867862004409095299122445596005771081963993551206789517419586950537737535473094664048837515321100733454245002954635026027035513513641983825105670418890226574232562797062346094325792881027439609384973301612663375708762890907657003741200298398492695456386686027976680930840302763155410779787714502114329089970496022906393921913913145683697598221354117975789329805134056470530856156537053592759452866257295541723056009878900631317898631587661723700499148517101881880773031844411871854092153220635042975109008113341351274045334793352789641780320539201397671549415652682815323612175200034219670299374328071236890649940740981434911164219509469070798052703522390861891755220704920214995105936282798915878808127375479822232012877331280651586913547401787995344265606801400233974677831709002090607410626983501515050052429125605358763152803253265736896624388037346292367674324555739453645231331443446075301212795713895884689446177754811445880849719879210326250448933034416223326849021068018608450012105243760349937003909810934611967165253082796308553023182073785401725911422893114057114872292311670655214267219635025062499566210123699163143163380218289730174505647885327788066791577689552018499185121697613970347850195722959161649156740167563217736004836135776869670298256255697969832001164653985902767005825139034125169206157097412326787185603997935912375879359001450313553843469878543069703341402436987769718728803327927652293210527587515412525693424349138045143493900880175767599847866530313761987549728948146153750521362228809029211305523552811588740805688200881448184089159989970173610689127414835677756109920469213819304451410309811811775938617503758170837114904246350483078248743249098030745131379795287730178746486725301614539894625447295087268272389382645318193548896133979939038529063305680568700518576348334622333852794280297965048040665452907590688839253866344700965802067381417932138116480188570571738538246432728072878640827915560127037316871820181750272368273829109129983830822065343488247406358892862590081355715141395386025482994902714923267783672755475119264521182843998061903341190341594984799033854253118873779296992473970670044541735980999684584238877590143081148753975305135233456120267385941491993818160857154493232194841032085616195948471780717280065264272211009639281166232769809024023189671546350145917652289553005181666780528129396794725915334937024444410352844000761491404429315204757369221553336555341996746494513436164338376988518347739499770287353653134019548742818199746651070508136048830320052041524162785216194791455900634399636860128642345911495612512145468207497416079060218408092483619097091888188024857199123509798545004446355961460554388535943085154425161751818503869873589283975279394223498132274075587147372679250270032448893745067751233875175419517302815461400874634391302364981275623422232411396976864483493253581886909521768397242050372601868265654383599872967467623604533973086513884590689652176710353359813900275773814908932153862327964319279439067554600514431381658863544430999335151798496976049921759548645109341015483515611281031453884432923564361146919079908080102217458861722648649415444410061508337006654385232915437350505311129683884999244562669890438030567984206015260328807163704615572569472107760618270380051811679000910891109829983850958471770481814426243127634957005235409379422102389999457327743368373511605618127074224233066345166834094617026377657889561977990669718800825475404862588931245094840244986042558993436161236401706225283986032739924066822281089998927658238792994208401881119895684937055855970626343213304467505078737118167669217837035622453315316790033544035606820862639292817042288432941005151688044706847460633779981919544393000525503573658386152470773967726479026999442210225610906008495376556093169575655239615174500417341120355517476319210013733664907911074382372126612152697319442157878287302722887126281522434967735937374784365362369350647397162840557846551467509835106202192418046873320074410727260400746197936243798004013910374240249728552964183972838244551119615456915327534818934641448915410781573928750722520824852292128369703204749486407419903444469232988474458876622053564446215107855354585073957954592455685586456505690416356798620494923381770369465619188445421213220159291784552345339865760149467907851584708158258841170828087506854590155339296966133544332387952996330112901568118412796367266611128946516113088469393097950434549386876513399282559153957443567016105724130375020285948472167898530361538616782172222607610525880720611913703322445459023523020124964006552120377175032401688504660668516638798560878755337033455302472891646604986834703224394060214458660201031135786763926227814989515875152155573325415803712888513228549473413445360901040878621395426744144817841217354502600202816747807699863107153803950884055113526158883000632824304719219505412683674937504636017688165507234793513832794762300652040302790755503659876410875313299589629368824551730195505105693246749735867663781486274835666137230951956134573843206972660875611328947082992807360822945214226240561500140107466702896525574900510317782260404089678954577626781880262414584511140709045716004017972712350952997224090313011034981783123881692212030219870708267038428318728441267437860770150979143537065202730471272532001339821898087790027935929901112099451171544751374323741695508039272344312453818484897704953440139805550089866300303818932973532184048936688277676946837174365115605308749449590296627859253739231289913144026799956427423021186654709040172484288539421692960351038760624560219402604041254314438416475119262906380247675263168148629111380743716782779817140091885275744290304481760532759913496235824877376263934833132391444860176749134571407289382279817084226277982381296718023427730452616524735439651307529464000422435322614052740918407748583095541533902669768512593131036749775473748865642572143835059091335598400288501627527282656817341943346059083927276449782507503833195074844273745612017796193070385877491612623024957856391579765642793157502626179371231854467697251486730883837323882783617296664628651536515050878514728574288887383040112382968841030327293179479919081209111867971733771683166859187501403599896937700650151827459329962473944338279595368436653878195639673612976506403186836770385862008290152537513657388073475040861335148680476976232546851537639006095515859257902563098009839339699106033419517032217003984917886650628682422759660746507144649449814369494082890882993531272949561183073873201026967566761653817766433359122701449328864861284777682940940156453123767965883262362261438934152173875094702923925249278207447107018437541100640260627676579362214384180597546562987198208713341525418107978011385871512381400932486661054581813169400111861964579678203859486060474385471992263724879432451078140598130971380022391978902435480069659708259246593578386208603120142154891378317613869919083581246841086470038603037544611113250936959355490244949449514066611930143709706400333642754208170297027715547592313733803327422326628981784307454960586169445264903297361734850683551823790774761430633711646415319648697742762308223951785894760733491719259720646719381082651684597388596148817676478000049115630708991836438146120644185601157501492334148964029162877932989062637601425146130206324780476496693859127257672498900700364613192611607076986279349649906494780664431449594020529427362167229588840392515561094770436146161451945169872711873335880032474819950798943691729335007402627403901075990393985217121674099710076892425981116629481540406110035526953482275019195493722624460438346614260818677511461423636994452102433099646068544311315165169546399423081443939998691080736099573440445423132323001421160102913068109514336619150263150754791317922856379510252242939543794483561451170043531613960003607774048324184797536790345127721462043134821132344958160255516818028019009058581185743123328458010603326716938519791104381302553331017302843604462058182428298132531946785932031708962406500169949507303531297147742719837940436817871428919651021220942264748983043449342186221103127864422714139335741805206933626559376548464694613334642535666044262928514413803728327828238980463687958501085640423747252822553177991497845680282229317946427171071739899463567737722554339017869400299533371598294023473031570336948383445459146427895316703742985116855414046190009143910570278409370545948733659655983166353039750987360601148910430533946613198157524512965471193505284731667539743086612573253987852892964852292978714661193374862229847343666228522797155569198798505625046508020237641292691078208345033036545301674243941994375217733995328461472532083783258391772669521074117002608929584523760935664917162163376145765076537399774696776016055571188030579924087105652172140811671824811802020576153989897792475231236902218125303772610688244870025767932764141793561249783355529374986034818876305287841080735161815822793681478880760744842302958894537892594399893465156732339719447561073722537791748362205185246014568042660303206231936617232846089294635581729168571022087167535378964167270225231655667716626799882909305383044808860964385765830796661541395492481574763915200657606016731674633969268752304721580951618322424471151894778943582921216146321892617062330936755314324037869537544545291912015939160359381068706765912482043114769688043435059407509084623578874774549070279904904651570735524212192869192008908696580392847678455182147113027869561794463696645291544937819202221320068347139998297458576619090134306554676219184843829580896992683179414725671023196539763669901326449395508312062607006545243373806277803005734541747597921820994605992552247405635389038170905300195050911379146113156741345665817193536771388705749567708500155022467701318023129874296229786755285182939056955811172341830757367518189619425514747922290343865111528017829081205370923489368023652408043864008181747462343122579444532126396342000985488610850850239524883216908861244115031535909452002280980115719689748971817464697199016653246542449909380448254039896130214305640920295813712079919357744220489815556903769212611866683375264680140602032940403107458085212382059087926882175006130460062729209403578006593028240317411628267764077978217294353013469400087072068467579367661045080576537991541079616974134580552602142523976879873348529425716194717807074214454833469493851799180848613368736138835112697560658365100197662151060541081765665858630268703094208068489018448797410758710187412871180966927538811019728354691866280442608434810679016504950287829957632453538454397488393081430014111141381272696967549058969774593815101198394480613543134003067076129966784527378096261042237307831374464458729745912885265131931950953775785915714907402535014793939383874031252148109876554301955943179723676092647910290252251240053878196241468676122976511351298235622142707907045428793913283080566305714900417835651117914310572720502984628807442835669391406524675002373697749245235477855524169034756963512064867477426502483127068180117574742635353196234679313023918043159866324756172040514656723475132616125545334329212309821786901634252954789307716238612164393304445411038281294853452578963697644638259856908295792810626392380482227206101870952887202305611151521680533949702180593803300482045439447723510052957998879587736698605054568839316907398185810118105645779088880575352722521257724323670994567307496417140325589390865366263683658271249243617092392408050151798011561521377454379125012480186567672906367589380400633556922111157991242484377278164566692655836408189162209531875555185855330733655768060927740317055862620452391395426559504382368839662790883467331808448950951372542218485894405661990707185646270446724786710685373418546711206702798396096867963720617229239686390060048074885382126039028787928247473541014111041361995521170680761102356505304838966090338814914739513472673593890726683615279175632512566706892244723044711654418402313187498897317659546550651024876532108062125007378279067856788335330108034748421148239511688649800948160918407396252832121709923169647396708139266726454835264500345481552093906239846340227092437211498940305502685807509257025463834401260637360307837831942617593444753778706620618313692770248372052035900569973258166604737536799980995461692662451095213959408143060929029458820325796911893882896867087482610298614618725750032482648182481311221129141133215109318831947560328962361599587581520757521236182206819344583622577961187351251304932103619278866642911805905411436125521233373917109822723065821787377912066521980474990931156610185092359547865687159537123403808020498283112600447543353112050635609843036058260531908642724941716615218092682718798947974215097118512097828446125672998393301728365491841251983818919439577302540030742231305839530799912853749895924438144751148888085588338106410813946164729907127447519036109159642339844399583728251284839526860942935948870135880084928288050481385840842359795590463726771442680569104100286387654740669727013848791174865634520059640302588265873962025115151258703311589202352348695401585813970604621523969088739329221293373898625237485510528499173899702283980764137947427199862234613946999045040386566453915860210737190079144530936436364505150347754537910535170189279863105241762185305492943587635899459250897776670377605429146646623976548222265246666787358051064435490431657850234575270752181723990671468323342061178506471618039220966428987555260072036926568646297084428238140557403442790101923345223810734488543712370362738282270061614783019534770154924403340429880127662438355389046671216116256695162486306868379131850250593166545875970047240216041522538677362363267100054415133762484443807255518307730832851772003706925049640888375402122031588746658912631636987297077757058073055342506973542458559407202662289329664171935531231777358688254418899419252124919715906023782294148732735397870172293645655350033934872567859103385531226648887150839161203441578450613482718641346973036932731674585364927305982090651887710199391742535298439269840310155257129701578995055933999582878318725695685561859943077427041139342927907659788990331476709021230694785473824711658224946949534639477879047730192664128115817633061650441888815034488181232694029708625459836229528457531415638913426619413355420282317472216026294718219225999646047887550993835733536162877959428511591765849027925041447633186880501692440515603623131959151668926715116929805559435677868007704365709675374648074121886621112059718713159104313297733897963793137677547244477729828690897021471529232040776164520826105845680068315086758824825603878373205381812160930249620375290883533749890793051363613165726579945386200623991618480727505113716257063186972107467095765796702140360172320709995405069151180506219289925950955986762715495522344633503079858883356702768994234359811988930209800941152288150039233344514256135721997230113062556503499288207902747644524018151776828849926277400442948218195830073723967490667063696540951173118184829971428817528526361955531445613812704800336212815940426473473621973600796605762641163600906180601898322986989535944196824025961408151130181118732117579176650358340238914905709591271857780592794048286463419748256206193076041945378232243325725117513630342155779100359405897196468934678787819717884190883179194243903188996156281934321112524855239653955385150598874033875962527602722059140201327258422447989050891445680576687902630863357223304799765612195871875614825628049378199679263274022916558088997355553664792411011987881426456429951061687503880621973223764270957715068701670063045433838150175161846101036438265914696776602109747972542708915199095254870527501419319345051258920159513901948731578622605437617255289982553581187521144792486970350718153254970870197105838909803834042556454838444165985580048057643620285224511424451599092605911248458609398291656610820230143924359965074373587703843016508825000743099166314609793614940250982142862993472651514380063299307391490181687993650623560242493236339740383204167917688825321036849914818643511296615844570964630484769779453116737323385857783602419504764703064618847700482742035613037002446676162562212879194936660028191809892736529692498639834198339959493399676295437423495232113287793093521629084145073500731436949327337567826050715563071154228897345052435927082101540147468759365046907923397186024638254573366356093089622479830038776771516440653292289973140254614846258813734645673202108609486192046594099799130035228641137307237016265635774535094660528223005583308375091592155463018906649188282766401058190473743003962242303599473870586071043962637080057899710861712992589073570406980469820933584248132787232290643131860897477184562496688234184419168572243528178064906875684828691590081519434859432450751129755929344536618029734681689420336664766211096412213842931710045437702380821892282333293377128588247413909139783887557733819785737112832045341361260185265192588994150741180289148888280868773869899563013748990296914490296843728508768664189273725385540722420313986258779973419582809637021331459534866808351063188486836476718360934173640115846867084291722355413905718399260947035752406333799103820251945981573115922339429920194047671350383674785963010948428537090792295962904783731464170080103469212105939570973679614671387360840928189432613957349340157467289125008959347573002165738060155001941385017644896488422090655638298812529288391067913466209536122812308284656053844870632368303212320899519992206068451628962144481458836596455481985070876872926302879882067591805092592115179542465541543541942593052104443000025509192600711198505556364775774382909114728688305126463147712386559295619421805547603586061972150076593036001952095017397144661235267375371101502654956625473193905110993082448832940810716594126468754282651454496739142879286161866093313239082728983916828262941329834037552157913110372154544523586904790557758967142780480432631171433167205083762824626745119197968193483700856043681422826939390768030298655512662548130523619229046258499203859688622825524226088871701553666564611629402368051161673592421470339696293242661678775969453134710041997560209375122537216401565536508551696235325200655324438227599906987887260178939299646032334476747907178024180380498832725176116129325023282714795127803851607367729161981331340120071639268432448175015532704328234881791375073797979101327426126197834234202910058493672432224312195959556223909008994462485520763354227463000672566009709257513202505396849031629545472671422990054923720847955384329161811894437069737565887756835821473262873841091357785636158535984189994462624712625958783649735573775585415939363026433835893384425195961523793708545459484859360775019185263863404607165836849525771801641403494187516934074044245661514031497502364594530733697317080888177129588261397651016701450451762970635089594157560604753652659776441007605542217631088048571903292101770978548494551164030251881782996106240741361151202990239709675751824499127375754128567181750205120157321135592629304175180840058641946697957590180272660792560296812641992561185010888287402877651654818682999437354487311480773320540943197719497073504722552849773263729336253179197004373021540760454238648251136227452738411844092338234101803872669240206672356494627036556188454908186151679611191896228374642692393716520083553741721832121076233481849595584938313536523232305689131321853631099593858282003700994874855286649110505123236235811745923009771165890534921141934053177276707099513212262976069771566074367510945851132288398031386993592745440670464697413063458310429848308576079127285020696611790720639544321896616041554331763648684353840715552478183670987703376224415101899683432236669197330852200154703451047371018006111183975767891659039793486758307873344377696818655483142753716820443429838434217149587021911610136375566257270762528230969997700099597281042751168708489236618861815753518963756874433893012970382653452193090245034202609535603933797395401512011465283992955377569383339177194129999582906882358752271631276735810116674648756126413245712840411149800537497849457132957404190727584559862953174084669379776528993003373729766975218231935901742883289332022048555983049052783792129088330080731368939300517753418078827127131493052664934258006954499717794290259201886112550602191376264333563436316166752527775401663331421418082085019432632830706230918069044280146276029989193124946146722862712213937818294281646716689074297322613312817789450791695794473502688105865197716522879200122460621370565914455280313098507186200027709907136133717837020747199112138171074890020254443917027864219806319669259306086746983158608403241645779555778657766635274325896232475172098243268974055790174954662914124771239598852742438745881738233790831577909031469864488898935506038756742299639051666105954670298394613969742969979113106544817025629283866121723333988232956911285615967857302589680368072540148215769344933074981021764054315734908984282054713760701441814142884379198567013957154183516925769020854890553355990821768646021667627585879373555408116683508617192104834045188775587507815614599320542127778200639129227732432395455753776947180410409775610403752733008838828530990171149134607776170624032212756507657412339529676003035790748485767080663153031680055730843994170274718358797198413738154900050792711056524084438392331846063777354145163274506595327040167625133732299289478953879449482563339479811625201425792283844909919669880224028006589866116293921074828762353075024874538388828354158944902116620040226620483324993254333721574314722237232888608204895536751990144440947249826234182573741544911965700037009382587079726696167420410698618379913779856149716344259232354239050155026851562142298945843122926877630878550108350822549286014756862718771854993167974117023802144676497117907811619939855391489277057437279153704521564582656618067908586616930212640985465529007182610945516066452453840469362288991132041141217698361703354493916673482867765140481429163968659971966248105930720733047052187978628380360692628980320169520850520613520542999526860229002465988516090948675262028286525643508581764612360306868829121207069070287808318768449810248363926079452484218989222604010078722001110798955967716757500709115609224970148059177517736886237658002307064186794903656905331200608650111213340380856876614362365914434847846022693412615032753252676249043869490710512394656846746945347633010699507590893313701044606017973944403154591714449735775363362686486265666611749966915466616558138326469119143827318225600297363038603942817680810969356991279534895609392440730540565334413198678509843497136531514747562042911807921778782884382348372470615786961056049714446061937651079453047884264211087243308055304582594886330061841143378937269962280806506822506164264454375287216426087373430799751916806685244881564092827627380201004882278479356379177939832508649734966061174879763548867584325505856634468514674738595095342729791620938998545340752336972458850167622655178136186908046138001592290580796302276472562735340701111354060965090169010120830037452233813394524129574723549209326028772948158009016156906235172843260059610963051001041228146912212389935273307359940695045499679626710418538909471712069598470310627483972958238717267265404007385644591960308324694109503707150067781388082180071214532465473875002168205122519010739236700397998840540560510261687519255548121418843745402807895979876443625941741427547053919363892191043785701830888375291357119482142609542825118648604066628121807830705911825445142548022249352874858448972029105173829697628772723494182034624304726137482149930690434905274612800941271584261957939617615230672565461253205312325782340353709832519517416595806159072892407634307141616120252954602214806135997620674602044870215238913835836036423038459437896961537726958491607974915965180516723065688737934350958622622315556520199178045535054515326436858410559322251619110295670121476267265883671996765663666317537519187977608864931527398206771104132158157055500509441867826692339310502335421900936687283655051371959253248816939705389279536202139124675808941708165077263866787569259204384311835326966962835207517626774451985491795452957868475187200896078205758066497753113610513781052363183017283981096922967700610024642726797008901852686252856907234736994480601725340888180134389411107839995866094013631450156124937255091996070761514691658629793402632199574549155294742623753421764289625590998285088307287991276379052521347233335635813832959307917855355722318150899875309789036030965467690484225587957286798122377638072368235821709018564036666390439469300828533005980586092258182680662112696248263657415954482409872938186456792357956693507609766529946035461395249554577893167722060656063552630988359944738240823220952599793112887311310764183994857664318110384518742557624832490783496773535582631052790359999642098162012996806987669721369793945726272337459465002952511138866488838843719548433125459221239611803646949536293949226972701789870157868880823873271847604009419976766685378602188117197004210117980776003179814138417589469196977722366638400767349712847513272918912806356412312930140304057202803256994598284631882545757669033870466740859434703853357647739815120703273170469831160678284656681893195457915588979013057921370792707113677239849893629798443709579845341424661379434953758077060241934047552708522204784021717896225791123659464859481506433366376295535574038462640489210344116597656442120634966710988419343740260601557610415597694347441478615810161538973409662629859536343484138032379763364925382304403401293343772220062630612908532477765922014294795020716631972405220975771967299910837747082780945562288654642475820233224694073762301237364871471542216285342441812638971825366526544644745428135438466515038055823202720245111042459042221691588764030899565431457940966005783410143854164373048473053748923716312737328481542439789906073071901460380655908334084603910208329190190281806681361998008416882673408735025919184519079295691645285860236216395487695921654200460778010616980765839860364999385347341127812867617825783933337900834644352547980211632937374369742089575890759212024828045439790989584490177788004890532504067528305105523026928207883995037801227053649318346763288960982610923085468568197611167760624286783803899065365244697534132005947586434580175793923699988973196558588684034927254667070069650573589083035628411417882819611853189378409800745956577110382329233551580140895492933263352013337568363494511570040980767201727287747679710246277239013467782954272404189082160328268486328538174365868640653928771848508907109232996294688411937830224174358580955897966671783131353672871119149138237510032683491113528810719674466645239820981087032583534026212522982988262129548663708052374542063886807260318256492849112917020374065290862132152590499627920578759905270225801014760998330943024371958072548185782460699201505286981123328534924625488110566977284055298292229704409759442631254793966751600776427845314762404815337085179741440341239752164365275316799371867263005824931406058374723794012224917697449948314581342551257698986222581315593291934339519571846980467411563808739098694040458994714479313849949081350566405237557468853170501859677790095786857101037109397281639866822372923575064074904948020769588502652319095778001298846580824623500636901595909039231210608019604324162858132161745285431370251263159034717860973299682816130091765337043006255472037538738779754438228849147543378776368154771818343529653658624288690725431838076395368125181380409519353421079897310874925741409189790278655195598035092570230902000777433577500202669248102744778642904273621655716956976322958224242769748315216986731826924846025060646717422760612310148587668992366582984841049156200499797586102268515533191270087886984961565546549793082108123903972224933060538123115383563221733464417936715217766501435955887649203110240313382984442438405707003448733909475114756475849822814898623519273275270694695811912164845887657937009674003396777980356535619355672654716343210387902204897770828137394094832492831886426000107379996059571405859244558805949959106650165937873104842068224732085209325052805552264426076938490959234138289174112094264372010712553039595193389038121285583962004222871128943233898019444253936992340033000017783587979623478421191872082781510294196000250466212830296050191953183421265146137065957640096834884631602942422629932069696461495707905203552299056620190502974479672299540558733907473604878542247579478295739887777468705305990599000067822491559341851737462974649253895115081337214058417388729913877489016184601804769333924189713142112399973534319832799479991042550369773850042086325801406117749265623033404918348213653620546669017286953786642664096733705408969511177950685845106832361311278597153326527986297393145543144099929888223546770815963600247761371349991715522528101007144400650440954887062617975277994727285984175077375251469374815316495173795695959641274696544921320402822123560563242109351557844457568031747707679466607048854972879074409196630182596042585460652874644866586088925967494746118724729995291346717154905309541247301613872468112327179255658668869730606907046018924767190927132212349029205740525097604573005432852066686403458383362858733901283416922393263390144437452557672024428202836870122804276934794817683820726836173778707777894550283674805827610593682023292506512081901288523489151183980729215799576247707405427170299175224193586923392836459663695495411617772870046918312936422228082798621161407446004616477211405854643946375300390502059952858845925283685595912343623451156012009114341307666010307944979147840496397249791601575935412661604853281365416220394697223117981512380519046145282689491842029355485358363539676268102628419690357286401793151079511410834752230427310417082239054759828851797224787494950767680778235813988314061686197707400904830185363384198076753545654332099269640890987593392496876613563610014493133446391980355962803684248730543684252928910118990192497768474494567980668315010472699555208924802834726649314327973496358708563853246965362208001906375447332351464868798625152235044478647099093578199117838966317026694491403989841236036784078823030300960684867248466376033647015639588894609573501440565886851358331563039475765066898148507038201685306493448443887784699461343963369134088301862999214392643393351097565016092682776806944147734370737726366017561501419718954204420729111896048055897158657350581496699671500040248512716803212948842320193082115093382786546633043882065291940343259756011005495796542540614715083191780671129682653419142520662199132343669577382671644014749514381849468515599424630976557437101719399915463913801211391806219636769556134532347679981867430301417731268544399334504366098218455886362526975826837206003647879833553279648313533625233190220985344503660466583254585636916994992289430300808912579299782376333406374795781642727969363312368194274613469580695895358159811121806735332408848322112496713342567633742696280435760120673952320321865508381267144921845433683194543576097213254214418363222748170740392298759535289070587730907154020379393580616382697903661106211770427017837602555552178208356760264334491159631074535520939396737070462044446998887396543512161831850144216871632785294795437464113059123394005450425896679600290278086095952633710259808357993472047894488616881514260729183962010089989021324209444784025573472392286876951556708502279935078559889816782435593977195544134901123479837434748292402811632002213751861719931813051559717180704175725733725699261132552641325441471037048801890028551703858847051119841676240251839248850142390472430675358244621713238363846034484042763414911526591905234370039660296114892898365792407655714557697226896460710540103304384190912825623704337819710861797698144421754065512567709093927608322954095413608460426813412514038530248206550834737389111237469578517661259791790442989661344116084494730124356935167154893373466050177311187929995436359693356597788966820753352221640649185028642821114670849283479178917345453844897222014575358813542473655915074005965757718652910989113926373051733057698474964724042742132832329710341808006932822168410123199037078644650123386446126211296916616753085061218005380191494157498678116855063851543622004553666148679000306509386917312164445101553869082588543388386487520059944912901449551185710401408104595359925974094740533632610411586549662221357109189777958292153168340169847977313146367438088080422783693288853644133669031522426043542700765910693443316108048189089650103671344597994438855619924995013435778699390687935462514151888296855741753192746814546899186985800193865186399929197059969643324198276257862838654010902065960486242034411779071096559822564363298119859993640278091755790620315503402197559516856063919926082765714106203367420258546462452991834009434282301615952663694706641088077505309110822137813129371233192958417568397642070723022052365015614914703226522519202632705513704503704521313142671114693509609867736848488777749092561306888131822778516492823226126521524996363158943503410561437974403601310291984165730046950829767099079175389222702647110416889710646110329491904652148098131046849988040965549096863399489961022601814470170058602580954145016991428371936370812647308386854675470728743505719393488339706667038172727873522809631564217298980619968757739522691281192609438040055617329990296512606203583247127246646745431828442124813381430451733811317855098706139125836454848909989205295012123438936746890312497498655477038791886463492593748552655314251996046391962473359340349625137911286195801164696028282885655823005553957949104151893473787302602396312538038781040882714088997660045641416795087158346795291336927004981018886349068569657671348841060502419304466132879382156366969562089910816975060887167650765525329666095400855459989866739362915813926579890685852024005620014314713392458229859816323130358944900025076340334407417640632790608058089712016856145605603039373365841247687393919192092960248376243588075292801962935991581005248237799111625049626652504463673534068598293891004316089561222355291090749814860626765973143364502960148351531501266667247637539807305810434042966094083698030135988213648956378885395959390879632189573326228091567714021202610398159078098480577113124018604421517902630919736212646802736857556141684991776383353505575928403711909842515624622973555745531796722097296746832002884003394469983785994044168798399288897162559415276619462996319925048486506063346173814147753667365834940904343553490291558845395773818845355034467165080029426604537898368109494099925689878976513517288067041164970641901519366643347919294057699123317443278493465051881522614304835009079615944233508864884768875797970164309757582014342231712805340064242241396809779904490979468233359301311899071015700153716544664258941463012391768653473192005673676136466477326713568614464874996973406171188262151278362575678546035649031573695607600503421467236472147569234098640943933107783471020034633213613622385724409336567385191949189218665102053098867708220435409555697114243595404347269920568433965825251149497309291225918848776424790494751284996686698381480896819140175183939921519984011331081877841476250440333024879476499061132158782419354839337498328871436327523510721719437240535020674101946899425065234319557350377743061841236026577784142770467559462281647272240339423274016864642838920548649823190232203751462206950577384042340856139393784077184559131251293194785414864185413840151140592022973954713325670533057014210678733427303244931404551629964647959993815335652148265410274099155350553800495294979409467313929188958493962848816285597332539112064147695952183876013066099560770776890338228129738177094894549260107319547661350313556328036759399086017618050846598842723360351598389180188319321291873491726798490473671323894662443205589933986895148057143168029189741430104972498180924522508741560528006101573597789969166953811729184926870565338017157748852101110516184359608245315835510042465842291847839331336952825599744173368631919100398489859559679563945184038748005905447405126803173358856545607811518144245267082546282161620924502229965100826973427380420844758217374601588053079830547748653432923891713449430538439214547609229304134527845565328674695669189226858963822813198472976031471253951927899707549395739814433170741878894564244352715772764688902532573879572695564934134747913030526881919145668407232466541594931525550187916872880042196531127125854654579717876970765954803180331597789353834999259844720489217169357062847874564782578622499424403326464238457368765099051290978800095485510203926211874843951012271406617016961198498735438981526852008090190420416144236086319674392392036761271384269031857035586500045820626850792067867201546786894485244545419008676886208753955443345454873110296228853992514738940417429221314247814061110079124033036828984090874082083016172773673964791151510004947306816597103035700938889347333140437943776324169089457237135393734439982733273504999766315212866175595694532169644803535168347020679917593968824566459459312205904368375131840627357300532902772410911535276957899675531513802489977329404983246942262731772551100790805919243717933065477491978836453980275784930060918711290791653678033195764298866273602490350765972771406632706254446462881404991009043524606411592158505559084735620022370085013416480521601737330253633054072854673762569915046135288189024991461113908236173035801222671996467817498020997427547444270544440321154307775695131082848463742465443515919736891121149718850662441258822641298739369169458235723189240230101208147931766634720880891631970084671367456969966138214998282438793011171977950775478705363253143748319269437210176186713050296225315561544891862531540620761115672553385200997939010601579212079152956582546553142103669025478630183613136777012949806515647371459483168360165403403810260272665351613203275926704702799511484204358678833683591271798964675504659688884366542028673725234802494871228235595970747327664023049252635939557129991061096702575983558776266557214555340914316695898277008010389392500312543594792508071332376566441637302901843073165020670799046852367207553779897684203351302853582307554685939328696269750228060099951450878120106063687912108116701201158342833526951264744303870276507826027894890024932918513713498095144606010253447971859023079231741276152143708422629752118581892373598133491678765328923880605440552664197965624120243830915426938504668735911492403253957196897289609335653320690570158192929286899074700375776099646266814356898778327022340543317282599289505373723659047184469457780892139640118160007710543759994429734059238376694906852161878145053922296658094283753290405837479093095746396039876430528798909231544377334393860661782627834501170861651261928345101335760728463503015952744722476374746484272783103961714994692140774325667643913351179949998144103032578734483741321693476409310299036659095417450914163615100052288626577823886057469695636585705865162000109038515619353771148345069031726814302472777889131439545734770335839930681423203339826387314200050179156613114612521764398807649724657489564445560831440857779836701899736468034722076327041432765303461729085996005926347083367789699297279268216164847475445133238480750800484266754166265711929196480856246101868633701296588617256582104060938144069526174674828475608845900453699190808860762739421739632708537531146294807945887623104390789950509817084795310218953215874985596705364208505151453678085881149915819337567916975873354911137048241877087620584706754686497901473637151923988823383839874653285903739034675582502639569342910395425995674600060921110189099995769260408419576843151777096810399374410100550309109170981563453572166340354822038579616624812307989096063768458205355479418480683321869455083801457091739650519944640280257581497052317580970210111616378774732231743055129402776487956856663854054310893443812050105039934081753442415970303836194137976451439985326253806377091181803601598826215498295831646204479562136702359768873608183629938371005540926465299733234754068865506249829795461789567908994974326025063373697857540685085643399558282873173510492774381382982427266606097799852526104728222743015683998732638719071721520400402846715572535614129461262052018847528700946859437655627239563683779818160911755997098387673615961319644119408008681434130106169969335960233431565335410386700590415742861711549761765186254566469902932433888116600835168525309163534636857302079831009780382125700112700573518488199827978655125218706339038115634456081954888743884385470949542278537776251486997160968545910126370764661691542023178309293196328803845951478055128833040940852663549928243956588109039725738041792080918655142299038056107818237580993081418276239807936000178824375326907534175370555371312995424235046786707284275399618606757794151816855301253989664116027610261562216636896192897654213696611130131529018861604350271211380083930751956251283854640125456185905640119793421930247286054520151773200384605075881472588929249228357754993183138466637181560862379505417839146547519090104295122007155371036681613499599502749402717368006221747646963493701199878200670277265275931294411577197413615354084277578700886256299574790022889251574352161801379074776549228982240852718200607211070719747703451007435110340104557316038850533676322512875051935778754587425399021288120997863261675538804450401922156770805801081567557781230666839959311489921946053533499945170712607448427501453265011204479682446501185274720917329474374363017226559553285152023369802657147769770540421952073113477867175235792626882695783713384444377879104032601542317120522592757128376642249629067017909669823587010916282420848703885948602003571095960325217933808448299801438427498190032427615444268810355740005282579074685008682210660229774472015275490780124600706444115350362510732316338012723053580582176901775910402628286542624573052505901337966003194302265699624200118138175712543887906609754439775071719458732812280739123211867101428652977989178146955149639051032675730483058073043338679752899693000909322312358003919055078226737161092387443448371720250004796463582796531531046138378813731660221296483286151586644399517614528236054872961548538766309253355980777923333105788607561997550155736585128800859767170034526947924453927288039767954671597369869952263178326730198361710276598184266344464652940330736273536889215694081130742088632477635494168593671747661443744114101375213054496402321684252887548880007890730457695044253947421978644139144254814337404731233734182112503739498498945525905439763809791272679389968603950866084555064014021535326583724135508663389334953459951129629041887855812151648767066705885698354952453816887984956450774731783536001301080447762876352634657460850779680551209161431173112552156718457291082278390307479816682271722522743300963043163838596522540912729022324442724147942040921644305077450602625752852807869314404727791743215024454963351241479056656160159959527055333414443556850431065575002504076790687515905593171800229033056702860113211007312406483977992591773943136558398751487981505521924808317045007552928599128933879732954354550821749207516645731768643270825671742869918018744690722057855165644374095871559135446178048135478680006824167477422039995279110770688344173708025253514286699045210583056712254528218937272152592114910920021050253346781434506549622340412103873355118560595157272449952231328274279911855399165168738750646576878031249581363765480729889780416203312809261841087177329218434756693907570349703928541965051078275044747522659915644960023047262518078628155076866726586410322259888054334104635994780560788008182183268410711076757983174258402038114457097427274830199253156154388295975103173207842576870153383518686621639311622379836203071352065173443696125941371985857615012304529390798832006733178281622428650465708789220449412678570346982734680606568890968635278228968047922737290585433442522609491906535157385921325984809729717110161222787183583082045534803175210667769680065876520846025749820944139841462612905291783780713571850156442543470965262765716806967271743419434171813227075993751275948047542449822385090337247181766992603239085440842367603849742674420628799801136864856995481914884192299578118469715811813344872092732015077541266140553480732077616821828656162047403472793879066377590279167248939724179596270327720768171207340868880431135836980419802341848183205341506751409246512992260469299363816275189828432947266887307594416828352470732830144112812830340425255851204122782773251310493613820818038758690065040022761284348136806699714040128914748109184832277073946619013647086416789163756280173584666139263561688538150362867335477809805811851511640788324893269275923079982301590751686433704803698021937927154471445555799795744335624791918942293550613521114302083924950516467347033407483256530124390608289074717125484887210311117365222601206915076452019939610007878515789680165007315958320847832263882633237191326694661416078377102921207769061121476939924560178980719545686292231108423785423314056106673877846869988236711540394858291990841925872155135724271027869289116784018936438046208624480120397977885039364846381469152613050123078306419266641272857919894823121018580356425376085500369391735934862271261084404186330103022641268404917365888470584414761211394684899823533098609918222510767834110232322926657999452524938381273290095359238210560005000403760100369568618523564597275667738709863132154137870921350844840794937380442231385604812726106107344009909651621393706902358589713684523537912875890358515068433076495840169638115507209971325021498357579748659865812612520299072539118919372146078094116019769087981509531160361233967886486734223558821664044747918750649207857042871811238297428755451660276043769717335844237080887604437420979131129490397020082682288113225820497187692088844348807769183324390993981738903315546806282702897636929521746865633650144647950367562208350497535783278574252086548359638403758880205306420362352366332389270855166944570587031799606203889950120595581187288884151959361468689623595080287752598706207073831107213702528262698177549954708110022809313313648061020903153310967163333374475529785940535125185274154594337093100799436598051865621441456053450211486991245072760922398773944326707196622916512778521268117715724452507106724865623429778863446020258073216567009276673756584608692664983213665407870533493138457336688485442768082906244009170055072064557019012014652285912266720989831955341325808188104500076838777088514122337571166747544864130250626189393631425379066829034715618598258571418367136866386260367932605261724235321150001309703912551740461124342186277158422048009881043300789073844581464556018382251586038974863560389201555804465744447280487346441378957375167609806646425436030967884194199097859188350924443791799344061369027221345705623256197437138176006761331591432935474579665102444988613117383392356664685513200186851837773864025900341736318782688947619551423020658367989458297849362674942955421498661336124479900632429097344438108169628272049653332145319972444643513017139549916577335395806043395187180288670322631240782067373941611910842724472592432720915698996344852152161192651428875020775871942406012546307745322661210600339926189175379691871798086762105821292019003449436819197106363284914687633309962017535428898746756308447933689004569409111008438914728177224050101226106733794415837948824269376648105798722764799455825358828209551023639865363476362529850993659096976915806382631608246130929544071365920778406316177960048342416280007183065339338067138777994450720453393268067204190596522651919040053533844934003075082965136114490929731608355597018550526799726609036198257586909369022524170048553009921039333127069582304544318126527423388885666833955820580571020060343371859714713324767402371652427849175335839037787660658565786507665608733769938497930408870774319569355011092416047347750504531676100808877138289860656200681649157175905179766081424186343737488552204028195440048544095114562506252848312354588824777661785260682707882522973852110538196926975097182254718985081097285910659925775794749934329111004536405655882383294924480743303719229914877975308608828633188127227895102141939502930720451517292532381739667320933406881356496026084319358956431788144914515282306414629109463611541186408930220478610458419733466442477780158855823918834967749567570816467105468722677324362882020075802565684976966132737230850340453152186949015836483375551685238395315955787235749762684584566423936489693787096548894451561338045982037980832612052758420463888833844971936016833829073558205221792266210705061527899550708441217335749467268850070137789950078066164751339598218662235908762619569866484852265932473212365325790841278711305986404662378595885872814973864025382591222789445422958376182355704734373825431903184314839571169524119601338471546734095909312826006902737118782163229275272087823919425095152733227475097332179869383511285412826803611984388184846248478134018311060694755996584065790848153455940592629909398888501154018671310638185353030072413647529578584422038938688402559477372312695215491876146395337346476089937461605359513280087951986066742651500089187886541793017044698590494989102712965676212179108935282968057842137478367640716496099721872445980000502933364823197584278281570322637903746832272962536577742482509851531838638285888687894837371605231340602176031963071442826553833101351090310725255009965068395633443863438377495364956210766071367088251047060563317182110933425422716104010939840719245138586792149861323412597665699978416631772584405231220803344409394909106726395530924262252684681087706747966980563730359385012327615431849840113367222964032586873233670537073732922316178460640887909774311091202051747367811593407715108905452933990948447370460746400639914677367000520813449850921493138931123087155931189127848510680931048525781454749111950333113876524825712058138176864931767168549589020371687345008592033381146712406475736998336191873625340791077682936972039874531393897349268935941602654724395274807516397213982346972414542778396529899007983585496610730270072088879147549843852078559807614978605312743341280823400429848702026372448659871150832403686874805871422338581146903950203695175173138373780986727607874373494986053358283707791709871067382483037854267553021647402649050254066565987930462448099860269863407477532506087861338780725025452833014834043146703177771819833766213268717249938520450722825729984709443694279067671533863853766816703896438330576286650322455532655143440213239947597405793492252417923032533093299944057677868774890394664222390757627837652521374214397888794367315665590283269472417197657149169131518825283660283559043230567336650937603181741182792197287413459675493507911930724467881490320806345691200262130363527066735831539782751496072090366108323404245639072996098833224831066535379186858131492180205255836440854938012014176627742599386005448524644475811345412313587204718659143312360023993473227877735016512153960893488781665763038985780652009722038796966120001876225395870792322819059104334566150050648759358684182770334735809519784254397630304186759082620804377668645022454836968787607362147737612016109144608186278632846239593022141927229944316715429734753934462128116921654642650584629982633925095977542076620104947955870611606451238449240561603272182606225255695967906330048963809123752247844929263358804626136014363199681581298721724547360609974810667546941954988051079086845814565075955451874061878834222471040096822769657519477942517288219828729827242906873385272745952433417983223022309498311810664823866734250900944565947471667722716236832089864179526150197074454592137859921747734644937781974087018975616269018695244022174205305670207695260463226851822775647729205931111084313816921095043939953362519380882047180435393267337343421582321455313099417897504208145376681338694446827805421321778990279756158433889772264066413230431141847161085419413807128441646026429992054119555125417910625492606481730691870519693000848085127136925126247934680275870091372871763051877277457466778580066623288887733717713371581959302481064750470731797291226740657885031598930096252196903362462803584194439749305050392810268049929912514111474343239877929486648566070863469092348009811567817115916137636865742983926606865840368730261493610817919424579295525682021627614523006285527401058244774194807297784879438109909997030587234347984423441961753280246341407128789534280263581853876549904821393406286211749522226823103859821887091321724636221205071381398763935614961506292460675451745748820007220670367785126961784195813871487001342781594777682315894020610693093500895720365103535969154891782087392155927275710570732371936163080382996687788324762407159565963292018616063812825472242336319419939071698108933608815321067434226539004967526541786538020299826380108170613196206939722490815324794124590101166392057178880415191739501829682421922373260229709728435746893922703544319133065500793317062426258790555014754509807749375086846831883280864026758407068531061968872688630985571473469244881858173363302581263320681282539959987604776569848101417824285455407812358928059748026603105175720904056604287148008099883132923777421176868334381148438471625218496596055777180161422730251650190433910094544937110193277922359623295702112239949766475361793810898502746735213875610369488665506433800297463856747668981514878445890696264139475880880170239140247597431620430483880237919297725531426632855431668854578978466393653815982042003994832217347346927242613790055278136939889650091837364306772313278026251660735182561005350195291337260826656832897908776416221233891067911687333572477174806171031194500056498896278518631880675241691202161551411941969116676710637918451233853604339274076780907922896111511112806905055461512788726881019212141729924463761413816383104944108049024708034349280573267034792316642074437090120140392908650097886685791897696249022733514245414238734783208351208975106771916406797766356286412356867090580331212315934075335001087755207655837927884558243459096483249344671332849737456339159099009158250630325875020123137341520751138002979895612049870003502385710093857955446404455341509712899979894879993710750543904481944381272297841637341882275243764347565043586296768712605842188388826009737600786193264196107487338198659396091561689620299248378526570967402104811295484603072334937233854809382784118648552582391174079814747481980733878352938281486272781856723973506324549693474592758816586909817528814630922099336782123523242367186464892372273291283324952783494167260052844759245611678058151116504833992273638739160084271759088825862708874250592130796006506449861451991842536392669362109212638526253165649208460998100485731381579881108964722879322913188667702819667230325566103436524228083773559754769612449396993593036607739997942116201000720494729560734922276111602586468233037212330408555295413527171026166624068001548278734919213587350675427833279691913823336279426693362436678869836192508348607913363761190357838454459603081033741547044091849588705180464738170249831795636189286606883627524037420080246046627712673780595636350186465837537005039947601457545079980321937703420414796044728452474002083922842943032907330875548364254196359282551983738232157518137212942916351933542699632194431065936988833530411596269748508761288227437132586802578053261659240434524774244562919838599619313207392800961061731379737761265697861495469942095985541974881174686139157666322327077350562943435857010132749476703122899754462425597386020760401613881703348359110736882899629112201248088415677234874791339092263433527797973270585001766978867331467445079482623157000734284197942528992129066679181492699887672513300858668774794366674810993434207876046321260886757883792947695762678250039184652952131804121275229773135060818811678432992242342790388140608949040391542889571839132318893701693411601250186166570557149544250423184127385592192672277400825614025587850298267518835510484707126432256513811895417689934117608482880438213106674980056864240901859315446486988520522421608382622494886753757474717576507705811402638791381492209684509525822244848480659014589157695785517699979394239992376389205486868632623714304068176879936949648174791744453906181374385058754788319180636051050911677093933086953134956588539988235433844410199808903224846873129503161292510863694129046240577245638654162462157195301466507203410339097840936372352898212814002874835306575824789357812593505578906923364847836377625760878391552214815387763514095987659965918878506540921707273275320866948234574288304546430565452727744075639150666235216495295023994396274564472432372433262430301835440776010529448946623469439822104951312329562943520301299275855498592615529677845284678250438201849083445199834791072155509190307429631314882890725982322936597308873497434485708316128293107672917716425082648801948429914410859099348061759480266323831318207061399527248017175280070774214257589302623247175343001108824725004655899897044917835786024773065854286104953363265987144313874635269396601558916456953394978485046376924372441501303331092675568439804619345682675904334529596005959730092176645957702833470047912046683897301801880571860685959609498719773627752524308989286126752743765022990335347328683021244493477668197411826094205028414929706002697278952736456591685838685502776488897833371307866604934946650963739937143600790931148007225214140236362116917455624508718926579687210718849335300910256848496394059372844100610039878406896665174346693343070674882151758068455114618459168000067709591391806076993099753851142949891739627969141690259977032682656287599728854494883905666734293494286924721248449728865230851540733053303973137147061706897337637150675754742060175214984730886393128940394743468818996357601286214757125196479382803280799849864909769233031497681641911374503159791003086335260098973858131871673916495005516180758699571080760700999809605404549384697311250559140889135457571875349879677698535060866995521647729577169367890841831858410521913440874264400523602951894776559718738169112623929737756263820184203900415804874804873946361393924325185209565812071613890881748026755470488542207857645726605717298084290495686819619059127370349434623114060826722920100514043873219923703130457572153146831106623610989905732187170364520885240519730562328294385091759498777941334418452369943715169153941109016093429144953614304816893704882798919342453024968579797967229479199340100546944909413579973612621753815466871255829545283753528144390863706418920395587103788648971650940206431192610003111807753479176807939211822519618851173899286779276680613969943799268555626989754297687546809164313658463879047404860015150557773583339050140697365960292648322050638378685494304510573611211509911046152686567098638460754302129854872794580672258894696565705765141876991209021154216138192784792859006855256155408985925118576569793417262915382170123524148958730220234119251225306612158918937201833703529474141376247663965415243039253538723185003001251799302413933419217572749885507371117078939091231379498722515101918609550404379401914691714931393205034355188474187080604305789456602251191202491004240469050160119362034399590292777761087067391732526210156599918589610632609605210297017735880348694710425268932064902828748761098449057187919980034510043518855101592927087021139128652182843983816058020788429244286714703027416325179323092783356318235085567031889465480967204426574828746203995089633468516306837830279756359112287247519650544608052976353977981957017361987200412609732308586349674956279876989050868732144938178935063382827636590599096361884460027261213458174727654939394644367801137270183227168867952493974033881653896194393938079718658018546285482104377648799365430643262565684122694978575725692876034500856976615398542755090028574715500551364399628956538385285522851675398081753970729121019602811754263079378276379077200126970233720706892186169568400807663160672065498230116311269880539233190493449764829260099100030361940241616214717329758185196689593873800222817697157942517852504824093664863436172478002164344062909309076273860297764615784739297489132995552496233577752577367672322104357882382517755928036967767486826569809427067103959624140006224564046480004315743639740208928687219850518994392483521168437836939012050104339768784155132163423394510205516245252107394784338408352988501187309124899486811287742196204309591745749943033318345766303261709545688026751439999652902291813054989233237257393083823225352845478230989930840778825385911341173664163426705584157997488891423226971756311980936201146515227104462123567257493562818217208565053859220069399993695951679432031128571442155458181771916592305261689865596857483746500691642765801347098247443761850484281804995167378558135906252374799344523671988182364004280290741375714340420312411841692447977415817844634895631938542975182911377652747975470227032840949083629510202832703898918586453098094806018651895547362948705279018024959972002625906746085344975166359888414456881227316698768099521872412104980094594207236139435369293961770807356779619989018730621062069533523918214983132647861664970703929289673103978003881078312605917481218352973554432009485101640111489410963211359497416820856214100988173947463322218660929000548179748579585656831693697885518212791518287688570580415473521794922535462542976619157620871267436540706533616748140948484870904434439667918599996783703684701125666847675094084397346342020713994983152753439376000922654909333811121870523890684270883307373568164856445050179987543926210048791145732771825640661933662476480482126061401961568039156681997114355580524609696991576750900944723564316049503986995458558308011374195423372156729484140722748061737319947891172769975624892117814930519379743890280522203453811652998727850110369084656698709072788315822449481806371924062669805418836044788714390765290406917283148826006965809368471327445789599901658699081836622827936436961876813054706796067221596827357657631007355299484231660506112261389213374883495400999707817928835203744610340988999353888994592362432236074126676276038017719577313163790882849215012811714612942784036443963756597161229109706914400284168243200337395806688725369198770616251779314213091395267275066923580635304346681411304397161212604711246703530796919388890136571487488404384189588399382874833764342707639574629965663818426239819746746351710588485903048421721371098999216824827953447003067466634850206453048401912417776753595954582383974595224840056422025913358416790308810504890904393570245289686674374752612432109416580851365875216456156056068481741265108985146319738561234359065288404243809556685558392092158509778021274680652501268469540121574243583755255841874533220784168543407027264404687774729252706020947388015490855923900172267670650487324386150994133183855324057919709487046613037848176684168039161475991601141150379901043567461205902404690471901761608080419068961224599796406005696467433841763312264918429758743072173784490115687064683879138363707468336259750671593603148876147881856433122125467152154839449700581898148793236950277709949498657372152579283308909810311407289957699936237164899576861057637732057795522206780508823278439469886290114894320334702854436181321247967184486139598042377536019698680990747203685368388615099596078305382745328624839589783522406009954626618620429942854477392968815080339946971851263900999786007112153291985712211197697881496144342501152567568454495186135237983639357769106792294317033790598470692688832233107891826131226596251878133720217539984336377884336007147523526363591928392332982548251332560946642953263335299210965336801151235030393683386839821024032109669928772302101150713172005668156999393532823632825306980550768812115155060695256756568200533404846253990630812516476535968436700093496843508820406956129257014060652965056945129879234268585708112478873654767400784152336595038918725127405120724657854699310012263668020317273487351039141667879297227072381200520643078174273931920090615112021796293260683777096587696130742060644003173978556459855218288378504789075310485001384686493613060400918554447735075277726616925888210031851877709652739634961771368711827313958300806711710034760905777162040756221662919907531204935755885324487679522448476296798327092306627978648183510423717161355266654495808077628025435496002350300133611877485192967359147190771192958064729423394997806456474527765871120094381039177515033488051417476502738846744004956333155496015572152120623641645461351056820190180183304588116503777373954867038065915387701814040012458502632486385079782320602217813154689866208643116568129347793478557805575828012983198172368088764540461396828354820709959056533467609938495437248873460095028996469367584632992518670316370804953434541947768987981072455237945563191644537961835744530564003300228706528976938091399838783760546690981282460128071153594567156814017744700041721784718764070849047238822568274108099979106314853786971177916458285664499939486417823460969021960297171083494675128228039741014061810925520881929742354423313297975525461839032756794700649196650923892167298799490643562329372198469646823116947436812704437655408751266092958428908427667397394789637120942954309414030625308036000568095226340958613487196868474303830512539620519353817476784358346504344779380983468663214455833494965176756287186398704784052939898045131317528169645781307419582915449345870061004664119685545097772069597491534751852220545934988290518348846294159999744819547922072616039449661127100155884041443784063574663488661658885580067275671922861219311014271460027547294836898472467595507215443118580496511591017768239562496006706130222200592045938223319354969224904008158619578517253713573957819438130724465484892880763890842364792562277383015963151037684054866406684371770088380546258532797640218433910368101681178808958599883683930196844364389822255362000358671590921421948016099746013397850442895416715245345248704769967310164215769918594985378959612336468883524630415519548963683331083978842236344534081704076630896353020269400131430434496838168679961837822999082791258818825349103033177624843513433297599919638543795697732028990681570675046510448579235339042506265101441121613406113461802861040295415703026939951443636316044480785458888028201519633732828416835745579583127312886001487674128759983780562783833028125913219980028795847285397541260163096721973716446092212951138024617912761927103168235403468260888686880736685243618578737378435978993781345285686119034552537647804062962104621210876383117638231101184606978612682183815103209272928987197395611968257349362126926717799346414873488327185630534403186336636270620646390234651543269595634366731229808277674620859765634273341074785992016219437095045221917438138830865134607214922203835637019137469649635266194294221031658766906683494275979105266572207657841424580433987725837520890034365030459805379564343001538126850178750571180647069904402337557056962403150680843054582449873739296448305065107377520297345309148570008339452071319947521234532964579580190761283740440615973361241894277614025088523919017242905858977892165157846121050476371292142263218643448443005899810308115100377663980116250823310404154516253028493028376954028707534489460483523441233046571566882176690404513814110787451959311073019939834887976124674525416606168729035391946668786732960806824355444464843219103413609617499131863153404688795791707466889959334400497058936523662550069003823970459395262049934220816185738818224276700156648448538054422320346881242701267231741429330487717527942719276602543075442105272287635029903507256873415143466772044166457208440280549409470591315057988930604072911315187967261044289780534329115564868301657690106629121880946067246539774717123138489328266369922900451981585900469416245718883617380868062563651841436909782965162615110400849916123313749803558209912801154547620674541069966231435700418722990563977086142427385187158405404687046282147195448126836093684585538778464853846012229126661260411237445486585636447853630986745430824137220969331967237565547702906776081109221220146223222339940736070766275495878056096227966604960338853323605599662380296798719897244436365638305555637042805314349625637907337151116917277057380032319334641562009803337509104080048995865843332436175860479560964885612834286363567673615448936853545746029342644027545919897486298146079252312883324326741995974775596143556656659337316081479282180197851833310586151778063260559170552853412755992788612572482975210263307119247620087654211874418998912474837374823070167065455294218300864975812000471899404375665682041051583887126577244107717992771034379072154898972401976699277431382434631678384583060161024517176323641860335589676838130038775626342600200388779698698815941483659280752734237912577323891618446440289130370339615917928838904347656827145912595854109272233900728411985362181063408516015305213310532151154341564411864375694130916615376138873434938370316231970784972073638021539259948880040429815422509056872711197706684341944525995514505128729371322157952500411825319782624848545642188009198841559675457025318551112603335616040768102428542815614867869525091938481420261148398664131680616024136574319008571501861430333269030146251130334288000877111152749890278142429610555456412527826917428406281828568931457523858535574814789199233940227049184439719773852391456192308626635826084377993300994450320115009917538113795977138178713657879820548011882897233436389412067170096596751436000062331598671281305038067641029676350364184611461329978854895653343919976779564769332280345996259603461991864887686064635956014378910236848406299209745534046224484933348783527377980079022977478734266320010835372913248357442770556866968615045782138190330802711251557689762708784752501333738188699987917738908682547223081788808872422612117315495065891854086640112405103743557327669801528208978781798111063376706945610363591690183940059414962883901451539784162513892917146013522012252067182530854753366825567065042221320496842314287197205008265601756312478108482605044840839177816344312889187005797144257743434709564598391234376624703930157186419576930221743258846417336836703913233096038773116535165800111268321589141744840346442906377836516681420637719998425090727713536206707189681131503753890769639213746479079342225232034792413208226436186910606329423190015644150652751833714543260514846111706954741177448887417523073884747145635240443632037912362556915279851062572375195927393849908402228817603252522695732188328665438546153012224912872995914220485671926468642091333618693808703308524531111688356822461227690653852932627071570012589633925330530859519387796070897294401017330214604070192889091509121128048893471336082983524243584440637540867946110093146719580712507716805899030286119944584880979511081830603889669735180458589927235577066755558972237790645630868690077528256921441368545334781038882239017170795214018049133093144089024407125733772841778435905418222744711791387373668259413498348158834022335358298014294283674676370109836161442987984957224770151465899260884496762961923361956269549359024378118963158522298765137847103930255431873583789265374569998672722423126083125739664685508783399798831755900458874514340239566082190526480711991242947460141672606330776523968280967461762303434113004305010013676090751744197283137031232419986305594220413819614508982822172314169421964765626445937113316754194811377061847858957985247935321942356818449989309340993441990580136443819388170497652979041129943548498809542701169888232055613818869189854564682354041175843688444190260775191665082481261158166792653903305262691757122003878822150519840358754984492939387423086436012725796822139171307144390363652792834502634953839885915566394249182966204914326428194526041322957409772165983251981495739534731278957414399930525760011036255369972703737337035703286008850262635862972922301861334718546543317672353579224337641185130508458188324389426871306437278904017869319117417922930528130101731166861036434619146185020021853878459067379842375407308447228618179519185714580435868375536124599588722155837798583900541119629774855687093932139180838331735573856606335115271006358945267019893386178181943129353019655425940751157499410501108055402222307853453029354944177576938409893271445684026749796517378160390700498630057697579870184748707907718278312310958695409052792985180831093385125981865917453237738831154159030981231706729823131404946524663136700199266390973982225377238091335483659625639397734372673962103389079023053899228490404324476739700329033282463946737874828505725861883909137983268230493630607760337593473209803675630466061915560173757801399451487778016484315950528742099140306777946227377648191712369083464171687226946059686666120709480993297794334871330577118026188065182285561144402481735609321763770591824528174003111744592400305070244582113379248144765714284872726911828105401118161303375750899602037626150846940742749871012940157428155119224105124885920255147475179803519169680305909113839400301042954489455975337661304347821049039227870198622570116665693592151374786114721759118000027953860460554743842515942331178647061940997481606344679527492901407159937043455880805475941316909791233327951331453391928327731188228282179213731934155880206988028752328539488588655588451937391152049347194839898760075939365192389564153057060735781529896738534303652153462396464952527552294368202295922817284961575508099730142871582727786620540809112088098185375071697326966868461311411958368547562663038245974236034229496690454957085477458874751763342079831459900557357743109462423454118302692244621259857706439805760879067085092924468686467743125362100503020955323581932784818434383305369268449318121969453387597260568273066437106215111039909221812211943627535964690499973655077222239314511119220574780792108148187538562939792646744606803865596421059714138541036484512300632436233317301249645069223198794098879338526033030015384751866058968645518919608928170396903556122945205162569912212472270090182166585130632498239221588382024673186951765677739975474055108876291691814902128778813175677212525695576804376324295502449504010368919307400802692046370419729423332115204372879858597748843092121378721990980794018700026474504985984094569992531574180410652138977566169074378633207255603146471868228700660998477748682978970703113985619571507811382938384377432733291475728311093489396704262856483896882386284775462929403680253676968123527795672520197367034254791703245886774136816696289609633856356512509727150838862460113654123813775205742837830854676723947317915217709890643853753377721842254401606984873256938594724552282119014637341843774728764719838309042441471640707795946947359675967054082297057465210499224158580228559399140689787203896118935714017060165567296237665971400445408998605609952422368263863103855817181121351423039296989811773372721097454319469218021900638151907472911480726327372928523118756556178917725841408498178570025603870499719098541251417378767844640282525079040301013888907037442548581353371832199491302866834853003525454828440961505591358716429463486975796695473296946169115722535084426789320858982043484135092994171242806134634154130746288344641603827809905472085769533006889067713371852850919880543001482267305925564677648349008618621121769312339222754437643370114022929993967420791791187583943855457806471660739873945666952615608771642422478219501787203064892737546004866491862360193304026657117858949489086116730099812613437957797051567220677874690042588823107397287455868869227366824290670525307199734464789518725787894886874111968934356083987832218394830060891689491782720243087085277724735133307704560930219117792209194378332067287329324888564282103173690356975969112552743050208517418725791333358574965407322456993626069905114966452017904076795206207131675689734341755874469190880049403740726319248039794782104441074239604111294275991956706674290955505385051395976719376626731640825998657157322035453452857529509918399302687177843554169831169467412835272294247880199384730973717170395368514310852794885714621871863897666218428915223879590668121836262015320872059590902220339455741722148882234277533350297385261095285243356913765946057468001191921421089511920907666079973792260647749491248404018548824224432741579724868973184985497600052716986347975349160807306339048795595040004026800572867790485361888041293010355758319767155226774764870986092682610895890479840098337912833755066214177410981587152299853485411313695040575730730650162446261755776092912803050337831627928995753499103520687099238717054808540823657014067400078944693172725887765353976386869574894313426264887392709699007656219321378654865029078123157534569492869315685194435805997036579241723756268506882089377917455000471798525876196177250760775487326314996500245424038869776537465464076420127482347267347348341977321163484113198509750806775501095703025076932918720418076118011924050726278072427704353063322145429823273313652690027759878127527806411715061999822719386454409190610413045429397032553631853941651101630545205565972742330912893590401680296926443526455432378205534019948428147382473188092479413189715581670317410475017708492385445493305173171269435946802798896322042190470202059615036840210160787466881477953891453695867114408053620044026156619350175070824807423724375816284047555677865877726820977527298338687299420886286994501339723542473692435479864744073928600283099559956230681588881033077221333273070986276559769030468032889802413479286229235049387466548058347348368436075313061624647630238923956026654804923615420522226150566627579966578060838320586269370231747687764680328264064446030919595001700293016457840246299679206159897202352626058960491645738795714023383705813604556482327550803380725113531441977763785844091256111836186290317791340507105729485408492500119002633274773804952875831753508458630055863190130615072128819118044748532879133823643070837067154044992642959066617900420798619106474769209368613322014964003757560775402619712789976417730108498427411214766171478303403522079081679201195249841529291435149650083921297493417511903038204402371442751925316153225751212672567809853195590875665909417451169819993449766274612687433654250176484029942302325124476859581234228715686060708537570033589552965589367589042614578413367779638054457019257507993610813294335249759398347991653353456531478043477157066262382404009032739347959416780080908261671468957434120045701298856911768256709892182386378564645383258332678165786354177481519149010375531958341751144011700858493383739188524124870202833518169546343782611182276026389449163454724959004500311118966734573135647167406872165908178698209326502085485820965103588448445927480901588317779212311587653314157089759271982643593162731524753717016068370689040668653177154905688530409839116002535114008667804420729573955771988832796773049613726440608088160532337669847007610611486702454589858773086928356978667522323035461370000582444384672572901224786732746658619687515845945858231979912383006833119629527786646336952940981030097771473932855468974597992311729601103192767363210030830705707581735234415354504056219715514704436662035529208136627114956637128900416051170092962923444175155989681254687877502756173563962156823295828079465069290527412819735362146626066753206785346429272049682110419887254290437540385162686211012693195722904425882174077061231970520556624076964931150372921657609359326677396094752524956272545244307971877210670158464471495058848468374558898987702628832911025113700101666433935121438850519236031891946962295423711857782614792742547267939862736091545525217102541555354273013410173964707641314550355467435140449083039927429712493641575440196167527313048746734452624117752881514393421327553295368725168275499517518523870230856529314848249962804755221013197541402640819228543297196852586335327327042014153126052522889223644667100097281835495129707318739122736979342764964334625423559900271081757080472339309658575081001538316285309101717298191896515052482804549486037704637097255314180586735120733972249774517967567533575683591972926051834691742589616391828324918924907020574672390835454102757768348610469612345802023048238311918685459503923599672029089628641175790339266703661420971109571741417621563091509300346035083706792005567272296191087909385932648547314557148192089581491542411737923632207448400954586843072173139553420369148628418348050764055302437900798058959506063872303664495030480033300694858070022235919787816830090180947405999871894976597384460237233474794295372414806554132984299697295337239749615275471358942132698797889544810355851214172166481898625494253224727541777046805476778516479389562835706114778158628514952189567280869177031225216330326337698951716207112359888241587078900716673329108592047633339091745359815506652289001211175400506413059152295440935784247543700185082082438791701112481531036289525536055747024620826688067584212536920078535721362827091892281195712737764644156200876702984953846492810257985542665262394725062263675620971836377216192972853234006325922500665685709387921104385499178270337771010769977064113494462845172383285188929779153329510384344343835141541520606555540382702180339421250195990973574215794275110206699746921292170308087410934476796044099635807145130844575925132380249812017267667096937436635439355011139023567345313131259292924068934696415846823827178832708771072898679485839204283316965313591658370627882937359535006713522190570855636886881755038054814372901568328572811253830986850665274948010996378404137576019011909220088598606882960037292825788987776604413760024208172311046359970760748586145142972104425161526678016394880367037033865227257966911749271963543547666141597622163704011613784619046777402416693960352229876591020061740293782846969257505495550543371621189179909394607672668848672221660143508643244697089114848864288727985194228141075856193925498431013808370006279796568254533265110034313064144342352523351716029616256521525082496493092159667692963212277710344646239841589643049861784288296030160255268723664596634378489394037476892942117987464869595354814381299051455352146257867379537851015382214711918330806778202238405124127213803839391147474874145648001066066109951795851401054640314304226540959702017663320652519139372070119450855903832288684776562376379132144982566786992481286988841794647713250878272922023480887383622794989487390863797825006928954715735899701347769248480794564263719556881452773088172805683815275344084527942864937703445870909674305239395342620055823387086881298371494324231758787388680812963146653872171664030652159074742249144515151900133419989608621350082340028698022545570970590060162247478176907848793128284295792153606708511181949184291539622654139956091918239893669703783577043259731766470108747477694813893291602492031775010628304602833241004320672286876280626790874264924194108262159806748110477268783488382503564338795683495472962745570708690070770477301694951547629344678558315066156641266849758782470074199422366777350397782453683686644011252479798540315295673242556087602656936810935465885297317599412618566202544250481876419099400096211767722755594097991511157423990508265333839547573158000349871764435646793495259766902560439832870221098595050248459575265807320034167085970443792466079936318372079071322028173955426006366306441348498604876336034653865862631150007457102451645238103529845356243926278233666034973736107996454693665227416913230951966948686734510992686402958632744241067234571025652577988253088115278135332429327300134445242987575643171055434813695782068632110796751691224955798435421381711127510816470564430647650269844226465903562142124021411082320212073706315209643023509308837941407418515149789011673519511399683007479738159599378257799575078177395479583918317101993786180049933193892929569966451989613187315037085544279372171157476945754339872339779889949341016654464625412517942475457409381639243547918324496405103562844812728766705020624578075666582160929077164358026313563239662426900902964720835215262024887025967213381010731370605438620168256083691317097117964824424513894626157443733776076202656983373382951558534880913824634182256606393385486724734877100067079429251032186191767824101812608245003118694203663963829778770803762864928683363709178308751952449946791167720128654360456371627730739652066121747136863192954788939035354482034032967714293394215968982164191533094529622700885477389754745964333936533685748514192705808170943577356310755344128801524474007741598300905128293003168596276804282979544703760812592448091115749018379861568366675045378864454088498083392572654175809264689683079874382142865185530077332292116905680792741493092180725163801372129639923814632405119914575417915605022531108415441775244821560768296867538492896242659119907480898690535330484523304922791254121799578832560798651905355292514099005227405897735305739084713847248552944187677905822232333610822607066556693881168013888482342198910402792271967294822553548446159094519795188488724053154847287208765975671219984515233410305406193577864368239530229378094824167679495163535001156556830172812343863955442596539544775258849673150339024307507094969428754630604701643065959629375051610342144389047817563133616892269916964081900889447916222260047049764903506236947768084984927707839617983475794850834490618723996007401843650015447005999810920536765343628811866740331730910302947245967710263972604229915841458819490793119042788864733984075401832785573101680046077327512929959191466151881741290756878878392876630284312354263624622504208919339913686468581036025405315527399648063845220778430568525996628720813089662313656971067233056045541176372970702638905274971981123727608631355278725884618376681817075776505482409370453899139878447590475687093528518965550225980566598406564777791504347136095494566287750933012735377795029267651500470798763891040572118135795903750180596733876526550492981797970206906755777466186930176777385850927127275721963856752277731307455432443507612227295498262386920980254100388853066253387122205330869087838375212580842143553384466065023081778708700620798520509002835186726945885116051171745684617715820318130287607157793909119329205051210249760444650978557818382537988280273724568908584005724447524769285840740547434043058407716525110652170146486295409516034117431618617154787151441684529086270342141361185688678801649716205981293977598046731486742588302937156132137001571824460455305409662330459480575842380235933352006452009207677034456569981156039082908445307096299306732598156279169085308657478612303209626634311015309972679768821681232973669259614311549174574218434531955014228711820662183153521005151957948484486225160559427659176296954369722804282060619958073982681109601299641405979706423100586734810453535688914791073168004562824738177252666373622659113133320397759342092675164532851739772944890152393422449297554329558316650489637374492321280630756711846972533143413271507640988947449431873240919593367492366124978045961115718577216583382435009751034080934063104144915957039073484580224054602960314311221049502694589919660380508167725078831177770350729210318071765875648716690062508454898505182679102396593076193439549915450015019359014232700307768140768676302174561912740746745158060258141233946461414908887775986268556171018228946726887305616268687192497577460795149960640969946588567127078283362093130497977415350293409241375615307134310006798335238528162916626777664183611714065586282524190467381461789935759815626631810639816403554938617902096545041077195999010463588594116799023680132918401815578560070809874871509135980531684267921798521501915058109554801193930079915920293890152612754091942407801462684208603222444566022423875509422632157394418850989143589613309812666507867957038478561089393006907891175448942647166617908623556927244686432919458854812671162730283839436591425533509903803893229006051658965614925098619788242755155922882153730059293451416664276410439985085413705755809554035475755198681720845475457008523276497809526513159049608013611111677205825877825433750543584911318179231356138464715048267912821023149410472814872086435931506380137825230030554978727392726959267449940727620385850857879926273830467980654542516619881425520319114242910345302905449804237053620632663504358166645132564776270884514939894618573840397702839698917798989213626426665718157507722774979626952697434712698895269846493066699121959634902599355068787901702481302137406627385187735657540064065472212642004300941375629181190096871563086007533227479421695658994460374378828954800183693086142696802645540663327652070287869204472362552163243630728677494323054662358605859796536426767196365033810427748511244154410588717900251081289991558552779555408663877763206942827672132240621801896248222563480177231698916758277298057937672050148948548367703531703166992712880447808580517821977438324534368138781726740340947400725701864643007226234194778445733159376835092766147497459563242096494825693041766004181335044563649304255864321204979095580956317390100361703141074022911937042513398827621528966875659407060680141519632624801335926113453639634989077742248334284016429741587833921493564177159997671342160468672827463111835299908333529432034601456507447211273523060455169343267374062352052032921587984309796993480669475374562447316484687154781542216968611106289855173496417625520713359681244059407027521407889676908817737164668049876172731581970566028377559871528215202105328896779293013882495515684866365406591614543898892396371923298820206656218414624811729652409663110373097551284088108496311571412112839529278671814366515441764854305996818674078516044462545373520012530393949714209641314848273337191154784963140846934682018752096520119069025623881867131136075288162655772583500660849656927418877745752587358620415431122478662973513666117717085347275402898559267815098334255498647427172163314124037263099992467613727992368738300781550099986031297064725726148956867947594880562855166460745586065298575994029202918542471758827778250614945609223301770140487987361168180194834155408223017708135456686812672563089892859093372840049514176753028883343807114605958474303218720365293176831295958144751416514069711348998951176119438454501722440052046623203954913932395055664114816795839234498027095121119752578143570190632211017757868108087724500574749732787524840091246434534964434508822887495912222049460699058654121201200218012653731204505700011821411015334208648198042780968334684114601737607558178455051667525761585406313319615958542493542433593177192028000959590063740962517940660306180432866934765027707565234323640448309994426419258494288326522028612298359636867039721052282195759899221686077908197795634761029118613709848389599289566422032711411107254609844230542022934406081916483901861831712626670811611463831610434621323123140841592390752498637508812307062030350311490318093997262868801702377614467744250438585651181930415241287491388787550670561612308294415550232696981492154869065908511089254286379743082585863236473010643232231123882270556453146772518977988906202510528254933723148846974522443186229052005075610673515837574275077064215882277623128023196268563001008775003623856578255212626083888801744281656030962909518475429119361560595766568959429978915522134782692682842592468989281498112014408279056956267309071443076339077265834515117146340671520219157603434349819662310802880554958430691160052190296215490176877956007903388718507793736465833117809794065943789538590429193724846235284657286937879028693732393639540117029576539088275264165491438955395586635240721571163996804752664938081281704954040150411244561167929773341437771318527171279890583976466262465390109147891234927625074443349890192048228896562678298692069867230536248717025207111562327944093059032678449414861940707616646461637633615685440250188743409205078211241661737364610151342762986049597910671309132947722414264689663042048897610380814690019516416214165494999410197291786364927231513652613331488079084117037939408627960924904462225941525082010860157927226347928172220199933175507851377927972302262110664761021279451242338063123901537470437506703235900516210225863298750780645334478740099564143475961978019172218615870303086956188804294567756244815195825902594427662690259156139405001554536364626927161307864943959361504104995118074055966209320987629814656757877343493106346566233817360886183269408172049079453770608179013868472252016819134917474308749211244081438808443255472317389009975353685678870358073964653740121592839366314981307672493246810846496052191275715903345181185553996136787050753364297624092339643517880525456394064026970096783181569218929701654357572774880485355435718355359925046376341380299040597880443918958681758463804345646063371945940712845502130296893107012052021454073395301347423534633421517130422061988226685172962364996314794580469610144304059375645458160272393618209006591990383871353834263683717900562373735913554494022206868394917951287044272055643657326388194569719635793146324408774084620978989661104380141302322856961434689426570513640713932043176761560010335520995069515740212554054208935113968876828929294550618429052433159546682962186781243113629851873354230250500905451973048432671037140483025585111679059661388593168726908103336978549841099085917779866533442160336368255616100288074498981214393645324031205591622166637168703155198007685544128570357502243742424363314904231025418442742196334298924751710367699987339431222581204760689842520481091321809569496039832229795089403416518237053551855452566578329103257831738381069346383748741321244202825551021651718756402754159322492680674996979461132172218031207996607122531110906496886039311929606115350759803462361772385673294138340120036854478854834036897099213637616690454482809095824677664601252443226646575508517094856805223474026213444336056572813147558899417452166632042246547299147034302677101392634594350283604096604489416876812335667642151034340519601020665489308981245180412025590061044596102793346132154309721301210731189793331008080520964673815345968290966537732666208709480505837508931109491830120489916003145333915782250986128204192563394707246431457313993103851842532220785998868587668391640104186390216911396340636398714587742319355875888035189523853626107001449139867232932084974939436213796791801406495414263053817814899671067330603333505171539360780051191972032724205888306446943095937488453791648262922991031418031571517770112325492084226497594182633926789524850272620249362202140173541085035313650572008361374987485733877897935827533664540975631387185734953396953014540056352108446899514999699834972853418076457967387345509930565889408588775195754167074968596607048959012354934808154519934389981465723217471875405098302188917426190015110309259038232004956599257503064160945440628867357207525914411482580325120269592182142634650520401045351866763812312649359896049393415349244830674601427900494256888264663274714814428299899465066274745061416932763611694075292287932582343376817669809685336836882957264585326315090307055284052261396438851325939267855933622692990542908313406038902441350907481552801352161310208390539317628667057871901199461137833438751727697480541439269523135957309791975101304739858271790116797625454998233387176918620493829781746511595329305420965519611226610511860679250348191845941148356843285241641998181293387417553635344948274016427190667186207494419342097415711278936051788436245967833845834300548795415427878702960236783072548237616333708732715795497936892012182105196012354782979517037149327854747930575319884559812649145068827482022361187473582447222163313632185632500542042451194522478507188830487044317613559493928134758901368311824658187918345487043087599030485627471936226684701961569889575989468682607410485046564762805631694341387774797537432501204167574770520118478792273047193760319354975575329528377463172152943707882631744459318849864644575272758881700008223797885109128624418507787712295682361702459780301560632816937326739048052375321629658363032653689819100085953229874202528372987426954313446183806197811946690908989343755013975219697850134062807835225999224733233849153770358642395552700662110866817911667877532530124427469065129123364511070676379034526909021180037246140012434229807260738979282677298065950168956259133420894104499237506254816077668820889374668552203299508425105154654662035526471797696321975334620232687210273580743751721042137926480401520916806383020076398058538399303569973758995789835491946989230156534650066445535121654845115493448556709547562245811203155072191870775932557820471685789121591179010635508302101722744441154941832657100268760526022245342710824802060707155859773803084001174503386172717549802080350570191342106848781816264466359897314256082745920598159893178809144100856756160940011199699651802675728621297722173475947049192008120012813819762729295087191037578905142853617866454836924498968868757981088590287843642840519336959621389826275276712119069582169732535098964451073998046901976619895587516255188669062854569301955744108181672011217913346649756620270474574918564649870884363750421205776097613491709517122493787105033768686631831311220050680959214562670133752135298747489713996111200286773456341076711268526985906911444329842643300182447041727108509976258996721902356291199327582183320312014281312494162100054328873075528825151339185251293878647122861966278862221667392618320717195743730541667559288370465015172726944645591452169283320284592342917059396919326828723671238674906773691318906545515044134658821901766630117382988910696899436764038764572182453243539615703118677093888449091119114257580608000777304308799682583928329124117017195368356964617899959258047036139667173431617895321372632459240453928406851727098000781473663982172314460786855564925746212312496200689552792383386419533269400620202138974755023038533689153435669886311564563579622023464652791420943691068459966262368505197547909910600325972226662900623074674674431368142625008444794248971319611713791887411988931333507504679427037876817129857612561846438998648612984683959619624172224820069472695353849944225154519176567261172675318026921591290513521675286423852567743216649512056325208576498335482564190874679918793807372823188939388789730703799009952962156820159612606317621866147978356647872215973000359765653145800903211786604954848653324593840020727964065077988690482226392422919730943011774214264304683672521660740276289684492454020336397080718684476022620553324762095252942458337412350901760632009493511437200374013445902098324644308529240499003006344197316964724046167416986602838354193657195936258345510949181025920883379909881067964689261912579625670075577722504328676651118764923111493198476805732095240824413230061447093328959457750586858117850954793476582511963448827439080807486486017990457213374755330797316511162958995946917565026500031840235487388196915378891960268418611510686900996865393492815114539423666201904852761470405275717674419452724291633662766030474465385639055319323525887771045980787274689441338858295803558306324475963998518684351375154551042494604593861220014746817101361221281911955573805348364746640986097789787554704419750590075599031646453524034809816237119345425722046589478833140826486642003830189162420651570036606333788224166644363756242504002912696885071359539405162941872308992041903245759578737027248585806380497785540616217611006404758027102129810668078840733214536595098025748839233764083344080805097041001964160456313723421836236968953142361836730533781583704276345841676371628434143074308283752821700087824063300289844700484796429020155612040474788043366730381813476096894892740983516748556890943104118475511027909089635130333863561011970981083265863894400700797825884306901927046639178030659582366566706764225462067122784525229020858736791633985039950784214426621759301158714737367153397717885204622207090514821578129049170315265982210664829539476933844505670626575273279459934501573078074060943076763443961850949353731133352106698916306439201865364719731124825508725374347435453276677805525325946951924240686430667713447944238369774741867704086408296691266394104430979382749407268053782411791077719607189181921108527897864210366961137002173829061530089073954076499650334653662992729636947575941186247916328629079296729671976846080972928014371582792405367271110747506809158861782904110530560448600605262650660866672512032841104320005136110700628572012890309387587904597792732222378666379044172192628648952060268776389299118744769451991851486993827327771870497512150991743976930101279170118911689990435474699469672382507143005692067380379361512244533607261570953535513851978030790143017691419433020570259229385692543304085606745110525332175164092607779490961575237144851358558478959477726954257576535343390187104727523423106843830192219245159172369590725032414631338749055160399899189980809129124099323772462471209463850587952853448417027256765975049699143586504348650438142991744322709837612146700939351303578093486907373524493992785294118934521355232408829609444823671535142201728825494090914634937783389211643289774938146453724173964063615749126380631697526684661833415201680978420142017203688630277345508189908881378080407641338433574172363192860219784042247902692405472484522170878322077465191364716963807281634392191363409911774187189284068377962714529336213018847321259623165811711023971204904935646698358649854687878657610683415701509611768538980572605447295637820477976289815090002839926718844140697553268068446694826318245019108867881051042613450724627092427778114168279111462418587746486369566629007815072346252346215583277334244957280612736567038246071940271996257014669590734431681121254890358623028212969186213923740973483763397830043277553960359606015932624748341531294171119249429970729375904394235010313096734000073747491301122908077607501063431745902787078713282450001782903563874838683341124544371742652588055621284407104393614577217740580398310985577828981358903868304023412301528095971748372658532761222340944936148490424093273766714626611091398721367299983789502575494350676605127782250507699312581169624856716523310291735333268424290278700364285485565324464231054471941264653450759832423927350469319168302631328943706572481179533595848964754439643712350930170407833625014473542439321836073229636234763495026115177479796680243469113234842199320911510942572752517601261024523288121240664408161396626449314656272047091515313199916247496235010564468227424205297988184083446089956440470468149523602119733285484200015570695937693540999822244043546085648589264451894451573166688887660876739139105632738609652569447154032466763431925096234099589401222753195273987450428336668918193726312527027276347309753986334869678500190797852379127490269945792419720745193850254154223124080411198927515743040589244210814296649302129982746676999662245274306734810830489617520356142538258418122728156819204896869777366163699656343708068188843923159485979837383826707992902391766590719585450713139202248382002592483628445641712878990562585586905202682496881602886763357436344170602017056912237434137507337952329797858984496753986133715482829622911764558473554288585397256999056802594895289579072177548821666929109772590329760492585575466096628051441850090983009029941982887961439789694261788499535438709648836946764828368511226009430734046878542481808132428507301825707824276305059866047163211940909903102844630018741433092208555599105218394971584577899241741958186805218798656028819416139480580096205194453188571030502351965960133344741491686419467973055620664622450436927997634363719149672902682587463042496700730618552207510627700467605682716534456844982594001106662839746409388808059745035118605212077101163912640192021269683758429489684503501040934940667314000214474699561393605490011808142835589041158738141812889143925016712850267366467517428070024570920794520697514342868273055013292196250547389021233480202426004005863695572315337612162740164639487535757859230946896071300839193074775388254728210838220395705854489762567210663446707572605257317452319668019630091048754059898468118751623830678706229430368116494683096204548942288485533263183950949390274162425875877303321187080666872283953620083701585908994303668579055345507061896202798098240612449997150407709592664080703533682081568508257175395049886588776412703539938456659227553255039133821996899920112055298960234605730970456475077743568489054355328074822328622326419078610722159665875479561654985536851270645504597354731964841602951975546255688479584922511701134731966468829469161152133635652305767674249431520174226980651556891853040350056454536019394844557660234548594044207698306406552851835435897700770067830258304562010339153733347939145850429275323820489177516615053290491816449944477275277820595650615275999492867873726137775630036943156756449014589351376045270632062512254473351026161434910358294651030218520436524659310011629549014315818394496864631146981421327231743495011437185549646115218469218822608698091612454214971525231101994665852994023318472459105744575966975656197994871039383366197643529778351216941627782080614268914594081111711526708622025865418565763698285623171528280085074947463730847452261303949926624162177766964062325658667122537490807919696126683955533554310490459632427727525604669921237531132600878408105820116848187047581466476648060461229194872886980102559166069727978733434839998582387260987232487374791790168198179682384731088273585513143192163762219667179204119113694112089746966068532656467029348943340593012978818464326333778121892734160784647522753065877308118572576193660284458047315938627842800025632011914328732389434645632766912161391799004899534194340136907862110646219453930057995733822091520899738183695966203204783924375295921556236052459450775153188113360214514955247067931202931170460603800490160233127842184166732932847416102790830310839159111624519333424456744441239793258764871809824475807226194248135920995296373494957246068873857001851496141766196926997486427703815472069797427126356146255597423838381437911014480009311254325853306323592960172098004990063837289210929973687329722070802379216915715469235038136595403489315957004088267105283918547969201485297186216899183453000085877476466098385059427137949970402728428128565829677459425838422837762572521616558192228552377135602364322755930386832189364029456286346604729410596552955308620308751511762779828295918375725126313654251257886767323690373125690958970011569950924810819475491511846366328981253661002978195028548482123610377633343369446918472871620029690545564866217939889518889374096647004452230984605968329841051783933414483740753152295683713921395161808001774502449385800065086018938581051485995194233943678187356476393603592130260850895258777878745680095933203776694119140385834645333189068362169494172947078628113584168212385088777819202321835399343759773528171104291193593962232745628046216784430948399376563420907195700787821611681022393695617263041835400514790710494859107412521683043373775163724509150000205487302830931453219446041769459150665670262408430126377354550314176700957737489264886883155722613746023243553845821861567047652383569219163473414059782871358729363559132020231468619027618058309584354135156450578852659013850805122255111609361782092796731645799365776467303518005704103525445885253961186661125849776417104918753953398494635742409365823243108385082715845185902263419041068880673489702635107321225894966336462876911816635059861272547571683775053269985965136178544743540791236100726949242353008006973688339732644635344672980590140207138237438174005041537885506279934393511146861441542586010907972254868522964707504964322281180054625554149256209270450289625260249470192706810931429545410156897232718947721622104490196183727739948887925653334221310783759132962107980870056919531641591443425527120647118433951146296422371034144256723662829141399356257276143073857510575671565678604061214774161897224716083801137569979511693707724782306631704057638707203286207208323222595092575791967288765932470727754326952611782861896025955897789749202818841383308384862477859669976528904700376849937547913158667898072507378108607391283444309365656668176829014871838103718147330862288353932335318948879350343668447911555569234728520910112222640626969808657441109342488073186227538730589863212049411861063912390164071763593515500077943580711112108665874053437354603553987336829003312126040380356634366035063658746168615139433477130023423620095620495030696436729361632297844008964580954923887954245067077656887974477562342037057303648291628383642868185139170527820680230970430811798942019690829300983304890205952618183140548819773934857423849585176288628229472214393809031652404360994702572328872654307850916822842215782510846783981233645041071994130240459249570103569714025754963663374648689300461111105253986697356384103954962512282841942667827888393181126899134057212016218382600033102427998544427838249205655825934502738719440177039251448669901295416869042407638571537158805856339656094293839198936162273519134589155187216117890909848968408527352417704219231050683096267625386088688148254404878920811844566253105893243307263820794474276208643192668970664209099606572724509952974813372104673308461842328019429390461932192046813796763812411012881314878519236308191867673419554948169556890178773198863853044902347080076949883145580056403106676257625676375955803683480165756966871186620178646574236678535617629122801947036280719318544785365153954278210405333444931596313301920952059766949689840861433114157005109772053715631157613404753703073394810115733025057742046451802592253577340046566717278456437827621734683079168023710375055467009558723261341155755970685273031527470866942902040401343381172039306057981545362389190968032015124156720991497271508981711873630363136151376469438083070660142022770309174839930572403655124137531172684084545821810206200776323299552405751983402922733160748511020017410657958428381508035277899658458208885448343490396127206349646669287453614883903902521508813619331377878653741811875086445014157055317150507473576617445583504711297679524451773721181236249485538005651969234389079449468825529982362915626575369201747617706277584593922634581386410439746908098125392613716573103971445089200776899660819998205231628887072378130992123440987558590663345152284743146680363501308168961526601133727851807751062670529893077824984386051135608030764292963034175866276942409393331785631076134912824234025295828866292451532830227378740358339770964613728661458375716802282367534499151016164081152368005595569653232901690374598334015903030587843935392819541725167990657286329970551172950745494044747011804444092975187374155183772968004370784426273272770724585798246501500921967165302824739080588069928494591462799479619443021041529344231462529452449538957576945948442954168266873433412460162709903442042446820633418027629095727669616224801613323129908325365336613653410306850423183023107723714622064583628463376476610046669887204714713165242313491853318324843055478793157008261190296790655766183207127607271398664733098804028328730489087241892659940147971546568966099712065936349040754882484687414073972204661515898875557932847374619214112516087960361001215788103490142144017998694098024067162329351814538929599762122109716795480395006351082946885127628931796056741193136860964672077267651810897699803690494179199779881553443674030766004593783494362252437907932790523422320136777407639437756980256632757487611158457332177629027172277201433362321765330151879938807332666226939554389515617833937706270544786752918471356820040940079400500377566326573328961094918766319273965132811589841918909355281000461074175064044785408827145232410233469685598057112977424201852656926526892963736688777007736122353499920969392220436950207571976680801942129597144694980596106244248840978684054595857945565290089347292753567380069238856862113953594252312086958802869114973087131833548058438256795321630792412951597221730736794637311668609041476863473884744211426366456405390873137281877671486366612150149917879812834475234108287001817523012282946126404127140742492761590902813006207537382455932646943202106644035813768463948974620868122042642970272744940833152049388363043975136102301015486875878459261667821683888786289484136814473123901693165503945326238432008118197124590972560628261679791808196525687998232190119282918709743172787617397412505433185211964818163698111527375271538528618143548759072551226760414743380056383829711487262143335247310582523911451347094003899746408511229984508721395226245242073864794783743004168124383067201341760428500644368398942479775318963653229966927067520385733573878519847426525918503639557879243818180365436636799289757424520075612876218315997157066065265329898615562838777653158964713260092747257158326637370119098144270068315910585730806714775318078736598544784106293738805361468243450909924742716347546748505855900458723752494474271383407659911907335681443185426808235871215286064709695771903524808308132261047835301307737371586610020517801798460040938817275217601362301354398558423647508621545432809351061696415487190231822258349820236252147282224053714694140663751139108532751905770577567602874823034192644554570420532984962249433526749877311370725203495913102119839932934480428372526546191067195087295905607952350793181891882500153279057612978383623007833695944738379780977429044026126378688982246114460885937391196396670602106447700901363535064014172746224436317129367573344890792689545038669108806795435786818639684464813200112314153039886260559000990008251515123989684656142499285804721845485855398986972037649862552799292508828551818410565255912119559768178300326080408473022329221011402644535179319633860234082075423199639930637333794191306369985024911064591841175641200836814139535463469718799992736894712332659954718465090112573112787496577161346185076126980437356653566473579779014602227502868265789933801238428980099215871240002389256826015307202530160309707216704384921897230576601227981671433316641447350108436863136438065937559909217952242740937563008138533851704875486477124834957677663711854973650665492486417020072918175966736034870723107021620056165776209135669691958313532685614414981735215407663324505269796622189634368634401462311554960675341292966026031224812956079880164213327106133640662979347682266667766283045840303491208931055983567596764269239164516433680357461022750203827102331106099462702978242325023038684325046205222955600297508614650489105210354817747869423526423292139993532814553705952203480515895575900016751809264903736516912566608593268742203905093947453948294181794465265432973560511513182648144909060233711403631874211024321737779246219108479690161091964648697826712980719662161842868016444309511692192814874712933917568321010223250435074159047197906777309331609227209186422545361286058307735450285305823671045314812293585897568078653740306402189373878208771864637934212345039469959984311914578608788638744913202107747590585817482837181339905375985415722090841372075118323371776652595642656255687056592929859027822324867403048217751254104591498295482836066570919876596430042326609537015950052714041051550410824708278756615173590442819826707595372445376260537867529755094411269717131418730664562320528211758017892662419265261325057040854730077934419658462380196035691525240428018711178002837638191127340294227056437859553055272177695989421590283778621357378127712515517834745336815876779868876465148721575404283230319301223002855535189482705743400468521384523773084022591184817805166267067654964861429838846218914016030325316215513464086955768712934518384815830405188711505897061421806526624449944526569133116875931450721824997737994949797820040210820445857980189437108235015807474919267288255489238932318581024501882833248996018228415373487676722814308066852061196390515451565206069707601855324675222816351407482077935482209092329392366877574009948458949726384866815284939269627702651542092220477338321950288516818323579732590612132682801959112775075931994612374696856103475648523361264504609666300340854172602555288306162311204098982736911955304010343664197462918097885738974517556261019985909678247798976555399984116048941544947810520672571894586862607373975111152465811080975111443853377792797836452492212458327260915967928102118634227548327935001331074520453118095851381351160086344230406293224750437283621214870512345240882895471662580497207411532673317688883370437264810347880648679868264140481421180610859758931301899857941993413780935245132148702111377047613005116650382474289851774807861078082493229321918369583933442959681294325495142594479175070215140546495145637156665898676939593841982782414783249352810315605621822441777393497202286457792925098483723059047502556993706061706987979549974265987229026473918875714799549660089014920547525315785774725981936144207627536009912732596962203915154367966176752519839587284841746027666401919198290295216803119985282426651284433689856595422242061469868001130961957070591048581603825784866976087806110111883367103538287435255914134547236581123768733542575037896423834124443415608864111238210148887559244561548564386780203047355090415516433937667868178964171400176131334837724442879783012331122424653530378270567921766781428043440129897218096772836574008292487284619249249857021251776000757885554195536402558927036332053847392654373861128285124325174221980905423849969388742400835613656602236172028140792094901904554619553353536661489322552145151049574549118280852700806804108880057847796193390857462630994285690321572831631226043363147298713521136849920491723758009090869289001825632140198393294624005508219459414478983473144655900200288256036954641126907923097611080199774770059996477735618599618843637847035430493011798060788793411596375272770919411263314085844249748201114732396619927598175262211903394999601003590481684790527976624374327892402877570791673086994394950287699237509407514563013755335939567728170152587809898413700955677087146189194456768205012956748427861192660447506926298697982701979195245656738995273938545697435670986293632134804791074493344386109825711758444989565042830236813853515701833638615997744143160549132503847323126121816652483899319918780927656421570945368827605077571323040120247052936961066387964812766907751900740433813621192040946574841834514610345169948357178634062150250942388689458842175194634756369589718961167206849013059123438391108123269249687978230527135636996154569041400439247594483164691459302110453669790970829485258895919793569216756908014879438017422336879183034886352626747428255531928119324463246895569725961161134705040129097429746818417484455805297585978942877810651796557380161880090892951147389849118099809801159870709954778698993016631196367261070170836116194624868812179603698330680041428773939559077894657049782746432683899224772813039218495361995087696012124197992720619455402048706644923958618056520102490689595023287502334710304312569913899952843000138827456866424001786949253725013487848428664003766874817418483141192856781674408410203380173694385861916861699364723367510515138483493082892317903149835573613888258748879426863340721301130336592027432832086267828699475158752090852618033185357424722873054570263827014514274990390000551929736345823838085223479206295042399931655326075915205994718278169129275655006445540143133569680054090931639901281562845180693352530506751778605994903056343829087544670389264099688632492372878074203934745459081690371838575266183165990396331396801233711115569961533708578920091011263848681536403273218543348254424252300787546018289338872324711089334700352351636233700873915047107278016699444230643925487875325887455756883149850660016266321476653895555005161046471813630682873953357052277534172396712737206646830016047223365965706822968967162038597309986640974027059528663885772090921491155793922711930295516224326067294360115402966104594222536811644223363124891137280148556119062775643279168881955530110406999032885168679444919571576274976248790536760858753105869388381171199634251656278767896412481546213615678596196653898303627737562489719583740698306809114721153560221271911433842481497323583537098123367082158678266739642712100137270916074255165668109127711036362216561904742755713743528603421903309385275449852067392635538030080486074144320540078072003677530663585807953496652238239450043571370820364593875360695710222817811679911909962063194990363235098416192251807460823939691625411527089392236013209910584513768323759048514317547461844547121465474907386441817054678352662285834570165780163538555065935119834394755657265265181578708187149336684966922284448128315339844669613656003705120950873097787310196726527183027150430697266709297418090228069910497280904116976976306491150830657576071159129411524459524854931958528697869850329701462309654799077074988133300754904754127998621768268042878196954650007169731698971601798624568437161587073771046493812935664316223898562597143568734676582319859880758146795254399129953961140229497807216030849629975567595029661301692769553762999303722972049211997900780221280131984003758411364152115820857454026216174553675661790341671703676272787385521409347215618601521508071556824730905797558798538407873089704437493867518914953396565283286166167272466226308738800247950135480154096034037405984178040583467095332429184813767625457948256507310644276713758787412966713018743843367819501304001242793556634104291730314825402497878440534973896944259653586935718594940411614803388228494758194451025403375769495801348512988623690099817528128173455744700474080018534216417070045358362089961425652701693711493124199583430955033149568790865777770181182494362801924985614393595980517277589606391403621357525458329384509091377454817556659868205228035731540636700714422992691315832940246110382369223304950599710793374231141839257789709186256700473682825942566509648239473081384743134465100549264819481688688320836315351203606242548647971258173336010967392224750992463310937555760234624366625555363996080870858323924498252502863965952630508558823691611767125364925603085302108157496620452626807904834566123284056637550789261800447872336823862320823992937992323305645024963630783920956938583955268632314403576623039875423121454035496836555996832941895592022886476542380212128418230020812154192362673148813699179213908280139614587407175763583047553395660590534906342868192356992361419954612961943114957430480201940651994037982546593070700062456412415203314116928939607402013861608211127290584774653465511649359035614612753158739023537070387759214384983982320942534122733627976629407906200595591144628977964845351930759276513669029301269218963694660658284310503257847434608056749378275752972307007190019327353201163724120800211418851113443087531419418894199653588542825620710581443040731123347368193194836118508518580471669012201092268904284209749926640901824240193178030482854909163908874417002038711000851607112637174726885727204814639326137483456438323035984835897717199681983982391360119726415195106525917153301105470120006427749795429939577736756286537396263933122661200608074006630500428520673137970641168471129844815250585268801984830577464885766578184086270721994029208364313881270742622836067763215328545722795732232861886199943289823209682361776201449564240585176781492152379551730431043582375460782553430989057660296184117398381407897787117672070782768673832261344489570417175130209931575442583681405930474986531690465838615568744564768201878248056560145710957519385015525014132220381009397950725813476891465780734340032511746793433272133275605141278764126724691125560354103112059017246197355322861924721584432723673744738131780125876002994142413837767366986626582646135125846073409613606167619483372839725180040052093977095325219430663803310727124284895193430767338370195132901349399351844868959581732263670124450972500988818735163641307210561390127100792914791853164876219629335947061862276157629904296045093661142015199117279847196079917488799534315290577932838987333510440033911241009739696903026032220550277241020623017315201028425331170191293826957221821664057114764234310678414281413961999002628311986742594895806233180565723386474320936939552457432919419755566942230717108827675159122225165507672172586428768213747546933781966426444519421272599043228745512063202640670994050092866896110251663511427473572935793265254149571603241597910944240359923313490779269889762840212494779912806705264638185440200303406415569095145784300777200484780552643521992743495848115878196356560360015781400604681428188270568664617825990466790888861042884243874556681241871320095517564234714059659575901630730844967953461771754816328669644936406901050625684743351811952222748026908580933338084616030304877741605841675113288248808677729394783993130583302132246584862745024810187243573380332953769679864580095616676579591185102656817410832495457093287190421791828573769360947259843828500868245506248030414964377172242081156808251660028065209577008747025333516056004500520194351199966251932086286354033016838026686760646034516683527087424952100606012373152905518324771150659552295226573607114740467418866853233647443281410530474456425300638185024985276980981703018395720358384545458272931452956530630182466215429106956776221677559193209614545130583347964594116062640408002159570837776290367582406844278201396776187472620447342068608971424882193935957983067873892005770250892744816931081855507262617606308285145059313684455352494753946207619720857519296793283749337586868179116339340464492695083191008481054504835314468413743410982232581049723926180884641017326194542426326643607147591146200578139312573179472206195577493819581723380133481022619031541365159332703229591020067667047865273800439388613605567578533488116672066651310338218408591037578621768059068590234345363385654613814859901075224699533932654342135977313393513499539179383276584739849326635835053827472455943535566766548184310225714826342129221195355755073641953706355923097077074672772114945249845718116061060764855254372119437197375761940814542701648001012409481354913356053282467873377383528555247482041804169381040377354895786520317106757797827792708261749070815647026319470859388248850173199407302049859291709669264223369341965398624720377966268986789364588236241767584887478133658952728590899730021424457705619360239356533353166012673792299842478862174888542881700751480308487526421878157579062537193289381414140873339061775414536499184855227106522450816275829940568753373038994594301949686007259493699234884084956685506067812248420329948238610099912258007279808054282464554213211964442761106436879969762097840440589252468935807859357272741029744926345338191024518044344003411297928725184363472689902344053245052895442228928607560681777930851442304165091349476608903676257463255013121609275631037390285751785651872627150101637551633800324413583431448909720611086619017257830565980484101867659327088115789136033798105402205962927438489509494890245542625845172991826438424335843909191797400577205211336663024628071415657142497090475382216532317665520561405600956685251904970237252562350223447045395962176968438884162545533116116649318401926265380753246466999614092735403782363200824971713855021057733296450988504288109450856281006335145607501944501155852392631455173290634002800235759961599177482320722600014486514741569120244201688840659058830746570368045403409864937264721097578271550235668540041020648273701698084521715432736876758169140675225944750225681218655993916644849911933869893849886133259813469672248029815731814309194335845667612347626271469047716854655341028402681454057344840753760543553521322950216596676628773030476561743882587879104908172025226406464382873267772186330986785774562686382327236226384788276715273552005108419017294798950120896871340871303312073447504951413598654075503817351584136693370370981771836239185548423188042849050335953731353664694194555841982053981921362704706019173987903208474186989394215885432564192021764541022089646872956046859180907766236649758065117714491934626403558237062176772516358622011936368972653041117648711349481204413261093446740491478683163923318841065914071050823663846317884344544041532469514616780773120014406439328312936188536382762103322306187174808750056556325966393663291723222568369836174897650817277776205283313183741251639020421184594460798737683946826020208902749723853507976009132871317779243025905045790706702162350409514326956351795376337560040002767616270021632409086347843997142006550344040807070576340525674103636622812003038431415372131229140124516986359167484811194782569883581979518169027925813268290813365995276640944492008755559204090795790136715483766601672211681133170799155329837168345303127868572697545551467926809750667103582608446675118808731004387717783016629141424708532002040317990426250040993962492580345714583699480932140438833177710609811689552285177999920012585759949680132247035324339860192555271866073063748810650553126282965648893386359568775025558145261159770242114968906008693552484141654903845603170030116331025966183775078857939196413163062970510892151782341877888224992407292294902619114117502255500541023292783028272066257617523830959669563629169642800360457766161131096509713360506865583338691528383041572255074309128897438574774211107379434100202384818380140093300090310862210821567304409000287091282987688206254263481908321059153950312230486384713438928050136738750737886835355715561032542489591834481266852662604731700505058523887141349352282836812855490175627914857960033626912975676886244717498962812081008921953683099919245827930819205742288857736053298404471998377264877547783622484141675508634615239288236784429663169878640070632444930785436537509591537829592725737891636972098732328546004631374237314604900716028376894872412436263884962171963531695324650243518603253938033152090174719866701318139902833652794459009093126165983549666572840514483528187577477085475173230311430513964726023876705298659999883917319632095507964674222320344977618144789362473212127197984532167182833277534295647518985831339500621087874128148645444491396401630590863646792240875883726635242202186005765157216432244532785183274895154513020222761453249492274769647944731489099180716078018820837737145515694929180442985708591771593717126760813485955063838516265499623732128734364377434457881771443224258443577728983954535094553262285931275343164785939235829008481703722802950639662845144273009875165911211043342430841969161156447416196153160980344362451175026940100319974462077526322229813242154389899614929652903736253877723364128619106235604308107749490324678473459098420752876406543279852901471194240384253097464495736970441491507066300808626248417353554826733927462033415514876356942491187804871501860551698365729332718617046684182803683409349846166534872382909802160545301093381902376049960790772816162124184381141079435991227756632714686617986571467571898764364678516142085094040233448377448798499604446340000006319877698444081279203568571316814598456294929549859981566672182868404499225359899200410242949181505040078699842913797654084530703415370127069035679427036196888084815267536851451215679635409495122951533642279825495352809880575196165061528197210733069749174362797803746416880361899442739974116597255578092201839768444815230427492733971760111051939539722734411075296442078247488169935313869729279451609377989949514533999230389294856601108462979690827214978505833097913955264655808165420778994900232904130894362747510544689556935674703627370962565624629134182567331889862005225920589785868546130636361832620786271138041061449605020376740787617226351824514657228608138159124631242193948989021926894543835097012466343042160168005060676256913381867990614710975072627889442422596857368211241359806961878538336889638938542479884423917262481124129458404852412842352831560428157241911198435642019577520308905636571285598694426855690764582478165777457651796525280908508002978749709225707183772674044333077351786515202797255941574212928422810027761486475141230429445280070757297798562701894509387192703212390934446701791244099231289416915413435418328718567133682616322598734157355550120291276101367188362796977010928769102688383480297926528996221147775946518700211890590456597289139457657741037814307554368355432163402918842205285117816018759657938012156147033872102302443375661354992011958912670935122232057042305345694399781329011230932724131560489918868824354203643042485668252019950526927575484405275357247202010851825406334804568908816801764053160197439399704184879072272872636324549976890193244152015560464616361619499838172587835942992219183990935513109645704934953969241558993970622934897489987306345107449581051221038983775968183069938585765803360085912874215473010013969944313537573123099866147003895211058147819065261012962769373857644120794570240355154662572602931421360585556660581529284752679508553903715144871571829170084699507151244771763501030892625198458731845923787081789884017356043020623420766928341543094553265030100824631159628335878131735886694391979742369140143710963578921297809017693675003758576339533864835547118304712334374145572330495738504210653904323249635534321678326218996645821505626037319425934029728808694601953337475401994054463699298207872018682918746687313061305285191501961492495600268241332361399902180510680692470371486948256376135312524537268940547037454635146106049346266404501356849638461660071549233181846741272376478930186776113119937391356672540634057209546022390101945420019967521517131977965659164294223518526209899204050948124584268285411862077833260212660839599601513479153562546156338351844380437602762255940583849376275316086451500292193688702695296763174789005286267174081509902804439734386826514477338988692495776748971219911481191413207040403896587550454808597235230518625319668037342515961096892689570470478941275254868663016076841583101389198790722216036578444019576888306331563643311765326591882701886287315949378761531991388661628583196271588118167396636843942154949176915700428773597407568390105188497511237996853187805721708560882736436161832801109125167297542459816638317066020221372558779398159255255610925422349155766690906171480837771453525772759264136357289048149740226385489218503341356488544646532997652146951346317467740826325699280045738061206888518495246691092701568869967788432317262005079541791126812034109604257882683693712202161658006457719628487203769839217437774609909300156082020315212235368756765283049005934803323778369623136766351917022405517312962858401700554953291151437279959715367653501696034516632947119361002328282425950571265795459981277980416850899284473037680947902161513835427728787967151076484387893295890511864351584286468808549005740484838236877631033799279716598200147316291987108110985631144842590922515870865966304591099672359428502879163750356758929587169161230133821513319523083809115696515560141556611084985789379150420275325892208052041648494818683202360824113293277845408744790078365256267385510800883162482509356027744357632479875276544401609516511457210837524705076387686100642520182656504233178332548032730270924932373093354012839146763463805561925426945173078224787828402352511653688767813310544127897667690095040193296573886448440315440601290857292355583841085226092950431507627554484053001922782606272603633359004839542093368428436728716247633186549633366056478154207561521465670017107701063370946515686651799824990668604256142133917602030137339362478336649437603096147935647424084254051090806250649215638066863580655151649464598770810379117380019698742377548329264647331997955991886140619514565086136100762149860417548464814271726938848202669674063058185747545653677074959344175668424963079288007574054979954714086442581852683514754995360990531222448405406543530024907845714881721552371376897369410318380173169081590804905285023280477687992142023512198380325476994085230660539613149376413005888730912662190829898285104170520610174060347584012286205852550380616142937210971604910346199673394157824766660740481549664139569931453852628324827662256503075273562451179881907081918154059000412929811534991312330597769264550741885291782528268962602774095367040755946647286006144533546831480699398910080556189393476272864902695866052183299721502785925182153237699850807930126863971647028701179472955481798895104289794174571849751561707900696415959610447250607388184025124949651265226815032184282844832579640052804468598914534079322176035191584149086943155304988849330869443517067815601016693140660360383654623375796189554605951986149894098464215297589719318706806599789909673095700420805546106538890712654096369179467958383383170477788387262163126600591170190657961073522497261384033094052651023540472750858305349408563442905783467470451348971574478181133160184966150589356067394343898970437628382680172649573842557486874349058117283964288052573956940938715410732477240630222958930067537927160218663658136360462262198803562481964851806520744267119123120474330615918893686608267436894938493854862097677585759867847614359124423738155939570483242427443701323292192337162962507482027268791321206051026195334238033867760121829021307368069616343300759808415974839948791561253996620023019539410723169319229497587170726761247784225285862760621798090179888134783392532266454468175531417051112799249764739138121512495831579703631175335558339625741619333548602841064198874603903465832389294917280380941882812331512137206564078493767770562805422281271155977951786594796177031762804423828894202652051055799669460996675201492791425030162193929643815607565617388990911557926099732760486376203254917860696543632433834257230210644688172545840848327474167390526452880378181576940357412018025029977363194054412142247864422628551520076536245368031658508033589083003496806956051511013680193139122529898745602890044620177939872179983354548844268819344137896685631324013044005129171820224214984501158692420372350339637374225888641220282257866976335745517233802036999930243832764264334722360776913681818050699109657730233066251524616762621662756616501961110764097408349734908633659281243948711463931100866804088285020292178843279242246273996589768475784121201979406321489131956410819198864960210633308913459491413906422725544393075429224502753795808211648245616703062100261497871898872975747141513059979782262347297070541346757867132625473543687493154989113600285478274318413505548617148229429478882895556024855636060236772540914554072463320358597304579854622678461806868831025727304385186689890812501245015481260351869046059982570319044753106365021737946082892176031433925686372958099801097278268042704617797267063373724800135984754809616774511993578062457646559730336197338075707454394935221083592522730589177785932829116300567802637219531212575972658211210636090329652033021177495559383901025251624137921725135396628833938427980138955426644668180018360048979236713727573936058640238040394995791841592510717080557720796052912446486899809142356384631598672797424990922093167123742321871820214312383022748154243505154015900793658935677392261897300687966717872302330573641922401245225016759415191121043258469455937355621440320944453874199681259594224743018005234941562342165008215940175782954620075713161892853120942138716942677203371973020170737274224939948076028554756335399894712380565810321671477213435697663515388399834601031545905390315212579482624634132950704970119516162113751832582352065833330030802291632459419946163630767518053010689879246509767098721389344491131075272101134317187221885117678174546325338597695221173247129419700919900594776143445256234448528114443703258952400139162136034546026845592360230383501945417186208759869529064614093104597206066729385022106084820200256093594114010034589078147056040460683574074891761784898636223144937850586424273712217949759558664359813162883619886618483761003767382383328972766954645123496036946436342016338235414022174188054541688355408957050524105105697107192641362226701106815899523909303006162061458067377919623894395065298067523105623335181846247265263349722656978355031291310414214382057112621314827053354887802533597790228446765962362799099808465596311888404120979802246790568133613686819289491599004131995547243892427859737895024176320312828667662260646276087604557737042968156397300081043091308055170985583746139458739133180948503741378251434306048264164138874969557707199829416617520566357221297598457327644849416236113608206357248146375587514430452001980034364624047762219852334427512708333845419068684911305157363610711284512969558803623927816045146054131818972747684993706013550624114815044574423277943411116014656066293071165198363574580290934304407140111317066918675546213596827012137825693684177979257409136578862351100159502425655059353717519533810217801330633145853826916779982474269518933948252208015646718613801801535518008284190301727656144924658957043077010550436371869802744072194931353857279546223175157230246854428773955847669568091200015693486215587891723920099004525792053678435870591668734082041903896616449479753382268191999996934072547521907589493730197879169649792777685701970883459692457877833313751122101800926816621553598768542861965075521162888555790930769472299005207882263140005916268508657289554010872236269495291201624576970005991483426387556787375481527180969127990370597131449903869125430330970250604950116049438085218062601578864216497396348797568969847599355142369434830683421625759275146847345702265665035886679680158962142289059696345378533750952048733789266377150241459300757378708024295409151729580018515545602356842886721606874653543879512502537557380294976505914323246419503070668891899755460124060375262380413371017758599845293201512939958918486323156787345082076060259005066274314009873733066570398537505064766281759859260819814971157016440086897335559981606942698302002063785612223405083248688736531472820637785239457114041753624145842142055759140416490644321373304139978393399461058534127992740834559844415436322412185974957676499750013042594137012932227795204063717369214303341395491117384230048852157237017264037292437444034580003149896404451080848711230248501039263594100315016241397647831880060479698206018255327129167556848407268017302505773821123894870014501418619511805614001662564349792684703341153019405014380552212180514436462010179557472457597107047700644399323120276723276589792777510951131197844586163889845361380966510406469857189806343208674949296567408620405617965322306804228184840884758818517789329928364761985873223872746807400705479393387876920661041236180041812348464196501040809125094239772461058996792855606408255947186268524555851303960926810311970041975866874604578643153017048894057382252157356076594534893086526901795580155125166607000856397739764418269520082374460028537217082830555896724439129227345054205376164581340184045227015726112099727654172505233356129999798273240282706717379306957017054476838211467319078949282142583761411815013361398894744963074240445573976292682284747180421144314562308871403876400733574659699924857716229786815360131476147318161888904771173811389975079126926036024144823801606323898655742674705799268492813082000941492359916110745979106822564028384070850248918979428194393629859593150318911651274506336500883893408773366510100204615271239605289642432402236550858849388413227688254455635807312276084658009092770307527226292247804456773516016704549812199685094250444963435111315906370291162365650882675433751547166778269361492387727024229821857838146056845885966810537414899141964348155563132684243342922702471438783719263449932333091868927138165841411306993110300497486310856268765587980142488260119408793778511890763397984439604102989118382664619902359532701975218928356959809617228049612183207015830496625925417709911814959889871766829905538866247565580809522923046805211644284638027235859194855588037705616504070702816862744739778654331264505570282284009493503668482465503605879134858811391271824621937552986582457766867737844001145815487967923512330843483374375059309957274303906880118888600657318914085202506295001752833887124702566131254020355690662574070758631682386300083264688241371137164024414559657259618395097306748314781827061871347608792768247976232377203262574952704762999509429382423982834433915405826650543773890249063683446241223038539709970969555481155174217816179404554667336780423922990377757405439901531798745376058840872066911210451673036170164248833652366627535429014016685250715094460016802909338885093855592377515935550710198456208712365798882290926281276256246370424607668157312266654907140878610672691230061857304747249469884495193723322825244916684965041396111620791824973673836947759411152308044768634669571531860629291904303556814087364477342434437024793433794731778872304007396125990606372770453608301692970971423028639061577165713605884435680213541444198858037535142203155804892799828168032901661110171266523006561847063029077639073582522421856470745174524819735757328127149642344424818957969017847324544246406448819316496539820557867023857100870555695263230854738807959775472773451664583676551071592849491632436177475514275812607404516182114381923196930211317334669454422024087851979449372977858230348643224662515227666429640196261658414748619123076539465663684231343418121068953707279944648974343953190365957210022286359395676149866114928684691680928389037318932634097524419916436243057396255600709938832055307437939500023339293365385592810101136300352658359148792259853942806057083485477745878708857482245915224101896280130734483226131813789623090842576055422158024482688860477927639628157365609465035874734745254433027840274701524430137822886169701504231839415552020986059825345399941805248290024896262707245753275045521817223879164771156207400954829140739666085961388494750331379470871688058365596057249983045365206586396683388265814179224018724359292910428811688448087187213589342762276339431018404240510131525139467015197885565980561174285042646693970144542953654951299889417676657866934293855827176008202066960235149585251469302254655060207826752208689960934578238753193862262418950136791940466878971468222143690792657285497137465957026448904140111068908186606112363001552966467168750182826723672008704357529359450843657511686440227561642215626239452480248628843815148695046340341736474380494807468963447471035391829297226325364266041736178815734036040174288409270880302916479380452052259866029621094385612468023706495697574391404837626737571761788183567832581670390156930891697672249858857441015415461339387329981184268445957023969178321858449801673810812899425948357988181888925860496236112464880039465625819848720903692819592211804885599440641234782100405093236262641302870137823715579955623729114007772184981695633440089553994261779841087488934804709935139530056333065829423977977524344145095192840505937155355991034341423516973423274034665143779544202299426760549203407701288586382948366449541666419429408885929178691294768794777448338012577776716779504800518514061305388678099184070350441899608834238003571385754149313885158427830769744504408789075870795889602005613932974493077938799504617836493905970119103593472725256415298900749069840718565284068589503051397874368251972568058450418709611731968271064623640690022581272182027727605659593041862443597444534498905690856268260104029728008471457516162411594578944498581573552696588719700893156741849366007367165686883654398947272350472395715111842333973521597655318968727733840101161292030823572396455256977766870441863962263660237228668656875853149638393617025477551967809646734017133322370574129551463139312746790165705726324921425442970595807276887551459113334222692085703906742633961122454049228856326689064657248848448527633248194694525228218139836312486335551400082412595910414503548733646385597087921725405245387852528860318629466739888679299379661485063624640555593566006871299295659519600161170439900405127701343016936535451733995487482456227841127564838916189836829006001135704910185214250491725538954904086612894586770634716005205673276771784461652984086569562275912139291271448755643204402106442791579844084865374722603010188371647397403591970245019574510302426724751332581298340969934196337678012942707148946055702812804272775489576947901926606511606092347758833888743995248727034371319938179026131592157157354066840511891707337198194842427121054210988478221847725976903266775776058388187805510288633162383326245554770043537669510274862973537482004420462365767708170836198501936914074240699281746807063101276443232274269235225130961150624512737673996672762221051107420102999573366089100138718337577513417266331038855899118817708161523160637131558251171572061435383118653626433316012681361731126732476711083076762200194203062781475624482731823206035719879228597319538106286303872014432464825874518626114105284300067761800634925311255728618793330654203212485305541384757105315681213524967903769772421231111304854064398221574390148940783483156000035622705020409098474420145560906724897276700353397679389213881057672129979811244689610332855422427258192822994811007508738082667739936500452000433335107790484145059806635917236586053197879293814106138190996097766717736759830073345560488486459219050316715395299198321308854731199392849542597619275785527088927902357450026709652006426517349019942952889938845871631295206445423281170756488411662221352134617280578070864139103036658720554049794704311539211858048697336007327235992793596241183502356825134303549070984610232959340716239115820315453853655973618539019574017876841425385088483529324500292594050561984890990305737258342968786596128892937574313762289620055132647766286856364231421310342745550954812666000918210119919965102033125714340689096138878289460044573114128904393831343560691838786422394613804774816842033105163261916752622386867137770607455886913180725900011720406986968430798036210801229827455556494585440567472462133055637859558927714271353844974362145630959788776809316299395492634534612457629693974245027656648892266314392368199071958667379600213435552609493241793022213158375344699962764702980332151487963803995705263268171863642483673932560940697145815427466759486687628603315833717022895959819550978736394810457088155792577382766206030042081593282353593223622212850800394513246205229312177689937383834353614288970933625411743752314841967562791479387974198879558444210732833679834760213168984035479669222953348042106977040108988233527643575306709485001699815552044431294804204591789649738873661037844206395749148402958439386509311638349349550065349395880028098771593041830563753991498365170269934677011073886594462112283595869888318406008112666267684685364850753861687652985183917623908157188023656772719378543452178211746429114928291442580592338976470173992891902948162822087194369866542129037953065716745622169701921147391775851882990396343897467376429069717658607994840139848470349102630310455254847539072771179166915946795230856615328888267276041660903982942702982509387966295507637013684977061465181130742180832646417864387581392231225355418303031052004402676736690995485575187453665396986952858980166205963500087463870480596688961188822411098745385335792580679858219988755836079791387806695647984966719567496282400939899277892509462725709473828217642626866748327508517462070003150415072184491355529403552063682428512278168304416724939945741010091832246888025942285371850769516573006706227945815023727487128198496489047962037021464892632068890437147039021277998606483735215346879890759692129273048003452810844638379879793752342440792458575940638512310974394915221575019892279037714862651605917263234863613373414393721167637383397818120245662026099662730628922758337928057304288243182420046579339319459707951949001001635730142268149451792279721196079399681519558149536799287670516229156371089060025178889892154608450807791996829364083574565832954545757397635861625769847124644221877867930457149828088158395143874921630215162953302092593158008775626134371062654428014971245174555059101612909805067359544835943198718672915429479817617492740309355649771637347875798200450273491390977192401412771266176760742314778792870025438381431263452169493644798695949289442968767831423716763163332702931289145339111802820494972400611053589877807997396175926933319329375567752778109374615519332995619794889137061474166077974012808859232781745215724838619271085051465357291224807883452785123472433807041356347834398187362516704937589555681451146173807387153570859054709059374892819324674282856083700806435525354676960051473187730487765990950065920884096188102126504668166691808086540066855258975334788135025624236135086569151640198876550844414485337840106071270169840516560345022726305908332529380354812049831549650072021864818144959577627003198099758009258880421954873990546536763816318359113397586168361354431887490352566943068027099988643989134670762356727776149734714886516115891344713788447039974497336727929314589887118403371489572923022258487400341315858797512753374836020181974567713198116585418782398433566136710659287384557657119514871130751890631510834663734033761791822520781522584951429460397119102741744854979502964433789335095399222171307919586512924933399470177832011256036349563134583035404661022904107849257454150866050254504440903298823566511676141969750326594901128923162769668207229206755179131507786655471383594428743885708046691678601656851707224075253543764155704290002597279232453429238278278943924814180970269072378666319937286145100441576891498201542888849593740387267954313690708031106602193160550000202324887892839009558003021507060817002297761122279072731433957137668676001951948694957631709849405359601687153517487196508849676655201373301867808042500691788684747443519285396982319382331754396958180335906531293974434126161710601778203946299495728354055126965946535836197096063435000708504580875848858974517935799478705698915587245631797658604093580341086721874994827862801698602606617547448276401547242640097698654647174928330267656332738348489973852356722823012171704628302895729735907147765910758799474406270860709154478029981587508818095447230113332854636814090215454164932161891767597413662784162403067690247749292359902344999706154040107008464092499314238437856987843641727015472280588614493301485189369878331193042408484631393361169244958793702585090988763877932462200036290313999066674322130136218941957793684110019932417590648235396629062051942925181464606062215568109664246538204319497315253441244614148380973112737260142511782238902213657590682667044894610456719639518846579120066155901967162156623003596187860268061298798825750623513319083318649980181920117010939964657554075553348049385439826205524638001335839112862656818751124513055872753240086217022959357114084174257803420838634626225124896472291043828005298745289469322043349705939316858844066221601056159995378729108268557862877336742437856585046747196197205157377191960621171165546565700244730994985404018240900805207155375029033690862083698035090991709689806766000540591912206032883442617674785366911025085577307376428635178295233557994699300149519529557589986653229337842011067179096722204362369755848867739114383748556343444791469536859035463056436831626684655974633375216391016065249839848162390600190777617371432012318274295268620925722563257271628565124698735058511390024138526781100531074808074857562276186279514196762197613228906390158176366649483419325387841990461124988329268815001418103911649021096465769381684988683144544430092095363431836638817074539303288525478256853173448390801130305314985723353529963328962058638249797339323703711052181721635049372258983423866397642461772427127509244807325638129779783971773607939547627549582532561633761820615157585711359482623837532507425815799923669519540306633141313357089993885132246159737444468501393983414524123114179642142502763224784262967872873335162345138510686133029296060145170613220351328910148237915671485508136559012875736813580830624118636579791320001218577486132318381674642074170054681158514788375671155978582287329733052859106228255743982138086311694618540923144304214662304630213821461318314121502908314021808526860981981686299542764271293916626258579915019955545430919914167429172598608111291317046831081406992769781246024295910833001736087166945427489692156296050422431803477032837252917107381840734446342335212546069189969576214656566554142582930689855291307460124811567566925736238055989727859070814529533036085373946579023268346495183030597763351905105891600998723084268558905899626461327701892386141092508581411884388261058108289054875698581463593741053580132708645701281116604344801620887010746931137068172541258158308751591056514072661724522836111366234136637203552617694624305807943018478080504532162760958695250112074403410759242418496961900224970756437933839448084915125566724041096281546406119431625307591700460451841697644034210103395406585577657307499237678372108814137342501699572251554946033401086267181720860675166918794603486979370311630731015119994574797307951514960943739156006642131840296366306134967749444465885861267543281277064140586835066533696784702259969268871382519535659673159709424564699937315499182142315101355342114426181405124853331597968266700229276014634568874445869893442722033735311853225549816031172741862868553096560929355929601304942465098942166898886210953521180663042637273222408210205058465466846244783291363673530246662774028082258245768451882968352204991330700448599176497832572127042768122025484984645298923834465759215945821681500407754331789466274215659829403196070131671703637919192623827242743650002657527244996642266182518225025507363290582970589959313102399067986165334289892196342284303980341837181965351199440704951801999088996242984668654927030536361589440538487938558687016341227614066138540314276285153919805217892036677516712590695950945592242235598130173407873170524144998614427159816448761714196496206642796623654354416913520114218367286526954641933692217676284174943538786091459423941077082594084867764664045052973497704198877740027011665221389590090410979909204366873575876259371050584244522962542780404852870334751626707919237330986170952104505693547514613424447842654762843470994858332687259422478357107820423133072099217845794092372895074249125614282047651509051266112700795537075195462739408309019438522991920357525810455666722168208190545734670827683641000273591878812958604876874845912619063913773415942913796034366081036664898345839596922922342989060162681353576719444993964342252462221233253639358689494872294363260932287179829969069558964936100731248433810694816922433409991173113080217376480343135484482943098689855233221083680592701231348102513905358117044713876001122569282892044448681215026521016726107276312804561171205094835474788874920667910050305203573684200052444011098231429188090292377435766655312922895872348479597636894714262735744639017063086411118966814018221289796333530108408935289726483346640189385025817136465672143449859418946050480725802870997809790507226752602588307956756726500745249820463801752411440144292483574535850353194760063573138442120999282285648859387936857909393226141129063618199447238175885868656482376070662566328666018205600761871358058660624306535192004266591565966145760113441714837856651640804891457846780983861704970615954290443950581976998026217630947234875710766800402545412690136349283735786443676553060831051183306211300942728711738798047869955387228365007597159277202456834487785201993899427469890500672171684910937638271968190975009560979561971475171474837718559651683210662558651899158434125145489771463653777631315019947429865837285984950642398984625554041087503001611024953403513110952738134126286955920203559140040891623165542872312085415867214171556861602634060382536304343889551254920094898086857797524265524866682117076584335601307595133061966078203379169731499676134461727325065613858355327495163823853469782785686420634360299479773513375440801225991806062032497399849615494578690553193077005522668748722143253010596457693320514856713147812189184741402266470624329558516773140529308838641752432570482406316620263754392965720799425515767653978741686979432284490233349287993134829480601847221784668588085275860760990198012427965406482983671840727090711025229409240120862488885768494993142141783923340629924866068212713983588463417636150863549228875163735667507711718488722183398241878808507012235053896677712859427115803678912265988697195338930676130489376350834271842478930107133802900152835016520771840306401300093568375312408826307717653894285817689172144669082852322608387129038114649645175668690343245819400474647875021545293078920130709173064407160620815218740248517000193712478095981647850032988484991586079908523411017825687920417621629380655242313891623810145300966317882539120563805470355494345076377410226935141521406305551504236493928323354026332922665988120446885477323042553481441497280049832616140832669390781446580022358395041257235284569961699514277920282080066171125726560697496516011471010876241034521046649722488122241103325279105906516190128864087418423398399664821456492340330555093041024487185609608080368371721519112518446423156726666692068461453532039735958882285236990670692382997887621909300463136071716093587633974212433109408675348691468192814880364215212290439874389075556851212345607475631450744203089442449179762964787523799691478487718685897027841761487164959876804461905290457444640256938839418785647376610505888031016559852224150469272118897298108503433469237332769143325081927670018787006623365746432876183097774748653341685855199636960207371414304785587204679330962559116532026250395065062925472571573350497562965706683505356911932196641300014885695330549436846829103062278045399085876220380625270756038753448680907047163992008126547682689081371920342295430269794870290117006621237411817076658068599249243140597138958089488358196491239252035518030909281602610293368768371258505996183129116887891580996496675933343872609104893358678465621281271243508450250879685614292189234064993143394875862010283971349832214695000573663179842462379544472799267394317449611722487131416324513968449788082639677467368299463398664260845069379092654765067557020309858513347916880217843315603088686476579525175118152764610285411250520546179141099853204849273289073687539511349535454319095589989412891710020422675154685016396285714734405526955698629261265355270216434949925544965139322678175949619164725698983922652896878509661391356340930111244546951735730256917976423128337113615937551437165103572417238003735878956433450400022995662432355608934625054605755845413603869445968917139086088691918118539802883561267394990224075157408214302267597741326275459307845889255748019544939022161100897635750102856630366455550704310919449482006325084509254756727173202976300865368292052505064373325869028927754390448277008959737502788019509843556380476142111923092646892400511113398880085165200729477825690683826590522151801907889190101026719346759194297600764415758649854391428538774231099741929414065402271293166705779938323978056292576188538554237752193593336544625316719044454315373662326138693545254948753831813379445748494355805469992699545298912509658958052093908603617558492570628119977182942275338938753163908725593224774547345556756409105941404071996906000237337029518109048033235128249028849089039378102116096154952883412204266830519261779889943253424457236001785299266914683189018249424391147696170323297222684548829021583840433173094083898285331132869866460955767599885419774722357400810961378810545825683424977622362727438882345379469763999934295320351963519290511438330265661767509663947265818648166793628192197442468610095497595652216577764148138330392657806890440291594026360138290797745167353960741095684656016828699548966759687108291096532157468686225101568438436288831472991943165905756579460061499599097554220596828552782071137934879940494217335909893075255803220295940321944750414858773522718142291484710317837005242488546134867769154536999933192325620472743131339662366044228772333473337403688078993591627082156199256084887449565695732177229164038223153621505845326322676617254531314153516071344021656889552016873069342239981943546897013920171430804289817289022858939249700297082248963851347479468836107209644724241964075577166706262775649805106188379431657686073819421518840814844148056216368408750421501846796744373128382128457118179200993107457237980451627074723590479099104281629226573827179320890602958384628144135244008049586311985737908293463830245152592600582129716276081871767900397136990883686518681856023322807331502574306899673500656462734642253033735781709049694274185900130448281722221755382550013984513292387291255114384835515864672532697457326611371312177617329551348066866363609694910410535799426754102934061986282740967577102372274283373974875850877735013901101412405026682977581468372544027484044638277420495515141875764150059490654393287073865421134933130186924754254794962551458381001171385892102274007201782842879432808077425471879825643345137482787721655924605921178743446103985102939314828973775998862160556465937725242915277325795146454965180518531147234674291150022090188507852686453156656696377806958425089220802621203598828519916482968617134320043754052659805618513487277976454512304057999398917324688163289756516594439127896730720088764580430632493301392309411982623778082784998519228921452941619558242021738755621472060630838307453924292482555549720152892834168712194201702481476869666727764164142207773443893429424450788621451753371832996526441015792760332529439801210380888007783919001655484460701971717721322009049018970873343230439275409667351719850994556942045101112961604965315564266301051338924327526831423025928403005737441426956321955740027754589601190831553582966622982440256391267545982425945475482832831553744288730727420493840774345808770574375100157875762765676177646086617492849084130088248370254601894537527502724512912625487520218717805441602593608018614431073589750939481455199999141678351834799876188363042536356811882211175073080624771717598745713741180153650328905871539156021672477071792110974116969800035569956253949472428280939283953156799535510467134401934938087723504194964494333937871471289269691557699589570770054182604018706316468348470553630180011663151393728280540789878818487486671784736422829755715135847271508495357270107567823156967982015518481519146505993835618873464436520367138695139697740392162635653530540506392469041544786550446950651850022045605680337498416427718427002733462563298449094552288118303002815261510783089507656465796056693957593667500698089868769228930029529967316363789535761801514029516874057474194317306725623933291698696351750589192375112244360893234980240047043055599090570368781609861828048865480853322062572061548021717443453995918992089939179629191728589957267920749361386676502625346619885359369123074112056498165100278333091437236568273189021479046138267057711733052566721119997602947081184089166975628518129244158234716438325944714700047056655387457002768251148225878269071569678842850934295855981687305610661148673929992504223257989011791669577677123804927141322159073670480164784999532552624804484507315536091129912773132124458180638559165048686615060475316621013200511056569130706361059711421863272521690795700333576959031239126058402034436907057507412753513577428341446123694963197897610037514696485155785419336019723617125598394805487851759428248569008286575481986254095202049149242852823918883506865743913837704840209175740149985689226865693944601450002836704818462776540260018978273255705503666870801594058478434205256441423742648484233591822954932319353581512495266262029843974363622716542124348653519376769310707908542014766514724945331079271442273462393521899040867335326976439376980951468856118674377399131865881549758028077093285993595356721960385028324526313356628748912600566359442521988437548031236285459696385269546381970300841146028861977038564790652703650210053244983692962670216137329946493441435671127216695776475251222204053022501260294170234802884467135563688626484248442145824462433225488470746656239697638217528134331736767653205309058254499635990134999786842799212447107748470972157481121231373151137626251056863981561261263722630216602663369160588813964862876937111600770278437797200017983164863988534297829425895343180147356715912091883148191565112813520133271166606906722504191850130443710661838172286088727188259292076292694827189215634537948657760509694606378291135989598879081233420202200115639574523329227242793348906462066527283741801221941455109491489353292186970705052225117157478356580735339651210496424156027400566815662615091413322506074404896570016017762050134822422344031885468653155164896136565867628782647397714003196230666490771518560255600375803539121680754871571449557983117448311005159868468334892048707666768650896863066637271977843586201443025143400223104485397601101176523649846368041175721176769755596605548896053379056180064627618883769744884233417911398360450038610882269260559130418105838189082164066265775437586226002865977030651408997932995372041596356140974422182035333342643983883759064802046650603163251143897664073685336607144543331541235667202069023336374633157090109986863923409731820985864527965790924386328976235544023953381633996135452751384861152750126551419982920441911968812547327885265860537681083736489945873162247731255471943564888344444232396789657776043941003637637548690960740654029684306410371021619890573461463481218467954321143486094496189682334409244871947631580502210415531715942709596351168984396950344646466262349530550906992458548375630012442928964388067143244884941693377713815652428464309625280660024170089781448971921912051023328477420124582878053104591437962784260197976563153406389401299149049139356335574193610424328517253887670288091877887937969956899065466150112620743563686704936567064602631079682764303175330387344949178241423051530184490210814108113985252671164040296893158082319329052468717097048670112533641321706894296380474319711299612474109353337251518651288187600846094101845695507022929870127168194197418973018525240186603280893731196794711318209473852078836975599679849336605010161334229749023941050699886505944038340445740749806101237528012253907919394131557299865013537516512396961879267376753618531272514344821412353646855547594514243512472508933280915837320921598899327677294794812168751234227727408190152242075715972719181832281994900263477573148352768130301511962272417817990422988992263006169621867506467858932524175500490795112457922490312939583630679020594068511543856351772511909728853330986664482035046325225616307980111346933666469228540793539137783777179708011864673334090364481368780482238093508685697174784862528529533064203589869235420656160860745334618997837806973450190021567862872835753426623457030307276359622994209940897287558614430776961299422696893522817833515057575738609512538200988559050241815068861025591456108348076066171381720011762168424571456825231298609806587916629005085410228491304504029553695807466362275251123603229541728328019224098464064504393804517362630102049088509013542893755146662721514287197140225467041167163728604423254665203409208485011773088277555689204281777990301256386643651959860962361091968980535871270848156814756363573629117223379586359992433551348726714353875253160339513861572838401963769787582696249719578867666892745650566722212723365137390768347396890907329577481077018522504117149676644725052819987451849215480644449248911608173698562238555217636999921037773220361915362646258626002158861131950664694080384512727332820698389539447311488012058549493070596184198461889051127692347144765170626752600988575401863991796599222015470108909769455831631568639907292911120301614097247186380815385338869388280154350295776845960549548266111298454695579526978860298171888658476591038857305340049819373431990173979283859631511155358571665559049615786048084785402479479909005410525974829774815326129163379368542524554454900086901633789854091495174476922977952004537177039087793023178365643392490737990522718287027268495839661932049550602218286706567900068793796861280893834890222967075407007983176621118671322860488444520060374446757920571355361020802910308476474193683237016517406570215950531942831905901866943233491905230335122249223600053284506488371000857756343152012916059374734363915263985296941660974482249244425310135776883764521857599548043431198401806881524844160958906248186126888051840574431263000467785382321631997949099771192842728921448964318065988720725503395889656803912951264941256334075130401207841995254005466068391344692515743296094256050353153701966921613084591779358709364924719347723625882881712745571513724821297515454079359686820849602862519746757421786654735779616370630010569332822171056644467317624853934472955488335396075006793363863560800995183839759420468806972337355393531404334141750687286356266328557690408122938714656889176996250184014664409118569998683379426454595043812948539389721301073474158814551011309329157977427083643266174728762333926129847400926116957156939024755173019487910249805738795497141044377136835719294101182112074862086605833547276696081517601974610990182065448405303621436174118273403820261150284488075206596399456827412721324141269492854866035795934523907326443724435184530328932062408724893753560444209420636206832019476578387094347416031844900114633598574438511118338911573595478285282268186437458860673716076876497933857340448793597502799308178019519747935654351494886501254696806542153363814713857081284717216250066931431354049183585229061549157157362969776403202057536040131924272794950513459983302823882574931888352843805348111833672907258596407292606370846062614127990998850688758372998558906176455027576359829507570801734273807011097410629632573035871144666212050746270737405222948284373184043835344908774939489781281147723890524140551498354418714349021363589987459993963086464887055816865099276227225190820373464768067312941020902181797839384795180189287918731949673199178002062047096246638742449641871628298752287305219369377239445025377237406558480115025132382293158420001832119427926094221504949179299510910662362804114431405839398824906536945983914457510518296308919549707844384803503417675056812292668214237732839307571299022208090402050011242128440831111940879010760914478563096064869417405817937629650661243648248563012423941542872885703171279754813100157350828586007509235835379358494511518942969056173541185712157501800468364372166529951714091868267442779364955658853706209440006718763934123269854428157967710078907375173961886196064063894219369567814256295813997241809213752504602605200729271726986635192289047233195276135649063721485967568632893002424965894897858365739645700738235251101570507991158564661453420842444319706076700117717724607166768603356099825482409758735486661080751646057412654050666084877239949476231625141872576149006583698835389089578869072394024228139081529254480720817896781495860452922691064284332807569974216392808214210740631333706195799850200455645317781441990776284793053332596339331203975549902285100262982427286834541467824194795072081030605000025831489274935944255911833777294024755586824076355769005335969478569366436605058035170888076396841253224124940174309969112851464617474841548097727471865495176857377534928308072607221713775801560272589321259075747754241482473111393108563288948112949030502118525603214004129884905153614551414827030914946871607279064078819342422062089429167948456404857657335762761509564939342954729856076936333609412929272605123732272166752048062649227360536720125782083995372019829805612716494580366978048085110179816513814952658914077890882098817050531113613690276612739518142633874200850049108965641948529056710370644823191279432213216939669026114437290563662903780091883478075998921952556925703854200815754421724378315291759072441269134493594868105254774392612978472814678667357258985975349457159319582739652132325766560072294172333699156069487546897532206752115528234709419595181964746523980785825378563131296304256167129173854682416188654755260259479036520378840923255958077476849769814185099653264482875411032388507562713977464600030892046395204716134047763234011889778523998830132694147771688696073174702759193212804318807593544722259673495012083192425013230116742091236600047697692161149292614606127623053782670549965151390770731690810051642222634535725791947408332912258868819690866955878643172368855033371840257197635806729269079595345300463366419365440689206250564424705077862293806919076598971939171549055297929910801199440673630452509944245440037876772116778889099840464638815074709139428120472155787119944723008293411193044596220187840593300764728669028411577655350929113728940996503144266481674098569007707010870532140249210022305159574660014455452205593664460808305931307525554107355307620695927284923120864419213134792930704249093958238698569901246212578155697424523701490832687942375045565148597458860449623578089952870938216991979280686296393955207383810070428882994875499963905668678325641801470215757095832378699324757953977558019631748893550962602149265194047668357123076963670758756489150305739154895795264349376386790766317750586587204839025997760744603584932872716239078384774724542830739921384503057892725637212957165460190067688847553680566636692818680386166075967967339441333615201876795743413132958623238893207087399584868431035056172265285125584841804358712948324313360365719290880001484597678337737438903173851897134681080646135431918746922617372370421671281343097345052151204473213236607082529946436938645833246903608268993462254533543271301522004468874956590764864996281141200043610124978745272406973492395878851310857138841975106169532957295919999009966937386431730358756422408307237895724865588575784973254187199002137909164820360497016590883638717636504367399623816912918873369261748244689130909919151594464380034983553120520741860249214003942266139362916783331384221493262331892964451929319855101261751985681975576470817550993726629551345492126027422267283915268914028999861344550139512713508912981186288945682981871340229503604375003762049781281493987316724768009769244166377323377354425761099488394754244246326828745011313501075076316804121846711933243927914475635119547821692946433518832412387326818724772420544599546968262188155625519540527929775398473992846942142383870714091900054566626727905389965085343949625176707437169040271481447978208510030421288618230155667081023413085519716325072216984034179729853829189541347956088930113777223597867648379000234845737643733357362199947183281721265188144373686905214690156046553979423629993240217899769370922731418795938076805645477506477863192289452758959159920347461981252095661211700926460422103578075912695482161186710205460418176685464891380419029428672084282978058869399680188089646715714062061757380301799985122097419938330942551764511427001380107090632636628928282986723376745926621046452598638316704599938131112408467001703733859390573204836570476737583086543631025618411025131895280499112986179289332732370301651951737622585419143558916851150129505975110430978906276941212519762715789765057462491683121796122872020881911757375574573366739438648908638943404812594774478707839580150652662954136288046082201158506827570577165636909554376389937087881874598572466994821854506863648244632787149173666189223598757465087300323406262323119065239076093212873452084497416210438869603931793628708750282104554217211299995701552790167589787566491598180941207508940810179290853473425995723434860778383613014163376701786376282325280700661913499065681011174130190903472603339738357420950611663981219079553599820162765160472220619178654781182749653374108418632350920059090290153868601451711680902270743416492343223210184724325650687838064383564133945854144152404211663111200859296432318594774849998229094620162696364360156285590690987293676252955325447346499844265251927364638088267267265440278236018998262608279978463437171788085166060084140909061613918418939001657449006045111625449591944948390775689155682928698361318459506464318687504409503232319115200615111092958572822735651037896894805783156553164804938404170220266347099800067180074878400857157096720543780998619206907044693630154178278100510021346447439923297857946643492960115577909314956726609510575083829751537042285989133905627779170933094470163606090675485449601425307124571820819777395034879599283374095612924368266562053162906435315868214246774289547978223715291290786507572132484085317675414255210136795924914516251807123323556786652653775817492491888616180989018232800337485504456612098413249041747658346461868265644546122453690354616715523128967941216932033773364080049117663183354910267820244954912786415697942280759932050320118673864190657606296957196095336485571692168914310833190196343649293063261775339464774155796789279467141740724575948204332314135092013731699424052814740531081188609988402521098590854051437201539911914061893811106993307914837218293744062924373624876136292503923142246738394919373673123145809601336521160299968958630324984448491414919007440804167506732187908415807374356952479815066887752071900269081989419697100681078154370237468249931819741936747720181766200213382649068156368708035177446222362376389032627698799530556895662979759263561784815389620983086874416992521394799583174873741471197169442143558085153952374590375464855424508415802043633236352108907918076307908245002380470299607229101831874097906819190202325692584511625183195505163065347212511697084717454117986931467002428969686138606572189555653436641349967639597675435650862113587978612524307258518717884587141590822721283878916918599162869495744779282388497683359831090834315576114710961600387890189269053128993448673323106437023324826136409450705251232091985004365037542855163962346020607783946498397533352817269178951961056221320461409175928229343278513947925054406048220391674777868777060149009821901489877135247870093732522664125088551510200979506817813861830323530779421498234924636362339819021416092389494803175267620096030609759762361245795030282354798190374330971636487898572942685077286728180216611719050927118177108307452099876929064289928501314963910278686058757347173932393407144739106874235577207635459496101461674605699081357322904087317362351408506365860698806808940734386921447830815505031752391598260549416081207133932188270744412806879691737799077648191298951831970103198123021073388299528997912112486654199926062861084612508183433296575434501381294548516353194004618550433010256774148148196144696706569267980055799546690603663594719341661640848659655502499286741985250860240272667304954889062409114062497700183930072635752424251278921512468995779059549080876063750223345056602393125663986497491188882922994014135126794006488219013368398774927780963646332068965366920552978561424534437535788098646085105186734398412604536754470697577960633154399749288859182593122539870377614091141477871812936275275708090828342198293988000728861946785140619773137578187125994056153891147387203144310874468050138998772194943309501987514255495473073844242069939890003328123197355145862742586420361315972791626368912037887373504959446277821318275892249599746624090859682946146366102097489088372657997786618892840315875146284682306160388455439662415603672959150991660959220287641268368799048935184956897122797994790285635355093613801376181757087429771708356449549023909651245185805546293793318260300740888094873293596381532398748365932319367162289364094042435229295333043278804037836188948904198989919933586064611287813873030719432383805344644399023024982088299394429212712065698807076149922207101625559191469838537250589919318382827603767605505184768056909676752675707725781791280414528550087904087253342289653874645283645096441260705018347406658598435004664198755807510633122879583334507572416751836454170561724191784901884592485890051125874818187893149277562264355979841911321843467427309448889733328141606110510043509484595061117895354240504953601101889640293783433301814008897139806855444402553138663191752840638142852515716068358769831180775878066203215088141510903413388974805683773183306422203897235784658719233887188987003577473874845967888031661224204874395447628397950222884523529364140959245574409274281927659542831028734723697255850405365863367051458321765216865884108734241048034432998222743388199546865725661516984382960646695173333755669631295186680932281467345031711113099629137730204959642318415617463682073136547731343945119594542294387738705107044855400131766807706479189333274434277285020994392441577016779364998001167017304052128065630465557526375457085443768069045746074314367120304882784028103846492175803805159372448314893491840919265714251081561812027855238493456622303669991084987863267412407866000155380748222915540420543236676110947942953287332235141402066024146276463502244607613878778213199486370746944273682504381818071929325240734524891281585815593451385318248822858403286436773537490946414575505933650920596970802464314038709441978186996345707367726099317944219222084086678120385745633356412811314571243936481080046891151605480615213885723405388655405931781827859919442790414390423154488171125367216515568166811510184990557887408911678315006384811964308187622883567515764228543371714000671971066752270670975358006388705981133441682851768791547084950181122538278847188526522606211429348872617426094140963586986604614325305265056109775839014556045016597671420579278165063493439027246479878794369549865095691715362551086277382169167300355068464520570493031707983441997770147275277176103809438669576940741333430918944499368651664150939370609587635404608076212578707390667892612232915874396873807578644920178428107441683735755473841103667489317988530168376945844639772757132341429321408104459167259685914088013953596640677685337346357638277495404334566309848155321369859629481435440479366332876220150652212927556172320531192853619681989133555151781827550216754961433442482028714117933091964611042756565776351819690858431096204030079681057406711850817439683835545268867498906627920829470277006285079406544719164344050309647537689808913957335835184049256779661756538831455963250680591721377661018752446864323756386779060813088169562721805449904495055558632833529374326838897985377707903426586802585223665012585822027575795604544480968430714915255620372625373401176977583120246338974666970864306975502526765602595693017981008324674674179880446749082237774103350644926551244838712482111345306726632572849890764880824413132719889724122339424730120850428563891076380851945457379394169874621758224157624125324514474944746383708532382941179447263501892007983499094573198763209551024551043967862780972990440674690245760985802975837435979340722313274546236602211631071395279925120020221089622242090711335572953292185108878329407548079132836314438397306263204295928760142753612815156059724275555869973874772120110379751440508256148405614239482716101477149484346998445386237989113867911228382246493178245209559714872991983532529673064155764594347276485028486278240289626500704509569619878027832709917146307033200352413195207396037093403852787234913903911439048105127905527901925643821283187513982661306684742137037841989385169254648542347918195686381595807347066146553750396194898146032459722192248106891504592787176323098224623968139404435488053627382132332078307371404037135182800898150891116850733368747031212994730335877802634124706972333864627400316230955196390366668342290483640151449195503146297290407955995852686291912484399253212090685117100889003371353178061339696488740495718091442234078668493993444430401368696775285776043921189034979539718161344033181344957788005842616012760960560781469628920080790475214288041066613681564410349438448038924230800421888675286094100411012974934325611360131497147741057676342672037951792878273495756659795066631334604864708316077838257877255012821095213169860526748087441839748665228403259460249173815720373774596416157700963340278854783356349688792246707505567058059411058672038598283961631693898746808686879325080541875620535042465719141127794071764622070193133294824847208172940532610195610850810179946233815909107014233214849602692419840384528541381631696170063391427463130768366173464413595132726602939420154588530296046871366724838552545478594676756626738742003303976671404635168618221014600313795436322675818270435270071178426623776590591233733085781655681058600266720292718107959366026258717877488006581925711802393745873061461203873511551032213778136203014738014965481213270871332189710045656262917316268066758075842826879146212037184817949137130632539358007768946445638259523126325771932161885136039943029798585060979327088014437515050104042314987380353378975384776364566013436793443716997097391932734724113595659181802335699033143025889448491050778150469110346281432992254752414167053456612980819724869278135622670998293675210847062566428475281513477515765986187209315472494210490526482444142674991956596037983517447012928781701681936009144474256565848768029520704679248656135072790950074721173135141220190236813830245031096679326791748769806440493726248496415771853420215568711526130955078171741443218788197304384124249812463035428704993873567562602916542088230879836651668143072305934899552125418178898684225179227479427245362880778635198656520034027092269064095752063322252130805637109764476163315224100213055201225546475781262113097654514792870037439711443231822789485575564957110537474947301766247984851046565805646141150251849948792487111517355047548592543101032858035104742515170190228363933273059657363222024531503845653085110498150104789506778072777263104656903392787971780651080031437418500822477247336466669885785149538668523501980132227663228899764394868446243781655082427658835064012051940731930843036327378288519580356077622918953577882507071646321709272766777338879506696863206276408343272671889855663805362179337545137683289242688475637253964596703853797513569304144199948332485550739742742410108002997878979104015610779550761722174167974902369040833582843637011268928760322835415019524454557744444097852177115443256125526210749531327107058446021979728668472503809668776617465972018803541631677032519413384950982516879261013186975935459656986061727038920436376059626212329432521039299411195685609460001028470831755656280346157012373715641462935586462256912619025159310542330568493602088004789270901749956966440764738046275227419251917546625387375562317426318591541867321154681380613775574847257911926967704131431160719229475129332709713254446620484695651748393015730791144391737933865198161889608937429758430915502457168569783185905477532492245795745969887177889489724024093126763829220758897737089520680090366008355088493388418087320937556450853181378865308673477692339216549994264575717695147083497509876006818069731399288501774082634061835047734432598750016319977547626574726457967131324627780005727557886330423498180258593566186085383433796310721579001037540136300918703209558275034472123474617717194794224509923697013768536890663572207676674959936834617199968704885669135009848930212276955473590829336529223769271125732610094461253497612272531440875597718448537130126163693351785750659596792391833420203204118834401120921902747375412451405128863694837583106580890720497027523981220530474326747482536720782186968724783220131287685500450797567061904454404470007356474819318036541462027972225601380584909975344970272192537400256426667325462809480919894851312021232554958681440379823118871419683885061169509890431950177617974827406216708980215922837295182322033698506870005520903665051418692309261382844887228259559651734181786596938922012803768188151996540349539745647825436187068836583704800830473362590550561924122041951253316878174051085595198616071977094532800283895264965596577147263090320595099416063375775796181204447609486604979891166820188535126606275110443100627226437293484191665752387435852881029431592894463774000260974379354752501460940693675505292476258958460751869028607454456641233000419761545863823786701184996245752040959259132215405093276926219485957024012448476843918289752336691247635272343682127834497970358615926305679973959502216089761160425979060476462437519961028394498342730220205144697300184703983969894438963756097646563934607443319168512949717860286036782314373591938551835570188046323698485086277596151607848273963263451371995433548182420297628103511292850747483657734439362475508403948832399961601710126461988376934846203495953019437109872482234724964734999763656775561683916740557369012425736457301492941379201932908089937901612250727684347704600439688744381007547269885653944661040815340430112548030472062904239361302418835671118240082406294457108531885275359524026643510213114942759477270590524500177915991786355856000717681632111582930717246751290809156848073133868906961397287263419795049389753686365654913720746315438216533499111333270819774947857937577182922054410938813497101460906660105223912606377808407070127373812614152420772288837607489674592464482444047439748307820932348085303159071283413663569047640111747160679489940152990644011788159402194441931149949095526736313268772550800045827616406366441945088254425355762155993694114812582749315652633912835857848553046329814488176478166057443628125308221271840326650123395088158907276900753067596811188471431460545670551848114794380778157559852369004486307409509509771000524194803416737082280379965974824396142094673841105498470512790470232828860026998692699875601607144671945555274413367023413533541882717180096145625228855003324764976534564910936785965563853227535276901731946781599176481286123178370991034934347597172211675664824800135853881866727524920355082129617351550805265259244499005535280077123430473628424149559164863330299065117231872655608370312740029484503618163876515130319783200083779150093922235698394210114671091082772955602643326685791461716559486004349197609281061038127739137958120885609394280264666384613754327914592124081236745022111801540421205282282681171861690814723660752503534334298183456246176966983710958802989129548830540013617783587091849680564663468788017552707089889456869982426669305039517073831831776245242744391259424677412306436638281068320985548779186074452763565131206808075525895233330629997216131894283981656269977140482517922783764568826624978678884115561607979807885280364049075092991560964607428199466602391706990665887300170336598810843392742172768256969076831374205623062385865745605819283157196610898004036592073919236789872201150536046490793053591022801614919100358042833182697440469280751174057554416047436832867079660492981451279643972705350994843539563322219083449452846761168360647966434170421323701631260269202200083961524517394441726807690605460642652100589062099545227827800897274102347028876820860259691012811479682887206096020234457062110854824204836032898009577862773154778699765286997511606782875909851739661274399014780221011123368710241057196277800881555139916307645625244689724062484581292517083102285614025310396850660770550292092799573168728059683483380341531256182514418582142758816648967690395644369311851229712193035265546176636688063500420625099995416401139237159307201404780772886992593066979644085734689401260192898255185844998457302333147009821231294657309793442077233106178509601536591037438290828902639702872568168318189357918019299512021279652597697186200073207457371158678989458461720343760319474217903946224974381791351281151422825356107428382435104865686907740884746769886944686903199405601675977716348062405306739093526088882729332925345582274190743803363189881009747986475985262440668016546316381171207163417154557918827875240709769087265728896581438204996965929413142151032812127025455852158720060838337547179139482683836480426204321289338201343579896689611180785951099960722413034208909795358174082736074775452010766125904746871702689747344589562256199504368843812221879224787910106844346929194421123614447451169842705481780878082609582677070795501711440761072982456054200911932136347849879294152127573374933279693394858650051557497901139057426803773893722626326133236290657087970448261161274471076952139241372162674503212042826375445133578738617577061720772062381658482395055921193604417123625130689291603872885601427450270279873090315746312508251771452936196223182496355762209774199474928919654299044413570023996080207871756241160620246539811612327957494631038097459216597119405558896868919135152399346731199660594237386108383236882489420036174957530031176460106080553936211322607249591983419200233820316659088788382792226432495343070511048976408049028191205033160625018597089931179128637256487174094224179208173009613703996953576241522349899479934505557160061443477599964222974298068037499959948692600313404490798835124265643383240391365518187072839158974849509605762880441843580569626704038592762723578799776227928012214760527744902453740885168685103734564889519461196245768267113058791583579936251685754369798361307065800732191061968863228562234139710240004500026618163729554344492713178163724443695542481081172435233007762348755279933191873820920843347839813280573514896181073214136317660070030481183227170548062267314995953229293578278781315355562917017110687493668292763280005850120660498930610347646181572662227555276966529337799378165953426461661000309637587705459080224060419710153333660076706718458216720457316039429238661755475196116456741506144497969545653218032266227541748542445904954847545748035180450779821882445925448348537081685756195949894384675249183496017160584874294742126325143026820126401566444725285091610034121678962252333187718383159933487374177326701292358023220329793734595393100980854380662385066911354769767730128824007747550503470948336792156008327550992698406833224871578398952632403572745122970494228270563790301044090387815041211264697775304720227687622574015017372883297485331395516930962339404593411366589991179097675783582348794884067297385390174562841073368617529573951733456799655423422508701057529716453588796872198271060021037851691558244328121501291918302043525573685879614308562025854054305316369962586492143894982988960527858529957364064408286362039936716670601051563494631978686798604159881533140442654955487904551214089266719627213911809686269925674392011372872691505709405322595217394211176666338916407657813271298488590296925806169553255833904070057273581311256937171852059584206774459508063180009617165082244753591018851074313478947282422784913950445298943115921941425524337127017605408401966016200770397483501257416014712840024956823374158561724884007430864622408639513435727189042634855426512774037657177778394343568648162329716801874839911765415477001977715204605897661104960993136432654973378822363173224734762925911077627855121104837735394334242533124434058026668432061491966902943690313695722557392729922951457352043544939448792094886365477503819889041613467580716727655905814271654543792844304840121830809226479232367137103427508976513465565062082863110228635245563097249674951400850394659838386795253531819120535865631978497706318412972658666931851793893559250366458988080580145781980720127846534921691033244797303418144485548070610485760811287591314380223736633512544091463372379581522356785527194180411925112568012830765503273094989109647529169082032412661190350434449459912689337891388628207853600965142902410607662356948189437174187310409863541673461146759409919225673867581558129192744599156214701598121893197918934409623637937839375021936962470788356987477576253874294997390998142079331295940297459233592175781921788411325031995279565989342750298163216193057934963464676642672005530315365645287629810995735040201460805991563359476354896951894978174762382117739478075349395368469013692332398599191493140403441280317806207727328614805831850689451435530150371035286043317350092210087273675458026813225804679110320591452014877048691665355696778984927692800442636721755138462532676754643747508260221443775850939730191555078332990111845470689417687414647630204360703396235790398407175469066151429384696471911553599902477242696025071431626312811109212772989304015623582641296268122867904371028315349457019125302669228275379292081769191593624225729888498508993203096381893446271672391718889866713724078431738713669503529462242771457976368091235592513982104427703292720343981870488377837863460536728206972749388332357506924263290555013109173579912615877901103708804334933780571278656937527267469106726146575312675036520305617516036994407938795537251274482480464827986356293536490511465826504108410650367032280385284874024472047291446094720613976307087673119873883762773371409017987250738458702232976084093277399148604951852964242867243765113619113455752475149096401937993017499865477658197757077855640516907091416630910509415189159083223591918201787934388001729013554909559263326648925759716293473516314859425913892205761046352873790697694870190982927208399377451329969197458358092512726670325975316085355608873906494408706934392262187821275314273711711961830246761734251124348719982402848106791813765664677990131995783844234265614723348599044980084900986250567273312752471651520303558786315467123302487321898354071888399543274926619343742571771336674999322560189381776936505855084699608022846078758885863818556828730303617871623542969177642294906990201539199725522392336178099931572882065891064049023867749791690741323887344985814457772896749915904090901333689957048001314840196396567620885483398100625378330041791350214261378817646331786413718013499090281548859752858742416981303743142027274151414591667263283710106511301693059075866188958780931300402262190941253806109246240825456185156497332662026942926886020379019616003786143579431929969651395044178967536529350203828112621076668587619778969570541110738759522543545710962305567493633784258284185978057700350595009769127776746423873528573215062330205112059982187675777178323099626926399282330304056650526298318269531418202122850131913624655398504430085070070558921747677907437426516443071079366367286950688271020704842513965894928669816441282514853606649008324667957692743486788002468801167502036628255505377093557982389445154839421904781714317009855132813142540874183896606146972711340396413270384233665998535764759716161973980783619459944185984148087433908716882389388826242925864460445596661108607004209832674905346666788159173194186922045919271794080001561135935274693092986259620234010250959625383502968660843780751173550263016729181840852430369018651486913639705201756698195105537680747760468774965097214228669701218925728005438114070673152485645018899101294718295793621229421215703866874558099992162007292099199396066538712432077999983580913796263373089658401015359341059583670491944777661441845057766327979092625036305891253143485316735319992634378547540412222145788824266739271111435889282598598751128149501702666776517182764054571215039239380554758446664340385249690464990913544231140610709601428850265675219511648903032194012204428393949528319665059377227883645191317027718216570942257587259111735454478783294052128076603922354255889078454809833354685164282622465483569627963685511351250528125631599262521391512502028697116026989322319738249812407999334583926076312728695567167208027590324254669720532601692853239637191043547618720758680523414968750700277064437437034279875546282604290339976766171034310587139202804094658563054126629917619918238621428056324694071266688079588415549606172084620423090964415931546116566898155869708274239947175006791811528368401131614013472239796613384927599940182389646388401788889257072808348252300473938069610648272787920448398860390393111709158122125485039561759776652648285108722602516793983547483150568465968644500653162580301154299497015804308396057786843006183056354568712596156783359734454104175952257923316986662150005322282697922977715997773341406410942359722640328608604676315196225324173113541563681374464239011038146315989832510493700231270419904550299245959960867524407337282741966869617934802002731609116115723882110891612249563731544607660186394990587236431919513654292295025663768520533425582690524286646192119722191292809836047532232416852021988982255989645219984834995037243044584705274930502491969893455401929084418263900519129901930773982238245654772836480769284870982434898151083164443031795863032258522438995920385033471514126512162224785689554664900052375889747944426684948012707862712332952820215927353178376326358489371196082473965210455167526390791247894237185258091592271649566418566550508100762429637088448232214238970363288759434442423828389245473741119582617508636725269790627391890114572233186891482115530282801701431210993970732548754975698261362463752680563217905422837970476572072635939484590285442393844919506993380292875029888242450475401463740790326032173522399680973057616198969752069356927622035393722482404785916515610876381593220478571998220038500600072899010566243139201082899548722089135991556899929205457585307839522216262851271166045139576303382188113002149573206083632961931087481664597670454492355716371273055934246772068127275742651266407712031699996816192815829209320316691570842171509952375091673917376997101478748108363527462060643244872179916851505987116705491692468269337690488019660978300114807011325218175296601099981318059873501851255073903854842690186659827318539640179585533201946237454825234606680104755127785116375646275592360442141612984961726623798309489960778972126279900865557051537191796114038143616736561247579230794939377283448376527637565072892655250365161547839506507961059844442935652062797877491102437579480498232718806824474486130049587114283865141121559297130123393684006610878517805347738781406023606535280044626572603352108494388794855110318217516998079781929516895905638270954872933943702398891196765066417483096669529821654079942481994355650305841603808921529008162457648294039544366072373016874048577526639818447804168698551800780352670318129948480587523761255819145452558793709282866826739409499531374211732604186280645221399564377177655646893682559096429934853397585350393668181769094198376026947449815846903196544214418643857227405020900671367397907561062561963440010190875287562845498428327771088070986100250019963118477610705736907736546754754863280100128810126914796156173490476583388363811125881734403742472478719831265199439150851939582210470799100231566339260187174950505198395045452398489421644002872515271541561424717101436686297726675515501144592696557700852579245964885449904089473667591217389691848870491398880914877407794754454553849717056515795157597163109384651379767066735653765540979804922382847412274515184101812655332681528517997348606967576177614235598339496184366703459596935000019408363138237278199930611163774508066385187333556410068081989775550394237861062807153794540046681164586912766960601846872428398535014596851086587947485428917922029132920183523605751765410931052671844328293141314679215200806075186606259617906839382198942803488638585917507637676679257636089910992550124858184573454906688520411917093085431863548322231070474766386262319927502716789542929061186457541182239156506347691666890288150588490780479782700631994904094126913878697833420613960816651628412479850320545577562415967115581047530920257865161791421788814726864188927465781446031934843112789730998328331378019869563157077504428271996677901383653540890323297840834282578890719430801250113525616452707409089806605670313417383240115204797515389665258029490556635872304346274698872412101794856603572864248809942603144143079131181585659599231584254385625539289789203424735366143178292924082180949756423207500203535470840349985051551807064534649146310120010330001529315683807094653638530841460779419263372694090825312728219916820892611844781462138400759204593338929561510768488288604539037538285845094942796566905560999334721998230382652709953149261413042644486050056814497294038401412366313201814049346966278552245877316086113482041851461105321544315716226635373539286520652266027358030426011201760534280121723141717437653371900508980058946455297255556729924784652359557079544886657528082514297767740003227605191669093612015382675529055284319361460249944592007689793640316442852880597379858389804112662680753551496450815767351540590446439073678849523403102470552555577427891330496105629215160944008471094483367752605234900866282917199024742162004382334733532472052491277250748241194663977311070877131543551464243803673029537863089881048113024290470570405847803179856052608004782962252399696793607894979207787454613684014738320077538819528529487593031800652764129964523149612274924889674692277473919523263384976025307605819586261172941102023410768829651070545066172820968356087477261240870930715849207453695558767601987757145868065063624708063942957198029598898011283120319428010761265403386963721299774484032021091732337012703151662582577851803817691583483733147633481471136630589072484420897857475632835289703322056517632367866037830888478746985546959233493837251411578615285789285333718209814842193703679017272769569705461806740818993887079989129741889023670784384271939115895188885090028563141232298633413992482187943945740313742798898640946572140162034333630224474695069305263093728476132103826879147432729962889319022949859915673708500095427775628263984221758986375999035355539761671693806709959222348810284409132293377331495237915255775571827660379196722535766935882356012667418261267711036240825171474128940261651550809116696694447399635306639952276186609305926084484036665676531798080152418213899187242988018502920866628453770004942925798209000744932676030469190109084077234195647888812443079543553241417759125608350639860326004263772603178621517367254816402654594739780209292734895420071241781599784124733588073272241576061252674769178891955823158284898942746789777404974763939352571149834526464232591810181449693628467453605350867002720692617708995387127562974750288751866367340809851456792039731238463818160818611091002338104374171906406174412320368661776485999543184557713117199611386831561660668343596800055691506706896956266931963510962107487597498302315320158266325061349109202348397197120101119828968392590183935220873059968132691998422642058916989373016534448710106429825041102382478725318933034419929121883128539150433802809990329536526126241060608303119067951336476076873641153144056746072746005114205616933905793156782242641851206238507333223060823997341366181914011855940864804869262546165554325230279652833171602991947588948565926329216458030904725524476908020312932028247631277780643046804423749379141059747282562769596570648527266439747492737424509551030041387201515827691855864157011489967129938792593569902779571293841984159499125968404197030178212444965130636153473488191906973777550106938469204123576079900737070306327537732408879359533307622538935267704908539375056231571658294971029704164529278283878330947711000276133953809356964814105528674687371981068553285467667297052530044311714026466202505846239259848666030559550580984627401750351698652650586877708761771778937198899788133729517604524339295989412134195270276775880882112197592404500409176666625488240627395297719384272047039878898523201920089754601755603231288450325842359931138647156292817171563590865899489846778125072633571692294349518419528604420852591867608367510782881202317003275515553045241339690322212853002094905159590476560633836094524293808186470529382851040345038130521167702107538653535830382477064375116498836500794096432097157440757506306353415305987782399299662357894993755163739718145962915016751272700220161843075702565570983833158012538963014902206146491214959783836652414348886350918214102975506314454952722071199720537478984471530553178420749042227665465999078489506859143994361528087873761266854169088471467269506793692333219879298497078937932222865687976723233437740006101020971662702818080450767595610440157651670518548803222401560201743759093030995030470204063684773874768721770548952067525009808566339611162398495865394356487654095254742141302088284765567331008957993880313201208825929097591486194324690730502581036867826990185683323056097341915492525057256131400251498286308875590532515680132592382172849434150812649969802088874013522668408815971900100388814765636882174720000774230265377849948006308079101683008881193240578718730380887395586893287502113535609242785845471190447673620223101857870261451536846851427971096475965500766650844562348556986166286076288051100507648041133739798045059681087272675330497958092770232317081569157218250945239371989052320311262163051673929758867515252214774598174438092947130924130924338512032084748477364021923716794025172595349647635734586612090618591175558809192736326596052644284500491634690631298737285546965415802101888395120941851306316491141323196919793885981427951231189484515135583784201875218841465246005743743195211647293318141918784887863805084859651041341021847343888249019899869241253440104643603579278278980805490719171977352552889022753242253689857568993478559890589183140683542269082394432895775218516561351400378983156848552348289585139674228334464037785643796008307592241831265970240545552953261271830201682141031204706207902015950677195168298143630004314678271278214550980373659132874147196368943148540577612550030169398928711882636254500173630902534273046205870876423143670194227537023419602591997103828430538524890257947153164669597102431578490641344359365916338678806385345387040217545975000755520052367650844727987641403097562910714316128571125481578189453120039098285584508230686148152799098387119322902509679473208462017021855548534693045667469652484480365885785848507194592325541201683508182070213622000617554170685592431043050982756161236081285901164271952708495369887989221614950490557718586009053228869568457511406454818304023371326156371137706223425586113412676946511694897197608868687049623448048834540550775908462820205502229295033403063428758837388405292168454261262764847903200471406926142630438920607323510841772012887917585208654830302467802646011188141974875944534156006287379912935353171606499689265116232519131347571972152790036691050149869291896235233535181379812263488374231088770370086999565416533974751781060028431126029817005584572710298162324125874211631450711367955830173426736772510776812406438852676435445428976492147304326065212467172688075621898594944563355536530999812487016985061347941987962820942594581741936440307787072761341588512516639922643334607017919642044978577437670956743075092302993555369544916177898584286661731483782653590565846325182217864737582444864015910081118311285978720783657132551910147313037177779534138298685059358882073071275076699823104700560087682724384702878156251538151266050308264580840448348453349157262268646875843941551523901485166691548077258395826494881511571256730520366035279910063268592654053778848125480368660331239045776119023006864881977791906893280338749731148682000171709209194933030881571378442982063614556441829469885941431162928006709089434559979644766167312234346142577680215639318416050907169637974406985249340204499478205043851929404555090476982564291281035886005403188905202068064072310376836898308858954087210168699596296277497118927896273116562229334481216015481605232891272956413484647274219456394751124547995478168537899578241142496242491978590833682333753322454962721778830678865188626553712806202264882961349054083069387853595874583747372885514231100641490661865211350024766634620427835896024185343121310729188091526907262338922212144322949965804761461590525198916975953276452621960803487793281611319670780913583456234975976070063562485756204144179946128609979302457673697901718246099294251823326357121867327354227951755989604189765169716012522404088090689882826154213399095912327003399869051786349987074696339675244964775583596907652013755510803433398676019377192402114265100594448647467592684840910301597972966968790565560921396681646790732435638579159478288261191829952155390629993948312174420932078494196206884775423871404426236469911905251088994092907661428408793832767070652421463279243006218700472862899074049186261405020222883349082878907700476289526571616752828201301871250935909041887398894574838159130844681976185722964462986750355626822532325721653394359592230393818113827947412420970615070695214936457266498839936609506862758113488066140183318075215887538090884537733895918971497350401543526213527736027804976296613968473288937523928682269408378046966720889467897883491639095866161322719572550949531471224044929610234210298412109317552593338914162311676606292048761138833166526430791275978885406283389824788094162313493171653599191905360074863724960430578360675714928916223292055075267961124469661185173956201340161626486325200467129155829940529303492667056241790817130502371778587293005810082603774123216667405995663942589015542190496857656518751944663369289356912497129249968321251215699432908972336456044469105638254874530698553131609954934310820259343790821668335808882495355403195901499796599013944440643783255408147590159610272285691122347447377750111052438854090566116088388394628881556664308138606599834473602194191695363105785828233126363713698882743817021493551864637145629804949178585614707499611047161235078257452856295309053461882117994289212644995161530526241117601523210537182375231962748692434317898498367110889489325739928777343113956835524252805468755924290715673757737135962365323387660553069779744723353714982189585877473790735765470767781667511875889097101004514919719066172410481271570494780283647172216347574343895158066676174457004078005027496127717249828240450896051578535963566377061104904116128662330562948538147066005075110675383598172496625167215463511442292045910172330792617331612733026534828100173629230686666385431057012487227980988578734011083177498573992545031661408272681041030408787886560954204351348197234700969714958191954357181831948821931367552316159400006340223271151296630435240866955258804836288451860266786130038676284465601671395484079047395065268478711073940348041584898800467766840528832587003425725940287174690323572601679498910388543451636214667410824805590010384380733312670857907335232065567943880962937587155248530285531681934631642599165243428625390164647964374737773804613441984083444811051183871455370326199829529825455412809924134842044649156671331639048182742135499690119114208022754166160696504146711727303111111364276474676821819788358000151759338736765700573555731785986011824110481659152642736082521459468132660699563326150482789579173041099993049926403452656545384093890671418713714333949451029313631856700236881620729039299989214827461067266256660054399761967429328496521689881354988721816315525427972021917719196640156025421153735911792816887637147633563893069334637037789744692295734724617528090498852600923420012724813117520239772116196466798207927002669089494132490629741458400337177943856264061441573123787011603167535104020511718492884721307037916282048230224637660809406076362466010239493196137831706685421737964691212758425819227906074385941181159658462983559837578620681798550275438067994632838081820190921798607261000278028559246078831339693067544422487066823538363742301522613840858378107695501828832242504163377155690737842967832154620881539065405634965433409681095481808982944935684655530777164153996270024169764424123738947570253925124911244147643087714231662590258931184055457652290124626250418003954779023918823106336311199671839346977619443140935763305791889582352660178064885891669946000316608723403548606198680888974039414474011761316183364873327992614818733236002459685747568842883276302460577101479120477970903202116781194173625469916277446806896966455850090726857301651522275753160037158809012617849758404305343929174868896609623310506867861529304690542908803224939800259061270231165053340222892606041997973349157568481625697098365621298277363104644942920283979599392982376653122575897699426469148989526920058190783971078921990360593435959246615502271238419072064414822391187442013804202383153506519309857597287036053338121057815031377301929532749117426462189917910030145943006626310438115908848867918937186516220150289329189269037464167601230245513565749967346684496552973151949648980502626570190233531489218216183242816412392738411148978152186172662158106450976921333311694830905748074309671515748746578693149639725194002510883093974600908131198422292911751517666657113745681857342779754438997885853471479332221814979690206520993190000773334788719687485883315447087255055451902374675183422976034551846036203520578777094745046806635281124689891454008701624791297866032872648812135787708502657326046289897733966748120656747949556732055056188810164550181520141789908267879418250525532354530734473645636793475943220958489536361673080694859956032580872374144898359804527644806361948565879303294741832824989047814705734160946336705472595905796318673392919879747433822442652611303958743067134266405036506001312464462293915305489096579603901381004404940101243710933317642426184581632356626026547618389271636095483196191185862504097384420905687037524396818999871618426965599494856168645124076653411564076868508287847837901852029324639197919382159446620043842910181580272736798954502297099678689785197422307770085241406317241647311656853870438673031710333317610241308215459176477091557717500133108370520053002564011362170810539015024904993684717805747940014774656730716954514029970640920307061943622239959394343847360025811035791908621926189969681694676999795610999991714076422450821069630861926588887556846825564880709781285833337406481162242917115399200180065253176226250478289263538404102125095438067267774827755485539178131197931320846762141973207507005978165419291626168652895411215940578570068662758284320151199337050284149892548269220501766983455259996876676922975835678631119497353646249540596286803613951729559484874740400357484473253073664822771767764466134208392536514530899027761790327399501516848821068238616644120413239522706523108894311242208898075469062769901495377748260435507006886594451086606476754262380055703397991252374663355093325296143150726977436838746836499462036131978675491804022260895723483957551529948781251765836926335002390394550376920958098372536868273823108119464848286655362168677425630596530280740046006741985001361171385493697842315724300677736428271213887356933551413406779422299655947857343816840471499517258022659481577225315377893767020048919852492272022043661368419358547469320173017129715948255822866759632818057760143906951063910000256384667139055585855488040332263593713941188256250914297438713384153858059105183035498034002789306524404426151327674532579094180478903735007921004246614127174151254222072386031456842935185877214112768829801432784332145103412760159688540599836992638380069269554756435008371888888576723229130387399388863450779044423125345955640015251918981307935310696429476886592867375674289682567885930543557350937599989715627693483192808128653573901481193488260919504755826108327317537585918284054009496427454961019478550958692123580402020703419457272994485001982338601661311635291785944454825291655788341565075784634558565563447806224343779552829341177055746253341812257230909519714370999970905659393013638698936988400415249263582475362998325306531879578102801699153257709528211270405139291689242402409725133104247615822411853604983552035667225070264349336654278659683672975100319369962246549840632418880626130695114033978016495392078992732669283387568492633275488003463240846634020361155526624627053903269195288308822669896846754982937095419764251116408530194310938390576581796153005209215896438537057677686971506481283314082310687161034699753862852755856204607627302366511465915315984449500585074756114328335116850350156849724626252220027632436608664396130893155407280409291869098616590708496220376996989358871375268034993386568112182569226128285690701276320691783898652102872427330618859192520189328347795189669404779037457155659637999791748480093458872932365237157997990133392671339934520247621602052046235994402651561105534517963879415446714306961549459732312544902769767765706802181561083457980875174831430497473875135525834511292724957790913835005653775785722145679038110179781026095624017321216984062519829240715240226639570513703366448205841020032541941971588085806105650718569531572992650887774876720062729515544933358058621733467667313822777334350736163372341430092791250833769550875532610024528350883756636556190641314848960930223990508903100083870315812929901510052654825075228297862150957015581566287763370797662970966101543031269190442931320132031552038705013231664997593591145910114702933350942632690338240213154311401244760417124949050680869942384184095522936842796786413679795427084573323935025736985082536406992824291404839146023540309703869196105637747394915011952388519318656890411389582070267764184063917909963844773842267356712576644381327535704710173864032125717386515577388878028162321854598189287100990571653993610431716679898371181874605338182036804103866987503852566070046261948727111604228522547086000530966812197479560635594258261638428556240758765282945264109836752425865307332058042612407354073735063290159870744162475748531376460311589255937214856297338856161058434487716096376734347088730599347091925019673011143693567879211337761397392311272178235665536231050186600706244188746444965517468059513040420566788442017334518871699369241707936408714791047228853540009128186610316599507617275623899354905381909700602534307960402553962039375689249746959538768190519549254539943559820584586524860762888881897940269916727255329573846452091497891166991299850362135222409938340697873551125055328246016459959671417965469828313246608890914781442974333874494393016046141523760463539686482209276824376018280545757537703036583655295351954757042988773772640023571529906365408497856897497396003214717109168309081893647126375382746526517434440759125586348862421923668147665665481246115915814340528050845681725354546963216003450158594373645400333154514654209857934909958305565104258231769148237019870783789508799002218731662433446580282169899324182356737485866050690338241472297026802127928505049679891609572392643450902840663668066377496826088936868676679530139977519859454409959640146759454124248350451954837352194428144384876242833403270726148521253655083541882135992934686566219911006324176949034913763598334787538410272055653127150596124171938152380390820535445082819508426895944264975848000603855199369481995667483520444078357133350617045702815815775870773902256267444091683026158806520688999406230558640064659996196845248003894852142076119000603005123689712025956078892798592289559093944657936644773190057463260094010347905849128018360018272828335051626911667248711537849882485191268949709637059068919355823412840425037608769031273588013502535347014642612666320477317040625625791053088151797984560306737577953379784216848323710252972499183303646298636139020944526237416044959788829362322653639948548748506483991314277127483102883531791665530178476305205396525592692535153076313428146963364908771734423279621607420658659163379338373455095709780361311026542068452370211909831822353186222639737018959010876658536038174732833135550760044727208481037320373845099760638414528443854967959076019569151020928251337545504258623022710605188535585375406980170591733041675969224148069132285026904515003939907102666403173864717317463349268538717661570040372943132057514574699729271369571650482211676033170518330505161924031907703662176401591889586207836323735515421118187689717290359410078288564147514106376163312852047323754810225829901574642111337831693880986352895055125315957481925771760340323084945005264188125252431554621929703188605652258339510558294849447041495300012711690273925267900945903203449087060469228156531762025863036777366249464248686216586768258317280704281686182518517021522770534272518487374545944318333972117676249879072816435858299718039937696364620902392866128597181386616165664738577651109988223301326765944523173526065027065150044167982552285211978312292952165309760975249862898727054590635695483700196565365033429773368562390281860463773284367282726999250151933124009510531466783842684190286857880986239267552221568070199386046933840376359539556424844958531648391534815039132495333853457582735111609012646655322302129346561997011289891747896602900018159357296885034443286593835806315796430877926400505588684963930740815053021239869894233430998263741607252090650607592671193702295017845731799806528562743421681753202994060878368428189266303831634238083330351428623416862240485911084575242996395631521893074126766179847490238413269888419645671000375685794453278084579308413885439174523464638354633624216291996738356377082447343656107992524795530624281052020667127523075566254605592026603380335715818537954024805859056709844077439244118523017760829166431880206909635567520429329645751372127342635017659716251625018024092932694505267225962173659699228017038146876153131663826196790517114516321020681509925997371109885521384745266796947506685287756770482767815291167035955135657822932891515501448308896392492309832701861350540592758247017630679880694997128055199909271263499617865166086350536182918672134237438086896544488867590295127745732960333375254487870932395369860874811522946902860983452292921421190374437528329032967164333153481239486116331288448430977570722032329419156408884128897860762776011273397182161052328247274596462623081565845791568629792266388235546292290162129679250958066226398483434092320501097449375090149724436346605163323368593367837476043278574678758240884980082308903315818981891923631773682618054693532007063393571200460119187607369057302146495776098724765062398932332918308515589620406125042887570615548707234389446702152307293651460364494986056475183344218941111313293760358016381832723058503778072038454854255124472134302886289127452308897789951636575797693850804966062044139686370342301818004587306139707553924783231664003960307765231104047700213094661067073746445211993130627298960235679282699097081507841853702620301828166572958761830093410957783438321315075403130407334356136099228270062268656826024424329894059065606651332781882634997772649089447272806349628010849568376524831637722854700248988948265014469135604771901670843569337679972220142312298898805589462984036424043271890277116176905909488062124450224643588962472977335242744300956646227790529099051160223938146647509268224360494988192829040940357927879276877871768667743823528911230001282549028413459106532026338361879512200325817343543787457810227213292463290378519643178341202000588376509160937279293327072331518006242283309041914407995672700816160452082841135068078017612264893099916832215415778769424407848664184336187517565154923693281229702277193695737194147071310024546944998236010845677004306153044671379048816999747814660784973532458331329250068048164564733654476933453675944346654221078254202647340044646762202292132107153358807390356015283112960839475737271697801572759463361042223611146219092870089668083189154885396634461389532863114543199805851303479984206357052660303913120520919735519173286683809750295471057339741663992432179334306658256518194779594376239317036553605025664673048983028518707647540929664360059190386205447019357605039861487509984161130115613087419685572360132832322872254563949889091830682971786726320096685854815124889932746496065864247492569033112817194446477019437220589554788656628459227227296198726379102843011726556268060310609677733017335947323931379603890522245171153471098883430118601306619502199019820898780245092702898414341169606749556544191300947261298714229240387059831030505060712143116329356933075416606020163715702408789146482836786808238613682354684693777898110314776898606986888938484256719116751403408923872791606525079571310336756120669710492236525911025691212695431708507992479420101039593167726472739146262638753989974562363234967195669225212633294769305124754757393077095020473047783026452262783942023514245266828071373526719536161137256120873858411310104026461908326620409353703264698059172763502456822121116317701282283335888152214175460182645231908723268238732648660545025289437315996912391858446761520474105408209417490033272615043304240169137996178022942495665844991529097650390410236921117623312566514979149405170994822861704324642224820325046460885610975944309011058661283482352774084320371684331878671109831012072534822065824916297697788254308074419357263204853819456487501868646569079556758966685507830557291930922504574457827397062686760175584649751158750374106108815769019292715419793334862165569152842744325697370759758368800690043870269565840734933011212458492373793303239665476920322083488602893449321189877486309142848386611532523843049591883057198597514030926756749350071742351034916717547076524780690467247321286581189378967473822522910537559927751694258248202950268304322950512965881722095064858863056362905744483397166920888335244977876052283811338650599667458855492821470659023208603904919336160298592349886433250882052833372074991181200811717822896486614993113239524901523324016772296372434658456652711971200666683175708039472475130243720094453654803103575954701703249298649987807451980355683799524258119459299293851787538089125513619877389215216990481510489992335046574887666202880928063414718857158827118891795953592039088060765677204493248158531240433490576043447886358282674863351233074325437109041827383481280121339683388221810293842016673741705517449853053371793306095714923836761546989449108328600677680622747424345034467811074812204642729132916593186027949367836423829748625152749584788825491418476950612653841548764346060077579070791020496886262855639143621685754683855497076479853914325842158348748889024486284559234270358093631608941739562403777795082730260648852181091662482001413279094347746342318917331086400095560288691173382534476797062039699309740369026824336112622474557650827373350482590158779344191365783754753203913867021151249506343404404326271058390909311885937002369914200839437460433007727405097943684311980041601069069482111052942007100298998429230062409522045493496803963137478997297650341229266944036969778365692917778379316341653231181478650747413256663683274410849125437215384546537399893167594799000843916196343855205607130341910766921417767133000250907447514244552436201581082116836977908115890844435329817715564721195025483149369513239137638709788757690374513853028827821925038080356643347653259943319617276957018082268824871706699025424917302613202836122154253354046480785068700382578324419511594210396945927190393350680426572082122751236893017261807949408579294584567280800660217626867786778778538642380868526941445521429312463659325930741030222958789595228532524921324957722873665252726947936606705088989085830786689588130220793582255215064306720476091899203793214852041196643218459796773858719091801776071602778389852498200866905538439404249112038573578400994896673939347789613862885078364290853657177307616039711731054534985608791230464842237513347639612029220303682881275662303913952682595361374459283753532989319978401756239247976889568832059693846687772336477947790169104058103034630738908899361445202721558067603243839650031531277144317931135125252326619892598895661328731275666021958695286591764941556869419155744188254559160191727499253706871766384990955681845981836982097947304879375729246041791234341990402795436501246225187094916197328059459158632092187601952900588799988027731844531461767450470333403729704326171593841879264227151718949584453475489779728256129080454088587615395466927959499112146275667976885886859317586076889169299638926322697940390920269203197342930506726689848597035202697025720149572117799542365183617571559929764723753301322754906042872509564405200784596425162236152770758353739523394182853532287652835567327043052352091864452144059811551986876016672775101017379328566790592019067496921580494927298542675520539861365837302167440925885280879254004278666169759981062587364052000842412388865906132314091940658795130466035597948689333778279982728654706260552228774201695531937909682700053935488016897167619180289514170174937433402515985053251478466016373258016343288019927146860224368531687594060124512170627041575924998417260710164274876313093549895866762812521161557381175797978169879680217575027342608890295067910602408846938471723959305038860358816521152752713712776369375913608447609085241648852154218758491875317346224296284554063048111723316989066034056689980768151928151453480545503528605290613169636307007957539103596979060343189296228576446951150532330917597273749369035200309351207201387993601891987326393266551924382571575909377633414040085959365518429391290216991929756936112015962965192384629835699412609377508939124806857992689315381824766018377816569542117992862161295659894306708334034492649433470448704046234112617922194717502319209836079563809643016286934069600076822221521016364747477411281200269509725165210518776558881137643988366798477456387018055909150317364694257937109371338912116884708280764956194236624203183020798014924887324764691331888051945774938781379513237570783758665860887171248496261511247629467810062342566128691793388241949462100411991474773206112713619793292960772987894943433154451536009876673594280573234066287653249648150816813835954017286064953422812221858033145282047916898934604187875623849385268574939428905597799767989402195341339919832487010455654176351237274351692878880072510098624203147323237159619127712233587020894026175443661877609250531364708375949600908214144218817392878652178485626222485935824566677146798711214248009670282115240481834756867627678205614993677882119246537922533469714499360950214130560256869231043442307313798994301879404628156050966501987284479834705759460302660110811615585710830124976962034484339223014240067163994627726096621329166992398793321279895698993471601236654976771906980396892146913055935278086862945775822237231825537818726066089895618283932972489381463481557164181977963887156418386966442401094710822262962325646898384644759405191834881654733727967474499037155212590504445190381035326826225423758563106112735532552463844662127416665197436417036055258916613375654473770203012444793695567616438597257659954949250863177529045180909058785986612714069473691825540545269198449595235770774922702726742613175376764212920019368763766476898943879747270933162264436062636812864287373141080125971895363142084400386351532986337255775293188207149127724772977836315869989759832637136474185866052289960310241435430370463954849930373828415289285550856743388260773334462203026921659425744594101170286871025061409775491105042860944470330427963732107496668619003734254446962855626817908829002468709159777297392588087451195446045846419035578186528659749042093529584981902349527184454066053616663116118395667195727152935809220033581785308079065101471957833702445842235924173955336843715539488648075632095681668871609414055193299453465896938149287822762835291869061572506593687828235066577884076392345164043000882661952664795961352366786196542279614747890226392147372969845685157425041084879438294676545703905827209867337252549785909567192024350485202020625924936161015056139773817398753590081380508672829036489786470511156298427015920299791061257533466885848799482627392203455823683462840887693298552023597488342933942957075575319780145534900680091552598036844764669415334493479794879671431864312022726089944584668197778846823414688300811745802233141852972537712530104177120171814424952241001231053647607606570796892377486280396844888787719995439855019295193075841120613746080588665231313109368336095890893135487361574267309360772682439981884678978249496380697769332989553678193083909784063157775382861139444990850296099861802563880829374642795825720850140051249370267948363155062294426071450381375699075017718737897480222904821488535707162841282219451435618203376254396851648374920482083992651956961509151099103570746741985409691081684848710668502779813371847733435281811606843479903060340825425866547871173772980341991438617362704291642698954481385328427329929957416825422223408254113588701925227648334376494407128284775436766037492868441982306528723605276565385875682520036796611440682476584069393010446907259586325483888693845419127140794433857907387229676086500150288709575320950350546895955908631976590420699824062191185648899479922675917328012561412420057465441789306970224452321564909384473388596496188936165434211949205273193721968671407781685463025814984788131772213065184797873920360144067730085370345300142731299548191109739753699194456796377719073192094377790827664498220542785511370605195354834680529205474709404414624780537658552214976680188800051959431401887483379790468845143589971109808405515769349217298640820145789002990610430075724714502266300431501408930040396000554685033460679502823281993821534704732248297231311729419458861948310621543378637063718196840976950108978048111372909966771857030569667784248963331991535091684040353668024786949697265050319286567966583126583355898490178257969212844990268288555720973648002191471766820260624218060416507289126031112322271367609362940535487638348815564284194703462042710199027111369530824514534317143400843466677922302785716542495093051397883866811774495737267358924067509670741173838210896915518475140788065776895227869814216158582447721211468218123014486626449192188305393982523949613333550658607366498440941395232800788157496748529694788351560775288172751403833776994852854962538857563671398067256380875178186169015928320595760342266059610363804767272661659536737057695724736334446410470548347207909721175252579891428141282468156567855051054657265038857609946990922828756448575536928740543423907007389947042328680496221271138602340319137281925823462195781184274968969294828895830882922129339932549955050764905007766863885714345781697253460392054574376500705105592765365813048961430658793060465961264589515784441312271561197776893348127286477644433874425155181669044286141548601798836408886477182266594172620170466691703332781238919923351058228275448918068928778862713927626454343312511932993964074336793905470564040363469105784288146065524289187355779332743014200011657552948734488733837553882198204698820284035800933650020972250629725213818261783993531307707338498695114354093034209488362608475784217663488905541146232522753766798527920513917336931333541439193991160292148233480730851213827150109070642661120338150786335712721835942505874764039587042572783662331098967427575066433129314223506292920116541842646661203241934217654424237468616050919531097950683282713606327800355950474420007964498355153054998632163711193035187766137481085806073787782608278565393494831450314304391572148605402303184286356019167812016786288361530800125818498848643275170872581631791918992575812865426093144924333423735009787794507369418389661237396284018867966969040988007090414781914291345993881316690501897808610187912233957702079311159217350482700173314035333616697568955893169188054524607648351230297588852666392965932962668929908326074973761703356816835780449272818273696227159242219257933495132198514518110807994739106721010511736524648152295855417125535317641651442129488080861695667258232743543782091468651127312401965642258394238812708215589622780446538895797195855931083852565055405218035037105207097292618439596911982581338330164744586549460144366011771735770326356444484914004791148677811486656555656101772673559252061805813217540903884421679033496162752867012146961579488881575474780468587674390327651017601388847924642967468189279615432617240086745606135565217106561423540674843179354284634092448340027775235962273561522407827327079251182951471005629600817385620899508368429849450046874915877191691765383351648635334715218155176202622900927672747524352056926117933121593338658580210199278602075908562868069901541778324372154083027727052599818891694275330862851713182449391346537716326084940959751328618331497220284653909827908803662912668959951710464179977563597731983649314048336618192347398305989924257957737709737504701603183809625561116171813675575029687593894947649139031018168145809986718605540378842843784700070385093177868655387674124842392948871830553139622714484408584137169291580187366732809883109908344335268161019338495877980886702577350749508228836471101202578907888987223043941518168433970083516896362602380621237993262461829379642753508716751945652853266107299502090185677996625127713653249764949249241115209892303452082408023393751041166179276896211127611417692310986497961151812806351317741543372329273139328422830746613068770046819583762760912282084383432239574100202893122313284974238166761209789891791899475362539107890900672506437953462877724615170605516364890999476322148908022636109204691944429309233045705400467888273408285949092113452964730985473913472610275754128065405685628977150659148774196853306436610685356093253894698320189233258223949589534608648010233979602247307083199856303054293040684321137807730162139406716357017289764632092564311028141666681567110739790164506189864567733829847339758342769696896564416400460245324451277681037242474469998984936812012598470164180712152242644138819002654617906009655399575766246222461531931298021282809047241323171485982381330214544751130603935892946942421765910065264383531062628343274241293497885161755024660644660801782186749980071904395354304033485649602133345547561250801059386061287235696605962944439808747864629642259219605082999148446663953168088866442701733125673559561568125380226409322231512154519055789821142013159474841937238051572696226004409843309330250017420560950474756148479108308888463321075667421948007449713925787364320705547184448192446919505634134416176793546384914594317445759321434257163055481672990833001079139173426196878451897061447626143775231587298306218573456196522633341898226900171532278942619277997340568127881337196506766651035439132500727058648790194414871964814084518256326418374363572107529658674423775447871705067380944832573306946349275636709645024316510038403890957918609429641549228904599538109604792293063334992615262644928133832947603314822117953540404772225752910572230888106848839040202954856883990671081198172654139891058324853730403984423322771880142459604204901803669174252296956806639413084089901160909958034151976598562162465097518807044046640365818286613181180356148234897286500862557763873130108787719201529772684013656244145377130397044848759641154743385543824941645181095065642826426320822132852802441662655331686738479820901005456108315044085041236170857013547638965858123595297442648090010394167272645461080578462062276852334788047395082233443438031918993394553999008688613408557380478263393720193889075386787788185181563084234851576078912033504223233077720283477515548566920409897880327156845167635197318497814995687924733467698687501551228586910101341854339029600512591709489550723295859995135412987616320714205488361652111077080759177110209789205351992699084011200757467749396593216437871122600630001491444593800172421107768754378344074641265690653674842396048754836009127183149989299559954104408961470047840061366968334891708584601078789278210300234434013470293129375258834686284140093842754061069155944152362258835913485995059854595134406369953368419397632952839601245749635565669791704996762358922512706103295110957717005123327335794553250867723303503300654882382740040625711544601409306492504970161388218347017144217311312974975804029378629501048517835521428048190553556815463616998464037161095050494101380946564171056577823758469702131748627438953028050708957259070551008893328972392669034779863308367840344137603294936189850249922624064399804984457625071497577322979919861853087623280363541047479972104904178008603699922385389354025855579228720211742377316395787421866933687501501363214216372829083579560680893143171783668003821803546571819463186437024061840391875044543290683139602190488088430258040709634212891024161601216530264153604881326143524259684578469761505440148148416118865877417322758136140573461161038740267743004688430391793872927742135641912888486565318280835987994094010102277181777911006056523091087783093738705342380223324717222118605995093041651354905419738183864322449606736573174145524411533974176322196024102830388948375043248704635136266642796571271974130388786449685933091260128839790851770642011993012367278829702151373080655111805763397141426708666452594167922602155148665848801478582602172407662761582904014471627966717668673416194497275993170950220109156510258943644449475528023549665703326606064704459020323176951504103857462805269726640359059339979811813323393119209322566786711087496591084637521451904180454872076770087079425988986362903456567051183122219372298898682726595402875605182561929266872994128842673986723450086713296844279440018536481018274572397065206669921410210605465679145341424118249267674501895738960127655395780923224284627079312830095139665461109847762224057985888427984749452483941394575298846133777924092386095598881973914206236166624289807037278991374535625322614948362958783120412089396995816324581361738694251463030838212871340243826675908565043636646910456644754915050634585806480507856902274035123057590621686595584977775171235795820674675204954450736531908158713283960357629598524062926033702421312130303295207452593391426064469419694196142579753597986489558885103445221631569046612812710408269690194035342914207541939826558463615524833413544319886797614563378429193274087464259597702864812195710510516483917687284409745450180957126090529568505118501387717765469798284440486364845561065315285725597073424887946135537936228460270621959857688216169810522323246258693711648385283265704328185208533897049941722403161511783776027252248164727248107373631020864090597097568062176856136410418197918955479338023840128529962963886979086816651962524251457303657970343675649655259227622256945252076125784625962204383921238486662700627048357968869797259583309955449480741477551480829933386588922473163734888404143277964050710465265679521597996528964363588418173250897267694746728216634491779989801228036690710581533068813017385012499566769305725188875330616883435341988601078089831607871995888702721503725278908651243487544170830968097614307932600748794289037754448428306842041732457277478213789860284472124886135649210613253636053981838642511336769325737763449828169993213930977125308240300222607539789796158031595327396752175674686376251734264656283107057335864517408485672977572145765135241001758332908198544988580012991561480565788020659747669688927423109476125832350607827634951759919054135205456130572917239620112583430000425530146120692324960865678458954815521905358090227486878426683850508818598368159253563024745004164489571425961385348799914663914571629597666701420578540592834493764230641408045610134808115875791909613986604897996428869152203403927172415429943065622805250702118052196714222641366527072787298728763934538952729432944668999494229273697746492384923002920570766174527356388917466658875861928904572206058632589212403688456290696683976070724028448310352971353533063979079628937346838079376214159301342376396313029186332731186027693611785405267850468958659267833710192260560364025089474434843692765386976975214522854029012092569396788153443391138536731471923157724543359741286580822629024134915556317123289300514518731957086071907981179985800623057460344814405438625196972107581177271852870392718905196840533902856356697380440480814560945410188036179142405153321075080061344244457736265125174154490818982508852854229503479404049494168824279213647488118835119283588613413027163638845286168040739509988494052891202473378833875139519280413680036829356439161304517377534143159840453544012925455892472522459785082414254047270338493441953401711571263181798140762786464475888617156773966011641539169351066742639955324383682918157000566313947942056796448409803572170919625367585349058365529208199582268848810219229518996841864471167559774626437599389209404122752542124964192451497391321867090128835358662221969887693815240487174185076696455749622207297356207183084235170636632101730616775844461132659586468686857987788106971587847056297271895496759467503567607523377590627835411499536647097116442950503619554065359240278858002337363044904854255001505487493294176927979350999807887855432875322471107212380980806284252795886938548323015887879861378650318830415263031795031756059424933703040939741332792796368121128645734361196962629213128883043305351536496721166702663397907971258088909869923837744751266280321455249062358452258973903459324470243388474718655275476284586595196348316755725318608472131260712699707494514850002167354412682973289702863322330164757610361519298082136992049156154142085178022350910898473023999668596598847049328075330694465072722908988973771150303377255115653898785872559945172441560956746731782716496734223597433033599977771460167282020303689184407784931852646642617280416931987520110075142201766432173019966963278467477875379800730308104825192433197581799383412319350732608085932648944057501955728775064891625314111720073631357456666790415338906387165822963931647935166490289242776097830459193116237799488347189269733877072268136835535412510656268545421413168367942714959874553905092585266780365560434648978437590147333645452227556427139711725018133053972802797549505674976188988694466801887463263251626870968897538353570454017482106596942436990301744039890866246647950316532284358424143585127067940282259876494057032895266979441773324674508631677261471407846970062787028734911950068809652672210397398477880339072253833069698023395198496280604149782309741531029385296128056245497218262700967803376409970030081724295969587916555026931565379122001680282054594787425006036537893856744202939793531280037977763922537088247856862757284615960000629416946192722644214140500096319276017401894852174615954572947934033392525808441834661307461977027263876547904641639194417972349466446738790306231673924648835758021221246805588017470456223110408549623233109151908235563184967267614338082194239494630872333276023232764595962933100565921566292007678754745273585431027735786078682272355270822815061566709059343780368290769003990748804804591241282063663203472735998825275505006802889330017154100791122921042749829578769196155720826868319307384807899029130726471628651926023593605400873789150376037470211635640721096090115833916500393144183626728315750685844369919318352286279145355490131260678694786248853274560417501652259918638287831750538684934761655937818860506386965496001466484692516174830354457260653739837254144967577752427450075402224228260024234621816379584274550496011526824700036588501361989623942260564200655218316339439596485956874302521121757635157374832142317044708941829189156166836093341304394486731913335141979126269290999676769479534731010892008476064305567426182313813367262314076607473000955820317073777787387590467675232842061075904730285353723288577853312269994517273169429041178507001671658951906829863790338081642358342754408693542362672154625449132230356002442768283132931977980775709601654898072242868144176244207826800784274757235822101879048167770332423072328844595659884450238427906890369567541857460426680715094890345022298235481005656103228581139061750791572378097266327105642159925754046938550171475153159347087516673586606246671286052355517732632849866636592125616114764075313281761405843999179044240532292167139402313749787300619734646039199418025347371963648720216579790185797541576109877735517774399938660947142399666440715918391464401743661437786057429184408706329442265694135942593554067189921991457612930392503474665179382288326734714689273767583013068483054750011694974531612485442227414332462278529516391758254018749347138687560504014081005666639038400890234662774838129141041042790256224913756229161074017698798557513489054691696803969693186911751774981680775953577206964915837880122281150448635961358777484472786863568247196880233761845173450983939081435301946097695299233388259358383945342534648696265690726143145390720612431626277514626987383934918816517544985910413952572398932005668110635739788873343839719366257593554574251790002800495860232257632095814081458156860434074311098336051331811257232136205033126077996579913269237239704036872019657742813779524004382277640759290320695078771806213481813490923797206764276153132295559440257805084694569128052186019719364429561627655058862158874903376859434112363420602569314899299789150865466200203454771413373155891511146096911150175177982198489116604740162012920850624657852872516207235747530340526789844396430064499593801785491575592112526987368736292062766787149097857994308554466412970047460541674384607182729704626760410333278714280228374515984792970088053172619485435293300616433241705887121120619678217407234883976100870323598095972168502608497035866113831068186138865864956689297380488394276447746065878749468963586546246288910596285068773918332335391087474443755023990933584824097527919942941359593339084626671548609196180539147059546577781465371099628092161411061111184381031468443110373841997707328941617762582799155609199110323815789646791043076932085189885133471091932872861166708363051624708919777091744300221088219985886934396479396597431982750187598477394479644864104221491903832044650903827073377476270849866197922987567596978700496186498087907900133573584169510931289070848959604153041886326480948621769983772068162855769249952083555614476722606981962151385484994730732943348249349031862083464778345145078413068055140842376649108526045224854917121030821441998272180474617051419624178269127431995476417317540224505811129206155223434576652201444352252674926826247085083038711551250509912285780700077921763073405787720876916864129818666657145120573543384884147595327839665691568735255811352065822839071472197125972582971812448596865448308892699583502263591821567028831597207167421744341684737131468909902147458796885013884515904241318722592370150084258407301274292297607923590865494344856181676203448639759840869224207322251665497061675112003185370896546990407038003922275903163947954492014228021378955831493672397630250077729623690874762118200999988101876884531006500410313542913856118328117098360101573395219315536849475636168964944716196844096986729945519706762097590211837744450247594151781253235041272297724768236488983162015856265614906478986870064135696929629076937678725153173966337868149088703916109832077870754991784544520228190974188848500076442135631144350077691911982761529946869153921845156181530364215108689609924199479825165920347383724346656445387663949971336009137855576894819463280014992332476586089529300391657061181146144480438482779852164467144817644487008288092334995845554724367584524381776306822558031050764211605823340916261974721510091912438550098672932163290002551743602263089548959850143234297806918315877547583923481016942362796606874482596170824812858574489770094735360611549687621725278728202391168073113960975027397234913642540991843239665536961215722845046287917423796673348059574622279556235671585256275736538566930765272451266838022454634384170110149413805963467839099829018099237032676540111141480527369922922149268091236513560221760886280607712082039793402878722313920178693646774239419670363327530031267370975720534610755054111516592695024480472279717420038996639920142172359604367847912417633189827058029217278980083084681370785542464253027394035449100278526221491272881339600815723960788601619149508541000669065032714287819782775478868216151588427349003510713504294572671727181355382070404113987111607378321686206531543747111403456115848096666640851578485381222516550820378978408962472484684542643558986726492470956690850536919618044847189444435904882688914375702880741471664209296674582522938684882322979149929262713746917298574665359636973388218302386978208868881660760623064971962792243692622143907859944250459549098180771838187428617806995620943822083639956935686365062989179173394391651069068538051541314554015520432152199135258433521027350542426641240142447618979566401194442623859279792227709712334709399358932018638712491145660588755356571941728011400753910424185138671953638528363289773451731782778267032631097079451851437196807436044044826939011092912422510420633410933190049082258192937925398176136843310109253673470198865727705174737368080265057816751751810459186987586743137137755421605962367999231334769337703131520709030041949866083278558149586250401488293613801490555086518140878182952068436775887585934357968589652758172937659675191347668256652143150676230292270691661981075750395280153925041399156613348855581719665709147274331618082074918621577107007027456203502304861601082556853017932629420294014002887181189994790034126124194404371125788340163998130778594826751544725321872066602513795242594509550494784078495347570230159186964708484161245395122129799954814096403701211050856594255990242787436667249118500403120722030628732022926416656968273262600191143070900300553958663012160221224181702372313254367203641377805442231409940006017001325577957990298546628374386293037561322449955282024819866166456002066275277908369537354136994778264210848926628281043258857903563582393308927159896075393979496194208232557370491635764539091440205399546324136359400923405739294336620729280059168988146228720784375349136085659551106350154754707067459879221797737795283663990506243773552847316102161106007464294785657340821759882379894775411528555202987906486935202651614002549835117521136736252505253160977671807729514802699903853184199969465840526938408635664105313439912873104138654777069267855322954107737063694939132036349130204025566500341733595117247940363938537111052442642845227729844653889940290745719201487665070428056417052108692327409926211605996670315602150274393812792218767809075180310371585643615882727735961693594590526318951679604202405094754218380356130091334561281009124495141189977036121624165672975083436242170132947923028912183350003186056043332503530104426769496952374880570037765094179922634478157246536208329699142080888971213503292840398995416836227727755925640151617464217231997202868168766438961438671372714439179621279669906764290017906061011390681690402645391199544933007558307193448213107571246282979708660649914498192037323152673748649272457191522397946703179028149656829362490483447830327388468936183946583928242660551050769383067996826653627137435655744161034709994446907040483530573890685512225163177382477625978042691702360066670527513841295427136349457772306334271943545602988164691938685133453292219294403915142207192096417228205072188571106398396443078149733568613745745293943476515457112073113848472145533535446584608260432005947499431751065387540649968342262909278271989189254683527348505761615343247620884639927608191688730618968143992376351443165451341473253805958314912202456666863962123747651065438739353011976241049802872698645508531713740030253518050345613807695168976795535664273470993438172697428972199216272257694835271428202460440034390206340290234833430359201173650257493115820925076877724753846379579974155851879492534477360166763151360101243463749555482470740835987916799495363897756332666714801359101900921219670482934357529586491285867286579388739204398055312179910782997929907475864219798350478058761580652014608186568899028445834545684636750905476938025764052517335811737134652563129701368200424699656920315569829842569905969644524282049057000060159960821361328906920808660243518601730048309829450609893709069792988946575069378496860472270915493523062292020412598401814442256818896234221277341802325611611138682757937458931024286395601842943938202592553651592920046490614733675485384346736189325136920979955313728446300951439206471740148552398085611498781113593292351541531263846364580748034251253190451984884481039654228385441584024952398224500182725911346165707667707253087544244015531443476090725694327002654500090395832543337196626890140624352985626779250401907652090790211705318357318932541858330154291743248520419644038388778944758813020113120231507286598248140917466052169275859570404294041096873377926496951892872355213018717895421882568118102441184893707384521264636779176252418249513252216562691232332585073392616403681606624981319322640684162146195088733621421150887371715767287895110140998003441842864746528459096469463046717920221010607290935601527021050460637591886964519419875518275733502650956803021149365899494936830902472802396866611318300538910999676164073954142928066245383906809421882881044256938781898424390005786539791150222765868285403375505924735939528483992710827479261047072830322976601113500491187335537645765634186178357119099643349759094239709982496696072820728613577158811148521709287679923033139440172230149395036115952027090411614346255490306293952146101769234488995463202603534640773242103177008100325112084829567754009179697515923867909039248957016273685047315894449222448899486126124598853046080887948738985488909968330400330642429473255897419981201672508780770953596374444242008357807322553781087952141045425236647039741093395672019812124989083676164443458675361422698655004444547577740939093079445013519128103136878220405676044802217345566585812898431857659935413554835881102740518634335757201759170765294395855150387441312454582667054297260872423688248862113849170276740811073531897435454012624764375107008053720215116472093736091134340550640342644554125178580789262518691758437395616074530981818880034458527346412778764007843233041920129705844200552002466591563672180465432976660298941799464787027863598708185228553635597497250939591204244072896211517643471606822739814062926208569843193561970428908168221789502216857503860558545638159235347209013953291760174189385175847699144615330826179291042240299989437479591659951469945335466020758994287061367388949448357384481887305179740923254871679437954233105768562052183608319684269509333782926548125519237598624994227062566777195593390905419405101389195714503139627141645477532941920369491770767089926323841855059869831732472604325281987435398143470624778437849286699570466886971263506724495475594693500764236163443562878175477970478756852502434131387614141451781606565901978634701440342902038517164336600178404743929006595381428614682343901527135117249742106925439002944951498935156078346884570363763760068821606379824227492077344914944608139430398998869019065374956217789725815848968267400590707144969833736869802314089366081172109856190946920302771552147413306901049560056259619819547396855298731524036098101570306555717093402245875028264531853654695124727539122463743619411548903746224990992597597753362201664441323136347469500659100175750171144508223263268822162550336284940390196752123085210040283590867682882649101218657871461774286623329264204734850776222163284071631388868890946593597749384879601140755291302547397691019500528074714463051616553988503953561124400544709740008191992196425667040701586705060711427041276386341815388942888521645820705211367315323494434172273761310464141076322996490674718693209164943019257482792706872475483344047367994383239199866918967313628458845057128828545085201092672037615009850840133999944565406253575978541948547743384075902628654900358536615921331673809919362732819113463547282455078776709981058777502413854297197815274050060785191982314753949307168040387661714761055998662851282896258251092009879643588710737816524441885083298376274329697509577900485409143971893708134948370045167680318731454993227102515814979434137254025672224690485079751970141021359567616245180334714497240535017533543230978493953591883882862347565085277619959386361856930905720549390010915361213818950428229213324200726885879316284901065948848520307559062698893824785737239861454778003824117396230031470645829097207694657807261107765984300875971475037871012196502326765886235646712009787882122869896488985571030069444732220208128749918053236540217430907286056719448144252811683815086078306824797896172400544456710892031115603240462680782565100067680698690571270590784797028848652045479383854302324115441285780052436472355473330706580289700466171204999064681087130707956845410486776720661887340385857033624179264546847531481447628633323068148222267344326600351687944463266573615749867733086321159373280639517135381399274696942080849248903423324496969279068239089054101230899435739058946085887454176672104712389227407469019922279783077985418837715750094964822765057481104223036257489099355271912228254067652172893954926868737335014577356361872457593667340106956625332804612667061419524964023650617088891969645603128111059716500539347082465987677016964720037580553251647388016975510759590502225796886240235954679964579467771795422135346877613066599873616906554322239694241362405523899100051338674857654722827786255570474521275638924928429589641677540846720318229113304628069967599343360578565600429557084673059371869307192482697209328981260380356702094346902524447683221005003800330237379701105650785434328607732971849221008732151148363145111836655117413899115333629371186104627304829790178170986019738980536803289472339177118797241547183128440676238227310897868412414475590237019973674793890180038267853425325021360592238438824973518250367077294666462292004581382591801487364833601917465863438859784212801946502840191576291838426758838802407830703473234260345241106287376011420718204504607381551896409587101386540953527291300267693689348966068369442747114234728366191772320130215868224114893597421048029775407149942216259558584117572514774358912280413274995913730787050773749077792484339081607563653002712367228917713682956171194811190332311790032301531148569423480093927640812275488929542340529583298750222580278300389684512829184335802229622615964489126236586436574261454805799201537688723316467095116981957047479439246180505153009468935373421824231265317795876642822387316678946621216789399171152015867608208315763001542002800629359443410880832333580773832502037555521698925186867253255750784674216134644227063165093964129264409880102074912001044257289442197873652200783924219577942373884932491180470804808100735843441126281824404708433551005988996275546655826845274429932486233657911053261298469234781871596780313411391794428942239143431517033598193592659752831656676821772201919368381879955979381044898315460006890434172574845143962789921551523515952621009008015396409496428055103434787237836894490837336316877317542539524426990328731957240001695592476955437889087732879842231805781445911058420636379210347608518492320669641927929576296974272699503384103146519226945824987841809034767909472791839110748090464355092729016601826430865441748191257165233345950816499231163555219680030093991085638044963465976669180657350453482092825477264040753850581054009857479218991933189504312333222006234502925295424512762744297398121210227797861397325714858562449807503884283852995909185310062553832160374786364237237069716766974800009519118904849196993486964785636024928378786077744490142728093747591467535084981917574159302558721980933109071202320967763780218258349128444060656850897075813793607601679123041637819328627221844787088576124206957296082158872069826791311930713882338581532372269362028695944609395777952484392310427760010921308957160237826899125038544095805717536042236978242357636053880153279101467102022767771562533249696464109592806918741433445203303787317862573607058206777174231860181888990877157863795889460803511937177568965835531249882165819526541198347117987815998004992258623309629468479722457558460058765812291258338377577283617064899416360998027648424170418369269046800259963574471293480359777004325364683458161202876196171192897547193640365391084266191273360384708450728844140002167457895843292599780433486100734492274721983313403542714672428759897377440255266681240121072063348754661522322026310457771578953754065066593455472152659042779343422101927982591179463985831946497366425913316573747026048820842301050348176074900901211020135243115133169714425486928998100167971717495247130803830599727137435419031845519479140542689609751341358116814594739409465229476115690588596224025127393771916937430429935708158761839643846394385493131514700929021969076915606422344614542330929664516636628663628567456602669688798830838670289912765034954173152853936253801052963858281151845678073687321546792579164453784041502048704326251880514736819397613019966405482767100658647182262213607395002778799573853106647043593874495840911016837755687678008619943989004085102570762703520209462637429452286819610767289263687981080847941897477703821695239913168448009543355993268095625315628585490678604328241114987823458015670903912305752800515232520163591496026711510626502475788216265518561841017250945763311774386678722060243458749201997859314479296663690949062878876701293902974360317009050742655122694369249684197162089439783036901762928514002080701872720104142691453115237276971905111152604148972263506690733424226069966267737099097458305582281733889964538022254801014211101832424867890041140659028802527900760918174745588103583283860470355447771593454502529794039136172321950053037732126107159739047650873229624079466036355215113648091908198035033600283705002474571900456935123118149742040160349868878193649120876553825425669178095322950644447384553637037870206901883968452780121265804872821265412845689757952578215136858186745919140750317010818669643784688309440252121015522111850739663178809685073508303096398118774489631882546428020127781036926741024663408843045628098818725543432625031270351204968751678837055304902680532826537609097872676950965847697844775924027852397181389176839219431650630623082577244794038517873036409317399238486978382397566708979215797253591709469930785877221924927309219620774252568705174511311263499478085478106923720747290719038426933073468725882447985371856574212534941492636068861477061392211788357712751150915399299878287026724827684694436862808559350598789642453858439121598044760544224538830607726649360526410312363331451023617521942185297828017400458237528067600567871606710026636167520835386874516763645691166145056233242702213430502235408866587694971150582939194068946489910885992046592299203771419392983303087410736875389695457670899289142422428581917912921127933033719333643024417070982441745780820538467697960376434610280782897138495624414090201824643424650067319187835256771134903123446835400690160865131375617062694093410636416571073912819033647022775032785785079780605658458164705940645332807800927273742523800783646316783274358753809070378512558686623077716226435864880248470590530229949446495326738709739330128162967766250390885408408997628340855283583531575486939193974078156207071439748590964067450547318888287830886864876827976618895764551199165217162036771182815123004462999361400719528824659407785113853109495719658917194268269384087084963183684350769187322680440200883248199399774090784544293109468108121910510306891239204402424116902288227311850930110983826832056076712954999995469743531478295538819078289042993243744180655585964570080908461482882339335847791149133751429938727148895243864104214709796340568480245193200927393597926644471037856377898893717814867716221697715668313234089128572874129504963143629355595961078584150417655671654175536459608270926468217300488762118277667573028244455765638071173625703164793442800647669204476500030522653917770895982924270611993058887205055760003248464166640637322459262664844221726553323308185482831118599979337355366956946753432440254157452928776085269964551855859035543952353691187074813748880601437369698131028976764054011784847181461774925347486250833797386189808340323717921494132546135474552135102697880028466927855977165630098224333995541892591649247627096050093474250987633505835037321505497699845638581165331028867323584694121307922422456856716309163241397039994480289546925016041190023558425779750089781080697938901223965971030987038720309145002812581130278016886967738188845895940883648044854512809696054827763487702215603557935487263640105859405111107519607612094866169784632268902522734689972851890256437635877847945501670523343247032383142564252900442674432609059566107546155314212790654974361989560231950295374714584604069335666957956303001913527439499726180958805312889999106526736614231219307654252468669616083380654413447868198448109231912660536813008632687343402448232423776799408785184066544693917509274541607224349347611767619003573530138517594971752336777839189292598740976599840366195034509756231618131246609008696185745043967771891476976829928403753687958184739894022809476533579713692448789389456327036256328511953013060306071347274647392008352312339918138015754410770463264664885713797794445396638167582839715285159490788290013076297678964449972057867740729109993764015339630075431181954443162524282533344100292835209055821516170621059675804673771487231891997827018933683951538310242442677182215772807324139037411470571350888531704115169486005338903895473328595584442546959456567829208138534066223231194810102355636182749466212399547854120152575715069136580382575854517054500175942061153160184606817611107636278002811650446475895047890794824825659892533966919284513269577203156975499258573704063442490232278003696064463878862915866344448508861981973258691777220423543914915284870401380080438757632079562411202658400275030730836361380939876964553673611794157526740076792512247077563266817455241793399768029919918103813550447439312984788828984515257700018000204136156530552805424086824465331277681338210567393744282112117884356362475781383305084284234549215968647565762068215749375682713656878185229062266567249080745306374684738681714958075952738719027498037568222794817614204689564224797194652768490212879255805764879648832781521122585131680853392216921021345927991085184111708640768981936906290778071516696770170252661357113315241337169364526983860421813943420566107650499710759603758057494975062751784947904043114902585965839784948891638521030718047902868406399842215219035938491570492537770316732831427039153097279120166069305275671290535553717004529811291601889158528866403872888526521314991641619728437660605648570107004986262113767682592530742216387629879868523087593078374732225888171075882103080438050629038533402312600935797481030921038053040367617496018876986034283663146868420380099710733622376764726172395892123068123338473025618867417252068032531049410944570340975061808616961656646355227078528386822149432433959701646184835704623458051182270307379446800964792703012559200993897007899142424547626066158122044461556570986892859999035140348372283825810449367289496285038855135859170643271359716546815455224007712427270335633699971542174746627632034619522342387162068859453026500286564142129617126014731108164746345773621651179997409622028831078722358878326717611324728537843691708076537705467150643710688606748592571369917965911900648339042395958957090782059528188571288353607622870059369324996693036653862973817984029827320497630740144331340606446073617341783281398414380754006393583501237686342184814369914085643561976518559611933387841288616981272893638807895703399523191242725099026540131264375293301828468121701313015683984478192521322950875379315827331750533529579377679191433861043202645474614606218160792284013781472246931579163981526038504073562510202571981758921981327336405651890728739812686089736021983044654315550732827799002947907599306719825897598410578471662553446049512788282962801381203224100017171658229985761223196597216103166030865278085685284297326868327144849233456085909680556212030140972835475324696036409628278167914572616949233910872930667132092372383351696637343603855586676038374120197483871719996669089726398795849978626063983605202785060614564508738752860053309181743842947496930196313626661120716723922878510053345646626135448509180600654496509128218817259598531800262635281969397630979895859183489663635251157235898148631550114477277259696867098354102399100114937185860633690937026159278881775201414519860967355378620647321881190032502449699880638555455915033454974871073746681659253821252362290732862333776379532808189772427606418163765531898119139429533971486532141549738567215787042165585649971062341246553982482004050534051658963132105558334844366345073495112980613645929054962125568437958691072418987678730485872282879557699803001745181332156510693207923017341408268087687477400666835928159235278336280892556117224682957999385911628368102871885391107619355209690604948257648277068649293424552244727944469318101266794692182670548041336771327798857749142134743705749447320436862880245493514264628820560556892281454823089505454821802753053189105037649869859024322199570064884504040383652556619950774800047300827354861752119446825559062585760268495372379043229536071567569311666907884529481979311187190931056488410363491538237955777909638218115016198341741475546538670146224530227067651768783463987970562209521938230716060934863848985683997339720501879895238915211161551574751803264166687860003789669894153316320294928683952258100460882856333274091052924169666159882579610834862499124609751475942864048522147367012200744857439305856912884613890926942932309212534276605685168294435575373574453680704928564044751364720781452310837626538704751589371434816801004024123553440467692429406550942804015921281551250856973421671246936337942862395437697259102430188553460279826225201609208081808919732432038662633921109500719660249952524184434852889004132288409525589569022256176472142978582268601175954542954288323580997177658364270979276919730210058354492137407267664929907411044826374746767038891444680913058692600220487008839035235018368660349499609953388493051381288347825727869651236602278942578423925809721534025725655591244613367488062745959609944626991861466392909069290068411397618725826729557701405618730763943531904141989572042531334123252414131895077291223727161730537665345293992594525336420787859316932734302183545086525764769798226347604982020840922024771694604532296784104652787516170513108390184882718388669588733987987055401867968060547194786487165666685233317027776699406219021171627900631974213151724656906735953949298190077703173875878214710126452428528607007229534417671903550138297584170669017352946074314258393857000606333846604741013548001976526762072484151922559911916824249517418659720928541153327145608630504731795298096340335184464822851004871083051999459004921162189682804244401659238786744023589621834546685188259064118861035846898941116729329300272144275642534546110449478784038041079855404228398255009521161274427023264776958514922103135302953827697903009232737236076907102536444950167246038834225257034590840516461555728928055367261029279593078508002637419385214448261774004171482041257004526780548510317604311488487336590467461343341659713221627567142938025067433464639242403066347575670603426509740599281836808064351198262347326598626466564494909224000887419194044100848940241193043820535192060506203907882846357134130323646981822562395232979423013294301958340781412732114715964382205307412332932233512135823131577121421438319403392523678394524914331498079119618294369858767738783882205895481841321553428041588499379313981778261188128194701051351722605226971088977269037982183979278485309440509296716533011559500812964456604781448456174032233454373041738508576973396603562515922475462089868250069063607481188149369620398092045993708327752912750350974137602689959206155615487638157924432001541820379649877839092530763466928120172236665430326704405688990486951830318352877292319179291185106474949880666610137099810590503958312424997309715111016449400884873424744488160748712351822968843099990150952752121211824581654986682194284465034297991186164566089938064489572141729748858687649323763195507608734650505271121223413066323202992702144463356317803502527203086919357648521239914705580781629458316611565739404459188288597944914764489661017901854958029145429442610093521815211037579166783367479471943685289749514743501391550560298594365692271955037938304774369146995391951217770761705189660900775886270153415095720596937080261988460311068321038244340167990178214981841855724641208879594584157715333626929767251398298609412514988529907356734280346044677433128718875341195407364230281257938976635532794536716449093839409475153170674819171160432101516580848606809719657797205869875239893906311905540445160265950430249158169434146175616626881369763138811073446961299645488727218959007688287406864621395857633964921078474874548669346732691322999596118616157198419099999533956771506143299859871224129134170896983693926397647500094016269446926711455287954167406312702334240822093601208298538139252363588281593958734984108851579399639468761339396498923412460107343569723563921910354145557143203825427656904158366311071831961528046500983413890897761220608780570543005205991681482441429064911351372015377440280271560452004481291356693961432452455065147735779724921443650996216233429278767946607238981970690114597353752211692362290190356606579074774770563755682809180175340365574811340850203631265758089078200887144140363446334659732684868636860147532231212447915121534691326373784190976281250553809378875644094516141904484394927323505753119145893905489784860461030351804081262620332267123564439437499597633636155369056528364898625674920935296878267167480752506447467294410359208968432336701824866567603610215467155093954200491767447683189642597789394036827948507561311025875048636852589275119479918056147878459432270238399631579461020135930751376862419904174742753615526583010748271577765423565252774519921503396065072099762464460023835457121806627710455062477205736132287913020627686489855127600095162562950866133079639189100923150832044747108082275520131558815513355650199396230192656235372017306011392976004036214059241704301174285097827497509973768476789715682211006954814511855419360603099627510792313629878373202616686435527704960135495833642960676524833431064634367760747891632681918277231832370205512024104575774790582180969583123633768136784106049885682587864719210838583724487733374907085005968384315656919290080432839614846584198295760154311036771209695018881274968571203263148157144163971049866369259492607145863533830389978737593087869697846355205077605029647176339271138391944612995961015464795341439770097177720236348715384782902925484262652852373864644556122682473780535538653928281342244139672946660843655586489445086203347001108507117242309861183301086287324264527641305666663544966170197860972384199750444264530470625758879159164955839921276455563112639035730475537698942524772667775580300553371375107875613601640266082877443123790988753155598428551125710346184552100946104491563833124678201019569262667323281885335130403627787368504563178557471247189966558260946598809145732196069001936986262590696826356650012399516958852420031571163646950997644928799192669075930805303018742602632755051887235418956404320551071214521978803610457623288230399666925325020651261992836922483990105399345872459252884787547694596999183789497133586054975201466897759676093354785712704199357424433359725431802111571143838950698772416961004699066481086552839822958998302399179696887232154855536042639230238049831686944798497994344686765238065376643401637353494190198340979652334651034933987433717394991428934646068108943440589388648245825420491085063367058755784964749680191638780512363098881936259996015796682360726736659522102275275045624549971857136637076267261190944240780385152317170886140592966697901234591002074913586873574345536569354656364109072908438410287173889906264149468623847159936967202504151782847888398282515104534096293562352945288116591561656394541675920843367922937392535820036518625150372071826786929519864605754317794222727627163962183282386122976299431115518524001692689624143491919723464699409194659964279508405202775644298491102562086081449352456669284224488654125050080952278950629503367688227054677222783834349279973402174428997928752060800576091744235861718273606804420896742934988588475313469834667841302934682222174573930499678792463350731282497369941520409290507465151303023515822084123946130373685765279340277229279198251066023905649812144875526548083522253025056809098337303221683574300653609469318736206117681007780806420314253985400772992452209333487797102185463833264957768088677539576986585227548519281094147826976750567865844291514875298829925493440928916891332690570389470528441888480858668015700236257776029345539698958346897601282684058431346377093585135143396503169172430229708360924728196953176346250850416867227058013469117959379134711517769037525663455150379742602994892639450238347402990315141988930708231268443201152831997970927837136942608216177944435519734360981031106207291949072252217541637789080022396041688190371514634741028893898851460060533808429600971238790305509829362854119148044921141378569491531141166740160451653839352185205601398769702520763027043910200824011769096976935210801518236197527123295751783027732860072590084448365621355945043774737385797345927200173324934870757994250747190064742049115956089674201913112061564713338392613131154851902287614678111518848476162215130145101212907538408063671639929565191433222518866777354159194800001827483741600248553611795086148385309514189241380247803563260482031957149064124557463705352844030732855872148743513205534727608716948288851039359340604379073136676694239560038134221932003675535887296257104438215833294969877121261298991793765265938968115220740008803338897746991894932139941059919910334149151326855240301729939599551524559827144048716290350375727232123569880363673150878928160001689627708119239664953230246174167915655923339246272177510172717144531157405209925894365120887841324318316670412778659461762125577586731103220807341323834972408717905251996560798730927831365436055339938675932010456668389338907826986917162613854597603251337045330997777771949367957293937777260141564471735841182574160267221995552721799628795536019575329252538050216088761213456244179707813895239052073319353635889982194466796140972916692414526410871273527521727572845616407282209690231565633974924330936017775007653173106189111387667544379984341357533032213639120530098904567237134905790141547848819137797520848370370374589501723348050934545538120352123868163703670871266563039357684827155699472862422028346734506432788430570217256078602635513897737555024427595199812719327423965014544737692344310010066956166980659805782158132025065834661811079838049860976242447481072124240724433805015165675374782160614938851907091024462742026386611987972212239580921663518635375782874781470697755714509128335437116224974079822983609971528558353712907059523301421943507945260068701174287035123958788363011277031541447757918634061300344423534887905309721521130235725728434826559975535139914599017786307716642277264959691062899531851242782642062080624097109992158016719194232802140139812591198936848623644788297469014527401951631190372726021775514560622329224972439561123913362657165083485931612692817888781483286336291583174486365319365347508988755443355045828927084064005089034636438953798887157415906928299895758762944938918794290440034581813927789450734688035696828796092531432110584554278597664351124753211264964551288269847776884053741311402897039726757386445851273605059232906489485590361141925367144419699747550796984666754685630345283179969231652299427797394645632120842837894455921396191551672212855469473659223835361490818919150655800452531861265480752748878358204308600709875839927479633548671810609976065547170485737672233702666468789641925160435800650394634509647955289323040911897785885061858033498309982588732423918704979442365028075096775089962059571991080122781805929021726695326537513467242876230323641243966557822071840627537395870773048255681353791552623842331185861244614414931592579665202382631022110666831161452460600650113548473347335081958104656455715292118089684284615596646257742324414605272792952252532760411075458080003409599527583850881934719216836657893305065322597363940454819184037729242547440607208769160325607303213711213417847771794194137300735499923519568871233887080476677521468512000133154916885458882032559016048465886417630866199296480426955991244116696062043480832848471662951706716557693390844956167282321578939383396229711000728812724708101751707408340226869206476183523814994317431174327779139466765837803817139766160537463676017990401160162913457808488557406769945217415728702297875624454975522239589823295576846460000282933808078286023192045576700931773300860206902411271848544207001155461308578200577926796388375858341357726587337253364558931915032384095809505950968979435011422616397227915998241666435450641352734344065653282707240112623796773938044942068264594163480963677626419521524303087942944960456093783272628279059621853303536901740107172092564199030409310663261823125082215277058438868658475344353450127496479857943858541708806817288471625116765378486919358856806272397337359866109661302017321027469801842249417599567884681115862530789993850636547287030921095422983008859812427352492852456990338944978610042710525655237372297093201590690708114138155357634490208112867497644252081513950920898224583134515057541784501990765680332514770657245069290170091580871888004482972223747692218069686824430986555125746261041961888989661768351666290673642323210117190664872128757487281514153884098962290994159172007918808777368344257466570866801795576692387389588858876952061612163800903815703038678004134459378461485804829620297453959835153495887945818489263297246858000508803161963833984783290068545213053609607079003188954916907208637103266686744956292874637595443618158658438513427203491227381064823607311634831426006393850356924194383679495145002136917837909603454120366944595155890767060187314833805649404287069040682417962541158071553012404914187794951223947920038430578313571931404194074867421685291029899191964418894260194446153324816123422981484453925306773694885798663072597626611512198591148466161335132632746948554234844886711461372156906462224020427598538906264673497447001977256309516291761640916441600271866543808453149590790579923517619315492023370790544283766336411082146031026802913077014446237466318802859963723621774431388165809298443435000250906902147174535071368659722056040485032295075837878662856946573151656509445890754676458690166387106956906250334303789994979672282584903350524585374273009907842130287404088761463713822471262565915811952573338092333896667143869646149915107336209873344407791406302547257835773226387547423515451864728584031897775844552595646068108696669566794333575258370749419257688828988420471656496824120196705120116693804027420653616447809968857183727562862134769543111148405041784974683682993393825669432222462248556445648436559616385147624675649452313056408386424694193176953256588251214838771507672922931510637407724165463602981850192663724053643076060851022705755379951611818800935076815879563996833066796903771487956574644235224379634004739156744599320243348885486503086186888442961968323996521257473600653002257017234943363913127829675997129417262957914898606443655651521062152299800636196550571767700346891284658919216330257851387084642846675495571454946754803343557285817184934445877963783027434653169289566631991640203083657900731782223635785802255349762851873025353662146590042555444725843266323723313668597751531198203731445345129266634276217357778536462773874249767180015780794727550192253334523144678594626419371798388830098527489581694315716729786407773450573256763143044768186351690524281994183070399974538205687641454960572657549069753674611459914019233968341569465268568162982656233472567170588506253454480702302269154710989223762509372420520490080775589506904874847473811754245087641994765957665832961138144870177056378173711036430417302667353133167292848755091807704804380999390832601880761437711047382035222681054576035925829202574443624006538528885288295510522572664484705233200466243558937161538252210537675655245138308418571760475150607690515612057799662412352815829155406585148518085475559476242118427486447384229869605584355362322967559383841393298336128258423436819285734997574466802277577716256105038835668801120245784548727271682390506363528057781506075752563115745324704323441615542559589827154618426944140090929432915828435325104313683134732937334042412766105827708141184643559898229905484549348713731002978471785890769965761363880170872412943607660217525313413476829494986211673281682780996751210352261260138840821250823213618160434073940431299606915087374918349510175332616901760303569610985030387700439608039421168720280395807396711189299448431532377868925033313824903135356862691211674158570648542412485859781588978375225103623556719284451436359230264892250097719741822281403313970049943537909154470298902962791150130877979711831469049228184391142241395793877212660567251884502766714903358224128348170999877128775985912734643306073834436214275338787033730227304690476103752251098242963073926249551602758538691222197125095308543021028658134415224207606669019245688973281475584046292957909876967164179375284192289729745623773006473444893616465733331542279216448236256889694683110056210702985817271368935051063523110460518485862343728669544764987586829893721622530293375813559926350089848106147104313738248144440732208618652045360200195634098016953900393354505901718479149062248391950137992581647978484966916925110987183654437511180763687110937694016370609579652850963738570417634721493577077012690032313203239021612238976988853532249741917592891037649659937151661403493266185778729169451700055710954998077403783078463636661256050714532456192478408585330754757559019128744170036187851730885411431562040835701289089764051714816750352623522069683303286390200674103353518933209161526186759689368254421689569315512364004615670777244899553353902951435246171465312714626956744847579974699646621287388292386940368269711093076736677502873674052373497485797701908267375438137168085225299735495837962600517375939045601056854470726982485512074757595339390369054155945016734334927578560847181016137347435236726021968705080462630018943842472631145763198567831583595658074756615261221536632838996563678133617356370421948431313827559721067259334909412115559302903201300240730454812742486235894407228577840660690226216610673216855145881323124937088520119939077330018276593334292871403501337241258958800787667414129263104127832322224006342997741377901690708289977172345383449686759924934384574242002187720882158246989437351549673130721626371017407106328142072670395530045849212006863634461814799276202566841805754375990588160014615873110195630427318517792300931614734222068178343240903965709950606985555886683716334222035880817754342101987597399093606609044985173145324997322453610758543072939866874656242599582017387053191527994664459244244681214527544981576899851530132394949109056583849705077051636035879489652900220954086823240251089841944826620632007220009215442700571676683397648700781733876690484685796786469697667689325781593556506487231347149090520687802949526532385019174469492227659830648983209574497893375456028764525526952849632493034421560100094506206156366657019862939341885466976425187993935084787759950325978523758090607701035646630218552522995402451741012983287679461348917052558599881520252983588727385187719182223256985789863475624365252454422070661907562494563901278812962158021509587652535216966216046477312407022780120050912079762330665459265992056590242709760799717642108615792765173431745404369617104659990129287863383471129478951600999696731590340439924020951222942891716025034758118795348405744206233836158182385703371615970035481464955392270883427684231112733652048728497142887303493142028628347147140871099680145735404788365031859389434499441311487493827224418241705739691222697043803839132077458346255129099789861502190774744235988424480865147465423087285700159394629641943545129716746638970768884199030370870384483429564807252693692490098834643057695406036240493677278625794491706690208450370077708131650738934760270586618384265111856165028919619390423041115941098680827044480198361582689564380117060918146002951100690807953420548496986677412569639921549382611447648106314595463016220219739541637546505440467025006063399692312431337026815828526162473559294239761535355685330136855854492982688644144676689471307685157907162256116657376082518193456249599896483655651350656195893443445602278250966416335703829254880774794264897975073470203417917929074098364458366177459913444721176154017680029466312966664054721278578978202793678461111247491205012410419961770373291643151875652916173606472952768768248602269244072157531952132953145431684675169690792253863244285200857326819064680052727506494540116652749696673721433428432270084886830399259235710765419396504595554712540565635248838544571313617352452227646891375281433491109678739434105057720172228633079257375361400117676754937956075657987093875171028833432288408893384660977039176235290405098978638362643023980677661488163669555074823390838082998905052866531619288523126130378084193943482587117538425699267621579650749881522914063236678534822779036143298351961578902602953855073660825402419537177880430612802938759714172463742085067970923260812702367236522101526012049945577088238696150344815022352171529497058815127853214424485212474839203489749368826101914011165297723655014834016075619372030526977497369276164447656064500573265458620209666367251121221331176326753741027239412389536044524191165149226913846538011828095123146173403080032624861309939331285445109139909450404016437000642535196830692943983334546328280079892663953044192080717494048842400904826700729902006591506530734978163149164724529930559892373783246849629306374019164729919437621868106448789464200801355497381002936549342216037330153944559694649720597703469855451759124285408648854389350787962190770975460554439822952333562359020896885437726399000993893693660103460539291283271501878244374449841199283744089136029646079228546152515429295721552495397877565242290203882774755041435036018715954969162769562121611209555530042752603377186126332038153288359046116065267234541889557066310793726942106820102669039508410690512774463197816356937140079688794152307380569856039659626513639423944321011771505763961449898271875959130343142333883441480861053681252745650608515813469007477286615394283323584558426049635415096803556352551261053618176845337228874487430304366469458350399129847095672599007030557030000840179731629731020216790139647274659298962938068072470147163353734755352121718015943400412959882952114395395686902459235536917642804708300721638576778623311761039232788833819113242547111867731792382910388066873168201608115144292947666739493934502159265216001571844422051017997825474567652061637278251366867693375459437772014645442466992921345518699720358289648643295637202354373593463940475534084136851217294403116141318412548763214888223434018636732500696041858693338519893670461550829632131208599089621717013991726895238896656220545845803185749050528207701949699677366360095356222740351481605622050045128638015708123365844156071119821483275135215468050798019095605640058001236204951686807867465393779232662981267331441406442596446554604528269707698254845335859105982656207610672021367181921796567177271482885620512332212752555411907375894085515824706198706050063972001929436674272438662495001919041927787144185017683206086858581578092146975671492060519928313836893919838350479520616272563720695061744339806966032129252283901974732330546880369335708521775547628625321640652970816500556214979546389728559779897934795501454790183214398472068504188491924538678299789104929299355716238355178719481704895445547294956011853175256212950981644226244503305506211529077445058454563170990268654911587064573958964877800225454854701712513741873235662472401723955388609884655111795157052559366787450381840949734635959239893914349841948506844099498948424735526468305908507569289726695569183549403343281120331315527390639445849127787577496430591643251109681761265277773050294577399734101249387023996086991360226319910778668229627770865670741052602154936128428625053475799166720189586652715604679717761274301248173560909088937449130073504907146004827688357878438659379236788881383659927774170044547271622565513257275985055624861171205851781069996676317278410112970488528708629505022806567832130190751556565317994111355193097148217585500377160215389097852969747770183938959340326364434379511946861682463844736086551212126676797728037810439027062580512092244451586129747804458786232273840523523070548659163555572704275867465386508749277694493010860949977522993285596536809257945311917032205625452148965089176262274679245497873632995354282685491625694038831672141146757664387142117122688785963122863768075652629670436862006596122748690674712918873528509744911353157496811402661553373532533631785081835584724278163504973917623760785202861377330957788866050124071879997773397365167803269054993538345589301221605508465292421979365675965092273473894752169291664405092364127459358410425823265784140550892183753688755242355805790952660764459647586149613474049995370255122236432555493492814662610595574953035753247223406717063685305597087255233804148388679404671526689420397214501830897549736244595245303927452524558228206787246557330017520721740328497362366792548428563502608774705179361692513747933800095136141621760179777991765586208251204993580689556749033428062949843105562322181140518846963817950806339729113859505665784515895222070949384396024294488840622851395196916384387300614653078495783951517699932521476277079783817061913710953021639342939321385288201716320569027455918639632524619202510072394127992750319140529347438748093243914188970999442431709687306545433431350591561144535499116414670913401091072233311305665999988318881489819057407152075744596766429690061368586900887268037110924899236075851414017303311952786488938002276925342416226825018179922370651048074170089585976889502876308867100837016582775957103631880226214867945885304290628953237007745365602673256254771796215975400185722305497784489811279491267462785574284280815645213318251031375985652330110023005439897558310176942241066790604048562019420821038539229865592179037899110607828660443436524134549438504403881520618543088352318857850186566430839934012290273861458942550403134643322874027113831783555859018295490397349137250971947423046254293384790112609697126389869221278795334268730493872975617594159671770985201650992808632663635837250632942256653125297335538695961309878340942252176469941297291022320669217712795324883062978229744515149628267203896037237479344116672942206266040593494519253650200601128007363774045563274338401897802522607672578265269252384435561120227715659023858491722053068327423698436728036545342396720173394956022949373581067722563219989266448593331092721651444362767355097941020513276166984647394195699611482557090667318459155332257784620070372613776187986460789772919386824654246951222627448038733542226628519450746072318610319814316392646800821351778445849713972812962126314075455117706155690666683863188566313332531084547088749261231070070280249987690077399191967843455157201184486463993403545377024775545668653652342563756761170893372727085702696622144550937173190287492893948822455343770460407065648024734149903660707243967814649482478011870663316249295834750460514039329422444347976269656032437500685982833653224457118732203100910353942183782705666097210129490830205233218564151774623119226100659468394408809021393838279181468635367892993687653911621863363123010641929260705177878695562676386235684971847764849812336628440319962164914950983008463222096310068013993673967628110816486875383225370394538945249215486055865743282678507441255562778656289024145487866971098010240563999742236582815213706867076318470283606719797546305513195680857720043412826847868536917829740658928496545475144020592443783608083203104127220523654614365588997574181664841643253518642728555708306725939484307304196603988852434913493793758936987988924521883797841044217468355531700899292909806460870029249411390700464471347607727120667945513285254634377035042875586818967563506716485756648403734824384566515056173789587538296358475230415715524943676962423688846870646526561408830764591224621357794123806314348641127381664112051682100502971735094102654756835922275516151125330377501705610678910240865701375886812534633859113612169572296409263822667689301688538066839403372113787211092727317771015189871461430660093452803837890272813203919607146520841919234122848191127497691512637137125517777706260232601485871629603895891562684172393910042523149422786564947031270429733380584456047266947795216721998141099101407502463545407961018361334632204924543707939806879206051822426333950941120847231209612381245804874185259455557219531566898847092036916354910406046420370556449464479564415016583264347090988114591233805190038859066554604977670935317751625661382375992980784871131170055739435176622179610497542240977583902166754821131519785594954239320951178718361893748086699108953515816913024980648425470956844087552023633275877889353594352360901974535142622208950619091702733371977293394811628537902416432093758849477932857672888386316006668832911725635446561177374390799143706178682847054383550270555652855729235266975880081677106656168839201871982745035409499244250393070861370948353922210796001991642482038950245003802614541758184121294356374327251177756598305895510943126014204225527424379004158349680144223821559065973611975901996195494656569936713489746934705046535362632515362631045711437233664579517627587525078838375828585655941375797150074652594270180366338425251287128071034424404222408445833556585532844972902018321380463037531575096385473385948447064031207451767458161019375973510944262799913423169098477195139770728935191894007835945635762530007129271484187620559790476524382964945464510275962664792857322650177284566566204810420750058185104020628116709491438027175459290870118110654972521569724821247658359727087361624142154345669839572687365434465762066624427301018344867172575215420488497241706313578238165683718142720203561881539776030751824687909259688760109249455582673815873926025051121095468894992987763733329209374211301684498432378235625479423523878645659614606012890669826623929718978165275224646875054125817840684251520329588098639791699979376397170405728967742837996819030367181005889591360233514325255061268326102968528434998560208086986882271719000246458127472740911387438144790839113582733963370069435150084180942231259908783062044271103015321631302480305627914729936091487455325369281735031925947188430403067284135149630728895519254142226776171373217253867546498971329940131595855988703336480390034755836360321343678219145198265656983776765565310057006327044629134424347999898052332579417775234424349580514924271310501587078515421806637823947393636071282171129428749476441375462834964647925849729129672909334342695155520123716160898419641571455845421987265446521961302013573043114654444665807217827357248923360207606331755315894149990082616648006307811640975091495911343107700368194813573856438195458971629191314235160690602429935718045116263693815424487823588476062381821571186773636104989858344017786742621496130117780553474984841195693529679379692460285454939717061252298194695912265984014703114735917462257710062293801463715595294764616788536440340931896301845656494309631584188680974824720645245716662428928628291561540241274875464992252210913211207489961950555072548320762808294921742829667265488120902514921212748688818567223057143562200371037907693556662152217197054687717034685240192978355686036793928370637980484659371673793380630314588086622891432360014460182770163109344443031638574340220890823161507888703332602189801318471123175592835020178458968221434497098421493351406498404739521236598241604377527807539288147772124670899423164730442248020319549269754189491284090141021113868821122090649683230549242348815440104755380930758681045481504957186532252666351443768058361790655331476506516080029627265535473693387839063538704124275451767049545342248521959129678596001797558496061147806512052673049652946397284285355751150550247575665069475952315621728710056314566977315710274934027154532406519624056261715849639715677768667111851701485527417672554431859408480163217906582366910164534460156957035963891378750138326839126335413552845255047937251072127284803303479233079282942732180791599227911898312734242523189344842527082407285838512408417183084038049680616815868187031551064850526271124240748537036795937443689286037761266560956774223196665860691109223013786276324862680776970317867077222656987243568811374461299905469420879612425831259344599433060021009364595523133500319632381771078637564201030820815488570225737657433001064584243123187530158187663438671919735226899611795769953612810791977879974730393620638103610378903487728512900142768647264046467796462264999994004817018777164337711628297821541867163930502520349769373575114894452923200630093790006146500491683102177623335180615547804205269859417530439522732309557528155908019528859884525181039115813836305345037371426262282106958572547485702130716005803160224107696101347319250206887413262095300892649578442491436145426147502975285841367188123712826533666686529136556168728067817177334078893119601472194637393412961261818581991185792758539208042439208846438322904648453591380871173355710306669927807485347468069660056045746953113502246675435169388911473009224808489515872893838754726695835748143022186434645149016469376391958627500558963318463532922673399591607789907477750231603820122145387799917497649954131032397520378042253686864870835805227587784130558879732135888585172476076450831701787096595919683872030978943077786740572290447563207707774817119641592677588553348043434162641771569680228950739621063264057623259064206997860747821243545955193186113892859974981773505840459714208020058701191850594265849523791951358963858178751146322531166674532207792229820382275649798911776520415027207307380620822482521701164378738465026013737365184100876399440891576342445806065668748118806328628516583642523562268946106474995941178401566610714418119849451582132367066683392207069840260667429283897160897791035986811137573033089754742950022033672222107926559279168221894834066048885039203872116929902274628747901098601285112402763941992581189925695393227209385640866133011089248542516329396141938711285133883196355234969655628135396582042682453135391449199800369599985810502548385103078619274704236879589345093347916472418478830631163648021393293303235383046505852756027492180308584518977475136468586667221273576367143382433649519942844253944599540574450880432039073912568617180008328365825083141877083037754815006406795843654539933118424561698781120622982006420879982515138553403066225329854959525178197051358854683989536584460677781571052076915607739111181077647375492845947725555166348392583215339164287360843934626313901874560872488370800452824099142529946309757840773002281164802284098039113313266480300703365823082119469914981811261615638581065087199862992566856629748517434550616188494590078595445619227122340498914025027073116240057096885929819253554252702801782847497563064661226502691003475587261805881016687568684259693987305038580909522279867644004805335277493083526016084731477891060880705460987510765343011614895007743363654990960995013493841099746717617437389582507467710768892430687939404861206909606299463261801656077169962375939857299105705010220464701897935843789843080527731360382816401926603814226141370953567378008634438417202931024460602893893350064716929533363852302443461738049013904146174628729176605432789253549930283130205131891580327584137519492426223856593261186195920127840590172199072209704413591825024764508796690195745317037038502648911086694644644342846350397285955374155934136569610492073895833404809552154983292095613803124720960442157555990106323362787544631377013913173272744529230558069312419331474526763870074620058550954737776795490699979683319294955069572521868858852225057146308149928072319957828756765000475935582209656353680447565417224739833465963935921865144745457382365889099509022214010796285374506041497174670221771796401368487988501935215029404538934856915440515205636518129940283536944391746164997380899314436595715912870105863241741300798843142233349359795250484237290910642206889499062640105897656229328663081302637590616013335749253563351419870818293863845299732580031948502477208062136852328108113617885158318278552858342141530524071268039435827136540941706258340440568603212679371501952001952066889337387849316475373176573024823333600031279416355667565929811537690188367218701899717709519045051537938447520402482740314950830286553775921199102036151412071654795852061648040453429473780156708947706571477741206480940248105752283141797252659400312986823793734456924341978116281305815852182012091100517081717294048127523997497009586969672658373757044838355433878652819085265933203705997955783514930871041032570606567381556545495873379837917867931867552124775685847098470180458863136091072241575981720405830933061962636092055735942522064751218147102264592928355864327104274916807590879390393180245796447278057166807300185523842656863802323661411078429205842210484659919966052649973103239285233202633104280193056056783900606167305573762645401011067799180663732555544030400397514114451018396901187699207591444237877475040685926029876313340556830092203881084423783938832454890603746760727508605378960077345180185246904488084949278513994664692250851020993210561110803711811510709815462965114939577926351871294841978325294256692679666785564859310565319128806343494340067290620333001718692394766736655095308225587262867907752715045758617744142808503719601096417133002359648448457463237233103364320484729412856153284401923806312560460529656163911493885997463069799853156813723397032908489522110631822669237724310697829097151804372016127221231482339972927946175218887134056300954708557204740924790168142872722158140515471332967117758710504558134710126448261367299910497208551933982181379797893227452711767905359065328563277762579888021481925024966210806051446593649532995973637979265579485877232469873086503000762985066169037155999194817122628958113292339496556115986468191888258072825360063057531621970162273946698868468870135933161421938502411238444049795555757252950403380281745691829265032459377976567778904023460453317486756994252194740298187435374970574837270138464246848833198167684147954634371003706126317770084607676610596952418572053523621587190846785479333554307551259822364951586691759726063326907116331849320316168046737172261761419459206774947541782578492040433307197179332431474860951033226369996587128021951596537148897033531550691226657529192458789669298778876693827816019194279418508287436916214831621397445645488477780036009595387543383435877448760674374115461411018174545439745292767225861080443746507447582842608280484195770869286468495430740240471197385794121633149992177939591142880248326852660793042872541581604433050463542616791507230916787749816774349304091863409183329530063990274369060767100025369075791421554842236402478393061160628593520796687523496858961602956192439830748200410313033609809368289259985870492831219431124592843470228833649330402529934876740962393780942100645004240066051670223921253731091353901837956834023725786955393505649010160328859841054573120293783088787877135949695508783589981698459212461632398369265277566342694061644896994340957684133599443246530208275678491774599878285683273734172159027363829607582576836296645794792168450189067095599518284444950192273833196878516501497849630962478236459874538264456660191293202449361381046532464052759334608283029375365429738997336654079014398689570143653510982276050871429723302978661855555089334292605757676008267207738095882757148145398847634245942778264062067468319023733110333068612555638296541239685092227194424071690965268018060923398516180308280512665248998191428580359415009284437018584742331839973229058471080557057736260313167928611773630056075936229857665648238925588817887443334057198658287169599341490669288699794661750435705355448017078011025481921429459115553407861829482765528800182816972417965489131844435555863537758603068255682485980033407396161040245144935473323588082802188435979711830221183704445064419558802587543810069300695107582314562864025660245802577196439814202719998314781812710215929781772721109669306641976535831256619222637853415953999467207151711173514453805239773742325666780790040703213592826575213294405678370062206807333282118220132513581895315972597097693189132151540647302402089231056260643007432400144775588542281929246948440400481943215046313324621705920519286752227366685002965477080814498488940579790416601041702759141893576917591504725872432456357106878776911301927978568436545769422156222393700225854512140789255206667462825065560759725372260764219539081663494960250362127534828157024932913708027852047926077496781356282683830586889104909585493819744939556283346954135066931102833780540942493517750850990581562447455916000516048289406452915234639632091761400801737033411463014901294936657720660525558230661425283068930725497439495451502585622354004379082916922306785033372432461928276525586690012606955163798952690327151454001089441712061363349176213673792698294927254647277732993189985221973517272278838338124454140284211522971082252340286772968907452199447317437944025867809877078024452589053012071651562497107454029155190361146007722655003894658325814444836353091467653446685826778401671021932596983417193815938662376065592196816880476051848990194758009622871244163665216823277630807136873146237966302470423951874104777433677175885123567642565372564625415542394677519371290457954329221293473624304892023497500340159449338127623531428699895301157206248063290318935670960592851028189876200265489386816299809993201078025054489495009147066784788327434527195171565424627232256845058026657208915969273344689794325427550343242250549611086110409125543711840400155547407035392552291346534782963019283562399491590265634498726894263661309369731402207534800021777567591050370715201230141906337142364686163922929716686078601554552488648902530740977386732845665226445023677141646741415386113641783274108706918108321089240176356456182506799287467690911406981197095219845982174038189476807266441767976292778045098730000288264688679199071937043314906615193406464628599130940729927966846565561758023525228193936064156750686298930923252293716372658142518743256477978594553757489762689545702898615187238281966648313000618497205226714274332263249149964629657824837268061156923817014967281236313710093645956646303442331977352385948171517775404565660104254154657096658895367978759248258812223207038579549190841401244037730464075142769128701644328705507369484640469329796477786540241997298997431624468616841957614774613498523309363737369401806891735814812745313407676461235763975167262105550123945523243539016826961092910409918438134811669086153049929343812903227692519445436897250077638391900890392008278575889284682062657206578370991842529823944603807663246726323906286239836519074860513897774694848796183364623922066493038450375701339360951346900571474447850604997369951062537503058999241765983635470938712835101868299194263185159693432868249268884697541641666136035946179593335616518075824451686203993186342768920020211048376626179537210420954202456247664637713843678347218304668460748847948356478412091877649231365781994993218941142295611945080241687324304556592659482045268100862258407710641178221643429413434199741322820621453595647404946597885451406004412725654185785149272947739688041388239065306117657860060621527883727270366072496204769507806119128190783546012969967557989972152693236603078417693871082905283807297964327802308106261581439889966030126228378181384568834881347526409706883403579098724265552664855990765252887040425120880979615652492988285996133631291498414521375150307888711814238959343762853686552356632882812014684444123687296838523658901112139302631602874136600659129489545362625330330600137806486504294432887249626873966771285809746864690353850126336019458181105729795039236387942136163196005999046164517042634772591857086953435319788863894811125065303213047771901064350442601059265999566323488400818057396017892118506623160247912129788108585762290589032879656919782276931539896511869093632564588059826261467261064599283996752897121208754597842866546623663264832532742130406156397734682507107398854411534830467749202779663244114107848320531698064302308542457946381635184112094421681130043325950193201192477469534230621816757183658473203566683953029649929634549218025448152176097448786737502816294145742506980485096469435249892196770370201381140061768060789838505804083441531157537725682774533575488925795573572029599212170256925398266436262432578842447748755447145369452317741120691106223368697058065211060995838795519779954543720968638250313229531963791136428294410213888567066044735747869170291227761400930325760641105947749996948253212123441063583848252700295695163838571656775664691431502689591180629665725944936657240914247303110465976809729379863522874280444548349886717411433496958120314339472471290076163450679010356347920755276809967258904406052964647084275949915890837116480295984399817965596981351183935223197177908697174621294499428676117470103441723513525634241791631819390119464058782983676064573779520517216647221650855551793569408175495264011197792001045423703300695999368445711409829346590256228431106566252545969583418798074593294881368089546497850443828452744312305610710287755195462343438433540762382304174200343075676836466920503338489363968776711451993078019318238833085841139727015335231673431197237326313538108935577074526909700641783356159197217520935504766379909107084593866756053835140906028365640647457152444038801863235111668436454774467481162860615259013937964047218746505160461722127589657763538569149089637378583043223684659174048131189791812495636167436062483430720006893372159040218128099246446642957721751811157366340497901111989333005879539443188814503674988217657194471994272868380737763798835366350752742097987414177103361951154157530998451534091025515396136118003897034357258580903004814687247677475021397220395922060298180024730552639332512107566129476964953810623005277360426881550253776062932793328832528355625579837600549352593031951022601909261967796676790139244585738427587110718971954467667047585734652861415931091056598087438363045802681893771153984711453087839845132882227920949498984667741393529275677720919707903874223942621191422580634069686404241394171340478490557581631122642728466231550314404734204860683507097349449417812967245172846186831128383570270852543168674221740818178100704793948157491733569353384409188300993407856351261071226860787156486583185297845399542261994544184552319082642668048499119512496984164557122089589045341275020136467737887859300658544571309797168735299133002794571556478119664784530861705773843552281958621947160248370425075858327495351640120149888970563322112093309581622789908238277134014481802753564380202277974079329606722528938896948414572848896532349208829244279203906501502202039177500990465313552395229328549304632963249511348734849257891621955861487155019662326644490624916535446934724679754554838835120834777808936915247760231095560629927120395498096957484874994806521472540880795193294581315171165384111434978174549602452468227228171239811115101405906377011535647231466913732594832274846066332482020323177474520956109558425042696638527484701989562555194434534643131236337959866369242169437253937685185561496797645080498555118130182854271054437475843516444203107029397271277710498408791744879911062803239825311069613624195454933278230916769602254858498733698544758205678151077640326994966361841832514114927666466649082188734734917011702378771455800569151354123465408534551098419315450925166246896801312412657423795828313899832322274451909315636163353972972969427560671731664250930233806711426441525843391507104982276839954335617526661471113741185839882558520809983923119409530373055841802993039112066066465672257769438390102880320516796300860941336888362581990962082937994823791715188063959074265661143121880229586022895222191743041511612055703591378921905507848237415856694296375248830431395300696462018217780224924057597146732018411812347489033156961917300919951835717737363622892039790140775245116716247944707672969710681699316037507699820088519241165565405029662679523858634430008628923290242773784214677169984621658091020489643104712020240673299230779700546135491632752101810825806037516130985587838109194755281448955935289394198746642672852906027915437336062808683899273755351471537448548429353038082794609610170679139592203296085045854838483945946888049124780474732374636411042136631019826912757782246960603790367415513395613852854084798116483675974210131232699381539589011523124803953276672222931572940738061723304189638214552422068195227897803918666488497823379796988514863402108520090486607489626375437641637528216606229271278007616524657767631485381303208398576190747920329107854663332526906984531068118969131397966859027847904870132402363817569316259861022672296277365543886846415488025255592161001341421118230294871792192873992781928481726179058696833361655253043294967827149011651383400268680777059581330661054392423766180562031586048493480645022351456186252802117489528766238886567038284126645274462885932273723245799740759667063324558714771433207574384209835301359484561939504714068099408470119111461313915925790467088143475248504386386005137018110993722767213201849949880101037877940893010450814874089982709541455465052609385812892675424586959623198227186720179148343618372524319688578684857935163027438453180342254825697153472535484309061688340430081307110410093172269430665107639524968395385362741498744215033684976929733748383624059323327992882357891091519321906950358327384991675320984593808110817794285379751558276415364835039657459763021642792884329376541892841419036684817986342975367562227317885492994004673892111358501509925583336062954009085978639076906081620970197453339509831847288951600579010920132574370858691329446315044915647371695593881501035411265090233743030521530187239385808094480547530072445438905886514656194299749884250110743527874255090979051806766167856759039311706269271159526844389804783463943944735845827359840801660887725753148917904096327320938465783834409350815740187482579893583730786445713912812425070142957466410180882548200318113158694070545716628758496420247376634078017735039198309520498508752519013678811871141000487604412302182771820364092726672337986809324883877696552267869237678860762087091061200448095636978462436603541942904653619093413936463479626809347641691230976688473687389036397137638683282909189877332900721461870070808984875833420369830302230353099728438141678397606795922902274209915045040644291912150242105612134480880489838644710401090734495534812511560749837056970613840158658450305424153284560811201169189469428668127776266801689673067241959113569869987969853466587740165278792068461448862152565883426085486071047694563640497979658338012722870633663075120291939704249695911469979652142439032768762167228733864848204387369498706254414128914503803721823956054957481759664066216110479636304508851183612023366243543681662844822506147409232160310462759610948567942793971616019661038415941085131995864665801788943628669941629197661215932376567975419318339794046978533784620208223197034819986478166626970694839438939740716340976767936369555820911755135386059590262022832635672133583221494811894635778121187741503012028395978222683601063442322586787175125560589735439607176988469851087706617358477965174112448320040167565157358737848798128341675702688246561569229918156427876864841682827846456923831737313962160931947888798833504573321314909848602671546862822254102612698842901600417242575153365432900000451213970373384048024165740473126284669592865158686746535560832799912433390231278084747855251777023742084286365245108637721010255543893468941348609332152150157758031707326365471442945388326428001897572387361739749013734004832305046876521430842118991043701267621107919755327771892379544767044546617331585905929720863286373437201736614485048531714375875487913546054079646064573241136763312980501125329719106140906717713749825403298626419765446434201967964394920866033424704671274052654846340692284187178831349740910292602492912117618776085938609316052755876932465650226204295854699234598855252330775773058963167743312151491218578652647848481813711972152890833789111290953168644412653137208786095809162560052001254601789593231894784594366880442992988279368811450930868542701265049088872998117418524527568263509492757826013137928952122054556696483605575723124704661556055076932936336653858192772958878550726281073625248591835432809000718483749846116394256081651585164357123994418796913823488693726872971711372854420707477792006912611328600113869761032088732829927134172009103018205874810743538435782695473442470602990317644341559454358610550691754054239520295168569535445761593269292997143432629902007227876518939836571553330240424149920071074991423502858787613447500276211513675622088423368365796104122229888358351804269968776412512460802239063150575547169787420759705705670213099938005727196731484802510968586592624621609876954428794176531174350643755858384084487858560264491301181927665876885075185330095392773958429727610793981537037692604397974877136571878186287694338454323960892486345049201199643424270229982821224438995814720779738637390958827234036239250437050015498276418316626631078012146646094791415593033396033708117516569849213193047308102004206032007235415437757877884319816134609247627231970447049701636755421051734521835842627469429641470375000905946041266999507061510489986815870141847027988364609820479237680395839633065828091922256494119505860543710116479415212305410227467128872535980269520632436206882723729988912908926921797595042790218072644364409736489028754846052748172266856814636972770255579328432437355285494730983732057102730424058685841873383048371835270631403701186258774494829058825690513294079940028410046199176476641924028978835210078404942242787124457305904693950860008394624488099628328003614147609836187258552245689931505473736430076901807836087158265649635221978233676132128180406060115575861421406736926331972747197061285994632378481359021521932936720399005533458849842466677112848074452541160217701170454121605670669755410304119182374690869026314971013631770420388759441370411672262377956343830057784507047888855442138339673099291488939773550445978148149091460366637187084823228995481734167224624393021624257921030626640474032958095499756991265645645801026821586506336540289502925243691410683623950694512708197348539907852118380828462364272685898769811148793431258932347798281464449507774432517814118669437790198166731970411558434465471987511147407831545386904751164476949058798636133146222487046183086012929996823449878439431983712612764509796542918296212833495199311917458666182374176670127878880870555765187789471518143307676688930761639439857786530181853808505740301773564126597823440678859400325304134177014866372897000072878727873325419351487981996092253017575671039346799703889300999951741811444836453376020075760399498717363677780976796771458540812805298375707227620370456242681510782685816819386520615517006726760742533144800977736513113480916522637096973475896984187779011267574507148345001683512560491697082196199416233286521467035778800774682509147002379303964623252331326905060281265824407746912011042661795569192454388983998313669345216341784781351683273427930172416743837899388880048685197697461380492663127260075196057640843459988780572062993533706076755700201921948784206230592878392804796152051825384360132104029456717903922996643731040689333987532884657172908087308054444307623349064604164569614000282285845174126744608249032465804454233310005799244568258713862914734512848411218171391586014761044279205000161685734914768186570557029540028661392096823992329602982459063255959440691098935964022266143170546314230401299366442077126553919324839623508065528310969446163062415125073764893366829467280655778332175919242852897596994877297137458573949499810048083727394408818395706328824592578915764460067759067539191872058090037690342293599192781219952366839046749014076663958146576286091752030658795108724433715563083790239818995570292798174904621380618690514914077988566296933718394730548459295188147757586260050424549227006766578287306055311940102969192144954519604122958620182292083792884344188825395928651190595968903140805009862978770906594289803711560518175691129360543209690466924522215884967547256136316441229345826231670183328908266542402050363133605880653593526908034874379408799707374184784964133335212199942921701745522285974696438638497090917218325200475945900118011613030683133640199928332107870491601672680593889913406569543781494835704397373049947840963422503403255847872503592242132119907562272480504873077952135466506811334534289622805216919728329022446516751715771568461313803199530699505326768134445663975173195289365628562695242293596179235842377840033616756505728824199947986569228876687379764404618625093721762682384424496102801254537172908258349173479808716426775153137117424126153424001893938579991124776689509976470362141649934625978990999373069991298529985131291027718409135629743344052400764133887141727575082018425932576612192467408081745171317538467664779927797188087363495437631003314700506094458184903413392427766327521717028466623152632314855872401104382087068331616845540504322103274266333256050249691943641392021941581085979785146518276364919742253790691155384396900751448168648613452992758437748029965241360568315426990009538173595898587557816834949666005313679190856554252001383316156215483077309885714788434461511869564783209311189924189187603489081559122814154818256111153353389649026385085389998342007666742120202343183483807487411747615643150586445901098627806130446309843032522277978948735830503202858183620570179887183550620544596689023852503783918164567894472249970260213719963198469397209690964847778718899544231894219412443365388211493683736065777172083193878171600374774520050006382722330645594928775160756588885110105841769607095187652314916771910405648577469007909058156162024960240450373220992957142881245027656520098284125393378115829012266414942146618485527095102046504545678673493301564594707672154806849263742407103436693896883040880838857147798932642277339802105377757743022522376073526855684602862019803989234716773072419771317569817342608317054479906718604037992292023960236061928058173248171818847389230065116253137445434055538295822053837624422477275754975011055660575502488934197346135791599515571186553397447042864637889453823607793406635089684458865879603113287337876956777230984431167621382530344881615975556786972440016808648346431467186161626451110030326824752047646721105237037204136355194348916134236338864039223243506373655674416865742304603554330977526192921910744501965547357723446933802480401204290674147650328830931474807715833960126562851970306009926817033607085228372366697763283134160137532218713640500964818594888978819237348630076913350771196104825498507271838709532031863842245321111007138141937882009744650930848385278789884298855476481108079196993641021273885206600508058467031920977587728266197827156080209951973348859196447555106070374285427723860244000911579988848053275092545914978840203578312450289743559792824038496922686155925313739809806954469030743289572887801854061511149473721092970955783654091461513208617019989142345379751494227748671395247982073792373542978870605645084771281754928973152617761491578539673725171053009598285892618847890371094770126029833302364746357921490008902631962558441165585228664068415323708494042519814056042981812559066063321608091301196740431041480246404603126078605151801165760112643296916790800187597375329721559980544773707770683871344261435852266642513774009793537869528717410561150021100161756644510904951660112176022239148142812691552119288972118388739975410977155373651129324160652865101140315785487530006605253786773417990188356138955713550202267063129547751117108913328434939976919219926026814133431266627806293432769292963601715323575610760162799038825163506706095534405372576002537189025180827870114266118492750002768446588822652585528914175277934344898793322294700646844408614988088679574075725548525355413597823598783036670972662281278942898608967555594109428012834303560136796340588147620133508000494248071168126437395818927515632670769826479490698444339536611565380739030735745698981074060454709577064608360281273016495742818872261882582276442766686975177370744227216357486974915964183646424097069107056564860617688215106622856846180189312312247058615405505263511177274563369371298829640291041666638606889081839718432062805178228398463374152119737268645263845406080937856880137947231333851889713803572936398925134345055146261497434439387016613243049445654743870021016369482621034821975902178790353899456548817248561627461597441981163042190210348610095061954124739159263365852284173234290676904567591937764054758906244113059695257254003196424256386294090470386108553396554212632211771763065892732095886272682071425398562934149051561330621200778472645459437772142935291097744194556053651445597774300979273590798667240822907013849140150385088810157722515772203358625787565119393441394048381898055134430074754159718060874030094110690372171946730018581693132946479770569612048672708230502391761048708007823554065838359215511523139538036774150752646086191774526011042077834260933221398325258143945644726315418524204541038898002325296546148683783707421604423967141840201805491928411148358394070482728561462104698945189589449681330778413002097214871398724575319032501456155554029078190400337635551098510496802338061295952462626168736044712803674751823309329378366282305185225723433819682798833058921291807819420824123129278348546262804237530292902529864867980500390441251775512389732624416876443015757974021290044310138387781746803723736866364245103173500159414877515671711945978113703814149841405018429433038529226757650887905883324387928207178171810183681060934975947881201383556722927460146151417904450750609668910222980299917541258378096668335332483763752380387182362293492322073666245818991421600675101514098775469683925311616287628695886576658830563822390328343174225020274700832281070930182149153297202003098738497990015739488000238322440684912599612365272910697987380087832085380623136178151492799172742201780138154292288447604166345016124445393434788538930773378658000294172778108077876945020648731542517625272494766085387820774029569237173600506694964981749207457198355758631741338098365158906513137065180599392145538025364743757718903620711007693479875556626268491586817440563878714969001338496440753221282399110761031936222072063964069125374222533425828070338905613067879047177689534978739331308936466418621991148212264426264407773884859130078589052048797037686719026699273514908139346351390320191125943440458553683447695189783467778857844767181242467619032675835910320926149188982228077312875975329230446736091284947568109486442212148303014528783350564565309696010625105153536448392531170434743896264577782649949254966115168253074144413562460872319040010823953003824283182310007149657898255804522566759064237316419990662043542334562313821015432726629226294958227337472135533224229671610625667770293667477496029128075144097738103508168169148639389730028558471427968989243143625185372667719848743862772153414546964088803348338412740398634970746256537713753058706621092549453505224836696663320613180130354519273447194813559861088150235185064002821026977710055424945023998999526075420576532584890861666979095303685546333263626335445497051938828899205947922219964409845345221533761240739816903775314867390659709484861741021784851298005733247507100822696555896751398710139781546464029187634471804492603349681355432670218992035975687305043829889989690391340888109901812154033137890497528185860565205341953532533101675094472595784169113394616503384070308366393965599095590590247771566727289434501794295001425843954251405908207986642416480551744286523166805241565761289600396429466979815143119436887039184424015877730948995936835585326320202098331157249930437254165008543678717763456612946581008299192695237741477011690615994944180068816829148215585465942751731760312759021837997384553149273954960979505399555849238415332869562077254852174773457658627812890106951864601390814745219805719740428872609061866325134607457750735832713569857216633791874322962740055855529782317521053983721413179139188842921053820623668936754545609575907146900681413448196010588112874549975084508800179216567352487320115856072327592420199200820414675112647591658748864444286238298947384596596958178814578296217638009488809626597716442216677140350316007980383410671327764551391157688880413212233297453183020047262519256103626973571533960265068356240750096087734882503173986522143035862942103681315572963740005973560099373014525973667864098148700943721703419356187642626708554897066493572758891629012656596558912964362234579057718673981633440222913057424966123249736694947180246319108035163727392010874354512345473555256291301809252716074861152052135836242772152833374979290374703268378975342992047010984519761824773188010448179584118132997173983993856289092025541172892993089282523444444797673397407401008615287994906094192690248895289011521216366704974885420334692444003793099594433143013107576098659351224177047504596934722909670967500829940717602711440405548189086225280591828622232347825014348618369673198530404042399070568797469221374001334077068211102600439989648489771123140334039577460420725452882108728317368597630217904088873345041352209741231432650104523557276948519136221122714365492776868860198692875786135623008210013888380729222700892205778535299973903400407596474783740684152324318460934558438202760926218418127090994179722961309591135564039298567755450336974757515250576563306987742244886572369622476101562874262502125241035554014784887095241616064690521009159621410166152663075812460829085434706723033116867739303657716948631586087759734832710023807506005138173298156802509583299423974020746095498464376455242057062222333832645530244223266319232194641352171824299166408303573623702607104027015117527637863542109216302002329419152997364402358399004469147684756283505521137798729506257039337187768301534826582462426703751116324075215935610946315965892569799929356353772295724875924700863196207974290234591082145503321248343614159249511513085365477467611684792910900909289691197757221451361812933794320955513911494054789489896953957032840297687475314305809557808900547686930169206892636331210247723614378712767545190725688951656390308014337329641665508851369545553374671842041623876947357668623519399959248303717883466284998979024207189751733243923274142350925102128528914876376566012463689535123931053453917201841686294677097748697360517959363252805555355404158566246941660371732941557628999842271284593972682283769523098452234186558897900730688889816375013467682120576821381011687267633166763900386054406724979258774959225027336826366006936768578203379667016743161417071771884872352605204304384211208626802401922302640769725355224756003193441557518339309887935842459521793747968479857659769738442625981782175274873319861669285299385451935859115897646964708171099059883896587395576546360798517526659880372043929028631554006435988244852847940539168096501677053772497758262150127310664506707459284655648104304431974845439414726372051493393354512493435668362836847565214317809531004258411469662783528294611656314589403850812782128091287196594993442766418392644900290661998047390226065337105617174774213856462721115625230532414016399126924392539371708612054632892955497016560622823568631954615775086612842866131659442058260309055304721979229048346028449248240612264117885102674976628663408612676447005733870044198807563691519858613600545423264641996644059402372497890641417887478219179513552413585651214058402170742872998424852671017729383801013740983050436831019599815226076551435452150668389302413947131500488072504528153925299353690886647393490756113231402680679647233544738774583780707704938550312265111148825762561384287727875553971915172982498413712569704258969248292911822824253822277536606713925563044236210165254552508224496000431653607495834211235886825156724109834659256535140732482120179781121740595686881245797887693623550407434897043019101187813225588830660635493704231189870172245551637430125017239555180110154630664306311332949980085477622255045617285249894282118858803532998132226943310054696821529183654746593895540514462678293397175368979237556712219802830324718630721753889338719133438457434949133093677853129320876655618041241246159592491165042981087690957181719838322536770626231051909612634540220662125371935013594575831176154111932104032085233055704779801107162784815917784006414770545874802947168179434680081916695037919128081184473552075808466329848036544448912495063114211013835655683194665119054078871069895221828620609597394067491454476959559858472189004378161826762302708626265621099401132961735507524589862897898579568764720544403013090266709872674749473154865864585141240352690863058343994786141071040176985811053121433111122020283004661439879672744698355018064168063533771152347562064411265334386827495499046203153229922941462712167605236917569828935932168541216606657832273228700367578891273209771068925118615872527273847661913460408136423213953096229302564597186238110621229091959672505406507988663399345445958495077892286584043383692161699995961441371400006926152828733718251101256252606840499953408013616229366899037788945445382926235260879568103590977494761855006250358157595288592843330742178426927900099273916011191672323916444420393632451893271418477683722830414596767857732407137781746804849153134112913873166128162605016216105957674724774966853300489236845837594001770427190298278158294799619963003273617570453301644503081198826614711552083160750859392671270961103783108688824064415050669594562045019060515270384052565689846394115396368253824419546920189206674891580193780481210287168601687340808158032961619063842761336576172601592395884142136659197589218109359647896467341411106290440056488594165140691940299931370731235656184783877532432622929197195635829876789149891652374095036354640757419965974421636067799803492480203907101334094233058222275536033203100882670606446485738474496752293331892162308258376818899098937562646301283655014260988081148473586343500226675497944665109816191640956567016821751401687273395975609216850365311917152953354512704740860280369560267189564391869172549846315221200391212589114812265749798827957828278245475854795954797457845419716960763164081483958961781561196977657938899870739430223539264483799541878832901170120214556315828277251498386154325810323431934625680325182003470614268184699475046723639048207898793731940300706772131817026111209643975791527849929509081471391769370865090630572892010161365839249153709967240257754433837699934995908594045740791508390452799103256364184818284417675848956118416812359457190691273369800174358929432058593247407175427375913730434497986366383719668775967197757609520139533390265064068427597467887353044851910264767208269190722973991950055701994552958728620366987953551225935230227835357924049906933957773470174600923182556490320734165820368512036358154968240156929535084209760197841199547537365744490105311737334599688896415309977179381744087740416491751924051137517867940140017499279670231929183215252137899842036766148263164292250561903320174870143921906307922607379805557094562228105292220580557122066697595033488554708105570187658926586138468087257428289305312372514971157821341785796428565111941965519036660893905881336197261944397967769975290335315696136385447117892835669447742084025400526203100175958793647612061446385874244229572616818747214020507599869020283979231767038145749067341931356659265767022934451204892741494439200300174108543806591438140770248576063694748566160320583443896765997703449174810242470266585460908299108240033804400139757940941567040634719332277465134432949982726290157474619124516280157050366654865005658833065018140901968946356665333710002504353382371431368392373209460322511407825720407254715468345599378495961611320543884910168694627785180479732493304339931934557143108948677655264572996626947604387484629647364517002439826321733242903317253416099464606888517406346584666535498610653148188827446058310672557684024330231808208043088618261742475154985537718793628455909333940603636849643157371627822060568298154276851720207742110582052817110635753504769529224751594628518090676365298059243002660220205182362974773796654192214735446543106011119892252860210940906671197053794439461108915671650077410807932857495938805674332395212538022389631298604770734079559460901682055830754218708832069498730735056954145374145666113523041907278315649215131682540589073416662330974605285684217519366922658733103297097440122767189728108673425064094845377049222109649727797833172657300646708936847928914188312913978781257531811577430609788660974537860637145901679521873004620055746550870072989223131810409088907761299571655242798639605197179376080746310962747082459621919565627412249644408769203020293118967442063452476821451871554700807825227500338672587196303278242093585945336425666162704422279414625442113214159211714988406851594844677467184483521588045820750276711212996313515956680979320924402717986504665764128501733892214371341718724369161757258391943693371112941754497587475363033625078872702333359516214048061024803748572505658271599843084122199223418278217237389900821277365537207187859671170615496703841777300078083980963778376356626592660025415447951459642613773645986781262415763276884740246052028493346735123240782393857631675652958231315861610814009200980087537043444346054402414839758154663219388570367522282900350012119637466196777937478286750476491884053697035101371504282330677242558999929186815484178804374272171034616502755292274093630145078476025375928668016525205284467911017857215002912413037447963396822732569696235680250724370963826021133895542938839517674288894570577278116555601633819424723624770659755549213525928125158191780746651529482023389090407907626484967108465148881164484754551161172801342741724436387570101480245330119446885204790377761657980160924262786376213245085024604383115208032599236119596372794342164103271602978835155067451455442000766252273359004612409545915619944302730171955847650447169763911530561221489389042678569523988220747390614793745520026687037460887956751672199696743492549265381509366928984856159515171602917845455304106836560775259649331818965744245864288486019947285327213058821104742211910932732939987936483969260973657860438675649884007700207474132955270227194041044891073715383380948123423099013227980325575710438701438227019175889424409116538612420904489595491253586649447380185546192899118222605364543538802715842376064005648804761178028437157449467630177254152609490741936105044653135182207994292404535526298877369182346523021794655166854282869293338396202505641902176360081571201683213239932377835796509720422167406918638533216450821038590311140822716538590196202975181595448258560000663415151193501788884269769662686929716164387062768360754901916958218988841594514194687481833356324112379654324796736036879563236390643310482112962134119422705049709197994163660231709401013635920817838532542246983709875347878464400435598519686247971970481879793527216600394730675102796333173293792291095044531896023164475684313623145681373728351828021187261637427995348445576861456915403676780422544234503997820755575152683715200001799383020910779264702515593179976446468912895031561631833968122517704898053671829946862076894238257944166858918123024225911692879996677658261644558001234011265195951156845718982977834002512756974338270520467197953456757881090918885239049712297494571784390415461857005781697269169509843309323547068934595457321818024409858630062567640869594771269083803195052068143411234349370007521938459100193127201956043055545216614724791379245214036887634261257300371905020143567597362398720626403548603972517429807396598944507568323289495870614286035356325064601247064481916222709353163279694277121315836661209706107010107775077007726718529974815841320038977754906405692038350137993604583322007130428326946698169022610104747688979630775773881887313464945915078283956148301504920022194032777095055420520251637529716161317154259390306614984746339623101287798680503930005310542074924926598934934463840666360386489551968260360609687875367509925411511756126771345582840240539558692650984514323362412432422313718148904549989123419393499706585548004595440205786463068456227100994763797987139574518723614093668573460428702890599784700978201304818562930715894838191997498595477161424496714614242957995314075119371554659874356574816266169454547491537121119296370163772572342933525135680184329008735599218053229663047717459120323384797913324888239373231099609450125870952422002321430893747987235857107073462225166499144399881952901317852006072009225757387555915999663968220884205567632453628811757032541128013262394541158255156585086292088406525732504195497795541792385393091017595431444384621042099855939475820619212720382863768669593453058910609950430430099089437638813395186992418367690776533801082176903471238301218278825725180292676491335017084940159387735341596001854764983872758080825786201165397454318631690433476960590785151731309866443764122720521257714091214036311968253808386586813660153230620834140261593066227213711338648893188632745976060569347791875050546296437819866516206420825390601550360503857866538513402236368417028460862415097292190862429092411221561761671864090606302246139173612146261518285939567831328208976151437138405533967778518564702510595315782543576380960627705389861185663646146161871514737449596908313090425746826620879364807243217464460064561348978684468370243292657864590976968374209844429856480747829384598778042215443258620162061148346035829217851742842367310050200034169560954870242397776408071379879558285410352893943923230676810401066791749286907184309142544844010357726957852391041669663522149402063420049591169093354454479746030733653471366917002208646237078557764606543394142672700124010119540742024193999260299706888202419213481473490772428016558719591337829451099479396295706556504701364466817338616278569807275768876544677604028155214275837745417052867349753283324819688884052565923293312752112692303852073546274358752544448494345889012457500115213122058917782106739098312810731785923247062289848119561793043525947700132478940876357984425548847347156703904636959768149183601129454015446290557439384848619616327180021235386583485556396107810132860451355312001946243462751165562583843594774900533791996628605788490883439359886214506824730664672029819409034319272890640471742478838108856548100729942611111932545106943043064044032783581560806206233920918233499257922766017936838318632134661482096185180127536935781642357073931127213779190345830941112283125100266379101104624963285581280251294849837785371235878584328828816536093467688623299481756000241351964114663261434944148766555353460167673509504695646516307145422947006357850936360975246325324290395753097039929808794018061749690170150793008502568252671093464973742184070739204438992346364400960239001899524886757197769383910431085928816632721604517157269031588924458352383583457709269163223731212745539960203320111707732999589103481031698752713236763313340548668470932341594063301727970123176028875164864848641156015287560259882200134120233689505103759465218712924101654191344530338921715629038955474875116031768021785821573123695402389426286927268111702384685631063438494819277358605168321692570141976441073256077320098884964984811282931299554338138427588338598258195651112776927635414590621264615227196050307632848014902214419707251181261342526293910504757546937672807312231739980990367020932072003241059945119566821724872292709520486019698078031110597023932979718507857169677674596826955309775533044997500371450300013687434256417397727604039371872225102861950558384981414609169631169003303645767112074998682010983574525330315602680204025615888232291101210149126286081927762808052134422915013299402831493106124522901139806774155425788882734865465909699708313056347983006807056016732605752167073177752848888423278265082504927734149605905776111300038760874673297982583983268653410540745471740540012837366510683048147042945738042075968303106533118293483193097655862382119773137484435673205193632273513234789970948951157040717947215080418182878503976002274571527115385219361042719194578959313793920266584975450796016812875567779146154018390749619765014206305568623540206886316702883717546703679154544362696224417352285513102220929440978420986774285437734038726866291059515125015936529877621670587701490676176519253548256199138485496736682976515595613093696221276542765353581186916220065671564076574111297585191162447500027592563801864649077993878064934939619796014584617244063085031724477467290829432224209644118682443372163676196582505319936274393906777442939064894227439343068347574222757386036850361669106734584920526990867985917850608664990991888953231747256426331875468583000454851694666587252232671065726781011680618056880845034754890909001078832159366106705043887785535626140864049420404859927237436802572400315869692254825429653271607676530202898212178077783394457131014980835763932679421728844984038936818844983093823221176262268991795236908495644534602419509560396800657320539705440868546253140754463183821846918262243520871306222195816653216304792232100258767521531700001094278516963465501550539802101358560940781671313798900975252692450772577431312342079825388690381240523442324849564213282325297355482623187039426393313092711684667336157410935101474284860478404165220432104657460514637186222060619806688188933748491354653421649706382683393004064632198262021058266301028764132009237576146295540596243684997603668577714327226724630741173214920046918769793725983106853240343525064434805461615703176074678869965485081431546866118006073082122580219851353864710623037741093305325707712904694713652572680180336978556613981030035838526603722802380612109384617924838185491944264988844331634962382219709672922821747959478855515053714868808648398470038584345614683314727161249425676752926698265166867576926000953758860093199357316841609359488669835133116890287264905410964374526128639568422486184200495590279638618206306950642826352598239528766345689128525955650060976050979825467378984905273120790172118938071911944671001024054715237365982942511146521891230314899890232874668375788050938570148923044004537277405650246979662617813286281755556064148590154318668292927383369638532881507719131410557638028465329079398911683009320293425204731320672371917771037873442750072698338408724701884888119855550942075070354897257718116365899529908398036168647109422266654098371836365566754462884974009096797814037750837108529714690093070803301155542313728885369786609689905906381981011313362834728153225618446749059753850260625171106409695631541931231769060123066120156854680412395204339078450271661354587779661408459030393254752969365791039338007871842760147810536239297354103668314860844514651568631960809631722071711685928754427766119958140437333890822573877532310967326263372982438445948363212457882883124362527873303067327166002069787301357373000844257115324850095256596035855056488173079371906710594109360212073621730825067069171080647610318813492867567730641405472760917112692798952613353605119822714181059834301114607560657143941189336528105591798058117622928902066221583873544435172731451089094525085067188133253724823470810851995788592833350562255224687327883331791310410615125947506576221990317903843789099538422399957107947106467864126614167539474680011369744685977366884180082660258961941368598681393309284525696530875470314264183505273703905012862059437242609470168707015096526340050042078243687806493079143054272284705530837124598101077477777491601461384734835932904523390693837903929867142681945778059285707855430495042610883815798678912258273352760111904026063925335261478105754691158283504871710989425384939386729272802313836197552824388288664277453693359279863165842744483586123757903731004838402574001629940771154319673799206163049161787310584236351259638737768034302726237182429670807617989670643551593986894276568968181427910444281656537713648414731589322608012782056603084983362181668399939584709381418366300443710147308564460916753324234237059311536402825478307163396638742579261593714479434707812026654266456944067000624119125890177640655927875871430521955030777827730853557808373823836655982532902351664458845545901921233870909688562450380697936904031011676238365249537359787768511132823785490092906397182713046636808736497120741117507012604586877526612304275157086823096483699618830734212490669446829327589099320257313097183264364165574589975369596068364961117425246146343118242633287443621861768208603610546220913384805868436277839809986147675101520862969947043457506240066423604718579881743621993715631936656914824008938923839724297608331669558377353229263332426673892633403247317886165481676732622161932465016678537066893457494027378276952581027951409419682453827006508190114038717650520717395089010432580419412672970229405139958958844262380307444001093232834748017486420947744052538269308114599882989970456226656994081338745925705479057311389616292308905004265720029349504444819803228759721238770700368162516228783301325400140552781544154278947032541465606382386677812056408731907401090703238366070763418915098660326039290856156955399983538135352437842050286833343659561436053644376718545212303143493241540251677351073871968706255695317328464387559460491971982468249650950233162580785185800648629257937393000286835761996285312001556585502863789020361115111241821712433942956954191925288152370903838233720896281599918039490936812138704945949498348488548889930273602308740713735986871199026402977433339097057374853780730717130559362922846348424431374521266058072096958274112139506032004870647595642409369578396712795353186138679418884383279988347608284056846475848783659845255117132791439624084180339624746860611141918654694783457995361731060645985840709737289183955857484371247772745540927672546306544977293589223293702515713317730899456261010517779971494728245557315776266640701664147650539708438325025122279049175427156986450136858933555933135609073433257481518614928240011535878557794636253099862803645466873987788568807596052729050739258221455207362987053560694666346890499147543640474981804132592297445446877167870273821368207153745342724986481819010870317237301305916120195904351548038642082003590090477125448689225657974058833825608679928397699666577084301050111889930930373029715020021512127102525619531342848672233331935902908836333645631183700077448960551097270445552932522851220161070400398087786342045580436507860826202499085304201659714884194310791251569337039072302127313738584761090320328995823165570490408807989155079840759882641399914238907264753140532790022918831559710398909993331193275696283089729789898459141732401921628354711433342671801113775719476086025648899601118593781235596483883128176739915056551752253707735327333122038880065729766010231843386434150059041164044895536791008981878869986015364642296727561813633186862922325286381695117178572274370546035358235588606185860624905629177401412327315924306074068355931369747566761610863964327316136087575843802269780360036995933486826348270676980981220733603359152931622010329747906105170190525887492105463339180148424373227889974390096616368152244279382544474948611052558624010877599377799972334011158066583959155011493120754816436515094566075116001058578651306007861497412337388174423774510700805350360308860384842219838958600663590616130082413916285254998108977277642923773337484846342744724543790493264854482580299885493698246814586473778292696170190853170022409392429838163998561361441390743005263137872064252958019502781157395982143097907894080706015595577924701133677265999828935758393948578776320698456818193632148427762156791022840811967282131967951499291857650425865282260259525420388091524645245888707661939529939014641818365165981703511588805042580651568985065453116521881150242025243853293959438601636396550682424663367131252837720565591298038506170881807604528474871466443028792763479637424207635234516945508589708824767271654366932688303742055995759555790060962886629357849231939577357711681022519357941418771264302340177203820363006001433845418192934767173594337924109195019981082139826644061935545727230015859272163275197184726896163121876962849134721583030839594918369836666457889979519926012519356154773896748750301160869415927084032334076713325735920963845073045522808389975499958861352488356269665595675095036232657459846456166874925743934830377629787098669962614761066540314352414720018525633095932290918508685312517416192607352169509275217682311773806938485239104559403388585525424676696000016989657800876084246576523726928697624106438892270890636615733281892186922711095038279841661276386793589913778089452100536093973604293278633658521765211139761095026564225534936370151207099321914207303484493126251147647255311180740955948720829387204831272151733279701031863871668917147021537140672186656811096071801632225315420814900547934014495809189682562846575358270206079986743857859230387649922857847062950423097213251720321015190600596166553335254248156273332719678991839571735255746872731239258045522828965324490350885470114483716233568335349166449278211625115034942112553257907712021116428960495040353738732594661803152880410843806724669644667015512863652779665904018169547479776583924957667969929527120638759602178942862647375332059723554266149394895436184021245053642405935057931876059381721989422614898080985380444006051052426097935201251819228475651132270865219675514554736754352285268670384460901620958486326896357124045027212345779439238511782431154243981499467237551180997342805407912024346792765086969701608441815012704720985688810124681611816874988876354955347184116345125060555021034319504077930570681335795585821908900323914734405604462063400902933892561249415811961925801753668629967861124862653645038380423314207640041596847280219819019338302961200011347448387698642939949149401663797265012437852437256090900742005483189938475856286015720500885359929407366342976050232300115386576090718183697122837005197209710013716065897637851834611053997520647263338745913364977039255067969737499503054241160149812083550843797856667125809139964992728244993809643278937838120819449566993025447920345975926384634139131171174803784615912335908871855851802843133875276708977590749536022295033608457057281804484140304550746435376216168018346638599171584965512908842303602035456681714150168380196519848512818117024401708591868334886966466132197229347164203532583250136822245629144420396791128088329640850215632979480910790558997403995866135420225833472801525849795539476328154391190683340431058583753993112782179628164707986757916619686871020306514176955692784989246054980108926283095767433306822815010207467950007040111751064722457377050909914746695221462222828064988172071038367863797825615282904139144254858719927047122849822875042577793680386754821611351762095940718205500804004703703478465353668284910250849125711802141586407860787401808373720041261336230875117191669182001518188840067445931877497839752399429579054459221536326419877679536355006097865483471865217387353768356076519372441113180863298996700974191162224018259238981502336206201416501513321630310569325567063414192386963378653282591612393716761122503353100614377331302298747289292051480957976740440445756895492092241410726540177031848656321873773406705348962206355551671641062559806112103849953220990012371905250815263755417813322239729207989164125791011341379349118720094659712489876784873847588298835911382995134647127596240493051442573893526856287416962140013939287515665782018386482855046586840736641691363492619482503258524632253278994119501401343109170232680212161034235358882035987850523325009412528572645216920995307018848808011647412900126018406384915017418130133697481538967791307954033023547246323806525833977626491031625248525683876339179348648999931742417585541856862453943166143679483216165469620396514860936391166159985486527562782705492984286694625426068130473937458284049531512067533280003726898272957815269312770624139953213940087388551753675203300191758859138524934038048260128448107535526379043385558707052170954582723307485524915093632176146548087655071911929368882850727874914329670692339280582173242139971501017641922154676221881509688580334273815366630448525485749641357739372654102910924278184884003892585644399472875266395174852490881247605290606508928940456676415708156655967366293850292998392388766971247992079348548638447353700411576850246864721715994185682982154287895131955380214052316286249081044835882526676528529185626097129678359562181785902975493937382495610238395448839588777926713333741703425329009601769110549313670776915376501866022216683103296859308907619397876355621906896016952718223490742249871428357673629883430500865322735957407079325087230982921219275578436048575665717751659406244926338855634512387610613467842823071346005305673819952633315461827455542400387196227476708008629912304521202994423254045933859457339456753016688127159839614405963376547486927592303872299787793922325277261266749406266509424214619316807187097521124092343365126095368971241865660607045250111581405973170523915844847163132954972344848821597001615157286159360199371873096733193766252081245069148449429821938487875791819026845271062921668366074313003657997007245230959436131438775697260867524583502044876331701121796830016533969071078851334102122100466927163931316419395343986105525568823456165753165333752299315213643292217326240181756887094703172524604939541495395358426628716006384714268997885175811941700699928495171412110625454892652879838279275114737536871509444728153032449062525267453957502459675474356581617607572963610974822504068847898484304069348255101782381866430325539644760207688376641686022751345787857394473436121322773399833902158076273730143330899240059193267353235368134304005943212396296087655270735912266320173785067166779915825592657242948847571621361392895416544500768368370132087130486299557099947602721984252841619787849220810596219076153564245278580449295081630890776940222762225071531260880029986987804282202184123340934937700419742482106542396722433843333996942492940364623789205475320801789506184169869937678298642886449404121506895266969926729890404517601256774806412894393955649486118108960933835688486163461779875938886944302920428006459528759077895710012345749584196234956671970164290047444358134105404281551849799545512694789213534975637755060723676224758191946625865800841863643507403581612912115693638885618446338609678140933022537430323005370685828025743601865527850284103529086510011549224778247803017430044651729538656301709436074071698025669563398998690389948594883473405120620099217611599368973421228121674359758718269698908794592235006305763368067545169162148847329853842632366827786884906465204413379654603651436407535838303340733765657537759579857210321340645905791908370082918046900147570142005742810915072323844776136121644699657023695016825219670845222129089740996848962396683060240416515703661529804789503398838512796062847870984755590711483613028234595407901075733455580146485692476700076471216303765989344149058233651184575205031051608396234375317137151212662293500892548002627611052488398355868155664329338558613742294327040514750394349105837368923250663971337836179289276872265488806936815196392713100826647200647543203069648475546279724343480890988892123410661086006808592689163677242590330879555048722621036678759276356166030397639478619254444984839071081582537654617349333154832727452639557364986922849639069228254884899628570449669583805403262856792171226100004242985249731569410869209775390990988539694317823692461185546329174046021031651689891752830231205464128988229589461131379841178092712300710604753222797521002348711625403463408342848260412165447377074454385809200723008081325026164308696149382267489709515216709387260610232403978358715630604189488908731152399361863250263312046816923827168504452211461618639360196325991051737788328988059455369925913729985023396283230540076087271776813205121170293061119766739052328879551898043032528354432141546279760264395244466714927419960126273562686315801593672631727510807524295667774445893759628722197430520175279610017112238691817120002233823517624083174989085827055616594126399649817213867871594615416741338163229716165973033316768425871152406434548751240127191282596386152003648698461403042380292826603905867215839853972833181494221010886592994972958262707573118593197556203197093889279578630409228634723879478925055925052593245743721899464634514119574754258482496047500188103312174415560267580503201513971310813217305824500108256447004761293455892089580395046022875235356917720647527277030919076625392200527970047055969830182782041338805114649825642867236144544159744398799920161272315453985114957698963814765129020383884879638149071939718863945702242488185537739981547107159061845662092443116177489150301470934741466015080539817657759233154229657718798721656708698811329101216199980116307954092402176739038895836386482392237182385073132909785568061871483239104085226628398138971187597210307915153564065231914288844244669286428386903962296882132984770601737195743708699965283657155763260146911497070615003480024281581770862694612686753006078928888623035935356203710447230879983911828265535847018602231347796183384231262320670283658290359989691467572363672722350169145283443743013917722845550506853393792477333589361602618404160318339874731593883493783987221341901416718966803938344111658758373670613795245732343296591901260329172464541941888410712853574243161435167026831103226079010159859134640747060685618443139446919666501468292078380540298949902840980477662418150500984549870711111016252834060211105447711926443647324197228551051704861302643781784052063166057013729409626660672475655329282084873178112178168587795931449108802444869692060654819866857214880260692614362056081034823971093314116651613846764427015504843959039612942343598052516260992761673978299026332846665635830990203051131248750894969883581175252026114682904798901912371193550478741880304544265503462859408398159250029508020880023211493551310307440109519944809196232496914294383190628444877462583086902746080226826879450318176232865381933354628055921851000076036387028232802722367569233298763139462245408173488976011725723068065955298687224209133247495181050069356255913019864259313581248319524807944592234300142580025093005837166436627841770437031132634713402028506768039307930997471350367461400279430307296466691431779258822490843005434351545581073261140850177170808660711030309270299794963742428794662362648109748694638748766880574341979302369321779724103459731755228816416171552788695999789125081623504179494140891495130177589840747235581470909264625030541020108799489705718552956783170053515066606945132888222568969070880616707168771362210416426952246491499337509794865849912666535531632165691424849185129181776790417045435501924797058343842854014686893163553864937348379180865213332243360772006296138118850855140162789733243857871803592136012086634669865746005603067386233098341320248858647963894842416727974456984881078136072775921295982765633041876688620366430058624071454566662605569755725848340968345510619106327348303977053434590352792557403242938735342193487712160105475686751253341167746370056905964889423423230751636221735538409082108339137021648194920537446064749145330436115744962710713797470091493667115400932753924148156233454399679424673084811344533628232832945831716335978080116794405987621994199883234961869676951565022922484526255850168671886945261467836644981227955485063710834653528103231530627838749782786773125708892937802876602766238345484125595681277504380285134705906261304887299420443835428686590182270429665031901639884559815559195874415638405965101062381105837000149263929323530268415611786777835009388179182248214970726597075732879302558863124067006069246336841163338259010966717819807427230701977215542386878653835469696820385210913442379969405467306074988208343537124020983234890997629582952558198569691655717145044358293653044178888591366196997956987091317638285227685322160907274122742435344930836818024381394675896277050150162934830911325458368969242702396090987023922202367271664527332036406139240818736190548772092032280391506858312780913116904257380582969064941217014823666580991671760505824059822166003065048093418776574395206320821976680092984794106801519888301520563824885423404577339587501080074572395079265714164072845532405235736478002854134196097251857507750688674788022752645738542046641537887158540237067823564992939214844891259557030869388471840249039163587158894415950519027209993541986477358604556710062029026075971244074509175277229211834281742530118067449644235149303524284914386503255133796012253935153921739940742792090382707840886575581487795497981449216686003052794928425847395727117502753473825686451262087718182955659365115610705579236741683187275352304363893984593313458140694068056781323302076171798285866416475416505712591581971322978674369216830186742648791232680548565040132492211975507644131253175096219510589105307516165261231043648488554903454689304468714077098524599451492676933662199989280918408749246510077005214870793206970499309177715094762520206833807722198611566179166670917525742768826805608647019877408835985085018187660638450884043933817998147134928287174402055167263905297113535289689349820861124795815427906907298724359841478838340317078884324696218941550255501641940378288735410385148281784102604436653565674254592040858380218986585633038750494939499003300764719421778287062832671079144525932587369915411830676184952880048781546273078126518525773905480101546060646154011957612855864073746733230251605973140101660814280862748676800710607088342719163057874461366510267912965749247606285420580281977244319714020798318542107621935982719482572624009122565900860709658658544284014764368410614693311202487910548217192540747979353783622638261966855584814906049354752035192353037325472802525554110011644207933714134410362170732008394245555024969099747488153016784298839098694974659250084760563545176268566219205516585488860123549442108415700339973402218917724340175464106399676267524585583341286369694760821604903342863347879036519670143350791296888143775865443175386734916564888096037462441168379081626858982847283799225915901221856815308225976664701932121092847734453599299691640322522017043531277892554755935203289496253077960043227059672399508431111109708905729424997724445445017222856612227866553400074371518997949338719066332562313803629540527690246122653131967746993908458290567766274329818399830218128604479066393816690152553941503848016339026979481058635094756321361885959936939256392568765311452904329244002609029119714013341085817418769276472867645742403423774340163706356229247902776512032836026071587868955860387638008382932456486959495161107917633463113053549973956115258337375513489232737734141794291456119189305094444253508886134414329288775113456585426145351421825433877922684859350432759852578352043546000021190041047661452294799710303989420976731270016632288796995368502507967927516899928673458914988994903013562747381484097600686828704512595705174135315402129671007983064306130368566290364712398050537904651882981756027083427968266817275476301408177901882757308336401956421891332041448633950990498136904480581608588888797727403407566216217219451873920153450254757022039448594963311317689992853281472047612027348816046195082143312313850149818448720752701659286760419365061998358985606096869923497054674449783992265494339387984228048207694236478257704045175507566147011756728375537042541797256572454057769762346795035681354172542054021822106274888839021955934429595256839706041594724140912952074637283318472395946611848658685462736183920472303659044536027430205511824880258729973264598524158819721305088736022401146409426276970597072148843275867675244101173106765943967606947385030404547002839573791329973938532747287386277105426300827318062160331867002191301679449578361710053133550494056688280007069469072700990770802211518047557433596740541931059665733265306390947708081080804570229441101974378182740099722997637152321610218489584355571014123520410146562727045154791775988605807926222346038212843186849652351647180628909619198838337588932517269991834218870600462838007770567276714769983832573508233080363531758120959375400371819585074967827669503768739353379338956524646081217559098053438641411181565450444470803507376746701192260878580020079122817563640133862334591878579640958494867131768258067359612192831241385348809345672013203042227666666044674304184865279413439229380012506911054473551887697917308172452920541540235315324475976595775160966085202856731203073676926230325642818699150023164188588076205364536475350083929728764188866789035399369278742653158535248016327202611117223442857479909153621642335578805554808651787628482345286204889909020671012218160484796968142523734517463344726695722516081890740358048389077073749068396001158008586594369276018470551768809661992236010246717498962641087666380793694254227233677930342140891213380753312239228207565098057343353176798169026206653340573727568363455362125341001066648628387576840465412758578212428849734642020352595600950566753621000421682149573661957652973610580743196597716200272877550160984497728983968941095175943062976264191297069373507326795990735811119536867166684217861153861298139408963664693288084186134195968104222668110313157183544830801548070577359589500746854842205928250003959146040762355510498231131590817984379994648402261993065111651135593279105188928506166392362064767813608377974873571990676588860485399517762587915039490497779161096148827194882905425283019696120725549822018983822169714604285797645186653545974426868736955014308381945017530595611518464426538310189009762119394113263744132921100999952561973024663152743101911330359542871811095629593684631375258836289113436377007397303948846759486383265164520758426631886639417260192607558770513439462207349159177995857842542491175622865398853572277953868977704116522538304324890458402086762837230713295468084993746595150223067498370267415246001176983036933829494103024239633904138782543305676360855083645853726487176099136178503421804392632443733621236515321586212653011183630425711020605869749830833658222065765539744077825198070558735645846714971845144532602051866094273059882752960116923675056614408416762016591800477596957256331662312937955924774435620250586109687928200299973252518610477181670666931731099898839876661950591240200410466140478042553722617048456041727028381641712940777340513647959792105561586706295537087534723920000237179754879745227219261443412525383890913428826054394922080307632821317214255055429081377759290926719318032683090599309358640836578437212953655748463963014320900072968095812394289743041646431088907772611130463286264363329350082183204841815459262502132520058621945282338593343845294042757192160842409067100093186359612402159174052903955884466583072416793519072681543283620665553602013591474082342174085741479478876491546669042374965990227577984019098012704976061326993611034783878469039239222217486468114853909961649559915209630643881859823103133955888456465970747999334546967279299375218468224334881982170422515602330468584807789828886509909616947791241868546006379462645002063810305540920547564895239586246656923713745538674238941819400577853809946195232198350247918746466552953992569443819723401381373530237129732677077106833455434300541076674336954712358313659612524418737069205835712690387597328974337669939280231783284470706269101241260722042551894790913193729546089379302423105797933916973600214942886841762613343861096197646471027170672758957524956172402881265646573982213547107226010531599849183676432504231874265844415631504848077889854163872484547068514538640932878427547453438817895539575712809489766099109052135068672661919168295799713013791380809686568680736608257690038761678650078761783573889749881096223820102883733892220441795072550813236068299266125182100410313713424257027683860706468746929504321674716551607704589048068987797107827802400547512053882967530435866831602590558498062934772633358802704978331247246444543771431231173062410926280629629370406632695936948157349443642733025358418431429259244665377651759064997229829308612094475571983640357277645764791480490916206696300605389532633395020967698985745170097621633563702761561508278099543749634971699680156863378542096419351782930005968647191393172997309115898218580871762120297097291310615001128126865245096166716503461446667224356129313014148693864568580044889560508205215162262360181946808526654214018785118044239395304194367666087031627852567761288127763629166764970235566702218697594274176353236640156395961793393710682321325157578277368087224408535329514955236108108421708689773725879313749419341122371575102346386857432838769757315964639224282824103438971274671405926589991406368807448232899924231004869066170060941877031169796130701752058593305048977667524643519104098729075056443708917010743565256575485905732032245290680239719988647467396313420923783493749676630811643426392232976893912785390960504699848572143538328423547982701183880533569083705839676766023655796438663065578544832265526016177481289297722507655896388829716636479614570924714283325103205426857958171810977394383065404973867864554948132231608674818236303672531358553493037242011950894552547083092504602522610237204575282054495547649705143297889163964145643790658273980058888604988353433082810484034438919972166020603644762443969577098501743460753719618783867702483471638940327206404816849724960081219511968933335479927766594926042554962904763852724298115719958803887345625768341250400443092263052359462247830299006063279380147944626196247773731950189294591190634898714771862842743554867935814537214468709413690187143581824873224328323502576285091105920925577077963453717971303209645969418672889518755472664958460809770739453836357409989376456270150147651729974087763000410032447090270257419387712855387609648552814975769983966446919780105825329936490791059569846681768881026589008517444607674651986011346995495276169516195558159740072750783545619468445793574223124812788175968710082592931175985478404848613349497919934370173652102869367054086513229821187747071992034735197463970833873953649740305575593673950653941364868116457723801609391559318189399382102316036892434803614091830136873529444852186124698534635235319075220788973487946999079921334323519046694599286658156788138487986313067785369592992621638485088859823489023125979452140993082071541826707734489009094288551367971460007254128029262144019692728034062030536431675569366534667064480275846635119127121776651899950565581543159377589106113833424381126675540836199301045023178410810868813952196501487698747850858613332243083100095210221873937173707779437559327858609102179730271312153919367762653184935233082417401803120143497348654020642120934056374089463854773726465995917526666363334766309622906231736796399702901024279553862535993245090770813670281219690911959627899815079758797185588674368429295640969253283507510405710651029606136524359004201982109886547975433675872066744385872458090608571175758492503793742868148850810353097644989703193440034918693167994173147983142261547623701148432922184667363448914563559986009146161061502134012121480973309970363813068891826288711466771108207635368341684015604821691453246861810394719054849180423027983933776935166932788778265845247995808079697546196263983279114559961305408521445739388907530012938284375269182326068306169158447895290475468999430499604517579355842072579555996597432017823810189147675917382068829594157653729801050381271885519730171299992697905912413700644242648074822395677002341700042612202859518928018545227007010006369378523185942855097849872237500466674320241522528081216417756354455849825227845664665238684236694416255763660039919247285830689057309948868956009773780254698398193797633259329364181711143491844753723706460122058582218512920655864242080692237447970992367590001297116596003817315311038824336686694341820275150492025266374125905648260350736384067237308046931897388559817632693435319158313857587896356194266835656795698320294920859470907347988067017986229295893262371932836975811332391497288511040474897567203572909021855159075422108339752052407017084167596100877318432621370833353376266571518514714702436594945924927083740813315991461752183689241045850566272859331522464858909776090502102540197145828463987892921852379115986992810962603788917362944905785320224622642318097230302662987393698085472404595101065069382742499933422719864250087425204816377128639005511373334286796911414337589570752404571893465772698523190272255236435740149528021185285418272787172392210632415890881494590655023763803985684474630301687724544723505229513965273563175460742360693920380421641145069586928777659424004618119339868270789062462093400609382268217676488237594066164379618767474277550590799167246790514696047907035210763373603184173219914399314222943597020419582344550615646733480741250349783359100591370930533829751454732445278143058517953606043965649411668983185494953473286623623080023074630590788748850495792514625025063108436556008363689413164853274818642523637020390018732920440235124250558398751905749644482049086442945610166000340036578247824769310835418351866136606047029563664091991404012422590697573993959435711451368705036994622192188610043315568783424179261024656899217583076590346481286262179330975061340305486856705091766424736893436710754986831567872819404777961032729519789217696561851475760627696079902168824547994452162841398600939818948859752297628534738667201343132484119049457802462565380015861654209146878075844771154945698173457467567624685128558789222013461921155990754403063861198577804205041771989564417247237088365792998869511627928293467224839283405453377627303037892728069004475287871002980208981709634420984975733258682701769328340392005975591629691486340886209353650549668196992968323937317834483307383372699919281145812805976532253222221736005549691264673026900528433173233862171701068116185629543084659335823146592716385260993244916327473244136341377721086719395021547629686478351440064993587192993677856765784822826247671135216728536851001925998423982756473551768365689794255569095825091011428809125192650709801131083149878924574770439827086368492007729504693122391635714567611259975323436821205408657538319187116175560175992316477233137863601642436335975615812812491289093936574677408866223819576004400886210647086834648222675502595345358680432830453212252195884437625133401123567993603396533850952302237203229344171383062528656235150155531445873483815478884657181698853711063095842823169914846647598960990452064628737116720016234887780466253759856490184043081305764963741772900231443450297619019418322358133010329421605116205957711301544664001738864474586011002607038819158707604552835602840602255712253484836506616166126155300966198501147163846108821366993642526321878559724896822099546764885089273095865244055084464028909804803668592679872505682465621845194946971517608335439262297258456245850159443885373334428850066926011988698849127875994588041925475076219652289514344119972568196150533378013675438515443723913832727173116251717090669360382759080835710971859520945669230281661884623290849935411208582346283927969570680780564527626038311194505275338404572203097228655440598890075105018177657451227023701118609738719235402136464370954039195019207643478322171359509904746591090677215176838252177350200773118158797239783291832483126233456744425451120050118352668184086359180880301526598748277463326247352520315833043523303486835804525565476126128148607602965530564035514889664525347773162239691735974282251420468544348626799475532656049490302900188844655813120059069454337857888442155621348007533240305474461738131936830907710654571792467350908012239578314658511063637564059160029845658298529736091746723020386079130390231906335967628693464042230443052841683012245695344360240340213893995613732550551271909871859988034636371548536111816995305379845666211564764336347386784285093326712739298434334207940517919431514813200133592686801931774333739434385509991610788213974151439166350614679034636621154164515316625559999614850118558449137488947812751355388847823240213745095220336965611871560415251625947469311561409447112248788983274813375615449515470644501768412240032744482383047741237417270157495698171780348952754715822959938957249115167768503059169687236699564916001914373189393612306602541846532258768196033873952124742626533062061651787506220316589278979686587196076155892149519912945133633168674359130554882186000056664606153551083031044548492553019847903383391452597971458531287019374808609411187303000314274547593829286993674906362799235415387338390671974858746780300880582695870466217206464283818893425337216572243873636390618466189358450739778175662993612386668028228047071332593666433326701974478208545018670937403729010499134215061942677776621656019834739492331010758763223106486398052990384940930032844804724874958061370366366620888115475843695342593184194302889913355370691072973991332705656874170920680506911336257171886400479624562995325396418427254680581400309271699282216912579981200342590542647042847073639532956492174455537598665264637656167459518898520593600498607208580538894130336622908844314891361989784415084151663296638665892056552478575830640784419604378031098826735359996134464680663660891739459208544294271851227730811383011785714724710137591337588240157484192249498296287956102753504465545010553948223230175716448164837188988608224147148744674739859488945379589785661129273012607957311007338635466459377375317484311316080441010936439008079603600925023057307108304036899668071215650755726202171312292721879544337660296429297728942778033557154965341661273564007742220709142252658723895052516122575924401598563627743074076629922461686882042215921237061790010848598422161454069985761170592920127209072102705637647609750251777582972012847571607114288030246244561286167975282465267818438368168094184625470302570428533881336777314973214843003997210921802643240181221430846464145151711370816317097049356502564512497553511934739956748694506191253931117205821862821700672219783680722707411613262589818980649397818967339490805873330882738226239639461884344987299737190844850846974970650054043353085016662200162762807508800300296015672918490563435064831707501548632910465300504925436569517686451051242757040363579349875933864213070431769927524023748065010434318090534925262654642444456291783537141777511875208992376989888097128293482737351315105732094161402965583026241506010717856492761348662116485281386342996198264494656737719753950911441670077253497295958210273884659899441345979472420767634741259663994004465764788265404307435413748577028044760025696920052963513884951126363996449557375227808058898773082865358031769787893044374040856726095164813307082434899435056227429399829246237668861349821920721145361470354442078247357395179273729256952279965283137347744959995041035875025351338301797817355112900470165848494938765928815743596025167765087593094205127817165228155147766591049388950868710462945891343394601299232357597036025567057351085516535205981029691809260795603769992155497292074957645610143768268857827393311976722121708032527906400259917487934267472499772339413584315820429763733459738034785382899260995067660997911981879527041749355785779283981349059471704614235832899061705042114842722019620928852099215598973071332357488395093566841451329653271894913309304442102023488369048106253914405045358990901614335602836059219845077807098860674406398515146862380394967609175558830678616371077536801055835191002564735194591507665528264916018245439745188663213103103839788128276316924045294752288204289335665873383965369513459737904475117729097700167921051810683298352817031375845132234813929742981311011747655163801735334906538490697673321594360784279589627685601172966952311702966768879750333319290788956390876205730398072629536821300312029941557055191033354233218825893311171712639518411442311417514550843082178700211374087743495076338349383712158844454032509372551381269836734959453838475439729810017768844202480744967798296534035436905124576360420832347988566358586601201500296929569687286020973330839057421752316430265120872747063008670283714590181668414115903700813644047260614279660920566480565109966568840793498736267195718245831171078570472648750985162665368278265010468238316343340827176442068892045414040706476248733412159453168645055496294750554410932568780904212760308759868878394224104068622953227622757471284261387933328023277812004401907654688580482813863990118867750474396769535845743386463625648320480697306568518552450532951135004460279107267126623271526550764302901162716230818235126954184879351750780617588814930220766126048980259814399775594986465852447892437135123748617789151318763417411822314420928043472101038319126651635412702682542966812134142662306509432024332639431670094357733426904781369928620956462775961480027985655522981179122967244671393942461971345944580436658710299713773386356582774591816411991950231040655691397495379926950847267380244030426575402672764615950846906112993371862667343406483808850850312712942829950611527899011194119773143878214684724796571873777743921283438656411715864442545197991782876200873298770823377139234982643392885660796762918333405442551057520306081089080586192002798257449959520997673254385138288124146130868830882944093696441345438765326699205794814441263900486439055251238645770461202644728456258632629907279310175179165708908832724351685700090732165770276569960328778391963803650478982637400393142841929436822400327683146490681233488257641519637190992671850622857479174858289682504117984652279525794526554182324120510134765994700747937886447265684770345690365166203652155745638172250597730671434945700577806394018088776780518504343396179893471574870533098715147159223190915678973513590868974700882701900408934677115506899760123499485451088468828257293656704476620993506547961296968979926078181336164904916507703256770283155150803477895969335405948845875951067975960751847157106925614164089568483281472417426534186665003791217390510828158590977271151412178534131449206084995243988377249124153273662157650403334226226046656314168585116916450328079511965947184687852012675736762587596734345041692460376739110367239143199231142705602163341352169263474712635519368451291050916847010746713104433679487051107068921800999426427181921231539313748377701979820385762196935399787267032363035621121864433483544972431396699254792211676151404124909301618006058293490240656498651062494442848215796035560608449299638607102503648837971782786103083828540034389406784600160117848568081436242926708946806697580246607893020325395877281911003980785562105464823831944206091623697624119438008340539033411117816783436159936554046513993026378156656811776965105645971755390859845723578955043769856041231907822865185374043511846585749045331692664607038650386113951406974453977749616542347877477298859636968657991949928863347140082010826965401056698662498081823555739571021028189884272795203595873422011959870359641494488964253361582744241001077986773528709977437590159242777948361400812118863820409300328331542530377548713254621401316871164500128298975860762365817671825796468326589094722525835149401171367641515713504566742502757352725984838540327540738040454188602404062714736218318731715976268667653547052973355314874842857216401290448342455750248682591930223081857010145801924145747825008683225610881922759495773983916303285176848287093788054857811503992771776914688169110060171450864859675811748485052268167572372981259924021205938309250732372602044267734490346479172988466952965556510929001377094974173217845325356045257758503320467679973975873657868131688417358037008065383426660031039888956623513716526055935250078436171561054018321575088500407358126930140174698704086546066948938501968011726919472904128607379139951470669977887749426320392132269194207350954027741320081523843895872387313115145501162689087028631879749953749183768535193081653193250425895415286338681446368417367871234479637698823060142422501723105614988115210382954898337092370274639857397096993958468456436126139078853049173913496703056808022628414747060728897771073985751658946864385143681341791302047557170207829482872422522311211453372226109874362543514857580360903652156484859893846316310776905051657466436235770635195791675619192230154163318947597286116299859081218344019189863278601303815915338306718380456542429906000196363022148193688875919273662879667246313177813350661329535619046090307214078314768599680193657322041670866193439868792258226351086039814133943466782743985609496849861018676815155647462847399186920494128642840241005802244839516160379550281277598194898280713872570034464761254397362767078503699614328169719793812069941820180509568487217973886551072663421428770484779506269621838727813187912318927071573423384040869939941399448211821531587714475123353229678675986257818589959384226155011803397324099552134064336750217018824941160297817343351937247842403506796054162633176523431958495861832703875994094947044353980320337138462446082909125401868449077835724758849755962735560389523757583932762270319646000984585938552421828808875725065399841174877914134373991022541007866555741306913402612193721078119137163496250218789687169109040331565285924677647673328447208320181505243888400434567505403837052005988020552605558600275375483462654008648690349345038509707801007189753604166325154377153102074283919618842184673920133108105695860987806826200152061119630221564525945794080482877639303382705202763589983804202963580768779154300861076497802527036787865688797875285082743785830645121256415584196198454864705303308213455293174053868308481323690644418193240113118850641230688951174075952795383348640165764581776238133059100652091693737803483122951931939239892287049220718442939782088078926161187462998727582501771842455207281182968682287124758482830833991171956447299941731170873424902256002432736763628415504711492016168484444081426170544162583706654704103941771409288518980320192593123721487551377685321281211005202673980288734278816639588604502682358869488983866098366085044386123068684646104729055135259482234874800376911769224572052062989870755306705463315187298443113685704638301314457508905383652781867895949364886011521281991326921828659898876714023142809953076064146219097454909041784341182344530764958516700009271634176804495599637120735626981559603584716209957754021735640893226833862671523251884206219941366911042195512858295063849337746624545795099556258911859769878318452819581927927509237191937746640756561650232946075000713146608719960128458564413648089302415902897810518722962063598937532931302517962600082876403792506437464821903509233629421419629947779602211422342927282955347112696842807377536398413921669765225225889069862770203990466122206121419419208861001209097899152969364503307361932995808317480740536136702250347585373840270798324056453263024312629720194204658978491628715149462430615331530043517395443456511669990598074931595443052512244399029985381482819473017819354429687991401205033865507339077642508666406717646104864114565861636387428442492980583208553928795966657686572833710280566582954666559219778378865362093995892617500795488912410193240603554977651056685888192057849943946926097523749203022876905359976066131440854075042897503132975227697034242922796762518991357698420790375525993275252221120227370699881619047142554637819802877925804092589596122972800396687378105016114762550877573119197396130984117129437812574482206331517550469725625541498761240607408157688399442753740834253539765434460613052788274235249979662752821365062524328713560229654841616682578793377037578030434574926786616378155516189848041004343102217006034905982875734814815037773883572047824452443665261884978466502892783417841381906194426156034012030954941454567758185953422106363060232219250210822475469218016811122878928448935299537530719293286130879067869473384664052854726295875164609293401241831383520341488323580438494904987259177438295704022428081954675584794609921336731137881988027294539645713558014784912180474434159587845059495376823410560496515433537611581714324488752925364890931298971906282106252549792905885823324063922118068072691312143721247659768795114915972351116824845784162054711408742930412692285942925197359530201274231939365781264143164536723211285357994195700264837237561343059400401429708960710859893592312247507832034370744870811783430902954464602961785059516650486865748731162927013562947564168886211996913614416899962801336526874998174690581332536966951711045893252238574371996572676321348445732392621407125929558290288333227282725655335010533930161676262883754922916062522687635779754034913239832187986560917620253284586235005998948628255998440806172741641330882662873397053257351957632883675736115571236202994687380130128780102593010874056149947370949688254521208066001395982022154702348035155854078866118536716830954368912177655687058008568132811089899583684495298401369111125314458998529789591855236829733378145486208923788641515370759354052625112267281041284239642945625094124473707037692667348914293457737202844091198569938410086048704749264533139357053095324217515118727228585619415563821890391183924081674042521998742088502875377186507730230346824458818900971005077682719950530586181151041905429698959172770855692888134026582536490562284363931545114422134043875858038415138316163509804634921878466644632019081839414767822388980898612840893001196506272681882794091990490712627539884584025870914961302964945799449767003323954447931584236648637788516227496970717194326521270132233607156418207338103547972756622686718518207091697148598988260049854587681390868779770788600212550639451241525454019297236892506188824145958540397050882591474868639696034709072827545274915668011543491803150129970150735666143098177120867261954090127237343287498606812933642068793188174512500886770229983972129414886941791247766176113341984435666585409341616363578822733945736767983918535854059622666938454973493661775854011508714154852872796082010921561700317310194787660795864846941180234763538153617363134324573146907314298016020872362809558324674609605941355148471931654381557789299043237214663841317405738986169394007313081401861151504491001304187131931967724313403928745547623035784098550939301591169809285360603576282310433903998396746576803558603373970546734592496233936074807518912431203854767833669913033954192869844376275178894528381690593935404959150704736106635528845010756913510275356536355604038169928010955382334190754524775777775521461306506494657187128391361125200091832084630562595821120457934898974811788732786508330840916928431664274612378877672138452428805066132319961594738488793698760903222980828473823634924750872149902924151941500132288524636744797650598605424868767089627582312244334177061347209381996049586572843945274749156549420009759066591517174544681407122861658962752735385937018001427256490154360302449851835278488016863493120627084882065115139408537100882630330142964944038327737143707588158309306102865532690613775458609818711902856885655982538318659736045564649077262985644290730755048703477726449238152685375617529763207749800845374979184896855670025044491264839926428361516112095041283017889335563543392372146344297439563231137138257898479278867924805624630289359493377691985171861773220923640801917248905517144735724902692495195554136260856622795308760646997266263930424572598224164540625437487962780480251279511870068293353975998785889438414563485403238618942686847123172391012493606263900778782362843902128304222948069800894377029665843839967939236755709509244929720372692863141953106413615622787238640380793707002105085957894956779816423873817361864313139679949344445220755367155747192678514191023090084528371158460992572609633327836462728216707874889810142979318331615253604357040200588039730455306618093040927685072083769816098732418513414679161293352855763483380010337314884098715321823741765368023079104261076939526276852218583056148651731910446081433891140166681099016365954614835909583866671985502216017054186206589054471700798277452870423744170903527567388605848163891048840119975076990816703607086920876564253376637388206553153090730313724374384400697430578925174795605584507953391189956235487607126116913206229256540146694859527291583403865201750790814057987556180755678895944373168088361443218434328937563352502618496897882282812872678513967165139789663324620019304040753702948907136209738841016668321165113061202915810478825094173979475268340055205688140423564190519409568566520155728879174850589482179686156437466782331360343077727128699441396395281910590674356065351757107992017857255897700843588681037148787284552858654078480651255768415797164800056660698153331039381466593411460994464124374301579687379462530340454747696664279431910498772979261535345233749316901708770551646164066300439889149318650976676637470677018528835459051611635523941855735612032034883882269226696268758825260215912866167531804124436841465182013671099532291546775222469162159485464110413223151455338156093426443394583315308328606772960367766526203797785302607997319341962663444666664244733878009337503223143752333792063196569530546585024555961153741036408425852723259373980506887152631537745417007326498040657604658623209118675347063294413939167655263165572181567419140286193192083517368519756760037164441708101771786896582011092036430063959519275609818707748456258063495757766698477134004924683300050194462883322066440554950096338951721693132175687175650945993506755414701029707963012350470089231960781653527689181386905543434907862747765733294326250034004288524956192866624345334692712782290847435903520514438532583728743226058785138556801968783684709723279093021057589708077478884740605003163332790176579572198805262969289055367324141877100149792612499029927653160112195153908232679679249454958439162109469691594996022704617713180759627186743889871603927453671700444141174959051109938159786480675677912999456364664386252963307249346625402663853859034353587070557936708280492643164342106943876975964607780946862256855285946912542470786086975139468389815061460674596023177448442265495969129638741905426686702406888454001464108695192516062798531176698140011831193487804325549623939867298159593352579537667553957603567048204849894658270915173393410243251676586928608547962978777203321735873781397763613718892042833002694019488271150181093379653912474088588493416111310353038950921098953754946645911664917004478111271286903885217009614002153131569536599236440911145446223225291235373644179652437550157901626691549627098081516449233991046443166195629044620456733675630166818243121969057590505203854915302383099574830820537471974711401462217255471821699358192534151388639028215056499400672106629839462464860716942950587672928321364812298938332667630096431190618402060163208238206822023045802045613516815759975924891568632912601921091633263897118857266814904718327272869003067736006041658086362858434830173475676504024014336961135554687663792825199812451420791293161536607334242441569603329107633714800984735660982358839196075896779320861458879720071002888872654883566011147912337729800837822969513117376673504585627786928539389721028737845624058290051770037508920299770368275213836229615991686082797567233767498503247337137173410724889879202532426772523247681608856828621867771453436126647512728193145717544438657630050091613317123848132209921913911089986314036750217595148591512935298673697030727950692322312446871604723438895277912067848371320550760791028574754628860679806943227486961862315058011952960828517668798225239808218779648716336741894216746636155041116746242782150056668487028078701898480824831436723005840997039213376977660288034941745512145736181793485436838052393842443024444525081124401581363747620757461609747187262659674726429475928968862811140309747135800293621500956953416430120418988491565601453027794305319619775763492942067272956211966254813805542325150358935305150834069105549402884758879934824365877446090837672017774949896152409624478116617153004585266018453327829356529866823759600001207403025676747692109586730332291762329850758473531821531322456958524394737170759213167707775849719958764079998844172766511178769398284769150892986670381358104284843475736064011381711207647051616755831281604180999112192611427791297349885555721579874761001631551648385028152087031923186710719953115183055697438087315601061210860120585492044038304542767114167348191008310720111850832037293317374227606447886817223485406891662567266523744778132333401351783520531524178162538942412443635291892612882242200111050521132962511409320241064223840107681394938940090666342378520974654599080537483971485639575907955085102943811701910351520043003021971236619366277264904729575216223111793063841295076117513662605072926943187656170788093607157343129281018318789305476637809864203871442947301431879862041518900389255957727448847189058758374197292125194825214033953446256861581526859087396533236303752319946507222411137034346772068882491554443853286776561391521398189162883491879634769641333488336078678751351099561958517967883526110229359903105245389303825723507094359427726802003459972655177977145314319023570464877088256176245788714459923690129604377886122547645469037725472990900391502525938564486506940309535050879992037899292355269059852412638733418162191076963228138398787790148576490599163373300624595813674827894382786454213055534826817075378607516173229798665025075493164683025098011299236965343021514081672378981331997192408547821409930512195490296076609182874012128392331313122377545141078943210693817391909676634534558247034801906571648879673635596347889683892914591879678710387676645310446973134269077730947676509610920194885648652575233845988736223253577492791685176460827757378963979640064519341548898133014637831813435347802495421447071207312809548173224679589113093345643813400240677155756387907675334914273459935002013119215565384185850982889741815792920954141417230213122607214489638357168972136241620875359131438697200193111212451648112705742803747518556883802307079087849363718671437290868958866307121207604079746385087267808986122260628603768838440159387895800727916557319635237149021349340733231892220088748610103345598382201077297284079184151409728904445417471572211890102951753076127705424721075292056749218777691425746167154894905835516950331544848315584315965329183521361559318690166423865417542610542436888964493008913439951539441282968353750299298169985987223356507178508278365854406051057947797048846636048669549272480062593791861429033996004418380101923609397454257051504052652940809389565052435423980168884125094541319049979166372763175075572709794850229991699738846296879582531555169647761140446598276745441091443952340096607244070029042363831811380886679537636819927224958920033858612660187994505496179472957672610069493333511554387008310870373788116414213619655208964086727508730113964676720761670217266671039180321917641605976940910208169411640783847840615661919939265904923287786958464742901394249596563633733439826087798456579979671020106346059587831742432589154137884651163528251257325377972634755394176854937121528624268827114257166008970683889479589166383581647561642800899508546567159589798037300037242806787760713738535049500029588709975733542784774092888207630302193178651736841069476624294181908246149810016018905045118238318335095233971927614746862959120612586678253848406241817515510291437573019737078763064660271853104076950284590246357534829027632308795136579145240566138888299010651957635093710002995479514879965774400746088458602402735569707056224854326999530711156816764844116043281411226381352758016285281286856447745275879587900440480649995216553640428771665236556251006082438163793428339244510443076151624990675770464881934680431902480151522603865681584014251427618450504247231644204626657394190957410988964745255118061297675624510895736732498328666917013058962421609450426041634495232742395627775667770023273221098862807393327597673378826127986817745688795495949889103507388192338213213124761260047218997126707938731429818710357608007060259616509385745119378099921879863283569962722298456332670136106157499023036606015640004555791128754803152236040732358518827745075681712259656871168709818654482496515185144971203912169824043155906868759980920094303325390963475962165070505299477043426312194164681877977790142549236170304282917046972296925120814754458117112346130375765811678910876011081177910680528963457053558258791333875137039232405616539172669509187748278038167450009710858170301135881826185849512983930103857294701323813861832459199932164483557289437259945948311426184831184505232556863422102355571682620517165451706048315312971055407198520738366198621366483720875877057679324507965339267355218613763575997902381329887102239172436459004560812032245438619983626648666714004472047269965254890075317332075979434156959066864218039049882798645641779017220073851516022558637659986608143554822637161649055084105423587031777848439774661120704527749925821688168765904982914970757383740973265083165649207474602079638778585974276898042566329992223890888566492528233111686949308058645514847199942777233706299192033560642873759562995228612776063866737558241934463444452297765074005669593489041881976532803150383162624435411948699748563113661108024230563452583433815333920838612580053432221540765188618213682351946964201464878453691073897291165956041861211085366010265391382854669102569040046802739229451334234219124612196469717841203495939605952678373968297806672463858560991061372545902051748035376449574983469519824500255395757573712800381260897126005734619645220745905853713814834605752195547504264877964694061379599928151991359180188633050051679154681551333140774266777801729772581004189482595208266749594641316272818447585864123529408510055073543052791309036639907517497777723301781343585299725044380693049541055743879814052372620655822725966916679303020737648468453047991726987377428899714928274606543412956131622962451147031703771748177305318626358099771869719298372426503108470599564012648703400391135190212467696564566710093868585981405536192212540778372502906206666480115345743062648614554168999243483781773379649682539386153136535145166204018513303299934099777959130928781649928546355841212943181937105289141700457372220571207951954218928902742045004234350331093096402806073063639941985903917083886386323692466692689219326159332626216857080425162931002767553569170081002023479271404482114893124563210052501773246709620695436169517075824172573545443560663502049029180527758974823865773552089379108248094786682294349456277906549184115453904132179295582690494365243354870205389351813636927100315461896204406473795549425665511022840165285068337051800309348712758060486830037517442283083588527272315234709283291343948622227750208456228021252890367788436591055747087280351461758844090094783744862953375615031570544908648843477334871495628041957058954538583932164313359705838224605849705668359860820831973181667315762492587235193502281687054040793248150902197689277747592816637754342235328527731007286834571520223953120167096103576164969293253447420909147181830251268751581766606605068322624401427232828613393874890915709516503033986035561159070049481911873287219485594520116465011231822407504777528797235911505479658580492925222017294805228671303811457869624938133372482811010957781536297389667563774437848264540874313785806440754269209688457106001478306360936991357238490776026826833843972104828130787390001586118629305371869376111033812921117267123453476784680924739469399626033156260570081990096299080924299241189703407496029210043141903234999175140549146615264258907467885281505896952410991223851901500441957067443130190861971208748662379975094097758304872724664279614987850357418129561545271712387575695697089686534237591042898787330274681751276227186382542160636553261073720911395751266030461433517518638906578600681257165758042854402606118754338707223482829955466295693038425889719801143918794628499242947023909121292671335575995495444848569632592284440407885489198152578523969947420258300471965996675656795522943826756063116776299994686531825285568122632817923802295722258223186285444865041948261939029615577331978552021631918386955179163832204361973134339931112082872801476446627237048528964278852668863890457252597818435384043233543661060132326074788693141440287112462902795711131828909569237789301543548274742354409422287832888962036367174712686491176093679848947841948504566014639235055491565672875463076461212120387959170970163765893137924101187035152783470376981417179528005555086509139798167937998545508092205114877545822647022000147409480959335287236650769074278819603837250288910074260234213456746864544476503329498464904166977974860407790134466757297546038586782330271906186576579766446440155764452424851932888437146724683907256648717745292570017401416267469756111727400757784943895715710232780337115484225766851880702049878465902718674523590667440239860810403802584671217064703924988637677659215636636709238830525117070144760228592013527117911848859383850588356134622904072752127378953432786687157891680498250793970700157324178621911062057329046408656290669780515114615666534750640019037667398545735643435115528664572516247461013183284762249042094170885090266408087200955324550683262115573499472437440380816443819710482352899310918359405200377118724974862059077660760595989083122806852360592316560160707404455727913892319951786355285692117928221083432255143244991781791705671571658548285449861279291463392488198614893549288023900823963239714199520180329976457108301076783847456423220903323222996548084329046407887872223769279680025297088080265204080490344590896591271396149144669224180472371490027198687266733710908619128898578160525649306310313863515341323546178667695027245285383869917494020758914148454444510909905233674405845213174913339372166171093100086473715582911295224671129179542677109813789870420369264437645222933301893675972687023166559217654610827695124772642045886181760998446068512603158441815128725423710264372046563122756088094496304578344829157186550945384999704283934562065829634052627738251885924264837887956322534211020229715057064112877788248889881563366433236132020583841755698313634598365654409122438734200418530982239215294649453930538521514376664477378408721909547834303709557617817030521462633218196577776416287345158560688702751481987161933238547205887846882406778092929454385288159351380479166202280433012600973618852029627516838778672660437400787886708464088816497276234757132533249014271863348164544451380504466206797017975120373697755011384509756769538044271235715879802615842407745770076222186570406552958904958513085150010103023738544527768905963408846283654285082178192161166032572853894837562446808226842553547560584236054522618209613874040684617859316225296457964708743265432056433992806800440839975560703829007123656104213428157763850599653071926687019380464859531384169104106235726138493111465641624819815352940761326278195359179569355858001526657965296097303438512462866268135706227312729090754101991203042406290788911121198779548602916055833916094253452329055572915185773686044556876990119180400384896281586905096799473543628865871938247415625626355671075402358788101970937234840545854570234497931153457696489274662604145840221986104391061125303260526132630750528521791599330157721440184061746753711318510142208590106409349505804814226919672396127772226842221144227320086094758431775337312710205107020090617923936254933526830487353178895791861256684361597611819027717302628955799970111443865698717448466007579819036426878331838528008735001027049443123989839106144520887537324635756499494273849305354813259656737546443386216961476233166492926456912018273886539055970116251699124274334774178256665727352855642579296581288294103511228757139215480838823206498468164946273159359023894206023679683809469401150623925663022167879864262552355155872100790287838540229506116927112047580901907384534614172254795617827697759471885351273675892640535991454165889599036467147969782247604030290309039317331411828108879435715441974516559476855255941160926075089345950411201712568415814828114748496378263598880152033057746593554158416700022106650802932342766643027494799088686018164528106261176751788682894730115947969884031813692481470004159233539643074319102825116026253492827947711657729302661920095235152723545264577758745479969513096863490377812217510388100637356445976296963734718051458798903842562729834313823688696215052276968015103270630381966699169386787137830767935956747847330583938812257973675586699467903046795881087085512520065027941259536341914952147862689157382798405524804220063404774229947828456283836941805802605719106347906496493435511968921779491250492920971846935197797466720216604644105613567872009821448648822044924275259625733448600161244544584309333595039832448860093591886972509730361963769178709652590853069559977773950552367331577027926512928981453269628988626115260850923109073035457872589312684500726867207408080351330170007202959167853745951648254342610545365960428809688716359838909162086201861961946347387485966383898955687137628197263860977165030191054377797492000244755567912548082735144424016524497353911226662375503966159541237007253354595686355547829969097999646191786773526984601344586371830715693628906967133291381645384501585113308283429389324503366724371474693948902814723316500901444531823303262992797744849890559322675783086452060177953463355447677087191019154220510391097532454685804967739542185361817612754045309307468953753393639997837120900858142010047505809430300288750023577806845095162827224066192667761574242989096445498417419286549015269748816828060067855136965816600352856111886071585432568127446640984061132979095068915216433842731696195129617362615322257698406626629418461549500465367512202749416401370362319771283574337051042056694011486703967362160863948630536307353716932374704603978052156167375323948384823315139247011799102033753068200643583040264326226148586633057532727857899605125704951321441158678012768705504728298503760093486474797577037552812356444543130771266293705532926402464223649295050421818424843214024948568644658195925746829753523214872327728119474663527381323193604427429452522268784660888658451800889472807589661239576612612174213538426277154589549080406390575191293066238041350639400932798310756939467339601581017536570380200154152077852436625425964621454435060224708941456986561168416474721120347107760900150013538701056870949264648690852999586491779751085248276194288158759359066938007412543043712257941138047709876865999031724204061044524012323856939047952359735214395488839310611081428689710578380167688635414068435275624788890847292092786137060104125330944441725052219211467555611872929395589153569709814419286026024363804386982624612562443313901305917980142793347774127760200241490869460053855094501176398645262600181110480287923605675955513127446250440080657263514791857255388294401448685617872486026542885777806040472680003251710233079060651551212517930082120188502542440182568416425079885380930901158990805394079135445144483393695181934478711810738363247923747361209526236160993524437957297082917918669127010598033893195562272917271423300366407135683290329753767568157634718743336577589299927141314452428959859726434568345193934009502799868872601183148597062128264751739250811533326873216249999167802902192139031015403252284344701383120563472433668439326248376105674070439666177909348991681141896416432624914449238183436626781287883046355193656169978670030698237037696814408662882946389998919968956593277409424788152318110675665499265317218724463630266447951128015125649669836381417264565642709258532373126193397155069712746919875298028868658637839467381224091638064594236693719126818678041704270862117315187746694201407869923060952540315616776221006579788729446465332495463791975254007107530918042645562741804694193232093664777855759589694576811597217863239418312129424126037986468467479305651858198844605372830305457718965493777445867444210218347883857714991340396422384868534080660915681046868012116617622313357819313780796889128117838657150445576384607137538568659568175719914036498676927305206569821266100865432177316741387547347612775582844731579528159339462787219936847743390728442391949055370251502836191779544681813105729603679121143086348907668065040725587432412044720998180845409955456073417422632069278901375470577292748335439105325608281878355359092503497477545045452550592320273925233011546207751961527006766589594424128852996603480041921153181018858823501625220024450556788041175499307225106759206405383534724132879806611704319570885938664661249304494235160612765654399825047879575661336376136610773710804208862704577122980870652834502117572598835521757278138384087606163236702782764120299066713235514517824486158051333518768600062816345739509958767478280243603176999255398709984531280314174857774556608196235842719525487240560263268654520677192089060894115775413976527689510169921008368830299042765545522901713943272534988668807164087117297527212950560279553692958683587777551858790973535685142224890407643688485688121349555055031867116772256125069162562624657954053930091970397026516769258617909224465133397615259506822482670126993682923240641909847459898182076173430136845995747354229507099656278469550888959702520845399617544367654970477240800956940851928180141174138550961914297968712944500933103051065228890377882095378685869748927226865670838806201764879378220514995909909358490354527423741955376838878368903566197657936129054124477332845676200328949604377159364343268152662773223511281157541549557673779691183760007452046885964496700933401696911439450975586093643488112081780707100206820432059232320912238438250511810418475592768124358192195052953372699585101077619938030356679376721994528363429465471196074335028418200100580313474863856382074600531486439457215934333654958851678346913597219288120080809046960285206322034175398316415922779389598025987638014272803587887050477679159206572060375140857567017336827872522890988827736904472979701434158526465740442010509457704015134320035002827189713184979754404241275579823962033512419997003156526019820087404322129818894543424011931020842399615865462352121490833235197490155444813230027007056865320781431825226352928923904686020394047673978087825388417136803883595258528912004748384874246246984250089590783655233605624376697646224075803379926945618692645971018370234932990172313950270801537361569741142521676272203012932018121052946909142544042752790890126729362800104841212200636455226724343828245492723951906458973418049293717630523675570370330291539509436946404042948803445104982889321475410787650645944409301410046886730284522224768085367840019854080616738567869238763549600247094906682896754832262848144151119957143388233336254484489747173522964560071822882597269144971979816387668545033304439224385132828129484312286253749471888167351663255908243797393404225664468175033755623102851022524118493636972428643426732892445166703303696673055217255528646423531833087151983534463178431991547953974196837285604662827349373591495585634792579580240188169956300283433192102238192599710882573050578123075044415169729973309655098532749398408194728283711715791294429885037385528542390428998538978808890026037410574220698074533094701508626436823980231335247680768751871112780284248253723564785083781568087249483863331036148125931646554909278564673172023218060584377806791967159958822000277835877264664857499097433483115272837196981888725227608332827021332959916148019099007321022966322971731221973659389643998035120933162211984352950392816731011967663681316716764348314497650443607684320556582317535730512254939620555318066499517208911864734596723496526634299854853515966867661739288606434877445924571687642627966160094246408245705547915934934116407578507793821194902014040422254325576987837461250584555957453128702011457815336920374890101267193178896668743388136009032254189784093052041365933599705693459459137444576655115966587991500613096124233705909647097361923592093457314812092708006480640315955014369474779417200223407154115237247733877012905781596727566346555770056583788165813624190899776586089258546021621848218506381916957934400694809214935699151551942600530849834500644793435688434750436927566283244610031271000452719997083321100871136102784938973601378138289527349565333506117312675155694486975200627107896559825888502787727828536117700809130717092745491022176217781609707535760829893070106896825206463057169462893049102168783959714470156604335382695595494173180626945439594668897903248760465638994374170373923668164975721774166943132000209818248427555003173374313913175575832171933282048032333125922679185094483878102719663092978353284097234284737356690074312062924206500566657289557307425772650536485464265293827713014627647616116430963018981853211761148343030746851741571428826044971878764748201472268920561570804952107880490094957136946330687978018479473878605521630605519782866891504041391678753567687592562425865009789406866214830832563706839020136267375874240317739068480868008006890114362847578366366214556800575664532865606490679395756542538186494915569640572662430377029588658459413689424410703810316166168626906219550120688474837459651916941648517911076733459280456544535489452162118011970629886937182954969462509233459139206769390294492305176362706728942990725261030635784413955778892960983891939479277557421723177682097844915834127760728633702550672945575535006488211744504947204664097079505626766479087954483466739685283573909988837109662889081377954304084639655126274831978654814626532600957222162263920991066649956908357067501528273746068680447313057070653908000461682015601889776852926832227502595826875288486902450943012365981114879519545427481887158872100005179771717263679468796897036762487394594284555152040207353251725900068917883313012291898676891641104012698559411836372565578196892706847037977219745971747755874969906280381267239860209695262339898523373763419526458502806314186389145807332776877949544196293986857503709001171588834139797247238478026472975583653570134408138116327293063419554264859427713502513969787728908516539247000768181521353060213533358647554896042341060971740532857351048221116334123845975069539070001261387870017621111331181795608561454590892593465820023855935764900439690702058291661329244065066752930473192294914925008808797585244325931213347362888676159654757756237341834835887242612800180756261000561527197031537398139332757018198794116307990590529550571374236198113454545773604720046696602419798504985819426420491027395680036848343735985456800617269383014410211536455907597595414859234559725916827673496179807646803847083519799859220015946807808840139009114678823841305723102191292209904156386006877397235060553698056708391784370002462271835201379737150736056948068362440025492378581425757022328504801453798889161596692546034503214755665637682396519149908309526908468622100617917864949922936836400442374578902323181936982239191766787957832792117432574977469186016764340283772551299711580213677758085767768730790146661114372183589076779890636286521633796496361578010409221981621862135804080749500723087879102954248058225829338334991975589111299286969477914775126349307680039850343083345061336252004733777347964144603199474686449870575349531388765526617017397675827307923773187144414009012353623359139811992394829390600416347629045961276880332276619094887112607366975595704443622537815906429073788868852784378663097600904726146233715193833359976959805226396373174611532106778347664624860864456360928650017041605273473525188320962193030981557478824238520433916460322871294507392625527740860297470361332766635702065263972162753343857792936621638434813361609655126162091150674625922519558170687143557440362776409841021574007234985137514277201917042761710638265626222363498729441451190955170280444630922044749172583225807384439108999889342439795420097689598670174828857032986403623264844280163956992648871548978298078488910898498659251208512763415372451516919256754800997371531778771972153181188387071039242745798888758820627301045258631772292340477956388606585844527652730290044404866924139887892894360867942421606946144618564181352662014646454617835472267362662226920192379998561021379452997765411144982439240656461369615855861100483691967472674357722391821584751224719422690189083615637758608504821606705013216764579776516819905414057464682071751220594782474436902125894913169519406021538787364496805366866019018966884588479066717183086774706678821829044719133234953409834979508470055155774137090468461381986247689979057727819208339947096100383739768731627183678354976411860553171541009205732602389610925830190978394244007356204171072741894917910065212022369420755422413076348202406755126209861914305267899056920198423274193450413726342139880816249470144675691172131114445792473930240477100450288611438550840685168374365124206539493724255301019820003958196893390902990444620792488880552397681277731725805871282945371908454994609701434531099854797320435276230915568607854796448615757752097166847087008196358606609095746056129819861576450987033075187799304918204591760173171384517675212343843176557276973930062054480722361993049152398935742679105353967937672846498207006094577283058860576129286378297419279035589718442192679897454427158273630655906359698704496541719943262470074545147535067531079816298441315927478640833697678930101955387604133694202802517583174532465093769415337661558658596973428474673250434015112898955891325253935239179905956003638228775258369848592876581378002794166014135101494297698451250882783876895509328195783477113266402668845299891947949590937331391075051237688167973579633141030660072132088183670455573581949415969615368373024205002917472398614610252350910443739270663775209787584456125660283434758368657730896119816084279614960017477797412842192969925361384988695121469453163489643864733380771363366029076381426802298409141504368024934492675508857124975471500289419332609904305167049993918458890033238391190503688748183948106575789819705226396363573863384147492322942163751236480924706229309074022046463783915341006316552035329550442115517163949980003791327731722362624141813818650824303498802664763431143566478260049407594429368919632548910961259942625015403149344564681888599782892028123298990258240663931774568939895788557294971451011793512147449111545730824775566107608323733828340118426562783113203632943863995938714802669936706325578344157905068041054911083324106021274768547292032833633977235504070721825714101544988755532925181993407758539631115497191492497704223788687797659172174866529383698666869952276728358512672765543552607050567797396328870646862563695835032135940404176000678379963585461871724129393509290400117491853444010931791123563059066242290289694502908260929921963965117828017836063055832380604361700196986906373299813273374109889512495591733377755690433488607835264786467331458450523123468840074209819142674394162339197509505627430885945228886786990559894668655798744146706971601817915093565002172947452506175737879329989322783810625200017619184535944160273960298332529334015536447594960890628155701876612385106243236940228877725681864521867377574587774534878532943716145284539804552561678309556258578256035906904148183151775187389803741913964521231713045133465093157580770933044971336205595170667720805681917976394943373796951526676604985617096395239958536820608253366695021096343977665057622091325108723171199476453274104478919965218870492325224684560815200789146106039933224152081655921677615934913705320022845875566282735989968074760990491445200860766334054939196986777928512181937586567606977409114484437593168259074309526335447809937873923199271530246570550970731878569777900320636612626261184813649450229408129580956649665913411972624597618368245516377988725794592058328796573685692515819160083511388622989515552073950478538091439548598905381407175417850271611964459590286944241732880022203121702327887149859989579217648831294110218788941406860183694260337851718430876195706521324664945719184609120082377443310525091024657015196222339906154334184207075741674750100205164016183386497290102249924254019410233864358434707576038694956041470508726823499609044032292248352936083831124630046118393035859339315057087839740199483282375918288122246512144544073919125210621988374612702036454577615556640872725288311596696474738489569514270854148648245134117257783753817505014731852674239176232356985622950957640256307156216116807933834989170067679230810811065520514090389036121141178298064640658669182627214444834177979957669292278469462586184920992470450831577074029399852718810426800025895264175865927599045569116553099925115582070540145733389771945117457262740777852860957680603617292120187129718091095503469350136271442983556226265668825970074749238279600556762434105815494063010647842864171235423802228056054062106903726600146075224498605100084439264607547817310256048226068317339278698668421804892984601378064519797251481122955374141134325291132816927505600207898897073583185830059632498096654937426124263798852748310231295389872469924553496501329581621288777506688388577621865351819952910548562910749626243465190167630559674086867896229346814947118159567543424494789842114159523132356206591585789981498188751076645963158465734289713294346500048575132030283777046720215085727362259822382317011634362807140280323720318053932589663822606107729502604368080445834367965480865024107610576886969402458459858827109514532438185722812623581402920686906184443408130783195360805396542940643080713842773273024292516078850061002969601308897807401215525538953971484875516328066913361337283689778583031496928390520635234929958348327845967035489345227073997492291051047484057234565325647080949379475083256307483451268290507173837645896210007792448172554637111095642176101539594326015822127465658576869353794311678375488586431116675764549205770556796486630579960100914230227052140785949931708194252566786435781108545110329766271246183215750958085673389211826462709076318533989518587231489404224636888359629206483336312474882978853131407762208318237741895864368679763134593502202408980499761568026618594897232533730855921503451586102694340250948664217829313115003854019662027017098071000725269719139069465023393724398320996182395674057649980025529050157943317021907613180528054293528671465432771431542664868156198433722530719095684433500146906825325044154837675311085698869349424515081077174600433391033883465163982388056084013461726933657683115328712276251869932047616733289335469083815949934450129718950779895860073441397672571350730355597122814013437530447211779744101108283291552660079994237280303283037456095103455946411143182248178858867555188396805597078456427309487525528241430318245831053328913590180103273035119926772630921920671737950177480768953385402188867581370076869983948119178006378274506936905967020511519775614555966061165511587264665104165035792858353813903085849169227925600368733136480562011428797198254322803268372311408675604349895666728516581357027690239099631994803291957682942029116883951972217356531946347635251692981954626185123385657010735792730609381078338939961606417649455457266935522440139632497987018749314086993608342694580652147145931468548819224224346686222077558542717559535379548885017055928459438339413373780678117579854012333726810256739342564809669643225286991608140908256200500107919502338274123818451549041189157371198144637818275852555924677302651194325050291519762495876811518767321253247974029194374675745964975263096570660573235847225222560467277025755757573562317997541987544816016663179101061527488432073287478524038868663656432333702712226429462506770397009247983529386750167747313347458042849883258776366474039726718733723081021410729178973164432163447268805518977594722764166617714259743215882346993209757348565633145951521281759282536507112213138850669763439451142903222755247652021114710150559362730001140046481740710396680000491082133905074449434191752501557499946463195406352098643724415680059210559641919953431909716720341473930016393164874377251909270567126525768237540833833283298937820955149732681772621205238328638994810883925378690131449297591389408673875892731738200564630241569489220805976322030270569799669328862864774280384279582241371501928742932781949114998488020564030986132609068189200897553761926297880597426993352121789104351206667461284079294545010682242214964546186046760322302902940864065099847598065270306967173870418509772076134794079856335443014093391171281804119960036507706832630795616479650693554017263631709008934276866499827454058301518438902402000684844536092860808400986665803544534498798514988340609519986681062505297239282264484724009341953460647678310969706763432974679428102657677660488257761003154205829958283869923600278223025741707478061155732418600123939843225284192849174379410206969865960498910173930639707132748362327510396131636903541552138846694664407556549446902545176782542965946630279006865467117988130679641233890185132683634854016758603483388178844931219059838837390013131392588099663037701965781211812084703103819955552402276031909794347507141835124067520232470558270820624640989702187784887686072089133323721440184114508717324272711816424738814032667302634430435132657403361234005829961047545122933835028873012552085427515368448558358738800523042069505250604333574762579364501883664515459613857545567394456160091890174406517357503227232509548807109228640941710592283085659945530916028128606262998871304482077264205149314276283621067902883506106561314185795964155548010547425439213356127529257986321589244000486085012292167102439906890552529350710993850244834421347888630930362896184198564423842011880258152100215315902261463145012727157215094327358774002910292250328332220432708504837349962007756168333373335681088819190990891128206905924019242611980608727308845662042264977856890528615350278240508453140760668808909412300893958206683449648626996056479610377530579873144483256360051807578930674142586312060157265728245707086948188618747140886837167905482985359080203878926266117243633549993058225143404743386264866745812999281713265240536091518112336365661129589410851270512565698867137387992786890325328283333764040729841333861400878808877313420937839610015810047905206591864300512971428155926422285646942073028647795327656217624707222978981250258981819476467521191617970116127843218024572579318111828259101700913025924557763267866556666817313234110789374091176109807500692345379840759002462131488731686993847832695358309064432068377407670266258056176548497164804467723198823763000146465277138418368188341357892657566354880584700445778298252963010975502782682154640732033989407853941119349455579378093158513780296186438364078403907917633352657637851448531384008983435005084254046335338202205522131838414601037005210187869990358634924387180370230907599163623133544603804466581550474617455806008413731171149073396257715937248517921776320433378225868830463753629394842853768144807577044878415908346895227711821081034843973856761967564725630697590376914448680404624729741970258670497734519591089951240183480984654743657089011058952357072535372835791535526337811064161467808952479092911221768299100856846846645924969960924199443462181533762497338753759713288299393315746098971607653769696564186860310729062465361079501254281616261339409224088767857099787043055652541483166470362245074460898215744932016406789466188767094525485121828305115822800558019423839629314262541889963325192032635679903656217049849629830704539638154036112492436505804051294660703248844069441932388290305292611828837892465996392523160609716947014782495459987805551956929817378604476796953611684054420683565616795616146109279685115857681065666467739646493362998489440265942573039833565180327640570412014183458145099826105211999096700354823857720048050236830604667537203867282454446836460133060577946772073039591530701222676066201123231644569426186670936578434316190830676495131733755120254800389050957827730524759585225869073222794860793328684029961354395185610058697921627273509315471466971917727480791218896097246357898765138903642844261834793707176382268384305042530489810262921452180122216078757575063565194154088029017355653185643979239284900645270210170314523100832883858023039846664982673352703257573982546613206336770009807451327690377329367692626549055572419199245063822658384506696175747209358021769314664224676159586886557685485388336226345112738661055332395268174702647708057965958061439881349072541563209169548070459606110547602889859435302033231547784577807127934747887024678131079490989913515218571318490912864451149310146850334921399987525491057874208383751656575377662047012974090173040008238909777616548124488920870080721164309537392675733995992587888643342504549610210636717408422748676425930724732803708574292828912658506457861035289073355189578145049850968627114947753321227523531979190071241742646031415380120128819123155975253067638566288079919384366294590040310332494048285679008552396731445048469649567018357074787059063822367410205203304169390375243128952756639204388638493194775140818122679361064848042415658277137913176308853817333011882454217497427088688426366084914160450000208926852060077868202583686356378131383827766831249942627740555504038696357344225927926834476913781153471763832591851625117171214769616534568743977631540383496578347564395666041591189251608982786635418289177951043750071585945320941696315338675848988563373496744563234920780279473683484109445512986641467963647836591131528610661772576970316233969576470980600858908455625959840230954580053203335308868523535179202345717014721755863143367916346105246556069616641286255856156086270493654508777228662652559085088507485929926538557057626855742920392211349856627153284933575548190964120917321730202706633176968292377483212142358227593422168381115168577248578985298620094644893496990301809110710909453815394268856645252542654977008868801760204558694611394190053072093744693147515674225612221324707505207456807983735664604908345095089094506392048625619942761707024189855126503357162966697566010678847563617088110367480255847868172567574832058271013733276840805845659842628431071923303108589460512089903923362585295555704409703397593074468032800998082708199037000425149917700910865951621748810262221275871022489234625115351154852146528942218444584287128806991202951864449083817186248351134713120199564062805413209717114201615886820967247012910121448521145069807449007628088705834750084631198402082658194547867568675621640386223592610626396875299913361523770299574457420436468784557830797847670271927821791969586711323749682686088636110630702452021427308151901970152484621250855603672833570070773399787339907561922015940655938744619202570706103041016896177472485804865282696222106269850248238570112092803723824655025084047890810897229066667788417745294508381669689276083965482457474629879353525699544289363706978648015743851545938595166631632111048171972567350438797268784582275171728835841411768890733242155185845794392802809703328778801518372342179820709892598714039400228882499174700330970504155282840292584890942106229059331406578511144873339574336844557976614795624482129898361947721460588744175754108927470512158073804895918240316866607528721820717700634617814013208112171365558006023515094134956570745433437469297679347790968597152884795831398622087354141212795032080010645007822412880649380444963580554090259592518321992086786037262963721966276148286905726095503396794802763739216102219150317218709246975400426988054834013914065111197126555805410528195336623942939495563230269702743778791907762757272713441740146873637635309994493596571201926890047637451633895724260746010393929262652945955135534173753027392480353836920500998011817096123255380246063267451970977664073529958623158930053584821481112107989073657310511582179271457850962080927140298903667516470530553166203251067393739941574723019312331755180654712105864929259531524503551323785317071194322093196338530936430361796976990725109581291719130815393853051512651343238303662474564114207127243328438601295607452638383357843094730583780045322561837750208499492955458030586797300052696806657222174958719133074239563516062602262592611349679288039072815270746353987145658149872339002055592241758163171180988444960393628537067068539447383107904130894867966404955981918480720334315205688679702401109725752256965720453546591608503918032207522983640127665567659643724443661000963101258652096844215269670643500438522701259277755622545763379433614703013584567391955208342998082558411931530992794514138515084998037185979005667265533909411204081445870819889020251767105172329099994285166010876090325824621750583551378485038886519338415016652538038786552593763702593622624271854089336069131783493375823880862647101601992858468851800951112845258047097905625989410264088802401060043725175274706875972008015298013439499040467391397544590109955987415701542345318806412094768038836055876284603265972588160960129078780809383450797503709913301201867646454868482222187321682655624084910056041434761687732826382021594960646497175286740491868976580479834503324733150540899680036338220445265160208277980104637395198326868112704519553421843402046828947880970620297686825031750784405901090639975071077145195350599642625621999991417474839927950320333979818757235370894742875395170790176927164719681927119491020438770697885391617219763623989216678221563037212282933386841709968174381917389341225261885544632803623202434424201412487633379000291138097922245475145180548118649683535894864542552652733132647794764783583033039322612804642052254917847347673505154376039781378413967495260004437980909126479309065988389158962207741486711678763248078659135825346710320669548667987972077865199715474195725344099987595407480549211663017548355285826654378025046643630386512480181252331887730709850266169420190092226764928650868746907916181372038792363248397256992004777387018685651044894334298504175034097084546628211689399823943112715907810551238378716851036867022508941192270591784339070612301865258422491803017294133644870743461843381102093173731847634633246155621026642208645705172961364183009802946199670966161301927478470206123757773243291436342296350475848717432210975692333311304791552589457979143100161010567853409337144844002580886768464743415330385354947657078849901382775274539515374995328239453187814418441478427024719651047728575987134584089563617523211120439118172256115439536897871476214743224297257019200687510987807913610864868833291463145965893498536169438817444717996284411966659433340515423508422415470231444708027141445857772177569625011218396601372454604589510097067636928509635024363456111669174923517447863033279178710288274886051473305353062845209982731067400905157781688509013579429071785144216369108922692327900583574496589012555197047744709390893779068130073082676537239785659953105731390065087647080672036956908807611692404707417452412803288421942526411280111148890591595239139880506179464959975345061699312150851352750048052437982040437728771023793209963545723232371282036738861895788273226892202725152249849724889116923742232744005927522324730790610413893057859199112111752153327807591075573621907846587087183152230809007481279893176041210201539032784524748626456659304301261696180722239065099683338864459954795740146572968124227309593869821804522277348203930737738622500288157379214517677476174221420682919561843617181181685647787312203324719813216055361992353472327134338650026662173010881712735688212722866876341291489205674335410350174723676228655194876437650373110953334064143400718794984448651535124415806979432314604986356741045986121853113256392202121923199950193031682857455985876506215250416640503793995444174367321595590267300960707637101103229008038793552190687955563677541710766209501777609582130785889141862740992092337085837426275670213800656748086064970464906723039817665650993712740844661173531396292591527929409118445030030427432638934567281423667687680082758782902997971630354332742588233225724956053645833336352279848451512258418530572008610587538613754335592111713194730659086576336452435057295191258954541299240532241955938047545671607978509819256963672525652469053970797232831828035822559994773617234379889277808175467070894334679185737621939212032064190446556362829455659233295800697525604572155729799859336140643949145830603163744822788977731623619533843611368904941158745887215365505089244048714206140362542520285932684774577489694271784969546563856396799353079803935129117991684347323241191592901654340703222041777406667017623151849478907443109656540898270873952000344037613557756503282360133669095060935257212010809555829128532834062641736915946932011883507271704503234772314528810184601984480261949356753174974645031231493267845729778713663697337079958717861783647086311932426669782801394250662818231410709266679712023715449669452349045798016912772286482655887673776228198501365371185928053657605569581686340851461399391370765568722210454806372738147120688427933353738807118033180180865329384398290536266432376675283489120706800332358667923557607210835226962499318790195745286885523356027155409182877218811479212284260966788494656337170630080711523243797037999049941657883571405155519274324267350421267045681231115578635898055750676310475410739293028238135165091391157356415958058882977717137523355885010246801691087776951994434326271693933030302731078854303658578240172647721034693994396660088527439096462149312111350437969365592865156082448624335717228581349604467732014382329285384600103868989543748295120495542096301221060595478685913254139338548286514043744144431934222330283363706570239019028638254628101106266801830164093698896454690912758252745678977614346876986321845524716816539704820425058355507878077611466804959289880672663093394496924468542045983781581343495569779083539662446903001021759462759291469460327706032128137710590145784699036525597649060228487833866657837682421541879805023039242432782604864736068071641467318031955260343360113487057536081862675668838121202889080454625298697544229617840644314365367572109453539859809170613516661958379875288814327254303684627272024578117011889475060041537216762532142901128120519754998588523112659456245170773917563583513018855870687919924321852788727479720452582869041034550806672957160616658475916528232254427428153121269424016170482412915074658436819949694489028664237136112532442033362639257170453037383835651809793025273552308666238857412097482560015286338440827974291450104138952539309636779708070404667236210303334018810188577700799872979949272245454398977886063933604170110901035470911278006320451404771672265436910086773719288020977436328524245364477834956905134571663017173886278146891788991902819198330826377791063717604305416154159050764762539903689246029369619098503896570983533054555557406681819200517328279782737729378648983812238664607621441035176180507420418349567893641140413166542038468879728758635893214532221225463784218674426314381331744223883005082818004879108469358697274119390494848774946566868512021712007245615378611990312301879577410179416204700267513807950450481027361573930302886670680066503902595952528727240537113632162383895830390772594147867241853823601964799733681838759285741555842752522697687678086827925779143281583130723426761333720360907757381604439817347206527767798116702238455222854956436006429087266371095966058699958024331855412956249826359239376888975073121621646972489743050070380386848764716047638349833219241175816782750011214965930159461414251365367139092788765279916306641077693648059042866622400681466458706868762377178899473134436418881818569030659173428939062962913908048472192210282081617213911693465154083749317059119718019531667943973175255347717289855145052603542379953813212902516382492537035243211567788928550803795941377840414931030214367904394428306584367894516837447187496301330418740843006327410934222131530099684626974592861810113417287809830046794079172153086245620974873514549356808877178109594494778083426690587707305583997491447927214802118053836080228391376368382982383312806050930162056653338959984221035091261584713404662527720350394177027763901144345908398913606935158057348377490297833099840149261226571418620678749048951963261208930570516748166246593833607183855484234448729074804369165973631618629631977517508757675820325832187679520531088520805934005830405977997594332036006667816931275466530725782830751063636060630495683788337871265264154474373358444390599849580495284600264593342754979213805580269095591401147234058876493298910725587726296893760472819642591383738887999842453853986284572414379357712039827170406836865622293069022976057925496064697381165728459343843939465442197554860990742027675246020471042233838023713045474910277194919505117553933628761816742744208739536587124157019545436364688616124991965701323425786302621875641611993752866800436757911951826478962155860745052582212594201315347420432483023035375400954956363334534159890264363006416774021112433457121891840805273909543688656201479674070892738129167083175464339321490421733393082127053023298254684499333315962671582915730710481797784559964909667660081845247635685106168960603214997304575052069104911935484674981404013502225617638106789774340151431361964132703784003917897631566658135519858685613216225591372934296633002800590151138427639647203225384394102366078951585079189742575389929474267522158420398584998383529100136029997450614659359487526877970762704898477225180167514031989523462340534415974683279867163320128044296639354587008445627579281175840774293910571462371576461782179792709660988750644461545512102476393683986042337475297861239985494020285684351814338230011343873485523708536943699109879616919826038907696124075044906717215466039829384322639420204579126463102972864658855581286336539831501636618628104912000506779846533295589221261550774436964054690799129166533543252236931808210017189537788434603350081727998171652699197651732800888054785600599440698897208868235508751147156222767236931510949042454906059594175688526117687242346208978870146438912676855287168017599622124713329136871080076667327002000177715262333935931967542265718620847711148419914002020693729991955843913095186367735558038065561212370232678643694362062681799435776052561765175092098495807646343664121781989062084695701069753232998573594119692721427563919658350047612546616851958959695804413576557211113008861384970766462214913767161024674962159483007192290088474610162487712255449490026179253804674865441104437705466899674480249420301133663845840349618963428240039844514336937073078978000872727731639701694830705797941176708865279131120839400853575681053365241712649622738665317715996687367462926273108982591164428143476701863134696841618518543248135058786593743809552963963126679489805485174410191575037170954352893893675697032865262101545161864927605027939174261757615273370421005796048010644602356013638648544517190248532708015403780581262628685857831419175956448279732097546411073427125123981778193941521843319598057843974298577245372406573650644493301479966410904390212890530368581953382077904738053690973218399652249188738783381921857785715739352363997031520317041410339601041732517527418544352943512826040017985210279412024329507688626569047500213727745375911689731625921834639582069429108372167335365311021861851151640435793910105953607687567997025695062832803218364030764766015194684117678300343643232696135593283148344203395939641660299362842355016109296231093588013003432304811089073184355257702581336920074637280120350280001507383682244709784600294605795330289011033564692734638664536664229832274304864776554170113659675519333259306229138785065798220800022572667486709243314495604918522948996541261509812835987567131537557400628067625426605593319634249571671078063857191547407601726497304078091406853313843335964271014877194006681833884592896455531409380807493488272840316006101911749172758733383613982612014112378105349728851467223856958287171266196327507405950600897847184516477300527660886662232192447448723060461424054209438245067722154790738162350733457524026020465204558686978534376981456449794730694181873188135456259099438873018659184542701815001245147431698318198137792166297246664964079640874455043862781691602794742574705382916498230617361892939072412737718024048295247672902397675295473692358321184835585627760772984276815627509294549471186355854371365682558068962976703910927224808682209014978390980297677779955519435787157324109516692826987251350152231466550655334338479601981875784747411899114696552485248232058132681699971655145723484238575408388079017358410822007690928455050992830261933529209890601636084292204251319318907189510746987485845477100485826838141255621839310160000051143766434149941511695915214165897636889092711663159121318041928853490366932402785275561629034727123412634309970220128031300386020775882168969207991885185329759449031390553624749428179231255675029673743028779549912191833406016092278813428791152190776756311493045163397442480243954369880870661640821127277978193491078848367576106071950828437821152927792045007525656910478676999128972741049385481424397874380508476611029173448542898667963627016011031098536381446583980116732773782753267614218358869983830201442778710405079497475004850797640941150804476967967007763213983789190799740294493987509768321558086979307952702782333832546445228563210795988396157223693291223192388294207257670502011392782880105586781312805970383734537675775001994578825629481434305893739089485841534977400772957323239074363653924315506831763011199384928917380830389948831435978761610781512647808452544225492336653657869877227465488271240705140703839758129270775573202324705411223429065102277550054721399588929399706406503732473644603409126903638959790528011823395147333864985592046471157850784540029186752709122565760553247075821519780470812372969544716937620037334120580834178092852520757701612216919753453177910024489042892322022756297945477868808913573984973016528379441620972253896132570103570761381782687496685801728194779703848198816862427258285172709157218599266685661007511530669562889594395829361660653856001183847190691794471574442318653822604637089984603969446568515863253845295169190293599866490998415902380203913188555182023029457515162484737901514849867835330290904715730412544376491227452096925866770314311792317542125032436352351710925679699507621422203442530681258497810184934802919769093552092451957220486453662333817713578599666336533576583647217043499087766489348459704270466330564614773243199661733497886580004555380245467545610004549073897119622430505265920333279065398496216989160247597022476515520092874259959517501539274399684994403478960410317268459322629015048905320057444550196852598879518775729535255484777850398344489045931049058819461947641804113201821134592851185184918362191983776999241794099694699231561031123387692487792220026792680708165999245780550045410995575958168405048840349243765645822329369228395202240146353203499388659578079152191154564542770202256396514966135937508370192174810004359232665956423522927886766337751548357861880531269105004362170536611982272805076798397789074263001034060630326596662239934568413799050066193805940229564071669847388541915206223293814767134865103634910506285126005537138305672849090043844195701574739228608183120602750140573236735955190437962999750597650499711998461982956700963953439243932772511283937074763338681244523295915512913790243072302767500989620309548064419209001300306492282032815774693906324606928538780337609174139875168635848710171174991700508173021090885277005142530414976493888340955506410982650838669503936631356591759464477643148214657794232767718300151660270178977838800035858788558009624484390499136762406971970651517058646769137647761275041727299145349700832910439636041533255918503028630761746810735269205055339477496639688557892714692605670272269061845073295858381189053725101789683747611077179114215802004767966919320985935344179727839750864906169975617612041706083721347829865003374993583848419983679761646346438825658587292348592054063369047023593867752634645985670372487794707210266534001546131864617533297960446583302274603043448975319023975732915514913853136043702816688942662594608871658045506965205525427743166723104841824431593123449640469284407592374551730348382265263146044326969579664821155682012840464550309871142966238858075414381475542593528042564691690446478331038467665013070337416930098598216016999215025323601962811635888250020537712906971758374922962540464463693589223988576379682179527194080228221673581868418649045227444919144603052449189600295999079732903186513056533075293986521605171512735304107569361955136884823981743053409439804649292249886717354229207091117794034511652926723265121528008459129232790275958835495132197206951457821387909136808179407439448914568505777976786027399608219108600564350283567259307170273823147487132988767663828385153439674663412150120333436279928392465339558354962389581851343166729162430882341629521609893230388451682384684614155225824705040214896756012488773376427885087099070656404443716571578245905669799106417580718088855057416850646400572852185793638947307959568539914442581770321656403433094071718563632189843225847030718595978828279860794901718486165666892126883264978618046707343981609585336948018577232501722226992604284536850434441817890246899155386009946423286746534827835084203424393078147064116925254166432540518707479731705572910827037603533251541597994080477105856406439055603423173123055592318639469162723095117766851221388836972552488244375082834515095250532909529220416861409128602795338920166539307117317130916949315275766563165311286642716365709730434136724882361024959870829068879882696774181264612276097520996500631526367160638175040219486787713878130251746292001590262203007957366725141565175559849580056718914821247669350741115054868813137893147032113260283059067370089782210689560509602800022082251533606963739641946725920579586446609085651549789828167116469999354608441570216328452032443199942814845012801522141727042078568983886786844835281751623345437600843436882946727481640346217570836114998399831781839102661075290449923383657698469266294440745211828513836862178546013687401818442328646390555682947068051079892114011979424083024819817310523442933710544033681529690666190117734953006161199824521204606430070122726096310589249472832832977352140337482221364964136565222428045232778170426221207834265792330293414786338768934357056656277289615117019119607415835229724438526785571091179483657073332788791544999424026556067376349453461248785252783753932385134722638805081983108525977447848062357201015759077006394929380943043054496135998537242191945569568981153181809695934132248428270544001028466446354919666785258280756397561490679249726482916233791548785525983110155366086262957616511920295807753846924772695232524767142184893476442991421685692588884410006358672601868863274650757931553554499306313306247867260473982275536757493796985188751534864323163211925287368643347375865196042517081585572012439491213417584016161678199830507895373911817141026069248766237081610383030461065235891203924553980012842044544596714911632081270435649331710909199501542479484402344534063512964756746890606706961578259394688911912492977920526178015806244854129019737305346764980025812629934942556193956626997800123290002755521230274788281257715864877138963917033489458706191052641831846896285952593969088915588671556448577029733641000294495267319795042308800160900985935967863440765843058163349240944571399821896053967510190559801369791785290039844153691651904616035458621905732816733841550050938720913831395238167859322346046079442370770914695400910606935333635392457375632040531301596764383996474263616882766116002763301342465752442185184055643198066676575717389158090257576513820125314467865867268668669829972835011299636222914056930478844524144457945737059860243436161396646593989777905086020351589236897776482105338402386988512178321568926934501143824706115643596743804614285358259346427737645652239966965561498140912005975714626883314560469562234625376339821473056856875321700979433462560404225805714068657467050443306893830969344098128872619533238926116934174013765523357195599661730014585567601446573966860256095194506066242451206062621817172065354112716302490133280394862733531447045880931858676082345171665607943533434970408597573566283922304357387965560507916911939669160048203131751594472073892649915876536785932416346083339726704115987723649573983506148877570785719198833388014475544709419055010675098355490440052898753033926394343789631752412513546995266263336135632809227293503135430142547067305568671410562746419871205584345072611255304067718753460054709991952425286666048802108464784952953322970546937234525957775310325471039867858252546131092929220849717127204023223363004561155668360630151909720851321526006495333258109005038432521482841943887651100550148550769141160358964025991260178132083299410087307671641489691349287544113382444207324237729443311503138324543507479979017197998892986029730277113190450346006907445188340432404639998935762142988269320253276595380002590728594147184611215507536054342318502391827642315697716217042798797239004968233627527306393071219076314976609719224019466388454612835557386008950193978935377162876881446305203173148261621298993353206702021884863740280888439052601575055379752175920064963072337664400413640696944491159609636670353817869141555110018580639991916898885337633977349029018961999163439632189311908234587242600423662638052922971927005832011582512126555770996725249141438220376458003142454108920473424596436535316095870751817971584744280309918714026824486542674013534745014755738342131552317640575293057578849431567164673001575565589557559393275664143887267414193145844990512001061745443707970410783777648133817150995520435838239918521473158443204806164124967799305449900499665966006274196809254810093802346789737753661602029563166027295337550015047810838542285127197569227250496631902628176667248641618745718560472020589780275891218777505915101400220438777239709372034972069728168376454578309953493241734848571550393212591690163869301117676931254690021035114455655827087124016538136569256249143110180358856845944436667746160776724033846345705697118016997756546488730746445940318575767414816068559227285431181819156117044674378669915733460455440869947672851697537218287077233518861254178454178705289545473486154381776954302429928633868192692215243394895160759598410164063778042683761094444005498990230549713371684676849555424928314242088940562573212666105112601125024658954710122851215122993455833055355606945403275500013901573804535715056918742621067196025078955907787909757826182151393731620145210636523702273089472382884458236303616137053772018749650650416642830672811347999080994628650794378346879238663594055716089576120917329039555618261700323035504174153064148235747821005596057611441073138673568640399909812659235127240518529571742818822809103030300560027311805438436142222074900678469216500213408184307991913414981162250401410778553151988264797513633332112329892591641902624507095041875737816618012868609369253644107920788333305206189961164470069740327288799877473467270603538253279954787841111830495229178512109655191772736324710321005847583104154591102994545354568347725820054985453606928548913173569327987053261394154177740644647585981839183176557952529922062355298079838999082310805849885381305237497209499980894317749805501205515270342775741221421119364576256733204131722130958665580599510185048057782654897577201071337593044548113828790279417681908396959351381870346258663751943371664051705730301705485053566087244906355426820666339817478275499766927315599022546800072468006650831412050249430652703485264390021538053384644392604410689790737958479681289184002939051924964438981048703779620436887830748807676319809067579044927488897773411616406422905592060780573410446887468281097909245891340906582610265676186347768231138754467808945112128484364505297861116147575075323245308729157328748116427175951075121919605519086481923775513252616281454273284409379556651344351869963021688256290256030679990188306036668610910323332466572329108172664974792866968605514062517030030456515374975091420809642746571159989792151653402332863178337403692215330879864458491734973989544323495023743895583294312419890700210623962731660692882069815088407772802263880200975859741838893095705793058158828918823302790753115209272450944515152475917932199258440934736835934008367534473620515692403117524213643404805081987127975931222042544914267110845090007705075178100932368789328328192496707384012152142850466610190919166751368164564988556813587111218671726529682904853591655743466297040445852133878578546840648944379093467659439267972374027228151130867823501578957246276401903927759361964854861937951330150779765683839046729200541425438545507357757435586495763864442287320936318356724771466186181508005384085975917506896151234799631544200643212144591588675567814119711090243960194744184538758187977064279200924842163026162835712233215557639075460158120092971499135291476459188284247705375584368001686725036654780798292143230490577438940232103925856071926179284123269929735092324255421285465028244174009434563228752832222479791243239886641983781514426743572523098039728366181238754890934538425445340295773069397756342073278085727547753247979956363019054633507234947824454530579501009798749207774109841902108991109588430041463470295530208679960197169862969815492699894442177088796794704683730785304103845711252897234954017109997632524338270916843830385841218250076843976645389955079820867230978624689609784254360663289442482935953689386089987182011868569161079072205265681328930873037446871328280882759982097826629532497525466455796564031048198953489905848797976838184028812602941595544002738858844341649243094030381029473067116069285200175481395739648913099516587924163648443518231710336265088059275586723613080997140280890175791172474492276915819129953469207743281084392956980440677173916864523647266133636463887921733245048513250664800009996911665843940872743283156622742230366488901996681429169901810375309563543126977786187666201838802682187750545887371952370827475465184235529998521647310093539269986941358336649879293205112505763225515134084835361636461136130533202853786444149305344086281445088326872403498359665811226387845962980038248815106332233754772618432877585034051617985494584619317678911094922876697980972837135794599679726745082795752558746698375098733892256800287730723965925558129096128029625393569686475467220419003919929662463887646586302438853205767715021655701346994136926096109005116984334007052821846576929484277876338870414025464743180469575420727864711162009152127048801847066307910755263817091020729666782763791359573623503325178607238074275044595341766302225863099658735026000166884140107179915591518658120207592934123558642335373734499556575020581638972092437802596432280932603954676455659983276098443094730958967673795557406435687974450485935140928781964393835733137077612340258041059620923280747780118378767228334686744112704962824383781496989569337668216551391014802428521608618325475645183648389145345773510851294130060980358984799415195813395648151621117474415461294807461763214726555442664253163800927352285645353153670382745499514302297693466046386581309778044281034404828975670834183728630282132447952424972657483005075065446577361605740214490253666944384273437906708027936255186463439003267413987765246690601497873087694121149707427799619274217739438723985956897060709191404907552117353559928810163700936536612465368953599576771290443396385955126669437497276754274230651515670570931345941073039840819195248938973522637265048715647776749278331007102659586738966848403582765923104085041316812464045556104310531536430205018690315600553642173984957981501417772230569618738838600223985011234067049385451193728160249346592844054709432876974292398270946544889173652263873217893913756498219860956044423285727162645471342266260285065121736874980520981572089557614740113571380594451128613079714674657106243882813826353087824981315303124371963256285378331870942178042395301972219235352691960692902355885321617544747415570197338991667965387375385009381500342215913716382203078935628068445824622718900294004253979224284719316624284477199673759772637968967536397141957884283337946283824416645561663618062318607186448765912146201021109151382678415843007285821617136360472395678802379965593973658816312232970333483956708852221379822286377490963012972341951711192164332987836749325425015890847301558866054824854010609931280749773217677020598467144552369264463285623659614377843678768685765169589911058647104840784705650682196025694771696384382703421880415424596794575899841446588777454989097608415205332496726887136178462759665451890369388619496397466326416017948302079113120042801985005967536929938016619455714002307937874314162509484210727520453997099378191334293375595325875890797722860608642858084623759816364512790960475980459556884471352721456958752776913438427031206673010673329712659268011941764859666475365667928776094468239157464223260347196603423803157728229659855827522297471558228539582929615868091058629840905411521079528774949384585119687809379661867453815330876794828662319464421724240841151134554398729328350616073981811378632268259934279093948148122299509744478945154327473364746659085752931877982798029526866441892285020271599446643712823800966462388687211376363660550924826655453997123081363887207714133766283027790915665118802370501506724541151791980949808434144862775555203785602039596198737985230252187908948716837353441084161346274478524368687045236054853087703937460861715307563845185320019760905023438567519089140121753258839331989970214503988149651595856860775660012276171996546349411989382235827944208381960696420484227597514131973493956119450333718320792609982315568542147270371682132669200689991761252339754863461704388761531134392346274588588115406218000938285595721147598167669867756649239632221974015332393037519494331526541637737173970704766894884338126949652904021338458748795613466966162252286532554182684127499536392579094055243655636456647408537386835982109453713473398243344066840243857609640547261464055710109614476123589050402557437928286797376441415364696942874521818603433168724378418200033675111502133869516775936388100218193745727942282024620883561622188510080646134611704576283640366792500226808574992474528305858491193869254836144916184237355353767050869582732099835888802851977402313301409912959618416276226173230114330496243832659103982510720841994597104776462824598879087308504442931294168621075133752675136101746983404332796103435133594786074471776903893020261077892888328936367011620452159497372683955611462304467105020704477334043408362978093073183134989529529641623501944717799921047401174576585483441271549166139455015301283296653571553949666253141547731135294243773769947392050884451310466136725946660939323143044788266484143883448445100458595965994559421186934108504796438665313372114446545543160956790291030387231904974705919508477314134926032137866233892885351034872566731743087211487128715014096296974614194933493014898160458349506384242656783335319692164988137045850885672460145789266606177891573357537471174482276368403868477494967581783661509122515484199826168964337096437449812492307824659320107008003200954561248097200965669781938734732460816619133476453166812965281020531564343149206395293128111446791788609232560298688218270454601841067400420882552587039313372578392091678995640520159169644016230688652982505841340022238868842876589864797842735302822738624001297252621675857316723301352925637311932043136670233222813995886733376144917070404183770576780414217068326206223269447373869911193542681047581931273566973248952606060295352696964256444462700080837502556279787360526594293516223378636217646964355039123985821484770158174632343483826882493351091427226219939561261423297295651800556324075503323646642330638373191333357632338427878473323079646704281064292277121733562326263033353855549343908222329262494587831629282303660312686404529319116470149349307141454845117173978126560204608706178821108348680267171859501781286255844484174606181239578323042025615168703422955886470980714115163679446958391654938407962125987171336537139471712678598002203219769987414065986648561055330431272755696189312641309655411037258565638328682426555057045078114523513665404154964353169189262202266184735703699813231668165051579553782763320185864683872445562983578922138998665170234180291107056713277680603816777358952036404589965110600420528819453657562646322488148274878056738224478576426673126687339257974500778224638843567256773134414179853603644709945393690690344099942319548172770963075372609103349044429020615788133947218687193015883166298310083831722843661987160692087625230395657175284130840356120167135957302813650448203483280121750440456919585954852732065636689045746845267734006071368257377077640785831467702439165934530839161248989282855566719777356818031665068887083169253552976150092518388286300255733233567927965494529418907468863101819973711734245565894273724226844187219095735358661318837221913584921313757493421521704124636837483479439704573870009642700487390062495310091898323971933341936616185304717084983987879743131584038050163497505472529096186537553234792791407990237044864550367714118217075740724514531160950152809355306020256749776599951516378386057541594592745136782697659674253647459696646982905049434706985501318076195185540987306852993740454513877118407471537532797407009102337527677899291627956277714487792493084777396272900763537069271185756825754938384374248711784668415625828236310279124316629097714534113115319677015947342074064983577377789210906173161312745272444938771008184260706000898222924894168976173515870609995209455594397382492419081244410447845926882122046424832447662679162436684229319302007817326101139578118010431201151429188964575223615399545695316771549779793898536908255585887512029822884186722491282839059333049335430030851024142841608499073420725307902161779300544530430602723242057272222564733718159205312014847007518210532492301130753918209534623062061304172234007829898790499204645938585196430290434103138011990574047252176263435249566587516283883719501346132511667259645073716275511357192023139695859909044665502079607735245625046242821546409692041823556837073948993698135658632641017384538973831075698832376100866585587707217111394352652284887419084800612749456263313760877108670142460238376954536827733925754680720922349859231441603902324621166179727498460911498984579900373556232497679152456566473694123098598167185307508776341233086115668641377916260464175168283304997903273058937637422720554354632223539044796628543118665378901766732819764303944441902779256153678924061964967793264763672029804686161446163299687427894977411544283366349919724466054617229754549219596770165466866615423746587949521591460184554911851678157845433301296063218113803302333767007769030086551619425834104997224945489217164778224663088839840674957648232775346501393839641621112371772729257408395177474886389138778776020903425067528868174464530016020383633710758151850400198705219707525467281986046224524424427107173021271727768759152626512204445718020929434613002565807039102754872228695797080418420609101537516314852432300036202036170344643883088601933525922506100189018653791076833669219518954757669004153339976169966047959675996924323563037831836308551607376368743933152106525253377386162401031829454866857964382676105340762521310232282975906700570900788191344706972600761714939334148638516878397210306557487219724242470142409120003986458657990608034908567806936311943863984636834634588410454955081269794389475405729829267776173813174039218480961021704420136005965513336910976838504496701082539295527935076649478354325427424533361209090140653795244055974010649731714993745927826814553324138607609801378750967995245812722993136499101313745071965426383712648212636484305520716396227342533234113057780031919126642722962666505609771503439698679838860846088416615161599989080433493867573261218965467566679633609977495260644462994914964491418098739474875017068737638317276463573066099674080179749748508366030386800100937725372256573114246104207211334351597418025183002715661132842118390774364525998457754107512184320903880033860195044954568985852833222825896441766439329334940496033753379964482423141445982188604884245303355629766529570346284137201586735685637146823601705718858110625810801948399382999366279086704952447198424831379466676809681543371584831735314004153909490034181703777819766346183733119784888865334482651778249287008255233896316004291985446498241663529029188536474749486592874543823678475892519625831690898274265632925026755465742421728502922941067067841728211768791268521300350347001871562392578969604117274656206038255831568162337159271754589537858946936981909577319678293509477038078585932686403014775334729046024061971145835974802645980659872768295937023011659235735614747419463562492988373596095061006163513025615540668291641637136603672503418712371110727070572601565489887831830012305870975135559915835294616532755589813090693681019257235432911384543017437372002230231436487774418422668191710050903952725213163118937299850949310346179699808237700665028443062251489259896029173317600366267749358223947941259303282744381806734154068319906013573903065002251280690103407148290329439522969423950853986598843555818687726013115203403166882611117635119673807093239504537635245934965731141839315972404280549571341961519140348568770925525919979954085426003944242111203513127915782610727563017272981209747812679680849368474825821820379007547441984863912423909245570026814396149476778103527013476192744901018414856303744674388856702589270087308895329342354212976630026098102769440843914359957361532022102722740529607317814230138927119878574249002850372725274499162874992892574124755710568113159634866141934156232237300480756094374159554815975091660403117142753293662182934947628671880045761249799173382630502076091673557545526814611564796351385817948922065424389370509997128684647492117934084198379118794310316041693646039559246375133866030558737782986435742870162048532460247685375212321600660739058903098336731408513241059537005686043467876792758516194512596240462166624627121454936550336405422112267532614294455833788445591542489724414342892471803692833980930288753647659930073839293149946134930108245645500287794607827416984808006061354985731078280133203744378152336289621448116730143856243041649481567405406899250944806936707358221758084688756736902432770082345292615125295282471738650923645727367229676040356745634958303751157468572899845998727697491203331479260286487756928277284158637123956077195381365899868030193504243177571284889033401271878648788945778851930909552945397604251475683497690662617265252618813458984828331261646161124788618162784200029664789455638554207232126119964974895476189346926673340237060206873481053090977730569519738562820559766731918729580091597470662171153589324619210629064470282942143011016094069526946965902572697913537565932115596775953887401956256619936530763712309345393806425068925407214387986078928080360438839170541296311911674863652562313875980644891895455623631207169418672016583407580142088403632489623273155410628250031963334731004910638998120869022354770741628261200350320366378172504067093859776144587406131285562474784494848182558794355116888673224125941028121731465701192219429348018162067460746653738318360344734694341122669560318323172946821398293430942143025815033162894102628006824399538647554612273867939797234054648496681698872294388811233850655910231712898007988274400205231982438186421677456477797393379683433453996509277297894324344003702889055791947256325314570510650080697085593051641140941551044026131082394228297986323050407574202025471532718350794474234198991782317783809487086222315320063265237130220802876696272798106439649656155741933459574351280006990702023027276947986701808137881969319968631266273898725732042533872888443168255248095295246107020603980771616881333434645341193189252682519808849384850557198095314643673810827706907942273779267444824131336039873794228326438225296635508740883555566289540893697540456983916401259120367877103659100387846537874268452161210715636308036675712761534816751097704125928531412862671306931435085480827189526938005802585422965886237533716631178265421209766180501472796306540014839556860668097002935395395840466668838308286392677534790998697103074444062072017216456495827973040220328950400287028729837644773588865848594116079855111176653606391915132102130727861184415304758544861783094805982390713131504055573478346988504195415116252033589089871112815547812417702400469884842582774962834196425979483558554873276589437102344434664486473383122703696495913051749429877362869783651975149995712460919949173012985742735543234809795338417212113071807100400332882649619127098803302038295772571279967362385142781766184804243169807437845342078816259283873503928614686640809034312427200175048172438695229091579849371478751755906838934018353125547939683305271330154216438125585371435397028554484767260576140517281915231447216133784406148548844944114219708839306845249492343419677932944866901639434964244488855354597878026865870606222220988928872513384820319838949647081959652963873413563856305956607135936748311906175960795086117638515836044013388638195936331390982393187269584481797640508421464685237001317072486108404642461184046180093805161510904460636197404699438219910131635437168158327261484926509574662372274384938901552850360208197083091836811689814595391092912250008067004537866700811954983069532150632128674431134918408660091968233409876306845646563411242128319753829944216459740227382961169405926038933421392742695260856510101182309911729360892739746157584868681348039690398779537527826369474941033049625961097431392708236312731459849764578626801396360561811787932295407504482388699087641708449367134783506237359141112008288320704861449731539812947989187205026435878848929798334531878435077127574694839426981786273175261218513635291036435885915358369566656578215354400049178273386486286459052916929685509572500732352827541365020754337955684897529152302125939370546146952482839321200378917350912324091603924866733893069304825095517158753065896864075277908032814711784464921047260996764740997797733895649191360947568414184520017038572513256794926766803248515863057804156840406869033333021775672152864038602623604185807388617701588208962794650674808082878030649053859906247942181399222722018454421109349214737775111412479828945102732626987342185854777789248210257650835412317341211524593420976381997964523398646656708836027604015102242939639945102640738020996590318046902290992596183832185525041271954009533372083091113009473849895173153870679604269030571515966534511616471411889959507881561668089211865577272529433576417326137460543364587193590964719431545197810212909137353169987699870270310544769315929417112631694737062410419262560707780457837817997258226201929173676325201180898996513212602087282084425909111909217203517584135547262141847795551091655211719035964205694272837723034697597413542083813537257503581677859818447201634835895080963464396565393536502356548193745186122907913184295893872301839861949394549932940127160641435085737058611197806802268710546679980871233892286789370756600366843472325050650169949546564404700251863213346125003223976979710812028185845001174062699854838463650630229696360029054793422631664708656339337167439840283672721249403109967198792416084096718608439935212431065820848319688231446376824495261966264249061009805489930551565715511074144902538212631001251666146155286628811905270178835473441925590307702106432677540746935257383890728868435527764922803073449237450756649561589809848216356903752674245175470306620656275820391525857064966606130619998799109326120569004452125407628541012768370989411782781140198251890370438140592446927717329180303270711279946127137212264422538463273767595993449524506684425706240589797071920025637492313052532803782307905355487134932426088261566590891940928535769907120473585628305071830256533650509160260529108349926107519487388984545982939601069589162795927606634363714385805212736155876726288327792856192377493127943261356999747076008917281694603636255647831283519103980157490868254465395380093878743317439149427026375107375678458787748046081228282694279186719461171544756749651743838401017817802532899507590430043980330124575583431769119714475427737445365428141313597037123953495679691172926307818241938207187147819878859381224214915325352519031994354570834732967736224711928031922885465618041591747086590855122899521659267327688496317683469365157897185358294740765932313115199214372930722602204620512324238612196126861438628735665517069314502439470886609489979527481596313173019576082794452622998945504147312633448771328245504226435139383369044366965589988811439509766640783473068714045056401529728324966680055830330143162732590073603918294146070029365910889948164439410098738886961455594613674037744330804273165841356442060553301223559305720832448144255729635979918993150852362834235019802173136909253533765299461218684728123788663597666716992717196544311808908041141571552690623411531695201177679048262372853490038257128698212351615056327006583738082947448769299683896592290018582054043332464000372552008895786095611981000089157894506014465206478160461538296069865904190293177858144257024403106590706185171630026277024090853142017354243520291974018671810303905567897942173185646885080345496695444009184665600998230759747798666643672798466622962170724467194834102881949208323933976758070932042727753186069246241294706842542192177926627354192428422252990035990276994695595985191550373870791176707305687545807252733395954203488463955734687924821779360092712366972320069514451126096192093827711902141417859137188714170990200712900555219061424122981099208566551567642964051689635554605070216167816972527516938040274817075746210953122106159825851774060228255321110766593999567452983972591914270492221704312679223744987298773512108916686814927714840166088729026831985896681180790422090087284407422330124005226844189560291383635183562528905574363469339731552681272976451018426539640306514709057917244817698651221469163123989542017740642132218259744944243525080721530340908890514079014789377482275213259018466891555256078378328351785276762262965742366760503676452257451886256454960496922760683168396168793291448168344646140010491655706200357994627514900179004152493245912221084463904816162323841996971208124523314510770052596311975645137104380686769946166095449354078756686204841137499314787967907789680310016803584785937953855318510204293622111881429216599000584574267079092945753478205411610340922747828855951319621971857264005666301758071660518507414691776080465202765047143573610377305321250151756222773129866743131412403587211400898522059800686441734340036395342765433462808237871378331577873219844686245973089240812894956584784048943964565410503247856529921637934588159059868015968885250447180170039981358032320143849417949901006261840327311247552643212709829364715402773935042810846955992453120469443661722095129094990794500489291942217331514179013612115432663038207932904246350941672060255754256175960539631461153567715019766110339874130304869160230483958341383484906862362010963976728646163289979715463201780818192115284866767502965279733845161839510149572414434332449599500446089115591499712534519010548409095428730041353425819092523402712774534858832052355074411867212663478085994722153959477189921559005705372800250770852525606017341606249008027056469972645731190417141693091557556423662087462556934486435718159553600002264318171383971485373212334491379731329649544375586631783553319247151149094098608496140870600350711237112060581306582022419117983706498347688077403383860914192554481413564726394087860675134314077229963288535203082254358672972558128572549120144204494655170121139606325750761041247604363666475347475371483514502558540975043186793695317234103219697057906709103568264670220983145828774038198198977138566439269523020618218953069800648494036629747779626743323447661896430277049742232375437037462970608511928297402823260888440431596183567896718367459050145917122611666852311110891085795696368485530957155949098611972779912531450488556042153706656368343549147680630625121102418954168951864830606292169376760758995663796194192268696800850023655381843643197521712791667279338376108080646506012747329717822240738714269121624416562671896323282812267059791119347889517489908042504362501200803059788618497338416532404466175240583661181264076619272832988237857559628900443079686631685990726652068547955623308124992757660936175999937932783069657980543643399808924488041425720259595076242048073513897212468118073161557285270086054743144109844571010313505204486482039891962623293478954761594899727597494133028188442465594187853699283479267169400337739267162601066407718053883913169191228951241496415550443279803326916851143813724727795756151847892000571872336251815626508210708183559445757782077051598925313603970530956556571499564642805426751137403968182671621139904062172062423172451032904736413487641533775251678453638193815104524763760018333319445138548861591132192552250995082894858556260574309529129359687142205375028254448933055166454899583164822930223388691912186764822569528572720761128090596805073152268239705943493218471653068557086566770240037230448588070041184328836184032932413521699817830114049082174592371466976214492304684337611867997667515015706206729979049447574843388134960906435548031339967244910028000132056528098509198827957540116798595081795078043097088555048560177648116328764853802055724934350331834684866124083102623845002928012165194497562147467131452765308363582571608076188121295458331324865736659556601996325946982161921113485353878891127495138979763938884345224068466725933746892861135665770999710373061017159763408598253818906120463526915569228205304503853703930399830403788249112396341776727859556689424684575669664005504318966750015469346286291789099752541871736866097323073141691687562854238350860635243133534995297937549709168462167165697852450330658769720968948293193584321944316852594832926967030126730952325794780795744938869489310839133040152636984760168138848304708975839442130446967855337045652897453115800841976997998671146048025826225931786298492438812872170280132928911240056976399949132693644185881655643910597456620349770623340841438284574851332079732111580182946319802507776507102098060672459195681160690809855393777816583304295612852381588836996689352323774045790182413127937457357137647671728737026001327895774429385779738482952147833729904768690354580598019207449726620196770098164248972570565950253928471975777539786095903898700519168952600921157204815672421729620363067518356697714547551775410280160589954620579172675205037196910460808304618062019165129514732229351553383451033692694126157518618756893547465984349161756487917393718625101118435875054771552246133039888440629322350798415106640347873667944179427678943065742667668517922924971740647003592986633033463543809329381314383718529644050552828577794984864528498536065708825781249137554296071128890331977694353643221569088351427637452792157188833497512268491208665467400378799300371745393209933448489545322814050330243525323962940047485276722904295038697283860866397449234478166878507848830175560326452997251208012196507835140305188557064754778510847836658412515459860245408160926189548429795434676131435887208716991951510292430659158224020112617757298914172492583870233122108948266107455692016227308582505559058635047528596681514312069231904500451649709256599321181453017432050589429917994687457062882748163760103264606994978123266781993434655695267270945279658238682199214005116386261991428220484666497708026383303025182165580538206903961821304619641763751915114219307389022037819092582991898621265885654882427762041282174068515904240123889942630913016505358411060064124256706874829029585772974426793698199464436004171240353657885507059861844144328889634410309192434110457185926409717102182655803443062062146653860916981299819668136468565858604979818359320285651749165702902480082553206046710386081597199482109366868166206859346195846904169004258164325966990313527094398128861734813442168716563957761955920061245476259977138575882016743197802665263141700231813179424863934316128947162323514749172603912731026777303847562694545602537479729780667001704428531291497788581831708845085366024960337736427359647687027388764900885506090625840783962094612948102652020834735360483023591811225250381112343757155878362943712949994972371684618069841050105598494129640646343922255055003097753206296362729939199409499368132146830590279670567277497300336971679483164401159320840940444717661125515316982632068318945691434040622107377575843071256377325655947850343607837019173079691027154792142495639179185825399959205679502455348935306952282236493426269701408024919715253833922292520424764984935404671276404377452432721237784200153119853148900578769629589517500501067255307002764442885147987025241820092494626453891267716917070859456182975054138021105130691212096026372137879284029590683535031258421269778406313219342208647414781745822572669824909004761201689298690123883918948338647507453921874965311835631002406209911037348602873844209745741606827095361954147550106158815689760673285062798009833173699495431450115874858525799093030961376051782761392872055661485317839004618456036785367620835587926197575014799006780723269568798027906075354100163640035283328913155819406422503439343147705022894388724503798326105266301163860136914981431571413059857741098119864134480148438469119966072238321002484111367582788418750435870803048624385117369707320874868584187864633030880860774761805774759108107197569126803662821867715178195921996766815101973461985457498563934643941009824374211182575306631125536973525107688866026676293344200217499835263687828619784850992299547175225657423914450569962150007328299782742280040974949642953328935482897252113129862487587217806566897705194977456329163791565262207990205632014497233108001721949540080610812881001927188695184643187853488861041860112302834851549839662068710350668690813472764194737073466949781263389465131790990409091314122953661154153945300504803828165512312581976296279546864467965620941455125653046565426532709933430092566497763180698213872993534085868006193298890419366454547411694254294458757004859694898486983065039409072072862790771645441815688033068344394431997465674157284979955024524558513387991889180647705479422112171509276086868144598442738869688048332954501781779366885713279752190197491704308752631576880134084326337151405685855185471270168900903965852038380604453317857076519859661381042971916699927081713313764166936939932245661519759419235742696155597840535257443762160599357803457374310764201311697721445706695115652015832806647208951883094004194447962581384821337984184793944675589912970044313752937820994355426463466930624869356099523827790437882069574151766460405111196860967927516052381771816901117787079924841889767382186407902082417366383523871875922325630268307972342829340853967290306021293174351806492346371744953438448655515003976413639657308879084636659133375136280989079811384514239987555327314194444315765434975945865265896351709669672380745424575125525249017177847591497580501871105860399860397961061093132427359297206230489646308640333811704662289540404816738181203435221760883783942783085981487476004886243752852253657434578881632870840536089830753752762124771346674128823409922901655004937329163594658232295967187915351417869270846918750620442341500352169717349254029371661603723123459604074092835032006830425361440058975400553421116729089753669001627925813771812567883207553952359382914104052454792723709742002598406136042647479284534187897315386160469913415171094430745587618918035937717201436972382246195592159682024782173925514077576022033307120541610992613452996199021540425217446208315989342650693830159943468534220978279211086971915042763755391006164002726148122161224359094638701623798373764644053976293570564714522566738621927146411050807649223181637837681621667035877117146825771952844285362223974858577439109365802444010159780866998754235484963219770011716811812690185236169606515539234172322669084953111858634574626342850424745307858317241606400688593567530403265293656841876549082994130702952167343504883419616639478327937853840736967012417716016405290881538273984466568625266043653559063734264219218306204702178073620228513081712821206708127550914129353584275799822044602238991107700108756442690830493556738575437134006660927067315625444426704212228939552027222300302040817362503452163886164964062098235543484094193472305316278945110180806199956220934612996894196282832659100203872073660801182746654920352042910050306435440753764194809557298695440681658557395069122540344111837569972077655328136136539793487285865118067927684522798973142923134260372308934074895208620882940400782980052882093519464910588306152886499976961159353443687729658795620876718374925558214638908538964761659285910763363156061705807825603397399363458795081387966233145138198105551617539218602797345465389615861098333631335243917968126286482873914248063376903658756149400631388946963968662843134322230639198405863124200668768869925911727914806208140145116311915390866323965401299328451801470160678953539858474036925831998062974594147483716530753337473756960182875048443276091242287220061814623390068211247852448135408619992715426630358225835944341846041090943815142387218819680382060079216438827648280995172496258761360021448879491675010399049417692620531212507495856424265710627332354341806693537337740297362587993013077719849105837503853481931496233200146471245089454254643278893161746798340217481496310915342864351183861434279358071809025654850512711901143484145677166831540695901130579982639338405465219075582304180155425691103911799115798781288025400794331187360866322878503461451291095882430198224217603067860904129840888161604282630461684703130952089420956081756735550271029011999247431604932014870532075308757295172771232135100763566216520332197894768368230684796798783199122740087872474082762972028881155446849586461391611000225772851513476235207649816319759943733126520586943716171848934617829357672093616238751648676572053906858899459809519401214319690367407085736332396758868163266365516405790797652378590171227604036415992784522130631028309356881749328690388764828657969112951948957545066623711794702045801118304178901216814531390403094209277078720622457251391203730874820581377268227265643826232935274539366920950940389488014114195580373093896148144378303756865788224346107464248230918941716555249353177050697029658420989522581158262032655289901002835103325118976737421050895140786429497092962287911479672328975590385873858677998579706807836722008397215821317838943407250495233909596431608923373462514427078596258380457162131665176445651260153246342115308661315118105281950350616333950290986191243841661777787775013477042486855185033615995008380512433613071677753702630192073548655287928838605495520510950194540649313129608313832405226516588859090479267717960267446078225625292703084026418096837225972158767800198687117528540173580418725462175736190314566042874003073397188129736863810458815690611225789202868865123840327525387745005810219383014544058805552547395863185316289742231954398682775087307422485913103340155962339397496396150054143601317262199438849807944678290306623788158464239626276304926689789542251161932679131437593702106282012135342856287747081934953562754870251767191610491458431824021887990678084619486320006921694508436786956447249738903921937852675805166437891745916871819933161493961906603214765026838042306235919919659493043213737892226090614513226707091565349898840862513745712538900581951262301662775657229477557517098986660586339173063291087276751767747641982972200393785634989568125034720626782406926483042922963222938191804772223231910012728743261425550694348966088056673677474444038139881310111831088326896485664037940902799321531765270098977677421849577983593150900438730476280935297458345672763595048822930724323216555218938645405156824770953940295393637478014304858202784636817602376753762644096352854888057261936095822065900906551199852553088198868188615386361018133241950605850289593255291143836436728352033479804989254895770991726414610704585289840995771168624472532239349780512947062964023561226033463419699861768050058955698527202307867917651971405411441432815983755031995015216077889374954008270843406408462956577568507609667162319181394448723766696846060403817792616719403420502602366401521637220412356243902180239085411670735672555705024398919125524869381007528514452873759979310831539111998769266326485121833331212849617355795679076798371707569119595026357764482691170520356453803903511843684266567166178322925600883518448465845730122078815313286884185659735439556746427703602061223545234006603791228367059946147749818020056614261453949960734633947679745031612504662121453269058375409687361200479751318714393131348300243228980616130968008410904951380407093227011925595762912611242118565437141942166683713327854027884490428051235964367106222749414117014446594714517095809986709627534072377936631411068552939992928033494617911560783220009320556692991494006357659206462484449616102973445247068240216881645317339294404819986338441945061897454535300090715164089058447965909392788150838205188710066367844564300880943346494608844229620457035940255092942040599648840646551714847095826987585331917737996535778599227955967882220100735690896999559439556325561606084589392578288013231800417825476962521854680219338238638619419904995736329479929009516132180708369384404490625395644733588978480236568427437922185979688128171369364096754543343500702787898038388630517337385034684392145677684965791243644181631838233027853070261456941737348874591480603067381106444961760265583468129222683290251735777261716125752973906932222822509871889974466383099150284002083509010320750177382506444714972848180485859210815197756960546292213835698897949236532463981759850773902834462852659003179109624575028556445375796376526278605777660579941345041415675382962209129183513891120750829567034953575753675009107745517609740531526425570047135355985610253415501148400967513070996656895785359965377544072191834684764790715745928506776016323651949937896584050702884942198851305710618397538145277299258675333815766364269430708928538672205037626111947035722907638445010949353500184456476300176234366662931486212678184346452475954612829421206658205807233050752507614435479623018553543170476207419341245925647205499109001490954220988037976712233210179166819005184775741583814382089828103199457856862279515947373037874598439760208522872167826420181971529035273623662393236796197280177647151472398023224033709615620140750073141483371864136270241917360347723769905037407643393432624975226355607020757118229878196928342017507749694273627724139807565478345585334351823464814520822262461135868290615360367923220083562476421539306489054511713303124571337073550218501673936389788064599390229602886856064532295134018806952667818795711742971960164132202438854346572356633182951770344084115895989894256396517640156518916391439926859586018152398444921922740059509636556716050791078226698428791082199126463498930361536268496168571934492735241691027326549751805254144441701217196370755523966119240549985635045738881006176361756022685668822400822799523385081105489586469876751670290027101803052138272051503661595519688585948905597067166827857816541875839920561043554581577950513550479112998935421031641575884193458009128101620246092830375204985138506484096520909382856850994276779289806007000966709296522946097399788408244398812686328764594282805189099636913553877594576240342556301403187678912913173481310967430551239868487939274913718963538647677763476002280104921564201800835232848924166070514846421310485137895511689423749986038412835277475105540530097510199363110180328463320196450536645172397714298648967186168019702196607858767334089990295445007311665451784753064663750659930530684410316983209015847153038873921230163548516397611017441518036688955518074834869934450285913100486739291509614084763868472699770183641916590714569516995662945239744555795859925656611320707708837198797230942388837935618680780030085727502275862950426267168386038337361379548482648766869505200942018297739737709438116685701786404876796013554277240896515882596261653005860291727638572212383434668752971471114785775995643560654659680001703353334053056932549494088225387416270584089246321102316258519916915958598978487359858993711824781072798559995361343495010845746565074075279498870422707491382515280688467533724640936800510803971989599408819716264409111896559045099854802201346514866779169719761653577070560885315829709046756887889720089640129306484308166880677731091612883912539122086263804311688881897101415243560239880743647396490559020689986615168423149416055955185547664989430671076464624451737870167471955076296340103102929312538702247080383578981360710250908781259826843544206969850496275119778622060767333755239984248973742301823134863165449268100506062345620355844844004369811923935461104875911349459184942020644185538294607075774006678874545948423324544462623941931146602460967016692589517838473299950159022666348460095085647980809384519871221450829643581148188313623627876682306405860411411976353039883959656599258837276546410762710463282556231526278288859640352766624722686519644076061316608492180437789120447974765557306610805559701958477317864285011913346158388248533042322285029037964063654456527758255464914435020623302182881509702437058790903435936379655312174319546046073929075489439716749390785251230161560965966058172972192180431989376184261483675504879394499199870290633017533978102245137428370041059013236134683249661723438391067070012907771815740039347878812273305108893320619914811618912181801746683800816987786381998410268541422615969087530494749845176773405478345750680057308071137886274241135928924654599921497144819250076277635974285156505907814660455871228543595042023869519383438707268040175633637807435742749945018129645986952408466871888839570028614957959578545458350416242110872510578485029345258274500316239799357622758117376878277866818461001582082099773334450541107304029978269886952419779605562541710491949729102104204072845272498847851609665657945440120332373186222933297274673758786621898706886617498781647014618152597702678147850409340299947603711919594046210853121911710107742408605917738505961422343747773529405052146553521339547676715114330833716464398102759550131620464320460514403794373512882461768158003345186300293650865275385714790798036570117950375471060430359398427324723039541393811863532728741912769518098421659191919496716725235178378313868880787684327350986801494323636043682931340393407460614130528696942795748711371238168732897362002789403624019164576978740734226519839242105978317885379442145548962363305202671686084117811086762370314761768185083263333348682172003578494315978700440677936435806562979488761624223258723106853237787255177573625902949006715831956152963227219364730559915305296743840589397140027091385459964403374831061517094664860119249673386398777147220099254927821101991984415759782177175738044865950889918794039059216226050872899133930351583359028519794342082435751667948238729603861820647502359460035117980830330978798634117580194182688065412783320938633971423466902689900283967088629800380737013872070304874730011122910529345357349406424707973110052305837222213628785834988320195818758018148685935873788686895693237245500969667684969694362874847551490690080536776855674101855111138600889719070056133103801411615688357582336976190213384618949257844535194965054677992292669894514809560097021614866319104283737722025287205050144262863219773260239201540592854081374189914322593474202449026998468895040262142974645762779056247610188086998958191616008013653043953614529715710573206395029848155844665668990042919909739424328479396361131153740081372784888849056900769695560557283626765219246513721856383743352906029610925181053393258137913081554599216759469597430086194756438142643894637861817549510041713797970056822359499486606033730053790955799876497390452934648827566432475188148893049744060653563732454404971407470920676496335750129625220782153762443033502351569819317463840560469443725732476806267118061926339477847920582403106522670691973539325994908589261041651553124763979541674535006257162985824895251257532650011745653789087633976225777598898825989445525699852431184381425789831044498966381635043666402403745264011186930169305462169847133520164910564151400465462288445087278162127578000574764694470740186509330662517457630905188257819734125925080384000892167877095014646153544461109885599006101133410912602132385090432735884505795389494546511886583143140248385040423810306001974245300058745779267309172304941051332892808924538058116178886834119624366617058171966057412381269942239057577426183412305960117758807038872634270805735302162217298706354572457113037402911169751592386800079361566135175830980149529357585190939644395113514196741954781883292394623100451385229467123905132239584271370016257620533069519584225335915822281641196737955662130242927949440057384062919500934073568795820599618424162905870801271969263169328173311493365186782130711797859486153081934237735918702122248386930850223080115309522985771889107223719285895674921885623387276919284156083398675570759245073814611145585326693066073223816919013216333978722647936371556736211473437423151083656169030580855646290258386346670491034879626690679325617475587699517784078309348439647833099746417413569025385785833566653847773985009263354431074339599266221667497567192965404151560868522543167813206749433304463397723815611894555922985561475501276449381967078487153195999206878515480980242406339389060687095697707393304522031434521116345587360304262322876071148145171165951023184827721457956900446591256889181703454505693682804240663641407460839335379953446671447162280837709520723147778917129717113340038230175410866465037114394265726268864736505190835587934645515784352787490707121323344714769780554710260345354562412458581374163399705450098767660936656062193524694214894065393595584530990420132672641202642588987401063715819073052582668767601396442384990565803411509559255272194627403440134250704499433159348001461945977584375365267812043339187259246831937244918122606330808879091932540162917853415547487428763182557340684336457812409693867381334633987616027470569031521177854778532635723458479830326769481720606894877087938748096920113809354898824501471493073435875493310950455575734287993339190661899242096049033877958240363250040112989902319155973212702433165432736224499889865065233880571632983759513858933008495371845609036944897063071060850837486044922293658040855252850059460820919984315782161558083832521202809853664761682344346255961361287982863669305199156730956784509257543066708103149930977909693409011583230264653591554598949941416154787928935487512313417717736561306039573910351409730880434295199171197878565777327238323455565410971492193021596815362392496296633382891425166118399766866948727739354676120545903955247627003451116398511409676053683814116321129922588903793254902259935425362418432388364391644014440304963865866129075116990522140037367961037702762754091659933959051543193586327115176531359512402397294058962554935365855216404470590575695321591399058111469928878418125171435008642181262433255830109312133382725980392010893123942538881816983840176066378521939810720251201468914419102062283567584418997319300846396403455413067382855286255371002601000220407423890361076817884525703279501422756966935788140261628157484664303948294392261811418470739833221119180861886262540152856277438391422095485078165206315021171179964765219679454022943817997891826240692956985583969881477979752537270803373331995103627948747724536163173867854563970485617129560336879072287096176233912011455720022868308166545887666213970686561112290518298300087255655525868025153454023710882577679277752840165846575102681451148864557545075682412330859379049247766914445634887201815073228454545976704568937858654203984296143424927417999293186410106052406331383432568738075149400165943390578611357889031576335633559406428118213282624413952054642837970545371672220606789611422045712377814458723096478733023752401446630002930867240527709862518091634737028041292450882404376784631502305961072653318548484764212423125341581173882810855482432665418836234118174503793466377688915839118542035997497879847202106946501898058645261344966472165702507252812954836998125262756892470018178389841655777024619001638426284676727041707402104428311626733499017372189259116234362263013227969990483034145991195659657679906674797869040157828779237838406058110761832685641561197761221762725420353565634809175716544906343024030119017693745812989664787250890837760887760005754622908075226392860441255281028495120909650762193549461757505937267741532457681885595788168212642269593721094620905985295961581623066603962064152337066907044033213527415848169742940348016280636121754880460168481671920564471913467729582198897388748160313076468127181830787790643467194526323386872454527957478758244215340807507813290814676300070964802892217067390126011719119447852799704687340681147214446845891559354016960403168752388852528092217789327331324876028788357225588187301805032776148289836608282977658167705385304896555566735347945555795544312929188894629597320827335362185820460816458378640457644959134009885073821520948441880345169375871834894127882056511851627632098180542713695628222460511091275934730307190688107968893248131570003902115263940693031920722638082102295313483878449892758917328057633328465896381322847700029707300483941363550494905979388439795657667213334098923519260476194432768155455963116355401223603677398642993400011306263649374218379662695702234968380234029140460915223935200573967416412506501313337454656149710429876284945752073504216302856884229334520555336030141284005263521462644721577851786895111638765333897079702278820176023802797908336573087940742635701196351436868403898450938015149741470441313835770974243318237372882103610126942678216595240982144852803960241619539506781914482630331968553828097843425108724519168327194571038736306122006355481977523531354309514077592176332411051860388317298584458401407690518478928651151241488107131960751135244798718549919562967744379063276880224034829274892585727013868415761043896554510790759203756811772972172193665666433826091536537370244705316333049395618414955137554957554133418930982009499680389508211949817098875165679535745951629589623153442504671509004809114279597810831096154164873486380312109085784204315019037691824554495437143968319084777941875604087186068774073956913648173337688734801007194358142618571417257835934952894629277335394993580614419111812018167499301874391551748388564226365395690135542161550089471406995214332207983397598627353560137873155397595372698808242946225692550024095895626844102212774538181053520981119737388254338584362506959853341136311991496851907688965198444944744401693630803779010101041552470092426540320969820599014418115295452035807507788795023617213757903683781111260494522934377083423642095444926226913853728570866323982271171122036723584108797639716345958542591149774230281767913247682877385080529828994976987039658819697760302317315635125940299560210124630602599172309838615464966308366845546489145976608661746573857368294889582484137057473129052775501328208949336574301475934779446653662739153784914891020144047345650901027565512821901859554967364168222528140308640084332046925393181592973513247811939267766261861328219356502103071423710249001999751899028374945817932837461948278320167871459650604098665097826435844678083228289403193071340518378551964737151693501877430586957403061463557850774698150150672727451067266271643890869265162994777080216308531506443140384557754997029987571255024169169894446834969469577570255746444403409015535122839381414520140938428808426590341695263354545886929066011927077820447772932577023400051650117025509793529033093938674137844143957444033603244361376141740094387614841313868480944180345024620599472622806365070695415762202916332713491974842347404644110682419786687253111659549180727050499598629501239788727712392016148443079840531066080970252354827814229354594976440426630551756864849688586419138141678455569507547092746747654890710979179308222188650833251124293861411801429486056148185052886464347645064213420699500141852519988964193684361595121816903127866348668306008505996024208701237719598157952029016828682468846180117826413839210178597980896363294264749556089021497811738786768529253916337517820967399415152064154561941125718571571008581218890616298117432914171748609297149875891317812573805329880826629625954838296464501563007293368033060034242213469361505953294162024238941116888765299219942611610943399686044291815036637840402764620197755415449236341048057841862573441399751063777030895119478738767796461786759613248997779062537314711913219341427862047407865138767352048833028527965319326561180935628173871203734758373455806845507069463384335202559265726778398318576760238327626098989718733693234582895203202718897647128847387240713211198508621497651455980427249907430007364325014032401175726361140627026547853417705528112952747978187809360667112305155394399256339508948032268636731386088354651864025475813256033322567616310800879436318696416328262474405215549327413263003328852898078535950481192281647149366399414018677521436421786056251493393253093553978992209684433837982580248686067700853558731633739129002299259044806438462038849904129412611456860179081571229516621363514753489816150949785133654844273183587894016624628549916649970752498454869499228513102325316320825977002957478997187451292947707057973076286385643805659105327833385002775165684090111071895904378495094185882382179796073006177372573102595931208380691512031420041933836214962215988196579499107330045215777396204798639967961994004452294763446855614392852949763320971849999730257992799505134327118456927346243514376715851978534908707062101741204555206342093857235978822247624639826395314050994192046836266498303431409691159540923296914441455070156847390067519862188507651000857899977052663031753810049713217156426471715182963968426991685013176232891052983443340403230639446801389748525234825603588360959572559188809996349037026229724933711482132209643349148270166701991263042409364551775749023092884669501412408836493492456940781251511361148034334905131263714525252452445920978741596774620243400314288164020154215357137898826008321606272483554499112873174312965284999390633954332717576859955676978212571383148218186067906119905373933310304154545083938246197783606539748158842395071660756097658943146715517869884376469364882217423432491871533650444910401765479282485890294012796402056342369585391072481815238880955017184611319076086958551825053084913615695094400909656019892119388687928950740968001607266815460494351710732789268659352246673472833276573302190302444318231403334351186936490243326572724264817488013287224314038024953634510336355019439561655266424203632825762242305156743814696706030278508891814837323216901729446327613479878938674101628200358366359856234841690950945549581683981321474432072073009017816848853217770626219880210427066975016333748578239019277648741882082220295605340897881511084611533166322760983143193787196540458677165478284798410444851742007849139051479682441669227301043703483269922899205732833433094219011101470915844476844633898804719171003726605544376349707393028852297610051506166223162441998628199085808797508075948225170853834377259723270265564704599970904271468607620327629500235262693870332825027507323650206119633868098895538495635875619858583450791926607998661454648696056712203988377453005791630164120428407279457855486956520019990225268819542285447555572116426780063109685820081940121317891355953119477931104804526452495815899208847277124024874982321962743085661172041094380404319339941786673556874060828159491418396600463531885616327562050215272136703212128042330052804871106448981050406493524808826977113284038735515630821324481460391435767472694209497493487740373056164362535731678293722237035796645697578367317112514999438899832931919356292012584345640315839628839622281928250655496411549692193757738908058387343983652662679917477343910378212804841848749661638943525749697604402172016729285387087909774210235034396542169141323400421129405166437786277612463759812475792388064955318506381665679536209470756335464760626805525871380716840818620587470460367357045392830089625260143273037229493355424456325211483158269255663161239720086125970288983956998010346196074851519976614799923067062605995656416443526140791680945816919932415301748134791190086855606865841321845843628661284018706905416972486012489584444913341046257630264371604760359110767652480656285627833712568982263081254488183090284070838270337913180545895214315943019097878335338853696226005201165442396035280854959383734368649446507206283787809699061533762314070517260512816763751779455291171087776287434476323001961776618622025802039549322239873283977801654804441273599925564525026668024068417827464932834715394852718173272936545186367090224152913671144979188969927548580088170285867944945321982465023655118203237656560243687967649512359291312002177614936561554975973559910485626815594126720332916698715940923277982556252098710792726283710240902539467882460064669390616852181690270231074164709368119151920526569557623718697767221669046393509160197263860088498069489279995690224509357429324187704492912210133670159328815656604241649397200916971153657017611213035037958395843213755695278761342074842654232641285733921145124548621517682083988047632474679275277698683482075061789473501264833322856499571586180379771450930760764669526925616630739970174118145434843588625328341334611089380604738724605137031248761779955966574994637813712164148352801180700186173696350439235578182252061299544252532164990736585834094595131169280125188162480951985976538550462145481244189168361620468390179627254398899303575012426353271599518168724633971333765932544494139322727479359809981941244836446196696544231934771960272812532882795589306819957650870317728344078457384565449342119514077453747994200279655976947212794657334695326318250813809661502292984545105771641761085727688544255431328081912086811479928021578508571113136766574881000799384554941149596374675993237073298791414594324430639293011124503287699207728472175107838244461399379268088070304872697239799811736796838743477184380290265338490857425005332708778780859854921819755452464021057414847177045445177851775280076848354356717231181099923507358815399458214638526069606099195120552095152753758124730411130315456194607621777572846574928778883818149913639134926856404905841522757246315411416640760240129411312531154444538923021548645620850586652736489026685379308017762885894156287189642176752303203854616876845197726797306054204587286775509051220328678489612338455304845476437188177073585050619499142891627326191642900781494352922650337925463343898088712351214954747600957612215456371858634429092471170068787501542485382091962842177409331467659943509597989237874713999295791672281166825278742329003182477599689743230500979309622451570454708874986950075730185903922422788670358198451698928971650050149144596944271685908792730044803705572878919746940831592796858940702546188899820550774022721720827036694237710605499727369520180741610111713155542591298424878535287235889028540011586816491864119887684213260299533240548911961222558375400395763120443323099232576918368611870670352015513464158342995434497481597686778350902139569051016790923929728427548418167498317909864150089462598597664349426945466175665547590572083486270626676752306225526740188789630454341550099259041354528172310380930362283261584400868473305453458057285315338596002786085783754942092007823288438958881561575145695426713400845815394119232708167662817311624628128612574992394076205737117670400297502896781025254158528300252074832572842664644683623696849086196689211133717917795529680129299017687357037443226334758970287211535737626340952656843959527838066136285798572325261881633565404592658961905661240125672917460070391040960106548474964885828387259797174569122027273032930126413194964366235947588026065123352802429531459983536326476817148272321315834993972013954159731258565867964946322258692057775019810923892139427389340416222203986688198035646001638357585387761731535864960518157188509420228610835233253144336934443557735019492678339005231855034156663006068538991542254394502442551486825980513111425693448426658968712413862695134184247779196744749499032660591878578067585934925549328867084293209278278653905339698499260189329836500027550407844501164933495723735868791064722634191497021688600867285867805758927428327994767429150509915975627750976929211250672341075199787537538971690609878745571367303942273433163453700134395094677393656900973846888261247146230434660749889365711212512622398348800194155462873884016415132442609264850610494687449397313706972451576536011752890323045384103026558490509607648193544488069782205168224476391798157189524219129481034809944233978602117390371193522104238106095982798162606991235718494464693200140498210894407267438751170994232303290552850290915876403913782478978537565547800947109506495649003100864207857572603399837226082875638259367599601404464527813987143132189771316027181335873816673156877422642414935865875621027978196367913599772903268176550207654099997779513297695323583624923274440250418744111191552947287505442297151738105983893674145226694566150607890804554227103689955118308877768519051420446585313028156805308841757419209972502782571592512527291887762835966141907811579866345914907995735914814580313104007578674741160160013041474860628157289786844173137435245325755414384768067517662952827820387344472804609972164660290063780540930768699860439708826816317288289472973852656239209356250437618516421063219141330159872685011415140736763293193095181241439054339825819434110203615755859848126137327841314438009536028178730370166676011064151058688241569260257056439549761391176188556265772230570512187762809115341310379522184093972315783674273573108774496259160772512938541418676658042400711335248018942663179884970609197678647470900390562885919926422062402922968644213687917211906142533224328850382878425784404518932175943712714330480101006860498483014706956514100552986616256786629125766572452445223288613482192136310486533315883522569942209888533079436392717224215306717369733775340276226140231244209922199992914589880809057157388646036223158524648555729285824286054785654383093969823061875357999518447321439908533381106033247711916495203608703760094306278010787099480575392144218380291334132742973280989168207283945186373835112683860287215588643660888414057898090641927406547804840204365035939848250615421315887644831619142981377077684330526392083113150021903272883563441166214451171862328754278566283552796609743665497997739861049819683337813545907005636336240048845377916064862409825312174491710542552439211369191075758550068182046330492926147462857833167374532242834457079963426350970469667151060505307489863147655593161863567467090440854228865365846050401537420305316487914827145855111451426531019375359139803225322267137991556737559555121879385741329345940666073764144034107830026360997683019936491088693884197266053867056141777019708126968212984313295553770293147465884302266155441543271797397293981088912058248142140825973378442224655877084817258767829692906170154422638328190108973680531144028158230510231809548250718017374021339646768889378085330539765472815906297022054936539104740416439198296424697256679431327952566044922485744920557984517869586526714054052037553178903323537111758795663626745922290511027979540970781136232944830411642772913568830449701300421250976661737389269860657977605466076024550084583944767244156446863528228476367418801390946899521900688323743945532837098248184379018073698612309099965843798296490142001167027005880945997989668221825554869202603748041403525530645000274433759739805775493114020479340443530937046802951846962806488443229934437463052566714198478072555987956840825426145225626469822290402842075654960786307508328385048528111035333821231675868007828813757172763726711769719648922584079605346014862227585018589662150787358478476422440789869905306252699311412674279814291704039704618836011151078389925191737020731896048903026748055193275950005407850010734985833229070169082541561429737747569522928565351630875112447689706568431214967012673383129969626632505219969618741361165302580186237205525404983294092257121560145478724230491096778577338871010558009905411751516065020929925066714845661698044466258286954128917580210535540710334053844574328564352714348397926833472542006385424224663182872877367905400765518695249286187027720695696057131541233713752409361885354570258058113814380563769497887700882853680296883267286634309035372392855163535809833080004893381003977052040673435351715837706593328714055295757700346381715947621952348091441782175881008916213678215337148489725920105413635742863099807987310367118130390591085946182702200792990270599003857937040003059551440937411884447270355806604776351964767461898567708925704426206370944389813834631914001563426215446653094921925708130164828876895355715215967118386521252673045548564881044488264594144806007389555399739739677648106192643567725094155609682080090296807723258105014994777342300176957898845033906786696375335421862951388332063733441637179219539669881836785301338876489007953720163703148872741870757694598362896261995800694785113938179476457889381183584519775182939256734581173360315641053840041379351688900087235842738355345297324732318568312629688829848697325869046166531264249239701259174388231710951099522026099779981935833731262025920023916267805333761699758149400666162280209764880779176608877687191045168366454030840079726040366464205126456124944950519122999881954036438010634987055765957847971210017873080320547151542521405646876482704060792430605836913427144035490939708543887705325543270525424669905797829721563846034467197490761407311654435864846688059249945495753171854114555494723242764276376352934602205392055822279507110210023421599102281046194645539059109734930308116101439040155036410875022947242904034623025264083265450862211670754044259885264964954963933132365148348832372033807971921443868984253801588098677018781110852679365662579619397746029523128852546306666134897461129886911976005954570237319431035237611014608732051736510415997153394798597844635950265450773011777513800644157626671740963512147238115412008624648258127665944701910057410245191717757041170560671962214870523387000632820852739526494890903500972796348528928905660636959108984694188623791531809327208000845001314034874213912345715806852019417029772881585767244519888213455368994238776562939666952030794127711989106573796273090135559262421679350915224769857779469693367531981290447443416084516190166395448943530277372907241204659388036181235221907426311582381942398169390864860285550294346265202940343582884255072361044694388015201414485004056318082508289260574972745139614437536746949731095113185680988838348557029048092065724100407992233106826558743410199917491949808890465838575875418717071293083783411488907390791686826811313161255103927265354481769154972579656269030687285959354495376797221122519276859539472047875669505141420178003051780015191433169925772651910452756641855530843593319588690786706908243051882251999908829150529935515781542659234709860087302325543039477825105330559326205592210956610341313073757378287629432817397502255326173758160626041139644758894795515481331879754769513712137206624025094352737710010986305164618730533939032923006043134021716491120685652679701925365705963222712698737453288050839125018184642416695158874704479499220455732084472040867515487454341096581829855492573007946914698278430004154510350638472575216409104560083672527719502734621008074186492836387062857111944995054988401156233941027233514812718230202672741760765680310092748114287782552019606657790428618642243514880588364361173823602025151622511622506579723395180712928735686542664854943101854006768170007073691129836514096538761381989776808466211849352977416664417113162384311363248625820439785951592285058244456732219900120245584470521540291810348119295372741885893756422269973350855563146945748654919906845013837003879778623326132815735392437921438336167469609555775123958181487609765927727939331838188417666282466193281865682471307710557240687788741972765672690526161373932864593490636844985560893691830384508921804220163995791810037793257870398870838538768154203657781509885223346170629291568436531392023334610777569076418684102569613887754477119335636045757917803214239741711793310027602696625295805748012580032058863789047778035828100370066405220487627548850055601449762090336227815658890419516382867375375750435578092105002134352554223177187084281172876112559114841703374321357597590068627099566484772029255327636333521391109780649243457256589023771221303552720406388240919148959272146709803503283237664321224202843042217454829655494719416432180912735662153397072017998653448368390792046261210561065199224051470623338635220458397345868837183586520356750364250163744535944943667060983318401496145219034986227772423964475501642834503748880617695730937403817409446145339692656050001225657188365203550717948813537388430785611610564382889000271176952269735865255679324305749219423606083416585903247464584816605713724701804116041276492554565513159387110886453486797023609835203839503965067618414718586816428469414002274843688888321105995064230609220360268240794100622212240320346526457183551879380706622958341429316030878471186611128794349129383169578472958521181703746396971508161801375954036989615524887668533896287420333281574458893112180466181248736583472293001202121240926633149767792497171687419359446973624002313157827037656675425837978746258975890939552092580060749206604224258831464242530528950306974113988886834829424651292444467714906547240053646287468721692348239983804960681954196198511162496870720133505949054976085097739359345099010417293020551998547176382905801814446683806782989234710617290794051395731014615027835170056276314423592847053411577912091978289334263410828920163335782927840465751638272514975868007670174621172744966363899660550079217809248343668576346428468708303967633205925149855924662139063802262407452274318261103035025795903240447104682044958614051413222086800152433767827316138973396183701763803292861201886887878956976233947144760679878906679859122420861653513505995730753159555010179100706347058919600225120092930891773054047313234226927449930104852769468595233487295995599722850217046804614651304853596925763240782627788944005987660476883081254705353887290761774420042258751347164486283051792889350866549550281917141737362400581078388789579804220704384557621744170672359432934297026909110044597575600112369017599955308326573039421206546455019156479011446631413181931387648121557314415719108772579764389948439997711723520884972936967180521053069319849426353575749577401293261741725839185145298942573252642361857468970020993062102854158531578958368619696795735461192212005527692118012099926598029730246661413791261975519972438132018435626219841789212440253080466730903550595681404332194065157729534166466517924338138405458750102697378811417694923465380631773220126489131429839014908998793115934753568638401850391419032305944675881551162980604635156160691199565550161624885271533364907605174841104540206238612348597212813950529932974294986463851277720108091069829376967303932175467711179782857325351244162435339142626297975377260411989244883086273109426455413502539738579625058128658032463675194895670535993997916312598614076148210123807411936075887626954449642255530509892544905014455218568995916268441677090249296313748934699875416916549228891944700590753869063608384769333159628448197929988586554421991585518250402680903935447369492711145940267354937554754052822603021674845592665215885965691802060025158394827892506633690929658182947956281854579175009336241321370478591302714125412325854356994868572916855869483841115597839513441296054989025686133614506824964105107901194539851896918650354299782229245025529899323660595493278237598347713137221435159698896399127675922772447612693582441826621612749871688710089937732782378640167097452034957618124938015633438819213275747720383245209413021219265316852897475739821756194918775667406243127475713646985573514609695832310754159473353050739220575737255081905167098853117526911910414953821780579898933693413003813891307600840314001565631420972054957058490824187870042478754820308148247951252233102006876328024253863180928077894766967010779196426488919579509410625223383260739805024755049689270929506456218775510507041285520483192861755665088573850501090039678426567599286896194987473378520722837440650525559934268552379646758637461974044933003250878490480232529012464863710651724760555092379294719381823824901173020599270046885602128171269202548370988797785283235600523961360216769344574921705210787077601793953914261298090492195177555283480831360594955686542400234773842251030947087837619409119790545078661765809286465528492289151130791055520074049113971114319123706480137908220814965494326503276297028541203929544331269767390719596636292412215246212341344574073534191012601446633056313170860852806915327557400867918397403817696148958479791511576896956166894245538853181599415373974233824239944777611733057285775409239040814007481550466383089814068403578323859262378112745278718556413055649169669697120302578818600784873875589552165522763927719548532369371691020697614966207149164169100555599916510155534692212163397532808896786659696905215302667913071058044316416305245043902843708132911266589365717531331207084047494942480105647987711256052434543634217745015966968507501008447187016184288844337201957637138137317628482834871730557425232864500676959744620176842731435700235994600479821465497592987164778098821009329660611439527440704272581011131171656952153352462571326568698245254765149520442169741575883082743918963786157986827170120609092728692758751211379050127956942204879391704099045253887416293672952590559496236543586557199458177250265172871610241333083710284662793741460257704575893976813282071088898680189636424618617273105174404861484153579033435019415430342514023321360309653868914675016754275715909064920545247970499215501964234208991173810383767122070759532447614488656600624456988772927871713260702361417551167144746100458949867583756326875785489969423955893282661337910609348678021477099409127165714980573228309031990605379316256554334765359656254692234537159750526037182956965573033828963227209212695888242385559375550631832800126862146763868857063434405316384724533052456366773560951488858690854223534467268605303504694186470567191868063474100635559550094629056728279011218699683091570399579950853659031457915540610432039341286149892686975854918023404809370661728451569007470750320814635671798014618853070602166207392814085022602381166434433244074123246650071716213675770701140593391558064212887323388023512219565617597011214219452743342658856586246994299107957126862752130862258173558387388849557642906745309575400798420721796859685194415819250620611121272997892167123411912205653284727620255153708448636994085198903306886361868450790971302292749335171918057842045993611171780801853456641677931676017805222080391742591082943155085081487662599947846490645221500652792790844738950512681189868538617171620832282697864476235197621843472409332503351052584056891236741524795679986752232138531011753189131738778486356395484298853202996570086428293337637480863477623742944902815754570046918735986876846425966230100024049509163377998854841556333900142234875230605363330427882016887228070987258165791778650713575041589156649493830506212959932230306430764940490107876909574986253925381003318968739686118859909232405623279140214036011393998316126250687722877494964380423729120609477407950449249709830544931445219030015570002627953609825347247674109906656896619970351251075428007728226121100639304449087834897413114103673039886188250590328571108029031665241830814703404021521153108997521761775032324617676111856990027118410321581527786011771980848141183435496278865012727502420371060175362994076297508883420790579658434798658227224753916601532183035889955340819037117840322297021431286362886219693723109920837306331334484128969442286410742020054346757388282543276020044279188167073900502890602156146531341431577489547566287480330708436613760380652946399652359322148089257362846549187210210907474207057252621632917457384767434613291409388925722815385460386884638516846746976827274366051852643210707127598211139161463528829451130971237190694718957864893709566541782440786528190653081398446591336261583575113232703529222734500595016903390660700071752008831689168792922398313236694345379975363089108457110324739678205162482602564182030713543164507116698580472612457783592604529621625700598797916990459705172064342435065461833634096912531151635487454073696897412128434097417321051116338341269462835822857110789214504923671861204505587473799303849659335337322905420809465654418836556716196578696668021725167743524050978191179884643562645561660631766373322695116595791023942660602930785010953631439855154830701151267921615458372794739228567034832924071139408986305436924391200726711986266457269235151337919584520877187485017854759483716473529409450654298007877335064495583090195180661525275958047054409532722175522561662957522293166364868211972879271999262794176495331619024366080000562509130019635039435297490625542064979762966295604435149787682812355819710514060562454329464578932121266650918544095888017953939508555913138646026322241174197597042594056113889914172713643045253566352301163479490347126210327921606145605047812596245537866508573196417817001374236700844365231934819999395459514351505350679438494494943929484555013448004745145880378539203049699496143418001498526789132015361592827412036036437106248130062597835132325161106007471448384932231078814451078049657954050930838556033368650016727547993686133417542867137488125751347965871557558445435706706451206610755575654039295343011417909301779316788694271420779628478671488341560947176188434818304549431909903058586751727778885568009485417123126228135527464428801863543645289727694393433455543375990056536589867107206450575190128155540714317148576480731081339948384959775878243137271115005926441920326912853743182462287039487744480579191954929777321320986845041267054836858934632023169555131709383651519074311453791744146309611792830834541094629949366528387080822072324003877809529809080829184065096489551710544483960787163563923183574515949056066497904824328793738523168210482482518868609229991433439520930935041606440471738335349134396978493029700587270910097878314668098166606593345265545406470940057473358643563832340818008425783592006481761622435751507233773193093263431075369585488262431456074807679810867840962395064746267184379610713386408542080264406196185262170595516181088450246617002504777357103938809061764963097475204164055157190658461897263536146159029449977016514787850998637220634218767302315567503238375512014516374083007869914335237933571889090605066043806363715793687239595632395134994276411770775036702433369128442427512164535381926026268327344468458404996227433234588620954007026727295426625335883665384177549673233027954765593495125845131874739903985752630119665073397464036960125258391384609336561593526127459469091334882368982132236724238330235111842901793690975120479217157587114601954454766065766762389048415837371585559932972943868577641677534940516481506045975704159100128923306935823839102140192885030192451847866695885785796279905190555847655414281649370276102987509993726030440264053430283585917362122504834228919745730425046691361789946421239091762529817198142363905375326445740373875252048870284866420338235105316101838312950419800503643417165643804752157953177201038474049975581742296414070292842773223603500446978055246486309064304838511031805761620919373540290988107794009876216784421092346030522898789618084516344698093039262558511598835929337613429689557057061260195077829940765296166011086121290342233022255184243800596066658330019155300162799831273311554751158503046763184810907229627939709001603436229643233623047233214111947504865121177812737896497841411656120874830754737131712398420469614977082902343477465851214861690044404684511552016281276317123112303547117310941404310955794166249319744367433474162928757645199340559992757433176653488068535981623400247470542164070755542430177024670918273281675001513285872725992995177611407773316500193971249043120575385194565038860536371210639693636470123351540844037852307770487897692393748850320100097221281257715755739661915366141279899022429982870362385056348387245368181737124963153208884548952942131861456278836860286345825624819097224852384584348617217170896507869243549688985338640599204257653858768857169008826267785831681370910992045245976105913747448624195019627942829469591307004748818754135293875283203604172854104803578293762729868724956038431721144911095065494034892321636482349729829005596815892022464437886714450620144733358937285993953887834042323144408343744127291778317420045967165774671811251132227984320573360308780501938847740749528802829245437450388937967299467791355077337338769282144607448595166376120943471574978513891279102649497140117810428679171055215112845845440749363200099771821719837280498386944754173327810264685364655227629365263882305042417060957533771885721353481326981675286323484252801038746982810364961580699644760991472306920271194505170504596388743519755918311642478404159200936720251651821481926268793402286782827823302770794292843287616649903441341791179297102767155712374977179221914421946957344591013344155048567606354988915928003149771918005048023752806733740082258626685214744194891207436628113678558598319817990019413092588665171385907218879550051124011860766405523192710747867346821840043098661118792918586636537986685998906081815185027094037880232247243652071041182179707321069401966439275217257753258768873439598581372146127899559576352029823604298702833824091562912382535001187703099168602682977698090048560102004863363508809670611474406071004467402752136109065607163209744115459418848079781479706946465594415648026394600241762169563177249955812434324636383523323698435698208549843484037984528587089926164675169040168571717101304650168520440687912443309136265381549783808693297958846759428878193380030750875171778864086277941328430277157473725599682288728077005202854913302295955828414491858642783087146381721366337924235711181505722997496332860823319517537378870454114476528058501640479496162202728567533343218790945737261206284185321087682200216733599650042417398995176655273776207349082420916096764968287848078567671812404610597477854885339162396006395064343788795913998579065251040311056744740017907027565054150640756192160017502821459340957888701151499080313431593312118820727947569750146694900887951590224907206152112420185646233484647397112074923749276896509191934112939084067062924861910929953108043157924562132285095167684663289552229385385665055408698205290130064529116071455979528811950166823055852361094484726418126992544136650895589028598995111818985579709327150844356678792492564532238440727794065542778374831514790028585820287332501139890557604195621779957751690146150583953787408938035758105539014400548529738752303217784560936404196990580065446097131041104654279181857695033385304619967112169073750308969151109395488319265253423270971798887834533886378685822502309981082551513025642751903534634838708042922860956131370404805804522186081619009103963520613469330815007073429641074185304482194970222440621600540627243996183720988347631857066162756993681343664703260493907710105475942610887483984741824854905613857128973906213123824741469831679687880019281235944631630271786020412171538470799922855336953249958836623878990207682646614647765086389550425393150616388294165394248833039157950806453300163547726458494670354828227183833509483356667043128828752492347225204988808168888696769429934497756181840143873757023417331914903843391559857020469828385257756594250132084345554175700345608916658910104588568654826552180284647029257400474040466085508648558728820695807011136476917528515411638484929208232984311858536829970431900029617640231207547089294075056903846075420151762364958313605119679164712212819959801499386572454049060214640997198265792551679380865946188669734262087325246865813509191878788804506259432450052608036847272614915188423485379436203129530497777524823445248877811453885108775309022348715254932143653988409633118581653770050416427729450904810712799264018538090334648403327264747860888458262445133232622731378310169410019449649921099524978298078761157132773682651757282159452781832889965078068192581206552266127825877670620379582132944765372030020052777002468766992969344501775621234791744322687801174238704534048132498264923321335138430039792064044211989459115586154339493100154550584736602271128876893258962249656127618688541960671659072723692373736952425249279018133091802517641281188526050528785645631811612623938416309871603413071308067203681986788867770527892347559702673043995205431419466483489292063453813796416226323396427896655197826727382755023400855563598041768010738444491130958565710469304805918110947792976776957685462999252242568598356596042413343827685657103531575453871880587653892987546789746969763783278154710079186966965852301159630960105845363850975398690700130242688138990530566612581205263735074966494462245769412280004585137192440282319891589588691782592043542534751139231751396580936938472379333026465404521164484503443676348939481323614373710574358314908580991238643394801180432699719605505170211927307767009548872009393446291753179034254677315616309381858467428036674876554937647165866502425178653366855471047229567587373013906463561072471791438493355424321468673547098939356974234042765747635314962136125923223597401957854604132304154121441463281623096014808785678675397657429958378901553831863601067613817902538427736923617677730039176989496986089255210638343056294554841187382172302044721832468848710869242832216954171619160066593432042899686191539544976137828603641782761118594587815784110801088268150811084953756417705638832761317980098854962862653758262526301997282932806476555056622407835490549471201061474213441601165832293264015122786550130333846771838991660301577351570085185351265579846566172362187365043459730121743385299134297456977956558756404871431537559017559128918575674558931706613773726673134675446628638014499888491745164074757812597890882723119669350878753344765994417406084359778775607572961958025403245720820462114739665290338822708518075789530704454248874819829182213853625251289308721634060455796346268322827413608237747240962882930016116882603592164595075619209025017732527940201601801393397327506609264925083531662657485814336611247224420527327215605906831237852189332932988895700418457925477554807104888801631349446149481253881472867325778707922768675398660742151269180984401591104662711904710442573608483431551249188172383652999632874624966522227146309108118939322410004493919622842713623690676442544171608166094152097754236365972694577906123971436864736683448317572891140859619729979394186362938172385254286812646858908881489223511249774761521691392005132564196448069301724728423695131396263125086617659858996153612840300031679225394738657697357317864246829846301969428728652430064569207214251435096417899345639775871474708659822576675022773105150300120110841299340375181298868371598882451190562968638018782490505364705615806684031562058787418282777501827854816856820792495784356679309100942273612419255718795314187601272394415276194561654952166121147382125983509528342099165997498067873789105548491178723854029181797698190800425481586331368923309513392837542215489286993767552794815306229398981032570785103730610793017674845919498597126205807505714561585643033810773028061061259587412000936647397240603705774717226803574312943751139217665498257592599945933694467535631750423792483643175859105890983639068012287088091278524982098146996279030813654772765736267089529876353283120868421752381445024124741462285081496691127404373751855097281918189135365115385916837710565414096917744562088455119342556467082820796672438787621050900071036245885540504764075916876266810546849284685670659794628960488108592373804149783884422356487057986461731058855609966575515224961601605251706969219117175306554990629592187641471048748580280993846093105417788561499205393689552803070460476008317596038344431119833467906451452041649206242046643329334837207096000697912841250588920869590797861731029741318095676954927122206711637667308844274216474557809647309101938611649041895268652377233246715589789427346311756471093313466242240681045077709672899596221029485297736999180697711584031803743402155922313105264788291818419934928200380843383178102970746031583337929679248806107220374863914728183616928141237663835651611776717782254201675950245381329143780203053717109106876611516675459806447094197548946218850741952867630044569282834361873721379321714339887449136806686141985466753778238625571079748369801371707501511713282123122827654634679607561789445881779915742104464964763950248866944904637581296380001648079476487087654100759408093674612037945325686906850276017341512425582102911303735845054845085984665314700504874112722597319619285854466306679050052338910531003068241719842991591449551552060822792695633895670336954552798173211375604837642280287261477074936122309546647657285529750369044019304593733243669198467835485941150373156149784555447103802328263549874185419377255051357260262037559371556389904350064170317958007096234549058093194987600524621147551478584661994440346442050132583944205944122281485065641770141648471700635662541658084015783334002094773342286355568708907745862597726329775081027563415229277263662122657849975193162724296151598881828107422962336214930642931109367439976483541403044760922210919000567754439422655053902548053580821271402167567560587243339555912620805208951856414494942628105562554784937763386416864240717517605808150864262263563227703519353529800466457102157892241363037947831582520719266950726030706808510600893930193262917921733706531904235323104870813276782684549864340249531703338848918651440062518980929371782999010922698162979659295359966447448467728930501058573893393983185571441694254753731833512510691988034760410466169022504188664874617107634343487365280698313464505714280434241973214225546939360300443072486760268963996710802782325549196523667236899778157080915520419134458846020997347361379241756573103398204404638026078022549655699475436934670920441896225457265960747861002823823147981911096069040346325518937132393399015193924599634993377836923230082389504767356233399516075028443867583805621561247489321829674755129719997204143474262519301112640043203877071589516983316377921722733988777688747630070839364275420962134331178183705752899102897319217996347124560885768223965886089509424315004377870892354334922537122805489599143674201188699990940002763251708633223474269953891449328594484273458489215864128890490396612889824228203421874104515451242659064969232976695546291795324101696322187440507793743523860960204765894053744115735334294892156460374721102469305547067747855805818490186966580605962646688473789079044051229075914377714267739668174557009601178789967650644525215384933967457694788486862988678624548329531933366473938644917904459525281484453721653483978031176546245316647112358861918238851613399210240159725064017967866405482824432497317796157098343096287396708462195959305878834227065162719135838784733283902644212339458739427393582873198025743638905838682505096530395522073296511266111860390197123285980521665204309853000119984438110775202040771180196424531673732040578339618023892464000839841908967253681563397889359565132279329087143301216024833836900624808617179150638299811348201678458963978311883506411614160845896837008058320460147188627336090782548849963280314810698450329029420927226547694907784461793276458516503730005665110670152350737791616779196361837558036520256717260357115036401196887519913188856616449310777034687682492936090557009983547380887131719295963945468644953127696836320347478012060510253703618901972320061968141184473619156204860739038098097280378692800724074171659867834399839600999975347582257502472974511272187960710642311646188599079347799067599530535592321971187928678897837443965373672497694886767958534229286333853109986392240006226795735800645356145733638674905418270914533021611159452185294345795184289803893498652278498693409887110032380717443666754623889042358995062211304324621947088540235110817697429158287137434763528128916813488681022030075054577128745923457593360367169734995755344560209041368102796863935687995930069854177941122416878474565869572901387678130078272913109935943327748562373846657561382082474717234287510115355823138739980669750599616798151658478777322091929452497900723931993086352529804774026718072827726451195223290252890086837356877800892820148185706058364219437623050806026185031228544429165350996748057580314373943617399934510252455482599124786661472334080116507649302085164741877216342741517054390283366510773816777744847969855914726381206003203970548341328916730459353311117941711817203219309722839663530066677975203523858808779249708319039990187243803040027188469844471902606357477098766170063302209008527165368713188838072590512650939859140236030625012612984712255873883423888078757918996069235375992196451318865606697348921854404519675208077070989126665443634248063310125521376579684990402836267485475299722899192875544562847443304070640146957434649542001627426035098012749172527704273255646006477133457248279119945637377299236573073815276637781231425574558013287925814693207958878574837471363620725592891435544842451379513311220398822951711242300662442326443083005205941558127775440395430123056823700812134964272143702657375967354085834474505513560947980396941234467211005602039805655165777508326342727728413035214274238013696765477627630302659952512296185942583882758350166999821511128237993118683046959560525325834637548518056273880817298825994547289806552302775786788815157097043975932500654391676858738397267608572766019930869484653273961408420435279644527569438718101553293008891288457500594930371333719139765533031970778783050973579310149826221801856971843031215793027780872388466833545809311299512392208795930361725119604091143229758473609202305474026669458570006907770928758829766101580773827213914462973213961046895197698670902939156857510530707698703312563861379820354254073771006034238141051630328469483436398807365215657273152961947362167451123546107580551631972980775214348934192473461629472303550785202294460097973462391425779554810060825302160722593424780609794334203431017691546401605499510838375222622749686682982986944522345836769212941908691138895082470543676497584562745844933833464894120694796341125849252722757520001471657756323959694812382380682016003636782481032878143236105290263722096947977639506155103754679276542744662010920539042896045838263789025021355180285229643224766530333887657403481742574937198930774351250543976528093658541087483228557122967226704139790103346269467988805889839317381133138236693592339178605963319053868401552259082605909302653290493483080827960811807675641434311046051485867530032428808430625658223354579377909880587978861895644256389906653074943635697604294803694214161118018669857627488262189355448749375034813999623866453859283392286575048977742105287092356144264553091713812286865279017822174192609407410086745176686656380017806020827491354050940382326842303677616327345862029477064729723282236561722418678260828243030077911148978870551635462650834792564050259592860268944951093753201569959666063378535131040343817025635064172678591796696236198017499056501182557443232597578910883883898469126227004404846572662108875105288454560423186440601547785868094299648419209350003015400236716169613839354464743353132438035216524785491380588021879669985218936735074596702326604389941581614785603352821187438521996699410902886022282682005797370900786251612150420007224295903397440990363084142071948901914505135956489912474620993550710732596020597695441836747575510736423896087464686710771130926596608981554653848326209724399303309842531565250329003020917373346378210350295508023587166339807814353098886206781835791839889419715529670128362615389431813750338457304165921427084363168900503087363305903991976996704301647770443425858499203946614805862098554904578348009672190526893312019051369241215615855709436634182848303182556103505457335401935728296397497495349487635398958139091599991381762404235862139660465478172551551005690977958460781567866367043188291454336953938448813279315769525777096565714049433889081094024838205420792779536961088033555431901042416904108596690303966971197130888950412540356172696632819456442013100539215098765504364263551596548637082457978590900897766599695144134169718740704537176189871270921512519391688570073487204551291935918181686336147065692527757484626778651256925543069800817518074237739811345608006827512086640690349461871999330383630129832473906510599690464377905051250803836769887299168488760858392259531684406821009398573291677183032929248640504835918007544186523286179333344099458000923702591793743662697189911157765090441447961336962025643038525237449706301806144616633730722808501789795670108509246727522559738459614413208472432557360572027817574717566587088012028618160189985360119853919115949898306095591362344374306535491282445033109731016309216806004192282743794010921053223724016190272758452436939163706864340841416126213080426001637262224101415500877176697204122002255856900612925049596941196440724756194087922017011376785366118909288202879742580730666726234848094815128147111632921224896960941744352944967248620135299158673332199138165592486224445104107330460429709781766067156782426163284137935476536940563376885501796385560656028760217092890225296215275046753446973723999191695639340388797471145615450353507595227712436130612803005735857799659484369973707427487536766039605949574712615977247282706020861368325304379900180288539118512855350436399802063670901529802162572824121661525219631451080451030336649716495504032430866091432898118560596731120037726356944200333305527881751844652905224335521890836958122851699820071616500078666236647531297322636341820702078690611685608065002176321999516438546981757027803354011998586706079318358375266895709772224858408744002722188753242168178859258655476778390690537341122729840272227720254527325362908041425561253938728038542594415705189994168015754075127279388962442520418875437888645398552358397867567548628788861315802774477394221014606559818424706949645574332093249309651961724969446924110458931400708568582370869732611433481298834862733484407990549244338552147933436675975378019641049780537730562334206482865196212555874433964122056474493280953216070315276697000778544327118665487124813654093656763860083597401288178385275985149794967447930949030952699924097439682004086806026512701774938008664727930020859162911478588312185603731527795212579296014164387011499157885220181840883497416644801048420456013455856701669948489905389100984293611862982367849183023965858506932722549420279020062383177498253015148440091945063803816434713695675335502214567194742519987411281827329737845623540546627358395672496482435974383635594618387428168471451536174747075719148251162174575092732875477328678123098343663883311004103921284610289486067421880419890288594754551916681854535550405000961202352304007924828145682206115755687843819332173443266137143239370897755260263246221423853703608226223554448185207371337666725584067389700394527001195708161799713062703737533614903005357382660409718834769579986413390399290313985136520263581707370356673701329835699849825974611907821238874213045381621995567058271819139688759782570599085179836551982704378817877787879410201998188245697453766383869858829292442549027717042885148813663348306658827134411582967115425093561218173658335067733042027621235387978487147531619899563143952044930140739056420421500485591945431380273840392184612490113213089572241746388500014282809307917746756005808806810957983217492672617209486888797890205314915060871544180499533188667174697521187979363946376178466205680146393408536174022292243257971372930938171389995693741956115686211773582115590581039521791356669801066691135977423805278099100301089719225046182851904627563178005307197242843901024957865093306637104842474337533071998652863067758895607307221701077551055817796988800202094963385360136674129278787921417106743572923472806562059485779894594092711757951906543434698688985872406024229581478157527802012957300681955293248413991988027989218160671913659983876516607769546626353776740164559814127382441100093119211451301976199958536563660811076070554962900467172216005537329181043232451591981855553272922769636021068217675845651508428486483055089884607688162151505783285223763967227402432778140656482388485485607239070291571594784268237259583477205276980726555299035530510458627226156095383090460744256954468772739111452366717754692192603659397738563541589308069937608137021861241229508226857131680426597126893423030078216736143643193461365915919631783696225624975764133041588231159722836929312142158562488307763900386987827122274905152432916484915487971451900276446052213962874351300407580152732964781439171978599817860643507701069494730719117270890886627615206005117921139684091983165774548842428130243922432268891842828099077280955184527558796216489122222287492982708602016416955582633319858450870309548705298665332808706162144264418118267901920048367544474524102359611797595369437733669635482228897362955335908386625386216990286944877163721547119270156690656199368761561867842268754789618431082700505033278078854924043000072618635957313677247973767012957175148120148897053679626581347731183744145504957995981975277027513434380113442517725098763051985097548870542665560239300870588964909124756486807802562843307413573509568031051197685517374123991756896335411812548273531963228391883646833183429567565972740321780451581851448484711482183515522729044200830961081650910692902579865082024391835563271723481378233767994089268143557054840814818515443038243239779009374395179462230952099778660587700357100431632332784478853585572917329116899653403865460489450181446538872136226281700736684040844909000982759060780729443714378948298604741343872080679296689727693390802346341546421067717540115466424218686350048002149601479467767489669749272269370623085985475054834375467019136375173339881566942253403361408777495946295266824735471186881587705842836542785685890822373065878101774415708285393264737316274772818196598836156534503416045205787043714412948406090036337374824883426541081516307637794515712398541900300126675080981303081410068931995149200761691062659383656752453795445321256403817105094387705161953316946590448312246235677882356704123701777532318299810616944600475237594434576340778455156375787759514314153255992075948080393988967160399860164719995962481001966582448846177047366701035083841410172427623929664462763288469321858107417524905288499652764452813763471982118765093347477003967233568460599569422659117767609761452466143318885460189415055913358611900607772461815183985501419827724132193007703563957624075869178613404211739142763747426817693037009554991067107300997778297607304133434719623640774777999610759439862790708569390904092397071679743783030081876475769211782344483763268425718699038899881692241166233342829100184604330342311352265930235865831948231356982315550388693449283183434078847834500778873289293300564010378812261762432919373601749351281063871189251741403141238385831259027305974015204593490171505785179603550695384242454970823837770711537159509244749143387853054770231142374648785838628255520038955991926872572411946233801455094379469397901253999925046311749464436491320324176740942696993005030057232017317104770768862106702851294987517755218612599814111651120772314291837608994928053003775460148169688766600503395250436976801585711637912519260257294452331907833377198276154117681638502863536078534526408136335461385451206303765706574325685003004164693968346628291335693728981828561760672937163941057682227948326626311920760355113485688139118548638948782293821015825722237065997807629707726223510865914790561002778085569564068400818042006174919185370211628851257280892458805921829132342272928325102029979759648473733281863302548475724225478023398849189847395390514337908174159699059813851452033396218780594260737078489911492677125467311505189656508835253565765183785109832677267589117069593989044212873701142554873052750790307753142626175524307554199651551597294385565270799783867846820494326945771625110866019173625883054558186223528914689000362691262217017582564161575973085384836770172106752746734668592770628726393436860547865105935640459860116781024354480841770782248810396533811523213690673907468840601169844964848408168468751586932416447373449141249143946499464537158367466638152448495866653870051243186668674235310575183666690602770153844067324917995690651163340192345915397462252014426666389821287863298333687157947104845868994049829601980881770424789515947340960215382706244545431982144554671817733390062456554042424632391106252998224060299573776968500141249825036831112632855339567398944048276348854337455797237688604733560906602742960970802729126541800622937024387332422687343873381418928809727102185403037870747993242715411676947690284129998046503145562222597732190151485142676876153921494951853201105835384972109504947389618326573761833525446971688545069792511300857965561269783873087135632913975605422557387725806564186699901383025013283682590954922168068757612965086845252019474966892211776875034143012040848624366604943114853140820524202036522550035910629894493951798824989879321603114040259342559519278899379473042864688151998105695761121669072426269182196983132019776278129826739021425368055440068558052385691624629978287830503044081880034207787884105289838290924264158957755123548737871826028682710521250628808454943686331844716476511607044959963849760556075344543369522737224546390835265179937066381933756079384571501167978356370766751412894578481466121240448255913224550803218880976991910143762165482078868045873329716097903533385467033280653551641576981116512911242200924162042788199342731741516813087434399887286222704221631818564726353327494746295159372149639830692579371982108544432339286358410302591164884734565510704899165294834219142194529010256788586655312714472458480749041833176307355628768763465774275980097131912352421898361342708264642824386705142914926697174867832674222326241373882647442332440462255325282368027270277590199085005652403339260652478947354612701245930216176134052684810891915889657650574826648785783637540340109588749908153995364724165793738130179521737460671511082863984674879729928700997916200017830138062020825627047013091285491372154776761099230867530641007544839633322445525615186120382468293599868329307875781499157555221271027303079521664184294646104893763532032722291670743568452444611907548552673218198663233408746127575352217881566434454407343709866084263166661711608275424862073566795306103789848845714937533989111753701284415641704064646612494680209992842760990087069356520518464093403112168801136229918715093667881100599564960861364080511696302294827964986342480571673377908715673349817924282211574196692481572509499781271688483467030846029446925365899034753787929081472729363201161436992046961765922658694099795426342303941463621344128285626399977045215839141737572841311858093268725123514856763291690004336539517938406055554674390195920128916865365340835070148179025421614552264840015420961888663296008214028390308205361305692662544800729792033848240796648601390329025022685488956942250040699040253631483039988664873695800654801764481728050847665223052834807756087391522634791543800763426338987144548007796677751782631572071130227176792142578978084318220152393077696989604078768111528869318129203771227890735522774475662819793614989836014411593020443986141200142140173662174869214069152369732325425190893800789282394895609255060468569820383944859437316656858157699481411883820561279866285077235232476344882872790712785203569751778117215823819160786044428663119849893095128837738364900468599260563494943848659703841287096644251329630343757179080230863501726987635403689456778265070037218360182988643648912371165381743460775276310814009161624946249554969473676272778668627592022124374893652179275680275173784549316878142811424861427638620802163879676708738931417127271053492607812319987249082972303439902436005006166208287004020316402404483273838387710118858733592385607883425916001516914287092889167185730851980949593226615076120890495229375009734740219665844803566572877940693535947913941618876781568737454346691138796354891705983524216700175945579847441892517337908857940934616511231838281861514453145439313122180528445299673468342572266944858524899794541894081002071634492629228196040011125001652449433876521812078976300905535848629292558429286665004546410101680761528479880669378945743253048083224485057205772839609880569889385162443423542705300693847642261634367023665907792897221613236625214386429484353651188722609279680012578973586000710238102120553730349956941348460086924281392266717848065798826945748233750342260700628152191468417836539597869531631398910250734234689472200692360953518202078087054006002072092860623504028407448918329020545627684190046804821879136634682647416525912242022220189525210340576952763801972675322630234830424854190638355068687945248276382120963871729572846357270321893900621590964536743659324050809358598419500570856534495264680631865787813434004783710192655387139299445705334075919416452796737494872598371482940805291735629618856173678127953321210146821245401480249622392299922298385865466177854659444157620637838559506138503352374720392080892847553058324067502456065797640300624639638319767815324167667305031909705449661104425978866673234153023825231621032129002971401098270830831641727031623266352009059696809398338243723622974522372732937129678478882422528884929252957169344591281188947734442045644343981985129033323772989910258409468442511366121815506265405386197017539890002844959644727442438368812365870471509230236226387705900566409924595016583474842364158059477403646681997516705333922026155867638657259863557407164469226118908208619086796737143531318022080607294095826882800416971897307891856079281948700631540216179078985836482151579101796896703103883749558511379045355675033002849498751003870066696326102873663610132340334481010173363223765321976323971629620620878655439800212386521007640440097047465489733849765387065569007962426712730447074483962809947380938285311760725085892446067218804320889044143306791633450350209670242009880027463966035870749803129009537346684101609082924665549221782317899176614712296683621321112622535879110318229281927630607889352342759355121112871885623996638527410437067784603554242483196502802373341331167777646682418273982977756370965246076604874808096468156765368171070864181409027317710648608828953168100500173112490458528805659192488255780637698739331478857002161018360859290053744137746914258690693095536678798528543796026937639092385710673939140623752604795535847457407162088717512805638078080670482384944153531156189200920477122027709407441268156817649336285819045931259232923732404942515319060509634261846426833163502243868359673506312825634882097369049402738750272000439869495583173554120637121264928972022644072423044431599176989441943206411524567942486851537158444478821254177246650772028427748248143854794994120900397931025777670615376879525749892821983836369780781131931702330689289536760265552541536076098253508773268230058173935284998194060331477101958040594030609858032570794977330476986347917004860506914137203015337534646394843574895941498078951998239937494014443247486575998244221419937616114417489015168216106045788992907653220188312034036480819412467761609133481896571366413189706402112714574879469507745918040718746322120665139849995534710491439663881086646838624605782405450377214895193134397829104832699439239148469917875617214619910999548380834694479606401703592491260925471311222211721899916046554355792563582394170233257773328323707697050042482672259080035064853878958901201833873684540450341755390186659184328168113001044170377501063747705703444689855942651440460474603779137442569561357769693064191011961828116490887459727381555410507511280346808392690148381367454298688921346725318926215209041086604470639401738057743829591922399055265744492839519785814577997305067236356257481929544637202212327499210430187547291343201944387728805939960902087795784939956086483194442874831458514239313527022011955226898614004111358809849177364731951415025768015480629886950797991565720229807159014406859415565005401994884514822127497053667135512187216952090246034254348993887428633163109617702121310939025459751368081115516625768539690450598240286556101256957094883099324379106057745331137000768528345394526059430319216852656189196766340613164222117868894404618718816328675359881249404794207199616087650510534055487198896365629860178883393580543470775609468875133704560398131873112574951313478439523246259857664449621823743427193986378094494437855884105978731840892182732110986291444685062349606934576261839896908632878330277380125290311847851826173493182699153893044096057549833312368644425722933456351900917262981605790418989060870839828986221261879636856966248822350562067805385426318338727948381480782636460074097845907118152082968250087070841144410958214326949783665643962986758860170081248826563019599473858865812189694608692293695507790238005365879498888058985175178564881640623896259688502013156625525982330657924629567721595903480432177792695204250214194889373743180847832813114592691593104564260266424690972744914241192617817112503360250710508147485841039389413794537134526844741008828698519525215560725349648519268312240392711802715502141599001490061995289449520737262952318416537509389994395656967213670727988809858773311481694047772413515343397881637788774410347338309579715962132810838234006080174445302615289992120113962076030382510067607444298398524271683327568036898367474877352935779336459766839292241504420396537118844732693477030160686521676566797544747077026599617988478344287277403466030663228804054887163897456520255071723370917090952938083572038782781164944578434445288992403176938251929932634600240362351695369090247428517594773044897801776494054724553330874599562226208600810307629316809012096807453951532559325568526298764517418843535550299464025475954699794884589812068892318108843337096291686709306361200138183680880328171654973878901691754811837612843250543863536071641052750712483194653603217511739819289272336187558857791235490107691620899727400204296629429804819664464661357638582654040015877908250585922177079356105860132692435407572363206180617052840350546625516013524560557684344947670551971178807588945433706267238198049633201514488287987748350510878331654315862707983314727307396705860862479334001671535781411982857225001297380709336329053070375807377799768473002291611160571962365606670910928210371715882736167513416221097132987567685619025311040506561464317910863119285422411818432660247001242233859868170851695568837068787157710362339362722411715240376559064582052794269113018487972362744656360467782192512064101531410830272430495983668401998768462102046351254683243048470449623688326664141342243160739427073065224650318288490826966962225164923573946864519523004336835423112890367712869286312685492021066569903390632748731418302511953625372744148796081023775686979725679714410657097830912662279131859840592077165674114355903985676377129397777354182503531452174153124185429821597911815928789930307661191294474430225281962857115412794541347367063810930150719113047076585819289428567423215613055326856711849637530111220371340066227175154130667836154253381880318434494583487501129717651220990406519606148533067182992872737954544950276412574302672816227178300261560206387399118882175081183661536116094591154436087535029820457007656454983564210913222152633153309173019020259626284134482160876071231832918422708523781210998001847037735616520532002193958937544753437848247642625319267452685644087979123937174863078788898618536670449861052954776333937959788324688907592977731262372977481569949508212881547949465594571100325164722183712884647829791501198783037693982831170934542615387060311349639904377540252702531383032098029113785688185025315694960101670776900667053516777186712539135867953769085430788955939707094465400662816961109937433021008981914664165304864529238266174477424965638339619438775156905951187058900234557427259458945837736948658967990723821630860415573661522211962027555597794399789041986243901741856783771798192049613862141179153734142561903987087824199950525120734245114596786791911780747638670180702788741635339587683308314110802543523443994201387865186001062087379141295546957469165812966003677722754574765692165593379247092784065976790266831300619276050638950261873934899777829484480995942357051241152071806266806534184041750955335916944484304360569507906018717613195486521474851709149823476605460437643033180321995228386653524229207153024028758207672265558958994404073252054359881717514402523663916646912243875408921478595403169127875707718835516659424277176030157023909078308903738362113590591860306076580784658209999432407406446661272007736587663063582732258399265849068419280699020991556841623782394851237677365887801185032771056555768367728588789039179283092118380168407592431103603170925747072527070824781562553352511459736396988960136805874103713148922610613560651222672622429839881498307542170030839861905963144769577779833679763546688573924355312718845434953562489863697853083169793451947442790151619011256426589306938458703211334586564597669447388366697895561728233269777116696495582443230698576570189759840612712750445951274988378510737519868001094794117009212939012690435792726920610226511614000536265446267231942163819028556648608255361604285157649765702972365393474147446504891490183712274384117860761831334677768623533055237150973662315538538570606013208939648245159875934897399650428302704042721111809053755899428760046872069089934475771680741175929333130512754758745022756585353477547891430813902864547403098015130111985863125816761650490995841498966414998772945661706821406799571779558857939748201489948513884163627661680641514418443273777997980514456478335951004652048507563973017370398975328465604233225955033661356988768258097335474607519564673705072365357064367212743866104268988150972016376153927882351052310429390553558268106486984757187368330981927281221645993034806661406629786772575616249289300065330961312540305301291788971765328989892634549208224937274055033451313854358444380932242728506649529171753998080116014360974737630053340594429869148357266305804980172996955493537584495853076803543051768024337646092097457921814414477750081745511993225247072598945373692792992295610223171009415803318174703546124540978018768230560843994021907001347166573541598649866282466609587431271915946004499512951473592749019962038624161793377907529780122367241509275120136378158159647725531428759153315179183427119238137881126435857897560011989664890985380527268127097721233773122263563586267441698835492477502679474632823718500882531241388354120366535601076823709698253076489365736265315278837477624358273786722104382187678760857274690525935091910555748896952887993378990482522309801348016845060785819192764412747407078945839885526700233180697740922267931491174272070254682432832706254014554790255032945939114807612153029026649957085617236372303980420908885420118432616483585296641181514428452884859509791754896940533519021952768377962470288992508348535091747103856850740712728664919050118913821859295296153475924686702544201292398055426609595546462038485614695006880651452407908945250993264233992053281096393210535932549581043579131848728775650444804124951709677906539367519115394691056191460883391743826238912789340750209383037786765767205296222208048349360275175050842709546018455328693244331529259382026314746720937827933736092525177968046890180047329822967610313137670473933126039550731077415808474568114861788808105686805130175959674670450910204682758564753676364667150559620887572697807879862695909134804357374855374153436781244031483838741655121195313754656153103834434920663130888351612461065702166824244680671225912535259221984011609332153613925734391701823455875275032242203184467593766758005965403593531105824730915648845820778389050841036228320159532973577895227659941561229348025484362331995380197874160935686862741196701193828065554282820407932722586485272452048185301031975481392309112196638202154784423894123370139652736472100541417213080579432705761690678626026663663892070738742953586724671396133085211570854537433221456243990616910701421400067350204532704532220669733010584644045000674924195648378941184638276481104594581274273948495187170221175348005847859747706687358342180301082889743957128657631014763964950748303589207290716777464297458054308821299999263091927577969427450860474986806954078429663592132906603844733672931131950266037351151915035550270954637352663620049228857872748883422097629964922891120387538801768336758782405665874442941566978774588306265052212261660679973311674128516089707163429290390425702743377121774428377745778785127495683332028620298021714252987197424755756988867274053636649169345372142186723833462606968243861976731922378487691233518386200233835710565965915885280427061806120805420633699194283873251773010493549937050409437855099015935450414138483053383102158468422838645682808430080953512640136585007045080755169747949733671216964236908100853319619064106325738730255789439104757238483633541036806112813168163387742420615116178238458798720552274492818431732968553474735285999066238665102549551173553612183437964607485790175469119316550124589162254026518592700220970691894555799660153013067811876007427663653852766234516898227183419173727216185221814960462916972297329764456292729919730885749491847323154002402937950435535784676915297229342399315910968723899265682528756190169325359878975822292075302061484381920045014163915599968101512653641051468103854784780407854842670870050522906662662261683720618017858779840116708108641362593128741253984288073635705036250459694049760841491629232644440110189340718568550577650587045741025847531522768823940734938499673577309457372685508817540739064004741849555626131893867804118990816544151232856904866965981389760506986970678939589326574105979044936138881377168320577403499826507079105882838732866086593477654879890832996234082321349045745662799016507676950903326360500360207757196805514012932936262525440885955623869192954054117520788421760334363172716470317740859416500864454090654183882062597783271052127404006930354588305179892668532566087336707214610622912441136397152104450784061107227557088614726033608922880369572851354236201689543930338608944401599811583916623510786852092861468495065737703988218362868313056655787380547442712422055964325096369458181536917553981765277936412154906079633202919591352570209832802496977193843291011199907150615628590703536617552528250666562230472799511739349817926692091870187402725242862209695302476697285438613539813917145816957929545204773183582423578134072263793251234030868163868172779953264373904583151434824213774857157587517117412008416900213800859136163454998402963173833733302862096673328305413123115326647209334657878895532482900906209732469403807258621197510099895913650510805682980648538582438104424034062333607231783997936337529837082640006674479396466042926892886808827906360035228600605364363341302540286761479745352927650171507242406961966732328058776600917557545437945923042018569311190808239354291135214607961078881606800002379161196544276915742064206663722373812203517702837033700598050579399771392974208762056036455479089814293308820164642191120302570301677293282709204181551363074659232062892264864437200352300084435047982631632458697771153527295321948706169602019615828825724018181041931968471259013678665964636427163905333906517445251752449894981973160900585853201282959250958231953365458528592979363225726726999567277548619494189179534908509847848185155754666933975298002723486979245356907354261309837041624734417805653510634536948893025560996292347928298302189495920440348060458015596477227036829911986241022009161353856172309161772623087188177183545920444798196069815603950111410021282907680070411246702896820654384458055716093380592326072491946605146252723161361974352720094485137109033297589804053399328431116143226486122713785604492105123361618714902375363124966364429221959497841531791958264824360839123067845466937268045574004862625558782394046224135592268195438929817043528226287681866464673455541183860442805367494162589836273838444163485972311549410229703603598954095047111885981625446735993027408844173367473895496810648544216345035181610847432677003868735064704793954454823228034181117100950906684520519365528480300334561928573291340731219541792982104509390476532148361756280238888597691267121287254031300169490037440892293339151970793587387066954294947684270601550353141685117715287041322160662669568797913360683178266388205442055387906175187527004285171678093407865359766302646084330785704720952683835999078654449023057680000152641093171968642970913596673533834719920850407944290194824430453464955164268948898281473579737099081178679099684136819726450530387470234952390732827644656408231549561563346790478862019141151581963571980245053456664663012663594061642589766233434468042895276479364688144395050577901818266695941158274621276016880788760579038099481940308904402337508937687158117719718727793610339531277771570615925045308324961378179911429402503145597003592722878642544816282869781590665155110149166994071989682428860123020549108953685528420456708191672947371701297003733089692148163451326742459187777692085706173940454109369344711957512060373785387238517181245086921689539554482604978073595964849657293294155669014099957419165501594936201090437982055472419989759036200619234225565653390972762934113492045595697064309185754971466406433035344830231739668459732071138324723240410695793379255543083177281651252981025279689021265113574997790254607739904136018939492680338727097884210046445712132033269540089989497742645367667587778528695969363018012804323255420414461708824905574814916139405042410777728181741685293139040053657541996314332213726590235297619450497678132139781015168503178395325417175394655825068892674180104128337546943765278550494571009421429736237191304706805064243102300033217932603768327567800033772744765382501403858201966913708273653777298843600610855397617212255005406164572746941764021206945520051644031988577343097687678139509896141659832380170718558224820831452217832582506456930269095557288177584435443045133370807676178906583951169130307297163235510991698239022933986328477669743295125909747271246118766943706352954691991850361729571627223245799003439780015942436630167936058683059245807158965148588080772311982075259882212078248653902056316889330347159216636771201513093631154399689679463777379793194839412329122482114321769667839198374209697331844992600772001555992329866818655335084198867454798305070005544266436721853747422028220436600850422082192499452860966823570549368532063020538736860815717060363807149680647905623500014596418816998583777571118592864180375504521231571256640684862298799598988669468469217966718041784933285556242742805436114994644504624245493441024391277787025990701012153156902419580010031008643752367511932161225390718471437568355082365318248934977837011155805141923544307477580903457019496051408298137095394560099542412123606614142039961367641885372004999232443922879937627189451351956596302026229729696788294573656769710818744672017269882279983787079478866063529022434997551800148640990973297181509309659748482708116830173323164874874523940914710262877300058958390225010542015247809331899218583205546305353437946881399013250383359989016446188278558621829900033945560580215160855210563969578517879661094469517786078650940940514962851363824410471340331332104507797065573575320846334484044946753137869278624950210524098078961698085376658811189745518070025332396226823192046207071575446190270341838534339690127386226236583441693642830628321629189226111033913258530183885288058823183728275689078595729497804964865785376936461833536200770771498541755832963774010972440876442657737748709852674744043116346556305732713782843656137305473808920256697100126870756271859514547674774992993445160183039279403387661578520757372210550556087155508261173799565877718211318994161853077649492461481494343883658139814869783672199497350441152934813244004036207149610286816197050675969630901186495675942526890547285115505461916113826900515657022476616536109843859494078407824708102092349735594729063838787036788667196617961681600420151221584425704022500572562312791623692249772897149436193192803068237649646274074083725790812668120993346832594957968452019758732354317231458318900278315621684261974355624468238569540836671865811988406918412455988132243779111868667097322142797679566259295099963305583406816443419843537329354963325803032095572443758280769882646338375418929862140757672265091385587743820618277197815858382618175258615935607039636217284577679017090876318226863972666594108476575228297636659927264785984136634602631751360944627245564482019067501840336184588496474630152797703288735787910723913961168724832718722088657199183044422507948207151373916462929894165858306523888783846713216564672338111407654343406722542082274484954573383589452522014735395237239747908912102243051550657155041998155967890850583273470050614194135550656963290519877824935916419832668571976478721147372235721104813698886794576447127616172967646943738593038870071323146770891782916868696219775405509107547901739897848147764635468146706316891185137324506671531335353889892930845003040047302405060869567791419080011107519336397534922638597272534172061581836443206256490813290433871222053381867473512846038122580777763763034439152304128618344293333090879160488816698393368771115129388608485766500195039499380522071103097186212346171594118746487516937069020415562599216136020566312038451583519845896920235008249416915682873068925853769823557805781380695477731583447386618251574463253030632626892890676271729553145536547001326145616308809568217005234377432384054752734001169899110621845580536196139763046267963990978177469793455860086066333131591767437503571323048746252373947307719338129694783315659493859788001349093408179309950694485365038918414337472385603972997874437671942347812621146416927095306215047460937907211111692826587762964695079261403338490804829154290633517161343457662189485054428567630520332024975256535189596014263691640883116055449112053541308034523961870184766624544100639275118979004248490548201607796981258987958720443010295335075568759525251517123634314918786498299486389948738641751457337722238566272099951529490978733045831532205972160298922752129356038620508639519335359361134444227395839862138618800967323980447200573070298784374092893352500792005631738157357724448836794658835222252721189892319981083608786790476303675900616504185072864567168502371096031481538882431812440851358333019930315167271320011900760305692348766873615934515882079464888431503937788531106463976426131058139657805580631995174056477363413834124319912118386374041795791417040707554489004207114553634719722815962673518801467354911633057511645417723228877748489169217643423309903266206738095113793683470609372923520330410129358666563122472663316603749831121617087611087644673039333124611552392803473262715676826076417122006286659507920477742646635012745965091557191602019393935000581475956104377833297550607338576462130423661778664882614095196476585728808894934713037781966723641093347443023009407280435651649853656575178317170762563686738826973620679121462262001791017537816055240825419800761218300946067947302438448191742400409049214066526580562292298510536839815859623396592037716163414277059855184972556263041027658726984044722216469136455436052426969045391200145596218728811936043756478962092243770134091134749262765011217154339214101823948828227180573697500565904023978408025968571472947747824697513945138316183341950852744746227582321886111595506427653505940233943808557637819467411631764904339970105393318139601311727115992534240197190649270062703004666669488230954239623616989600764417354056445565253208510510738090193521300337045405154617368905908183749932991043870408435664769563051731807019523027907534928405879823285714607052290453895952402591378605197284726605439724347798698835114671084612919872607393887701452643633703682551975258070129961577770338526212306123722763516273669670294810206057837596270202744082395742844053785666849852879368050992243702718385787474671772790679247872795733744954318820952802535891681949174692768635270150510006486961905500341222445419837650737082006562709784040859673047811968046865973789656689884078455983562721344296851069400297377532783227498049717231575829356464936960271479520393609860160541302076597322633119175480809747677987172552269258760074412375562440973125608945972785162942827501775125005042682268180631158996972666615567487998746287657888298517762640909291764614134284110362851299927423744914078605838519910678030075578491848696833911341825531106474031238416418804190419451441976507699085746333711442367456391511073552304812046693875944400312928772366553769252342648857464489350728056259291683015059994022022471392970539057889516347974216518264265185064247803631607994660716065159743678508852240124858142529874189334904313782323779542123783662572721550580405085994705646788530949594257172566850997880654796722359670631195074561455112569653282284017863080519202624396923526205708932745520833000659236450777409906217242100398606698101899110649287210568893232669926750107798765060183687281220137679089402108831432863087324756575575661174533907230259145355219905947511562277513365498192462803501999967818545973400823688039863728500634252379782576784886624114876520722673481773749830281884466301379224942587520741436780248453925666236605465193991389427772309489568406567262651971773988354106905357330700724068388725528630324201275865819337160972264006166411936793885856109317084455186584450903439163241127157271007845688235665061835495092068614177222444557395810441713910423854497313224592091709549152712649874856173023397799936229398135432304886309375257768003661699755016800898499775666006886710860172069400924924936488796263576170087036783468284810390815577561212527057728059591633028832198551642710849132098489467665382291922140998036265683782768884393118727952940468987147385000673042265121836462734797639911321195936097072960695905584654585211860932127482397305655585450725032348381106599888924020895886523920898666170172426196999218131872059163033706646648857937620923666627218484184080813222728986938004610978370452161480579133840979979482402870425083847097189585105159102323196668579624097353749274361956555807508800071460196455394730389885997693436030607253642896120032344853835748933766448236875322240744827252840547046727175706967478939740829559513623607042678380672605570655202198808430694430938869936190794863588863835188867460103584662501267755751234844632218175295551407994720373427115992744169861978916005587633618622673017643681647016508631821787165055838753684849430899252594858837960331653459224837077157614488552407489403115063096566160240588647283012873722149145879415857604508075529143130032409568517275406329975547696755548517222334833680224376152296851092769955999915801018638281106771756456001890792848697301091944933964099015965575746538003068567939436998563925766184740640320534370272888278506445590546902363595875836200392841192672274009938483216387663701055450163837388364829462497324860964653706620190388916643769239960860326918797027876548887553069524956151875159394713831038426134220063925294524495944912174661312427369530338583816962220012037378489921641685561686721504183229093287737052444282769535125781132381811085282620133589056777391141074904707157976484985504219900480587162336747883018128949963125352766514889027495012667254299120200901883409265296045375314375488078828432177499313133407447712288361364464925590282678271384413080308678678811417932185416237495226728657992614496598001837222895077794469671069133843677642628344388338711400791848041993105325803273111372761709925429229861430225509999186801610258394406371222972904625993725960992023984391862758270084584669361902392623185755734238912673249963369405431784232185002729534824029818744605107738234978018169012594206104324676948224512050790785088708817325352960372312365607177656455360619765796503571441949680531816145663225343592466852522006654133557742854694471497522941203532423888564250101923111659438520190848350954270860130655130665128807056353496194355916786263589791182376599167730276785519906353660627090048049467647857012692316978439886183483411486592067892433975807117203268592426758120555238512962880516606942770937186689092389008061434482752008432152693851115511626321112008773015654463544446957776489627110106553475214234763143358307670516531277812117443473874539412481450346506222011045711023868066201953493156203678462081463198124634445489370582080314677807152675026145201817973409625080588860154830273589521201736516328580772558763776011174515040937045700920206742773653207565039574181795222540402278624198409898476500869564892566484111132467505444582830636720255489031992433174371698876531152296759759835936403897997782925129604304078756236897993346512070143392768314589089829906751654056436586504148415565305094938786071394672101982913540200778158360700909022180946638591701798240127910450277090888166951170060736158385015364171355785261155126480057753459253613234126602654001040941392742419750093009273913814987183016788671764412864512673443187782113902244341449818603896270768904691506772055080478284448434037624851081724966143414081988984733984601636594745278411410027268498709479732554558728120607590066148722315530676682774829463523228444167719474738264235911506029754056196928359607328920478078712363931185434520867533752055901324896874680163428568303369271237643888851719449733985097388942622283702144746947849622032144717963407127277354126176637984383770871846178439519745107975218389544682735603539331873125567207362620679916468401820456418583052428402988344259269666083266495095889709985381867111809643488336999113109050990272956400540783846646415170332036814615590537266865488395923983231753594234656117696856200671705932542150470789839320769364140443432261473046968079676714214682586640504555040144156938771940834944419358179316775618286717718660552676799027536470722449914232571109201490743480852365290676151871257824307056319596738233561179650476150301930054272812821987418388834668402820867022297802843955268444006315013001687124583973494007275487251962823638983182972108245900189250337678607989294428903656481404347776936017078897127802346687748430862558381159499384304548805725728049573624506812933084242890451775246501407296620796011814500696329209306447449288380181201685360617833235518237984737807350164501232439503128240189422136319146442808193337897780074120053140183063523369180636900553708616861756722230757895698896893016901221653329332661483080430683863144235202537654724920010776655332130148862628046671543241352147696706014398981259451720431165562566619921776368774565792108358307518634831268387039619131617025639822372671982677684256653702024413466104195517852974916624213756568405949433798495198079968910192898292241351240301419701838676828911275071378289435591339590192562104796544983445489366167297546152630308399157490420000593096623847194173081818856538608942261162896363911595136186639085843651512313489686648084821747243304899449024291260122619732861959274492628891316435946963094229380666450633153688990564588898034646872329379689959503277934320129201816171286708457530450731554605554843700129584366120986307148480337440048126530424508981765353645618304160949142800339013887640204979173017183176699281683909039390079046817181381989573329455969323616135676322958208521447003373865033532785192461581510638062361285547101646847742456982832504633523060306519324258963810515125003727797789422707789054892409793183957621988111524797187908273224667491530624968991992357023011811636691079959573665258727048923518458480978473783290502505387709569009906968067353092131776147905725092437705387197295864738478404205822792385484521078360758424357926495447518587068376881434819787854106623107177488100232690923240195985716955373609292902088654733222486022782347912840431945301653347806804839634841112119007143788931167205438471894786403727126880561739536655408609822818597528070667839045602768048695500630446581068778034517271823053668001562984516010395599214387636154096855427159545796120669668616901110477986823554691243031734158642809434919681810292757685574174675821075908512170136966791263863604305137435894208330455535780224769495764447578538293943208025755401864525539292258714145608178076610563987227071676546791192860082681487928595961877127308319302291459429493017206839107544795442784782927495638915807454319614552410410476241236576899430396423047910276900149950139508195113063609400387309735496699823631000664480359958172001129046311816374160934772842263645759596282107133919477987358942021601580664568547064482906923954293781424223191557435080584899370195811560632847208216749512162267697261459498294772033890706541941822146135820489610717296978875052873444464389998184710970507490970345794270499297236220629973373909356452434127578660153881980293681340459763544091446776285474481320229420505620263863010822632888735908543666517657907524956908253546657880313968568996342979193960220480012165002756429450222054441651121657516150440570411680902299607680414273430317609995954100052856741240362168197012364892909550357667615740593637021121812006012998019789663945311018233564780391615059657205845254420255577415239462729243621886249429211422791141004113100674496302056832229585371619470930509722151284275924159084936205621057723183598387633330088902072855156317621352137209534777922738287669787247049515235579647380018315455278364645397625777307441571626886112833819746614784926668108539167223116528753467917766177530360503243168613633872188348797114155313953675262281012755195459250782709427377972509658261343714933644135133628942019555983614404855328392397691903891925270833009559028263134781849169553414745171864011001146723708622794179448824865120366794890352184465969292121886096561564441665565678358950843226670896693754541749017501438118441759249381279622464269231919522202220185724973689350469540529977169961729437227442797043270802023447146183131535033793029959879244143343277601266359613390234662706939762193905187483845644522955480546859551643320246274517414499532030116789605116529070183126710230024005132211238827549153935546123052462058446205332338914724670476643873886423518339797119118864052285721276551560141241355719648948812216441995225148816173731013922790727332278581809960774203907376254040107830363840911260114936988067866733847521115622791091869333779783038707285531063630559165708620632242755955909992605479882355418281985234567372762099935764029721334043956879390073425969566356563004865865936833823723974876505377225758396257617557165928639783018622783658612913275484873796382757294505439510276739249065992785659968407717139991781504274819112962271851835382463491681054596659360548611007800958313628653517468834217332459778391760248693431186440308894927110590600077299782675089196835117171425267299448635523852806545000273454343567749730757939447815625811438961284531012740141350166380445360205706559708067383531775412949685696619056971153297953232309397023991049943187865659911328056971104267823401457478186691269719802122300750087475443324464845520510629464214261066664447687879460926824178798494069805148568430572618797385574281061586170725912692810652640415276554630334960731678430283443974434622097658939953373951748815135714241453599232195314584422179379540447223480118593491567428528277626905836249815057565155007493461203453865373516424789324266191586403348902836505761606857360457677039709145103542363158365601056466435017787673516375534892264605317661007883752388264686769929437392388673489300278894139430567239059560342218703774101350416401220430215732903460964358679030523426483938039172284543579324802482784682736070488305842414910307636099910036054179351248360480475573788777115600171798380114716177793609877100157586993736744063168343650460880261021326659257149251539692887233552649525575871512828215242749900043283921899532105163614240607798187094098126572907303118813039189865588914577789174987359985410479432662951404241661514129611752764655700599376672087756107899899484622603555330550465704649673364270157623914001895932326865245329572824537928401914036756291573718242836580232712419863479046259305602068412138088555618973265525450828619107391969499062990798596596507900822069293906736864434327016870171461879412549404939734392604935163946827133013659457029254089156484771421882694215761583403803933779378804732222501828656350206683142407879958844857460492394410462823774210063183593941580780347128400199713913032980764182679689311144474262390938422234897958544452910500616602744759555441795958613675624013281344597239947372720533756407003312606004245528168147321028385373946799978148634053030640912136991332710502906044597408403054918044388312607976232460035604427119236414957980147471780524731946461522270664563877806896077968242188209213462828746249268155519926810884149678128490078019601626571626848660644814297165818727751818514639501927888493976243009856344617497228022260851978135553976155212052086197092180454861183315258563224289444498092505311634274904116829869918935944242999305027060945620595965085514433357344342224419711219136827964624698966608584345066004005144182984062219586583595466007654120696675561516852606337615685125592393199290468161610528379456997735218499531965107357352873999320728253648599545326251392238553140204609597392106754885627781786587096381318796678676515285898709222736403164605676458830243366967998214673159836469322815839211426990158900327251788729822299677469531600321258090736516067796686036409287330131456101850367084874822594349123230303000973434918568506983909572675797847168041376313246614727114103903228641071961928875343911685893368044254940749578946525078025716351548057469985673715668954681081138335059524884031011352571167223772880856463144919386199077621681424627885361630730231150359429809954967409718621333337367068821378797330734891678129007857383591203149154365781810150881247647291077229700017271023099356216567759504086044487621027527766333463186474021067977702836986094321757824729763852935262857141064812889251711954588280013150203605734533898351567439732471304662597757716157843987895815672683985138194810402374786868793863887224904373242180352686353692941571923563076457309092623066541246845579416235242727264525127713895314561955017642887061921197783916634325282495488534215457563918604255886478327327968943327680029699373654926459176205561799623447432030127474179512511862591913063990022859499342549748288146034844514399627918854889699167591751341553182501867738644174038864234655305746512233107045458429165798764495968633360665565388971241610905088043693243166928791846983414324507958859767979794761547715609954373585350440919513149344828386713502842734157735149828180579067918176031744986826970264325113815879484570228721194477064877679988874345668296266480160566912657211588548042584813315830684396467720254239709473744054373535640121129366790514514193410721361622072459993857898772251824507376012559666298301419126336702866472238651373603665605580402541649080731509064521478459764347035561100383660254144342961102129514374792582707968837588744860732555405923495627943804836992981518318781865213267824033762047194502758395641786987004932248266360296221360120742868755062406036306102921070623772564880958674816250258297027088482750472393033248856147880737172602272097860281974564081643357144857600829714735245292467900489341663728589452921377926496881145600292638628857665296106540469980226102998667988791100551258932758142666573111285347548134444712652077893956556791037200689586488509099758902094158451031834677829635994555740702902836529454063131819354126249145405839301530001326907185669082202088563838357513324551402326710594576104489194355559216440748360658163217188143224063885573650945279661722691083652288689212064508106519788801592787444443535324745728040323885036834320205773910423452376197778867987799276957420312711489053236488695882609356945087403551090565972761718710245108247993439817886819858572848065339508572217603049068496362700492899367800107862936923424365208169566242125753433181875955782151017944688267059936698078555021397952687619950462023390255384197952729875511673180418712684502864115531316492962040973428572254557440590013561007163810170245621785911841952319861651784466065273900515625314270274592844344130626616553335232225025688565532978818407863932349769272905958927624415070734684845258216342820169816064077238489838993271142308141284629886226594951214513263428414386599504965846407312112619738371178121004774439983414978209617866942536566485987792339656179132660516732277685201781405321607896668781896894815837344903657658285944335293858256868375785517151641274561887842171207852469226429563284726230473913298219239176909712614035594488561881736110507975540240593700712384440378474996042630926344898232244748503368555595703960943068990450554743951177207191405847689538407378391609984577726606213277696709409856931381419362514305845305040520123081443839970344323731636041551551453189943798401908307641896224466769039564772645025334358206594379210601102638624288603556502697571781555458637458743420966587334845805350861184813609114281150244670340702495848637568302466850339917235358128131341048459506317366876106881703149012999814527851312819033694465565324291072774264318709570046831814216076299242918680644793574177259819023523355438775900123093720811529012277401942855655850959907819177328118229385517075283701109233271074797949142289884802561920339818813361371789508573161201016106070665789159204829268238908812732761792197864260073073880530900259721547924658764267288795664377022904668855378003620607628553267495374694974901395009722462339526798628619304790134578286555405824506836410001856227579623018205626629100631877784915813155564733254616703159036947900368355084612737472658376397969121198291485415270248629960606933925263513903208922984799672539300927642005433712601977878613750009531771825770416839920952400428921936655280738361953092558233300593491342766181083730468238309508330669944072999208318605596833588334398116492000479553362734575203618055138925339377867719189758714317297261966110896867797031021153918316552712408732497478971602272017196676598607720763315111867481722555230194462174572387954257312579366131086997959726537635244803107677656411667672283176713852008325349195719537185654817101936089412078007567697901902988468484087990377776105146345032485929596266212402275700131368274281105847912873599312157459175345745278522872178580661547700750155110185136198246273074389409359562153399474684488571062193044898210174397526260059874937816067242591365846588407560346007542415465524358092252491290144272815541019494715020620196905110050760516610196327417475570822147867748178618461227970260130080225064698087420736496002228260239736289083566226004316614557845832171163873018239028753459232996118686099843048862273846954293014514045730212510511055558836243371723735006472484239076009426992153903201785725687504219864729254275346835825598987223751079169572451633332661818041820544017725459228198921762374487237765672405604192022849772919406615024940577962223147811108169377131874594331334652066286114462236213377385236504254877160061107645927670422179627307280605562685846764310896436841329955872426590900340318201111039971570833943946946545476289524270406686552872262664983396974951695666095937991642323441234055653415361366131163582487751250932380169569045040433885767275199883111808379107734829087160039927272281784196955323634587672291950204388316083599748923317501426611661867527755001951917377532003323011537903001872421347083679428990643952104618298451475444872686587331499568333121352648757505678346342708545071014597405658794703246683695633610180792324657218117335165171116873201892201537098085928140014716903050444984682583487968842194914022091717313617916032225474808108275162255243652275549909164371998838700850223326059392957283875785308600435182824323199369979937101568783636186379726908295406288282729450192447869509298073852549581043614088493442661313395997824681027885707666473640027444956858856437637121361495150805211556234446588710199708798070976969414080725325411158488244580460415380430762017517765207417544243073770629689865685812682817666583085326123776371682589738092113025678838859028270116835179949742223037215334090876199303701841772805442444696563152210275336551849090994781144076675164980308988684363573296231566676925488394667604201910899453957254562734100518983229994187469930820636271307364264973828989792762606021416238460144285891459199626163481411330432903628218504986500805768015491780888571406770151777131860851150858942657022937458896914873135594746011306545758677556849759347839013212821925925803488062894868030952826580552316225478201732774976353179262112467568754625492682479276914164267444558815736958787045144616758880505115468434638741073777547661692717522734302862209333298240550733415781707830926389677796747778579311069568344052177628207413977930485070681209929370319894294721171908905913441310174933705575731063415029247696430134772613476625722741007778883830871482672663008563812526971414972719872168627379062989511397904951271357664383757960216880275784313893459185363837305260922110419311905298686297579031461549677750893961202220705621128154362336758535883225961946878037055780362918712628458073168274481496606487662970768489630065688781359636232615323015245205344302212188366038057193081796786160237435981326223730675628848094121407375444597653552161623141485735686873034591057235976172022392326675222016711857737798419363603262076471432049428907562052145572707004662476730918787583922732863352941725596679930818528279006948048718285488299029006291075299834350291620131066021440154144977143652819488909334246901935495771237876128189989864772915609692580997322563995276678258965825811813933525326192098325304698137735548568264605121566484830097797323162544436558638426775608812482395421910719079168815411231430173735555194158291103203488205394587781491075974517306014501536650952092034018993682181531663804424496144059525429734334702431314169260007774016637948493446406097501527873476435474262997037624682374041109550549413264542702515744270039848508046594344179696611274493023196190372355946328301718385857463189165095042050582573808273180507396703927334102951732606379601245214421816379727654445060426397463034071985919865672055705826321631249291502685914316433348330425607502369555196926487024457856529540748699384473190673975450079781520359411880229435940168370189401989643166627400384489693716122293716341731664941364103666939418590739908348666999230133297022458371674302314208140415601187145730796946951967661477888091352004312488541794251778118947458943444329247292608960627932203955310143134043617764968948244264942323171925258681089055041905635333662818178690282353217399134548810060249411011092501412745802664890056270029080153450363411957043039143857926141315498395212284198098789810243041737244094958550881697386810685070042323566252106972031285286549161702155844591311987921035519680395638350122621938099128868952429926928429209616035500486566012304216956398588587287049362863722990327297731024985339453299551862308887689727692534883751954627124435160813089257360486989933259224602702141812412265563373349072458490826352560475038590749173476614566485269024508344439822713704521705646919501914128981717130168750657547015596620338455049889426645714245086040825264278089174508876359781080297189684253567326679043158856555538438919119492151642847706881889191103803498647320067297050739020017213300401134991419093439120150994401444167796572222586527420759196745282841622300540041953841755842439428346601497504539631797880997042747771611651035876579862944047880259094120461066431180197163864185699159449780031561807772020381855023869565823334717312773363394220655484887141542347074238962041118579600842262869698603233750581882442138616814920466136502120240953917986575311188243794663081646718108985303860800996176233925421889573911942027516978789953045248899296090923759350574322565186460956315929483717538291440923066398780530787745605678011881920935268843265474134005707368110165676483152980824288614180497363362574026279789503984203837893893257363846585215381281325795800759637642222031952919720673112002452396460032106634761582453577012708906720570891308261699684783806429396682913133695765548353771088652535894463992499432433340119255258608503548606327584071718509864297377006947047205791278151599083491159006890838707945544051128778120150140972200916395123768376792494270583438160678723622960878448602295593449265004948922183104240108491524232428434682371394281417546257257089414075792491449282640752032692948046794762634022336447015467240305958525065910009073954580915084001493589071478421281427064867934318336726589056609176993676231687545248729776934121261527368768509323297425117590992225698068555079285743892802941300003751014753650455146921247054754346482390038878931895598545216270514628579107960579776823257391885022923113660388743019148874149229330930294099431021459669094525233114779314446724070382258892310220621328915310553127495780340157107678932497878466666365994408040029779309608920074015503711888780455499170586005482590784446517878483255335548067006391187736501296175703537335368179826788740734995110488050257785697989820633116308159219642977961770869608857373349188083747028264575675333315619400274839535331567553968483482789741376943460632200203522316830238825946818940630286574573614910448477479819022491155542679962250337741057165534707313969824733440934683836311588881309624336648513472049031836286115382025775703674487895126263803694666730310650710326324023916705113375256599851332376571718433907572290773374654103679713872866385793916783472656928748874177255714618137052741103269324455883462989627761962912672311988550841977662873394316566073351389156806471282403812083476510317650338910001452827725497063463237324405033876592601747133113655912894560577286992937295959543103639087792212910602318496854031289487072931726667630332348724478575242435245629187070056925320365859019614144063089875860163186605879173132145545051585023519995709649008208617027397474330836004832988931811859219617066848509431633824236842133227916422458950704744056087572473463273972110472158203137060171933021571507381750857882640186938710502339081482524913789807379935000528435232900644138702616610095731383461239035016313193204236680836758027461529758155921648405006103456966122099492546723992768718817709708858446675803872268235458649940091482769487902179706633275631976124234940823628366863279909709430279402631597755907150881630822538445074591753415922606545693463891631782050390501408918928424897640729981281492556728252359935312820193790605291525976034131922853752816310127507987596378756061062213269828308281214816539472575903274212296167688878658308234619158954948013041830968764736947789337003921411996889220665973652902427409415335579105941320343296632825060963493163682263209383792079374072006768252077928917637892240200544111783378566286360047586844410514604766909992006312453844362256118265036360726253473398967340599106701129827569356598266423281960496538162454976825712714418781113654098705925263190605993424519827228235672168857116209765382192813004762078921366214240584566860724106590231629111925180400227600853323992611288076473363325821253911823069880417101742197780402351435988548664131536823382269020100008131559097811168013617333333365790481107313583069537572157683005117332089155317073245970399600885007392779235015049566244301206894324965659882477681787633010441208914866047246350910212344904391019045698724548796374930547013958012464183030782944296101667546718903767673135655975783452702639731230459560662666031184702390483877747232227541123549757843078378040572552235794401702942617039941311587886852148230651560613667585053021438324965800870301281084972562651780003104985710824208110430535616611762848208641894851530642043718621044968880540457356466621852390341505294007668492339787992024474714942668916527091343819346069912249861162246431175822767201363766822545614897871318356410097711557669201226373965912464443228420801225090070627765118136709245901465948451474942607909278506752799447624648038745256685866783363408745969642031015260235882701866940501822660297592005694706585433464887042510392187910418163976533553706759897914050622381323311488970174444290367512915927808652308281909383859733849714159867686586068000551494476427067992946881606416851241450207112710782210137698428416437751611018242095521724195592533035313057685433452459919935430794781454202786540454886209457019420226712802757191155474195389928732713981401622241909519245464018363601972425132297420645396461166031323729728940028861469414875487763165808821954160733577122816128434581935481989114036559255525583006331984234400369725252421220788185848881179006349597313813141082089558362402541300944871828557773586418953232903628838270396201046141914245600185040361370437743683675616394756407841727810940985580059275843253138058102792967754589467252165214828808015352587483161564827688641765828976692541543438099780976855363427133290839900576676935685690212039455360777908640687499804300100420374179229892326454031904085477270962443189756642599420726593045486297770101673274233032179884812070839511776763951325821140070827423485361207672547059286108962142518490269024097328474746621942594489901803933450216078944596250798333453491207210877511122278477561566144201856600270433732233951655397419746457161738788015576559842420349496102918425874832728655750732303581987445636735223469534403856391929515328066053690526627639907314775032428799758366909607729300365472971266282744067395904499597923003464314315992084447128374217872869068991388771526282477023650244078141508868730459661087172352314100346501621290105310199563200753475838618957166722457112902680003561955395644988801304687988457325035486447710825763207557173283590953779605279311911011869883310853290000920637237739875148751730368493701084669162634760766975142555066407352757457628557778220591747901799257952091684484182100949820541763852865588462880902837688225623678651043805968567338761574538186968129771684337496007485933975742785316277974939218431136886252616068938507928264663955085987620308667142688001612371208477621593597116212077262193314355335464146370770836917404161934265783134551913984034129839513060847270738344250372612544448657868100742207339552475572808840065348231916101696171630249030303183443506631477190264218861774780368551954206125867731208368909185392770613126835713134239213326798039876282232718270490747805624031822014641592766503688490789252644890727249948060378158948275508601055556171476293390969076008112282973226815927165366147927762981076651572784692671825538184324119268227903503100439923929618693629325485679598578751338329037662606115495474048615092983315709293244850289674396318286624176434412547023221354553543003332963347799518772987651370573208099512084339292939786884760283970179776100673365884414792234318821426803594258294027520210347678778330062527491587980633355038668055289649231472714182104521715202983058521912706769218610479817100249272045964978043593791406906859340007860625891226597524759349345621440738502663549658279429129820140995585244233084168935834854328405422880668423103057915396420515179949541474727276731802035824565165424058229611721443558296892492983948614111726258187941040539445219609295173132839390973532697576074956844490057999796902293345616679042729810135898401488460523102446497255672890839003018558049330335008894465755838417911873588792658295606639235290492312464313147884743830009659460885341218977900857971687840189885070942213718563104715482248726978665203898991064632645179681194361935783977069386708341947046326302934123728952001921942380184601125975167224771966078656407593016731370943226572190912339149007423796141857726757403884573442174979074969738859888147242068642630155934416435558989954452848036582925144994598008890708301944520563905951548777098338245067056849987236906482734819438225816603813518370143443401916052384227177632578968546258157569036808739766985252455323920174321139063934599992935447735282655337550370418352457192527496928151191604020028192316326499189199759159783184251059593904399631728903008034397705726937668901334029859218703778310989633026911836039181608339470302576690304955225372354745160254105360139596278930159641535405657967331689758419358070177278812988912697576923010540171654025695614031514625741051296033670023452118937428277782428063032237577757043318718649526756268514542816882700685947773598558197892664961032020333377499393557675455862640555370094310374756899244263076752001587130205181970669503139053890251312621538774755285943815909119505698210021999550114048597525059502702751564169508839235005803847150550443015113362391079713429028175936253006806413230595141722873141437403446717121537885020383993814331049548355593687649283867680491301196338253098355684201072171264413151078394612082877923346224255428968331340062546196172356366451577795428778229285306970861843821764044722925549755756526676464922565475217460137882578343745276133012361179644824042835691307975462581655290217036435653997511620726459324862827589680342379707519897528392121000343610868474598754902749105866599414982322643512561037308561168226308516217075754220014648164131136473399188469987291506386443128464610277010781231149427636477194310380613922841370023418475308047158897425644941081913929006662644596940356100069501537833675061656292371025093344685946414145403018153739847085670710137583677016306391752287718918182091523422007330697749611029232952855077058713435634416869733349817076069044782846141888639193613641617651310735471015052916108410128422971248434619496531228222255043778415847640490616671600544811382096777074934819810722345146172771006332936508119230444489425424321199952599275734071825061085761307054795365082940563296330071962383259731821626117351435095114639442810886409202083490426954222843436182279930353842252458525030265467655717554994413202487030982127885464457182532564812110207247612796554755622351209646916497546755027676094560368652949918316632255062979844065123151283156106598533538262423595341914615042062433294173463444798340547798042410613312518315933834022925746317591064960884458233017203915053901912765340976846390472444849474414244870304267646289879745018839346565154942184873207095918539069420674213661804344353558116571538151425574348925342344724244613289254524661055225638964223943248356149476816958875159753888325961526385104338999316257084746084139957625146190068473645775076886204351366065851298856685343426303747512271899852106837497834061665741088909824694672091763261629737353964047313264681432321275800901366609619497206334275798207023620718297354036845229178254045420125917272110188500436226245010686058468061547533008875205757075890825426097836367990458580686566327086520975497226475008111697687999278223130961779536401766195100253193692551851561317074544503244825223070624870187159557509551406905021454133839991593426338167037258082014831438459225767680362252735659613461739346776643920031953581840377614030299391729651866798468012512425273779360189376800233239794965804861457534506933372600302214401928527196575661722036198250099322325100721438311316978591974410181379346531630419416086152862002502757583190409962545260385870578937915868501414199446965811452859759744904926066624904049637122828764756853755197194007772565332102216157334019408850479958483384971700290703836061046386855445888407829305017007361777952639550333823865388459052138437458874923447226519666868743528739033698516668738306766469849278477174467880912246804297663218208538547876641326507978706436198577464768616870813649207872926821335833789875689061067823260031423821660547183714264649706055027908177553064069980191700869780644848917233178410542900000748207784836319545134618099234782563492878818578348142579628074268070880133444421581845290619782382295894613097782601781561209328243035636627330248985787398713361336126975424655415331447303806127419428251658128867007699833025795746587457643132968326894135731116614488835043919562681282816214168733287284807805962381931930762848605243635050809082420963867990927067488046672587355037012180949927975737181402841733557093359867342065211353924426077089846888858040174113208157884676243409909254079461581916931949312144836771183422767502354395831856719534451556872553322619069814854807795590700508270410649390519155222206380278213245584025809663767025556089630959723362180238963915066849160731742768602208515515530143081467942008166408423127693127923353502852012104333298519590262128614369535678123852786836617815144237317947045089814501504653862679791697901909569824256866513683760595281549596151271886720878406230965626216797461414951201016546020097666832203097094144921839400612863681636832370244569819454700510212916206047532780011463415707545388281245500111375583137357767569193054732443164919977502441901816195535657111426992573421436028269874576025937247894840723974252307361362935985121654713422003944105253698958885030298085203844105374424260804112235708684412337159179468097805232181104016595194318341042271938530441422584275557337366276514107855505850271388713430249028413880997548018261686188331885848255532355357968874014420842157134258854298356296395452270927317369562240392138494325917347577959653427299165650276199988639313150904307966399759323367089880819473267963466058730632093366404825691932628974196147726265708569769504502571776420841152693601686543678080150030154270630553795366901445233251453343057819442325769631046197301083090531738690671432036940903333831282780838900150169234886055492379262015973367040783669535756798278266896038880676685374899802197006866192464318095793452214752099224060219874151900111338850923395582542852085890778374943459667341645982880053598579008991005422567775149126013768509793669374824708518821853734971884766007624993501968359994264006355301139304622846854774977990539625806037902690147585899312998892868527860055829000875256076347643790732467941389825071344941689029076507391113189466167488293405108187120881316923306380273926546494895886613628944228519258034272095771764042928377486966607045062409535480906818307954703825472429006778681360667956721914223702478329635023347052465267292470120406343575585838827068643076911400168282065272075527348201226665827265775116124428689937847208566002045454816458309644140887024632073187040750832584195737289333801815163625124107016244123478477291129467255420337253187906968696723971026945615689192312404482567584212568575745440039361441135399943572192304228261997914783378350760205471549086422222885441323102161802916026542027420031794421767725008218952620705503769378377102191792014062755926233344302378340604988911507342805115672577327888877203679684656660541711596422129233724165248274855875080013714302418142504753989209908020103740459564063348424196251883235781138459423496181320585887847025839450729237482065600060718045947337434237860236516763789704633592151005844247849189232892334987648541174837906428599476184107649445755556543603841043178761878787882087462084974950424645287738271942550942994711479441489773530539140367191706449970022709038914178514125516640770500946238975364724750334247692722925293091815548008457227495925938844241184307437196441936877889422718205772773680852604257861005455901098776408726901451847549492411950364202095576081222508964751135126808686611469866233413401179133575390705186138129157711122939061198903791184818812188282174639022850692973253790630375284249591739810430649223432332632956914325853059567957524947037492942382222737582704139361039356425644354412931108495103702746801789280326745891191735573193949142959396817999913346938271645050060234622210479922296111907154933284615679783481868485476029940979206595814738939634580211621618651745003346062298292875397587841889093460665439011875477028619898010471647641452242331499762210186590493914826230821550362304429036045041129254921503111461805979928070039030982148208048030330204327588115449481785089107523964980423857295031985931612066505187631609668190138250338569286997147900700360569168056117132703954794670526130878654545083993778126356425259243602444834643891652933102336033661633869212256677048240971569755734949258250682097197952759765547439803579660609237972738392316966972288219582349275063737618862580449874034301284373438209481040739250369634521003473312529043833778982618591864924460831915318035286421814637109629047196697827922547747088187859674082615566878525609655177856971411339210858825210257855951401278376977360745290828369730223535040962349371271761210697873740591223105159298759122283032319461424929521914825170735454310313424785124515680204141333276318155085113782789421270771173616890056731486828167714490823225242442933260792071648737112742902000290166635334662583769140059910375415195748864792968434349381800668942262915732358292586262523478935509254584363461906148183406042121742793991497832426061485540337156652824259289971738201164829922290221979987820375068680049128088545438454060548754757670549501901211274954793126780022587104354178023814017750279252993019146768763811916181136398235603836464701391514360037107104200938174981054190074809227377478182789977188857956708310813868360763885396128035829230390250191786067183944772105306823246917533914003193515638360728932255012861791248569712108896333090703343135046600879132170798936769615435566751362748589906191368320198286038256558345045182651761594180182530599916648747213489522504763130206904733918173153087493120497581060331116632340338947953794472349362660079297263738298435568436620796460070844996327004987554255876767450344755525023974485698448340999404561061733121298811071696489981035475106342612205635110391954743962576896151503161600209102318830786961060997044643281475448116943554546529547436879163223462703936191341596559450920509192075148059377332572762916139836777295471575223707035890349840566105599764193886477686167822596490500868684033485809516362135244503291987522553124334024520035012559052087142236152461068077768141655724785991021022456495579064481302227674529229022995731006341109104427528738703662816347999158526639071674901539593201607868665497888412362630286767469254264584399618633201848948970463574661114360003315984828059446948368995493358741054983751107254058043309622016600029508690418927294095910373768604955979715776760080037723835572055553148844030248193649010616357585663593796316262143681657542716275633736737449407918590843945492883167884604918707167869722326609491729490946401689878464882989294448098317975548527419434470938760355378063826463104940314746210239564679503115765299948233328818020751204609239512933990808438416879564059808611917223522133744487473757438052025332068056568969071672815320403318018960358047572982968293666654321313903479813860278058336056368271980366702518241313963731085111874596716797030426353074195468477321860394542602686285023148611517354310929648386990459231034040430124092236876335059895437691988751361076836304617620347416778174131351165854122236601770882213226077153581067838193821402799491820275664436747450403138401235597594317299773315827025325433462562960230934553637754465640795898908552454298204546983453393512295551962370226341278300035328873470269946078139011545468605618549151609539232724498797917789230893387286089957443989051983467504400279600381024803641664666874374560107620559459012099620782170794730522504196823090081926860058476898135363392332756493054680236017514837848866333889672333179163539015073554741119294138441412139742180830384604587743696981129436544104306510198125049298888809943727599129342896961036971648504746101763897185404726153401262867250585540137678695942110765645480636877543987920555815789670409159737415091596233662472046422344549338972536433717643005956713939846252702134244885270173279890498378208496420255793693518569617914667341785588745460799007426601700620979598715072658932025684029728140744232976344362626213960430643261788692697144616587646877659262323451641729516015765790055199134540561391544650331077742621453165635803300642185975664646598618755169516622581149008462332441536584658996357159840782561216008857851573982733931951395689246872221751921501066113262618199247726719090419037105696311903930975985169703441563307503488490410287346459892650934599442538936947242134368753502762083142210173583067576035397439794721010248373635456805489694355419173973015312121368028130992545872249048697478725626409073897791974797639198805094450903702786637129330883986437278665519572608836631065139026129589156429011725757018810466912890700720481821932923161483980098535959162566344062866222236970131972589410762082533923060340989823508787636601581016712794203791421679380347993374607912391857931427868416111254331019575558963850752443875249685443278587316756841246623022714824959665727302038517221888613149811491337162533246390571256043071722008455498946647123493354414876542697091310327574905115180666413690031068051587330870271347455487424283994299591393788982488585526603012346921085636776546529137978779832461845391223396856258264463098861516959588536721779183938586644656236301799627122783969246141626042476593966308640173911020775612072322773691431920950129650539159783508734369464869557035140543873235167410931577402146366628972927171915894413093679257996876871107750991862359479651985360982325992938921261276771476469773248304884006143439403238438700465818229242597422183037462511170981220482582171609865842789852564765363328530367662183548741467828050999403004117578934730388276995885494958908421343409035670547509561115326278978654552896392399517643915863522649077369861103789366149693441803243257901423020198734682714632245728019325205133591899865507839585939220963160831347798501789508463499573774524585158312714964626673828736421861775741132784256753961646415124998387036303199953326320587110886195796622149439450783818823318423518714220697336433671834361571045391646649541208612816540807989108718390014549485902387413258327060630572875344763417567005272608121731135367762053086061539078831735885093584511382147768097629253657205947305604770183453516093718807293188553198881568710712109105754379344897382372316190944080955868227053574302512805733485207574339058205454120397541411531448787814370392234120669071010585483593105002485090428252865328436221826531862431865706000191898410293171791914516765657861455355976756878550174153312971827065597568557008651169634852322199104092700426811435029660842164719961521914666789289895918752630445629819476176519678861529699485369944608259182895147687306711938605732008857962948898607682637548352824209433989600321684621163542349380057869309988310433987061457197030687686890223347165008422858786334323865833301645673649233740823891632009251369684381987022485750970945899595993349380951717549625570586326933182854956737974333367228307689594027499873038900563232226170787960958334880402595575978437807966051622898956081648977074468681070577931190469988400944507612022864311040979701148405433269903244325720330737298785557438770924486602817549230961021362247493011023246033990198769185868303852939612193155026109387767031247456502426639537505844504803548952323337823684673671489622787981611244144433001501516041890106087587383979151254283165813744907894711335324317746381424547650689654117394780971398975824526494651008214218615490773388051463818504943698533328866028744685714286947763882908827704070527186359140928314555002856666885684154414315873039254635512886088512793972430704403512164592874113235496471803562777543845415177310020651755394151565966874241683538371128333922035392187352604750003669884817513438271928258109643084421957215537273682409228969273084755385567965534434092769673392690409819432041553743807157246684077206960831843972863585159380944956521669592451881777149068632740543077281003817087290374970172863158137264465879317859748010170418360584705018416304485143099257743074408747849552494383845097207554352132359091585777382632159243490676620048090691959690640222459924875420929856066120449276241493503445815634859737029226566661491301247938893915026781087694172651546728028761389552999543183326411819664716715948670695078635534080074505372569054942684542720053931670021051366932636293652861345898346644356643691122239362176191439174614021121474711441624772707379195953598195780830208827229712221080203521598072581252018022383363727449217927271130896077029373866183058987416744708839895674452212819735621564309902063741013364760049930357635848897848326106992537076537870447141924095048414023189603089842688205039009930683915558019336180456442017221138449985803347884482644867243494231309314700505037489783354821744699291630585165940031417631407337401590517967916174871557995600358198161265519910811756620257325002030551831964663899184251642648009873585421865138642034931077716373978207708039341290939338128362120882716818586838766106509763691891385776537923107071971803933344101033200119382240960222577818435146676957031820241151757479018321908208889068669921670912968926444716451128357093568213986484966822850161994913346698820145098343328330854043511389822178053701473663931493002640298756782929917934399055588018787336044547060669528611185651647488341715346220487357453973363270075224638987698653863003807707781581474474935694199371655513978973450103086574261619734712001616843443091616111108141669432993588660487108009551831850781621238469331255115546398959373162826591664251553789935391287173806934837153065106644560532476593600937676382702752356833204410816337044048746134734571434118835713196460364859761613003190143945119919559638105150999581195528109528851876141528979683255807515187935365968658312529984527222765425564764387558413431516110228993617095542320464314538779286134753253145167037474544006759512788858590789686763012301006630781625803791170220734042573360914158251824416972204998146279743947626195821322927337165530841083089829292774648572897626458888307565122565443504796949487951078482827435914448441727290488328600638174767720318850082645916954272384940900275466084586631793110403165725473941598521278642568082230727419179528039664003291910241949367918886416718499845671849630631117291738846722689271238870716899967885723491907145220528677551514462920100455971894800987816365912750576939181719483679920421520515954613656617159434887238429432849328301801962593315677123705375991439835249838863595251784595307057396004825701863150073820951050108041261969494959002334156916236704410899505850724569285452958881061775741496923409410432671046680597910772944620471434140256436328621013875694740651909818321906327632062250764479207699452503310405999131809184256341271316504638632373238192831175701016568477118458334023495082195553997558598870695259969594351212080214480082190347501721136866866781785642498010283423152294130566248743585239987113328604880585972392419551322521812497536739877887888652955719812031121308116392953702407632098485491438579982177847764319752117330155739678596703014731661736726424885820288886770693328291353848449635397927518818971483187425908212485478636627740217292756769100447726443603705078866809414681593292673758235715740828612294796468483362085247046098356476784652743024581636635188596761500248320327044629771226099134495077580973171254102074054526717327924496620475834457315297322815950199335795195130696238636787851606896147693067824971829740702643379929838727104492729064744285556810635992886800968946102374347290253289238326751256914157520960390243042628056012274959525433795686021857570693095547257928341865185257793354582286931548164920538533245607946317835841012286065670645108011188466142933177298411600813285151585057527765951515879526661415744868154740087206983968630140371861035312180157891425788822039137086751088490792121101140913250874633203454917391142653152104068778559676140717131031100212679695103410869462787035054896588959924993783261357986617643392397819497410421550691155448469613927582611129283128323284302116691243148169943036635629665346242609240221895216813580386876650758894505729069025921928495915423422638814175318175706886199452793244861839895542199614634661293221976893818461990900187393232879154505123710645036901387116535853097219807787555725634606377391136133634332688236848820938044927815417758675932919926295596818426775492673145341623485653056576405071862925696574768826796284593140930665411265752948336858628451002038588344541216156687410588915296025375994813472159551314283381170899333192882203573098117739587191707251964745153529781817284505647556108253108965989917365875587251482206006948721058406228194440258897060979043744250108581735799291064578053657061927441336184231630055614774905546749516178024732131407757316851344575114676219926870302511366350055372151798386737484694022481954813536816555169377762197366192098831458772581755168647689193085144388287567171639971801691936768446208336551461337978641815317442231340183292727431212037261669908834427854736702971400084373978826996025624958428204810870783065403532968434369676935003183223892640667003913856942687371732624845271752393387725529850566266330768593856551748075870419529190962109378125630121932932943337744471659124961295063475047763358912291494088722104281452354151841269580978992418456801722799960237286759434305187041907555737779618363769327844034422908018750973781038107511368646519774262434431920372799664905391382596538687071031444253697479544730037902525969266176427518762870733489064331852432245486180556467651818204143580220013858812317736202231117658740142496750026701355342381701561775384456557834343967182164311206745307377201590140022661705898618373374898965881140893662609864301525917494779778433956355193214333459944081394524350705662195171803134507019792240898435967088209914112986765397386753727069842477533916030112335114530351194361317897391798777651835539741308679615122762118695812940161564086875078466318125994074775286477579666717256390072799598580748107015573438787063026447561544494136977449889755243520814604106157555916579540575859827128899421874366748198852052754471392178004384877340596666240627683237296928049730770672689153986782897863135813991120642263900184996379391774221046549811109612601661001340465426653903853382534857076873610678956320307152259317807477498261706906934655782599033336297116017991871039895758691752254499537648251450364645155507225154480034103729034008283006399991510663584339597593526694087236669833603346738741099260811822603695015554650333032591210448612337933265367032827063020639096289238033809951432179300297201973678284046932025445028084593110926157019853051545160265392048532572302572322893246683440911439260820659907589116216318503650313379746291984757414804268582397503465565267398767494173822507834696164989308558981446158331811712377151669150192117754874606485707116742559613686145657959510818056852032921987954703460861808443784850052219639759474554424390722610586389640071070665403685039805480536586722104797294629463700901325827568700722261904124346027823198839072838101202077126474684092491902428859036735156758706206590834086534190949367781335402846654668567838978693312018291605335672341896372842158445461697415092994217135049173276716381475640218149423377489580886946956342287731467248159370629169420581346415786170303727203892368027552960516006097203476586806222935513642536685891366008412316984759477635030550338744946741223367927933105675170325013978113546594466710258731986163342018701643963749477056234011426144489359554074081091267993382332784946628479086745765466737481409987096670752593026043793837916180065277175409789209383895696289767653364881296352776080228768257067348494772410119919625757857434488419624700966108234991656900226226510840431258556458302780254925770316011239350456040851755168985213448605231241054625029797147669288410092247307546092281500741384918805565967771029546757730949830026436512015789021072829730347684082379052623211053483255152699261973416090016805538423916082662277694569437622574873439818608549005238656129332979029657865052072242050296481149284214616245798018045742358619761259637105141101047518526416072198390279716850454441084635558922714068458797542704251094981703896605681495686367251672254126041827083156962610766738477088930526117863528924826832872341152106834561783607156706984780719901889776475958733184537544861672431059549566040006436611280100497270747335860828431159259713984960887761278047879972576234502328290303182298597249576174206270745777073089901735059448684469348727839825038632564530749804937664702274914156453144185882611858407402353197408265934197853833248236248907300902191907656804820091249056041445174398349911079213057865399318604593294519561964136669632976693152493202866635071845208668598328907111222625518678413794863146989123440744238181613003683458022762278376061515371747072737514384391654671937399022703537808543268939935321712679488359178552407210731699538243214919516031631145244786687977404850229096104917652797463718707650025367704878481117989262040962076508518038922550655184194727381057644083488610693830234214936538213042224130303628172460218587001264237886237224821931537470209403917566216558699859802443675498180495945789428612148152777060330746138515035047307813951505499253694573531490944846461507171313336682378220671001341875944635382037828853181813047070978983432151610300542565480425370650032589501831621726963446924750015082810264955037250964191961620630063995288186324417849557581081984286144616473341215636756638917778841589659178015412529617087003948215734154789199570879388926767578061155762852024465768555699261252915872879295438999574174425491960800894653368404076822990370696880070048901655614460251325887599000647082162277364951646925559938635212214615914056350259847665877987784739133086565291867571230142308898750270422723299701556349157032806104249648218289481576031515140713010906988457312957704994317818420752920362973016193808111195752248922691279128510148105813644921695364933722687695193567428197732483988772586831864117316622020633510868363122458483291212188883489940908137931427419813673852011996012768016205566181951137930851112409517730611144178395698888726042240723125587453772998276551468074856260458376897157366024332583761630231295702547668865976445750137383782368315695863349619606188892426684238271924694281322243981346592423853610936054608316242796501130591222771545195184386012336092681471288084936900231555885323580009605521177516920332307364693149128280925247433223203397679123088658983750873262104477236669120130049444446625586801597285751964837370319222443810659851840643585925129542109444351420823799048511679971762932508181229213293772787356275282390577132870052763491888143136781901254303831316521579383312937152336148222128474607762943227409810871908386408331633857657822926419466557401771930170292670665912851474175340652537308384422513870076098079071243981426253947716249209167342283223719731300189094204222165270671400664766621816583768533995776479813214476476794069523331601144309959062480260968510416858455421011372630582847654591531304481214090345390438415049637976207977299554352040716906214573896121006587770219600871758677959897624395773561932404662086801000387551567457097452833986311886824714809277913476787794121266442004320701003975204038937702848362113220136245286868452215216581767043419228128284173362983613905191485757564456737752820995696830890561241288088422601196451861911306129915438914527855197593594099450410220654492553350811177023277066460889089362195439504196892101503436643293668334880441010361822975974401735599988953039913475933885330257082901530111337329041627630381199467779308430734229653707508475865516438315728460472946916144249011425741700824801890277968241916949768107998714392997237147516220872638935401249824172027217863447856910671472387931103802320561879356900957239427147048582718743161093573170585645497694227711248091307948477195897549872707330224815247387438613268278092740642727855320112966266294390196692276266731110576944201754081552913744224650791541008579928056440022315734494214886456439235018111283122798586219713609748320446077110068271052219055735662060072429970125904970821473241268128768553600342117455001149085794614192459334873339413766751739209664752136146337151135459572743483035588307106820182342143820215878924284939261873742771024837574101383543562728190618826948907151047989509977787219955704886877809058493653113438478007039901521577698684874639248231098472759022089514007408293673120815709195501011943302851768699761593240182970662253577475078239939986867026790357096147350188097124504450673061316524845295434062292988710337293810439764313797979719556049961152830010136624849008485008312345249598579326147485039385207750432719542409372230971786219968867258748424832542477751113969024275832331344947895488219424187964109533796667767455037466146066144626264253018947694081925721824718991255055205223605439345340664826761341876235062076387064523876872199056096015590454477660898589058879766392435095991443468487661258030080829114713459622931540210133233869543263649164884512273869939184462340717160601980745764998931909581556930276663720387338538833360710131684940251996992859483293421670472358621449539435596410763730709854462935234523994952237590641859387423606606963215374906779583677437477678577675304232053686779155515081707013209550990761296378049797538817454986649092766349322304714007273354280951363867097831131963995427064362380727662966304119180450175114106464509012055712001025789150945225299335630373998209520404871774577494011786114161016997463496788006082129745777294898601547467893746915776580100416141609810789903176697593819282685503430404007209058003358009159563027903711350701986996020058945306808277015404800739372398694543522157515655035664847126324403134799470119868296016549644602281069874539705175579861166512134700301097206102845717803572133892289941882713705106624146076215444848573614024861296878625922043783282910182311942720415451846905430671213670631611398979035390475809286606578729311926726386089680849733498068877256828059249039077684362778306583531757272512369461518851274580338951137399584380015501871440212622396652273742859352776882260423783310152291128892821044540112002928830769878914766514012271014269362556602991345829318933160880584032827895711841436661917876981319507453957028068255563615202483218245130911691176872427342465358375288465570832303828824576363607274560007293556211434021757497871037222839828569916589070611982394187880291020266336027660755906748825449446884090341021126038508564045158670428345734378868031643998507894613935633538034271766147915553410134015852600124388663395294460666426350541595928477542040051580341507451207676506965750074128025164198463417499521684191262202175039369883308810701570755235749410549201052296369965919354666964111181422799974385081517240822363199003298662773492943036390966562790131912035097235351812667187148466116430151950620000681904806300767286356460930338028709796505715517439735306195208206229116292195306653045575826530670063085204900558829482167490796592325025972613625310509212015568802847133092199782139215045443527476201571849637997383753716890137679762867269878589625989216406047313161045303235819063428764668254450223766935485118120886037990274508688663524093135691815304353206115037550791917447366158438284773950020840146295720964407045533423852060351033271772698877996696692479923218466033258348413163569724000271692273245490603051029059762737896789960912400971980270385138163155772348169560743195976351167759196004341500060836083005874136892832760596236775672114065019991326345161737895362488904201076741886991308940865631768826970865680654633495938606062595640891772574348757647364435682475197968862263293589301656802339150925451497582375175243363767138885935016277443027198408326144671391424924108772499111372890364481725816089473947319070057191384230350250642615394450895649802032226176250744702909095614536243841970335267754574115345282899346287721951819467937227542269461831963339694635335847699045843802150197037772807853698494815361763502302889060990633763831291620523109321650515904264789136444656009634894315788241201489165944181971964528588872189279011471551556229537287999224489624054422137471007430463116511667682206962737248327251500019827864904695410526000659251450944184619362680125773448650848437781438119863554123389667272126196289133872555678338804344410374875665297882515911953740419053609491530112203425911635252700229957360473496896603477224673694557019152633928555141978833630519670809396268750154066032286215273552653834837716953920880886342647487250830063661571170400019475742234259986121176400004821830905748096868435484799352099546410592529996994332275659853302040888361794593005238088793782282506256253522871312541982707879656321718121325721943371760621506739595007549873446635685333577311243458057163345504679692465158018283598979559935970781172811858146466811926990610160525462119428422158131209204642260832261716479185966501425655621148315797429527027272758859121844883054134148784041901719393188095346177462311681789287232943754110172126155185914756277985922969846838884359264705873562409382287045253245113897227287843167709235044849907776974807716372159029901801113090995580372240004367905090780299101505723760982295478263841177851979615010714005239254818050198774565877584778594506672615480655245486881707838029284457508510136174528235284336500482831594104243096210543724616377337789166539741846588557612993046429290092382173180104393668902169972915585519897861725926761080128154215851598122883797335805044438542684196405223453672383966694174941919617188255489245277996451560646569627737468980449689297690374349632247300858162743768056754443128330092147909983437572925766489885676447045230281426329924610687495799304475075281969026804560898248583432609305664527885528959157783892753351169347663514973438884125547110788372092488428219936520539959197793811058059802765019170284783471594644301909851169916752422126082988584100557750041737897772831468755461279356032329138206173155119686838494598108405764435826906277659044522161174647157936127262483743150883626904792130384069405683691860819293191643745314723549398964291883411419883059075797383685175323556622509575725599564792870478804700421621001163719487864633222001501766048143419315239449873007765334901263998847676286223755250479106513018362814119205345678975520598412949433089378104866297157363660964971260050212498222894486106954682145254866914290700095389826037741203909210805206985773066737526706218618646360433042331926858893729808047050697150232523421761628929936576942203223624200254515080774704848959086511735323694212836940504629969272889513020665483744372104793353020614595831185137834593723562848828979377732965502517407243900781438792753323197179989292434025226175996577380410130906594418457406617716569604489322813021711953604655761314351385060402842248732935922789962754420850131277553845337400013711526565112458361817701455725224530479769690529323443338290224175303166504874584649719267003461304535819350752014809447284945567702545598272090250359389668606296654239011478726395595073062342195635349971087011911632542171175633146061468827358005491138574467826777623057280567310861863514081884552367687456039519244730502844814773985532035909146168784897076728574083329658938008811696066256340371374859153979156335689415127427165671640875289861058066803351852291215036766489819155525877876471905094938531418544679098900553973882549955118019842774906508508216682859807568297053883800035016865547717196578577652427061919735480076845551132761360708310771318281254017525880285667139620599635073185742755316949060856959338474692808235906496093022507832258203813366446523724028873940299564218494504376880790278933276006530341697618415726433809253550330617171708692383186819216017104331186231239760774319161046970014768258506266778036512494696670120756404650960926908374063659706436300370492862813136537678857253861203036004567322805488709943980532010053286043945679267789557640471198664085491902631656775068278603821846007374501647981837534355650813565952598450200368854532924872441826331577482042660377913296111672026736997324445812725120932898418918757688098416170991333236842597262013918452531296077488363299703775042130525877143211817318318219620341263209114971758510238626298833817557737860414750832348001585828475106079364108708049341185669191128754214602882601885144723996630766920998253326512681573328273921356029659467124014472628978358098798053404134121661618896441792214002560082472739796308604414922806397237004091621157351109914678287151375206768384483757434279949713897218208968377906765352010732543061188119604686385768188719791779703204879879053578196870067117524310298099051793388000467820546078005601397368394135164787788173848264937769504063296150990288350422140946945498652292448194808048280862290989588132599217243755745399483185957566088573608781480181285431419376622480068249710365257257893471575425677392060297929734677647371164032820105058624985480036943749100718324561657247596914330911523997358524166988098852665765436854278316590009016396938259011979469584454794321932924303611989721381034208225249371854451079673992795215837198817208600714295863783473756786879059466907400768523687631843781919010800299411589889181471373701686502845412860361045587692238317638089389374144763178323765656323978052185401227983384047679241825123172121734034011931735872222081300677313995786244850313179365701944889501915330708119584920302747235254147911569530410694640342234810632466173009072613341176506517323442082651158993116420306876428983207421864438589550128738079122511405711358482279652831305276861073771258459850578234867352006019973801555547728774680536228924318013594696752215732673239509837221250589997609520548637078163541004736755584153112600500647581189807552109304703520621967188980863951186225940219782790126786422309392092015794141290824026194679666434407425853886245918512241275405490826286602187000861022315137451373634407658173745429493950931218337467403542188618008305593711829290247151372163924043289048991706679029058464904293309995524462380164882901690887145894307872876747356262584620589572031385480365767193620777764048418790025205021333444154982801684229195040260839206268399348524862688377578592188543541200954393100374575459195233833846479035295989071981084274753835075041002966944085585326174451689427599149156268457673338569375429945190225048462931118270238018342953866660342873790042126189228741366937171969525826115316214741166695224406800066456484678138306892562458626831298469136876567356723810664181379549231414097062925711253909607321627351051070788801134898556370477414377410845521402946494697479151394350746589044201077182322638800219302600330498642475867823516910289803585611893055639686881934597900382363084724136224803714857572759989063816558835733405578644876231935497805729811016545532973286950856246447013909919807264412156661750961084028222174044792792745697995425272596283885420840236772059162008771309587254090433439001572713927935615902377241638335358621949123777560131891416412080504307159618956597451486729177758848312924843476400372012608586699269688281864715427620120612338372843141355838035341752203385303934619740140264082612313194970740109677451468927550663238394935179213082323552037366233683261501203126296521491714085770339634634809223248175319435118807004192539578461355806057555339037606200174856640250970311132619902517380738148481570947221629191580597962643833453937853025258391455278475261341248895442219313360514176791004637366895603738788175087056384935317281947088182450751584248783465154217891350452879193643401802994043450042720551351085386473252694492981973443305727933404143972816890422799508987222964658132616211301665117982570500056958136208006444786450533977949976102437521406307125221598395267575341115968904096398833742255385064611347006955106466873719247468432291994449220747464058003794350742914422983497936285495957365274224926926960984615591311348652583794843530063290613684928882816579966156152965221555988296473887952496292646847408449718140119095820975371634088056758525560876273846338903992716617732081830713454894752295329296099764849306011056177002198640146274468610736684416371497854468743661202957469419537893992668649891979504907778384481713502811989061616103737646037934598455622731706832993683995315003538049040588828572167939720087233710506929861303684858586729127820135653687271660872254546984898499872981055643008884955649306109815853778784841106105842434928222415726122363491583936163921681218019836718299578098364731867552398285330282438350701560772047185453669638775529499159844135105755492852844109430562747785004579539001452366591690468812115818308919680650475640161980969035885790108737193512044823746820345975440324386571941130568346946693990224480744726559373150663437528955656985431397542650342532057612642189527757288126369855630718125037229818903079264808815967046259950898159814209861583409172747795854290384335650857105780238786827495316800867688949649906367918417633766669857283200431919222746001599553401122566655485370102898920038263580956533073282736252903645279097037639605722726948309733721741521186173692839410157853276813994465991865624238368562013168763983419639134472582399492133609876152198188665191283080705192581718556106879399605316761293684664983323612715875421057007589536185648200305719960915170587851598180891087173140832887005857144370873484164783599555679453488357166685807946628942614390297276149619038774647856535888003584711514105846946816372814269604539121003905121821791778118913308049733895398401781395228613064437131402192101536156379306556590903047209768486707295196257398233764536754011093685388610932022264290300272259758582034203987006164831752521177649110236186408744641434011285403416843230971353751920904013427710927451414384844663133327479377007254126514241465383542780553854674559826624530373653989128298755368764966267408168088699615149866833420100012492441088545291920638423786477847118386191087636136461656482292297461800968849774938700009145010197234043561310471821488565591234834388145558902409611020045174629469735196884150772638351262455712150941405397643307151507244800792709313327223047349636020174162739775513596747090307502768644925288878929241118899843411035212953868882229140892071533158309409224881827248688891594950045703142766442746687390853452681417900172407582067867209941448595169079644961705245256892106469147974394017314359732264676805204360655812572139278423694273370860371642496792812890490479249418745893437658765488409203816073361856214675689886611274470184680242279870653693095960077763651707701657756909235401003720138050527327627530551659930498090609121607747761911867977909913314944069698962393163956308190435968150336222475715922023346640397287734213432641872496912180543068159162452015023663083530702922420728042083637107821946348431998606679149945213812456895077093831216667032243336477518426434925096856078486017891699665233069117238140553844521823322645928879284637439921709863542889923609170711190136075949144289698488173074814612779306571095793569460833046152690164247858977980835823826562587701629594538366967786736816731419898514446682905205544143228528363019326005053129476061834364892634955247268414550529381248784105016754430848947221142917349196629370882440986337874029398832416824004519776436290347985773961659611387499973636579171529446385306086368810824546553623578453468287519479807250191963899681957988544404663854726996126273943247373880886509990086966732306641925738131572860730760514662765661711331740064254297656850913559069787871272479278793452534266915126687962819032551656390725666676542077861910523416022584597428363064857214119603669791752389605124441911792473818646612748992425461636186269573780135454578927556835560375970826278677363921753566577448161903414878518591737524246567855610884741110814416217617300904761566221272668966372130852840310988380359738635490259742547318281246297903023994771517929247097259883578237778282099949067518650889860082391583294225877362603576514120738340807935955843684752419079041905750797884361782736954968958114548297651328017854554338590312086892924864069455744472818093506462197166883658017076365614722817503858711582671558989209692231049200593005117091935680325525396758206885763266701445173416744336118481049944806785213651578491694406350470551452786627922447402077163466261846663664208337251328680607639908027294888506751509512541778674251375463131992048455513129064262461530303205967220419836760018281541356376125123878991398273389880720080722481263320880012491822552779840887928192931507057738246695879896661949475921784843141987759821303129698565691079176847353128951200080867618186142234720649862594771127926515560241789806223550211423580216664712316546908656356319913312403523134066288253025606112330646358886781866948174678216325299929934006404045100420642986149219930582511231094254201400629946264975532087277005466742832528221711385549216030711668024377220964325197940808444652006603093844769326643643145401563073237976262160325254633768864543551978404332558473494166117643490472713184631906548013010124761999998739906263234916085106380826440592579014607526749436786061143012123034424098236950317477399036739933180075691557790316507697258627330807341523019246055173283343013777267850670399054443538355124602742474936120662130871667539171060963321412445249758075096527671486234035202581058227205450754534042538587578080098125183224037704254205581307852862879642730540520594841402588352381266755877464670311202019840319749407713486103159735946929157705014025456803530047107225953783862593682415463636226727432668601015381670028042605515467369309045932905017917659519607105058017150821554760893185798890372253590626773523262210545109885458878593481876375852206296563002314147698318628211194541946979428115095695491959338932157493569375870931939078247910280677182224624993846421259901619654220699671207068065246354973032017901598751591520078756638592992333453652652567652224407360951139444672003550804420210503200896393848784272067311622029445291854437311481805255586390122377878102600447334151114447813804917216076659743755313219735952149914618927955526229315328188124054967606856502464298847971527058679653246408147417293432449000970839803248361597585767157877872059514914683214618654307010315494859987241778447280824506343629429971150745000118749891373361495749027712815866590940071313434295515354321058833029429683578641593392567869933460123141202242316460838999074784403689061332502572141905894648259593830921535356611488267260118449700977784637843886087234582391079505171468516936701971355658145761670391576659445495165915272558098594285665045927514498323905755232482038122558409742703207182726220640450856995061806247780635442394592179159014515874615978269887703573292453805094895869095415157607829228795352760651811664851605805084384288579842961489884680002227394461452962768807730945428173440074143875845631134496389662465285138689748536526900975797306049585983889605977647446070385956030678551613348789643518929047012766184484783792459387424141659325952160124749162892208062623693671908738076910430627209401908218207935965669607559115762386595386463587922352183513724086316627260022703175812040475603440165889381904853116948765063311604900933094511483961477092207988764431084653780925819073107782654762265361036542882403250870842088131641515804580223274290729740362853615339926328032128732312325459312759430729898116575206284741286439251362028845941803607814984171608738546627044266996821065550836215573161847984319295935267866778922958273488723072516172284302804178285177796962845919619408829431218879524676220406380168655339668000077819346715123451342290379642493818446519343443033546405710430384821811987277421806593075896327932066295405485553054152649560486325994592226749695105247636513902532327346818287194741420528136839670495140259406876252422128088186013824282180259378773676987021787747882511953133300520533762030766775130259065729375965268246457934655215460311972543218116179229756103627857306148622694125675463715201433097651098049433719279344989167203392411255799928190990202264387402454508570642691545001947234567754798997656953600641955797893434535134276524690877295283003052337971612385614025949990862821634588361206241458620560583519244918654123264439850683737991782242399571183307119378391226773596275176645951241048456432125346462818288014821763176382261931098775413386931535966260501271621494004602587547383927741695666916861268800164374736092661307754338010869846271147047263211386539304346698146610631100653630583797306776183554544324258040565777308705492248577854947983654936370527331092095726078115670669895119548440590364176658511296320380520324269127543513975310716059700668365004509206369216401123108387659995025099441064106530502462668576509957071625322662484526749046068704767134527632825877196726888028989010810618953469444448385607043846592764085423481404258494300208158920006540493749848273795157038216783228577864627067620878383484559376799894906474941564866694441240139615495247864242473328672102599498204915263561031132725044948237241092976291613322408629845932500935967066039821957090497782525857199701701877972113045138894065571686498447522728828065847394873894327400737443984216531824234622393173243878018959462874686162227637503175122850533657145702287750532911340425942985221891135470246798028664511025882615383911413567168592591276500279895746673017518394987812480949924928495654970426775131607229590305782990054411288615317717975925782251608690591180474911526128342935796799268476814068579990341934465157043212894522536968736529835347330655953534822832492568521646880114268960021328548380817300171848836859719024258408191458152842632664813915960565052719608443405688077144577209201329263549347892867384368907273844572210623505816453414374049784711471671574157833355920881021524296736733852366939829305793544585210179534753135064128357360581974156287674472884204174446175944824815045856492967799874606720423841126600230738581081026102271176247941036339392385693862032262830234548806662371728425432471673039313829144295444132049191960461478555494441717324024523005311070400164504432467500337477198269659671773098420616021685287168355869294590682677137059197226290411928919106927402760904537284939224911026795605521771082062288166413359754805899590859396890399409176725877388669646591398499420386631410180779410222086936034558702014594816346038126096246696807609405014727806995132428794003631954931242963547054623028345657286801640206063788757178730775893918727436887820413215866202871762698026602137348022984570033423307761056485146728694089819194381851582152790236444796578819516420952729058175722843040556674604434955092448374205707874201666508880352567399163804581934473677108730856272264715458473671887728488143812956684112718236586930386277934885240963363471269594180597314036941271658422998898639966510368330521279372055741949304159669501652338298028315427347540738967499189033629236620897076184919190103249101542656642135492619733868317783998825930425229478035591722925292076741757065473682402139135105375398128160990322490069344558036823407578916467356320893722079138103973001447580483337331156064053041769209389689212847614929384511904534584133964139114315565110231909281189684112530591240242216175878756941866539575155583592812035986953526450635802243204007949266312255975610422273155608964404112398210137676620586079099295442064282459931438942617601514309587133035585876964519387232876451119575910810889360482638535271015988408141434069525211687425651217522238434576698936427473211707430896768723275959805303421504012647864962531116365502721698590099098696775408591272083053430918085418773091849400068375803254392995803298821001539316412588082138903476948732710198433411641022021129579417201436634804376240366169561482924287471630440723324730699452305497645487968474129426328760240424588418651399534620153950842424633314528399422417180535036681586855525173958631849043987282750372341537265245450474987345934603458445490435066753723450522403894874221294372260684636529952705110471401255100081122948705407543489443008417279207858046507294649491987344538561215523573599643626590947995294355853113769131344345835450333903439310522164481886208789791262670959925209476972559043559958958872927243699297680241341351984215484110150730750128938977871771181775680973973299811413262935526288827812917569160012260970468181081507647825757373978749229569573762981188448356050059050516998984970218010524759880746354984273469423825431066502880009326226112761845059647252416970406429359009155851636783344568250295778465742080424774441463387620820521106708150716824504110251262757927541240074996334129210079581212986789955805671977900598605997661480602838332095928885141095714809989350232985817144904223979759604360101702228088457901843200955198193290139711195472946499499532977064721877902487218641572377581961109433200999168085211859560930402686521333844847350271641735027756109935094952693420239900747219217231845438542704755305062325127117195449013978186297283617771945825718878059046341125162323536175206844038060091715415686199192937676507376436661171317043623377792014990833474026033346967059534381594006598916289214845353803971092471569834970841474942866873003351272029183293051462788693311395203700638788789763470054742014159930773197252079379105626401548677229161023475864194010221144180299205930105029756945412942274721827716299343546325845439263887551932321570893251573349385303625051700073185218842012272070241557747317013084596255261701495853746890296064381621055322471185695066303868702452763727772392291083762210358227327395070338880431139770297335713780174694462336985718550237515314374403325336338739515537176207743293604400172650568366513047258075028532412625119952382004423207364742540153906641307294720881679669070284025086705104994463063368370973043204672175135920215621789634059304823923053661817105546423202699322921407731808656280870505065664264200475757605124393875727659961543484819071104511348737259199527024134441564102951425363748030908941888591074057327175103819332818855749259774854287915451907729991261036890153691430800009878656406998341254387331738636931198252942751243094589612230819417002825886985337304836470419688258114026382957759349323476475364707210266962175921123891009772736211881665354877886172096700477686159782157487680407472480039648589053168261138807134598040440103007148427130064574390326532087224282939790610894908041222454957204732683435368297411838098216145838779519637229383750964094837346454305855819813786202210133279788533365715442987684218738187044941186664933418925151386193947490138978409873705796495311677742808093317508792149842939664487546840347018087199555559412308809349821613147280990074687531778818577332838354806013515419239800060066742015717770700386215320607200705875997042008507213814656010047890736771788758512010350373077042342352376286082451613921946284450435905709719684538994826757706505488864677667085156114824423986360545371656825544289419968422836541971300343061824503945540356389395023508288279388948739523919235044210044011622877394295967741737887550446008537611987215913929711843076138270441288327690811613590377431895713212376205834873494139537893343665395803686759586675428130973141690786865053935412795994341606951577311848566711413998414597479375302686216041606862598288437662347543002473402970749101572346919021342237295843009989176103643479520137457353887647325821501206998515461846380437887335645219291878087103781501888848498518192126199735824769820657441527613124399233074567620538268431620797293480106194496160646669185844000744666027330578852138141573173969265553006996918692064089158582715931835327381384902583556598943970390505497745074540918236566526593001586360158803456372143137635521577323175845233513602903725299813845344035470765145702990935948047791180898115903648364342224831378431986189451034370658017703751524356756843097158606571138673169716524184123824276953128444350400846486615661440111897729898566689161572318912102850437164285302494646890883141512500075810085185904959462804147503643576332069337900333833915284644855932993884279759900042756886119294511676415068872320361439650580516735768687836669384507251319823542386133665428999558832295012468117759914709908733694057545543948088777484517072438056573558159929262565054247931145540923838806738872691892181219381482440304676423021639442579795024245565585345739411439567000582750613581562240084310209859198353846184779469223435396026493253514091245988318212221581675052157947067242027957334543675468451237223773667184148811063581552451918858334523360552343551372861783049422945285095749860540435322436527460186233186370044667849180045571766616916670355472262977460731173018749196096030545726409917557027967139824725771905816371879760668081655211507497212469105840727301855977928374611535783044023025608832606681124410456305152192052291048383795183570684641590597585648067467256213766680898086762332734190916169299364076140193928001563473926265568292951092968817915992406765606993090773103520070087273654976535132270170095766767783223926158496704313731942986801452998040156502820872213087326760572077857883962272062488154813904846484636766668488952346848528900020018800054112898782078746054310656891203257437673648256839184980667777297152927851348212090536034723354981080882066771179367384337139181700569944125971629170385027449712255527270079791426142318176307040059597452791924941597302851048245272814435527074418393640663835845700001645565555275373456054889075830246151635080160877672387642642429527045797257625974228513774515065509511329678339154343218782870675472209427233966584451339493443174379920418418163629182548118055437862455148477836824890934228471788391604690996104078145674858642051362840215520617042982487898323291195115999766931049074442799737606818790644114001925062778031121874014005470792869398314893358756716507364801001011712479698757292371821849924501550013261224597491490604622130201183912738429804570691769798272826013815823317018728040856401324876367886701516590233133510928689584606584959311786619755353090869052828786231711662081433654864252159237475876592190361797553730333237933049850551105493708141129421877861037355027009952599278903054439243079913674654795094212506648160880134115059236411314959560380193733653951337015789173345890799587750324636995561438160616844893608149367799937399579641980823131959169946706667256088994436891309578014337231635158854523640250151234614983709341165260816603127621769131395958416214648552070342012342568409736049451940340341198264423062253866524271958708920446573895277485607613862968472683669037592522823621849620291520126065859056485494397705501064961482271235191379040721236457242848137848906073481350086932691144088659008867204203751142818013584989600274499219615128718969403019370241703632524791405875065126188456090246533111808955459604139516682101484650149587640945168509045841481998337694215671896319778066673614201731691916380968154923538460872953664346787158092997487681620279841311685251798224091928326352141803627882964971492823930856024405764278510816512380492304455061096714392602527064495421433311988222570469466575228420995305655947873006148917267892102719473296391776170929771967665152999296373691787625287110833563491004438968223621812187493969428460988210938202319131262319901082032280772040491115177083036434729259827245800081272334786588697925698649381643134657815732100567394488886538489494138081745430710718159681178021295424722024531867401137707315349913998059453879003528164844268483947666157451781636051776290466848119688746667286069252615283715616765442217907380973299982674545666319081629921516456105397873814065296141499534859998337187241559442239125317760913117867232628670650506499524796614794407983626382775032363402252510648877490387259932327051364922076971326828046420661941141567990690899896044832636590451614418381715306496018230304325759414805800014456637892038930201942335738011274377632171169186201966786019114730432636856961161223219503317962992649793138430867547938955138246495262403598823994525983375145945257615446530786409554528649770972126315955057162313635044526997340451200218554235744550482602265636804074577404156777778617382980825033310444832045375786171581406898087930526785192078200015714861416548617098844189288110734573125560460406193305817602607685365383180388374920654552196647073885364827827926770272008761924327070156410910105231200675204286358684570051877028421043404388376480344493768139589613267213373997474471250945653833943538339748571130286987909135199745037520562345910707418609079563110379505333367366363370023147015099767529969139512147595535629702217877471651271335616475708711460311826323361767335690383771995693810644972930238996851944833790872231900211048804195411015149972522242505059797870808559209214087297077337603603620398983170317574419096280275595088036144927612805206869596126031930123826393708671160435428114658073064850545820606098024217421588093905385077999806201432505262904126235654614099118404432582899075254204728384943231333125002528482483962582338371695154298904992043831208657711198375306167158258157725420691881646988340686218370203787961642303251767002918704704226548834820078516689676132549232904069657440693544284307116292558042031738737285947948387241732738860096755335022391038990526642306553333209109956658316452480795813913668162270413017101991515789210757492505692551644869104904601511982286152735503682903123978914567091482747638664384095123398347395044867840187756146041890710877334375796792608194788376484234248739364977683311415649598561857497657032358992291930680660660220133090094131584972072136254280486790516992377251015195751228217125125521426400661161999883202587862006567750692889241998258782515775998209173396506904604466408070413420464492166174723828049275571596202790556696178859827246103338342977013194123838483576437130654918939929156704369948656332140052182179848754311013881719369597490246108192838954720175431721054464211464498181346085444488120800996257409686119031527444806830074090925046063138042648726739151268524226744871980539775867886286828255619947267670096533952745931318790915115552937977489266856658821303907872493090401330564730829802012050700258702836337292998288639913231601890860127182179915913488980813284198778803971986328253472660752965256334040305597154460886511493934038787138994368707896917359410970703892596793777166627632498749210341242857684703425736443796287659142217289085961710678503668767755103690226256313552254123788090966861668810966581344015169921717633610754610509948975007268812223830423303319549284500232907472994777331362992635488543185615450981423299567166706028293342016143269990761557037658863979756236579833349647805737708955536435553603871981468767434885000308142661940687093125834944712810773514313534248396777366370674353521251477801084147464051320434858816190883105068051243873645732625731531026414994663505362062431724508302475879122166930698161961577912107842474139808028745312616003888324231191172792954599287213265235002392586106315238220888568795935041510108578260638759567713143205181184880481081085166432588448745279983985023144395822889140674801795785375100420821836190179202345925290516908716415963492325339710361284594094418697943785503504193953919287222243751713455478274528627212977129878047468304478538866672591372631102867632388785011122322724386314414546270867959640702227839551905423225457534124923168357202545447655687303960350138877794161943606372989343783202317365366355505012345254273326698365757196971724096684295345753569510650133162656148294673596229848782178648090395129937066258184952217392197100625902435146458026820321272345989102464948033318059458423278071647262028623827560392606360671018891260973987521735430354841762772180158199737460299410205916460646176940399773963134262545055038880775426532915867741647862433579705933393824044313929022095329621271322206005849590144566666016456099203512412894480378698530892602786185387743461106561381324646638090702867679936119062540496921620796453983492678058256969248015736721196258054416043831702557320746207097896359101271400388007875625850080676173228462713610802493870241848936682711908222650231622329119784800659204352041774987995001678575232197860926428811329970806660962103937439595326305844619509159554494136069365941894183472702931647327555689683669376946424382502393042039079632391186967889891166224963077519296772771958779135832990794738501344574275325505100540290695530453939417397707339456510260819401541609893616059333913805260394109712379371834412444055934211764361166797360839209875248389757097432696710716522802492272557449242290352863325963487748864656614574730545624392735631355263379363145123907493857474218831058708670306316655760459265586786261347538763034097533747317184570889578694947299563707664760620068739956268728201208219422461472351303095786607116006541717552324856069585870033399807344377962908034739792604896213784478248112154240227288246325094660000935074872688579522578463721645409650160950912803664897850363053287178693643960175004950384921239913226063947534687780745534062465342354154128678521904234221627199063628698790676530849673803350540914359157366224928123806649580582498460187422057809463273421195266752592448702454719142082587606767245631174527339089192405092052930658300943545115918893596520261905846001626829663627661130671057063648246863142688562431831524257986453768477082743893052863710222969562068223235974898701031836565116858377753237856218127352726387600765357759318300713911519846839539834494419433280445319945632994259860119214673154542663089937405512352717189522774137508470400493939704392695117875626718809631418362149898719555070982492317692833377777258405192559972344387838439441771836933346544105110568965768931093666122922293574875299084934397632838399465230251544695162494612275757022199405464055141594172920348022163693653336391852614011877495103212523249084160190669889132567374046153653417498235362713941645395875555514960091958755964670599328113539721701326625346149032765285261090223581979725635335269025675908997380455036684660674574687923195150099968133935868571829751171376888946767642260808616501121690811531961744459484681807035848977785530633695414288848151611181589096089838248969108379466674112636413444228254858362814631050486916859283155887991850287457932604296558522798758608142167914094939099231076394886817554410245811830785048336857080436027058643852441395272419657759958837766859484810497427523442745002686299659860123807193040626564086276526152157896250550789813894390428103806127870817025050732571302039413597642504338347330376048900649334211888678421776366824519458418455667720539085257609493930051364728155270411653876142687796516798882552975131952625265044801680787628854702330562546332336216461182684178317083181988776321878892086038673085645382717142274448314808369280587127030479790608398025351081539947065595589562841613423462721554969932934309868109395293296851856533169031827761496585140088584247926889402714902858505751451163941630498656784275805156278702880975937494936385182885704429699625040965722188791605849080107733460858608838597160462473335100944973257987014430197122975820456469360123760784542775335453046826015010038532114188931659509634544737431753386416596995004069807428825924109109198052796667570395650074484070468520805434814361954891325951783470503734529895239095925214381565215674010399970314335391320818015454734077021668202836010945870629875408606310014127478484968823025860416733175431280373029650891880284348682128244029084103744505477463131966543557491729060535804118940819789993980407537502729510567172709187173647210820160765501066081106536664107931608036985978333368450935419965192058063400269848296159601943572168124259128575942255621965624294651035338939352064671484255535672789174953655776297211846785968505656796578165597699211886485730859710219865844170610702651670487714529444287799058371552024083268274217204590014249316845099537846734955973413628966913044149970648398198111609328002249682208203890825683869616769564154553434789811840552234607867483370028230030380926062589579258913250381438739427926899863862748924410500465574737009621499488514790273956941231104180662483295586316958157730772545172675610966175652631988388917158248408868398410669977840782998381383045832524293725166453482176914875182334116571262062918500183251217978416422043198814738057810937597713283178667711184539123635458441427145241697786766671580685442122598412376521465313414268407860560957935481803191744767143340464986610707663033019873706529982452464650414364583884625916971713749171023616185019198674701948818535976884662503680302585133008303965156953532420227535327411036968431125061651168783732385279685635482437211780396590322247307956357689900499085393261097054115421866864367755015623442033934695150148676613398600879188948720737600772994066088349155024936472334993478930141209666267002370053305970322722927123279386422683008221720138920610977756852706905919962650515447551065441871421611062577719870800665281488278355759135543145121324878531303057736412703994690446808643404024219583058824103965601734997306654098461550257879194384757870496459617819344108036636625241972159860872608015729694912678450956822886968375453642563859158058989549749417433605051123671802174206542033975233812397985910135016302791515631961125380681402105209970387613383017952018026186770735830644305186654299938790573163144832781784414095296013690048061357067296133084809735459192994507900540837204826729334341974412857515658563058603216080496412550105924302235851720469742606759449724342819749389367685781469183164603339418228083390326701862685585675990845127366006807509612453212760564520214244802982169746345009123648738663224539442597795951395569853963360082383172367845300958148794780828377048991455723655129423159948235058968771751840081907963606066512961664330440935903849113737430030281136658502896135084532124513971041314599985622244675736448606808540507873973296083843243141136762791909536322474941666207310687753604695420461565376192305346344273599645734158679475773721450654637030342641240346899420426807894024029325214729776760370928243584731275119102749682749261206583088689877515529058286706181906395609781436804763311826752088647094084198397046039655521599764467944369053515628192849155574224410866024437264569638745099642330365901539664396861599002927738464713553646210183027582426726006339262960280899410682590006286314021501366750035753683698916600674103402441830202587453652256866423383326237475192814781162452942865014606187541338118682386899581210951089516974086465790286559402208814980584970805425621482197307667635812114076191661087870089109576427786867123706565839024514245830115220043238053098547078121683771635776700124360539039395255804495588855829494102369368402606366305672364351132619086947510132971797873874540885310395264988173592583138664110327742462516585221861662077028586582528785522714463654405050089400392483370521055898011572527841143341655620652132657660689271056354659077182805802405492597953892660597753030136987901234371462709081222362275626746797576578482282982097650458021888578771487785893360873370743886710107590901155915875650832293969183641611815456534414825224710646528757160461482272256056543868255802573980027898569702488003153908902089250571479738148170057352041096177201101831830718881301167095226004971002676070804115953200823368800573959925060225184889058449469137061342289288483482605179104838248469573932161037282518481075730381754901389463460638817639722309586564550708864836125545545948454125452792038016209262549906769965901590926299390324067053767635053837028868398993680593312741464434797139465459886906590343887057551846024552283903048118543143604610238979728722541124128490169847923029661283601378051179799420984902711890285623228252911390312471773477630065701447159953569202658848462236297363244549353712917222476670148221258324089348673857624746417908256497538750920565780047281263315289793983403755901828707018587590874940717124273915786396318792842319584141124758507815435248843766454625614076708202800332184395615301313016220149240258484996811112264288321308731568764333832840658422993710446351572916841018118819903642876469995131062310837901592811159582779161322363545322765343948777157712407495431750775774441689752260703388040501312889581543973281479684005816057256883676431991651145634883838987939217378788314393195247199748577860460554555559409415258618346208829821942353323163589061117263040564407478010483068022792377448581963786134458503329176814719029426764028854975192172558475012854309854512922205013767731472465408027800068672111757195666487048643990140610055955083677174704490084432314397864771527767473769127596839520681953866222318776618556897591778059016717300728344684910487772438283332068291989481571066606647247332777837169982897176644037907637753204969528154270108529274332965671060376360814813897271909910090027185881780120665781762852083377180365821871274175672758074103618752084997827882156614574854785673858183231790575716730566946279809523671251792745982916341726797663307054677163438563554180602805503505799145212007735882836078647637191524630048731220669102853394075496879820850033252743030503033865545243482239091630178103198440201064737190846244458485050398567115869471728926504234346301053950309176673952307920585874999884859626036665205003531363433966856030893154617622281743113535606177959776415893253615672904131145526277733887614475389775641368585738961406513333767348788129443297523656918312870264970500860311392595108135845027295430617705798496285484205607647945002315808056825719139469027049612390203161816080068167620987551376962396720148832692495339520712747478435325282319845091324386061417810973907950314554816560953149275459196975195974510683640461195204964439156128333806367906543229320868955496568416125228092837841156931686423790705295162952304802902194016554432303029770999397711315076852971119701993968485362478522546353735082301531819635122208524807700954450981942364134192251270162207544972893000593971575807913008129070746040397203314034342674183077513993818855552456870398723280621053125657081359546528896031268507592917306213891911802252449724661642663510908478747374815534326609907311315579743563616165326737381146161016669565639418590816261013775895790571173747921811945878098764889595826185794831653691079341958953966771912761766504586955438581880785606187791165045181485010581255109432948873329287210907751488644538664845923793686385383241246563324107011260068311012208769861736107306988178109310282339803886131682247677720442130386962262958716695434597383944958005477296058320594399812902947554154387715281206241934211834578331870385865327124398959138752033898638800610248406477537228664092377694360370247547923834095463330386484754364942285013070554035559337984650899972017548499684864073771378366694477108634065102610808076026929842307417699695293102831530261525129465561142196945650427669673212451612177671849599027859985909529935677728016818790625592543858774189363598375466607788951332700144845336849276920615133921920203597558687305655035634488341688332113154099571898876180397238612504580894493268402808338461287373189597003455344660907072579305948360165393992296611512889933747620628419642852530450559881067195467544503650216310776801168935130862349499353979414758664619868594001125225762770044641861403334845996789847451489827596703662190627619090698492616809911186798434123802207559144297663045779419659330848925371961494352744505155914100251044148694717258483272736770959391753497421758257300322024414435741183901952515648286309237947177165979282409080296158314687271235938809834965681355478311512600500190882056097181293840847598904900001591695354497625813389106386242349810285685682647589244966111656446818944756515663404539778557494238687607748456277940687699173442140398022217503282811072908320929460070974171978687997001059455281722554994174921787483325930381221319440479082891106044586706845472052035081473396834970535228860477019645314943214088678287496872368599144007357843024363826631000613595234218735919082767541023839464123056449666917611901281556081649985991640304042412137498141212217538903264276053694715554059905259794027010788629925318518028489382490716395425468443715432703874525606400086050613811170258881582297647522355919096657250329878999869021944722959733506666154696429536087459106533486397407843315036819284304117150487524251061541488237028064775247385012189702158120976408426353048809931623363634873692071092632446937269789943954311929140877448142361960050669049004023356441103891084078809231839958132969254088261188090867735038824953416285141669588969120611424266276621688993040084042342515963809141018018919666354450909087570867945205619249728807339620828847714159272045881411756489725709920620746349620571685814036275421982421082769361826008648831533931916846614142279930689231293408946417766060549583732268988256489254590616905122086489479543874734379782865094347363513519221227006423688726387904292218650933695286754872051565882929119565246044349017165811179326015085380379153526533136124752756314644955271283413578920000930914719673373590292720660707624481219130873683283606790187029815980775135913899244023523494968885251940318426146743039171052612924302319480553328906162271402064981673190487629738329085900996300663994044368255199312270078083171205221359438250068830726344176182654906099999296750012062826879031920523349493276650688434379503334470269676381581452697249824533304202193912231792707437005647765093689045589003314021219031987142295825621775881731720752846082075476650758632230260280594458004114527529705788762575331885643652770586437003579696692819742762260076329442447296710472985677755627639470039760274613824098164171171644425459641601880757313490067900797616635430313906984884011235348360008821547008495738589466561157804189028549418379693399272367284473100176654663376406900816666115232778778328919391470974176460863206993062352555653712671656856602011310566888791707404478414426133301461493605787980217633999707956335810275468359286777576182736003017730496990167120221332940229254214973934294926092667051152755684791845211086129165805193644647482796635530035601233915063887593228740045911124812284022764264579650214006139764422635783576896152486156029996137371559349200693736128535110358593261367956854397370296355706747305984475459827561418202412677919902739856907894909256629932338862560005671531602585407703272376072876821986243694501662665929920610942672619915726765227354034610303445424327826361697722623803815053564060138827693216878561725103037515185511010700807315911916932944741182796101835108560743374553216778360711396725617325226377538328346299010595526544844044969524198204093847196685133778831881308993156985664663188537257721884514551561145278430844285878145826278152118004328727440967262621510702073157853221827456346239045829787034083013715188424675523314953428467443392471853256074346335860418554027019726345485984465058860404993488795261419165134220885982075194772159820644288077287491351464930242800048202199712237767554628954880718413306033592451740227217243277294272807500029952275792902144091707514778638716192571261863977049730580410950875353328012077414571845266627586996610918038940786647324575958036663631389799138471420778662267156363904282312839876779086033967099931312478694716019944123749772801208104538296985270433620807666598762872388221217592601431725463920077476489311773774337137499020286278924951976769930403886273387557284153965213296360607633913777257828357938964713673493032886848353708955838694138471373300498080385793847519657701455810152221526877052200187884026231410914879230912772480743157125619653872345527892024395640955181797836523597625005823111932853781573038145125561453580372646590283534550666895729436487709324343704274162079073028891468539285356892863566470148971620385089085048614193547398918943978764212068173622959881692917507076531085149704822907628003407806726291774239672809417012979766765279677628581780546856661988609580367327655274266198760485224128082200922102878754339484916130557209942744449966138814949140616019361802670848535751094195786898671351310932459941125760963231794829898992997399962095981517895691455598989144489674175831523917401873657974101062260178720671113509444068219308154378107644691643203084995972372930006723736822352465198867013375764820934570612898551083328873588696092357118679767226717765531113639723714884538690857713372694638038482820573438323387778464168607178996259589409633620176622422249574357250053379192907782651564313247607575406730927282858476935965300956895711585243288405827837072656491550354670815319151320733450659475223446315407260586908543534247145143193871019741777639650766233332779828682350909420912498907521357603787794579921255282904791928733970247441128055815675821727075600357697210612468446051597893819341195144590143701454423684270930650856709779155382475448920821454383664441099342497244117183453320718610167106069523353252763157273534093686132566988702807858680946643469697367583899998942400135228028680675903699355814439716804554559890788942829099951597077497827677390678321103206199031517496507671073315529450663571071965045914766210994438436910958593593737857997794423911606819248486917256447585116528963401154983019233959516964994914706391750770805403299442128905771003812647492968796011151520205590070382372945976048271376772342727840147322153108661587889481736689554888467457018202275894218285926039876752206303381784690347344143080401584350975583847972960307325244652699556641641681390365675682264354979104233043279550920955040491039345902823570545947753296171539751393117605973136163072137373306203904205768461626880650253412734476989701054569885499628901454529332427155260112908358813840786664485864985897435747277375804670726450451368276106250329883095805620864805280784688038126767379886703268249281510452715414957293027556764570372863990536932293226700667671921484842204111976376254689837101261126844401999259340468671023249838231573062352349793816714358722372323885691108606613607568215001109181880215607940405814001801458448156252460676176212604939790297797095240742586499716239318071740419089877510569011928586835980433960369489563651711069338008347456959823087427745356003100756444015212317192087224137798659751034029578390527296528911298922795664504553216397747728191179966930302497362122733374050125345640594317573728922313391875740011171355239518219623741207234443564169855175295048852088137505480646058720538311390781669698305039043449726610254031333730439377801097101842582171932261396951809058572502909882878685008742380930265723464605135527615497168866517863655110109478639008016871620887780290139947622587230022549919024286329606231704387806091872097515866694295667460429948120232516963791570120532358218250719263859015451402359984143952735652413362726670054783292108356793260367026177093922676543126946409898137508223609178820812984487223748573756907247846993361511311677408601044931013359978412301528660883534017906948975560562875932202052677757638061817444429891371419538948963419631549122954090745377907708352815729955747976278527783798605928934458894070419725099655277078681908204191134487965035255211506843812741326151901121297797306337259947948488730106317211643345224491919481255052829556971160248984668736108631124588432282741292034156134643367074225318556860913136314379100934024913164181974312142777759930214645821166641036258164445800958227329781013134227152211384690327058587936950393172362819933483329045652216236901606515203649537166219512466520141850946003668258887807383493538696976955804075422842912202203817387656963327084554736391303320833618195060973583478822917274826201467445839054569813007135344220160385957563324630292029482244597868579560656276313755945620411398562835403039886412485337698139576749015566734553187284258757831874969352488703710323907961973643271984709238184235206769897410421321951279288741537998029839310880397645231704549111721291981058254820194916125904679331282707581612809469462328440797291849171443796354247187037477393384943130256430002965092119714202303066135796158771238013297689563571301214750752111722836109989055974033435880560259730543134124877903828675423245041214367752788614627923549837704315830188547966748562617813810974906503740984226134370174838134399700784079126097048871944632774326252071751003593651676574642760748323431629780732545377200279790491579633858442215472695109408349880797020492279306114434191196144505488601363194917993012039025234048937341773907330722852602431910283831298545291270294483566711806469446618048730258331717979947620276882616336268621755622232183432453470096873123448412482657302396731272549346295356309573952233186751936799487610042434377589869046752788897500669346517941716363713778733225825837248575098252794978673996355108905691799600029559758990179396277613174235328488645984263647518319847462241850326222271663301260579645574777162712348000995999958874271159017628797472116007088169674707742534099580587094286401985257022286108880444483872694527384973718949004010653554223052958969576697356716388673633850647056313288229703901615645350288130806936078541160108320680042880965506490242241574036666670911175357495483020140390088141873049744053011335245514595107367866053201221929613271043831651741111746222841816992552269340436281408385484355113319876828808812082274414367631111221434699278203635816598246756276058586938129267842631133978908362916747024239158888271586232456118329552290794809855467077753032269913777460646993305427087548913355521010154710700499953463054061865101351065006219685268189365804017023824527957655985664446156224843782483558004390339055131728654507328605821852594736088781679872096625481074508120612239189331592886096368424856487060437081394628859940637317945493805072213034609284459144120770920476307477679094003660982192856411487357460725519592885762160829133156571904285706464774109294325529615862954237533472435709135754099859101195274432117283304021832849792730435063483551790904091506704188059705017516119758585872733102962899286329440621788495035870472926043362383138127176750135978307120755814872008413965195915694805044741908732181526388324860051992538275244385095909343628368022834007408142496512709174317478975202765701631210879155288260325600002278183119852771784513633178402675303001971405665522850422253871519083132628548857774425321572871623384507286827449635916108751738707028005912911982352472038556970614660676310811925728509798483600857170335809042866696094728895530285693290138091565910113155301224541554068004631655425449171148317641249131203176399890147605408637026465547055518417302314724354943901684853870012131261586694530173459919317139407407160798506085018508700456108555540151192708137339661409567442613425175760390878964434863688974166435460943165472996052002686293080217852421188599560454218400106139785732041389119972477338701582816349077574881822800448470205799749162683085828712859774618609218568635595429616895005819920218742846504315113548820966587668251750256541578149604773716464145714637193449540007972048033651496549652008824883870581790625672834724386392584693236863373753978270668514075061110899922217365545125103805952058744540001248530579170635596630820442370003150171101137740553511728198373305784822933663768120501860954481154246989939926033654446885030462982978077865114537032549737190582044974917501643060019633747495802790706692393461549947818052667320377466401319406718511220966611797390406596333295888795059957073671614170203417747708691031829710705529343323351888421574922294758819820816532493495283880049915809937942483009759724276299599686136341004303762099012748385977896862712495844703514896460226329151376166329955111685057980214757223314543587486776432168359841299549665972083329194428484849524888125167536974395672255348471296915200700640754373254413384565452932620925711346351240445561433993865166213373938789624808760971669136406361953889087716584941459866987045135829642662109612897596956179832976272734776274567167472308970756311564675761702025921116572590360081091740688936244920491267731545728142292357878207113592470871297703437503471028342909102605405519995354079712024080103637305656963722535393595230236990796482286127758322303501698656212561543582578179213908959881942005841356831588131750238439693493790389006871693618312503541169892416899482139342032063990897517418300132243491415837269241761519499964417174828866213527414075222331714589543826551046327364393011045363270819610201316752082585942523169808658401792721558346477540227858912105895437999646976284524661271675865586248328244808092560917653247614901921983336623968699877399098841628898707119747954234415639045774512905139050171911368127850414071427482475670667136456159263815548614361951848855622348631006918873364663123256028492230723833981499727961537708053531452414167123007846787045036270776256546333428358270182118104806242107820703666544502277424647286403743544602442572816575599258895621244831185651582207935255349936835665510125455600422047519816234694666013077315938645933182474743386875482390498993928369366154230855019001837125759883667923825488594086609073826540628055855882464102266926091361856415121864551212867830815276550699123699272503430727915496252107988898517472326100078534943074264041321546974134261850810287559549022336113703181657533900107952462561073348860448839146252199018889774932303579564316366136084505397155182417201135925353080357143575011107744049349180953967342320582328622479303789535247939580666650209718217883561959953492080370841798027588843845738715619541402906512953053144105150603603829841535435769880571393756084940570277591200815556245313342525186430548368592318362411758742800322928956388087457363087394386869948022249400089991237483191727768333183985125377594704590536870609095331088378383636159994893462267572205425629833200226599603219708833938202827017126055359304321513190610663376014287256706770273750403973778443212475301521371318044223700988698506473705301962147772895613771026420165620705121139004107231333092116465604501444379587923381267151976343504204596761097841378746422055852764131591921808938718197361567074477686873422004794132994230900539981547018656053140581446115270491667693820237080843546568013861058049363433882667185072400629485045801826529397642646805903545774218844333325748090570422374646724196955546989513594461597794720297603063427129674745670672728302153198080034355151159291742038918702991807434179985892763995689938542890033082448709253263211024313654868233844841996010339722208992943810639078983499551753052588186669376164136449808904109192190342284806201147040793502477920771352216728694358421389046986886266338069765454426509488828985248472979303420473667675478454514694795810082669855038997351933250601065230390063748144105681437739185470024019290268528121633844548339062908366116076985077389128016630013235928777106922174339978898222985037757210478769702924222305116670449785191879822486129442222519481037197710186637596846536083818218795558469131785072005056793530941120367655609808429207478393255342276950520006736165692988956179251048954995431557227878412893946966732277366290283371506617417761331807752263245876162508190397385857634872956007434937680037051699430212049986774448521929655855172513650664767469115691009634500263165094224752060048450866403938514941960958884635931916959106696660477647947320912112230719686586849666940191403661580468486099283376424524061013853486783988322459939191567158971269201870749340281555355914421699738650573272298506166073782158745935273135619309181473389817041069581740340727015563116723737388128251422053700374708568903886757514178156235319762502975152770050660716326255081565931714189500171370109654330094326198354136430574363453027543146950770628722098296161140088737525947512986942934472777883622712228761323920998979636225119302023885090389505928260195814510392491345337475291851607306429306453712062100422844482280014385022860339922634947517842442927969365681608742698638545971024307995155367607758281882512055967795225355933219013080295599349143623763691971248731393063676131360481172301151920050343926719100661274550694269001075784173885967911039264532880009373850200518423910576399149127676684026162537096259494705700790788044273022056085873377041942952913357468377275385358428485296925011880047628320027964142813004361561951834737968475211332502429489402288490958127783212336843262997657018728207071161991989966625677725257794787267968662833180803510072914086385333226945957799506764293681920564056738757603894584485652594422946263391877121937401539533911613783130826090871524354114599114935287167810224957704753306818756914374814854268846245437748878624125900944281855263867244240216332710741671385113326321222913646434138543004980812617699396847242563202275256958417145358417206408353145611348014620289637299561270546862281802273967885863942369390577150429604564295997500416275821457287762950696843670496374422527459227294819111334544006047748196758139537794932568018301768720190336430355324888157000311096931563894717742416691373958568486522103780185734970072554248242992438260519864965326188069487220838466126797474029607207463033347439871597386082956232698888103497897370829189109315113812656863913587250015040255258748920689902989240731956158294739966505383150721279695799658758442587824399517043449975021244757867553574630723737035503603889692391642920635531490232551760614844058608500639586656134133023864155071248072073380518900780997474065096633117069612879732454755103219523562013906304286168724212410643474761924662814574533036120964129653205030152216528561366052233557733301025710300403962258801671079919490783858885601543498910582862326767576151274821856444420555278617056040204380912188134051340483801665522700352366676219782989619098858756460508369578838654313742488249198847830183536849942023567590241607339192426368757074570820495046764769771643536517660947190809508124467630583869225585463671699695008500499856286108407566831334003920938269839940377223980262483114091722003561627835767763746208180336741417475868568220024030194280661998754976434733085668746936710272332861422987329779173641856255614676010642499783453588104077422924561242772706780062035995102345707160769261970914742861199936942752179880519938613986998083339844129449545508639029118671818500376038897854429852150216778064762444370808811256793657181785777272623323006901627920362651375706262824158467991578262891912874666203132658553166731398503394658040674474350497041517994337900585311066655014797262826757304470829880945359150035076552223434652444509440264906055572131654973892188878418382833793579320884242097666617732843849625057602720457431360936992581783338282819091382911429946543027229619909129215101034631698821900602089251335331240330230623630147598962981587758057045420437426505871803930487581539011657029125008026282257547591122766430082238299048074160140006883381821314780754307053782149941729378522383590387523449693528820371092886553893509630789167744273066475579502930455314329011007281399676845009522655233834388419535025849104060387743837192850247195749361868543727280305546139491364770593389121439295864017329856695333092568368833012824930119801206013869756436093605552569033970757638321305845969553216229661592641391596070170309992659296758998508513325344506761092007795686124698292817812154850142834048283405717256565983610754723706916905912605968491817462130560753154453534700087764452038824601815222728673389058945647120563509762655056353886535454413095762394068070182059053508009310726933816730989607072309272170199012457374886305577841189146179492661229674563126979215217447436694189912362582938246412633784653788234513222807782837372883054271111095556027705970795473537910332235658445087101622692611980819400092424776412489944884531990366175224018982456287255136289497421838839284199496259576495217717551389943069594747919035582696488748742738706031158406071771692863198663979168594642263292951352811268470147130611215085272407644399186325908360757159391766039286155720992291832515834556487273535889802041719985949414931380596832183465647824367579940131236126243075087492372743085812403081315876331155646087948443734572676380375304712921016046506491349951008504045994151176632370955394284932265221369123335170545049861175529076756990632541835214569954374770865439868639990181477497754381111188993541890605686310046537575743241855629830512326451956028752795292221555199940121528111901643451344325878665347966268431133480647995604140066298184240471336046845055415972822843348664858272856724548957822922386946636050333424460635277640642511691426241920914568711570271564692623797079280543013092913793112421360824797521934464754241388397386884286557198312788715052814016452507069129941404757797264097369065631749829923805399216557447128075163083602160747773811026827737601664675185986386353287686461246720735316250462573475126461966334498908580885057453059584190999393292543523267953018163485200834570597729446769232183176640683470490462468093892733356980787409206964522510383248412300677953434435584235652666522225633122316369292545529884226264276366321613604179593219625419627814188424071420407398708539333207983493529485277954787817869141867154117919491762780662459342982588018784237503287426980039459728653830043941968767741444455854723809161969056500443982303989806834391154828964119634640685327977467294216878372522939243067382381418957475930607108398048735973566859868147974225575075374227247471372838491358553097830802221181658326595336455185473571972797884557987406433005955074839427611152275753091981670269305524036450989099929178434443820845001525208883149503273312061611436249693993949664906621066370652331523256228517500398445386172422532030908292238764942515104028172826030825582106199470563264864458883155543485901165351046381116423841579252470820362208389666590746414039177229706208382914059735197067526665440411140019425049171783792321850402020220021181488197220037299406056219076019474084727913809917002488788089281141668519916815419423112237933535202682997191247288184945466605315349769016175222508801031391793658380939721708171382235370919087174468397591805642422965340984148130234963713007117792563493749052411610311013666617633444395806690622838494964011920358091618408122571246127488391048063769255662886210368474966007013664809471127334598229158308676784123059164585954248664696160351655070777043353839051119462182953620968139456036015497891803562135396271477612981099529071536126144910393054095195409110434188209667482759614021809945489615291637474886145020146828091255560531658581816346753637365582406751531057166422075599227610652380302803313273164663339806880593654557547372732637290676097954124092698098330641236204828820481646651291193246880681840449926066435456416245466012437696783316279979607563575673067106006758088602246490709589978883603225127589489689225419692056419035597465935704299066211563964752038522044107187108984161173463983992363195681037194529475915577162057849766594038012612818194786707412821608506101411391043592417710067893432277800215193853279024964082052745308090814367912129744874662463154148785827706532078338276938761238052901430223801231651309177830025317970078750764144903601190275989541766613033535359151850534583863893733697850399713356152701692026258541984593311831326042503774700769171597047873877976981276612364502836489108311633499245886957961459465136786056680841472465042814407368015400796743730100175290412675749394320547968444813687804329439168298173788610863289622004771609961623925209245203792115592905960920886867170657095115836195821595693238823704544002229220516944881378400811143137365497618610438554086330057998069206382636955119559995328389516845823821912920113526272356957735734550603230682758711737366543963003995673415424983423504079777615184439771078233006290625594099957125285684892146838159399541461928715885993094059004664681492026074256585001538749591188724794204706820435968632755069011469457773839079990707803929507960165922472411722846114100405387222024164773178909993889030097890555759784932671875472276798697311899823742443218502644168072321313613385541239942596653500957879435242185177531935328626952635129729716339757054599447858257881238854749999718665734281154269777916659074590083830839983701567301788433336536425388268292725565061733341186334411939128172136227153103868972560704364679494051532041961340897000883412187778100583256132324669965582510606934619496918351956280828213666374227046944662381078116800920290403152890088185531324504920872317836375955184797708014247237040274680118608158250259911722415006699326686911030492774472566013081459778857332790194527942008504576750631588422693220071642434153113095165713493649013723118693786806446201113405113857663781408444903160063906301604835511309650491403324989787031421735596238646217209233512643598032619515438607944550224525254042180099405117139018558478029076473105698626074057641121866943337324917188930184115790604485557275796884830621619493225408675158344578656114816687467462242863470405971139019862163846129394220189701966384871630498485138721993613153532986269956589293673046520649779600474060403507263439026809155465013554538596172045136033793426941182474373733971142879131161038975212464726744801657040023024214420359808637300837405443546412223319140058493881862106359304008367752601581077392508253352666181683065162753826155289328546225239466294858690167990970537235266566411253245239239493525688544017029239453083357172297135169040409393752133162316162195769479355103561406648841758740081070415660747442135451838359428658496251884868772440857376018818180778628576701774815094855923118874399456505536962979709318655687551058713900363950619779900949742342495824087727845132117215345539752747679642251747257236449680685713263824320047751316958222082744575207426261722266129020529414455187691452777964180596207080309813608263460431842025745024822478927249268295786231833872216234431565864064084422801942522145714368842903953942862026271831837239726144337710201460005091902706609420154878785503269366518960620283684029717493537967600867177370730573274662110853852760053238270749446175129208577349513827020045627562666228081776626748687354268374130675124011994513578771022725210608864643931718078572788915315870161034999174866747681014989996996062081798402470405652872841613282337713634917204199578613382455957456711296443949882425689456307395635564132503730579969707971375521626852939297632007556877844042414001574263319494140769774125395714882017058521179714587911656308595417215939017745903147001546881756426298202314365144513299888641142038030404447070206858163879285271724290091711861255405342098788254107532447147796867949538501029387321955646684529775117520612420487281443355735677992714864030165885158917055520632905249545804937348180843293150066648660722533021227224133224588565001855155059837118979999334622577253368200511486159340704406730570056195423500472999407559613118815706144588590237928746585739811464939590263056042162058854076790567557447099427728813446658387012947706606831036086380347581172594350369384510292239265999037006325091769863132082408116739772118363209851652069022650554982097424714933325243094194686296823411443689885424735461507852920369413625354854831373073406225447574289538922651217991336640380889762215896937693900428554055044230911747768034008281138898797479468521392746452879504333411751600501143755543134431583447701144858902137444271773486742748917392118415064932549746688604324776546937187470128315139231019313801007550439261880929971514540048329598212268689541672413984381163929685037192866864027355690175972958299499959066831225262086841676126014729755522095908900744271784883394858351919895398255708324042187750360046324888320395482681988580893174327637011511414375620620023718354368967691744171505364083596424341041905623595142447493682393319586251019141547658514711233434286900824471088113302192468258839270526997651062200038130849452965858484316131143329370071167444601135667349099089149504368555450935604271105509836281617963271268580007202487878946043853428814107276539377176515512966210111325863629917262480028238656002585984301512752715065295743318873964448491404337353825502281428459801770997674951026052571519863511702974798530093465275731010461673002328032424824295478348332379683919159735379243374154209011505017235222584773601806444220109093944570908352173328722039751715731802030640156116765340267676295320702086143469524089702824893348970199218389502600812155166591036869259207255182321513917290086713723154900851460817674070491436996196951013942646092984878755340632791871343250049757233211088573791364427553805249450162308692194503456352382468105665829961749237280289322926492959590052736788672320692592250519666205160619061378791315240378637384757455601607510038116169598735876959159525982473538998360448590314490165272653654133900942654140301553553624251277638236774556403721484268986767650128049295908077981234797469774083293846412579468472308401632240102968262938892130724635867360124841649370258121465703526000432904077786718460972470849261781136511082621263159146226086640539509228646418916051937040888438703976517565820594069399052005075957154596155138884905403349092297684169601774977469135348437537671779218241868076206035039638840329371893597879132450848006814080355744702101379843305011830787720665649853901385812709876425186008354626336098209660325736121678151223458138146537883482865915980052330586288608833233795241133864023689963644286359633435450103068602639571620969268339163568779309633129618404252771826479097203468028399209310623149683430709278459250510794817337880200483419895472897265599015638381122956598628957395279955062472709306187331877874212065675124009526061011973370121324419147556937552308256730728647240108328143339602681758349863522596846791168005240442468759360730529731556109806726806154224221929497212880887876789313638918078864077131668909988548820179429009354027103775393703811402130235980333092392509278112255627669656345612397456845734037126172019287304836103763379778299696147343470238828194231547291505264083152362912010801791354669781323822842740561639024951769403860321636127870322679954768629425933054075640502859267802591768669973595163218678123023577875784445480867710002067287315250203792420259166964670495735668912115564863331862804054502217092055556988350223984165717992160913077396076779959443236705585027028547042595028649828044549402960011584859651240119206454212954015643940396215727576597880435168587863851383827848910039595901151781014556323986857165738641202738663929216746888493166387782557542586316104888185731337709893360586952855176534638476562022353231433858002193731014436048877246907894679742857621669493990083501273386818088810210251033851196538392542844379430859134259187093775244333518538433911432698401751546926357963200352340462961642343378276105938621898131383560650797468069421823447228667545335086109786593269393749831664332954848861502055907582716137738666609818127768945849433151900040998494837055064919515873761513557706948969378461849073365834964555286461651686314404483474131217704529691494652082524925006977592064143911124074858233814995871129450384258444583873267968308949251458367399469809475872457610394869313439988854090957836792033110600398110833319541982786853518981675930585245398138636541000117272466066441442798105603238007666210712496053228052099159426650448994823580218548583789317632530629513263745782775087718947500237230143270857250443633845446091711063052259199257824003278368292263640236911243894898474509186662159361852081439438956712590100414116779127617565415093943248329003123707866710392016209362472920292423036915844578018923135956655248615576183921070495606491968210589081361810009560510408692054987235539203907387565413469079963923902637161260385773396984013331594975006199318420032110586161607070314877597623144477278151961222332440991068484510165441682332086102183218902586539438260256762576692907860476060438437930011846293769032560145031233606256915186564784343525732240232639358748228610373460759749664402142828511273416063373652838251355799286834148975663655010165009035778397517515821360076484942663030447519870873285283203943738747065498026173881482516063022062063284048902985664750255434526379224553386433789157014361648443114340067708948372454167504503669951082779226876952053763888890154288766603512919351263728790704554238560347765000493506226841522180809272145432447996282815177858622029889113415622378327691355663345394698138373262391211654271534507300730171455403438421264848979436940168076823563583294041734677305556883790983587763688054491196104215948498280112981718697574441876072748146842175853730365924566933268228022437286307668315759061362574469027317374507914028788128114727271315593583525592444334546531604354469554335814526661832432018454138190303810977062621063879746825319519757356067925175844426881857280211756061508696711723193226560004777008024005016698986257468391117333921725331111926739095590540957109212855686150589477604732999690809991836768569390482261463686018545233299314514725626793566906648112896857680958134464162540366915772718912357122870445956896653238743733938890890327427865727167904563472201996588112511107204624527757957568868142549377412720741256305200639543184900716362443130982820748491711592954337700214334705762448239104540129587332442530025907208625344066454299188151596495272161372378630386760731914173411567764690992883457323597945856227553938504069055234631098501030799995720046852359690255055154145063617824062755607945907794233418158069806804313820457087736860606059620739494214122943867199196066780812080320994689842486073030473676610362956435181797155725882339937005547350490686242849550415267985136233506867160899809673421232984888405996041391015206167293451891765403903182641958798489231328993749518237126325855791064627417788567131772064783308605554983015363796408318546785517981430025926104957047847873849998484100690415342008237194487411288895053093774107009398106652919477902277024007769049877961755065642231531676382812396083637752023037726535823852014270110184293803202286992606838604075697256545068366768522128323660075829080895543095842543169154961894859717182112358981886523056164888071697749615217513956379758741532799321411291083237150875568349227071275455123288394738843473962125881751002372540796160666867964854671326630708366940194025336552042241510903019099434685058214715211039921350900002110636955505096984543515928466271550279375237335934501806358502962453912478158953238099585862079723576427314112870555831492956666515731484169051082945073534193594509264917384823380043562482086506631471394158289750919822105410907443359622216396188487241920256094380966035965092311966481997333486525309482352340535652186432340663222140005029659834438691001239027213462575092836319270169085682299636988391018798980821644308337787672691083471402635602129732048678035608434438828832083626864414362268238240786121271122894861906454827863744855517752592125635756919736433072647063706438214147030440067480549162821019416956658618033123946071198928885904726264492057454132517415984969126981643645252930504730464314981341586117994590371864830538279215967943293582530167022760855536891192892928913437260699343262397181925126419329888079112403687316974118398431636405842685458191273754412063835712780474348660758920704601988954565870795794177974030471647273932311049019915880480853464709033469330459126441043316100146419219894873501825166374023721421595546317276336590215418814556292425187817553903720672231666237513132120120835097766792915755545409277608239087071280452433097950745975314278140551505841369064292378679362675274057931398436166625780109715288054821268605494557932180093953903147255933341610172289356080516038785516997419014235763720732784494460346518361163974495243534689247899742830496995926162533227437655842343567347509061165080455304005025549313608040410700405019269873297590138234693689988225285193750507010193578628545752316722548017002457485480894025039150767782206450706696422157123742621046718472917580230600420091387714369280543040463821789420275898648268646962596552196005393129588278599889404277008228335064641639697945680475377362724790015399958339652977927415676005979932217424222993020330863667334440682134298124982757519132222422492441273956490857056758501931431296310491478899482371181046273974067793070279214212114788183205311563376905605737994928895014989753361544516036754425853126154046763083076195075141289813724838826038709259371689996360987244316327985243541821270390137490007856942142494503665347579563106012577618069712607256710568858191292485144341076564833943774667966312607807234038701164377100796307473418436305157528981252083237638157765743163902665429212460471193961725525161838136895966511536352744333381604639014950645164433898695089714675424335135398905918672940703396985340898921096640150624154824965625653701571146183887103860448172796029604955613735450077771873299201674769558627260537707393588489179304999532403215972732724275231148979336371202017541423493764157355668568795303177186420424817762496266433666320127818815388830637378520585039005127016080627934421874066986451110317688629164085253717739134985657722959258861565252290920587318139910199703236243432189522642049960542597803050967421406580206681538817865279190197424886265067998557560694718040071165491428125447112378196480172963003548327992563914266099568153411438681990532737335598371229964265076337689750349915571111546224194296658687195990553356712683919867487167539974594595788922986793180931859801091264761780765720178135441958325830476941726091090378047561511159731096049878000092009030230790652879050692519625832663153296292712286599982841483157938084568261728301768932684279822489211453337236559359859896788507457182206220981848798338361599017973813814852397344620486622298439416210599747420527845079219264308186407059540593505720702497777787373523491828406451669539336635231811683780978024892670642749879090440581065033671651963347144972682791709534386831530408785753397768211012989726234946511641463057617655555639509134313288713841200547088393978863556039639137845744676090656627292427216648997612208992228231401155875346553861044833877872971012930647159986629479066649060174349724186895818979820457837054208254288907217234748026643633040049808591556134940823981021393794783210964173021372916027927549456930257651917830593176846731722570629365935479019321637270477431268122851404623358660466710596810782019014870279220822699985067494951159484107852278348372907866677154837144395706834656251813405491798487855861088116633463992458656122864761611246432847636141301662783671770304582843953141177564795443665072225321346420427728706750306481580914738555219981980603402575632848462632266036647959466032129261632628902461093624282276005803641191221664809642379038699675679994396307659585161137460127337782681029416222560178630170590118232381703427664118313902516020924236095691932309615930469791978076896507417608274149152966174551952987456340728611123674258088007527760974188232271741429992002429526691462890423979768570897601179187113801827711794633585319267123345538097354849244956608782500267603747591774622481966837746444314855854703561663231057294368121743623556945334139994654084159495452742105534814152427809611960410543431805053617785538895607687812230174693376522006422843069833989260662889839197372356839410918031574377987519093078899156926665896716152489485493807767410341651954882262887555624285845598011687639239273275822844328105235220521871263333648806090240892338405941705556582211189910687741519841856330602538881360186663723857246500566034191572427623712005025888826829371425476200736091918114216123942380601078413763193822740397687168538684945106218318322011314399390542141334035334442318081730608774922451402445023799226084933902012835263740799199247810614130641424596623443516232263838629809624122031816637911903045570338355344681023057061034325930911067787795771249317181204050964253220259337404525162408289339516379524917243076728433566253131946579809599658421358374695031647910679709076964534538469795879580564933729061598796634526582544138021189839502756742243517551712471662913679788679012145759204902985753390242451239518736514048808240787604207184670968915395263495291307495383065659183787813186243346176369998360826123411208457281353770857852457640506255767964440266714045764656032887049151293451761789841832051888636232895873414854829093925386633845439985168051091102682995123375493386271559543437005782576224883450551714889359667885115613517996548176046430118454009627324524503112485442530171787602260293705017684160740120647146674992562660976933098457344137903807322086874344069924847082869124965425240965589913049228105492272299839042212090975348594481028532459481031002021991917484327034702947949752476462011349503537676047896869178273025149533664015039029479622691082586218986084461892160894402906165470785881068564454654065271842696342653601093649888874642438705346331689897533761250606158297781527930632202149607606112034557959929063293224664084113061501968146140678459586025238266397783872587510257682335101464119560841598538751565380168175436467503918674404980277665773016540296577701267839790436214422595354429011339905486382293492786617179840492655507422809372985560375415700762849279974769770058700498062469804462344941386627193443728732992441782848949229357966987532175001978997415157540490317710108674211269582771935056497506876326266622681099003636869380580477139501350825929487590911646884624471043217617412819984936072416148202533897960527599477650979777752387568815156344486093925392577622939301597518014242851687651364448092394171463424007637166070012105825459653769624559056569141683583335965894904588203361271360252911245705742899183328609653175203743951202902513564543585497630212889816939819594079673519082800437680381693043559478950159032127502156245702770553906642710071779963871048619920991931909714246184480096188613248924160217373995712834701749574704167123026667264630782041714217129143183510146509908545602598149344351889473909105907399167097207885475312384348509099573000797710874276994332185687399760986712931440099600065772362956761314568754063311446161796686378858007309313251965779111657464387331068607949940307826310448215259370501453790135717300301755291636071554459878646892866081873463116558404466118109897864540867668100603835159923299395444643684117651951681879092293381628107355160933531101816596538093962940875618569577989588764305501545103782698995758956663665518118247173148143475629717397469866078529253489374607978417103077012603339707778581207317850840326882210905458878641933576780567072450512135012329304631684923939604119108016234429108138900393196783794569185782875482133390945586500527224000046668174684498420060015051993301655334716110547891178811790818570474836052932110410995839936851816391379940169107538244043329593530630803212604451592606755826119072790568916557635994316033098027332233994569218751289076863471190510368087240095016059028448528159310992619413102203803832496797302261659139309021524903667082393642579628618805359574973804572921039896703983714043418278312529061344982965993160707673490704058688184736321774392993407510777783846116563695302656320768435726098317186687855791679471411857161875483520727836352262998236568743263985400937491465173548413136830867797503187314063277778903689141246615372354210587650995928545897914463050537111864854392247746937102111467107930424818727049116129501755609064897467843410095802872858311849819758254625275639023182817203113091986617058705496661541961074565505734192033245962733944290958176787425197568526582854459099970552545725107139292664283180814044853528860013774338624643437532240164325004041326391190907441860736785206606519569538998738571578480890498985096801847829831508655413064570511979102382073693970965832765633013519573975555747379078437686900860325244374917187272271596865496104295653549939251708999465741738632490868776495136730501197252716280324573229550385497170888228229476361849996619485429637104847174128866144246684029023384403587340177081145366974356187055286697300797280540576666763357346202944483660110307812170282206037710086636748562267741399501381807565715053940810182775069360335157992701100589328873921384575806347216735673653628407939823078609443537638159973686752408705726411459196441356385078104142219025732011252254258400422958969340448779217317711518704353727282489314114717370037412195090702039746649789913469916085518588892208639143905250109436948149675197388930498219546380920731065173150320022809058038289696260320007463685927614401832994486916250102613901373468208922233458331002774550402769705602014612242453932608026680099537114491435173334565266723503094688014076027118909052664878521167508589973244558282801935618061166962545495527355402718886463389112429393632142214498506478291661516002350744379808743806101904986588647227142656665537864293907349922124469378270680118189527763916454151691756116764617899391875899358049142989719286151286258760456569160846403234187685307751627782236641506621007789468290221746426995433806035269419198217563933816033068624451509761248025881901379263043512719561842713127082039374025121709760022085988079754617138277100733992229830713563168334794275913739546830482179213128944848503048376832097575899741424535935521723002466934948858542088489050596924966464744776992881415747291262649170872669966360975953390784872996834983550689414570603430515771148438129093444176324345113917092334818133520325740300701465971742752620983321511617012183872828670390776978820953852205460930442448525880435629500227383622187321285078518637345455006940135905473647306190925721575096516270958156670523495807790657200606834101797465138605924416647290424092786570804824364226162511389628082277372359990464952500537521318570983874290860333221297388426220548109199804017915675232817397338758479783247584666955496787853681519258798512024504620532945399222593822789272034033116759717088645577562370210173639644364838845699323051091839778926098726968488694999912945565146440538949273581717009425790283230103722520681032510709902165011165755134255370237896697159207279508261226265375886356751799464973786924913889220237469872642879910593060207806186954032839746229168845754033996027657203602826549318897332482098310197630841046538260482266492917266230253876547964579395907636067469084654291502108367705070056114132230534790791634304718259534731080174483646774450446687355156737893943395144473008874654353753069869357049609020071975478601386833484634631990422166488342804969301082831040881244675673519851542667267530971474286618279002358621404077867287771068490329765275710644275938733005269633740898556044713088871782220247752443850081468757166999044826150814740169075372592343493566021257481099915161926654582057996476031213892310841805132630984307650993698034730689679711550738669646175452928052708980373730959668588704107775326356440865016725767301738862481148894207477142424178551448752036723562321668563139844641521082018357885981349710102380818628664396234262685015103443144096281333262369380535078283772945252983944687204447114827071806039484500975090095192309359152616979219855327786484636015243551625122687881525644920488351928781710756016498201041017706531275766720723757401749132926328273468368104220697344830113019334586709650028722911125326051066799815982354384623695588856795879946748828203194757246466266975033419301741345069609825131280536191181713373790919301139312965375469100635296053147267810259136158113112403535776553337292323501185173763935468632562700983472744491174051865898526339800636404988187627333392934224193377760969688272487070767062789307474333569070138364229441677183922518670945370176099826709477531497968601823261803670900595539902997370804311675641864918757784275269493240607291062079537518837324004600179898970160988280106646476327499100619492289366850542509456794847418915353520521480925050441855509618782560187520644073831904638211296585297286239983264526518556056559377912041052029895705451987488907910570405760691605500541813390178666642625009941757617551781550346377171212447456249280135421109583100261979853643499984331451657650710870771020747759348474179629778438797019960398547686914108420615453081996260494204704311664379634901928239687927815731185108594828941113482433509026055355883025080285339218465726777855427858592967067393890903621263029617528723554234522040674846009614972107447665496522975483312132683224828715904502960804977040874502947524804196622684391194406698697382861255425632932635191589030584443840568819092094558569424992493193640971991338610919784875626808772790417755010583211650632462525943976852618489435509430037607155283806114654815185420656172709419067446688132268005025973124978106254600089243051302653988810250042131114721532491971229316929419841547202512272031746244157160351814904504621033071551680609597569590413625719517092227122073192505888893633781770629483141169009280425339036696125611885858627185360557127772190805931302513892626111267395018567180300633296359213536047338323216199248955110490570912972827748412013941700347406467466994039301300247760906890447989708270967517389959656849491933966346002772322408737135505215556539677355607610289684134494063205500705507166246136553482871105771688488253303289540838781147876381073412964969003812320258645682066804541359228341447453200208207214989541904917869651951216449344348493810691371956306123059333510442927857232694254331815794377118930856557333576190131929483060435400007089529327989614783670124078384767621386420292259974076169930600788109642719790244311398950999945194960102410845896636716592943838782342185474509542704522122493767769323833559509915168447446225135748578714413208691352684161605234984516424358707756640739112052998387441216613228470022768928571563529006270785202274075967266874422240071293020866276283321487975179045055559152128234848399094866339549366435411437505287380472370409968151112928068539369889224109509059656634824344099292453207845039051332655524559495708497669522525022250454110545504047730758346007273624010624262333901676271702432461859823188369145125740948392019148900955653402304289874775672807342793018650491136016848208021503670480685935464502686406453041954851462771466237969379580378013346061759207927807444486123894035020569818897555873832232085896971394939668854351682046617733659813212966296704750980565241085850043622889637560674074157316084844777830443319802210148526552765339724738094946185301271107650151740852344357623721531484376476139958764532782002208561703429439580013225547904197878348809757749784773075565548580788099767862717995569884373025111034917497501237218262708216002831495424233363532120653555130644092686063387220104783612550477881986987401837343509936102712593455765024020097471155937053870815837923705120348887132255982460022305584188054815976397232106366483976888333375885698283170091769111986257277368110644372423804163790454224693461550164348506387005072624483406975079025967004319951407453932603742135876280153447195129338297559274386166526536102491321502253600631248532147237221225582506402024291280781165584471073234294926678133518227601097163114098765490329820890093418639261923664679298068278331967782702209892060320368362383006362225622421120009128681911127428348644449968024141558760558999367052034117123544675967692549344824068061933735913056993920088289774046411443067300583109760513816012631510346126123833612440329617305761767763169775274237246266729654071397268387955607725166384503060207686420688375253889791561337581109730268889174986540475206395664008030393130254594057845926338282579658142184831182734875825828935104668371916639009508390237452819251622869114888123092500718149668855771211363042349275553427535242502117568030060716210671670401775712801932228677823746135239257859032495112116122898366760336637751891356664982459838746543918001915566390002029750974337803575543302125256972759202272706063480938564185333212851522407347622072912823125362524007343758415627198970438747267977427452450161209152028196628190426568558831059475069308507943796032858232373511198298660643219887356009645873487940882159279334132149877904366990811227929596021755961833489540409797253730478958656783980549102785545405849931324656830850811109199501595216754805321370763121412270739151799911778217489711468784303262338646223871191502078038601793099512779114369460019992059949039789374625103782558976499856240640550283141322736961126900522042924565105066086724345438158560588936722512235028884250529741054556140480221741067002362523247753393873358493089392005410912894058531428950547293736066737621476510819190651462512634891285903216708874448965955171428122667560382876559568516271120736494979905660010893403783123656133824660974010302527186227221548891685610109426135101407723651258276438489853894120023474373097808214264338997262035236952975699732194717066200135631289865518887107977180767752119656329808514578204903774856240313617098040938280023492757098651384068862481668542950341118108988661639135902803152186354364130578722220093770832287389728164500126984253985334852422774087048869285747523623123352403083364905349219934210475561909156754796564641447020944640572810250696970799940434877884956255726633592817349357614724315518204905913533075044964766447011423563137445091455982403744284783980546783753238362769675994800246307115181739762512674990850381250776194197867141054524442938510301790189775060906900657619097135441701249532227128646938938215070495008175598824673841247209850808028582645370181669704825191933531470148836153215972398504614773277061202657175704224526374181591764927084341999784559724080814622589193530737139312060101588107473936843111572643235379560112532038586517082423901877256601743309052920451968523037859502508136741613951235024851655537641411985604870139205939094954114475884434843105433248765911446262668724681081210983540679966936428253692636279267957728223761143765805317308936737559107912712625892709526245691085147947497975091777649230152136361352181212579526084207677970543450890369578149555786469297271923318998473999393618821507512733772229226993014003714932269725810111317835247895239109349146298311355155906781440112579174426177691625655412856696238325361379892265316156073799978767460442511390408877014998072555747294727145042098656542737727171169022683220814169444848185946639737904531065992155885088986228093158812295184548014678365423082028979724297039526951035277792345141901390028927721235899138817067194562460043042973086880455815263563353593660789162865482164106714556590035376205317545052387795561937074571019140605414258253435089389149815750101217835645428599843393885890971793479184121190455340630985885116083512391815255828348391953374081925717354426143110614890379591832968834126704320055888947846211629459016763547565006178847303906638418964836068538804611087898102934654642433558945298395602333281968745485267900200245799731038866436604202204390898675813048232251795760646977018810315218550076940133732374787231255635225920162222849240141128796357738326117478433812867596766548428436516929881464799618819009261690215927406777940412196346166382318360166801605294552053616150416156679738088514260211821805095874021565990213862755833913048646517994192320562824815091007196043047868557731852135059700939038971888497524244741686700588513482650088725023290191307996607947159298837762344249123167209822890340874098020435526154291621410340955175031681526974569944551154781957838549938871158916627856948095408702595460300506587286327634804686637453910417068908857787682979317420358732852079575448110290502382614806603670394554641248949978668215216578819198370809632132757614831502893392648925938377183460080938918457277470869728213951218277528012993006276586001548420071135020790684886887919415444340621596596292774546319023654880400320734187678837056451491732110011763833194340533246313718716234542109685601738564372161508644125331455511929134282106671061050301799175647800306246879014944194406039852910481875749874534199169537891840268564646428130491022500934510933906643546287763367250990687678032727491976663846715157881999257642475746727341694283351620522050707948621883716809865287673442985984157959058124510600200397448642942907999798696854152774552308251871179990982084601223690998006485263979392196285788975605795338617467565670550993163098657081986442059367511390255695181378755106214803692981179744300514508415713722901723114923277020924445462436697032743180607959994105925353148333991381802166281396057452003684414310964367825913544116995336582226080974272186279230584609748373496939055916298317143516856257862557890185213959094513000814503405987571738978275672858314580121030935777428767016081064095021341068502670404377353093164236424199609380055222146375706948079518126659137906856696217719917199573084394434174347830289365666678381467780401631640622020894933960023180253106567956243451105863658315883233864811868478490437154685314072060401773483213215677826388056342298475791684729745712067829997171750104412455583932255547107403800284786478551471198115636540094707428217718796751144892688184817414335301642901693658421022546087356866935231317797543787873102251580079609135994215220818131784492398045350510839332149930270616929359391073931307872049101226023351009803360939671623173912507201320679970466696873250461149717572481919825201127577917918530008959255821541308590450374839644129681614716911220685523693667328197900180959531558404266477808585809052767841936192271725913545455521614189751518865357187157186911091983129471943870661543623180744050478922405816197311334014529890895368563449954750575231660713605635627184336976647501741479458094661989177172508717262473435870804289283951281945077133298159669302441142260764446644526392703101425379313866288724415588954067164635168269464402686200577888002614579234608975844585992850979316042194366100374345711173417955756116781265357490826044892168858214640131637770673979990787258276137284771247079688347397955075200111504085990557321144987573392762930346152282751939795470815511753136333730615495772922328328759433216395100464085971275082541974514478641285032387229303318843566929719596101596384186167851509044273866325872975222306518596728521287855558587244633177670013197789844220492570595707838466915717730862773174444105830018412467526134379418524999300035156688245756181268349513270222600742658986307789144007724774608889548022321575456841856988254595109167837469570042491753078371759228681034795586735628990277083180387216225923871194054299422361083266712825140598226507438927468320457112417207117457585657016855496937260336495596330350329303011944691049699737519724824011841660828063161524815304458079661012086805837729646377473859414656371410788060145572098360301648886758318883941105837891513925858621543617437499855690174093103650570146515057604668218172679506043646407770655152787245554094073185928035569976836365261743252379895668626263626457136111699516982034010235096805893727415531061685551064417224229707202307682480632441516903648477894688551597213133886551600962892078545788109764179031644968782595513141867548075070016559302149083258118235866046933109139818520504587546402729073224828260566722227476193283282052593038237186637961023152355915660062292544750739571927556906830553295369608569028255375824200031696137879911711233862697063518872260888707892799953224480228685657040146300685205084181374146327198442989702842527664400806397880340743579342648471135996389391982298587417203900328698277536243669240758803558603779499831808632870181886181507783505403673800128325322282878226010569685664412925024835045226580829864384468945654545973575420167220831397239575340874957509837244593173655474959918476839076134492924264579305265512717273108639051890199382626206885079535141844143447690131415985788621881990233494995967736654230416148228285287371228024297695852432794405182802379226108282078666454926140942831108195314582534037195275134869377997717428577515955405776530707675285829797274903202277541739445871457695247902021639580338670253619347997207875057906749336951168149048063274577199894958811378940022298355280801416351525574943903677739535645844081263261534664070698557597064495893124892372169486856641598278991011343890823300519570913092152850651449055109183322212707859705255724990744447426615913148921325840238275587231379940198473173262418179418907737582517985198601383614254785832274234349681441290451748626685913157286240752903374422106683077482776190824706746734407478364943963503008016929358287693785473871245874917316346751320449587313388134546836601984662077416892749778802692664994740722269479371677640554871282799096205538406718050695895766219089080487105851240010056617590670352369133388156443222759120686423595295411637784794530372783606761441670079759834385756214596325367777193180015148030934461332856301524903065937194465344832010969113512844218489127273879535676177550357655042555605620273268953531764568630127812930221488087686454598516727868260476917956719981418889265191089923296110698204795175460049911222154167726873725340603271688575025591345621280941836314975981581600394205212740523240328451589267447412778976720960301962514830923508613282510523042572369438040417309176306813923429904414654399469765877680982432948970584386511849606630194345329770843224629694053303325601180688436576509181282254938719981897501856633255190424193141329558260330974881911436156118704777903052006281434261610809994416362857797523182942169751424305080114949542195794947201020048629897643289249753875996154144151880731667709473631868784654173359349423225091729138923319823113481250443336055648075609783293203411920636016127815392867437202564814858688416251566439212520681402824744616346740289243352906245576549572065313836314243446588336281725042624331407903883571332171213581466510053876431265331262867445730379386235575952863924093428669904211205015474901347932310491449294691362095148338894694330970564356781816827472963061070525397927375934434277729113704657510982603800743194825304667642278061652297610662857375348624905376306747663548038884586121754835264815700107915449155007478256502614386197662111965226993794661266458917535837325256545207847161970243107903944608069379616998086480159665935239850738230003593064623058736656855273756515978657482955831090838334166669477726641530238111928531311395889668064186555489684204429145657175975680693265050585004997952439608129677771133684850872285037393270481961935807567440913332549923134540745684003609752647864112084106113588035706025902092962694607250671910115037172751463909728171039250496675926163506525052540869281253260979067306293571402849969097067600775542772044504128025560515661033051858167927233901589610200063648291342615694458165854189754193622826875586892729814597425810333568428303328153474605857122907364778070999031185224487266256224557437239954215439936218593289357182641928095068917965375091141085486603422042974245736781789361220909683711821557074294866349961721392231272177573013827338836316262485338809438406673659466281482550250618592278731739656283422970507746795648865514910234461647906871255829723499664275125075307149490050013624829043051471285362695590594987049164039071915548823113415633516417935237897371934251057695105196687746992412819168913521779962568089314918817652939850058417758449378478997967324737593893254683098939880274159215741800801068016734691209456949333785249246059403482772454496942403793561974910793643496258468374360892464836501647956486834493334028873316527322464881944349772837468241982778472994282932642034466672980278100890948080992342910597226644392508041509486809844807428415201156485677432054373657449193194469795193970194550197774630629298187451046394534867185940138915569027559050287824691809410074834986333288270435273869658906090280746378264074430512877869324913439803153276251730809624972051572962775698704619180466124317221685135617717286977910256986012858991484651829698037130539250481122450060963615422227993945816879483300838437604338406871157127922626667228537874652762517651440180184217467023991192977416583961683399107951384357874010078887186683863636830684011705033928840178704798555522760579750176673201994345840624220807455260562842872247774268266586962916554100744645184042935524127595481292807043270943794320369736964216534956380832608514610868221768875805977981059040340217393061538759113028206434259482072043664629598674496712553675599410996315222099755548693026832790851676394074848757481558841131891562146032856337787994191079948050664218593471524612061956679575769526141942453890643945135795874864866887632556017771600697869702663272385362406351108202789533781481020031024061696786212555538921519293288858979574871937952715374895471756762702803394871859630602910963620582097784572789853734081932253659745396411452335401054429772171222367335861807167368665563328522466402824736228507164341549515909974304383417648899535455144687101582108577453909638122087466345712246923950346397251302292723164418122321615980754470601795470696107826711452551993959012486197358222408425947417105576064567731956417950501023729510725856318082136714469700558520690872315786548934028491220174555785511242796279984468881539900082663000832689302275289321311250741854709162706198164819926194106079905676500096233725529560178688430975353837701634431437209984140500003963222655668542308196036683969249144515089995865211823651301167373836043843941062535583690892800478352381490376162779743856361785702810780091868810206853261293478484372632087063530557419578111505455582754852112986273644372581055022605273509787783943891899228083579039915598767154379031707690133947752686498291125670917497297136370959036458190554924175867687021386061008479668815600343500110055093832094850280649446000983125825839990322938102341338333491195850181747226047931515510723809241534797345165063353208745285602294580566912188640019161512877780102248753974723153626392304361547769483539755000195806301710437044225740141857251215994420015842846145043079349388936749009572376135436952737536079633327944454830744548648901074685011156372641333427636224811705461434662249264199499370182720522305433115225142157563295887395798064394507923397814824542774264991634244187289965446829867495696633283806379899322779257221140095088816722401894093621821455185106889518928744330907993906699031612300931773218199285880713144939705755588139123787476920918675671843414592134648252790035898811885620404434706495754225098122513302535069872246791990525520892465489626296508469316556021784912254876007629685128227849749703719163588253047668323739564847865259825697306970713189104742545359555051374335053220270185156116747802007107919681135183519733688867120140891017972196211640676211079461919962850771453549080567685153640196967547966789627677135375944286108548205507382789838427851492107187845089881662049462090681878853989738135594043508058893507166957648625471793467949678115808645356092088747136015413539340727811268563885859432933098474343198055151065509470174838641465897105572695365565442202576409680169472373321358342331916244696029755682652659043372628040165495283946243589452922412071770734757635429883628533006534712463709284522854643510604067812181801143043943899620232304944465396943005194181835136412545698079988439201133575587494471843354561854568151353676137275394083487923322000902856812668638111020522017072244649964405620628606279454948443707450949507463696645798623584730882640690324268926550137900686350266333078875956312509836502047713546740011846414654592832039822536762803452288006831896256049709194845049109302480402101881170817415265002373057987736472595179325660997310373264875631765927775731265101556419444578615431180840360491226816769940875238282906111313474494027992477287116057073370985374110877458532386430673859384914863961757908340163976447598888569405758252967053348081116264633911650499526881418630302717827344572807743644653584762722560678549364570256237693171782031452840106793012704931400408163469193788612075429951447115291720206068434858670304084105908868692418825414685218280817165186555330049858720964725944426505470851655128073890500433436171140729765509813157884699212125179277592376487561178702699776486129461401708938559712679140113946314809093779109148327743510556774868715931772463771845540114016636250377471410014727609289960853498789413138059188627091497519980609690843430070216498789114244851599030066666882381518908279122566487050716036584476857115244559712691330854230382530857658088698547745365210175925504276591359852188675216317912629151194233639722768061964395129970902233255716372192635093677280860826544617218698859599596431886572872317842094335464453913662271370961131077931653604548575990556698231919517423517801731616525647990179545683089319155337198823984948067256611878936603150568152784193628662985184152236016755810954022607470392401937007987245378827832035250199113341576519904974879653718137722200841670813455313467455651483742595266989105142265000742941217745899446388787249550335624338723922094462744661227643911080305878048552194164104193764091681601820913169145029554998001345905391154457179498776668125413910360320326229597744459555581708101799798465123785618609719348892737520375852994743338596555557704679340297627424826716809361057685318243238637039607973110057390294298153670012453484797711514277254446471618589944825469560893365076503475625997638712554271016987059643632089700287771797298551382535160239098660852786383154852124687510393453900887880893285560132085192754619793392884381552533233278069007268604384656460473821386628643912508383191720042747322995849127154298358902646801311826022108862867695617188184595958783814327525184649640345195513863447163683547727256547330729430248971119491264396263193592007153388053821962420835729921919449079272573743093377270826560036763711425478215473470541653106335261488019138516976610366129277408677920571776711071047903007008036650751308329640472946439503857312718759110022633683896630889276734178775872971659600448999287891751619901640385519530138732592614156055651114504295040138443818267596006236136371612616459475825378747224517428181176034876924320341244658011435791968052117724578272757414429223179605137524716101711882689570320145811508088694388998642465007950345026529012403825472500526644980743374802647668663951415249024985235021737543940978778691972349350136759765183547097407941724802859282501069466018309740488568571522936903734405664983752700154312364725457221475753425074410626025424838165127358005942589500437763896827303981233891315393507191476757460885355188620891110102856500868482614531604863895511017911909881261566650570408892789872118666341730503080919177822950116320390179736283357568768611460564562428725490411769006429052910893368104830151518630549229809804480694528180717497899433073596903304827361260289498103940246310971503228126147239741369890033010155245999907151823976794742383797835009643462032365556171416939644033883540835574983817130637219874390166333391152373461910635727365646647057207691764380986286211344837830451914846882571412216212240175568798506368129018698477839339982024802625782829795773630348113996407239107042439359223548840345215842527084903731542253966630815239824257138308470158302012893401618612430233656667826178701676140563382003930146302115057133016462408853998220089320915019302100738107607942688991961916060626000484068010493994129848373256182759111160252527431487528305073758054008636665416709254816854082955451350827858310470950692919314010528473522491302613953625839704433532287630596017952691374294939060200033459509216923885010452422081611561982949553213762059917616097490114143362575037437723480129992322908443049801610831314467949941331778832717651277645904432462438647333119524090586372178239300871888325153261785267125379352726520916370030362190123086515739196611645061846237187010610364598448313037969209892682450999064782677704684919407301882767877029886320288421565921292515026918315665915691515815372766674580401709072478775941059185376023551774358397441215857168357104384541176952623372574835432417522821927910827899263132936983753673110782976791572915373057327017051011729279398275936618771111910638464998507255702194764885789003592725815220670176549930645887095741725153075875040654842723692514193530676880021075829965518946090326093314351212671139504407161361348986851914583253941263454832895652188027792864704733057785791211506389793522947621719541521022176333259475222348008726648710091965994377245038658275812195620189679822451046484540577771178027482687264187800612413224056056684559961420434568941720458147060916907375560603413532645098105315149071133319652773245539633222232335727363674702571804748420831681159980230367002767830366330894895897324653804586724029411848965408436536974952555013547370158458245120415743031841082150636075258199317567375174953516916010253384711171193131094460860265119654675491352839682793904445703022353511277455364800859439420001916224291834978865342107942795922664593317374650139070066912519004048133686098455560181877103634912430632210185614809059291611509741481147099732705023258981176807163233909924098506934894668768143143361860804433650601166028404615102148725249943296709296233406152040347100974995494038321336072137676150001584497034455828450731231847788683673049260629742110326064139510008181847244181570503785093317830264355187491573948183381688548803191358435166681129861777371302602867014831666609709667735204287999026060655236414531305707010505007176417032836090690043721864558383122039584821296989298975848154723007825919146334218589003167973411800372318474050510114001173633433178983731266371529216083513631154134657532736865529432247404759539357882822238754025151602935086994170271425211927673131472962269786311297153371656783913753614763179877238569656231752642257171066319356542794935391957465446436196749786011497486532690891350577129947532258965125835211614944150777122063591352834668321370947030981393332480455673808543670945415299328492256158481899159131597084171128284764780711677604250457274020567359812877940652351813670198758116239432793616630398880757506678437290927720693282686211693699646994691482435946751643758251412209457982234985622277706583877080091256872783953587864421757294324796568340323066650638103841025142151947411867670306240587086887142453570953882763993102782587490107345538593713394701972104101502317537267909560300660293754722727898873689313312882145602730231404707610902148262993827140143946957127933545894626023883351846894883045605278349045548918259822236142526251471424016811566121305612186958510327247619643253397008178139309849397939283504314084399103754777916116880546047035093255006838457038380193344560932991791610097892150087863662111703360366102352520945412236452698619238763249850003645231836618936186769847423105039358158187599500421956487006767625666533220451478707989546496398963242105249048545877642502336040395486469737612367630213201612933757404604788321373471250331577240879627221755945679297056306787441585567673563074879402351614607695069982718428110725247267177832297973808776856194132905743292881159645000866676132344327165674324648220221264927647265464985757689311265089396020109814353940924040273671717582181550931664814703007053636049171382567571436800148283197661921940329763051465649369784145589564609012809970927271856113082447397613035200499742072020369932446603967473108862664233632901530754935333377359842621264529078369285292672931804843589967463451310051016760354829297782071381050708804428313894151479222858900792704186078832360052664528721221945139940749388413458930520172587713764013042914809603148199037253000534783015999853852171159948700113575279439680283997190374253179625613130700632596345285614039725081808782736992163732976396197466631458053045803485026150289647508871524960401244749653535060744366187740606001071464873881440386627933218095305593289080422929409050456883901039599856276722268627733450382325658432560654729532734014606189541702320238981948180364388349717065720829126520906377544528391226186232023318832959755364018697370290196540217679472842172427530476298519417589793156225604080334330635576985738045301859633477350361387168971098267566055718584209337918063150393121620131302354649481164823658114792359795240595350777645152595051641178572321427895007227695933044354794484564268440375105993358078362378164691026557757610346979676678948857971606519120083307815487178971514130917928700188837695972578729266263973303458122921194419971503451151436031851585174306157132500189811119444019540852093803423759006950718459708792029938122256474334340387562921771705243065260321279306163169111497032270644430355830422617129592669054124862842043147629777722383051301911082080784597120517213880878836524034443649615196216008108531406226284543574370398921043240966401659957871990901932828784816847271622194063713760267840948966243759823947871690765754952637008810390333489110308919132736447352790769604392473605969823015459734589558567204099895023065316072471599701656612822154451806485590312247393577239039772056855034514532948711072766674411661812635386948046297946610552183103424796460789179949976263474349913297180413282836892411534113922481676163622293395640850099890277052909686121820595412920703999159229045400375224162599727623599356717795927209231948767097148120541449096642881925073508776611315149000348182051209860845741536912593434269818840698896638093869475965238847519708142301794399302626678160548430020427599005766119358833922285984566816493379418789226672425072553235674266004240137259307790162274321590806882177756132242597492811229775233641153910807249349766566175908718618629515904657535462518277625021081543679963242745047926373751442658601586663448505422318579767396518689673962383076271870917484941068640526614113820697513912590580759955478951921611146194189581980979065159244685988422107591218086859408627691293393008204084880789195442523120807880470622848267703928957199625356049926957757926793757995593749352780243393119616970605646365847377178692833506673783302664313743434714401474186687731320524567926882252735624321321267874793797888535767127324562178988298768173066734724876564994753691601592989012535888671295634705253619919446954097566251725482671319772756584895071738545801649548234045625064712977063023268489177840452586511041795287704184781901934820929751168709341698432912550700580637087524225708330943826149729597360569528522379381702199285317222148996359266354389763009016936227247687158221015057164395423821132429711289664253146844450443419336935784561151498849644975142404273851677764417942538667886726421587498618461916077195103450732085340743941019547238730015320244426864061473203929175453533665644239232751293298147733452620539154517053401646943066537150576321028068698489291649592177308570094359946264501186570807670266324301308214567932575975685766538835200242965351301078060560366664159107465098459613812595042987075207922200890351586768632820125826599480932233876344090089327561968267066175149841475106475468946482976254374809298354932350450198614968616627044034845572731551416836861073991780674788655965758155514064242219766684609663928482444592083577543394788829006277084789547165396665279236872798057754626662820180085824451911645702525861555259886909500142269791753507016928496004588410057584715883544078994806413394292605649884134830866045198645032152021960064979516176852009345398580857654796106352900658445071744567576375426851958315020812170794933606860128823723155576205375171442331250988856504762077529721138048755863602223376387407432373126017379997792523067438102094185047275149307893618761353428640029640121525707141530634018992290775281494507565370065333821581626782038302114763258695663065097524022140424590474770492774514782223552895249811427092884317254202408761638381273609203140573489587691642632638005334324340093091574296540255053889945868076057951369912630742948552944210715101593808169465463492602647944356522149762169059235111973511418096825613031930997994140451462243932052256679446675979399331065559540286276372612435704602655733688424274884977860695617845211467850191515375429824092290441413587950034363232470516178214317191306409410158349917434250653224911226581324963966290047835562499052520465828394498808694892052532373316304955322499860891715332766520083580129539202334720004439627717193250500047582203210240332525305494385892454339149723277514400584181376756788998889004353118166665982668228743488181556045641345490037618102889753934281051075735836430309062792345661582245441010582986195752513167876225353336416891056696541023127205922879133725305178375058908544251103038165295887375516266267283978041393110830299230595603673096660473068920887396839438674687068003604545823363757659843757336012312846314394654314518190107200457508222262984287883878463650082616103060919294697872340671538132369633744070365703120975906063130022090763115444711724329328387224295096131323008337856785350695904375357755769279493490327647847247709852875550529688385384416637281074275570239673337316843611821780240601219492061462757472670265670488504046214343850671460116761074926668917042425405203913019520602377405937965704422130830245718332467208803966786447405125319362768027375284090497281900769333273630090111072147158863365464961936310979309272517729926571111932920439130108472931703934524810396123837548240249891388179048105277893343194379838300807782995849341405811476553670891938424123423422750275018916994740466876631462236415810756874241569161082730051254354134779557744786950127555208069055845007401377040847607332729790033727503002850706128208426635790159351062251503999645107367673826435135651995265596491820912641099868093783597813056291896368695951318446404868205746332225005616645069296699458153980588277850530747640144421781619416279288664977336191774158910681285686628769864669416503611149986882358511582960002276240465477027684119074787287408903070903675805859043911387257659822397575833481790769280896624643538446784174622153074274204574657065076558362358923561148713618934640705964615579178001460006743567296254222445529440402906165848774622209327149050997837845378672926793668853303826484296896434453463578489104856555746094757070563854941122880191999479232599346202669782868142763507700401374561238351277984918247513276292596288698135720251753218683232293592430199420251573640062371497083291483222265502369860082871290257767416457068994177447008273648217655516890051355389992121101059942665481388625283845704870619466079854057344624878566166854455137416200723101622360181202090750902336096044294233153892288107639079811013260861739957834233633176957957270329044566383527042503952406236452763346113719770520817378320627428631400434328057185478787340170860159676710799550757209457938638228096548827880614171062612634625323024774379808346041633381899815723601111197663008733541955789258249918649853362525242547496767990521379657987447186030158892735857816742688213123010138460124909257347652019224899322226012841346000274676411393071907237397880030274495432415050018798961531073458700495039844238423129366655727843440312416695106725180493990573074463230659726795003399222827340448281740069782769818043015497961130520116961706579369997766668363325288465627190015299225513185161005525784209465211237220211149165214054782784637942552456139874446442438087353139153988533748972942066366539426956118422385499551439119248480618357124787077089150558123603667293371335498335516466279214136772726148762311147346564275662554983446616320993882596974457925855193149268455212981399176418099989176512908503838947710711794948838118061051088870621832861923885225413208003381501394888312229115343797286380191426007344748701894262840339814521855543328820029866928311024199412729756319026008078587309963183257434786988135811503561351752056658261118631900885464050151747563388017150045341994964555866613957394077861097158618940896158903568238932805484874261921778037915162275763377993270807304985828558675369495657441038451977440780861548982520404728147996230807055490501764360756488282202270259029925994032283831043053675006467470290376419246174719878638974772222200663151105041206197856568938584776900144662212526498336930114639342303493588551879584419618159245879433518307285033610595918568634692141621622298266436933370663748065278361010826110948658043721684073149975419530366804111848001249978979451664170591737597376962711520434689333041734909622388215486378675857923954159110524162909604366453748306915676390298763987745493401492650062346158769157034592595714574136761410748386705523229297963426730531962306713518300933247585324287206654493807876521889792947508729085647011099530167794262668754890217037242143551864082779843818677746673620741026483986329387647029030319657995340551159957552712981490638927722217967317370577949763560199118008306170679990278822701297100454675857093150382694756952981757132351965573644161660255744056662043916117951848948366637394754530392224346039451412167888319385948080579706000070019395361582637479730697384268410371860091547719712538122143330810550982337193752465650499172804432589625440780244756809705993568407975133333749514904714795673186837752509377671821944961457999811252030124684528785224159443348415050550818510530116576677718408744636339123081040087820338461783199881348176875932634419290828525409241212593084935730969466677265677979219764906471840584052636926088446767142801851090242208871098691131495750548711713291504362443328494982329716511674187489692798664571904865830923847076355958117959792714750350326919391912038776679325018392351352793658468252564083448301440213406319055506403195807815273245639690803811926604926191174042723186695998028237269528146177445623230223336525520369422801180101114668816294872844183637289923082105855978447101196477488342537837295880275547898520869105493429617418091842481399248790864893175676228454418878094317269968861689342586052584391147064643906226019058721839939518210271618735422167854057115931693518910136123940960083370763811828344413951607639929656167072369510474805908225379503419859237207018147831553631464786216724491653439695885866451656180753548110137212407119599529377854274271156172086328836017423188621817684051841341930602918022421318566589310024558586008471800447251718097750633377201881116427306212020946476560289193459459443715993614310927269544619717530057130750372347941740272089824768363629294268613133782901951401055899894237392972182993957338395114540470754283252896814455998846408108018514195292275098295257901362928925927216168711881626139238088974226216979109716632315995431876450212020416106875488803677859199457073428755990883792677883721198806986985159242933113694603637495123135377553776581725940414897776196446174843614323995876005359545954954017177277916413495945121563685045321012001603309633087737607244784699461289646616750177848518671562973722949980874042158240866503001038680984711921010956056938783632278139382007452780330691268719031959090087946086326870188821043289872343930538603719946025667419601865746623389437762398887276601450664550911814451890085868244717635715105271499388904174814183662763829214526268331639685676610171243719081172687800800283678308871121856243489764328179658924321458621479431252235280590822976440164839685219040812009728225326372244388390126675363656179082481174886305509432394798027345226752608639801185205290310873936664988517006189879751298067757518255444989806826675844384571953449268348536907613990686070951973997904722187854797893148300991576035393642351024382557914229014362364065174157890876441073855696480344335796458403668232765289543305298021237923910331871242057226365121772317574323831827145023772868054371736456022221541457302081214090642462815881689304782731268590861061618086705944414519005584771500006747031368260920417374360023245256450398740568170336514241558973920741136665936850473006057500141387984989586121152593032455172090273227857579174554700282003324077581543201779621010280065157244885788762479577137223462813020082199177169346964039659742395460302819150869947617005177750040225039908473320117961846231000010938057688145361553361333475868440547438523117960127706565819535912236764469321230055590789409007936121177523031265080382556466029478736524422002351673446736262825436401335943002220796525577058764062077913116708459185236127381058286462511705190170894004993673820084860958903045500514287305897535065342305420236907414906978592093237220396813998711038140058059919714050431476511697583461285663321739882641078523950275683042605990760677229614536721499419817314653793253961000410897764136011034487117449028103715675074300087169661166932454801676840115329874434448435652568877849800309152843639859945110261813457557771200362105664736400005108139950516206880063165617658625211866609286700348290277424665986116028671107115412447789791836833724355924418734298736531841104443236592907363271117423383415162494947067039466895485878672162214625169556517389757046600049321925583503279025490903354431962069898239022945818920592422829623417163264593068262132790616032390093203767313682823084562331898973268605568897154298468535252860325233398495513910876240055921844919504885808846454346062665887355213356299410631033675581333996865088038605202326656800988290148141353874828910716690522588119024509432121766141744943843228946918322471988183167200860332678920528811043603593324680084802667390611314490554697670094291772249767873025935596613588939762892370310932335693903000663414130799203721944529899164035514954367950980508147546709506995846527045562148963604803839395674060677765725442202864675684787647223101348753293783708737129401233719977759100590616654928441633385610760042978702164528748320304675655446197292419727229868004641826552518085946153698993143172373579406930441098257706624547625871628682973425144762255059257616933823546428535996651523897750427680396737329800543072009780101048312123480714120275089499750542155476572779942337184981190167679174251741961870845381590026843811665309794918363919931945609779116412709641352001171837803417967607893206072122489475439033753940469741212123310842527369108893280728486674400415858718548691034745404235122690890984007682627619534462206341134450980632204504413967217470350336358153353138104758840058801580638692403260091109688163497746820404550784876776898209216503406437501639740263279429569885241715769506567581341925022088827725276064920401522534380908101333049351587108660050732354812774396417696069058758471081142063558342405990834721298704876661737143167577804175435761542514572968137494095342253845948153085341460691975100425795468144263580735308049458889457211397802946970002433021880381492103850893210533785364122983391070334008011246333862854258465035178281799786510009491949790017363960956499714626542252581295184708174636440335351388946547938080650985520450957346591413697014919742807232064252531731390471615267072253783901778326937512823011737116898336463730275170321044294877869118342392977583744852207822532080340408189858170762356679257836643776333805523189232492461125855688367176089035907084141146919743777975746220520285866349920535949730012615624022548077281195546397135665919631783343713225924738631166591392936423797053166817262787308512395608621063806338981918249125927800392871543858325916440041332857459895296786470633205886314424466081078082013706105943315699865664726532287116131059727734897791575584134302421301256259385920534048905278935851637560112944820445852771485240607560445177247395691579230104463482560479315382872100061397686775403161249436976084972211323156678796730778990223835509150033757602404515819479591966594369741013281192083521689852553053534417772389419357896328782448578357049499646952760923395941204209900916098446991872965998652404543350623390951867476889008143998719076221356552153439362426101388613924164685528199624560387336587640275691578027508166637558239658418199484972252293205842672667728946894521371697494792232104231761432227740099980689280938347216181835294134821338908016848983882204454016400225300040379815123511622185812566467034854314543964777060050432088976725349640403578019532109646129238529940877003969433812806844990593188851103902100937259493864450716020920228393986833291701724767541594652919033904684334969401377356674011743682590459136135065012514203482036342408601631676499020077260669278917292834767982143166908917494372264329475094161795099166435326277500363083443924512245782380807027891445294703679634611829667799917076520934675421926766289546013194828620801145737152245372522975193738653622943166188977273296865908289289520485855885989637401792684723950460146298332478849386489575054328609072703392158638062473998273456685711110412071881728593285247868556389469309105248683255376244608134031373455851235593408490908574427252584990987412443723048073968169321614614509439383160131450978997464996862036843237133398920631527942660761410245051173192981303265470307447125807272650819016543137359927836324845342683690414362838987150400629569132512647244001128308455009864827207367139304819506077110736256987435866463357375712991568504334724831810284730025234697844535562463882541993945933643560125671054673456227906667311393835031654787806300196084913910541755882737700314361818776290220649862677703312725724754828316300710491651372341665345032430626015314984179867746857097736929816291542904163039103803251912181742317489559009216565378083310874019618841682900720903840022442078915500017799177833962489918266361897577805952270884498330674432030984448912632685721118160441931476524714416463433273144535871377211062002973165044043939420438388477055022433720791786255685566788486087057826013335470090099949301804509580049324789194054543875201913389723555173194008471735262428652450872803459060772860338069306981857741642727200473052557979807811610797475246653404042704564990282136388466132061439873672005715632359069077516080862432911964723108998245774961754770180050739550168005933058740030767763806924395733782646669161323314411284259910874314719680529830218744183247077587849192766417405568359084132699630462464583550821133461796805532458016164364307399300098646271326687488529355928109130518810527426254110210659454681799282222661941515996964654726988378928098855114060690336988676529244545096103680994843068096476332620476072776848912107710263058273173496523398074549823630677836906206441049219727148518573087884054600424521596821562358614077353277318477425058330412977064097098247558739515687364524577717328239538105843332692810094186876842899572888240894194243197984622024108836929538903366649089880269349678768813975249464206656015690765028718851353148926955995745045427710793204182358527239158420701040646010967871792749146282279243837542369010882317294012651995382047184263815621664573541852028258523931844351536860781659245873292003457222340501660422009571821635406056937162477043632638777301439930405730670982100172909227072648320329661736209049713053862097972772648942618118503051179727650120852593943663841087632157859268747235446324204592394891152666275285792824683170728876376368721379371728391565172400842692870453180292404318517936840112261524780892660210069816026427554453313024021530350425364948596950864928466599884550456758104417108059007419475814351459122051632837655470533320139112563243299802577497061253928730924634278696495412951293564011329616399817870955678180302389600066121086896818447657506766562299043992991627077636524374653588011038386468035715766464285701523308356111882853429901633591552200509118637743831544702332970229684786086083471193940558133572272063433548828013833056867541553167310670769720745332484625609676498705139751103132726816493386365833816034724288748187448999549945067660942436779656461651687410712471754922783463528194276570090090149605318964035301133384958511128094562599575389692443761534474152973322514649861057245545616494411033322960696678576083342460267498489095257468768103355543494589784798633285588170244888112495146068880731898669035192824622157130866576495925067485129773944161128384985327222517031794733677572039488075406466523359536654997125760579892063714932461023167040566930868300154488685145302767904892785398848679174259376014979822935992407837576600932088679425077410976423793926208870760478494212004712489575734494776210673983907837801914966871394026121212153549476638565022826950666873438190625792447140468371628236978548285779435138125777363545056226000217958567812673991076415035961866030591282796311680150878936398175323148290897247022677028592702810741507256604149032892864991497464197753113577446998791011502438178015257427117412116715274333724150280150585316605193652471794602420796278026494452553732749137251385818773361076618988678443440465744245554329805862842446564184772187518728585707896001312558944428150230354670192747044339967033241943374904733115144995016208022044009217548171010394503235833916295442766085353408091965280158210032004972642099764056566569843902439002544314116345429656265868700079256524545507921794853269747203895761205703764890396183935380754901826420157207923698921947608013654420711772464217125308632256410276435780485164999496575633009927061519434529458398482243164142100850309692393323274086267603013695351671683639125770871807600467972219029986082547078790443160013572542388595839453105121878906162468624511733656508754340604676944551916756967509030431665082830177210595028415873294508388655823605043249339551104420737182230963026955134638774647824677956926671251770935159449430265010315348269336727206818064738889426871855828550183837158813307575421573747009027695798572463051339026616994509187664983044436194129233590466629375252445310773725314197992480567915041630362801217876952496149036741692008309947214543060781181364348759777293270140752887882056995770829489117590120497537845837830525672286607869725083597721760850902152015369070262907862387299759030595438000689402526497926406955945197334095207261140784263907804152796611797868449143605665246596566062174501951370858962747466708781752057357652212639114306986758807398245801076655208519089424608255196467322566432440691389926628352779636404330955958583564712138198751500237157315953953480306726096157288544351638280746177826246768103709172421486218937146720448886848301054838688265626640292152269071667339687697244558366990819583312240975442704285711601675539726532575762319167983385518532850338644788311841914147714409656889568796651686287362488581783585500997421109309029352197515244358761605283953479447193077609917138971989557331281875481923641634862478989009717792301728183264577788389718755526055567001827619859338493524411120427421411797658773613754404891491530587624112932211116110500615526170826662813067841726700517671383056527457577787468391082437691447147565401940266834552320866679266355560355390993905469856591073203502333144606897310754551139436349134192053686399702412416503094110891162636676390023323730705030944094316426023948386596411908302949345765810195248852548819086080950215356564576340401237327114687223878127270423559889848176518947009519272915045227047056249463446531274687542668626165342060759551144818633064004502498986985152552517185128016134490400250007557221274319013054783481825770843699667953179765187656910291088073447233932074726820389733135752313256608789526205382069952867813000402206799606987802110192666930637970609828354774999695036456680704840720653266071408899350606900062972361293865135583400899552884248251740385616687511418408446444511441822902543028548533799843958804876126688906080989349434159977690991148068363485037101118599732531135198931394084727739687059062480215839739408918506854496875055010564922269016330437273174959939330350619122803726229281988815606850173942119307687478194262466702658475812099947977061545076177626676302875733224646786664598804868652330982076899854107318882965621840492971265092743889600108349236140662951403699325339468890950819581199838092784099638052411737044492167491206119704951262126007007215822424252298282921706277110333459336654324306468674866614412493405054239279037292229841357258126396775372575654368820753703634467626883366801341406984256981178749099325493559762144507138297773288184335185183260254013034820725435644745185468717702022812588454745105349038612964258481133031602071278990865191073209136188466724976085853934907415002215703954821516734590711857250671066749584823683080825609096500224297204397488789817184740254145077624543381793385934572540049771828666616890676495861157613045500937997871202260634800479939922396759391727017708701519924430388228622002278291072556675258282717827525891173774532687882023568082765379100683101128294274864998137064982361951072833583954493953639545540590130126313268307392584753938382949626348595364522231925078412630230540543703879230149677207765154202287574388297904020319105804122667938025331379240526104184532959853047088970357349926487341608818637422255255396019291871403543961685298697082481403060047644459188259092017442017800325566542639512841999344373928557342059381321361676649418224770258071399877634467555122260030316771957319754793948852252971190732084351064633418078465229768794326712836094427701699892614042712043181928392409182724539570002236181336944094869053191459649858329424676066286482575744558700438150494532732345683921938810600170790255725013042855487993426459654603159291794818605687032247091026458795743945328854976753942281023325767483298417233858355168168146510024652720490061555411923689956443054613622255571670811189645955895177961641521015841271397069726064279888369497444527960355994784890288549712872806752673597071892991969518746025831034232438202365065932320684551408466075495905690052680967605462032911651520973373323103698208375844687041932290566463503444854521433056902450683499050443699197076363868348005537150054474445954284651835448654492984764918083368220805261550973003229260029511630553348005428864771740651275228109569370995209444359775186447610151641691274455758890047334640897875636224609234844232503838989245487204529278429144018729011667754000553296125789568505044571081760806938470779347923095648237864783344198057899145666000763421386894033509371850727354258454382751440052746727832637622473152970164892534684341573770249553159929796921015086408751308520596119891142447260342495253062646485262457259159788985899190244695291258243544980921812650162990458783477086367666418182182934067015691652719902468152930396086299962740411620861768239339213525277531821404711552469585957840996594321968360440545917991506790114391111480507166908439509291753027789902525855362840795529298408474889863241137521469320198839467120441878064600542566387315480515355336081183419453611956661235692304673159660666028671560729945019273881961666273664910095298392551425370834302399980701647017410429201990858766169071807725341301096932524610925379932627923027161184504839356634510839727439016713769899465470518165705410183768873383626529428232734476155158157983227018412161538453263243380249879379998956222526117817019721905134083058673570878381198903280344337046674164616237498035796740977466427156421346399463035684939240843578983071691584468066281677755443170725157481481350012682529811290820682161460944213835765054062852161057438610772261730127661254940415746063354758900890618887642528586201356968105504404369099148028351155444426226216373902810278059758459799329953556962985771192561399102840256360449048294114559232896198371309711347869530148914454476406024481400657893786438655928692086542295015129884980450623507398478992943061214873368157966956085801229512924942395898283881669850164338506530968635107164071389777473578503362429925316938746883444924837824893348013497453310867154516029960671514861796166309754236514219628531750622288910153737576945413329064102190900230214547713432965777132869154482739921147156155284919646945779190691538083906953718931304518493047114010445580942392447046459507276205206475323102331545438739056285160092835026354806925589003513759555077697532084356616986845388167546338463727676576057642671896574823040080495946448977599913957467811984923415647566785361124255706720256992495140838854497730857173809054827650729486400200675112470553667337035124538507689128868137197090365955539951572186200402845558955660587651500348749948159634019261441485419959860924113553553405175364979385306303454394803598802346545225190983282470933420471357584363351385988749968193996538633314696581090777149463295315670177179876406922853517397926022054298660322704178842488120932992180971074719678824311747948933287067211135804003942488314208989239177655499956742515776095130007235162387437754926633131382811502415711048317100452771059046284854918527125344540343136930457088393890631796851278143208433655224404250456692371238545596823301262081001135004875009616389692134950034845539607878485679435523658325324690771853924614825625699982476460676026209276172681592393867353255499426515094303756706237794027774253722897149087547718132670630457761632655008360012976937105832763504530308645394631436253347599165675827304675507684344709418111610396246207210720749224670132677698457299731424617533059961958548893885146983078420898949722932705799856285675322486724170608325608284667598740805854559772392164508879417060828765927763368326180456402931335916968728313783980525252161128909038260716509957386662263422379452374685112173821618195968458394479964802628854958318995309411307726948247788296623895179611561582189299059519379894110243651473040470679123491208334923545409606131113877236421965579716358986335349482236248365696973319023917699449800876294072500825300182566891629342479677092714614612829820323712204517594360140659817076966239155887180462915549448978498935480341039354089636753373899464764774171980719053411073125719206293237735745011151212218216637044017584216143737554040017173303057396191911261818611977406965115385592727245439754880213642073026915204582111251788080232525721593275098043947816606109145818416533012917376843012217580208997207715144909023216216118567643869285236056728205756617644100555044975432453099038848385802865124781768071639284954105693872777826546488563699697721966314629144191239283539515048446356331369870661135486846024564254866864190097935314029032017042831093973287974194051511438890091063632877025171176860193807618833528719369483286536068494387906903130076032905325395310257632717815153528545082712371575730471145071630653452708711645527534621881492815021087998276239498839371103794797696624244120350399223800335746313828352599507692308788467213709744541625217442069890261930555318682830523924171696321801116163424906557070720393039283901546130607374306508067081999174913270121099289757649052477308051854492950981716712501806508921962266386485883819036836998111224710048678428077632589584145700225959204055375595717374952814367649787806030975387888679900051017015205738902592401731698466737965303058980528851408358652139192831701196657516673523239672922214002365745311462055995275343879007029463335888278082587266721826228113176226641860469833955233534019345960847855053104538620457216275934138373712572292091394304193798748945985696396989266467854084403067095474618964398416953335669964369757962389916454470210494098583377251766056677475449460859494670041925388873486354148148419450613720549622156628811836275913916933373980031780820784332625955241302407234738417633270705681019949054968527928184185503645849432612272368944196054848072246790984571161936784862435885761027793890859727199310420613431566982888468696674839991660108229321157147992167390346163236823725731127582485240137139265155544607291967680784046343094494139173543126230469675707617168611617075839740121920765196180394376103808936440850999705512264315968002007402412711465251253898762598884436349435199169672494689976536525797968992511704617489250460151514110079899500046768606264279459786708175834266984684630835262947521769096641304497496953970894609094606767727174543541031407778458728101372727317567172289177713788103558764298071354925836550962916323660347278003089593905463611916828179072097202574993780536313761797905970669956322102949635074665302079638486758615359785322507339674783990582679635426913496571328399291378628618416877109558602299540473860162605532043668551947784552279278244447570284006070385968392813083768537610222354309058466537469187864132786610354991865657470410446952380742751257404207852494683526002774180301597658620909194475096559059629722207432017539325417241373634403864799744691316860939521671050140886321295121479118196187291384420552655590161728360936725433572960675002997991355278779932283907603809839589932949679698211141786759346547088975772083587932089339441215445563818904978119572338803229323949696703130551891787189810824737443094666762621136658011593072314380258908621152960493102218383728022655880774937683739578276806253345657295899962245418532022850135462010290776023449185100560170293067191598365741882153461516066978980938967068650389636229998290211442658828419193198310523541313868994680613491036151534179162241848145779046289655150830673181992957286105048816361681483757107991064941904612278779512952826245987088247920842764969040281370254413681999045384144678981648888213329927938204305950551063063997134624904790452281726549183797478134010641427465162553474311454407183572943189961695960007427568118961203849737029878028431708991425081294548487180631224528784351518492264318093588210475629551633766823403642265015910017831052512185692605574720425559815775299181341886982923688301829574885129330795388412103488505630676965623891449000573686682021381724238233966470408628786329818967538255347443219445617461819746814801308664855324615668380551643240370229991924202650375632392959843484324309917294120005427142325346517901797547867599666795367656536589444036602459826841637431397452947485649203215740774334988024570695551678955725403029036675662438368473778636493120736635037389096080303546831391742783843939668152704154185185954869557665429043235324388324389765176570617126164590989877508005400390057264720576771240021647161082238287109901241799454658379327821217514965690443356495004694784215768692014940482580787550604733040639861707894553638684566476163878406717784972644992657088235917867232659605449440575894982302469613235290683864830369412076824497495907882445307956657917691085698042959929766105472676094239630942326283215928920826380625609825923399539793459155243111112692858447116279565263048560190343406202389936420703244902389518314075237103538623912908894494509931944352892982513166345480898326635805279198124031637060016500509202368922485478306557465363304584303007039935593353390608628900547114208461575613693293286582077686493267882072217092002678249109160751467064846907898280404115992609695311075046065284943905763891841149052101829279782633678484207711987605563698216454432142214406713509722951529338214970135777693905536267094364607494317531773755598644923951019116616321216143891152778587721182227707518730305859600262597163979616647281934704623777418025385185974547841191052340482877676586859729183236904874497523284740769484671821645627193541375040927282311640303928182321042184819423100795450307897280502946162348415489765175345627189694629249339376673645082691323113885618254451529246831533073852304203599247865842205601834381936766917365182167033017578715567413769188715263520769342881668937084271948127637479883515831202400784977032619734899818933172778161315717120154180426992407431785296377795386599606236282807284619634050894296861558317504035113879318886847960122307416375271636037895114867641682360214938427352622717546852254708518253866272250929007409612513437367868704073041733893671675668714989027029804517606271105014684691088693442326633064936086812004673353047387022312240289507390513882114137238263683378671926586327742164177837120587037005663355114976802969541170101467628763010533615639694021762541589540405518822887509528165370514413997978546943430481262700664076955484149024374882077322869704073022441150530856748081621285194263304108932333901689809050491199136754392417228960248157617273185326566046607180079438216646021700553929011347178316069619874480191533492719588401976197442003217166773226961240326316774214789787823511513171022946086779573696709369770046038511953290957438227844088935170614295160094786117026885568984526894145742231511236824682971847666213260622427279404889433412335892839515714013282162510128217134030002772035278095248471200377958446689188288757876676121786349365805466104149888272819113044776797147926035405309679310840450019934376897794860762258296886574084444736785479656452512087994434060457259165865650599475133527657845906682071799484911616046068120985112658244999383116293585376658981174980965168991553536327533371529451428572269806749764378323128801849381645821522702061714336752849616654129537734549403628732804710442294404497918213045171957092530768375609098349080238318418745318991625994174375363897562519224035421496791165182294351307831975178987762964185473828490642167370988679665919844544657742788287998250456901730794047764094258458076331141222980914620611669138939250992896686139100382291791931402278423002182093752792543712407971714942098969193612512932827504449360870428292685899272791957442686091881290024474052489977420971007044182121271404031694922261416753815479694184137959895859709951158120103740581094956791650646857901952471134796367235448024723928088595099936720292252767202409735333173498994169369388216830916016836878225866114372972842595222600439593878299853318210676145624882154451359015270951715729530647481793560281390512503563693982065922910522540668347744229925005017239733816024978658247145115152322465706194617588235288318417855094306368950653595774991227980900119482739653440264321051502329337359229258198531518493544996103494642842569566963584831503525686067470574520891798780941746465480403465483346545796295689765037763058566058105106706377717391153395194477941216228629851224671253787197864532073820078076584031765198654082527486272932378691715292042436479451710087285516968094945792263489830999912097100070128123302994810341872042576583726183360644033932068492049459646936055685240020353972481740641809035339973445987011442925181104686764385624092407026070304547148592114968199253946825735724204264253063166954330544328378630721585715108897984046947101810886420455208221519970116299690330240400894912804382321680090020501074741813450303589241295578030812986348921927569107774887030819296060104823526301722527209740260950142281576400117220535800737288323354308954538902082214300080342509571759847382058443256018627744219915136659900454256699075487862765119434814685420464974028131405379957308132393478461869423175420481738926782769028408991621667378046256143052974331608734781190877198452337927935135184011429659379573079784713016044518376148121937552333298137653819937609917745733189099606558251931452364758407422286326586532850003076951187696310559975945695393722396506590339863610412340560265667663745400868684098042621029750970641936086121784704536463729934211093344299715704357321521814702449815323349927244065049725726889788609463264279510317719471021213021603181103571561734299732950588115948099953116077691402512107171282105787562248765995495700450364676938432964732657941356576219180087007063698413506155451542468178109634629781359992090587861315953903288370832257014116675312675365243454811586455018269453436215035741339806679736032345837667895549295899629611275574695921428807225821064234583802236125188191136466279137185402632951512913450117522401284605124916655713690211547795561347938233537757776650779121773918859084227747535227664232364691432314988264604726163688455001523295720845699509528157989962281675968605641936392692145794531408377403959605383847992092543535767862475920367613434825092928909105761496135784467928059876955870670010838402334599673843485735842858265219807874129428621762903284885114568764087098655499946423817377118742625285956172957928957219758876232070860646713157011041424214695314630154359356912641502960941884126813849260735559794381445531426144176155421968538003605190780557781233145814475541791483480492200715223092828364737607092687414389339865135242716101973918096094692241172530834531720903200465086617422958570614688534441793272133721034188601343155994517853661996495230115570641019564574278204116871169212227512538835362602503638468735583760831751136805468394978524852012231281029549859246126612079442909041361395958822022496621031713726142100571346058871303434033042287659506577839251836404762233597169010808300731703719847205171736433649875155088727788260923618379004771558641685901546074502009131426818493232905189630452238774222960369440076575640395684854089144935263015942912300401697467369759619619938758703122474506387655086758115944532191281000417012197120218106246793216404946846234254648721584092941162286186661002602453822204602420043980304473747985253088442230438924229651048020177434051140310452803072756746083417897067632466331032792119150386494108979755866076615400877429791269680955997824310130467338544018295538662226452509363125984749844600879693545406215525782215944115183646400460016631376087425852468950696588940282486742941668119852180739012737779489969707943901476806576337889053223832935315166933996105075971739798423126111843855385174053375173688009949480075519844124241680697416638109245762920021600514965966165071980426159324592345307486616314901753501553192165090634693439531724252141566904171229944969322646670406270892798428019626900193254862773860103407932033258051429295421489645544895565173852258755629813612645403718892409838714368430641142304435246052956504374544732633637897943670430395101015066726355461140628411736670338377704360526016553165305216471193170092834621762243794074541842329944284257466665328672127399760468142684682219043546855489295599377627995006047916139330948807402064175002151307006489018375113523904884462715272418400819533722191999652174429856217863057209719158963682598185314082085323682903750109918734517605434228473332181364701158328807226456450944558846686543290707090826866171753663491290759429510248418297182440765366375572713878809326947638507385539946726436064819248356136005726755725898999442377911196565976659444068367391208936652563679412886597120998849647193427006150453212371058818493446882824629075956829699689796019949949397369030794440227875012262333558467992563261374450126048029140857934621423199641798363123221597562331579344383971100964767675688493754987818003585812220591713239556447428752051030509104901576770339428920803889516261175799397613934589692137244714201350268866164902050028350031201351640818723866549441267032792756046412859183713167425350191479483104605619020343914814034741759173752628280704985672621213262794618670963635551225002024858825262719146616630694910396798753913547435607825371571194754796372836067816817779326450873538828485870384798750867014129499860408802334279724511960543364453734548225028263237314813115092267450663345503145181944174138405487494052209716212179759799012056872490678083015728290802374992032058855671136057458038102568344400324111427750593332564688097625345808154374545546881035990383511161411546691655224094475385066415194640447593521945227951689225307303862248412219079356628593401109884837567618248678618337108954434251698093803840677894711305614686226504103098444273464237383445871692601201501709971843170790492545337058956256955368460138456630907920885606614814544320872427575161262646003251280023848526906540344079163973698543646838402699322488530605450552299579549362876047374861405945016937211054924786969675830491741904944872501941569839259059934155421309538607467402274963605065174267543435686385023845305440247854891240862224618015138006445776326977256937259981933118923688169924907938383655266641421344985187852942093347961210697360516386612226373880831047187733010376070597994087839652832221848166153962354407099775030097954989165375662135471662228001437406313459373714660709372557014325517076995269731137676540167868931132541738011149297820330153477931069214331199006908527731025962538390929265737486733732948687434742265573740911733180194099530876780811456912887934534187448430528539589866585423911112758407741976870444210927379731732284113646447092354138009311887198035318336211758510912163768788936718035264128518439872039629849282820490667914114709077806596840304441650943574459896334348436706662637456011568023393281535469667235182526379418532208331369866583751381782714715063738022231555558763214905638667294382875353604851836842215995463893393914348705921197408163337202045749515171512569236413718831670265255487017521764756720767748236705333025205221881745493875551253575017586502831758155310447144620312915875727319010237916149121031514233563273095231997015391883027046448606992151080241347802253689910846124474944882280915025379598474407801090361524978393654872090433695033722168313166244879407093038765999993059401879208411546464768956889107780646687611416594779637049424473694167671278368503204205455112107474917782627225692481883505565644308676234228387597495739131856754577750506124836375355088692708022785307196816076653798471863368510648921018169921325381910612877358062372755606718435701268101300043153712755767794280117297329519522942292092049989850139438547186887832009092647416590209547907567016777397076351748097759320429950831442168371385450637621982388839016354277017408502810372277723896493858990553374864607414996657849958792305875389487807725880525744125694076947411474693615503573380120581199322426889707691163933134479739265951533115850162017793586827177676748502145605837056848782197401822729487567325883268338985289096543329407008758430719315386250744678457858563505965973436738190856565426447936928034051661789134341938178719451676258116068412569901415153807864305701752237043172529337777212659137060764112561151827087683735129581978029610477535310532976794827786086308061978767288893907136338668988701136680572399792209668321348051526743235302815494492795588459835438256289294104831779608506901739007998357757188965711764618561752343337858156989482195585776566088141047260675108500117662563158520168014845237112293260196224634073946250001596760952684946457386741700636125403254307745732901932770332546631593189462524429803731463347567382850019145489724676712483485332130284399683568964228407232558322984730158683399955588888405787229566816138775740841067069742638217809289717697601687991216292260256681812263464431460034291079206674156659012734582066120012664479339292559060477011302749793504343696452108944366209919313012532472397016122714427722985621660809341229669163033413890699894203303332356776606940669844509877651006247949283777804246060855345052078526658228130704649039610806935999455959702508342891627450939818704997112800882880810880376293351142431811870907114954517525362199246933327113121044515379321091987565396425522223962697517580398257608276601273008204772751727959898762710710812028601390277942833491294066363188372379643043081057125652523515346666940761376086567267118903920148743091345608265110244984586354839300554089159463202308384353516004948596027720928927627582715041623951270148013515379970984392994073855355480230322260069862757234314200364857557920166548040997902467652613996511560971354301963666172177024036763601162052537839632606935620387035074515432689852839917830683011337795324373386954072416531773897344112573695386604899028598434866336663379131514554846590017660346288608594968381851818807696495091363946565508792764811332031851501807611898266655268731352152787206327935757278981008530280498343099731180173942841288819343028309787671637979435308061892695568522231437049287815112288241079477061493478489641006582092338677522006713831492134339480260975944463030601693402598873453174210748833297149424528787780583983666505331643637887556376514126949612382674152611720980773651893838642386737397314388635843526935600215044173874615443005976450443748329333722511205709798454528890001629083184974834510581671283680449368909569814672625393946059267834594070434006616456553693435298943321394244870011582957675332220823666419990819914569547318730155321065013743329490116340855476968011987039966549880655963823212876732432177215509479291561916075807024516950149489224945483242229755093398162242338013258918187429693194110130873307924812662748258690644948448718621580369630010165363017833261447860347001361266484067787413848827078621711978542407656849048346882860498088448166566940185327638551216017912415301760973459930015825838035566286597114752239306036695090675543741406761068789279657893433518330518461724163623342715642437073705791582783969073238096449434265083189086755799199062729792816002299340162969631191159286151540626205309047348185239235547814060313027229131042887653788918676657433665575448701690850086344891794483157246693711740556080001052870815382612872994280617619341743029910926798791931612439141179086941540876731718703865751925279845886180167325477480646009418968268993133641690235674176564999781565203659205579980950379582735547550783831577890810827306881821063561445056768293048532230450585265881163952371825785553835748066189537761217764555621023545608099658086419411602649792793944706827763144809422711675127960790804982796755687348450178435473836862118662772032870917992671884159905233765378396711165270048516023668707131695671446653225259948248486683737074655098824837351798703859627617228937458728992030051805388849184642024408238848151856676156308582565694394904361764350328687516373538288391293260501318053892020160263799947216461070169719612544247072063972268378753470833549735122886852592917092855818768295543402879119361371741113789776782097011682480288401043541338570530852808735570574569065853527049128789224733572921115849143669090219305294662830368756570697228737184049800676761776182465411620764500496089082192507211029046986947641357005707728450520671229471622677757277326229346537134723365061927189634394525052616279979052125749223059740239218230276630801825525321443871967959940854735042436180422024189686249036291748091592388109216357742924611895889898697359204799535250093017098427360468096597379886524282728428767330190850270835872949132652598709714925252380403532775099990973157817476586063911072819668832249301450329418833807190535985619580354409544930500812268320133520124576640008347927629556898811361474675996866755506807543405604514964933654674426456858592900237265760424941785680396318237054235131810966177170303600149903937315922125943096564595883826504257930633846561268528697283017442670850791701507099803953088166611828951462407402575839440743275657361410577629419308941489126154485833252507445073071787509176664273973322740862322719192363703395291205768744148527965866083115074303287144240265861890822785801261334009524054333375087001696046658359469632605370827793790587145811362884942646253957572446428533443847000027506191896888741940871654435878691670380663632024577065845561452781551634843709161216911233697260733421979623287643087932859590743029053552382584664761352868524084739771626471921540642671216665724665268793640916967034936463135124630781941794868870694186756530446643469591559723558250278243426211378227321894417678678831123048969986031238304975849739655053469949111157203049000756722172537411148810188242397236847577890378743904622178092868155556916680668236485094654710533829614031960684228799550258878836274092991084128846107383044434610865411139909641087904468214834290172491370923893322996419731913454061906929008623312138263976705714223639422597337048312579963570701353275075201620339075220508455144781528507000649739291215346679699293589938588164842863211201388599550757616812541817964428116755507341233092153222193158677888430368077224494333735741780309622359088723625042033716021022341362481430434301736883506243034153447962746556222957087844221810211401785337014993751828981261956905526320878756797842160324512245555774476825356626122961879640247679989006626319456602125729952107593468683101716255366556614096322203141409140233702716385036127419472592821480208151493870368688612355953630824375421084179753256446139507846488037761615041569153065253583456810427006688049918539406914027645055469676867697342275026942264906922765120037063225215347033059590819021577946159906323757694554384849038424900994400973122772679255796622986619689794584755463420446369194885522918656204486369261075675183826318248898105667614400270438282332635311310900722112688445164433236991527609801721864530081776630385132298168220812997037036362062776534512048970162506807931454185565408624160388433806297303275530284270916713440918783438700266756357231457345546957731625049544529723563162422998491935761652552958315429928805280833598184091970937198151490631255215934765896369204984153920846524087303060203048769581138915152188974547019018446572899562417443351151231793655719387673090438260319807900345245833850627499635049288890709999694195601558195019504374015059321100841326704766505591502140346859749078847026364550589968642314138224673394965382077595400651857842099961153005159387860664987084485857698308673591976820998817875703252366368092194065865421098621717012432021110604519611062675233862786177902557491554474660904867213918442570972054586644118848300176856618806306942546730207941302145397124085477300836405396024580839028360982915599122215585350260696224165443081315610060947112819974670818949888954393977329293926652746238068044018683526539606424861497997939383173592204727909540169941687602134145261268081755585939757832224458624318770803995189845061045746197568201862489897063147291799319348200231313442682061462082031605773941761738439880309217664304631759454248784653614619284574364117108807586338766387129978445541889059156304549860271255418011189454527186514523748104773498019666830113892512788882589589689159039328085338962642421164098887711920532988235902201393906627109459465674688203700111554116882670557828466849766270873316263506252733520613495105320119265383258633191460313570459881312996821984800754890019579442706206005318442646432232962733559823910156034045099057891022032159300357353966248977800948725413601598929467306279036059514650929302343984801198723809273544156547835707364650319676671601023413265939493684580573792842002898850238899503091297988623119014400335854853156929032712384573064005367612946746094672463065856180524888838424341153232517940725423868370198653129202087146472253983025981515149617656203140188553558755256597564077491269668708134668577937129957628116113162625401933650925357306728805101818066711135417713206543278664435307297295564865620456945344352309347671026781235580132275209816107687709661403237188474995255863500655101090794704650312445812432247558684312456960955825774167412621842093791559502986630266287602725870929816764189204578120142867623289260946579817136279175089180469220107279312841240872599001798585569686518126333080073352281764057138156251395797281843880527709521890106752139370004682169787329081983480065985087142054963351126442606032601634648820811540289741087543828173571168462697907546617717555055419218664607687833662811888637852925782959979089123741402476258112354578804125161300673116954917112057690703775170305956119003152248092065519164162755094557528860150563032023029059313846599035061968890288306431804859538358185147381120114966847606751084339966726873236932584518154262356227877366283409499883985850185034800069806410333421533186682423992929406463970268541190330096198557579562487191395704674437612609530940451080894714624183438660400154640475159101947835869303087363354826364077544005990362245295665634994458156590454042748616543078973765167310348230434472315936926250767590717199024658212769863051786612358689106698287501283319024613754397999356689719285889794874948945131180954817767478826763385633105559456568656985436360925832549435302225956634290973482393610540837261181017216327209481341857661514679940731918559940867586170964489306906107153551788621945335534687518834605471559826037852765763137537884158616659101824112533965310087280189780396506592348778269957611283202759095357867213557722881333997621032505159215756311989670697960928757398687038778085734718598394311951190665164457224353125330014328397744114669638704956958930210122178804536780379059587061244109836691307891185742676110381387957840077307847609973329803131558850431722154440925236424975563286690884390208426029750898031490055663654319998740649593001585180315490911110357488100355942261246742082576750311756454375002144050342189094186252420374638148648052184658400579002941380106923552931108030539749332378012705829374851439746654289811903488610615593154156237054283828567345107969660810910932338891506433802747022395417214467821834258391637905870577643685489023104910804128210834225191196364185503948000991761860669405530165884965526406841488141729818479779158044216205272876761776194640089921110092316903972693699618673780414607337613056748093857273595531593229492431141805388078432858476645380796714322950393322317343257784264741870562818041287032261333415557593180352563345615290470779066883408507616106853304395708988548916969640438469323526456336222923847916323295176131948378911391908778702979383799905776501889662533911312832000162726792724493951945163576085364053833909932383411238729533876882434162120686763144482335045161794700346674822344036581990145902745248169731594330302656239519274846789962755006049606819590482394385387185383932546024523676936488968595107726826329582376826504798158532607752043637261965307797687819802525176441904983995598254563745269827389198994722627434422833119611232021941627744787197822521428026396505123597261558937539961238687569301945514448807410315650638351484831904588908700900860014841966646766505170434797532614393031324860319443022305063880445686319462932680178416880635103786347071767282005494330112171077353385607497503114771079546312557279155406228910008051027804535575998608877475996802867966839363824082581402218529009465472494697214539264894131339956809390956249757038762855744186630628773794812299885252676303517997495346323456395907277183312064159858808244823322159057166476476472877809959903788337754658193540305346385650615683970663761859831570588872843198423746863646331786644412051462720901234278129458839354819147636227615365186491787268682175032471856871721200576235455463731686845749695590453088764910613893102521171597659793064468648555491485525992085438777973366621232282850115565939701369040550992574794960991330999502893959209795719975324364537483441569925911507842464017569577035908848401251173728731052982519967038614346803633496907289297045766663388320916865901551613558078016739111881629619131149991993581640072595861084823935941222026061516129719776806687819005767795795469806861603110355491866306248984960568743206307028927294952619956053583500869334592144965278851398818308786023330080800229643621009489096412450907886438483075516398823096425859121953595749771015901283106171527033713927362489477940122305798809358541188351692062869318330457076365146022780550291874566090402789068581550504326392717006359477631866712678228780985817297169462801175327326794632930594445627393188909433081547418822045492422751170102918692380290314170137581755174136473501608497651883814971044414301448136302161351885452469327046177492129234807108586801575565640644246620485379275214067923900053115791551385975733639524553005007131905218048818804995793420648704253880102879189127370636727836992766990102400283466104114685746913025166306068316084446842934465358191193974231823644247129139760183066865280758196041958689493901613752060122605314876915149418945256628348569271279633245222327027472940447168833089199537762718423587345918485336878805537301306808106062641828846254398896575618189385394733216684454234745113899715634392636907534468592759476743037261401400760440000239308564328605839667308696716718496604902863844181664880235855895893412295362727789012499893768418454367685049071863380206931538747856738658844189846102914505521341408195455046692486726271934105468090298767574108818334225538039957213256096321389233136430871301968891160989696889545402288501623037471565496311675788024978185009984008921819909683295291680929788553691598767434902773141053669835523635756240293798733189275979294799120532275359256808046000432646301006705342116472943385526564171171119401883292488194546653358128063454069380293678004737115168378363691032361148360793325773263310854254789237360147691853711891189189462196660575750519094293074512329914435646655018957756982986727958903569089597659496576240354876243474493081836735741746641875119418769969848085480255214341316062984194284420630712127677803283086724195150850318470823810260472201479308494448318902280920307352280759332990459151312119470245010000051359962900355018363311760411335244816416220090455408358186206880145557178335984030338998491886055179992958189857274097999055829642533168465744294331707034904940329007633260281764717037803100344000620841896688269753557646805417898655590590375137798697090232507799836146340918239353402177803087861067215373444843091105513442501485428660349379306835416648506262616567346867863556350390959524816704307516554835947314838356764868139221991229644561479804174929667713879639162124222136807183499231084669014573992128591620596330452174371070605297587734875668885357962458349470942283072900297525945005210398952646583843966811451880603224587689501074411736539756036461170970123630008363448645478853978413834366700755557277923636880674926221595809575891886671349590240573458854109854154847865618716951650576247446604385216149739765661304306881257070959833148125875918995397780494084208568471659780659587642145457697090654097187103911772430731734700521987755428179719051628984037365363417412771072337667794288107509575018211648709886844559424744900055970760405842293177254603598321339453344598323583758263860691730897465809764047629182360698699415684762731884340089643289920806129542016694594327657009531927604143602883784520117822926257917426690152039322918499343816918235021135847899254774396369802299909279383118071251054494260176822604419328249710974657478077441305751395825935203177857261805470724548219147919389733577705771600210084932942530590313524902097352847620251243629307036063880455231286630545656180411875819130393986138692783642188713558361126336824207659086527139946172624355977467061248460304973176608028168630377979750392322654170907515397702464032827182582819948381757905290121030221786022148575700876820589489400444414310522120801503661579883909158465118911323941991082440554430127274222968303364731660868409643746644893268150984732058476597707488426182998985668568581435399045367642901883673110728970231141493835848875915194020658858624889625915080786010162056318159451418561822432922904615299752078176782878219514591832199729773368565916755092518672479284726880747285689019103394475938468279612698550793477283110046799513303614190177196983133441787786086212738915005705574904562058748220861985952868442809031032521302640896637455131328236046139894826542104379635878291190164295547368709833069415336432423795474535937312273718975615934944932376818025840458270249969514063667569169359751758804861461963825077316185790768446378103310100368840311097592770578737689391142052823414169377762810716164590762647850766918752002291913709509665097153181551466706433356573291573385802695302479336464059355168588913186894905971094773551801651529105518356510427847691929953951388610299167033729621078883728817241743053083141192982372602346925818509265514892129007875565559318957717401103660951847619275631071933024733871806402676792204689631644221115827527977746812480752994906386696178423858886566394145477718448997444719790797135225278361515229410713442527867639097390541381222677019168968506341448970433777899509567536735376799751975872251533914798332776742745669378206800486202213602698955140335573854481397096185981826879355895897434184503108669896157902563519659178970337498615207073096175629227541009063335095481888012824947273709878747357361052027977972775709235599511789492123141365868093054185266957974146737365926054103363896186646452081521008808139598983575317328192313205346372741438602061826705523887443292786749262530614006508890408307079007360320051933173224177361636431917544410227631719526374588015942116173939260453136546538157032031920783774094527882673309337823620320067246036238586212259213332466690226407982672998564906580820822538101060204399478990490667801874746279071718640649331810808501589364240027867753850739544321220750697046982379728230911472041616309613138031090076578803456105770661218764559997792705818165937974881486454874581747478017262858913136018037499284324615016340319115857212470882809273619444020236654835676779071804752915046985939153836398481929575033326723719388158292369203998764825670238436155207985857891369537576974733835820872995792474362331137371244360769750488978993389872213749783990584669603999681570816333319897404575662166706524600208448194727953266804651846155656815655668913093180337330286288347440297292753579103016407763404792436116382156651411763546812765840570157745449716415798392594818986575259101680954188321273340600531534243931987227353467409403258045676544577710718045336992329304720466734325291972077895148339160095995318122816593834216599932252141705579074766765489905895356535079929869199509605019133008900795052852937346717706632449162731695981412683151129617348806581860147389044363552618171977271127447546944657258210859813827876397131323049474883853090767317796470976424399616807490003914902912850426055771752499786820497537410077685547809889059600697131874313204065296158706237542519274928745001672920626539316714613866351298274931516066043483462394318376665780887335790983362537559970297827529496371351355164344806552398123765848167582771847440817454908456844711539638909903857432917282316789862927600388409134625596476411346890081875496903504610415040731687115901385538478396012107049153656628781359211732208373963204119001363686867741038818869979854448181089712973719450212129131810614008228792273422705771998748416522054808431784429643722270358793033106980246020645186134909929358837653580514222658480454962497375428938241094057493932596063833676318492465080989140545222338833490821292449480327818221134524514141181508598940840865094916369627248464820861794795369844420982853697989573683440510008516797222758654971534204201783432612379687437821586045347807367431941286527874055319774085415956945472463933871766920479048573001005035439814017067797913149246845325801812781914483502998392193538530500059368333138524655925605366628748236064896179889346192830903309983394088024267326089014982168796663705180780978630101802482891246336456649172091166600098300464275144574990281545562824892536208322074818222664833377777844527445955775728251559070557488681177644854810456408027800194786113561499942969670030119780880714205778680400228020856463809662029800077159312728634660271720102304541897398631542568652340107592856573104299671266671162450668626074372777291817113273474734738905193647435961506499851408608220585605676300508555314996166160013709141127603356195532292928361570874381111822072664548550442317219311034471028771777145850782633297066639278986320398015373349902814950726025071527040052070515211280463032525786182320718554066546157456488342246216628707226892787341212570619415944057488251632620867962322890863234778507541317942315605675859433374210352468645359325954488267229005583781709710775230735858856515554855364392828918654988421246015273034006571976621594455677866311851975434914500742571817559573194117911190711211266528398955997691369672953224091049638854598851885978306024142932877084486545439433221799122072019023887281993195358390031733451919281770065846613615442747179441618724229476123763641327399975240175073150084478783445076350803603129279483384398856649441895719452675164186767169795482692466262962707375206945685529720109209908514638277263603954757485011349192613837937223353890548475595896873183883574845370651396763469545927394944533330391807878360952531350218537445828505838586023830524875515866330410386434586825748054958296439002232122623356667610896445286034890866629050035506069097863962649661696310920678740243244550022225127141328042269709601851351051808407009012375987568014998514210707355891575492620710885763674988203978682420487143758234215855334239519472213406868846855556223555906556927877953601696825911160261316004412487963340721229983859495500294470065479529907091224468537511983944506473847121133664572384884644253589905484082155029423292795458009411926111020467021785720068630440722792144977885572581793174164372822058521389767068409761215590222079981472648437230816119546518715402328072809440439215152521979095736893584406861049465383586043970483575940441834529387000413577934872079125005334791376685425146681247592918209238474833590220005601581191875923774716125578566177231790040729411049622447016635395398374682422459994613707912122495854731829952435610051036730960028930542208565980564185331177029603936619166992745190405792205790553160228355880404225158716967411408504723759928483204487682895227414713751939135743277868872315026775637028335675579073000743664179481037819351147870643286128302951329853692883299356017423369758050892707838886607063524498626314569337625846875929338158943276735217381335731051037803578562345834762593601349798729710428458795524516815947067467778128033150442356215294910108401854578122131222090051714635267256134076335435976108677796726958232503349062385040354639579131330088673782056369339809439161263185889549445753410053514410126131940788678165242847939022483653380896619108830318308465024326228646576114571092306890227961502071940272264702932723638647294596925108598750223781198848016354787115212567690657675940656270229394762285795256285309271803304408042452524791531638557546606422594401340717067168001801771091417624866831257721651104864711854495985574917747711582959786360622235289356237262228525459023401480708326023985537728878277624110318851858986547706823463764098089290709057624240177594806611934854093485377027416317973350558625478488310954159259155315105043895201388420890191135843866930663243043617447761010670533497764871253334857658933107273603085182773975546658467419634955755107480594227129558327850742230689408353073654520468971368084373097218051921930815126547958648021964943847232965174484366714123770768460481310568508783272602209149344932739919817217006174741372505399740663395264391135317156134420405649265980170279051932412552976076009746284950838596501479119974631556940455330406942055794999708456239407505763654289836593675431069368836809897249018468500468293801462706889527939184904571255486589160554168801194749511696061959394951196751019656168218006350885475194076237224482173821539007882241077040674133348845183426871792969307576198037801457415737356707409158498956574673031355887462023943124887194857542583708379973614834956326073876712029164963981034173282773107306986850996827684545530270893289308098230244762235466190512869272719295291356399801121210811482219342727967386565351401225230500285748047311576999128707006074889283160603958102537200391623831798946053866516390338502617546133546186601475302604936641354534821604336499758345515713777058253505928521269903030681647997976998951228598666427084381605428761407144052001071386685449791098142138443882473757748530520565613997558528054582375736154499852359905300195993522107577213015685725779560832937345291821729828692680879015628267902441268433798228446796506152211073831483531303287387474054995927888434679448700098148580971128588752915788914212265883847179278058801115660115523096661255981859779715764260976780930990121164360947522339051587743406172929236876385434921480803530373598861901590624849418937423316334494911196373350533057125731561306137790137594452884333135415381294274067224941536243623302542023568194944549278124196580508487604436220246246698635195050263177285343697665717764930098075472743546943869436349574282374291736111456270985109493875904840968625845181344959578506910373196904774412723914371451193251466533605174527192171976314858141441713464113324978804178096164266660604774646443015926969633891088106188984570205860921654191318722302485657204449877837748489184326591100891717429142348143812811600112270725255481370201731999458584542482652025055955969939220074277940145790987773472396236289627218735414646347610562706396066514519494129553628363969558565232664627238856895476920916964737329388729817672124457834732316430763558137173924297155374583628335236416511883459623512852037766880001174685971268806408348254526126203713433348601638238449009534653167246946687177095424429617955597080889134881893281486320840443039815659975941369187085982016230766921028203151913567187839274867434096949551851208165730558473880935950384979411962880444943758708231642950426442776122453055929318058398658687669137911567605964142397712078511457127902115706551892722138787305382294468004394840532472738530331051567962554184740829469392085962902346908616262007451176449705273869822621270676676599969696714334566277065465338235560600016279609699858419699047766040010124791820262898368461498813646988340627627373064090851328235926455087248963398251500411320882722437462395767198153193907692033656692935911518694236606758407319105013986460735652123658357605225413436761987194705016690032422431877226321606719625419378289768567169919456916025842660565844175366711908128151930591190742575408450144352661973588507084755886087791219653195818072720286062185163719219606799292951818629765109630820612929400307769835548212032349840588998361485927749127261950170440220698931006656848881883838505213695395939550902812208708018770145490517348483075106897831620451164019621577211348639112706175700176849687399915000802626150997188053278208776592670149600598078545031899698554065938849729531293799219154532825840208511504037022471824307046523349380294501366773305892193358460851622690741763897152338811381358881546720631427495486024461277616616314832362174577475575817888968595647748989688422742646880993365564054264774293081994925792002008649350034896339969801735131881589369917092065799069468967263931221986756256047545611252532713237590049431790663865562047094278658349408306165076463989218706905209490674162952859329249601758833667231963170543825023521520795744134917947913391627960694520252190840493391738683903568989887853112162914031021220448076623916375083733440387348568001363979696025915398796627776066357713584320010787346984707002212573027987236303750587279371866954730170879506583468918851196553210863081668490213726117724469548412312307683892280699776718189792799788715150511484281616560750184061239070022409070870692999960376521239086046275079307825405838849098642436264250461168317670967271960133914101909472245700367614451376296845493442121092339712520931267473833965359368990068021722154904699233644690204328703029690411124831478221618875156999789857760849933157502472691118891258026606261845870956283440412059562664145599352749083552205162454448817448245016938450491555000415003809619113107163937016886056715431883309352350989524946608042628199939680842105728917721274895792825265309990213976037260777593418589826912026991830062932246480165821509761850046826200300495340163382223454354159528573803471960539178662195768774751321923061783248218753687868083209026684181034408720328492475614616997775832259576372212078664915950496577195407424835771132919554622267479615203982016310214529229461594229257696371627521221193590977237297135913029558655511449183459280096402224082520758640653869479970851270823338187370013632438801450864160958598805912268002042047539318862793889954091247558867618848305335085534964833288801639088351125602969597026955316438399947565983632621102296470417245420777375473218208771481458706118601667648173813734704630667969290316876771670959682402866276503135735993150410077574038828966333385616633142339172075712064455840390191946661713163497696784883275171977658602109313001035864086228208044901584302818290300431404320877419238439594117363271582074164467183397802053022746236690947410668875515195086486128443750643665715700263756033970859347125847863939767065532492472655802329339337975079091585349777709296610323062713152162754145972007621826989234266264653031018743634738764942156863883902959964945272236972101212171950158463427684061635613601135295160165948169912733731808692292883797905151161644177690565607464274432998462480755759599478351612897971718024989555337309986641711369161014068612775353628526873563050734382781408477705435807048742226308145527030286724185325308179725144801884635643620461301256023883374811399321990869939797958200027759572348508044267431630936138402565416185688458166433033652276229428858198435484043563254138268712291809901594415341841253848552486483887251525082824940812616528309150600413281559279987088517903983700567345662250295631302525489004028875445279263150069510159499243586633694863050790169866312818766046684167278805620091428156532516501976855257942206343542473313866903364941162916187919687522695815122541487526136080749698055525556906558819053858239043448364781792134105891661736119221670805952944909658548358848214641891286448827602048086955081395833807799291326889312097302516367841294205870641306894505142701446302758127844906674049938312662898584402258474149092658120574409538845455743126743668985639256148264103110345257936871930499638186393778309610213908985977720986564028843985471029712551282207083965375255369967217745226793109094741711770465221768953261227317199437891630399120030834596264239926167019768965872146823406519835490165991988015868652724506206380046253844197373370197995448877084615673427825062860591572845879416427471853956546258826595912753499132781362290592244050874771069604321814793366174315624963757990245015011662946759763558750728674304442797528414450623320813540425209695877991884478717012318503727726301714169447158540479480652182918444149491454390468844574444227557808743918222291425731788768592724910378979173637686562354738883822438888561210652394482226486207204838350692889541265849680452485674871571140060650367407180538802019820589702759427985626917111266002453532644410215057429632539242166680425551851259447304599999168130206624272809301854672421311342682884575063793824249302346999208723931518804915361530857751709962606817037973932042459824647524658945404245056877627407808343947921480335979998629271054331653373226233448899917134193971137993698209375983350573990806398519115067219590097088717346594556418930804493693002729483695656316238189653991444213518050825111611664391112000605851192948260454565777485911014670708306422263365033349413367838282001993152062465393125799675511495415141327579519991001475765976761559261024881453904581205347088867363199486317515582221387946315084285589154249953809168772001404083023779741682753839473365863048018037251910835046231616326105717954116919998025475759121366970467006989202963927594830517074062717159166811122084043033023982276729843544519854221054985925751333655211355478644455225175437202613324051172642516435369586145919193292491720062094731651625306658888317203399417479107909025350269495721952381806994126737577333578143659579689278094132895598913587544162569331786855157383509552164802202410582011032889326636036326416508460158150306049330335493515887412594589936937682989158071352520468437501833591837006910759532008527320252276698598490759561825307383720602026595475554365892767571187164556950438404578073162545723790163840761147653108397672974459404192825795392762256472005242810611739428156249230061377936179416707717584816707364537835573157780833869264619476008601580260855115084624994588162079416288968277676729195977516057427721440271988242280522617583560447275576974516483436508412439282894688370937765305833071773150173695692271654625459988231328482091012234776701515962164178674788841172632978886916343116415907490571444998096527766744475167264407092078257668174192008697251888403749534522668170618093940910980802527303342539039259930430943213207795526377325915202968792872746737620070759998650402596369283398756418503619544280015593736104630437910682926477674537992774894124500627039501840523454401884993141136977917144179689560295657436041679274102489584370698493461039872383883386267335765255785417668076339323017156172652987654785760326189399245342754231784090899089236667831317500973009107470204326622377323256410655083485966569290072100488847053502137969588426215544562027379929524055197847985508687879128557036334988103616340904367077295703947555380523402217747238025256668928308313999567888934725759187429719951175514454048486080896345671952124422646393513925139356695911559422774909751846508193513690855251756514846990911557256177496380124595035141022631943212859578391846645960092534236388760264092240040916219831483849740111883358580745605483891288729452521567996550376563800999242404102635617434976845995946552328590512672186589803225015245456761355419047619806743713746016604057188525103217831352081987682055216026074790970597524930398047374671809653003263737880285180463694916773750598034874325133827814853390479475132730573216555740244758748130266422327467478345600282244185687221045314132815569174929231611171719206701748491352929422720222370167990120850944131100114216196321991225339684792236558261399188473403501110472181988215998868743654796945119830166791647178519784386331057319283322322028546346342202916650321610814800953498387772237470760045037446815635753113648784312427912144838658327582251869206578334070103391041005661642469423076830498039562571788423261889841033386749395670323187782096024675239598897728493013577719232864562372501659426125686731363891079619150466429204038962500870477811279704751391062870787671585881367926214798145928744751312931847350424108609522652557734379805611401691682207399165096904186460759508098966901794452322656271753166987846487613983628027394725626391103822957710469478060452951322983907359418187624512980166830754888083799443026043413797484993664865263250752416188099668151920844563480416201527531117552263250079176588901528183920258199818684310032070269938683578783161533875040276149924508750661324433691399667023403796489242277628442004036588954970735372396130814134826439573063019845676851622920561690142069097518058060510203464947917725386123387814506941565353093085275705389772776105668727425570153860245909122630515914492412077818842024451879587958753405997189943222797466230476565937253280137812322255763744528123762924512461706407976652486026608443268835104759799902504174154409964658707533607792748875426142979371197544563437745566489166173203136879237806282010092029667419158063503863772854055992454889111921380569614698635736860896864909517489905825519625270089725235934301737217664607066074570763101104691175857319195224498482050881162176931122171332287924469386323972115768959790015090039982997711667762781178387519429162587795611713928891366743078458667432812357139324419091410120496557290000207833228396632353736370050671991033461924344153589579687577414360506322946785371056391533635514548462276579616800645828578461034538455971504925391982479201542948328623478025499845411385186236082919415843887937574095924952108556278989190720438267643300469282655900366894191121761996798282232488725467088170345309899215067764283143337071019332950201634292918771612695725178696538187056492663854295196621567956162158359583361562945564093053799133758435913173799779969862733672809689712067723826172698272868582039147888743158790912920289770624517588384469200172299034044200839016777006060368207804276102832886586868019158654850878189823938680586822834065513587600829467527550291619268233435410584558746627821496530049306819307804476906436866534942444867770891865989366585617970865173757695334318052642282981972790533989794407630302787374607927455582625121531009991054144237607497744682557654289080083880423341816919639018476312436931875334798611745190965184719281803235893109888553254609815482984903110036414513090783927659225166286455009777918242667885182481320132422258846405053895824941471287582262322758075857519215418139940111891454606348366312434522670947270204382071738088835830625153553567087301698422653558075883272266425037807001199621069905997881439953664971357263454713846417540624400830934137334142635399416202813238738091288933044266075382276108111796951234241662946220338192737475922624203036821147178960309549871436268830357214567482689438534465213625028569548068615585430640528709558713736475375252754483628692578090396909301798735175594924525528645022996275927132446943164689309015632659207501318749833476630692362726211799620620645841921605109056222127117549433244235847604374532708757721368950993528598747754576183830316134889315450263390361585949035881703434562343964207619990917426618841928918344052705107361973612214836419763484889860202879924899979594687699426182158883333595096709627398274379921329919046624604817705819201291510293020408905310581473382637450458902824498734616879622095056105095050706427563304422434913441814585297057327860413886973358327893826769636257170390429263726000337563976676860970093603518129514837560098939162301686527198363573272344589407041416719555457227074783000217159874672325234682923039038611681076892854436772979471056742293316989214844304622182208382683833618749276752431438914471697557709643711076506098670173675544862688165918919554786980757887157441026920764132445516203914726776756114863089846489427990310606078120349969362682195673080050815175521714741198346251114820817750119729846597674691667098940012079007812088543726098551841218621862716849985144050293464994443981267181907389485345285617685088777742213259715929452596638152813547027861268038835835497965495825684847027202035522660976211876226547115459705973628499548849964679851254786665837882266214499406309943677456564129219253157336512410930270507675027691937863985816295594588968366064222683751352752526962340966337314879402315243608198941894458751247739140315904226180259861243461660111579059184683456259423837210801019875690592534893294068767797832756832357889422346138931355819950421935552585316143173629422361382204698832726989794719401281326780336982308591535736433932169150791297178098006533216002267959389756468300894747085935171688578329182516374015111529904687771644125637304843043253776196114617026509933171005757808518589447259891163686817993520766907163226440907713826053977058245856386447973648337665483781038483808742161596804003698361200184514153930938480572121049047490259037389105703082600357434876612051306490017589487153870248039480875367013133278148727161499702069531819593750691770565212017101702089352222768879730826087261989932880506235673993963443446206639289432090101650870741912254804120043409671029155431229654017447070279761668597578743991850843771553313508034895302706270774994228934563450799731600846293442909148177767078416129120500925052307587366328680840342790692984206429828216219121899670373812438990101858163064669132739116385927108073291564032852909520115675684465960865006579797948294805912944769252786040040514286958416480168502137800217476600841594420482111046894493032818917178542960206872987115713199573490986382661810874203629267580257770399049086585674902951771018489202047775583321588249548234193932388817443874897069126258686458711381169825932768913027723731920427218575775253590913380996333202159639359747122685853806877803428623919396013576412726833457450560757216563502709714827432892970535058198432956848200518504692704227168249712066215834197791710386348021426331200273778069037063837019725390283613240153370611133097032662980630685628156596973436050872954007638065376717024304536382174542528834258443637652299135925638747969726083612592875826902860998839835738204780752586582567755910993724363998020365462780543183214950147710786049577278341337735591780034289841986122671491181433538706329438920430041724725329128934901046035322224785623372267398809041269384252751366193144748406890815208423142845946747193732652592980301994655670100857073956454250748983143943487563319933368787714771844270254175240000705516194786074535108533516849682452272402117198638206229637348690068770031107405793448613560532503063654154064499350507537765591531279097806161502217014629280346231585642330300509866142384046675776817415732679957898307915425089312901144067639750427867714989892863050325381179499588292091572120834797433062271254799014338395905409371338077265071510124224512570475588251906291884826225328027914763389201981747888072142255718519140331150753740953249701884303934213727079376220948577701682032298526826741348321701351363292199154869490336601357529268980181371063982671021936095766170899433727486189945323663312849789406121324841121100933072596028783100910837917671603370483091926066576755634855467399922988304770106320395512290275391254704264772257115422995596324623381249336263714774103603841696680784670578257312429243425132714584759758818789128018788598367179493150723069993095680188105701095206841300727557826064571008633444168023316122868578080353317385982934425005568415347342040716725434046207292182110994547263877194293911373865047892800734995756402419900230278649276585354628352954585921357248313299994403928879169494785783468662960328158899207442600324225872150625476614927177924273898834526693378141723846610996599183307315278344013622171005980243977297772507725512083360193090853391992679152196147257570460741874268972301819847534991941639133843900001870068799252583803748219661399794365377346001275650453715351640581116315118614664949072376402587450095901450968172258949136919892457731875923470026972018620329678350626024337689957176529674255859272695382260819449477238915728030683478467228582716949019601612108545058899340570470544895681708957285769971053791185614409134780943907637173026800676124913320971797180620356376750735822244270229229120054567916580462049503343445327643509682930878264701413732987461340078646768209357377495884409806488926119549213350112311303033510933987945338689155875611169178994979231183538742266312766201671855580904397316747831629249679619951445469795702294969029185047466308993164147404642747000829900263235486392127651562601531050362279377045280598181298163883443238573840376541368807097103354011519331915186372637140291134609322928900607585648787214619061780664767423485888137517762970078187577081295098106800491128120786297226121235599837070983524722921258091216322139977168589500243968710510370440130319035465978660752978615439050040165245645607285295637726291020013067558935029791508778416363894590562373210538201263515997766051264858681753451667863741093025589058233998261783572366288758651103059371863619015296235435383078596294231401542525308459602375431520135659937459285397786295381660672003921706000479178827847153491300730074084875940093246844044582512457220518228875535876719443829101927557697232880113766728668658112524518420233487534458302831983635981719609123001127060321828766462603275599559591521765492890952586911143723108219914062343005182030090379290961822605603665362774076895624229028816509416004600222597617951043433265305458683181664293102403053545413977994446279176330798997017915176344990848025424995273755527836543417564577759883734531483805104355662188020161412542696150539156732428707923930278439117292894809254256739643385862366786173054303267497489449018533886059360208696936616448218631118763023332590262440998275085999090024785758629090239501246201481312467156845351490223631935780024758647235849272901275694468159902217698484891538640708101356186038139584289028895681475773703555370697474740389473032109700816656855150313170655410926276207598920209743814007067373989695012094509383961837495590101615382936893935206392193479802664068336291339414092213041793062043699171708626998589046383042108421957438508705998344458100878699315165064828793114072164863515784307383817422075965120544433830299495245869221464203880018157903733533631560160821002087353235532810724483925619987146538207673074990144964324697332261306012106251832569464920162814902402614090836568313566171346858484965474392704678446684032329034660119835931278444720086143278373871655659884290783646625981923380565856716882159659652704086752987336359353797490325388393874332871723179060353166705712438084017129395069402198648185071758666505337125735334348261780162888836428622038602997589722899509626397504258991011616711745329378780788550371486165735706373998644403563634851388025415802102168107536321401193089721807371788682869233318045543741960585137482344140495930604412342044354302886154336101546666804627940100290366801058154450479339968010388753733305255060682290849157645776343630516753871043755008410902227978404393480036087136470889639834923892549546626500901253864337358277376619786252240505644930877628014409541373338956738311890221389619859101613225322810343051922602102139494410601099073803960988828007679934853031644664900544253139494922197181986952699291729586524987677588978214455899805384373396315084017588511259697585728578806641472005461922856833808800821752617883329473169067243944020940838776226074147081879593497721965627922333837923453841128565603705624926117933495555194818319014671084747891055521384008817754695279992495291770880992995952202092654116847368353153332489875680912928347582632150841152858534544868455889520289764417485200789273918910365483228211579126715599326875545029655260416140233528029846751491274633677679831941335959551748218873596991372116463336922822674168340255267168822862980266140528776408663252998494677995709320087798800680188356048927084977268625955572145125005085568352114276311553886481926518167549277577763881530184240428786966610124343825163852029942336076802597042914127901876811506914787348673407266962118706005609864139319268212209590493763721519726777290494113083343771037864556495987863271919644241972672737944055930981783951485189843605232395728313959516364618825459509942379159256496735568195480582346308334117133166404747824453587364653039914809610396731642926002766296448401175209602042995223474308871838384949290371971808636376131944492175755767751735093425347117084270839966281296804450973984936559105521230333590366848045942262494690730095272322279101353136869344881671835987634105318594167471680701961719215585017182384421014315848904839978647283970195340957133267419731881715610699373223825752477644785326152968136888054068598482272239934211892844729930575480790072754233417296002773283840532457881363031303321648326887962432930996694913291356650554084133387757978029357415087910835087149551647520753307589904728700224202292185219850602302104937217137054689193795473173166969874819823093084274660538281024616155508665769401924822832080587267873742180067740821119251953544747628014436808748890866215860255584301190318704979810333517082008381184011901093912098831372733967533576047024032398464893547242360129509612907749019818531244832498744984795982836274337120298716287367591972130583389948221118548656966959999108873730241542707460616742309322750321888679063521684900612770182031852293814632242758763930339057599155069912823099231083919562082169326020112184610212106114783552600386600991041730708660332433069496876111709332401331479536001156782767612294397467781907411670127248392874868458412739903605080809036417882924755318528949887911343576032967932901670228043870953002959546843860029275498243130135781287086342909744574628930976915692382738403971331649889598115845338342103110566480617618859070573312290249473600919960953181716763184734711737303415394513153689518686629657130905224990404968458401154929651954642069150329353636462571599533575014891367583651607824441696241707455768315289295082304375258859962315160192913527272523950078853148110438898923281023255480429158299280842645858603865450101152778222254533580837264812626839211187548077662059829459512918992938801291024107040535367656001813691281530471413866765383513086918565443770896176905108807728976917732142042848531177730793497651450624300931135117589357543161302102114270645199947751816165542415348073926920663387756561226592144907873000228077076162531322298980955996384579200961594621578617668387117683023303237697399324390539098135656075695828603445644909283492549397990844124868494042950614006319067606195636394977472908654718040930874780686411218780221880364728369388630408045946624886900679404386522206000953211356304166490064309482310568114329620571806381020939769007326115346434353213833215174758499033242919286777739230618611896952448897200729054197571288799086310367982437966962418140504707875700731472840458509071301768131036793265260689657948698638788175723607354314226469701947310720540971448481826373953587864045017349998376807360041064330792764343054287180900818469381752145384604529028425833497417712676659897934979304841292790783340951302894013104619565310089346304568404015533942791696704572200706556770103400913122221051627060707919367786905018964899030608549199205513586812914672773520697959962222277552949121292138032188771037238442560751491630878681462563561027694409292913487075682060674710577378603312970005039323393122995727547994740021105981610757541831428009894752693885369679347558466695955044364230677436935337832962296009143341313210381370188644891777473938517722174258640148791570043433972421181897674027040832840478882740009523405819957217091849248479110505561546947475305930277953301463701576331591562524639344935505918385531873369290076761885726254123081601629616240750443636657461429151992235421723723796423696818002705151974775702758955989959289615885609884050505021659670194144218394669749389833706729597737385241774741727181673272345251515535566107347591625614953853996775545017976758894448630287806280675862867570653468275795889732117225369103290167959215886537381483933634711101909571853188030996447568020579155678020830413641430068811608309451612915587126338223701786292410978370285301225759344331124541015873515308740447678802169143051694848600901759031403861710498695651282006797787763072746855223019912539271536846211573516087915447708832586448298757825484980730383407139851368436446497439039477991763670012391032054619250986187812714043357887051857856691022956566935784900027832184555564551875307500507809460226930153523451985449120729654210399101953112639260866863753264231236102351061916806158123418450459484588964259517778233463022197969124372667731349039963505319063836426179533697078318862401550667748323517720520125432702359420261245445845364120521148719858796157195770412706502524427037699950533866922258540392193027588123682677738485682517116650918073247517823353833373783554910433339112652191351251690121184756284306166310675820297433832820699418549317544120433827736531467198988256254279671579206384604769441891208976636587326246429882924609761615639695261181496230670754288077024536059244058855806599973338410512253041731664962690018019515452777481202012162527970585120459484776223341215156225929372455264143675951895185719320247829638867076898488131993804022063516923214857018931516699016155003674380471041028242521239093522602514780156039158065367586124366514204413050833069974664031061486872350193531686591153105167597893586629937309211514585258810105878112270531587270285852687681079778937728744237778497538136866171461372848580243655698123536425972411076058208661202656136314473308935781839938362485205095680467364483912149018266706234809574876729960872579718407872489101484485642613144454034173398968181233579552437274209018624375270353802107079300307246775903421246347862397708037350914521865459690098366782131506294830592191414582541584098541730085421305418171877761328987217570889515317280358737255209452672192200300426883163980558528077229092931595247009253271665579450780314680349620022918667268002570435892296033721459321716253747193064981477675276115525372583109111462395367660957636159285563168946029937821097727218171152658917063928410235613193458545738191905904186879454849158296818911273691028603287134505203661616294711626046279240867075768358798688446377206620028813962754095115928702586699751295586012515589050670671863305121344337055944208524591530545655653564495718987650275950548318822764555610228295667610971971096086143726247181663586987595989482694761118547162605809870742077376946845327464563690722225864991077271267522360844433776007611946108457522729797940259615422151377027590968570888486762574058221205869452095027706829934880322874076550049620034718087758616286758626057955467586325331046692336376319383862338822890961230539971027744817467710740518059705399347286473283311812029423407919052622994249984117711260704276443436258302536586107695329227386057164115443258945847619047260879533617418540532190677480498753931016068527314822105041087098745062899666958728305982010515479710534153290979387716215932802631372033784995020814400886419532928537283442001013281997537094296755461377745967966065757017968143628779396374218900524625782638043702718012941842441336271952892718624095720225856041938507409075790277664105942775067968693392043236544630523230103956137965142845397990744270809665668555553402841417979345093283655416699665628670413765166967512936405408822520238477529581115948061678050203614045767113059745480040016964104236880655482341892631285818059006702325833337797195567504844586981369469358236137346191702660087534331301723092086482755904428329025701539779705840833007668713758914403105856198604191418864814665220210582091554085921753239232042817879919294212520571388737473327672893279128428666214487903236682952544737518848824152491227861675124109706348889434935110785391325908575291185805830504552692786914652690899443031898745821071500607509226980788297770591912999100729779843828290091552442685317581991408633866868910776254134872519047876574237041476439273171440345860338811161551553179615647030422671365389011470935435403687278631819998805698836579260623402539897401253347386434598204788674118045393545865646171351223668208346089560117802208963745877896295555006599423594096010983516371404760427442896942923132885147810691088649285845972011849217068705526837671573434591405992514761285052114853790059424168533119922500724381369887632824014077931620790599862348247283599926551019393870940419338630402736947590002257009913892367254257158480086245455312372639381338720348112973936431757689306063415763319085483013932829061470152445011255849017898441562054875365328605015830724247923037808359240760729934299873158547475661609884581073920327502336522334262256275317907376421126386840296321731705850612100493490009635030387439723114308285153547470295813982766826482821279888858219984716685153008377244554289278104769326143209252200523955645454550735723415235779998624361534868335324806770748197463663234968702193500694973204039483941787428614871421329136271232386198975034722673846420368835770565162764690005975041017524871957429415995069126705064434891096065616790954913327305652502816478449098591738648207973532588418181764861573352241402525054067164643254995976816329151532486341515183741521376712255744412739353063073326320197819075620203284066618907141521111051702007018541041658094505241005862283996244499312919721500577162027133972915307385819066705337359662808325822054992885047699565184415338692569851631869553525086390282787675074519765994564686745830519539498736967117992953220548952102316456681129761682714894004667846789041468620941192495420561485481607024072123396268793190459787611133602294344354057315406632213942455758999046822620826564280818005626851923312161422497949761750296308641435446864137247648615288143026797624371016960859034949943397667244006749377739540174857852183520277085813283845527703432574187728777586867819046103258792810075582134918135092124675578565025470374983350518342627593528213889691878641161277283255196535173580225340807599905447235081616084926865235113450746969124344530094222584521006316085831265213588299163277182359833190788153414841901808038403453745102321195905483846993841018357956496281187011111459110212640162435526342218965769155320555139844581201540443080033003642892506368632060736175203421367432041171141257636709560929611851939206085659953743548652558736819578807445351544166818087437333276367642646725730360464063729934282127262505182516693200095701295708126697492199996497046004787097798326154571635484782606528797451050775418880150362999101667714343330096501642602010141079264307323713140064700507022920324845198065244660882028927186833903054739995304240588079180144664289354913742134935933067032009071542509801792830300682327435926898371704589788798170955566313527985917673645340126777171129102419277358244384984462938317303761112437648158542159405716793722771949168368731368637136228895503070132022788311486926778859558061571867219792501239373356060944026222523376566356802728655624008938784935204482580712015734507574492228260684987791061642831325747267015599335744753351523659776762942739932327211278515515683835383824860975239333652174110499687267365825182626348862840086451061755786356102023094871064186437466516687838651856152063727933216815355916557771593274866855166263477014031593738031216531371866423659866244134324489167164387594141115842239994643240962635766183961200945538439555487663036871547284287977793332955770694335597361135556265802018644499822326626346006663077916877771233252954889427767584198810986511502514926569829275476536971747233467667573374573838521017699305991295935604496412945475374363395866027395622103720200313863352917871926297256628566096471601751206152363731738590425427524852759201156939703018268431400923886899978712939135354985141841395310738905993853827178793246541833601874482592475151705233620673261208297928949956306292977948447011588282201254902169410830236430362811984625070086579314360547556409636616586208314463718245203132660049937586715224261754999383261850706394938400326824368041787960602255078556892049750514359995688852423366997000554637468773962166071189223643896294355139963740124542393033866672508646016386747797549226690553389243097196169657560448357609889707619807043362471917710840032964162500339910927316726691671627945977897817800784864374833084372890151847451916779349785869964668144269047909948320105551133774775762062954405897302495318505517497358107307001548363426565046776316196199620002586307061143874187000861234152451816581384699533850341213821858876217636654902328777077420776289263732514392989642878337789238147337492561091845658377971438819756476096474447799339304419685013864809241510175198200158513788427707471420862912739940468276431203000987569541405719137942462029169436169298436587724729957133434603844295720345052917077494682802793186973839677363427953385498300191092944677564128208022627626754103576478737033662099203723690370890621950790296421000223961376031063352305477949903265222375146868050204890477680594268857289149953865687410016484187695427058817656340690212125369945248789906596280072768322718618781491062622569944384448066790915562505736234322484003609274904528807969900043588522518458326589404200183880719014540516992701745948945196160377668886110813214482523130031312245944507433570967585706652383485156305011534458137639984205726439984563109386948312040003529466410917574551717359428051359344991200668316478274439074381968065799238002420029622245059131155075972891815119004174305066516561555823750458014918945646608927316319727742824148414978449551189275784071457268554689112428919873074237177065068506270158671051959663170937909476053441987148515237714212791250017735821384875880610748688398383841010924171851500023153152817059717741936984058899458110781658141125290739657024814984397795810429740540716539575259060962464771549871945334926958884461533175615188102388351754772219520696263518634046982660758128733740603342536867857142345761998993390100541450353219469359048397205372176583973802270923463049168976454809321004741470069359736796144178860310126623650958579909186391597164378855685243172598999393759379385279755244557052030528373841497575736274375486183967063330987747120238158554291704564874817243053429726808391509515462183470073931348670551476386727381620549966596589971788967183830525470189811788895459294197064800348821704892576650258017191731729254200151189495448669584431273732870774952706061964702456685943759036397742860691966018098167762293636189731824327255426714557499793869361805942804495131195400803238630973232613639459452759639942064068371211642991137213836570876782382113420089266724516834754182293033464536362770480347065800655123834810641168980628950205542691203677821276827232253160070010849263798997365026601875530524152707558014180807773881125457918827319761758415682412588873566879739581087706712332465051699570502748343346692541402430617486502779050775273824345580705159955641137634825550507053692742885054460307391932710058693981476735060031243111840558221605603313518452736497499097636779125671043920817652141367595462105412913523802232188039729433611081943545582790483885663308272432690983616168835839238769233765566679079334634126766402761023082001443486209061846055996452513697852390814912835501573132811205411052922864356008767349096175286326781263083391595614276376300379371462260244522205164139323933421200233387963205224230310776780092826761175111111343370617372087868134354711116221020846143636793176028826409248754113335795753985340034901893678467348056816625424329277752977224135045921008094154480935938935025235974146120278792957012210778819443500049039585240870009928885615751480748245119816312971799065050394892108227514907585277122717291608132976404444044426097171610238257550958135345536688984658988333399680298098742064299516990507505109311123022381483410572941334292493285910215207387889290980509006618485466760209661921946046391072391130115394281539474226256153776201052128955712296454478877617638541478473378442036066501355629625666710421550371716955167888757196858436255873743551965490143993645282165275147216728400214753280359474424136315453072484000185285840322637127563062569786332327073397702889532501689927310835938422962467796426576729003089019627133856392609479092593840293357063810853349093779477981409166937096895420235701858805255137561189770088588405719718289295328223683627404722503581570387581020888199188449107360273986559726798415756639214342699860747423881672937335022515361379839941754254279014475207825835209259187150268745138307139715658806985821506384829952660349123514195962734864943699173837813843722817794453676444133081624687954458817810625055950767276565593738241160761942539460216330947657110530513846356503112356191058228738687546372318866416902535293110472955043781111503027837812230421099214817405347736808917783710760310914188819361921399385601307087216279620443414965257656657277577039882366804587975794290553158013080358343464903926722877906078083390421347965423656163130333373753983777368501715195330956219288510512847079206722776474750161075717152022099514731146221708133308279683253509321414290191453034574284393376831879060474161675045116896935692301011337624294206794834925851955066211742504971026832099306920477042095113106418753747142364320550036691896679177806455243434928293760764331495534011230949565101962906335344545177801170474246909898032803628211170842347439252010516263041104736580466452794845736364902717459714618011237384797728582773081347912818386274242152478889001775944733371877176523830041115526287071250582246475448403692787282981477098761851774067925650131720945586275407761823765165948070729168571190300432568088410106945927445134552876925226416751973569878131323356735582720609145231785625645570426541740617080141848779342277744964725179903996361465446664417400479349060898901831166750696322488893319923369323518134949330073162606312511502808795253021861332333796356777888483624933020778356311734788350925717492170675250852774983741793172932263320173863289004675737774693422009201864576759761993022893715340956908840584875849948719480145891602514940532687895351980552738492719529549430159000511144760016874936675201608938847472088922573987745196889508756196716156031864022010811854207217174318491583737889116839118206131189048391806901410816606005294632690650062191445007953890944073671905589511036854335251288896681959152797061829746388092735461306341813974314537838976898879961425122128065877604530801717396007373381515055694249969366149213149723109668578525612933476214534677500492117538657247730817525654951822513120045994819889582737912880075097723921888189503909030928627779726348797705366257785911392900726346023101390161580472845620509704914199772363401618580299565911166021447561329764850750633348301545214311898386104570816469223917381453571060773096991855199884126353991519155007429749459240901514268227167894254569962162245373811597467049418070804589656071757391906170459906304024707238206312924948453373332006293169453361406556005821850902847004212201648532814491116349599013030497071397559091046590592784432814917352917576324903580391528245803557655393596260488201547900090704307216784493263797653416352353662233050561281857960041294406150218644331300705536512138185552636675896494776332014775742169819061110900010687505666764501686482617269426945236984089784472145069540547813453843189249918076848679919969888164739103908360822342862298508986490111084590222287523126145430213070588124040526230503450392599346837180891728912179861714855123806246538250716161033979913363282456306198690829398184793151254382111566540769710918010382245421687308102717816100741766073242675062720765922907054631816259904517616643171751780582575426259454639372911694641131586887170142020332075012761871126340134352235572764693329607826108446836336297684100126233964833886616775790570253738674571199479949353439887193489117769893785760114629399895663275568930531745772031501496878409161251306330910691571286036819664261701675638652797082468114972940703578243866633694318633172847689218619714315616785396635382976426920141126475491386953957763581296964169263297588196745357620327447603805305855333971738010282591398606133727053759524371296699637870218928985818213474544412196971146525005136865582129363984937615019234881390992687236105685739561308633417486751873427940216467306144045012002923556502891620435285448740651756829471134005209432676756477638037665380462793755244586080845138193992598748064506746138749791570438978383763741962266720765364924743188425069436404606627255587119452350716845028852916776162485731772164951700995044768351884933061203186438291844583597954987768476756766046661194533616898786765431358225394753941738220971476652637942698405490026071075031627270444673691066125111118110969037526058467440340225789986329317493961978722347565700387308122785994055268702867301084971310653381553325044718664069589182748264387489965765607430907165250791988909404209075074424319839599835291221197172154415946193986445527472165197235111143272073750838719654695583582080884907726025349756730365492470113516548174480590288946998604616828162006124689446019291983509390033777013912854330110437417415179542325697509387485229835742561395087943171260921443718489013261249022033602409085166173331121333335887008738859505938134273872732791950954782822408418931695567592073023832205696064264591911722902473197026167848342137119859312195875312402317642513340135405192352882662154537728932589972378906710872046723929165967708107337756350629965450136325955625523949467033800036679414996138305761800337449835451372566170821092634087802930278158743600790351398411714433071486855285882266992522064564550938804992311329829961864286478088428729490130058100245981500396483254442872748979290463298123338124427279022240436778675244350900389718281991752147251026603866513888753433068378568892247172848731223077751186931723095789963151256501619138123117630139119453664964737140319778044667404946122897626559782554825045866235965230113911838031332581422677311403516645932758275600068691621431086994147772798105911274593227687091113068308835797364231395718111739663922108630045822142555022896552177646887297581001366971795735867383871209899735198993614431958285790583996189917406643263470807440087283617689088253948282010559530632290215396894593402673921954890943072118011702864274855444627092656016365842558915749502434620489855995336122313689759008231188657059383454649073843648152242437994743325610065828421240066533682910780517986549075799271451109759979776139471034850678151454857293497976703198538805668101896304139943227526971072804831353501615693017918257043824097328935604049357767165505151961458854943011311670272442459034955835750127153175002587394264393743117961426168485844075640294298390749498969306886700852817120191933255876249120708596008842003632575801649104284250387729651438163336868946820970725375015498638802910429104893794524529746335905254716442022812141359719334463867639556349012027383858900179789074691042894828703898499837835580904143743227185413309923487419413560192327627824469173547788681679256262173140660406885991151612674995866036860535965191673265244142046472507816908186593624580774759376445115033815142672291417180532443105151660814813137544413772757315464037454089781919434162346499887245179108873809096298637595446908910476031480208054874276518869047152986792319978911704404516795565675203621390868176140535880608926966641719189936797120388247364507513083728314643935123085794526453409442785604376619908254986478305814363716766724592773735427003744288348524302788587890460095585645597590631781667725909119185851744958744165355062860038281400006824718654237076379980041377190820045563724059189532017757788301205234054159863238656075120179992310797475707904955827655976049955822435699473517126245424917183357695228017364986811162777510785868416354832312139248729870305931304739258281766547495959665187396014935791518804010130556675051706991969419816290800462538384987940510894438768482389705290011414983558173327441622008756796226363222292859713704035254391583312070314814519111741414994289634902383406593531725602154707963508155529846373685270525299574192028420553977417593206953603090292716151119497173524634772082215840745217419164607689411398439834280105710505958998863115328397765153157236223201358629184550416748197194526158579423626783783720405465965374785928006172588196622026414929107239159777847259168964481538843276105361520082593766217595750930174165576197749881091237285106400990793938677940834106202394928798144941513536601706108150309565025786433807538614284283248671205166825160671402269492950034244709639434086916041821200694873351125795177676694226049154812793488090296162802657651619081985727749773652544783107436843071400464567746169506317165909344742517787067460693411435300711453659488397808220822837150166808734274286514082885860561750573552733243819507445415932062342534449756032141129766327725218507234310770465705409149361552732713044935857129188689752827169613213334169831668712512758781244940358791233563390842980601017055123411804179932270058184977768091894483255757403136750205964495679003356710064745189553370959504846732225264219449280073092682495000584689261584077739217183925631720536710908801034038761011565144824495583139087262315633829593378644601635878394480704998228035828309221590373624582730292094487405541333358266403341483105635737291058287263244761387250346040417028679069265259675417570481495775127083139675520176297854039658492560478730141254598319686597936783940352287144893710237326158998061360920406244583505124758526065402242134082191353112617046169135339665234124939268979916488769591669726702932927416298291686375968067614341374383607741844716147142065793795120480314954206172358605896273504898322003310514435745324009004443630422163446522217725501879446931843993819615027813527466661935979407217638630918428680829633779659052205844847848830513279175921258550931536418504084448035003722626167514126828625299761666478278709703127816476019327786165116153800191083617148028565252389864609176650446657795187479433997835708396676919756182481000556172966116067428617034127154201009545874442357519794168721145362217040228316674907407510712345268706119952095685529102177627038950653631099138842763071096826159169344908052226286050604771186485627187556841882692635479005752968272400897143315022876899744213694324030247130252386997715844441825973535663697796901122688104138592338440041160749206403081804691496132667239566004387147872092764243028986283327086486089876683728181989530831841983438604231432268539357318742454001392817228827911497714649497436832449028532050057420389761953734954393984974593660887977923492703595830182799634282859944204999326632993433203733354975072489349113963300840238386653586776285072265889524356409492285113331337840236509471293581491129442946249640190966597919282942711729339397735664317731899080124509647848688943737921934259123540927556536652589243090975081489692576189579546286971665655670803609465903146578696489055166407747975083432646387780153709138281914488085237931281845191422551889457775069771672398030662004357145028564220804394873237781830099509098245506894769267011075167360306895660086923866532346187357982089707929739176795806387640835776688536980976387987243438115041696236845689108429221309373822912311977364279399851281923539988617700026496319494786496415686501013541791042775218243901271054617854644436412432395629990982595322742465018802868777727426040807946496376141214598537674633212544601464440646399046994053740983172873483723767178418299129585113799851183805798295425728110974162510347612190793065888005308607991077367824609245381001962600108370385379594044787752405737364069144861947760135898446946849622145984165592602373080741960357823272434165518516507186795673478217943956964479341719858452251410191846696463268531701578005107861776162754957759030826455218916132458070784383213396251929819967295752555471810118628779097635245724795811132488604462038647010443664142551178820701837045218675431985560658877153818768808699070334016904065426651654606863561913425946281180942564763227866750615309050065043791684398470356556450316554457450774570982725011580836201900462786410148502106992056842361504691590084527405232387418294308853623038426800567161496696903782186568890249499872985964818951427379907110507156316278096443555663698292441111693927312183896498606823958951199702560890969195064672826666173463395300785907966334617439392125051993063754916827677006448309554875740032414938879234243786226769399654214520147762985117750425659321717012262638943117731927848015196753786591434444561024130296654948911235687891594245347744796456175049399464082898580917572032296963762938714371979646835834642216175669791431995354913886390180810907550866227301509436981037996299656699173055707027721226571941061186653196151580471973304994578718590203563548001405231522016665983184175845595647186009384228509984262376458878518879145432344645717250266621790190842600784317523803980670594517942719217327635666967658168090359443907961690599439766460137621895162690946617306354291257129090784556102836750004359201085464796511051472836146301542325403244275209326010125766116834197474111294420865752779039716355889320808167154810331613503041307199430629974355635557482803851400339326338120936051218377406838241865571609912056561298710220159693285779248880575576510039123158798595172193520562687148806297606645738869966727843669593771159930551989369130163441534375575536140390268789376994384628407524047420025871836216272238614351007590343838874150936550472547861923021611086943653076615093817959790975706919017639625759954326882974523576914189391862459054933068984076584854570618359490370778731665703641597556870277543467919310848183160599218409656551127426752653579578851927187044568615576624220290786535962945069961800839528525462003065071907340265737977994009991095576222869565439641220028757114848584982009026459238465751910938512530230295321299601304091590748625240064028159419697964380301625686678061165199903017183605215150573896431428951590606641593122997654656839774788259568096384560464079990273791441488508798980046096620054486267691583796152714663755970975128717237065808706263250120763869123722525843368008157273619159529034399323059741047333505028366347255228082168068159580851273553378606939024414401627705702078825416407939498882617698080695782236688736326194490075562616582211926528880770738389273837036496888159686215682488659276756290001508908259294012910164507179009062067921649316384058795823998260397800354439307528872862555226878180016096810622786207281646414177032833413633800447788049137072823050098131187347483225417452456410245139409817447529205392216814905219600369418984948581004145799700650351617393283605480589378327301508117169213784764476056222801632260261979572970713273135407145284301538069805575121711936126141257144993782869045923847931561509606158835024585312744438392432479656276251600501048408954669816272471282536952023302636053958098382098036649530604925236594250428209451062418595908299432270373701324666805677281329310020044406453759332026718716134623777030565732123373351351184538776504318461180131888345464330990352811150435100325342194884434211241044117328990889114449533275628796716398904663154919022157205308452415986422809886514303077796801355335210025896374703463968715264966119132122818277704190710577727070911608063787192672167365740529318294173285891095832225092024983074804536433838341240411387239700023120079148850370261795905030384271023940844436343096826839710779960999249823534396062582167342697875477700416443153259621078162921928963619985629416602629741569402899860358288190965990058917973613981674405086381315083277709588295577706220573402025007682340218589580078408231541959099790833213661039380785821541278394516443150558802122536924608919718965141160985153867800119624077030206481488968870813330567011672698574287101811064823309663281526989303620283393001486380980514191224249145771862113022937656756864900771482489056104621288969920670664431341637195880935720992589656395963073990051756656574018132832741855649009716610611870072665502509343098614304900295522760263599645824896962268869065839614500101994803711794418171646144039401518102091745123770886186644389641489089021811149655766165006701790005928367704153967155447880942529899557297149493535128960293220287193738560211344004138549765470807823638948501535505411722054390291286470377150795723870521784321862550532332867988894609170313218021065069049166144466716056595424858926283658623152871881634988207595516440879448818412155896276454777013878237252942031295672664371872064910996834919900315205335000801375950049740335279870595113401152623240029895529442849632680074289464429324167614693664970400616450765057167783278110635284125539774049718333052981137892058381225402527515142812173326418643485889832098390394624533153234626273103101240182273960560264864129082702915865447349234887538207772483370099928678116346900311405752981582813760880330263659086094716854077862289472439110444205300494906845952855845940824727450461078500053346734327220290152698176263228043925049799744457604816582227474001567032419272921422683732799392963938273328214236502102177144242801282366072799049190967998764752582075347120799733020903912052416644469480733404698752914426370924361222015981438829255266437144022145187507586292534997106824571851223376186050930651773450545642009560214795697024846060033498087625488268567117697409040340504129240818529019720542252061833094997065254317495341906406858229543898095676893035633110401703481400958545277975107465107656933851759073501995960552455124438244178032451421998975183130161691717002169282773821012111080113257624429116753667688948812378587836636953229530439061168113051516555851059213880122773860858034093742008637698207364915463478803133771894029833339213406320638765083029127624316566846324225685796070466966357066030441492850943320968151987620512079782488798271359713724202873041438523630477259098086778971159458540336276521330342873343078884838093478318154492146671558996499843246587347223214390518889888214825495333899624705460552832448376065421238983775291038441920363608441232312143906613200483072438832349653790938914058666583608137306434799111999902643131651984129230254782765427874981814550237073429655412733486093976263996167560365577897270189988022017864792377439525422568639274593370128286117274990645249693506513058775421066034247401411814061531880224501870642664614752429527278832624413209685114530019023145215442215280888160044808754707174301963927052216243091842891083686286296257494624311349159638290853322229602476227931041999293694030262993638754279933133412496273095667236454601293732683886257547539827566045463942562954064593403197623927990958910782144909093535745947463400122126046694400881159042640200772385236300404538110571539447496624975498022034876309696874656546145627205310123692773208306231553576976242906391920290063130619672841091546125867847914391503865555645621622498060413881124529642901644771291328380429709072486249797860807160664172626337209301580263480217189373834868838819297530333924707425998237295361041548363736647711051081190457113792741914088562182806322054803597370451782141803356427515098840836141652042236415230829357262862572646825768031306829679252761728767390424931285213776589891062183927729835133747031196291948006970946940402776435011769966510359377357946084370427463141232467994975826233674642201915391879699681570404094614840722388256805993445074049273970481411259356549553331202326076145263154968143756420316215009028692623720202450494431478928640431346021506169200922942653084778096187491758634962054584529305773754104657481612763707223742915953400175756549196076816579541133277776487930873543268537194001630309810912871609322624078064099480707937631820495614203530688419701459808594371594871255788961925421962099586501908937606203865145947963371996715407013862479531372228307181495091661889395722145673978469074220545068513574291422044070168151651098913089013395690559693202948199011891078310596372820027198255416945548361010959010951365152563214051176535676969561192870857630159636843752939478329214912431883655120300405836903504272575010131595541501834003188727150751804492270009157976075870335649072229489079035633480067378327065435155631907270437927836708952109511098959221622291242867561373489546554926605403906194959863396932003500641766936757407191702680063361781915396247800186786335339961427486538812721231538793218770899579447819055407658101581072677453955642436544785236051190066583715335647401192160312300214272239991963798312801758150509277365795929396746208078538953042980984898568520628161341849390511088814425891523435996881077758648382103982955638118144112322124472481809666615072637704186258145847637256002691857024328684780187314041756952847116831093756114226419484201218609751758609794107577551258980783837627925954419118761475048530994656370699658843638803403078117733781653247504264982098841417542705286920389798792432493308624665946057518867270695846449601349783526882269356070274646253778880290609289430021019915680814488605307676837221110305320445480212414811044983489584565245814847011380393464883025770214428007490581832007427565506718119737246406539135795413116415562154328882562087474372411161408767715413274883480938075295358074584661541844264940201036015435874306331970351376120956602437063570083466000736159500708011487921494730440942127141289038520514618855181912904346650900960636360880889108393155250840791081423819434944701407518468196372888846803256164485985808699810611837021467812254749141477327502138421114530142336780303237455749684941827533690622648345694036133297472882201133769572165495615633036237810604970548259405405490000177570798899785519910165751586049108091334136520666009286133847165243744076396657383127748307613690336639907763967157590038372545344266431733196624954018812012637496822020072914622361322056306508696648148495747175266192617504709561889009761668451199668843259253027804099756175666861064962341438057185486460919257085219998259601213932810147370062171578269440700865518370928580974099971232523280579544032660404030892165439480975944267681733896447568181400129894397326432770371937536429374714872727492297634184627853373958982966341916763775639296475587202447310477073212046724087255779284187995224758224142599821277264971866074341532965444227848096580456925924854793343887654354855970587266559079577865084163239603569037441135795562208442461748770408579063940578145087846397457490258519099350760789383967339824466851200345450191275297913934400794521704292584422753979410386485880242854897885118340472500916670011720190837857119560363867368558550742519764795167919486881624229420303546185223111684170879448604811135203408957479541577502741835477548946048550206255983193154883385624291721048786944684087890426269287120477148851968516940373937808008362633045027141348451173594828495840422112303067090623898157698177940635144788884275606019096069629994077308646680586064898442037137649901656909722095418360859074164198327755011080971293649896765144740309785614038503622460968883514821302429856534010394460582966392241198171439224246677027064865626098778212411432409239203734882981795876319711284961572351994751303797685541725091033615697067099297696794685010140523066202153365260082283400387348723932991526801622401178052177202108728162039974432052209635593938471043320229079615546381770629289618547581098344589943217103488481365403753878958400968351531537790090357517408455981613110325530039373272652265505724688804426896975523578396168699316063718501508263557831457198850309104150609746925728942979820887886842787532100517935320283126166848108057205524868270773053405988856746373138459276322910578947046993923986360380663414324769078408961497520517820174484460659495908997779561060231512047952979709718244046584909135909058037338388337002354132790753287850728678538255334009240577249549199593119455386662601022390060685137198332274748542753947991829100446028325719522385611267123393597442497745410316757896166761691068923581874321088073972850558439592307183200446876570883022063389686784601144017548537503353786007859433983467388338580339408507158533724091304071572717942075451420141963112884368190564400405501583227296841941640492449987186364357350819459713385911057623081057273989965794642302287115315955189272857480709273659954342780055506656108503994828527465717636165893192125878082237066229409930660432766182611997828116909108669375093124841349218528879525411625457660042750349996573044797869464039294246476955299697311555901152401820166939551214549761710990518703914077099144860152559414099591601489751514328586444107446024984492914524491803333891951578679032946731559376803881927414111618928610051215662946464603691611662924181532876215812839116789999492136884873898492512447839572856660309718412643470947111300978191373929855653972594360870165515282811538361409326723464058752946927250823904548707563660267947662096794664428603058785253709144421235136983049549440009558655585687468641058461048350944964664812939503002811587578128737686711660072283694668111719768654524434899262812149992857451975058829442322326814551398458164340257207811694797789412434092930825024554841884009946587861282592486900199269059690925059351194611732883344450406389027425003578192388254555849568834956513029495159054694203792699299264456151491849297459294133418111564019515916048500100917294575942983029474642173508871471034939834229031777469360808718481187512939031550599092686912853117391909902585918983821388251123478682905293847274557672990244081188392610837912496072941514255912450165068649189857418400606347122472089819113754761842076726547775341624943511240514253403446775327499233891114019670923642411586092910224720336363935555279209961955412231584117056345685322586876169517587802215848326745697617697412902715184297474367426913038348620014032080953084997091781874899378138466224175886484587720934527335442453280421997432293764340584667400952450341419482654773480722330374099896246625159995000238589098314805064042010659420403586120764626138620447807322519303696721894126894939450808714915348062760746820827959891417312590775836418467972603624787332212709711116026429066270789971348479204385363607209074457909871731622422929911510850614911111334332762637422033797716994395301498567305469448334471268857510551676763524779689943343499849758337180468798066712584454095783976221798551914580192922632388868044334941543810385937431030819561875112334306908479262742621402282921090249346911300325458413805033037820910986574263415341475870821702137210111842727730746273513836898982967099992053575067879208393127045018057207509958342455940581683885689954855444850935896436280469035104580282728057411583566403588294500721538821224941227087686059346819152090915680288018747027219576434127333295935649415194930692465632252766241784921050456690891706604076061519777906442157412359258261000650859405778573532892763342181864938915436651148637931272135918987930156586904457560232818589550259832805895695490671568762416368391421716727224036045712994649559833383451810429120975533946393831088623632125755958596960638301190321550239295742441611708244235560165687982135564788448062776821595231608647099408106438209718993070019140047863727292074635170703228852515499291617063689975380752910853335878368226744252048149252897723897523091205222487386411037746198137283409199861101099022635959956379237214457639905663794530925450278126619501659776981632994872850496273985189472292690630642313136163633926644533052147641899340801112531094396502964804039057026120076105714763549464633102883683985034537843751882426538255479539107665448347290568272564775285254647412186671462860269380494359586209448977884791831202739964962981628772416592489023027377087904151653221986494879356921578523342935391676621303867598927900020287664725048821011751567406548890810583305777993741423674147576759456437226071395760795887254992955326798815173808067034750342922385562085167031680977310611376587693623936676178502158593685602627301167618417742774859293160360702077904065982074663198283184490151313433730493659704769687326093315334961666108314187877076944348292641536659607127991157902248955110349302537175878711087735180928390148469805966934115406898507842381365404957846745122905632460432075086847789025277691212162950040088201548566420997222881561342507875185153718469253206445648768923582020686858770307498829021532072819675796196573542090982497869553058386723226580886234845998927019820648858406465285743491002781460131148986270303046094333869064861950071658719354701114726591349448343838737180494047221573173298354760550001865443749578136225370832460399443213285217300878069332332003021146367761672416253923183335798165544769907545295860503886250158588065183959386134490448495689299981552743963274146311574112595929569326503171722343516683545707363716070450336067860920567740708315483953135348459567700291300848869808958644312036666614863655052378940812958700080213307248000254853669233418039982449274890272266553029440741930178057735204040300997054476224094779587839585359795449841680606651902944031895574863747035513838722872243406077244554137866222795124334054214558907258252988289287595122033738937577008681643953612686589986374872511938215367652868541077664747046120463477130354385838124137911949782155338491326564254216552799047055564143827048308970375854701046328572994845216347118494414802837469402067480965320457144057722434404409523849347288777424892712155933086990105030579796717832259892955146887070736617468833925449307419869868065958035909832435362735207877669037992582155438148790830580756816863739667683720817888591600601128366281990155071148484095194703632130938005880334049130727207526140488295423304233368987523435490667960395752026446063000295869037783605053882641155728369782930221881220974051016970062150803282532767895096220024088679619457654148004915140790280850497075923767041397239377897268228360333715701936028716086072871838237142657094229243947171581464004417634157313214029266900729397962491204043054686545344975660365271152321423838309969518539176599738608016826953846115442044610859289132113248164838946758500604658668295666950054160304382359161190250646142098349851819691763950417212264577501667764046848369713879166948135212631979325782510569426924811064575637120415190249874717929442974996777148727018182204213812039501462381134223686815324775290913400623363887946277045262098042903522513609289499988972265542734868026153176774539389805411549029736751441455016783429800266532968517492633504099287197065870131632050282528376358602433041305847964269580655598520688230641260932938956380175018048929102743952311857247848920408059999036891600288974316970616615297801883502567063673370417707624717695143805097833212504083497156226108010760312259863269940231263772919366601980139872722411492787430284053498759192854996610644259076995156802474043355036527179950517683483030558867819340378790763014923213588340728146016976738435431390696751896292475716734449146459567649859381788290486400991827844422524397490743447565257485586076648273021229767032810048915196773908305869411110488910530682959957296121983174828870309802791381474921017415880921560371226503959302221453863415812954212160465754437727653655031700313984871054573846275883542011004903610019725019672768692048725627628789209521628480637888032254384747075275222665769587723339065097111910702845702273124370593953543839201974178996396223576875261450618705423509731420039597200535485809635942278681207878252782726327364497413365037961827082610273387043988997854455268372512990977913805324403953928589970395833109650756259016943180087124458293398444761004325544503073994643266124850223577613104860555604799068624987057681415662859909017564223627488343491513628802421468191861029300770017254596070816958896496337228446338378994123685511019743039501310321591324604447481523322199633568390515230636950064351421248813320871685209616829917645839793876652187923514998253465972358114275878604578176132208478103718822087419219935780504303140339639404671046015490381568288607251927640004713229508436740733274328194898168574966129590083474431405555127764380146044582510726646553060766697035011286421778859075447851025142336622129206239246285478548095419875086514718381523589467483164687880930820029722555911118887637453505248356314324185130126864723602476780335424732990939425715947770420840389601045884712424106266597701800071829503583650583092499252664620969580452526629899954004609918038131508855846362326100513418760653564239859206102433996932273863084896067565616633701435158950367958480564430468555530531846617089258351438198682356842026201679189869591358005396916159705214141648609312228791677067588607858610860841340807970999595477032241836532586642159984124304863459172592038655762444543303554701365586791508828441073532373467889542642489031635219202715647445232128049087272862715564996526121656307327531573752451919043151175924568824102072223949403038391954672172787308347427105120343569224364292553124513780509821707672380185168109966524192527619066636429579488563756216954692100947894782777928089337201503913121053915748611949267051391182880172113762982496412763728562981195268351226220438527157785382484257923342991393524938775040679210281055688456472369497999106485842397020927653013057496467220310206545436273174476913246104106535908840044713197611149377813321071388305438421755980843958246450888783399257404502918619285232937892964327828492783479966727946958272421532634766649995316946985469892483865206640887754285359864843284422150214974946184910557055911908624961635229509349395070042561512197605759251933244863270364787197160696743368411978919249904828989830784496734612976945426236027838055684323311960456677149326269207833538400890525686352946117521716267128655340202034193460347893426197934586225003150220044260917916729192397445659974282797823091648033942061454050247740035540104830106439532098001060398964187031927707083042626013276224612673482436881739927763360066717991456911067512284583928971657399240281294417240425295051310810296169259387698353595999521262818300725088681133444182161179191966453911177223651693259777905860250097172092386547468309823260460454341105596229645111335024763028368333461325382085759706059113998678353553583049874377970106069274604598831354837386340161198513542779483123140139211332686853728437242844589040953660991052967906970635726752830578854360995949145820466030652889370893099960000830719221015739856914038556226171117503622558003480144918028244368725032984631298122824305666645206680210242986237044471802962357737761807120262106652944578351974583048880542763445102944824609329222618057210289538273592575988191356520807848197167758853858609797284614891777067419000633519782281227240887258574931280146896819091785394954849342438120194483626246630164877848620021482316636319299272245284505102943412271942793842184780320898396537953631914777230528361604245328547312039432629902114731676128384000914955691266928405031680475109602400665446565295756638661202652344566741444296416032711578303526875316340476846915797900885850941422070725054961974745312728938730958308276519984950897563262181523573164251959605233611369211968168810033656621404751721808153002758125122747048124910749660549149243103621163173190343273226154429979077506768815484338224736658238952267819447352699426539610901131166149469877781093766941247727965557753985425020854988708442182075562112347662867114986927417070828084791667283984234149839750429324536494194199553749931217114632619266938494231225464297710909897842238575785890030959080698196240784710177668074836799828511382149065608191903391833051949912543976222275958428342279658511505933138645384046985045638077789117345012401126916357449247316463773086231361407077987609911683115292853720939859191144954947920669731706285195749264958646189231256438573617122862286775890573248954348969460116997787742882415903886188621562602670515853582345003186947872488312113044278777947819483450629947620163173635252537019697047064116353857954879126507115280766524462431623106461984453419305263880891068527967877752506695111668690891281018431887007146692173651657691591841234309705125851489660120322344789253746330184586673888566924726620120587787037987278175209352941407046812872676035322069215336979937382182133981061506220985649667407875848239472886467862254754703752364672120581904496891111574213058285683362755748975685262423252387073266200430747807151068256188825469039999290860230571329813124545782467973385679387151885724558999972797760764298880775220079176558749743556766679785627201094713967446851042122463698073455251813496507515673400618564310239944558336964274153241188986847584651998587708505589057537220075151284040738575453123734020412501918905455790337504645954534940924762616714587348362691499639659529883283495939750451891120449847503346143304209466108049237127741800427729948589027509526047361670073432087009934669123429693577218921192369015658767692788557837149804106662946002714045370662327899919964150406337997860963381655725850838418742870774366450307568317618301198809958036996887043857721440882130348967780267215921043730353403037121653667192314386144619914078738874487200859685880684903019192276969162070594163262940315886194559014460342894681760321052452647532043615294533525949443417628578972512639858243039380641740534723625300145215867794676889302335998426266796253353782144842769514351217589379373987659338150511026482837459633614403652844053643754250614332486741911618400548458236164732401960684746769941183246368533343657045401514914064849514323853500641560900683610841615675928638720081691952618735450805204247884978041509563391946392780131853886296745054186409502948150513921308918017978353368016832038712789628703350781776452153467082201205333392189607138238997286784268836033324911756124848573316855626582901349173699651555730282935969898943400770978785371490051957364878812334579093068275537387778425737004228529247396112180489894711086486639457821375988027660023239541363217438150886918029265581277204195155848294292149736362513312491004052371812206621264084728524377395122402420740856459437386570557399110057454112276860034452304033380708829522433247946798738624757547747135121659335733255334994772779170852382055980453330731173103970562573089209996592020395897297262539157507010928198782185471525383337879773535923580759622178710640518026808510236346696462383213930965243628764245881059787900615783770249434623129942880157187686027906752439346004522634764964519596193772359824152634583398475501483632531908469904234747226758870815824096221622068588318540776288991804556383156738821466356063032824328367670912267396395741899622547923775658507377198627618829415022088911500347668272031198071415289153991528922198893860134942265790972961440564004400610654668292778723312509731916953196274594201067868052303257375839572673061638754486777405540785412817046532706396326206539250053086447239631019760674104642248676045161558423177333932002231974002177327076690963361569657224186948564077521027216853736769778865095962362541790316809151309842500388232096781190987345120817490652071192935789927706935810859638717731774405611604009509273372259468943078377176129717295870896209050597045593388133652605885480755604313105254928957239209518233085503516480425875148296667024705654377608205658428500624303243201971792042832163130742016443767822803288039742683174002597855389103221077963902036591643518765768024258154961107086316279118290587635177696279107213280844565442508695140354541701369567226290147271091204170283674621151638722379704996225527053996835083922347818519384498670610603720690416785122162395479771868212670275767421653890913101902554054425112860162811827354315072906278598457171930391728320741853490434641826803717856076240654194041208211293165311075412342986248686463516486117438374843042931282806351236844578320907733773794124489115056810208044603834528789592389926953575858759785542397940224066557745697412693215148296881998219973936675591885734261381138134988971558850694376610746155218819101037694451852448839871293911100196640714865884568121281475129068712964399040658672749089377452011848094876443909973523154516046492343747593013692513983629827796784019253298676542002339609109235517490947782026128396705438181497855952817591453699073454769479249213504545823855282397633934263519497360247304877458665712250003323822107112435370753207578803875971649805503598318047515037826506416936909349252027557415833534795650344879682724742853246321095054447776117790876215945355242492693625576946702549846672959429800617074258826281656115102452268487316607091616304104403674873336317919905279179616007740580018636193911516120499236582387615532048071582037231257366523585788655918055076803866277283624582054397986290648426641434551509594513164439038530413539668793788652769873345554734305352099103865320980075828958189016131486924548448802390227889951622518649240117353777592240954660939280217987792508389260216984687131330608040859881856306996959140866170393458894495729459271047086105449518949408639736954779485625044964246302427749975686171414728172834429161789111803880778716448134145444875838380983323596630875209577274048220567770544675618694055737854481094866722293998035183593771143440682286963629397231977992014302214925368851377250506940115756914929726768790799937735700258467188968205165814716159690334103696804785607668275234547237890878381094694736829092356924053606193661885094909476958461945565753212531075098638978460257573286142680901650568870846056854135363343303978701936505959090191701906927662726783481232958457354915147357460646153426904490353950909792611168368134310441350293752662098067484105392642600729732244179106859227269794649033938490922643325845553908978472304940984325636112871943945479473316509793433607761566900589109747606383480501066150115596900760633213491825905726587913855460022501994903947839542131644112833140517994955272975104967515045389521027994714205077592063302252627746757601529131862183418432141981394475822905162138627578050912899860096121241663376595340592160229926217092249066504862839863926731535277723705850285582753509300529161266808982225135783688490333181354243293702459998080159314674218025552249365801100275084306119052085133032526396365646653824905935677833587327544634610148610057029583601665680028827530292821905653143828223386313588458770954651634086477651779041560584795529806905857142658981490325356184912908550334057911543653978936458186408412086392250829011970790107039734218002866881929728503281063449363961651288773056403240808020325230820448096061038594241982645490193102546669671596388717483174029500966631429063981450833114996359052589148836858310042321631211282254696262399293924077175296053760337028748657193690317473190006975477701722661211798189720746403437126413915872695680919838491100735221628183844794283456701888573162149485115152449647938886844712681407111258710484866326445685063108322860641244122183527123604387787953905437500652905493677309539058205228975294961368569129224649909016731701817398620023815669263915786852297859608914696782794202836863682721110721564733206972001755668977488267641491098311169007849278945518024753670164095823817427311371776567679129504755301712876053329546537282866039288685050075969058106215727732662425662203992906729071362765416472928361903190815425598983971824154925703393201833611122022117861237237396089964070102993157322749346027410820235562357266488234052426606306505222628105217372540427320608247501315825497536594825003176770504622265484574299796521568690924814627667246640525643845128409322529501475722359240735457502173180752968351903324396830321353724139044166481508716722770223245166356556483522280823410884648415498849490500980849536568219789662741427860374335325612356872247096026340728660937539044106041764448162425980288887797786120154832806128676597954010536651662550516935475204394184165167923779131692357553388649884783396522146276714204242480438505368192904033841347879524503349709539886454314274650234753833480516049247475009724181636748635709538893798902096709365597161096145558027956848427027611881438992575401370622093203327738819640274255058929046627080440549995389638292231155475049971709931226527124237604441672511258278159952442706480317953407213652777979087245255415174165380960299788782546380254068415056796874396626210443141177395883971087144033311636539550589690041293679081559452198600907444543899827226270259154438898077191949717812453998904198577059133057750841624257173779720484329610443660039579354000231596098690408369027882526539202891618673065597543033583011636741390435776360582215887705375977330687104280533806716263395430442838330251533141879712380043929377904922570217465164986452136170161466570512635629978659252447204071192157990526993261844867702562346756609060864309068008461354987928974422149498846516872339382796699395006059049439712132511219042101901820804363092965197981188971350522719420321633079615577034885238333460070639583623438462846567631547366931675224034459713052433350151606962370925462252000514845984740313605920446911598086550873429775604712386532183445287910583396830002286584677506588124936994819032775824186499678741851881542672701644103615616456446708297760678104302543241564242518266251615976540976540507629781385836713815052413428529632221789994941826530138725475030642560147682403465470536648838370366209015292060919415463524548260691464164866715652315944311526525448789586323238715686014444555716356175515447220340423182634225791975232489344050984184345826148169724340559914434050954506631160382697032100065490786952909599747102957691827969998666629257422136526030301146272193742994271038234182983357470142110832911006158192684010662135559294309457472473360470237352405705404857719897447783072717405413757574348345765277982679166676203117099372676504266507583755324315422363656638254972632420135092779818709288937170476907130263369039521245124409770900647043980554646288083007991924842209871016817317154864557247388745346175508353374339454772457897107670885896920893298145515736667343601922458925611902448698534295647493933490563880443299620013786637794391463394700390626224917903763781379058035730437551088428275923829076623163801566703376234102136679751584064356193715971566118838429773510376741801896566424882168451484433891027693696571981932009694711840299797038469496870771122940759264224499280083149071530606478617433125686854130534724152718702895977920806186131795737940671759374842903981986570519254806826507866807289900871790495039026243152272242448528370775101028586084222823468587282895078101777230830038305549359971339232407729188632644234198759375702770605163861491591524177825783963635922095651053008649889109721938523508727323077693744257274736717668760808312161317956601385234727384202651477842871367553825291648738813790425039265368524585628231963489412824182447357227309940794467214027148446387503340104879622994118843602051319523758832997579036134742322727191233270839656818131511763512403837838222216689587525862828838677960122620144141519141329287384741304397492296785606102052728640490490035948222316863490078583680643564706535291127439554022331371407757968305099163329471718106260643121914733432426861793721048953353064615178612632721189234746039974751091204345539192829594673128054463369370237796252970365000003129492376442222786088090598638333290131516058256656814927501807062118820964587817041638234671844932352215647027770539239688620741278320048211062658357927826338604750116869128250160271865385128714889909359627795053428979576060230381223573206495146131628140680332147020035952529480751103951707519449568770353471609300999127301399457324437604810232706790356886886225519893252394132838989189795856579937969130431269487747234960189031529990915862949587147201781530323212959918755695138330924342043344965372372773237687077974212695895770772872374620527727750725051031481694056615415821868709913439899678990559108143515900351322193865678680506314765785178257572655476381620569075963724644800937201525246247555273235141484397765665213438987737733973158957383659033809869796967375961817026601868677859052644723246224615629049529324864444938963232164582555142825078483352202265893121472694729419417812418709840359782299883981665986478859211239135929860419907101308900174146472919775955774620017277641380748780690917870521184622710715213491088919867050006734496179152297882783194847879148973797821150334270860346728625365103819933229274525575160579562017097794724937096162232636602832159559453041663243043022591080854576748331905576084766329087484953698627660989719820973531051140429592997585821234047905840740403967524714984203751309698927074044461664993333974052975248433488989338592650074148084950242442592876304142926754559732313728161836220594906174289984594199425190228808317997459591637419166253592226645330204122137493523308189825561226714437348207302873790921170950866428615901868527262254643268235916013484326912942093550121982979291360735916395395089070953196403967788820489599228978080729124182777054718277191792522414313670049591140894083037041884632595543612948753141510029610014984443283390209421079886493868064456245960188171763727686388718413741571764876051355084303156179515742527278081532611085685858819719748494806040781216980250986700790017017871580286006835060973076572435323005846806284586005044557249299326446839636671851675333731242121222902414874863851229285336265388074352223888346581742050430234076863664902342303986505202021261969334866501495860353438028989928220631227485771480493387493666517635075159325615761042986274049964009959877968842409658572132502353146208254395450324844799823811107436177715488574074115786097726823527515681146828139495068642909798273113867621012772056662354804354773559974037558581307367967250913070582184029325959048652740417199371224644338126077905594374072637179018369943597720687054368932704667674332098911951583085263574132058091688961371111179299925530060257718957260163843657705030729801750889377682176940453687681371861578925399582905761325419351824017945495707377211861102982794476133002038008163390797734683545268396764504616463027036951150713541223124191143573021377755631143815358617602934144300377654082515281431101226403543939596960379989076677588214841036601664922683837857310085854573375326100255644628410031656441838379751717757865709384707817298380117512075516924875667087425341150391029483369637699225413575521921441232888624438714034917433778916730797682287590157325315140255115815017920442958930875679839427948947496626918666252388691789256144236072942891089099730095626496425495851339553539364796274101390166967282244487026089321148600821718609954604526702581732176068087514220528179904599156637525573595516831335757544126554059478148910563849847741403287801953106660848381770445597736539178471665404025161868227875571330184171280708637243883930188558283187242922654412389450962305043736934258013782588699389069575394552039701336026774247704414599062248098628312037961416532937839823991001446580126872572640928384340714182342909425215112960841245171180734632296289435453890305075809271219049596133481133663366834532972915836770990902495801574630737526256665982631709493154226270416876055465710052987978511890566131042554100000704602280158028558902258120192125162780909994469945053620496144947850297654402691899982289412855818909259812109021113801115640003359912479641916014515976511197389934223343220728203434621269690967470643380907626200615710050502047333740148166703872014412162901804957260920753769754066085425129087267015420058527189472124397082463861038771704203537887038387946077962762915262911194763018934029045129466018435329658880230407560892498415671885454622988905159286895376087885803050002552711720489258340705778452819484153289368437286028709303796491797790706760457832601753991677483557637595215761786403139595168008818757443284791523874577423582935878028415352958218408657663895764334438181775174823800026128380013083500448350049625318436224010092040034559973902766261260098274149709541380271343170702037205390481748512584826125327455553389338837830909323627159971188380100538996106380486507168511401919409195574058252258240887772855183004766944928832596899559572937913237526456517026788199279846605468139442058127332337189051703400890117874857302894678003323336382683358669832680099961346890925691553943747509089275192195037317952877639635613050307864327563641049650135745852829325965582854726448296229743678437668539254700924674307270736568672014550754670371573925738502032397665292623049350268900216056690073876434060271157356985377489209124164862691614028836915050184044947394796402483799406729376987969645266010506185941015010883638535171955462440537052622548090481525971098095175836380167668616292650156050613308196413870419769393038138841702177505106279284941262393638844010379878045731198539922526906676409942991108649927543929491925206611719298299324129568628129804836644756479613537798884494686049517505628286308742014541833018921505584321460964007679866406430478206046631523929564323228873096004672243526324787526175401163641968036831571502654057640848804632080966377398951093182916192787001797237835913105062848912550027926045965997641744806064106037959525211610906365289673523302897379091815596077430723652096065871705443417884103853368094035121305306678641940224327624200406024871845245952431838068708965688622246681020434805288477203249480563874414517294495920897382514737337390151677842864915236566555599014898798516825837629164432984914975056937593560893838493894735551346572673071665712988332284193476660915837664443680174824366335631873742951488688936747334545762568560211918942603421940483456699258356666037489308980733743783955080549661824217878611469956975585699690906852501864805411594277720659124626366053548080941367701724186557146016793520493567647987524683184015887369046046023620844528424622048523031573624329335912792427924717462258662889754842296592995184093059480445493394134410647023511391778923126827736346154908133145466798158990279381991751460777436287977916619643108011600441169596378689644568188180444021594335252209463870620965313378484776908742868995683794557320246222010713468799369016242555766229413635206050917524301475913377374947381256958133625047183646687175420987301038777900006962243636702908434604320841506745916817527494551492139512414871180256732051430376085296884371966903984841692721599907403257406378303980759156742287949708034318583897795811047856403996712711062298568642444341532030240008973662901175375620848019261442490222696968972072887745178417197654555516382366119768082153747095423914294091768510132015053526562977401425068884351525160113734316169349729005381171682558912133168112981037570290942149434152002310390341658884987797415979990528470413689611497346233211037137391409652250370880648476519185379814399770975446548072877271007437019273318577501153460050953283541667644498379148007609034479457959729715377416686625729818514452358484432313798904654988068108236584745934021841899912277778264237060050209456211906401449954719028721561853491428173139257277881834860068114836248151772801014155600659295472021936139304823535159520609389749333991129382326176768171359474050780916432225094023923905650287293818029373659285328863973979782803526545166321159282328472466090650646494567678414567676583201416778881018628640770270540679809105153035023034573229438677608992939507361735288447233651609425582087663051793881662538008800501422545413473339610241439493764714539627436275415600336609699457731183599499347315497560564790955720479435637926059209125144408135618519627355261479080902743267695016920610962967646958403445783461495920240094537050589593266112780502361519109058414519570021765495525436557966207162746299954124178010726617349106683314477687589081856963399021470810604504409042360648627720686444222047905720324392510388985574371931288473045916848288230213359907864744767816155041141925525343867238578191746560984694849447593242739248669348005747425702985670602267154707158579115647596645627317775097895809406373489330784422318791955559467903239316387934213463345467777217393105338249251645422520250278162928974490728526527423543821786786376041900635277393304613946685721012836308101134431060471933954881428080246745784125637424997920982671923945847932997657403737870036516819607394564123495648423294300464439395272114595905419674825589808026127944999284303436805306161461668003320241727859585042941503708849924893397811347215757662497728653179336981830409301200556251800172215109085903555058370247911707506384598004818837084173639523421894870589902659299270495299876835970873240838859816757345227531368177581261221948863633395874578714198167771776699730010873303652623454958660776224668670527391205272184085899845163447171314963331753970102933600190752736357960518458414790141400870427349242408739055285174610184453711598424067291252432112141360433620587197125821697449077006809307611034118271628462346087195424172830543637600719748631194737666263789775283968821379886722910992064098773871033096710872667465724363380392169686751297514144978590417864628614050380691438000115896610049684603640352695739156088039229928695158784081166264298687757994433064899239148003243331123069195286412406543333928424985726825980330589382057594357329708402526081055118075488377651799866800514593044319293248081000618091338031491325322813348212956910954882456541893875229807235136385514035504060533635977265174998147729698295345307780148267050597522656380352707146276903615298125986542580283403431328212402456241374736980601353757203547352049932072536162017276079933187015067394170724932636308247973032698729170164708926323716432569705684567276897883343560322319566892933476559761081329526343673943868413943127921320359339793178407996842476149989368309465148323001137961177548023250088739659158841090815784614262353344696381361358368773778415098748653487485810452114063244129664626739197055834855362881564405323784709405606351333878804391909790618208406771472342188314662898343944639212117700273214444274850292944446240649449716479556621607466249412439880678628254609679814408603356817103622153172959459589663802564525854293360044076940744666816226423397042767087327818833596250993966162815923771315134533155234491777764983846252903551603288189160434259332542820429200770856737670342986853072453981533235347544396920114196805016350931787394726459445703908874055031760474542832115318575015835174166222970942061423333286664606942439087353066856156507633094816729317130964013191286771813360111170340459033814890488654011717903976750948286274879567681730983685341832218591972960628082824393902698027038552808564074918896889356753396046116368107558909280245328730029486574724708736380961586028362397298400555372208193908241998640605986022704711764280661225404894323715822236554278765761702852441034252013170244698585246033694586976337036828615452237294368153088908574601669528689311225033666614199189679382158942877134198435442705206009342236030854092012781884763834425160980986788648158687386524039189792965820358904582905756248559166755566546232936427050520611447240589995727767175692645791475894700573426513060767086705585188763594119565087545159903190785175742590202109609711651840106094263220250033957717988237930225056699923851543358492672163582585382863951464492760999801579794214964824684009982833280694369044769386268671118982146832614698518385959699371770585252108843406470202156176336381317748780316858298765761514076767942470909887781620908503606814761893606352952929825072591139877613733766481773959120117223879957783423506591114041307502232160577200467556616527119736177060804101221746469174541114500709349145595569974345918322509901825608576109249282122091050033998154548930593198847866961353470025040463540568835534502367142930111818477084757793828114380965368654196887422066905621021528869236046147744017694003848686025740063766660858877852609334703637646956009748316400050374781621794130855551853136167565997647534691187622714983082846591147638102531212370279730603389754180306650581768243101744355967532015202100591402431383485953598310324436606028715711743903114911766883996353300380658152849136481545336016186851718603637035203011444434777829490979213539069465630918597212862218458056755972249685449712533020594065084412332735354967658424027579705377731902152380070904121611415898555301568089387077699697222728949355248358585901284326775387083582478843728600594478794449594565729973380632058257041969016379423348179731090787066915299728849823181420980555205380727335314577176164664409015235740167266471927874222007108648420679698980005036617098573985049100312513985882505617842491135849160832478902145047488247286742968009630924788266976689518618475213546140154421480951258778332818382644593952623177092344615485502070757363748908283844738537788649168203908648146475053310653596021480120811746749410507009749336005046367426826833170745444121718752478738243617220271874763793332769160291133861462869475551547032591718118714598510593869620750179210613195656293456698367974633005994636163550158113628984542494744339032639395993914512446849943629969277163072073883467890475156916619993544708036831545592108086569559898833536177659186364732536691262042740867217741036007199037651371667680125730844404252974618041343965939392645818550350026528088094656527123788321451104173304947436844078617381949726319920058737422347588090179558159078497264420084507045813375350221614742214103030344242624108012921640679635668504005703141068587322746047996771839101978066847894962051646438086705589406482292872163655711870127232023050457728218946384365846084961018318169317446701267647684817985229954402799634284329421572652171692635059570585539116198993028503874520032257700369579267097899744923141634630701941035252109459806928738143563067618590616297807436369333518871672761158958587787232084265472567504676172469316080813628957371983675097987595703963306009067319618685890078524492653154036743777190720950742436602790123750241304115685250964222859082386725217563512114726323525951115210740728940053675261707415390381588348694077636672884630606218905532679322857253832621654558882605054582294236996324315816185948903369878043178747002236331475439602622305847219592122994414119851741991824462701652507494700732436861706719588906415736180252960768303247379419081633759019556693749226826973659475979718787044440334018840520914792511087095360916703142242936638433241229823526111146238371913655704856925396836566189377987535933886179783986236167866461032536147534993838495250620102216029650948044014765549542122233740692220349928989874129806965599577906202949857862344042855394442068232762981387292498541072284872961377313440871322162495273338702950088350937484242234117524850949103635071272641720946130875979915209270536412359176619274528366095944712516707246960786750548234899315799012747359266515221281050392404551401749690578796073214721546674046561803161747063832169462632371901740169763445077165562112982362033282078434303162874313478398756549953801347982144089012490355381496350931332748657796058983900784916828896537348567063109329895065151532372441719492615345994307912607510232291014186275792837305996515111976144561785554301356670636173712249586631737867548970044681830647539593006601237510801265776410069378689036062091578827722280275110486694391632914727031552866073746307354069812393176660984438339801855132461835834240198905622177357036119234396810449637936709708036246547784174061341150134448004233948621957724633675848608379990704860313850516295348272737669008028018934620105823639881413544622133348770262180816150398945675427057717872973878104811611612771794957578422925292860397677823921064375288775514383448317762297793156513452953866801417033026051573220831128354410505487382825639726498591363137841726206232621283902955134968455929521310596625252062861291498637711556081236660324360191973290966897406478232898668960620336216339710469062147531326235963212072222421403797888400404658849150448408823836634220509313596283067232261066096492802408561119035146355437130107155983172620197154424632196004217311783392529741838286189072734362553707806478132380998020824330230224264135814841899765494138546335872713216497854622317557039760533412714869384136376752121037822612270079802083288290812683294547429567339200461600710441864821012364277109083408907050400716035263570784799055282478022695541126215656381153002756228641489738442559752409910755267998798247256456654059923466804924690339931337959100985101708449921444966999635832167671046715454611109019715146493793010548476427917990839098734826257330095791584168684243960150453265698742323602587932919885814210172035258290581306404819182178543151657513570992295392678685119808225272513120306362589523955099898440423636733831700784820600924900624885337511145391742429465146745510799106914391043341855562419427421017609546681508357747526324686601546181896179614896903636847251251148763389906860478512913789186962694912962434814388860136948025023200407312610507448076840874826797377798780616814691629012613596388626313896652612054636853196118032661584717834433064837551183779008318478260606772353452184998504443018490556946434499875129079182504676869196844237927721734624539181444177218234735879900430372366329666794022292347756446341874660088252618931369887731688867503888800743826528053103336217134631942702439274252996893026600366107747137930069858853179438679154700880209362569135389443156426244813791557347406921338969046975289151731848820709199640184455160385682659956567676771635229942840803280083468091146248103757911840728900411866431067788287434423914055862272167128226153379707215547651074369032435494308925895832897461505421039446083252433698353282650871976706023073325311596265701446319164870771835661422664633116282916008340401743944747184990579611629503994431518398160101318787746799291661314348100212608215948541692915389805636923784544493586407375836121972699971456702960629722614338781781005068005872315189939941871790039380530674012461517344693495335372417848033829162925399647475451216131375719747599827051984441525686718988037246274570928845838123786874966389434168926716637948731759382232787216895668521030998833616442001350106657654413852030808947950158036631456491518664050782035092011063204252967458606426978269757413932667915893397561551077481056951187449623237917652496572614179811198814454478058103124331127371742002545851945350472539280339282808979257539808897040709489448704882778536350096638288842224657723504888454322473118289722418339126219897512145223772503107324202641905433028176803051646287537448828055820997265951623288928910608755510412640367611595211138260228865861456171023191822824230947960416846553575540817314849846827702309740410954011366386128684270285923438021748720894033980138220287588519415187689831480035272323931269983895648015426817746904445857746240144050450574355131255940600839314165981484864105225687300608083545046908123621745719708557798545235080240379314464849003564781439853927296137481398130804058575687171216123070976496339867413608656096846440877745154804496912598796871220045199487448606018035197147810010091279691323374395625526554764600434480762020791261347747686125265409642296926963874190130980108322947493793776855285608663093097700372233207287443168016945575645146125642769003333433260634323352212479743974080602201357396309725811484435653075848440166579495555076739749560862785358581373683820429051355395692430412322959232148253970749949616257787400008083690823810552090572790044332722387501826429713678349792359501802290760472089223068886696914128136481378624382425572139225303988622388969227214809546478506854930097981241832294694496367489067904881878202636547994978522767950665594784069010530559209431319198418435640288368190897469233905530923076374083977823438025037439019763290187905516682435528839911509226472689788870666677262578279456473486345124789174347489452299665386893687448783711076301198962520046253932376090932206244237112898527768165924778907426607093355099232093849179769017537207708944516394386934749666761234917288338334326842636880259635537154087532727846788598401866069266501946748125823805303530122588595273172827935424133451205408023115355722738956643083920058000509780345819606698883689405875040247185429420864175426630171110743546161584031157731649637783583210922606245830041395133081755434529831226311811507560105335361160010221533579019220430458428125156471017126933118029359140443955661049379026229800999275130956165967665024123268005978906188722342379228063639805552008699437665896025664293092786593532094449209247090091129848406801404621853379355665604674990876845736237402784448337817522886731392461584632150230064092074207773409548240619756168704351028960858534231154350356759103725617550417714435326490741609446156987793874173992186100208204775850580226483071060996242720161950676067069858058270519833416700083982151868032265580715620537067117845743772168856296286267044539547622613917274541877625789742224209917826700857016671691817669216920896564852358247224507086039094379451856025863817750030558721926313926229499888172327368893233996112965690233822579499445992393402936273426268645142927908908051440323152737800324106419586422412391105034231167674679036735859352991063213791860512851027607172266312084515048657078423253983722053763872309365891187836707462306936651307168854383283589517293360965816430373549979646007498946922161330120197167675969164579937616680985744103017627934374007149755226758989614609039806453898379706533507787242223512162651264953249039774093933345598273438320317747121936836536465609422963115619573467845936614100860688161204321823984444632798291248448070149599783438066309637988957183182305337300851697084565790649449154811886894076846380962032610781241538853141772609587701161608162910065429472947105492331917445534377433847033432645924278716394387533527841365833928893848005460349487149457300665483079839675029924379495796150389158037592577772820379737290259360274058195008672320078988356703735987527839133428946845121930183609320614017123828899788189114091916081107841588835331125053386276131833410470886726354534902235576893800838354887500749195980745780629713074711787058746688718289914524396609803270775616712437369136388927728360361398461158343811200431961791771114222541142353803267457966242543476296557372851571969367257398961050670844983426996649315670012604973523293931722459727376710732152816471762343374679157394905393272167353603892928312826852160277218055492284806842581143265492151075170003294702953592211548312777318841770025037726493017465675330958335692371098154264956623778169841984581078442193675876081865676665207182098371292519374745067876084152414901506996387427547981199747923210355300229200109083210093220236939175578762605186549286629519992920423254816851637804186151597295366293793741626107499585825158928362492908562695062580737286067952621400852230292077241420553938106457943660870311410537730890149107532761078805517265257802673399353316491746060028442346776226462829477219737150629528607636804596822718790736534193912756713684600940711825682899826595176355266067833489530698870134253296021430213683936945668048007539679092385224011020375110811429296777799801668629221331237335949229640904791739913368973113214844176392418437912736502626937332647205741267339287585738499005888840865072225821990475488143378872720844176096948249253012247767157042943176275697012354825425979937387886359505614465591597164752976910341660421998714940811941053823127734493618942333819411262176711542008249206590177223856037869503459225303570234149547625563115401786520804464786062407670637873894687644045724060762822108628165407871870292232753291195945962751989661667156789550091602426035683800178772778943791344201099843246797005172824622691605394712207033742574221949717432581927585638877455547198226732368837897354207143576332683492593964556361630114213874394983520789977352455575389608984992893250581036941160211888981006554338803942683275608935431926631592143729166031964797506457403795381417274581922195369306060472687751424762157073596392626109636959159973915427485892524766106819150089877152681686075895703780281593344802827833412549743118565730370754252478163344950870804218221897347413255384537285309938293430606031009200978774513771794596217335865382895046968224081135796008948130184655511654973272831375618006029197132009691504978388577979344733684079394297102823952547948756290972445040320661764707663516259143760726023777648427261733676915880766170123902913957075261371469692114329856775375913351669102358955212803368888888130730263107247788615362371946280464157488159096637100243682655683891822242276409305367639491165904159056501729394134827727236029484018656759380472075713680264172097331863160213276007896541337804287851498680130576256668121578103304566664001532233676999813984010060214030091875926779901428584416460024640140931076028533157477174287229434197653737190015467620123053319195176692061722510794500269936685582967573293548721364495599054114680075691021858009409098810341608760571042521181043927957926794785827549971888894553554926827861236150342123822344921904135593963755373724445117901243379634974412550322676948593733095059356182500746992502014238342524341364336132801439708534587580423822788856080453974074840781113481423586084164127552670708485146476729551944437462929014418750375519120202016644306209924298718840897706872177724082195518845596486609884011181279434124088728160025046265966239861554651624706692360867260545719321561278969467962685143066450619904504162916377583139116346022103553399073863697511661104903094085533144660940783899073366968400069324194717418749626818796963626380593392657388267661683501964960336551636346917722110276618858899800059138351215127629498608650045608372602800953502153540516076420986748201311576581337680504311556747995628356729434723401734140846970873606331724135551996453074685478681309257634065347535390215193705870196567814211853483426276077811353415298368978016357662319009122748592970171628699001543243495111261871106298886761564913352250003139222491940455915717519876637302736459230480916921130060861416799838544415132480554677582834030269360620290717484949496247187084878632918013819404302479036949521026760636349466224850944020420526474340383305428092093323944990083514198970304104945289401261159963861256625631936475212203722168922454394027790986278183003748846319394046013923281683141267233454757494326303907097255893447996062623775543388988044879977008109350999230766250473180483276230576586491254822561866230895689702029252865599218471788458311286042298878722601723320227462443800070520624808787647111408610287792012173784103566614706421688782216688511123794341553848629424530329841275186324832584518618386970770116462867664502402437842228764286680450465849211984932261823299102812293478849564738142304457073879849929623506732416575888322823049570061344039077776301761193714392214123906795163531960524128079972612293145016230405371366681419606753712174765933128370466761945102581481396996787304089565734087667802657024929610820709945884566424790971645549121633340149924533776975623717895475694057927560630648561482648769670518219257876897799816591375514092146001779683814462900728544339260478579919044714598759126034867891569634701157538231422328975730426963039561441519585736806537179630632961998634523581012924868739215377490196270815510876138908597061960628142324283837564905486115909234229892485176104559084704227844973404606410011457781365143215955995309150395987773652806403377841020456359527332531528652657001439485917805521723002359703774330064942379851061491974642329263176011896572390559994990113632941902189724025800992734848372501597213902489471171287373713094718659490353282594559456212351732515259560919989042069034447131605561817300051185622929266203363717967803658007808801562302243656680824778837707925143663741945194750590281972107851053761771669799944180445227659343418245406362343927311480124288610628739374021540363592101783403203576201409138055023883143309678622307279596108965697027719367569261572827324275229798168908599619620924267391527372181570038854269107301521856226673288943927105575005366662103458159906528259547651769263517140991949778339328414920187845869124236225277516392979169760691522202035475635973418855783505769897225076000425486631497322843540158417374539654597496544317612991268446984123444270959065585928105372433233862246645473923607683587865501539415544087996344356597621246666632814368665334833643001261773151253009204981722002708076540583147296983951722939975319034047802745341503973323661389412347120335721143201064544251986254703307533081711685606531385947264205149656007975942292097455687485468818021665847597342623741909270231924422808453966094283310371459853535979371015734558610447668202071916249384313632209244375028975595636338219276679155634208521960663709045964441460673346795684009814900828439341709059480601924250386574626636763279355046710600817042666800402523261959319221998900249079849619831740911983158653476048197264069322107375215081751399680540231990561357174176569465578911153146181865743069733661512691624551031485003881232312666711962531308869971685151992998040023805905773043365303900176169652085702583573814639747351439826818148300575056964631383718446692822568715410483348128679358222753252560492605842937782595663419364088813373896274623456655598997913427541239998648116417304582355759431184991836407981665241346853826281702686565566631688804765558458611944191043315988116675887452690736268065636368871305393104358624364912536409407423844254603222026522030003615528601991955940916131681081762794767754301143485167525893985520868345295757462425511921133030016641154310973185754924333209290398633861803447219514501978180879479623753447383861802350045220394499667830898979868035609857233615198982510137657560604914570726379560235079875755268121028697488784609301489958986398464471770498512745682806593507795292328230084527225865494294100114843623769201534210196326576442899893731388919771423386646927577567513307482714372101228194598174073674585823112608481270493140252638342077961850758286756508065078848848570367758205384140878448075911792204738301872860353151796339616471055815364776109104560640385639740724587993801407123108531264268553582457205033298234843633652747419267146534302612237237239670170610427438897862638156238301196430821925481424195161968160109322665314739104064905161334385548540495163304520795489610669282792598749752896625422018288796943592829729049754427113528504472002233625204948840616644323963399630232830982948866314773628688007924534056233909028570484006384737336986701639760912778092842482032448561281220492447069381697472571383810113186189126061498800084894307996794428368555944501273295330870028933229308430365439058173127690631821599600760053600504479912997092305497550267513316929673978217278606231689317845527828047088609777858920059177850517179593469845079874724793216618054317071149238690204609735740675854409032255081417143235273863126913814900754477799163744727082811571514582651078826984232351941611011392587102219012206324162763852947350601466931627740300234972106058737931062092758035365349427024084702518917518272145586662057782268927365425112910514686407629254243701978695910427455978309232171066212215680123241604220129605360685724451988215189781827544480241071482144395515390662122527866897623261747917496683925560321450373201486077428018749511268626570574231000053925910190488704616381883117742892824056066593348287481456472255261697630852464885416222400298974570464176890954165292908030647168934401346223951454491803886839711328954197062691002584550483892940903389705738187676717744366469165297602785469112222897032111461551538777967090499826697486453249946484168220235035180611404672033959396958338568143679193828863011542431701527887137185451483994203383679583425507201834446273699490485432229004401998161070019426568226346609166337955254520569031623195930021126673114558611992922990744149087255444195931650718528303187579766736792083789962097312462645876785724019816020665910230935798011412556857124032760986363068814009888349856240657966769780753142895633926509986330855056695650522746384467024504573029809779850605813659298323210551151760872474678496983187890340320497990276920806970773550915917164777459109377550911697132776432792068846854895731365412727549237236828819490467338864678154685527767757380075586222559833523202124449294001096562817795355858055793233444622372899420717397522483821770586617823122117460892775225077830534924773175568282098255814030288891685896916266980846683136764031089532905421673049196357052757871850931635164214819601787786954668805559849541338405916736885754867660715371057152737681230649042530801053480389246963613855270624648287807797959250618450468265104724567423166657614044199855276194162389291828120943503554184254550538583144642722807400116282175246860732385864821153037273672684293214537648367172067707738308306491656699145732739447455641892959907394313640383927467383788606378006695926530417287833973055380224548781205691979841384242714971931975914475711202402430668567743775600637508583569230043197160428611067524405365655905901659215062330563960433046619420647414972703002954649143492721541730495888036024071417523059328982553847356880937462569055082218158490625377543514010739661761719424117274947986791898412159522460566446020382851388883636773851508472356469913648630550570482306556548902075677323692797021879131943834405518357998135419463620440717881305072548715649021088731697996116081614410491132975983647898755200811596418147378916176968357557465575965684684600809572373830192768875753605647724692180676439193372220819151003763240767992077410187546837029760487970809441975682153594288457372588679237937029840487692763018937255883647288325328957214306988080618907360705928576929125379619531967088358102282538333225085785635388578755225810866717100901713938372173390596480977211956733608814700043792097897563465198969705066550876919848873037792448295924141251028277539594788345657716015216598961520024544686498738962065237856041595818216223579693399567184467818374182958660770147197207450199294441115633206621205500989775058399187548074268386713046447988479085801916997403942780775864387484306434803651656408846100132014281920814593036801897969507839751958259783521283040023134550355181207369863609540216508065137173418725515596835878385893306326065474593027400188789413022898317215358077336274016622812638349657675846918827104112273683304968201371321473289145342519265037147893991673103093656050651592096900293763456001185244309577803325546249617231648665188643225329178802631344044284673492739663853318784159303333006996885488564430640706077063869853026442040769772709576320252133250993868644823553070818973189441970121449127434155452074521873194248498830325507422467225567816294329274715606277128942954807018196394911780003435856987839280004276760080714246196197834221928090429622752374249577857478622465078728733837244089155414603159698841439959029381552375666172732120767557075321046377926750013683467942487044189206447099092054752263747406313700204417426142859051601043341975374894804213335258739221734967057990693381941417431457181100108504049766102174727930036708736911754398217301237401408785993042329423430916732429883901652189500037657103504243499595897248104126096226343802198595791589797095810296032097849312301122921994569385454127989031146902556007322667859218286360568220354520596750392312090411123954194487243462548179699209065424791504814163224190641449276015855714293146290494266825663024672412281419735758099939423504337108159624387070277185382850444329840352299990079915365118043138562110819196095892454015099329093214597352671967574113275313038337396988704112986406943381613987802796010989317565029954253932129246415403164174475192936203758019177178954784987926522110724721861191802228864192775390517639223762862808638436178606701037498839960374677755689671209738159225358038209606619174440354305113825762084492420362176615797504658964791666828363271624129863987724096211051997111330058561282956402901803638896180034962782673244989309498011798224965278691942599213856213762606667766453305589754671090795855368096223719858005911372809666418477259835032837371201542979841713793219278650016944302637131341914402210438344642650183712474165852628350007404280420870701213941896079465258283624648549586409757493426642865674122233327402469220303864717911943314719031357432708990430127138970924897850767428340887270479100191298090676067154656160316624731506859309721797850500574680087149390145728850882701547663852071615336017462128769593059968175353415259533215196409031513409500143419887897093309586104760204096820694709918559050009266714354933533162017179913700362576745913121846072535250835191786762041663740634545740691547051566704187800690676496860897120578865110850141386359948664787854803283774409148213603839450243031445920757233316971651583399036738141522659320352999152561601222594275822445972243669484365916486111921976836742263170822928105007221530727830350237135677028426401455819337804719850086585065510971496287186927677304635184777492424514649774738596634033787928315019046510787507396561083026632301426487134509604199347377008787944670443501494692153698542805768589418596453527646085485532449202581891662175673375609568626836266090916411141172877497302076901882616184823155253738500603173191569171218156658999088348039273769554864967771061007126604406867118801443693158017301415452110748684552352293031751061769086216478756599115186995958861040154020296670837302169010559867940935223180364028769256730641056107268239729406076747185163502386857553680349411159661915897591638730367297046646502685418634350021439239337362564622296385914572281886322322280467209143110625994591433372044766656919060195273964069398200670477235357946638128922785724891266939879226325147258370990630513905201705645477355904559472773526562950603502509750017035506982116430487744035433043188026464191177933902618176171292305235473713116836931107850251953497479201250212525453481351931338427741124564764590141404461165009529708913790621497786700268175445778581616951972225788112808300350767813114895011330533222708159752712988446621629951669398973231130600242626301241129241250394585423509158670010892931531915018752803488466839739225962750624749658140114977172091567601418746344160158317444005896259321231203503488686104550081595059468594424867043520401781104369975204165682742250969427572440344945679093989180644136502964101777362476615186242259349207740599072050922611794978141729634409976519257564194849068839382205379707252971531634582248022116769110583629605975164781725887182908034212675196472025476953810624897789171928615639807990288395867739646355574784535531345476637874290129129987901704296336337581513366096923912735290556992604717605972372699928761248791417680424568638640989977648019637932741800348383742564771545387345708768649367437604391361482080258415158676047435547411330445424076575689651874977229542237831033921349316526397414066993041293294975751688819391596605999698860014230567189145712235426454299720308898717159672528277211425887169408697606798191390706195517937139239546203193728970438910815534276557506243590390829723540423185992044456477156244126288141769544164813812484341971334318189692096402927350126130418028445037971256918473346010830893880828880942719887769286958958015170192496690470292520659141622385562691620752019712628524477942666751765505962420566826900027968045886219332335026716872343960040623907645876128217262654672532039887725487501338712394006852835247056797912447979639245036090890528727316877333490900826901465389122267087373935495133033376854987448306643075270644169117884137228868666748007385298653142326944815041540565947895801535327011953281597137103480784100185862050471508610473132608427121643674708963372257003171848844011927082667769885212769837854346216271579550237865042352336930397287770761713133518713192287698137023274406853571324010919362995084553126788555497654902450670208358043725882795181316498872483690335307734740650945663783200013650201924807039093247065131230787280502622314851754061568586053596543227696847841712466137035330084149516551623957597000056005787885820049426565500236306484244382770380380957040825583293897450167769246192191557443917158546703853892157554033473687030890732344852893436789333625441264835281999161886515461527163867141318381995620294738368537780625573933126501105956988848840660530894940138970477974124116670257959043254508124148028931119468830570587500115738458819886316253662511417634794884901692151725765807386473590241292270353264956053332376512626737863715110935999592332873922793697014409341247772452247271457498511757257934037529706309444605263034085163718543543927653537365443977025231495441674618458008782657971250250876139912742389589127516239831883991751732180793593111671829940388859731733536435926187280973931428715488278279360345529220363865439077186377309181980568544116763579325474976267117356833545965738677246863075964574947980413774833732529241148760047376749266546908182504191094505674993043834494596846899604920054114602896037259505103023107038700197609504480830465663918169037376404357780103040170548613535032225815828860870965862476660524404755491990736311069316023914625282364572604243527040882052512518574441072759226398743221677888337362624526148114461593354673101571564065087117008847943996380198241488843274847464618100605538388557677048899853325628374423939008522812655405279520416763928496574664975063612006873188322016216896299083308942226032907019917766700598698957026170235308468811628540110071005026217974145995385193178191535199458941974379518950067180755417378824080329432721136707029326895123115605914842076083218720093026738687619379768392808351399563088766581507541127275721779327424546879064223147205061620994253815949606600580059530243490677631188463828943788603797323196986896672500472203780349850951931487806870238474756702369179000530382402926965267616935907079610269064434562081466694109699243184046585137127268781850919469999967743496128078685645390162829342782863010850711889614808113575378651344570140081453457312059361156271704931615866105029121380927344633855645308453451720618973404470660936660382017845319951832932197446234260996240644201150380626632825502430741088925351671100331188915723747340063099213102168752355885064930825969181829137715924872393211611855782776843839748078371420337517099621589087731734247694747860788755698663278528864706395469709709680244411352263595456316358563241802699293424801517124503432783027790487647409391704124177240139873998096928064233122710937343404019264580667441306127785162418202650264570363347177172088691302428503046280811189878884446983943424704070789158352398453042618985527108471939274356969806483618765031959253439381182723805974551887269654543125499787260226503396388243162675075150756430375083026587646874766873973439674289328238026985981355135514735595510950174217354837298972559512081886628638812601446244234871949311944719342247777893213238567472542584472065404470176562285315335299446175690044174299967721694716379828965410766379823145090011138931312204986435036526768590495502599891452455016727416071660960351822734669106129744006426618938213662889005117748913555608344867517589673940732469009822564132265730347207942439001645554470558847528528458107865239850335577691322576624012276730406350546056615992515126665741531900611926635228239652630708530286469594935158218805584488079739077638141626270557619567522382160653243112314006927767193731651784275279200838874473738822897710541927883269201264049804893169562539393723063897171231227684569055204171351861425164033431851445885655584064332589596129713671048626697344446731193393277162880735174197832246861306551751301025765806660957621067823607295961076257732616670777867352371957315041451860133069025435199699503609384582820545589846521575305151987796755849754532961033333360620988905724812481332214410849136592641647366896022591483724128463660877535991109448887281154510696797255329865466697414977496334589574350488786393976608611211621866217523452104895505103142585185653173395812501702734482977942015025424868406631276184858729824064372147286607397379331467900129217640503292863317860907509797866280397638182596687651805405506750307013703097500474898334036210520002783795759267317305291759321080339952781486168019217935587020449607915620165159399737963522686754999925878596125747898709999426177354692644603685029227426930708063249131886121486368353898964077972098324824750245496449371868025624260012996149482653461126300125732523871708472463360576488405565494308009938542878269862972493948080831233147453228357655258341291826852109254642470677976242086830551795672112629115305776793768991821718307928513044045794937590015914113269584410184495849542386809720843492564371110895290342540318887564831621933116169276132632845864161210284218912094811975546948693285579627642541634888814640061604223876733960303666818953855096918247496510752268803263536414121345712920046791152648183088972543308142729680511439641244198111281500871339254593980287067297373429269210648548285096985875908198037825448282745128930181552670338559368073814113769466626935934648321444352090874784265868121579213138806410897842465199358906233281935837372468995150260762103200834967964698585153238099968463192812034801741084393690540034884651577587169184301061351711154936036495621803904436540400478323631533574581524420932319704461539605799636497108530578608984459456183857568733061984531663054772840609786467233226911921819841188042688582432695900297718858886880780834162277660166793976685827358569174497672992422540113159348521221238613307593370297781833939725042343141041383343412348566551737298645030381101566893472090428884099790842604738347093000065312650861764323902100230571579206854248350363350032879890263722009859360096339814409207541501288892927860924791956724802895290985519399112554042632135722158178487274665956530935103647986440025587959402292871521389915452093883028796550527055034467244583145311444725859841546350918843896983999555572684536884496886186957540964857607831277647799555708675621874343697202307311037769084758277936646463149345738986270095396199482127619195058955158449487900781933775983850050044546874040733216154152917312672306801362434604982181334827781352247959005921959702408242524857177904186879444354067767252532411047238120315411100991041806669870978564415741724829811021552132025884521957535347479940255331267529949737332838353288368897733471828305902922316392170569942178607249504166066621563428598441835098205023282632178585417329682939907695138711385794071274092596277366901112428033959170420725751047983644526383901162778886455605253858181145127745490806361117953004584122210040881032428421207757850325388144815846907520786914223584655287360363711748520754590332893691885089954370666636184189573747033781811607245629162101755554580023720017880219653420170970054402740475750231511755773683602269141534651231669022166100887717154130117817404930228986629076317286396326560076983091475409875231329777973646087037357772453649028818919715674032999540353179210631035124098256351620609141051653140090235414441359745595026567590069310689431872855815242900253442168402869320208224651836261914281844856074598013160278712404839149535466874324789514965441322191725266770742456800728388109436024931823995796348529170809884418929072962028107709951520447213963072656985674652757198632728017892172485532599321391723583076927568771421872339088795462176230127156561179203316369725652011380571287580218405333682065468810178040796394621169790411989742125425181040857545038054931650020998287105694147930913169612366073454390779985782663601212250961392250978831688891797477404123565207487669364790934602806125032750884235690548667254461173338236800169833413150614944813704413179156811881430625772140034903276781295689964608564542771118023160066734420809581828865290361152472709611301712027070865976893261932794407615731037218858955183015743282074318267777969447617922196465407168560845093536651340219056206972410777131435554719657242445962878922794478752411513012137023037884346848702565051694376114755622242357912221809881263770339457121581761285061843373477590848833956517596513189377609533835832196318129044366685514103020402032888142272451011315520286748211439865584416620465106169460063023265420687127248988673366040053239046263546025538580649315753044304462944146058867753970876483859167731341787914105742897261657583076875464720508386346604752213727212927805781259731879544664142103099347294927572955916606947532894616506853787651939452719824330746616545434739594256130245559436029488029366124253164170527407520567869225048065936045213997935709476939722821640590074256487613762063487344344626365104945939104509650434731012777208204669258416302614816470926876737624802290548576354168752441703894650081947884113175959274705217210310744385132533574251538947107191233366877895229050800599563192384203210510471076472402858677167207083610411302421345369252658282273946708283694329064073669386866847260193072399838192740694426744003376771313576136905607858150358828659266265519867202462901743245824537112970197292071037694652046195797867421007515457061157119206799243593368846829772729735125558437374636594693355719842402003415795103844253426881079847147154251962134271433940780757908110523521545491841094927605388256734826148578796013055169761148644689109642536543782792529053951747868508242118769292934770492540155762394110456169455573225090157213926246276753082087591995076809424037024617521076277453559561752620415913327522917199405357288581682689630089926981358834503600701261815459740116504665432237983633733177036785874205433427656744173813345060177935495124336846343773941636965502938868437919973414661949014690504352716012665132687352835216543601068713228822017472749781641394146393976449324725382815907978038208663761164106358877392264948060281627160789494375642748480231426991654065822198438963212136101080482548801995794100307496442738145256628222385236339760916850994136685805940601465580632611284760049484972061554366336040056078853230775113328221948472170500146285223164084384027596870762909946035447665788027359702930192912959483470085479227805039479047166693172798812895066286240344255600384639482705394409846985354759610630007504579087961474679929691283676691661608688380067220377931941987337710883030100816969123943978568374318386466578936336687417833908868424262406735016101556492698060778219726476270675131326671019873736823259622747907704009383733057986136557862181398569371644133444556244384600942044280260996137716626499537068904994895030882776234150432854265419715484204537284921988904040645364970982061542339388644375426459894798054075660078503295911982798229669009213358147307363908128163072138821565638669511454109616748213619850310709793444416023469891008461155739912419555017006910788411312158900442336669434139144266229417613103711277636953273806838502637892827214470499215143653674920759606950796457180920894378635057797618639209751054838862063809282848790345548109751493841715041330155790131340787887622090899936254135965124498126398642835654072746095722376908920242765476432330510726339176463939045749682338530837695252792469283919623436432694092887559035338081033796158415751324564562649934919330573374407752268986767503806168992269694802253191838884914223759851709654437841675559894052072366438815730056203760427696912296450973004961963054327675268295926133093174158137257607088951126533738649282189458815247572656609037824472456048700128334183937463804586573888310129449328858914250534447365943917005823697222608233751762781406689172044049994446267972148204112296187610770183576609120103344670916066786360389361058134513966508114103658770615739137442989414802156096374469426414941891200612356931842579280086185605852280010123741536149689099616934136016557843666121379574210972202941626800861513451372357721508981142378829398103967310879440779394738933457053698948685869535153600728295464845925620137252440807701232448674722347721446621227637463453833974664898094978237682846530013318777211756466600881918565142993453051020376006375750796781432431417922421298586098238603643881321161892392937721066968458941593493873511495006249254700529108347788680986147377246988710257750979676015450167411525467156928388623064254299582328233465664345078998553250304171172236611788017245865013465030894432263922310388751091271343799188190314393746981439818093154165858837013840076639653657306186748525292341226207559970252114615076010182878745076015034424075745498069585912261618770060633106865139361042115178966653157058056360916216138072213141671125785425964248019269606208516613435576968030669242855961055732062480493232107089472804019739741240693625116740504350047670471885762767588710336882748603115791295142805732426939037454952251247691855822134817374798197346146581243586815635447229288948805752856588646514806842777686046390004293310682160476528751413130612261295072175267656599505044278832786300045394721565769677442095310472480966296429148955187428999898002953544891198304009988421904678036688114313193391590399761095000223148264711282119748691891891119426122529930130522592422258690504624577777956699719426222898358900871820881194018377299063321806573366380866834154408233624969226704094604955418795313408093698792194706913460093674646714231108452694463815910742673088756677264235262415575238180794227304797331701025822853163383669431623784621965049423305729634336518936201415539118583011456428817109057051075991919494644346557928362266431479873309958228368964284020405363387287824501800640332690331227465211263049439998758771860738319663045916102775711880653935791480816118175023058217578566348599480563569534981301392322673708388174975079062401949011020678752396551033947413705442708824109035432379628189354398007312626468162037460205942190968600324438278979998901023655248423927541295100134093237875234317391477605005728402762009580055993939272217092401837943813641026005445642922583692773102761597103641534800504823261408895468650773852022535584826316720381120284428325957906184738899981336425143280489430884328895531597408601486133728783641497640410166824026468248525433200687342672477139928052772429428714106836026825753472316212666631188236143643670485060329310002387706588785780499193181903100973022470676243823823604664394577041973547100551880031513938025523188101080350407224564951732066460126513127220499171884322273216421864094098835118375022691981015206292139844960309254789074397362410789344683417164827105232321740044535330337332896939579508784753328716569940700890551071884122270769444554516890016459845473953523682919525545825615205067911772573251367062772560860443000174612800843451791570465476980890791297009749062708253474005131531535538819888944355217625075597805942835041227758284128149850548053772277860265160196835195903336533217042387502584310008315088363838734980667250606984646892673659107887600921821454805848893827397421468881716847639135219722161298796014677729023990286862144341737230173510540229085952274229863410556068322369479150428740517712167101930475278460838624821821177534486549849853238155102194402043569496479676470926013343239936448857405946298148090961907263222277305929918223028555502056247928952857723576362446001869371218364714617297879929807349907451437007242159846576157601699258733987412757852276903181482142991689608791093780379499551443425486909606015558614563797848921040354723930511402848705569328962002878373616454306505652626955848535054409324992483350744637511359170197261358138471371206522997864670354335294792411098194754766086733125066690703287418035113462250997984382579354772640714694591611445513393626453117221325727191637169818646521996146442324451621808203059046935847530809516990678586398330959149306356402431997432682985824188413354335927984066811901074577327005915655812295465621846637910236266970811391868525416066955819575428940972166241500744001055472576599793770076969575327077852240750153011666853766154327959820781528933709816096626917154907166631734001514490767409787873538324904965094582487534703181708528018157686811578560123425983798677711054912116226980854989546574847725367157475716635359422909951650592897393063041762506026875856452135802231753867446088629729046883825780112746631979839455015996107901831298954639855745394017462471103909198485957128197609966811271126996662912518766397235821545137860909563512010931153291077087768036084695664746826407966305515862755438135024467602152854586089048202239963537723975861987978269196655191947134249677812804690782054949557218795366671544670347901068067579674676090804704820385587836573369992276272220658338505675786754853179184258576829937499172323886701061677947660489815340566072607277020622161151106081727698921069509249069688639689043744098974453791547112132493683151287116711476662958523496789199526377535469785605953629864931920000140996119387745190926500618205243050631836439220748666742007033904063177777321150123834321175917200402813513382728131438315363349794264796361568718335640333307734431394679156989834878941231033103495382372748481485517425906539857828278206348942801690051316970656153203364430492424664230663028984301736573877296029321378270610325020483465900319964962848768428476592254470652291505010180726693337943261267246506929897017648699817656450243265495857047916283869288311830593801154915031582261414088614728645962425291624865325946958472507536193497198970566027082383967404256363315378447384096214615853366090931561259310798465899623899465516602034679133806066232232113737537828138394831769849066430635338242503191826640191397964479943084385902348032699774703535522596044239378615255769885088969711980000611179592046220224126440592608581504197126284918501025393635115414550898540749997904308671217036088651361812417754082736648117471677349274429887238020064179225961315419645823636903703907907670231250489373579797134273006250450176930674206205960621698538634579895169128833510579541753121959874997703147778454417497174470621628108878235547388695071613372824019640341180875001081308079783005249252728601110265347193452812109657779802022163562277504273360024850431236497684933029682204088482011189954410756481637555004996134478875273335893981139675026528907976543867609400000692478357936526283111505899372687953706615890371744594413506113394584955916073239174533837769278963029168555529702676738253729632718601358239483860190488963045597211669432124651729329107829980998915750024164903771351331498162417310864060116281957891124205168736164078492493779156728699584002277195379709262075106497495907855540189224229395390603656770599614562622416165789766729653163150795485073919879701785242435277606701835587041372413816866823651037639634179020998135645413559754464638099705271192596675191039798891227126095823950948130319904565532403309387204326223507881221156730067953354632577656424932305593216447342262139607145216492916000646124163626760411324547891596714602517173971179318905509800557029403009160702488319738226583703909935249349932230306789047335347595485763190218657457685418591623321860812778717929071822280805188038598218029458967241587399054006353949629239456005016482854609215860683472962443006413555589454205502393125657444298005451899922488295164084005627328235325699056689183426945008861102931445699636878520147405648030425376286088158862321248982077147818547660207787308819719711111277215616991761885397105024244976633214455094003810487728265881002005245217707841034232916036904639219390569214859675068535243785164946945439474719020542292738683383438132714123732725203914765303631893030510542826324613028503600125439665791321780365711313654002543252650346404538998394277291033391328080707535731354157736992020344374598884384738232989751814319640392464758928430231668649148741552633903525517251253665321387321575001512859040075382553538716638164004526658149476981583576668056600600540237293162607729048491922147285698250296063588770899718237806953277312456226588891175793855312574858482161701667177488572081284928162073746773447474019743038331331928669122224052504816799322265259829023318399089406049329596112137388175260415656077372986179171651446992452220773438566108143786860315516291508812238080030944228370959992417764842672439434567492349240002269966302581370239118013263397643826988301317793582313048575742630621120570431409236256172098390463264047306101666748385715541887023784252753063366696665696628645219831039056422901314748519366940229899889622323090248667602832473663469806575045139054551462150079270827284342074177253317865264920878007946797650619062100258896686212572922612825369106293008446673588791573554343394139206667212305832601833997374816363420464440516450012745038585928251710291884325093397636429674593705260128692339822670541723733810232416952939384652313531024849407400421422032154852828811013239774856020440099018677943444818171928567695180644411253311650164991562498625644951361744347114620607486878539942706321876052692828944991533986205475960963874932487561891939818614582266402079457670621392596283391520694067753365143440830021489421781722212641868704099652896166788695872111643172630561178957273783889384055979431437424599040971333118993383087732105729943952433711373571157890871912292105980444072591219298055585133012913231671194474517194201934216707158651461631906246531947694039105858954451848888366518491999721302890531128631909220981242413137622613145923517498904232983502723174284289208468721799700110323215422307537414774491321557521278029269628481104576037410213209196188428896398360869964938891235667920622100636053384291844447760759726038995177762201594621010101662951866729478668743748064698518218807462934621312710460383109371524934673300531206915065567149562348747648124297117840176783766702586581821873962565241042380178663432203438057947486026441939855384271412863417170644160306403739014148141663047252001258346752328138579355357448533515982758896008996615772514283197198549363162009646579511827417625801123188054291762711801437036273222776857387650594598462170819875128542779317277926147566702206221706904776092959463465986190806891098588932051010514496923569332872570264946908613174434377261581666896016034683293144107488702680686090827332698008764012442455145265462129371886444034425026165057771708986382525103278183786669759470806848287920581761348770157426482920211601380721371222036046066819997998224299704607894318891360067787653915945655321254565961067545487127843037483102434578343609515416757636176234020205870711558045171013213474151124402932137722908263784491421457910328074910484920799390057329721881960245688846797478649854965860618596886041419157929919871553525958278472194560212750349693206481561206611235793902801493934099686327098747239860507847791788435889868970011905282235509801863844731385608253294349069648096210161959085374270609179870116774023837230262994465120636088409550841395539034954639889179998448587961313791756118674695363793878593219294209863193209613683938375018560605456154740060765242396736945659457968909103184703546501060315839595270464076610491061219928698431457105727632936133905201868427528599703567404077163164711050707788174002590411898948693501144611768185673122820155376096370948757216303228119993068719969052691675626386891773433729341611137780532126563397338604512661564490487410407554691329373589907574482677763084298785847864327326488799257969757906280539123994004442574351511812691121079316915934681654877028817503725272845013599564861182523088603380629644336387215126032167818268389928596754712575347378582445289198821153568621120716204904725487349465250278138084736403927796511201495752785989251450590819714207143306180678741402031455709501837827033502512068875634329696503697820329747880114112502862788824820706128407029523575337386854609804469042789257241986222035819772187464713260736470838667799037353336230610729291129087508509448081419869830378955500365817639416782958614306152038817620793022621753995078816335030523691860516660918079503856449123911282409400832680361221999626318934452696419893735564039095213104763197702246231026814701403729264859554216779408825307512215854218437416906191221748320742053348675804286127419460679766467102357558870126969284880428496652900511947468016508103244781879804441459853035694430613998968846163819144998612808627567891496708549257836851632336883055915654698046255763619630863036076913108550821031082644091166205564506161216039109267696077502694436167990884803838745571625463543483473173687502542912439693412227900409162502862984713965269945794143689577276253761619762902300354168979146224247062241612270724326902872280117504029474374725579252799457100621929983038509445160175097745486928512409253872570739012520201093162406335639362420266539224888452718355575252183071871558087688646870853692114665410160093830656933443894587946565162015474032606313664062171276320795207537324842148464923540670545687198635837689099655020295842429969278810801871849739157316037028017826173394668022876336702670607033515103260543260700325865537502622250184530522002482456474743410786218189323374787702380274862096856191730512534260286462180920771400786024611821980896507703938500537455287587593316703815843179022329947754286185513617972982869893493876214150276205127900960138178646064953780725347355840378319475150349969574884931901010004117855452084828594235089103570902179800061720580195713604779889275458034823277980516473914861067262207716418499165860197434624866440406462957151444011827222855034489299000328623577539492555620571260999921890885473879476458517305282382560258814401701842077811944238679476760310810472838937598880877991156994589524836046256321401970186922657764902376910110470035364420686031675374000362296723723139760970266746813779595684319508165784511679561777199882461779276929275974554955545836319939733337350804983414968329723904387793749913084984110566280012528317150177423160541407662381994877056187201360662619567398634679508336355638593195766531937901633570940847708840562770010820147382246242590605788812040824627786771891324384895826722064972221925927136825566365097174927620128549591896097734221267710931028618170412876778763811243782023647844615931123456020452627755679754688429651614323409688939185028124146905166754943066286341002662459406325582725453869161859136382467807135305353952186482184995320944240693763382293369275455211826965744332978226372244622852902323895272789672934197758741109628130572051839878777671037109038674393354123319917616965888268932590723254882117458438117803147994992610627312647111036929520577199436580575633442859218065900599505441345276250109979438603298085923538736782019559991549943944728908994673560104661845400778129647854817292911184541009789822311857845614040964121483085063069127837429577143949498533415149935202964413706205727526050902745230563438220223582465307194255126784073558848117900280129879099875131915784357854914575418558549950737893041087906831507391695806504724606703806929241653419340399456682500210992357749292855256763340692763788270693766537278094521156657916110841838972370718678261271627958650393154884239916425896779655368782155540457761438526663262915684391506172093029342810355612756888625513730028580149782060418699673237610886052321867463015995596009177727874890683852249430756710094941182347826849044599902841996257877344869167002655774667291394964830765627829753562831797941922506566453812469483677853001455544119198201325091715835803972765961555961301272574824540559702394265572953245569771065103970626597670609957410205951653458677347077239916920775933170688140366463676013483081147699822889922958884019567582528054953488419956141008828497730996930263227592383195561253701169803942964782826090856325272111541589652496386138482565821890041487317645421519089818625394929757676340179636968953569733536250875870760363772863379455308740134208338063001695632546877545667906971710050452692372597578930579464159003054823821025356637735170465864827066878808283055212085061383880447932165605622670437475507284486479208582594251715178819515424188070990685860067854413185471562207627117251115800341230051003467414662558733422200708805324154401736648273145065352268398641967375201046668389803663850599353785866487914989564927902487571573015082387638069617933237290757653998535621461171497887634285319314239771146571755716099084731569461325581338805318329131816700282102831887579353468474172646238279801698237026820727428885526029642995544606946071147352812555313502544502921696564134868754073577080949131705258105663379179884000542094217871508798111641251447145734591491112759735427255437230421307357095928807076307448384679724805125165460236783859415356710749637478060655258847527049810404154591476322251951297782637587871885080321249347539615835218615295019163904037759413887045701640456551655222229219976344542285619296677466827959430111155444341868926489363214109759630460820852377662497683516385608073344636359408872929181066817240583704620655927679037254299506706765609519088970741573709105557114802769362723326254565199360925015934959087640841715643430509438012708698816381946505587360894799160806247374665288064149643305390828154045943769690599781924163011041910731215051054690820723130659473013119739902579484707952593286021013179862354679212891884733606281716338198285717824521243388720530711538483152285237493954840073939303635833651657877950792790538466322074956816761439314353032433695650415298375826717681134373826413767626467467712056981066419930413227041004213233283418596813478415863101473290248252496152509267389535822772149683907022380345164290613858854901197288122015434322801554670977921241317827494895181629400353789483415263673101168098289797622084489685982122418343015021247678139693864739423748928734982283055230437834189829576737089496707376693396221089907355315227047724628513458439620337766784600595917355052111133062889655598202536459131353433230015506280896520389355472546146468213819581131422811223585284792983526461646626489945727999779859713600430667247120860477948691157776513701566719567289227770766525943596122682407274291158610831851525515209452853518682408158231974039362155292408940297599349283824799558758346800299992505407524991193719447397283655956949787318971046622225958016366068197823003963066535679054726286451942779829619643147219688968230246389907854097937026559920467024196129081000431408080164893650353418281319335737801435479556169885066999384953056029073790360155812522564474969850942548043327486520725805066532002737812202173185385923085287390359958095212539620388629277643863397452823469389983202365226910237184561600278999042053390268513801358590654116794568177490336476223723892232489831868370045934145615937753731299613316198399512112355159234245642023658848550480089033767125670850550235478555105950632041031709700506647511443826312368472780636606969150598147785228692215233884136905862277892993014444186953192180363861977972055756233390100618802787419253777478317602998543842312131080392255300521693765416002421381770845263331282222458657370084774953610483271251593901560208753970641645160954868317221501299039768476310877678505019754240448628618941566012105010749573629780965675636203673099399978498818145971184015003104505225604554457410724370526171724888344081201502285003237331613202996772143470013542139848087580776973398149883412009452310602581743347243661301246451737632335444907893630841564444691775164894351737361883901742569552425885100166433136918370213238766008204668972794462577534258194270355321777049695166061917333681153512906217647358792741686608320195113214236572795161236496664327611401095634782031686530136813931415413207973633656511459771945421339324753718425799684770293550973571981601260792262823202254439366383865842412983735611666350091589077234431172898981976437118889316349448681036050885733949630204482728341120440075519537508034933502760672652335463915460873344362119932103037538451137436703345488275204775095824059274178422419495216640613113024575204394428693023019744191025354381083316187154575251452530861122445238000163961874790821268827358388431540940349064696602319145484593429677919056268881827745825419097527830266086579670341274648751488416177469504419538401950879100798029680179486247389807395453303838279217231410424272335132616160661120318385522115115923938013255212818703571860934954022335206236166661501211313159041783990745485652534622089899024998426922888555608385796150452899482236654775525707238193834168559766051152076356640752743377989106104349720818631800910010563611581716679848750508261986144919728024106538184721245381587510735499109205617966943231252575686575304312962632215862156910584955047475471505605589897332946008386329162745936652269656017648696813857165747214016365704064600074034089961855787097983810647371173410341459325690932783756618012250187078162129038864935192295329582967986011410290096765102640520986194084326091974063257525841296241132065437915183529848545874634637462999003256961677224118410556911450427250700638012812423041885225297895310969164939348230015966144157425757301799248735206167123290370446669890029720836908897017461032007391247278155327903720003543269074361128503328684954888963910896484680512138223337620416999921328766974187089205530845671515001747888160581329314102857209512423106884936027863832977945891894319191608756788103183045588803561002350987806760439346070857326336234505802381720613524043413301823063315905457106906721903834507729049159240426258175603675766502069760743898368051728268203275147191227972970537063227481995283288430691774223071781098695954326037549542860655292445518963372899469014899952326580236289725331345892240647985990815480538773693866328050383179583070717834143406128984018240176070423677121254875895922481430595637957032878170398666071527480947146296782524366207048854006010893825590044403076570029819668746614213189519620351762512645637390836975845371773457061359386034658610593399884015211790352064325509974091223492024130631849461283504750104150789213075075072079063481922939556820372866146054229017646820356828051947565701738556637038139968284532318403962395597892222034594274324746849566087550409611040822461695889746690621410181283294008885505741395194639615120535468184185733406292413332643044554526960583799051503578162125047154242605394608981457409532305803675902565198526998220822836968856768555436581354488163286327269510901079610765449665276980885152796231470786515648276550497740434868018647388569490846605990608283752300365398991095005490256181432265740954784360286343270374795896473219881745675589908934019765345102097185042185324473902663136481086635887301276806533275119890789981265622077304981266025175229277509794390408566325596606792178794111316509998723034815203237944877083814576939246498519091685601572933430327131074702845716729872260781237446702241246799403684280665744430530306437024378114373802523550875869269239597564274943517129669491050824416524742713097060921089112179562479186001949889150480887728164632517168185130426522634485937446839172950882446847869685064137340602049489891682568807024038121161253470838215585644999746988966870596074212061173134863677850041243546950955885796468797470341187821699073424445118960738934496624337961456450141963063993260053753406814689286747620783844498909719366539302046497270866010098326558739592700313952182375824004486959862960224023534594742363917498160576494980596014947600526361449443924191310472759056882776150157599121184530801270940343873887667221179771468064928518472440175666649863047462317841624765952098609738419972381296567804789362290515751506467149948158289077528782966380475991187453974281368772132024064437230594512486681689945716091787318026240259144004829858044415321640564600471748266528127117495459268502790211863985778612501076351786596047667785176099670849175945676859505289431232829530107911822144374666008520850080254451167278517889879219903045130932102286004519206564166754884602927886610865054423462099973194585999414234464416194156230836543401614769261514137794561925090339935945536077564777395754849582975363188761982088939320579761403572643312047076682610565765940742362921589891543983724065983097173473270587746243805497407539694688320230801194051232881868127341680857064318138568811048564697908869328550370651781779503962354450531141807997306836642611882978118825872673773786834104522702126236019328400683085801645800663562516486936505159410155876742325712139726711655182035549529754565539726221324870241588551518263223924707962612745776690918423832761370026142859871061506059282296514855195989386350636735330158149528498002231330269081335730873201981120169327161691943581120914665475850614836606202059522169857797967823943854565954168196085687867932789111394816333339720888061030604916352788268663728937930121597955115177949290810207605024911907778264118229511716837546216062170240806697547893539003639014794496245197996318571641843437501310180827942186598235937598678554608752005813902992867921697081697474961188107363734816671030101781332667399128291920141411213808019357533855637593341665224527698876934740382067288786804142003842772600312965504539517297193235155394328587554925881523640953782762347681857882144624968686583587127055363233282284879977762119011990999787764735612658011845602535078044428415799585251708401909568334027298743954931422282418228742495294110855605214907212136766997331907084214204425782787822153663826471610859427552022844622092979575379849928023397683274789841255820359344558189753959738735345615127397712419524086292901681238227327986346399004199989190642699017168858761290325059054954748895118590894765194810092815967618671868042984714059132215637011126960865553984329588604731883285427595493892989393112527894841706810732554724460246650280853185096635686980844449718771333280597345798289833204890323923696865253846131098826074600300905808856767852575356336740861853703461317986034728369547763514238859388497393677831529565277482768073557564635286934684865021323449165082201321784714584077424697409724802630911817639397719044308140828949406481174624015215786141340220269449998822279209563363007873008018813910103933477655808929914501375779081801179058805890819933414459784640105421326566299497698727722829056259295225705230989517401734144679588381328551081130733692254228497140080538724656059239964780379709523183347705400280177788928008027561008728369613146865506349925128998047121851396074260031390509706331628981375535500432297396779206854867355449617839150184225926656761556620603882472918382780143010840349315505095410250860485782496906733318759927020890991985479053411094526665224869323201027937271309788330041880983998160150275548591516843990742426745841788844662326382923375845221549934130485902640234985231961128630332068373458896406705429550728220835717370907418520209210577184587830489961572926319627891601281158181958820397183550664710481544851233373495723402655082222178215647992748748055960755644328490131638802612432742076735870663463306851060454920448783720917263330348688937452984753860227496600282167145266109803158822700884129606656146601816406974461945229260937899756913159712508824990051510036288348570522319453159898057606000246554903177725439126667705516118926356073000691802750174074300410189744469619780964658313565030628786605456672455238048261833119906776800123834405954057212715895121619861788837472218277806473624047007737192214346541687909197697724427931815049052770217134340710607768545437285484786171504179315470105612994242570530732875067284956909496317073429281983234312237766369720550797097335138789176925583447653004691472946740983896740409104775902860540453595402394634037963925370317990583502728044029724883066611609434764539798600413169937545199229975135507306004772448022812646848986920615787580970721815746147430025639187983740041016547537183481091204554209847199890368127255949703134570845158310376811786966277346907018695110838209127165481141519167656945302297209757663518629858109038710830833042646247466975802972359435873023191737378724047563349490620571486251573806602264939333032013328766088130765363574287361638530345877590042521824018108066042961801701669325932226662087063257924197885524419203735787899161264380569441727545837145378890847712412312504955102697369109142838019289682637008380434820504016401644572299443405189027664579468707350802354521789485557208411856248698956854617354958278231019127930681301658099885470020471652078268252181715353003739764041978325318613140946120652938032019749527113606198820649117463030289880821793949165722395394931082298868729302819452051743357440290111707028855844801529842816651192508145129326260413578934304237467305824234445010984103224373924070616730236998853297236245894920482520585879100532700243485826651621310089805431681239558304045751955998002527403153579410560064611905409732887280891302833483132205533229608848618790576054923172597043859946541120323176452357898117932071701606277621674276067461898505059322974806229019782173282121320839624632657651735663303937847978650159940695116678912036079833528934991558701114676145098772278207276903039299097993171018322226128745650824392637064646553133791928953035618675153532726455669846250885184318531947780493351466445846775749799380763620129990711063414418571710295986380806841829239334287521543139186053459080466352122478806414246839095033651193032543206667659280237979913123670643691601055496126878965341008222571633782293994336984009922625426072457847865536911617517740626712617322457139762933704016798171637734554423146694507770375775305962503275857853662691467446205786643817702192699429336420584737611461432461913449351820791667550895499847455447171148662096821621758490524423575720669506255168540661459727734212337834215562299982314511766585171464328790025365979618922335062179100740383668966189307225736756209787827302130448786866736218853827128471476461496049102236436621295244402484128576671288351199830200776142769856111834278554953136257429677693776455683929017098476096597898552035179951118783460328749442150609960127166403968502747811051983000555308752213370485548647498222114382013825502849742345035610942728581348238935199709094929337373620664085257116391340705960669121123369263057644841366451455377415327829828880297303499473743630584007906919827774403226905351326749181083143011367844306559916225582143705503632112840506335065601121360559340614108719497238534436074425328540851306731212258927313327593628513915180199497772511843973728016167723960197701340124994335753552228349905686772061952834979386963570898093770897580158561517251597748407786853008846079894102859121348477944786664237751941792880800395152380774044245729887670194190500735695475544902561007677927809283694643755563480545116890087207891991086499534511678418412660409596845407693320002085546916693894223619189788461317209841936111479019546470138650372423023995314074069143222418269745970770271970005201815310627389314890806313052838159350351088255915869419816157011919787140474417813028313087208166551407697542851774355474685076334066554466065791791828404736412227052683019214616116979921036367295470195847157574623150545977792249894406867615852150393153598761495163084646185077402964466837319185420181123431112019161228079170262063278661335246052900854328984836485374922346118758031289659745810968785100601052393733520567366559413977714551122310313486004456240847536381156158423978864567240077658487798814710586567832093120221083836539317087998517708459655672759596387825876327245736961727617979089979370394905812770421698986433137642249167667450995709394122386226349286483474027234119432115464805206384865043427405185925165633410490339893891763495471226995361497084713588113117075365115418297576047178259766638197397789761555123692449968967329845215860553450796183901008311460331029739306884516408052823538486891996117404162237281286682404113445911143965822943141414545308669460948001331919324252256780166093268794541788225300873331302765296250366163110302637671063786054140198632581094724385531773961860367525969497578967593026727805248194575422783288024435697039672463578472281428242958945094866269549313573950057159717237196342877633820172365696879309355212471819423305763500308239367393002426888257238813855999282676340636132194918161246351902129828790912398441918245830451958752176383989304313754523981554637214042839680642161780730693408658082645162631952963452484039004277021671556919387890185819293565569156833201449363271708703673727315404616007229040454465452018635382524747398170423393902843302910373352147757655499420244006189228364326923408790486668737412329732280179191060627189556279844014050547000586838387661645483536405604822717857591920234658944480617088585828848270824370276146923372558350707693640145391871902563840327774004787289717145418052382741415598765012546424834628179971329043542605009999568062474138098376815249647045079711436487619042275174050124945463608352241317324972901627634617416910767441045402432991819491001620448720494557347730767557449261707526083252787849183677708213832090345964716608702632068614554945111438304394693467015528553112658107573938333304665868405836298747883640597581824797941443431811361567024750832614330025128169734728038036958858750984841730543712729101964497482145328438075300569350122225582224912230058658030041917519473259565751330021489106323181395340166914948477040368279782824333751060733847884529841990699958485827196044579090678879245933133641661130122801666620353320580361983478947224409305429174822553502233717041393507609373957923928454573259052490935807449373298876025928729554769707357347366011052837715735453757054489914218519689317809735692902987041151657624415214019564762628278844967513280968091308669396173271729738971772506947540464426126462787046275841950459958733636372877942517009445274295022451476019829908835666892550279317767336549950254138191340956266889988836357469867402431278994253829525776736022308478495378760368404183187981537670691845914280410572287958090558162473335490586122975059478128013314571001804773755888644694390186546919246415323327885770779504672758258856594879315697539104200052703455594389931578680477529384601510228213866203997180455280790976102366014615877100316198663360603137615800876286638692532441484680629495373826149678709320742452713122171341144651198030182832827101747118178091388445461154040119029993132388463953140368823747159142714122722413392567119117600095095380755749330928282889389892308202771892188812156786988492363620131290428314100994051744707333656005585479208205426081417348506059259707082239090704756232570120625343147188388677332894590475546471940382423595027533079122325470019343745980658098311037909660648373445255368671648764000788735879215062229649022258782284745680180827032324787142613654686527499276084413576427277620310732155301872326398540410344166720188101864917935795124418207014659215628489408498631739435621535176094095137065030003254111798202301859090955379473417570566446292647272948442497273318313630782023102787926082034645301648138805897220113947235794446082095283435296477538666491190754693055386958181408794585181750454372087120348894322977251468337100903324601129232531666704489648570439017220511294074656241835988161525936533457577760341851411711425031641382657941007699783202231812309028282837939531656778240621148687938992478512401421735388410706433911264842292762157418200299345528396430417222361334622133587890301040716736214084447087286220061176746109015356641249687920361044891919028020812918046268021258162713497202779004765865727042035135089692495794597271469815293323493869727485160445028182648988584513032220178561667814357834807340002674482038712575777285419980029808762716684561082234851429656403938026948639843221704422905394927487784329050558903764181632555913931817213648335031829387205816758532077719884916034053318342135895684275323048653598310709152099416512133665599350489911909763866386377915944353172719742547577562272729497138200060938117587344935155353705685090295886870515078962395667577609850511820253273614174147296136197889321533399383065219510704509315118283272000883874462704058618679439885747483750051347998919994551641556123713934682744357175157839511329961135310243958539191018007568206160260754641182711115636745801309060167056007994963016448702703521652820366567156566841540695067202053702753221638244315287782975370762729884508153609795963323556778518658984214332620919638697360888458407680986515628565050370470769787524442101231001233323295875314111383384979949395814683919679141651875673529300508014384487814154477768711803121455050604786757082934894362606794057005421980826378475024147463169342640461369009055686817534702303428395867582298372071047168425019557020445599626593246552010490509947091660002035381631327536679979255876768236711519304012126452572605576657529702733552440490940324903271175035753207938511161414558221281488463078189737462041157462569787745585348583476159004612031591670635391565122520636142675719046629721731520449255611606461451908995103526692479039284182528437433071630086353576197401296539808401172059187269224291813159456775045340501927014212324738169473116621575875905824406689654543494178671747658294650910507157037276602058013178100403826326920888875378606505049122712354019909002470392306092966753084257278444970271502124315495298716424273581396408717982595447014724750005888378650262990158109825902076586719503530212738596896593155474414651848875591532919627622011368243824998407917712517196980097273112218449058823620733474151859293816012767049859854180963036281957677118001167608873389508285926161491471655959404864959942314815747774024445953689991050468643588952680260319558914408731123538914179110505269419103954424663018236856193351136978874145344607391722412280949661457532576717611475559335525385858618823659982963241208567086226719791830464998667781716020779852552365153534461458627268291183584671064675312161529674695601387581833373483995073864001054558066139011707221035604745984729554607526983854748741238746009225844181749979311881323674311444243044389787896265273863747380184321468028642015350083638275712443523144322396366112457124544987884345610373194365606927661933423150692130081947246912252813395837702015171264343617147157434343517778605897311636098739383631593776049841580991313587343494613719924265815226853340190501943633115413400259053020204651326469588591624254328095873289272921791994418012396250027300411682489598879465239333340744159346459203567604546284773980695206369102870500468399790824150982546655704737496268283287837399171551865725631042123608244371321236559978056283777860211694773149398607720967901616760524446569425416971430548753208264928685336681266129077357742983938791055419642482872222092533181076901431242668556959931931853351624697959350236906185600247619389268075558804490420936887998589682930504080281796398330195168229408746295926936782110166322495622392341827606681591397151550110975014745310309000754038224651833252937309684366236267777453468273131183367909936949271185898350589545125177491995864552956053239830819942148394967923251365499145606277175190246168272111594247996652723818114686907465712608352802671549271375418262465007847444372584249282521265150235084950346115209381600366730171175077145688113533979154119953521113705916624869144088259581985969559210711836736853270074288240831824358960904337044247718936937016017289693998223470633974025907120791878539296640268430705458289541863704478854281941440700820757249133000803662719378607249725834131297845317927181431105835516423754217522357749426438068708943346526088261507128712394890212395579752096218498608649040059059878383792721822566377357266816921349285405565609868796191679529840855017254355767893115807359490995756614695568244300757321297729542949597194538881915084780233075804374105715611745421078578776615952396161792453968154991692628158599178133706376086396522271925064290686221344751763702529629135079068926003052718517202120340414863343417259188418808061010879739306366041588241180540919031226332023086590063921829536926654862949526260733853226541036003353690161367225772639174856588426598647320743101691485571236259924587649565146671075404009849293392704435191419328826976049419426329298146658205253605727615254735203749839907468814079222124450958447126558897497680366987688939766403669121773476896683987485597313488232191273173385623923653651561477338445244526745580375084159922149551586110132669582698900906207049683949502418005624366841807812080835129793853483626949525950785006722965204965339438858068329244191394176704538131504251017326225372421766130211879696419041628969346402046313406657052345453490327587100556745044742277966757194487228286399052881240733898818756013468036134982733447409138503280061153165170928703722377479628697216361569820189560183616724161930716407341561047318530214206883570196975926007742358315645745962520899484926182372104395170642864792797286943265351769138708906624107038747747871625773585493414041072353487186889852549004481695763838077724211492349713725631332184219320603939970252317270403486410905559963002554971335497213417043388988158620617896746354025514023793549277180827327840366238091408366491330669002444578166040401615601883449880479580217507335407641086796567500511041617961727102522781182234133721010964571985835079778627564529042274805305915595288754397986941354220564452900087049788595788365297206778426002400549087421824682548302024957465645627312934409556608307473547653884846714143538386873483276621856712674257407034678025806998860179006421017263394807550662304178803260851711040312011683340967447591035794464027503300826365375684047208181771152948227434000257769390158621941273336918717656819717129500360480048801939510663243592540896674008237047985300212421419413534965416632129697067583014190438024791937279674300838697907480274781760321369514157922404808688481583600889654832111950453200507019611223068980515545736071174255469748730836063720415535084522900400790891294352232614760851142162466287165385596838294259307126752576424921431132082309636963836616549779650418306262816936067960521830816814859974044490966960565098762116252430821248963392363258210679680387633794714012022346673376736692312192918348715573850316045725860626963884408056412576277085744736349060660793788557620620910867654416152530632746141529753574655408263313455586073402950970167747987200927478392756971103076318207301660810827961286595945480677480035388509152297598134703943578187875942734639001990473940505031541051252565023650065926220895498073217538397842806444542950660224844965340927779515056293252103373578906359654243411131366166038566928381197578456013151050722159328608681342992722454629769506236584829182062024612077447037899657166205515522623959547787604243095347434921604264753931433887728035621111783863586664821889614106110348346070155822098043436712695847481244299497370886658257663524307069086751384808849403720942516888144848951062138120347934518804914589984609588281558887870579037056722990181304521083029593058840796484976545583474666212739700228380402210946245819775460192653612134876774157851868664651291101504233909039459959051035962535092091629648604147703557216304483856441270010020600981268147846470564835169049034013931307884361547476278451567295493032982802490403778496148051563273017250977269633119616059276525351009877154049330415823183246052707564356171452646831301744838004602179508482616162884744344490482974507181207729234844155266037990219271568310170071143657300167980071038319198203885432056343034279287406561621055668547906918797953921577367314774360702691017462029453024436863629629232458498963002197512154385398027450255275179263970392090028598300045380022597722038248811978674150820895475180784503128986457283389590923129244508648345943775968491063449656184909087599389224681231068512560672596189855950023438871778044751390660486221880311316054679139829785734384516023229286952345442664118278439319771117574991612990029676225820383489943354021297724323106122516594618175671159800663175492058571432119538309874393044836996527258867253385383908241314553862436035001684759883302325090152586302606810103299229930188898487679887627186330456413500022335297117500690584257397545890605647885588797423153286689072853278065305763917301405355219129673795053367766221493945838206362913605871788793921622352854508513182270027193750002311268545235253000381900952663475830225317923637187815069906192427324877240262322173531034950182013051168353709760512211293441504214911883838517182637300304416204270094387213460707396904168570613080011596634658733982765046248006522308116832272789731469065252853316967652038932198205219028510392882028797627239309149906799482061443569555918032468718940531180274123992363308445024305250624219394401610862545715841267750338771706655133134156397331218577321157886158243987026454313687671243461034417933978673916790601086074172593434149330786493155499429990126540635113846267777150069681854907286430716036389817814849094754951832476935265241703667465574304390540955483550404336595968836418082134410819512891208349218083593967358327264708311190176069873958962913400662434821934133705621597628137252515131953709827022244360717225567923894346765039072948882221325223977013522453446445075861481504669553779415425976566691435253849823700765422072267595439313607698039838649542209130163847571832730904545420304950942256313524440858571601692586873050876826118960467025313483548277860273928981692215305223794158012202320976421340446451536815107755403819770578661539126175712854431768137208510824430596029510775230549912168839869308108970995111755632837703616452943635893600092771104024366232443219540925406012838974823080090086432134286937453400232444158629915367759947183090060774255277850135646937300755956885868094897964971672617025105458883237817605063181929291538810222902089478139023409713031180061329183802907424228856213331736187579222950952830334903161338138644068478794391295885239605238392255843535502832801527938338533834228475450836120583344004872322656502302180888533017660472085801074175018828368484794440775174815002600711077011563320028360796849797090404716850653490040912162820370267797835509631061197725243072934185144710023574096545041105304814234051256576841581626841263603050791209242505400010075173528748087078545040812689884692269090826495317640542970465629812767400445862272553131578365498045933722728565519580776632547954645566458046396070842654736560754962024356829463915830080657883700236483175372307653523313848225543532620297004577062592707005662983886585989428278834462357290073910220384388159436223377466664630151304502832031115070727323602563862252432033027333662864160676574065312108899125384544343085746044037871613473086842387467897116203471030456714266609372981906895211086848025581193687802759104464289224828152534335922603830579628119464472801177755817814677421862911701622499527275091801061083434620588931706640831554543639252845730789458156820254032892208445485906208425411353277821819117747684741047316854342975502771830099247371140541833140083786687335929933638453326401014442848061821557091875666530812089720046956447356892003215116765144493987759325826494836775253467482845174924978991924623948378242939715136499084596787578664891778186812320544854858799622723497901809303077961720966997571151811787742904350226423227371141216748121212476189128176845812455521589702443541167179480860283676633748119525629379932093311636271232532418551710106228177033361754609086740754004433030777037477218308917506608115194673402204657625377641721951001975386863204494812190609555576130183616311567205742051195063495102430945184011009419476802659552973014385991967485689414012124066174492763902213150216303061828421476059235189858779469251072391971129888766521250279274316253272660339491512605552331847250887433371200627132917702269542430693877405779340383668148073602512184328328110059572840486267982933670933833006972668420026368876270668587727336274687539692292261804997748355461410512315315968263303905286831125474684567840020668940045644392520511670157271985934791184701123621082018844798855160322900952117566264673743401462681902290275653209558597887409267017533199403717304914416665389466335433234410591097027845744760719916976234789146255476970819584028870092760044230088997924274962537490504013347671085427253577787626877311177833077514070986262812976088624536351121925365365776172694272846709727792748139127861221129251705597559637539148430440700406488460192689709548082500036183090733687702436202455177926796566650050390966359241161239269958433935812784859534359470026696022381668322297527160480102039633936336321273211834093802542268568133327055168793794816097560119029171257056550508848234553059308335416307669640080502236298314658922579088797547117157676365226820000431086863171837045270103859912364733395783628397188542689140180380518914779503355783638977934998192067994945668990563227844118090440109023866049757998948397750018727415413734726225902421642234537638788776552901516179178927752639342539732614662684653476409292009145887298639611650103871992326193065768072482124283494860259219119875600166171702770973387546708213450640060183897695858236049521053289104978113519865359985412192182673092912109176977957312012806159277568875926061499065647478665326546697376985138266402130269132752953162238835506647465099409948450636926297586566394030056188409825385183613336499906452998350386258762013597799177835215636548631345022060417344220013176408578132282820961599371036201892635473197293166107234339088923012335936627031431027675567821674139514172533498563200457601348176018598557244776067305381947877548024037622423656714169561189422369761862199983274829040339519268736258024672286861698647750268676448656327465519995147982841497354497629594061692199452836507440300671563271745213235535962702659249603701138694906851680374454124795963313492394395022124356690953841119914974160119221845701208996523292045835325846468457985664418270984702269488829356506810556832176509198175784564646253383678078399760654031962365601240792422339911853083253962270846401485856435111678283301886652413144946859996254311720498686210667828875343095038543746475468404565473999081290369828253622118473641024976497247997844810950532588581397807867154952829977468724033421070310450720587326345910971573652541689315944506686280775113272828917570384646953566414475466178520915344150146504279626136024275859504922614654083396940585538139346997481291727070449846077023043313327885345882093667396186698711826273680929779246292433528530719495714743956412869815387104944279367086711433477146377758610672304534569237407087866154414096320087326647544678442689330388611979814605726688636976509232968170272352765373181927315058647256286637178123627374997635107581083898955484874483330015112229363299245237203279534226273773952029607062775806473622874189482601748761267623928270480253943045094292118795148058556601125016486200471780396519836197058478624481452602672881658247511946539095831131593381260065943623498396677502927577996408357807218295032642840486252327961698107239376935728947972033815338040915969985699369160937881899279017369965448504377508508977085682836942016474479573153200365906644319196853736074300954676799830458385975236899051574572006646588076575580783359942510687103436018557478857350410824032868825351379002169696972520573555180378363262732419621344125301837311274228066697251902238214345042407034737742982071722468316050701921532497943767997196273667470882493306202026061449572001074781132888378171374289126730380759470691687803362197914535914859859778356681672733015776940513377150520227147664829322091393126708550246446409962620143854702553068637861768956775370937778239711121237367536278819768649761898610655080081568708746728204468563245454834370598684716901804551791638209742382367460405053695105883007408819440945513302797925190249951850740279755300981991859516921362645732433129751843679825660165939820429168821869122080680297786458989812097003567252695160452716184424736558810490993507273627511406951934328428662464680330081757023760856097892289812909229297404120400667685079095847772400813572102524429472563031179645149923747860386236956874607695761921358137200846165016075472352858097076814204196812990804890318402580800326727404766038871264615871809758958913338284303671637999074304703352101057671726889148902981056037535698985198901094038944049100070458777455428643709165780049136096225588656408733670024839452914320863613881247948539711227738770984056572698572640957939293764222281895821166185445855517935034543287564746410188452554952153015923216000938878393917599926425768213941155372626725506838121650999824680311574317355327769255743914850921697638508980245197083304649699074338283138152465959679120206114788785009469566984156372202627367190061933287552484200392213509575748922045402660899994337253922326214953873339123497217881676583424225814744462900393286822895222447056840886123512816004062344102049669466365833989454868066042052464017614861065171154739409923200246112405291830108135463607032315182516528018556663470902339420474395016359364193420168084582071436659188849471042178562640314537439761306402780689093455608979896060638248988941601918949154304703824781206606724082696046250707049329776766485273933191766219548319988474532090926887699168582229741286422164403910442976977514614999242983200545667029454446626209924386379780525837139274631357508509371992288963430060815297424014175047872169536922154572060890000246862586672377420159263460382657834406102562407440887571042983363245368513555239508138868752305413641135972366551556060204658979973730298120994941014743203007058306793469391128717939122649733160990062261497107762112835436385981833780573930918107949538521493937334760866515588399611402010644731472759506717725933881723079408774071317999811379964717704321874499171743870613205835623916945258229679302251991461189502827702758359730505622130959230633771727018590867630797686834465713560521258587649702587522239703603884957008865817386163902590558350600793601878386894039096177527563630922509209834584211870147750388100004882974003757680555947392472380135613533164721351780130167856128636443319455299269645121262108764341776884790420139284534075455817021593682789890749286417146988859165292374651527524781830625308585630771304953426215171808269831906182562037991025629834983936618084562249793958732917417556121337258064029139409237102347797315141932485180529266118011756795343249326005230331736193593148304789304376394983626715289586135290899671907774072120953662800165034486893781094438428205506447106088944496414505084136372714201618429979107490411006578266096574239921717979964570956891642301111331579133030719565289998971061904477094348892873423601978165854772304939061194901370063010303754618038502392053334157677564317946381085287383959239550898350416290524973166113923988304915570763572879795802179151109188587384368974631210896923581294281650593079428838050451197744407068996937266255854826607977731046391086018516375135585881080988137756475570272432447935920975659762094683523917803429394389121882601583328315937803857279642274630512271797768949996529171865527875901078860140977342628660374632414313714446018944654124485954776120146929791075828405607656123952917995621479482019065414830824418422588762073038599034399305912355128958369448479131641998580174251131513762087518679551396161715941298103178457206001550805624659767870967296001325487989417227037260470451178374530434245220884050856318010758951891366251834019208592906512570913250054542584367498656222930223518302828924460788680935192256848785344704522594242962523842216304449210639334362018918095268517188171106116607092033341916090824292776754733121849599771924157196656013476785061961433862092142723707928847149739901439746646520290366638881273483476124993423821155231615106728837775571229653111834105563881238766377894121137855279046032922483339012598480205082729061303044661048994774366023534561692843197568149351419614006435586000258164048434653892017149572405820487657797171495235787828013253404365265371530250551480869761676921041913587493412485710835799955504356917463102998903069333810034574914975682250271676937413681066040332035610012985788068991556374154025470671440806032919920569095202841966892879684903905508033715648517595941539283094258767691959246303960975591521753122317187663235914821736629030353772082290461769437181007929219563386598468829315436338283948780282684925825816027000424652274543774276866766028869465954227407294090041806256338338520614969436017735337989543975016849483375075926820864710504998439026413934365997892633253482982299483058058638375400252568897272389104995429583149403068923892292796887805908294794213588580672335069790291969731939753974785904325340101240717581475667723832317829863968559100664200651197022263489120110051078678224315380357501690319786964073642123119273674513880147445333605710383649500516203108095456308027664319776928650656325391758361722484546546721525685007133560129759117269844536226080754141810562363579576258486817186836339790441204747874951852445050717460889711148992962212098509622367352468301724285183615347538954530333752047303602912500091627571279529324822858491897922351739689444703623119706257822337584855161810436677083714725487685701839681233516004403116508718704888269307641472163752775507168130720114432507004406571081941895358407933814633485741601504011672909799551682651347061787191221168966315630666541384734000749115347267901126568929232957189105997463351642074912170960077918568880914568510908959404598672475315382862562067875815597554375648805733765096310183130332857615786415370638668277276312874650211060947388607011978633983256416347132487551649545455177877020395960561683700823057553873624919286664330148885599197676264365681891486498851892651961045624030637267987552977423352785723029818560898247772069894944805403116664615945981397125289061240337056898914548492915827636378963671755749970162498620863849057780864277166834361300676625827491026811743422643267750190792310592673381433622107544193551438953674677919943696380220798331021935183559446623029079240146897043413242879226294165674959858846705804395195978709327840694384890009975707903390894544051236118384817175803488679904311123627451588521085313227558458281827629456428216454644631405118180236675955901941669636392083697641428706739135957265981545658023734111443235734245774020934276918412363136097081142485704163244014180228953208764188170398234770668179533353286653851464656826469521581291906993247724792653548045773097798452797720349113559121037205097179723838838310980963605902589024827070694754026192686957560166191842887840463406922116843590966402816750584096740692451995262219958448972224709928158427822749535408481910126041638459960644757315095580099521385674565194721817083946874666655251835976002584424475415132018687905885431804108082314493199136443487910088336231141850717391656838993717693499425743648870449524215091490692247773540177300924193955377415775557835828070282709979814535805365349598748936761239690006282943486879654848795583426547151328529431110933395878624790470762317608092037216587171499225784961316033915800099472367493006663921928699547248575955305468393557041658535232640372095489239269725027224380717621474084295404203319659628904549891103643449361546978740523779530563685333913064290551232863685474712237132932595881537662798347513606254830569033659397408235339835068076776368936941345235981911256895653167795606808594518066712676867483968859906757756524367761784544886557346794948673226690477905045825486449514394996640758425065652960779406506605615723195466507617356825647311260771856472448133436004245332177477225594195012729818120725406654342217472138305571414528759536807512071938841638153950456753995653652057832185010110451002970344873161662472017277687428439469507994106404519709053096708714137446886119190852713392269645912498850807999194051781210644517657921747444102873652424455985297276139241735702547396708412361238223861436856391933258245754014273650610489850469406257320554743390267746245801405971764984878066836025175688790372765899501032007027045812318284113551044338900362901983035077654518817964884243321387285049738029658003478371944446669529312011302271354417013818007834572219001199043395560373387232417830896975586772234351012785048753544748913836398361874344321523373226051323462504421288546964642563144739915916093720430882446387436982401779202326798092848122115769244422370443798683934908066302543777034731412291590762046581387572167653416549226641862904971032072517539328806544291670910490156526009978899846050551929536330099106728942028534223409249077945902333151432601975759956890247534830573466297987707939276316514822845474478295805501121315627631124861856614930380626213806139252659756665925649898786448753066451403594897325529648387704148284519902168730575120115313012069581490033703020660086508991119337784566843833231766162858119817537709983812708547883667756026650411339405134645376208628252116662091582187861545462157921004354587772286100686308387580403864377113376553537717357672077189865333864253751896687391188306288981536712095695758661706732015242157236717589807660342194140807667890177322874990882670335601527024022515708595578538591780467257860045337004116889542043803565121485858832897600896896753536238300824649427652793102907255697352144003497298245275581041479414197123004817028751755844817035057381110859653106061711560398970518951366243094134146243224159702368825185128706601456179509878917425271214972818529865133597192619470240633719077160669668252528650734844108937623314633349634834457142505436417400339038356305980587936441108186126592071874461029799553567777171189228619652591995126528643149265027712179548931836989207428529562096982778482725574383393740198552435434896097696966388690253522406117303191659514942220967707852660267057644222752193761889789391621003907445283773283060001206256095469475592652199462709273494671880601126651111930907781188109944774331770136073826905111737253601138461332148572800085013616869276307963757876571720632452194899409844507678562458980181785440536525285034063545164287586912398948368915569725622266926164452618988259424034414531240596022223886723150108137817210721455136102270085557924304088204151737404190319946774216916344535870907357137806978219043948965700932688930130464266077861389988227301765941273011357847744447326664845564968442268003489344728171356410548806324845031644736812827882224551173267004179072267343730614956957586809609226627813441370865522741918214692104020455181248257217038907926025230136018620694672912348984579058159792712952517289769466619091759075519654259598062214219506721545219588602214016614144269262554351346879855347362567383334091468613533502622842428779113291094360503069529766471460730474066885244756876339617838825877117864879462060057887212469881998724966560971702245721405226336743768051966847416664878973321350361082383997483626405165455275638002712183691463522164460597074569689912099669521826927831105397485915626228181528918437714157524187895191509605643163606027114517179916974374167947541134130043397342005542643945514373723700337716839905182456025780124991470073335162687731396574224006223171012597381006378521045205015457395050002230159266856846934506963671613839657935258034876728196614236025075299689903291536716600792027432332768538502266962620754273629898029279746958712807686876068917064600478040994386845997789642797960548472351407786567931351488168292085747731645963347893820356223650932652192299978462400481985661958312319372944430038962306441522031572908323740953005065250257499808722575415393709711028737233768130397947486495285897565422164343292465621780676439191760895112375156705494523706438397107039568006024540686047662912821848899720643273491042188936540049604352684321442012365402258382283546261861748090776507796930377893755715396695309423471304517935150419414372823711699683002872133108771491369994588004387510053123989776365873715552627682374929762166845151304655964700519374085286748197516657215293809098273608507738741642761292878175676571781385457438161635542608308766031750601073799110591416119894584165386833088959862240349332740286665210509435012456402902933932744847289252541212069201081554730158764110935209387931168081024440927608838808194971378989076322592537288077428895126479141192356116088514383038220892379850029479312869047701653984913442117785577945268443699086280810574486415826671611390711224396637235814827062419563304169537792795332367544632352531502758235072721298790688429924311754203133482817475815510978355666857527482346325122149877119734591589053801100610742207040562367304543579234766540774933466846708212462689740415043247806159419392075512657859299286782550725479557468141752808367999449270025358321828334640036223174485076275141547376754377947081294261772533012814372247475898891756340168280508384427102900663437470898774184294341969529859488775220324797565039066157909542543845862187100665688889535932840653381758518078917712097646332865346732781771180264436583238911556193026148061257523138445245322448051000117979876370821631458358385880188781747331359052365800485965483071873317202635915609033283212260507974257632843080574449219982423910879337489891830766219850606949840031806623517523950970013279047868399798768884624771785949166532656115449615316416563851927516495104537644493705663601003590625521778142624494837423562371105101696572916008990375925767121659390625979917570320214037257564449173225177812765633616362407615447511945387700016846416994293109369882312955663422429017138988910167784008935908914029676179515820833665452890826929968336281064282160646218124280160607712784425456326676073377197910914733125670361381159078551395349223350485139257031022218821254358838279375981332127418528234554939040072024570961056740793041001859697974169759340765194889926355677686536316285464402904146284422710974938293973614209747042107373870250079918654046928794202137937637503930908884635301191367489951043838775475097160132002722833297944721229540753516225273846617074238995841473292965168637757876192654962894192617858608045643165412057770513178918696624891653266175745049312360774692149922537825528790113740077495728533300400196922591439590932719168919395945237230833238180396325132091818359064745262418197753555998128204821013462382565464278560123991956516775242576528977167612479165571719595950938967554590761636603904061516882637026162419863060673195949329999104754046409996917304629005623008677566908195795922039577475453478726463599429826248949670327579043553352821746432756523217019206716605366584669036745010634922512449250303022375913747094671615000034450072556314264107761840746275675895844679781508766910334187458781498003150516921676239929201771916421703607847918334089974622390350978996115122487414955352585016749947969694046921198735415562486787180635555003088315415176184523595058655305444553293587444275913945946200597628971325406531577938141347005473977733162839793221838994798793778910384960133866520394823135126138503703125730711317284579636598324885347550123323927982946055977468647913872981913349352333597237758214861540748165567177634743750171540657681988358901759127827770691422095351564870284733104508332073478669896176283380937819048274232116282832065455431757500407608879274209788533035338446207067860917860400896806478089281087014643462151826606103112599964127082241935286795579661817410169556058817367889991090807131491074069508146839705005381658569767851696589523100826399741182832649924517036683252235090159643632953685547775349989563195402744481270094585620121309171514735995397867392027862255878054675233269146843811873701142586082159703685311639500341347533522058537069207153225299179940234411794623607018531975354705835012949338577050632743421048563251815301456108251992865053354714303587228476902139009729806944539148805781717650546194089615340047185237192302385903710165821883356774047173378312417085784558234391493117036661245876059129940934444508903355394866254382485124171926171742125365815316732311902406729283642893101025035831989540919385574327079005046321425493990393830485839926612666341291795862667646138246449140267986472287115650600330873003345558748022547441303564871345425402081879045666073487643926974504370605026597899332979106896429893296212195513264800222620549659131094024804663657447275766563483856775531523175429614936640973115922197788468798613183479933170474977417691750304549692140163994674582516140250075070817842617029111557429653431474683894321653677875078156446013726500014069415846890715957527904694888066430746390658283758371183431753772045582109237500365814303679145130797055557686773290972525313122732546599036587871834048807173990213337904275585054529677580806621965096869187929281079494377811295949725525471912143131401149117795628522250686488568567581060729846232507495427278739747549777772287502703465991961683359895931064064984848613990672245380046761386337738544706699043089573576591342441282972964855598431569413147879988958878151018342689689557014026249330988878867300237746567536872986761177532564230882174979659006964382619976057870517638678172602756976179064485280925402518562269471030231702483460496350690698066370279997040499845749225956589444997006115805064330691109947017212116655001362745139103391810922664630695353512238930643620814568862414283814312832520405235309887982950970031447918522788570420611559256777908866556311331372326756880082015853312799866958970719825844342727617041098753950759424143126611617825410050461506245735769848575806554775628501932651138248686471890892331542095882362424876328974931599118993238875384393446613998405128404747746576085571176731298492260328462966588641401325251292832380207553927980248176521874451263810983809849803218283349502883240910103093896823904134616571059330112271623543499769066736471440551656082359554001845251722345093631187269056985040509175923792567231916003558072591613154648323464200749742169146272138841255071801208726891616830908220826867155870521540342207257433117660702048215265512012255018533135510715150352495200287263742285405120493748363887224895469062959651257225907789767216779332617288574403866082214800244790858385537054207193817508898710994868731050861252690843701292518247937068375480955992382906683467560418089050816733745559391440993302856001682456768684264030121195623551788702330085342035623601642723217478380394027453304409761364671338605768335650177776615833617388594551668321225094073505233943155379483784104014972526270823878380488149196818744567782202493266825525290329326031529980140294039482093199259277269431200658960612863759337672384490023450553070694686662311145312429679347482035001852166064645469416287115270492579201009692764640988899761253237059917028506017241964991705705043008228170964552567008015864372640059763546252935163617489988373767899339117050785161695568370070552351154085133925603784801061311268979566839206254123597460166665812911693536100134217816039868121173589547607198322904599768720330898017971414226080200783765305931086397818760254881478231897998130564737993717606761347855290266741409431897066564190571367399801667387920234284246546863080394269473105055143218381401506279047357050703889297673728357602179704588268114825351131576590168023546617647978730841271612411929271940947329428605896515036200807611786367145966614365863706877208289657392631381076367446482664887061090143807136978661728189642402682457160701642535457544124698509999513923588483785786085063107914987963134895565883247687468703688795846455086075016202757598660275328142211177348627095182423231187986126947920635539280465259164414373439532110974163385542851388791374465258008742101458327982249130328551533427624602419775463076995174831661075052773318332531828576750057326588190124358113377969645471709573829873373867306707374481397332931285345256691231102333716625067403054093596501279098275940035477245047958372129737615650080347633246825774072642990465777106438474027242722625333267351163465743758364012947748093019511212440138907353322940217222959666863898182214703129824396918785943574018090609282206492733724424144765389760964636646423388141422219150591366177324571895810360604982598536788830606618476712557297144007472350258781399480826025137460743878730046024540094286814179534605635574504413652726884665972940607910486148180854443499139870779286830118013330661363471094910994493321620524717478478105563934081253308996307931274835431831592162536779420514033027437547777460767908728768499359629012496474998056808560604174646991958544428216306856209486679010006143057285729059635267372752992954974634720056151480112045773204301308822536437360716204857856735568981521272192976107024146947481828957319403880029670667799980491180007782752881369011754339961959863059130480951256001312056714439066572906653646629991537562445510520481880749888130482446102405194967807911293458158863427084216363016406247683013837913991087159411772236711366468757672756953286564979132620898721995213345566684713692976460706782440599226644048194916345653439541169377102349760399102466454290769138636723996279514532062614687713819800737553764786391241233491373765051142164101384837824928011597877547662513563381420307975040446885399526837021725132223187254542932824164782592581864467291975975500638378013018118816263257184251644184805659275006241069498718776044905392971311622035684217670790530560779277615589219723409259271601939801952416984972184061408177502175455717784931677096592509312133699843471020777526809920039522776755117832013668108552633403342621781535024665729481224648240753295507561063520132695163941370731840844348854241849561249900495036708889878248049169103847648238190043826242146384479780341477842136270608398074667204227400979934787716442375744585311477602986709513560830687137282080133106685864849018411062191428410660250655086614399152363166112690117099419232625200692142635363107783656690138763947771534242068073266263921266081375188762505338108508750946291946587806249754378279422063608213153648103692339218569441228407453567508993415222039661304813429556767557178587094842978399175153893182396288410061628435710608895303971952312624016070205356190236640853418537952911943697286500718004659119922653939031946590399906203286821861700325505593045911144043653340866059133511368925233546499315165426806296304511082437959541782062978081629705351195069619301137741367418446304655871820500680437658210439405552666758245770334925926773813326567791770774966971327667840438114479553861220798953508710837417338849375641475258135583087146310729756759181347286198571660536278813562680888709226958503739577448305315563749351712424982339446079583997721888657793765001689771450097217936756685619354846351505990544718982426458334489577204052931266467695915295994394954536287078851661647197278292377341598293922091690523740449313533739473154512272958912053619742754895065607007622777520680492054238005783789807091113859560927230424565745368713892298703423185678073105762843409258707377677453226406990909884921006548914689611469110908968309787790437584108417530242863748337804275267136167585273020324175933362545758796037360710271373822401369216823686743214726457662243945198489263372371241155591903942377885483799045374874423939489114316738656739237501983842673712302018568601428206346926533093423103640833663609421312244522630903489732918755484031754685725989152906706704569889612653232699896326095550630164233785382948930717451797927034347465250667054251205991614301330560527484466047001939433018204409906627007472834943151506675392635885952208834786893474250072952831244203620219734633878177441139255539062451822390776578862054463072727754179823246487252370556935566572097949037110643411529918402022419426724436953011253740417351007507333560108502181601937603959968431324717438684248116059518589024328522574879766638602258094209763446922258638297497040514174082046193897503947196186338667469316352232202063321572202006203778003397438928651176324321334525499795616187045229904038404001426819246154727547755258883307473607668982927368363443760579855240574395790379117868077249231537964446221163086721615849550487667802993015209310571632011769215985794545371961368879606529375869796444854013237684982272277397166474465000410457950670925515185960584862680652646535669704520082852860333683528248807485968824174106025123095527788546712143685069000104179112516105830384618960879242662441391603971185448207008760874113727813946727144320134254736266756153434277066281640507147529810782540058619891171951865762635443646805845517779638615899842069738157822348909314548197155050443011988131023883969659898445698321619284679020700211580904749455881334610534720334643185857475241014561604203585419661009477241718276969967594978906881073362127033634900204552412293237678749740407452294549273717596363694307546826594941175474507830411378249819483781539618138593278550812772947632423771619329375400081922774208301857493331126435483794647600678156489530945330144596498350900614284913328753675560461440265711168080495556038889389405513673123793171604744241172276761821596479926727581252189733461971982824625394431527067638640983741673939213744325306475809915362140168555395917801232861547593721036179505492008455796486872833961479251028503975870433445488042321476426598602423759131544868650891030685685815390457210410388995886406290911403895588515368387980314411922537907653654635291988807100460617589822784671016964823847571217138203228977212615939523513784176410928133722676826145708404382752162912695977556897801046246945528796950718633800370517361328044781838545757867785248575385123007597672340143850142984705566468650199401343181457414067139891366503288011310531636549985179663641376458618846269547455308198820882184386794265636849004645014649227256881756205336612708648043154704149777626991930995242536677005959236565024954173138766239718495045757982320104768883850246689508947365334594468842238897810272561659572781123605170162906029055990952211701656249942970236460866018802279630215808812812883023764263000194203926893786650829859898256120621389188899840978332569321283248936899967328743897192999666275478402309323779406416457124693441565323022408058962346799769194349902788237000386761187416575653183010985215727523107919965744127155954569305335074213290817393442662898935591841239544421081247839119399083397271581218143018467502256968303172731210193526484556226902632576766129581671929660610194008497885212030819286872748906080499691436239746983329898487383538996233473079334042215569329715380933757964646743153357285711395792482053511792149444504364226045880343549599146679446555269792439924020083135808044425619680479585596536515098936884043312710141941590156797781197576648647905775818613845386916467258042496455893596480214995287600654089339316452641084979574702457457087130719353821268036948647281770700415861809367893721345271235008574817160305645682269208018251152081688225373653486904070539821038332356260445805002650578395885983050257159046186603886588137314157934220255693255508462822596267975977860596967150905499685190090801903189124847328530996381694860515400291991818835315944235738485598611250072851633502462386460878537235657000015243261277404683583431534134366463907506413234099776372892888075903404859209397197685241271658557448683734225897598425573038384234413199376569486895489829874591374926845618229293640990971621405932813579072248908252181265920777659742188426248268247053856246795685736961006715144274557843710364061832911077912645899508718777954105360724215224566798906883309398688415084759547607141992979049015563254175548712507133257619121560308365230817997138500992258983696565035862456948701552672270480281620043770226920269675458567099272397251148310278848457278782521867006554411965961427243693141713486268039137482633181011182698759028681860857400876123202105315827333572012710698645133909908145234681394931888704743027569535379766299017190991186735874214484873637079424069577072037635301697530299097859780193896903456328286520453940302628770431670590921079924421774686481277538216687700486564341418502678884078642126015536778054260121684491289741742826349261267998420762125671331155105687292804244638467949179487893890543734340148392374837162271775302672640816728041307529256371446807131571489991463637918804110166373400865777698584981405310653998126748244761564577961759797077855642564353673896568353255361077046000190742492234054755133874121722025410972157792059445573561552435628651061141496461140745382619274631198274462274214702796247711248045671324449234059458627761102159021264158171937745599342714387184839657884974767708643399648513778674362999592404612236387713678166461405835081606979435845732315581028962323630171211166225339604727871087793466427769664888572691118215812620086099966573572603802747949261111012024587165896307269281570816493044290521112083751343929815374447007263791013326598412723923328679279391033167806670888837380982238065845199383522873153368481169687999935565953960945665837099712149802704226926552075074488814824922727156444384807538448833061734373036965347235294279571731351379999849305439133558554386848133866326737096061301621082934484664428281804294847516902599994879349538465075328380524794642750694766063945413497069985526124568870405332043793817453246039655298228154723641637410397795652234497506972188432167436034672407666951380078164205042037422746627021160593691930849565056864011583602137145619984003879644009059505801783354154606297984802633896345390992496878872185401280201225231937870606090642207000878341028401389006447202591805600935519837530240190764805953746649582880963238651722810713178226376403073575982913776084716875060681043286497429883360078109951500176733397355647655683880679166735193144428103077220669543255215816813470374247943976867425315405561567623837678100665587689733712590146221671059028905369567369241869152739517196872829968367939324149887002901392345934939691331161008670655116466147997350061342655584431144708342597977650812421519970690896540255123424699889043082678520711565340292091380255385528620005627790227540672302109459108002590346294568626494644155072825061780330195361006495080428784108737827563461120661211528806079536188967068688447885286453952910635461748686322425618791596704428213042823828875809704109950107743418117605156071264130863353020219451120939127489994491776524190633265745873589929247843561546209229423580360507821330985468410084323780742403526706050190111416870583609383832520356486305553654899539980336665434078994016920349688167974616879898233654961707803852668394712404604183400742723661420642947491709678970320227280254825444785217969542225608904844554130726459073962893586579102051501169073122970053638528826901914363097044403664370268618221806991098330044392158481268861107254979058041848262340337121806471183477070312975381492901839841982144674258391271227285174587171489498666127239615388109098513200488172018523974685778707193955570748484308373226564602659602747713720416247625817487937092220634076820284288433188939682486622524169481809145711013154073057661482922397460102411702056084787948783646083087101493166040938361538454219795032997450205155869444698889933050673439985597490338097427025244553251571589795990141917861140544314360319415452380282270481182656091050999422173272803301172974678423377334825036526750198895920385610457745121385932423106658362346787761210392659682368579852189030604202185047378016110929460224557815198749970792860512171889026896766093988220217241611589609891931545149586224392182897281098081223615625459733325504685808717883738091354104720839513561477810504850637238654813900987547031741276585096915261497351674436736593978047261012214634940782899723616579077242624693700160561142957615638445137237280481233707778231964459141526955910139524107482613065357342990479950270342201766939765603894485031842774700486670542797703788662173624186603086768581435811176015530558149116785061551983472928680254939421166684668541995537013495976119903772128662778545617064062523110381160730510849651691698209738202877533662633579465022366193956808725698180885722995999187040377324319101314370292064240401520881578745098779915496275437263235602809153075129114487014016647042017528159336819028995908690942997184711760520814428248830720865198494572675872422815617731751595726079352518794586093119877269525552155787962026553830733264722430990958827032567427543224731796438122239284252112883952230880574549908003857449563787197141338846760728887550614484540415679199777567131760713164033611059642091292699104868228259395628937154202767781910246975060416901172492236289777374840898170082363640460181817575899600955945737036812662278188048286394361299102001507850686704163131237615765577832520669529269736064504857154228629585985852858334443922462368014595676433729634037792223086283932852468692575100943871375817309408491961015336340468371690210508615373159632436984357592723568144746109861971655590559708912870086754946591338112732599510608019545040940067611913512152684975955242119154964518612663413154241627086030368513895532098950805698017380172905858345544151183599964780770218791614999444585126465333207893081078023036896224629609639967878377326253000214186081185424843723621805589953555535594863391187385417568566238809978528259624729456079771203000855707873163795617120927368353009096697832673297750465910261117419126722028091132518815211223216480568107349144984697645326758284284941459067418793092862358134795189954696503770983928990402423644902983691466942877821948739708381087758655985091855529857507102374264001610555464832784052738637172365927685121001037307548431560677564515715277631979267521352323968713800524280567582922974714234388747975312165232500265464825512304428457541817404307909795613779418038150991865681869859900368127240373005429927925269352570147968994119696814748384095469556812042520741965790230474038204039243016239961243344387667799617039286323891487255446395371819294342927971756140197151147878507383017460059563889695374796702532813033206003171153210428254478528978830672327569959992499601394942990919125901588790301993511336128098025233141938321609286683631542710575872968766808780524921817112970801408112623987207517378255138607118945352419059626747887460067101503070749600793509989957396507444714556590708410189761680291670270593356056727071761425336443582470453028464378421173022309255491820233833889930859571432197671075941107946396180563057077125622889941003111754832986782194059077532177827365470424225667537008591236404386749132560929744674313878762595025093355055901584295777574044416773848128397115147704716465171179226590022462371539097742047816870148481188899532438336701241719960042785776891556665422866277998150308695096790893070662877369149842372225877286274235138391001524694042989287105882890100751400569938318381092662341193864650357170464412824237563679214894693441005642079316287148624121135087572988346349366423379676061265223631886555226265052892749606142238285781681240550156062330106073714434476430509964142468047312050182982326731341680562336819130817049002490428281822869148688424248786688619281276553060817032155181978820942773174560696191818019926630895999603097106747427079998562290425642985000238613875535294106137685890483204222876719722440012777081099003664496290045580249435391691565179869683836298865852543547049247266883146706926054285063028073085155729165966851405655984472233192480641721912563010122384161015775054716004800707809236441056181977052512706178739896819508209069543650004269141744554792729590505523423283200575193042670393105497010252681503525832997018584668098072310544983442804740697233830503429714897260155712327175066979990764815911026078266011917019748343932421808021903864222685720631429734217312897762374576666232519330375257545363294633413520292197434387479339372686300178242869338816734795467200922589604164146680998282659193448161982967951099344478444561538387542009882569642377981030933073091077017246586030555630616571868659085010614370810307014162050078171696838634103856272249829980722362683624341331242887966478580603590842000365384990457022050405500966749560541172964910786611071168770276723297312330596460617895345424696638687572688312833497201777366929529943795709467446556934366822499205959579021170102933902230201245698526148305473234250714936859444887039111180032770482105021203506904666666206384725868681029471825521325125446035583844910148642410450878953963537205947626957666935236406665323839138075204524002752653826721069757651591297899056740396416444048076619921482895044083709979280271560394813600929510934767482982413785819957610673787122809214084931800444162581008391700852113882120749251623713198176382432317442836185615916193907945939475162486073634847166909428365952594498276629810519506896066969259409528291257760690016855706285280437993313684996311196910131221234356382073228216345116158362234255530560520847409640783019257184551718521653507512591300351796026762782656413839573668980323064562585085687608305513690325623121953794498615189265169911191039954457121152069385951394277268056444971975747702939938923852537809916459301338872557419791375221922804851047640393821592989309446100430253190537799461405778491849438234009030787152259444753585393538622598834410161381146804579235724368752994138487442047178327491707447400292791661283172239297484848932433904063951793011613079890081914165693505012926610978796496217175133221695655097102543118027096038449851284193925565661619596076127249268607228736744759838161294014117408898959030764998929415884718778203882179126036510542100400780221953897101352491959842828295762268920270768200681059762014972476444392389706361377616506204224699123526993598134006723273997199864186094955347039858971035669272830168032198963463353445666533498188465490116690024621963041683491807045642093336669965796753117970943785307678735124091762159075809277769813815328679951726775871379168391720125538681560485096003132397226805669642401116161092789824914147112440153177561286779350514713673433429442942614669110176021026052891144855190334662765779122986601265962323450936301509522412840299625206894820715417942479537141889313009748863625737877926315402610530647971879546115225837051950803683538335602825225233972400859824524809141808688261599557594821479984625690288201521127589801902465012988508744549117744815611039139793612788141750455626542222911671037137718491984007050021673362523361623951290003433940492188501496345407565587881538554246890219575649568963173804676574825635223514727008017174639133572989090988904312139313813688421722768894439484729075811337176312985786365324659623415181593987709450439848067770728956335194622847497148847754535387613364944719634795164279206186322433431154827453239654700044430605560065797300248225767330734503060501750510753078616124189081206729876582837862380005347204194383150068191236048370804570998629505009459285636456386746671476885634766986193462060927232043949445557059119156205778834842951309696269081101372038971954102126399684861863236789742121077262805080689461965686387117829187677164454641389494422702549560206185569502012605938375845996200403519484468053496729663857173265322307584084168121770553342921078243428463251915399742904007279547270617642503187631814242741412616429056618406241426270227209384519165637007284487368645978266486581480438282826342494227843932002219649017844904948677298978341914337257409662033031695853786216431746343475951887875261224298295860754061576965750407340803282095173697223328630180886147999270257417868080786870821647089217120052142999920239271848289783928949923143354442785494982629159894207428189235235788970077536123884766577303820386994467504487041518773936128008743479483955968771654197912742882617845379148311439225627980083233845408293403866570489010901834453873685715065769676083254091078717207828503261000661227230321168957658192853842358153857178529306346539924138332215060595341973614739075644104648079692221179894574046597366336065587077232307010895540847155558128487969536609231262144675219119627192998317137116909647062035225999063091348426598340813880014248843269779922195858462042582633882957356835672939114370003213506175630965660797964713070644300231332992747997444688053063898394178370887412966034851502756677421534767493609985120552390914681619106737084639649802289806854697488057275774510809054079537343380713155887697310355829835172180538541815983452860539359043669255855724238956579022772069856871593529746507431043695877110655247452017067064911594006357650224751453312172287665817186867934584438461284359663836714275032286211569657227533010465838672632144772032189845039871473159445200791664818806127366851905101502038173706247197883718876867648217927418722595200480059591738157934015407418805215863954369596521099570455658612882125846423183492286011081808590768221441500645644451810223190901030627952797403068037222662818609142600767564036370279074809819487192192995811439957253296325594476301331621904552846943692894323935367256402512462034846428546017243866774695571891680003866814610305699402019726696607191706861078794145409843616335543902619579987825143565121728270343810692127959015696892762221200723125228933694550439030439648669856581265690143057516923663024520577158424333165293114939796493149146245956874057596952133291729617752488791147755967137984608160968615107196372252496565904932204318067568040991939282187650270062957001195627612378101778460557603945643402406091085623793207342956037977119812999823298238187592738717781827231819316843046275950982053894712705795195162945044014531843191946875918290220360238099188764152922551044915850575648607076536812030181100342945023237234031531930724110973815598783523041240845765141648342545202591990483813983644505057696662152801496422151710659773737965275060395890736690365944385490259250431869414196982634391917886999225200530557986289181520033275496090165420032563658008581966725131625431204120570013856633247828841568416253302579863428097683813537838725063975457796876436890810483985072468549567995955789277735042591382497139146401482045553847119385454986182665101149957682995499381044008748801371376942190233696972710400210089880458532543507546066893493593376675476672902836311393121134075751885998850118926400309205995050497945083233940271513071006284211051263432290900601678404002409893596274354782478802089474768641363596586892416757259862245137087886524145156248421087257862642567099186394354356997622556278613903107373020924752499248437241218825644410863300783729752237155954149075072205922239381635392954761103585295569784123989460582744900355313115203208361571423053811834084557497606430387003532308800346527576482146476854406093183534029538981971019019723844313787115816515244759132410033640607895790263978423530394409234876298841916891431028737929047503794721526201909351616770083924065414677559860358053453130562219664245457008917369389996312441209509594946168840630715500647024108289437481746659576917009780497397231504972048141237575675858675308306511778905254888379639102499879341181908544117527847781859054473407681148147380916278279055432196937891583409950631489779774811909537310670735304818602222293011864454640110330668261926894313321534595302016833559960614161319577693578506792327572410998842044505361384766510024563938163516735983955830941593318018228667659503224975652670469882841891008021968438114277569438026351730502642340076621519249024686616988781431966834487168990948556036678605122393064749138750305503441602517768479118799946195856684489183360539630553068758442364825602505651741641308095567547580721104711507269082934970641365937017237739146370558536530156530679969336801751948985250147953085114432912204229890905297305046904450863708980733676870874627802497873964076463841363892823309260101342194646611389801564840471658434663126401804825942811766086001036823665888281725029663825446906753687252373279494254744192184207590097749348121680566923267516292325940717440932522881880760243761990156317814837468357650271195909567320641994478783809081809821494267017109296296383831389524678272864419619145395822386127077551715242735893916666672827570783925968825014519141985077999046896524433554356093730686207015263653953321003289087075501940819728690575101966813512681485163233965050416089710621817176317853326161633160444570682496044805833403068612579807468636252881236230217237526180442792370948955169643464100431530651245126479794550518081074451418857947925357130394951950521299340217218602314192322029691083053628168616403528439800959415043611815658361244867652834516977372533622428641511902209175032708349835023449224700794450569984436779456487132416042200391101262749164363477297274527882287267106057534913053817699145836118690454673125421567139137595700695201469021865774141242269203374575988829135687978407869373407671780219304359961018911512586920988638072077405158510570255251431201393133397804429000491496332995238558413683778938940485696722005528031766804439757013934997191537673067766792253938195389255185925255301382922669368750693582968244123258131577261465057468321547982527780846123689154329455015361535878921818336855524381211743935152368528201606157820167277306225208016967163272640784124339003791646554800117159269174545443031111653220168963362847160397121753644381761044964694103611134101972514919725974088320073621837731850309960677996348492755099512724085318129405525303301685184268209106187689067250030376417118824106332975494753241481889005006664407185482072108936905550605758688862641059784277087634542082179842427312630878373374449440063210709719041625578070746150259500879583196936253681685391677558212810222556860351916421733676369628510847996589544116407764012500186897838412876950640229304089165369488323943754572237922177517665791321313768930373205151209459695841259388628649035039369213038658936848936829514006571211571488555551643784155720273744538771834632303652408530846613527921970919866229153505018034024345219020211228473830465868096638591347182534034059545539133972452679732805954621765718532252448374051381733888392036652600788525929687498896799281272167096593907424354430759022368429875403428027112151765499114284511111652452978626253196705883625752784703307341229340383133945563122309563557491560242073894860733182102778895964689976454728977348649042892906396001234031237790246919271056691008920461285623665525485808173756053227924054665740748439022565865552118202581699565864261394743977261862685226616114256679575682947385160773179722396085670685718778039778106974354705123980873589225198880290909984782834976419767882126131036251829962990957057548447686545180362566758325154015180241574841635638036939801489514616968670559311484707268118691595716938937641882027605069597747275312973773688488876392922672103781041056996181548882511441773602528338594257743972496207356447066497595999767445063674992904484003825771076200560690231909519433448654705248580557990656889372561151296750659852198780576180528214983275188274448394427666619781857228898134489950729353140194889861332712926636224739551245445455151920207848700277745450621929161896582698952601555317059545450070583962933536846855692895925135186939341650006369695429163843648021107084239412215796161133849846762156786782552421890391834823284135373137494058513284998607011113807747863664386908546353409083919844551373425448424145699602780889168505144247001847008805811159669579315176424213940704888384862464763360335144609993915553706515039670647318824986847959558611869300965122008138158081941251699820811134284031851100886709872063087405233398930767269698205100890598388299936223075022131441106240300362555998040087933983443048158090395666028842467765403329998090036981943866226947834695129433000329596359273143204328531667569661200057554649764797135252248354575901121437414936492657486931332946884159248382711701107481799541653477462732740072494592166760231617402903608389873682945319266685723703270270306534271608545788047916378184821713944447814861261283123510240817278367847277609626439187312399992083560009868558373834504646876868849030763891031794158253154211775589598934831915568007566426073110453568317091468203765352273306114276567159607137056659179139747319104822250057525071711225376978148679498810977510041535318487697700912122255677681667261233352654096272659662025562879047728719642610139220808286480416997813514129362434811238588095428113727221838301403858776034600396471699405160979924599856411982850989174139688621809850352965728899341611905522964497949891662716024448359370288142470830705370537618447748539697488695065119758134570024014951238131320240516587755291608076746303365170992132210231872641490952112057108712322426179191490213563254376241611485448712970929770945555207206345235545311362190652333745228864866086068109943377945490446245932676788407753269978247476596934425023233331696741430483362275402968922400815363049891852168279006498936867870137554891942222582330626031275220739487373329616718966837535733714399853551120454064779302933074615248948425251143128760878512736619425407307474780054017500573044398556515828918034166918374274294273612356550681267905373842057685699795872818060615467042510355411165535625025084051595548704717174585874820627345069489074929713548633968893624054746610983646968550688606694048525342551397083301145171661780785410220247343037020183347070211195532771702013455098683577959838659486199139212257501267184662403295188674853115005812167365697785003519175562914389361033155923497517707851431064750119311518705177286252694406499434141342495960349127783307262747810235653918434931771272398812584927618495933748316321086435642124775407276871844566731665618494985180124315096025453051995729256912831871081630094498471356884292680804893501711251900523506309870229751979612437293531489085240976134975801726017010107670886582758540059622413895800582480405072632858774769746481522115757373941296184816847090265602796630257760194909345741378093246720331022062343200557296202750230435050992596113746446465128563761814074680380880656072370193881774164669459752177154380964263637401835683320960079465837011252143476958102214168672590376755844036307988315942513463837824303562748075728362221696544061672405033779298456245214732308787869450994579772325068893596651598923900674416203795141251541584492194539202031665783136429138865327106774094532236640709621237270595622465758850043146593740045066397420115227312362873750104431797304696839123613443781378791039615444576906255576059593189979685886748603943438443879549520680688401105897929515489322656530076005313803468394557795361554815301339367723419501861662497839501313952872733626076852848247632130456946190908624044132579391432968925470428721439985383095822968978435945093063795373731168779715089680016282688873139883765727108236334861907166689784457564631155098364017784385965716818750872985133224411185585806556455112589711000001332704278271324211857991820132827885775847113975289001799707792147793032496718812311585685458438534935825534041753127630384033818729389709921692593692141147990079122879848320716854735366794166781955580466805911930353619193734553599710209959744619091922653100454786375200076397643760561488350391567647551501345318610800158729821744118929323827031184014317991305274724481501770875353526194751422699788126343732270481711125954739171091962512028184263583314149389110224444657163258439430485140012199618634075348627430962782342086279804859047181072767618494759124537515750658312061729361814059486207046499629097149192575452440299181704222994155780505410986088009097936621789688423908587010613483950920849583704906999861147300224192606921202846798996868696327528444597083221146553262273804940574895716268919955501664337936482202917073670617205129826534129252333252592469593810229119836362185258037675136046732202641213016585410703152831918041590491593984956395276807932993281944921629272064221666698049194016086774942385400169094891389636822166113053191322850485212780862882042822483090706618676117613994374249998895947264180977590819066419029006701710696192122969126277690999024317182083970604381248343490329054816150076009488152150270067953209727990649247352906426289293456298842608165398674681770981955631714349827166986009604927811830657776461142010896499403068406711027302217488220670082942267086121877134308330185925765472800777679172549177567689190121398761661468141411659443488033097429894138937183610930226099693735454682773753950061401176654603194169904110438146147945849880488237503198335463824551816501579539709852028354893475297642798084851948394931252004484564350758470654028052076926915689458287100259872727127429102409310385486325201481940203604246283539792127707421638308430276621448895481240573635357033162816503330135178454297722430313220221795907784204464071035368369337239103319312463300267118108130985361234978328415072701561071828622914631945009113049882303243947968459834887273528244998853773077859401878851093422960557265381833894701255806704273709637852767204458141004897841392224661002533045668479929154387444780505395101170303306432498785025458736441962071452732437788773935844771056631219412350542073635134625792541375651892900595662550099093820444731379266438805659432781492588678455627332621193846507939858530288345754883673591450627188105934794031118191011023918902777270226406871793227641135586944873599319189409409312659893268703670158965714319513063059802507343729636341798518807247357567574136887207876474368803066854038674871494656159081065930185377990015327471249718701373505416287223275336956330565337404599429175899747780456845255592342435563138705864578572682156490400911847068593383813158360444954587461964873822761239727260907160508988705616762843302058100740903435079783017093916418929177765082903888493564440327801122319355795929103722559296098640572382212147318516628714513303004520704416006047727715714951151008021113255121443751683756444467701819811081663546385907750428191473689177619237646189720631269506335426140418902752097111356567323113553298743396175010025162799156792942953795013596045570358307571342126269220518935374473912485589825841231049018178468686932375085731879980056592684612133126532693615547292583994041867856585547822644463663994011200895749224338209892572863812622454927527117399920687641064349965530936280588053927396005472436693165588856340445957931525732569063036659350856414963434146069178339039985970108712951001875656209537795055028805053384926255669751382149751329278902291716937689120525619389501052576185690901355060111906309553755467173613148282112744475232098149393695974288637731519767373410158855778154559703858693839938424192222265121092789260385857851250119967058923364516109292041678401861330755002068210319111870085961319145151207169859085891072853018850041259766574550502164250261713380855010267665517477670859477970498252430255253252686715928440025432547027668437176769765878337431231877242579956034175029048563446377195367132487633752735062011624538551565547197158387064149157379853378771689084970872584969262454867357140547516746319790118453734662758232828315480476204303276133189686808736875550599972459255790903310889870741995541362544805940226263355775927021970060609999084998696685862037629070488875058600981933209417979789060245275768693648945217215555778880835122069582605058660291647032425622840782762929999030870981271594869118374649835052402494942471522610879538964988524252329130846936432366944503498229755336966782566487702325960441945193479224259038537121323111527130799640498349671298623341118230782130938474412458244810908770203880710312018613227724095192691443549118994613480611806784911476940641706960112420071821007304762977726618066125270979453441362445654072485106389286526352129121905915519748780338773856864608437236396673186410404090689172397915498080727455371479266477720995930441472758254435142240383876292743787690285600155434829528682435651664422265909447694096564781450017258825356677151458589406299664336293070100062840256971594911069266174146617037569886291775861718909936867853465778548976857748700728819672496762372251713196245463963551482416046073916778686231418124578496003524567926179144704319136879726654179083718951062396467721772698022452405753683881467601186618148094776981467493651387291651396692311516828474749897612405113732132555388678364320236132886470151466888765105128478503609513081231257864134497034403888083342894564378656059216762734519830240722243318865452643929268040070486086671360266346807472321445043491366216963849047238099483698075530347605992982640297737313841005921506532745435640760812684085984285084893779757699916621750036181658218723033843741468251109294120114888290379321172988729664196516904659235147057228481229475745617503147452315325678772249606662053874503040124019906963573865822347949258246293127615220804417647653917302228182732706988879516708833686372865621416021762067382821087524853164401805880258863083539158231107460227906014642947763146203384605141928967913725199070855676163082754941519394082838885334472175329351246921494301647940111247030855608671008517305555828455763243797902309891292354582408261945800524344320836755507533577770188371419508048467370370569215723051160459191839753372987953399859267089838815597837677298793334223502288619561482620477585563943407175318691452517257354747296561402950566601309021339897308671978640214940416910186228805045638181058109677028621037171151507589012920456563673997169385556520746643822798953842607105881318611225712611817726185131925141908844071266193974415758501341852253250255901644043945725666098523874210044575708317818454682324623785511569273341863204056268499706782748809131674635751828131653673508740534463581930989869305211496358095571111422471688446538706437724837978998619758834833087399645546492081597571766525124313216998209035178074897781110849830418804278180963908469229161622387894967286527542145382522736280596700039992302204937574721239642987358438405723441882103024751175735721725231401958791611495188043076785081977076918478064782617254395081826569994098227816224615936155052752981971037756916228860658645083623457740959406752784087918132179800930732982972455354187134467010470830397141792614646078259446927796193196485357786402251165496490428851857941164152826931404217678804157946233900206512553675982807116501100472535378471708142058224862157375106375956326379052470651267160435112131589350097417865697405991630686030735772689696548677212462674863337399070468415263582128594742625256358080624582612002958843828486954320847585141362540488443438225140309073138327065475446775287478055857575168495758373015402468654601921403480821872178229600184412908684090967493582951454519142017130435503473071144768992894053123286687061549539731069975856346018294030342703626234248384697069340110113942199805177172080238071926180930153545300650384728157686677767303838013103820219664789537546274042242331173595674196363040228556191991199792858976540515060066328523509939185624193789932888503056018670769600937201227614663288418143804907908866122511591131179966654754470561610094796379344927589515002149216165835067644539030115579973564519457033808147904388946178346076103266190359426950052137037086755852508836708038797336980968625984797262294969484835482866721770918350934040809593293833294089668076749528573356798170814654772343167095605006178330247133330824766138612026591923725364126380611950840391405686105503652442763598186095923691327507349072601696038733367791033370645450962450443651100225519174078017831092458482614542275294080330258563145441009693218347562550969697570340791561465848358665884372839471228707174087907848955525828264574832393812925003725463928924899289946458350294024077585647207765319160812521618543941088575837300544234016930566509378501269220310599099931007884872263972277101692323602478117706544993184496517684826050500622338162686937338517084995856505414771897901078192446806070677799080111787234849058262848177712800637418736396605887146599075231384644780460787958436816634724672178255706633894827937900711450434625555737764683864510969738307182284235976510569183202378250568027469586588532045327432679087782499860476016124631554659870817163579612375026569846191843125856794677611509280013598060042343261048075824033193884373189941584186256290418790881314039058192381851436337923102442008153116936052537790104262768628195618088636868809073358150296691081451670527922524074334062403922039981064689551385450320243874851981245063688034294564877378357485356240578497350187440670306185365162350767490880797625472420522337492892821664153554279864093490058408813888887589600679585898874163398831760126722505914607309092298122934610603800558488739339086460545902802052972672271137947454178256888891964408286943360856930596300128419647573649379228741271942687220608695042363213576312958456533614584407957163247921478784072888930125805237489991964111265512052148467193860232808794322921172897317326862544502520505148458185098765811002972627252519394387274050534006102139018181976486547369518976317329951819475526846737238858936766607793830099504804245480098303453411527287268819503514728593065399124239534849765390662643693236808898858411812864382933656371405560930174728365567531984709576077332794126669293781828681778493895818555980190475015580482698563997628431072429209267228271141691521499941017321915032356734390664313392666999133013444897147310788690827724889331919266075662573690025224374076929312369170930377954334001785222489624064200591436300311870498569011404799930373905648737110100943450589143647029885040742758055035406194223273006378764580076849761034766663744809544907301018857975221857357101101871738509890409301041001162681671669966481603452014854084705155880605702200531418766777593012555229062163146656473576010519518014961320755213019444903150556995868757561161750020426816801312471607872354702839091503585231127448534157094453696433220419675680729028318919018769015900130219521308268097152189101457862843338903131482252387053545446784490411225062877570456977942644187662698308805636275141791841111480060058414399915332900786734538518098781694917261972563484952746284721775728257995542516072303960824204304484947611994586193898640730024793705751861155200009255071678350286413529413035145748888390511293296348797751011749950705291902563271849943284885035910876248355515245440014343596205087426134761248694594259743570070099620284641202713624431448182343871465475447289475288670818630589466945106573797417337955696794937672576708644828320898520397534561679666705811035405119018743203646435398611320494407010358341027701559018979487417489607658534936490855143835820253130502940570462622827639926805669433460978643074803804777361348354867532965184930331250588471197015482444999115269338076101388301074084773411468123594391097486454347337211215648363466190147015207993617931957273230387949264365813018142460381722998096081122607070053975495149553578540244136044562502665722155997277136148502331206349738922884785508314012044051270681090842487632146025182209639475728706862013053352535318933408886821647303819231910986648950884437684715504562155764779412987843820042100151053564689787987562442021164370896221411025998048199897084554936979352360998178719813552011047596428565754874311716803694568979929711901570027897465559234259470870349143191672630504647469663779043102810486089969845611455847443063427874894977558942299030121703403452483241368985390167615124572182288950309729064472066103786974390862398832282644349889388519598696244009057545353137756181178784414784219261937196879195307449929236287627792036894513677287823395205601828781023878394727193473797911159192542194157536922216815870504440400670842941694500372401008266907067967534567319594606659984803987757949716958017283684351802848607538444390775939683630108900756395397497342241849709868994859980945049515231974916831583128162978147878661267195508738388728320614979840583852382418152496839757943496261899093997664740563667243369248841679341990472637865853911546775781756294062513216060555288060878959501351620764060666720232407322676201939139078901454941261877508782434381945604608938879839316158094535704349438419007679448366587752210767441385927633177735632476258231995765439297900624338826330072175403721693336113088787813138605436464457206787509592152101033285469314032863697806289539268087780956964136752109959606007519671966431177797568703023796922454266564734442085686900442352347227694069083045347323422061933487580686188714856732137656292315315185060609951790944065654112608445530509043312079116584903298990186589523512367036429160172743265420144524941504485671453958718188782967498825668682182878210850906144077433464107511698814364225166098782727791380802562966363424320371247556483098677687423144604680562567020660370490760084945321718197121064869551365771468903651572242525905763245983720481096191257132821047925650333268711506006428496539960359334989420274577381853831481259012040090969179448253442574136799286723833511421334619967336334406006286300849644276865952359461802244836715977449779549976268995138486862403911157311363673308865990992692293361118151033735220251844148677190276359364191796025797107338462579836797243523397623964905123301857721067736667226848676389575782926630602862806983357748936036758717778546627504858726513846457268723649049483086564291535161808433379359001658685390405226545300507656011251874934766708428388281063608700154193384949380048277393362141839673271565836285691108032506783618287279167548008166773232872663541478475207770431236650152179738693282784512412480818578987527113925532881368530336599807225261064667268190122708287039079124574809585783568267341082599310872735858113385127258480677714599785087334978432873742899872294043503290771542692753817818269321840874686333459776569612770188307223754456622124339887263740354278789029711801567529535008018838194729943894046458163198426324033349992465965634362721718429327405938104908498736138924204417674779221468397246948051610185113523124109827110839923963163616603018072133419435615860239351730897405887978863123753965840098209401364168487797427653827862387061672124061157423394396969683520381939532566821294623638771453761742779969526288322884994668786566242863953827684105029597154356046915416509352262240484873883844820637089629981827126294043269388360137047239315391847117211863794647579273462807441685554336138154283267783575989852991544471677829788412322809006459476767529739080533738387062864497655471258630403554393717925326635208613080874219272476508824217361718108853084950892799570026534836593938696624299346378850578639631143351214626568412978067351461235561335389639230252030638786823828535444135959434338392792454673841002591419822404454845007518441653742804278300456471176690278794277423400614830261958469241744369677525032376886201700286206220961167476608216566528991205101424863611315654306754698446076748431053444666701271880057061472709493736838931428106833148122384668830468092430799375524516891155891481291750120852305842772747196392947913382499889454077103633916848383872889720224754677954465502645791742963380792807168056856448107945897133495218255021695390801866670602647370773598044994903428414670513802806964791939212561813741234976638098947129466450569114121863806505127346691254579643296932240600156215382087244937909988915892898122247942073264937980478366832839996684618879429310339678178882561126782343421193980543911227562982160262084665559619385235869101728929263448654192077984876715954543786768721234748998784420837336675370495682214266136364417087743782985823687855626259489737185949217776930978341817609738724509799924393679894445665918449550065502671518959512226983888245888881374383708660405824258164397805736821271100638027526652897384683404890454663170566244191968193767392604693186272022743676649909157304986937114435103708866115844667074128324323734679629011363724705749093537438794672188780166872790478123865501722150955136079643190044907734323270941803687717581563204699945045413053436638145618958992503586583338385801974218827119290638225277807723946656116246776429189221965718579194757029033692821660264672336672960215388153302390491161338418369124194436501296335010247519770554838043014997551233244048748738831456248803284654797422673555875162712493657086360361947692264011727245047301307684207482130857038458125335033139816456223378703693866527400660800385357546507075412853256093531095617803984264713865668578889981735315241206067117339370828535875172494780317981294803959992053503854680018964259889035642236618580956107763089277041882151044702375002632660417685203663181064073145905057383928887718209443871368638220519340639374621245115825890351273127928945327105482970955011984341676019861629064398430588242213726206116319677409528105408713066834957791557945848145749054980445968403375492892146702403556155326084661998752885519195399350268999677694095499068574007262929978370717030939391149595580714119207941107428323017593468308847973681750395554561596301569176892691736188233916713726129140811039553961764535650317970271414922380705543945014934709978107362801471805503164382926482605174960146654543319537376653235206498126948572224319118247459155043434993046276763639728692589270068566420292183291552746926008441222615061231547306219830744514349317052277688078523659770776028326912186240036588496446151453070133702583712328707794154464431484735270507403417062569030459791505847428864436645620721641479958170175453093756714544435855245848046864483321949556195969970346413763897808209036587084626518673945424779193346618719542761816665915491958278439457299101978878369330610144927665554945331512455919384959414147041966530355201857786556391472321253436904067478889346328436218075299246271979791520677159746087857229539375221644981634230938159328194973755320562923214641435815292403832867963475788794537673373432034068931979013556205771166176970135669993776126081651887855081659459547102739658353722681164304869174660003210982816692574153207735885195434563660862690357483104092424558414582925549071986416796163605384182224497355489774707818327113133604636559248099201517233942173346163057031721279498497823131774756450446921090692250091166704431627217651987593453371327403075164613137881130142504079005753004518405650144164224143334635510514044858377833662080049091275277771456840884558559037023704535239839770560403242037780680113344831027210882612829708401816630405531944857836688942236105498723311408925797909198374412402887300980383199704910026141879959799008850444043816074918768022746106428101503955425962009833181002633567748841873004582723775115231443796019548711800953249073221852366231434595567535182727912317194653346440761758007041368886849487752961972782413811944719059590147769768100270432050649785359725150158121906658029084977311145214612473972695439230348745174675952604833416712371976289465329458855881572758023307784151939548352608591192739884501597795056694936479507898020395790389488502585612826689431474196803625875446572285704504037872234397517290398495792032507891022738504293275511366951714931020623664234694464671409264113587148939471026883004378662339355758076112671435162084464903206441805997938390896067777501676166486191266136798741668949639921347653016811761393759243263654717301904604850443805325681358617188158585940777896145079091148911016960541297002701575314253515201801090641829941895637682325051925539813319375560842901279259761435345471240284086958436430359197499621791140667594528497883248797629240358878832866972688730747613091760865677850556062693520214785701127837320061233196708233259378222136993579039389105356115753711864557742455569072287977900153794834702102240180309226730791126402326854040436978515703228365879058774645449797701969527982380496913307272048475952861313346572956870599504434433405932663530561724734372818321520631859460917588913432869752973507161736068962431403623371885090968418539072332653415319524819909859970476388331122396762819817243364031057094175629116167679009862871521272548250335070130527635543844597452706471780232878138135236214057486287885113914636517259865836399615634724358661946633164126953433444569992157012440920211645724500129075477019003125910733662040336385776398480300572154075257075027074070753137184139777238283777807865521391921878015885547244849109212585215024884349524351702368421794168821650222506696196820460389675529677916707133757212412652408530926614622356800693920511751108003743004512104011100491389187080888904198876234629994680387556427973531272150595518765170251151279315386691653534712061256465743207256877290927257617288348601169679717339601916927898591042318363515679335746297010311812946576026424327696894448071627952027116887294943174190468898939601841293679604741701632857892418340784033544016983587622920308101703010418593156246917243778932690379404092227847644411241186299006689041967214826061871651743188697819617756827158573473674086315085551317793548380136935355476139212903649489877363525359337809474897544673137019415949763456344472452029868089684580665878310488318659402771245149206218546510272248897216745539874311402933846811161696788460539288726058989125913965203637375505466392504495873927462211011054592788691665291178535647378193659151837344246033202979879254959023765170400265484249806172032185392132089764238822710076795453987155827835805596963464455129160669796900245825549765663353271748045348894914876591989081285428256544929797160995026650665346299351611269267355159876496578259077652560963911501495412051169776356395573524690173195687133675149396500158138095608597850466064764719822240682457569626201473331936187861256165525823302149032325247429883923002952837706089095650942631795682781646435015660379791611210435171474118538692356957531718047128172118628918948952158203885118092147553401618608556730024790661225236821240611164470377892566275570066518301359324603600931001003133983064946389384187487049483209439636421550187689961039741825660712767342260560106020840051391789401224846559191125364037490214313899429851093515214220786281564937230442311778499008423001219634210612304930842705654850866843290874756163071378332610897635061598187515091346421757700989580763319390830755970580988582556121805922126937314326324588891902760257692226185230139059069263973608176282077030033376829762081797300231678430411265988092463129151677261041611511781844679377105430935955752381014236727138437368793784358467102341491045696898075710566871039198238400150440330400018894590807053410676587876410331385820214175031939043839105982876169352473849649711353612441345490815715588427125144807844857041924357745338375302180712214179888619900775624290786995670281125480486085691404202713203389817693771563041322346854655875305239340250906349911179833820158173402660381428692315579956185079035569091238798384962703054712241168380193216991636159815321778939170211058388379193291323520905434848844768965143967272789677036350747536680714106704832150175473568224847425930370004589961870647892980191935922013116730982123428408798926211564336735766742738002890607091360076996918223053749639327010536874305312290018736346322423173199492717613944853613321473191277372892502366208051348511144064088769547546514298528553397323756886880443228706429320817650772286264675818835654005297493532140594146741786985911731566986340252804683972742026295165582028609815575318330681929480302134482324105748340607672937712103370471374135536120678026541430549899961295764188262173132465450211579936584432136238674627260859771376477132030830592808619080415958582765547650291127745106964506947948460951046676079947606183972707716675891060546841300426453935036981799486087557737681703755083076467627350270949129303847990921722084983759769134014373795356576257138910932558227611752584712310072901647181048523860745793595619153043673296317173238028117139750391836916129814306424465000937459299935678001476068195433033584554093513087401616599909552353868304903915086678690632071417783330515732109509368835488560971285186116533166293181335276232705117461885463845078792221746278301484262747421634881530841058821394208367043403575794063767690859134808777779781755191113478867831763810208103168509998942330863537845079035427057380129330499839275200112719509532493542596368521314442886386866270757745614699352293862460220337885721317808239595705956228715312013457240469838470316085239867761936365961069041084094846734238241465145765256542486325685782122774218650475214231298069102736291687335851295508988134513317747964832326555999316245026364891143275806056164761556112654051845022564839573641125851878452907005283254253953958122502056352575627411894610996341690430538604328614342149707322163148837495651125548382917803982935996754903422939584670144847550670739992934168202593899427660756754472357478863935711647065836373687885369049981636255627479758853486584575682534265230723608932005680298903117352901299623473493635492082940730734019243727623560488460540531886469810345954700465373829252393757031311593674516899319698833536864192860247871892316183717024530668760536738188705305929660887791407250199399757671743563821135178074979388564756724685489241772458364320728423667448486502666848624421568599464823417638792744115856611162239608852189152506868332728941281529086389426374271215072035975225145870094567060883485812591336038531840413507823487398140736593455760893899183792210150549983307837906972211610568126066418763521967347899707149627225289273477860956237803762806964603321302110244997242788558032163007616521184522135747082889662157619882976462688188225381874016922273121787222683428203491130484759816517978018955839861314069990909630985522532396551893370514174599073841484913660526573706760470942999737058702884111286798249829163944312567607211529217766406437555782186902602402374121544152441872550478444029616675271551577775641610956356463435202931670889386184451201544282709108399583464485687528647502066721806544973510999275580889328676335208958389822511345386071636136999569700358700357030771123208454414815895197493435982645538797648753570687246818430626535776049328947588634441690130480200987702553382258019537523431815622764578915284006361730864707148709532704403643872361866694396029966499134665208130191504982641852018259470118815055301639719163823967998542429673861930615332695240606069964261315811771049140972735809472867206934808646178535569524937758387400712731725264415651319486408097005698330143597087418982433456406691622148930933343104479478182782445600771865314663770561838198268517081342290307538999183551425895326083872171325406068059584088704918334379098896941396134015614047453493710541914355866818204973022486819764503937831737560822961049911814076939193396606233737739488629630440189524696936346803706331138762306821023677486144908914644201472713857121536826160869659160604269860413281447243612445958228753895692767421225425900141375846605423488416562465999883188551040492367555079908286099286004936578918061199479916486608750939866062423825756020615958007957796353873073493638062084246097813085344086321647808777921005457013686404478501882332507916585306043133256770174646913004506994697751020615050175443258894565101568605168510875647825231108762459507127228165950524504372619085287139099594852216093131257903305323703530901512037211158292588842520328825539904686973159544466313842497456442225900502172174628892030857150281797153841779003329760724268690083928895951981032090967328132478831127917664734974540807580544726380856488043605388099193303148368250041080002722366506453425638315367937735930781565468565339602085208108001790105089022787402058587436382027070363456454714033991075199834039828721919855075713442215603561488039868198487578405598086912623815165915672637396585948128450495259139050229376333819004018309578413234972658474767990118563078793388064000185541582007292611009979525244352735369291512142800173724617657318290221797340329382297243368705111273566999371597682602847516576473945475275706913817812948463098457990454422788281481037363772520466572414746662692250060027243090648282933030250415226268252056000128009971218106201911208942855092089215039159638657724942701363452748676217059049042591505404723900678872881705914391921993340963781138713253501832372396871025904251694458877023402113771389356736569982099404410275488865129708801284868451019248099598868255554468968763498073901468967948458444757225483569231153596396288837243093862846044748338404700109772500844893476884536948041215244433352271093371848767465227146855380023926064134127793616034628851938191616411283751105651999513684513695119192854058100775795597919320810332473907403211835405805002943324070923091036666621488213273997213360329740106078091522276444794823542646851955245088117903469027214014080408919678048532627213329667882912511479717582897425638097453788442194672955083635454532828817589935164708659659632531925573457611516724963888574409531106122679372693409577650391951021801001472787193546141256284063021254555885308162916986651578876115566234989498188748088355409936377576648880091370827379953384121404719201128261069034410195195295124920666610302812277985917831080756693239538334189036629471108433219350072350328193828706660549313187252447916345862678971823859965622864792146026645619779714295780894545705616637501545456122226330257340486611583860953973217421884204881028419110747318933103893796717253921879019605945679938672494063151242538226582781809101331492664135082773115311487641898480083619604745809531645156009986648663323842052277274463682177999108407720709645689528798822307908261706914289589830462732446556490524919227023370612334527479743771439359263960475760481308053664314538576892022983338239737942657678451079299869520660622727687884879658692568054308493883815561457949063272236508245912065618662592490798454360201703141434406211309885401955386653600159961108380416941106561000028787285149147704768847542041228448557584917289857982850071730145209182428531984587858999262296993765399663349208120864503391138346069421316688189771833898116884827660485141840397696392723734099123356536527748526829796119315355710363568466765901825602943291571507648183246653716307858698987750282662633655731808368487291654766868789111027833173193421095355525623462251886595266511878357325356648150492863110366441260403232602016451127028508048044818882728320328445079213840343508420889768158529062354335715389038941893211689038590474033008486606303669750172713626870388380492686571293930612653560425642468366299377287009438292981884251582532261466930509823076273404524860669002794947857054931440057602017874249125385924460380870845651614398379088762819998069686893925562066756231896188896526968964754480372328890840793992460260002336296822106710003910544192286216172323652513768262320493212296210462409770089574349427609808480475702936120545859022711946568695239510545467019444863325707256632479295040866548607233542396893855156481359278464069799861923160248491222726198385549447553573852957053812843643219781234893096423055562659670339511382547027620258093084107096527605732083671534434543319233566553262751553168688972092730275842607157377245758387520703394620473425236213170748716464894465168348340965552961771704811113325976210279109875163371486685462196792258538222196316840035941079783896241797451520022226020589485041262648790085704493508952708866395503112472678334929522593471935155103181772715494254018140836084808604297093182450407477041044088187645240526281615109056289006330618250736670495165494657834756140891258994770245334834505400927904996115617212834424245132261169709800504632714946900809040023888594142773557785645198249789822951541966977748549851669334691716774692870522092876922334758100105551246669887191503599145839993925151114217802155925075546969070294115083305233863283299954523851658110446754562289004565504492282830077610186737416473878603906556059944198902420505916732342847575984777359013037245061908891042745910780992801448996397796600767668243370214775901996538760574182248882289970530566516714512157195964539091476786340713767976018833914115515767204013058127621440101976038678681326555071262954675596447146020683327406794458238397054862154070086926808605079897167153961654931575646419996104543221621740369581124395979070723410359580702854163451844952251624015297024803545714489079453133930997192739606716390179026782675286914208133843266265965564858740945488146029639059422171217524211288852033891218005254774532039844654085574257810060187982746720355933281077623813608764131337547084763000398028482662976037137225774157290134679772979879666817344763688661386309230749006786228649331944566364723074454066740155197604262673695245808836032696191724583104054210355942666999351165641080818124690745265876685653657590500974341757021867847414198243531057878066558922637034588623601104884479658927202777340733467569787453273310150673229513759734823094603555122067018558015623655034848278083081840895009641802111148240728902266339037792798807857021251962072493512175025954799624983515070685041278523462160864797188179144151147314473623224714889188485590075188765106879281713939322362695173430697243032050386847493687906927066292263756501748694197289671541809090044004812244930119691301002930009582474842338205198287668014812097587933147784624684382747912483801838025916595236820540881681833050148106479690948930888609972423183298280064036528612509129859484105969151153872744912626383731996060963344352728375346638000932684719743245158722068072202391556706082121835180429575717811824983973492085549137189840444021503665902776671395368234559526161866159435615298376480443588126464327625831727182765897378348503756185595382085341373221839497677406274209784794695313341153220895457534734759583480938013774923584406072139896553440159268967427157296977563406712705989409851222856406120413420547844953574139838492937372614753928032899677744903390682023372583473540597126606879377498520673850625458454941407923209966201238454296120280275041944125803032247785877455943656465017750765561548572413480609868279202818018527386576725522335530148999023367294578478243650100128366848032482239318570092096825153106285519534178506565704626477942504216575692230905420553682471118095663330605098873145285917973995930454003182054068709316145729004417687222488434409958471915209274597753537415616350570072454322232348870134948496066967734598681212666620579474149797511879990071945012646283744164137021273984239104976285736603799528805884578484587273640644833730951662645008579057758176476525660664545620063608963112907052892448341290165868858034675146714506758839562171773761022273827729566462763292071020019708485857464774006700599756582414870440046482976050796743659131240815257687167066456209512471307152417076573693845115874371162662567881712139448174808390147699830734080761296839607045117995026977927782050886395955076991462529749292358925552242035519718417362353225832274416231682970675643965567999617062355787453333875860966422959225301205233626258893976515937235772655144957591061843832429991522240868880723760993639368282963356881800620750053463326479844867040202487694349046668482705077999830225048086303884334043651679404875915264569693318315612244083634652642138659485292435670461686303570741362261968949719514820288700892775129850730098428449098970956042915756805464830906532388347252419373236841424603752837887312599879328730095096235581281425946182060531503532025485850253641408603554195721355531543841888414060105304309713483584727010390581042466150256928762708727282736677300433782718412255366394294820763817833441947386185194319018742402442612667210518812715372071697387062112612176447969388652543400595515104344503511860640357409417870663184543325653341028446307163854978362222295720347836174252381520159854377766271253335104127354810978554338259827810664812918031375747854915940502224158218169986973980312398736786041620639611769430097629781641915827278067213459450349461776462490083023323331847268474199063322969059641259120973569643658071957036913533099515736163833699666423962582118057646791180381554846819935929572493108880158185857280328500088137601220408109391739641900039819495383241948905883282781544844632938930525286832199415283520317319547056538224840713727457209585486565683849038180794897363867501921880063684199880892809463250981425858358464625568826389521325882438246802418045514609792339465260234351517884791501884032237041592532305024727626745842825960279339421816906838842402954000394883769107288828805022002723148393671247074012567212909137781183552980141657929714332295141056470792133816624910686990687755650845322927601566307015080755980531556755292270822514407606424742346285976789907982717627567107294411622870934425507304989888479033067867597325642709626542696378718632871290924183091227374297221591052318716297457962938082417736649074543187788524200484789246017722526498408557616650333245094471674484876601729900054203000043535728234417990914999254752822069760102994839164757758158558347122102707115360467587301370734734292712498038785407850997553150389624747808335686723675730765864584970913454312526335780607596619943551723689916823713802216919862466803771593489484108318935831924828438923967536495537289384000257526706317126015451620863851080535820217858230688900903755389643873392926761271332622370406044304582358095820172325292558667703195360813205298781784319356964727618931483864203737398139698763580885706228993754394465360657638077433532847898726483868343782725097042461382376042651270437787967203723742229959356751836849473192972125257963986267582919085064703461519526706519574153373043536391701203827839365728576618718653223612367106673200807979809105055657582678874080186404637279592879656538371725863966619142974121966423868448071164713299965737445013559532450802556598510132003641672621122390158981158209713760742128605924498771589528685214170383759315601812781509062179685231428658608190510616635283033807032677691917742655141056053717108000351860811031797889722747014179634141890351889058182682278021666426577969319541998900249980910580980698247134800692578748194963364477262450196426999775038730602331642297680446874464202460928536836563438717435582245857299059434085372492578323290659248393254677637503675062757775815672489977614892791194085050825778784262429481717383684265853688000796847759071142688529176149180219188687706105567470705907268371885134586013175798088617375866710132691577573086368261545580598256040407306218623728137377256917241519167722897973055275943145094362882080963921343514012335095547346489726118094556807159993755868243659167833335759402302427537714154606564320390917490310063657876521469368300569366275998069854005468637512943141857046178839807051517476461701587081232926163851832688801409579434208422780485390602144692405591375698812914681778016252998062511628562428094229004876621263269450455777244941957620337800887149835979051448825755420663630919737473500724933874015770963223638139229966889587884409708362687282509845870596939641660142013845698249068193016276147509281073742070818484359104216388031759236417256023334938873845466696437186217588446066588934490881374049885967332867663661064392884477804275532914808669592535427790727573790065173465281572216997571123292634549683695231508228997896434050757595153319156550291553298597825338498420678430034463063803758189544533727632727514734348542653669184835539232214700622067789719990108290980682578077536471845571323008814515106842577752553654278693278989149264517372032606673486243977654857768842212991842879676251009009552838563182879286244880761351086671705132618627566260717916425715939114785417548346581100103262390435936659757320419779706348399432875863667111734707608836422139285125746581256802160452715904626158496384308915204273507032250398383826592010671771626410640141689503979701245913127439657089778083849593858696169887014322614720969617696019362820226212962359366194845491654475907778663228336357625928993487769100920279135213592952442523214992426676014263353349241245879799670334202739602720536533930348338081934825781876974278897105510850538500948980094685467308980967181751487026888035075160473136879932921705161687366190601291482296232316532930060990803033080397462158073413134225612164553259836972429475721279858878677734978958303462987052207384770905303113468212731615600781845617708110233762198252696875886804952348475592859552681172397881736176949917225752192563498041391982651726208404229574474962759534244981076444709716209847307802957918253944211502173057558530781875814344386990022754467354252358027583005916737154891937078206237039031077103263638838819577414883187081360961063022167647872517473851561152041700585995808137355176370038411926786977437682260350877809437918679021028988043310447107530426584533637488576023405539154832173154617905336616889413653844741834266037112059851310657634523859676449507488461524463182570289380244315729926270849907610838129103922039895167688484385792883528528387340429722726548753823084213869541368882922112897100136195442360064722308178149174945958999967541659147186358474498789782779011135768018070629088913193918273731440113283901462878132707395888786107378732847382081400844575785406752751038627727956234017992837190431793356201216476541460381479735073697423322675506104067699360217271116371633882622884042487886828017668069129007214519708420558965066865281792121192150279309237464913280960839593388172675557039887793694184723405769916525891759324615739360537287487777224333936751473114186955325125000576636942287787525271314761034197907568790478405801453907568440490030592059517563888852100911794569757802007567455955405845235804093319244462432221079531648765229894263487695611624279539726356415525475616917392408602877030105910894319521551920948751423694460439159699038025380639835837027897513350012969556092711964785939607685361356716124319414379532073822617958537965694315709266337827255885404800093967851694987619027548922352274087639085946126595832713795782657146480441540508222395071457735781723228885352367447158821124013696973214206901809101435747922167769674160735999413996707231573641107390615661794146075019448876150995602033681140005649572554274011646773613133404934210874615729770239794020345520586351209482900660702974991358559207524994655648667815207616648120005233664684660929207792784450706071767951510421955060062374437655533496556307428241885364932810658181340875491812100844631129660076810337554512995584948660748236278758598099413180683389872387737090069734402005608114151725204404709350311993119608755945845827576254545902035793517759351436691491744700764184260977314040424839666047310193626297646909308079926563516001489149922746042682628014593490141423702299346646605231049384501793023144618369464111713374284980394924107003528435850371933123870993977565001064538507706056046667809703617882544940405037838379724386403881365048284814661173659444067197403896722788009101698663089346832762879027884676472682173426514921540849233928764003291775529936502119333426587223639036372280354699354022500687302624172195245266468481220521800977219341579828967986670220499927862173903889005575421797569900522932372029148293172100579629048651617654612058492508327209028286161626980886184880409457029679430531093293348339795111636991140316629281801912095845863901980634118994520931686638018727023932384661539074312272347075443234728727377078361372820723027236385252393260853282672833386251667432682010414993015060823929054415830461215811170337624357063132521669828942628542705779803858798823856462518230109333220013467033769537859017332436210922315399378523591013954689220891057174954204721412018281058419035733884090192594012616869250864406117012988539375728694237772701261968828352587050717539183390902243517188895886406922033686123496830401335243051984033210279923991804132709676703740332252691221650582914675668143084389586621426181896510326807753200565986235105520233244584313927214522969417506587372743343456863188249845410433510996739356103322468012552388819865454439870788742531880929888404008917303677507897129493866379479620154698728944547863804532200861179398603290513066306164844105444998307964886141382080885006602199907802983934328290221642497106159813778524359543807740443569408426593320102148062213052000327561450515035319148068998291816845402181357063055893921798547577842325226404938308786316088038047842413150304551960126465612543434922237957099731207542879321617359503034822729563270173928752707725334528741852073863402369281943977408203506825000982970137279805480467417648699890017482550751952885460469700552945410577897332368607302063315191560345195285368894732300556302534884803411391083009285407161593554793405041908590922625744132489424075062862474946579992532574752347461761548163297809152237845526198235461447895241985066273113249356689990027107668838178490768015153607322828959241466729250978068279713688484999528119562192465013440412937343981284600843632553409565134667231777321834205336630451701389111202561692625758473583420431171103090488834304875985686740546638708428347662741241597985859790082593755253542341635192538002172874925750873212478907645803470317044030753626873015027172797756278162556101584967813346442718822046663826150968381963739522738668072553457822853403304483968556773703691444690728446040447398854972777464636815319761078053906133176403620634199235546248348096157344171767716365991094708417054529490162794008515109254647185384223313726394270739096806867314330670615788275467107361108216124103042930841386329202153657261947779305600880674650520743500654924707636436133420003639274472439010312887064960689322541215095310218722975136421444395757797655019773931804072076804543848319413737273448127886664309369355858534146169465764893534188806566995636150573726632306463438625212078302227580205720563679297924135498493002888848550119836742425314568345776636312527458860208810490348774660673883200259830740714903382173422061198702116036095358166547884356743353976752789634747448965991745844224608067106947504084085434258392013798761880880778769563044660934791090388077844317012703130195370181733516176414787311781971307631331743523755464870411776349798367222807066310551060395389851178965241484745000979267724432708496753286124337384712561363704387648834786799612034387345841443118025574591954159739088889962699090601639170958991904002385636093604207854959807162251438144021086550295151164193728745304318050199755542711158541725389685470942384777439168097289599337080871180524362559461461741573346807346387532185340846478939284434534125391976577334611993195832869337946440788781674315983722716680996199757184398590735725467597404877077690350468072491365082034402286372159122955556651497412594977515293634240229506361789016530560481712983862111617488480874071534258344662599847685005446900282309613740831979210123016626563888386634500488388232396951033692977450044156302652595270232018873219854086668428498138433869096414991867008011677354917419548339647147973785526650103492726209811767388848459818247019538045983744617306847679863046166198920156113350162802032635835642466842484063607154526714928617304347235969805179986858686495495688365486601962590054500904491766468249506013720717603477189539163182896253150632431363533031313784965223064545655724070163402799201083808024024294546122121440278077151110262915597226299596351024692324128404603834623936055527008013942744809055999735755458902716584017836236530446844247501421613210020463336989489724985008761196833005967019703877514561165432933155280549889756955689057983453662327546624266251899022526819226232033620073702988348777402626287209375526256230198635060938955843124791312728533649872934293892618639821940353840181061528695853062572620630133930275978376911868015460373068092116767565620256581833237468818971545196312384659816839885580461267043521397924965843225613829107043668493102254608141392105751149323013892084008566014803680515740892517916387655613916827946927648997878212785099331743594175600402089553957507473742286982749139706164668684852426441787896488655420709183279602336613655346851728375715256757565177430193556050409942755950095532442506867181169053570225886782261532492647899849270399061345423314196343605282069705969238845594172999536465057400196311020557137552520090499632892438187611132879371536164926481502714629398657632521984895424808261396887764027288815962542774526351933323243777045641378047479310488541273006019231470958597312128110029135780270192774594527159192330213174028338039236654391872889157262252578374784805257013327271110118259444412000201530898475118661746654664847890944093475897154522829561319529436068376639592491416273687776823772164442600595249937246822012296255135312497757248294457367102769273918764291173251452933371502648732178925229798574467189085073500987337337327647651221267784152535045591061095177295720712015802694626545864253545708680307819200769139641144013017143511053233117452342178064896477901377004272691361655656425173556655352931316677960224897396940956904342024875504203405979427871662405067341318421892348475650858207957012694471698410091126315276625631159235432602187007549525335091758715251347066336594064137904062882792260773876155568402239245629654550522568369824653569465676702483734017036761610314988272257988238490749652090707897367037717297313083838688495876486875366625492411186016713775718186926318622087999846383437543018914901343865815815767172242999398226979825127438733315663677593839444841647249969285837661657909362467774247753429849174443012971967807391736131010115622727273875259019653398996720460290584218348100683860002924352636458241439981961245324912084518043154694993363233980801936675206465427132589937013063034578994428193152684021286525641168993900253955009178890860479261963005626181359237408100643273560125431309558627868852862208987497445223715996937609990027428440696946518419862898686545894781389030303645154267333012933776378622735533710663178266389171897884220409371787055221399693812278052077852562288974310259430949180400798037061638931535584256774577999258052045084617978121793488754392203061918565391947511653724697031541864680255312609802096540123287377226845292260313134069154529438781273445167665573799055677768005148781116334217590187191751768669250373653411846792056874998034311825863498584991179799750698776669423386552611789112657964238242120624370435310909785369298940521105172518646469269971021632815018466762389621595521047043108593915718828978076265487492720475637651572508933173857421520520996307827987276133728780276843818281065658707421323292594581211577967610837630703878101024366718922843681332782721172556952453319687543201239024510037353800498477407151321754340920042195104985064955007616278426825988081302120919119979607008711461118332650673935049332656791100570256814269385524237423303213191497853295521597038778941333404771332393339284633501125065721504038902047783556555989639861456440514213817561570584747114958902003784429542589836178867799835589192305490103933141124146145120720146444509323849063117699289208000757986576119138877733040017261141510340540559182678432986006310118942528144767850274185785534304683542259226650293760414403555122406545726052137760648718523735874621333492088870056611008668554084769243887889012045378321052822426870876908813746480182439595728674808208275307789162663526586178943695264038908778191155895679952587867596164240514309380804622135006681923803967041853476466732115638547095485709939612928141300115949207960723416986878612995503171393566022408478593764593545268017474190077162208064236341544357616371142165346974049883171655573221992945366108630281127845846460911306502283071218988927622891164032249034134055834884071502526211749530189403158248489850865870233376833924971073687553502119168761299019193522818406859067538261850689701404101047277713174823950240809197209014086904924340319137965849177022242467028126842038859714906708227334722051213410760074470741383479718466164737572421710302018256934808704352694812752943153032744986345352581483041024549943522999049144214959195359364697472184778075725997297309366138169965741865164900750160281848786343049337312498033825694267685817892597417143895586903605308456776490402945187819797535834516051391210921428063259494812779059456810980442603036817988722749453428956758965275138767731838863105781789654165948029855732674617902635959513390795172185834327376349301287347771748524821429251568406505851295252368074497834793189306196038017635423755202499670427952168371994674455171553860070909633930455997345697867342066530952949617888198266526088644729927522123648909230050217447714127600497207875718889097034755393925725180745766262932603815677389201133747035416913201870967506786383414838354347780738425375874872575518890424535169426604876462189991430308303721351291910521504906613628522301872001354477668189901947882195705097612564447192950549594498544761302635954579750310720480441038834328299470373362132585144513145875942186145063457737512963832823642140310851048613052858416449249614592592307414549041532288250515648707100280400228727344825766588822395902234161733740297279870501984263172530260618825539066824413867316207101969561955724774702919085761417515765206404208858790337475878734264842113377728622901643033234477819747269816167769500348748068832830252192444268931386902848457774315955225513956601991926117623307795569778118638932823269619338961472963830925855174509203625761934907747353719821517114695742631271307429764615673906120065425914287964073862623603239501490931868267303707683849542791479930839430960189797404121443213176101323134814369777070600991489124381732276814907897011212071769969399148689358903281873089747389623741219470643011735985856667157184140537394148491645632339992477009657591364753020581160399563114701382288926379494219510242660877478939145106708145528839430250910720272299614268658277002114587284823427248878286323363836684347201018449086298211217907670706981505781261693559322190198594866291043812986965760830777618184563908476079285648197049484911364616916572657176592404806705205108095187383455632378649805922157271025964388204012699374469112820247148194298250792030609570752453944376234783430703367976343407964624561110205298825963741891489170206155284370315481858990210492198386211228658992355668203260039049303154698730263883994601844099625457589118778769416692431081832569566356882413589306992445393655384282782136911420916981278115046167567726218145233368530468218507739522967379466559998723965995535226638761976737624856889574476193692468716904415868168869723066386804066347267310744378048862374240397756173946608022257564903197920163477670044530104537759996390703873449311778073899511045901099247944931700547919568442472312788909127225876450113559045718872143827749973652997194934217321633165492922010544342717511975032244534015803991244136745335769557419240281785037134739759065621308305039734752769306982497857331284618476549509472588975835577772314729467858131465087995473525511914109986887576710929527474189585042562185761506377407752116160035352000912171595673829234371189073058592562404870037248271738437851215260910841685165537147035721682721386372467040085810892271988760078807687792224310148992024104131964953544600623867050764489211236217401995650499374562901225035147154897810799267271395892716846715993664233541816197572147061678224118768437260285677441357627936585551093066586026578033473698207681604937058120102684085813673623581986885329163066540630399986927194693601766596797683179716131595900004955460780250580538933240180500346899746328656063019270002776874430514063231237743587130431725029942611793282182919871131841739747385345820097748143593688091336421617806925034814663911464570200123037913131455419538273244726975772581684157716479677367857554192217226208286137861739309424170812121077861203307369893944524344817393438470906942650080000202533245959845452199028421829373831164751416775732193271117802678296974771223045372173313523787225818754228826543119158457979967209568950367008804084862180156265538304161300803968500720974868812780813872753693704467123515462616612013298277790253694135747525415777898704161330965095462763056707350208609861150354884755538331498952828220415810315057978666051855709391681486380278471057405067381084165633841890628094543225115587021260655395552802049635100976724300019784281122713866916336106431775250634528561957168661953242548485627534055272619538467883069674475629331253415809970013247016882446722148137343819911448362301765760103093043706160039950858854048027762556639724532523540576142007542320463568448543467066540048373270097799816007544523817248591568719191347168985625240938484476738630132827832789250993186232795931100546195193938771954515962590983134329576598585589847845588552340754296086146748973315569242992013249988196573591176444974226573748036652167162291426169282006692020959517715718196482756809592874083703065181284868855359006999455885346788740836912935289733149873681913609663773364241439234240688904035766313208210244081076489768527043612101766228245309149147547885343740092427207917616533632525616681065679733211751584079671747888703591729641674269771203633150540269007546550548290132121445354165992685777980665427328168655232932622360321643301704266560095933982536187114910488479362028035251199680234662521911456339940686470168240814913293896311828324188910268423735689123396805102307202628663750068730140884000998107544348129222814599223591393908623595910419166930820559030654424418232868046258970413713770906722193281775476559430175732694331952995824227584169561138225792382412251971101500369432900488933771291007586407681179786608141391559488450809776965054687116431721268978703619381307070287456459096072693135756767945665374421193056734927976557266110739395964160725015554970024990300077020459277264723587990351495772582801767518003888587127636702879176208561079959805037505906183976565317158813954674243571411252522175025079626805750198853868725725971508045490365048504575395949236977772256699352239355542831455204443532481336307060608261814943590859537857879647295580345227939022203740004309604443625487817761399240182715647225189064947525453547143873897219359584015686524335042519840022278118598519267780103654843782282612540217266215642769769823493102026523870142692108968435636990754059571168622583052684070373134271335948100606324132872300186919474981533495167912459509305252424932017152063557881221054879483575206836318799097572767921981385210365983146432963704694395583335729200627431470197852549497346787865608233840154594428091766864267012453955666964526969431781909939977915978286510562748580608440656241849818595622246266949222254292234019564105389171823221829181996909908522511761332160467091789591603839574706691849015213380262738603946507455171987451888641370994985094214878019414452963886395721578269670670328726477728041000787139948390123712343912881425792005939500887162391589740890417794344021414019838317367052717901849716218705139943822403047933497979831309989056601811722027819982327375146048494078898697938762033260648099986725921206085510366920139444398574937358472809806500223536095158025674058325135064304227928214709830512613469164639314030578501615986305682330502872503184379845691582484427986635340600003372397099369200877446057302265605868223589725033683096279275833790587175732430215865365314715607471049703896281910194173606042716578313086333286735930808253394027380866967646128312227649607472117622495002389362494256491557027272223362754221397372474258029929445732702340023681472754826166955321016677143956706741037376277679922118592684947163206101079281658188133854326541705975404544253114757102337091017816177197411145896040204464218731200149584904815609077394342208182780766210929304585037826965069830185710848295418135754789750016487954304514621759976147873753878048949762370876642422398774963102825124125922089422128898803822689594942611876414382057150732355746993466684163621554029093519641002187267768874924094197675806947667776713234556943050837809942706559190010644898136405018750635119378262455081956888307756483869830217199064970742911630577233596892025310883466877151078226355408958461615132935971806858120662906529955449665368242707041657163547340029465980968721558968834345292615602876267905821016314904916740879887721740860204863572849064934304690801632343817363928109624388158543181559650606300576221929722455427309665514677288511402246767611879200303542092548081274115704118265656858738008712714853623963887886518373028610775826152828459942580366196057267792962572560162963855295914800569472183754566275187296432738756400444620617228937989048984687085730096212157599454319697426425905846076118723654625507291365462881605206352611531876204615648864341839597378597311405890069560189755610511676684916130979308661300203711647364712626809196247569518903921588865224598654579604136593844899734176946721619113222249781389019111736150835233547889236424076099803486977604492876507915088133480467884477060420480624314522765772780654985722606955268606397037585620246964840257225748369909521594635012148403874119634654981808589929577232479923938734524384524527121346473129654705395251218816900938990064707611346494282419157978568701162977100964098926610560353006297233250266105446306128225255365842386990683600108956315470898421234535754264990154240510616039197767344209689967529923420536020261129383134064176913347424195733831538959620649390849463385350322879152763516202220797424575245454284495642958063842473622944816022314826295019688843566981517926537492204350923115788953520850410950870682849195144446084086116601491147423952537201340345496746243182076640984194978159932137823495746314873620209538590900125173037537776603702075471833909860706884841195455773137609594857219210910010014401884833099085080665147067036490825105034961588141271594536022640090416895850182264604179596501151261632810943175405450553659808507952967443539199033216209853395297134926500078384928744924576002393376376809019087353739734652714633480549710765086011798221647898003871805890228470838203278215265007186499945625260451110016232357886393884743418820060221398188552417203720241861708115167712375898562546059161970208518510150117223833811756181191199600112749689322616490074891161995234542947780663736455341821299631131067970599626922790281715950839452710743072863568905941728413190773794245502724836971014757092547637168013511777339898509557014764932875412132278568688851075987656622165314236122349009362606020795810899596968781565416478135834241369257362324505758602531593925376277285445097207580702148759278274985882578438658934992664125393911200814586521853624903620289719870841214147392741623146687447031075317170383825659093622837112604667658260592920235826723284661937365247002289998557113310479704220046727856675266902567428835491907472552050222944248784774834796174757207295191135338401914304502417090147378010011915167245394929380894901159051935863626720685833869304584555878332725022436906520144594386779028280117906895971061495896057445497388266068032417436948197283031232097338480217139854069117215982754718267880262776814761779502187291900182391638758250704909049674893211751555643566559425073473478096253953172599968664621363945105166820675910266708739028909129375507668614910952206203262866407693613796393144848364780539250945965871153077563737141721924337346000946059533247100676270227103260156862596036850831503065268278960213371421438025322131196122181644465107649801915414220232965976426895091877734991838585244771054720414955465241205865080300171867172497102216252316862919795517813735312911326189632573843569903600631595892715276996287522802747308185060506887714437043370816326177544819296241912107546379264828810713669601392786565566833664428678008568095624487689579821931737345078237209650950212519946386021566389289303563268732063643285823699765541889722182366141442657705709562082074014023017984684846149022565272922999027931417509321249978359318935625239123998490042516305791336677784746878336039084727978582326187580972563793768067404222954576109848758600715221235338021491841142276434059946045886920749768919511811241675184751670745003755743488023127926819799484184405882682305261222920583073784600742742030331190852652884912644190083027878107223971958211875054330274394388917609985778723742047931818448446636834921806212765534757000798739741216716504985356586922682312724755843056676732148406003161341233829526071631568276576815737761000694220480772606771741424236019011604948883161079329737970793683500697905790826136227757365962740789005667377537179835955280957855576388280154948464473956014630687451492851108905019033988961081062501297402817157788542767938868302112983126086660095121239549589752308638289198809090325586285897839444223850598393759965832528122891069392100703390986540296150553023802404195220434356482372716745155168013187230951582955842279890301140489510536252615569788244378082555907277352357851564086500632176165272727986003374414964004339593118142489724052786358838726895009037620138751262938238252240651769183162352965497365473576221829612761583310010060093805871021670594545033511862647547657194195173975170065785867605342954117355023471727133152436136230321555710701997590187747939120519680911200076919622433402279714653356459967189072615709795504153004559006017319188658156267834831858219455219786581641501040180501669066039145630617613982263924429812124925602257501216719216094118054199284544051182490824105554962691779456745231687629032502188517054045596491419226752186860488647054201407764117941368153038668805589309732624305213553608101927069180572766291793526833758821272639274170695925036976286925054975700206127799870931677052339673614877650546421598883940256174293796586211906793414138749868790216843542781247154397536320363902296894362313750750715908648233634086121625463705887555253139942074919360862562045697974311183418915496157358682763786260454186564419526450765110788182144899379275271462010753365206960060765142085813671312286586734593605250841251642979897999538180747731648952671192888351729488870466198286425358772612470563385467079098129256058924133115014720433733041960562140304334654364658388061018303332781841546412494056819224310233253512466660660517900143792043083121922370320713634106046951460684965991603712609020944559121015877590607824149759733035867460850942660183704107139784540178680877594151864973144273461833599784418437851832933665736497740753092936066113009870736315487239421536010401797891413625630153159876361544981597953352561728896248479218601255593174198650816163060956986589797568849752276753784142271893985436717005447435741682618696878397146030444485429488549047210946538908690587195536664320086399327847917588663827774455669477206142214752513417883587387116989367262263157539877868876534260704368826583524233809786636637840405178195433869933244053924074482941998622036340766883552360878125457519035008886064997657337159786895236906838599680085769629968390719298609033567471481018204290607924955070709122862783031574446872216451165507475295435611715584085443094052416839972571401073369009881690418120409194096074437134077485153440982859478797173562140053122222806527006770364158958236735059757417100997321332623818615892582417085438315673769628534634868605573474463185362768948602095531850155402497974391299239981349872861650545162179337186050742103488015794001519673478410681412672772831399664783390504929550256960939513007727455790313209794827390813610487318410636087346915408568205054871727007719383860405505138115707051386135766905431754691685508217881381674031980892114156834944313129107133931495131481281738729460893468130717313460638046834282698919150821460232680641998854543721361010546024035868422949498098594164674626802482304983696524110218675450609927737465219102997599238821133380014241380522095517553995652945629186659560101444168991572437449888522409730246302429837503692519330341986016573625200485399431159820128864087098508901024586454522698815629767311299418438683186493197203354390302633959480683827800953153403304430471577235619236519933384778303686162509444779847438525681127951909394834871099055626749190743019883994540122940351350988643385619350086312005784381741965489299917261968493600358991949656231755869105913875664974603303716784036466995030762642134733442657475644371429080475731441012706926592192400689661966443122105564662378976649246663602126153508893415911141414560346285646058021419077185554146157524336059089595228746655510595813629728509539647255564714721899919471414901744018320811070161069571229766030177006531761159751543894911069174989287240194015245588581670782938249189419394042506654916289702582098409330509391553457219002943009895761773920554855374546032821635062616280205716522421684315358691097466054268346795923960422905664393971662883052461263466274544655980531546950552820626896451212159184221337169563756588990099535814122888820926947784494415647597725552457807390032038042876392768335946772115198299961649724055613787786228625011762916341315187611804233872137997831206703311825203936136049944895734637317886133490987615033866843691459988575999179024755432354820005261394644192531894739004280533524317153692859557515379430128117218104441475430524971079817695275707111581622794131432261016490055393360879200860104327287657468966441775706934942343004010691702810128734998225579444381255440048315438706503926972138559709287854119888499597599551992251536818551583707987150659170809650916392569793972870977362101325464769129261138621929747332713141223362763573020988949317775247993461915506213558053395820266418105907155537772692390615703399603340388436323914631811302580226336416389173786873378191079080386672604467771199458544126366187444041317368842998470897490366388682993135740084829764293377483653202564041225712604556144214949568832139537580624533685734577049469157131647448819628443024624920208297416963424684527270026221959252309172126083544816129107494415397602912624699358730670903374615517346178512156274502709576504110106267266483635395236963839271960942148464359598154293985469705067432837401003376028369666669154217252879855947510715107201711169040934335377921923324678623160311145453084363450052983759781190722715033684119153779588477033340017913583798398919056604550914707079394997400312552480298561388838713188012754489381433298018789023385651666357131327776161930311301955837596438341784713620242157760641316219891302317264552664945109285115091471354041107009241806173075711083300779419509946352592966982593278557734262064847674175008122359770270960662100699683208040233435544610138868924930385829497184186394842492915093075110073089576321674498927489767882903980365872260943712175840564527599970012344400721080340307276544132401945844094198089390890532689229986554913120229315074941886472432349918422724056201056935281714905503489501148432158093042788277490928899426449366592380442320267339161973369370567870894550906398154568110968330874904668075862989680349430361330697881197034452567026878002895567563538781649886790686018200035398130571863635895244406634594819403965335124817370899927605295276630504441115381200749061507759924767958725731989254539556488235212130413176031456467735055775578599325714378839722551238472389422314179491473269595504083025033805054447554531566339521469395100550499154440088011138893861184243316738215617126666090862397438162989229830065001057596255090844647390560806081813148215421937000776623190055540465406884187491034145412634844282947493366718022797651933771021470704272599789845457424140394167873320442545402792536436408161618666523837656432566646516109704333350537914560176741509301054704730674173874095366253994788731648917824406508060937263722101902138837030887166104871978976438370023704368183481618199556029376522704808896713564134567178256111063738969574387091919003599734455417751754424518087603733164291266922696181989202357310763193439167155693091430622125541676820795069972340794040261636721903613452780337885073889611521365881006341510980237769069290292933980823151042574266381781777306604966251553384975080182227369846793751311850465704679989439966703277957623749858821050074720185098328173040862092668773958895108217526670353382834005891245862523269439939251285398452586148086953904199375632785448956174728000656777377513375590881901597769973276320327865711125677480061743553792970378809916105986122181219466845202802372136215777892827251988972020509433053632893510387997170937972881173625242783167393307347970941439927276092877944421002659329496499160463262856774071417111547935135061864914017484573923286344233968548401341672993709604879630578993745291462971769280765710763823627971623875197959415242869629272801060696965847910209273011871978422188479170418367754818729929139017800776161212414217976691402986783676333637555162967163333680957332870934105084405629922857755789089893064698810870981015866576032045779956921027505107690301799024197247736374253775239477438055543290714274353917729307410199288353480090222412939367983845761132709964043943669699510444757030475496248394656910228173183483218933216820225509689388521270280156168025211868816409118150747128419560340056742206404002875622239606501075441753384957153889524513157816379681805245107038353379615201083778416116741659809560099549548420280208137927866505598250364826128374547588616141688628328052730474609028961340949939234661648662904613340625767326634189281504117624905482035152962606327082742802345053908064425895690145283717334680276198729665631032729021799218502570370887175492880573135219323317328030607591818535676410764046006364257274133043359113708993112934666805895845070686283915847339427477187620651830477019273492065874280609668125703257020723660364637531395954224106936718108616317280379712735552346693598160527668746724343878786813372602740557159573498791276783382967830156609587401262326855921199540603899880828796832385253555786566657692408761507790393917786222166241100507888048928396230063486076267198339048296924897115459641613561634614264363379158944658647950261088727286424017877238675054615125467727563692701792745279702019346130097887150144128820389376239236926266769352888742498023299180470045892007661124643241003005001629250052552219479169730279024566239654112960596659261349802558263682306404353363597618996992067507832589819593550024069570913751745707506020476430699195010096504642140133391815786251879583556710286348978213387341947002694728786689806431773036283673368842213867747827923874789689868096434378445936262106354849222722114304902558323820224540336078390391615682341444932080749126277020414533973390768235761919626827408628771410151222712189652529970006577798860789687097602409355362198576300009034626879353616071865443347811107794358738593247754663030933228313169053877504916130919572093710922521747094474022771138974374118902582343997518362272760164972202154904743632020787933390837184833845663708071461035778416771918004896193933573299087117912565633108359922305890597135877326278554595971771308489150814907202766497341373652542439883594469227485256689124760050566161539629164474644786872592823543470847576943743054352989010873625205103442527838098656014037866818431127280848103752672268908545346096812343412269427690453313880340752841498984040193243494840918998200905445803784744130442356384283320614557201630509100390991448775011707612759699358774132957472360527451077343095272351952178104749730108236551627256999615801703002778717132033663637904183865322439269188206761714376632903489237234224019126464324817314226932287958018811744814489522937972186160746361543233604664918917930053659843200581871605429365851112119624705687434605268658608174223291769247285604039717583734489757021287050982332849290417787753897577738733421828002325174070513177050616318015474822167060923781332178172433171659625027175011393964251803923864416733260138383613279081010793520983847840140245049134491100919017703012239077298432555145020963501062300353524244556105834531433674769628907917253563830934366420459469845249548952549841728842832428094759612100822456258436346386905232560658407104431725786623263934516643212789339987514062396957691067069806200910762198181908498649591141340865233955528520362718402460955992321579482516342710499899623709371412716938168520098746516159192590302596677637547928163328332836822544959081728127774606126056666793300484650002708731720548023585261193243454686945213924896948749321063392909771401002880502746478731128008465713830819890556159794942897389929006966469895586494978942872649128447587291300107578165123059908714959955905451270041248098012381915088166880503049243890044470833475179834638590378219937205385338104275190354345885822624775974105363743519186730453042996003968165723375101508762059376034749708641928858270087897076098514375911722515892930432775581786627616349508738468072612095689630096182177048788728305779092461796968243594403258386290224935946344977258895875136560657308794346302172721862832027281903353145334402767712987269556423113984178229059142222980874076456068166831255278372266330453157093825849566840638023962148186289869792639447124188849235469509645346489101575905884019517602959932655339427339670363390785684024855833329415679819788457224505826614872464323395860115711286590666928560029502454102866701407922115976547948251513340787735755155506686313829311762109186419797695217179939423512758617177541178576431268204419002363101968075103174305506718150313501375540018032587836409056161899968428512191979151900880335594500799419403052853936441687717897608662041737566075803704745437643852142277153608291393550794594233015633624578645379381177685566262013208385348170857178839257131618896033729549542844024652723451440007146019902944894158780187284350261345049427698707336434746677672816715806028194083942270827578315425353820983279868242243210166741095075697410419033388541622533767446895270407943972437551464719901132849449534373663767481033021190526659507540880124302783437355736041848681670682472359943252710004993908119823566058226469835058628934802877394913795727075383883417720059434834628532879959604322973517147544324118408983350730604290757097303072231385825336165640269833171843278417999928007207077234126920987216769797921896265409763971063956087123094274924664892099989970015369121922056347498904048952687598716466481681911872935549747226569722596887285446149184589246737375358345017702520796394865987095716221756353146591792183543840687485862563710433912897022416932865047295076869706981185936980037418633441483344920006431795050915424692274853686493777844419623649991564577662163589644997847227420456630005067935991328132716176087775640244514444045866192353945303238727849555650150391733765308319398619457963588444825995764383587481457809476922303748744675593884362947645270312183729126084659714611453291288161642466034781178812974848052226985253066485117289438404386786214365342866250237421979516494753158722253897932916251767754158423298590885214615556406991098780179459631139570336750115160890721872584736217470518914869727539832925723736200155309209075535514366233041489594715220811066809431441556870749949001166310524152698487865310508114493395664534978105562276886796020019012980557781793055736955587005710883523260237325591309752279712929468502743840296260581447237808377622315516917365594898645204679645325845021570659967233559465133530779060689740881793887815895769089270322194570317400319450077994321293994272815887213480084958766696970689454853172009359272018576943305150518828859635403685591339778472617028497376879745314493689356100245558652942883800677376165054972877259294281401367166790641655149685815120584701485287749038219530595523723973430598867214171036693987806378587228490631297842060119137015963619499729420264129938826335765688240332439776063915864722986541784752116021469577433615450453469795233061948750964209077995575731231765113401546272134289025746665278780977578040479680512754684170874811936363976627626093644424103890810148674890487334071411983371027952008478590081315909003087164860212761541708309524918123649029881679338590095588925862724428718228820956235059672119061558693850303642865604343138872959190782364284015867691204610598336967725502015507818665394642291670442827332295182848282138087195447061212538847399242040461871395020152573928594219246716726599086768082965798580961225020306561238131476506399961457165936979711638553315031272488697016572221869022985405747244886427524423371648187777616980640231477469694387904839481383212459033230218551543258884796926924688594653169119754075831478863188445407290062098305238139676584292750796493181618248501000132333911361773550542580790623354590831072052309989025273293574667620929878467222138959757385133550062157395653907102327165296647630068635458574355885724137513843981841517676411244972783019656652638131054274780524670802211755253674719393346302026022221064851640501711074042355954039769875594073912355956686872502686346533536304780102484418056462681934845010682695861993461778816637150380190445781409948067791046130436979464838933241634498112693563677318651306620518718585690979036875573714292651948523609329843547984137105109985382636706280169670758671982006509036034291361539940953807168543661938407175461068514375468647915633791595258272226627665749043419870872322842913196651222602435481616281261371910627429704264087536593577726276833872647899948177943643893223946593735683722137297144540373327023988391131311017820560031586253681459622343893812335798101813044917719345676152583546994211077214502989452219186030196967362859826942010483211612457886257849218105738511018079819669761426787573659761749779711736693578739131839781339811373248426099792309346958169912951023186469174387322274015275234573140522248782129324046118407196297153416081455732929599669366822442933745174238687889449508981747347744944701699663625728574253186996378809013059849912839910412881931330145706521338600453399875195724069905535719202168199700538345824772816393084931402461161217712636909692050877595034416472650861464140113503673469730451872926434473442703262941055706329797572222160090915868318609235996325258082900066558584600792016325687717365654473563560425578221203556305084783924495117021192541975444275670491950380596191344645174402005044870664317787646778893735386038481856546953060979085816403451265322741801123498609716743351778324272779665521460287080015129736561418752336513212881264295883148658014869593060542715794970319021649292382139545767199732205279144378994051275946776530297156172932353131422140241412325918909497895814762843528165751807357217957856741805451026469763484501497334498268421663049744603867585140363194733516995940383838681717284341033711920854629624875254707238653216588495895478062635208618328592230188628902489628295109229914147884536308028874012088111764874302507756410336109771687258412756512689599089851881350372619085438847236207447289375772106251113254246490700829990620668173943336236807444931675272053461770115875479335281968858631632076366998564092125199916817619874616263366619485209389438057656416559503741596949388232362318386660851698422619084512994029712851587155019128502062719992425211951863600540136507696749768253210566680580116441951437126811002048727950005251164025013898854755102905318044802436097683461263001876943695618728261675704891529745422926706370546514290139608557056673685594644979278497255227938480014740045749768571212008177765907843408829731149223850136758003413057231822701570008041590276893892320867060811404977904301703194384721820752436572167531877225844560746899747819081719076826894293439650831629704256611338173114658283933659609913570301253881660526588291026420034678865665044476099256774970494140890186070613167406801004102461604739086941064572716872089607487612816151958557615439897810234480388017385027441350851518082787145924151792952084739581393973228736780580506880587506573424731712191612192035991511894634274379016488552348266306848016752528041786204443781842360636390640251031141196239684429005011686080847148320294112933131198838766385756103933533002277363028243227802627552192898365324011082379074065942698294221409807406996263181071748967741449902674760302545202289263976755061667677124651816084227305819206174605034810593288703149846183398732038271270968374353082873575939568358460216632725001303888877172752148153906972673392200457920230992489187285205325558494053618079481510195100027341824747956972492373280651447990130391954664862161351328745166179645521950191742756232203174093644814936527985573840031505990978412193074736599716167355976187008892787564196143807534463904473659261486727169544299959240596484523422440760305596517248127146093706987625324114949889311332107631747213299275261612379789142385837627639762442892457903694674438558448628150106725138943036871002306275158324234421291838913837336955259107313154463803296810932475007628346157218636375203716226758419541074878824609356765920353830977296661880462437790234345959817109983885809792926506830861983882852160773152870958696388675091517735693130985194179806462324029052438534341985271760062184224275370571889572669778559065147867110967320612007474116660403249523829677087507862684644577571615654539386848993902728369922519308931276452620474379060252340993111895897834546979053756651573918525662060013585632927860512502346658049949783606435852559195789885893417791202857874438692311076052577893125197839008522829158031714172076890205788378106823726006846201103892763143871127106587097379484508006314893510868445182976404082671341941780660606991994757730326807967327333271302701712423728056520348857399996285111447655156556456503033092783118920008822020089724039163697929951722219679565007441139700369638780767702011967768828678612005998208134905208143341713569163310321791243304194583074574277966894270368969327739620504157403065775880117378083394972495056910497475865267554117956874891058072341335477604393292466052677572312638409350245815277820616803642774525241384508105242780739536127283017121878128131486880755228132964512833770667214875123403871102846421473916765745738177186452580124695447175057275030080194002685163996610090410674618591209027304744572297460025275480722235528852564560940675364849837344078825074050025437839720777621780906282951718030722485755593643011475609529554670552634671165894121912545660665381587367728061620415537994015726752617233917556141001997313599709849097920825999917915595682695421874850704028103109470571751857898714668806200256450594041199175577900892319891016271552981045715011711581377075464965414743717618912519238316330597081433322061117496352635927279346641518251183590421786360620152189431357136340418630195781572882113070479710020883731839131764415387603445388019728932355686230659775110410156397445838022420045446910018356189380347986064988196969493819645991262336499128942817448948603994043725671351472848087550036488085045445241533428210308302485808069637439453985021141980094074009968704995639980781790303839144493773965210742005391901696513214190560181258464582694361882507369945428249461860555192250438746842072339051098327862053653054326199600532139895708854807502043044941042324207900838831986433945289507842633800278214557701993395513443772963441802762145000676545951622671861800788126080427831262745728522896022825358303972711656848237682988891989821520214302887956280050707111951042972703461628637079674076018380185807189172094894375862748333587410452477679929367514483424391657272936799819521979912298174750333468117917236165324733270348487746359650884685014869128335348005962412500862031708794284182951795598611784762884004498365704225076834607381980390134286399014284844615716939886258777049449058508776613177982759939181537824718948294142643230452512962181065523307062596540130463485667698048806789517309278164951710902158895661392917485830877694494881119316059008214128239980538485764179792688826671632591771380085158188409609483238223318487160838860780618425332399768483703246816775735083785867858727503116244971272955723275427940507561387928357325778122754806463600923146067420939524645984495051411616390303670217619948716502371856166928373343946771142071014038363116372667655467789042824982908399839959568148187599345898943068276828379546300101837276368488356604464063924231355177215895403514527601699044428985000654596630380956180442688326252985084098972369256916855807076488847590776028135471883748414885727589592466491254840562985330969001382628800442556517616685619317139470730585472602087750465061529107632262704463994397036479855271909456602014742370448352990465989541301198390370959707549715570497166298229302243853953186128482219197192878380977864868807432711736495956763965804691061648463624136031358454755843492089406897195138539559455622368685425617743499814714157001233075635725654457705731894513124016717742095000866099180513561026492566442284407204461554598349144933146989882725234354700842758999179942335735583582060200509822974311263300843295609579878596162425672047529723783910022752782938670859682770409798583235142265157853548325464778569111601761869833519183637391944327825331509456063168034802220955564085448099592963405793560241415793286588581593123346464286510425357484354795584235011653671006418711130740675835865147550453076272534454989553767222769317151432334585712922491153094742759029530921055653996549210555975355276215279149656482807339354829091694344665705925347030448764413654394381733174258080349038797511203599112194931448167656940726290071019527053478329917044550425734786057987354884140127803137303505847164454304473709228517490390164778527757859183090100653857190950538341480133421645031747817332515207689131534686469167988966606044900693063710643735927917967657939379887373627932997073631971267867872356751403743574129271894106466337649827069152333166892875196579576116201933022601642214624940160111908564597040269547275058370102210195435331089377213659483596262731490048306863893737293801497521084251965191650862248815455740086284520203834311872575806776846492030507019555969653696903759736196517302954212622174433444894405425856588781655692263112099673858036796935353189393333406724095140262910287729378829353402614276969574571973669409262396744301748303407335326624990736609333252852119339670240464915435856757462596036568430398048031901678397832935760795965916827400924074948280940604447091567017606591963662941038782613469445248309595526002931670717168220706425272760894512744323435502507171288092043102213609030506264921477147665763127189673369817230855464948514898956830027701381816949816915462916936271912171554040901461581804610765803928973833397851893274857491062655801119386641376766928092172269143638910509286655705474229395028300227389968060731305522289855755925224032615758306844816580977555136233269316866078281452853108649517071104850614324867486020926990948458030334871671571743379607205037194933626539912888059711762288118492286267081318241955591589002149653944377673955637502287302385316344050484026744259400469019329301298836438109738898306793332005091183386075299297285605398888062383948090515762566802789244966343378942649575484411487989366645368533175033548803289182758495320638088086812677275131460813209305991589149413186619017453818524934654027476682282982715537528733953574987370940670675870702561572017937312307325630954676178634336314849606519576445435638581769204009590899750490259532093774989917607201043199701481354405184606756887390583325862708501441328878229084320968406181696238544767052200961744003420813173191309333021294636331319272325397373227754489192700733987070801928719566110614505176149282701373124065812911097501254805306274737239204660425982945761634653759668938461094246521549157550315539663156735943095559919480545097512111499382080034434162646822641183452044940900031965797602501273511588665088195738343622787656584859365806734565038386274120981041164934327915610756331314837847055223186575394367402112888079091372026589178092043823855325981963083648930189544899388227880870680857423186681428019738590526179354577172366543718295995766062886940242620395340780447138033702951988605044712498239167804761796135901759232725358586795883419146838200882979249944677086622980798886522057702058636069750570368393915423640766330774170484916485835533551840546904345051775763738869091807753499854241203631479799381887542431238308257337680032550922311647599166246335328155683534917941979221167074917937034659127191003495615650026971356374090582621617213219397756881922039941209390267816987760800784533348048494938552362749862896255675380239533983983091659178307947262359488307761341236642040554588764848109474017039963258984803127286685227523368450749167553402547427398382833605469434164882735930009932459487019629976274666331517336698827782471047621870241067221588334311872476061430359135892674685363490571218438596406449049003988821484342844527626985345032013181845836049017012980696422353194894524982246833669836107572276062995597390396273503630702295617977638965672783946326670545477510081423723862086328426487451622367990854510796850926534811208144524933239757145408283588529641735089063266100918938941255763177358693550662059830560481615544335041017644330165590340201252321425225976473245773064013000571912878999414247559361978952680875504028658999862681887547876577847848572308904101516547376159725386400195078369247579769486585799505167840364252486296603040455607984368800632345687920227297026157927047276669761832377595434728347551404194519551912667251692038071421907839748290904082376707662310800658097087609240491488612533000462211185075286551813368072501701593081451011457425010874740373363583416074980632745252164050284384654094460754662667291529515579199889243968735955893122486519194971792507963062087010961673657535983724168566973071485826388966079203059092491721720114796024370211902408504746814851000170471833144532744477310072662732504080854853237277002046034419363841100902590560574029551120070052724782374524123542595213896979483593533619895378175652187219157558537161306809290224610573089998265825417479405513579332845676794726003258932729113641946465075081369701798464187818127687930079306785660915929114231024822089427284207388548059019482873943438845674692599138803200314932558044874989522455207805561004321366626310253798134251675098063690813737862205062663082543586517326166370232438521141599367115344292171555118015158899878057270040217492126761808677244826704081918838797846665046592150405400845373790586215209121789146357671534046419209087395636691135259970548100838699112921964821467245020847593485660095411319384683385242206354476933816091094458088829638020218445333008430506198810735223031936252654047761332856680309525325668763452918307874377131632071262204388115781086766528259230398080842429397736269894380031309930135945288231260005914770759200377932405978704143739687118151015402140070464827001895882972240504165668072185114166982613057400823912877603040066683743253380000907241891202917043800452571587266856639075330664987198142577097347033134659821461345987112704252401884959755620724372206598360400978878265669672417259654449185523241989836100708210799566705575182607260986683489383530145823620188048031540748459312484463919181107762636333856473291282471911019651754713461041552031722078890075858088094154200373371626341272185215939152664519440204728769843413977071536984911974233571636273147297436823201114309126066086562290798058106430605823359466033788934902389923571448061563203394913758736675419765338396040666722268302844580617490738057183425429135387297631813119304032083853979687399763937634471671908048804670085166584662064811722416590083974997612011900809750671702137254462338591659413700851179568507737455321258802215246334916671157739276294103526404398526668222265072134357794063060246306341278371538132818099052976479254932718756566621258844421653280788962926939978769971337220318792190131092086464925201751250543033298827355108364941223215015131273317568688064441798204471560658856434558276921224333093144517523829768163687234189836224946769604617821814305729158863051180666012963039845233666628082016225592002744661470877384284516854426898244553075845011387375239293903319762829502935805466175374234520982469536121960972956702126468642662003724937817219357006957122481421031545910191736907027624958522517336020337026920458988885977112157108787023029900615759612680746419661312097214289612444647023674659471994425774543763064974067242397381777244935561258130524007409863557049920218941595861051332716535071954231371224076292074786075595009147731520747946009290439809641415553868185533353436283350876684030466811454239176352317357344241559726155639681915206259994105196272613786020894375024052351962592057242825348429629586709252751066050458532256340650825249995109100079694529452708910902085105792715284626894687394138485572991101867197518455747141142604227424099748059312375481765113646019269525730490068771768262326160445675814365652089655809371303890676152373669631755996584021319271483912307050917725778736761011432705166830255974646392189103410621061597009568411561887850264882904648485584125012086508433532091334032651310782276045073467242499834637531606242589512195137327328305143610905291993852474777280980335503850402447474025121400058692111597000414930723955954843246907584016363247069737624852959545437546512829357133994290007022281617592901255276400276978626862453564764165537198992869543638554339592867225855945080076211882532429489882804083271411715835742127495236742721101861455008514255757518120468787699977008275365259612379706064811864815084166854800663871378456327542837478749881609914355777437932584983687724003213831673087637076705117013072108215049037516551348425025545211441162386418653589951711679623806331978827113129377767550656972437587336624492760810218980907361223335928886011629824550039171536918556388852399805013282388782213169885251063625076887794385185797433114174555429905172077841078712921276401612011949035080306560319537224186766128190973983434778791327764166674088332132498757956216264646827848050676966653670937838422668206161141718168937733650145720038981497410240148763238975088541265567544834074277041718715778440345604644225902966441592015698964613494244960200740895849895577709259702902475398990514239108051732899331060151642002943336806988074243010931306778537859619531237661337457348518991505904782996892776767316657463090270837041512837193569677132980750725402736345617948479541759999815826043273583573553351310026855514269437361418861012631092752210510321978080473896307163464664868384681126682577650233195479964001564806150833378503936551854838209400861001247131693516243754418433615295812402460062755826794088095589330656680186064807643402609731201245925134818374498408922675092163369833022193928523789056287187516039663624102402336560403825189772991352325526160007111059603255187323593457312609155344049435820334246008540508218303923209808124839067218526897241654410057832041247232400717496027096051293797494923081064449398221660545522708599663740868736520201837580294306433099874635961064144637602351621662419539015965115880688288533134701462247644195140414305602368211327660591728226495985986951952607157415289209892233060715527684226655146740847054676356582410448236936326344614853403284552168390376799431805920030232048886080638486065982724738875732767780221149493277617747577533969787075232070057517259191497796152788573830670069226442002152475877067219507323940578872479554549554456630655898724795472300004710138534312007096159576004867267442928211779111554560659426419519750605050565837388464771935035591654715297246614490954475606501717168619856919809976271532874173039070049412075063629095749698804615818834808006857877535816428390672640973005229376324487738101670592036852822393588936510155229147656396720606845770106375133142640179531467636835619629956544120381832593761258770905835728278886656870486200438549676636936673571728327268460027921206372653033270762391952136178869349496453455136506596361507811256270476832916116477931805442794990853427954724683978656160692693232323066918053025325567445075543466854279474957411081874114303033754224048892711421509223500529109660425760509521508317630293172197680768934395203292052744690870162211543893791688624652824903014120789813177742596550130025075074389560951268505865958352539975828022924614585023186811567498898350332498282344331540373714690558433254372588524976531887040276067849060802477312082479739499781319662571668608950046761715089187851164521085780914206637776701264041875071440688290516747960601006091368461778609090785717137420475606014688893707150556228054207645626368092667728106423502267969412079689275740896853543301260031263378392988555813661502523047427293987321452447379757149421911172163432474490995714376736573592519312673172504094029269355032127321170751499484416742638860537639691432479559454476712193987281807447984742347998302275839109316769757164036940616770487460589151583538883384947967349661164014646352583104011200972578289762660545799978643032340271424997490421192114479554949289350462831978421493657415530989784382199796399571315562601534153729443466025320437310673046716811409826935208168924363285634382102774945784986126306430882125924222574772074349912287140818478827004883059647875155450624454826753498662063585448973269266992293125736113989708269819471803918682688522369361974452471425650446219311197011363902525334040490602294034187150156771297244420411832950304154853478118235410930260551353174869292498973322925569867759433353907680654150504261250158646506062676812345152546018756839284112329215448420244881464768900478239278750251177842455415209216409329349075030010645247761137997079422194378153894724848558271469581319676140519104416195363757014979597489051725431382498050219945394482370079443678131763753529550453119395743016325757847767121860188328632991840893981132870152565697934462360421235903279631533315549382494470238828177689784938677267029636879854695825808463443064515875808078824199651255041693667915210127719405378526766509884749193462703615630022604453971228588037060866416012512700494962709453987304337574368202038173661412038431110430517699928054324834291951394073217823512080580866053138059486040604070712584437060324457814884232478264022937354252901620597567371904890503981226524670991011168077966899907806375078837115038617382547438223321358441478119782238229068563424904099428828285687041351921220550813683397534143113179250994278615683781084139021906714315805342109750373218883617774157424493742871692925442695185603469342815062389183031955336750582886907254525394902792802150050686318309469927038559886823341450663064056380739830014972739716344927310934274056185890775719147335472520193388725602348439863470957196437659475200092665128267485359229875956710794067107783752701485326795398695543204631215841203810522704311306759109187536707803870488476854128165900557642863774428712558610377417100472377067378707088092049431942974942524895364320676493501525481965417910889323484132128694317372166581058678902379868889834804740568286489833677369834596095750924967172937993722550392562763055915254959364242618545908793618335863858115383536028399667770803786686734690110867284377192683208266607728483887557888061583412636823657550680172978100315538295803406238399215067870661689639919301218554516681195219468727395688487603630814810397090704498900367140865111306334313107538924024111301761795527255687920407219272044467553992342689972099007025021398814660617600598203287970072221619851347726357450403871748759687094320634451527458909639107802568582462774467703711542538148465209901267233100939719603294199567940140517251453731758425121902170829550387084628277640797763946172378936117315657502535506541615714449644622805473907369967586751839786745356114095469129074520627868862423615794331870898267751467547097240816562395308508920770938861044656581521121997594956763580017844170985775757975875615397387011454295753302715138403371188058493562728759726190097472335753399958193322216636659985285095846728057468762135424051404623238938515148944310615935610261410452723081427056937417200440980370306404663996174869169022569503020976356760595299305964364102605083467976300315631109494966396077998650834904364154865212425856132655810758575594766769084352072914296721976582074033392597202704180863474384115154672196724146741246188497946981849396599588371444103935662839067869898132390245267378649990944287666236836235666910189914872843500297377760198004468366927064999123767389821042292229688887212581382818475301242064501657352582242358504219590916849947313275069229167985773808667360754117720460314919630041822487966362883639905326981951614224889570676999978488738214018171066370737587899284243267656476197394747106692027671516815006544167713540898872279229237094889737163361977064430324921659336163330063507306190052888455366939834411890567583105904111987164017300070082845386847128455957519821398935217977647300327461312853205218747558594346544020527346488121603108405195603082849058940753948853299980266177961245354391944113963182020264884881251967463516872714811895440492260661891764654900674541008312450192015061520373193604133876357924933953880903035768468898654254989724923205325777558057926006040460863711490421792305417353257963771011304668589521762296643288159912701898103858150643570013611703171983134205697408607338430583565913309422115134415764718736607560859893518612489632316302441846579682886912007356726536899535712041665101947624136158302447830744497985583994113894780098956971241482079615065649269741515455425532275235154598444370650835900267472745856717855541032521826618139857096643025956026759019160950458712201682420689857937104026968104238930739668861884727853212221910477607494401923744357071347541276751976493469879866743874066405641207657301156985092484370135619998988748509326797867816307787094060807089750412224720023705587816221923013290230851426284255380779886541080056380675111972770633981260531578472446962975792557534074085078398818302816546513429359470643196181308602711394123575571039376042075874626016347608363152909693742351727808170234470099620435396747652159958933376433354655685749530583135062245800709668964505615630511628360542792830073824472463687881592749789219432562670870162165080471048802594557030024259823512879230050418041061579328667826229087758758279571710302461139508454332470189802614006118890900777027795264081400918958872755473515886156401760796125757162499886523393837298624547136896040740529425130945635986233740654985091325200288354297261770613450208723391687151978838376206675445246267157747025383767789284398433371311672442648804631773940050652074469292536752194130165462594022894376133638725513973336041143512356768603277879774890797303825722748421414278607602550699426788084188578950582217632716931801787245262755625238366942054871026442787097781345269228804075395581920650609432131273193632959844325479667674124964262677515924135263108987450247185579363820115083890797318880892046617971566191360402430743896155367565380712891664004724384436695957422117620217518681193132070767579369956550305235109727453955947795717003578136063200007196327441620435773582416140799888415074440059851921210661481007516280024521865825911879469015788994068333483294165478870064901059613285274552399052147076766861118617785113063462632721897568835258793461711903664973821300383917120841994994611075979842783837657898444282270202777743969891392758975190603806895272576041749646204031016979729883569322008936013010509402833600164932585283253340945034048773436304127828957172277318232828665757643575104818054566875080090315547223576030744295871159384281641304849634848613980642980806364372567746692147244952686740367951002348675415892037584777159433351804411124941149524373167635809287784608591155318582448049434371605944719203639495369095954024816174353226336631743787319986679811708712015840169922887347945042137149006457117679384808960197347123328673508715858348756612265900682959138259466408853753107852005661274337664930676771862409006641296361879319379230952593276851162223618022113008371654687841833119051116300791453342494438226776006632345582969473262228912849857095819156736734850067181291169802297289620111773796940694036359489746951673907744446523734436417254333515385983961140295407665227089477003846874564234455425889836715855911481581536377543040982982619094098397236879048378639548380738638883345424672245406811840542944884394631653704414334763080301461073850390715355322723816475708695473909947838538062033482321436631930402825697632142943824842231090118631258563774431294494255842090811925520032385350405024709666636399024306280398937234196682987038029915574172025143065356123403709008875169066591572562720919391595237720709500569789235865161221058553484407883685545216719362041663733390561883709516512177473332857345100673556856938811047296773909909948920713502296471770302479199310253761208930747227135030793661233557191096264127395121879375573410002242168962103850651668086881275666411041788331614053350315061303334813670187383383577270828130835044742907800392231688682563179948715706697851733137221870310640091325163055629002575862698265982217961830443808112852723083766787046674958076437281947172865774639496276749993116590705756031182540947311225466132291661193649846910493591365114030667707001340045176704581567198868647990074921545107478140762889949820803028466445764689109640467132481004742895706936722466276964500835628571671963773374900170036973512222893307786228389098920295695000031572861903496820360718584652734543484790216651978291801953144072819412768167022371727006137568196872704151420504293543390057983815551022241344769639130834803921927578961582474838413707769546495785374677432373991741741757516663860798528605839905615681115640780792825315259730779090783340845806364674772899849196821225367094804225607361647364248774038306041042920428351608114731909572860647661886737760672639220148124737165798972620741317424157674536067335663856492307398271500723786229664823886949121605515675315013078820018283044140281184327629566663085081782579255448220290613061500597953547919718802240175626866353677643332417459105717104343736242958215272913053641555720958233150580095727588182989765389251202005817193282056918544961914932110207045082834820860028299730418811308465543434519916178092387456520677609712738102549513247350460194110335633863771486146147483130434220627614652690502153971424382003431798785985827481897445313522837055412740668758825697296084607704907101377197683125010500052900037209277391216894604187564479847361066870002144811386157249529623361466273941445597955781935359743115751045951319971146169273368031080720581357313214672854456990179861027103565242905974985569336343571439703184002162914712154963097070131094565085830945725356129616617569374487390327501603800212045911216449343189897010340469934432098939857085456763343524612553346853186434948542806403787316582162192008734964615009726091343671607635994176553012162395410098558224957079568757829919813413706001169760330860626423794819264580036545135239807171555850985637095822115058309253145029758064268725331907990348267980122470051225444618618846423423856079147135230645161219255991507623688696711564051443733842427637673484684857021679113280685498658451534979735806776681525610603778465560846934952435738949548105972707825284401469520635987903027132621778098257407370253872156909886364302094302513028413452527428610789714070658023026029530922448183273523618827848516014820215189436744513512765599565963086136320670382410158629727403243048368054050699976022574957809956248901395257732367965192840696237866238747972753975995157982386804993277154110533314416162932821598070450883154659801341455836314642499307841139332607032689059879249015612098225526499456159730032976843442912211199649563685516605861186496371238391712100963313790259360764575734655587482912255300935691433101006219680011742312760468157638577948381698751552423723462411161102563404547027546902198738952853348158485541755979129994198039725697663804936103958492791238799252886245488413120382035422831446358604832624412063730789008434488541404942853966349273058528595424312836082071045211701203891559801785979019748990453149464669808607977954533622362683052244467335983333030128482614282110773589269496374534351215685825244002825399101601826453483235718725500414865256179672996995527654014085626420353885669684211237898085928535494816501931892127733274690753611403166807769317159339342332185290247912552461315690577546029021454513129081968581052438302106522804004588878931512908283852346693888839314287283887909396121952529421201125527735693333629663118313025516666999982527399329848705049745673357875523676949725353351231718162468204805134026190637069274375531304831710415830314473659405094287868243179344500455963668304392189223859868463206415358184911286360649026334923231712836263744661598614073324999745147281927402078765310691771462030618179064316075640442499847015312270287533253972169313688835434621035434949034551937623466132024935165310489012125245873011702758532710920478486190896323499003131306906756573843467880887593843958243653038897709486831757820818555514534566732722905303102172974631110748359851426125249537624640059290373370435523042872251707366679229268573335027756666490928250327338237874862117218234293871627102304544391329876098869273739495801289129593088967619566747881797031830486089106712505269663626137836770512008423007223804843579124524391697613065111409880611212989616441764405479989684073589016538637898332639887860243126124570204295424259246193431001853749466131056987527811467218141697623305079914192314137499830930966087900768503641851973595128468311429369364530844128011776124195960610227826370273701634850516600763390780716572436377012554669060825686766729730705787261038044701704078752472596172664720782173569409849669957516552010372609728845581938680156013718290284730691312101718518222098539157518216503127608526066346162515871884857693697757142961234298339489645297109121790599848876115330847843743235513504638742343042266644851700224629875806154267706112188549490973316405985927839611591232685752727660853838826366503339908886114482232108886990394113118468212765580308448400811659292381691249052107369398313412742453439465120858235687211434235670000539940203720307805886197991664655920759661029500308606961379644111768281073131237065602992294698467163006449144584157862921544802025794187569982139720102443110290008692625745557573094438918299845848145462779417612640923686500118743820244261607197448364498368841951082291672543164638924100239538391794194703677336550609944995419820135181192892006363594397704686972216078220240525279312646879732371207042007260750075113207232980823331559753209764844675296384985921261934086314940563773322562959193413434281768126936860874917294129024274079415782647286930199603985461596883606652651004720524289300633606956996480657646999508471509638566001894475731451103898780625437099636741017175049899616624441203940287461624407406690598925659595026615710314670455103413310635846845474870525797432844098388903760277393173313169155162578147091343535914302729571402220817204773097129600694472979414166573703566788953123618314726709003862206116550426213293304168293973433092912766826444529339692369872794147000304675445901306944238940471658066422383494639894643007662262157019314142140993389691756112772142051743953373731721600349469331930394085834628478186060999874521867056570075104777752829610752061741842278657547167260963317299658074020733324529858298880103203966831434039150767717413581424083132369674712778519978709573468445800000961414072083774656672057340605571581823668668356317955486625317173376353353444102577679457239234934892637992623017566268280029564832432717069965544762112220325396949115941121520746792074806750000200781268541043967032082331649862447162665963009116117159865204474271010048145194086012825885213136751121428633606824329606346426084594219761716906395621243280985872920519578541332009988770888663605226514848645601677344897984710017835808863854402199066149460122004479794101545891205877022109375104649833273253196459284786693445198075987959900035619779572912454846523043905391269185771644839853501170858376236625852217166577711547033523206763367662388534700145306165970064310479305841666095770974109366379417498614625964160645789237910593858067979461550112340803910861728256959519516338123689440435764335784771807305992524201226963426642124499912851632834714297743383613451953151077177365434849692570099331705592991111126054152334427605118504605281261975787642271006310462813446803559300613294941673962459847146194093431951127284377757015931704991413446720010387937597371765203092006855146290090300067835463700698740580359921655763472600984199909091141393772101952234191172049484084969561330901952701765738655926433130766838737757624851328646057789670615410691745245260667685815931257456306367004167449483026794411133851289078748883602230400909779437165273290335992607178524790286699800857258324406718124739022685651999657145297597244366099492673431048568192787607764787277513947420697278696508382831234112139703876928175532979878074035226627885138016333371453076746538085870218625359376278891622114283799499926599473179638708646671298030617504387424554838171732927472345083899090650793003590640743770233574320580036502484364986523069433540768989423354641361433384501687595474056501230112367635330162395711801074614500532825575685931507873770759853778374164081526189026729609059180370629667364824390796241403799676339250693854305121091333838009372115492769604039711136282426356819226624258390502302678841493854452920688505208279412511240633237533145557041471220490180521149139478486993847650252591996502369189602762532889870723206711539504162897015930712552479265575402017524590347050876467482472514574651661088422914753505417089744791748803794980430625053958489921171470296618380318028425415109715820924279304907231067141815757981347165400000088255450452883730745699808315552822291527785383951867158240273124140547218882785780271019050034983679407764937382784421502483898571615107112403518891193228259425478930490928433368741970258607744199885889016081935769800740508214959203798128637504407318408189088456634269894694360451143228861019060475369232850738720299840044745106652965833161444808524837726027174483233816403028345632396942288243536265862377021602690103563585536724898481218414115889942852034466438181288497154981921410623455123999614040741696819782557011363722419629116895895131798645011520579106310309089270749886038592822093871180175358999786460079327477951691096824176685967547986178073901533257228507376256185940093551276669382995512446366167713381550082711674968822999067275026318378082010498551055516648242697631141494482318491612235230816712137893028684833309289991789050327142177656795733666936167014170882819160324114066475970840597651587352797040106239248920385595336098156347506260613794931511725826444698975389429625654388051908955528241607494843031877304471092285795111700146487364136943258154758904411429986546101586857520774331294472066652105401770004852179539757787039831532077777392955158159117328570681154464480510546345456056539064187494678725608787253426991343465557399141832442585859677783204157529207845769336631429338305170183786515927577079894131103133047884927785263105613271192554992141493366844882474794818611097244194866786476254528940964439716146593445742807004505625707633040303928938808063709552150021350410575290898815597236009483415349601980003686791935677240622596146711208141860350358411620824731545685083735537071667116934301082429623886022358860045002779830200354468913965898258599997775524061999578491092220354881765042927169090337292723949982053991222806055057403376668070864499614567537811931856820075302400822536620960717277176753540938664752210507292126391180116856270227828629793498659426959617566827331473663923983289917414396671038302051291508293936140776287844738692025605176723165569031817153667378947280007970851520980745099936543384404040896428171328720973564920117461390614981643556881648250242253547350770143058047708658352363899281897938776647553136094443281486543879898031067578835387902836952795505101538077035559061152975666637566436510744431076880699406020187836716651025730413135499908067419727629079638846791792681281475558332586997958294057658435132297415383809358749377418909293871865182119887804848939543504966215552886349959519816250988125196525893707831170467869896565572626786464171668621932075157734988606831579324117567267293565485345656048026280276959023091190985553136272926852751080802160700543674750664963161271872639920122886930014883848595451259194371631515859381551865721744559924248867443034899205012180351032060203645252541792111842063113456612130244564904809370192782685235394942354870176782935728626562519760933057079460942968116019286058566383580498005593902943643226209353370848652923226222620909377845063100138607203321002493487978990040410812219057548153782754144096274886434960712664615345210439693000695999277201217931376029382140756490090335686287777424466263096700339443150323121454048088862680524856259480166739442599198890252635394978961896197981758480102119222521636302407630959993992701672353875337549888157428261681926583213580980488536481186390798880705092760014859776246132605818526270173042565122236016481889357185119592949119435575642822356447795455293221891670138677144577183739531582810853497412490722421061340793646896058304192319585009649067228521190892009691123548997725494155858484478146763397348728264273675121508839113452694336634272460853322044455139101807428498453903877943157127761256395674300150988677333137508123958507644176815735387958488983904352434929897406550401555139490054316432674453315935754749491828937065138446231844273876415053420994002564028278616966023082676095259313658021826540334995005361157070532406848910939651179251522354223241039679933909640652871727581957135280985228605553554042357241805910781771224935454112881209228789311069657662110330177402346783123670579445273734133916486248009764952589959651288193096692406312630560252386793759667942881349078120075231927849357316971728034752674312333175695261135860228535117408900467104869179283415786624859121103303372781250238648788075668323182159149761221200158851182764071314541452056938714687770232192222024211488397923693653516161967107546790637653332769975824547806813837047448780706422994967040319480502334637745454406910062711573103166253846225464019974978457458612802278685128757926242610615017067679497101755279485079670999087516628980399771177281560847874739516166856050992315114541604316726906051498581261966185441912791937425747327452585449576243407905137257603147288425762037666457694619626151443341630193002576373013869977440338579408809175000589354358026989037101953982232850046212697740738105465489719941200851119976698530950130830932694088802581322982651108463806401919210131846562288889256422598093751045710183604926072824587890160195730027655093893852217207746574067794773141042568609785527299515243338619863261232076364383233735356138115968724992809972725215862124153404352872176801465721063014094801680375666613210035750510262128307261822632531655832953963438446133059190369423852809592713355669147055338494287501315832377457343908186574602965439728823478195477737089876868231910716594536493698705250048125325078744498636533824585017413654101291076019222871685914355230391703370140778186807422033867277238867449275529466724093076893201334174874033607842073278345028678964361695654914191804011060228238010780372432140977983840243529485577862879782176078699017178049365809943614980087831911502779838540804987998826594462569728099500765589459969459031210044852528371127681446056237955824373105917624164217266012639932672705857798027914209716907962334894610035065460644589778847006269251833372925022627638139114547647750520820767285985406890682352584988416192403928818670545923756054993375889329706951849130082278566318769726136738451836090590687341790815931596477625303275814390808875164357399799429444609593529640878341531451476979546732352704907092529884405272292264363057271898876982133638731742139477554503126994367650976804562902990699180763081724321919936773235845172992453241145739487003357928115762856738022829385260958826914316648104656156716578019351803036599840501546284081954822686805843087255202032828172896027083615953547061693671880357939435947686868591805137168949619863067706011652323764811070116144231720714117860680612342112585354002580093720438774049565311923865555099073779977814043356631469154957330086454071887929412028663299587183662994835540483313294810276924932678828094620323170243783179541096644093559848260557482159378249419132007408476128902356566090391949554926802055852247143039663228254705593527017914253895637140473790298759706425274519079714718531526243638254892540208600100881477247783395189120868901595397951709381074547408122911413881428913550409158024200990349690694575730127433838295774311839102252503596333372998089532226266231563778258860072608856647161689397382312250069601285259193529689177914449278972914689326717465935154200086397658832609842561743761236517123005859103297263376108936117317682532422081713978692036733623150399261777407506048581737934954320616487344397006219792399210313789725458667854861132651731575483390279119228985283785828918627766855089398304568868745035164726305877567558009253991306505026329896711076691146126398583851987086707867785688132671725492700005153563500684375808296970366871813555216892014148259293539719384390133829382334662919583655844343737266450408168149651077502513812520058500451345171722040022369045393513203979243009396471025270997015810622397677301593475867349519665896040185709192250161358029870985642104707161791427103514362473989576228858883785309977457608025118582525224954008732157053426782947230864047346141016840901930851674938067575027782926006114751859289925460328675545868699006581179448699072939486018995698203152283567476680376078905192806132951658974144704219926811199767380787078649845841795281182375801886602969584037748430807442291075438494630039927823516248377760417328121941184333800254527460111364040037576508046129233960320459689284814172469358115470559215326711598139886683612283209721869014333609242739066438274823051867823105818586031546806426123564952141497167554973592169351978215784760466260417748562002272895974150148008725175663796601548983949853316129355815387695714574762773208357785590200966667579618752659861534835275044897084076755131753704202007429969342516510083760065255374340188353947014384722668065437814877021612563896105293199593294756940675036179534186828882716337976441614356851764232967370688513415939410038097398243223452074188126688070977654213104753954075974138330068340018267442602903301249588054883458079622962696908715646821370805244012322861551603851949566784133524633954239997453778834718844326699175270222843203995259264267294738382835945403892170731741776948267330375082048413598996955716915268363194522501268494587617265610867366707370622465070379408392077541228737577554026552418720231525030770499805515520631611009813604652668381428079240108143397935791290817077531414988654098629438235432109469532034283772465565319524261564884990702155715269362862987719657046972563129904044790783728684067817671778429474226367034549452499979690918012997016390116753311566311246793198991553609251540404323319542651584920528833480346579058176979863152454772527315831275480555900604099418709562043929810887977796752373151025745323757796724614921926017047634350164769091079210607368003942631426183165581417114530855366753529403358206855948672186228390725830632021780604776171331693019173157702785676137187535994745728809043698640777402500224641986332505329280441363442353299909120549232257874125392782549846244083737734852853333149646791162361929042784527753913644150756879209948669106088864206294684312196036350846042962903065335518017671668815542033406122757659315906761771495716592872284235589116231061759641047871600707680771794147759186148646814909592232164176595994143042658211168429045524159595109064518334577327369200643636357006624018921924232630610090335371463738277123910597358043183439032600611510794209668068655468212224621647171899889909073868822351926253368431359320728058960764544930398744132435472153021236568049957652064366463876057090648579323217123972397639073516965257280333843751145224752964443368544101406745436627455190750815823434294042415218685002419543892578575478701505513994841248928214069861198685643151285485594365928117427150235561403920076135840204683159558498725580588041422843719275992196935486972983585178742015319269458316906578549170467249495717210496607580167970864729355111663054729098189665047383087211529428946328214317090868708683845180788076097513798676972151045130465368750512870269760454605236637095169875716539416392000156422901463691726950817410291142908270226933132595355613490972964033676391149320127659611257704472928611203538583279790635838192634706104758146647211377958489912579785995192634897460446373482249145967790546179647427308447858619963933245129169252400000536183790759038351316176933953876709750441640326879203595038068467128578015996356124077086981594268900005807091531349534954530681803148141125014544379642853845340278546456907181606232901863532463153280849618146187643942646922418152694050559594358279823825697880351014657919846357868344513330828184960179809956747011148976233568228590536861364956850778574285648486026862662967747413821449024019909635489416150892548081064724411383308775286398089724154222101046654213894190846992166842669472865879074143734459814610519835515630476003275524587596376315947885931071407540939899531333548633466411013770592631332183273731012320903038230817603555135919844700476589592648094024395768359957763011272459204943197925997421655773033224787359351497996886013042408961212618457865777091867160792868318396662194669796587311374857457360636170673435914792826575247755764302442000439432856991951606890061853869615597029718570698388311860150456797385740689729259318680335405338138808967917523628286315571871025232448338731846544239088984293260794925170083841444733494094955934486592038686959548086164163933447252934579373998619441583653911426844875423385248363882214646060864941226554071047990699488719394354456568854330552324804984578721312786083025099596911562446558069986919333907830754148214135477906958288606871668470435896313915135388716946529825532756423909764647667768369351449762413228751099990243487917899081085051578915314361533898043864220028632776700887166009028421120786161893180290809003359094598121567295184716844440797409562247565969593603628368747052709821841127072270638272866384668998891262495256665136663469317190184384594548668545517223739861358757205337608788860114513617690793901239737171530540231107735282202289303581652068918957899529039683399359451265269724899633248606912205336828813313551099116980639768441203763735859416753815526799956515872103964384039562425249046207100067521099066132337442116679958988178253589445952581053930019316685531169187267895553668138029912663583247179816660297202751939992470016184044230987934712173225635563156936088599091883961769262657395573853919206905823743987751013339430318262211482271653862114916747821320145767949370276914416285513114843018521494655817217063273374170748595301745480152742877995692539743261480179492291022567169793549387167729254230225246477925828846997887591355923074767716195311953049785781035592696816988412849570502748865692414895160967427404289086576031615213904423949346331482509817633678581490954762165847882678814198270977438306137797497798222398023825603789168255579988088312814345579775397422209316212246860424176879087765804587861930312982678890802077237273781963817739196539773743348166453268597962470140648574390239006730945981898005043722560963496052230706907772406551878048634923985532787611414894485020898272633172589542127850813086652997275078839681306436659495700834980966408984668154347592595590103991051074353656338174085163308621426866079911929041434182769209190636768756107538104816406088984472638164256416231174651427992202039404144154866745361423061490630014953647489146436613354166109555648195964381914492162717256807664172087210938666373790619351799688330820604333660661680836499480868362451450001330826909853618374922450826233735905552767577846075993592513828951315161132646138169599487530120064155547691506216790425579622246033751517328686593014208891268995427137524860113367413141902544427990491097530669812237485346184487315145218452231183026767909408863334401766631613380327446933497192138294420589225943198122798085148118226480975557539800335751460964416465960778775782670627183584899225182584881256456606523171136063616985947516936955685958901676763441255714523667148330358967137319197678231137457239351292792209480482488470233955748923232824738527342260754276451387229293819920834046564489323107811059853026400050811054282348713573696423036323333096992706130672376864001225402884343296981696372853707424282615706563199130216995444764205664349032358467727861227318580709370791456621380269557573853875948213433286017088642861210748900441723927890369886438260713764684014814212078000394432531547683247012984898175334947322054355535035734117719886272975106708477195386643601130700052548276482676925616287751448990251224983045757980237263678814976540295462516994871736745536480763489318027898669337297312343032483895077386128318677358749459376597743234274266261453005744023040177011478315286275649385901407979224540720705263106416294000987099086280182541345190232349982384892022986556490853362049025401639173226823463456618565244031826486357915344296532360674797561065422738876929951560913913790316163492189139573675268867793313479290081426651888305483603287311097722161897237944930341747729405613346549253336354065851627840369215565052714999505837906431625646094239843544349913410419109637668936769971714165879744090666406873248018247635861753633974820275652488321867175174873606457930107023193140812656887431240051909117921825988618344500742081733519456126163340571887820540698668142577537057401297135364625735217490722651588688848701603244726555920767117254208233887824508877421812906913580880313530677601617663653663570067393840110433370811509439633071194536465046951299841462284561652442817724384890475240571929461724505924154047849267249989778835860392661069412133761103983141519669376278350766724908663529355900526003555947839193521040962974390882216963596927988310922288137649668682416446838023919819654346997755826968815604289441153417924634575565564863491750072059769683457119771084985833403566760038430429788474541150746399738195151164131285564385034366166982888459794524747224412364930888209960539647433505141129068071253054219052359475972096708561739502344235020010824999967902174723354597583222317932418136372853066262142542605707891474100466116300945289363284469965339747652705103030502976882448310293541010757988866663906237491360870168831411019766910688546383185764662416423388362999453679878825583470966095191985537656891006262157916618418189944850366501559979571240038851312715982502232699919525109417487255514710520346054574819485176181369715074923346895994939705716889951338762760187891156401898809554806361060942513532449857813766171400655728173263908390265936128763396883810286763251849372916539853974361362840626188351354263389409277859590125090051062856777331210020769110117896959406729619097323154006339389833932186382164995541620656446390374373018954342491129111763530226680814608222002703517642794363960031936581782223875772855989608241463770215862404587634491514883465016726870755294954005598833191435470807846848251388900332641930979335897536197263694132617959147317680820431084134207756012410371152478654493060199301927665886797596694903924603174557201872419118508272395407578176896628067987378768170339920203169798105193395289685042867932838010821191151340920838895382861197227956604911036111745265164969076979441826991779159478009790735515094552268939494290680070338272476467732133708934787063876016077138233867250509183946104136708422291693856341585298877348667001302157407320139398786232291375026843386979791194955793113051939870264640948833450623325195444827141725751846210095610681595544207640450429424327885638497809561730030358071073613767232311942625967176039378150889126294264487986318452298400631517648496488188608896718503140612517351060336793175084528809804967176502919099694079466991996982656663091158501377527087736346206853383959021088620254653973773465962707550590812616947517549451003043074527644693229921325697652309169060925373583167641348852328552142643815927607738664456737993493979582989076150252986981888553023229686587669548229144585363593823568172362647045110769551986074967395700298848901750251324420893440466866895695591087853485215092240717762053452482887109521234203881742492671276859594210774541756767769194684409735262042793845471309497195596870525231680078743675028778750485395070010185951162553768698779003430738637869098122839616282519639446541250858052141411974986974415695066984204751987028194547469252231328854400990218437732454718730498003909672984758642915340982231578074994217026790645030957704772977123335524812059962342962406227263245873534504037430092398305719197699595404423562351828377821549584970587736094016917052582915877669351844317879536958889602402094667733142018636742561178497294268426541436900503154900938944251167884906649816652948965374205508148765218453897634714648765845947993340080792367342561531728628100881487538942596179014614760546477517312190525769598722030334195039616559792138458655726491284876405155025617052412817708928517583820843771491202700260954423780899823201668615308450049657026315341340201263638687946589672873822224166373178891351084621711018225313206924029325292572395996577342157846524157468356560398051563582855798967955333665893075530192067957489981186813503561868537320649203406137325866199438188796455754295642405715057481863624982780370208259103151313480620836251547600484173460834897893245898254108730884719205538514298637916402221058388697941509753311500319930355593263878787705514180977945815244581299851825929051198842506726457592168240019510900795006248627053721704595612392943432401433340637150120217793505771562620742143172669472801486334932014750797318506389892689126949715105526230381036607147457669999851378195266965090091322887892348457029790251430039156454660938242988453487255908546711869720032240874725868450967389726196102912639623963775945393613825300702737267885417940758756735276021209505494757934382932535749209688982233835885199138984761492364362966711079308985501940394500057747829431300493968536605247083238840285134049871717556741463667294283685915131172478686657399715101075521068525579970296176873834720358756655641942789881535237836264490592547330239311023945471995259150848117487551410154358151272191191649083158952158751909742915184391795371625792499588699067370236034993720269892322966543677558350906888264180950534795921354744498317410047411919534242929575270000632289908797182314312737247937159707372334012701875116199502233634234207629631977212024747608781714297119696785787938150984199854156066973509305500029260810949864210908395182156947922630246002973570263030048770959784663780923298251967085126799639483750620192641334082332074288236359173429708319276989950589873558126365379478730376553066188496166294876908401395733393138440659481719627210773913253635912476054272658526121840264794413866958378875150302587570148865623625630719344079916521445278359707029399075026393014711937665962861886824043736414488934889125875886654561926893972137077138036689883332348269321159894954112574991290460756993217547583609806320789194466430375110420274613518004130757150507102099280486241149943669266295840163981168903977346410844282709492803005912086527508993305061221066077703122380468760083072663612341346857068927816858307327122000199948013942787444312773870610936469182518661541087946712190080113692210983720826877791193567021803513905577828712479873412368094190391748482800375984706829090588689534418878554427636416870913181132754814005384632075177308653646637646870226298188699885292572314972903622174821996398982933403259064610070997769974062634642563077262007801894889927567938500899867178882696679016149627525741198685274784931185583826181042006080098229076086228278080157358499872308916449503089734171273101621537310283854406720397289866605239324392865496513745497504202400544084242462094358301922676753756952981383186071174325576560272726110704160996545176579277842949065147456425032025093243805078978502212758410116745344542373929489513316140235750635611595873026737488186576639247164878587813910961343301120880827532169543876378148683179854838002120159701005162743396738951931586352362006331446498254578037313370222612835365398634602569213933942102044172140608353556739105863327502191835510593036909571549624604410038470472753758094121253639645893061309618968734572969625933791678125658501034393870921544751148254808531038106455440175872706249652474014398445844770798149856601937064518199850730773916500697161802554427066732974812539709546038934220079848847661084117358813439731866488000853326604113002155824015145633232538085178850844272819699014601048475548490230043480843482690675476137693921676062453435276333150406501298943345001197266302878006626057900544795405619910167445437074593216013152600544210007016233748522769470082372436342141355858448676934948807484677176830706956125509795608371113481031429444649113904038756997147160707171697290167945316480202816108158382797912005495049934236426839417367161534528279111169017199366544867834873938345282319403591331942490392363466213361707020436789946698711559391791499404932549683233869855657439079000377860374883274781848740670434531076703033611843009953994681290440517768485387984895723301820007937403898899417094991804412397084922459537358909975515689717053631421742324330123705512847955613843643503083522100259390199173446296656154582942325953896351779569539196848023854426125914966682119220826297662721204229745479521849025191567259492205495462607165528582017020500096558085782131278206283732985572722123690205915023652449950640307399485035587007199903061738345408205859452957190045546090572385984090089712621840082154209251102013921735554953382210488913829246491167919866723637844219979061037410949189893509343679920992481292910233900845799229860248191648307523213898732893685745828311562228813229137068334773602974662565483221653011550295739382885294846540768156088352518501281373094839241513704118316343047468732600900510603690158506160760963975154361279637562993253752952384734577417891104776453837941900733978904473439395237399000351923144723017010543363871637205692868100812588784508335342162019767548549413229263747487959464795250277593724918596941455962823096957458303341939772039364211089632345598321582343731900705435963972653675466115767518950865748623820175274942398908021639202842156509174420380302468041396472703972216681516538617146045994380717636038090093029857877869435563124436072769998348031018026553927390868346985784383561254494653651593684272419160449712799102390724596412966095104279043138722402080531085420417102226196172798499381250282344271620638091090760730076663948431409082776222506864578177483838862633297289168483200085233233884293134339498660970205774202785967426647143739337704696432310755459158604656095208301593911193864646913009947428358357386741975868179962452162710360718023240419972850477099070812148139172594866118482834928537944329343377527062294484471620813801164626090181282549015059337419949772205831338200339475566614011497067112461938892785434853404666171544129757607508703291541975036900882006231722824365104015715364554134651701471659581745964439627390157559421503501642346756791596925262618918964166750629437244347449095224897367769680220073135422003152169484971140902282101019759817696118347475891458842710195237891263902394782808481966720027399848889295082181889197220910921530917519133353084122930038625364267714047268297558864164449238481299425731778612205005505377632838505229948018075225927692632591435362534919226764861585777625536512406373208192328635652070656265154614148077073969339849152123278945223233800114465359215889600730432395904067264829991758920867982177607574119037285413339866537150681592467715212521765075255040938063063483732363238940995780941790048462568289141450705043947676229405139808132399330516027756249725127247312517282080580631552166483329920844787228834908473505631486351736967033166538710076237462891360137475483462097826708476024257858611109519094287994427649982321850822473686406029216699173358415491529264786951917986951837340413746848973542976426156419622367310555623271141934481060601372185521383044793407336545547841021912655201467154187033950262338761763912846604298145936366511066498256194737095611473516636973724769158278632120867104156763679186895140407349261949981788702527531558059276990615461345789919545375017017925647768658999900399668558341849264901943363744631659418701495969760081749696439827733846287573418009843750672968772282904967640798016307136129538716408868078884717265000591482129059411896815602550472816892555744068058732793824837863701072803777426649610940430156187452981785112761379704805708489402675193271388510792394499141038307294546253203248337997602636154419850815483247204381377743718752810304030943482156135296377379153636941044114640924483260440831482225797648629147238636514043134550439658684654109039943095504107102423133127340160495855556852099302012243657480998435078623205996973585280869808666182336176805331950063824346351684534494023293767602206489622358336777307843088115635086093830499389704844213874327265144506936337084946919495969945790366615000744325742865701382987898338644276867495368622925085542563833725596738473916242501161165529688338468301131053065411208785251313105292933030089519269976460311533329772870198630807967047742352325017812102132058834658920040251441349048344031807595746742879099339396271213419987515504312787809994930686346789492656233835867538048606162454528784903877301415580020125077126102040932040936099232369616711196948800615202591651482709415189298060500853506790075103893582626710968814160575637091096872191259943101490877672494968918314500307055561154058574099544931218354651436351531452444066265526954086622008503247507096865945299361311915414554227502560651717515974441987601459531640831566007366403397852756143985869714289258612310562451977741447581086032922183109717073413142744580575360353039750745001736167754650075988647225691562796036728251816520499746230198710807817633596040463712297921353084028852999625382936771634563260236851123793853354635626691166728732749509678245462941059986364250779053687007852308436262133213196816313160361584196468901620514084433683125566415222525058156961726107129510305143787259749150484184198605124021472362267702613936364211644776073168037978194658312485330503685345353127432941199034523407699184272132550747073326013327757845395310887075353583506808696364173823660813229160629018202243709399059024749560730680609522104225476742764206197217363905262894372163556194590595727550338586417976598106343684028825851189123532776604086697352802972820465861473358666542867145167522502992358194886540081722446282627020234325405404602683341069065290582202751054693771918771622793822179148464978824155758983998104270837173281257121761884770280859077971296863267553737969647920742541667238093646358333869215772000637776771242957387068262210305521381825316869927629177943938501364891473597503152128201616282512544521260297230639606235761707959778590659393270644309339699025031678347312080035687135193830683611326294925650214646672685910561033286381049048679723208418338657607886470027612067987769455280689351709180617935620624918675561091063076004999023146060605577613089149830073048968886421486706360357566434412760128932589408981130211059414877246824300406883147584340884052857916857322452291755302553611412211685832688368303473243477809325206756375698326101374677628371372350698793718134399715065025443293192778903181448187983057835476255212437923785572473490282258454779657204952093560638418975765692833617715371090674800571760955365900784557641272256310643076203361557506993485389886861635188093052217838900493880683667531239802760399809032023513115412510688580399103169137698308479125076882318384163963415915276497077679230164304682777725518453803503431089112804087780051382950446906163758634650461889187270171900118689521814843041885990588482647591099242474601707026368378109024061013292369673977787768131628192265249929369345817414464740478898042363961247719133426723253008824622404389306598646966700819480664773748066311385234288129070892520575494126426748784903195787468947399662870552536291926844752182942589654636789232833442073446275211949974429515831438374338092447689785519180131922266168642570301551428822497550751915655381006582149416569472745644408494240769937961723156538401417691939648835485290627005168543108756123679978858622080614513877527381084296013543434801588109790564163653280480550341992169327804971367190237650646309770002933669283419207324719522144208688150110251230118009511396225489294369324248685519038410264263893600209985740914519760736078610242727097432228149577027341280169248172079318205718243324209465193444252590810884801100685157744279511851099827789702648213535215403165380039559710512069803154051882932575514727345725439760151569341410321957764084431874018668921497686219577433379928514267643851957515970860915590963237478284223739646817403285223259966553072845748070941884210591464995178723651863442826468145530615436454979031000196228900193193542622392181763328995219260308480832194756343130328369565945932245285398535389387308280803964794746647068945320376378048550284863074961930553238180798199416636514251148967224512270646877548807775793381676524894799809800309601215940925084766799542446095606519320837154159344812406412708867361450710037244884232934590104362592862742677210503252554227459760804031997226388485778228727485487828717073827069749361530270322791926299678075584607706870231721086054572310171849583101421226431961631240507942127388110461008910462234116844324627438738354716034809178314586599629214341410580104817920274549025373704691932005135477719295341851446681994491895305392720036283332447592766087397784550610755757720370153342516457495865520776568124998451160874213121114132508017836173814754539991019408812499913624462488277961069237640673641005598715023563600446020386400873036765385505714443653297742492719288644255503602775389255884165347119864334634262826756820308985204028239703153449507979595697599489494348175289800623304206769072014775598439956109698184411007436381131939951299408418960635595574256119359792407085142465864373586312017573933300660621652420889226802130314273184019067063989547323847243773476166961541949363240968701008570035050915467229895002117570857847940607868189784830249546037685834234036019740215807645772910941929266769282175968435991790491829067342555012640442668634880513559180381494093900871919352305765723741939244965262054985941260825938364060395698586457414624748353597815539473841978862252091978256810009054543950927701501255874397981774272082892626371213167310895644902779379810776209657910901532249422786285651172425946847890975390235043816581640757554078185905818852203837011946701821396230440866931999822286421606242172235022864821762075498489773646860699921791054081101931592471710331948906327116995277555247567105603784134536172271651997864733393904866346646345357271526563272936181594969816335602562714761931082224996161881178142898252466594271548720576618870663606625797540614998833945938057990941646289271523678972360770744522782925338090951526173202258160038944914037651294729795838477649960516147327357399345658063841035096087250987782550711349413829952164646194661467987949666354562740731357470968088846651672862447614147669086938091970930379931312622140606271920557234039023293551120324425783565507590808224833215574057621296337836873453812545542220910689336389327591276960052517728231658403425772260873714325813136443882711546625876920021546299444243174043514578106497736831688305430044862191216161418739484670842006363450952645938696641547394219717575662329943638210625529379960673154196014493702912074975000077070205152289734622695598449914940063240988972728797173514376709447827471041148006755012055374613102630572806755131634358061095156149440297288892145547019752496880768724553462778958810450171061898344351743913658062613914721729357418417724132037633056733499401244873725132748274240177019038506301086206277038547674096092077790675866722040268408952823101985182505137205378810714965830677030913185975614448283262677736171584138032929379267985658415477442366077758773073800766683948013967630189805493874575454899806512698245541497980728064254428386023815595001669435866317517751459620257343740382196379037703784929495792080799773747535654700772587633719367003863120458525080030206065494093593770851975723858923993018518560687133300250436123866342903566140314238740866018522385651837805966675690588265772199874515212092641802881418693050972091117751804180648004514897496373850701053932272443962360016641910243614009146719746412727900140981295074986897374140536229454778010721823445085664815148698126391141209052195864819883211142438199083410677955503176420908888539938076315756010156840195948118416878432452609706007069289864892781421746135607993805186740805975878047277937759803084479240130174728937887626149599573591055904115702889908195636381181245910104773125795118904071944004891837699573400069004997611324111658519960573387198642499118010438606568926192609195993244433468229492387735646578233090341068022417718158223029554402545429470202336711533942722292470559567766090047796856423660228519683892475735725768766527008500264796563928223125464162789753689699218478301611569799536430847387817170933082597164760504355177203504970519434988525575121343279850219541235480860141469845094229810004400052164556854082185487446471823287962496896493636782683604731299958841526445435113244937606727285222545781036876657766254947655663185587241592013940383499018978710185470146983129360437176016638287512604478601516874944193630690976065419649051125085698214097109464327401799614440482928999590479507594943512761492957227789899309694182361771525625984305032612410054236908569707145009247433368743362680458110938959499263025508251071365706135823651693868338276847036666771715381808488354187936790603954667103696922266597378613432368192443913108215124415273605348884980368397366463609032169062860191763278669290570124415789305266867061053662809225044692721604513136419710442436067385728521603347300593246934976696180045783668293698349711484076176195034431837013315428272569721441336376431206415514583199635785949500409544951429973218655232621472389822157401721398930101854426105868671871060033769625866500184382345138951899585006743629008840737743595376334096021707155137207297723277105339099019991104968982948651938342743906222645563874392483573027969955019338804002213704946345822686481616719029683026733296172400708694036123489878522683288110489190172412135951002773920162269910615933552613658378621024485819097324299367034408037640759482563457378252811866102481191363468964193286815719806058180494417453661065729647419981238613916449637322267406420205346404718862060603928809806306733546335877823204458313228350364112284070568383542430569945635919506926911275119826557488908365170585594272072862891803869134876738258265601837083964658569037882117579982825136392331021600624065056362618156648015913331236127172078672644312642000910806236400612409750924476135719830561598248829886769869411910701370462743453105317556515225172429277391275338597553147157290980690911327732191959634125480402815871229672892191901796507739980987088713929175527543491820776834258832712516559160162604001785435388359441230078010106545253603962388829744966937727742507440110788459571849098188117497357084312676934708079397240501661724931914501096667329696226270572064597480711135723591655117962470500622263698528077368091554111333485114881139222024800918561504407389059632334329855468429860686873484847867866865443033316535850855418963815837687195113349415909221970914573098989678214866321094168030329463904551020245087805751265522894348304413694805287365265056197879471509670618446442369936856664399313605589213211026352863788937198944155549919505338381350259984181995013883214959664501379626571894781097195039844277150670626898894784214373666504455679046672570174387958511310198234594700856112909464388243559538078872846704780434240344587214832043967954670340428344023558935353006699942054339918315463369870402213834682732047294598618305873699842575532062451732453148058364680053136690656478692968508984313805435350934852274003825093881323590148192053816126685747416418597292249761955072066435068722518265100239098434042864713897269191575875907107700145152674703033481300787859839509660623392779592283341744195929810632570187735347476321503973210531951107037402380038821754069196978131968467279153274158171030440796586529207460491902379710797491883133547558267935921845454556522067940040832510843084261199762229454600049205913787106518592649851694095012940073407926385014651311264800691194174042147169980068696767084266074328684056830813337115024220634540270145440475120749094550055980029320634879906271168133399880106379373816519164429857215600117614461362419327677690639778149891109978002719934900771654383511708114656000282788026702114854725226921001569673898880664068520570992245285464901278968812762074707835193939210325805700789772827269695123579535859872183567353153300730232127012489813691803269073951993166166920568977765121559544820619980957584702306566956529409132954179596608884729672166540054355864296519304803752729427578946308911774213693085957253398340379212217278008557820893568632717074428908841727149099675177062403702447237818917671060270046537636305034032008386640304239462523651039260412718457063943930588232213733759015392040095876100375711614225019279114028498436711149370401476963598117797050457379849626490534826330226744836092955084186848706026971673385301388079710839644942122355984825546347541236266758151940499857191558296359860720772154468634207293713834871261960153139537596592195830584273178323444649635250353569579331199963094395711813970023873762170704665380954053651871725644422189242130508566049762906611000336572441180927934629516373695519318068290022561122823526350248005646331551752421136437046233630682134616651178335261128795191757551324767070601317153119934969011555251241239349288682038622110889280510394130181624746339428487000092581143333539758748359063854415436295805176583875573145818421792400102492859073204387311897726031421463516883135994529833691893992316859784021853282650600078740724487328005644016907392778970383932950144898676613208733776946401800764721026386130506517802211214448738473380543864381482726608845695287154298142365052933362548774459997859385019109534862080620780566010960901523067562674081782656173407602661376245049365761375733340831853171082253498809963124742623590899886241202105714277943363498623631328548975464655055226777785003007647616219910671991660767650418457012282714302408504828843183929834467347697574782217297021339397270079684146545006585614101261506696911680251508501601849577922708525451334226270753473294887980500263752306590670484519387228079203858146881320304278056612362283642409365864997089784591697309717936621700878468612547978220741724140682646074213461943600652596086101957746682789813711394994595059856166645108909598022161834114430755386948255841942610342089293509849043871974448124818017831363599849346794053283894357831432558981265748384857930214483192419894697588502792833919543324347887453798506290636303050909494473888514263228031044027099623900249713839572121144882986403829878875509641725908765978972149054123099121505812706044141407099692222924286797580710461222422336086793220707949873312112225823132148450502103843902500956784082518461773632937866493583856579984977529390467670272420849175638674344540849588561363365211431440311727276061596652539810318451902241765251556734604320396646317853670562797830157510479088484429000751135576415493321798392832645243929207679060288424795440200105043898467048903363260213218136656109608035679831605875918994639662578473233996179370801398170204723458480035558219858310907970256870165831828956665422540972921335782655597102498914896268010232881579417651765194952430515523436203477427573232601752782865974183638964411370331334754490485096859145035350682494030642782955223785890916166953075886780120918326001815847460392585393285910944515611134317225962256756095771100336113895980839192855992990214293727595972118752041890335249997381504106791302121662322305615758522243072631117773141672034590128380463747038679077720656672246845818962718431899218459148283023052000126584475279153908025418081657538501403457578446779988125224563488347970390998703956520538235366361486328799676952100208365271376668705976663437274763108673028078791888656804116742842022750651148365438638943866836070519091725937442040331210139802730235863197682019534699846756268862726744518719947057392826443620996395800094065405948851051652849536679357995908952470647151889785972268721182589298653689735527896830404979160446994168071844050257677642888136722834671117081322448928131602222712054994783371137929110874157840789479467958820548899495339217712964033602515444927481857975521889157356077768317011373771088260335533296121069176417220408193154555191958589903267403664591970010551524278466200170782440841267137993202222425464003769479476968311431453046673240590446899932634711853332456846508170633606787093132767857166114810143023574364552160962957441275495925027142626231329620463596427770549262895454806950243680915813409992577794940814752309556361220235758164153492517801393440119110790168222627935325869181843114893282608698541530203819901177283369952929589317590145820448410111714614543730532604404394714154986058012168379202218471097633612880191676733050852559412857943856727935601904163648410906585653592534649883377715941206082259637321555502392395768048554020950790996054097652749825040063121176694259463789726606509389166049293297706887661796244773353103947669303227476769165358621642889630567100400029832297587538155809938834996905104205549688654347555533541043996585494466047568931910889429184017451678668412729420788776073931352565134643560737550864979381562223403901198288671821145265982276505263937880125385846305676830351762290954044533761416801149959157378089911165972408517096102977560464330060568460153757540988842330000390689890115688990689091381977456683508616636434019169104536337894932896631439843854022920868600541182825514979508887899442937547102063810754494830758372884333293797411884717075729647213007716040781296629527775067362613701019842270453169828076546263190196385764761507831691924459885443747352295931853530665457038390322726918605926896738734294230500024849351929426068317698130544269249942222424872647246284775826420113565077739495130371174665357960193004597791011464284814853989010268086148157714432349808256565708395926394191275185719052279274984284016727606963176843661909084880143656657947359686018713018616919664632869314557542289843009441196033276252310460923143389702606250865940739965555222870971726639768098854882338716242553212860877549177278070630214781966511919346647139818194743309457405157178599812150948686953020659006311076053397639893508474702678296018358297646555141349749429448265460176578816473032909809085873028878268136944577794094265946534410823455682521811470932339876119379353192496389725679823202651499726829544659126837959805351056714562559998983112545168008077781221403103965781452910225666597006469130736527246143445262399686491859896324025998104908759801547903359637956088234193958565756923687315727305948196861841912518548826616306758990894284049670778317716425322845542618431482812810888087205852006620763150582668444456415543115368281998652613412099473696348979291501622950189433672404364292390236047284794116000219157666544872030501138605142138998421260382481641845607547671803679086005690016289149032393117791778006750859834368788871013843249046855522199303414256341901562530763362007379983963087857056105415402667289040608953444208706723405900393286792571261485724105145945796585027374511447794667550078242419925158403464576545608570111472095981305799803404775870196633714567942012574676190658081384317388092411002274969338584270085065606759700812188569491358853684310315849364875630789840950071755379508731323453612884901535749267445917929126940747867057222375082605858763680887159993607300145556582517671773324396090892289215486127002232729060301923770493424571279161530842823782609445119442299462508951640373724803386747672011332749149865198974104173978419121414771040185848496884903661659561817434985532718893568935519627257270933494461551793934634908560932185742936526722132050676179333340984266225175858059399085058771843208944296121516474843876963631304247932376332612304700114259197683158497252783813620051214368990007729636825724614490767779255834594331062441781092123719404013073246955445987905545551936165411077240841966474122629161145456791461308615220149215561933873237202011506138717524964867986639315160316760009304265370428134487491734602718874546295641114983822542151159346986305753343470063164045072509532542058205190439328540946579535453275341558309797619847476101055093097940526449293083601731572471588265746045464325671040251530939598751748545464451728426864290965701802524023873341047662172222003706097238895124369558814802223320595137469309950445694325514195577920054095822010716949082535988134267400469638144343438075400399136815728282793692509739904923083607242567936484775914666641915253562848861690544855383577101032689935101060924023852065061804972960907492409249911965328675685107837669826389410732960104133504820678966921192631762784016292277351246841855303460344192573223315235859492687875961565929135441944652990093631897740233852500951369102894141999474487419518089697682137412183171755862574845077450122151376849934166168125473577292935250231471446660682485747308052283679448971425637479335637167105170747790386640766913369052296082155290447896891304618261438732791550096981908541552377690184095729019834128808304922497462209384418589263174353545275790524717986363043076196483199745820055953920788559176767519935665398717014709442917223712685305544806500973181415023041425706056985295099250221904812656524885597123859488953323709831626936126382054579387196546921669801928365838217026780553904918996445279219881424122506426468154129748193956323110781585345847670952146962755475149833469858713307248822287857507169830792906174818067380543939020541357603398310661637098822782905127116040988324500181263345004507717498198439944566543787495423197281201873029003666394745402243517612788836882527285416135274676189933808291848872925687159156960021587865655403260159074373653522787925492950672751996507895771114980892583363888579250421040943914160300212638561536935837436353093679566965926672758234503228216296203025403218629529885403063682098031090902737394280389237320617695242245433365655718372944979030191384876192699716367548550993198044580269521750547673971768264874715722862685835061648217587807211545189119348535644690309710192334759761015097723504302390556241940973205825789473641540103472228054137275965479660730648942630056339511781806346512801108503086636292393514367241645822044879364928748545639536466700535213528337906703138875102954561842966480455166597510708764018676627217972006021968535254319511662897143192040874726316892714633445647539754678173582755972415998495293211471782655294444032902210180160072939938680644572564296959681064813615033533819772815253041537512481985080632421062836776176688124527993133589817305593265729601887943536388543119658670993438105511040785751066716346723282497454740006387474976332759350331041080663488086222455268684916562020089652561538384866355902694298262218856387694246388094921133259557947927407809912289057252165160516866741582181511751447561528218433554116878726567459924926272142625535964492394564065390362182589909748984034419575629525609630357362384400510366143659817634742196414005006073349996712606448671810053433877201717676346474002873757893637260388797911729173001605164819180114736564892015093114562804161462453492991393860623001265155787351191439531110794452508645474467825723627986138358017458235612908751874657067346319387724953965853229544467495667936999452894679712141564209898883875707374187896850400083851018111999987031462450142339195399243536549401417369368859594989982494752005501100036410135647480828805141996892773113990828273209807966028565200930517751817722952447262761097076038300131279342268225108166163648099786710799193737078548313293881774132199634656191993910991032585277947530069272646535927406117251264524081833582178275608411471578081259865411029749510627226208566513780166066251131313468953099567678432574687149107894309512649075830741866018331636020328064849631831037104682597131743921605548950193970847128580168026511489822886239748262792989377853785898010167594443975708199002594068895227293506085415526944759463004339150046808765305335014255149695883822538470711524073517464920592405407714482702314930830092885985908602225713920706388400439615115768879473954454300925316436666305420109657848498751945741168075501870694000656240084229415318294664776919233996115655075390759488629005640105450448192455658748165379004403845116062925349227263893339224789519623567275794823329938146390591476629770449544688006497482551741635589554864536389774072439668275322262602822048467033454275117697652856201499229494028371529802001139786382476423123822733977658861007009986895148537913717818862961626612536731539690317131924638476416840594429771925503831120807029625262472570033577918573846054999850948782739598898790310864009915031354651671785400234167401767259247780816497748537928660383431968284096220655205548991180673180511365828240455190466398651606988370546199677848810028774865520618202066495284947559191479326456982979232101082968424018790558226624118766526812633046076291138227354210328091416573924620018166796455805369922899128950692201368613239025137711953167759027313809081864963871440165493950632261805729252251616109001202467846066669032068226510502310232432812036145361726998339442296503171290451237590577206852242152832233042883852097050758151504716194044921696011397911767348762257191393320896953258766535071020972944901456568744717372215511519619437233306732548034737794495623289477421301640282091352486714001370556450975668455664164573984628513337240159889652766136827107469089077317837503140443477112081427805878153854412108863500269262152185898161133585163713685562978546090560852758015236780195784974641085420225057118928625304350460603424793834947514487754447568345053774989051412955333445063479962780418973530645821902479666867581836091965283823420104388611156835849144412978439404715624193212155379201194109254522207277517915264906051038286100416124799147974758965275213424840545473181442418980686481649067719585323977680358167550320694919135313573870092943653213905229028315852214883174370679136808481009674041718431423350259338897321587105715530528372850426811246432088872205724128888131810037493484859967534366608290863288668557188447642406538879580918554117551835065695706280065246691609490795624108947969784267655344635929693749434844793248774590737989411594621306932598556582962126590368492119981461014602949721183466451931941201577002436849270631448468745570081351942035205052980034941212609116770365663532326375693247659946908949904759027916629145245605749566388011691449868677183914501487500682928985498954548708523032805268201297400656972622847084432172204832097305107502096647508095424491714284469190862033837060152200642955105506088792752763043400342690294607034933532152250431033093258702964659134504649456556395591026791310462697342024565646895034132893386451087657560431873653766173080655546744989609924641990306562084605139739700470833212260645237882121066373830125976757791769595539366619822373272214027953549045123592531240408958820042178510076634661274482947532952070469189873744948884546510013196231160431735489533365072524381484029809777420679057803826959653842404206164031433048930583440851677928273628600507981093479053287586064115128615512263554417862827436694355042006559409163783013312203225335343213347388419721038333365563463784297538153406244757691752713671823154336556683816488973151841612257188763214057533836370975394324992527106176257942368354628545299786482850465395557006988154428614827391689223063259647182030987775267342171165288632123360518630960690968445130900327636274016318911152079485787836299805360112999461494758233155428247433473717850771366304427793792958552302493054742276320790798711544063084948989671952354530978977079258165946919238712428818038623463972778138779070162673285461274337233953855103104411820006809748117224663528993284344112451015283926001075364708033396683946962825404421063276002573083808611546716783455301897583753603511041410863186513816828849158754924278666803182132712267609203753172536899474002552777335833213570854136336007802329551111829531917731164687410847335432264847868823883169383395496526289870018643391812876102165211811136148897050188951049234670037087139517951024073240597897205947641265982761266493172444250183982991739508019559452613759323571958256491570948714233022807273900451204089036800897124972679908913115105223980042604880287893966864205034648602000310436615034349855779752112125629225648517567908265609695165296312464118900817918085189173019029547689138458502018645198454489441871572135637673064161160019156762425997253025059356568330099845118587036958626703556503290344103822819131351484529374138356575489575216291833200182592655193644542901664724188780920091159298499503216278097200189645936969179496543804225671319227661951882759518651513127493682488015830512584719773601483901307484537426517229446186744765461078695264944576701979995448026373235035098664084619184863386884065194402875368710646474141489232841549605040415410530592469546276921792983988659416353766351418337815987119761313856748207475528735032169302549371246546017038437429599396007128823851403379519361827328749284032327359864511402429315012331870176341084727801512405653591775754247503474483397780989888562783081343305241489340578061498292730545652297964725590801350025872383311298922457089083076796441358394343832154197182902714872358135945641580961106057326552603291980636438405010711802091125968887721579844964972738693659056814512660550490960211100915572867217434610701596188353218500277326834493671184061728395828134029060630745253618377447977117214859055494191427163784498864775392141396940272777693487839323839806002693624008077425347265523215613611151017732528005168183509624955475583643492044458430033541114781335269799484228580113860488335140609725060092441290610749337085596658164132623464494217299292026187358012482270311688106242153734594053629028318526410342399903196223408530921960720288843806524641508716951256108161303420878371875249614469542293602847633399606921177173538357577506983099182736613002211530694671185096198835833081407633068267858304760687055738543587796545120518255117977873380345490387762057050759032622154117918230966544633387205477366130235190184927998332959014252069665851881083894335827994731340416222132579532446574897765686760819680419069599612057042000006056708911613033461903671825026323155581240698665552484273261060330470833791724745708714678118177062768604596887855072562601154148211334756970096583158888463377826425675041675164936078833201523787091414422252829557223124153608055930182290840947952366754928604925176201620021655449402287236951824522571476432695672079919924697267971601783410085093058275116193413744969890851876781154499008191510283868790079662878447756860242290818458071297028477875407695605113277288968931785241989277447119338118386852984174288285555220050272923477961720127154869058070800804254646183387729320402682608423818490856084696143413138396591418573065692295520627556559089790913199632493307413608399529213183082114937915316368226196007476681677471263295125834519367976177162036596233983928398098347589749844485242080829008169436753902283495514957763884280706236382760809051008997165565884416757469374285143127764355433448708608079261717831042983614637197024433245883002450547941232733357059731547305313063522186170518119277260285976982400211243315579770930946161857202926087946073833821127621978668407714200815260587420650515242547263255903023487900489892286809746380833674738343308048639385800956997182341113966772395643836486390284578948539170378303994740699025314983905346764750950735746931953848073859429099572350660666520243393405062961909868118605057814234057701330166008476286820761668538385497033990467882604923632049749922735778234126988045213528838026580860745554296871942229112000885554270795732390264871847708209429464069540620577329269880735431124954197219957228047910275940125266595114571375988393471515351888609220820143075593943959910189191642232936929428779499857391367120794280660685609662130031574812216230645831403358355643506788381573173158167670501650825361543117658937081517222907391271708953283502686403566573819365690198117470183350309332746622521444540868614641602614356514082690894002955096681184485116137823544075872695535356913227579108204138414085217311712625452170014898569390529759411076443381562014608726766845390688607631735983998875064642537506379615633473307244616914736386834951267638480631687659404573215336433180038709977067291859877938779442080290369925910251690452492829222242618443979780996862432132905229454761751013721599457125191759079246998805693021334529026864076339091876960798940326916049023649722980155702129958812282652920749255660477486510936359759606719418512927645762625275596112715858804179054295300058549494399088295312050211388579257997117765142854400093791756602447889443359446700621419617010183477989746106591605575356334916616752591048619385071046754459978568845043527031244008962379707224861712383425744589681590720018827523892060743605163019952259313833613732538656832892703641755443613082649360691481429169511226612937270965051896214555909627871519446583287873344850186284003896860051733479833562205163244352701719415599678296807412767384327098586074827983110957975746968396491250940591709931306561419008000797604370815588560899433742765960813792913063960414455122142770138392757805363356679118179325712724268993290260991607310970488422125181094333143417667004849122422090436771230889011159474315677083369969483807989060617335583959296081962133881224716895733780903332685451228718561232427773283780880540290015640836864716963169946590345925109182396435730879940297247362348195773881386200336761313143860394466531423106239469822951721935427555061979073968729826246541628728458733754453824542973692388581583554235108938363902740244870001149536772488974828035570103242116081108982470641252423809237306706076127120928295725900442174197340502743773064603339079717502089237786305031324950028941676193268132190119735658878390025388494534328540981329871526476551916564188230694128143237558486472224695417194169514155824932878280350891685673028647490982995919610284918434634614929752161797555995492109888377531591951242139293842459797580856000237701735995017873170809275931528537033818736889856791295330064628106248605796479379771299251350815074201577157295155872195865509090371709219862181587091671057643266523692925686239386586540885323695392161920324711901101518565858651734693617962955589850196673210475109511820985927187430337418431733283564279524119457388547597957304048322510243760872249733339654041824482824528297291080441789940308013510734551028478211886500510864336413086462659747429452673572309789743812709733265423991701261663021784185499184633873823714986030202148492339076074107155792663338104636903674564222602787064126333290227495536120466700808917347140640588361219058993922054045256603073944454380704814673235516516809436309455075141932015974368640142878092520879139074667027988693995083335829993784201820153780835349394659977745753998553692453457387779291875570050240449400360887773669252593199376949894939796089242880207859710659550401745918562545016311191986023200923280108874505947836119015383546510658059251928602590893235273384294157877997878328754914615896431058620684108487174962968488485697438142603166469643254325686176792338575193302261002896187720905462793976726975379574720994036335005020382014768547098822697910002436604420747447759670567112718926607797878453061153233699257693752150980207586353437190654464766585663832588208110446481438756835534069838945006033851145908411789264180411081252814306750104067189583546011488957595051853472436355930376730580547226259020945535967051520886687895637223589734754330509857308123218632802090077804739139817109420396353816960686757810230358152791709218708826664340541554124539412743206371852857164128910181619296001881593422108283807390580963187872637279254650209440214108058647750036151631837345754822953859869255601661487292381319880897256222777177487917666566503160330771393272053260551254222685360526234819342015550198159581798538926854761732191940730098744085654973417515537845075088972849995586498955720230881079422268492243400619176282431793982021246255944222766188234226912649191403993018922664690711791048220829907876162979476072373078731760307121760215710858560405361618215280072965452464440224790706153988652804285369126218627632210592171174336691015077772319971197968693920249293812119349134748988574458257455776100571144984058437831864361587753509324551541163036299731602767539024678654752027732178908814978614355143557622179203765272751793902708948783351677470887040674191672964725562603638805903312934358296886560574368698477634122876151028496803643588520786478241992418484718205145112946956791865962743112756841906823183700633197407270650733895115673372355604758212568467324639141702098961007689128917590214766593373743751953513038309050554092730899734025564189592326091950163334490032130842941930982788007242060110763141165558946162681528830838289368250440659568682553775013459055841038684977848359394767015559159645002738153275718279444539751261167422676673538926036107088557909112502772448908607861096452175617601675596251847054079282153887421537460881870786263708831500239854320187590826327792418195667828042803097875432512340674000140135172310196004798650381787057879169753132740574148690353426956739049921643898569390476238819422055538917453431917097649118778160989023721504345722967557350534364074815117824281771510579431787346021161139764551401581233065739145422415754448352193908043545704544177603621790717355223786280812398591153192999902160311829496566260054611162985910300186698038595604787012139231155806140086710912571384941766371045283598529432408882618221706909403820153325119593994397514200375751180205867754289987597912527134844094876294596668282240868948133642893754832612611094298546044459287900500297826545442823431286998027193416702430680941078106679806464958060130079156922132687410257532210522158531668761422518463234098020392351492046012147183232780104133123296454152897637237495771819428635589617571603304436515477724837056904330795121147705114492688739836934028943573756108513633463663642652020532576341145481519732624106071016528649905542018050024318630939872167033994841358742402484737068648106542753412152983652964102846480505846198453267951667332551089112529301550095962474733238490469687230198755443358381045954676220642329073723851770201601148576719731600101375901686384534625294148660523443932294109577518850033063816082895549206852527560877078997532585550324031138315661710820164821977797792794173826687700380984903745404684594111023492928280791794998097611957887085919382970395248571869272346975628025216309677404669652438919478134273886635501684107386111088768498323649775059778242232152123610534423693967521741764705132767828818630692504406216480688592517400619298362891893782159807743097930290061505989496497668062912790805149704139634255690048396125860700570431526210477099258219214402477738639630322116276551014993522849329450793473024366780064208102664553686915543297879802031682530438102175826102522680707437356212077347429107379690039060598152462985516760722098624307798717867598824801349474308351464365075569838264053650186289319742541135200857995454113909491073681223290196179522022101199525650044601150787164512424374127311930942784048122943127233232652425224021578615029030412289372652046962436483500777633534264435871787406695755866347815712681730509292369559546995537769979958839341860904212586497722418990715566390003501352234198301768095446310439786194167256706683607316247013690527618821854760585482939127418072456981411283186154091870718938027639930231064319157317493331697613335147751236306404576156067762792588351604839668639209392426444097819346809856676091907655650130536396027307579345151016370864473983026018161850842476490402287817000243821929939717948805609761091099104618802750825912024998910823213444630820714196254958300432368211099551288195974342893868983826504868763624603756425383152345489831850363735365414899260300913117441461922913180907610895912438596241119952638796609688119338846967066107113632874598276455477645833755591408717325052539949571719468073278354009151738544158517324029274807368286920154594254105580993164214209124376732543375237999740013101599196558385256325071555815352490173894942608648672871006468523485914859137569239549412678550429212017130162049484713062619973221363836159336058151812923217799073470597028859064910281446360299532234655649039839469982772033672503832659043003290223417575496597276147293434940479714098201623045247171551529668167634108762431392030022912860034347512092282230620371463539318977307547354910919443772397413270823487640745048211782155083281398402538344974232050363478537705944360833141443407603258256542702564172113340794429660911330556609935920587214809916553581187017820743343809768344135605968033307829224325547823948221206791057183748637823880019013264779560934451339453651619086451681007469328202476782466818043173246738454271374663487963181971607770038174739937773130720310248909566796200475486814852407926863214680662480015871610803414208391894431345278317815926864766727785851539371966387857740045111636890925235111005886214048622777772976463954571632528777061171883135743810012451021315880257308537611459190418195888097706056772619541824831192663462211311566751371507045838935034365162454144126301625494656869110181841761416398270731801327576960797980062962219658411820281809904182710093949359330178021341714487787892298648600380805628077173850425077691248124478122852642718359898850994158085138810550212389985984028216707304234310176517988085094505428391945545949874022669729033057113085073695110819764637448324949461274475414351304310883934273968382753120296185108136697985230347316994354472378403873941961695650925180023097904083914479827331420735762752102613844071634504189898029651482540425698141153775076075641696608895546687877266787258265617070432036189400922968323065683637870499360324937982220688245442437915767114683661553401581160342437774875824337552238109688862917441686042540239846657246952638312181721426017464298114052771299185083525633485987614916958039850221812344050914489070757901031424732595873146033873835243584923859507875940841271992671420516659760226978408931583067284372885982200471259905702125767733092686612491937358744078212275210151372397396108933280734668841336088553674615065270873061843541777599334728791046010386364545657821738415988852113641688716677029091546414557842567518020332437593757166240731923845731596901311562555191650292970870097395192366388061444701985458522613309929977158195840706076169203719693493488325654670892734608639714232708690598385209186313857920038216308393835558787475661943659999697883978202429601272350955978845423718232283432260412759615971395371551844157858529813907792754840772663382153991646364792557766765522247591571284902682927218983517615561686721507644810610736488678297420219166519278402509675441133082124069756474444535148899293241149790510541795908274612859748986632679914317399104968713376205356670322501577776204033718888873795298318583746524046619578745583469448283391346520672225772825713157868498582054075074335327088916944438749322811088460181700237771741709797995230829309083842267690495007464669224923610972978526286624211884002186071518303669495477058523151011054765488279206271622310552313222668191359025731151997192244060671217049690710244213135785834875632546364255971616855816074398285770040360708451682884508887770084490396061665096114140153753018951692854131783792186651036551872050240945043295535817028093319030536619836902106071026330342426350994586241765017743827613336471619196382359159619405883513987930570068902059636542909917832067810194055417603889632365822332430437722817551851398082548639636827887195901296311603569993820099043385445642056337948733423855216689270336797348403536429396334001774411686550732180656236606168820430022747007832542001273727963514845902891127635064984609450918138131451517647790827754808931246572598695273643832076327234058976808655750802298581657664600574257708854593972650636461324807327100665639244739996111027161533523362155629826618626183176267617345033339386862527456550285723010520107745077170329749486216640288832835743806731423311216360620072264900840847701748432258030374130961826093694855752125315964541923455980924417939095414542523852205929183517978741409494426095398197799273027448789679880105729192646269893786182515769624926861023297238979048244175356367503205012135246982329206637615037965091839725366491971219976242591145741334622869996848585634537959187852595939250161045768366401038848961666247595744733445408485112837311897810434577194569479431645161174351456841147197086090457154290960535955636246910016697167871899973976309671778569610292163253134183529129432941639611734346520652084755269656449026325386674307238501582817219912031646149761983049030554114746216874595683014590472553718943241675641871160560401745414711943829276486204625979033126553932141474157656257137565476942087468770517058546972931449385761566656235340901749780333309294021814700289406399651713290491031238262109026596071419415807048150499067293249762273115933973332970101799774194713983852935268338447158872361256282667943956243987093334543491984107411930210264213775445591527724820608787496357738814488892099245042288817535358656897689020924106790434188816158968568459997033114399946203506770618442653550546335671051727390056059716963253761824146256161139447712022695368820424939415615000743649525501206147009756671527702244292613827622088914709886789494881166192439798605996134150654043706748078704054278254552076080991638019896489076990859902892716020238007104129724509194443963121699871258636839572655228548568555359085304366745485224818945698467871636158471154461172786968380238722783041278042127692338625852259765471193968749833433106296437664282011909622472206503214326135054107713853395007175123325609076513974842315939447162616194637335683156139487023559459579032086492823615576113477834685776462486709804447397176643789895606264984961994188650575847030509492728792722232445019976230484644541256955654384859205298857777121572830592866799078794376920128751246840279378981317861965980788215311024615049663903081606019511886635080212452078694843153985569857628392694128490046295966916905291819764729128282007634820217475363991484653339374203928799544910070877521911039827194100727642157449273474672861643272374400336039577422647005847086315255199468970188804120494318848546102774429700649015189479519997656612094304133091129886390076171037644712707509524851765024285294119584184957872367197104686408404959048454419486681167559531364039495172591127445930520733632338574576890094231859964574808366224364131020023169442439000157842346024897421675070260280787394295987063589196203817324798237103890279385561501907371518511390860301554174334027354191031739358129915898546423747893128461649380229455578753853028069775583221031162039381356851380314522459267895669930800156421176426632158028836565693367242166286628271257248200682986711628309106765529144777011994227327919886452872217382247279237966564985057141234540089754547273781974846652270325534640218209155199245109346045327827370853682094788344598143502978868976971701860995230692570705508618566235970384043193533649828787467150831937048309230822088577448352720873440602775488829892737670790684241868585281898518512788284538297721339848060388449687993909469009903439882365436378764890047708149543200753705447991644193689659614935839732836870067846623109601607062174229789491950818175190392217268885975931782432829167461751037824276697798187494193984864193591110689989831360000894135702169332337722626452483285583525659454931599192142556931764330608655564918834153435765728951118482074547375354543779165793457220064209061917303859960313253638551889685612388338742258652935490545274329903642169609540195708595695841032338029026075138064979459063027993139524161360452821306074132049845028559623108113381325558933974706679851315258936924310941907979097927479350462702891373997139527017123826506485300300021271369432678588063867511141095975444901226299474504524287618288999858847351799703608893072031420180325950841569416101309624260531173840477628618982036023394157157504932797049112168132480306607312876561673936069206794408127760715798389426402314021529718334673463314150283082324113039788269410504422951160490116282697462885067013555717375081984501767706129659555544198344918826465780462904023601831689828435731772072464098523270565510187667549811523396964178798278266392505791032437135612650973210315710050986902159071137230224903548437731071631680900664988445896861302928670425457213385248008750789941670748204779198522525981397148995268041939198695847151431601519796209032812598746437736099026544699201364694164486248286546008166523064660089005914606686480391727098728782248751359734564171642933806916228998553264049143984751276960839901598540606312770383338391916843875432147649635969851210800082632776449285565344289363151356913610146154077425638711849640116138446633461222282304523224037493349088868257396188130181960509362690460193229502487118986129405489562454119466989688700736768260430559131798848170788393396719591792781460471814276664578309707290205104224739262972025876587030417063165361409835999953513277990619849345611078210770396984655302018222144829330864470775509344653717879339747316762661917888367079369857294270007317166564786230218486781039726042246367085190232646044900442116717968991500974489196738515627527273029186415274485925763287295212691311071169593756210961316541056483918963548616623680552077459529776779664243645811525102754521888849598565868694956134519905898014330012024741858616986160496810784349676556591180342538455075257514058089036550375733897945555443535120154879165561465854547617824722569632013818346595485208340785876892911656953793911264136625622964238463191213266194942297940168236005893981197842866513441614732554454142805234684959051690716733963722394310305074719413404533215489184092871420252155468702092281247856249959158004439683862434152260282395704794447246321666093165321443744219977102016799427119046135321209793892705404948126133690903617496015202672798632331954285402661742316047117588448565257952388432723514510170268894683768349133205907831387190751275697880825428617674059597132646644097109837629373469693117071760687050491410929545429009659878896657665093767871845984530305715540495367464048901746287900329545953568139044906894372448371185035123735541083585717545556520498447260989012411524583015922556559589853997285784300546141202113496511903659882317482812513283499726073376803044751585792615269025457983127418239322748977435435931287699868405554647909439033229406360943380181512370770148474445281503892195005762015495186870523978662251316720894953546561334492886972419607135266258964144445263097948386311048871382169263410329496218638564150498598611107563622262835432377934913225816745686924119929765815163452013889225192825450543590947753981161333268440194926450135327713079536577398381772950992535397835584603390344305432293350547376860175912724833495436532934346334869184409814092838070713441012211157013427633323290310401196197514548442074740299817446167354219155957690116766971518576079495997069419805071242681982453164212759768382631602869313402050694150574954994075661435590472175419642434089707874841442919932002769962860671849768271793675992200724235197809811620506508145018468369487727312421448546604285849126011958249244889765477449805282267301785770761722029314360101293844577373248186151387456856649717990827245737288061722532465649654591495267948782216740556367032659191654684011810882854080278080687594388464255549004880370203695733034147052342357577530672809150555159383141922880703635837760270268041841596577484180230406581387210826674943596191675143537754075324667685133746740327137782910824567233002107396138360824385956177802604789084434485578091894539272673488542888268987531977956438748660130173743539108751686488676127492473765603462289656039031222411273638678832680861720881699210551488940979145972231364672404073511616949614467563137124607208400304301999941509492236450700361915201124512259372719861006793455113532247237640661517468453712733195144610422518410179105293661100619387323720035141594335418720357497546379947567360278462445705804789845986143152604381491579985064565365294325212960357777193662235322945177220086463458686536401038206086411363434664193135492584228315546471244743746351864535056874468970313454585972232933494701573776920722257257649028816674140190418805649848926535679004534523829598171088984178222333239547712426182643944433476530617529160380041484544799870252221993041222637758083808126280670562238293468609639031879336572703402032410259918361841675452877688090034704935072469950131601187268734972552023349314554006853464319358156630853354883474505368683388880986632863062626584961903774996635764246645950441359090676361722437535754376602141833220789936916713780278772629967993339133993205367799490102774453237013894150166012246409869707232080010104387039179066097104662208088161002244344355098222720976533587163614516599642953913941525718138842884420229565412988621849446122791428457368929120549984158394838502000235842582469482304806707714452965674793930347779652495239235548420519334023172107398694595224051064617205390649386185947867096690953084204018508023728747468480770274766166723308410625860550577147811045900411914106691713483516881484049965243396275823258400391708939857801951659938886942261173443695354417072972312889580005163640137791451819816786542871908618906751156639006508968641879728864348760216061258377336279709410496549010478729889140998991074496807460063228497061978369313987831025147241362403443352849301355789689290712871036389432343833216735157985220071603962792320286680818666914987823587100195027011187511079183519694572156522881784420321613421332319086160984976050460170711985573268896190260653584855262379170697788234820037521500660928386818810633465837501481868716809292498234330366516293840058723455321685677529138368045341312019511710589939112817877697369390930383417224030362652438088362727254583778061397443729715067771685444914950980118340742749972883456020582188421961957198235453442278003721299646298193001161674310106865349502316785342023937618166852824916357143189990180005853741435192629482184573444678054848953243460422423645765794369424658304722885226930199326849458159131322084184275245808584795436986413394797362469716800441725845813809322522504814376098444402764852759859601654524438224593044815503652708650374998544667777575534708996885909703181702562003895706405565821781251199824140237415943505868840125712861630121732450150382170630985362108980658725388487189533277153589832427706467228380296140437640473120808158271161993456607079927511963073475452550319211992131219245976357936899852922238086808199174197793033131467036467434933191566770740094821215772665212708501869165579601395601952858331690317864565558963844553005992921330717083270145251155442059256199566825878955413374821122476012367948085068303611257879876067314401683059381062802938013338945951308484893957164825118050672696206047977111596871940248810421043463150990643116127230239959639323054415939100232323917619304676970041009650788844718388654743987819511824698489940184861779876144037398321802323300030920897854020808939569888266577100971851619924034829539679743933366630286068015156549188982386913511508667091940115680269382401194484519925958773664641524062540723047108880978107498232660259392657977778703613428992408501779855475876436452240186360149174024093014336465112394261109522282721283157303799677971368321009786342647213525727794872375881753181096162370374827155703706744913532953415051190652894840195839635821829584004466794703017219869501492202135182555558822651361253243525595195764964394745697693747989468800540180595048775431234547644817504440416873941665135556624856294522450274249792025046915288491809080592810908768576101041677462671793822592599473435487242652551449502912653342915675683492424030646267929065893698699576536312983337988434056832712611761636787585663988743856228775111348132105076818669711939655435158434591195313628137718051493866877879422165835454213669716733109098133736808874337737660260334099482534953203385745318927267031716458548085435306053415698819049487982807064383672147606055651202703299145127601195182460319240406992813906491822737188439360452739078063873251677923890188926806943140205316827177939703765735285802717171882262393078312305930573064997107140486717677213462157579889410378119970351229413649330248518326568526506085454506539897070238499439832627164047114056193997853913093182220513478807285358717384220892673138390809836508530705218329635287287091475242016375626994017710568093470264593060459114258857618887132171940926386791371185778187328163385294650861767498280706859210084354618357496806523057942403085541670869439226606688384454378709686776298898389221541443792398679529362893633189762780311523707244751260206580028311526062854624288272874287352678761043953951637621627335094585637735030174415573217848527514157717820327486502832756073864137358362201248350754504129989779705271770209643774978042913088021483183093950929374455879223663988918583480475043809243227454307654266244970989888709129433924343585639264184179090630918876682192614589292978394342675648492094667689412381584838448625013587063708062152844949186201179997069621053558219586511698611081443273815279701954863532841652576759345291121856496608273238050117173729276221204356499006892166257704282192225665326901070976313382587366152443448967796029555189212252627994107020780698617444807617583164464061739476205313594898674433160677869798988738642129773982983236107430130913015341571531175063020205121775296249235622291859453406091609137928844439161677563483881302677105930942551641179379323785809678961842727699918094648133733696688065875505167217904093120457679270079249641359083833192545682951002150535982128466124856577300988101633115737913033095152204429530508944703774782091008066036661686867328105900182182193031425997718556509759098362129285853198798818702908605193449904727304417419089667648436191692529084494478976676649058578902211691993683792282736218042261038701019945288295656098292919194815744168481907402991930496752722426068341848743515399418946987368414907432192645473308568238654490670042083950878489294906176961090849049056881151955439454810347089184136042400079777765976802773220922177345733285090476215353839708568355433299368436916517287405365607947959897093140511228385715933363647478243442981641183538210612619209234083063422987992600307845284517579216596078570496644061300652928164290903542188547266609201886830071999726703126505839486495446259255597270647720691622259229573673014505219260920460731819161271235976312165621699120741460030224128140482721848174777283079592563461367746772476057145547729883009384420876549249646020509893876109136219637699721705527082557056543482641341933798600255150494765973421129372862314686445031599745952319576243681102406890533563684321530468186612491422308490126775714625382905823628266311669771119336266791369831236590511477167308718777372867885378955406610029231675325220247001312612450607671226840866927481860010590091602845632446261877498972902734732681029091442220598070477572425965998021858159664042616986987256718572586740377438109588062254694643285298008043055773172939918694456913793053747112693717671796386802406515997631785371274438117513088597852046875173858530284545368618248832919148218443959363724344284916688118741888653495589705631025059457346523223143970895722672157730845497292589310173953106465046595939942286305255857421171587787390113658316782124737537714180445932161410665409705284114793664480780534773445322287369223980102849196187819373247732461678275223609032886340898416563064400658678111748198526212147032431198389073794309479823348374905762210464717383696552973300339726291139846560840997810828075235975652126061606234889997851091009856430642137460593399104041959899534481825488804902453935084685980078959400353859473204578383640189379872172120963477498942179525188070747383745049573962119518042418060226637373386763740606902701002141919212694570732796146783164686714195068099454303004512426610938213844211110972627187454823488240124532829620087653871979933103989490356934152223679884278428315088343932769428002629512007897119920025267793815548112009757617592232784371530941809985110982859503211181940859785986308741739440374892283510829956361289574929105244630826504612621895291211238508809820214276275006833623220905438181625639451728669073178630961425074216409422795116499833947077463254562107401364052213822517948382805330788435371135312068853253781599346782599666396094826145271588852475567663340019566483832371355285612275997335161818680275142800918802057833710142311217890752646643557349591932465207138114837135819065603824358976269781449054092592555144632710737994711937428370353428395848088104757672823537512974573655679786282116804014654810772356725542772810832150501106290736708785290125946172347119218989841449114623362855527388410602981164068245750551760955178491314072747395715895414860517898102685842662680510743988472407990597656254846559711317603349423671035837847895298406833142007446600408876732117529305922860221823611264967384106273447906872734421349308647224779745735130314488555064925605532429448182004576623646439775052499270351529747007824220376918941134401403371111196225613153037842998679996990769929329293807027495296885530140689898238927671972670584466241948499988668668258531585203663989522654245632198981289410291910702655401196356239600617811120426598663527297613117411228673484039983299229243364569934732572444940303728488474354155063891468991213290325032761936165873585525487903307868712580489896359769591396199412435241428600353592532141008988141197484507836907929665085318078427499722238877088605642924516624977248706064516067515118658754212091398387438930575707006492546769379262406748868095168276679380038904533312675487673380195903356706500617901464903414556468252069940830447548581108582670284122888124624016038599954892128262422101449061585555265497715032050558337085935804800722123315664744180931072173158568316364234297656104472991385059602643963043264701398201624263594607090279151859349092585884393312037951959863504305048440657396506088398330164321247295490800450350438778373925524277865582457343797898946031792481693017478109020348251273196181345167005852705650478131062211345280045987068891047126219060492928677036534390068779799598009482901602818210933090586950055201007535068108701833263591231690779962562867698892990988457106020420396191258899820704977575188975706363683518116916352465162020540434287091142347825633591030988577022460507232650385511973489308126568190312266178042946977922729622721229170484454878279264287231082699737064325770390773651879456498194734722012383990755831372457037280317953726871252108875867402138718999833747730075672009102889752124496460870274160853328845115206980773192753679496646506933253756584854701645549752613131977856373104898656906648634330333965765645061353795624789336259983193481215480111565803472186918814815843679417993609456809495744743203276591007755164984988562854996641665937168756739641667549232977662382650484335730336006675934149699541313490606822705626164844488528808408624110030583416884542131930691271554938895693175159383978356724764578315203039039439894838523930882416659696424966003897421331166429872551882610507556971842446227049420620859616890156804554611293507538757695174373113462395215246386704896883974407641924060089566787665607256023789717805553490021090090139402059546432036512895802450181455735685502792255108690924228810130715535014871509551547969237556699272167651770335115305340565216468410933311636878500724715517934485983425886052181552817363376373299465147429867350993776443936831722455318189640870646014318884296635795688457444265155952476778419456787190251935197539928629408879768166912466184520489994737176589256889862042610570584721013972209052712031579635458094150406241667088492343862197485859632037665491035391289876604721972787971370680814186403672588534791464171373156402991243232495646886685480528048013833258613882450612526670767839191316835728543546164484261895160661183536641078137491994251910381735337457018245891931315868052468324282978425197758695397949308251806624028649199118614797824043291190922261617598498453627228858747515995337089357297141438315266217742268176700699342429074262357317005291767129092087954821017811313090518064589444234067066977320880923260848721700847977018363050785065781543565195197368982467475443722436578835783485582898621889165502814772621483658735525760817152130364937611960496445779698247667794037026563723520343029878272764534174577697322996312634035425011116454130298516807622363927790274458330608594751507360636559083447780913400370147017655220297258145028139575976017530029018839703041775094230732922554634695197159176439205065979723830689721061459648742931208663945958000627262319050743684776825583691001501192595951192357263856115331849463559510225810437356883706236736994124972396691308785597705925923455234455322372160610000632747417325105689951762158966977795487940915249623178936846579060418120801896933160847252399371609918080196494835117276138610161221219334025704366280839747216630824044735493700839245404212028100983368575679283452293715509326664227509872962559834340831151536340551740432562792980131498264231288173348726597178055844185393532033959940387151832043310381359687831452170383489151891937631174009778432654251825392669681955316064044258274028570708182176779174447869999373770447458459902530066403552961408918161619924504372125236925322737959450473373249276575090651464337866615738867711192257418245182650268977075398973326244973244491064913806363022264225038013609773252236518894509267781795358594504703606805643754378926635284330550819879163116920003839888685048753058180284503341074407835991477594247126174398723676793932642209865652556445021680525979116553177804666626352873101330085183681392262120155251779859540436184432044147627510119268327140447369646691635515996505952345168802693658274263598066848572124524437465890293665702322600572570838836808536933022804180911510119030278097722386151609018386776766323720811863009978243440386145825031152250746893118686081059782730050634446264138872116351510713709308778904060590012565368221633375349856096990564429679762714521913914764036476628883887635876033195337399427468776707222568360981832391797050541717449716303223468639633811334859670673063936016743407187844585205116158274675029218428531005303835237973210263251272417194538792206618057138060674032034143010016777628555048141129253305198110585966765797632524973700723354901652623260200638413973471676579644407059779012417092128435499593335178026240277225006863294348164613546444146049782561154044322016203227789681874093010008900713215782105385948572658785599929356600685037530650456968795262516357359093135015683915783533024982911668139187935483737577612280307509430368563692309758945581058622481855696394651722030112102931753275439626604263780336016496966560870243723272418019146077949184170909787197694988323599423195834997615455006470187775453577309836502528732396160095743523646483525354887132390973666190342702010984979537609226737178610128688507675303075117662514981981920247929804284471504186503334080881299904749775656135606429252885561221886978647236429206789464141269377791039778769481985506382109799385187630392352211998106879192729665478218346423558811390785043784608844274444748305100108408890521208595735115845085031518222276503411386701523558882202492518662861430127192344974664956760460319035855608696217367665626672923583510039889682054201937427974119273014045739749186790383517325054120781803486722795731058916336766359382868173432665708821896323716065273798057818459770525849517842128159134301780724820540324751634507765931973123172535905858554378516888016884409622301265957977130037290104206591825746521284564063705626094268966944584424752767746140679914765470324654714640240321501991076300821475185609487358019405844300502819341074608851343603429160535575331331818000289085567880791009149527631830655746973319944539166652954067991623867381623387914555597829386636950532642759832039784571100061601213381950095520878396916746459520615935612500493412291516195920960608769116814890156002396893370356350885243332256835518131294197934077828247804091029454495715588174652217825334772565511747358354084878716722098202238097392325614334507485545764000475001300080655860404103753723160179640812698997398006650559269121538871390628864023036397330792385986202643170729744437497524948244124301688200961697690358668534333600049609619216132624225876380797649474844687198316608868777214701196102236455534142176156915805092796377921700056244805450049983269180381635564637794317238883730896478808187722185052480355749996338248780452278024740010028596438514907167087943804009848655775595120612087681810932629331274806039377563075781072040158798402062466651076624742890739418315664035278473162941367703125512020724811193488758971345183092534477596576279719409156629378897366169567034276214841445280645401252052133568826884772554575818546152476870976168082200044318148790479908545019645044625168702543702595256493353793563480220285035143540991078415459436031173518121737191554093994718556588171781332802634450916059468919381447179227403363122317764938668393168971995147464320883068241997982586015835260486131903855511344943278036241727845924464952077008524293728286242970135734119930222014519982783242448114463272421712830173529667174821485190871288835614773032822644473713697497239851870788429089144358712845043302574999776858898287171052704803188740154379389988200445498013346430477161464961924623641385620078362183062384647729981910156093393786057623099759474448202953433483846131371596937787573775555326989466803044570813336342718004276949514504126692048245627803996965266465049623818239444931785269926020679221692662471793042233961320895175041073117654504544479118190904391190957655120939573519166609386912981392134370837981566709453875180459013727503238757862483951952514336773378090136381227040372130852637605134825985769463356581438808936969684959898236632479281217069548216480078653489436276389506101306842839513247247444264972971504012273795392966915829404254094372211594399380240426862409975711171186729811752695913792453662456354238082769327046593765937552828327201785618366578029882133864997140992321760255729160985758555731209171879433896760615646191675833114914667342248292955493951125963050431159114171695390595067793769799247620867635931770009904915348089309350631058708882371952913878922079087789708742020511886202725608567813575933237661092415498386392487300573651470649111903049371901173820856922385291574940658661753263283573947982136018538004883635193473544682211927396294791537807812531158273763213225192545765293910277390172846700693598085662542737740143496788044534208312502568777343897293814690603575118050533713338509994099101422995422960029821208650075960963534043889268542521130757891820800801152502628939767106822720549845922663537162627268448672789812927668316355793262547637135196573455631107548523725830382955097832124347373198568557452916359518052278769316141232951399971212875360230782523627389305907430891466517624565298653411024681636984332634085009976547175412430808793328601075406823643737676606801944582349721979814570062767127743704611851206081833211173010446650894884878717730898810892008786578169431955828034342314615945145565543398701203454030431297117365451496203685563484821533725159017595803137791284771531684087207999715468941926289305682083904887493518159929708576146095446564971448028245833837222522361112994364328786447839285547674246856498028476272042933914610205068076947345565026795088928979317752252167214481141248342098006579696506145051207666067625302049493484575695708742048809842523189562426566463311980109565612091160102479230572068292203856360080267873003054820334099983035399822933737675048961177867141712439000317996616208084590430790012830027481613794314370532026248200466390866169913452256103727714851921586532327736921996474023735527409553546634980193512954442425096746702820523244076429964697191426850734336454319666387731666856468929817423069610879317131214975542797457114232300495086521634868118597574708631734355338170660266723097863097096212123561214942263472816675370710363649769807463192567545302441202849082803347591513507331542960772182752188907839960961719540966337239176393707024513666821094300775476950747813776719615220954103568137632695225433392004834617188694584812835530981325639182441812155501341403588574852237888214298706885494317710668825138991066729170230458908090891542947762770234272686570653612692697005950222664914969944527612236554919735935654136782375771394704947127735010021998897529167494627877617097713216365913761514614768607842913007104301287327932102159496385119412022740463047716323773990782890062704445862170022122400445827105598875168201978297122095181140353525603506980634476185889168854043098822269387070114104884120188295606165470164756242387547633700565564411757765884200099252547019901693365691676192417870659111567127199033532684007943682341243098972752111397243851443200407683484634750855934312451509521781645961007940106863842700668177870744278387087455967845263004199678639623819357700600091425637248336237507822072110412754711743864061528904906160570227262137816772821486815147083704973630514785280438588962300076976377777587568572673431976740079303396694663832335192422301142656429447895912911688387518145673986935794993484593355339923603400712672771507257212900880062359749187824938746452136354108543686606056837626840751488459920309481006104804221763380169385226790712740243676187699187174376467655426474304702577603394173385938078297520763494706542509452965224027596171005886109020176021679398658226630294018020214552836215284096009160346184333905231671145860706770489368874731045421017100677603157711757882110533253000752283358961993986701834979491242062206613680682016096699500227552220432567574512015878097264723184233427034178131138263359870338696960099361210903578029120925422527665110611116701021174079017842884151980057535978267288814325355292580425703251062659226638719401695338731939251186863968819754879136879762427282784937731469906279472841542894732621291074678151791222080513603730187620194019767962876159986619889080272629691575980946236994562402828983214425224566397762930844399380725440773190223333947292178815941359921215167336012664702329380563618019396899696303642492734597998219365169084283647212893241696321180042301440222264275395481662381392365647059106100528429045138096049559376962634883847768322753435388750895986554706258197393905036324358398113305085277231649115290386934296435726603915579223463968069803957061175863011818842273709597675861215641390237505856623601215444235647843376871553407728183543528005840984400087755311153846061988876988154270456150807980965069761668691435541172194507454548116841016805819853405031691956492585706839577453374512150046823361329835911473248348973512491374841894286710163527652087405999374235431272531897265540359461306092645811499263970672264903548270086779823523613196282195225283120192311569773159581465901860414950025695449241874576957728700655731160453454629211644589163978555600915380422285312517990076924708973031555030578186089121567307560864971570388413742367675978226903643602048124107664758361393172982005504043342407038184862839361452670830650064310151421174086370356211223103643617661603288591986794317134545030016900000629738446670852690990353760593001835936442805743417366214733687372071140159893966364616444042305629441810088166565770192182107191794369328862983442709958071982530262646840246025006356532745326702294007128624289838185874977884114155917603956759241660456308001725142069952628074351585513478269382167628339093306407572335190161817056750194876811634961489380918201338155349986062060436451993215825808707782421497171626501639164813113850602752787318975906599844927011164348401071767235414445588906111041794640240876886190196794254197765809677484001635965900586931240753663873606493535642243687311455869765202706880019146922725252441926494164565833746675952902383256463033427557374276823199416409286086191548591451966929680468580952752905173933029432357585361553045548087746939320404441804493706901477085953504088889906705967911939958257903279735279165705792549511055097308978388364184616353643552195352395248602505661159370164225772635806089798608655930532210553938757969541523295220400690014968317327800858173667568568367386791012717586932440243549245730280742249819107810300535314215665563657071862421660911538170577548879858001135568443115912550560185059753126514083102422683549170558045712077533173420048028017071524793251911061611666531069950548580539296867345931251190932764407340320024185753959767280016538030661610307803185646045553291237805389930140856068282430268497852884588511698093946454259343495168794335360436845391331530723776028919179535813736439135154556678290370597766094591744997801729839761529475380914916372665692184721269960292612513419699405352218656453652623915451004157717335579197588210599476579187931492787776488127842340820558064781049695192504541809666963435072583729366150922440380774173370360163126965030564451093147362617484355620805272973886015913030975954072445219546115889694042408923272827156352390857485040304460737881567679175499697749757055087624149200385616254174494342850431449467704446373920329134260820585659917820401024367263002491302330575254763599619974977176537754270591545716339968859997530534909113121004370419939517611982734490616237605502204444742145979957344500128031375430815173409916617628929947007213013077092941114920528200180180310038096223879547134848130781591782071207282818284440767168361767275623898055383245643729496745976814436536452969662868404102495281050141087573102841188466841360066494000581674022337775611333273299468759323574158679838021557045975641129257589072380979478998898741550892079798236551135526925278813049569432601454633959438012679834878989846599128500810940291516624841784691688738210599547495531869033724849789920169413375107030807314271972961054708368944912936194604584167811499301560867350145650392610602561248966605468305376788645725091329059266390043160643002219802101663546596940642703552871955580874887451787590877183866161946807502920851821514634010885598726194688062322204570473726991808047506291286812094279317933173308161154535051640751091200921057132534381570759653645988560882621824782886236679459900393828835057616215372412346196347501213384753339861757631395604163294544522613981196818008386231590570272974737605021710285674808684750057715986448416231098512602807160420860792082625405915286121690022435221966632910288729585209011722582934481394019415671663077886679086267151386396641898157866307847362425285763077328299318663444217169321321888849201045762077807929306750531594929216369344439433213637245728954079859955755397678169627397883649745637477406992694325677480925795563930749535121744874918803421458786860080182637080621222022654017607228553496052661394685435367856157246310137254795393807348332274737359953972613781253477026265886061978171031616448682162865912467943470988107237649753812210418930371787751205126286478622778538686300322959877867061362933138130973343528919878252328877713384429751884462876245865105825159438224907105158523694626004850642368994464197158712067729285342298940204239737106904007273862340060137835116067604393669368036331168057923609517569726197662199382824434753651433625698790524099305677893579025162642669220181933044164871163676310729079356797463162147450890146827873923664359333969518786415076409668798676156698285139784784200187995613521157448772833315635288815178465204941287929590032828822928212020145575923173677583780479210553510728663962901443497577844983806837483783306876705795710919552656914576827514164081125134508667815142403237438854683483324140181419441393923792183304963943676095164655100637337358679217017157958460867406711405841234850515077242608056626462738033606491055357141113873296700006473858208216454376255819375826470231516806296843102151925972735171966736388056084174762392199930967529494942867901663958151694788396171425933860729131088068772216616804740729359034468751138031036525130772421271349361465273369678963545706187446830157609005093814751534652305515548419071652478472610793060578220878770087748860704483204625019812916778780279497412531645111543605734812395189858403327462858718222235135748630967238074050997909876598241578665561126455917211625124660058040315621274811208520811190412007218387338835372683697824798141834557966782692326718984795738708431138884118013649756104818834734653847558075361292730347472536569325693285483569424134578879896993551499525059691649989663495028856715582779417956712669720159878668592623765267652586797747204728682509612268259368866192882176744157498022740716827883831700503744261874737154189641999855892955281349208127900664705119390338221411359415779170425620757524433754840572615041477372208406574931305976240329062987869040093735788632987475360333873567044842672171039882750079321561215470071940057064231238203361045169077556823982976029725543828497301873272697368480569700684292446095032768397677969674908794641777899886597533768145362959340803311028790596696573088356338345167137501959991468995524953768886073249503620373525364173066693564798098676264719536970452030960089962733507580001785251070433883273993316145114161638950639919312612061910679978679014780477596670513012284173856817626500842205456073588786936611943030641926994512942149111533883538161226623678881305851217159206408624935200540422073480469264819210138468373153387640887765983514853319051135295096634262942331552818647483507251138481386204355331082607313628076710526065131582482963100130839180851457351665715216779830878849180295696073165924104935844118467032849090398371534631109107269252477222620569393501326260194710595020138564628164187593000555809189988752648495258318373255922752893842437639747185602560724936361143716352814921015565711725673747460920002114637486364486408484078894813735481641896259453860732855755522799624785719002700995628141370791753065121741783698478967944667601240665211120697302692859483028844014287433307869501485796670721268748764500224326544359860674428521873330057378505501894054488837997038088560733295189047425388874904872044601286242857272989594588380773905764159331255455582944870822185054657904378984088953334287644447227713891893831915502258522346530385537144876673498747964384732485712202227617681211061984213795760836973805651865555759865636457463219132392886972107637792837606172125441848869196064306689673714379211763025106135675747020314006327688361483155720742766730763642556427895387494068618227437125592895851240850587659606294606785190229161213736858593270272059743381423079097922806831465267991999146498820496864703408906098614832644012138766465618277174528747416204668215805007102429383461427703354252321712916806742946217328499951478495890926305976109990198223285950340575638076198527949874870539173487467465836800455202045167728321888996053452595945212014371010200558437065361444434977197930297005199908812746537541534198308732896454978531818829475747862092298624187123398282832664225470818063607424501441908015743909216139647473740795268905143721358577712457556996524362210523640496926568510371009570945864697560645698974631763889102341160227558946458722369291766285120171504968581187561167384280008467848496802189795868402688004905636473611303703813338615028263262676851325692681487458480900316511303702817080887095605874680511681079875953585759945440499434551113937960775605094225253094839264322299247580918394723504258792474493876151322899093002973123843075495627298052389125542607108972276921506693791197071248682658135236378883757657811905516370422044730710193659183737185326527189208772494839258668197408156346776806262577825094814222928824724220375113300291344574217473343115926042345695958135141105033336189377022175386402188081871689161523201875997958495384535218594447066457952773928276569871630873898596672483469586581717629851767620955298186398962147493796961753763035843983872809281366512451414250228556808216928893994876011364421225940600448933412840033076558536209553342057934273114943547031922423528945923581237564227310283506270140625417068146840529893831414841674946455167213987032701664065430382605910175975263402369524995790414727840478387806282494351961420929615828834644518641198444223346579913348032622394228021008494759072760381872977326242187116303505101665132050780637515395008629511486177302079859860298716502418665046691178897097941785165931553994896853369675655231613898828349673927870246051081531254769846134880234022259724355460759978240625874579840644942509074910180320916359342137632305089387366472865682667528468048624942256825871440019611505959813810347551448073472879827221932126645334129383179128796142554634093461517467943449421213749790186778917027798126780556894348029032182567785714796712145379719365902923900126326619502220289593181113021138204533739831084108398687648961266733078460254291968910380141711394085907564570310049760704691250206057889800608911323696309985168949001499654275820062425703013039400801729143745563797347009318075349980257133307709570415045412275899897943058944983077169154193244873463734562207076491081815535667483832624577550777125146820202360873598810966675427487084484991617927531918710280617467315358346187728299466459359365874182477798374616585005866625726203743951420141103311389686662448008887918193700009699218325221487225350583520572969852625961552717804270593178484855015361877164869460692496922040253202991189268575758629236552997804441701274729789818256474557429738517326396116703774560564798142748546903506751074797220551810376507475820164079312811614831378282967876765787828139000392563838002831551350799484008113037739847965644270956204568554148583343729568677910497066171346389993950233197822870208136997975636681908730755486266784193944806684659220647098028444568339032069072655857523643231799458631201768372572183475314084374429500864100041391646041813160611841332278807568855941033444358456532236283952159315926306507424768607701777652662013482023770476708932482863845214334204743694291992554992750683705037775476058468168186289135516406917613513128701738028217386769115591740978935747249818051981510535421713845054484024551608653066522453904579331149456314768468320960472712885500434442057305317578829026407587349963696887627590088463788106135512510114853871285791207206441837200993387274112372842256358362382164101537589871674704095590869433124833390901849951528372871384578759520871132383895507383804421200391728943393994015934467374756627869146004023134124747508398963110407753667026896093364070931812080826718606429215039311272194218453932962505724726450613471225196812418290320611052576123703737212062341276699906740510910082704519219894177113833111966987301869797476739685002386314299121827831219363964764496643251279344273532969629145539814616167987088358123299756584088309107871738451313145998614584680135955757158421600356997533608837039876303365314014198610727571231917954448698607886600876117008373673455743295215122533084168907269813174234859084466640354830083616928461360421649866374750447147574831553572455029314290840845726120557224977558009949379881155443061227263088054662951436002825353499010450557224636807642371704565326498135530614755585886841802588267549686815381190871219066607625719211375328722043568758239377261177402046635091548189720412552687100193277712548824397429638734531087416119462648768752095375415084695130171549690853586007812177803859049523773003878771248178684835824120190557083938489554258213654363633233557649839506469075828499146972225786957659567475856043112102731567891830488647808934203899833664723960675168114897543399800910232017672576533393988145035440151305886001293334989733486178066265870911720261619512513554350567673353610263492335987832914375370132010648483496566138629012900353038333912520195704815998087201650633828511989986395884534129244247631477125831389264124583987115720411444053124136808133084541688365144308433675453030514139717833354772888295279252304285399161105399786181935534354604155048974717209672925374759910861433640438300525366658613776051345563470376060117482817258926167352852344226980836700969589665130898231813472088893574289939568515472883979925212363366610381934059614083415790266405498824786354129906713873428605471854180297343965068069292228231131458204088065916230670048857381953816374206390777030859494011142358644663144373972240251718609646059337071547870123761911347648379726720974796665738207938274458825370742633798931735642067305322340097570624237744461815218744004758000680450477960858963993813167284277030870651317402674856153891601470446486376763553580060313619588684009896591859419018289398966357071711162655771286909477536608115700196379614927681227502276642193502483184647193860963341432571756685935892129435142603256641243108750198164101192498750997966483016074813688587077591088504605381458076910511633174576201437691043830568647540370360961256333190887257313899999159895342789769488018329533853342447525696897671851522158998860145774299558458795759765101032558406612623405130555363437292030725659646469653157114325984833005630589970121134812112281490765052688257130602791619349211174733875291734876871478632227105726663007695522605719489919023645657495324765604975275997829551890207124511521515454849558057513876734668049296450943660269883909510587388581379459209717588415122348282524554518978862549995382388903415022130592990494310435127251945159293791728439164012540724824944170714435064709326075251304694308792010187531979388303736658534223485773529286236830723312248730801412608046991915859041680602356816552247835584035321316511366766811771975695092063112486847053364649021492094206649629953486828436684580196875877725065525113693821764716162873035331908114801535862833589438121092870334675075361022212546887917256493114083113241904049393344105281389575771647974981612789592425105565725091586393795967890222613349079597610918989340449162157731458291273677288965739177540557418375340722833155920606565614625767817685051560697387224010310019879544666265208812342978158792092725452806743565855140341569904099477279130516034726765885079337423749986177013961650127082175069459450632549104415598599095588170058890894515476121577641675082343992321986603778461141677637318866712667304993911411029781014785136149739363816995840424230911484929501192079332204095543054086845652055309429830658195092449812439106251540981211338379704966564270780798801814559824281871343281565100717971076374475040523614495070136472418122306169985011083854229940417029988626869492998556282595132572896872195369201939361928303116092148149441648368749644901944134901608165689982558614306540396631514407957908182311067251170800460802128979328568733761187941000464929617677533858014547109790810546744908533873154035538337027508247636518946587643589878082616656589821057927849063703221760382269062518791629551356056020431448906146059130789004537809111972702578942626594983173625057865971426453868013042101099246891053598815478996990523226544566905205885746369738107432646694513499962841619209962459067220222711127814001236148881728589013253296781860354587018156097863202458288695116951425222752233329199561735734898281700381890469230726155767919702746657948599280579247692715809091356005881711185202148224823105383998235721951854538602590548023557485753415306966524598609572035016607928151748026943968460993541474585411366743429938498267468086034102847879791942934427360487989993085747888905227767221493182819066212149660510548203851349886588633979376569322494124008902077493534164383380690918560361316783357668413227552564293213922044095973893105645641219805365941371496584182298781973968516136263563638067621742521067975298488989213206504094506004970916815290148713361052376888560466590093659064027894174047565011272977949390383375663172419390854728985154796969313825065859210592429484757426803994280874119467312045628530226988019961962475668308094755917755685342898426865694805918322197801380890438061492986800444216303411987447083992105899982170137357396166022396621800375041545934906752326418469072822204466128457747185945426057492860285314275500625185881381670538795334400368828765430800139785260697860730855115526441408636433623667495261571991831503100684270230895266444269713131123288071545332955760180404938149311525402990748727095176732676615666730047170652682546139535958012860758073419045590535890375706630147485671616951461084876281752699525449926308319730912509649026312366555801647193094993960639036552125950765013029501510969763599166664425577996953241641640498241200122175631821684054845194372983559931209980174856088894567122388524775527772460426441454342105133711255539509737681946019030887754313729990166827760721962436359385528017646624490428485170224074783182262634895683779973017890317190396853134702601673153276996346310677079649872758327090545273109342820575980729590646014272987309069282572827581256152511685591815690538435197316758482241991842463182805958492411571200367459721353007335043667236876801725065970924173890726503110156997112938964545355917149760953751310498740362032566772930767632066222270640972055875181152021346097940869793726526723123511359116092271815577182405121466686542781454667012971931490318996785480786224984379452548377856930574117994994395486707594113287501444017664361813741901896216505946960082868310913345079611114618504992720656765230590951330950573376371961131304592078631848015872676778735929973578983351815274296030512232572881085093741613061271022691882059711420215225055511727722643409141177636805092160559087948557717075475138970466844296503007286716427360642401626594491798281999198647652056793219050254517969216316782606524563507926955672401386116987278698954737810504971983902882728478823990602783756887606784588086440881541503488853011125068595047494404319483286039212590364226569764334735563590787066616458306388214285417009371037641026672448981159659469354024523348839839084620125552482546568859111011310097800412393546747464608997407929777851550616316079678869421143781870641403030798924446570750604669398364219734269006729181240334897717610438843518330318993250918697399880054924440140165078599336857595945405993431922668059854364094691868247174025794939220508254515984233602039981665131362240593482553831188341445718311514464919116356544351787873652565055526842478432263627010210735348314736471926325784896060740451518105310184228816349279328489827558294175447294090354774024457313001047798762804326061027675244976355579223469458501332724555865895923076377680452026267615543604201857058829710665278768000659907970649014050601606732114545757905888070841240206570521325626975780629130285102796771273770823223535575598222939610372728823973210298475964611549198519252301259119884325186906056854181990089029247071760051348297265667493929026553814437033529680838948774576693907621580539954132316028487568817812860010772482352922208235461313212505591465291651613355817084953897708163216124743734435583628700075986138899899521597233507485440470445770358531192840450861508762712382053944939465455775922156706404531069263880290454760934728442846129725774605376400162396332486019131062424664603281704788313314999992119851575148049044773493619265298047079827528453860158135846632190073862268816885722797643285932452712508504732187423665251570305317664744795518771588378668649141346436259163732687673420612943389474663286778780858439456280126043760906260615279215019551249616712148282372371477575039486297411631123728176812773558944851911982043844884772849817371392725683988026545154035070029460994087909374258543850453805835081088082548906170062098639950564587862272927411301236705555425946685508379033683656911617059128712254135563513274036732950108820145705615531115933046718459807556985217553990399693474100106832099706478534299354182769808407852621954233910500612806864467088859088476648064360978284867531769439070332669054850800976454328297992608060943468445610485830530449688947615640950303804864986891127019200721369446523059430310062409023480039737260616235400314077265578536534795941045225542530424608900739547970795999321818917626401987858253610440579967034944821424592106663366166446447131727258441458471120561078081587040804859842368888922931650858419740562034374530371482068828417210444541656584009457164547891921228145966004122489485394647286598330381038185139334225139748764608905777648726148497358141826903585852046068337480529166845270048586355840502840218501310085354613623664789106046169486763660905766652826894074429971213916404736454895497919285224338276415203160582843596578301408534669356909194817253197731550369285076609583899768026978099698114182648590497644209066336120927481780172446941354031589464318346476609220996584750535330603265003552163215221472387717393187662384679757889269018075771193634697059050175961579425458627374542426622646583553401056466837450641978027941210998573545252788579719022878936913369553453145881849912293952981436940427390767528689866752554326677935210089199821993046761591966447234449474182358855097576451870149929934410387874674467050464655237589204844942121959454455182891273162267803357783314691595142457188809414681540479742493259062000151551251907474317938300677600011034711375328435738979667770756890242339185651547291196459325242936747742955420688700254643366320523945238695018995455094607304244603876412863610125733028315473802804519946424176347779427787773220059538313286973337112941961329604165071928162871255727999071069177057610805583961092844452480258362387978543200591530446900190663700225582783873105766961486179009676441843569130244354792838832720064226770066194856068249327023206874503711035444879577634180647020110385935977732871296181233473076251199071054235799425614616825537003812022846067001152028963946436136021879593899633658054064916150805861072277316935465568926687271085121241436609236585666617133945545698476128181749700903505144307641494669219744082607737183082744418836641916113610375031851927097673203202006161249662816189631650296244822376348970091634915045159053760770189520678052459667079104152811215711174049431337450266302649056952134417375136498528205467260265569533652139566132421148477040391546920449730287283715303363359861283341204621419605882462708737267114940679182079179275538721181634604180028190905966258909085802796540476908705481079113414534006454031884167421135733451946182613991553021980535564611418603328325093382141856571974422459622342958856996091782343985278669938479566030900439748905039444711719476000190131583881601996247619709924041916657043131250635049852162757939418705279246274921751638108617565829558394114298606596433023739596937553773470180446784790529442071900602863965949571409622410093428923022968595116268285324308295329452868906675373789946845074511650786673992679668183476501103790891063009333664639653363751939040478531141813397681486244830861082146847027263448844409961919543081913002293241400853455879086990535550204340011844524928917506694933965849320882249387983562937253623622994321696500412666597766592244600571269741462932920416888591896225277618362266581403055839264389288885926389200560262531215245088452562586049128637208538012859993277756220909785677761008448555026849907039555676113807282942432604177873896633708549315679317418652097745497720143290397501707266161174556138130930185064524961024658713477201962701765827914351924273918489288925614524847789694641329422707651998858701311914380145645286434959954892548992270866850346803160466435343146086659826079487356236768384164990151121749295826511709233806217567809116073352497238553718243096448764212215184756439312011945653468280998807429674612180825967357196816364246512332776922135931487144960261059396037542413117805336683288048013936190480963411263129526234461692679218292877791539210363218192342861364689048882077669564750805288950022886568122645891598253228662326972039191535910444797420838667811452648902882852782100342815013491626228577512485228162261819641691318633787711512985273512972956075029634025824128196159272196881826145131542520950207091140071321657334776006207310676852898672177368329078639960843369677831596210754568498038516160918367728054168847865983433753131935433545694387205585660449167096254470674186144469511580175229964577688949646340316934096050113115320372236657292767421150307875893389024068460016874749321476524226338884543079982626485558898354488068995754304182476262951026888102225550447327193084465691214803468825418700046073543127873433663088657069327241219049444231961663706706163692992021287771724562384829974490904849791718888774145402580293158932859983058700950152822574269930187700972535005709241404414169156564778570048323614503591377675683149170042603166582273285287968026318670009926030883059382630272830123073893461056020209814062000069063095471525468911748044935359638135119132291730380230313831732960550244616154717944275251594410484983999329548765840258755961688051999640383104554891985568415181428823995270552819013699877312025892280444245365118460110232759325528429236863281452506439019876112638193595471791753621948203011191995879759895114783507475692511923627510236992437982214191261684002569746849705608103088911644554971051073621329551571089559143000788606773812834030357232094002854462864994225486661960687311260669476230538884555440264867633554299286118702363675127637310946369355516856216695268026874583425638528815522368037754703710466325473080883654354194383078746804747601770708518801344314991898122617912415461863761743790165249085708412210264158366708160321384146680066715374971779824985009064146165853515834638384559740094924913475789883253042723388099049746031369515718962901824905391021474260843856618631192455877508306952583510372613463580132533616791785203632170966687682819389576040328308515261699079534522514905917893361213726769830147685396088085098985845788554293844007398235120949473602327388862904247601431990877034253754345165765557390885177737957433647138104607670426509548149749605025174800963423653424870791316311643554100990423201908414694892589197250714317917910436995970875626224702536800906761229164252628975355034016329680028061013246673188807577580288841338162302004957207641092249433447810026871299846995369402536031317011650129985607624745137847360432545413215870882474189316922767248969449440401142675078121923152260981155565472136619918130536097029200378768310103101132474028932173040742313839251303108192122409569996532976981821923070027329689236406445723402832748778935833723577279110474769800061348842501130859508606901486407532929236398854540170250535937613134053252508617861434869560712431360023079919596591320745931126479789542134374942674892675688973386252489731663631034372633601301435676712374554479894169134801428411658467743651448339461692252739755819846916607044251780173186469516629405875963361873829637552023879541867043483220934526384671935442513296814291542833286913508943517408314466166558196606572412440075478340128986936899842050886853776219325860622063753883315812412784501064658945679022895135913735143004524055680495615412543082684669165413414224655453920840062577775922864620972972753657772150496173599022607671269925122769272922886362077603974735329393405044436364517186092869295156991421302330054465019076709620638979633341348784492923447217108520672646292898377653169375453362784769150743375257044377927098571523486368686151694791370069613899751249304654981924183902296854138960140143835194252059703270002947328196709189475640999527579995750335583278351304521913507258941155285791662258855460307347000637038267507554945309154562069805780624757724518090011304598247228032765628056663578712482794584265055699457139313842310677058377965895546126120162346166619519379911509402975028331913210422444677263423334674386836880866450418526935346436038875370058072071710906764856489497666410889704823805476088438527775956929912544572530402722924474222261015180504948420978133085471788336419555611355164259235181392687328577777955264976325042076082880869395676085594429281051541524905182632490441507595951963461897022477443930835320573377419420242626065767844854695670464329138752083341786766596926439706115751365276709179107044860163553441557691990893735926112916633165653595785311378854701524005404455232623230812788603733898254631391782204273032347051880796204342921014170501858536416069699518642077201987647197120267108420424271876693751588071115515901192645452358292536950935343188785804773494211734990593331110458204065318256570327921745432415911678520866617929105033750942489371861811670296823302031813484150762796690306766410087488564866829140401321901022954675309343020916486591598189551774049343356200393895447829060753617677221223798117672017287335534592073064477091482894755551662091077945482425035375568780479695815587880871013103021918474449641188430316223482217810968250268251305606137687638316545181932233796097356127998299045164803931487257961908602352807220011953848699183191266794327189799922935342678571450546398776308635509795357142243078116841261394761878735488768093606702119235088508659303241571616287256221749199394684340756129991659829780350682505809700610051417520792987240499491790433456627694420439059554262059997012630618400012394219246150564765484603623483936153910580651224507084706918743997417841486764649583477648333216350133787709994671180987840139509310633882287104359284284518756722271058947820066102660465195798346496708431336380213018933620218013877880474867866432280622506632794418631111317211723211882213785683932152828619649521044076954929373747098859290018221888008736719681968857705785567623848308579804218537840992626585979906318946322513358829508580532975242912352653660006952623352040842036415930632277782150002893434434968176266381872433788014147743431028272836537754424826466543090344575684899734480425108002673691947184586079647514332897829959478599542524240293132724289293662701735148917703156092117595018943205710192047464939137062754487892595525172792780805739184264202426259373580145559629474768601485736402103266230074919775973742480470943548142884629194846462526247077442503764816085030906168278700769277513651497425236854460942575777987001477195922267447566392674626876687932423932753608353306877423341281255743465482351098463067766697562693429380986176311834675777102502862457077985883465750423220248276900650223929219773490646194000303260753990217512433500844344613862707891806265439587334370758079992525455978151171709675024633171547768635080798362255493026189847128456849876367903542617993520420966974827988228102644683982161041032308211141649877358437822536103875760065283389724134000092721722035660718332062132915276375665935230475842801560874408957793783580166235869174312750588547041348819999131929578193715817235060780013303947009756284578683824809442522071438169085534420905180225143619399130989884739208335854796031421918703355893052244808969117822206249438785219433142941608264529490282820605241109206558518162084284781450352063177369849493658099760517942096787672827683828764681881525570027278240906690517474263661369060183045309712491912635743897463596063159385306734602113611627058828232928609449199131946372697527724348866071223471833791311498276748885627554410190274169145461368192367180009502603256724745841993262593962884478143833216228460731580574419034045425626627622604007375475920577591193862538397339146384633247508580373955980967972128301976722256828866541479959762098324867245616324310704570365373788497783545972529801023539543645753108131102674306248117047950477311197333596039865799179865593466208377486202184414364684501538010442793354431398473973415732617795922970433175695528939182956343321960661660940115288655210836534181006645496616981588162457977259024947355605992428101708518744610364710841599652867202095755214724849659240359385537567255678501720607408913072727047292488671100379334022466644019017738734401895947225838446518698819163647090589025970053883581389236369736198299116390939127355548191693215651743133119854543335978873943514508619278566544687274302459097749271823665281027670981035410324895563137166634498238173885703700723026003652700527121907859273497831565217024616719005179455394997346597239555211056114729014148705223973339352604726899567743725446214232930168342073461878495307813800047964093214091922054677643606767330710936639663371652928554309951679792767989527116090100727648636649857360732537815684578669905684097951969939699193503210450570631643473584626655977717012912855620004091701304535662994884177028117506337698265704327663402996861699858705716823090637462093903344216104626426038135675228836712308394062166274266609988889397657832696307055835027358687656674374213349251561130811090370471911944738700016804328516684078602554793228418658804635683259702557657664431415956858267251170215970984137178291035451299769941241025929608115072994851382486722211903044384880116403752646502534895128707785555055559838172232899406178711169024651207695072787216553217427703840708599518155540123884898534931050143442027148018529890622035631423299010197762869935822743357629787533868330472056817870415960574712470124646234092608007787603866736679791765465539609128434643667801225594953962416141167958523533893533968812764172284674988700260015487447631021318473530697814575883818143348608103262803876243137932227282069227994497945152909414545736002687657382295398802296058094411917363915132708987890761680488507541449193708001166632973741628828468448784966478796814890027337055861153547756820272718994750306831886348850802452039308457238138686848432169546551669594941083347737139075284141720077834002506537070425324081727811553960522664648180781019821118865781802604324960461773751246831027074936843092664323348681235674119972306345163604944118671858056220933250323857003318103633163041091193164545037275485599791682749691378930531726075216744735931527167826746478096798787587509524068000901256473096135614534702379071859902612347542376598025134684050285116394406759769293586255353167794998888621599750585029378477468660768472397313721299674777494583479486253812111489687579426914304361413244175818937177872568578654577857070650835147848550735052738360364841182863903332621800608874848829447448047590045389602288481784232106359203847405718371660529505399467686762059925566875259303978431228026381624045222131732023749732549303643569909086039688742526791808998171668111856062751537166598794676890853401750395947472487984468746197976891681270147474993526643258438767123517570742461012670272829103676723429298757334913978898989083927244984465885040158892666144890000456690515120999626878008289865292308438756415596520714617895477031826180681714272933017428661081485580768477300548684478266715789020171044778226251167819081769253041100390888864929882920595408240828325637959070565968840238752466688207854685232227995665628762812934213323433481390340985984831748014461342504963838202431442450331788844305322655818719000270950879433195178396706680162929843275733470423359174420590571360471962830588776288560336259728756316655128223567663616699613497361528109493062412572762456788834999789221787804216968519511345126263817257606379326298235251010804009637701576467136990861391757855736648953704637373458363308591655939839100746857074684450920974657217877334171968763039414965820851656369072648887871777471114253132080900192437463028825609613901057884196529908391431535069056550787351259521768418091429077038707392733058436536565368706601059567697143937058114350954927845090588839273997335323401972669071456777343506979879474352548869952455315704233941542035129003997815374552195798952092784597588612230227668330698362433958753087050506719592384403736799281296124148162315630329463744121624162165130908970706072669859440719251136074393958840260569546522817441734495382740618358341573927467370590016879648234590764372009785188320248674749118157167012309514908839579148351989245754345820389108210205857187690158882256007123405437731756258870659657619044805191052340774402408639926273820971633249994918087335839381018687691768392231119958125070864439971653728599748831756125829040468971485889705126970669726281450310986500664886656818864043097335947513319126510258592809297480051344427687169214973242818772957922036363556157984985498649633192988255225437939519774676759442731243023404069023037539632157871827065447293913192337439990998205590466575725336632073898493360373326349563231286155549986910474033012396062541394603267445408153508995842578243394481365168505470018758820868554475733639696009112294838382378526908483470980920077907716894893478192356997976484239483400006930152275156004225546306463545697655590480326445050675291076319900085896866355834006998172954153007877541166206616369640170473761447512638444435444471851500860039887726699066133049778653817950988061498797163486170013778574470352867826361509977896786755348171025333289321180802636948387527355772694845052164364439904330407381104888436447281594124277807812542964788256294252477616915772922481568183543940273759056219788789860835967205515842607735634579337106644377975627903760452265845549990558129004074546354902920643673270921189884817845504681070020614501074726061350340474154309864805160264713793403076001013601211146275927834120829843481077962591242561569289662303209128462423168108093015214343126763941471186602340629250775560436668642834011307469709325411270044650104561551210087963102287853688519411413181911396150154180963211398874127329107863204540588107640180775621195319876550111341434153092520879795866999129383681161584491973289999611985683889033166455379436368780510669187844801702879130453920263799870275012493488556816162040784164842033281154522277597304546222796710829195435685184015798959894446855049987981231820295308844239673995944442045087763087295046942885796749144085324416670113620775093524603571120048373450007692677051448771406576898325558360849491397487013910548099544916835901091229415639980356798843712865720973147301161333363927683958747762257808919219180597766546231238221958223982106947054067494825384655582050914752848594200512629197016318696541443088271874993984716273094822698777492218448097212128031232614155322810801671993752049943920833971545314229346083682351214178020954231176589253984258012258002737420259538743100248570450192647045911372727743156769909890815990763998863198412569293962064677373120056720925900566484907549674785955511439017496891861885535815083007748375583479068569298645133933888317021562409229900882817062493425274431602891188434284876858321230903724173597001590003827802274489227469482890692419388803247402041533350404896805388649063432549342130507089449988677035333693304116422847131248444080893721411789709962458260537002914377058457413058095721700498846551992689035174981479085865823031013956981109384984081689306553251972565931791784037974804816509509194652173275825454373877812607515413896182192932701880725130669314929101794827701653617337529440485521981191604456224962232464603451157558792983217356664090764511157277608053039201556400372814564479071252249478462251073228840356107174582698381267846332725694023659432432139438835368843281090963407726894444906313228480800640118949529987796648498897678662174948090240627201775029378506675889703021506044524467756320855520631054610262496519211165948949524674274771101150435278944795310649957800965420499371784207386379941557906538531736261182413831384356913510663535481255334850692886500630188325032241680118355422129346448454692172546435745698862761568457702926931966096763048790611434737064304120291387987394874159733543351990891950947871217443700181920601149771691583174077127709740075114846565313882899046162295339919063965831185630362124950139981998179321922264791652218784571199069569102201998816012739187262871067292490864550359548608119285708102916430527352133190933301108182462210719485165800227468024558321902025197870422431258731526340568502122687059007355084547764428607315609495312156974484262146688859278632490566911371640372886631894857614048403836671173896207861719226807454649211175208517531424368249340077006283110485354546736000990503277127985691574024080891403832003321030727858729848744023831575826933109643960125310184739052703406117368873213858723296113847346237217433333418735629222758415834491448449311441348501790848161461095803341107783402254105408839822956893289863744575273258706940967250493343460205561954835361268823832146079917079725464693394311863395091955265521406675372903387778474430024320860514042787983247412068521553111043147130580175000393760550725975390092879584056844563864998309101254664790401522940590457445230418482909268986732440976245270315672313823128695901437330711160762760916801131940647631832070187241133250982354890291513909834248621368558528033516123464135860307026405243055201596050624617709247001577764171352937854785465486969967018380577798300260632614041258479815633657361761496766099271349002915945739711893945305538738617248322278206349423044785853006458050858057291613735517575513595705625848058959585199524340049108184275238330803699235057686942518336404120252623687980218522980974293347770933989528729371698443288707147499933749398634874469792891869186222821430467377312093438562255377672291116373411051782827484005081809075885404083896840190434959900187686225317716585119760062609889977318922153447176841277928570851735154830981591807706930949224396520385516061253391780562070000121007198417460439156941530518530980700590543703092611429522202157992762851487472912981094289628365293968953841060942702694640353050668295326809999793193473431500315166394499610027563060996804907411617398989738377476000671339821623622082597230621134308679412886336731154063154293052963563251499899989413227398911434238646937712881803239513706824903652479441929754492219382711311144033126226138436363676977892651733056554591508555470194616233401374323681505170306001958046468674968374503491084368014893170265399377465398473897668746456304651991766389545538834317816594906787616672697180137930495660161875841048380366333328519664092670045703004959941789469346445961165759321857859831615450583045812023947325774234157869620363332499444086938849819021376956250072651311149900383384090381663778240491298626256955344744071992555118667154673712010432136874226045779596344475264533806357352329604716907286302731110953076517975026203029522771627589885653096440759358322796469129383108125651307308761018808879471588871612082806934471824056258155399115789670736276289196377510868304074483563459430310853089474359082402566521459003140421930230695135942188076412996065202511361443656015787246321694699412239649508201824526161567289021652237776450926546762067417303498936057068465662622753468573921792737250540690163063801562855039612665461457873524164329011053995740808947759939752542265052663594375416050564489946933797646514686971204112726061899176897596883255687910190028246344443221210796298187731731274443154816791177694405610741919500085103314051314547075332168785047500238814667369173436690938654924832287455325035229405024282009171983932443735847479695713513903216173673023038053831617691902388620794624985469964031193279705049781716852845947102041127474997578355207589894360346809691652941623290845050777203615772506324156238399731074247988010155887684298495704787857687241134975908293351534820176332614370388022132679195795370764621824139522227175325145456338777624301676614287400363343308006096969404698439630012889090931247299831399852009697297595512326104964093396184421567000022207941873502728685764871534248436070015124885175803534413009104981309389119578500195074697311571105734396986317059485403533165812263853501365765083056676453349758221626886794855329811901631819033995828874916683989779882174806151699930689201122471172669252349779997486140087959642962877080830284984173624915818921297010355093038739611433647959003195168046161412661914830787114941456442336009964424500925050502998075943968281157703393673019777080774511959133250075523857616825984564191899586482889134431532916109286901116817286624036453869849462943633704739747770702210649340574326683887915064277722040276039622402549085234274697938405263865191578632980394527696064257203561651704488927607671161925986478757031117653141612860579172513878028667731607248959424074448096856185733374913454730743243835005454277523691634407617537716468843823244247021374069178811937819809275493819507543558168930300058746993689616220663911705659335285857161778405639401645986439919555678043118699964654030728572273955992799085583266421329755829088924887307150951725888018948933894549841793691307093231152429691354649710722650926682068093885701317982589263248868938171831015993818072096862350351184562384158374080853504151790790672253695996194658432534366727347227843503903917397027024417198916486660532213081572700990580803796053780482291172598577940475475875791370266048543402896795975972905585255149175760401745116561211766638894833850578077193615998388023926947197404144042781078606038940657267459254482187326755086806622918932887717009803644082168514383815398492970911229482973404301817019220936030862621550354684574159515922012710632811173302208960362112575807700859390746845155818314575008199984714792632716297616952830398325414090914929713916549977951358668910393502363916099684859859395466616284017390301259945264458392554776028908772947126411711368328333590588022470451764739688582682418510392834304205635581352363602471866822335043074109631532798396345979186626536502504761792594804192231041291069859134454056869127364517781121266408778573880493701850005697200967934691951256866357145849569213718640938014376377342846687337688875407820984696483262845627984920604025491905637121865640441048210530518258321211053391561736750229282474058515025967347805445916054598488172823394109656213438404179755125346712112503238644033404038808910618640036283191774956786339270672654751595948295820396260527274395758940521433293787297788489651793522845258289725112329187748054868604586923246108643377689222022999240593201453088151077638992410408701698459197477024715959422652934725414243711202130264880663765657511719661896128402142688462087187429960156456433757952793606060698648152590670470797896118057316727991623918642566265950178449505953918052277716886568892325795958091015165584097748794651116578363933273865212299783802335351069303770949940772819576960042782306238254701737572548874137429092593421706067389894847238807159736281658472720755573603966288988318567111748225771978109635639030143024324832492190697464904706881472309743409404761129376604601388157925253901241132384392462346696341500858225417292638154342586844675217441495799937486869690716031426088688655475871678482195944009224266960660470113822544368592228805854193997332484950315758693459821741199131406186323290979913137919656955419516635223750961316199350206732802125771517967424051629545838101938671337879076799127669095936136420150672238966586804089243608151229630945138639882878178820301285419534300231689604964932590321072674641700554589883329265512945710870976489151899028280635227580949115732391038079077741180947064985876555777155406474377797376955776411246270497171869847574829163699388356245461464711943217354619838091301834737361537049272380978152992242843379088426426039073693796434894181125831455685238607064848825669508883617773589387289707713042970025735560215675733326693987659602322625064761862420632403962913726994099278034007285829213616674494298822954118531851432048736050831693879037573205783482663346175346768308692106377811322125979897472638895648859068895809991463534791719886886587155852975077768093952785036373103124668799424249079706019848697696944880518784318406276330127135950750213423965804267637192823283174408947623073315939679422246995586176543388690251003678976433473839661868259709593022650143128949615887828952230433249384929288177351648698380982758138401690556019138678392894633304349077451657617612810907454681560165534994656678346532947921874826714965757259868662856540288523675700990662519513415046517451797262842011183156829909135311874926061293854757075802594864855152998191404677600521956500647848595005319287157445788600022229719896457351490252172975756527503866742148772428924197081128313932867272934801707397485837249574888023189121863120067873186830521307596798541494952721898851221051763638667989361539626757602466280873364731394605633280729909367544910358233301835684528885368871926018563492773141489051764816122821642355758544239732041130503191210125622141791592215453013128269741532129275401169799569841979329179494985077780314070244251462205705322724186519653652348057755515886358065705918007825615547924566147213598225483438491413615875711930803242554323585116216531190272770704150511944161241303783755952525668236042664011270784817213447362154913956750806492183768240470305080910039412474077289944973091903315328931514674765560562293238309386205079167072488163220393172278836481418012594571502115139001917186901185919901794715592758153662723893043757766901297712735034871913674024816605118280355089342417120652898303506421282890209807471189026617425995626186055223910699997745547566432373520071258508775509794660345946487349313847957820046317540953413330257492466018107420273583728248125854114561800099690396744343757414478200270315257912174917327323179781113419887617625884736346434665984249458303332743309519464954548736465738972820535638954028660805802036714781681434992019302680254753170168268406852294862328821890078546288896496951242655780086659955937311506308430740858911661924203051217624785754042760401579535942480798599199412261432815735430217960340006232325263403299656335920589972560340835633221368869399464810650704346989916625271735725009141888876839269617750468485760428862659879714635859995557628905788843145389027094771153134293710370202714242415120716178208639515675183367610994030728112681384042893865488465245509683791837328459239349535345521655595811123371528775651278469915352374796937974522755564984436513233690618398506341345376169480401699747802020904462388961276032923012933635677588420889224476154653645424479705408906142306103417101687559524954349374983180775858774240278185281430145381448510277639411494589573904655777674100667654002608236447441796009752477672681860589535865262313966502822078721466394716852886657847809683838403027115478175650250092187093687134999003587170286551951621935495257189213265662647008234387761178772369546870463342191887469742382418929067159749259600296712938661384278801213255889554298553026029538618681173171086660196059778905650433997383071571479319225005757972311428550912016783125688035885755643650994452030735761043838946056677224419301996597722019126304504016215067066404082035040851168881150196275108805858819790498803075833811887702190403510157681413868161838443542193707780376798889893476523317346741432586208152548881700194519489598655479575076289819952400425979552399796883410863948704715740042296921128611345828410870747539555287016925379157018101743894086708450934185761727483598225346610436844654965537019483742715403349431378176138753330741651758297279529722951939619166744322865308504937174520644662172156985450892522200113038816650528621671203060710731924610051899572372752207658290376209033904480367208626850850779245602761590162070299048578121534880639598512631630560755897868006662967038615461956009931425578636844236514027054002578173159548507055185416921951332215556235054212167259537635455943618865648816576871538112187096892556985183123160607619725636938847745484726573220597043582503194008418419152005323536647111682679541958789400011912114467204468838561890361887782149712078690961005108413641058196451740216542692816725419762561271504837395131077588428816108619505393627862685403684284759810756619480972227302404489928766283071494883378524893889189097238613004949704356799260108094765854211374135082560359461231697647613510901804087992236418748452864021420671899764604160002432702171181657421739382800583496571212261828662008868736028821260540559941626039743165038084435694394019246679198543904591341866626324348383897416657001406474228646945492590060552352906973203152974554464981324512496174317926980824818131973589416318686796050070994017958233136380409540514019516399246464616443696941578817547702653768644752198930820383447099032500997257695823459195667817548607265594982499380464383582500937125902811581160317512314218839830801291536026660941391804080821753636401975268342669653009088622642044383165041317954607536005588098111647833679957415722026697768209291522384506417681038239177498400367900336362094598194651423226949874984903040659778400021014225901963099379492467437529746258713655892476234798923896928424728396342730253079116177390654979767907871449013600797578555663978659770080383009701650376592285646863710342499670305369976000846606661813219238831746335764700307240313538291683240415077040466143029810550405409664643710796190825162192775125546985646959147176810299876497666301094386699286998076619519114562934984982185941602923934832935659256347335677133849697617081039000301456944511188336886182661374937048617119282892445060365169392267349359241179679711728565888550284038292682254821696318540184907668263107939635292909892703938552462422171302303217267767226645230834334509494948028301894792431601265873092909094243089648022562651736788840281583766222817120245317970115710659358161339114486626070874841584046558423341990599864128072632321642714644968949314882906611418580263088473659680080569774320027138219801338930159342112511244206044413311203718508897639373505286533616276259431171635522212920028307552839959442730071720938982157800856343312983580397406328562716571222059933270442641475841823857780521282070067599496927815866959697040991998571371578287859723403994024248853392314744126660746319985194524856190602463474337985167554535821815820122858348706896111404763438060980030581199554739190598258859472845032493461540075086501319383843855622532852473496224441737036783572691378339741087947896994265506496251977422725230768878002975405571743659080137650229323947859623684000628685404758126763621433112505007471406169859627179275345169215315775959910458281636542826475374944383954197437626755626554539703094498250205708905691298370076988126073094930658952840013653348541756801719153765902631648415387099402585143614736567271610415367060785669335631419873123123832593931028271213181562717927895085799661606998591663125336041277552948593120643934717215106615351243471380995787302291959992672022870059360450487754357841477805630693329199226940645381758786452912079085684686702086899690194276995161454065071382013638217975995355655291683883228878678823549337034082725330116657202819204457673208532101175275061039930219525585857258330552711049089256936782762709208160083148451680749649640425230932964133265457416835794727386471166204628964933705567409109338863703539286295804068712346460426322897475849093462193150392532506887723444076332390559526513327239032699629390202961910890437732315208321774394306537698253662595176028114694314026705038015078655283193832147177048200169786193433314624554908652343213279572562522365670103975317102823342847860031622918085588895793776596404872211636154904110745354591615223795052306520247606599168643649304134680190769271852312001839639636093003982652820513894583222606491297721022464547937666350656667247159501748388597674874066991526948297367024957033197155155834286840596237606070452519837608468168929783590905717904685721616563909685841899333289382773159771396516290454013766060839433702850263187897738785366077806108653652833542722962811376266276735732525997561962410353365832926198058319741467780938703006794772605836824040764551226708259508599803982826196685502707623713154648560474056332531702924291080145017342745952857241819891861511191781074950315634029934824848076892029074726873156293623513632052641671414883482399070060302194451318053723481197681144771855998705006043461107046725451267312011029236808162959903134315332515614078189915216413188971762967142689586708556024199121316569836819729347260470858071267404235970996861645881048945822045683433884708726498909807648633442753321540232272754105118663076407088048196719471642003952671907534942541931047803308881720399033081518207437629133611073979604114242306450126369249589644808421725812111995266794479504307773839375463824046870845869017538419127986035357319739423884544473977501068526642259706741669105618894910327750407038789229750697554503845500112104142055132011077372561050305520076635986705795709287858503375768043946658151109902736478078252127190820699840672394867657789714067875324078486250217987326894018623191426687322124450621249638129449492392222390581689647275054649264926688927470669994350592197231811699411713074896702733299324603517855126180671076492718129636985652991541011340225108980204077167160458856654611121641899165553913622791945220974012428139886022950416644603246256647716333758656910341789773629864147257480747793614046968725730297688210872357912291844481109037449867786350632451903493274111398856228606140220556067497270207349903414609192570526531311000454443184385022573843744114245624022476066710611128867679861632663533432417669301727924664402641701591495805469416834433146679101064145540802976434121016830297908331423923627124568951838527463068357417012519881913214318395734429222671548524073034786524161762210991356193126901344563455017524787172448213349754485550652214564502042310540330028034348042007701444976814492099169614095060793445631104707683794991978580608764854024021525751466744713841192352950394554330132873467132496473326192772838980987594088491466913810853899751341771430908058962021493416009926205612179261434393172830430129779630408252143445329724789220830651613498030813863632622539883476905226516741767911617110282308272012775373102700657187050105663120186259274882101703057470394177542288020209285668672651611121239429425375374007774843059447147560714392363095414109678414575003792077378322378143872177513735254507757063163079611879717683603354032579525755495258947644348045009339767262249764785135724968141858784648083710578102716469554792309695785496795187527239955152902292361542587954067017566585252968740827764969056913268840085537974001005704367339103470419678442105028911740576876998212235207137893348618147491047936480624147799196837854366459598966753832201145976185830391037722071568634940584632965175007143529780899047423126895027920275873791520752959452193530127909558935243597512300191192826919874057554393469640716113227098733173787742413019322408562432994604393880163002413034275899162068861907807177754387089964651120254688039442004713971597957906458464117037458436146671093378011950313723156465620858182033959122698566372703270851576493968416740653096959829000285677056933239856566489489801561523841819482480150056643312745757322593676777465942565653856755778292318373828883884744547730840469503808643240000487960830997152626443262612761835692389918942734840211722520507616517987498098838501050338037953031258587837507432237966238112699364413616519765731108340162550811178649673589739922865330381158096566763148105238187117177711945712631641302944491963733900841788324004343722107423483636407944085181310089013182837715580058116188965111819730271696754046379375791160658609647425525213661848721754228752933873567309114323062533718357389612239207910971344293132177124642866594254933171988013479393141382896040219923881266824846427224612189952402816967589574632411080816294212483814690738520777429130428140487476481459462816479835577524089100597076470285885758564648846600520908488226593436692689009100929130493842975611122134538750537190777208914369230400495321247859042644508245982280528548219458283469189628955095298535442675996435824532177150001549598109041228080532171043646115519578109581982893483803522781844402222489611974890343431413118221604025609564847616920278060661559553327954599431056728676362988034133470771188279152370967047296582510855060286891342752720781807186572805894951822135940705661068733657896114388043772113008513416982339755967717183332168349415994163662947566517264943049116245317254328863907833938096257695388351999731275759552395611515579961666958095626128417687381249243901742292386424666462200449393799927245937566105771822371241037308682474832802684993931427054972935655486203071490737431680830473968418240096421812247476382462862060546499869676348718692439239055968199219163988293176314911107589449700328525274246594484620340417447354756336946627159868396571350879475681810307731345032619301180810620336840354355730014726471993851471007252130775268301521132476761723449003202174886238780724398388705143194155249858498888638502618907642196796012186858491174282527512276209938593496745762607975753625118791684415386120801362780238721436589629255016888606639782130854227699615675156606040735956027059609120015638541405891923925671492172248988029173877366641761981732530496764749839036656012889326558695655425195597110779757553537831265381312445339721414796503886807546381653974161435525620030667387158551632311661514223943848080852196061761315796100457279581720718396878099805597362464718412165156725818629135717562172619508483842651245259959576068833924854357150124028694909498723318285719595932382216610854391819622106174110677021896480406763796041811260825223299153845894540116308057567827980034823587996959416253327241095526170569858568671467426950628272738068824572909206309396982486967292571537040540503317737101610042405339048331367953342467993725766775182213932829248445649758000783005768054810522603816178482986809399633667537712721623826619070039194254952642236458888189180271054336483475027036361825996069931195633379583711750030091661710602298812399882153388903852386652694236795187063846650721382112378671439317956586804122907433379789975897352383161443652891039926405854608437764027344424063384692720911864870112335278330813006303311771083267829769733532323673438894068847956186299884766177509831207354147970491779494525692906771098782994500628335390766407055395101067085245055857024042644354608222146044197565728068312403701594154287550101788208880361332451221936266120508772957062387382889871755842823441531786039025790534306563877396712756362894806218015406216732205685253676615398788617190004563198755255515886316158749922258436817637145955226356954369890249814851550927992424226778205631586996433225969367570003534235528283489975869030578785727515552181929869988809054050879068844672608033290409370554377215486355223337172935138087958647320766384719831201330434273838497276087676742459706610918251353223392484656051391961846657348761310318593284495679178883524621109076401874481705085082939554789069251843499048837361752284214955289245332460301549708761159709342917332601353374747982048113618692907928418424670155491703113000240094075480022925842154638455114659804787732682490122885982018530850848387029468021652989974263719567865754318459818593800542350344941853800307438221647840227065507845780039989388194922372987479417560880877063258438731118387872503065400122056238322760610750112252660220804591679040545146392862396456048463744724754678572096203068953204919868480836082007065697098004236461936639924428823062361806176483968527427992906647294670928635845645542186884252102209854660062498613896883125384777429377221125572252623685074869058347076004993107688636779724226849306952023079011029496727946408179976809119677485586620719140296475953515262789233508720302869181939026722104790070105326738754063995813292026672777233999149244200835475962379501533029664858506043314884691675274865567938789384165000616436530591881523784035944017322016995636416575955914924849191202547704171358745153030265870230058130366693299746754353116988441566713480494933770989076198703625284822539567379341598285403894136181353911782761463502889597597888430262526888848421788008530926549758831678163565530299015429035755625399137599120965092115251698298351453115597987232176696116715563875863496562865105227884697962634683492715551848807078233512772211975110231976070046532116515222361223113418129165327564519355141403073703229519261174894310667335039256045096190575373104949365778825092761488837120502398318486101108928103953765415603882248471853222447647795408520354463477126846909558534871157569297916057724320485594950096370849728004549799667771385633748638428321871818896792785542640531388898571227146176393054271188196677438416247132467279294661196726198482357334407347959860026231841915141403271869982224218708523316102464913816403004329927100400972796376753757279545586154451552527751789644170357232092291003247448510252417666210372059023663047323590086918778855838581323120025653399208035763662445596379594244330563915397680302930750947865580990782416646396576792975335755700699585105281875191517056426464292501375516061301931887295911605673592046741963256043323183580581365560984575455684089827246736371604787781077456378606422984554429984175839042950898432109623300453084356237932638159425016307610552345520870746230400966218162484779247983643783876437725015288742677907833784317732034654040535519344622509548804107422364812340747128155258288179231582417176519637903954133265898166170950774473010118257608743894649128506290775732654465402222055022589348268215044960463476261130767370966100606128285540954157645827543850163407698634103431735670310383550176187249055120006999893975412490496411849766587756728948095768756213442326525952264212132472774806243934411185836044279352553480552381091439570786905414179324579708114568808631468156268552837638433419242481013583102781507847138007032908529851949271202966926836804133462415013507791301232032220951399691993528622898738954373789138110131000845564640182850802332972812030815425106412866327188446450334858230379654221263619031501214166218861668408075422448233328184517034616682710302657764226336839215338946750107796875336355060445155558737520032461060938625774937611990367291244892909750271712578832106814974159212897571023900191104039453547605037465944681761205786926161091492840643464776255737504806818601278090401713549606558960491892568171274760394983049799759375482032560499054567063097058270756013039748256103240963433122329627749295862353420944561093458116843604579991890413443031641508366483659274166416633134204968404957295040822386023072431883328541383986774119961670928258247837537693324187137611909088248998379724831384932283013415732667917231155441897264406074091852954287741248298048979341456650565704255642155753139828412965644735097437742494689278997014314977763736050353836752842337096071803502047944561587906620235859216318701953120528938319319933921742507825052092908075781495722297358419783626719112920858440109237800455730654948630810217136907956937726487871200166125815958155405964882058035330059072592496789167426970230872408114284042576913262645929656309496253486124696869019811836850708378059113982469756975317526531238338305702039485393183078269497540134303063773037982281292509510037606249603378649600863722226380564416001120863040404702664341024336363780565413985637470991700196503906166994809519784079693832679271816461315404038744233641298123002883937020371793970157586202104410261507735153249242348476697232979100707957976193663683679797449409590506271816270937243072677829434308840396068148259888052577263057199603519475464709544124771229073615218378326594938505756501964364153189263631508891594181726701041883903929725299532195777238388273042424613419763325775742045495498330377975615982279947663369991692152204176951435887695170115373964599231555163908809633382463821331577994670043785507567546454718456443951726431667865013799793806208322219914890706006374766913140849358666297858131331435089512326441897366651122395728382638832409049706919284346717263597037887387073411153293586558696122635834596676021802826197287513550406165793101381639435294832491217157518411932439225921764055398635472066544880740752447837422281640443453239305758928617134526980382793760797081635226120742434680344357178218497594883953731366717359137399971590611992150914554766116488959599359626593727907646052199529470627706343783400257068107897054409170712245484540068130315224373153296678647268352631527823725433815483067745095864419850832512973742846027759636271808050384999388171493803984031497283289904556765098027461712363522264551458892823147862128632610317017710161558794073876043536727202442325206775183775658025084610966271677651882343974613274696550707566552398946840310353484608697488599940443242930192736640007938241372106732312998998305389545641572065513128554808248353457106920587665118203676738077757841995162771321819426018523718171975906476957244283651785328739169437705254843972951539469314077674894966407410950785251461093120464246022556307492440836143793473665648195963341490207183323693792343392513194647734749807823496097898879127832667496425528892781646141707808104868730562966484454155205971939015588096146195431900259307404723315083828593558665305576160083038231107420339634402940995644704658794047328095403333614844227441394591163268174538019143934596648356285977737626450952341049687640617467880087974216819101991893058764317319463395090408648938280981806055151492293340124580090958311089269979182780120837133979199652643058836362374144044786962588020941756189504729739470651274767304145689911574449650449997034827125385912118378055632510717513097259983623161239782569467209349338582114502318314720220950512912277385525662724589697451663577050177342753492303840914808663995954214314327201612716327747829528786683651928148445005030130434628367155524582231953347284421016462661357999783230966053617421671032033850836284726857586935229531578808542283756649535216695464131858784126258916271189016578860676443728882625476845317461984669849153958104701825580156780845613435576788181364888621456935746335091100752553234839391284085200733266897507220583130637191334191098854538070682824110648712237539168882877733839180426009552386338448281046661808382032058558553946692953424034355424278471560349734993249784292704342613780322183086484414979969396478453336050933426279872363212023798213729399392341410869903214421195403702632107425368385550561586117121363539393947796732188756583680642653121685571601118202483515195023831874232368246661323003853196813844116626805485501719474714025110829528887466788238195263817351624828612388362687336369113825391921900354299481500157137517971865581146871421283942240677652152655535790900593461738057704285214036088499621622020328221456666242179940861668506944801618490573508135144436168650313452943567858864626906990123342955931199470814980390291778912908714129358212446759062753909783898738207651430570671375064694977933007836133541423958602158829917223663004289363145340557416180667644071364483916296472822780711343371752511181452375501166899358853629815597948807318082215465712204795136046814485776047576344992541651162920711962452405466372134705622970343919469164341179505678606397293648482539130901666875141837604309585456113403533071044025257009545697193070063663585794374335074237926060176766745860017095874900848905276503705400207151381058091917906564842456331019473445545392748215895290825415414948360143699680201858048461383257703837628135004191019008504772672326562247029790008547852031070174116308550550033246156775515463574824172743233386412229386729998007159467544570085040177499164382265788127357659056760456932750750841562449027618314326181605952768381325846114770487450058758023642592735981079907213136070651090481682190499701807471497932539637149412944040298941668999807544430625493455004687686293437012984769435190787127899487207541084780515919989778176373144883391929956395624115286068083437855607655765959737960212110307884526060602088633409894365759836614820637334112200202070587548677915776415775971611155864141420066641163906542092976954147319068087034443853243751678153258573762931421563834531291547788165572039556783912233095172518714278776411460034856499141597316854653389837985887365883457579718772020238801433172927929552049668398055447122782357839475503780245810844470235341084196493412637136179044628421059743152622857070318550902439401908197707265711319204650318163779299861090086153475628946585370228763018191584886983540061486886294112210221400431865514981415482190657737572219233099325078046732542399401156359066343273089292510362530605885847247868248406975937305420266024398418269447589750280110944479392305599790677631020853001000761927248761364389726654382218266240688988474729059063691540870212317861363759828875539956946065086595447104781102579938881688543098500227357481849499769667665155203248264046588209250524564672248074528371568652174639341014064798223918514667044407156485555176231464057760523724069367467435921555153835182193535074865893443350788972582756225971312296103454080521173253163533313905898539895226515493492402884088998023020992347410922246398053897875319833282905526429793577709251993516866113851465547095183459561579153518916956537567256143238416520107855956759454660604505602095809655918772655744018758689746280045883599132661606839822830479841746727710272570692020801640535418574723606202700568316140999444469369750178708398204628867579817926453315960436502718179181088146621748124756141105760920743068058694569061139224897267220020405887022176970477824597264927495621490109675346779611176892067580275288017490691654799169918313733486488868549208379733060668360228345514540928627277792322247537620841559698179977708184786787668684531497600754871584527100325645211949426928007565077877398789210606627586834359974958219076160393112845067606339931126918999534279358654239326465581395452062246414209179017157648530405411974190871871327407973625666933377075628277584511506190011149762791671974245829868455783930986681075149503876369343257381483530057672974911551482163022319959860642030303490471487169855704828817669201593023244195276519107008500192095401496807304546026281387162974042866607531923973283047814806989907746399039003786335005216417216521411602154096586918516651184752633234786255512110817391771896686129033315026973020393896549195781885024823050874697044173827111578705160992315901494526923443936466815676971188164000489212498881387809729173538893298423816250755550848742456879372009424534534245043475171953164253260023516140813157276564637759840880652104052935000308117989760023191165016101321065292202189010404916542386317047406578205569487644075844907536418793037963927042884819132751715392109763158809504190222084523146414872917929126447926624152676370690427607587998309712811556174723083490755348018206697832241381753872899200190017150918013919518414680729860178352598881246962264233174721500665692101362701435106018475410642016606487986128667469043465622544229231554605726672078864552227687164693814858806026084006567075643288182624494141914495904762497311933210960497019509694734637242590883672249145401302995214423578118354996384908459749543968762581281744057134475311486743555230707733536014440610971951064337198183406712111429522703492301232528630067867842219186851125939796793286687219328619474470471601399031458275609904508276086966881050665817918283210637480141789962105634487038404058673689322317338918923029077864054131187202387833105601708652897382817151292398861411730982839905330704404405540294325855659650941471344870797224232429389450371462733289817515267093172732437015496780792600508057790115826849377701372110672964781458777821100965498811901363013952170581171510770344632989135085339149431091397257369789467613606290974156290298402555396774072315526735605735931485735394396062752594855643399654368947865395820290645523964141002551901497966444868964251802327596681997424337151507831473557043549791769009544646003929787137437097556403889852990406455526718750148150339493143089428378830018532282557508413080039935492904140371946491189122576996542770288451447074683493536619160703720656313944319169292933220883191036288118243388570215956017647601290990402154489547419903735256015595522953903677912900056439835952017974377414113152775675719658635489958413947757967156222065375836214197880368748843930124383297361547611025233475313571718675968492357764170990580075865402852787954213037707855612868374972551941407717476975787353592842744495634007812174478126966210881122162127000698933469363369165631986036225610423736809264272107204544284856925041578898425317402792502123246689774582614607540354270598868637357639101278524099481970517647589487682108605530053250786704427248979752985708056503400587351735892956294779443990845226325428563541491723493653968856262861888105453388591327083715185240510446050649495643226105177586411968552799228387241411805167316862172761269979960720889881985887000500073919634461747565965274673613866093755704862670653013838648820897250290521650991354082922415199631752818525726362089883080800099247917163042087292634439732410033980970523127783766564139960421040133600651935988661159875975392460117852787138103019469329466587482078008477137202285977750033426456645321700038562627130676938534405071726126363050541785502786059509288205399285756064476929066214394168595763477307857977487776124492585918123908320870374670439890087800404123916575721791989375150872255288283344881994991013774784585461125386654561158564554538692041712226098486537554176360521901615575107817679060001207208304150994430014574893609153711216188464876180799997773763008075976885360000733623294385346509899840431615053007388289088469895027225942147109984656531833085907678805615796212434156772533390860807679559700852601160859375958099846629071774344576293139568200397390541041035179080132793729449175866456454147775651502537586650878311399392469784232409582680474873667317266606036444333760385977633639296132754871486288454468951249593729081599306275768514909107520976485916918788983018349517612279066836918447835908067746023431775346470090185457431755554037409468813216920040888667047941614082929417732780562182684467233963810123055218368099236866361896026486344756568548491398403628116303270317688063803024926466659819921905088909710600468907081310341467119557820122077984733169382241877255649419011303378073219950942743875595757777151366684407676377725520889560556321490172164751122376526356173277488165303463703266144773578115025948763865906556374449121219451304398241510623353318817124205583521197869848968907367202987433099553771408439269123954766105114902998835431946746516008066968178745036466079668701077065095236862557602370786259255897359220432098204137924337197275089059680419683426435770435250266123371425746883748587416156507023137563616678027779820176880290250695828559868086461717164871551932215131523458005296816590968025457279497661193745362822101509602534833999870957857940513957612487358696460506258864557019830183702313996785353206282106924281538400022338485842369143986347575866810536144369629175041705322987589741447300486652322564217874931538755158083377928798667909387770963029386873533227969979667668835440359986772239579150933871602497007662299565729523920967014310493947476340009206152466313532964239741455776686444348850371287549924365955552336368361919902604375534448055863277742227479525519558997208947952591104184485678049852162348186284627899021847628523294328421005067756571413842764635831323212088150401064682676808032404218229775007079750558758387667912393653319389181066943089662582316217639083940953413113486494450318456363191361746422012749520352832902485913459570148859031056563964908065195497033571143164060580340750653113114953846853200610139066199781399739695199055085446864182964428860491593523990703462534488523118833555730970337100376871312935344269008577367192252967056559817737729780383117139700033747634716540154654239790547480324406076996717044690761594272600247215581408310805641507901675475617080292405595406564779492293543415127607662328937884010039071311759016077429292073264626296605864476408234762723930518965143482417550730670856455710077669584260818441464229918450753715999919899265994324608790432415202803777128968475266173212428384143609763777908633167071371148667332433343924025642964683972893245994873419803943634416407532908837418641301167111932525859318732605514170683838681849699530505391342189943940460471773447294857487396580266869247032762239746628979431138451834942596486161564249355646261194151252520064803716645678410511793367651889064831654474045011437023810227845891179246132236440309157329370771291938926731212748012121753073521187236149235744336077092005735316683593639179090354841832805456160554395317739987451078411444615701485438475908810495642128165603286816732978320180484443466521928028240266721555315934114777202225931852422819007806385060037484038758409292799938373202544400976186675930507603607732530555586360524066872296190636928245549573607434126919560276052555369001970126970595829354843951493113379388064748478776960591889876073830748265779666851936962856993677802684107288790312175666238693275092369620882044256732632773441556708184544672283026238415339104203764210678522338475474221303101264047105270346278479935756415143186674590656952902033221598072777395086434056393671631005943529428074720004404460612597560288235660373867043586117062638956449813960694487349396034682584838305413981615113443662162862099447523139912458545548488231828431891541915112474565735341635281096701799322422417543661048075577840457356935145928650465495845842807149784894622471782651205792260700519463870407712221970065171810554964429604546739835855334592176600810538083057563331351571677334023453385047139011202821327393392645209825486849648469389449150613393571449868211133049360981431096290041831310600811904806207370414721730909419951863112591798257266306822777594467388522311221215597527778049340150044458596681796308146575174582120435671169960279190649672924349488604566998617430214684717595436229142182108422585721202047207665543787289608716993099891958205365900960380538249889572551490726964743563739751862894265312186437347573828461579488165867246778866504200584455005452082107678845554036688908044336969221552891566892991256288134330701882635126726088065884587153160610635252074299710228462286315477579611016306159005883600201830361945880664060447266048215892808525205646438752895892296972580213285356257604704092629307152901361676356129243604958166561933522622469976508885606726673551164167740534308042530703584762157936939976624153202237290372881008897456394607813980933538279742742198758212485759737643522205907531238469627469890568299378702067532152529839137890810991304257912300745542330594196669437344475020878502092541859366778111823130444674256739813992543431219637500548822157120112711196551580492119123353563378436564349090169878879241305796895833500411045621524934850190106575931728740864067539922439306688651805042551528269024424390419475867387170592809628495579871745818552357237037845816363440910538095276001595148663684468442054375613523218827116553018190057232796418335711930136346518681446563906922730317846430636546383375543026144274694238294843790192469457374663235706386526964558604681125018575475119263801974594714529878245548635679108708021766634847287065671941111510544535802576029353689988911991625457614645977197036513370511136534636289211541731042281421245868034769448993059196214842092642245617748152865991497435525067914573980502655168529081801946399510437120456382767279156886012467217770653166874709715711213384082189723656176340941146666572460657894813391846453708908396774373753473095163258104634045464458309194170342749361042499168874896426965301487358450553901284233982926133929515009296553207291622050421647861283600472441637826749320087583344832614544577169106859209077091696563694856654970529529551799106448330955459622882814239888243275207726346363760237021899307685464827464137825903946571358185192411106389293334897026231953761157851964139527794584463877855677335204637710966040882892669691744511318918595325617254811796074599247327258651187061780940216706760609348380415552164136359625229266837685716552269756990152938035518859784722076111939411689177336363750642858163608551098636982479075569433884346486577435713489449289034268588872359306385124693415998075412714086958603637949013633950823151183165785470591517001940232891795170738193268295953427670516968034419382132385508790501618686627096257475843024582776346526390999282113429313375227135113353358199401416394622081014399853251238585231570228157763156601680664669892468659428681534774515908157440012017556647939796269056121160014011187548090697093698356412748448443412571637640452276529940199931488759276375549717749589996591456208018609510039380315223770927048763215180567559579895142095563053775640453817651343131810604293022048114178784196486351202116945424059271937944815227592592537833069956343583508390244937388206700584920594582129313765883052172957824402631355477287424185639289192624098687788269564055751782533470200923767394161493466838172811825356617732499109112775161478883662022032148434411746498074369875747248513214400735927154360656494599777394917150851169323518304229312859295550743384190580871013615394524449077247201402315211584067649572216635693532859358689685327408093644118646939292060526420261347447023231651661441121848878389842405544576355027634340755469244027837748529645896004283918394740861982988216652693847345936526379321356385129048785898480858915130738567383456957837429229076091911526973136858040986996388896221588097327663571795846500895450275322786723219043527499834569900278715645693054555933085204807618998360945176102058576543144793430584013227870792903694709647996137293805222939704451851082955327130525795006192660708309598290694165440968764157880309285072548163602722224407030253437228896744785721491932818162088434912637623663031499274659266702201088961687735903253179333544056975810488357498955689237908433300023447000227887243270803686893427918577584465200995774186034461261003851399881869392066584217189271430237653672052439975000283912844306356737695478756399380484210067544703563344511130511358019085247965147244948229512072077927041964227321799486717373840625738556410680264579243125780907374603015998689818267878128795269181383713718256252717647312973291634960085618165176207426979822879268787241695140824847493034740647315445327115655102300468979750656754236822053074721765451646468131570391373893741062674557689803349602305723196924871687323240486686130868329712354638449338721190336938111264809375894428170775346000552087289717933817532212104115192565000078453607048429214385155493087277992059893921066107373029195550714727439331269555152329852004539060729540467862735612291687497722479411512444634034979321763905899849103666956101041319589392369557881638332943887163808892747225657024022825401643471672019967975269326798139383241762024144399192025304680912452860139386648879234935771317585947255359665312132415504482704004188312136311866073666545750778305091492507784889614658547212136987651898503648992973568896041421096953352531500792187333802039573535162638583444928536037487449073945112639757338677139137666042228002864249578253489020936432742369540827319696467600140948439772893931038963433846888466420324244998010535673072596028086550207939836129385242998280620438105490189279098552296677039080158572342644491818592686155300131091304460658849616271625475764743812659463613117394960191744445148732760485128588571832850985630157076499009042837611309751431871403954232888311641846574903344094485337074203048702442358034387363965332889260604734873597395031122961690170947495382323356032357331876421777690634484129981190554246104431737942897547193905895955650306045071888776591526595503911335299402693181862443683676520456332426524695880764568967103062523942078572078427388964108955459252393445899362541535435679713054990228645076355872139826803839179441405956427480397863673452013631951931803603233645667111675002225068889331685968893757538104395830080309145382076557810023475845486234798204882766077432415342443477565800538137980176540538255450186687530512119402579525230424364717538565640764070360063144642470093946950335887813606124156017041674844473980568995847316090206675858008361594329141860684613872783149136849736346564898771705894434174369376970122866376306186263934478157719875731081116603909966748034522476030278017436659401910066209774633944278588306593403885977549805763680978624243875746697275927277769394623976610756266748399783212578494897957220991269454676084758805058711431400224764544753551086865417390087216646988785051526234319478351650658127163917793834799893724775581840894188588648169286733454181236671037113818440236672465906901439407622829537739801509502336507268105971220004959578211946230006266791018562020194724487401749517535635634685114289676666157371762646175928849800911521197789626174705484232817113260879748696270620089431468499275106237407417731909574058443298450978238294986798947096515413213950902014805697649110605074970702109817652712433727169928108360286272773032005704308845215063620182572314367004567424949584359017252569529022171168772288851963947158437728404533532377238385838265428536107046208707099709247476499852820879969828925194954099485731125343258062185804499530237966139605280883377003391828996558442635243099157272151186310670868752404554072789672562874320621835527629019531366492004732352817141072842075997581217417778195788820234158289491002587758352953408593721586304484111022131528039934365292995933683320596758790791490654039887137118387887718917737630662616709400753269892763489930255748574850529962348259924927031289157030143796148046547586526746952088442602242032170999450747320627773636956051061436825932109487251193264220521165882090047949477955683538598131869767378710861819056217479834621494633843320657637540883356242581478041285519285052859026386035368142336349868396302990928493678356783028782273355972826299565966739715998797808088254868652696678483914216694293542342006902864605482331734717539489730238131616917379652639772703632620812087595999094765526818108715241962680296360436903788574230072227404628152034971075934723536392934486901531138995180873314550135512590419483638996810685370224806616362041017926903371028569643950015280239012811663754909197635018593494679857725689091060749993593180598054896421147831625771235533900264267349898463966452301481243567178323392610750183042730678995588888474479296346911145924900201076703204243184451044839373036849269445115025098336892567467566739727630219545860717771734428878269845821303590976550033943477917891062245383137389396210662409529112719037588100124106673521664864926165601023539675969440795481657240479966195830966028740178887644983293221853762256852839546513843885975949241060498840536432539155219566776641194280661191515716898461681376794777607357001214222458324735018631437519548130895630758942703427234136697989298974115556078084667259026751824033634979003365384705058377074935271241810575305378599723573387690859731595871358337649534968164042312336786822767645238578506471378165771266861464964340690620030650812953926577377121832650675279210912449738911146870186385729883935206948001076908789815720370457208406756080252849742761283492843696976383435569979087476242450342027531941276295167437647582674125974481231444059382231312484783365987234780210954313766546586278034316446532160574505887061586255532894417260784882690008106940824150630383725312918300154186866283260877696965023059474978878611167436244583270140056173951911738635547316339366192351691082198086030654744757812421929259234726006824071065223604186018610605450651332825282446455238034842445688634971758503832632596518012681075016084527594129988710857869727971980948761330024629176780854181951818277480709631280861597027874059444625416151112821387512081721654728291553821438938477730442541894779966349162901018119813398074941553794035409937062276000340642595028448264759009549667725826471360574775400784700344600884073224668592416429198773578889551705481935466368665119436970000284580076195350328120358802223344051026358644564159444448744319118611983987911671420224847537842090533170016323013731201459073644771110307951772041308660421141505426902952157265900017874481477226702017337395693887503671679577830611656417655859001014006630321554345959234555703623191728388742721709945152232398168217627644894395467635357369710656589215804328794707900681934554013702287992819874878648589084035548335511866007277273462139450529996151554132704364570631309107883555419017040207633530977554712999279039256123178355194042949101731434535256640357756719573799163695562780251566534737174783471092635540369965119357608824635821586188348753572705288520136055884393420940066787461880568153438782945042919240238652240087296951024405420836769813817029857136513682484760088928724288699092288715184826190418110516687922440650106272104419322443905935191124382101095587108433651588501291673751953143749571687493095395464525617556146747624090486131412809957844829362381775461624726860825553174930108135590788961052538609934873002560525862575742696285720635111030137580423585280300630000701365505567577308345062184264806834877231651738923223447601015376433925830750293848448584456391853986286718594381606994363988456297958644082299431985578278731961638602976767122200452316503657629061408183381703699375497270865798603411242339241402053012735918142361840220361298422248887860059868683645797305622193285658848408724955613383523009117342654058642598624564377600589711586403836526964811722309989882377858224789128941718555939874271836628584786683597797341362332128937581808943792449479644348354798901272356323416762724738506520501142690928712782233608264418895919180617206126005766364677429000464464971344512657273444111460895969787673064477046512181038078944112061135868093280185997296678248970125690278925553243604679401470589476133255326020726032650665828067168783959797586225510667321216158151403555463178798731861616038082362627075810440796187133879760502702375637333814199645824918654420650536920120735535285128187635629380519826093749304478178724966590598711398327942586163061806254148315456373020282780101231492474210819954771247386860415305437453752200951414631556923311435776193024332378952827871735907994288305867826060958123937891596507886972660785859263738510933709118676153218387675950522430340133878032489662217985114500522131152158160563618418273056660213187707426897145383974522389266156624897053267563631070812065523664215685896787253388301601833857683049659323522997780402225931531447772985560343824159597639615504234406035357162968582817417398276659202911285557582828717184618499504047392370954572566775746994065348051488023017487078016111950940958046757845197992727823813230821277793353524272404992491994411886006912074711491229598546069315784279804417439261130331540239830719311995372922456280159890390177906855511476323903261369418649670525705783847163758609194827505476672372977176890147511645920953608279604329986965121512018844309033455845342643774178258161681039307545668218847677018176054378059651356799499442017923608323813482146786726318009399868306036095823333696895907454433527281480268990922307566878544782285416482144633221793272751356792764625742034716578270859679067596164504365110800310537809951380681529096894975475990789240718893875737055490841477229602061315346866504549489300262246716543818528866667400206672211181227809859822391658403319498419646050641131027907118808349071178196829555839314118064000979826744140518480449943599740485779442315788216672215735224720379315208229343598948435581468586233938891690942492072525511615952942125391201356711381718519651822661831829785331777630494834428248015021088304762867729616885515750972658767732503487631239934197763319947767251680528844960857045846764957962606162915165946669691579626219985137271663403587903700444298455737383616013362198723194794273291931438077204037683840580927460731501386460160439452369670977963058856726837783895051716942336346778236076652926508549733727310420396953722653920743220836090095682348610691139726021618739997688738555401088557476790716353228783430156651199392230221513856307591015322316031306924114982816989664718600717389220338360721060921221625540301846335492664241400474910791090121830743081355653102131385380436816026204816415924836585262965205427644695282610111349437543017095676672871122969601978953744707285292968322822888248638386708233610194976736285535587276649152572986978985559746153156092306537200578259184780601721428039423210830795220848850403185961496972857817526237381338714807626911248690463367486590404367076029668119463552326816672981484569631593857641800411451627453435021667849099188792148753783204444172004763416977320748149108010588531159978573022407937046974918049359762290917600251586537079411245897567394985869686404494890128100747625927752022340413518631723832045060041029480878955979817799900730831087136597274269231791233829011444385443889371395300978293668985702205036139102756441312700845980649488763451809637315317675557347460837114275003524561246749280768630075228989229572737839402405886491790505153732194449064734653841679605435521616486944370445025272638342330001900534569201238982765819307409360940882675072211512383368741175701804121717742848792469516929034014253761830838682931033486913294921135422910021928257237121873604249945712251619281355730141032610630015502023057748160007313766644775735529075991457781390440290482462879477879513289598481123075897425269835779064241289841119357478818879269314951859681279288574260284243637342607977394257347852905307506439917455399401783342026162345540006605381385525342831698995292045151475539326870825389079766597879298143786726175827006102069078436717221865698666292431437525068652893466653156357314443436458819499165656552108586979578838287951555822278783266788815410335143167904471205884823646368566014875200395552628426375106913197701071877832374628450632439704130355599928673622940251418741161147770857902077514524494178238977649914295298738462293341028331859680413261581564056800503570442593857050551993455477641092535531191836291063555613506556678875070770532640625612059633146760793078861583629261988683982600461617668157519460889205145651370025202803969145169227238264502499619336676845959165951891953801847441846561608966130295820656370356851175082622825830498290342564062173478928599948013267323973396957031359007628919684576358095744626518223430605067752016226816775806013155743002472583373449026501140057211283306037579986730014268821781159206331119000009186470515911067147680974653040706305199033981061244005857117972089129542491741817881810635342580107241732074099473743867445333820160176624447241212295689272296562616377045507066229667374579866073929385358894663675018597952052896259617321311017162928188513273210767381892264640708676390426214366727106333978842223535477213329269996139064581048513583425669094903403176708551996886983799342323829181669521422024739714804460383560916411500615800750917748226843188575500328829085383514563952682791504567358565161694857501765571497405639687095758537790993223327462713747761310684016951937701463903309015723619762810011532153331791530795630937852998921510392157611185479150994450236810412567867208540214205751965845777623531466194733082462308461350560714440693470302446309863144389190939452029783523830899592408220180042146035657050573507917364775259721184761958196738755232194061425763679546566896836660109538232892379934106299392402020397746407632761748669813215131837200888988713319693401285969324914120568081528067517885328832910055515620100728170268519332085017346943945821792002192783786232928173407861038625618098216663196939492688443232861212587367616597272674720839065535414651195052139072117568261121007173969071953873121599318341284042772550463531885017421067431570906229455405902502331446231042814944551249221631172813481509075493011089982251917907772147807320579062085419213603928033563926835621342477695326873036914620133042999361866455146275622444531097850331775077001129007654914665989113411675861300462368746625348114336265676981017569408112799250729483513630551899050515170639122249414469418956123916134131957846384896900728565252882975732764594718362269154443643292720074904474551958566305697176444569572568165737433171250394461192618425991449235501308459549550916586540115821927654449789060778478781590666576293294656924129193396661533586724408808256301142484483312257013275895471153368921546294338261463263527733476292357208283377948600154494761287635083342699035573925206824202191919800361082343650711735945438394850226086786668412353747252717679989596900219421738492187038551522022228149612927604038271414947526504574723579806051478083080646425806499795367480167479276566165737669224617950928283756594589292539702715589985153489871969949183192934434199199004047492351141705481104601453801247706057640497919786702911947606730952986114207262203977207580166566729418936894617301525189267860774345739788726531850400723274632970461863026253098059657834717568097036748608575778378081672731474365233347812125329479582163294338083144448729698676118329078491900227981742476750873522676980213878022094003100774510800533033223085412870721203569827177192749740799386756874930037476496928062235686714379456886544795803954861079315097475502815852821188603484586413090690826037062726136648250999875795781660913341611212333642587960593535569334000902377728632579979683585304752899007668233024966352678799957075590291137359276629981860915523300312859129303201299986142011060687800497152839913860023755560378896993979929540795169421700055137076316018980892702302738548462537512963034385321859642090485138467881362206934078836802316652810116091659205694350142656962045328039077471242299115372311509762933927379839836533903509397883038618857987065944718282551836948441767661593622303758000971828255405560722573030162415463153238805224588432513201858249955179411898100466890876885970927219239929236703280526703491169417129360943816665548474343730905200138406130861008065263446028809385929805117945793649818713709619393590937874627209646694919036086483763159254420899667529372698984745558544415896823706895220681602070071368544912942595470766669145870970046527755217585805842658271963534826396811892365122434451596253534607864226818721919622639524983416393038462192788843057216539853545838801834521960886823357710143129553110167248632160670273975197408587557076250338831105558715824087095368765268504246907054056607549579046030056026415146851883852077254310676049403968572303103771962773679833924808538520276547893392225641174654276591960109847994846495456452811190881039175715762536030322428575066759427657356143492578823885540342655166098847432705119114941742812011940790721892450440492987148897035039798828895095778284053865023648183145099319836127274896491896786897035754701224843947550700829075841816545732992973725419961064317219452388939982474399685829176748767488427671489327060016429037075683846346414992070387013582966254461117170002575701588057051832905727550593951730180244854518425853475808602717355117882222508914574553005672323621721227675121183696248603775702703930395101168701484807417050422751523987431682891328772483138442408927241373542384069424266130739996033874657889084699499235812704469265222807904448137968268084838575286620139433175186773025756529143021145434775251394642087948515799764728721996898710329485169934950229479797750444285593081162814955940674458343021387025993494987543254934311006021662860792837655219982175817133631605958230956214194850168357537072708172503369876804560965595316080456673027634770064475475397016302013093489884241872479937841530924057311824552651008179217845773426950426299876253171709938773888960229232891865730456106821821045139274022515302765342055668107367433319416944479039445401939495067212776387082605720569036754790353655582879908967266328616853522309524477109368753009122679014777226032470803808776505066618179202178414380275987122416983018195681505445438227582038122190267600391321954570349505177397033449867428573746479716135979047740924685785139423988232975983497425860705952011321588512556968409360971958455050157181191098743174852417725197876423429881127449768891416136808587878313996813469319385044981141283965416012277494028295586071647728121967081358176650971319123272014438681833595326026958853454049462886789451284494236060373741810407857622320581543509596386419672833958003289751960798107702270811708083337760724266135044013138162144759329938262845366204322931590677581683639898265384766833529337908692629603228472905784500276424037446234915464642844446277433315949304935123709438845348461656807061367115094635960154785887903070007687280714316806576076072943731980088148393512690515920245247702616510439095411335726527583221114267378883927196011362493444790233909217723335724310048504001808898260180744462757950713621751304272077147375191282604634570350345893513397715749278304348162609112652403687803597698720495386364510263905142141294140199567624829044459176691391340329259251263695934165148528809987979546337950648496743495646605158733839424123287997328822493555324952667639069194549137007501488294866737110845308151026724931027256993833093398524039969260483878866109717343568686306297480133428734265848420058929884983530559668129066408525712520642418212911173152638326771064379989874748504313517440565750209948710573825970260208987773671274717532344971640487485998746019853994111454053860834479500637338841619903390003207846270584779718567374204711567281806055953854164199745547444755204661673466422252023528614045438166484535410188541690988231927884993723808980401710800966322874568740993672606006143899931087732256159105908322757992738655143273509445850111882056230742766435107358500379881697125907689278031293273494858497890316734178893000050606813037445951930655415488922828598788410336269005498164637796263114364747438992330398899689696720822640287268720098239286065157568732283312742971725645356331947087153311992811602797859094236227007675819536258412331078943885255665388972783250527386557741775828712453314941105416463252634957618972352585724010980967617517655217300394752088673770616515401270790655096716311901000852066695064815096021939082712448980947353727157905164176807283602370037589280412890021767169820565802467880696120309850142692990269069637158688735600417083777077864687850627755457542622919529003113936413710634048723658990603154906704889584523144884517803848980587692885255629932818786164825163981972017899006664652050054352460551343016664758209062681599980185091742302604485640751162328104907667485375389338048865478214259467783615622314438458203858475673278278037891927236689888599513944785454888830156783559988587568525097431051894637042843531658734457152943706644506953171697451083273095690618559108704343653165224791853680673209724175966853812917163007619895459104493752310202486408368104354553641674281791791483268344227366110795120667455366912550788003014197387039437845067698316838497607239988208750313457206763266808542313177192823001646387889217263296551108169185338748294854336265168505514274259644570435871381618213784056931497655367028676788157706671818853994615155276752816497585615165241994723309608344600666986988393088990681717328361212881838464591718738764833582624688928459405697664295126967094007050410408377789216906063723470828492180968995311011059999683516575034477585997679239223251588424027849688053949958991706613288174599104803237860490945250002447771126440604988380978180837942796998030071206952863776813974478858111129324681677666754858359338406961471751560623626127911950343423341637235456877455254952792798333315463823204687244450412859904823521709125657805766600345155363095261437613718410377750889172767256257751536745169021329551298893532235017213075698714194673553940405051016694199386136781436212721567148333318687964892069867040021064479035514281179339160549449968902222585394887599010460427860524878406100126125661246624010111828439344018626293139043020238734231007994897814711586373655063614214746535488690655675386331959046694848217119532811570211422920880292323944443747950486116880403330995157108918838245225244229613016576153183764391960356019744432625141881182004574500276250603516830318763769062251215143292828676277086784420747193722947852168921542005284964019863018719809212991916243377835174738384198109036668351487911768187645327187671847117709152824521338660605675718130600796913609018458649051229382343808156863334768840967369023825207654161027014111384544362313364611670075270069520934143940345423037736436547472343278215744384469645191837446841130205427546376095799045730565123157047425633750198174793840159231400885459005843070470282378289827595042807563824029048587205068355719642372065791772221242592481325650750969355317947014001108222759354981580575740506390102176122613836491838411220859583752996622606781743276638120208651954817023400500398031023983927599638335300533250726752484112948715844981724215232003627163956408996019222219793780612931040682669456156461279125550722081002510362630204057785857888909572436295185698319812034871693933722957761979960960519963646489450805944954842804194848186102308979471530226204808421594272345691172123157847621114442486951409935756975885150402595661026381464268114184383463483439892621280665675165150998788591903837069138170972351945026960589611373947890252110662222875559526880161507991464874744552127964509258597370493069549510924203891082157396658546003859010491060599093349581283489512302123730746903905946539098456282481715574279270784965415058287722316995629740856110601764702607717167260208168921691351113334536174250805758944153815565604072402398355032923166269864310022444023499111481996228977363223770050423952304201051018275216003515474025172536650586093420202432458901053512582295015150173053490643029079992300373734461556014367751047595882490364627428179795433163391025072753364796970610544017059553319947330747641586630554493206505761222185841732677136145097096128758503287179707458657102777466414166327902684321433112674400915600295949898001044644283588113689827605137618063603185437620117929323227761250419649416259822218166888936534592340006877248273313122392238319849470881232793109520846961399456643702608893056264372287569482777931053563297606131565984334950660039658581799901477249813930792844130905312783411649719957043053736315586142650758239897009093274020972435077135302293761374168061130897658689126819445756526935460183025550961432003461935394071391382124096673307664591135494875731758771872554410185759862709359986995402572937004367208081485643539210630651995901680387497568515025735919657603718888684942706286664172557530030077612400517102382137657588962013744313831690034231055104468576619987735469765883218814962966034850802394153288387193382659488502279186672996083773971912309779645509595038120328834228916727643699339061274594313618126937148624172073911018113160211163777475396556146461783990951121018647988537955617993311868683505479913510480035734831413891555227788805207844855531121108665269333026979741721307779356715447596236535582450568598736485097411594196518119306825812855419615209094798064591371260731423721940967115014474014713374559827781868193929957825339757658162581075584912404673449639687035716957941343998512931482213815877756647172150029695802151073144035125225426556584823617553222258180099909848126042144280852596130049221451340893389684277008768829455917659113589921267277506847036930524623497495696003838092286624126907902933361206891494704556554766312856275918299831014140318575262762462231233414264593635681276557050792828807835469950379860560083919481078135151008101516106527569917805695117116177738968436699675007182819226497151230919814611752508969345948358624173630064132312420518942566772485030022665486289806839362019602636753070652526918829423553607181983559497820825828492179258793957520397443109133759930356127117513403481766281938262488095275428165692726844081367521190422590792201076550496314037114918935520417261759651541282211300708379374182412352943165487684522380891974470799878983490528359811032129742862336718960712048762911869353183407152010693060311695729890038682075760786406278109070560308676709750739842320872610948795710901866840967550497500580349209320451899207468447771454014210867169274232341578544789125290969873034602943821873594005510427139568344938752135869843243390034138542042325411508299755631920312275717732353694877989596112445812263732950199238312431899663555444970660981611811033503211265011756170435868307829432902885955995573183501270353494893807229137044377227646810072381000678907884250447310812220422699908094271795628237245297475906696179544277039789624305961603201620400754276259570202898023241931687976062820478342395996463530600837694856384856621281737426927696090477991147507453562301976690235914727967427396423249649032729331413399296631501912406687397132536886524645619342433566617341626762681460124672826875989072849628935475396712550408839609941113036929981308056580637752978438404480909568200279781601918625105048770759896866475628296036252251506964794635841141661597378840434607916239697483199506449552060952603213306426804169466623456691138427194103174838197284836949396808218560551009998398750560070374116527024723815012017745690238214461126304772343015271215537543579537399622867738898101208346857051318835193301446469002171994880253986369663472684251521227681870714160956636684444627820469651014466985715542345147261588114786996664703569406309215981058711113594142988547181757376757382034687940883855385466761642251605464167806219122584497001979454643001371557483813493389998942073245585613892908759159434188076582038767962679151029098804493990453645923682055662464371151170619023072887897069051570671675693454322587186672663570798102688727538226797210841409168960989599749809659861376806660552325283205577595911882013164586531496933948613267521904912556806660612220197223400048387420545335245697792597348018217304228920539643330334977840612382076309363828573466465853827465174766794863105565142980199564008131710574097061051563500704939233788558043923478858558994085749497719868742732218984746727388031677232166750984620995161036071489901997540469383731382502450556081199675204896780923025592574268130587577047446745537722926735038159433398958973581205408425963092805606431218732318261480024365119606963249027080274869281976042841678180064166194971907438723598495524724073778631249534425521232041514937272843930564902044305482939262346869046630888147312886375081427671727251289818265663021962797997828089546616110450606249657640594482409551850028516116205493102822142677733775008575490669389050053085189704636759628891676854372914887312048980364604860323469708584768144099715704778890539438453609681653009150789845595902421174580434067873143610906951447418949181215626916852126844926817632220861222829449285329071760115739331974455108773169770212979510328665135257573396892113865054511065468460422917610993494339688834040456382987833520461076710786247104745303433264216569805026793734347088119254138613636888032315591392715252315810032504100042512032102918423599288345170563985690818000274234725872850528910533945663453010147665595183401924471067440801936386278929281006758203309482337938390365394828885795295831565374637028977233572359283228480415693249534644547179088401013314142078718292617544119989381620965400682268056110137638491834744039435216105347111663682552711360044292630207718751684858294937949998549192802351813330947386519744894454010222982826326197706888770154006115203326767249803613236816581888179240648654721890905992385878681731316253644107804248735701543024141209100398196296975222576078519404874483080741402214280429350489520959004464562130733779056958981999962985968501653605995841485907689172049401767411629595965428668417810135401482346387582575936015399152557448394431520736667240677218521127114137955587490061900013438575426923766162266361292211341372765479726193001244336617272347063276666434750062813718707346771855922057519982705930345379868024936540698515729018531735538428950045982658739227088290807288342113096681458182793997881951415044645126839859212622842804206327178612324925796655117008776496000423470844672998948660150262324704371882353080645951091864463549413434150490734332885240270408769705257101983498117528475650129031394991390536576337795305890906177129417944254055122666657782271778646411801427070258177334494248634680308715214450384023084906439158903122057686885975844630238745424777601620444890665667727765540403730340233241350120266030868745966171452425108304941274915386034821956912169134886340148890167343935923157334455746565513435884634770155148897736406164081817313612494297533188070660533552010594309080649099284585485405175933761088325828339191389764652235522270634605130552628055653379686843481483800286507510324768173392033068102919316851670527222674738773250539974368412860780594261160941170984198569321045978240438688653969656339293217739304006446632227032251051673295623925573447182723703776474731540913782104347119890978891267684889024010622387393776258402582313681519504980548693047704493457704944091825514776827510209735855134953989871468740044547414891142210544027843956218242178202855058839159523889452421730492349249359028415086040463668655999499420435574286931995260918450332690816447688392518768643581293680758700579525102414922964875425713265085157808083364132770916842959666193604910149175361940765764541480324391177690586971226920413223433894594910580586723923369069955860939991969641904472060539127116140287980308074706915814092173134548355378831627771550968510565545966556840139258361765075768534885444419432809631125105091239137341350017926900010319926877545006376546001661129035185885071261837298164747000267387425754817213758144889267695587534602139563096040969750424134015710756627536880144539375949083885823073208426645987058287158676665896271119325984959601270665550676731555003070099505402392561920767742592663849186697596301391998931014323315131940362304100111447225492764708951525091956673782543575141260680339430770612584990068511330282684404598361989838362679762768108023503955888013008554502034517130900332256159146497516048942923004317591527637980924401980960391990037316196954286311236298059342657819426563596685078945048174811158149885492871064831985515243907862224255130400306645619943677764222293866002087232890439902598841429504525348454140035283633284650994386588765545234485522520731538853520372015055526713975918908292824479423456732298531002950268581893353590434183996348231164124952527555283103041655442213595367595489181211507444496601734815498148801678627671466854459113053516642355417874765830628545420520479859075974661202005716001190048318794592057156967355819198744973285044859979223392293191177650159578545728888629550014775451118275546048884270988938446039932707814241867759381335693730446020845735359370800322411761549753905170882204441912835611107808071744465274930183495570098899080187285470015055421615781464359485505194048362823816568182694924202026633908840431138852404115875847098344974785821236940291054090324780881485058209380918021243194128526678651682726684983909073079009998562762078296521557075751838928295776762498176561675007649630346482492930072147416538810693752481738890869858446057386664571640835470649648935450401136445604863434260301345555799000944485684117226436498433116233665343532629032795348763888048797524182808133550604762323373303893214241957301487972613415499899567865227389206654854970754190413063196123827388418492195795894612944205551002085734521866704252304511193991649110294732271961981592533747205066914382695626135395793917295860415477202459853653022658061537097570321493827171699288086763789008674983702806328519214477938083682748767505373360790594484931487836119607063401522686166993445864334418600560521173221917231473473815306163980540060355804968191392379840654081031535616292200709829088885037241036086218655639984497257102384923915345943269997615052934313991284114587646878343712966370174527459411588333712322873577159976037308702369699862837002621833872525422843592069090154734433520664910585540894819858197253236112011304159304181488697891024115753596138933329452981249334526463291695576641580640693273631921017982141838864366872589517780992527719284528065663897538421301479823905499192853456185560657792774808662127811359416484485468724584828237306872358734972264487265272647445874258469138913776650060477853972491232993257165282856327666338217991793264540222578104966025502023958011580148630368700553633893533776474210739519284610424961356921260227282038441693792545506138392171315366281962167623289634659077331904885405060952710479541815450825426874840504886456555877798577762174410664898552100290364252698739457703584365979965247894465455321641016801249163660360448923814224784253379382246335907905912160899305012638188045066636460002451259563220602129466418110675439265816268169155131490451104150447684405867213335579320568958570364001976809517042345320777506762414652882353944445516444378489125648164213615321435016273064510935849608724172673433757064394108412406479260091044852286671620677762562624317227262324453541628598745257253419412210446709218479945320244197956860450933803987572445621802403920925285442096129707908568783270872673966931784375702404381684049095851823903871510519077680451107371186125731886890059212737071229200192421991678666672900995235499151017980472702193231544624678377825509521006738269755055911136764555917652222853695972524491452669422459803837981773932142369198804271188492956631558529965706831682977653027720340490587331086293348641097012160933111346800726441379366333830462855928419502992328758333134498323238728210635115314347262964988745545219587563382151846772644216653773149994834066897457087810690906894932798632584381928859631472351332105777639338514768769345705457902694881922948169763279968407709757384437602635775704932614719487046509903383897132240031096591437113491862207653159525542970829377947079545606405516387936539719599029884058284819203180818681122068418087355390714847558646503255903985731442967587006868107202819811081344812927495609489504340738799493663031601785117013750769856229953565525088425057735788363074465262587574457301539447351288945340926042507585864179966430286485476202089956149723144595875235481072617383708757237172209115545184114827349258361090771559248198051408701896510985352334873119488674339756197746628258435045035006479641027073433131069949633827789733974600221862507561005202978826181933467866599301567282136693960301380982598819516765814739848356612855589124894006204975927334243596613259439958643862330920712367610562073811510039408500655194534513455122359159429669646013171913198366247810606096092186877444727719408766619038776999981253455628228513747073372625230850126267290613699902051835509076495678270783399019372043954273840762216391951135435663607026806606493047625387996773240417190438258376143159876444968944422536654254275339068386876951527166988316776236543698207145622986863010036284968914239903067560754894756034058692486726688783208401824703775667213686128343290127791449101947866764556444710435876225371406508729733032348477502137646850611646890138003516286040667202555175288579651661359621413159323553363170636634700742763668686627190774484384795804753842584699236292149436472198099704086181189610961042073352513390943745543792143913727203252287303519828507591299506241149677267247225749086969552439869869096272689338183276396979335451817282386777984376834701167325947251505912911429220613386140971501537458376159034641037264381689947526061460282136500192615828108751374273543273614766040302024821687585092234907829625666807490653439559734397477266823846792443888419680034174754221192082910053938982827561836489178885066909779929801584268469656334898764961424847233006447142459038990915868270304037504452601197810613980064815239656644470870688628304084423552358895225681844666733351451180969714315198096597695596659392507519883996736125696129462401845376234472487063470743625774665704218337492337187870498568390921267148931286464673213332008178307789256220650846558383314875265670251607980873750553779133659482988310478801109890077732464501659601569633974262706898460703637085113536838407297163087108342009491382874080145517657510707075200993646142015185233809173730824324354378423063069204270900233963925055364540396754626205004073165659965988804830363902818552556660564736137987944380296797124915161348786615835740366395181584826435987291990384398746973628532926970193008181126286630684418012151476310211124431966458953569217851243601199413567987342414273474068043299745013488079087649710190050799647758784398270308637041342239509949595682726777559561250840881425381951729845830997776738393926020525939908052340952713085897367823208676597879156262239440349839561542944644055715094799338559562105351739169625585356922340486590800345848375781171583972742397833048853119451643463034035879058561297008632079673114770405204401123044186346591571360329566441255505940247692299593773411566594928146430486847932231470392268912035201239658348362857396381797201847818493718528158472730002104763734530582477987585817028887589209823737982700918976835049180490621578051115714511251349978651416509195271372793192231154632024837844201717811437759011745892344820702854923995248773578239203583975471935199354495273387723081781468700771702520128569879682081291196027624864597684454961137213096490323497911519624337535436262896073570439396549598623157056091457948207689240191982215793975030351819449929894557647275306207135681759090455399496772092359472722917073188167896918081349872677747266381466690189607893000870555529149169897476090388331207728149151628371944070996041301219780875165768517705552848119472329145130610777484446113232948729153435893199229207890360273930756418906212236951925334032992721057877277037365780015791099107094054388652898009702417852617990876974595036352744000948140656926275827894948911307928004106018914557716497219524225481408585434865588636527718447843094130917344955869135439020264216199018757539815762339507148702375774696570942257874420723623853379718409534925098568163899658791237924752028712628977453327223656775554951897243411256422376118362712437488472000383270798560317386727358070952085485259795312713540961485904367752660079645557091133513982318376344623970987069139554130341850165796563023101986418993389722737701753455752380786559187320166018097694909113669545902802318868464755069221869741315565551724010287397330359868874328856526738773692688218923000455190055116184455792157227031633789102157898012405025158117303362864170840510653569417197510098827255655791762454809525090242386309822130386527164376488761970208192930952828383184711083170559773372099242653430843358800633044308736459588299139923196546205238923550649191988133344032510583758668368236166977798477513224998071314875924846114388658274926647195805625044684694482950958113919066788652826615206091373549575354238267200937381273561082605468490198954825267008225793894234707701141797656011071776284166676739430195827735307484891475996823049890018120387623663215828590925712932150458110739983527889555575218079191876602892966134650818037326097183744217434263034839246569829827329773840688655637929825709359325319007613085358963384733259943045786168589606838211249048282040478478159248137241783093516023058022196587630476046256016740849321706234080628255537486712214547512995650548071645370359681059389824003144730084425332209322642335393741779634034541748881523463297047285351957185995244477482749479988411146574667005149007738782945839376898941364626203965442749431795055106987476649780848793868511114587381587877083155288210038273564511616444994372780498947166207094088041857906966031135930900858193226567927222214645599965377975712249617444914148526345029955017420605924666597114274280083360776089979079186793137018770594007990068374494016672159512095342053868552560014250835504170585705142600601277449618167694755107467995608042947144382027665989273114565405193206668437270462509116080897519475772401909592113474114179694639882176881652834653250151707284286473065069595125614205218099450488486047038022836838529692961361013042661915766439361258117959388938760432254373470426604756915853175355825475762568842075389131429894640299245192699460230164071746113771054555099026538180219668199792142284217821145494482783961479759201905254400374503945802587741678327577703153767895632433877402600520244069471622950710375064579642184560884582500371169703359627055961763405184364046579302389866699164786249613694436680328907228288344759793956127000655531877709715910453568478805815960760318010863969867322099154536321174685747615234453397991974933005198553543336036248490233848320442153309643010777414291185249655252755811506518158304762899734266465875418355274302450738819663200595893995388710960805973296286842588250984724760800976446154704029270490863530310088610491350435026747089051474996219019183065872611735454773633454476125460280675941998137308387241386274506740848573673354814437088080778779707210674031814625748584264405052982508241217061802060559647735256811245301928999656355940002434464782222943925839867219997003550943999100682661596696266646658294776585004612818437754229929509522154053849259665469523521691208709932570690539954328363477630372184786580621898470165566078990821917611042968698099021897129465113986857756830500653561861228796054333957523679247291546063671748016592537271954553501038971285972191139480686358761349614593182127144982148090403285373237340553824706360104182325744864351196614736022044692301272712404113342151956264641455189655167573608244662756792721365354942451661066797979380732162384518286440900278284362480044702610081823031949062625709393163864515133712217883165423336571162503981066434133125468361444818177951259991430716062895848045927661293510117178616868429185329686480887999726218755426816184648391388734208379133448319500719909090468455150576141652203140628165669009908438520246970866546033854600766945018900638088784087504774758270364108219796502843254890790197399584724458297020681899706817042319235971932913070786072573167093271928735393613944376951626303995978890954774012684022946827519993168871491138322292291787117832145373708893843522683070345773921796538409926840582570724864572218964502324623378145376312283862165072271829764044281442510421619183748801965137212150383239950060538391658696221024242165682160575432650370713733387021689299242642317107611286354533208472210641515928903135295562346835549517967626699413929516085523725229579556733115961498907038121671956129053794572728715410251135927091050444031090126817694136580109544781657954894640619276517987671634825837678488006771125740881152800936059956577366198509270823985646094944391547478902491976353503097928428269786892345715112913045211727132989357922078173648101940356818019439391731197811677229978632592068165825487780992444699976241190508403097359464648364590722344607825015223087771814615022377620873693521223553501725135585030343885459522544133602435295111922440603391534042706765244771257048689261934038427762329830340678435241728496158001812514006198944849344949977449469513860961440436519114763340046995910964224088116824864661209310467871111005784817778373131862859491870708827260865802463566665227074179426790195677916773613537939315336262861971789081428663465572869550734468266156277550905622000276239893867806598319961752330719757548274277076046729795997941758168082325988469255007770575756846520414160181115007661588692292915153764821205313907175522369777107221374584355218772935278081217103169042458923782058980235587068551793639986556347207467718240158071347674133745415133624533208922154528533409211040845113013164251572957278761828048285319070461165009988628709582441490916868575380341636454869391028283471617097514609406603499582157444523160904530718500117974948542997381606423296327034783434305563600528362778248041037569195297197500197063697513713128250820609630808196265485153652858002510658766731982808060110197601421166904273750917432558658964314951077023902836119490007061516387390353133582619417439157086055143305176239453458334588567831258079234111920817116015622268203694234673228050764343380965820197650101090972635600994370048051585930017656060165706585945474626259470943176209469920559953713415438980525056889857773623710609082455449803269008308051354482747327346991471368735440351622262865275372234738875025982747077511371645120134353108525497973607315397241256300483227625197682663327774773143240035525295821486663483397201435684617461393006944437464576747300362553268337997748238337046334393504499935870183826991832685293886321312621419964525754104405595284461651697245337984214684444507012852033444235531829827710251607661807804310559599476016876428811487589174330178201206402104228719374825479699131965605995357024014914362073001494756066829152851824878944834187792544973035926080773049416042036458680266292269852215058313692579660859709698447380032236731940905785823037131282612762438264269479002676491981161392675153890942633789723635754301421633274763723534770304438822868323529588797818271924730286618961021217505724866506449442777354404717823802366906963852935462673821376755580539213271467622101060908778376743411733727022108364253193496585646447555368704118880571118061998373627225785066802990043524883978052654606030898271272790629436733341881519979140657066287284731413632997574778100731094817232704663045280891279308287698207316543656833431179670416130965211292935636528449881806446056714811718139944081000256531128479197859915596891584518719212999807376111773575363732672798376099091501465711670614804180764603073557952333038524444834222766941126186388782108592474026279060772610999251391990535859219340889346455977855332906462937482526174230869404650850877730728853267497706192264210591832322395262648726300835852468217618652510617386772054824369432943328426145033343134831866204887547598557086342458578719072733565962903354962353042856839741827366530975224557788551136760744458415122929508028281386504958162511984867239203970134092809860104405621543020042968664345821027266883029827047029873677400391548786613624258129489102158175834591339325594505211681561013158853721437168593240359515794856286636963006748740203625714781140778354623165441934091689938508245261350067649678885614175944985417719793133032289677924400601020439220617643275861089162477294908118113921500150230109868324409927381547042429305074470490780110898031238245329323624590927385021177480028406661860247885484088671624934881721295842379861233626796952081353597664530520496998915788751374768580463845692369248638999503875908324683586438526095380879621286385234715310367690568115064917509131844538991511183848151157183137595069573766127945329786200090693222313792460572786016061260917156603818682030797098582753771421502021741050356613882873943158071713610205068754511636867508523214757108954725310751667942583163004710447370655241604175579970929921014597695331330363118233181409007686598325655297352689292440602637865419482908177746274157981802154372562375583321320135354002742410561381472359245496351636016196710519182485072657279961931169592700974079716327475815505381391718373879206429565334609443936925609256155694300644262896866602258003903868415294318005111956007738810788565881810497853135783080986349002529873824143036982250677012119944147404487959782024733549945154060226368851547371313883185041811788837127137917685973754391630751315642761220269313224736206747876152803942257224725303452325436537042386359971511893782547403083450084658965511562461395848245515818945716486929932159236064292646486731556025394832006052959997508741856109085546067357163616779872245629202836997740459024774090987675229383206170184937422162468644715553957952459421353615574949945550294863719842547038038596799532168407504774057232609774123336263663228425300741453623802323022087074944904543242726743516328546266990301667728416865063355756197723072590826553581541271901023486065745535926554265948491913247241456719086600000826251485796002831357243129451623537672534784385855666065454543277221417666980044712115272419476042239261812834859281396116766755087260545835520483682631916398028162662357667632299004552958330254905566195234661520962621353827119234509938167127071796210980427751280229171616523125733757783150755747676412239890098500408353149878653935002847815249386382809027868797520800502630172520494513458779130634817704047861014873182553356906469579105396699329131148444746307697525610581769145265245084692144582820636549734776698568261101336374028937973135530432454164348369284170371575178496410227599459053437972120562438110621640034266094421729353776566626014315478175184949420969842315184344170912492660789856444178196972266162425800712582364425329597638034622082926048902107865069472292317851636413925121264872850710900451056310618070704334949716487311898432232954633620444335373947893691988622471706946008925505806301524632968200059602464774901313489038795665371385075960236169279629982878889110789176477101440190190211964557414601617566268896574938754953661007907404566187576149214005005654073866743132739043712321102046744669520872989282801117914138328362830040366804623187242673752999421703589383437214450772523221345647191902535174132976080647436425068003885098375184381472411395049657844939726962072701084983358950027358243777927266535423578381691834715282031003040996162668932633235697735847670708231365950567018891122038862515256147361195447269800053365544634694251365219807742970078790459298264900819761123985576575325996637603148685735640101206060926064793660610244776061986750696492782374879752872384189150840864298942775323572923159998725624997818948340077049703197766612796643355933256347211109699489724186967906010555754390209813798916113369686851365303103306934461000541381696666701788751702789929141958999945433528252294428810442145982706570963550503279941259519354270813224293164290124680532376530564909654218401656956273115737321384704368434380367558903251590135980816972548825093040183119500811208734901808602141061015844499924557225329247122703646960065242800839403218634362603612132458498472251324917786664901062946974349662045470130681250359771809428620396392670083007046477377599315060775734827307716754623755074866495973478235682158590101184314556359453120968903447507052816107903418465482137489226778720897843244935249180147074643241438170358101215126316346143208249503238781034632190883583659734880184737033044018065696964279824623847655335712368944347291083963082435716608386965451066542395917880318944062428424477044279554550068104615522316348721626910250431211034091897890046097161574408906977486946124629062618511047674966629471735616371616862188205761510564930102770588153255160177988965563638262813167165068469595205818362395610345591198763736488838900658371085819712210755137858787905581227661383021147046263701921432322400030883488351271287404053753898532816835958551334671864734716622668098015787039201900707311981782833142721999053362962389948431800841391582468011537529239736841160681936141558803015906756903538772056149030904656714153883058008548658466386229385722701822058568607461933320370262792985595598936635885177193341895517626529127099686121889461271114375635811162834921179611426430475876488761981854622440687062045757155895558388606211431483073565139449383112673302569350094436996305438261369436976473745929988366781290026338708885929036402719237470158951269947701755531244910301894555085925795165805504831187959037135178137364299782878586112183791555081103752149945973616086712980838074615260509073804553548494304277250529894435174009850686526498021771839162415030395865436841037760798309534580291966157335283321697459785849668679576238380537178111590616665740883980640990546901372276763942198605527130812177624507804752871765300865867490294896513783448013311647240357710433091403062388347823007205093893210155005235275327387075141114000172557797199852461543907731973010417107141293907420470023800303787053391752183636663746017120973970863534161786391622730560402807952416390621945435231190570094683536381614503246870452201948654511151781052441599089782592468725567518251119792966004959017391131975516976755773050566340535419488782643595879648580033450518005506384422619870341580988085457863518430890499633543678420332698254702621669087126566267759921649046133922266665941205926192034797066984479647828395314888272403223304133298187970435957536832556972523687215923010999979333525052789775211108090411362826022687308466291120842062960675894712536772989104245278136657122100284541790281135076785855304198110356732709012244234754821674342380361855163989843519658713148515970565251353129209135778028647760507758143832667483005740558616565962323624304865583556206561269843924106182794510690386759320375117888084175439277544041864330066635821858026471227268398575609195145433027994549020439000880103105336603563638908747626560506382391524500540704594838200742524856927816856916486096148945248154693880028979073200319793486137125309275913989399194792796090123259655083497104819539303290611924702808443665398659179121293536615560067095176823658817169998054883266272652425312712227539931948858278609096100201300516696338424650907897938519988328182314288715268775839364428213924055972481263534120945038053229250343816026885133793470034459459494503053823554065328949629929811570030384552040445449093534943330211643344258844350937559824668328220128340459492331031339426579454556171913233652258982023193838024501593917435002789929817587677192213860493997524417276909759215445989923962765023740512513115651289569332055825950521513574115939050930966744415289098759318504489819020196426252823123325832855270834139327946435140382538503836874257538741965490367565934445814523721916063358358597900211541061410210893909384498766991188530529242007218098895155993611598651705280041836896586210184238411003378158608441760627662823546615912014983293214203350595243074882473800905386703000823544133299312609758488975566914161932460890784637314224744166921450598800966483909362392686121653835402689756203236487237796463014713082151430169045221544943356125409502130791827678770815991546342744805007317019680369460471238765839728360240398358910636056676837364406611334417196806242122899799186602659803155864275510541845003010950686442155170053890181535757578816990276604440451409296684686097073620490552850411599591538070243700420996434651735187295814184936156598220559499712022964856109407493602921148390883177616803457891603066925734059157598433589171562737501378649407327429347281371623254924736746192752219426125457184556568734350700093265128706621811249257319720714497928064331818875787379704035773536265952353450710373932005248712264051611476459122565680223140695476384774649677239085996879230357694582029234093298991227464904059483988019299747288677868273247582468240101583488711872379674523124594419937946692970726672596839943751429524885950119523233032733001374078581768203405782724899097947473153498726000216693233004046067298350625926254565048525597136483970321398938501120094293459167185858078956488049561884684216111885577555298051122962058256602516779093641149643762322380334184635964319841788335061057420115907448897205511943876047126263083220066074724331882943976470702688729160677456520385587046879574174185382201838307560716544093813006925680635551554378446810104476861835902555815135708859878985325818526492428641360075517016657333914553879247937896409075517253393953288351879706122223133988163408037176922939502079585456362614485960047298736236778923758052761682806880958029434285675426669932164173400151409310552633194534241065291863134016099746440698426862431888991433015876460594663099972969664719017177074619470757539732231240802742178119123000496641314323034431837770752376645491424983208866619890736908561267326352279250159148399119845969232066121287813388782683918707261050576647149894477261914393612201364163002369866491587540831792910246448711028391192353621310474406827231839936918846866532876923747692812318831835869431374188763758050880294713806070103600991952318197115280308163360940954535637378306011936539175783277312500948462291848712872329830189204683206363857930314840864386115748222679762551182863935100918577986603917516394444974762733076594461466066573209795381642064516019845600408553397914341185387463666169904426108272746986912118580095228697795824984461267239864873685150059800641274612654727001907865720639647659006260481948664426993440858399348509539687205399939187366354952434916939846644782317958292817646315091614792891893477365565586089070799954080943853665770335415735831201584646082209629874293952762089395783993230816662302305269695783018926354247271483386853765581136183109300665215695884926600204269978016738493702981758785569310844444205829524907119637730850702343180861854699436558537937049381964384679763334597148210494733382059567225943458308827385159234622475142666276122708859621822404454943199629081440339137317751184343092886910445931845724906588860867508575956281432416452964433109592044823715137984939103981348667549578968427357602561390262593585242694615479882535555999873663617641709139339152799510922451077324580562532218148438610446023501089452961825019142155209571288655144106446820110188539840571189006591855376819789913795379297099657009137254939605743060425368055364108854794749645709715020080428567445594102336244224137642109027140424055328811043994136722018294336668812972492933357229352652899476392574015993823026170524198136686673623114762800534329101657974741995705256815862709593946656050221667754637343457754235826363796500881171257171024151048037205188490075676541710487791064438012864661323007114126104886743105038453837723891429376539504881568371528916896332091262378956572328885996587423202036275059082972900568252309946353729230445613929070225965704640305909017693375970361007166052698523700671647114372763492760937084069849199010660622906385210776895948703851002763598179116116503815574006266322739371698574841167916308772241674020131122908639685364809727961167725459637424995345797326358638525457659762748184244816218181797913058461340962316256887919452451309948155430008095364926615708106407197954475641437268259313300511502976227859781774065589281527816299911612826672578108476639170902621168828918794577012252786883234284303466851331117952235947376106615933048541350295794994256587737797067253278473202893800941063722616076443371263027643230254680267539577977363672764073390423890863158672832779055271655288887344852709156215696187253114507826971912081181341668133777796274091376660874777095074503709433859708352963967718586444542246215268617336120835170065061163462234096520228360659790074091198418064791294208926864122839500507017755102590785652491623107683668058640079362999434082187020231652819414003856803183460138473009698332745308632660345527906677969300591230640420903530484713623199838127440053569884951797127232223940253252835311575390435263651040237504821935297365883905800913298665730333681615233731425117701989605749672694036984170126771910427704698254607896648755620105014207120357435109030823487032612796208095321695324375552524712928282989585999737952157961835179310203944780819886523674010208544663495127234050069393046895218292173462838763016103909496289830361844144447950438125250982187111227243089513831807937202853189730569656192020800420137848925754997284426063779582380251810736301062870183207378198352001374702123417216416597561247930044051797528410000382620536412504575824204936641052403042464137383082168437706017053695325852008618689663828735124416242648892119283101318560259130978875001325798014007610633868736128305030366583161794937760985439676731313234918833759559940715696741814372638770952527829044447962192908451022270196472393939215406982070706415318941599442083699561647499486955249566554476359346566143882175424512234135451453700472812515013903405326928569865068457986400656332636170466622509684085523546543772181473076031718879999487650982281626219492361456756663865390457738664244805876397084257304627593054090358292647571712669000809472094454587279241391412454463506457063357773828610189218541487083857435381925629239352432860743408929753897546538469205635063561455532484350610026925455000802457404638987017453558045404557023446488638312575056237610727997249436810065159545138952486086690849537197724487305394280424606707079962824331859208181646333733896831142984263386623050320033959335180772218637390067097175809011153008360100849674692042914410160711115754618245440215584286396873067524773759898623014092187961446759390442749006114968214870196668828834803505821474249933826798300745060502095832252685042772229717801292082415754921101163998913827092551057326325215256326140478143135861269736703497776078496616045108395013499383236335941819419070757385742198029851754846944239273557793453358561457160761097384266141423760529236762886519224424109383557741279782761644949411251171604855797248552053477726591221786687386672488423668072420890154586228070555620946762021699176089668314520124945260238718015456640477137909542800660936614480053862069432825527521732762975413531572141981031479141832551317297775810191335066045650625126171734154422582284034408085708121284000504238294662250804255898613897729961196836548577197145824984362917529349136965570265998942040930303756770293673289826059647361770695485029143807845090956681236569107898838391433490634275645684740183355754421616467902608544893789355097883792922779150282019558838698204542276276959209862787012211897137049964721167074194516149371740188427539376332671556073660580860488324520095962196517483314094997310924552707957703342666541470576300737169317111713149158372683033874327843736667527506246829680278109066434621228958072700880148790880452448662315957749662149707568111132884767606190698428632478313594120739972141370569817547443383816042794674205815468977363118722904675093589501308846282354016143155128167315644399759692196788210361976887664769513438000139387110699339165293882234893203203638979093637765689463356083115886760919798895741002006454881655644695746800203308876782124764228302435524752901231368908700268131185353940145702569260695450888908226162414928599582906904824340589167724117064926935365091987451269328945197118388791620741498237984004231595942134539082540442392165061778511843134468344599937976556797132159422853084987503479478918272534253201989782434288207667485704717558631921320547545900596704915653547864708293872154229471913462965086635881688072655638749088467306402133048562287163813622078248183060312632358204930267972912296581485606362633464179335638841260890501451082891033705269956728807993604558715805346785618474381690685099335184817197258533415761616848596890719193652035302757364155340342317278418145169509690036950857059278388124534028851279897969119334590121956709938140339450920964900710310469243774279271049771794872597211376683126222664131856517914521198281055874803169449594842493116329434992819373695799062873298271583542891942188012792730240688651006439783081566291862104121178186089533112866386022423943509108994790619353928207633046636905851160710189932438645436637582174971676446038006779114532374899559404390305900909323861140423003006403539071317617537187508666317805317843575530085448070157570581039886553419479317430454368196817791294054748190527380343931630522880765642335392394248206876270103328199953734075686010489030245762588455296720557944311167555680593446393571339539434557971259907212984405774930926089682868307474143453843362748790733178830548186709563582420269618925841296529028933286112328878760036357181046264997259005281157003984449732940025580639785903059586200235642047130621831044369468000875138500792580603869597537853883412739601633866266798031606533881475576676179873369898939416064246091277172184069843918061781564017830425294547786855558084331733895272292471102547667193650926651161735562614454086655839687624499444172798499126272686912629223939598377601961163140065597849659649494219052850226557097856719963383857978784496331010300463653227580375959074993159957750495322722732578156371978274774262210921656629721856757270292805616818484431404251588096707598224976222875259972348251119506090944529537235047858927230767936778154375267523977261849875735208994279517949329517215311353720893051689339692629831322231007023827795000033128201143333363090626183089763914376216317427427729561827421322503743311955252777201722889454289124605127388247719218058754944823893703079620249065514505866687631840449235702637455740296775824016528798935811223124138791927437125363021451753455473070802780054666966261057669575001737432709642484955778316101188184177847119775433316840552253099327999862105024086549823325947960290468632714132761371932057869891139530086087013966228166545161449914851985491268878705694160417037543728168574120552627459661499369379619715247419991650629781754321042478909482037185991343013752201410937706279057792346652235526606340445550373453535592526589515513555978619854888676795284663811548518067041768878630469075301308936819416778892269835624856817312589635724516194483741399052108164846103349428555043544587915928715233028040092453671959760609782710025575227852712612810652615071160162467307577105516965067474725552926690502250930053123022235861113711825292294578011608958761121892127982175098960762444785826073710428185920610204665022609081234156823760257905600707321255080969258467154004776746698713117823733893444871409990096009485819481329637797189584768297315661957798864018887642956317933682928843994956908973212065200937821900109682205758189303381709050049278256393779000369237534140518875881902101969421778202002923192423986373569372131521426264957081370785902331502595610107753352107819881337740500836367013660823040342204264143605581694639568923132116529012435943844708085527655421100075296179971116737709722064330459581753435724138052054793411119341793017704236566322199287200367671514131826645166494941117694221204330124159672412072936954674180071743890129984858617633502566670111972430385065465736393692766891070756105281696019637048328813915453135844602095676307351766765868084556494573289016157616379891309157988694344321253471202838485903881400266398311780199720810277164167595533613869209775181137566282486465045204919444846545177915108634682263760529043105505934784652664621930657590391303754893694803872159758899316701639812477602377791403051869531894980711759748414833700507058509744408954984484148796853680105530193675299734667886770440575419351012365866973810319567554079644821181226439090495763393776169895738421415602237165324992184736350524227143793953421774188064181639813624759012807486478670647115023198716999598744903794297389460782378776367112797672509540534802718313694098030896402309083210778007547005208963138602147787753399783742091636233341749810842153113409979931264530289836078425966505144671008690680849738452611211501025948819203070458862833748078476895380455024887342289843884695993629283098951233223828926987614546416575516776303724225282571934813093307978279212303114952118524925047751308242298891635105408044625565632131341925434903016101543046826559044339867354347506506035946881012192055176158257227469076263617490606214309975702513341097361636124761000429173863719215215468769174360955846060292405351831905959501800371483757737134331981509468798508955360168483160911565396305867318614772606781005063690087410329954178806426891209569812182634124458358884285135567585588799522256026415691378663277039550462014415503414045596646836511334210130716943845823717410246418554193827069561763559005854205682511548986710194655103564207383940041564749153768287863570815258306093749347832092878344744090590452332999495876402970987806276105746008261724712009881961098062698827621855500652306793545017703549537604381358242446340520462173851066402229488959223262749079574145522967174680327166513440340569915268838548617111046298213376431065421095121744048179882276012136153898330304208423022051186323195788200237319522800728388055824190946199476084488478594507722646817483202771305821784444950363206605743833360085548234936831681540599254309442522553197772122950390982850436489932841972852200034043109470310971276452573323848099970397166348537096399738163136875292973722939049275912509040325866032811885321840036795748501718176695193185604370399776123821069722688047289350946295274910870845714633540172177607998073899598644903855283994081717307600553676759610794251240850548052335919488570818799305284857628084368744676163308662699190757287907590275987723619706339820885670891387718536000351910468445216560624240001692176743389290023153328202357526869858728172101312521613851186987880429891502640822436843521247131578051338075537630052036950841609954856196589676645083304971047167560724032008185234714557557865367088141252013590497518066802838895416125796712781042042907988954892129546659504957248461019598560606447352206194100392510969985941856993555526164569456081830915474420264289755990141170492139469122638358556713925325351461212694332734885392009345848940383718231719055078476465178637520906526867321110615637414536360214447902338318308399741392322130970261486300965060576732409571122776283902888653008624679933879732896035287839510935665707558886137037605833034961186806504205944144650583811326193700900358239746105797531089749350039264297282499422851319607100876929428289237254681670509270514204940373307296901506557270718036067860975325617333404169030178234198816907094629619693249016736975368926511520765122332887301329540691332595288347838922298225318832418744927935269848821843508311888177323270725825854889023237975692022346565420520751390347007905932547983000558058122864707676333145375876884948599470737774568652256872926627788411207019559300071757312197148512890466210480989989500099797057221351562805121129686761931193329809775909499525579648429476679646216098083607296118754915062726296929579963402909377265622676660135249456307084050431771974149911332514733755126100687587787628869286720728126170721766545146551709384097475521184445547904012760228752990883668330883474205662226004898835826284148847116972407329536486711215989198044964616429017443301914371443270437573762923197819513033127761585385316893758604573033850908253261153701028801538226488388652945207815713327749009479017849578210219142736226797859054763166068111000095113632391243751476049872108202917605122002859091318492762680233843643302928421359521947012257269231215831014036916052062035969431169885857763434224911284927792745800346644098500972769358113314983603808508984365931233023890953305253997920661809145375883559718273583352532385157551438619900484317071656511999613011201192571559433561709745900402254327364992360815137621151438412606688476874381548626855667931280800133409291856718099349076097484426460447473021464779570096888395113866319947466284828798569568407662180852934160533424928939505145980468884870762316637330703189432380144859806671525804457317124170046720854500304750437806271570550159120647580256562308583622006236571337524533041482720329526717923257766659985258201173793698150530752971763429873471388800083072319574132638473773561618796289575555753555646991561374081907310739561067831577210913963096442249350546802391286952905636551478411997372678103138810992105884889737522072736252021491844865998472978502364331679228236236484671563515922024087802115584292038634305782128754674770576919158292191624006281768337925911079220465560486545970750849570872742470889888686682787609859844069053449051992048640652797984847191765429385035427856398734553499266317581519400610322390000600886593551337537821395470307768087961604708691819659195223628589873050195095785385978201188078714983880321276069038311696948934822128695461780159759097329734281868411610437379517606701468117102441670647133525383118589297764287867972153673572711315844334706607932536497962085635954345469413519843021756742951035044183362487402296279631221856421899550873568088478393883654651943671791404893274072092409929041768531385810191629085777581359281531437202773826549563791626992385180386413778507138614526854052039967236909412048758783069725139108153210173493380375083977878091712232864395257134645366008757404567087853454485734828948796424701744370464029555566109450720051210000079174611983189860015927526638983215361801608176975676848443139102819565076808124778823553580777422286320848174242029396533163468880095515416660092210007373008005705093039268246462859308734851825213061267327670202564621486900328693926871172201066527881984694508016759108705814679924059267981344541594792009125473747258073365605467716520107010192656319436141562601250036765268823788633185101366375786057889648309023532988388425620944811620209501634274827411870944005258003575171116990273672561310053672417307152421454943208920185310830377032723118696764928888728207728038637252999550285341747599751595881192515315258652334788291898780338137190447253647485833441062847298236733861528008819760879501151176042229917681660310821040276463598501780155052368755415272830250179929686489871504853085474182070270230530498434393647933260422041998290524072749050783275843598269799868587302777797745957159811869327985931476966581310139953209836987143811355384988498091166564579507185903725480880958327862429909488316329361574206458050615953352600420347121643101823522206071651602947253773563095710051684225750840705214653043500621868571715421911563588894151016172940406617952778865421502993564084334857707737653498378255522363932895084767631392750531526051895698650554173850047268723264772728049111800533793370534311525408229652295262468236954383925825803744570589851798570851036136334616079973106068568544282117151716284297059779440405201558521947236996797290711711148222104769895635026768037763455290003595307753665842580330094853881967526221987858419344632695404632169336257135813983462541533785933182166539484081872347605817190676364599399317137054858078905286255907613182773153689433882669243577119678522461712847709635864983501938966257221851405252518974372165234249504636592483983002678011042800337138472852375697511303812786484706070156863075756213905183282516905183503325317468519791540287392307197684415537941017252639324510075346284202228292864007447678009822086686067885944031849123538789003242120527234945510308755762164106467945121313442368592988440779817789171598959305588739257374253571778247544088049118011721454145469285658489267695751106374399310199351247505034582095579751263219988014494973754009363925836038405825558848106749660435587994471666302044370745095753779455419370644899050229707969896799379490116217686153090844827387406977614882897604155684518964962845938389255847898539308063876662001543132227653676116337616987203849129538593084556971079071037889673190794415538474422507055728317258633433279443078786825433872523426238455084802648609379199871490085141879949370885232312660650465079211609302454082747728182629999576446585700996992534809906911594374106671776479665298700391051686186513990555652772537752788660036499065503305963240987899688336213105106925466324451195687163835467389430737400247060233253323342337920472071869192482764875969416446930998269569135853558636991446677331659794461235898247762005642233406878540539503736519006811660598645610691545078049489469087707457339808187687395123362471365419277562151398202479589723284403823125362162642695502330849837777675872447371861822051901760926462395947138791495023720090942603241121410311029501991928793400019959768734832979036533403283187803882893642395877458650559912811846354063548781958417506705001941426535814588736173406776820670979516216207427901152645003802042068795869647623052018242031867118160305682342083655799379900665916248456880356908689119316948881712496144332853440659046854104253480937576705709136289852939267494465051317570877193781539782817648891863062838859620456689334028990097172499090740766300978487471195242255264696405240709359508581267858099133513809506053162712269968536963420733002672374750571770331021775105085914635717660019232870999476326694243685146751431403558869678055908485741486117492122304773733986338827676773677963904669793416508922737390829680475489492016787850687413186529161008415992596658601173663179319837098740517148846607351304031903889856662197659478118468744518906245121273205263297552993984505314268254957591788529668752396770098326460551432728612362869211912573322317243287914604304626423400595541640366455524798301266545344125049448987194287741191882094910551967922256351539827510317060517658823015033369799477358478199827683001954776484580332063581986298505971240466612184319500838852012241851591117483226862649840678640187799905470050406363441521374838881321607691403713139995503918878101894580663277393285013261419368076539987907685732207908136421142859760019414558622638056290835166948524077035308038603550378000240096847954775014852030904531752359961074978981042317139941652108981925181533853166260145958897974411048845426329491542417809481618163558773097767235373599520284281204933244770228965314006650335580564779439177389735373241175608272505545721610281472084000108283111421315439416247452225472486917932352966447145399700527242745961746622069925205928301191385693549167059128548326349005162170288069179589891216000219230489290404356850340631137109553708369935191841156699857987596468022045000654346085570898380679483464013290554420053255962428301885172217048957859809033940172381805227118564234874909733579151987329220994716204415060569251138774648115421641928094499624338870181142116364601409768883534292440970118631212742823403942689785459247298908395927809858019089819116551329779791919456398966300388420391073499466462130203139257068019792641805788857656547756550905005489934006687554405579088929455584747400919480032323823548115468614988198617917422350976283399909747418317989834277658910085453400379596112202611671193217135592523299045939310658133964271840192905872896667872539500198166688772910291312337441180809827331144520077923863924104096315752920440388899951237501256194202120652424705415092347100351341273262710878803672990726264234614348850773729429275171646228568115424680024418894824848830591410070825328130105640741035198051889940794464506067320614775447457543656866273848231836219265287860247447370298991225795869514556259877245563629469144680424916926269845318606242354230163563153883262045270151505346640038963074415320407149817097900752429574273576885982372382612761041897532188731888049322618689081315666406342450898856860043443047160908477112307247467189842959121145446668652004356633940376567195679301984147317635574631221333995764724508607663551883633632895147074823100238845003205621633430263456673316224133455979248009399992926042599347216910109844772716474427859080710365036641641537059086007366920021850129397930382171245709005172480708257049533741487533240893840458349414027681540107595005303235761691271730599418881345520552857882486406584627241923760195093666760558852838164880777466789543152013765193434104377999736945927122511899472631685546770154133704894793134862173536926131041614121843223084842685196595307280001953012715479602721256392214899324498668795009555625081619904581958538964073334788406571199622631510810687284915381837334339290482713023063030169785769222136220596230929187229529495604984408898985977350214688647295991787548164987265857103647882668560140305879108269950988786829438950006927282979961477269060897994800610314457438787396961511075662588090809369271201034389182865006028006515310135938130135812180168383370113732775158192247190089665034811513490277974939459230296891352957152766183550792052426031849970136705068817663733447252323970945204275421111422935307613941216498137797742129034313251053260717586625532489244874903755614561751343543873578696192668510939610084942082445266708467529970217199682277553161547955837184743399475783975477240599707568609880080999485261061907452239949169484029936608316491396945780595029402158479859350715892539097472084158775690629975127642442246877557673706935652350782362045403721101959836304942655117510200669595354919306926180831817361040192534372889840313824693077439692716467430583626768449179320116137810887013938426538821075594351136961038608048958920783876507524205195002110536644181872071442806003052506011809716900520379906554251810324348142388366390518863191828589624088001364675310765327047186639077013569373966618992036974973890992192917475843709554969486836841989920413255315648533649277910387777379244956152973055638635426529606930514338875609130379503714839036507935944529290460717954455457451778001049868365356313851076958170887364966415726376729349621401601427244633397263000062790828640131755356565010646157852896170291910716097234522981933912032303852234385263963189842768367664634277596138650139225979282351654360612148732555958159114951610840694147135650538213924922536156695885286873040233935293967192715295574537530796460685314965396091744316517957112050484728873983343467607405824261581439585722804562388896888292232643969245236777979592251766473397190468530565104688930747270967762157115770947171294614491809962956840416307333815640100243991571783140418721224022982847823879219643930609101626497956034451940268420983357772824203770429781692496773281601555476559836801950237353452452495820447011925139883227766173577023378709162515378994815489965058975999146776261414149628231998199281323000529084342043619300460695124916353263243514242431042524954334586581994341941698605768688815872853725356709777038241227393623403246025468394814029883550251095258637416261009044634451062587526166421140017352805843630167012753256856721550569557506001138289246136264548896853918796333754518892798532634265030933988070251455657934398351576621428409085048566036590421100153264448575355353810245926422308009964141090060414319177408214756938479852813488786907325626905888114245227647309446561597567004471800071717790062648186645627491386922878941633385589742993057396348153163800940116615941695973762638630650627112510006031219547445969548849103683021429316887548229308606785365304183102806150884111255285895979685321763734230989348093487400611376823306411298340963533080042215190291910247952789242880168367529899757518503745544222491074394090014711328527229165734074664169550488906962977022913423634416297964695540817073048580956189141413134220707551204953990857552314743102264825552045315202310543905345381410803007840541975436718113569612716016874928522270039379825608349478356495155817099150041048909229146992584181054025335102618878725177792980177575644274858064720808054502062997734998252539257221846735613879470142108343040622699119134846969272889909193908429783507271782304076812327281475734067698419198683994650624332532477295705595948739612354750625470241910474917792522992458458420850824614312544418343974586396489989055855621830112342963806695128558660693989485942207646184498810473063599723397771870282364756070555810009537614772826315339792441587750974707722453711933492459166068041059155075726310740619934691516117917645415674860727829084737714151132553807618978098759071104743820334880174743423361503522963742641815682324012937279674309882588037357102256663378175283550764360638610185951309781475162154025490200035182145920177237454447286806010181139073996098960811063715323346528543019969735040993293497590111408950171689614979877445233381063584710414853148800378773657591887742133051683162388843528180376718817766194581104448117876481233150131762723779392182326487355054997811134445934649010891118115843021404321332500994766267734058232983812957316505713217191236237227349988372952194504936822270790451589174190660130815650239692870543939253220006547166489677143380077278971033991467361945484754470279110637578873377234852929957468195987915864221302053111545265945535631466956777654764396911261046814659840606303400131399134895018171786198593860525247912754327106908141543552639293248507620784984975278322437479539582355333303288928288379476779396101277541459236650923165044626562788403196877794054525525081784955986986884716977401005226726101805948795109063080192668294152155862532243696494779347698228239141640292243225818024107298617150807494511918060607746260252681586280477075835340685871653333218419636428262991710585221243675482965817816704150593873147065156102029956509743302934421346766678081798447819248548168631933969753550309445136268613907441534867596730730615870810767930784982777307468511784444311857426189315926052877460331760179471822502707982014351430487028173733851695303062513155132412774700627219213495789728173545671988066418412398737481509575001186534346333498804034425856546255874381626652455444908736865012584731378690620727357607035793423406471112721835080970756521594205807680016613221217781191172588940676889252203577350664333294603181360538972049073660236348352219687771172678068515818615461479026135358943410492763799118502445358069153590596268843652686107428172087064972270349258675230811254135093784381405374280672351456840939031671066234381489776866825592427979910005313387580405358955282915233235180206429252275050063181396871999799166990632377293442755999459053737961681415830921436314343647338616543454169808239011805938972437812460163941592214897136494679688471275123983822981752297245356293385455507956576460039528717703377085940472903808833708286659175941826767174191278849611441543441780503982030246712111240737862138891494743543113504256154146446580569651900391056131908739623951613702331259977563533241856370891967204310065661210929311868119379495133050189484219895180840241164951058579713007690477028306781318439837524223762724551641206848455044769522999408533320556188361965186542487692016993714104489550958540937843413258301334732580514264568829487006245358628385897752956685891658670094840704842286447809197167610467949490528727049980220797837465037764002341604685107072406281478419802838059265986028437782687066648099091512550937055897910244458550739021748799460281544422987822801448559714686207677041424723114750646784917560210413505952913588756067219986427411772739089748801366948370164835641974794691455733026295695347563153795596286314339542502943939189853089733421842481598839519576962287448677470711797167078370896257573207684990715016714625482482772583998498339027140114813470697649347975850371364376944885067297734931158707949123842065193761678127544637807014443092482423418262724092509940429294171344470136949650750671441902198329728005138585195241290985992784020527899897868726167831078645105685618332913824453842929655111961675985675741574122453958761929521275394777275784751319736531895094377219958056120961381468190389757248397497175062306916375475335034912103458338406298823167942122226091110222560032549784131933230464119871733480947591478521329359728797711941724933120763116552361188610000458435536614795691767463692868274635558887810407456326842618676433195609347668147778766037438360717807081313721197505599874668509095272266871571874938175212683874984162956153533097773333617798312995084087152737340715788642206148819494893292368224475978979707819733346953203875524470551884806797796044206404520599574225586137502296214631360612977233909097030883415001124839236921729389298100149319133859296543099527635035875928079178620668395665820432340746990943759269738558873978162920642536870750804679384014346966031002418067981191697705090111323656007393761686498514423781326856078880395628479041466859894985123837657049448104515030847384521156757023178429493498104968676490659148131352798674588409994647190951058989905757799715470249032071828870611883022759372075189396460857398475164949523818364379281175328446087734240972115845278514575844307650395013870445077583486395378370343056108745530900473552207250150379178237549498699352098182796584207540682252179367064628236678196903431071482762591104232403295516041877987114659226347072343436316501465161981907894051526876649055576185352098505477620616795198247750329743177479095909498976380919883784532354940112393143913674777033871163400209262133010416334145436543028034196355480452151355923487238344309073887505680542482882531431380336030852846510930837833350224247726495458361413768774025346424547773979501371539635847861320365485439066702104531795005722097725980774869881960597860882619428849751231182901949611040798869883831912525492720702764210284048436306904933058785629808381095461723276120964298696691970924573786122986412166236426753105667664781305414593039501894829657468980698765358003885638843329384507283178994107769719896032119457275769516343927352459564206008246275326396187765763389528044693438657494204055702655420927485428932910125915339415689359325420611785590680389215426874472529832826587106133455095655199314783145939957067028706869607444185774925760630741478566250459158592824393531611708598959346323139882017092723241804585108640989248547882357598967013668887296945486988144955350188106542901655066303150959115710540250058587743128235966422263584599747048020762091914520239342030075574347323352748748367560564721405071150497743034765453689837757582289082248488402867423181934460489784171332272262829891483656444722652837984559183461623863932503194598086356852617189123359851655188810269309102766646603309835042571444184276532188345917454259567395369134247857543030820993000481741304027645111792324184186871663100732358310324990967064444728766047681283258344160548509814847468293959422359944323932548630820293215729074439146920772861921142826939617957959074008271861390749188869355062472521449270594979838194740993397982757918821661316918445071271928142838687555172971327985908377189471536699864666251437262328597705316158563469784420867886907838476375134976344342426148183400268264692620722793297092275702162207889558539295565307663129877087525173527283730666332168449245538923297065817353352610353710686446952777184223898444347581746812014460074278341113129664708261875217720723836560247016576138835890157646857846706845438135102094089109689472199741015189335929872177487924101715357723082242426715090845642944176561153084125117269921750368201089002125936158245658586853026643999931455389096294173805515775252852513570923249179514536991194283023104844235475640783523478688890505185116911653162606131804535017927642671374915326205133677964753151271230602150960266452142762563370253853247065671850045368926075092238875367814024536765283772195037264238461445420948524230022982057760232356709018123656501935116724657003150085367526044484545881736100487336950871227773989976554966983913850947977714284945632276433596105188614444327973394630249681460421031611478075077069430508252952743757532486880058649562987541187777370253254014842974821392621663070142681853682725548188540479628288395280277119768759811564464058703694125369779539467479805819706320124088244037023387249302302404829665351328764580409617414115969744546624771934038114663936514571510581389180124589217051433086598351745816997678762940037465189770297948126194737676725981241046332143273158457072310991938603088570763109645882529167357749962044339144684318466702101124680420091164683184166923606758469860825345296461731575740291108045908461431762486297097576493044259458526367954708027138800984982526564061079662072979932900719680408169647297195832618394829932344869014973072742733687080614123255735904915101192591502415149378686064788218704793585996968371397904551330436835197884098774188817898479520313793967519973172513209370532391956465713205897261317504836048629497659215764977716891687749980909125074992741887196010238194337378730098107179527771876147947096339858619019148677346038959685598661394309185868718909618754615747735893345522507626964113893360811561069507225618473316772808993453097429159633975483647714799541510971017520070440914823312454188828871005605583872863904556459931466853440832201578844569585856249651035155016699686628744182378009855041465663109660251137044704585609124004001942091548163436385753480043584422684036984471216166598729041203151273966536143396646467207838051078986791036104413492771021137792662950817386330106656727676456472786986793982578362360185648616197394972048300656315634772917087534240849178621357692227544314022113187238666100396527480965122835134942221479631099669513094328185972650656486683995094576246655397264768620789244121716453485703201723376888795433844004880545504012985343952838710850186715089079883791238098784359653984002992627333091311065832007291226766991728961981607311322405753286799621762755045585896690723631817425369468937595743193646926542406353864469150195578219222140891627526020511676201898786562503686510100351011467066216476360550108086928932602742748137608343981878322003417151298364209437735493397622782219634404400173537450379345020800166806443400613630462442942903184973068288166054102034496012401789819437485932611744063981517671836147628424769481359723641902519996894006370933357371506763758990094371873807411873776386599642694727688873855679703897492740043694933365440992032563338206500675272110467658573088250695153697214729594416400271924086374450611576477791136688920232363612942240725307282183926418357685496021098009993520835120793496158822179439400974955219453411561242467434866691525789283111678958434770447423260644239968576477833714098954921459193305246722856646754243308862341211429191152188643625841276758048746141950921934088976890104817065389188076017649189107775031760712500957724149348288414041265204958185161133156103310762543071859390708329217220683355468522072286948339303633986700269234726412723775721437161181650248848941118773543871825173718292297117102018967137304710581577741562604187415426599121223425973416148209281098231135028351481285580577983932901707315114433541656712441501946167827563709885066219741083852678918496514292548788730525583034919553962700481419074521440150795809875402880175585348652008639630494503081267919991493566506350079836660811076276452708348281707993775377171619144663165635874829668837887532979275625369299148133556197885966944075994364130843078408552283246353791773043168629192237926143420444816927015401349339308154325155703992050109508507893035114909967554636235901059544980780229705579316874756032155545412368886399400261718805257678342402539950849815378732518475106235081847225629637646577335696757752494908023486042571698111895683457302578156536511493510425025189223694549582321793469226031882824465873444544988743570732276949222368932856369965557903908589377833548346010868153579422204378566483526416603837917422615344323497259795943931157059147967245367348779687172244046193390429282667830732534809318872073669818050407872266630765782213261337644077271181272059705067299259077036794107261915330704177487024742671518597574468856084979016068987491040413467465317766652634658320680310325895139082056072680393074916060750227966749402562935280328407312175360868419938442417836963803413366458188986922122349087714738096272369479489753411310876981546090815715664762777097727387532473224322829796833453094066942831781974402461197667680428378617519324851470209289691695593346613043488252448676280888980111186478316176291996353451478934670611703368838190708544818977517595190864052798053678817945457922074845812494482393250077654615172574073321318490290726717370792624819603040953243527969564809469297850343080324936679579913323191855634951157707043374353297444998367095876288145378223439437080692557695030587424752531938334471212062568818028358801739394017989665575728549357828687922550726488236272813661787547610916882320093005106668861191619667175102803007765561965533242789024214087556129351884998966290565091511122063426290069192496071774708097679813420702895486394589179124266582736700536751330867480826408865253084914615481584174807836746046147909767209562504273134347705066138982182592342129757313834350728795046678435639421615218321016880525896778683917865025279867013768840000092114407619671243815711650907539180631932092613880991790860242442420967902577327897686500570143047356357222612111039191970653048923160718275553660941388424202058134226748762371187723464697102700300202512004238189388076813849365163623969573232720435256032813995961431235892379069348656395240017688532217848091370758492687500652735723878090019832345154726594459747187872687732499389148170244991911155967921576433824040711518420510201129724818970973981377704873758874518595237160663658768810490736522228413169306760847094623172952828718080103137315490881452307677249370142822152564762552489083212332406138182315782897854367517866941653302992994606726334933571891009223405004946770418707298367976578094158603361526580712030245909049173627626424898238350891819528402552653907047014525325617660589236492255942595494535450870000383509780804867221350892289994899741020545196259474616897620685476572946536195877315693365715002923997608233935045791784577802235790207117107574590451850564903021783619007202995378996827833134426541254595605756114788120012324726192686386593552291066490974684898950888774335558749721610782501419271365043137815746306734804692101625223058286696739157120940618476650300019488228691456972234084433295413841801355271063897113443958758601456570708567594465944865145965389326040261423046384455610421329539045999159989243871748699068650341800293280353265821723374737200812444727437661648383179893805561107539386141363434295570006542607916403645562465939657443920565989603726633307287061784946024234460638759815791923289018103789913474702274035814317055522989708096978669877270606809227457699318449470196790532875364972754059403748709490151730334612584146045383523615874953452770297992611434890482573524480622165597112712306627271504011720441334402184390848638817549308237594464636713022873289645809772105932384555422680841835845542779925295944456774685957114518365079129083569547243701743407721474079124960110356031930975059380657662896977171933165878647248656434089734653344013755911745262463844350743138335055944040998086035002945193717431458438497552858496866958837708192441676783905879179262887183886418446462778371553668356999097226699338315717675872345112822173858861401106070405482338847102218850637690724108705085754192255246756775594180574102191107224297597302767608869720304415486438320237324356631186288592256539189833994428805644845064903213562014139738204850992825632466575948779681073113316189371807622365752913308070378493790344379036630787855294901657461418686212203093845122765193697832604148768746697339788774262242742519838831308679922519461780044192902470727689449030113457551247295760290685260699571125302950226875298751550416903236458833659460592891593370757624986902878700608613774947030408445240397629220594515773079616225991957991522307098616076260527170873292225438926152418093548036715287207212431715381520136859534258834066661357197598159957033804573445228798785336533574722628194516094880691973599372712843672484960953392912582601710042731647692064782413646831929842583006993447341026230673346371164320353010641269753634440258885446473600752678430362418318479341791861413418739123691640861916803500287668104537400986901233717068873982779950588094215140228815082514285149185996054680149583597825988089147794475140539297495224052870350303697037306540311888852361901961327820363434280431993852587101898624777918768487360942931862193710924210455684793618658888542519157499674270415634713556783276993300233780191214738313233790645387765685557173536683654248903003506925123909261679878945468709905878730541026768642701275024390658201679203421679876614107336359755791117574157821815575668061779641416220952366413727177770421034954611646422827848530748989579421842969738977107530688735500730506536820996275651099962802087174684804209051348253985336167219361753813919152371653694127715873090840474053592416166990061136231685170849630723838102699010240828601315575673942599982019966259714687468167034499071563775953212670047241756791359113197724246867676014324245010028397177203127259227529071620172929005977495487059416003074668639651660007771407316616154485857996466389654192746582843328388186824907931486282397721710711523351275735622158483100412335425106208866272952600645057295166502797474697259583800330584424382517835341922780171274613264295308250400912599276410839223125053410348653906906122667894268726724682462690947267194720436414794371736996505234771723373317043829411601312497519773234415553106004498205276315498679086336452201346380483000812115028572569902564584842743327747518936895558594144938311315566102104451291936479361722452981846350907536919235270480363702854455879262187827090214173450943319614483481839199204219390987150405254291243854093157364602470035223552712746256176152338983297697071682780002519543971886928381129528285014055069134644017112821506921940074374925759096396596623422499842830140159050260966889964082858549424069880751173609658804534289833155732999950720847856944982136964893304635854743148533887571492624155795762113960539846356227201520735491633998403333546117157583429116205784745030198806792470692081993603354961170688866311645978046667883019413193357414305957374911840318772304900173040170548828581847418157385235432849770692585661119673229468834718330072089496740773412211854794026482746048283763605243689657117350041771378564831537997406993447752042375946068270560483957534704266235857836087918295036617709465692086607010370030984529792814464465066157563556240292980141688157256846804473195740194153563666064782992179032947054987115074578700062509767021883118352696383465671210520364560508265466855664276685026927088084340841000144226892327820829573703225423237954648646240722530731754961208787453283991927692167376308482040460030091067281040618340702045123896422229570386160675979681879320812730881512426730053265751751559740032762208075564954585288819176009765280019533759612707697851299229952583037027708200110824468694654628291549247530029469951079141219617813533239939005450881307452450104672477508281004341047955187538307854972361096974904140116677273908990709474224913252458957560965376496388849705519158948304910382189909330360904263305484969473682158639012265705010132321791442085464213939361971776037950204251639513498796685112561253231660799533429780268012947127264855895645332403104683197934227737145215062815521444140536095312080628922048498064729892293470985700239894302057751364059928599244070022869921749926535996420237705929740331873778516929751285597339176340546105273890691540967763337334904145367717587741402090928783155883823434452825312133117719459696365210426755317041194027330286893632941209257407481242906722026682785154408433644903230091713304820316875061254587829792066262460429981399866262449466109987069102222779541816971902969739245121279473214138320312909325676892942029033309352779647031220749453608725725577127291588688699378483258008917793308497880491457296169452218160355595391886274104098661216137799114254621841074710268478209572094883638097164763755044177450517833707345025167377125642967688040081912142017446165139236875524795783379964317168227386164140812813541490179592166458716971073301918122102944214895455042572169695315504925030210598836973926334008247452432971951102467305728420040085524858469291425706245772991823345572078243472513153682863914403426267500541740831626476221713337283619633606033846340821972128175054447075154429398846639423012144796086663153869749258427927070593741719375943466302751943375479007125693486550721527011513298550507035576076286181188846781399920942360723017486063257611329287782132918770366004017598095312176517763406890225471542437598620820352277816133678467368632286021941023830296731129281192475676215955424782015568730390190088405663136204219706683169930460517777792904519588253160165548784270234859662921274622330148771779057324677431877273044903648406616401629713654179231892087485285079243290539418357036085759659709252974472782887586264414791022393687499440482199387832292618339587212549199408285678319383680526232046210533319494945249043442936034569342530548455413973633583422005985948648829104468444250852683657940417277610150813786570331464453235330896219626276669420170995672160675599816463941968641823006361217300432074400154021933342646117559397017065601809616045256294277017461698409199386711199742916208784221639633378076990493862441141322533836961107807433960022950810320168371529254210255453741703803395756563351735244896073453690060877414065640158638658680310059048904337671634764681924150558284173746934449307306885363720249966879919797223597381337541135642720189844336904678721305074641165932163050556900047866281885229879171220169936646154665590580369980079306207028682361986345283068153095578392728320892987858287303487001607217732902587269081554755394063199577565371235313373988667181746199134484512138605027590143928286737995835450864761243969469634008435146898959774957376549900587133283931350798119184348568424165977094793005697627699844130118424110553641398715432387613703893283338767171489278767302329741651489902291227338449041640063527220053939764694295788916904273906867572258369922862838934890668487526122015393008679298865061733585167492508996561912606148207164296977818638851981588742597526732780069630418130510607490322584368139717177580767135355454895571226941227464417857809426785226161497860528281597746656279002109710877675904238685788191052832485973572147852668975741461345431412929324417428982988568988891008580339874756929897908780193472812800335852108539964994721363084197605041913047774177667822024740871187924427372438051313729795557087155907082897589265343008037155612092633486512802796967724542868174589309534431754421214262765429503416120022039060139366039959644605813781837202907631602868955203228218013879059780147976928141410896827197710892065288448602632300997639457539085791487655054520306143207825022465646060407839325606179577610542293943705278762460095933494605781222208789281263939272254368212130614283019954020358998722737434583929193241478254123843913823741483026142889462874000705321606817980105753498135553232162683769840272208585516260043356157030159709670397065298564803555101704272868606025453708107943503253258487878688946342861150049405655710469858601801551639440378844451773638512708960519463943995949989347200244668092389273719186267242769277020006477965699965540421759881220058032557173814365506895540551221494395117127729558722438147136599227946410348324396179034427255955335053916897043091535251212432857195041487133302801356784708672756942074407586607493371610147085587719878925500600611863252580598286933825016479545042738552920970546322203394628872133149662252900916575966730628358622130370312011857634102328196153540896133807969627731502107038031310464424309201000734205157174658748387139067159000225194406142036798823439698653070298580447097786336441365984383340255129750968064584733035495392893058324346484719135796148782896049975504491648943588718817184475892431513290417436142600871365732648016879601643020852756851215277001245400411371854911845151454619417504811051671856017841222331046766892961275350633513051312341053782787288257456893174926893359556211935649262549470185942505694995184063244773340619482524218434774733095907464835271742462705035101615840926773938913324241941054869362877228784004402867262595406864800200820641885531652575143526234785949249856161978900804877308794321468670153392423317844510485140814311932734585911690216794153047087751573826258998803239567655395437446595528060111972837894733707938600312339850293539166595704206493773407179239521739726259509055949177445526324737565745357688366580895761089072928789962584793968563881922916792185899538190298094295344499585479445279939782646110252590844772655617242845466655012609813431981746257949808752654548904622747181032112012647741717533804971839389106413054658744540159179753864696443825957981464417399672010975719661123520191916922019584763142834908845008036542400352174344470411034215986228653298580317663756417848733108468077582903971047050534192339305443783893008867633902284102896850874855951555270536007939247015475410242995976069621019763699543712576846879287730343143953707574712744327281029064156834593802669028485833550046861701610875029191982948085912267144381980679337623107100128305137227248442474860378515967377949535959347555847250069970826847474566568040134588140297581501880140333594888598495596000210537727633008332152758191619946068326453516071085276531472917276394276230681481502744616068116765285291494914912209104618273397868422033947674664581696819132445666113218345126169851978226302918050959156001766977405581521007756045704695322738858856360644046215807861120475527210072577201443421398269346903346540162836852043589429942205849490693140419441832299062448584775242223666111516792297770629389950914985258382657713569472278680137276350611532419309781415451423409981173927519070779956454346066061199687848764578984391671018398099268753153620008311102246025244409087494768149437313341416432675804232908356881163341578043769403702105502646954380487891366227802104768855141006773448674110080804460778583721045650005723343574722742079047814481819738326865916802681763450589252406702197220964902965382090300799543308116519799185319107216562525907329885049847205310266158811040596778063778906273292208775141771650551364821086453282896972807279516039058748068609589501881300926447321006285366281802519917483547101263905562207846165176431552517440297618479332954138913031018283584802356674681445263420922274916029181792091527424687274105812251442618919313240428932324681656763849090416715853423409692739551621975063678282013857662787135997875812000449500295136141429630049645266480686260742243294474823401712479747051603400853273438693304220225557286815240377873934828258181606966673348913014325428213463793062613191770190173394381743743192976323205109686838996074040660633312392507558507009454944542562801440041328989845068625130804214407222221830248413657196320308576870052466084916585717593138783565309497675409815157346494169223659030602413788422787727778863999307646615393986360530176423610805563835502926040884375342052484691040811371834545318786577580888560561002258388695649940111409840711609534029562854924487152589695503890063010977921213261782548330862974000998141054190713106412558963054875631493523608764543267887841979946047830852228417413998613974942518328049911372769697430381943065016617266455938406646566481506281885568072581403305277917801476294623102962318263111491987110662885406535702178927510499126181085805811972387452650027360186549895691029430519873590703312687505939430020106343915514168350731150388259373816880365621510943515200636417024118462256520629482079772669985137235559423252463919607320570872260618622080732439986545129572394103131062796235450616851595839967610653896566563491995789915162107155110123185221193527267852986953635180398845683703078135488011298704187839476316174570922373951383750266454018261205637143815047157769918081719577499588180449475775581463342399916763225619169568306735627821801309051652522198790512321883032241250664825362533763513762914078452095343553622508677181296874180160939523885539559885330337897230843317282377216981476172665730242911214298139703588242212794316825518239075702528352208805347686488825284065551890616852566111053707672843574599211619047094783859130353974766744297653037298438460001528774139224253520464122592971550303794891288114718909576218630846005447109479835188814427910781055428215236736779718474579003857215095712670752980218258223624574510295439977737896596126152579901900425127139191900500210758273358693243270690373949227968011448134528339222519848124388389997696859457488798261836333104511380061457670078424718033821466563168344532885337155242492270981122153137511702384245926615377590621915346204268799145751552776268543169918997822394133657527214361879921975210131434432199186080195692052366746547030210231950292575017418863309349689317402077524616202939018303091628012777429668775575116760189715742480744420179821405994788796694993556370585111930933043908480358082830569533878863418635151612014909562489154409724651077349295656869438963427794521097543130334690323040988048506569822199288400370937806152326955186464388938245713456681305904671699788640248465255806137266435969533853995968686613513048011337163931766970242072854241520406657258524751603869564531292029377243738331140828862511279020709097229511342930297435939830138962346180453053750035340934349703391343645756250557081257155595675449163917239799449948896046484804624496138031459914877172303024969844592826452724723021196018253781024781749135685861171142934690029206548148333357794546528346934706245500947582787871019758987576669300595399095726298502728027550953968035942792429426684718270929574011111746930579563807411390809882536834186631936514519803244604646007153776633611822254881259507641379560377491425553624106470672105604054879296384739693713892329716657799159685628611177711965291181423356655080611030509866703114998284656256858907415444860969878205840937802188908823404386529744927957175570140343525199215215436235051617429947143882172448689683825067773276491016113652989787375279224560173905423085364430596549149941272690188166206487212796094141524486638738743311768018317694301388433578106194854224456003037918774742636686739321980869309853641034106593681430113953390084929310564049465319722323004243175712456330820423881662086919070872643819745205923613839531559834087872398953540714651262467521195013345806230640240356767797220785777406488237671846345924417495223519083978134875015197905372589006685120924713487239911447090561613699581144798273773141982307245402458965717414018387366664942624647000359147252333541197795343406702435240469647101657843055784256792131008508697283273075389275119772603808339017480423773724836245704506229927767089540307014452569274470568911336723062758447261093990464755295800342181647292432570627536905430908158034271401662719387266427893288042882318482363544035493770163654710052319641848995459775186771852058555160748864583019832958914407315167269855635455063969861537344468765299912821878738080767250335750818271240615360604921655249157896525082860277671567440859297706273640107421654298539842547118487252586160354794529522875507253253313348589806807308618496514695186745990161028892611169570689304585330740034321105765869994181730924589842792860555304052681256830188222326722960255088378143273510779820862059719522353682681377446842795849379978169432258759526682887587865039274553094004424579966211626423607039662564813215085310794081973767426673222280354136655424147902747898911056661418154432617060925606352609711110528224811690395927650052413232524042802550660684791887234669394546782216340518483852153840215379228985043161622068324313836337663187708836522233714851234554487534157951875703291632428213594241467179544152980092826812883675646614453473767332516986345228310611550356446298124617842883557586813332903885964965198808205393565455340413922038736336964927563983985291673114727883728728214192800032358999356445672990056215103790773134335047931353267120835947146254434378694581407868783232468450770878869184904442170074280904196435983700298794366917445423430199947435272725771666150057479726404077954558321006004693975505624022873055719740025308924469704488419615472096749098138629383834637679375575339277530776108789389947206492856491411935676375116062077481334368399212901059082331241699955116738719657523469449017534227681132065901148432380449008209027576441859022664426106289990079101616718185956212234932844828986673007986548855599225475807876146815631853229019166524820018390706668895317164322764309333557873158880147617701041177612690398464632012868004282486472723079235915309802786777084491066561667440784146979098890082918258594047585551494782515552347233831915402915538104141238729644196169037073568430911170087138356991367653234449984346995913896083348139118372861370636876249659162921309910026559620442373330699592097111322608550715505827074677946520770075097684909976884258723620401978367926544491926310828379282651370252158076256427693238646644439660385616446885041672309493856639607812538120733601858903380734388849774417228160919045798634751503855257977139642750859094456585454413210387218703209641816173113697884348535224972033950214227813597110848810324322193569845979722199961567022447783482410075619421348439907783125124604183212730254695770680030308589403940668672616566617012856373909170433197605505345543827379618717522685755572794698357893175078798152986204753608986056080427093677343047280671851731096724224927537286158693117492419792345698086516989134219498169681065872031566317889527823581054615679053504879040591550471458695650783995575954403814275327338916979530169609865658769783237798850942768001195178873794507781610195499528541972757984279835542055800070462984043197006255431661720615992653983716041192016518170581128500156983542302633329365388414456536879315967799348000209169187634542796053969370351655568791420795520986018550855917363642195448703407570555244553342298880910628028349395122720891963971672395616428928806129699145570297681114068918922331798451089912732695301920906729769866091253381074061878322381293735265846887089687370506418088268725847827375924888810657866084034188169330224223544562318212059134348432587913042711033464084561534822847558569368536882844897548159257050933407663316062594922505032605028508162414233236681245819869672005860815911973815394533102442186882521682605301056359584883185887770440114644435444956694748896118385844379526093968025417368609623592018314365908219045182704998392994995157911819595429060792793853162349342055601236764645535906677129723825642912943555448437376399674790697379139523947194421277061637188004885735825648035926336505681402564994241665396876284107005148984570894343033615419088936488471757560850187112981869628098966404687418162486350559046660044272497728051921324205793123375206277114823018861901524896519880388826460907556146006345471786143534103264275739833598663079626447554935431261106644759941439631322108697500659294580711484604919736652960513687010944695318513998334041143116543339242161303783729594030466897402601130541066484381226739973941372248008165726330025728588718180320889679571647632447707986697842129585412625457215624309161851525358183146276385351117552709450496214274108642823962779173339827288907425810423596014882743268758099420631996337617604369547858399901633329671363635525461367664878069099070617018236455768845283267798577747815439155780927886796264678762384928398844769493685304511902557145704520577375060225304256316177573414576240992278135923142179454647295226920413714856860106277610981348093121988925488189846834981511990202661853660251029614056282839332930791625837537130472797418011311885378517921049582951712052027107872318978840944288821252477246037375255478227543712741699846128527002191527435086894607616175167370210359338800918765038996884893535508429547387995913620898941355477033934478172910866600733224670733458857822533000783183013282778005215056382478033650250787875625033458542042759134269485756571276145710881564927807721551408550171472624727718419453688782885840189936909690429518748605342044810227968853985213636380252576358097866215378782843185612893544093779197328956803322655451230306451930521662331966544521997394403362941479262123322087316782722199878633654194080739148699775034951329051311800346883354187241895030553763642946998707996110057101565368310539479800758161531065144475048853069135291520151732065759364272015617183764761011115983644944527415385367803718599765576582277892554314244144287391563647413368629436074779575701790500468107337282691352181821179754479051263030697656769446169766824542058985967649243625290649687780223144480638339246709505511246048162783684378672261005925539436262765048661003173547377863616519219094400179955981751140251300116818020210860362452388552092084784642976992193875296326664048873413625073846275815943538131369246600793241646608425602237002956430450884054919692283451312222208508233713364331376799510067300696976445961384842930710301035774866692897341780284420434970347447404181375512271655239390273750261495990962311260847418090317661754202125194389119004930404335167497734016040158828406986925345353641805583736346097831382992922553471377494067570391856946490175998883658248118716888803190417585148532502737368876447810686316717616906099504291760396841339554433886245607596476224434935421600607179201283539697298623544219084220274409014525179271741856147144693031860769921934598797090141556233621291625018204753027012367665970766330927089229975324488365966562026941433429339601694929035142378801739960498072386338787892926629219734880200944474973446601320613679123684386161627291073566300502883804603358343467577891256055857451390359080375187493277896544132892995136494037594287310216048276845823462346920418918162967187716866461354450344554148177878494195637324823556183219377664604707446690435701901394738478504829332753549676720617541464398180639817875279759904217402604519502289408817846456786814459982652812503119160183235308558247789128761956267751716717769729857037012358410355690245126691466071778788859982127012921230685532419086768933099115685363825657299288867337237811195423219886217519350545603889573733862931994138585546464051866955194111813489650729001494308182596451331102796266084363736662221425054435286210515674233244118745006273530062570360813997154993921286594873484496493606026083153428231376359902343250623084879650906072221486042634735335592347046787817547374602765916059987251931395864995324760327468125791483804991437102207245286354535639397681937133462908473869174438662136292586879901018314607405575573374838284876842902329147168670249418218189567869362964322006682239135038698365481014293054554706826375673942360580653528580107230412115109147245235950597679369636928491797242583855450701930759684065635539860866758641657598113726372593644046168664160632865611936333161241616761508470324835684726551351641332723920593889562687836149497081315437177935664175040605667998139427148753186516176569295019892200317738158365750889226070899636690196616879269696189683821106044322410602461929236917811905911270708142569240915047851163903002466210506584197355704784878445336057120547875685436274352701116901251767263079689809325228386395877261795451753115406112648370703276366256291417399786633081844402511247162499122198125172787571451260404322518543400790187480249291800174977546353649233867939588674872612967049050385314147763506013256360830531551170422679682127874999875451817305232522736983065488040122324292120094738222609465026781227107431728619300643867039751385535741078192670051789757300388096211533058273519838645670481373902637420315549948454805862718417742990568742980889074816433853512814946161580743925970886324624120581580919011564746457262740640982353208983759050233287158669073233306227151548588443906149169909077577176780768056757132017008517320469525301642816464856567764490144096137685100626245603421093397801161263746801805468671115865074192905182032333209028581544672625882338943505244457152901831193666894289020815250424393541350240409227473324478795158106989306556866818310571576668808070399995349713301652179083083377991363897134864826926980558844156785587089302276220852141659374082259992473561708958212629539867604806060833446686026081608584147878276378084135462912931367187443444058554819945263833794995766561898922774471713975334697131039737013604593742337645849634538330468650682269664314519420460027118424829177419713322673228907818261335058920232653995498520017862346635881027363061295189937570039659942853702103643391641840317105145674002624945396018414268230116022105684816760644140312284290411376828904263154501410955679782304512929418744608317665338994359887614499577708631447176421786271770308588828655461781971739224461615593580942968199106541926652412811906079031021301627083638441101697244651799981127950263960038476402984869522066380990534150299064683674359790110769047596021254939066043964673459955532822876142693447802150925939400059604993204929943200111053797918908743443598307153560857663914545031740555566067647296757280255908987975451234189329219188750872898166484825543138924549808091738545654961111020119694427035632872417188772102396570876333162094475737131487381948174984336161325369684414698894183867567575793347521938287095240358709816844806185958426811601920555168036129141518174884837837390214051027696731362308856700989323588690144274335148691159734621540945067180864790303602357308605160819691726366321938547206692843706861164374085725773422683503527438675138309956650596159319112197962182255087127544835979780645000974027817771168008300407541505756601921361821930482253038950106447100497101615131894549924057010710298122840272425558352638833199659051318352468849206910448242631448442452399236731716264796323048994504270544039159698156746657896521123643447433688100333223288823663479892440921893427271174342219070094981154228963564605198686434913921086558753829773501066146657912053310583834881971449268896036876235425313484079755103472173076466116176931960161197810710851665127019990762714530379915213969703506714474854783391049236294999009483085652269731048970513725999579098809741460074311737978506555456083073945572138746938626044727992926092809117909519901258153284561044122530140058474538367434132343765507080605711762429282513983833381628490383792029930094472500679430479067463668507354083979298562160308503340029836425771849516968908766131048406620366117870915432477102049901646864434811532713745641746360807027590974053572050965533461269299181206991376269838531650513978712708705283725502270103860925513674265398977682701773609139381900241816581239421562557731952615306415453169703775910166284131190779148777088865312685571454107618865952890492539808575988543816932546373878218725123856293039202329644273092924118989701205173854870455039132589171490060916322620798302976117226339588103225990423701872287135526298219149794131512350291798312387208319602440089940950337701012268216938836752693297567691274934474341476222942835076694010918016903156316152713180150064942401265520938207891926265854243153871397839393297318206329524097820180107116711539574242668925604923654737980941909365233061706433272185678603998865146909231224049418515809503756589934678632820783344583493221701421485756346872009296950017615142032301573818383201775429814865067247551200134581652738160355157067873872506251332201273938191683521497800518552449391336927887763553547021093584609200259239427230449389275525349631398056427333182940879381048730925478816182647334975332915248034641515512013392193039920394846672227306603901301161684076216486425899306366178974488051751047684365605197087953528364827338467293968946808878140036056717860958212305135929938957775316899328158395426330286338822898450604829106372753632539184904856871386462280659134736499188271955612663364237511107926182160523488552413379716728098804509924261751184910943029098592491704883818998226874413529082018621412288057632142982456403741826941979984242539952212229087661762890269175116555931262956660200754665135122668407132316448229282570357650876305958364984373031080194676126017506803260623752584555144930959391700072608388909780024891107914641704838248380945952059351533830928715669329841232782200407362141856491568823632045629235603889226515101036682619156349125121224109619541138537514325213470764931717838342629403234678121200235363627693870879280709400218914617050887914918541023128065133649479166874052179305577758406496110342713139266861056789080247268606763242299885041618940417934417339442615223447066151814093576296409564116767259290166501000668086461218649824249026475507778670148284214222343138052649085484401031427335399675943557439439641300664067081138037210298982849821022040266582049116968851377846138698496618944247162345008935997115260921142305598950033519417631490647207573722277917784622043101042077204046487903832853768484892411940470423172496954597503200664903367284610665824581144750507423733784359198471160991789888665338781835326595727454371355247961002422918637230974168067993340391281464344973553945871184530434584488219179881217217155221065811721169256939942580527122197271437579558907677109840058631578592506625300851239597867937776228001397046842976004172359481799134068874008806529036102824777250260320342360257864207663619094594567712518140989248836499164789370511708749552056479471766538609697337900238065344279268485369822069070868735121007439763359645740133688657193724162327765809777804086276220904245295123962989271877798633624602837550408596349779922800934534763599855260715604332477882156640923188158095394537344118173764633273178213557440798138650912760907263535181271035804101273670006910974623125308174636709521120973854957575805110683341111474542881647800894769936484861223282684306207102051154844848891125620017243484290940831082422506597416967519249226240710491496384837081979599117552591004498860057539767875746990051793204787256867197555288185862751191912046997070138420471064691740274432691906308648707339164928444217507942940218424243349360539100046836659624213703271059983290395573813412636211562544086270196671700270425326958748962861729962672889773607308619207720644397157149460077419443477426774418349766105907834352157761638342623058013984182944505001399270815332137454931226854219321279371386131804636220974666073008472606861144170126712096200423613498236723666842329779777231296171634329179528476165346203464111304519275336719957374485422812553642231426372582256282720562193345013877195353748576128766000277485189738503778397162274210227371174017012197704301108220076465191467180420465268393640166536111011811074137900392136126501781619609375755602788225459012587726790092468536904087160636761844170803675329096173904427157512147492285166575109882173559176438209116450875053073020879306202665721389983431410200551930628435053181351492297267627488148877592469691107322997870477763922954753170812608839338377159382134697111558671725995948081706874782653651753255025559777113681608683547019255160510696499337183188763487908845183688380725918598159576589179157947893302072633040722797614178928745969474830712060822182750911031169172108511573845148185512115142497202238001873675216415429944980742795963998603012951594826194710849775585620782873300036747882410408904596959055579670245421013973053794724697885508470667703147451438983053318317231664989107259381134542877005412863635801503307374403238100377957898834481964054259067839479364148146126282738935100347701690944116950220943378929804642804293531461321460610486105265725435990731950296048327071631853584658088763979838706980184291767017249888864813367181427288201758653786396446204912412662071469177358798589772591650427588365621781890184394721928047801287794637753567419433586716725623018622367663683649558146922014833296439885395701894280705618723632769885149778028681690005486607592097745144835371015194036000114219228268175224777077580046384430680070531973130793779392184747363614762757090870147036257953194359985413655998968324469717057266725462423807582566873463044645675427973008359613372695197167223150737814368992344998990090227956307981880277022811105742027525058593813204624563701961307014757599433678757992109217658700344551462518439067711575133418706364817364938958509537586219122427453323643294126417523044603186705818489934463996383453811616324455881620837027927831673212394021159511777610866439809685043262360522846378949256768323122328306461336506640851219014198428241841822957379186086224661010079116540947501045360161035032293036994817668274482670092668019027512587368430739065441615825541692395005002983566360383695155151418475353948549152354900788588341923184043263514942765397261323265483289676716017436051281747209240063976738502437604766214836722410111890119529120175919299945475932080183296572572222091684572180531760221571804881166847747449453943590023582735637440142221597515092141193662679930480615985381109362210799495432899636418202253895113849302099024017874095677614975412433197159300978312430091240428871166615834253618000006467043884505659912666464190630053148385443546510818101244573874062937465335215239596751222531068818912710864750217717376604580221547484780724791829488233228292248856930894007849577382831193093977270193902082296061361900493716433847319960338042432505261805943955872632854134397070373508948679182174439748762004518550616172838238509045788007630697349705924887302241732768626130993001190116980112020240806781183051678813047225045754876062027425738106637068568739560539375552213182102271331929524261934707917746024959939438510153599981065967421728265934406606101636929375345322079203485775013218633972873225449128418215350249862045974553450327604685182659225196015434326454215726081955748904860628375673540047191725787144289089595410029255976761096639974204117699322862057884953367764899150873313258542761360969047708293074107034613378719500790570793422064051613934147521984237224440971211598280590929005787045648215315947426412156502398986136387104163746162651001204776880569991710549538618911025711327218853008098835708860997386665171097731135166371894621202086151833742493631100928007742938222724621441246113794310891796862101850992098644134206183402332207309720524761156860806308339266270043816505041481904597189603891320760569446731597639880250328902291984272166552383932840231866114262822320360344484146091068540972499283084465141941601376084855624950905974927605028310295345952497348677298172473799962956490093415547672836667491475987167547572187142694705342015366276124102900100959532088395748611754494315772510621568776998023440234463139390703029059783045005563052134305620273382835365811390805554848514021366892111235004920437921323474333307878881612008478943055949101957281600864019997060652848122086933502284174370298588801709102631243384478566388235793981841083364017340375176166215241980231283483614370685958123815429626735481312942457694681046895208768350076996151271281113487314369104471853982817716645440382351301114700253275611373703109089278239214874515042537811013661030857960162787834765762183212117884211232341493139272461516054568121606980469917106596524430799357102464085353508381363729546196530730057439858131576864346483863430646100806845411250596600491358324292172130278525071497342098727393384986587674449792749399105094217980070079116193609730156476694475076393771240629448706549488854644023894837036651966524021473389595441933250632315460889638187289464517396228205451259051300082580542448252872756201402566102536034373291677783038391147755518887613462764580311784713136043540655229411004295728508300137146817562504914969863762619572994765959649376256334194005210483106075145477078899580339553093928701778171418662580938042610754380649027067709772701077703551548669953121793455130835539984511237434038538483911965666953317964068269893053409236372359697676153792910779335804648457285211262709739850784233384645675934025313600985669779984005639938739405342521625061153871218630000321159325196527208580313382046959177276440406500330121976822169257185421564502566397528939352628139490733843060789038499791941803124757167747786214976632071876160993919588020580523872060611154006389618009445608879327830806614626522857889238520765382456894182735559755990260414061683258827197172657147484890036845772761124389603419860645317158939071573636576416388840084528335625547179834831594888333400318154430955842061672816582093498891082065548026716691572166353254950438361247119048182866997452951399345317953595045754950021549407825046805909132101586725742720333334615575100460754723029182173215492893592956334494503971495321169339882339502031644069944200801660413454931279084446099760139911050409564981344714533809602887963915087025353232672427769723486331258587523525778508997200576797327518383347102817568119896279305437538271955041609591556456757031025532740177005967170501957006749111392302858783797706009446465891183757110130525568437987452371556134348420104527561210799333437262449069103040789049363527655706246842696185070200149307251536557698590247354873881420461031722534780230706559540041093773603009094705831283965995122423231845628836949561573342516869181648211556422243516617576632101869919662544818290685285556171003355464745442048813502395088482217080278057103348365318760833722247903375338051338297919534240698753799592499157850815335673621379371572242579381389061503403291627350695294477282062208804796458250619628923424506700310041209811729560337706452363477779263403858901677501868596939068589373252825886881392357363260090975643538043216428300533026766009780107410056195496202055304051580559131248350519921240676884406767670852982023939549921935423000146132719505937545901870499237832537663201205906291745005729760469085579846501486735153304817868901264371952304501052335241476331729641793082754272355871420855883391555795258737247802238312449493748091445961560163906616806257418336559792526040491582436227530188235106384087472864561657713578260458704181141473088215767976283287759968080989185926898612373476352477172373866204768367759232530339961413247982655192975585302990731973621664632495174143017988170530790042651458320435835211968561802773978385084563921467672837761478581537581826811037470671324723502730239023212169301407488780056069674546806976729262484037015233624160113989002344194353762303334200621790388939981634176928781408414900784796635946501182072623718790841831722141371133992249859464720222727464289213326531244305286046564471918753969926227226911360033746569048639134520804561541669345135564747503754613478445841162642773924485342641226945639969778424878963573735275929108339206918870055592077658524365234909629539198935751148535479185231164350706834925612368683530016356223521197102635515478235774954326350112622290479100151597136727795639123597014798467374971180630110849676137080962360814094472934556049843788847429900344531422101403412713260990552972093243815511192247848613899256897042879275371016486386363272184309677749967016220315736765602375829108429830015940239996470891629306039193879319003702952498671529818925249014384590050830741523991660435826072064959102457482598219441591050440137135870983746058202231871308725873481583348558909919622098192440657180532185688697821880082369726631191543244555161848863756525043577577150709454592476422249936356118677583549414980432629880335502185455217078681055510357380394364281510916564375768721515239537905407512931211196343898081721161982930925957518302288862403949585460081203664557966658828790220310011387640232399020034805338784711468636967402506211770649890989019376300343431773461122495993246359014451488167089481344730017529516500411290665594137282610880615859851873382844051802507472401111986833927812881780466832433334000571680965262286298418826910203054507498961164227303092652781600640699388003283810639144354384694060544283099706439978359837247654053293431101017700400760551226170276917902391119153289116794802147726343880231667943352636742915805626537975443983702110497656149635801300299192317640873395693084416588087987039419769098943711899726813108442073410679482364589848827621660748708629114304638493514434167957331066492354114230433632731542365474380229341480613159804363459550525114761103444518964599082127596276513939667309450433211309281432815114349816880579953699069532607113082205347509612510738757239056176197691064191617466604526996285307992486919726526430215460525055573813495131756164785416541327658836413765193942334920197360133092179438687716750882558163540920847283730453794309287210366784741061769906623473486252947575884877080095463461701053249247094289237282045286037051840161217925277317904840959378745352459553273068173244740355427965011519851777582703975257324136563557321892955465038157983603861663371485181225462582113805207423540775721544591317544482731437422728514923088073306529106624784829404881521027014267116459540590726614413691070757124556515645482175414834893408862716885598696493439489458458273574147229868850956913810947845030910876577600389071990695511030215440466315553437772383186684654573751076216504205448999203247281768310715348590423270701031275639609272807113978540088758562525402071095489541279297729885518869419132714707371592859495090279911180494140263433271279182098356312489552268312201320344705552731754305748276511811251947733531364845258444272286423724226220872427429363646200728999081314456107169133040740544067747883813699507809505976270471598288709862937760272322830916537260354311032579767471674442627539584803145991179153175861753093184269331277886983682772762180375782330864278700278061121618460973228143775266875416399556371954185952020700623996170032783702825295024363613433213743662908318301317441114056789794073835146030299104506409451164867074907105086874750935170546945554979641555170348793822872401558010764809772593454885882007693502039685316451523299832714743783150933146520453682891604584233031169839051727251650127798314217348338765312264316976345155242823944456279385492838129155109502145160036646643254437394196040944992006728532681536529888705125408496154698697764542294623797991378394055434584587109389719190746490945235822669751515259499843011798933707411835869164251761192728830960356632501247464712681640414380924535817237370216599395178299233867905791044010566798901981189084162246604367054183346839519143053582631444957099900573637361990816574638737401324469392383306770850339255101912273233286283550707938125348798965144853994429113610142748298802525507699561888714604588939851804209777548407772492672383670699312031640568508362530944330554602899432287321296417896431263321386519470687246184879770068785955885291489929103765200241971588478478027778708013549329490812374569804311529184629920485188181484289404291067473100185975122254048906223103798344219967218197450913519800052620963520356226546914076832399705027541862035448112012227545009251203749570495898037539015029518679303806235668819171691200810226256886306341223345106721338254845764011284926642057941517430190579181843055810818279537655197024892836341951691666292928816672056461855188845715513105243787679472148273769150245016160523949898231559736100726924220954033825379515144557732790986800700959623468572963056988892425093396372229171772864665930598692919697407145278413152209616077257245145801670653392688039474734271924025122231239552271250690491267609324022023032049304912040673152238815983488036322984825760419761559066344342319280022845176439436289921992368132954450095389702053281493628395761581462990093783115447110246002380152852070023730396995632010743447145126045941600836003640869620230237250145885624700535918715063411817647446738675750390168912921300930526057924033929045833849467956912444107701513097335650094210522689785416512474010997319913737138965593998361026811868002309307707935327646937978871077508743161363253723197821841766933048519949433892286938630023743606936849607631059640760107322715939199898318189989369828774416667554503752518326756374589944031409512567824315568616339587782943001562250596733653000448557186789181640235881125926784816073090285382674797934268165756430322911867970287135485959840572307847869650731393748825021461873241622714637326538776471250484924173837200576268789008896002676970697198619058957820727088910983891555971855561939508239801784495250651080636574903746860625252205577095422279656877639535432733730872531135222698715744110699306984256634475658688907257285380285420601350994211185102187639038386917211552837913357541599025213578561720696361611183251138452071190459332447733050595308210297665173608706162121291560930305369638349324618144130569143638478418467735867383447126983508367333583649137126385795881526174141539732199039708729918605750947389812214392750997291187896498021854024737775758432597599514897349235685868482052196140759288542164848481087691350538056842907988701986854545626427296536953206162309130621991377718617218738397822453889811212706395929805683073154282568072180379882628700503187741896253288417488401594954056888192644280288512696914192460049276682059186974021871944554113197298654828930832291089926612236197598962101798336669979935149448827530084456883294832044134743960673850379510427527326028643333613899046585739754151529547845037232706346162118062916246096935034302694753961296265879914388530876403263198534972012603967869007234023748395589377863565400090014883938549542563625245577398836719319622786889929044064865076789892072581808339965981878994465648349522389128251730080858024438362320663716873316095782121002114476855332152468777918231449240760255978746753796620411356550052671519879357626245347134479584065287287289498252978568783900215964282456293699602857020827330949918501717779361980387064676112451014691281196210844248637170561631186556482606889142814437689858036058915677356241493630291032397387817644223719933018554661217416268535037930686732367721190188352068344450455114182768978758420920099229131538343907489191824852828973472798651197411056197307052452076176799218156630358588500612147750224315035577980142880511935923883273618176939427152418277493175999028017622797216840226216156202096374333400542143812635268556476687133040059425637094685896115543310747743673407745172836961867295085886843651579369981784206761359095529063016169988168792372377648894139967370761853186790120753670752766100997568670125952239464493508237835939703114968516569368006358674437479076435879716489230487464442254311750461938735513425583617799987965956482741933395673623473371100044111378160331831280720217140283446916532330203292041646807882057378205205313543517345183520700012030337078565236311444295459672746547478545050006867987654183903005479118758077026066635365844471716431595197385771760982106095769438821587146049966707021900965605176816853193033260529626055236390740747936485738160575560500902080654291637633841104887423956262609073115417110069595692594872537744839620322070843836023077726253318871793213256813465061504666586350282503783949741462723730429817761447297171491168945534379323497203333217063832954824957608456744654481648592681312753935524595871293137816018536382744617093024512036310112199572714643342025221847976865760057715824597766964828172016454553989258407289483136693363298101292442751562165809925819299301211294625264611072778900556775429542005029050119263644545198759916305280903015619652533583272353069576867747030732644293075410009088132589515986550210827644304372240718691033180192898406777229911461422684514116011398617920056349994711314243020360457032219136566105684679727529348683344736639801148915226974369354774883522798578068050362438999046171734785321557425243211470761976348445917704698296420852111644662701136109052830805093119074098737382873507066389325426278696919044448502079954211504543653249495162458888069485236970886006285105793909616247576104282003761218803169159862971034726817541211171142857252991257150114337300054658004743043791769810341932514030555135026152341176394631516027488350966978284930815874535599378814118722162399677050054405961993828362389841156474189374467055644735431390818103263258075196739289921577614590524741707012526778792628489629114436354818807627449309845203746006967540429222936991667983798588564446072731500623786063584337392443274829527740623685884534425853424536067627903738893621841209071954088138194976246425391426791017981484936543059865857238874910484910257106181307265942967261142984717078722112814244125801475500203957056472672686323954552376716659239527404666642869020298039394548207539952195978386644367698137452439510002511443016763157801147960323537665310283438909577173690912620812936729074033188246218485137541346826164282279643718151243145582329597618933816072286906746038221772766352410108013011254200070881651489182249708911467064803864351170232636479560339214884990637590557892501577671612304551222962017602633029377891132622293290636601747413392909577983203585848539284113898800194512338424675862998385952870752596942324525118973407354631766214159269785745525664519846484342815974691230558537616288663114816064138029273085360134121423970194693848659084449932190888405812882749045214764732832208812705983027079984127297145361322674704581845129143180148910395048845629971375548533846485843704996177941639621301668026048149617198045681439215774705497552711885501707198624886629957590975505290729153613023323583289235598517257148542691009765087298793722368107796463149284482417845649837589877891723634004006226675499773023873592838098896920195745384680748320813478039447329390394148670485444624870014149803265172768240264362559786638051762194986987168223823051788510299773481758055067245113585169661225280498979875961225416605950108980199831777628057643826901609419950268873248168045811920632319818615981988740328837068034290896439867062918836441906889582628897764495179724744042712512432693888084347022131354115982116440455727132543942753872168604840898597988215321541505320804857532885012315180741499873383156479104400913507387547629122546137408812424226229350520419457677738436538454128025196242981006801656026317398711065892496764156895580619723172705162423962860886601391423454177744601085308521093747833013592193832705751174575383112685402658962520244149890095167672860599219344444588537563424707976265579341849274545683611693835273695510573436193165794071140453077946375393427283210613935485899164151623161792366034514933299257592510883935518286559650408169993331545782594821551929325960643945040487266660481337298827690865187837185918035838420480161491648612846231942231932437834473866359300854701405342826763907101491560397825331988053430882411847657346116062996786898523328832308407315197879582462079752141567825735524621762650897000137914449667492299020255986946260987223717723723159009673054543165015496750378958018171558683282223015756537722157867838928776746251707938102378026135996762881861087461216340716552157155082504260871006153681197389262348541021338610047019230915985818444178518007771779718456798906963150843685811056927238273213787656589054556731490195571286504394401997519747356635452280611307734602118915794104825551067602045965292440494881981206796903399463767424536343445623150996987184324151228995930723210657406652591188667206722532554167754121991358118086696807876930831222186701503102972838193241324772326197703665273361410676014040105261914785882602490613181465828567019427233633417988499082192607766468057534572974633106598741130130384668288275152446259329641407591501952709177542617397205791019957896333394934143263581904901361022314509839425355132973858186335716331080405645671470580444267393506803114623091826889151017358317260674073576895270380294356774326951694951621563536487728819089464210216775533467017570024944021323691097789630725209086454281854276945317045660424695591558272701133343919283421351859386414117324686276806281041614575975666376513707553627169112137571211223070294968158771459606620287136799121069069913573750398127909437036117078429612799545504277427818637767288514114309612953784039863248276378037752771850946683224115322190807776700916485412786792744479902293443386031026868045001588648279683691171709805931742051695904508687760044115418946275626416609917583459606439133138854959063192886475729670272132340227311789790625913966765862167106886977176986917723548503137941634492528109580671035679702215920143610009732161110922643010297249356021717569481789679522702025609928668607913649037708004049034420693256626721844142464130368660911033248690395212307473433642464900011107809863590275564237978286147764791102877326861810105305988605594190196333838975146228494858127448762869139974414793783264891193260700485100425118072679485727690257003815686112406929076807415679113312428844507620349633045208113857740748826608713270469740826515146537843805725130722258802613576170785143456520797672860547912891102949141515683739270781224784151175955474110841005726523746064592826935880107473643455777125834262232323359669744323699621364669335595618883276039159102891910485289693064196912349939749612330898795795739868350991713258610025766324970911573181131292009240565909302792042883757165694195282900460330688989662352399619334940563711178357872260822912649927643188478963981941122534478409876519182163114009978793022886379088455707875306777823513030248294201102531355851899179949842161153494530616756423431676040071833963825485743547688226585082316101485000851507646138510850347724710118002909110844780248931004695902622930944102479250903329770195973160904763214515940353350460740633231316938616931940231572320977890547691155750721092530708889805714335975628462771345499237842040790576362348266787443353747474826157821178652586757185561247616276704476424065928087286789317112001009570648555847924151401275299193870216909420372855563155986050984581488832873212746427558615930555799524979752769151199705342269856896086614526957111779687566481641866497699564021105850653645856044785495751062897098613364764356716994410546429817817343182802784422974407845881410850415383805548990376915667435761097951691506129049238061395536270468377035864622509851822000774583594644468557136621294009207550487844269882002142451125473991619112620145589684995827947552333474798832804991667146338814630404153781496373219695320487872891705291060784368252532329056268001886595740118246691860260330743105975055345767553350921506379301129194315498846619051829942260042070251356623108614373137478591029043149766074960661606893866336540300478802860091594963851445888316738709028361024827233677506450819361003588270696549282439842322507376911176059787047665139845476048975005946639868744466749355698081797487494779586081722923386098097053183989926604273586999184543431428895005486419256456529140881660159510668673163384647827848932257199856968404845684880389859930591648255040147849235204712416799964334703032996036995839278168457146515597133429339027439063386375523117729369680983207290235980189768190102985204761447857685131622521994501268736974212104714305614887056186894540289348153868743617725279705494033301953453797745811006666356635843247696868832159112793783846291324401997467937979235357004807067722580372266016971681298484640392958103232636258844340155316973914547077599332469060718352201636932708913683115744297409577552557467888009169206290134475900381990019118820988699583839768650382678549689978252971348793119989941338273628708491392084711579034195603887507116059785861836806884570536067722323210457708992801357479516691132692190402127494100989501919233171252668212677082920245056426554409063348270171001589628535161024092703410633080384898926628587047828800988923213576710906359258771365851581596230010054984365082994250970335118066734086200742271579146742328266681919511508145635229245903136706131641557053630468680684731047519750806796376642221019573118754918670542238077560716098942599487207051610180602695938494567342265793706989763309103753802465436382555947312926406765511086049749345537169767237727804601786822665481411338354520073165637674128253764048404245762152828784710300610547789108828344125091825303775043595469182519782664363450006210440677962555357281295057936798290900561642001965990338158123298911086084515964363052478813938324799378837161444030521697413741381363267008634380362067711997797472690320175245965390079392364339284793969303468104295464207723602005456553781980589495647772970469438770298741027098030258931721864501096532768833239359430110050687168621184913626346660190710179271220003780775840513911592387712498602120582645274350521403429856715266440970313756678871384792936910077486285763974839567992336132167809166257222294184688838184845374918169738305121526526090180870395891708015481186851757877481796924952041336978115709340978773467744199234168729316098660131424630954279867056497025014269547348884310326817116608710163920042700794504248757241796124519717050873455152959186695695575601060960180086869057470410198033097164735804730571929544923105113084909628853135703713582962968947551802650618821636953509523417630993643398676455229650198872251235504168039729304522383967565538920649837517269496777425306468185150024864612711185615207760307343795378417250083797015127428708153523948915345632792991885405507595954232534933473388470315689206823805357710384861936035239527624108703191499222165318701501818548832728619571992924713036452469558107663665983465920160376404380480243217449011741535385885660128571828122822378238866926207971546352750124195258134497055950750408735081312112148994636495252981906169002659531139727943958196502447932254495851171708217302516496846675407461631870868369382038532528274427325752352217069347493811296257492249502647781761023083628875647875586254154616151942413158706736342959228604191861914961678862215130554829525961469798756244374326177892544216296506667935813779309969197713554550289791755051887302126708441596733889744254011730637331885601158231989398240767331959958522426101939629568169762998691589911152564355343073333960031101853955911040676832595450323779784925812669621736148222884711747130576507898283021800584562495609773815619138215707909000077565139734516235089418533513423843615146227086616633606767695549240161431201967712213624143445475885953050554381403762334278833801853982516187570120314501388103161992034474674123024594105411221787745538993988856287024770267392820063592502852014871220535596749554200714578691520013363735405482565283062262416678525132327869372147808531606108901127938367027332625638243728466258853914694000093532045017351567259808906121639634826710324030343476246136796460682933340651544470920788284154146358688331260402656416505508620716083076903248507407817325383388634519469701822536213297485468898620667300242699667850601705620416676205381778883782116297521197559729694708069214726962828165636875662649080844066891340605983475126099322170632198881329181568624753008247863741308808782847585495087621335516141092737431197089712270433279894146176462465575750952042493937547293839279909563087057785469066982024950715150268905445902363839109710737210028011325935643171187705328134673176216244047372118903810950938110422532477098048722915790530144003653347300045955549379846387412017133928485684083854404158273862828683122532418060386536261978519131453151875969957385180938045550044992457169771253426811837744423912836150657652027878177406608994251024498518682881804725494629865534357236072249574018936142922926740014302160274895794021308666426368395111181991497990561920063031796940949125132534951790610717669854008646331048853695853378710758477064600650743039687871798424932458427490351184299886526480364261286203363459493742703453667727160780479006152559325794492072133797125179718286983365845058315913136212395302810045669877105288330946979519577181536431924391302792338184908830927742493790839118406997463998306338400824332349179217699565175012474414692203782191048349938992310797082601164393131494310912656135199057146259627010318277484695787248038453062145383153744953014068356555470297486912570277842645427520876479185810885531263754377557047805499435933168306721795433238704367573156535238149958662803155957481603650360979153073831584650953785108387735834362203937450988782590173106516732706801664254473464169880754617401845021695615591613548170484818206466189784750015202030025734080840077167016618904964783359601745159978794142848177399769032469376319073457742672358793160786846500052911835829782981829081910060722726404939699060089344815539731248768245632829190979757829648194949046713654396091011370965632414967804539622851113176361758981854240534256428838252486050792182803150223282519707807761799452582886217849440034164044529624300915403004613014877249535720984041035029818745301170990713672324704989397408566512413546696719801758661671978249565836100656219879791857387843209294684712152304540701334297790954568305836785888002000660725019928418713885381514356164024448427775865075838664716224634421647545753819016102952316544024252117560850784828823807990652563424337365467521338402436247201524327944372207651901924949226367733066834568987533891600032177686296741526513137829869047684369803360238610610247365601378792921840402675800511624189124972511533595067162538411628038092800380932349723207790310056705641718024975719527113569197639415869154368810391448312575976770379321169959051170999721214762741446439758850796105568470218306837111209127983349503382982595989484044282194579437403629767646249187420549190323646978530363969821375299536191990572678304559871367620271440802407764427820913175460099449078296121577430121315070483061421388143358797636480113429661593832333391382511277807982107352622545713255642511766767172138342007907216959748005256718773032939822737564901858088889411147059210584559724966926070010987062162632330604573031553621945051740770536490458372784368943761760830459663950389839315669468552822341893089972784277931634975616208120101209111968902363060174603188205167418139703852834968457276584626265522027907017292592033177078104417525183159478035110374034451249585780203035366069735149653547354851995148847589846152285756702058954425700438531271805228593662802990059469454698870024609289746545278784922449792172884204802183376994117892226488748955150587784213277582087595868221325628311709316811129603350592178698028083251956783167459156689977795226230143250910583754381056247525111618151978437989575552471740136874095763984640295658176898599813572653102377300762457181720777815762630835952672247854158100161639483830177732893703527335729406135319432167699303390848591019708138843936911449376706630190254879062669011331466879273147373627277713218015538227260250857582113306391680729015357533093339927243560491379284877038203845749797163799673639947292346489389511994722796088586274191936616271269061676078554870388764133321659968649354154133094584211418624120478462458998692691957725810515287613569779241940805357537476399929196742692700817745779609614681623117666559223483944519724530522345073106082447725046071697278140150116885510005971842164135426097930475714184027974417025145531102522045331479145069326736121673725520015154301429789923859543542277416358840189897217471783468660881841398400162107476753171395472437057319710452948695280366926851039112471077777142520073537030466828937389719963716754910120581837314749121249557751476879480575248335196761462167278465614411934273365260390903505949670457731049687061599766259967174536269376925435071780191089712823450951667777964945273206006490465698988889939381845515376060628367491818022524033438665952918005235844910880631676682572408855175113306283929450668439921788680189562481634058552005976676049281960062123706137476953849127555296379041712434276120868372197969029458790990661970347168947972062339770833021790056941430066155031869488443405028670701766303234371746899888855701012781251189063737208400078927457451485232425530273860781300827146150872376734661182537051063239645100744650018074808460267246846856348772962665133725069521865212030613351665570077512863498733168647793923661737601903270337146924888502722716488112381140641664005189691923077916661687369626092700638263061861689066023996261462855005519402513674883575890539749657179571039367226363760755058729270863631225422541397878874936212043011788732842808710443112393917953551119044377770462693450946841178893816676616370049748099345004140155071462343860747746951695850922579085729037840014691687360849632537090582799668268165286273569517940031913509474850184389856076764823000163589951171077191705422212736559777427245967571085884202113370040194657925622617644130598414747613599103812018647650813535797766056109597098648603138671222018918614658127044180262322812853013734860488495698411150000921184509847354431349926018650056447667524645680505813084828983234296969468914168203678582170665034288071704176446028250640800851667599468817538160377784512303516844527412806515882232183865032753996629136284649360687588207203063810896877325592510805578299850988198030203403184253431366089060225758730473424288909817977319876290846524196488010384936107319558495667376945410516238204616020115178345365928432608303563839685253764424765426661594575091904727933643439019960005166429213937439522745859074520149241582868752718606161080920141399072809420882573012462220400170858216962201480670143379478437320054165331881471493905215243925723770315487177217889333236340357772917473532198063501190144043105780183207195848882931985854286082330049225161435766823455156095654129252881367473077266968149374100378038338260680666332172785793899952084691490995777672466515882526012114305224248330650789116420438265911822876618451176733142061741728715744556261091606132083549998397801258423737985970661372067531100394848522995014350673842095876979252303196991039504730420066006862213471528171883450350870628303448771515833561905668586816329117862771367126204909274584378145745929674987922662675198551493618900200014585583226990947384727201011398632808154607199357901964953573293414296566555399028019897180054497007880304062722979383038265341027620719599866670597115478486818380089189494818041721708224404246508293507979646724385909045362091342408888352908163395356346649367735403895210490167168026815932933631015964921876871350715595212482718248324926034161262995826941093617741049502064724230949397988085951723407959054476496108210384972763981295253853000265463916902127860255513509654356630227802259569675718219233995500708503445877245499395235882493280583270433723980644692050791495546213366507418459628655083736824960002822770348640769767082150976054241544978811277739105142678501250642075921175629082939581295401693815882361735221181763324045494828422003413944823987547659916435754033664426079483022671848529768448289729123098193254377186944059317504460018910849376970809515065874111469278441601945271910987020690587106721510432742767977143422585090738589950403405482996630989647838947351108553446766824737460146302924624064837321048869239466267437328080439463868156683051609370755086772153937756271227446198257136147398395242633062787023126984325856955590460529083742180721506754203340455488362861280445478212227447082763737738375475868622646442289028413901932901906754884199102008750084353565850309491585414283225655971041598912403746803990014371708695208454367747874181496555889308773355051666988091253935768711780003085605060932313324849269702270061839698410745284761676015148723684749073276274553649831240322464858926844014331847728006179442354034564895765395917779127275963702629783013903090343291468721372839207410135527672503250919489777575426883992378333461578891590808645483067172793556133207671535478966441967947733309251441345441463191410489498777245302369457099711900390859609236053847855161653165770370232678120651735769309285817998102441352947557243668002860835344295688880042104030388802016586834537348070318931222603697666711503653897543302207523373941235027316983499623148659120897259747741103051313164992873174182056365191456592024957184437950602544368266395864212401438986346537677087453609218691059553384191783617213704376214339602862774056441997721910670143585412190558360544155413086999633218653842944585073891845484088446961779871595871653222198894007387137175219734386914396171000249870653723338236846228000884182202187745810425987755970542948738455153987725062179230842024600985454393088797298281717213561943131242453877548265723720015225090556074915252784268835352175656584446929980569922139431146792297461283062164478433576711043296556562329913822009956934726321709467600701011272086859264712827886152593721274532096994256514841600481897515841819127619271506789684117675738113263699818002747628690535126674819653772141492836558568765568673497543309941774356785322649534559473042584313637778578984929091802678600184226810672008261974400911011851746835555466302694570488357296437648837023786234592834472717822129859514036379769869752328091685850008458326017972552950451884272596355028939957543776693322030306447418067091866282496773428637227712590943685839286519933729596329585213617481412835631270803991793832720766952310598696636550748853277496821735386519583731113668927916387336877596499136072029689273430123962708403645621714313363074377181981969233080681562196085461734518869254909028605642759293461744058537357376295120486301921177762456296836345478793970269386784693189967656652277250663478902337234595358391661786401908764131055592044376931105752953829593469007885021045674741630988765369144166740692276072960217439796945142744408368528156852364653792742952827169058681913536263378735322059456922749727113523694601193973708987740672339905234073345217599849927365615609741500205080056358858694341298512043347695749394885586472860578134905906104158974858171098373908644636288516138236729794551218798277994112679270573120538768742841896846444220447914857734162042366380033680235677817253171952827044700873741187058169840659225259060946561563835794297389545727458795492750566376264382043636102565648750256665380877257674101286742717154154864226220536650026123348499454929025821441419789228160026899538726294310002761289111463822108299149620659051827348654008771814336934515423984187866860801121787413644892487762729693071189380058615263229939056196108176758019472552422303128508755257140808488438376693796561199106476621795611514777346964622842184168461141708427904531057422751342071408129238298135369218532242284610579410681111280015118188676403089445710761765362916833461241749870777325633969981822481155066682226379415405870837278122963665539700998459978547906007808254417639846556574647027631349462091098615976483267806678218699867081948600275132778835349728685030494251222444360558617475473584321447396522904454463050069871913942083252222508825893577470382023364517566739126549191093672929775231288786524410483406049108250706238367568908821423456136237354418367073018255690786635947481589213175730422913711352208859991289824333953273016331862399506386808628537518629582208518739592074336586496485644919990507968648317257545245349127375646740879743480593900556941531985262877830963711463412055766173209417541839146005907857928010351053492294452117959515418380829340066840279091911075225729263345565736088271389737742918429848848375185666314351280633305686055456952890207006744612672102635107660918521200746885450565036271874303150785540084233344877774152171652957445804596225371459326987466602673320281815066278169813037170351120460879894495724255179559449130039162045879895531478058424089194989413375484684288437752983783344527602946872670436839876009216352141649834651456846317569848760996664033058566866105348825541414885434755151581466752551735499303892188330731084058289330032768818378473060728598010570277787522195886025910562887108143551848587692459440707870420506554812023577596574848377953162412542933521684520963092563418316050759659599242663611539212374980903757457694206369338825070172787944777674718027528193471707032719345887360842523206437954026702404356510592387406860358242659743379361726913892112944101484984732452556040917253826534695132914986748755347483958660752562025842888725549738454560795351684560487893039352424408416974954481505701239499561525123485134180918814928960023046387574170117450852837115789821642214956064034601296531855081148945173028187576772331746786732765962028021127156088120605216440406444112683490666823052790772544145497043301161495485616026759730470411280751092605324433926303128043922889020211581960359997822882471437436224388740539559211129267043260047750129371469828921068623403880611688507140741184154331120979062320140173831143371925761437966853105705464612222349721800171093270887478311866223998369399157498471103619122923490293684883377992441710578370680592843565353424225734316276588611062069283443330097819627779117839873352225894404614296790350405185357685504292556288765731865234376040108307920837432897528132264316758276839749311215284455311023522617855844716809508842554678147636739413843969494262469315064596965435832347106669783816626006497890831592094164699026367854133616006192322198283947602697996355156494186218776207960642915487389259583737748935425020696480347749345095959066412799275239456988259877866750578158451892331796232203283782301495086961800250617382671814985353851882041441607149970228939661924096120692531976902317289289889680166545079739539266548513430609191555970258083293303964255251203552889697024301322887011830127855244306695900451424039665416143565146023924526620974442763201548603977788818950692590415905132554497587146641542983559422387454582010950233514535477299461804599035883031899307669235835692138414637800728519778487893930336059758790471657934356530804478095855355777306581778192121940413158667199161774693734456136514729494144169319138368818660293968532309011963604458674232771417615104048170061805501473203107922904363455691812972272641327963628764565692153583005608441773103426886657441221264318464458785031083545200944738033199224809526309285239605853858388006425191240916334330540178845983548751839315426319442019193250591838697250904476528872587430785596858793156269282742886298493032433299762287340872030375776357177927892460628132842462158798166446175471701116850487194457035579575948297807561195438277025708031589073401791440157365165257021637899043502708689090796540918247628412070282921494511624983345400165651786646829077173605598520348409205502755666171251577836923022985373967404050309060152636388531439123347102276953275712584615800589062694687617430553983164252362009233653040343135286846757120484758857942070362412903307286988783226791385633776857401249722080409795331171929210505926556680682587919634435240549929333677831788047247664970788101031660241223097465122926933913578039024706990906904951833105320545056222377359765088622346319338607901768046046277624773640603036901849919130717001240711470755168887903572613868123834448386433155083442434494827788860669242319361500986598605966316495074951698559146579533958380422407616239095080574536778715287300415773785789921545917063177765492154343277623602348210934600327127714134464509667677053519536886163200081025378038690174458662604900388747983979878719518140433436261793061159375491940773952537717005773404850261842420783133875272033047474840867318893041367843638589096644558786868017947907733200950097654375204055227623201681678928055381145324854459988146742374490820427074446998429646557840420741577430446609660784428673473145480086345242404733147652391634834386872335962850146159821718048325273679125104103523891370292206797610045706682919448502079273675215668603118572359366144652584929447995812826661869553892328717460651951869117482991803427435569317856181848877886175191663656202882423897228851322775218129401905788743618207916113213856650187741417914252141970304716156250464150147713538605338393038914838841671034718874061766391873015123422076634169897751019616999548963075138720823638420964486236642036931676469404469691683917041635331288106240839206842291722935403738812264555995135450858083816894441044235297135567325876641162928462610163140777012400766875570784893034205276059951440476587618531532745927589052339747890900493324202087667620427944184226318559459243508008707990505322133860256467102976007570328252915174070468353238024696366567471270267642154018618126626098955365903044648707119329057561349576900676057341658186293818898005341050212454774748165181642868873622147857807675055775664327523353636222710895131165649286238827654955600355105372154658677972115483461319831329706501613775225187749017966013585057597546360103461259487830500112248201697604744169703348331954420010342427077868451088724615731587441166699453910080935603328633325309330265001611650922552888675881305266799433067898923989561414458132098551691877746265434174365593579579336257252171209751279009774969522868522736970088723497975934263931522427858199033690815618899664514294713116333819903774424056146257384980576800032422506356120697386988537294151167625932561359065132033891034817237653056698634223672668184508513728150613606909135622302074869851769596892730019579008834110763905755695270428297880786091201594075212775197878230579404685381515983769835987298540239559302450905148392929683038252587233277703552017120779751228390777430058332006658567462662920876524072768056042299424307200190548392946197792369598654803671024994020577328916455200090538798994466566953949986571059896828011595813747209759450834306470799387284727686775910469090289188433835472506127028186867104476286528851797093783139992080663460728321912352162002055363228153492661142445444274251093108694102845820398978128264344054016274827240439970529407958797711024216274654200325499560888608704582345606722080804813181301979575654035738625935596953274603171233824542642719125480177195660393441145352402255523894803255968864270938939013629570838539430332383332174590254277630744592579274346368250337504086218044963004767186016121709716192169001718741955318526696214149335746580241290651274267563618279128898754775135560108166607824786208606883670695376270401553814901273437597511483587497967959959864181770194582997635723815961126114762541149927654082632053742756704742809204686293546146859208360414070446390622578957698285607820624163901869988316579096038204348400441143749738967151883890282776827685894619563400593560323869799849893794267422373307683764834992119387722744640560154209634431724532354563320769384176680607893217363108768774013284385741721623148482163768359703045289358612418441381707510052808522734986917849882064266751696972205615099952663569094845967938702074536713223044772415481456646763051861209253673688343129642802482056116978068890513704791799914416476856990673991071659097883332066867369885903515507080585676580665234588268242028111492430654151877690932690198407191485963955445311890812132893177778431098107419788520941973781668905955322862987666699124299602692779638511328989798894202514529608027094147525153172817133423734737567945126082811279739618767768395191090332749075236287089592135289748809326929594033974690148005921809081840592828435212984212601500424473716836707680774255568605511006833695441399966165124374035022546144845804226369842244604378614965916714317102335714020969691405074215233074943450885144277615223652728960913003630182576678373483533552097005513652868166655951564486453905605971101165995204133452419281898603198570510159414730122017865345475177441654124197963983797676677141554785307791389896671659644519162885948651742422284197901717707776075573355239833781618485459477426819844419707431931125115600805695638936948590050560586838883905727293524348095424123179302217107137805214054363813695580602076754079115372593577445990990509876205709366933903175109628747818709404341125958098352589149474372598096629594796282735110881497553173924458033331517788213572926437238088915482916920791803674467011500419134880494629915267380987388693441123093434208452107166809038134369162799894372606141644205203339377176438954314598532788475264393049868906893755643147819283276335543669354256702973455630001718881324559026961327609658935995858365176164767914669364288046233677487227819023128647735025472948726276878910591966597387344201269653466798493065754764070952028568791604713313806929246144505952362232105536352907386754066916810314722166715039714517745385877390579899247064263656553867009593240238916074938330855177603483644763574090535222643242681675675015316092832030102557025328835068348537911520289359885930290040568028248538728325925128107497163937400560611906987179545387305052269294823217186982884491266959982515599542386660600686890295412431348337723652474056737545725861240816895758473626949169661080685180952507287285046697755843327599391659803996209646349091000324643450519060859342115238965733669325193570996112536713833553198132436676129859319087891642572780032875353647881835301536617812619823670698434075263404306872731606260895880682452965004660376906568400852640036551595118008558566279615971668071692495164548270532954409938613079135160161350816033688025108783041825382194393126578122240394389337017253753654083257348509667633792045667936769433613214806232359062511114027859582764337072365535973916660774016619964142083902161663269906913404469126958019124536514340764653506798210692276094639506698769485556593003994440553625973601555972537815920162765703846252954141386606122663440682557064991082650340347832401548344864624844083747064831433012318510227864316738263989901099254608266954994054938789712089776776953568441601322415703670314101598004204183011223675860785871165071250636435922079512386065122498895015129070975441920694923830011421694888031284069099967784657958034376766644842826512752980722672462842846149119591517829429811464923604046690982310269557566575702948917772890373199222721135505843085904111036132823439949743047258719185844902981938414204474861099862351900822942353645255954122695814686473668764050703361185296676883366101580278218581577527203798704786121362334731480994321269485382684511754476765755093019796977027558776881209709274970857344394012386972905637529836035000218748593337546549781394600436727879057607498857475831901268273455074582979471406732325369220528821633897537383298128996719109847420389032258650303983778338961600731382174724520126093229975666095570930752793266139942944317744115163491736902160524336997665681284268093679382655469677489563712988246983883553923956126730423763831850431458945148506707589155462793226588468569177578555303226744456284296292745524359068918203458527118292377051797897610542232431499944981301392661034979317079188818914016539864148084636942703682196707526053489807174744595015779952141901402300095078488111276826952543884356835652917512952599737113891372253180730429131577148079286229510273502541086397810897134636881150234224410915095637193170304751273435503856872490618333230559958307707150149312815919702098834861141155258917861941477251694788506933861985636518785372347956876651583060194376852545631078978935544180972032991730873461436503504267170334173374255654952343397471413650278319423213955973954002653047742855923773407433615876740832404187484815842803858463326769254556298416538801999864519387116900798914623099165517210120330046677520074271503782384165272186316200548258178801205873998156786708484597522740101237388210246407231632773094496459319612484270197149155657314450213610152600460138598674459392720689641271081348343945180237799358300682803156539153497220821695278635784629734224673927400558703538779592865533276947303854093066597187301242926556142442629122716172259031152914277165614787987571545883980644164488281968674032126255047359640667594697541812138064463316157974831291022073905464818409256558409434983595923447674854591251539059748841371369906324242308162451003818784432828715804146031805787367331200749208830081867833562924514091300099313750380361944960045088125764521343756684504456014000025763326312434529710662910695885207398209749556798438347734657379816761493653877479115049491318785439246409154635768144858341233556177940788155910837082485933374490690599481828372549412023698059000190308885793096763623761413445257518162751549965771489786207376653408117811644236968716719855191846215262392143042352590921757225356961341707495880315112486734506929291677553515757762026036893351518061948215677346560679014988488559135034947591426570751791514004297458563954564455084838626466270410174234029372024082666755892586998454289445202306283743911850877337736685462917878341175957662980923211560548973575694098138387372099517168433052712312168283300000112339907579557696210044549332784455045529383340177377538836189584190281384570701212118112276782354382041858512561741107380523992989681665388069369479349435255179463856926162753294434391162561478332281560104903630793237328006965763783377770149587660538889931066039234377226181837060016769827128219500686232706327558091142942354098509967980415520182700035405374340001585650210045952938780788012860448659215038817362452579360512864362661935081628224608910215410432061150070473397434966570277807103394584305965895928188107451264075795156076613411200135818570373546437704018114263617000846636792016779044147081973605422582409844662328452710369569461881268102933741491414188287021655999603680491848833506567146429893208700109456616358860081107101898125999861720814862858000903326703778586677388324650273614723020419755144401438604104671403952284776579836598381097835144852070353299015672894358878882818905878836260354230972914548242330674983984447064161473707485103045200078374779126396234823581942497698502496307297360720091586767636306322308976656436956572255842672982502331160219107673011501148864084894493065148187924559467876160061408459386527678431208630705914409467067061766686276170243091655168505342093367834761523832544203397132835476304944255214018187431384194196870101789138060724970233192535831073775915990228605843574429855539635432713394494850182214026841688449773210465084165965353116666696662438207956351253777632531067471200453615056364686864191206886440262325322306550471828987367849249764504808112302604603831627926413776021609375206761868334368817375240706635259425690256389183432305437404277612799194737297514123102864848035486255172982468236449707580145860501677813329434185983073358849262540771781570589295062640669596561715485294855326779166373993161246377130190223790842826675938361887115917868375559035208337006942814052452680381315536684177384902311300881302902699221669616643326289362326220189557132571134200397479634740317126134078011422884419436026426940425548977304955673331353930097294580636274251746432308474996437866459329398113831115319901892127101768646256595366640817207666496415636755325516410809659294736430216156230912930263266847144875068581943374858942424430442210046116253643547303662095888491451682368247683028093619760878754768618399985618447718257765659521138485094947418373308132246998585911395260986370303780428023129955746185810060636063686488001134218279456461351563445195253796131847738052981226365175980837005375244742504784753269772982962328067331107232959103814830487932021904176696500726003741852144284049527987464306353051716242462602373476982475080496130977774490280471419054412195859741394214020970308477970013819710340444270165130209261460228117056244127113394232638925240753944596345943987721946921990532120933300746803013356633924382180880670930176073080568415980649603562500811024756063544559493439089836463830714925787891281905607558419424499314698532377122788855167839234020628578047092743460206724218306723783316165679721006671828398734305788798155191009868451444757494011538276274865738930441943029468397933796876177984905880874827121470948168458862211087376117196432546385692097798319489611374953943669368062128080301629164482940202957079817263774142737140326593565267500315703132300224938572674686981256434924721322185389142630864559092740075900843814712292707419603898733207744665129981788264087826767429572507099133767796408734531064069585076901213448059168026114104487812161649673069945647312667279821971128369515312328587606693874908799198653986317412731764108626943644177716695285295349652024738234063303932552314249472720209079233665793094623613595054173133399016786266110164881811813274154014556179045432323431705671740092301702353184400661875741401531914826963767576344113475566756933042436269364461680466049494320637763377368722286600546874697856024678642124535837147052952657656560283871151535577578558561114903286636500597782923510388353695533388242377336114778019404953958033124301214977415876242898178212741880001871847945758461929231893548699330501645085234628327969966999979810125894500808819134778225272031385693143912274822523959963048676504385438213227012751423982916746750940251834970629037101215811010888473052148733733816142350194634396569443757371119516102904975387669433307455047705244293885920074090086113773291986241330981363070439361460157570916380197861577054655939632863346181943601780382661936229642530109434732137152777116887198155905752182657058934989186552327857177400000131674152344602597360726633509332409161040446044278335112917238469286409421187162818398313991144114312403095490856156761885865054268750323176338753944077255578535296659697805955623164093578195935989499426137321070319254701582073156158950801491836059799951939964406796513687252397957928077460402382751514003671975335570704434284087079412987351861582845405957464470417128164712805923305073536741450858086562026671444600947877666971152124377884759055110360820728384472787644339176431368135083708608061958526019118888952040226624087619805400526981492817663428224351935188672969758314883693254615637873420239280395759554908769884847724688479857815287720144284406258501060995178898145303851729208591458330305319020316441580472593346960134834068252883321966554463097703016088204673755984664701546142057971352104395978348791551929341117133760782805809549915796469944613256157818319536320548847648567237038422544702052182978301830447131335200286932689789373975290268349090522131539383398191015151800163290133948682495421316784550019337902629687337517896973522123427544870659898262206052555541523843362638065142012673798139901673681855724520654905822154402324165453418327733374443917370886129556512955373339413105116995868123500709836792787783945002970854546726443288246584700635294784850930617106921484531579664155523218433529414329981190031547034644589210303987954360245585475988318279049786467616571670441776758016512790697627482508606617661825186628493067302702236102174089627947833996517784215276656054615932804013525928742598968081781887272537774165420212998206011585216376077108263351378110621484982983355351147963238861824000400741843815285139245092349964998727828451187104342406355327142766406494354662000678141811233977430628565576837733235918871294606904949322360100700768350466952570654818772167631577498027284715457930364417786149695633434663594592917433584323910699317383041888987881180382904593274555893497430045044889410062618282640227392415305427730796937481655617083566869366733164283419942495255524245107595232848518560629895823850439406929690882201924652976333520953490691390254272685357826576114259245196235724150304225469722130105574855808689483114106362589267896790308265340559432388365361735384003816646287971315360041721019722457413953847913049579566087114677012102835346959596408861846003872733546225767663360736567625735450498265158032417248887024424302847731694512972057500164141715083676654994122309006882413574634537554707735479321899891817997018031037003428734826303760327860335399385651770907832523669899929391152758748254706706811812790697174120327442522456213362143346254327132514792535559842880156648564423155700970492679463148823062861176566814204746197290153231443117692642302789966755965051899771143602907375583089560201877940287663711346662998901842397888376627771867334003485932307727408391227498609861385113058806094889686640562064934129905573942253616541189737462305986949702756772242352903318764193212615428977152167876242027576838782141306866847872284925563698177793047791754377822149131776999312260381494249366418821012343627070465016590329424602808484831724497143973424018473391165271969799111849257199261153092250519786831324774026415832268281454120336249094084801982509718373468545957717682123447210845171136524382896051618495858549687027089666521904757253084121614859272330304889505157484403490976475448911803417098626698223088046416280619706830763215759668604058402566685646224719754867598843336510217227894829520824432190575325679549881262522660114922201127614558967248994059440388851223316370778742789343793129373138012899023703443001722234774113872932235226124193074231494075238472860670179916683367029217685677036135633450693418771356259947566083783769339537705251013272474671046938738449765411416324583456420045743001854313278198438954363771833687354946558432824371434552885677626027233341942510563128497726068649017608047177543329178109094126149769552818399566289380962845262359939413609766829088455408145582428485127093342893592018986730033507426358806366848110006047826170807803666840608724350601452296084660048006398273242033980123805699869703749947511542777021383777763112732772036617288314943876243774365029216355761611992033532999914829910779566698628328563775334750928803129069028369133929235092820635744881324940797163813128612847848149653961117308464622817017252063552757798990304272488919683894476329105282640420800266643914627548913523626027534836582272360181441278474242316655526696923274902607445166848921094747404337892157230064769870357602916740178109893445610268031832920816044025592262826733288759058236706305921624469378791780649076717778506673447755225293542249610164616083856466881475427309897470307302173313408597309810110804995314257795746140777518085580878077188009343339881942900052349149562368444568720022002289961223039757379414140364062881670767393207504836833197507076633155225490371835263243611905735776780486371781199211031987000828217865863078764937436900066490432446787426275041154160567815785510748895279918526853738733370922946020726158495659020348272164728493115013396593650744262395120498058784031955973910324203293694230647506094090022545362649152922402436562971606702406444986247348189612495461263600407479085450132825574087039216564283578841991369368079144419849909432905477824293672125328591212664696927319743144246497622219702377208168917396867335177567779316017973696038058744276383053070641386425817492682438358394500942277482763246336481565575556786489730086994445773848907121217890343169569815676784062715061505551501262739499874795440506266813443040851475607851912663733675028531745135911610970962965505002809333099558988165068319824899440471828026799718495796765872810028543973647670633380986472837026272973429531545006008383464449397773843740792185964874080556921466363201470117986077244175015920577918070176411116439573785433749258527704855142844670120334451635371994323010239719375389811821632773020065584834364946866521166855992580188090867668059888593563989899906145162393649834253733157814235748621970132795285792064099315774594485608312563358674327666684145511177622050310388036529198167266310652417522560674133882499477565599141005649066732595921739566072395032714785750184957201116532832429135318861620868905827448468999031397358458275123794551016934366386006955379745769660213442567673074028314182476566813468133549718633294312825437158059269369870554723135683061352405180443471959218255035851129105061668066334442440719562890112547296470657882905730620094101688992995064566114640386455908002196227519754741226249103968549201898806299919316350125378563005253216430940385392427231127733675072876419681805233042111920592239120279374482382124111620044987602277905318566754584001682771566609759164278879878465963599959583932566743004428138411044080938062820511138433712690113358048986380707238416246552163441748600745538451779958556340354169350496421027001229542135572374673780775433825616388190335566817638860351160591116022048546578218144572123533217471605189962547258910579795348492436212310708298439498674035656430110041977958712186735530538506439051861162065455239502136568037134302593982728725282315424995176068557682255772125868636371918829075783204170592980500625980899157640159407356113566449798691779936783291560538436801084830114845729777312909247709467792135689624886182385199269180282351143508935821674462294890262034848728280521270038952524327809403964880268615682413690835140331517664968601060847480652227991525002578711265754017991456672694714522518405977760943736281820997467378166409035030049439735696061534527560627993950187269321100695625751687810541788076817070805014552559970401982001748009811807694115323421656380005026758025827006001365800528294774521811457012832352020791950907762427340767441246305075851629096044976405168948555077664625241771804294961461461282777144053261449378213477942231349067875914921692456905184914569735269895864116895592568058379640698797978270504467498703803303489771721033687450923656622466515774502650390217395263763120237512467530707072583139123435830537164944024287791819796451339470468311580065375340899049122908461470359549948621210357141691003099262317023965103013242728341160197453970793829095149896756438391477401816513544466250391717303935600671644040435241047372060376305059420721291242045899512551328269407457926830916525610732936246008044733661377893523284407367106050832743922852574927993650991823128889786897897859617004738004518102542182626554301795097023410777947618370237203225403095834688624043011115420591852375853705964440565739282367234582228473275391395230328432832168726472224903116076558542647712840028829017922567151220556684479724621580274941389750451385686225571232454616088392197432522429582548198925708075970182010196960509075621628392809339709389013215348774824672950895731403506155052070220210112515069740759019262076601003612821385871701641154241155951524834912970572154331946358095693009622071231992928043180698751157763275344055799444210788051528501949151372419640831052597175644754111385452323156237259663276460815194577341417903511013049133843282821809152173695317781336110969449522706995646078716544561039893218885466664531944938094751265768902382648829832159465421777484100433616787169418119858864294716403370455826429010461310177633782262258960995742846498826657867821811790148461085256341991217426333239764005376511417178737716871918085821209412867374841229216683142639902483203677299046224338107294870619257799286381872776356335119717166039534360385350926137470572413584701132571946085124161351079527098366931678722541094800430495771397356632833165829113263075303906040039027826040148668590296228440245710923321260064195067032891538259359486325877277910354724872104095396863304014533470436159610017115854285909874190303889231661097310635968522471771550054489132583407521196692420223082546825880680900249789226752427234451641882841547830389739287818376104367870207403281637441147587223765058771592673863028717468814926555058270189327399887709042077292645313766606286946876232148722453104416243430257016741975646613436000670309688758656460557037389134098196933558852508583912835991561353121961724192197586992841544997044171108673300040390652725547832249822435577762546163705338239900060551997995885830478005601489020782043935494572249041597661743019660835857700151461302994339751821338731133725905419034100595838978217266762651932131199629398182329439537274301372019713976744469238513030104108539251596880605989346179259551782330207908833581344821808820991301263642794267863625990092826257057392040340692096256875391997098724464732365856578318584807541108708589201456347475520423819225253289007970488087211043049933030732558332180302486345747077787919550703888663774559242420053507210655886248420702455953717513643018304075774251483989734651308488156422799334549675560422369933397710099983176021978223398657709315911399739322096265416169929810733076707339353559586670898105391558426019702734772236950054814317981018183714173402728081201468462181804558645239490043743651965498617741469613781824545259527260186394824376923745849851418399642313230316089482178542549011628729198407859952969051051932955468076931923960446276752526482617795972514313413429746136064191641062848632031981077702469635204193412733150628749206041167925126737922289827212430458245150903680374879233383889596181134757647017059524355701492428842962893327628635014690997081872802561702407533078889210774756518821758044108942916214296334640860233158204784425885265904405688276324027677590132805056486141667314213838838855435911813075255153520770250362627382501085024161536074053397434580268989033656108948093680427392710040088290337899686385875371112675621569324582947938762945001794351352155047557480708014182695034144252556069122708044579520967256136852738065374075177864080204595436678844182884253645393298531305984078817351135748353912578776021436949781803723039989488720018544089589803836732229051269845641109024479486911053296546224875351258344761811741434266996445250727190473734481865876746873791315248140390155280078259077271400678508523676660104077495241916047008807385372423682817047176916730046388718597103390921359069225374086790481886734492668692998924753014883021978831117837747145740209330598977514764298841958554629286101417686106127832843791785535231795831013463917094765632832071388381797782764868275376159481482262262655028713954621271970091475684215323794061605256414550914771410762929444816439972363946414585352104654776407405188868924910912140713058217187005804274213515641778174249775934837469526241566618036795186769276606112909795747096619496452474903496132255678815542199770438490424043189274981882084481632143766743481114870368904612498658907058396342942942458952835534492291674917335246514386257774068681182427573836110102277142981038393193748559594307816200771841681550186463265244021623017786539724688347482289909436066402532708186667074604038980686342226160953551537662697404463073137054621182176930214628823463792165369990029448294187744143225100173509375711456488807535222731671184504342354359864373367141746500347133848017994345188836255883079163625147287539074338815604583589629800711668135406309431401868531277171376915575548569015980951972724980610542039292964644094917029317961533085679001133105973407843591354944706020424454861201455839769120180796642486710344004807589492892890138813057564005014249214210924871418979420128831655020919978714091897550177999096443074546887107434622416198663763890853528670859130524096192908037790195593383687015800492598232848241713018268123381856470460308472513748707665690545756039251466047534305009628734386860236313207972736205080533886576087381371950140280020272210696183269208841985154368752419528731182439821037598120301680602010004171742476360615329281741229381131448663933782965149601891995563816014260742841911665492352835488487788517905355837990348169046601443249527638223173455981198891274880823717213323331618302119872709161092394089439273344055008861606507475169543551326828720119668049086881466357312303092778333477948454300577478125879873739612388622710313562100641475921876044941987272205456575856669369587438998827663026058339005758954320271188415042163760994860704270840489830597412783005832148963563834815161564626929215980304527801686575744824268290704715116487785968301865130787270232637375324763798289450164800988549246699978261949460801968225732372528141449174829114718304574189904325946421456698149193400032571886810011446203180293975310101641081331475570452669251342485643890298843014219860597341817252399642102896585672681654400839202820308476337819045462648297940253474976994982694784879759806540940291835890824186969564206025855887306679081832683722304240953395418320532339541030683536675000909975177132543727345401905967078012456202661936447087421258845602703155323098590236545799577159046331742850248249698440997814154099499686957474758059255871396069099385546767580079253945699435080082608757353236765435859581273272796070049281512473396063598891680321292981239523887997476082180401210998078466101200212013772411480835867226717767491019439938316413564704933004744985820145959262175686928082359996596008580424228216668232897960242703091325942277884493134608226991489492039475533246082166864815170157852606513866239187766206270412114890203953475664255557742296440313938877593859988454283185229511356073915381751810782036323155895225062846639113922936291352822473514449615742207915201130503377942116085053993764126728963911264186825734525988616247722378319269039318706617771968486582344227219152734008769389718362959118198998509160157534361114994070888872011484343653098479972707735005895321608795594344492697884939946268642332130335071503316011630834710115357633871028720399206864157394791265791138267776306917458309821833958615687021917814808803255870425863153029605196245483107209604878450890059362204094981997328526257713409512167014615880866669985595228423206264291972952671954769302921132181140059024478060336498981554414056937330544273583700476688149410582913826825127756951593348643660785986077819671064504837264064825018268413245436914537298836518357485300158366996284224099291744953530074770831191582514676550108462594649088853695842898568461344407106847324056633657325933245842198098611017945434654165240152285209077263224396890610405258903718111253494463799070666631855075256553605956843437196481152549138112856673605942557148767199210157415505973807474034349165663511413096653533937931299133905928991961067115839491232269932817557716991957283584427385652124862103761820702514421375614933994508425789889696112215997372460547762008238090076743789863042597269398146258067732725583794763270415389781299478911792918880000516823146571411513242039827382243937816793771055970129199034726229942767040027466032339207999837154499411106264785569939719900223172519460492394306886194597978098080714757638454103663380662606866528148330460360548707407484845045997852539188163914062881817262645138521878850665702330279395722856032478931915803992901045557124674294885812910108541332900243965275348159704141313186355023908533963133187244150085139263540156074522650362654650088404651453588649029506261881612210430333931799089920507387613528499023623181251014045789387749697255133595629362925497026554026895177549724372755177571886566256378302220807102853112081371207862546786155761667838796017994348826796082111022789324038361227877198554531567397114153493345389265595776649350598547889378720906620002807721381633311356359617605401001228432134630765382069151457645829132664340164971395066470998964827201823777881010673737563702393515468301442272089554772147934176305912994414131954949922754566985010205763038227459180808229588584674783703171967014008323748969407413726165562902403993233302635528628952589410102779446605162964390398920008056661876533621829549499551772010544851804546976000188838000467362351158989445134941737305521436525015157312358377634355466054074685046444452977187598682413117297658742749390398606045078088882207505945928074933140096820509989111256390851508345246424548629361838977693839868425912285476951207873303859302189373888211118579800536337486332621140228328375933131694096364177468361991209277452008850576109750688802729316460362538593671320519059144167515120952697983726737833805711000693451154154711083341443343604192488277795338489641027197046625122630919792703748386105005444225918762565074037551266636894362805350576839621326503226131670132492062787231899063409453647217532078060546364397389761997063278898594187722233047529898558284698944539236186287180697076803395283707155507706958232638773809135318045179226935400408466845591278277626286070240954204480631585601553332117650305728301976390540710492048378061600198911869235714343887622696782435109281693590625692136731831000942079187618367000694220446934567430612577166870557802935852129901345116495888631774853093930364836997687321454379440483835776494893246469575260421103680057128909282950204495608316015819869187174635587742651652788765736281592416842193413229337451710502057318995002947406535176200826302917485235508156033113870626046018479989625886078775853467896225730067834505125797294627201394229469713664291984541264512811668204825721959124904032535114324289283375214105510569475862351821782587139396424417923347072242926205745112672579393586081243213618889715001445843632784442133608458027042197536961933247484902554577513824621042214285802318883977988183666893590217860036558542333690506854065489654764388768777046620768836829224465912171583488168286538608725359333551855020640650710498178431442305155464493449060818309702912890336702907651467827182606608815921878302398332730347923873031435232461128904772426773861792325293476772125997747344848913066535521987642765131483200552333438970011871224090477810122626814207534122873584238632808824396938096971765308229198084194139749161211762678885184915038189021066381321965866947193147860718434156020338059208079939167871939617920289289634192508768837462302126250447364655920558208096850013866153366045796269247545582391870485438052885018489676715675169184153188263797961463875661901915027073840718535264424224588892443139695650006636649592773860038482628373277412403916253599202935332367930751252297680350764192767259742068870488222265391322796691681023047141504562901652273646237980371780112740060119945243869096472618101772447930756631731281393284589094268327342234975539297751276099491257116841720696641052229440886599401546373235338337266124076344319756413426487992981805218091843995469386567152188952519572388719294916674009082326729659427376412752137637452332677626347563697198207301094220621233447315198828952748209301405956168229505171478846003187348881509195121299534318281502240139518582889793742761957485238620252717665030814863469349831709880582181065925475614764716131558708831926972054523188805721493228307396538688044506253757830028416214445416445395948593619680710926816216049173087897239260057674318482609409755333821695179675798149233251953973265210070327158572101663225728628823782839221572121558674288261170427542699596480031921028923446140188300329417078704911422378124953950833621029396819857393234032259024792892726148629203677784222721508212479676073119188857402810980146059592627051436212778141945731367130327755591408981343033029663025595830330209118956735451307173076223897004783331049788042260717287543635895910350313172083155197076444443947474572911101071902243459968798309883822780052526803728018307288288273840018623511792879698081994534376033328854012408706803820056449965999049811591991786261910143589756742313067300342385450761983902251808287261502966303638265148618494629038137126408906423206765552199267958321316879264639228575449020070979576536951469590373941001912523729864628524201514613553373146832676331805110890693234518720222852370865102599258862783144472718322652949676183630059398101867896080343631285555797930791243095183189005282302684091739162901226148759267188104123863234414700833277963997811949543008886408285574972825375049799886255542802395981591822005889902838913185762947954920489299127477611979122733799166774597051112858544036177037679883910955138938647423048183049562038577892681862573005851425683784104515068591857716847759335223755716821803779968614928535972933568219153729975449582746341651988812191243910425862990067424288453028421761302408839058443937278363553293539517446569120238200735118707533242957778238128661831701260431749177879093149612566688409591850430874104707522688233737080327417853248543144253915722031342920237684574514612590289304409239016330567229299813321647555057924424820183000688669733519160606403495026506190255269560851111609585289185526925271766752706201976067800257121119023693655664014662614035673934023917966538280830718624647064614838674510403130308959732734561036296203668241739023838428256087957386525271640669046242788556228887000420225716202728500712032249499651599750088017393338888507358900170346332036690103560599769622966684097553817662619348135981042141418763224927876116968740948534717236731497463680557396420439457642470451413869793917113052273163395318359121051818479852434070413825735263825191826686480707351539592511596945750719791587345863366637848458986742613009832233575488121855160328614597283328553981242076635948666810002285694601133983354717518048414682795598165665882815586515078400443534026757842641440154541868652320023145690000356778816961467674055174447725505600769330459012411917218613554238899570548785053716459210740288606161490521537124558739396177948548698047527449706496892972675796361138229371313090581754250088505284178380838633033508939390604047393818010059936198103286063764474752247517162213527375593355378525945852159515808005787527798802940191804362753904303335153291230567756261460644272143673238032455305419559385143383088244536045061090413558309674382504495824262434966644040477685351898640722822703050431700517673858856256627889904849372855125156468563399686312519007843489136683033567501190183810487546388877649775327541520589376607275814550179556341792171317806398962200561596099254148076947156563313035724466963618444343282429173906366095851038808619547938690421068814281852717654935335024383612224334869240246079104227652687140976598785249084151609819743655037737797117668392719694607564577428906915573044740642305635316803875547840343575187603506738091448028886689085635663498869707041040579697762332928504429626860615801989341154641493706633572384184442477155465171506639913441053458166988985741641802693797273595266230341006620664488177641333890569297465179944650413125720994972384989091680636340000758739665786762181967650713704208201119481495766290283112547592555738101794673555729379984001417696844702949850671098226275905791153782210097472635015078629107326958720738238874200585214874878735593344255753466560256264162295440907937940886004386057561338272291903662053984739272433355022600468922560617968156165782714305797651191840992503647438510191670968921210175384624913244471685141898786736296941428272637482906958642615775257024707252810150531046757437902442544088512136217885953981311828015868486813965193468335433420102846876635248726267322917531664185207599873924152754064041350830939809832218107942549464345214483016425138632120515438904959693856717993512037653001252586218718227934806683378644573488112883986298440005965540976443441553897928394842964940015556573456056751941835870181960408333736330108834393800208675230933674254822369919933593892002687257909426302511220320154987765439513899247763959525756138972750817409650876096314465795805662992281165806059905828452708944505673544088935170437680988653332350349550250181293139437202837900598277658983125885356734851624224276146104588016095151293386610126866243892958135436050010542403630031083875486298035776505997894423736999868407580180261758181924537837813084519204054888400197433749880931023470412537785650499825920079533348842532608814969806138994908648882359438523820601915398973313670636088960852287666947781954813189616238996595182737152359315976110477369906077746777493918652576591628752035761925489749711952022315473246660358382318684785544606218963337719703481823681600082962784936064044296126553470927531738721352742100721969745055998325176962062839336762398315338780991206735603657845859109202846098735152811245304327429931748319789505462230963312857422519795232543466459576116597240794358493423634574462587169676057768971796254445594853634562241430543379023884200384270248731705130153099462060237107903442344598017337706156186311490594477995538673875750202482590528123594841982649198968630053074076010999891346720335080765348119375377472994291996340858318772533503137354679365671508272004926679075010002926216572666234701276878383060332971846684769236600830378592524544335037364978893665265159339013896071999562604558123101023163620608274198792052993083025171609776009453663349683532070709043000496939068312503940006545718115510142790476222182289982472320087184744629286067178878307769588677629487990334535234857551319344185766897401567032136105070263119027626608810238654657014049057563539894823431582019747682101527652506062606768164608185890973763241131827382998435878269521660637905220795736251063455785716230888400971694567551366003531862082045626230277267192450092017085816722056339438367921015568720866921979995989702439807169630100824399920995848088491323823353756482793076142102919251972044298259135238185420040033183843636616923778669135213379360743222175706463896095493223799542886503672508807313282355602083990769338152365105503210847130895127948261002652865183484593407038107373533064772158480998629227865758072296980474227406309064406044415769622460397910148969665660593722406100011180554464578761115688891871348910943543561845902907204965463196733298195688999603833204403200924667694863333225239073684273500985137953468857296137671009726708100000583999090761195323438470157109114317469596256232384251088829547935252514633525287870437787604787736639722968631591018664353098195056416215991786822515473770530545064439014832581817700415708023339541249748006700068438367059787057614746933208464573088396040867763377450896116388428360940589382091919803512290043027185326770457488679114725335177605514693383307593741022110531732812427776329966354222548287019247131760148783651012746032235192448282837997434416639114706056935791521588298165816774916272375232578817039365393334811917837227115794148883820645511076013513284884641616523940001480227429281039660552612669667038021503294348539687598415443034723183293450009297363918702025414336994832813789826869873187123967792960440727481315537012358757189880022653887916442111369662766911160235540964587081258961097033241614597693307526385338436351074872695373157756497011502694804186681128625835259036441236865379740150623881995528999950810458990159786601162919814506057204726185796419077898078117866228471062871789024329665313996164432493476650427949237243991561878514433393413929308782062262604335912602717533871054184409557052959712618912935445984123206049270247758323881426162643679553779218017109222567444484961396225048729207934851342671235664125904615655572422183144266262061220627121474212519445567084277584322478308587335935198101534999591814637671214110378527187042549214567401409177380494858415200713636244329027026425242658137332086169359031410006599788813604743589898360596359733095049727379334642561784650956803136265786726597554173128553780594550949959154979279830660697022898458436567572527086400258234450652047961765427946098485510923111925708643259311893351888756756644795836179970959783668447173770245576117747773415538556891609649292551449539966729630358485075203978818623062543835406620397577238486933630669868059217014325515838485205003459526076330839024359027639028873025409883077697708992853569840383453444206656647839361496204507248503804307719060106838514178519665421078704913815130526009318449727026674649267950105261820559926335244115601386320710820426796473902530423133011183252712414324170605437872615088366032228175911238728420394202069124325486614276799158590757707536516230658093300899779064951185620336109286731051100437710251089181430993904998563755952709414064226980897062489973317233342867332749248536867587896741063256074250975760470295493969027509724455601555130554374656844862518569161107514930160460113419790791749573890388115430622079809196222986142610072825154916935027886242894192225896076756324052528311079801052286442983830267444821598724606283479445825777626086707997626064247459355861127354090641165045067033296275194831411275328450561025881774389603820974566603174172672473949960550057891293397376012474155774306564310963546790982726973183484421535343948910324024425461099703396895542866368278350805910681917545087414013968472072415208642943516701858531998785357812347384858823231056249778852497583561638847264156278915461015544549448308312149506563542164716906523542104507934615655690027590217399795792527843939888785149780918662381087998673001243060984446643700469330748780496168246872973899335950483858420601279405702562217627842588253347528298671803561557455949727616524972808057166443355067805697728930100905327835184410577538666722851244623522255215979426050036968091805550500173511140547226666154870136631036843444940226232525541429658606884994540700824150069056754409973134792385574873485947031498852047676143522384276236982779171702677351170029117015551047908990852805980281950698790175095405446420987789062570768929908081296208347958667636325368165527681128246892257342159554968163649918942195809637243700620318986131283775776620668869848999978990458014503619666866133430382167130027866790069113082349170833502063551917128570532998648048462356917032340379832102904648920419978463051534772201853152610482458676522288409529331092594431258417424096560363993199309370490621182424578185955260201491579373886419539754283430734740126814260456722895326614113586523100310837155644366918583446932003363375872307853080393170920054706095229211929273476107754246654559114957675721518612281434746767108624546177534513806042078713096744626738323310758684691674282666578612574504834933213342295421009043224452245804723395671996767091652950464114647298096204198784747542279365638828316714400810429813546616430543095561691368529899602091440721641133630972140063076954726703979434438506397443204230529216619092496233480867899253791562630321389110235084579591478838158824768876116225597304233689389880285448812973905680555775180720211454992366612391861793856704136961057043757814086388908889199110975650757354649932079212692467324517547272702432309642605010624668336411629009112199996349185987519254874593847914110452119989957402995168277617025465541070637624089899775560707378421874068617834577921385982068886111245728357675926881650183240646667150660595514024196014562364198303278895500237707923780208104310562581618326477328422809976727222192833476284752943306327013922465596563604756037303624823496810711572687039125443351944461419370058422881992009596614684143758494360589811342256627518769151598641755588432940655096024278993737559307551699012863655122704338048120292601972102155768165646083370328011944592976831126032150311065611637760620072757901112272693357491117711855876050615961496681184794052804610305996480337948790298045590343592546171625803067340504000521707851339084357142597721062787336701506603952538697922848984431326838126569017883404602398911853331975797107635933956341582772719535449436014703047346460118658441029604694546552085433367002398913865156875454923870702859936108816331264232045611720014693828225239153078726236322311160635859033121539769013019654761999587033930828866619242371807246633595114802264743205987165637546136374282703339122531425207389367364018391747342454642055828535913380613121767295387418529579796326595275847131200446822542616843538390291214602661109230378527625279052366229320401634730371315597581964759649325138558629564417571465386808777334848646416875331670552133498430648826516342775743582742991990404737521166574853943254636923917590672930400216625247584764352233218856440129307349885477181235455392012454882784241674728365474730622479898955951953518136897868861144065313073037811220925160999081076635208915021999827383629668558274147345535648093778962052976290623953251277409707609670559518008304382379462414171570424692283813350155657576858664586137922434156128690159976776929776909132215855216668165200314133472183082992753927516230244623726109380784591599535254546904930910435226201968068360010782135354005218000024414360388567297816970797253475036628183188228849120833421045574957141894262913733542946233975189176383631123519174938911977828092810951544756323655432745866748804813718821027734370471462699882225043449428436226820479857127264340394559037035502260518747164784093712750503567498147621490510773510806838400458355325346202510507392740242074703845894801097526098573406269001741504085008927018836526624731215847661797224131515453218543592988835289232865694909542680299583695765648664313496479569373236585536909780871307777629695368145084612690028375187609710699511601055206603807072442873803390993803778962280248157464313561314642597090968499533436106833196326713950140665996281561122251010651332355664392315596155930721021166277785552294042891103222582996168040566852500534668229083490673012853340197266372861950010795881898129629198065273122704257310671619238297735664846916399276360446769784437802717909374402675188248309555376544567314331187511636867525254048812166831111686907263406250807975534686159887172998475419273605085185260313109344091619687450531583673333777712952209085549440975866361967515454102731493627369410434841881264389576937529410378134122641099145566801578350586742426581770569218959903994247265392171408638108795429426137795839750679135093582867523982948163329059636029620854417555119813087118430898990307419447455893347606363907562437176952854594595808037880564857608310575085757226663576838049645741782908666697857332674032109038357726628964443864749840213756549576325422600136137437409457539685907613277472587024994306410215719487475605618952153374070201327193830699020952939313031674489337943837299127290684528561511289867003711490990037245237472558845576193621012601728234102003248612488048832711804825862942987252402385566500945019927433669205974489553718167160273672588580375528538788072369421826692565834235205633102628528195584251657877339270550505981698655827150081265640585033767678433177597184779706106711571735967001126968334888514711459825377528879454631359535584596479034131386497307901725708081777987640192474802731656270683285799328450958826717219939136475972949897954958283475559644544344382942158691667511541124209499669552565304243584295358538292017540376250249401774047609418578555045064276881452103388708655666909426706641254977941908003344777168632549095663028193282115718357516366004082309032757922426572098364738911000960206353330588186868537219423128218159184683949044740888241354625026880748496628541628960894630008956569046378676753459109905857050474193700575786655513341782498249266417879254699377474795944235696101016911261490091554317986745761134858134291933960860388842515386456833402207405994956379363767546321860549748498106314807099610483026326214694478452459184101098981144978465534146703346513118962617240386250679520963650576691892090378759991697956546644498807567150051608752563770738432044156853036748108845063765165410693718460651417876076213879753498535845859088556138791301941901448281597580800155843293189206940564158608730900618015546987395257756350130677746352110586552823637152379999560243075847313120256042511603668483783055450567991734154061488268823054311885837671001485861069075646779240280426273816624948622523417723608046286741247114879388564192645060893211760626641051322058825511758662976708909941807613257836093103898221467666179266338511878554329316985198235623262058893537872657099241103346550332286283272973363509462732706363636180635978382875423707700256344351470714422624074764385350485742737449291372722217669343605193260468356178608478448938859274257126619404224120037705177246470997312115221548768232402618868862040655811046290172980320242031398187034400649907374207306937095161018591011466090181824998867259484957693225795383415672918484698615727674408302815933322356932157133781187723533071446261408558528285275362572205414747750213037068915614103930222640935217974003175046734923227682660962466178525311808859164608809288513113260796436535567582096988025000648807165622166491563106373858193338464041562030498291631616675341571721241583496365704964622291072600025371451865613738158098925365217123435673826842540733682026732109933901735822718239208018701444201143312687216677149536377380063888051577644596151144914175683859418181476726202382506191485314109519063635891437367441590793190988925920534216865558753444344877560517477325971514549166956343500810207178070838820542986270048506407668260281928933116334956020304137538005228308673746160706293234065280444060491497782352735989427517146299288182054767473102844745135128092378092802410659161945893591064783616882251512437855383019070474624118831870736524550407741192208316761213606022331192563207724398391465398140006188353809110928480337203772711051173032282939568370944065350222224304413044694383241509938985915330920825333788727093346601329744723429485568152250933550257976051873942140165135612514066249011649009218631163295473600498452588109880134308122419034137964148532747755959867780476571719109960773199119122236378092151323826517307505179745391511910477220979081199358627144173784252662406948238715723794456811065008053213517758389230134176731816253401249636723540557054637044503267911830850378930570023048982930946563319411478090969471275429810115258839807677349639607924445472796696673618604589288159530687629473069331914970863898792724811382876675783574615446743770721793836913650708809657829804870374443196514812509372763741683599057404094921203984965822798247483979257110246431905971068001431504423976774573780628417884962448064342171402251013658831041455039946657734013701203763488279952034678804296381838421374511898807551120654662839574328304686294745147957852995441558000767608009601136809801556746854020491872964368483823124242799573139657546774163310944389439604032181580596924587632428074424759058919939057355329264950892030395107768204841632730110033272780805467504482738688119422137135003629209662606921590769194966239419037241938789740532320984331331221280301440661639620667365475152516513769679257093729880583621715306463779107558104824600510740702521578158408847340058693844165535533600135462691293455278388637479286312991208361621284831842367592098173185809647402511572867116481242340467154806865758958341125231904269141818217503413282233050247189237472605785530324936910946148954582464550980077382018633989188591713289295462456590063721830975018032773654474189997308239796333061815937718344394955340818786445999115174193793848970844869816013906316672892572548992873882832260717831640276920554870757940039768136983828170933930812832949121390894694462670998574504637520216130483202769943959827545400242871764639486195057577449883519465079071476550415753141392911599383629519296362460927024962464273114558269464860320516670287311164849632726386288539635188677153742645351415875372926469540385780629427199235478894617380283996714252720416072950285588320002548630291954067916246787479825195379999775841871889248584908616177322080781894215666794841950075801121950967477649786496759217119330075512060613087665911547687071512163011694252417326308616592646219215377500223866625026680158829180178400068796733782377302144793874377979527360928786899561270529252355406836548585850259548045902725178898327087966861946279204509205018368627885513236558947282573429785554528966952609095119946225556332422777857630929040640537661026693204253019745905524590275088975663243807043164328795481021100048313530029944061891193146424677489049390479931087501277744614496628656686740962445178948982173425298225877081826857099463184784548689452279558723711985344620553822936760179625528355354805173137137670549131052810205119707543232903248486388970685346248585698098721058293273581035669112887112111893357708978212272086167466983127040779534781707838008863414302298379263582746267849255242091834938280198804372293013132826734426271541391209934071102139720286212722344471024173805304373006549320607355844930231253730582970615309735293478312829137345105472363668188284113203102716243399985138657638244450386070395701913195730034023977789890716634402522779835183490361021819299600041243977604677604963609541110437516999503625447600341354153114295140620988102809474708455029880887380915054505956706461391068234940072581645177820564223810711576081314640234371445760716674263907262032671676160464106322771841337291959544274740169421990772094851545658589781015858667795108118474229784979932206484681271978843894835553787375453237270987173639921023146197602845424652577518970139902158589447469160187018231848898385908618566366419645440179180848024754370552122424790290835426603385664106455419381712741505136832104322162803163858609825452548615211367457023788962740453718030836008963179234102771707899372022530766746658880863614579816978659330510521695225599780106992668629338509764877288809120847033206970337446664842047565464777232962864714111371143840586497719505819766895551768731180450598077866089799801771340706968014173048421884055865086099853815017272673108070052912798154040543405684967312415578347472507671924680308270520725715240550577731729747319009261764521492637411760745244553563995586551733615188169789409033509410590239973126534154093649249907424773404658797264681408326525514647463786180252788768493807536280182990326304745407251891937284624871307234523800890413724713650013197980716798029991609918132793697564698991317594660667608199927499801656191637400524986585663172602994894733269401477003548905695525261292810789112408031872578155734782976421722101605508785947293109545130173634366543528174474995365084123539796778143499266016314137802090918095353156133216784713214549565269501015787243785856563266285101647864677664989234733459752798707243655914234885709083068294680397041874724838015850377951914676203048011014323591010102749492928970213660737433231188592800383602924891887667229091339608458580153706733637315244782400994672511943786199148636959893999947644546069588435368737457704560865096164237460830102203429067809523295732084259167216129115587837847168967298589348655527799242818808764503444673693322938472970925429994990813661170201191524657084929616127359865830839283049997248214327654057657055012566650717114512166340571056610121472504797813519371275925682952807377135945646934266789518806079935294824304174969068657959930058957796313277811505597991613477957177956678079720876866513524458464177082016477209711906679254967145497748248575118982823028503513058766336187725440708565850310745945998592567681488526882595529027183727474675508551470950139626822465124577296325313944630870839372183471069055543712860254795869797515793224493107739633225991673366966503541363813552564933923967953938559237042875898292747010391379483558156542705339270336142992560649072736752495282389755689622611132765254575359800595864970363389368392347692146750628270914518952943311713526222646031857153360678918633362901464094387268251863037183385462430549565296353759147959029405057956929144556024031772211777309540805700306617731472646548621037145908962325127993154449146769608756658316067705871463086518461086090131147521163504245439064589963045745100002322660309335800261022115027872332148673771652156664223132412149662851930011598040785669071815057124563780622278133071195960459736941142516053789181796858441457762757260425087619147277439187731307993498338401986489050117259044438332216368895861534587625802007669768314865840479286861759271315214268601261650675982919694929743112588860303216631771647271777251436515194159998938678219654155771695048923123786120292248061610603486049269872403388184335849137575702886386979225179260485188148989493611452132623840733408714819534913581037665956534339247199002317472147963340006594944202726230123526911155995864390478273980673713912656935210135766979241552778497583353480298851513702060947957528938885870941013987723857788022734555680560494104773201230460698092627085912566559076753237238442393998507737131106184425707308793895873614549550267881045049113951190237367341812961625621935364522699982132009999268985674582852122180198949959743600774562967273449911594550352926643087896850817194903569095778703101028865007448373495700542362581154749075470410489071050306523687974523037188143593385271307650446764342533090429563825236128589726025064428354661636339180937954113777419417702027315439803076743911945727886185816536017277348368364123951984210675134813704831604201624577709296863073146483916930044489241075004496709707370616421343865318154594816130142415895037102172721331551148536799862641623263137532316295620054353095738638110497041387124473123516921692864905973456230403126289540930776193093611005499560793970039088957235535294786113732587739278215538193297873513548717709316171917964347430139193654280199229091849906788860644499850330162104341146773142068785332028974373024452702651531433539273432374808828766608643783732153875982191076770151534530989498266284747063930571584717346422214277322514842536039735649155023696702209557078778329800040896742164885994715676234088798700692302077299850618201465063443991987491544038876686210424534834974072531030250339164443805329536013797473903724121531301580814807141825295768598311664525925761476791938514954863370500467794365192104404178663764637392281451049686708448733553737910799999041054619372458021141925160938168062943325811165913727482612773277023864373092742847267196992772677169176364010673190626533971415313633056478989583469043257642074072465836877111038972382736006709759326097233946893870612672768584837846430102079765713197041676354899437009445150326962536272995970268471719850768163743422262806707552755987641396290167419757780587026933111527189718736854306778090358210199173050232943568057701379655227670042997845978854297302306553744942705710625962787968344746758471744819902286324546074181852746538298171107654468867046436587799162463125039425142766218003485493707710372760248382798687226426003040818220869196263814439464122956766883889484563240070186067446699871269445856635247439570840986321320451083383119559276522805171581717057728427522830432573624178791301876507794223084451852251483736947580372708923370740355847803936035108038302553216484877243545878622320126944276476634649354792202381414567379664464478233804451964693696390168305839164206498841837019504014448638989626140135314940877483411007362605689158222826696743804336934664843798801703003399680191152156840632588702933349403120959228891157994796938802872125063479284994875645595481016324836031881408657319357686944305723489452221162642895346435732509416569653094829945383652316316672198581388074273581074509373912679330373591703481051224342717233133515013202902112795267169591554012220791485599619110887584956175044953736218599989743594188127531398870423589717411541302708337838528467623357287612513992020002541535274866991202599613645545739024122667007567204477447551339556076202284400475363582975492801060625501212369905611759823081858245452815559410757817125262544695608198363749640599486741998230923396509772614065560895762691677862849936694772147726276237163423392236189389552751382414111450863978635398997795402654884688550558664113253669973904167063434998600812370247299826134686935860779108043436616447012078632520023880088033626278033042795158394238602585734712402714002284337174523957027570114416090201452240490020965250024025616199563146052820754879129310592270082991953683682742570958405073252459728064320963699776820433644702517207781638390608783862470498231112080805659915514853148188887719678040441847263909486280048619102345484038948206201640370526608276176300920592360974360661833359523297428039654568928892207361257879401124984554461926554530922498962374976392042078343230617057643918756845802351039474725342034557385787695483972942457892363721746734606026980761599455991013469594339915557870526844551091876020608017993140018768583774312552416273013053537566289772703104446095552837649898159198021762261487111452555597200274940119948599900432867803216049284340896500892212496291862358729572819333004291785493734495384481586736088976320016791163035459223915365791191983471831716468256671680704150217034118614721703563294947656651160341783731745226826319815052352378261530996677277849858992321971342264369634570458355034042163238100046403735583572262380058277366129671758273151091981752778079341276501355396416105715665007372007397800752820035410803085674997195327724920663605353080715722279286765011902663706807839281629426363911254389446031768421985661698604864162478565494710828523603737951320325354254480118955547773869811452889178379967012996825474725273732023834663396969837130557460770001158714319596507747699627582485633719547908161155005674182342003626468124770088181641859519333654244193688930626388736735569265353005590546512628171497102131197786760320086535140119389798073004767241304453923911324067452726582215816016978471395718857902265867902988769414731925777856656434043058877491654595854228354159742379126278161488379078141876451864298364543572303279350445143195118868658552443787643102194325149152784083365062027904829507012878807257092671311638324519640521863908808702535404273833316089313080321855651646005127244420075841381469085152459569741391015658627684797721150047531445358230852735306289914222080144664752405699683565711652422252666667534564005411200435207726745322697486541778841414154357499000232195340189163064969413455212511813888436640103665784239922056968871104396220629218417813122966922212963216539857675418100166865524435991190538071902557578439823918386082391466567488299049705712479414946851250199092671530110064225385717875145491018335954914041679737254420192661499517833936031918545815599273015549380079700350967063929830280678457641219901167379767425380800797219296047185979802990925776376075882645448167132011201093433038873833938883278465766916491748522258597488531137344685257275396960672177662472163000002707038810461657402768727949113882649677464249743884286611990824434068322011210298270595340089115400574385084440415169850411389270572231862938156408546225270834678139725264406472806256817496255371164294102181582644385903942125251852625817235327836758890777318855574514971470734780272261988589826449911659799388846137393495314083703952291386158941502054006186946251009531838522238872208498387541533465391949135108186083347129326289850347524818872617913520243358139878036609079844483608592535444341765331699404485169278485501927655373073063909651569313739495543059843521792818153784772968738651377927941414897178172943904741951328920671270373555429325457016014447331176461528939457395565283249607096199122190099619144700199047463706841661288529876200303227509062678339231997937364464124468507320496668060768443258446998586404814203913546222024532560316669197110201695996969036212564978256149086572614754131026132207873565077867219613910024535171013839377304137556965341805642660781622758212457450498769720957654181099938010327209916332637165610516091399452110693997555431600867076222114368417752527931076737139645587189338572254887027843561059108750261671729412395770617304653101393103352334519158675723977189758510517408038792372285554615203255135688348175551773828916964236335930642673689824073527368157142904306457023667160167443938363038351340690716652587641587238477315096314847586018397261461191569467520859787658250922966099752369143153656245631672686505286381107874056079484163772234602986561453820015773513897663284243097072887427343045699584673559944979422012953225202213279987604933420066205980796319611431608068970302605305922725143636332521843982273480803225891413400927316779736800132778567182495728708516343328229072231726318549135064479681714081390303756867667751440706248063003494334358289026509608435999959030648535726783718081679893923625135179571072758981625930717460960484743637323673874481333347150494348508306046674083035210427534638315827256318110351957919988837287832187956814932703181980399319296357685090762272891174874605450886137719758944398842887199488468414987049601188681976600955980317797841744301718493176104573486427605482626289502061711472981184439307959754899381714256868385327093332449707485548625973844478235719831908430050640627569720956606112479242659948982802274439947334172587972408103346981886270528145230159231752723615795346328794933123886012651220795349714966949508976216698259498424703163379687524077999098349846967160822995124637143191202466642622817191591123144037970150568708382926449899046490274450042761623608100130022983579669240189597139390482066306054806099075553853486761029621804156284318987721249645680082307640034489795683010426829116166558960065112178331456275796756406389699784907801998381970615568840242798064859140075950478967123009468706241939384955483415600541676926707643706934041136828191464593199804618741556479442477569391052183179579671001837143359598200324529546153292373193938378194553900234016164331258815190790240429105007684566107058956848548039673781591723857841063201869685716586176464035362116539065866959303219040142473384457846207769829806515575780906209529845087306539189922002786787144868056747130393198376589675225198903016217862966955269704037628121204613769124189525146083169595645262641805136399083996880480757195130535223233336130363249145471501683378921638849331406420003891480738326955909639117086508000084724435714895770227834771729667395576506195558462642898167775970836052076786249099273926945694937535453641121737816642288176127195890992165145855656666202964073507251284369159019616064731807462171866502643812771697173174121577806601330532449724821907101512161877774158086922001975062176413802151992315566797497181660839272690202998663669949236467900135384162022627498188019335127452573378045854137861866599858898061505330372819833944963138310355996250879232002510202371856483850383153334315174343543336987674351258724530908361185079825146315339486960600999368881917919688647670520052498769884445875779950071724884844594406512856858108221554164869892953866418578791674834713373158971101495125214697680618532567642335044834963021025640264193572929001547142407095606659417216599915753290360925777171634826507223088625398381934652789964500055759387132728471228558868381985316398006485858239594461259836633014505977143146205692965197876620737122508933342398677030442927413486058331958384645434724509353593353709697877014209410002456388773003073537718898910883086093544659940468296097330107515113719608489556009189734198200313006922550170007778708847314944083646480267875887869488754695380145823374512683927302382032071011344029220470393088820985635421375630295748738244885712551630919973124691241157603676286411816709810457834002726615488611095223062539284855209520762593395154558185115896237028725212589508336181414805799727679883849639198691949836821035804128366907802911160007376519988516596807395181421707514959495295768323085589261810916501366143482115799824170329813500979016473027310664178168306551908052033211173735406110608772936114537518848459816811680485539818394605676442788956898013622846158151257303814306484345066704156567770032818316256464033133345314367561023409457940746672975541342476945977121658083170554655800092456497753775346763166093882847602335380781727854133160823737815926506452019273788395664831868712512085222500729800754161127313792591848074502507055407277340802951877247213164939465226552918952665434434131809227337271637209612870395713051054546910883411642777220114885473300590348424345809742664363755943607387660420923999150929577141584713931936188354628116394229319361219758199762762425076177556053725282616031915242029303170618538315635069937054472377028098109891699781409535705840001708027446549461966217232281127207681830158276968765216484053156089931958344697357620550953712679349014057097157376588893734763692161942087472814635928292465700900169998614170211934089202799769989651337889694317907279453753105283280519310202252951871071396448375563881170278858732738699964179690652645747932330154012883572143082620499205549336244771845114140028638021611036701876287975536623888127308182592900931892273066435454404039242515726320059735422826059673640936316369820253519948631546121618813918071226376335714469572824132985109845026412197202510606991678310783402578190182040596068984231633289088329461821011531456733608769164198758282743917035408597029508326930437881221991174500507171543823269116624546974443634376720871903796897609008518964433425105303808515799543510186299333497827480824705340717293339070888087959951624151670902005989477720363638128524282343950238703857513862920287046211491771352842868823923208658275237542473956158506761465242531225027834341713617101621315475861488284374222250077238426429008551163021081815734568439733171403448132523989387976045557067645166768516661395461714714798560041605752374764889506818054167066360649896796691647672908865262346688854819278861148477590292867759907214906950919404488325774402200408201297588207563493411719030003949113358414808244625222121725345978026535630922345451329662039550897870545751922735180278341695977761398127139148529520202709705846315075600643889898748556265550387565499551452203144585493217952265429378165611147755937124266887084420211045992462669969526239626768611509835562771167386421212334682121199350454518137396056960807166045295479248491616599346859571403355460533250721950270826090909893333829425873690168050493197174004562440673439485990306415106874688638165793134733599807559710797017639334634904063172180714696810761076264733032850796065956251206164734256909378042506174641017378792293502971321421273874629596506791707431332283278805534054268701849677500815726599932038367508474629716004951315903305280134807919254063269228707539047500239955239634124771809779647718440627404572507591021065472995485844154374582089473175849293809858655683428156914610812358325914210992036331127673616025958896902674214710888140273547280177589564988814524064479243103054909743321115294030259512658780135402591097119778126675929790818999512422208533481653263453651643598243935106313850009944604714197221981887285769688238397650905755325485467704298842123892635646002298424928645331248646037414221467414094980103913626258080956471976638253911602639595239062739411322933746524475353058052525452292778559445795157157938967514487877774637032382639471620333764318642288659848142130328848265371020427104811460893108974148691975620263772983582825732427603762119515748829836885485868639015429683591088913343006299888152287168308239732054701250999931182375160403708844687113570444322270734666767215666585682315038134477490281099928183909042469258229527864564493427034506855405135749766930371081611972893040699309004420958694321469030858113142804130753202584873240009739733651953984832016234264002990324428395119731991283526438524288247800618871349143279063081629804764368704254443446559192856255672813002889615777193802409110521815592148064763853511969969099548659362055084448461503986011780563998315072949185540263866904952810002571357304999906792701105002219911060318281814765852043339564854242876129433674806639955465830712659954716694705380774058609773069952971473382703966579065419342344127864316629431143006287569326247087687900887092582015834596966152807926460929007527054925720430750632963806095557835508288578266785614814114335807232528622569192793738635639139044160627187431036443430882723148990723594567091352892805448459436288825669098713289005902806429702717947943674465021338464143193634302865749060411462494384327749274995346783854237065430025016795777302751233287967388270305479110047929959299950829058619223323100190757759543249105016852562237635710111038209237350557534735115011380473457038405983127896606322512362490934655225422484458735500950227416264270507166499915115646114684079488745652865023130513469179468491437379461092259601411929092079101032842937127215100770784756426506424531011694723330948149912860446214959354167654275919623463094217710564282191351456039187693815034229080674452581743312869984611917597709168482424693471138614361714739944758303551813057717894637549132854041328191084344786407322163458131817242184894610780792841138231806750715435708226432989887954433657799132244904257741022707024033737668356671465287427992826365937807422479299967096963760383495533990647820669780309811764329830671802062094035850373888643881568389340489081934276486530142134053903059984363018196076384648899432027369813523416001295161935702413076967263351253043225434985315287780629421260959051884417513718934333641790340026617114359389287695011239841824079175093538529801934475680275954394330767038816617696604407359731916461313467658838049943261032705652475703642156319544241702675473292658269668777355350674303218511433870858655122198791199079972078708181834885595509806411233326284150312465034337653553636368336722541705206499812921279392880475404952349423239780208703564015469091279330694742566895138171776211857533232337711806294661490732757344163739990108420313704178427509394884623414544960912715487528333536797676629192952304066647425003798980424196912207005762231348412257640542409655400326593393302197247847158834874715767180507155413257120610989181126639026503622489430524435416870694833563319275915233551974832918875011417773017619007730240918147126197832831085019794334174714150597612310307860545363106037236340153419579463131317642798925542239593399540136329478696197833256796650401404730750147021959932144193228427864091145208565347900661486598739613048620432145968371643273362447259557456288738935022549548742401055824391473159163282430814953021041867437120882827921766565108428226590730851708580923648989948800766458903790529851511457994527470825514992896372167690067385321545688655132245764226362914727435091727403060368724077871661464289982133113348344673818102148636841969501362572333447305388681840404438483068702102945125582834803496033779177709884554710527414475186879549613400383830942090154265539853772997640927016932136098591241584686661797253543112632184607584463769809961681888796224727646564435746071685663891821361060933418924505762300045248994699151329705741030136607652810658825960648689919906984330264701583062168358168174888276157565436098083337933266494168271215003545012612398156500720498200322479710034251986511607771848550123070841138043425171910086146888186695862787418806559728189687441534863367607959105176482418601635423002672776986804780767203389456762069818312069825489904415513402803104952987835392345531491695639709122373144985740370538588218683845447935750912361318783181664687045069314743915214273840451619105972614715912012372563303512502250293589257633143062497712874471214130814166817222813517009040394866159247643635114126569780703859118252781425238351323205181798532871945219864500317327920386280998764476103164452080067441244717352055590705793319486792871988168520224292934416143137266087944230860132802555287496023533074764232412425501021903963170797343693332863419883286302679486654007951174337158726896717729095254882336057144092553637632212012171173262928897321492736521804144861458677224324818709998679164347551461263004891827058461927894270642453146582478242032375116076644099379604116001552158888842070531124665880858448137900835526632806072790155260510474365410498153201523678767345901606450289658131954798141400737791259248089318773287263806630390327561303094914154998169100238948974966424274359363912782289462383303129169076986663257485305936487260992774450291452329229132991674409848556010513242026109632403179915655297555418256290618243055364722463037220311745537997873197045022727966468382105613651449217049549289568022283601289014863002703414956070388744585016065180791179597632443139230322426515918677496810533037756663683760748438449559428332661377615423504217594549873306336134818252994378071263345024903670468630215942018213753382854385162566411970123057972543903103563716072691605733476162461505720441420646174416245107657511543940732542316823974798674123476255037115571106647673412417862457902628489264632829015516646515280390755229540057315437369355722898769012982212852050298569803711515670902442044865094450825133547342263404163693289822063569851185333454936163152479731774465299464080369542304034406673368465352046338539976854668326035896850635204614645896053471559896426228133151030961463440327191639408395578457110513901979829249502120296436591771967687906753725444726969534656680272738272704314837787910465285493430973490447256877608428924360653883438998313654998834404607142168972990155206283147055078606235577080760699340785517061660553568744609694564909677617540001961025810369744437366061085749654848900221778832515792519807657362445758827855124529819433530736427156561689842764400481828251204965676047443333650226389179760652223453233897211697773063249022130489653511269151540933605497638145863886787884783527015186390492509214149587428918554833395585695971535038008603250344850486063587377437855857585136710470420383856476368397479752378522095048498792291010890549617132959401066237063758344753853042913694872614369748610970256194095071056061946444177218644917980616039456504271834748201651734342718836661020455654077701743625671475952144906047452391784185758196695805868022167201385287380627085962969300588292925349829961297920444398666817511812430523047409482471993466643230451817486732286945496993058655452970245888022210041314042216291352405515472781950303229735817033819380666843849184087133399079888014429049495235258811006606386821210929180242975208448298650509215598338361892836983633598003226301500045969446541011553011196098255347776236968863631637342245968362844596825443675736884206902442268696912303223424318335943302045636507602244418473814668976434805352122904740801269886289516957293104717853834145211421575778861937956097560982229786435389341455722126232954547165494670601497788314572177220867356462024810900320810731198462615420351156766788301888958516420457265039788032691643996068205365011656926628173329135442098751307474782232790301638835699702605546879947848515676744086279215271735672613099197642610736031510511991691684089462035658810893930734114621507574004364531883383682542667438352423247309951149374992695889852244734378989770294829631120752486225708484833823410756478441056165470794305604643624743861770605622081870340176130571459518742370161037308401499073531490167315593214240660019820423221260217002528531265168110468634464162607765801976928993659679795468961545063534116442391209500203686173575009586778998821857657819621503919963259219204394068516256126754137118679198712209154488615252290498456452252975546213689376661585604133886990089150946580336777817298065792884939082114955194183799442929437154593727552853076712133890904439677130119933578654091014605324555869713350956387773410412515620482519884951283599212626472345569353940380658643500487112280138558111231004643176786633147690685650066172938199614749596614259358505217630072024102867741971165072071684097707020448721461279381694785072069649258128506739313402739197260455255774933125899741473040866809008788822275694103355335810794831054354519199797370451601760503735984616356319045504874901622622303950305349745871076565280918638925724230929193051556833752679059959975897944643335734713095625661756644198028098875890516861193929764972394909569290868668168186968281841711865635668741532634874376343240146798541872791795505063241764184697843116658604955887611520563494631237460870556656920182606301427602688027477073914031943747636924484922773844051709034042041802410269679707715687281395754734625574745820239259246182349190399893305315857486124594567512042534478063596477864471517884443361222434099481277091392605549922196234768069274838318260787096961365944336986515896940808004176979083071111713249869316611695075164613129720239155009189597412693537531283640960451283517695007392902009148681245780245264898943764710073564981467468847253497034984591779282741791799082438515589311645693800195832579783928363134716448774073214051853870566666432054884858933629628000572908234396359991938270576278878189858305605319802817877927816140681493955761280069221514644908314520477192967661044725708670247437026486868913602520996892087680602492366706593961888179172180218651663289465945357945746241042911850685461261836627516727686231908911588837837700334571671747359511366895462734127039352655729193293631517748239724099449314096195110569105830123559543582990098101365880669059076928582983329083193933869471958462522461888342733771176298311966502916891956564474685291946476553044489748883456280634742978344178083850702516068445438048309851093734011555131363816143401360391370113683441458101793117952929677608971975251145547324654476694231375517143114144640191726583435265556339460328779761676120472805363560596763083901716260108927808621396843536071814275751575443746132027598530601056595303953889597650382694407245532293180149148968552222925126561706989879488438688564894863504562794287517711299621955045631861490676861693868595574297013833515350136435279498314357289301262212733695268428019946465368118009590193054406101021445144519025126504655600016981718486382997862655052748798452967715656341117564035156707738202199711901087344824154404670733768508583339957537057151982998213379830651031081696779869106086599684963929113264644413597549707525105605995771637639451791189789920767691038332047180406026943976630816183628115375428463073941165656294412349378496534699020257901227029003025420426613981830580871963490288005100650326496980919920373191746930036924617501130900627183188026785015288757100241794641635364005190893468911849742672563759267732979760360486566100298295296529141830918971821616295735983604873966135204102603677661762854037465483001481555419147610572875684931845427752050623828013458998699973174696342927700116853459228623508425375253848885344424028810879823513608685513313320529794395163228549394902528446589071582948305454361627150804730556096896450275633328211380388699252474540959626707403584161576163715564554552051939625984498103562311635521010130733269781838511842785236850107133551902797791481860802358434177440948640516366449890265466677824812320547398720268357952897084594108670887290891155311389204466068731703351620802189182314332082617145384007528259344095048373598741690413857808601988565638389294403233162952736149574605615725675277935256651159259352899670709593057598388418995206183598323071123944694681777235193546537573441322344703303225530472672352315770990857507117583751505349399551319204024830683982077959523166783963373570188504792710496788101379743541315137005259268950678972152374815925477844850912700732000703996690782870995976182328241134226711645433198321679901544515184245069447552183772687920732433404504127640958998632904903478490159414779332749037554914002043150432142863259851844798962656764996881172255070359331354948405283930422665201421961411081340735636142178480938223427858629236489075225989447348105666961013744770310633059060507208847326031348635923353017659170121421063431274317926138572535933918547809246581005778784473952873243841399675355419814015462616940294800340992308354863187328775446207834296389178067374291384657192396759250923971515246472913166601588785015470410877330632378931823617782370913673990045668654091167053191327396041126362978517769715385587545879283204157929665021159538602347826141118759231257176306680191389615334389794575703823141359879908177550225382909183601497158847346959426290817511250429802911218781635772752565585539139011693854423149512781740020620596357936301483729222755654940718294388945193476998260330100359928867173156937185518332188144063174497948920217360702963582392824162259123035547784572104342224986855876566330096076265656632721793448665336467082374990127537318860441607372656862627333213513505693537604720736029558231937927729697112324864141264964380185255231775815087583036734143108750581692539547780748957876268420313307430538331590972844563381623026706068012209774477177104858877376954341480510611303455315663888489904876432538198661100352326509540502564325685724285117186005306885814282290446918346518444281424983942374972456580589039509016788068198308275381655010895721750576105632025876881207124561427464042375665572415906800282696508415390401448207285933585688902686482092343157832688420127518695821234251444439118111582700715037875588912838103496769237215531977218393144254056286553253901216361700034062746828502253209605007530040171639475031601052512671960897051049727994843998076680690054628640182047867931872474256193001750048340496748019059129492351977409813178905092430112081705505447346181662066479463465946281191177720344743963824074318194904117837868754678878571165487432056318709135016979963512280142515372763433739569535376749991487023270371618342755701424378170274272576690823892719931854426664628694274120370762443496745549225045150084112603914429763153484395934907873036632742730820637339705911802752231748874585009913423746957018094886075676007675791747989829032229655335368842897205743151959759263037649174221649409476964102144204421427084860660356547341648535477730407606366370381833403718962539821970020353420237700301368857739925210881152827593713227330501688854001034528716383643984072658229797906982383776794410119089570091927958320183171878140793065686456879168271236457334791398132401100151087749699284745836026330234087457235378545834853377116760104746796532556656904750808322460963912209926765974781317987517316485396554694112488591511363769494215114089025651125850979017141177354287675431218854810061443372800073190619400466855884792576002489093466387970520876416624553565492168867640359769484572742367291631342696702562526849326493153762701251353606868733856707481267476350241607440192774003936263567638686967677980891095519065448604757123906635458281390503935180291439264485115434283693844390478928284273698526373885577270297761634505652968513170032291371359995940795883549889380820160881556340243690520918146139761163216448351612943102712332990819870605665023472139913441170364199975946986662816529856117002486663707468689084090432360660970652854039830238353742650021686595597290891964280682239910568456549006027833873413686817715409351911375888705132524608027925782468135593388888508569233780345552803308452438690026858019766823251679512914790201328762213800122740994336992203765654950989116538373455125662303234052107134712454827597885657999267924266715820423561176892447801090199397098541743211059031561597022380733060161128399218863846420426315665442513943311772522187665273606418661261575813124307132208595956195049283316217935490421585376542860885010650894123925935383267002119986565207945415628806287188703261191538608577343305850343049231006258240824854055609463977855673015411248756818687174476955837327635174384363749619457165033459085559664148529976082670871371255008176949962702426636353359506915442144767310601151280055928318286752315637647480922149009109530261735742728347819086884909277888426334710545058206035296898057375426287306670577950400203054445316742027884877820298597526668331067851079679754412113403944899790443265328274397228086191789556344436202946790708484547554506079322168552557880811398645094428479306678428155637216883522861720042154332871823946233306643089364636097818814390944714837922640638911775439467416889100900444926104599379523961018912727361453343360010106892602356144548636540131671427070973740773630608789547254600865088551479914970231957044334175376134622238379479673720871962653712230383118193399307777233654593556572416095568940864923319702012482290575094229454049711531367321602130243349093877746721521944248825971974451891830155326203328102041732162915462166706782464552663844607629826139440607350834291049582265997899161787447364425085928299360857712119168779970170523366907681961637429078938982439465443153433915186592344160810652383447833737184691917408324783960589775859577644155978570502789290397664137898662491596465503603693530510472689876349089960426610994044671478253247912551059289315177538306166730808550810140132453215193755082318326924625519759516674570640602762073701888352845204657722454929893518468713386204359515976217447451069368703247932435170071298306919143101022454767153436748513168250605038469236080819960966953293142886508682957551846863585714372666375654521717673902851632375690513466964391326301100501459870985604900384698681347533324895641641704985060219414260536174584839555323209943535787493594481531269342427033652757150879827435546905143470757944543265946710385797082990513874660088864972420158244440961487339118330291417279965514444815374636590508058462703042482907760642253939838038815405024169066584864147772792394494362358289419414052640184123327738661637591275172419372049607556136117134397969596396831042607180038450581676643343638868063006579044632632816393510615580677644447868469551962606094014399543410210036241974512098258547730057114702720051123658439469660488030723505073482061187468896998639677689141004338767048508742216568484267077522131584131912021196158635509522833345712797617086438337128677538861532973293802096789461890907360362702554668036878326150249141098775846392685618824622784707920785873689192162144704769849870743581127741144201842832933572022113835513991968658324316739681815087525668420557785400548124467127942904567791458298097776005292262058661041833605241861586901925287700969324745878891694827557202403115044478187716918664601410102183070213625867273809075708727626136438041075871070775140457830646576259799562192224399976343109228588002464221290671336149875954448994657875777372847856885450394901155734869247993176801227017562791314314043883477762897020210716024242940192538404371142696342294942591216166686847465440954933172296615406359274265104228536810718285284088659126082109603128099771807363610072624012105453668962504744674726506574966259004470557512472495380875737421933044039467651883189815774360218941183168345682335869711598698360405385944416793040031861467699872371650954564343957322341497408539891619410600354419865485168551855516405828605595144961756959098608173969334990371266932592227617026866803311791570956847586247819779948737047111155354056610871052642499654031502016344075397679743483638899347080609945707077065052204593459686488210722869105477173480709061287608091127806392519975420803819393463965720679323119049974536715163932383885516452910057858394336728861856736440210928464004899109708957347926514111175281198489068715477287355324018721411132517819080758479921675422705846898048050296666732350274412641303843752957964460021659805077641256237257959022180319132503507109451901942702527183828857293208427489042407709802878575503192327816155928685917178387878503463641530178360082965157387777040541403380446097772659171560732634210300539742301042845657298152089361970940309078242933919902235487909711354940591232536577825521861330654591719998468970361691542256827935525582169903832833308191763314486637243806929746944806596725110734041930606423590487192343762912986035527909327036940758924322346108424736989931537498413276241078468980748376371193839175460169808341299156417527127475270760354474677429837980864609555881996387337763764869436160547886618476547028767226783424224821299641809002166812462025248551364223157830529133918474840887867048418492021160206627837841964275134706999477369515254036326140449832827823682110689656020090992637563173963875278580855212200843662692196230700380774813484357222008651437648955574246078388223984660181142032433053882043368795560442268661921078654455816923689042347754637147458665220778947333418573932295983074992872953405492261377164397457771728509466269214000312061079681600839269230222978700183796031900596913934104934708669446122779949887336804873230447021063479054715795031435118257099662002133990807217690593658552151960336228820408247323600313820606311494948521101217925746117279370253527935359582930133851046716180725311243471848160214956916108564656395156024526117313168751317451904843845003398283957403245469603533966189811979680642684896750934841940428655813110630009745113600544011635041002019463015682687018693270868131691001481689131769143378092685339023424844540512406045655095375594567322458840101525294786346292119799409112854884151551259649478133246373235286064583499102860032286439507700870279174283655552507433285803060300670364829320896761164100171697948137502179567774229775084747597928230093734213193830352353338460504249555132061269520744957852220220549778832757203540421158061591329669035682336013800921355657318654158186216283192433646657990630255311649375533857905450973398965017003066537478681025987281773407882937411096926729586144888186075956747666273725097012228256762613770450040932761912563885960340565214743197631383925022735250695082809501133806096356491513237115944630323291632192540865177614852614602169847058466163973050931049561309518133781493946286736522887771264557734610174643990681622232880103380518816958061674316128087353841980959728203947765808055183568499642385037418424370003976395129938566602621704504961125455319203616613960221684228719223591010642372046373276992701461068582790501381601352118324696309556804783032542409387547208790564622641803847789374980843078941029011188265703817925677484908529549701173007248083413870458539203778881021608108229155707385126565386342550211398672830631656340979896746285122887508203118328977725314001687751363654270307095333219635172737729333368973666729281604882444493917400220518936176546153321070023381209348302147668785970787173385692161865272326015538401461657160308383468936943183182110415572233576286192832398953443313985770282677966608881802507167777167639693713729950885075980460375907213990024425691701612990933336483738834446134190985813424390841259247266538070289807651034632262419437996951361738110731373330439959702521959499960031103457408275284244955269268074035579805169949407595888517123586089304515091882765683280648276978281805039869684279500364213360067310331916260629356952113852806648036956212942024667873015713256359689112595778975018852950375789788655973664352411266655603164667095586454768723023357953349102758879247955084813200639503470159548918651047472354781671295486598618133428855421556824589885930880275272435268466707878729809115722035189892670665877070381697440421360406645765209909548834317019016738588369940875264982043346653968555795017237002488022024294813308793428605120239876942000036180903970227752693083465003042006799470236824190327878860732526434758128909265190819500687516317443832587500290524001564090917351852397611623711434563624544457718375302024808447222946563144919855023366767189173407956850826748689722956060689986470560842265429572722853539698372805438637024038097733752665852277201724674755663804983974655234849642093547495958093736983587671048779955102420188536541718029524953928630423576401696608021090017688527515489459446518619747320744836197522617850440648674618129205260784923065538482069194481169680714507778717764937117115011810757050138455506952854598012657616659256518811011104766437164530677700174968882860545466414306030285433075414294014446052469414857424751507315230616482926151032502532095595369808071510315808358129641027107531168279221836124090500584111367839951468901796380086270385135920096753951308955493141728326336864789138622966497428888152096918009277976838768851108371909109393705898336033530341673058122024541111588677874060636096370528897611046424356555298806109867436379695679804853229391328444097698613734035122445400523148012423510796920586103878891581527935757141646182493653508045825927933485120130692989753143365551667881448075680030552532857461373098816618901698398842194760617720377170406244452804830538207693682693863814317778683767552233542049287849697994899250053026208189493487920325169083819724974105924111416109156912657291160290974706561823483362105409023239314730396135760309490986830741996058335538102514110306365616948489145016922523791969441428636350475933081988784266593948167420586112610650970262081100946148396521132988886396792715923306558489910566918444800560904748913725811590697919356858314938009181899743690983576013753908513700915449432193730229770550796037194760421076887546410129418671947710894074902094166974206271966002129053116994988366489617585772383586252561511666272266550332536686243010104750657746204897123616556236494342162806329855732459941986982953340464400206510657673489722156836919514740345293195104426799289298659698790450784895058624211313286508212448382779082165070345739968655094554259591555428670747260293789393457540007680649638474109197950189360546061037623217611906710044355208918992036832092663764194877484780072389326782519612361443614893941196643272679259734514702482277269567697247694853090410315310934510175789491507299176954071227972977888286227779763828511408766823745238986124032525662514475341299942696140087325683195330450922339532177074890425550791987875950803661844097935722157094185172017742325254729989053639372829028534301965742551430137934396065025075633623585173767858686169061698111959466059311638857618377575406098368313479571080206755923523956344319120559369767495239068973173341096446006554756781860827492648324792441690006302434518187544873024254606649120961997565027564147277555758110468420726343606564254090209763222228662176512638410037598145846793706810074049146128666953500343225812380117060881248592636711048137364061366934848794526633391722271105845700360399971909792226417668333277724870001771078330122366132521143603418895240043943866940545946369338465531063576405327461829002181602186486047345831290964421008580181868873644660981491404766200661587484229505603540811548096834837505206282451479896810497271837278142273953357047688963820143278944802017312855898094960433496790424670715085430374698125147126095976610754444015445349494371373683171508986920703522363737964566595362826199194394905972918959691776900565386096743926457416454572105639012893754122329430445437827261260967219398907985631980187206411304643563824722976012565634381610878310151355013271873167049160348258474837434843202161077758902872508741233544742523589958299896791910679650581128538580876189301510015429120861967203659972140723877584953371888276679393187690612886639047581766155531101759469637823349110972652599877042771010074418555250656108601339787444055286205045029715324005049383535622330977693188741358297776480264658387290903340238738605792482890754371251881153986525335926467756603750573588525393903925482614955277217618377315274857590388002588642630704805455017128187974835089660617654278714735121945668773756869506902096180413742293725025894470086145240433122760639310017839198802014562135848974726267128502415670589272787794443545783833099765656878466993234091553243100417473988226834521104620714798363205440421502980859107915825331539878315366034611249363771672256097951710315498220292643618622839738196001987238624878859301568665790321248589355406818093825500241615935446703109160161941057405168574712232287614918204552949156323873874457747466659321439347792440557514115273149872374821960066872004998926095864301474834794790010035649283121467665752060083216016185817174762454241964498487616646744647743923987298706787922315124917535950016527940042860971683129828736059264094821579945244559113119572152546640220039889781530440005423872519586848082323552692455135255867448425945381484773684482806519423961186137263500122725324488092420561852549291892756719083005787473500669106099731929523320749789166780738958084861123047958665677441362798129981514688760979186070639424155097485517509844131155170527777704330396189547141603025164306912476418399324455947315890669210141645228585053454818285909632282109882299958681272477094789015883469021260472658839625267708754379728450377299526587610811859540021206760407633943392030589989130745589149719299385471909128334418656130555529129244520858266529482556622272361275991629226812160273334630808107166805755027219366429770143319758252961989259399794655690203961491400302519328578730824015969742135317014459899175031147016083205799072965757198291591544806016093772425131536318110636724634294716520742876460067916600882475347289083505966869973536618268332474816750002386656082054706740744454415025447213350682145693837315075830306171862209238145116329438247941704376288396855535888905374811942559929977287426615014745758232187316248881917067216049053888767150409851984926589482585585684786898152945282993590068633685643464649547834733379720591143513529904760259800757495255315074776550863230559780700751234177558079824991858524461828011091146471210233392769035607516506106321369884114673436018414915328295814793437201829199641042396930543097477921147573461598920337263454922572492608462245815225061971661948906697953837380746767885980738652790935114896599496749322744481099347786609323195294349088086630592446755115883904180044030134336659132473992439829668556783128389210335105506618075080088952027847126129061233029798696153066486811018359268358417126329254628676683497542257902533256602636053195687470016507999692068857681008868681564086367781334111072808046924657664115254064583941741744899586630576453752659585711061798269458946551738478451199145584137994807323981246784925979028741799556802038988775479537974684985248567046409212308130082075130210474665123095936568404232158289163231936173813648724829324643750718557663899265232821428696136420399115343834529141092812940950101752793310210658801702462326157546149378970977708027289221903591992328233436255293832061235438508558249879803621198356475331754127201811465524269410011561507758972231823290645117867864752469698867807137813847886693143988208285779469194063535931802247698579071577706162102921072964634647753073854480162902288349715899349925434256175757876528942922337168505850262237993812494352654011538027666143089295810547630848235285809197770574010385615504389889451912753303164400096325290453559413908169557471491635016075907711434203753365479926510827065727648306584185554781558510081852370022968053791599802481580081698722342330340321883023459104132846347632239009733372778707459670290654246986206691766845641239916780677156841258590395178736546059082226120276464896224139925719636084548632607868680485322814043464871862670708235712995069486503815626352402227757237867703217954494484834853841203080237020630760156302915793559753864838911301572342428996088876365791186221548955332177737397027604744401720202518620916200878997667178017987701294947833294360541472613464030836639918225018222234851417225754701828127878460854098991965258429372925452197260298761824274918691946862681511982427149361658708859149424453210582941698422653834694449199344271755373774325867113341069116189840967312719152275165112245004717141939501317543821349139442501491477507823034704528840180189171289945064906434803368948121963860642212282917580595453137736096704295864072703551012201775962017134969889007396300762633255253725553751229083350727074679846840740191815400446981546535071846963998445049904396667661823814979003552571389429265664683695756671334292529887479973172299676742814635874684261507571595993889146781653585070047379811814157931071732086547959145747594730630942759216222333946424658251831657434029212808204594197534951474014020592037064469712002701932325875175801345411906570279289018509879182161364016071179742226634877920722855325338372765800398990535190685794398197442432901766007407625347125127378409352085922895014781983439872546324353806683525517592434087303920952268432848956563523368055662952730820713515545229888730741308829268788627238356363760811972773169531755949695103075844574111676852433411149106338109902544769143097235386915078327891743481654925650732845590882472068444179202442291383095649155623691837305551352180705787766581263048970421748757259903882828785194404152263485536246281420440787776947501100273062197641634964422810761610519160660310235868088995008061740734428462270687173258430314784065849230466024938258330052163197167519834509802070335688869822977155070402405257550995290711102077226656435136368867453379649881115494862034380697473068098163815785390074856731538455651142780802367265384562038447496008542593066491005785161439892121675729885005998905852671620873989325779364716569465612587728916358261604983029510858386875553354545866079996953196272127010512268356091022148410919465887914761093743367537670969378304894060517655644990407265393622970111172269900922409425506277206855567166978030832874388897517193909167285436193016137247593727838604970695730571762708775110724590287433573015084501979862346499718929832174971971325255464335791851235594918061847708975304899025266028429041717666180140117538106675950007004603914724084523377817471181338283278529506781775912066045673210246244234146911750937544150889237248866490266071403250390861031088183344394791426214047157306899963632268111818257854132420056980840233498257959357811469296767331655851808760657340001743170491377176676708607159495804135522894801651335362511489303361670042566433839220484414239991028663290700437671405188079186828702175691749130878362449041189999065802363877088475895283137691176798995976066667095527829697890540669704090994293768999456407972695250733046068327498672224309659880907542026340157660726814604116006508901873888898001059299490091318053453033148420434391520465186855013638859299038099580935675274663190470902461914368707795128607175957232870910793909059846402346300007887154451607768507690660418565133102186508685793324731817547175669777372267982042710420491337765820069974153071373957446236793775387995344794148097986115860408568937045163910847605748037522894584855433115700189937142774458532400297738292938107413229563134692882011197603339915755747536227810858612804421096149089188932214350708884930670249123996374256670060134414900833083406486886703552833730420680908622617799777790356183486108366963026605598339033664647953252315017192091546134635974085284681676007159945866086357690708538112704839621306482268776843497270591150256353271942786924188732618713750901375718729206592696440709608472233233117844434761618206467667954778446445189623863970082000825861297263015546575895695186540619048016448641323299042982844839504519771216562814769473457163006656353720155826135355082621038789277843065399578892484908144057173868895924662470887767494152594043228945417720425885169324177679604578533841163392885970732466268088305391842946456379827155551772122531047430509474630037302905704851996905444525477309260202360227023000206868174951481454052732312129505044774951193048366347383570230974409655901433566492333376782976740909415623399804167158345462264268058437934886715459735449660233447295712439703258621391559435119080994522450325770800807578128318357026508106058457574331982679604517195029295322299658300475277287039351590179210753917542394632806393293688791645761892521217908371241304881574422692142420314578094377514025129167561533980705910851109995863243729261933613485766819999365421060806009677648972182702626369140765696225889356146825741357759457356737620672667968529037650296927259750542510861605238992464081917393703562726175534100475224612145866606371310894999835788303039958293216754178469628694976522844663328278513797954496630098772061307840001942177863912488304899900843378103615813519548245896178055901171949875338253883671599023082443485236667110703136480081302762550076592706541205083716666742217866919639511855983485210435607810208387224062615421840068832372774684145078758549109453240883965654016963902014214841696298952638117545454584833607092713669692934412198616705072561679195917791653874091077556033169347332890185656580293357335409326965464226248608280123838194458818853562998923046660850557965149742318869077721483940852790474695238178103131857517330604377218769122443700777197923773683604344615192804147884217654186926257081534710599484964479443907407826734521251798265322476823580468928470975235775899562343197194381030440571217120761620511829039267146782157281248849372007358881621047961240575441983126279107657902632190910137458909088680170377625249976406454849978249725416520302352052750291667951092807092374607916027508629942230257283172108594122080182310250879608809634791358954800419364713998678322224578991175596780511247045708509661311573477496184292748202782485555550594004595181457327386144027522241024942647567731826600369602122694768825758748747328418592318234215142950938329010527581336102300727368572598651468624349367484335117394528234981296869330988972702713104185884014663350636524289937389051786404905266869648386660911032721607021357080329347271844334065972864054287060926144565929651263184627497206064999313020063561858471783786852236764955868580917306541196659727145281749423571010892711459151626866590159574562651517495236989229718925670359478354244289855502426045495882575874941194875497906126519445531526343969455936182961992095599039424761185132095661909483744343763646522402635189880239635442553394798455950567665627801202658073248050365387269818902388179796455689673218741768547829830390954690491066369376907348141929555588281094543485226527011515804310812307554178721434463180385756686657559468924034563240917874346845021237888854250308854327153006954584536138528536834806070561831017612164609149597158402959960444638771013381084933902018578101666520751639619541293016238079069602359612137969884036524090390472786250729825403480799930236484178845438728345989585986336046098772954307003868617456329751838654429051462703461575691624586743302906891149422592427128619341968700047849334233936461844808452301076164856139976919214648248536670636144408119686734568757768355298763653699881300267888287590572807055056407192433761639820834854356123260833643211568310219109802639443981775753177054949644922850830296192046284544116102725635793898963074278157290310103065227609816557581644943204322558341844612671867453831279617143528099991718057882183238974928021497654892634959184131682626940202007077995398628556671325490815091563861431188085033178612623236610688418665813502415150430502345258358200392350438476447658148747963916634356121674038250792531759134899816744015337507478200181509922483585666328612413438693623853556426275193795376177888748482268465151886305585502938833391779224796766244242314994514900657708907753155806242167163027593871675836150607999974087549489760957054804890654764394296826378205004642448531296101649357834371615085656649416313815501751081577303598806362750874071205790689661271797200881879512993728496315132090007793348534784908599615356581198582497557876628155591766233110733988323920584575214781616410191723866602917756679199706822522841006741968255255688142998917060649988315944367426426579684967179949923451289634946942359542452707672773979068691902184571184870129782286791156335281574267015262365993571758450720827627091525798214431101542497874583532567986831720001416025231155791919924694113588226589974772557382176967027940882155591259110272787877358096148767453777243038151287255343551587235040904779590077338626326591071796024571548023719352590915821415164079283711877290612726024953269057059495529404625812252454354629286012110672226317040590250723365384009054935790035206341431452907614069109620459664301110940389859732159158700107444677596960507334465915636798600590950492690648362160164606597166848403412572764061135726002864754989384769592213715197380982558012332441817910778670640131386592189548245451762738468881984645238103002749293049466888323646395761995381330942664393408388208263539925284248636563788084972971370936139066297004184658297119892825006146593447459595031689377674097878556216631891205308749006798541744528892230091069314948832959493709983578127213044557679894296006432097117414676972831340543492321107125412325479214888232774839914797530286019967938462324857591583258764734421312053297971820971810232068912976682311465469711746340806517207208673448179962889628873763153232207538264794222155091599197185578170072832102055773347453718701917338950109804731737670059295846662235817693239934304630534623684960032707803608446691267981782576160495743785454046338931094001269818467736188489244842465676817925169477875825692482051317938766539492813972497295120097019641913612003065034358109436427980071612677786658141311091450968828461178260413398292815076512804053023025699024127621851494883345904058432212816933029369167815874314899125208904034047750237386773632268400434049992309494585038681040928210682653087280011579005190700675438674308429256944179180063216587223635713125471017010261805480472930155417861620499053923633186894427489543035158774551444922624947063676110953484083905759618088751240850755323217405147753200199021541843807312514550752727117538139796206512334059136171888815847800677563831656468233205875162955453669198621669458008183241128622161585067917950063156814928411202935245244273237701492309531087710661666999875194266845234819791020187061004475255279259572225317588218075690224636336556736531731352463255266315233861665984998827330979788047212394229498972820932453499642908192894004948288848128465667172439116733710050614965303831995302538156431767907550464887128286377867118952561899857635864104502269774707275245525951106916139330823715469577093115797477785449112665496096691852508225501425893251794117157352582093376244372799108175198025611214133055524212972328271760584164636323522061274082239986347708881477126995540207763750741032022648127865502456019430208787016180746602016760035678761224622996895832539050273675042700940816377092623308665567543116134032857273656315303568116262127981366220049592163751338745208724284341797990325494039702976953907307075499936883082225523670058337009057361603901479609133945724932450298908716689938230301408653584915821533677192044939395628683417458599773899045474050179320035345301591566486396242456849235605843903007083038876440585313842306467469950000090241890562343246928891658956198205967825392227805049289750797829434886252355246652641007788844386776510128071180768724016107546296123893210485697629766455574339333535442100312645748074490744268532481416103190332915525139677624183141199394597567762323969888197890432489072554109291604342999962154596929560327635017130531583447482827154307877832797069062828874681675768041215476076563337699828750036407790092309702412819566771866268597436808235409505859980654845517670399610308561149645693210850974600566853982964258038232126382077434425342011908464512863396604051706825636431775609667557053574748520819300533664072639730106705789595406165263134992019394368863257188320132172184398180580055398499451102840094605367711344863453530606094392565827009632218308344501655301906794297284906253248629246374088654043447013946470244813468232715700562090820964913170824173400416898798762880986934328552552137962071772502502596535411659004291067322073048492703612727675812400212062146064332121744000746658240081732883525910264177634417363660909770267173408521650775563308870890364751691985753232486360790993006703561340046918462948073902700464931145076814024886831642045234578296665430218297951354184036614161072110384985865156877915848205106321485140732460360785375213276532914092792663289033309814303962179230919457344013682859101923130475319093662932122175815044911358725390601861634205498847338500947606245399558419048425609247267770515624761442115703939170586865710727525055569883935544988214023357527502686439520515847040271078891183308877544046464835028048804195712726054291879942319550306279763408108099706121749079887818332521947995754677943180875725590891872611498395697476008055634309854818503861336267297215673736885313278382538107107749153346433353155340917135338758651575715969481050806427785092291445228520902268682593095055463879852523214117114490893960661120529046122180001863206404713151739790769155174650228764433692631381277704214242737218592967196886011799307985096522901326585037586739855810180560823892544843603955444441026559777578882869990314277192083471706945261717318899629684262719595860655524821604935290089015871342037951130556217874665321564058305293259666519214443577749245254661794147044508572782829805313880105015244273451929413814095839872094632884691490822259450092164841847227955185790133862743795741458064698404661169896328965770563515140483793836406697094767753122199145064056563646334798622823995377658544115874965153335785348417668886907577747379174070902207459981777206842787009194848854828921511645910920718234013477660725228119282788076456379176638980186010947105003429126627013043200221082648321649093613763282024926549928701484832765261790026497449221399233462009941052526860414839694665317864733573421142107600987966883920942336009894168762648383982652047957742249568095248499284165933382606786175183013298889507535025477351897994818599007969882892953577423098535755527600879530150804829924737005080701528094595248175523644498142913003842027362198467403811187208990744737468982257028193068657738890895640266624894602834371807505240888527390805430035037349715374574602058949000297208787233863374745283216919623960950354898418530275907476999708885228237175193363709722674318751294399636546294253871771180370132057541199157943188418437701873490657362472617643541883975363730628028403016480988664637143961770435517506501270846309507551752798588668132908443736184180232757877637757015860596362153275485530431021554150046888358615562649646200331654127072973265028852415337395302068274169901719045078310968042815107619327497598592722637502093529566763721905029851214514858690537377618456769943327425804902920194875961402862327702677614472548150992927144262499849505613530157670930756295222868446751131466242910663153567317446163369066661002374267915073182443547166418033482092058015814411801700768510727312260640359304033259575474486850833834562679658341445548060249475755899633992834241333024049600743749754300182193410861213078988179547879867527048613129389410455348383213333541991532041527245429644429587052546034640099312389691192408434818181121393267547697001809281951575066560996660748034287843590977416080623193288214025321422990788462949268081855313011807129073956099420826518438876656562705372704992950583885982773643405719128063233084725571707998513853011942411310920198841705151369796698550367164329758453522692900637154850380240029496514859629388151562057217776947261249180507942811748055910505089077764102437535112204466972577042522905178000058417924040525005983514718152098038144178989888453392058330136594145925129083777446294206476531140770208169715801377408501976701677627686822803031334729083463331004534917502274737968224064046049348784111092989282808481323501729110709626329304465937403638866238297549746661422233273679790963510981909149601562439201074520604015763177599479503630220123256738889246282394565494132240502041143353591500655758640648253615656503595920595054818921510794057573431723069119794375256285206797018896664635185217429711995452221730002824025587215604417128201354926099970067296605802525146287879343967413426795227136229440182216820623447988692183520875987055688919762733634035260739036426990388550589503951034015560294531396491743020299067955893738514763836725944205698151525631018207571884752599119239069590827736590429841694496330281348448299416755711575744294198194192950362979285109480936750826869562403714103857837873576840637249349890378292630993711996887413408149817560434716187216133584777458035459090436373314139092462000402285310633671269185514056253154175170854016577013398065687638136848713529939060999617499797871802679748113509780972731145939827841673179669795616203544865047063122163948275687701253728474022402699680954079002735624590583257395469007819824590589856771061445703502292666248522973103460252393401552951858165447855278081518138743131762986702277500713358777401416861570144613252785987180862291738433846357520703202938362444191968416230275390527504498290512807565595351749429473069285111308926193676800645098438082670683502522193463348653269755911692076863675242000674896051948523246065607324099907339288291556890031143022479743737862437470308179865938836159964017127210061528781048114643331949749655766010147735704209259546659817283306523388349381567366911779780515742401494907453942528367047144862426679931721733525594097477949582531447646969438753906698365243693437837818659138236369471581025002385340183145589765113210491630137164173346863135455417418939667999542756008514392883744107492108199138579964741456620818192949663209959256050239309388692888626572086235695726852090443832587601006702479810983317229857138029657144631563751770756811210019972522874049181881355853126419039519833676402281653387631261522893488045261770181442600651283410433461672446568239398059501751706161570608719424732921567306223708538586238348639415937550793772278532062106499934956277034601784942942072846030093792849385475679351255494115197023621890622145573072094379931303367599592012017730998971277657143461995383858133392784292945631164809628316713895365056688381383570206267454206141862031806389193037984216636149751183518386200820537810289368192196686792708834098749252788287487433847106707975008091579369557419252914221703390006904225197763040233339706589425155401669922926215723952726568984301846881089637082918855597147668749392644773062113357733988124048635121082945346897266445335107740964629024291814711842014577714288433495190986946770126252614934345803620904590696264514861065396118502761688332986139252342576029231629395264287541754519385358188894547078276533041489563784041319486300165081802999259306458612162890697469971588573261624244130330164292085248568457405461623743998463313698257950218946129324851788223778766248673990781087564212714405301875516366132181045025375104949066064359008047302869706064736440314834399435991659533630528438344158401079642097412441702296481045919813900736894807000103603023515552284807877251380460627935184401129564958854534981732062447280584866122553426473005651745187893459554211456495971679114863377072976453968578656957455877942994846203750241280349311882643963729105776714586630999873071622877376085866445040134272177797274846273093041404059144981464063043391101096263299024659783832536703267427449434368823343070911868757275777456660876681693260891409833120469135124356537259636998305944258641783182150973353656617484598148505812898125475677996015050817156746143904728253494325334567097494265813364477047983535830506577431256467130207750923757107564727175175385745430680486511749882633657012053734849036304653074327903336739350295882295379712828703842911061964145922482190633014291452418514799541781222067856772171624131447918590624951778864001621348015760206747586568339420764488027976147128793167574587401408064143711028594535649840766385667161549769726942807105765910978944393102444933540384080193095151862327917382262387462582093170932274762050128733695454097243610755338276930515277053946298187065168595895101386285594528495456915064986211058465115339684059349556711052521920616881074831521750534197686722454263144561145605995346152275907425895972980644440318774210635393452124369100816418084684736991011486117174233262319847326652893451764787760715895227621007361363513378610644609759108712154230332573340915650901282138927582492201172219952632266809773145553394427831664159358962239992132469261257630646110359313082726887133570232968424251280156970533561854515120403551518704992195640346337467538925139623694861772272371111633476667334417519641378525764336256593002872366117651515999189101820416517299782432875123195342921677490556582463028491057807653044663201938055449104059386638572140333069600928867162269854559343747010003665401110561528335490411292153182862946946465002113407872957821701508469508225846377086987327715731994257952869045779676770085622956826816900934630261807291410338780239682571743614605855399087091264929320592749212176013199406776131535197187118255140469825797029192891254085749436697913516259232915645597838284494035313224762778135646833451649043165398335143567051349403041554851460030714771103243156305145847831576680681736746981857013319644926846598050340292397187955540039587840375147663936226805925266435685070986959194021296328822292691104628140385938227863636104555127867468516408632866250292443464747661610270234543318433931483841005878755295666599796868467318866610730503471383961250391443132386584523654123445073989587268284251229804496427288289301504386366549111059076782028845149947641437411646918277027326976645458894372337299130821861979326187537797820980096094581682561120772820952335315102512389705948111719665774020697478669589152430801661405258132140207072144299947465705198886387646361017378265322895984686040430193197697303821837156770509991431200496654972595235159932999191232713193315686320136749211562866287979182625324238333331977841467639102316924402610721268110227418843736367022489240469489029554061991507988708233728437350144008485457967944406738704895748966277501730302481906786937204933205209998964652560588369765026520964068102457995184924136160846799159307163588676249143468007978172186692084367920601711165247634228495380908333798489336284237659785623984451599526173830188852285921238440117564381042392771959520311744709843986104329279393723763856701563215096516005241799704287607468619022935629363071007594259381120256511165679026568274226153493256439860340142887079140422969853613926448937317604292361572184928287896331398956746321260498023874942617161301699788349212530120025642212373340679064885591031869237939217556909306858141824836065282753218938543100977683809484641377998766223376795016113541907837005023702540406015004777604562241473972698536391919453630880379038638979532126829639063707634262685573978036245344774770717506096899750426770801259442904860989614618539235863133285756808443339263760143132619835243022770482496642908223540880729723039605473152645010295149153950911773528760219757750085194249067884912754267325662682963257180958793150494442714790432545260637598538320287641200889135107288454188153496798604456594359245736897017524832392904725823737049621736705116187408455305152099508755672396381163029513282127086778007144944710478955394518214865051242738515769673483995405537270038283175025337948404883674690157658607768436411587457465898414071800931835267701591627426219651471808140027448426230064708012528122310977221991377002802790531675825226652905045801221899942425141882475539180835747561603574653011998395495498132713662699295890866295921695353387674483854162128671616033272500493643744632106087879992201215509862478320357508375192457400082398498473503373284643981405068280159914195859228246406186761744287201411655505724815530714854898313541797306042027906787039994387022218774995022258756901737753409664729617892440705811610572246499147448212267161181304684053697358735899917881036675121246590101455913616364156293978020925588547600379266162182539484598257404192345153770542247736116989426999921107190910659282342773172607582437112234826275838130893608107423158115399439373344698530849119614082855638604751022257584476445876039894986780988494693264306751536668500720897059290473260506013927421460519109392305577594263261882430177445835599772969000384496065650321000855628256866698140182021000274969985501337080828658917378303611810348630156607899266495814471841157901054907333066234332151817784432511600653509489169590728733109707043336461388617778068631884739872141747065974382722068962825331773226904819615135872167796719743407369416877197155361499295220775281857485921831067599126412774282868803399822948744752480390774142539422909843394003399471573959148891885205770511371405278245768684849089015614044567061381642505579971891364487164410743052542129916337770522585344414576589098654533186214020955241197465933597403865007085031588770374354979484644214297908037966879406012343245039999459521376231484865545780082565242933113327929859378933813863746672726375526069875116492554635101546450300101438345086158519545406551224021615702873398707970420421785908560015020857713136052343494040194413817795261157345077494304349363638195857460116416711026980449509780740914976433207643687397277847997615777415090505553788805122493522703542989273657666785998092658535431744818803903659618741272842196090748248117392374824822052909998807107094641339531775976623436661294981315650929794177201481277442451625949026117058009964676328558673713111116146047893519088230878682460300720468719487861868090839561167581856448992015072320259666062350061974589811312696062851734570152836056994515049293715632333186766794645821621429655449483533904172436583232741797497228561885670709363668079370628045331417632085574902753245955322381122039639358427280431709013773017686402039139151682217130637508725362969792058278832273064022491256270797069080378508518879284931714738914031701059698918459103734345363167572941792180755066253285134170020938872005671520244963744235063334625066093294349045732029527797451105553594739480928039139928707388049499246410943099141139035484217965728660222289210754374725747492976701052316126572473841170181205072133799859250238457506013328145643516369440494949763232595128087449960953100792709382899504769804762224553964936332311361094200008741199239338936252933022542380003417968237187833240143617597223762239139897628970097298099879914220318543848068932214537091635367832802674274560888192056017083207185173655349388961780090905340438547560762647385464804885664770110698427403843100979334338154483269585619942681084744681234281890370662593615814533822054840909867478051652247897667195983600199687391727511073347180286585849818036409883211534578826026095461644962294550403205809688842630105846055305584663224664770323812194830108940821368420509939228821423123604078325966526344674310244022132971926911778288253696375000426440912287003369027143527940708539987181342823961394882638397727249377636061972872607384322372175384311877371509363606019052596199786476048935205971114981886733625498500628563966885851302975509979060211956568636184201718114008141816723757520917972068299745664218118655080449059068107613329103472500966560453931301797684386160048273928702460431584027095232203512909062108452706511060902042409884599860634447250899682028874665510980859002573642106336610964117142387295400867711384018472921467779291538578619780428075320763850911515431916021481886612254536636149824933779727575655636112775366065723301416089562429250788293146136728088761374894575849959244148418163365847820405110074202952754471852118212314529986384818764406468423508470953705157046901769140690784760684205379664996036178337600076223140113522955116362702348608240863677528023747381173938119340115503109387285824873601094983389327381712857195495047305164085878775578292428587099903080482840919356577603139365700964871663929712075982541681504154025262690228378276107673360090889927355778081452272129908436248303438626351216963330237243089216073371601604144592423857664366338611488476744024748475886897173246829357656704978705046780070498118678478784083355642598771852160943803203298713898455045772799239718506775725916777503986111921415295470835321872739358223823259602016880305113617836432300112868695415313386441604224351856665240853803184539097488468089663264215026903243211504127968164851089385827053581106657980264326844847308530011299002894186198592491706261714595694772372563356669109507507252445913695919195836797683711145028053095613882672965240175568356281183872980602396913647208760367743265744273241763522436552777462256858797133983944935524140226450874826672673979994520881815571723989467548962879216119042182118689943500958429016391274437245836070132403233213355214606011606564778986195236240276652567950601800812980399202301522401720498966969719233145760471466430798181381862238826453818665107604794292323031314283994657109482298160998753315032796232988645689273122079936395228380439974392439912666520128306622270692755657577481852505698059342194122754684176870598493652834925421102505418930836735586711808112712509701440099432498939510980197966045934786438502894703614242941015383412558639418138672786749241510626908624651251972544243278920337294377914369668177924220670749772643803639329402664533749094794164081715516040130376906457561434443163928168179208851715696952561680702603772090478533969552080272159996563535396703924450342035920931579350654367624200119670619624906396665745450307637633561130090953867298799398353423481924322461285317182226607110499061268271762479292864374711091547027896275925388182758875753518290203055917203028900206964762287634713588522857035869056527481545221303202764132282441839954494093648483404657905322120575823821963763187136491453313534696508834855447919568411696326546683057189826899581906068898412381338849195846480908768082482676785374440604668299304200281999838158697124712023158141738664159894793812076285009789277769599507396092933855587072333159312585026043646842919088050490026379352684346516119730513046547848398419725382924664532782456318008901296374520856978354215283251379066718500734504342844749264666180820830096757551114793685445953599723084655308522849166727229215186956505678712046447206975369217047731281371618414431403730855632822852932529982894413595173609838613370897296654148689518289819838521694452969806306136843159835243392351393288153754612574603169235127591249294251694257517091806288865726273640380280889391227152606501948998134781252104543260944590950652028236646378172177799172189493973777661989513936367154087157898492303461216514246439620782448945787320045926722685623322284288256238165413834028969990709642764438537095902100213494529701119315634611384168112426901329464044894703106813330791159867538822654592478374490971121076396430204598306633276642024958815432750924822088738561982151893530830005432222807446789935911092191686492054213765752399658834794885172694325460856559695021509121315773245305198629410491143927052182745598552129521863588766978505681187402906222191212431834401740710585261233366118845653592057870009569513836469321602553116768435467240914055559441677365695199530448756088603848583417411601166117571808628551060215843300719432086452278544524035622866992453766216141153785723975826330622144518587119106477174575218237152355507671109391550143478180900736140592684900632889397561835850690819342131392861769665455210459498145821678581412685316784384322945200279074670211230437342617436431539226400776289233733513422331496636605690359634380694365182701068065571319598547481475771441404528879866651558364827624637738071217135350119249969224405552814659443666613938187720051296961778490229051672818676441711663620731891883530896030214886563902853732395494198333277596285938011617313771515578730890229125895127688037153476127001076940942192522554807791808757016526152196676046369360818287094680648126898889732602724364410776924433258014737461846247280801549825718196271273692251595891631498754471338324175187726886094617215963011510203427660792005613096929488273208313892457585338047742462712295363027876875009954543286755496907557591935642049708700849988228542129722604650601700151104175299778344172442208442710789078702051486269343860716457379649532798811035443058766853411427602198812160620259431509814535176695927824502211725326958032956029946224069740756059051061839729445314454639772706549879956961089180281557188233993877181063364365468449104881906176118889118254401862078025276810020730745049160814288107253273332498360858859929480122041860851929751978294989141551844806631445977835021159895741037796715602960008288208804346507621406677919805132380815384337831950701527343756885930504615546282681814513135150260255360462323344792353071164263137132890983456486346640048999739694597952090232821945898181798228084866706536172741741058632730255147623980793529581002413131496387692293571282237094242131599662890031669530293634832574581996024752874123567822160261414140026825574506970405716274636262629271436294939224205826754731440696899097773271519181398499791927201884553658169405971820034611885745065663263998100644473767665958389862211329403274340033280139423514258590785193601068258230373408978916051708188683425048493885909178811499789914853000031006506158778704637352011130252936507360530104767217825366280871215556516559205841142152679045071644635206103214952380966119398741574612063408473370979086233094056413634900076900940121327336712022446663145541812383387017726694065353748074715322539870610179300535805877596920550615712031832812279710076550359238148506208615632896064900185606671991834929687324913880513242431101131158506560418322111108477578088197525967313327155086733073594513596052938287904951277859811244016758724200219090823650598407940848072647170856645057175395038098701573395899797499044414683469415039267152541543056911160039059234463757927428587079940831492281733313668121570777183134966563124210307036668539219726376074776793718494362428639091060996954596920552297314924813354881263933879611424832592189298167893278132701104946704227742717979264139467331349635056175525014626063507172885524741154246462477253962899912402711242481410575881186845491114446441281712626427502276875112988208996645080711179595607280864708114057663586763570179184613943435324659685915435892542297136265121211178616998499940565853840054176581563461422608603828899141629266119106597761238456079745615259290583433781325762478837543937505083516937074279762989883328336172834482237753379123354863379319965074718164933844174571836084378209046815757094368892642193572499997643310607851230144849796642552227304840097349114612586152375378037360469418210866728158252577528877938558248792204002291851401702330299541453355483330854985226964272959663653113170042522067029823013474496256170156618599481399708700471358145221842621509989048849990641309390912679629018061313140119491144197904575126440527376907104006039418738823387756214613312928232354516684382144611427613989702488972618362481061897568391852877081908573652624046890000263391442424316164341294405633324062757058296411510690168490024535940600677710968968060865160856969204609737785584355619066147408135533364281213038554024125885432800161461686137987269288398893584645341675505632422490251983579644165236822183356741279738168390096455490511312229943828479618297902185219827223189028670532732287450559436272972673873777466941972903530755473573725705916775196032520818980611841305070473649015567518691631934003626153316026320523508213928552608104668648665014249638643086634841675261210165972417878475800779327835759112931690792031440542791317830068287215163451715195613670081150176245008087458477993328695350839841230625595043545686525923129021178864429377370598980223624875953691082073209407658054450511879573509654644078154687557697574209033692809801004253525196085561122149466196064080643031266943551503179683338387062038728871442226349626275015716231494563486289964186032578343371104813826001732069315127574065948328214375607878342641725477896393678602573289354641363214738647559578518096390614436743775245349602359376322789346820760116440072789150770435931850068921516590845514936623603264017997520855108343494429152376341313172561345484527660459436862762254005714868749170304567535484852511816250514999845030285800314001933617489145878658116211500777457730421001779058313254662379944461285617781574185507346356165799505733803677840555239925557313364751853089582548306853194755744487957736726800425389282011548975192460517585227969648584917664653470969311479401867643832868647155357680803993652672916661901622083293381666429096387883053001703583853633985224894399871310279849057558760997159889508731309572012417350745262888870749292629996526937113748310960577024302318821973553886061568715206461708147669964008701492170125924812550427713923627931348276606581434581561968791145125212469810255505646349309942733983694695203258117201214378258847760015403699918629812529806102939423282554361725677025333412817123923489325860164748309087226287477806807028068633850980909132596451666963207004355397347671836763313828615624252472252979295852741089537989169813804653622555535617023462257228559478673804482459562726117245406133974935062213407143754693983967778031306376257879923036750178327295700942999994772639382548074633495760186423939360726305571716988478470554859801969283934981338425070426339869124849380950485676835228866513542784118703456222731132491207221167007767275264282805795156627942701941638509776438970427376944544991081580260395027030620400255799300527022682231745752038408008836194858993162103955755734953335780607214209815176997700468476861220726691881002344197467224277348401049237422211886415274179504271815170105595977004703479438967234084515223929101383276557696570610870670588613467086763439086437862148334656604362498843350703333190691297660208573952356423575451499262133227077523926562938370341986012847854550712415166901374576317422885920950789367488155166526178231481944794952621853928726874277544065634480955400259801190681176123918750899666950159895801200787267580044433321310589426078255751993035971305621203386861895180365966164090425093521976568834458699043670108234474699533025437550657300456157580843396931894337912425916661994261764364090673085453271373703997236401167679217800906454836228826766406926830277415896806395871351393810057539574343224155198674897294558046635030461592501869169977813548551299019729792984629666991741108199033751002933166512254465740494971194287538558293580580976270015684049657300677552201872008570209507583062416679258309809485939327144385070488808255616955659088099995516456567629144342010310682655461232246117518395583039946591301405798908145731768240591208554069311207184423605319483612143648451728977891675353455421977337977208879844883179777055947736421060097159082296983135131105498984282407582912030069234411606228231158928689582610836586215946542120350091567865194399712453124044183113606718986819537093900135417833434610320025417637402200289342633696595741451488498078292938529175460896484578193945791539444134711945720990009614825047712039351867769212482820107929309112556538522413832164066561582952404210462998584960461282194612000248790077868027798835802961453850142851085693022199425852274373560324409067621158855530521103329974396165447005980537880622281474430379860406202297069455687395573656675527390768717580298135402354027380612328366518690281681257403936799534362865662992488488632893124668386590254788510414230746002871020713193426700673439353427031862611299635420739645969623758242962600692819899559951618943582432815504731761119837760922647936400408850679911108145652074396360567382003045521762635969990707970047516816770182507444614389215602826828783352038326574821635864103694668073983029877159472823042606148395966146524701506010901516261507319780094912865382786969274871426137439241377459457961713207476703562441917222276149187591540748448177201868956272237551171648272449605514013078915260189916187781884750588402830155561518331025106252892515343046411213163889997156359350250811543685067076229623416626928869798022284480828470048403882929347067780157567452459891471332774498689424244795788380508641141332281119859547454319080579179488521274248807129423820328279580221551342424821912867249916043857337537384271194493330166107989629286752922614476717534796677744726691909292961694970970194839459044546403103459908641362833690275227216309838519702135763642196399212552787414091296028223450452292160775722701550032570241092353347683448049305942682716634884246860634481122459879694604913498102709171681207185124254234739752632757803096881773296812160403943863597304391341538778858183231540335911731704760758858578629347134895089454716332873325913457148969682400279856541482603872258712010996178346151449945434560640166954638401523236248580011747408338757538330093154930538216286337209235119631714755287385433734483255624621322857181313014992511515032811344054294137657961499602318716169112076257031133952152164233995717498277601005715489756176486001826793780863412160168785015757349830673724184992491316349416184878647329011976239664313549249039582131634979354704050403494169605898943646164888764451029912669197031938453187608213513068112534421306582380353121815409647405956115624687307715827482946228048925394389676619583997765950186396139077689972679273343103008719618370230817176865265140119539895470420232802421746029411209558260751307131917094134465929673396999682476323136627807505175231920762381793436477984633650745693984874387557463833724896207723977664123754950323611289425823490468541537425474539437019355019411233578761249535440066251274123576621084585250907355463046580599198653764114635093118878186809720504742458854189508190644302797398996535929115826714872648607817986845289153970513847424667285317286155028461362313560963910262321481392047714973842288374394825129010701027790510977489926838302935391567635504516383155413648559941867108356459733490972356168883905825857940523863515577398582243037190262494176171065350254867502219063962639594627517055090462860909693686497906582982645533692203773965486917625819953821099222684450484489866892340358731216892572782536444471985799034245093216242714159018259726719689921028350221680319025913832347393149880013060559993286798765667724621674036220905037250367490664870551602372737943165033749173914688636311507305625237267681473411218219530659265577920211275803767754755099861500099053040669797783585737645824489055733258864623161109852244520822049245542408387838735990567854509473869371140584610411582487083604470394013491952122369096903574567065042382950137836943693869822959751952982080750077598901102985255894033473824845352502265050998807237757861609354590445798351959506281042242022012086333435094769317452644193250974941173182410401714120330825621951574004889027834450208519706133950004228613390636597789159336358711835483263523197631370566298965840594047620771517961510670407607725988117117116687704832985809778493478473478814422942267818567441175925759648822540963209894537881862721146365451088865519912008822548159473979116557899471966998541608326019355243838313321285380983017006942373727564047183330703909012896441455250528350291807101948636904809928567906992647052371889862297654589779766573285899420063651213032445832895713289684976343118641742829512057971622440548764315109592066718451435169548012478648739508009888403217627277232767142925077648052628238966288286468890251654288444947686571523857447807781275270385614972029276743436346057085903066018456107115255306839839989534402954010371511364286518845532225958249969041956172617322969532022042273842174882428762520198693177200043784335043678004902186518125336917449862203533414274250383064159288283401614141220525986142899282334348503205973797650088327246400151801366054685197540254944004223217639187447323850447915045068532702179274942063234565271317072062529387846038372215601971174556725144198766628044278432811912523092508703757536572509467819489352150775840185752147018687770692817502824820411486054606651597999775376066879185358629493155021879786093450409054355184735725748619274242459994054724127640412869943314082390448274090594256298903749685046546452729089734018659407775264031777492745518098349639636887318712109315290812944204212377408066323785500640354488880857362638744716504163365797721351298157018968260996604960844689042966777593410968104495085076471957296612742216991120086874481669818894166161722466617461104612076533835470010257665361818834787669972081806748780419021544557077037564985351405093253279593639453999366559234425297029717896290715898124685140105257887935827846086212334698577652355903166436815713240468224100424749233915940233625898017223600732662418581034268193823729467650357421819754181749697659463145311068949033680688646234475866736565856562846875391349585151371729399467641188091674344300548113903150821532988956643917562302857578961463353734785735530199097795736741573887869755928320611439496426553120997254199971068451437850975182889895901940798555425441478939712680716219552634146055293973687497403635602956868934575927132811379749739531342723138638980310372420876400224029592629274750863646852685525032532868314685977965606099290583666704786484405723557624262553428235639750672903544277079798930774944772191938522939626025849613179818052643763668804311745080105832786834863445710240329307922408410817506009533253448747693892831963733373690896882236340116257632760032121432120861792849907848984118955511545814295312473914115405371616940587076003538445966613605952571967893064027411139753220624720101590832314143237461779175970538297131664415816370762110685895229968525020649550963558347842775617666197923818285333384782433001162663625291919005291421679546791327371920610668112748908851204959525744632685840652953679787713767424795965345510517287163789847333278454188025286384336168293247674260978243379693090372934082823131298216355549512278461756054123578402019237855680658270632194727160506314471689531531085046728676956086412445488498836872835816334476404087068037220153009820827669530348058487695488090369972986928721286016690459194922717020902887747847508678257380877835476329136377281531766204015600739848642219636336735221428779160629651317448855158454669048291172369338837004758196199517386925039874905093883489071861334354294895991339374027593639129004513167196496743405637089834348302518466087531906743634250804643994470457565998470940743612737797521060115023429256201986578872818752204209388129269923286045589691004819326875805639880730202722251135034893517688220022926787351386275307145993835769715876764978989684077305492679551921446897276215149080483220128515467811605097620586185552755011198731590537287444888930717895600614307220187570621589286330556242421303852407768497114935051489514771622781167083304022993196784158791329106802646867958871897163785494589046611586573732961141897447451563115263095829081280759273288304717885269720935925676723518817425793214709672067178201849831701326956974253693285760796698390272002850752957211355816968593865680329334632984249929380310609209561593260625554527917323216394338548165422104245468981552898652517382762055070833450327059202150178276709948352305999922300411914733976662823902221643186269389866984783843264320757936751252862303548843845885533414318728469454226936953676513908167019122911617847418042175760016314115251933740948065473704078318614406306085233487112260541108454393199744583995220534768896782220272028865689087346828253819748194386132626482872220081010779590162430915711807700824253587266140169453576536522749643384668684806334732765450930365521044800072911839191465823736885072824272681485695927582044617272142988987009150400659617678669090087751163688215715645945171387099687715648939068821930309128616650575372512836539374994139974315446255506355189846171168494431249884664115860060689813812484074773605920199115793725798059113798030220134885909553294850584235109363487338836421170554890357518787136364045824311212430172864615157259815734141142274017353587214321415860055460469460947973197701647749536264020462632442765811946905841328145138899392685374908991224053046244976893130850767049757564468754645664361178418949504347320362657636927689577841856872310829139383031820156492178122696463359026195732527097449519484109965958671872316877901204397413427793541760867502789456081911398509895302718124360560084186855269491453796128977073436489244746191036186892528815904506503556298040272444310998007549596126456279488296582707071315991116260426377125230296622029360706694529216544121533735223420271756004436276443856952130608631382152522147651573261842765603982160772859218825851793706096239619329717387308867970937524579048482081040408085723757863274728471834906270060458352907742151520084805961676476743575373368099857919051842823867553069368987784410263887195569934851773197244874581160686640541956726709946078604214009044954343217933700200041703254340300922442694598993014633023583608999972298148806394628542184983527437289936026969123784206309144986144424329314912256750235582842097347391841614636704892832813636324935423993241407716745298952094674141611908989841986527496932385236064258015834926008134315193293877465487221591172655904374661564318473925769168266755800996243491686421232882616269544999384148822044184032577076734337426011761912365136165726414242988586337883525352205606757487555309328575371796042622490265884688088591076382432803819799982652291189432585991330427289412564310540064900885501597335254999590604862962127961721023882620627245631165208984980191898115536180796090483309469179279033178342063303119011800172564394512238758060051766868682536540126657525619514450507038956391889057395084448905918938935199533798310156515236592331620480441660927226664190261382030704059805883417536654309985821179162440305835234784232259197348239590092127358680163261653892133553594539181662458355290003852200151616008048003639140644476977222408991441824214000910400313100778425226069147125967655492027286137998043344887696318880408110358725472040333842511399229340638911749072471727289364524396025861955664332019777862832893660370245237836004910715279543157171885259309218611494192380349734386113401283220239275884618371725626237413862625432348378021763407811634381766081424326097086196998437783287136323634474141923489591581145329894255272053667835943664174212277072489077288080864741892311149731011755894646651585606103645000423571868496326528177144844668380630823986420494360269940107898676851978037549890924980748112604746263665342154205452869252405309271650003358769051071672891534156824635209866402684457285499202975761178006547575316904111945139194814445029220037171688147773337333856246802627541884153501779679760383795601939452349000287580778688168462241408964943265242474090349376340353222945976183975767246222170951893390312023014258209488311075670074328690773466190700271260220082653105876802320775746495975006732404844629828619375236474192891810937896591481037752044258854560148484280278284329015740169817484337051126333890625441496527180266166566734566226456048685165652084553341564809987108889934777179548218218741209538126147278791126971141576306105628452409182151660064531754346401232566976452227659887866029586623902274524334317684583513678732141183184391601489199674934331194152566681649680912514945695328517597576125503270696164013565032664838769119844153251419711946381293383467325715152326665518726739844697826760644793494847469657019674431885243307084357770522225040831297473237685474683197108001014149527931681796053101834304275667136331557857881734503257268074785710455767677393248623776279384859232625383680439214086653850815138486455067455112544313223493005964845524560453947582928488881816115244649091123994957582973090254679136766873706939475025872484612754959459926915427902453444313862592586905055441719451968060488303112688143592766692290522202896312523320246173311624012266684658110951771774702455617860257574774972448780748364851256844869741975003675892027878630348164200720363032977400143434376419016417198135555197349097495386734382426614862314453367804514063994606630389420889617532647425814640378969317680612038826443345138626017134114611416559391519641857746707681809670071050368767417789424961833911902693084747199148149540460324516538123785788907141478473303988210263875272477093975837757294548691407684255158612610691956712835159048981093286826265616909529939540558358938841792628133380589622378950238483546105757143896917286390787153891654815157419021020145392344452684496164578837451351118261562077309739655163013611186723872215480628145408475766108686698222391633786993178770846468652273577685005223356136536883670085418044850103297043309954162452259444613508029778027534617570271944958881885863679477002222027395214116281603673479613309200691464093259976503729446094716121524649117841588262689017151586427689573576945980825378170655345045890936116457352342326973237826698529820776303839485685997704556382401001708390415261329977287691938406093037337287777449565134687737343118474289110112987716224050587444610209904819811747500771736272495678607391532397900453141374360528458793872337189759331446444998318385678396118962238581501533595625570617600523120543584635337689376686231856705945910310618055890846906096965585704850240924850327704575285990350436285004791357716298881265048975968335339574098610194555302441413729729913828779178094475438338995081846931331593238078292199232439450029088180385325684837570102860098122326848775525927796514848123896731589718162337356831059285248409499128097778426317010912513591333023565272720515944755218964600468598551505237844499113483880493288694100368118608081811996537112988322891851446153540045733782070135536908745244881055043342195518783922084065525389000213826819879813526702356150122537521134424908068946396620218221480663209271194478594068772469629834182120148352484533806529626627867256643223836771046934111477716912548778924548713620406704125773105539422080601982889208954703823167731946668309401333494727797995350993962684317671354018755098964897299384015420876831525196928421003974645143924535940218505740661958862042075103356749894356386363319971202132111326573530778504650965452803022581039416971548877134925447659202480865413423273047017753186103226460936316044828509234985359627198666857969288384394792129624985319272303564082733415304610472392150751875355730614378029080351825965302309662075004611403764200639615775818050865128718479145333642107488878773435086415246115699133065523304840121728083084140433469163739606647681510680508544367756372405429221103725583904362068629514363870429016131211268462415749251841537005703095942453183809571743035086105400488761439699829146098238242860009067871989995730131785774316620764212888866583234106557074481916297157363745390469630005336545473549069370778761328616643252643297858588426353636208642529003316521073612198230843409406154274934091305288180780995103060155578086527549024242284557543441429500019600584896842624934999622473212975739494277795458455385246548011523301099132453974311087341456509245739960835929404055805474006825712429865552336679182462553848049954801313051582149994340857028969645477326590436425517913798646403847313207852745528104008650924377149481184105310282261091067794232839596189061188579456549079755858748630592705208764672216383914939650888083363563280146677911635535494276380418328993782946985379642761808859211261613498393137495431684995566709802397925115797001439326867738511095857385282223596037620689753823268582353745672155746678758182027504177184615172891266230239519512052161958365790305344326528707659620917767880475629986892848636904154249799970734361880333741002733658195678319451796886648597780024003490984237671990690897987392142801320884532989259753271423550648653443774956417819945027017733826847924861752399342898211021890980966229634328541576423076743341767600665742995374026888641615419551732725749778673075273873904412727921478201990179904988098865901255176317740301778649463458550763632863592374197641978356054139323764142575531894337292803631620907455906481643889933258448873160227178428356654746264118852014340371223766862387324646114221654151099600539881963393886589783235230746127430452644640404848098678945632361888273999449853948236205282210303814075680849421077663706034008030333213233195550189880562094648628810058022921709188518498183495682590628626219069959785345217939770087289674750360932101587980130383025837053131836973767680780620479141355978172923553954236564445395081386880407529123431358673922040581703875378018150135220763295551644509254957909270848086087953776029947951432621875049936331152049823112791373178767196564044117088449355466352541465960393313393615145021404658265613911791922816072954500209643352698830050607579594323784009507633069138892401878795728744008134115294244884918553198736596582366505958429442990352531771807266334460430835453607643232558062175519970738271966293957895810505111961592528187374132969228397738181894373222911752786390915054710946834649960042045118736320127601539431685529079968625838089963834395449338270281956837812482761393548420335079719787733677965015386480464353652270943593777463499520097091106602856075676715378161962753989939341177687653622856095371354937407409719053786931127061922721007023868514439115339731040107526427219857621039127888036275561912175944206312446855101200609875351846956434938073389015936985971376891960605746951719416130856047226397343497742401161426923854128775300036618170169442045225004686425016826802650899982255202588437838787340541055569294495763075216929858072197017961065281520639212088780753935960263433878313299507316902729533711392368935846701798977531558545401160492482098953175017622702906195585231849368120095782364041646673988546043678887639883567944165819856562807447206200493030517204775912296821028843870147311322878852731994385261301983593136826675706863095187265964984913394528440946833337956723088988582121981014684326828179212753206630936811036188183660426738105890250689631799977575025589439346774630350084334204063492575819214493859345208469527304553846480898360209478975544849226392848463480627157392721300930460897354688001006369502611895368417487986219081586101448497918651550316695441357150927373064706158827582585093326136668503212839235956088764028651746129134923252039368765984747273705397379347957320667872949393282840778740471958753613225855348130238776063663379352012885910231624652398620612335945525152011090587223874416547581148008445559891989569414850048222478091930773925379348099330117039054301526067643969694139195866396926825274393996441230726691747048756593827257419837096254257863238714300369649644070131056791525478241684091759947089223465234083361393160528949568777492815628082185201727743702928639826309494354988251934540589614010879786101667236908847159221638773107850395981300297761226926004551565166375096296639071631180425993160964190591427131899789769533494195181237176322233698689793694686684714998799065515474824975119788503167782019682790593299575660658613704102271788936189191201184673813467384684560825362720611108106264239301952476026672984100769692281764626591987820836781800037867364194999440387720338999076974638965490996493053270704398331968988060597256461222642048015770930412343761455815585143948010545160874279070338506078687310637877533998864329396833175064780529326994762566709532707956533298332136403993805005555645286764604923073348646013659705336514384148026742233000709216669150382174201670777853955069561827763239399342710309122363970248279496535871306459105990676870387112433410327773860428850211277322092354397499501480922170811440636181238925492081818599593424531600523932851794544777598757548035525335584470655583342140487364968913179255973042346708923626503013393092941364254686335139639683093476465989045418332766852556382491954460898202369418247060566035857708993267001672558725623081024913029661393849737476718907765321329634548152058129634912128967317579253383320211537141031359083411583323996450189154790965726808351351327683146282470552322797128844425453374337267738200032574287396097964582738064067067181351694277965824462558680314678727327730044906833165714200271041628883510709920314178896734873907945914545734137407830607403354791063295656338533261139383590155684045907899923487482110638346960362168256678673404403974097274688434129903173082174385479889257170687214246318989344446983886689493547869619766418460746692417169870245400589143479930433970623979516809640121560176293262039621915622503464696721517489631790075840452472670187691395919545521341513032419013606905970287170270929798010188154830628028705402751126892156466364021456015799583244248569790106997132125078314053516054087516280883587152297466884992462316897794851776599544346433121073068137437620731550564071808564186325057438414729870211686478945573063924168120370674896359111169422837315910785619803247173790253647173906796186218256331710285657340974413665826742742439613102862783478853763998287933731882977983814877175458909960352872896452512026619317102284027025709173333363196622528739745104972062706708598781919836456357020135414027134734087332338065461060641299504627809942301998523665007604103001603286200524742422363043582595341466142914109227949557203802377573627446462252882594369813623618176533643372647183069359735894060668379404997781694644415687456363130968216200436157910739362907863120165825686342477979549744807162495716421275106845686695921331482184793996802217448071615359378156726895389460216881604812028192375356237429093034131937828529996193574173793384146264856550960536549290410587663083666621352725769168098378663077672518869249850754613178957159557414806828653961847076409480415722416717719115713505365739852077849756951323417001685949651022875024884155284131826846830636080774456371170094197676017831574483834467554383059796983666471280914443265143896269940845587969049149308869262537852715277641970221636358327574155873162328389360962695441617636353753151566234982566128915843597981141564903760465886839337479208849826697585687165331978617832625573584635578730981813885468568466553946908699019463371995353539468350633547232118995268339912625706948744995937605119644056108920094505602379910241197113765686083007957944684097952102482471563573458662250554325932379653714958554037513876186927290617973670331976993048667411291551883760984386775961202519613591379338548315389848778252987985005105336841396165802139013897451948739395407387407120355284914232693482047911157633334234955331411289165739579942284113491867326248072358537636268825260717747073748084525725983608591943745683110004414125005240282872622747703347320883996922013837820566223273750170194871306138161799004780551080170309143761195088134130616543132944837475594499698482404361852381712074980554850256706401049914182933447999095788395485676480000128147169667577777667050029820665394204904480868925510848161185933588114226863821740976709778226824295699012496679392851929672937343509572568470605251843885355212543676088764696950057266313112125622927194681145410433025435480525914741391304673365452756519362029080557627246938210527893970327492482794504644014937569844050225386796572596162554948459458481116338507071006892090325553555106549837253015200588243460988804745419137191832282075962342209447814900896404019547919047651880894764000493301508868220609899112996244714812322136521996170593234523616052146408546500187458462023074360774151185088595211582515007979281900185053736108388516458377619108975651245607769663775578613603268487579370961505302081549118072238847881341151057473237197411281548155531477940922524633624212494525817073669673406187693586550680518839637365537037635844619525112359891837862938664207770828849484464717008687150002376514640278308646449003111096226460188735957228465591696399614715928554570028459850204077684646638051383694327906976473699324065646484363468567173597060978505543692079426481265377392689733939555885723779218292381627706492334403357758633869744159867621462182359835864269424063303109715952749288913376083211223296485245915353901538986105740496025927177053637222344774083462396259437621279023647465881806353547520043112779863468876657373879444909467710604399100783212342409165748973493775313249486404839342378396194711099232954465482320973132253337489819089287082165444851623553260118317027124438266332230927744262526620391867721166195669153689157165497506705625693187016351212739324523017387094084443838237755898867543182635774363586422464468417867316587137054588193820266974390792573806652880726810771438544151236375792587038668291668395854496021649566589671282965928580370165265434922241268122808018923797018358124651410232729389926687119298180443471950650522071522508958855069769378061460297768283312719320308727988124880236033306770850201678762360004186353831965486328784340804028303975709527340294023577107388713179324287035833191093259333464170258878625258374033420062455944346878006232693651740566560573078926398528745885584200246118355593289343989339276167513150715141450187755785259859158877960521789724889069753494803443360262412111329051760059116795962891701558774646627315664227162864287518715425498787370612679675303829653660511735500860774539241619767173530360997011671996100134374575861685599256623993652916438781087301899421870286098705210060959062230340809038826886068786245393819866130973146745019110456978726526395725579427146583191145066477857270194171653573619689487202677738365708166945999560991583196247578284422957340740530971049714990671968923717489437837042117142354524948232229565901107385000149316144439395796081398779278005205734182063165543467423782181832788489939837274111631895642930127377812065766602852562716080982147552158093599783518316414140019174471518799439536571080392913361549877216732060443733066811732869673497835475797840173912849078751770969294999869107056573887290335807512854042733350379260564521252085407123822226469745339152326896375460670484273319992243929616266126271047873633585811997963268356857499967484400425064989688892153920932116629932668871014571838482983491844916356871610926003543280692654030780538853519845479566003869912318189111759522620585497977794931328660034850199026910270457870802128969872395637023222697519749456928088603469728547921941390503272483395749177351096789247774917539615743038983672143531042340633845319695770677376221048550729555690069561146988942196277844868076196062290037324333724053821141760299812789643481247542106284964551295027781300580236553502829410109412300605742843027782850237388861393703976259182838639485556404052471256483122170006024008034284188754722209775684268678945268290525379103987497310654583361847635496943503811868437286860538815785370056571504759600050390509020791487168401137763056881936350457372636358342196197622552436170066960510026397900125517559945435072433023893160418215826892593420773136856993616802958209427745990363693279061645016315294634493244575433321966216116626733862337965098215776175811337157359069423551160027725592472158694574939362087068001412833740183153103094839387507768098130604015269353282943805230836683390023789168482694897875391855284151361322437720941602049549794048731848056910220541969267559473869001910445704250231850834430650929946291780469531442578341895652446768316209878531433124924955945267592385452546645098971087665351527846493663596612437663006065441658465879268238771124560636778359169320556091618299655005460675632120811257667905581829141450504739212176906238335184303725635303060777007121645046842496837655213493760382492653845066193848450469718981476965717323225212189492276183948486254080297129481835847799243694472629840995718501517789315190704298029934449356099938124435649771509535692691363977976957932801454271230284528272975067124760768131258001644343009542100996324496973826858113728983319660190323372279184112811070079854552662166324151321280149937327413168763077011127172245127338054231569757791587799720523181487521650652495365999865715891148372104947450598870288835942153917550119212531873969285378446019698377506873171850673881584485156675037245317310493431573997916702868071112030007450943727437168198247133480978712710800063973590813321184389329017101779038010317152752065563716442915018772416348850286924373276787627842580291676704865140168157181055448802197828652391881261092294210744659512565068219375425066605198019069441471634858798031356121501183671611913644642699331115630482700560776104633639875755156114110436114987497920565078401470383599008508646876494700884717899205117901722738101591745444632101413689948248952050020526797039633289687649214255573156670337661266615473384320115764983216429670042354669446069705933073047747401445064487064784431493378807075365499428099459197274582171964901566364309454457188992874900726384136340709667431734133602230074564814041056599281596401664556071363986096890350732516471983535915140271775718785489573985982837025415655633695488163495554560868969171503450356421038607327940882875259468505977327679183241470060123670657653751551045975375956870431446040653747648269198538854451046040932243821676739016237654098979015700260039233741988081666029388716791210685056946208541413837226679469964307177752935286673405899423208739903159515914129553906654402203866964821990667858444836801163819318672324024983563287613923690313069992890141763699721080070605109079666596374734320325827542311027722082345502487533760446224956457031055863335055323036636206638926480940781371544399707896202033014915630191145746205236788201367523548792839919884234903495954237744592572111854589413416566549953446457999125519057656667091439911236693064398440091252453263706432484104372535385103199490389399390191030269228032140753003857581254379770195597112760667278053477187737920836923253612777763535014432405812052373725282143437836310698288451715655727588972815177478317417258237011232456282585727338906692783575276515793363745826972089744765684881326559897742155357766134709788065232313528784976503560686971487596703790150037636955888910199094695277796193011150721769051971940133504352018622885404657636116030181329791891727692697196957147607052541699212040194114874414205304537545381056253688439238544163517141110446472040196008198692374278012659798260346865807899755810295054549561344380795568581109537339047837665335149302634359188353964462677462808132332363709179173391176954185619012029587272659107101133004551821760890693422601647480100757359548233935766986547639065440632888925713349314228266985296070889594169117666738417653950892076602582816116859741011940052601149991453603053189618794989187561959486279924215611001752663710764125955388282462490625245797620393627544302661162184295377244869609292348477764352138178519692046173401866695494182167967688544566823118262473897334305776517941684338745539950639127979900874921784223498495331389957860335783671955827742188647568031285109149822323994413226861942832576591315551556521138995522373386862402006295548309290549999614082254757369617045303329200259488296172007604980054844246714662672383281165701785169746531108217866578940727580933868634393975413035377706933430816348509416110462587498516663193696390355129342782467319230721479595160915081356927783640643407628508946047179767956372565619377888670363902340905167454514996552048587519241977119432572708893964892581518262094883733280100539764440851875226369465891415582868340030871980015422018291683749661766808308945793470719608380344339080878040976839899494256900760277846787703968831917714811281872127670426976069216136660148252545830731154227857011664100375679320453395108098563705883599497227731310401479819602689812156611531029691314584415618096676742201829913132243653000034732410055648606266291265087392274776932443014224027350497950244235160142007512770242448952474580196742044368865530579760155614140354138398886628842803339859795505440859686188401742307686665018055823634549591126967395675286528173253839051048354584663751114958692242326502831266750409410564151168835996856842154752577236307791338963997204492537819756305946905654004126360354506673710838205273578494077886305303377902170085540089630533181815787597465183167265274544196737934459545390298944331351844603255744469439882818394731159676992463558420240142463686752965299989259135048753720440239415543459822422134397034469318973316592750894334068073303112894241005243089479386570267268898795387454640736277635264643372894558859329425134654366361314771902736464873744976755239102372823637023571796958482622327449204554280900298145291888967088290380475414156504345633153371692022572220385622823337159586294269713318835205596351305501644411750507311367287653312485907668762594163506387673437385232284071073181943417123259045429827231303015895621009650866887883690343137125654519877577489127604157538459949113706950683316344755466670690618659008927897589317941019549533017009387397152849581005743495809023776539897477641015073344146700985066580106102674585296508368132661582328027950408343241535870534143182410867122337942083766949359843357256331425583175010658342788458114821150357051856064168661535602649766139218086560679410457599442534731540053196592464374324071038857293918884407517544999031862429683626500827119888075864112285896513970897244845084357403390003178699475996452432860812715842243496439728069509957372063836784187000620561803348201257634030507999854944442274498931078333770242937502906013685261013696257764676532231224191754979278532304583856427409436107556342053170614409026032540062609633505775704504467125699715215946114412009147218249677388359342095728621628722648401865249934761491622182583282418381335660515148515301230722062559053500608071949637134060027973945868193741086939296098681351472484925980147765472534328508149810083745992138939188719504151505813017913343331738214049494529573322186207328328866836802045182979078007503761316116739339739584843118809548910300148451786556638956397883102700268134285669695081027183334422055972221606725887040743982559893947553627370230150475576216292143636407992697800949751075741544446782804989470830722046247847439484938214936253394704308847574149420296816462980132632525491430064839096300290012565480567796056199947908063506192119661755163277725256248233206652951482326601742801879372264326554521096052201397218173246892973324911447421834506448000930014492916148534851043105090387227501901453952589662576180015139185851323003606736272864678208762804659302838303488094823190852653406565429981767260350802763089262952924652864388889755701646343646603103434354508789175784201933195785731742404531789494598257417289550649062147966017934846356874533933138026641381862143593081756767781618644029760099236624949333489899718143096558577559900813214311285888916523472982854395479943361762202218511968850024823930470898161700318980531501879322592918068966022606689047092709378974817075917779583990883071640706324171909804590607275006957309025270334539490813957504586094544221342802734327524337109999525631883432273790154292103779726813933719760362725230643058149363698362114198301004280927513203471830679678895377071804318628968230061753763548113608767060497535671041182748377233972828480829402185414600803223845823694900049734751029746749365737035363775323996792542903464162040008969015172567451552613503452579146504585186820989414379378870317576800041860159999621433313769970065431201360670427392762676472463254715966600241156657842109586231797328137004678023453389544485314331386076303626930591316574644691336320504176502023922553010462780092543011320635878663301993650323598722330462504081589869512428609491641253849752275176539318599829322740621305254205074011892635517550502555952619101760441068095720440732142429534867287713447040855532358967932475690135327807335214755620327254685249592128204334088437149328789968199376245583742755185931005555287274296080891982189316381575784795711436383325740071263690967947950248191803059020621043689808491072007740780118349911948843628437655687968740601638968748897743076020198697120367609645290670582631496187981670807262261558314934717044361405716958966431623216325638439966826125966287898970530470062980058322457674401785180736861557286614817570239795611874277604817253597803486099350533065276779323775230763718406239340622251067191940375388853922343083080295392230954930209537765098112643952490957840173257871947618893366488177542186552175134982959391957557588944220990773868321326157911627845761985153241907816740774904594376082722462432592110719765025818728875973527756633672952449918486413759638519592342114337008961479070188339757439392449460675998457214411124813454734958981190550701901593862073096685481609892167327227128358734287056951903083823011811688500778608199288877606847288633717097178122110620523352243503775172551591660934622549710413350824847631172087899944595867952316377040704824815509180858708281554173922754707258241419793394443849660941273331597496381233940957877615361349769167776477077780725028512938812773705469392018043942299942992288316726000671035884828310020415261878733242888432937189493331381951096225722727170960328030805171697412979608661289054854733031414231317168573944774223928845447985653774017342483579330762920772484455051990367748622846360563048047851425589922866337021590227052032733548739907920773393362752228066261315666847340547810804168336590535784009433175217579550317481173857183032809534884951553544184331035583309908927848226741897830505576254892268548898646144881459570762838244657674467213755041986894706691412662891216626847708375103993516593628346100485617864118832087969124812758284101644636622125093388331316456254903278315093757137767875867092987444605757215990846322103931954919093318365539335186124320901881033980379453130280231416259782517048431846488450379163698220775072976411133876716774313408951131786397356349036020635832131456712749585169819741146188183493341062400598417171398700753558126996170080425823433117601231341541833940160229623390824995220116152821899053570603254511077781063950197762832042813225824397949132727136765458411067471888916938788878870182512642153163699501262343711357264614661420668654429532386121853644965804410289371823283578033320061354376950241522419234812959613050404125447367731466919173980206715425789727485298158131120641216079497175482326575527817729464673820637670865944512497472213109084474188794039690149769571168462554354237963591562870763274397469206122619845503986045814372496637456552616515581181539767997228164935755584777533565612247633493757332640574829669656841329655546500244196161807015798462381659688736681109128524890775569767789665740117396843713105427922195387928343162450573318913970602244305132997340198095550078865682614942783774335844412706543845628727897088789001871630728490547879678108261617681842983467280609288213615471506397252202955180295719098159756658622433913069157259356433713632906840404632841698799435364135975781675434851312582788114370170322502762575069794095245980444897924629749234106772810263939031077612191718104978002082872662576138156527680698476941345391785393996940728832812553206316852616939187737374674668466479301432340579932100546344592079800051767574721301520358234026250074924221698803016458239233330869635371421509081329127874573997579323743847510622764567159958756438717757810888130839370772691957857633664831690191218514185416410296499604832494000389233556739596405521606189766347150467923584535959441480067738995912217366578161891093726367846945947891240303746488722494326807156655148597415781274904086306077749804220964925043696973269933599170229622805119520185389287229646326247442900700340100416250671828207759597607193474998444882389869842983465532379623489652616746355423984811891536903276434605206606180855551727976057401804152843336934211464349133806485807464591247108215313477526835181292814906956831481837448257407205075192163098326483777521818977451489032260254430133802204029003904477410126150586399588826906342644968026182468551738105356017478938949389434513176579793236308654678676867864069164630145238329011477418807426964447812440903327146592041979486457563967623251319729094536847220544817630345084012765670409776108043628832278239987905314317914089674662281431750931634799595037232360963376054543587790397394008299099380841709911761603891942824907565609814789496186498782447886151601706649365547802349071630352743740315682962702360226323458097482269171891838020689113015185132509965287315672701276193297569420492718560443972337754189668385428463411007811320212393975378212321538430529659146387607001495779770011780555169348936211135602714529667558180612821149921133135945014796850043205979909178389860384170551822773247765689702638887328638818111565322984442393695211678752519054831491959184673744148658133151023646995145383172532197479048050345769306223079661435965193270593335708282400862181389965647716258668618227741976740073065792171094974713368001016141621316460898676819377836272116260151938183065296003372101037841078192538022923246798066192330219319472217875882423840375054542664102611688723940395308415067514368198949740527765531198125826383377297902231762450884669973847701461831522589203372629384320105454996227530955674112040125604620905306860318272320121628055703123937595009875825472742269647476954429330182167965875008315305702099817041754333469947177799042126946450284911595548182713931438699157573513611012378117961630237290286826407233998179741221246916583646947812951444221870596343850037159454168822279558611024996968373008761166751792299980219637757462080374599845240853603215379147975356727903762669781272137902310450291773844213251790455726034410700570881016363193387731536312308413655091544025362814851615140303351215655256539700811987050360605885188155082300362669141371594748871434821394726339351409355111732853245086781956219072206063328155379061101138824914545559047012238911086437028354693556036034070547962756824691334645384380521345189916652268826987754980770109592476023857674235301607086722984254150357092687756362995009144488407160513195679500753401794393823332339242654230520419525744186376441183447077421958773432955313185659192916549904652256320230990860462936612855790747358736761549366409077479110188193638556527457144826404889737957249362876395858263364583200753219981016456440537790147229202853935973337315674356484784867345686177146864399094649028299856104190058170473806959421997499222215711481311810491664358656870724545292904532083873730958588929198462389232813971351946037668726386648036329105470404412829308041856389591746009134077091741693854008747074364505338523665016851956095332353982641416857154610473515943398947787006319934546863828676390393965505264214241585941072096384019548992876775838322322859833799614989120568216761508785368539887849502119527937607562075174899168671973027144779136651649437654985458524152868008144852142600453152435945270525202241109183240203116898372350635533913894868599769251855482731889457682905752046271850747759881370593673699453557491663077834492448958673618166582466204161013377146182859288189914862146246116930817662710681710553499215973348389062436893225372342979246371777127771510961819058451842810663392713977676679949631710329499316402676640090012995589326569582767702159383095794682760655144975781546569464504170854244753904327450837353454559504679179614836975948767752728106292037348011886754125326222443103787462425126002330527002570098685045938337386099104475964597213538153015574830782342608365708503297367479808463290814379350424742973267283602663815028763230798168259551839498190730242241532081385849609859186006526505026613813322443766866724517981846836823404044536375314582498929982655580256377022933762754746017595496298068429534216674884302409939794367527591026443645165665819920946944492594574350142537951208043662111872162356182137768267868797065710731033190208868954414605235745052056878255801941781266446302186962505041992364739210670309976126693675958648859380253146071207368923171988994807826321680196651159495947546704538335716460158423416190057925099152286287694646944005504627417114257701698711462507529308035241631130147033054171292097433774172728279627876264633980248176803210208026874890392049574169946055237070166271681868612729787406962590186779412207107878092873487421403971202200422788243672841695611913364311282661427669059158383617722985906745503463733733747666533641668397061229116545987251133446504456112546356409220939445153609085052267656010606731345205812866501081950394431124726931071966704552559446987640857081039761354515872654706840334244088576766204833500138186379678852605665673620539862304907589136389559036716383823729675762234431115268394153501825186249845191450490762113066560989358396342404885445478928834759021212335931754559134628655649140274955656627519742264890936901366992270190947374998674200295876924105838782237237495793753775538920071999283775626805191532884348915625547236946278256770335149398248319439359838006434421573889660336311133479616882240272793722503639520998901979809254727606439057928466540841371052171545332836147293860873934862528710370323544028277390481230662022962170053456852118811291821075054715264555340206128417138813243693855668024273817448317117850768933734871027819857460622093322991978652798908344905247377433362209411432113907002910569270104047161254772449798614486852039987462499349926646993265992137099839107056371997764423833794747913532420843446556684381741139654495643882141729788998555566469467721317515671282006105247285002820352317205709773782208381024322526912830443904033436017363901586701051506699228808939741994732881608609800498133105197008288351174244213451259446618927856672925319814156239703706091163226782713066400241190028595688241842092782682449837807359522024351592711674185094004959102408784973574799787174349762163508787655493144802671037216762813451582472005606189671697697736255872552417066875958788848096149655162965125662168047028316202017635135082052103148474517328463994791423411885842106103361562972347543738921346260779298895378987575712114567111521256979254314160158338104991077596322545320206369044750755910230168634334243107870080584802957536878031360723021615440750730355780364091587607676460976043705077127445565149423496629183036144900517470233443062394833593007599995059000471457007905056200787430487179460082543816140102422562267847110422750185789946930786073085021273266508870467209770224098795400325967502692457769598809809894493052849506465331879383539812504718074318854220243906851383070548611249721675736024576563372271407307277783423658420970040234820377869550403176747207359742677123322035941803549262932655308280904638634694512478233287579002277126754959116802406961878748732553112521888656725687974837006352093188746325882861428840278351957247768513837466393106296192503298352738632348064539589998757986157366071853452751858934640796981005342746355984925339954787837449103725962581886070224739308476828664689967928928471312949588511485729627583543278006214483286922604967133634136549838997800164840968330863937020168690856482339451886143244717692511945359269093862696076107699243329122704793251293520873752783461170489599231202341607291189720069168004813607497827464257066277619435238188420911299033112399577593781177717314359410569270466633666426850901920136738136477625499150261284765827424283225499091440378759548353646137349446960138639431315942785341039088578786507975130141023434271593567482098438497771836146646006589420208522768030321977103624140282963745649158173225977377245667765568276051795042930620656058828998412967051974040470155921364107211851347824246040560781903075417187612700425920153462065729852483312045949526978227181785574263427028316250574914783214118917619308982854645439029476641834992450973972017157606122789711791565599424878724798645675942941365724170023550660785220635212641299080305467703135465397828556649095644829101462351310423018720925923641657983075922414239913579579115974179976312883650970567451112789078810390451276710653329505721430874031527787639331655636631119635276614931981769000419516016105279635840564079265324025314404049385468290423953351204911008900644205226308929443010586300753153675034981981439578358836793869769171010330535008632192605154766690128903225841820959204296081836076415870902945936407841640730068200636470959033132270279343776508801900075737148644116816222333824760314413077426433380652626735010118531856012546772437342411972114974415987682347412732600975338095092033447571486409070201684938979250623480215809043274118299936360486916705365343586730471595277383196433665420130245299668881236579255581686379414736235551055152029784234668961612514956351992773709910676351884098360798957433334324890177554523916878929768329635972114710373090457555231832633806201975626599914367601095988897174961796348130354180251286155956576722917069582777915640113055867439517852545394994063102571503962825285037594074445375389893008569981344507796975977520358640688594333739350035512239427561916521335813312507719929770566211243820894386334821324084080295536711931273659117178687657323176704982169830156481595387634922157440972001699036893264136026430990974661116737963122674937774980194701213139119963706580466045549863121431853541639410891057636348502645276404169738257869361928190852084342413428846288754351779183493334194256131823634805407982010249330575406282874432173944403404156282212133407642859665973346368480159468381373163553385826664914776730457162535394064163274825919764591692258205298006300049470048925090721975097209204045500222841132985028026266215074952028935808371626884385385417083997131088346880253480826070650304447508738209628010177189318739392344635852182010068860688822468342081104506289484573031533390238285533353617350220232056024624308045367511715136253830860338862436684524730767267261937696359878033477846343371148088640635677098952892840458168555064398720357189207433693325376451932614056395095445392543977746357818966637540045697436833423134152996702341592889608149603811863645939136327845990080816940039301103769558248349727016216927896458954056663635053288198033200865131033813854294367853008988565592443665760727806273967658687081961790811801014171256458974423605838904108039909130063130468530823598043048010488205351201639086133470513174357894757580846178891383475881440627711751174772592826929382298395520984012467083463677789157612631686106100150699675958994252860960724636989629084097516464838083345432124573056560538633436095621721073714991634238418063657185466815111723932349752567183312505466611402538918608070501426941523618475922447883686857527812255661951728409644347053643248593555721791806981483755779459215618334479817612822102237118614799932161813041893615930075103703587408456448584700528443762433117485679747784422538791693611197650206127402467607885397900053686990479735424727484320110321471851700619485279738933349859295439336779367943343884071203663036721601854729690589256388056120718425481615327126464713549420982197331754972070893366453055808618735996907298843338818817948337285573186740428910035202389388088577907265000707899650695560918622186315547044777456543020430762613423688140434939611591264314641505108381311289487957480653881786450168037770205501669921620227789819400956367517067022429324942144693490741370430778373661149562141144391959961496882633042206063272500208773236096778825818128810226156143517618298232691470116479694760939953526511920350073427316976874583841330102996817132601740582475757107299763023981599129597434951306389288391242297996592036419665081611297623329685790274728435500107938829729167159395760439268107337477195694298856555899487115220761726481888992358602317161736569977752391720750640325657808102839741255272217756987173538709869357733238675086640661725646514868954908996945397402596927035294766621596698839485329055014221539180714949854587980012374145860919237731151387538327823963028673552202605543678158177010628314691167412983917247320738534869100433968289248728168692260797067037822271386649266887670936054020191528803699000944432657028893018314736105747359548602867230754465211268510649740083016675657856557287273860486788488895449650672027037910975798129792009941700844510215989953291025893993916694679432095000848288839092251624121779516238395403070803019047832071342594296397656185550919625099405166842038223625469180667403522296062064119980370730865462677634294945819956432630813291997102370086114521312375370714970821206314123164308277320164461519503961600006110762220875947295401176800954952411262149716785625005162960777362519064452360367681664812093068051176740800730891859946830778305825071729652452530659765870138288394523870794608646473546273301548821319391043231706734444636479372377167402322733468392122206637411358014961313580675692197508160702354013775062995896165643405173908539326636055407263481727446904626527598109094260730138885387970673770386076438554998276747395665225775556001922363707435498922596349108987694270948275490496009622041426583824264467127761384539689383318809103895257304302837442040242789403155355332148347685770570440994828125514029662993979024575339290153502566395247640134314803783860313368777050837818680118513288188902929663452601920467634258250125434234973485209680117412602951668540666138501490035985344947247729019936975045081009490739702471818108916687037920069798492811951130164264898337764236774559637761039125809313649616297483176443259769377103411323484109773858755156339044969170284541819630345480403896682738167092254554246247577201558521437311362583374801346171065918983545746068677416202777319639835321019497392499428272532322775004178538937448286387411524425456503037272210808058622578705540919181001695831407898354629714237621149457627190335930980439956142315318628166671737221318249609616758098072332453619668098891918759743271624118144892645362353702538525982633566961219081449314714687450253409964824445723248509436663092853248915932088826555894704376998258939365745081133999280354725289850837518744348696763769797434355866535345861755706195816364056904662156456789393543152888329563231384524179234075201377935905534179121884736895956753322330794996812114046830363295805520770581861636467054455517599597098695002876969208134469239611604919913412721571870585179570115821287756326479138302181652747570149806738457744827837525419223881615731583131858589926427544784308147646544182625708990147041897451078921842257906709048106851282526700035258307304176383194134503592864289670811287025244655709589657634464798838133303079246127163956146233822402908301792124314936999722512958340292234512160441284794154021202459715272567747225731925919600371385836039754774142752434333599654708640355001483510314580301538277258670928953759302950581227154249229166950610847068118134610859224618428789190589871059381636073812684391665211594271027681863064315211894707810221684137319730686357948530619995228070021723679171061032101481427914532119201082549615076463992382401086458270631370290102617579950418140920868031961890647530778153163912135686800265646014775949782818323555681363041569653803673385283163773351811951714992212672675166913007079258079612095290149353138941279855726800267668635852296422329806044562028672081734485892671567858183084293817367222189271661802754962602909983592135850538062270372296893369938699865803057981622693712886978931662738324729244507315784521492022717492123977751572390357622799596102789805206694416097903598068604425330284979057484735827354166342046694099229676775026495369694767753366883767757165040415188155834469918342846663225152807763646636504143580004285132208096614390628155313571115512935719172075287237804126266305895197279599327507978797277314414012231154243833618849915452772301960839775207085858190274687098099885480462714157116052717281005823343944930194887126591702734836244126090013660710654970497332282217694179323306990816182841184825296775962712924631507065624048665078013040109699895949526750759136295261132153462655706236825142292262869936166996218916946402390939638118850924708975881505010225945672197437642841504345727560636750369541283956047720116875448833596736138567915387325329208094093734978971068719489104777799589498003847549853614064266780345689241980687112522526551670330392064154315152942767385444444967329665785920738238019474256808122056357583487817847010283267498855457277660584122507475659138449775620503905662703004853453007904262506917967808197294391725386033157830486577297333360690236822918417763719852236887206129459674368537073638390640908485142120724075478639778883524344644689547630794151513791385789556885028781550527846658655746004256465293420744970067347256064488062164478136325141736725629899919651771946864425687280598793098171542519321426169057892915107410086738109383087891169104890078266793598200864495090739662636420967365838209631540179162605500249829273402021507179375253306828570846526162543786731938768743181413441092397150778489105317776843038781753852006226398376758225343729260530029711597077393107382464116394799802606280842166854889723734745015368103758711695709513156798727965592844384088567158062724200382313190680064876821765169436955402026684751322093020870517824297464489855148585664986043272327652239406023487009900451040417913980087953793052864260445862735506452829886623189951521401414358318917214512877429020212443956943411231876097734338039193080971855071530191850458853008426125995969613530048301241094931228889495707896209969119534729988394954349299168182733831498129402646657113827066339936941487316818635466815327175662919406972078464280885423157055462310560508869095866106409841825046768840716491902795893955727331198933733985022443381218832177771652568426435582483404293137578075118886756576726502633351629617537248864261030779224983908771180878468480221571118901051818598972711412940686559628631592615476163917732231314955995211984176570327270099040237491932081323974093083347401248125569573282676314560056999278300883818749887618100576112759240790027782613008199973297466506426850356785390603855541172389626935604818185259228991848444465423422495513124903210756592643980716325589889037149100395531927127378578557898582115367726066621611776616864707668858435218207705984435121193321740923937556066764700373305649801911553445793324365137859400992236780859825253137177694834788185512681779222593852020967071779368248809070633988380975894766450096211758558054285563230896141275965489096964246066958512815219390159651912621437662770172497164465571896869488281739689713756276055355821743071541278224757506480644005397191502689541895136150221104143999291041659560812566491861894716143390237930017273323310554583466833619894734053314464916457601848456966246848815523226973165613016797287356288782338980280706828508808226170358267716416582882245306370247253210891501479160711226893640445465664098398965873692599915339279650326446297429567808813602198393458222015094050476696588341861650567957684768138830061817093712438397212164283663053290645938335366498312157980099145141408658185490953945738386722788176941039256004996329923309492434119044288540708594709156334412076801181918856756969652674137697448040793391879738130853828330181381207076365051161749081759495171067309274792371716535308222195375505396493922546428514835051621535182926927108226452610297816034725312141893662001348233063196296099034266795276704911869776199007315894107377047195618940287941977156846801704261733797263142508210926876045541588516067749977407806421546861924167846190915430804008616911728195942275395227565384239719212935862207510141897176179755080186336427622040966374725075599147752911967922019031820298692382671179371951364515228341636717359265004064104696988571092091441585158285776924198440988279211632740424769478161449025964059043158351035621154800484345116248157135205920890746504824096485361329728300136362095517009024178143172892417429329668629964447868223073661718010058294537454757652336354621753401733596178663539979434024158950188519235838205400089228393663694225166333895123668602458814751575514654303117969860411295051882599635654557956613073294786795154945325452504760315156641371767277330248243323279608167226019033412438534503639790096842414122821394658154360989866078567033430073839617521617224998824348873233250664848655784827212552817129349994614416398399793355308609354382451680331247569304712385461149668917788197315282901399786880567784083959565178329206789758191907154811284520021154813540002390350893300446479949275721441968838568380006352069644553621226432452182568533794411787474204143793393791237949288523995281279041540564681654400539346278161000653245028029932311252309733755410173243767154284361991122718247616192827563549985464854429963089416933297159076102907292290906413624881804145711640025469037364167386552798179162835177647663213873655971656109992911999392207284383000762049774117284900129169532712442715342051413187550386521149299342883612983224150127812334861779195941146977922149989418564575949686063058221224398145505510457275123585162287772484216854184204608780582293083526879983372454527061133038578265211209078473226001319880746796642311466898216733674248402811679601885398314701769116155539599556894498003847296244004318324829861228070359843591921554684656287879425060059411989571266381963237314367713242013470733765066346345544667180465352430248678883307376126364632325487901360929558324108320051972032977885444976765730452522166326494040114841469896154353006418057955175656369956244419421194455310817081749162097351986030988892383078205631330091542509446575033752360032011523137819887231700805054643919611097233053601560959437160366699752271691897420593644086345603572009825953082550589046242234359001716282356272552355462600987762092854959583471466271994635037824679445008467573923349894776334098272329366755145124830100893030390934615767177807957135383919227503273366753973600988607138633910696190040687048680409851778519865823095414875963372605496600639342718347016701234476751318555052142463103332689890502754001179708674202727065953532696718238210580120808797140729299044166530924910738329125375032427507843815240168542926221845644048422452650378795978450538127095696697348839470980353518924817259633550215762303148695422767039825630866936918458129082921924508366688812277079302827812449633824025314404254038183152433974946892845136996309404885895480551121501329995982223278538625371117765624860451007468236048642466610269522946417498772528113588273829186469987736424945269737822393661592645645169161056987177771271023223877857301282592346586349418657903216857019345022797287485448508864181646237992259757573445628858218759634971999567311394299825414147548293557499431145275232094101464164785705760799476382433913444997702869408820850928236705064028976446594613252621130394938998062630582107084548416569382359188727519146456467657538978113478824553069865692955215603917139109498869245058120818304137776876138557862390127179172471559458963766318154443963781549520853020060281343969087003245600801253993460569458244729678319495790581827569135117917857509518650739217427657780842059876978551721593867185000921704802993171499474258252556666563271901873745053602053327931070673536659676408635667941312813128523149716008687223977406917509080597986708495694457919351873123135995942014538430478343972664827476364006210675347187586372432946269544627758675300512706636718838483062076816267697557563642717551937232374894648648902769569721896751675375082760243163018976071121298871837209060726797277791804145172224509006447812181475399313252154577165054150594848539838916301419391799477217470729707643544182543471747959796466030300464401889268602882908523693309142110524235688851298843597836730179591639234419983078984658143524110874868473515626452192306634725021495919447902237530388498716116696967563701744982241900432621379641902599873111943241805530908182916064404996966154621829598984346271904564453100885382866624035022196528759244213848747782494394690298109547065923332515545206627133398740234535081898085660808538098935911759067028620967650968615450259537583083547975066925868189131498436253223065154140023243086015973699631789764471752611795722839356283892679347615403413386986530399487751027214776090393666084784867707562477329649706440777588142022561117164628825962865971526869427134581198562442684231524128638095771887910151797003899552871552901390426223367334739532685812470981277751029003246639553199993447337173335801034084850205022809044722072365168266930054470966274415211112575469479949974277973638906123601132916444451820498974140210793409454393353439747015930627719264182925340353178638364144580381590226375869192169300263571172153471626464764650247153441896784934791100275095502426251242513681317315420651215427488376920635031863590031897524595867014121461968703764126640212972232765357847232271909221688182191757716467419637386831590285782334430846221203035895628789256698876277773470055519834882966571266128186042806312885056795145082893372773288819765216574850779526077935476292054885611402366209014721481914475062802365860214557905596596273279847516744171655968113290251240433022432543328888830013490996500681147579409750083970982426827113328280913960027530262750565646606588744095063075771730774256853773818790018064559750202489392180389467536108559285558611894748702693385569430910352183444042915054646790873855491947624322909556823773657446646787497265549313234142828936334992360871105445802203108775658534900890351737768089261486131537738485020819131644531304185565343762110432214368201942714766889333544073739201275310753761122637020572039065815998223042659717338638305331431129995281473829035795461206126906598733408915876647485861827740334499197005866114401380475587647678390479666949501994956491969564576605548083125543506282182329672186096833244040845482592049021030249246347269421167124515079367538372297612330338940946791330360726956259829260367303756028409648554492405922947447341519108699942436161447680098189548825608486175726423509932373684812202568772681858030548852602372980046838254745447818621125772488829153666221457758248815338844128841013885997109156520572532053393449368193378714770370144562629999420866317043810276036185819167917762578320910740526666005342603999583866653353615563758453344366942072340069337413242858016012234467247474727901325219028972426429238606218010969103564134609488785185580128784396090791071817817229804613506367646637893228959888524418358967544210905029211854618286749618424544392324944159633911617217795562330619408139304657406533020318148160812018501112998010501636808637117528410975793406916251133212288961936247815251036461820134459152634041598320976491375677733464953429951847987997561622914734334776384893936599777860224289822824506955545317864692007115366166065267621301485744798816723802888301076645640835521685666978437843173770468466221582353596511721226617800211194130944397771334706913033968798841099270101002631797694724124699219304876633282360370866349190599188059029561655769002459818660565932897682626199655742567737014328883809898914452487301914364230009235794519873470665950965350128397935413851859089489479445135916130031539026691459247416825859761951722170758570832191906352970161617834733152033608495294434564656511320833155108874689366616605420867507130932647409612237603958917522222608809152443130334509704852116611501249594863206707326570611911974364435665511646817605683081988540341799096626480075226505779866279199665721571738412290086122323323288282107594499208832631352614375078803226353734519719359239163739099427249204465653302229866358174086818433694069660809262595017811782119743207217375134236603643153786756580460485379003949541675295914076653807793016443822497439682855048951085664673239189239862140976128195257820419439187776434240725424064482254143707523588885112176446957591025974412316453564061791916839438233391804689319051084692434557631634610885399328816130367223008774630620691588520304568402257679069282099066657087511080848584376705038613637706021015969528160175819873318167890001963063140744590815482964179412554402703567514776471391464596405990846751854689889154454950745924667087184567212155060481628925907912670909998469059065938029501220050392310878829975585951545398405364534036041325933082644291129144417484419711224631717787213473881491544149085662788336006143405702561145272984078197011332902746117783471016329574937787412445328992178540408267334987916040595117225446514020839489731779364369930532413085833825478765117437607705191241534465392547686556267630666281427957821799717800967567301240022925004480456156432387862697255933591619696340078087483046680870729373704324621087118578043016417720589977680069168880763705144986675344406040499047315114577340280839565074404917964953643134457598947464460797325688361578063800919678183333814180165330749765407767719881687262993162583502094637757356019121298176475827355923168540369943924214229438200750575858912365799330966047607864592417940840277341076140804547492596071463207154986313025309262162529631850210496472976594731936410095887022302886299480057973466541833884434384094440032509734988447791375377301760049221035453033827904074622290755141272178469762562243855100742945947795034122641768483990559914716586369325340491239227554538758766920283561747005830332520466208406365011010663703309533207376154788515122441224410374726555395186469617097408207406298749001392090556343520182593422480091605474910894065676834512261959162938473715721032788227166088778677041427587735193365906778197253488398954862831277270953971827473513365999661488487847995030105620394884595051508665599228002686036797432606928419841626625037275033553240033976682860020997732810712409370733835636844497476957839345024410153659985106798503750829812731383931408432741685138985898096051310400566305498298223888669004560675028942272241278564386732970147001323396835642107504262040319039251273942026067853505962546486238279701950240960553178432031989029232925234261034989113577274593995682493743785389619276367390177505511405414210195599262381602287792422954394417718629519406753758646204959364444020777792302916466207284290229419521518831671781107589625089607833347737263629859784222628008569626614525225481314780758246905935840999470207139214841519539909304453017665288273061911342255098557906277050133734718501372777479582028652291835853823511819019108918933906201926286361533859484609149820382746889869568688703258732973300047551195895350966577558905503095875567622978109255524394792724738371669673332668651517963759789368241816782393258236696486038789878910985376316845941644278972758032717396723826087159775711532299880953888052687156769014137917751488083867396432247566905461993305005836849204695043566368345965207209097184329400605013408552657625939992125663777750819766184540939871892980207215884914386908978648914837488219232734999289926013833338942689869556754061629419501730966685275060975550596227207017666066807847927617844854615084779687865248299487055106607759518918809739795136468506326538782572986849909801296809656604925551885102598002698537483496158516222478162690034790079785927740241131900362765214034238236030351458961311801149371733120165790652882233881054126658422395544454188756823649146371268463220173458321831888684075158441461566755800942722279852019522404792258420265033753942043281781219280669568873691454166819500744611299020372745753939551934588258147553458655230913169300213343630355653257455707846854209071363061965802772241404149652549890224216152998071443530884721431390434387817815821040101973342463060751647708833416683662001593969932394121686867413540155269272996763971512536202468430946081999226998829152999010042469139582735886006670274726798346136420458709143201918416500193758850454162366914123745301579325217246267955107895807362649390317341908005793545962099326280189460623739046138061033839596614074955836654350808070201291435318216598064593128024633540110431406883274571806590485013594062234142935837327597508447952680632229444752592486088674067982631005294354121483127172562969426509647290370584449964205811896459435654283208172890017023251384142530932672787118471783658274483688856138802959274211153470528498192602355444024654382628583707885817253774535693321249927174087121954513361103552818434656467176101489246324600891732428527769903472911999302657055097570839579599517203559559128009938856783180859265040881094511145977560107047330042783476552341855624121888991926634788227315643532842933769978476633153950306256920889293824692983139998614367674844649992778143090071856919668206213512729687642433069671426532741538943004849702368459106323315142967235764098550607192986373129575616612824110020227433771323576714007041958590165646508491802022532780745915256837481010401497351095292472538591533631557241573454308761714325110168063050098227945590590932183906580536138606316668504331801907286588321667276169677842445368487538777877515494712568247213461975278731064626095855830753689610640595321364920638591928536517297810279490945571238491418198514500102022564815527587687022130641399398606533835891857997122076680474400190609688733963289409589161673212919988119242364554754001689044868567827319434618721001095513059213206333608296543769646904327089919385364906270390520921259329613630917264650645926240065967577575695384301150552818692648856839391271936357106053654073222183143584961804664645587729838927125627130563602060529914605609152911713359215826229540979224091578083637768260038290387459311143688904299236343843272602773224653362355114971023942940518082892964425903770691639136179420639423620366160739133537653370293724311799976151675006404633781430179798997263180700118183720233159451869576233662550325803749168728410220823917573730578429453838196347813769545421886227146662202905788725020644844701722037474590529063658459343558661466883152770182338014460394994864926638312425681928051576890006452493637932206772486781855607970451997309585421063219283103132431958838623865419938483784764520458255424666218873561793942822253686902544539359598283701431154198000609354783862497879805791135321268637889938175022877135186139893373620603758394512577793818015962272329239544546554412249013067134724667785087914508618805240003571143834257753182360279325138653659715076323187029382007213599048680588995588917839077761802551662036124412880640285086686708520003408300690340338373061435856458692181796041136621716380067004112893660504034107669216946252367841680979016246165230432542463860261829991060404714475918162337098459363874538233806815829273359496006227692157591557847272888927762357918552629963712115972189016657736633706334258758214134746245204419366850821171839751954977129203820601063377267751136779889277446176654657258167471369183960499905379815987186457973911526668350734554507348647275377976840846960456245015860975873055407061497598737432857436365622161945783268387889658939842087270628182777870321360346509541155020753996544833031841168593958193125100329817718533757141625760424291715933351805459438035701296730005835670800597396199844790736899701717840122151236181365443110447915697964232653131217682502068916486917569925569439085766169506322865477004184131630540049831914909073106707678360197547762885449758729783858482742145326999367339237573973350958361317798052831343925874845928473729622330578493765379542892945828873056572527026440871988293510014586504875135196706206192486445842868006180519608260750911673915391300310788562645976352401894218917022227846427530907765527709027746014055433390718532797236632927990407594730877888364963947174999131267184120853746594455394380233610037281938093060935449422027123036282687009920427122123789840650457693170835217530549702633488997361120125592354859715222681139269300678562306877655384882330058532028842265112135630120522341581412125294744570549504139340596876032603848101942248917389809136567133307143758939977262936917131159897227729145637948112564069489808069113820213925936491727760128633355412794983100004156114947817558182791621419276539519333412483983134784603285770177701345717595589462332094960244334617386513297788840490370735613425280446300838823162282437316982557244259602183508290626775359697680534655532679288753715477077953475161945278026007631981745107428974084297054712200282741649208493948294302568303965159072479709029680142275065853994545994162704282583560694218602166518691789660264736924851987917552816153315114449927353461323313453764774399367753717656816418445348324271339471315145917284290940050437141313579855565235701265438891916449298412790339000434247631279084025047382152873111099561414820163088517676383579964840146960784294784950387953746237102634320013412231488958368825677008678401358178400647272300373696594102764826168054939770912289128330124017626485585165342167317409305250036803694720957191864672570507441868271569565358272293384167999384401178937283749439850594729573791015550632724092868079632599598254875506953091804430549698269918619783892701592243017784292971193401498291958543286551865656981681595810872258200469770911073618869133740276371600661994124568565957239599361041864229227704454843557747421397704162768991412743694676561936706666554972059649276574851737977657654832110706178332935202691291992567094686698815753234227397794618231780002204022039957702739676945840309572240218655835020303997987240867917826778111456899215744612033886106043942652083509169016423955109072582329830109759147306435568057289197278038621862319685833942145771713751846519356134666252879663669652745715702599344822681464863262892446025701457977931608334703525258998914006787713701252600319157449668578939658751341194216446684850325484407563808940046738991466430512750942681641386270747857965226630404913054145500398934344250647276103265057933308861210314826727042566396684987316152232779226472921746889396588902153241256392978325963009256169464397437578667003777735642165315629592008523286203252627257810947788757314347719741310145108175554713046009637082848132187520285141034785905233850437208515519427334438541958118027050798759975464215722067534852917467065096673987648461872853266509857235127875921117538887010618336518638636854227580484412600634245866490943180815325421844589805808081690322416659192204627839678392678763284651599931685016620586700833032883778348516217566912759596029153377332249187465661520733942195940933484977266064128607712423944619889510187554384486434696084178570214007737020225891470410149070275848417994885827414331828432891208568523985727669537888765005592690884270191860008152588892730143730396519770657396639285349459323610503093952191116224283428568010149541813891853963613661009705436730890039977599703982904077478658700433436791450316065439620137840117595217623334600783495353595877450914394351569920942619247583838456705964131513149817214034630044944201376535411432349080805353148377838653367227943736209432328312683321588444292097864131931942564229399254137253054243414726184752652749416610824484510778115686278132781969062463970141208531986784046299557995172216565127954069578975912277678195917446656602183453492971580942915344856916030077400742934562658332707179908255895931874491452804361852063157939898928791533225307878810216821270895826907877255596531297344974950876466200429798451414246203770672347932799491441167214104074956807968587385296938934077440435743394687050100061251452944380703820842655299614703004925348724360153031064170469154370087924272001722581098819327407562999350141612420882528152147084758638309133364270709391076707181520937457901323042115554900513261376487030883480395045471439045628065978737723855054460190450935183318084967267764927195985624489085385804252216298784265608102888364161699476334725637027892238889125141486531835673071915425175994253140848722231616166404283491707085302513493544975052779315138531198142497681145028529099045841266592033892921736132878987471396547363927125397171234929327050548198862817654105993683996931136611562448443378128063095940496919751312176491115577925304624544816082188269746954438794763729724613823569805742336686677019199475095423923146450312375546575461771588813840836113862077681459310095076947023289111388249593528557150940724120804332456949251772505608935911854935694260108346849060318852737796784930679207030213220882898406794258496071538218810066648636743061336180890799271804827563178094214316910634951800920264757473678334059382641430183095631985030724690265769307579883195478133107772024672079429987831851063010065561288806879241510031976143113299783086378086767107282310365981387437216612881930650006514369515114092156876272831210539522510549725255237637965664524374407236140605701365482375503854815394853031725104371678161494838739826586341068328050457443809300862336721468121693165266743159484770576993858579410525319007827539870262307512247065872255963559119038391387183988499299902729824092593774932394628822576568561406826333305482094121861865070830280612110278113365543809939078130545138690536096311775855631108452683340113115343392976188019966786815575342675898881787636850601124862028915537978003582560533210218618487306827842590618161973309926901356490546837167763546447536122205078929925302326288566382108182013783670703073118596867317494874090428394584688784862372815338679518553318131704039102644481281755783068797725553110820214556832200293460179753256481479918035476738213081833471817155802125448439455940045126053787779911979760364713459421320786367985889087678392481027972145231639930641610071600530210718540140438362914968066504546141874227908139390952411589899545909721797365758560874109881612715640068184717487596957597836888265472954021680230599691616618494498569758988827496628999816654921628776921302241982020588454059375300084135941299503083582401364336524706166698338228524250614889767075724810028627594388512565396516031434702133428639744438003190657486577046115446783297657040628205261399785496034660172217167521258831847423894190646852890725092493882390369557888001027861603905362084348756027507518558331637822589640674109595619392793319810967491766912765463837900209864001062112686909224683189410078112450759108909677785378254940064514866119418088318197336706983932265757593627719563480030511585806954834961437434353667514530288653758073562233163886368419456629396979529155842168449262537380831460668246014022320755942433228706410573288852525034086452373636465471806126395608789912491676614701656176657779584715443128880386248214905380176434424156931595867730759011766849106679514212894358239492428105110472820797926347208001645616948197511180963207190641642647596168487032375784253352040971726043589334219313158749834422077523880538088831661660549348626796002770481673577299260496726248153402651456795009285391524229519168461896279515131536120505001274006365775305811775014028549227620225911748777665977515365337186790911366953827043838480806291527740260115413762168060261175132800936631047126089123250950311987680994527049182143271049237768008534849781735255487964651875092722510988256896295219637292293041383357040325617725892208734841039326957244101599314576075455118775868082413522985050391495028681533676499660660202581601689853727292836586068249796835618531115691552033784848618159279037505639496200312649327325837026855256781030336758820122340517224909277744189536653152596866948943714674411493703496495538590906323632489857199602276440766959310553625674501659965288207899271509164196771112312423383795759499194564980606070966095673726476351633020732260397045194175577633318706132159739575452238712306371587026334297738160575650564854870481271105648493744928262489221839672216460167591856393160194558549307193294562974975769367191186843587900190015379222517567698329131629120262456568177327366263464583492166045333681405281909072344536289991353510485094120807923567433225981671538291762563522081843462863844311101058534157718294592891749914291973614345131859379692829918446505314183497102847519879759355937500348936158052272481213063055628843098619990246245393519859381010320965484118228697426100693119393508956306312706354141908419426201135031771890431485881174107081446794186975206878312716002268004504608320490357120721585017488776384523844864925756991040290275575863291774433115990590506300801593417997332824074650571956068202960729324654076696745570040409892757943253727608625649585536196998580794593456931664298458003714052233942726532302386178030129853157209534249067889090635607409977202058811474206821216595951384914784531463643552389860521643980859947821884703842524124247376390944202462079810663400308880123001436316138940258934606670582973197291422860278236687478650686806953557557539155059203477172047256135515405200079793130679356705757982575467078545179992548459225423012352157985182755620726863538225927669981638758809351212705016842836494176385666613327229275993972255136510974168493055911374942442572572656812274918721669510980825546629961481190458730573070463463629563639512760350850871884085912039714809478682257964578132332813651783906857266903264479866067818346121506847377107867950445492732725976285099136812771519601874441528152817863030654280112906899868378187136542897807044011273010868040450388894973581482890018946942365412484025155756251342040198903783092815601166003187055026747054868870894313728582861764491417283343627551771648268820574880092829558808512162929303494996109256375783003614716524039814616063697816218052502813662079634864090173456344440534532884808831522813140999939581702742491424848144046400525489226786011251888853353647663095821371887824167088619516832519549039885869403515748135098742474277281077325199892463618817706533106808394440533666830266730036864565860452060866980081515883600298784393360602527660350540614029829527926526361885415265353803587297474989402192737189414835889759429834756222173634085918880365814998451029175709219621569708106458139404055965433404403183582763979156425415649269341179979847410796204959773445842056602020336196587051915253554564631512309454607380614922524594747028726514538787017281253791284435225564963364388349353932928242470367141276204170840040442088125236038909936207329650639846802623517947532516316259921675056466949175596291954628922488342616682361481968095701574882852356873762203207289272975917578529337158988721207958157779321606861264115276339473908190469576523323399505011856292290425556779003703918254643946532352045199444107942613538710319160010510396595018089965112795414841403072535519609022656715894895236138727256864732573207323179821374874591879402055988907146132223916447152240847599174945278313737509939731131792100983102765068515857475174275560153569991369044194795908231732839186271001139679471365171086686250288972518306913958305182987492539798901343213767953315400719923910544222107101630519343351802218269905201823230222453545189713990691026447422446638359369372504424012767140617758859139412461972418567216661293269727030375110475079539202028637161892935651340096925837285511756632377438540868753227693328073935692532033169478461761872180323683608784172649506115203743139957269724073328581717295862936070779398938282636719091532191871465859364270451934309524740252014505630116821550584925533235050616378765362987020498382661231962131961638697431702321635726060569904069012786798408849824826032615735606209532695320747272271225244506834913735049284194062590912833716370509663848497156956607676086346873541024624092528073110282031249218882419625711784363712037653175226018835556537941673952702451797549111082363734587910803379723756958717953427874145083548962541033887056011353718607895384597894577385256074407562439422196960545430726942124336627867483357533268439551969126700662178200240593654532701895170336913092260565042993578071756264666806696730634528257097903635694345746766049075666140985878505021337443674890553529861663544210238078406818656170146336248073891357296302739035515218112276367272306271764568036892046959964913020320249025409304585082190253623219413562651747279903102188333636080409292502052458875650358899054676947419807238280750764817224317688444381767324185882341160051585231037174113581139735298547121550597121616213439306714705593990090197082774377830344688242279540528540169001118437316096006746529247701208835333104526711831076250619554488651364153802953289496141096024939226529907404287452600842712633528572502831490351962516987994209136568972600905768558679233161839145105201089980665406775333921644382590706763997300722378858962069206086470971280309529149887314636161410266525489169658675387568494992532877221008259796753730783175420701131552070722008392726627973327734384907733366648359907503570627609842322295606893260178869722903788768128154108608655125787631974372265218321372113250379084823701788605213883568133221665199244912658756387521880245623308360500433022845185268861399530889401404165819879297752456330872586057880685634740412435148099360074647287939472651245285507631479815545957552385246133733361153858391932638137802344954520689933618630213704359640141115039533281333716890719935911394252584358482628325081405517107926613370479559085832478969099761228529272623557095188678647568956406763448476399285177296953169840465998693902668355113323326679378963514245167758574435196239729312121198060013863769157082093863375728140576400781821674402325421437037624834902312502891392297134178960667869266668632420021809660409163865896704822108283845718924197883102548247983505370023816759540694311475704905280901176524799126450325727208456447431088749843509028270369983077805151139259154552263312433102723607064511887504470938205213172852376270021856473321525340517215482487941723571373208240615629668019155216275460053677689078633146193526432772265924543569430436114719556315793149472761311505491230190484158572956824294904196621185575507163750178046655626006554523100422092147969600673192934805113517710746274213437350661084364981828581037554478143993868302434323710892459280965624907863808903485171810004270851031493684968338692471751944489219807271737503697343491832643587821248463385843975317957008129919003295748285669701205834960887445232327074990726200043740166773837063130701677578459786844115499293209450407599354597674408469343308801592116172919602935538188258785867203827937263376636167767326573155339996302963185593666573902650382451302271488125640707837420484542885300558493186645241833650412319378224142086178904447891926046166086233136004178646640272487613062123409371025328802187482557997402461412832842221507509063398408098793341550478488102489031734782981631942095242167064840723085896555730275471287613134455439896003537387865854883097493851864258768130261502932970917271669122965136884138003859103510380716874705589900800932226378222030081025627737687526969171947117994116401468149528629609692059207015618008941205507449685417278510570947627537701960308284492161649965187173602665182360921278388138505325196906728496431315402134535493898976833641333325074585436875816705758557941414493226579256027558385331077838513362638379686216525526687421698551037223215641518605356252280154141056005474832777278839038834470007777441074109457389198726590350948679132581672300086023339875627285342094649856945320966417654724716659710792023314693134854270965150611205265689417079120318394175040577811253561944866271005520270898252261728450748663807430804528547772322358174248047778637881189529285352797204950402466073166389318479598583422187823723344776644596055442992798260781997767774871519382594398806467172574863100754789099394673410184727726447622485042797975407924115404320117064566339777535794028436630298123078415947322964231728822802226741651703119037741220512085172445505887702371389931230711851315215333423173067783385511262844956856370347023433822549307710427838887662331871507700299628917800931003711440066794112271555215126907189353905460174514097354646585262514271143420958614266004389529940413138560947445435092038596309174589768096148003926948206191051403657305767014795904149297645130861135026740487865909136776127362773905456837418346923976142269863763288910153184547166826272134506997464875307199992076224302203228148879631597398580070312392260104973529144271902369015002800462755263547665407824712162446989949012545387494350989265784205641296154859408958840653847020535149465460400062155098989185910566247155283426130504148617485571729329013734565951037538978685482446691303796541896266861118581333262875323411456603701799302749919047070885024233198354405086159990249554576895964806308103969102453512597913950877314189166511082429499955957290636197938935880171972425436247643224898134915793218983743922278822799460994497664728895959816517938602851034367063040078786178993453883528711715611871687052319424544066589216150442790768925162978535868556072041725825369162991932336982858642765277784049759261557330800532065841758561368029650225949938395605005505171991290276527971213729974046778914374384593880324551857573390417191642562076919624401741090375999594947738695709379487388302289851451789360020518462563547753023473364040390484019895392399143714569844010043306895915006805318316932875208617020329847768780375922756906307016640617196194753339130921153699096877445958324217131884562016285389574133971554008045112551533077309117715943344480272980346746287144302613212358978708488356418781806521545889568132412061149742654326420938091360376152165945984669521083155632980049325305524331175473078178074092656831686834061250920947404802401180912013971270674552440658114457767507595294037177443766726559812571801258783990375233655353958115971672482991452340169890475024392076452538006198426168707402197676185603567823512384828283345989811630436284423100276775587965716452244380328736775996374825625547745361335875255829638335277539542305700934949498587360288235793648826510497128299996441920139526564671227763341821323179120461132605609172432902927534999250141008212354385202937873802807708444017590956626694440542648547951651923355628875523040848181018796782214079873495606856493725887009761256485155327003566460772222969101514006604592474242336515840558098721179919359320688511257859184993562394298222459711357077374248000427969169685584172336254645406173041443444819348990849023285681436606424259232067544716214917083930408858207462621753256828093728851428554035690075866179117004245547021287819595661649585783558484924986481591422398475556067299421522723544985743072436898989731104961760202379501931733453902008174011704831781931948079215243487324014172266485085288303993132914685966971081231155412623747808313533361415464646681601187239974320766019928550819298854677332501120587547852888388814453426108451483196079043603077064909906999730136710433093256952260691428507139856375100938434536431651911972907123902614265595186756192855674895751962697480017330532840251133052537658852478852651764360303303075301560138023643154190762633488831503819327968496444583655860959431247231056786283774414086240308184419558387524381131084403790286044041178103178867298885547635767148486758580359096753078857960092322812263914900219430163873786789391205522614661875839284528272530160551074972179178434103515398563824719561561928604720800208937413198737542179143949567592421454354133749374148784562895077850842443491739867075804328806458025260480052323335001278567971318151623932936772096427190304147129100015474426276708199011690790200209555933777696477014432292872043500695305552056477214546602961584732846568578839425807235923786596869254809035218081022687048485903676006163581892774067677239581460130312967114388751809158037489708997756760369332237704796641460704758428260716705584848487713645045021377771075873259659322045575870153695634634206671263814136367421953863041119607069394976684617004500276745699481038630641207790013426265779225031062619536624451525851634289711819378643230156398515324178518500502511371277856618465573631916117648282647136532345470302210000532663577048428545895561728888797302045962189193056517210405061947970890123731003238207656292693778923431686237771603930025449399181301860495800767873111138747413234216415200972412592762833201791431171229731179053638580740713982551309150739440052248071571950056633873336235345204593861329178827638416528521606033007102146990872126805928171767308335018462235363588687541392808260979548370902356485022081166187874765302223659650263194094372843961876885669180526352004272435414754432593135861531240328054181152005649057424560127505633241381590462570532145517683973176634874402327111738636037954003348774323210757285300611749094444386538863918655386851967478280513218233029408521488984192946697490591548624591690800043123249310997134842139553784566813545257060453161448193966100214751074179815388796702695971874295002199453271745954632830949197793115262356203914723562674896158096321449691318520789106313819902419999198075957021901768073543413821431279882567282012796017672835540655320279052172287327187109122052319868983363441968368910488877359535437128011141959135277957778721274786823396984399610582672831249097790719707333561371250560916331600756266469967586993255697946193840297012570597598660997167489325143037304454006366318855477015375193084341929562006902225134237663554260181939221738398349377606142507074682342509521847431721206779014448841489756948131461197430944909015374830769672046231291513024519564064401682726404468942863549658387583812684551723013754971047757460636428604260292199204963051745588918387163823749220758944340120126527700917750503262859732913856215883022181029704208940189161047124723026705480393659333520672555951651048896842277341657637652027047714170192857692930292373276738165255143331683754261430039017016245789917942844586880578149584116964432458456350869623830699021860320497601300401236218971249776125489933792905416734054558551761566459152521111714084541449316470720588585392491495713747706018992141417476405101549379734222095661039163657005603276143967851582253991672411644501888717195766110260266388869253563081050743353512019118642395452834136803609337659438401763947126964384414870889473875385153542107909769141854057326898782357375778467395375434471177872510742041805106909596345387397329102064056181594948390890473406676587734188336491825266239052388864826878280787994053435370653770156773294423067466970527243423290933539037795600515396529599671686365454693609460510753544177299589240693878449358055182649862224105996704117513613455748579199972077019917185656567580658394731388937926238489438394334009318944242866188190645014453787196190557527856268087441705557511031734155701313296908291457782332903852387995911747928189743760024193089918332695201694125491609236533588837357196592117504642147121011426137284841563029224904643909263263941403582000467983513194863038339845967160157731587885384040207558866981020722698073698286863818761365478228704036193661803347377798957148261627171081036430238639134685350605102410672420605819231450815087289980885607094217365776614270176963584264017616817161821686079161244725362895280498782123535786053038993708789619612184409019320619679512385752126836980380128207894194223019750556037866989284866419285424258243425720302200899340945574530631729736556459798192029412707915582207726239081555441711747885251185430488894238140190832221909327351381454855099340060609621265424782151180258336192386259559535137383909654913811002470539436352812517833964149520019496414373539608486209655559448427464429591952708592194332880336658844324711357291721692822209449836814339347196935136750143320642101677480499306511071631860548696409219702638263722515656106686744811766478384398163773519507037519883324062334368022275282596919620354362949795146756804288227037681046716471010664772240665641867517561722723865134101535200240866413328994097778850229871423284990643310435268609406031997747664689676481551991082358595189718611929607243845201858065773690658823578794684413979885035526187537281051826473295127895148464055972688574146963937996846987220335551434800979919474288407838094533420229067624478825756173628199681825037651986232562157575505703190246146261785612217682793949516609338656707121626136952760779950273977759559398240860186082941298456539971160588504708612941884712966033001611008466678070349940911799035791461871112671138296800887148988368236393830921384481771049472202897129932643460234072738441130875900013875227539980655437170681784716958223217811448993197954627797493474519808280918453870133619084719057460271051852850473473440180468891920038837429322087033137317134486855688451770591168994851456619915003796140736507810845870381284267499057968909187577363799256822097970843718884368811202499917118981626791147735678128470699029021556148676009415007141420003932414645794502377979213393782995583701699642008337705200222970561929535760983571239270939959271895965125249899005733749215293653060233501672683454328922475845417327532080343534374429992557315731525160364682864710530273954460764209580614759008615031608944982285870181369739340936983839500251755607239837044718170208262723794018638536509148957962452226023786891616335266156050155131682955660580945523539161117275872928692368681666325868558915686119431190183153606083117143751556787220091726007482023783774463001213276273554167564528850422090555304068143156459204095573043539569161951478149707746970250067527872148825145993489442112819942067721230166691612516772958152641427794723855284552490358695890338625092809103037511431748246506341032700467307321682583953775658399426193134732019860617651412221961648584873247235210174102973980508676281733611878172782542372411751749857381672628225822150559864935880373967609183400562419013624654268744558523168121876849609114935730462884553619220141841410277348988822728046259291231707140284948661238271163344121442713586259375032891481416357556571814477305675413224331066877343679016413632821149489097813620195371846280909538551950535118640098110035373482976431679151294962331230224440890163454346943538560635504989850474976990271226983602974355295315310516386943481163151319163006099596558724529756459919217547017278247279207731090359382774603806688706743907563547520128327619990529431666682007285928642148398964744834604164763172994475806677993404588738664580694219487353489582509978559883728498628904730247915570815046517152888342558594437977917059854357014336683761244668768189069248639433867725676377560568479863901512267291711226498678480380014744593000290138234619002427655987070480283999819096458839921740268187478036021754821615893036434949408344882080807031548467353441125206211436049032092577470059511703750767202339788534997375685107556577039608789542032309027236795424051977411526276021911043764488475346447177865234513357996581610433248920544440590844424671626457578048207118408599015750333983536815845259441935308068826168886018324124679457683342248794997144318016934292923345147087581104899093749129220486608771262051096179862955599479987122587998131897160698455498854894767921722865077221564790587611902570933566801207663710163722577753092196225114184403179075940388234352552983373692065965712587169004169500949105909334198816542901348456268372638982083191752920135266374617979392352723725283953361056720657228538375388108509723081790639860552223739547822757075499422969871520040878247194811767343876076805084476000360783313999825983096888230972721258176997793888830988092367892505217163241388638212056062779922071060984999906357921802309684316014946650221411414724038932870190133690846072776991626600254867704493485529707965446572488343568660038477608591520660107086281884312310902316183072458736050389892547522336429274067161311356418611511115940996844824610802296110987522190884974522665913389534461526143984930474432803463714249617638483864733265458125636104957294829377331751405219047533919046851178954051616001707862166858621559206791161521444510406134355286877472724235628561352587658093271365766240329960352934272080781551424090553860937152816554914490063477899382082179586908675140017246131504684545224904833655009854503623705467727791316830002547026996932614994631927736476055372515049783680079168038324305674860897854181699470606966878910005896248769117103076435856257038439775684723208162178530230348849008420892336780847930961337262232045544416538550714938986255776870899828518999742013360945361575016761301516771848521535138367631303020052517235635853738055094101201265343041319197914694884595347224948306083375863755038642515185868526741928690259524801182285404895520441068096367999064095890891121689948376539217655065995374343874027592929328914377375849383364913959919678319180668494934880215998613899561436251343246446831450773079725871182657739594496453781841094926270528743605338110907511745565690059683628888386510261465848979663842771203570394814793576016453826092331244348438683633244393607040336831153046330172112855239307432473043901513406162675737770777287825819860573804255335094050389523914183396423234909748618577292602429660274183944415304902046619154048041276910483863094150766297843073303025891283215479584418213674248989726246928775163638309993494147549388436842833288475695145855158302600669761417539087307612393717596824382853292185150022560822269930780779082028413233461550423865881945000332857873492614533030793966830557581621140110162151737461167409407403479840325279778557960923641026247674242420259313692690218229313728032226871814238785498511191467433129747351978152641056447577564721286618153350011908704862801069591195967858017041052466375894201782866506584735339065357566978645382227486079099814209154877920487671294498752945783050863433333055504228184275085876551272486660861297337333647670429134847245862759356966000528417713623361044980529961959297886907969727735978536110317661645506037588304913212752189687245148581993672382015484574412858934315179934482488549120959100561491623285854308869883799599559402458317464594188010115493486235842625423221127156225434814771135948226603714123850368950188248759864957578668074098157755963132105307414715300959878812750459439485647088970071535196333224384907639937137370336373088458236415502029384681481391599051015145134069378286301728063501024749464653124563290125497179297577662414756518130277932800079514678566631089583677451736307469944554487749582862001590164001589221214244469658817788217996259322586722378020308248487355751277899202573368957740291695417222695705976224777111595307892296775019454747307903043790995936624641001913503966666892995805495081622371965805285913656733131491465531343993637645172426140400542403690400491039626286843273857342017689883221439683359198011837087899444057181794834353927714733911798691152778895403202232718463085903338741209773042851426573620100877581949400752040719489759497863157436115480326411965095709103363185620255321013661910206115231576022872241227606491750610270386679972649591812682110555876254633011931787703845180682133243692488391869853336347070587190649578541660926693439385947773524021313311755098220618088751318775435254063381735169015558570885012274649829232154041581998479296008798160742021005461016177064724864151982975203470959771885954539890804699677007039531969865102433819719492060214004001217386055055284789131821454392207217462435843877153392058989393099072541248533138689151005020114318411812267869339709790805430069386330615260444564853329075365395433860948232736616747005005127001892853883292796596444830369460571277561605101176354056871676258830581562248402611600554668866563063102535360983620562819231977976527914223157288176983682752456053704164798579749946403279981147704170674846011491807041838161572429794597699421927341613815350081393678947095034693104083794252794092999024454291552955176980859370894234482273569385180827140117244588278302484441065989594149674927276812405165076865327740613151963776021192829179898934298368081694374708499984976329744353017781692450696488151950845533012981130165345383025409611250351739956070297397714630222317105647237658940747617105954499544870322515604091595958436935207586575113311435910202416568456990193959847192234905197722450529542331982202052015220553732972058123867415887138328023019637292243378860859711534798156824883742170959972400570327108912806231209985814489876550004187624760964527499665889508832766831465402354561092884851350212574978867596309276125451426534353484757930142760371989285775247241367028377160284361920477408338734486145115652279707359326787943584433301623750894476356984058836452295883925517123238207715235463618337041431846593352082406924533407559796151984172323398537038858374959485905669859901817722510113231524638012974808778204106454414790647200800879591581375079533830750370854614035713330482679252953970463844292844393970816497337080542642481497888720565378275613367876887100994360072123358476909534963585322416232049316416101108754689316424048771197662282662637157960547257863850693235554685332647409566398264844238645807354273989785866056790082936906185655170400836155917900162791952707481676976998261168928645862811252982307065901352149133532554045502032919461234005641046213235042789742704253591477713303952313734646442177121699792226619061635100299306667974739476055226125335848944290056550053754021671272024842705000940100825076764702910160635816149099341264946196294361976460499595669066393020163883159290801412469802810251731477944999131503158756807731741874183453320876025172215848897613696664870783642034938959776365527020370439370695149794917191544409748761681112985458181674307735022231794212726987352830796571965109906035117072291605644483674468380168886038858372802034666737411225020310598260525110802398476758118243886482571600926967418321206243960906106091118535488440938196851564395559250360444644131023681799576164150270790243822716303366946450621930660064934277923121084079046373709102451711742596466703313145102515908489031651839580627379206239529792929898553498995921200468738392160508318136481953021913632245841663302885926670867120948150378972639454038078407795944428520033176106466489057971332445415979360540193953580806397978049996453251968136054502614001674120673862930071787012812863096430244558461580490651983040385454273661901514919160755102601229029733327477782438357337064774404734395117648793724820853517767989249753086589605193909268261135094506733905744596136389105707586050250545799514005557277838526256372680360075816017017462796278045816675712775203146842925310811933669126347812813707330541666880239693618025044495384563620466470338692265126514388030106872334016739860922663423608555490694016755148524670298511306698315326037884787384424930333634291088724046373822338899683034589541174256931035403268388129550307355636444142000854970671430341235295655896019401481180963719504243366522659882632434005015794901966369980687026233528856505915443895545817125929654390489891008293839899706736370234668470306027286934646161320668659165971580708233459401985808507513268415181908207914621320305572659336351356582395601399182440385808945189390991040480200501277028475224334353187144013173169910980729763833815434688808198709437308502663051519959418898240572663627576966513373874916019314432510248132032877591570226581414191088629844468553626772857815480443138954705644005758185901492029514673585441576680611903487473963342246541122205433901868981015255032417487301507627398502471785007114663683525718597831670571584711295865643218430868923248907927347601998322441546352034225812496668789111927296102873237388040397377658799861981441629128118754037482261353467470257266929226982083424504661787914050275498416176631951029081821540865913734329744911258293292365301867533632912249101726555341762696353699187467659749437746793871648391571840274904481270448557930107973795178480438650466722663972997849517900292024199224792078341425530934116085408194080164904479822332902212811175330009177104642264898832764842161578839981717699550808297310866155165778518111018649087983899101146211509640518091323292066607561778763491733887642991050858738049171261965676934817732505755631934616626592927145988466153516038867571439013003389614290147381864665560989002326648759852763398193597411154692390880516658025304799676632227637121134410378527036844237909745397762159287525456103395323368379835319811023796817859519607927422785634881969351878565249253461986663295587392061121427380767636145647290976445557798518957170025053811193229562656584245937065167469989011165168413659054993904767391948345058442828038353750938375017202188459525860086840010440548729620020118288536250397967002798130895904194774120884379007239670518458687199944525282261839212270151470474206496631495578470309143123133103123079663316336630165590228302616521938106174580446183197920718977427053463515601909125926518350990627431183133780308301731426563182516858205628284205197922122635332895194238634259224025558654302580439888737872575655215349720006864987470627985072800963625568277533190424970773582083419137766898456560643177565628674184100946904277665800856248833326857423319093376677821755169716758686780597452725338080909091880263562138124650210751973123150846150529019869753023877448709603576775734335123574596767874828352549670267174094337686396090214867033642070358449755950583033473560175357758924231997231876117127320853859132060737379792315600122742452504528158565530885500686586618906215746531357686262681267563886972255237097815075400933204696415389766120169362124811215896986193756215797662843119447272383274468649191211720158776882227887465908672827695251905084619836101393401437557390868576412055135831550831650653772916297725835537839172192750396383506411451146562588364915604744856242796404773881313462930580439333533547247076543957683932292932426637929885815076513757665138749200545012438500853522683315957083927488412768886368547795875470212128352570166808065947681784255680371619481631731908197824921894196169648500341600613811447691501635019161921032800272401762933880212272546870567388134208396122666560139749343108913325495925074126803735473830915299000628628627009324811493013770250508427074505142272740688586582338757547965705768820994097450295971267094680397843860332216462720641996213963873024360844283555317262454763180485892722379645148340998387394824388094807892989016890376141712797008250154550075021091889848883578548555617732021064734238081207111724528109179356993488797180866926439478550004128711931792166169527148641210408497060572210039137280505089497260804492675612226981349529100493662807663305266135291049325934862537193928324344382771709665156162917398276209724845505970993494888058057014163084188271337468089649007691070923340957444082726450156327838211103812956490740636863257507727019204068076067591016176748188089988901351656809833786310373687050982650520534692798168258773272760500254389390874440965516992801674628080572422785852703879359726842864903283528003072164304929313788995659387360121037708426154327044842874730749016531603992226716145210130259201671514727301709337908296976201327543923797041694456526494276359114656714657180062806363325954272049866623935404475203417580064316607789224322484884312782603749895709683112633185008541314274204080217344013747643976196093452469604140382176373181381911586432921355791145802000338263963569214961753584555083586641615256327288260427530815669467093175500482718447299388150197107797313600246639872581099527157059843019040028207235057304809480834549032681706662849983533686109154534178664326006480588055664245601432006085848900673073007831576942826414932072060709426198719094608681023278500109936497140445092358548490688496296694754748223969296062376191398020772025759071456049640473862794202006470378720860294590290000933436556826378274249558827777946730420680805353986603883378517003279711836472908297513830805809052353809134890869674241039457167199851681650271199159909563959601133142451403667154983856829824238977578801495386149160402584987899877041816943637596779157197043576652718234336588844297879866193536362952497618621476825576804846553494719389320744112426699049519587324171150930465926073743973588847181891307438997768588503897386898224375253929426612221390747632367394021792816138815111512477490091420231026804691942142619033529747540003115888159430994249412845559410251310346942999762886345105197170116462444832048784246078795429868313593648886667353401208812441571255398064746502386361562694022979945652933737131500929301879261481473873866165457399910134882673004706489561067316012289456981889980384856949597743692079466548990199610090008021551863879744700789145812951705725455916310925031126116556119786227322198310414913164179261013964284666714294887122742883386538348179307280010550840191909383670872496822378350574661848993900720534972653131815560550301182663704290961713520401956006237239424196371718640868620227612836421781550585238552183183569817101090273999121303282490584468125689899737691895142818891092514841935301947506711383904179804348983778286753256068837602323927808760479314591806743606603879845526105638512209427087291432787391073708154273541923370490891668843237705312261909734954325168362658628106572959438341093979993870693219773852211030723331053894392688478247311248522479747020833551159391805553677563806161673767331308218518235886335839041460906798516038884211524305442156970128357469267851440122876030290454291223966074814569788946670109852297074529719941182412331004842750924933900472698541049381489220294765906109430138596652455598879620176041254284301449382875189368712328762416494734653113985445896615596683722514042457762138133731415846019666058179879145720056442649686201936581787112048349337015166291810985463358415074159439348638875373089222062955583977136715361570151248387450959273343534098698363330003260232803003343862898638374250005164182443205164666785391491160451469321428738491076448147571561920946067497484915848840185174231064508658051083015729771487343728259025386560402489394399591788509318296048128004839991418063269032120345920732388435909247959651016474627283204610777522729694701662401058460901404436196083686745366503496414439309264420891111024702958804195147952903804855672155163623173477519757758888867926897365470794493089510018881019288877051728567099430897223588496782070925187225100666544423480128585996379961826939993105880033669856708149594102032332668857616974911385464309997680246078429619941611517622814646714309549274691134356594241080778955262976221369720131003281785269048933655483966354466628135933060039398979865734454511993833449235414354683257457803822909859986094897369671287093938440520290420987907529064010537067159770895911665536363640313048307652449828737225250061186007725107751784248830474736528022499520506662901675453700059558348709451164357484102396582209091370489799853067202365972933891778236252642420897991240677713048642973594293375038802773750807100690123098351144010940710131213686228486523398521673822591484737769670470617861924995504664184186007257777495275928712348578700529369242117324437708223954958736731531458528774187093247541012794099125405015326315730653918330505193307075617591102710117913490151572434144292741871987573740064212359533963206627694514590973309419157391605027555369934277778733273862033954400837734374532831176638194046542689715567472249454620648370557320158072586906177382069786074725733424421011295228678380296020909758671186189757158944875622683573246374471903866840297488319849978726209959560024857482120432718494391734773995287146116613293454825291055408417675004479352341847526133707280582439768375112267837704941916606719888301267853421720376973876571407805706205030802632808614848945791658433465242178104499784706576903189555275791403345245216463530884118824682658934546357535370867895978758261025096010368463592152602806173641915154709880912229287464216401474080905574581006114172948081428100071668001781616110037585933531302430366080507656843616926196829754956470093128152309219467961580584076539494962228533538581509666063237763018612662067588966123820287278643432755961961506262720541582552460754299689562465415485857423042263381101896798491234856219726301862169964895593642859909005139858578514390131679131971848427396768938223251906929213861429538385018820413468584956057160017017831312026601412774076511665449454015441541590327174333529373290475521914030108956163640067402903893345509904838555941978915406071749070436561756154563074717229086664326969830923516932551539689243882814249087283861351575588314058321889093927724309520391015737357405491020436083329647079892892682349899454103092501066029136893515583767842730572910815646010088596158556185398887442520793152066320068409776246087688249229208861395601956150597140298831599907922230147439772526530324038647860394498107776375902307926156084395835873088055604571945567894170329903420276825408875029355443440468164283713154182668514633051659531668089226954099827295137250412576697721135920382784283954518205233279279513222656281119569089097349631641254147267073187608583194822344878093714504942141816573723692723925929410881993146900213253061240379528290007615458917413097294229752010864816665730521023313182793508993490347805785432887500314054664838982992173626793376978927194042170194572996406951609312070783381390264597219371632258163121731761141365908276451102207751220060358902274931949081315050043452638284001523047232328905987353998798757088973618880801980129063061408364822947913849011702794641103945550109856850340052692051552499495010937817320917040019941326199601580374234868421484778470320392947716345209450701916147535538723778761758398896719296595069560953539793952720777404559133064282569947892788889138789890138424945888386813273880020613214619082339089925511415491928004811325763622113251639889516751931756635813549447959116563300770763268201377686859703901850781343002631487611865371205751230263158746173044310350805874826661673069955350557764752113515562429335837135114349947759319074214399181849620165070936101937920240498966336179493601863634856368378322755219276880214288161092554218037979551558576203920114190957392397860653529819606489195119160085724644779576096226765175353639707650122675492372809838384398741012294459205494056491272360640826760217465273408887615648861759490865107783208248171166092886550415069067918077627630848414458044069983996518891609211753265822847026544801276345056920619868301760483860169444154207495876343886012518176800206896624068770970955284003191169267088581772030111918549952463882337784110929676061471020763331924653983798677004566690042149076444067943025219534910598202888435595314392587779800819701697189643160714585457488946931726989949528103081323281325326717049126744122306888361518826468034285050949646075921530715230092333240475746628726383372070306497125791278317555698403840840419270187582219960152007838260314285214926253468401934249259871789450589677195789196047921031642116973022061990649052843134671565579052805328501693896857198476619895470270074907869538752624065525966263858413829420241100332261824532371832023502277498581360904723877746857457119331111502078990533273153528794392770080670675865716937916025587630705033080791267165909631425983862706201221337318339263930755221182510635499903209639631937449606729157683929278883277398470318809245277956283550688199469865818214927690396628788022224269857430095761515128175094936910019880754015184842055656461687336967036664938031877894038358530664766257595004458771490101925042591656870829656847557537702389237344520164616734130508696308664327861202155177589061832504375553351148742166063704301648501785365533286722720393817056807042501854138453321012246973337884342394565891962943201420063239909090241924802017646056819168767908357062396917239374032531348222076153215958728660349808740881751030785275353645964229255959200712730334641497324907709814494574269633903151094752753289071735540669212593593117914271959332382228571131168985869843445796337633159727101144932585827698931296264040834249737339941707297003306974255911864908672369586820470056291091656535633908961960242085331660111842702997217736858746603978844363691295389135599796775831550801147516401843122193047971809110943823121308501363969904532049050427259732625304447506037030497454580854970621930018467288205659544119189109755588653080781956767839852037744239222179781811908912750582435287109277895305812547916913794982678095788080056669367223928061047181190875868550043833295383762756997581532394816082316006629996187026482415640240043238265127626798493347360103903270995794614786518942626181889263472480992547324144052734213615603298338539463377360609385434031871836393699501464530238145336710350230616578254641225447149109735115490436463488968445619319025869474478781277752675371070908430511243994568014867883436266668176054107157728995256697604554226060952182222867309125011923065439614555458417883331764157689101959301591337364165019535704797612506421560427840912606082128040215222672759541097002350296594474706458301941625542671788664715841264949907289869992721592872182747269092035539539971982917736711168431573648272739883506741416203800208541883835966262930562480165285151447259389095228544339124828701607160028273123658856056978422613171584595189702109204964120786985268066889057437269442993898466604609237761457687422966636531271802261439116812673608007916796132452308895860096292599764211921142984970147626383648942680278176424867423034482749486679176880847611688636364244940375559161233470652789586567454050112206604155669400313415007508280412407339936021190070302382527301815295179088213543906433199901962995040745025117879324003423129543272531382958665930049672382298328042264312441596511136011293263377762801429154771680429284461802078061270444479869926321453247087521025415480610225120057337233865450318242035104095057762438791752995087765541774685939638541569967455740839072110808303324955531716628528172526697391826594882881404408374102706299760101912419747029904740178544201945491843264915459248475241904061824709418548187786587865438353636611025732045320252796724711383745345842914207385719940812097867608772886886977498199559280394363192864657366115793563811847832626783244067870088651967493870666591796152118968064677685188373180417780485595171095999090025958311335317369613634968128409477038297932147335573711440329298282198313922263635094318762093712757306301785857584685271983038988370433795316762069048911830784840946934276073689577058991015395117884699274738382621647297744116289466007228008359665312052722781370193669595316100364890260369323897427775448137308297709913235542375560096983345593434538296772777688165649441860712959777714575168443429619896691380366024776863635210587513443129224427929824308075095251369630452003757938487090803993904894928108514515316941633156799901336905055623430731325729835491658253783464489265135876316182149595178263291996351329339479215156191018838040144859423739319326309631286136588773823441009115781156707876777259715453169408657263260340608292149244897283249402276880049700147313155082214746537602350562809971237105528159756876145278763133048374392129552544174683930007697905155071168421429824065510304540992171931905028817432108070910431488616305299208444732639767604897995132923600848383695914199826374844427043100604335253854201967639075823175685112205807212014280025426045949729379450926206034407911229447893089977801222947026537889108999643082801939341894342198064447621892069015287597230970140365616283921180195968122131340917675816713498243429328710440853615626459521224051722638866390082466898820281819007755355332863691985527263475570306513688301742397232125245299030392730732953999637410730719115692146872678466535863354187859794410602276085964279581042168357003497722885220492538620413654521011551463507424438332698185309868644023081944279874234682644645134978726150703230362734101077807631144612817946173816897801823966875934881200804645724410724287908376539077437209832458449998204011033044681066793329449908170947689020325948830800568438024763326372176663545469891832822089854423904163067391101937923017145928383952336205165205252069902494573687295510015190004873344273032123732160036126535147258748009507085825707815193036138023375663202827224029946480671460741954512663845815783195761907931522274264868539726311159039509125232605474759134007548023824725281701037810811252346445641412631434168929683875688670894779038506534854045749800513875651368365484965569474248860514366760390062376450490402196727656819064170245109441959830201590621407427496323631645082804490770515105642566250326696210504500539549365048546648040658940106087853172092638608899062172935102133525009504413605713031148744305269017175794978326660055201384340490703759893226217620707116381281752395218876050243219429302941989606517366688935072301867750760345318888722916780161138596506863316889965938552419627591928373549525758011747959722278635498132984443833716800477784049445078744460445657071904866878842775882119786111420144574705390511124324198060755787121969944381659349649600761681882490092088378738761387851277213514743488264841880704290009630855194631863493608775067398711211883884348406284987158205752292957639119877704355615616391689330809487492199037336118374342387255570743892649393487616430841477519785527187392577472686127315076980572062194274975608708459388697059814201378643182821013179581772223927149957476492456128365871159578238092981057187626986310199712161813652154248999190407195481178285031219561550666428801391943834950844312253268690806342050684621641725681413601799542846581115318966332221201924743501514166095757951972678098594740919974658313017699977124615045827446914806059557366327382604398549910379044296882290681384876078888861704869015174643660384698156719814349028810085060990772609752191277062876420384495404004157816096117680348524802486373757294353333997017492458594729184177671820404998036235496969596556127227640574769384507903290694073333343235154519564079749314585993288054151614035366264069711293082960539317349973197752449051021962915375958954532076046878577576289312919641633685517578145740641124712671646278582646907288971987714556741577050017418673531673184885093414065287511476173157161971015817744883865212104463073195181736955242386892672188808904998986240983047025419798489634341468174782371313619657086464537193360334948895057656068199479201697250807012977875506640423334257150840160507522442912329627995373796261779746456717025797749875996033162659740954164442465874438594677826470849392323828111544084935456975811213184032824432347665560204420686502640819963591413056460538784620086271994372054393774824879398634370113387003547359010968055246004084117029799732307565310406970683323400905528938896273147907791555988619399279607539272088492149823173365134278558743209094150719451127022144113640707246646763664737722040195900536634122013504138595852531567648163293852531154508249709118093664705423213982518324958570229087945184448215102054883105091190332436593090101585809865548753474549965395231682819663569471456536947511098652199916345136382826032080053437035023159429351081673122622609331307231131223294512167430431745746063824688280625500570037949260032814925504023458456285263113811447119408968139356680888826437688200630868355603551726832467464715463971362996907101794181975322269601295653392964152612548894822204117011875623526037624707283431482278248863592069671172819408657401364669348881557878079492218919216905637464469669627970404005762708540281376918565272355352381227177445415620867688290072974317067028257952469512509467338342115670208436838076385027112212200042369637523645382474797957571341773547066070724152626839041956996658411446950004109037642236266087154813714943647425330774112242269051701270444010986717219883857114541024044177852964234955332608646932119167183018005395152096142327457403627787096197767629029474049206475289008733768087576161178692300943270579541901761081359898994221417724678014723587876131189375272068399369868601954445530203181664392111678598984516376922528387722374914725241881682193721234465921031245970168883153952708852404664312609217829272615337477354591784968581552496406432854901469989372171300739324412723627076385414313278258436370979754380097589752585948549392505378642513658654057903125125327768964780161336449963567250974376665808373716437222815685165511522902793869210510250932737262830045353029769942327888603329401501415351836577428878883000774093168779472055922291080118676859926596511727497282847639482449409127864181642685730643835844480773212081156187831850268073818227158154155454436096461791236915293296615636075013901624074572586119487875303314757991313959250575923052096255190612032397253998077744151133778078392190751532008322756257580183412269088396710074398947839339699864280979579645021872063564998714101615986538142540057123019100177718665003890894285461998918966726941434634564350825773843344867824909662689228096400791408307198339898651042519685170160948358750106967679823022280258140656990789788585814889615569916855208171668730539876154729383569177291294121141461034406105765444609439680772492008049935300153994677459320497582901167554012188010474778643754991427893904135511014999383200385533976910772345847993757532425515155670474613947964833899440610735369454419274649412733328264082977256217061024686088879549016823662684628434296718005679468464446430520876677157606260287725622677109816535561907624176406056961725171604271825289366477652942529143454839019983625835007410741782813775962864042860375928869130403925403028150398078662992784159672539982313311773545386801477681355031036308256429934540251198535789093214268723968370746381908868367323467334459300294272184294618597552651341101857981067039346494427033060825430085006760917333703517372278685912839894168169160361920707096343661266362300054633807187972907343876244181254805006475377905750828428515368589769982759089358969621739689305475725205124412329580096484457983341018883443655154724165786374346464690739938454410619472193528506780037219768887692398788558190371219237297987667756272915774063883762618343884267320200068723101345129105638611056625245755170969745531578191925395435390894438652355764638481455169106513764964786503850136964289286908983081997345865998338188634925526110690459090718470924156668736899876832171014129967410257749453891902596078479923723639387867505603253891584368464090172272055403140578130078309491045380993997858417599813384988676324798039326552511449765256845443812399422592458351638382444909166720199985414610524967878543218850279481068255728394516791884881672188646583090086242675826724412904190882115751519129582353311643107171197139774975561825962303645102528028726170919156282163261276409306531168143851257794825482277621245898607686232456590514776857469893611460003695441246187221394724300773183646670169930579891317276571239743650693096247983703043235593809758142778365083078535612113092282514080009749619614871061261954864024391987047162746152729676268129899463674114360709184746377609962276935004399240303155416346062845739496998995731220570994158561257104686930156931193058067758220038067114867781215045185173686456883575570118984767279858153951466934588807407640155305534164536122332170920811962707996477122826453918909189907666188738933336946558683158332100566774796667696847279043923085930435713696799439814789466827916623265884922013615413456271607295033926822560153763603786225513765568999413932526465270268344104211400539576958372190753987306604437332668096980521575480371812661996565732902269735543261047240384678053230041498049300609759246768808126534259448259131233021514532503032520699335913035467475672649891813886479030126873524557600170977113636267895855462824711725253714365833074031831647387465146658584630309183282609500500840820861871181430063602426916245198987608138848757985559087580424590875440934493067522234378647248905598283589252436520473974097858766256813608557495177497755640480687894974792424721751748573120341069757544809215453162991943417659067102357829841593711373008912406939804153264832103489392895631278349711259897241558220968065261328477031874659202282925345728117546122509214592213581467585908929860621615048215179683248631952487829032881769349606984677607876362069479402665217524456988429228868410147346414245747970716734876077089521563894839614744882790516886821307897629791413429308983387874689381727380387457195377850585430573925226379971466177016681449442671444018368962879646719192535090219876276492656832104275151100314130421934692937733179842375319392979548708443020253354750583815840974611060299222827805404567939289775462941214036855701805716247020364472590386974179669346528764184202966905165056609825658789780373350317211300009504204870093616571064072654650112081610462850867120421975980880543702315278141926531234304925975236781274421252661747528916182116901600032885349406535634929674242985669931723069268593926361831494550077833458194101563055928669811082771794200784211733110118925449785090173020548908247038790020945653284269057786049435960107223623165784252176051697245966432731842442122180949275159358332976252976393968893945248620539661947379330498441076528696567276957057639718559335147779370308198178296038490761747026967035838880597563675318105254731642538282005784183126554564497520727897914784850818202176320571980147512821106063285839448970736624523393955848650745044799844622685923060691950838990930336041220738348985608291070187843765785436387297382046198224833115804034668655769494710806702221078437346844827204116029398779607730150091633589583262622966900112250701456877096639715844427047819205077883560670740957094752864961950795250290443943101534400481075155652580565043443202241786313794909030867836562105028064566583080819371450420682597145637193193128983618713313693196878738439897274627870865898339588069344294564287985378027558151192601438185709084628237489601312622557485588922350300112484656112597784769378367630750618396264240423926536755261612015210660822034428496451692679806511128217702398373948674028024174082805531031161081356405706292187246459044753388308320108497564988287906040027457754801834576916040930953057873246765220450643804831095352225898850120832972029127661072441858362764306248022757957353046788685575219334203204706937278912076423195669967142354573783235837177149972792660841303822836627592683808759290150293823413193779913332392570859685107034947820177965821749330757024399809211061764895732275191034804021668114902686833208920427581819853042783812318408327305926996913100546102536065291395391200077197687171731881177672213022445297829138932969897162734372214179494050268376725788187935052837475497749197062216034831040989939117869207349896056355477642902967742231992854397999140412421614044958009069361761603223712306319990240992693934467611360677986666272765608667877987271361726033130111510977156866695686455071959871595860399874018575193520411543826941352027942296460015480675034121261184247103078916467906304479837360249220452867913345161524551620038138227296125204713683623360869321034775301215132643767567576636198371796489309976235219486286830628093732561180214136568721209197823689362287999223619828498322584427001592172230799727162789001662525149701008462594916527792800740462040195644029972597571921006028909013878538012461084603552890534314257620146713530371206524698532184564748820552793474140675562425104693692599931396639843295368815838589386811597771211267541661853062373441472925622689573986157782949462838450909354743757901565352785020294941853968354619145889520954282981903400722437814428852229211535003325663787123006644479369610897493713681997609718685114025711638032872183055963262393739745172864197735584135570261426467403309348105362018788092197646182035657673294528154876907588765321386316811012438873385767368526466093691743656161964135616274589422618235163862014550745107739375933231550804192005981038806294092874142323126053245837360980941028056932085589359593092854618717106742966770741253079639895420406307623285742767517974602435409262006146623276350224904977829773284468592651672449339667212164460400392576108962142299433879858298864073568347910573191198922430575937580051796689653752222971241408143358454837978397789968043699662921772842264185750255557565427159240503176418235342926387322316970137182337359762049077891978019638725758929844393445512689913124195354407467800757738510918070728218614250573465714591057360353216676450790086215727139534507533191920477866916227342600552129064226942732079249698233733351324709779536184655136801171848227231787791414966554349409668996627185233991494015998297515803727623801824406833229013698692010972278950730732123825990022045022022663316648313844823541972010917012406803162092079469414210104798104771971142963605419190633424701952946537168177529629453780106211161489631985694018973940086704960277109510626249081011618551052592691132107507550650907326229322895590497662528367614619000828131883986922649398355808076265705585696747870847599349197513497669782979565801443849223116769612638843450171150752789413190935671931477634839384784095090398932197203444087193773657749308059697484833433257494325661919230443239776646227618471296728310224514040349462779525163028381246903979146959165041426896412911893602796799581710829262192283702562699556029442328557259179353302195507281899316330172446700185480416493757110020484147383057706602589746327356967819271003989836521172375243437756500449840017164162705028485918808929695296894068712930596611940781549171362305802766164726702998820753885601349127582245659327283149319278791655608003059058354083484141494042121821171910531880544288778336494300559803556261305065202237583098294891899498815770414715662144916694457960404642067220675521094623154151581966979537600359319422723061630079835792635906345264316552228618671398439076726538973749043019379264417666472996265923141477310807965451604740273194146515816261340855165504150437086256341048842804722249051731178852982762513490406454279625517214531442724851789848521691442565637711994438551743646800025670189363118052327820935184569215029149471514143772083549379245415072118532718766039669002671097441038559703429341594271837556228993264052825061400754256042064128364230354204320016976921730435402558751851209895507663388884210553274569289674977624721280511468757433632124567378585212920978827886511624357757993106467756384515124483325524173074912952570105614571616246401526668331772476301181249518233449245753794136932105822232174777487704768565950887787533621080558164541200470366614828503463500636026494068853416529790043868272303485439704269552971091813568295083729974107373235007130031155339274363340903171700878920756847263409595481260139403094172448388744814827771378483872994402599305829736626454461560313467945975459290365990908034327572015379211467740855361388636781643888916290728700942092480892769932999690324233753029302193866739415413710009244059222349855840355186279780431741818985271010076448602493166678675976899828798555298637671416114904715540372592619206756648431465471467676943065340044906866738321408254399264111452580996878070287552516823835606432908938112230561677527120249930138020154745543599202970397787795418915461525571473770261171615692710904037045947543512664762009816026546676742884031322306882948609006213453357330716536238812301541878409534116385451841449927292562544933580890893402634787954321247832223785238872011165223583786294465982748843999749789802948720058595977321424019583426867371525950834646572309221464273243735146905886911911155908643517911412694350473159484016929861845281103957845584508147594182127444234924435476200957136470640663401431057198949998407057328129530147281332582108433520175453074691089225173022501021476805663828967525600049444312243248904104365689875934044937594694030581234760730318942748977180632633646464982802143198619747115258611369452597417460127073032321732874751827149454328289195700817144062375386108943244365127178445461943820924383970997084353652317734362201549715069333804704671611432799038761277306489270300276982410050238708833131800052234550850023635928873916466083280352177175191032919829070420743124079062778020090111944810463475908229764340265268312203502060047834094087633263490748651876952229129723578920671309587597286595061973518885434029175574817880030570109531045861361281919741362126344540428735841633337517887560434538124753460049086880033216956051614974036339581352308237214548725274030096082873617722367191142905744860893743693400681662785637421112839147074991560551861302115434070529191716140215963949933577506649475196229213038552614208335078823241098727353322395286143710670103527312519211444357874833794640458050276487461740386686381564586671928316205646891511813550667782246684128468017546485985699540201489794129255336567033701074794565873656295792416476974097810121473329321645113452929951945184774052381356957434533007405520539113157452946904247004715601590683894228766618187312648148911858612442277295525844428158410243581840647997123981403798908107335009976107807854760931826549142147706404301343317640197687745184309765537847260654723881346721225773607034769149716385984144093358976077193956837658867912974648385052900448147515066900575662580752079279307122669022673982226204077398898676999407166183698145895234901806554627933294052652117827845745962314004827156257256051408710614986942251867835993694738718382897370292489403708490792792871714112353553375211388293274545580882397792165152002520400380671667691961276582474300737229553801105083700860233347389934944988011817798682265066878900615651388659610287588226417543126441308981811472056927737339588070665155328162960917336047729423674910345812976877232178559292814953698433878646416966281207604352807904191893191152361112389201405450741267632682741801601962406072891883581801242337837695825898034582806304011978368808764262813132594137760680883812884979227593870477315694170299797379666279570354429519465076570265357863917843299169111185151764372962051120710408518212274668856370806312078153233320034680201516671088466249260893595625437352255418317783090155103850037700589326421694728461103866889360193904867987076250638878117890663936122980697710069489360510384648600302924809098276885255125296272348944255662817154407323535778920692235480654421623333639998194391932998136599394164839751394567348309870934189262013066049497221644663504796396397124608250719884027474730429008269708874473221210109884612195535370519350603800412727678968477412098263820960231552900748160815751373840990996818397280672675770164820962501753524577991841685812365302895058865464797974262379735563713782299485810847055268835756384927600227798819118181105958611532653175089345272376972350879794761031712636276123950275203132256674147142489874531080343868986748296894348554179427889482736001639317421972674705691572361799628663725946348648851229047111525704817340048620514579822265483250481193926991651126320207487119680798273042513928416893568290635156768582114194257905213691393310287310577858001527793762781249095560827798747199555738353749860782328337388740893269714301532681213974797667580193424084724206233339843352966443862525610079163200998270989926331645467926975731708252162300345092688420506058265646037596377968607306976110712594585862286955437405781108863933907896319501716031883981767832228240247068352727824166690666461533628323744433461131550613104328864646715426121375613877789600336645047908335952425995112011428287282664513946980366524383722508886697582842438558205390630437891029686358461171949655502856397327316689923622261468787829039784208147753913761078265169114203219622896056767545879730017814037923607935996426339205861761024397546196390319871909123813886789520866198158626260078125453472919198327679781406630015786362676005572651567793530680186806115384603315807999152861617814584601532572901652393647931968918295485980294779746320831126924344053307733809658437615921486238733965846340958220990471183835239042612696219718011552128922727173098496959871188551893283231879078717079980462447263865377750479617641618133727848294264550630096697976857451215016713787645434152170893465906515622428587306803239459747658975232726055653602130216927326845852847115177909336839113281848382453426156082896819553949568662419574655648046805769293166086361111978560430275316549453202479022656396632977072575417734920967286067046379153178625393004915074731483074901389218991231121959508635873137312459297576389292613842433864374246772461828826414356373847500564788397925729964276972787731463515410080133749192189063533939129950794600696652591661851587172480047791612417832256020082014615294446056356769258660032653068810748050207692810390005136769111628500402766153180171934879597299254172714067045857746250960536542984513657584260778003738781918868349150158606198226563153216095924581370319071622487790703929910499530837133158924775843538338622550045674514464470852787320020863538180322980545867564470189562826855488073923287058045345960478515493581720932675499075734623542025084557708814744499527666395760654332897791664822314895354117716215772031383854213526351453016816986259170707133743759753058126048429175442890075716910896122651560713145358833131805441079597052276336065468167689873522083202978063689070370525484405296012916408735025479985584156315846638027554805133613194310617650500340685346239707149120746108110996282252671973875934413304444255338540264885011888285052988074474893673926447053142220620147136539120554773827882542129117624749607299479277338171885690754674463712637886817436102770725681826103680522314995338788628559069092473553946296494212347805241172345277816965989719359857600286168760386921671087740951855261855389950956189904816250587210591082570983856706923978622430207324953097012829460204256150749191800325179874771774064438916843163972312849623822075634136858984444043994307384002063536681873722789937193960122500102063405623076207393496334684102289466072096363703362136685856594925427257872275766682742580663760292940736214119881024770981053628666406520235105181123207668299441488621186641488266526566013081964615970600850058667571282187466017085035150474614775000806279480231712144679330185694539461272643277005680659908780326681361807335655746688592022101974332948305588386792962075539041408505658142247405672976868287863995781565626544765982210257577610244871660712736529389793329500445814669714598157938065577366923405913004224347294532154018378387773754295792687687852702904651105268098036894804001507431382651554881329091222023746466943708249925012011339279453860191705932303339750129759650189137934021114533329271487482419521349140847036201733856086011170719694124788087638864891621552257876366060738174585730346453994812718595464384163736630798015915188512306060066881226063827528483357802841626942618756674278740180639447442635852166733642995624682338179861213227964649938331403934366393332631244960277088781932675739321234765869819931978557158262385817086573060314226928987812079512772082742801694794370417360750657871022232624003023469622303239562658626376966711286589823420628825701244654204025140420316012295575061789170451673759940399062414684726116961220218080146787161621683060996347161385385810464662295802595127511618802547613239981470775106429631548757943025424921667049930468172014670948391259688751585699686851244008147745386750150823117474431977705593802314999976485010193957504228454937757599729629018196444075076774256581487143572642527203107353270688535325537443638386532342575320147901669444819363369693098220213652354827609441516519617546814028454070139066970840519134608037511855638414420924675565436738585093170072972532227112936288855460162903053438185118760554656409606934285607224224431495144675075800152549878997929328134528897127903496409323051087470970881095472301761373813779243989598800164039790519533201757226669739810183408347628776110154213040048812114603325896388849213136922841022586918805222985086674886086573165035846100983149337371937213342644967926079823767631642076577935131771901708925055078580799890234629035851045162538968555594292383023861423067889223194138468868386877849745946263775492417293197977104233554875808089212354016594548320907093949676908013613736123996012102342320663749054813499915608943695885492846213873518562877362979051483207573442191714461981184098383832129904153300778174198856159180562099190722932614345582015704207040486179087110202327304309095433325848268611669105271196679861960396520875656865607971377279070415691818898843196542488343731420359054151630569968489193111447433998741402048600579172151703216047840419158562997784559065341309132985756375809847268026087252687930440831132348276802578538410252375699001781030749197085242531269844100525507097564709937294305329416017944824959629176214359073365886731216424572005033053808131363459634126195168624164127832300720016560335178645627937297592012000475373294862177348998854870125731162145884265191549595215168221036993468933006656768809304451512591453299082886009294357744174968642436063040889036925851816889403858731139233496633809406262653767599109681425391489380161341985971930392745358758152340764551745523209599399750200912971157081118283343648702146345626405691342343955808408334117375293079175093504499564950438567126185919090797619307799246130496923568590530268863292588282214666299877920648304575195751423349229830111464632101529135003824091293717085372937906970305108357916407014543500228888998928115165951295778375329797022881691610097526262496754061070063819775750938126791017784656082017705429595508873907677440511015526227854725831349836485532421360552721755710390423582878071778358274856915730543910897583650079000234767488572814325312153231439960626209496007681862377426622795903723709761717960204080812194109301832230813551785644092549307395722419017289639689869752311188224372374347673510973780957422484827584601851410415287084720622801884530001497599040546506174415407832721367347839351950503443719897054596493786347168234477321785620939590816343041128417916148333728201623779190666165170223579154917873847234636564085020428754524157139104374353617121832321005629494477080994271088424275545890897770918889510393005370738892296316216001344616118942003554403954367874501985105068545701979804380693801908471973703825918862647239673221358075548950426343857610859762409330578922370972639689812594808917570406667897057566252109121259768079801206868927931311939064380839491330564479756301706761230225989648060927094675789731218321903049637880593202092841382286203067124206843006200417438967766595753430038383273053008432075508822515857073150777428396275696458090606760517387917362782166474449654626260546962642317920721670034559507000282016090085496457759417131070432073803105005376334402391342245887019367018006710384527760489083913763123076248432201404664005165182129488659557053383472827994088209605154783581783081562373738563392816669951680266485941578567986708307807295253063253482596094028125092115137813178323509840569751982398141017193347511372415178451722815394924457859265173453416602686486474609304760357443167146433071320855132653734515063022077743714188923858294681958769717770026834235747468431056913020139476210875588008396594237708806011978473759234853589529965225723274365586389361430696219057114152753505519791347569034666992160603191709661649173444742998601317756387930890196034760384157778999440208256072034494626355298424349224506385319635514577836529751890998146902959911525779274050997429314876342852962203062216605122634439043129664824909755180359966861336498520127958911366002534465383107301716708143118489890372063584762576087555953430366718971870983275697592341516660014121735652758920785938433135946868554664176821125795937909522728605022427128680647745402164964183186192555495914986515937599281376950066343095314688512945300002852571423515185059871162747036362760911427231813998471876533427840108478317472589478710074790964993980564809427620953563698839514931202394586750492216167186356946517130550060722243134983242671095599328010721719002871728175065669224914628328753345906782502286619063905016378538185948874269001117357397547442358910037161825611254813792502995244070510161967550409470829130610286891131883641488398394809592413511182804554648457778604421320851477136989626732016564439220787662568127951349143126179355891636230223912601326152616192532271542402936983814927331132490978466435575540142494375443824946993794129884264581514092416392244949757742542830494592951846875995527581368917896951317364234911896266330044658247358045052286495795550329284270049462877111829076817427200478132959962682006168656762517086053935170659045799513568332366830771835455836737518573437595777372722405316754583478762739245089108857074924545552589528920943731060721758712237962590902284484616183787541517219254124668258335635360155917069596491269952420835774736472247643438872138089568032485052318780327826669168754569993244619500202035810359024026156957307254744948205619619545942805563309345142018545384063172751339954126872272253337297805939371712139896072950398204953959112755319247920993036580124131760833562973146787494220236066365248477001482584452354971010837149998435749406673818276194081218676301222648012200744048616701145438490286536245478553917742473557128766998261014636686819645921759767473606611412480564748505118315640482944968514960237748538123034212540037023024060317139070409489419188008501558634798875006660098435876592613378854443913723171809279336229314793064041898387661821237059634692222809650321987729707615005866322596589978384606045484828325813348272669711624284613684428408723376027085881566206925267780985538474515904663362731456669470358995449560051217196595848819799137431122576990586305662695814967988869059408028450097041551880190643046245849967958446499564378042538674538125858702429139655516403170170383672466572570266859569319095466219288743925818640136754101906339698192505741240440477672256205374858538143977651430793573997856416935427223799166079704439902532381957560934672752099043224081048505274014608177874414111161623691377263485248771854096711757567491087395821749680196371915180710482458248619257637007430367727601944794317019484579195918750684275197557480953626556970466866692036236881824462847891510877547855860374883097708865469535713880215556798248433503178525729428608078782512609734702016087961410296422299232491984638746399501690815425741061014090933034861675031188858012930320546478246786775791579704100466694022331158270253429268442087775385733907970388029627371088683916797784304144090729255281445303180311314622066918954165450096764094214884013583409873024712263693797196791465039073608295802893971760454633020746193962003741304513476716253272749830801832091846810900626171575523285874252852811501229523984254793729058862917317953658939759269480945081254871149577778317370711428255899995459199015169404596719067190377170574766195423806576888807087649337826740195743598862186851064929280337002752281347504159889691776635595512382582080523279690891588993423966098089903548235477380425921833785292703281622406344915555101116991337410427945599247834734568750230750971162057862199196713924419109567938222758309775249790919442056080297008744468633277216471669987070483656206423142160757124555286244079955484061901365891530806404419652222722850262489572055684676889237296049753252727230113900098714841372858806231417579263894518950440499150317956960794667174490046098030244297309587419986384374083083129758406609310525631627904283175327207357980440039942310626718744608758628897882888121093271294128187842171732762221597374223141661083717671484265170987587421834303148020442580318772678392989171214930638747700581606921342961371557156987761937357487251037416885570009904541052524810333064706130133580713490747760712902919984193450744036386159708916871203451488250846193574941411005132316727765203931596909802415796082261073200844179142514844482889507080293301329594404877455714169709944881579446108876216551233504246358782213704356721974966766704306077381434759774040946618287532644678907778401037626195521612660748773371750967792919932364783260726525572485714256757219946916873850645128001035020821802007460321594597840295004413895231266997789197838281758941439755431866363111403364285902342782844236596086005193669652415197395938662681861589050108246311972570350993089270417253860866771871095373203790917390341410175440202024677482949339299570143859024200530458422595948002146956514774758601920194800442541247935847602083248976910800550210588092199523779279477197498465439221732441809831535791562247146805225597567672952877473855626821449365368761668467030677650125004858723899853741186139195656599921833720023521088132502613093378773044584541112335790333862593295003067289015596518008770991195742999941265794267387642808670734029659894051541793190362402382827306373414779415754522806505326305634509585485850111610427710090751115099899084822594020684586173386648813363233701315487928587047487748445757536921890261498221066435086448358855484858665352045745095388628335299436719149315729821243508715626432217979970731881937786915293929486398750628674005028909414741973704865927158358851446010670826932842601348943421544308679423859316722960665852510221381389675658659509354978281123898276708020598291733740817574261829407206767107451685491936714883580684887839826739910764095652513262581021413188772965009406626010022858390140201347479234194868908611966735749323473921031551563002880169409340743219115716621010815795239447207982246158300927628098150319210376614725363430068527856197124664091328325765695571098641294906821113342145997561685657238000837105180172789733985953152870192527094454973390092357199206871671194999989218508832938641032065780823682899794379048288428480368651907895395712579072640146498607832753633993421707240822439260398336365483699702816018242408530846833664868927217320649728513060273217116045528921357099243828656542455879839956561345628172795824363868367679375186727093791404291840745960890041373877708797174699398409590129584829510998878946576080017961983289066843641393593330619776896877096305491182320819274406188596650758350782579649243698281258865612397143702455724813329347602787976316188749291304336464657158807456292944219585120232385455016616076896985911242926928103379761602205718936937254208258173831201484292200948560894531409487548124392325843846563569427476510496976502119233237601928336569963052059611909932513446108597865633145676509287791828498925353082865155731872779528034294664862685029995188931618264442322228455447432115674482447438094180333749571337814085963059911080381040885321650109573800279538119292596212648464986332701846474753887625974142295697689592730504325688115530701452180694815544877501264641391434691443402177510164651770466191804077195617249342519103368402263597208975671114746464063062298724129099843501212929379965634112084841475193603279652300099752503168569622276877029619869276403616032001340079561170523875978089341112634410369450320640879548923744977761419472432561287229701002921790898928716267162936174163736704045327286600363738527492323953480428307265640638505486750419903606354890896963454917669024746471656472829059619911354125875054107045800959386245304641107893501462758996596920481724981711889653137980655387855043862227435410413602345302110340092613367019593509380405056631522976602724142473663487338833237506750618861436518960797530046934308472274193272045818229175154706825452861020309477987702157369163362168384935049557968303448501518141161727677209742692002913467100079061025348476699492337594523961243390043519992906970120445578514882973704533742841492352659773365848294304854387190666492066376893433790430679337083712423922482049231889685634538204348046033071528367671116465698772341392438991522587928529085956682986561856570899728281541440727323851090176212710180669518270250434956172782762674770917332361822021152227879910952377762250069687084079020734613959276988616843742238516833302945520507743625455649359465674302749151114367586283146894509964383951905733177913751115651344266477737683973381917762675399274214665920543943152306736239113780894999736964416773863892662525835855836798714663334040460842436636920359536272570405874805782184162042759828231279211823771702008644533173625587770885468212896404746992111454977285721192090149484987701585121553686306242922516279588301836681400040361105759374045824294302411059459338262596485030772453517775760604230691323524960492319311212349908354180178378728118248294440266714343526243547593316198042101913004226770246420941482312745301665666921887329389472686898583010035255369781037257942631627043413238397750483785802694342179627014124090515555324012240076897890593454565083097373537802241811003962611464074394979758921385260207583162518288522129339427026394410020079139143786916319447388519251212282314138764397862264512485273605429874352904571054676017176140763000450549777170199043248169235236690541223443501811285833961208058203459339425606209216516049638518692625312641417925372699079973082156038459338648036820949014162473879637880293526464845216785661986500403670533610974806176619754259896509495066448126207277874390954938419439341246812702474161790345911695499707183078261648304359427517756810431140394039011478507026969382930814311586642744081785429649199847103471323154283304031646712060009619323438504441116817185675446692653501118986519678516147088209051542292422053418878093438667560757318684412475390372089875061179604450607298774902682286210077593810294900471411127936968097018714145877115576848369642493326892605154456327005947081769725609831547623331077476218609554078169273649504384757570569841243571596485869969135387602471987329581677639111418772313829436911952881447297126391632212567677107322844475827525103579616951604774529182165090836201809141589366095767393805447033987757049920789617028371900183939045242160082622691521075032590643777927661096036085169401092857199564283992077022526318577219263107575306589571673290964105937349383379993438716771732579824402265788380052656606550911845236993743099595243387402282485592319104028650723765255721852792114536240219135273631119809171795190348087002435118476808827343494645233973773074450413338805414010544372160506859439945714218051203490276434933267574940234860382687318889605468267932582058637563471803414242839035478468121652162765831434681279591750921527821899520077494391727887383687254549273751195739050669134918878066011572916266251363477171836627244118229909319166815377895746625895838482077316320667911205748634468779624588524544781526953530220621616244796581889524112533176730912569388451957356449986841467094836599061309594437918643461625290785256552097729273020899499949417230053874768322780999332965520354524425001630348837977777616702131862385698407598987167931734167599262333471425190473309902811161187818451592769174664942963803967712416293185594236011677385458761775938750512485305458714939700096458475504786812733457917008208433316576646391369985465367886602253253801895429231477341083245077549010009177870076535995682188549381328068143430226420769456220832606527035056153380136384196173328036969837218266828256128824335448258856336397313883084013622688628405304527687781053568835915072672536950727350863171620375575534042350447566009746142356705712216915277802038566979036561264466278980058866640209362810920809667969551077798691014165274653256346475245572592385498895031941974584883289949424031435288123460722904827077076830692840164946345733741670669752456171356393344240214414008465394240646884060857974581000138912020019517194591818268749971864690028566749117941620805642902339368426267059121839460794730834700894194286939483514794732138925763467616413297464393314135610183268497954025151189916849380633719150838802132003277049088783698907185578050013621937023741435544620142238818506164399362745276661966034549974134033585337133792911495154145274028836015267546994601450294185833412638826862442147414551647403823003034660372174366815127818931692901852797833969678358385528185480722251614080929050505596433865854113511658521378709842560597762776131734838448374700833669284787166526105380229813842010866717717505040047245345744726637144488287005206086578056109788379241287366381175511547433143122405052317283349375377084132374311377967600274671324963402829263125833445702931327898934341819403470551276214071332164634270160056537165057952569077787695467785892146885310076222710368916242423703142849022157685836255897470882921101366457509892384506607499617136085370505959416529482103800332707117395349250989801644051199220642919742932249838606052555343824008322791287539667110330473834174739015319189739926590834050734491592169378478715354899843476971486301180151775221784517983021887031093398742546878287403089937487949032482181358091015963920963391450912478562817790642929941769787823059993068558970955348486086130041577170965107261924676368230437294363060114710014899911809498452952047106992759706219844158592274497349694132397650119443617089806788835002603058227510260923179554125509670304526297855481231256056133980304787618076277815696535038339728405068830101844499728043285422858336247856244802941432644659724106772270443202855200870724837821363595513767142073170947300640692054826409888888421299491711347327099816400140969098776961774518782676308128461429224328373435806215174831516871917608100709388707809409640573172837393477376883675826117083838299161115505746465264877382529804679872947057074305324214891450633862445985077412171152046136387602087065011472547438212289229544270687470127609957180207337134658277030684469232275622788788110799033435768939646592404667715363141411323733156003046777507081296421308694414291781560036868740359203005108599969811261665702272103609008950202327828453985432011541345485333733116831424214878046793741031483633277728406928844359601673920116025611319849246421087198319063728684328314132481745270419658688901631940658422116902034409937191315502341843121237121644457487267315005217121309156141070171732564589375686882509323503973222212667503421163694243331748305767103439045777164318712872844273535455218211665062774338553285844103809647469580264049578933636473312227616336350826380568364336485199056756589335042899239504408915191371004519697837771907797776031050263181168697246979160975553350579656061739743965839898380956661311717490677343046092298496602337209028481211015003668315612757128427512024843653361190589347371941282915692207504863652282648670478777105327266164445106374307493687766014715524252177878972939544816886860458729486226198829255659760508671579865236593313368855258855654283851167645711568399827745459731815476680798134349712405625791553951340314914018748110113465408538509410202982255717547702358352591688506306520826255638980201184368510867555643538560433046447501651046563333246871980241169197310897510319533464335638339101058343044068982767574901122672488455201235760233177300587921173925518890104152161504033980955975945412115716481139754912633406572089722276125656446694124254856315945415891975811900203652677458431895660744519773237094675138394148902595228151067869372678718660708601889980055104879996434817552167047710937828562342386718107420959660798131325602791767333417285255617979550145227709450664348071083373017787335693610846542754467610759038254405985901096002335991819775663716955211582073398636740547152362595423906849828848903737229486051201777472148500898490113001522233947638095277911021464693832583501499990975981715306312888673486643014620813810227385156503416881204770707583420244952859372242375785083447707172449035869486973512054017548517841686480286592954316234611297175845367510141041614639332836588919032666782056238132953409082988633492981485234342279948352315445165672903670236188308937614569592460785817181389841091947873679524181620663863461307968983338922536213922953790054792997931925682664969791378606328078734390574539620653379588573095334447940466457021514973470639333292452403282892679736536572791021859336875732424226097329474773330790807330865036864715449921096052770903928093782090730472074542513706439153305143156435632606196037404504843675092299598767433586973061510191997333634942069476789903498455095090703012286235134383462206826022784656036191217136436632252315448190289977788773133150755577881241874222010039644088545630571852646209700677995273305389179068531817789279448030373390432803227664736619302405309108359649993783233861547809189696045276205692437152480150259566875491459435902596763616676718628857019916377668887336018531155329013739511074679193136181162955250830920391241768414298965600210826032363935302813924645131545681862406680081201579727909792170310411085363085809165147978188576107183623831933420272852628354177623833821761461063877439560175349749868529651602229993603008501740214577437079995579103938613403733139605264849996428150124577341759697304914498997322222606919966391711305456481954237080653541299095302455394739995780218514835351623185314845121644473915215737124600707804650430921377609814074925299648188789105459737745227313910681220803805599533001405386845614188179144108529022722198590475964950766622474169289924409870737779299675600660670646511687835475314878350807705848349579376952780619930897776463852002714101272294895238306945225910943757063833256451396506923729887231371856873086952563924639691424078890461050539208847166906433162689713698604198683806016657297163948307651829588283400330231666128179191284735312799343681029667029895014431332495632190713501470488681748341627057724832613957331265121818100400507830778457519523300287582396466450904061019706717584046237017675902390002130409934914948420336069889809174714663890507978078579108532168680084179740173029852203486361282274305588561364642872294583493216313694966429350095015646475636079857777687796499244951140217520151341730056236592466685385434648537711794001179261295734993083445200112330242551286817098997550803026044552895964940396342785620161386733125620410843278471749347961921447258364350258338578599377289936604355033956721931045035725075874262014290155391461073241469475737842419121248839244483208198718723637528441419574696998415857459858222720178686186328638637326205270069020749992174231921073266255491517004603621221184237243559327713234315700766024520346360241835894252724386732150138197237790416568526698004978435205384792520249874349949629664425917959939746271316653203507875515676216635953685776194950655847423367793510886760291087656347522186147165947353880006031133451177627483524102471971619622770113539568366206374546401540482374712212259323190396406965985922627299904997575391374493438877125141272673680858332094298615451269184758634244025412881365507392264566200575173353562216124258415758952266172543017520738577608872312563163111634840612715716800173492689859002273746477930684480359802604806750574940361003920582688898244627899813159392266170659726278928354787790933086512315938862776970483644290789945046411350251031491108190184984394969423011617254767618660751204760192561182320916831007681271398663809940512171254676663148152237493085393163255958856234882204833083788580240555090183678548317148843511418888895386981165457338110778285600969138284171718872709973228457722673286908794292044333637145557275811912468226101109004921454640907854075501409498156908290150358158164439845857826659457422894987312443119863269640704531296479998537355658145480376409838572794176902748997653695383337536500391235852375897350593828054630436920318643535315072506519879785526509268308191256327748595353430892520493745028688785036291458295842846300262378247127854986812782140500181210242162549515090516424167039421952904457704821879192190531960834970303675878536628015696472216061934192659956931227512045094152835662875101994253207485865968848351818952125588004201670833879777004795821118399460715033568197730552540881689459288786809712406883304390169249354095101450077069731231290313396233908585726664709067109204206662202453691586286364335441421084678264292908227261577089493527102174170864081844030394406453456005499404713958706970594847730763059717676318760765734298898477595299885967255538054260467180545528464371638636784544477102189002449657084195783276100956054233962149487888863453503970923718150678627024052776849176347425577995758876022744106726820522548917919118283311354079979136460325739504950395758422294413372621862082813993995358416749863053108332110037718300901060787884869843706878215268485695356438784628904207542605490547370968368134460605149254971104926487883403668811909733328175443772642697946225695772033457033185356587434577801587051428119853427994047202366636114181986764709340542693778308599603562475128095702559344918256930987257600613948788591163503799349764895967462422962796128672580300107755543371710470286472300668782835597191759580730184870213758478314014614445649105422901576116367650486455521063924144496772103160605815453550293138127475866229412061925116265435591825241483792336083770591430428004714991029501386053230107828091584482867312463960331959919274611700426888161366522341458135548299985316701418045669177534708974158193767286977468592765891754085951379754440181502352883015868849716499700348580803314997113654373348206644168250822550100015594547349849986734155096370423146514462587946402885782725497558425147818105091831261990487572554379059335111824501128480682326389441671175635955725467486540719176229092864782721175114930981098348286278654501507346006039432979837239882662929353251352088080853737146009478576424785631012287379115891537661690493732913319851335362926009022513130251071835778078231051662323868300009902803704199768882991460822649950714430195606228789332349084522976420115013767323983591061129639996882731713818954841862603709073825959318656545592814682381310460511807192881426178984326653420812914074263024406497495531352356294668873396913698933846261112170907353966263699619092749004079204559949151960356427466826809440996478127028121940001612392510822698362444758762405117988192494040911071402603399867971878110368316877627281458637794013200168229502078586724083596476520838659934026268449830045059976301013808443388486774979786159660255137653362792026909790800118353258730090025430023922391890027179840259780934216387354304730635254853680687875281767371786065077665752955231375374441200026036242872346250875905762042778424462446395598894655521794389009122691004887238365805582979434229875373078135086288098233533247491078147861292440933688605807442580462695327309711824114009831955605257574312613602519324241931801744128082836604828955657709083236363728910706903801448497220758989749656793710430847528650745326587923095514162123314263684769139623132168983851548541568940558210442138993327105122228377469032791981052019734173454396438939491350800213739260755028279819291581867171817820290368324203124551513539777434393612657259049649765604107294187050822139653560051113913445696846099900198311678599697799257903756647220314392501763681949359865044077705454690902909533489261982036527245755418230154877702775145806463599040449201838913772820953548753942915932529815190086697347727574871344583380664511139925963950155251269725215634264778956480695615687169651095105466838335216960503510551184412846827104031952015869001241693014844467447920176793108446100341960594569036208847367284447448469683599932550128523974162038089207722344690613480574713857731436981951255027129281824819389031891248779793290028210654084679591551864668985004080550370769881472889867742205139171191587500841842295957175282601634806222905303471637580530447888819821749663243273620948678554237773002907779028823105188368730905321836920099892609630734602148101528423139658093002526342308664873881431873837235256538361935024324465038173004577253298964488579489391954434386030838754695072063495833813014769597220253214083126421246477455888707844201474083250077456966698692347401419051209227721178374201052965894966709132437998790767940639158852809717205063066451800775349040600156048749384246188375093645548392308090057717221028178619890451080345146614069806657761069685119231501750984377807177407118441191668130011309126329280473665377605629612530168776008703572576351640659180690947569974424634906170727597180463078164141665727888418989729773437626205093598408083158581909469924569983029125867760367191792387246265617431429303365880276580317934930210452212032699445870121994038703525221488022334119417313187767309966662200849104662009856606145145851716229273165081673506500376533756442620303778379764937303908200085624080175341484285342062501720958682402362676253812217162410904276712594119473204183466417141395765853710305863478364851978994392588938801043624454362525268417072512265523641500086851512448328019038684802676418033196466356083150393805014465515580795473089534355843470775116961028358337752638232553583278262107151739750413713135973044371421814109173371734340499636675999279817241784907345253665977769932763890493352876804858337941316124069626586688313317884740450686677502836375516801407254228040663055665754137215149379496427305022143437994250620460269172225007800492719210054861665301532570410850370019682956297537957168482713493639540760089506830528214805159529461188415374369400761416341586280173735741296651000849799247249551605666995635894139507585909785753063738788768328544056866500113706194273031313678501176040285570208242356796667481604731829405166309702260021455853267223804244999497452061080217431449627819846048592968744472632320103399945373722340405730325321297131853463486610731867204577461174872097375227647169380454206433809179805860494352287684353893297177732448793098712978107199168722606665876233207548514741623057560141080592227712566487647165443492300540719474902003341066885687674702302718076114236324599595147716009997933864434191255516200634753249298882095506266388134537446997112594941329722637880462418279611128510609010929040514906405418504387104735695355215834023503841448874420868027171904769584487759314050274248454540440689667895590721840601833830708219507140733217431942209734468586217482349472023377987610581986139804181476256303175926582288070999622451534573793570120232573628345238638217005579657534557331565365061851889744413712066998840041993059622433158598102260921931551918706428576800869569574423801144267511235027544843118692350121894145810958671041652444887500639449721970482018145006725009433949982765764303127057636278587978858426174419087400678733625296922487004372203906518391130517933079236108455895350871425107935716477791285863984966855242461554250438512733704875643994013307808223873594706889389182805453527690092459604642723250941515653688260511919073500823709259845689752844459348550770516226933652827776613885695374358645731609189099980313825963051064369151071517334142030010851062440465188930462882890092007090481650933380428508642012921908929020352497446578267071537766121728279987833749920012227550554992359508846247099098492653012616021911509680603019857603668627801184895038101980228419823984863214305189170923132371955322255517959390792105368816621788588529617305847344564846628213927771549854784968139093943954057463244652311537894722554448499613708679290649617246228679080262418964014429334003326161223941203971566168524008971630236801457503034271116628416664694667726579175164736258442462068856631383014444376538920366605440586381394991717179291775749410863296673322032499132825712811155678141568568382790331079240092653441451179955057889856417225484151640332554664439201532755915840471845629645130676817422375033391910579449700520086857847752656688335267032882554498461255266238703419308827060887561234665777463818318403816516022066656257179172041415374565374251530235441465948853612672130434473988003796523524867907077432350884209246510497611046491922482101691313446126433176666680598760628241035815033529316905075864431500438828721307163750828608820540778521699903825977523470183288668531026821577639896867171761479837952057246173525040059853762943579489226368988198580351990474485382131133493111327817283866155700224592518784438928049277874197556452051584834630327373595237753592035234984704557474537448357058535728797441196265058830382475110446518637570132971799028428678198980594533721263700393510191570362464216338252685024688118813329341362265093558262861710365286867891838640776551178191828592195920924310125480495545197919574993162454373941005073577576891227446223470223072662241093108680251304934425998912635105951967274466561114807716359057172159166708659924608431032713086191990808702616787142496729854230649162550632477518912212465449714879934857006022242679230918026925950776316684662123768352981021093174794929889844152812667546137613970304000919405621118469236157814958098590462355836396836367901369000012920716829694616718936537758515391274382131108687990357966942801477065072459847086485303432740969524678333777620336724884795395475467269845400419279942451888706660790372934383437479618701640830084891752830362192516624814063937085198567665229462566384509552275866669048588337457969468082047544836522939737509384000815361695970024257114478519462280093634014029504015340244632651197938199854169375899586375988975376876053180408434804154424166640472047233269564806050090326550852538665653886220573208172295078159751952460753869532188696277566337127277464895829455966347536783423268509893300604350983432239267653657974944872543025614422070692779226343040234806476949204174661122213269938110175776329814268137595963104552377564274502749269880304769002861573124356575989970346927641150481887875549892037764389708128162368371482092134182319722681476932894397923303704601421682518186138616567786862678388125207869191466949950045126810898559669637064494529348618775524634334346577396556351313944193666837773095705396385578776934258747787023092445520635175600438801187245993510434132702414405734198182887433717267044773951687845940042529187480077067928438287268433114876683903584592994901617628984659330942649910897170812683598890571870536314413741675977729623388275660776808654975426173443262727627201918969288517010038140403037266971176557645274588361996976344411618095160354060750303715375248010410604340145742022538792772918439271400428210502651922606633424912368601193641756988047194363961080316589660038859891767687115653597567901270994208628204635090455443312212824857596739585767379378246459434407369181412439165492844159361546275283168791631925461583139623890103316842789111178228350579891752543791701376838789584897283137999683637409765581414019773925775680658506348544241176302563047202993485042953455880388462217803636888673284852345351741076332871362748493804296197253169174485574596560319518217517450086948415174288498105016019268997560305284126241896726105078239359084619617658420778656798223321140550740340965996983284467393699685749469231755935803677685068476770712621985131761434807523823639975154673901960064969224815856058574603966772970921536471727807449970998876653253613168049640635560911792332688505810655802114005894980336956489758260798603947853505405660189087145002650894348577628911489977377850254960581655097145551125411231896727148078609056939130229417710548956781531022293126917499841972036940910042781431133585367247220976013743418169573736478068981304552651948960178467024581726841296783852013579293211293068491067385034651831641080088144628242749956210223176124464087166435356714168306306085511519030192699844556652938940943631305855420041200481626476527407388228779229251583249163479591852645567942257853496551184135094386963520824857856844437842402712891098914217151427303138215853353168735644319206291008732833330179641562105367039952885507479009697419908634211034887976527991299093540957122532874318707264157397352997827028066526105612794825300661177857327290909810226747548083652989169318089135071305632110841626324057833853738946977978749757917577908276317638465297810933620643054303690599815845090501299812971214822865534581079473682990484668070198693747098864001307362201075946095861828987131645421826311377529704178280214576796398573963513975714522169628846111746689774969696364402300088179306310800301463447084395425152754457849856411159611777252554168370527906673642730011880144885137566124310677676129248525355538917759383667677063139051065301512836866002270004747129054068455248548700544655537308342835672506451511489248475892509860634391146117000208243255894028281221918414533015740972331934228661658006306504737099978539749724117795758445961397447041724232601342806029800160757729924708313375788809440618889582347143203269751059521693200428522206574532855368412687185195386717492838514695056966076367552698417072682214600671347952318110972471060044068900699536901710445129575249437064459769814995970520767975886140093963266863935307689354370027352033320649557299805757207066986494004686824171363711442657439214276094696301231401452240875657556875712673371506586612136840096624448118866333636480819501917677906660160857748499942765642729720350022765277553825324442933339573342406582001646820695313587114935463092663813015302081522644022320934772082493984149763945058202236628269154911347931384462715171510888625488066858125088993587235969880082875788236423737767157475689107502275971960117454972945426656322226346662643636636967778540552830341383454722492507497408151408839314118628441979894271802099033979771077510118373528296731207011283764883792756450491950263947483672804567235557622149429940981322588529925977633913234468976400584402182044195082323262542560870160787632535716409757510803659793003525507124024627963070660274746842581604667363005609848802986855677971459582948786851771792533400616864863032862745538500636116268072228976400659669341125313363104121249476214027533213937762695284548430596231627752612822668165662297705193214474657952902446804333270472621788918884765688125601967151224281373918216504657245241012878892075211970980693063791133691426442033653733001908152008389920669707845993993227180518774739154023727075776286708252313573524802871167332884833966454583381449584086090396687400734297231969414687600760452225320545073920141008810300009304191766914552041479991131007853925668853736046498589346688803401099379360999263456525582663828254709742635827515725745197098033206082764168960078259019238042752057390986262681894644445760652083136240898665871871996536539174181544089919643297173353238276222826153348216634701663451046442225237715654119297739782868738221858292416921238279390498256267925476666543743201621560431117692116645186035819317711850794563453426574224405615503920654033808524971788318614986095010867332393841305740025105186832486014657332368895513870348139729518651948187950314655294965866331227943252439861057038227344407033309283680759366132639832941719888869856707078326872291189518452555749018829367828888657874348535881311244424662035928994709251022774889212956233238985328592416503903106934920255097784314433436517208126542451259680634200629080255783566837660196988094328463970756885120748915969703356841932088697889023520523983728902067473917902580098690037249471960898406760350370014636953706735034975335332641868570547058269422800303470268551853510953664736416465088833366914905126969791075914019428344296170843380380171654287469421377207300680747241915966679388741368281736369344139002380056567527581211282584500681701942389226745101777434632259971782071619052389402995334930716524296880292502147320544373776701248156113447114642525772044130872746856383064144466438206529524643531437393816731423496403692157288695150143951878726908580045168225910598707818643234624569297335307458264597842911337761090674715252483231941085917974096000173369501819299240287484916635683066004562177946267395235060590765802439998016804540056430801805186810187622871798243890190349637140055633081531878590702513038281772649009248059847177207636315104487428556171638819562932213907745166705699341665160701296217154432470008521461526804747609473505836989488286743253008368717846810696744891068132658668017115142730189084614719870992181578334129778228955367033588360719470245190684579376390523233182641925551443797690184867028794837141293293369127432944803672500416678513023928562203701454011874054624686132895575861551231569835136031900932233967838459875011435205101491979117298592135447747618593548157426292263678977096689242175588222083950609213722103960823704813951920997771989882467686058254414032944597275599253322142220923600980086950528752879756052311511876492235091978025686159707435850151672903407606780833151533463957179062345378422502193570103878579209997728200217264836689863210072040151280450888916739387247857969264327569226246443383381885477977747516091037986492230914928768089360143736682454055362559842365200461175996557556436314263963610772978317919598696580594537446143017036110554153440163521677818058258803163177208234419129691338021113630066203476661275709721950018266969020507918606936829986749269438437272901223680365762037984413250161131700421722570086729209222872881949767042523663218076375673414815214769276076262346245608920250854029967081932822293546093775504115326452164611172916118782632840160570603746434071345447146569716065694158232217124536236936469935996310940525318995565393667454369768246964668281331949319587416583477489369872717715612085926955442539083552917964985605869231464579567278451992237411372257602914727576702186614279893771282048494520939176122440227908804718363032550664445900178786128958151294861551116392577217162097874550572492563593861313985858656143581147958676527690663140462856432838943200342506106949977948213002082949054083817668886338880709108194160546929260180805085736348415078030722260994442411055882637639641326421432511021472275254670131702804986568812120975856708515435833727906590323123321274228364428057807437051776613348754265403373526242636275091480205425957339975447222521872051287814098132818106744657104044345234631101906222307347093375976399318783780977236681808838287777178511777212630209432428630906575088746655398829270161825079315965155090040463265828660472449336179277414883242141011158493515588048230284888347864851006184089588395035487977468301577341808923755727856480207897487801813900346512512435912686741133558362243629592923025107241470520794115632207181214094607505362515457643291345241422341455531776097838786468903592220538444405364365105368254541672289330483420814324121880109172882000713926744004682161289551313487754153409599559534223796777802648651817837765746603720627119110974408421660111787357896796008596289011704881633978267724743336425440895718596553554001769691190075941788974388956033277692536939545377922851278237387776639971705044089886134361618247935124536016701278529985493337184548627810205442543639165842731554661170967358545879560011071167322346056071157185649047791136770912927158969547209061285922203682127749657655703270521050748719987105912206372018555426836832635317903348483223592455830808594342191727396063065222246983965455061528075722689540781714264917254576312675778808063010889778100348510901855562131564049358831435695864222512297462539632604172720259813699601873750204777664538381389754838701523651924564105378331564729036942717873485887433027078600158349858719604914136963260957779232711384371187081587627100294491844376365498118480603758582779494282819759566294714452141031706029648946144121634143930095017113291925256783904732364041520973242288028923913351401591921243315846637931719813966936576743173225678189355089447998386612614214907509095738010458914675573305024795630398354236043231201092009239218191398012803519737139125371613635185946397049129060997118884667517213654875135631972940031717312334386630313685835743266280201530176637200696144329913358305729373557710024717351449292709423813805767099143228413744110707717371108978831201013520884512699404530075072092417353819167431088061633982202450316261076775110529759433884807753399814739222279991441098840055410225691485208072187086838387374864436664460122992322663311491616329148962225862628569272846468806240374418297884267531930263977993450793569320262023180883839762033865553402340484160034854755694187830230002097962205821571944193539662873771272447760712274118732135435140385288791186425999127083486584741547361399039420295390403306743947722392743543288145941596675968702892949155980968029224228202293152954474718133828424149498105081027208644917431609126973617381149657828314514312546633943867377398864193020906153143821329797511951859516728710864814130750283664211055986250778014759629491566831856232111022445664198084857683217972740240770581418974742228605094294408777587594721880899136231048993808994245378342550563584569379193869090258011469454332604714930242521942270212354906026612613521806727010435561698843626479711133099646729826388722090688656188619329123261155140226028100184583375258370341476400475297742285594304500323984384567540937869207097834612661603537156891259083334400060591463528197107398120811535945567188890593401662353608727066868113013379598068469228754404652675613162762771486756612687634453383177144128021656483032693995346866641956835807231282033418885190238641488440488951004197059873491057862703253122590897677489975104611155970098325766447177287323194621210505554544820955348699502714814405838832678894106755180101258229000000841122108212643579000231834750232815511532621385681802963939201351789206569369741834468788588687969270704317354408649843967127271861242792900259770631381360377976670332781135131103549358013150590996318611193251129458532434072249333105121333249631021248307823396999686580256400142204423210790787201136827120865278820835867497325027255097125964038553916478641267857639752456073201775720242510660283723304627943930076185121980520258589720217260445258273166793606162957647501810637705210953360783860304125807785035843196725988495955693783408041509051542219169796017574550416653219276770093538484467146691763189498724302135647050601881912809374651986244969837546502266965463426428556153051242965729757005885974614629042065563428199413794838638352391845502955899027833752265687927408410079499315524198993027043515586306446922738551551425104824117010028924640414438369811996549381483419220886969544492796897678132441685129641694038409147080336912653948862184150473939488963652060216665295955051086599604275949270528294019459233742670943399906034237305045889737132851693276012724544889186844684058322437105983506764533380987515774985186986742754037542916229630005642221970518634378992444237930688749062853093894805577739642361411555438845786424677750234756213251661101512483854294860226717634095407889750660547033093951134668778270172055660710471599234629177487553090290346778958422381553763706483047445703004839390868170625812395153878682384119846101624942281608411962502554504376299686117875542496063272974714312910330022494040313685064389092186244114629862697537663812900048010437881630698740131131147712600046258198177799671336254452007063743376038644829170327781984064078587605936820824102851056519307945410471030565478442912898602768846945366060941856896916354232048066500321799204827723139009004475047915378080445971928145454964940502784411865101710345512766108258145787711761471226597628659958181329407053869865165766702162018407409444296614471999335466751459242112749937898854700943668197288405839315702850000577002368842986024674111007703274073895683001706049801158787610702986750845002483894483565103518136834646896107715106151979572995116780686972562833872525363009346244532018889080930688152551119460595416251988195452653417010902018590237156897140796776146614207955650396267910105907411334579845455134619134370602002690255340869944603442109122993328393024964637583997656218970041126491006433385524108097489452707347216805667657789330688974119532677098858661719766388798047532815523846111635568876702030204418202266370484698933239454659487572304011454150569828657498880594975527888424976200115199159871372374224159753984212865359844756697213717294320744441960974936307473715652024810649797585547677234786091891084703250084482034652990615082999912753992317374297015779772804998428101709279116080273911281584952136200927626467188309392642347255730412055040362549199393724424554457565528520340302232840821623867232217134473166362908710332325934096134285076332033904332183205889755911208077295355774208064805984616202185987335421771213375895928429272144564480131181935900589662461676521067862981152843306219583560478570891369902274986334786274627840497682093544104889291822675743855443188936582518196678464811808403248737487563912569307903028728100648918569301351816566202366855321055109606121251692670493399079755577724713835524256481535511219770881783556493367388387435819510734852203508893978200303750341864793865464192473954018799747963838492673042542696045400456734295333425955700430793517475359996612245370713000577346496720134053968862601577967568979115818512829695721598215954492709340964352700312810719615615444346419780526029670045966029715925110973748108407801460625064705909830363609561613964570128668215528748890221169200506055909897557644966392623960403033710876777833913017022226972108008362800603022903055570012347107724053868814537743228487666286332012022482636799078220607040016607792515221365541040890539367372116749829192223559164129263081830688395361413259001343600793853894553817772250174811720695923823137307708937271342697407529076350357619713441836567527701028826478021565746121988389087335570427927600611196422163275385766694618195491358733356833558379898030008232157458740108247634211954687688113823879501472920837846956811794113343617947315866347857921605377723713994402775776062540349038214083245175218447704281457393102371900276732695466120895612214576375434291759104565256305460927615655353053033527563169924799872119434449470001948157541025162132691664518707536470872312790156130723651750367774406707445826796660354264997517751663087376507526019633888627680724519449543496041855186669139226398119541709256937511970739176890812919665946759717006545142965348012860023708039239257693331493690913900444430163125224943408924508439243709056305021781669899722470649738350140582150736584929912550127499171460798649242368611058700074125014999204927028762980330479685258235072738390434432089054684194141422904666696168291500050758362880387184348694233711664015552144209398208184826892660742515792952235505618114087774900368442508275134948660537953645414151246083825045434859430157980702107268652313245153388200690101039104608485767726832143740767333810758816452665950557538253726090933945451110892857086087577105225585664619337530747080281191076101143976037549740771226482756056941284200508475518440724888083405443685962279338248732300479753921529919965686587089179511649432259590314021098440854446744790527055528396137813760598312070171069887381851445885127273480001409292807147726928554669626536271589956341502272524947773647546954289061019908666835819425881323565174674740328433616390197858777609501987915062193197449798329414036444240863540274862481194423112864441702482571746831693835009170731725947621283905175889829450838275222158710534679747096306699325978078303006716856775150308469657638226547294865191545942994117659427776980126599202535214117721563427437326651060647357180424467078243704394978758900627322264820288763353492969061248405342485251166322678998856480062334212480011318879194336278821515365935945587949500473806270417575031482032170922742978356684376328396115116573909668762493033150146690862817396863957961571517671324680144617060886711912475047739893699941036309292355162542031650097494740543442157674909350131175126761708983126572065896162751797415497581807294859391626914953052077281077248348722758254815704142325258900172931474074784197283525044245677261146781345593902557546002531476871745479015484583435953686268738687456302396712119166478472110392848452996522510414953453514926534947336159033252331865126498822995987044460298347618686308206309187595040890159132638518523798783840125748562300480042719964225824702198176155331967993080843351803944314776490709547346690539013952748057502132826606841869368954121596339533531836206401038203053682727625220941745505298749938718199200524286355591799657622055312189747831094912287325950451496253618485978546348650132176059194592914688751039216541714765910190185548189615570054791728022094001824833165709486842471669592115211064195585637804314151093488529497919584706355832961447044431205206325624847404611494558570190519056357067879731511314732945510840081096164981980738022265459883778326694375845407876747886042172203746585819201135482284245712841099828754127739232885800360591838708243409064685344764981392477381053076943754622819534604064957533883654448531357066621881738831199313186343296568602030689456772627019771591905717847653488725657967225871669777638853336674925752945358749850746604352946952601969437775526571605501228461497215600146953460340163417960268155051119689142148058302829011300895246839874262677765277683970133560955163590288736019946163154396145716508610057092803951707692982233351188891346896518717521208321351330109779539547268091538060516190640999020781824738685904676755469400869264967308838182202004963898996503516110059832028235398787030418411700611151242986731623323077921609795578514273605347530942911032921185251030156469688663493238381177089175820967733793554978339316355704489738941894884676755684884414024412535507739930834994936585537927970991117776091006278208324740336693147272496970928812946432791441020724606213371020972986264784134578455062732484859238333587205062925278156447008753372964483798117755486964253693270200958916509491874846586663189366808718264994739978473559034985769392135849448779842293064323223402020393266060673332521132844304373185395266451466136720209224626009112117014646870598580322532128624671371755927535755565251726637177098493663947890744250400630386392780982715609971569439539572951293443155404955430484714033009832438501805664554916042745747053659687824500865991208694046385053607380566800123378611977581976217601774124362845582063458122097434334257510240252993505732239011353047943258842028946434996565670070021769539869211242180955825921821974323027690441632038525357808439214723291289306127989615828297893675346828350339547721805272675264804612002147387027611639156141464595954284982676656136467442404399134073909164114888566530228669635188396098905666751879676099912868372052178843672535012379706968673787968216702871549791342581064202548086399181778774676843400215979578662161853819871626388573227825421534514460120476987910131397309348319326154718106972704254868606003504600239673562151523795922516143528795200644126027948931883683368630470500009275669950767800720140425128543495623257713993115962086837718559391695872251805733595053984243851907550539030277928317124955398694290324284315411866096294208576548515639289693072985237833998002404168055858111091035092279002662061305758054065050243654876334551632158237708698360813475959286451783763134545360925350053926132444592924862555513105656949825487236259786557511446320507622063548613833970903239490613567878096510888138739998812081373176538074469899172490990178416540877203181110691481865943807414914003867538504428026316334249247956750636557240349986264558644178698827447359717384520699999703633391986392060778847949165016462118327494836497606073717161467267137400533212505523372791319842927258085644797261423894635501096350873414694515562536890584502293266482944985971044104220673791815652849171148658244065462250702206250863629710130450235617451811323164760552193762507547664949494814421523843124819468250614975401933883422212813685337594388365362542362389412089274447370299086746254665755322825971152284227271435426228140750844416842421466760756396693514388231963822980579468846586344257870524800623310175711133688391197898403353918636247654366288949545897565355236892139720129910579196228266538013739808614548632650507792637738932754901824129193038516571445764771078588706711278017802988869544541441626254639450496515425225312038980070050542389484460567507187921620921440631002776952779049040239194680386779786365797681376582067157963533316354901424409670315293963543385878621426217822021810239255004297821520782311991716830164065190479442267172050920217332178355686074264919590318704285637630094002441390510314288557561187299942369133685633166086500255954421940051737319403289410872642661012146085348161031385596462130476628485921964943482875257360279326622830045024997111871259072215938499501342955472510464711038353053979785990436716866383785629721682486197962738090277214653882554852563832755481153283500085572109853692273414347385302398536626283020311168198346376055955216775623725543927264751092322200030745497573035572114100689511063520220399419259941653334165296099794458730351618582743086753575443376374552737867370844015624596649341194835218309286135340893284290365207528457668764781999409859738822573558132770417847918967845772906746680662860176051454662096082010241738686463582502336830594929877650030122082025505247307132315893068888740558232901166231705037570523929558165898481114375267595341295548365959916326817492199228529136961647560078871108023661259174682206777232656041615986495706089136397267117723459849061915544316903616891510865259620037546990139725092916468020631724134949544798438780080160707113474526050502937090922577283231004666843074228747536105427692411480695461714579725289650285248831993938887141995489000806294412302118368351956703404236353032687132018049651588643724121201448420528143206310484703185656229416217845194046152091555850196241067026044946533683556574919151474329258892798802417197741824258969406276643814659284654578830456267889054177911519635105170561968752142690961081773599187229990585801357413929981264356963185395889944703265761206613141623327243728295585938726088210912501655101916864064471231530252122085989509155678346615245888343459965371678255470077072148493816796159275549101122696007079706295458496079482098819306145546587902168629023069937862168508210292014373055953284115637988350984228253924846077993322711769735200568543042522495540987438613530403613907082697387148442142823504414629091036568674539527548327553027971416192286497274950203451124676322131276974869399639596992877333961663583481877303066985638347360577832411443453239071104818107420615800170366825728859695203824407739130310932734266020757195189617048400310340229057424886587760609928012516346395084554359827776853480011939614739510439702866128359366599892570232723414138251856393529814683726134480669732572657190232280713758944687626939707272670696411299569145405084438864461976294843672579434978025799142863338343667630236513721460002649327019276053941182642045117265805061101914751005141983569274100178388716087427681784430421840620088023359214553635160131651993685452072250207887307893174553408517639555350290098927575354968901326133657145171375732039116800032880212108894476687682288655017029222704612292471872979375366370678892421699830970167285607481252946619781259924823879948747882097002592548654997222435657614309320806150561537096976210125745431884796810803299253502170681370126602446267374468881416095379447750039601083224972243348036163144927121917079247218408531336436929410394361499860805252022850561116165937660205416671977207234961328831962408733290659606706043120947563260084995635802101061811505156164636183063715241330847648738429593818979953503826090670227726078624424045123456759596647082534714542014275714007469508076271146410905361600651043029400600774767155945120874468444289258399039614972182965516313530433166894552401308050492308608801026345825742738829941548521554594747699943998035031726820652178219261533856021021613939833903186050644666458955644229855544677476793073682757072073615957888386884300797139203575028012876030943958649542745423940879239775326293355888811081970839052213504147132053395642482335826798564186432770088176100194775876453445363631571419124846279502382787475623562406480082805767713355165600326265635181142955478215720423561162608590344975109179673732417645045166515752101728154879797147959473326461635572011395048411689096144136122467622814515427897779113203841922456868725783599197297470865277113674720815813162005926283474689461188671857904744252564456581355656920804132769448979923235437950042434411690797369789617734903132241277366196336118639987880939145357664390369051811539710274904115407359609054459601178655538381608490686364049721025079576767513803765869062471830546019317259407564780327157297610052418001709188972165747647223075666445689545237688393380663123964578063844155694551821584099070342358464216763622112263206558360043397327151999274097601142415969870401477811113813692357150916775878877040075209169644927899356976937617289916109286240828325340578329486588378084665574531738334065559669522402424096132024075864939846649216671294619499002962881570454719507204693160168394976842702776186346268652086880719527472651138107368488083752938172043234812773438996532514590499795839187298411976979966953489271980981475425680151865182065803334885463486392391747694769054365129452335622602423597951893057745531547746128292158262368491078029053459743220660997387782256698258058163923635079401413158604881108023922123826724957331554296214973036254277118762658096039838324732312783507061976947799600230447437214109748857951373201865515770527546938940287463169746869566937991265578652609747843220188380686424187421974077819753927629209101643123366114553245475688132107217602263049422710649160347490975563499877855416749123992157267610772881635323043895877796897554819184802886453694425339699533101581229822266439718206402935537424809693826207212967288021297171591521040105268171709521441826140202474155999048222116551624357665810821988602061978392098979185247199415377977518432606465310756834605934299497073709240262978366785513309141215330310389174303059845897085414099231645002391825319030146837754598926727892700777013584685173070767384982837537343022027536895829004495212421507087656349154985285724357035730007486516888639916915906555558415567351932220134036903321493054417847002195709070087754227047607807435362373678583832752194240116100203221987664600426100010630632708017185147393352904607395585288318545761912616859459885833603575060097084647151565779297476338535539762417010374448968430972362912830353275690507215474530085172877020945962981501037172632185320898985675889511213171782191633987487034305776794735581644967236381763395262112852727114699146286685067382574683567726262412457285798181858612739730505104074268442120672781843890087579278518457616546263707554593517251160937760344450669056693572936970297632923259163736468066791664412403586930100755126156167509041541043580193748712901307646372714402945785498309708609048560033930004011863214227217896938098619027577529997535508926749442433759729477137767646698901702780440090132937845270591141491848237384264623800758611408066811750282163831442855481142480371061418038974107921577676481421892733140093311716587778791899412099626411189118376712484721576313406452669583852512577894078889036479077772006505880589172815766235564641124166807286046735354447942841162280494848132069374421320982206801502373327268377069153920233838038727895575331024626590843830052540413337050914806286797239072503460433934242169605960745423151386419678824728718720906004165704690964968223915013187653139348845465975270012893716151763014320385578732217923165228333778973414869288669518060625170362674432453107297831087194561572377155804000463780949021176622029224828398692522527707035663937957154784068604772958227340918709753583720141113312314436426634949570612980359391966412731247889110691793150118963935938194599815643139077003158401366469345715557647571191791490224355067170096551926668201014812889180541536082888095425962438415416175916442749480285286597232714235736786208361610940492076189897740536114552591611161314571236680908905875030015722233924709725578013401952381105042355213310763115720048515818478140476645989727757940192830544777969244866145123306143146486481713966480796125329293250582007906230217147040045188361680210007073936015460855212388229063064365455164678934499591609884363740569580055840725897256885516522291379699200602581139064892758839036829601378149544111378431345329020401256561328763364180440482386180564765381864415514084962253182154191267620122048041201608828441580099696264368706673285660098230826454947510732631512741436947058357717064270697863248760659180690135405704359911627412707654587651812673700997505650576434201484396520804405169798803094881817081680432937939068681278971271863329370092483087927512744366637904317922696333607118393853467703467860627448346890576189513736105676679288315410234201465010663616096297080065704746910220464634637300107717831750231598545104601501236979479268277230141720395126817036705047658825681408959129236352544810024087286125795747848377596731278057877121234484591173588762801716246986229477347137448289601256739640809271843688481708751804766065704089563959768868531242603866842559229158182062931308282703488115400941530291247072872792231778179826540755059685546620878679087237745149157633999730815748014367046300411496227653825820206781832660987249731183092077587265907470271228561983898502841617807300054534640279457382169389845602332906214243425363200929328758076269702018106221973590517891678973149381688285119800325834589704638089779642183916431559361565010369579397806518156809930188476842320814724280056757947145256553810079932201685565468366662853900272201984684987394386992273158616166419083782324355639057731509045270363683020457531140596202216028954314685311870411346985154892493306202176439930905350383677073040996164483897430915153280486361005146357652804909861077635781796833568646042004499398542847081806373345450510869336718450996927251672409847062259164671359396100887163773683895585709214463911688639329179520536623530831695791496184932417028760105450750326121144178538350660245019391258888823571226537696798066669347678981739710917836651197432131446404270186529361445698223559431582072808164393518490811301074399099882093475665208522810177393490999756207559123407574293342474049204653237121955804795310771869455739730159496140590044285993998676421230667005335873174184499813242306757468295600104373169785816203226302676681579791320815233356505237297239904833790023196559735921126600611861041684744697395809205384251035420278985726535746186510103441965153086298158200813044209387884341504657596950548671848755834445205985465933661856646781016114984855449403853707246834209875737703891945038978797846627582206263734362060618257267785828445097046824166328659686480486296157048063290600749216711824851553065512361951510472737217281314922201261425167789672179455185747304941271306102840612960185176567303923053107103124123064326476555874696240276530232306902703814944991639815760171326241405328267521683459155590600007829978686317203817963539619546886797572045945362321252953803110998123202447224164408335132149374089245256076317589758309913951377127823460758479111105748227933418320456178710892577475956497683570496812980674305280924510631322380297706029743249292110527663587051936002693660162900815046676693450607786590078599397169751776623665615449342737378439795189542595701426244077245331326283447658725704884219212072416506863896799833396596630083291013232408912131775693888001347267528966508067683867092170918926452296257609857890092476058567066255925942164472956793420621376006926750978974647756454894189942910754810296574559563562366974441636051964191142876973738428472524408339458467849431398490591891097673095052355370389957112071958664443044314935956470662229935703140547734952385321522325094602799328501903517294665884854637180933929910693084079802438133806426579659434742552554324270908675947466753749498955012529391919426945239403063211987575561105080987971094009350994409236683159475543608704962314247729475495175480684006956210859256719713133635632368993867805184593895320613287879981105942398384388533443055017433967650504578116124453211500142860382438496760310087152572469639786145892167556545275533725524792314500855299987905925361893340612825214950605006796497383376008609699499686861762880922557569821011226038900416275757876004754165865925348332725219881366804597351876000038993282370696288529681151019258382771910846721168794339859486991054672498226647556104857513909037198218406771466907569568726785895059359758961202529787288033994622709599402316042152477417247285268846094085389460313505038431054732827419169441157003000777677837348323588001506554152452222111545926118720653363327056678319752448402528647343857192920572631401255539315345135982558778035536844830738655726248669336792847857526312796621780114004073945282682875754132194174146018250537964827712961441479991500455676585900030934640662975075450014139726728119231030713836111695347064634450529619470029307415736256553339491163723613006012851157280774259119053798601422210420309921431498882294538213033769471513954895589971479081102240006675339760567815125437535714947956195595283353072546984078877009933941822797832288448216064990365106380438833110847999782960134320759922519994678919899386720320895631897836670388000517983230641034326151564681817864689343882423075989017048783565680916244217072095258949077147459448984828151417644967535378716434378711857152028885722369171153294000533839241321531099303715481482847979014940903452816876215363210202678386646080261184136882028455432683460788491397584044158701693759341378875509939021901133685059544007489927751396893189171965895101679516288450733260988727788871221593234542986000150926077133512712374781346558706400644805465428049423258483636709085684302687570004784050775647688871943959291880985492740437253120673392849765355933735070428984791038243439226462610283112034348704432489799039876771249581892351195104504267639915318934698464620548760355411968653900083196578887238463269245176259276764697131522657408215315075464300952319697113401885389466257300012534814090960360607324919659356754922173964291996416449103314877937943002480279144619902012022994061994022652539060423200628270715665708347134018373870559571891992022301109749285627058004527189084246456479052170908172205751613430467993746328833819424103653629701358813866435716967450267507174075899057293338888008940629541046348164053259466378274889056150996517427733444731496530336678983277890363746735329619668492806086501491432027620920662567621108806930930044184076028791170796699288737653475592444424646884998295821165710385655381681564545549992824742281715060432916751049155778940215031020009053938842986658020482511431543962630288388553562575356811461898438523615928923051874663256074663609293692881686105338170216197796860381604690103973005001045924035617810445566022707908160460945636254982696544591076095564800323763359468324929502090480486664605164413955413146688561343796867989833262743894597777798706127791459063819815551421042276760366061674568204009288459680769632603110890027095726662403540086870020018134175353545611203748134632581528284804192694854054784615817520432974428084429746154828082677189140310135290916891966337989219465490939899581519085092987553520057041322179839061889948665159120194983863678042096311697462646764711695552890723211362386849431850179507805154395430957366559358501742911288045159518486789395010141815705702600617293054047680073130793612674153452543439531963368341975573227698546779049491515217819986642855113272011857018233388488459006805129136131564242299128430972207782010276032794432284489429051477010192817514593772402954457760459973453794777665206118699025587096747581663438319550736862716847364225521881616903101235530804016550581462557100458965206159670172581341024829441598421892962956599050498814099764586893811893392833722606570561531314967690091775389939756828921947577888241669593513743718375664447843823183180503180697095442204134416806636159321096313088458986207589141412555284548100216827524091734704796673250993738723144084255688014256618190967087895153336233246441554686185779836613291991092104382468212540303740977054774575060908243844038067991213014778961714715684202535990570574138622545257070176728284668932467193793364621373355524216440842618054328030974207354977554536783937388500632487244585316641544262677075419869976036155309079330590861397952796497362531834454493241536589752700663725731519707415955950277391566993505493877148821518455424440722635498997149242896528633790161341668715730258969053750308233678804632397140734320012668889766356571486218384465804438220045523379503037284535158868159905255488382459901608937480307850899493094031409782495388092033825973479708726410668985951800334166856006557110242936547685256813603671830655340524156431477698801250849363266913650033540951357659042057881072690471632811443452161558428276960345295099741255309839757340913256642118006581437724897956715063730992354462591815475031892483993303235035572555357963202840156174670288919721814239321130634769653207878609525354141574081869409696722331901912728486064130765996953700200886582129989217186632226808925666137323482888602304614435079324785541531956110865261474385450101929622318621494232648531022599207614229921824091663180521539377863873608268606073096624719931066834869900916906047975522595193565066625492773880934722292734659453674086243551303296698454358346697015825558301270961628724517728189471176108268376901977349758585408773379583972961675871784247664104368917047751452590180880636908597027103948487243415567372706482441387903736993048873457189387351167662782252260394052692938384268235907177318702142373512521321486926731656644537655077795956169115921608977356600323394796574010092126354123964807806409041663156047474257950096234777161225080904654950331083505259550140008527471327039119014260921145385111779688536339082953971842221624376376073181281231022496526790300778630214122581330588604897414926022595993600165123820950417167365747319179651233032047183273488163497960895365808461463051820022298433249444212679500476656987334441792483171705126883624632413214736487887617123239831470131708173511388937085232391489090714213569611564066837737902000912673197847691149510184567613268330324479748467461199550927928174276615150012026981061274063236819339934966700681760337401897987131998232795241350466250882094341859492087726335599886502212088748649338079902437562386937905361522205256266453869307832946682679821750239088933353942148512483442550161331503019349786301400262287457611548302797334411832968711143153821939322394901747123340199471109291682927936682631372118498794061200273977068703067662762029744066567225230299400392493235465684559233911262494421012939393517526202671326547266014736478715501048936032929331755653895529264290905392535857433188405262748590276898462701767319595984545995739420749471562098701126816207208312193770008626052719740736706947672926396950466525603860175069113946072400599783101569512673756129854496607401333992772611532900613003979917409924716850708961639706911059763429272797383561140784650546226592427905441721982540141149712592770366206629002028550930421347697929639410894238478006922071256089158495260273252311175172805276902664262284427130773546688796522269812395294050980071865224251119580980372474542024617522427253917691380413219332320811797822992283982296257256413767204390745059391183383814513376747678512561859762638795542378845896098466758583837437293417933176224283713049328232528800914193939453681816258863480924103784171454718784312284852688290608852510558564311304097698844138606562898265024272520639205653347630200858904693742276603933324793829877738033868885476335169221078265951364026961701929447008357674520607208622561168679816659576651115115985424387188719719460774761520473386776066917439894989000337890184913783032860649546065719613275280252585301616906160214188388522881254356178161008865110016061977583799959689647196016482952985810094591095197428813950948983900574309452807948356540054487084475456212318202267587790929005351593336803777071832772271312699164030281931017682487242392250087576229848906208419036269286686908595418474247884323636354579573753230753397551810347350410655034176640087682229652119495693255969048196726510039569107172481018608513608386471143840023371470515902255420913355789262244025964652373012749078908286209029272358898213475154378646678512794173579910609599108915467892638811930470765020302419739076117663703049346789781645523530714110780067114941781418772237067756363945158313831295746213376172337223186032025155316120816407977897758777952448177977912167298896644377285375701230734482900604971225401925639232340059340177517399454758026094950237665598648875555611457282031994747133398796828620082332030338111909822968018055745210321420429220369701959344494946567110635338325474149875892462138124459734177472965016158380897574543255950492311741295391430828909941453636951831477352826082732571114104953161390952586170611637020305477765851609553625199851407022557268176297223982243310347448715587588907960947227715978594471976634320694885999101488341802835430095488911134331895220563870928581295911571016303326421044559266419737133933967596541592584069360577068082785184756526962759827514268161750678682410196260094348662393595962046421365821416025685275539933185796737820512151232391723736680689194733503057880477847150540358412111375048590901900979541427049261262092210969552884656138984893796012047283366967987855781599200798738567862873625652408925476317581746044145249076530737526961999565557629306269667853787019636926252878200124441789183958651178960043508186800338681158537998818253829071312180000757440720153353983557320850597779885409591301434643348648901331034566292855554703107981275837702762243455579285958984454464916531171796192222653481083647585436582550324670058448304946480433603306199237601292185490637861782778660156240180658813788115799295869982302230285201075968848077809708815292141383850891749132517874778783220704812898662161716336139227672136367289542098070793328926550727241606522158857869235904319160976343434622058569897488900049556155296592135400097930045529510357384822022192505872126838691492828714794815689956450330188064245131763052512471819061375304022442761669395049413146821425177193364450553933153868264447843337794598637618975114255265593288464454666196703474187129490253570051867370909480364727917338026117274628022060516272950659698412080314493255779548781903842605020813881923820818559689817648361711525085667620174232748731286226368339800388051291182245148987229959338885490879128042674716622794789583533587924840762057323893319923582999315724075299004597380552248261632489159714983335164415146454112967874242353517210472712558801160531036775569473218050631516041854460066963771359970344124805384886622699696525528276768819314358493339487293169618819643564679535784825255762244049665951758995623671453535446467007475977740034325935182258800970900336243115589616335676998511310822589793561510762988575420619224766051657915312172073202497930946131711594829997321261823808768083378588796373426406365970093331069113726406374272449770353432556450914630976723047432315979530911961045300056154016649720688143409119731499729015135681937260309138482280572203876954149801990277563985845595163603089035189140701947312579983228837754026924452602185248471761952197721001342269348454042272735751829159019288637049097358219512946750774101012508468692910092563275495794470859460640846931127095021585383365483039731325823880836253631716706233666296910001528704811084771419575013593279431879209182113510904413434359984301554126208693096899762917530009491201657901726916551948942359501856569359022259135017163831397266203524924512953697397882859861706884709379827468573678935597873700999648522306464015158386708311231412854604069438005933330657513851975553718390838408229083054406835555112686554549094234001655758407921638808985372672428206143026804368409124093622603447852521098701228721990501788964052670898656226397401174331332478345779867124945768481222079763326367100821170213987154497728564330014346422270103481727749664975444073755543848898906455885448712189619714718213323245639480303812193193452923411695209208078130231604353381152150485033036715939510036050030523014443983735439106429135357962780287619290585981925292003006203258757491885600503909138718806267412490574946413492821081990595774980725910501062831446645323943172080356919949999935901994852419022844542812883903092854245963370568169416424608425542103058082853258340487715244576867168623429367052470824240171753660091904882974180252956721892281440467908279517879121641630114782961667091698664125846432798573308094813435641714145164620951942016304118476246433172171755112767732485144747937739050572157735657376213670414576518429467866114858317843566808953046236866743376601212702997013298064030741973271995682335964372452453872140160145625628945331081658323532049285212608111429155012637778663975834810496925834105106616451184833259829796090945535138375436613282037184990366260941200758019425176401092197168663586449133923838094325559256137951322643796813828489206988249186583462385680812332627505896960985344471394175788248003525255382900406920429226540220414120523551727696798815294319436334477129122351696402722772649238147785423048660661350689654449579463744710264673233979250415858395218707792896661538147036771957615348049893555091082339586273179488044159886608936928026064463248648756882876888214359383987554404361625566475718927770371807601121806705091362957607243672873156312743310447106328567839281893141529829113415811331745366904251887307549912452020685996099522947592962001290723013279794972799291806863665105640051551709065763164431986106157860495062825302930570636253709378824724211475385476502325617912972576904641983989199713320853295340418560758198880277574642276597038579430502448172563354324634605633084448742522505170883470795080505126966583783793908953015547086603518544376465349354404081693156806740747503836991692897477846926138921741703077248604347351182184701556349141359406397437160144355681194787281906756075596485581042599551706586181992021731598247007605207945457755831462672985478124169052527746329723466050062265454765159725686723645536581922354317093123791004226640004079526508230991882741984407999317981618198370630951615653851493369182581415284252818689552887834134866545806515380014147024114955455989945277860285767066954704185689068117235246772436187110489243805198602183901328038502296609341526850263312343154605943837337490328028275373225874455365475967163887474956168094547110553178260633450150134183731551925106547441319277282594042299989692821345855379445084227121481590184021157541156952026803532944210808615815383053394818133116950026292183832328554768765337823255275378172077845591949231253081660627964935011687967783032186653494885155171342995789164946698507808479712676052762605629737329380071893395604093110138966402074041816709074583135273681943236272632671544752021845443516066016608552609003535516351405610046690452329326786357525079367435521572406826870560054029358493354738675802878153096329134060341831020032863742866871418542870342256925508972696017369687992187732445659074312581557441490738042655728129287152201448806297292775384272299356678738470148305845230566636439757328410807566174166093221203183158514483035519634488009811064389937541758365782636577553716775302251144347755264790884928009307560016802818431890649316072233979196361165351677702097707215645129659765121603474580865161265729752879243042663877604527793767413994515115308350030375968655659770972330932835099927265893212964903455284459770938039024425320538390468641074238085300651684438567374694153012417395399869971870256691929426215285840728704705057617872770138122950403386369356073818152162502331460494774223073460439971230411600892356100665416560089368583824659015172274920625438478171779657006268972340356314282431271173010516315431955359335313750270171933837940202878549443020204453531340014905999984282542803921725936316721084188256015050051681826861503339506991843149720084322380327860824307624105958818074032159665334774491287744199419649218221180259367923208012637104316323935775121610647564330719979345046130514712800774183100587565011818994448618688083606604564606686106978107406537812650044294641523694628646933745569518842283076550607782573010254509800197501964089698367049580590795202309206669102252300194552527586248474534334750570015170215344148881781552141325971844542395320980829937555971115894164261693777584801870915576067119920217055226515689335887138937128787551453091596447101718626484910592824580416659137782984924294536889299448772019567720408041786687444313720310122616485475062976066856777345240920005689643803595289065003780991050257819706411757467060123616804593935822798817968327482412979899057139413536898774763663843400786434445666111209768045050315593700219356135144476591765968764000184336954512162913999413541748249106723703129800270479922374070879889239149808858632658384604261905536300055205953406529697075584358603302936706092335233057203225440340922769645919127288890381124348655294777339536145211036853588984240821321117640875455224426427362120710542643906451170513341642114037878456313806857111125643189994926364043244884102078761132509573720233538618275164528032836894115828273761761625463871113348677970751402812766520244173822749000161090122090557634212402739854631609990838219801886475323709266192182007730656497171360449837970173652022300631545322614337037651050438964080360242873081387189958739893795764934828962565893577090808482863342126309284525503298991937241335224229281508468687491562081233334405089099587991286456373833700275204559805520771831030931063178661016455423449648987050260487287722372041751645808599357552088610097512770165258305802293177164105440060812619843383519503635246198445410122584699336233180153054488154206594630870573602166097411550718151960103222929306545729080520519515892226516984569646811498044290575619637505427827646781724287024737448798348102563029650871069522661495002461792867414312838338838230390999896282065167422831810159072753705012176381087619079947765477826118643809889732668901970618777170667652873460884740647965783663695829690451667552725749236102273795345793234575016421583701186349254314979197194160773064378910625056068013291547278310140884815992776494341355808773388141837555893383031567861381026051700680202770831969462280762924452581792545665961774437721752427735450165456535129378589080481733733523071743323932173188075830001981368850167519377474532800244982129563031780555413022786312437186338243691676688137181219930089670523009355546089442439703520384646761491899830348023967715808145916386282268201141534427313015151994429090455801200262354530380405418772979594000009296452692236203735271993035881077244659437742085481397450329799298642295479188622231531999027686224578816564576193284936186368424075537815808457628541089895159510583135048232291248691942927058953495347636388443511785691537628473195230814581815217586327184329054163738679334984764307888329408440311718768482218953090582953040737706201834653100441190117895423244577042391898022171894138138095614656567076830724791188887705961852072460360829706700861205104957353244746748884478676338067073448199413627134999072531548427689337392393205202930652565680445279960906850641002304804667378728377951811210359606858049114536244591538473113943024053846956812407445709870573373164643287130537449903048009251416484011705861035756287446616470489021582080191963295507139782132754302708728176346458788503419980292246553948971674082475583838622638116656371959548183047374079658099945455998372659829966756396200063215589797007922683703098699415245989317880329763460444755257764778216365419269380915618212599554720554305621536188912514763925152562727142615092328135095148487453064084104657324346276290937245750834351451018360279891959857989160993989445419769586908074543807238580636979143111018131380392964251653086549690663599383052201546016340767665802995169405911319127316957044808619193396563305850900503404478477477707264375638152230496932051883295926651905230176214275261325075195363449306415392817949295232688513404812520903870492014562414729141251716943373144793719094981958879589256320576455530993508866369653969814015770911909175468491550085381387352236695542050231720336299748534417597578941676271656737566568480139347018242275863433780871540189960702686160390102861598375416204886629226208848717006462077853545873587002279830142588135651344400146911551945738502301198026075351928582993915266308912141411699288276272197544509330373136921156234854565195632929168901985942595731072094733527506943773493918873045066107562390468816689606434445324990359428834875524839925012271472118506657526981816835661850883865705919004759961591378358187735638569749338844392214983977878415708488729890716919401926244634526392951961333934056627084524454426472958588282854848813130528145469284991491601436973919294773672773827491569893700111849599501373187194484300267190661132532323704543380100490056962936156739420565561120685129430125772412879979169610103047156753601531467306813809355500163950698251515823270867063682970543792524014395557986608822253656128455634836751363403307892747367566729403118999372830941418770762652345204770930394146671230095119123945305516101436221551569693885510808031560219643920032591303904182628274527691483159827780666230199226719185856214221037644239732264843023626647540912715984569250941658284374804221299137177240346902185103136823777646206487432539048262966704560566582427741356010588685315338703729878848027125607560310332781518828354923596372946303712142703581172328662440823451274480583603784727410137246345060935030785073538083552378017755677187576380199245394397460118534001731658753874755843592542669553086821469099305164869257724625804372662211817103411967962840351849652323937679342772877826736900353740644752159970037195252739245353089303796340344238479889474746708297335150778574674885881487623492374784690226397418468797970096104350965126197902529664802762045554300354342447286375290499341968782018885280656177552585961707639216222294717426515577687228068905441353711618783755780640009014064137017239839275455760912568340916339179950660699764687766429620742046705065920056556199490680192637717824442118076080211367708322988156858810459573828671689477589184703926198180640384408429930850376213308643468688686268101555943959176470978239996079731356870214728277039126827235859984184098953552568852988047989095365394926708786901411458667793217333994116207891068376795970961094412680964245969780747676985120411480314033798706803011471416211243217373826499753365710900019304092732071296247351487557465083272304202349677125690939001193497149758024999901465690476873443389811528049903327215053670220968821728443964619130939425818313961654653179634185065606269021731703794622512887556441273044834580370778066308459229248075910433469641789701750016425662649836295084477605559157473148075368284531566845605491736926496068384245761078517657674074857293879047098550820877518376984832130756794907942768808256704468940443495431389641507965043623380440265252233822405656713232677696991026559240566018871600535250384344097091427525972863400511127021994920663176889418588607856468106542935621088500000041146335588385495100828001626607043036747294151671713058099389827703294262581442013325619832878539468490135417755916166081967438122929813051202757237367933094152480320234208235253795947125712237944380523601598240117271352833294116251341011906772784710092705520460244789907449931902099107062855742768520773446437778843513767122984654237807663328298804384906682417337595851607374972681334256723347440711410238659545724902735500883573982705112962466948680413491267967788966182633013132524107264595996542149053852448586124422235621572250665408211819003331708010952667802168391465310851346762149693323596881342597221627979724048920738079535943424696035358256397148759987130783326958156266850302696337136731450651148051149628930556346711669315742022104246092443813872158085255995051385807401157584556652902210266183502433281692796490332084833442003432521228192054209554484302625803525812820657499518784460331653471945023829338088549566398357773538105985991021813108008641755813356696747987969452395663864393995883889265733889131873336359677097770822081524841281783573080326200993532184145223247838777881846923286352015260987193171128928587826692696080025687761575019525637197940961646273625280639040876527649302430677233301874323624724145694095114994747381684537418898058438372580761906654113024157541661308885640621472413242569062676787070297900742813125234158039941473851465199550338544578614880355114327010827949909731018709011825311516093480793693691106941420468420544831415348030377657200366685476301302313087916518299723490261663880503814951447026922628439511881635091350265883544521613238199540002291756662814915518950078962965334922649563112865604675013240395724847055238067686088150142963578586671548209185281795466050713322494002581853428100175039830000668423875068039820366169423074160359274226171787192586750321599938052059279582801161997446748389014521890211028260399543102772553098367705615309890602400434313850166038734820750546522989218464577268192482934753140412282706386581513181072048999417123784684835473111100238045760368563800309361713558203912411140036548760261413574450101533451259353881683422075070199985247203329081515698297165394320526827638171104341072161890348038166589978852513437903893667171026989998632598356652979582525516341759080628939047855071717682164393057998944453595002938944428417535400418647314362525956370603934465693782655857513851256524243218945651371512881652933145834852937956713309995408058042119943220088225564673122747763443192133955918008642509132118425468631854715149384183671857708682952327509220688275532555827070215348075706537507894269238424724324358715726492242681206288777675388073710584760783968570945328800163812442093144504715882100607500709497649067215773359960753294007979469264096701817284701595273393678042234013340020412312607301765016740480748941338300745621704444675323305425185222542885888973203731844098066153070374943327458976639645719109719394255675092900266464956505404745662205731116620441337649879422578833371802311940804735724730082263867268356805828400788577568168711767071190257165992403264969524450258139253142005301136135577009727559274939640942946580635815874766778577426293713550822450930457865596039379824993583582105231975241928001264851819724943814266683834184503155741814183781423812400970672575565526442704140098987554181352196816119948884990832609905120261430388518966691516676992177287005666820581934531510331543471762727226155879844427584590486709878559158355663543467097219777220440599629658673594323669592715960766025090684877715325483517442621693239922532157605730816844675402122546790684461423247849307693438991818318185124070339451245440821395987846809798422834455085989127225402320606720160802428029836593473003726565578944684411742245592199292098276092869269672452942270015381918193528165370477107922156880100373539283136649497879494600074761506658767127070683506969219477427286190387380320337900168197143617222696298476726892478805491917259189397457218944609747798003166707735598607256301833021480926314716956928997625454975675631575313817377199157093560745896350001897883381221338966234072354568942658912452731659392581583356765712894045778509235063116949486152394586032491640705457723366292182123980261863525265626438515541881066054349462168022808938002416721623746289058698373442984330628992274288536549848488667732737429460464514546544645666184602787548950446816034414089939107480723762355560371436430692448503316631119619128990015289942914562541189738622513788752283636622619446326547838098970648548756292336442461776412536041637342331607523719601743391943206526898251733550985397318545477129956737565854960662896645301923253985266352021550279163175501501909789034423816818185715771660366584699900112433171258904788814655026950653133347640588123284353389938646968406621369869019571036323864375314067719598763698244041432065754101368443534955784087716184259226347120999979516558436255299965495622966030035788847683412519487910365104570042873300337412258829190660668959357444146540342697459893957181105205871243434328897933692751036515134051169419055656190848511462508749717083047828934950663823992329814623620094703213682848528627479895189095176326848773131086766425323162062757520034496608117260567588490036499434231798521877183441695500455135243032260275865992454499710759848730216556351186504841945098321199748562670314180387490292252129779720900901299592446760924573612563393243664501865017774720918184647830356062902854361094580722023813776965097518943978856057365901052791075083112997352872829725976612544973625449854497407345300733065686670840815627431563477909697775188930029019601642638558369877611175398809790103185055151040214381409431957203374319856304121611816436208869566808998322187480677606062395937585268580779597944451722798906129237619903749214454990486270804558448091451634989857119477889168039663653090046455759162401329293435893829783016980571545976652807050575243601613587371103954813520339513631403971625299875553822143278801575170673926194943843789104818643963118845543949583668653025699932335606973299933104228074077045092393366332617949284410111937251103486365718028367377242592028676948300231719087327587618539541163859271047010781284116854728208521831321761175501428458606178562989040641072018921836198391925425602527006636346570915870935192100007763598446725696478495994063343057814440405969252759287838867871477030203999752032574001977471145957462256282325201384724981706125900410811177260861016800853224445257443358909943356492826939230767719015600722658014962898715732129695703507182450632462669719937054985265563219597973659521170800660282545902764841636542041816365448828995330472760741445669179828797201411694476391818115587783795157825067752012335545006529261724926299041425055944203612365962546644764155985283670957536238323360663539665736724946783028904507924847819795263468293096581999062587314720277931086029816795837649247127766690676640765051957812497803482460746470003883464936319744375286406041006449008504551695157680490144457354261389885105408661257949902788298929431629403097203395149518136276565110841050640022904732893912999215559016394812653062713459254570435607777834236715492068149658222978414704808836540544384920427919955430871800546522773024931482538684386993925224986241441156324623911454152663833946702783591676033664404971998149099579080736185811537709969288608884930129087156511317289240045237882027369344020761032536434317483148792740158007878034249529130574578181274492424598807977345490637121063363831377550410956128146275695296261830540141053728510200673065177140398650549196495846697951771588841836312216224525012158501778557771235719767954112904643440110174293912093437907309103662626544583447432943404870734976271477139668272615497269648311156158272874142645175679422384421173955274527393909918484792466478127965568813356504962214801279541817056641723587663143005416128518705776526428575435386219144634623204468408167557462352915444742733571687427773988422881523872710290310735415119127787782579679417096250444582591539855179340260563354361190882810503886700883424470737748856220712670079072796591000953292322550297118754331983092038634759038529587262629892285663444439490537971054845083899515690687435580059913617997561197535347942328694444466127234406475240562379113726848778064051900743456746305721106831939978298907930648549769129029144731190344357191469237431291213344848893666840002738303812008321549132636112872135353693874823650631376806100977590880865241669553804635170868568028923357061695762990247796205910410675298753745430350387980346890573155373350924265078491701852676509550521060107756176643949449875257120233521586488144099930231002665886597501823959780168288050853882944607461023981527254177588226948434604109946446023418381790972166620135107981099863328694542303328620793268788978441255159871926733848998660292853959686438397974457291464754040008505688897416642195135270524824989983604220269853787932094560686240955061640503926052240258456380065427308308709987065867494796592260144126601398524699662005417122805219252063002573594924187638135905200828739315763287069431983711288992260800959007312090613609206995862045128331965473063772685110626242159487771320678366482970327093083572380376113360599871842311026158866179905933384333624942120585114701585155145047826170856077168868847284126673268791027057027743411789101151353548517020901327442404792615903792952813462416660118915067080517356662504013570703538301054444008346609025339654721771485269819394284499595689140187781281938667426904745840312304213251544154292903933690466900890044557799794859541013427599282077385430630807095282442989224429625521349954978863854329473360471602425074961598368675577442208564416957749164193307540985068796907570044459118496586411989116117504992104183515087043596792524574796691571573060749495924960658256921755586663354293862436195120438272538734885575034460284365034696371427514310093287811102375229057342494364216386986876582528664745762412275699899118642372689972987523606174060858798812133532808394558415146865057658383738992358745558108496961787835087204974880100990940584573278806201396914174102781726810496091088073577425586962131759378403626439333213928632299805729698669593999112941739850830812632002303663802413705140056772618393302498617537340353142109944547990170476401736067784213505666269491816558795031450549067190524508169938344638773986172830669972850475450645820919568039299552428580237149891528045762966732304573893645171889953032502121026209648164647900300806529379500823428081574779037704691181000243243119246186764147266171311001938721072586767221386716509532630491682932952053624374133511940459519238828319380628424297452885944127175769829162301560888843193309114701588244528242184792292787762586961561527716025143260638567360102067702683701564316988539554270814198765681104239906220965868439910661983377771664772430855170355383204267682401520131440791322921957477995518947477986069322306462293689992596049743254307650386378754898000742410702441914266002469216098082431414857170927963251459825831305159523297968393887678199094432757512499789479603794343718526184650450020095840420911943476315827727761091499473996475767783411850309079936867852759178352167558853737686938620148654445721969609668048095584563136692323896881621785303097534815539773496689065484883671613151800009039985284428140775207838618544526471878524877317374280243091450730684216572862644453016055271458472874434336302202797453928198063970334682147033191696703566201490205845714832875358713067463308184959726196633806640708795290628135267499078305335187465882703002934892150040643914676911829113440458393639068849218894839186124484022187570018171315164096367385689123675475847430375310683171400503373429254774372826458169145643907321432117775009275599999172169878933945618883369837441904663379276335686266634444390471994494814665100258529679777380458228621015283221619678484212194620978642936450052011184407497389802183100766579386085723094103117378701360661668396421231341172760859131318261657204062562273985851417113043095159295175082876950717967614198462429519933045674739777770950984096715584523942616716883471804844071401849616140386168253727887093264263891460891321699549165157439628121828783747360335796459612662392705982480057134202936923987458228905567447655003028880896402572999517151558355384218365571791398318460795959191078751506506375426337931132418176888876209638617395517467193290589468234058076714041593554098316122137413802382921691523868763146994772444326181662879998801548508672645739187437566017951272383589120162920643181002417327325648775026146912652534309212785488125829719545056651278422082392604908855980948782577797143197206912934616646874567427109832965127159890333034267001261354299067492749136227022700290215530538957818447681933471586160554855898797720687631395877290223305137182921121445033977692436394778019759505685124162923963447248330389502512805626209032139217355930659122518382934973490353718016598247666070080685716275147004659329063147618572949622788646974157142524454185793228546574195964602683414450452586196573934776560726759577904556687054032824289732148466301851694139787211868619950185868921802847481376114927671805614757251883517757980863023296348120927594319362252806193840896395021366534269471314706828312844807165598804300120430758672546568451275322885769448819691119253422323173597577476925451863232307886374934019015673821628622607335152830636896765494286637112400499220565766438808821939560730168564477696385970784953533358652029507487777967654725973490581477544053550727841908453162696828008072026970828142893938226133978272649817260552931085755590674939234502064117878915423967608351063678809489834643193814414572926865203995216272595270419798805603622628196905210967704883444936914596370551052447550137345764941864222030581621593206716266179949067606184295126307496289914667705297038640938721659826601665615212225312066667119370620155196077768777742026561876765217982877125568947367088855098292560145557202081141862251883485416600651871844634444102129621319044406149537762508595161448044538320850705025562103819852258982579157549689781045319461100761769735901701646949653553631993481735579327518851299904312572442984343094916972563291663761488055633637375083809822620038359716587717907045093938032139347864431794669727336604255328942479484698439444232288583937106008481801829926122539146828299570422087376870198125033533662213783982863608048668624346132154905641187164101718325632613366713686014556246755007032104342472829189969478990757799543393023051063148412097058731372781879976824023441400445585453402234617405662922712853158782190816216871740517049786405416017274625030742857599855640797404040184089793179787234827347080098446561653504207210715521158102716177489039057410063348781557354490098984422268936238314912096614844417868006859917338412082173469668082447534581505916387610587243779862426670985309802550466232702143676235271368146841004788407308214691753579784698138660726705188307692681668929622903407148300851841295752559207872184955253119838650838292790316922527347935223932726655714560689974789027076549471416360059633683244303720196992540312445139603827892405491309362099887240913942778514870571613062642828452669163792583186675460792017399013540800820405793829922074546125739648135870639851741533941887897304730745440083063385622583682012803443818611861795409506097345601737263064291654489453738590611220095136194710227132591326036863570629591159583140113187811535184841570847832804550669431462175549157445739145267548920367084280261614590022381675776976488440464854446762279408415993943673331603692659266329202888923820445047492575157169678723529462211736208476449204718661156340164889700300413624106640818209250735272000105260177566915202353915185073505192537520513912675169915024511854917589853572826005746225967349532147988312232408747873107181953476443555128407492985516317208417797871135002852100795869568215620249196595219935475334939208223523065290655490299096557564086590444999320670089506858464137644000106408622395275785102509647086301480826238872019186042745336758353096112764958867194837964756995555971027242055958690840764899700208192884531382330755613308273333952451384229506614897918811147697073290224173698274232903629912679857040361755538618940156702133371637325439618514130465101036638761929772157759929665002126468677092738757959126475865902152430568067515762788043244218230622557967419620482868396901744120317456120093173472758238043450183377721050585307721243571379619928302635302699525132588832464713446208248154640105844053675969094123033828965198965222924073207462352746452394621021753441430169939417847730309566667842717601681678078769048248478100764009769564731361727271838777776785293304145556718722293657476730216451891901240105393932173671096951044012558411623474786670692611984966010907322142866158014992795986442378363236024754672217084762253321497044921876752975580553325889430332061377961844817513466863511143489641671314931268915886258509044287959675890889962018381485438871382453760054683025994285352757486729713355208472557872743907472772608228309216764746692127553766012996315864729270238021806437327759428862540408747054010514714146871714229609767917350850667374279495291765547328256519627119396313370942491882212555143178713230733651538857382127244089091179236759612116524223512165428272871663558188139708623482055498156720211239780022713919138596257177699113908400384672844054068342668515122113003801925582837651333200528279171353629019349445078219110275725827420367479919359144329878316636940121401999386399664700923424744286244247389817116785803556202684607220029474725758817590397697909336879090557751218462578498642036238208854804573928234580667534649133044597795058476837985416111837589890281059574357972481497948934736740156902175137223559707767291432540845640756352308685957879644458573639026878763184976574881291156836539125635292977038212211726176286206128774944243134810382560002936602226884801758934474918377439638836313896073046125007592190124877183470135946249447793200572538407008243869461949449342456379914374895344378741664117808368835174843377915450821240050105131298466661039283444788664655745845369486211421405381576994477216547175902856696584859983949187645806891454705150594725022547532771552915894970991238973297980496312309957660292925860155246633841198431389765085254963267022514320192974868252732814757656778942427506152937437850768989866760968468528713748026507795165994003767499187480430138244598349633203569364277101350889485650849168317432985656971045327967100005391193838384292811591344642168859652901864275670329973501742231932310238414839463120911781175367959440544941290670131188838308608162370185547909061060130653312702881925242866987296868452193310162548755959502976334159200495909521532136590847329316673461872241772114289811064806798401483488781383859525291194488788295042915627058190679229865330366675286844879205390709252765173516417445968614441584155683133975947162531108071974393578271885581484181936895793107753445153060863617869956976896201628269780105001321683649323522917791617184492399241668710537831431061134807558251344202730392885226039922986278522677444734881030207225803651078654575516459973457184279042893667553382878832527007750632076940297595634147245621792825890699626976338811735577546928896518382038525961647111328354858020679164681011039795156136899411318928709952393129780861012564531509792081993363378876234035848669724747986687514322900542952374475154354667240254755032413257588718412316480044653208254531979041375433305412269657408424570229566025037685607805627078028948936852520525302083423755559243776823283033555715763838312274092743399122201245788084969741691892526649696663826970247915363945681286021056641859488979527900616488803492693153250060898361366721353339605099331198354750754563447033391537016789137962844423801824592831598519429226889630013807201662089479443907197340265012177414446791054805187761849380564291025087852676317775376627686542081768289785875036450985466957958446381758692766449787459098526909658373699273477552467006842895657731954402797967742291620351364606117846176029407625989714430715573716112695134484862618263550827802663414471944926837314177579833967312464663529149101758355003915328933427941301395116163784023614093576533033632297709545353151821710633968670767255460148540286360609673026618256443037998459148393954345847151362511743086418052549478296961245140560156351342240641311405153717619138270480406431286473342233414224654726275976686090253378941030456045770568860059646903852144353291966966504258023973875929426752229967462695599191586021152284324633709199747835456339068402892578362367751356576632780716469228037669251127916326010274099716934690019395533037565838178227134718455327165231550107864834974558289700431199228705889567056670243445690088971206611489363578999707067066045559710365102327492324733649431661926102412342132975186487883071861817783453058136173122011117459404496278757217256690127489581032218766252146015377759445436914417137938525276555775998641980429643830954200990969037867940295201022652544731340247420720571554260382064608437493817988007322453363377930189145408436226918143402037629211574654596853470598674296405896565641581691904124216964718886047595444580916407886227621102159967967470409397902574175587046041313549329913175052448440005408057682729428335334605552474553563279704024592337035906079742495874291239026724733191561239849835142709679925102405428976763255611125480074749332961286958769413300503046339146482779005172337995523095503426035608145963629674024231391827026156124154386245937826823049909261690670270395121421150111483303726541882605786925564601688299133161792619448684207481070378067370516360160187652914049818406486444433450163098779834395398938478954436808190927556631566905968707139723540350475515629322176625246043884898914084971693750362126450104247585538923775468171656268486729162222578964089918244814385858754486350257253011299771822560978816227646224371978693821706766161781484322375484608084911251707287923811623110392099813731114009260590869068090945844318431567617202826903326238585951956086738763449317378913363731081009567773087935317667234687006764546575560332049033782502185361378291311631213105652209960125231952707237870725242255136591530662460337561077794637731296839009527366937521267001048837391600563004723537722469150662332397044416168320634762203958116837761844074163454738901940683668210626584658187265002763542142253622683612255191615419027198571134851647852161787421111844933282778850247043082475100284526645042735915900773294141083336065776609184956048626979066564218235175876699533849322905410987181851193264611516433479168793254428186938568277335017989123874996741342207723890408323612997307591408682230848837004231243876115350718613648908960409258845810023840418584629598008632676026759912341424101343635362865925276032934856940296777584722194669127595718694556227874028687506211868104969269884215304962723912186681284393319067039507083013638871453033089828600790361751501688382733637308572383020653010535780769159542747325472509232055237174903803338047549470655706336154313845829308737431575535979311538696284348919573843665210852387762399315362297471368266644762826730742664763590865357088369732290830212048455446065456234573050822935256049731287939230036322170490667924687206683661829333329064399016065018223399918214239700434044986789200616837843383681934620431068571888109659464923595133029468943466302451994451385432919555429060152478930319404851959906265917617714487267200169706318644989388383417213980380369838682718330232712843918960214704458685560476468448319834039779861765077491833401823447969754320778673443467691294610852202408687246318620156035258111983988811777679401310873924907448507745796264081044387738626094302509467105410664915908497171430442261489617117617878002654950356284727550864434840240922780533051320143734427416014630302265953215730611351859153494792291562504012076567059241639075045452444624175896079084066237578470925860345114786927374726715871229616022667744155246051922713072308752311766476943138606512723203068217971705315640941132668807842057154977313101021184624190493902220708938058316841893468082370708583639236327184900173981059855299576311457669538716340546734661854768972107570589109364408745814345419025181159069957069699793326785016115613957622128080522095011739843907416865101205199415670743336067969266736386406345770161475548156154645644041570102985537167762921552653763303879236684836666448519800757844999095895995309086663628301751822407483976408930059576649564811865309960391286485508020301505846615712755767536790494997056996707326114752025737081596868360129846966530685524446402240009510398185920924645582555776833762631555855314770167978001318047029535253028805024839374735435053987065063060651509001909125346864465102790343148817792177026116917266315604539892687574035238118417272506404563253378913606136886074064717050829889338889216141493648399010697439506103063218367535764762980313440220890798095012133251795138271741522971501550294882286674064678554603537159134443135790842114743599181589296285892952226723435138983874506829411833574432570013428062262749162840862479620686015056452709044637041316970456912262911075855998617156655721882071147684466908570883281274290049508826179826805219581891754409239118371380277680009035674263564005480576289694514940266241487250115377299271182871913844640752450905641789999751542155192765433186517933328286578363805780658746191579075241817151858186327983885270855343149243675291224892413157385412848224405669535728357075618147410407545821480430945647045295362427929421690952288412229103445719625053991118913056116922015958965777389889401293946031111973693807692679292603205296303537770925530483085597348763787295083188470400230024211922585669282241235006238272687626560993623990655776669970286414094089460426329866296029939902330701849206307339159480089064375793889386115082155474155113961898516251892623834781077484743089289133717656300299602140600507740614586161238144305719352988768279286855387442805964650799184451795884307373155120777947371212685442783551059113765287420559551489583467470729272577399385735577279060063289605801617170454187244235900595731257709341704069905197702485221657664259880354675711264190108818038532648797520730422149592251982191706690329261666716913666933827858314274863768240528539320216318985758009956093162532095042758621105146204706648520502203839880895637126829095463571732282449240854939433157693844584597262267340513903265114233737812620786930735550499052770080254714407960165084287058894310462933543375676002555482757449299137375155868532735235708339252722342357253477096357196979158766473817397035334492378765007208161293094211194070453101260188235406577992780846370790339087022862384212601639816959398278600776034497448384556243971433135789027466128621221527481041951360289382097329496333164716075394518004757746174818997001566784685440245199015193122525441694199229688068436070906899540405846290670206852515792646917568946676498991964190468795619074528691043012646011616711927888211182018701482336693820363455068661127221935082651287927390950189944761523811163659423803237175721588809766221969805399206501345027423990086548267291528504581980275981954690493678218737090612556409326257850514023863252063883024256386164882775791428822660459894959795784048658916913323279982636327835326598340467521945135908296766687040559959212050250709034328924943223551910705821533802217276382485064544059046163162321930960834461309612913321257427469874105916171262341035290010751467825941709855599677616123850568937592086034535282798755603726971091313044216782197818942947604949577589413001961195078727052445464408628172702783924760810552579244958738176922457263885047633684016303192437046930858183412381613173907506540343833931958794804044010162321104643900020736301763640812260875132512118697911176975947581525939771386947565295781053462024981943154253073114876659638866168429765293835404413246827953094997428830216190832510769123758590424942742080789903493797577270005145862673403174650181219442911055413611028395143794663655001411999814456097492472423122297204918422309859692438327762519649013384085862809863548505501815424773968141497376201108958985861060965252759589931228366238754182249108542238425144271928999936220898698630318948649511170247249741670759948570230652118403318945134478665357866679610102995554288448776853096530703534904514314044999842308575986348525630156786500088993917221073431356626383383376186948326071812649432612760719018399593020368838602580432683565688278678354453913380767518669440530065623046168441478520454262902760009157215985607665771858168251117899540782762217878746171997333310704016599783101210843768859992900472270221550335702855377376926913756538726878634527943624777154819366219541070460646025935284676735858049300068627788177050332310349417523444519467445088358496776716671448641877539964024620471380036892238600071755099005290557648287739134447581957711342550823295172255145866346432151428607520127412640853767399159816514425429799388268657076438059243071028337948088402492538709330123418966907373628569815674194917633132199172735323531512279939563796389654039643007344531221977195224010688806157102244916079994910624942022804737922349616714042688743568199567927854759951821384417396900497218633781457588869693412359640168822277986894459501298849974333845668209349248789868221692424174006777374186153297427878288740462189891954806576869345219202107614647799436830865437748886429631611793902956391849670213521176612180090874785823875948337109074778223947195437839761986808412837692039739908437004387760056200697578280520632370883340093978640365892090615222639686830314722003625469728079496320972752092808608418559841448180885915592109819534651254517412895429580264950298102891357000376125836566448213621570624550083361875342538088391862640622051045861495321008397094321879329055632793595422702142416880386873403857531181656861017575342827602249202646543026614620356420174372925554625860295058906011508473173011089775033509632509518881793327909242875805803326467110026631130326927417512046123778941224309670012116863417845799030621978715767315002640785550144482380623273234833394496722336474000095511593925425987772702346839092740488078166252006556158622669418634108796339906636500667402474721566218880631576571978343741646409000177334195459087136546846621998831803782045697328069885977868225418270011771424708710413786907236155212803283369686827958112271094361681622724156173980174144342042223005685678872620976097815489783034614753560653369864678973654883925778059022758377773914934634949195613844075269614783355389838422459856022149736217386766932044304383119068108087362268763545959823785778868852505881722975395405768186093029846562185428802876769773471717083922165653607299075061258577704204687792290906679840597300736530479488879413812667454854900472735412524119481081136390326550597586481843703806555781674676250914670405603300033854672752363884509832470476275581876344029320644575006737816741715195728869889748733797971166080966862145456148978284297721516313822068426265162917503785785351576884268252535487262697087402425359890693043023144920263069020055644703447401534365524651604460449849941552387728723285269901724303908381332633505037955285053802267798618764972560897928683816248833151980528034434007189942551746893704704683195595225795665109292290461293573310991579848168496548065678854168500271701973950240908196471950150880832250147819523930297829261384502977402620262009849030260126859873095217135059231366686935497403176288578211975414304476179383889346203903505843529005946319415308942113327345548244911149119969234322210466623212215754279170767716162041182185525015396199163635386664987768981691922549754145507977337684635872084821356666623443619163329366374489016670228245675669158933553706223097092552461733754961210885051660121629548001272830735548710366410316928830700202848047532504930753754069874397038860179093339270424702507184181859719966771102182595522355646541780788407695006226570906057456955155488898071544244148459174403434823961254407420615973209096877181958542008111774172780270097094232218909580471945296429694896355055298095620233808196689818663609245365783832291156164823345070121336972172657870367335204856908530477588081671860762857016850922814046972204448990719389763977624214607939194813079075597384865040501214186574248434448936999200384194402578122060096684470642843891112307108028599760784694014061545697570071361763856600362049182049436179904045251395938580985909655101449963542689116977150535885893848780858911745033390686676288591037922605642590410672028727563169085403554113204489998037778260196736104296982439715137420944308364802041420656639943417753715652235594815964932061100709356716093164967624317564641366549327241126879978177163103156127921357768009019037408274251876291753129306786691354258704201082309335992689105153927603166282084728251887297444982484286155342551359689254520736752324818382885784401024470085843413338130210524392465346259151990447448131753171530603376160068085278402750747035624247606488898401492591737310641883926355239557787746599384326448401041665526365787287899822472217207196213661921048125132483916012275276095186108932524014478603245445468299672531234343359662815178807166814915569047333892683842318245759473337933199309055504716881909998927059002798195762866640972020990023462230465291176317018159278124490507595581758662703390100684027171931616612435589080776323556547018947375873150497632724169852528704333771807509195079482185572012764146416558714570715368576309974472437851763142579193069349904811591182183351482089074348246869483112899630318673889041866661730217323898607466761218808810015341736158931457419650384654609226088932175146892949229794721843945130035584929794543513565303962558020794404753939806814845029134266966637260646820784631041238720410636660039931759142777286887126074361968596987031852215606206071812485009470484504417013487439892019734517433754467556524649282113107843392526529125618682321109807472792021639329612670290555813466103508575632635239269071684705586720327192892658074123974885151753607134529594326773059487777179889827734841624641351701684900913584634259633049459588016181617903552142149098916187355574488836496203122105654818651651729684087154433276400452647648687796292250385637100942558415442008332364976743214928555661438388207909923410620813688742011569952763352769982791558559003794931031193831170583991193592225855429674474539922740313653042326529344905328427351185190548680917071713921601645117302714094680161333341488195617136648100754994712006947853799512247559953174783654628240974636121015415630662442413104638911816770034014327532020674090519135330623935562767287395021967498707490283315468417139594645983330756386370944441425274984766980205824684618437411869207398309609527026164136057647284001072876106852125749542895097493839744358682468900822351710336935335857084240190700951672102893183424776678930555669027578959205200120905403783702384304770228540203505088696306664171449000214165529873612060397986779786906578224907075355764108229140112306181961469115822074579138223961706957175853778868998761297185896862721828246200621717736567699472367508157069895905505444419578314046431515790135534504717957159445657030751895949584960426701743092211455593621668346136904459002171177220809615467599313137553990937315373135439453426461185795162206245282533482949401521991036309273671680360998057162320684103557749293607748093840122846612760329576157878188200750828706918354871772384017218540610890814645272259676074148229439052072740731778843094937236958720958685303638267808635338668318860405261961738441474000702264379740399319031825711738970193990763389820389002551818212845185859704801299982549453535370047022625153877876365745352198062065795380088699820200533311277191714242183499501768708377594140507307652941065703008141788961296845116158718214843867923868357624804900230879273755514490414699655786368646880784543577513793410114386609846161524792116403190246696221651095650584542024954888917826513332882892397057756537315495563455040287339077798325828905497443454172349021869963560984057660904999537288820522003341739949851094546651455312070001481764800197032535904815544017530819768661803897303590595975502005581141619926296039195591185811958190602536225067024801640318928898608526849702920815169426471610277249366543413404478646310954614372488762197137333556363047453864271807942790987569489447582946096899630787859547841388496326861359579852086066973362546395757463719873373383877875509895764873927929707705577579414773026277143959502760735641674626194488150052724738610666572106227184990012848833510504207783675148489662920346556176675173545292309082008310084402422613193948818885327858719969290023589819047103598621220035150820302988536923195803700007696763592137172544409285765798440434984707757280080641422532360352720096926419440791409439961031741837545150190190874537985839266650065446159291661662492449313373963779341294485029809092414950629982990115532552368941304411684145087342446488318561676708099291845127391505557431110998521448399724838450618447731041161010206902278408598932940110345328384104160937005768805283083706798933050733603154067804239833252008435044756499191957783247466908261081809719180313907428950090654313194986987709282986003748229411810993289243630338179675865898608033244458769970432720481940143481602997683072665361476872924604817782776460336231454637671780955180106072643911882735699124428493193053176189683436415091659688842053571063482238391486145379623983309550314945296216231554532746797652571770828447860864085338999737516122466159382738715082740273121753200592941759310739001501600935284607208206390582418421279470950555714443866038177829679650851326612717208192502126674986447897511645773144356575089427223107868634319302528799081015556838712983274368836685798293544168990350279100026008375200630860442320988148965512116717591165470578711829371423755295576360024250377136569430524021416111319358331306412868923305905878786922731622363879095144078471743225956888424073131965902409474130131740807137755186694905347996428253707686526495782776117707955846453244335876624527130125852298462843939750219658165820122390316753256415471068116424135696213280188516019721543641775372191422764885448312120887168129812316349880466795995667694719893722366876442199387683098112765412726451418127760309962890624056067450390159857177133509185851036026175839433009761719776353061086909269105011487858010649887542237595345395482077175717158170558965947239880054824825155145745380044574101519388425229633897141778002315318751407315666993433203603427005916764378639707326091440476924948550313365076332144779415043501504455399571583644590509558730058304191315548908900002685258129203963221378000584164211796400077880735697962167927883021056376786066812734252770418501183825523999330958013191197447725933529563702757630136589170974944527953800772777630921404731162274440726832105796829422272643533578483901011957910725119454298163277459831702235671349264894622720823120055390313740838655568235419338069980139673510924985977782294545356850359459179371795314428072761084566959761993030999757597653076827805255341952337669800398345248936119333308551279696568226875709913375962688764061899990840080661591094375459312938874753763012129727247069077950771252484531057804754863276643596698603715024505963256925794662562743557295568400638378462475371071363631845605569931509269295034320450691426362603425636548702468388705346630054398820990082811431193023111087491708151332584993492400978773004963393673790780014723565146682485889168948808502213620653548459507449126636797483131060056729715617384549025525394852839780247936212891533282696213528475098960340697671575904346084148881620022385428643358871693420058610941282388333122291448040109627568424491991632577623886095362133133051790236358776043314841866945139158623417445413799096780754370583718080287543619625992775261772245308358250094694059190744583453652531476801966217299256588006043817779832569543266010542194437626512696421017767557454695185437514237653491487473466897912689987149200165227495960232824406619404601874814249914668162582821564211994049523665257292201746087585967981157669826579750746463336990392852494960468657607817305707368073993910586464918560063007016134691019844142588367642989661183078765666897836634433385247245396636140956565536747528745384427081807372628490133570815023223794837031297311611166344096497989191808257097073278934846099853803350605470496208706349741948725415579306634454572191991104435307331669073709128868230155869634830180690307444998473834288075149988070215268820196227212332693914928015087079989637760014499903709304077465666163854165427982771014921889125149037385680891992379865026982752223643121362606766585888665019732866556790276947325468792732938312864251277884081225381469418989273188237741305348157195991808857830767548715087599605699471050986389814406025748513413267259721728580497606059000636194603384102282109776725135235134533025212664208728750677219422581565630784844981730631997222597510269650922821153650373464550015872896839646442007572319879605837889366415618173393122304324607196905005828336760500874004731960682314099737622941361399106730600657720070757148063472205054528219911100967690864888724351193189400502436173852999961222248254749874975653047239084629690281567347121174323100740063712096701473981791338843138812734648253488109766132722002521952327410465971803303829681266999950354639868548411189725661355579159444360189692826431825749116401533614774112010361839628545819749804252590568099584611770021424567435447947963012534994499353899088338304674912022396831032872942794605457537744497503512887668456126522749641145370248031923631763061716863262877846611437611344700398489692607598090546269938134803032629413679362035124889745500348722489285444810066219324753134280715939687783964527054004716183612359712318520195614287521681312175714648623306026953272790565687046225773240474762276061894847291964410280115986629969794641490284599878604885606659603615627710882713345341195488893669495412644962500073554442485351139298963259227997484223447416450635717956005007479691239549673805627064465164702054151657226505947026354300195891944701266054149565346505321004855169809542247046418266623903011805361173554298663559462175764225590024997659119701861033255435575594960096523518569966601851685035714948557682406220542769468137185890967258270272009664427409864668465493463046127232958891308369406985705615662619495573581550735807665279203372968457327157160623249379100974094878818764839172316157440455731567021167369624044806740497705404311158145635747200660970825402156340305606773527612664134016260822980575736013334732046371933230226391858606584765701634232075071007680014012245033265715545377743367836554488763925559679273226749303965190106776740292812641299595209905159340881132631250019022606191978834250528862542141290160197884907527040400664559614597574955410356691853790819100706431129602239280661871853746742168896859814650625549092496162321646045151202415938969951752540606828236141106106178057423702453619444690076036778057721792531591717325191320458621886803197324525562516968640817088169505602360213512358743053888821624099922663315213031753583017486213914287238087756120349524340850214918839952481327868206438397967687797389329026758000658422912155067468656464268180185639512091440265350155188164135737393188407433315007864193793430003102966955114535531440814373488867805474270599645225559294202845038286487926495284589959971201183664134574308685516114346868367918116080912237492190495071451759527846629395746225033085483268341692106143826252702968802934284805166767464253555769193524451174722357617861185508748450236552275888230930708819618539971528009232569200716480710110423413611448237489304662834871778212867254372668664878456142399683715064348123081546843804113714386457987841924359095775671087197434401950303607408771766171872829099952692860856386086594677759978187862468301102363288365579850327137209349870071834780939626792920851200892599391876692824557683185388435526838509719220028915432344625847046324734606712152787780432940918405882010849575480642664993908961754895191273438301709588891434478175788650411437004762721702904721059505915224336153109029392776436967726194023427061660440787650366872826846131099049669707197159626746165993044336118496249615038346103303511233055464813801212678928509798064939004774558143573306953909427567306286189318341856698331761881708237829295530187914873678218117067662007714606910430753734870158711456173682712270395847611574716474524622629720478278129878334039678120973121630343604941907620676346201478358469105037805427289120626264679258934995845786417033990465912773026303754730158924204872670309174465959844761640450399057564501990179543161367037362923874248427737212660268237039847696259521044770647841262448177843371816656539493136224399692269177213998607223770662070965643825689179436538437177146253307881701526975632346987855657982994999041655755510873168967245855310869307737221586048105153612350389629342043240944456483704264033929019645436455197601790799451733612515344496864793146058988768087417903616805681563221370261083349601470941857463688656386132673061970065404015438538755444369708696967982287788652180610012425038139657015717168488436499461891822989294096333410472946787674679132768320428024820553075951252990459285387664753428195645115847451387937639266258067670463656901329882979719405201716625126267105758802319668723177523209433417703618902146234410742028199668825143842387260719308290120721470616012668676490718410593976235192200457036762354292255011367931980540262587510266688063423910258226118298038996537026247486124432462951041606150070211890647725791366852409384762915285959490831935128299299213258295635398407782743637035110517349396597086769127263280527720878623036341036330911882911185574860335366998089349079799243038919808064122520296075201109579718891764975789117838321797944878448436377096257088684555315915559925207562615947239914212163229033723070804874244416386315598865025976515823433628679079536255905524074486793169596446539168493760307678485445987810417534673825559200994798944076585173489577067982973702684686329079750000425293575728871837209828846502417923864531148009966564689902655500887279303573337708472128747301915880939616169270368399772524320250830472614131955297090991154586617102524797607626207594195969180194221717411010489924800731260359750348754297282106299650082152150130738577920020814178373108023103726091035086021458022748310038480587465309044128776172718535386791690892311049361707886813315233711593095606852609880051685079532715165715525169063806366402623070381569372111688872973095401119593741820168156848368241266564712803654301113809283990022972306108785969227180575631649455896570633571368119093957867429921929869755218762956573124069119421729311071162097246202441904696529450850992029538957246885123215347927886245662491854574373517390671685819888689845872762451178274107047639328823845915911074670127645268180222226090538871967262560472220462588934353013373659356279084438316180344208541510978514904310663700113734493200338590687432626863983676138753346698298509517422826843432647998373841393054443619129084906499559855899473059477492834622301300752420865056880935251982096314164455352382740534847498443266735208530835363284624722050834077545669208829391139328247219577477296953779049114603009439119519157213617849505172396299593704290341239869499007477487853726803476487698716078993079969554336097838146872227817579176769563069693671450733555196211710950601867784448349908784766714727382080263779898556118517618574581676312861922430033728720977011139343689486918058666933474613600393494204800814092080790517107911444201556362666888418319941340114247600619515732726185175142825109559088824122113712456018917074603187727020779665998913375300144778763631882058617476888156825586837678544425500421666807387246586602647877535390241090298101393052900122398514806950667779342147602784171301706417939186831643565821285035885559303074689222945509983393562674833669728380655267177480410071292102547411045859868432777290671575491617543279268218961502848870849053198131157243715371578844919705709953815510955456779311006094522314549745449814333558727446717152736423064541634003322020152997478265091139107904466941112740413820319245901165506163137219808668316757272738788197108481162628996492037034381783840341642054436466224068787275142126534842392625662726585959670142425722157601437965446059458402855590221863995671135669173042009575952596116492040919680187755391629100585500922804799179997239722509864919927555449185695965887531933266592251358312473576138340547995075581919606453119462661780809343668842162826687989821644701146814217170653164866712783683563746959201824314278218140166373492402354652950796685883978132710967099768057770366395708773238996655235703013582220548987096420737129453862193332266643386151701617083553167242886882423859627192463653087515962160280202055625981101695803335562094048438519917347383346930471182794276237353715223091265804824732188453715092833904108735434914113465396493308997608373684860534549657549904016002261904793681677469074504286632916940481474709039003575637886886611860307698218668371705866597688688062148724096571172564956704277317193579946230609215892550579297327202303821626807114677778094310323604019096284520905723179298397194058176370162755613133844066901438774004053405085483190717434638042761045196305384287105250778481298288156041790508537400099274577991596047960776908790766066127980434454347580322799370018845131006868168794807827801878449323484373272069596385077583355980908865945839613234112241919819100669663967202367759540415265356342043191342377614773616439654365621099556304459766158192680129909684780680889389975296537754448996286416771384772960277971243260803506104114476785735399269979747008642321313428805488300222171391825254959092060937997627624449907960806059749428572177764788300456937565749288957645935730462276622977861939982781040294758903595473297998702977976421819753286332802884886634856754182599331102677438357231919365605167632315912831167225409803567671743369819146629156917060946129549894553547375743678695371134036518805847424287502961077327624205766518024555232078745812669484836660552452333809830057977608500708140610271519695892689728959144734161747010137385312513508862414680919948405103622623681284208332809740378302528883589700601399552672826336200483005616731306877316302692154314323370908529575879425593104484320718373874029958442514406431881555831171311546893853649520677427865730475517234022425467651834294381546452754165756915479931688981707194517986985892197143368596497253628671562585124646041092019769360247886461782898301376206754533685858619601788731388949573859193673336181318405031057891161224941902178838500641594757881061106091982105030144695283000118225282468241720814361270295652383858967046060245064585094869161834409402565928377973580466409176855491287715371097939095062934542025328260528284016830854238692525144669838283634026410567931447415675657031957045343915953053841776678868369096130180955550577057333354021414310171743547555118418220967655178504980110143156154651807119649428303206142504177139659365507217419810790101956220400384506273022194561123788326946619151743617594380275466845472508742439128196604582184045198282825239068433769631557330619655552016097234115673305666848337878773432639327639881119263694651230398302395781298401546401580304289595394281294359128096981151962742110252979793003121526351005653568333790706712932990313737414177807960614065490121251354011870756935864588620632053360689579106555425275020018928435028641302174433933937226967317174929669243998334353940977826493876065297385398060148744408743584513004522863175758379700166042985129989484261168903664536584638557208634757585956183458374562794908092641676847557294190579668773465666400709080133512518981221549751588966938610642324309262289565403018179252282699336880987967916968232750017715484644818200175871647587355397357330638124060636594216878058537186597580744222703737902924282073818132657679596870516346491845191452849932811804094395608978050429704945774637798469715803538731053287053820225872873309022017913502664874986108830341317790584871216179848184539176700893499879141251720528766833549484150658778128268542961260318080780884872729581208807946360291761686778219642279390460359739431893462318347545613747871480661901842873662257685363117242033081315200537840983615701451637213562247323045936531038780305460579667474015797208543041409272657725058237964050281835355962419172172095863674566401891940668661184747191411218475327200287997365249656731904416035301595965000304462860715976217002945690645756137838432339989956687338746549192609663897015625068227873202789666561722583086637566324465295054301245059697998918956853460463971614557395194213987348826308835563158997253170513014148421067114898863559906604099638953664282083035074593875685038021478456996668297523216574302982439222781367557538862783550815166639781446417261625800456391825538908969022509411967183837759206012860849212047213087639372025645220624719866996009729613132103412012520455023263841892697569515323735198084589003417956610908300651029555253013509121255826543266721982953385571530987165209020817050070122684418029333423200851815426509600743677139212708755889295629513841556124225697665296964512195309953523106863853230607209388582107876491646548841630489474518598817048184213403801005579922541199959335350440086375272008160577939067145804087306211459334063319064041621217360011218359569303958876535441287704975485321236247468567144096141217019322634734405259895345615879568092185774099064444237121825195359621109637823806602931213519689009716206105496770558039101678524944037225130130410822125566407196287205935433397964772155872136117027103499397226855405634417389679421643213193691270287908826690708028271728186775761098081203073634033944002351544861654554835842846259114452232933659050321070622480021534582517402573444312240799734161695055787789942188486984368232533553093450703120202804327249103050054995735521740798599794895205630948082036292231150718122759799587396249891874872319763132904561844276113964020793271614228873925225692584039624569827240253328739052392149513023616511264641137686905946630426908355102249579283348875210061777555141140778827927346213659430252495469636940888571037907383527860575372700525256954902219208167471380961911756324008565823913069997163961320732875870465988586057783946236634144641162213194709243609167894631993362843657089362467933550592338366339943329290904744435173214636571926595000621352389729668513620382035370457634506930152448746614140096820528824028405840400788803503226773405654806590954369718494551954951684133728391026113170979750216530276263464495800461243003328469303718660398614408480158405999802875281899986586479932198843812050708284515460254498494162003623986888801827398057713359157237539052293875309544013446295720736358508908889503032967278316818365483861512911931918424069037420105092449298845918759102815115749928450672875233089014424795059594327991055436404315097894123092334143475366418136958485428373443254016572935407269883032099025604987972169835173349169910603743810333265015493367121766821095311144778421229010550489153480057632508679962471108403991739000898860122665839501198816414399751161353085512918817469419264026757651987364858550719980218487313712982901834511324522103344228611041323808215763200410523384257376041800567988561984730813051238466326492968925207048439227793118438054935614828543339611386045553988257738668312451659041435759334768623853899533070332937492957295494858602024541127690766269185998842703023284559915542781336964742863658415303446351021817624886586416410447343825451877768489556351077308536049511116173590444671895470923841314258809384505936202958468953497036207419426178809080256447124040170179177449131406009483062198072105546878055745557672931296496112055061292382160545171564076078712390005328186242898999278805486587850869136148339310543467713667366149529253742567838581567022453935567946413983649816179485165853442601627561328686465886968551283118799486000867510222192423684198682195424036543643392225527318921726228119248185546986068037284798086437246018411977146707384910750059219578633219953726728010523378582071521685363879907355858083345724034677511533015647074073292460603377013210384194220161125829620380232379543347710534566772690731102755906116138937947900077688797990873544106913211728442533755526770284148195924002448948186259355200716050092239069742332552924762908515516013099452141504487925188460424580202280094804102920489645982984807208339241966430732425307176222555263734574633140506816033248657243721247456949353580376359367177874104755003827375273089044726281858196889120498770410843622530256717736511014929136120424461686099335146296197204747969750200525808531538779071755031787301146567931598792541496013700823731290076975645787144724989915796583250034069906672859200562226965590377579143381354153531591659607922631047622153407216300940341364536392942293923402969889152273235798940597843136403543284538467921008041037658398006303682713095400697861931147335186042875840967116577418209928031286489495976112579639821511837025507730066194864038917226548942807160982980394533275053655960611053667606768268867403216905801222574848315475854786904562074277790600666613568913407438323588906710465247565666340064686956902757319860907356249698259720179893613077081564263169174493011848077233559587141286908584672967356004045469247871736361743480678241089179564735639600151759303448504039056060926393006782905531595766383043729790607351070324918282250416356262528455191996792283166683523932885145249595975373151595223339492596695361293812489146763588055734324216241666092558656345016067861495680246229028927214802968373927242211455922042506289716156596231560464337952550151291643279551988622879353475194051599310018244132230038057822890747835872036314362452505429032831972316082057243762610358910162783366546800999226458816374511239274173547936086945863379716473064067232191488502723679307361442456757827555850351483842456573369830388403561306471138020074109323226619837155016663927496217402085336683955596580592553494733043646381938017755127608264142586261527201077919166667598750996865775549932612566394084455516177328099345877117189412289505532220686539553297155916513288272271221965362044962810511051694627637509607007988858754039764851213909637739727176277446001943563779983101418702774383291404949244270941491784104832802555690065388949271116688606712951094417288462558965555931722371711303594729782577118013000640037880831050393674810820913066433788787475802292218063847222805539543502292522370866269756895740089300694017009756828553809224845376688978509672495478219905834061520381319204001200539777455746498407755697035343225394150799724514563557056273806610181032630686851501466769354800084036775440406745453530335358420172555654042184510662898013743594826930457326968038809013866086025478465352279154317592403198142210441655511959204075893551622560586475225689876184883937783330479478895769872562011061987691812714217286943773501240926523133150982242023836479999215959736081586232168807994288126733145876811042275423316914766073767456529372260086729009252540111979401279307320413680821454389125667884573593298983102398789527857015677907117269006194103398583070176601511546076345040339875057073580132097652582121606440784318148654011631782727594172833574514849070206006257898695068619752131316547195551700817766185102293273326262803278523663280032578220289416187068204011198563488697771650280214281881450792640883260406939591785469348711277291531751283389932584524174514056430750817617197183146944409621365394538709363420398081589302482275976158866365984168525691100783190505917505218447145915006378192764864389857040140793617329376063250034525950684586344517936106458244321944371591221765462939526687832630016474529603160216716704457127833753211206038034710016943571110404776810413361730283647311592037643830317442902965893872517981926554842294555918690985034210550225698205783133479601261288453900360300413508987564802193383887162893861019352773955450377181258551234066969997741767035271344370206612811344148347041811469397844460923115492379446773929791047370376136369942594316784809915641215429403373625889503110331979447847751279265933082046408381329985890221710476063215162745664940910541734261267811623620874661759966372745905013594801411597717667053613372068578217090017918382214818067675574349494431333332599920795974303748132186734759190060972354716070823578618848471907402366544991222347087081198647038086300601079601221458470981857745228814869916098515347564372215820676866286044032363455163301757448382170893170575485785101426757142846457687511289186349533722650892229424086003289628698381882103150125802326314425751480090442480621232208293796014708797774864068659662298887859438479020758280556221828275954720470294511897118556613850622766555586980991660025533014132603167016676354861483031405356671453239980807597760389609261680252398885028005056266203184005898523409380128081154662111497798607679474771842670179737145656162838678812122324321657164872841129629207387978704447915541186461252092890672852689085329616433232269051368433835540398560068039022555538977830334760538861623775608668668945535348254462412208720962489526275405020611987025655814401796996623806681639808011807580107301443717869181263475991463550919735758911541632844663888141343486831769309661395095747349682137686868197491815414212971447682390476988281595113833862408257745167950029156717788876372158365693919278540806182340395498795251569392727720638913808235554509875934382117552178283598790652952781404395815379922417469244602198562454986198381292421497597624422789809085287212493352741095243385931242586295904282594663643842665668278580959075185738142082656820118885181903700127176280691089741649910200412538817567227203483273341457727935433476701979220297283157105845448744508363543235532687168566440066737371786716942275600216615872172147828478205388848365366551017395897821536697030400022245987014175724859390206456616534030648403447357708121393154192236144867609226429633559335280093799406313540963452397359205513020972714998790099497357543260136072806162529633415313090457246073755182773846206696028581781153244091306434298947116335347442011570763349468737363188720306222662593398162727725094008516340218655625273935152222663305119818480943461484711234225279825724685060038142036695741885913138693365159247155936376936264548540113601136793824153599003225553568983138522149857364742017010608339319169817954351196388762383475939520951260173166430649186512717165938966735945004574051321027929313193793564038282658073902098382645074427215973057276654579623899221009644648318844421128484667078127652654228241524388269705817124043640418470285344946408908035166221679502871803634574759894880929172978476933458897584337047988505806963006316883222841447601081214372116059906306986880093432938387525193499986227903529754529440988011277525875483085938554510174959786015043669539479919996512330758527322448195503206682759305501453064964926339505645667280838912956147186763219224086754600188478173648528920720873237903949432817652696442508328580235879448277429269385284515192192455625370321110009950379452507237955941167161074304035793016124672067054932641067919899583925721806021523463037090196401033522541074217127070920102939026143847362512821158179570008267402135715804446824117064195705338022214232381883613604931698810642893249763104837729191747079465603164837159336595757601944406763353681895539041721238786177340964588868132278147151978146934782586478660322151544072139133783946591648773366464686207370235978992294216930749530575211876554852345280081633130804383365108505008425138144520938816609738954768836084771420188332074945962347398563488146499293667054396184496096854285105415462934225884270850161492321587446650618974663431762712793197074381953843371671592711990478408522987003178825383986006156769448075481449588063181473553923530885674261294443330805736562342105197841528475391837282840030180609658035804854565716003945183691133092549438268700274735364926401478063824821153811980060127424338112103658518495148306904551985377716088321166732151578629444426524331436929031394471923268652684580204678230272123640872404373283933701100990220268001836546510072346737887431454981563072635741269588715153375553984419820146821169300567739430845235866303653059963985223832091320261554469507418129141150363372546105114295200599243411916359185592560372223226056106602752178059030476360980970988786150049713706361842632792339913174453242194334246246990201678265776787947831383303049264981449617452638338845562808784385250682997145258079558239651831589794242227505846263766866914557793622298497614178119343149631255497506497987659151561867053129448224797087517754575762883298189922155048288563106268905184886808400333805208406195689795270633934155140119215840897037505813641913588202506831383682975440852512204797966719130968854673016017932953670632365573591521048270687963037623306106225423287163458701562848370233948164218899488503659817066885524960766689404062029327278101588585407986939376192340100910828105997053358941850338626759488906202582655014360069007074189582252498157962945154163648254794385096446076116149181348355219976773074377345966339839114701129408397985682958820919343642181455813120605848800819030484948950578712521773082071462911421548373575581057599509918549782881527545138986519546538576565951730482679404536279495115612682426400327630129669632435499954156428795019342970714611828387934097317706435098505002509457322780213311247032978218637060879722175624965413391655714797360452609118136921090282646670335719391110231825644847994896218413501071281854206988247155455171510714304377249940063944919266570240809946761841845238483845801048856859565245619674336390527375754186960777688304655389735517566002954120280519812688363106149726134901709503046852678882195542901189289970792076615853240097811479133063955382070909594112859391947137865965522510019944769303719433788161026541139049619392810423044449098998626030082303126624172391906568420826429297884489075855333005235158936580740505295123171928707254159271596973630558109416865417995629475555820377719413521707441685919940054941373042115161248507983705341711160361913868539816258058600830325128495730810606104564842316071325984227959308035788582530825858989584642003703916690988495931277939472140760418396044977731606550047861867719346958170765104462856839504332188464794380147837390061899961130928787923419269762801116159226036719037474304673784470148328629454612158863534712027450271113866914010163648881818482360283034869228678055471723853769977460592979202408940988090671735070034654296022666312288184374459903825695298457152985778333066321915721807229331153835944121359147412655214365094843094744073304208821191812179108798120717700426081209206146451512011846175511796951787965504443898002106416206346078771022805757303302258056322527295376681768210639410247198225292647896085486376232319790255993430181618404914118376787761777829764483356717804924022302518545841542706896101001545545792687014989875444722620866038330492392260644749607403730809261504509728718421019638202571069935716207178503877547877561151231250004235935936665821163767698609020516224842785487053750580593570687255148226824210016039044057288842868615233040904298245551108476535793683879725378689364713400337444484467010954327676868486738808562427514530255504467829200326378739059858486454910771080175763316750018134168596100638117990490613274690758699364285520969436950579209330476799073438891513786768274834328742941278103828053521155943426938167801959681711230069393845564461632251460684500438407167895875461034406103675247936229230429456958631065869014630550901798800328867070460490098364334062743759557843686394116954020536064840957072780468719556261387379520441114313801303950971663256128508146347326667000160111309053836331711249569994218312242229700787886883465041164289240231673377589153429978809720842320575885395746723950382546414585065225730857412987131454813366006676702902220871264059562000461714360666797972601104161668125097842443811277693722023168087951254347633385487295535521255862661722968357896666169164214247494723165249370021863960319229478412371066538172205821759871268283450418905128520330282379449381754493371361337512651012096917730965226232878471254596208078612343763077202708006976944586291647364758031594323123750328195966021896128238145138196834652086979312674127610072233022760738270294389519494107536231424870807414248454831999256827360130786668996620380392160592646638320707958409101626760102992947864572933691335953361519502998355261795717926705024477715239090073145068030978398108625241822607025862121837718665264791448710514785469384131723393351548165784413755030457215152287222672540288303368466335397470987408924350557159337477291746422662169369984009991033880058061067703418656450275795411775047289246096015021690900463444152503512936319804374033509959038336227911924390466530891380432158808875094523841741924727091911810410817410190466890253817953017120491048249867370718546475537329229475254647725672129594224787419464669900577178093396857112354396896744274093715641085905266064602928478250123859952468995867128821549368805116256140217115682086235519276670431448386356548151989161794034506617698006899832331575557458020262932599460311951873293549554465783520483538470854399111723598093080675813913535025326074793083884013922965444691941944216359759994413571568582206789361235858770671839629584858264233990570712920987179966316275468799786605653310961940088205153384011186386789875652938410181965848520599186958336101150899984526651189518034046252806307076371762018246658226183654088710488324907756829446940081931030342987937271963310042555724050097979412582302605759211879734417746614239084898068062106710072783432865729482430411000660791862296627715473730275426324949800522534145127038756354811482952429255231240115261468329034367899460257789017311695099788139878195373646094347216431637172121569510493506582647609090816974762268289047100793917094581065471559450282583543891407674718778953855034544226365364375521762482916082743396470871486127980114390956236184244687185771023060212325365923518431389234652839420048383623947916735957423547502273181771659967181927602865614287894784025106138560895100080984088013633702288556282874320317912507980060939769234929865655159409434746918247874320709458404987401039861799107583895359028150272178334396075581584110338318054625968766782765541975831300500136567796993140879840721065003812535335545246390342038920752651992017818919938804520980334389301586507679432278213635108893687880995428245988318489801034401648331232888375686597725349398073003195759594913233383366526166217675101936928283572229768353934449276813594039650682528480112129481050733804824214169456528583546303564506274156705850645927365555647654125884693364630008746254750894075829242346571047114239103603955734805753486978149238193634116406418116372543813696085993203975153785883266876324208880396529883534906851889187630264132251738041676102475727806230206963070848392130306360689239985029919028081418129465344654758051962314802408153412024485393734553162583460816024848412955615048538077855186434933656323908478894478797879921777710247100406281827049064584417386376191421684463925498078622792801495513012588024368682243689825505342277060518465477757787115452393873337496954854165611475281331226993634446226464112561920513295244266093884904125071005210612426980181851427918327198033030784990198362034148580802688790295473471368601052868030392245762344398954067982914418942334066795451637304955834767470063701257185691611956412795303393202416808863788986924356810711202779159003541730458834012664750766187287835978345852993338114945394411850617478684254028369093352887759898712583411832142833394366249612933581693066899452410384840839611607534709798869069015031007687151559448218694062321016723078077894605448767527118802302216450804358657202269593163303795646939551838060189850658703285550258781503179591124980987569832016278306186803532253720236780019013475490623034936263066446060192979337430034709962035110877120055059185792898957594107817931460226992747562984327771327149742761794026581055664119855993341768340908849237281425894034737116007751310521335982839069352410037096550202878701972792618968879815041064603158474730491683998235742426905395975896125427773257536373511442559412643305858648447433299885015696503110608333552701823074439001781268453639049109113011128085936982684802721272106090572991224652780923251928658289122673220663709258252501978772847228890613900022595612807743617813785127896850304090966682782324466396574626119655829817546250435701612419262675547623686284669215910114709872666795507174814091731164625245584216959781369848552735870538715258700411500897476408836767141521926385170413689896802843794024976734566541020759963913431117062064372976869007633815982786685104136389422246379609355010900694558850903995827073544619755643538467495931383775362341762346005605736829945300534580185283789494522294646317291069766349657834902581958706187118577019602788305680645088668740910122019178842812154556032512916694570534849993504615145288827222413470725253703475545949837957142773136816756308914158302143062283642353090901059073898130551908121994594155951805754064303883033803204775083124394933754159182185473661926863363317462752035050216176129824663283274679280072347738809857051899620245214548402226339966152285914914872146449009522406644062861237769100492201417903210411884955284533923793676855898746797428311144918943339306062171100171753647611991989993222020869493807867448909545520137203262804908165985942178629120890335341320963259795428364676222749087855596322458836095483363829735867869940608791137337561207832046385720358017981406134905296497135655369282298360886991416064117934323722066218032111173718980953449235463942650992017103626929746107485373794460503003584195685365239185242125682088485730130487108492247089229946700102426349688524726072435924723787452510031235716398140426572769119150444745899457423837743221622873354303473457436031361039557220549204697947235050426931979040062688054792372737565082934538704083185247340204440132026249998560637381952419580452725756490274572652566249162071881967540841062690996028635296270097097086960504110515560745251752209477826734336896375370006781536147902596850154298632558106518464579147077967178919935866114782048812492523756527640479404404790589111576451978517769391769000100380027920138303015739857119300058818113841945017773177311825722606218214055470099667435872438978358335570851556492542218026110490306351048507070835262333073359346418951743634271454647827236398188000915915175719780408849838690520647052915710519528149364193840304156914185693999576610830855723201206344793517550186839892707076773946137066971501835009124673374587797185820309789769646870671493498986093955071084413340963971220909388257893694822612422945068877678766426481664753898881529264111672018306575570639965448465509376026487961780223973341591345419744002265077194822103965808920665491193369364581656454934682348153450700613472146931943758048945682013281243090665527549313795690437271770948392355491782070456143368158682192298404782562727485454422162990687679572174966115207403290587277750103450383958108430454416967448467275415270512523256076038325730392089762726890462418580647124414325942163580622321867534977096194631449593004439643378309947985785665977420674790180983055105721268382822626785567019688450161371670178004562659224592837693373024073260988095067499697328001774734207957971498037062599748617863265175216657882213576070378982702083093109968544967381378490920794233492365863383278748627058567189585926878637725878760237258408136463495630718643705817335193051327851689210262412188837329408325151066157204749079726704092715563420385287527696512725964940246239376061678055959786667398269232713652216531963006764697644334763109476319142271295290541203256334672119842427348997615216644393704450890885450560225522956733831423593890635336902507061068069001270399665314064865473136443916835376791072351566745132017683210780082140320163426384535544081372241436590235333122197454668361681919629625315235364782991282440070125791498813848898140716000414424668601806995903763019305441662529822457046050885806662880698647221174597828825393767884941188105665040900970451350610129299893703082366827926091405427490996735692860965359650973019472383591256234842511871823848021826667094119433874390543584899159169860006851438434777739547270149161995471076534201396796728151626921382430472855446639826237976895264644917453082675132043695727112164366775524452360889748857714893401589324196148250846681766980651661539084939069080570375226822186475745218869412369588813893654021217931616472765390498327777041335400614760849887365378371803183011528319714392980656871808948080519662588268231390581653578676047862832270348697658868613377840937206944851112293518007707984079536072857667914966254024984658790248133953457737325572801305976588856433351019815648482015780656899291643949704406016199863544906277167877923113188807205420743817017844232657061654809763085450776509269552719424306406394710129518804221790089155490836479469036777547350622408518741734740136265278132372274934572695410628271556721330196416107737439444638862254272958458818540957965691691473433278593710508694108139570121627382654560764481078427372873192411081965225987849901937340672133129173605585224762715447911283293098887736543953039561515108833261926021890589825459816721020818862999916569711085172621001924180189856573920102760567096848050078909675611330907084724026306069713443085596642917636181152390868065002261224791553928678072443494301471035162074307889661052300112499943451802733254768919647377825017760343046059505063858208762745455559849712227403610563500665641931942874954068007726305121543144618621669810676424456566430955863916615806646089757913012483230243210621041662790432265341008760124142004819859754525606098850388994256238375674337879557318541432687340917860250441026171955213485871337595561107606739985857886710170516867213564439626275497028291742553803687891400598053685939721762284391656328731391962577366458525602651987826835806469586553020617613049734788959082678196377760545307293294360318161246013441154129503385597441529306512567776808866688540055376220088945724380642439851814725611199028818833526352064493188066034204920017490197528416344657840403393397933698598986873502495155788298275025145019168096177748246955744400266657191120741673702790275168020348566597586149521044980282792690264867907707647745880084692506802410520357800802182522856864340125643054557949609784663946684566244268308503839651014309757093355513406010085174969201697331333311325564683383269734654934330249696154886310997150617594175336366207665180062099670481965738393423231278013776466960384002147002306479109478235599029795070289336895543844788394584289581246702073793001460385618494096067124526894470063684454585531884825201566501398070683776991094719405183949016203451848085458929690862656980320730188361842246913298236422071333764733367802248194074520082516545121149558124706716929539098674056770720817112958265529607812590846068654408646427617334184674362815391310889473798397591442154510988516594262124714515453361976312382936049897397106777576168530169504021298348966839999508990864972085005544070305966825618851037746820623655039625963903279732659989583936049507834437256988147649240876984660625102830921189126366598547602475330459538681215311050415286931508639334705558875671986908343509760402385646259046119975182077418762134058143690548611203740123228681639657775963404044066779427011221422607916175219354961722125067819668918801297003986139672704416369698842078385572330527585864444471852678515139275013232432314125788767397408646775598104784509954320040514834230500493228270435672974128400654610601723589500912471357548069185174333415227446986784275636129846356243459829301495662494759042059772858542986625669378070288751380154080039017403617502618782835310760497960067999712614121698247721970646055702206985307439194225855397345017218176861766571060873818340829794194686844072153419061793464133052973404756074191777316187896939994490682853413940510851629456614755445107962189357598578960835531493275976864015105432490574212909770610646514493129971104352147313834798990236237418183571069991792986591916766516170426660424524498788363227553785859249711266723462290090594809025824815416973311901892011075835197757979595605195375402966449247227102627460340596223878955850802290696780645542842543561958355591440223692294761144439852710713293968709508079405395404855084927342542249037231501344088064853728488338436816731752913816293430193583860539348307798056607050823433496328899450220195299862634509520649700052690418220761008478363868954386995706828805403374804093562308603651091778892248483252485643523312276001449448173425212767015794883715440099151247388902972108907501164654433025823314323109422836215230671515725261233704259701224626097183439437302554361891654928237559753082751615675316218429659992217049993945389296589647380369653249034845643118196659051679292518706585247399754150634658148733925458760002435465637429599784718099455450205492752663737406930160213911345093452676917637327237482505310377055997955502660279536266071805778448063917334268803725613117427708568360893571126434868850122414368886796763695579106774955187701767198192781573163113980170757332380144693539361304224009374757267624200866273044428483701791622449973802465653489374622013019110472598063217016029465329248000344941343967272961608122977392086529451890012091419371484842293766022294336038713330785545010249900499065231540992555112312990520262198133979952050040967265224291189432508786236214457378982905547283695249549827332489997933609608428665943954260921213970455475823911878979291811204732506972205730264727726385808084584685791370530956230492205195298344124985598648620620245671236402547392938148750559812925068142127983869243537099750060202176370540282891178282135840301124972398857153813194719524027197708857989261316027752889223344923235764458322508304811757878875553708831343413343913308019932077692377707175599130936232908730456623548736197467692089953966159893965416403409679430904039947525574641808406986279159496621579969979811799220351581439043384397734639116200282127925969494542449436942253050371383243236211448966814636704582258167892558386260667101236990321669964002091323743042317230005152223903965282855236287247251166321844483111805615111326225582491287750235588037386303141306989827724214690985851954495530886390010704297241073689418956340901476926751955602153302220649625348481537479960447674184803378362862738480609648382356647452615333991340024936923526301047669792358192130768715511464557814137856881186114230588610536777533624477335070760189655563453948652156875317857614483749778479809553028457638879880408365260428835656660167083701974914094281381027147048996587128488197495097290570627976550364921124919416412506160031001196186141378704761802278864752074751086631919449026300913465299786951114647942194787644403895756177336301361202792427645371083089515372587128969811027014248245256613423040857286056458114587066949520300166267147959252535598405105490521835176191899618218052227446542777190029442282877990024334294050899708175259901037644303760367088841370931782105293682624167622471984335799652685801325588032065600191515702656565584174665038715446060301036730857609954250046285783352545801465917240549674122106147928831726698426103890483945655393306793449055021724392541941343977588272840116834068282860958983934923325730205123366686704175956959598465523747105013998131874305587912951969546275148922972613113971829335038761975055867927094818395163217891090614681719374489895268160264126821984257607832405026698316876578789926543119536982586018191853332040493996572947406045516252648316275486365394086406388305180578506985573857125423672385730773864590744304198755862820289301733475455235085891959454092888107796768150950483866774618560870737863486736601560035459494673457469921699317964040297704768999181443766682876863621142481636419225521676267573479554060832444833182331683460667312417544443989149256222897977705668977498322131703922169429202786932865214665944946785299712580408184610829961946447994230610968735683024143809116255378747879263250183310477163208515326952180235870832606634658936249705565831385345306228423909568286760422674899782745639732480733443612491399378459870571898187186951835018231927022863503562222922094250666486213194901405954778859867900052965998176276197047775111338561829115023059175564372559876947371179275555593889158798588805598366877469376508282823576029122416828152890401383926936864394409130347832661561500632906567846283648056197719689175924252896210423457417868492332639086286851080578555508142705907043425336960652573484183666699442054021446108579009129399596906666224815489211432620190308525260258585038458721159848463830793138282851197731288679400499760582423960516681947279726726194209991545959109121338317255302481999535653636056952255426409683721026192005363665344038503273584214223267136158186136360385903607106001196970066733126578405354332378556537855201705179879172475480527377570609161274257137794880776756275954171909346706172382793706635757736902307049628317221802699125264408141049401190024759678962316616565737260669413773930080128279763262168850718446621069801089690238009268601794870857632167616773514266279308513574793600735280093888247339305963836353915825595996579120377085601711371574706147289775523557630407534627294741367995136047054172911291772003772096433966861323582819947265598562316093880459198650336206366961795557109307675154638065727452323531526384263542095569539461162780486329132973039798041311408577433307299262892691402774605533515315273661722378827898250836042473013755524442540274284999484001926232058423441821781166636775687982402429549276859347639734422417473733476037698641834473521786588507250300945584693960935959510512410704205433014361882277679765912923269185241494252233471848548794424879497432714835844118357301520054697702021818578317121708646023625455730740850668266550962219260876388861864465354515654819918328791863236678926380792087858635487669390791665045402919715714915480633016064045831488325303079230240703492614690570161912708815833885133479461184294917758165300879074017604152922524322741820272310028358994108649658491971483705571288015307793796142496539279061690045730617711904629884234771054555061181033945261745731564998824835027096693532732293006456971780010670913687073625607038128126150146415946703336733908813303657815924090706516665580526371127298275666636188390568313418119806226107530084762642903801078943941102767939684055402967100493005940132785200231457207215584207883391569592389861392339957874889440485774604264744066355135779764690545067693046439622942851154871965467244725125062449596552019192795586714588281866244327538566242993679712438125038907458643330057099152161237210249198771344312713807684353891553766970853886776076721964677385333467585153936257661785739538115218961874057892511564177763559839568370376326658884632232715221885060022591223825246278969494607003688045467305358416053501931206530390399815037989422147865764119768736644620017716814174748552059669403490097238836257141546187561052623884715482531849536644371463466724880261024089221029749858919529881623321687529555787684144790087310731113276742761351408976031920987043370910033530415218017537636284745038127832732810904456552435783527676922907047063240056056009964050104214812148347734456470126784461409334689103415481357951575892253373289692427288465735447534132278864085836509657063588755994574422428608419054803114916582679470445172569421719814450645676038700740769060965693268518720190045124892026739650036248148788877789144705009326946793229866696424741538674450145494294758870733269289324378608580109994517720281160050575994355389152012298095740425200284497425349057906626421520541758490417706034016669683219849027104172488285031280905090969519409340433078564441804302964833555807505134139698534180147979269829649113673600108787429106825460661306351167613119118515065840483099201988874526300027453606923493156146362519090504573366594838176211865954076475790160890822393178962872328766872186301894604494596860009978456311962818686766428297246521658959416041066207450011936584934280971418699421577531960118664802741052346389490319271977571234993910081763738389390645636934201516576755243660667626402953173910602512681246436360717650293691499402862924360739543555870642559704549360539368811225865999565435749254652676671931191488733644490153528732907624312904825206722969861362948204167041756596867260355696853373351918949382424492694962399283695753378235976892757803987428699190421824159609780555402766550091445247282570486236791387896222084031189213572754961916366426378406712071657906193511079787653120428043640755878776905898091100838840159274436243502143554981101473525189955389773642023534879853007589456398117602512646479070646241065779623505736917443479105722514595200966568459177422415131754672074803729149246889713656871094567935776979227449029269939771026266660109083915734440285491953519957327250076372521530556784151492695953845611756981492186036448304092505405528904386585862159430055534070419789118187163779080545119738714308299161060613044016116571458503118566242797486701530596122686534719202351877297030766840314064561405029771934232890216823852828824791897289611059264488014339013346397327490439537706116286608873006818184791014934113963259367970923274983870080640239628936993441998575432664831935869736412827381191556363197992659254028318551721485005548854106902720876897368172113329889676681438662056951052691624713283367512566125660674207750523549077079775578207938083501466351420395485203819187625777581437580794946037263207892811211109070841361181199726099303695224692892283640131414698749822823183813850233706394195266152695299050874052461769532347350973080849391026113794000611385715471082006246149843483588725503775123796591172904060037715329136381290541623113482422479189766974656966397569085849607094016719602376408040625792095093320825578172321220642165498058384371616824373740922381979804510938715746664763646626849369300663216493489931688345253663906198630749497134772005229409202406191771543188222614222766280293694036138476941177201065866574447529558616962436579271152969205644266188054877853030554468555528682460175158579381917804770958151424521541647672435810954106504031851346571523240467720588174432302311439205251208962212970961487157896681326389099651001520774601588800527878235627714150116472509196668984678204785995887077400732591538470992591581775679643164807941386732896320801210277301537915097594044862488107984285188985934997664520775983294937324598337535934861259060732633039307062979709829860156699682370895348916708223285412706144494152725242557273116223360115707097008544454863184595935604265829179769772806158032497797812713194381055998743177160779114219516889662920851468862109635747355221419784531885001582615712631823835420805977669932801205102216267144510651181895999922879236231336928258800810390027395038250002645548579370619376253548539007347584175585266354498005887778429810561500066842081319511253118019895204763780957167522151093154177632184666269529013543939331634399957270404048631704424159421902287978752857495943440520423728579127293271093138215257259371270580076896788551986222271748139257639787662045268774631008597431461224219590094908933242437894035640575335910848293529324272696833501533542134667058785604627849890901134185587206687570609868451990016693592905892210640244526365152750810769734057525259633218171055497663963937482035322005514127084778430453745132282804608122243443612321575567463783569919896622409090411549877338387077448543383924845551523625656446293388552561276747250726612070201511855861583002435029962591745373845830542714681507608854792473896044625312464175155666854736249978170704775382347977996415938937948118298785221611363024395395078720344644385560883709124258879945610917514621719252306518474129904422300703434953188170334374917596375056280389883092883422481155601300810604917255895172033680969824720627738528315653422481175129143029640572081579516526616097302484682164310492315213046499597689291347469296220397122030598487631769105623630108792599463236634617649706188776141994351070137615660841544321817151221059704208745559811108982203075318977237426397888259117716119975778272621729112936187485513272528465981086754918913683802884197109131947996964978116779441790050357773720142705784386296172423267863324459790999771965982558642879647196568310776820055138728380673055900912858331861752025021223229237185942837334155428745664193176036538083503806770283500200811203971978118505563957220007767998914022704507398107624677693893967958343267633497955651304348006145930637241365391971828625050591052768965586229571203691902577765717517660898694917079072640232006044164725913714966492831063721090536107720169938031202719924146601141458047707995412845689714137220956943393690112291354068157448843458323379254578089958075791996363890738206633452862317525666503501735495598350777036061894507869657957673670218509167246142009423050123222275856962019570621159986752489646346698487350042847622128993626039145149495802964424033565912108835217615314637612045226235686092255761914904868795582768547083106726365641545177424167276196239374518730087196726201539344471708997383311418151517516030812898628293491981164581466529970075796718535350779173068688452466459976936186880199629680257083834599002174824448230957289948044831087283085437682320746718061005391432881876900630860664573808845383222388946133418375009675326112074659928805479304969212717549432348424279103950019038081221600812316409558305591077244352145856816772661898295936034469438990741546154859226835132108956880781588045443637873938397383623783559187754142688538176632680371705559224353621207381479743903433048942535457230766705256935689113588519560357637756122768811437572022621618342394438058223697186105588531734213030760005878833569668234284473138876129178186582002742656003116804970505292192278780802055912046910764469929536236535507316347207040984141782239972139492686236050287249615983063787545053093161754788754417180303959415541415367303604881761507018523760141389423211264520431666868798927485060328077342318751872406527312285449398503849871896425540521979258774012531947681615391429849357990840683089140758008288324732547264716500930214780194930439786406185854637477750323668808438885042275135884899694571853556903978552790842920917247111320151865953509215720372061940346468012786295970987276421631333963735630594933466548138369874195726169866705041861445049891029769523994574975363137125815470483401966557563747703984283340169297030689768188723789833893603471219770603443421665639927989133938529003014764916557038221236224133806629804363434299476732432698137409533553344420034579028706536270535607436976047779299225681000364523681773411507323013540529379615760375643269761735610137292007162754307054204447298473569991722578435206512673531353984845943398094342184468066044541958796622878195309580189585145326705286663577231831049392144440164107197150396873961177244827568154755167657761180338931889584314836081002180136105254135786322644837296645464689293746141168012844647991087815969424399925668920329918782369650048276592374317686174462371010827782598086404127085858685806518032576302171082826051199602455645511654452888586463788593451730664614812991032053509973544059749887330748012909999917225828428068558722107039129963047979310656747393730005872255279726943922127610426677460000652169987475529414639095985113717225210577497939841668494897911520537850716926880164639028256781291096564142379557971518198296214512246506955020116291983361789474130844551078378917346384461399938168429840942617847844557364609698092994110553209089506208002503599350419750711916438799256902753615240833159891649006187730561139269466503010696792024975362137259772948473425116261542067866519332322669263258485598105285179798982356586217936989545819908085058599038940809471129991145086978602374089574535635447680486126111078396468433918575612448890741976490598381770282919964183901641657826828969507359980003982755616029966592803763910516209906323002735321091271392360245336323864406065256214587109140080053494111798121589920679868685755302218731499966555548083265427860474064197595259566448151793450188685280287008665186263068071687528740398359592098316193651552333615649315991549265843978295618773902423779184444828217279803853349095350670625342061818511605230684061924706476144794111752540094856780576199115234005235315757977951650239665449818269160066679925813734507350157332240028256566746237998960117163939521894815738832559544023384362233565226994254547600887742793248493368728153088399742531012986139025202161810669419393496775211596007415921119826393329530580614722644161849164675063467973288296000925881340841914324867914444331925479543016045635897596880590416610471435187879815093687999699904673471991793874993499526958941505940321939193803962663258598648807607101414530314886804082629513946594572495443360425017428128172061219182478033110532299043863672025719637113268310653986006171300980895474988999838622440083531215542664215588708168632338933343197477932434453107042108548778249992102736219980628026930890892416143797788825796342856870947566530546569549288510366001570843479062471868657644857069756125125169895015349037470607831167874402064138012435645484284917293646883669583692601489627741110942505082597085748945606539108563331156973011949767138837077284398500686969797232737965650328904635997652634417914650095972171939826889736553546143228233573392506605032161114848975030047886630962942268609309088240202901428695326342639047586431573472329259416389029120417431932801176969434769587394108884579961865064940939970370050678361624147493529075339762798679147139884010204067176916751816114716236404802941135528319290106511884167184182985846916181074215772470269427091502582680081375734767558887518607450441464879378697961230905928925735730271000204146099408841028482795391376580233579245226215601317529428890274310946804637592624151998441431549484310732713592964708365033766455108228130083110324194051079000677591821628679485434302015435138758763732502409731095330240731591835619119191668063670164556490913224592147140062318805681082457071699043427870098646820429223660271585538742309850671393203131445525548029789277695201489782926054290080790555586710233289312064041898672331051833307120573106604467557457531580462053339859512803687477327715082768169092081656813209457871304786592901677093929875130554189481218651657305748986708395980810561420252017934618315533897192051771877908299266306915100058395090029563749733609841679544696015756238276195790247106086107813714843917415081744682699923907862116712442227346579344872543163580512364875547317043010834090827285988783925395017530755201865924802548155843149118060917262848090289016070786727152767073106215061366862585677980439137123597921299531619359265002057755975136608987188821296758202715042492974996924304069254935636310055426285949933352577579382713161326242719822527304862224532958426101873002146040234449725875658798618019335979066187639870004992415386208829729052179545618726280379610073932766351704583578929489815463895336378446590929239401606057469369841452602582605795369209681529626783278930368223906501559042684306086498820375761329007261789583640157874577695857024551304161117278441068937296266895590007303901088220714400228992946018277755735541087012202857981509975469239074669855761488166295044946048635113128795968456432486775779585218230190523007996209681183258603404396704059130951113483170556668772879856024963628187436134255960955516517711415533637538353615125993009634373042571285927245467767566697167672175861542530601329752144185953936756447342104810154479057081652030046518079489043902599573018877019868874224893530002649378700197602535964587091460426019188302288193608517993880295839705844816397680437731739340507763337728346577358945627128326470315220065194334635235340349925408089646674831438450196890042262641853511710755611092721260631661312023596912002609633911280293540212085841906578395333755734686867374489654079052137985009297091045681603293070797251815855608903370416676675021535885145499648530380411240761406618637523197237131269615610674766352840109507985900029087909253092231934634376403368821456977231539606571034957617214219695931450918137323610177095074020184850695987484430444793153678286533300777479993701529246659621393516077905619035084871906196566872172873932888204178009501305821467709945448885277047722407464304081446004598677357670035542975412737095437922962119055955346831185167959133569050330718776346664669721950799070247070880101749236988245161282189029438939000690083667702024466557752208844980687757713041186724551940883281279704669906352206902091380770988112263667086307615287170545229615723626667551574622757046703874028970877136611828796111449559248023556003467503520301024122376789608145374260998647824481022053244706124986551705780278056844829632546680395935096447424705200157387982743316550892208720523772041507026876036991002653470010102051087314927560270730087286164656555943145707900328295782049747015000862862215840439308230305927215623699220685112467441783073415212042273779718023376610319914925993774922308719510685771224715303554615301341725848663475912693514091889845914702463146183593805850725033259950040410484702202788577848240839716913839457834634306502514825933928745887673927994345202519747703977732805419938852633464947363716266310089007180156681235866612378329235320118520326672643222604695323143358334921488633057139026242584094867843667077622645125334585169878381514787528771517170449591690559086457863984447694018155769710755941210912058532714843073138310528802169428529072792513638240306689475625871017958726733877285593160738944871116813330658617662452178949114667370094147175836960760674119226714645380280012907270011942046262688846610024336897433540905019463328401448353264132589709528209682011800919957957809722159506438846133906313370779252230767877244471059123740750768855311796033547630314154113616213210934148501399295530666530414066722449983768509282341347857446596235826601234588454328953125766845781368092790996284738906146939596429639667163785627926231369776085180421207857657752077485748886987513918965505630554188739099499242306854117523612532848291146984112280179154707488699695218134366202271805468513548308494409797191176600737612360274171490492885129465743147334023774224600684836588700854404918391475242725414777884182996994259476243414442690676652561143670785383434571527979945315540695431022105118565367720490387233183442411146346712718754372406529117142149558504475645481959284105739590628352462394981169435479272957330687561832966185021713261199562031442054776648867892489896275037042074865325015891265403587729594693217676101798005014992007167916721753397144859199930692356524186203143098692687002122062714031531222450518273810924084131821187886742905480718239063837213254641328462656869459700377659365394605758712694405706464476644504430212901823704387039654757133748320424042218650857325924419481959604503437873571538549637486565650893729100267903446842027437358675464942695819504387740720892037082343607247511773172293606832805129033922247798867118230168274467367077643271325684777021330562532252640065340224264171268458314710666376314286524638013898699690618590223807970584258300804894577445841635060142449719285781828082477068584406977438356347675773691713137897837331325346698635316064717038807449345398235521715437095581119536208895664368530043863950622799474940153061185637571100345055735275593351355199673084032174898484618104825682526595200175750672726850601073081344017336668811478737935017461223030241611112875528753396084408679820412475462733762154969985257787036057910710321085185709148812470922395844542910969697568297010393660699472791664113354872803597533933497200535822953848727365350046680638020875185534449353214088868861446910017491219300956158480697140704239188668660720033369799117175147780739952533291521514000578399919042812705510649956598988404295462157028311052397192154618299315314788075939664690226388634889427869791121906591346324042106215206457041516472350086131867381927099112118694034095859701824090783927897497536511772535032084173016114423905729793159573244476678923588506880180293112993646492993661837917861892666418694706191748064672862960693320891734521055666606452848918373196766564073251185237263437224657656882794793264394939894777729529668395836632255939239651937572625523888028933457842942483348577380498788389806282197955788145157248842021056040213527610588611096483742035974337779888914412203209507650239786381950472241113983653464795912149994177626596525846735580285156564367160419882671969174020093875973297754368650428875442742900513968835519217949605399162742773694984036723633091835997006721464236437761175418147151990138532448225926332304789310113946261800584716945660710686744346513956764304051977543602944930075942855092543542727222601696974594252722533705665593661779684189185978690866960381739218816750945407347955820450845600659654038294063350377655253735637366191636419752190133188376306898967250001388173434564921629358988711473172491311293350946178074557241641027447152949573949445531328249715643068480619437034437870040576099356827243970492488256066933224363698275192015114442352252949739660023162526871331828741546823704113927687936847791348638969408777074762180510056957365864893790645135767848897902134868063405722852739682297937612602314770538035830452167577598118913308455841712167239808025700262102294329117633678142685632376357272192986861865676324683617447044291000994219586692456050270881515705754124884466758011023599116033065697493990201940737874139818212967309499527541541896202105950066659877423339730623349886275456415199338776336503612966138476789278682964480116322572496771206931697332536613362366657098848635943232340615450883715610616376238150804960198936747006324878252639810782334525538852453855914902838845146401041960587885018454744076033133478540724063536298694052518348661478423963283891302582227832764535409341745271752373167953420134793848379503659728745743246734168921554297480776720280007345884050127021998905734554618823067460981476237651167669563936392016644241004151549417885082051820503974840600731964394931967194779714606868641309262385360297547646064327868165467276373286777054758663134460692165481078762713157069746901803148820687469498633108395581062607944266334240113081132468953433019807938444013658444950472207066392663944474017208446198305347726562805671694218203172595469036816121547296754582363819456167743326553144150706856420130549477190989460203851903612578098169872789511523834398538375247083170038312632733963008443664574531388183914478730648336244310627054615580782381715775309054254827382649454955866175886467766861389707957758611306400431614332800775283619487317793773647342523149018089225971312357772379774381474490481938949242612130710709255926460031244297556730273098147334475595011123146959232105793695514420721768298517674370766239519558246601844250085490919210544892140513270789026643739410202446430840943225038885981518484969225000094140305313542527391393652610472057785157001106640767131348875237330512217127557950967508364163680262027704720134395484288553257174332517675976843856338529689372775167571569998950795426056436220324171557515508024877020295572749436131865470183856371263628743861039682869349064671963746537666414210111027320756518142232042939044699392350619535944602048793632446926305684550186478478844068213600242583012265141326628240057141765584099111001191219881458383207019814577403337204876870814814111326419230649490752732051831638997300757423372933377173230590265119932369954726698212812583831753065794514682779738118699166306262410223589552988334854905666235679334038896736865551964295430724295815456638430529896589796733188761471163645760571710152355311985187584530473666663041361583346757583761145471641993472433316307008687409094991562295838605710290569540354121878759049071259053386790602305824818105275220942607213509987489233390710594452634302122269455196133562940586536180068129091108728066403063455000725706579151134489161718364651742038044326133774764633881102746331082003971556630489025610845586667308533354344630669122808508209562687841290694566167724429979339878837641440335375111066755411763048263089062443811316860942269280246271417239827813579188335598235439076220830018792001473198795278733775382730529740565457893091534656341333559540150912185250152605563349200221033433999481234114871189005294517066397956031178069562665310256030175555050240207120091667885189365085622558243614349462756269321211450620392403074187928195622102905595911062162083741079088243804291927588894201502526040729202858284047890911415740380533854525251702202171312789710468524479471057481937990586329932980026768208509273575890954312134742130968838740735136582099599447420026255833200635408676260166814920475729932278018548331842999723869922592258979579358345524510730191149985942915312815254711127661837585414266265766951371182578416478682744272423663747900274429042885340848155050826948678364308956378715076832706304243355486186068144854310397182074720878993166502975069378929079446976771942297449769491200195571651340881941093465106477976502780885594874692300582984148479462827820209947755927883705432787528691206962858981754660277618506273556765193008736652017719887432245434108681212575526233652967044947346929962962651342117986925756871485480619453134618513462089442926278554530349119907534179175963987236873849451084786842835791088776978895244584314396433062958354072263754029793203044965289672794694132936621443112049982357360783677049702545281769057572177905515623110281496212543902143987069955292225612302324447548948808673514461948087800402242059821310793707089241834311091672185048771080439093881285700180027943972330349505355274968596703006186098343416734344678086211873810083788750894696932639121247361388139787312682645019363022509270678915585306011155505497916247390918723608736946628170022082197841497256482083453246319079376785975062798467432302963779418324881281544490782373361306583394541416803315876481524817294871408637158105726885116402226621461306239073117712702287552444039058668992394724685226080664503706762166892764232800610676446675552132368915820531713994834357618358408515736667713047571206355751310212921514753997269966525228432248790824641339607274810212705552491606892565468519257416158273996690364849127833949974979127477678611192803001960109547372850618242503586518729635349127172569710072001007546639531532168281305488477264457128355404392672001067208740021839655584942332703307913700402884100885095866116569458813885752097756324804653596219140445602564677604991017884160848767905044492448645250957240835513253812204683153227233482278168606298664152417438401001497446361853839813263213464429777600950132110037515784902572687769864595354562833599992133126698427642698072390112008864238803798028841942625889056025696566619298593561816392688501466397680342042228634137604560881496695953602235844123239071959340767069234070339545693314781156704574342333858919544396278148776710462283691263211120878453789176958765691686248467685302699020818774742605939279990095330714805361292158933027622085441118015211657045499046534529931588593049655615966436437968516421977130569314926660127324745053421476414670976928478446537080842915621887413960752145134933797452580218842319560698115595404430974361783119266312720426697022244186816880437641045228294682811230110433370152788049079562395527762471378551026629620664961997689606973750691008674541507824710202584401274171627444858653560147351607023443409619779928099685267436159688591253293254553844852865817807583174315217877941861856613587507922888561704370612862694465048603282671033616345973398286759588815649374895181872320406615195138414681941223430243738755776906260266761255168889135623557989104899964852022308997683285741305026465566765162382017849869473760231819693128470614631745724357877221537517244812445458200320877413582031668594174252104646451676415016229487515836761092460290968343764389740891347753460371502314819016790077979838658662775602893322222125194643565808906051575848658946977620655066863797298459964124217270722896598548366915221328905743295106713028624894919673264929195506114387903893984940997540945235525919519936739715311177747105464442901331738410797893003068615689886728775078243335846963462627036466328747195998845713815274748962934399610294374049354648325861719490974860387363943065011925218691807513950250426192379571497927137411959671084939370953062869328292736269346240511809686301262397021038936076301312427940428197790362918519346605104344372204056604975469331696914557024185592584322682342956653358403890322975210847063840167878223407032954330056548183236132080333852240587770244300808367705132610163893844756945774332008551852117912440153560738451082629399567894761223843901634568971230596136632230863253326618515434437492815586300257255471284311808196649427602005140564591280027136023805676108656923590095140009954552581325348603944156555004308287090485757246227918815599945698375528528716832743364565540809244265759388583109676494299095330318573615698792870104203948907662097257881611657511327695792035577139776695590405541828689930497499518004209732300015924317582815313660330653283500769598456494769353137476048564900410457644440729062616743139513063754996745929176259842424516718243384289403584320739479788532222744860598935351066057481641192334290096805526751368736120786396805585118187097527203046349150563232131675479518449562638506802168050517535636690586071002060202145307236569664007528577777166889126635595060845232670550760140447440386552714056163805454118997506555722279969478824613137754154697958080087037717698439974710008006664969099910601923137081018925739150312589769559781126235308877915288914524865512539450239947430515656049498719868924811878322651085113125396388681237970632447843829255717482993526635430300679508872627286990837796207172942083550129204077844339436065097545550923569422326779188229724119544530200697091868108636472537618987218453174837469719588402869136540233885651174564178287766249203931380366892172632046035503132358195278551906858363849907742277546547883728219734697981907951093607470816052617262928318289780317433424587176773316043326394704669144537716262588901931804864998345862716344557965017018252448556377875176745381043147071192782275573946410590722048986752939643224774955946588426158839761825819416388942085827825701091818036351857191806038480689879958484493512956878224675944917898562443136914192822503838973112101091604380082913962911394555200159773460496741707996874920738969043671096091266081045749123234505530408751719116230365305053408307450057560767676096347151200762575876085100730855908088517613485938691000775835940731990448091151431512804371306674419290604839357821737382062808542472259312268614250545822578325841650301947804930028321121630559265966224372398154243422599849220358815044924880958176923778027294136178189193335474600854865760961606675015849269368415532642205717437790961206957018976394027445723955457033853103010299010105036021754427584917079074290776667690118597878445491434660601434369710057660258009635477936112519640993464687677123110121919094479353172818641700685934539232059848368216782172642728604866815111140983104627443734631196435796222539669852065655355547530111384551947786074031019331197607496229265622621239317827013244117500681612368877594683605702248128743046607970311944185528113737922582498725591720643631071984268890056298680700905765119070600626094698646569764562098668415474555895988179365328428690964755032732982880118534322767732542687523333921675289480490906117794693647408099506075557607697972194826338521090553086707205015257486562397635814298670646592804668233317532182032694397151081815152346203317256565202133264786510407118006264407929755909673777047417944067158649863753211497438342858038065588038077372388279546324747410061135912660067412393284733711236668509352223138945310849453174946472618467313584198935480035444054606307047268582947528713137449820238720912528289134437148720639935207927904134222230910549496721442238521448935324258587541983184604474799089408148852690244471147250679196203505529684777576620249409349994724784708692338302517688619332812227503404911061250430296528057774080461697792888850986023844460415867518673208809905660599748225600022721462290261531907872791213580844699625614757157160439164992453484063589336295891104549074020158979828892994623462136191579290546352324594756985868551103904832759749848006800064286291363148379707132855545782282118225688294445241183809760656744803345763895946717722878232512016974490289241031498027354717991399024491642545281357819415852855092416223562949327715366852689842595420830396105932324587267413481351252384539459160203178874902543629149834897632186009978487576934265177553938133886460297887839206538639700917900121976326144744239991563688548133521660842295817317018192727724048661492506255174328375448003088147757597195807443598746686456545296328678510922149291896186899358313973347571660837631817936937601210398308148272191210367302751030954038101618081453523905433158163263222189516833639635308721551891732898366631709191498984307436711915124371789535144049120777023068679471549031807640958890277353888287520452798174795439658476827878312563939062225267302544933324572325687191017731440775424958573970435571923001809335424049590604282982069364434969108382255305420630060306406353756249555964239631141564574267953979402536953602398646739513017130302218250340927051916214566524270915771714180161475583854873523243091841973374150093856919273274011997815309267842853041394341966393455173048106461834635405231628221668080100957539997315585350336020888473076277529478210460681083711574705880214058755393906269530162226409118436914136787487166378598220482870284218700758767197373113767954454331802983794504632150180023706541482755221194542544449280107365769066816913229458631896924866642704830596216898162243700042531113356331389461436787445462785528921230184247763883361196398131200459958266481677366132941645032663294223828584431756177296635082336995817414830382580765726649664834706698749519086072874363921638600723305492469907743215245390854436078971607815201554673108164700388718288155069192807737373214441134254926956300831743491561001732857947931269476075902542291722830805399840143888266085814271951741116452263917321917149763176139696982220793678368117932803215307402786203355932485537228306341635945894595322389043480371948642559740406621014051466177809404404503960277950063742037072843929636394817029264630107487844885389506245915577783496135772300915540146195160069848409860376374645848172609635840553408410857166546723621787312050114139538711914584247961434828187641325074581774553415480206836960362786310320632646843341657958241363924114106060034430997575295461147679183017628475769843629932010972313492867378057868223913263579378469282239464570904546713770724067265136366080738390993863319609745093758657171333704210885501497838057189076894431946310588710447434774905173715492187213299317502771497183343845731401986304730684796746589178340083347179842771217017921848738616451714238391781704193034149864543130220443511695967458451931890480385871502659579046964166399421312841179411036512053697713483529275850167077929466549849796351147156097596156349413196495342368812201480991409101326714074464455920842137749969972116626262847529638333029769092989263920378486867410794162924648806332867031686073982084053331365999058315333382329614259697895639338739329953472914413523898043040641870205823183397859841308154109962341407183639162538053555434669288153199436958427720552056577237633923235186322224928538216756911041955859678856671904184943862401833985990077323754546978900690037965249673291406922432101882492090132668199608093725069601456303444861894142415825050662730273796925568166620660249678712300752506934853638530561050084593846849394496730451288534509422439057727161915569090340342891712923080322811460213606339896353451992771349409104582253074602613284968911393672046394274731722186778685137586735035731239141841873250702999093617944791502690367462352156924233548727777838697895140929172154719862487848434655681793484954475423401196066074510460740149162398304831857058405673853740312005807143709644149212610673221329222969109321936148466727489475814822551065519195199755131558978525264524095148170571147045751066700840720162134384562806871405980562718616643561410122805082459214813550823954357230379388073921895549226284086171286175098851687088060410302514735683923066379166188443242677815254317371804003705803701471899637517171290409079418340512280025441276185781799213124485428879301771199696348290048078540978958897222190783719762069379753484247406808329429575043445868329558949126057803735604647788595694645326420393672596283870382191293562335917863334889333756945603414829468299661040745951956762080048675367582251033586506144722531432634161268167722942999261227871714673587790923225791742984813128929696439857470346184045214966812467460113266285083976389245929146843274455581402983581401344258261534085893916909795564909195771216860685232300790322476853894694831518744260231441726248471981561949989856194495747523703602792942494993543949338253249654881342462944201704505116227375294002816456933925153169991898436454621633659396706906384750428060159948867732564298864346650461261295945735152656839404333238558178124999691276606652775726271439210930904435686418157041378334745390753955761410333537694495818799875963540531027985060773154419556814478349592341385291422901187235049032755958112645453908059121628345495997453783943084702530607461171856543163655370430060922681482579377171396768425767022420792296754558629192771903308881484043699627230690633398555542660486256808474358596565834465735119523165043888731953086774020331358289054541635509999285004882367330198976397515323270084772057359797164404791361706909173819637183981815557345756883985286128845198654627631337124059957965481709150933558015158337104125139504576348388310568653449613557370728167281573553111731250454515657206703609217244915792096645473005332490812456786232223140040378259240872806597739839571272581445459906116829360105346686973568390098135431185861101612486179251553620985767441890923611534478267086090560936808725684217497590422500868031339870502955498201066776972415102900640638303965818785910996223325093717533200717906355726911033332694612494210916865955112475146988226329010975959150540278011565631266517237560806081348146638083918285563355103926884764707103555582693395710210317354603440639735689087353899133666616342906068980821162634508013142376140156601375699476286882378444494140009429149129319678931142724742316361659123821925942160964332457494903917161350810933389193852699609169540661478316080214068915945575223604051273137937592657823132489695723238714366395728805099001999576186320370953064624857340864320521548414344669123046171720065292999017354300898693506559915259175200838613416406985331939171589081890821349107570538792418854870444117349099472291974925448006138670731369255911026371523310925864849203794848666611175964754527283362065816767295000516051771713830194739774878009321547985722818904177246386546370246789317956172570559570718281061956586538088452755692784533580941008690395888107099409028875632281552928186602833591431113770584349236091679994371400312040076674444401054968270796835676385475409253180856419704844202920269615347853837119925034657381313149166021296345073653561620508952471756810474801315288216870439339615755650361183106190197925129257046878798899347782520493864899171434428731837379817700003341783365902392324098224218466526176398913936116949203327772884693580235224142998795026506384560959486073049700264646894256914729966240780263025801198601019494971836162976602815301827720913010862213137609692211970469036417191639389524577991998593284255850043976544502907626134830445333029554868535951326964063146469668296989456802874174738255751381661286845088108788621946464669861704923751723577259185587109674069014754669964172825883425473832230181241859325929501972518894937191082820074986601969844301505592767786653445204427068680984878765459663880503830672194559876083540479992046235713851278244373883127887952251065435813311898000936016721306214982145138470969062197152784127961191206214528047458046464741239076330332171097136507072747652979340513039690878806627195863654871394890105793122340713451011557494390823744560646861955776481394151224793532569443891628396649903367989825380294665345382859122762455855211811276360653859383817690965376439069070740421516860704415521249971828156160292556265007836617695865634551428057225378197429783629928164553997242747518376288746795058347488302279208972870662240339071492086493283530625467261216597846130723728911549419673785604553861187096642387827763933332808287946800423839136824502582856493214321580561308999214862479974277134078443553346977357188782877294504295161937845728430524872774417454626519809515450121529981714046353377419566282427895270077707818425155252464141755454691599577417219811899045627364911621904857909840515278682012293117611199566962729943373449980180055262127215341992269636280309728342398920964338731365676799342509144813660931762549660631595787276266954234742387700000681267879171919139437090460870127451627899858905911754588482354573483695064736206434373334245913470648485371017906921295385272289115880611989809909480279428281444680618867034522060959194472264488148794862259600520204956940819728804819842161699410337925856341835124361290208893549814882115965701845998453033791903738305730846998142568422587702590815435584242053869673528798502639220284337491170262764555585415544204720336011421544923582060721778554593938407619384125816703270443640825506834048277279660640034244835786032706828092354749944682475531092631515273130034295448102895004748451912917366394938519609169670375410608816285996214064507728790864939840037636409503826037828589590806462219158876764457591582671597818438069472011288603806257457996217427395039948560676633903469204463620875990324876073336121713793696693803221383079771732399955858557128105658094963421388097076861580036141000879388659062033542080978923366923959471953772984273211113074780553513406181311597782681438166518667282786230956564005885990194172640938201435266082063684573689287729169447089463059280432056455733345813048337283828725330056432252599985361589669831479011220428883883068961267026969162566697114723201356588265958981822911209125886954141082530167586605606126048631310245769200441068129879381298832598300300595375249817510255026110136141186559901643578993375564870331156322673281944516010628935039418478970839806588130133018291227258512028527034372573817275783483332772973625046695766263433943013690789086617740342107096271204333616665551149381391079220488291396577961888896476936392860479604609352927135601147416413935114319577780437095451638749028262956707186021570758002508428659527628065151040688323621509141975727927193806682976147910848157098924325723416615950626452440711447975051467931397082765607295507867918917853956875903878579602567990757650852128046758910911492248943898383703978249028597372413371964558593912986367814601426482608742695041734442798834793402039209262866546106330402303492892651935963626280021250351910092545538967922038607682329381549887741978884159205499460998867287788512833760970404102799051341998710253738822725829421896543014261655965979816720086149522862872061397279406080697437245462030538706824675070565883863929785310584375962937335661153721340893779989783038980729994009485902779493881114059227430399885521210322328733922857823343099732124248002601065796645472015075828159361448931258976398223262726791050306666317765215524914131786719384980525469473470514719008503841066629078699141302542571976788162693718534707899301386947789150773876741059565007531170792376838983615944298725239718258119630872491998447418843646858964340856412231922240499221755170202347806326456315096964271909701772601256829419042054241543349265035759681635351291628139309173085412635416570661122971796623094097315309069082653689802744664187016359670364123330185566863273941569936098271738767318627481947580509084514213783813031795609903815086656982880845391076522430894773621746716015698744005108169139131681667244937287184355141748299417098762834207500530071850896480737065225537891627053970894400770429098844000600117020161428107688346110370439951720086940415066463958912221607899048825515174217399430434328119733050203967129670901024985750707238704505262021581536842293341390241675993595850137470541286735448222919909751764890351071884900775507030408998074168395642949542995526626088729731153303145917543793795474739410464152908750791309259842487683896579322275773635956945511102111485255263429908588601718097809302505913797531670599205711146254270843731274225153208889408274724633140830066142303491009018113998298269874610445535363558957624266835193826360177763980721036759499290561942262792257006436839438734377364575760359856401730816613514768712233752911423505439322736302155506194295406972064222064717893608188840343251916206005168478653046953667050082444398456788406785309278493464706048901279964878684501305231506877736061368310907573773254996242368858380983610854816999836542152451228250576621676448284552758049070044447364140689996203168647566069875525504117240324681405960938670444773919256821147036850032291025065644738409445787522548817876003287988876220687185827738622135023121872198736928737397880906283739476421576102899287702727842332935893437995442166298040664827820568920646440994378424202334518495366735279876767585446268428964276053627175135061853138161364982716373954929055417488015169883351895904610810320485800454392726027831827779789623237517296121867746978156280612755913678942549979915392005905322820262734956659467236064204979456489177362330131614467884740179678203658957206699309618763097456730785933318446991750887551217453144319107862357046453249000181384494131661922026107309516814817077244924637338189417315803562000342810692102553583503545406957221247250977820125353231660359039545062215912042636807707752844650294467903622790909603229334776737318127809956026797115513287127310231607983703562085608699405808429008915463096054253675507748235543929136594751382281599767050350911796465883441446746580490463260159230958928559719966873323615273293138307203551844318062796278148738504761900553780419269710509844443189596211855709375395865768835109862541744167595927293106562474188394972787495278057460621326507131516818481959256775216854186893675085975697687930006104319395955272153749188015579307976614280770467134078985238822749859345957066498856841717830710714521159627986840850472850434985079514976791682114321865075862502138853754561311227009898190371637981635331267810856458390591252952000780717313362719154418217373690740524805591779551395480378807483098654739601261410628892769176439002930221155281104131067072723645028434285582274213531848410746420436852429354864669981637959145116103103898085114853645998459827794859941099418486552841250764983493418952108046945151248686531437204403203103296711715984249003447834076333493514892534889924246751312223346563344998483438483943460734847379068509677931289884273310349692814186129670671397479669315828879762573457138420889015408305042169768455310473348104003787118835510411197652664769647885879045959470503963389555189124472305251509441902986079852213201116599047398208084033629954286436536308278915459869115160791275696106181207345402034203836214851672424287446441318827778741049938908224829009864479100782200649488379244058100540485716428695120906607937041613107622932944093370253120787693644318713867215166240741930337452491718795742960905234264215016556873184822853783055115648709612547407645906222682537934965334957277152394251345827016600495594742767163821092071292742093380259377884364599309319272460006368968364892717029603188343037027273395094220548990684721610892240993587843425705662980835988407987404487216351873801640852305421954837269367614672019389727781573109816869414401932360198608904871300629207930508950216990328246401255792231998235769356790726914892573869698173683168362299030708872633803832384344006838356737222496601117074053159266346653412778873184090203598610006946542542195233302541947593869892893536519500814388900183028216558436904517102343724507682938817291584050321265725070616934134104598213467199858263516579875097288945699247621955704677143912479716564415833163759299981245942202809554697416107798417682339262550490387875517144583665604777343091599586346572221339874358883801319359700144724020029740566221976058742383253227351836130478513471883240860833761014877709011736163684193222648399082185989048338995874112510919829124595491124694067476689581118096231778219006380929787369579640000637613822429235535488983941690508816435360407373845642164088261982951739675959429091790166923069569583080243660876440670338120101904261722699377973948064319672644321247324660748784519950632649255796452897193937304451808764017573445161481041775062953988643588783274525232130916549800694746409969897340377372581100992991910783786900459436226536400116972015466177505913577637250160690678989986083427114384452555509950914491813293429258708437434398273196350052328540917711531344263661643855006642274997232312537520938053788242869884969611994584301713895517483046834240026121153411110265414000453504311144605881677912615424789995587308092523647068486955317485965013916413510244416679678752530998373725556427399253343994605949303415519647115819766915673991442681743628584459449645717274294044520576269145420058141215342453308909464346165575491705117857214905336306292025236934146903328716260047707148501103626531916065304713898156735076084265033219027974844201863312235958105034280746686215149811295416982332027978447004551769971267820640769002182427658492715156337086253738277475443227273259777158121145555942448260957443546031990530335418406978015257357646341126376228972563598772475215124614773054726893121597840331710509171342199885287495585911538270696502968140265176150649254639024990169528021746810979475197547144598380713362732407409115621326461931706899000449496391482454555773424619638995418183149061488046576512135168994602184891111382411561850636661985951000796053419740635073121276205431880460444102817617939879678453414393233312084561599344805381084314971345964717100312660714301115113284330613498510725474218951894540589539852828799862594467662914212080330906737338541250501849184707321035012968579856768573747024579537451630581897507054886514386245857661429768947915089333440022222851489903732281040750296779964067601873801053845922368584417328859932292047700155435548721095908423218794887726738728510605783193782547295807429916093464238931331497006999405268460472994804448512734771866058884976423506582945821706587267479437056016784637311943453588622082950866327483394139733890460487406704257242945854995552675445176526091177641350625359705487560588182136608793262722846249286153470371558426758207331195510425370521641658765352409995099691113490508545498426915704373551831493880236687359303195296435399096450261021890945196901288605691520086387926178189169365210624645313402126046376296749007174122316516896597688382398445044779537300375213972514434139282064674584759012500066752240169408412754398255396949850952210118795783240526956397436904100624688686175436338546937087540124078979018238197839358097079742931701287462302256149394649944956720552722401437318364807037554405599533008639430153698062748414714550925205816788265070032863339544445968110140056891797184989209406680652927409780910821891461068200056117424019207201323367245090187580321405431356123069742076955743725321839492696069337481271063617537507679893934403968416351787460551788314544086593796966816211288781246848110796065228031231060702955568208501728395038821091210267637759453233292456086461005733163764582035623886594519239546550752553246041630237190505857052949464897148364293690886508392237416222549381569342254844474982777190267510509808302290060241564868998168402567411385867735307122297645995341605919743439075939376232047242299911603155811083083885794301386122429361227900042846096507402954334649416436479598925251778361905536337574670400595015128375889416642382697839742107955319190339870526332520408752690318904693621808381183434396069422786394366826342065085186788649114699889180528240941728591824828273374823898124966358916253299838213130883252024690233335041669057905722248551673832285821066280119769845065947329837423112339507606731302127980679728802904283665576319836353380433844917556342406354014454623764682417234001980876420128343273976923402205872624419864467777430557165226327900167910719793837818351645519742959655986936937344452566720740232916182836827698110322273427224452081163817382881743595491185770027953157908376290211202457425828648912376911986121894530736439419351093420973870253024249866323551499322692353211714488581140106914558332717524936578008195360668892408226306310005988783855815589319790539897329465706313992026121891378227278252792681682220127219591117552919486326197414315364135662942156264325104658072272648963644670438923637524301556065765833580593064823641409011160873156925648214524099258586710429541768724353329451870963509817116791756148597443758268197946359033801849384381453749224321031005226908841048263132191692751898075144242362164060832974693087916391730635258936600689791271556888909826708079483705647885860494929971664947574207151550263309697058004438173193458312049863394943517527524086782593241748997081334720365874180714212629288938531803845248383366908866615543072149503512965140161734336126531611064038555572027381727441467546555604302792374696245251494177085196177732738138484827443032537546094396332050007948455646375269796208883944527196371938626339176051817631040038430288323407273957090570818614177871933575178617820750907329377899616377624543021077886885263641178989188342353484202060701479463553025702709794929783175045194334506442205868396353880293772342537133727800413537149378514963497452760361778378515437772119865479960295357395416503262243965675113857777844140005405176556473852902724942272883364455438327284059866337707430769570740381301344195491966538765990786785503561310854108671550217699494215523228684713392085502849320348270366766454571755219383546958298576228540415535896076671980800848366732518515118074126008431000191122526217512544377685349379470970981043461983751094161868262565166852481407971394055084055196579323974167903929050704063502784139237001003778135054514299113072900708002403515677315634276646541265861886634359868322866574748958143329928786334312232233082491276547088629315490861933729034604230248119078410265658115740049762086419058444788825179750020469873710910810625687009622083242907540507934686512509371272402167988421867135126740473220815158894326296342251052438421409003375710154621833524429947276145858694935927365179220242445860075668287797867640382675000073795677910153921214543067405694206764789946861535293964471783975724869107992082165981696750562056791702831629858452289101824122072259502105554535625883043779834602596754118572208955476280130732358466809204231632564755495970700832103267285537406112146689091232333805691641469558175220719643706716491056350057777041593996747753032803736745451927322414141099396132448197214207857677695772717962284702926797742519217067847490438759476354143628674135160799379899511179977585837936647438244945825239143803961207087543583552471498397073453402100539359975987917877002173084655256122319454064252339973750327155342843553407244981265471691626367957001353722631254155783294978565071742669363505890674856157174739740532864240201299694433085247994662896338718851233657341034392697370476094004977397463044084410232670745855514889055527932802220794601757988382227140856149696809691619869063739101692697457440409905270843380195933818001577860474595932952646332013703013329167112090625947215153911828280913413004722953238065893761806911680743519830035963232550798437169187727278346020754266881867775088564207516073545106669872918003697453751590054261671650343419729507471103908890688848369159429099546546066840993326589177607418348051306200318983529521057868295241765861776097927256971868154751358540262081066021774166384945163914088097706731119746126740276660637321994069807858910659091875241861316272872543629232630197727171822812741921437314500534847389380410982078273356661975033893850273017305797886418695510241196590852500718335711292941373231143479288334706326357410558222845546552097886645573322581384568637569739013333292564327324028852280527484016633103189075437846066282906153549427844845561953058725660300880831139327307952146134871096792700933362904758903886554545496033145752105781199841569860058953845309648255456791923128872217328098866622265674196373393660714767223357734200490885109097341096164325684882364040445512628043205875403891789448901969397650596535993104712260347715129801847326107627344118780236255083572398201445266322040606438525285011299948654147755640212779372095311623028151276264669345678702627169747132004608346192016299372205332518185505895139872623269980767834625401238826995403625528936737908587704900725069191371196502384649484552712588579139022279391383304116905113969488680260885748202494789295169307772074622506114840612115701640430293455039346996639548341023879831516002685772469598291490667800408415539150594868937989753623030320671914576476903334349151252900218537329945707771023896945743006847510984579187474009193055759968387824292846340251171599530051232217653553865829883454069185510704190605630807933407620289011749364195943560506458011222011203262698626184962621131389200295201783712050208701114880847981799202423940933027888928410560812245108553796067098700064763552177876081072040429553108760945357766494101911581905388066562489673200548771197403439924412167412888092033901673512410760059606411317654934375874666683900147222958301557371494277748674526519066845932122886730899688741608992261442717061896463857462489584191289647939293848535649969777852799062657320414415440231278407517295284492640744150622077139286489971992468298857194960398384480030745097832156259223422342182869403905392614102245784996403030537987280169350663439407657644073910724434376463439915026685852341924797295013099119542080658413250452803103557145492821665813331928293928192040353023716470188792190316908811109654158169437502714164838423316655153077421198606406863966490972472795803082339090196913674962006640107221259996911849089053224965049475852786159971111882428516912784571497383498901300231251354322855482111868497373801852609804542150891601857666145870356242376349895955612009529452424358167606404337934586977385525069462012340104235793667598370128537860994356971840184893256598324971417097015885912859145345191458449063795247007543048413641085400165396105948358205835550935269270590417963800924611106645378581653408096958241508284135879578707727944188280502716158223469472769547137233666928208239939373701563289666031335654348684671329699151199076375733961891715336225376838850025519502306557908817684016731571041047035853081510072574387947440635724229455689182992045811019886623860994710167953485387835216336741238072197173704380610131803007087693204062411272805099149086930865788470426937102142273870233633231205418005607111305632931467854187077664272641600179303952316676160982887458579640672436313996737016523284328250748464735964563274696096749694218428441856809815756147982621207561017154471107451797770765723538076639309521141748824266679213560466347185511886431806261277433122449969738827884520446719589100352526159838118775562065448758798172131420381113024164613947706603582559488831909523688681663430024923818850191287195561321647807475725752451140836621539517647006926001535588853121133168137516050477979266549551577440136989480841246395748634885188791684367635909308320100448575926021766577644996261996261161979113030290140298367003154192109220418559290594535041212658646089140250596645796500026929691829622069815423386309156089672709584512761296833834172701464449756831360545244928553897595877423253570831653789834167704929204695278008289718819426420606784067273749098058551017187450373364867897632106077127848416260177851453211737850315200971048577488939005262562539370316607977147972492476589879810826481586927318365026869004699799450273017501830171204754781413303794025937666778862968559016644760934898047855852165175542559772799399322815444507619707927311741287862359730942283126589417478347279053544955036392377573549496053467984206421229985927479849603461958828315862051002110338824346804028156751796094224098756906233610088845685709485010954987248453015578090277547627076458828368433219151760691680850286739810719513556800811611149178776532549529901367901852258839828925628489697440728922383649157774232955960036209097230293227797954555463583794276738230667140371284221908676032170474313320551552250549528739544163449131674297712652796664686053695662079709880031414252230618235219564756408944131979755051796495335205036150261323332569445054797057382204310512642624670230854142504765175116261621324357143972095038389241374913850976060007596748477522976114850647887991074000202563178192362657829760667679295589716900619244402149761839534760461591549807614107392289223840003232004004436655986055493065197193081827152571983432079688283649064290865626463281008052001669926437055063076442521318171107308178996076052867292670361699563826025893408439147267281872935621510446318422027318797619193888041568763345605502039575349455522995281842907560714537691820052934500003099692087557686815912981956270934142786265801554883007692180325494867499941580630457256110203069200149669707097876533812715241528431580320482138169768658378567278891777371559703641089808549280044760405638360656812642093179836448771112064608145196348737278955674904526830319689798534282789333870684048851663845247896351808552883105712821549178204834196790590244808377503240862090139994328100416243690676891390890473213988753641174843483778312456408873088975629271901665058128103058673532635808355316448975945231803631763152215533155884761724535523484921448536712898235451005474504084747652771411275398962600300321572439514517404792490319810756012549180003125935636885371381683662112768011557403828329721614208530224539079977377641438519092814736591058179044113646497111918713037434834516513909956376326589480128037782079600801866078028720958132921963722877986984908248070073920242975314365006946929836892170244956924057043753367095714891554076269373095897672043879171560339725974367441336166216015927879800045809642922327935780596886585071714185137926052652760872477064101294596422036606676124513315622950648847270766770264383415076761388223197554593444294085196483100369328359642625808855628206522806346719459160753642196281294140373612619912474235398206217966879179068190168821534657505618931506652516954623125735864221905682113310309148023360691589081639075808950516323140060054655063805113894457554274739132909158887494515423369223293983270674576771163486144687476556307930440039479120927396817366344653928267146507105049062599408549701252442544622606514138079377090083973485887934072856828847487782028655516211274113910296543474985252491858858943980365551321006316763507826925475992061231022444539065856369331357689372807691082262624140990444989699724167531502290736664270015759745163418448992598491681348385372083321887446252485141863092988003642228216856604873136391161968531186347535156643222639626881487191665391457443623330107300081407913507410424784973607104540682815930134138077873148907179685714148366450769624472356387754786227661907464376517681974918684698325116106364884438008054325439352331310050574450035851405807147335068852807854075409771573658343848211852402759120642378764277384514616001080723917701306683506020187511174394386049763275599718464803097312087719333550450015315251646048372390013039339718637592820019362423926000303618903038278746750884719311731952219970129650152271488132609222402231103161452821594450092015491914986535147312552765003410775282617936643303907344211818283352846680416749807161079977036306041173735780971876529341460130229147405392878000464481450272483566443014117404506279372086934274031908953533953225711876853950104447219989838216696305173690694355923056222221256288587398156948738227234637997578726359131169400307585807655627680160762819896183766963045842198969528908540723972546750744407925443487864357587413969579278845594006514704136214808360282356352354080680973173008064824122199781608624275621545749959943008686082812814574946842967612460025857766239937451894359898692161010696325538775567584538025275785516372915731058013970680704183759304350033916980389446863058499816902784917028719416285391339323489427414903946794985645296489352625198952975352949586290681158065947099647897733136596078541454457741429957067329214591808382472877233577930860085518422822466788677278894574803180467500470575425392280179531108293804493209189271233524645706537181701602552943730405239957096301942878122199592938709366714526759638317977206263229535762766933825542934098679175395961706534944439494581064888370097227426274660585648559072015530478543178140742604675755434440147595222054790694710269118242257768913700822895880604429750997290720485418437209005140563888650238998208985248888253849577588212239849559319900446333853953384101808752257220000635049874441287892573147974601225810948231207307311482755734224291186573720278002811395112022815757198307057955895739667050979085416828606197624926020413949088140680677272372876855478314840752788836371214693283528493650039735309152022950283154008735907795995060160035210390075078620067448742157290750868730536488470614798173101263161202553245917251708766351375529180115943537709386069581159982354272992698347987442958297004690857022711496258251269047292571980762599843108015363079456786763891268980785600246957292876622891310652970978918158820847648039905860282633911939343883022861007851032179368088152144161171859835764664920422851253440421051435963712698293909798895195894368668529075167258465652565834195580629966596627442513974336542582773313993110884367118814321062694848237139204925307686576704703379156995011907125367741137420468483868206376974439852266567649217308777727022200097766466911335175648927495963203345789378743831196580966067291784061952064718414549421434682100139173727831309959865138943905552613380475060436716683820562105030519646839367975459701267295395870226591543590029873358642936426138034985286088574523188219579497894548270745608130949533715696301023226409287413487749936904535089869567077185709611785805797869669676025389051542788962787354191234020077037753175678009774804591944246142586311973983120036319314492747164450946420452400743994568922236046797588456797007563968488689474563249493958604007379276563168374533036079007550729795910478594683073153887280445220195041627225210853696757445410162165688148927701775977293343157389997906008887282286165360146193504093832734025484723532314266871954362412034471822027967230297120641063618306656628823437960387910239965064345471655400336018427225611428406271469651081115117443351444512385857288724120586903746633943639781350991351262084762770898113549772442992348826058525947092484107165698011053959088833947880839497048813050738079284406658841375061553903443703257558160366627609211379416003154192798762049300683500931606985216834855182319680734249134820592377103319961626659311619582078496757902041733933541039184198718387202757705770685117062197062770700553006129877244924383575655175589959399927488242384257061781673682209733351418063661013319910646025587655075997824568133788534917657725284934026122706904113707325985718292787691517699945157569089173426748594373381745817222109712874098518802606430169828244689952007848281078910195874062252363249477405854947406916026645542439324764221890098910996319794047437176329872933765384685685908938430216705941612693998642265294395550475735197413530890886506956444969705047338595071646997764183602597255469538575560083480334285095942539133940840940173237074637661053285405932851663659004978482515367773383474109480825628548970199154936759182588861828842236498084193136887302042174974573836225556570303239993546619710563061404351966431028103562654955663750134615837024924878543443190526787343663249450033363532359782979674053614385489405296313598442552552309954651325962630026968280660349752694265877396790704979501401545997045873122473027417099019105708149086874056283659488141076105781735535523528317691965161077166105491447698442191094302528920128491150441107619343126941982905007050779391845319197654624620360281571716444061179241903450760875545269394507758214190154009214344575102685784650555722343600034046310858172869826908394475839474654467451555278217313565844763829404200482034408040911468058707625964213263274410378191593825146362503313896222560662979110396744043798643980725923632748583394959579198743261830158675064180886914556110578316435685695315109914822676635007666028810116608647674011203327695980297328691040639840310486383233132508678837395480595011083346131699575785729144142496263687174117080037754811986660396410350912538977020918061645474468783537744235576512784970855628103737733034139878632361492306544505652106041550267512163728182839819419943362618485651715068348846268016139906594422818511272474004935821037742246133738749757285073120832592453404647002287191680035113637859967609022741664962031493700977835873964432264537818515414056515219902823876670698632209614080722534862966187228286887213019906575455582107412502908865478885266823511594139914773030321034096476727596091688363801966708887318254208163320579777851334643620750165596340011707588902955123120951603174203786109770185251202384504104596365147613885539781994739963886695074115026382876590219468282484667415937296892502002914579356099863671392507459716847047613937849227856287618799887961059085024140100844064363961429562069223625576222751126899583473771299724460764363100958154338527954547964550493922332255978605214175835737124819026362141398911894432494820522770291137846360298790958950441153490235509972785730518039175620001188697467725940634544778170992027219274634338687654674564754716650178898884505906628272861961514457356499710940394972332205460345444300729715194965962975020741179447238010630713888638803527130887670553434305718672208294923054300846804593255898679636066672438990147298321971092319448621110998107866706936365365040045678270296533725876901520712287761224381519131193088035889208602584882343038664560841310899924434271025554071991432306994706251615791028724081066725164744614826988410500815651173842647373017351397099782199902284195258516273320794407137769799772149242854040711054854526409797409653618673292750568997939986014173242642751979426023396896986792562813033768105504521228603629878173383504167286712571227243401209851711385239794681522117780070149839573029341837451862166479164344030965881008324945566104569102664275315410647586123590578604353102211715192988913011558723434534850619037780465015711690727282194765512918451257415064442534227958933804161207506432067868725585126682733903995789127946353267972175265452292564909286082104843690213191713288260413121586948525401973156229412928657383708543955666610262391217965470280243127374253233022994114755225470459844258617229408759828482926745607099178903644264896568394897803018280232860550596678637081649360318546237313067509553351937872229019875477653905668862264594213809794677323712772141791111435864535798739553454335071557488501628483854439548491253865202033637744091470684576895788558690405573994514177088311596969890703756588719467827276406263184805611664371464906424224986872774439100579840567918146170216881846273026928658927052629413629601062074552902172284968758085591773650334032140285710765727106532913313190686809401341603346605027892405030440759133851710595377714105607230558838536789460255543615344408860467402197594618799344432180873933347775054025452185502252655494795686448381336107014026499774511394235011784001704921710360340831790047921588624477673958650199092789233501133186414379625627487990575754185685353655932828260896587835313482610316024820445091150385780020144578321839631731355813623678544572621541835590564192893629582527249776599259128549817584603505177573020058314084746122635890577663525517717316679734868208072710538237534851651097676307180140718376396638720260633083059809469813573514796181083522889426819150084505051627601938505289427606787448717595149885317602979937772084555195560553843176511664575866028765399487356344257714796185509136606783536696402910633814973893342669488276185448076829638686247063105405512627337412727618911358769392775850010017444820527204582344666606414952289151787906329599825498216916236539900725203045060098441938998588974022610539110673325169328566034238569813109830984907262619179094434223024537328114399428609719877408114205792440674475120437076372780655157349990843245240903546981708604394660902874465141487078020655943460529746093386684574970923387826503189618297225556616758380624498207325653551269231082512138006819414404914410978357959570076949419258086341851537589814895603517194049614213900724754411289688339080653863030404991942183634877422819841613447433386437993698978448330123974530794649026769303284337238439122678845323131446745621052613987082331354295205218428160674323961637396671790220221509529638251553097391406667393574189036438802226834275225702139839345162528905278265781659568094274484456411767014710956002822835519452713392567078150610427912375924765025749943618176586542021441462419700244285811732280422250625401846448237258947270750457957379621120896120475811924846357994125911340710951534893675925766989852637683858487337235107131495067198553780887118583516442077231726032202981470262487258078374473740671578532477314633807954512510120724643636553309038178920965524425781029106362949682956732118412551963630608321434635271926037972281649592764859680375334480983436780702899316832645869731361991603090970598516773011341668629799489930555606154169152609729383594530755053250252426748730153915693740618735589549504848270129925999873307707952177849929250098544356992611010740436435761230058134186142610615886220629636669277896897822450228374594413639417475630091525116326522400938625819647645902398846258916970437556693767073950943453902051591842749785669953830069099473187877825567253143623155580259181882919405048648045991398087372109295033088773490058276531931222057756834211198245614522612205940098434001394400919442717816115775866735849708700127790885359452985481856949537882575332607478800834062643029564708869043300026629619529070030267724556797957349826229621301032919589526647264674858765997288186719203190715852962171809473809300574021527244567729623126167792051132663252045369146048898561132186238973201665866737163626816527552196815313736183239016004500059791625355367293708408558257846621088551684664616866838479816333744629230251025048494363165947263435904219520168835704431461964818004045279423566672403401225580180500645497727907831485612290224183329871834141961360724472620846636721338636961011154319794100603961332560151892310487771874364210066269229929248662771037243427725443370995826190235060418362286150742853187948750971061769500715527455467199886792185147359996189562335847718659984289784683078758683427132608869428442459880407848136296422238701593591413101928522407009310813640889444452581091347466134672869955049688883822249064519521062517271998835747556854143285585333881643553468683653387402365645721634034578013511880108457664250676983570516393641010021090159719928001370197678356552999759834132402120644352085309394328749543461088771087154279391697160540375933690657475625762492990103619317900117984483548021425255824432533544891590216567230219307460166907918731448733846907646216398547307968349802977082234371228640512201958827421982384320823333269155650956231759694865729435371409465077588624714674251423725370519858355081822194489188908215909392725489905320908335756978457804639328931937136793277221407001942653365212625942449946425069851607918173341164033207814889277578004438628875686550739140669184591021873896971816843149463229142243084545811214302980725359117923145126043388516317356336957587599588611583285680942180736924134397464823434496572705362170280632133404330615882069294351974486849274975975914636297830812024066223389383323363033454159020650580863345148200022740029397644570034469510421382306300054778319113186447805863918026759795153804459898467011162621058215464118230106244441849414453838834136560713227950463523296256433079058978848209033586189203199847070346548700598408767132449287128737929977018182399111388938135220775793087369848608132218637642514511676665244722904705533225488223094088422531277928653619640969310791462648993102802023848294446197664289221712496209665924756404088607735975348183243624226104715027979666588996276093052670533078751113215000478067866423642239809912243230149160049824099266884469582260456026158766988630853566905148024080424073812944718290996088491678985197087579611691830341231220515430839246771203689041196686827345817110920636475075087808770138943840325390677691756839172267157683074392686358351858053321737045999220913918472436270209422055692962040124172325723938572366074911547686635874821231649141652688323248768155197547758347606198712810743007447495127249874881132068836698559270189806743216625395545430869058777153097355975054352721121014755175457283344154762753902373685886560846866439680983008404698454589138493268712374839177593356269938417157311276318874332533345008002578128757490602344856146211603257761518384646490269170851971796830116427316042843615748172497130310321702720820431965266934214357942169977022964858348743818676251601417110193799313745125350719525268423009694504800777541608622455653489640628296577611387340254196032534289277212781511209389685668554612706907617333611732030628976657200940991500502898880659873698599950817737839327470947926875794577472883903279478248468342045276553983055653280038140491278178489651022458909503243734592747189189656203969188594681966402498445863735329588962518521186019847905680879093159970348819342981683918634563571665380410395373194961326598523850535442253356095309550142320618547823203195785230896469569848762346910375094921358294563807912826121182712636251676288075511249838220416770588132837083778680908912261003211194998119709649787828416428187282493050228658891355563204330847702970679649875775919387415619167518264142357801388967320331826786224170423008913008402968074188951522030730551954072156875040558566919679672924567693150931907133283609587215079621542541777735536225930777576566568173315850248056572998460342197381779631823640323356477332797612021406362505165212028899055005045931155968447141128126485816386985408135908545489400527646482986994449787240299083389543570634588545816469910814899260384348383773938378533007058584596586111222762884716431078304274325320384044904819144793389849590768385048906521516806551694329700081134611294969469194989640921288786355194191913704212340915134428269105163390888557288434421662747544273906872006780867183771724584822284273582429725021044015292188853663361086132255155397690091331915614374294914391146248594883758462491806294402632359210424602767518886951696151984091154290599098652647725188273027168008663244133380590044068685976244663668737212779441070896557746625189332085579407420868771382115001028091454198574657487242853511704776373565241761950898634980185849774942823971771588812367190610345285245075926362649339048812788126981022712242019128826860744437948382665251491225516355142766371328125086492184107068357521730199744791360772849574197598444398902081356938867557976907983571730917974655848172038229263750058165932189380197832263955643545423566419756048977790238371338661642192546081506308154446564649702197721333702764887990625774511641882489331672610250900147149574028073918997510114315851846139647974401991530079610879653401619845985246192563510584025418469030024605270751051316665153665829108636008959002070792698871924881462079063309778361284958525469976146264998730735515129192745533366618565252650853934435250978972856988335771623775720032139404232916688057377715316232893756980332187471169032733245097812091143673692403672472076175042454081854309132846887814708204382602268418140718010066487268980428427410162809566866256975379955944227289888313501413028926248142040252178780648957708448155991889676188075545837200325820647188837644311382019935882737768796247522626370024043535640825951271393278754526121826695676003820037999691969761289084508391984694584768098624377449946648235842607159585169994209512523419250642145985935998578108553278302215589067313672457014691035502010612551693437800995813664950675265813836825685118585487704135821746202935145917268047906952755993053829169862101240191162065859666893913326016517838254048831313365084940315848820313996238229865887315113242208435222666155247338655683606050079380137334307217071890356884802280464996210980363388763593278162149732300118102798275509619677108216139181671745396133495925370327338846536971267048067568722901706708705023042012828019039462301291453868202531934397912924123452299563838900926269675159543860759933175691481921456039387076482623733258705582799656259788026793628504051054209289688687407501988654015393098328852194333774120343808383677744538637782346333684596987726428801194269751224216135704074700937313978836491216243713753889707098871454943781654608704050476130287953786677209783184067941228564666739870183972954125402152443525696984255548501018672230978809773747176173305589653715609125601695808511209411735397506250445948240580942365089271847629063005612149967849577136187577905637988926511942418146384566547671519297335291796161490307469526322039732840714066156503437352951758552183550804289556356332815126798438487257840015922033020658278181377949660372387345550847577144224583409563792342531993216282547780905517444674663210213204245542442202966148735088703171221544426572851623458407927830012334744784336942906728971387859862526197276115931819425491593950722145182076799843142712003168026457218508883402915821570835282316889858273716820710536329326147851071315250636325961071327414454902364776895239534929997940471864916924399487303151261452624867538432026855613561497675202253887575104922646958750163410778089404725000667659734474827172955340757005748275207847215817506573946274675142854835615872236319232076320951379914204811699178025165590561548700875260446590515209587290513064696446766101400995486110437815112075195474394903124351034130104673332831951589544369577801783955114602511157583897083420958685651246221195796409558981682531874773459334476102390587602456373003305098161392000939151231100040785792782404807755958090984933205431528251279452295010338185493038504871230068362519398393337350644516023436529137696757591875635210756177270727435747447042693989385884042779271389592647633450064936143199998579711001879209566798124527762046022832859179405589524922794057164159631704021668245355937871281003373947355329529187487890996895911581240837823904030965855336473316090056273732933984943193818163718599119059003022419898624617370062382693536127620314864681352471301946303254938592882811948987608779264521704248758696073355528262910746457412782001946482336686373737061843686118317115321341415346453280371161494098004888997363063239049641833962615473338641889033404910474799326448027291201868323079273887300094110187744328869259875201621870437778577665860640162777483127249687041445453542016023038323763462506085344807725584262946426426832458153379929316688546513170659053438569816678857712771618441821758174737819965380590076336137194525749463758460324521937011988322784349122589394798240308437909723011326939344847492388563067867872717535598407378945992746877124510176134492413844996693571720375868923028021621364214575559257170622288928363462380413204368818876168496352964891699636099354670528732057400171231585771973737292854598933440452545773771834347554916883963715796558937550429868449442611273970561639055738321334100754397016414372977004320894892032927870249891767934336785851364063591314765986015044543779094408719199904862101952760509951276757893861750543631859618051581036794853903383256064849353495272969780388488265839066129371572000169716459348783757635177864191573322951989215718334274670914595485275788830136288642765325940568943280471542840756875278338650300927099377328515199678715372595813657109384279388099774821052169722170191087583141956020655791261313659214863639807266925392375204060586324053161271995000374509335670185913557268813161630077430003253125171731145109661660044473789741730670582636982556797016362745693203562597306331333059922772617873788409703160456494659484604798254129622268829766407479170709915457480861658501106376160534166690639894122033082014225632737261267772852916094593114120374551325459175318100100976970398505274839600386695391814709884833907514418398446681736648503579717859469845328208383684458131878416433879315667582762602498091902158376353421134555891495263714458138859923267373187314339646851287382903672006081808763186131735283747956543799150741616484456423822959776869569989613087631349895186165137604797728971349624962543335923812531610264564412312830039375479363389211471108427263720604222465390189568578352592315139125175516511143763942269437128208819740402666303974367520511716988149115887364920438447822205454929226186258249617147930119002751552299960077939645794324285059153633544432208628174082105116564328302655501010117768910924212349433603574442262203457753585041693946861799354233181182206563965388303796684572572854533633398189038189247244143374115068075379585241195008780893885101693714090726054089247915016498520328710125128341783887732792711335438991387832366657998979404383022673523363483910146699584052029076952918773769271856202599033619173182316727946823513517418737967071072002250672283355874804993717379536739195079518470821958465293059700152452377675542862822831004387280152028321744374562584537897418268939602909298002106885074248173777947786161048960773523092220390720042538008666230317568780537272558298066781393089693662058035350845389259007800360352310031255809680495482780681537082596088718938393854049580389460564795424218205714867076684857930782710226940440373657899997809514329710743466719077259940264557277428559823358803594367972948293793351677898440750747441476252381328786025905963581548329707810561181801166681671555388997056791807584273873014020969958183769779320321942533098725691726524540359059575985011264844926839750630436777978505639698093944394516331631030585921641098687407582693758947790192271897377348413431668468585621839099685530443181697176953260251964116628009552118200404504049452526845612498182885044386261641298237297639719264805564303763389781967648555162213957533668608333482890157739104342276931389626827536099264767001655891266245025353846887179755679267324619885708405992984230044647389839899834791793056217731779143184606008589274469101373912443814054463283079378746200984905134054664823308838334431772989967461020180735072873234735514290152085354419846871826808937168496147566111674217958174952770376908923593493243628184675211005207879482864997485955229584625001367289583174181784085257937989287398087080692392423904491340342952974639037774304917010662065136969236123316616190162475788302218733515187408121426930376242235525981945263505021134689584589432471354740080375160392529375766803455701228996576854114134403746057814658349404078966888143795672492522959690954785850798363520023882008638447405428191009565594303671681013177100025211519155087611383895480580748713976392621837724302287447396349174646649569920413858347154523422949409784391225046015233694384685632563534797277380313379413709019540023150891842750055648658328685637540721989281107622764192874921945308968071326853225686626585471659001255506164055587804109462874890210851786211336050388158411490936163535964701161512135470803669334267662827768474014201817851351960027922311308637538922477692868375781019042975668296496211418692866980403480998511686776425124199792083364477809378500430318535142083234814282623621062803194994064319220646908619334580874095042278238454598612802866932824405239169170923993160406908859704428543955843154146049616692429703273347887476112337001675731604638875011988553236036779989866048056887534951653335133052073138907914924507304125468688548991934461611240626459594000994550851182983683731982923527732614973933498529481576267622302133150102790596105166156624666484630697587508319685442133397692850089541231528678859210825449222180034452948131562845126841089896040039713676096857488241484797903924713756641500439203149448167361000778655900883122838590016748662615216843998919357956038070584628403086121156529654056410286257041457177950248436389391264872717617019757952484721089664638301322899397678234081124027758952675491832367621418729648169200395646660157883913415259120871729886701065275080412461030914308247136786640413665508948040139548914836262188376333166987958174981764774827727983566341423455012001834828348889911948893949500857183318089587838115705026213580508319184310944061967502097495646989302042219526761184722180936206159770819976372744741288767533775180401453329103096031704668592219932673923726163715813230771422711424858854645453009896779097579284187850070767008442246541898278399307342085115912656620478705982490544941387830078147614438551688552714950078925156809863968732194624698321764549135218152706532136831102820684096353113825117537030663443754953193624616246991602741635870096301923884671876012001374648065229568254134035959782060534324285894836457861493213069076409642229326444044987459313091574119029819529865116018315052189973763565882252192630827194164101484378561029113785373802996528675416170518100875218331552964519804467568297358871597717980089863003458485460762894434779541347953525529446622995066181846439082460744590473078667052256181855731810726737764231645994450727802598527520828986101093983500125159193460549233614623023209720149032446630915500795071766073715465848130472838876772669839908131655387263204914341148259520990403971959571284508358964087844330294020491618165827331784737120538222029002833847261863044279047455050200274942926004478657133542168093473189583868900575484366279232859091275316039198011882626917138123488624976384977427877122570046292611745158419820658430638668871803557072296508074690569162544895999299192842524227538203101762110469804223895386941176194235181641303138421647923289402851225449469313984588962200040024368191146761978090942780074065838026370481175478076650834512201977461779731896117318715451088565749276619332127446208310705588473994760956862454669893775861131427391497158672035769897618382126861295743962232247380827794664053945402812043463552282609889091460838080935638126868605527366055504708050820622024610459621680831326176851319249345196944567967725604826183101529699610802007879789209562417065461727850751407341192498962701524556834644210791389627677260000222001522821270955430760752212331273780525387461962631383567507967137892797593105077874134077416779809535924963279883199639962844420437936000514713346618660295231899903594634641825173029698046479405253009250680743876259311881676025641760851625399357241708129800581369839944423187845898103389027485122048398276942623440968261256323449529343682580685438072018086160588540998032445425335548754746842387894010493689521679276818002163674955385337512348434455841277581201572544858724194184796369913384853462109622577878645188351044688652189549004914776430787583199800154884080497620406971164159481307482817327992912513158363657469512804625089557846425952447195574486260971718326214296824971069848449862193195475069684056266082911024050404035044918435610239160362213368128848994160438256658369425231158683298941521411971358758119556616823513532115453635514333445149991290729581624201436323860641206831697724700734903354578036381458496867701627899755232218347377676310199348589112768586904707511364039352485559744093364169379685825754221504085940837933213245530785659807685894778326348719925669834631253064006218450195960312016060841392713413551884761435841196042799471237444041216764122861613509866247031255220958841832419813531326599032651483081230771851771165673578216957992246060150008558015480009610472850178489924847559291417700004478193879751271416425458285426376698188192342935455625833100118677490404213690310309148841926671068314462770533321809565812589065062490970681903013024326984012772765587307303323050201962253972026240638179241271261237620247227488475250854003528715812994739519696748939909847939405894907080795176271515996091085371733090763391382879300927325743121953401401633745457942926676582245589606346311864735809032433168648827792365842215187474419480514997819166750462533554627522472201355254259310499169452067999854353132129993548516267686050480085002020372006097448561717675234713585167404462491929610523308053229323596548457115011090445752160566662485869123742080854497126075880117775822071550372871406812185623157960114113574199247868865040636023446913729406269970944879816281845974469105976775255567410016891105078140366023557588978912058436043124256390648694063038216268027703058086196020013492465785687441336374226187395325090274869321574403215733453982275128345543686547315248640079536900384136010582383663728387816852884017680112253537424920862892507981481544378172377967488951959204055877828405650904600867732057926414010365872582938112240318330194977453784257746652593098390151163290358649432701938796375477103028335973001122152648170295794261898184918532545547439092159546789574180719756927463894960394234782117765616077650852475060378739444421372649155337469037033074821023892527847423311140952272505364605201875660740069731849171066188208448401129767063420752178286451385053226616285482758670009727055835541968498637438175596288477730705821953708336589557630773849875069612303695886569930959509938992743617247808955623540366768230341826121413786352223335027115106204738125069898691094752478182735117232683332973991519641856555797250643774638676754215297286890120109998629860727664791718450599956339123492545822430011959956875156275953265012696327766753977033905311024211412477055776527456075292802513103104488657905783026620697301224629189989900065755936267870908604875056360341317894893237804673825808374106512879922081251275347520227252066275237686606865872795142271908730449537522883248630275112273931355245799076548514371088589104953175587570471272427250351065177674021019555243377282329001257649461845885140561165480627210104171050411055936198823362712671570180320532448468098416306913074583349080116720750926945375100512341354374035897314337688253055311649245871698873201096269204705323529453240438669706617827775281445645581534736796801217546231072934215325051720578474463476139879079213906522024882791031603349295366920916603305681087297731114757159737663688421333255137005172183545834361410940823375761228732781252929750152002620645028389346684656494349557734493539948726976005510742533299055238930964915826674460568043202657473440029702453244777019272662166232937904691669828690830018487541331085069286780382239665267562187089074448535343002939285747708092213640301592960658558239191268071925095246344444673192569396382896355071927503809917155139914871735713994480831626905907056164211269527941265084219846641089551445558212989153841628196203280713456487387737787034872555810011230369688777776600415375717109337267170260771942161665002993244350588716257845115316743067339142882906744195297497068978514470264394355387852170093132401895340376685755659537562636501067350290204449438631078135286529116205153353652228898823626133346663851534003803245347696871367683552271548435738521791164013611026763573325719672427202597720958543676290610285516903951942872218504259301233193959162477399044005527524344248751736103080401173370163777817038058001802711128856219649979337600790475188453927356119015658451192338629886017162759503470866886108403147235542916002780885497179095143088225066518573229564372590787159425910834814400871222033915546283932691213954256564240925457467277197512178978056938046687932284105645579327026176918073759580501879559835959160033092694971694247243722366934101023339836993348116908270574549991834252378956877236402570426814598894233565679017127681912998957799427291994249206719435143209632311013953405637076092174899574542535015267565265849483746822100513714697093119850260029741580804631987690505074127456618546081479545892274903924125492739017580923378388176186084607752906892281529919746349031205137112668281797207941290558580986012076074799680356183959022702132049864593364334820585501075519190130611493406751020285044415848326004930907850475184786920640369932993910666028421680078689536331007412536716323096823682873289443723497409084052829021667926407221775793855794593799760187613972054673319207379922626080238537253786775007026321850739950660450394444301440221134572962258223131208661380090434564538915275613196292109401734324637772381267170753153034242131581802430958014914200600666002403960512990385174503267499794913616191758915328259120329220987798679683647276632158452325214519379123189847860215096933575669742788114416874298787585363253655979863202807498356201903374473157724008700775183809653640729910390892923955280050026850195487351059791447509136233658754081618559592504918412722876387747438596941516660205175165640991845750773214443491575535382346547144875392505870725205688451556548946237042848548110490265271934180515934033945947506463292181329422328535648741749172087114150761546601522458648274417672860227680554373292855921045877346014133558432370446140284167161489506857238595806902907661063422378120781610835828003223116630083601649789309347107697184585074063692159509578322107062866606948593550600986028967230882736476403168224139112416701053570482679912654189198608523151270477786795701363083272132503497094480983892692516377437655766667016865316354889590913597188990308363789314326749003345888750202114628169667497931949250204775572034968186145899456622297289551416351247417210014910855939052579081619831870113618448023819880842770571791961100454203354591568911943684209497515101430407259536518987574212618372218973913844588935827705859800426464344870357746092965962567647025421153932376015811172440940026056992081587443595320397596942254184760472480481407894384029242656807644872771307493013648720008313534388355266015308012274577294887276558021657245194332820581524253283544219367738410860558362994872297402784591090110336368643719608668964784905860406566867898961973519337795030612984733875948123375997708819514635975767333940705205679466603877679720973417724755943780610854256323801402363590925956120105979683778055249170092170081546118145204909668829232226699459812742737359199198105102013765431712971298343717519214045256058875658385626438026428407677015292075851555914586154794013828013842859190855931530024348229627090923822431822273698804365171490974745268051477887298104044835391648924225071322538772940993034822650638048711649622262698652800869557465560408863056769361644348455054931945622964242621954279413584346173733868232948304116229745187787795478700970325846751113155336373618312376232655122489954671079460859030727046270533685365016027567498914021337618865254344375933622205482393285888360909338249070193483682609469780119319843843972318207678829764144622427003538641104065683664940499002716572118233074164933356976395725118003819773556600335985012575105290406867899156008077346977124524513871158286276134182318143023249162247345524016871018616153457160666349098049841726535496877428698786978158870781905707514787651050192152098770969740962997881849125766745163392116368013396927565605194695683656626136636597385219977510161826060781370086787244364154381660871433946308953583344452074185621313295400407216581945936632701356075245126926113906722265594979086757091131682994255245315598114118942960826957550381129964464970617942209158107836219419558799770688252489890935083217964116087746830242308580106729655669539916754732049037542014710575843803799361320648195105851077270235901828251211474783799319842705037189310634015862031868295354364724625394739367656760535261898479873882398574904276247373636515031158271602974800053142594968960576878562634672504833673447662636892948875572355120920953385642164542235213033821734069326174169762552338319618818113319388974650116216571624182624375137645987124150755529920513886884681436179197558700191848920738936866137603017643107436969025366334330173770408507605095963234785507002462927612158827809166696442208085027834626241088688770081943369520006412808183246668968445431168120626072510472144157178577196991614458075593361524719485782491846693106041495206429342543524202981971853543062395833386979115321688609419352015725312466413215115266950158089517171364534573991388361597534655264286544092011827595293076931759944303134977307629314876479298331686102183953092147652771781062587583473126078308747008641199628521477840505139131742169688174463633654756235543156427212367953507519625894787588025534305735021493971921323233306820568710284963743078767945624454413287344219504979612974800392044715600166567435584875521834101342747203397056086844379613853918849007159353881529582872021492810804065676443084187964375210814915948242037125171529050325805304874951739309333289217863254602690990552693796934490746909395344262104100358806476525144268713594037731838369802823664578558881541453446785224555705515104449111411138941743629000771135226833820895731893060046297599401923983017704696756460178480357220224233330121254462587319666689980506401239487544062948777361741497575873218769284244539297715067678182154380859385298923237715183323110293949792778497535347693300453793507886406182967632728701388722366960536113063611240152522145103665387661018434053084895976976525900328572580673451124666205423241901617922903169474357177962408748742653330756272088753588941683809073821322550689004100114197138669435512303689706063594600954926916882468682280218726393804925170349654529463990486454437829730281511616157757003284926659079904269679945534486259174203373142476100554613969892743581516993168166034096657162015266251850712740141253286628219518423495192129905079495174843025853379262600734008960828579557999844050435855285739306273831560520313006866719480940674209569945079000489027163125881980385758486033215497521625764782179063142323408022167764322978982927022167883248940439782761824950816877678532017207050361495743828797963296116664570861043883604413216426339390133550911753147605734288759290919074307385989624633713182585763917797484687809250203484312529830924445106370382143163487183557726467584346029938086067802950148944879922959620655562097494492681676774232279434441008207003119271403598782374424468879605326088980580629695752701128072416074145780867085471148770910688728794262705115773558214163509082502524172192613191447497515294497302989397147319340579446019700525359878322605558909213018198302624679918158961557307538513788774350238280257053191210420325683048788958814113451537545121274684061333825825117617401233173235811636725702151677032829328339335469150518600285024216647822672130497392554211547083099563788102617489104794791308258680739174005581618343363249111588458144982210509447688794055974451246827063734099989481698432189016090784502546069786670810443636050343976852864709680354242896113670839867321175011558960794568728523342039792838070019042422576105782115787092153105612344267314915090992045298514887592342089447208000301510798473510835118551599734775169487616600172454353508211683923054065237169388142329186680296189029066677089148038520856118903831099453900874995463383526374454331793285145415326373893920177006945902795962574472045889968514034796952928822936889399505325317272371226496588929323236612381142562680039170435695532363844293331563927684675606961632402136842336016271285718005491944223143350873369614113982067717157915289493473009913621863486121654912032738096870078644951139518675214099663993115435040946907189322781346582835813957961867501067155302581243352216200772788035201988257987836481651058868573315739615189796305996589421661558787757092725379538495196077737842577755199846183646998066490752786459773156465517318153149251065074483503325916379728950162275009391535412798470210894662638803965990447122266770644604754569653795885767267228305838131482932471045600127144921571812519348187928936590154356451799509538138696415952390663516929140022952168363485997104472229826216404453058991060561223768678279791526401648644293876559566659875723225149899066899295547239454563086833540820220975309257683124822307267972225959991262693598864548073996059080467285721685788456639109040138207631741457035942471744240625038661969069572303996543868950068096818307597013034652960877140033464609130857785818693830555372890327555565037238517457580474376682757445843299797193801045571964688855867722546134877074953825203071926912410785910816555102883846807051826921078432521837963202909479608581283048299817677465963282932342027161624592533621378064633050576146670770324187003004826345921929108311594808097337448356660572063319908864882284325263065521646357051754679681336465014267488044065521234615822859879520040524623924335904689093031152801880623881857004147933784500868360583588803744389484680608466188482152678091257615387999132626714372561348911530955571133680996108063106491824873414006479529012034691300968408054366368237066356143574056566591072905459699451443784118988788749886494921364145282118573684926599508554113498572773222262585387926470893328057627448746330367398529105238678713593478836883943098537566595520757495826381001263763216742283781127690872456695469159443024100413854279365083021942328020369258993288906795751148137089360767177954071882272447256135795600935637488580259636968169439150940750686020416504636772754153432388872857254977377231656426427578930298957008547550600219560719239473531330779427037707580339070835562666125893472213507589118014229365517594876802481183650169101603444946778057636894951938477972891089942050154052522567468636988423179497295192330980961207281812815655786515903924129475735668303210059131436220023071772708765920057276297067393172010387042365059715336586512038243937672327469901538788359759450532857059045787077375249728294026073343427894881233168356425234630529245602496115778892869602019080458583207752883484277871015546060684299921658030547202001906130228389014279252066917766841978893914303454731044635246848880274876442345915409962978879373331353806510833060688825465671091727215874488470984548107279301237853121045408759381790958313900098364079371444861203707045735339593199392403742613259031258970025311233997928309029688759590938804591017742278904861716281062483239982382404503762799666130316315341336118434370259931935762391740511372249836172740648731105179066121238018064554241442656462315520267834152463803240497976415902673664204662418880526428150173320816926082182285905836662229827633858486799192664844603569510338046399976550430667735280612130974624403267830067986568094666306307453751476995787904689519156253664375182038224943035334422737326781882282242795161175019386301793640902878017607280015028466122721519559501008499636505369586629114742210371632581515773111742175420349537472537316647848222135640638067198403781727471373171113424131428522325835456855682966421953784645917588746879091000466393346631957216226113675525467481177513954148482296575653470985686659362784292068211957053249702135420699255648232661760873089656121803610898002208538774192849200155137431325112852436644214939290265733062166160629421695511866551943022030018631934854041349272686593020097189027670978989203339918212255776090333737172877612574353563283736051886166447227525102393978358958702010093251667662851079093618503321054585033701535555440401444235189290579564432162936628074831547290387924007143176682556087242079302022304646143936770116896178989418958335768811370901074389602000176551980289296312129083632763961351033453031429144204141086298311194690114026785123012862802483918262608785715340467420698702843973614525428258122372465851513086684536176605689571767582002621740716094628475141500599822791397357164761914152519913977466200586518302904503437911084105927153870648192418511450749607264011674871693775062275158119763741205090425669038787893108062551829050471934553900927969261256113362643311239200326708278219306404749005795638917226987916878215749839225371149740565703476489025972751450072683602314644792994958893609376153187919170849158790722557508504539657889301414561440876924049015266530708995742905267211309617810123271813413893375329617980840264534179761708119792916671706316263071984536990613092373774443648183317583973621453166763661283182211308815402416634070959671799430470114266355614574531850795876536810903473483164783102684102320749098980704274492760992141139758348693327616100871359071058031911664644921055067560160053779147723314999480936654553655366580037606609270467242907420669392114515503398412533659727283153942865266962000921847558585551764718004543561175241876520954706858763183503571557312100855876428603426425406706490675389477612199057979158157614879350925995500353942600395975205273846083933327055689221459626351966201622028160986967907466050891998115548189134253401897130229114476225271614901644747858881382924783209979489935531450964033236009621708993340058656960478807152082327768047762267139400532600208108927026653176913904441171368456016155308999677377680498004565716817197874454528456362045384380876702850015760247027217671563705522050743044869754935168979782695557171879368706070043033181380421727684855758552583871182994097651317235734780205875415012454745758853034433933059462239849444768197272767443814100425237836004023213858529584470439741916313955708619196121424903450159466216596043849369372383476514573486312619602267034612725231257124028772495061285080287285144350623586934440684457556524907641928087312412268880287916387416281638198845123312736515140981874147273858747890643099313598910351642243336462526551513030386931139460009496162876890421464162403185581272069614948308361711790001624892523763016645595537888120592392562147466974029841624085415082687302391792999398809726482646848763828713443463837000514135342427339251161898804750552765704247549982890725371084612562584312069693156060577108173616654801344963295609360211952505491364169185520458760210195692448770236661705630140545548424220901732462872061528624298422583973709035773847595111337954656036738920104270130040882652148152520002461944112171798858674884947393074724053159641011868267344887694683388810514886994161251819567999508981475267882783875607999484584892708342594267392583165501432285811359999612376961279052958909484731415767825116107747456093248929394173421317635424029049760111716128838602852016336726984609077970034622369278483393401803124555957954599680810814182606389580562306668268316226382231821491558086764201026635244066617954594220511315947058107187745860853401118275030908110772866516474250714525073853350610991065962024657930424647451201730836350720230708520044373504743817989817818586887479905291417037697694396441256942577704815470577053262062964138628380989929370193943155336830879723367820368929048726782134568861816782195611758195589972911009783113535158815948086685859344714322566816945607156297575586490457528507059524705728805028137135885648322535050792247267798391993116346919988309183376175595970806605545046236563161538245813665767269200365742835185859641344420238247365764500597559414220297371458980213701872553936991031203144233621487488174898855812954211262602740593374214874886316693672402671932746404641789686552012676829119433851118379127500253900109594459065212342084236007136260493898487955475264839125952221937465853349865778927927471735420938044863153543409125078739613910027454618684349219466096230357532893964105347725238449571732059197399214415911220091156431297292994214162688427805694098718755903257548990759313734423037406407429027303368154479606021050120391049262552560105772326711130719982162008615484108695288695202453827304262067720426578369776427619269478185814588593065700849879851137983739129742000384902206475659568626127747724740960039822078882048718970955906321366664353803437933983544078660571648939198639828005101873409818847058930678186903108652895100782243622937421706828309470965533565898272489759304996363665709869467641563863077923403776410121632014573227684789504011290306404897344884846183014837809638814608609493535926948775003047965139495541271736986562503009475917343961861177372615320149886141977594249649032085403581415322205202014851508751897340814519739450976329654251931556859431809273913418382459600050110453355080629328446375011222816918891445191639019057159805880478930774456918069525992321109882180539140290967028262831917604081613159697447354343751510040454421110216410130402459618333576995481180606698840665699061935715458601897549879222211670539928723869524195338940416304431815136934323926534419386938537746951658860351646710397239740522638672950594981855628169837529373813705529426700377428568058091693638993343364383974315247453830616553836737757056717084577041011271713803739559951759416417853360152086240800247412343803048194311961798079248212565754761573387229935141273883690644486769721194856638662109857044531438882371755401923958970428672180827190211602780771413787984352337674857268015497493975340308946827599940248511905096517959634016513131715595320074296165435770000287680025312168556314061475774699725919061765311696798972884688270780697908482271967558409676798509012774400812496209410802252052964088835976578533144844237949808778138956832969014118260278552139252905947735945735100265806795768294110856146546463818200465908081083358545725908477838689975656530876761194985596642351152860746419915958873824568779459595352416628936741107827946328751636332886856250076933114639892492177124191203104038165753452284247859303185202854692534055374707318015968019944867715000322414863420601198148973961359723249648197221590946560982582243618668197753242313020807155834133703032955382283466093436876335992900895839866875215200396212636904839985627897418492507585357806748762367312762336284875043762550302603995533078694236846161283469942684125812573123472650525874088801654295537485397376759739298657293042359527503007682584564586773457572141842540347644122626415876033850442079979934502147477942231452663135297021942977680355530993442582797775411936625451274354547708081334625157887900280442732411955520940341484066144388890024108652503520415527621260578868687237392500772143713535756944508323471879932735227681444970506215936527465102857585418870040136467805262605991601344962049238631040871268340697197617951110430303905030652103696855371183609113151703871887367637485851414397122411138667634197837223893151040766938783814783884968528089205618519034505329830973541181232414072466311782310277170545387915498596466530776335379497618020475906544303732338280641656706840716943275916117886865318308776631209602913315671611655061443267246322623280931823863333276142298329288078198553233804591985167562177707324739104987783468351034935524565509196909155816884362470890883642597247323943642032250190527035100448663172369734633979494001123387646659415694812252284510501703610501453148569993240729879276922317962344731451914710175447046728805605976967047031418231371122337403443115179423999016301653413440277768289128938381034287646208406563219796973754289821793861824356777145649804733722213939335680742571768455685756570216955710295515389494632110890382122730785334272103392012578216027469029376631741199664633467082087034931154634037554622215932218931983840022549850869856461435798823907954257223534218975307602227266712080911897726945814601009952387274716070581510546930650172949005390292250870483344247830884574844085942516513768185604600837653324487309702537566861734690320029549356662769201473355689279143588458313609140745100496089230014660385100457373263117301441433849560184457750444963921215332964921300400660793836898672842544485032163936607834801851855393917028982376263670748123150592002904200597335593488985874358330832599885816819902604478446292858343737666170016371658909308178141655153052169376031901218277150731619143554436809062898105355448318087228902076896484650558389072048350150267837460405613661777412428858493491718560122364121911434223971782796406330337111740491063640860862538720023022469568332391841315032471887575388641044679260928183393197675018912518360183374218166723767300253034645342024434191207532022686305760060678991486879221572275660193183074323108628580203953484696722721834838514990124954571301268811730083245895006414615021051807214193692302421433229152545285550715040680429968192617960118790816277140309858439804983190684712438804768013739657352527796125793044506981393625038170592773708291687023865676677491863720618193139837742496607145048635854823855443987114112432303950497305661889963023315768728975728308430837375348852253330103645216444241062528796778395853250297058409077670351386059956537725654042217811292721459980507273741703886469167272794274469582022191420426260270478130286962133430861972666134482393262117994667355538600722584999126805359870779778992895436255783873493723454263793503667738063261567925742085604632796886190712018985366017529775632675804364752713846650657002749892396801000394881107420903640070658894056450724729554866193835761022465778927668725606968627395140474501759537011598775550191818931360186733055953620843852873142373212240887374689701522906353581341441528349696009928526542665596135097056094186733857826234239498933859192457405427700194188809935080454466634079443396327430597883094417794213829736014455789273018548307210707849413128314396625957442736906632648813685570839006984997871705974025482791533912508847836453238767617069187134001439516995557992491121659558369241114670927712016856034222691641560094154216754043953664575740940924365340253256292396589468514221542745556780087517527268814918299737959933304899464506899237773694822179911984169779455735587190014904700380690406583596736031784442852353047170464528679588631204026963057965221067743062059236071836692895207417494578700675132404723810528684855774581461843611422065108764950772634707081194296905051549409066309554983522002376280127878479609535369078256443752564179396418298736561440798709518683858936071926409522334977865648693655503583711660239548908117580876025979429924104314735263293609921746818882132480016966183706682723653809487502738732878682091015908607651889081319053537328612959603038650337967784913024436925278633588882523778900859095964374407225041388006352285834675841463093500430730393529015023181879099545557195328517059463607177208224845928763146934700917912504935177572403136369268364590864619711468904440518147060734637617707536887205834918813702288470758542413031423568290425138631616884751569807339004856981587049415958407904673557917383257130714812818185089712150952424452654149426392604456642790796193452226717493864121090748682232064760079221569493785891173214468289228498358816121576251560886523388727683625072412473350919551442130956691750404681055421184078690857448780430644540409196481023899219872426502923493100361950593739823924432656391527179843536198574104052507763864489749599552860066747439906284371257851536284210123557106117036687330525793808843127228111304004163754586638705252040360466717103927379024270674377803257520105343664176485202740955825265209491942927862357635636315653728931110539828912200967301646417681429362772230676682222698104429310814738655003437908444154068001124112603749204410540418276923482000891258669154378203721983264607520018692077568649847068750757593351275991160595628397563060319114569439027472634116071386884099206880070826408726178198692325809478163213432783142189878702689769608365764101824709215936000331834644833681224366625172601624321163665447948866291119981969962231353947218235737397659470255009386072925262829932684950490352538456232086251614599504152804080493801394415590281483285778794793742785704739156813348494481489299106520967046950056691967994450814250963330620598089421657466609439914172253722522060877657698537528213822010780915320634479213068671721587002904636934700983792296378839234038279986168942274651051399577732607185449665300854754838176328515999553091869788870762587259870123554234851194855206658795958808641201234120784974011708978313700456608894435536635215993847339353636139004907067449127404269113810569429647136084383081774728913940343885427458532121181239719034259834877649142076052513460134410420118691430459654601932379242071714282354849959484517795834908640300080361590243507878929434743518920364182443807683212752905927393260409892829160026370989580231339710301056581880252946391285712403595535832000387366009400301022728413032278513445344291553059003340906454188622891345125938929882769144048595897963285748713854805261647960304001948056435160095970423363879437007117622007817250609764927612675083360740511953083548903573479378136834100766593005229172758588894583314341214943545879408303891602819188509154895644897858213368151537726260335783606417911826862710109448682240613761146029800336667383382079879711072468667030056384341908217125905154262625783612289426448567640874143601369159703804018813505984173441667651696095329514766443116243798831296415001447885021777837151887232990214658940629419166860178124326188335815085000657362563751255300739480284952318031074501227410978029083618661220050820717887590600411918512815079701571514315128276915140698684124501321096000116546813832394563529910960079052165230955331345776442484589924576016862512380391470670569152679437370842481613781347660750434083110850203787525528198620809255632506076374312969250592773171071697855332037840837343235408635575626683572035601908478955579676832328218097455379166683684689865233818801521230874067669387937541458406128138734809189919818342368632768600601294850724774543301581196298846485372668496254352433141110852015610356007846711246506621781541837923336124287926392499484973869178069960915652375098527824905604854778862369696941060453063458273099449474154305998018187767217075929615043892365549165799373473916108013182216886263545464526388916905759111031730913337700209434339479710081989782972925309947369701685607134000117173466041401177900978681376998785694632352439331553949599821795764017902467900466225612027419067677449230152310752366846132511382511759465981045238064505236831909725069952103091540017649894752240074631751127288511846990765228652894324591833064839245974755248480806114998300034479548776989986519027979732638609193693614738299664177847956408518419746291156835491600310448331312287347660567490282506788194199286445212803047762937690425461452742096281055371605538120080126430517496038742146633159884189733880001372080249022903359218938653304593005239742478303392304472996143107082187915561912419772044416792420735989611027014733964179964513452162888381424823129312674210661236788289133039189850334471928541247961393650374980690899874485462846586808312016062943100333056688784702712892287665967131411728235163429428880108483020736344574288477029487747909543284701024144872738768177163631222881236827021727403989991070280247358354010326346946819249586110099943542268200043317435489152340368138917758394331361942063288328929269206371960902741770956596495591906993673360494132878626963504900595794858622299118947026172641704901663176744699295505148800164617179362938146891802615788572763521813658375862981432241591226370991530564885783916296440646242334941599514586462420865448065637027567184252466395484692174770913320239923828541909533218451925702281321312610734095597848120573703900746273911276366714671718862156296568514663149612103191571921356771319897978571018444966417107416252006878938687336469610713900514731047100597241282817167714308114178192619452542526320013432861491495243986699347973757447963086350113717050820504978805818573826003934038238719653207324746299869534559470560345814630762519078574721691726348146189413507777238637916517851360740230983564478485209308132667079039011733930075010351780099476763990629554868750822701212433224809462832124249062393609328503990385683027801131615350835518630561040248884140412504170122314357481266794144448487374907798555486480614319616203683932857344755429489194816751625221635003880353173465048894917847078094725396595637842242301357263023651229462373903775205953060566304139843235988528243454990297394448690584046892226978534774732518566919998618513963519854568683202454235489362474344296898327806904487569482346667947523103968234952044554367474651801849472928712721551220267734749000351067922309921183916710324982100843881262745604476922147781295725394976260234216668318546851710980580341200254714689214232014895522050857875916866927365545590077055891371476038207479744490431054997026318134787025750332501698015832674760316789657685244718584526133545857991731121270070029517155561890160027116470737959196029832707231227122166825423392967001259145879857301787179262494693253576365552819650406995007910443010364546781661700938604764256029709346384387968439661784519463421688094505937248385674019242612107823778314125386184372152806930295575721594469802562679043800656541415618902884980383632137193251586203869818225919454204322306445683170690019282020525612458668433072114651652576611046444177851907667436568715911352185461954437673312683388768067189407805623153392063694352441819219353723086932879923682319654318555994371111161446382262279410032064311086258159032650944162013680156425328788280189214945211490763368898014738747501654840122933570421057614446000342056228296840702211471116300317814935031128620692203970269165942432405492287805868562347367254643989956161659321301397951990811337271501751088060480168371273299183212805914266063582506040376533912383525208089711638219907552769446153411444820644759134477379941894551851796829831262065842549393076215518377142057991263123347311746689584198726803340124638316554537246591688676063554375635267233701415313348162640140177187237467697529308664864692357057132593685825998369254866272133755590202658179202263832474549751904995703048308296787416044314842040705585453761570897127888030676375699907775454247555260069172973172261366468771616158085935829775092233215951973741663904659425091140435511989609628608915096003162124138825078245877589861999489827504903161825975318872081560959030097924999902911892122232869450393554192579851431304702478486657867582940222109492630114978941514456611891270602126345322969788496373576312341196114609459500485551976767982993118110094816809938031624235479599406965320940451106163771115322280739465122149124868785913154090269607380484671729945354212272517298412423843446415775770222033896776578878402141146163273142249474807217397905387707891664739331144326230584130240406088857908932797311083769263002344931844761311310951791786582910867060299519497695845131170699067289346583976057656845049346111409397929462559164719692397097541173374590329340627185079187064786222534914431731485420843939247916509961648553662792662368775168192000601221643636620080236139259993735593111764827856845512124998035865098261156033263562306392591768861485060899697009446128397648447709825456671207115990139443314797015987068488115584073117199653717594066485302606511184731301542769498356931159915352545418771795265343588190146057439289777756212571635799715878634299731093169054077066016414911539822252359827676841351591152458076799319853450289925205169252688872431527477390328611981683790864871251719792361342863671133670107852546515077556999857509347352966839167267465414841037890918933979778113289308955032429113662828236024037979654531586879007683420886111047893221748600803987290998948181440274113533511218310532821703066171695472168210967949905558328646907203122730140053553534364903410556417945437197395491777806251662791967185982705638346641818691810534681415221374797922696309370406514266354565866287530993938196729428965756602684352936901592751942924779094173036700039530363345620763516890355643791632873724599787328328942950100384884735330857558131644726525477006473872035743290038236088585537637232063608383816982846912008886074330239929826585755544423036924565874345351040197624687104894816914553072375663735605518608532276266716419153193319905043794695510840334846984593465450072961452790346460300396266586842286547891347004136245288022922673082303011700266152262590743909138865495615832281353886729011481546899839164402566204521432588930277496075919897444754367169022898512573209105581125250581563365133538198404658691818421913237704952264155443881773522496608462717359162544499878594441182994339202194962546274416216146281466628047307271719098611933037058484435994978010296432777977242136818114989748430450153769393045692584660482030739224634981884500658113231527977493548859505705043452963176942634667157242108921562518734466897181039901226250121454358594720592034333623408709618402451585602361708358794604439613053330497545189843858377021405016630946879563988897516034077582132253733085014285490939712523116646122714381253807124719393025120400205866086180574377680751648580459735630742281087372091520880519542821956378243627382786650762233128750754279609369780263021520506692319283446319662892150874241720444913503504060361899418656954472692647908085149742017351414264083968004073965283908877486517757471777255530079720302823284625944942065369557707052073610663217297480675380157417607213688345193936785437255852497438080395853735999668049634807035466549195823405338258294654525615201178732787978833591652627704054912700628681983542482844338613808106016831541331351785206090871000139974779953902208156475421133070754815118756947160854335323866033859981825225521287408571015492561746029699700351446500704392480706520982219772988124527043346207289472855344000720545817826401866087290890283654173110876862671110356706711770482649213080372297201745991938931939598735144666282044507433205712453561567991137722929291416722631412122351555575064742655233142499520275970817790281155181087507425202935113487657762343876455788364701364567911428391598516901194077779479740828778362502274167925303983064680816380397436256058413460723809426831906858517031954415040751533476688949793562390095046260479090303818343320530794465627308593458927079651472451858317890409767244825137622254742002648541950756767535866584956653214664781516204250055803779912517979890936989124742483756815050910852574353416955214305307077376048778812009918828841128368881817920474052282796728299644861152891146925128940902398276223599765989533220542370612420614364262886629153338408309724468947881115003727176360918938480679974310804433028550147882590345044604642740571081049957663626429789329364549669998515835311925196748594349938718561741621288440453149066556945344992045290591119809756750196964105959678429616491398527872952691451369704372805740365207860329454173481481581167621145441472562520407621529199987557515934821436935622552091492575722002106118118280354904106719920521226164879840610623881095080642092809103853273099878723754026896055879485893484082950223680233002864711317001300127589914406889620823639630362458666810883362801853864133887595118962632005962052629359219445646820097205586822323255338665635918929336301434669280021761128541799557107860512580108493402681259716963257673105437528977291649565376121498465439000094621870768585350338608368452595421636992055445664064191813336271253153300728468003379382287887645763284348509650213336475178439589581114767900794543502736773183176681517465094398223570592394490042520119706766555411049283451801721107127246649644636204694301598958480079432889984454693163346384162770289954116247122699792631950822358078240953568364987669168465202010514023371230481992385069377153582137530955694389966339271720014965779517675679354726814877063739107349877442694853556050704001976746683090867452557374803387557800219904865237931116405752962442113119201632370207038557918860101226105660994615311379756044548480992919734424518395024392608536962935290352567702834913765643642398450392391667888824105333019613428204169864535581267784568065520891095165287046680802618126035684502142915812496803637557287746271947178331628365002000390216508927951707724229360026512752196922758031828788691224654147028522348274782704267309500404701490728121909555573262986978055331830182015273881422455227640899173009271476112350814120488521482613591785029058467400894420212473413384089277486236320991762202339371608613318480438066897067766835553433922198602978562934187372268892779463393780874155186106027611400576701452550415643453376558005541003262302092737872302633931025734983964318336204502684615774177970600690578049872296611149617169185453392623863327392197868576896353451091550279230338439736842638643719696847780172300987207506856596226639535678898765149684553412938771632931957682378886146341584928995773953143060596973085061117486339848219041753387245468118338025409285564717789248597228295144036506788506127650472352974334944200629688875633402867889062495713859603805147579614362932863305459527279426109856569309238454127088271489607109409608358891228731168204869146481602194088674925051918813216958800514446796836170315874330263475404504734795464113273584338418319623631693674185229261680017897882326247667353410251452286701862837980153437691345373993008028631784660730341356502649624720150735064220997617251176769028306865882779957232718140225857641981276244361129014617732951142144740546296392334288106486247149338825323970562178349583811964278277131243500148016804682165643259637972498739138088273218025205346946552255180682292947535655339383454493497365114577524555277578756532131421537869393533736448874577833427550828744276140644021766136949496884220161409150142389147692508332349530253013553769965906630558842319201808870702365256006108448520000787908444200212667479068424411253261545393381278694530786346870040674709238723137061716935984540183095100156393987509339518726524699753949800801075545956497552550759297115913330689554923861403099291944039012991694581707056189399756865965551218179513374341561466409058489591130472349158165860132393042879582431230269386011913032557771753332535734971485549711988724020515254339072577871514093229663684902372255342529999727881654312443818593657256927207472619267703887386753248647698270856740679010426406653501332629148033895803466362165356668023637092857629258526103040005418511968647627451549048482534667527328052651972412438726097722160854619736828862711442806964541092423597690968812302170293946295837982693861682782816215263676930619490888964932656781671175095606770840574521286847296231782119696996869566772534251901765896279969559337128832241138715772868263220291906204121772214658224733504543064440074689914090140715419627050898981725008376682662905500236759329019445898704856825346713594679744864670801862608828201254526500884033821707794820344820560946840963357635933365241777407264260594172934323259196394909196446070774808241799335787417220035844754465782304231231776492297113154566223508180337581071675265816982093875857895754763668060530518516157762439831038923024361096195930813831474200996374433748677714915983798134865703551631536453611117703030358984211709187270299365123321950505189245253269020701652949032170546343247131425290070476296769896841052813583010466931840897682029847919517455512948922771457035975322775243645591759999801424559974256936893964437010727229458155962914144283306560608904879885825723107830889465148852510913414222856107418466430007938197605308908040460100895926731035388887697861706010378964166142440388420869302009268588928380966819403065076361238771729893619564110585811911513011058450764375576272841461705308933553441538096998356871822578875362440315987816968882530910999525941133632050769862593455115938866387110251396479143199515973642460386682205726754037689827165967053202252154458190965583702726048835114592963542901534294522193930606317571579304654480681792783965638477249636122854575474430901308776574674430689208206487008739987601306612238636495639878923668430113788738294228764907361244463756244658893595944146433365613466368817214822161691601004088359370019473099759177532611264735309991517816535548035590850736800194740566429640315498275312204209438801834583423360254776364998752577721380680547479301190326612067030036683378151529336957159498685549531356328387241098155866677926534379934734536436080872649900491028743605725551099506077578551646327555643598359403331773100442721962609147411655712479858129744401071073738191902917488857635864019598277299942441794323602392705706142111296446092111470312346681229772462795810059396208686503927276521270385330817920821101422669663106799095393659398839887276768154981463122528787811997395447755587679575643905959504848869932794279117733176637988584634480516148897424707056838122530196671466265796311513044326965357069870803221529056166987597373360589812055724886421330572639144158559320372586532509294687071517341517988059999264834051194032066683267325799639791460376024134379023274914020596930130409587234764725988710766916563291898288515696940629361950243729067894964872576424346385522801351303366193071315763333393193121908137036629918736938593556404515582942097093007440962382120596108115968169596953461946842163222463270480801647207169624011355603009737908952728118378907476479349902639877467315067572973795984186954589591549436091628237580829342995996748365302672013758440082170978427649652045749462460549463766795245460141994743800749828347706516083269511483041840483691864039275929784398998033063443832060137447265777105515403376429735552059845089340682181378396771864505575607991620113128816081881618319968127917944552940304475927102861960311502351976398721385527510681129209254542622779758414597993411514494986040430975115517942361070250283433196672859327438179054282600734231824122971056591473470613677994402308482534740985856921654575473718639681947307351939859582449764200431166924312304372999384583731545843530033061942842361170877331432144530703948835521242735008198583422807951929031626234726478918678608185571731772417427214360381067480466233138230654933013639270418992812470030831102264144089836940567687979511249975696513047462256040822471534134546138722073447595484101839637053119306128987949640490689238664278327628657843736305423823830809963586626345707723805061219006822463726104320833394776606823121450705945154199075350214944010874659589864563987358249828450051378810897196877978363967122413642076081776080128600048129419758019438609377691185038120304271829852649418245256262739816517495109982265601479498485179406914624992368400118060545531676892354491243552642334427917957370590649460794299426524306508915766858083957545040403040184543974692040871837060016503189280663631630461050011814168693147861952661934327773693929197586047987354710073464047969194714714036201524853371340935605054890629209360307113802866981266407031338466221150934212425197596378734773471200555281748658955382145565301239948966719260330581798696628133482474770291382494886737470134590753553791272289609563897381234657800523939861185017829502287522595596468137242925161645185052423349436515617347883916037312287836572009840145183233372143245765650120207927541645822959372322979311099538557570575303203102359778257222141009097749093849773005258472626256990799919729966806167744308732989058777477250673116231973985933900218178939157140414194139754706538532496583391024894528881484477637244115990336412591165865184291909748624566650009188902185156242287436203221597497279920080048658514877608396829779152978617369825229418654514814942749835826134985148202318661322216251297275172623553606393988587912154435419393249245169060670712625959024546870417292619559284697548257076299297074107424816172124099949416898640707458898684273779656381135652441053655136150302504354361795041477286239566251148085560760616695138362188649249115157491153621199297216784164048870329673180737395767780275663992026689685023352642215214465977971662520889214030864496273233925667896761988775795718983164974061053374451263537195960808323969716046627754043557689645094361353948575552713178972502057587735913689287398158838740287350101355492006107195406869282597923274627773542319623895287803906555594725822077921908352756371714728373301602334380901254037377041881624370436757229233371485956386253358833236321658594116767739161251198063645019870000577714029856215078138805900871714574961118162820480892670385564731599867113380846257020176192769501192327333884894946199535822791407929271497734945004077271420885332329363024789776463286736719233606315097773448084171761430019314796613848404308932245991706881199448059781160409991397170919066685411137693394649961528996736689669993489861538580599260925541111205763669141025516029384701555235810896251358833028036828433732721476754959925930184187964683749967375856302197129548331860669313209186817879921622347207598288547466929248209537843958368230972432759407886892842778608180296363430781845701328841955102929026841721235351769362014410497530489622645493330128554224869640212240750045208377119716745656911830940189499285929714020107970367081704671489907218823794907125589042199202982757811921205366622464471990798175434455697196563267474299000454804689204242006620166796088358745155419928564734067198470615730249766684694204409931153547427819900158970406497437953474315788124404604642824409397131121926773161932480258807948626868365069302949893725633877598059637428351439976107955368870891393755536023749113991814692937722872605619221254371347753311456281227428265270016007170156712835482972878844529208977363854908514299269288257537992375018824964271778852908768889711562530193700836766316747614575770215548205878273423258345275367084466668803939855281322593583777991575043428729826473668442965755955877883009627413455376348824286319766439365292100651464355956456567799284624619288130783476123021380176668724616697892223954504077312778646932492699094766356452363638668215802043702251986490750366838446523274014730857953375411284130356654511825025119263627349176699467050390492661783929873835007565355390059338758133197418327386851725003481653608135564829366426933887328411083659842111561449879706179818603902684682097901580440040698332352396398077080558805728228206597374969077656954362658875748094388507381382728005194901010044246616600147285972659145016519801708254799311787978932892656831734113113297772999552099269091318472190204961996395817891450326533508590988170257982555106793766907391443258301953653066520300148249068037905053247462902698252508186730382701813617958305927107964703448412228202188788292516350269609867929347133331634294896947218920500054997074535338285929559158119145976274618051500834895695849245421684760995880603900997340543649742414318108505114748004228994921091571920008260581288268336020010325659132711592060164460147113086319395534566982430100914843453529157290204371042731222113530268652034752749509671404454173829032501964394384885717491098792043169986419644372093640431533222083678279535692937891506832615859766493977851304203638349143335911390317334673181809246830619413698818524186235672550240108229479706280686693807316779676976111840017265792643033952035397528173915899119370599360533031855406872896935434903565757788496207566593023390771981168287720101222628613346838715199915918098182231303733201642355856162776999798549363674455847441640562425580158816353028752733553720052626052775658183686124505939604771210757196809489708926537380545321346242231156818096293312822128373736317496259509763793357754707547320505194492131636525645816403062919747869430748689937243599525102726215025791627872959724914484509219695822208384960285205181072344283876472012057778504367121770200158868835111125847051786067869817991317068163985926655469678051285361095533136341686338270642757880321250950380930999983411894512781607976712884289194135080339016765716888683669611177435998474381887998510573435600285644278607633652832276787897842088894671826531114845315588693338721234913835342600417346276714937659796689846756034327106680081568642392345564571970295089553756131661800082830722578164108619468088405354336076394622883158309891311010268161927147964714075438602441130562403417359358873861871838037892565770950731534424186592507538844287532136388547018044053983349937765566267489327809940671991146061641558792882354128033240896214982473285601962642804658204018331928341739338502407891458651187455739358252774494003231107102350195122297711683418496453887273333157322818713480797087315942421805080236371503611784989141155414783817211028827521691654856266768167920123709841095142430921591968427518732130862943120160552672905244956350528472751322231575788353873140582083651625217724435091146277194972501767967186439831436884467804164932409287319335192169509134435802283963126474456978127004816426453949150126947158615732347902386127022826823908240352730421298631225801767085248810102748119168218404006575863138303618718295138059342378987994875482676541411646027837691835381300634229141048944377449422814973565410684615256489763890962023125038768966773862400560508757006711215330863354861375117204706092881157126179355297097379625320280973105724124466654652597993808752159038615563426051380759238687260632063140219708655780092773745525791755387747684122708423268672254590465637933808189844829293510447938359242962135022619261754517138557508824724536469833212449270196466414886464795824180480627823255657076339153942718514638036453162955205618215576987374906886101388913342425034999504982380093288192129345146944882600137300454965833231782547985194217864790209144575031744259183666120715632524744122262683466422561203232408651094044580477288666851239538962980202601041489867249083768380755816050648809531160916265497524190095107848124267227869626840188751711703866446027978610583371988593549319112607060305417324209671141240867890808594095805204222963208356428585154063505961401102623216535962565490289014183147456357133321955044938724425044959128822613439500687905813354992641778321244342328888958028085230984707970922511590729924689720926901017731138917240224680665265017610311806207247428834191442616699246300211880536446951409796111253020239693493520829730715779856348211588281224251732877090496022726186399168304631685525416910798495625139812482527144862492712100215645196256760293829599860850253643281393087235000654177090245143361829791965820614458033205097531984223348252469880401293645495175269390685046593017137334131515572027909426995718144095023560892102093310318901878915877120906008388980750535559168694722079495404601584331966340601070803123579109867119956367012455856536654310926061343236889461123357263985888349219302965270507113575639533886270493878116211159583407619355060405874822621076250774035425065683275151101282254927820599607348006386770126812443685290804682828481773926944673783604015515805203415626795264045091685204451757048054289177308821802905187435430349219724467837186644375804968786153802883193151376270499354178939285720949473433134236922107819068720873129708508170933927335270081505635369965111304016439382667704894541098507883806552018706969299810850935617704779654235434667720014381663169195376801302559149093504476422855095312157767651335366541000873738594649038191497874218167274498385909904802376413489285554234622491631305366296508545325963636665617150033391341568405954252190470492648353949011834349727947842029092432697036242719261958176633603338395011490795458711979639227833296701937961776416913489696467983002931169980824450639021932350829991028400344430906876406782665908894908537089835476366487144260582183842880783757623203148894458898841761039276532162556646193121293112144436623089899663414534454026901349902281589624911858530682753013596965045932082982999982537469002296627861674856375172142780777402527949299296945356933247786159739115529100356012700915927774754614110729156928879160211033491802016158772248445205490326079463848309342081648651983460379147433340670093656709220962686044728294479603070033850752666004677442252007342063869704647385547399341094854725659160266186569159509279687503291030245511438238012375087237448895390072266819984761932973565190356956304730339589990314003601948926878693114598073060597183071967191934907305587948807243561148917424598792594251381786285456624919826449891580301877447346764576142687427256759562431265046218279303182303222637715591728482851110011805546874467646582943512758308065146288356352951447372673121582867180969287375726394982911498625778493433091729258963453083168695244115386004181170561077271001429489168506768338239408764680317786009046792869509100493963043472353809784826958164196953192551672247806096515041372781778715200011533581376357293772075412340759501158588129929141978324207798304453648492050637911681165075912183480166933071231974184715071379092863859619057838712583340098204832709429612017816446684686372002529209643405555746948781572304769207433055645871237415730038783674122417601859019813617021126996174270581503521079664463889562042752485324172017194586395075820397519454371667714936120282132702861290278833887888275570228787333242616896878719348391253900438119822591968382387540315748748919623503721290033150982665450297353984580539527932933281355487437597587814361613326132621478423070041908641413222492555620017667008727319030886479076387456054971085506455592427905065531497871218409449380760815215377742314027168927860407917135589402070955493995306490001519556966868121088756750501171873071432373244438841572324831666019636534035942923945175433856901555690856033996941712432881368658647670206452810947383354337263721861777984706432587827569359032221475439286514738594725109013351936580168185278393868025321070402057703804401927414299708635440468911992750996948325393178160015030411807366927933649234697980231754732998328721766326246906890097925043157226094915815499388947513669659139487346286775415793838502098489520319868377242575258683381177049611142614017645507255704318874131497370418406631777592544606386446629299663646619133695308348041241479911425344831892358946027441525477620611948793196459478007533334377063615550409550983109856239839878074783729360509010891030209979088634937342104626526784823546446809967041124458849383810868003552339577279292465323509106334415332703600249070542887600899723857385468477329281661505414253213719538652862886043642320096845152085859206125827042158611686503576718436644041428692544136070266237771353557481222503792451143993847968278249641256834646775006786234032402413909288453017775608133416483206022109676199464070812203967429298126416889904792958194902150111972432766016760821696362495882158353305400811728851074628641835010218130660185359047998439664368092435129372990663069335136094412536839299917195136738676306349212246575781634634279308823508441008034877278342216740500716748241641529472768246571000555893489223683743509096821936216842613318653458610942737543732592373891194544434395792075533841479750591934817907164216851037233567723275172554087674247002956977545896616515236225239237227963833295780088251341568058032306650107872950608341587182719234776499079636461865834030440069801829130990573824829739901910822093368071663290909343903771380926946692820335036314158909685965024134168029679196751330566997738699150762861513233622522857325323930267120324795792155001347585664567034115867863039089836523207053225308037302138267441981660985358003271849065373944570487766231305437274255473308581031821399647934498435733449387876432887931163570768189871776838045997069522642506371817192472107141042294333060513791139964282887272290912636234446392662134846203184128284301353951177354585638818127420017900849022287170137598953429017947916833592224390853991984720890871341263699742710021091557104374715453866324071705275655069836645241062801390289455549152406896803861211563272439251605806027091016641191419808483362076209988291748889877298934299838174799232920535117553911871154195831539905817859456120645185268162922507335119005775543513802122153315058974283987917753883911658321675639238457582965291836719882249073540780894016366484225295331589267045432080320207153609204487266478971440433073473861421678717959529433518716806484366819990064443541523221988810102689853041397146382758212369130304750125918835261629840011218412886808278231131261594997589802371833514816541408590022584929778969687602892735246104362568883559480468155509901540962217178909659750858638666336086609931998408846177792754980807060740457432460677956069302776801063143682686991344935615915031474450429971321869675128950083504523044315966747993741790806183177712495537021287844838175552352011550799287125020361669693957581482572216166847120374095755525124917681460803438231280304262498530435580637770482710222395778574175239239363935465950891163413190394882296422677769510769442724224763992815762421708124721782134701171490935243207129687086930732502264697597122606682193734883037233369067557723364805730282258590910761354008055425152467934423691292092886925077669185945054749778895053148693367348647855001971099656331919707199094840996687812046014725571151607490209835701480307390527731791233168912778256792028193437191346380677259757465896953151934116267000463188625590391643905125009841232482744807754945753993942731657994588406391892520679505580448503632642874023215433434891245050822446357643471438644511119000558257833775839453865757923008594068853901419358564835778436154385658638121337332558378223321722387954504931540925284077841770302888676336599048144367002018571436823860444995242708154599928496923762999402722837980654398741350267115256278915735750418232386082322496088222862558362982241608213791698515278489945106620392535154496723770878318539759037797076396860067015705643517147935991730072451922802033147938271835454573829416959778495820593332309047175648914731012622458825492496879454071120736904678543975579922833830591626508802443781165913853006375930277932268663719749412926311248397856194596898140146618690150172671617325565136568066031201180571436532868527507798045263366265646410063010872355651550800470687606793339308849697805016959751239673956604790142673620260044186812206273644460865153446215496826776549565113718056236203520358005927844950330285914144125396946309704522317861811241484100145656413349321643816376903733624208998144593854244363200255530536166083717921568648648204732307062903122027382573675453597073845397041222394389113721445732221895992968994923991963130065571394564758236424901012690417110942483184149033972838337287905552844133450041157445677062524339489168766821642893723148666954820919847891743966977530682803781367682139867524963291430693823905744184094093794902617861621486836402153192514991268999941271844124934658829881199451204168649294848676098311384360264245102625674998576790763703055161058620820826714250652071743060000278047601978211060102184987917552732457098208686698680516190818344294992489618156347654988291522358849362113377419002813161108175517862596917371247291749497112076597239393044860385562679126630951281228614525676737851105103090740750330761053468762150459387565804014689223251381994336889750129150534100944195997268487445881096699095737241379681564403308406812529937706597050415033966273563478767007968692054054392588685071279255768005488753680066283995980188259862390064155071166756728631043261185489164789537824395910695949962352775550781985454771487132361987820032164453645334498223464050042889295794051877442386030455502207656662144381508249026489370201658635106951055358831706959750384081160720977182273587733095164457337274716286038813817410976478717336260419198942339858052459802169613167258203558340437586530278173209421472932949174670921800639395891599780746691595215914752290752189993200058834702906846961489919185158813094131656675644482469967036747727994407350504253734219478771819850032886459845352764025580726836598797309203448699769381093804783432279842615848700521007684602417850191277356937655506868268765316052036047611999671072238908101009941841344678893786041863234316303032397148345332957832275695803810095857388389179996015373544199661022417280487537400241625459932851741592833043900241526058332065926375794754149315159625977389162750182030219208547680392272476170663716845649304392140834540828526824207896677870214865202095010760118580166065658865171248661528202636742125721365991938982089971408488747675580677821201116856047575855866399136050317562202606852814875939708472606948686475972437377310614403230119294805876412679274060139624365987980718331437842302398490829654633968777498148312160564034207407792073148463007575564374348433613697216703625436583022710162034978939313695720446596634326700308985161848369268185139791827279539344555473297481595899962044246193109752285246527709894174129737909222463417259326696247830358712325567827198177952857938682255107769566431854797025863274129042073916851586247068834402045268645960789230181336676310303727647612314990485539941144420857428710266305772625352235029323394093009649609520645574760495088176152204469192122535563609410434515147183334592133709188189002625592839273879600153846107305071042828428937333665720798674884051997923803436326157700338030148750258954696722384978274303799879604937611377568627780268912996493586300792299211579854913182740474575731581426615435688154692881586248161396857253720971965580469035247314431856003779660792905118789252911420611097303613599860044486964767259156299869742282986659594142280674186257449592624215375961512956312779578123038418068654938906817681759440790885024979507532051461268715235572719605544321958288927719521769866988116886957931111059138733310315472843372392333040590548385848318958075864093958609658238470529063585853306704233458603799379740219518766974099513002028313933218514974093639008740528413224021701434399598878777554497566285358290674725793990127385363347007518742315944021393001826529833412203655633085478571421327817719388770345428518347378091226380017129070389412951975083910864593139496562206304327894938216176838889450161135130031644317217352737672059469778860963784810257218040703613409573413982168245562882453831711432715514360198414938192008486088925308331632766527395202252732318517103654180322666596066995429611850473942224567869770047502867104235025597080990463430097524675792239506588420396004038447747497552597858149140310250459937696304964766878007958498788284054657030296624589565595145215901059019420634154217757734861261055106640461014905534487852811897298274217399003645236033312845025086962010598053960193551322068761660310524448244352408038025269663229638794440192039846092893151015076920840595295151596078020461172525281627649854624692358055458573754763311093454457906518092334852609169926175550902758395405842711908095244795995986302440156638574672912031572748400121510866542251363049131109881345244820616958730201409068665781324842822795422583938193263830537282161760006504913104602600784123621811639732776661422361913987266512474028822084217528549804902694216791310200491013399587193981754556061830473910614314220559962867980475030117647646160028051032538287064092968660992511259436282588900880247806819875871099781163803641959476423452567805412247615886641249685310211571955715317841741045303182366248763738834977399387008319618749009810120984601755165977909843898512397710822047862435225799368263582414935920851257124032625976519147193508451254005887924633912867294019596904042227427877098553251819033001288462604373105129577588435426811767214468106465408797596841076792329330643781779338620017113361782320092483900095373772515061084955390473209946942103327733975576102709226032583360042204680356890292459518545016133370649531310539401886503184775874665704024888038133460091826568200005397020138867045551782103182204743887712734333303909237270341151022017152976830771062705939653302994024905664819705053213135027462804452153265426747244061828564431972573654565322807371237647748786388924451357456158011040317451558603983936076513751299653235334823732291770306751193264016745414937788791712771653592845770289986236746271545117406573220581042397696013088865280227235982880305652572890512727458019843781165125479899838888793538205399684217800869857200365541357871209056334733035871022264729775222596265621655802215810856535003848076430795251248171776619638027905864152970026445023713270802743701119429081304159785263136167332096434745694610872308059160239548051216051560034489191647441917523232597385585061100260433280487465651043202496244781301448116467112072191181459677239598064258027213457741055848840138681578312294258691689261078174821234897830203850662493324709937613583771619108268845277256913434768936508663873701931414416829191168893145072326128702494113461826307967883739845569623570325336163857308767325692469815317612409362846753450479161785177832826528533912056826208265871444997515513783752976110379555871072223113321348079041666189514664038209769799581765409076677770280666235180849438972871472045703244281329072905132368646163653090630006417883435718600721276570444413163921629584049504249310078191376269031817668332953802713175308368565648241015228777151571659563463096085751183249999336383107097777711513846996504206184172205850841466987139440334124471646002889506980285098098976324044615510423301968245031202618570096068674328762175727340333718532519471319727285776507873380899239328244415074680989767866494127730485460152589088337466788595924025514093928718088838900514834336822941077965017125835331130171583306704361103436498922484335496007894189929829644534357771581789271961576792818855678882547314367815221979090272554811367401553203610032691416501197923420859864181295574007666599954015479020591624856822512706946582695878402315555315020782151279915510069659194628232570765613010955825279648166043917880323168785868711382457674494736457416343011999169017858500709188834975407781374450186724727005179758949124704522545562420015101410211272168407340120913270401736241214534166657309466643087446000406884390859921849711785204195982102015182783990406125074026473135536924674404923893349270882135962607694543371330731944266791898001633774894277547013645409062603184012247376393225186755546978585198159087590175033336425505532290368254683851538461761826377824210647200429809185953199992914260186646808605242610414579979405462999552970942389885513526838954545795014186334535172930450846647535455995307872590948524325292505116005729778313959483538701308693903644221887848137427929434619888476475404744396901394575495562522306557580609740031878505906887032311935426171078384562069709321467327790953277789216209275153217695484139943140764253426389693748008067896660879613474621143785583382291752816712271931411176058835980033599179619747944008323675488995726635716168731663123974429606576889807071582203062840385146781441304789770302730221731773729230882298904208574704045203804087718600916895955003979544860342906674237836044124741755335488323625343369140320010875973106495054917025672117711763450609003329985142950237783848427201621203190948784293035095709892651110303603097268189091918911954979300283727354116671326098806333449039965609244578785851673490046157673188598474812845767294168879279034646840142439405568697890713163061586685751830935271024302294182111387432184148022164377575786644703842645692329753166031744970204387594135464346042129759480540029001474412733327438602816461240480216886083647027431790328565293917143900723889088587913902292927730609619266451053303100725751576784819650661628466967705159203705643687821735431360839537754531209244907477987470049927889515158863833981397811130145655716066374129982825116272003346451704476105121638626299326308847903630095321105888119055804776614593924388958430404120104754470444792064416350357217211603635702289011605779131794593902320122646739147464131881347620371054485190364022979857850494950596739048141047599051517521115454351207532325237334243989699154981709642414600529998334458005904047995982442236212995900602170486614243273478437584842377399306577275419900807482334694749730644276425584707048063277953918529694664604062040119194599615818803370289314253995793641626900059461056102747674627940652236926979539974873452562878204007596033935024106573987961648526281578674130374405911386359244907282484343948915642745189307410749661977372669745772533942657568047056398906800447912464294239807091244328498759943930893099775586613079330497752468889588587212700712536898336775687914473539615717078562422163493886371990163012841532241101319218539567551324289856479188920702342393839308044819346748926312616208811819260883484789331244774634670795921796260769492113626439080600647392406545755311652435000163282683359453632816192790603215110062642101845687047943958070630791230519006661479800573802561598191435320854988462239833396921075881469612497699198922792392138608146249535756123920960610659008685525157664971015465960132595955409606859979599415045075763787658371338637632165551250496341658126553499587833934538593540813410599201071345476308833110311104847673306659790751680841472086088835842949755466018982336798331123406012818002362725157506840947271198606274859532416996164518503761249109067702630324249850125144341788279158903457114460846092730628916967498341119566818800368365181378672722589957804463165144601179714540162731064164811015367858275597438073146409964416536203889584522267752668876405823507921550121661597937384117260183784659473719249266702279141092609767275507278162942689260493882459452798676191102570260929279087259608981337444571018214963835033270236664420336159799420111641511812385111188958505604815393381820137430171917318450472677248478964548830722707106611844003062408846670576636945140087436273299560814702085266001558944092249114641611498502013023900262231480178267965234785598640695540823655884166495206569477421028735917456526660170570899104438883524801973455927401318159052376104706482897494571960670586788058689277822011865112368682282426779259971952769744128340737934637705771681123355254671987694921754099189733342961286322579935531411017084229522157548601758666788972696011367304662872089002051961812380921199554003261979782639968511672187648328170077466270649755766248416059459517597134658868249509979072800185807003815563342727807513605727838535909608861135709252900903789896651659931925210286949718896228511379027368769411033570670998296649154962215975765612801148181897582301424111092932853203562840717931634253143997405865782757380402603007820011838455083353984879629219894452871720269752992306795285708605669697195759678967110614340570585930386671844660376423357310335708700511435999340297174948027910083110103889557237503610559591383769968523486582909152579579014801624959123643830388924830065691820973687178173093122799600499362714493544479583538675272499230775012908713221833527102187448998085491282016553377070463876991004042998648570245123201228007894977739285596558927622359716008032900121107032462989973406327084961942263926971865300150328086264347819724504549427400014841816274716187637718374727682101863439957248680922318740282712025813317204583050838963575282473070566182250192539535971066257048373006484575818660964887401613235797853194798170400799497685664796112298642876809078914961356637430553343790419210419461393090502097483435462105543435990231603366993174121320004070421041417736813327859612312096041453937411632868258826580368863507181559593669476636936758099616084436045919968044697154426383723718157496032673432456815798280492134090479096910542700270522087750751916749878807115218550074208780192193540481047196953357249531862401150007956328592462522820117710938726157820177569449568794784556983466592504394956086527016107974996464570410293317132364098631426432657344152163926995417975967874821511505964041208808525307748446711814340841441499982946380293925530399453216771041729876798443246582069885981397428000685451478853434592871919002456642829490446120240942456853634161372493721428596832862359273930642748110472789116023014810656494086489148488616447257171080487628028452415115536709498959214789957441589209534490309968153343920955023578444486072342307334378772129339903040003609557784137722663106248332181390415590849409241763169579050221240312851259626196543466499169656195551808884766594993568498835090353677107377806433684996729184477908588380365057885952253051679337695126546663367341979760550481196136687619463604760959820255851656217631968658873778206347920963565666175609810396919368316848635746385256895696004262041408018116653825923166861705443131610799015301799067545445523991784086159022207565072960942162033172829232038240629112236985518904794214728479696278955984623498969898103357068997756609996035289565791261425536803704607828516830475199073037008705872832272092971328644117175796883187310692903039226243077177035241592719069860864828427287953550245443253412793577944655240743301730963065700813028367413629947693185116217512552319047509925318326029331917836173637810383368159280177610014512840279836730096093745366049348944312019785893977471133394607565767356980188530258480821122425872401620616205163356847610482762058897364899738414072495558849434677486640240762100201223375854434205224799417525887276493380252641338420635637647969285878670135182539740725374021582042754302736843175679994415748992633340688065880518231298650255143250475961948399240187722012318360229263913693139331758020830644227288153263048334691760366051874006964971309206224303178416861047416758588299484073055186565030406328373338132318265414033668684484230963790317582686091628383028810575080736139133506171735961754773602615605434811820787644424046382714665340389156917967648941621771159755528930364838569761969570124998295486648404268170074549464804596939914510282484614077534461765939233717284699167806995225851912891251495611925761872640907504122609729525976388866252626415557172827766756537593183487800716045440668310199696068240528686436174995935545020679264153751114027758015989783472005956092591533089071649069243974556545632616407059827312189143171104257187350915233039374369429514947907285299822641922005874470461815422128159500167388982988070200474321663654856382658028541117745447958475414685632439912231227328399579007609362053076365587875607433950130109857947277944422081000672469521837229192729754304152543550295268853436493918395317968905640784386875805097451203969909199335845300178525975741728052184215075272751391787685705366499895202089022695916895070107080149244590225817740309994306725950740100181484810437253586060532590670295856287529743901885671758879771416554025155682745514189508508635579989673224833524076537213665029258331732195601852974775059121391200173129285084655523987226462939421936207323706948544262117090322281983674561352603718504634310829133622911885994776179621038608472013793767660047270317305264762751275944679719884650630670117253730520806769698896725859004335144913054138485879281653016878156613305544594381075011571206668618474727058836602331346767414685397173309715055788207163538588072387942169843039351695393228220082326654841158738145078833201804965313694310283000905094071263332919681263079793851247074389780876832517405598849461974969962045375777296593776570879587622259858507391979893000531696644035816373442356345320219454930890179621855803004184014191896671726010909281520562778378385750499654435592674520816264385089978711429744351916320897746304690725807827602592076343286133061857054239936464148467182328201355851272087619924859460691974205636871005305094915727750392652703330766899954258368345013532935145363268240425163644234132032335980589067359304036825468141587437710738497285054069921965501016495321582155129522793578273750418655182226487024431306254709322377924224223212645004937454671683935872703323487240136631635597647026696756211287425853997160183881328127757331773427817155025819555636075766602082375128054556849478846678794556361148894114166529315921547053955018895122341846931547555523461763379565506843993133328397074999083362981764526331918297409755939919921884309675736139730760275273416569787218428776678393484604336566073941849198026985658029209546454208584722208353543306808171439222761318790328321138494004261123030534633131338513820893831453536700042890523815470680157342087620813571867754854174619708395387955960002512604108041069882160399465953170708420363457912429364801303146833278218786622072183855688803684912431016472890006921996534380672608481112310528381514303771713080533203558649510746104208625837141303840488622261888603226219755424217183138290221919451407481851895519210304604747724559328537975459575322948068476485897017617088874487605971900758978029021478041208649438623974035657994475076554497862869341752737476006395096112612247300700835684987099133736151345080116109827918386348028697528998198258083947730137671370257469405944826364248218693443938719830194235236616921972087546273007659522717825847979720528123295335471136339646433081504074304115284880869934585057123486556094009425783996708152942909792745773986916203846777724276349836402609808328137716464731758764149941808813016116181290833891819033525823511954622284515910377061413984149871569874854684391309101646529101553624945731968148404046508502922056010717247942619721322076252125050594251366745315698684804695471272643959435065081267171166520568912204447136544216014726861994516079621517272573594478950666845037678639995504612003177079879040511164511210528599778993575433812350872754637467473494571076524179042488829365941228790034938792283885223444916826603005345860790088621043769378357764105329041556587143556627174824809308864618858329350313494664918985148353874625092977855519456638125884040910654347210672049098245928159207350508396705533145317247161758159127101477100930123402439401439897402528057190244713134701739020216952278352658261944145929409183483571078926948890666200207940999450803795743967666048253078694172633291683578951470329827654999485477887938060459145827076293511214233958933662916027615631454319339418772119578453274447350391364524001130305042748925156319786995428571311959041311294565203839927782089072584208502196498607714533790007209540052580901240894529192479018378363127036782825961516026293262988966490411144862435620276856335457438793928464942360787789237950942966326059473601904531123448778100927192391160902889621761843231546972325632046127967049490209090504987912740815366053637023160722274286936588052146636363535099324567972651255483324456298601208400145632708083424095756536397546491402572034686757556771870777455625259182522563693928978630851011984241680432935775731615424751779953562993496534288089369343447504193197245907631665912477170291790266104809902634750540020493484181109953269483740762441771013656776327824365965734829398304866155434469582063210652004795785384260580740705082295699510982056755247796173480917631405188733063158081344401124316999057774593506224508965196374583267784750220145290177226158402488727966703447835475489099840317220373490380595524967260619818267052008008805588720957446543126654010336003112147405778333215402094653512082800958581763967357900879518925313889239076891230019074837839807684377399771224041250402333762375256911578697806473270632939797433255692989274161825310862770121198546266610942305799468705172848751904068440108428296183298259156177292472274944936864618807769765800206032432328420192138219635563258096883685246254486969231998763762348277731293904586160128197791052636063456054875836853342312688236919763962569705221652743895314585476989668117898665459613567594520914139090180860672882094063483990095201271098901457659843238507405324125863531945177855992873008127821628336462929875552399446082127375808721895358553937106953098792879003058176210776578548096795901872891483833884614705976830401661116296124804149475812460711651887796443221752214522336074522295855174287196806888322441494966287974115582406173311334758943851923987173529712046410150834558786382935203980253109623553893138760900067722952322798578214692373205405328558132427313783123725135901631754954728017233243168707141838630892325919360212437764820913818399190181525185722903386306619042086682561847649727653395978344847610181996902777801615610640290443672194405284974045814424028129668959962360996663631025282784250365103989844718156418844745877058782761749570105430851141536442887215319396828804687607319007278670529930750813086731892516503008374668761842548431333707359698168980275506966240701244086126337077726533176618175165586734578771579757409778751186225790391609682649383694566339812031332395536706330781131455751691309876973945947437026091589761129653022999754164833199150929116220232461155530120430448718609679153827397058402302560867283750973739674398369751917588766926555046280109290820792352702558232637453837040715699456452550761477108162917512049529058858283447154363491049905161655493276237082303157209662471982330802322856285896851209931029971702169354085555493346391628899737844533595036919891819111605819134852057849864018872651829780959487076325242343054359117168637776664281647887149960930778754056799404848601062397188520578239123006013104373957184548344945398927056468973120558569192633869564482168378964621351359060879902845207288951391637597868264320682563987874626231396997140331831770207428807042777201910859028400460526446819529132879630038839326641851714986447835528651635446323420480679641896353358199102754420578351697766799956593498515959919243899975424898030313822527843106020692413357461124748630800381011282941357903962442577969061722442340010013987266129896199145683278616831317724403070731023167060696339127942944313220007346573183876908031048858398539837601555176119889529722782931869380332125373431015012571141165561767773499348196596054308507230090174782977242029009206838813980379564300366188547331059766079002056891676257907065013815845763735638263427139986039107420028081777540494098118816130971051771325921035758174776263874568529590777952828047001732998362212562862504941952296468154603131614015342430571321601307557354668108702352954762656769020490212458846033381927461696397544343494914463294191675739553788224207036689538186903128255634950077680960600797798394860548824600511473370868227778339134411872912378105590657874479541561575378732942155579899351884183643261117305763978848131205252225938470073252942823851311951892970676902124312895831831576031789736045034951926367244569208529066601022843837635239226434602813255245072164599363435120827737366576385961012294745796000853028415507896311018949009401941577041846405391994742252740497823410357275110206150184733534160900984489166146527198741258459680090915053698833173706326746463336875903657927301479790606566709990642485742784922630331685184750780941079524026321677971761503579084371316568133817939315601902888820117579742939187460871378494733355466548606146119806981475029988234959599483086519857702668927243762136211799463432205733150917437943419258999051035779054886844558122947299818443249372635373237563498604703598188474986819484660766966174666208736404428827867874134822177249976741215018965402523244693238331725223348221572184102644061909700994904967083865551674134310099376454741951534711742080493386591377365210724649330830501255161605967182165046150345113006418560192831892579145321355393673069145118606191644693824220116495615135478936279279568298056964225987963981414934037491784247759795283682408542900714786540281032711150727511434423248146095526935189416418799985902222054798495957776707423749254506528204513944720420826521032452134143787176324964994639045595500287884122562172524137343102616686974493348531274906955601375806023249640074247617964708838386334262699899100299585517837017890623530624592743179464857004509514864254642256979162379276484004279342916457989895384826812909721881789172268149445970585556535565685641202848649828813646425836403789345750444404720506044241635257020226860588387573782170025403559189121635441877976391794956636429747070196535427148396814668623906516260423740060844154540247335902650020196654717213303818904540924128888801558470538560066360971053653192616428135062071294846287916893746925408596292371245384510783865869057544685581109704725442266547840515964650932140351572093020098953716366984117266146242994595045995461568363890059493450026753187337924017933203520551089764820826735889638036389051709133640004523614566980393980354945768817392788188012252964490716818903975822493810963276511870713623334730180614482283390851926333924844468210761725780587398714955181605033718951303851790668906422812947281356584326436056817113556363397401903830656270027949555821216018694457914203849191952757472826295283588482902535664753510812494005187417478789456092615808111516773565212029012485143717603766721125199337750631950185372469170678654764047111719365604307440136780273400960414064997832446900295850600264617635830950269659742556263334897813985521777667781680104713962803767571260005156784060942402919700923470534325907461160858380373222466100117795900988596181808504383809948974276778228762179639831050116910253930360947826661876709396328101662182809908561516246212597845045249244080926543015907673997500234491047005394447397273641912682022944042979265574713998552940944831593616748080336575992670489647457792536578221309038749090149062302805115283629848317627553962236311421297318970501545951760094157700130990812026636409699987838745657595929296121521786215883687802681855196757424218360162719034211111587718233587585225760084348764999312733208280228241911360517030298864934022737291207660796619327315491428614060085485774766236036838499950779771233127239904177116689658325651922009413802272462094446566446550714001651293452629649023831854882994949801894086493362430302426102368631578903478835747331589834893849511019607699810755327071219888869418409348790228811624519763378616291812591746183837394687847058349156320180471084965084694385988878559823827130893645514757101020161177324654306199025934073375137573975790812063377193666355821987947524416837344387492495719845779807842062201032088462035437423573787534250308091879946776285743200428021101233913575139423183205045588840940090914366218877923877531684797636604747402381121142110513722535444023115483088256828402567638032036066708315267840571058368474334066239629472206044971220721525038703136800531262473791282776140897883730639715560900124911706805640676702809395096806220467677070595294331036446136067147229376861786050774009209579297146780614857326199470874103707589504093106222998416952613166967676224103145980083795172147182716944590234277527799004987621761787044139118756586499262111468179657539473124420080570730860269204336593219554429400954710507301173453997739955945223483299921489581111896075371454754502377628464153673099499149390484947148044774977147355003585694545341689323237159662540407716680291408307067010568749405117235160673603009656557954858541353578967800860793366522546018135281583820565180264934198011069331176006687470757708398676042427812790498610646650488917834611972893625973681425493415771047119289800651928263742378906838755233772033583578163021310123331410719602598800637863044776275567488538394999635486694563209985033548171883645936834466703200475349310583725235316475906440415262947069503098580657168476079347425965387796799768462877627837614005791032476163816801356153259978139165224747603440166787427528538186547909001712121125453755781220217131106928915466496912080912157572735495451972460239955707474396506815122917099290381067167737349133206416196182831773694483752816857802767360664839237126623177591872358507322631204875099996114608739858580028668284512517346548397119807017385196320210806979203469514452299695215075671964539271474975185072085865416273669352581293020986228754489229359402064245539421480494285547159723393915948914372398158544386063763415078056854968291026394233960308264383502746174911056220294112914569714343743103322613144453890690968389540347553187068149729250072517458633092846432122096836124082589274271391835792975346971293612984760803007356424754816125972397689282035997487213276295482200144867272987815916005829333017004248692055334563499638018273877447440902066554360562963143310035419358895109275967634964406229860101154934371958410632275976272006246527686137187110663978513001688101762396422630246975828640290459432765374441630113805484855374259356588897463039002030605446742339564349175870122462579366424572678927680906698417573313682096969682981570434307332353201899975777026951607562316056332078327316845182343036354646530195741256285280615728819733470020859400715079987526278170801832735999401298503069559813478961472261252878866982019394899587539778269138437686746491755822662453111130530282407002810889403897292761873667926385866746374108035200211139964163676106610362784496847254591067673167399263974466129993142629931459047090375881797097520528839094406334499146121208448024723695770191158038348619956967544914864338445850906816552585383702894610372472487056126290546887581653092276254264175908532058137446545120120581375843623606246175850274778687563455263648632665739569936621088875801177318358512931977892368345667155509281931834661118231340993220508679527516839922550135913890632112266411791267769890853416084013165402645277395461683196448704234148181798950757650756976580699892046281582404153988993140809141816967875648874499871562589982249139923213655188208246601129563274359128314771225853600319198828680315782536502373540862820212277766117788045547465748519959371785246004156866294664892080380031394400882604432253856596095261547893004932782975174545845563019193942357802087735726999714090376646664870385105496041770919582883498737089594719718971173915336956779724283998258890639202755852998061970390734589196808118210062703545448519247826412069902734996529056574832262459024790898362786220276316010070742771443214551320822009831111952492892123904463838265151706513647987535115861655850026839618884962292658713103044226140481758175508519689095489590897785614560898541845544925213322531363390268354972315058230186704973976848299588448248118730702022003515029384636894309512556147280052137665425996600269955342168444187483570945549789960539668927676883898060587659615106928717327571751230273764499579302629453632634567877057249323158379632873251749702304354421586309648560179327614662706060135096376612062064705271446887756989778193405700157849088808878513183537857361842887779820105876471210659489112582837025869895114840823254856986424080587783361983207152123761557345248498853496078707578081507382743406113776618149578930735349529310026788624740752609607715061178798208087244266235725437394466726198870253406039441129366811936502895640988241711987930348123946232883107799953959479094468479642491096403069816721601821087836899663272487932187841920450298854982513848989169556855993968967440753769348587480743023746484598879027128363083894067799672051347036954268315639117093682299313499536675301385491496371060877471471559356215387915554097365459495936530708474647245818521828807729056282924829431856113065911275027168439238186108415773540774451501138154849860440144700412181855229821720764899969327903257326838514560517226692805165130372800049390501230174363343937425146109128376284970834133963678522586662971590119501670932996726374045897664147202440224120919468343908738688244352073122653256899408541387550559428325006391109929984343980481461579776029409529391053619392336417774813827612648339151626469925048013174193964626921203918582901213775687933696320028541655458830762322863600818173301435037702897510203653873906683178143248621073630610061072213407668379404364230829957199275757171276421695197930467474223078265885734216773973928319726609997581757502895694795792044144212622479667459826977750906635288120747714971251922252105330706294339680600025233781660262703984301102863416068184737753890161678424397939369710071599780970052953707200685480268514811712959663653139202508461031694252705656713476214494924615757024325449264980955979482806430625312090194681278987632266575200134506150491348041748152591994537348590224138442528653591383326100499131040598482491347766215595238860757301246711130909949504759428189024015899652739489556510638556231779082934413415685939134329258681694775272738671563511372622779335134656751559568315102439646035004495413181715456814380368473889296346228630384376418753042908691374989934614573972555021509064542456032349075510779807677628289946759535220671527929140237226625445118599622877538777838481978778561847577268518267295249492025473138772408234648831145661606863913041813051870766352714204148779324050180841090224335144769302758622152873100862581244891441545643343052081822627518056755641129129620545793172957445729631962857411244640711123186528810567707814482499143436837128840666161210865138127045823752585349803689839678612348758617453378554227099808410340703359817206763750066270900073590174206383401306931273899825680549265520715888365012991879602571631878346919960185129755707402965036211715141386315773804341250116265834122830807957099012574462177559678582684756907328242299930676112821518576238644930535780108284450137167227618533266739368993606256579177475066216169749851388102230963042909593192462125581409792029604507625847614930232036788702901765024478242834787979206506327054030478564416009005578631286815994915194344731625594383255001918076363168758817855526759031572266919349775269528104015985962136658818238895212758817373201134722583521505988031801709312134483981570382763006701797828935429959189991564393689375307300038735159346300275885178527284209811252223665389436111224733084207555544737258813956571802690039906080632047787823849335163407351395529918656330420068565748043034919771517935312676837353432265928016175419952785995293028175943765316697737336674433495848790997296346330365341130697261623255412185220752517025829024754602411320691522984578592039028494210282124559186220223792603708821832782277099495595050753321013160413532907584063541659341432198096742682680209683805555323226110358253248217684831618195218155797815802323518088708387786428228180675069476360238723627023317690866865552102031356059345183574346956035769443912737534037039896185472258850936927632789817775035856710434814002768300013557045062069335784074766880867078418766826278773647559339235517454825113561682327409594540157729109982743084229012360102919835956543740211696470343130177983483216720102359376375919888862578094488452312604415465806303484922487985036624885962505938857077611785948508317097666914447804029260749525967744776500619442579031075986795580491023613803447931808096011885787529388417564385489802099248661823340640352927415692957471692505166571068521187749750651358216954219308718549745260819318938420414004084356571263061710103778575583822496185296914230845049150786030130403078627745844453011404639597716420831950454698944555508177008075915123630200708761087002149452200991001279643810980747864472330206447783630194525603745868353649942146414425359605436012084297446482621939244257887386359553428731261916319704204646984994272214453563813437040194904547056999353970943533532149512305603393567431629116306984716460569788147062342119056943222209948485716157271706274466628516217242232733214638081029169807641624204830946968809893730665265627402912842607595167303387979153227176328292726718975216520557129826420559633607101036982259299229236577987118376945354877026208815873556386587010365769178890765444752829674424451818671558982090487947673055557150854831355425136253239723288464904601020789883969274077008413042301353463604701570332279182122601811488001655922859564931309974715349885343429996578221405262453020853747355009579333858922556998542523002649394092329238344127846057236038079664990707442637657031223771136899720666846777970720191898318278406032886909504366295455129060862704118793291004198718776564101971520532854230577050363262526704183786807474713855752714839369639298021669923766715192210673666891060404622109590121069557586186275945516996444164066497389431513998900695796902367700883582372600470444858243932342817156288960334042741525076726591013415410674164885764762666653193986832276915167517870889586070749686842709954222591405745471682577319773459223164732657969161823386715931236040825170241430908032541928023430619435243345312657729645704833230234603982896500741536199888837431263417890256166827302019335054111383987202523349354185412770715792732986823120611691876580412085810327847506001975756127545290647547050460426029778907106509899404677412844904243361706468093037507282723261912799912663041292444543323969251940404980358691594058600737377923267939453635506748130776148155479433176658895690808034823691029203117899971927533753042644902601203833672275842600334001567159440357482957711471267195314676096532816333467210195076595562119830223788054693099579725704094667728478950433250245336114415488216176805685143901827691603898592399874001959478837787154145767837593282145256330509825462761607058497295660347676055659096964726832541893632870510274295007298964761573724008899060749076245398368085116019405017560561976343183491481519778342137293418311797619166059527931900392430827977467542289136825932498498893892539810443994866773305814880377816955787568256794191056628768920835615880527172328151487982815083181155231467060454620719004710087110447942112587077618053750650535762713424733610220969717521238267123603640724329297547120878268276758090966596836962047713670998273299243718050188328823342900289860402993316999657803852134402360323867538538774714107673926811306709241520676860111745350629831603972342278744914904581853196029541644429338854017256606275595420111953375041692385892484449091548107051729120680933690309341408514113608827221581554611789855206204277204330848045611459351104451805843507454841312710993878049196577243310686312296894126012725559609701752377069243436630403886279351152557387660844513433029591617238539658517367729525552044672969399946868411658748411883273235124224483395311817984394359410130852392724070269282367975133648724164840938728319143925552906667709652829634857484001455972630647511330470635779404138301826577169981088277135788139028469889331547097465943996094950864648398962792254445249373200830667539559037679878792947510767808794826783576473361796797445728817304490747810265541169623071303883070876086610585258528207471109490654373713097296344463986996658679958333523586203366316251704083416383638271355646219208893349283585697142681467775249403006139941126061727026321167812472583597787972025324794938422773846062003102799662972852160301180159032969062691931403958673535734814943153067595820395340666522837590866905555869160961753998778955881494078238444047511669747118533695762844224860612643829179430279608897174513863042986567563122655308840527210503055154841608442555467873942280849343870634251498886243304034469637392843563163343058093857294441186839500553433241295803370850616819972194797822614704682776145044090579284689639550500114306257589579092180374551833785919307277790287179118300230887473637064645176569438412595805033925121878307641718773436106876436086228199717854455671441458318918847842273149948780175814290178965202088268506550926079383678740829532419984323669870366232306482811383792809151753384621292841093348282084800945869300039414747041526022907477680308499253247976368343505255430736316371726063695667052491403220880793488832593540947732042087075723954062813784874961809660976612193324094309091951288088645030654848473977584242435872031643890108798430397339186054160462360915805707403299510976491081963114908383021240414564803273047651712172133418440632389589564871431359837313390841614963167148032731413557597223798689471050902322663633293848398683422187336450527570505416156433683196798559486539924046104023228591288761170562829234808746415647020788587297720838540969637780619970561518585158712866566047840186494378325740301426993273742743380021254700012314665950861421804556825955673560569511893747355221261907608269764943528477640629549953703161842119375226832296597180279644117200485340864105490553854464916456318615376517599315018560917036587281598175544568298418871872145859259460330530319833529027817841462280881874259468109154561922606877354873644353250350893525228197501328003244984742977936071595866636119136375894374209352295397694415862987094130335760911022508882358539542769100677429724830844907487486853365222666156833388988925766046654188439550251924581000034018529335635508209491918613397099480235467611651221893758473869823345429629520160167229294340846741851263784739600286443395458755124322650872533607871682886640790433932064113329700917644920876434239030006492003836574333988765197135442351313284065655746465400639195640571180334576443240302571442026754491420333156312054096599574520324173340093251888228775888154932585741989840132111353318643469726740417043751663091250024781352394759568026903672153966577328208723149653127639027905912697383118592788560504642112939133187465774618335539307014571561222025374288528649278807708950595034444688964783467702157728222128564757056525781066470637510314410200318680375222313955177776849109584563583935005091553149011834150006642099244737621383087406447112275488956594460404951207382211832072697342992296776958786668481118417193232872972397952398575708187868910575704597369475083306645968152911966530382303993845123957727546711608663558564043518017658431538440495069125120649480224821934734657755397786835543991062620171874321330001176605517049284086352942922700591322606409231524630363808175789329795925314748024485260663367678940965860210100169332109423302066193127242188982405905005857742405777312812297222560062521440648295150271632730666872984198912882044725293639674128557101555052512893885503811879875544712658189087872742875154152201308037790540691139082716400036412237709679959543491440074199884519356188417382541603442739700449357798839846563831328163943612865665013658070362068724414933939404749539128169790314249803047795530619792228182899733839611646715393691638868251902038804812874952776129750034481424103033920033892220386554860831292857146671027656392618221824048584183707092026316215254430112649806270162449295791777996415865386449427495484688529501872133872135648742288969422734700138434488615255806564366648089149620470744341777888658883270520179494829600987112921151987618279114339566777298521277190632890490797925079604424329986968077122403770980226742416647528925330594130169893007101900028983083167781129455127619242585445638964452748625506840381786323719811996756328677357847958920458786099432045945190058071871089002648091359906459732773086395373511460271336999801778754369298170574458148061823646550017125203569387904572782074268884532334856041223103250472178043494192871087082935019631426881395955032013064405967677807919609643122901734999462988022908381139620776183598442194878247526454335231975644354661873008770188349273276868745089217164580318933144368617565627821953846087978368637291751844842390395559187761470137045268112017338317921003563608230535248195316630237039784709555756509895417129327220080894446794662251774217737814153411697195160008171659084238601538015256794823303219241742004317274374456694587869687133599593268265605037179164625532452519723081622045778423077472848959857004012299172237269545397013313013185286212238939811513897194799723846686046196318636801736540087953194514271920023514970418842330767247285457418048483489067882784322171579252271101646942672709980761937330972840360884990628651630409279172171381491597923050673267070335633168775888070453114488322317056694192911451697650701174599668538976617577421220933509349354350504522251861178803246457267558753766100940178255988929758483497643390203783419449908412958631651980243520374124894472897472599873418781069184769801472764398065185434163818537952657283396393682776859802377832545096990604807328971458023205233884444088290152348671365617839838296013839826238285248776548593754466597550091458449314327902835184523002637556907221194222741737818719185014449319783296581508199334533772096476680350425148042744243579430317008931423939836427276414518587367753774662352201922398560689708514951965959684596127539983871731564952913774668010001635961387933242172888859891115697691085249088395409382274629633792373681354446749483869091134329162247738437940029063354593297583100800352538314157123172996989960949171163590939144424183900983071079296847087743762482737471751928482905475098504778151449312907399089173451398757353225470020829002735157694711793875489320658532623031838445944475802419397879866070003836941549295794292535438301535443502763240032263726998104209295164210083880560491598601652723362512279045065691883088460414971410801184942643674891029943605706365498264041165418590801553190189741345895682104957280833337438321018827738262527810662204115877405518653615141598989343483196378109679873658508160202757949894862888672378826538526623774181583960138149584495400977790207103482992198507497951184462849852593116197342098210066450733610620924759145741649842463382834300973432580488025108779939038268022942131727460893143701593838365795869546869124437359019970764705494826864081692843611273670065340465942183956801033069372271860689350320506850236186952028462041619720238848795062663694063256169901985050176616315264916015336091961173129834788750261314061421569515478782051077000873777298331222471018929168155328998112460445395210224868087408289628152884855647852320661119175991062364275912457348827407122438260669330063847087801567943553551790173229775735318180483904422245707837897262742001099651681850099789261308621871102301607090814646497752108359785384012755481553919381904586566904579519328309372069237223449158348888343569509744002437906941218526002651417889644457432621017205794387358274410978393575710617964286113148330385402761326208176932363434857410699538122984551256726256792504583247498295940831773040156753046020333841240303518240937840629916156879353189399277373481784165247371888041000935275798468417815630631114861828058912064918530263434106087950633646240294997734598465547859629322913497884408332965419079428234054949594925872507925202773135966519094302594214633401248139374280021949132743471150195812887288531833014358390844409233429279056240508100872658642442516117597467152523517315718768707217697468621482977738228191578839404961598124840540990005231474033496197696903974461961469314159133949699678447999696648580505440674604815066986652776793144478801693188544453785219102866303784871498834390335364909230426049032307911811588189922185373813914864501878828289366547819928040862513514175389224338913365611629049016720536402653630719674773447736958697094036337652480410675835266944539446700437689288131751785741403086235194425368494849164666939759199400124898517568534751906799240650655173445016794118917183512670608124120211378722606703000082664121237402429562966553943653325083387034440217667416776761041886310766571264275842951725267980673304006471788357219114363609942663666112551031098444942919468244646043865834943374251212336866895710111738390924033180364970250081961992387768000359354357377974325705554347202112826552610507334584224613313433615361607378227193849177998921320807587090367915920458005974953423557629916354940276006065339576974889532117238787469062809944386131778925327923621876218294172022991462188354723392392579326756706023468345964638949416869052576231789250017577813882830637454112352753565307826800122507572984954907788591872051333770771279988471885701597946662914994170190941586130271965608833100287089667931134328110855858224475255257417503279925384240953577418222518844351874336855149911313607296989954376092706315816914467538008624633450983341951075391868047152930950751814179311397093280080188632045594177792857347456393689552105638600363568791532967876256484867229079886276734293765834066865070451235212843406197689690462164030141788917185565206469985524753381725062798969256608098270337148412058179989418260305113906239128990508992502743258746270905874771024442942793498441000233437041367790351123687205479626095814556758703117080276956887083845921294420644852523875740263192483975609808760136223017691997404854735586584047651295502923707863963979070113817419710181974387012092324492879021417017098309535060350702753927357359620645356850347288511952405528973531741702548497779890927557267196776748720628600259442134623939972528419244072768587719456289888206855851621182761494237727829263275740016594638631420289432757966478936536938353447390927324481399976639865453897029141948607628085804899044060239247227125539546645388963135050429591255440382762929556197046270702688524074760598175568693887162611653598338253948137310049631371826536049448515409743619508880826612852995857241267927101841052092202903343360900779256778913253273319820890806664667417605627997808166390749036579914980282267511372654546004567053549592061265152409802870093795855032282308734941643238859877448870901160116201723830620021936872026192336351067544664453158530872890102338931926327261747693074231179211290669625964810822512610066875461507619759689313499125758421421395161138713122839732284935528551432528613818324465026369452185364329385366539280862445616709287353961506292863652765258299673479150010436186985747953690195556588026382399527364576868868018279504956779196487080545416986684797045742886844914916608568338402500438291051469343864880741373079588121392876878888297706611875425930073435133389250422733841047684626962095467805744167230581555754402544893375794881317216835153009782251237013003968033687597812183264089023463901936863533129491916478702142084029121526819339275988466760300077119471078035726390404525668243071091071575166241554426508351018789585594362032549556485812794309776204902180938917476284375456647769089695461575056424242986621361037582607436234020060844316469383390124740435115712923410792958473961111147299671255639238162364299487669206298290519115575255951386377241453891358896496289554796181037204236367593828020765818145757044754267427833265853963030667778511437297084719702373766031620822902721065866846316580968604903682764463068556650536917845964114122565453590546716271691795582221002729668387781728188899230962961874853352463317935251231661709815615222550091047787481095856077153619271775737470742715216844312169312384988810825894597265824113545958906798344054147873460264702909500231886851777586782935803562891836013160272062148274597314779994003455995643224128246195296962294842826650791245084331845029064408413290524314037165990711185986112172478784383045717928803936440123284528776552396252354661821250672477789876782749130456937816507796127668874865544897778173310603058310837124184757374558818390936244324056224215663250126215111056359691853447851030257196068999895106909897432440610845570719984090865946899685250390287175668290062325615785839894480996244094933137858997709168795190065065791703585561695827559031158006692167362800054786049645804066086490502654532619790719118069839389959612916864588971885675110486629329988927891524701788098908565428495160335027975498120945614180319736461018696531480841582888255745408427629531413439975406373009685998213630260751624763282185399904082944709369207120395445531011215970371316172233382140511467372377296320851461743959831745881660723618594775348302725991869857258250048304473023795482803290635192008934782020639385034164990133470551750425838604484313421215830963825393663923750187005449308863733707207257532853243197334883587935752346882774991819414788113487023518524066755809875030911068635771279924970657476293414312626812624340797468836543822645812559161494826388765033720886908860180203270532792002247509114940292087886219189764373335950763144550382787403447196487908453619237769308584796731688394409001381727619708832634620912785345968485346636274413512945407249270534412797442294158856380380899494276606996304258794107804925198820016577890099709183364513533278938083224250959899780595083632706422106327809417346144562019327760123510160335845043728700673409243642975759604751675247999206016305594990523925848371815801497375762138904070551089664509397365640430824722902254805449582709172558608280456164954653462221277694284405412801843057204788285297765491611994744518180286029827791809643130823117402301653239138003260808381169858137354558468067269822418343013601938433805071530627978160073665327519569103627398245358255956911560439408080489420470654588944909319339851249778762005097043429785402608727243607532976455458521502633278994421283014761473341201445515465407450023632074936595227328066710169731996802353546495053126084113906949669253544778158393030283829842176435587077730658252996403203251598021340254327450099014378694321442150304540394058866783412474875855546360059611829632739941955989865166345507372864388158418381384966794748121448417295493336596761417297292519307574806993378019842037406918450247906396738323641279337331843364961929154675076571836631825885599465362883073762058029496078869534366782194340091699820236362406072017477382369050137410916595712892475899319811067205478913079345530925861082511289832177881318166885929455255468799109343113793237724508474709785005789969271944180291781757031984206784722012597824867287431926096181836374910974647259967096756451696593399412022971564504905155980822485984901365820657194009537467996683922171673110764555417775551996368847267765929046888165189058082619353541345629598123528702172230017743689610725500832564715759140634421310018790456839227669699059139415419826659245908930264908195581846608534920372615090683141321168144314145959984226913672126269984039000348583755977161113580359595877318914760638864152410989549730676680627123132596333651685681713259747527714766111651554595501970190098174421117216621051999302240656627831158571764713979989631819551069101514485147594655067511007584070675886054951464076710387664013828014352516148301349087426320851093966032992746678005762104539106355406330298964974889792986418312469701502593407130143395167245606395518610614425870772136558227635003970636900441926400005332020477943090036184055178483979714075921435625190795133957488925319429749647415640592835290151405257737402216701641491399722927768094307924793014836289058206459747809350563969148861971091678155372878780609813795070053091923223897743763876000694309481247513821734915443483598701885024745698374150453773188712307517435758946737276317755668333844050048160067267253685372908615255695425133670172401726595857408482378962249557162786763995997912897732961836216750664009912541370363712858872695048314058310799466462849829481356327017159900106815495091200715394440593461129522931170040229772839129012569009121651318188999394277971803945668191264721658616028617937140505138547962210942486714337496388023989419026174176253480364274467184710034623523525935684271640721381873109501533329699739960864344536097782838105267611923031946170314062455615342410951112259225456457896684041912860768291856405437920786422636335600568571991160551261132610861520434478608538663042066444561598875004961297432887017412850198628243011542481513403556057305644973201399443667224152879725674903405247974367773852430376768949694536097471611443846694528922165992604431945040532704522829373696927664194699197546244221581720753926328755526367860155290927483309934319352156491306512702227659568928678923081040706891420169965350483546895453151575513163237079791847634193570485309911265698069958927902612262816435858588762248395750142425683529303260746070501278394936561977451774753734452684749272786059510852491584392538545509924080083589009257330763845714127906824040956723063020447611168430762420078211931606679000256479299361782584659628039190977859407898115913499525240534288294313873991116446575534447915337214032259422427711922802821810309185326733687690116152413011289080000511874107367566594821467805647530319503385446923517028464333281771791080025606850514415486862250658773879546331203560168112349590409107891476629574369977226534247604435221658364739832927562403834665452306470179397899622318445039439016898576497870617269595317470786851620078585892394930945171318237305186497959039739156753788925129356290237829975762351109971210748847971609346837843406524746666587643048483087338336405100401801620925928612400203906565543636554218022316935915392977164244014064654337190634159389562228883435196046733972204664131563004948912300984426000307064740657762801766654579721435603266545449919568837798349509394227007743859179626785830370578619798538943310327361606543058340616545069681179264765140602014008852617912802956000731554733041561042883939244703298400619508543312797012195666590146254669024923094988286950139817702203883065029726004613153121496506151341504352085285295828517200958941768356811219710461913859661066300114388451905602818715914065164100888795120446817968614491717880309955280949289833228873568429773229937474825936761694085003239299615401058085080971971020944755166956667386528003664658037961797667586367971953465173110637316163814133170041604274290405552932262685449113128751208447042785801408452736329492782671314562693529230011479357661865884959626943177281320036802990803009094493187886774275991731793145400708917427686791374456980282379484676174493819405896106527209746793669717242100705489467790438141787633268152996569768866907992785758216858584043449766479896986904119986181851205122624572450015454641667872238545517509204295764280887184146662270417903204282597432030433078630839228988869466248619772367590583809580804012387323158790434366960966121113664858622929644722642832764014606297540965143766155639192717099015205667809087020010405642000777451410973942720279605458082574458197564842142316751693674588208915952277802956077898884250828206759718637009110861998329673004230394497448291978052574604938852539873224265685011813453583943281550617081201801407452620240359586923112575698266046050623274769335916563254934382356561988301819302115823163151812953286602694208238000229670474245371698152395888569787620594250144473967439773364338393048741249413566934685045827589078406019358108741131031831136497723634256139107612322830162532129767527294423057395807786154836813710858051086445739522311620508004564284059830451526935960094911765416987056595689413062049426461293422476854204778205526088216457413251367792327851680246802373546537637926600494263695262847033691759721174408237039134744527892416470321067998745984431808106534799319453071110692071377651683492201560416175669379633546868227261519191905742909420378068999847681349551118855035715834769252187599305675131868080255674012995075953348600386164000323227202047299516644046243106492272862178716809958946957610861022319406199613907723585835054569193741404091938621123662511784093262967635600175765751938596190405977535656177567881719505526721838207025794555384045031738140938244052519445574290399490452816624343225322938056673812746439447606945862412268656557690124929090066090622313376763979470473333411821832852668612082994347939503262137966360222123474981693506591223734759510694170393324489067784101082713342603866302195367243569545800351337079067144170053671451660510869884010170023592379816431337467853389451616176524738686992298978862790980882710615083024617468832169019346088993214369322334478812524383826069371334356557263580722456513627903901654003565202022681794080127559041069113492499958557884003731865841931581447246709773721673182940642012112364081739172164404354146685381331703786456567725824626350686154020853663686823571734083011325570119978614098252054946690443031902986781055351288697564101163171637184362160736870352272663912869023071665518262375921930650884583895577414580802414886771389642228151160630409054025778993771973955465599543887900700998731456850775643239961534304003209704405455296917055585040225605139126375910970431148226265273656339262401769588103537021632730503160749273218214336890430877067133531330225346047170325154852579730455970907865641272114257312061623330447265990200024815040587815079326074434369527690727197939529682557940394838967163599298295554544506755225269163515320943571271835346446595988872308366707869607678068388893218646707608420607279755174417062340716150739277117618874575498366881416221506026001598973497000965769367380857059152855348089852486621841087623521763686759207582003420553376495178535655326989323128375993215941573260448203521607395612167557030778394655278216002851530922223096278874231115218744849304289945412624513062824939485304105277224627436190029424926509260878960085823629321882578411459696627319635542538758604112107415910565703349614344114534094446609131538634455132254209401313029742178562375055117595971373616727848208222460445757284395139126780245030511916612122695887938687646520701677378910853420881940449884845896872175645674538843349001457588418223327145553374291529635178247654247171369633740956114198634964873568089869778116781583487275724951239328771923042428122265588757772470826378720698400494292857216871696488039653754980569923203066704588335863696198167920857346698079213126342351843919561250972871104330873556452522628540822688618677860318003101247202192425954103410681218578670487354228107199205986478383438191037937468727029685376210474966728203157087589267980622402785988034832302483738843580291434273646314934256175030036081325418275459748233844767019824681261769821421208980775261422366559382807826991770410590813585211664254470269515672319108500539773104933053388108818123865633498670876866716977771658370720757742827714265388875743414869630815797348606167605158655605590078088066884191303564916880895927774767450751918846327034024940727036966013835432638875208434789706944997478199600184011601413191007392051007141064710283345659986600134638023063352979220921814711047244277516449064853884747268021957118071175915744664027338309450592068363740905445659961322869354578946822242871420203601038351991586607365902340843711882311278348602438295403151373005161984397518698571359966374689695617141661130579400201465689075416795775566021639710813494921907975534416808197751636460355566323728642879138453544683887470130838766086023515646164252413300709220372979701979488224289777109830370359569117853061778260467629011939360385517201764010226429618188055003271164879173102069017986642142193119178960981139205293800436463128003317786052381061629805195425622273865825877184856801215622557782019765894034109154689522784373367631083346395949577116699421322565789797110408329600906979098328587640749034391414287950831803553376071758608769445968129804133187840562741925554942559774044276314934433699338898767177661958697513119701225231119298465531173883459695886127192686869713192673580816433280794909783783354193244602245667494060297286576111520557788148998651533031656977943140103988913210363496217860307321224063330462179811311317244954629387058213003771179545389169280086555470330448874728183455020118025458922950502052454847631473420050691170881532397755183114742832156122909958148231863112349891035225221448923240711628423934903991958887602233291223628944678219885745509274821178803572532515547613347375961768811017941102287092196895248768473836786194386992596987211036814404823987040219131841791883663596895901759477299231430759014422454295176761301185628832311847878616157596862639033965157536952420859697412537777370798102425132929289861676984963848425165282463053267935897901864745129450847465257542146290973732790208212563674065594616080535547620536613642174695754340257018223152339614609961172337444579728696495393801957145434261205040921500884561568037297102828215851149534075360429259101108616896193151822616896429941107810122669830345397792517678626445283868017226507865621964975409551048652490667059941600156586471141194836301123846620894474631232799192668438148629916265724863971290010841868819230607570375815576727353613773265307985626562740306340978159924637807866347635780014326358974329656830919374084186474250638828349191916393330078393496019716477702543407806621642308732200231478609728181848656263047431838111842536085060904954241981752212121898802866876658755149887943732834203130161003911689443011821832391819550314059524343980953211072454265812303538961752462382209149386805372899050992288595780933341636522693247861842609273404696317184993241914741890361941003983915923242311243451381361399185396138892387253992431487189615819389087082244839671601653441377924592452017460770290724120391097641887364536256686543616409847902540408517903295127016014719113463958557503963472290459214917711839355171294821139577506665217609230402988773303523167817652496347279734443590458291746107158494475816517216085866327660576410300448385730925282506253640622502816209237775159003917853790796363212688970542149853670376897476639122604589499036727795989887909585108573832089134822362234701967035623511927142050214973084793697603891282310696857120885697468978550657765085556081359240162927857780278620437949506305970197967245405830027232272377702216237970885741216096397331085565768459500023121058115156585139947315862775281459998769444306431355776733923029225705805669572000826846763698346967093426842772486437961752366701167372153272966049952419697262887544665238782729817320021009121061181968885014254716161922634760431046662647552101872610020865269319828287745460306004725951810732413383118170399723463952055318416355606086200438053551818195176943693045243816497761163479003748954563293786550771958014932301356923775833143609520761081628952236969985164317801610853756720194977194641991559743254670335322024705251010505953629849361862371464269850710724191234838831154793390146818101062649582084743431614473530955168047203795945979920082831558671123019553410098861153939751621981069162629315335062632125790995656775433744847318716071495490065993343639725563520675313188820987236454585769201893199034567481702527193538387181082050177071857427195406738103012239740863944869036823378055013066894918731237073441769581634692796066877406845249714833821913411762346137941312896766670290233052930143881375632770067461217466212000447086398762634115874398239767690758807523181494635187351119526423337626998654308108610371715027738329402850355522995325496942033245299674489796816098116708917589235546704936380483504748317397361991608240189294668093214008001091221797691327882408941267860487185744821308650070272583360891363639086012389061744326117918128889812773686213576468743921739497051626266456676100327101759624810481716250281974155646174167526055320301107364139686886649619724061793900799742998192870171734718189049235286996793616981516567121109392498836645672038055293501194636396804826089094152249521320777155383669181272662923949282697068231924506318511862632816596336837398731431677498966266206317952907491852188633946237585008543669794327258849051337583034139249000462540516419169852553862642933194291239754476871374657727917732536926726072132012906389199694881097929645322814707480021380684611796937342360361562570527584943384889739062654253045426721581154001606923676665943136276822252992378907303891171615856440589435958168785660964403732277026026189722848744104576096342952272334158809726957513878369698536800715669934024598740325947389752751726542832742037185239296676811248543649500434370846891723362259832705696893183666993473826919410900372489289635236249385208163846782185117572827130637494382832125917496897649812490257756689629416612971581131643242898917485108808313890269414622517399774506338068113642358793937108197774337072162150585263058728944684297131300149935896877285309002733021387743054030574065176161689409786989172996881821990429224942943055522623104775974048703132372962757012766933154462232370247029631840066198279423690925146835651348537465087283156380367559067016088648041270796309883535039632138472793482522562871586470257957367440937105361015365397495834785773439326785757189194874404645229740259620775646364381594918448533932151597175311834016519500901618462080964860114037516100600650253935628379833516062239803196813427944305254436189161197455131779851216492961014092581830640054320893965640234419099342668916218989530076931777546927943875735732049604086869000084724154367105790671137383228382555290897896542907370961072720381440669252128147395785748590048802841741353058723564209569326372778263540261604094084832930669252971646920372140509870061093293023468790048676780440537489511363096881913001461532038134782347380667434484050873575692878631383152437602707001841253670906724585567585782495500928806878487094972037310814112797457016462786844540165484027379952839402010688611400889080712909406916732632137130001913455245581181475582873172275711396981123059603480934463275677234002198807561218338278334453360825033424118490587478605660031057080281494764052374118509680433850465320403211599173419038967848899042067175829754286733005344030785187040337564710486987967496331352977978850186671676256077390530534549062749212074406039656239314269530922046141793998963416147124323553991766462484469450211035841546815624818050240953050549405521773043594851381672811197964063519671687024031236691942700881905465719153648392272587682978256737477132561681024546936452316958304394196554990914362977249636686740295937885948788788854989573882449900925543172562420919539961897098780560013953705603604260845413748291148384392096068882781877647227507180613807085568229659279367801254251642105636153744141185752970264953456623505731373510469325810160448227281782806502142629191027392595693583176143800773802415364269947759270205007308858433871245517230990760489917530648868966787660405312043239916490055264802321489736198239534745316965568159845173646419804831911178561945860813447035715678043031768546064115082139936257215397897981630033012417921116063469831109548995406648101138544199313014712520341671759135229635348410662278630741618972056214113698857780523605008853791101465495199729645555994664750565720854412894786520143497000472896081431058422125488732923191152257182249424762038624627800429212258149055338617792758848255606387418310017896798273717389904990831730570415960312890921096042237220427540009691192156685717940653024088167605225766246080470471627964757121877887025154195509639897211466843456333980339153832800227176071176888943770711328844551338733774001379121983638541766108729639802979563795267421340749632817387587521420100473198160143064066762632831937223924388120733437439687653587038855708105474619592796239244062494652478108713792347180732506610529962529542249525751551847563278928875990094073692199020242048589738856147693739810977511631341124087221323332847664897711573358521582555436924501598180077968368947399315909087508476026366865599202819193750276697249919996672112364572709758490724774361767933096315139221398845312985825134258113957138329196356879961937431017566568251364321000854106525672770931179127320576120386682157570388712506077520624752233822569843007985232097444025857582364430169366238220350964698577593291582818511847052530067902754696546590844254919498706029760614469954584931404488488191494721836226465876655925073002826002526362946576148485708655317452549972338515992144209903793941380741878332933871284721526112390503115374112674853867504267937017297832208905282112964671478810378039089509331021183270950170664154319612399935875482122310967397604885855011017535692320346197003971966968021950361913422705373236416788817922138568214410365080407767073714110606718359510269933222786967701583437221808892447666259043889679739489300893467801006992416759454210221960619949863591677682928020993828668781681043463459257847057538353239809455742924404486781625037763643017187438413089788801023446854125034895489828265376323707333540665842800962906351226919614370482174699914630325086157351825423457872228990584767969240044976575281686947316408568953704418996662798113845235435485346939446881367128614503190462907301457809709615025260352770556758609279899395299123554270072506374814670786630974313978374843456483226174976311767994488746848260470868793116687851154929935263027995647691163586297361661597711341410140134342985769425677239755075102848970705389363816219472772398549414492221787497695760289367605136173113517439610554191266153429549848165216726860909878920727469561706396033900233124728453219281551544665017644863174208898233772507791178770400704575311322576950800868247429470560109735476843236568166521427155312086947787343968973161457059620046938870034273717627245504332085532886428470761967384547621894638848285962814695232184028260769942423021312815289412026908673980049902616010955883851394108030624232042517367866488409976028366093135349023193835956987789345011853340998972975800097207809037812838057865728777680912008983800470954915687605734164857819171719209569907966610418905274813334819559138573085845260096547865004538123863971547333001171678366253193804636540894689547776166159426838742821278160294098976287820965505451146267289217370415743753378811864581046367584738480696919855149069861784424602790299856769657910936456011804237122034019620855221402689547559743542621930102541769301693406420224818952801258835655777309182662959619602182766511894445668278493617300689268791714109663740907258371394625661386553646973939427719371260945982640882325182659391643234830481792336840310969826716975714547723305766172120764179317483374217272288520470159981471255940848260025373110128747462126320949234931183290906167803864918384839976746298182541706400220764947386830105812315038822878318874196784518013638058242549908547938305432526859764727682017999028331419654799108416872166545055132096898609693949500738535379414127461709265880730736804368437998118977454911963779072969226347912150531932035040766222447660922358253983683642876431197470238255579107176255948242469484585540950187299079698060483243741115523797289821454778524505472067463849291869151508013177897891985434921798880777918301664229495500931302216563138378625623415021698048484883426520563766926029275990472155197792831950306048624437629778189708778789619553601174200746113294867641885902576916155754479933164775160713850795469871652037794611961618658020453998715750691092950214137786439537968938974617071026927283816884986556327719630340462279448817081686372565195468857378244987189860055196584050733454596044872711340467167546337188181612839522636695203049053379755208026827581984647293693119448338988844037344616057653706042667631190513389621350210260458264732411693326831193372190995847745807932911917715270967761581042686222151865659562310135524098492813158337825591393494233591465053497022648762025074217418086469047399945513152480088291280529620727892434087348535841609848243699342176447363111482586161510056711156383389185419175531210421014807550940842641221736552851162126579038608009763634742232280987012438100112340855957906186358341050191536540273463795066313703742012239579303472684650130609590140039113858156006903829910910146034697037095366804375419889659316303029670959882181459171172827115353091230042023186214096726061826687758417155379952632779263316326815416265447197383014559180444599493435727929187150427995744631286288324116781748739628605606093720904577320999403039967763045369323634161055794035141348958124908619949739345711683167073892975627105408121877809287909734407466938014543349775714127233616372018765815288182033022763132641321770369023411844777333425353713720502130903042210835061453196669459653419320129568755569809101501650142086974907409372346798906756292182423743487859065398446422326234488449037705945702750341981433600993080815820727780313880806797030635282222889055273910908822821065166718854109140132400378944307184183608523324927738384329300169449322445902571832686900880121900648192081772356718145582792543797950813955904144459749073675442736676721399104803770289913012429548860713026791342442431621406151114743747141743959374196760398162601844866999242071600667081292312503078440189418537419547978752973443140730975142045542983191954643658962301140723794745549211168234451515513498080134886339771438370850772368526821454607708072210947327715859405362048356809463075977272957059584729440168656914519615189946519264077582011168059866868107816967533588302655895267321937334477311867373417237552026564870299275914271003976031910811114911930624168381257733638705035844363911620322412212613530811140773253659106722089227551093741495149986048065973706652057418232120156731184065615246907891836070266673525134554960182696556718770601593726833945570537308994793209163321559877667494520051121097238755155300805189641500899306700216695180252819737926920824783752207651870471147231751154479320155994287315084697978654363664602813844970016951338335823049273978207919661019382093054721970641487910025843172972608079318316545330304677636227928212797907356898989740822374715006072822369738841025049180998547682682222292674354319330987444690641259831417925596411874708573418559456535852904111527537419856441433998060040784918932001492078900249956102451686664353602522803743345577699564583499499962531381675833253394514636463995361363810433645484897398229141566082200106726043317685811206333257815265136261755899744609475763449409703404631113853849524241521006079784548749274239381596283052219931340035753808536852727112727738959112570980405451733540136894072643682945031436067293315063819370416014389589338121847502086826179291037256806236206747912388775369714336980817781610501837235940746673939911493930026538071821637328237522203618695140404180301463723844740434762737038264795856285958730985326526151936852610146920809274749376154656841857037038337174647549252029095939058783169383863187792853013725658355039683097922272551273197727658973040813154076231678698634971160782078338279946687005999509713895242715450730796465583060406210398448750280596194070931393835178038091328289882561010290762973935116762233064929423737104839051476096636525338157449037243712507614695941956348655547726598830786690695322375508677318022482216832446682093531265425653941625409849441977912888926219624786315705380312971777704509237579715092487410370327757389782426767862537001527821442987129488255891906430470890077096883769358254332517103949365499458568850552333798039214678610994571997430566247184654408009596612397007070898710125819731265995951778011535058115095730993082058818860085617959455163237154939610649041944677788438770614583369500161439695331518819715361090840561123683547768138179535002539337460165751788911546281583660217660848148603881737477743657559376485963095236331679619684190693575844465677545548175366065730573427278573701107816477180432726462857428543559225304420011133482080717696068051355716913370937587501720957885487381873968682997059406022654875969308087161955521725967796533233517856075897239005651043750141932395849112727898748560495301252678920718768627465004455487523408989434758192127657208171172238950746644552985822444599817711409244014599148542947044251173746378589732215705448396380211058547809596039273928312331631496235731199549253271275630178682997537983077254838909503433111618206022164808488242619818205283238651453404348843853924847000236250559970941137254319353450045775240371142188666581578524456686528549141917056962111851476776673025265371056319074547350806332332754446462218387924970003294727406875621286742278801112888450675738743929012604589081257248604161178001952688286732568200216706127649884078194775208198970887908650304059724618278918508730456397097501089916784852881898356372168857243873216049885870132327146163209589498741997115332761796535755830662665864457773061327734542688968577319349356221926427216996162545040887635170957765197389779985079721534109453811274007085694979601364458423489274189038815016169621203027234242305325982051917282305235172883373614848987220303483334449178219053155154136526658190864550501551896551471675629783000040111811130981294385501629253444087591194241351146892757622194580871620923114714290929354302694903159970836292501626498720658205275111737754535240411451190378556028287336825565510059015859367054910673626955589482884031402739575424987372784887015329788535035834384388588898641981961657956945523508716234749505091383092735630162271583190424315365242147327514737179555361727132853245301850667606552683798489762530995022722126367563035603664753762327098533502148849951132490919696453223110135984650925405949707653193367241628278170488186272216349382927087143423419675682128212465181881098239806057682121429347959305975948559309740288389077698764893306571103222418075777568740961580469793524170776269379510103529627560110959669489465954751254450135791882262626124782981559748399904852043943420421542272941767196276819987058429829742547523169647841110532069202280947212179401088990423347283468166419221308604190700867477031338343128433719469890581659459899828514962683898849015143214338106232631840247284821572703355445797301643734625369472929025706928145534984320440456812971089233276122664498305314598104773188422429966035175981426028786134998153635195882500727558516790090357486574439606325109441765316359012479714165605947502986980962449943329100842143713171760391186044093006265337613522268641794117653579587363657704680013834285662495366379722408883149995457774835697407637445697991364103300833731955114696456754847731493203416535293146509719976503831668183002565742737909513107339332064271861431710307360759158285304028338061485926618643231038931766319759857787919591509030921849471874711297650017583493771681682314693338329142602052524121696884319539134713900948035293904149190697652718248529324916577869941598116457085455519288353616461403435457571602693361449342450206243189874487843830737116130896246727820905037363413557069168987854024798650394860067655216470275391148938789238542493605101151142151882360857067279508794227609055577090156834212193603200359917816872414382838565073888783814017885069002154426476891313708462979186763876097862507171560513874466214173716509234198707863329001354210709465197879649883715712780991443864405895792684675918487662816276087626657848712119342425064703697990081737384117614588195149668910549018582266093491611668558105011463456715775836142609244548102331371300739260008192030806737532916924263874844039552121180354448009516123600053997133847860659495684273263144505206238592258487498361376992710876962150843070475796224346903256798483115493567048710481278809409919919162342074442596983255553116362506048144319879182992814342001513213168709666945586571213785618137851990123225128366825771678811225610094294038288462953063193429808201515929622882035379345915297313295411846381350999566583502867065195954783341337150297232355048440591448674165732152555803519538841381580147809056668107683439981030525132531661019833678383457368522259175733496167570896596329651349889162205228324117003393385970997312948020351138914696311232619526175345192057030580603375043082950577910950973162548452556402054170112059639269853000155414137304042382225311392890417034488865180577924785781021086949129407753994782882448614904258099420793435800292864101357707337179794291202019955819703020301431944407992220043210252445022919766049586706993871501563733279647082316745727093274570914366343930527738755301411798699751886074205591652352482696339264235162982498828242606736781847856390299142326142914312090777385164441938760178620608351327777771493597841412134490642953449152710882721374626888074986644164356802807285962178319296607447024935068105869974475906288548066891541238907033931130251943367614262078010256478280947093939329867636181752064916279454774710245924094160462603212462193272166117143930161773027650766442450195091141819484156574178282667682862012570692881441516415590934620904827953651078056846283204798365341022001231378307733764876549797813695843108932294059855059882471705769325505171898330084219328120658063058036052688508049683749872691117112184976352045719119198280395167359233279521196803306509294369573591054461872547089159756520405173119444136711309396096719005836704974392880406421489333905033119220044598759942615768760401450223384411207968807188756880574722398236670122343772717879237469865656854033400963064636625929499577424322381086797418092232025178644211541243808381064428075364474201559147878671478217152669071112405967144177755622876872831307427350237141074701923072274919473293423476147575078985295142340635981537063583500814280297587689581680289018542627514681893799269785449858481902033136778028970382307096033040046683140442450617490517951015975956087881518604506421515561410429241451541433799680848858098038816441388285520386386662443759677534347704621164911801529052433740158185938184860015314360334434376681842657577654701134744159871400622151021733047930807486405178908387714678894296310582765657957889230488162141955286158730360081673514450349818091747207823018966477592808667615991226041344922174627758349612475219400751375634605724193362304230055279891882001846787463526005899886407564826024015922866029488632582096504722060219112730237475138956302674044376765983371921076009132727887152068064003776510842070931296123443026672220669563150889107721304964375069107476399856996720131857473124099744368676806220767858934144994390203288270711615806188076626506462483510261524264177421563395110572539517112292140714624089044366167979346128360643994837908088520545716745896492957131082837513688234755333828790777563566790826353500594657438480508232822674556619737445844996850548504003809701636987464920176539868129639506767014537737562209137541397641166833785316727919906962256726603124250467201611116324410145378080726821838637391672731263614653040451910588598898957769241693760214173961632665772082417006652038983321704899966748870402462029058238529849408627756586735768041863201547289272873215177417345101521707383331186988780748640278790251928430664916586470306772165693703320808073910425121778520418067206518997078415143922809746366461042839214067556486625735484089747636702464153449060123249182277525819542979465376780444427033587406014567391390551765350865902357681893409142130003464905152449300586892824218168589848412998167801263897590304237777281148161972839297600636174122420361207186684409224638262529296598702659541441107938882636082082609632533722972689766432223063770627214502975762326737106357272414499456095044247802315262984142770598815238999615908130801408139907961763451230310581876570424886679747432068738285837023860413241138811884983216291777955372021894876922276795078889842980909183670027456459230846550903357061478713036683708277694827678983295847167791977793190064125629527565527419524190196545336557114085153714805313978581916449343344233868761567433753395653174172163084128614655164772510952720646498938144439531337013112920504575362835813979077823111264447591767877971925306152193235089376292753355530541050026450891977266989195448847205288405191399390543417712851259402545585206000459919487005676507036088506242483189236009347798280325531833736516592986792391510599407200395415415929563849576737838159532277581832588694788660468124554329087771533044429518052872984136608792646456198849669860084748542851025721163422283459157738212965277192895132180200821660997928074788895777366707488803974310423319810765956048200248329449432952255272920039171849956855397407738737653985714383224023216097400689202952351522922463060768891571968591314220497804564726625430060509997937988461890300169433481685021750483920989350817769876918587927998908246416804935837229016975105279139292506835862476112516721133061210553679195660474917612454132756973978860203212767532484130245329089694871098064682717694640481235116807613226459975703285233451371198404325249291095960447113766158074103335256668938346220247242616869675859847915376241891229546962895167053414161246311262411287197967625719034317194911493886359385478266879994403299053367790052409037683005094214539634938356271819681113822065209072237414920583227974229119227272091476857930929204910122978515781805143149119591269002065003594848145974009846622657005538443059331783240564038170076173691868438698336446346608192450002180469721678329846151307180670502654894996858904925516224562326614695466585998327415392680244885914308805870793146589901894629793848170536672344245146463440466856687134998903601120209073765714661324159278604933273196804720928388831728916554065371922251564471024364358105847791891793659506210023581675294710151207757075510599271666177756409431389134254715937685688628711804471805984190172327836772652140970928677564320025294772976059434543126501277462730301380078384008003935678598823044445159157877135568663369596407804309996062515545534447398999546358930975481905672062662948492751794784918465321807888920210037510194346566992392049095734619679747305187777124053329072834811837277240902248360718436805538152341758914021338923010238077386876096512405947511521122776016838515891590547197355384435547237136245615692430961657286962382930973127994843286854706682277309263118662445240823120950512288791421764562234573095645439041334151730546397929021054856084759152650786970013882526940838164889451159319532290988376241005660338282945040850721192441658161661800969524750361154362948072871589539707182227701838515876194033163570531581880453083737859909214147712316817903969486834881180691841635704708809396701331480489160770459708804707392913586778656641415716007138164353497605477423009225053766275572580026122559649964817117649259028685338067916696978139628441236165811490593712576178751248397704203098877541431825908800054414940931198476991991261703182665730508856299934753999127574283955033545749793952328157694406174074415729967216605009477344719540699631590781250444889096047294073815197392365589290383517490811520596026074872400915959612220329676148987659927428388152241723342345540219987995652099294801168417038746718997190569933380215365955962138608048530614868866575767889426588710147697714880724721491959289674480897934641851135655683822441815086158389758519616370667145290341610841825506180336723421317695637234079631489150048567945797031540823576426364305530158730700451644053942731458206811993385648091714363088960592195539098956020343288483806306389029836982955070565966565806504936703792860100579051204176303543823164627562140030615037148031681891765771757313286866388863899193183386619942343542098597231301539806191804883309573505391755354693435768286352545126934703405987502791477134803094326569097882469513532428866325891653274049875864001121421456625507292644718254034944442053229589996174581404120139432033837485271813854307633752610131921407673538642182574405758952756382083788529891272483035676140407354096311943606106656695546960569693614143410500877396994683466780060188585850449685699434428934276285231731591236510863885092856454769719762967650272253284103099081449410981953991111404387902594442744105165948197502188625153600906832463249500405698950297051364760015967507783024912886709315671081522159457285746043621065559786078280699076200367892293163662125365991177490185107627388159138232320166528778437554913448953519090723932149880701862955495725899870297847937030279629298976528556598705129049292681417916615792227824030961258983106257294012451579058405079164902343760966279154063288846744470599854097037539146573399054309266279055446403687574951397841557440338275913527322461777609140099627674367822969582864423622725115226012966040885319856553304617428832220299906729589640712964092764347927257670560338271446441396025173339892136957681280799810277143725650127078377848304114044987500603727679752465474245873303711150061372277317719936434774822054838381081117863715025161942911078256899707642894517037955240536824660635522332445324970714371650745860510861698818760615570375130023530176772711693410051436423939168870431736745309255921167721607856661802253422369144850924697277507395294037813106563971006172096507192225713917438106075820734023984174852939862312192962604292857391648292735928313889932703427151742395260498975564142686344152641637097227012446539660731320400363126815084920715400632146275744716048403308207119438942026618071639379365619133544578543064140799752140719508361886350561535656443492338324221164214928919834194220312600571995813397689744895607611717642834321357869778914061803858993613971503905182739633958323605975186135048172249558400955618511156504268132899498768457629180168023707720491192658572994333683338626229171091787239798380521769454135989648322458629181619841743090966533274972042459195478519039015560759824793151500687786203434222972718764498620819307490620293017007349052422855330488449063381523548126331778382543532440053959107082743084471269300882519481359102546070153794729644616308410361617000546973039482638337518064088438697414115206054413217721066446715608039116780662531329148831733900850517503690519926611315806725640818681049569760550626919007828019447157852575646805427669539453271861926049822349459240829087300035893909464647769032459961470350114906366037700780001599064921573824192149360727834350309680648756281459534732721529167873517917414813905017304472308753402576673009438338856907910796136527398741352523831503212977489872166315846935153836639036506579693978846943967929163694503739597229234154662467579049355135319350089774532552643840662324830095875333727435576823818112235041258070180519061187605929190786176545866431149734703507089055676093266659389259602794947781444346545830830486151186958559812267136437947182579769914452208272142887280606557836709510153224819063806966728347641962572240765778461852578824625964254305887234272037339490297416135187093341209575004327573982959325499033473637848988983088240734769517712981622682630625120333076407142249779776856267415679926964066301614910207162110079247034798243504938858660779966244349204286948367387645416745194863622559325820546770358619321979236074818146046850126823795832484274787503878918835420302572547923609302902572417242185709088217250250135710556583453091760185638282882365795613066804879982094430576039784627814470031659535072307193058392619498945536114118450971265660284839288262756843045469615708922591678437660525769378324898238562723438797459215333339547784135810735944251885709297033260038747276894141779336385073514247478000396970109459124070189497820069318844005228655198911139551005163504030567208132777433051828433202049562958934083999140821861915252649947950448587242809052200468313761101198302747619152470100613921795082133673909892856002452489152272824752799514701845964754151267351992549548802421171834999542783076129267993856118664616755194155964544203241116028383086492336908025496254959866135047536365652568969175262409005282865931783607655737632952914730525405439394968593789304205609583893618967308525282125026058350001827115374308889126069838548336391526393074682375612673593575479199456217043843642936277521085327089686222946552236982433734227493927138472386042193893960109091579830952641856541307631177072176308970006630499401750087277708845621383564047799218853825295637151272161522853538481534431201418369877881760736123137077665241697598873285256631465313186815632475413925742718394440798259534629273828494806766930128225255687491092225495908318513566423493143205557251994106996370093982134772590619102927316010570605415903921223183260194055638869342641177170126194356441612923414365662640139711053534110706095828100132008177885970239428042695940820273299343323155087084916285702131059811784135312862136665944154938584544159441235329181424950069214011003496845719235543699536653022726196238281081915805234658827278094803576764356522309539302837860411320667725542561355540916281359096394885166485910270970048152601032536779064771463795277436323426738627921260022048900496005094769760803291595566389509146935882415406875200077827483083922913418894140286348489272302254671104418499773945736629846407304611498156138223254857105771237010546730361104924235952795982551350479520871107153352801959389726837376567915285109399998401089465981079963013631054296703147700562197758156550803992085562843103804636850048246586260625114318857026745587838411404117722838336650176814732046434024775769351586675627221989305397059890263082288878010161092125384198155564138984502325043440607872087230759915469235806653774706755992153999624582741649305080204730851644309060023909255037569700989330376706395916615735000817257857180436635841114338746381674554298135292112237440476638565751856281156806905241469094027657908024820243409043892682397816610883371725386857678663195610268464348123414409055542799442534481019996232659325716431386856502116911642649171887476399338494508113492236848642216470085414855872598467736154633888510655116687650028111098555869090086940133966309097374119634592756778603591770460066504685134354121531330423272360642904652641795423630953377359175312617771025719379350005433904130992907893161776981886531895493845002781356022968752303140761708765536894446821890159728987301895451083575400167366140023760967252823869676016240241685167905974099483860878950686810758771042079929618947665677763504277658538273606545240346470010342167162917963142409914537818380104058601673887548931467086252331680130725007358815458531438332105380432947041337213949791723331407896071135955202110111724064105379046971116861448103858507198366200419354090496626452900446675186301437349368635370409084231211142811739705526572695601064577514045477330126625540976876372796769746699380687946509383750969319320665086045065591315673572737731596394751744593330287372387183103771915691239978587672918645732984169230311586076441914602521172823351289087117382297594157509121096600530563334298464217366871000021494652804569067894647533330884412238855536255847653608056941598211098718753215607036561521814631730579196951136434861562897369161471509678525920941134253578605825448272207263830631593578478992489976005813155232037492677884463955953198202263550747193670066695620242936643354967579522665937345914323769973274961138839918216599708644365915522214201302482006002834431070403655820523427783059762159974715682157435185640232577916652879370035129221008731053900500858565339678884757764579535472051025200032862798531498221223248688541444179145994021463921775374560643635200781991221052201112628451170668531981641655738823980546734641054808079884014401770376489982337038386412914553350923489511114901009048350338592488900354100450808728412092621904241142077969643065838870931325494165428769885175100217625912220051719512759816004972705566612382815496862420426594275148291693636299274176177132000957210303419925183226347392473954160409322722485117761964457558196138144503351636249171135396373949425734930387776393943130347960765322276506818460628672762637182952460313709503914585565316958283097470019577348767791471880400733892674820889463663377517760955489630231156947190779046476222352790149692460576159779395810378209355953979985922023732693849755709070675069646296628252440248036461415393986527373359009748027044389618755103205501724198653328498454538253471946734855954550725931068486090931666391646458093346051156381114915124251540753373969002317514645280219118209589401763608349683171274560248465213938806826607192241580185892093089765842287508397313026970595395668228426414512499292596806360714865379321098614063910698984651893256226772340271731216985343629518024986890768971952548395723557030818361181569394338537466487372986097348935686291064147872039468191163113431499942375906553198269399841173088890858307062105414902503692926848825170560512472604471842700120743563582170320204747968325825797242545055220775774405420150282302435305998323796282268979574267296186965724648362639957658887504410947619931514490760209897293878013077283822210587615652451717662248648675950048533068812610234339635857076419844063250830437853936477971183470533249830733202421488936684397817197487942307625484061688332065855142126800300229597521954340989572897990068557023449680518735600303996503994254069128037119609275754118258092492099854620547861523768126167368641591559037075635326957897910199069972071823590528278444124655769228582237470634868406302383300169242119873358284424948282564565595709587937757373369641836010070175792271043774856721054972615845212329750919177659607891880598306271589394547978549561042341386251271848010747745216947415922481073976869120725560431630911889760020223382365875224188739566805103619148332844929364847716050792518032317749922313153942300787547851194103206997386354687078680755307590856347638791797945386563791946549842185010678070658859383203751665128671798766722269611844058132904745803737113230348490161855398625337270931616422647574369874124416622719039588708234974911554996993911540827926794010464768844714045952643443793561677558903954418242418006337399041413038987799393541688992157241167865532574098365820044271174252129675230089368261085477729561643548547043947485854293727943712134963306099481021750164488398439561805173985354816300027526076533845176678196938574989193785996736563656325867283130232067703759070644811246924892281463357649180635517314948949797305426492537298172595494869439229270870874130001513400520336135394658291239374327508162086992759419654047266032360207972410530771645865291399866065653030088785276956429683567463007283240465902460531996250148899704141297261105473388177034313725315021578226966322582103113776235788671113104811453013167546765597837365269232547777539070713752034266511318394088273929418203101507620276217017334256743393091916673841969671630445014749448781065133580627926024776853186226063468140975554411640592231806901656607666675474003638885958754148202201040233390537747105540957606698983090268837066643215617992473432967779042795985768795661867514229676121413616830255759186162332504261018707573125833390579922195772871039513973557044379887439345609100875675995091007288695392107406980422097743297103280576037142748763989050748275788960770536121738098858106888038149767249398430336401964929594252383846589899235187829645648697938346340325776409657229199795169134339751091912678208306746254827942015173117625807222560729900479701223970091245972718227670327791642196978856084261050529521059263346689611896985459876846870775801254234344919753332743787098813862335664883909941808072857286437188416115573631547711590199603425598252957147083706201457115921036385105670167259102559272230237813536516035129377211021454454603066762741617764900999838986422647727143165806367921370767630428390396778785022787017013023541102047870632411243647627809870486552213614471146605121701019507535588882193919050679684005834853164298895966964682153308911441040000948039579441203033010276689389531684256244622953015114730046042230341482454110335044613339462054064413289159293634477112041546016916489705989510456086985970199073889955346496645792065070889468017077020867278730386849896949875007944345269450560698554602402912312700577941923551474101073920724413959999709892673086025671916191643444730267198434280411289801070946459817310693466646766358476050752378227164485528924042460515381620936750216021879771104645544670780568052768407487623259345576660615436792797219645709750915501129903575752413144131344014052466102417613172630205273891884615181060007637189904775401785891514023386113670887497751421021236683945361920189444733597169353032361986200064413055367987845569808255873327871896868292186367430846697249140990704721578965583086119039830664484926130731030938741517829216245806814613858008393332636861443628875860291317201152948381409480785595654859346745062582948942333144658294087203453792142569155201138769720505526044198677324538206499708955898223517347640921897516301720762889678825068701863698324146971116905334749376258571268760434519585802228805855981138386348223997894101186906270773923643099359675443877063035924994680380468940245971745645435561853396695647229926194961465929736005941632012936251421733153385031817224755239131146940537727626049087438471897945355135739722278173022734338285431163988132047682429836476680111414023181974712312622908480120615056919434747162931843009724883783496267252693056732391669711750255384784687057590663840688768321230367523965967977241749275311261827623507499461130320653293057870049891382369583792802665365168282471359125869557712755833725921033622876141643437674720893700719003182388663278253806234554156977684760536012577829854862558801353385133022071945200876650310242157147339252700327723442198344984055002816523586295042416154944080870458289272060152164845522454563421195187458974577229648193454674566647678054277814293303247116930710018013845462220127000118624808716448868038433313922232894404439498416965842054509873772045955541862317479342199889707153212023792916237148280503036816995377792387002671576061310144391763568178779702653091546306984835604624478920772377754297728436258578748563265042037388844164494524900612101856740229115361131072210685184375848602608366837900713655544049132237212435458921995967963298459244312924576820796367759960481971568979234792685391679636685705647699926492215125373968906087643274155074823191557265159624589931312653066994271282209435096859457314714957238570447677231119408475578005700084168176543032689504153301325318256947269145118476698703006250417379035321633172192475216468173831143099752775116551182391957485346510868042218788373767758381793904043394799412146078398797092021081232276648045004766370263936925657421223962972909794463549638674918992238711289008319140166504299354290683162629394452438365859225564023782807833922773487953021495098015590901122917192571078657907357709006437719146813184891637744461020613103225874670787749255624445723737905453646195315254288440428664060341172966021142594261017512960701916974129554131982440747742350186065386531872993289749139956917469096479876017597524315389863097792761298914928851584439889955291304228066384336520606167884608179341942357175151099027691268341439914814431744353030380987935647748909607288135043506108367251517466624446156029191003391385847383955726434622218283576885952701978706794170881845907239276785099964254523253338995114696918100283168177132932662334317768858771490521225506624073648081755854659951988603648611216958361293101146959623244089566280680922379127348141412038508677682839798863845494802714004805349592991406412483698933581060315614513521368558266346369001294726333630932075874533017858233981146394482691279865443044899209646635758038958303783168330179995178917100159941823729514143994800956773884165716916330951967584439859001192387487874254775479842653213852255199430155367637722108601854184917150186314939471707805984385593367997696754928228847939426660892429143947280527348877805099592795653892550574131242931173643664553837756859501937097703943818176502601773786628609032695348348225478417766484552127666069431584511435869879307803071495029612089558505995612438978223464772659767244943561235265867304523917749157357441863685629278396323861226792456343762461541351927320298011891230036834786807226576224074872300571589924967495786349417301187514732661930105012436138160213098750831880065329865358597632083336971199442145356763168876194562914570890620003867489302828214569473744266061358083065810136468751003311874106869031031218729939092833807462047899629244803594205510603509889594192099557224221926204175476876620072857519410982447196439940241487414382799913041480562876256410075980126332191362436100735295434402107706913206947623379147958675087532173380481591901067790450214553984012193288855233442294958586880893740155492908332650083886019273290837825784256665003802020767251244567565862374973682108088069336284601458366550097464046919066035671899127291320984998897594543293775855034712881805512733594464434522553950872281827262138339982500027041802486610674327802556558852677748644564376848778195911041449531107451310470092335568442831714132029360151748403911244624275048482672817402328349395428175187426192134346704668514347098226484862945583094879731454494227675695098230579935859950874948393914900948189758787845084606484471085353136215112417797707649775461442062675559318946520368671371668395520328468915388010933408478499719388502353754394190634951860471254488445132291104635810338473489184495179951407452249414669849257810507398885095029432034826842302517319525920597897429652553544987158779104179688196080557974284132928068705591789453434590891082005823829792948226747814154399108860725733803758862150641543141848253046830560174066928881682295578960439885193674877637317963553912169803403806169975007860434797713920571430865937014850410953850760974802495314082120630611365371535398692832692408983982939706005610394116123512359291495311511157326798463024543732902344134500809558940696151698584444636924954144506052804022952639359752063331273998988683698345996390446604983913977833663950784477517175031057785983996030784591823027774817606021838309960340024070481301545215046401259567205358699938494528354669550233047349874018287659460232625470467203798762709298964875449411089335598986604612382077657072465409574645738103719920077955209920049344786415441938824589581966349123265250315721672650632038921642097115623235880461116829383259383513474991736103266170880895870847867064187377736638025179843408678447329796411607749681605556593874895074821707403828527982138322884730464382273018152951166691469210061853040321022354870097203579705903615742020811845295576108771154199190256492459256065989737394613549597947599444705874071536209121038055611279792425001515468174383859257416966629207232332945904422106487150502692583564625719736118234307071982441545896491523356957919578733661349528379039964567484076902865422581289405509995584286038201809883003238903354149387199973356287114679483603671125815106880002226961169131820275032980055374977978277736845613584334855024748464873839346619485936816754811502082390079854108306030910948207307798901045296663459238293022444946535610031500878754544890304404477085831754359486399806848280042850499825696368808803324579087373580400719486124959844534574038808027951847772859970046488278654298039063077729540800554419181642675598958944479455105070036153042080348862197568383637144025245554464182624182844647266662937746348236941403617074352107646750098682888876392087677374487128911040087038441577545320008808633620896887435242217710065589792581302607675141084214572073553641713142357807502342294165237907736847240736322087039430106883574519512581310351364602673523739424212990179178445647821581279116828647769464287199250222831072827628037511480912285595395037390343011074375169807588968406194121297919222004970465954460765707758214546730916717426309660942967852635522156316744000899327587223814402469380387326866522799045758943389391103234661861752901360511040139036096086170645228280949326349918392467467663196259481916827605083273368643789444970792704741044632122874334259183357633482258308377695654862887789520303238141571391785521089122440461636626304472831125699501012784728010487984862922556932487888760281616470971966564643350229967649050847744916149239095784073283611248526285089058920362147936107150673310121711106498833942954896501209702020098195738807414047420403439094642728914908165672540969710179053951371478405925892510316396725387237120977232494007996942598760121074032074751711845808488539874326011239035651129926811332510405897079241813486592067776169699141046359332572268695300145869513887275245702360766321118352358341255927795795588387376687484942126173247423283528927806350036777935486697297029137081531980169047714239539332194060502824662500776122473257971851698645949941202605972734664663549622676059268144210941374777435726745759748915925667827324797253228327700989830226067654070304499560374458084327958432424123287214458469024857460182644055458186415397972139143834342905819853426759280562873999392822040656293839253213696310929554533570849476808826689297394831168891301162225870480457934307650251133644058620985030122809193746009876239885634017015898630195991320760676193216788064659001072217958789694908350111414773562751509268662436108401538076208999738107663565593900035826745926240525187553632742800243299187214289702778658184462903408788322041918518405086488516217769865972716496571034111560199603434476793528081166350996977157334592785899763778066342383630696092698228786278195400291963310714807045283639777965579747938313862204353173484188090873755852774816268942253379380473901063120264541582855647752661223800455325073249426523609404438971201256213427572892880444407039212475253781146438158850422772632750485134793445450070303411661736141875153128502165814481394435967111095397170795097802500928431623052782215362511660957429897586880201190616810695407462887298886927111344644230617383231170438080266877720744622345855860414457739399954951624932493113105647110122584609578921052030338726099125191798214385880019748288304936966466412997405757711987540092066366989490453076980094216769694901361332891173209098495402583828855239766534115408734866151480314158550255118136832987429062861494874791781205373382931351884766097323748345340038401739174185935822711774261080448235893892163545676915654754975198906582314326338194489447957906114628989235170638273855445345281538934498376429787413243827756686523279294552577054592231667371722542994827559557672794518925930380723647114498884027821990575693170397453312601796218674810600510738845079168195991415855568875301473113495776800300778150116837619445564006411469369300282937835396429993544631051979288727403191938848411717119534410127191747962725867368106965188739163584261039832207759195440211526058715744512583979846000033180559116849555445333313244422840448322429758541000998751822039293506301355861743061255760037226642543879976830840665761350025415012038113977690701834516519144563425519730124541953522560953821835728808297102896694317596544343106320600175809645380403658161705812551832230372007938001624177057621221999116642242567472696666279400343370479696530547441450003630229735704074057415459132470718922944678959632361104826275441673089593018415373238198325348145948683107701791571587276536345611015936223234379656245361469644807424456553911794417658705014744905598366652753764250507669986596513529761358893947459547932877911136143007197788546024215163188032105237823047628103493338829337749610657121771864450045550587167249196847167934956176444401934560375129926830812332193626162032492886376691192368387284732684055482754146380605231609296006427640362134773806867187499112938219213793067292173552222791899573712696159844157637751955946092944853598715724702783848662019910193859611279902447959891646556006672751566198632057767712888172909184106481082072934921972095011426822158811164823848522009786057785062498870289655629058375391432514094260120596039423682501105808027092051880937558172607873465698133682047187530733601570233323016592983696168923848472946291905627827644694798880033530883372418079431406855852235883899846874968976070816538192410384678091687944425025039928666202717755660927953081405951597645009117938737146112078390443943983365712233707507020921188053179127521403643794031608270703902354752617865215544251015996264942122291133626005934195792900782634914653335336034874253679903754005953593261779532642534236390039408085862702892015901389240520321836844107907881732454974421106393862599870347648804138984613134209686803658221556371026854348363840104880191686966515790117586329879804714287579422798807513125550054689740191001480295329361303751435774473222856329015170342730428072216976200932239982740842960602718097665193575814042027270876701484604119118079990272218911444090187897113943462880029623697791388792215663186457288381172694939066933496290186353508832915164778089705687496313458794557938200743263161263992769331364480304055829448034191814041962191346502176610728691843763125951045283995653113861373608200778703957979576719987939067076940962966914968977085893366604368467106625806231116627065933582701373489205600804980398107945850005702237613258003200127013939846963267951750710186517156461568619237958328296317027439480680041543407611674502049504466614005284533428319582731905949736751273103098464029289470996617236620982006264194347573614669806070242701765871990647931346283320164731904208534026087596393140206644208845318708452851192475404580498189244085909971015489228068187915100514302859876922981085159220717191640292527046085939945110309875588537737607208182184036761395959002028176733556436549240079889753140393860610757032013832655365827156387919972248248853945185514546561980645984266256986132560713215246750335028485181653758246915477911989547614246569627822160813998569658871655060475909790786402514015537519642867325657567153286695780627151506238600243811633031639312565217196488014191787884410217712319044496261498526226561421012241211552105345895458315222085695083293435215179471409277273248599632757741772856803483244475154090773357267675739547754268408011024205436798749435709997302012598691509626603740101013286779347618256366346432214800439199446577109991768880173627014716134523241066832888812495064568200410511356590948559167287962240449733786197402931507514974461927946965637792339165910869689420028359715067825634214228242955461988651799838417835371138614995274693948455301870444120940235691370486530856018935853267573894235463808540788921726827565917945993889329884307727638268113717373467125740369494233893497074927893829310291678391002487149810858800017373167089617948535331967874915341245822967970429156099469934990832653766353759651651001201568713264093792244185900409693737805299173252581991823475335065770779212063275712279291978242072548086961624612472896578679351546802310485550874804142730224452751627009930383898447800607935950418425255576573991717148377742366837480506392753337240588272015557990991421577722450862279692825216694491264231148461999245911468572534430278667682654042754350362833338677797233536772076531380871483191598475122836547394529845130099442543050598386386275807289996650965088333709043201196463146244692957740492162678072594412055118001946126280105117853375129831768726968970941447084980091113075875132062772509901050191192544351120388532901167747850901611537379513744964766727545922236301782725927924449201422873671628577378630006225951860930540488675891490980179020455438159524267462217967694126023815218720590619980309931848510498405374164087588173535450243186587063379014888877223743340336710744542408469741205459603542114129827914151736771081427336346177852816217414429810780549616401482598824616289521165929172800249647385419841455119021879256550282107394221759320758371307945201145683643903447717465872131192192085351226749897242180553594833740516991943765821674791143537053080921243258421530219258581758783601293812168892198796599258375360000820930207649059048346122183863065963713777873732064454181112816848602723440477014097737532338551529412090842513555023011882943095763543303949809248947195575938089271187632521243819616069361108400998310113362144589791443370480467382212180092498089485311332447267502260020926791393781238044624269478315981069099990546740171166366609601610058594033728178101571830244278103513664020964796875077538507366630456060316065005835220600517213670331707827655337795922169149169643083638452727077944834928492241662570799123452217744598830899485466610717284778541890965616554545866641332962073258582620982520395678309016802082700033484573601470373946494346142406284164053376529564734751060185740398736251592775757564200031223385161762231444508154011075527386824741686510028247405170852222406723437097822103332875668102250794550645911090184809268470451575054062056574105185246341033358614032275558908485033773422766318101386058758629242271241780195378712487781185714322629862427227242870258800724026739303412002529784385190342015507183641092526420380697043430599479390716949334413021506834111102498368431680261229015466322809390100007043825323516181203941920100349398064021303422407092173732883771568051023232881569053273178083403048852109938145245831907373477830424097970935935955875905819549962857353318747509483464511010411147105114118227647804107028227535134880372595006253395300691000758306726739146307181755059948604791574895419127599126596619042251240854868948774246475802470691261201708866091547732866687638262321381726143582520965086941594431496918465960313461396159760978196455869274565195288965088291732191952080076889774090255638567860652367756831131981978324258995748296506152778203100594486244017823364105815722947462758486402299976522862264288423640375353262438034158561574541689232001269676434579636564864176133837183928917046348298319306714637617435732941913380186121082692756561021496661634783339449058534802998047620557799647173993366091115026746686359094722528125254735876065930366878271155017991600375591397072840857849568328131994220332574219532183648241980117072985261763008811790647307263264304598154845286817937675824455192749208793716950172266441820354701774191056107357114024086951592804096557623909809327781894205730608382855886598314692407772899676833407637974562876404236466203027615084983636751881197574335230340040760960713427933449685026644012093644657356543119731532988422471852618018859454375014580994631496675920865053986082925328188820268996692629057507078890702363746773522631839589957279390286159856532806175627417736452185517711317498584983225487866862276210638021189834018854488262478291396663368963135035339491783534131270239189078309679633606804110353479375822798551669159439970595889288835861390385788073071442355725939267174980370738008586884196282425270510447660367731382473720866724102907493048017779242423008535579450592285071631040672604475188909505395863167205146654832849178435196353427617719109583911836708089250850208366166119589437280117521361716858927379541581041152882619931188122035003531993302552658178162596599720839543490916762175143545889144906054769394994379394229415920027097379684467289222246577052006844207827642783645802603012930303209103916281424846002828555068658980261308586765524015176449276899768502310686727001678040938368407106038259529964569255348905882509635525732423456481951654860328906620534624344959473134657934712422950858173604431855272603864585250880338118086578510884848846532941484694955340609637335466254704418041023449792556904841691805021711793035753579815725662311192620127203012172963459204597428194915446525531830225954701110207490032143441860905765261855809364503276608154265288386102065862066731434117130466662826733850917001989103550244306940286458223279450287644155485348600660433271356331216143243622600244856497716754049970525522817298536535768526080833587741103602329440709796206890471150171676951551530598074969654081815099747800677196987204948559902048864904360914966573967948697920360428476318893177225270439620169984458322229390893384824321519718875439893444718251273361485545503186936939839680044281714284157823376764631328404378969374864745335671860928040627796261881092601882184582019076164669551160426497869771141467441564329112150325572625850987482538763625659436737404925560008086387417709563803206548866407761929324143127444258747110246746806890423031604744143037009982094100377351114861745894097906822155896055524922199335941678398530048140099688564556727810473631908042532427405494325555838336301730301957113897204592609255860207750959757077276393854226302055691137923690763929304929081361999901643895430597973776973312514752994056085659436753559970022831775407349800984981794372373730430713795422981373788893200489328984511523462649041590384231660942203965884963175770859220443558520793849765940452030192628346691492560456881888624856261058734155153881445442045121722884953436075151165465824241552913448322412898180166508025133806368470737682920921857653767964235845756360141165426868423666680739493498597508289459926301754792509106950789608209960044565225331452121023436832667082706462486994969684116659589882161668938958260769822839496712104339604443604518941162573557512697407685330712047216694694643099499234178154778830481873523018791510022808135167111624324707355132470539608696434381511415583432501985543922115057761253349996331379490131653362052165937681590714528130867679786374255274210505889465103162815062122980154894815615524084420795886070458719593729016526200032444393361179862994338204712478574381027798716217862361295390012018984732077248799906091416108802561533895102500516034086737414630049051488046596606250366526542225825047433356645221694467521741446025047189807808315501000100367463750659754861895777886998755967245939215064934588037819442951563720455337278581185891887452079599351064923031624284531594969590571724785590679973504119051458712589670520675236772133506540773337646703633133525600723142791128065399155637666795691137361299123867126304370384438596631221459075777660310874186001518736603748588363641992881777513848627123523194594399979342691123301197664452734216430323024364763747528406360062437693318405890703475653225496853760115816092459268346695040280441820998275463879124189623193374114324706966832401873154459454352506944232759208316865926134638467608721759362492678473761660655223463179130104764677901844802524345342900108623119172025961051577438974171463133801045273263534306506115168114709080424217259225925196546449073888673404170618366682244301020167507813425344541191801122540727496158820102798406280013033918299665091516476883070106434629328436262950810788332225512330028406102723604364766247110830864555955127179660673364307689001730274604915747028061171133677988703870151422072649793540858804329341540711751536286898729386925380278064263483401061165589699517796258681511642991291467593849800271568353748181957795697207824674179480083466356332042507088710694834688031590704091920603775502170526824651656056846846297049341332388393746105839607764756264486261564115000573873734672942733673014874731608839451102131019680955362483580696350562435412843420241725074624826175434648304197692148660999890628658036927126406716529849142917019850005193258199420208713372946594041902204979411812361437846309780212959496755342964062331400715139881257146171743901547449713961770346402211873280530721428640034628592484149391741183825037495008689367489021514179281823134811307880219065555419448700171649276554767229886039125761010717688084423493040181820653989291550515803062467638869016778492873196798918928235044037587116423030036510920019851344775622868883848452944229356628404125801754566527995666317887605164340838272071781138868945170004253958629544413829496518454200990977934135712418445076206237177630347431321662116333021308006513400267255023560030302509017350633590777555380907651598237571027360076677907073854176401373672877398485089076562668364581979713009952578540303236250808742374593224986600382775279815287498430112421096620202885924313686451556048574566181302613029937825333310865260333501331111161762141015677701572846210065707444153493827004009778290690944966093018909668965719253903097402524117555825106066936102594869770591377207557497082614391569435609426521038545622042511157267339123990381317408370205401624433261604434703207340710141879023617687920986314768656152685519264846772510678644817157627794276388883903199242493478290835052908886445158140414402811370229586458419339518706386284008654852219750710286582116695946289193183688923186446523795759879148359158010224465162771753574723178694691041205265294118619401453442416718759665356123652574939119044117124695215068248417723470628209479705131145602970591538287897881829942835869369824926664731806516145703256236114169423038479192958499921759767624708872201914598748533184687682773547100105576729531171047010429739986297943640471668505172654082281548258509585071395157373914293598334563926987669575360902465635844842013535496965852006881812302104199976881843432033126224959437893152405984568651576319987387246115798689117225157304397767919908160444691982404682516545155526077254516508837175676604884300078495720081360896847604855769157314864212479503813909148568754733926678940349661186300658884462597270765671667627389005842939466695101955398440779879844568242764769154216641063637603592562369659018432312841125127966214866156192344165567364256147848821517972424719279650107593530619505359197274062542259313669433661774964410666375292775842783456880902411104763797270919340461683866043929324730405413785165425173954419234890159304265707638538970208134690074879682752200849437517577271937505575734653604094195538028162679455801938676910099750820470233007049476064642802204538405167329392162041925491163739292916487672505537147605786332959613519446996567647820513281501894978927496032043520466999448712171388357411399101558368192535784690162943891674505586468130432402260804171732103061792131638228917966124481130946329402451534691539666507175324981740403298061658559649118872848660161241070762347723455235046364861343346788357914928770986149239771083446695905242023728307861483931627166267474448208808186383287693780286213309291879236736949814372485113288596265280666500811011074430774726804338251749402035892875179625611082042377881486546837185512757336506003456239233294761294492116459579441143920361728302897152341832138517568831686019943795208869819041755337203388466925354850318482117792899522952557511554343656984159839184542853965675527243394941821693160149366244513115883547274305761591097002747736059754536061073245415172531238510837581765415836582726383957230367331951839234697278337161642857426457125621741002048860510978235192335227371605384766830609260068019786098253002001299306299238022718937548372055778927470730712415162726358422902487328856977247632089371139529527081652196539460862840497503660834892346052916107188300091532313250781658307548826588101064094649706474089075567940039450193959507549748806068541499447139612743506872108395148383561568132247792935583526192167792837199456662645495672988762053403355174110979503965700659619536834080198556055304721963555040286882633761151703708094387165209259368332498359233024544429574083763325127172618271174801650001522946864995101938641477405266784755942702393880042732498837408816879320970292791559866278426741055473487603718006741465027949963079945054943827642870494032858534830423736373829013548675186932145021555671125201919831082611591910586451500825641257822246189039875039675745000119123686473419022836593607309667301947934422713842525493840069838648870059249082768365872083683237921608068766254237839084691090667691588474657511801046441605714433981317100773561205208003871716499118154283157865007156730376838673442219748920664922164317565615893925177664531940697360436119408909324011059813017761071082511737886571615331057434187295922384156842192277514582493067818006700484292342025880967950646607303041957209625656106612581185889444861524110792397162844693904408632621396263652427773803353148520451796325275359954329495475531012733024533319366856579342371681782261433411349927967639193780348822476511038136512560700384739344793092125303483130421582618476464544360890004652650877621564724972165470714429288219811429553930158774340783603058036705015757925558261738687059559895491603852984165574531062038258461522681663741745604712785040622246987906175588570957318764972328945219300216282193681038262085314543801673550073810053520974439744013700937809783402344569815966410021450925385259319667506302584174104566751018009675384720864597053298679194382085970170680267759925827213068654207898408049269190898804245515695452202673630182440100605992578218746249834335242523178864263643263694521775115756954206507464398104105059169002099206583239405393734563070430700017852677355124823551543148143841000105963759898644320358481901472631322870234540076815403928546216811054705292914814923733837122019587570927817365896576781201207342848277758436215511348988277199006532896898078168602723003775272926487365418178005942611470363887370757957261468643076803545209286060585447019205898648753241508585814072297941372881284480526973952274262851659845368389238216688256421769502783599412016937008534420316265356800532086057550561254359953442308720748086294679950230263522746771868840894411117879636116054152334179416961382270161137336332477115192431726226431629743987105815773541098300232733308081288379967047642357299592880217575190923085914774525277948349802178324880785715340128348029706494544568576609260692841862963335464360906760252109826474658691203533637945405734582801762123266442958018894632532543683882697784919297717003909728339995218662975984336283222578489906526330079939340969810321780235582669213309779447385191167362429826543670130885406465994760991424304275461866454997850392424299956367275022279057901842212869969423071218167635727210528626609361225116347514161470515200645898002394186920271234245699194463988814206055534163175618131134252239736575447518216876261403108042237006319809792003416661714128377141756405291402634845022217545980039355656411454699077070029643034673960473791045532748769557613464529269863162627161389853592375331121114518207949296560414014927774966739289311269799847072106240052910143211260259965723380185610467521214712172312825828984563502610350152243549818142596273409215049586858584894496399812525524201306733113221409773383645143595451342098712018909616870926979327851738417147186724879101118253841583015268923486263050032808974856071912046673569765838667883401832880580941862859731419293210952063925751638808007837392161435422675962245889989716206902715428138625569937943702117966226213630726123058005408452135495130341105929891887388409019630131307309023107978003808798221593218238855586823734763182298168734284375979264162343156844165820529814824407814285769926282698128264110124250650646558179217767029293635712072143086803688746802639356853493021290755651958688513344843563685536003855796882391252208017500542394710424415514350852979377543031345022063026828559308043029599519956700223271846329468745644928452455587423392908611115836615610518096401408757206754528473890006701918400954246836458422279657930704575498952177346097430137141787087859274650128901462882883240551143897327502096741767223421251343606386530200483801790641009017953057600307758719383881544320869325529632309933515028946280822721148793554017149066676575318300258596322205420220500163201081820842337303668947072338941687344402558864479471376397578307811785845824341730017763488079217540596783113838449066054263452449391231306091805032217854756130586404882704532738471772957952282964523711326152222024815327587282747641334208366950321275534858403886509212076886399281671502022398544660723198366108786513092798840631490129435035058325017035755004318975308650541185180271401109184577843568514070237013914757161974146756788914453456185543581635249654884615211475403834811357334495207772430442100472681962637827702251171331676696084187775755449720702399162237700533594914244192625919549398364659565055711279006727152430965912194232833796778532112167622460191768812871913506295831196953889421844472559340140236742649986759148257546102909251981563530743546447614455545612860459883930819888308773621092716456519999469144178233142365082468603115832436743922520389149151619503790565332847111601961544108321300828865928703969700849123866413880122585246044411350437884273996953660489936069629649992155082831040846702512799627952484744420610731601783149816964559956491202575014138441977687949794639633726611818615306259760167261999984968123646132850529101655314976273326426733777639841995854977716010873000111828712168411456148970402966394885363706188935883292936184804692504906076189245884383897154988671630576054193101265747964421035575987519743126490168086539655827093333240048861577318485095352965051532044530939670053698204254276287597925539516445346221153646308913519847784779987581771405512746273717814816818205129760203611666775403621334534588441698179789868977470658428803491132841046097597486093909094336639691430538255472774798713945688564939929910769665742694597685343584918827995322651438110567113972119489157043268792850097437304720044336763124833313903067913825585595881568790826590936208756051595267496076870796295495761172718205161165790845523849960358036788271288936021420357735924143746133667972317445676408720953511463105753884768157629970637711551233460262575497901003403150120406581517206312074850086295338280374648544652459392052172007172392852709587427486505202439802852814539768081443759992391585584657776068226265232982835943448976433011473458027146118364858330767984674397356876711403724993735352419948199143648029751597913502272840552713236225206519745663051079407229623203164324865844735862267699084509225717434545880327940199945787229618529876119935689400295929778334927306719625081869343649965166029239973898021312601667495170452789295190807370286899442615964195693459275445571826929438015543974662681544419775752633364897222367683219148392705095171131089234421999521580232510159483920903060963973476395637104119175006175437821387032905122405007737305566980318417038140147213584924209470540622709189256583972342638688553195770757335309565725665595248513230833726226754565090993977313701600643327145177637977993362073363434314123213603468430944151269614948788231259548244343836887704703812930763586982039668784264787955667003953667308259979067511908288492870155884454954946169813141970088297807306408534245031673911759538313516889178945599175733603865559133449817234047673945928943477415856886213542716302431823981524295312800939997567030973520206667051459611316614869843477266289591459910040925275953497065190868079363431090329570240841867868522622788757425397363017440971666349377069963111543579470439692346868243739564701938457532102831697748112193259367701624350212962205691052731213551711130295278972163654943346315263238090589573080674885561115772812496238674006402403281600437814827678683775781881343556156510757676604347051087305461348260767799939442032482694205326461987174934728718789781246438272330491767837580307605016280817895335132608950418885692199207689096568143258027854131328796626463901680001285431359358512397935122902693117701971797448165383385256364421325368213023168413964598977814860629700860980938560261496311862372091432953085138220615560721939581422889834577979618911202981720144418855048631302785664938644276848493366838291203311413999305745140059885537384401646903206378433386096598627727255768530500334534787332171110495199530025192559479811170923995205395936534745066019302010408414006032978304538673813546678366910825774147390024375587451319696379633138320784786138573252741638774551749747965706946604849788491124194463712157540588585008121131986901943887958209666190857080215427549171015908043140827572687242884208651909825842196393334624452497997557888201666208871619705596150593331082314301794188962333275389368960338949421858586587973061764709349410795428744593385797913539702995593350504678792280946977954966689811208382929079235045468825607296530890646937628426353750943028810399562843649442434104482224639322570578529557082169378828902585247464628066540437047418611224745868036094541838975287733431214395160610616180802471311698339106833588803269626262638042071255437852611455133711497438014045863084304405060797351015712840727001148206777649402448701096962961168558413666981890336084696556774512205106460691924532673973887354713867545341215860525598051283663345447058775718797387869329764601608971864744981385119498762289627153500702995285283323368077089713711987262327339468236131394973403109585330992363768521370315594127588523335967821819940146141138088419212797383571312423522771209697368276850455354386828569135139799783056610263449388349878142360769037664331659342729096072657075180037784615311714775886555416339879390609689175038397137308225285276679127508665872224264161500073028508154283666648786476867173007510271212079204968645014064924226326607637550957845112134150202027420189680082388325999762438134312164584842976239923000730562751291747210231485458134753713517704237571136242415377445050728476465142209542311765382021962780589575619279078761850196354363922657238115095376269818957716575647177785708211414458669693489928024052237786101555133961241804647820892582265423942329732259422287840062723612019594326739367726024762368952612187143939960716032607845117678189393311353497859200923411850642349593757603548655083775951537126622951468929431710486473349777077869547079699421916819904256875964805512720043347189600629526164887409885246537694486130628393714168335023768664859952328413473269490297283090523888326312839991641435580607510192537728724246909122697186215066382329406348304016461923218820255896956408203557348934389069115876043256007787993999556303404675423149476564664054299719398045683855015321470983570726341405831026295125616232275522954708393080103035517038283537620942652002321250112345178293210646833897047032045535366193431538834038919284683566003105018943758933204159445654479614748713347422952987168707865138013193878607550051077307686004686372209609635978457671659719635655475414099865416268119854538215799261013230216721118163698874490994014849330048310118414070028244553902760654503865431242326687525946627639689428214416873519740660528986946504418435791665324187549977889261836020495640123461142532137607463282880164604428886334854956668990441286247130069726176003583747489671617770843031769125350396749893630895131180783232503568021714719835054866166256157742613095664254632715551397036069102278371196168722535614273636618005397742305889246512935612913427869183500157111514387082105214769418060945578817053920273911616090035483788047127453488496494628806036238557632323028120776137612093870019670946731651737606767205706750697895344505363474818533067509367292386683603930428602306260287070224255080195607201382748993128575037504902310496909118852299850430070320271198443852371786749967400117769117148735154226651833681709469560453423685136203757686181078300592519000039754673605884192590280453708421014004206358454019889877859376846581708213168987971392836326933333975467350011472206371012631784101877596974803986714943188327330640884115791073077327843882821882695589693144775759838496060537656935377960245725921178621797456563379759285262180855782308240887522415382318531504922753460031688438588625058475818582401926656865216156696314779743723561477894541520488979818694171275176904479753691816180127461519727134809759179391401583964782109009959683926524103996447236797505563657554181135096723318489763243115097065182066346352227480000269116774061473879899940850674376709456385962796086446996964371196328312202132908877023376007083351122592090140921302615419550186847633770759478460961200304994026449747007148421022544416352314343622724122830639448100167500453008930847958346152396782157731731097997703298248281152870900865477013892921934279214032236009290670004275830001136037322327685044635103769409059961245842123861219220201122694386324150249492850710969309771080065293065929548843097564751013165845707904087727699639092250249271018334567451729506802578630627708344006336744318299899591646278253706099571371711720019996751186009799247836214122618882640907851021712139577358080222847544927253707827715586257475346406308420329984766187864854543617036707377083591143880507883397211684032450882398778119343079526959290974940418320224270579171869280739718736025856585725222916574326632022546019797557355864136673552584452454862867246897370315161537569206159555594011373225569682323002456512518123686377210194947313000652446217095820137727326898711876931684935204854518026304218891649487028548760595016609134790866276069591088919926067116872504374624473676822633795787302511370006638834370756371598365764803721964899854899530047612615676385723616322420746392999769416101293834555558895700227289097757670427019464042823861438014543456390319287547571526320729438831848306267479092227661785682111950900418523967139325264254185882561922559559111789452869436859738081044519750891267940781884326622212858770525218616156871465460175179384046257997162503858027394197425766514269773408683855370689963358603816501468830129463873097009757692996668351756807754435958077274661261735132382305598244869883024949324227421975938577435555490985128901641936477293636141658043905315043219453542587959784729268881873999060122584292022773185836639529846570211839458843395654962861090707142579495883046598069486014770591276826799369357713026355397736963867953396930893635664765173757450914015130643938358851965866998709815658798033076106320735241793366592450184992219134596441885262527337935420127467265150723922845635031221496175579037372399821509440547063688630853235747956088888973683887342652135350552853102232502730673388450271431154594952239944066470053062589928724760114974792120414576973616830581918746221764056717683831320013177156541496892797396534607582857642719667108227359933596142858051380972685673925800199982517164152883431601726719834873411871348619131850908142662896255805561603687371476842998946964872222310711442712925577156628641957257358592557526903604461178867144839078144639323873735623467022478000846684681455671472623945254853752034426108662151041590110614039525977479529844548810393728784809386313455821767570332467418862770601561200205326143238163581634973271510573047833778957811036616104806867935079168026216772557722344521617728547934394459544240507225637818221223350575803526856008645156163506117617311219642328785794704997439091861424256075000960799820571191147697955834824995056730954055729906794492977537946108513897042332325916758446681427488614699013534778758594010822219246823655493039977091871905249777176709299697472021164583276714461418152529717641976834459852963864731391473326975955845097438270193345124708284020836758540299055738661444226304837341263296235320680016672549567279529152618172456214224434371453449054241819535261247361049894947837484318286416215189887699523948929255305214537667147944495266895893950418897943165832828608377542988376032962024877840350084419700231091490574467676271070857908701536701237850635884427462993038390706484992782138355960133336715549856535915287379965079938068146477560403315465194048015870336249851901385739686786963839763017302142691279626435183706046062642250277459781918857401013564015614861156099044055642720280848634485098118853525327393845467564691229774902758300990774165935688742602391184602791614994285283715585703752650203707754388932726096395769876334608794488858218563171864782865063320443166995629515088548129912409263326579884609209704565124079539896143119934463674503769043724688580183731631517211320083691464202201176531751834536073620364662458673570222347795068727163137577953241699733065557074972125596186694659209794845093009291750669680937224499863756356615496589670079981702461736256848308440405447093183426097843674193952416439845750681330631497500763857448438490538490475469510814061363600923582683143124695274618450031567125496278880186705005122032394890109950211968832459580098012700774966596674808531298758835750751153793195771203860693831390899843280371357340124439007873570723515662177703436439709908980608496642131443480976764668006491970160225895954650145424749885368943374782136427011189844409229818088132687592697972900242712459957509182484661917301492678247184018228630906662396205186781331183862726028150711139568478028562801871385295041599190553485374125100734189988367161939788232567328412786508947760541395803469597321051109251503445837531758119318596579832470466943562391740822990461314479483848673747008981921716073529439405392964803986104795807356017752832612673607079973334080979969549257327370724076620260229996427342529388566293702637027619782367390518191027579318720371937233743615170805772660584802213212975507967861182825850028047275173679368688033977655185717516639277249456067015787710991399854489939834073599817731381336689240507060634717577081687489668774940518551700121530561111713712712996558943881054337557163720790247265993276305481542614819983228297196039236170304688739873488559724982406687084681232382993144772340973863072829738010065031768681793201721337330710995530070174554559709176730647103821400036812679562694254045867790458960278186875116899408289516351410851966968970757342490083743775749527420452139930847615287226002318970206169360641607680615588938542299160675561664891238363587976172051048563045803346375736848779751862816049437728970334359430432568470367963532008236519749897161681163455704519684875394355703514999629994305365403643134343342393293021247630586064971157868708027413447128616446437828587802971256687054552521274968525686691350898494113338017508314653791262097482164336551017728664006499802922008625209695167292404547484063624032749687803464317968922249408356604971111401577512593928920756275335755141208298745196693199977976588117213561530675808129242647336148127300217063805573843729896347401560548547477218733527527591437739193635526527201403982644667293529074431467836551290188948207940690398314971128289058456151380084220452737495011876613321847669464953070004536706176234093906934297935814024795900618906354343253180548619701486135428693547920593162278872275198520409601749750288266367172778275614970084890251867425163366631499145133760932611350758548645333717345320232402084955398885476444522458848506108837610883184120635954670924584315291815733983545979220143824211687825427596459793181731500995821362897574981514753758854749594195629483788415492995072142630614360808887427942652268671958138349923879433014288190506423321453426364947366341595500493845748396189811197236215241971060256590481173342971276283601167165177343317101368637503654972496023865406263441821313522198915235086688712665442141376768575358241128164389310270017145099168607389998482177254782665661729505180367952285266128893281137774889150323775700631228026092800959582028216861184109345165216670772788996943933893534948590419674501457872945852679645448694497165867470313445716764472286439392425237644792819599742589517152427399147601715044134057658553151870770840671182031151241791507371040012581426265278790294313868268525633535285145545752577362608651396230590781332659965499223398701900263771288155602635893342719617964612290226798288105327843301049364785567085346973494959197138309635767866776690703022395278947083846280398905652619176956041236311351108529556635173013619297281749866433686491683728958718632207657488750474446275221625720151742769076706676198676644317570270402247393134012579338522139809820720199531547187607270489324783619483148483786762802397239143234071342900318629521246667037490653925622878649715391406709502120171910469402062130618144383343485524603333930046177037915947624365658495778178788166890527978238572600950781321121642378994944030460736061620129843242285636376801414514584144680160530030060399189240721897208499364426906110869372728326840504735575875766024260648876988066790442992556965594555733619889710500553851099913580618503453614801856539948296738457523591982956841729068590496276478665563194897095143828057360611847224285245061655006042246995262133117902579665292351669866725883397687081532366697153569710989795407324771312407798721847348094920299508272475269058535099083870290590284312525633420183305299604433968093986884363375324505328975953309629533205431734683744158532327986852495737508593416214100795221864553877636386358760913937780584383318994146158562124975314299610608798441385266801988133008886337519589592083018819664246948704082336352858095359762806518483867577919163220298417472270407067600082033099436473721118057225864917532100784715115069304165085730194021238990398324572322248967674006080898832068536674408917315732899274068550992373840125123081491604615337467660599507675882912308580095220582776115768535118864003840337560077838920385917288444224874314881543271903472601934645310013849812993547158959310758012881109090528593730184613919293567215566893176190122401152044432055464395309595762770016380984887227897627773047288142366028103853771331354039143206731410936462297950040393995561561528050919889603857413179926803846746330388657702202002880126209345959516390446961026046729775228015910096363788444047505501353617158707318796973338950591486288538479867003119575288658850741151572022577524430892005471228478655612606484580227990315199806810267766278721280566842421952499945394185479930116981361948644821615532379419702674407711271539453807628214118676284910969889348728545397343501310460483539951147049318515625718098191297672727943162617807975009350410924389609332709514288223434653048135070277511812709996862187604018804599258461000005557620545338615315475494432508087193462291697836018293874730279142017374771613504870539798417086994533940507468595420280142995942853114337300226096237775132542310345928188489927870458961103048663371847866044312942854114599268395487578764943034608916594689788017843730574630252031519581328432312964928186857246368882915936493644439883155265114910802581480041464498348420499134265669656100579084394647805025804215300310444978177262788557167369059140248640893022894240432227329544290470403707520326397602557921110695122986011127295608353236034290659460648537461265943183688925405493418940890935591312368594881359589141378199934477078455995584686405519998488264248595705952246235325187472903094154144327738080903369548699257828073561974190198662829718517881909280589533450548192172569728385258102624562816794145368529027140939360650648377159734984444452967993428755960480169095494542796682718607389342559783358675127254818603596146710677231955940711208830601227315964998072472089630671388495848036905826417266706448904830515393899338905061280357724630841365083256008982278974590519218052419691396153218204398425718992296929596386814854029453313928590352442689939935792809027181180572513328634213904096979297454033425924857516098359000728603885362870424956223834074055763342970459144249767127570756204115394538198995350265407378789904447853819366352376773002441413519879457202041941242738566705396424360209569625852017959549516483224212696833630456332125857346833186243412047985723045820148527387822179603076922512041728035137174226870250276282455731454374594725025703945901374721226754086207130157102100639806600469742507282881369863193817042608869266864709405788349154660078598765964872128981471485143493257516585586210789177050904011278878850382309305340389685369053940891462022225590770791972937388142473294881730695041340372037292794376631088687932074820004533074081213586204833297829630300438485168786045241689295072917397959750568748778581322527107593718636309242797587570603477655837134891635786248721438982156657172734455551607599088029902875985583031189600852335607548750542056624841002068236181688937107114332427870927750888103934481993064514845545013403180976858947776752729702687392636533818745616888905167647806362300013919574209763060647494155627700221108177253021622023248292197219247630588506694624361797785311231462155224553909912872721489588799666202350464755087163848165293253954633915502109078298050093680690455605208687477303540762407338805103440713724743876613283461396885054519181216996488624376774069192192808466706318318458082848596750632936580624451445270009118189594353051445537789167094445525829203232253782256248591037368030685254982652432809619071533095509013804600540081902093064640443246428973305912866463543464217988637155810462495217883204672015760326880256135280955044076432754640725876392587814660091439456526754187771341344103565022661409096741681592592593741102236191000698965434983199791100944259939861120362810304868109006099669614543146205188197872740265339890428926982639302891294634328766759754501406689817447656491764037595150054587695729302958981171173561240961514680120001437559432108006994878432489381754874276410441937196040220552598141719293060931563266610661451654039282497924284227173233666126260129266512673999573492150424887073800648919862691079654022871135067178573448538682545664515087925210360749888756957466492661356109757770720954169382039696512035124325843295427467185939420354423942601910339024898590053027290582414198346637485452770739813540433635906583751871463211559380147027389013438103286938328594867629587413602126167812837919238721499705201428886774401961995231244961268960706499230387435891138174248098018153207177070002084158996671251514070689032700186738231167988153124787109601898664357471194309846101942590200571177048143764314453748435137891831759882822017931302132518185055124037618851187750041161666555750529963060885124324360895596483030493505506371566943816116024407766790402289567686275481270892765095081683024617530131702844949782850873537027717664367373780540264543210727515722068817143901629300971971285579156064752144921529189446674271277312185781248935785194581457120469011015682296239879267415564925989658325604647358035766366652690407423713191581501011737631163318331930541983834434733444958969636730235747316822667228391411108696110959606662165724430787016158610238734872769959923016502513029161602635404085398784520634805384540988654966205097415262392219447755535469711887942756477199990068688780258035886471862507661200574724625008805551318971705636306442897864458335798591744825498391224662217719679601719230419413765065404960568473244935028044785291235207785889841569690681678655969705033852387828457158567579864209972404010241229930620030162608721167696762531293605768404433522498455523063936479582137397068276680812544333462052915012834646754035625585997122881408643271025837126047790542216893602027675179060387288364936682878778224914563714575009889810439059598569772931949285101330622085855064465841644184481418940384199053571764369900301678354615396183993833551296190711418219817954189383599791169132592708311022819845455970071542482017581747829195204121536520689770665881657470876456683114233437517082879178551514794041856243341714483587446663796692788559167556529400343217880402825357982096426285432460870853339483869880707132704977066391683485248284777754303042918982950514268806666569038941706948243103001051217822421209568501498649512611658008164917830233034768963481629696204571442045640513989592643681326579790708532407853866123993238987025380666491233209599330114404438536793851791488591394129134259085313996717797027589398676722555191862396169823243381784467099227300388925734091022520158003050840953444031258113997864469009898269689272507134937799158639089471795054783773624248761414396112166526090774830761674162619897088929198626055829836412031777010163159874573074551976339614403984033381368119148778746673745439654894325388612076491100934004410452246759489584836207524931429766762328025974819735622049966598364121928836868916874551140683677098525794191922710610534367086149812698008378936998256349927589139389285427155227053940219329166177272632130810497240615974194230968068075275408075326662372009782265455255665791351509603986792001906215639748411733025994103002575617443135956734152277236967291100261875189888459313874689368964480241310544271805492673432593294910031281652270974929335083141252122481142801015065103866279125203271258861532803817297792139178754092381108147330994878225233828041059355039295264299238040441929885729701751086023665895963923159920624002750474286658975128379752700606252672520080171615398999588930670985341439474062244917768758609072413629144217042633316911344245340789348485902104037900820465283576119512773311043521853145431364191218369366613874832551152870871957318725043785546787197038883152147183254204789929605632303517208573739754082912540138551763847680562385070682013345278081692203604100868275296781172988902749218033081876042294958732715879923798945583713985673390439169037580580494085636095145494441859284886453924117010946714535039510502908715422166902335472315505549228917783680537316566012823955729372968676870447849249570588863644347345592399157956031471871163496935189588794469676627745384793084537715012720729632530534124050452290306415814295242664447720815300987282522346598208036068117748099113860838013170406943734123489223384670411288635225395784530564741017400395036385282502054161943182199489737868353156220913868505861762285234075577269979186669060508386670793426194878179728674729789035862254943609516259432887109842578684312680906212333503506313683700370481349088515980179659902116596893422456328378585350734889644201905462642413904569881626765269105272608022748865512419109687655875285142270884900957348361806371752201772047575302084287907575200062581224631940487936946892819127357437729994013131657506210526393166889575649455851292611235600607059885844910949061842076248575306679695740268224658900317352144443366076527567294790734273755603877782484257752191021976084286408222695816076503166003404599785505022790327375190785820351293629517638975790487102626340815419121511180976202634962214609381141182727446883898709331599491631211155716152319991645933865331215573479768901908409127041983156133036099869781142236667793087097242406622212762218004382643876200176843178618605390509544020133644181357931298971653193664352262615513942216007266663375272987489803362705005964874842833503466875910449146686615171932608597374283995636472382417913280462943209032851374042008929243691745509934891307074443305904643767728100772890669034383545782484371708822851090594672546303976544715886217876080601865736055250190016899455426360232070292587923427428727334873882864949549877460015648277594323495427546724647796932474055932388447418131881351506572069910678322258484018189444739118985746805794680424087552967322996535686916366633120679842531624219951155757642460243138436906420032234401780930151267595435157766202942262756671675870415581821047450018106752980302960684590933505846985660738257359205915098951797214386540252239204428369405904433561803517870602100253249503516576403773442177256736911604627870320888723612591248697854168124943453315897163515617494087834607933954512571621697513330149317448781297855203607208190221673251172698639133467735153879367819847744543814476980046326938931060819204946194420432541713170041429198806842361553095642177406407811501793896949349609573800396512191976761885906201287626926011811532502975308697527195437581389892805896376818330990331649564280571194905376431638682330897318437344416336671143390967209061345001652943393188615750403725724556309187679401034373764810039424466841837261957403618615654276068184192259150729593055562755601909088255586892380056037506740589371178273508871316891878554138800224945673196543457587257523207632528904535877303079105842441449143389926957490004202729156771444375423768561816152566169610700976628348784388863261092775192537198802156480348774806553542356507612696056034762491611953231161431566674845250181146588575440720573110901154735312079613611522782680924691187537451795477387659366279832747729927987577418756350389467404579209474186640071156055095436611937532557991736494504863159958426007417760627712987296508533816584391652986740998509282256861336258986604069355175318187816804991467354510115627780718296159034454909328872017380222529201221274096540465834954594682889865712757546414804210361934564338095761296907699821654054756213020051785093315107869167459980985392058773802006641381592861676190009808828866866845137294148813360614159010357001608114624012256583069006337521820610068279808550670320223134944935692314807067114434159815507385059914252289856654486028266157096349331984549493920985317377424154302713331308635850245720895785337459447827397125873542635150388009570249998327159893570004971710396416245133504995329676555234025911814715409384789140200704273951950968839997675552324404133927701809376917935603269211916486550242123865793681680056826198281151884377183890109246062266924328666570264683405719757384346124078396185425527437604603972602653078174717216549590657209926776535112521135181218545921822201237899691673452181610063923019140241980219494824990674886066125500021911511800204697551678580539166716656542632404671361210677337587860585671546920280973544766615722004518466595362684337533826846941120662031123187130783521391521677581395315713563154865376419793657398008537039638561662357066688480325855513061223441617670045823544727253456535576611171160845634460598105566368855288893680783315048302067725242512156590473224404026321973848590741892185703152022261769904961683730300884969854708668084785976762135689270791306551805879564995458576475077314521392941259276444050974026709119123488904060511577284858710405421727783817987757053932915095542886798588854723747779494773543502403466543926412518396562903095283691579553680628875672111206609798203350241642997197076107045162402378058454175856234339351602379280480920265045013643712039356707295690146041165509574068023366884605039976314914796522247545355689487181578887241440133949959278985689573176923548597362822755410834992762763378598767399113609412340075686958775208276368359824545301002261945067670003506358054707544854994954823951882816020109111125170287021480899522252756353206471938050598752999445690972274044360731843226661214465873288440343941435833023332552685229946639394565054523452343291727064900664306272323669427610703635794991623530309625901930832852990349205973001919337776977195280169586370744955060304848710265904995950806166818573797256178504914328685506938672263115252612773820025979480228753671093453937155049055592750000932005625010270050925158939215409885010999880397534484856553010284273202707316592513647543944279111150182573726592945238636883192729368299684923681537189325481954628758528084221378621114613227761911415939109405359494968822525076004942907368403815647721448727201724775374273964854171035652116664034871962421676831754755134774907650643035748284612842101577447260156156893667026661186000584092271145785619301386554127635090433450236870634872410996048239969797128674778946039477518081814753599673981967089108544255742205855954983374635776577902860058438686214006534072616588156225017495751056174529579304728379020632848685936979391409600948079655771177444241656984996184361988678757732639541731338924261819964890419523783049794734419488359776631832657349595916324603372295903590648876033857360790319992916104722819321201932016910983587562880097696749965903717806930818126607897693189217087605950022424633691045658395188832210909645381759970760885352128660047091398125034156680605331266115463169658101978142372585729059891425277859937419432033641394564328852089768991011153161735549880647534613796176370103888997773655030970943213702731010196234475995729067902989268494410001182358532503605683438962428977729746474578218556972645948465071320921550243959337092427409316980225716334757120919463536729844120308746306937071673969450030225711190145466010275940908286376497194917115778359814915005313035031063095687049828110269883868239201706804164312344402788323573513247069389814460213441183698181608575173952339143011373150262393698830203026259659568258729952338783686515366183387111561237498672543201156405572707528851893474905210306279215636294100462074353357729018916140268191090653287405194715844836195791145133738109723442142536824670037171245818366201527358700761881565825227123416615756480915456110786487165450779674475808380215002366356918119809506581270561316927875902025667705630538255777363362822554247266068075769176602190873852411335753173777272330331628625919722246608525926795810640640237633768154058326808210015846317760628221166486925811511043983708845656856470692197417543706029840668384140117949616429511369412005135345823547911509164896638506129381679122812250233471325435247781018696682926942138084237017932716708393335881028768007602641785157106557060964569111642453155155230703389343917468773403100709960711144865657343620895953295869674838162472397959808425038467086138161647228815579150503463477404344637769407413900039668313604251976113351029369521231461339272522015395942046054003685550061871023793403356221351041458880413484669718384637175996359372587279726885599240442035217651329739941027284912757687257240966778728033763660729668367032223725789263231578724467770548981493322729223016747988825692515645536427694078530744990177309607133785119628521578684834802018823597954276886204870802630408816992733061777483467329598288618564009146497530847446279120834781329494263823584484996009386012506830380968053834454669563697903454409389198169252480909102417299416085669871907257445134992411677011395420111932705799216393885021895055136272401674647742309430401171015056590622995631889712827248282212850315409594248012319442945838226703480829341758441484161428533979686567393294299712233969570716483172072632410629629033609910865691370806341368372695441398802911217098324912276067469863058660935306880450124968418662580251150188473508003001577788739287629870881669910411020886988808027010698231285295752722012423506953668358908114147264122083279556137451524968233921979113245294323684986167723757728854845326027443040705633422017424580043821799247144858760705500579652513656038443835100958351992908900211120551547187845294822534185245422419511456926219755166260176465280128313176778616808920930784915157036670922449675582200770806430258109392133005556859891082129745773031342598365703789310111171171888323683307286468971306278563154653555701397161590698438494848125382971371223183697123749079248153084562386891403777521277103857836134710719779002831961544991637935450153778674957737146616818602353518595937668498670887590405921071406694338895929301460935123119673257842213713077977834362154039728670190855320499161058576777147976244060285347829569465076917881706837549326315184341330139988610026573434873948823662493457851127161558369860438468536618998957875843314052610976626333861976563024602274702110619540861854436666331841263788038283697286245272526592009406563909179772402440951684139652736125714269076291111102013098929565577112656419880526432232120647695626926382751121339998305880674507718340922595530590385425342198316451502358630613895339122158393728383533243035427237991294004396415345199608799320544109824823441932583446718863055270442474464402944941670217109156758241088070136430803087444254471368808510859630244256130072509544223122419079574270909585056979739558542262184606133037511092902151455224835033913853243341683801391218639877466101495691846463837295872970922683223725566347770216857394478120184920908421577455606784989918738286949592903454920314504508335784500506693407758866800005768537645885553677549446667091783768868133001836285792768245337943624747193279402922778224296509147123937228311553619631879590916062626295946004769208712480146857121095848971543902718100121064740244571568658416763569757902288437015640923739707598469971516775346663008283978045126964925297052108184779507153772420353252648741463283771009016086004738587859254708575632416985940861432708719785215208077378667870345711989619967250373581884083269266026297952844793306555630244558357412201997228691993065971896390514496458665596593063017586274547104251125748687357577510723397613504125180727568459858726313977303488908120227517339399049048834846510937214833743558482262887132449352847786151456543613217171722805381576499014940021892114455539669455225981283165298516489398553570989642357154520677496296387763651428616187986429216611072654014197209500851712430951914115781482786692239667195776171354389843381317368316317915707120403156649181119430844376390135578851078724827671230401125925486293458838895289110516665978661668398943481673804746393661317726084897556131769663514491294477184840265088178309676164089685132739967408672692655377484706446335270590335384444163431256014999824843698234363482854757447994268178582777383995484777743461392110793650824399398034587992655830863570839042578779321319824876261991593262349847720185823456899618063535108771443581214509226539230930778905583253378984034663301249540369601854579697050966364643069781217354987576224516638877904643821230263526688336572413817954639263765456866266259000821940941815134343101170453238260485083767309845429622987985157193739188577522657725179236330437293305033086907899970848666799101749585640478480233534799386112766942731413202515289715454195122467872000916227050423717091333826623534685180531334928908570740450134377760081221557991598051302318316410216162249609528885124501485108819444833403051940214752682837152643188451447641573209032131877910422858145495467521573471148101294235676814518933218391102469503415027505125204947019942844545344278911347136752758821992251272615293999768384931119511078167899108193251547671384565994716145551336081132929782301927349417533619308443509473269204455601826236010033132163655165748137779766127359739326923973736335693308395840900112398128871839821334852684130638454943099891351725589914018566962637056496340464030919065748701708789465525755444023003223124119643922834021751076905483354719196785905956616822636582917356405290052780554882100064126326359241637482893826129669772757668649192444515268719650472833435644437080663425651980943570565393647499926458623228482616834898044107772077030323073912257835929733830341211510411864233192595476320674653680510835363022128564251065786610270691611948737259868707483480288527999599633599715763530821994816986151544709566264798606167643973156297134092669993727507853639347156690798086277922911673845787648812256795988223103522453852134453504813552780825753572852338117136533366913564910822629867055958054732800927606339948312543706346629609063642551804194854610527423281641833493481835184559905521324457230734321059250666527491016748636464306258289105569751561796508860096760146947193512913310860026002082607012554329048966222309264549151486131468053195903823073069055643023239826149361234684701891974239582651911728795914385173341123342091430207859187512611123855555501718380152182216151261552938632626104642965214167747634744432036939059160934654693401022189567643068502620545577965614599896072969199457281350602882484150333559862408017837268938491928353674906978194527879297310095174617149780648834118507622836969365366716494492815891598220638266789023620353018720646004433302067799829248882209566391564591991291659049131021933211253278343259348477483781648552196581300636649487754752156372063021019754638967394129323504369827721400026148144692782930935631318859308885684641435498485083650606007224118009242866806905839388162478859555492411130392188569129098325532042235374961744652521784693465858890366002354499191868856892286799031791271215090779646799536487196624348119415282748258391953252002189018369019499448142351474236431890539279557873520827054732330949611906916513084767547954513876913015432473868008802855607417911792122445241280671099571813539624131355293120268265185190909115762085711788977784649622060624776160358334447073697598270050503755957938823709441022674942349411672276364295132891765760001327041756191696315897325677056728156479981020180336459850928681167090197692860488970291490112332895642581851688011240066689546008555325323605135531387739742832715310425791944514244324748178726235924382194672918959855171890701953906426288332109987957272815864275033646606701932251063721301874541214928438145887187796124490617044110948368508497908337119759330900684677134452671661502059746159569925391223555653860096422150678629378005584376978613243066576584475670399228190716739684181515273237490327083665300154377244028192389224315398281827535223725942621033645497262748507422482563750736146996917066812061287101033339961976346439935022378742698658264002424124678489941740004042951718746112312860322225946796818249281735925285489130643729637951613187087635394665262886955771539034518991221622325969057414981306486562786132912003880951523856821459007175731992003035417277941196723996652889106534474220013187113420263730059730877131541354126764178400869005730923986068185915151227207049448496609359127658461819189457569561668063304094166272188286063351749735949277287704956469385951690990872210009700695955901947907536215079560719987746284179248290612604885832364636396446046574635812790005560147613928949122454083104712606598566309958146111285755323185038895095680111511200384344006803144036460514733013051865205772205338269112281193963945638442714651531735194533126155979976670577591785378828739862713337705562919408196990215054385438495897959227638152358022049478738663309972479342509430211329494277770509753666866542334757827093172241549661232346085705191126527870547118818425469245994441041664846362237214080744086539973929338576808219195907855754998773241968784962240257152548055129968235552599960043720155813099700470641175269196756726252958383690269573202786228489546016224692923169653802266722717610748381560756016412337163170014655379990809749304483721744410172779555043227259171620149777267462902984429224061403347847939339989880044017657029701018885703390644745912602857450816489840518721690605079958468191988918740024751340984335545481988483279463664189108648362265471203933373395694622761958088061426453768406806790409658345933195923477918546094466185497415255800834077089300565280840120341997069188646900199374162067481457797761825958612089185675936806173513242516768884954817855423659886411768010329243653430759594714952343607493103287096660901183366392097398885161011413124948469114669053440546662785613344524244101272486845105455211299717326319583024284387129364454162132407194347243254189637556414501792290733326850665928763049106454532887969155678298537289096704059359531527120508555879237824522886111423310381410662781504085690807035608731159856232882224812113579782232826375487449725581207598939811822364056315214727836864909494043964050132979295265625688227596523559958782482578244350598494638933321465915097501859479801972307029202391286367529754827560724299872811592514194426927661141181590820115478996881837192668571073508455263747395378838953138300456005834173289749957667716854609876841349338499449811483431500906831214879990628233977234925151885784048936952675759543070038859201972328975234082302084819925064540373628169282463093740498757480535197859210776886402758051878462216572902964473082916332936440705454882259131012260582574993010271530358545023356093727109374410174572877900777243533911129007367460417528700677264267510545553819865040575168329066698956059741601140379942516039574519259066595605041006179163721169305762421232991994523895323646703642961430438269859161408535577016015059481269118017226271736448488242429306423428356611671710306207175650580997524381923781193695297219779079050177709814156074086883741227187278227644267749316333334338251389445879279393325292933011810858974002740710530610055708208009644008285224441225608482948239463480779679945088229848217292048344120492772638199820940384290763239280081264634748123219618940662154094758494921336693758983667384512457623674477333966925254155788127857140278200633195800366101693595390767789048528377456762804151457590965858510189813005261858300570422337236262232073367417791537943308515407268482024794668297644330391020316562398433487782023312513418945326804370898536809217832856715300872463892600692759038760965501775016084255509940028287559001046489874322461712949196725583525478466586611873033397514463439949163102664723073101146472134404043995383407109778381628813774533120560988528421772016631894165222668787154843809137645370872483183214916212924926446706463260771112719357101154468150167477005897184600227416942117022790987507430251327765307530139134549853956904708268679755060027304278268611571914331875165502144520054067174552029578771592096027892813314653272703323644085898444947428768152096765075488247975464828783659041026550201661048047036534810077651875759515857823956204164659808825778742146882327080030485698603273331390698681470607598727673878765364835922878673669970877719177382851905533398045946921342223843388554595912571719391289212766479759383659011375266546315578104560887244602815384417848369435112719497701402996773742365224745622640037481652994484017764564531466846794892703910004896567814662989867047858188013712239330653586579880600383380628863406714655356609110362003214188215254813268395501416050087017276264797217738808727455876835592819016256782355776007009310677256535157177513202494134747922448258874224607648992055903887992054192503619516699379804195966189518676981851103233962860077238050645908048827667387760278883321750909598775733195691388111313365259782590402761450576886732138114376830058682148295577515189406754493094201618474575962883767102310142490473998707489866100452489287507473138554774094577483258916186375283190440683908134435472797509949504633909940344734160351245371902472460189531012456767828080481965438968316265084834354555522049596616468724468163013152890333358577815476020455624673136091996187245382147131310487477220816162424123654601186578950336394768124502835331779831477121524033705860268960960797560454748955978451192551645731411021497934068983497390340815890732905939562239323763819910501129377301031660958048713354416906884940397932740530473159699850185287896709198683567911161505896636782748630213243198508476174346027194912042200230443683981456524922056276994257144623001600084892148895756083545098191315422004216729544206087386742985154975166934746967411282407866662456686548571721851001697371082561244063814424592966560116164576460951572290856440107162828148972007927859282337561504286366319198550229246675905648406739158712309352780594173975734882043541855474746087489664220175456408888316528201496422813519592171348884178741534284926096189948005995291843521883209053540376322778852744687401148446184894480349212180355626005472112759369508118987065117242553458598063506366974849447339655773156398846947441286922628100510573573915425687247337653063027296358231102850788823690182030762596681180198355530295915103941627254467668342554972154224530137664114736986255294295959804647099072392909687381605225732373481131880299359550695348417955206512013919560371884014980083566255040037409247688926196041766881095141062279385080464791434765215456735238709997133797791671977463292298848358564169133770959833189030919007950765738118886648299248267475872139991259336635293878505169093334966985951173421395365393090918132880966088244966758719104410317636953144614976509197890656220096645255449808265397826295033066599200861906956060640397638861978656013416544924602375422234151911025585546998531736569008238803476389310980718652108895961788495474546633947997985996766853301163403112997136100884780044111909139244400525787136314646605767928510142269423671671510638411392060975055840689657194989476849997534778064098701536142931703165240516566902289270114180070440254700393829115441201565151359586269317915058465735517717378795133705790042172936548418866880651606146125125366105176237788410692082090664758620919936901770054528143398472341312502760117969125653498735248904594512297686392317621902669610111925535134740553653066883393352555870893532445224002141895651522840054799155246335685627827356598959765802960948025410067369219498664013681841731643973247806849516755025776240052617618809879137449668460531667650537752338808690054157716673993954968702629335262788344761408239876660348800779839808286787896374126455987261209753559251416270519218960709247624216928969184358490081479035134250452016372930362361046294813164543526509551368233092891115802103700240205702489579417907709165241292829677119341584037188509393177162961078418602406360540507277478909410756351555783764056136842952771821368007064282270549732267061278257327280791234623807039672419365098541097330506359179930338232772674234553757219622208994867293616530810488723295420621009415903113604519745536724253676671219379629365499121951774738432557859527426794139482290178476329847916845595172355509203567508640275487401712454168847356092555900707532901511619156489047116775789398405831229874739412561831347468708253258474067652304248398453001138396410756843690835392409422559011270306390753825272630668722872138546902217410144968996131648827560823787871300297873294323160956210431843265546939346738829707650068922878133224063428046163564544601141942688769925918440265493807145616495412475018326979553856417530775269328558178263777897226086784513863796322216041917845650526467552171124979255871813892660155389944018982798266782769381033839241448262339659072876489611357920497185023040476695667214515013477871172556887508980038094758829946246526303914658366865834303560513684165096602544668638438238702395400919297049047145284510645591977678217103689917857473940901805971078645524517799008642494357492759598214166966322382489515514315442337484312913611337107399709531621802314493458612955219805438405726879505826631135752926866937950241559966872916638336817821310505964919652576361239970530651739773376677435492401878604789357070702535127505643498311455136693664962512771713826724439955257273578646325555050176478230063291095976901534080691183035637302340371101805325661173960937361167009973716107829123319513963426365203819685835994241149242911164147462503585502505696608420004276080727543474066780879030767712496355032530844903362630186247078637716688092855019905665314909582352317916045094061622070837100612936244579961429797204911318682221983904649226827879512080784237555444394963816478600083721180603240571372414323483929812721634882825708138869281526568336018579831997280260364437085877500166953530965893240098790339659959506321495619997403402170865250467699849380509413254397463644462918364452701498140479672041084228516042664863891828712736096507069961396545726292562340229018220995325269931117544199817852396266885613277120411914924712813071557860774616168935592976782178119877768472037720145741458039843609540541624998255451057882390662328531608859484119002950073128947486755722058646452303614703802289955981503232438901921825567586643369001986676941577393472240972230632972413153268624319419476023393096204441218801759033448133642079777618744836821460052141978501865794972992339322510466541154269628643251952741373154637776940521250134386192751549302697263676160732362828950216343041071594683798444869592086546809843205260239911770006042501769716749208025013950745817045145449021066478540721976890494997292205631946749657034735294348435396336142027975827621423306888275498556072202903136468398174436441753474438801960192002249618125856956249743130790629157676772413363309010423433136213035906332052244093890044423637951031536752985752040441272398071425100099725717411303593545585578963826131633485342632289524124068563278211599121586486462184606112105891129802867687553807509386497874364432961560381398570487695770222773202700532642425108272149303664571411936159615459526948060160501349623900001270478078821732557347184819930524745552160158284786374459670509053349291030470190278336980573505055570071727178239299015993776827235006823195582635480499262334247468550846196678513480476523369171454122436188231726044682993601109849466162060917800801215193207600911581660716366917130413666068300255704160184538787014740542909001523462416843969437369341342437033571121066818667698201946431525467172138683670972385707934706704677828806252751654549368714601874613269666146275562993237503738195639357543455180152159592803125660809492993136818003077941928579294881495031111897022290145794327022094939993181183711129344103160828313188894434686285724865807138845831947815996194467103417091868696815288223646009912564871802286300007873956556762367489103804567076333170800019764306186965123997171311939881480496955641614939432904943706702335956661879032855954069493576112746968814510933199186008388989352457156319556831269625769456961897481283562486876443567642266548084656026063204767568984691085499938968697743549348720429832267757680411686475541863218370028536063427213546760597524315637740715396451825582768414261009951485330021228129361511631492493575405922929672960051521197891410047211882921314732332168190306694714709065783947358998496918428306316368671984783635057351891442034114125292616248415100153280016644677876294652794124949119678891423274567944976694424462232149848120341071418377645072900581174953931968564602478516813890989837264718070598699023142078876779606590335283675013928189116533435801728109604579778462933815374226189129985389999318129680670070766215129961299297952953352525329278215506651791872847120476266854822921422293516846736886439972131712919445555269889564169511500585873145380212002011323116318160235741965727038857799821718054346806375584050252454962042385411145296577741398943122781634259370815784377509719653760029458699751026054915729593387473701784570599269972767687944636788608033330535038477163592658692190640814764063978211295646868135448070883686788650242086916194905875571784078763924292831795686014046585737580782962617850677057432717727038688152078748144946770691510967327768098953034248502625270019070373725171002624505564240278750592342499931374934246691564469080202824962796873498395468398981350985736709820700022817726748527998326911519776226326499826777078334759685458015408666191771171656479252542358108990608269095494344879190420847602089259093924168492933916589624630386043011713834095244948125883094298086817289735417838584123445458573644987696820516223414147932916383374885434298355503647720919502184545692633326109994684937770497204362848375697978807450389121897164514363291677331993746280430071665362394129183259777039421143306591942915308496838840452372311643718844802313247318038023696078504501990209549179260169156789724568870546045297673031908936545055977879629033514420743314061911929042597557605303030863074541580793781930718263109275682888992357429219090618777551493574236455002900268374191942991041175150470078230002673192084795334194530494870370648875776468497540140497080840950299510574855958758700818246243009693560354113080883511234504035513964230763345766665806994579386240853031246291066484111695120154563289775070688048608610963105889101387340479657806154857374271316232752039842156514873028689301294708034645313909231541316392811283726757380000839440155554343077288263288009862299111252652084329393150004722221603051243576858890779719212571051238223195815311808676583312087964878633626967253905824006311411908843827140551229743769447668784054905911999694937648739889701059961175135207333442076050874319431613964184638073395825480699233634237993690844817923138131318592572443866035139345749732208283026400118242717337700888780777235153681341572553440119734566432562006666432915846083568408128389932214643428557787554882874023663988817086104507432346022758064684387740358618823794626827183533608293594363082924923775190177265494639545716692234244767669131610556806190462461941446069509246315748335349162568083078383299682025856271722533826337735621304335881726751716333130951414022751166871133790904375965846872131347327771462956334263878592862203887230244912460579829863579066170211628117144281861334500434922096655320599331457948206278246136982581743761015391606714007225975929908613565043715171311797264423756681587418525395837168161807292612154156274957607792620004397160452930005234985761978750959825803804886448215285702421080342294348327528848638546396326281378762743796289296827802047964908349857057566885841141232701060009640289537488779981196241660734845264134995295031727708857724585045134926141021597791396638930973492607446745465453252490420791417379097867004417238319465199056093336312254496230504917529190289096452875194192463483736795164045608719639951041987570251548573034356608679478865191501024159823563556849593908709473366849047933860630806727016310455405675897435724988637340484441213167121251942622101117044446076423935949353244870813816771923427703158757586979525039442265692816361726550450400061323454988896590160865805262326373502599715587898015411390713187941267154347277580334628210448538152725647332686522285293245053388515059991291771092871191489296942309593430198151611475403242064111075504625398616887469535060045441416802010021103654526000853481399907122445807358650642298459287468038911328546174712948089936835992689429706574742380318445996154495538747878779248261780385860919679230184444367461380707594805356575356550558633839256778066496505724338414739590228198807961280465801267298159445026918112933231132121637206967439103137677794325511488839229541996712087222223811033790312443040041161301219071963147131300495204299063756256290835857884509206830117629303355884395868711783732812760301216456061006947874694700295930435195803886844613983040744724969460206258548415364715373572364526508862853485958426515273180340602324869021876051721455674475424023974897475626142123454149904146864924739286201691639287781361546464037125544122191809685774033213319006020955105546904956026940509596756599631387181215540677015384315784522728092649218937252971368289129790926713427602490267447330974483497814700132031511114201268680526318896301960008529874628786106710795005906473785787496108846424719904201578461698888881934551228242802619725624673852013382887001489975730175156528077164455406432602589706334431586485435689726841388496702285392919585551721157083956502911740689330954761108393434377311006187960742836672684200382169377299804988261709151795538985934305550096878554208013197608338208661470097533450536532982839851330480634287163540377536393805508994812709947266206737692580572519283007860190141217282396081221448194062641441610060885497340889709386651453040147415758153808873585122506067240660828530868067709875777015340015827390220406836610971206935649297163100945132480223999213970934954284436730726592092337332528129387293195589058333206302119157027549785193672663720574278447943797215366462732494786776218554441748961547975740696613488603222393396446166177929153449202926784833495913994782101511226376369989298975207096194934100916090936345244763534359226395457589407997939079799847915367042129267909988633374091406388872551166426101083832710364019100727391046083910926873803426459837415428207181092617387304367102935456832667364937908731060867299475699251578578076884088050006964286562444239738031685805550576011409042297700303972296078829705659693787414410853476567818946209027376489618404754550860617638674047633835621494741117830112568818833310403463333358318264466811380130563984548068525282945354671700870220848130874270394181071406941644611645152455301954093498942047920047859567843487833340236886674843606169884096463664574122168808604856784604717819268127239139663987327764803943914365945013730011776171745140433103751752278887058312017485727623270929303394056891841450064776982166846309572647304323239582649567957005311328038059921144342929508742697974237665735310967857009733110498121607524911142977106588673509159767968766897679942095817534811711975078432833789568992712890121072852363722183018506299615659885983128603426795778086908747587975840894191039476531217676721025988608048294609089723678426535383577562341858589086874508205656874441222372531845290734118514535690788166340764969914081013062387941288591265801418574647640408463692197018549402711344068002090408425747047318901549420597066907117207166515260054792733843894016557174902067221080981545910863636759572271623954624930593045878938786489579960909378635941550841077932588126045177681172412350578595617504254178746177381145582924965034149718670577316606735090764082719549786946106848560908831096195044371026521677954667324818699396192650402630498647764585113155793628409575670612707945744850117608142349309397979945930520920623171072076020167066808455531554175143019216859634990389307379131865527989483440541930249528176076057974791154788231109294755914600730042056679846786231829523875512640837000742194896393651156941075645000099836997056259675350897172393823966616968578696501200861578853818386352423283545277501518761890548705290807991746306700217603571112895255024291651343326146026300375727650395605261708826496587672963441448449372790866824146931998374052879027061204111371493789424648319348479105660105066293837437800605643104061275628693761559254436662242439928256760331206064342790464970033895336525109089093320833660608568589802362699503623815439330747154507599103052413994771749189318995698352465669538337651858907658767548486841634959865787410578450189304035230653879337677255674872457710105531430697458776333899760465026460148234804976607970143147509584001536610554448238685989415563615273326082830156831914411903686027289181012515571385605689817771486811521538668596231951656555627998907911869474075263972327029471836352914242098482255258894007941670713281983613796421393910829478979334104285350238812952265884283723584880274476791795456740230071207050875737217437647417573120903643613424665637735877803187957450339624818354435449035344248541218925264869386767763575761942609876615855088285528553861995281849945757070536123298189788502651138757538917397325078715293381273301232208607914705635029215098243465001763323507890380781746870726109533855555634283447575868957999351065065204468969105142520765991839118063791271316958510430293811728802994812623694479041863744648037407008001290423525781802139977255097936083310904892697182859918080349523831117294878126589339952168836285107815811425596976263481041619280813676478853074967090021668475602026283101447088570377569859654899927325604803707723989596889282007474479465776521837307514336479100716176045549824210502865502348481036781179806193949555007787064407640435296858037896951241805912890586771976618196880135591795539169424289786093748639885759354680653446132546033430953603269533101727999345018986751744762227340537890813409246772043598772983538020880537648651704005093336638219861731217352732033113436507101923648085072088523374362599739769363195518631867397712874544797124728647406767375087866702809297831193544534307086314637410740401036955912925625379303976953652424754224946783672754761136383640326153301730911536142618291256740760511165206168953824731056230236243015857508036137138966129621938379343221394139402105274615023946618576530988381705481682258796747456785542084781546391385035882725483479708678688336687662802512085158995300892081179887101762427335444536430625248842612767689471012781042392808156364927856886359743336134162191920150361196650562661240622082905549138811264002708821930655134891373852968870690965658631116161155563308822096820460263009738273837554044553610402541126323841973482909446874557836170888047120136426124930319034266468813171644360851170007258741945298131824177367488128391704926892254393360457930377351167070567159927653111522574549271202104400382088713705194801217685346582109270396207534883610432260495177837070928898060442692324979262663483544693767472392442855550256476590466307753150115085375041210150398150193312104353836116062181668992150996147150155603490671554855201480392570567446895099809243393137799288209201869382035813870631152269011668387771264539083705260461524015833019905968317070865939189417203459867625045219455594204831052134730901276187456485377855668917249448798621655528571519229229747632636303424010670911928984689178088304957129729508709694328168527888361819517045748768990314729184227114221170962562265334292410796262945568675708510643753757195699513906951401162934582678286346370029330700445393207361427586831399727150645342109734423830085748724550485282226236914841969072209428368978696991793335160624467442392056424713659044252659341397437503258442792505921847528684541030629085301775058371953619608129303347868865722906345983764847455869873090666355189115866648027210039742903491962597460909120963162036796965948694061759828260723613845460962889727230017049088672367831209627213759936543033306026764489060393561661028160576067697451679657713315191835556510601236301970784401149030816110708468260080837857388987576379093886273802147602527714941869661532842175254026881519278763095459250965932431105585697776774654936547449005370024306008040607487792675889174855438037032608565219217164339652377402317130044798678483924142796175064155026920215406257077699140948189924097038260176289467348339575868848231298061045344778937023751081043245866930990347867718057747203169473422824548042278891580550386144159635400111363930717480635147197411965732848221456033893951384997201543800113794976269028723377316363590193017558318637328838568938105972317215296935857716400937741404552845312821066407267649298597519022607541808947279814168244057341593776134585280323335861792011731384659032003227813297685834959133980479026276341047013669830483844341337086251608725114332706884526674224683723652907679227213204146413862447990613665788468784813021332062966818804910240386128585742338061411045267884921611719048466245398211007337640111716302906525269291821085850523839405882950888944824993466649582908606058584428023391004959738928888347078663194181264364297793172155677873990348969422190994185813298655257072748991190489924360562930556223223979642402179453055168502716896823374847244492832985915153628116567493812763522546657427494517409350626603437518922000830776060799039983502838415172569887779227283269111428707580162739988077770563219573248153442824081846287518762652527755971024628710224998172525139133072163996818624737727994188794034427465393537181171800959091691829918951962334458918759718319508959767932773090425168622732725856054751602408528163769191709977903677730935300468261488917588152654221886930809069458260611556609293850446169097115268506525201898203083017168597413468767524079666129484319509152008459609906078368303269367118405966579542417281183151298090541601303074982596938152376759364606347139331933675608315855916048963815457718799020245959196022570136221870668199150114686502714061384325747185093407417797806659629271374735328276509832811527283660522893233483012648877719412542606117486173163698494909500672227798421349713055944030201517417786222951650198186771432369218793159300564548913015097852601348341811953091031102921035124626090295789351581793016847017195729522996595626133344910051308069426719235266457366959265067091600660634533766652650887912971629388016930191240523845733188690776275541075314284526242963042165340626163044469676642347499133815641728238676769772186896917370092601532411440979625889027935952119517599279392169993034809166211261308332548687284449837674990667654635422369487863977909873997207341908696192528243378172850952395543497284468629469506744447249989713428403734192075832863232885474394758138494501783888925248314360560053736271634417307142423068402954407373011900892060562794629742422580587211574426677591514334078809873903313118724148540385652582876737081000684857564187901374731675377481093036602419925669741564645462240574444888413986304207212379160035645615745794585122732845776489604209860461310728426713535396752297020070918683029322372337318215788136728535611082110213655675200621819831392171764790234563603109045610166853729772974598483489309447573854439047760847950181989723641177668283524339685914052491091001882063533758107250696638723857971707851973776957628327260759828574272538962465175273462586843098035266737607164596048420577392437008256229773213296880764327050131875859802877144330442177464168772504018613982105617805652500947594173708425085855654216771502653361510909297552861715015384302095460725289565855341421795007596316120342910685386451943614612753566460739496137165968985087162265044099672853185347124346975621384417183819569083687441446751027740479860538329267562208779556179404674567335731048569586229281638626491646592133910572472590275975038322532352398288389724932329529078760144616834430560944021180194229669092792890823350958906639434494763412437187057250788665335860116224141236535128537776321030138971752616555804036618569353070904063485184299792948787198915858915677130659633520764807203432150055129933656500812838143704995612355631795951112337919338697160079877983583959270922384128485115796405278338990746649394182772678631474303402918286282402965380389703182182471747706047671651570923108728328624362727938058637685226696133410942466224837946330291045265290293883837555034561377078283178364091338305802546580509188260453840730834122514450367999130674577551326357992475647033394948634622451549525519262471652474269020788304015358392633717302876686364558283218694100318837010650552018414121668530533946995809200118901731807461412685950267461416457626190456372298394527152509868686258357208983573632446217042834938893313222380180898385809002914633655132689978057142179718284810944889051547373751359120543915382678598780324185930026452919543925951320961988020483312618076763476351850728944512885556262125887771753071594713019060388943104763304669285191904317055182313055303563096803624690607039344276953130952200732451067570953889370917643559763137165666304558048490609453147120479095900962258667986100980891068660647233329038878832571998113252537907743056935171937106831970482286920368160194466327974702526203816268987935937578384042716146007159858975189634983502865296315922821457191795542565819093100520985272729511923493850470764842668404846003639352556397339374334762727152266427187199427011194129414906282544574430663085573672907940599250665210890069604408232630371232924499682069207246914851170090129653198016367612683252080115352751355588467719866877603822320753667943479136489629159315021885566488483864304116308988747334757104757266987897262251666688811902149358948312524027581372767796770824166016345014535814166884231184008295849413133485012274505072750961379603054288682687718127267383769518871272306951602911468298245782050952296045032239288105395096044030906180325330852182659466795535567430467539572169976087455344063808053209724984541950908204724352031432001835804810617196448558055861177663476877853620752358094628499651160691004142928613402049314421595813407483379313334681129119945290620010657620164127471554907962475447963675606242628575073623068754205936640283931651726921224934472096208985422570028815388649456268503187354820293340197314763012728569202111025473606576152248225632838031896205993963102450790010951505708560115327467923296791471086468631204475956449851243885782564349467693075155437248429151920987397927302385412159890232323461294295849143157044676156664670268927463492046307276371925762463140283569384063412579331361113445105954743169204097382862361668090731737324783904504127116113679215236223307328384001046307552631530597299565925956702031658994285183601140599532072946757441125977811089318924312170270386291936711860814484931361910487458058536385226711739808382479439227583463300073566210329178585105793768258059685875345851645982667331528379508099891079212428070053816825710088052337492072315121423304833516596932486501761728806581814062706156637401496836145402457765374260689846638224268820865921970917799861562060340014841083600184792806496244808627102316591139235623485022362378423748435764466562487130260946139343731265679118175790773436580865217135925801998331444606653759150619656217991084346347218192091968905415424301163516768858874815977438725483538872199624450619430914494214761985724970075898789269988937487339540108474511163103209033634690273167566757034101057233088894741637062313968528783659808382120078557004459289512843543714996748031072410721997028899178132116947659566928850131563075701543819707211239685993793851433951504292932739422990876661350317224791702598869099750550257113763217966991618593081842661642871625357095661806297703959320644335983025784498835343005841884831198177390564637096699167497381245266431874339194867329432904640026116244004556415837845315991336646625454199981274272218002708347207689914356149825256403070594440151569359302364990752427696083483926563578799726077590974707501612837399072040981092624437337182721892225786289743156502213085350687789711947353586758949599950530618908612867325783319764254638106698476829052522437679666250402165434014411956300362864308923698804723114254416778305151772329825544037951478845819041221344968336977857838758024160171672933063486284807946216663747648164961482823900743618066783581226445653959876498977851590520630258127047703038401713414231075046182068509057588876048199956656705522999740258488257371912362235411962786483160409046858086832387300486245129434957255814979909495793509948756758595579625790771146559319127688885901405146327022165045292770917254136125193737105054704656803188957573819999549555656677822684302635867481629927270813645039938662596752246106863496322921499065065248908489129128200967537582152553521550309503490407319853485937445963684126919214922395677418108919897931482429622405313117165012865408206144764085737158979985385124408231445499565141113530611529340141861469936620038787784405106992737932236309279367337164063378186600944045222337600389023444205444007673412555229733629730841354507474430144748939898773030298722809073845956299085181485090321707240429741467342311001140150240560038865769345147489698145419963578866505835032735969171715360360035374798105231036688643907212102431727779440582112775022678452624068756829851673081430936333220018354054814016607876321232849063614420991909641589779372090060045995698091020584006257101224957002216835672642989804567536982925150764073947899610061821033445319694058659802397608339436501791247824103462246305176300174348174975431014196338109362146678892367564039808996623928658542667437668771169978919308325787499191068781261625290377546035533913692086619533691218690822582250968975819749781402265462168719261395123464020557693299434672274347865590681893320579185167155540019215688070497435058409482244132667065718014216142411308026424543217258857346254793139233536663495034392427124194675043168288713067783904269891473686604280913409165406547592008196615083587946636502067960392771125126937429121311927025039856384281711241948403700300982516692281918063289554552223025743455703232751474242828833161707727019996857809410825413798747831666534457053671626077198851050961915411036771751158467728660792345785889787382264165362298331758093871951320501356011764444779061724228290485616742622013453745481379313467788158949306214166413165890171460752754968359564984589793714783274025735031262748621641510476275689306382246763763037672352901924462917959089946652462618953660310685192189535873331507117061627218248137641470161606608969000284250092041715101471908162608605179391462104137099659113728546722413829254710997649458249519379778023012829446186096916085896653873082273313480078337089890250494209846215116393168684148570124147113716778983217469675644418284507815162285756361729909747369664575451774088988301202289480594849003985174937642480513911051543859180838778202862971085037456352177463211009719312725484588569916077937068086525583164897205024932473661235030256023427345682106276640079193455590613287376378662304764745527119448268655015475607833317434263155982691989995059221615970988042243358258837984697730233201234985167205753401172302634579801246787467139650052316201148966771884956313572737208654024858316456889032229933629740172573374942384253580658377066484484674240937709227982433038566488186020556044266920335956031292327488986768209800527046292875735309200453284703401381101202941214011665610448418461807519671114340911591005503959368961646451117579358570510186459171094609883589965152689502733987518784496500149181621333157138453690391725569798844707655179634340718287212826382556487236712827125161424239556408767359410465159395079288973879469776487227871733562245584197470691821221780194937167507368817699600944636683237300747886015537847620760458981136570565001956549855523258410892369046714896825143421761856318432453218117672351670293346725029421439745909980546670137924454114281153860159465791700619937530458890185581804946152796748034633964057523183137302246487784051443735703563475070123948733968622753657143455730721561667870129355472057561206106366694586290804777243127792635442323228727988059387710091825477290884764501989071732029526874091175444094993363808297442222309229084212640061686287102275656628021425850776195603182551179155281481929025472604548166723625913931078343089232092392540387117606445065816933139537815268007796689408386071792877956279255454002118488796435391792010009371990260426700096085385783392720339910076438137718876874084711426793536325233185069577319145507866845327295289052101547848364352835748650456366238495926791300471251148863120985854693566936242356301252019209676698436446774704882082748947341349938671267257248560057597877708125657130386080306742364803871772562517528798954582099773343809941383765917891258260552243816558557059112839890267849853494502731295502662967071925235650449527305968242348757139509614053754273123359730680793675571836338504374964672890978201726675830960549205490783293175580967266206602833318019899939325211246877439304858647441278010203553856713768521498895618839460893282640919438122592579890113195359005340852651752218283851193078712265570869751352253380411969192898912872620131227005023897774993414917468566700532920130205954834741723280443432376492460996555910882673473535243718512351044372409968149466109947968035536845360614192529703403335012397682316278383834852468332591132272103349976881709181879419837362750582076527209744755929810323479411838776097514818948044930574555092744059226598089195633023803317202779766541960547371974448977115996410147939039907415715603289676448888225052507614103706859487752637441790316681550524801498631821726981590658202995401795513942250789926958702201426271088507195798279640164205066619550821530271566105772616192238956680390122674424807249066169573948628339364986934349272354596694161348109559751572122716762941475157829525907718105709162842771932811605152087478302725641444736940627432277582947342287900783265699323239671171695861579995148821548535696141401868704289011790983325521611983551613035366036127613105137339875458017527842715356825128584369197010442614373739804613845009741366450112373568149922674663098187848060705638546433202967930085942161322974137998811127143985679072435411451163381197131710818649068096268384292415804787208876682849997570497440044043783244731973870730244975554920269077325479832835517405667393577665902728736526041837867331231391053865531164196022401933585677740843063207452023920658709591662479505735932820497176210410659265784649049596640248164383467867633496462720714441537660354354274272605307348350872271012163502000813666480554913929127495854349412970578964933047751064949960784888087396678335169525201754746444168918015911881122834635405461701578881301997091157598574784409472046186776094768879055366645517804888242529293339230481003039714778443910522621167939993648758273808326012740421438962805279271503676607597388378986068464763608542157491652218416599652248964000696855457618489491647625714922793595160218495103489104106397646650031303297942207792327018619852194933067338659615686744281836714602293873558785132402524254549607897258973572498137575872571429720544964848937338996911680472546684810738262779717302857713567288950206241915924045295817792409163437931136699082348164210490709136001130055769479675756957516823270821557406362798279321897771542651250967578662020630226331262575358714295285080553082212715480832804122417002320530280911959542867257478476730698634923017644539112224914401261678336897254033098309828575954725156149578584655647117850723720413788659367467720325037795392855516415745207445679559260603652156916195904188223550148645978442962721346073671940110799650261457851169745183522672800214625863906371595547239220056361758788726222653466616180098543830878496068251204137779118941360459815948607875357485277770347726007570910674675582752140129880947267804283996102011612662488402386550426421596265391525780255687948580590525661845110185859334195322214104197045401567244174710738021579902019490588525280498237887228876785286305392479527401510936777045451458061629110430459934568399543143715588025278417000725210731253106353998031133878634375522589170896933698172338324381865336688651357340540721365935565004210585102438053425248957992651260058537943454761009001478727969164387321171984077956706633013103766608475212723812722099012141362772147622087374494243798286480078615618489866494196211875815795515219149083909498943249663836722249650282330021938298759834158906238700679899474059708435684780819819949853402524581620666007816796502197810862258378348740985199591061502337490293292158516384769031985140339018775915108823218820621840499695315143776575473352545981584627669940580719703056531433196928582767465202112457201466164134011564697088745337969154747238194810051838555105819054743987113151391973077991332660922375767011586780120748742115176318284249843257258229750188807326016798789804767897975326555188971065669763836119078425377353665212493789921536817217303480605689363327158040791579274260838998228843955471105047841096276676320027147417528472631653752064396782596703450739017366273082615186901774674052433050504430049074305855459613826699756108004814274132479932877146378509232130320972109601589853112081539946355549537608698254392315339709452966863698485834975036807896224984955905388450156844737423500679264837095332800848316299482549207808663131301661457622313081478901203279440573139702544004865081846238822107858899426228527320985851152647366210818911485321414192833487380458448552400676047736093811735700504172928753235358190037032396256240492595880001070653452960775265510575305823585978205238123145888418931465133055618421066872080853819264108687975384747786871693678045459795389574888600986748560394934261330779950018328131158675797461467022034072467374023118557333849815121334027453250341883032561335530520852281295162136903074411022754070851260648353733540253031611115245923403111421791162084922995819671087970162038133483976145946776978216282487873657063276036978990813752337379192964404928033978489366093813587645897729528572835976771648224344975789081279409907653300060664530624352488378350474457120538992046977026953739715770249804787256070169194998862706745292100854305719975061329214158569678778206692839684605450635697958008135648619322312838395938610464951827462295638221885698037797116087751328359631744051661718266497200542516899133815587587225081679396298855398467857054075857023976612680238910333122541118980535931701311057115937480077247211135520841231596427809368394663417087876189645705178935706895608382676814678539928905948675407522009731378377506599796896733846729203765061761950510701375447583561957152660084012414854005270719792571645198877121399120651078490144199919456329244016339358340653547634271109740434241161095338750066696448050037014799419995971771419853220352603492064441922458944639932875672368469637847399667292523818554137057628826778445821777622270075262499803418391730131420989714756922290925741128352364975850876109913150349010357958965243548132378865203334118507232403046760562360933583263859318511536187143164281128997785948131392192530994987484444498551141091668397568637312859247701632442912278706544287769566666974871405737877563889146834217020879229137318723765594980847248583484003608640034208048668610965936989899283527591003656538930033413576721099989700020699908166139591119315204718903653255699921046708018580148572540533597115649992107751261938876123265747544781120845123842459712154577282663382520306393012353119144167402369367276037827181759970305055238206834785661900774459965675953995414699899876218631845168576888625808928697859171336388876442556913468632563743626541051540145859704887811151817026111023109922831628733505921874485293607604363751437960729458373301680528467527365121169768510369299960170722174587923183914054213166162468566592506549828507650068365987742347373672634549906074043847860160484200678837473648640125871833364313799028471686967626450812585391442674040538787318924854286804113527023830229188490667749272440476101527746663468775677518051585667526998982561204867260617761727003552127385309075000115320186859232021706463391822125313209226280485311685895558800328546183601442058977831828678852292076569159989372491744032100674367492506243021566829018795214943219222147205101751256638649098859025395987921490743512105539001405391727581915383832079580518373113606250709222819901618564214449097057534554340972886710914694742691748434993386127496363160863625363163664581482914670923760561912602633882319419198976318643622384231675051415077155816232327014178324240424068841821093672195208189681688128094390614245388499309031478546113302868900341825222777288706264070950654201657338544783500922465494739464280549008446220793029605450838289047610478995525677130093769725180684096122545556299038976741518637835192565869626239245422689240454334331771914376607286946325969770526643793966598224441742664372137835581555396764031117063597890160607112752081897896189885452839714433156817081087554681019488535894822181914037700835715948472106478933315240883134399055994377632145562326665227956282433630456668410782798534193505361659910602755204149046598029459646065856272116907828892265732309120973720605082773696265519226605402897246435937298237047819228245283871043907988226015441741324562394349513635147692058697062412372303976119595679608028668473068434147474545526214608480823866639075424575078719607114283302210067096834705620434001323862023413314910012985170566729839525504903691403281142151871064699827751533308168372298577641104243533657902828813263141872647376820631935759424036110660901393997044678608897076670633090581593798869605081372771773912481777547553517390895227975112976242862651617195621708532835540933214406842408739566328766763070514115970592038290393161709372235463500020610412216500368687474264668494882637440583751132626611119856643796178207038926395892497667282369876864773197915881095239030302109200559210215753686659313264786581173692683578978895700336439494254551178810658609210090613327198620264156801120740931603105932204112857535429611367361957810895454478175304935772183985237305126982666068807311695096112714523374019084702837455685932149949852237259691272736569889931173559570215854644636491410280440004979560331107110285816476795313912078630737003361939747222507043486471076299288166698998479019464994322457806224789164569322994103090444977156379676728352999376936928284599956412206392982600804398153734974245578001233530012416289498059263847635793059595327412489713073949752647877598654805305493079799766918098193375396760407097397757819305501207239778438520037131272964009382399428934676410614760838915292007958654716107403255600693607052051560385433750219485912574175390561893756952164823809598534719208431970867782966338731724703305303037792661598896907094941864547939457720821719241180575555455792456572142832669168818646640880660531970309172724432391359472641545438742876752530995541828334074947446371994325340945055827770063771976582974737166847592624510662168286042892054091561357641721100131501067435881166919952115727475644565400542567615626145368196288761963786997356390317842086523463000998583887609416266663622775401300845670748964753185255246208237918827329419240999307353082402615609001832540831737096741997637762557530864542267479411592033601452753045070064523287440120961046027002874007558804768989189353003817756943221086980257385244347643600166562362807979349020310820541033260585622417056350917450540279393716492813925477850396759579785345765355702154896226367687809321697494607326783953972918926554846677854862377071785636737073597182270286629610948573486904739520466089304899493324748848222055624546085594582465606304607102402025153716750264917325309558541529407131389569152855046997401368309002669958486267038827114743716262602284067752710526405201295247027614899559534219450358341202305081429578505220670142230156572138398373556799350419622992893706740227547562056466616046176286025073350916621645388922830028661573391538781827954227373772055771926653506856686548197079367705553520859970924188374419668386409799122288495086158909245371900400289699817932182940101759002278294552339894186556650316833144211181897666815557806560519572805535599406494022259291265303332438645074744294967091919017003147221635510905354786541806251703046694062924648447387656826688372157167802171860884305324013230638707877347281128946300640192640277064957494808666535598690648964225416301195033440593954097673645758446363553300576353081083380045660738631769914850503466817743827538007086547631739628969743467019656362075320162917127098518110648152981764533991552055116233496182268492818244717161871322249983586567689046334314174245074904629133777038726201387466201733873328499465098905371905421360781176255387886659090944971322239046337325179951793068664378791158046134757777112320600419083412931250355925688157330412058870069889814824662157285885435735332759409608400813112178434661344741710873295385081670934985470906543950669869271987269502318781838892781896333678245922060791748268256534587431478706561490913170931679438886697809773314441848782090375827600964987378427352069825600500291933830146864184692676062354064312841980529189494089465068939100081376314393222611961139205184840617992217218205449623954032867105222425249226076514578309765194371944390946447868830236834155314409861775203976671310726824321041848548551401615172990207234109295790216757624854229216134198736351531544985717052342747356492280645631145091100699242199394376932945164262137467850033435667866292573996316381675830873338035621514500581316827159854697431441793679270219777531527534866345106581249630531937736891407560764685504923784072793589853288355335892341254269292837328682529821836234647190586657805916309348533859977989226539452065012346755431730832842928240757933975304773010072233874017872003005615654629632667725932939989628546771683790189883521698969857729145516659884367991329088007904999023740377896188683057926340083976585886083249847090829880669632615500388686270737283440579411345139871531648974984425111781725851496223515340825420457745814883368728931674575781777045327337860733846103901288607300959206749688539311415823667821094900465595104130519738216667030413574736766482679236669977220821330722007417412352121434814520663843828945480475695427995960059815782389740545763813824582257515641026475614144311938527251344590170553776218052938668847231296055469779650627443663357029867492381544468350792541712745677637875006332936039660845103093033078458747918083913793769509218314554177937206188697842269729023114762109421158729268418209015379263748097707975778868212817970325040259750935041672331607248104229542431028683697395401852605241475373469141210847480533056121997745204182363102843809468704144455681489180477989024921674274919404045494112360223451522324065809444884811063110905718195424964131235757955933895818701968194792852165283426544747128993866542197004580372173618528541484363456463701880979545860712279596345969573213136556264837263004843267057605584895436478566044913009657294777581693452982410350382934531055989760063385733830795156478808839557102265243072488188626880473771739278346004378724714220252970873418001065419836547115673594739180149013798400113668551566395498029835182983091139861721678750960610739274050916177150474208011462684242053541422756910950007275712397535047865815415135558572971443209606220839288405644169611950236103352895662729187261447073063013127019826963309746354060384848755513648854658830531411471617173532681669671318744581387100964584590168941917403694122687655699086320844978276770510931165515111699322720561527979257533859990337950250848093441339094582544998160019113959454601166072997318550853838699681153506815223845925762704758017688762067770941524089818155128600504408112946449524098178178307569529212718975062957851205936967089193446700124367503687959943703462882441882451332700046363062192945334184254460863130647605013474210119555993414233529834191982579300865222458118713091558582695223012116595091868046990170504707857209243912085749327543803718240200678501805329471337693523172380577588270557959557113019429615303050372023686798807357119718436773575266951528189389730011421840490046960070979059858032160142088946630033899730947563538858880469367266792858032927653917987376316065310942159392405734445904088642944533227962043097005718592474375264406361364961426832417020179056133407311708012362097256998428136276379107353561080986549245096279588289368343126684036546544010701503312324717383231510980238915598414511585941597376544749078035402410329595846072450602905625725032002559467116008195402491654658227119768972815337416325415962152745921451664147945681329730726795618424212512778939057439294303380352495740465899212934029995292143112715304446091062412664423551261802340016985056757847567463143338205404260014422148793817843420303099613521833273764819178724292373909807239428805727503541754586115580630120628949111412067977816257096190972188833189711745296108424551757740984547152930395281524336046600922998814801627430899193668661345638063169077062872220941194584684866855267192870807199181985988141461714905737906844075305204130428981376010469179633185109588134057810323118956305589788813409753823607562808443948404044497104437964143425220486323838282563608562141743638866441658645853378879301454081354590056497923074199480251920979296430980595304170368339092908559909885316872346819712253697988843465430304232435061358303923665015079188427888663986578056010254486440456721670810759708420118085108636529116355936499693665409840486656021143178269828829999571114185754370867970072065259030896427762092461677540098213950976301708176468784131404354558307700484752548253966264533064183085679611766982442588560854982460128737310727155207758839306128302425581171513701255534478699241367080821080745135287214040955896470405412628928060629475746985168031952071461399437993626515261763221553062024264730473579690255144897592379496672571553094820343265542588467301862459343860757101573691815958839531970118272349611856812554824850751323079165784899489799186258735191014429805009691111936116502533670180280835726974133977442904981433820855898500395019244587501395148912101558207269415053456954396395830274343533554783608773204728410206263549381084936193976771944942840724174557924171577672415835398561167639037639334080455621508907319530594337724873795947121952275013072878040804011811318464572148861639616166146405355729786861448779048939254443789978790838916528722241980422266335002877175921848398529647415195435702116069317022880337887201273671027183477032860846685988334846075855171856191431508664575909256247676453722982191129217366852374206513990782947436188916882477775115588172722766679363673177204605190254197465156534742769136134566877597615847579612607315593978988211192471208819165362388623372026775124987919623289207381749214743307788385790508586350686532474443051177822203637836619462863314801751714404828470757749477771825722569120359877344064259414466287155659719826358887552331609193499206390318106945680956572811520914416391016664440934201500121016062416873325706481991887474194718298637361522455005662002749197033367687443037850151791455041473922294166293148350220648767458783676412078739157846719992203947692965002571805626460854659394317552181738412408565576289407825352181841271718727959128663626807090086428671873147146096349965939667016437411502580447603174932639790835160721817583946518355196468315807923286074836943189658547465262749174007828923783887817818514572685404306951135326016453644235380908586025865255997195810518893085408423784328261856242192472356864967135641840732016944915976588973496075582503015517853433192899397460871430606488886113569017239486156852992360998940177941455528941647750392532690588585891796198243926930103674524677211019091820233077646678668537359790410420867155608235371241841455270124783517045274027501726344541330710193674584800905451891915297811009044263873176073590052566884270379097189879897039419370621738178739700176694126958346559045454970935091658982798312540840874218640507246011890374360501684295298900057900318155577893884950045613601322083105118395013028984059293159144751221674731692165219418862419518967121547168100960295035031406610688800827830876234233786267353924175749631463904876075555534455465313778050097029795403322296631595744124758791794692359409052385808458414397089676348528057029831900448804689149856762826091785493945840768297797958658140827056834406977915578562463780212007445025844523573596431414984708110139678178036997306271698541098883286138414590615344421068307499417644241454803597154007620834486768473217956597243016466198800513939606363805429406342772675736729465404876229888989736010261026222397985603283533526495973884858833802524496510641802258128384510997381473581961698349580427308204080441446113410953152638609205633750197657236032653143194818759862171140850327934106671202030296883954803548363025870070249662809367309562050762816184488883493314384849050606948005563579700651215401591100863787758047014630157651110401874088653781685434175407804453484537587869692642466999509572218559473107242171288374932614721072813896828513545542322147354966056446280942786881022119567157983978607118737586720410240865383016690329921291641918452952968437115271296550674636425825212070500881325927540142674838175104372417566928184262803055099770965499111946000978635302550452410935562615053308378482711322421547444030744806272859166722402134490677492250503897178215639182122594600085757837782190163368681804519546735319591510312891319483734639877144616255451918259442950900150731547578302540071862400362629670298512272179148224923088216318868226929879331085174114677995127744644188137552886074583052445296392898122397645277710236683941861234459018785891463093028747263931906067011485510443814883189445290458633398784153087109785912069900723049462847287618487117086680657082476140557576649522517028176575323011924345538102494064167347573744163697223278596044642471725057080416948055720001802451011446820559781777820307909988726471568210866266984602617991242529952097737448955199155230819406901708093486016850861928864604536250414818096211508642110433821560184827552227588350508009662538480721735275577741445310432500378036238347578962994724162799223396263648929889456221212189781936562786829474535762630752352357199791419277520453798057995291915792609170528604706182985134923186084392067869093613636417165578474575862313688251442014076443168092351170758978110142773305543964958176181830159403491930574532798778799641533237704865775149080674168902381012928474193386911168553056954407215826050297271651583561800191948208434941195080902908914868079124941832085388536726236943620294451908934885284335741755454557681073223007512941769899303931649083049903917849271794978569526771139715593466114004573696620885824145871555150161752121391869746603134924444189772687554967799512276676816201198306164607499428559876845417970370875517288874054280960944385046806739623665794386463641283423456294195240320936270424867569370924175344514773562310388242370544438184221644840526034413901868692294454202227765739057147779013569341299077575621546640575761386195122561380603954991144465377376978056631255533190635742064201037544081321124390957807963511395520325693504166776971074973821623464607854447390736695799879528054088606735116617529615725497220303588969328588604801866909573792690471237028604256313843193172959666181333989374979213917302757197879207395045660037531588229391341513767111818305813040118139376144807113952026086810699437583968898590985280139389228128128283228174565099512361058447288775262087717870807795394853949277828760351814275188635528925742018561388620945322300220362112414978758810847048721854660568655283217800725532056124927114119035955329998548336847507114329572825007419201657702621468093840528904403814748432750355686470014940357313272589861129874384382432947026706186943042534873288759101171073146999099451544591822568183095244480979503429438253090070737733133471741691097349233286994356970430843155227110555702908821963022855936007680014198978739719316687227743357840414150335413373468155562967086017955666911595574278360096210147471734025335165617206583802414404923957937523014480409038048865948954459597035228896475245682188025489163002306158278004135572139335290020673112280978274247425337681476866956289654041876379062872191125495717868136030097567483480589949668033604714500935281968984578401489492708255039572691509058230155286899647987199403081587741407027915333074617217528537554643173445474819950812461207852703540687262697548883103534787822346574994250790502315614358455561904267411447545076191149141090143060539234413830003882534402151756731066309830191110085572681823624152447730453240236236647625456977401696851420810134051238065239881064455895055153918271943325388202096439154464863819819887121119233053930084872394344903435774531109313443245192652576566013919506329450323039813255783839988758235296652330452209739122854414103551731005919465549717498972248714432422798162307427394554952217991224551419103601357023167628963587353288730159035703621439474726004775758540831250118456245933426588466364733431990233211010384103113912617868897698537026663779974348880884668930749277713109423752740494391211985402060925612249781438043722510623258175688960667382665856463033657650502689525609268067421544517388976437857228777922422791904501513665417748515042520492841896257728432025496115019297728720636273751882916489090225421352066593229347379185766494183239462499591318242354694353336556501539632199224883567702817235407952727506886974796524571101154345484433954888205650618694423859178382627666467260127951949488585345407621861722394857308372022672568124195376940103721514700410409915305691152118356253397498169860019818028051514896061267247471964463824561218871967105649890224594498194704805199454447865450648752783172500740139114017094782417210553901494212462518264517682320056393276250950657901741748935294897660957765551132339295743134929530629791949726360994777036601297837688258229434866912231117669008215321656234758984410476679092965620989843517772184258966809316298730373008044485473587382397756992256530500538741822362739594005562259068156395853938555032069652813942341324572190459373698257629827929992615919408841028386985657155817192800041148472999354628736541656909316227525001087257051026546276731855010171594878573299174510373554448276788307456864036823211889093099823220551737447145195301910776579739265718318077392736252066227964167512147488411653680217909881663250972990558259457890953248738274893265245039326672282834114995039755110841374554417246825052127158452035519995620143629669659418679309794857341416101608362731561813695189057509724880062370214529353930086826293893972913408902626962784297552751291775027776492891959780274275290250203853386937217224739532212155055057578027252382016929021963463867852886401199053606257920973426825712878302827611511036613628675981857483388193819671631928664435134494816483063793347031888901706065877249727918274994642667332376405245389485210294727684535163945772014758282988785887935574445359035122229527138521414773770209250767449121699608986765488865733434456325155052975232651901268345012400386959799120838450100950331500772350832069711437674013726687578726962164937092718900894533988462738027118325712792696245182963897264323217154242149234892300846486694127199620732026603071278776043438316623330161520401665040958874673827421138054931432762952849507193644999379520961126626424279384953689843458116217992701899522034733372447909551241996578491494755179967322232791396200176836468927261508613925569253189203420633655758133322196610605324125015969182032587976878394943530677026038233589118049067285983512744075924644608643555898107632085665525051573967800748787093832601732491920583962688340813829302939836356641393162502779588432156208681239270308007497245719786332479617608181204653341196883445613081149150155032253576517343084851883803659924682499274052502687313263683096187285188261204749822055580655113656569030469544191805603826206001117996935894791549287971130249951856663526522869149708634282716938785917835204727897768184874889645931904063927192317238832659595823333814915022562457865929557845651423970321212593016086732129495859933784501776534185944685479513927385882690218487578612977838156944306497823644576058771414816025471813480508926007206136569290346052184442900256791186040877710418049108879598036625806950679847573311564301358383483191798651919051894958858061385241222819899056952588675193020553860833483845000102969859528180284470741929223829289253222304504603278648168212101060401634888126703101859378794306431506494925116076392123407149864615277551779584322242538103450077579433618663330515706213359403603572993859304099732310549231557956213299091028670817396953309252050513849900463537499763645589776170521419807199168932451182562173220168170081535725517532948780286597533013941930006834130637642330126001371147667235812705984499954470951783837834939496169605756854913898230166246807940627140236756075164609205633114675641534359857253135540575517976751864119002095373667815276215517184937335195002082494125282532146766204864002369605297614714223965358409331386593083462431752007873491270104397118659871736278712131852370398408808327527675057524064690275484014477756380041205701419651248542928809318504175064879320906160488483709072931873442124762966211661200468457132135630529531118748015135265703284661365421211609426870210716262842792682786714894134014892658291655509697016347513610747962663509754125471165868910851659500598755772589306932077598750441235670708377426024887174222306952911763571331045848217948501811961252115817622158356374928748080460656605481499663097210925841907471992281540545013609716462461771983668884456864471816568407766511812070347546358254044563241631719977618455911531650595687312986051986001661489955052991911589113102958036295903723123502568748122959257618804231838724917314147918234076390128840235245770950288123906134411445087969541820965476224709704130951645553241564292290066575532794322303203047660730009636815194577228612365148917316739642923534757421591940554305362365918648277467304838362887830775063030718792282229180736116276446041438659653112662451916671096449555048374784617515163986926024355308167280524884540248919350301439010480378165184909653058755602026621616560752496198700514609435794155477368897020450128201880433739362209786184945984005059292736327451614532733959064191101559664664672967663589322552087881424487113147353268824778568807975281968744883311178505858193307859989584299788984165684460287141059190691486973189866452649570844883206610280577952343401386547186011855395280930010332122693534116401079367451471099925082000871851550349157355660409466520665904719863347828290602421602069991715660122487783132425075438105164463983005523461873437765664735526456777513185297666201579228568681471828643124695025902571686863437510686638352592470997243930334380247237313157937093382712977626245480253078545001701184194540609667458023487738332895235975864011270233689052383179073359302287073554871199866926574368299436297343893617231893960814485277795455270277597353738040714698284661355874063348745304460116302546734499398097290792619775846930576612191597383571983885969123895582082313152140928848398579524975291299377581827676628488387888604757686972697040901700957181077894344153173863136134736890044113645091147556822079814199314731447042207118087497232520098739690685661152334164806248213667648708514281984357011293611334112336570738985738119466950041348856330969705718640199661281124019272462319938361534517878172062985747590280443173252707715806756846987389035141913922758261746948750092043166933996503991251431597198407111138000340996970784655360041997895151047191270574586478737732008350353037440801618591453576262474979005419288073208210616020385486196170817443302142656449307702929851722062546295058007326983089470684400260453820340957222924970028993830881134638354848129842512043643128901481188099538092021371474962074511075143700011497194788011026613659590609105836901918338368306604869629122206871712792607305783983310605054001282884728387712957235382624551896127153547590253833083832483253142221240056058048900878873289213826286867550038953984116793527134276818208019764241515547327465024913715484415176217117147138578943778145292333513588395289432243107967349076912133483244022527084707255384344875161378454417069422650163181414111748096356984990881372368067372162007143492514819873879113013676776144025080041265506640362541822191131674779997596524390751368071828715659045496778125365997181349680001607035331436129806079663909485397426805443140244247088644050395766253064052123186565965651632573097541526909449208009576729802982143853433181449240069064516362540148350598334796780735964587108698625220958597636138914032923661202167511451282264739089069033310193946698263327133782386112969911761475296491370733449499071418488890695096655320008147253800467352655664287182389873874998389121180409313730395893971157280614885254519937917288847125378479999939237362000324811551630534130691663459388846328035125559544772394163255370575591629232535142413642372120666109418005478649976155868373942199596743835874264267965615572146273776526551246824598653132407543017772565469491415076668994071400959044564613742482037378218030231065123027154411697256172429200931336717026292011643677625960392305586151290698884706941238049378631564079956300049521726177910054545537443363717143546284117113781584916492807714495756740435298081387773579784939542804676343196306780155962892428425966170525625629029688647006974129282020021610581505009795768646270642110911514107793224307711602978214117424267545476708472414838042497006614094626062527761957882946039909669398972339653937842410938244773305124055466401933831633173599437020082684501308812525360365036680713997682939619974160967432254104343646309070500302609438139368892730267293299976833194908093261139733268257086216887595979617409345083768280671304228827505792875636938431714509726127213942447954822203569005205224400604850604556599816318226930040577403112239853256608241297487983096941710999341244684776502510178774427035012657637071701020114655147444336919917875984114160846106933802528322566559810623463770210241573793429537842811857007085247060338122787793922079825335519758661104515142046330743705562067068318796716415388856568904497638440945980559348955683286293696464002812524743179340740134537260829006070387478528090789066807286541957679795326823795033101275239136843084695185570570835956172908079729773386229432785359605227199055421216093138032933059199434385985337288380305983440954228114488570152921859824471328333828933016723603721576677563492819013113829131298725504958918246678358950571630866059835418641611284236175958843035261277770059821598827972289548356074210614672988648088860727629549178019495777896143067419649005773972214020387034441182428535615282029079436906743962307062593783305520564557085776355298226953290985681713653458739567777963520884914371696953797932972087768676903154342498604937093936243472719662378713929181084253828610364654784325317619857659177094257290592998150997388709383971620036007944637852395542428465700163316598589050027394402267281492013505219009330209887987480216908377669776935621838130678075347911424536797929218642831494309094436351802887141036518266412221484253009120639020408572485474360871686347157165306360872603499188697323459539695799493591984594404124427128316435371875097901190772326567768015682500793457045328216518740565494714942450617906832225642514788471607865869436578831351682763140305644376001200603598022165128934657724901061633540652030920125125485753056769714750322642344975432420425115607192467188293854182477221126417485370873099807020646360188420000511669656815133043697333490777700717033386653965789162875925080002259284276077928820156778474119988763656690731685440822418516482690353530839522445200826784707602644409273193737683121920866580139139448845403307449554995911665796410950962707322250642956776193078676716440259244396333124816144679828533204774363222640794933354712912344339597678044855788138878448759341457189685850750806937621182918872980646137452369788669820858032901954879132511253897661706412608363892453053776994726337415978661797083670275924710525605495771778307790822444445967345495501010192586902393724023464981499061246847994326975386439723723387093367332277704838620710058290706992927112001933068285640567696163990689568722586656985920260504502952390415660171952164718356278338482705088749112330961867673509747023042425178270235164137065409462324106906201671445422063011501574188548120127725027257038017042870155300084311234842291346796438042264891180045153091135271814451579836199193637452840370595017224863924467242358938285533249708787121976414087315616118975090239793380399581346511672765497006216657055678145215892206099546948190531378194465639413410846645400104685917450802759385774698569013489843387584719847310951231851599789462728887978701845733491079984508740086429936820393152580551518836647027584641812884492384962653780375106806736190303821112250673026555748180379961018537941282811015018075365948272776371007350680113767344312900392110448694766694249236872684736132369867616414407799889706471889944635212738415910803622329903791776792320425127010908292420899303992509692687070651770698825292715119357350544954753362688215788093412314099165718409501166297929418814416744960510818535376904196980031677938044396731334090131621720309073714196847877385302603894364689596497678893802229086448937423788079708470219094822326227938433570370624275306105941109436342409957154940059789804739846717887880445721666311760061323484029823831717407993841086271277426784554598346040304502571775357981551721825808224386033844887981200153876449225846180045903526306389047957190770631060759084149869985061984387168641855057036664714128275577031300706488936970610487783939226911086300121821115118884885335651264512743458718939906369531999628459799003170012959779859508142142613474350157437962403537240174256480854343204932070049860670332440415736328811045318787643146773981352291463631069584856286175632501609442733545464937664930729801119779130524913671082187788369498483450950270873389280259344286762834110802506505010783022203348565258605063782980042181108889459208998137957129763315381595192787325913474694072955591443826523259199325449744798013961828318195557946190529077341814936802704484737559559638937228854020585416277116239617136423650726593727250235523905646614636922504460664102643305181667606634011870844783873621528784751971732564071406419618197234995076221605756863560430889385627249888296553494552508385957549149613695968202511579920942249324001984595428126255166562258348068787853524924643069078088052753646658707248294347495600095380468798627853198381219164471166111304175151637439495698315504241012803408100348066039449447783936172670919714775039058222940672479166752871567452372762091071225673869438316533226857734569755726090940859909191237749728857097546476154305578241716047389807602795295888640607730414066555298824838746100583328220799174387100229705425793530540261098091834894511390788542575210014548792189741145044986871585011020806983823145163305157673924834598737684284412028793748614599137706215847347329397206366272322567904832493708473312172602667500119720819198099762508536226700359242380231072505471675797474228148600449760434178052654152941324398477155979748260529527451657810463440042618193660985991216965691306492244023514655833256015442087510953269768245345702451735726712541416485483313057622604190104694774535908569176515115423143309363989893207359618067416063832952175751935127585201492085721811617271972059016681559081618486183041122596916711731609680814182297238918418309404904080086652349532386209374714497440899276659341386456013664370601868689525097566285595246067086750927881416568936508429962882402515306388193610366861098428610745637583460584920165269012873621212742751878666679050874660703716797393345542593990481962191411886289744763548470450785526465789744264735818847848567254206465893992362855335957673616017259454438332988908838424729859114330731984060645613612884662314569284612707491569633396966814657713042002721477956888286305220687708036889547451574053753288535817779029047242341882877712748558251116466049971426090320267185639023104323667683067810164457236419624712398433976045790426900201551653845594531972513729087511617876089161290176379715123877473963553289715310811740741268744585647006517742632458877945968816696291502255886612654481586137760108985184018471620259671268648457464725591619369376705445963021421712339811469488457306563780869541713455911085399613285865731371836562471146411454703549199560299480840536794692612803159360797604601641984398612229904715921812937747337883574620400329302452937276831168780388358677302227978670036069271354166761066998372994995925410831751257178480986659408643352242216746553704693163311131546967383375158680304429271704425648133014199341030999418990237105019114611186438418499565482470983321983171568447861824685293146853911761199699979706896519156035934716952590578455124197335469694711771668945305675481742099876034571821737595067278656249575419625724355424087774935137994023420623008121401420146624034515933773824095715949138769734616892324373124587674569198240119898465002319674898191087815917821379651310066238944369535460110440496944195863022705925899183794164457914600567335279151597834425446434664214424496902395776893310775281086713510191143230764685637237900474270398194098463828895465018284422345221353203146446743918489689421911382341820219136331570652536590862488380239387110381795592855954329557420316115971146820955156189045459859239037161207144827165584447576502108546093948711583878061055620659970663012694580346682798849009311807004775930215859689101553664282326945083571521750783319824423725304325317305948224146120084938947684923935960621727708526958345201601529299301661762905880064300697420731049911283344457920048236005429469066288841756584791591620153344119806124413287459351356257941534771258405565156335314618386087730973447177827281437179448277006432725573096704742610374951544203673141353093261009778021570620881380926680307120107346595796149159732119269511162246672721941764144102903185963221636548204387430681097128366938252845408557904146425924808415867835472308265388922403673331676016178230784485992816093687648822712451516537135460955102866295003508352835295991956234533063178082568756601305740685436605101043454588489960666634406719551734800333690044081924104185787023984669850072543587678785418364900512685021708276953035726231033978554993983661645244816468401584961766905374113503515266284570873129285867634175428587773412385467681072231629029493910944275690911652662392405937178090471647337302132895366330060076418519225340118084676589407007620718392470253912514572763714620047925840214083053988674388811616850513450928993492274342378372348467267985115662634792867473294047366139393223742858327132306109913388789811811412996998686837715689996754267969195617569116673520139080648437958585586823557503633634468195952890795062225438249674537575571831937064594289884058606365761823098329008223956235220434374824426206770615288380281319073383489707204712715618891630374993264233876397400916981098860757943359720301119479555114131434694244735447565819210274775952282853326152158903652327964236745532791067488508788064564318562258195533048146549166667799897711151279880619567781681879699237565963073281625637290576322032483798805098497790247796822445498348163322530384200742367180762117855455978218719453462845849483788520174170904792306278418031289636184027370708930364216690998613489694204008039069254703725172595422218919000815953887921482801966674515784186999798103972510893533705791268969990161671780548396912113968267633147651161875932189398827498296012677138060667284763859856709997068969595733471720957095562507801028752250059723785127473031495454745469117085345307889704880944427289423409390056781850467676389451212146702233332700797546688752443118960630633418199335143576564497173010074953035968053567594166693248199789141063966307727634801181667377484167976219202364255076467308248222263358072803192897743299802820790206157063460890091720150882409288791836161920382038332128114629581567885533955268342651627706747109479267966371799791742880582822344189606932526781699788218152217850747856194612736201832972376471329329828390646229629639862846382472471593476590776127184068242746375710831226754394479705033516628468109866422489064842130461509000427531397356821887936342336714971869270234546575803485386935084977721345211908786658698859616709573470824927551006586934774739129468921981824874190024768845240854589541914479526748622083080613723979201419825695805204793976825882411363875035306266974955075605325290775735358758382814894018135297773646977494824087115764068920872359976655916232342649617463140396996291923558821906448931478449470043370346298032260832457686087257021635553608934567745957941067068982573376606198825727973384577169028836351822393663441976191387613293124491230990515494542401638330404159872307400076442486998251838663287831454334451987250020284118249907358064652450035686723365822939578789719659466398175873257295750434322693203293578138222267549535205343307473985568196134013603113208212535927309138913753858574068995669143745795579537259047943953113529849412246906765321138484659252287253841728067026887786268844518940738066747395208537280257729659498895985339973111697853284596851159703752539939605689711288314348862854664486648270386479614952443464796757870380406302358127978278580025118973968265362058641018254979673367768605917071379307923885531062637495705744064499305564033341959460093040251983321491906442317310812203121199961451650953828017413624230104599409140894678509289437362850169303802590372152479037008385869398028742581573817293468647849698479275571479508473808016571733706045933774244444576094161515725402007579083186747973848647565680964752191164351217829061685869560553415482330473103001559560652809538397431168747551522248842210223189861861301196154674195882745042769611530615746596732287041439481010191232988669310829102683901922806369914941644308700979334598211884666130142461428946753396236411816319950794114161729545645894571196614601418714356256146819556305970987497041656116582818401067523254389835712217627503870020377639484976226723135878203026799472554918766746833869118675721011936265819515849899332102467123110351909876897230400649466040049752643479866387641453184173037888495927918668543551490449281901866924615175040418735577534934066419847644345003022804044381476006063132501337020497195544726831815789791200202437498376586144292262233914215482286232357938000073016063128118900189187258849810565646398241218366376208910159926012741259629453981058496558014854321387307407523752975700597284541803492879159392347573331611853217642738031681749173293006743531196452193022615224169316372906481685408197322763967510940877366584308789897970347585602360152999236424071613511213922333019888194841759479342664034570946054744410340009503272535669751295794820536559975764539976500656516584648543816048220430099989078621034707666075986684825397838708946296632622849300615189855042832007968596253995623022010689534711538425609751233991313509577621581577437194679315609360792783945705709739857075496482426317019858203980959408599611080312592736202342234533395104067468827590542131360878543124782641738662535719114108113225054806814027707594244045866955140523024358043657072206016347879503218006716706035372466369373625394735177837921171484289476151306296250556664099831942242389482517508586722800487446506859418364185230891399218115600095435791149724049101797090367182228608219586136789636745285590858778352678726903200484507057551070488549786346321753895248488709850892707037108608962060578437425720578263437776176985743217191419797801734475779019234236660329518758013366545719550693078314808719808117775457088777441526714603191315992928764146266777050008053235050955078559693079569727929880652352529117077554940703057876076576618671460211037192030994969970576602612450601083184812179198793431488500660119690532535551304984085535222445289987559691751578872747604631997395410166142113090648657310565804722888527626574164313906950668197956635237032553269471391129186639799209773758829920556616844187067790790985999714588874775384268136503482419277880892012580259754474706868467770204157430613396763062623400949239595690979901920937661009987953298040737117403946004575055366837002613481660159943894170131353671028252032659784790688818426216939240469162338750237134269282871482259264436510979416878735931360732020611899870374176274361394043231402547584177737175147469812403915912728880323243280972384788403365510730629298008830486953942452105255331543011337162695274968036601679856452451803360951917164270884753557443314415886228699532436665280823313835496646788044149360373578883866726457478597119249278371680289122648264475541225974068427298548000493465800046427291655564908169889944398140922486851725913007150182291166506678254471654527739636133065707352452102010156662409298311393754407272665253949594071298271473409736049427636496816697763414000382527677914865582332863865632744301486582849131093965063277012814964836539422817475507787262691715968228051397416467169694387300976275683031538851104136240434439170319763590810316872518827517354863994401945181082775639451514627325462178672980049146535793238364877436911666845116296457087083149163576410781337635359840142192366617644588269555450937140421726451034579424654338116972757364928534433428803794764618765598351496892393676004587199604080547973050394074600534201602897883829233209951232552489439681315235942995089867500775034523371774683360282725339731784421855941077176655541880031988848787172855414480612767674072668343337402959561995588576640465210668900356757942248494406934840214883356350382307245687558303334246854271774388280309504882489060217128226745071413361965559918496439396965945999046628697678443004678101941994458441982811618539167952243205339481033440843645818241462539865926528804657212611439638337193932846307095342695837472156598400831394318841215928791314902003392940691511700015223787095759489067351612169167570239171584044499850877811474395354372716804483410028281023331719114240164074652118786794158568041063110018088429952886546219210937345746456924813893204365123582490405115355626280929951256067594109246323205048722415899507013475609065726829392601944585502841239582065648759617047092097413708128394449001912930550605047734234931865907716000086856250497881877054012443424281621256770118104490692988942884416529244397578915675592143200176659270542983171791752854735687168678663512396115156054421391406056357285933414237463927502944405144170390797160087195467952415052017405555099326464442686074715959400578297611492390552086416110267481750981146541773570113711265990832370717292588002331988171544519479183849350380118737299236058020429032202108270162341032419513922690558494593475390030062444328166371323819131244046773286137068954604655527051373893810311827637883178520912344786997408119219561528880251301268249352753118318461835963481217741381351927468276230324068162748354200162144677299133206964513435441767211486028587651396896195022574855869191444326728085230789445010698234827476951954290496839289602044748379021689472032638116869247952802420000249079194130001370121044808716662680905577977379918397812789152972909410880226612807499718351443750852215031833413632069541595685025221505118572694421355385009295074092041615408162543037091825256713931071663294111535797525559991634655153815731371409150616950285337732665914235014103721934320345914020409509615515805826932786621326462252405204175480229620692690622748361816833670165801236706761009510312815034515706252031387142000034969940271996382244226399369541068923458369917910237564278100009319542087404863226368052100280394291702648944011423975357992764676165600158772080143589294407802426418911695904177653589250993109537256135852518667356008088123162683995244843317737287206810902638593308083421725645619525069089631772598400496667904452478054663464480057246714689172820258754687538459201824864638716297944163928615119306857796098312986621784985544052694915077234995103707203358431699455162230717288444987138952819197875982317891634152498619618691123790580092939069552713907765409860836665429919150895930942890586758079408693245456669533957003184307580636505085545115324919034828805714105768352834319187649982412853612281559458445727413006204048084483352205618465373035384322204602892547139517739855505811822929608466051664779499118888360812052358876705957498701536575169547500469428795044968989463856650406312618847162584579086277195813858543410491090950874351963016339310137168843096390243631464130196050534950861278881655908710642885581734341027789029092607638964085245680293588068484549474075314183822228559961403739577008458018053165562843591543286089357722307666674021404160747346744711039452529193876573735870213136263990343443602782622515220448599472940744893842608224310844163915309820658876507251248931558573716062164431277464153667101969262039688508414317008074202855600536669365809760880798931326531553105633989798240262509368075810501435514165645301049719514201445872959045779522903783469421230765492910699053463374386499405979406578455581637259147894058976308445792597632976202902846317963126052096880382807098156629372821872425597382368576647600239803750881449207129359054510675033164744820219675791286319688455637886541475162261791064351452316134153864305493413198772884476878166547663143725825809561243552024942609038625514931557365744217011138869008260599525407808166745321964169657250159625327602028789672455359385939732602246634049722494911919556606881587379083049476198587147950799284016610995255875464650320313178105452965788854778276513296122120032591460182302594069365901709237518092607717441716364355381693759669404329249495454281838878274917394307963056962096290221905084051174751417534813878963698579338050145793755786295082048072546153493893470471563959732875874463612256695002688582040796780604657441367105296334930201267071187688143861980438827236063754683329646648736723287922869372124503835663655036825977704109239562798662718529987123587895204618261723678094761223558654263615523873419276274795668792981772065297534441273166758580541661939506203652097033686878073618272351672526268096498044179120379582155579168634681551508739145964975953971814782512129939747817775990111307853402339218159246493043774201904971483186349776545298181121679688130314562352961511201506119797797011142593046318829042557007480096750658582664472114415685519951809176647518550907151830492817733497016590371322211197652521845047292741691839182952893219163193642282582133178525421767416030473241807106805993635038992471589934558959125820518490707508510932432427012633870645001008107136704319513774277935008151499559338250482507825745398025826613862006911514289574840308475901179068508354823433865207515021236429698547598997611161437567476573140741810717135022336692702815353309777987517488347222154250726638146075868882408317565365682157651962024581215377809535277874082328649665284002439875650439550213820231554789608218801808557076017493636619372439092901120866952440324961189014404845904220561002073012332678257826883533115154506017676589132608993497648258794020025447126601783982451858823253867961298012957795219257459550129140732259514293884416329175018854271513955706019086381422366812447898078117140173988476917714606007922704930519249529325263374197304233311438725789690371803779460611580309327602068067706633002203278969562021550511888322758901250774921714292951415306486899284523737010887824565898725002870334468223393722296109458398861331288212061799361788036834486777361388891578479745364122324115570359435118361337483098401615472711332946887053785130920771507050281394420682182628265509733561412670580167943945010980364225048029725942840047810037275002990643202917122647237512713088291520120402073809475109857349609278339341485500587037814091540432226783969733960909649824279696675453298739396178026268710120028074076231221355018916621756271214113246218794966474620836584246171665161378106326043011056215863471962377011892626801760701718867918308013766355010895694523030468331742982816824805170660914404345673904141557513919425683406309047520563559024125859634155625455625642465923283728499956733945427530543833274979072518229188378106048350822016764658989922231562184016744889003362630182067463551984820804863761001316047797797219261578571561524468891202310641440663229718432177127396720121876127338365835571701287250676125723173016246284450805074472227682008721717742350518820403268005925175534733210707708181197451239832088528881614078738471066805002148983057208349002536208426655536753309012032922087804873096907193265528337894899828363749902788923281477145649901207100275410524765414794650803578033704706395876982013879499580026897689940248143016867884748507107358045915392663560448799544729971451652618495643547383826074841718210529211392381796167906982601567967885348619548647500912004256806202151973140767727212949917370449922596327933012200026273165977057990620616457048225574136920791482983186587128675899177025230609106689571797072710232477712213494349075961477331978372537596448539629523358210551380332867647025195254102073610551422489869217969106260465609357370688448424773216598264721622044018641239765360357243041726115084436169889467821169524141474789414831154283548039586506224448280921220286842777471812056480362454727663263296586897810281515579079424315708705901292900040714011309215773957669584288310625354500052418717163533460529436201379393685819399435886862054063622948824479136364164265438251467443558144554577678672135192726647059074759842059480817770132120711555200785494442301620699829164961633624049270250534201826945839710466404416619352477610585015159066706784553843384286923891762899134221610505981598143675512911833573720576570503258639828778525778425672847170153416986410971134463497340266000852171188508959009296622935130656424425406791282120147867081385533369408868077563444573405510392430133686534593787330870359937586460896939413658014165992243652602301645702027087706829045152015902643358973939892492347457445079926071202391055995807026209616648474125270937822429476374631730124703850679439735774360594638973539507502326614858701110460418435253442655265640045635327560490531942589721472460773189553310499272962425641478631000499599894885845442076502152773402270136404009242862601909705923095559876290153143785511981660870702611483735636261324525608379473466195241503096453678725142421737765650445223582428027740244529334815380489950140702739123218150947217535441658650550797390409482610979116318226056342716764779262505711902916523776704779845259231909573217715125190943869894212612686775917565865497229634596515268226495036317633771837425332005849618696647711731780497649973974536735720812067423181904840240095843870938885128359963051118403023525721887853400644170606075123718421140173027733216550563017724433353240976648796194495171783068254090839954227193957911939683048420502147024345593650576606680414690775602061907021700518753096300150924347629634132706092278148699199119484341278421234944474805507490932038197147918981378130217384089832016445638025356585669251273808027894675072716441785308859759195692203299219960867456333858580889459803422432113411928447941541128599167105379756630459769550717910589276466907063533407611056868234906193237739102170287064052391728332134090768832326611475363916217166938483144868500185366590969028712365215874753338046348253678955277144748469829963674494306148285485945466127586938723653558018855949974536789346926059957197730775084332032603839110999010201683203601873446508103758270173743571897763065250606193958333546719884807319391804341573276837462596117061444962528839683160277572795410847663351510908308671009208381432889577901780599126811451845917172327184446614573539148612839686914571167258719576189010478779136778399549442220032841039953133023972709724830260809637568535480256815015647329637183272082247578772449913511379303182665304704442787674589117540295934168237910679256454948317500659644292620952480358838343951327549735383051247354617844295991379638142966494908283493138498616659618575875842631220324430589040689862369687654380178091650078760878282898372297251434777113182613883119353108731829060497152191107790448118096967411892924518273737563667324463290281127555851551439408458539134610394776447540227224850342847779205917617135169174545023360377443423081847817010664971068221861626745174012097832224721561559912992843005903275796605178992546124943073870022564776410969791567866110087533985979014925084992428217252730474442371291204436248998653469520449736152517877136385635444571237659137637535454264747866625990283490595906176482647835453217025509079418011873757338438086482956841391434514633715751373807942285903225379680218306819247966486856606929047982131607347562376908408961646470498247037801308813424874178443038957575518070001141206594064309432979223236093943133282502970426808614133773174888122831079314185490150369720614104762283099162007481086778296357352701149799270845838820769983248307690880155053745442925278785016832350559816761371795170155264881275181959064468929873878342967364696473375293199906098688978713930091824453141237902846883713439164134983691442250421965642982563535249665274726678939697960760096106337936686450287202140453629052553301441508497719024804244648034313171863037765354981844418951727653052804389964621554668836498973431543730593368037459103825448015281755383853569628681565062762233500132475248993598107260408303066313094006062122990791291559688428906583191322856830150438316866346290660339270327532673932815741678330689857204314690340929586260902734809609319267008805049926449996808612170628414400197372206628979550100973182383101249121774133766472509054220424757608818640659039005790008412084053802288958222738593216536440133496348433734466811285434687804812900720575901352181435125233890847007307263690936906227775142533469929703978247126371141989328277618722882835489975202076775056130165925722996535146081029850113096036622439943056837157652679217325837826506369083009006414835738779003490276806185665051570822370151366396034605905769395982621727492799097795528507735604899677155675243034623418432369028986422170553978861867304918861955570268228648519898353801615572353499902440211718423925029420138587415372953442107051829596744401824977272435030361033411266172727886882367886767613051400411087748208997092931325960875430833087111479115136930739780519935460382090764157518406217090970973450242057690759153921674909563028013142386629563847393882162967039383137620214631715876417217976654987195804241986114769325889909528848176608829378020912749368358541934118500624743851038491098609861572116356088778442248644865607048464707903246542367436277128970572626462586207293835927349547817591085141856358663891298904711456242185388235677119050898900202003336580329001844754976796532133202504168477535518820830407584024007716072528338822522632785109817559030431571242361911403184327183488229803479461060496237776215317120096944374657211873925844293369415169406429661970844477148090594512235754849369554946428526952317763868243203418053640620462187755122294560904266457070675122473283070874541448121380107441015973447455529936998744929371075830476473854432403266999438736047776341650073254434514640361373214267042396381425921603347098064100470810864798132203466251914694926691320587779333821295392671767656019964353818215108560856669958163298231912038762606212663571980655560566123969368922898429937249912214759489083452447170890443074442277481072697679746836666913222288747849831441714425330616820126520786754909553130517741907196010464447471687471489170810086378977523413287863158295587726940452217006779530826079508474749769190010670576193687066385897464222413525098965710503682404219694081389291790206284942985029530884478590397686401701101806042518990550007467615628189480229258622686675756745628493858069584102472996447732508324035923547371522724605202152705977262025880355385874800813865282017124487056204199995263825683575975278343415024603801793070593853203324778560609288345047273581907618764355415919629511838604517973744615905208717643620886179643984427637652782189658486999553809263118839272432205531457636709126307222810391703002402877032778291975313411919418088769621994669532833159429757628285778644504847166589924134391796531800533631961593983705984382506934775422038170969799282088591875588765968153459043206595430018542800999196614113135314219902969739857622270893817049393995020297274400827716622362928351257664332352707635539843238372921989913639102992997907767878496286304974612270686203437721469933036004016282141534916582220751936513689369610493337565023734916645801275616175738780768469980895447499975148105481036943611388658345424644902918494226428273269934902829364342323096717878741230524324688486598672829909699440535824510310764109942402819680960339730861212484741344092937376993341499714122216874009149330450518152912380959730622771097228038541039365732458768462367646691248118353658541379291132738347074140868571511983411952437888883237497831091694224917407891409120182112016803656255582424496208850829872869540769391296863145095737348776691343786816933085271447902830977555739576250604247827520700474697139626695876746367267083671767187566999682689951084097615844159735783429500597470313329327852752896928925980833295638407691473900148498403608308119181798787705581694707456847626169821439825918307701016656447260273684908396028565563861706731729253557410787674575305617239991789158351469451018529460413489491991917282711782397455770955850329981896771510783832713255756631598680235207152313942797312073742791384637196234437992665791844178829975067165942437425271678668669041955509610404525328715595397319818601530220200319583884119978532250418635941581744879277298008413504883049005284547315415673182888702534479082370477881598147448401557955638584731469236088876953378025565499221985284206516290415686633660510759845913207114088564987391432458946340478608459493742384422313586181801660217292896581031954430361940792214712329401419844683549775653002254071989998790995544067570835405087251437961905801677234951428670712298981770486155761280445920210588967752664479642632911967586600666689703734103918528019402761319223882454247130354309134059326679181564285938151822273700434011492069235423705488956861378016939442524211903227766442603306439828967782033727716466204032914454859431896711247020133589825617845977989039234270416077580399867461298502307940891905988507924319714298436864663155958172849305355647265096914631857202955816151124297011449561654730758488696592255756696068069260890578061281374965138031834160770992796358917988684691623379693142444331314323930651241594045309831646715719271146423826973958954302571032543850356802061897527888476352600680667581870204474132123282363006955041595711173439244711458538909912129825293354548683742030289624858656751250877462769163853785228747203699656469433600990000604802402815205259649065364511962674291967224785010267517124597344257868764899147918171236263023297137141579034419080082218219918704709693731431118405874557775646984397865183588636610999274940864942499746381392334495159539944500824502763590324935133356273593333921986989288885467444235125630939805686148111031885622675041394149791258784201306276316167789087555655648687417540261127888922751128917416382916878775263918417974898684412789964226680176152129554434635930900821859182455353541443508982100591697817412725027018746865815093477885464699358283496333163745025760215173300319041895338047118504148749190049292301476261110538790693228994417544763579041970313820040490352845010184790790775558804914088575677019978852234840022736766684346086841588284831112417807232915057128001951209169223108198407795708158042141172158597964609537838215518739939679419076289542177335975125073710761896520065071065821973924519798673909511784853915190951410831921758593318050301595855918824824394160848180145785905672336307198133563995825604875675206188202379537148485822299737110985962303515443110515580000139380168430295987010855082406703750606135305181758800530089699496039082939311843749070548552200802203157678344810483600791188825415621058157766827354381348054480042114754529199353815399992398518218313301897999064942690071093197805105089560757858880637153072534652970241538500739226488524660933382206282897889831744210447542445249720253714173212279309802530539576913348447635526903054090470321604710727442742933276477174842961994003402834446597447837042427602847286788356537434613883060985372720333123906423361450939682644284970601989428748067556294555073031246734540617770313556477127703058337983133058696529611511607879140347251498994046365403509301393276693610776369257274112227083777779563277285954754367237394826551662537935245479402700440814411501931027209132652476943329956166623149849691682268069495813817232166902935703263695169258718670598310247439320210275320768153546017531022179659385486717588805884331776343220227629493012882878660004429008560940213584717191352355715270494229025948335573897158308888650593201611842202350597465768931142566772354294402975877104234477575886428847213569290975331824228089269172203611490037599640447190760792238195402251396408161564207492404230387011733364622563694481846313203737022129370766015811275409283765421868173809202236857127195666776622231171202163726476531893433625570155036531080596397335629660703133314132540327802557533687820597961350350534089209836499802388277189237873536485629780890733550091216433393185139590803434207173903307022190908039901535208350979911096484612034832125743526547596042971695753715562051008679740567840700826510077507341121412448865092042578318782021302104589330380503850977697546929146692604737818620451106352694839494676054420729999718794962147504485056096331640859461525259770583213131761196417262518799110739335519648163842129543759441125142403482010920034344396954469848351397315963190487822579309874567570327367199030640407252214049229988714434540303196103828243691242027986089200837639667505682474671314717618413274106390732174933210797092910089079872744204590514770441215495023369256594452238580090511194478312316165433735248146041221570065105087304611477754121545569564241967874190074790556771587036213020896674399887489015469464078013423613092283717969212821977811680781683124397640297205800708590352682638535843628221114285395500671139328980289603378718957215844207505273937808057278722707617830752109025917781361959661305117405377163653230743419946567616899027231005205083302571035976287182895897258912783073505921206242007710710391009785699094387645638616554218408252176857274132424266461261427246587030603716643115041813706411200553804641978964214890089179179185457795125750594003456939512650310278702281895020649702047695558866489755665854867824170073060476582874938062664895620246243585627404463958977105074164879442831606386382244767324438290113096350083078775434846241568134951460028151163443846737342131904603288868623421370543732808472752364736929521396780482820283189320469349291114436440430576742735623602722517339414480457208412270066562613211397074865883246879498530416021076953033418611633521737466488369337594177777618531245753652675925811543148560701258432722673779568666258086241122598074534373854630302500235804833876888353814393442408283961101646533943396176767199516119564238134361350602831482517432333081559389749010474676608606925927485900939299501581144713270330549129006965674056638658672322123773879834503734464799495473988818758517639445655517085616267513224676373377409381961515050993297548181589270925611181704333562893638893964693246915098986580246313607694260635318437836510314134594061991308845699388162713880862016506890963145291341651726716028921455581818874265248702341276630132250039603846919572394359415141353642854510112088037831420990205608317009367407471574394253822183562733737391620294521496211150874316484758642939608209644044431421607295534899904827830756456776440963830006767631871310057087528606916256948692670913493183831115987399200176445439055700157426410082897756549624549906667774914212883133252661465758141535069543327459482828024993803082471059771443751747647823508148337148346884646794958428054980698822504721830958436255258304954676043846618737666306946280127399333762994802165636570364045984023594432427330638230849401803697232231303104626509031557140579936694606410711408547170686062587691088386803574009990614467914950155741583110709543620141392977882904428626076419004912785182338266783456555519796666533511328442667748846755827846070433723499076427811466698963941600047846504902731430158009737778437707624419456459723437585480067040759974859630667066528746811446889407561432124309323081777596274933665477304166748963273723887683256652475051129430957869173342277646110235832242503320663116371650973720220166122484333506683458588970141361217000027074016039216390603368445644736907755884635474375328613668064438032610389661550757125583835880871805064438926788712343651771526008967053449421781563526784864092525261784172737692118175283661581721280365317825440929440043140532558347841484336624244602691563739229222929754999333055410020320399085942140585758869824093569642633791935769430839038141222710383146514802138184810511457851669242538055510437947339140189737790917693298269132057280360587273849017303572092381256248036375607414847435824418860322281160862711409812571226147596598408275789430220741743554437873045174455721029932349809949501325485830756068775307298262730209433137308011911249838970618732417468427573300982589656136924592254749794574991266813564639370536354691068468407749699782347959250842310924655730079487788170082883248908099386459067040210771219019522982599861327351359765071245089321390559310506222963734108528483115175172465250780554160576032712682273067474658883382668557073456061710160983619226333091724320597590859789377450715777144079810126508127194110760408995765722476227071298953911923441035287818998553943803451156877283051530158208901689269828810873094822650315353738218053829271406968792801944704971428389955298276503286439403076352769154802183253267367248242036182905502143840875816695693075110957575155187166180263854139391971197005543011697840284692151785944513688783631337719880124255413092284249467770476732490806109955237292983296125052917109519716232792531949065628750972692651301377808751843310871563430815985568908255068956002282304391337049456788268044683825223093049612057717431257481394083738154812612327769274008156430436436373690697405447378786685476007868192979366515415753796722444643566297419442225069303168658385518701186567205289768250680063045255540241809286831859905603453703700399044191666033489552601162213941643559328613859893988262794850399135534385983387987900180976525516711202966288933508769784580002358240150491629640669164232102240824343021244229577833945460462444500471925949643293438010612037348208749202715051145583522618227820057801144641166018037083716994670564110421566645252714247983787426088500604609128810275486189479579363688082642099212434487343613377790907967627654028736482808862719985731007823447648166172414841175938355676607930041270302742260901618701237007947952299036758638705136406554755516825219559736023266572011472904467821871074758298056853095635936680896297053292649282891614250453337327584573689219526648305011604111986889441348456055949792917907332303010040086284054968747192295756727820704546563775834582043762589806155220378178640167933017054353459883948120387005948036900705613550542858244143572372627327592292970013347011259415419584855538816594508278187048474105486234650205968612046232415619241687017586344130595455055967061952113684602140026693418990857208893776719926907125277540352559018057371173595403432530823083967536135479572201422913783429924674074653814393921650721927904258144577250784660283053148970324257932804256370052229749774886213363204694806270223518453463218663403548239044904031611658831588374792956443372282566045602693170411714623110391504285964720333112400241322966638836156669849972103867830042453082135133574637160602565507043403135287844346378296210280124210118514012793368248501542138829379115940707465682560165567240717585570211525360561501052527493757169021502363117312298403090069204185872321900757647349323988040285292652932618748188921923526589728629799714068685313526939319120656438139727922660635999295057946869203989336519410817514648891250751887794019128958422680083340965750391754500841766406271930078160757528362589359498146637801606074546150001863751166105129436371668914240457798609560488090155616872400375207916902090983740954064313520310372886083679566121309291538058571423350111091765546999374277586573544216919091260073244668640376316696196032572429490264517664314937035514717265587503966436527331043337510436097903634530749175582329249448847567750386220629147246543281739409283964587310759452544733982529015825572171303004470303089063080398053990933450205482322892281249339971353249985012444029711550002606365999990929740071206737693832667318341949465125660491510984222263364413760138855154734213891038088648747695354669714386190580434155937173574094783501470952255746152152441898826219668276892228778345355640997269332274316440278327892518528612290064811899404532998943423531748195721158729541112149692352078279752653343825176423787986065052648495383759241963168503910671036649748401438708312197252836535817846331594223673829825351939195340039700376866725420451441144804955322392458725615582027443878953982925878258890839367595490543936116843899941208328560696944893785883124514076650344457564668816793744654504818949744097615223309473972244959355920894988083438503780865938421742786268782484981442740459864397347329847741596762978278085436112227920327907447996541450498997607316381064470955079576457557139650217368058935864972543898912093800301891375425304015012396526937078574926947512883227847099643959450641681151845061814554603681191873331910635121533333745064121500126142682490053379582844077433834258872317664223207061495075055578087412404483448159340169366408385464010562027079109975390053964026311348803737194882748771379514979828380972443713798552096440276976411448499754985412336273247149295164804615474019019125039123216429347320544814067928061681902099855516547235485185197441787091944016162694654149271655899610963758065684964478223113029344906689615002331278630855348159727844495163818778649415310731435614396295787323460533024436994852384998281420103777821618425521109344376415031071378243500155246819070467734638272112952620877597079311095803803869359750473891632231214269583688228209955240552173632546623805195003142490222864093050127431015732920943796475185680404027446657450687010441188286183043838776658407852448605547747507147612292450926965457392793445669701598204840232180426916798705823931685917852201335322612572574811608951200486994156414683685991176467715794013951677430954660910028262808774751757410637038811298090781597766212680499940569570210722879598050595565712531453978774326113285477520243650060533014647535615250312160684626333573739442295861759515281472840619634788597146059900838979714439701240628718433845876292512435458743102892706951574028886290464364852837791124084209433440916769693105707906611712355818389226951286698857375940185336403582807842133768619397727460737869805974578620644148631233631045022419384134883462204464219562931565798602691992320671676370455215970148802312118663691846687176883828074727256351925260455567804364602884753651188893993582694841308294176336363189344766446626720457098889322439669284667731703181657853923279174355141299665372933766219022712156572517366715418877919048144240537047296972478838887142064733841151437787095987865440043148185612099796394789418965435945410540138320831012704093606420368030268077084691308982655191462257692104234710200788500384713927578227576467886455731960665420718417854950049443948085081575196095232030291069495876291412840407435528544862168850974862724274933427379562275736721801431820623985034020745361576973907441726245533033182489862391112657076593554365968764855794324102290626037568101087921550487144447030280069894650260450227074836299574606465241979563232976129502912575911486562755819320888483164921639676357937351097470050925173762895984106255794245861568375785122445472279886256053670472933618869365707710355945570579175657623028500298549241152355387343778621954746971534394313380311295998289076251435151736465352188549840489567365500611830373038806125443608237530807866888903589048806519766916038760172851219764053879724378565652491166111570399857807742882626023510827808513769659126420685907231927674472219861940855674276692675418932519605645457198020634384458241592218828475879996510655974526814575774914502013783062653468896520334816967631278997003513957452700518915806818579932978975742985914586111498365218272795395798539889588070126724700150195908603435488603953537855843262255346444652873954486021361786381816398123627128348189087652533226705801446972466792340202856998700932651260777609208754210874983254124191069793646133851077834828108726808064571958220833106523794801060079059901211861942861719195626229935919092964497396904747714248896786575447559292098168676654392175046278233066838586929724891412186741955083642718368666731983510606825481375453721867890767629552488552410927541902934069706240700881124514503776980924438637139647513882762018545856215390278660221075998700873662993639794760014741966254918432259017929810578099425037025574362414904479425003387846004360835957114051751199558948104981369655737118689290905583582358676098792915379144951963501952059004624759573529105438573389568706398795287468862848063125738571346449311575313616839811919680024964330710700464234140109736071296265408619101559673038348299974126466918227411558798808666616669023262703824347336810535619759489504672898510738946636910293424232471074063935640681237666424676665133843595092770172819803468223375834437217675582084177969768318141508116786542739730430522276627289441471185914618046904917735015436859225554303107081386105235853999563979887883302371381386018599985235276450615965617108751626521567036128602289544160216798392852440369081970056860490532348447966880495040989464453968830919760645280545685954144761997245946615545274959851366813139274664920911727342653785342399754210140604516966808003964043126290888938989270189998921267830699071680461787223256112799149683199971341646872653913724065930339936852884235417052802504670075498360216210967027906319538183990045578632330306988367902909304662159677131357480962923075381181053681873657366031651350778237330167072205792110797945396596088118727394861504926282578448850447243905445764963990817963160716894995386139275263037187314013262179875598939245719382627579549368755190356173505097111429001669003540835266540765261925746523948579409485865683621073053512462305633771155876600688873643967766418221862233606765559663193092154618500441325319831234279537134447927474833579033523974195684926775243056206745296234844047629640938876578071445465470064758731384692141617735998609896023967345875048110455250726015214297719229924605880970798781158957730081491320145591118983332298042576289618899078500312695675000988250913438942364199383523136589281757679298075183500358150550659315200358822158063533803098115037223521026103605618953442398576473557137056906960322986206741608165059912348307833754743459038698012031166086429535405951523003909786942364191047337218828338684018150125574742594733900923349773047117966706319106725729526496830435104091691564208097498420278757489946367023172720745643533437206119298632468946067082478265517633798004723319974475499622114274728051459626887900972363449510766399748532857570075280550427758834944607911500781510616593642382125355058225313377038065918412989444853013503895256462455237090166987990553504487229650959757481057221774637975860422143533841042672308127943245479082404170225396107274689914319820135948301829273426854020404825176663600058108800972871548096397878464199386133939296553891272928838513914553651826371104041817244389107545435569290475116220776636353818389388033886773964549477734411980581883776003337263995904217288131706869333689047028797524777604044722600655430133063001565291833565950320906479669417972251490415808405701870258268681206503327471615010319395174828575030967772778280394291831822682638788823095744280938615881636145287576461230549851453853792824523476089471443076068670884682044390509897945041423336906071291395230930527380114804732227183546819475818653485879592067393081294868836674956440847806024542162858221725093387057407884100786491387687252698269940966212714776591520226263792261940592566081136485720472712038125571823973658882194651631197657276214756640407170578048786207004977286622903062636450247351154586911423874516339986849136142459146275377286540491253964384057658357069101223980097570920443447880084437817285124227599115292047445362650631197347325142704679578968470352498628880648959819869887017416319837299791422465851694028352105490794851943025877609124011485558216596881106576584245447134846257214647393360248259279364251643765971368265010627943522137920218022680994839390477738225536398416246864708594149042140676857422365759497624375785212809415458175847496025942544805609771010172471246686582670846766751349087624380764635386496627210376666589229679989193858764014880713514080228413126383894426131599121536146285888131021272975076236767567821052142149526780019765470805749248370063612573166030020148897950302456906096735012316175075011080732006031005105439166810007072709497686686970274349408322625129802895116406033176131195418206593641696649858877176665862197988394148980662420843467433733635399592434319275485146374169941631138918528443494583640224876741450136229977397090938578274779172518479685055877619338886130629020590741102251033207957310608522287057145675640726632670577015325226421202098692897888569088658083911199304364316704698335180232806070739694350153814814717475725047124394632374472540563285356088462527287098911871151549506900141910244949224031492865774654423562502506460722942111798131553089592724455684911758423741718887675410710129772902116641940843825466424459013175744434837275866379693512816632571412301488739104201708016669995411015152220768335166111792941887676937309058515607248119265974294694817644403255902185317272030302592755063738053450697929657183950756999321264982476349087145210396987557501773087205124326613334852873518553548205305930102546422694718869892696173884748490906961339586955447035747693490898906706592744018433778599885482800186868961996582197131990499831200789339998481229455444759448816157421028817561319420902037002929273794600555821999580431577097744141949790274675243905434366418292509869349122876384536614984154994188445875733842953858955190839867972413584700751734218351681608949766784881745713156300116356599725920915605296330731750256422453686743281286894756882584485421897659457178536600695020032163489793745760256116265561578893844283121715134559177513933625049508785665472263904897619760061174374423707273450291386310765707255059880743692429973065894431268283833688204225484381665697841628976504433108405989468309681476973559008054931237822773885376054977638081657436097371125871278860769721555497833886790338780757481202842193383062213981800609331324936540464197342419503485650204468777220822723564286391189625908617477901381022255742150651103475132501413400005279909286521365908276624914531070092553053000313890712649089387989876989060294437442365171728554519312635323981973969427403320260172123886548477019417481177758374028565890580816479096272949329272346535335566463916629323945558893250247419426620842125344718623565167692456605618719614986331076700155581632747200900804139483279211357767795734899207088129869174480186617410496519384233216822558798307220898162726937784247292900054731699296598988663376126062043364600911432701035340815043127668869177975260915954126322932288857455715413564724212185424772568618806569163115866091059288440252597867274837475100697287986833957092279523459736450052071861036752473696729766727389098947399229395757830486266750151342530467835446967067032356286631719582518423606417725073057361798802720452736586524996892014543828659105743766218480218817514164262065350720098096103624203371562254982169853698830280411902559500131555263979865921004065105818932152437068640553663925396757221952160148676051371867315191210871390291866114505163270377973401097763864172546233253864264501088362521866868251149918518789255076529195976835109760493405451004527472899205874779704175981806360616834403906449724580345909387002306412064128336188428979526563092634017416466403806464671502028771955984511548530047303507354088454779816557224429085574809552278977507872026436828964125401254888622071566457491396187120778127377253170099983918864964481314442969000287057742819833240729037222451386756831962815965230776173744056701094298091404868562247454402529027938267091314751977233820275189805861310758346808721339578501530421922151939396070536941372949453355250866701894039756311980333549491171550138895588035711103481443508677350775939250247780382071151890665889853844511503490368505055104744279231097997035899719376442536689166528163629567363881466711642695788333814933527940207050498552697980975324017134321785551119460976427603763762214951466610669793343297952272790548911786270295328949652698576160005542192424536553501275266459887550762651624270231159102569866002128529836625773127221031540486799908682250139460930961217222393606547190285576706822660596752838701662751895490800288702546299832858678450323375133546207574716231464896076582498536264797103303247879047422732787247074313534730905864933958788281218827314263730438887000584015047219735720981076912712089387995895265848874403955315678695330315080779523317522832948984318917050671600537330295436189810855464354235415344442145988769716667826109405703398371757301811167433618792906157740729245074870452514502107720839234477489251739351971013616735594611555433815725000368672277192938917134209490624014214808410737318240197493856035609968859879221006701486561477289336093668623274895011008266150461848919965177889691049776247073498349950935219753512677008811546147222084945831733408334426516947918440411104667037148187242124017676814495030518814377132575056221042420783563631891845912152970147681323888855233101374640833136964100708195459045926741807666044985958455977761488571342116025309522114881287063238787710403018968194651637223319948678959967839637276052115309267998228474557783564934347933132024895868686650709290484810705066179695387979026230310535201419154975693270794210736706361784022591354236700854545215527032486017812860495563074628447396352568538228855283157799525725860577543110763973264086626982548107585049941362502613537899487082479004291073646661754478120895071881818090986067872858465820702924220848708883230683292558310531690503626724010057747406449941158853714069766831614039026088901758189318277499269361512948927899635267759356343530045782623723829210020578861988375364822923350916736157144672102472738138134857713475697233488095350488031109332525344396950474417446559323090945242929421773274412343969911936410312782717300220493195690027419248316788760840775834188872927615388743882556124967657557247075878799166051419723641487153825733053044842534793581914391433302949061750659580067511618536573703937078085661190136267986994597203149586261955945903179055808128810326405487383615659253091570844454856914618656753275825285009456177932385622463614864347447405115086680685135281820692088242379046199672591007925515870576219954590929914156746456458497474301029174997202237996378194057013893190523966762171258019414724584299668560602607074389236737087682098360716623116582639781621095836812613422764599897945871824188428922638304562827376730967996858538247198601904312994556204096660034448423516994809752620435520140432954437206743179749218870977826857389844315670685859988275515627973938387448081561552198090719147537574952919507518998724471321564447505080912784172787970615967073033926111562051625282649636718039044924772221270283670401418967442066694256693664111269244216802863505921392673773600296159938292929282886245324238509035302651262614435904221737193317385720855428848620019697028022405729899014907972548531766326510495769634954711456776890876321909581785253205513282947240437753937879537345005934408815087486897496503735021003940566989572609172518128515568860736965395752331732065643237107484666971896454041477238016273017348221453854180816723803119643577755001885375798170708067829405195096429519102382972621455498510811884789941900763104917898285325604395990920990365765027480907538849637650145337440614387118785345061629594017128253600753377449771053901751841717138163539547619339533717138914809417236916673824930278699788488265574366561824246733544581723105818215214862052637588267718629493724685020942219416681631564999597625468428467159044304744863478649608673962555326729751535267558788195073039803005027518972394288025328832709269453394197582829650463118425096956752992761593714376130005720211396893032180607409835429742766828178590884937898339342485747742394878259641933159751478458993182773815086383297691564184219428355110152220357301770982098704283367003393961419891197511184105469301207179289801541248092067681234838781935307227735580780668778204442395841569827369229357603228454611086209520343245163059613893867516791326485206263263870395491793512570848676934520572564369161413547227264037957852760844519534968340170009450960310014760911667093766047981590409592947401084356871694142773015160423160810363630766383739867051772253716120512737892983155675524596308251740768287341222483237154342496642962647858139763050200334555766605254710099789320246125256008727527812931759068529675672221959827010589397538767790611239035718920611379511360404814643426187983924933302804683745951329254129672496357343125320658521566958575782381171221629252783665403168350927774536722455499128398330329059642616312403770452910229596783760897540105100809735902425348915316785963649100902894519175509531745778622832755169383672401379577024477583307328779016513636983311526987679779779980092124168996855631006064448919313073773261447274525167006144395879833677626539750662628533686577486093223147382876209336761739488611391327285379742720830310663672599331761266089850385350961260676531493077399793384033023695625632197430457625009207985258050221172246411462353727810943516937480582301131203012550744712915752207565683266260554772709028185304943257219127805189863294677815424295194828597335843950821527146120370885031443296763523453932169376113618292020951921375539345248097980890950703300144265485778773810666908678731681255222064729707050896449728855719174285236126297689006367097815386258221639359243975892775356768402377656272384904822158512036543029836839160261323271022752796088177233702938649202045766097914568176814150516769787201631494976020745052895807373661314045316196574551280111624961812718210805914799474056724401828268688986806067642780568888169911626932311283717188423892874904619285253400333244146298798784748711400552803363599065993857308972779092224046554808850337313151761748742109371855789112198344959965460217954472642216532727867006765420485235770582661373838271289391479630038462905974950308601317660121205618118665875497286908548855639536570052421799779084874540042509590414804528610139793023461250368061584631133409111852889626958878637305709780964971480104465678407606527852674968877883918305557920359139048594477796885624733869812167788681481417879429943884900946613036682818610115295401496718386689228731721171099289416760828333478732561192644313566782203294222758908410618269169464848406348512961182934840750797622534723966622874087802786553405997238023480171944835254049890725142489370246872251285449656212916049263463540095578126559983432258848661279444454978450998369243720957551691993585201102968222296523966989168790288474709216900461291099643024373681754206051262319939047305932802444282107107626892080880243755927230008552755689883612640981222809431628577781343088926002406184748153960007506986013180448192821087363941955247162363529500234610305383740499668512925455322249468029736474795684532816111665808284469512249275237675669418913210114664961503559678657348747251995750172015384544684200892500670251105731359083529599031965852853106391990999051534812416731763563969292115853932296591163940482002490745411376792053278240905973947369967028291442615957604565719051649130763063575893146112344058612802885290337623075865990374349425635778721727707632020512885040313694953464837215348663952491897854892621922072606501049433144136650294809701457743367811833161625005656924247372162021196946997104258338230064586987423993995871068915197617844272230321037485483032530302979350141232863545640797628444929023419672415603597580151191318881893523481906163334876508779754925672179735862592184773685011439358604961155062253168312056935958284684514375369838894377491668020689144013579859751828134033529130704185344871715537748129526290137396768127964500174804079418217010917974811227189441087519066426302729082986410830102511391512495682891361588073770518995982448193530705958984770947969034993045913685404246599648411212270288531575506203876515089109480524637184659549126429859497885906782720178903235709381868776152935813472512854920369451576035978994330998296024283956864910618941763124059894383506247799846301464564890496603757718766844447583909637753873873735161739414816846628139836004150129250497245044535736012792245072421881671573609638379066111127029467126306895351974810022179099952860685331007946394741770753051583577970143268077205134936898370131802202073773780481461205375512117629422519623677943245124651529868350793110864330325185238842570724000006927685282436882642029540444272054213162310036711072279447837858885747784032944256538474824383307275112307341946266714270144757358243162813080282808295672768428836860528830184787833254531633880196914979653058777475988358234140754428226515109195917033576787920140833879902448293980496918450817074035950599720919625823948179922819600034548158358462583462046316764751749929906394028899590523937228336233399411441956043523657816735323853288045499807189627519730135143543713956651582240905299465378359477017574145582184589960342833141657106713169726678757476018281182477539138635797787681631705450292064295792190504541944629874511924731103051656857228794945594206874473190788664319441475869919902156914768551034523070211185770876653824721987979269717698907097912072670993698204464034769832301784484625727590837046864049727744835989846333887872925598994535790007630887719900993074703423239944235860296604937631860168255474551762513025963079605268816881702399260136297872820791537059380615877635668670413035230909551128094241962586062383218342887916672458223527048311126591531165390115168187645451339032420127783400722926363989761369294514192253157274864753056411686861029453039831086078963159826115392800252400244564962749761265889206158810634748446946667209297487930981906492538281794374004999021928963545205737878487082961847934342555889623163385088486723237067910631108656636355413349534739404767416210345789781200014417704816134882624549262056114771728831484719561803454892085349686241534700070693026810448565922919760287763787159968379167197242726496086565562945707304946852960146877103151444643406094585716266014640749383352429786897368997862786229668917095051427045125446495274113169383253634048510545951097190800734622645623660385441253858855158281368232657579716115457039241559613991781990493565341204848645769796086526368476825799087226058878657985031946278210959741627496320619031390424741709254593684876171059461206028371919276312790885586250973397036536017114940691961477830438234733933769110894857466192655860013467859161228846050722219318373741052654252205101227203452852956242886756945508308625443899771886617975606209935833407112517081670685556151913226170071716646831708364045808754741898858457914311832208280366741168363638455299926879944891615381274407572984395736952318741461531108019611944809875535981785512005402237702161061273615094462019598450180040065808771819154038572781205764414425976519242911058134830146282261222890407560863419315331579460700379598749131264305064166711266257397350547597715251392822254329099711937671516968765401034962131197151193065281266066293990238179401174547955182811184517271824830863450444260758121298932827053522132937175647149695379704801086645994720722450765357075859159066844942390113018584591523705730014245178899497403650296462558096463063687284577424185966518186903804142061235861726301663752573032257826364528522976042918968319709272196708938600112272139018287855480020340684848763317812204941649001576590815040854004625412555459497438611812833456005560680420160934819467500414702792041304813376075062763232975829471317596219329759919218042295971030758253770835488594905754107636052406437699574014564987675963762385942704289157764445419046370273136376852860466587704176879471518561480018100674548297694326376148810325576319713848205567672870831235940654501515760138325878939715853345790345244583594815148936611099989508946426445255685595356488168607322208693179537985478858169930610144704153342934706277329682195565170400073297730145865075095540214503263207096271491118736729118494772988194626037249703516710384398413108647384398862508540482111370576334349454304555717068155201237999593311855618316057299222308638039891614143036346436498616098186902269463885829231536567319068580689726611661559507689016266966384988678953410006656147036302560581925835832485992598382734365817039086989463470993873843642368848323113340363815292083738748866800969308775207636142409885690856226881511511970370117810841981822222004714280470617873433775934897672295077464728209835908403101241784020141556991878266206616141777900329036254221392458246998130525731505773318120367038527650955719581097756024665574016652389674404603231622468502271808983590540050661126387085316474663382942360500511578051220826570842643410602564508673042555672446319963067395350715078571313834900575556369875546246717816308761833190350470005833606924204198025609063536651043976915518121059124966904359319212224356150573497106251618138877408279870075846363335225849985121446306787390236005430158763032689213341451336155348754640763054995274066502789170679301547079097590757262224067389465810672077159699154056385433655799485621328236144639589638193007451621006780911005865993431038073026609935351896001657867334686652102062022162967738160312161577291471720511486121464767640780797968370258307284446032221224155942784493339314227074283316896887152104415176296829165604054830091488751584230471064531094790891789494489221424151707384200589500353434612906236854880863964961646903055460559850740115119256153354994388736558381704469937013176639476999080578443290895785899017551773683201334274221652435060311360159441791581340772686463620900289522912640170371832508332011405869259401871877492074691506127137288860462214755153127961945027203523400727688339063521034336110568535025137179299581034840993198569017145470521631387799715766680750982741925552590034015053922204988903071953699648782329748658650300272979777849414021209301204044660011541996386262234916885480455701485514215556785618696645337683919380749324669415924452930730197648821763717701168676269805587905846894007049935773050525907260401435950965122877272989157939885687396633214490825292310974475020315999954024447282662913858313697227267306134185597397565236234767253540213482127717140608006595823542187331875300192262570675461402915731185474009182040057004708026995051937693829576611199944836699597572420779752315233307408510475690007865919076349018982339177498309373668831399156546002103212231332080944314311114092103495458044665016393288027463205264094910190358259908663608859007410953278540806779541559460237146345552475394399332286945645809127773491012370962057458354279680939405240421386586618684008105488764212244859440138910271191445534456226380409560975901258944804125435383138376751440384896686025987010439287419001952103533520276543611983128128829508190259129386818949344108508884944793092292847299856491858337369918771115262168427551166977182474916232664559944643328749586508899655599224267667263998361231352409070657731598051917308330525879919956857549166463111674780884306233831325828984786098206758433709734844756558424059921776020023562996510382448205732001323015807266674694509833288767902214603041961081475569419626093110538526946318775904774266061098418064340518790334513028211669867148283006640653482179059852440318897470446247980033692668977612825850951909839078634684275597575517782674970188355892483777416516820967672512465232347556341401501278037942146252345526032705374998834254159711048251433857433032296363715169569524713153878472366918810786340794019230287406945475085795748453769889766799699210467643937247033550140924203826798745010375178230225387106044869668503892107608839204002077876676178754812448062061986749008693041111928689859397997651998131745494103013607632983336862700142081278851792144291339477210048048145280528728132823180734486897232731787824635714010303963310070260249109142502448986773183713918621551546593728442396998079855022694538501367962261307624029004788920024135172572853044403827939188296943577378756661241637972865293201179427076988044971772712872319705994079429126418994074793249885571664723596665893646815076815051079114583803411586834167583884518013807363640459397059242877612473148919774671716082294856346924376160142563542782178603795506155019243453563899331957395229027483526878256982205212658149906091353229543759871976193542859030427335057286570929821763768860617830535790649982770955347114650016219469077946885450898831791402312119852734838488348174271517854008055906187554219908243145581426725042180358680292242442369082671295466923453915086699234983785453473346609091190625425993469028886991379820846330179246647095299125235089247284068262355843274403985746524876668275676019720432033514205304787390710456343451785323708182370158125302049539730561475059899934388744037551042164737321972779694458599902952091236993161082075551056515240728992356610507713264176519260701094122654284967589970186445007948595675493683595944757346178585823387209811706687172427288987641061437671235513985871819506963417885406663676748077096327404934437364295220245888873457712201801300885625680970125730583117942852779243709204299069933587479922131114300303446881438250524622572958950233772110328963523112840998496543959932249391050669424341341039959035635826096634128131654299279844482483271213018306068908894057881155147068557677414122469128319301144618420943646676576622241632672449264077492802571807384929608899794466427374418243135868928271253800259660025974603998557346469612707363090818676034796950870809220909161038910284559536003294381930256226166278584465707389372434214833596575885516530373395402491277761571664426709711486901084285795098229423137718726972745118130505642062720203922518366194822571122642661209639897553080752721935723793958426359909255836105418537504915447709977958269384317628187554972628546593431288544327868886774686848982354803713344442485285975045630983443172121183432093785541201913211185762772662376564448811243359159000969066136113525670657376566116921272593981984471929062503395692452018156083957031378874758623810689098858367937195963089352470676003635290800829099893100955740451954501060727996097374715143677320098037418219642764325956853228026303321215493797189715749613367728755123540929313805919582063199415757547403219968756991485223460438687936250690052053970650093425517047191690071567638129808306225932516994600685559269439618235109631099624142060360204677940750780112579919442820742316328756524387107752053364377179024634084952617695760954112195722706077492090730345372084050154864983385545831290042087609374996989316499590536804614401142320137004874738009698827370761819456338503650419481563246711299196106753226846073939468216174247413727552369497130106455034315738141921679484852110763853675197947121209544192825848734722846209643289720244718370126639247815864800646656459405605427599383165090584982811886093527700045031638348039031941721438732161691164255825615856789529246256346598029655289913892551251802522033865101154888678475897771847128548235049808662479620080106122798631577579216561170240047354871745151157235542659186550381723928092509170474923239663928321317930803104556271853013772996377306208121095336351617916465692733329655697028169825046491203822300460615665917637334913635533623000140942771327463367213821555931330345016905283674228414979819705041235408138082914973362354090797564200025185112187104692988650283115884367871977808835786142793199817983078141656637483657492348331545101238747285347203944184655710943768997278435918568519273302940206905686927598553682073634830199171918216193111281825284417448033648120277222327662528285398532473492146661854250246848716825525895292930588506957804400674880724803767365195854864886958747154507455033554110901826789515987817778586655756294257128157112585570465552802459981608815370645121317425628775044460471552334429061283349558234088314478775605983924442192229522125295825906678241941560473109716415613400138456767791680543138302099194707076118696192788862322655874836821426181275606597766337345434224057065272047705073505277001461827950231306644770218704998659902920622703188429588555661963442389945291596806234096254119580178130793095382596098832685925493496244428295430428215421485276964636595912350903568581034318245338972420588464792127631065295523672099776618771488080178021835586602348219843684702003984056160257621106542785764102578984764857437954431855920093818232563215525859761003486407755714481832658117504644872025092376957108502023312003748866808866822736447236407314509470299552116340543598219475639032292553508315687602244917206831669432717765072843708866651897642883291618545533067642331534419136258245764598893109304398032805879700401304540341578957401860433380103865069687375858383105391157053538351336901653525367710481555023080126530924499847381036352187868618873135078176606087272225326040353782676730891028995640411163854681853832091488349037159747594268190655623388580844510317338200390914751425085665851170441488522454050819100270962274512757219812862228670121498455809202241545707550295688616155632816212130120711485825850978759928824811865352326805006128590066640648884250010776253068227719031988857940168572875307386246036822634095648722917859014772818675040296694005055184630884698639182143395734780569287937702855907963339965821353955378088992182070583588508743667099791915713059547026235376317886745132458671109145208819990351157751314889470251911558644080616573033347094346848415698154296269899298586521313915700274316488855518686119434815873218064302622241254866746702146641788393218614037316082958315919925712250657162894374779616840245577563376942118654361515718840301424130772976973697092990661205730031704421164345315417143580866933059764844791022586818333134133360812711648549523682145177734137041977745646441734730744156640551862971758574828966257464916198974237312663921291558476492807951458995203234784514654024803651253619313872744740868672231356168240336366554736004526890168247527997493419538736594414419737374261015903649392395272720771523505142134912992362193865873763485792441954815777813311292948851159082449932087860805391828986512520407288792549890441074466574474654500132297483588258026757332233732428609068251483680434936814516696888503284530625822645153229192327240516194648530051607410842651271420244807937555237818712737989201177378284563758355514171672210014119498412505814878932731499340401124831055397563682992709698882236057803478543876938508330841609910233468277088628491719695068192267879713426526076319441867684481862394309161857859177454983094095854687691110993684060426323231991320075459246376682134093670772347830061696487015721229438017819535745087747640853808254095665831618491103482775810107944318621925657854772723590254581826604856355199594860277856363164945981820068027755503003048818280014170550099522352045635412820096491008809209169170198863876702804369482476892437338333536903481931508506134312424671785725633306225524125238548902941322681128968764964161880649827399773586016152822624897553487454317272053662430149942810984726258923335607423972280490135052897239078840189294997817213335642511784930960774780150933343562694579707695848910303518115312637799721929716090405772380392593981917083861560339124374444799691894769250036899406145855473825590661042799230925437580058788515237526327606668326170180803386084883772364261640412831665172356660304743054954597062418200474107543227996401058276183799153524136976420507170722300689447079994978730656955267856584996344270589459806147799898758267993605919510093664414906037914884964867592626861224070472596093180062650483157257793331299673911919733832389278004466517291401703374003487868538345162845372276768570276305453572705542570346445619667453672850843136713292750945437684499426198560452707957187517908715059466949438606130920360760914549274049156178525170265146122730511673533073750985693754178419294419943310152379399432130137506722822146552068479307797007488779411480696124234441281500913539182215870449545732923429890984340603861085153033039719295050380009371157753020553226285134426272303546866747268931600063589299808074766314035951554391960338629933800378026260539556634704077536189156879745056897823173278135144769004911299267767744155701739598491313222993056114946582212750578351632706902463799094249016599399439868923639733951840391656133005635695227201008100567141495096772364944939751167884607505795824113893322772660608894286538165951017885723288118672681915251042120705166366092639748367928386025473386849191888883703474479539994462760337344845504309116796924413823087778332458252864093804022742728433010805446827451644170315117422221552415859738277575560135173192318193479186091690961529821403937052649777033736106629302369729914017001740218228600530680049391147601151232808562518582422174214471685962741704690192588709237448476363897440500126329042138003949773300879595028983664311399602959310102921434629774862176352572470049339131500884297562570445688290400763340613614858196548566548992821779588297695444359115973420504461889567980137003365622301695525330244075849108884352476985371868123539186872362049351257570623675123641731671110957912282965495146183105629303746578900456603379163489906781057479116969105718044490091881735914019764067924065926871003637372003601379055480070801534471927853494484504228597941836303401267789411171050368535802491269412015827363477708425941814766777801335468525818741423840129679532069502371624401274386292646408514477680865723696145849177133566040868497959167208502776635609930259914259982241751655537819156862268218074967001750745325071382675899741163678919590155546196676480625269635304795337830528221636288066225840375486844696600922598241937799040884585790385437472340352538560750220438274462910882794735509386320458065964492116130638601763458075672612262192754497609516625497124717570346912814673124445315718667503697600978792046099297488171262668048680763941489122443205538051958838309036795998590476121979104103601668302598763222442395077763504564905456180754834592824970932475781590327207264517178236220475718863145956129303104536504531552765179560414383764412946625281908418508907196918182698690421754959008992412762682417991874702485588836903336642994977395081191684830111307445249173075078653965405189610249622506407275090124873067676555606476789816166947477949914799479422359118907901958397993807935176595592773021943271476977838043538237476785516854581130950135714735450437126491447637378187482085778155702507270414660934937281598780418408258700154449889831156636375740257679008962078653668156247780146424525341529236859601853004531927877482495192959196712305976236768754186498534321837833226103339582483092949785508460433615607733120653927497660223635726215413134565184949801691722679635833183902192049444694465304179495977291996788036634694785332012921692795289176159987390308474005584011687905217308732918337647447881987626148626973393249546238957659014584067238355000552016801581051240852712799495133890074579363846687549450056797204654064369618259787617063465886891551255286591556224966035220178997822780645900250451301117084774993818477597389146336448960946933183762994795379924807580195133206909698803362479555699072481304427535060780045368770164165541391509015796435031004675670831142934491774523812007914501275715398230609019800377438534237759358470482011422461486208420551805373855023005574192650744674424521588256273038069740847051489705409564458435793196966408200309342123365715488355962075221490171348657434424533737994401857409804673033688176177124525304838362697918868817559527177429281978577570881100668140824300684462106261314854020693372786316286765622743823714142809509549948745242804539250103787813489665530159733174021051247425939310752253915766826655126548981884220772301229457222762389732324923501198869484090624603775162971830481846194758240581930774004374599007053917845400294562852649263616379802738425528610820453661080664656625375971225539421466181904738537429076948643241656384012160436057380889621372160031348013081862917644540916937360101523165866466745991066293343599112559460610686771979566541062369288292755007980523921402543334446171156218297498939951312902474834464351146806495342649816240910483652684188106133726547615476213555413019945471247543667216624316714398199111276997702738001464312176372397698267502442588429081638107226902098468826163025855311607217391753214133297263363149882155196919289950051980786986593736802397239205101724646487457728426921197786033743428814486588913880451699088012579824091943912497756470643334218526791742780025724810272537873587167756429377749928090561770008951568323969563682648956949376900342408636099606296633938179959072466990573041166677577851871423321007258124001926115170034826521522576332249942083367992706435656350819001041316869398912083419106671296374284641407566257751241073562140089577992121714933239293509833265849721076247847314721573459125513014726703801824983847637055756577907686146347850511810722580385452772029207884712695666279566345464470918267426527429800497057061125828880142625385162770803842274584692098651768454515988263735762649466466950684399849601514918687099412585440005365544095727494334155588045522559568043877858943541816799519905024144643853598815078942818948838318238120493192213750643021393576459828714004174493409215177259255683068050123395758590934416875808460898360754343742447894993874855689260912978617261631330374998093043063749224098345800851001408054157283352927473084628944852567623877164514577614899109490637166172456759880467334524069868003181317279567350948713207707412256493502661562554310430986147286583987080930968282256738787436852274555318219338380229616445368251136756902905824996675046773291694922919559645469460647833151171948415370045506279707552946367494016311404297683445198571091923676563456223559868384615350687078038387930803744771026603211058241069105860798386676932938411950156272137129484239222953743325370574107104853848890622975875238644991694487370284471160748783341448525957686093917102856626797546958125007553138100142677705135818964019412628691314521265531087684646306825269470039368631633068347214924647871901617935456828544311127330898927474313335310436293331219542942431381101572682185888848017635437545295592010592231704564077888643837659323405467789354876133875837393075299621342718130015189231549432607267704601254134661391542530672020810895303292704630120602946207353423724962725413856884280702595855790145421221011435576083209878052072396552309713658919776537673024422797005807959741634403254648043566016370437341884185480894021585513077954435550078209658422437974092518366668395423371964554203295360105612119913656001258736748459435005476400042446264886803203759393543869714379404853705018087301548339615276276432034622146280043620955513415838857082489848837616428250281383293921210481172448265857541745742616826248492183161113934692138886700569580058102489885150436641087582300323530613077657152928507767175180687651924776393044868640971325926905214637666360251430770581476613186351426751309309284506512534449360973038160084564921874893918559555375357440494947936760283288075291270094041620601178541195357398188650592059524312770859793119282285070039593215814612510817031518424716421986610368699495793668332349509473691204526105744631913337471690859381882602214693022062136176946818487866636196828594440638106571801496529279289608088859691058975059041457355840254178027094793634776805747571700782421638781651212661226231956930102815147384819484447330709909856667019780222520919669523486643315949040363933561068891720241585343616015849987377003899526976218389382323494303916342880238489679361125740599852504798853220960724179866494736303824528156204581388885412350412617908570112492225058149481530248972740627001498954232943655149107080730266386816458630922851776872678555212630844422902107614880828901494088315994716026882572950272327550942945264027258022121316804502339369845069142459574987307235925118955645388136461161780679847521035357167920807761977811945970268955150958274182067950231818373843840203573172037775935263561532658622417962982885557539506299932933490189359785588304114972409316951567375013686121653059007045887248188440228357990785446112129668283586945050971658413045168030439751360461832769730315710773301429024422740396237288070329893651833138907935548370163255964846061102446900217195702923215918631135271965849247785075536305329745318857377347310645256092255457095557758022644767965897829008073994507144484485469157919317846042505764385594589318899074528013311342890899928115625063050965454274876444813398318868219184707136915826602005771577619562313932217291414987324800684898775699179714037852604934608554373131802846115520480406171790570087290793498048921740692494358130987083057402123312870794754131075701794147437425250840481765149964276732109801363103852080960646170108358215645901692591926237728250266865126873584100676917754807986995468807265024310253196239562886476031300902217538099183026078387811674202773605627542436626350665257049165172715281698008988227195585493474480015406062303299839969464024036580483976077898424463628893398067552196778624730509979531642781399801440457253782853467809288442884398054019293148502006155150973832771919332109345225245325451953623473407804151953196752714042424330552233589431537165154276578592311950911095532256229423120648016766698022802214771863086010705962517991427103860794595886776402162928074840887224946661633756483112779728642529494651214698974946250082934616706010295224221800596151571634881370528890419989854942805313791587306986445997158789991105687195615501463659919057907744239385450019217210724897433739878581022492832152924061903807724851189591275669531854463341462433090506170045180211929692101437822125705110844090536395963288070059062328581663866960461264829881238093294800553000135931091261242112064985558582487653295286183323218170631585274044592920037165850101329250073806983629462990142053992334308341026157830587460591784528685994938534071898534253892513704903852317133910217090136500359566811502656014281974832001201333329459084962556723660555852472754759403628908701276838751919702436067271410160419631722331250525777400724928132178161413418675405660345894746684240315538279907444891861474156648110797975152008368956435858712375187843170577685362554540072886031432557091105110447688199036253133213631393226141722192707068054612333847550366897391900776232844317493717936085753138298935486527202524800963775933258099446984887506959586887853436691809495839272445141375330511912229883667860668011417353309427158627614765713106405248265304208190174756021229123546047897276711755579433654112292870450320964242409174534235274321903283092012192806680803568305823415701457780986340668313748234173903525319094320719449448063980884644438070283731771224521727586040871436137845754278002464234502161047120003482790119383762915628640223087984030284923898485461620398917541003903949180106960220387216147582061304458438848427758145583287564433705413226995284817980173327151865431798255462500637920193501826481985631770577644097255379822160821223875767485570938277258846365641507939834059276136593880731863785407864822403994992605260428315516661969565084906892191492452484519035208854853254589610248891328826880062732344638631115575225531771953992309762406574123053502845133984361275551172666872506455548639839957111528613766857173623518246298522877964534825174029088808039934598181711773818120294306918664610394717947328007247849726569237418895002199147551102972931133432170937759357126034195343952390218067665749564145070093724063390526603546122649548779447892061680597461153165830026548484011244277055878381588564058346342465048325923340323036597780331824065063948494779631158770753096853744380953169866373376272221140777517423478686137308683588668527382897154029113331408360732696502328645494846827277615055829029095306183684258243441348820717694362035715290561995682853062967494385641071997870061448408286388457848813548839670727099694522680173354192975653958642261182885376917567389820124401711994774439908946310366298887973552566162856665094347509976334724683496927564159852146421420454434184857786770421876617678565667972167985989178694492601429811248774878231115098627375665122074007161922449553946457858827866342609002626887631678499341717646697799792051508325934171212371697148549621841314773707674880297838600318886282553292339967792132594292891342923693269231773100032343429138090989654252879576736582395524681429186912194002169280744320816325291248743761631709128240204688906958014175962661464177853024677440441737459297999944188435937952171777491331353368919833360502439526109265181475762717641433392660236524285522068967369699839864640110102760286714745289187995487682002902155828980838610153681414222091889393857229391483214136069197582869329462800738348786775486079255500824277684017753870920172183577253548891652279733258113775167622943228365429094272572030528903126541907221982704869274943735425823817532672731110268224815266514587497274395370026885073219060984456562210588386402712334982549239652283215277286032353109806150140942610154516855836428278802958573760934649339728308607383309973186472678989757738590491593548945236705103226245951657186621115223643053157529872858636965600081917323526061762323108340438641605869882269684139379070527437922300602951221135302140688815444897134399219362334607039912786192625113527169458632411647457169180184937244402419295695647365324306142178962210929901876264215474179336430451194712942237275578084030037972874935407409845514027833487290973790867931822374124632796876006455519077854437556673412576395726443430854255275422026599640403266745637705074280906133058459116951534973521185105224490402113252000262923267038850580625291521914507585544771948711676137504809852689342405834838393316120338282141287651153428547498045252413581390615543846906700159130271648378178249084648015493205277733690493150134746139736415238456880792797178000144303572037377288475182765048752786070050049892283772710589961623684147124973087137659804406733221265725375887276429290548220381947232680624722489713495329714164033967610044317805748327037910740228104294008609473920553230328113342809180919087494611530962317139546608039912449019105959293032305020700397599814310112949164815586224820579628366346710513188781981851806361632034115658779224625677335706482227589469944193508371393757643723271964654698613495237499626104509230919477204878797688186039595527559123957641414195711279186815312060534011234440839946705446450945968852751188775642911134886991927549588360225080596378760416711427563680797589519515554250640822731224876056234428773729173349579150816704700682083077511697078023734771791942900408280580546154454476113700409530746422457550849391256125257970786357207832304583983877809161541208555414039646961062549891422359250918749042186507770471241416311317824442038125235365411085958996916501317055505677303165020007320417909011343478515026601386574326994865704878661405723524206888645974394004908744927252321964295022731164194118766511311541979287305793035183749017082134404570951847073752620891544574175857300122246641916150701762923709837498313509119834007507067000048105330125758051285228018512872411796723976217553576536292727657660229117010772450079985987010640349195351632163041680080894942442526004917360588584842989577403151060576918768706907455356069521616689880393802553433361131792015890411070324121349813794620850143501066136196090634827970306207833715496087707491903315265601192951479273366159930725479983661789108022209576615749759278419987584249987283398717092203805136624894367895220523662767989236321421956111145227114454098612529841223905401934364423191406279427472368278142729744196209505909209712724598573789211532189634043419321513979225399862283233546101824382241191385378104459824060971444484020036914086041739072284198374068448477314974114766879661538813413299951565512119386710754426225422934246666119280256852834818019399919034159062189849548051918846787789837038030836746096086089013069776115514874473800704445990905074589832270462325229691868428792503273127569040569760449039873252236998026336621493054797156238747782398623564091682550124135409059330961575472492704480439397781363466525309762204422239122648421745219999915546939122570142315474961192193333224418584452708208232456692241959597483894655479608088703594631370933707170016990775172810682373709434130889929146907069694122909334340932258602083215644632799885375165398858683466260374722801241489646374154897117468421271626136330504708513726011472421929270087831068781298172504111742670085673401779424630147594092401558767861426181500343786263133864704125787973767845504211493513418815716861007594967000430610036883699020805370741178120559409168629752074017666093680923524514639047023113576791674382991789721088099101929415550080559580640058954222024039824275257055310908296624032195487555524056320673463706314213137442231208771804240528916831658123661434432756934055792347407821566996344751884626491946845129499109071528418202945885844994639556388759428599154301942211170273669748959760165279726004007899613598970759128899966633413883071314397953011825244800931848311995162947618249529929953584401272092253752174726037721241583112335381456111916193458427934140389644525034058385412427728843285001743078886541726885705762643673762760072394011158617297873534752717737818221888896716136760142938537182781769632525892550330837624419331848777520431489378254904732964504183239790036064383032540529136465777021200075219693594709224659360474224132828754371690640044812400628774246152587172607278902816415209561009550338981937789929452804732652301324581852488007027845624511448104414116117154088957891695577119796240230910345481137782363733984648883173342234399671546734494305755114190254902207918781558598343997106269962812294299450709978918646766372358251834875786406847950735696085415623212595409453228033377196712091564942596511493894829174296415198850707534149237133024755309242323068155147122985375995494129427058649432689085755078134781544533466975276457123011261692966646581478807094966984241887534650391668062197490899039663374988138572512933900131362010880590182114298627095174257797447948913172021476062209952619502741570514318530714005681579684913068426191582996118741067388231077692897309521663338889207325547042163797025792520103345152609390322502006901263359269208474552655818098025319885461242678189125892666714300781044746745912501507909174380217818375531008244621581058521938327246610300770917192710655441721095956360690899212086188219190537180309431630408650176336961071579186704788389568821993427273938653900812899486681343675313725068713085601713341983469773847612457703350615836804222020828541513961485068570147623569179374719941911286359242056303235807403902270765694268633459399690602111347828165058059560724027773209181478088604446970440856155180245136101841834042452211913416161853006152482729145839129462086507187855451172485264057255908223762873673193906482492078469378037527775251896430801818294035706830875908467375518102764766099413075454854820627972884933646024985941315440403299235385017747232932145836964848819672613635756318371196386283701013507261962435624753294310952738844230338708351385956453542496120074422838774846744169102536853183397674612278002856672572181772250684062984903225908129707000248457693400680616986790770285935614849409575628946982266881088726214078372141109039421629557465889218662882426539994572005572046896326815759023864881693470871961731501289234939944174143346421732266841989125211155964765986784666322908725432518593028549605831564960265038535889965533312278894842022324012167010064612308825266727685413419362123589667817295031919954398956009888568016189384665372696029171058989487263948472898764397159880057406352932920166312885791854978520815750259391581743928073981529588367163254170510601093674104102542977921669392336826175215459803199673647614868213685792349096297565392373966228888424057749242224213169420934617428766097014275428293667395793292317246363642766766631605102295404167551185347149074902814894010918250292186213739305685463112725659497735421118854790839470346025282884521559682392900279006352564178686493190801512218273227011757689378997093696232695381630629589104815136342927900780874932425057694689624485091369280118070159399552094769737274805617636303795702475465213713252697941923860919654911019435204113819347923575187862182427026947414291030118902470238141617672525861659851743038646032932241800570886591847135203527446814562056435338756534217299410992494682065797986198119025276961294944620223871450968713427051015257494817002250980983418700011656611891491240146282239827476363351549368695128210904881049405973772660157958101128881195578402462339449631732317061024958034443365944492887138483257298058778880827292485848054803162659210234345816465094033105171571421664854000861195928105513269319825142628608084631180272551822168432442281105813077002403074389218034593567984439869862732061211028473475499875372589168753658697124735304017394613032347130857863970739038808883106428896982362564748215475085367385833274174708108108242617641279429285504771615180290259746084323201061378029411668134174728705023542391040115392244131548221494810522319449647917368815190170505288263972143468568547039179256075259913944658456139536759333579061005053542358841149273266763395517098692526129341523425397208832182765547031242712254186281404174979923149219361663039960013270517409170104133180702294998027347396905450449482638100216432783197535618979506505026217097483787739695473625628816261763104178925175135185492477603630423531798249649098513488737690004421888285353478786349512680636529325511423575464099127368866989947944116774583180464357136778699028427484943735814400684280009937924398800114098103879747337602541207971247167087510831592388535711619169934445650850974328976083256781200570770325936657554988076453289169674023609060014770532717820114131182948310772760152083305748786764551443992170744335732156093017835893573394003137519589300806737938113917315593661989456083792182486436492960732004837771114036167842149860372819770377085052263848939690523386727296946378065631636682219694587855124329921208215286001653795294717176468028467419377614914894436656066545589809075131730740208110687571744060679406816416744212093569691306471255353597703036388700760154324199939440491204839350811608488098189672063643660311484189917796622050873589403779328384101105951798807050109405527357420727803917338568787492939755523213802833296905174438808157094315079045793435076309536549390004303830131803267877608829187772754400886915409394801874441048924812938867759564038640241094923947739127608701887872314356057493354371739963218667561914015281385333317072647736416744379384427973626009945561182183490931304150799925007774571554038858595208064395461631502124395631863970051380344360764314649889974332870332680412039266040940907623407934556715812827696260203994400763453274054044106271655443691349821825256914768020304217858319284286644571175825217241343784162617752327668443268479850201725988718057310608766959422152177667824719299255904517292133697590876241163612601937619836745863642107011343735977431314288217615417691803926386649160630067019465217603536368572036616086507156388048752225535019446787561202022074053781715560455633317898191609012013958213195858160697024368438086378741789179051127034492076287769626608640981998158427048547760494579521527493152721446035738073113058965177544999219536071279048631145983692295918898707453804975825588627428485564456288113014403708910434708877889935515992914712695863596197545888022268823328297761913791069468129720875759551485563314173809031829547131283932701552585985828796267222569880022514677832287889341825444435861624366819272715025027938803903823153772450658156099307987613605925752091940343237405335026928178420060383667776518666511586158037056312091734360793585994355682551254865780458396832958964108478833163901430841432763722335124775331591733766230381922155894794763091108203712722309786749770051966845780994717489065235518690789064308902970165340952588806522418100663458842105575874395460615830192651713118446281079027553288215762303726809240768937643922420684127557552882307347269499573304987106115139970010206137840760184227699446398872253112656691103228317298365619034266398759835554656783453927512888812396298813799034755280498523215147363940819094452064963343031486501448557229061742240881516477411220892441723734544063213819687089722648652008882871388611255361252342776539237330741262371551695698864475482691381937779832125681245873688347245872035651275597315731197930035744706805444397007821193352011339261314048253168303396354171379157721624866409533936613077428443202462082001117614216480323385694243152350918944547498356272553941848291975455712468855618836355560814555675550568502706661179508767669736790879950843093594745834629653705582160756684530399423174625976931267325394147502276225017217271919983235548624531213949888732129346482427487625242080188334348439116913735691913615365130676478396830338388590363107622489381283495458755103228784019236731797795908246046739585175824160735068600740234520423342201272730968140165194923578850583003084974374207376064849095654163992462070870731176352597484117224673368493898956613060306017858563998560127377906789540482238762232809602926329421104328821504080882069481509540889499774920971239332115796736067116311601931468227124842189632016675717103827523883455819480222675529942866060830858796919887244485431625510446794122397533946707600322808040813983463946227150501571192924865566552250795277368034810777203585797593038881030324330471323743381975685922184118602348229423445732295981553017363654501827866904730146142011448969594074999694800033643827549681243359744230857614170154628356697655934181700475373510340223053448474513875131541408356180251396356904715993221257290728684985658339633800153742030324466367448009158955442028173902730473917214505372420486311604873516711521185181678986877807410565188251916691901457812652602333838060999915186186349949018951534606785985955812577233306544326022419741762946505795765186701711038521115342176186288912088611302513290970623530161222030004419234182239857433800146539550667544396755068958420225514618113082400741475918920679752782434109121680230281278741527505209187706078683827156776743183602383150064031327576984879174161522884818413890394866957433782548229685523784939856861988256077544470970655614692569784633237658839452167758057599021918433927307126212526427936369990293539365495905054672620537245780188162499377089325717712677639240883052956634557631676182504115972361336076855534285066793602661134821865875227801084602075917307725241868526805815476768332713170725582808010301177932334154256086090116570386602991455722881908828436483744851010609723367515070400017534427649619808775718127365153605209447112986125755059558378366457701835553336162600797457516349637462242224193578329746362452498142964275745147652110538798327961087174347640408214468989953270074886477609737690877276308014945562826165075751620318860681726471581015661688959924080110872456313418140604918750836428819455904014081202685866937250558591927044183732218553449515882147335086889534063665025069587544501956253738868509648184494793349969458195943672146550344762414583132407494043769805090562904347981062958801773988311883427172413424746864937576362715977931056219912414296458133947872070622488104738277392983685376328339704994122271121348263624530305302015970607230017949358229738611156907146187349341353735711583216373466810604640402062110290997124459890591244335419006716022629586106248831047740139612922551537165979640151774747683841752043881770929075067684458849237418023525077605228615424631244152139363803319244394417381092235311175388162576614151970852643598027328248203976414513132486619634434000548442767389445237177367712104594824544805855148961965928192422290288362188773906710388048417174651620622675128928439540073605984931620994052500851345804482327256126079884297736176980651649052892988449873764640265683349160990593187352477288220095873808070608771511091315802541863044795210625774732353545856806954140566383511045859878934578889604590009175240305772178368193649318474925866921842162663116421029568413689358442449157821398304068297559834290391545622642376704084899116313240895569634533718662581893928632043550041493399347063308461108484305760023740764994133569754198794040663919032080351109774997667637220434079941751533630578605174884592225798085986153138921279418314273981294495339836681113155799743266903204405551557961708252545207716844768515010836030430873419458525277865235255688825629942045035025068677833199766296858941042334626339083317908155140607169243520145461937874061346291122207958769426162426211930366343858190724607800800796216039593754421436385780400229068140197205390115057790827634702588766840569090094424128930696919730142959704895818742226344193070029689405831618319409893233099095488347210263967386628163873550002448797915718700416630341355466255425258716957744390453794644317469363829277358151585333651078042320068475066493185903970949631732366667633994064401583753951956039281192923295896787130148751282858867183606377615952446949283299312338353464270063569983744256322486238765100505212370403921660100720838796741994230010425210862260089325705973268187186165497297018458282592699834513998962693326841615772148354965948727198122852586601743239915636713402942006983019890902606189381587482219616006438372282847890147538504436269875643586607465859341539776764811037929219960062603702441383804228475025535377650513666166530265272169139698766302943367928679402560918589169077231026340777834085027227580365834694424285341070007919091365566665646376949389987656341710258059072108131291460084358676901745481260625778582447957192474092155548426289685800989198718311453293463227619732133022514067822833428991000851181191945624228310068338771857970081850513524501251972552252714054018156389585004739990586370204284252425403662421992442577909961232090353684907572856517556928972001933565885890474354651667654204119634740902796911644954861067305369730727754975955279889938025653225591675550550803128944620089216434056531176312232431642121406356875975899943703291094535277241901330156032225017615156428593723874456957414910906150041192405325863555577082551604340864276453649141012638266679034775400527744194441246225866645087310059942695100647956789772306247082079970252636558244998448375184488439394725634393532274727589381448897537498311855942481847373774420340813214027931528714809857017323723124236332224488241681511926799422876458284469252702078078823460657325483316569626491277060921098521543342563193589613409928961187167034250847487938507894928040850780907457239857720810229937061805092323976595633083240441684229020331124872368250227247209864373759275625893547444617068042114203524417139768876103723503923439803297444428872012302901809327150024037278991210561930108751065879414144155820417691095544218594919382641132244665475476518074420594404563431111091419534625723064716680582870141244275804781912541981425531688629595234019572623029367411960132826857643913035580021735756266259216314529781696169636181222841000463924169867487221746825213731660754810199065163096970139391342999621626624727176493001800673038205368070704112934259207849579638726323608143741910100436597357219369478785854687551209863139552332051166705894417969088847210806746742580267785184732179160555997477801078114426898908795133470208788718654888507583171588364699647744288304283463247574205861548446572077246845249619211774428770832298963970288617284919077190514794569689075911265727124321579215488044985906572213955708140054909213418932847373353465827296576852232222037531171275620856396415108665173849821902986130484735431806963104271771185604681448385670630721123619383154617505896437421167343617865779758555180962174059986149168962374841298174354952945123645023588138077508388774312049922418204674723029922992141963421321089959924081503140843508948986019049014598974666113284062692263330232692933898431375562778745598445242890690535100679479137702777399320341975451617345974927259961788560755791421579009582978350351161153345616346940503566875714260852104858881258384178989791681578666518056173645642335783309383933511694114712936208369073473360486051093965870582061253779457896453486873104330557294080777688125388863167534604830830854273186582619858376667406560572109645302470633016869139525732433663261477241741553898721359878329422040531163443961662778699463634443746874154229125198425479536790348701249986845170182902053120624137394638206434946645095754873499284839764239590317751475178680101772712191789501939036180292746916909003301179362433689244928410921451233582519187813213262538788599560283467217110547388761906515426371358151211633447022507390203259940042830888338402212351010201081568107351464379076266229663906591965951324877640430084237186519340909055299899200484667599458422199294599378239007695785617754173497290445992832433369672010147486958254585194830048383594146835875378450176080401905027640096381427140946852818772070935062442147731978213455934075615998085259237766311297591579562809762087219381800053211549603603517525531482067367379542258837154783928921753369867104726160384719722826780843939164488912412407662972844523061519290656642269870353378948778467257195011872205102436097782500183814848610309414552788089221785457330624748137379244261655038514720088675465661227400019872646052524771360624941260386318381520296660970535573621560574299211402649424274106841656710226225324514334413306340444250819485818273834638578010229611118836000454555055421604347584566718861192547022277425850236276901972800645458341361554628607500737158249367051522301981886889921267890699747833705901401672359818256925103912240030648743408573418883669006733590087509791891214063536937312435976337877333610670074486723737556552613605578287464302926289449527097129031784656151917045357278372138973753163473379321050042391500276942475672731056452137590333125519870993748487264314455421023810802016643495404214049144788808898496980332541736066339255966635667970790170409516579788708268454801985327318264308888871493129242587805414912749144972992526881152704288425440828628364352079596356188397993242358539622938986026466828259050372402181403628383885856185912630152277129877241929044286430162099677157767390886229792923197543372238460722574375071758900555094245454820331150500066716002948782841955607394673560474619058708347604302101298653697192207769071993942513284492138095607266750120432323748335682680231793869284596552698485107431809929851945825001313339841817941816944607383293175274195713782852919146718395521172674499629353138703046791096654738660567031713083109253153541022476532444396064632265391149309908077269288291571006481592864444510087596547943030453966962814403094278802790892856865138598241966372554722942938803118185291526055892164680208598415136860157806407012141422972596091888396001573829021805226456027601137252342526667131127772228377246172222261432444351212632222031875607308461016872400064897027001179333004026390784255115822021476239260821370912629712873386756197021335650845909009241730191390156448076079833685143060521537314653670444785696453015782733785730279197913178968458012731934969011082914813351495488657276362738246056945110480377221589070764978516739653835352603326843535343309675747334979709079261515869930480322673627213612613849418412708216405645026377835014195101842733228015653727849400176997443292702025399933648980358653958801104961091518895975497648049009967212535499360565672524588895605812980643464671772040777390069475580390769212315095400021385015853959845516615605154431231408376094096079988464707704050354287751885736483395098527563062789163733609749514841393292212070649514370911928281112130511151338094910256096528074698525685586525220868184083221939287481368850393042459873615472883522190009182043441287267404685941081924286914314071271511060754637107612069798585716649202080754854643120143589945073712206423995727285701080250743094307835923660955967607083571229652078855886295668703746823501034992582402690703093433974611564685796798516139113991619743510981051038575452549066018516251358131383587294507459299549220581335982128299269668127302955644096205442797136429202236268063307039716117430375927250630867683459577020045128305629513259987733540598268872337201188035288297463803236548761969378664773374165437457178792070923842694014176597905775447714698555373444446697009905236640387441575948766594094391379497811579712414887295021967962851276310957303861827789067503170949977239712533526724113557799272766321481869712455580745365323365489311914989962161568142947439443583703092694745390969433542452852178941438860283346499282868183315551223441150696460067632110969077210466137821535543248217650418036232682232707189559066197604758312242781235783474747924362789952962390581334437105528581699044527307978171335698556534718889782944563279887532911899318814790045679951510089438570635443305149593471755538929715524721192366990045793149866312900965530184132748390426145748973086361187240609797047075745579809598347083536538666267268004861641237923035983672722057514672814870215214372393964949681087832191344009328791362822026257254321124264969423483607870745777712908794093999582261696263768705619560402315207387021542277248115315190770960422003295106620795905100962054719900666811457270342128662423444439286313454812445009567085876719450629978470018540189452320576898235604808491917076025345184988723781968353508871864013268369184905843855869551874239321545468273820393763608183018514563507194763067191113510354800359176203445500511309789628416040326714055150975712563664771280504600047052410418831443746289465122120048537553661386127751083970661301975539966439266532109632818295596947720390652902283026378132951474884364935286279877986004753339239517984929244895391628432933980321842651675674369333565336157860377768225739277283267741657189977167106095133864351863136850296882811381144154680140438453594358359679109865927783535705346437836818507238854349431865133597700719183865431908086768839244005507481398403582332015329390931786483608927966020337821399929421741549903097789983059789475468681149043662985117363043709071723162177577065365062500444342370368905857936495703762292806549341546976505993483257056048654058052064809318008255352202959119866201896052488430741584023288689868687939219499475246889429283186465461473458246091351961032237092873514408659283923441741209660715078320673831006409559031458518258921568125348947644658799211311365477995278808794632272873746037894897259184354855314196852498222117132072181032290185307099216459319592615776327719039280324535665934960908246550747630164694560799149026687629001854739273392156281121073950791565219948875511575759947666602117457276408379340523970599345530545765909196760072979671220748384629150013523461245936972789717734399980883479296771757223616327393098447479370795459977579318839068343902192527489075286902962988409730906485585773314521733103192965963439092540530525617966061172700420038713279675592403930737229700471429552769718061990484665573484406905885285155907415227502831067041809190763467169882485657663419651001859231207114071142528255888567916160702345523602928702610341739382586512972852115037756369352096271237608740559227641453513530413309386166771326221580630985220605995646950647967355451363071461033520290952342928781541448706021599603330922553668469344962436265909368494166640097063619774315670584111263284119168530645072161085852903184950302772262853168169483445125189671622274081062755399312985696151396194712310929198515798890318672272908017416182829427129966767156905103409045062451641638474978058375640300339398069543004505787042411942638543202874248993899289034166399242835100173940616604518846339111274896194924245809631306390827439655782185478552297498513194414572275920962970067367567735192808183152803674287414862684911087435158907977553338350498133627746131805951204235408591411716579595310090124567213441549019691865214416146710702043994123243294594278023974387727030094217561619031865155075068288282426207339187741883049352625406669193629826966485984090368991044777405078264903127064483856921603744165431503147837344440522387658480225056738223240340124520440456280432653995144412582831755033854943982978657659191995514648920534146857068748094948533357521500425214877665149986751606003903905318975106336303812470051271255666815598357436959104896701259486200453389423576589326832816058544383488418812543049939056259079272483799296758600754931002841682562699007964261044948212065363142829806371450403522102000056760897272090241751102520856508004922839849842000009898683037312371291149149061538351279295875659979916814859084199299150348774610502464492697663507478520567472197965716114089160401438646026455365435372323032456703859600637687034677976196850858971519719248136952652689388754304745033937803580334458078251983436342972011252670932000061086237483691257488389704275592813156629462430847720208233664892242136923367574356294692699798823182917434582864804070566756082625247568057370133382496440540341016378893500210519420460559431631041034725613171771727285905589194354097575460958040194125821842903075687164549210443736683419030463533037142890496564959090879644002207483367967070001279379091830604150276224695408004459281238247231352014628300035830591540753441289569271669400807610918241838433471411766872500856924251023003156985895046682432657601632096016918342927909619918062258067816427595748809892529419929354041467820839411590862786605555040661268721684668297563070046869946736541674543038835546582969157301279006663852421307133031972478518042628220070774593728539526996262252813289524047768038040065426622198247434401027544462976160074126439588344142312454228118843267455663009613113927024856643525202625255969595183671364824649707336659358012644452560461148689889235463967177850468395781305335125568764870621941215693171177559267229981977573982602213341575782477001400428645655186194899487046444354934799675737099085727868425386457449983953945794827373236991632922859621164931995545871056152891892502955571743377760843246884562141825284054005507105934776761461359169063355807891676346144321188433877656737215611374014684125110300520865546223755697518473666527048150972096042652809939196912364509305283430610344877800990268488083757070580982665437811878725343383196203012754619501747721037236845784126427309504146911951046050982354649747299410701352981731060085552633715919079086231370549230188234419929828778430434513227189334737685268351499885271888849520931452156245919714632217832024049469199557475700455921063641338686818381733359590077285043032159707344708335710272331160006853135226303024961546476764760196515151640257940426970621183941415045774179760100060735681126492703256726641068520090498271559019234408125731678562142792363151956806738224641148123359337884251166468303727640480051890395589853413638482139019312390305381103492517826525051701618915095366725391452815750196270564176541196744369834398630619596814431624489797375419257865298814736258774013940750972298081530789530411821849870817861174325768102088483743420270047990366062932404593371289892681485703181993310689729681094069804462161942405668772000875202630739231639928068996016323241336857938455218126460378197639937063818014404670887410306010896044264099973246916498744860905700932123790302929123612216147266214728583524200261766090706836366351812765472213314920326868034264456690707200771982768672037610841617193282143720032937712652864679008234567755765192076504292459818308567058099432104240750667560652327099853928532970044306492671037110574974806168496812388427718355759859978570939375017927042270090052933259910643494939027071895192384224899560784104825840075731722779330240163515701406553580784195024229203109714584089463014992124705178810965411242853463334368675891279960031684533525261428071022751044173581045727849253812139188100923859777733787163381776158249679163530686436692334218226940750959128721889592928744807678657439645608536491871216420037542591362219898282833408756558427233017646918644931901201012966261146045281469462152845111838384918862004048450585996729012375988660108333088189484946762675009515124833179874324677477514519924416918287654831552129709617052329565866846681397616722986643223433854465700458190712780273148474048857524473513992223108156163093068279137019843998889021028524716694423708811879928297426486996764542747024853426733406463318300868267245250528795967279536919894375863559483115251698034992301581997536667907513481465474673028334155390526690451122212022061428062339303428713290500082060406854239839855869507330322114217888909337695500897213899557529417726855236542607475158440198062914120874759959468148184424095506740651817213983468114007387699993214882441273176512023309482237498545522373591223898537377906197170948335115411371152723316652930075275510544087745484373499196210410422735129870696735901079583740146497582433095603840462623730371937862111418985672740798522917783939732875994885303052763053694171388044647473131672500302875707583253076959578828662965167108979851546240906261724413984229866543797334190380106424772005010008468543182005146322105425379176911971738411485131823122217692840926314230273618641058301103048639691228523856185246629001215788101057706912296730002719236393533207588778725663728335364184346985422971858505683894127121581216562517365437247749330100618533103870984307215672451201833195163826408469615090067697217786884725505217950422729918512711593479272922916486990675696766239760221019024338707653065016087761746849173854395254563181920847764355624124901828227614412860637793084024986078885342644713000789886025201042684631744573786721949741531178125157446728920167303236744798283783605579645095813574450575535240249772350513147294570121681784572144385274221319768087620412827929605531572101871233634022788847588422057929569279182159633569821732872147407940730276074859704981793117987227649192143505847064524442006115383186668646262196574509934224833311065812820802534135900052098793991216521118805011450596444146321623521175676700605663196808241375353077133371485652077165049696843145707733382514356580963915539359375265149486193080615187001267023612990662293414487146265564312929008329608267321573778612925087181457503559123953711156660927955434218921220396769597921604029567747890628849506844707450309511258152899774178899118241879475309369735327095974446890499760852440089525314142894380241053203904957504472229091237658329159337257994784493041424618254670941272553877585981674794969635600384877014806907788945763119518647747183821159193633529531398844370932324423601355358563020512407247095539000965383118565675359599089085704227228769668326219747905791068561826079143554928695145863660319339052752039134037522366063548852086930217117245333424418820676213308962041351607186469107929323457623079081879078432557982306914903199188294133926589270803188432133657458027502756567877254526616122840484324357725913586615141873756269686967711995219775943626194246741339283436081056281050719005235390438282951831239987814853331199796602122488630319015702746440992983572503520770579852088655523398502058225531241751165383000094590383483864785641541910060452901828882403185730786204885438764621665577467636112957658529144025257157581934474563678431993390108021188457917459543380942762506125335160831287020356768451786002579576248090112585757819554503435929584981545466313288100977115264007237663756444198340926934342310707407245306686407081272443173572502854928389369686284238120007220103395460124779414871248687027941526746931448195006699328570782630140292271103803517260927888267534563592693509573616470719146259153051520266631074835068109122737059142660432234148318364566959602034228443723447605471746667227048643404619985156035514952950807215414556756847671380106793250374253275949458308673613440421996034442477492787535107796934879625688399941868321720579670391867360963167197402198712882728289974823315206170476541133290417686557120656120451667722007980023070330282982729496760455321501457919263284425193624424931849234803783785979804856546544773705266431563709104662554700635876185680203578883796407024631471172244902768099690197548640175483998399493964395516673753789180391517927715400349477753377877587056768233778764608688286215027553312396437434076596835960630486060447876990224793921006861361222290030576241296411223982777195773712966051111318627774448231322125041766917151176140140202749595587225341359853048904245181079219995810283215690439080921435093319230718395745252045325070885210454909495740010951541692086673173878238976773956157315801255416986819086768353792941845966028237383995456390145576267172847762685893153244907686280325521084391194695815502432410652479833502377844567685745914113991101274520647889911411920135493057845452852536502308941283128970998274027101602431376848337768886873017091386865714809524064037208582769697772415514203646809142151326457934765596663293839102122065868138636562224158311802836894620151071413691840451393623220661005682241720446088206185215087244535187388789455097724462830831838060305253715449287292440549806766120866368359468181843600851661577124278751643188269904548875630221186689846865255798538429346203848515340927398164102201327658092497407826553219279845195101216409087305910401799669075220052065501759882431616277852189037152518462280794901495959411216951449440850132447055059874822894532056458586813484319010001706174515234490188647815281471667058433759846188094986604925704375537275922607853204041586636156452931910064906076084771307042581570762712948343016853323347960392820169737689222901367409417031309864184539819925451737599086823652437071640730205078434980366267495353650497479489829325806426397903099763913891773711142510850948029977209369342677463681867255422977611080036192175924128266077061168515725014289850983062296037040300095522505868129096608130701971662096029153534609543198479640262684784139629620356815895387918113232845583068384712332761746139566121402019766942363234926870528365713464216350391931802843127479716058907593233406004395315603186096572731360613447841192570182481380955069652135399421205075792894857618066634933390646293900476936114255890413948834355719777177528860275019688868411051249982200442498324472404526941263417401943870595740119309344029280502063923477143835119683334612348661392300418735970491676059268542683417776770926975046784314535142685504087529439074297056103491009770699631657766436192161870399089687343745002639530539765553863371440679527874471529960060262691436619361136867787088318857207264223192687462662735925199978745442481276650512906572821474802091493184135853122443670395033573353289552106789968293975200766778606402552628746276620042616211331578127660794864953689785376237310182320346032629612255090248418677381681270929218409727856063155358182573938686116890622516749917797804765770927197664897097395840770507679668464675866562965430041350061130229070600555318876450782945350064692660760303044362527397621795735195232611564349176545071352271077640612983372555382319437316623731026024992912166387440790487665973788207250441071208055824636805052714820257425035937263204774418555107238930718049336090801879516710770634570363933446132276600383644556861864785401639208582147327261831571078485547370920446302061061724412972536150943613564493189361194981168272310852843978923648169957008140886128884270846067572083430375862861216524825129084800252325044749619110601981931158322226919452962881304354334989289830530628212797199185122987545353825583743043854889253395204241425576680891211157074354450652018294832382467377124664843592829266487874605491398408853568820504984218711027873950463205139872670754736801365400888534058819259658452488478223929735403356852863383512674131105362061321918536394017032560128959380263072854241242220322398081829249900403623115033159494443892161527396842061372834852236511291193263670301040238873679618667698129240598188914223314913207567759259106206117920288528992418075595415130354291768146240188075379722938759488476576865260134628024266537928128738440792609976274274548261818283946212033344140137661402261146358524737380294258107566661430216558737756632352972693201373945442112196746812501592737478416681933704317472594673579646913237139361882769602999727604288028087273372378458940157490629398276872160086911332192975405219014279304111490168142652899478420576300345550483206758253019759248144942438191769513222993016217549517511526115187774601890059962969418361536330005323048374872642371133389294154926020993848393736169152556068116415574421211499820810328616654994218004856088269512829659494580902872965519620175043022842808009974152937526128543241606882200950126586422431346545966396679551763087674923019659228175288966426012092391583241107581754391249395214809268474345291150825889557875460895831158888600258529012316815594711712813110034937434280380739123608159379274034211223692886052692202766926723193433268348965564898282652766938725079372940963815683472322507492028633930482527431646804759022914520927179154276899260146525158814487566515565172476749316341642227917213209314757104473969151843398548572578499406540573047067835202491843341197652124771649728018537993069041651499762939384312703043115709960791562071392193947076812344840048420169913446573116530510914136768933079584810307238619236389354795312719191984931420913875541328895441403563352461882990775075559826927206247600013592499853667400618657717488235844213951301475283387666869875364937092044651381714349500183959697118811715564772589275307746785637207748249415868748296655054455526043548979377689215600883957681735068542298476214168567883742748589282669041643943320922959164274130083755289147863388255439456809492453914437974276538963376839368508991851852749867886295135937288936648293595547861135847442569084432149664916190839068215241508614287511271385137480285787592166183232233019285882044434236523267211815843459979229858049639936514975235180437870356758761326685296237000026640080990670518399015413998588334976210731275636730385328227242547202028532629093096788272665966874529011515559190570859846584191337270920013635683013121145290431976849151836258963840595181994392788887293189301924771013622748921493674851951935955617969731090925794295705507136305453130258605767495865844750388934485853760682926508249024992473502888728850617628184807567019861128766209320307617729969540552489660977705459217349776201772455089689712746985725380949843215323388456948866102861777611149799626497517490802587929296627363048698643700525343329839065071430817762364049980806419641748922955013821612872791868811003097865434684226797284934622898034468457837581170002110850485689708705116190728321487648826832911914678257573509552156332380630127439011305832153156840114507593170774496304008256515785631767676402228362386994059759182678297698625900224001600661240781092765740860663999775545818839353988312596284512874688795423811414143176667213042063249573885511043604847600913668640026167962945915293828937284089172228909792181844777865173076007170947806436235839598205288536046512836604864729031101348563098703469686702808897627872605388812544660954172310679830259518244481188639372043987984687602490286638057838680578940692409939633497168998311348857489308105886624364317125863478450963578126006195802014802281746214254538321169023783490467781949749237045427746424565821147298047721043472708224656553290993964369649715575366396742845444621329042195882863757913936156874044754154213647395039327834112124400021829758315940509252436817765811542513971115136410487716007462269693753876380979905031385101450714665505084053348621603388175603536891422254913454844756943387023158021500145839648383439453890444198924817275291219439608541262768864170083164986004886208673194807992219007237373500196336515575280024877802329873042442981979284357585926391933162587878371632618274059478058573908633302200931619701890117156484063174154717679695909540407680224573785108015862078375148007016699817512688714534883132826121298427925174669977790657927816645542874281817049026067388837415123188601611752381110826816414003437902247896269867937268452600564086011225717884230882803713979411922733885639731866357599826145731435531077187234141418048553943265395514342276283366821949624772780735718745698249916297824975532676168276281712886278875193425553010413400366666927587853378664747454957452590988526933996548366827395274507482722291695567206429561308397337322396600843734055910043090573586562117581590882357765490042295763740747089889421621404186057231775521520024266599287075695575117983537192561733012606663079948523071943133597947377777377398803338926681437324989196545455557701443457773942354805091667324597331852694811654795433776811555204742655777050877625783875859791005981546939614735237765645387214161162619850592918111926721424665101524009711345852030563348071133974418711853817701894486815009388878541740462043726352932536973738945444174253490859964137561422154951148603049000768609242397777764273157036650113365897800540218365818748583432000018444926835604213552531663893274885164500423355949229752614099456163037084890795641264578539283361163888666843790319511194414096347990062998630112384127700571520231355020689918649382413704648101163563281531609342972897592768775443104134054198794838275875991971963070639084482785525789039044246377723319704940241080188465699743432234735649821708982073200535848637751921173341920671611987307121033350957768030294097388980585301483214702985676152328671459059449576604568771274927130286318110223902389457644053949539056508733385659688336194234323194930808313221322839400504717715608035129301792049927874819966841835939585390520888430431818277519271863115460892289819411983565468146576311148885654892117373285507456128049863516743632667687301732748693072258980676243938568260696123471330805921620443688408596071594006480120844676340227563872880180429629331151814512432400094877152659205579723859766637422010264490278787570744463633529296859923739948972307591634857672789094459857141469005018438918301969336390542554416415966629540138449867839349327752743955519226438558527495840384209041820675046624099715883663473024968452493303545735818397684366548991246339071957893189264035482114499813370498034473701663051149777228004782996690906260859977853458224403236147884705079514235857665349227660269667614004664906937602347644942984347678214878904322614265087437581346549237947254462464244202737745048340310651158499335170046447572825037464762396955195164410049041307883106647997690085152703938383155617555509947725507245297334671274240408224345290112144806611094396263220886247689626169157982617463539350944676529732137025199728018423212808918240398849364800739082694495484113925952298040481522911197550445539543394911549182568603418554287048841411408004513467991063891695856043878325897521657283357986158920875693686952380363275963004318554278298458529132736244426063543515106686587017397726736393839474850084434473001364773893118589807836509107701315966613293685267448450342245053338215708090489346336433614747489304050417786101610744562126794923100363387665520385833549552411391143619920924995434729427246574702276743301616075743675701179966897893111081841656456565975244587646171793017483152389118099609601433260220643503362239571503012127687062902981290790568793579546971735318716116828263487831318276152708423012149536477590122168687645137088720407578814445667351494310221444603125224419925365994481612546018445890859290374809589856436729659594650176339836602127191531056098775680792891717728870954368616743988559190076934822736643039382164591042854628954841058825152878054211736691288201943501748461028288123637871710210618973497279632119058587346657208558451878749783252948479193399078109651656284749083428582905150578447927920155717616864217550455051262435651735106412746160081664608349564835547295096858858063887659295351152819929446524627168405079486310099578864267611642191542458062152385520433189558081846225654777870592946893407873338004087938434462857981867998542571682548646681617647984257100075685937618966714916747669906711405009088103805450953313303087285274627423284590446304273583535894442787546842499596231519230834686520709863448901059088566714458304647908580892146801499348403007369225633151057241584229988842780495915846404646224402155946691190984796301215555327111781497798568551549475537005765550241748015355057512761799952195311279079303181904108841507206580042887607119311726160580436827556956481620462257648833970576964021265862741014228987384109996250668645731081040526781742127833186593752303118795460689405802090427918974309108038378799536964194324277187036947312998639351540595412678888239261859910081546393378536504391704360935332017224044817113117783019199650722026354470240596426043846971828273402586979971199906375227933414139257847937367524391705421459515659166861675285896876433057470995189818924117288254891440074297532161797566524428140608263730617933103863099677322575211742214367654042379120690850720446762054844352061438321616855372735010833626685617776921929936825098716442112016970894448293861946253854890436590175231927365093745550656976393823995566195163300233301474287607368741571188534353518927473011185364235159946041907101864574977366022130483056766079908388481878725778132835297791067397834108345192745132557096493985661310881687755615051284357619406216336464466679043977186869883574699067924885740503265037010950906091867202220266888220583658754753473240137417140253666382056282167039297930883932979893690864121288625150509263967960014223921876877878686395140946330120847519680437702720817271993110282467161852845156843746278167791468659007208848375931089970611537921405872965624762398456433137628311021484133706045955398651628381535033356974086456266993281024490112691100870095149081721552861226602910497911974495595015890586357589518218486027938768857859738053184666686630886906323813092330665756914136456403051556210777599710963849948805371878588553684987107248845996800011730933729571778011315777864261600593197219140497097307649372335353237204801466304284052664402936556384221343393016380799547928737394431600439376589144898666414822156541586622102486514881302703719437060816733377474454019943437288876948721615226332652466366027413692190100693902304412487888366007896420994208981782783110221090231375373137325668295501723279379447338702263748922850724563069321124846032489285963693512024420022107213374909240594005670429128157728725608519309052302627921015398484256826004312015100819219052245179295597567327009724659482936857658068293691678431464846181785406459059644625917483003964370631539338534508180780874882566783995859986022691139932999952868112827554005867943678217484018773034059664466077042314828708331754598774037153861000065278380975566063502349814848098287418676108552241118573808394563536881939200225319698585408054114663536094284413263797653922679243797141298890889147587351375125250625846720097752618672519014053046301025276607875199182822793604519147778014911591824532900064936656312362778086723100221072599379811410253461742467926593412452723992123037980416252451559620390070362026960846644293698434874331645064339693902886685052828100440899085250837476320668837704863856745818472382375898015675743406367505778457712734233548444075881794687438944452114776620479358689232187462309629056307099264504292078732479779176802196424334968430727161980524023378123274373497424145628761539546392859021801077342597371853051502385947206017419170947055950769276583470412375201499827153942414837772296065189893989081816223762308588665525982695706680047392513301281625629371761845067073924184189942622410570885746749919448571564279813668940852157512529310523971068028333876147564312983499296225117057921343925317804164690812662199571210336419296825810318983126147411866864361380275069973009991006984533298127177556737085819177161626842591001319332244201993866472587722921265452320682188821090320773497997533038430420418929780753938180349925115880310827369793443789658634260036941937848822821190614276966584369652330166739617414832293322963397408865812361475440911152501496814616781168905395391417872747819061848290734002842139525692042600091291111571417974856135247970647989302714538183663065097131307033888736759925861867611299452414164948087701941609898142571353895496914343262023692765222350112264484648447317558816504957271348669557663826917441861073858795811267630214418841997681240536253970463150529277946198992677704090547533733051210545370957783359636643655159040917376247648467993487981964280402330952177025438493296799990572124918661743761854609310031430868882066857126382663747677817105035093092767523994162784975360474172941933858260457508770107374903614733217810970441672900453590535765176081333366706173194676491141301381718977390633126561127061941990441525710334134232286235812980097517902358298007273306980467661358976948328768334405005384150482405966062485386936310686206204669364413719228973739669243349684433776727499193893586175629143463848900495973004706541356753497343524685430692170845692394230123551638257220285086796822828767080299827634543532387239964941996459935360614877609331697620734640556915193271979528623556468540050912246445477054087255747059896040964357932660167590865275912598629999142472455573558126217480516418202474816493135009487787239165705320959659737412848790299977131432651929640104981461614216158920463419140433871341044625902642268964107678810870187724988693067274808569115453980465697338011179895417320087244714446043298392932500679145529482424053024776690869264605910128428215412518414675196693212036422376462619731818737192614672288789013010174223574920142591661144197121426590005621078306442500533851577912130440961816708844842733433286811733974035135563838862031056201484029477755098263319497861036240054612507954381107507907031238963856480239544978101741134753710859706533351257424818486145988150999790221225007847775133771388777698132310162440427230100381886491506491381551763968759800032002228319094554828688040072579766786110430818118541220288549533625223183232412960629217108276248743814861725808962173951920962790004077236247186289487177610373791852899378181069748502250549072912269013740799066957374245806803767957041657331596705373108559398487567989551592550833075615533478021486339268324206800160608487766667941204604126819705685894712768412117534883871579935049325066588985028730950719078220484060556841727653812796381975351870259137634695040125798996811915607113149880408474937578795353578596662343719315245356154610219779102800511298696665126088086634429140491618603152854861951554411293139876226146861608411638756687998613128023389759612811907218831917470222816001414479363348971381722038337675199114995704418811283318551310592767326943481519325813546126389885557951071235302944961284673883663454575341667274830847408078212112185093120221292434319619361319247508067215923368213524195805560608003222505532539253613256516718050284266609814699094604363614845427662843827545463663272199526380911225128587222842488883605291558749700614873922388305217902465689130865440464854576072741498691271402305406350743703104827963416740526104849394899985181381636295630954664451664863247999793316953050321013954256952380681008325901243455748225715595326163938281992239864918421497806673718216764962858524506301766001179310333647395960611723216006408451995668620229878389837478402931919549308773810765720708509410121334909600021137419482299972759688724296641876489177221593400251594991476627302360778673174709349416938728984093431758302928744064159973596705232414381256995958975786729766387983060637456884725144433638765518232312071731593262547046376613372971696475272004833842146911618374527441261107841111444834420549635424670875884296919346212447985321303727928545010199914415030637778703597599340978399290094766180043099383977641287790225628470963383776007386253571906918280359001086332633987828447091919317064830688140185158269392462082923877222281960497614172111129790807978498522971516985809540904070220923697048173801747874479111916441606411546950693025807898243428962004202345381679481144261088491703578723339904871527540876593591810221188237783176821344419463215865485694924057439960704779414572876909414415737270724631846368056759242544303810348793138544324645230572082952721936223315249085691107475312685460290627097702203273806001649166729590095706985875889329206410651364478194081010794240751769661951017650525943120507357625602051966178961266480905904667483050358055402858024022189636142779383096899188603222016191772151289797262936528816050175429396427067063557549494798089629156191119432240574815413423519578273250459785856631271679282685871325644832169937818995715465874297202074617990881197127768789851464807701143871984580718447086876699310214660117938481826713304696919833649141225925890568915714641526964619002498828297319340908646965984151023314626889338624839359152885554954934324176033426931738590723967012625979537386835508738888171019141663643227410787957001547433808115182098435439621833141354623131024921615900842508712889724113086856449867017578157400695476873907613081307829827253541820988808186815145619132251424526830863185007440944397705547882688885421499456654375440080644913789190109193507970154720951166417092620387095220290805349688477416235681923576724541138310214607346028952610100224138668325079505379875278072126891564798020780403620699934400718938916175148970687259816010667910131392009699367991520658367792651470891904602003225102395258199289001389743202159768408831128140675791062650823213425706250048745840024782411373272091040779383456653533609697439416238119374978480659854087666426206397952120176912893937803954899530425629309589531696706900400358079816709714483793369406759911270692698424801911727819577488383553080349385508194865689925088999584012054006191338969241116731800023716671564242634264002763758450395533494426691817555261450906661241076766128856319086134246372289767193694335446712530291277736991130257030757396901047926834616429492268933318078359349875461369903846728310611843830713667600317878504536392410647056504528713711957960466582125216606117173413748960022054107530780269940861120730352863961971906904169075501996377244969524203921692783398190410706659039409116148750485171349204085103626088360542593993651085140208566331584404570833168271861086386984260186006910714558513578460022289432038932122880467176862748277733412914095168318094420796504937228806151640082432801322714339444147516570114562882351665862992904769586921201624925717724141745587477311230545840646429350641863831526341568004046649702277105356174668305253883988566795468632984629658691074887405672128902201551269337205041973349712658833799892043467008200220786979357900906024902391373371121860932474406270577308435819016581739889860803990601713982102667208938082023651935915860344150422319620928805905581500436052547397509046467494664757765039623438936306780227607673809416859177445844233192064057302059046180416687003270550189387769041911805567088843473102591471941752910192536853080855981865704228264483364992275376015317055918158398000493328692834563061796399829366530626002021708232328125901446279936789812881256402115512786760236098276112617575146815955320637705439406209970759085476729097355311492163449141896735674658419305530889011105331251508542193508219348438143847030992327983517494550859128549877930485779693762103110849818441594325668637060983843033781574947338976416037681304851340964715372687078594177276541009909078947982583513977967180341489513459706532276318033904446331472942468625755969334749170050419629731682528107727405776291103914421341357211976526146400436288388134435187793116807427101995333044352695936167129577545283677421119514251566778066455062153945093245483932930450573104190036063545247848669314279264249690761792328751396141065807687283120566166351087365496371947007995001725613155130379328675653907931022655340441821107774458527318489286014047361406071020295255662115016525545340582999976412244378496506254614868763262729071386874087069172619579395224269499773115924129088143303652943659867049870617727648574322153361697250131555029658564413942991457082039923922656226857545690266251188169183202455929601578700572737291821954082693982063403312572313686970126752652692335642263986625586634248145122002226002508011688692885609407346836480430237701925297948331182027479458134490229427718908562250824449673625320113309502073090650652928644314055897534052218488501665531933262038308866525281299307925293579134116861836066764089166996054500288024519695576088395931804974658325896040622204263030993547868304787554294508111219526945234152246790609789777615854901181944716084550277600143701959709524510519921716385237552695434013253380946905427033355628954515290029115946094755558469167151133423128063139104810848709404754039392350552822433284255771826032062500872330328087017996047295915073516286238213717081832928890541999970319454469750928841438644118636699554691005056976568739318158159283720110269130631321690386370224428030546325124605916307395426322317990146975678623986882262368166514209575871387429392420489802984756042319077620059118241538354694498094949926128399447587170176536418138831667721872976851136515540694846478265792391809264044211738797420916703186751444646822320883862156288531988763022476602874446513069087816416407739172920623628959943615064954203450081793933608571462119063960955058772340359624340839458908793403317689564047701248618838937074351869264540538039474510730540193183977532164576338923427340478697784277689907556806380661147559399519310819868115568131432049245319271512973704263325659540741105570724365040936090529297934355871802180054619648990318617677585890776558761529306739082605402298635602473151501530120011187494406116682639547349169441285169233220204485480171412073844985501297643764019910350792187036180011989264502986340555664450955995591459191191072771722812735511480181173916816166502201415871950976396207263117944686263901543613123974629592261321805828940134954902590565136641386959656945199732260985476383479061242748125934520841022704361834053771159178616905999222133249546394317451300515532554909342798604412195993005913919227358108390465237112331504361475815079077567179979498929581773862324792039792523758901754609036372446319311425187469892382506878770814919478478444727595559415325743260973171255229211996682246798682244070851862299089765746746726498344913244842711635299489646820595570925914314895194835738207227692901649093628283976930642709871770534586022232616648331546607575675646155655117484651066700492509735396010230956509300815728170609466554163573968556312680847066479116382367264004749381410598320192716788206994750970538457091616862260242855833122000167009454991542735072289662578068740705511048282306498157876803513415094984188626389277005161908123058331315660349371974509331476787081843871238212884295372128072876425213276400862993564464013606185753239585964190982551126907510025240829686420354986338111911404571679229054132561979133579806500268715478846945544690848340993581423238503809995452043014675298028599631474282770185123464728356745048744799083149477768616094408907262928767264404898078978207806546127709110298914078978287990066376610581610224897907963198624883791975314176511017562362828925589844732248241009333726934267087912949836459537358537895789403962061739193567178732464778167074469529928028322107089432980937274286477326618597083156950085458704636120513217665066038572922246744692720155997178528760810015264769095868842259945941055953938308726582589917421196903821416332711985569616347314491741572456252917398500396029388313995887480328529803860012784331028255912593168176341359535267368076783477331673365408604135706538428628823178279730051507531536107444717863044567048551616261268876106480573486162043694586803665499309372499420505517851589808506399110036560658508435347129744914646021137677515734918945731542280894076593058717302979443462854111623287942110780301604977799580812427611074039473282439167032146067246801834156034206717936851112861373596157363462585721900956826673668425407090106998843055656988814123528505172812103013221943718897635411314365385072819735042178010999456530695493088400548062115105868468119865586473717098697917813552002696270534838353610284949398570534673179929703372410504032727187658324277267690807522296445097214267894760294186100550082446766335020855120287420493719777364144924559226960120440870438937435747129591225010366341354334958207342722868311279195615448948695926771154456141618838638488897924834576850238824379113691661802284861865202091380557826320948877521459596335078822727798730039400426702757432297056253046856942455330525427605778410402487971828220107014840807970282020810788071102384076369145150949922935576182300366129828719429100902310591617574302765071465804262628565491365328430159320915614420250630900300830407049350266545324326744585935100430558836873168588959953721256473764689927803547793333099754826585317029545467720700133260975172802995471349621058505279381768265790895896810588967422568402467390778124282950656987102918642177832203901420608341362757606757203082155830769624324407349590960913812328670456702903955163588938180726498791839810583895529833833049435628635804846673551897788640297546835286037689791509524872980091740559788194250071377240395861277520575235558828204808729587484544414296251910586339691288015977053866503345015863215947321503524247928307730969038201791845245764428742887020916988859392001845806467904216091163054784284005462785071718659952620164807926468040471056912469693462840030849229919755470350329681639981633850994847293836085241277116485694919913162965177355921710207257722037379693981784696137259156249877984121821563857184216475082358142240162719255344312707036858977682686064736107959299852572810263794682956741006239874645207623178907624174385186015379043864189593105306341537875642959839416102948076886110490803624499270701991241206467979732295308632040994745299749841854593280476989774802511506091428981853915094708598651897197246605620897437322373962230406033901430506655035084227174114291152126811748898510191330550792027124231370494579716254120374484394537595015321917386548877875535051703819505388795406230618354724457905937716580979588285670878521236180326318441345180529573552404157179577698744141714866795310975828997148153289256861289105336008769548743998833246289609104180570829325501305229627246594380835917968854299099744122455057609831327399075353621481840520514853376878668456830632606371616257186608506992297385999740385737103400153947838675047901810674688092664532834806546585949890392013510862322152694930356187209115177506052880499153736160403764238194361321983965027913844609870766582018598116617165107647319912985559877773053172991770383430889524085274137777840215866857592987225996770003354875804187894732804364216276491225711776229386566165454263702164201177909471698938649246409818328766784914791581975443301890065380892311923021050591251608082211597188828733371284074310991030104568764618726700772437051118475143845092578108101744767078306091639108895241680657256732538976911496291885371155014563342084469079752549554830364426443339700488996646269060061613654820535341678405617520362784754381453810504316015895941281194740007330289251115269324349078013103527167004767408038058561766475606674582511559509583431813802123077287717950588728241560703433527910411094605290637797821361532832092701975100307438064242753366983369137310589480049015607541996073389470036382457702154941553446992468170238586835660770261786464418185146336528842214559929155878302082375880901626489682614227229545468691101012067803970599164345978051469015673804852022450974826543946568242458133549073076024282748284583035122875454896607892595351678804113134912665933915335411912648592231505962369156106711961188522773290137942992737746290726667758908398923027767786157970802464398364438257494007864912567500205792854800284247944748410519894359151661958362293074964368311667273062778283906938768950415974781227523959003692850169149804360244177556626977396104425765762055288020720635716270561230029692473193441876510261120848633953134668051887621635013722950744482304839280024320789826973361454693154589357064056253521743879099258500137262078966861216306085816404387888243763281641511695896614739183082373330884751620002254172254154265673885818199942059499737125999707036033388905437101595317848391645659734426357299843062407270712552222572665673226956907363007954169422620797416492198206945050371195808086843255224841821386000539866927689677352166467971609399248643521887273003459158525902087380194390170753924926844973239357320768940890052296265555265942384726637811824040766173741398824064922450968163421679597465801309037141229162283046984190379586105088976340808093086223551861253351492470812419899521602628027899473858768404110587278293273911246164066656767641240849597276552753414846884148769038011792232286467931588243731936685347435157450968275859208906741139844790548616061946254512071756842493874440372572144524607095895539266397873188639930025761286682001891649777860666522437089570393027431249466968384386654030872887789263870733755065614186275896864263419406876439634379260407156195557072546822373079361494837310631664469578503289334236302055987966638031217562331142212740624612493019917396946965976784913718664568461671266571158584665170172835041104806730166368345308102378900098604380110873668605153648248815896290333189537563948248471086062654753438234907952152776649242149268999439730208702092607892876663760097136684634193836922357183614528821827916172234790284956778048132074825590183715823802635929651401722537166091096153077207022475278912677468692870446822288062719015206913762776800198870110761588655917844888027129673556825468169553064929125366177262532642131677934794838962554911477665010113868569031265761767280655242631427317607205143394250024573655078339874343579145251382127382110190653848650778519978275757862491986388178505309708389666432816928450605474080461470660402504635462150129403665510720679871227423422097165527178166752468298976326498028136164140219236626205675445242391026637683781933068228772940761721761472273279923110365850723337096836224527213434151457828676867700638627952628855402061296722353549481616420068725116960760999335499067961530447211607491698001709516966215583101112652871527823460443849777460203241951657647905097883745309109761488250659415377195762058858268756395926559943195928673001497683630296248873996563873259461463165757557145765954867806796172103448908908803111838058383290592416102818571025005968760492999719249349864306996647870047289271254298869290229477885566600152591093321358088902447897767113935726351419181548048223242122894196671813370549300195248778944763349887735127559688467335571719189688342751924639835125825692747266079613705578403997114557745586386897974618251333120481592357029560993740274536736924752115897289636133542824593379456500484690186578818154210563873706643171734603251739958665395079988435427650612220385064048638667924336846920327198841184315900973489427534933366065983677163735421655267381224352158623731009470546498481718175017511113298893619996197324133253185343009233889918144830528644464576850041285987028304459570539985204375046384638691894481340708143183461410251767464359423577495363839270664082056420124673018798706600326027461337652871236818610701396387492711602467853357579575425092621140167573077822585160188747982212196185747004916228694747837544577710751899241109029059364122795266086765503776077784013975810095446205458850266723194896633329114668210079137160459508896486736966840559148586205706208479498717359712936182393324738222459436461312420966471470345885545849439682581190604366363044781512393719505258129638478559584184339847892299192788498838487017013902871287612943154130343907855475889813179908118499788909821845855147683833332418386670062966439584576276282318521189408269316314377119725334968170323859071542222260169949349400172194287346897436927429856468566134742354148054079770785480746735970253475032450527723658153927176759047018503618303151976025673741562570542361543121845196640251038235841919038709628219536783452394483876603880963891346295620522917528392597293465679712665802505122371916257748290142816270591815039839799504348389914495839059491096514162636347705538405327736274675038942235907668439932952097406723113644307749855864217708760729284172063466452335993813592656208612044992551218224289374199399716848558584052252052842942124705347355444760518527067836784401397618960997314661703441774144836305547746848671311759035475859257990326940139787005362373419128245858794888798754397970100093130564910608240974454278336384852296533062051297220290700340699450942540286583932323963629426306746528684861406396238552343142461678337901532711305671544158672118426238959794081947457668261019187887447629495889512198605433546299460697294478356376093936892701562529250784147380116135423853360555047655079172396713475606959528577775251836486847579946796911308405603556704130610172396204274531479620056574379845675259715569606813591345281101347119722557909464041269688776969464200140785876806426247937210137474156119087626103930887325505104974561081522909177106586535127443593711660005188721395102590471401526120836135731276461597132558973094745566900130891393095357854195491532368246684719824499913152743678557347511350263707490494354099849681267538140889842375389221766836834310143077573664406371902014673454649865320987995585721969787771663000772026558739745048683281342021283336387665652085464039684511694286635097747160057489178483603557706491779634170543034816820205431638891903442464496937629630418654712189796573152524631678022365364130290470796354325821342895945725068880706452184403379010551999561439513974681402525039216494358949898190208694361134262882578887895431795716224511538079165340382666711732541564830456465192690108024284833607198886474303911269477985238905022146080614035147972951213888074356747189891540149010912806684334842812398035165501990509309130000168464712892585835768370086248490885637723909402959309720737472403145454963457352920643375667810220899919293214993702872381819796651337227874076065307100900480867419308392692206623231533369914532360060542046708772825750604708333248049012493595810661767906728962195086502252112206804801475339764854477252498372634559207576779707017821391010170079753997698302547823719599914640476382564553431952353098501818423286135442813771039930573885408589034822345747018232516929855494231082816347319585154822957160596160939938989047433239470539716320057561032932678742186503244395461571948965100774849940541169146539186229692740116622797090294473297544341632849578386265676941014564880434006353808307909903060880854486970209320592883685230745212044199147461252538608817082136996334742250030961552850395641460898249842614494046309805100366239908911884244831644672590753563815717372412947462889551253938921594600062540914358970477592130134200549642865291273890998543133114261661134458322748145212775579610282036012434579063188008059575098729256388189869854878867270440415723804586257681504591753419491319064161951778596522499539134850360756874306235078356976201156034927969154107900193520043440086225428344599788836723709989930219667082976009683612191554053009278274367559395083192821451501248641395222598240723762057924463389000728703622972786790980866613943510414102822073177854434796162026677020773968686032923429834109431991174094583249155057678363582078686764378350978575489063739290251756335438990778636537621056081055836036268840088158756253456375298411657649820686396681208623006021344183456514058862575590818720802431120649657890566253482706770556476979598758768074546873443066668692932622668443074644086453168596562821254420356668877033305910719078413954188056386498021270493595921826092017770855379136663212755491067231603793203838244592129587269831367318372921800542978675329149799962936271616638894030023450859635118894624428077224386081009254091283859555742278328027127685707498831939248148214529210827315782824561777616350935315463137898919904939284061809681323729522115069373759097383992144555771853748543220349885799675953356424097958204091424980686514790507812998156975040379313948282427236000638605868303218393997712858928047387768826575943592573045076801649941099163470663911395067059956485733309731501054124995679616959057084064666911104978318231950102596873155990485786676057400335805733611114414442860869881430939640937370456805361117469263691199067940504262432989124021149445716807680746940684431519763396794170426877526156463057536940817938329878889636990162877795299961456754072561760824938281759964113999916420548232178747648184139242897327555874712434838965216026843778742860178530227325633873883994797470371451709922334494112019680762464332854307365741642488006644237697727288425875187254643124393608278201765453480621498543223483121122826662378225314679238704005153517245599595233207850650810735890963278368636542313510653591029291258307225679102364090187808797143467712795916738935694438641498473044496186820067652768187145584979676128033619788609824767464910628321659348083923243160249261768175493020970914445257680146040628736189007535905451110241812267696800673635673999056576769509689578660757410683306621352539292296132944482029984680040926570623559262927068778743709078541046443163451042328152968875473097929802439892083887731981961509514402953345825192406753979787855306397987272119103941214656762784293415277354451700428073640690528963541423131517041830378884682137110070469281199711059754905669623091679717840822445826101296645103964713942985056070633491956361263110690038623817435977400254369598644311703528393767290583940393621499526341176616017804948050078799348467713889475978579146110867268678712343827032975569555595960654084257446615497987525512240429337679330608648862411097140406725142106391943592344472687424094462820521303582494273745643080042602241949489429176036890205846537333456894069795702282733969400762359018088838404381880548602632779932960313525557620036732423117396605490134912611611284455987734253748292200069494822677391304464109884606035482792094242137309344599760038434520243001924757658721945873940228712307966520510828774396561197592676456189007505135216634537750107720435602533639890320351671852731514794545864644377421721763788331833701369582136686675703432088293917865336401876163629327462983888177940659344910853830916967221216629507465025846111457826698611431410672658939541952933726754205101333272650872921133334947389430826896065478664290370664348199171453126857335275463044122672052763577352963818865274349149843229647470180535325107965418648788565908193685154848322040820740683790040670750826967151356749560913422919738233358626962718334845393203612916940562694733173819669501924128492345851270080357033712487029378346190806827377742362265530329854058457503255900117003329157813395843919447403345039872116967515315315713421754799152014150363564896628921386006773364422925052551737665515811878773225295204649626925422974778531231783232703729807276612352710494494994529612545940477515986896246259678044395080976072111718223928874973217512691342867918512853830030747339074632058404391723864140478050535892885267231613449724865809279988579245801625378475580465535868341884691222749224941148749303406669452970203553337237013760934610298859354525410223395455341500165902015049187027628556918325332643006779772187764350912056549789412640927378424954630625514315466394389875697876725976052441246494688631265884006954181469859943256498251985878438582125440263955122856259194109887701275644514883204764213523102270412355355618349952884843224216187531978700570396593268799320457246571602365549441090105479283384516791484064169437884803554638459835447620095320052360331165116513662200662692822325789384774742928350673044814913328550846763565771523041824374017413591668906068960660935245522518518373024182732377752744598122463126220052583132618969762506056271935791989234755868869892729814269167509616022284354724917831141562419615747327577115207809723041873791707325753488634129033046697872224672572465103716129534442680302061411262441914896267550550059070658558085679037625614523767896584426659414975461340461453324549836230143677743144499803565782001869497808632097699569346249834644329707946505201311093535991023950697259703479513705563051089278696130388552154998789839048142573309395047515643389939540440763926329453158257712452106064348473277095573934891513818734171708752953895046755013331562572586548617317095871312171001625269338580073878904711244881087031453436210657028368630183784984786047899699221785342780131615335160610027516993512242615391302241802859570433855369801082669142139493729146626312909176985052945941651575851509601209109424781963942920097930656875084778228554008609964273618894249008720724508029986398226109018032207682007675043155910884267697159078233499175469148100578222324917311512225811851804500530655065919202317013944018738562870863770068371169623176633190000145461591002454059498155868415480075972081023508237577030661685827467568007801728334518768246279476145628633200605815426895003735507042548627815788477731489359614487763833092640427848819066246060139118078763127667137401134294264385451363887504496532529019884736890217514249284834696262932000812959312130713001571418480066329624187558908804427296008889891506549351191111571341574270591664638989831651407455520127758041254331600925867236053240541811038624549741452112639722528557187600178944021576544643457949541220299629924906067826119497752797005234229180852698830740954425088144802006543995945612148238145805683160977622809041725120986714769873074750253450652741250657852721290625850381871003224156386909323953668337060671870340252522006221518420480811499431433438533152383935550883686717164627864282146370737381066273672372518642825492335462505351367179682305900497980501163465763460017957058870373899142348305159592791399357396195597430013395826321060820319440533142348078016563810657941178707683484521950023301765117990586440202286946312349789517328194756619895624379916585666879699934995515359921650830976626690615601881446744879874496639203254734813586872235842017947204968027260625231713279329696640508934772646467988168479563299959512056776715504656623212337661690438656515135302341282539602074259500974002757090474650604174144669599347636610148431466368729552322560353370786631412696946615202414101494275402018500233766239622796730866700856833433098979802171734323578553571268743424258943791048398447612844348956621835948711242886792745690533778614189685372772649882919710080811980579891570277660284910812352100098769157137580226261993745713016307820585074693643995540067817986590466249919612037930140420887056630316316233110758871400751137250453717567635019396015294659462364373670145044277043359287766711984206147627518325968152744240680178661982032383734976426630603405465866256063300104952200330609555640767181726654493456363341867037667564923817757783375087281853801386782946511932192818768249552602895879172943013330801276616179477260069017172625617746251742370411405590635555091957072795974882899768682640821520377412759221123004306120021772896304208780692442503386415408658127402175551099063827970030079874398877661040432414151952595939493331955140756680945889218597243472275825823494707159455491597102515910546963903183392517446352016851498336065630547285830799173576815382831126410590390141337270271663169077643343025246141341254689535878887333846103312303051408290532124681806057910201184281785193231126985344314273984625555384998776354764928171242943233155266656626598659804778598420878859641292428045667600966322158148179223221959090135764223694950822248419405387791850745443136666759648807131569755338266918916230676225306865273374487828561657986277596872400311712090999893105399567917146316723390745338673515346832648987355472039307022117541024797680500133119058360615995335328724706104140408000745711249815290230246775165094460712186912760419725443246308528240026712192306001382910980193197063954126693551397839053342002159753090795183990803220736686649553954564991796657929301903212918817616382759056654689156852201867220591244366625682337594802499703198174598264984924707557019282831926312376023771567604118694774753982585590573164693356731578416937381090971995174738616891417883634807472738726904528024024213053509576016764900938585151484602094225711918087043810258869085403389042606119555151729900185288612673896238583210215705538426627354694324707141998888886992956024094316480163057408264675036452195430814171481879526349505864464202208497845360365938495456312500430482642490178346856911405074682221150802522659281400624123879485605808644661287184770690299600857755039927830299545233987535949626389213190695442231108709130887640098997686642941109012970657086549291283572027281504091369918080049899408127206707980504343061312579641912006601659180506791145349646259204098893644062543051538214507512927234413117307527064391485866927757820867037778507774796219780385712463440973765328866472459064471614471042546008422783393002444690639154653164300434206319105224441758296828789468181270904436422882744386045115756421697977378460819318060926253974976449860785253235602920807855348743632497484226246152402388872885091734965005702277946683318100068085578000335550252076254970400252242542413650924173469084779749303467114430387262896488938580026318288358503717914712670117208123093183648650044811091284132484911230013991382756046264652773635062221573901137902847581460898435929957313945569837960475503516711650760521846949846252769016193447291045620530383320361338978002026398115069393039188162124533964555881802843369874517924268551446331433589974745062431817778168485193481204361709434575549778462324692153355461436457684677555999990290994369666594623340984963620445245400408367819645754994076992347154947249804050295201963954077988643323155061127229367323152385279645078467656599046327362684403503004659519485700090423665279008868355751265491989269516292041551523295246492835682767894718678222605405482442846331055248831652948409306052592504525378375691845863501815407964929102569699256822211623261620786497389953529626409121831361243925781304256591515254226429063399580567147269412923123334682345264836651969507828155776875856709127195364735358994371797582819842000804704368872743495448021692819604226344844218852928110595544095020639412272804652015895458434558335138835088207397004775557593203758293621672651363339111744392464122467942974016656490878708595610168476360950639932984675854879538260122363777908280813495412665085028009731204421144923994792719227788206346904319862220424231588989815944728963228946702341232451568550888572437178062060286191721931742402683643601489331038837434967220812386573759660232868140129694114941745867427823491611857076244522352690116839374587758740720392521331224036456068838101239447814917471465567201592833978473626147795980626440673676645055847379703504977325334618634065415967593521152170352192058103764405741049373249222080564436164353531902895217250081174782831741795529229704420479830487897593970984554197069441606523440527465912860228118536346946706710435638687347340483681646061607808281076812750875571441251004612223645505128895443611648225788165063538397304924134342606955348230493269832105788412122434534507845103839648576863225284173868284029720467535561810464780397310195026189230946691660341057718329225650038720783870102046324579640118842102848880531771342432731089340077653461929187919917004565148418483924645366123188850968541013996751141100840441932402851588002872565994398219621086604817845492733566799504433019422036646526737524832082202199334814450781769363469067567596931814483407041588116797463995290044457404271353819381023881020965522584411551879225005829147281438169452241625545377203311214373103204424450793213457809089281788864141081153638385608172545997668043833145951865423876058957976647027617303768625901996836880197022646702943577279993970717684671167154275585466775982851905076543080115939652026992615650223758507669024347790565239196702896334011263169323722595890840355744866098198784272482278666622960175102932645624247583096916154081608616350243090884208213853774062362068000697873549501111618280801061301384030513801652213489286980935608175112710142489387494662819758731263098316048639372684577608266399310959536808037307994273912178092291488941732539302192207333413951497875697745246567933992366289238518953615603348420399199674577180687664333869107089040918069406884217793462869286386674963815859844229697112988066366809292268863484184910315028463572374672564349355170934460516464386886924124937616570764726950581161644315702347839023978563523966033588860115878130232301073478837792092000840699767552351051831488503425802829386598480810508318153233762258431741764748077446707371430656878742114116947084500102451199532910271103622566448914234282088904031090146519504261334070485982609859900696792208210583516331609070523615928173528517616730083330064404701942478945372121118519868951792327957552835720661043182731637779250244582300094670583113465477578303930234468543752794963996785936323361426107232331153252226296081035173220633053163536489042451459944984919561968651418058256892980468965147390205339666834439763696890823792007514837502882414491927630601575602998721777928264248271604683177324243252995489146954312766315597645677578513466006316542669343120767752013235475906537428910500845508265393825232048823501406642430900520853072358136327765404824664665218684521961186608015835352204122925109284488857630234651709811132654377805113558848730922118481720942353385534252332414135613430337205740816075577646485146557405030212272478119901583215206187109539228602924523867948661240693664816732247815892380977028324581361315646267362002890684255225513958456606156710023627745067602607064674277649834926375174603201106780433389642318169835111746076570449393588593863374649034499117222165389571810038866600356531258679421984321514449050526652851402579114345342643543145617698637472783520061883737864056513108481973503989962732056512058287752157327306004331887378811048319695957168248224596557994322908815298881226771760582628888118266688068446279389360235618860218792031552813871999619070494370225920852031378120133170862332499868207436324346946513691043113181320096933802015731646124905891565824311114693285454586832024117749872095763865287158383443300959567676923991742868128155639556641064876038067103592052018306142093857768035393906756399471811502008488318572652031539276282736607514255318837244656837791021886978323102356470102531331946490459749955140158278064673682720852274223176437325181663977252030276459879028564674114977671043502041585063557115452759213215984657720644101731134145471091754509846168255830081786327752281867974100230878454015448826217281679214966298576976917221011929235962704099243110178398944693621724422850320903688424083007940427639686864861670192257627039125447848085425323140787863034228060533816513393230144455160848051087729255209388994029794155080593579243811095894111247301456354086000465348787387126363359422126690971499302957861049991628476480888852531656431496981597890042692795096364552707721780208353331944016609578873000844695463287242851244513510273268336364523966749332805207977094301469675046115098516247971222235215920431338635297976658175618695856452989003595326320406354327078676958440116838370379182220260881272084301732668329863016306245970291415429022239407063821443103639640770467877860897346649635079821940003676535902078461686015663951288186974959336242221935444431819981239296645781017885331014628040472215604714197818376006782732151607911811886727916709458783359832245282834391811953311015806456788919317855621822650060537708464799922351996465563659449102951016584114845242923932035533982497731885609075856072434843173706691920406778695788744384322320648418747365256177819877452102292534588274931561208398408959250479499787108149346118761732185769403841926671059477941544103599228232107405529189949127759771057788078198707625385973076205766345700529554623481810904298966888504377507207209112564291605553686330392894264661531405961686624517294864474412606509804334646722693378810244041965021016433019162070533282243794364363158119027122626170783388631211663913866335319556595207305549264928702745348627905687750037915843428413640897300411893411744174146625075760123089370448135354981975164180948943146237843754372190816221061907264611213892361887311013188326174057385579059897690511016870202172304357438371356926222212174818575346924783805532665302130344225678540053322866699279390135963991881887691121978054618467554498388288545292778189030122050489714650637300538250995524887374408658384481387216065704481037801362763953658991555593162683731924685030148587328616325623849846003441011214491129758729977974345769618036106531532599598324187962647041519693468603679919418167264229988101970648760816566307479119875985446154763489197345229845056843980833253751501258326234174329158276055618220654271211072920434168295911037416711780032886430371620968461589249362575629541534111727609046011894102395849066516603347573942076216053195242404787607418021510642740252636683050102193781574078130486681376129564151675961237905374586668746961117515992639597185332355216221186627195706209353377931382426462386025500551017909647574585927235632269931046667015934572284762904185761377699986888187916236893774708447910108211060870244173001621542966778617177557836729640447132079676216889277168074456600783880324466174432494586010061037408388859595353793331813482973238050419335330843591338920941510907438155735746693068605447751276767693120479219758663506141897424030306679376978184844902910099387796073563196733095520008577176415053644781701833490640178974156897873190740520715778196063893509794671636603529439380908719209537748479873564595838735674219541518242396409860403559958437730146219952698210876225639954837993681462273011271467243048567665767982811967313538958569909565500120300112889580867800336547737077326630484683500489054078917283594847171625028158032915530447303149259862782152666361844714096782239821864833791215540251306940728061585422447872096241122911164085046508080980944362561656419072612792623670868622469540380857973253294202593057529294808584352141193213552660322801090483770720251799237498314690247854572229056199606255656532303664450339516533216236760689721123333528225727482344080127491493235818109215029122409745519074243301814104795893353311824649876963257218460792942825963267629777293646015102400128669161446848682647057689385148371268659562154568578896964102488665999208334385727289236991662530364104977631168992663341387400628973436489698767507238788699439537257030555756608664132509747936056667327873488338131758938014537911782897010915901565224766990564854366786668034737155871361518619814917711685905596065700387592562255260757152572889963972350425898664572162657077315265824281941035989166948877512794901327257404518795757489283565792873050778384043629470252811370949704062194545252780139241646656587022873538312587901812636819580126936078983703286480456619157382785241425794946645935700687954139995908469431231167699500964814383016606047190565125829579920019318993594937155569612962587786121950224603198414137477848696434095373015362858704018926608668433928301393303281875985227614872089881937766563050332897179115715070645647929664012663455436834837995600144124379084930388145519814831852452926569088775396850820637495978663047099227634677105114109060928468699624589830508427780074302835719086927046826757858436853424851390685672213980579767348437040417753402345196970286254312282513668544699909223308903853601441857784439184056298025637707639784711684174421493843056572705543118297772887487036096423330342349214626851055920208484644639106799419078494790429212907181237851775168053815491456783203526477406626064804774582512352369438602355926038302053213139741322363430861530256896774983915523155313872843580733250674472917239886833451775674441831687792180426638479971785771744886055187938083931334331045649020677074216522367512667478930102419524561084172830379124574102668791494938178418775164791590991191357514166525037384481255800483464871636673023074172265544182006896066671566900237287412686511940682548698625044825789922357946369361582727784056161053241617283223337854888637750089520651962571165138313249032194789361829318197609535021722047297760918546321188317767049514989476307701791887057303454190271115130649632074527522426856924823960328588243672343628126024246689295920472744441292057590719469620250577237671079681943762628114886329791646966413866242019471174621307003870328406963229189177645709453789286859703318312527358366130853739449388015267054400854998456092888359311169952215551423828354735537112434623409297358732302813917663645192328344160934491972383780318237585211935448483154606147807008456639019307046825003126139040544946540355877090996428796033418178599464693261032580072067750611364351394098354722637656025491136840700483265019135385906864666246111638872064319495906832611334757909668276805030022927669269372935784671547091184517874168785287422203965246046160531765172251749290945785598855944262370454298575535310700734533561655495182116702967258452964353381359956473150682504533200393122740344434341045015477903303725152176187542553868938920354449320603547680998130149080594086997595728324208652648769254285125843648738485695812292244651901709777452556130455010077540694075054004818014042467644555264800670781637081242918914269942364766569269753108376119701362887136288144526227375402515626265407272569939628873071526019407802227788351162856086600254811850317732478375904570586370729485554981792749417573499044805247432827888084978907755096126540979084418450972074100736136361598955583779641907206258259386423594051722679759541014466389064998377621543940877237375812673261876284665955661543793278331356524607427509873363960684888297644374397704083901667380166446171101093587253509807273214885421447992486466657840937485822001744842325665493487393539257512191606963344985658522193569424711874378806076788942628612232181922791377746715316019054137031189988670238599953856896914607107076616063421643816743999405292401856732992068499065267618183699194125143968234109256828285949325622863162563183882806383840370998291768321180638363437734967413016600937725784475393013826830388752976010911955208256141357722106623709371957748158735782136854194303489838708467670614434349558987535839271399143310547316386907546222887700680071057711441669487308539263435201701675551101560696767241003297925838475669348649063412125450231485607841859905343803673433833365761163672832366085893924725903813369646600395885689848629787924809501181695745807936054251079329766195118882761676882966628313176753428462739468912243385263308161991348171679887947865567731285129585215966048394667309452019835434890324096904864832158832030425373141858733351147614885115581157623938863118182575602925827870206299248680163358655680751071147628441265039701351369319347880948471739168726706862000237329720263224509079464839595357640512364270531747221416887628252424623150461901226691120895558993875992263380242628251472306168847201695952030820709296207126735383465672396136784543266938750099549993333932169655960627989939314880796005420880643395953946646970348021267537712158259330067222495439123620813502827249279975629585297580394511083054290644103821191536185630389448151151261889600670152664328099507810414589586044286173012779767303172797544340649965260036348029215442090974899199830578355185810246210819366786058345339813807653821817705003747306835448273429381041000847701237771975677529060964855963249298970691054917897821505385269370105095728511987571803308823090703928536144028832333153588529529793361432265609993453121733074112486853639225622773213762118218514415489743197632693988878981989023642013302280700364964806870630154259244043825262036468558727141148566285926589636821568039979714000935488351910364566627041115832768168090069319635789181381473045190046704843341220689802792468880817280497456323909418007400109521195732683849712915423722966258586976548915212563799609611378864903009974505627472301182027382072492884661718032592647553918363464914782669885619708752028642688983665640622839765814544183683293841228185311252084426032217688627378661815902437592758641421355187937847772726257069161930343556788087500443486937404245252980797521351150297601670902948275513899597558389904576479325121381527970743307111414899061842455492663048230536412320855981726821783449253402859001660522465874557849813359348192635692158548061432250412378814018561112406863989477022523374462413466334583012686164963721873171697768720418397020427208106769145386736244148463472387341944050803482168702091974384220713496484320583002878628152215045625651207182674281211579046363041603733112222602869270971370236244840917623114162305848510353530246953754009894135039595040046771804095176724701339002834332289245553378159722350907309075166668524930472439341182555766418858903474763700064147812681259595833422851602521181676720883051846616685225411485052075600778728196010029585934404001822414979308837899378537357902379597403849730407843468176568257417918131836098200929249676995583243875741062266180493416566395410043002249481819383744659778097990588354066137101416353483353715577081070757919874674571226174910499358132388600227362771773404811578385927976962544941408487645455069302162766425746234420315331006719389175172686379904750802532099622249151754564814368738063524114154087323267142128349407897568009482048978023634636100165521623504132778972976178045330660157077651263242307209211201030227042766021844420089141901582247415924094250895948641531176205931983019421773410534833596463372553803832481991363292432585494368150367997570944960611306712132875817440776188105612372996538897334293425588015790353623316899463589690761422778116753154016809538268760229646294106952143934031040920336150819161635104514109930119547612977579253420583550095167213345725245034228467709759950634069126931272084165395456706175202742397775465140367369723514739756988072082926768051918946319933485996467530881477160642800942994119562129297609326597692422310841426065179747708162696507126176298344231527011358417897556364702239740344874804356853062096859617371975333397733638986326003299120990713430644921803824786841768711408488481631241059208434355350475976017900713293379265719661121589291985144467170609116713475129324646885220795761503421588405950862989084389657474138167363117988699515536538340822387787729123387906411888969988824617962338014552340928093777674796547818963152238252858548103495164799194343719830279771322878216634321898312975571415460437338761087379706431618605776917772160212061209500260193103375857134989626555076883654461558212284360647763016149289460152517872409241042203621416786947399559916871160284119385843718924904255719302494845224830855157764339479001444958366823726291262294829237128376263763846831050109846560430452161351108728439873842353301751745309467471074626415751074680190685328506568633847504450578455907304202567013170405137825831370907570644216878963636319790825886099652300902331219412445354242652579009080470845534078463362827067257774466509054514748819359339022663582026828101708299274675078219644348708811181232000012321439748088226587631746729234078993935325602010552350033968769784714611247099019880203185576969767020927225230104592681006259577551536987203051087923228998747801787243361924605005310400637065299941666910742137209639353803019762331922287903613353296886145189621643844578699457392552255011814930229708279022062848086850813165258116735838662582192463004124142176194112551876704810301350047666314889273018969197491744760785149453426480210218513048717864366781092151243514140511687661423316094942835608841198205413019788436855970637226111652233105028111594307838295050639328138497567323988808139012158070423679481522324245921740721039797040253479603558822970708919202718318044215112015096304324061133991754858734213585678633036746582400571278264926601140335873488304644140747735012831906746458929041495899651290445684228161690525008179620688329462462022310424513235039120569334066447649907703028764782415784701243140685271822810480012349780897941681012641634734294807232633578088819651721128803379105409860503440562199190886035389562160066926384282751514452704180916009228308167959652533342621484387271731414404457568845386618942571420547900477929402225728352876672131785273366046723882700937969518322481368838963535739020055351487200864831084370611105683951379356580442169206110206765474874832516696974103356525585189893044328099793640159488566865733430116324642520263562865561324756686507948306500849305246672066187779132541737760562364883937193411655977853485192268270301924848807515327310283656312375441907802626275414935222168892819424337861852295900178126613716438209091225145903421788910894143356543848808761002673848581503658228233193481917000960738480227317008760521738910707735343000232388813459743025583294714979593846874432085882352742120264577293950363092170318857583398175183589631856796818344499290237541655150522894763430548573970135431510271048770677584119956392649289199179546191751136017297926337763824526534945708513650226425476841333145977393203545373480931450153307115358460487808000759657922942868567220210632772275669211866633902938859042959779144362607875848962230739878090765579188428255352914533246927610451409235886494191893725063508889383918347830192050192658009184848067950355974582287578647577673668350433760081220479918443527853407997016365411131692345877746678065007312466013020566400128215917791716938307044487542365815806539123745998060842780553813066370121174318808858605504409640815149632595314516163304251909740008335502597249063674886433082145800842811544109532215722039502802319075716284135828908016789358562616023124748111081316766985425891977633780844866805742775584337405755275969194202853211393417281725889581540868339291518896717314582994388585014409888869489694853441312155846769598365588391823508101264963136844558934286928244683861700027070025213093050502787590155908892403677365185426123131929360152607642817992036463859403004895898500638444411199349698217877658675399580521228089003190369837055586174120543846382461205432481669804751797610375907205892827031056034653937279443182289635510468883648364710689857969712598048086212723488765567598105137390964421457747676072133769408762427734499559839414526625414623068133978776722527098175397679963145114324539382475577608594718298833794086842820856081438266938767170614290479129849079344100230730629272707295179040599482809645981438714582872010714675938612107219571760017633179100487993226771762292208127003119502590237974355684493134905476261478900497980430229092357275652511515563688206446908220500218291249490423309700224876785207129809913457543092326894379741262581076262344477888495705767644487477964863009379851945123973091898323866433721692197639524645461102585409855815488627728149350000347470085291351588500144799803612512749117865437759745690623710065219852906865994697340943169245879795066375269322119486794040559008402071187242848176425860899631023425078637525319261914409788203005617197096114917398647149772949310148799803012101717268139512016093201557627317414840974882545672529640625211359386165361237333984931667720294065774178921014270424801089980179226244874093216033972764923980237292903210716497581664909371520417439422217951417990630561206232378941149951402529120604319308500934890121538090685107863363488092722667145284496758363390199943215533145641684510415126189747663539162151331684154060757494398141226819862774094455613583724141544286554343753289580508291149063116467183139988923279873365794797610755037714039540331491920582133635962711145087060925111466909682914922603863440818909807912585453232298104761013860117086403536962058613378551775058539933195984382984492250784147610068738088004313795223095342310826606881442217198026540170986057268190698761721420576093511205083164172094175126944076434754850505637797357986039937365262737755130107679014099162185053214927897682006215590026037973075622195111621326179897825892161396461186613532989170789493814982514130204668446730084239135823027824105758348728646277013487717455008070681417802871325525235464439284916669220898098640608373537695375344719142466896924016891218954856822187017847032136666911383874635115780100564909142622497180306007104631780846015717298875433621928809496448851231674229182652729593831395633636386001279336439704673501928076432123239778823560667625007970271357844779645154525471889675731870591194062276857166663286615786511571563060142082549374123514861029578136973312773529456147852137808237249991220312150495636408505953185665395098183208769731456075429486426089700902171980179619943960978649126138476757201333610111227238215685268152154910919176657248637296259305045693175796629559489622272216915177449628402718762808245532007264149786487352777260298636388185044976542580487968429796217840113107217467031462485258682879987496206505078259006815926339839482651239411330748630597765723341771647704808511258323420579040366739695136849950601537215118997802909475540444758465684064979237319064752842220128893715375818677093932114333693747954319406469988826704323780864850736535657519611666670124907445961992258439950368478233189716448165248126539175849389334595398625676247455631605097046109489076442034269863319353430751304993613397182770347293963410062269109746882883456772172903461137516572498630960625189394639816045460641581922935830257558083076446861222379391099700847136411078396582619650185314285024709539377197136281953235851629834321700341902413261085848098313741084011897176774945887841475943160008026279023104102396026931716991859985253454179046079309882243728488378105114563550923043084769127036715128779064716588884621151877487724871857511260191850506632535270583512510633180030783600376234531083132704949128600648975167761781195099778210807619380568589279728978918807321080827336740197554443042078715842774298294218022747368782486043654707601255375633544881189263550951180081229600268810362225898292095585959450892347579770325298471247225568963328667250222649890796067753038285058632136613769474800848967009267645061810280439116306233611142835547315693396032091889780134709870916695874250826528359640045826337805672212812316400369776916561364368181019059460353071771809691713618297156587013764859315987670106179559537708462783041321099860798607557517422972418573782552787461908250340773514523085558335341846029504862333802236689326746806112973340339215609664681094540863920575890139301840247561635332561075217608212523841286056773272115194085979374129806006430639251707620566386096269363814404900453107739258099060701141360402112821324148603205151961758414006216201196489938661184534259810985369627719827757301482699400658873048094529262344766918424544836518476797099154327526477464312886838438667196636703085115926375961267129451001825593441734094673382843662082420650207926167022314567249518274976925710750405136667030009721863824171626245748197132557093660609542616334188294512438712184273258168854593976051250952703885486175354616277178420985918804463347613334309385732128126968633928039850019720423191291513246269595640781669990299727580452076444513117030263236262454623484951698439053114469614149035994503141087223223428278210255526094605123753257804317614676425600532085274039714229652949253149046943540863966524739054711138271058751615684903058563382758542927415226265738991963399013053443825572517379565998414665003444690455924997315901599731249138775592227531575076459756373310537856842250968481893316775157708290483851856793805460661689724209561641615035285642888644061817166862729076646667435073937216424421714061422021723204401380093524713117582999407529707421470458236637544894369338738972076132246423225836538681191924791586057172204954573246284217964597381972535440208065771943450842677344895481456452615876705682978601867471911808683267055418880124685351377635627267263908283308765814164210479639503004615399777293164872416307090909149645328538270155114716017905159343844353463440841830007389676498259568569697693415830390255536666330773817788809201626504758966427576178801208122223067652727996811019988882339303390420686970761012864528149863601072525376229298825105058538033078693453670470856586586987882879354253376565586134745947795023262151620242091283626977663115508707016741463907975963474976391071784007450358540889744673943951805374294121100517082063446269881198181829639192867037957449643226716100530033504533111848558500308052835146874298784342723331351126055696530503310079302832265083028241896543130563738384597237613403082198389776783108408292400210824997899948591362619641709891775548735329172212845230771803959742273150543774887622300206574825026597750888404425967784116730206659070460209285633917231642698170253361040790366550611484732632178328777710299928839753346823040648065725112460639285103185695750510987467075502406048851676363791249629351553749243297471626193518018741222057627999141672565865972907597775632582763970519687896092848142429615880453939743645626831968245503599081922062404921403948883244562117667312347092072060986749936944137962488638053614651463483014746172619505650264390885390416316517405331176414701256143279635508842936964424397426445806628306155481294289505850974965780395624135472950203236625850813299192550550915085657363427770659404240093135911729064122416818937179468334022306090185031200651669237735710141472039463682520509202352501528411401345245381703502125419631071757373347088662486363811665828122002941111860073117748352145466279744618493366101177247354208236457702033352820068216332188160785596689170720894244150660659604963508230938451900638347289691177301779022256425039783579930241334942682527697391900164911942614755089515185751417752396404023513614905452171130495744372779579034179651131030114447993099981776426174736364325610623840598003612117098737315803732713849501240425611386034176094330375631237315559192025452023810039022424085003330995518594475121944281858806614332681845113547948087122170674977007096230294936426875415040027772231508925866669411701522135158732572922868445935011081540571206698053188792273535714906408439750366574799029989980762438393880059118959835830404536798287262925146023688261924949305000665860439828745522242517610278918567449458600507272516021823026777349907486772128912207199909311541409405083559847077340302401681216731689186272729723272633133756774505465628879985888758419021179778331791391720053595211630837903997414830841400308661482639697198556946971900580944358259624414751897982528179425955690954418199438076747913997966111150103238065106532007762059492348688846035373273203706557862923481684158066646907064034403429641494570053434994352831835321077881425397827468588048933167293155679563343660449619202199962241707318704859869625052496130835351520607918724201982356591149372455596344803635222770818697622232227239485175518811106682255895696514016496251114329604409141543546684837357421706305542491784669052223248234676468468570750065324232126802787747441413661172021126837118711179342455763182167628447020423414098006210584244659254903195651967251245701661797146521106497329438102604074380300314638157596634288662339008485064243123370539678542835883404928428901348622803066635884514380423421120258093787316661403309516761063200835696062665530246696865003534495414080458342774303373305222121845275617435400211099524011186694919567355843570851362666522074906314375734220318113549896579898158741509538113551798530834893640212718696657118343373398169597201808781614578601713369955711075450802731736877179179893496007694548455909976676952365917507421255590840039252317286508817071773104892970215841548086221115380304379657225059634749243308175833641260682535379873648017684956348654773253107352680207820372230242053626650168035289711986160921260968548776138096424073135347655093577065439659094686699135266835692443080177267290679084066604941721848464420967349960376604678139000479766498634253251373727079851942590140231762827653776512758653100395878703755507189581079437363132906127177401249956886263434780468614589063329594633654692876940292400083432963169968971667401106393033529701642092495865117270303569862553345829074493963458431925860584486268832400630720156869728835650158863271948504170393314159113604347122886204246857550944196893405616444698384442250897580218939759934984199235183169409759598613833598927545057541475925243935279519548779090933452399738038773785044606675915571450142755628174188932071987891260553976184315491544164204795081154185153899237899662667263744216082201992665361499882378368197606116234562359751690489103035694278651175876426861372871992733861711530698958256944554188263529683210128221156178017783050992701876943380102917012926932780983960864262163693452673958513876331461028060414286997771622897230351908834795925463448651446563401248379306955062232441390503142084330638410367667190130103728615662521133055714014168038186713432295321060327857315267586236005263031353726805598201625024916156376472063126222650309760072314343454779702422235676494636734304216546619957021202978799206076721316122479397367842229779782545315225848050002436424333149257612737190775565214481022672170055574098146290949013076684018370133284417570158020537344115446736977217287101731014603616298509889711426807716675752495137645543815084385066076518258481195839141359757605642044797571306137193190576490821472061769531040952725958987222646333682736725106221361757577312867163946699948306207151767866494001771753433782892919689041565921815918754488639183953987768520355541114305860277497391951643508406313687185338408116447710392162590230318357805695521807275913499507920403215845556276795845298417124023908022554590996935876291228744823365789702980602685467928953549420073978612346170990761790721904080698030845421555965012835528189094917550815248345476912080615342429761468367304131441641138333408230866696977289274910287892318613890489479339023564193277514488983491054206426544255944637398722306080836877957077882245611513745257872492346292852241260089237702567859578749906852802724838907685162069799982608273607202443982465923355400386054308430087300320604357839428639317532568716525639028591439183629771585138058144527495855299908904942800426125967406003274432772035900404900458997781850633261631259260333061948227980887765784449469245021721252727693411805223535690510310672067806893755640529172562560175816717608726485063879238295466539964287103705514069454248280336420341636251073079587654420283235819228832228456601540887926008207288533395740827569479579977217856051184053251274668795537934646166642300258528599143018489333045283745753226316596281266668645558400260006825536302605798624866744970189723812795521369818159222260699699910714651762155094988915640622552420757802151833996192189813445691312831287471362489454240520193708754410930309711830254875631698760518993128450233328682132218333543120198728906580709135675907248097770333456491999224042955145329408560868962850657115393483847678910752201342108949290542631543073053799271925468343085776548346419360264771950397168120036751432368843028504903381058687678418581649515382195142971393089731222700275340333138820147054409546368632332301748364695336297574886050843433506143113708313610547710241607679032549694919211028618687905483740060053322399818732075616928454041962842705016357566035296114031673653821904501765494349391055798310875171855926318247603443106627900104034587446954831098598710853080317610938731162500870101806642927746178730534242856656733461838624332185685744873779799350217142787352210897182474719811704973695887923995095908005383047026895012113658714403150700521215029867520795232165101077724948118418722937324228827178202872464878301969124840027888479879760255436991376780543712948239588227673879478481306743425433485884224606775957911978539353668753261675136631779834441661504170662370161868126736898861007378108638149661404041861348010024886461729883314887021952337763745007678213566368997084889189936671726256883414132886989891629712025024545267715778668487816727838389657265434058739552926531777409918945323856159032287778615507788981318370583112088709309569083924948668223258902052778783680185004697439096726799192277384771141860368966806188704349481416690222279229006243184969584282949954848071674216886366767908554797250700312962098166536697867774542420187057284635641674540091569877658916569796104913541501119842838176434728427428990778396088414868028227209199735229218660892125887323020388699109465945621578684855978947250583258365882582572001552958680927823188480293801107321196412733206534215690029994474006941394594808083600922474810637248149184985371592775103974829925945789530978552602106145003707766092274305411906975806302506825395389777900658809980351503082073450444922372429100889064357531872924104753270885047846057389825664195866612900800219724250024437303433960528057990961410647538212677217895027305350889021565324793164841915710479878513949826148426845225687201657476739277110033592477402488040603753408200991281635777053598101544798657470858275423134917860691494051515046222690438255299730588588159163700590266137294869206895257814563322797498467372581394667496116786769777973213481481246377115738734635052398607620571497751213336527398654802552228670561074456903166399755531306623021109004822591670417302460816991565106277662498801270469881046993442111401384485969491267669536880996757315929297105434676218162715829449928449852408907221967369527017102889050840625578925347706812400235389765226670733150119663079889447642026368280911972614661930666274600451799105693741506747560140861858333686072392292181222444042178312765999489754272970847360721862789547428613983368217532409733852891353143459562741191381267332114141404590874536429439585458870245261956084371225147953040395224338504095634106968597874724820860646363102986072698783875418201025171810490200059672179774967927256788640603355227579990286865720281866694917662006646303108757635993208514089917567768430910316700273387949327728654729529952178635117446915623708001116574547450625107119848288287413683372285853071937437196638146514136191104843721712967749423553656169731861248935113291930646150287011974416505854498601376774250498691145052738174163016326833012273485559611421632525121185650689609750391999502909428289854270492871473856545601887472459474643313200135995812611168290031148490920997597031739203114708603865998461122695641922825607226377259348907947003519832267073671003489676835827406545587093130824985483445600995762430140260693640334070336920203044233697656470636534862172178371913805411788080491171143192533712099844803324217824994596352793727761725083812799327104584830299050971062640057183436129899598403272902508188587637349325547769949600183934889612766483595000181285688479529540907489180511182235177170113599385273328248926189006744730710189810307897954691437723371988312521202202339567271325918361174696690602284628507714674516137102391811482387787379939241081103889604148499880135817746308697559463794592791394577318821893541435109449088397919792589553182224009110008773054593322658595886839904428000780462412154819707899248042154883433853426584819319320568184189712211361985800105308178487572386448384217217600959918753321203334886256177922163504786999392927315668762932296108830452080814162243000579823507037102666304237129458518470155162447827627223044756983132475339059427780617156221974135777639688876962550020014995375043126714088437616851243498422564538904359053462717338399828641686728396285950746086561773434451888589855624074326794217696449726185115295846108979540623620433683134503656487634267363514872075293984513701683532630185248641225903479569426877061959887654483201703088510954171613163216181686446829297528096876999225108615060632588556764676314022644964885170700036724206526417408668382203951262425788109164230499237508908140465489621174816807934371044596923024673362138059856741805189350474848517784740070822404418251408151924079533123861472079697296398853576114754101123557665729190495353049054685003293320743121782779213047003635146989191828500243540502163403032122975752049058971957978455511491388719212936551240693385687145673524380371585024598868411938894411438216518091918015687601846196629291874325458610215695102345845267274167088801389532396065195417665440542591890696465998334405566389476013861537189969339785438718030801288449089602380123532701241394368908370058023495396735366634639045161273416764356275963232191044856452493067416916528974381074313279759713559611569313415204995110928191788924368897430879736342211923427985631645007753109607521758446836404998418967770576901503234360330729300631505029108111847398583247121056670032395206607189501634738054101095656118211099899274542418955381364955260478314551496260919594858143698238311305692578337853272348024658424737790256549481702366576288457872309443221643891743176392957844319360817944523393448773272738564544476802599648712469614868494339241092134595481679028218584558134567621119885301073403296312356630525742205988920134929642768358755948972645352047910227593453851036934740963372963199957510888851692746587784587141222023620665575365351589564289740118359686454424229369732280229320937801604225086818766922949173433688494236867183391113942388680637487810469269248471839602767253546646778378249265564895894163260341709663437274228835968814389314759020761049170804252147436109647901517012523344741270211674950142439521683758307112286641789998066485878681674648987055561269662790879208847592383937166660199910314702415730905305593698562573330100933590969365062869129316385645192631323726595807557252189143167962788143790518806038088344569207518827658188327255189397161516072155246584379707642088601460719218519108186828264710742591670603552711336499330972183898655992302667734541084790039345075745863221723347791553163501485319747083737038869918695838342105736106019502033119906752692624085820159773806038532716193789805073550695845340703088822158976720727307695172118227726105779038864486943262711130466623962139731463004722509255310687700101487447532505595872565148287872253699504079644992311114422289758018697478682414901495792351941752497170032278434257733277032887330228865129746122542214641276371210584006139042131033457580086496111346040788341764672796934745920745192036345675835622903120548174061863040911470589551278980607854296773616191821645986211632257610763099928847546925290949748745884093794528038874348932151735910396938410944074285645157836994824921672970073000761316718461349760567673223202200939484360838233776361874648898164535906386004675541211069258851325224956307792036248122643289019050511514088260655534781156188783572647667419809730024260534633284689432259532410213350822496212701222585847142606176734205768611171444420870548747609961594412266661402473515260131437414730584580554257434905263068757965481470541936812790222968542177931080976078925658192755294725088570013507859954908901672276845420944068528604424819506212194810100652303425533015574990576772567946795232609746620709911433238080368717368071530192295043948574430065277122247420940320277730665343947998782223430162157922191149251306693030888806739930426652142535258166117501396018718184606086705410325350927447393618217262333271164359577841280674342142241114258423205873189919385534440245224209677214813097923258542045976137965930193697576309923392484837064686394754998529761451372551885800515871102107867509082328711723446257380276347332895027508038484176799667462901420981102642835175445233987121206440662794459330678673747069429353802289365217082486073159040971351199084554593344730709850788895742149938915690063860243872382396435507692307980913234871210430782834688994542214997224325135808853773210812118690914341279952254321595391856935445900651142946899496789197257469677895204161883493526264766265936417640534899945481823283438899507114311849458427492217130295442762704098277172567516306118958843033998442964048456523015921108794980845536914573859773260189990873996048222726169745811880148567177550716038997045554134450469206851333683757493386051948174672308375754212641257074188323559600138939260660481904843956071061398256120411201301977013470558500749414104897308912577360913781057360116961334227370625013869894448705717764492060694990468377145602170175719832059518101742726930369276118600563867546647873135181591424259522328743429257568615924469975635906797218161649560371327111745721944014460726880357159379442276044603062357314124147020585236060365162231801027322434013554475583450360717155165019924185736929084983543386497804708166079396585245326084137124882454993664452633764618389555470155354204949097250943770072524212890943982997905340362038523263428030062677341290367584310315789226689139039284677697908261050284298353458784730003327654399797214159197025220037609259656023991883083787334453048444449339174365664164244523746238912125044512806357858328824996090220362101718620198073624795399632103336557500061882009853405293998559868343696982236837323924402456252484920074478669043222100501151155023808477515871658602685473037474810042073758131829209169349248881472645812357167530039785215542938429505473074445013941193613215053945644201254815670820639236660463909626476489393338197161388045470795487084363649033958206819377572104641473802028872197755675721801872076062203588093002001852299060179862151439941372603252228443510585446536250191949292114302269096907165559767054601065625682293326109495480528808377217916804892643642166495437751148307511239922415024396437928151484225459325567983092583014402725644561106164835133674043716320496806408621383564656042387667413830743938899223318154421305171143539007823448069261535385332496554005587715871524138384679320279933344506566561004029723061847120322769406430264816468751959840091206328066438696405588287929097616299299678172547980170778203654896711769279313913028736552571734095922972256626089466065772356340502439302466181430777342412463420714101152120042395611259488723266919062227174967660611157469790651146022615095885488273227015478741333318744602606818204785102512726769698284033876698516881781508185856724060872181695652821526848545854216301260897356772667642019695442537814333672004330445251350608924491049398085029318441491341127045646835865863157779104440024108277758525790789831699549142078468694738727903052606958639528213581137714066149042005626991332422673149631959643987022340725176606086587838422659411531395835611129631296596456518329385333437050000833494526943651390180781092720983911907389343502885588535997467211973924253376825340940388649555306087608514503231686103690402656353185250249992872489268915651384377154816591379465382941023923348070912634269200846121370609092191355539152823691431126907563686677628469541213547042889646803923256981568848122647454593036432471796039328932157426709882680905245139641912727675282876025958270609519757771125181999428591510168649031418346899112341311246971777385178262906771206549310838271739977703459540733712214650760506899057878295716805827747296588132518666454900910420960892572228054000475065275348251971036306550954647809974454725705677902459751701728625998926751042336611049909222749032358672307641755213847858388985383017491401054328635173388973545738915801371518481690084195907439907808097317144347051658760892954739653452870309355595100258559349279705989563586715439817402743777725450061976364643736110136684961832691545457424799761551472421667224217194381146489338174534750751409342057723223347579065539347889947502519916572650008583227080839743282308705790212166193316244717592320818357080889710538118651260398088542367061720482742053275337413870023669489511609284190627899961969560103299990580665039758390003916101724446711664943729575853909515832355659100264578276852144477111882434956100587069168503517730838138128577219229915258797083083966012087459894450263795386679624562865710275338746356659855029155081842222912384903147931886656783572389741029336468082203158034636210377600502048743283003654796363700584587456136337407179238922453082865042779849915603539318265454749709993685680879040379967424995426891615062602253888567144291823886112482470810382418571576743891525740942261777208358784195738673283426846654440260442824938084096139546571269463084046662981495605413159161387245818286819749089462744060893090244664692625582497288551798635548520637585852626196081731479954818771380044561269910602792152883609693304107245433345725199140497490654798221563918064737857570741613564814711866295578833244430984184724949142718679605676522959900503799554307954167395770279477301627666265836667633554269508737905728387559993623234854850519400599545860550518349401872661184602789706062710321370809655628520989736095426635953315167450176943370919397420204164237992842654362518371520762107628479522266694314836184878203914499488261883448371821444025269489204706204273530284396307436288588354937871007836342500889634862954453988238820395009847989010832791387652280538780155613843746795996142859945425408598061206472808009300437570203583475022137840444881669833770786859746136732169493704584894811100068256086588013631671544364516761040841087031543051296404233848893726823056878091974844860308177585035697157808649738489424277196964151341414704009515445441447070457099294902142184723246669571066781842525944230719173480188833402629787024504543059670642020055101617792510379746069848800756571440859362079677352049743834114927730691696350907052880260964174592342734441828860564799274987981308962448783503624067766930123939785049896931771417846494505650074800069700677753365474264181827259625775075748408700408532616119392840741334054184204026566108544910941155282416655150123318902567975010934247989555378503819612250058320855880846592237962342570346688234693848806689689302380987581791488884682542917995548382055758031640560053914740894823041177709772185878868066170240843816524838769016583352874803545884520506772817376164106415908569612996104177202697373284085387282900311571350223866056398775432565662460290356275824706584474165937251161732357003075338369120087919621483834121654178512488065881282937065483758907329431226974177498643503822335946456148198583000484614118415327758516247946205516292718636825705144526834366694006772423201127442522302164944548259728582443496263466752766791726267697196807383712416810211645623667273581088845848682466836162397573586347029210865138734774858918162977451728064694785612336350358651959821193860186424534828899189506346732996284356338215007130166373205436684314624428571615290394902697859386067356628397541246028064943020991186163835163542187009962496580089741463298340312454198981035064907985841902002882943073569792693031142514442665332695826878108271327133491164717571324227571856885077294434267589905678104327488037355696433649970063526580195137833967684012182795994057797724592688622946313497401062654033469860266387313277678006689742547467763066069339092488510775654407859890443329275950055937706131939245904330936424214854571046970254134976571683075503015885913546464732101040706573948049823357986695732643926490246115577135527815607113277517409914187478872060163867083302482978083890974867275900091145927732735443952399426103388404850933141631079300287990015003558848380093843563371251473655082683282886799519952293237870792479225210025792632029925439709291261019312942463304175527355415592793019329772798945752463723447060260374426543451402454591368870778428852008179830935467571649969433040126944294498554941040733270792172105479759440311560216792908072741644662270953979848659093703551084946843025607424415050850894285844967533873728662745792916155633591669184316858394897388317506936457611213140637580901336620412052011741711486250432536739768934850361016307559640103710441081243528839090859408234793314673363756188843566379501584309872713830246220270062995556829064518493421868212536189277846941435227553375628881700058293447240875650570397716952793632955960103596086406327123863459780959961763615528820119965665880418233924432623655747563125562086773764416802102694479597337245351226736730360051936156398344202959056025910302386883187730889801581755713230821203770822719633325874797319246559196841381687943280884217219700210192808814238705745303732771699186344175711512258900419605963400689130732843198661378501005323282223916270218889521085819817179617719733975849080048723943718535623056378811842416503679209495565296379473771766057511719129320866006048995689993474754344163592362149086345444630220042571134925453915153192465439044675216339189937665062112378176336574912382261975182231801356932997462563077922013256652000638976524195747822117202246586528770923959300178971342253303717218738891179185706285246756403285973541337284499360411057848802346745235102930679965359684535739579853857668717449142388889761344886005815361185428144132237687251972914618238291198636097949417117868680413468854058738825127716582324775945599081637241759556230755267302651713748316087731350101961281476808875410646217085334265369361922153019558390123378190992083844949027577088922723777108014723118951166402214568495467376360090839616737665960673724695032057142072466416754208878590040225221120980253884208983959579662830025592266698782074628822639519271016291682808018716307656677566018113209663321173785764421003027288445336865449419426801406554427323683803046572816637321059088936222274632800595443116295547360323263000529691250198665413443712252399535457332967847558564921632247386863122909233090388293485254768857374833062326576467502353236484667357143855717657405003381990720708774864748551176011757659427180744588118545055509319016113016392192764132352859891138839022138317633068979504091832186201431386247137505115963198823228547883869602489032067281423007324953713276298081412305642489622042100680565376588661182396001416522472410551580725458062238017841457974940715036224935828759234944177293706888427232330592409235710866253783846376738605959299472733099512394688353101739335436227485116119230263376452995860301577776482899768851661703743784296557772378382094512080135451952686725396993359941266813430420545423573789078497961455389141190616015941794010104613120516453915809358618209347932749593838998759688713010858876278255196844854078766753451230914369011221953683437108172743896704151268922575122174622642065672000309660274571285772538808094303814984792138858030508747262601384419571741229805587272996406632445235855974391984985314267747138320318797947412207886035603802166074849418557004662380969516826075356679614365639502591152370000236809955589307922037511830029294432686420102563262548254245768210080485857692539795292328233727211923035812890824948996252152666978359098823806752086096456933675752208979201362349760418886908857287459531207687146512606421150627806435901674393396261777844711088467355370748356920970064224513590548525250679320340439487516601200143332334232586075060561516787217465557190618532008746086977925695042518611979480772970332372622529043500013900706530776179829022520429082465794056143118142806650599411710381941030463019175303613240258079563320244611463022680617938164458407016427949507271785882197380861999358499571449374385603445636056182468701248730123130536815730815025230231284108642606795786186659777391720394058967549337475287514950170354856015897194585783696549151852995635611808463270966164298363438228457739987822151631626466520257163145078779083831925547220343538585181000115916794536067879416859065356130826897101600410579749789631940872983435771768299155185571550510954414078476425743817176893643220629201749855552837101275952813836033165862970895491498106240442232790622256572655174403085844214549205335771207401663114533092804613159503669714183423316604198302320824197800974206953494783027986012755881016274672747527698209775921340983742628731794706789870146324990530733153701182450762699072985119147893138141825927624103092029313438089517426322038302627873961069093927120237062461706264621326634503430936291200940287463586357994512804194229917624005126947952398570167516169506078228161957566213685230578990847591180494875726980167861089581639428428291656746975599689312680699423009227484543312774476447425396182307121549009866745381372746222885801436115751638403192021287379541671015539494800092081279757999674356338294983628696694325842325717668714689389027706156814520527336415516687630172438252167785034945085994904463357689539472548808795878850714556364743216085992225518354251065359983422083305735332118119692205506789170883839659253326609311926887325253326894895658469255218241688443307661332096573690510687698778180705994841953983756500175037582874939925929687270008702764966107540494453715332991723708594258786761138828946648380619876943409849535289578004050266821800743649504905414432559493659711805515778671091540059636504990543177297628161488949107500898461783158856725349791004670603919179126008010877619935951269816570621232553579697286978037001449837766490643754334159933263963046861730311877285702244829162534328775086322318766383249161547575253222664683347446049743386247203024432180616593901560743690949789254245626561976553117179988264614158702999044022951971409809448907948906152820610359401649300838131443032277837161140483359210267432297055206333404160931294059576501129017391077232108185297485104422199945724224013974508669241202890456449820362124499028427745103815237043699457408855222236866254496192933718390043946096894913811292335822661781305929129573615414330067979271565540630507682634887498051500420497484369426252596049479361284175522345514121889240988887796240970768901561943498218202020655965242288996772786369033625610880752460344657672443396522519289974334610013921313796556510522329185386022782331289085666902203284554769746516052047213310005738880430322873684613141832977133268082094878822021474256232647552984489973707691597666407139494119079517996873930427316255755202189883658989359712818870694992474573252632621506865417198646267641628725277680993963403382195851322740830812092104706542948610861096918537070972373958281085839246147660515318107178065776023717870451929009685064250819943239471824005786323387533278740063138200637244702752488095946977209361586745306135947558649812338388547156063528634819651296117209241274998902791744579950326721665962533362356031724604414412688502980620721650084435880424390062219777168519283759784096947578643062674142720736990478820563107066516481128885362696276172605797767729212000386929689848871393131147557651864282163520970388400795929750000839957509484342718029019180251840201992449709901200018873144283683207363419431626537553875039066932471275509007134514475986745082904573119709304567980510624956177371534044656015624648601538497450106349664816497227255637171636431450139830849116993501477107786364025952974484643879288933321776250971971277788456768200799075346200071277171291912283427903803545123446269110676104927818781905603382875852673652342811336290869997582928393329369911346351586929077304765688720168036340275875708103535065418644179147540203880019305773247281265268830765763036512011499485262784640463794677054606471816453121508644656773008888129375497046861930407840644305595713613694378113482330238477182013895114924534592221952077285932756543336052250121931830082244865996293741493112181689456490629121379769910075446098854143718672245084575046311107163935179825425082459630996555027648760361878424804743044583433897959495251225720717005415138282638489834498750522188441547396725877331595614325828883859305409700279625252143687375260061959196248516739391103215990822058751698052612158792127817739775861772671125449302980831165837289172252471133412639266128003854511967433006493117330927929175602516943553762364383993282913036227626166100440187275134616632491221428115886499668477511394713732130621155387821842625692306152389042101478768112053469690640197202271804056299631473742606582780541644505061941095562816608042568680046696480066132936468725224320735938781401960375053946381995579373314571481741047606895628565085544793579805429759947149031430838312711698566156762544680428423990714136150759423587211222113550270567817878453131022136800210573565061967290989371265977257738581140881917478714825337687406206805267289346916741663905905401619869309178405394379722127840652125787154752917038652521820520592527832353426081463977226945703298713428914510301866434460405400140116688837683165734859640589042784371314696305206549872781187250679666053358988414236079335112009274292330246905848936759652362366406891574501363980736174898728248950593589214167379391230468045886503380947193757426485646888720097214998483434577611228422440733773628592815864744835263244346687443286143122943943120139637072832463336141942388931469443866348967156083961714213989273958564955375513431848492138988043678348675418764177908887604937183177689680508977963941229131570927079018395944254218579408037508023554105966479960303330187741701708945118796473404436643630722166927057340155620090771572546749144035478681409905317361403957532669902373236689953740253514438209011103587566689305134718167638287495495195931861980157814541409510698348595310674458491466384377198749466519866067597841090778038027721239660254792379992549831881233118458385787467742184073667434655736335691751500771564739874362765200710415444287424416402398781362786867220165475628819228484076027723650360274035459945963037649255632133698066429495217879679915179781282437749053944254977282376519454967542372777123516586386948380504726586446520016602693591132332315017861565900832991679868533927842848215746413166450117797553482557959081418909443920343699187301065674605866322944716739333457289403411420430911061883417047726074299186064801047057217037405369689496710775635542492315765976985538981529289589833643582449401939147157429429818993151905965628709214095006336578705171927871316492270036109877916376722001705204786854307675963482343220568474068394017143350796462199122822119380910050593105691709212545397611399045466942913465988351611754532018187221859687825665918223104213595246507917445644185927656441555696391021293480409246391160923013954104129863957182047757529473758511474636242249442011326458399279560598303108528087132851747840438211647065839940810567686689081390515593182463147370041176519015967611632678309658410580956452889542885536450488612561037639977047363655689670633768690135220902513170157230813633623865417118998229796824841221127306494048702705386297752895998994572348535050974622996062755689069540212824081138649841542913353290608851455831254192894452692014740585803431333932310567796678043808554762878749939603550284647408387303907307815428601128508135537589758309585105052764060472627995124064887634415642246885369967318731367888599628512234611497229138566677768652457485266038626081790646368050325451643813256268654174897593769406035689595407084369118586085136673415510028562084467083967213018712233871415448418326901711372126662245895306378277190167207643691128255476276475460866706310940476785413306135216630361846665238659099443033344670380970060410001680362228746149967071865096437028397063886984850147740706465683805591171227368314981599867123664666544643274752064474536608266825224194736946990925112544574699253676873266507854454563134959706201404248218955152584351464952894489020911254746065813215719697384428328736769781740724633910009186471213625835918157878663624420088524592454477401593692425716196196705354994150144417162027016524164860037976387085043818572973922960920851155170382608660533583420820926617223647540655206849904945211564321989169658914054474602756718675451954121046210199472352403887359624574256625931505585561557979116265258491645536127588336986626877204578541468732455463252965670594992841693828260962633439103827164644178143221507025431206042267646061127052141000844055008158614545340073990566508928446137716400656680400757943930812956405240326529054598090499274630954476170039072192738311574634057618268218386052445683261536136976774519124091730241312038691071864612825537339487216180988247122834891621961723234276797418330485440917984067417799977987377154613718242758475576870698829706066202391701044658619615280322578955710339473549091025820311171987104920765448546870783033712092514386853659540257739509027797691027299246270598622806291788121465213775443946829933206353793230345492623879133396967011648319531406520760209362967501155904642897985106633675246384819694132615584628013142055608340661989777150228757534993422202415700989672212915598326870336105301809033616548146779952724807666622882114839599321909638998279398030256745244445896252111390476526791288739083974463622758905767795083290506999066033531126639889674394796348142332918169087397552387244098741004658947685939782100853910978784464751756169436719719760422460848369437340989683406819646751095421573241526627327064479398919724103661086014370763543853339487191410436884704302797223069286887382040789848842063389328199724679583081103332152877645166734505557423144207416018830425990997201889536213541409245517783749067809722970714158478891600931638167400294673312859693395625272449991231366611215964398197271834374463681209217532395355531819739573873814074321699324847902468788275974067118940218941237480277962764524261590196909529269974209600682349287604228045833698449017870871370103774832567553447038012041920449371287764855037502472464597595738938631208672777940107520447246616161060636673105834552606205115637815052343163818297020766285019637905003614913726257175278200359566567985509127237160083436620011275453570261808146506578215973739762066809125894344645992034775813969908051756916950141229994246095475472835502679490633015894043400312794391187280534848863554691453722552404031982596115377318302449020003455791436588826611518341384919426960835204524833015453735464292089847880827657368512883135413173024304031035893088243696139735147753287126070142546026935629671167310109681877932741088145947113934399228391691669377002913587978492594532192049335775239153943627316594625039101249254306134209314307183825092826039773802775797271502657094436448834221601418604350557686396416831013830233171609179154544873429472743551459191555829371443384146784099397890805753867669102483664851031181211686240156327237322621644357773247601251579999392676975563035483727112149926065539021268056541097372495836626287390382250672033995573092949035337111085137045727250140044299956716066044307146895897053788146588412810529468967546550072950027894010227041582474644513033168400196456706480635777191572046209935032872728495851014705333719533917241623997148551044122581236059986399480072016971266330918688201155980927168928302002371620262510248629741264292012368564148267103739762875301917943681105719087792778111643318396464310211378282729737207064193982348577562606587332241977704461324786680457682829051592245258482376502142365801217175144162450233695496992937109476345870234968815186867622336803682637755127443455656437715518508628248075977092558484823742404597349039516927824253299453822481249450027248681589634915147534493147425343295481024195244071322568458674098838689377283560920438572281610449136657868152573050172965737280251743093521128773610636506280677593886025790433465710607389977588735920173361546486627559334679283578999907691371775805226467912424454930115688718591657153673256245893147223029210081393432217699580651923038320861737983303893167506576510291744963245491665436875048055861857580870314627501763074151821494358953389717466981507619277344395844098016134319794802176412117403151596572127781240409683938811366458900211756738566369051246277687396939636267420881215150255568547622766277981909038481829625837732953635541132372787842173527766585595815689065409985264240632530262191982247552650873453437688727893301252443593293318560741785541215238535151845305156151581221368437522913285403081582630047945495617748819645723293090422127678711071558295967075813542419890152800562950793828466810337391402831185755742086376726724189638166681888783079461454213042439088117228126689177591749380036971730298682551811770279483735612732937312059547989694928092560536936172668834887158095065967154545108416249214774716417962029200795222098526298722865654027994821642923381595485650065828952292406373380572744773438979742186365261852847990326892616151582206066264589605823786385545175068104903535148216856224528151961494019553775967880702911643995934834488344618032348467167917619802916688226431497960091020032993834145657944032254834565537576371653421781203365778944900750662881601090433619047464416031786921267056929689280439130155058807045328245549594366113897900404877020099515086980600428317071096024901336542110870291631776057620706989920279436605382452165983288645549666239528989457223195868338455705769615904495096478771272007732592477265285450078939073604185316650696802724548690172485905790062365436634000502383986980289198455582466040160445841581452641438391565388911667567342065399616301531417340245619146167734022138742200746830896214927165483601088232311301281111483157683386999701693189111619554579582040909960820322193582569279692957814019163967969488787366094879960607762457253386173896895052874983586418635771674710876888855819648218977082089306756509729257856923769808002649043110298275569784162546117144308753094453485533897819515380077330069586768229841639124850926972311690471583287295374871813330707793328857547277255749078519044367341398000709300959974069756283877196672896110118035963853819434070385518386806407107229114523247725848522902124810692540258780880961494858921274978851072968168896961755940868226993060543764985428134585611275068757773917567398261490809736544191070615275903740265567597577780689734550419146462155284896161949091912175259279367903782439353160767554371779495780647793801492751720256595515300711925056902549268490474931072539024358144400399420348218398962475523719504715496792699946587217337960817394117027400274060799957118431015469904850764615687656574159574248432839954626058157289256033257939942569071346330338858133411831286628405373366560483259101672637892227015686876210183107555345847585538730305740845664743650871224054390618866683915362504359574451332347394147354355859846769480797304710660434778925735140002495189653374953582571246660033897687903045628984443354664459757291778747257954401094752083963477849888650518096698320020036677408915050974855556682170208174468528447228569853915345579759194179791815840129409956434298264402033396120513229063657950182063565111663947655251649543842648882717757426639434226085913019086911999033737196540616873706534270736863921700798885783627070406916671388863208211957574705753606289677531937512197579742111653968752288978827776640833249751795560117104650206303918980286193053045649361283529771186087142827042149436044232943753471017799421436486588623819793108321702121751476091448214062691190972571314411329445591216930987349016677379561240947221803839861944469973617120966019478021337565185796347497190626486495494251180049715239346213149687554838320080433450606980130788797977930912777454625484672513614010095760088620357685525491938069742117048675900834532458542224736010450240013602730253747447935023692937253929329801010210153808401509195555332703256953901026977130065422772692416284239306129483353701841172433854039917805771818972036844071730675969974461090596042244537707399598329009743355948073837382217282700106931379178891022587540374016329428204356723577888433803526297983646526284317558075357256075079547472113831648390105540362773541636664714323569798517710481910332878194257757289222641858854330753089410881227050879412231400645456365615928233007593849020794516805304516743835983790389043117763969069753727633407909431050276916872420567121546905656156756207253355339469076989030188777553020057911269592064243676270926135208176816156272758962357431435738512189861508446134128018960969658593568227013389887809242359554008826306596131419602465260714113269759020322959332138892147535230945644779798991957329549565101976169448829596900091686479646252236578394173933890212055183055333495880291389130499746200191245904811278414060875823202445241485066353617593558490942535809603039081759356601460598825723428876520620008415358395434052848092036622621690695499829735361842075682059708412082704421884792940940882328648552762526206332072842610371190748921460404202933378083988868849833070777462398323647657380656390070211507212642632518655118617540291638475895239940437439468240886145822023256872445093558645332041949160579283148853711411506298805502734217978848970388344731519367852173907837988199216835720131945324507809315962664798680872492615014248252547691737645175522007389927386411742912609584595538142822718011461951789094028945256444763859083576305218776935767003966332369493602304230379374494570380704884930517444197112894429219154494415126472255332329848657321117647809170515657654869151757433161452311677801103463914003637695982385618746415652710668612570460997908990022021239490148077201299046038603963993018718515002050671303759269762003544772200415669362591996144692433668342284593440351367956367499931027192593171736509572471053405519520668584914116849553388483309375505454047323916658296465348942412024335326992856024688014851119159843109417051781464949295307409811089757770710954582432313581926515839806405561704436846358981024608612640380628374647536626529098173527908353862454652611468652080632328941315412425786939955803000386137526570310312661722361598544484031112515127420544934500917709040711406283954227155623566486037305432667616255537291315887200062104298493877987824833715527801721630657436541912922310003060427673766782327972923939971492707206851014655472618366134399499966592996295679462781960266730787355264582765262116936343442731690101114760678962473012536639055426485220002123016819525770482424144787455537683892280092428615978229958459847377098691249762549639714795159035280400699556499959981080066042322636672789398171965601402858551151849676219372964867658688923283163513878312515974991187987038729705189225114906622652652571089128764562881468067977748522705879317528222585347749005717074514225563327858144927092551570819881508690124594197842441028983462023737135393439351455994976954595348524551034011968373764214345845945729923918845548291562243082803201691309004462304890171955971328028830384226507147514084526179498539244826601587535923263916084665104150501381494552663335997283787593652615610049737675239139941708256757152155698684578402974240840279417925427250349189216349785881660151788764125354612139447132961434138768113745244556251464950817375133756660842409497442414999874584160414270385536426652185554354684647665862451724220455208519658759523287382161029767388013673813885527893948295048829382695180897675974905920139441378214198943700850914108094371467894208378209949408542647840852783213165221025419551898592729971192465310219503982355010474919396955200860827608072210665983340105316070870766291424628025644056610187437175173540917362393180453439061919829899117831341622771745034591225491338917246503781870917126380645115805747292799341434996640695134361610191703748368957478372580334829965781799084543721300826284014897890045981847574511302418294930905177273741569262378435810588577811103356370047226384620732687978163345529619749210822981839065607304798505091913388455387417752022474225212463478746357191123537498744344226698916937142803344669606527394735968679606931481002625011583622150185679744423209327362957606556942740519962019670778309336622341878827806996294168777819307555462480884985740812291704182689532596054223597599928492334261471842928151753092730029788919689991695766493799735388628537951225878999369768565600252410754979557818776770478488872290531650196767993032386912056033967281312912789891903369748676019507085698577953574080155805880183707243677650875850992959014384108549307309167041308829787340987922105330853819857843984794686287498085451129388373867607134465761825782032862633653270548837847406736759624956118995417268952480352035022565513220819030302096684048081067355646267445595455488847587005488347353962003945935967761003149841604611560228064683287530447448703959909621851881556326529588554271008868916474038594555426599916166352807530158199730799857841352382784146780327084215009797272050842857832522269269798199675853683815687138895697057900764072350157522468115311505258856612369677147292244690249495365845471028860714230980212983359065626384676867946555365180458393783564393211489535035221841605263765240139473110956082764895803208658571151990225254236570876154014454895602670702533666284554276746462880621041496410742188833537929908461555649769618199319014370894103626923309014035671006807484460902776274640049358228571559652353889072498620843555316923677859798940745553316581307572262939447108199194046542828972681070070240121514827728363310270592338957885944520684827101513139825711871301139902876818800823044545331407687211186078111660518063384480488915523634256375903342217857782494396238595864401131030926939468155454082735541337793361737082136954895511035302446610275421648196724608154006486811897136849205779862377823118835562032497382774734357950439943188695945319120782936454640064084987111154036351372561537961413026854063646247115477622589526974779774023498652069102486389542130843383483872110601079810632127472769835470765186886572219057471786115259810321661569370901754782205580040830942165578809137711767484430750127987954999083427177977470700871958126590331660715912766749440528753636539980380894740055020721245237101280862084824328078218821484048086116009793549831155602671210720374497104163423374999223200053498446122727123165656872597738026528516593739961493017093098440821178490347812100377506714441189322094552771662819201255487693883905379767989365426014433691804672405393678351399048338160811665750815632822269109263979515088498498233888201523938446375318775706915354965254206371584321173893930271982172716197445427002585742316472213576038368661754358911311260725420341327042346149203441376509362262041217266341986978463228533405896948489801169899808029655674629303368944037557955079182470788427540927772768687164200807200769150370608728928049645354413315089417267194390717339350104133650590503874133680905986828782280434906223221223818811591260699463891820574769427287581450958707237415837984283237315992877299871736819779897749437188671688343229496985418090234645324567035792599437510954028600578796292972181377483030368615733826237019413571783933534060123579119804325241910176218782450651887007707172302793360168820700384793751666649146768368093872912587372170438558739069588760490625397635926618447165668417843122065782327043759389302154567671598095590796033925616243070069433000422572823027664879700804498108220229542079812921579355914563884349260869101661666682174281124132299047506162464058377069489844006404412990918389064646232147502026364278258911675414832160184066273617224217036733702717529420522686248326664415589895149200153945906323719338564518871303439623694619685411728312041969856116180139763836929916266925799887770075506319235101120019129476323218423081767231423469281416324474923538915320718477594440538831411940970833943898312285778629003226003305235547237804238140601993026103477691682932914632937551765411758901143273298188219157521378093669706908770486904158359276419689198072611253477407413135196952899723478190527127129689460034897860373767771780650103062482274736139719511744176714058969295222847476805796292441404426469985382153029306153102557523978788836640480962258809935096827993826806243628611903215738641980505083965089494494705433673742122564549232658661852820095979468017100930636351408899796328639067586079363795111704945512272366070328482933544003559930703471516733566982090042360274826413993871388936790388700026313070470138033245209544306070222429533350642233678824676397399418846167074572239672530139154359724802748487677975255156109187270276982370025866776775943867902699983098564786583143462923616703213456294723536624848215855657483728043093854942903454155346550712503351435288922348611950462014300997018695087339101572407659717771091098582688996860710407514937117295175541565252576963490312151813062208643436190387166192812143838558533172601511808382420610118161256546332878755972289885644158876989275656062915469728522955500628225973618500651888593366969340124666628272087612432342167366477538555225165645253614713109252652954779241022438751347855264256817908133549670764996632789398215059430234765386502681054973564704879529157572580212007441354890074300617281556127988941364754395735983970786172051461819914013748042966674313474640878248649137429051489645884045127920355284208237823604518609677910880824198637092741359378729931528670022826855178566366607425796894136705375044399962137602421786748864468459218293676206402466497414123880466730880184589774702675687128938148778348432285613927605693589655565138890849933581789949157406996627635581197192398667091080985677307660703942460851690275185951999401717864754230773571174012619750035091034083221010149244044879907853306236236532135900948288449643130364771602355790261031294396306517550032964550310926403157497401468211807072169110587328952335540728783663112812907600174891021068359414012799024977025132283917084906539425240903742792567028229981945323002604845930009073097017571476926082244782778516751252218681850508471546311925325930452755336165419534510063912327607380900472613519587245914594687087055749162452545319507229852262388876901903905571518595559700499026491471889649171677630730106038207529215353813032126543114887428363948433102807910805928403033090072061523675255777372617363645069361614905443104552828299163263145495494746976435214615426752710056555827354495886839613414948228184069395164662189210624220234241320187537745360135718753018942893188870674940266960048174716054631923205146108377313457105430664653041299857891212630172541398417269790435843494520648970394282098035333193102808469851407156670911272476437239795785934529311169958921610839567332054466685170267406080863394448834761957928167384399588817327939571227261806934417866744369603400096932148691476676261983315636209307722628088780602193361704026037341688002374954317493942425676097705463057864045371288208743421609637466919416109806109259732212165112332864209369675299024850055741148701055096724557706871495088627263811921319587141736649143773518351767680858817376608570141737650675656780287103409150176363900037293462396233270182390357206922601557106439294162315725710165230391988295588091923113879317589297376708392605031915110673955915264114851153579986724403243570869548104667229348923616444215899000939035083728645360361632427585366647283535763435653347204920735207999561326399211007821011321685297733604686124055117932243770580486360830101853496699816155007411750293500808202044008077789208199607256112778841616676572000227848850390144800605652155103811576461240351959677996729040492658710579857380007173804486638797083016260040985072323792090932788004597034548792088817314530109976308445367638882603649575498786804219241011299642128470410611285407716401129104573223868216844678348819423212774862608438684769557841004138891456638870147734577182121156825571551839705661461388371538077242908809128756189644523439766997280610446996377778635285635242709513246902184690022233945716895361230785752467480329880960302702385777273424014083393534251381029772938574217390317155369531352200044247713603492805457987555705549483100336541338422691114814270553062897189064582129855960769098193396430726543991966065670529672611320220127492137971307942416007486898576384564734101152584971843383550259404217251609963194327333788901426949027725551837545762716170864836611224656782985532482782040414717775765088359106944821773457360225159073170278007682860330129762526031272210255639596684769705650533504057961936911438832172903538108217614312278250679058989648932189940047091668822855834772346727689431281268053237282541445030989848957905734855609604699854011067273342565286712291243183529297733205334420203849134670176711786013877905980713473449177171853979651248949924371560547919380017473754692534160063031376370481208603952597438023002385177310152645737765884530228550165944544524457688944205245277919438797439502745102922723900314817174161693018594274782155762720434497535704021100827895203557771995281133365196577776606239532512467818855978707955255623511902098876037674018743227536585763607267456116093165393747064028680308629025022398962321551444600658277449646670482503181889546090779820550926323584624473633156789414769628749732810977395955799857219556169033212186498807699887515298131059451646865596728219765513765039602658499069657156262456852790706640499247666645407026865832480260430086430957195490388629333043472428215020613260285994905495805408370602755699411449719072204335084982955990899584000734373396060987293433554445078716355359027751808598903847164476721166450230616331064372913172302595093801682579437072326082819348872024024926598120657666306135930039275444348647916361643223025673262719197327623595837348356229883486303091680040192448192719204850680700040047669084071032535471681358027290460125580892724263198704354962052612679779367463062423073528034395312526574878534476816006069338315442100585041302053877130514271038596747199397083165735579061230675543065497795539355048375763131799642320548918101684508566414383378648820376314002195924962683164572860227272084077931380807917643096605336907379046413907165003313781078010351714499369765693820324685171418353653198696196384477052522109293637149369441860398893022883691694083702889511446915341502992080827992290121885749269596177540371506112812853896238443973585103420489999917693272602827590470296221430759327669650123022958304045563655473543423886466823592759431548339396615409260535764373346621445335064284613736080091023502347688798476601294952615219822211653201790732831613816059330107572241547052808743400522507731705147470502154418768747292445410045425234605938548309498496954910113750245230565973517497666086131133574622291880680915733324519867702200731199327111962054876085875549482007407302132827598988251951830006331820512097607977734212021099125880664451040345122079571344089200212900183554182875133254740402445615556206660519258508788959652520613749643864461855466811459998088487890915721200831523371270036738996115279304965812635624527808249846348093968910779713142705861522194506827380424451383935689581726709534736181056521539966666852330064760279400394367360698418330796408138362586761742260536747077388148857654204624057416641903823910580564231378300057866595164741223072860818120582377960497629362068590492764270574306306810067429805227853437521270562986459878551646155789850005009650076964895135674637378377522374305865340135706801692140763144386559221266581133691484557473177848464137286878435555068662579626252942424378665188876150878692984315002864408247485231422193842968127625459825039057324502267520312446064040115700942044543344540961841844441112728414268842667884339620265179733769140103815009562551008290051796510451350116338127456556001782744433097409650516644495875953706829831031663353220794302976613913446704522719883826776034132524833175603731624319457894455934555023382643991562341538106701801558636520601051676064673540744133776275078284448369056547631511834102632985866347695050130505476768745939195953936102589959831040579478182096997893586648806005593970977058857143016912610066751536962530512034815757858656959398013486843025714703947044124866667010872239024749135161448466843480515684594245279445724891375927886032792258964420310100858763394991939394117385667725480571407038566455315132331459982646809706096164424637930234007175537068760822080745495491758667400062129487015481498992495015678583626905903616705191616388654986725987902834239403372391113618933699788376682831926531855146009349217155371818715887188406441606627263053055172891701592961280831372435637205812893130684246040813643427052137173337174456244224780671605136843056247568068724086382255984814881847351595130473032055215662885579333676354375629222723354466609898128580764868178467591305225934487818551263162494768652334591024634664460514320218019900886549239021962635459309767791895851154632867195897700556564788875050784264480797714343180014598772791853968565744467928832559772223255968516762923944587661028618654323375530108132303545544538065469390628441203120413404387312255609492726774188324297321540079511812342277102401969831379809546874572634285136553797107198627394605481314703331732205842975842472949718550945838481913673242843550706721760567936416124700806683436648189504435566463296293411612907807572301425673089089686219703385619759844252846831060453794270674832055687636382435843943237689075089159108715448566785357933805567548361459977930983459174002537871192359077701736627622191323702404137848522882200524421728165046871115370372520207944935396250901745488425195345845789391786000224191267986947929259922297046250344189711555526435318468487031974408367824718038934927737388207444975323522762422422362642151408349616999194762303379138002732864951049388682561774418464158414529667128190932359931620581583815907899160896592844066795347884378711153111217204449760500340235406909047908930542386887996221671875738686472573888505543275676084587053137258256831859501018758828007840815193054716417799909834506578083431057389511383374990422465109041378496935263704806823921315631184823746144334389823857209823060229251007896994476686283764769966464066951438412060990149003185277785025096863110902102643917015512212340460001720969275920653743623873871443065110062053335598599852287071191093534075097817741171380897795399772513668006007313611637771264249839121102420864964275382210232843051689998912082487345652317205715998311393495185196783421819523165766216858974595006654316778192630627021283710312434725438734384233532320430577769930414754849470354424622434515661284146892861124690110686196918635860259574954985726012253402222358858677609245765972971675232851636784006256044032266403191512165676563338912164889519236196751258514407566684629689824374442461080149309511488029400174572198584319592179545091573588269079170588889006905714394705150896015214296093325121528036502415243418115729952529968581928230604032531463974253970681127750824504621730977033525666820402837141891597989121608966769137184780877910809645990940484391294036092481876569930417997646193627259362541318078001758072963846220257859062906034883837333729383909492356451255071619526781176289987556076090901181603670910787354299506819926701312831319451928320829940959726627646687565275668337808995015694366154595069471566854916624359661022245122162760001812604892957694876799889055099730086025900466381534396588366210304216865629605989772740836759577112797078704116934263513375872442381650721172026064850519026453761134124615083571289871057527365859978390977187048231110486269413762262184102317900256714494034503664831850174355181852533570182718667847535408030413058356443345287298950960379810864553796588900802122835468245212006174550257920777429068431480859072821336895710348550809828021864050502589159048727399841418512261831493901411944278612279401971019165907217262960713997487512714723822837863465159402943391839169593097542918875852289524286722949888580705022471149562439533188015380461247995178390799246836577482480100426522808487429585488091828883142881326313099214157203269300981495940640179382137423873004619482594437773898473648499188571204986723738617972455620273442783304726190171617031799031002094159701059221255395917431832512986382748845904461191290465138905796349560198587325936845682949132026011558325669338675204283500862466954082410785475246383343441745341406468580978781910768474609368583089894744857988811307896943032654874090817529713366321448206217683020383551086034863969799894817588416576692415807867205187529353737408082158608442025693240727334037206929527902523285026031761172398788132050172827044656965382731127054500938372818115544814768159996881764188540402258950679122969586071341010056192194008541845811460012691970542480108396988354271541358032492076277853693596252379529055889080969072578649434787285499080861661789116641537651274369991177360362489815963293224420422983569820423449329373996939123433570058690854947306851439910988188856483155876284242443734422961028183111170134543082560692228079326336099576682747271832191499897561734718304215170023830313840918409573144672947016540557425378846710526847262452339371478251040654697878639075463163786777054838287017410932268429713316838446617552291323879265550191651947257831729649755152028106256894399086959700999630395082689044998059316070858051613845875686887095592648455636142870927379143907856631558807659028235925691698506065725012420897547870310977313393397050214020461516125621056297243457455759919709728536228285491218272906886863767907959215344796639868397120494595154340539832385948698126924171238822876436871697144438514510256342573039488054525356872459080976255747747625561846458940884113205769580990251137617540648326145463539362790544483591159921711178329017427876375172445601536507908203414481526173070617735869942839077127760690413524328676906627814947801155131769031890816572944630614535991518162056457041377579002615773604590548626553536878384217981679690234813658380249168319922959031283116403841643492417529754691492235424288035454049511742180225601328818075464152904501005824045977711991302173068948312887947918336592512254357991654094336361072231720576026977447823609767519818923858206677639636922445622169540309620817385326233814499092737475177116878343625290308843843487769283523915890100542526538812301952854784561762526118695770941006631996268894059526844597931036718476239307422744292595263867505330647059844415142386397415922690607656234216306716354260904817081376340349001330634299174691706981337595557166133382431817435795876353970034953334568179519651717045887262508972183161573909042667885785857091085790449122357024861443895445682477073932182465811079610949465727448396281121898633576645430465977247645051050619579775982603460943367326328949912990202561563994597247294023817041358398918913219392381558930333560952827887785259098266226768913309501059994056892650455511490700882220153760237639855960420533412151157207002804264183918963030929967053051400444345659820817209165578952085428422039034209565475917957510544499386347264267952850266240464372577270973852392440502602876349534263382046512099344403013551300395301579405222858727767832171634926514027078678937538554991723200067367442220981380550488733207953190783301041192467368347486565384601188014849366612501206525655194424229079324990031986182485981842840656219876516445512007508707929666002771145458701331070960900196067346166459151469653956062766940814675869009163905101293113839432888326409233467724104500912799864668325068431260927238911165146931782402956805152745193463754320230689079630279733575155573269469171410587271330077643189917864940442102906036870336016616238745876032707084945050731714810525016772980981067126254043875317052567507015604064616838391185638191111459667742233076237447245973870543637788114301026880485395732323547835920321003491314346294258312813711025074939512016591013389106993978309100339166776145644126063627005196422176209972672094601321759204566462500414102648243635919312002266793999143640945603757589953380257410664453085358324115529273902274925032991480097594627475643783868672741754255236998640318000715642074835939499111304398828555383868340774223055282832789647890076818024893438684411655408537477488963517511163767127875820490900041733297721704163563729106859539251441409244026440854291964130706055592884278013813434292878594431932784969167219387189216905366374383524220019940954894023753972039840032496315781130893865909233645688200319153631200580390135428625718992594017561804383270809191710609760686148604835776295416487644562809038548261692795711292404231116272965127668805960631152406256159507613011753289796541026406100880477352976384319667311413784969759325452441490688645562526710213284421888166716876246922451573454592082636015523584272578883278282088706304771363950244006284993817213521261794951946280512439276024321937283315652757705566713814450757793092196967315345663928061501616764209203889341707167962698011249579559072824459413207335675797201290985754808115254990615254164311847491907796864924133144346719990512398617733700034706537851434219250987419108565468011114819827286353783421207205535266777374615328366915021940701518136014232090756863643536230151704005379488715550101862765239377827433760729313924089927007527203171333153213923401638998027641655570425207551230602388599184119256177843157672367103098806599220479367408230507037172350991181266848305343423284477044471654235490227908481975746188814044527807141327480864186081749031810440663483506697416241498136949249541749012893675865925767777602082859944813044188721835031177609643836241558006098645252097007883380747728885595905457897441646386300276135284209099163606145922405015898456275246159311900323644822267375636559524987245251012630729659222272204521964497901444057166912050957193364843585123672294785128039949039220090131289099861679944612233639686520748719778143046542553508213208056281560155013556371908671094031449211654844722127466084322942112512186499256039359786101192260747542966462902780226108238927327853600975556194422385846646459656551552619716022417148373589172676411721205156634028759036142757714650987109714931893540496880903909584071396515103153026939408137667471574320088920699705030266360618982277882805109945660117651932505053351403448796597715317672967693871058195878721694948598470305069846018294779062619642318442609622544683319373965332468096972005881259697211131585758830515216716332603427604827214581847401033068071327087001917357666488285090924306965724121480774660977215342703751327987500778918326159156036809492297340727430204476051717823763158342984348504296207044028078631690911819594821931244746810532522628043894918950312750078624712476570338055609696665508929859287123243773572625182076905527191436504688800331645990315563447322770974322712022221381012493251085665334575655977218124666197193340117722874204948027395315991085595319472489034550100102627445589031675511508742789352041041153272183464974159108105594411258223156985685482604461819382078612338377641035720600667580527508976814353575356223010211676373123931168225032324123389502645043477361791978468348063195573171023254041437445200345291749934488937329303607723897446560402080654159611556422691078575585813915137037770920068310362045924423671961197139190186549686413194015140944639080311052892115684721266578964741072102609553274233822057247589353195583126475750963864663403983387067567424387371359291976863865430103445313015063413314880266542238449239750243388525204755145129761088513257269547010222423196326284589497729514961425457896826912083710041089684729524829966170867757569093294785969718156597054020231339661709214404632221108100780180508342152139358513516636307222762927715164998534121872773139279142368219786905322509479870287566539786958643967905059469069889164907961864103112739877314680165198519086601927526247277969291930491582198906760448788832000731326156684887089839015631287370488464223725626112067162682968871033701621474347825895499557460409590276677105520032038675124923788311459039503677631496975684372014480765406373324835453542127145847728324347807550085874964459287644069539510188057002232376934770741895236370165166654709716625325942087750479506888829045120402900330661312382927969648289623323626443714156400068299230060186143773079275678445724894557348021668696610136859697687982279957392139995009988489055274673530142924446527473580034797045763503237830999970089428156885873200665715786312408341290913899366040139954159222616661284694518021281931131824682144862140980518241259861857968749145848090583798046259752825064886086373885889400168365192732828458041138141727386321860086598803813078045097166080465460361097139130682766788949518800529709421962689033876842565123798894665262824506062310274897085436541689847010694074790441806029361804481917030471291010081833028092224637372388441668027616774952180934414590956634436780576574906442203974681408362468967739842460002012968857691156014752611976679586541281229539579834388682029929974907653993852156407628330902475976638356221922139677772709176556634374703421067326007232606944809954538523267575467587655088457690916265139726164288531788675628916674241508012088305900769190863138008205065047908550304507330129073458008686565970980495602669206671022324806804706035369837033142336038403866208757593023011439729100410418464482985826172318052798878069613034659602934598548703873444255372639407241293286709676046131791861797308971099460119782624368315063914534405612189417939459039141970699406190237185990370148523639463727342703529367922742572399354281347785939688294873475382287283108859540146121633471618417323404489012228747725922721270700216001761351796595024744285739373832420693863539158383489759294650560142485155473955564887934384963234572355816080491573066587124502991657871983038017449956937293675328380998483551777620952047403808073891973205457698193386532476702433887309020149119066846754651781860197297115420180014153903779662726823547320067984365338022620883877386474840538436946193218692415970694708370967071140809654509405436164729393110490746348823997643998061485873363455630328330817807189394064003212658264877509401419330328287350229841103616806280486631703910973675450368906145547635759647138379180777703443316449643919530798375052124838868272171019915421478570407460175574556930532235898365877886758652534681703102601038047616450381899852186902207210609487898260198942606148693403861006289936914501688290909613490623179849380699296535797800237730279698691930437819740348407092812679763123335922095690738526808557501101143218212910410097286849208142037253251085729691314006613814797448844927927551431406312354356835932626734313778846071437213057620852840812588111935394098586605435233855376005189242052644369731665428619196161197538534425602045118237871537766069524780681211332096957347234862691242986145559895088039966431251516456615126216017540661658977161689846466517540604733952483171663345259834465194775659379312910011071193228285034069629154530087499812456373457876535030862695074992900909648217429116541845809747363513357938114348178734235270369247052613989713143691283365369185283623402450960515961049703724995031661690806053370141762596898369814907707061618362933910251616536468860733524336914574451693175850564274506874255117739725678620305636993384010594738869303802328683911505462463691306243827308671410600188030277128395483878168771711230596671747378649674997398647423378356706047848660506571511226780989842213559759607473431765641750699624543587570751904389855757810226154237956167656171795764842448317859390542643122662064612099729778862507573202145855313236897121400904640442876729628938273315787157840190275007785474427759390605349487710412053659246388189826629351538460752885387285648108004486678864235829073651089290050013393397103978128747649916266618236895758393974672728341584536109600250939904123798449105370820651085191903014754492011710044510694834232458624175996555999265711149251110068706710221032518771545860394501905090852051512922077176768428287817141026608255827587262717981097687403708606357214311505164873947327123193021890314412437797953589357292265104867206453201288005843608722921546688886361235415170124904700720915426675136348841645588158718142943683493660998222159094897162632887049144260674643971263311215188035422458249088288516419607368076839601380664273426984218386493471978153794144275438808745692999540981165248265514689866253312920782142468050549057057378099559392450858019183021980021041876973730767225127964816864615065430732813615449979208891903109771019268449551645250692570689341013320572807310021783208761903027373439746622658652847588785330396058822697283651133702899412858953825704136658042262942731403404443779025966830271526343708574660978821340765007766572799484884680204658088529751078706497581610369091839996367766091343208305946426391817257057680456681141593022250343749479764821852555134505333146499767050378457977633205861554141049086306119848197776232487286313018951636164145766485843999483275294426165961516960283577813115710647147268783059015893639101834982443606316107938669137772298526157764464548845708968284247773025984447541518692002196450831349111363861195302381696947739156758847044147483992346229370334922096724909575951419598325655238801025137136609760223456379700622542268337475669101620766050611573688094177018180624471022546587186041018466734770683005806878683166752210015630005458074054645984641497123587234475316331498419809397332034119987766223830848822559182714316212150989994897678631408204706766274841965545667955630229731035395386465427744637666876497904163522155912826538596629878770318033143385084230176077741971406138322743885718361428516773046163379483108257892310013265701397455118898619098217145146556579056725154475692602918738997444626150453474707919218362046135464893042595190775758572202428097765785846315763220849687901940755933047168306228742741687926598573405674318290865660471345544415079456620111157088774653473014796708696361173239967784562867553521315813518055979282555178753759408582829192312217161986340636037631379625559762991454369228865082898026338008698338213301569490134993127793878314460608661936280500273503786117148946550211157044121069030686205011161400791858111910097822192164180085113501904533538156916611504504883066157171640583160210785987920708180083202221483251851397919165771857897952206902369251880604055024428765221088824380046498933050636022015614024061539667105175811989902871434175244205428764557194325796945636136555671428624005298409958523298116642360534315284884918947706055779857928689666479689986607429913440690135944399810582099456096661291270557514564195949109397007481684196497632116060478201799285920348213077783578005455563514896083061243525751224521333834785726340760637457730070982605683580095846700262125596341134163150264559687506869903366607578997343317280578449575822736961590944542481641898326886564537938955892302206464255699100847629163820936419893296141071541967517235726853142165634524735383873971349746711008570117801326387970051421242651720261561072884864027940628971915422028896194064242020917871458142422147273797183899456360927229221929893602121136505604304763009720114772861924195858454748841111996469634778760834026126261266773770696908379496686611199678160791097139823322312307318639722921752925965669854753236651421951298420294233926856015887542836655083546576519253944336957669958313277485383061454986699964060233588723290581917064233432020946422327773905550569656844257112037997085667228255811774885432364567108850137963184030090378171267916784746032891476830774465287566466581988963803676363671832036510230838357035582080481901203394753766127537079817670965220149022771363776114662945490192371258934549062148240929808247973171981563106559050705102366074582460558668591440166152221098111236365778517885568449879256320204529626688610748635050382148583906041538397847274693175931330788137494195985082764748075713737896896955282498612240031453554146014884340638737339843435150966122398943535313496808978101117390027859111560859478437917238921984007908440724698891606593385530161608896802376792813038334434163114637339450503132741483635351771884173332440264182788352354696909696765323567610478651122321446740235727835890485442354599342516051358631975389280940894433198776508457679852358958668770194663256770769415560737210890073795518341869356543112967901041387552360210887524783936679459726229389234976367183910725186362326931212864192909928646265156957646627771811502123414223976666723268469302086564623968943502808642008347829443036425583886547327897013978936405666655969170290112412952049906750235748148119752081119228154461788077875723559721915791085276530689186192957934373990863377742369661662362503623664090049937180568408919172790211872326595756557143049252976070455083282933141643941835161324141305070261462753603906491489194566169455869603671143493085286814822288991770391529114437796540582408255491582641038080224236113234439464667554119319135294872700951484487151113206829470560918890648255070314213933651787575543380989589585680449721807026952359393401792562096715073337188238663943472664759875984774058808194680616666168519692418765484169314379461378349713505983310764788187438110629217029182956246707648230556737923785563518516401496574686452244431181216433983616200730848848566225357086185710112797585505341918819947930293868155996898456031527577884498481328788203919477744362120005963809177758980960702253560353505611789934159282947980287454328475870250339009550233704485209049059722375283930042250893852859378741800433427591942033832108652805948342183974807132577405628618167305517429188010132196791277864836248501221255094044940654443972420811846799517437074584244325814644118690733916797875503532926896091760917530845956145747812412092700276508623616216491559454587354776083573390065485825532057054243610619351232247057898017075320699826475469185127551787110956222020530165822986726789606185793868523110215596847287594792038005897301223785094351588489615454501225918882389505108417565448508559339255449592280785826179457693138998602976689887845504506077898733286325343840688177790242100847092636000584137775734181930608136572954600674969904349513689566584124217781868775241179816544323165947502502315289462565636793872912171792250662316671272539602690337377241887930723917291432143655221414772590721254426159850878240313870030688541407121942537718227059140851646953954278959458772126885327097450610738762507694685124986029072301174847746954225816506861619595903607639787461320100591282560236580130678933775917712171259385532259733863639406163404090005503889350710667573369001465644863381840253668694322132855024325674771422988797866661102885824877514577946200800054170764989771987829778638609737470008141303221288059683098020803738656030135623516506371126997222340355780304527930618635124077488043070683448020762963692307457563080487037641522329996569937146778518199787896875002114353902015355335042837846225300820494741471388345679978531785145335739722922014132252648077511660329631835480505071603578638828325899547475203225538724584312008061550844627047022549656724422506912238853113532825130255634928723533705800650827222552234543936047318185527503406110347528698196990329284114343884684657641275057256059554840907671579912358652285940986016383708184941746299691120582151035719443725163254193190078256570269472725628507943057523635721503650544964881311072438681564476926768699116574744462796088276026286791884847143465174713964883524500717522960608344685545355322956638356723550579048013037651565647144302268838346236503474794122261346081836843354351591379309532620695088885555184153618093641125717470625100255792041267533201807454535022589675993469460055496892208817434948718168608662911534692016457335049922371253204679035872681300477064085420571849727348686460969692960915649353118981671415259427790006738890191644150649757006211601553145426709359174448655824396003249019295087888886570403865570618391449033792776044087962170163246452988502175068199711247416411487839802917701566442288409295194122405120516117957616610463807959486751384456790935765596051695251442520011962018253349365443803018337859833463725109548529503918289480851467849535187553879950576265349892857823160810322670894246825936354172766850569067495263090295773635592454634192633507725967453664277434404962664971318667209461943170284662825121100388430035468433744896035821519011144016016162677646921340064008606919945039345497519270568352619598737605727020083136468433386393811025055444407044049316242509762428497968376704902376992576126973066046856949853860471272110317634070003336461026571278203070084999002780860070880898193282094032774089282298404391325686437900886073155328617282195947886647679292038660386568466416041971389621742176073855373642663782971743485882663926466879351671260551675606707585269026579125950003389208212120595598346094378999342832229776706505358495062929469591843176507108680824311752848143993305906663779028875513913466253879374453899913274127476709113071479447049681296475715857366393813429974119872151804378376479788118806810538448375969364935126673908701983959009641374110298786678414921168826886556340329209818836621426718792234987021561562197637117618747565794037123526894462562429363901389270013530557267149608133562965949246743810230376340666208530994185282719357763495825266631238600955185450243041274842668227345245999461243476289277656024303581702055480936474764097225241553921718350432061653464601915536434739667727111811103132562612588243486322076549156338179476364910102997177837923375514000810904301619588139886639356795298159399680035746334223410796904969481116961988711310240167272742633416150339677507182653759641677003105508359101232267719484063595374562191794874446940196245145050338242900334812805317827508150737744388282187935098269542510949841212157230153524361762015345612241598557905356327007162926843529536628360412155032098322063935426505929591764707169457981511883639246227155805181513769092751411634037127691053689623415681099541026965276019436838397603727174423279838463983241941586429763803629477035380217671233348012562543954677519815226162068424477399469266124172494066506743775214074532355036780053182353547214516232211261761265345751122030116032960614291174795984510050428585590989236941537996221845767332326698114736575803806175301273917730823887439856758064548454789373222328381504246009952348300742614122054069399796942883734034223248320620643827179826466308942905023559154265285533924628575708076264931297195331578503785151175500477864222958057021284040832323285473964201147009902474521426945798507679982830479986123898112818070384926066953698212116262696670419208396458301573385949636603514641652516109040259444768605279355494713814938561942251466097289117517299499301760042930572249720561487770042883560608268890113234495233456558874727234462187620205280871822939033775399715353012806849078486052788278737759080452261275124759047638907058677127220009304691400720576414441730782333417762554491977660606935911773591823805754512511064122611396100678192548277159472420902979364462742633425843681130592170744291184334312559245165595177682970089486473850357553167689266688813968783544143460294520528669382459902257692185267585176418958987889869711288072587484819760706955263253464026142787517879129597256086037076054481356671036031588812140403495466099215772594326751346402058593759184524796849156175427685475888405305151695819521101703538064397120506099709111618304004612139016431854547941159317797658629719729188161109914690031374013276790962460530513447256168775255747138574900647899774146138105873905556578533226442590589784831790041979822207811919127352951600907108647585152303240340644220160798201432319190959588898780065261183699234100468715171699652631312733500001515366420410822965905197438212817041883547180758470146512330057478135813533675670362166818102795816637295591879142624775552337803836684076293927118676516223035321539050082755667518002084403155206509935661402651314679524386627049543762173053642112397333647400607775304185935782390454565976626475428771894876620974654786806801602985647480640177917673751998202067284223601659978883032944211349773179262043316931783643239625406855766540969386300486677231161038372677918563974350472340531063361610334232253565365425139543680257451765925854213059250708465348401545982567640397586635154087374145542930838179877743377811944497718595458450369840266872199936821385185260100336669149282139554422899176628891865598704633639850082386184497064992531449877763283216418994660404613299746305830642354759520647358663521423121161837650935078899078752429109585879832541625165482517678301178270357020150746649392446518584423959242235295362583377858828719076384163828058328744339194529184374423323927197522137456536771547765078233973246632695924705466423006970701796787253259841772249998365194130641193580364034144323949633624542871594985866723902860356367541310256579716712425094986658452448505001021597734846937041832048662798807463197582049925920310007889528487619479663477488822734840211752860096709610649510862534481600791411629508913854387487808617153531449919564314673435298300756026518831795761649002112811652069578755734523186875005562609791783574914763260703269177586043662734280147207860664799771141812561089690916783897429393291498476850305157361329053675853091660494399888340455247048275568014233244917053863706631150053365615796018521934748836182469769315974459649993435642684966382468832813059879045688759758567227684053391563093859894361829752734403792183050982181805710928247204245513639597880519446411093995694743650423347843567568422497717226908939537533328612144465744013365045345392470461884969964476636237792078857567806628746371301497345742515385702153055667003937274066543494110111921008447787445750501721683853708627912322981256810052580041209836110014469568612034442774084436986983183087832335766446470724215807711790897980545763853454266783432013300185697693183614936061335240215399650033759863658738400333789639238382165348405958682878247172619992659766656368911345403603649634093767018446983801739839783188360836016345211018612225254668742505985864494581143458420712398830809301872714397551109546397475374196031490604812466766787032458730987168732994268467241282311465221681103649992634522561825650615917453959276658260938277654559702003530904089470898888697296716829449629712263375333859059867704744826127352222247212720856109986951302158698314580547250054441533181467769515321910559588337760706082863301872687509211658758514998587334887031592576951137697996396648845129071007128450679533823868517122590448446552511229528290535343315308506330809877937795165220084288913319984932277506377035781920143761232175716549356775282865927659267571767698493595663339474873659282514170647407573041108202091983299539898201210968329825353097022230444210377729040993658212746914096791925716267076007012258330898842450260225158271251138677738746867965086069610528189567073750890836194200256386959297901575832105429385104753380334200331051555959147845777291882605587926307861901331146478289179057758923194710394251201959181372292312512278358938601614785258553553372584547647213735605147418171111698416319653032849443015764100658795691322470033475397214553425861790432282743203840673116847246520212075211204936027290545334981396228706729201181371595356084443992299380801465141359100870372587676818703351169872402152124204711090580445207115214245592385031634327151003113874214445361020844239327389294269930392536876678886893789307685197288162592429011074225248245269244326748332597959690654199066270740982734000866132372460908077325279255298654774391849556879379786139763038846364029509313498731526121729217965154766065506193228806680928001580233985066259369447463190608218731342271978744990962161248233797212226353318467971632547724249948395511202345707577265942781267274234374729004370651383015806395506469873468277013876721250266799419685822766337489623979222491483715086296896074661503960259556182711341298605478433962409287538806880121777110183847165929298036967315758932541883321915275077575561079571153993671832535507996624908719927379438234789874659445217284054348029491469058065250302783359629595968000045238324581340755875056880900350333491518931137800090908533594196717605083327233664945644653342192601216116906607761215431762630790656386096447216711234488828186645621978303734566170487065413078251433898678724901113938685810672226711977445700591289519865965767592009049205950724630423487346325234240852093165833549401533276874486576877499533873669529876223808976518427263853275366140154087663146515746876068478186504679832268424287545603848740422052061462647684139005115590172008796338705501453804162989607549573905339678765857597601335623865777325219514857072707116811162408957812930612065415595396042902239499063222901939988891797978900236298369763643961995188970205940277372598659829380363097206952977316100407231758275138419563622215314388499956438626315420347320881993060221726343687239211513078942009129103461214887419617968342745654618803548087623736096250627693712687717172539263435210991399711270537282428170063084409531675528778309729959131061131110283681367027300517583218740688515406655317871133733944860797425898099123651213220889433274721990011061355939575591752870074808201478976744245725208967953505996593599625608986095344527951990595070228795470881423464044840247053437450601659484034332362893375210389880752644652861403619609008251418328185827645838559711094232096165266690854807854557483071210539242845884899219182544478816618814506997905925856548550671915687601667458907673320641444440988928644245108684018981895434740525593148400279024549429633966614610505584505661341492905764914865889746282770481622881910307842309461462209582919667052334390285573541913643527258315141204609633466442523530736535047910963945674179279616175329958271698893480832677779009678882732084713734402831839628569796159880664329659685107122277988701188463714022750349925278918248561615162081060861127885137917565301254025063205406908883173597220407686181376461886349051163826357788495289581571726802651254939640949530932922850583562065202966495769491052991527211443094734653818180722970742301617742219049741427801353753082888000812566897906013278507335405837841634035742347070745196958484077070860104164858405048285489745923707154993504895079298815011845278539827908586663310843605493257716703310823064504763364320334020403519742141633394713077598395400077015004994470288106097101539071195414165948184262923188874011587917466654931854284208299969531628115077616164282019773980719343936784162703128141253793268936658434913799473504513040229391011225368136895011500985768204141022511140912508998227526277348654360443414507768311266522555773957444060142042719693796744069686585082827320117775026531861670656195523165201875652057882440695877545251208759628353885558524278378044364928790158316016731914588431804381171613514896195474228231924535861862137009584562362094988173107405965814485401355636177515592464881102572244614788176067573547840901021197984545898701919499407791251998995900783760203772425827592274799476148988330389118310310010716402132910595066403949272049664482086438435674944359281627803655653206936437079496053108014714023673932751098292956012469994685416821299742812344675571461801265075262696176162706708838240263736083460101073430302829075242722032485148095627061365283691797674526917910371660723403702905479469164605880404454097214566971131636895478470416173787926845981370263204462477208074798823875951025434646360691022396966624447303190752900123707637365856785717084602430891062776768874761906628777691962803169615610936160576603977478525706508313732360065630280595675589369502678877424097200234991091738186023154759136821651253448663716177783802970399899629995790141834714659633423651489484282494757955008797990534571105048102010548164977788013492391273887128676333962721955099470734315070923885305204078961577037245266220832106066166478838441690505478275993756853081966043931406254716658390784826699907460016095347383196441580109932506442976074746511504530322052166326527933924672433811573730513447503344548499386692972240460829944929909873241534221916916036576004336600195760431828390524560245533422891211826656100920371467901420023247341516372832848038397493350021234327611404715217720371686144577925473333478988521257111076756886425257976238574695295678190344011496889350959148337710855949744042408129094719400101401621588374112627779108947791056951893539891569416577876173084612662168505170045916361186581113681006019342208692014130165079882629807710067815567954987358918219282200596792326526666233126649005400030458975276778319671844934264790613225297812079559776947777199956060960387278871020487473608629593058005495999981707490101659889999533962307749438367950218758171193065564956570596633029998664942912108163178892284987181115956237437079148225199178466982647891402930725869339244102550012722536413217361073516148444534704772895129095161490066605396894666647026186089025466627829572440517473882407543325765173443379536251833627828040988415670626154298239411775826794280117056975616697428871817320967965279300513353093083716222101350959829205336720373337868679219495567583459925322971014616766085452711888777244030517196919627260348721931498679388941027588731896249817540822597665471389901658020596982014421576062815599103570839140111063293094091424016443994593034215332785316129849708349209210073085537457507980649281561245245149920251232025295864445428800353945845458937059664915571928014060822604543795852031411999475226762038499570383000744911435746201842650246300718050359998186776101052028823652542048394743922264094132447592614990450086531319382572322348594558536671224424872276113681497376262100701600811117141761830745229758366833780290085610205246947112669709767979272134584511537712353862252611032348676772398273186781842774969662774035344592631667296813943958115962941976914065058863493971104918415671546291010721370597907726835950867656265727716099614626290846487013177747682462333954325493157836926402553972693372550274551634519062038413144831640943381875319599556601961784092856053068713220731128924649286113974227292882517350053385985531099111382659788697115364383091386300621041796581392392577241850590313630549588113457493726076219449048565143797035490987646795759150620000872297060388475270512615232937290592016250216414112388817783633158187740622003925827002051402558388982700885329185972035676381540141645202509277590756767371199923897675224218708135870985876918885985207548681673268300476720490630778238096689081750153814119336764421750775406183498960719508323589794823330144665826860405204068991657108358327653656377705051589082106876428616553668764898278228934238557055106834025638147794672477891322042990503636447025390810693643743600995938369062891174446611184043581097563660542542803004824370642541685643069681452476290546872669323361361190940870017632380234956898807684087210955540171586229850342468554077980128277256149278436915934433822288236565745901839453404636058422182641285467474466670258112620744065228893565261001162932212708104689609709468803276662680474410684802226892969088984093421098358906674195173654596982328715429394225136092633594251123033265150031850251004355022885766221848677866041678456689265005690714424447783927002495576970519746600658671648190892154740740763507245757056471269569247445822160743335760061148471916776110972218676216474291431489958493185606680551792808265549384681386218852751305840754892048977983068429056812055938362417330706730352225437232976560406673631545337369490107132572988072400523471495522916771923607217790011506809192695216028376922978277621797099536797981598610082826188329996648787538802533420292617410513389523007623996380189520783973366508392399309838124907422295782513196524650286130315804363877877836354689954192769852764798555225787693290909677861964511117168702830658036290667121163707778671795557451006674404662278726822262129516678764926451224104423022137541143619836696162141104588447261187397967322401788229872784528908410652584354641231933023220616829407494150675417667157285061021132837808790247253631240524417824035745880658255108066451819189346879781008732564132032938882942040693828572647487480879413433486897996574416653780584029947798323709017883328671484454311797743627134949729509958190848028611042919483235087565702465074067805332181993183490026877482569051128931992211371936591872100893333009172792736815003927417221591142885103721509174675832256144468967107237287222062305552432772707255200559906161278309913553771167062049630646145262548823549658184395921433187359665088108902120573772630298992341186656084516304558684198299464696158698673949952582659787340153637921838984072098659573676730880631685988573301255962968188310233806648424614498623051771491057652331740895069709738894473132259368709386526291926087763668946348025740730538997110495414355211369379165211828724953918687998293173338381232789884918270647279050245426275568887861936435008682368435601115810619842539478407580611006328531901324728157658259496203310769360236658315588439341563944525299658906479908260680706122046162643995981350209704822298325181418718873042803310216698319382946464772890593941051802209719840568566619102115583795370536404823358458983442467434663520173316201411662983405091573510710480650482250561829971127871925869823153754895972737379764589579122507578909855599253567594858972916165686641470964776141075804614961654931656718650181055945803939736938869797556702956819911181044158663432245483567663656842230229393517288027120662656107782951919386964882916706992019440443913474443769652910230704939950836071713748258260297847094143888774020125991935226199832574152640814219766151500296543627542780619693995756299509891203855455588619880198595565065572400586199594473131309698047744962672869396382102854789955696298934836997316251050136939363197620165935207425567256246942415813171844681724227253545097465033920485727604588319094985039414935509656456481892435404510170746385358820028268646113554975003880855752959129439228103057461276683839788740982064511331094641807635796556329195259828045919423048009283583078224034380958561005761592550593613893527605624492462747857932974919223079858432740528055380486797027148606930609842321332118164440112538517016788428361098231201455093054177912709232642122434001185568054668001910766778691904182321391648142388211846734596601367535017303954549443653401211452486179464691846804815347585387330180951699633843486711470440266273935546255147117630812071699506406384371442976607138267168493996533258165119045861585506448124685193630436487984383372100987188878685964805907888155373088259641032908224673011490145754106134949372248083232236926607008455773319019164637491239073052212915014492992276703228162655291353954107150854180808142030470169033818466678606412011717736235555463817087849980935647850943667552269660889332350675829349916880263945946805608146747618391948588240101362881361702618557794779331896668564613212376740343596604311633093999966562382928577002962190770577005858565490787674406540192871781694918301687212832390520631506483820227953602588733585199768156003764472253220008597287451243013073822358796220915593370849257229610752904072319925420423365688277458526928167272791810368944839494728701434976822309282981655896882955042780357300723793320828386083771399911512699469384474683911298545536348756379843627578732549646466257022822501219032482093513790364357008553579488528825114630810535775567232243568158065069951511233799227331442863646387960785395673492847911229513782059851790472027725070459892160714326106306616190191948131850156004193316003538903830765329597249283552424723945860623876117540521621247873668539641996360995623731963029511197251277160802506384588491493776033479915562456370635701328453449528603443480053714486934779255189253910186501294657546150054602875491827852868584036501280511109119088747058637437705790665312305241258384200032156879772579195114074096125722549397961273361289077949868472266160180889115870488252516157372830170540317480267452721371154313470427703919714668096239053659566137907435331296822443839412490889487396157053291384429633076883609123613374475662482315050758531769766823135199519829896245706694440240476628161134638683994870787561739394768287008183128775635762386662664280471017943465732525564021067993586948845417251812478085419770529159784025819783743662731545518497657067922931638258729780682773889066579463551870034245426068546038409434230063953258775493778438890632926079028012274476277482601733051537036227118868171345847940280567223533033362826674713868941804205820326981963465081484962908204936660456585803144291825334709035364416783563987813673325611433612689230539773635507340727967423736319577716699538142462987829179873031648192831670981575557734391461790345994940415277350101532565821530039057315170510963194117094491914671521936993292468151410141132127056307365181279635333231812186654564543303229892973079611230004925644340969572987295439468208947455600692649859780413103345153537049902616434275722575596151721258296658545817356873117097426732677693002769434330898598826269049219555836176370138749863981755283143704366865706365395131547271194605376374969631618633567858379941203550172734499784785574484909993145667105003049303840927684490818472542309968770165354218916029000076519584893661935322309798708286113643956244791038814295233544895461802831075044284109261556922854456463770126332073482039504233765689038339659989132751568517240063245168086395876985802941906648037280978060668341000207251565857866717602792055549106838569788236938282699204914034893450076230640945473577270019093645059238347488981395882587375086194793556739737751659862330528874455795879529606960440870739390681845907138308148785180088889836007129469689251210314971840506963452788211005375575419160798372057419504828142162240361780498435047769412821841909598111455952724364899354195881256778609492192693592082266672769582355221359954183344813601516047132652945061751528819900650469290087273322961684934730015524751098685280352687146594964026854427113657696572292830416275026204465296414955703421756862386477456249323527049584373985332622518700869943552628872447562304812135531021764010637278490070205763223597440397716770007647299172005682848237319358227221686612071823049410752812912038287628110633604928070421389821094789210587438341018482403536037628310750177557453176584922463889162109703359437493541796751983890384827487733657477309084557916337892413153529527061010467036132913620909719370677895398720471608032858030482306000468949102352115533080418423855141093643568672640065586804566314307774296078900625440028034639312022278210485742538123202731254116942501954399984956738272597540162421702513090824533492750763747228123893096727245422102727175503551465265429985636530461334854887206440492308446685726054107719118082752907888162593248646885494078536653856054525799042843484435864295936642828743759186378169889329319007352923105107287814417608805803462844365744893989068663189060507532390052359113949837995901766301782252010869700977258395544009651399790613570290309600320651356745284396321714715500222415141304543620363703418443916708103446495021397204729117575277702658994453264017424407078064927996268051415294605630774008248759682811989611134671854266830575319020396551754478541172689751304319724825279314487631555970363704509990402535130270047057236619500397452304718768315327417930217743436494478790997866245903714701376507245965882192161388763608698514239447364444627326796764309871880353013184311744025525354419358261947470129332516767717069488512511429957409390797207946753295093600730214981787499551810495674107019447615999674682350649169305786235244386726564239222467437889280848540077483485269582329567964734920033765940704060296472326805059111577510083874463768918261297763855981486925657457035562582768956358450518431349035933095885833396197445202663512642134294963998743096329787869855666927141399662909658224698174528138555441975772204293829264681716901584196467191073251878770123742173235393450454244839231962819293469442353862460729407643889416212750017414849884952869211370607778618498434413533615817357737405845271329218661582298110850798777944558336444297336901835129397434384522815352892472208626743765750417171090139126000486150086231387073095422548459455632304374098263843533106894473112129308937838838710673885260247794101164526416101799770767311949480581434903920578376179225583188741116967577749591093114387100879353037092006742752034085581015661459700378018574405806757897197444575901666126677113210532502195855166086218730277956154561007009351133192032451846050831848017634075622078923789428383033068727653811955666141390156299345770365651423377333360550684308292912797230721050847089690541779637598154021636182393033595509395662662161161242382799439130437952408039347106139340903456754290872889296020103240878176238098821678828252970663521954155135236795650615682805280443983403642719456782994074328984399829815378428191424921036960566595592707081775143630902076986839353328578460123402845291534417732867212444225877925826267930539405767849621855419548528225020421780971320674902306921779554536710679664451775074197043325318787242494727106078678370990075422425706366836124102014571506198593647584946517239387532472826376074869755145042333658769096593639330553799375106654731569762240890700135572371029563588259778988607841276069165613987573360907815832907906778691390841217885497372710677259126241299848175025531559126128938723623623968914346262576694090407205383102241692393472671232845655643109886384370729333608724599849319547510682505945540921668085142050467862781695686956560685691153389219957858319883972773689621982358458965607852314478898884778850181217526517435684156987336897002766651810500609513031998376137114369321035069463875190201650078843915659234650149158720608984676924704217490711838355005460165148478139502625551883160281421322068277134788796831013141666217046924753204541293091504231985449546899267897426648562752046783195290021351900605989808354644440230602483005883850622009510312491343381250762126016161857961743632440944051138827292699688143174044380550828032204701046559918665225076824349753844911689562976222250404573365738646200083309659916928252110247184664969879284355625473320834516878816358335419075713184971759628331190354025337178849243406498404239847326970481782755974088467131763128940033669735404434796968191776687644691662233523795981844382580787361825229568109595238704003460492611633831926862330623771138014176073362312845460219084192305125345782465420110290619175158728604534963309477634511794465114381512878945435661668214099540787708345253031209947410619845116801679212072750107617990128009786440089559319609006464011640101359266619326685723611300854591691413630991029500769366640005606424822422893273949307809980209706733711625197947300355720546001147589540037809704698408291761460924042118835739189146628522825404901190526063233350694009773747435189946015026280072618849120406466523679347112400938303334262936100861524536637606312629112300310857377251265951723855234530579773839006277215320809892303331128776373339797677550513708103160698319657155289513704693946876101454212469520951705535149759035005612868827944172719947739263709369424564273602966688657629696081107320270638496764488908652120623702806262052788369135962927857589468382697656148141424645008217108592292098079177707945680995137881112787878187211246570687752494950718976441722899066775423061237431291678765341594851967470171807147720887534010944643921222790316412823026484394273174674225530532753056681580033937273600408416186123500652049191152050794445952621094088156999132825656122879467561406843762666959734920905607070248851025090065813114969821728926210828720729777582017195781890986379952976514896615282090948761457631652127446788490853014573239105210364822537771236304901533089877944342788390423683299786526765965313792635622096953058422542009711656328400491150553976437188557812277320638016705705640031590171256675202369400817422116294106859781957548302660042399384268818608697274239945222474683671660169637398554779600624932680183675551398756158044398720519953081933422051095533031354844112061723190089515785178659864181750910938641930458305984346831511813221681834376828297020153894485060408668506486328664990603008884226212255795847674817151622472820838537839878079644279128795096471338823204162492578034486019105279130993632834868819742897624907717730844038948450977824357806135809406219184733826303962142021582131881404585822321386440619033148740741666777205560203728988057055737001021834067021782729790598056615050384685766025484583523587562338418144038448000062419249238746006826716821518101845969284927608233423508836628795506248732606037452461029964752168627343673479789930829213446134057517566486658481615076410384004924359222554395109745767668750124746203905916705784230480250561914054236038652117853304316693057417891214368209622616354571376705084522627042180159370424679701776257400123788475849322298130553594518524767889480546695700542145471005158515603383594825028006408306783977511906091291536925917240405550509656656017895041150819843923529230516886208336035372762078989820457440847053581764502787068055447586361637219717875314006342006102739095204253527958250799864588796200694830243119025926319262913278651550665137951726648294937077221880418625523883043782880195218802260956253796624838379686936145213309878409949183670486373609983266419115931325400506808613609489331588518547447645740683028590600831856946484217052523972145214369277777188809501330711480804356754870713379959313940565911963124980328641542776672552756707774243161102808481142437206780496030166725570186229488413418170546681365625377608237864219662516320906596704256312561062074942597713297368600110588441268217284132022507004793010593562589548697071173549871909611034514120955248204613191833156793798194692754380627840091400447259521301515150046818284009404458593809448221542014717579323787580686716084301133584023647135035448976300851811690328893398645289576470603330361397630297574466376992747126303495299627498744486077004022846948644038034249037261632443322103625611464803353806421262467312579494581414038489581942072114536890396422006187799834221516128498554981194837851908901303026554175242328860946059658758336804171305036906569943532811606948331877738055080804900803303395123056935149465113738326278835453321306816602471432588488605122827629583931051998390381384764529081837156752392590941945076945727554072890350122769996903154463543357931145545172794748756182611039432098082556133427768266827712425163527497896511939677438672076479884878209622954432607566756272484693670765341168314775035678529013393436563832794298612127775249961084047853537189941264248220827567429630158957747414880554057683013284572537579935601394507121452408301712795055456816249247282600078388155623746753112108264207235921977379722076578550195542776738552663189609268645036358049660055387888829332332963491731879850516296429668087865608446319080221984557758929122702619905371201769876295884735189840976690274310677809618169858159567804384129580271767740231566193765028122648684320701901450287265325646856934394815720277027873366394087174199383968476333896947386361565573346807602890334918715866183045954537916218105189786821065490851198663442923114368641105852866584822288240508428259999017491413171162900102265775230146501338586145872053399306836698081168666581402456347374315848793520689815048309664033433551718360575976085199214185109083512867498071226343141339907605652403728198471742422799954334083383356904007074312919710088817813187365117115145049103728899164249733681045689122898527636806944510621588218853073028386487241694433910997737421383652049886300082902762011719418345823139606309831699847305069624892355648460992132630178291850808941262358784117921683659460317376488608865834671086269000438052055680769112454211213893138739253610128352429944137164982870551937622183988474122665115644931254576097833226812098289138495508710226324035768420113590274523751163956470882734090754450047746042031498589941529236747460874240697681530772520565186111548083140283673790073410815130292505657927155866930731232960996854613623594396472012920162737258294556304740323637845688813038859486968816863855245523938991461476873350888137209615113534852369212029115970345019705492199625389093390508157419392973158960000062534764933227266915629423564984182826000084609673540353809441531467413443612457682930721363892240294146182470989629242494157228659020834076467485113820616666317060719053655348661530199327232948534180590901843961247329873334234222801752015678213101843058132425735927627198812651947579207063896274948703358220349785057736360022875379936106148800210193942749780927550436343506069689183099706798668320997847729945618044652960673456335691089268105390142554331231410769676263192394772485838386032658497284192025946776061201200079528096811084710437230079592393836975994560097789689352065236561841364907412117465286846642615304452779429382676353935857646669288968428207065202408232784754173629413980376277852475431358011527156790317434646571379173086065187180359767754743438216080089209797904160642321932296605739602558332737621190109746300953539549937852002135627490623046725499899106426471665732331675271139667423318115842469292025913731453369655593232157852525782950377907415821518088138317499346694074073702609462923661664315189664435919159129310525951545011093978498798627669202785174974580351688323455710977397042649128584435550600425483333380232109730732336616872872324120741261226053260929071887108656455092013661467411221612431005245053465723907892217367318906958864053529674771526071061167491143953090261982539020666375044806729350524224485127597908769831339466077866210973520205644823226156893550631797224353575807211412899372762362851646454548898127714943929943917702550540358288459311513783321601340635255382129220516464302619114668001405015720499466336760110372386557255074924415214331620762328716401535702253239567088737135962632087125704496094067780158059672938782809645855707007558027582856730758330743762529595965252238581357938610521869945264693319206214685717562505221273884420984174298389950480470834017193337311591990646139847502440004333133644908699382427410131368625075101642265403042049949893980245126359089341278981921591079923740565604642901914358685975146413111991232940950275390568287209071295393915924646351039341152449765087548059941993157247911728400034999420458219713752052113648479496394910309292146688802999464431991835690416072320782798717549422162554069619983825607030551881109205669872701745691279631506222782162048072534219502867862306376773993454461467797421969081736572577244876408303051350266175050678673339545772824486289024759119105068760202509696682021072951957971139771301652462152228626940545156589612644888029334133022909670756487478492839289291292950025108421994297711250244909218329026788355558587299289165984574011953256239769633015673000664210667002853386265994705166535734701744118786449134863024831229849458785404951022004827546496475282099272655411274242766185504956311124508353732995404465751477827254405780068816666963240743271617024362678327309346307572809040419954670316802733914278782725427926219264219341727577483353307771425329619163234812734485512594696867003870052839899369377318827874527901388258709535798761934828356629079691325395391151960203061757995409370143354065431254555191256547799139390139658431175564318784792991666162783804142149483666824634366300097750061904650030389168922327816958945743749795385274246849986944349302260914855047933825462819347205069472224122875743938068928312482965456118239442288909503491442468436921369194564394689477320354865867807120608031588685308560158644348334771503661319061961779510724560978369669744420069464325473427830106129482230492047305979054630513203143647227118314412447465889008429231291912555003931888208775530497369531344787464109567932078391891415100012407121698579911333695732220356199978685827951452883616212042415580858086038978653687679450106612386582158611103455826592405278954536949131132846236425520287395116154379138225502975913712123150362749605059422806568328161933686060269590963303418217274667121958886073873072403561183438282882145640163547654483195911006279934292420027015859582124046510434476159357487750828453335800818064919818480677925530589112632290184473112638501881140249112551167995211913665739929401302289123171240259512433692753128947728184607936986660681843847057197977727068802419946695537622264362460325940304773749108052727951273256153749362298890994799084178876634071701773241433545952450066716902564713090054740173065033305155558454041025199620787448259296547421843836578112474606883587839312021837359484563897044954460363822161795098300760759028552193913031597625234670479200319266007100190190399834108289673860391856969159727299456588079378752501107844344242988956758223653332222958646762242602038436489603802846378838231900070802225969981756499774411937814381534864374317342283277791334257854451444600732720304372195299949340770718003395076830439399420265723351755223424485738095773600827199980560630339122671982651317352431495711375313396679387285857036222765773943740532354375501910974104157049085160142434407648126750457682834187406062539887229558144657062032101211138979745389055833562167055670992637944608759032875922192766632370728086581176482442990039826820145025012456799396170637455361344952962858053533332753523823642433522499539648854569762185655557131608318265782789833826269212209621548394295854719100235922544656337262302990930143585722144874712951547022889701906822401331614373391477082070103535235814574565750975678512506040963566976973634852102396820372503714697866710750437977347773354011010797567234117116635149719117598935256413739969053530401449666423414809287198530418411425640110638492062043296101265413690152104774761539027645082970266973099831745178560391761246428820026876566451156559906217587770042073360724567840030020318893164951221451041622377734237565466653760021065782489654691699121895681462229584835581869314828038430271833426599641134353564524024371261749371532795034803701135060063181506015174239070622531536282958399162239109397882123446189811930432762464716922623898214042604910498775469800925153326290106668270990638413449125238540505602772184341641986847258563869138859117015251063249230005529961656711514983689984104293021887542526752521430117620587389824703704075649601774148895686480469790234871547102154165074504426921117299969021950098535866148122357887768781986137074426767889948137224847153791483860104284511395826099089437128838352233785012018045166078961485798191850831129447634131848109555939571323291415497203423060934968569166303686167691729625357096198190189294409595901643269304014523759125092618877479814460023068438263234591422246776708239764536510091782991706370783677075560161676214312963891689325105176017993589986717623142781622904418056112367811280267105030918709423485982765524473290276365148115762067731098181637638500205088433425978037331929571287637494329806899966045984239951472722669860401022157323817683701369865712726561386276537537011959955195319603024679377651481696749260049425366408142858665605324265615242311495743964980780325971433720482264592046747138557130254792548166227829789160773365157246615733855968320843002307267065789994933014076298702258327971474682022272245238884746780375596356296341610433081601762403127234674464105693323819658916288403300034203675312256082599440798546117584528359400637900961774534807901370204459132940148778896389952263972009641152969862543455301522307000279932195077528395748965181364579916571600195910151607232733067371073136460506250486230180782278195108911983224440507545587495425967791628510228226856997977795450923183288514175662406721958482430988238583978162290394845088582414166877713598555347060471364888503042244570310549173444936481854882494907642199486825906561061222974726358796294529460104167059602773486490892159854180720901461986985059914607354008545056605936812277678692086867996672399922272858578990493666279992529497723555055402744718541723144278195566737942904002064524716656993848159837659284660163898692112155978341347340941263008676610967688242728341123264844322679627920133187830227458324129220514884261383600357042339596484775560820643878849330806603871928688651549882738950868986613027689313155853359411783707157717437667216524092183135053751891098669781302958873861951710124566964962027636467880015251283067445422790665854988101728602641283275482002126797904966532513142425423041215812497176241587559436966964292854886537885636586152280103936750841147348844848686337100764889560979891029255909027160617157087357982429785413469124275744310678181911209147610994499461193723929158531333698183414979955315458055805464906851590084526623800635573690018699331684766742968230259622436618878326025363292615476971722855866490900072999510219354546338007952416222983347677919184520894610869487248141313221263306917516314401805096435351077595569041282533452197987681332164110961487528117100379782111680666378302790601037290869824094940246610267812211168968525363043759623100327621977096794060405644664232601468437952856446471296563796982649410208724413725135604485585886350525771250026128630263387945052978561568967391802086419759823976024144954341141426571062724649662125611622651924799875438561836238209350024628322061480486694319020103024427753817344958273217855412087841477873538390265109470663931758618905000740738371380997001971645839887310227981943273801170525858838974457449914444302253451220353796630683634825509511090552814556077475299882944064026818675459913956375933561942532005401017512894662488349307799736194727108804937546958454075749676564011431520459115269998389129659013526042734829061214264210633386757071914153284237455941765700909615148797969375517029717828192028008558655692011778508860636157629424877911681931546839734475372538691590901684785212215800536154744386147562694312952588685481152157125704065962603453686864136641412519353348483520108711301952911930693459643155465860113459236530565840887299077963102474161507946801103529240905980431765974080313034533781919910534168368748022602275193684269253766652567839804196968043356057059934366896174743239399781243107926449365080586209861618360271085421478697745472621910763298907537120572980110965148490118218330766754601265552515244130341865487282766554125243795355462662376333689545987788147608767890725433500406353416025945388071359934826947076392376470323850192852930432678406502810440007039954027619811489752409388163673699289745472647630842146947685936178199379985148783169185934336553057370925196031278627336718352819146331686807897461290875621197546226797881197370898871841637914970307100396822067535778270443345643549411741975563462867435946144815103274738587146996710447988747924377279855307563975815456552872230173316537764334271538736135747324463344592096503053049937691003416231082283048668092384833007682889053488255440339780507922664862224167876966998807752034213878165136377642776344067786484634028540579906499121651798923614831234602667550544619171190814950755999133230018794591365484195303384606529764197723638230909426838597022936524575445475308161268669094760810377405197908798544574463662799226780990820819127635556981241787135062261688805364169461642368650308815445229439200770682682562542749179331638159931406697020295413960487151484866943558745282428798050603370735522597777823059204625267161388961232633550870629369825798178230774666058414789817347587471208552408441149962389875553887030228847993028566446409724581532141566014464886216463279005564681458860042310044211101838416656817749391472256315425702206834382521938530432392248099552513830799202442556592475098374367528547973074285584368096616242818156156939692150225792754510509357116643565822459723134784039334605245184690118864770850214478977744164601890294096077575057609031635989703080795308463411726334616593633162824064460077567945392995351158627897807277036953917940688563960481343373020184527982414515908018307200991757821196338939686777284598300399278899275792950723080408188559302202304487952371703510016222560837476671890113604815024132418380223101436504885519073340270542443970128152210589055347931805963768716769511709451060439811287990729193971478538853041315980499315443083658482991852315579759628088258531359420141119155279412089359049179883985621981183106900254338471972769976240270164554447528105610473833624921640613320473655048237454553917961843919409867740362042076780759835486144049113856054702145063531388443315129612105957288432111838888331642448293188540956318158049190806483054718177681049873103835384836956577896829483199111307157955262314934092413907220325792938575819815958332510116955343769052830753748269256634275641776280509794467215097495845018290422859775673138912452987518228466613965421636484168370740446269484340451658041920173535131600296882164357669201422686765553408377653241346778752461595490845814517331013617028749490464404861125005130257966775783119001605264812643002889561803098864918303463417566380920978619776483174198294796656154745956882446439603529147196221575413525396488910848034286297992556011624042495956245435814770118823635407835084555714718112797126311384005558002657867045119361939531333403656089141517310932282535898220945332572820362953516382815415407453485709686790509956645484518354928494141258802370934209434897176656041253697719595774942987143136561958729440549095720398618750647910569915403241472426217946062415943342425376910827693217787804234591363693669220264303426711230135831143839949569405682623808934000046364335511556946388821927288030119767299941891331724873104867901682642097423310471556742633630218843596837263814744962932078223816981633303376585305581783556530360120126491199267610101848913273633126705813534913763045268127022295612700858169992656024098421072214382102619177540753873124564886081982962957271884742257765416640319467065071106646154877388389096989634797987287782164221416695560227589871412885644167520718552251577028044475916369296073483217411086273840015271119473589926460181682290251204743013038759759973514707001244728637706030509629897535389336993981582471457587078815083071257044913443743704771627796321720170064698250203234144858448718395869080585115034566033867249805904216851701646904831607359881055904208836679151206102588233660269080953801437081230924899734480831212413771287067212975407987812626653770083772347664012974683384363504062953418921358138380895803887850161027267710258763691480819707799589348668564361581330166291791600405899758029830533683221974997554513395635793028172584483523335330768471304058610558059706941972948943752914371566526049896932848172485780518731286243249703796030760847323289351283589736093701071019111262637708088075940928396803204378927387203594666617102380572122825872746621327937941412576837075283072457959602144723577869448501961746002641213915197400320269265519873784131979284299843885626085849010057679290115228398604577405267538625380422426093387105480876865287675725567598205456789890099798863312684371061642051007759929706973821076232451794337848154398630908707606476756934307775491048330194293239312659661525964844652198014374826720055254985619800609738068275700695573123154100940873305671506514905165182392046965893123521264202607646749540563703505175251316295998149556953666481970779660598627680140896237524393055135609800190240195941979533739318482592845601180152027788783809174563089856780153273682549445467418821858970618190713518573271351849803239106759397097201438435809336181777512136221450285082958814996019732014291338613387866898603611328291764699528749351574552033990898222738312063504517295223685800123729870630913277114567151377594238622189842400985585985187387300072129477035631226645795876397419671179371374535475743841779205592140305366611013643713781792538931326851749125709505359926939880074478568609401541346385020424479730988029396163299572479243061186646380058796262743359915272738822379781055402482508096955113233210359094487979327928920295439178879477904040209196305477162827207700984567374291881237722469908630182771246304066445112286596956964045105492198731153119484021326525008708858115078757909495091613470026905519603993802001946081954858374655494460177619130006462881311706398606868013245309720609462354139181030021922339114535696162631132998816734050164988093398807761598953235858928984681762912204906599304411047148326325737727886569617146417678235664759087228237826295709827308841622720409534475359543021190721040082444399837441003729990456297648520321618682349204299795723845523409273154631376862222887990829512762042983753669379630961114294325392322678310753586790090659647391543552929808364224176367161032513718667737869750416473312597848304789717817412448393195845120526764222279368563093607481516265937084606189064012439170888500633872137925713686626632024143011625014022673093309990256523769372683311651195043629409568021884496130994875384935727129350439335071425028596139363053592722584670872517668526511067451853520344129845428634308534143932624765044791202094682000906705857707858700368941443728019344290421057358410971573477973983896797318966821120392228375781257898633428058275909058805811734012078657654038706267730992703628526745108377498215177844886129408031542183260045434342511693824249069510607852668471636132214721623119146305348007768692403482224481305655425383347359554917330256331198305920994539663612351115508309555974980357500554070122622910385614780742254712044669268638469762551426419364218199414164780270702678629057213810415115776259073242297094065054280594496257641185997748924367219258892333321945027541742894353956587505593894717056941560488415560776405447114258390544086366035649561207191246048583720856167144505265727713374154350565926640455928947009283226270870483426468316507619457869015452205194773394272316007751081447137035438159749056233265269542795280503356085531948483140542957670195549837173975332990364739058355202141847822297315460334910195367671095029906131928260771605643323700230645355950839241008681450571226282705661568309362780785121178079358632808289252370346793057297354592123770933281408900692301219664298809605566761300701733554385435216102403431257531330154922396587888116935395702070560210114949472209460688060532965971283266858264863146893043964733026299934666281819379801118828487038079005671132967079286123463548259269811401316451940125011292980409005082498476538081444379658009034936005514966301749774714933167725327387240599901566550460914172261426394752515169246451428448881000666832647224475395204880868020566635046843713186253620002816250802145941219535115207608580579302933721219989758549819161268025628888275748147001826467924670257910329967678642962315627716722526301027857248199497467109458494386553078730216604013488952452939223352154991058635343684541500176272574908756342053618712146489959108077124730029890277456504369601266655162610923227899427782462316337305037445093039169669617970183255602402079644807292833373743588551014755523428928141455793823803373951724926832784823463317420763438194490938701918169116596481063112752152398746829050399126586280053169613644083222559305352219793320560360813218160964750439713054591717559580610321183833775077447245023514337350659901622587019294242285156087300726645150628036482290034258539378894006456865478325465512939646803156625301641681176554533458102770497663824845904419617419497433064073143384483356505389574723636602795965439349412748273218967065877234860700556166544036490344918463689900068691733738691667085277356146446331738969866473690934468406550648008072130676939846394142187635900968410824003892379747462857051898187295379698673994331089696374906190008919484642734841816596238009506947568602094342245708110208239421368826294353649269594699257194973506818838369467246766375397499789116971305316925414728112881525685874483609951730634963556017989363543405488852866388898135298214473398212642167212235887651481893685178964666899959989744202522785137466191417813627479205948218777353512285013193735714168111489140378289448291134789188536635833171116577823658175514450536883361888054196042275573606765815145916467670361533314432631018358331749557190408102241976740946958031804034329324236430464849148238844052128460480136007196814934363250880570318393749802793571000614989562239914615121276230621049135744854591118354604103304109837694749538156109502939325914141832576444965730100780820678960606590343843040834414299600817098316376891788514537486353744091528589931197653715673954084077542138901390779088133884038445197423369157978983896145762166732364549100599652180165583150873252369859286663529996857512092412149808408748604649389583315412762171950857854868752919599818011448825089681749030023723911909562176142197223554675343055860305838573373951698254440728048717056959976924169211912295488872036855389605930999390728387415424807331017953633446873004528353003707511037102044890046675261625430337784408583432665782988126382380631441604671134198265371542671108898209423291504012586843366166373369078619618482665518963964964210600732557188714393322208185527280760000217162642780879928451326476933834748090242757652084824639591876449349467199993843576637396531548823796204780687497616633327705932783164577669226342578561889169306372097080997300875572972435551104439760324159029156187035280603701436636583159678390793696990234560714479039954890071502542515658370034094234440633885383914868712515280506138143162471792253083937009922228314782879236512923416874492835195087110702111171929998546851663630581195795540208986880802747032689349316338665888242591344265926858520206454639715820398863386399151812739123731231937525222311531835024520522472217193011689281294708136854474999378742742674442278540326802854895607391819077420220652190435351946542487404281760853967239290476390217940784190995932779474808756191936120001783476315288232481571366494695915869536065741186650206439208721775837213474134445100011126668132855815977061892619882847776734294419003219051607169997094531136870443982637357627616879038058848931727405807068514098228561858227992645060894538265157330205902290120030228965013663959516671471948681253741141500742613689412825352176285214972535419556028239626740108171416468029157558721623870419000771967829630609800575220846633252808293740722657197651877116978057578541723568173898413250114432736507295010257404357088697431473868099739266498178936640313941972349870483239008684289229237536595048817301343294003331644014266886445206529161239802563321029536476830375309690666192394714355047408595293805551700394410976020022087360514259387946419085860302623878579310693631006977435775450301633671863066741614758184805542043906656856736739025162653094461950890692027269247098284487478636409471505784031259208905635166761284887212028508346432553626718692976295442782422788245546153005786081789328497247921307268758047735397165397688883091380767801808841197886109720984487945856615076900181612056956976300159071816642681849749522203937978657520646558799235016939212587386501182565679457375326900107550831829498013771269700385591421865286508116841624262877240319469748384269961425482199349628157967191797087658518608144094007893258528443850237132396107291160609734770972640185760562198425716068336109076127903927776001950531470264483141053821790114631909937718717282940077580168750467511102625567946589007163406024794496924685243883767513552902087517084946817761639943442185168952491384159012262928270188430854903665862401963212753897527362047992302266064562869745814854467144751612167684418638381747566616073805302444440616906568926082706505396176712453432252057878563446440420540245281071489971178655799236455405890765710255953966261582384712670514373654849797422303438431401183178978217195093358730049835380837943901997469789938962768912782473698658135519320949474080064297697654914773382199735122016325241567817982238475407561639237374502208785419218825099311280530121659447358357586014316806566430865274763314832859415060170055643390121388908910353165350732304477194262100633013922057183453366861877030567859739749953177136915807001229936670842711612694466079404592152752128908156370464665119468775996296479081260368763905651825574445817903869566769863843954340869647940590672088322478272517364263275880671030587854996554480523182845622646566039656624008335372279098409078473917262015995783178294855251965363490502989530342957173838079436532682045686074174600740620716151583991895981407173449801206516105276009873985724501729879156450577202591121517355457050633503241596689388193580012365268905232422980635116077379921623233072328558736237967185606482677863314303890387046453677552028161501935128300209407299817251340708440448702377699564847563553070612863219802723526774968922673970711450140349938073777685754012712283148543485594814329917609925921479714931408939511715445023192792359043425333610411659579964995541525871608320070622665974133621667355833385805259861154586224884667948715866192635682607490984398847808415581788366885799495454088911219560245390514755459679176508201446370049690177278589211122802282113188291845504428713778852719467491600686203193173362503485471688935125855205595560062996971349446707761924401439866410859717817341163317906811505238810086811586576471792478139756033687692426826891278166852561132985638149709198789097341436194224215660537699011818754986370307380159604176494623665493903768872424620899516183554634703551549296175612488542905768428546823250620963252727759410160294765829734156043285322606488142260964621738651055378725194282311489678647342723815560354469586640869783445123124200835718720570583566406773621069309319648075215725964423611470584358647637643545656838449900073736117149166573108470188112314606643232541819607352041782177804380042145689970477403784513977279977265589565163221857769410208517428545149604264780144124911076365837935578050355211203399532954508198923633570814245227667699330857994651615844773334732733159727035118762331797750362674371774506217768678661294824467663333499706087153390770978554995486996889345525545305954451423232334104285947999159021105809192198830014674009376899980120592612310015551087521039181811157885345610809208330897705389360092403567765695599092041942161454887832403802596955841614221727487654799301306977526676038817932163844623656478989236660289011798992794011028817346884952980319218197480156137717144513013750098987670179675848415200025039259403398299284048272833062528551567822168451035782887659270703148296504398407015385503777480983766260392799571944351592091947690660804847464069002617711328294275604693564430981155566796064967039957656045839130756646046524240398689630334088850748176460718536995835597122141681394356546326404619603157611231280280970985789182724172991167890084111118663080954113661368005861816033234170425336254631444549421725983757406374347736213773762853217929406627057336966245025681479198555225463400067193501966686936800637788771588300339545504981339648131341094250504353431114529982807690488874010872512539277496730965307660895716105751536384145031928011737067854651581787430799591166140548837048835079747507628012699728720050108357193075749643646802183506854929494792685490618982332274447369596787796952303825755242939680259001708318991721814421190638587547146796188390338384928172597546091890049946966818087067132122391239708554253183437109251394994532016570773526760338794470906300108125474939035519517929588468926364273285433693231563113027108022267889191936123543597111144274872624161138940432042234762831351515110929770897101690621508084994736431524419264803211361529661168356737868541313255501462998272946992366142223227650459630617582726574624022346069135449785648321323536529649426348561820756410130664372318441121201340652090184054769177176219886511271430162427107077633833086417821740441745696693142153369710964100278893336713444808953873091191349959798479677534204145996369087245230481439321864332344688989086296309383702602796858209380128895845420826819204028825078960269050074461816593213951184171778956804175410416653293932492655333028373332972405022088984233451733107032108413550759021864334710374357554125216087738392806890234613382997917343748044555295014742752894235425876071757458535313630931881107713470000690969585329183019516473039049244704594610820927151109302680777353399597362665431268554487013207700719411964252783741309402367278169749864847390369661849213069431336978618149388896581927971530723650251781798454290869533377372187729366996593019677889561753963854289333173764802570330071084763734606245285749103923837840559096683295644162675747426966811918116634052793980290263764182407067764948514503614336850477662996377487482966454789295655180573462940116301312206161250966338165004221662046910077967410841322387139479875847058852441163187663363872726144200467536864109633421750135842303565467393388193865599288067462437841835135491645523162907692245811590750814221203738360921287851659183098697994910558715303621910739254529462862874997943580140332947757240226311000766024495363520934501831796440684733371925598646631574948273158060683841402510309980695753800546764367198089303568740784860068961339810159047490359242761344573413356320405621878519724114139949190646787371050642839516141423134788247997006569235736021157181698400057391198753900633175410489677496367487325931944058538967743030854558111041672682552665012014030098981889779065607364723161544885041653193209780753136456556479427182445979877559408401352141076938791537626937150531465768942598520555390125641392614848998366092425186529777075424940843119112774792205203916997535336714651431984112823965886471712651072865595038259721336990950264206012316660141113886872961522418090926441063634792929629640011367343105947530130769675408077761399034806156316419124918651736326860907156982298369647252754648846771149926421063281557431804091330436396175358349679183089375412749034787497317734976317808715830136101793095314807589128160979294500403963907071541530099693474253132538999351159394780281306555263812397111117403668129839219631899429869373937068918356102886134994510065581888921519500291855935287561421159774850043999110828225679551194118009034635886060088045619687325354176729536195052829622453426157462727847417257151150480350697823094460030022292839950228095881670523142177317145139569937882659301168163568530782535724286389498462252077091388889431794970200139832001865228756628982874932123122291301330772790484566201608793008517786249159049925112167440233205648936751977807451786209743388529284064169471555134800213217323688751415120932254172398153080697269692958257602659867314111417272966952339155718881293884380398812746787829092987381220926889108532760917277070534942667115844783192538773194164162115393284203486073584868194386059284358978686531496042362121952877328218246393282731329829759442321988781718562056536776971727108353843861189224510931228412455253010979659116949718289644378145465631353304587178867006785378394321191222349327921428478930703923681268777668626719221998229652393965244230636456445272003414389539200459975194912812571014326010412205258284693965618779406843788541369401536353363181359722030371541587322640133097990295271425308936561873384733980236922963170857130676301352294411183009302378413630729444807868442405212650021770590570482876881203909423068432616859609233541561386931168189186808032302689465670814669989545046151817898528781035957676018364117724018793516595061189112694638053807759907909662799661317777579975734895781684272652907043930613538589883928416137054547491118951378629992296119477439030328690319027480104192887055577047877397177548716295472596422515762224692083917234253601582512383258017548209513802316028499074283657706669115812437305065263987646893056171306847309870159558074433909525272968773357777408771641970228276596349640371786554002337800795994166415064598628519232809460427235443518397913277812780654819560596284713014007014655486542233230696022607177428727548354341980150931343833116720338970310285930021952800180727715838756733742418118218225685283015033388656768735454251761478798597733361755782425960617585925232668564742026785604996510631188614922004576852536322290553720884576433843319778161385398538280668172396257233334837149341188820806100050171281725703126931769174880368513598794163047363561003640006772751102644881704110545814900470135094644049941865994291135217335781429771439893573779330063575692933546672218846378296669631097386714085540402447794711686446266963562623418645368298140334312562340315879011753035310313967959896022432149748712595610150450996785625734316197592395841938351519395033165779651401248181375281578703352078958956505498578889077316702965000026253060173665358329625781870767838351578766164719316063605116800296568731181973537453555529148671571766896651092008987961191436351966469782465958802878110073925915867840197394617493010215248419249790539223450744844284975006544555641069297704290947598709789897342149847797664169401038955788912352764936253108485684649233813913117477156018711511703056159570989726535347119197626842491004103788142323053169860636447530533040067166576550381960105164989042349572539086294654210826228836204320422914049224709998882218143145859768171547910435785824004323885314978811930443665457383964613642932165371464564380273344867853780912522952796947169105623850317471151576548361857108839071417461724380492648553358823352322395388819226416204818195003953627286387793118786722555133792136231926125788554861704455827522144948513127294003363960850463524881304028182176805489216252160210717544671350129586567120125032750261484770188404303262394833178762706570956973434644758206849159410427815894555115266820415207752995652517654661685290093208623471096986513249782496393600863743286671953154889406180398433559913094961284116394852819086153567013531924403556987995172957621602628835946062859613411220607141190318770482837986511817813938518889220028075110608512962351605252785178613696743828198466305159817881141279867394847494564801438817465279630425213667092277784504038678090757441368885688706756116793125512581662374565400336386512337789482656261392333228962025031656086964276062094478945031817900876939386920010123021622186131502583357884432457404129208233699987969684776177092333865112604345279424633219541925712882723484159801370270566557051540562859586064856891397509382473618513631957915162261133445226693822020995931521736082380524332351712830269700409818448846133441467433823062808568346318845508425661590674232979733478811282292276725666166304153077676907942751203752764576825715232662111151292334417580794368917317728610985405580672396129420815650619543847651261249708434469593548101393203579190484652374599261320997252135105670594528608646984712051259360973834059515069096776340998960926884646583762157861604862681230691109800383333914000303059359120288139511111466697967149796113952582123219497337105795794513148149822048970850789705659700136166039655286632142717483860726553304195366385798183142905732090711076565356105214324360307857544874098809897301546021974460754995013672025287285872319120893559301196109664102821114900250281428736867628253911025587537565842773690696734161300052234099165069533000623044149348450380816943299806904476133561892893098564067504095808218122365770544611768649076924367510954651777147536645259425012260247848258745403873993359657011259028046813443891492508409308580224393067759911646816506919926210181417539923031349283977443866901066250718536877224750778363942868076326263178828050647015125503766300645058829787415163813431302121982914108937511493888816343252460647043207757561556029809207232031056656460098156656195589122822936843367258187711266208467371089574275597752806591240484456942884943384477656502167772416144431498071163595000919260277427573018107342936475866933194950508855824084437845697744354254063344184427091305228956149576162301198789362057158808642997380409628038774435256933547012806832285237496332920398301687575505275595521833877248803784346224496408095236025486874822991183819578981357454850826243253203877944084704737065125566285748219401692197875233007629838649067889972191563370319567440956621632506202006687315746730228673565470772865417744600319232703263959094997986068891612402010999182848266153000603018359924906247488394420271622582947370636476463084015825531918946231753262948232847649806437517964561575170033470159541317608439006527456209710629703805397913412366271812446984104212500718058305959931247596060687480353190913119290864197582921564071354401448395930291895135449279199285837224017421820262457114196639446675905577802765039793586802525961013025697314107839016465524805874989438928066115121174772033825195689861678855270417825745456162918514004004667433475876575604591972588718636024269502455352221690663941252227993766611889963767893780966435863924494907817267546560914166917492794153144487469606396499570657211572471745970280468774472563975058702839850507773308750841239192903493321465118323838342897216558270342940196486395057427887159375821237932550088886025844547960167263306651878155829519055774839325690374437094450789147535437538538821000659378085015185292992574133328693801838531225540470474503265786226651553396193496603419051844543813988118334231273573884736258463573276917563438231657321819474791536439557691843337684113111568000132517488469443592805541277032866127469762005497884374288253047169843153087737785952849280525239863646529831865974820894541167283583853567853360533369501408096533641135524681328569336707083835147513323178346647123117996586437706208337740071583645183832217459450817683655007645920130868862979355713066246130995165176691857908384799585251178283488945283290039881553810335899926705123160600051072123112866925583722617195916457685078241713307643839877647636786588496548205024040631564205249800780743875528659782919582144590971768010040746315667591688054492392353372238516189595770832480664090286729089506495621767704517176532022862623447865246045252864003728911542359100598518425695906273141383229373619643974708761994768348926197220475306516511495818321235181848588903851205291852768880038101948720651787557161465307955822342987228452529480751795765618924120033094133765767271120889909049828484823154558069473326036029100715028067349682003832347375119326622840200047456823198547878960789876432669071979504168035300312060071425997352203222786730970130380498636410298706665731770626449301527643061799237168060577992717583000348147865694629957647924541705709913451351434860888895152783472562765643770183927497792336633608678506715182378821921264330192008131525457013124609183485814965730826667005262964268119635264465448396039432549241553372960480275966865324650072764461790522330398112066968166739066225080269565046444474995024322443564278414516509451140145267327040645559928505676953016753294254136501456174299336156241179295000545146094242945667254789424675931084642725084922769525962570222742678417117218626120740316363939795166604202987995498798546779755465642564256990207543760872191134755538443730460632467867265539012487061399182193601183229548195985079771218653886667959085364701623364272967782488093605857819586185679891216265071796544574821632285783238804775924528398980800856982967890835767858266889656919520667822240289520163985371649371898815233560687662349715962524349291648536761582932404854227174803929272380575762254369270861944445491123844592044618876568182307304182526634793674960385648646264264561977807823603455272484483722368189414442220437016132317371125726704725533627348434653754169238505561169263849378737766149065372349845997297712761518936027250695289745786089042860735751750621923846830720291941139649098094935385839143988882525322514522455171424363075458592906462845137673110583722945653546194098938364828825205072179544324329444113596041131306523875215382895429943372260584127468738386130935509922263299838227418978412605730416087330203198463387328549836693410500337000195758897687351027730274707744234410298798572377421556713289621014982631697777474676507052390048260011966674578573266013698005294122302939135623685548083152414091595762185223705660007675179504929748600054369399582582927823391782163149192971300814710027570095680766923483590229057013508206661257472031746337506740275659799530350847356517738573446288056903662558529133622798377654042273524987588564284499705827422445972554021609701430645561759875431178640476903340996501769282777923403245900950950175241124241302173959088726246501970866009980851578057519254926422234677244959205908490348429608273119974619035201348575664865350343430988686172166249518851832289000906793644534895932425678218963097777560575828002075024952300017360227575946844466921290423067671068681315589104010700625661275803389728259674056887812007044068989154233400528253035997888000809668199090454877022205386022375904794528024563871178436703697960859949491986393376233505565117045395754288424778145076420606723575785894721750626909547997354287375845057897718621014235642752575251648871069253694251020609621733638583664758021457762582946586774714960175432498746200614403331382673035487882656536401622841742202085070716376663385667405405503212946111338309613247014328897775337186731024760763702101787410774163526497608017388011681360794515205681286439392820933437513991371950900629730539288954117635808814245985700125406893568332534246877798611706660377426737017857064988947886183341267354751721981121506281682130038728653857711669306387318225815946055486570439953226383031587415359262292130998001052805590019403737962371234901622617078960150398733837725528439109182984971009928367703676641197711204054768197308765977549359216815216070609307468618548383035160789020552447759901852780434324345465757664855276495419259797113877986392709420764231047738738199120779059341527951113218380874465545666561062117772969258643709620779456796199173148278554257671660708141065099783139189875641404312914327930450746344279849421735621532153660054488482847597569731808806813956512872633087335699567484217299184165112568474334661167286841310823032593349999386823064036062077209034400375434859228946404507567736032037811358252404804909213243569622488826428247701320645611699551717623155037060104848075689860527473868124204933973579769094089845950912736594328801582001468805377706089933420252244676289006578801340776177062484238755868044139029832834941683215409985486088265345878187442979610171163131813300521610471476803294686455594198034530859425895977128505592545274142132101075127628045535434294782291234115434916616389735393622887890676807143906860852287326271885187925910492165411966603373354597393026079179739927828949597418698112461481141615817645936261511418546900919874698172534988767663338607845985403026100722274682054058442193498649624284991825298187134156323458080402610358894680778827961922891128984646449105537701703301846635358739071526793130889431919590016416400346507538187837441090772016387223456365611046496781374380572497209381902003636275776170553888871236438965596966888385821760609595828935486814755867815944899148278465033083554008384517586699633197461568439269855588577821948879890722262480963591924203154211668751516375431063746497379563106189774627825513999508000086423879471087574257153239647756988947874971144718724219554612825797468689943948808823177083503438011839335621775184370144241861464319526233077438840251157609412236190574254414502419619341112833194929535777332257736092791439044593473016768681735305479780444941873676254866435975112323189659653446435051822702506206209530387630253931147931414836644868115817007133071234296928804847619156135692250489853411774464497668302237642053168724130758214056637575932761102410012080531244347891690641689969261647552337327821126141802237903289058064342443766414409261385339923556344190176075077160013661815880331614272470049967665387527205982800101923541429111311621533444860623219449569891123670873185430037092748275177674532325342190198602461977970167419950243522947612718986055286356491970749440328225906756340242415155513249593736705022410257923649503625679427521706537867386399362228170881361780174467002958734370575682584106201846837079424368297672286870046179950004205360206627229440520655502362342836384111285505991471584257738434824268160219567417150088512661169183293247848372692610427825512896127467491715866076287981771527506043996166738418408488041175586981586278751045183341988899561571703503203197164405174157903334792486687192025349231123423159251660607574266971553377047523626602338557807917263235911146126406093402025837979058797882137432766036981368337008655284588011864634804428478280631228812164987349050915202388191126405862604630058893026339236915613839229299852586628536841112213875697289739166856882745886193424879409581171179868719699687616672142931348524516215409798817722207709169674433330463467061522995694894295448784988506648651120743660316538673521284199275401442823080782474138591452688333000370640405672408044750777847545817165417443627401180953781418305341065062795250672180420654676426685027435130023728926702433018084259833824670832059003353897587812210748461011266961704382617118739955658218556230226915847851879267924685494601415461952744964261519986612740837455359656016459779219268642394704033143266605478974912930489931831008152036706957067596899368597274546957899282872146744938320141025569964650822601939623417880533052909566464753190748967301662809453317376238469348732055299152792903293694462241941274091806142425830532003956207622111486928600611603083491119891022385829590632081400631138563029004992580170135102848210803017954711477486420041742329355959442936216020012299694341893676601697224632039493889148675971308813411179236703970608588175067471705164144314390837176831063524004888866133996492044981699968942511296501868987196176085464411633137578294648528739649699784066919022335910766390307196496181167025746768327582257886000872696126161205351504212739248143146896320095740767455807260444159629732054197249076751195123894932720522507204044968921046038370345333727607636255925045932569630335713531891917154583774711562489074223821529660029319057594203806510572629563759479042020407227043605241283249933485841449912898596493353759308392537878228024975742760368268539511353205570325876118989295060737370482033281318830682028595300027388327853898063096800046831899322572472412263479545653524705013666263727909447869974336477104500975730347805962946356800158647363979569147782581148133083446059657202096495665555977707334115802778075731409848233892884587732953056470036409891109596922798657378338600786011114380404548437988329311285946192137159447839234098352389372608632236686089957874018322132849356285134129450134661118824758609591819451928808310866063569645065932928904919104924122753480817844411533132993785755453337362270045912536377252916254766026444816302908748864802770406543128540514011941714673016973982389711132749832252496751368949265694151113907434112030094708959054271245871753282932415541551030124453858100866022230617555793612639620611783850707086765354493011536517192259705979180492219115224694341596826017098043587651537910031649036935346618163383730591632477270637140988117373203689238266137166352574266211146414918682498177480380981220203448819061862832172558497416371964772386261453865123096139639565393214139965108503030318606562286417261960154430129992659523467369888095877290958992254765534023161298465248512018968347383257585008434917840321118966172619376297884023158679879313434251178170172157271562772170206556684513802289236832624804413865878215275527482602566112072795953336065667388621001049557463808440583236323787484101710967763185736326371373592776892895675440089173047844714565254138322917789140054152682893996006088101819146719443064218707414177702333161430711748949149101533362444744215323912521637947359963505120152167566925785506837080050328092036207563867567949118489350647459265669398981818531301706392678241428873917325689430217763861718972338307794659641639187633590743705386958314043733614036199194574443221048425633083532906820501719793740409959921626598395019717826383288300187349447111161829792293636381938014726644091943614051223906689375722005636163634902845195458756576972023721236359365264736124624331497612154736356169538273517396231043284199414091523234010204854011841155275269783437365672186938413380134100852251801692311641478116203255757861335826858905717008811494819728936375758937182717483323796251150845546611914582332609265949022602267876669230080090066352926217860817779404925038288010050154917307700259278504891535863188412938451216789927024967965578978197929044307158984126071199545598502404827730748355727300719795137377572604384649243731459501560879191853889977031398105910908335752423597549763632035631664638925395134191237447249702457718184133708875326755873979122429598745993098305655854598666222494623150598614145637828273112243090426353995345214269890966563221633500390447446089603759493199693681995629676080966880806157214038181414726747642412202969984047871695089361702681666382558936036492986094881029985107124494051226656650113951179128474683849891006365909019744277705601250391865782242073522637496940291450774112688515902788285694627785444086672880503613669784482467395572018341709518330822987203421467282758673077232131105357063155645575337052413523964826511804795166955209558748527783119139413634550453195476902227849595574921709371629123357867144918095454029485492588589180390065591828426370111717648812451608176274140051465056291695321586264245443570556575636843757750646971413670428027021382851514759101854740865715388944134800499887278691102709998173636752621459854051558777832968761293812048191338501480609681111867899840324145440508861620327225692828995142077476402884084798156828715375321950494939031863310427394735427349824823545284496776545409924907110241716037365892310248106444225907400396835679880304175395540217581827842868498640301029994556654381750939431489708140444074700114196638263410821204592868301874627737217799064968627441574854724487167400877405359180602824420313840680706097590158880464220685181239092501573634806548369181289777833687158073058908148831280060526650501446140322569433464108182390474066407579757744202868794478151671191537745209632247576820234454227479455445566625476356482524483744469609679552530920492210044355314568228807297341323574088037938039228125452253680693606528635919702398515695093947562792056505563269489933785414066702429410710790971655487919041318052813320202603669915249751340454650965387286555796640121132134805672577145675665311597710272988254012113289757944920380626498742629462487603576088812612105192976909514024991416402066632748356957876618938755691634828770193005500844248653140284454238808424151073736587204872363167145867282520169195067376472957494768556975735222741207029368406102150793393800286821532729846091518360636723379620985278178287115165874198903894979613503630355106582084643701914915487258333681289418675352662228274059936130598620720701406777086466071458023093217625224927783169939091683102483615997394908356598543337269495979271603448408738067213994955777201078893499657581035043486719623145076672247701808218198299081601147990778528053127068971942227408837812652466811686748450851286110873340174357791858041011509347088480784711545308976760227445159535446915233164452897062833603876329686624617800740216151326233849838125697224743566714950470636849476042775510649876339973887320113230034875615049468985875219643421383037483122514750222580993021817492393620167343651316356241206751351279901609939303198916764281491320331032597297788867011664744099161764076298235032089814668189900552317964984620129693381218297387394326853361798991998039947701673016414659376984485553530066560293502956243480416668514067879316111186529100352693740171917610412199424863426614094870663047309435168142285415984114980813476144657971914875558502388093428533842582588124164355766801311555955175626765977741830960786204498514489290419577731082681671573830700155785551026130875826305095908755466208453516232793635609692493914406930385500532945496636398415022302436937770400889735035643016506436481544829870793114112500280875859567737525769034421981314567345433723577694975090466252057267685281845430999932094588451420347138858499087676897943876411970558108246857552907129912965174484655163894619734184320211243431973542055700701551418104104194397385671431529338588073724995198204724162450321188836575757430018457137133575504196859591013963742916750011010912448620554863130068919346765956179265631607374692659463997970839052097376894032682108872496415335963317802521934523764929026672811285593729183057171759025273137547516511922000100560522206484811125049382387367167687605651720533798326032229086152384520460016010826232496694116216318143730798914187911542861335062544208261535366369374213170271732715991599750385224346278944542772860987338616631610386303887887845059615446049772452504277322998640366475422965543149799708810092855990562426157260390230931451540489694564564472558831770065246720030326804342229969535923564192630359932380930003632304260919019694485203061587089750562678293499895022373184404435280575682591124433581567703353848582657625383281205997538620278601220424002230865449941724559240384888678815897719324584488754298379415397648559637529474730179283747976755195542900085720296177220983905699013288881840029239141860258068991432426652735698652512685152295566023703875730201780449205414586587366229787753109165730462400849500007930080273882808298507309224616996829488481125943055065554081142535701932833986296851158959152951315531270637391411464377780621299568911630978095819293129302849992874496355850174892343990420326421572078829241891608476144596013653445856073575466128793829004786497307353167159171375576800044661519494764582857435945195829516135615244189883641823691434496630204913480489112323561175673774776834304101259953458879413363460295242199532821749593390329869861826151296549379801091161857209053943530067531244938768971316578724472816723337601361700656444049822559114127748414108700286681314692883409903725463538796625604815673360441158413366179562812971171368047322436806444462976783643017958403671627615770751568636074065122008562209659751666179807711914395443533944929040734959925748483448825861723351955715044653945933822050367198572540399066445749358904736485314625028980494390686127505683151674072680961624422890292742809598340420739084858818260820847892407787973123399313918801442646989892097905571956946240673171768163198098322430220267725833685661802594027493641825246922891153231377350837690016812635936576160040474300529501809218596087606497109616797168955761939088062725025183310171439688197031880627893642436682943982176001299300259974242888173459470330181973641008945793160219123719601724283854836520667225015558567040330055771892136172850743330444930254201390446555468302059506900919372416900122766616830931195073557121402735784115700854157089409968945232424633280922315250247600004326367511916057666185886013912746582723077459768195946386880091175193152035379873445052749780940580289285055177985474341121031814133870046307910860906414322796031021542727020924916779385242719864152165189528528496141518669921091917235506500998425215817644025272932009140512898755896270811115693301107388771107768696751681737542431502399731393367233052341365493431431726560989041537634150229507958208889908560453736994740566861738534224277691299331086119472098577571452372544496522192150992795825952189392481602558906566192456772272334817009462860322283763087585078130234011849087324497954443283134236019915569569702736358173957634705898622401045118579483614810638933691318579165988770830952572722178219415535886780637436357001420869116354809876971607664246552516643681107101806323979876138560949769125221433789507237726450252068822804362228992446524887537973004298028064230337356619817673626977937817318799396217238332051134317501429095502754994849815269982412138348626870924172852866071200081252237085089564298315170419454515336384695941000024798633885975290492192861012583633810019807595324143038825732675694606884675862370231498563397075807608983858778000146948055100414522205683930649018674623120962915817667646002136696466962361852256732433975448624040106685076361047375446220668672485185698896985356825872446927640349288798067743274155520642049355295031288479228831122757095547391414475287715361496033825439014309754073456072135498790099335190669176710660582246844134256466070989507576772718362944575047337496264166096619873830943062923010188584188712145548081186352014489845823626952751877190816841249198405075525408775456117681008657801089526117417014494707034877737836877588080445657018742376741029097123779548077370309643151481445015606568779387267528108385630527405185325944554669776899515506698355557062970157350544774031851761430416926585050589842035288847700589145271756581509740744302438437269124438720032384305530477493378576765923911928471730832128070927202935775894363586969629200678004599199705171917422928084690537173482505155489278115053406141975223084682119706321202284536539471205724134455585099538271133416603516946075560721125666510236024236876558880405842077134373195160283827251852266572708155223132717512728942150643131434647326831747908626090075853134054189767905711418523600135615771512756534527551798097886122719415045865991324866409900476936361134571121172176997113534455361739300769968294260905210827596758383909264150525502001162226154723280479975984464204398374647991453245972487658282384226461558454678606996653109922504591016042773261420952332031244011919996499188642681810960834580668707029439520011676241173869489320217952397697003544415793996286508353465938841241732156587731555957042469088109872258186721095807154588564896215616754597027282197260218103369163922810623368138082076084943762439567061387713544868800257035186778059015470209054956256068434303458893194713919136593114940329349234816469355630451573234782374369955941446325715214061143939401690166883185067566711855665897182413219746083307661176296219466557241341755911898763827988295762862555542628214781284628491472108675814632707070156742298935627086311266943728332791926967312268153881741595840956707438311352676262444028981710417753112597289410934340017631721985823563809001320060238168085663929221537651819996145525846599615383425823077512008006603653653042294909984346960470080775488067683325995869359529174997881326539381042933774690836762293898300246065313942536605674053579648329367236537219310650222641455475156159693580777427035856366603339801668655338147552749913608069436204968354738433873781086413802235715597508489928365454159677247298677584341770824468363422310906112232153567811070469415131150344788904483186449400180798471170824646430441098028192436018622559797590428336117679035924213675892783227362836714419308334370023658554590877943826844621142102245630097916517025233527672380979439186436108689130488366518860238154750291889187237679514833240487485830903231606438777295055741526587621705144281901670144548558948364654281257651825802067741166495820259559871912305333087803227410774886528361968837171862607281205596215569863999172689710956168804491094426405679469993578443867773794322751706558320949308701294392809257353131347201012385679509803739407780998467151017520187370772749676925564574654614168770271249064650851983977733458248960493222104410300103112917241449886125911923080059077283146986167490203083186747403448282245417666210110342257005172923023888778290847940811842693343558781151794294614881438445597240754636543764359742165014198005861233998284037218042347858707937104695358146967966505060457614647102313258734821515477350911788588435384557447361778317511940980969910701064169868410661053334980963426343708717292207107532787045863798014878710224462327985113414382424960624388004655282160731775465374966037641304898648500557595675821681328990458514761860323424832465102507265154704839282362495141022584157403026735549896264060289124828351939076173506884245640970590136729568492885342390467002345986860390310820699089721742587879330104008164582054712271676492038163710647808955831187144223415480542851307919018382242911861661037927691218051825213759533280063803056982702798615764063854818660889771840448433650426441698365007733396246992261071884227954369570739948759689616094327522145563506452645322428427512549390716008527762465645367289444477723185912195181578508354624497527893439294924326265474068322817223781382212751433280473391230420343698621744582904304110387483914757698212605249177203933686070288764240329517417250784151556778280863254421391309104179346481215480653524107370104026007176248621655320891569207511657156381062133372151532440325131658799974569008057540052020942374504939370667432610343112760172155748923645579332962755311762749390152265926405253593553720153280464292473480516644545397113906799340123228109930408442105892249123058758975410568869051815846046945401635894904234475677483368006428894901460633346828728299040098226718028484183786225064960824689195210942682771635962318877046402142830167901151330519839150978928064977037891123473696161133250106095457936832229067222969506656028350773082883738201644624395644864191321792403895331326084598443563421758877841360607053793036472157377635392490638836854179810571303159993685961776040451605753401270285045052465735725095393672029024261962997113489335630504908106098961527372799426351684362226449875113284058861979946546137892091356116185090654095978942120999951214651244642884711384860869097928495068033855083871380239492996354095017326985927560335266542323670051798552580573296175779762628175817986682891590046052156405044407585733954414365042097280437108309382337924690300807589804298753857647601791566128967238779601501226097822315928079170111836116093717335047408745367955837975635783080388500636278724582698594564105873242733470561242767239208058978549872595456723843606409221116686752767525777584738944073229385370308045738886626914051380883320368841315444241239586359918345798901613307153143998753392360398515158881159510540550589911865652448893188284497391978933390452172499094606408659337884072982232553868230079538760992964941328587097175326092021514694169815919219999146016284190568737039536759739357653311872725543310677331359243984575667042441965526893826833751734219520707168693946690318300402233231483871124071091583905597112044925884604374312836239807694272314427271704421151806131499649662619585396352055710700917210370529133893001127097755257878478485017625464916832248963778961303488503077864610218163177318990166768523766370652588379456688777724958482492581181454717892963704007111834607764514527384523189023127415331168918623099395724684245584005165106466924488478925654045255841409580048700075006281592255462754169460611835302222754850165817896076200847037179157723053177568098786512930506472682407311073255264844971092070025166245479866692241682325900195798338460839601261583721518964059295567977934114680585699827726852477242911066681002462365041240026859854280364328878109327899989336636589349519413682140095570793248126196825433054134993905530901897811545210527454567484383557309330447440743398782246837763799645969049530463167675078337550232891931475699878412331414940709469618797199959626628441794215585553036202867093062428567507295063876794992477638377793449920781986778545679591744013340423248881154214135902279532170572195862494261253099995871086139884259458105523010239928563760409904552334706669857482078791217483188245114297902842513842539586227844640462353664215009139064728413441205073338300916671106431473560998252289492634306612274987127281380916910488018348028881265351495970963734222374079410296150820264514622901542626757495386446156677764566905759788875181308894278095706012954624676162671307672602159749775253981326428670554247868135416727587528904750945661780137171663762297698642883548433137420887928725026515002768512852999798422307331655108881903269098401075314440839655513028851434651196828930812878786719490892898411507174256941432646307068262585132719640843497160484348056247539714127971439300137100235093774690412234217498435733656584492785861947840291034854391246928732218800078459816098169718183869819950340610680536750177016614086898410467187382589011930698459239509629853408260616255559031851012825166202013873323041008653224291867652884024019989050749276938311330224219358274510611396611140626058382623077158057020088093208911228814388496367953167741500809194328560454802197839218489545390084921386567650191731212548277613254171278582751579142741972615534822887057938702577176743543332497356851540538673726317860553536250671719585247362471532990630529969748703881689966925379982947961332692603480678789200428661664223133280228899571061534765802101558584377883500687746991686679920601043109257667871269272058387593737556690116610294497339007529991064964404744621808391181463415516401627706471486251268849916198085799791340706615148792418347641403569682295411667468395820498745905241505973779752769244435635130089893240853534306082832298549712835248917474602243544762667598576294600137421071182420674057377247884541359563426518950465933181788201907420996837795099870014376029667790276607507960628779987180285042894936981573791732763706376645640632036514541326886109982255071066810078920584112457065109145662508617734061193501674295099575002486387632054172311852044190667563685192427044201152446328819978396836033990104836176787392840334381768313464330304912664321748092055405973411637034322394035616347441631843188629300522283322656509396030606945672236015481414251634130044896574008013339911282396222006387922300940006769128685822879197449598065258377264382739724295391377149861059387812145477556309362150661363079377610089039251099376244955266833110604027795021349498555641678809836215050655100514733945633225739262004388992894305199816511533906321969312540696404259178520392982784267275406909328473699130684336393642053733378539186812062810216941444586446620001764896143534487683963339381698397700165820243072705866333107985769362912112721444446633867872208996365781826088695651434157749211314502414336642323008004927210189046972136271426572673537589699774710251161742713446614122429192355918342952428780735679509677892188889677988106079707298357354132698132448573388721579353385079513006273009157457408949148888667173124596403530452446264180363487273863081318254029176313662991100793764340484075963400786669674547996287982040795464608028669747496302047149002497116722874472220051519399789288821505988443805084116051554085239512874775612855509148822185815832366366661731376140279702112237108940991381379804001247144264591504208881645737742216523680358258863186547993016814517204939682436075023132020165384205682640101215528386507526155650746893180453239709522850917096182338112593344745698991818769897385788323150546034680148768260054188725231046159938614581204938092197454446532118475962598638148594193869863566687683823131644409571431976970402219122454168997988041894589800199701278877144948782161132107246012588028333603112556495903828041293609836569102784390878528858676542663167467869318361769380786615585041894338808695856709005624322460116099620529755757694811861492065267654052077414799891388050912532009438449777071628901575787965097271285045073870547675958955801997560386951566196053118957565397055707286420093334543739254077634173649578056442460479992916150968568796447832684270735767388676401761853522192190856190588039991317742587373523322561732860106572340733960215164907719113693410609585344846064384070012798584004569217887752686893283668098597212483097020738995891818326428588912751285427609101845358734503816623590829879823998732926642171844338084313065779585694048762001771684783506691633160676052351319555382293130618774167867849436749903111070518940844484883174394608205672737882084865792420765897505747599154236803207488209395538414624419497098764011427156496113409347697179120571029377410185524263040943173162654484069948336927116018137276086395630008985087723664318803668554643609315189780074993311113774360589062470168877935971668792516411025243693221683969412871190368347565785643802353872137802007500500390180864178649459219308367289517838858907243071628542620302465408588982930397559353458575290258864765226677533558112064307450230827045169158728450692557881732109880326979395897202253294479910325105374713166817843334199991386397900500363918104169930102554548322187379526399950795576914689130730378872611266890338499271735387453137198431998506561535954301349481388407148578498217408849915200469465818068465633804335445387947904431095804974910034540808856119424924540077688126882833701787575815450169902593836427648051249776601815013375183244395712659416941367767986385282274528380581503698684143081211316153906513319533418014157508220037482691065097391622081437366585285034072289063185380318668739122171646078946501199994002060745068472308961537919891924920599985137602190323224700685357798293665666545980417324071445822633405105018364096130628428109409986917450096162994736767058170687742438207844459246016198166557868734010037919244939193922507490472924571637032074914165871251131061412400645940746607224992356100390301937656192768275603343401302670302095932068738162331007339986716550215482276047791170854556705951241802279051816319250604216151452561673848742263757444310357775648056874440797383510976401736642591893848389650334689829707581696887482151925482383743766070813139580728083195557054722464548572191650126601236741746073201277247451981903210134458257086024515235141464979684534566105577385861833884124650862527158188471779079885059986140203100848745587712201010003136087442397429095478341181916974249529622927260715563158270419426622035154935269858900966738812258407174444864357188119227504272326619305556489044629743707815594253729090194577352167403897551763300584651112124965886419600518218131795730717085122200400137913064885595309114231293806614908443199785629271161946586861949583246966813603265784306604153287934285606913484233934377514463429041834571546889717384660605114625852211889419748739909546100277347447303803732769116377127891781430429545493497663857371361632413854089347825989818560654798091110206948498384456226382760498066350411470463749854717986673443238301105604133810865504203332954007572842153935573327925279701235255705927146640495293287740199942703310790242565286453172340307801738531654703512450988018336590955155729124100129547349859462467574237424972592896281355105901937049545198066918687812561218544816239205725981375757344773844483092287615529294247619248366761843146163362321953966774776844702244727552372329827645211908279927016865245903238328886995485376021137175317771789839677769959621054523471127607632235363275715829773209990459130097057552704467248724296482469820260429592006205658988973893280990442672531425938232002499381321319152156318493274145835621256793881427238567777344425679682798197848624163373130819655055911225326094657749203697665293177416935649150452760190488990305929629902221133277512229250532931514640741019736353945915715212461689125344750838316265885384883817396856473878528979733419124240110603558477936906299605762258562299184258865942488760773258156008725253163464631212564758042565876825585030841283409045116575228903950107320851041110571623564469436481804041002686663578966004448087223470056946005909586459498926769849369598525929508614539775324815947192581249217303320105414495922224559389897341035600408820441931574397070168368115598398077479411342927447437634683878634676882187789649179254283632139537178060796264436911584981351304140207522548697561956619492940065997523488744251101463359286906673858459817305804855694948981128029272696243753434812630062720814020479606543946052533950085626012557305525760899821945928692209656190786726873284645758104948527516622181732637843306538522636594011311905670980711394910914767902023931018762390938339789563879191115512321562896761266866087544014432537480721424853804691513992649453067811339536446540480515731769765588248983520446257760635242117764725873697952909781053704276012110427997193314934860167480850837281661705912713202910444039842239164932477137398799069641920524406330393600677130004225797867651571662846779521460997034983469505254848510365532222435997882224864369965696233624167937043593196222371937183836009593217142841763225773999801022579660379981368726869238801513211086475204839689167003449791370853024425920535550207463006719630194059593471122553529253234905025138331840751537049355919626234834076507062095343077487059228385058807516882723880818286056483726102683227350037749136440467825444112993684201124850810683040352587392960989297708712956478568899367461572511759801239044960946259540956780501035729602652992961856008608033685764477774058778264445634255751296089699935980883189396130389738379278060117245890346696638183858574520391688343554569250078801375282713899466419922990958374250361754667620110292028370769077818361295845159119715917673935528101991991493969928535019804958970781317856577596125190237780383013557735138694643927587706997860883628322910598809143299432938927946190705087699846408901252814593473531977312024810458515450167270104431211610764592667852965438801892197606393392670494651850233253306543419802981303825607027759727701301234456973008330994634381264298287165084387864916984921744402572763927669088669789920101364933891300021861715018005316159111570860876367880612058736427488096382752816878466851563901779534547760592359320668132905154339803215881520651166981306143302585695778506445937595349061299105035918948283869167040066139757153677210549639859792586477215165951666162238190073648856333738055548199630164451308954821551100174062054286861700786844769078875102829876027190793861654199498343375075166323240856778820365691621046050664707962662075590425159519295753687991119753935515883967580186719542116487329956665933852911995067287983309854921689872340737271160178178338896431899373403764770401604502313820138502209294623653748669107293309966747462786625266460098613601446146274506205810563781698334484666533600900196290616554576317782816711392613233841191476353779822782394746790155963851865795563474409666413461796646347086574914899927429003405797123268851326849464687765571339007624367290038244820073557588631633821196417437339503657129006508685007419542847107829091965195588872021648415770254270550372151048811366485814348379219348168291649136044419739726186238700347652002942482498760305886851897922592123072524343961308474450637945704280052156700353739412804984172310390702046351667903661232226974846875253453324491416154646861812850188992678397709231896848669726828254176778683798508877017639541872741513112841955861857683315659987345467770713246562347019532538888070599224675374925707943934621934719668767927309978120849458732099302121973980735862752372600534593573554148330283782655899866062885414285824178343778616226070126465741459218412227897399980875044596751754976778390511583857804931372468308431897172354188094188065862252671938534161923880812219765785640755551237049785795446499734995447163619505091212637784808400699426416298320170288463588994599479996970395196229026690643153869716554854578181057412227373416761147830817071789995207192857909430958914486490959226997552855289721422223588544520852348698406330698622998470359160470195172516796655007698851622695369279472290338120606456744785164588857973351244270287098471586602283759143105454478891064712070265350620548102086354506275571414461660880301480563350031349272933916561230852524895209001818612088301277187371410566712586935979260947150168524124998557679318579122656078793746076697343505733886511843465467118378876142264365875597359687902490643235516945521284823930301724183416012502782690144014404291827166018454559776400111251964271717941177564577226287558868948757438812964868970069249409289907224270482277513577999281461649608740962542865242764519227965462800353036372255011554895306301102035247802710313139618811089646403567328689802303084765004738811775503865435274313621060976436068409590437677807850376511150771667336071559055753420678839136702982981169703862812660398808936827434336571900974560519542139409332752187774192366313875549735788746073450711497709267253464947967456425972815117698219166693207763015389241533295752041746375017257259782463474493405512228735881961401207193308302221105369266632490924026816082868061680669552459557015527644463358148506532208972597660937570465649832064948021978762386834250129899900054821472473727485550666095098067061923228485306494895460431866342496707490026340216060499252748934897418215875294595103531313604348066623845133951225316831107430976416041275190490893265039905558506894491942711635721373039335213652327782329807589138494860067713091558717156373529576788655170746655674490414532999162108687621016027868745202978653736138727733801719177127618305326891931199290331179702171753862855056620210821261360831684581616196203051675557540097548124706958442012546082839603763745359530839612587203186637815178293080458295670863051094134093418658902863301132231527932510125521113016837580911165579889070562207697287947891870593667315200505075693905225970309903247506785775154177112647073304577056316128423419009951946539418428611784712768200107741805453693537181217999759913024710481580251985675418183903792698169504769904264724551559472910546931383897723502929740717335435805160422036278213580750111596717765208471001118000820223416846781163184821428016016809095000107296499540298104540891301582364499821491178345930504412444189128404555216505596475533855122898750967362128593071778764378613116848320570160087922165959441237551357181919166726694020487235549961688983496261051489938139593098606086577541075719961377915934116554075808362747293481060061442646514963721590606263246104983824335025931157105986980024697851246209726012959400479350130946713815469696723951778788492577752596244490583868728360855976227099209202432067410015554295897488637009141025091420287333866710688406362569290068494090023167998733454532092159499060492572628403981105108255468952139805854418730699047671088655582871611407494083577774588020185130398338100347757625999724231025020302025990269469438813971848856650572890810121088781662329605808438893865620652676796945466087346611011892858350336576118309284547537021368556519422335266166379177502756989603350236011272660416787851829996933910737131396709994020815214701978310374363871876774799148723264319304651177538323186084364890137177432797031876271287540899204098142538362597945172529332690936993876297919990953372076392575468147129908210331858439836430115939454395153605637015044720931968179013848394616866513399090482316466727760782788409754911972413708233691506739605429672648400295225519756516851875747589852807867588356626858608367820721506981916674688266018932901129667223390245276763194367380946296365540078290453027318633565284310705440890337038830513602346437011164110171916680545596790898199837655630536535776009525516371275239225639818537878185347588663477764436745677990525889543751363184749869057397640036379335533873304011834367280914383766797739420918551976870623772037820701442951143956933703004747338497009161063903435505774990541202207341036344853291930261356038102571044062885699935336398276148825451988879569606390513300619250968798448089326654512386199154301396494408624140843008891780023698680998649864608750567146352240436530624613598327292708472441903987292200176877924268460275468372973772375567022554252772925442204418003167185617240650302510782968597724296236500990960531775650844282886425411510887636928732315973952209736324355292390513075978039002491596477360983441639364872412918584965110629734307329634950016547342779400489086542681539218470613249859207939774234100263234979311003388462797565288498742583085994381896511104543451605184677020359463907006023251202938141423537398786797444265787048533152706849692436666253487792749724182823067033187343069944475883476031342556426878234783712326676783567747767868809179249736493481020175533186953397496504540155789798566234784393283811313873705397368504008385564418271331579861229123967745584679650355852152019683347134676404262740959054218252358456487231526786743732766733861383646969258556956860227161330611621298653847720993036082101175268422178272148636031269276374212032239484409365468165198084772643438047808836303710077724274173043944019818906448803462080506043520371599569334074706644381113547919273603733797926530545822145570634290051273822258688165738001811839837498787368345388526739371071097360497557586635305538065390474265900161653654186595519734854706256405902796795604589733294612865330991051588576473096876359648076226607312571092330250476296535553946788048867847611231453736792554655774403220329934971369016770085254667232293743438361383731656422411054332092195339633156910714988507040552880557325224946422464658643170387643610683940701320705494565045458737552330429956549741361375647881194130789537024038195795628519796151319505945890148544341616702378899468743900135324206990664020190787044485045462844774896486818720065669654579988214325628615473597382747052432676877475679496572030878691584098707980327863635923992338323880478576139329148349038033502688140152544130021481025966161698520126610384157046140290117490742752429159013924869527785008964813565433406637130484009572418043326877622834998503076365729701630575076812104466913283823960505971783126176662709950414181689978466524321078536829676800348177548045395116754155754236121797980618693069898767280957858770410108899223706611149122353463210440950751121222999959075192615058645364120187286995295776530743488979809396430696081689412138151109275980213830827482708100532217903481436030082066685618667033200059489085071220471688318359243396011484657468768274761090431744078202959124781882072649240322741682719015288131278799243630801845100012949954803972452355830581736500494540307507512573837834351151766980005631878116717824476823076791233203817362049314018826855683473115398178196147409892641339488133339870910123262703111713670183581999936645779070177323932045589929034502157778509205428861171368097805415743275150307165489593806338550330312600356287490678768102697756683913094820564851305938712801172790052220476585681698295494877367017201426667443248332577677931257671755613463159429528475822351100637561461337507614585583726711806698169785273500452413320722481024884256884103868820145278618323365454609561130313127582751083449793444455246871657145118004810821576581035975218365716060709044929435788283650808625932732043246656400989988984618458331418733462735072862981158627506552508458319899490322293841194811332021830321601912424394232193995511008346152826331975956738819996288467297917396813199542612431285877112935384156710898234790454108886796435223315711148952623577560382393833436809506043832711106518028960632370644812171179272362171580291469306420472387554921480835550446956430818317996255099591912617818294160083836841809818260337976915657822454289146566212115912903934805317955623309635552524302070412078771628714492611574151028148141755944900215763188860116814557153998974645062488319348954522979572127445975460245340445685519413943421536092701684741495497686221379337674804640292790835963575709735052603515357275689956319793224827327422806409103175694398579190066143846521479283217678117012159837462828644416734411544310798645118184860151288686902616679127200556612091946107086739716111839871434095379098587538986991213410880073042871541557594579928915444423104657965070074314742487058091359626517032725224884119955454483972760694204855764652933737643676409404190233163053747759464915155958697943434238965587617970656844254491162648445833826598261049450204164089194712282192983684703642154361877960278845885704623284118110698430637975474616349668009871953695347854421899100245455761726300925801559472356995559799847279280269881464620297735977229485847818915476348572029798717159587273999145778791203252384222288558165014605361443182684379408035917907182495481568717140845522233583888126754000261871357887286961415709020779285322748242839627856355086143271090972544294303628981236438072763760924458029772225702829738660575674532121215082390560229574531765146843836317374589778429062796433666482816434930139208521031894672158509240967848336199033054667236580611617797966724148518716580132628856400969218894670448983970655286593682603084250753714668080060197262210149493500557331549598471075436130952305775169236975681884011609422491809574451915353259057176772005203849979230996385612298883701554298956482341926119956777717738636075485157451675224142842309055985453676223220452356209164459458130177672610396640832412646501436483965166070045861581977500329900046480864795059344156086642009584542905973104111590623038370452111087053796475741614123970697191154458789035484617656451467411471848663486923702080437692172700525228626226023396268755757231907693712221460224365503794892297631240007425147982317968381067502830477388304754681982300865415453335154067579522384096454685902959146145923672144135992514708053128303538500011056212035620053164465676560917201332369498368569672048877097476225649467351118156570389958960102299225225411945722939914641328937206682537857493606932024565171582347230420642901181841245380351931761198236855550201026110440123574193110211905488855479740262503084967770041754370770293444394321648790564446064644256215072041605975226353408048265799965248290090803640251201452648139335893066546905024585404524650425385656902134500592441075715440564916972646689957305731890527701845485585902413799601618367098342589871250944117866009558029472999807530210322840868687924479802917363412749349705857125766805159622208324952006465318355273041343506149214879037527616302907535162320948114413316637796681398725600605001823181810467205066503692705445724983648270760134695088217584565339017056189802121651380131688372376291865352131071381941188593189855924783194139052527328435066039877979877545332019325250146993799895918594578759101170433906123478178557301911626151203615031291055541365777046664993400569724507317513774881739550569505818033616874303105173050950791375149271594024092690682545572750233221397008622763374693327404444110243031748592099174037560802037421615897185565559919856291404169503120185294745852382288608323675740106937404269616741741869502737604039812259745464360849811042568823732234904883164689147518960975750577238287776301065697550679876860406593819637879692414056542986240723505159816964770662941405463127532647364564459690786010001801545233658829660358273127434058019330026019703128120477656145930455729355953652877954272205862120460972429905361534174352861968106442463558133522336865592999988486987773091796716014430662811120282142261973945155726086490474984381479678441590586803093545927411325723485342551199222671884433414104658310083913370357877655434329190667764812474097530091657897877690021571162091477697255255740606900374086860575288031399095935063843137067899863766548744696573401640634229933326454523289691905386108457801838117857089213180824009789229681975485121545822024756211131443687480016802294153916548015882754260870508135802931443041870845733162410966974964868794563704739663441194554793421562290436769677253023342608106888096012186168327791309808931161486671373020178229001446315834349486037930738930671620732384031021062115590887283338424772256473441135620219708427908132128709429819164878284714496401341779526868968122128666393405162698422820370305140136513612144876106328914880576898175061777202418164322337836360590369529066239732703601444086843022619522744918492340961314062358263303083042084383623943941462670974893749726201967999013626828624846091011048648823837886860299792484422264088003164102654918349760113928485760166873092828486615486937563246725143298156675445202948133245522363060466520989198534848746198024066448491382441753500899249770228211650926890179960388136850994473292442998470685337767687917570655709068774029963448789460402997618666017951448146867320204296408150831316550714332628242921831184065176309669193373837539917773481749394339545975248639818878963197052085778478592561809686543314956668220692452403413197287901617086627683574771254270232013195223085849581383085482492040506217811375781200016909682636643404263015957794673209700433310240655006761478857131954457540946818933160801415006929862219081673552213429638244800264623690841584734153453749575369346667264643603571854866873709766794783291653144230672363382812646204772584421103290410238073694688359948496506662515170296022465600669120515954318296847038851036797576252027711560141292050866340947342714118277609977547231060387975166934908279731713329285610650606855469391964942368221313642726661668087122571211965760927402905378920742651388368302963705663933993475613272111282987770752958026246240100711649432182141579537827638267817317280218813682161079796235366931189506210997705423253985862239634356095612042231712710001966734134618049005755277866245527684952811270642434406883650425083694781884256459304895203491354852621411547920561844560384047652632465743550595948690014014658581736920501583078424062470209422828644490798897440948964463434525649129104497183743668977313045446270553538708952263546508726230784183232708232546146847558394656700495991333055576745765773856110711197635050982680944373002143466479463290182515106601923034254113119415217025518788167410709860019535804519953880399695883642109275611367818558130521246936841778331219035088791149019781773281071497970272890085495598626802846799726601689145008302454919915691227233626763437359628270198887488593316559553653102054156632852645511199409811767265616208956769081951057286334105088116330875719307668970751946620842732709714103919036322824196818490181535053603382105166970609833091156907490488610841667318432067178771768376364663726243003034866128847796078835983163899836985838209467572520557901042558786304479938746363445298002106202821837166077804254624072225101903048537698946333711795019440584098758673138115160667889704695244908639767494876827217100078269104769956848943114826282735022807208069719705632657492505968388452936448147965064909118654391431193693555843477633077044314551137351247209424746092028395750141618620954619197785180637596336729421389405097312832794082516353782020764092861670963298173642618528932138961262633177930744842115244363526548804683994233682955395114634541566481518443827168341768396464198137902982296218905680939458640040720262847581936680680235321016235891486254304662368016232043864982584753477324580644451842834067499730838435605852914033043532983027260224885718064594448049019224620034170055149008088405573840391585358458102058902906720284448837015152582027220672647406588232205530868884414212799447046918144566014023286192756953856275663584266852693206704477833214486945104942708785014479671472010688212621603272580388634925714246673826497806612372207170235815285244940820064607654299000373509696228368372477981670043788398799949567571839918604657935498932140264102173045695930719191990892060857176044745738503072937696925839894738832124515245681565649466340864379377774487848625653242428895741718576757868822699482547322080653695440955261128838106489604695813404860543996030897672712569111003108669526051774081594269156386840126751637450079328922825209724791847437740141867277435665177480214623258435458206486583360376033860261184097863491986946913605267598523935643909373086155178942794746173410961798090861712798576157114024342365614055439976400778451364102215899560381904440463302906156909506155020522806650535607479342939856304128972519007552333662270149124717510675770716668177371935052425982529161048595588028145170964077734817102361408546129324414925579152229560755180236385023597446794911699946174423372898061768933281448058288498529696173682477474548344934723346867611507876820416171354242083181734902286645318531287495559211731366152296179400043699274848588195211087227614710166699782455922929671220874940336125715749651323999908842894280224512472195082020667647539024895431568264400270729736318882880480861036694682491865278494583882391111540531395411796682308989392604072179580234319416835891316526891847528676191408016392531881909672249374766478941456377671469626855391723544825526664885693215325907193159765248070247820448961076495980269215481992427007565285536069188192434693004239097726891689631856823493675873858175780338370317938125320200818547836109882105005116662443202665935512068917997243655546465544949550793427083940632047694349105558264385630147081482840472952440523288175652138910558899478369771555213755847638467489393153275483495741897522564848830993944452812371768655330150973225878552825236350737231855914038233925970501939661094989149893623500972127435274817048403066094757798008803968967681452026957629587714473911003516466212296515750410134593892207593136211778503509318775000558994227044307320332645494648845645627825170032753803170506399685891747617399483949186592173083718579286980866120109180114064562488127778997060330431815992457084236016589948947060601877853257014941982727223364337301614072983128120034632397257482851451132296306891246056628824711601012813988675093406710111200147112492818172122662105759990721485346208228684982595144863605805029750001749254223801922087700418036897836957947002461022856494216501947549149821978271404969651967173491034490508720716528032808732346032108682873715644409719508480618764481488496657942195408697196088580278358474742896427634905530526293311452170642298957559443212433638381796576857555661626937131970033934647670413206701982526615427971466750275284696523389187831070933516187237750845100486300619649340321646995861287526069949561248885987668969780677124745982625339809643909895096594622852819215572041892160346261383796860520069625832156527222383666948525399725609169566887535324386191848938718854357512675250950147181159891136401672535595238902871655880343926245247246718429045111221361722203818323004526189770450704565070887099885696039548746752792165333200784486236056336543344971589334212616183745694677323115243730425641403255774556652806291057870508994535935474452443930556200547526052453561763181977890011461698830107274606355337422955932625080764131484842601000996245098833408966647383937532376155529491545331777825898064518397468310244052430498940365116633267278794098314606277780774131893451719853900315359612888492664140458976990996122580910544926424297200400659056619461553714169500452053311391340711696011478468507096161605466412869591221860256710952908242905987959373327992019956470541684877076200153767077389831333701088628621251550604168198738662488280707623196010333806344046974675777043264771725171753755971780473203870429957966540143992088883155432563456771610009119813868339301926491601689395162553746716688391213831349959008083426456346472394580304244994788306962051690499537434971670995252278927392911072803260822674997551720851868092807905360479011327373691204173037403816862507075853830606626238620099818423107312836190910882784906177354056540507827856293464887647547825747994787596870321952569946992404024383614922781316665606423609835861144982850461832442577957344592637079151936108566758777674642228315911500534056403048771814945379827197196048833560555042392260647861405893424487274681988642914908970465088212517334976792132291437273832660298185327288279689976283142381517360163646473140174356179062145179317393000743334890235371442443566931351081525259183277959195736806100110263433876753551257263877433484131015988958412777899313248741191664973021731227256841154919713236147389298576403908703509868849304361094995481761827178129584152395358412466456727188315762623406782222303844543646704047781260497885655361666756376302264940540401347070037155841005920896728206217744572434331492974689154387343901229214342801518672453077615664250143387928754798489863364557300468874857768537115881341741700072229543279456369366257635080213449168722140305318887945727364196162768984547912952034577914243440725786156491979245629485357124536215159071138624624957705854957973748951560572885649097921420003328286864725733595994097426577425792698206728767900396006111879077567117272455362561693665634155477662607398358863268950730850844551227670232667795876950272671034095557866200614694976415009257758109709937394272771569049437432993535721760287628124966062021840231936795275046784139758001850852944495815181686139357056817179205089690441307363714641858215914084144304836434959671804487663509978913427644542550551615977214120798399470011998955503248335270725279405913742325496076597473257049209559480044171732577365340301571119777411719063916588760511919869829075710847247076109863448606163307683692432270226367644895010616483806384723120864022247892969628690267794329839468333211399800808178922072070925429907191075044162084479277756131947561193436143599293529454852194684451257057796695493037889247601826205704113138969576236677363859362362709327235825277332199388369987306384101574896924598349825535422220718020873855824867698361168494482999643881624816205064312658107405989642277080450859370666040092834894959143567116605383827232942499999325875313411940343698756914237890119643159626815507178066886946262512057280872353965416766250140299827483110742092078298077220180087909206405476056970206771899886301418577239659050934444007543439127857040912362143518520956584323719840256930295779798930349040048507058361216999076546427710957892737165582847346318841993200266317109257233507499146029313320751911244306750427068370171315129104872186993051793385606866027342318699208622707558739516015634190446483470754311856169430262275379773798087492343927455161399114372528456612212798140617649411310888138247008517311175113468800369077326917588163728173499140852675978460419714573702385171479227692786914220151123778783001445081144718484504910012123173252973359615360718660414608026540408645144380330545420926132536147036702311403073961547528869023763296728010446833383454416058035790499607954563089143592699905013777265678217194982751072006735914827858916549787096506562557345368388288564456312504516973314344393010118763493388702941157240226990107340473155572811233686113429923225436502683532273800837016215777201863871383281181067664415638709077343869311921007169839170563225399577600647269065480362235652208431178598938199916873458588073527504623369683085721267843324814424877298006766076779548652189331731980567260504508839729293441052642980275790350762503734837067354902260612203495807940186157705754949713067399591054647697438469857164962192433214941308752628509014185236797557731020917859075542144646802263556497146990505143248225181196031876624034090302201801170220302131457154806769503339648733082090761028746609735696770772597357951027283088975402184415747401770332311811095794186799996810401356260856044154548930111190586421749265834053085958606673296263492191360227635306019167553488410436677256378030855577867646164651850635072953366638464252590299640351694211513445772932228686220244342373719124540566731629865512311642527015932006671149492606442007265218549773354423494941064088746830261875836502665273415740942710102517390324037043960896787205799095593843113028734665462186147907985953400613108603728834574693441365388813036514054140792026210860160312474417254981869887565165981415383187067617447423300015874118472553243803214314478103050648689854598439080504168976006141899723575271937959044952572168491012550993756915912509634398440765686779431088596508721987547520781741441740197476811400107778647232379565432843300782532282385021283330427749271316144756535288483550256936342270860683099281629505434275662090604766008455809744164860255086257916189886081950891911505903324015958933777840057462628290010066391081438112808334736623518376490351832988130354580647602927526117064781496098041906692406222959630728679122962933829627172836176925281565206152772776513493219648067249392400452472020213018117028806405546206983537577448629049827316045153539968996873360752969473821783894976180016973988491871820996520971874261564909150143480093858555190841882971769543878159042669171857455211663369051223452919629911582391306506631685501836204386464083226267952676594117151672108699516788244844875103718580546297078146688870601947769162946748312276774738876438951728996847282931512341426180496060424656453433064603544032776529575788900694956214199364704445370059646387006093784615692330668528122753721460752782139093675154452497203572033065717117401939718539375468023146666292250145777278286187674903853047615568406408157870192408755362788929877779059581499676706735249727233885001715418238461123665557186076012208834461620208330167356681174053993276275360637801164287897339215529772212974972992983157115235327152825124472573164155734254588885838454550235223997559079041572699881680170830468628594601120174101792116415573522035898527597509586409605024737971033016812448104664177444187486653194924397901673948178456500953038694616943578283602515146115284645491556952095139033585476821397589257345930554052811177653328502943977573778538788563281606237152169215217884752241828576614887965855066885536698576845082664504845333908337652038427877982974541957591718753121423347466382937982731040603602483648624471408565257376256520733433386428743269211452209857941313567648766743231577086857668486059172961520910904146737687464080674971344105102290411889467331826155621664678663289561826470298480844212257856288965193238905518061154776842307340024330503473415214145347835144941215332403275951840752306802286637874189946266280711004272743827998363082787004214529429971342955526223474946583173199541413676188883076773230191210579595338766059432315849092660824630226596953587026573071016190265302123279125266662636291269807124638764855696615984416211058175426971141137614679874140508162966248679330601733245458616788077477952211416164680160096392331612673888387514875623823767519063733130235310283243406846806984312476975828332165807938613983126279492799325411738470288485014554864033737389856521878952171143556264669391281099215639925855863652342299726948153761575031786915943571796373845592044310689406905012360663595902328789681550559368594573117201360955774248335333888429465594037617658281259358480637097590006642261633712992599679476133314346991816666439964027896729488256570923205926390537800150368611490509348859265275005785755365595346472458164649566127174708233537521979385483396181798286514213908155047331361095435901119788429526821837427305221594557568242646679345322048332014974584578859019926144530402355378613604427164703444858146826637473694462968245221616076668610379686673383893463983508809719366965162905558210714028133534810695561277014328028465049975668391554484523400775048011798785859918673340205073515198591391506275519696865331407491696757714421836411338536728080358638701386920002827234332877513394386354684574076471710562972414845705774709539185212639928765608104520310152704916580934709229195414239777704523289918633777627412405622350729452132787701694331092597472320913183197482624398947943504036384225097978193818058218419823509684526091986686249460539767544749045076079215604635415312385982682759927112353492363843976373356903907001711110550707665657847074787528145943061164794486484723331733263676195871346255756016523112839018650193705079924712206337652847767332595843041236728169741697975070649239805927753445954674265282716770844913811818285806179307130383955659624664974573086366411927213957156964862780946264100047583474693389980636490906127027383501128133504684843964248829934285971872753760931793307853646236255655993926507362459117265123984545312055571722483040191837495034125368194046224278963185989340175112785264101558821390256423528727063918531852510012747727618613256896718940345846665382865588210956529474079168872201102780098136136775034179488882226530306920040676942879508021777532814601611112056554504817228184518469882073720755944381280389799796281182855324098174197098949836365077494320721779742278613552678897487055287091186721394463017353061549638849925607191809256536599372361590131118822676907000851102418976203162285840881977387151809037767507498487174501165852939773072000495339295206410593173707825512629460146121623373554174349955273688109214740077159054986511245170853763901061075150056432880139437816714132832018284784528656541518558843258589207046236831465608457336157544665225286345737327605697615387556656238713291553977191067038195583719110389342123197330071314834486448199020071567489290695004923672143276707989730710217974950253872848383912753472718513873164777111585208172537870795837934976753158534300900123592734627062391536659253175698578282388943222806698472246244156695467909262061523278986876053201329914036276903105698982635481099905235792478394427002318347506097743410686471138707822089302499375361150707379954201808179965190161635049899076936592154526541353406231321167311883237117366623399347671064880412434483692732207974291791453683623417960822892833893936870965803124541598275792446513288569583014357971826565060520419272482479958199896357870538673878444724593028991869365053653300228014228740706331546794096048705965280927644365139121654320983813073133027927113086371261445478295747972221511294702944183017344726840272978868415679598630967377216505490585426566490171263211115135168546448330372862330737959897674688275332826813116379131883833414025969340717568858905115867326832876873119337334039895661974356673688503899831782782401327294610795751549712594944538825401291378376453096387144932946600826352187273819348864885833731082777524088941720083593970792545005387019101045178569466567148417507461174970140484231156859941245793888977456471336498283892229266288748569542031771986402039259499808610893564116887294366250687783141432944388970499638326350521113353397958738873580831128242312326813748753229136362396630302663033426221026964324300167756896066669607552969947875462517977055734494554733866468344268350256940320722879250448462423993414065316491412984283490611126538584040605360755393926232672060962311174232472857522320984537803919248796199578187810397161850735025788095762930068044436088613330696094556297385402729757118677057869345827551578956035944977948405968541877804759433389201170751091518285331131702228798530399220745459112387203570962204511482620101339153487475859051441517423383295550616807883509585291060424875795632735348452491978832042398855924468000126223309285520837743235536874606591477487783388996603932931133589544059600429792413348932119945900135234095277284644515092249371438678113093802596087419622915065615260470918528905825521260807942456337631749638756304127973768000670761105903737344764835009829724712930489741493665035997042392594356271535541236841736496273231460326350424589567341300542713228599658482325718271593152226595572024857491706514163949990069357177521755780886829107654509677367794802558321778522408037910529276036702835520322473121100548128780330243963412567624050797789978095816241242731269495231831780576234255164577158285781056706066775477919575237145537495475581243631505009292960586876923977416677503798954557600812089513880484715163215918261747981019371441252585428968775251956961267817600707035173368922531762079379495842800810065155701366567806441328500072163051778151904599623615705480064523354917177524167101396962743754600316171446895580766401477742254387799698868248207339039556271636408515980555987516568767473267063774133749738225281764572888377266198998537477226804306491392504133047334507783170857123027305211153767199809178764178224717097344792868901167254810518778686112603284543113117354959783952410437187370044549988128250556307678551508535595115776448536048085024066816954392758456565427979912167158883120552921759750488912095959404286085516998627455814444906419315807605552448172468857296067555096759497689040690205304814038221712077570432822882158303240200443513380087027700844106404322508859119248477001673968328834308170398997400946995055629278509455193774199263368148295770773860805291356867953074876441004573674830271253265933930898114002136167406611969885713355202799906031118618859529331569091521646824110327671574679492550302086228871641414225032502699090639309744926598625573129001022748715439510255676441491464250939779454123809179181962250031457189259341952148086533236516838651690154424822541474991552400942603706998682937917171780511276874922370669098076719805781519517218496216739117933392152166131600845383028675008421709174182891239170126262994067719843178866799870920102406584656933254742628474609784367613753501278348607408620132227897407826391418894849011887117345723144564430876519020268127708644375436858395179913243064540371614472735142028711159384694110428008143334765375790157476572799957066733170603213779614866883551599742898478785268858765908276973385728260331478791613555979814720023943570709004423849945299939577021743875711305175577703046647476789410877660047301185469887973447535136197996063880671714786442074086293667788650658723127602377508012907553435769839230826183098837361946730351869460590811400809486690558398185747378892212595889721398074704152700495622378409566177040397083406201426888915061104310248872960372080235344524074851475462687418242707169525087132836992778267063385829914449665742456505411280508576350350054207449022701940101657868919912126315648689479327029811017371764336347070630256275772348166664098887126575736716420133574346632570022789626844821414942095866938782489256790867043860549002404611166284451699308763610225754273878641749863941246940396563649021886443364189219880364738180458467178300622528405026578404696148473363051290275844493964287439384474133253417684004137659367152210351272363032542374728427389185048801195212910899618073227704681625753350861543800461442961102961037155925536873423012766867096802079983228203054599503997348049821169539457671536886949322023756387441158610248775358240336344840028034803707759017672409202592994097898881690605653616660199957245902805044499977334233571837782099943678080917121421510691221821883069198573048012991361321995492753824594732726549316836738029181405464453429937588182547323155346075040236249626194699203194603876990854251496420661527443812319792381371202920071323108925070254688865153256982299304354063600260334914944860272500838750823075434974098904981566422815362484557087881242770723571162169776068758587923423780928591773437251510942957163684951100009046767817126207931358733071291548799729604779878403850171391388286706320413161694675233793533688483059078379071272049466551246396891384194407683221697988276117736210706959874071736914028893453234234780420226238049313802308959492839334227012616347701117665525308004521025718764645955817738632859918548849891186846837623958285503343897420538588242434287711221877734351354595093945277707208218285740863365333444052961595085765965358542569035196862126700212098438636413757318137785682646713913583931170278375490393811031763426780696528513926746806835514230785372926962271840098292632252958489719527736215995716679158317070929753562211953291044632820605858172807808558620028250893405477684577279727252989350905071004249186760776355486165878653471793106873720278318269841838019580918320900219532296407717397189296122071776551600723541236689459735999027435066121066584317114764483523859856811051876414510179170205646697562665005764861429737714843406110019867757694494198158868056183663844538491341158613037360448995706882577951268867546541859985743484563449496296425158123598949859082462037496526562942535715641707333085301694906695688413422860373215836452416607173390874610655552864805213835340569581631503867480134028806223702624472623169956074580913767236745660933121584975021084968294009848620080873119821013831850605047143133518403784587473396241981661112061358889817443719384457850556257619640442575752591287579173185643369814606311084019690013315952364044973194917199455168095428835518658407560620825777132731793249753818883964793735677998959517711837172464179810052683334280188716052614344457566371328234942460297225331091568140749301235339041623028026380541879581396954149140114061635304887798359893322843892332049657997489744697943944242007393141360461373675033278328277737563236577685115718545532421287492906046340606000485145299442149427712869496819098379835028870745187427331389601367199663720555786171086803296170119071242537143871596088465863834214348082732513659190608734781578264247197556858093614109638510883569449178144538466940702587984979888639055176884084055938801392007700111890668786406145362222316631431171151988055355824315354894349192970261343136026294631736175403730476630819170049925086043524897269765446038361476188324586965366511723658682712316644016688151777846821694565297617864996597844741301198896231861625265460565771553383406775905242449395428601686472071230948050341122430889410619567348077500783364813509192946741696938940840399535618914255416941070377845871803123479857178096742389143409457506836759626166338184525365488678638204800859349399190847472300886606787736802449361469538542966908129393250346096539692579890135560241202718768504789507375758720891937611081392156991931881951105907954953571072568101982656815912086747287444219156858949042701253032200194908335433177782226391379782977294513523139970269263954678997433432824604287149802647506565339150607107835575439989121304671392400145496485942498783714483267142122286785288407045096823875059596122910991155356232914387793036722803774314612605800654658565120855516128816345807346996243648719566163942220161159148538973797527611903184353387720173934384549624953143681385808060604327090623656476996316139875555919170250541709938545633180275073331050543310964108116932846947240556146452928862860234222999351651584041091003391061621010571919447966749359609282008420630349198380627169255332420392348990586202727542361904001893459237016373606546557711407979466264961698525114600427092770966256259309652926146841707980153164613239882415048073077393580845804087704200504372904361920585751557486672788180328810868937126150519838885811049510402987346323339927415470257270220480811686539402064790173694009547496881769518492414039607345427657703953221208713479950456722533861372924346698771779494306435187221887988958846257154328707091917974939580083401660390932359459438799264423282949020414044236928085623879313949902970845725131039857772440866023915440938030424809769187563633467190532915680871558519568473603859687627041927436779054451505643222145943239498272378177090358487130902293533528177080972524503514240930260793043644211653903737994096982036974609424168934283915970622984575532690895440444076267998802900789630291376740712818738527403301335600001512647208404093490570471158582114321978258405786738594515097783316915853863726226368575058291549057684620810777787058745930913853469766815894479790262120470236651322620758931345030226748584361389684619313041507967556990987298698668951315499382464963860811408954832817171284930463139262429231938972877364731081268985004278941270021591995936392260135159011592122289542384604384796465432215327974308810871854933183668662130408595272850179238616846456027924407488857059975926933139050629480970462865792968670887679406602004253081030806306320443196675510712619137594685054847695093023802011079967095712087570069250179145949230020493164238220809636243840548344776150308079767797489045697577692062920017731711546813779475006129934422280583837464465921479230410055489237877446334145523757738070957895827407432341487721363438473277492595639915822597062810126161588711003863915862764245574570455117318313392503855498587986947655779791589134181655311441135944043984873090310646754012086109324653383763570208226284148783312585456216247161733122938164954881294210623975895789845212524967887448381407923167917083584401560742162933553036346814801105478993515071968918602016955535181764129410473764704141939330201928530310272266555036805515874292916882490344613600936167137842843417265537730758781356211315997402322005889525016789476869765550342301335891704479923688071870942980607569292853865053510778390323332278409522227986805367591949056518827219609627609352302403773471408991721150433198467286693357357450496458097556341458679495813702341279588312761865914275289496907138036537839199098194924331085168713419639499286838496079027246429053150363972776359092712238677043421760188992140627067414491063852840617980669421039577796130578973105935705665711964724767827113010769087885018622918778649072849973182225833733416755420022926121107602608204303013221948433630706758352895109174268077071335922123196358583031074229677705982184862917771334946476214565041988329847127346465451722177725146210657451349933828997787498520573858808901139178631536379314743699176560003043692931180607708853444592063398062269349830049746909499335299975472257249259468069974404126156985875498396561863205373983833655881233133881922953120585176711656398240975734193701802301118604043327031820125560139026691644048544086247306173740499392534760957643594075962596324364043819744214275277978656253023309165749963389118411376219376670646282416852909351537785288496213674437292593926314460030123986094448642172976618810227213108539940207601291055038139166699461440974425772604525695859718416744602042661604587101030106751639834707566281130302143912290566843063826785646017876300875795193438837753355405521970105731066954581634366075995227271666910424392015363354967062197605816287329439562304925409668936882873921122730292058346196227359163159613082145175844584176148255279569519784110315458920605877551883230074587002262883403591864861466889784434309159508350312918157000521199107042274957944047738173384066799627830253929046002383575359716832061668379283880685871834589623600817371800114849819590622923522590162002104974292124215716636953923220445000522216392663532239254780567198944431222496236626138491540236045878468635018855439960884546882582945464798872480163665281918405405458435855406817927493471395462049077643209727638744473979027408217472647544498155622063315463357726949193998414004769675193727824398077160668797171674515593544566027222834439716990333638112920772122425807061117003786089903476586989779834052538056405384406627177796154547577740207909916031995100176618881232244577289664700915787035916261465870862664820678890285232771952590772571907691688299828157720814564743378845611704002725724892529256846538904814037664950203608552651237970764957292637536231519090245241067823230287731556757111636568513848151133412709952216738587494646584997515584575180020659295614545067548084027696326008067235055371321107126509925669870382507841227129606705875913251868578728911682940827628362471163209203653538209099535007744098693078249732470050582448986739685295015086604347242217695499757227857585853483060007008329631111772085591941929302022443451984044774415736494524455175158932313046319627739533660551366691538285523651884194517556633015941896269405570134143327415684157475099446132514340312431189687740015245403557156396547850377454548241267335306063044696533276728606127672509034916417898025242338377192552727953725302839072350403049120484103259354643836958923938909145630800598917910313319164088942721198443774863714486954795490568869642117876081539208834426782106303001621982649133877379636824969144857871458056467554337490463823404993610782713923270323142401949453985931536606726893800650349909703537986351214462910462335285589004025790699685810480533039875464578779371753751773956008520597324221846202666365807877086104891066395019960621095223017235986431554964266141034723016558968360191823174435225756803205497917344048303099511067524713136977162834803539716038657623890746703398653088763190805112787868890494689750001444586957219574399524403671157706088804125517201389940379590181462780310824730511359369394874749884585535301416942359140725905656402453856522657005281162584379307382858561613414030718175022019622617937641399187926488898290546560628083738691951769431209028428702335512210497125370179852602137092246542102042152014495102265844644263070851978343929426953707050143281729335109904938513123043083615605305388040656708130754236482911555749858668927462670711491216185985308364172957511144964174299674260880453244934791326000776771284475450357097707558663984837345462607643170555425060370869510593344729072748346258630937812255396966692306675846896421333839979242044718591864921468060117135993440484498343963862728879380030983402901096581458325615685839442006844717552079497307639430382764266837944119280713190280711072812754695740533676333671016337616244296427315459970954311779438361451210673855669776087481421273413611121517785045144104341972653055195916539469457200842051467742721949827112482470665515423612009531473102824346698820133118654407159972841601760525591783667516974661581750173193745786843412485130281224318578946167061573083212191792062215542870416234631135703696360174975714746102582262956578298702923266240129060313451037475788967334582386666844843336295520071359398518446982697144789783096623373252361770770754227013112023354093365284669049144803155618560815864754193725587451353220813045520686287888433892414870905047774334616159535796377090757566654892996819095774627275124439031908011872346415119551959459200834305828552640834579361726373166874449106417903540957882838292178110272419128494054353814060269457072810481572090490901184157632744678619840404189343799168893567538099964591080787676727829560725712933968837859924009570031005917987042443331925660459935655183326221841978170967598905494186183812557404975045125183473522868156950880471016991501038228203036634654486893659446372269472012903104221097627735145609159711632476289022651347539240328119489040666516557453769362487217223665735763552061830751911655558018564018231228498532220691071062802409757076685999007870843223375408941708104358026318544179117725191212927333542085522187522291711389052496504595545026447386459849210108183171271297242167720792848419275671128160563521927038556004089472800413156073341844435126228627246854617238032491690022830909090738552439373273076515289467134647312689717247114722836295272313984116868480903496965009523969538108626263068551611424233801710512288304608378460721811300710233700305321160789707041319251385943135928109142776483343010057789801130029076993816701586987803310825540933819832886273384053962059740808346196737202669797518393876459889463623169961103553060080151540799457599198213170411325844527550511861442822464010072904993352997966756697364880365645381728205850953630083391669420324237004128911539205586425234153709400617574016911072514597453152414483344271297755936871499526071696272154171197979115673611448318163390124155186674654079635034367740179020022360703539288723306671149721820860349626991969838493403964135112062599763934441091891547265734018819255296878366059216060515523889287008083468911266509625434510365301626980139522618064330204681763902555761402761038749966843831038768164055260036337354302155879030669044833374910937669701597299572656254875771563012732593677106602558151202022264876749066343588201813018284915577796688184829245883209449033490306461322751918269313067204130528071936745240942825377113094184201747962775777111681488671767370151077341804654123778058255516322879183525683591111000963350740119005359289783731209635504747425690850474516338151860280600050410710462335996879673545905198452192323009979368805920586886792906321287602373151287622111570831386136095591761849590701848267200085285792959981241825799461997151077654242553560309965663466568661601137557488662545928511994746728102588627628867083324662416214161832203703271262435572535239533481858408318046215908518428617676986225354409704854809405084848987492510678678091222141040586868019056569889109014968702780248845982114475698569178617015988729362689504365450361432578481307023340007610064431514586769441486552292306235828812002201100549642380743584760682345697665277880262355899394562032647119986487120823090321823193633896628994547847561261119209032641265421474692777562170185852024543307438034651833890417401157320106963236331204502234814323841895698182731913467272124128551052596156217682464446858811905093345766019490577869790437965975346019907748976643031660157124560845741472728146544994644172941294014940246475497689967726781484988751959712794305456703405103513077570660466334158635131181620139600093280049712170562175896584170767156531638312099726342762534517546418578527681361783526270998999286791359604229938333816209304920276289939337400035555927551474322851126355814892977061064630318149142888040740346301314039913378133168673753318444000354240812135452750135725125259119527842643332965289281326672150262206186546768967642423097463616575172180245960141746141433789966218990706130006455843949099284956147595991642072496485127279074544890521903822001433245392739575263397793166686741796054524123389538107469805148722489285796261475473849433682160858545365202907043853443886866064581107738738549412190407289384445574208363405275679164102151496546749599377833607590791752151949997421363489969027360672173070124709240636817223593640918258164228000643625648692818226496094187492766674060108810273383230270083525522803536347270052423846374735768659236939333580033988753605531111346243396890977900379400230589401180438806583077147167149380324814401751022213610757231966173145915548939797636052169923934037063712970683195710868543419187412233082465065980108203991895172633368505059268009215229364274873877484747609192489265413192210129877944461002089498863321901721299614401315124432699692852441891066316529709648364040072514605035974844346038221129985779206764338638139892096097479091958889431696861391487145010197351573885916781959150529326160614820134599841098721656440938052006105131043039731452037155390046964303551030529733099887552371233221297798272222233659442433491189059631459510102819900279965734344494284939565142929053627673694114623492428061940654825304852794584027330482165013376721879120446603013526796176664353130378266781569425832772010762847517389417197123143286518974156430813053608430390131650279920861457229116285099008035842396675208256538587474645724827881027802704721857202142324199585865232217589186952081126447905817301446643426305240481433373523643773055672247740719028901301597501037498771732970253109073691586321056025662709888381168938334568390031540486153240100611137143601123936745993562529811928452664840279095516002111836644170581478934453476833440744375583952216591374448125208539876936438719348795979158716543749181567003215338786957110000043098811303242600153026358954992118850332277636319202806623475621524010552291650732469200670834202991672026040227118144975198250288019262419173350663018145134513225640492781531994321827110561754816473721339801695442643498330122188271579033394762109679429390411683792217307037031857257747720778633320138846476461889737430652593822423844344039949027385860497767306768430418959616090093345082738571846707433595753746158198978470993351029596919720942843625056940485060861266351518301958881037731603286736513651119464578773342743298458195218230391615744642903546764487587072741097006761550780676894562408106884441912283467916605321993727682288913876922407445955655224150180680991342231989317609423071643322435625906708088204092380611110768569380371462399561604936273720138805677343317125838103467899851528695068386829788591332161586584109047776958201365579209916205806066229395652321670053488800260762775993376378744188123454646200885776905598325585151344337918062436845572690250789765954623305919667348093304214048310285695288001793639458617470936005352421103928745838693044966661104716518817861219736893377590896848574709130919541499017683513919497470356115285303628617996997789326372348319155923811936064647223918999365997293976495785167047103907750106316737606308831175241431091304002998295714340307078976230355365819892823948529846516508708346912335560255581657261304198213109388322925881997288914282895073225561707017937183312202002260434116585372927300018078709086993252347030580282512999825733777035852107367930671220748652944875071295437414650126162919447564857516689312845396157070072777979631103815630397573087966743607641277761601000010947659327576818620049733999276529807620459424875703614546377163711924680286722569783092692531340523566376691762354351297412836172886384460837473843392836696340924226808681764827474504303218688745269779106613823057860087140036475851530759592497582133382787127228620745039288648593077861755260898687072937416178484101346637508919154326905035906528699560035835187596776596368719155591611439615923739793906864384802543105275395344571334398451590493881886625555523755098802214267038769327271712475790691155061574369794998207063812953831105964394857291855588608167838408729360657250382169351938335390847803184215802102206526835579599893166348589379714184624056218069486683084576701083697291200827400832708761455279659887526292719132150560462528244117856662887153681297445348912409646304070026617622848134236630897536092187237562024795619200318775561524354171115587015111745757614637503444620088715257261899253829552235541497672089901254390731789236628427831900941720238836383130567677744162387157152512400061399254386519921592977558049932285181493196565579514226018809097132959580280758292808498944622796553099960199797814801076643086090717280245692246683587519923795622492132115394229137735992458915037626866420667889056133364858791048243175231162854543198223444203018690861326284555809359393466747494549762947531527869480249276137671831790596200514406726968129347035326267300838048975354662821986734431446418680654739405033768782157616993025488458867719360375270920496902996795786125467814635887583128483170804188321771381596813444264942795483585459889442303122679910538242433651853949332933721713846041350892787595448259376970278532367254535463607100602886314975536050419820063371792621581852508414279467551083209923722176703192822327852215593006564399720855566933941978153760050191955881994241918418570625884938206411829024788706949310329159051425659500500588106137710392010693508991223125300249451862537662756900099125869729348408057881177176507801721789338018491532775702794355274681413479702838107936890347857489707324027996716264595960473704651228721794248748984059012146087453882881501803574708557606147462985035044824951120681673815898778691350268398773819993284624372886316221060694785810907705814872158120827107279001343549012438192112900835510078609594827725947183815731843187102081794150575988205575067484447828606371513168035447685618841978295604691097439058239146936172173734439786388965831636040105263615483998012527912723823056171953218221388981937228410213776258726457755424081224807536419815649974128093743865567070450291960460100595189443793988271409392210669441669871095273677730527687612574371961964486183953837478860717270229204276191302985695903810018918070096286132389836764382014628451950936132497547063065207264733461973117610156505133130865242278462026916084348640805210037808426268245624894108231863074875137755363912813981850385460161147235135910764721550943175636690949631602414125594948023543124363752519909456036157493615535588284593975119324568354917302437079738509417324893688723890987261118936477778341945153011763953924198299570936739193031524003595418766467645182013228854557213394067399520535500176388969187482266581552636421986201262873118683358132006790594987461199141137522360585914240947425236093683430740949898477928775672398740600268939041541371058059473199794834532697338545839273399791409462951199476174354861582189232598831916473810686708432696648782846631533135164217550231888429832526187663846779219141251140397427936881694175172649081046461030039701230675648719588424599968951101178482070780936385949091080115895327952540494405397335789659380524976145440866135050704388663789228141365620624400648594957108560776370999294882723567694223383518542602867471527528380267493805484668147692247677400058020082494657740981598205022883710139490784479400928881441234388290104854233895576573435478638920897267783916922041281909584243815978230455188580609078807311207883223268531066241601334037998921534660517869393015638805596928718680169863546234207906573315247163652498679231106819746314782103725551197950332303994293610235761499927557193249147458293419351351260252878639667794370017110535273111957878892285720142292701194422229267681596414637827761955340837395391429615010738955096730232219549305150829745960268141605275413231155976797907167078138404167128449604003995715272410834021434760925188398771770106999415377582879252463546868044356582843191702632667877737720967852244515562049550093571868205771866658529020583894823169989768835215017179458959298153355451668994645434000608039575722129394660879590082256031242875843017418632200073410448568167600889386790671280808920826592418953079050496036937327606329689655846517152520036006345572661780827530948237254897885708912811318313741152009147337261221214957704951459379560325334427425577041800720562477670390652956009987241020101294588294023338348734293729525909978152846044963014614678543881262151079123232149692762851678563271217655706521959443111769989464489944464369357661606377508036482080537155032414306510680054673970950391911753406808673001850683977441776011329464069459354833259210097128243587620847539003169966956470380248187416716736609719292479242064970690495769122386654669996645357586684811686772589017655653946718318205233665333403427588725884892832653241990031781171590496936718517559093553841303819188050108850041629641988453862378725326000422802415903372970867681717974889172022685068198791384465820355281290904796604028026495667611763853460572543746673932165130945994829029979981476760985670347485699662205831163671120530088562773536301226729732454352043104766031162156717370368208628368036753550406240208120258500785676637886823660025558819413900090505167009812195864542290335892049276318637211625341071541758261942804479268654256054145389985227597779968633811360796026601855580465323493628706231704451023512878464304077303577627051919978901774398521498611435671956547252943814024995743982245683008225192340819030546830102471662219833458709876093506664388135113341932172695665239799179287478264654264150929739669924003230747556234760987212427959713917543944748192989965472965364468735994476558794248792030045512655907634586415032467189629487635001057821647691677268385251814291832081650841849665875336339968768295218424107826397911661836003337111098068495085369060557568365119505076317468700727992647257886335861392279344426394193334569973371502477252802846692120666053305495293619723395046049308628907896113455993252142647191675637063570815840943038382993541224997430482231026438568703560447646443747024435448119771097352789456211813069053715733426445310477843602806195009841368552225502877033425478459587101572373192281836895415833750794991098589295254303741498453682755351697916196410321679748061915948975490516232545650303973488563368116534899563232022096280234781543248188991572660516551218476980802104999300829139675699260506665781098749886248166606098234220531140947354542026019155781803717359707130367939103339201400068090688444676645516437711687642754450973065502077089338317749142852817697312653453351676959955745072177908183803183801008378790647035657842694572267132084332618919956555017004429756512709932866642963522346273774891152891873422957494181444233406242361871718919464201611557155105072780112169749012433318234416860527071548378503694875512938285008563209429401765993654083081850114481226928707966009966676898526680400957342940772370209404576500043582544079397159491339558659174464070916477456886997232999424620579653630768754733363729675929213754188831762634954926323714673746275144917645686251351331159736548430994127313872114835529614545136569338584685082194290016889700644094185641841747304719437401668911288973413735434347629326718289144030094272024588721889885829701386084925586439315471567671644857876704047744490900641105465636587611653730387622161045818287978486079708906111574867434645763800099847212924882473388857713664973756180790539624285376289923472339423520924807528320229086663851542282818051433300027350775825612905898825132492015661742593337050959014546348233066404055066485971218320240934073066417655320626870449289039424372151446556041272995351235368934629496580075224173645211985529775065795458065750784202638465406739251273358122805633691819569503513204747171696854415975296108382076127627404072604576181303356015793741285179186177843181336818230497135150402915563880930289686976029786578297123244820054519259590093738875811833708485255843692304396210605732993548693136416065249822519272159192415721964258260262020446205873722395919462445032421511455477406471063266584750827950526780107475530910903253943078045942724075334555239473726521967755293299575747342754672676018029664377857237560547357659203842257400425871838699770798089700358147592799589004771197617174392661371125467269668649205527840065058317719624763801112413576806229826160980149334503219690571553830564659170519216331260754838674921829520227223320553924737046294766718365982414972409128267248488736515232261783200556527630838555317144203218358198519350830507781806361453224598049628254640756709797561611088566453774797960091339154599738721004095737263984220946956589273105347604403232703430529371108852488615824563253833501675021394632087479075796713054118701472640920773585428958755778045205722628471348168309788155646761467489561705884350788726184693526998625425172487726970049535569109100329672634996912703907298461220686522345968463872782526391183502562260792825695591534906214153063170360308947695007508353996153979207249823438623287447735619246826082500876249896372787102044808369164664443169896475023347272834854982276070281926296248978171473425474949721688174298510415737682664963778354143173809708173069265328075654109632116097914732619348518357703443108480346730025857085827000619296305986094660145588115590756064184000468139395704647925541167811322374564351167288872568319959463160523671447807323583638748676275965325064819186398902748842818722094557650775389544300063251008347193481177585912643836492714197536235285797884873890811311338260368525197067874788865484111566138033128251535397166287608709118366373657025691439608211535947827134004185396823913979681930874961400297258311466827199517478646695657273910827477223068492065967409898381960062925153684351449046580687734818561276752202147440548406824792822816609768590113786972186687051171926262567488518263528665314042348923633002338356275140588098240093544970361303001375735509031555252772566816624335943939352858637743494839598717235272590851277552500017961983210185655395860063860627120454613382873677525960037102514471277698020881612701963155800303262719675930084426197210061762367337642600309398513523890583468437514312593252679354516639406599428383117123793474762750838862419981562448332210874218843448255017297228253284505447296704702228971504851121541788249322762688861283687399040330268812490949112843011167948038345589377985329799450216328938858456999288601894588077196176967655530625643102935633878432305496498082783509258607735382822182528577622506251275237533481383879356652721961971321634568318714065377411525125322694352856186798117915594531356777073566146860716331622480016127926520339926165660751082446096119308487750293850669935285819527284150599591129665145026734098537478516607471287618488330909871593436631127183620925984772808824032346644931104868766939346804383266197548791611467605633176854087020793491341402878726147068293079148069606102364648141307131403559257424739070917561825373502749920042940051664890247861257007204562654584074260223052472964019311903866317914102695154686708413035868714271446782531369307134122011370638445963475813695075688573679164031362751848895032182466820596545502492398501489754233997061050325842491521407944675825766491521627375266438244045766360062993639131452917187197879846720973665850926174789809187337417853748670877458038942356678221865910121910138644153812547018938169768710526447620352522786448480071069346768554356342524126182866207073421960433299567574546314823659695930712479233192926399061078424677138679203677296950318397871377175175944802533471431437657471009730864546548871971535312564691209705572987483228690970564808637839518116917783469648272005454922102232868819011395079246857569236733451046283565450902008147086670859497937541132575177995013176266576524795680879775784423035398107724628255481002663762510075824946027876203158010890513001635895459854668792867060770840675844133091072260722070406278006496556789203451913035921368095544867536154659734930539673070302481856066580492093999504973653150309793515942312308533412872061722933657143418149181984256679662216676742943093774104843049772541932874691281707719292883478099616494991699433284939973678583018171544269106684189685595138966115563072409740467650462613583277391220244221010588607360593134905175066685748518454103535834892758924936088311871099280270397127511829586875384172122763632708731116190312373815433969269641993377801952807829483551312847671160672075977281106611250202513052569308619666139102395379848988293540713759958015683985338276805097718320247505303018374434429458458050174583135247516149643005496758344315818876854713593443121908382383574324578622978363342426678092393836086381621146353898532709214616823454405971899186490438816461677064006437979466475670123459772169084099975977247493170897270707315034787944924692600357037679376508267745162492794387970228048732467726671327526267344664609882925731161360506247357414749133177509307930176572136735609632606872791383112770074122451956435345436550740703229523115284604666232799406420204812461886030492804032047161069573657202688633271344741748340217077334816148075319745422077584934492158888931225515410435599672597491879239149801211117018433053603701297706853508490612721389665832853948820705501076467493693436936621435187204337798463567129425375162731267286997686201283186928387038929683057579646039771985528521727172881161057640083310221039119259304367725179088510453650708356701956718508093027851888396664924307575380749243448776841348278684562984857619241186474260298944598728328408996916153015900586009929744880659338433910534716084503832762665651456360188520588527089901198390476282265074873923069584467963161403349061981507752673817551071400654550586401781268148906795236705898260686449293178370280296787802672664042842470490202421811647022844571494315561188328420009526094075797120940976799011731345897097334001677295773637870115251548779449990317177933964497740490613114482135770978777324968000798221391099130727079290589095113636730649837246723521051758983618071797017745858565681053437321291077357341636339185911933253414992560575177124230609088762502480663279567824558007836111608358028158312688902497985633796215586642252186567093733845820415094874223643388607940907628200442375733940999975774638024175498159862425967012436579905641785150920126210311557624645623691747162290911154953715334270576323217944295227057371261804446297382424137205443106554744584950855974633796100179370425931884603851143531952706073882149638213823673200505091853714912015883136036354088292499217006287810235267407282746959899518967717014402537975259897804526481521088002666747363745287244953913360701056234210539776038634080876907142972900495606663929308900551162425661758052732267390547319795753677779865360876329568637296417237535482398817459708549560070381285291828933514560281806878552479991542563727519230655901070812855215640425793045693034655048444909749588004785114254293269090699711707158912675918798540966257306667445398403009975667163768114899641846759062365570415716912611327586286336979610620273456027756661565296756901875977397281732834274064103392540408720908561461632105418447251651290726989305532919926388349330963384261951290641087503258564608507283052769721752887105640621193765432757648536219368049625668816111367760965063090814783133459255348149589253709563170621422723599190934238530699089844572073684661612286048309838625682407917859489311107972647550163066181147010049626907433701534388018689348110633374909944411984304683608450674601972736611447562099308558635300789041742831532488595906516530819859333622196472392287608188300101719799115570845513065840110783752289809180848734979379744513101744817840687490711541649394769917914082560003488378584835351051143673264908490496085454894434339392258616503944987061773165098358631210320021020292881608771951045812941796609516634350893990107141473543644212675791160175365805694043415637140857903852572749316003107648807204632193640074679448062885601190970719525645885910704558379644061330873995433152968341893509096816705541747956939949493254669276357308875333882271756490549371465239575995016700753331934095115518264807873641120555130060187942183987195404775215015509468652391240761569181277298156387418675753454162346929393771661893009949953393484301456412718196743709826927561042526531239711538259164971738976878899810705849833646341531834108733504436971510652438094921742361403484777601062901683307545405610321795962406378678396810859670000735016466672232120225618114730576136569038486369908235707960651601130719473387463976292308505375070135650033330653168564363881830798798922111788323979679866611854762109540407011171954824464038825225774448287680950271324809934164923399397726798712058431532008932466281874711616708013501520555572693994285572956600772462557760292671348865328262252034178039556759824922303402275661243769073549827761682174952311425203572580090200797106757121269710047285412176227070975911872070036405368454167548564032213470055580431650093817502727174415476611230952791203951610808504833862560136221703042977629596089212941479361354938116499775527595505497785101025096975975767216706984080227715518396843685016403043137444706415260047583583046669206845089771308028195206072057002720867305518103882622899994436552188140040845777886589090806904895905196927941598559314990581120019538263226396877994157402191373162024679919010751643535125435913970038962737544602484552564849250316177432501251486076355139143260926854100761974537433001719944712470147468848029451566707621288793933977510809914064283755854940971243838331387910976434941852488928827798858354759184095632807714235508156196055151036438062642216175752389874801270104319093581650416935726160885814690294368384976833577626771372821582070594066601799850316420277900851250485908813678263155461596495332006611158241561288904019027670101442865094797489586295166162094709084305002521667993932729069728411798626833618958982359727797326542398305798248181389730800727503731277168966659124631342374009925808651149102096150021481129180816743939289013941389350785863079310849712346186725694642400540897327026982222972665294815582315145796676283056090203376222680882286940642752493769775065093499564524435133483096072972466717947407497715116096562110973700279398896756626378599262076831885506288749821844115716454836751744728955835678092429158932691717322563104273099222371145076880866589749939104720720303036070793471957486009301233944009237314313703237424079487854928039518952246084850439606476883162848962942894626502775552191436944880949421957113916710109891762717693507893421718828038482203362673442698511194991533120624839968055892733478814081300445689506724577080499270292242558377001215886258204112084126557357147379675904869003069685591661698928359860010832332245316747088680351073746605295479575027927587725025208820586476047259568483844521397858963570858989838253689385735215698695673749932710712578178819136938626608845056697294545384804550537609628929110176160052666832774102691812391399720588229091105587607379741635992450170614111613165470142150029267311462684942773193795546215261051530893052567986362563324762212675793554015744533119536541710286546666191555323119490780633857383602320124372728764982327575424482430309186220420156333529910387854427236860217344644849487954021830847979395826358956174773440358704571568908710934610617545917501439746677268285491087910426637261226690391587062915033260918141184093972777910184871542811618408151074990457293312775118182722967796466499398976282984900982902242045202354559493302737306959144256654819769425851428558162773604291864268144967345408713468695966565661937480377114554470510275042514469955379894030721727014014083663710931136211443553499585332048992887734862986837896810956701187390156027883381604663030551867840109673630149941022814412586877062608600923285309306748704743583962044737171528506540025985730579730081483682927286007451191853967514793724845336972100250335866357393553953320111235056604456534658490127873238804752989040296371586553923508765907424944690374265315486092325486354721119673734891432258644250181155466710427947619029371016308892035069643299224013315849377587174178733565745034159384920563316998120284158453236784446554920219983616564453651919716279385209340981221767033597408668496086090734936199938105048546926279973479172562242161390591004166701597923502403826949873842455001330791429327154572789664485750928942186792195295171027337178707261471398028894243038761624922987803414012619906942862700553857197017826969486908400162279978502167622256848901320886647935944463874436931623422470954106459474193536411773637807914932427023592172363809406221247964930368787082686386121115129990717717846627665754596842543845786114289895450758025208124896018187349687904425821167923389575860945799031344720199169697332570797056715810005442913356117583596322930894842178954370966450666872542040007527744728727020551592950093911759820467341260714346339469748950468707962843001338090503127873937312635630291677542206313394906071241628384407920285748340310284784145474859105888432558454112517850371432407886897645585415684731069956742778411617850413120649663962540061497292298837586489384187808683039101267147982906991045308622382714623608074233707120725392610128880203369798055491445566118325764717647885873042581455254649288352102084772231984658559421279786333543622964309084542549595667645586483102360170543001114875555280864581571694364641479511505527354766503957403373350773006004554143929963890604465227921319764207509747520223733940371377088627947132071077218111697424399086871246874400444834999908987179871829509882583736482594297407959092018654582875307101069161326218270439013041449631221965757911983846606825728791403598953146033318163717635978961000203430168827632121728335328593579420249688378916951152789980826116260780902850287495844458684811450336015533300421297306929396446234835840629942182427081178531211083426609218053412640937457421655403135409161843790977744513960915931538217610137262809060936855762031423106972732003665619372356293804751308242238293817791378774189515803053182638902641774009435957275264216882124308849298357791395733459520549083919675376117355266847723592411946368118899851850238290762028763347229402025293455391086152645544059237875074870947238084692225923114488479281297175980735546403482273967974473778519396325091420807909530855193861640746413239986794962555661000498359656957027704795912885433408646122143164604421635529198618219842457607535123261548164655823596347454128653905466689801514919519574806273969295456763848753856557540333378113734839841871968635856350229193695090458663512748592557219039337696884204124467471956970097469806561798943898189216166101439366864641286101330099882547669160648974276008247296873998951657684755032922009879058260185645345999276844772286326503674372120390934864207330234870010791453553279349406893597085111166134536183686671759817683374296069118857145445753919676736219342771891007357140799544745361529525637194812937289144325295540588522536893770408147774673664037082864442147527049588129692780112713373568885948979210790272880230675629459496782617220602455813992031093200255055641345914679558971231369705499889084007240479793015592994235957426646370500275692643649889503493433642018708086042979059907955574240215387964293706192071582959728244461606803724134144931521497705962861724480550126512679245584474801470879333919253136922085474940373275439956484044536910139499402970120122724184360993141027933042463446356486845767715402308880989071981339588379315161778849748804016328921662735596357911947064072578980746542813372950785537500591485172563006995425675595720523760489385400928275724265539685111312078327934175140180927767360505371536889552169842865932059432747032255675057393651728936025732702788616227387355959888180305019787281597020693535950491054380249845607591815073990150232892804493584931215458918830255347079855706855484809140753581294140224756186592806321393590637843523330494620910491329945900578052945424892882872438271956809005583015711257596232204394316190679267439813393252519091026871982127455266565257060416089194695089684877106129293293224543818013815516616121034379172722720753894293193518041660562351411034288383971100956421958475481406681718048999370889890472278673339294027069225249286921740852423306462377416572361431298068503675271352167049683252163800593107438684077574327152437863007598390719584048809575875815101970502124539744877029386393892038146954987586489504141659752777491694989696695384897504655735087330488014282978284626868743243102399020149638526184049618850872879570382375071126265530912282947035298199408977429805757098836287172245947423802521276629056244596707921966966389443553034657339793500865313818796662205264724281358422789173527438429445914136771703369666981817128148539463546584563340568563134327264727903327921462598083239245633921651534491225812807438690526698404616529125021976313817319587804563199522203546426187043967579486035744608687335288169610039497094892407044496287405283077570150409825307523757201598163077251441474632890141457088853592195538140128425330474317567004383913856534866655124949963189552290532090695502591455184743741227259229415591273033094966712198866784626791241166042455924316340905536616990086834172322710824903849164852609687624967924021429940816838037495881922212556337624267199519893011142708707957106376489932131065036416182471533350573483064490962353059564016080874530065749630028642175032429795383977211782065704918448624689876973256643655893228709503465636257150110018021753085305240597544420756200286570395331635062416789843286985395434887480852253766935688077827028886408667071163377418850239410504126297195978539075762858755690727526176247066035930470049897021493553747197793756591544838750580580596082887093163177178769176042008215453913924044737528801889867711210509475852173709589103259930862847389114746503168643712318896912539008477347128240824285842966811818641484578719924169660342290565704355796992546252191859931270379348022969589627787809736554654187034552936340538210866344704813770831531886452793920928116918527450263217459108082641424585241534975931248130499135799571127627595355597510277565965923795824942692367025984477761050310190455331464259304491120037265436782745082583388651733955512069930642027563470768132253013496002217463353232884031313287841233798079612803597921491730778086805371587482012140565888292649241466464996234829078840567119799866839688580500586119734262344633354086574535006251487422684281927108296498176088007667636850374251907042921959436487606994231137799051554421589099990458189095438844649217650074125597974011295261406717480976459525798916518622798375472997346701757924113348485790355674236536334874523279012756702431075718234855623003663922731578672472675322727387861040217983452556058895891635955319455248059619102258344979319214035850987590969169660707117257436372128313297907974746247306368484217046945485906032291761312376260059927038115769642472108929439836750337505619955258864797211993410678207912113910656386572471623411442610201117354822938591747250236438525791401453231942883311421767108054448176346374371223457204277216195014365857586887629952504163562981798110416862442786047803247333772645872732737799273427971400438115749875043051111675998618015410539405975840301843205843327551595067449893601176547557421691467847414640095508650031381683208801000157060515067230554639080902071615123711792444845777347402480089613245161515262759089509726464266850289510482466466741324329349007306891388968425325465582991463631722528546781903498204300362770411700260874860548402762032360340088221401530112218376667800934232356313442506243072089679761779252388977918283265068633206058888926062868089530639428551641494668075283314511409415183372348712809505351103730183999123023436507343986929326190488623164453038666578290358915075770704402259058383473830749709677923003648420799999396365671957063612237644158539659815298338631807175804667126870799532859677638307716319009612673954012034426551342625257427443476554001819844938093748220113053731323248497913358810032985855271473066669431223741325322062530351662282978998764439659207626093140842022918677976603575906845543362936618815488196850165693277528409278371612442912194816919850522850858434024222767689730675168538910240466264508565416803110726744267655748602841057735163422346003627948081364874435116447087908083285367499464306856163752616545246193305210939810703275386030013122908719064794217282467282545591411026634100915157251531150286372235622438807031816429158326458615893625547624452462154028010985879619903918278346513030883206738273794312765761083389779452369011295362239291082315092514676902418544954760228573311718323895961477851049358524788756055126114742719981327674882433281109526236394558036061726362286839952068478319701524276012853555008336660022082141940733997917331345217861236104830566065830275212360031620628525763566086162459536248326486601252811229616839201013255292740151270515648569579967703852086663873610473886509887286365270076354196044105148507112584644026465479738312193324625937226394718590933362593941680820939963735563391766275633162477537546746756242897667342553399000477072838033096562019326378050829815652960774868051777206262559135196580097190971116517966007350860575439765695268715565229345234762876372785248629045643126432900490796940826203798597510267085215048389845037003542309782646002693936627204194329208723523275143520616933131807018049025717444314813282973865108732522740057299893774453334514164295362407489985895495453634552841114580178404208593554927627998689128653138579299232265578561912150692059971385890037768674156701067221619901926515866721957799425231228028174793657940801293983469420894639663241547669800657637124696622371860640930852722300943078546383749701313610334919100853822334230237310377912020249794620448934448281396503066959251398981316808010324432416971221264550539230747391027121793037194739901588812366426062114568463105021607706478845891444170311384316152435872111179825796529902915754542727003775576477845105587437943093949609827414110579615555600852627041129920550548929728640681595044206947591889191279239124095237050266854425179444156677790500590749060824830120361800219821604072968525356981808277444079799793705526662593318737698031207360357055467398509305015536576990824178110446452482329310603404549552329483631864847022678276897027674727578636349368958787167191213841321676492726658225453634028196901584652063417473846154173287398331192230912262891269326633383779876315042354109774632077033771457172505439998884663439977423698700259449828309517280419130260779233727269212439067780793517310051733802181946089302138695228653577915036294199836922215266242854406472517913293785398020504351558694715151459854981498249742041183460515980251363219332546504353635456054960248720747396544746153311367120906641555519888598539747927795544429677734727553071322322508581032591863976875527233796598167983215627008547589511328986145619320395252454079588746596923811650599434118325781885026831187934994999527007795405753001277191729327126341700390197023761576774783996343117093893113484670858117736755236220593431179044101412874543810817789889655296894635233734701216853815106788296266460808989187352433244928803183629759228846289288762891555560746339610898195212426163676951892224205437505089711952219763566744388151094789133821532719356117648286065110509970560799063204102651021359762560719504171323177243055208789368806232351949487010767364512970912179751763118593305918282825264501891759914670115699946152365287566115796162175555525572614011342282157855096337776875751810324396434406987296491624544499970517682402336959542986613108073075164273609146350045306893223832757261542093572633745920842605175059451759186092333387226385061284279600957580880166270837481601187201652011925092092884393087133806935761606109025790889717319459681730656938857427546114215367321725201168637834525811931552607861781094064523499348311107827204180816372574539529343795995176942676396256672589720643016981958179971833301738897405750471662098551905352734106306710414518850629509297604686641718763181481170121423314159045217316393199125955755112210721013127213606450233102235877777679061114390922882236429504861582438635744185684738020983629464372388988815915111393006428983767519834220543398679933336175051432318608654147621118038533927202259286161416158562672327377474711998440932640865405781591534264762118996255753054723398180622149989977275816505271348149502400728950787095336872897824705745616794659076669873223227051822418373225696084245800789148142919516340007399836745953953518698846981770239227318051719206565996840843953071326883330705360041357845367382061187281204021245538027597523809424545147119051697835811002148955016608531012129967547594018981271866942611267144330862027182814321201357862195742399975847903398631417286456794380995954421957877516197714317502404269928253818889605308388273398993750081638063955959874357294941167170844445480745637166192409479575259274756082427075892226939085675147805630209268518452608030646234255714543045457191955565405561744516871166655762244205286911999809637186970003706207492377179993033674860616068056608261301196952113549283463852194385461531009103950277268256571519833807535283613885803338175261026142176823439544677981436566559088602993936604456010563459632561128202812217890893302472649630798627215659666032027059492199068256261249136867938531017679110641636625665797978078770585378561104328377047523069045720719283893411701048572243001274083009402270022466527277117317434074007359219503429630858973746784195158475187119293744048354157193696990473502307317053938855585455864526979631262430772712831387032609169319240510975113498701997011093860809825278142510374721449806092060085349656959843797723667643678413397959994455214529767770262943412014358866199076762397083046271821669299491566172396756069040238705130711184264417765164752867248464467115577008576441929051584834881839716792166593305769777321703058043058733407374682498579653678425863002221823862025526932088061295551307594900940128582231487614416351556975062239906745492072296370757869869866260978233235663063169669356270519424731694738347713186170210107852775267054809324592578522293397450617923280102580570064381832357247070191908910260102781192081028574208181111198090896517682033721541663767020003585015975888117024235624648451476590206899974636108795596199913523754401681833788569872084850616179715831276766696231478486195999122939613952196082992360345380187560343530833976694187789284029072156428647856246663347925006802172475654998974746350748517249890720893366480450009085970348993790582905292248429554081947471159568122685639933744130596804210696461039778027504701288765015685096267079100743783438690583143517696820239908720840524256410650370593035243172805314913726776343283316555286843957680870550554225490258347005717691450782094335695889512497495058738891732681466064753724960078402455502573312016261675659561220660400203691176162816880525292162885990041975491218604207430463981111274021394805833216113760031903494642267669343026841366936765386036123875068811039210070910839554505434799094463875324649155629809019261379144458034994934205932792034218214410789514557233328039136902652474935104177282187060999027824558261605672625287225775693792596701926279691938264404706299431493355396783669357036591272442296133037682402838519927491964797452987403594233964659591080252286812993979017937952588833591672522257913305688159673524038697465464467430008561476482313924026024995981129506910393255385835563345714982746781573617392375478621226359860758311328401632318968987926394005296634533184195741078953177497522492226196111807122068338190782708646041953536660161555403481573744474757236100469162163789314841618388887314542580842881789716019159365246868198433875046744323748547299829696930226938586171786402521410655490016946249808246462775504897215289705143170053150279952017276484849486913297173788381830174311112207727771300109324435514128799384612596438833434656442068810987865591996461156380269788214594388096275660592586363468525700819194803422742117077754553793376904082743330101320127315870693742391540118322012293481490861375562270801994924615149782349326230852541996160704480538953337544039617940882809308803917380627671960164354738901392625599116238782966344489777186567319462487434661459167810531679195399880344236854217297896879458702007690675699861248674824508559689925314235278550246875892251150743341128931166158179824628071301801946627480305359206490328151035606044111922730083361282571813616077150718717338282413192046046168904063828082216401693091157792503025719613216953120571860337263529152164171975982246470836912682067334995992195659170297262981481273090130510057952371916883484281186337548259307560787417234530280238711787386285098209847616829520545577796482499706087953286529032330522684538581394185868827998504982113706228122916603685834726653465829673462112957928670077230796112026482085924028701061322388304993479970207464309548562850811512434810125221004222247421051222737989250330107884445377760040246055701407644941524370256069281705913467036239448523676241896401292797179531259236343824905104802418656417639983131548578205329294402783813451644262880106245787255898404021921295391744124577201366652632581818953661887442621393873404558301169308073182661841230290259067420157914580830779996680015791997271879709741759425815274469647941614697718764726342953407849500186036328916858536977207232760062008640846437248723185932867030702221621993183870054196658058019136455502383361939420290965362915228521647014795094216479994630209585762189737086811442215034771762922852203193508106996193220679197234372975145780931196285736045321726341310795877632107306440306247001597474301434321457106773994479490383006271698040033646502140603898466216643067797815100746576295876612097627997308139106865476655504595448438993679487172665210075673959884710018146123059065546480998457788857745708401087708932375824320984894810721740068013327462322010563972839610379580024796441090671352524551833511065828375616745647649836317685153093270172377600877485644528026941199056366096566350462475162851243251477082460780995588082486298649616356102958904998052921707092857272834253065067577595388869187386632965306173337506092103546258359246853707539381676729750506955489786063428297130710240882491682917148887989977009247957554718043393875920465768417713052469416904836996329984903624752646869872518455117623819149022160411177307106744640410554439409761720713396138648134975823801351226996511316278948569371227551362188480089999054242977632855914848982180479216694430150556944632674433355440952320383410365354373733173239174378002039957389718955810202373267867676587619617559470067759165487863021561983604264887868989584928334637053858356724089849163031969634069077680914718878649211310820296552375556646536393784640248922200096794017370065644015973961098316597489536058941103458157347217267928106585892012893811343190193801188995228002601831140439012051352612283219366962495604228496448316525063450066056597879849013857587000443190575481918791338015938683423975386165148641972645602042165904729878842092471394795885532424203076268026146392454316115983925545332010060581155465112758891103411264879399159387705115176824870484296644041305138154817765714517612002024026102485521778533830713003291690894679936345873595542098995051102950479030578551453329392655831649340356223018838098755676306116967545427552573502000315489855898165617224295689459599094168730714754988323072971985468973629417941887888457304036881502727292763205291403703591103024166853627166557490027461228937173255829085654801234101751423212223416609579731367622481495398668691440655422547723497953512290460352658243576928782494456808214506504316503298850927121525965782092548518309239782708940897605274552392226574661517804519570010761382813254950925230079767105737023665540329568251221752915552160402601857865391089832389060836105940501290700811668188810142570156525664176564894958251160918894894163341230549187376477860765064225766147742139574590558512839654898405762299176059754311598993118331422739025547354990879779192333826060867871767737247105200988760363623717586855757203959545019844496925875474638709136445314306590527030911996553696602611149885966852171385606515155772743376345676783187824361937217735046322163547280063194715824990432055678974543574815829124155233434080635959347293968177253810075047474676684998233340472365767587020397299769418393955928296690932096868790537958318800634397761641349954000625032281658258145941819675351684929917378020376890348206722091791046597353055235968856491431154241994645295394863523699280268855419880465477681126038171196460882111407386666942478156760688670176722883208230859624029066933637433662012049254064159613069498643277463788318545015520106210543953838420374249288417165768543415339125589824945324216417259833505993539676911422131831710829035605869731806539742610900847173892007203335547403354840227804086338479692717334040083768374895850127624391611107336307485351891882725986400912149604417159570263506258907497251153958620131186501717878257068767324713195143055798978780073444805546859772305484306400537548872841739052632005623717391599808248259747122471087243985254688894551201980134930797349214983129752098750477454186133407204886731731633290218222978624967459437455000168875880540525836423726263128944722159823906502688531059443829197989872080602250055190258233729195240303621369540211025758032304382296855167117100203932109084479842414175143105074989907151370089544233554794588394336466203526499803787864359187744121665599188817703892325155137243517210462105136268147440618925772136071167731593374231423005795186932925887306843427223658488919051346827120950933217590634904830847206595551594277307896212966084798413619237133866915128805775375137417813048939524548899189954863363085598669132805287153638742494715774648048308571604810730515426608494183073283858468814630757783143985908710330834265138956975983497979533949542804519979641948835582714263518415147040161125020490438480309321472013887743131354285409527065387720082178697781699577198249309780612420170287230767160692961836670667537130937819929328630819051772288660042524898796985890628596823747786015227353260557462743587019844985285205161825986363264879331201384629892602110523267089075690812864998509810753943468633621015577908167098461228101273549928116641619633794457784440736050711545260385155651975694171050045514520446777733415759326037105246140138559241165741398709619487832746900315829898967304535022385139654744964593946338633218265682793696322589103747930059560756348819642400213748308352307677254116928444874562615716815416704273642841388658168848569641772176984672249421408222534901017118552853386317062711084452640646059018303955452568973030523733393292344067922354233676443310462845576423337119528869267227039491696712160730998129806950662940133863403128459827981671480785121488914846369329978871072340906735705510906339425974583665556586528863900893283309715888250828758753140112249047090293226208228332674857053472169677342425239337671490613306721706152969426084582205594369879020547498246541817396476658931651809957935036984215212510443707670749049126482435175681258020725104606412269948857708274368122717846892659646151770335149131931886640454223502428656922139809842377054285645215730274104576499564903860895300504076676096307503470487744023460800944862553201258871602827523778085010268174808484986240089257599962825380631304300862445653673661687262860020175527940826786734412314672428279345564925964758958812618282472048887312745550620415040070774015678496606118154652201645062009882035662815150932054495742933091832868034858857550665912136498462895767437483181191378908735349993470322823724019922116737661004462651145277079742230813877935064855183586969009023156447875425934577797781357311409973759554836714751023008087444656902690525734790505525006154964226658311958133191894483965322921432405543444928239452091362505482178072982398954140783697953707105198880712049178978973323633787744441529312240738519642910927570173570456207835476147000695554411403262342782321178266353412463260410189390341443266562682192731286395391770171879472914539641875846599469779270333815597686769545264451287688246857967397734929209562498175711540115101463234711077492413797983785377967313340676549197654108668342766790550773937906869190781227784683558420667020884272178328015197846600449506233484065298227304758417782058317502784298643847330447186350620033731537462773186633885893257781261730228370236989011294421415364558343061207759485402115362510048220121458152545244297316975844350252088692722011291103123174298626884135868862686508356682167024650915520921132603521564095550334590326553940051426920134703479368156574718672870563624918289207140002357279718863337840351907314705554828988266546920709144910143447415056842775784993574062723568246728886891595941453434138007589820512722289047786732693122090953755555074027580606477982879225857666171725916479033541725102699790988817951101664876680922506268643747326000459604359499790151811437474780438602001311450449402989524142449153912305500852575982220171444190413666294708417095796782188955496801593779197501795033905537562577991004729000242584472168306217238861878865385812401892138967754361823921229050142292214289238735149484612237522326618300309858119738148625039736042378863812005566321156975203852032359438689473873888375485124188520108381301264385887043868819163768186904835477205233542731066386226432558954522506644786331748207381542446135520525534013538859508122995709095115429750153776870605815012587514555292977552313606051815088000087240131502798704281318170788052407475366591764923797931791754599505641656119745124817701244759037134385782073087005413936492041081316041811343009266177255116486167816793823725833269476975671479936325336865515494398502044255869602379281711485187019367175159568110535164861553165007728534843747149856891548138714215496010845969681331321826050820431109193894899454099322227381276561611044737162909212456647587108709529221131443636423024107300773863700495752884285636874345124344564314565515992649455626374206356710815326282281449870477934076861491443877594845903610506073442744628904026926383895672053601742557757258907786582683711769571726924573648228804304078580601794606732634054607954285364416598916455270914545020048116844612674710070774268338833416239255320659459813718296342484970695918344765560438865393689662193562991216283474312088785463060154219380024071772482867670337228400871153177981547235926596513591409000294220765420274181490547973949865584958628504627094574088573924053243003582518764552527574861262467901922638082053255872693991361400355450619011654696914720761510329218866304833490473006018826017699471051761146826383366035368332177414418499010250876960152092089830962370133340460005475907607901024089381624529994160626803347824819088553801866738189552920721082990401148217950967820271533339615820576816475129116770366769098483667444547798347824002291435400498753865190674736281710524922446790177059181651356923166664934183743012548848268618889762855611046573756801515453284251261789403573567843774476657796555049607662150863670463790773629758667585610434878900501462284770045474752562926648349394735112464671672303292007483391975743561644425678236100131474003354512582675601731878345396908676583236376694222443994199221001113375979683182694794840788609388335563419027899011601558128946821700305032106769145171154100832303750540839345513479053557001460172802694261244105757474825448770398431120821090376988715775868447703585140121465139785763148528694998288845082796633350033801361799699302266005617465821096873507267005631977008117593687523366500245313969735067346899330510319261134859136235449097932823630156387377126306070177427063846495774895106119806806666119429393074143882767039722570038102224504615502075667559365989876999406987918465254542586066078114801967084179188342231081801431853088411085966033270240858636634458917894416108479454779164106335278825781901615647226551471846400844839085501646128319969507604898442825097289967612030628272821971880234785188359211857398884436012952534225306371094598630248057088455534743676755930139999959223992364656279735375991327361597510039522769484790643101230442719604499204569503574392356466045797222760111887694281084686165312009758535181088620103149692436769611009285398745723611192617784252850795289356027717819693675380740105494133005531385339118438613259250391951546436644989216979137445014155491095337806324133844697253919830987877393119590579136409087728183061124268880247569586732522514005587629558469138166615923892942441224632333965213839282026163948630668574447262490221833120616865594046553054788727969139200481985623372068381551049249375507168177048633628226795652896999118062878889096473529698423238804684178192487396502528653862191828722970327979795654145901148204006867042048486544426075078919061859924358972280984537474567336925438037478261770182834636822281135757428977113123984183621146394963260128129990311686398373443525958781397500813915512459584807038443227656684386024812295450379062700405637680509959275512794262589227481707044451965382738591347497564165587734424542635524124168664852460992505096219995842438498795888096780211794938691223394829283246080002136749743923780587192575009463052338439583067675367217154685128782850212294279196066239420554857586427997234937515224939387787768014945563776089648637664550810012660224588169792524416693934154554214857226836832002375061108952196604788630739828260848142390189082245310304839625817267781160837148507573242103389289460674375901331716581120027531660430623242171414258544004805029686735992836950873595205042699273553198140990384942670293448877744257892445464652256962522519315118422702575928761853579938861572243323586134692535619836036064865748764216850849957837865993646580358604738190546969067536389489815933038444622736681911057628265104330290275634987294929742771694532096930333764791808573935920160625516405352269765955897809311548247367343506929974323623917609311077771982356947507436266422522764635266071371424280009587061520521052499581835852150026718649172952881355404551831649052176845842963662926443724457395412304810485800836968383773105596160769834947130526250723191705680819232308451024550772248744855951002661543744454992725734244820658088744436378851868273871529061296365524735602066415345763991644537217754365409323450425723073117687308156998763009884013327784723019403747510956578543465372163897261182475141875720822349920793876343039354009470702303731727525553179137651716337079923162315846587002843156433751996073418438301143358086738367864975887281518855891745051612373342710963134876348087149634658599353796957389772646533326845759034412769166692403182398585325185414307082008329396303774473299979012325446449846015273230173920069099254770196907081651358810870733535046452085529277141687912478472518632494649015670495174297783462934386148862880558685212929619147002127640909610648649772575928759272803442975656734421663272512693645913566198088708194538859724267852165070207327021180340839731182939879423668921174539935861006827946587913661710478654117336660030555429304618132972193639503883731301621288296567040232675175677163959506882404803288363569018750678633794768766786255738885294334521459455070306891484671521530611981879735595698719619356233625537318077699461321382896745255027797490047521478783189011272213133311455031057783371706155497393342113867248261764067704169552422200587388972893659224585543778144621196643857906226304868695233201067871971856349639731640320278733069651859433444360378436381215287000010099392976252153538337172412847359339930546998293725490743912621229455139581852695030149494920579774561128997710499405644863088500352672102266150446380808357086813693562682301485986563735801195788738359266483144275139502710961968979212001406700455243914033384470670403843170554031991602340181419234196602177601618654455878500909019340354204494680012282634737368893678826190816561588526117171969704716769915079470677936121655212707227563475215191414514988179394866581210729250741854712104110360586626735886433109842666739615871467911446781545770194635297299287518076549612213713062183272212767571065649433724086098409602593970581050122336596633785971668359455648782841083358024611661752340980504864666888591193645352657917715146638208381837458758611347967991469007400784167172336713102118091234863156298569105189805962438124724140768686724947778168116211052033979338031549195525608675209954827424088861089068570493760573689509031754901732358994587823166202585591184123134981814232351148962654353007241266384651254909052618815377784945669456707611182304482758638165932380074966754151633332677476847367296039755820905629464262536516404709469219908745982483702617430681968404720086294936420532135956044115626092616041575622520297161843467776974311506284918418913897825596202317293775209335032424603470277102543491444619864459893048784225294859888423607386358966174943285743252184549631739142644291337318857033763571249839811344804507911989400987307893581588375471597276971016729669302742112842373658597139030176935530366429119565606239149199931026655160635924284001602585416085700364882994237254436233769193282499282941644379121991988829432013954009656346646246419405951873661826555227086542682685051401326195375820890269397235474741474581898083264272685590880480269145972374492130664656918626210831192345214267732086146477271595024876536097625816931723829136793261257465112074821332629315725328918293204109815933963235146295509071944155534833278378713612717784170091447277036174205025631639344173839640496220051760152022237252537140257230500735650521767754916965363363254369162222047307592561453333667578739777787881072291585926999537144877236398338332599637327707903050158086972464372546267519010351285444157803381013397708848876156045748599827026469135620089621365263228365119860359553658823438593133825399741089660280899138765663540291051933771852901567417612543263248986700426041206063102429785028293167151629642280374317138033082119871770210916193695008270473151293856892418871820880641985722981576641931804594707123276216259534875725878333222182259029639349833463016252739895663862610757428818598588801330849877229240980673178733057380945910134318690949605118174766810016909320235264242858211928479025749421095917722133720409351578939922650102456560562178955472038555191265829806144467717779861272620044589375095452075941098373461654251657419056998224063976145350355748953233789935385153595463477750046907762550410426915591179335535317981021020182755555722601788435357958911675898647260697267242574395635830870220259896507828464225713649859763937776452276284921230777570282257863431281308597665239824215263759402771284788303570112366834671999310887932187078595465906205170872949333872790965212041530121743807505485469081825109728407068264713784077502721453386850458919065109891139544420407078119623488961952584830352434056191924963340572146179106986988489222046201362721120801312677431405748489757298322464846880580402219666526192048700443778919241413286812204220325967507083251160406662516476772177282445327055518555399116296211243739849481854087797238728935927041052574547576587228757374364414172678765051038822160507363008523323733887896262158127142017892913134891481021282099678444673814814666957874927662593046129996811691262147480085623312114086881123661901676663535498430737479734250296273323035508494457129656024149256540037273122439892673335034106326381731108134227666999015760423881492321708734302677731508830519098702255880064518914295752564154680930669958403764533819986009588431140640947437573767096604409803601830329233007517901349782296823109266524613347515008839762997963260775826191075383343296647187395534074742643146186934020304007765672680416338242903755637281216570268589690814156699258088492776861717389927322953078513198095549903943206030961062809477651194938930902580601777742581342161196525810547190087215041586959729969421234208013660725059651053820738172854178843950873767952458427619875096886190870816033262843759528209705896947533725380246652668325678937612584207688608972806256397604404186036622385977053774793796889275634187783736042062102464880564470060779253776993250006941104198959427466053561331773660180451588416201010886560000229688458723892103500589779074110193501102708246958399050802816921068928228956472608211880136194078392369568787826913772548646214166963618868683313022694350384409957070969732397853406327805443039376349854948037252613254487240857117601350463921219354481281677221853012735842565005890324075151591453831189012839650790844937548232185546770430276592082764211998943480640088130537552559702792155043069665151413309153321240689136243246219178096351490890502571626075113632881923428775243649634086856480557534206486541436905949552907968240894057151302515283055626629136388150388867653076570854351921047651048977930662805609864018176376466787101079134544818887440566220286134233723184615763756755571270263940037075487648508583225329462809898328413842694841647865560822635224093085292581722559615730163529629259554744089647187409891408694963724639106931701429265540254903893742802682327059932899921006755838228567040592937416023430920860930334392998984301094509174542422464438206344276035674691818889146454286352863365311638053692185169781977781307483431806383471486071051362484618223646611899270740128991277082518357517476750391732107543152314901460068648007004538810184256030934998340232246457527957778806816966309933140444893402637389962024429652789315299336824890996949397172069151071163988484048645210147814224934446819813299392410715429567359301880838786437725673460495298962400040770100519840845331924872128038938663727085674578602041694544411495438625831468547072559036138499497886432957578313217322981473139700915752132345722366011410625461360531747704588771453992241235741167827454488556526230609243562226842636944695628841713051298838427471376913053388318371222114464664502132994815362089827638904632249026608607666045357313929640224140945939180300470712250785555026296113211340921553157660934558065711051524849883012980685427417223230728219678694577479481694348770431010338217704458559260908262506689808216545773039796745737754138104881871397807077454166495113019987873397882298209574385157726672487885167237670964434827549197164118924261171430907744083327995965421193639211618313999595468107301413449260811195357621015755369666192787299480755360809522554958286427923594099289014638465570711001722419100141007029289135612807493708930103689825950909484650329623222530484902186231487536007701328469792956431885389260341090591304425561211233018745246512781138800464174545659930633135112101275301695868815653386713555074383840446140707320317249057313295167105033148905491550922486809790697167581447551459599659184973825893103730162264792273103493240192524963893409155396055727985308875791801332397178974834153987500282608185836924986754126052799925585224378321000286649653600997739479211893340697440777513662777035819062776216870914049695029849812171368331330109065939963559621713843077276574173005930915890764475927113291423092494627551707854566461723832446925740480334608743311569576972981966169611831381595456554837449336109764028493018091079524492639008936881472339447212113928429987530997156912201882009762436519137025128586634883660524997056213451146935738525965834494885751614755552401840745855479998978916266097297087064514042996111693196378200018873649844869711530572873731252235792574497692234888385454197772488047287874577931368729639855087223633900964268638115103274390710188508356666987278600082764807121757868424337995873221640045958072175308356971726626173975584313216515321913930802544728305358266920396270812038522402898816080527069644839563918680264866249177637004511773090326857290145765242833312506159115981417485164316119978823978168231020335969786688556807177952343509970167863659654617202577377751539078983960788259987469492724782633468477842462072711747420887682955736665812026046610318780537952319822517626854903189493721184587488378680574178820297032232345572815881075416298456914991337343868041499305745324202998975812932274365330333169002676098040858058690486721667372203470635732262466527614428093000967495753528751454245153734479863609596035295459308800940902305416996308587124222511944459303203025719982044720051041424696847969550061333578896054871424003751097189137501992185298933920945969896007005822676853008207426496269626548424254356185601812882778101424387574274886584074399876638475661148243845591510502528918665172456316967269476019629653284821624236898965567226904548663402897041548184188582683781778570911385523561217457694459275362787641410400395876640511276093387174340908493251877799312139896728383765113915067969080649526920086800451760490391216607636350415452444465869100763503001289134326957866456790210233000492212344856915805995860791952587031584719497915362114831484735652892865409435162654105721356624392998098634597442194418219734296648169654142491488766405114698381109054072130093452354438997083839207333583637170318746903597791700312670484109898585168939722579376970204972618637631667098230463328259888381647434505744310033885606882215790336587627343603676133074509419525061231113020238317239300534347197840388164521572455774132152434453271867444215591579698052043753144915164517057446490595271941842620718167105075796998638115762636730935747597878091332913521614919343927433685738598606947511117303114620958435563976743348567737622135709242434533039548702661216524829338856164072085127698459615846754661525432778243802832074399300468480172895697226310521566060684060423057781296406523895818166931474914632167995627201377556175324078495082970334932367515169004700259963801160008942392903303786425257516504661492103048714825213532840843781388321511909486135850249873248365721029937897640472044801166793769634187156430234778827683740750925690470017546372803451079902829137239049589897645462665879729893243286768444884133937382523482833320095804549696363116616695364623546747903477275486262305434157499975953742821025556376449394274225957104843174285725646949548476391159187111872955808204494821500431943976838035870464503238028387478444759764026201419189640979549984347199901306736910371781248875252097831757224309028489452237232847214708323614627398665689979452141708094484725534989368810825957770597348314719481818673511633091239162661201338949623358869455150295938871905494542291754834727592683422683242388480405619337796628937735752438217984773858542688004386000952781361735039368565580329901852577701179691525879559834093631519125988800853386108026428621262092864188843602139871366066252257619580205042097883675189983369221236521622731857218713525119217568037945767822399175640474138249479811097662042807440175839688093673793394226961045681013862331309148728878383035211643980821741585463369707363158369670823740598195286754112624168207985165734135616837162787331309560558843728530688967669054480925231240248601304357251141786262741453806379815522244586291339034811984751365414246896979893291654457539814767132648944478978727284088917680949564792434080349441879425481938145175025506345939799987612189786083757368904663596218124230807935510467756154456036065203128431043752690820041012805246012769868450315856612647453865477698153392161195190209521383183719176283885860231986663407623696982703926202774048823267814405710878160567254759118724059945799020991416985645829149521501152642564716530542103387739821453876046647685495273323177637334852548644669756441315038037858137923401942549549018237555426206176112644200728016013478820899250828366519196591515768929112132426979088428555671491993439534700245405817375487775082178711244913662398959912868044198066681572491230496326135002338071943908261193406920174178379532162007140929919397480870177228738617291275585188364536251461517612143351383520416978003356883557554699205871960851351262732504685247954313937043431653463549071734904677526582605229385127153602350791585321138753666173230021058725926382724278304314324995022485886129225251879336340002611682025387197905456041172155189976343775895071027211923008232813931287319317200118154526120300591813326338669618267469826362460318853081585043656977773276918775967375903380284790947160875749971291340074470086205237317402352691080691175384353757549577022813904468189756457507888962790608213559300114354671679919656431906674120811936780917870631695048105086453663257113301968569580778971951770231392426504773582877285755048928144870425545702662886377678044923510497263735801066812661889111992004048137256548175448877934790639789871556558277554892782916929281151898720454787958405498280316698367459310302013989666366363882987902429666512735212045748620500562973758433964908154449203253110988542363131586975492689930355075785169482664069899582783336027258549291804747590297234782928752205027504778310538281037008667630911409867900576526297038942611600326539973052667082637105970961720646374638686306380694147192964277815156382757200169979968698500835046651321320282370074081716023768479828352932901895200702478070882694630099182405395356900704899852012999822970945358167911969630811741888565165006785527820851795859395198512186975862159456951638678197560212839364135964171982859167776268174966153665084567821682327968357476729301963820499454080425870702388478284320305449557255139350513271243613725946068465521008119699309714538591480641264012095305990864727736624369404760722078713158032435388700181936807020723147444800979468072263203265207277372585528838669932858432193043942621267827210204413026193264500764617823204411383516647848912871418471290566155170681467588391191254564388678299900799556863583275362779927446038938415425178370026673584987218504239595042908339616282671708202163686848572479116962644893951899982060590158197208001991805963262760981804267229052011309581931556789890341139737929199237299240441389859808475350450116542019730062676080541666624595314910053819994650067739708086004122596207199340429086250660171684149368293951824021150907666646562387917962040357869041924826056437950697479101235076692310571207535748210014995890015728504434718966685603938043032660914814009907157459157874497554060706540265503369638416420317574528972537444848742633246574255857816916248638656434140524045988853684144695506592733271091261314201483233359328678770772789629762158670447999106814461142114275332651527590395735134956880385993259010515817245801108260368172534978289134192794649366267909020312076397994582996526324339978409292024117190040284080890215148490004003678568695305226773229311095070652947042479116815033540155572372699857600761538290896207170856302461923147160782956417379923665851894796338940237551793014690662884151320779734400821922416417098384328726058900807690000712700720375332016417650733429435866594711003581183596995494492042374851627408834971039375074104544935823356727506794189404258853101196186024373227490679615195305869317849085671763638763063338224248875414487870155719857351048161506540907077235527217721050251697797620438573027123609500597783982676358092604344252164724742137295127167201205493009233998838478729247038991540069012018714194641747596349843592212549280953809577511995566960236545857840334434634670594290282186430033371081864159109281774409655733494594824449825403874248292313219065239531716787155931798953235525026743387539720537078674414531112558811536047725448102437046332598814753626653452704124919347538818441901287980503740821822491269581509394904844857162221082240437429888724717524617241325104007878022989261068677408151831089422388661048623663145273100753117492932357441929860043617153556589248019550572450593751942419722797375627677574232685475700781541450471408579487027007678210193956298458513959163748440340569606248417493836458936467904830242650464034653894109699703488512291871006269214373488939411664155775461709678205616551165958362705345176989684029594758058980501306183766100237164554410207145295935299742086751210906137677914756235035422995638270607155009009424840033373981791928741386990487743636812746615554673923288997029071940439441320341253287961753626746806105615489267040312349678945308523047765886718831174941768560283090434724053164127074406726555629330302799341432132365825075060377674837913051532294700203757703307057814504432856470442335490620503559641672243555296661855975673143093467055079638291875235531937192544689432053024688956394681315714055721302488759049004902325758492221057630250717029804224100003042020671964014618906891811981451164209715041429331487036946575960476039440098411200822972691025180793486767515953151891431029492690304328097370007494135817048346949473559092873706637447025153178492437281821943509278315354408454203572014815721901367985046995857058766094302069041324842779775979950965100416478557583458750934455800596284825366545200759858544362742409948160568542556029454568357012082760936522713558284048870238259699554561116609279831568189449332412869531618114870291433695271904124528235556179106315189733507798110270536204272357035207822834861881998119521868322027764200252863863910828173126962771017020717517228431048286889817392597526250590343231443386666032581415287442689798665193949780447647520778367543363425198431339420864216230933671061144239092446687499886302974222847750761647637031658166384202953688807953298652918275889351224214201606921253412209563155284781968560808181734843519252287866044926609602536052069593856928374591487739823255062590177549387589498154559470428013001004365425064775431535028056402550434402511559986516916391129598733614008138546563519429909349058494062031684602155764272493908958680927802975440902021099041544509027300216185213914744687659371162604699767321421244617761638740460429056050880632944642807838139876387550276704621155487705013397756321268074503352083718398499541464952265024359967325643931663105849073012439669414074621927073913967947174271275943957637668315638336479793353838814748733122598225059387744021297574246419182599280723181267745583274718605031885414766018401564990457359791694985346167819998714398807843798553699826557328095761792195266261476917904750887389563657665907348490408289736181982852288812875926482223244983893522875752522528609981950133695996152449625647119087462689105260656038646884715707573378152039101231251432439773810101917649690245856140074228554979402990239756155838117145403369906011754076520793363877091913279807357016414699683054850318079410662180499522327025523436349845002332349942738338851016399827293505494334812050371167843361601821419918752560821792458324069488865675360963760275870091472056371470295626712472749983168604304260547940612292848999653079782276163397754941005144479309734193258672525382689287116003452156465246529663761571608453674212844734468765578744216633924985236042032616119988662496039213653352434193157846554508620542457880199805692507337097931784720391646230535508105032475471695215773843078128917068813045933494977083600092899276323211851793565580450362027718194107269298241585683315025239198395610523991949805285782560103314837516406762874968749198126923423143445352264595711780110600349683159348564573494602926226624455261528191213032979642524639326188328737128997823302800967166114407103243076295620880248395532003047853666191804493379164538769719964513850296735866159206187421802668575102327075206869067133486855099359151579865950376743880002119181269716397118248845987272812699272256203827895642119519857251314109670275792624201629218619936190970496951905069000456778141688359075850028670994427690804445919798126437567285529487981261535068693570378120139825722303505943525834571589736118442169153424179069989531206578316764271816861515209330366040987677421269294289568775022674271501769030739540365118978748703100241947468831485153789271311417053529338462388027162456769678215971396801478613454237292257510407509391409664303018607254444399191607657310653032619573715261198039648225971096096262790006540018885233349532523056018370461097208524825211523557909847184416543706070475871918880507945330308006430005586681494136891087754984119728549542692954925358978733108788536939304840226263761428183585451485998600992647708966556491760984351823322509302214265370611675339677059188118308730251736303965200332239728927075099592095004565245041824625608784285119479631308038082893219220692111803200791782855739979729066399120653322448585344067599662785847421149303097384214597211874820860641571996535916999487866129837303581896266819453082352256665426616674860045493230486805330556278400679803118349386352690154911084508388772782606614971707531389419278541673733268854960440757125129102327949862628965819864466120547336599761055501178314656183509353086889858423017686969725318082172527494208961020493596453512878284404985422037823848045612651531194605725174570358781118634047262980895390388695790447709938880378577321750171592165196322419997672549880542256076827871485934519176788827142534753829876878367941940747188414345411348097612934057497040973733349039565001601474338612228311797290049882313512369132036143013634730810332669975954057958402676731039361279099868554844093718471116203182133364136536077137152497583009777303928022331661411822314973279409656097103416427433426620612692463699321242181281257492167249766686378840064362312859234617834628477042338043002728697936676014818635504616026504843228063092265030498326913127682395147882498035612832234237561248513509918558077096790854545140168563225599073622711667239909883512447222248060550827229681147735130015353080624004398920348806825727011916226907289669810032145066940046732271426973099880889157222204833049080670833148580083763223476856193995649013764217989326628649910148917778754498145269803067224194585569280914885928612264306575303847498288442758706412258953063294413489835626296016882180344476716590082775228715676044865233988309045131693692435951398458209190104478689009230880540586258765421875124227893129415787514812586027035797266414712800785717729110428114966997697254943499129156932215215795673844191253839371411587786335922529910776322224066601450339396528792274966564500569619937657673341747561211204074540480859597596473880170781667239874562366042856946566561997324868975733279729140097463320102317564845218254736060273599444813706860578847932662921691931330693215537163614453278423286851527394098591461047157372066636339399527071178266143591632295468126279123213284263240259266641251080076730252571099299259587108521149505768542437244154542479653552156759429462491823692065260870336744107605783889842052620262949676276032181858423705540819595767906153568681850462738997301953352990682268450311794048086911475976740372070147117356446428244367346063763849607452311435930693594775028868105943106344316771144282030052420384608098700036907644718970335970291680157695958435468708156277294079018872095997869028745121255442774076631096970482655584870974937189433458442793545748365654576048795449294981085404955138592054664411864070728713482497913961122418908990688705898164700402475288877222175432168708865839928987447931659544287092337199132559752949126206827294554544753106116657761998696677610489950639878058794794899553091196405128939684281009069813032886971948025647805052749247251984829481468161508157055652892186626360918129839085651929551949354199947395676974036131489758208801567137920863229773071251168680966362725490156402813326417489784544003037578003799113215037633626169776623966681641203998551181537386685624331726457794425925627086445538746862994467912262038386898192971172022979323342672056972910359140438152560211209763094369058300896006964212602677398558267628429996788925740119290561320220951181290923208300721773555675925151697689811210533276188972096921067097431895422640799081360133695716527435577996464263045485004371762825767958686413951682658746869106286972070961890785992866622281710580141215652172490049965901564014034145376074496915358616474353475696170739955890682236315598553711404033457042511707273505721289645863087915085275025894767855343388560471757393840421406044474071545387189915849815325105243518492502868820862066169067269399820039121287582064849986081580855424952130781081604410360262837149673466134227544573789402747389653188838732955079117628838008575035212914529605233677414365937538861226077062541493576812054530591410114113693986500673084398052493171954307375791848199290203046925284213688025450527864443228920517100096877956668656030025515325123088285996346206766072333934400845968868631982648145945791034081499316311384384705216316129689731086565192945660788685849282706346063103708203419618376447913347047742169880519557707966417870679253617972075740413239492258289945471591897740595119517835087843837824747000816855515551305186437948372665810723399271543886951060636479959014641775135151671250043942209983147102853827995765419231557584547039574117974464984688230863029225830595885601189230728212092887989439193912514698061884784214436744146942279720863669486176819743413233533282094995678472570886132838374357559467624444302695737588056621380140245672105129659533287555274941478573686515145201206134331738649352427969701946248469945981287991095308608945212938922599307374691577831575624671923504756389844157274101956238460286737746126471594051769755899605647514270442321194992934475354744677686980842340006550096856123874560883135436779206399308563406380809856836492647663152100690121775339392794287998749693703769438406419957357329677023985350731182059912214066363991640351692442083843826105813484710332310179837704337293393204725433715953187020588189327529979756275925743796773663856153658146296261165848054509631641394062225707102079220868828751656490522240281933556696921523643913294628767756813827615207289314394954513486319641770678877617352153261637698187760882201077701400019243500950330345322529180476300593278917507279765138626659476789335189565065550027098052605588533629306685205209685102800083033627461812244332513412215091167628797848236271237452547542779924897287613235798035357528789051114373804536376794509409434293872551463922807024261143759095015526411839105908898406169781130805144307449923221338301605857770274588965155848219086200393809123556592558503753872521228053943967850521827187340864308998618759652454056123589146142771338582314177291986499479592855191222380200564618973865935043252953271001647447845713472691665006188953666112010619964335798203666054484145545319772903803518579167860495250894105709819984371917698764565948703216852565256793905688045522292044188704367168463521214046164024938719225271654599718403376067250736423333314969385045706299528546355293253470386521451426011657441918083257389286431542923192380623375523437418092439782512293727745738514289398511854884589646371288354890491637043575069684551602525977184555400442944802903528362945461781691281809225412270187254042621886132332737798723882323293238513938173784088428758994456068379102542113184236950278073799653526977180740408734975176462479378083678932855858897120920426399708872318492435919649292866105082630618681498119703980858278846019677964134800443264280687981895605141099565320092525066643562399854150438443803300440888379948897249723204054056236630116900026806674664806769361521252112436774846165515473498921051170792007983924040161290359274798324642674029220849935307273054610048365415684425812617830914986306045370983783476693658180035210358870008970739640779678805248242520841642669112057861681184509273288323377560429943314642725968392440881655854332934562326358569954249496944794164392081974968822785571910795017244914026789288335886299103849280658174302133908745347976443107454551174290315553609799989458557303272487713990906716514797609545441583137134864986029388477019083903514799870940987846559304955458703243767494835769452330240438443623741439754501636132595917767145162073456533936243725036533225395264837871671819759144717043086807222445938513566163521830081603169348969336897450813594706450465431349158697274039260464953318970495447033081148843889844076204970929359904881826929325495597038330394953212761399533005432733590945395166947280190938568157458959259970109164829008011004949102811788235398285847039865210319720278446532590295519139146979400728915610219473400563546920255951444867261001495772026606177766822927264182781216930997210602637817558664512752926863880767712046921345131652624814437029753788379536634446113926211524382993869254875006780227869060551139660568509734120391571586201768017784994212265837233676337242613091202973048673702177364907113076944257559930456414059757083566546585469164468531852068062164505729641897762064337649209120319902868871698261759725557652804161834279054901080699148008890758053957131196358043476149395997938526422567622620164242728322103952569925445990939342282023884375505476867859376765641430093218196979625675162997751577643435081554379685097562073448930764696265753534727264500628653853781582827831206008667366275494089227000761746744785756058291189732436164677692794703808603357912087197027484516629575054663140656881180776242948487970900103717217943149816859812153860724236320176999333430266645553096777377192223643233673235623208942792232439096398468958230537870046260109446412663970455124765980041343762069780725335365127385955152628820141986655156666316025284206030957492895510751944547060722376337715759151648161215696566445970304970791136247923797372837203642208335784472686393250566526528469294675984022525293356803104070066087558016282603925419682499856895598214223407979803860696257119465648244451272034049013745515915318430514934293674726746340390835281395948387295387604389627348476091566217622681223826048148464877830943318204576630030820430146232870694731605745505943643681331330456310934261412234858982939802466126465607529567070759973737913643068632842149574867997583770478015101012280970477924218956685550599348835078009035727949835421633264131584900741399189840756434494636129198018829340665253315883545755101805580314139843847082279418723785207055333687591998286794199758072689890472287667740417656978748242495007903829273085357852412126572257616101976851802710453531691226256163917992095265602777858114164627194107009805818600475725058435058946951572283798152875925312325475319221702972013802621350498422821958602318553559742694795827183676755363480466780896210363497834415301190074400695402201230924336858759707646789881350205052847201022750518807514284618134410851286689808166965444763907631587170001932082899531873990547726121214829186952882870145692616771761049365688916641238988154884563422423227200236799348385949951727726244782828138272804709639366027659449623237378229910339453519933782527439101944093640345442212595186820301468993983302399431909114837851887856044322189250288268176294967850855978831997519748594248890458233929775316348092325121522175908869321611843580138492823115616087509073936568175481034980117037012188503389537150312666839788094562281490433099974976976237732691643518611424391056953131227982516302934653603722666479133065913412015920890478190946471922615466606754626658083086421242697926922839950051195088128172494461871328457891762822280872540735047736138823318607959088426055695379865984429812326568072001831340074274168071346479788458746999791418976779532709616429476718964921772352875546897569583530331680156745888151542244807801841655804305335387490937957042197804996278698504092957656608715152737066593072593681615688222265359138857438558468029116988902560256104931759789473310327125683343310888758066320763247365741914074618234263809452161954403541549684768146802367517271564740866181692009370420858017613893608514918844397990235705089314874195687406603360208394586821857248454062789102727281364448329781150288783229663770388268863083227022878546970437086895712238813512683412203103838076509278771684930146335176751118425001906053431430591646354775674441960792857644405203107444347134107062736125674183222942205115137201871155422727028136287866268766663632973761403812231840923134983038236177642030191027879661422876561496772980594923128718044811829746175519594569838644690114477118138032934657396517677741183806358509629953301721040629679014181569825616942572886909439594304810974448888664956741734386754904719919314466499545474938929625071261417378379332822835514981217371087892996201518246946509667046465075004762311038700467685285479713117064463084709855388583351019512297014241126439613638100763792261453801060608749268468284577698077033724021713398349351324231222219646179836524701171707476966958766193761872189993793598699722658425614640141459414688239789640968584859840253999419114152397172524931631710754560469347237684362835425601888398606489505877761342477979557194028177110406756699464944718201531123918606567905155967118884459255707550486401663576779489991557271464413367542904223194994191876217268141846278963400628200090818518415790571116334332537336391667850696009323441696073530820923082215139585562568100667202117052264331130293587889874575579676466918286787168097799390349188193723253587243882787680260222820468969730711415708808389772859678161916949505293118332136828912329172794126368018686451704197957782293204988466198353306159450894264730443243194631755639261732638812397136019733681389109515097488287115619940502982996824211261999719296963081474303000969672337716795001554251897872757351137493632051672089143938377500840144285413082773963530824330641510552938148790517749195993883176346387917837187500622602261921557445030335958837194425933501376414954298043445658676424539508668478976189182735428460218333395924943744485428721983485100265239817220906205403221067718875930928287396632193540156605278902585261558759169977405977770173367386679655639916283737732548242990917916042721724370366845686821980911422201467601707690264894436225402762093699354521433763554321981569769583025340365836032590333153770662296551993158154807597132022564977271028441612610896462705629495553095882956901641945381968967338964027674336160683074116732982640439380764023535525527380221986373027562704061755694621334917723752816103810623028639678676010953869652085148787680401133430879355322534474892472306971487071729330528003675377106068670230596700004799487545607780271675354306399627441864803277236045968348758673790039563433768936698908649811269407434541664941583076640232920401841557492331845588088081778815314153420000857742722654808770855904465280296466970452408577104966480397738572227852322475581922954288811480491305752981340714007829733421490041934230384952323388781927967220563696721497939052499940070748400130926298849244808773510378633351056162166979339572811235981650057043487675493853896018522483674544021184403818097647544099611289869715769469802091867097072099274297795442843852814120409136822429985580069720787620909280546555562531223315618979787613800026462613378555898818495019422682112295704191230960947515598492250002459169787678298698229792884355117308154905454624831695024964632349361888831818063926935203364714648466164586607171236289684109777113368256021978759292694734508459210520850545872621959164471441676390384020729063904215403217485991391882354585259048395848990337088104416872775283714970274928696836353263329652108147616675789673956280833489786782096449343786966992759846295845467941213976893162167566577259472934433111822707924130267338710110752951990636032528283968908958244920723955826474186762570821427221517286964096535929779674724273407581272749231703348397802264337424452602696672639707608211678363435196043823842996888575563550136098253940615558892471319800246965709802275646733553573680836144050161851257587595657816451065097103002839342150630363078193484010709434270391700610197692552586641555310994337026714662656265759171417645323251243428348050419559970572021304861722256972175406235926412042721464638197277778899111550007645766738210704174435273977551755461740102920085012672146989146179594786275714922850022867768380311464791702815331101906669448485500944687529883963027131577330231572391906260640385765680693474844782977816109427421529888379851964864552765002753003288191260310355869767081540840158721847104340084481392633124298982979633954770656991312036799204466882894807255946183083094268325639684603765326124181176822388389266061249424928740005499585206454116853016608296666204987839468880708250733396509738730207764756653487573084910564598720899944727457232385147680011724881065613576794151562295764431103211011387414011599732453526754539462098012967548056243691358872065172959734296881742774385447425561513321438107873711467546284021940937034098461470342244418761297371305583153679328334664239592740701996374497908337813404643519249882735337748483457613793816814861206010143657339809636122007773435542320803565401482800096209968394779606185242310983509180377558715724412894258625051816134261662147764205375845548583010782558286038476737572746819115015460088993994169505786957038037209350620062428866454624116718226300271834485930569861565950367305539005223764854619923487784857628188530211231548440336452549129266185281578801008624805726246361253368891782799504090317103800112768986584332743196513730072119438331605100516219177785148807420300554995192197970477513933763140451681840695069493499144449155507269666060399904542507939496455548550345371738537777154744487423598878618101214586067184180133670691289460006936865053456929365928625908199565346405605901866427199026436078508797296590917338679811998412535972352018714374358563641798101860987299149772768308871586555355749788393878461538371484880115985301810946806270635296224548680196559107668478800993278843663673911092649391524281047563651402654043960292506786103133401063716598330189807227559117425481774195078227952549337535061841456239425501215597085816587114515284710241426403701907651111119269305558111705051226627255114048188586069340003638397751229587408272757623177782940587642308991990503838921113457160431932415115787987265729927040243231604575137413974390206056928573570995698514194164486165467396248938632554064470893416781157236938695127794694491017796209256616814105585299923535915750063781911528237237318178433348414401595706251046790190532353547298503924120008189586031126734703832300462511704598793454345801285785406904848485343337734277870680116230408306293983105325515972739724384169996077120949591185798697959527634364988604697152808715706932270317569139540402243589726356033755929622876287077259739504278941832383698153551888112182139708106133904974049344224199205466471454887752231726428285525461814828335916754828727737642455139511384689177816492801046306218706202085275160094515620001980029700108042785649703402987875981102025863340611174462699996622988106773691075407782857609092105303293384833460943076364334743693643505129139124865376049993168563190190120522609060975592949859198938957847786442632043316870016877312531158399471807527465190689745613517374124156632414058750248437547091651481880802085957291949382081837864853330402297016815068652088169820430758860162544610385720286754017875045502799695290076053245799257620492584859209151644929356243774494989868253694547507329083181874455149508125036588817402140353065538962008714200903964731469833873739368561159557853951598539495021046139130043260409113920452977485304898455704411791125068864435472822645559408689479662193210109959309175243225099871749935389016459510232430810942194207795852847576927935724828535567551593006126992172882492119626710388284568840018996617133947876975071009566890137483440875546893151617659580772881882050646528852683018922131150798247104232923724012745608282136092603117319499201563216290125590672172144198513453223379947484609772867392751302779959524990281249566054777385220081866727271508117231772508526627516861900230674137140160111970813889569789389561340895287608502783906453462193253600619737214640661109675116151548367486268863814150448086361462891056605479720311586219859697978417446007099451391749981062566597566638091881830568615758524976212856673496212904111898129643453874243915397810619536451395519185779894921899786297610400001582712511707783237340014841119516033108458687580259705165602554636710823617493897306209066244732260470099666044429669439892409488859338789697708721760367002223513142889112975874906046936531446461683599392893194214439866472222675238225265110337708025047765708176815268690994425267365916642837198820051465354545196466463476219764851327130417031283555496004717949304613716230176696588140015253676386253972281511032037779693187286932946447949639226473183359177004912013553895497211928914308020978049358024519047096855609275568089785744059207546963262416785134137700774128387329684436865697809736500588204403097275078978910752050034713473698705157128349309969197175304496832949061303928628761828041780650775101796181778458654991258562701339772949683225222340453234413812584272008136840600623912478446355284772980745303794923094846865523584357321139735770631871596631129073718472367892856459136246114410267081355183077412735927952528337669438365337337607225365448701225938540900416564395531056202930930831957298817584124796616046545787003403326798260123066268209097487818663447116801803862479831278237556298546066014362704380806240338755346848961274095170772657479003718847363352337391981299101812381674790473255185012380102715095598701961552758926805825306129974160796849190474404612692250812449966017849009135848578182452313168586336466496064511278668020840190142306291401807409889319678290013510975994234186118046840890778129567598372044749875813484188305397363899873511013108174450002878460234684191337328873368579692887973556833502724184190736218818901985663751423817139568038608134541608510017337290951564196109174893154126867820359789548292696182421075868866742667249951115154318427195083850385609273157853698912805907665139090877752583481043495587717552922413949571469106653104463025787670493034340705383515413987704583841704715484604122690214903471272047973595330231352131583199149450875170410618089624516787940965578007499390607977436566705938117897468932424038367816672674184350142688685955225271407603389609725514979950718298490526180811490021698643931904374844667904426694525130904798557384176749567592748343061445123949354544155059043421388520541638655078091673094039071592020131522404715834365556410759559418004713831016034076106847088854454888481836951968615944558972286774014514632296010208147065447456519024211400816411648328650178669040673871776033904910258364714727592336797233238978519036300220443036829302980455564666302926523501408208397125895787052612612031397599739207292090359547636302412695422538547324376067193807174247060460429358727096949627598812016975226121273743188360890295129237831223041729072977753525088300250225723343197032909717391186330569891303193021754583181598148751634863511546788737175998762261575909449190612311926717824611308154106474280629420976769824451998561137942391580644994877354954649680100452454203722863942958141098908951874379287865047033275529448928506864086317466446582884242855623481906783138061666071689759909171625399908749180317490522111157809356662422492504706771578120720224791497395342217016238844225005580383806703239920505940247340596611666672495261419633569928262578847380367570807967155397897316389882053247873296638383588017566485458511624173001274503141576483600373031246174681476159141911051928532272785755127561723381782634892839259923223001578608931735131751371388245011609017691481214730154866411114739749244670339741713078263470106658478224637321837014763378243545357238316842891054200477605661080061464922923377296273525007129093796065592892015465456389693641373153259483117624838473556165234575506016615142658140574606035332714754077987574682544111140837122155966316642773969486215828444022155384571874273930832941775235765889161691151950440678347393994283786818370044495858946628426602477003737508576383891558295292297528743639203920416765449935792698109824916033624045057861817307499745160678689798731891447271192442280269085176680734116881274488902102724856000678745408311836467542940542406279577380192136986364777697993889037079095659446677385290860400003039607249060707156611712685823858507377088985109493106188846620420945861150547767074153622370201990995455614029673777327210206775335526548277159278299885136417177917644178640707306406332195148227131642003171744119006896907935862922450740066771589353926723464365921501375620656468260700015313700857296766446796785116315826631164381962649260969888180667355383734439508846476863990972699496510642936939846892544325424562216846832443369526009415188480846263129242753911977488086693719840464153184578524287604146792214087339983880983857535372488749904927594133665897898673512436522443989253790076525143073535345534219166684908904771739475750088112585214600836516769983802542941127939400652905319730863254455688076414843225126754028081578419485420792989291932108766644866823497090950259945177725200179446862349925551838892836016250916345482080249863761845747213024919092744003296679976022203678675202255578261958821402283123948225177394865028786706263121899207243815688768285613475245010655135735912755039728245057458488115071377269965315608650677050258500901020892153305711919514652166355287437165246300502720736685451083475062825794205297139048505407355969445432261842557572335006761457437687450605077695545728162665857624029303048940011572688186482162544743724359866650265029414214126112078135942696456307309275612778200338956684991892102735358628835687389779085757451187617175848476346628940422855561183108932894544361178502579886076398143593667893894806550476029383591545868144790448991504314080538402511480855340061087007273829281401705563436965171247982154031477266879709204632122937445027298878071640806003378125113188451762113250231632689802906549072080385522769133557954700054865203055973450269265783084276298817233892936449551086050200863034917692030610185945132760931982841303205306000159751518941310314209151660841915706041525340748892450633970992257574392951971266083380820347478916329477272988164268185885175451156224549415090275596365588382065601048685099384299947472990148710137240195130305332923622403914256246823939953332267608907586421328213103805239084940563247780835033946767526226713163567396781193725806512973951775777522609236049527477908563747021122651397914149980013715624825122161703308536799126209471972083367900386185924995084926522423714242518892690773051000838165894882560738334430959090633206181961670940551058993223745191772448133387683818745861534297101462498738605209137381082248062515406224710608016901778677497483303957361637016182499174343680594274524720264129087567202236268312032904698332452100703803965898156833836158138461602844900348976881184185106638882996382938158458983922969365287349546158175158693323902197019837710230599027495951560058426353641710609943117139585792563957672721884337724784870577718102925605988977019988161738567378828921951590814812482395072043655907949526975060230675275607212227614393591424877017922894271743338168457127988665047293033130298169736798333823905273798273973465047153199265146788580963573113042996855477265133498291272686452184226602173451022497798447266923058537913767598302995877083150458771387494324109873720116079654110242894068990521958689206324699550104751499187017828514161814887106161156452281857022402540337610625313669782308204671839028079191461383998963274234464356699922312002075645534988258185717425148655853513956962412361912860381552980548445436319612985751575838180083083467454454670330622697045496187244969841408537593453152444670704033969830515417501845844757565596388341240058377155958582010716244672476090113146249392696059672357199702967392254210639731688426498771992491967686945488232735222831495877436998727391766910589902695440777287431709474278974546185976545818035946798394104626111257970792973989614184914827738454949862851010292616629653888884516350666248321680683717841749631125702086700622664209770500925331501032248510788012739669962475701256441884592955708263875683776666387780284822480137952999101019602028493681821780327816033892117099494069099909788193917157892487567385789360876636367840975350155602287952564176377168640799978634796661600911255751847837630170770067366404116032414301964362540693608801340679403550450236548930612326090600806972615601664763654081873174420104599331138314668218801119869919738030737906443785026605376551813188896175739495198414846727623518384809934291844859125778307250523946809495220123285536774977430634685231205830349257320135407638420418932733381217170987771156028297368686614300404130280590911906746900150389510885652033552986377995265176338903642756104572943322770665296343297674781801778364077598662728448909357169983980761219649071016102011143011162967792386024302553572566274350416761934911455402867533449254017254013140037242572693208752142922336276556493265400215321360304254634084640922493120638736236903014446529262770004919881867792402649486512248399434674741659149731032258111904869859871919141274205323336731261627249217648748880729087400328848091054291618049654473442412007110033050215111751536351933697859157414473734850337663213056611192319782894431237149829431096110847656826350710197324792460069874142334467993291927291712325819937890700295796394736066302639370495092763258532627591872298299907364935801364164723326094761209069395725637529966094643438198937900178213887855070968280131173293652058449134010685556181059858740258598510874003736247754106353385751172236499204480469177532410335686051991958257975317541382808159220661434927311910025500774847312522068923311537737927043678863572965185314508845998575488678186863525972060535841348184791541525737184592833433377940002571891879244612708869142178799542035395058139441765194194908021921273326228002135033941528688214433176640646730835271394384367206592866364178461440104462592366062512256679399326421311170238675372680402061540967652665040229896457094890106015965522773253013570259223627373248140445354398482019761622509247451855826061882848422507448658482979710553799899037108026269522875264963649326671962524478267484045796889006016720492527798871506368242745412373842814049096754395904257128846125244264513891742794561230857797758806461161295191804893210398306033585949299528395617491786886765097227059824600818352858353994910312900751348844298707457257514142791077747705592735461288468167430988358287178952391243700756816557419152764389876181753773672139547901180580981402753676888029180772057942355871702847976092919249313785676797146406430550144974173829787422448463867366578369358970287745067590186821346218612408259285777148962599706597944792063823555728944364924079553004999266055933114353616593566133043492925478092732910489833120259870116349769150733547864828227538433657033547880544201276344460860760705951482741386917084159985853640920346671447878261676011607505132087264704952524555951872197170262290316978805870759734308287385235325106419921375580927812953785585226132537141490231030300369378185333598262519445198444746263192475741305870117478160348888091043871865568608175230704853670587633253529871226991569147366405005337763169625662804824616964902809447265976467230205569010553925408727730487203457942681396832206207980210753325524590058716033561925571835319285613607166033187986747357525365510462028526464186499509400220199766376464061671575943872766295224914684651878420055381108185226913512306942173919912936840800338777964874950962108067216615200963324064398765309388275688717739879167532221112820157978902268739387006857637768181513001703988512024313740364060825051889909013937801816337753593290810546218864113409544343355661010681263369708066910041233068276940419081404585560756496492172534765637492879864371506014849385625758128971148666089467543679513792822793085823471322973572953190574236237810478473077629264109978414393347961998717367557813479214273640052392986166911868251279488155954117480747071453268971685926561502792348500984709617612410613541043010957635699923785674928969094251893724595096184045150204573691277151662783035560657472483236430585225159319676695237946415765662462511720701832289304544952789259223380187885644184534913497140588522241703607702130209338940810871484415368579392435362875010957878744466392443525635492717999632294474598366421804190404436098208622340048687727454357949136970596112475480080426082625726783876463159157783551215244100519100891323545211294968710970490361448987009565835680561272681197111112022942011132659441509257734741429068902320163044851108889415118591716243109564591153542968471583937735818047792253742918044210059923070400040945080667833121697307722217380333000528596385134477777502526932346764501772860479685557939439386952184943607681895279581785131813371295276249460900495467427218035187732142061778714238014681240954485144246692206439317290838134408079541726934671889992369373445908249308709728184464099331902232262002121889012732902260342854441701596738042271398780355324488656350993982896988311582675517207526825283580669507372123324446960125711757302700833643232136602573093403538379633498023378738302646935902167417627811966182563053176304998708792392238684410479062214690017371003052508004401431836230913323918528920119095429092816787014808646556428699198737241358561564652353413224315678117957988058392564646041934339285295069244200212553682808247895856790224266363238233583716465993542428642978996071656727443731251769118556955527336227111057490545101118533247690105268000508015785713575611401961529675339994869678023550542624634775976911930650866672411058698849559831006656331877101121478579124452496966537821766911335817294191860178373245142724554344699984379640683026366344569334927496366867226300756638489051933636954314945196937142728819594853445463547289000946664907481293301801450115095434804324890086125542756445014575646325693671941395331875109625792204730285439246716525229062438983836306410553074110840868990297578214464470731575955105170558115488536224115280200372604387679906576327875769575014997741475999944336345152417484915848801464931528077758492554011543025765607555138223677132075503857199178146060126688917337436441012098451937797895155276101423023657124858593477288821782071905272433298222805627846631844677097082951183344925792202279829869771591960147318481113844189106539389552375310063142821731687408769565778524236135267661641081605942490662719219696394452422981025506411978496154819011416523646925404090083613981350768322676642172617858439108750137533029886160700079231588971271931844517056929632700780128701461617915809524436577444299478076800848498598180225929669786047534872296084768341023808736990720361738760418529791829946536393260297068725176886654801823882866823323134093355664393589018760985626732719986609990517686585926149441308297252101126776465251657388299968509100597030251263621062310256897594546622217076393553488927919488937624298922124441256616737873507324585423942372447549276853781444044690162462070544674937710739753556404837002092151448072976396108172463734208916239479224633739221397181662622987941843747256464477903040415922783310968566759217875562346898905871108274585472447530705920024654410336362016582806382296131142303343535993627559957220714165121069772401519379426553402664236401741331895170321113971614406422445554134945155460253683181892872726629785444923873154407426772310954147647356554414551567055831748043840625206665427609242379480666723221415349069677215386482962186169072093034423634818501574756300857000543217228597343181743271370849431728514018035046744413589221343246836792131507735157685419169943820493645352311045192923479955813834915347764422855255914913720996992052077835274074553943410239578904628222344562900028999655883947595881347294861588580217188945316922178741601438873443152160074236317705084671278920539277514836613173295686357696636981372920652295292398826842204066789475907277910078900815583665609867757196055392929672853135786034285992536241759829979174400898176885549525319448154971112256825503705708080668542549710648061661721496889933285727214034737270434177615048934354226015194030596230891791218873209625615560926170369810356504698152135931852847909181710548112468916912048172546476036604790903504745455115658932772337364627810674616874311348045053727470422197620306908107098772398639109335610271697981510793381438475773718352867183459769898733312995619158348166861838431447863099829901362114705609012922609163316361706755474991553211579041277981725074905896477052920504302916877730572050149382108257098642268113457424521539381543878570064464061823909823513330107351915114606328863958513538387649351830660530352158617531201212868896254038947092975408947994971389056156708845071454287602801551935974980195646219434826431992218201732393766218830315658081142737244985769866434477045343721088747934451969464392737581910772513466089454862239979259476019881922322251962120999832063731155846370562246002466312286816479992339731329274954381545921959340953392069592511157958650612922480887387015008357421235639440622863164305303933864490122159862216251089904885480758957851633236098611240601367180366540572163382636816662649925862316252235559774414292961963298902079751150769960997164098838623534150923880959821379593393092736001709207393863021469965998070485275131871819608223173292138575111243329774264049440728187538270610236572789819092629049709840890173468963201529557793772892236827541160506655680168138176106432342975542695361082001949436860481533173552592207607451840626670799137012721897924311805328801649347817523486370005862548747380901144509330692163340059520884347722719901052420994106667415923530770369875214307609645011391839531153655555896825866735410085591994085914910263818386411114701557409122703761984794116914409855586096771356971870706793190668535743643920141916617834621792968008613028027848312513305019454118338383344975597447662785809789620666395087217406548388040934271614708785402329419421427868528414118591187078393343958106785757041207385632960931777248162787463894710971243270725888852153045458039645804447582240664889162437594594617086685688620550368062045832675133797821362603142312345155015487131993573141767633763895309170750464819570818867603826383328467225613243429980527818228172572992232584321104410319108471497203281884191313152385800437398653547506994149568752955714133384301920797348901596589811149082736985324524400487430283195659967651831067340128698531953159184540161277581398396999930936045900291647558794144189347403493222962061636857449802833192560482589798847879340413841139676526420913245449184998746040883671907400469590000591609858601957891260888526027072283142331974586068326825197959668439689965100632284315794403689006634465637426504290472747265896331821019110036126417869983377421026581035037540651029872443625202733557101399572253011171616108726235861588638899333453114780834152614917993933584435246738881544753272091305110472243853531974705760636132412427272056784282514959097543325025568303383971140659609550081560969223103163004430980673193307215243905060345035165186743578278053888885388688017169657231374369318315359733122106016327409845249454798198100414060773448720628744250617237108417392353007461168837501401273636045591233954713790365928010131940133776002925333569497272990192926717739867630044439321798960478761109922649556522592008408777072988841236816826000095334062224178340494828163552438811022531051666164263904278617154429318096946391922207368729615332274531610963607010231676618354637958642890683772667990042274343437693585207700730752029244502375893616811058971226832306071190596355667547796713438065332859578172526501174327943927775817538648077060321875513928200309435188420196786281437344967599093038364340473821267487115708361942689738799945583945461045904209157634122984566831177348767255687487077851353487579694335889049357299428230647158645126519894982967026840987661967964862192530934838098657367846289198511093984026067174176153864433352836652117580988238196252891667548971078382215224729701024497352994643470871592237282891120671600814590423077435376213776300757982211682691743781160381905393173019576553130142511231385940707314426608966877050752118932882153215296796329502515711192470987948176012964391965286034902275991688460654763336478823377175474761798962944792899707262810460975712128524130841934436402080213820985713953296197609462614688440745383721289030719163874986690333345872147282336204865973615613014414720003440272833656524264531195739686553772173167373773459181108464483327857361180472303316050886963985038711260470511487397963611160517492842664866364814368961121506267408936552861889095149583237683305763111294666744870686897999285023496713693653671122790337352151891425541302936575874668304796603999473484223163534713154391661074089708256673280187153480977012240676587904118040976944254518359366325204888070647399850064160299624995117926899747291069561980279364742581167983826905234582455455967199644649635471183142774381630186564255461092496160658818741392644416615185252301420760303029007480556951713964720410964126489288649843813152974868691849186756717433763183840499421697673639201045075543719257751960290997692253461479290333409259003850261929769792853391896573373995464747675962725785673988577371764774972340508307408417619270582469720290494436708517425974659603761356147191152153880049252423168986086415072910425885245209864742284577833631986974312706350296181395342563491876463168645154390332875531109119368721971209476807005331506755168308771913588458994437963858079658104586765133201045677119702639560917861644792486503666600065423019917213479284311034621257548498498390535259360929898679712558267664885697179397037912845444282224666220457709733013304707836313536830778421646257372221269008231573088223832263001837815866238876198268019787722323025067475488988608209911523161650004966660796651275656469680889089267742920987814191773577651844078135187416669698492527810067858060353911090135217439850192902194594452602002794589377445125076414371188962660214590454674777803946685152652496023630406037567083774418979001327462443572753709223358410608631507337485928235024534404855748534542715383616593288549880068037626754841639690004316688231522891376313708823670197410430844928213739577581787428836699357771741322976711870427162283164336587078403918276225618054372561630598669711937851207889820982692474673394436044533822002360041853823228224270369753615166827043169113928350217495162129033305180009559257835649404565237672204238071432533780002090289781523456149328394008921240566780208747686337180114405094374342628513779512026600960689525151805953920272346922890759549746227701692493022674709790514084090607530059331588300565773087624891084806884763201866920117530818989925541412864174166106860699601481987968903717853000166725456133617222308498551109246614968901507090972269869411692761761337990205737743076803919525003823234891784110861427406830238942699131271339448459607872381665281460996686995780876701057956084351934255558103629917081621947820997438185996465825033744494307553882568338324853092892527380782532724227192734420598888825796849921480087138071102199854464673335672973034218613375224400319040282886820364754066159869678592932156491337378755188474191183763543991233374089932536953915656459317594773754902495370059570922242925161280159870485320186315483427681517957027036770185909028001361643642017088725757856023088966595900661443979949470183830383104789634357720887781387328000592112440888189348013905937605919424595652107462941685605839710009772362122600074044997423449967640002703266620104039160616702454633297365997321417035501038371770339570403660301249899999149144055296818387481152447679832603699059389624002789243648927280970184503671255698363891681091336157265872357121318739237817301900432891338896600493665848489870438417865529197108873297395245363334858958817466247544243793198058673219634622065008435337211655629371985872267851384753407656974923206817884855673611420893975312998111701041976403805933574960617135087130262122601508699948023548805336693529828872296303443335475681416914035260058518080295811240048969337616698222198592748189757024871042607108971336028682767446551951971709994271779257722799609565037020221764765401422132265371811179082768649242849922681565202848905104704818027244520740876717789797853529963472251764561492520499522411183736637693045859391979512164732863467111541768104495528538293410123085108634807357584447503026799678238003656442633172683194525264249277861082006759466641156410265114738623380360308432169339176792374362963141382980482177337107819537436798580793674814457320507648547158494989434880282404459884464167410516886964746629307843710691373806127277468619811949601781477438029528001604108152774274417585552295305667010973289301344118618612575136029438561763049535336873872545467321931522069469978805410303896016039627095148819904555517538146416101978283869049941528412668299512289905217262323016189190362381486766373570106319062786111020151534371726712683780087156551853110206278836047552362583685672721408504602783883687550135257773764244085091551855141366686142694046847449131208926084411512635911478705023951854141295448730724268893017293878851860562435517947979720238268540149599349819280236290133989542203389753937329878249048265802680838939362124412758017807435722371957783384698951263710484664810337777567778754854688220911611441467841344050363955043140638376712710065696183427242096019745507695741236886919189323422456795070617817356100895608459621345100106441272862095349215877488991824201029396399539165891208809811485589524921977012242284256903673019551671233144077992206342571948313642293025710911586048215808387686037829631532406994967249999757158221845160284407011710580062566290514962338232341557912732391769701255055572970201968970489822094284352165512390047995567144386545170853169941170367746556089429668535166658961464559779890219430535091391382162614592326691775872818500445679049777333886312080418017873488222026414390617410182354472450955043786720887362998038373912352506307550683366457925878047759192860568879611779912772601403069319466001786454362651652329327928591433484657789885014257237587394768748784617565986005039904459538402364874542844277895569048406648734221929128180838453121751425039420743584726338869829596873062164960612868812156836067853626441233492826819731103723782556708803193839877377188754240614935708486492333105440570069115653878154979982516524887751730044936826323120192453978946034123245571624683311989126334402123681423118808998923043898592534590343204399630329402502961294348200213370359723738904987373811833692290237511885221477899836198960725050562261421300956632639852617863227559738813855982210644329029526649308973050945790518158708741100614259430562386389672446160143968879790279399047637684395454462820972314467890673922727477846577789997720407940529381938936541225535315369604317680765437419507417896145975242747333939647282889115040011764175564005761460753950107229421001638314181405028282721641480435932492096926068616316724022831045673838245423332816117055036721227694637411835727458144244255879202036973750029684239137018633209608396375182115062179935040998342324188095606223175006034992183106424311959102624512239063662264533491843629421348988755204469993787678658803397760385082585316863862150455197698971307300584272432763104263252247804141238703191129066369996521453505671875896329402267084805441069752129167472598154048052013310974784436406080997314820816246915179143375844902302985704004321385792566032619926779997062321949104711372698917566700055887364137211218976486903375842389513469713856695864989000323944718356383506768906184956157266253819722627201357469561744008095149062678310621306112859877461669002974926803450536139465212192720508055801155428820034666421573086403866225508772389688837401224325204488491301369126878911677308001525910239631564603103448006786268212060222113392610801320592240900078169126337495080099084942382048818217042652553045453994985496408594638894396147678703953935598842935237165812588839721399954275182878033568761347235581384886861098169623079718633584608363728358990977137017594367152098724580896115892665826544746036230066957136589769002795368598034489009969191257231534391528228623294840337524229955235802792171921193521602205237503534398284458447873982544045838613032091830320990437407380267413190151289322683185964141864922143619539163067984187073552992412760987890120598341187791507280403922629707770502758339653824909654724836493649020432955241579485143761115611373111812239782206626297494821132911533461310082432886541518172424911018205450666553624840636719447995415315102679947445455981483261704211397527757998606306781120288245739488036182858818596992672388232107017224960790972027092841364780138938569116314133798389009222998093512498573889679475532248861726905754935302012655398336684119106536865471201771355003882614407064124330615795215276547026125054948619023354433812114634802873614141432921455674604453993760176603373951648845874499501691245399716404442634452029982091986457258568037950796341157061182023969473866315644668337164027617666633753183795318829551367704397768382633876033754917386980785253455431755593396276865188571772027960516544806051004394997256150231159208638935678278510416867651969038642597541134061206574059039513759055739372427108833090120355763825145671913507875625120357158496512830916405046312182377925287870213620821565578916552136757426517783012131759711820001595744712490841878885821921364013964658829896757495675475737322461299316334647307901624214431850574003498784364934115848045417153077282494855602062061052187405597919429734752102889399984758099027855687886823888083943758256787365674827486706121575712271906073853845170899159280772471959933178907087611180280669986984586135160406318379933981027698691916180080557184305047882231145970629222507356498261947790113670836795369896804553557521119250953984459809743016966012552014407615567963667522469363904417376213383591180688109788290371032537280424458218240749266450399157000700517818337634441831308904436767616524254833067522397928093294339749939728199260759323609283859722978002010532902996634068692484553653238149691231528672137423251554754177599879389886908643592003497166772459579048772586542033740205570736623102106178170702201959288588077461740196474188696638440879219220234441749845392774871172011987303345775103327236310347172070268429967751221467636903384709632457725479678547983147703075403714621597482736036427751711664630491760996490966620525113131229989626669099069847908382660237810635699154976766248682266996602131178921308917946058062826873246955776698498993051977555897966051563639615814982388557308157346445057445573000494700326463867061236810008837581222206542519478269924597583942140765842178605558676731150694443720501561511517971696225945971004133774304021527091721109765462012861779604468500183680650494577086355070268745437334877182597948198388784407683117994627474195334122888866196939846827741698124653622062295360401425396758529541554028607028096080807623573868118292889496352285843514991797090025129879667055081940008559286847897340370499140826546383200046553720209704568232890934817880858700104830186598678550416740466605759889335177809472663930267616405353666322556357192386605610195270699151753091438492017135317386587099328166538789343955393639826404416998575719055646298047290419220168061018849025487185626787122041303792706132840937530058833620165636093640306398910310894544887497840516618333457870100451994916776585675656582021718906059193865592225393051382417705596416051743146592560357155519787977172039101629283316357094393999123393823151157552552448321713110210494655559527157660143686066312126132036881861257674607649534079075095407115136767695627496949433483379515328088418570105834264342654921234122447710161799087975385897109697466950561537224674482127672191279640774689527952237218303125661127781311476569453894981711113436564104810475997664476061487239793445644564195717772903058176048712483427816667654329889755548259230121073657564859335128315938085797336109457687675219755224257473267736583436810260630768809852147835442081509195937908231986912187402501034709730935660514573658767274230172582786457435539626651509602296711209332092535650563572803090565528724901623246252718323860137327905702775227656851884611690863317288917205818328116504666028850166255929550377439906279382378268762042621813050839286161175004783484295358453515200952710123332252338075138363715972002993293706747408711975782533557660132103060735732840260921962699171736734447476265958831842876864279824681162342034239825746920651964535405496050588511498626952787668206111884544856940060712461336236662135882325428015653975479221809300941873804752710287270380880619978125815510000582385593890928318461384937797198888802420370538599983433701339981119870839580770375482410600815514881348745653954990195064852474369017234412523839226185996400167159522956887815765590722711003131217610921288353914148379505284555642626644080233928947265908981743233419105075582431771427887773633404693296298331056156387370316059733444432039971891137339985653497104783106837376050888531293747067349534738074709443849548217761841565806182319316269631994488124046499354595178359563387605576155640853251975309418852616557333019451541100783245157146563989903576076062033453141087370094240554073133403632388639328003050139103951749484996325317370959750782346842759143917173707388525545816243161271685610210266601505125543940697790161196621337379605801536087874833398107436869276003209799044144425292913001102951958808224252323637027807962676883107496825333157005525633624617112017294656645567300600027870845879004461656073921292191259357472160628233111215262065185667911868909860480670955556983587580812905995970625737914957057982831276120542026035184287188124834553467835012426265157752774699394877718437860643706673423624554043571485364786267588466899925884886512168744409604481819878484429595724434954690666684331983407839771706619842174557641571648817438103057664002217850864398418839002509029493257658382633441138759199664143045175561854169181243743434482686245873049100716449968693023074420460413239002152834947795011857080612452010901888434725311635751749225308559887027542931255982236461140466790162852936728630957448188107175283019980482855395030991585302578561192490199782267624679248662702611938653468668629629125994208847969739656740888508977469282071294033594191780418597776064117254080344497081171424435646444668546550239948422937614084288287868653934655149015169082854033612983354013885250722094883044215452271264086504247181534760504933168188871781564856960106994465127479471336008638732175025430155106641246817598301671260472750356825858755715636016888260494405207152329490981806338264345086119233238772899678344228260136133060399945844670809006984997814076592331208416227770541795086873622907347994495143988824842924925458277502494633564090899222215566910229939775714711733023169277210345802765792586545790764950090428481197385888039653172262049784049874125069445305772578849843282559933153128644300346755200056527880146864804386698712146311270790179546717471645094084989646080514566690503218498444139717605433249980789676578637256979986260497952774163764722082096026405187104024022502377540847191648522511796366653250383407655391325864831233727156514464563488019815122723654168254524964923436809336803433678816973743946365978814653033133719353546160640248139903309793248913103462761348383456474604157927317047531206332701507710921385857306565038693510264948895356628561519053518960899064209717261303027718962290514788406672445452284207493309446931489374979389340445008137034704144915908020580190214005859552836660597864997537989694505867475083669311776742058317018215098970505550112204520979155406773090381331717009662501722117861869399110819706225754421500655017375748019790011980047376769590691691823641242677147225607022989015725717220669546921529929807973394569031207080684077542761340600329782216619559425317436493176020734213478516897627359456059258345432526711030801388331519941615859833758891999425369095374486971947444173847427968676367828151552893736599659108188978341462961024866368504648350873337280759507494241563034566970014558131494712796878407471279988579821018330363511929280036632615765507187928477868084373657375033070756968385693634512203915309284003459823487476071955591679954984188308886978866113244394400528731444456638870741742914676059562993337401791713205274262481284405336388498601625304128064193695753394898981391631630427207966706810620452244493940836276030051940081949906810963775407849627744922159427516072099902057594711185308377924019285638652772290939446374442236224676476606895148377372524329664599314956612814191726747657033336682678416317965277340354360272890071452192117678969788969610303180666519472546975060017042659280249394746453366934363708066117904834207581766775298884307304091701276392859443201152053276782048438210929448650475925685957366259225178978544585682969294486729366005260988298747111462970511658336707761751536166785731036689080192624119203940651672881501417403968374631033465073904340288382027482002432952253568049377343488743569637549353201297463268204981523310059427683661270773664010734657885299403889527358748942631312345561855691717924415969508333908183788106164605598417633562398128554490515615678399788880794865648691346000617387257050522652691702422433907177958355079399026629090518366204503067863766069928647089801669920406233574580031425357199383486195125888836105648845778127771826137077205222755384514649589930261073260587278978066964612130277729587219173263977269568963816619629008374051940351225489182756704884396473868619996232325134596639654610412367579383553035384714128039907271019005118883029844028453110680215057574548108916422767910869253689621518206571401968347065821659813208046658654171334091399961409940556002153564641288737303282207552184103188210457699696197874964277663311335129871621732828251488578080749312402149402797800960495791901150203491371932544694688562138170179909717069548927210915669066538737221924894286352083664485934227283960661193735487771066012953992091035447227074574970688922253642181270437123722912579469845901143889581490467087341158378767555556146799157709067291222706683324102345476649247809004125596173843413171492945518864919663900626271081160235465641522510783663358148838379455877028635725144045263735116902190237521401927943750001656504958392000134281436127658610706655846145106243918343168699099457084511287802618619984979003223939607409639493468153380818636842338577160408006298514276898727654164157942614674596551832620452522176304631272570538406422225324624839208251692417894865550965008637341606057025445522813831403175087862511995157733929390226351485777286110984966703631061664342299776227048913913909635657847340416669435204495161740959359088060611343325980881203412938578084537830850336513793092795831436710854114474777971018245186411214112806322212883306764696289588250979763596001432706019702647173706214779845107147321087811577604779676173896377956892227564514621676995400943522684029764159870511835163988756045914143963997551760730306168331077143084012843429419225494442146857650449434015592708462142466958277635223556248348029543988511982066684541601767339324385633512532574553315706563435241518744903513116338813132201281118304883711176947951737716642736701904999607089728158001882924742220402779063383342348347767598029223153828868579708178093931326715230116918048633898981450601224611526523338703415632762281294038186871929437361705328418758940338726821716473536843952268183978571698393743268009830843215177148776736661803410142404404477511163771696518532681577346744972926231259384093079574888889870893572969820195653936006395090443804013233593962438942991626790093496055104702432555797241549380735776965694908364627520558544886526041726511255541383309942416884833062741274978014072163166263625714291981273312218484513856870316249435078892423817269505430836787395655047514180145266022803544755593299791440710126275005394867078259261553523063467584293885252202531473644703621355685263944486064506545607010142388384203031279791818700364281607616468634415604687476976104464372099885460726713650220031696917272995828741213207691739786350895371851070265418254772504137038925326212073060444898189383201145849554568789167104290833324998522054628938194337172260998591949061604768849526648160277621289515422897695127874682440206708137065204092520426825676087336260109596124056643841568633281061914447435015031892495746142368997597554887022391090157579461351632960859801876647056198527144743678370314805528005801839478030319078982627823744046035834146985424544330886341333643931249746992349534993670990308918266595860302191308218119479404961337397292368219063350732666419664405669304345551396086572412620211273044849097288658638873807840225788876175454892744436132599382478924027523911269894830030765998376573698456487402201340682012867138198065728465987436947487815328648645046663417155576819647943138146348938497859246426997575723837806485882316351779965490817083937466513199617672222797372038633531207957701703507337555607255103266906810766592736562439384494554401414170283249804728592851046464928408390143628010272413609918488206515699324146638291179191715246876358138825846584541490176007441693090628485273803041871065247989491452065789232823073075684624573736933825811487707506506555077750755600818181327593343390666362652432029189197933678168285426716060668406709508076412655430797187870823101251706264198589409596745962069822709969146955838200904782305432930296550660156864217866783632204166566022898574513546423938691899170995843563875231812028698469955109199059817692246073639410846052561276650818093233730404867081422658467870811097298185848568726652969924370412952578998862898072672394208044371463521393160895486915064248120632691987874323999064297093224802389523503980456528856932524969840213634997314802339714080162535511073502894380502335856799553688443843344626590694134039349873318687754648298593097964499745928750180253613071041321273369346183063213044519315576033330538799505728248345149340531367289020019318986525320765969912403364963696854070128650742583186253769324838405766109207452534065575648805877474650285981405856045839937229947764052543953641033581824408799756399204672857411427248676843037333746632546965021003405860759521666858958123526185742976354075154600164912047298189498282588742133791016343648073760484898420016587363855234286445922396401068884512816437721069402496631105258369270512175868034646775686915652728804951925985535804579860212853491751061404683447761970846395953536916027187770377598413032291836170405544873353862753669563518233849055247877892569326381012004538905505400637522019288875075974194305807144246012894840172537194067075642628843610574708372256109506367018090628619870431096663055881880163443946379701640040828826657039060204811294092230623230813254763960253312733162411760871445107950247259993981097004885651840025150091984916881908377630618452694488128240566196553500462879186527469572650095396739566710078928388448422947142315320210072250382930383587416444638258664150267583563971195549949214204473837192354355173477068849240752102978144977301578657160576079134626588261647493390661439406966679851990528716587885751854296965671241980309897119433244362275805416779773120842545262799182024070805881165643503702910838590887117694275923713351749415657257161597741918740000266948131601568326807826716071638207718463564454236556538185263216017382521556187242193084217780159240263288355891480568300435032897641455749490335369492340157037375754957309874076988708971007813476826925612524822839299937315839218941740787598066200278629827241003525284825892966905305839542915055911112578960417969119132559873863261649350108156337235825757797850218645696065773791714720828670387167058380864662517154734155113395057390280818936834171241378755900656761852678759939447495161789131521313917938492134035266002649160330156028397790883812857893319765008667021418865605328592194973827890263548497924970825769249228223537635395015340779145800497317516596917629543099457091516347062344968529787778319458405220736503942178327844150864673199592666639594399309363918299401714699902422051252200622277679160611893939351154339613184781396944238164126357770363042070582449872083816497408552758857880329720097165305359271532242023295002016660947654871606638500313691807105852577836250177548921544036465450233311854756087334272924382502420813120543278431574022446787497466333727004082370763336627174664341345837629280990885373463490979796336656629244733264944400617082663360441072286023974773372972622377824605635416724715970980277777122034082525194652078236428762779614963410760610782989623759212913373274303645433743740209157377360281482593208331946983997013622578841727443493822377390478977220990148248160379186307528389078838499503234214519433563404132071274692843000764282774885003689416931788070687574290867491088583964309063547581185343981228013123080423965798821351112857897818053067432642737514370192790871285385984945935268896227609711389560651612770820805984807083617485257275588966003963367446882151771956622855619193761959410254011005591188525886913882383289407082280943865471281438375331220050250847975854921983844398136034492247214515724230110463878640715297389282827648540198151845046173986124837919517196292208062003040056190172852453457529099655323065166113028349938927667221864306932638151840873568584634381200210406277089443296310994733857367659101285167142781249132275265997281673618611412209989635438896393745561339623663859002576503682809526630939944224710814568810928461171873337151303919326146887245153055213304298913254548457147270423411424455573212430511285891879862690525885981067586862494660168421992002045206122198388925594478128330708497047093494967088150083896968673120574205854380063690015376763671179873605153715664849881148914735829407583090153535562516464553016700120031902244754893312734090672103067842898095699089518000021440363036476508558481638119093407517186825437912248636589134528100107206113332339766433150716041062976036690909669058152758740825907808940138513777563875090333353020698726763147073473712944645935258014370742597376132571093958742729860212259325422790065149473044976404997820510410841710642572623181118783393366572598352796145167733569892688371817059099159710084576203705506850190960391970418943555405546462858316089786769011205380798204099936361263867344231761932535143527226323683903575563870506645650834870234663890842349880926628819017286926896973559822338960361571458006400677427165446915912732525247670699689980649511026481949690986406038121066876207319832859737142266302984960283333759112077919319074530717667987314968262768493007169347136353749395085406671031450737245782252449503019019418751359087826430747329054145355571362467681414154730817105349563843393639835174610215889987650667094053618306493547531850164185388316821807803844886648087627314678769584154288557232941691532401632276761183199811641948783028419336011278469954259860436069278406691303964021493914892300539235174321817564570066530592452406669758677788773292623653599269543657306353360326849126631993013514402063517234089888476078065399296600711802855332313280577487539468907743276187754854568099035204039378643935904281161229343953993899635715503722951008472239915406969061287240995055586899701464665940507967161566391119760233582926876912304979275395035601877652743343172080576326231697718093012538968856786095723871095921951442371232280822463657270115743726969442221847973415430639616962356430069950573976404876761720867639425945106861399473842994218352875758810606139805729224206530398571949074454662487152401521683634671503312642945398525169108364444073323325895196608348088197402988149326062946820282339895355007232464142169776298639957585180196084996682633000148104350900935541071985111139646188458468765783785101413556329290264047956252918282804955523560332430348172156592094840944504125432561403105460022292045454013596623982051368336186348627914468023850329165976838105309696959095240600215786142649630819906480394939901394311218268543737326328206334224359974027102252763323009579545158743110432658602662764272621987304593336101728240694300589270061251271285156145461135723288846718083140227754452651178832048764755496227708182601470432445001325586228623173605025884423765408443857440249808000035274310834880525528028685786196896578301735139208782479261184428734089737698642551061142042646456933505179227107692172439846709945896783076208700268880199829886991033022994852261450616448697412773087083397764306684153367153451449147689871551426890882273715668785652723582564520313846510144450003812418422003455943279735243618391503447358496884623516150766232412589355589187161680331566344849818719458893802698019634440914781435784248766602932662760126842528996472020605354598089167926517273808890555705000233644539770807783702773082841009056147216715683271506546640165821609850982345318302016808551163997939731512565914272688340139864581039244212741080554921302917193843936828791939635342088025766034363527317313387901139875408964646086265556587041634851970591373748849075721143746908392068946564179004077672568079821605051806263912098450267487762876320850144280412441993186710533043213194066024835328185477422034876209330850420242807137291319474516836351170463414942624541039146334089223502515578208629348103273826822072667101852427840009754213414900573515898020813718409052645163642943193608379931551434597213364425502792201674255788396441981995273402087097423000008387994418838889528618201486406743262718861749695960798564046065142709994424552514371302643050417671122184030034488529185033503526891440314601618151313072554239867778329942560841664073980177168890507174094336133214948375207561249229932742840245082268147156012660810516151356275436633971792623881644863350020319924276023807826490404127643977658550868445127545086439983140916380932108930663851336812089613355248392312777305465850571096768029176511527531370934965174733056475523040162935607431350501328077607623991937388324070943188415739748622390023497272030920430385411008425088391924262905400483764036023696731040759712400870024922768317121225980287155840104435838426725218568662453151464001375753895098976219231057514940602904715926498528060246280030253818200610881311545135767697759872819576736516781074174961299216256191187987498793057649112116136853934767744895148158454175065573003836283592331874278252685618510875342163897212804082538639920757566224072034581741930783379407733198388968325049908516096403690846546533978045751408849808788405848213338967093981536851515388261484025599623237504673684327759788477454973823770337657546353555736204590130622613099993009077539893882870723536669090771634597294755300370966630884720153415682258892513947305222929410712821982966432697714829974810673085939895429177643967785457933683677154831221284321465927698590430309013020829279842417814722284087948416989926916661104604506385069963407948757256034537746007972213947037333858682581322837816962142690480681009894265001885514623059495936572934862562702913228945070222319742853054344755352152130467431855252843023741341203936707232036525711250335700020690430717213741643381071345373049969292851028481962402431054036197854301087730592463985751283514989976498931102924264924585081783782472799299010727177296331316740563674710692112443750255521444368750366353482128488315713744192843522165935683202011802320484767146604250700104273612659361619474766583127931347199124559368119518797406014701447353800771182589889181397794878537149892158057897400232067432996085158292231577426944860837781854689035499635656841520202822330187300114543316095277057825450247242648055006405943118105163720942425680812959389254761263580481927703243581633912565678692462020527806307865113676238919480802370932318834265000084999240091669366801194795251190607101258486891974330178994404205968425463687378167809040313225834899659650922996934823925452656187772418475840227930547217438884250289818912728709580466354101710511801892314337187873559185201546376549296358440040583080678070671576914778487677417761749544150462082767058296495935619621516709159056197635073752598252166510634547074150622360046901512121662617461010929749991137177993620235708691704101758791283703212910655848735408042439783991784796491388376718819711345918808763013233183215911134186651000365956782245816603225491197030692878758258442963051072970741936635544312848687940581795130825429144032155849194518525326887510810773260396910841597023584930392150018468785068738913969228605111601482381626336777605510407153408073949169318525240979051390695318308337611197466638534687498823348319227781293976096405890943898444155791854590597201124043587893692816306311941683454743874417357494337285245793634314554813749408495160185267431048798985167506025110785456445063974760617799592349107242301325108284183479104380776271283301279077906564312202671394276916434153827398977710681664863514712112980928153084069259164323849356831717238907112851820711482332474578225314032934244704745874730126141635171907329939062131833699106328654772907259036739550736491108259008434635449720973120282512160933689970034230693119013347277297675699613840076700840162648301885390154902712016584770707975788137429167137782469421128033219514638246523397736735025694262148592374150204680719456618348808463275046786316503525729848457050927057684871610180858550723659304131856844274603075088584381504926543929406051493008359839030972341204288471592247568162037829997225312560456916004076630916817186096752246395945791378051768441873784201097475514216825880009367467498431664448308247151922262462180723442882381911726710685597347786280673392638856314717389921974947298311240391775843273965626403072710382143231252313231487680311558217132989941686166381450758135056371796215301344992510809569645689586709319159775451898654265355868759219548539515340479010416991192199315014423080099442646166860238071227751163335407665910238573090110698621018337248735909097927460867804839412803046375596206734345729708372643513063786353453117640755283807527821059419211099632096973307656812733640689247907440491035617601798827835010327651991367885931856289494590723503710600792368711252037428164585160269444771438984776777491096755750308697277756120920650975604198938684880440275758816409656225646338388222004368293078083803742789213265793494996030214016662602183058833431954335961822338905357081943707346407019864392094218308417616310633773807305548122524076119132570417583778769414888486828094345750699468221179344147742429406935955812126831188778144607122145799393869554126618974476680540842328798594156030710169249170750954559837990053455680696509073003008827107926995285685636618356246447029848253992520248472025403593011855988113881453622732506800742344205741956794465733248424293296538001990773175220926028480201181060830227596965850183423845755248460631101881979572016933011190867547160233970285517293840138457258761544601803988789382738288732950591165762814285862383408713927758220199725898961591626527832342250005759553320298892820281984302542244717990321884683295897357320293140531283758081122487823979229208294605541671297177488948801532441666732050797419102994945012683749264070346553274436570377283104183780897018406607560151127641523129353324829106571485451169042675978733755402313812466675885695443776770197488501857722677397769265891800702134431004283570018219464145803507551301830363979110715077966784325041853508245226113458357882923034173422276814777320509344636306264519838532982003236723640107251969381585350606680475126207526668436530821083878788918999904824976796104286289719489342075610684753786491370834964870081094094058121163895711299175229856907184200944151748005790586380049613228655484934939708836516621140354353291028067202023308313429209389274310137914933541228795655288365024862178714342077523047304038460424013253775173187606799656430715456613415816883175619785262703435114807274675063172987019460398210955642420885596874204465979851089373288484921714917040098685741093119313060713785752690228715804006206775071578812567097880488351697889988336368135303370321530282608151527130221610660676499091505008709314960766995402444651639766910629637378076128580454639765115398132929869584093662673695258455950268422708428328637869164445167026588174505016187165957056429391465802920229376985907661159224561387390521931530925139676877166563970124216784586310147106022690695822372493669070424464033594359939527540188642879899524973365173528048058964099576649241173426533913583814497845407066620131668138982999454413525621377416467736390323144819182440233829285335709149863457791741715872010246303210460679904667830640796553191805655221299579353701427926210687586260944745973395229345386922816451907528870543487658846743447246451645547344489646464047066037981385755681113830962079873978703289682492840586055928680097299901971489815110249505665894630565318979679494852784393736149742231963334282717345522459627636401786867961788193326184897699287638030329753507029428862048344905585435240291760451121321584761724057972442302490760899526643473086303489256583981613108166857922809632541276203012376628122622797761554094166960734839227976431937401028717633385918719190080165834536346054115893675688398664623433756505790558409653671349226868667669765350202400934320506364900510255468400599973551517274208718590812482485472998571635835180689036969887659922840332409028719311160100924209596293196160197967287286080195750146050379287779119615506593444535316080576916213173186589085193503619466649027611310089260277333929825634012112153010375918296106753550328140815926861727738939132933843470186145061126283446460305717458792169280066745858161359770424021883359047411846324165095542487320978882606012180753962785216072119213098809900973094678221151470414367621772252941478758511640556812081871406920066079962108402840026885759298475168158479852737583541435895207782893197023919744660392229603136619142822360537134698184128364976525085023271664666390755415749505190649790085057729972901697626937505981243752318586203635110943326707038580979637846866891439436785013407284218302280691601559666246773620485781394834585320213863536577935864491132533873233167432208413002888238468959306956480466130417851670987224886181405427438954947679797158522285421971803739714039275545307623106328303473776155904818680732977267980221089152461561589611600650641109469003554956432691458034323037275911801641932446356295813060783342149455172691454152057855430058391221267942158172835186308734233971037334167715960345248164274533428725976500126103739057142755978521612802004954522864557912192941396810316764565166868147655300240833969773637522988325950921030188186046022575276169206708121552613723253672288477674164779651582684246459771161815740573609571669929494082931136426378995224168449329813591428776245258238868156638117822228557410397092164447578964930023009622325835297813538110833228047252244577915852764508275380659777214502294448784114866272255288189390184599224959674383851469944326290762345272423297212016721665550637653262903749582178586736801991582313114094626355885245802167109525282141104719793042385918044034528386510103337444679256677523280611970875713624891747626286110117714420902252919279224652656048092673415673132148940065628092984995557931218559994123448188796087883064409987640861827130048713465372530714722898594825684253599087276521259330826247238093719084744712660068682008034722792707067694545351212573055797151296213259666495119478251698370874294787172855597608521397629092574886354528773073416222304236241694375899044424854102950384977103131053633784657256471433925028815002046206863262705099879883957852628228638687393295576993542386019487220365328076617049129683212588339805783108763478090530320826205411158701079273596861609898655834482717846941896455750474615734730684106240693060369777052890985264990716291690319718057965867237468210218176954772202397887373964029500227700133930045249672646151111343384950741819880551969039238809576970716348568096403000486297694442483803408902395425705019811648159766203280383025016447299661435146772163013970645431192351125575639217732565542642979815673723972633193715321522866479707130896475254549050713381972589956340239487272864576501256270016583810998722888742794920441376019020254017748202240570606829368179119582804685428045736898149578658742170148087142513357455850995021235231287541471226189259045335481639142469028882519338284644256531167967560616789667676833194636165156105787709844420992174257366096900179683190565283680727853368130989845694934457342052972238793563847548735845129132551231263609380467669345239574647931236217024872486772359135870587796430517500400584892625916408744500608094019570247759922682451695590820226865903497257072357278937009439787156140496937386142700887900829249097741170888360784463802483234201740857334167303141496790107878994629735034551787811982635677786016272192663562747476654911554410874663913565283520463973457095770836165890641196273876977491117950180714593994621306167269897472570015729226696963984493553603211331514627483671696122011863827877355839935957868151630236982023139096357319636676133320043621184318297896412524047722443851713797403526277711823411509022477613972017864660783422169109588577716923608987943354426533518884507126722662565634311153335176097902986307426849763610856683698911928959402802672389838325169489382213886547311218903561592042184789136404017306416172479249057013269844525186197211174433159248499293277217836419289050316114073974448298812493836771929082217395999392796215473713648629821173172198102525765993456795356098268346420360668353929291616176567146751610282728171223528560872057976090921701092647963218278207103346417747473466000663800427967049891929920210122612903024447957808812331399331121230519358046810609086941159018834835734736342034967691607093614819532532732674894387813637390134125233976527418268987180174879870871478897492970960121375519083310818252897838080217130931329680979098904831631354156480468244102352841479882357240515880277782446648883167217682069456687820236339218914574341070533388844083712777808944210908337542461052178190403753406211974107216342669108694135126012300093570369510746826936907538864363770007418941296332151024383486031080032356233499806145164097864801438330192316720637015503379217833828633897442100259306950533848589141120539371938438316008237001345450739134191363718537763290578269375136773373252992856211311651939720873854761384568875018680762228271511633808386364635254737447970798056263722237726630859365055066813655220591363864996912518858866188807879096215904662724577706994034310838755278511347217758216149800122878377015941642372333719028705370407032122293607957119162513567533878972360473917130024697892104872197624332752745595498984593245230653289350362664592364228588086910002468880161059187626152515944309242655636019765935350927090934396181962118342520760747690490146707649801392053395833214279485742067419672591386719997275019664637607636284510352821633341620218465737868742937073298251556083640736451292707475227409474734548591180397084662290461669617769130535664382624192213324681383990290380352971662659160315114009251411764481858752138477037979583832828536965338238907108182204193617040347107675170001896569221460957233738015421936262246157179437423053983418542764340821388180439085397923050029647622474300050771291456263110953028393366038532346703414788383773416855763341357132125145229051586284840066819378156369909664682704673120036646202076947737323577183883602199865676275588883941454914279221908407534721160528393983906079896887926040635747312543026438508542808085572833421854133736083941239757145316723206714962690666449901951533155759378596233884155181388026581659399589068404213869275283046967180682024629195825022745029575292450759383543943071260100131175084742877134429686022766086428178535650021826340044331639290695406274669863480951224616649121594416367226664560993241281002755774075271122327712971967638172148189519570095221072149861736738897196833160910432169965394463864900122847533048680317455495036335202319554916932679528770447830553945466547199540675663696752572648189283337578022915464111093991312857267520467251345746233746037198111238611649845054838724115429584810685923246441121573543608899521101382957357489895277523216933139048396145493083427450541591694030478165325780825109873608726376885085660847192145654028249041446233660290081225341750035028882822932127404632426447909094168667983784592039607858389358702481831207080516005788861695164895734713367146593830731552494957292092033923125644254836055406044347007151897619107791105388064763338451169984138924086981695791408349340715310290166378759186622535882027565355990332841564190965706384169882724264873489501836767648168051733747093804733908744281138711230751228082659288498797215383892391453091567559076510589390020382666034961539731510069752158534916745881561520015338666565782883823575455018983188146568771568211585685767108230421730413665873692461901840774945121009018265020287421485108321200485296155478967728938294477729888059812866692172158258480595191102277463672786563296755424328011747680653486071100742044934064965472505105040588583527825077442600151265110544929163075351654092377019481668178662238563336125289627580548265977932677048109705007502737515556472873873152427633259353157359889694266183894599031518328023291363582466186283749009879389030282514871650534828720885149043783211854598860929946233836185400435827549934476092432409669659764407029131988545192044493866356220865077096694615866064320861859763601517657026899272390950851015033646633861474263766049941028591868359070599710024657428683733178599719137446797761869540780885357734167395386886171354940081544084181111362473597803436324516212644052388558733025839820603944347495004374468723278350401409107276916389073009539089757697331113204863059288016143949757797290486266149082624994985984865654086955516226385559376562661771178506484381054181566788007328253300175948365177182487743945218587754697397230284316674381461676698929353626334761746247688766593000477839403998239053311951372176050823777166118783401876161626144937417480679337689988042444364599861659511775715990795782621839211204010253758723636640800550183324414001857717415633367215557230068842225410281255353866304144022938680372306571840427358568978932601524097682245710214860048052909322221962846333117363983658928802103861292996827786805017849627667133193740246995350460280182855346001815116853129036830460615449467144741983477231778335685329006670101340370843572659164955052899894536943100340769505489891596270690571787600736480130711076204524860101883701207018914143812240565729904207631684493653806432006165541275404464284583521686292070506923296421435708824222876087844235296897409499604650792693435261561350603568131647897601823879508051222532217419478935752271663508418520697284379200353218285536549801344101608872462488085194356745304179361352600430992153054509618159254590132490797868134006205658822808345145776380907376784938231106677401350186283313530607224187871488258887916853064762036188694686956073653884876498569762747569949618519807332595713107122556063123221240125103484670070305722149543735566030913302996005110452528808143006651882246120313250231145705063867604145578723881567530681989943791340640257112750602510142692169818786702109674965028982305964269752397348209385612522254829765997296199487120180531938550720238185611490104977219382945294519067741798418521658799344859729546580780406868062156643271753436451553539082130966959828757197679211869490723249491976022637974305358378976533375890151156375725824886646096706646013731422177114890790932810909295303244040041911983511584898128663996190915545585983101604856205807903147396052439023269207916340417465064790374705747921330130015491127425250284968895524291069923926297501222963734948856890076245283919338964269581495660895139963406580980170430220118999122534244883322451415616009349822726062458138129053488120252397110610509935031128057806172273867253099782342713336215587758430152103858167640196686577985624265018265523277490452175190867003412465056533008880313599418152479732543506247976772143734031502981995255316034806856097710531452922732905932058061151807904898868119883647567428161953922400314366553612954131058322301559188043325255908675408542966102350422980681616157279788022028176915960570353828191995791796028995727844768447823987783599216748662443262394672829446598772498655719833856933082227045576571094236760580135439627863129300081124764597381883144815328640728137488040675244199602786713517977207292484275198854987118646384438324038883720885535813263464503586780187030990865559807311781316058644369857028300325861017466330493783012031040759949016935055188088133549733348352041655715536454108611645912911732688268849277219216992038394573943295446706502958212410760499409874650344736857678821135845034225759703389996866466939699529330265824058764931710611673988197919902609248966572478433771169711014158326975054040384849962556685648763689272564560005275798820019610605129580724560192775411957332722739848736232920823733250984587530391035162989675836413962034601644350369011719217808075966328546056498003248672154201870107163999505007169545556297725718922768692454493367554879209537136953463095221616604875378366000477190841364785870953409440001073669110972538592469953061044990096527864057307950679777175354251005869399801979729489650863687942932076453762971903996660637137364816900039227326935245309558390320968890333899133193942424749976258137324134182624023217746864478007118740740714859087037932903340229078499470872392166338241517070394765735602531176620912428012618051353307190296454670881267977695053664714675134172008038905021287443035607883809285370669623585137164020524177790363836761521613038855875712596953942888984136539704989338060463346849582938677220564997173539127731392011670551446341170702753420620083955491899272575780674125876201789538057546408173548070099091501396160509293254197784216295449512837146377366109860146860561703755241037854805100194201833881533041217045275838489095025186602585407528171332064481214005648120414754152477038447308397803984390063552009647731757710008450922773862464097816415551386578107244956835471536637999408147416016185125030538126928674087411280477421787722744601334486660948571655337824995489081244886695440390048919502200620165683881167763389751491638164032427790701287714347899982745855702709579854528649818388111475087450279023636879683326820395092615915983561262985777379472601051445185691738306610744789529398365071623947833792505569713770522596537584151057967738096038928525458412340801783417019343617267842391006510008951887524643492820973021754121103353659827706185734513009934076497116191853698105813633309427881216075589398170967092743168343015928342134995744014805899663527946116877691596984332870746790261306282775575041189014503043347392115689422789325559790077421066137752344526128715192041317285919302777709834030211631257953562684175992714390262975097532544053847525471851029266016408653259680514756401256725607108119708218089685019608882831954274445240809788209763165833513101582797715565232319557374597069352526650985025331550855523431067072779595025008183682934749341812613777851749550428842957916609545143457233525938892775454305977761623996914534013245447870772460004491298636132989074421349327360314372841681835281579618410643935900402389821300254496465865513690136793106124505772019531940264018957082281160481421477294062019493816514003992661193572018684969846469583285508051702914835592127300465347931272351723798889097699689315770411548033825732286013416283652701163977743955832714616114962830231224780282263324903961797207400245780427142986724755203940969068519366285169885475893710939365770092587795886759687580346536815783106295297836419348743271819918444204796654002288438986307625199412269599929862896765300532354322027351555074783222475798090339577594879471414298511804428079521477848559291319665731311695443060287076529486667592167282691732641192313536616285906183787102408280311245030409327454977838414757888784761806459348961098163453358053865903485295489380172922798753445269185905963604752550385605026462649379573911357266114147982621646020773517144488610256127383380591293426190450060709452303758701878128605204890257451583741195026207069778401711827910510804320564986641935681566752244790779601730746455782996354038100896132282693905039294697342206346994920528605865086342621899164221942516502269273722221180718517385808225773937823328772429730258930738682564335101525245365596918866174795339221193856911255487414685149087141908169598563311940184457907244371645307801689777085568024440002254706292139857004660303189482270391215377197314675827757956828244121926849403823839815747052557107802680888169142175943197997294743822091978714352882211902430085251512313888180891774719611699261149888852506394418470898708152851905983600189124618571744307843609334612888103577320478969960364872936667798801245573948152138178451975821020788684994441504876819988232949503598860770130691148807026580700193136404401323436152231506667699149751797768068394375632815525840169509830021058445920770469687016421189705989564942501690900515741415182312191541746532327119364437623424173923263619880289118555354124067697402222499060562882462095693274929718364210384931818718899567374845839626921425765082842824625127973128964608544821073766172397846861508746932888780849568438440107713960298110746998014699141581365402944495972193408912871827703042239114519230347927527624601214596507305223836481171859715160285160213578603202609345386983716414226419752360089946291395320268105262467085400929917673595762943627185551572502699650682698974465342442669748482698563924779469036750448560224495283541803207035610497046381072769088168577487790489791516856445438406132641007610424753260661673698992619948170479313058685769850405114634748233275850814372605492395060732973278665254255617763278157119375533629837961011026864497068245236287687410664756134446263075220457340983324402411901253699415753781432385124372398073240576322591892742751981974580243998196862530409800555457973664619907234117177010395288940544161149657938310328857360568797939751235182908843104597591833484069081836700901126758576735402689573890324549831428377116956715216079311246350115959353431673588343191694855098558693615968816833874667008168995506678513706176959584520310678298894166226603614321826331155973008945653801566265865887681736220884735889315225699969503978379878871362495845958111346461942142051760999451605975567535832980020169033545865624429021883380167476696262710849609785200852399146443025089348823563512225343873993745578393561096965914610691089029305831212846826944905907169565080291141087822056630582311723213558791264573031989609465631982505099420224486058621062134112706894551114140585378534454128799119913993020917808924279799968501515662840510008235794847235443449484400258271438682200028027089788761231304054515306103759302928082999208147560688238514773921707995712102268737380976675136478871504240804693368950848113336022716752422269874841863635370086441494377458453637568692642232869200351526375005854402433627793580743221107565532812922054873459384807244735267491390670415290037361046634111429304908302385861096009745243104110817675911202841958660021395207553247943149605292041794970581674610436727631628457871910443220014239238328869500246045358663074113500149973225869491699481971453064801048352293094740820007308540401582220191330083483335703717991935159664084291704748116480729608821063415323406046058965008979948454364096948644334813642989867390373739129793766879732681099987444965001315917469526283794997538098624497369880758350215368453413002708847345367992139281017397227301285075052982869621732000793659977912352797142051806171149177595545160538567683339648459739923095141618761652566349102808921012499275022786342743125736114269118581853551246812357311123223275770855933712838878755865146837918889564541979945017109436796979533943400531244598175506935262874512898150294047354028155358155418386631177978460565192575971320914822359219986621914087949865397835688657522595866206843052351124469225172738367506701818888853196082739998645625930165992886702724364154980619142245269917730321774978944007037163157537129597357773129834123096589581518549632272580482671931565380621927368674991474238308814998494095973659825312126715883200779427653725103126345781255281414863128246054256956240543814662769531376907743488581115137763705013145524896989107025450741104736598890806462581461422238584440446869686485778006031675394212768123902546551228135986137038644362264350980049462735819098416075895755594301568138423796701576632412615367511385789487727666875294591605033011345597169519597691635089914241903389772463346643143203615818572798041781495348800450750491436549170872793102354278392360493431117241736519424154643672661399046055741441491705681774717679484918437916872770591057823912670740966408845931269519168003470308539344132282684454414372546356057748893585655686719798005520540672248463056541866072457739249292017198756808314702204384139264660464260124676434522957587397280300812478300994865365405896252251307398652453206016782783950099244036124742481533000709135045828713606546402421056829179889944758656846129715931185795028726338431685858244868904625904526423625311685989252539250975284702930863584507315899859358776942803393163336267483781795542078567356420874626163249494002111577834681774176013362041344672026256195110181853800395915652743822565272322250243421732521254096626313310425160376013611260918478987789865725189877757728597556863725011507528451998122164535276985881254037669248073221246483677887079629149589135141748770562284396292273974230945446689860931950426665149077763464813667827289677161259027930448174331416346146558847243756143358903411410543263454384838779885792684507887609820560806723966861942766407999120303355213148802883562757770820278599500046638995349808642662348597206124110504401133104473867968291941822689125165936938401562642372918206444647407029722723939446055985789939063900517865529746840065144980501965993869348488209754667563685127496591785761153971489561845465804640512853508269021451667795707778839429301634480788472149783803554107550227604519667579689814380001103875596479729521847006655211121237627900341896570706019952766630839101316523938190122152574741714058068228377053584619266733089481563251811768800759241894643593783015229451293667787752739998864608630837219752706733591220963176822984754652924629102026061976424946464790303606074511362249042744297867946684921102449289910477865420704230499087433522408203019920074210530667190691211688279209196631219340630249161297979301733685906610526121973552742822239176023576225381953989214316117542643920705694549457771400560941981360393484286026130193574753958253964693843653485321183162571176819027605039398204340680004159443987440824246191214619549780136645247071988819977715055826854795331059458298604919677571922110083291733848812257021245449370359248553580605933424753953030268924343767547299423093989346927618671664069562533529822166956648560485512334346417102606183467547125659281913578875359904634180740126112526269734362582220542233661286188946829426510060291357956096333133880417464877744750527796029136409780431426124728997845106207162886988134926497320102998284820028520185872947372379681318684959591771869472857033634462823611931624035968018697124633718734349862276937808309269670112187815130386560514383245225027374649524764638553760583030597897965971964683030115611848621476993699395367531420853149035473983164952766832308631520698973426292237817445849400597466246348915457931835491517394574694283357185005065597210840636906574928571822909460286811920423627924484436106220698500558348035352909558520759905275749442876839741730404747034292170593708913911778888145687139246933146253222790500556697900167079829884237623195300268769677474256953168404237946067575186664379684795887565147896482277210394580518031544517364661208166718542324237946976095954812659595554030861641098776257625339691046318237220218227647319571602075935690679306016097551609066293929738450534024662244293021502191409158649274415442523930071023111552136640103671642616537564761263788882946858616376789923308906009621973470512244885160570792427804775294330010786253375682996898887940120674421615561815729798608626601137001811982250447489462599663090802776294727281303995435044903070484002505529480756819095650679574920930502597336727927772023749310479697352047896034840668600763002224531416067113121708952880784817212550249088572339626476236400332432870941022172278634471090044521443737452355997653120280454885906912762983695933338744049304197168897381087432945980750266453120635264590253346490899936946960993532230034390521583892108695389489030847063651130753747335199285895377115298749422458417361103672155774293884355437256768127562728281741907165469668708709594999924372435542318511336364585210162030230678315458213535409026101792906686574550130186268454316872360350277616926529654020941400655575521161214914959923983919244742093513958962293281067353524427279947905618874504693841378540935744516393079332694996944295895029985484644109093734674082718798484341153913364068339377255075091299052828318496741715053058427273722405172350802247656679406958214520465522986538520891283440634689665940666042578510166460127657068984053738521273032654856100808404409089061279656413612696793340621052806727557129817078479112221851825597242911971515087653418953309304479453482689766406373173728426745241229321111712255612393716115534722285491138934190276264309446662114756238000956614846584573285410602156843911997519610788436615971602604558755702729101879008358290291056260030866174293631812327911252074105942188844705982064497640513461698977659833847132429093242444073269884760672918510116216448234453476890144056376952974869019546929357392713871333720034977985981996335637205206572331842143669157471022296651946796046278665742758487416487244219589339453799093284639757352089186613252010197434798538040346754672575490731218493044104773926291486445078501025908994709760785035961954370269405747409564849972870804751290678247358407372775500593032930971146771025244904610163117292124239098025648684616774968160446287299480920418292528744691600381277941171358685666679133102382518382534483911763851503819874474978384128413247393326706029828370275775773513704081055492028733107106426142625855387062447647462047499649534529343653346371617348038966364489755533924919412811905312391107129355261557589623054757959226132580070269564677864893193669940514506329220199689018729638667203536021680605559566405464753241974911227559915979638087118661725137486792994031143542211580161158150740401522218734045225690050984017984041202647733422949833599323810767691165791846753446011373427290437563552982579716680408360688074113646353091986975251626636371128385247407532633749441417943843327076467631080181842431481836091466273646593087829210201540486417976979902561621527795004681355631803451578669442017531975100995173916447549263267346839267851662833243406577340263440459038587643238743562871569946926535635009129662807398309818308654697824521069204376201071347184792029331788851131128296604822058298155839029387897641947008584064945564409480882063578980144449349281434690665637509115007035402329488278270763940998027052039516949681535917053472827374700940607619206917042659380924090382744926207239697423917225122362924534073045369428879387893556929196268289036331842637531432723543331977026632118954553042801161885870709952097936640634953244275731119000885983879381800738745059465844620928199182670697027950619132041744721050783703555938458304392488374207936053377229864345969661415222068074182917480458194396868444480462841090995066226138144330962900867057316669177685481675162788086089059884131804708648518535071164024876598377843288370657592180366107505345812021497237629013070326114926120495843572236058241315024907651310000462041158144413912662804046196740176424048282384023406983914846756599147512004177562764164017795473044950370551198176224473334399833938173471836410136298486697952074693179392043037240265190115673687302439545511748330751065600768804235296162426137181789886044894584283624123987767655212101864753489920058438080158260221167729805701652855668395401681797476045986253539582694910588465081412941850533101623147849184091451386903345658317235941847841523695374684956861710512663566433093192117657262383356181523587110902285973949024852918475125837803003334528395079885447137690717422873966595838671563499564712416712562492613932361858547975006210522587829145598503439771355278384159356533725310122677127736530774133014932557432790720228726667140131572472504150667069042928419060821727026254928716432714839679826133700030647613121313983988608953551948368054715676792361547999326616701442154374480094770418508188242762825229867506754452861043271483673337980888352386151596021389122699352362409004447009023372237178017412125370851735182522535303452993090422807358368431381587325984155807539911040277882588616210527019080643702221041410523860673990025530349394276222452946353357171245808750998947763803421465543912348289994754169946080742499131761997377154034786840502166594458614607342578357693152774521577739921228202545872438838056054779612718854186562212570316320456925064078887482320952437952566336506410503035936643508624102605148930306932174828647460751193301961503030215346805646241086710586530658085931430576384345417723193718235503146915291889128065414607065538969978812350442451288789340111361690915505862765160207394829556785510855197962694609897230291484144913166530285362609113174293954018734424258647215431657553792177356207141821453194197638174464050444570945376639006778777213752342417143459961117323630697933841445691247701053207218467732209532908523794442801098621393018581449527654354884992062472863040537072996191157702859249513712192420266077844550341299554806803650146849461804836468984384937937312191164013686260321564310005511893891686387713607027651109085415734145806408624430879508960627975466304736880171489112020200221763808274304067157415555672865922531997309692094516177117172257580375073040662215270759765012555756584492736213799116471395218303300484533762995847640062312404907742663743877989764997031308446793922488666826456047843426393049226266418123066257542902533293027031511404716468028015692829208551930407850489122514615477527281665400625097388976076278661475010374795177543559284926357864247343312738927259650639614025161718241955160251785903481223306198530499138482011941825988378969551040288955068342671019344524189739644030056859433996545608904473362206026627147388907973359206505640543349948725967573839708514090072082962594745939248585394308683408532942598544557680689713462883499076753773309870315435903598685242513881399665151994564161597368046184879453758272386713861728549392977414640158149951043649850367568149357065280476446028067260066834742170679878254220956406354792129543406083471436959961438230592473874036496547810314527733256583806622544438552589891814690304344260854942508631113431572349222428349297730319187580127731864787914677818652380284874955647998045247696225878566936730974141503241992809955279540969654051743861167337926305824663407301554025825467219143135414362987706709221171682276440518710326887752288796734971895791732484971083079807615249275525434103575646549653381445285756347468827608360190919839754820826428412496569673732291851214820536010556591033196124380169407788677905830338614429606037976574752255557452467906668525533849569725196005258990998759468939344018623018569601316062611580871542193390280973080569028637668197996837722106401978968134906599555417691768941222983762075155467342005558700247864587534991162649062380884801349417037247447191635146771226142754392098688091426093656129052964202192734577117337022033832938730212820168997934295260795411738116932380146412986440805181113175080083612578288465642960451323128103151922133488196455424139273023567429101873468516075598903975379967093139554230407491697960428181959579152474595808630734326860038696166751615765157529045977348396865139053506199772975326107206346543788589190683438459541323034431911598793597088426437031555497877867844111583459786375831973388925758665346137301526865572754341807722930841936846137105017463620370144030599605108133947658567741943281721521354745806518815071537792238604941523329378468742837633137918274674362311261125554134843119520227385998490523821566234191879558647656110139796399297422188168882922711849535777768682707753041633168987273301835022649285530899487125824704587903734495935418152652737810157337471374414649670634722288960316684338571241389414784543938923291586974558050027853634104881858709313980542984087175482810833612877576062096735748917145795085217469413040324883256830713829074819116542722273698658099699234738875654012882440900479994748612873727044128210634912394620743088140910065699994805327714161197569515181816282495796572990117373486386875258861828767355970235150423274335567962918005884654981866894025213936392096532807026914934841075443715814663660709282790681040546400999323601162646725706339388812065845314544969885525231519882970131309608794742053682871166109146444629112403465861739609456804230615586589424596102061152529840804768143904754378907295050213536916157449053123347703537187803684730106666501200517657939211087255987168121573890356968788979811830739165781960119143112314187865349028417204203407808541081447081245073493404499969622457616819766084846950741054807907044808245204939860724021291976040145433103356779272459309063905428833186103235313282977350070504620289427227276075027416610770361710825363719756720924991750674908188232558288185745888679916683513438468483300809534324917109853081494582001533509629531765808258977478260206715170948841364568095084121710989893935805888320213623637394206837991260446414461690315711769581435723886412312570519196574139519874198819009009602469362070189199212788272514752180232486827775050473692895946607578431639642203214085793339892723502994118648898860232129176071430285894811041755575221276326668143809235510455280146129054368454399062146395229582905936741391676308407499521461370749777584528323856392418117467305071867495546073804092149400863813900265383477860849918325002273553181091685894577481226309705007017240283556942777818569412303739600473349212889093365840041149581807174420696871963564053908308110597541432985192159510806709956430321491086519349163373128716394587222486630797920884280048444428223954272941190781403505820721200147580272959126954671961704241999771481657093502194100149596984483045526061325583687051059397185358268041719238573972872625030773351200203873173164418626937575938393136546664000463533859821173550998280016390693473323481760920377619597122042446965807110809544419304419463870069045275467849440737455333615451111020704350014519416370093669139662602959870205941175197983282528106007841585828976094963347009433902810173238645853394287367377071192227003814268012554943373082694530400085108258071759114496510618186842005223075040951500902551380860045663451942515659348513686988682362204522450835750161495922403075447218057415808050031259034006641713880454206826499112104849356580856914446043139323098933594362920032051381180009341327519944184187251566780870353728651319094479267086492397443682160322976725930694918909822439277290104736821182071436102459006286590908907612151924279125461246189751661126379976479281165203009655873286765846834740140570547725717898463006856069322387356085499802185579399500672627350240029010729844827549343348111634941714690595613698099688733767189785072862216117393778637175538510516612810583885168479838593724798272757727763029028258419084942757234921188566933445130322310591875927766807888738588105499544768837953822910880958432756899985133242262843682642146034776608608189855488306444467591325413556183574693022730948615786157891120669747602822003647421289632040465779265662154085344680945037925567029289053726732188909326497304455259876366028335467631952512486615643515642749750518481233472348109229711390138044133799985997488693698312748571624759815594016652108337769443650397157793249061824737922357114614903715876548903049380670153874129717100652279405948380408584266985738307171535742850894736297998789327411765120920688500093136257712178735720623659442750889692681364576465223449503703802456246046154471097157342773519841757849654732705117348716461743392297072371943000462036459234675390074157165712451615469266223425399030331780160680832314490100052257982270282231744908965505663383918281760187055091535269266541112292724348909480984897600831739869466988823534121592468942796825248470656933237708417170274935408815573387202189653031094264317161255211027639492721464849293982828113925086155428969498511569955475670405673865554524660839078404552280436916265396785125095109539754998605627017948514332063685783638483274914595520955565570028539076809529892289186722479472802141441907710686034095344935440947292185354054002164491589607995727553437115856597962839580897440828287347858895020549991331904808293041719555178121597118228794890523435874370856508843044007044787234382259508687282127520346118828579403509894933765092029041935514499769062942584566260861853774803273859937565901611047852440645040038818007543863074940455942570485398928218525662559933953583802506689359352421353439906569577904149415953490252815293246138556339000099930282014274324747638176284380502040109726556814512435411129208646491050480226948208134773934055089480184597742399237650094955986403363934793694905290178465108040766319497389436671995919295903346865288458023601364111465220105186184897426645397204903787353565158314027613644625834778408972259285628975375322316984183592795216465960020789729086612968941759312998620805807299738944125052778296829534192027489713351003127064749901021698318143478551268291993472455188276357439462339288221529945140026103459969608132341186409548784873434537887166274518871361468844463982898204731138359413070868179748044381678433142418331498026152227138306808995117558613198508503431483080522970878370453925119068821014984194170637363840186523946129813779473853198255667289246604003270015398859362122971441271009342105789254697040020595856817797324879594299832049631775249496893958822367692216843087716348688411565006375348915130358774724854324398463140734133225356412999066134053801552924972636083656629237288268193123553189383948310499700032578491220749045320788486537888828583402856016620963276595925843360955892200950854796544426496014775999934065707469982409554164848116355306882425462207232427019837755919307998169837033231948002668584754783456457816222536976133090105563390738201645842113248178257321059459930559823134204405695571308894881580081765853831500700474679181904801046192288554086460756552426075976373049537048691423626126083573566769658412848281988917143915324407263186033573184256264670183962670402882919047809075319986297313170879907735825069981992474784476173109854749473560815908199439355441905164912558663165455668249424202011607549708892385943830933594092647206654032575023481680615553502304204356350713802043501917164906110477026995116879434724770273876276959015271254075882286176997981492296021732847612984326070366082762133883169187099617144561316821859112354937499803526413759069907595589789566718193850090385072766056225375075027195536904233563967322953957126369662145243267414002162335603116044576488807410987453549826075522842525387233273449917486172230128129831977760110497046868216808794454162340692291045727739029993606925795426745048555371684621541455569767120406791268069129160383621092847787394886081226141978600022230849342013394036651049791331840303768435082296802340421551179449177152811360725628537023624064616240735581813732057733844496851268198495309678544815037492582459436273497337886836496941677114150363844987026064480600676199560893046292658341721080343498930551336844792675769330630378543084497396123860415410058779563099420862352219253062331281721244504021308685465698614774920663959321260599786656057132540493976556706242788127873270288683720016608561580204716763314346530570885049980572676800928468066872504659325241135828928515941533678456890856221622117300883003823619149295494675024599413840293246161895440792282379558364503312116004454281283695064181850223130728955315972207076239964419481319370826932586224878876092776581051161093204049839824220428283922918935165133767335892140431795578167877851644179519547031561143255728735180748428979949685042445895943314827591144929862610457446947501364561647767405261517183662748391389072833635768983959836955748091004519701413605354275687516184811136940362877024121539350365421977873251348793206465930020394618005987481693808700620705805696870036621526731584791447390661949110642256649268981578265862538036263352591207220346811926612596075014893296980383202322898465377757359224010165367340661663436269303752876142448244593157109285679380886570185949920356694207889003489924873114780929346426646358114263345024684171476350999868794986998223579870453122546196106208678138394132275188984402058982261086019284344938395208854940408431298991496841874748358553053896911351004932516858265482778987955372929200275404442253040276700371145712304460608369877708694825822623640801726542869545752516067355320407093678150131296240852936763878057608780367065839676299879704796879896910945054919530872288476109625171645144003980979742899157993474387865858960018313121942342759007072593902793069190486791765389817413450306121659701596763692844399934888799288158852586729631043096206684260504421707607504720919840350835848959496782514717565841933933794295751493506099022022133073380344897393743988161694434167464915963232440083879409293868777396809944556811173219685200887225465258239171959157650825883028821035902554790309902241426254914217010905866149367967455413962767315073691400259120325996649510855023254339340953958296516626063020557325279009498872933654885972193644552006063605645395150669073430783354166167165984217578605091226929635139280198224669904470166177417829888183092101073390315267055459218233197760996229138736277709208464317174378919280923445131572108151645158722434390367635004863779014675954006758515809177588417291270447745479227748552435293303309580764852576731972370782293898422402526885923371017387355841958360472774558638139885984294713712048934996350841985806161263159309498119896475274867336569938904432410526264263481070394010258926924212427954035332446329420330639695102813878842919142577206004833102885247951730462128510495096349554593550058144160847112118526495743342355678065941309712070096583609407625034733272362685574199740067483856251438814799814757193801090281618942322263980436884785784499172477292014956678809610619719606377032714684216507034012190734489532983250621170210032539484209709129543497062586092474173624639762589829983992094080366131528576089885458348526855507222154561664824034181336726640890354335111737371396084531003846149251660597598100621008502271513107652249292403890034901817149331160204033358101955064071995005870956955514509877592876663814512859896372593533656246878534802674644332766304007249789475568505331658299042845469033512160337656421545906546014320272198281805118479610566269346110544355749154945429035682426743356733562236723488943507255145165993153089703778318830437193041471366781083120728173133736023392296423918884669618753597417255273419920872829155403629817919726052730857982638902923103067369471207367819619608976786358476711850779339301440682072856734818781993702305634338308896554325669105658363625847427216726243721471480379396229788444534318026217468938082834615097796716906744214600410027291914641516294539039638463514995827855224185574050304423825436535320684474067552676690925086709767639152133862121674641178630477536696297626318645579131845428381539618370451435964791662708640784989937188439191710662605849816027705270803987395376296775736633546013528785059190140769558008718517426224387011497117815359409861182324744193065185057984959307857958494714167275982012387127543576598077644511127886547185428432018771122200413799803856413727514662855840057383025139142752161575509933551561910305903784010905639314817389016497887647635653318076824074765490779164266531413368268457101800971421144085474369051724818616942969918465248001450829050757831324504264465227692907928869850853225806753738887329885654518292534064434011320509057284976284290789602296707733654397870435943150944176603092341666978855017373366966702511986907503517613602887339902479018837494881859870137818362914890348031091791862226338915664599856496570530935279695060037807649250133738556162514727555068862052243702114540569459135348658645380001869968332751743268305607339596746940194572754758318578205626781501859225227982965112449209755141711715241625500876655077675957948208240457453346019206178664363297072245603651877209681607621196186139637547089221630687101028760978668782498907916740491596097694698819241031371633226038213797058146601391332618314337719871089713598837427091264348439566424581798587276176746724216828265803835810171378352417657114657518424332611640649576285194541608008393510388012694368498771066554673584383919640384113816043180539443527681425619862304724235779707022185387392806511252950207387297627264019500992995867387519762544206544881572199695708082386662699519417366669559247665128713121383604165159781076026960916187874601663465456000044569850582343872487299053054340221171868111844579672187783181141960003330980040637183164720182275878802323889571767592037376661955883012249150466102813377442674467066776134462505259713057239334245156040307931999380304365530171058098834410657384579308838308907795713126305377417073012722587756709581668203414806160029687381151046004633281742047164721813566735017752888089581262197584877457197174108944337301674402605308938107033464945101123142245919689680693614491737312785036324046363032471111009714310616598591678472119692781073125030985065266365770967002675571248756039913143031108995356735224773092096958944892988142877916307840436036740646056799848337772378542449552077639798935683310508308488298690537342903337172192558564382111938721124696006198421377880138930758277209960034766995586869512570896563722757604861733542762133150540168833969721847449781686851651463149646093360091695402356452970694509073145649004105161512326357014427047042716010829708075181433844632578562470066459040192656058691369509274826801139831484023016773231274410373893125751727105533787062329721103212197676591610438758061304107072814500908226566598767441320723390967675452500488154107077749428639356157968946360837516585042517296012025795272410801877665276692903896681952082967174605580058151567776707562861827659007851821734860725040000697707771999062067171119608490888314056502678120037612085514496866451059352642263245603334362273828316083940264446246910980874220389764359619383581715590642052417767024504946844562680746586620217100159700375502286140449746492198763683904049169305526936790501069480188293033753287210596656860835613907642643085363808970636422547815861698229619095367312230929022635344231328195279025907574454967967125533804800418032418119421135386209798949781951464343745216120681315217071953694108444422108442501725892648747325036916861240362920099928386265451162514961228306248270035922641115129455130903338269356060283521933818245898422670621971049823094911633169415528366761328838940475027403065424947007547200235977506690685210231322691977741591672868748461264146958874288850707265946031108692527211926991422684275954541699329305542784131717084082302493829993275531004977316512091398539080452527837063670360763851153970809228676548558102743160062651605983964659175603364860052388397581795081530347211668493685644021603458502672921915249591762454239548558509425379905143810636227794522498922327447629060509642132090006677018457151970938709184904559322329195210161729340579995642191579960080687184302060168868750836807299928240717914724088772456563088043203115618483612795550741415374458697113233214226596669876556583739977435899865568574084959706015071632203855354835077703186922393848126893987779238799506099344173081012803556246256464192919635925255290101164383636861375675019384942729952827998297384842706454618168230116148269680228422040600755741495819466230675386455796820400149813501591487703672154643669892049402989695010705533226697971552142311137988636630421969307185868520431574552662434938393507017379366842072150293941336294630812880816954793626406025416206631810579639042570344766461770808916700383309893397889073371974899220185808423448999436970419469363388762906585510862949811163674895549194793331446142320532879163437070195525271713624247572132710452571657098652395065513793547798315246520491858304607239504839962752782649032684786710516480160082344049802189296813443175268323029376187062665771458986475249839813105741791892414544009759775913715454563938366796634975831741171263495659238350394943126859864431709938422859090139824561071999351270097207926678164704384771301897002806213610140992964091237176909627002632481572280390977299380063091837283534726921503473862954599096198862084395179294644011258444797566315483910528691657308761168732601260596941371648626803228402641252184372583661969919234274016435271583500066910876759986325271740216380016234355144211795003126460271896349596545893886313654928098881961761955453375052785487593962438040586682979070851296877699877965150279172898313163695892914648639590386421513966898986005631646354450649520176023080071561096503256348839284020475144581029296646018545234549577193936340673295286063413954107842357113312941191170825026246423569652389320878280395803314109184705311080682677520021307879061040164305078402076941677063818120317077014742036168599576872573381899759919624032149769164637361735375511200833054666061704715886887221565307211606118699285749568024678506990757338264545924349033995282259259152260459459745069266183155736854404827454839787740761280252727722727371289452171840960334850207885356803417008938725514692683540116412960374801994782213510292236026386461554038882001608068736908869834517050496964980526659444091549572881733831434080598260983824673799495344118703828224643304550026914898502568747822552001703444354675484191249996969125691041643935277236503939124567079858512336787471194955321855645669786420309117294806310027212150371718578283201114939825138547378272025299518978978666645218677080838138767946133308848491174119032004866324763551371265794893091636290558130557721542843689190802039171701591076231096661691446704218926986123556264068437694372465308373432349147343678898114873384993641746806497576777115800504978757683650641319078278525742361316838500951030155798416696663782878841949688496455954799196047469901306219670301281472925334152941497090764659430836954285920803336294521916054656599577125376911745920671257750115903150469919144567387628038558743393806165947305791612958226113500379636373294173628504855063841035334003229868942685796243795747795974300921308863644849889135094876435541455343326740693108874386421732988583341356100026117258919025162944349920155330927444277765207398710548180566778217265507145687068447079573560426846959091216007611743784638913689771700816888587850870401141258699691842957767751277244898730431133661387467047134484433981177787060170098359551091675547078162628994105059336768899688277001534105634139214685916054341418063765089256916560533758133903201425072663496014864707265961468657383104963511948255624585767112383300762262640610643831456863155585177839996541660165482349098561428869187427041166228070468634563937381531334629576336881455030649995755596325145124734223793125839347553437060497785408173981049436138549985748196271984628426571348163646252262764886984248071945186466633760797213285929901934083981221707551820887262397011978143938594482946586408405050333265568694237789733163116174656466844096612334701477395242561607658777247503796887752139421428400820281530537653317441267540685914958357567483424071510271949209150545687450712323720635784855325759092107797074939274228257018006541765574359870099203162219017268216470904377686856125548846444446093745019362882701609935315307645423337072963963983138477938950021747771822278859063095757473821666222790860150221199250489628336441338642417408096539045363039731027210898127902973395521087862784895505581201737771174356499848792067999618977692501891836073138922942968370611871748339450025110768549956271445005559945684223603176733513070987687707909894884605808685376408018755271362971306964930444288215783995367134019655326934117613064506943208819734145025011766499113688282253084391800989153095591778760212133028789144312735859030415088738698394154838733419514387216970794646531398797586510607079944035653109185908922574300973484678549645969005664117282002550253736456719102324287373213860350634714740417116392791396133837740928466507958869038525793771909234047113029243014334949321864467355966394844127404754694271358624966785828622296791667134355413998807529728342893227231849986818396813053755284852226562135468591106926949654149581851255444524210989963091450482641498429847508728785115500157863552481957631419483653980844529284232076779426969067778268624251622900209159073693066543730845439615826492274428773543658584645949287804706112665695759940945174701548128606495131320030982368895871252165517451639000358655713049506163349167730831142401592981760950879938495486448394439820932193984128699333071225803708900392615350759060778307817759935969162098818781745111512026277572256150371293539934581671930473243257309201067499792713423887766357969153382199398512410131275182676032157758244581888461558799969246121636493517062182768809882064440030267530184965789563609913545786505671614533699889613136082142788943637318401824568888463525490409534414981625374414972301616352396371886567962393258187899738876631518487032701254772989455166174884124050649936115059238133403217268739252969270267149229200478398906940530983689267829896498264496586261609058824310382594505917817530064126664852630202495776569590711462910985975431942684282934827872162106514764745003624578461381467069119210948590522188170469655056122475142814405801815248549288290871500001568832297369698057440293467298981934020604960373087775468626708869321726609767881247242343706714765648509809660254683962149803805449570015563042697893951245648149914100768692302862209669572184552964534702544944643022676492772168379703131455788972425771096834214203860174205614018709974765366728308450710804874586796659111289176832715952808455659468135037864411884424037424090178850290313879321611926380708942007023189287500593269674834198382923464583776861439816083488997073980239576814371886090889695516981974593163938085282621381655278733360094596179514142380843652898743276654897957818079474517744963810597341880685425291309187079462674250300483766488957016537212451001122162052629076539116625621667732890759601586791491093350247854012164361608129066939730747457448482699275082245556046450162560221169744261843641655124486586427605246404422892975579381805918808508845363008215574400431811253743057746413014475091861311187367471037323634007962607891347946751377639896761827996228453040647817374751905272357193440720784292785601265175788581882683230638160415321718901539429742512209951170433676737206588153109620683513288530327761577696204797710976093640688282609660068054898055065787928850609533559791380149749498531748961060749129259679435342369031946440564561474700205952733092743222044936147378225279473653301851844608374953716703985175745700185729550225982443143418222407701344626230471251116362138745978386656228146195313584065731776193218735587156053418732412923618248910865089078974922537147538312157916577821656140178777506691779211638253087501042016422554085124834423323468800142056214968172174194227298041916923987513804387015896044384968669194748100331273067322460277133630366532990740877515357618631841264084287873797657632651024560116485423690317651003453288184670213576270481915964121368151775263411545266174921031998524627647641576138555813456943136297210947096599433515077731524058404587143121884417464352164282379682172444956920159935577809731636967648249955319724292875551526266048119712754477736841824248318568072467215732178076106599477401765135707784384519464194869119158795976358096910173898798178244488712599345345488882757132901203850813638639103627397103862511206436713145019876221920430391554249354603573589554646332229865202137885051698674508976806307290955289493291955257770324538649019913197319799647331733655972210927468345929876782344009271971379425770381384515734082646981647039509259765299224431614403850638340181847312387986846286037885395150261240931566533338897409102677917958021137635541954676627008323281793468506124059444616459189467332194823551633879612775046212984688447431983924413757785330365809893894059341174416728750487593051763630700670337092055299447400816284511704983378696546484081955302383323309136998971253978630997469268829701800528044684644759872770664041433867251767458781779205147999251582700823247405338337213231709666076110917434789283135465747482055394235534595070831726322360115365344446791808144067292119075433131790550633678131949010227489086109689780217009268106135898534871343144827884062733775155891308971870309790147828818289701281578060700154741057581940548357749085151805686378874782152639849847944350304153137772930724939200008814593317132353289907910445265073334059248657447348546575175811399992010630767485880267404025549233576972815996675854099228161667553462342841211260710248603060172938240611840048290100832157624285897737206064413116682305393929372278428178110344012548679886546580855381240076987920571973432286332838812504611966868212273226110842222921460348498863071405158153166703870177088850730777622700434162621040705944419717092305734753967370669529775545333381868417537458226001645241678747322194813306765322989614618418733980382699175187799035135145741628655538337319878015078637498227409299466119995312494422622603472042978345770410928529308423121508804947028006124108037870684576308225114909856623880236456280226382453414380775100142491186207647255882690438215827448951598031803448078814363753008023784271721413882984128052821910245172593318168773384455989109615792716487631658306343486943425244151012196643508538184839441284829061380006458551353793718201731411872195181624393888514939550815087133925586806227088195190332640911871968156044839396024821710220829036183290457797152800223422826205415416872035348179340697323070724192910573250967447586738827738205970114758307712028141752582359542614794860973430885131981485163421335835219959908279322954674465914530035946130103524646772581697173311075748427122899416718939742741482919275547252683352712292446046851351298999561477854753002648890237042390862820223555183374535209667704672677791917590661188932075850156279526405541049046904923453902412278614088895401034425333459500644497602513420255583747454217211524977207260080017354801556200133236263837988375832216233780166256725911835858925561560167482795367210748739897571176714620816599481720753349127041689143301566730439059599812462897111138702168883711299810354989374073684313480609232206847553327104493463660306131512673776162869532494835364031530392031508065567494267521570256459499219381698177625630446203315330019644398605985378591985285290528603294570021788757716179299847840865401719476859368196475782376095887182361928432228450338371392481719601084529602386709078746722845153007668190040679156002598955882510558287529963065898544380344549967063520106139443787768941303997530747485155928722786818656562544333965740304991120295383509810078848986800265745246970074726491712692349005059668848640531515895098269309107698074848939751775798722590918601728396260931956264341272128351242967768535883455584721312683963951120631738085596045353436185181741501734514177659923096171016706166933775312018716130541599965222074666996752952336786870605250723386180685199079487798814570314885934458146369519117017858571557729932540552389906783914514757475608742387666963636298374390507225106902499204470531272493442234466859855867748115601837756700733845840572076286844679959473911389663282680499192554710318807674693675931422477865153238441939676032602592069815992374412093293449193474654280428032515200770986132605213588000783614769748164997550475465522742276332914832396841788360824083174132279486041216476539658641013384930811419681672248542627038919922727447133538912735910420698397498112483580377307986116332439260502691688935340521589716964147199800916479353801866886275070965820725614162577684584487027531482780550119726635831677785436396015772873780167571389957981609071493842056874081188270904110566803849277038468036388592778338339853540417136256115749661071374947880980738022679991613307197448350863264229447255995138334049676988219559825312746903787298429886290993327690551566935101278032098354640863869643224843807646843303888051411247220515891773163601151555678824070800908415053092029345278519672052250721395750923981831971506164456693988250413373311852622950180078750066204850609623106524579774924677380180840907038284164319194571798377819801167179155660156927390592185807975987617228460315699119153541633437813356501320839320546589242477344238351697339875190443549892575627378295957445216257609663473564456994677780860885908181478576186339990544860773364227892937292724875016978781565998665705223342373902910238548302705163934987018593417689846482730937768865386121498342847463326047939115535896815420153104892088767695471961158749222338674818668015590676554607612445296275437165727832266701352138703130534753681715972512886278142784803341975167779852170342204758805571850897127298940563384376035132230760786504128495308808805155666670430353873328878052692643352646724628920076223071307260498939888407830742028339487362443700153234076319095578091435824289255528592010586420122048168180069061033536537063451485420027665128052208460720602294556645978677242954533482975408654170315171760249009877926799255343417457952566369317465552502685275823895863643388375430246357710661082799828372324310808381291897015397264201622543533258437392287005617181372480062667472880763370004864203527477002066881038008929694241310561609045689370646369235568382938943508797743915186605431393028063008929206233502356066671113381824354832192181467990118249333188605478696801549417807970472380868438517101458127834054028712537611300078229756145565035201070529542741341370743254255614569343459854340018391731281559940346381659792785022397561942586860404475343236246858365856775377820290638056237582467332684769098476453290081160956780680297039829992718241392566313240994697916892873273226649214704418338972622673839365438621325221171561278759688597511276518371401847882406482640514512698943343385690150541680635434564286775823839597664745348849001086731311475334341134660070431663366462357762034955610056866267687879997493331054993963717548548514923920119700188962074626381462356216172852130975370147190289887498428373831577996524469205271235937881532901757114603568197885167399353169266401818439917573165348874233362373801221473536243515200272372786676741346763473537437735880619450291791257980066171834119870713854411522351959712506979647410179849978785486126639783516720245902976100595606881247512420449522580550031893440354125035789400144246945292487524878273021305117574010476459187214062957156055302726999403892679670155677768671817372118460462415981867119012532252695227616703408176999176768445182064382673477990620037841783349506863391249920924084706227769114670931513402016498311468029408581933504535595026308079409492301638130982925253274925029064058531879916188759561872094500864717769959894279929153666015116379982301424250371266182710720073247546854214972003959884324898196403982263967447617389476638052380767659350328464025969142014514499513134815862257013463749280617239270399155861838335993106389502562122733376573223138619375415391470995232010913138135897421450868469310599376559436469682531208113242027017336087885020751407704121976161892602957293352661389396439511869333433376533159371051963592192316040741993309181791455805552658491021462411577626740182306882891608225625650337722285557730557712518639601317664733664594564992422558112997273794093797894682161735908422941209777518765319067467129145844606829590289125573418554309366174794729613535287738907492686111257072898407310254961898524731034656498840481619908461831867470347727370534182253079572418040972981401505962692301759224983598058946564813544115036374124427960030348780628632159912039780763919892985779201127405898899861848505887847636806381279374606760822128623508246148134464628486247731758993623904316392251603762678119776530866454109769086800771503480442228550664189696121842488934189225961545952200839217196487754740607315684122442131472072509597583307344221617971468318762944806656064690488520417571899482291051551036172775835686920957741336844707583598694445171768006324451703180552765162578577515373496807093519605136900363273346818043124430162424691686922829471566146752687097813163460208271412319531235969161046069751739418600115698547972167854415843201065670682214264377831039598401129608404519367474680076548476261655469526573209032660183109926109783281885693554987488308361952850415973706611947287930414484674110274737873628368566667717706886508475359736383307898148463648772808547611807030473747860037204803966907792772322600856635248406955000759293241588020305962027144197648127068441520739600246298233777571430399526521786994903523204500733350058244158325561084687290545563045150157518284400921133265876521963324544532008627312483275748643385330523456527913592947241178052059242180888669323321932758865028114439014038588436036059204540461641406112894053584820448552424291369174022567825930576074273734160132225615125347192524425921929728040160983094897359278996692802428480655497092188788907844910187825643131649395674908070426425189447528273234319319015684434238068156855702150871778469785572843399059862175482824720653841322114530041050486569795610190741422032317235867432088911084041498785478539307636450655141072316755463824968237682573534765844342529763925876778264269986358236791228882696197676579460698643661861342742212785413141069742540566585927568563582445452930226886923996702302829471097914355929448590554469741535876737934658563197020748239285013621076605689753405305176079431547656884796446405812228351616356377305900625524679073775575323844811941006005341268947595901096284861222370389700026130249481930651282286441554097941886021182811023804195955685381778753409298628048362634884290161638952114174087060643324687119938514836931861544757780763933451160193912344613665393239821153521944056841017384715867812201824182037087944669762659784773052865240455313545465351408673304872733179998174017324295275469572677215459190716037237964449453681247251015749857544040165332353355681735296462889248010962754121007880668202921760152601259117272248548682148849388096240528571974757226909056778076940478845793503763371414540958601567593847368257875665825377213391946354506285505397209755736605372313094988715892962485261713738902392650560346577988296653962251468179930037334260955179548219331015821562372943000740270523464311843570999600104722284003151962827778763987931376940377387469359498017184066451176756122192706190419487895473945318253373747792642150763764233330547949967198469792423426321488082291139184845040217616455556836764479837109914613029594416616283802686923907462023744815595751110836477207324191140991655026042513159855304426524875037961745125774994223185194567706142215425222004344234051035716592125935993038425588266832544452536543481907160451132104949745243556226183349193419452068318634499311639528929166998729017068267986628783232125135524686840033252628765139114804761888956187178293598551481479736755378498007753291120298961436790374232524378476360528885691650842845403142275502377839465778136465116851402956915273266376049661315589188007307228313302009038304990413588680226861475876499882572901395583048609004044308255951699667428794976693996192324987468259409667239055303463413080148190195689693711692468218545791438346768241678780308209229943385024872711576655935857945407778176528561022286794568410958845188468680428343755444493966502354745266903604187249311913160414162671042406715975001443124967644109250536946488887895608261425569413652861877628271766810453638005221156509833758767365491162444985616137253525403376199429410699026111125939215310973545144084849986348855713769494234462698043653298423204022001653048609069538257637147238072038998345054238008443433730305950476800219362463795229570276949401534340128176678328180775181931612174868276548288591069513190185620401637885741816783915656220800497643391748843400537864752811188679636753693317832249899420702691203827724783539655230336531385278449557270272822783751510337228123872995990675295722005171142862406964359259946918120989886810503828050709845136330245305237268408131848131676174177199425973822903826094779584114445066623184822329602750136172089975907765383403292480939836620240853372054087191746879794620002973675017224160966153406101609139216572327881058326816914400299576901897689417372621653269255917823706916008483749171486458264728450955175604756726724957701168411070351955684550965170890151033719372259841900759134495709486624738253878621839130888941138634099260043763460490523102939751484147903707683897257601696202968697695421422377544744324616566751874344267649604678541745540751379583579869780836616270829398625247064581706127811956019807920613819392773499228537759110692074594217404654373358805158580551013516462395089982106789491431134259451808691705495661045513610214811923945316619908129562867972488210467867697733412596521060749115134575999334358617591162947701893006036472841835207264966326610115699606120588711895082653116852014389841676052412355874553286550715143020442060363187024883928875340371500477975880526424207373018640377796839095030741654845368723162566302170221474063079961648088722347836010326389388438891220384172344718280311893502352139452245790894880171160011370481062721895377186351639433091981556102687114080850374450822514919339458830123551482387596059071036970530469114431170356110033695258648095267394110982921325561241480160508034569981442995514744757756999783941321569783832695688184198429119202810579811851663413459865899830093227580231593482125386831770120282642109372854440334467810164040194018063074970564678429768509168616017565476864231669006757675147332246765607213172127199442419825096536204607638784586390944016416626158755276796200803065142971883885415726366840942647874675526104949428539475581109998936989416990225449171425187784820624201616635926454984318600679002742707162425490827977654738082386740409128883104812386992862109295440792623817891270856312383640787817831449321581885506920505746470416761492594098839800449705044976359209719448774237513656748938111134063210046493321143091811439055115345261098202693225484820383254982480080212782399470940601784483415362742301993249258715643184394230970226873277670077611921814767582353244415551012719506773236326735598779309014165944195006951019262497224532828298926583532359035772414196552560386104674426322563039347176854611718715067856306930857562839965688686154967106282344426756487667534865875133837143126086517138683068786316746996586244206184124564021610340122912620214253291385752055376615114646571098324126844028644919494787527881726856428106910533265210686717985137057507225390890515598792301884743099651059298499003685889512111867175454329151314708846126676760913309027214784072377258337358377645060422439271618304703578024248940383163273604149976237311535112904651363381002217612053037913466397889464805000396755533474894576040998516675948543680030817074461584343132655694252270316904427445104286944223095702803084604572478883099016563101541771234864885782100323474759129637010607283930969473039844726546062101876805374960485944093921716185158838960158387524667201516904043654218312005884693310275315769269889807231890301713263354318077133423867546347823850926673073922093810148852180719035390663993531946938743715525100198054217061484920877251413277493789398018498321015851208468310872662336161814893387150619249418044452236003262441375658484863769270350498361347315431083402561166873341628023230673146973260884133761519427803643660857632429378233676169594019880377685985816753753552150074437349414856248264663417164818241585505503063368879430236440414921083413674800246917366130531458576999067746984717461656011116826401462026288422255405379760253619633971560491112099916063429728873860775358347680312818020630497165274397016078310027428118950507627427629524807678217043306090756383612393659203421199302003146991124764798836872651615664558217193435128681940118785741958189447070770047519256848574207581483963817722790173596332103200484987944429948041022706722670888239542123531241891759166195414334719866948242359602126974889572770342635129766057437695902596068240747155208045104999514997888563066388942060438207028966555397319268473799872874784292253128678418241294339012072147796983093570603213646512683392057346029476994152015661566170017057405305115260556060132422385971137589143930558027472518660937050463051058563481942130235874455932101466405061298416914921898935492768244171301034161615972298905636879800350973082229484898907960763995417662409959551200849783778294592927368969528046891045139535961158378695911662148462699950110219845388811505953515901931100442920264541826310249797676869694840098769511968890807540199526452506257738331986661236911495905907528987457959268772618028590362905676704358963729622297152044675955020050536520756026024859322731908887008500208402676393112002504504573549785083221453285048022784835568287475732876088503145463869767361978280731041639426962732799521632281466964004375205867573532454342498342054005494318551917643991186737531245268279993019067920541210777926355671587221731016004627377263006185624668270327903674501008180329379900272752487461323646988997972205247779774906814941907679234888399936079569923060972075066550622795822950205667354509274789788064229454092883528642451190618071536202557841025598186744262020453672572483317484069214460412496159293097591532315085459500560044681582816610487367420753518102208182927527963249901915954904760526854490169134441111429231832776385815078309184024791283070036569804306827532189697650890922587762420739040416801032741503996664343204231874541436740114455186925563378076419457958382959832221865049325263290085261066599247662245668952860003829827217710099372482645611819995477022777999056094300035579408457624774018999180073888646846918503690828263126769518585298695965680676998758102603073752582297853562173897405697143720834479355261939358327909796230972526379435002173376671360610418573650804047701731479180602975212513194815861505323512861624014970037206193573253251764085336663351442158429198797068052033581488613309884645365593186085731163555148212304950944701159449623495221763395261225895982728726528676633376468324376727380323323611206476266165492185104430192258785580184843517069069584383440006375457531391381777424146674053616449396110151487937084653703026620543143050190142201169795977051027554259062899689130480336254800207722744277744770848365523538357235424125870028741300153459595923735915909901535988450793158179068882660570341139516779576088074690808427669804273907792257450086591253957398183092691948815093754030953480612038297206441605327209235798836803291429784120290231142838633692747602582792279027809051884313438911959529727238113478580636539272995236766561017000580457649024507319819726644345092308335913769405462630224247515128290469611809592542760578361490116233816455615147986569345205616460688497806353117823898375935777361956881288082935315271155231882007819091272266350778408742365458887502856452828389065631343461994260580331604476278322825460175819383494743131929833722784741357772499023074820272542466844664464834504893003556390555625569968452099873119921767943011661523679770200874417619754478741177866139703349106947148740616636512560481492497134090785459600369569702122313220286853830806656994232861256480927447725797983157235914969342028913803836702107579185936120348036818323704945492048642554739030211880816563487969596419359925361396109243328672932199212502263721136669410721496547317789114643843751138534491877046947719256120644587136035997982339537818961373330277853340368174935687828395188155236993025137815743511435863076265238025948276080060570880001670450685610498461261677210449071893923223915922477854356267465828728354670128887354585841496330678238752273783125444013890351863366267512577746723967178287199425437953624884935258315234812027948328926469263210622543528287279189744953597926373594419556729390003074677281922554261643742209576287569042497374570781239354371697124295367036494601633652146694113134405353244400991358223880647074086602593905767443413187178502465293552840156459206378853433450752443703783002462637943883593873833721010059920992949601598929958217361686627176996009688477438255117636141279644810085717657312748660160652880998479609748155468948828269628558828294305055783100457791194017829236823913847047372068663465504063213785320997275974482356385511335307228454477425831984139587527556896798528475032188518398786041626090437807564392051946549567486099921842941950050907207891186513615965395341783888571972681564420755463116760807515487439592782289659215831014767891340301521419900851988397270808889021019556349240328226815075530639213360056157465033926901918902489089433505385282320607761724168329109600496356268212472424250878418738969544741213879406663265566283612511292816505147372245192236185346535002301565853045407153262813061742789254483068900559155530753898694222697261831355366262965411058420124942585894676165335324332258516801283886044195567890350671526940185530088952213669965400566736957634354821265088612724885257462541356623359728698745543004127824397510794034851402555646367934675256834133798172367476879401316307800502149735608726184636592142826595554126932628898763161567242693331137153210693594466329753589834066601191316373993840530415497728659240139391103996036947185242477811225183129700891008178763211228754205009528383634270712362929113106540854800584998583219104131840354608629662422735467267798878545980505920836247903994841488538697273401138108008802471563718864031650031802344775486693760850499154310696273779315411415958636058478856177107559810110430460752664229680326570783827190827338151844267219343523185405260703877466896205531845708055599353446082395374773875893627984954916784232493858023685970909867512547496732211402874572254976533480408714622095141536654758340828997403694247080054712854971187459663654082737058910461349404594681037333741782077221131945972555406169613568718814753887552327359254851758576337322667347607175666658437285482248073571092713184932517650414826972026277382734435672064259949232604938570735289115233848299670586685370164414959561442325883104463497520458080274159941374050488243713800478908357896615700875977201818771582508200650840811601818344185328902826496405873332993524244339654690980997354356994561184117885275668029394672367453936712312555153479164635251963026115395409215138664412274654850032804839502583906124054377612808224097640883970680025330202879771677180769083629277668790546087832006923895783960434520441439003318583394378856192903042088226182224957192422718446352269078231526605229609738255807690924098944313886529182930488558858502363445553437020902082366102074347375402464053101304405292904392976505737319695914249297692021262412637199878763719501566171599621534146828961441700095475603127021170415053361628069977126610630379277791563506758443362368349166774285898937497345019010999034258023175888376871891029730335511636978654517401816372852352224480997049467866596394885206988371700431980387132381980024324918032861828944160427607189342125390848975232828820879799994923040847223194649620427843207768394605843005604383967816477288328744473877022470474605790277636979391605112105308090663841685677764479797385959336129463255906583942896399801364485815854670077741173663870684798720026828481313594384972693241373818582107469223377214221723690085110351963570076556740180913335221337987536079970805138720354012486655322458423410031864529067159527811924042114811096911762510725621140430213928703045369881393917585266624184487879368888870652516281379646069998881773268424796909170522106154382447675955831665971809779959129167383546129153125456645863885186751527840240450044727430284803890949386887279081329935971173525806235064681276407496105519589284156449404232704410181795329297213359935251619242962392231431793236471679703453790438515631879701712003123018464831464586241511914512946694590313869831764870263587354025946489495396792865133062741118857206371187692405815909972334530213525575777727451130730183555428046280316945182312256544268313658232553714353791002475486108646219492975183657931946854677313253415534313548928062257528599046115021034705076963008828638710630935467869512751850668945850228466912541500190831281562915035397241780253548452800691060459861866651993547551909011430108792676042174343174259228023274663553319435239153915728303658845989206281784004483361019518924414407838212090497366936227866675853724215478947255555380485159911366306366952972403741451230745716478081046612948611886551869792080031313401323723268563507271379517649832212212356237772374144692585208311736910604843488558129658629325022059824516003111060262019461799185389230964932840889589068245645824535302524929498853637310783589454521352910972328824005907036134586846501798358497363690578030004217364535141892925578895667290866034379641633452391348385846132575668128183587188297277885018534438036422880173018304119879470309552381585851733580576430564059838313170317125305173545267357466248915306114647845082786339945787772474727776249731607943815050061425305523819091985096313878104893624190165780480174528577829262945547294412844301534050703944501066471045071879870666250402285278538265554086639811378267656325039730631524799107328373387693138405681798996017476575551516667655894597909605447214246866015166457656464725356448547394800638247439996361439387005135787386239517294046655937279313520050538155132937005859819956361363163251094413842883038870751716556641196533544252714003401560299707325381512121238577713142168370137567371830239015884797515980419702179535913111464900098967038794488273091778817376526851810544028479995038436883143387691376371654464906513501751294793366373754243417821021147167290191764134480102100024318243793669740779374512221062311847471950559303180883261353130469214539574033257658180749328022164766329797859718403295281667782539704724151593356274024069836414086858504969970581132093009704905310295327387890421247652430779107532153260950084803378726357768669610834354096601502486241869802170381343198372501863497488056786057083833955623872371923161246813283608252147300691025330600860016196005358081819001681696389285400748299551942065514514058974986100057280140588030006204187932976279809425440163475799177995881072045423736097746142125077868119569383825464221067243610503415471854633197990892645670972437026852205284722268896842143048024774672989332545768082097926094583938839659314582960209112285772614342935214486890380000983247007516370836120883364345583555838941646562009765119928136494122656557498829641167175052043753892910898839693538637514929112008009189284575775852947694987437894550440179883358763939306653541003959486492440621542310231001328414695595369038339874364008486618899027921974010205197325984680724571394496346548863766884622634664203884588164000862475227522351058525451627686079704474145085004859319455229655515557966701087413282817047404010233293639291941751837109000889373852538767155773711432714706541032322042232632408904177876883772497099733076917449854094698459703675768393080367256245852000384642015628113302553542233075534485969878934881688393480637437815961841021946847415861597981852476830898596594143957424237856800235546018115242282109413248009991310959317987036031219160342559878996052064766422404374753567461208413991581731268369893019586989676570601683566612196016468671074989632087164385722451440884757658062867346518883378894708701562718212798079859064192894255637726862554067914545308445009416475894041163507861184059022067443822929152718447816807730590235552094136663238751514377719938083183821841163061855378718611325671792532308687200439120394468146384131285823878663675205623845658450301905192592949451217677724539612271835156450275319367906543151381166714832758692502182339943753262682372301974696397063714466987300736563343624022811854500180992277221295006422169943928147480523730960808036705189176974345744785953718690113686827930652257888801560953314605628118562154915553981441327432938907807154898438942598520233662224296202062203231030849807658755697758508712034231033256724230654449310977352042166990836184264157632922569864362603271711657863494714742567095361108765935418923365962636216698403009423580446990292818531611665816728496041140154922206010293289741406782819691713906419232565967057000570279059553172172402775527841487605360189225525416107096783071938131754548073519499860101016246312370966301295282087393892964185813674263168814306664125854251061051272228494552419345320907981222775303723875245549576430643691868240437043671749570193644850260984111475833040684863203302276926945249272266721130566295822592725503043377739307127946899347074925202540466630121761387972554506969680778133299668431679006559842720654820732075916097267793391977626585880627780472000403456036254326633613616741190543787068502226399990110713031459674089209801700073900853207365468736934859087846947920342848834937588192948054462005674280431391268979327143077906436617241905629321359883209428243591507196207106353257964127790284535334746314915728374655601608704776534889678812933815530083289558662245881783907513086597706830244890875804184874482253693048659104740342294578573674404001765165168810598506175456460428456764670844523972171457922891885144038335880409867241395169369763130320381384226434789807658410808062445392664100305603267977165819905020934942589634752103306239925618327041751672680169871449094802790187427262694176524890639998002137108107371909536416567703882273645655973016351475795756445364890268244506315773965037326296312457896639574062297999984652112805392798871769914897263150118341758754532708495369771679504539026625187098991476732331824683007229428039396375792363598122467128377270272081067480817908734041901480541393882437890405884376784102542351775356496552001925038927592432014665846914996408409797253394285339723936708575641240426758250386342274654259111822375450872158313356090557451207271801126635214874915751980055008142926444454941254213743158324193863724915390226575368582494982481319912681998187060044265765106770487715649275344077988937001333005960720169044143321186485239399102934757319121094444049966517093081145156288950404264730189762220382653600349286890507247201203970455594350314385177811259962204413205486717917060447943616991994408955633419311228683848554305546202804251047702263890204513798109904100124147874999671076978479609058232452177620218979278732922606607008361745227029704482457382042116795913264981062456100163128986011545398870713562727277561898637992506791945622750599249783802126687744904430293934892846303715444245314377718063734242941237861716507358670503400181385798389629508335153071565441156213085115527973415740557374591862578931272207027465657310246273583726949882602783584375881643329548021849271024944641418270590640621026785394093378432265265252318129841077048201580509779014986862413085830880156965225912874624756681272564814669928304580695375998178877366198902127360610610545888982932726280300372852764599980542048828990287538445497363611268065747710155849493587788897411549272912640191380388132725880733309262302657075459787738749460365675661008985177834780696312046197722396196953696214782446841464982392354787503706330155128777464990069161309049277817858258250733747838485175672548048767730021033228779897514657139930605637576162932191247081021985397473126888998313276844830251701324181354597111643442696146778604074304352987935104389081899395665105970774201167339985129501740984733018875545814560408228612041811545023495923630147236301068495256650682783427917195323128426931792815017063217586394353025257766654439461492216012102080557078000242988866805391690893711485940530777674239673585232501883004956388881812779960136155608692533536842410267689025787169973261118356959197507156136285434440901519235520558915592475159478424373640346013111271165172596226018239140936721099568270982086395206158203558182387860262732368073930267887813201347439348133037126455957257169052806863966628467799941254090517657123827630311377111004619182298113096443897703557759372051852592612044070200152544110988380920724086052590713372581406865649004566526518279651003984668936288376167250580573911499080866635895948200014235093413286933662583541853092033239228231121396121127178326107402891791455672860118594007796054956413133670695948375777425929503037075395953150531484069690387866748003509635006370798617254180451644452329657912614730647301683608006338247172588968467339426437965893506138937091735687030612205458393611088975020387478431425564155114331250005556904191293867704236183752118169001976758500901292764004441896596088485380112667331896141176847894936833707923717152039828028915546276789271102061736888271206091156673785461848353610211934666728418483202158977253539774814270075543066977237120623965227510297720587894546956988794687344537652813555225525272785520432262602162744804089308950126011273606384717417931835132510451817885215755019890044427706034819424137483093372975925293830977757104004169370954176494104484016155788065480782554106356299261732791528126600106735323117967094251637530375469831519682580914695337312080329357521106129598134003543343934205772200352839289791137636042236208314411855083964040779641082061981767647866963722048753205065395353007508079529731517899354637498574607608806000671227019568014687413878409354062652669261989710710430360979347350618852486443831159719554457885927146989820227651257962573255786837062839546385549039370193781841524668780083165683781419545092820156383188658912658347635366558424999707209334505946578717996264318406371915688688180745023263898729256526331700664581530666690669881892141415361871349603181639941978367657138871996505525642026655840677659635637456839604321243593168473649259820390666889158354420529612283536618381769053887063965062250456589416599989645420260055404597542528592855713899161339744024706066303576546190323473533884650419678894628762707698065346477177906350483582598012422741544644139659740688497261095754274945725300840359094775151704146779492734184100669950823581192406512094116930190339330681312701406703437311285437512908015137372980751533852301520240240857200791168503264853082260137659256173899580055186678617610265120776218190351870025418306824951751632733557632479472495847046643059807288204287883502571145829237594943653636815039968107941870684217910049837565514930396611378610099928454412180688504254360740415281456860491457527777115759139456011946869568572573731789508189911381121320763616431287627975241231871761848079634124080783681256618116024773617620802622787750808321680679470411756797928662748277673674751258281127053013321224691031147948404068348710699464113994759362893945627294303948894604864406404567280327757634921925771159459308775973106997706581746447970300499206334126942309860675484113869831857064020280711699525788474920571020837463532870565908705496652828520251838821906610945744558581874032703735326466989460397214561127474429225592232241993963189305076522984236478842240223268485947609316283772357094154358672852565702228760213304892576555100419741941026115254165769434730023787432814554091101148747167515697235792749789845189265173167627456746507469786250725828992370843155300944033891221762309326864827609461915668911907815424758935773943743751374889895702974872404656225607685484029106986842870868408002831234653134569623686731553780029946275673415516960184648348119300452729498933167484484380962371900404984680301503060855614065224847558826727278382446256796365220456375030178350491010446721422180027421927938182636490438908836169661427951038345749656312032660159224049002318926381204483913391366242279560564385476671407515862363225844583457018196759436257146205606653961389553136128477304392162592401960399775713295661503442797705737367110745323810237452406572327618774985404098102612116094711379293451294959463630806395941124617619431537671103910692504403839749416012375425035519245781308840898147538147299314470854943930691908028134296414311841692259384077246936424646313105935790159842490622521455639086971516540093862517694321319944170769430997695121411057789771665017308566883804664893050256967953261059215335469415493664163360368897965902783826765816835874467101087229948207453741141128867928458894283359721111609751596904856610088513039243822397707345814101593625260919941082801183299316978188332086521946401926284472396185336182629131355788869528930577447649884068507303700376629273249622567933545999096304816025413868051707309036788222939799283233154259705541409672934692220215674150261988146547618622585423024948653013309555314056066719761671737985680966670163606759838927954610672911724876585551573252880215300611747441770866492016754103918026832281551897901288330804481757197601550971921130176765605693846364178380818880641273057579842137942520281252173030713988517477233775638048506553193098060159700091729306976085107658703675938405881420319143184627948138945962936502598044352083061567414514087138222134802615277565792709642308868128558609253853062655436519052442889780760705567470605517018531345679766841371373412996031287048403096606305856488504682930273548445409072101749082950793335496193673819460063414217853981066442139006212973123486583469993741214061794568367846876891910246273901780792972237852594847032577682844017918206029831922509744836586735104073108694644250887208634007836704398526796810504994497650416122145178624319784484787739493879797786216675227257054746590796169514453061056445103680960931281709720934779376580691124807799980425790714322048948296455495986335038625090690061122349205538717984950105937213036658947692777698888544175306559140105819451579892906868509676518810604022967662429279263735590504314187481435947477023385275015544369078979285371913210898527100098832573421729381321584893936122310858395191416446301430939769885074920371509156670256129675248441986386434557416965221236242720010576476618590563537207370751010758985062651357554071551023363642323813397204893392357799550461784057321850114761106406655499940365524335720225495802208665417676851603689755930329688838768427490959704039339103422868526503933203658526998367049743707101694576412845525370150045189935051902706862621070618793936009492489778884943113158767595250549567756052229183065574885095178912433732911490711875729700681240220880078936708722017869557598852327833968146570499348125883057952102596278365568943252516145380767483161346932498984016155883500398951543296896455144228661696435522601911983851651286570321427615213484061432940521027025812675670002203009852794113918109974757283085154749423975622960367963890285564756495719071797946381105105562454957015356813133206912403790818318026670619747492170715961590101254612088608170240503104206977154476129582819965406328915118729811643745358919194289360130771985753521479367759848039005799789935058917068653432175244940665258065343303814151934804839320943233442763142411055449946430076398776518373222495541061027064744531661559340297746720289647455160882288466617687780594185649720392925286981737488640278952212189863238669736283136421172124442367981120381168017162939393428612859312962781284180805812275631737193754019125568473433343117626483784231678950589407700480618668949215908763705554360994761621767546099365992252919346103309420420501738443185785492139120150696545075951379958999556596228929079597991166467763202564518436812536017384539230158115474827914757792348312093523112504583051028541535006120870588751599974022428181805443889197565586519319235705630071475382735152317311727542663823550328945503326372670979800713778452200683811122206821428735946463902009553123531630326252235276827765600596924216614206944522932413246715795822680243698380135009709982815537711841452349240468449505389596947849864871673368121611776366535683356479171798626073239047870697473901699282019770953406617926002491579286612232672888108327948735072685161685326944909054194706779460075194570895624464466344205637332157898404089129977859618750108083626999475431787630612341729348402022535341870900988696730349631855053905278527762458485530073298844949910511536525903954699291234258961696721010387984062142303037246751343945384765160232147734015368153162195684215622851027131013602575723561152696444112265158985241316329796373551916406908485071887917888326959225967364482200103309670597404018200166136462496318115165085653292977957761078932956914993340531780444603625688251229777591764793829024635266233838403850272206038389296054807288635493694804664414610559779700397881224537405964743017391463033412724350109736481090823774993626634562334665967442441806375412000097878668902565743480384291150929065977290164675314895207127411039783342673979589862656596904974991485604427652127311433306742923922492901237950519104559244979051541613358515604114712858233879032445913572042388226543812042443950583408595169679454492862599096569986927358437203580588938351899463434449224529920451155863140542329742247932425287057797463905229131255160109540298930433810734400263705738282253750018328093435572692650994242006597980497122303445350831872384446773199182836080668520477691451419287878454688880422251722984770728587348974341351946996381326226506796311344000855864920225214184126278500824584183007751899025423463479543760261244268134996068268961631393398266328473207200099424149393141285317877532470518784787043104665588296509668266649359933735135519664109570123704557529961416801669806947736436914025557286694854079118886183709869069289028109656835961354996923127267106337977186863439965056783913898069413072054332257269132324800014570941451713162344603943133218825599610343707395582829378829712088797693193775628991466248382609279300228321801871159849652880059792957265013071598326881394510145322476487469372565827056401956236836054206327192697275847062975613901193743774319842283904624769444854103681327838453136637304540660768142285660021216740283951402680088567228370544826537324303641394042893576444721841341913280085859831720077627493175732495579651919706107943134583905315674863787098282556559590900317662159613447086212060335890611565293759976023647393382157121856048961319716903761721425750659652689054436292587048831279618218765877831257138500363085508412868137642050257465504679518179579633568055613953387795372795257154884360669984248238478341802857514835935770968855306121459285959266793857806900159374449155877518296111445057433562069801062836698133320701095486559060323775877624957403583609206964739907248511864266549632303119058446795944290181086971956108711860753015214833462669576867645128740368278848817913447531797609218586716014822438807215328105381866680559048821607829524059666799386026342580194140904808472294622677573652347579248718908124888625856804683982073043595892820114060294545834943196673987365608246104964720874079071660369332488037453002929404097173947108961187450380578686913525344615081688225371129870709270114494394002125329093506882336131572203525085555208992373242925938320948538159613136047847279329299862656574732982481895444527620735506754134668677733652153125953985073415065310218198368852957941428321518859477166315850148780912519331588177941623670144187434865903759101212503242540499201191313457640281801504651942599030598083826942826130590153240404854737738810442782872053645175173608136178795876937174378202496601330261658281715706546726119305446330722988980877901591625444085238097675881186518854453943094456915672642601406274252900616363373034636157993046393657724707241143125159825767777066380757578702810408934582712245006120096243758681545841284086278964240148441671443203893469529879281539535201844604480264579640462006249562635030680798605234477516037213034562109536866909237770957323369098072735866928149298007698704246866458436319745261258281773059825113772350684839491569626620256089690753233683172779196729992732955303446434172254204117229393042795507212245851385282294084563159658079655461182806221432860308926668605633554949272803766807603419029064302049928330323873546370394230990002150481467622228913631826859151312104577270072907845907491727591127273165058009539243938307808908088116997396713864012094276998268299753131845284926511322855604027003352651841318831093508220784488278473590450924700446103773594545270660897537145292887229344520779916419592833833372363467382013159267919488980865486430347973734546164120038325183630722666907587909036691370102005327585911893797576476227094778753359753183055161679603522430336776399642514055523783814369991624130982620772970722916130700330268449758574628817742737556643702505277132770742468102681737479575861569597706731425545993541343072322107553954706317813258177639060928205736416688076963375472273176692263473177694179615322195205955419042964359930605212831978258669209175000124234587460138047455428205479669727438886350138618298245871548317665911514978693199862245988150036817854828498873731447723730504598722384288796438318918439748745718152814206351725589571345835346248217362978412144701185542020207217828660833296781366391055691130943034481253145494118113406737138084363531121764024945713364558896838233506658489579235619247681670727269561443250058124807290285815933571679303543420755307455310611268274138144871070353153213244549607880691575051128437256758275972552715314976454525758297419050749920743578350691019290747322007501162463244475064021750042570573245373010936452866195215265438879913917769601616569389636539765360607522868009550080443316582352385110944176483736870342505501681936114697437111438898356838097377881418222154734946746584014826059516360000847428627081288396941223829749921428227574071561173838170052943972026872348958546236070940874477456825939084095952845518598894803287997569188035550900394518566026594564890869406811308318429349580874170125254064932182512455211503962890537703328450226178173443842515902954070226482260325028938953375852797762795568095369133356016613225002722861995295730355759196752118118240419781436288105373840000792694068713818455739815448604851465398341366869655697423953728388736632892547864683762838213341483104016623609017139298832588878708142902026889160033649930507630742273187804316791197052957961120499263336729426487208570646781131693390934861499783503091921686134010147829387994598997942473005128119646197736177453621279671657761785505416421605341491764722565859531357355923925754627909351273285810032274982439467016398237099751374809526512594253944609464721537414124224011099739075346628891473977621098892318264240719509590909664011859568312643131557966579852112621491290906907968050287088560132730304643629012032867416831752237072177334680197685121625161730364310341119065148566727837554711478281529533000683201341968933197706729172749246023056485873972414375636462528651404273383610557595617719597216766244452886633514096814535411384870155452662430279202209274972571304279209418216060589836596591028162257576987188615204234960302154719537234903151903026930744062143815099698293832330503954256746223527142366910048973932620440435120132374450131232793267912170837128746477801957396005100700178057221305564845273566050717905132932216037810873882066874689927264514278947260998924343797245389024048709590951386476840598210646239890333790660182757494509776772265114163474501991764411932304215134580312679213352708729812800474841240856525737153599680670007542105584956388293832436501610016431544542741864953720119873092489128152141339618722191621464386897460149777159844951899174215584145686910260475479219958566507386766999764248268779847250819297509957941272252982021806859244040834815867138126706314508564108829165507238631802266676661517811509116425298993005575768872357821636691505784632780507929846984958887091586710732367654383210440675899094751048604641647136458696972325540830313772341800273662351491541903578358552652708173919155093858410320350262376294624723762052613538089229141595597400594226211239646311014561977404290423614709399872593910654748958427329216064552207094083849680590428098890429741719969766793166528571371410538394540374315577878417385029352151743684567080952437512252009113462949918244600474180087686742953501491705325489289965791496015581309404646917094153138139085159658672739409817168008918540242493942710399135064084706869429774201507334322211357075140673460253679497911414203902818278982496902211313020641613025235839460644646632770233988878413286049513934250692377030607570310738020242797642013575195192930327031112652049501424474216312708460982147257330660322962156874260933149310870770320212031989980605093992271003553823071041121961681870573580893685170163579453936926814142063540155163573070766495671805682705375715558132722293025787911749189677470055983745847560208496758024036845101542145152757207329542169768811061764391679616150674639947949264588605810080878682653661021433003701670905118169969820671062631898277693695668741646422032241423019448530406339535348660044811151886612063145639480529970775204100240137326499081165420896199332180726285400871251797968467179806893719031764372281046030170427862704361914889090996411377648590448313388884320858222220815905778645289022783599022352784010768909968189139487281761863409276471868967548521446555273839206086013515950055514466062291960979837307652320771941460759435195355254187842354389171376564755217301982961154362571376845479340234731254005116730603703914217622422368755019078709104676195194779332996786774075715986940216137237032853107683089343923574580891543735527578254393133499729408371975172893542919199918049059706321257818242064386983913203948237323728230557819295176551585785219253818274364264812115177648368228184243314858427156359810335492718559125925742061444903413933766171580156161325352306842790019906126072048154289364108831442756338672078420281932543640107032239490412772917046448272378673219085708740581818178694387990510157834804171013859243197760172641253793367173184797268937523384778026326823613398460055196985310921467981443165550209778962536622761194290880086489175436981693168653669996735485236740241690192911713870971847025477677399056215620656355740424903820703115274626434465014715821897336234698803360802180997299232524748067207645122684520287224237572010813937348863077668222251172794080553967430631820738142249726320454441287558051269106663741694065735577649377892146655917789050366250331535141485469810476138424646642813001729725728211796805054538128478790582951873823755443744712367581637161651776327438599060315996071978954245197640833149423780265991325157674763094043778687254245833534306195975242855348851424803883299448981401276056351363313793358226228592048498868380543827490373594831272236678848887004316226594011858624707579999100836955974890538511562831355084417348731968712043939655450886358106253955666410056067817015306812882875912214465597117658841252837699208815318438555412586710394270620080060226386921146338698931361395130422701813661951841916563773099177408888324312474410894070634666167131028015286761417402139995722096677743678294595025953569552360578571148465994329483174747474497351874458145904639992517172215158471879546120614402005168708347157276698414689829423872603985198931251209704696831208620308658128396893358616708813258853301584921386643054642341847388921910734076621101216592962450045346099800533211644120341536895262482954840665186638873774182948186932751560779264924807965483715146265181633559479746340253536855064277517393566048222863724229864233990572315565656077487609369526901254075369883966078993844823255626009122724038437919982679362878794514504797645513292691169379607375518146831177525890124320382625450787258617030595570155045993026481417944119553522593133250252995299663255427211064503089611534743051221474570800412842508030569997214778158879014380235168446307587934812152611792900727032915123267241941081938348962776104614991640161439825258758860768428600129647785284432644722492921763301162392458232367953360830001568133437686220212975007390004608108760572826199460983980970623965480208295588355106438513937608448477548996671492350472364186371490243287088304188935696094633533176850284719471950936753859078628876907471640618484681552051508925230625573464295396449134983393707687887995646289489181720645429169879425016763540297615422770355323680953679768111807926594941893185552173736486938049884252653737974851479240820106434285068845169377144188661451376506617505726951137794429776833820152162106078070999127867172224511973233190174046143866570966155291143502410882096416445432665135978745827979085121972416619718335660019437480787807138637160811875879407079033389233435722465905072349752297428283459219192798665536065515376291769295348660618795170876443892402451065721091547073610052944532247907257834206932935740917213122157474574124981676026214555616982645340759301114465668856108717632575690600071171893473605654941285449527052604159921410677059145747630720302963160747777518107936419490406986874932082541954360438244390790807581059110969503121872945414165754459332615836587553557905771784257835178470941042138814128710502269129529952344553383014934008335079781786371195586765043798281356939881760715066332048306405512334342134199045906259704449647213688070450749520696139824193682157227984050476398607389762369356924815815580129566879182287738715571183300948229189153516386342010584919899436796621494743931796465878535382945407091260543361398949277315621684700232832646347985879050028259376148226192123488922078726805811108817859612617995989552372376093430508913936894028924797739055164372147007486681728893951914232278555290615424082410962677807470700114751443503185224329533358002018267833562249529329862344683021939280405253709703901753799354799556965839826453561559697340157414012077130606445368909342044875323563063512380434748934210898183821751738720450191527958660336068201758525983296860413591864659443607021400042172096521282696667982136190754303990728774524546479643236395121727722260073882485775499544788752011257471469238840353765532508306334302135138961736308771510825264741039846054426393843211656119325524429125525934171779994270693465326644229709559983228928951937194133800288162155565324534649682493940063843785699394599324348854038918425732101848099820271204902121339438235060871398842335470566757496713624008658846129381709439045290459080994242426935273041903666512546466246340123603422627394719131381361808899431309417909518482146738555486130487844603420834399528639558639406392322970160734805890082859691396783318947806986993043329969707717899006842538837429671078832681043763491826109997612267431056739537618230938661286087301477444357520367514729353438866028001448076981574393314441045714346036010098218375889191364707830103806495475715109890346120694907996896284581782050999854675290489884247646614090805493589175959440757396411927782734492798863282218359086037597610300192064513863883855342576502228349478934982968572176846598838617390765323751027472632370042737213021092973937130316808653656015366059839916146558317054507995001192722667158601544804322797950581382768548022237728267553314104785273894964931762477423602700107793893068422910344240031342277542780650171405531370670705859070947944449292705233468448774994678556916715560001987792866259550122121883894786656194668406503278921345489844905325770742687610314116842753935770026665883659899450822039337018210425040855518853575722073963628226606880389030549850119369482062635469204684226055555867916448738786827317250762300307717796515621668022479792890479422466862986635002945301826986579502513398488823319658895510054218183616958856983662854881651462761786000149056831799189834308795499162805818074385070408862343970648914725363009958723848076881902131698085268301931350215552658502140677668826873392812186200068083193732190415467790242226974522939231214965493187443607900724276386755142925337107140319104891855700943070763376876006474856319651189338328916133121618639968436309934591212184050482529142510909880456781569552879660492631972833846621353210317776883072542930482813608912059885071501556783295619603564784286880410339674695564338951373975076704780401655355514634826321298371528856135596465479829671171364012871369799711599355554604773655509918601279979644767772037988689496648582720392107186805394410353355833253563805904433631754820756545554361279746050566216698308837278555161014490906392460642176736361694361594621572739400159762750487824714690869197871894897137605083807615103807288852879542159234463306938480256480922626818831223675712616180061673636055222730207644884476348938386364870333272796829337195736572861181646977936852993882236821028036017191160526691057236827358932739923785363352497353990180308768546178024790595736425053274217521536937172807023713354337791137653528856059045195477474424694521145585251819785404540980329742062745327772421455708186393184681834138509149534117862465805133629620086831670975567666619768915893494352928671121806430538437470061959750004649817660675254740383193109191914017985468350633348610905622482223216139542610675050231332513955696445501600976794708481517949465144701535047496004952521983225283156366033147588550006283024113350339040515578422172273513958186166264795117244831602224670799162432020279910865412970787112421851546747705278888991985031044443289939009085473217560941503397559193753840412980535999988048153140114635688509326011386115091949364386209937625182733069169802336142611790446587007981437365741033384667584307452741272105949822380463875066903863684232273878366423319678118954447220742769466233493345704133897820049267435788463140575100052523579312404534289021996456087371985362438082562627431156861088461372924681521038347820162238107523226297487274192937639414055058421820058913509984415289066545041518785683124906897687896405149446569466322106870610703119175341677645733106437275047805859598964673353113768883511454562858915702848995052773600502658773795683814401662973151463522521560953883424527601249521321579724392253822438912184490049346133953587292918374918489021625153724557542793661159820356727677686898780141505146655154310954303144466554730114782532440542441422397183916780157555099801735593750979948733487992168696820940155441608972998638946669620153708834395805665356188282380224503876089309209970306040434516291775759488034519362149122923433137195853216011393699938421829158868364961777342955674598503492948993594855439643343648928360386704942092700626616699321628210122331038317978833297125489975872036387315239542584957811450674892760438167915608668380061052553126360110407089357648735922142887599903925268899650816616098976257967365280477214200864884750758600949065901587822896728366327491269271498229807399334382009958536163976709234762301986210966927538083535040000512067459940483453107450503867858945494070963739441027546541855880118925661710536249932691478412601304298704223239649931287595325875390753171793070708719718877056719948147682225721999478227539355996982165067393151122188883460969050489792560334269677665578871664328984422600364983491153141133715841106383182821799614281961451114397650030931181119777402307369832693059786328827677504312585510684836283724086255874846208891807264795360232327711733658354171603776363205246513278788858696051489295248993650288260802778167980434718208836125546573374342495478128883848479758848352963707274648630844667950595205507383072920098411725130725125314428201088803495484921927538239621857888959585808092238795306468750120901884225826812765175442216254092585240074008057851395993609446152519828472778108993429306782547501051188842840430701053095605077805252515898723623929072548024691547464627863766933930891289718401554220494883352925849184336936672673836009602604181999035824156743128155306782260853074901569857552436810021895599659711491421492230060335713399161285632168630050119434780479896133817360477678315922848686436235445095286901546926896463320615403732698505235467990786038355848562714260402256760136517907811560124275283985598896100985299077597334135737242641406824227763337388021171379193836363489534417053589532175909531775917802738009383524928612152472818215427251320142388538074492810937917628954928552423966532686864353014989570341370525829204232709335072697313659890595569315277037320868995041636720503153250848730805357641575790328288711463368600929151184733276010815517552682139773767358694791814259056701273283983013385635906147408665974311588940402289065617061884335976664695189152785103088613862604914013231530017039752493980986428320614995088425799274246178695254172932145741648216991717968273530813844468863359297780557885815938103039522236158568521267309389231584082137287324957280365996884223755609629973415241398604805973121198295093628877675689179959878519702533738150524997338730323049666900702835469626872117299173063809608054914548529643313224552063326937431977404121850891430778725524985869891637224377298869577461904454639734905674586213959175905827525525664631004273028865845744384031138248576981393814597678024071515101484304843705326742815057665361992606760632264905789375638790225876392925850017919419212436963643332528283248624962794663871311932481715763683666423870454201461865150891291152806658721355812902894542679048098053869004912105022447755897249162538517715081197424781558341844651046459236476527618259341459293813209481875121010843797921892262140656159559755524352188350257034665056719662646281268919846239745103146767819496363115669412670848432308209152194555698534833489310316002917025442608062020370773478634170088825179564715837184157142691659502739478295245749853279457177498464970278136185285012530686467717335064336338383566224584929297297427881360468014031071022563258383308497433304211900982627471266523285895209785308182167983749122128791563665678923064039911831476444375952705789672819079720718254609405336980578848004062586151928733649474934563419644451638680159421164763803276746006270139050367543759291602616598794458501828622818246307159306691725632154627692893266354131480350343201778911663337274762224229931976233169944871920203370995876361971816754708774396360523095857573028975570781563043848698149351449781702035012859672559637697966186947445155415830872671348807295234378387550612646280372873377182609409372464828456743059983797845095688299145043864895380096163201368667946631227753144232568771053224155002082002554391719887653813548008296111225199734722108170910848829742705598192389293188403022234263272041806558803012582450099584624928934544397431018514570713703014152280620245873478147092758945678452446467732764592167350014072480708278794580377504031324130607021430089439072143788194716863977353698361260525761408199307176527364458514172798176444692041536258853109007170136600648684123154859999082871615907421261255264016234222917827461942455506356742768329730564836112747383076905069816031988303865261430907915563437729043666023617321147267082742738647061694575052833045085090286046211633359504034098157090364210208603062980780434606277457893302244322488027417290569784187046946491672132020155585253331299526237608426838804430293901684838446301312362096269129932183015679664909750584570198344820322084216819479022155915118527406231749250975045287777977729246762042735952070534840879035772388964228206152474044287330633231464122200604808925085270681581455611425073466201984103199336579755688289414739946625467559885211112778615188771593226648878078540798054586519764022347214583806654621828830113341759394913685191207249795770844967258563165461404070562311182524745441512598034261954678013463943447328233377286981749296082848025451560170179787075743938534654341937623098845797934223335638517705265159038237687757703307634773025342719450272940337287991527105896419886196043182143669334789830209708691244982698026875578558286912540886037139336478060088965586137922021417417928776989893387423739024839703731706955049197581200927786819344823895551037777198005512080951887026112562343498949968564749415422096171004108426583287181485687429185583103666715087615314859495901344128842383317389055698843443709846459901755797419052367207317034312961313931375763007303431634207550328124424764902963190516644776995977338519958001837873627131785298770633157877897325954623459303027363393090985099834267713870336530656678203497910165466854607776436385750167048825846840880199524111633465922751841686733549067637694711540345412655981562175151968639934282464906221093627847446304230489569818232085935026342168118507017670632678538357868934140485179426747915681403099384001476607686412487399197654616352953127094001004396720241219825162210551556276653930311429096384909071232892386911842162805549008663439344697508912674690447334305238411091122495685117207260921835276336531866559092433528724084116069709531349788372290706311943871361405418237512115299131817959400451794941642164786756064245931310924094566834383076586146667205775100001947179712694811410095174181496308955208785816200442974887272856726131404512735364147883950401572071245102230791012239865383376322502748624353775657783624834741324701284791683147163963329143533538078882214179544158708173888421631039126600034221881896123043750513446679471794351688286880971747934642825864684634222265851476071634385078424844775737079356361512449024613638577754381064775914046941912296871967796501618727515835281615009109726331086731668934482791546566995163487740738901781958520908420078321632101915277062243220511389515321335069862348173365382543746159916307977367975594380389885242769818721534760544027585965236271344683363790198455250233468917108827404410158930105815822357617427654403470090293497582865162082106539613922446349036771565950696671596541988572570051906665548609730492009992469903701154213597756639852926128374733725896164629164863837419281536365105313482945412482180369284977657960927357489950468009709085850638752716781918533454148113574878489730278141969116652986492646486139204104798624533890922345420421517583043892116863743135593312481532547608406004251363243171287157180297954507806607586712502895419138215518365429646523639297782573103799251496158131921333332008221699976947716933394084247865182882439456022913930741867641547127547907420707004339605491947925798539415072420133301824096562564782006399014124334242356002609676232799409304019274583249668180746414753692606335549999885905434632540552343706424659182363267503483283570227679689149402072706635709167850045848500079684758592435800390192967022202271848076106126461438094990404689609836554231638118418799186002409820056135609915927404740143235749628267232799110863904892852219405253413581118906332787766648244786826860333759345018188376627504746677528144284711524767925775074288484661283180668684357346322927892701582585492748856571999425464533600125985113518203875442445253461891958023741905650185291388068854790781017360204081054786957257896543112155913153186414430702622938542093222006949553577989588945038959093602911098817349422283626796914076806859944517768785130711839370199598883084551112416541878756219078916168046052456043084232546173053077039086565926609235951155954876793359472409533689461360621844239048593950289291328746397677435742597829334175561647515593195993864637270335596334633293129669054894375867064054165262930942670176554851388656967375529842706829909763783063027266840675456343866127583756661793181341432936323106996225804089368497598170816999926666221738597364542787064935383285421802433380379999864656234432742602126526708263853103452665298162839227283920132957827166338444427296671738371183436725350405942831642559295937107665434501684192665484763002147335375424455074648597401784239280000553341119814352941956389576869499576351131834011151146691299220997761708592347993828409625634468837819347523714788171180580031496390325421545710572082025879065419166945245310933120381509418838428012667365177397227467737492796615121941880600740900327230645583575408433363209694399822834682089467055435761742914154014665350885675705616193700631887406214475471853727198242818328563436156496197076221365046388816826023127306020558843594054324507866753651012727673764207348083894344902648127737483536900659799806289549263832945930431759557586709335202340793560231769340097049434410895965583778234740433264716654153903235850899774202461065152578255950080369107698497959660403355108027509773845332936392236117341420689578401414432114164034723256711911445260176565454323350117287237450279244896625923708634686660621074908029324102290439786043169725659172208265561571733370657158013590259244796529587622970803025935007820397978767382169467783841591427706877205850737461208814166700251034087294239257531871982155131781366540813923963054863519048769860095775111396883090360699465319860059830873935328041435252248480342376759161568397562992819248094458626279849349035950673960350019712495457231793665951446819212722126796916221260177850044825266901667051829461446535880798971049020167568661928034422775850966395623227023574167524476450836311859062483266932108048089354443868136773013642629225494707710053367804676306198776778571405538448021557673770740288297248018075710708538897848494373968288197355022313531691108747665344872838213111841945955810712782933282339123273627598368643085817718106688905375413517385468252516004547111938428942534695277590510935982453501211771059178651332620272222400203685863165818122307773557161065491531758804260092612821328985197615945407409166673603254287584094193746550472492744347293131113011166392072494915809522740160499764670865581546010302898553734680339617080199787633055484640755437086993649938018674447558215604252367058963742202913014751521771735935639976394051417885888914880570232807256158479303514427464932932060301541046944024469843917820767854607254257057083989503255634707203342563617894510541264879334994672793055488738378662781738848120887335460064440076947623066485353769319260494072752062011037410520662703133868663623553590251287427048839440387622630938452447280749527889559571049147837902092770377855903686085130533440618557306605064787775035461368121159637526580489532011038665342835459344436288994795783571725959198520235245933672125094587779676135884464736904432135867473891962265538055932375872024795467220737497490540398156760179747321044658942385512133908194573482316937862912781552243336932811555144388929898305593452604727809173996773079578574529354001928776179569930768813088243127899123140880195696970938987760366776515280354710706563813432992983254687916350032104238780794554032233966263347642065466866754412787961746777088083799139783726473561937250176187420881697712489616389745311977796226648560520792671936836447767987159912946228850820878893703540661142887277642975403717246607756022397942103488450991435312269265890472489715747714407369025823986745164426538315843651319761463496094475915053008135137401368794923543046066670298753069840130393005403019431571226287223648174963964782224148539669377641619225150552414991152849205323558911583596577261106211148247101448190541018074949049456886977234401593157844517551540251478443221757838642269703889191503759263028889022399111034403595662869595594142189258140241266920632988356327712651904530260185559706565346676123773122930688884746014673614813871753992646414253558907386789467692456973359606723385615472371222678357912388222396213703293256414916182967958908899970317628080232469642372694154266707505925747010364151901958750971021401836609594397692848188672423917421046733332096872192504728984302923366321454166258762680252594897083121906539081107411854098609638249955166821508620946244567840858639369410836631586022610882221780795545001224301797366914087260277827622170219408582620901162049314518452904279819826710627637567751815254806957583055607110536163652955374621161517185742435922139633834882390732642169523859856012668350709695763649335120570665364855851384200508439705923799985963667353947808302134560426822867146686408214391160367487244547036655060037642983048978021207916272649287129378312906913969901411749818093760768935247501639100859540944052168450252460263835946149101373733915796358654251225041503961309379594175303120381373905829470610574478241474884640824077523627839020825325237838465914117435790068992904404906494435373421770311037336720226073401721023285467088698585494125179187337653394648072897497444791138061677855678216236489247799536777010384536120527227127688764984377643993371792855375083631392167836273823631373163995032718744374940762849109324653402155865988935118840990635370973731980000261178087163384871711229250213870186627171229764277114820617369587290002256954910699424027373194439916028472043678351447671544214820126585435498051349681975513379919237071314978338379666327420230033291475371531078426301563069232860039714543127937447835096348460401634961530461250970551270545439761545162631742249780548636534581963218511288540500070953981453278670667218392332291603443310306851343607704881361378665762933005196776131398329207810759803089416239351313077386550957363105269949616717842020859798725861756063163825159761082136750865520073951606738370545338546554338869567038718502533271157818285797963743879206745664613979246281951121665238648620624554975072262297569836307469460818459029942722295613834373416515963778297847800359150135863040125839478304567063277023915450373185170488291764184664550094323135319974258564822184807709972002268974290040477278551752834066954694712663963387738727575036072449893759076010201570057456455178400942008906894577537928427625941851450926843971814506063016728054445727854799817599131961934748525123335240639233214832537889689593563203704679120471248682429343992656133885913250444662179512126372970858375815651803074761259169969489482531751114180519048279241523193598032498609237958461006918174451694068997356566801661505318370251614825355492549909978098064619648262232069393814851748708135230372870632390097489857055540814708573095421991159574374787526463016421315114958485675447631690667933775786793791739538774002910129211354292256988694198469918223644551301850666008976884448931533211378740457158483703689682968562274211958361912366202355377017492197013291489781496268637548972105925378763398062823012535146707134392160100168300695125596399479873477612834535524821883185248397916540117110199886773911352427808037139552738269557063905765377242385272920987561822333380301781781110372897924544992077012463651334945536443404530641597047466141368577658347974278575880869765179739555154523163068667924493073166367094715122312805238752634366296801782175313702515769153895020276956924713226812056548719695757245948723968710738399600258230065946856168548382794163066089339935230662975092885520580683284228163446440572204821807482164970325279685313640213553511868827887514247763854645799315723693947157850304279479414000320392590693158098500184319132522300420439545452710115665014833275379214215457660551480502175165579374681785646384432448289475487009319523511703393333763297258803575431294272726636556646097726807283609992486882399821522152876399231111072574051332084026887700786398609301742821415716309896388999916557740347835193865108356693270568476365258958736166165403157362533452048847056439339267105499973474083172677564505114232651203242690780991846096514759018231301452622752027623127396412356080232396272287662170009097653525017592820486329295268626017215654972884261680566878464815184160765206743633321924521508112227794466072732056072179586926931395382154869960860610518964548260318348660345514582301775900917837765248530124012896861213092653052511723636442260959543769739021011313399785380695882224562150293695080311106418908342471247859150569154917883313641699722308359867800534924875298599888703913971090933223072959944790953087375470604701474483704918474904711752827805943857005945683849485316948892720976912754961632155255287239650317968412264093806644814316150768808961051977370537347916672931278466651550159716101410532983662934898089228030599915078981497585970758596937428690120783416776315674953677301981632063772999357064301368615702591500569115042710355254247760359724559489439971194975988234321763494026498659921039761031125168673645372009392221072350870996069884880521968063448496901586326420432832218656709432142733468493132384927966467501923937684555054863317744073837629130321655706775907899430406115282049541895433970851927223091730478271718406738944111984354710451673267752497453557207991428746776684198100586335499532116020588522977621796952507722666131551566302356809355482539756644925858985425458620559108377690788100054174073576315122053670196778725661444048961986779288362324031589146430466642623388991829616781673338244489163115443801239540784096078112119529715199985848435339234957660366505883552383601591130666416971854922949609248065752394208756374914096354950695873724178180468322093900054098416702787929178671916728765137868587990203534337358955319248040794447072659538617483286288649858494674879607294736988097582937368214068353004871878694400557286568796506891795098031004351054044542835962692863052929483052843165396186476934984779080715932038723925943992061652091021627600838270496201748856160115191448482523674112198379727916971637126039180335437735577071802822389253669629863118493644912922268976126912934590337110659744770543710354638077847911014989804459542038391121533612333226528965143417921658046355364006055598933331548233609558432473753650758575130234043302361393692156161673308158610624068549881726430059795840139584617218352111596574255656503685634180535960804972989052987804284142981931589109485182417531815286819157495213522342017528513215376036635243248840611321645814469181225659592418269431431477449786866460065073486085728252110341743300414354514723277660815542623305023848864299258113952028071302698521840267133282769608546489414167824760368873935205200323020307669456866026140622494130964751960893205861778302048224849697725040392354055502767661142942035587105401532645619106980245528062690572526572690489121815851347682408715176719839616602849769671796572914684628433355767177083785225867466702157902550851280192184819744518488322709309282721404012044514876311610747943377362411405046077175978419944111666383485345359790444203847558674627877127590210489772394927037760615483835619733691246269386918225225338675971000818981474824103198701697237703822004361184891855013417739858422678990844760458384608467150251126011629233530331149751349397064815533789705593342715804566775287674848182670009309240344571722315072278899808841582304997788278258967445721385649718361859241458868281048819552025262610786990314838728609203452875915266290373057155451014808399178687656292403953887990451918399155315283530432702172869757662484021563624195173751197048416611228517599565338454340552433490829008633829479087483639251055032594395061450677005242346509821586748286290772314993951962377383167006520427227640982198238322210024446310581097212385481854723160997067254008302900870711189340693025226363038552797955889825877564472736695077916970752792115700454245154009038119389879179630940904236240387948325277796285511119469051554990982588931918324204209934153142945401864218310381269346415175589556892697246395766124224167729466644929127424126366415422077538912310569882961935011529592577797961831531676922504794330606427638830736779701372522572937045837153266966954705137625767716102091134278095054827255451671717471639034888668314204072400348842087486666373835874312360395357243625374639006279401788440316909236459703554524509696546442452091837490401734394472456400613611993507715009398252934456308558663299738609401660161302373472296561396057055734454452483228786446949413250407058042522838752315223875060392173616808033588904092831193232929740128999347752347979267608191760180209361003666666419365079624248359691313673373976011646348119101823217492435471402244488823531014211499173052463875344353411900308497166019808865649904849346915754366707389321879644966966902444031255304084683525011854801703533026763042867876050497330570563528129847214460085782015704003311044726131907143414857057941655067417982917117366237993278538770458343128298210896596703252902635459391747904883595590118101480996438394101440469999367324481787826173175767447999104899386924493260283102807672210660831388424193566110340604828943593664050075125675187929139386710087499535658601021690780752231437093940184496936566105295614621037646990046825182303422684897019525530627668159202482396354103446096859255363068599429353390144772558944495103995402717071697309824905799636190714183642073491099277765101686474368212144130531391084158379664031796057998513968545958359995902881445646791835313376897614150459285023125877603049779762562229976685654414454698061225855604068817033790386128669559121848222350557053636582219806518310879581720073374815487224976297703032337849653048993628344775957842490302867426287181016643495526215467637478466519337931046995033423388911059305251679091275566653468709312896078483052045625119837371457816972696791542280534553897836477149669363614640797714687517119026671822844693271573135776676292681498652305514887584437426198046397618667958890568930121428559209377397178473301451621801545140920526063108188392645679384560558900195325469879612516440369752789110761716700866926727671093539088906113990580538615097813644570357351405409982626276949725763336001278903150211098825446313000705642770802588515149773469733726806720277388644126466135326131409101300690990902215888877040969816568117473378665694831052069422447160814255815994938612450067627524196909266225818603878466969396637536778366612073390713526250213230315687057125558002161668598728068004819197328977668399126762643484962383497910794166490821939554761491888682473013106226166517314492901716045396733113678477162127119858200595777257796276726937845134289591505662843745790117492060986058706481820935546980315310202339221670419121093081722853977591740875219815627888392139656448039795823796040647983245556538166231391515308409390791168919173785719625094094527030586569157034880905304707057380213920521311526630939790406058037934977379954754673192225713834109908603466332939356519933158715181861151700899130498635413823075626198510100448790725018542404123628014908710653318838291577027962904246243386011122149991909735787178749113302551645179928280024454826592979866334762758075920125673551772886578330600158620359204552272538830867231129420600771363131890160489831458982009933136779188944768349833590671352888624308256926728070625314974859666490374251583655139447006960395245914657264107074288659440639737724928992867446407991858453774587711738657365308337203850001610260355853640175462115852462048124398980768219673042130137737008534189494138135617307474484835255456020654618875814727156186239003363095876801395675518631629839484642626000780154500927725199243126749799955228216440417799800031579879783143505490214633032793742887307096676316698702062562177093939066697367904592043742686094856628374851870288700667014784048878107083866837077183569197787541065614412349870679841284910493089600236609449172083281303658893219558560050061334992490508305330006736875231158630560179627497756099219626589973834781033128988806110694196145131195994112409192740358791752645232870857408043913056319966527462217370203576489818715382735028574520447505224686178188727505761425917397223471601227022650218529040957193694100944405272519320636815971511812883280993647046326115924621178503289702473723560211640521275038341084345971144044029468351564872289499884768424912958245974981038528211528898977483436992006169753467085056928879891566929040204155088793925365332210132989008347448276741991472105405094581587313009375552905236994227121393009498382486619351837666179282060734181009460990676409242503539631562175107616422126471437283458141092858252886164943094390405744660470197812704964571890931123368485415479864089912004534706002794191169195737097664105279270459039400741865498262335638761075761532123213416428015644837228030988237987187743629049551343757775274821487708364721325048824477724954793885188523188108339845877352953223047952669080262243370956638360704202060524437875117406111105853269812763765667566743150806138389600194604300686754674093833571665874579107289271680881507674124981520218890989259151513859407990940294782357631422886841196814839434213623459211172671280733771467229814987464778430247089619663506957334616149577661212948470591530919173096452897068854254262921181943614799055609213580379950416246121482731462788873818349838738510628854903288889305839763368722444286886207979512861284305791164710051304167602189326190451921492259054181018899150354189036574188897474945273509627808832368669987009386698479225960249390581386637546119474516171785421415462714228125229913063848137756734047625375178400140247964770400101778198966024338530841902835964363703909517682415247000948751798172706096832150303636490595273374990901861935994389914070670978265723897073829615786575341489785984477405762718961516530626965480812713532347288139574567595557631915454159636241488365435629430166800701699332631654290103841924254717998281139522398168501023264297355170061444794794018291344561566339010552011226977509071273001312683860302362019910023749742250766758654723860057594147714226344008081693016151298913134605891999968843500858070862476046520636656415689037706635126055258589953317895875175645597991425029482772164677598093249795238049936182456013522971511890073031589911112887817521328994646661500783335076820271138053132823742685345979597800544404277225917523093261992058109800858899281525102133286634456849847498834817617288497417301172924662443805450267785592075111543662999479671355608811942711091202274480383119723559518941435053041183378922890269793630281801247714384889872562976918115216301544681137052835672932078230087797876116308519488710091870469691753619667605646218439571378209809895789688879116993398265878545662227740182503236869966544483184619302394845186024287833352207960522179446337939626792396494039751845630467814776462503678387840430038346646996171234892860595090795744302170194945981610071543832752727103577870934721308687605914756793515176125750648098459522965877465871405482898991302695370883872902887576130656804209126119846492924191265914432648598857920234087033638413555304147468275395500536692950312390305052217610235139832349503965756362163400144876035764354783168934562474907028635419279490671286758341362655901673329722440822070661459730039819511290395560400237242882396779269099682656644988728353183103715136099772800768241761564656637456815760837505413457008279647680962911913990639176842684770966953639822810736703474048812614324244548287083733377964336682823813837636025573837328214557848689909562515393163272065223696307660744372029995120847730986675749902103552179393880105785586182343318457131898567327532708703519906442922395887675706497358272978713373921013025789645451365378324419806150318547916891924338120236280054522199387011021842535593245077351471992886725875502544793899493384869722810902198235723527908726984993388244772106627315669225658179879734614234332908053792095467986468983427835252387657574618227731349548583962558102475800572774518818667336830798603413562159329112814758237959748736159772720261785687331014258871183741253266254665611699212808403436252888582587278289651737715980512868091063676034912284031646863921075986471754256800461732176529718034918951607453312298708178528339325465583703577981501388401606559943562097747722711420963786828264540563310194261602005581477183899594169474445835491604227447189139221702504993363585013979063014078034119283187252332302026748286905903877387134187316532377433744112078948837352332871737112652931941118441546701313948715198080449589470377860807838136476774128471795306655970563901027506121560575564376469625796029459504690822792299543694668808489642268561100406726223017905552135878889195939120188048310785017617915322528724201009148297634719249454676367567530202461690449006358525030670086143916879237511842234840919980172445093315232511377542121112535847514054606556209741919762064294897677969408215389085396250074446211085809733850692034278880756894577131691768518855103596953332060460574182874994026127293522848795262344744218891398200016235793171129713244251179993145094384209503365739611135757110038349376837390183063709985975841985964128661850396074301078402167198451348652075274822925168843379778089400646100024288532153787884568976309434223469544000235946879302529080097985237554295338075825124539081701965538099277382085546428844966569521035838280177462958311640896649600549359501456467271297157826733129459231177713786264905762315926045876137347278838242532554370869811479461265744119638903528163043593558781189160138044253554197763481011421297739092394207597640359718725096893560608230183984077441705689210358768048540103703139772892228869375069945004752266100978951658704545734335997627943920578936888382837248561168233094238426103524788520774690877313995469556411106584426536014246790517046507540673643299252312115359379899507426937796918778003498209894026076065044079421528289340903303565810296897090548256042746406971181726973256572655464495069054754491905423549764224737403847359070575795334501324771301453883642683743196125892264011797375073623839792064284551454976114265750497594628759089266229171637427856025448643761374454012097483784904731698870097061962745168792097626432757301649274343435338129826305886901754123704170501518147757091419053994647979685157230613857845366304323584772924019290829135728209569614765935117364653519365103230738517199278299045353388442523966180906756136649416508369056769985123168484346788939790607316787947267452908763538271023057077062854122493685986960386316074895074560412513725322891453019854066620314055401502148181465671401072069212004788950381332686437760445105095682559786164912557979212329190330665006132333083410746019755772180938335743239140955765068383197866158803072670565008254270360106526556814989460153617325255493574877761501768643521205893715059887304213347323280392643178522925535668076342906276598681234988711771545269680289290113902999472366981084102376704778495376118776674460618187082149462954037082275708305678551755468650500014568124266577387607921799891200113547177676923632489720712155918026790988948134336499779059351329554375735523458840684043704595517074741546862293844232367788463493858439616787937327214634812342692575288231562595315372295466727396967931414827312194039669658118137016710352900472778730155761468931573279856984123200683026579917203134698598781521590107645708099918233530122212726907548170472272664671888375807978926081925878581427746722636784721039813492396324157416982451496314681036183865159947821622393479921852329239004543592325062903040214435830635008581426126044094447841281789180190293081784187580403736523213250618059543824393233221032551129700253470038996303644295188635869697586619882146694590821716550028670454388086569202975587965425447212633033110609560306098067132433761690692188620898527010750186211280582630686305375458203732991843915877228431498450805725934803646400979407016717009431861118855634601277110420870549038897604265342104186479964205828687221634922681623939449509189557115373297415981045093562762482725930646969960518092116086924373461795499853747954902876204089378636743910950274834005414975467347735437680298671001638752639810157434298705462576503530346300706899770940944578293308111195653952157394825338302285778687226024650708584533346136682134922465305238976409830521301144619516919652658601941941405516372199571920805178422501517266566632527383703325052251036287384832132564664060752583801645239056035140088915128001064177597619746134305220448287806085204667893513731132209637129114023114226068134911676267153621234603173803848981623993608542064410038251355687570596977222022981382496114227174915769777824447518823938438417301872605905818742551008333465790211320203694200077771143745204479069717589157242946362710981500200135328055078512337164863883649635100430917834219060881668036979758763551172613507137367860799667840317164985462692649404439489280243805571429046084783983634499780737046851957693301935391722864619709329523052230860212323584294790367052016527221630196278733421680352367021272782624066829048039958504844176018627639772948120240643238712306678829489415699800909110135816752813027996420830819239427910017158651261298367666795765235562270417826479325166649718957984670397589344302674976860652892267465353627441153223625625912683277350830839795452860110433365647062230292282972280664561404912247284532403810225563573590677270369470776206533281957188025086636088843095088522509551422226555212574550877637091211134580764137564823968026046270404649365233729649868042700043315816712333928671019376969788230466641695436779768959050012408542853551399730681538606311633618874572273358582884245942650948980728349443961003051965559922731768725422537098153256487926948169789444488685318930701900913087973896507910891744652540342931764111173325121726088901063340818585194236928822041276856833525454393193614254304863276280856437581550673774376625983267786734384404628540723039564904114756547266792328402939320446463831146018395920343748337844258968632269620190533695178606341784349651480149363620321830448382961964178901460757749663350179860480673766769716827713290333178810943560782461550781682157250052317751353570061753120776691220828199708215168457340827832822083629271368101132752607888274803385774840042109348927245843236914617423834533101530254550125017729839315493622187928416720154269820546673138751600452480452745488626351707261823995901655183548626647137102127978028389263412046964281960911802239461771198798236203466293631122385485442186892999473983176165645657301029950943330790117622986336948997573621838773724559376198721389845031782819416811371223377074284861423798393854750457612451563427614674407430983800275058109405664467200209743668424579654517248384470243635629630153190192932680676190734555708373998082736279977132049204864107569633341265282499053201456459401290908717342140872565165803725247040946724326539538130553643244519869832517053440452026187338348036937611040599974498369280003767282577116990588165854395505794619293573346214249428382937634763318588370171579960063180605942682651726283984899057924028946745820055711092589893746215525018609072769083437015809722280592088967805839751137122810834861172086777481925868861604440610204258408969126229987765731203767984456588334338116062897769694479078025096380439933029514256200963815963849196126577873822192514117886084110791445250500774839923981800406384894455623805014974192083418571237302422760840224856849900666105996442379992301565845762975770333839940275786587678196004880041070465469502507025274045320914295810430811147273886908307678146812527183406506303531619248081498600625078134199412863651603430336831614138471566506837492104499660769967539749408429788107047944472484149185521363875458529130628778460603048950539744381879489258223589088606581277369863022035566711918450719046550268866235004690378934276554302867997148430541990656562403328509301171390550192428593833540613618230944430239269251643756171136094879816207582904519693387309178915199757832568064106292775430795558439366805981000400004952489620095094936005699377126344309301175981799324759066198747142061803141807574533665875718856551783878026534423863989334995383838772170932569141208271793456313504283365977764576448491703208317639410416826792420284744761948304373934427171262222048537183480772901943478430363177508473872669104564173392222337308390942751136863117068188370831734029967935418137851586065316571008289894474417379996831555509957653149066192435590154609792788413603255367916463774959040282280167918767221138478772076890579354608788858784908857936267891955091617403266777312111896811031524010622107360302076756726297977256665125691982046487893683809143434172764787459711471885610323996267133794345834126432207824702822220196559976413749638625297820171573658705201678724046688156037139119297613677277836797013495704155469038323651958804318680591313434704338146303800429007617940127327536162526519748249923554320625675835545012852799142692910763204241170128000135209289676241079329151991824917639051100453013518094624713808032957725911570045907070491943837492536652212055546429579661940837652866644701497955328898709529466664745294388725876737688764453277434518474212168162911323024178085405260893821895894409161905627631833587916869359935178682816831451860588988555039867670122295542627102785346114190736625253099526370292665623307981373887130510316098194357056417140495837759111986080134900156274970632811378222395700445767515777125232778732847618583928816624993653857180947659794008874226510147450644493982722217084260792113829396271112163262258794511638758778581947132014927511186033246654295813465723444143998700597524601153688556913960452380759140555379600547435264824430223517193288667783286044748899976109954844852690558611139021256192343243929599735756910424913792780920915745356176786846595340321129857045891833519175004313496010901507551934535830744805630979855692946932524494999023685011474445563676319888545506852067077034642734815029840297448853682056261250591439079128646629651040543113552107408111339363556560427332925258942402523350315148454233121219879239596056389280006631914568880524466895790128035281414636428178506463411834007773177847956587063340271815544279041444027410278827229164907280261251216257837183487092097644590618739231005486773887487877231399359868132256251587493159708928118376944062671738384390356052638600046181228992499792453833751005181978071390297591536824620350827330476482100117866239214396560445064377630389722948090004844904518264246340447719709231237470141480365960052518704397338567936168166173065800521765438468509120123175964581332492550477069208861288100149750717350739924981332753000909948022461353899044536042062217611295542967118211338257995808203567712515027770935697872227137973387841679778544030305538862176485388703935061101931449740660133205505310422342532764351581425902298172936934088399617080081871780766261918791373619644166607024929742096235539045561128072050697745446333400224990469486253090399577516557618602361072575167332989949692643458321691054998019878928677942238835702715574963542122627783705382775637086819004929256084776764770472321041979420263295396087481617183987244271900433228208526005642310342248871538373457790666001006587744094262041438351358344457675568377595134582968839435684034414374344946235422859322127272875554916774629513565503389654326979292757729345769386171409531611422215647725238531813587400273722951771192528352480536033949881429047101311253922282158456464633561692269102054824229261089652756803144637491628644175390197550850859967511318024854237676838241868946930341397553628380686791438022746673387940164039269794489235832030963110835117803249388700575446357736976113000618486043593602617401197065595977339991556329601199292801237426696528735359085181309876162261123322417621378513632539089083012950310336375572521354673466161120595092358899885773764187097020206293791037320477428283142596965321754843685137847036880526877253957604144766711335301324091516153169610703484547640010514620323167329032756487732265586573663731784067375609402729592948076966203585938471734982374374178924863717889508682888479649715910769732448415841177593369545581395006874314362356979174904335774298625780020398992738712301420375278280136390029228124769272821084952074663086363149983449049233827196279871365621127431683615605008337029484036073394207638042863973727791309937133708965740333371098681647767684777530873568272175147525529446063446010061736672277147297834757665283699422696304733637974826400264657082621839803729389845293569678584975537297688072539815506230847386201362435957717697017892754773301561042685040344724252543234926672443494359598641863238394980343990015988856199673603087579329187559096829018109508766766757975172786736373707894396513061086103246022334871675107999164322836951814204663225202950231681699872693824364033611744345824545691911112659862917660193848414173039321359570689342472367433147771503193585518247266929706172835742644818372483924927684074133134242085178946580397438421882366443644151702438940259128035352469396938020627967041176079626967537605054858997365115099886687193620371951043475421444653567003331120468879513362371292790604059609855840244308358345771700307861621346325346777836361069244263129221800140143576938968405554848403183861406051273467774936140767031597944153482921299372020598884810967477942428913281719188172081110660152748024460174844888243436951553307184318746184518226644931928422304475331615451390866826918158001077174857678502649065158978645305382995298554674181225233913165003877243400191308688942859654402652105442411299133217727859235840538808926205329335390822628452594576663525241472762514562095691216573618729862368012240196428379456894552968881390908860955902752242933362567097211471433489021166742527451631572415945486065453403770417976403869076113724108098220786125464773649796893179364607099573203758878021345844184659934304583099176844684627704833728845765659103156104776808252071146211257442322345311118219027456043520154382050864374897895238245814448965528442282129089607492437953436776807189007428185286562683828645717385891197487762932672160580691409055270247858849594834405713440604650979333210679865907852590143814890767303944690332155183542932288994459026000978206931802653757236581663222859532206844713702068663764394559092597238718921208022228666726419166818806234657085470362881358059161416062681049261008326279332845261727336342284887817054240979010803943556070239404727244931220398608235723520274566578379116387038826258811463809035901022258899690979195791419136034004730228049616681590221616493841607842855551697742743570781842467835721884560913284415361624508346435674652432096390357445355747809650679676570567504870812902617665385667063626130485850166521627434721550131996096960514782162517725507633393828183254935756938691895512500107044431455866967189223971394312462329801618946022124459608179206264014543139485601191055498028140415559731126519505885284888409537315422624931071573090843264016425940810660888281983257027178567132119165557469986443769168505983377168898731425364771685310124012790333594422920009907896622688442467663424608192474963367695656458175605169937881787313616585512097004983955220206356412490906452106758576670961427299396105276326994514982446637156382218465941703125594268033778566002804100986838642550832192630669937579411770864624460856016821109992175486741914379258869936525418839051814337021291903464381073947668640636440410585351242980285683721312496864219020627600051010404820887350637304067848875301093642852464479849676859385001559155099220177537660883132808941324850447145098710421336306524726970594821226046630307083685164285150548675692744920935514202858088866368873897541788050793513398520148985238885386806382860798836297381474473110938480805474866051716473158123153287455376183695461766893318030115932941406009429966833637594656768980629995854263707427725402588733330016833763395433721772840059104820726403624379141379928455310047618396933745307694171901688237797620478904701868136122136809667175567314635495332361669367002412304902051746227016747993405454984493929869427702723735388317172633624958640267470680678927772999269019339455990007068559628403523212636701765302548932913323355145198797195638541338686734768655308511474364554066979323144154960442200671317647133778892875415269534276246442471175324447416650094009716685567172402523423716701282586388523384629602123761751831433639463585202360682862792263011616043679541752578123508054670932576410304467296101147177365245687244125409912678033876348501341451573890036676782023238236437712448544262053945213632502667391244682061767883341460601565609934647931085516643534813349713906393927733152492230518626470046858376818888449242589702688096517097337351607758467179795085934909216728669895747875438588274304709001266296315172205943516673008839005970141533300130452100639254825983392197498910674426184037647260732402366928113669426957699216302642658583666675487823041173022816105420557240282861349409084759287742694733082712618488731966892327496923809779372009104894558861873777055310422494596487280944987094483397387590795186086513910083562032293373775788205759211983191408425897490715513511783341960513681910102861922850895246955208825522814496683505954114267891215804325024990546035463002831799333213964316010954720480033844808002854622209109715309100476929794146075416920962596050799471266685665700168928597324404686843863382897260611628514759626685831627567888520825214012936149432884973148817565716808143202664367539035027545934853882254127482146339992491423212079472617402507692118097553697887433933582446832710498933646227765662526442689906063295896080799478342810066686936136225293367458839667913432309853704493862297828863610164272584335887951506978535235548785785340154585529045718715726864662513921462811994896499291208828531535192001767798696437995261996869493258871860916673710974294711412847996195683749260348417310406401110147533689445451525441617117078935271445986190936901395986484160803271574982665979724133276943917570889683052308496910920553626716857696579712330093112784770655705125344699994358652929122582093960722277361342974058806201140597068614912691059456120587116040215203314974884242792525873879236373613797867171194982523236927259805013520705459595688641357111779927400198491326682866138666618538319924222329643544781058889911113264041785646054182374369974130184789564934996681818548879609882715158888280222496042179811388152417739557933385585847624560282114366882302741073822740782374876950343891357057396229181794397783158086656111813140586421183305299287706585000319823002979402020922146069480905619202822128409509193978255342318070647081811316158379514376048554739402238267958130177004813675384140550941657380306552841865041763811954246766073260793887267802151078307171565453533564289451668293649829210129253899714231888389194391531051541984134510862241463318306722926884597563309562026594029816078340681126290480296328610922931249821439462535240407130860422329922635527091125966444974955467845443136155781277453445209731611463653022439770752757091258091268558567861708267511941528084668191906369231465402215409554781150776571698860675041840787972145189037814985239775169935917256043170517728620566444482615102142723054788159174731665239504688342522541867421081677543674407266663372506077802959049257973421408518178529006704564237172873247612484888385030918445759704900266865733937844451861642988765459603765081029272555693140853392535943992067475218314203002792750385091286429325099861969505307276127053448148883735582514018854850944724539274648923283204265475747409573268279294687364952376239255726836181853397195586315310943059634639569070597720687769467604520435494724196865935669698700145193926209652100574200866110488564813181348672641742156114133832026156626541400934578380215816217069677667027063446592213828594896350007624683013303910121726674873220743414092531115290705463138873312637118914586786723668723497323358686840920400110110848093804960134738451071536646296905169688115470920346662685596881531676531760782353511936994932206740907995823690543402650935642167366841970601590618573105825840934560760556770048888458803010457804022629249632081165522731599853199989556323223833407322559884557356158966552782118903818513629766362587688279754500404477994041697147510865290857529159331414564479531129322432116390401421474934021957688436082929515807139380012611896125791735096979779505821124797853278306859469196062556438735141992053764450391069997362356215580442027905443301516821522498435712865243781644207794486796940235230526048882210885945131906272951139299090182394409023633425055417641979800094106230886926084495223641376055245605040326328610617312791265784094498558472239752251637364971418514187382182609873825194044479587565497227449407224473537697575815298703178611780705914340428715919276592544003258978435719880884255752330769846401558605957027872517873939482799259180818852913833839373361316048129295864704590957725900350147158723538264115934605828117540048389804260073693981251654447635837443638893039298967174258851556707719111147108198337653029217376842671105979892049520227164566871876152527999088276981263339913228383641046670990355776612386722342893495000094083576437890577135399139513181878820098611238600757083242566312737248051687274984665215154916412399767969648143457235450124223291878222621150628577259326059106071802607012801553345767411684356770597679397160434495763813931472862250133519770241617719400856469827985766985128809494576675380068304699316491142707071469740411333128759035175803630375016914960499351754823038961214037936822606262485542964729833435509946112994518098780328859238910422439444463674111472309555140452627437266512157280599729510843002391147267428416911747004133937812264054247554425233998065425323911557405779993009216313284697272358190096349418342837521008507047582669544102067132792391426735269942263553447910297509685576814447953525464949801039170373720583585999476872809159914058672000060641479421100634437414808759224822027731482755939199855004241226210750755186536407532874601482736958424178776691278593827745545019252449715976509908396583753885582516217551571041673777021978949151348363134594546877298528707794238681653290615563222408956883305795833687726478383382722811934578053619886990187724047716208220334584504702680666063600538845749302562883980077088148979869311466728591999928079323380441619981877328272778292399374699325195662770053551495690216861725326535998699629115988662209263679865268869018694784972569937393510787086050165133219296626661657501204745570888797950702687569935819802046779180562025820207234904950347999349989002987271520553612153874750268668732101723920312398756472561852186922757357873821582678579176704639754270236832342247448780175761392555290846422409979167412343230136199465365705425174608178598965746651578100037220576153703247868953383276338164477591025407489998391981466160177533748755673090057953111306096880844035402584664111074278049693566137995995654867831879535419897136852731459870164788499669983652900963931750178840019276422871382355659637716546689467999293647348863180064354791682711256105500758624317696052971001695498998825074791564624148074453982756766719721327806247513636893833054896698198140006044876874772769833171638996098911219116536336430453707970837851333350622929033217157764365317961675455839021369038870645833918761825419957705794439904139977861130282101336821988956598791933161291347569643118566900694884712368344120001803518376866474789846624804078139059703406511707409122972201129037014246190241094364877779090618382925615129946627692979150042655986173358090543625633673147198176172046947156456235125230127153314719798807445525793798219537215675898078131777927388662742028489469392055564676287502613414980311328994701454571287033762567658613990422682755879297521021069350867984266738571155735721694552488125921837593480909733549397317221312454943635707900334707893671145283298174656449489407825678363157672885568424611093062252567581433410049378239237006603864439109957916238682059918116995836231333435365160281210075255937181004986820185677678449889441761040967571385458965354903370267899042796679708740563811975556385357157807675362974666693923746549796084620250077219753511660005680965109314700227181240441875033832544476976377140893125855266543590193792693633551365861116115002477783300782788708879963599178224024174115236610057796016351969752120617741812925703052366838882823233564294927590777148253152664141793057172289010347357700331942250683694736493894174553502675185965068920358023402748329060899942733771196139397064703493501039816688273915220497261956323764198128147414732306284017129094790869792464923572916425335774123022009329644685238788822836566395531190808990909905267830893807709477775599274100873584956235950990634673303211974134831828961734594173944961313009550659915145278178524600426263509715867126027956545920181802519755461960840316876637767484720283821576076169911670719934205797200569828826989898799553113450626177467740857137738571402510818407332626580141858660298976800433687598837926251064475830879378800678291903000106366633822652861767926803363907092305534092846774166286992179456407488183624087399385568233779894857368213565462811455069879964033907644006266962398070443572635996876503489420648230240037382745240652189459672297359754725721084424763588652683978969119219838868290425095434709051982231895990008187831435309813871839205098811576372766703943077455451652334757650670460551360820287940925883538230872637895018213020920963721160760924824159466217309948355806542590599854137615415285855591448206721745070872992190552276307357679081995977833148495136344196745971268877332670257613452623903483251941519732184913727815637454270896021808783067897970809520217196066620116270661414988444785982087444468711925678432232676714095792934313997654307719612748183880676060060968732723136655156716638219157994171237648240638178045393752183684645184215744200444542154924080524106577268657600323976433534269157594174744261411728267498633360936276199775585267272726036955103356009135947048511790101079883615221667942526168718415067906660920646331993844028765185997462005354778344333883113011225725585217783853286727685274495768741214622562965582627974780574918962238390206092213725786557774195192037142015783564192565069860597298956481023755760148522124252798650103896105176695352288105895236947040914137800806766080615892908223422513507405526564739616462886206584405520759134444747200498033475585996746553515061092511937993873723698319638798521114735720746902667663528871906867971115408570658949329529421758587069001739656095558623136324671076472008653831572193746753450261230110942685912572211823303264938174743111188411319355292526977188465078480954180603040416311819064656183528153554086062653517730283889095165938864352065086666989400078904620320410361632937036975051717551920071684288837736670710305582124438626827283148914040813267410755800626705720738726427452836796427305846718954647381191499104553017713847524648369309588079608567730990561893782989985286194531653603651882038248780146133938549793872959769583163068383189031124058856596002888022085418511450434369602704859074564938773447538359795036027164215434195914036384185999928319087575906960936966505032108986786861592909263035887998795327754182663401939161066088564913416712541648227348118799305387901182731259697887885408893657863649417116638589313429752907375076914160595974029954460202913356316840539196036990155627316690844116403698991325290707487556758695769869087413317790231721652116300606522969901303856337857266500533254653531361039420593931942044816587106216475064933708675861467907091404065078429420457774188673182170465322228688568066215230808400563540460540677939301456040356001077571429241054257464647973597651862128624991499484440253001168916154000178920395222602420234111517137743650863988342287661407913185333871807490062682259378209219498880235845076905158413070509684864693068546982989554087021427931100848751696786229195501341274519736891379933144562029179058487270840826615835505487148227894409486445243869941645269748460467164106075627171832059432283368404946496161759624443890598234452519296084593945393947999696784478900982289479607004628252028396249752300142754567804343708416020612775573584385328774276654112512113203790644445068595753917033979927971591127717408860361716999771745271194081895241315550488495059614569679509642449516308930525320123682041930731547383206661880612314198462828328128316510792689157602536823328425190999480494039161177831514418386513989608230691975518543400133627989877487503420784896667922781238514327284403326088865237864904184442557906976815928214227468332516803377069338900122373784905091518295630588980827454041702584873039621110286827826966021721817471054767164386370961751969749627847638785367489868807921707863260530535489157919614455303153880487666836398604202560685994264979887967535364666273597959581597800762475007736475687364836964809136392513867658780775475085967068034791555002343332568829553160845871218514251283367369741989834272612977784619341090085692344565482033546838896313558045719758419607108535245418605168837657962615010429895275968376056816127206377782129118322060601169458108533632129322488672604380006859594349407109513020847567043670766151024370123662049558397402397518433112586766050398518778301258904369613989979631954834415953465919029426064643927458581470104971458610736974445116691679089189235215835905400006470150725740395160436983196654691961732234897109311557807183444992296819778789607744675970780962274977990439840388280961487896991412042608218550933233159686124840604209556348925781919068108092735803663375840877948186389591709000286568460967689926472726425378891643703231106381403840396992145438569485838761023034986972558238740191968200063949128381101328584683910123581984307515291765747579859776684119237832446224494890167729903953910086513592776858494661624140594408744429941159080198563210237337901934734374145177674051326111704709739526717394055822117653221655867064949356195658268262100207329508128647680574557200913770425735784282978412174676821124662747431365220806509971839044691916696185892541119291175200433476182698960426292255752593622198336303387852653979253788141332385188149461290344696561172197691122997847943898874999934492412143777734720557623046659779259509740303017343112373176748850579435140109649397274425070159318691353444922108299511081668428981815600989656631135503014574348711671410964784010155838611638783942860494042909701854672442394323570918701519566592218202762486425171884898897986782757727604629057966886970084735263405580672822775277299889316548890948011541761229964180634122095298833683775527227099927104525637292094256062485733069077116712204783427473789127459453019511243661014477306502927775994522703960073549304201550402416820590907605987983922493035928336941256272274776290685327512387550505515938729617380446729313628018824683714496436352523124953216695493767149581910964820867565468232481581328725804672760714243650137261178301164186930685560325880648457745783150233076091738419631548620053809624916278948125088864496049705143544169017124483727800971194505362082938510392776692426439948212093044350950918008749818635027801949087268546731521771189007620957128616729825063236127138828041931013012592571220838657818482727180602051652767437113004674602284433231850635627817435545311584002372782620188487584093380500078597935151978419210687160944089283022847843782468971457378794280058589399644828701837042710704861392656017572449706471986054132893606431339667768797386998475078964564474581340156996347091332936833765226140547738797082836591734696408106816965411920893910183545267913524594091268146374972491706326729918687741057112703506153742909499112306957461876129277656161248374845159781610529828879352489663668647786463503227492065918297464922830954110530783925440936141629113672924191577919484721891643543260361572439503247662275505220876132053087028925320463429391026559012799485650782683617795825599166877805705347222492585159160786323809497643732856184573980235610632771537048222773279808101797600840064331654807721480233617576203016013549660239031112847691338818291962813055492409508295508073043960754599387869727536570582967435228453432313170667202409767777380330964254028476087530050004486502568258306201095651160707023316461449100843057797760720731544119932875142943348088640860728329012595711692336846581253038083834509630964820204328638684058581018259137379854276006691363947059473905071383171011176122121387341504243851347144481519845329903368105278029188005679816798253289417491496871286743786421736722154150430745734771820679789934785738904478500325180750266136799119939549755522122380703825019973961600956482511533181797202719952318821274272609224354094640585167613553022408645288332631967966836557430621892705515348924928504875634428541323383604486233345660693823444032291123663978315847318194273591911328805454072487105046926929414171393429479061427561030194652674723489995084686963335599211135931977222141764709954717311028212596802126781056473400075244312245078028299874687862500716535924379295193425441243627067505291173780359037158671883714269986795095670753546422863090348924190777317875685787880170005798206217319056609684419136441801520760194545259836407102255625649471430457602665884249608212895924599376836891172552266286723850205902718095358320725676034810523028035365369173229717451138547130589669593018204603178948455743277264311651279562604519341890435350133689066988395647826027227474137688302110948541148192487028182024098504585514357941788215375044523054341128406715224952028277998416066448028811671406871933577694887405958732332714905015139855986178926487745412457891837726100779461485256296332479810306286420862691563174142109261867474832501344026853205045078464716411801749699346054208354673845885239459840716656254783745445213865870752546968145439765200339393937217448638096678712562139845152834781607049900936439653646255807309704191733307434461703302805493036795607498116748877904370937588376562248234559535243080217863237172664632008084968605886394605794091137031440469041403357062241057940913214338382258367002659513076652879886911496967232685258778741209524891731280460757431763528988509201873879650352674741471896112280673084429095904661475091916748531909443949807773877637544212147227523943637759843895768627514631036234176205282279366764412509261363819155361872501699688143485725193092373452620797644271140443637012740904045689864705910452512750207788826530264662783508645479161007342725952702638156967821064106026125107861491699119764473782724611831645031636538593457361675879768262501822735149784565894712149325435967249500776625722547710991519000035036273143817167923248745062112725618382176863852335936617149923568342891577961061094255389523541668819747957965163122046352550264868961412640770507255868956219095586182298717630559587776637010687050561948323899484242851786206801024932738106915842423853404407578685056885003960578348625364743065317549961052557491009537950610344097549988008274822591793809814008779337653828967483097727558422292073057297727968813256103408831752024568820626050462248960883695317971394867304962011406044797353940775508845087694013846110560312635707380838799971720024522402226518216548839238495752165099866396281111630701981666730914425538737752693910246085778416775233157256227310838195575134269721140161843855407835734412468802111569610796114554197126179090833338773392526530488153057717004465012685224929204315356401774617702274248746129528652210746765889564742453804968591008371609344336042148658418344254223612631450231873470702647080504503061244468415657334669197341475632854595715944869302444396968022801925950844787591987904474661475120333162066141424412968376676767434758501650596648334283304438238474414055184430199043297219689895019942307491049937652273858216826287701910729081778274372394948795305552020925036681252781415394044410260633825988774961850191373317979719862795482313170801066397038292762805914862847326467998708022874946746520978642247618958433871820815297064968277948316039968477491172743837493109725217134442248110580081598343118771610137629085218237228153290962947944627790899103338750953985923760858169134110237229476415905341220503995233238166608551752938576573996287373096295891774055485603065909304425557296405858785623197375744551132771680229491271229029343114404535510365036889336384130568512656087675433733713436198379864972654813029672911123203533422185580082068792984918226720785926366959948897253802885335107802853996487004018698669646073990101173782400823347784616188226423760649662780445720154490041421173186560793743586450742407357382289086662570397136995089069248365234387626487312454723642655828676024680818251165079735505968582145513652554093674657407700510683901141715767367092921291931739510098899471704508325193533374953596389727515161157226336173263773854622346979144570107858692694268004895528899135814883475455461647076585538237451662493489873057333779983852595996561379551690542482933754572079673797061983561850304338967228585971608846588505082470023570702915252236884270815603081098838629281983923558173162382048411360839053354527027463051705665124613282389030612007857173100701621840980801208566759199811998200995989815162312027844921113600267521245533799048568273112212207873667406139889945208916243169623144121761050961078845526453811671003051060833314778094215507561629864290478442369599064363427091006860099579914938948192806071423168610235726062801242781358479387246090808865032258063082955428579354508943522001862520706677726381435434561877916780088522509622467650933003680474139792493821866627329944754570985600109885466296002900642438546014625177854391358926982259668625428908638408156410344729130124844824590608740373009267286510280546253448043816730487770183084755928332684345484518332405099313837181341896671510247384225905028808669231389829720476405509239536028480501573036604618408895725765044520044301680488152541546548281188868116490504083649525678773502572975199670708860462563362001288909955632144610325866618385824404949801657750195009880784138512544527553969566468561301601744103419021670501851773034428977006934612403941074025177599842050825608977047915133111407207377888710536032056579259289848955947844945374835147611047842193139294988036952454423885967434081419886397924656519914286276593210407044436772284921290163050491300579136699884620289922526620694372892385132716823285785458897054159183910076872774158498159895152708498492238628211027769402162059492935252288573639095676145768010870311511875383519118136720519227026110156384070520486598157822138630569455834864347054815030661450086644151754037563152111020659685100797860217651605884700559299454385537498081901804205689889088926675923832739331161349986768000933198263396817907325969184134188382457861622631976402105469863072634949472161848785618818125778585745533809391110635965060823237598406790337821879349207893179624459064590881098147838882834032398013169598794609446815312090002060206960182039290738537567330325796210608613495550887862305613391487667797056129289886097110844543350500638259253349176713810641170963819395781593456906108802726056851508512614188231191765217164162272680029902951071964999721669227673860550353805048072137784714740309367880573380938684186886996592752606532458289792826816445265142885171667735408948605816102279026668516358544988083963014314915918240979122563564427051684474914519643149625469119366466540248774538587624266867474991867543033023810267796086470389561783549200907123517212169195986989791734758074363045607676959681140701749898442094738385306519026780144187420959449715229499078032396135832567012068966272758923294382683559870227213195612620670544212756865355816348439826625384808475376143257846455696994805005554549377255026430907990048900054789352211791831270134044312116971124551385644153807377061766236052129225011502791733559054210386501527643147569961727681453804836978524367881295860153175050859159484688450024974217828763053167900152138630721609881849138816544423284058200591988970822623819857591823149375906797907353703597343476476583083563370769233050242715896342687600059049854892596234610491695038185227982551812287035930787448069146255162606386219370758763739611575400153588011410472397873428110369114483109905885972256905398150854022637185083955230366460543995955221020233511171275211000945168630857696218184013460404980599560168182369841072304344587937930543462527296266243840440001128740829317530580317515881943135790592923886891532339767184102169454172914273905863829469435416759949827072897387962394705380840703542803097947745975627267180633939925653362647927619864168535574866185337139768862531726701817381809888065096523023488132303293130441112667776433658486736389051317232429136912612681043800086168094191977011267350515929959394068991637823655797487528551819752697648021743716251843758685502257186360439664851483126433386953543968806249625425852661587377959597712515562490767327508966067466451758709008467971278124755905138803796471428647332184760070219074597467448750462140530800860080253306057220103661144536773611972169732892016574931976241874192927117434545434928293362792613724133641369349787883650630693722257354425917157400117813425562573983318481720306508112293018963604634682502749648861939418690458051415912493205282519444949014177825675533820084334662328788126151443862586176419155916569414886225148364343398961283630473098419330702944238986214418142052738846847062383924235752170323635854546804247579789822253120364480289031136098305699786799094364481911660605844710949495341553291920857801404007449126015111300081169845446514421137377990591527144953228773462504895109498407160947752113152269898070600101830908077536498568343153979572608066868403958827762302179650765421360713680946903195117921165526975673160754712396398771754086535768762940212704948305199914965851456012247300741999865739505688390339876492550745286005768025640988337946293807258644229296986651622908487242701980638260742787975836911672649219609165862609777416149242225477279361785443063065879051495682937877182094671058932884342830028287313779808986214227556130837889522369508101959621926700540866047258079269412597447537315266209420726485644998702314921497368816970040482502463281385432070795724854417410256688384526940511003769069792040148539356722715868994161450759298090959663914794797247904629113885664998905586596268568854144145954467722254259669244359998567863040646024575147004765051625626285158948922120454805619501972061270690993153525370747125749897075383037549880974401441859946126373922878314062260584376794074177149282456660043717306511678752141689479134032247746279526606349337161589739398006378229180915342396721165558065243700591077619227659540707711983621043085569697839213955470393909106484123833765666250616999963336874296596236862716595009399234535725831154728191711065150998153894605132898499402304216471364521266985664924421354181195512967916741335918380294696017026520498097943115957928573250024113074821030439250173676626026848135522250598735146430719628205668175884452220612493037544967174594435956268715254283274794594102987717237417414891822567102656112528884711917502436119627831117162008676220040413312999449800986809643029562184068217516279282847946065838853271624581684389852181408149247775087946789547961282681722152896400668116359527721662240498183158567509682096273609993969510996824850994038238986699385962077913470335823712504948417827849314819275399849753543633252761441523511898962983636634248064496205847278234903202780717083830199598767868172256829344230785128230992491683795031333395833092368248066993085248218249726266337981497471641745358899131799066723924080966805832456923537307708652284552909757311558451406644274132551992448848229033861980211323229683118321536380805107083648935359850349779039202528238426688960002022509198445822292625074621552040282187780725878079970338049158232673989205407938816833160902838755935059361605733903903712504924212361439195364476877307945084277635908022320936270145330452465297765468700448924808587437214625404136256279812114219604459378143902405658395160140089188147006353426235367936373289687101341116360199063033342346668951017025905279009892936484094514633083609948484416804393913913752117444160957261364726405581591933506971834974343245286231941770491572032664180420570586428280938332552279929438981361224697847955639854775334790123184853235090066967198936576478113984568039286772761188284547243147669297095333727365055961992823995027540161169794067055178553890100565052426624527698838883593728608305120835357619762037150813565437556775666232721631427566395943574750447572205997468456606797743939098069422146372667769548667048617937927967354467504269454359850401183695459415091428734998039200168944259332625447049330006436085140646750643933214888001881812507008619806915271280238770529412449803662917897212147895356239808357038272603246952920378201639814404573767463210253049922711961903402873860720678685883590624579073554428052717408080716006704114931238311904815334965256920626563497736734539569026017233815931450391858738300524885170005145079692498514269174646557108999607415810506912363709029964894557788898456747778713650600551637195849658283455101575344707023942932010200149801103120775274668415048503117238417539702413873074935157180912757421122551597130039787143171870177528713143209115408783469560547543155282207737414531826599547597109043489790637214259940954519348804746857685013815104345556144211989424903773475312170587350250445840543943421348390053535021265487383091886573101614237507810754820679553403843582141278052492506292552008926168617374863181252771356453836404823264994954255009951126558438346166720148914301794919004931806429095182693860690222045366747158600577278770953453640522771396683679162208385532608682552291432439813225791118187694860989862583889581767209839019192648575514700518339731685855136699567958372658379177917757306471556739126902919446803089011202658348988409622448853997171991953959531943131498059623411697522779564388011730885141644039329421779556175686935720346139953958503566185491385211339746369016492337661937312695903635620181678588790165676874131412813615448375037869370809124982877282591118677170796597870083863743693341792471106575669913228385423795260717914253064116747242805767646356346479351835445810434994489893082852893316878134708337454942654955541088843351499940526701417829984523806369640062287922400853159413687326205542311409127853675820839503287329349720188903952178859582363738219807163320176773811239562511533188703143168812203853364189619986866453924449344711334583791682579837596401117065181732908384968943833878117021305920049355433471770779991961453033858697515157670040817227493795625334488524739753507285752972203326192944105678204215682472825193283218476804989011651124427658608579668196504304001001858974744054533046581517709742190687600100109035816923798655597482361759225355347816494843064800207564353701584689283738829536200626155811045908247475715988970682517642619246515795299765496445274132495410664519605201253031891813091355589985245677392414287891632789834707265829730949954213128714131783051049629054205641386622764579803776170523196734710904216481224638630285232340855543796525919595604702430782516834498801588826155738705524846594097565118234522258487967522514348588674762794154402542174463031448720273465627299230565895050960766346182610944190115612661685239304415242066909931824891299988577768369424831210161095722913285809803194100695643770643760130074000238419435842991392995252158282961726979630972820458030563048699241195872394334519610440063093453375950091547955335754874822883956468789146636802742521369581425499698783380819070307570439240856814711376552634115480165415453850289326554528881232673020046943631351279092603705639441799885442940901391196851400052029942356924319985430708316769757275437145704535196713186906984485283067007415352277964277117287505682537500770928586497329487647135621079219378919456627103581196016595835265627563056524213844098290992457992086141428995971714392482707670772644683942115054762930226552101623945926141541073362289119622909684368402134484139961449800904441185041081836589769438529578762287746924700024269567076462225843262342316282095100817016807154854262473583979753494268892536405623758076843549303383762515194065400141444881850473165797805105801990468385482567806055491229844057814960103555745670438513348088705141572023406865982176316228547455498907162186352743884923837950270715026852815171880186402438933626279761415570047291850356199386720649713759087606239429364085512996539838574969487268204733887713767256729889331999856847873018953539588840943517303372750617105857169712395751292726458506090805302902899524798554444509696741480264169951358023281757260336273592162317099026741095565779115538797831001097234169019489619705562635516407990044314646890705421701670753242815106308954679435363591844263920331698281024327612832204405849028073193588524806722684409774229217611299810319508803573464698602977247257029206602102574011909729237527633318829830446371616107385524040880453800127813313010287489401399188452770210649094323202336954522709992677374183546229018048835774451141129800246471444360395704754784698008144535347091972066813920825750317511422311312595450945968381268915945002120223899112165446261057543535034906939337628278127686736638524526241466321717475882313256898839466127342277005182575712520799275271784376496149246157081978040476937005980503860582582730089804556536645687565314805502670369931522959722530589846583573411608385778059609229277300115785049106298157173903623745655231466711127465009227481181916015222030480066794581005336520231866990097231408216645640506115123190623097330475631059849229839039236716309330088787175927893176177829640198665082524956758811363621176283472743896511627311348336460188086741562325850132235412835809152354957123853694052500342646191972776239567375494525965823817137496553446880807965297662610836577123531670901983822738877796333384053293694251789883305591056826742037143390396044009769175941454173913024238888086883233612025669043502096486655585850384576365874966239204031340912575586551559856227999718565550385590875083111983822830861878201776885892718660896356489259766098995376431933591954470607845285785650588943930244416727261727755952566599323685887850945666745488355238870675635559763272651776821299090846655130251328175996207472513757088276487264971432495159222942783216700538897844976373224140697771500026880829349246771363514744104549995895545606946897935182007130149591666947659704153705168544268540377665102331453582747293116720326285974410413625504261004376901836319422410195252582388482688093572329568882243150973389737581412849181947356331986988835972168262312488418363398039876497747449743286868544682116776546313568082974283140060135165333402075157548961899328685758178702614847266849161326559546849653580695793717528443676854912181114022650426562402533253321246373658856503495191202228105772467156899539259294465241760188438170427574168247782584955825086228300707382913731502748843497605161713209300988561922110111683671318965356958904918999009885059567556615703496825326272890592100802656332957070413922118175596934758661137651335217251213209389371173525406881680053284620396047448033297150447621043412374119535259760984017571655044774938193594821817558345481158778167697294533834606237548366064488119686472025700379757034105944376494995525483667910387459314254290393916059888063603828313899807432494485073961182057200388932995233604912460199723158887128390401051975076853819471706221508889903324164321966040909058735296988998311817531261599556733969681851263435576736672327244139443750754858687338410563443209861916004192549782297623255707720466090698091881564533981637521256855799336053976720076130936754538681687267667121599915724059320695213205768042413164053717218927931867211907670811005129332168441697810370982124688730828102157307318832459378001961426412295772506241091348702861513585522846573140882065174430446924629738198535787441824494236996535399198879613193871728470846684202928198192862562923871269348871105065254583577438071578349395595486182538478581865196368894065129776709860165678018852326807097050236105893841484804851084270692518232058029791055709704751802890986270474735574369885886502608917594128768879122189432933276117163482867127144401726522762822524252491130692161991515337604684014545642160002285090672341388564298111912457001428351826392582624449507467084186701947202843121646959865806216970726950237139328023890808892431308690187264831418825372665716020949437135472013797211207103763378098005823723859215893397334927826370545212091285314727006654402385145006131708015454402694460458961222616258861913745948987011621772682785135576480030174395292295442604742699765220720301875495935664250170772530984372150002725303353772468083091499687406662240371662866229049895839794927035938956064807953156670369826642096057225636260835892294992466374423509473683446782504906983428944710655988956168073196884795828947270171344550987546493687471598668711415770728918122432096077368384777598057465916064066489889837814858305140491810275553181017958931100183459450312818824658963769581199855030253387530674298832887012054658186320372114747717581868422586107407434626922016697838814262566219203453070371158359889565373063661566092483620329370838806921885357566206343309559824884100020870265717820526808223887466998050188499371908624774812952862717681494330080674999799698572680506465600917828448460479659848230456033256339448445261740713964635681546726475951687193791960339944568356072491078880475293068845343289936864684541725325014930453634277234632458442715137105754986122073064007373534668711175281801754541300689007791716292562741389310385707092024317880057406289563160493308494352945415956243171640947394428426229319386474354231825339296989016719426354411578765011418279058764249295965354493837958691521818702572973982180156003820593672550929169481215222662483464685503266952455607067840901484505993593389881091911471276985330265568511824531606779264875848828972717828615701516434539278248167412794545007271896554774229411901392039705031417324042426424064114600261577492794818977311509190113524828159414574403112662038756546646988641126314715605667420033106215744351825178661234360450905270817044368760316279941719292314394790526529306641538835515393716446127484337077798479574145097797735794387762452151146753974418793912941440291057450473497026732363274720925188349482796452659999064499505020884786538230489899071453012893725451242831331226554234531014313389585217881862932979984686484886488247819790120106503195781835685436276185586451271637366836636401179938980576542183404250458429326859501723599897986977066806168868656932744310096524515402835471783365299901110176044217782572308309781414795853043906088488478738591213995038312734516188072733294302442170316167888911713037903012028858989428908972759858236423558665950631300268079271119969532850772115778015258107167455002152116462807874824782578391164411380989776996509535248163579410658907679997140248031387157968290477932074455482636981898326596424528129937579771120626704182181027083426157393477268996007170749122559427469847016187327843293446736614143901546149601157846200282046871663827779128891502881793078741406691222892546743159834786709261856881017208180694844945472395279119597497333282333864895431629812570108222795628958417323479891551395914604783330073270049552554660388043128233445380167574836703738492388023394356273279594117757645698786624930642653556634592940507144041678905893658717034483372608997339387891340673291505874601065669870273823712021284291399960794858223140485127561665620350773957875636233831904357416314563126512029361336337339195035443519463765742340229092100029487368315948593476540311984692499125130325364686406518271385943693079368304193797200829531877649001735048650782970796579892563457179484512704611587356598623488285577604382414668553370580375417124804910931607635516812544356393480815204029636504421934962830514831214857473628832890417389897293596790940002254469905052794318218203049159770698146146669762694389549130423826008150578520871573844225757373948317529819336708533108913013518586766189262019356944766001655832379765381090134693700838775049939031087897125166904532879451234354957641382302904499318344254946092094635450775679404838688035378980818238138513715891584434394018316257996951135069897512042154861965646063492632061726689127844937415184010152807791622794991885082629913996268953298478348717166927238915582108877664303663633641182580246699021537781022754567491376106473352625570016170362470758200406304528126535236231524460395609256665805200943085729827003197782042314475073876723356645848995144392303645153617545381863774206481759971285160881618165468560324290626670697690478348213258422599638370761629475672845224547772413812199453005159696422512631478172792789935409910987086142988284877770434329937736312392288912706326396213622921053395944875799184918613313725892083010829897134369930630742915149211490396454291534076604264616987742840192417147385115299768498434318229272886596118948795366607234385090940414716439472062949525572087193694540814471749814233736810384329217739615894647066016471172793774486849639056546417082219392999893757878784525501290773630725210116074871454151132483891001801145285071938624554124200141664328668563147865533190243628045357960210574023420409965647899956352258353921825693682528045027442748678691814620452146574271920600021182720666416190007326005201978379345277851072891607545117103252192166916766915792278306406109575252628532738457848414842842303855114315169544215144156520150665419053621888021386114834360271256095630028746881302223528228256969659006535450911705703850247189534777152373267528651862518924389102738053412923072170507486945470393797128518553678579561138917005779364381161207558035639163348042874316627660775725753811932146790130367981128992819697164653056139337314492701236739631977440935660300157727395688606032132822988406741066964325329014934898942100621818000881662475980733271100727367216101736267641553288670522989477958331133358164894095966671788382113179243506116057880027479506926372373940437977203496812108806253621622790041309831577122896724031067343089476393662262896401211766945452330105653240764724619564844301031270552066913032962431939294577680334805810273394785205466387348098826778081537434338748117252356385095360034351155168119147345771902733123583201359203898697540626080829675634340147325686702099711360475652117353340430943300332841504458550723480605965974604920216531499098800962195802458178040598871634778515649153263307953582025828054495546260262384199836578506622430706279922961101372499822329843556686935193072852631116811670697047424159755568970849289818780571472028413161909692500490545042240576450322242475387562882694444237162855381305494195155877877601776188146934440610985273749549727820071158511721103450189029757659391701494328795253344774008484529048126597034930894658469686044089674907677057780518780393386572082005017113902505368446942755873907434570085385518787026140682156558862567847126484344886237294598421522550333892398343603177896717976049816100565307467136603303162640883087087152415977513550161001025681748463657115532141382488799762058257267723924846586479337957178919438860951847076326794703215338965654204256883436412388564013253115587789441551303409307814512148799315592984365535576654105297160315573800704487067439871196244513472397429400325708246574414815930758823273804624799396615402764434493775757007977323710295297318288294584111593727290521592358996988461806033825310862840264644508810119305568736182199779087677942561396200562855224448986764222940344473725963737563120174845520357255694241717266425520180515843172204149122143571132221787255563387508675666653748248026764105331006058298758539138136421893998519547001065217795833836472093595983085371124247432941859994592326681694501912495469541643546908066515988853305117781318974554379833900594033473753351515725255945844835671112578853492806142388314596303846859903588614952800859603515748403008713690630965977560959159112459917836647865739352473106196639186221403015810418321221845187595374643750685473799385351203147715954018473029052617088575317659277142674683610061183985936116021265797500467244359029943844373145047337208990019126299657721609981074336412585477061106195486811865817960674131661652199980742403157400358933713949870772384292119432314583757909528766194781297234194020859540571231060482543198922546220028515049443683178976827114622816180900594018585926135170277015002441679000278430739596753575567931342558816976263864985073661993565008728846171238927222321967663367982739536400837213452240294280385483057472970834961210889652359270575807651511466434863327895372200940778249662673237987022183109651297470832867387098025210423157271973675397433379626392159027308489110216060507707762190799386190864062358580239101742527705361604845732147470498413438395078185440959291969762896231647651659278261430323845796690606435960735997116229871677143628047874541968026107888283803185111215300743364726102745307021957482145842372107423775042764977047267965933443316814015400327244700747394785752538242919085166968698229968271852482538941765630341769703686755501680634530616135559643892285445018601539925062340963368494548580502125501714763045843996826477465252734025778866576744326291772411462522945825347751784518134932774620834736814973844835614736686241176613803179416824524808187374925320266092622772897805863793554099054518325012459883786358591177867565711254701130000926335817966616158008028078020342774121244909838786498722491508512431961918385141588213855041219524348914449081562603990535893566628722272829369344967868929709518096024573544766470272882467038237026936431710677164461129046582060891872910600441675481225682459362336172549009486733180636552016652701191048504825080015832727361526054877986104746161369470445480844820915066119720936503505224740852158372680133638588015183087240065608885380204958174159104443991060155968598519380775001707587414948531637427256463674198967448100985700436703762553950667702412087125228286006160428279850920326959679912530663349076877715107654203146298537858336096854309677093953578229469185959844691639725225881991294392520380803375738793949005692133218551593618628659845074174983070536784782721710385929850830788827273768290907488903665706328286925607395677274563126898754962300028602669878714749554684183102446018746432162824382040624147398031724249865029931986539299088215911784641413848576947538062086546184751672968459824412281602986980620248089278353150251538345857163564199778416608349583424628651385794742626201212844027893496104309698771977500198057194153633869391708508683937691785877854663614570765512525976736972823800479299898876134104594745268550332153755868902419329882805452921094224227492643018397370408583651228238746766506934045752631187752207445070009040969964305674511225952146786939588915743620934114228125267438271703924935551321232373540361365748882712167499848590586860473616519159112488566028127419293336856775195923821655432911551934387757954675200964074941458795092922249809295980600419564559333215489281843218770396438370181253688825498169494469522428567625255774065142629189686547120048406740927142399853941908870098055905076270229071009820880019569639039197227194890745951819549384548008169657458718880460387216144363894935268327890147580709030443213047140914631958971038668874480032555844676911213271206516914797982343689616927347698959142341809621501038154355284021107092290310953551596850407071052002223530211308212986116153282290556169257693234176169353887136155700314767455857601176069676837623684222213879006777575502070574541825449096311327467709277409755815310176471294001817240197763299914957459579609696553410249310140674168118825174319906191757557278665391116402494024822896314415590642481759759486743002405260784598483164232752819870860703288598442695036341426373448368934075633777380308693374004194862321542514226849985449354010526036292630210059388675985745710933922849436755680941315834185181596179817758201180479153358390291814520901484701434401818035578354774209748391532190630522325695651066791503406117428804049831270209212241126569644443242630590067181105694530648977454248112611633603626455603862925351278638406504085757447734020263174541892865757009322652758451449042494986567284970154371882227345584756195736694165136643942055383577898805361140243077931201793709560633883757642186210009638801899577675632898438046552215601477906947270804242585684673129609364921828749548865692010825956142340204076449898366139557533312994225756680967459449899618718462798906810419905272104760281996832907846147214089517830980589200793715983389738652449429519781569894277842206570179199830383725340041039413101743072793675911666715556191851933583859943182109706095575634281112580342575513345733179713516082884881894896284322749871988095658898341837878974927014458737717436697446858603837897906478966416748390469698224939973886299840819182144917068571756294714254028630379746605981985361614471375352117150398834821366006577897664235687124902541478054591315250216923173690460858937111947214327437877173633072436019610159026918582782821294862184074627763189755595209458388290094665515690263290985302092521165306446209953668749358198139624536636553128019273172512870682858132665544820368119965440487345435436251695495314560563743374431206287285607842149953062203941446347106377179075422969988147105361009358572887316152671840965694592268510728103696064598974801398266386980927163906542605930394521462508174817812540613924636064760628697014638763222868670223939814810396885688093268076733835243575239852349518292048921447619847925831623000230740092827148242792742981142145567251982132149130808897608670669798684875192656326375312947587587158016043020177704056777592812616836274058138081942337555657398946918518269028766155811424068391288939997127889001733681440333761744689375404268615150859882168418807627040983497927999324056765993219392397475976874388481680385947213499971125060239241160390993582139966705912565933039371144683487054664565806990192895017963977184194250917132358388290923263325630167633089164678396415345206050045387246004858675951768225092541516337793669714174842303449969839684558340408307055549806283402130192482679847929798945207473495051557501821277845484222902063739421195520912221003823384686067547090648219565126903707690114967482664796491983533103915400885380889527343685789029067128522843074650318635133678267096535972640607134132076825077486634069789321891826059839794302876540177068406087413548338076177303297719221552147461700666730840994355978091267855834439236414634543865138975214985962197627355609959885084378042922747738757664305618684733216712237609142054486447970259529981012124378351808717037201927899925672015083077308857237374743852537188669733151300527622868554668145671881138185286146506587198855627503454486949907351790696827263082778799109574251670820708211657021204403014365427166149649053874732134504241989830333845123346862378042892102545258069891385545347845105584239861420121768820260407580861183725190069950244944705260749643961726619778237617208913099701645166508744791075275030574175619383874424116377474132154454720943015806833897716639735535459351305335761491568469325915545296623501249550122732680887331442034263905567139704132037810407569806700528729726093779718234282719745848612144585987136762087189205277642607570349203123839744256767942101241387430285532465211314496731891113847502224138502049809629794276156715992058363919192560355752506923741132846124848101373119408025836432488678554493301582422934370770363619791652149656328964163672295764182746268924954580116497867496627260851203010887982213128185457842677224013355465680385994092808515954048153705201425999515647323697119141736738103249150523200197088908049067614878737531350547535519755210926681391438340881686873245818311095501747461928809384153768631128950289583810600542323685659314741164590665890324976838133181750326722845275773960418374341742992027880962904407505224441795317995695235513205141152445300473928875489805806796690136549789878170991236960839289796208496546155268355460973697207767616591088344645578971409000258757948840824443993192011228952611481806738506250898429659234276275490119488184051746317101485748119047127365717424499177572490604665293457189262468039936261012696600757039276863879669464079824989356103724123309022012420165739278134724588051616563035171325413340929988679842317311018021291091844883606116112461284531452420184458268490870239328522055879789286871450277437743131836245028467949207950799091969016801219550102751689791142920021254024531365836242931233362578460220569100302384670416586135648303286533438515066433190108526584145629250942268854393021032619064602167315432456635513059085143972814727776990639005242834682323208199963183592410516076620625854565660493284953659057787913680243073971347207043067411871305695230447154211370018141858429351025077737718755554450383258518622989260894580917582846715849666873634606808199522498532203998460367482468044691700712448134773142531619348970226790118233137353106415066877287754953033231656000758776019400394547050527593449373255880406736997385128614266201118053638407199075723179413256313495074124632251352418536275667894732803786981540473793697898303058306977386575244171660535893624434219678814982381773253721812692149159733730709093115504166556655108768717808074567807554724435738899667927839206952921550226332207640311428216224705663961102860464987244538464062991440632005223655920502464548101166131083545862142468828366933059304060067370774608484654174823270020685806691587865087514924445894277634175049104474668787864513568653824380929740559480049313998221382182200602223156789373885822937611910587272097675203699015529048803103293301549787143934957312132034528292650104735528998185632398245929256673825623146816330891888849741973774582030951970725040656775867343504407254795739865936674490122359031698098420290752822825211917375352564613503373463015214368080652339615177494563134912185342616306146617846283093615862537496584368024893052070317666284577838233090236604807699353807543311981432978032596933817113344545006781508158180581185243952026250621980606069214065911901021088925807109166970735145694096829927550815069694546246841505040816277231952834728037993718484791933651534789077964968149203896788456973902564146690473391799837618401587006635341819781313856962232639042600010125165741042653059182110874405248907477455093881216177425571738098735465754485887741006411252284785690972420218732016422752689670987323587460375157779739378704048392094532595960754796535596713765295348054873486669890224885169188755606910679513951275313076586939902749931834338886914703758892349585325891445096067460071883007525806800774481284520802636510868042381796164858721067869688731637286482651555395928780894374765457307277728836884732126074886866483187469797870475030172832292739167324394971118333926215791093404115725082685611212191632275575908312752597083670881595007033231070308988248624842403114414863543090550296929133569714182819264234008211863486420417673445703735263283884381948895065616667388889916891177559154847801964100295756171928169783076162435357080047123953404308729495461726434659062098411094760317333560098816942086712098752600559030322813188671240035826356040396207079040702478262979633978188983008831808419263557369031657235856242635510407703579682560761567941192547833219383220119681320642852352189751417836653407965031339622628768641686275984105168009925058559109436254615115774065380156699723299084941644168211735257354920280180991143946245835970384222803148028899711656127457013740326664729092927681489774487239667899166578446485676695326734559012783012301039255586108864794192073521525688920241346142463704853119125082795509132524804976321747941797383498796605323471824401275255202614821313799904679839468575479850011772925135697728142452963324592449200237787589372203229205110221900316985684920620209369847172307268393100374688802778698648444515269946072740582609647333250315765349041529870362526787916512072798991346065119506127450337233538931552484113894943853493862139817061170646370784453440742737026913318176213327523942435112210374449343476081878521573658247009040845444271249135871935137938649386932736527868545174032977909186549694305094164853075509282008732153519301224956042911679613013357225894391609241172370247064285947900616853238520828442785692127677832336219069991707668359073155752194263214201036194343777298127873783387106547346540193224454818979173357398762070077275052395371176629772444289232754916503339420101818435031641654942575386818384512366384847935998093046072397684602485039180655336571581140682847810892790119282764327073454471661616423888430006854096709279917908907272835259723878614155471497928078689430579026088372968188070285185421514078856467204509331178340405209145455382090538158251665533819869684139418063913672346947921739000605698633644458598681601574329875132543108534767713706096684353007652867522792911597041138095837239862712185844899813073787731810732151161620207828045950133785308224091528686151412275648919200152941919475142257307677350856262009323906473116547710940394608685525972322858700241364894973131862240516030783446749465177067531578453595149915475430422636332968183690808790534011536422219850932512042114699149978451790982241189003731481244494848529106738857137552889097800158319540291926650650483113560606110484197646011020771603613845444306838460285488905805809116191604895839785171916977079735312957760828866826396466525756489584865105530417493305379412293156804676327756763128902446512667133107926298990622902194644987841048782275904542455784703571071083476846126864660216406366832051808284172484782587524131001380714680704834341585583287218744233960784534820795029760734709602400785732590480478975772341616912621828704969589208387331041213217831560805897558172000124202693821132110305140146028283569964540899345366522650638521011787674999486492020535285091438896736915252795013796905418985421992896890329579276594994149099555697142041119237830997437978493859145510361663716923467570221730566383734940863702010273307070122842949910092750714076632821863451192766780200794723536524714235770744986800339917348109219667366517200322361466070458631678688417528402597452777434713223047419218946814086019726867942958107934058568942943307610539432266508876125153996521361774449424185989193377288447752455943728621781758614231254638678050344263712714770261386705945519053110592160256180657879441882139303014093922686407106849264152506275170293841164474113579645550823251277311358641950435465103971239963652272543033540270713117848457921303635547615759174412319480325371517069434038337704597682446659583182512650340240531078002080523953735552130495909971434267557627855757895427855802634160138910809967745702334778143129726307956690561058889751509002169748227149430718175442507332923683085060852689303830068430742322497711045245502771430166059558027877291542374150598996834941580609378931255273653370929397031626062270751252740127592620470155560211954956787009613709862395347950031889314946281031334987686829582738464652338052371171879074340764428150521779030639945951417015392090615823888998192209836830896454040301049301826408149126647888933464466561559920980243697359467145929630558578075125950995410111673980531663838690643911009331320082632471076537373638367849620278789692241308803396448532814859863329604721741450298646740784698551142554788520362275255311242323346227331866720946487598524228342417133291425227642473950462109081580731187234619481473776613080702501625637010396448795492566384652351122580728316913675399403277994756142807184119240607382719783996791576063629683804581029107951355379286379104332720957766637259276362746160209616883557584353224334507086883310169878746372314894530867923792836288556761354820139713531979028587580155952405791271699164576449395854672276384577117069778194296789392580395492899374504801255017651028585217868627318326640043911703397571277463941905936828204944404791951639567153035856749529398715837482958462029898746885884286250169450477279777247583181616958350930727282722028453412541806180202869199212140626215816010843555875921784363268774825096325406399247696444694462158453227788698660813966399306049641810160387327011224267278778589094561958403700199824422275123315276413431788091171169374710816262889504367678933898059331612039089807369242776733545403502809888936078563900425273785503715088567127538987208169742259443883878493329013951665120746033935059829825937182544971040718973017447953714467744367603346395703931627430220959489136223926936438118075814452549189520296294792586809022654519457008958931466703236824939365229410148641722267190993624294944625693393274475064911966960021405695030934593106366176979271180797151806102259316259901320081051621106583648399081407038446960118853480344454204011441242722586813452112207820241971343317277845141588451072221466072545741598523300938379173363970013332348433900212793704555245389162150422274455912589156450117164815564800035888108599318481268296734584942628562748484495365675362106857888795519345558333327001930096196252553668526828383352719678094139384471481609339327199286222823039176247313873545102905763462479293815107032440171184046830051768335321306944120152863604121460838809335600542411927834693424737606092093889530477122025713848978243079836738793958525392137691368026354185611499555555800725842487870875791015598425259853522771211418384065876238706940067412284952830009271448285876157762538954063430348024072283736148213220258332902287373398984989723604834584849591304055580161391523233283572407255499923702728950964176174665593525612423141269607002268557578528086384997875662032590778160514233484474357403914419615698259475000871740268769731891095454457434104663688041170160127755319865913559460276793764648210050114945356687829108433693893798873628852933096440910444666387376391300000884861116210671114321614447061772403670366093219725590156815689915527532653059423042188124378190512048007260806837927080936236747115595105613517714317239450957496636554005076383022845682021308414826078842282138592346422614123135960505117027911931005544202847414908427060016208017719205889196291591245826952434120031683871712214478236320527545191742409308794847516818778606709678748172090025738710695927918430867384222260042399938467067809960146350842463025835760390767684488212531635470790613258632660992785123631508470515056244521551058863199773374582463697898942918686413691402296978545835820673604096929728898308634134825520669818902121847096132601120680219912350442067218574258178341676039169693041476353128359946076755521838221310847815250194939359049718016926511573483920049603713704385011516797197275812845545647602572170404793598332192857040579913542280332694541187806755607320645660990610369635170351994332428491563946406525592195723015963795949892089226753725385116056842430602895508464124062066124327059760445725229061285455078815831790139875660897185016694067948662419659088871039114526204814154170291883895491126489712323941771333270818038387030651024615523381011691134502829598938107765250706235153499997231406808177913461147768678919178621154638120206612110299012224960048564898332580663423729653859155150989104324491357600402592728645922919578713178797892357177571617819079140185501432259057460077268870966025760866291043880947629550858173744730243828572597170322223288104277810682443963969649933971442854766684656112928830113929108955554088160695045778658025527532284470691673670656438357072212109642336352758160097378822962997080174954673791836497231410560240732922610463800899293212461642789124650786953372412783326387963898657291990375292902627893274724225322902969434130126161288381262992832833252360193733372714885214802150716469613242120305096620909513789787250327597272013064696439982950315673942627655243062458690586884396197053196747104556871988281640972583602954869554723495636605085251501388734985098468662679687075217633623788332946125748625488058435939468186786240124164968185202994871294962130353778415225569091406292166456616857776083721004880408352424123691384559219765943828708339994952125682190468941148807499809410872953078690271158488989863169689349801123944668320081151063125599128768431836442519165883458026290490997967541707661281570108307999896865340546904810977626820004630341739127126302867973855233452872426419541223081899486497141941742266027968597654328481408017384850498846781665761898648696064141472474621329072030901678693362098492708896269874099053489044268620651340266156894791645611426640473727024328760433434411389494468376702783985293459095880176340447898062255724636324923740186776341171739206869653978161876919621470307488443856217000604784064975940784062650837350365964131684988686089391400340716608390970242223192341564529280483084598247192828605148479744268957082793601637205830107614780341003992237961375338064767491228050681538664762125152001830973259941286958200501289353386581372754763489941605639506930198318777903622360811489480269487810713187596255053082870659629722528249090383312187209248419759020287502413965263483862874256937227877292780352955785878447956436775626437477207558545416758546393687002768150677212882395717901605374104658416586762620052348452738042924517355324615023481134833246837877511100122972653319709211275587301102688094123791805014674822718687015278812432112879123911266358185048844202578661576542877488168802169901261296263330173461328551573800953074772580317617962492392732942701186785470072199802738453063105695641942068373731091564862114856621309480924344781597997119063389998214971443673295804239672046971159980407014550350882059677417043007622844950254596195229586555257439913456867706525239034945564128823227967437868899594279082746955117622890480489641520696856545900893978049031956093533165160361549596520726642890301908550042531001496844599528162389047834201428186663786184294047469794024109110937945018702631826868277969695300372845352050608079920704834643449959415336041921312875875467018929403561347112875220432802783398817922648070118940578684998372306913681500521914691734781832892493570155586731908224926305345380328059590265227563122445364623482697988141038741613217238987865409478345246450256501746713294992531863216111782193801979800349583320083210010405054712432326904650701153469318385306005851949491754010479290801528817856423547475629064243236069265787334329871652385996486781332854945795328703151386287008230794719233590873655821709018792325629916039171124699215446490543145329149305422408147431067094213095654170752614589787160061101988872908627615442440959728020283215740195108408996662986442081932102501195282822435619219069406135218857322806664449509624125726017386984606488294255332098694279741123256749464863478304550494056519662307703871654250278510121599794668331949878363160286238784405456170178909966855758147531334344144651123109167123284657270522409725491914091487295720875590680916878131224554229170167497395560832658586472098885673199368363339148271590117509140678891150191895645647171731063347249628882054628782137293362088778999647047301181043072018993081067075101688215627628332608723227365599025248608063436900000658902963081563046436516511072465221318748598300283606236070649327135837539102181978497050090341178893980397598675395851486074320957430766871806770149914114879695319271374917278985273139307906814984562698762225707049384719776398196636165793427701620389111072653274153973696427265099727207482218804273715450756142135045501428438943994700374429905493278487160462845790661470787132512009418422559578010035382062827977902302159443221917923397693573837972013037520286885383030287621381378269954433579459804333061087051297469730379265671388796890996945619928237390535586478372050685417163412366238586578008976324536132808253912452822445026660191947689581694952328338093136131997661320449546828132819466193545769530059062725562331673318024585651046093104693691107212731112338646940063952391999593796907307492168090438684302302226502233876650048741864259872395057813364051551067617969684627693515132726445891175733081672305827258218378445176620050554159762206809587618959662267428196197435809227695148284922279762114691065325447421303739265496839283799430726093981682998757041659088034161762343286118441635870101002506303863979181922779571044785785437281151831248436413584779037869757349498466379681629977124704036672748912839536049783169650845763767991149879183175518145464555745470236869516882520900362278203945727232613175618436827996439155008390453827231089742932610968235348038267576124627153760063444995234425640032064235999463736898878140302794626763650512757262377371493840768066625913315001677470419229280806081076566535460929687491822720824042128294926414134536975986595557072240542163457887367129547750662015337300187829518277470466990782996420376109002773804662805629558860095149440704269761057675771505098395563966478606928726713463932167262816605479957445190697907095812415965923247941296158892345359212563956683433872059171241946392297653443026812286275780758217005819923337458805387535134848076407459035044583441644192497623850374617701794148857613497796257800950195157981014132361597020602030892492057903975519376486626186405652303002368030688900941150955041807988882438805995200898714851036588074263810289479590114639229894288409406375481934783878797285255648692996472681814414419142340746762759178060008367924103257697785329588268112962281929033407499754283020283151368363122494574418962518860669322644185843991103986448714369733460503679199437243789323854485363756795323773947008652960911571288231753120625519253816472798169836799121012867271832430754763276157165466560459342371650843650314224846177742804993154441704241798004990071638427639768735170251550141227111020999828937844567728756385989407866684255380236628688784200426155025137941655948628810030652393395415675965256389228612813471031921503294701449662210914784045776880232167406588167958490624712940605233184753210250364462481198946552688598053562114504286014893041701268872615170656709867670064151790654930285691187855421215672211694058525677876580957110854515548925777493376133049723036981606146741474008713014318310180323694092947643283661291293834038885786689934470852889767014025082053945743720408610404792724678807568704228144024481784692379488707471239827627921531082348175442030370242083270638915920633774594962999433059359166094883320196055493556541516568487523617703130704173599986462801169737797937202158743788758854768425463562605972205934640527907484796511397749728660376401935888836364115867084253006755865162654099416300069592727809524088841321949142205502273843842762358220445911706584584967824068162286883586972397119535649158293368703698400371927301905111904053435447174243433269687226041078250831363789222311799856132389332497596984304096700568030322010676383666416310718905230591196397199757363598350089935445259785010048546895093954106279670589034867927034671807486974338703697449578338404596045988680931157829178343701567600009184950490615600875668384447256897436735365674079184768184861442719580924036734847713942641775152495867839789093419911262917001815633710640224625936776188092388741188584615143714580017837033887542868303983221246184420652163370125853522000724456049854526910129356667622811180788266016589630450186846020672097843490581585863312612007114415486003942498273257362876791173008498153470585402699825830644130220343888279554499166440695499281327061188679500765544650912413179211571673154476021817093800190324474404753851308346906833241934881700779834295287696886583955426245558514878214695883917376261459045135522386495440498873174852800584501292486139946639738153942662480038285233492733706292690683234185912093228567911300217646941356613300475160427718647734789129595698533434543685025279363482560046945664563715427416781763229308424984618718611696508217568734021275352821108170975858753224450419963917241032164615426078825699490459944545704251525667979410222029859103382615087234730344905581052119030953956027837394230524921149507155526628973360289944139578106553632892974479936660012591318906997588944807051295291501536027566774225664162872179923175333812000330924958102437792436150698183176543923427915761616865835088205020018786629761382579342254903069784621430429352130390876763440297342384358573228308953485744354624856811160053052646496367626603174289125548540934514106786112388807869434965929291121079170270648479510182110610275786374192483166789280844944359926820979544522724975115821201196028474485392387663386448934963308122155447354110687350644217179948382467596106218681483321028844624636873329614182814413384268158039420545592801562291813802806049987105206885071269375693193604559090052746207156089710306166517590128047291751794901081644278980026827423780731897184808924811729953187441173312157080822591745155837351187791830872238048197279743385802362945346624843174489906687237790540816801353434367294642493061985773931762684680818687563384538216811428202287873464287174064066192632288046388309691880521875628735270532415034124931734323462949696817807455726592224986674528869714284946791182320092576616706524440895814324868192070336232965778667665339055338914012971874113764299237474831471996045372532412049722492328309266420724036934713553943349020150492083826428198230768232355650547181359827419852963841428600588142777606010167476746692544456113839401046700234431966177121172620204012710152387955166104186055805665409149569556069976955267350123477071016732182300013353805488267953128606962705640362836855360678377603582762973168950758010722644924944975453758984600194795232963981888391013245832108381863841266745695758316406524464854424936394964415583135205463550716340912701060018809077574079001370269292244305776164571034559317093868069376143849253621677338776806898021150155317095429516954014149596301481306184142571165516000483864698873342091728559769817779337512955725218976375582185152973869229434218661988109452995280980179024646210123314764218157760959175685142680117975937622675510268574782618045648848347249560520529924791602340858392810355142883549738007023514521318112513429880341052416610559371682925229815952373603056323764656629530028321533118924137201642241899227127579236566763224997092447935558411595756406606933216305711012237285212808049576905183432813264194096990028536539782522453992836263766867277410054349730417700425918766404666262847138419420602105390935245113317347459401334682029021192049680898251024535925056509006917357837117271100576660726606146741722631556032686415507891013846474992307727555251988969011487557064391583490602987777685594453991011685244479864199640113658854508190361338787836324830893983615622949630802420322092603445575810259752724128445977535782530338313298911308314387491810701697587167536440408482619974064114625712152212543787665853242593830657348356513994804152665918558737820810714877935967102743545828501959355179832042603023986278140045524811581132633648224686542456392396485094367945527198510482648458130747881661088605139377687598674851475260313243029146128962239629212555798654415101052044863204747920938941275282305234840373871559908042693162921164635799384739584056799173938221186343600853545120445358534350499982919604253294755652702974849390734498824941574502458411009972277286727365338835720664649074820122381575262674312101536117652360381123885282105980751998727656401884410018216886804492415685772305089603455258301352954124251366461406056337812193937473121550772449441329976647282422498841762224372052511244680941846003740362908711805696428366389316825499860448026223811699065804292201365739056943663155663106257168043191199347438503221757668949700142060559621571848513170400767095242592169823701768547029514029194262774986977510247848583335335770981856065381582531644491262382643075658267906597074819679018257102632539603819291275417900397113826534297897169358007888634635150673565821783921970819848966728060293289239027454051220517524114068811297456831797612450794428360066720022362553039261396465333255923696249826613937691469496165947764530634215785338110411328305349585778927523914469438911048470170789599263088673859171056343024074439331387188350772323171147018528576133491730980407138525781787007386082297002225856569451974143955394234200163300767742048129623741720363965698247784176992697792492942306031358608388246193646402588517753480834709683659446944468038127186911395007777756494186089453744899878698737443278804199777186944565643406245442022149750749721251338818341464657133809651663091067786316458599981896442113261570822594424812379110910085188133713763937566483392188830930433793323338428473768312310907537181439507352766402968271979167419657730482011844573905780204785411059322559416047508554338527716150362388538985617135835677543231718573310330341027162858067584831199902475520062634891235666278318785514806527466705294899172852041585353172175471579358332285098143382529636993881810808253559880505898153089513366714061309341673059722447649415772198346941655179692457099241497105245424249098220132186138914313158505458714656448335374611033236679402932894419065639674101881940390250162591326114925034784115526306181978425376889659927059822012829821331676777872838961569286413051869470736210249510807560793083951561390739634919512815273395868796950122283865628679731962816893564479859819477069173337524268600196077075663522847205279879478622971275171130476522504455026958618728078189664459890042294059113513343160046602121860262457803530719836789263669116763023897224533260022461817412526612158969192690440383010492879269974291108868041670125662084488043907221847271087258854451677086491992556722591899153263652757051009153361133143108836062634926429045616562160669568742974690289337087695545012872953988253315885535251046601709988029772190329182226079637514725633803528557670478830732773920903568486272803256880969742155469295731925139845530093933957241326223206420285652549335414563200189293366289804061098662194893396566114168731558566213924039201178324239134946031685039056321064351706324209438229539733152545499717058292298959067378602186394864046313821717872017605318544632047674634181501293522380707995308336267761303776889180386601927803035175242692817116470116425806205120752227766811225619363992162784253669737065938763656855976794129799205230848917772814388332093577144839075703549076373023057822782635316864261450756997291993316169382022135959238901387942166963690102804512602272442157245962122886129041235547398808716389703266019004943473457216064681898475762942319175810559137694500770977824709530025351492469669657357586960427353585417670438131765640629769835847470822056915534611940482222682488244413275529881815352898995955944816674489264919454332217830941799199185839682749608152016688929736512303501762379929844171965480464134738852339843773761182753066859897687442954307392581875275110572080528505865715134572001291699417485500060776752648135826979095084892474943910609084707349544571323456988975637818144328224930623164351728908535909657777161576213734072383638367856328870575606715410798973465409071760361539198202712172126766217441196416523053416558102040790333574991405138371976668448393514101663553698176222719735823472171704926827537692326578003887268429762386048900537152007700896922936057537325118204168836944321970730369786054724761563404818470456172689765943492524638659209366957446604452363635285847274001117074520030341875493973724235236864720327913021936567461325026104299656554391645520063917774872843978275259368613094772081166643010679046909323300881811779225651235090114464265614311391326287002751298800115755132718536121743312876960512716912545758315433683419889487965122061292399368946802569229202282268339146000763775548870922613545949006887734173270155785653503989327944124488767956377960969957280654138693800761037861307251697391409886398991511709199554236942716839212021767135889555219377329645274857419636740266702793379285656863107807260712324329763245040332798581876933736014853931221004391681801572722290652465341109354113777849208204133698502123421974706438389031253415462094129883554589475844564727971192840189955353931305828354276875122169375483700747576279108892870756766654293054384086326378448073067726174946423850088315938969099115445189198452125021742177735398009856137382817365434585512496252315024888773895593586659145171716521707421429530556757678912179245053109162695761964187609036831062289593450705200672561103626082532779039339996944725248700222124829140604569821374641277011626539586196307559356510363651143181182278397697738049237736991401505322184612060884121774287338125655723362484924794684150870905447147835428298902540853244070727094154891638652298607356757454770212396795211957129247293824225644532984045186419370968825044771508884561771005653582669858892293417749998019736538925260450654514817420218601693238749909305714149954087327575598559770868980074225906979944980638514689585170624017716325201650642184201380804108623239835634791931063891721024980919513269261760578581031073114178289973659511762926616548462444488106192750246871694785189598820495152186166987587171216264186467242862133721609236046295398503155800927579766173582542982916840938067255626901105852400559876767199193801962034397851294609003366651745038920813404045072024098212363812913616689454715731186878376516343296852929557605315404711570054994629236919807350414195310322702526483914100739770328517365926307182746210602455476469201290810206080999026599339045969453822487950243879302253459619490880033621532396628572069476438955675667376153133386324763670292925044465835729096293735307060247662547894460188478002409850378450080666695216851435958629625832505901664245670254056115170155488108695663246432680944923005826023095149998378077033102072990740600236223965126482790884890832090391167780695650999870644039370853886460613303377044710975151380663615623650743786697923410021139698331834541303411024806674464557710225896965678416295067678427288463781923319294332622995113106144649514026597288387165463936817890778323688030356298837438586245583227208539641964846732785273003729469278039433052881095173699683300997965471804182775813493943985663941986187213092413731957894469077751778573171981337709023285410092811489203320046111999972113343736877903422976754859884580222477817376608312153953324229294793120040533306453899230003995023088250264059597036836862243543799407908915748816708276162792209096727882066123419138589723124777341295689280438288704685246369273968881435336209683992319171277256753829549932002966612684146738574326312311642339474902762584365233307412728723973121422569735151330268613120948471284325824985696567480436971563732029105640433925274858421585082473421668986699758064504349733142075281454677914045086603007914655104561454753218893268488882439479300105833205955770626656517149345422587399345411530523683183417269987342395569999601083462393362907988936454802112005437831601007620742355699802983510332097593957607144104665932026264848748670751346316876705958331269600958771854029941714923490527118474563125560001102510623894613291666833535176123638266301085493803510520983712336630580217900826487593881664878234780719722379039397984868883899021092933177380952421969096386299688758497651992369686280972654210888387813194680546613449924283510167819740886067998514523712735409790405721980007692678071634699488828947251823571288620720574744238850709452141165940589403772691669483947179299491607571914992690702889195403401092030482990909007806966818612933841632363306932243488674649012932190210107801516190288021589391813578962254610876672521017874837819315594775439962370792608228358969869330974637081391948633199581775208272196778475614744538928231490910241237601560646992892185407471890912461187326396006845897141225553101573972227977948235702630654239384544257249078960333928568726815734564344206737741449422395740592628667191376155787098555597704938106457534094092988959867794862670969921336688206934518516199995818738293845886902131017437459796746966431941095238182659261230087231995651928817769097806847184425692204427983444513617727351123219844782278185165424674862707770295229459555142047677302552235464271640386642175832065391518594007520067242957342453169611051080083382788637163965073458307684186568114492634963262052315834519275797892098699726338832089348303676460323137217004911780999270964342800332823242614185801733862417409731694915627990339332940842197829139646455277166765373542102742646667013028323420919984621559195645405370977410990580400291088828188846755742214475462911258925390846280619466835196168602164757142591642104802744766542792223213677712304194425508275527398714206827132204992059733543150668983803295366580345770676888542687814034647057848821629453522481109866163743541313481528034416035012220741933102259085789904682179662672669626920532950350330497326796497634035462727073425373309145360311025197196107992393922215933857537489174453673326145642384524602532161896061706481594570143385100016890194197235604545341980153483210920215314021439817915379694487191163216540688227552355554883539249582701495294014110600371592854622427741539419676606989910803759063946791892023994092916385374567847741363595961056778539708215684319873700376489470674744598116636678667355918292329235480851504718082838742397205760030908114766616921020599253492702257827003904692903425613928921735173933565651700594061361531043818047981179505442243610852162454205996465050098737432277693970811403526746657060651389967110549423393032704415424926901808376365510537888090396514610587803138661992124902232443933651047602783118092945771039442732307693923281963769367007007962496226051630351363691118503818283889928091732026895239077501395610922607167166416678225288248257739750646212238037491452703548158148205162703532720208024342370280689916922082304599520746743411359472032681676866762950525845580519612305077735112469235762239987872991911619393845222024089128753140287151948888907089377298378546682741564079847245155619448941060761059226359417781050741562219998542387782185615885486636693808393979783999582919694882796004451291989099963531287635724208970997446188338124690046169211070354944223409026766411625400055380819162833638830955507946585680069771154102939045243319407918955148486637852912256794264179391255789382877394111455875548148544723191278162282119708085007217481535404497630515373801935655369919890205112743575689703989356758930134701553902575869898806688995232208677604412857550010435022090263880373767189542127006979687510972950109555582479782144409929781183668470536058661994193119039437440884524481935683758649852663068131155602601434462999938721951853341729191889515974673998031117032530714610643815412693716371305752702394995244881827487503799046948116340050447719869909770997774301469068123454291711772288392061085540906093331222720260333538901546509336837402947606542460405973651242024075095966910348388841964202741114872800669199989591359346192972002204670738863483936899725388593597328851411004513511425848028087841018062752584195851208924902565461601247104709257164044054448490691763429343417852993363110587516483155035161856049676699909830454824151018253959689413723826903686376990181027418825603159949451877344730103857441125164032865567675155144718101796755528986340400401936337371892475494542682033494491282514635161849850619115651562085294536508388158404274170671159913591453369781006043081807520183261384704556104923080328318852470275874117236857494442647111673282437125254423235516185161214198966518252463565177014034478417939999794171057101533780242443691245787960767132561274745410515073747847806042030997873728717087957160466248626975435191527852649000976131165733766006877196536461876859559252951908587648069217176761750642263137341315217933177478340503024361883249727581623403463940138985355186838506306274733340584596166024870275187336084275322353140470721663638506475661147836344250630871182144090090107893797856188025990737676878929379343809644241852630000463910957150589661358632897826370296653516392815725981057976187617707584156477196915702728701368014809232596599619780124060528930092551704280382004580280910095224341770158844625358773421469538251531684798253289713095551868241937994260125332232241725782323218457703826146861809236653377587374198823949937003145981586635245071069200612695472495066385038417292021034249596660669094485721931312852064564750288799704539100035793148551326992235362762634257226997611612138641916143847610478349374516223670451735537352496298224755607940737465930428156945325945830595347665551697581301663575328885354946866701711103489641013356898192546204358061017188281468625608578880161439950845461523376605856220068226167444389725897794825699950287596260426173791097304041858687562951684859301765495368319844735782125006658892962822802073657237508457308678227797583266296614594912682559916879101267052867810413539897687004428801936199603450322344255610282403501141769706817996324426999750861686885425745704162507316022745532475608153900053383613992441660821466732684470903970198358686171864673991241507439958421403436572370141745217939619888917349324968916042819341789056405603601897528401932469709166473903063413762360455988923383207383514141737466624445942129993007672455188934682785929802561114683114973879446289459218811566016868091321126408640720872908322868732517831648132516969163903185876154267252639265087426244463851163367737769547211457439068137725245089357176807141421149094614191448582620813671810084613973040368154644054835050917987673775808493411290548765221133853785560280826304886310502285149833970888318957117080011355834406122903605481994860434571505716135879480055146985082943737127114084991158813532996708308499107126799374716084460114849921134096349035801971544345682892791473365837194948978493731290470823381017078767177614177712193115490165169091142754379028245160413245442924640545555178563556607952500502686931992345811990548473184819918951699181428255060742716956358470381843708958607104753961936279227337428904540144378433083587378634987166871759246416262155492737585484532476128737170218127350266214781169837671093747548047022077083975721207059809635626390893303688395824987169549282425242198067571039863344565196070603965380246235320160888056277581062638879770347631492413321257738921175272433474240372263920174743470315852578434000115897542249215783070970048533971231561683322976225307167636784918216470352724204335533546996134941832494420338582785414609504214293589346321888405580694669055113490164751271507836624324414377722462138731853330016724710108552238414220095445172496602568134796676939211686655544804346620072550229104306324572852446321690586076839230920600877171439815344520744332715464138695030333298366192153674290725433804843198729341520105937467845892151793419749132906609548015846254757770416392003839387976222689425078868152434486854662419221372398550702019016371750159499323693727628895018053931470223460036831390438798778462006225825798432552220693351211258988423950790353374740750008903143859625261456068549411203156887213742338721901118570525836546278478926573781317089635622568458084522623240475508475217795625565835129080499135077185474513814851307183633842098088387360785696333360911153244414017299135668937304647798635566545156517603377778466649021303310531667426888560381822552059648951067433274366651159163026683956340176946895728818530254920538538333936976018025754995495458520266713707833824000402981312170233660575966153147401640786473263957122755604815605303372350019847340181558175057018528873934361070508676428039295534918250409389624997381868421238124151444611455510464081964552883002345675186344107562350037959251500047574081581934275523534078762395630804429449002251701251349918158874417637278640870595844730871143921647000639089818856160934416135782010942079351887153799716497061896643289270594389187634719641354032442385442269582277105673260873472692895940937409655124156776815480864499219120703699495192604014823304390170061749354756621529675869830337215969084126128590615285667715775553223346940121330364001422234695549141707328451070282303601646111484487668153045578541663596070206722412014806627181347820493321008173757240932040982324081464713772286908560285713795946923672264060965700898669565159322743180028508256666698732033180950761600297080292679747524500615290291205471861954790958809839048531230662713246493143918159840798730560725079706339159536936621392465316539491573008328130625653835673723896308821520640344354248733179116784071578796960795988783569704779344348651580443280971164163771419680807505330766376982233570012469057641094860655774845706193455207554464329736935089821547698960562306548065705061499409070117150208693410251827920677444222948683904877205728323035927223400470850309009200164897307669629071431904704208261419539790087297366567437732458101549677890978089279043876034414775096818258954655523187520454795354336334091874886910851885785817322153942330530205579392628448155570602237097137622510652338571564112287068630626828098485544716459540181326773937491214459587159234558719738634278659226456275205768049687418360894475967121244454443986039897857007428576588534501088536052790455007498162811576111372814479575710329097212148295165021467755837319589111080837687992032728142669752138622048833307190838783675560945480752053619923144840965477987343400664838672190186719900734668904285009286631491549258081608760508055698763145678781333523129279033865298918615337606718778113806511672643585233917406216080151577908528560676166167385654192385649445023121013588821159976128867941212115408680925426555482763936290119628707519548537033137737889866899858080362050314057261947157940880832460167178025538649403619706534363261797522628435964958733520772249108135722364736912809821605144395116596940808673540925315860175357256372372215343472485383680907644697940612151191795854888461176250925485896281294919299747632603798515547284337720519946072434145811167412167084205247051802395728902018481274692242844970276170940564848243490268762975778438641609886752845819035795188387042632641945173892961226868903759439535320860329542507370032104208727071764829887678745972665797376457735931979195372317645186219576159383348735554036026567810210778511490631763786795170531642501470435080816563783908881063175265924029098952523210233251132612143640007923511035600069513606556679185029936260825554863809269279749351544657042443995387236530843842742375739263212088262245241342643081264512748285125894381022235814693657722778924678196012199132611210288960293726413804379138234720402222160265983736151444996203755311947097331020619263348769404862450921561586278131350575874256848290467329036631786231111120150122561902010886616104093785126142991458356874054697138104983060929931435747895942823016031142525502138561759913830754911184144271335606666328544862873883477075122010320829831959911937913209014421631698243006607759240503186051199993861325037589392119669220563674946041822055538808132976665806580901473429244220894547723631280543598621728675870200437872611773947127890564781672412338570022557113859811242954041259845137176055053119361448783545476735376852147707770764579425119607690187921302890909525040434638675258571307800678518177831050074934997158459032253632980043808884536647842586359698223318031186816813412902930676693768598495265758702900298341087106744991312997102426148026190952382924212441408693043216810835045764164936986202305312770867857327265933220122722121959599160974653338899379691738089029370827499836497141439645075147517381342241717706472024933892262864359511817931300215350535931172361520508222838876834680765189076789526665322093847651639737892528632589288839520382128408892038723549628828054925814957403603278094371875468580270146445833235431536829228001055700827475613115155350197015915704231479731540436538910411790237964005884763986041807090729467953486481904339342362213079662824487395819637762118090926176573728816872680820780409288631443841886616761987427045595846197004313019869825927567466993728700486055559406888883510912709193867726306039891459717978052026951756066545140410534674193144174415700416886968953206986916018634019891625361709052280320524361314595225918314512325776538061101364514552557263461600917090445123884501817730582089960606082285210295632297693161220734245945166649509024581797215785661523194283539190812020076647808843264930604102727005259525998431885461380662912226184061269557164064739186434332834835255722055558201491804324786067457233627371910112538764962327441176862450706411879938740712340474273858123196585526326827492050849518733756297524521632368205854397186269667237709609517800082805322463932834466874910106675554149484834579267295772696547689488580448848197449788299851363635744263343871760981223365444572826076794843920211188185039621539113012457794227499456599596956077780291304574355353621587290667267254098109729144904587231779441803616761000745978391420093244513636050602845189201739790301204714783366503410211220534152361296332598492443742459121591057183325934411887588287616254875767249177787137111889725567175933552799753352352009536811936814894756491638788830008631800037591543890760964825346597739052789144824977631041588980733070857627377734684774936515119124975474513960545059402876354695100958987714258200433017885185343895771575763168307662582767012409948211105955370633697887268936421527500082480738919851881468233314624155348080207682999836434800826994740893899282144555301026058981097437641701029226843058437510500416965734061753723059781406276426545935594844685825658809092271036499848490977160827975177280103013045285999428760784664559577576621206656623000109127591148266561020797037215830932935683809928048573501201146543742910016171487741393910582171748049615527625799031750642267750967307751613011295583403887788702846244636119029256693045564726893341096014691815438019487257616323905096242050228382276660259619635111433823382719231093262934850399646189055698987885746970922744011701980137436797379867039029373740504881153623309431218508893327153305930114243994100449022771628358233568820443058872431378735226051809166870376556643179069842764880155391746976642530125656930663043446456816286308420108140995336854147409740584563194686638669085116495752730574434616074493739044909854881798475656735615204487097399730312433132229880234505371238200585628070735681427679061542268835690565125168008060324762168662700387185791203237950928939649321765164260004905552586406850153406246386643957486170161763900505084934256192578568394284207894727220920203254175388877471143235098545407376094151988901912776264654401487012681173938438786661552645376846943645762388554838328794032444723624684471648332426449804172207129290159770854132083022094733712176058515373079319236616339636272108918003763564120635220316104957976119720143705687925936744984661313706417553969051188687573906038111796235107572293877772095960033794395119775281863509691140616274107908082763111092662541082871371220428269484848664349734142967059522276575574698044103663675509751280586245199626755546172319857464478058507319078799353009065394768146536710373638033498241206516424363634553565079008630171101550881564588867977372199754937563675376986149816317224760307782786198653722820199500627204476349247500577220746399667447226855982695163812444974460447058061162006872582389370255232920008823024355682310015702172190314006017427074992644895865509525751495301808454666883541422873892109539615100139061365564002636037686255231663630238577270365871358472513244853561465666682378939811944935321652264648132162183762352794392280971813891570578294070331482422312052638314729896108132911399299640393279072820493936408226991860295963546979102252547102087796953824101494705761946255997930157151587866494312556535400695079884131325234078272288515013321483382330238832902298388291063004485739167860337227917814030409377983714690800093280612567217532707017627131085179366918049048486578750231448030526786105982131957932700168658999707401878659731225723433336529649684845307128013106672070454204215996848809812617683655074717769672882615501947056410099684875964011221788642462754497472606557805112826387840470998815182666384546770275469293098417114474532493984651588524109377879207947649610256135085505586683771997491187948403145788195490076737731565014982952178442978440873423681512378316015053750665852699012565483825690025516068793079427695161223024534446343943904120875013207230202851343978309068699904128309974206588371975311363071735535693943244548936785599068825423577156080968150346570640140069376588803752412278755623314475125011133345426931311130423588945762444385364581502934214014087397264346000774797113794708646272616664294011988381006462556776380096183285277262086059381011106304350210153771955723597313039315702092409199612403260578071237048529627710971250549971182136942832335289810528485816928913756082613237769616191974636899402349852007740559456245493482475751549663550165103766563498040260394567061472287360403344496721906171544609047944458003305292351635809485408154650236438126904396896765547096946339687110057440259910367006884206130868640312850389790001433284750769037760576940727294843997350652464032222129921052975124793284135075554577966782446052211936362706269471660603498699707273858067206360175519653654889778815297225253570517238112998370544174569216364382166390082117190998426177459381841291995051695124235910650051242592196853907824512397363669646805597216235701556480083895116615896338385705164129160764167927201486695691834695256414515355833802547541458206085269891190997904371499492230702031854764251000171648922070905275508878708563440185848452624697558967602545188945988654923464645762992402490478627840633203937081999484117392817958239010114216310071381453558436069132264191500366631063519226095717737484016951951534059682508940490570154003502687164483073154501933054906909929652829374978785019874885456935435334499212214692214963261921369824063871199234540926648983295641633616783490332489179581998607429650423092586534984249929733424887980903894698663657775616164042230156732735167598337482029815548738509830187538833062521677628988497828504893927961437526428560551737052821757772372312864716219379573289219978883662675386094278553101672012403169477809652172193536024513458304776389096501668130062346301994292300662454496467342066529509210439889438072287903778438031251587733711018289249563903841271134161420395594298629018974406803717517812051288318218885763878697761220257816383207166285034472141330781012960891518824388437762646306699885435361227135474910622931857513463751047882239939322617507700047009233534828001263559065789608274428656427983869886002686001839606350855728555939452352802223754549840391113016051300983115835827619391234036290371142651310602947067864670738790254106030065113917778246063629500935193940981418078071701964137068516192462503799794797473210249654275098674668500245276278810120073184004081402510565584408952705757635115320763281195778204595341237118822178530348697402304516949758620169540119033890702498953435041556386968729992138169169277769005875204144264828926786493739085629075095915772774125370514605621925323897166228656696622902595037378362315232850834415285356560864744184869242012908035251066553268050655354392361120003036799111028435409080871711494322808165692244168348555994240750207352997706038149307343393691269893060136910726915872159476646698849160461164539491620161429705926078030503697179545914009972545703914579280336503770807751237355409867309560553698843731088642310823865211576932490419371328101784709272920725289706008891009841530941455248357435800885370772430196589066337930519408890708319161111658187693383908124352540472649243360100909772144224869038655301294739084443943030917130031018471092380561244108722942580148220997196304164152947621107598367848666135258192999534043860097829453995681370517331807159857466960367284292989718058665862674835090846742543016296310658858569463591321679009737312702430753793833002523601997873878913795356820689622505582359987173640910023123896041501557059366248659515838043289668757846914746284542058684106240738975239471205044996527705838726797703576431745280568549035872625154210178745188559858950323239282966717178567997410494290925668700343629408693213961379910758510149394645772783224212496895038940304454278467561067546837663657148954799457931169295302212921116955840353457363038445211866104155332554949934626299518573788677960248840492305010296052486452038980360069170645949516525658222285018038901633860081531257780558560255370253146034724525332629379393727925324058040576941556909027934145951144522086414631095876880466660740401216915406222598387813382651182478677412985066276931643659587634005010307295569451628627576088458714942990763656988943828615201401911489590675866732803416428861229631421525469526264901740779434339259508606615023333845280801215792225774932629662556753291740743731732227331573639642305703114653066877103708278991472309422124061961437720419214384625876892365472513218899677996280755290298952987237037763024374710548232598448301305124325214756853694063693772527276768004058362142211080869049286703491522184083456584613710159023920589983068557825446310321330045113241849795255081115413312131487229662647844662971003293664588078208948886750840781588058174477951895867469665437148670797838275173544587293072736936727897424961533207399187693917653690287258458112145360833132929253450919840223433204707630322144609349224502316675232582600881537348897064993658684381455930076676054062380643229256189260860139957264667341157849830657896774605298986198415297266777173256161556368505564617203131057190360409634324873179428464327683899016169800136580409294287064296338997534025489283966442960278813417527618372589152124485704305782680165655574955943874159047063980866184420220724170645976697635322598193685857774709289544388041615438116027116980810788842577959504474924718847499896908792811577682513047555166434550657365822553309962078201872955696808181086640600990131847551160494113415286854473740995035560607766776019122966295644821223710892156644956913505360486027501731693873530658093337018066631900832138525655348445735401537097741657224733195357969613250122801275433872689385099199441933344869383501335320766335263851815054925379122021200473789706120572833854247080995120821436706537247812721329341814313483098248344489574263588689622407661388923365026936959366978823440351414778186557187524691290926343942184541386411706399089539057936300598174595006618072074090094396538256797781106395753327845227715464728347475104087809630826680312524276131993942083173595004822827183481056391718186511672774874668122573767323695046724804673745722553304575149843555227670398877492411370464952829353966655405701391372490040793368053556673031285054904311014019323701402562454074584209008706272802040117434436713817965106351566139708050433616960782576645508825459901567358923581578740847006077204438686627248635617272867927224408233437608773644132874999977162434487647427693765902631956776705867727916915277495062162532264382514059776457978891531202067141679365686605731749175026055183250284780016082970880054464110010878642519485265742884868510932819004150947344143780224549212794024650263140864547042491796465314948052703964247045611881941890184369833276569705371599990675589544287666768128735286221936671968382593906812959084875681190801696493303463740524444068258132716270996870651961919721455535299460949357361792611559549336502655442366086915366348901140766248550944951619443102086002615992900170673837108781388752842528970083297034942391018078768426569172553986479023235823528514299789661727553831488605031478716127584351295757034430877177750953292839402691996121624359473571649614908093382995045456349681251866835861245543464957928305409755428188006765149510764607933757064698590336952743342871239704793030776221994508536990926528313296101417198819306066618787943179735378481036038405813456750526932200205825092347129142901714748463587824061008769667052582056882268424428934140775660797845950826601954978071189576510699346768439850267371850214508778081795758326709359298267123141244142036550212464422295643233015478820580262186221233924319870712552011507642854682229899234308514579757903364687977493329171921483691291673990984485347143179688832244800204784098140897374990653988751780065216192694811176577809860114797661652719142308929076874001808139042728350517496038851067627161316819089875682196689576413806461906408318133274439511362053400381035818695455738729994839674851924766571389441469701352464925751065524998526792216319398005976754543157436451657402750673805113966588279642123639104304001722491942021690920490883124214538577068546134859391560505522409214783968788912162787415413307441497640700632310879394273329434193866970117722353343788782819492833005913164193332004095548121753937625815882919851730447039904363178546468590133981697382641367790831571685955641920861530475306232822582232316846575758092184797626531562262235744538583349598205490021492437509330675523477179085789206808087514137741499836930766286636848576297364122283694777014880109467183725746703590121414607754433866229561618373030405672333319180784760685684715266920329792618043938215511908967775018769439053258797493832026756606213626188971470288291137287120463551160122136215304813833223247837794417977105077618264889973454092310484968359293678154965385308432483130691764043364318033815910595985739993129140311369628687492213961035516167858476109013028365177435579012267072391655480394479000178116736858277000583570388758904979826994192646348968604438509171544312012361472085378505586086276516341120073274386698211668082122336936101780582060775413704451224526259123781079312701612617241713579214738515273509455435183994134397118589541212448020953841326340562921904551315743061535351086347476006243257543372087985174719858829772818296487133571411718626209706787867184999858702112006082201350301744647647781264271754516672005130067516644621743710049619337051612047890665586241976780375984735796073732740341239768013600257123536365680223140952120603334956490418184247613976745898033995063016309295762492245053917201761617054849288152469609063818420989688351955219641811528311639212568156257936488459584951464371393564749930224005484089067746713903591203229294728763116788464950376044205146206551384388877339540554996555764100718874377649291441474634200924736241601169700567624911058236684275286221880999041653435461230058461642131850992708529970214114188062149825530504299000918037360582607982610043342522528312602242635265291353006322320497361015860334468391070706582880108096158237687990044791587415682824204141297975920555701915375844017773990915623567730288970733363739998165022717401781483119399967014620332965747343097034489475837156212185252727383380660012861177287534746280994547725528144885106825944575253508487263686103815207441946032484839376454460206058803320972937979608832215190771738489701004718448423844070627503745788878146606728419016044008213379605068030233929954848484172032656368069810556275823083603099141316530717236834928500935331215821376720671165379298027286041160672214949013379169666532072636555692985980905178952548839757380263142459683224466911379264045867293220198895720500087285951381594196003075222260592934360159853809416201735334247312525899152627816892287137312064089011840931227892056280344494050897303917134256482280087392772209965640298133339031537181080495268516142316589458620963440496971658816508129705876823330021066056791091802194597442333739615754180811616126014769162220901125816425883592591440916016584513024880137062837378888744424710246292073054317658485714265954140903163720762013985533993909115090321078303417606288104688317842159522949578146779323678684816092168091511764006210086640668024579256956181185495126443577100541338175209158099614117849328450537635061741585124915924259575281038856407929308419738235175106163434552677730564405639779068453711535862150465871047939640101315860893878992719478664641728306034556037356093431659684824712316548443342405857459110917080412550111788014503025147233824340591801477843847254961585338911508906383403316337226554115829846611673249174028399538463212113950055481385766091414923186412701304797815681505134891224517414386167878699821938381069139787201078352296839550858812718656154589043350401425345196372500745210608708284546906028125940485608228723807674053562047065088144508649482335111164076077082707902110062133242132125951649271560719426932595296361093202742060569949948975006496314984391667008920825191977758905485376263098807531946591494420673432181538839615082051719511696634263690252779548982114109692491739425651210386598130133662265901425892959402334108969997554307333330407189833947236878510011989957214091319133049532935735921536607262507522086485950037420178347951634210960545039607199390550859897493349848571279609145899179747596143136179459842388467596812672457307740976499112693607652093240787414324589459509891605088907232402785485148675238695479315846584128306763070009211791088437797959969065362705400519851504748104369514711952685937785059624159719368664975567438735240418478877699100183683822949149622007354386780189534726019225593263295120205560649949647102971899759417429288260989297969905118397581403615025756839018699580503147964873849034017828828430241859724967642796315617350843211878123268640047860634355603152195421710195253254500409397166843577540164364726119822657253928896479765021773577891960566881661341261185388293090947302361851847471320064540372965158488780103438026996608430668932031782393557194111072243202261441448194874288360292830860643725799510828424013706490148168543808685976217953913641626087887177908389037878460942998617087643567846152909237434751361662213705778612002510420780275439599683784280614066129883866373395506305972310834315399857350219725828983648603215972205003034188450342962984578219200123963001558346422665019614064537551587748972201240251578500912859155301996328345665575973554688713305385446019403809667745428985560731221442259267696326076365868509393004119838430565873644017572712298246700021760340887951658256376695891845508948698318576591325683347951866085622611624965415214924825205648619679390181000100276432568487166684246422700139226256486852378217530192650808524973465845679998636300921510386205409021749386792938125248557096910385485737521634996700215382854018504124927660272927706497562103534160754438792134146685039465396139419460575960744955784937084194397321838201681845646960066197631544793242506624858373913952755993565208102315872251627472991535331117891620143036444350796984393788433662310801701926306852583172995941209911502089893356601884884048260085250395171103648690189954032158239321106892844591862440050061123091565986826367201380967634714256717720287369153448474753288810961461764145909618968302939257495273078592982732122374211774215321338023603933737152177660026820933497018389530034654889196430722762370301776705092719757147831581585920306827470145223489368221343924939240196963069365398262311906562492448954389454162841051700246660924390389607565280724918665064665489924109986168560435218149399596362653182778264122622548992307574290683182554814118074924188712596741270547763573165437126489482639895455043568472725205374412839800979529688023294596465973005193554368325240094614196079376525271798108064787830738704516001096485306668616047793525669374369057838245787871820248765609421093195738775305917176988272603486986662627926788396170151761763796192879197908311373664170824127455508707493452940638077117540413345879723440834115130783172424978465111950972316184605761771624742981890335291209641564628209269368351045961503816805452269650417311823059210643303706415061439795630750344654870672271405093125622312362662010942345087927475360907427026558658875410437215532306500976404607189731113074857879193234155924797616258635712359846336440039153220255803008814000905975145237039268665689818580772761125937679705894703905953885298964714618612086995148859523153159986521569929319755935994886343850419473637693737946921246473883404940589008268913105290580770210139732799729156010422623864409506337811807415307753241507915792987593634641953670342848340396702435073060036054805983771023563481889337477692442641355689078669228443494731057512604467373002600388375400193060949573639105608946427377120598990617947077095266969977887509677052604246261317671716422218367421169009954456206589710155520777997811619837486366979195565497703011204961732074079087998478898045981723730394474987689002428167615240243940958889212770005390123525936713024665872824902202061449058618976238616622814575730018523655220823657344078440669154291812125838228586610939095732676925996624788990892166284153373718460105056023459727477647071063139523372191607441068521006490062611600436751198457688664603468992181757513565395086005411997005741204295878528886909998140347971996676955333701318387828077561181465216335196323028101603639414827049495903833221917730984716803351322300055029166272269466362778592821781224508810505645082033696951220826609678379538544939083108662375574378262476348563905383494234427856108758812168628990680184514157568371488212125890265109365474863700828550942824985586845671849538021063481257587448355454375464983959091540459890788237061596480186806671921946220577746963690471203749166957369440667060910567800233468545057847334295201647352120346532392815038292865083635146499958457590555705079914308050150953746628841566047459467424359077535352057382466071865349328500125088381903193108308565559683856176510554656877510309566525534101287183745303666847767876284033377988199640813642232042254053234039760292201486307757867101950319618492982832712319090299211508780680256196295136701085312606392462375014447736608736181126229979487676208560569834165961511708514673650443311389597909133464877431608891565688014227419089058654034578530260501247377589268844332635463697973116584279878645719597225747698412803864734325570379687323120716823284674438344498223924603761410909929646873528033154195119463287182946575039251810018548956303526976907359637909516262884118074614498811407462059362919390671056059437022627315517300345784146648345096791356866993747337820728429314604744627980299959468967551659561083904098525075881987637545874193524843076863824047065009839348289326275460434441374870936606353399562240410214846350492426808500102803066397304206167056385239646732780327518181619968103733672806262056812684032800873761591876081500058238485520582342750183972323111991177517582447923618183412230096496907670338542203345829596592778785769342524201783081592055984186340396539960441830974968639111722805154614875339724014459768495966611359591753513654142734017687389468781898037230177101619880146759591499342659028079812605061183766186470864002886102468771259446560774532429065998846604287494389266416264245369194307471185710352644648156195410873322278054765948086511633273356865712272975954717050549859312212398173231940366950373064552789489056183399514515767048675782960331495418074417887277717540108811204739457262352816791069892694441158866752976577141555661529021268591547191526879103936879997955483016808762567301081670215060761363920295508695304669802093769890535930504257343901751445904841882236411216303507805313789550063044517119699115116756259627876294952045792345765203599293987686006853258196092587006947224938944641447070996035540511414169025268448286345808435236491907182616466632152324473475446411214916807584453076888311056831611231337727130025568760942772967954051200215840263594241817851228039406160689103069781251574702325701003581252763023798081022568947418232508745476105546999520561277416497211442859542684778480432249369354408788437170004932534061320259636044780710442596529034838673705076471067813584077477492846926320435001279986834464581966537251472494544089366588832445613213689105015307065859754734391843620484748172866633133617211499438717263632178788955982766658525461125664351708112058698974140905719433613470208967884313433320108316469369392264622729500229939707429116673109259921839248647102188959888915456333070287186161553225668959754024742797255009017690563195730152899081360197702689563862780721709993646893504167493467016941175984135849365950078457531100189301101398389474136279915528602340311364560431575327681990614241747249689619098774582369718272900684365922945592990285393361115352661244109106956578743145119063623134686435404053403731283906204771774783404945793379748511639610221810839853354050138038909443679917353595534378589038349319036691253093166894459235011456508414001393694993269051329421628235272141291754587649652909930328279677250595940133445067432477517822657271314589389945255733548380149757437280165094530588053011857126806145101378964583049657030609709519143017674829112762983277649571454231735818796401271117774965503386300165688303938292605860591356595423930761256067685508099841985919066470921679587953630131265365990975225566179726598145645332952558854094379522687856712348443494003043341990801604483667187654783597119763510115593666463265538316561442070974089501423362774854810648607473512047167972418671049274725199632821781368834665111504677658484672574053469666569831743766083079101332621970351350901274021342849586095772972888892867173886464068462164543627523941414523330638704713857700932136602171138263961642849279889652996266191382330141889806601096191193591276478602504351591066701681789708790450742147926022110928767334028891113665610299172695801525244600850176574092235655909761305466550813359175173262881337282171107593766367239661196407841348706300265441817107978294927916145499606045417507533808547901566072079229138900388449106746184917409277193911560486514847640360054446928543776691508189230691549712849623680417543796471184212859732699450544712911118866370263751212488764440480518356099062816544660766737375402241232299897524893988546349109444806195517377037358858167735460693274678349985389283251578557751288990657994587278364488107501439748182496582935784949968496673913621926529956677975448958184201132437496800552252028644435684959646214227122034327232350145073545504652016275469461332358353351905005088786271298462682988712527467148781565157047355233432891274321478903373648151876560822507755220570547280669693381465254805778566902480357684695583832664993930117843390260819636804563585624099422184800489375479267425436455406278927540651192916920279903285998568181840601127083990060679441673223787455189050079450833318949253847481798765450694926190480724105123820442217893287296635237860479805367167409660997076797476992993425865506066173034054615092525664203004177484781898409449606786056199958235335317093039385805806527121220405635807078654959776388911795121914304958044984400063145010535848338780667125831773487217879722417814541730164363685692412200997015162364659907621217910080945849504588946826404150897605138980177492403137070974254083682438528210145465821405023109096656898025808238282336998067936311764584476726302750174043357354468181976413320327376444435368721580571815243990068020458610063444960602064215038240211946285154051595444771776946202986882143159166959537844077512300378261091914700686609298184376375358903817998154706759948380448659886358506886006971827903940004903605026893940822782495477234551310398644069511376622799072866233026547179761650548683421571563943907414754564993348464356905374764806822893160576747744298732075091314421285627012846873190878050294988376015436276062335385858760983211020366826808654577454238784247215174014897586424878225668657685048463348770360689981715707685435027728966655558859167658550877773193570094404623197696121026887454732529922153825681836772002362175114838481141823784731183484520808100078592233303205800038763182415186486974495421832822708848997328896612997540213825390474038942363046596846494771814363300021673940013208431149027025975744133427897841701434146610149989827754362174770776184466309673892505349213636503244687481840937399060449926093160641011858460748770234949085008527058378955142407235472122482838109180427033807066170897686610428520756763340451998425442853560801028446567365407071768313923246712889331130883702768909188346752872063260929022508207599419486767742740474096810327527827059234163534371266580305481079270403949199210207069857099964956031937777595766264005685561690223585155158351631114196369793915298961540587620874233484166102579365914045705922976158543598836518996020433715752428724516751301918414449383293958380469451429727877065499475664514889642071673068714561675869633392002328446474872673707063050126223112404341072622442902518238454906152062355712144500901910783426567564327883478644097692874511429217425285021613233651783709663501048406462860757343055009903497895687736417154994566612277761516107410256776360683429102853813317867262932598076754562016626919724348073830432269461384120486146772676367243812663245669921010306412719290975173158943360432692321241218055793266250830192515752433007832118024651005885138694327006810649295995274065182823054941837824952652085881286938062928930576897477621440503630668293361386480051350304728119148114998774979555077135400098788054152162778848274600977666472955483235263161800029578276136639753193240262773592312490402051553037565977604448994073502591308583958113851253684369222642928131209412629864666798946699543643830724889958161156383778405203327809306226261482090364255012055622455365656715455377563448447232826331085634999386655923350363873192258515840675149808780994497802704574772145631239894756324536475363385416368183827593283954625735163331124272254341204648922838574427547805055650951957062115416078997997952490422010459560002249801631088630619180715594029874587005492379164765294640674832430696685871372207996068273958348751752327604744461935172591836245755108838433710779592184979145283585226229163392402689459627376655643085724010587353324371940330558327676644602618076358599883789023349858130349921471693202286345660831882363729559282860610471985573281294430387913754932458436175709252420252814177240419879222192105598683861692178047246732576156819891709139705885894352742371804287370898520775878262756678215633129515962888376601795664283798769612955887744290763179885575005514692289103625464225839552734252128661119737858758598051997560520148354738567163114719684960928378485199827599172359751821566105892531575758220007816884851994020798858462771528637700050790536083556392446917589786479682695685674978415467470766061344054678510894479729450255554030750226479986017566930622336331884412863839144061963992069801457020089470107641274794257736335972404434901641593987730206315779671991146236192910504349681941739323134610999990846935200269380155251946122909485678107519245749331845704378877289874225232686046394647202441113798957078779748793003077189910899710194373293776700891174087472016788098476444047848242380067293833232571629604017570353250673653507302943840285581734161063146521350464960792971933138855703953213379263081014969527169420556918413950339137114970797118858963249271449500545591153743355499880050996321704068729669435580811911184651532265921958203765567775430267500430537035740083677369096718805862305886769315290237454909220508733976898195563590188685278803103389430428611178044673936085753008266647780265741207113001863347795107421354959769554996005941571650820552576413581190965452957630049705003367561162188442977452466776025043994214110467585186377999788151704644480083240793417866334477542173252923969996249578819217738407249717484519142601396641933261822419319836256566957574810571685560474747264749254279773791269751896924349097738220109145723757683849701037757269569030382939863579341089605815451737910649999421075814385390785620698185073039807751636051314226953455197701058593034481687506327491272242112703453249882231650873582181679790657906739302364337523977224197589117651538974727379396429778909855454523298001965607143036598478722906720144143745615574800993141840167254903814114029746025111896465350774237679847176493393957929579434133537407760348122435234256232242625613216107735909113493495474940896891114497958704170809422814041093474034655322951476796839073741837983775958397814976153187524685240015228294424295047525532864121814139760730646647973964273019758523246494399245274113124529520719597329387411072781095188587274193240429967523605259839145961407785348658534929245517042798115050118222921800271593506073615384107029705039527480382128204586170564906277520933822932046501746650625934496373998257926007843295042167286796734721522477468831801114325080022854221107501591006025369374296331596710880253485392665840838310353430740810936138019203590392317562284437705502967247168173141481421338210610079983226562949937544365350450940578942540512273399957006103646856891215610950425622046114673151578919267995460767405761062427182633466739815464563543714515538228534713686998891261764626999978546495874151251734837690529911899459912451515723000635082337632845676211772899370226107016901815322474168899361349096877932910355137243555164958835866720991489625604756493969758773516086280682641225548923088352351119976782867277600814957756389264505470370777352862439680787750448154634236187172963939001513649418721929795134039636788889397504866336112491914066119663315130756414269852266329579849551825061034275648608601735831985690616443481636269627596483267186985143184899185280358916093364947880422570594497740564132118219354542220541660133068171775740192489003531284309892523989999034037848651719854449784171355306589394623345990478767923901775266669213061529672559430697437539110615417246734687451301340491439269808197937610443649384455045896514681298996120658270416007356376439468022547747613981636824542218763252309298540668521636909850976081931114522369480871402508507375187958536464251192471261428088870541960630985068969999077463529507443679284062557907239916143367532312647809845981266158596376959346773898359799973353443233387603603438830005406227080936402156810411963799779019885628657847873770304731704384975687935025497603195944244140921653092020649221127027684828396324549143083715261735540168458270216196773886024684325375856538096174749778923922747405551581551500624662430303602810883474470004582020445514996128489774891186600892923208302529058919688549218854754028602308354695207987617611742999782405870363927005180479601575408958397457656059382722911346763670848470814479849456854177172071490352451771141988449633824308644196126587217095868894240535243231434344193264046499170927253846780982174287309370905959135880435973137697400840777356041138610609814501256964935885319704593960772027097885710670250872935635948598959695940526297336451114494905239541239225677232713899523957251430747581771174413755195688073998934414832265694854389860725521041824399054994536064163489692079447257509310678221858013341133929594375163002379040207571690793198664099573078586336955743706165150587189269433723988988960499698151209326386772693047165881416223025682698201844134331093471348122722054345527343181968482042529788672445626763993508980672326512915331359992572226808796880735738338776271192137703030458743944231632609699224156335695908961735740979907255820490875779246284678941174653407280701896999814079869978025350702808912692622296524105251210824285439817049322402090245378412405490196190937422153661249609635466731369259408605306164135552281056072190543653374729843299954180713563126236422989674485531327227629466978440498088933984398936875688127422603316606170261925837903064828888840521817159678356409321227073197750845525419399315988439816271527563832438604517374396761115920754852037416292416712986070195099442364428430974362648741179169156114132717887329789640772507331875699640502492768339154815017791295592315232476540662822650425124582625808419175112177029800495966419305938891773637438489342264949056011716015224946690592443416134119411795938331873249018097869293368000359948383954686863580725848823291313977528822462135554036066372024203006502821650291064356231660292776960282347002882746438981009487292073378259641430343842415820437630470602474012275856578911586080387262614370573551381690993016996625130625779721799170615798227595768012507685117736687765369601651445159226005363326128044144234283108798491512544915733496385482722347434075357370547112292669780888278678840589679211946570298354159776368679095422854289526148177396613647224948056923090102452913383671155080624291237729945306888548059177745281308053700788661168993567845137375841401386769594536207494331005868804742052459382867631963624779746552032693739471742481741704130068263053066140507453160669413008165824423127953307638122582862653595673317596529766381708640908042188942242550487093646445003969073214819927367899929166539852929182923210909854175356073683661027554514419362817039989445187088931961592036037117997847661758347585534893292586644336621992083107100427131024558329652787089845109916874000265123367880481444048783554572091896846791307805428338480671993889822822691467935087667523891134328481315357184742587343593634848835099437441693179097314976848064688288755689036901273530716724055405861135992811309752172107110628298552513680165681890212303986833684276912847044760284782469507354269961047476864086119996771771127046788961621734380944824688977228783570567203105625305246283631782350516742974883731253213651765117399191356839262232134000645526321030230176667651964338725114150288063330852816645548491306587744381836603174704423813307521687193130305979389196240110314373775429559713193464514129490196606048655184606173605474672885830153071327682208862126397266970019054377591739323407964821506317707141079229767196180030278595598320584019937832735211553556045830916091126796446154560970468560393453812518490367580471059314935478154872508836600442180883707394200346202216607444875680029107677218116744959595996484551543979213815919929913706632807159210913899180033795201696449054210568992160973497775885074995945620637112502263397323991653874432205653041706247857405715906328090536923151714821662611846049415127203203446140460295972332059857452155657881021872120492722551430668683050611782579887677906238782590410976265540037198224169467025502733587166058591004351575403616526080609904255100239201776296940098502870885207005654356500047254804808825293383512296965392835780675064489775711130786153952744562937784107675790550854214144852528437142888823158941509672646589188000268667364003522482532708072784815556947067298297988766719168054189454719388758859377159960153876094153646787231885157225974686001685652187698105833636483603566464550023853586206359233746503198756596278200389586169695646966255478197176828666340494824219981057009601710460739917743249527678202644307078741172407333066432815909813689201446942770233844266710788954418099880352251143866870464261706995510620688800982884180354046819284461959082266483705969485106122640044087598085124395065709520248503595498481612796866973102894755420844921157044780365874222648332048203861747689825206950366650697801028057962021549579569329998014864236996533981311764838293443883936453757427198484304868528094159536321533056587212647318758679114341495472626912836993219451513496419808431978142782766500831819178741409781954819127850648079345239972048480030354953157473539582137387178886195267632803002852278998139798756543387257446302022995939642986640596441352966152821931316873600026257506520766424053464682210078622725935071311216904025469430300947149645796058477150769637007524784742261363319776658789689977945269144254428282619557629043421567177499953718802454412264782047672339923169332844243732926684938249710277458671839290092364017896213600625462590458073139838318743496046249911197626453889007100053771832815989577708277802078963838310689617299335867456140575371045355224554760032429445822552792523940631617229360430965557422317365428744671858292457763700285986659487290283605999888274125187530427842774554134849020218174965185316385653993441230513078636224023583006709888968581640529567046453449669360051794807532567910922923421897666271410356888001626514778584241965858689913871880104840226254684059237273604631448698681821600784816582806844763183074367958052077299793330344646025403073293387491773156599718051047659587365470403758001094192865217579950948809809513912160626938452656301475583461116600521777464651010696172517109354049729896716607983704816846746855652702433047224554482100052629114312560775086149353934650342327928930221986784453674880762929730713522667143407780291789049530814164170760466381672217708742082032590834325680987508775134973107457039646342311240231534258856875088876555361318368378550339833271269673098919345943262025253197474654215257212076513519868550516843025693798150605246583077442775042162546984872816969220398596229741150155043044091601612592537250713821428744115387012528898211797587666983872601228351563805735166370898819889991408748575597921258060170115086074850292388888507786409501282613321192719970281089161286068380518267348331910935456162647022444749113527098766118031985689383145406233428603017457676597755568656080818258032773544245294967873800693013103140687444593784532839630816144160385178066466319788859397220402799142202107396928848207129239366960740961923068336735756271252371054613479584394204329533183743239097278237652116572954884263053192711341551500535455286731417209670134632870122688363278441811511180498371069947952770888794272458541999818683014802373189052745702715363180018796909729795002901952901233296168608136686169674271627105281881911856079773912803425656581513655843872666366373572877195543948224974900512720447385682392204122063394064403737134114684393932040429479465645996202676262563431738917257515430495833040231082192486793348718093876110154644931088311886481396702837587065441720079996667978448747098534973062650380321662277636722848272284003043990668130149933760228290145196256275772141684810450596398129168380628270554073560911626359985603092234839385842167526871294558258332511750463866958415739441650774552743880708297391483848118800068754618931604981905386254719478855949771357670812836028341924819779129763991635111081816276298149337398385414566549452921389915697327929671807995012401127049310617510489561708918568979683171408015950107997653114931928585237677919649114850015083440683108912358584140623430812158057751671839648110623571965034313883745069176067536591039425337866373070801080949542292073862649907940127754627249987458583990450719818669943107786265871903656051620110500611107424874662952369902521048293702957304828341923485170129266697181343854018346541506703639502390141641881459904630898708643069409709431795011165798362669573661561114226344820016209807876520404951095803821030771782525256945277800537824965642680808729809287844788555652541684869364133089619219617189333798350148634073072984374991788834140625305202262665193695949430339345232750974438454346407036296834486266069249942149525660505145535577273855691493318542785946684042686679037301599389342430633074243121171507362097908999279046901938680828885781648371766922983640741503887956624522040858823333420448038663134387928444146925972978399758037256538830806357958825090172963834182411082347636836029815935832171788330764448581918404410136811924201325703157108459898872820293335488803910808333718614589427660499414341636804806783700512927569774758102322517328800357259548398029051901718935730990127889263008050925721470346919137979900860192712483050923709168407951453520800993484656755522897930786659348644247925080845523377100250593815661022759173247937433027501721053332319645439465303170814424660209599733793212532923061652074392223436902821036355309854415276139705811097404125594770625100806204918829709665623699398115424630928441539451660378115336975425996847874371071642687299029459432859339663862926713388094304403571593776670240293090515347963187340957320755644124462475662473249720671759409226371951544725928885999034939741251412572406477281311142721227430533417910560131293775880671206227354733731147228773805500960056479730796493601078185958877178579799705283147847679850137623256612831212695985479025141145432808326371860385831862806516341409979065655830378038537356869828114357451016387377802165080679560044377688300041221439625772197366040281160278088583406031590895839081017723304241213800650833379675037399577999487089763915104011268749603112932185938942586218679874814851148896350092287455235000693580875571333690208295557269697006928714114426016138548721089167906041533072748137935129355601524576445194873952517584359465470885379375560388996016254103733757356297795938073165902281422052619386714944872935776683338770149015926185022352158063584819802814599389958215945254267920686411058786191184074228994161195337128588932987410495894721381657130899259201499061969856994117165464866779369234494663846459529228510192431016480061132851343897280079144858484074975832036768694593098703225348515353018698639861528227283194962120978828768465251631514130792473870878882028403177461130660267070621909504806042764957560402744450900185486161584411979420708681053594038286339576192327995807049243300743389381483161831849218261693120044617402896751293827288095562556152659003705168321894128524093216172378590683396360394497601694326784092929122527536102205138626022024936423838502274916188147286969740769951042508294733190663087059083603652253877470121001908536390013434958511893049533792725089515913298333965737335852090771784538570276572859550535910388558501474679884958433468772112676220672236976893880499393649218694365200109511503431025516940921792459086215831963266404912622622436487852216594740209212826547184670717670015097673863308380199899218603665614909996611051631160704802550134568072332432611815501658600690219674086417429093075268811524093874033682288394639383982928840137285716694732868473935120222571163993898813492896114313725198785033571024622522985829573539919677825810433713845643673222463230763170353698242497875057588108899202611644642809778302844373200829529093740055856118834576163068789891083988757733643156720959069820487306912931392616490125076746205473256724848718852826046746097624533442483533762151765328829841313154547378954191800307319152695421498053551367628256879664623147852087023657199716585938961690302241114234977796276156644095667395411911071583573177691112206107073752866162941687487459015271516901784586099469206781893156888027282911653633140051027129558428215337464236149574021074577153942170572639289505898433933031477639146696338870003001871717353419184598158087904085211381085292887876842250316580883583748370935272869157034334186127039773590153630576712235107142337033075823301104143124271447051995456100585112962320675012296828623551185524593022926903841496325645132856097278685644934292149568768804081758367505403465192605181004671914680565123630125940676157305933632145507241820240670771918485177286414807958345430087385947589132090162868476443322399113813722672639871735489062373481924643869362345164853045903427512571586269049839235292628422663163494765053458563108366308071669232826436920796315414312431115822833932380552887969664406369346257388567925517517692383486598547866192012188121277914397832229502938729706108201641725569355811494668572719776544586130417700928999154394191455569672137967792959988093860574592062246655833073785914526112684963632278832946820553025209653119758631889543639260836393327839290698789615798306370741846580067087058163560950484064264845851699885494210550276276751131047637247688086019759334580383580266212293570003622881404266788985375860453049081498428696522175536014795565052787555262685753896556675550706667773325452422381929888018760879484348476631768491671618144853337885999221486844980336954924616459716316318904940877132677648932095284970767365573595447146616258889896760465597086025203853134927757530854348666922564658434166519276929635248310386271740699263648942802197393174696369379014033794528316482136366383391365507966034561214303058036746598303197143676269520030887162250539533123266743207484912950728850478268115271051157231267871931023951241035031988899244388542784916292562703804424309937867444819394780824445178402725227703238145294278978582352530359133988233757098984783157077341440144003539938303235266464264117965916821935362798569431832892615111896713915359775755382631579839067824666861964640667140814411577080319679788058363033076507923497067985145963877711773243155834446277493390958731166548076305238200464164504768646046463147679913290608854360190503470590573769767671005888865080814673392587685457128142568016041314825350801211169335833266582656665705510823696463415467242445974030967107240725712129454048425940466677982556115358647690934850125078119076923351047024517974936723692629726357068030446824958257104438579876138566469151028186192644295168013871790629800498118701547995095975704250209085822933001722181058478698591499451725643259603981084044819352130766586389929556547481424368382983831364254721897428013382545820290301076654203194553413071440841847427203252686674839502933114505849640980733548801211715815888321940480900006258388446053707619464136846902013492265396753874590150082950522671171138105884481019091585020307714830579053297107481068014614719799595903309804558864960749217556015977851201488690653718987783445363665926748216076962041004203194823928264124435555299213195492459462607489600733446641527171321660592037630481834414198969010248948658213398846441820717121455714978175736039684906715009360233762918752037035219749985774174654227615875439072442691376961674445045716120319208031239570343218200730621186559998345614225607935592302399778708921041468923036396857645993784891757571090604959709807830746155686677987510445459854837850000557188498899979903194560218200916999120457314020276991547712185711713182646796093936644432197598177719691126162792879597225373164913998559577069426555756415279510945895302609200617529208917634286774446904826923548859044634671214408232910206577113232616689633527781184298579527167661125403379869804183287757769940903486505237139719145795790548465696854464818678064579293725753483962459286929677346930749112516588506008190335821615567432638611112983923085018017755908206757962109871572662549509486500470483375576646099422437738463772244321391476379968236486291617815920159530923448605507175328871911916234200395043757517963779497877693478439329480538365278939618399334829054465973109027093616565978342758129385483538146500866366467010876873132605337015738481077206100343593099061282545778322414508761857232719764033838969921336951647383483862997531059868997749676644987122778913375087111077547500261766557468163716945591417168890231316872511866793034005900935413292095486552414839610307981548769975502167481913454327236268125602938756987278670094173229552522200655605304780411335832428425490415080893753606819016010833213902719671468303392721984367830723318122760220859383369699885373390800313402159141765721040178023951245895567001542550270233361574266168316577524061135664776863909087294784895003972459252155175939737094650248466105959138858489498891306831750350664594912200424943851765678890558474873967434169468269799429347586386966581028916936418089896950501352198511399302354263587188434842624611627959067721841172015605865465039703134616042508526433627032335484776102212439033391417106019417875015018454729263777564448554104979145391898324165826110930342336840751365613064244357304273852237072066255589845783533276490081403152696132442936913600451511856231893141937095363830371757944477429504720040101380899147692336060394563102667552960162785744017844965295271355152169210816274796209476109745771083317038302942816653563547953446071062532466951180922434687255567847632879480846670658846601924379650517181094214459624484878369482586815379742338404596957618486366253189743734691614124701327708267734287453333936800973146809659612007803435212848500630732539917837409534477268247260725949182399469593044214607521957123354642330668311144103079828778887721311718410001349021675143329036819667536036291488013229739147042239127081911405704946585444647011570929576053901967382323541497080152556137222302709030531128442296485905378512483007435234376453074861278742888734126592170485767128041610206932448597032328769426103056343472221157971945222070265718643830895718816439495009097173922047232360824849336527883370519402633450857613592093354518012063471592580478489244031011724168080722948061760622891446016518501985228233095456034486885349616791788629874305212115620440606466943251244308821135043367354260098154180471711853474821213710648931039686058907756624652627975079279013594467846947971588009663882000701662771192441515975063545451021597904878493538403131949267953096059830823839892982305470312665848079006967715691782852780479309406780871590626702756489099586544500226867027539693198474190116902563147107025627355623961840350145702492174898712755649649109417815355524693054780028412247450539129916777863524944435992013998315556049804450936931499788924399311784400859539029818258923088769997999672039069032189624003312485139502515819958736109782752851707948927812905933315463984850392510906376169350727405768443102949817677035534746834554375509957646140008691396994225209373172562072784952569528577062543148138656408120779389983240031650254844479780953404293427989843064169270396129885245073217693182573395208258521424202446834836062365680292596307767979078301587184975450158477876445009207611915396382867399425537141055345257858484881454406721993749859487224206727316085369014442193456428827524267629148985860504205440581809001776148847049496763102935072241644968924545881047300998613835503200330313330031743163343900436547382138126724939223126300487605895783430595754584620005179724031645371889610540331311501750064401498731028483878549417147547775658813039098833852555062394721026262529086420173625094134984774870655043227601321386192532137060992591567933825063812672295139970481913756503443731027031823804489586118637354522334541261909236439526193553216363556362820651600581081606003515368308324569106612436872040392093216769875285652488667790333317357935000415094718206075958217873143717980841834741731678768787443061387469815809902590963029527062624807425404142232329089872993939085889652824546703129570756459021617202125592667398078506970803269286684466556807241922285662338307671374341447572705422253645947844730260256841614761663612716207024403836402858394915066854403663657844691697018326831866800218198497842969565466047334898719365811656778738035510769129686436529814113892868261974466122797525207941600076302350854171876810163632324786239946452148741454908208097765459416929024351716721295312947190306584489302419929646761340930153612711289839241575830461007046387574636070636297244098992645842939975673333223332759602980998606905416995354448704232378791689808004897363661360111281229684363530333950426111417225222248360728211912841190269502108786336169281372975965519766078895037545417120338775639833296595893698128370720016846447777806358867902915082159111134362734444311743040428949673315843148081548057743712757220129769711188888180732843351840419935602516567230423372107966927180404831730608151340907996208154871890538936341496756199315275586591812041018472333461712330539481697891512383028844287342618353004434661912069544888586976841908849276768898111755254777390891943082022835929739734652539716774320984167755076125922489506575243692044265586361298489098449031408869710273900887357999741821051995676942148376498491219609565137471828102249410501176073472062224531668064104845409789709146174393770741038897737608438234881455336960321478681158836634059519461470034403019193292564458707193010837751051105247601054725787280689582062491553704010607897139321054709444808562782811181695436067914460464779517888464614407313173857580888596910071594536959185161794748284466992026256063396534504803675639335786604213203645638065050400359909005545911793290842129025888927256135926585194079561442718191792082427229322351056372734195343862668568071177623293375257592639287380819644195870237519307795671774607441545812759801191754691689173265171039598309185471006970071730614968869648403582560415813782082998807349134170664060700362020472098471394980339187659549171281375474162058288096401124714801718405043739540091352554920886411562841235339044852491408432903377856403207142243262644397261538990673549783786252773360366898008865664242012377777743974578070142761734313122162598778113990338857549477562486780495468469355670059835216155095312903372927737283295595392180075181337766338029785336154693644216122495559849475220205936232904339821607254992643236424020813773238864712539384682094103517524738079830239522762407098762029887935394336598626590202756189478929036234555767377702988007958551374903347427142782068048512773217348030256854952974288078953260034921909326834422169846212812952653648318613712304264387509219264622134445993764495202440747495904622306001168631535014930192769357622501246789633367436284285621351833667890370532390938242182455466393499222527569476660783606639422043286150581163886251192753695646442498506096045866452123475787826388572930877179955390049349755578975746514637690102648590054180478273527792822888755381635531818019414810781522294193695573248332156852512350365729364850840074494478427102052391436818622479560667685824345881426781039342952975066874077162912905039261577973564576918872863999294573085817944487754376344732410293200867476665107568345957538400077214840508443294151005820851644853201032753610885193154414668909575336714087403473194086276073019299683430493502339088089061465182704385080688998114665134052860529390135878609688504462000723061297407085814191754120202725138818378571394085719167768357162996765990663959398870240146376442870062460393364308021266880593287371286484509167348647173659705331745551006766471978174922423409409566993618965330863733432149598776348876772166365357540943743631166024286134467003406806963333737144808147021708208699143332690120357290378534502698283205781840685910006907374174313488861419029989990199879412171048986704084458407762580171965237616038644185268169260843750734975005042198643992143379211364979681395488934361272221397072733956140740115392587617504029583180456099143516284535137704856162776414057113259537828770576964375991801814748678677639381060852475999010760830033995995810473587693779825077261250778125639855670679047341059210743689916243314103081084914739262149839497577793495791638090870063293479188370021221418588930310173209718635193338768799868557606959432646698957855022244834097714768638046640110133040652562024440475972022992516132409921800917328311960466920884711231870874709345526287846572322597504732515278263070390189043322129274500558262658200165401708424246465640068689401033776831429745672480595286373991787973169944664326468901469389905905670778182827971772304369362083227090680243355600373099950435082334497897933621677860331860585521385515552775642809751750370023440946548052446320377156393163677816309372127542768366472293833624129270480859724579533959359714665991871882863521418597864889426688130878462374382738443330257565160696382270041181979985648462497042914093901409744018241593452328148057380038937641846969699125145039700140620928880952059939155007890204253329043266574218370548253870174362069746924434706763066784437262619196019285575951441096418890745599992631561182264933845573116788864535143360876980955685222975648142016607830753018882903073444216447350832118433381928872128535226772562310387984913636798059710822620105728453384723335330445293630403793257274381619299287981610917072052014816558408599098777856745228113594928683309969621205560750607894723466277918103710738548839364621175111984421090465512483560263245041125190646770795352624983873330507972520379047184513419996515485852172593447532122998654530054123679378352513173258016892848703653699260987948630222316938469412757280110102117427881298774490542426609689500660126575230559769350288538756727497043005850403835111343048602053994272114030189098581698325787378045644736227465564034723148214982010468777866850516618116945111577042659745401231367952687379772399802190812254679825997254733486383896414784738088475137563032639742227930488862600341257619944388520587459386240948681560545070646115455045739544368744964826353753983128723315073153650927528255830737454967083515536386784598250899810440366280531629445551782477772861559705232005717447622870004047071142923870098469726149086148188075763472191986754033299946691766882996220061965746239112598985035863089120664481247720074056128756667299077466338715331733966224129931658725005194454667280675539641047900668829629425879383208602997522870235608022644855322952690568007229309452825360056056226332700968042005564800676263826641649763276011277950183650219372130758660627543913912293406199900149220630154759374965270957629565748867390989209042287135435217229531267886149802161214535896425216449977019721975209481765198722937621620256001599904204367727640744278067407112801918929727592359870479585088852602358809189214462744728658713562735820747310753826060364422123673134417006856168767955433420921877566855777364741432349794528437438346597245020388645597475016386378279279444965548657909957883959714750098566261900710060807647463932964003082670335903078252633436266200417189564844642181837072606948992462923900212954327954936632339649344317503101428282507000541199655797456901412436193842536673811365470302075565531294299921719792355648938159934908526092767761063218998290814206341798853428433424633237256221613452413538330264087509015150944352262751648818916266359394332319604060594515606914934655659552170325498470231424035918424702280819850032157790650722380616242955936667120158328764260135670444982312399736380613509397168349869180410514018052781850294760281812396372173884779954683213542589722169134018461910679918985064170602062638037911334049734827488337542483597762840357672046001942392695771769516553845940588270498513802625667479244463016119285999104451860785466015021402331141861541209279320244002478633931183161769611828045738918680714333085802239914296659559677112430863103682080450968841095240957685073941049972756109415190814691582686770021327000217671810290217087775262985817561282042214244960957333643249318593916952441344241096499093373121905480067425371425933893115776720812385563466493804577730968302835217367009539532259715242774646587740352612581275677719660274588222557309568297291115593254867194656628686954477559198357549092634848695914002057041851639554153997006239994998805003039319493143066011502987496718197817410716814083938974040411121899750434399627610589062839860724074181957979674328547467397885571648743553500461877188664973718109086267936952263747726446320612559918152492782325577413507649502833907944862464540641010174990856357676607405127633904624550953634682936194714485507977831717648353525718211030620580377998979283392665690177640058011967520587741400786738623641803705470979472722159660162368919635790500638736062081381331678717844659545969195511560732660215180898100129901826823909037983774504550438013151562407996050288744151614610463350815090164298899783525043925463281089076266026670256653563972539594038203223310724582891377379667698106277927816034347502893230116937288225147155746208322804928723361262694948480145406063760520283688580605027839743576190308483337149566912017937235865376380141320044005382119381965462006969739051044353635717574450623078755045007650397646532623141361911410547601690352547728801836049148944109716867411047278788425204589814298531594388489397826728764076350779918716056295790264339015684544733908900231747176563950384602699778073480001962833423022073287686807075874894905913473268256337509463748726653518603956645891371821651717703348352898823808689685012301601529896566555229955369263200974610280158996664715824002133749262510454660541468951092822869855312374264016303025534436165459547970981518939668098899280813749624394146612318472403990718955420221787680976248498311158327993739239659442496864538808217943277820740527931711583458048483623204645308045953848200373297617095677867469368470029836026052303686931735691990893823888101662668367980121323735730385664270110732892835025426947262053664068954147242346386600021312789643337252495659794238756041358724764966749554254229444855883293993143947928655936164635924092729744445241466955317019499374857672329258545366418448382795267844981597728041715521960350260961708433841339371698736393103576243633442753707633314741371174363959972149214394379726940227890452080757557252193265434674102733011924623655716448353603102801676272810491937992819391661185956082588159087928469174322164337625893837876832060570851513714727129740944097303957857131778799755046094823533231035684922370941478851503975566477157659369521145843615981790906958707888509738494890818781882262131980250512358248086447699253251794481268787897961027814817802013631520927764381700069395025160719561937338413831361760288427390863019137435222505449792108397110093590483844921438108857169403931301671415422516428773022430150294020774849445317172228442270370955495068016533042043575256197079514837114247431071490340956369475866692561119183212930584718546533945976079479718603488605716458585009469618299879020174561263523184938629179614561576458436968369014747086812482569993241794318275485380107909445115934739046849609246368088661156194014676122949385391395876736897243361314466852270134667433215711342061274952012899780908650824730915187300930509742923700496881754000258919241215729068876042222813568156855397703650711477631317000141957152925540244588251640149036551991265743447071119574022550604921829362813893988605409820163880747765210603590633059848091026125729903474331510038788973463667477395717034574051689468496629063409106736133455634415389743601919014510137546117855467912832972154171318937413564552854278625852596549847821393289151321950576276900072644095246945676261571883954477045223059759268018121716446065806439947277719957795238735523830847743388697352550716247184072104271455147758431047805705509093237691021524217550255462401253380586354919833645501694166392902436967263040410185918571162431323735292785529240067354089886770106615672442129563668709201999352640619753511204060920070498781787772836300907902159304631893075969614060434275401631268331916719296484018635876480603504623125238472223198099895238965887723427439793103833268982310427804519311476754779491085484547312033593459600871336706776952493263881699174318387050398168715116822803671871033431519377628399942329846516880507871563646175104440164893060171855355971506344225591518945066027003823039348921055500374827577069692399479943488886019392255847721972422723314099553693954604921812535282815203635951560440192282031581795284877485593160781212873895452032093968883507026864510659462341514448285530926797372858908362124828154258471259927732120426977020879187505572394241684626854702616228905556649044898273779917646880932166854546240915850261420626449007887158724510565234307684422217239915943602219010517210742442292533845236823639301349203119250246962913452889629407753672646710327122079283352647174499652204040167237199332325981256734451707134207570775584366830715976854308092506446880592380860866417453525847801995187488567242474640698933009517581565823251708293758703470140782476605173970043874131187491270390164331074256993687071379865613420202406473569500543804771555527454538430774065600873640324722904213602209773746396290080655807725882254855893377841400901102947439784392290918314169852714845885132958711294422018632848883745340453201005951099831232742225494590785918891871617621124305394329789715554072740179086285080369018698945420022259431373336279553553594725620176432671159665238169295139830249277964883586646241086741179316219800359478703650810061225635600472407868465417859980634848441431881421834570773331770121256758582102351412339783051127569621637245791262332650320794595377306308158365213563918636876806900447641912506105711873645105117125996823811218240227629381586876701471702381613760094387242907140242898332612128991988306619141363470450677601502555168640076716711284245281240025094738209488012448764798138915277392257864300442154106663318069841217239533204556470276843349173887601642922858804401663407157183220445718435161912640122215731338454592212872253226952492060487052245812844610222349833172104346313214029954419829852306586299747754111823862168049554084667268208676135754507277325268187378024637496576064943855277421997121102950459911414222432604954756610281453981438535153925805433603389913115394832483086216240479596001112568282773314286512346874997086323049853991751806034104021961336403463639188285083547106965370905306862029154486297323074883450524186733401574932049601754012066528542147519796628995140416891322557806364763624234679024867655759104988148314423348264492464605772404016288072767359935853517171355463471463521242478145326261078917975576506770486103409631797547425494391098111673700635543134353610281353910852748384281079887740348609569413985425021257262940677035216316729388162812613886921489078584297592473098146106691852572125031323107810809479000751081584371826920860246604926292422039116932840545462290607056141230085316904782265217149755276999332009303019472869275056323899913030506451963577195594485806296984592724687099216692512318391620406245347981831276091704732637118837262068556771711817596921707016498566472858176880522502649921337293072532216013518119027759940702295416082636512714608674227895989001397980608455172974154135661356591801094443091827848238134962344205872547770486750534256487190412184454730790090483171666297120591427565593555810821463257132822360122890913605655274968892665205438209732791208254276594481655345223065107606190689416158676277606768454279718683754044241999553871114113060585530237541359198277470539227843937596555740068706532490857401881407806074498012440277476226123407143937325014288502657380245538024907403556591205332089504277403772722679251911088458133984448553289647581319713721664870988894918108737629177573835262100208653165613821595622381350050764267416377893095571215647742438282677214840233911724664610340751768297684572444114334500907252575468010001282463347754053338169433200569154788725506883661482825582756722126961960244973591380451522790214047717742521413080723241053312594355068158711932259924925920763951394001221773142860918211471929196138139332202787115033999224498485424020009873449148055045926312616336035163409146455465335839182925002183122691965368733642660311464510403485328446945709470894408136841986477870312612228786342936922122796742060109917672777929619393786955788614979104239123674484855199913061986094494176682472708048571854732361266312302211913486088281845974969186128062814381269113913126641250829398238589908102133468668068002879044878574261747605368669978412671978093088523588249458830423390172475757672483956528738432187203697771100777593315194574856191133570279659308314210105730408743577678630707168915793420551874029689520918375882474751395244786820222906126033755068573321081731174430264911661388530084174790199669715850016401692668759521637265876166457521483279328193167284355472242881483187589846270128521013388015704709674707830607137546650998253256992732222333079001572008713401112359729045050094589148333287621119668112897445023524116557386916267443494089463636908246283951257028599654532079982429649630785285001514396593460456130424551676343147642461463670446823614525459952523173501688463121453471280977909518598493121145627160707745643377961447752413730976113350700264224621082194595407775343792493003185401994944690225900109632945312029999483057377799582314247636474005134724736436211813915544167174976305140240338944187238667611879267797750908203382863714506310528124184203808156290628785911329802337554045679834920428077898752409054376284866511369572563312312850616611083192143802744206372992603561419940060160315778402309945545644893810931005760042357270532835281824514369620212322321377793948535047748822047856374173107074748647076728784285468090023370246858757763696752166142540220147579629991496185169367355261020228110867189064457142623116930709721140067833190105585834819956249984625047178297160950322617068993694956858824046636829500068460695985067566223088825182164782118612924541686465031483856654955201686040624588589829009011722015929525624540041104146210174226355221594367216604628731891818921572912582010628787153600279262981205134110905707445637672516412801440275448355177240473981910402379775157598478489952660689300230256392360728116149273924615277377636658200110826288652398824731926855755191011942207503514703659743724713959809378469679568522527172844260746608730606853225838831221993546436500921038530358551501510233864776978216081460022668777682311509771872283032437453749351896223934912420666794258647908271603787341643125674177476851492241582277333095259799489377980848461834020311459397425751272155320511020194972798618287850817559435787226431178487520282936675138278465587062455624683722723223960299554689089281833810785872409178482334699444947827046578388059555370865123616886425517544053499933606795019237437520342407226020966816018762280585932429669004163566079192441124759899124955707444787131989649815202926560974082924327525644754101512561894674001960403930734681264016936337104474234518161587655627288504135734425368538425286342247743763782054945604974249812432486955914108405295654400395934889770438448399226285116910001703790975220606657390006226987715168513039016067236408615332727760600941123992919680339411881459030581367119318453509894892251561401041219049574868911808991364651779234742322176801301019298732630586286731499458152581927369068498717194148925189782698174638857284768834297599041866114883289351025367255420771673411832387598723922475797315290085223195024808758724255436393320158783477531943104688393496493892051203965430683196971004167639151506747756714328878067657064129915701135867222774632203547921560113216201740755225699066220767553143188448593612977844347288501708049873703237051173492665297479575591658777875234434774444385273022707277704434968537114480076889742945257238857198546050524859650752970099114231526525877760726216694566107152519814163013907572613814908433887937953365408649104948093776764876875640609831121814977173742381773107163381564509256900573681211739840016483505791328442071180007986730760713230978976443224576777445563398695970528402930689095892309881268949565160130946500144632600702073456810698702039643485419183509156605008599952525619916399868243845848046635928825444748668254979514648447935430002042279769802266454127224375739244107789808049559874868299707875396212356200458028678927379567106602844472853540217010484784085756619330343085070595927756368582079612481084802458429908474065722260400194850902362412693624679913970322873287143510971179964713564239764597189350309910697219477233520572519545388048753776870924340741087851821363732918239575338243217528185841555149500724317971891725838885367806433559070334536718779705869548050707136787143739869706655196068889672420619067774145821430686627697044623585070664775684679171530112813687315066282905681671385447146257188936195760786944961961987768852581175666808212801194440478760194040950325565238632641020476276904947037380441138074360135768935691396661390866774782083576448501144289066760971415785818836746631589126251305389576234145995285405496735159678272321898107853219658244150464697972975659464566254786834660951739535027513406086275834923654655269519661319111734788418191727882521160136086414744811912069017747186659248371928111475004888662055460387170786024864740606587775138829044582496536407583319179346283230572568273323804984025131745640011930004254952976563493460663340445917415542215544593462594592539997252200129112824287203237442783073058913171486454386387390293479089341492340773879557111502463962100302206036802556396203615940201342476870985734767343183456797638765656393282715877545903967447183142874141836078583806621848802305080516369737594678323634431027114056909458420608956878853202156710875888857772174006243095751558245124540400488624394621918546157792915796371428286895918492100516688358215778947497320755620216375554931656315854484227613693259790339448799466442162130564202394950996420108490716344027587168209172171664154101028515825435124832714442812464121765897721086550227186665205875661691019841490284335014218220340324288942954970017082575808957351799798491930624187208428195814669238946471201204072437045273063124102180002560983610469298082945329619492923433440627490228817540169401594009220600245615884090628910040760740527361771608564853146829259047014728557192116466363722527859178542337311828416766452385804250410610026826470258429239623524994736018309925026645453109078025608536881960073922269785726106972832381313088567234384180783370217864589812473195807634343990469126838665517503951406844883185198600660516713081490879591841950283911057796855557566575206293317643873429743106862666273932062099669267457629875782928493015403587022951986430745085776292215591292007321958276369140222174267664217672123963627019713162624743784816143968082888484602843827723733271645380294285413924055333265686136042015768237609582068459065191330760848765645319042778683501708177506050147038289951483381543092829315385041863875675995175954929415061872550443752833730037484511325130724799593707378793570156828447549085672992098123477740334955199464738170771636220828058489244565556304819145225430138677724865915259634104400008170722637084735793284814807604263312705273329608474261785826989795723352008955056859485811107491668007921314274719134101405755008279065157804525910482082992562211548988531466080028948925626511998619097590193739790315763251746265943890767987805766275120112502961193370014789695623615154148348895440014488937077495867803690664035933511921878021312624740099089080357750209930302752296444745109856414156386616217193553331097473697350750529522712449568764146348160807649883013701229320643097600011779457770414933020962795381321729740191397465810961566726707891229346004108053741183564834812801316008986446652538618229210460638573214244274615923487372876673285515296963004286289151723613817525049537344410838352873868696855232402749439843300070398850083107171634404722368867772708321722856282921928303584412563517886320410318569281257027808982242150055489291454296063349312689191356036817157873829343369300580846087904782669950113750548724142642222916270293797056227503999982176909834060935371870816097358721799229401967926126667518953202614219932023352986777957566010400632444600557116335057243292106444327370052704666250765580974238069144644172336892664085379589706096289677799802669897863915776442671381483716442277466347696197393037632177103369227618960300501018188063515904329177829657449421376816504072257744677009142346126922476489848850629310197862500617276713049531800719679173988216771542868660653380088372721625201993879464604543276885167297621822227041322816251216577061813987540570820827627271442120833625586456802764163730000383447379597797561229186163773835142300101846156145129776224341757807491139198962428361179237749235515517112039276913104120290115053032679849524020735324432706175156100188979944886612732409762404039455336127460888712811715455840299042245858716895163035915756347994561252138826378529919311209631265749521118480680265543947998493536646513848868686538581124334317089515642406304752636192745440327503359799974620826526123050058058509496648596426287067029691777704962788640226970292196790286501472832711104812677022351068696191486537393956979794498081608957531362055204923298223781076280429200702420208105993247564861142942372579869693269792845420589419597171642328416862374040725426262540433120513888860248498563458550749742391136744172201561800424288160892337547709134478836072609549569651486991846598294268815635819222587174105875143865787292415784380771892470098111502594792442701108849662059751336319791972055141384418873350372882927280713578182255943668896780052045355814130811279588624182780453051851885370572970645369533762024928885752380820033906806242651530250571367201548117025848373156616621934924199366183895737498771458231395980517717551623487297710611181324946993038001813851160974445489618865383325125718887531999512143834769885229810138316458935725835589363172432014302386186019409016415394589523768340353349992325073761478980335165595269102751982306151041484821282681591822561742611115271049760425998224825823946309664332639709792794981692394431867879826934077699543243838380623625827010954378867366856345786698136211068012182126363601993233346840212712819930757193347784153315726846523211488477831385983949627956207598679393665355748024885863093005016370013003961220281973155508497449306962473888538426950872773314456094365339595657937497437641869789918057836636769588385537545121007150317853897590605101225672849434382189642622534584524915701163520233707205185991305667114933600803791363687741257366931902972510955312775266252205050235073118868406384562414122175545039700538294732088214530194496148063882937699704854281430938254571554639305458663100147714684950251188528664139964091757671061277089066724771280558270066373090512714441654044614151476278016505113857089542135010909691744572462546782797577530555227961877571648458543434270102202791517714034347709295694097943884530573604035371361127129464938902579474568446782420871661844993323982487676041584142700226417232795117987084280827347156592128294650309640674957805943411658401534237594427759447316519265767378422665520546178371769936628039230370658812720241219619927782251489549449749006360438031522995211645387896871633940132811600265440316331695319296457337477490847980577056141930857086981225578776349956689951922787291240304751599636636142388083697865169491147391822178735588394723935704391330650007568870916308327432481940814258536589412280803570650049549558829248872319098343698170790512038010390503891869303160140825589036883823415449304535590043448670488634573538164358632821818705083152338983943173060010831800744456032343513157459338656530669619930016442256547086354403315867227451967390363131687391952703160969974679048864153672312087905443736952491440207126294815202798477928813286128605696769402288591909435208689037707043823401621331197366545450663063683396203714199619767761660556692342010275600801692518674646020291609799588178450605423054997558730025261943565375828893382709260531819198535937881354765047266494784492474042964249396781225917383493427042321325376004021852315998236262847265887880847963302023409364857846664076444973439682883425074502645414811472804626978473064155811982065583694680308736463501751923100855379836125448758195108515911078347115322232571629893507394343057376869202192199698139256652636236485413370924657115501274787069498609520591571733548308127838340832964154595009469635429558171507751680842648043116620443009568663076301565325136975488014845928993139687216095974381063151409272472031313815452904229937293410959773110327087356594765860615116439027623787222332993022912298421617913416618972958731692318072351181607278578704227291031009418544504372157564111981891655426202684304174292117959279675921156981346600999413585629994286214614991325102722512140916248305445098954170365212673532467943549210706155807484827253710239612042059748206792254272720964554450629107853997724864033343562641292907275597417878494824720768063778612254989270366305944881864538573911075294777045448040250505014036397640250708657598184943850283871443569989330160073075491670350805692547749272917332072613682628421016870260555196269863284356503472174169427977634772123229712714547407548704602810379681339314505273874044736707352635448351589542921002118554484877185922563768566573795035740953096635189825600560838718490371146597089903710421345988468291646177373512283659617202556770517704228187761299419632061942102327398631722569042165004433109768012510095602885198289031949056402676244249946407660768506454201122923874520207941852199465073383111241201795218298559822141221167868263724703033612307308971314551331069877895039733819693223770441975939602422158465365637194403419891768555357534846300734577810006461357295854435541745609891933663288160564558753767415867386910688517807679481902887343603996474941752305835110678063726157331439619848304232236854243252772921827685148419644594154060630861488544749438892464110520826811608088629617499044197955276875862381908387252176112262929716977067779675081422245453620153279825712965241571096136790626291216170367873481184227256530433328586380855990424529545280486094974495590990219915208926197253269319506072456496537119766552205032078922421900743801260871075241516883018544367403943013325922363122649334738229252474185580947699319487187295304333177012261270440908613204589017497380137453982506680823411979210249758710233663055545308953014107926334198761455426406615057072872577753366830118562507746505104511334101040928334785873691629020789404679195903237375755599800122326632012494114724196349231056139925717470762861526478050377065597521540012833135404977790682647203371159583619152322035924929061237397340302692080383519382261099057588749927066068681913314912809830934988308368418695375705171974781922062272010893238116896733637049997354346032856048522049894489816097003318207995563066859225107367024495115856523031223494676456133969976222967356682944336170336087753067975389385950978869497929844427012038330647186498314825388948890801253646151371725000442791561726467671931092225559707662654706012021530672653352646876719841866227591026402176971608200495924257225262007618931188077063135265301152466857308065970188076585972711189154330010685914601389941545548268969111407847564028516387157680718975310341640683078283088067136399948673024663882330993342717428471918877061901333172634666735578652841896970843065946808723968338806959293990795853111188310409370621903279996968471625642699577679974001450282084548741258453327798586728346929134393987414442486137834024337924180147558786131795531468233994315048674107856273772817509613554409579804758944575922452016498824234647376789187112681057088527046697332667475345252662408376764665595652327421426787507122164731738512636644162272016809653322929824859351267600133301570261475536988115818422821239217096337247670757558886170291579776270885089151326159300052015584777026851143237900150248888508977149919312250138938661580753775074034173065968720302782789044057227868325985323892991880693485291202183884512277084189088372854138681630070768572590056383118972393550263366988637513604291638632704817038400930114516885852073003244890106988507874489394495075979222290435487961695969397830015499370318748102158982689913555212647871808272413459744956791130390634509723722094546170153166960841736132544955096355819701382993537889192818191302517846071418860795461821090918258358196313619279724470505082403986236860524434834897888040326018424819577471688941323635195940415675326151113718261662928288881119017782322047189743254633193481133864458623080764212782056584133304738454780944769311274414409830613353016711635164572252308430567099844373244481204665768581301385553245688873463478419463708312156916112792683394029958753249597439153699726907909322552996602855755166811792394717542234240997354608874224078462434156131713104361427999445200498854954937059732161926599008894756308413011494350975155136597845995484615046510046491746452477609914327134571809913543806192056066885827916090552701769187819263972554472688542127731655245139097920231368260496140246115431443069824964192012941842190656154320530299699336153184160705939137776966950199434981418943406035980929408959271120188233312622663626927260548017787467174972682652248311715292165784018286840918820188643427905569234070825515805668508556901510420591666620484394121719697467278356809243279338693331987170126604995682030996901244191171919302002312651159862462132906354592434165005245364443795453069444726725170932609367839623930214006726434337608332629642122024699798362053876206965345118889448237495310235014664009888671622809529983787225168840744639414857313042496108865053059694836192652207414317065055096765440364756589512433110892692293831335779775506546071742430361668190522367039318139649354827690720107395899793978872986265110372407775844702907447442018884083027409733087370929082821180710330678769915756513206589304717021351146636659857368888631682667455185777282108340002443739316953329394723769209284315088524959090008356007284756277227513692697049218158914775755495257895787217334058646642990809790426563157044884600974234815717746924127945453646280112937965462407629779705983042110996124716094901280073002042443554924525931463436818312400811312106059921081333513834883841795052653749472199915303080024953401512046850112772222944985346752668283070628630909926237535662608570155910655990153168530939787213225606313126176847970209008266143710682472807177920485802813609361180699497003514232561461528043307360914600770512473820226136170689678671331628167763771060394511725285236003514386327427557778719994837882255362258855713709627416005527957650852609089385501003019226487432003998885150264656994526086013329146986306426745799022294990461248008888843632239943982278877170066462040823660626447493369582342452563210934116025980102624391411850802253982178793586798892315485574662468248213775105609605452125868094614863085498480689475063137750594435088245317677926345055217223759169294525666978276802253016489941232995650828892246026220223869076263301268552646697890702105050652272125709532083450667319292564153962314155531478184713181189840998530439708006748466750780081762103364846159177050341040397513137737858255193532720371119832207547607436335387281910267016043822819442153130562300908146734276003103895218325181873641722366399234391652010461592586609235359858874473618951463369703436690869334104165415396171314873574275378904833845926387094395069260404873025337608068064447286852182075315434339865243013997323923993981448468653538048215793776529991321407557308020865163662020279219998460379904870703215921437453354882930411146239314398288186931139013917962140117338732478589531472611204795730365273365001541812056990012484606501365190982527850457437481607211152697827129828999360848633447817727823937263227876005138255987220153097934846967224485260739200013355415467933502797308142270505754998856557656077948475433660546872953807101009483741879485738653020898629257014014870410232218573725274924585639282361878431186479746256536873088568556498012093805115090944163835106209380977201905391812445655652047486453953265470297191876693851224776871655724657056963984029213708354866098264395362648351067531209465170426409105963408323261544876988367605117082289136697584487065834831512556203238298123868528177772702377566752437824900133329434509583424700810067501363640886941285484777786626863526723789833430955135568921023087876806855990892112772470431067258204369870764068087263073699744985312464416957923279887596440641473938630561573854603072218568106479697068987032999248572389048817265642881191805509066073167913441495134365884777908959374196615989157757936215365953738990369120243985306746759844402190732239367873256306131079955388794098793599501385480675229892661638886401604679996739291057872025408287551689827772524265879145621479855078567256667856313788875188663693512520932518673591081783711448658213930920487168505904794282308215552365970994765368406886084940555017034439099213653818155617597416432739510591474068703382925159831080353792005513892674308407387369993987435484289858720812463192353131774868664742013168044023882350310777628477374977418197295760383505500857558085067952221579856871600407105154688804322097053945691887798098658605186048368679407631267115531866392915846993711000304294842144844199105090718532832644009844432938444192603081771300009606247429038635647214664516106929406186292977039287380822224613753175485491841412442902244754732392051875555559761478418291581596735232317353322475063444485916144354138670643588778918889944500394940653379672745982105449137473176118249935101849669634406899201660407888640985114205590956785074805526971064049611728901491395277430802340357465705913289631051806819351049405895176894806127657371178327056937392489818027688842633453981331545541517089315344595942142972957643640364371930309176299078110869116678102950172739734495600783993189751420382020053037333347798562911543919396835958848021805294136835139401118414612795580803293324495635813117939621652573947779400003188746086477312302765847413937435451686656958797525374844437715258061737408905527461744212360180904178584234995759187436130986794603662952426141605973728218789397300815434936589933968523915219131659616768936165176057371035028452274994948663503669617111746436449503958975609340587532700987997532831678984988016114095045356721310576889353271317341591309464572301494719842133654881890211417971500499862975881474097187178756764562384359015254814062269524556848203272754005285376612892525958909888096993406720475986917181417611092813225209166706745703158189685436158093130569455089334978175112764795616119899499693770758408349747338389831383480045087813339152319267529057164180617109347539048344760228189206548371623921255664821997200049977791498718623779787439952964393945231390899913567898014595646298762910830582273340467053726862537829346279267663648073587425921147548761097235126141117253875897785315761793853903097665419137073381735228292638246302122666279240340603151751539711236473251756469490811322755774462538970065344422954661967812749352627053872262371562161734250385627437865538878590618461526322973117730842015681956382828683706674255662407551792263718284637312777239204332834668529331993379758732724384375180943277924138387252870779784011618352066010253733074121732756158768993901385499994848232463380895660233944500969572592502134096590873504619735607677718188585034848606350818834515273640447373020611628748529777746270021906376766144254792298146260782284599209677382440910615233887600929364531569565368363961302336606323846100491513918348952867814066335924763881555874712030609211862176837763261395012643713822762871303079845142319036615613211750430005776091253825038250415985806342169600801004057675909811057061168573053111492460569534662989562759725738165272079443982756528285201539334251303683683716735827794098559043903966425204465462666763075936590897832067593615188818078084483541592682756671640562392688273094349248316539787804464443513887954417775648903666898034620068645062802539133917982974295824088593736955715419957647702422636896325178045326345912327624821662242749743693227442809277393685085648176454321357986018302733756370980871432072001261891546722847837939459426942797826641769303905166047877221507254006433743251885549234010544488914310685221905829893698185287547681016177913078120479503259270434829992375496742485840154341631087526251359242299223495923817177482269793098323564098337608713548603218491783643183022676972705429963767888514031680919341034220226650917659370203410521087446551309407600928459753364487586864963602364556100489337984027522365081810120518696761335747815071623422787811926576611683757787383959575144046889320269554753435082590585482116970908884451335413526138008762310885995218475626481037858520275675359569030781521631327014837934331539851606142229433563467471798768203473915646863135652941781994169822349163940746418823197730035167533536939217032150256985268616132578102635582928958081534681613036366806767886735914781663589810872125203656096646480144697918676128082744882973941273683658531378648463486414946310666249722409297484145733879139735339316370860333475876962252091405072564864781706130122542812227537487754426250971678306594006636502004422984148252448001196603064882089529162044718123039284847004198018935658756827685207109262550615644621985940621941051417347261423301220257176177604665405586672572304753522562467594056163049571807537062211241892120542015802600441384421370597312177886949172896347354196326985034767013183533581767150529503693062309031975790203595964483612929134211434807507910842564287219224718880365611700653247829829870495824818512342582071786025009235859793574984992849060591304813236795361819756977239769400408198233723193203493580930933876687847023966866525184659639035287413704146124080015168087676931613927582395763142053693130218708582994717164177837935427339645458858460129163107054055793133019191582880097413745161265074894781929028441795485313027993744999590587066474714163278447855132336268958126547126005338781473842525481744436638178909217536454010556923239913008084092472264511460798927248204933922483796057827643984441711296694898428161853975675854047815607935892126673366823367855301722339343347361767709823342658515964602921391875996554319694084850926734030136235577692788344185667618238816878111304571676896074552016938186870738256386195159449724833602948803631388506157479609270525190757346160118246585715780147809573113505660675590212101449370293922737116574311961528116209281970628342405659035453503977582843599913029930281180213361131981382602985860059642110955102545402691313664644692991944098730037709875829065366621557559166400404867447018712356562084942189375009076470758486333030735586883100191731532419554064149337072405755536614855501561688597319611779123372653716224591529302614219823248315747517248110780975743445863148322083981060263115943320177992662888028105054454245933500305969356142797956211422100167282301434480272116076241476870528805675029386271270095624290359606463724093780025766666951539959518249701543415277141384529137418991156038848416905169923405200918761185859659412895668266906028535826768860919559530911188200008487604590057739346633138993249754161601912455694753882156739275443371226740198953789902671200658024252413519860389442056046915256217714068223549377307322395766512838831939569308559921438625251098236982547608870076623839620232808183028408044859346959621153605132559110013331780173713861482882502280938972110216237368777009747370122854489552975933207949791021585089421307801360360191461459867234060017978445883404861208224180883217276761344781313947111681164558804232284511992180815639757745899279464382511226024311054681744958249024950337919746802242600994095125243754246717317686608585466395638443560564095777456966501385388260940511186431251902778428078395860467141736188297470007028534071412572984271389989122826573951128205746351415909531674229462431100082807545045264208450894421681680238097077471868523777800718819677429188339799723795464882261058897768042489054256950640769650414547020922909672704788252244174371861007462579854961081250484054223021440179740608895548553827409879862725806214224800785900306565330749311706671614076190880390464601979789296390694766662534393335192184909886108568102807778761911046372354425382190830406313819949949877903102245536885565801118019273063979713061339678887136696468038455392333480096419918525743995519157276454322352079334990617488465986266533704090981432989457503948215043602176579023636500165856221246669285768333436479174026831164918116037306281789880765528059149796782114817329562452287475711476893185503174132479687384844272654692381815315935313603109933751607137232106840616720777474175847219715137032318498841892395188378428727472485805367467519460146081280514840037747010320557523919149330235548665792971017472287557823768693654144214461381622926235603088453597882274047056638778529153514059073176761465931995746151608999069154026757457804071258071198454396987673699797511294613602972430627858929103058846211643122810952637060783062614783207558885825053534366501799726985135603820627765743828275152133664355057271181881978452906864760274369297249313240123350329548052382196362075026901002833288736192494088518484622564285957458197008556810260911784403371297154366098025868657422601586322492900224408812361333896838140636209176302211225737374685789533197085377759586206946301879360371058756215282434647143117142414364542477542222819685898042181193187663872751233063050922253109023930691097253621504601274077712970846791104254261707736570437873142728849987541167132554940025787737060039368786787666504503090262444418789518301158595929734093842164809959645046305574851917463074316110219337690486228603249293310128463341502346538510590445514552827199291171355850072826475576930878632696221025725500685594132780474553227984347726653823708491788148089401853885113809751995901374500044968449455666795619879039532819343267183268565567065358523582230589309678551361133390072909415682429468101358969279890707019347814695292712243284203547902548479714022528612012546511568292238301701625214074645974832103887162093169584611855252687225607473245272480945090811747224119205800001869874078481817796287525511418490906790005130107927492678302772578131117156632071716359080974380230180033809063820444892408734459019933317224368761838306699094297171493616220803286474933223748029404053092858661619582904856555189502722010630194979587108891423425578809047482217489918722294587605657355434128393385612504947355945084494779178265773313025858623562095840657486197069017128383350966557102213785327724764230525838915393359165949071812721845621352064550382870368775954006507883097305986025140729345670629443240509693543442897682423049012625068584171861846664260926791453366933662537062148096943257695267963669078369129773766523194129211426077590984590460565718414558643912022200206845824715704553344821827798872260672804306124299080941346116628628290197788146790278764299948365367109983142644661786306322580037210313637340584761888856711557235537417727321144836877951616177628298156654070253173956116051970054566351476287680885365940446970651543447235496303752387402649833726233050296020010071001120413673164764441825673587864883088417537665085444603132904353454366515937924893292798312946857477348402874660135096379575342884724892189782748197866019194968290225116187384339524922724544769323816707373837743537690018999655758364107675593397397044188149824780040048668482045210466527701823803641320511402925588149708883624187444662239645194005379816984045821027799681635369483012742851285732465605588285791239425711393042636696110069058963410689083128529814307188908418683115938014227270149049822882830556508805027017051039150594059254949325317817225416037399289886955908382286269048516785457554553675570707724017918978124314755615819752303009288428452060546786344077638526686422283954451256348603198033333003614959405608236521821411167543756723776172412783680798759516535471379653841397467767548283590019456377581108691687024851420247407003820659234639312394885825167375613761836138148269192928783372940964853624486521971429220828847872164255898497365711918583410481673239342593307282148376002478037914916428524851124260662075737745923892641288736905324072373962358548295023145671252952511346396575966179413064604528499602937028028751269979866547347098564958791194015300607695142435007872280766343286916315431949042486118926851662834533119000560247031303843355692762988741103707461325384455349395688417721577776284159261959137334763839420692667982306115010960594282551465063180222880151665264123904420065900911085689808489650474719682961400743308152811878824541116013690257488662716122135016303363722635841388615252182294988795739882566601851040734617941336935997904689937417177202233613908647944193053800169921447460116290692134326067024231260865298931211999738611561190957065467648312270880036721289648310646613737861344454461817101583819915568978354907939322446908029968930982372134117650123188632330345025376295800413430206165999592537697983449096838929382141953162106182468358948447294838114528977186355151183135219462210232413926989715493537967376312264113374600525013495531843854191390463096735690540516244452213719469668123042829838818517190257418574928691291850070684203647514355737251802297726539466177222015545301236528701606864468753405081680921625362352166334753750980736235659032847690986337093365623586693361537704626500430772299556448656182537813975188273564659173788303631654268529971636106375522861754415682560133737141206345669896657845935620915738315410890178027135704634424052814558289417304469177111500352936790652306437131395366298096363498050710203254674826214299229785377256975423369057584402714949599061668932290018797262710831724480065505917872146619426057362450542992318491985396291002396624497944886504591809770479263287121397948766449203859141638352712876911009432010455677737154615012743020609164615898237529992301049209536834821724433204191064995983530028427635800834312520984254540844228915969457489880930924579404176422001868626011730521455792386162434739612185540593258308006913873172199249331522672513188532234090888167616452534211763920440727498354966328515945329052417626694302564123767991621897860112636439002059117420955872820860206196550696238308288179047322081470772606880983474322855182223413202679233392344637943927091520068294752531583522751254398695529772476124435826802496292344079026161618648336461993761883365578755480309703259512910737181072051907341258642242414358995305446930037436665597451152655933189488916963812483458741354223726992745014761227049034031393162337765731748810279904000441659587299996639288375337722784250161506610335716973174211210748909876942159898019080136828123804650585722031363980278538101967949023231236435465116475823914908719172743880580342164918757901308540087362902956222961490001934868604215354494219892719523653217423475388204760622449258958763002385703008417047139235015217787758524672340279795007191710739161675825001048420424177840827687526980313034558311380875700608777235633231876671449609516594794800021661170129865943094380989104126666321876647899045576010323105621245296709130988119049437407317989655853617106854477841633204952970486274002250610156106636544104452509470087003422620366024474794713179431955522825771864117168389811213843856731817807487559955999774338000218182025524171566763196926588218594639690590815783126224855376666778229963151256185201649611599869790911053492352270864587639334697486293769404268196012099406547324807155013243659813095283823110879991481151537631781317651332158620288506111862636265803388400023007393370353441148305818455150235049834560699015822308014973075566595657464054691560112930422211646866113032663905576100469171213521834052869828586903388816710671453275968118663610154997529281273153373466410831450324077695573329505322657687843500767306224785536589992501858138757014293118249785136777147842642741738135663170447981222120792033195404106492889290034542807541671576896214676303863103297482432152969266393643933093866455821242134812881810639208339949797593745646461932408834012643550161838539545550373665978508630147957942423240536991240763615048769725282007830036804623981708279677851018617316269964424577328763975418370793085514865104943510606688343425856195455152213117523155353529645643167866152851133814792484175381742820439262373793209525713217137121209648863052746106487733692148223178970562998916340407604775555286219696841545856538162883166065457005170947946883750589146718920731745417153787250543714416532105887172338446340992270474685972591928208766021688001296983942077319931369500606844806056631516444872663583920147199150094078956187442238272725431431809091003858470964777613872410533411667100662484991176321000249559188212347240731676765365298878559186234978020543490824252656429000379628163388281154194777647898757845895538303332121999724098545996968742980207216016447962030905066955025930330027421491017575552341360796018721700442253555821915987037869812237627180315186731119599515099027168312159833559008637732552093229963375515429230930014492764792812829651907739734518888574621591785404902110039913867557964612303813366285017862585634208726177309523015154105590534910487998694814660661699238540180419607775220924640198500379604151593613444844182712581178746583641256227686506240804399815458514299964695759218831189065689216887886290817142593377899145048423998626503432443513753872177096148967575295367571545510999932131380810824590953145349692824500616455513348208439991042715170306041705196184321295257952431349939006732985083470008830732864680929253981227419677161921917122455617179869763162129798231180256242109623414475457123729782108452894834163822136978651325289678370471545500007553039400851686894400301462087983861022964491486344212808355919362635745971965174678402759821627072250662726059702009539570348117810161946388349006666920870799888290219711374547333583153437630816426946986795889102266734430247940564302420789222466911922015517481814987207247488514942431109551076402222469608862980303414512064913609590232396189955120212535983464882418498874297861974237463559021623980213924931463003365993025315245810705090394018936518822363749877942101823635602343459985141293598899110944778896513106966136435099499633883090044882134657129800007978564180199026358010506509704837942052395183387427267496433904004746629881781115934179259499969326229142665472667832139760325274717915646204874657978336837277842733074421076743078440076666798720052604351567071718997422214600280830998348622848917832159522252467153768091911593334012560139910810297705425860067409101741595483724607987316816658570244297327507959469000422612100204029562689931226698786241722477118791017630563732152499672948791144407557155801343575217212368266448430818196538870058124658310712385600261021371283641558708702963645826520576099279588081571178237674059686556168286209379009785963391589995968178875859818883799267885342823936841013540192850134255198809955840728768510135691699694186891865747950453941663972426851114403066376214796473063908254654917462777645049368048219721554402459878168201713780973953333937929984968360082378418951080006519678475953540172430303830889240047706341580293957880033708371331619752808873470386008943957254895156196005085541493037184392174319487513641659617151643404230684682238615496834186774658954401677646565407920482083790935170777040365669147284528358280557450167102428037076446599208579048079769507029268032624522271821686766904021955636307421875438503626868482191047083388554301425244019944890361446796284383880953251210402600318504330521381020922696952605860117004102817112714440191647058830206492356247686868661231925327277337944245537560331277603596655719601099146021126625054289314559397584188468664806067830935372125906384908135537542677032672315828656781806543021965633811831070446640564902425433977652583370538016809076173060010231904192168385500065482238384698775638661685079654321032346108931769647359379074207604725438135813088892218794032975116815741463849083550539053798530591782894795737683758943073214684584009259926281772148272747839064876733259767985932797129342481989476367932406805221692115005863612003979423282961730539228805472763560838139811428284787851787112022953679446447431115859918163806914306473739453614423514892748011452155325931933942344314125451935790209083841410843723807918492855882577086514742839155675606487064746689156494198915661930770911675470829108681582068566264944321203278610295300235386428524098861548629662325819772704592582054416764316319426305618732873579777577735755250438111023289185746689004144438582829271025560355073747934294877150238475518505823348211247438740265977758866752683105633075981135786558115974713258774866181462821886098152447601056914793075202767519964179356986687511893556537832072334206999544747404096874596298045274507393262485808328293633927844748069190444241505909254105769468851713831865108829400494313872021232559961898010983645129577102040941920892437385048478148410587403168627280449376281879635279163003585304998959883025802057643560383502903983164482536450339085262004075199783263051685069645002065229678876159217504403658777362187506595612091322888981433894406824590709241916194643935705105213990009516757428165265812203262257071601728861281792297016092107890232505382726651667873337349237143970466858383610509269436897588276263766904744081758740762760889303105236213633980222271693284373749374304904811826144748171702098887520884871178695615969173084395849073985023086726266328560436429723582988046517492382387280678228176446379108618157161617798290836790566453374152252085413347040159426137191856155617360013261847392138077594083169274389148734997355166364054346871443826378912441494296732281964945393754103801310525165535237849751029875146778100855371837430200846534430929861673952157637885812705761632716998688998785162655066325948355186655369503987374122545319592675993445688778760855249973194517664225936173392911956051706687847053195160679008233972728095746344549223750869547284343506825793845090992756685230683126104538621701577363494003783683857259716262396352300660606717929379887528112726937525480155333770072432021382815379405518764264660643903150487580482344084614519272400603491036130737636153941422951143226737666950061596457817342151877850785637135155500508883600239613951702506665965075399735645686747081824946290122255781739339309712497894896053037701855997477714759744549781460322399700600536134389689063719204264506126825892733839223509828895540520891797767431779977755587968118369418376793624137480243681379546707339905494552276156372687815384153992364782710670792720469646030422291097152753252607037954134762293271712584365414362330013831199626786808620502108869613168183806691670147654172383879017241362144726675492605562175778274478669826918053516495135993992894851836973403227899915721204890170209377689616109460012166387209967991759848302417793840573939024901792617119832350698637123196737980455809312116359706750147051074950144513482654573037442577200798938672133313263288069352607933420822003002910608654325084523751377886077768093464017122395941298856863233440408627870090523767234641252397742778659674634337806849021155768175712611541782284409790472594869669452093271784978781600947187223452539287872656876112551334568554535977595720294127213197676034738436942175476019716856152580174690280416769036457703061327664059308459056804050911546889271318321212258377753446998826514444287901132402634540118339041474890791599658556637230946418802266663842092850572351796187314658449083243662897460498966860205944255303231241348717936576605469303944601393630435555722818166658781277231954250249636112966615855177598075766846745478834064737588594412620771589002787828581024010443885039617639239738475881044481881971287299130789010577280817734189163236218679524266208596597062112365393700348498168038308482458995970773047365289148088665952872013614190561616772076614636590760650752643042319342058852015152834143359168832599934676994994003496049890733190793016297979763254349568345108935972034674156721776618258997973361868680390067452069109964642490641443873427311029536433900862126089610967438010912378987420995479981451803427585798816880001139170073311337820059095870397513534229246639786171427227428658992796222621516085043394462253491159119107099218968269950865041235540706379751788956059063738306206930206452972666364371853131883820866224533262717074099685134726153140456359425963518305255329109801727105483413964654106185839355882530545858471494041758950996364871477678915312875189413304926554294167025908419824490480866119609199919687813074634512263677287452021811124893620846853456503938366646010643455952794781341400762977581384652267838647392756833333783526714455705986111452334552728631499793357786012158560695064656597047123443119016801548884119725907426465454696415519986734290858779862539669091319087791143305816704330935398162997318044684463778516135732296274568123266298262460404126881181482456444995503144867707539808804884631796211762889917111646521484537676319569465962984896194258441031786176824134801455547351930904874745696188326724438012915177394845747349343670278936375899601176859614201668377117059332848888762095589739978663242974619367439248532711168240485109476280289032196649231552392329055321983092666346464925336390439350332481176352581202696414736362869976659026354709646021031646127687356646965521495876894901056023437202337927873000384166684442328858072687543043827767834915394098426128042601963408947197359008579708638379329248921841947954930613385559321308411005102036586683506395137917805536192005529740974801199781621947193493184725873500416449162786399411933100238224278096283287843261362675555015710736131772632977095396484536869742095358807443494587976237218672520784746885927333524730862494351264892869323351768861779471418308603850550017177035049727260226639184490753924520314564008362621632335377937516654673755684362425614917764716932832451186011425041566802792390711498789760590508864470522385925919346404252348158875914585910532781355748389773709106677087207843086795842148833984877037975364943814751739353556154656117615210599943588802508884148329950153143142034458567024902703019874188199731283936514824057760484584204510925562976171459752426900509594437951828736737060832887545643829281883176044086700836164622205428385786562856914700298192562342337268752206741161386408843570671107204646497468631429164608958199889774561981723592069539095454530764055590683898519494084917234074820703815567201990992874944995697712078710604793212110794308597001561628660604789845023025385794353953468897240054174896234454994753555970369556406640305929068644299298597586726966568278133092503755175006048809586250712260354937321692601089516131029278117188208893325007296800169859178762137510501718798433137522920271414814700051087968007004065205474864617613492237356784148906955672882698299281061304811594997701841033693704604250647219896659127811555896809812843436729395833900047804793033190486703106268160316910438775487295228279592058754373416020582194276103041666773070198657984488476822799217795468939403356513691286764093091764175655492746116981274602546195989483971704404706600488372970673453930764067544048254100145612916527650951345956977258694674895499676605096554975156037879437978645023940772984954079412967729153695313169928943289805701526824251917673607103913795520693256299243084420915233330908357592317814078374306224293492362273337735219329100914756185967174227792228788361519670903985396360855717814499879840680151796393640520556967718832746800171972800554794860744004571781062393698272776686418344855980108752395360804853274470687869450281229358364204217260060157410903727412308838392786996648883614057714554225227383607920147760854827577838161473493602027980416472588185023691105931783392608534379555611445997577136448176467596944838873189581579632884334862191630748648689744371391975823168696835583097145033410628476480213203406666547814671672364371208123960399249007459283611524239514254995774501649218080140775555887399835851409435080180332471888417978955549210744328911565926372572343864460344553799469244797899389790224089796133879786834037863083996495738488019467602514216075761511769521846530716998992759492920665536993208281089311436181679688864310755853874481588328883243281426638648813877145279026572860685904522682799970730667951097678529822589305916725049511842565419388697232818104478024663769658591747191988521913921400467823171529808491599986700837351702848622635774107347717733572703284808068303584299017486715706826280428478092447607141631778954662794133638889087330644171013433893802980741286756749159611726527548100608188063011047914389113105601571439902077011794862759648842505326621286059613763769560225546408969663024299077019217678182010347400927392101129299206566233931138619390651543573351329473853014811522822094975403571022274064113085834167582285381599631874868176473700528279791122376482249397683850534295251550648040376960920158051349208904435669797424339965319844030080725932011533458833079239100257431670537744543939631362813436597474887436506633690205690072640642705382645345437699063913009789872471298395363349110267035130818655385504942460940085875244682145438258155086040448142581938898469137149902085102508837820799679903082589494852816463965044071022794037920111514352432639232580578292033856303152932912141928445726678701449609553473874716389452555663476253626471284326521075571055808833834625607117991639698317028823206855086848455424549765679069307890364992656569376429446564313437589187724143267750734230372561337082285047432094286607442950443306493637885250973426698591645913319031849301912280445027533097655184586437317536329426807287905759488477440050943212422191764450816291595825276567677307159443015160439149193307711129386937724380835996501781771246264472579876545030671385364913814028984457596229747240758070492114484285714589834074013012196954799641229704478078989525341951622897467408738634550165978977990508441554149536614205011628201156466151440896135303968629460470615675221753618285197961933718046465032688420548222051048153271370114772216365722827008824112703985136780177818002725290980612334248796680792064454184236771614532094029280480808585048210900476801670493245167870887724254619408270835598894247835896136466872132280854412999681762029669422726556511089565139322539036632740615194534100086159245912058348074155738527546509536009152151987105469083417541146778738764049722916354380690642303557466700598343026254389864132666032475220147831434439735747091335908963206501861678821151324150333773674111702852053714994805675662354722385783570876284595269730942600327644913513094681097680283230795077722700849401849108670701492096749774484483334097738271623173041942890147779224367423113086099517691411015283941066752291566916021851691129432457192538873773114640971863648390818167310464988244117031342786782320315182883959431306611953639424065192866203556499661641403793620523994019299368496369470960586613458665256048433727239101588299503955770048836968169764896249280326023581191730250671535202870909891506783619282548989715951427265150866816222152829691031948618896458029396743653336109383190258743603784066524881632945816963914287310209822502495193136043274340041737806817075306019448439572283783110957316212189014948374037619750869809333211672165934886022557565876275748167053131355722623832563390737338680025770153546896454584071070759546495644903397017855357664314847872296684797941840614212708797626235295750177430818447384918763836765490081871520275204609505411605728136023891736584755248735072167843862497100475665005482791307993393247638775242267502257702975928907526553818107753590704923181380096522716088353302325073648368889965291355444356585733353790518784613835972044743346991989588511763902056104956333045715398398361631467595451635040338295897685811784688686246633686149750918048792364066019304538767156723417499773935117460416840108223234293296757740003385486416043761587809015760623924996838561892366140622788472694357805320373299899295648321835432245078370757315980490407504163746996423977254357731240236107090558871578300430979700534356794510114524734531567715065529561628883452936682772616330253434598208365624004580446418432082338112635703772091744288323606725633584420886901828192967261429985265973750257042687552242229623543882107139897071097848223673005075289886257943982473878843217479983446397243818139995435552423511343074045042170992191094270254478771992888614542014743951347383010606614527448714381917214094033436127013061239049185775748607763444382236964388441968951862296750286684004460269578555793900645072469449255089646362261764989539407890853580840516405805429039949659441280937474818937197634619193316893733787604133491329013736697821981692589823710992011455856511194104606241919003704265367865389298977179330316243306689120786080358193253345724095194415320566508402412420976562014443696662700816080989710113884168557763761279618003199203944500065595592461504116597362361596036289515055758991125324180633471176425367117812086247548523323037244471982864954140000848457160240077181074558310560272705677488161831509838126530873960019748070322383324963000732889471275561398770088000671718261081533737121586511128789102976238744928877106849764805747690468931344693472035483223577798558376784949980919290151604433713690810420810329479304717613458533139925587603577183871645239607197509456500476865735147256066780362197162815104337940300818291802137891373835030956763412254113400695550914073986684135066991521575164957761529167471255685972134358181053535872586683723281124054800970602719535032789038820914265537478948126599294596148229747294345578076687098360624467158921797726723740013316049480559367914671934323153397789900142094694897974199414522814072013489809427160979109686005416387225671065110702469912402431916583639586524963598001746740228170108265520231237398403507195711767201698311027743350804965387642670034251795879514147894298648531302801957513741770669733938218501512363993174342805187202198798279844592465692597615414862229606410204630237894669017178540536389278072078841246757257222352165029486061298961150565499903123770241124777243666853033778248567445412192767838639486818406431190612000187219724525692594027801381676940162166837008973394970663252373167653003736988165262774641275094059852193989084927787630383684424537164360503572725091121816203404638786850615955911746707619329661190846498094875301070090234824371592692398187841135542676645259443970732334956412279594433862187244885857358076410853365763789534937578900927647713500078654207779212980944849805878589350549937803275436388320718251406967539407427157824833885146259380424457684521492028290100842755585496482187938256852825924982585527023303190847945620698290758200872239931172002182014017115553068215547807608882177535572818901344482583785519978638025955818445444543798468905566878349487060483026930655557929198745918518435130756863068560719156103199846376767223226106980381189632148150062658237548848352379610841227586090193061826525771321755638004612693319178651451241906269306874364572934670400877634537933771027216145120720225313069541835519757073078214065635885912616762395018219939043115395120935177553385383400898128498140562828740928797577819876756053168332472156250819456990200253249806937320526902393289632184044725395787046250560766356624774803995781867920427554410020069070817609869319904053145351244696509521441375277326629622087325310636764072294157361213794896230568256548457816538856894307533347973654208074630790767778045062531026616523874764561203888166926242506107873671306371391813521276398330709831619713268812712954954719850533807803939302929022336867777950608338275060119587373078489403006407432150372583876259991778259270177857209073012155315970809102542986502372062525607317966475710955693283077682871486530525199786666564575991138755249531050517653199423778905841832665343526548618569405938382191905791212453792837534315689434874465061756836686882348970057208430451155135129420409322703218316725819497974624564662386872214583242667553047264448041777324870720422912859589366589028096923428673698093157696577233507506492216596920219010842759743082867887837037350877379058750191823723087209156699573872868064250805842433894352225081980674858025773762351019554044707280366543005703451712761946325578278085883703981474945310266914915433784293958182756420219077866652863033356761781159692749657072247689994543258523280808048447450625346548980867515186818919381099638319295943314557322558533958926835877108528506630787100372702162932799927057766555523284330068414012591267941763568898665421923740003588936537123604866285628516228649843283950788589534530508362740776805959322890674781547229569105635605044626227855833484549099731526866974459990012861567843392004756492068580033394280835174395975430714187472169276069898121126853650424755536611097464038334957790615138905566113015699724538808091204548994988417787172431208347619490801006661762098921171439210034106988103297045680638255103933051528281805590540643556745818856511647692780648503493527610726217708553436628818709653793628716907967873414742592442861727038693811284317562219968449781491705690600165426249119011217219657258252004306711101015602469394505479776571717002608499937226882688409827816052922473552904243415165410496964944226121637703814495690781628084670421574787511305271567013099510737361178183152520283733543539989182845216565488564322811863868460794831946396343732759892972257999177390536004509946984361685219566136513782701006141434020043566767822997038640789535221573868793203192730325691438971885082658134539355757656716198848746382148982932223773874467491529437555943445571096124244255499124200898020026247039122705441947591254056679572241571200138893933947519623838600203089417567202240042304512099914373846116670894688730408322098752382294391000431554251711766897665235279657052181363291555964262974043502352005960444331991911200269781455317006128369582380592475349506980674355692661851035162059682850556948013916611837585358984529914152572002826956043725140558315464505457369815070146349736259967663083158852705872235085670209208489586418047651865325858264077719073262693279318241413429429993853042050342288263695513541309323950776340246950095888025247099076081150757829104703100438793010580815647547407814631032185306915748329677232915205846621843636447350793716701538561818963173798487575379906245750126052932335806520170233528630003272600134690623233099322331018677099342620192076339037703031801089696742353436762930724168972918959053089273089769721431415593156131834808063435359544542768993101155587359062374268113343269415559262568438650852568992605299945488674081077240579423957389821845628492960938566803711536458233579122819095794813989653661758322497607907702147451026824706993694746296403357087640966253706349740462414741964056820394906264579275620000322469788443150922046903535895250967133407073154825054323793383937389472051862411634822421806832183187223565485790977176161862254178211961820347255769954175334636565905957025717639809617652291183837078278923332902330629147400317264298449850957866476283788059914212982873740165247858297956745534529557518554766165321006412550022585196206415376605603227989087948498752469361700753792052819651181801614676767199922057390137805292839274431668224110516158996284701064386637956421379934872409077530735190809270697724882419717570312879148339328903805050547744892243471701689397119503857303843905443253308638779375941984439689475394273650697665205970813097837399803515888934476540704457414264826663625647003054974828571227198246678802571006341005376761166409413335277869940425160921409535633491540747117630363630107482452193382126265355370019470372578522671259607761614211945866479107169079520643611238409177908123460140805655906870792010563431430017305387210606836523854420369984859599154722117871588005268065213813350725906689559883535658173435491382247419789860444996766063083552491213718074097913767783298175826632400538211671176766613557909059540694738184913864150263974982041990623898851194808933172651927251661979960965485103287398966788199127405276333079500240669720685525267056575925450051527930078290279197311892988454589662761857743803256368146513956513720953548603625629176107388279399185216046442401856520202963234610610319973535868933986379112075591700967928659849524150823699893189067839127649191415989905890376424288096305154125727670143329140421303195117089465051490168060017695458271556764865115400862314201333633012951332450432623178986888386610797552187942943388729525160076245833934610473937035069865845384760382980801688627961989867358017535218230273958395270995359383452803381731760814676572076153354903752105075217726906182657269429482865944464055553651999954350808517489485549914827210223838846757399955019874074169214122404919115377045043725074205363686507084920791182305155772694489249206268918904422079558592506450875052929251225549760855754705375381229515596110948258407784033291067028380189207549980017468330430598514675461022752116646035542274120228047697593401756854485041249250757657987847178275355683540135913059886591912542417414642387865181986697899173672609400744549229755252551259476819737222837958777384058495942604762479173826554214328013829357424174869094327977676798876012848442156901839837020280759874828555854338260871631617658721188581877573116318249946855656350098088793944077385639436402285829964118035172605521539930213554739286376541258509650469237903907554242641455863752003115692184528306511711496680720798907485798495675204878458419345421277488399296942606183426114734350976348417473188212812026169189045778325642952338378364936619961964430824047970019503171907811418509509497296108711694097987125079454979885343090998314827978686849632416031823757659034481835597274042722773309935074004209445164627612336438762969661256813556976884603985078965512971794374739606391472470063383532693078707802351428093722046776870273053042199488014756067663484161461299635744734726852422240529130540436355129566624164729920332201330276086870398005880677917827655572674128239726894894805751474125073459491684018702046842817111237125274082209980890153609397561560533059252153292161592244127963642399793541212339521825130934644569466429726124825934802556139316205891176165383916474113532924674440481098165619835870668756998753430599598530089598510642203863931294243471922365014719049016576250209329705306221718844591545068745797910496646778419883698486247218659942368245168259343007020467587705501906915195521893834016500225093265112416866364678556909203073788131482795283795817699532357087049315437182861182454737069520461610238790058099928804551315851368026522371313254236545836046245501124136472903979276637580512271985097780903296291289557499040705998745091048014755136788929066112435785803176182341636296664347980456121625445673914273578960184889965890718072682467930546995499906747771475148038793245905757018193089044784689162247210373962335038662699585911071046684198322531097769848155524730555714052527328279558847578051107314010576442582389266380156980777317615667420807718108499728363971942301908041948898948270498963640145823389490666487002230118569474986495820150568904034236817869962082587358604745690875257195368386545032010091899417044928689813748703511497266251182659928642119820832861850484625625798757583393755674285914148546780709224838768165081352519899375334919491792234019303016705854310545939693369549658158727290315072082767244299744714409279464006040505514686435225423229371290773603613805916444106243955113561619625451555325159978423939841117892750774163913788809587803806672761122556572268559146910866355619882785620522351090146625692994919508928916062903340357738004304439186115259103601909892021075737425679921734803812851266495155144314533446571980364002543808300500515630825546409125537930442277260949716433979977164147933896732478770430653575433522190265305771217195969338536453964111255655657785346830677175979158007600348271027369153736181722361099130382596579479539999856539962081981377407983846909996792662443151156480335600590356042464979174180762790092016237583988724882954685594866834453825002771669119646891795355650684803923458472062213945563473408406575249511501762352175706267811456803517146552715046540062289496736679737868858141781153505841460232582509330566092504107669913534409937125192730930104300822802869368668299667307994148207800178738158583972503547220520446794736968956315196941208150699032012966876112322825599190910128218467135078649261264880012188539659362356024696226641153343467186719644689785633859510696948821230185551999120472735855407224305622415680815808962567326263176003129419561338638401224566994740185889556476780377050028454060846719047062703060544566073385677350011685740607589559329715196571000868907768197308681801706108886339744678831139276735103759585253168156622750639502977379896463658564996419184201640455310336410044007644946787679878719954982844476935972196756654795232200565356610743823636133691995806232171498354118549913805892573671316604062403623294052468563190194721587914323426798139778907532913479385158272735945558717230189169705666200706467275300851999855380023996320808646674415300559638182705868367555860568296046935301943413584232821995309587445253789008416641496819904274672077101822389696201783671126285956318082332902832950100255606215727611573769533667104360106102810081158298306727679799358954420445317453487408667369372545121837877762543285841437939000139185939749771318695249450666533873976346013122780843246564364998201876708124365929643093973432138912497730855655618754554280177805688479707898229662575249530036630049477489421169069493341416708708444251761544329939740370320315869046791073201838203159423787560562945458358028717567279663706131367341166984841498740372352603635863587846060219550272269977242701198262911850376442279267612598944140869730604162883809866304806192265360785756566456710851634833063502983851221993616226336823330758087290181095059495871037032440681167001885662255462215169822877097118995002009097329695873790140989060908573084517951776410937372393502282468134250524662948378712354249428323965138147815124620616775235245868545744968119529133853334581012815063452668029135449447496528727766225627176496159741943099531742983880020971231324234837425009194674236172040937321988499039969500563999464183658757191390271924831646168888643277505513954571821694124448436554695230713083933663666594535134738206421797284409477679862670327346006613878659992917260241499442108508861421132443810291420814031015674698119069735992045173773219571591304298753191183552191150019287269681338752655990442845507295985427852834116854987044728340052921929693823318531139441968407642606573979446574887217350123588013214225525764529624660457415958851755640806623980964240184571719673804091703545565750712708022255281135169552668189857675629050035018310605237999929897387851300886340643572400493857247717646840146111407294809087939009984627426293416030796943682186340577746640196822129195399710301751572800816783122283637126465960981499010211777805840466015206125928298085521621342815634437107861958401135725931176667367573782329856096558216329379897771165432209940336660436604559841735469601499083399884215801930117186136042678098413202082064342191265586261042410493228155830422035747724184159605626577775319222173790847783944207359891730439688611945102810529567849426098199384838898251052222490520494858346615455963116845912269899995055220215743862823395308531806918622580424510340902034259094485369565513800771329940499109228110476289536700242301715817672108613103455422939503226077646388427819484759294414539846621427178342496485594014170263464434357168516881810970124515117634739279311271742375112867309349290246810438202778070149836847696558844033359168017950557009873777909337960748500895255639505529533604964313615275564211423506141070739137943553514447883175612015050000686566997887387736612036607509668944350608871571904306791986530335333128990509367603025560657026348837455743330301812329852643566170241531682245015853849095702463133816414638180935767503894302957824209531387164177850412611698078556855540892094440817438777323780389912019970931545652272854833706437577344422600610729226667502284352225410851422579359199438284564827528352290378827245000872454073415893466745480939286306195843888812146749606619435054624439031900997831183492557913279493429970548277897918435065537654606662907375602201718953779420465044253717203983814054033236731086632383155696928646664743574111558278574431931200436541564272490682933012827529358873636692986784097899490431407555435015968353614719064804173144133541402553294295779531359481070092630530080617819495740187467096300558714334134466363525583305965839491807361304603414379105450792944842269480306683087092594860763201540647420116660470799651669381534942416339669888746521309555163485639797476060054057031812818100332060430815816751926098815167850821610168753201936999704352680014631077273490332980062860453262895325408886757332076924624426741559257307022257821138092848878706596548759933338525809204483531878105573824683625503239572996956565665903024509064732570594938337610622014357147214312873570245064566845499377560552009398977653571281179389296055096643831404283234015810712673361232055514617171843952313700504687871512133406990278150314317277971353093285530140385775326434307852726815591637806189356226307208296589877207297507185370944321232491001865309378187534742198473724513507224144730652524059930249592247508772052502065689806699635610439722813769206901526631262240102637427441815053580347635611300349240333888696813070661304545208468849106268606810010121870078164815814207153599645806603413188818258873817380251251511296061849364461908007872889637637665353970573807244470430232338561561056511754119123875542707742927383533640927981963566179661648117488492312501782666460498099000170922055206121074748091889511958388070429463905815448816877910222468229321726050069127470527724980758802231781815112136199213178140547711150492715922786363423330545789212864559772036193063433219891152217364142068970247701595472895185180415069309935987912796125897625359379108581803551804537754734781231748603615770311311135311583366228736795013492536561751834399772413562579870451942516762869038221384072085397718048002862402289907653159398126845991359321736226583362668381257329423737895384272172491254449942681712829850483820175299843527264448108235053069664720511653232507334458915006391783354940486461369851268293165197285563201484822022175453638062332874127094348515958447989076992054214586132066507966726545795002814465520719426872184368716768617607231724408635056009072724965855207085305233267114417038796433148349933151077188582295215802067497071281636030831028632602089453827146433239844728595444667904895669478725306231081859356356166585903834171519966150528088483378039283863592145037577358382998541154754971102535781475053099523202992619621511322664972991924597695460680396365333845829488339946998484819271201307079459725345986618216460672852476257856536684018607045234180656921687427861718262986463271170768315028441071063665548441484325586948286118552707663314687409011943744419564472471887631880407852551717034105154126626657209458064380237015145504591467901944164802979349504640473060088353128915594335341498564390411876680832268245840335113810712699240045354103014624309924287373196701996407038352677809640916964227661693512607567580696589256653523881948873801989664261183758603120874370840896588165866553356065316871324601036935403339202663705410282667216511873355649389268053050308534250459306946222673128505138168891638388463715110532010865240041982165368295457483467005718000606191628281564336106906867911512327240482216448735574987694796405141248217354428608653281630759266922195587183666602945599966861318700884792278283360637319791834864764866162171735796308371200451679916213434347933904657938729979015234382271062867675101768311915278662961631944965427027172822728055495690444292789973760080982007719389284966783299441427128020563275037848775161728582924699333174477476424532757707101692016242254582499679987997422555293404076251095369394305515720635112294828906700892450710953992226869500162036330745061387596655618867971362076430720781957547005715774776747957105509928951559411541286908963740782503585811199928392501067537692293088235721415779096848783985706419070348762185383784021182455035959679055538139867456776916692148554763143299680096269636778715920297507263989542518704058413705804637567289485855184691003129234331405489942730801065323598767180608473963206676499854228929928549537160121382282845727052434153859411352329565168133685609058960118632091719663120842296036175827834383257919482828869667129384760244468975153445043205228874925590285083786262420089202356746614003460228339733270104854508266945894036342873749392072255050664436639274957036755393264870058801150476141581349864821329333937881353685205322232918277525479209961285443507025979887732130236017883030076441823280523855946071033384969750120863345757960019828607931608602349615310554828118563743599128395524016085435520906246706682918445676369878061021992689816396386754993763524658496688090289908321073663838324045694262692522199118917359054163962614498906144557004554889873031832592858346193726371795117813798798349942639398360671919040508789201970089883227451094490891742932480845169203261643894164475149511883816583597633793449956614890938588528191513889070484973629447494897513711695090411862256650400649427577858960071793112266050997089035863184231326848660149894107020433939133067068610457509291988328027015668837913660383382249735049587384927858812825104142955033174395465093675393459754252296610971529557534118968189867023652521417369166683586855992958445272989655226837796421514087290605065732964055831437749683816635597722484745630969828542269509266329739529943120277358221946816423172399871623987232161606141261172758148790586331342354333006179248002400675602416423133141805056185082939132223345834928208290912172725816570994721784256925149957061932007715576695290798510787490780198866692873431261545881340935783307855573089163231404011751593046747819451090045778782648973405336968575565664207562917283737522184816630575917477470256828109255934480121596503664651002122460123583498980794614933350355919135282630651400801388671533664166726207685315692432100590000928056860630105624398683352045811393854656689020338842352046616390397027308007756368393815221188245120564941420059347266105734624836161098780659668354680388431901238096397578371444271062736648721310558238432545989248732419512126663741931237218681440956954989774255802975074672945476736691391060337497103499349227571968301505680288805415881664298894414064285637923766264817360759158641868273435687950733110607619975333719304993254293898801552804547802627891149829539366413548630005002488197879156292847805972887885964966697493210745718340077709099870430606795589832631535064981210100796261219992550467192893148639436388347510563791509283058895267366732369961284547349517423533963756181840925178969085313019745281178205078673024759274544382990096944665384168474607774134052998214291065271361691569061231508995759764565908468448492397157945814411725461780441002939088148962693844346599679255257490206046909742474359987666385228262224904477798095060547876301844550341119905493001691732605811223895044331645606956894218053292835248693965546855776640021001252071386964547900200840507055711653852281244375547790039958446205838484210621113117005039688776671586880007946326086802083870330203438998049819157383749008523935429501786022128823206128281026319464076793069613247829363253375120704974632726548557858455004044526253564902463819902030150794646617455923491681432938403532093813108341407678807000334712126880816541960101656653255078043880043494599438491358540427186562226430394495277940923348754923678210833001288274011290514495538811670172961260395574203572890615712710068720793325523044515839719379710449522163792371654901450911843922634208346702174722670173532588096762344444142246644725890964422121982401055608902010309241520532366588311912064281330732780306981385790125526044326269269250682715825452765220967614371912276640546411291398789169692865851866386826998195829535562616714488074617880437884015628231788221161024699982778857270953922129857754390313407881998292220659918386358820276591694001989369478327849312931444020309586064833816616512780489690642801190372417093255716169261672143387942198878720388155310336856236584418801896059048766268735685315181829089680310482724443976778009940825244886083506375156658414754684217008959437697592602496459930043679304857480731533970197365691078437335245573383574545780152641983575583543305325167065876674970573053293342331777224875069103636877702950331434314460695195516238515570949630739280113261517641168068546965333045195256738783229286967278324586330987329104124821338373374369836407359580715821820895560785102387291535676377885023112966907771889687067345019486993529536592147213048540690256790037429341467301228413372384947780526966455954078656331860751989630893584764630786949095817368107532979070502314436669009050894171027905856868745239626896260776274954055592387018696082491020781741300002051888404354678116220219058840878161070867007136506002653135410067880500407802711298115072380114303575325341486298710280351618849611582995871663749610711615307300732161227530263592657364925652672358201107937086334136528486642704064906886003855529530573757164172965720173046562907193793826913053508845951511338265505793632484908263818820194280454117202488360922655052391638842458720765174250973986793933647109768917352549789691030583099602538398219737907401146550453299486337246803965492060133637929982491071423929125728980497739123036642670516475436263805453190583776190787198414213160697399097244884976673750154022159606397974109362330849760762949331890143557637954009260232562378222832785969150301336506350145609126738951583992925464074272567591883486866931859865816797066087299220614996511324831566406115156026704249338337610938242248368473163943593174515369679432852216176771573697357248595537720041501827321085598809321198874184364084541061042094758381701121873700829598943332531562289764804743030027829452537096933768860592196851179505386336261984162251384041328124744341104837004295149118051680562342550441302011115495945108496250680674126010422618495935043436171334626503005094567152040198366264203352085189125337270558568357796595713712119995766319857304623509371312909056686806933503655687754213253579556663606050026457739617778766303186630121158182000953430575351757415346915150898017909866340504983259638353200004607160560203829287283399418395945625793099187831987781714819892336163045919378417974026988161502090634570649621094874888520389300796653809015472516000694922454694149947999872734796093702972297901618970977592704600826861759997471371082582594430791049560843745243155893834672985252779635075968482092687930492877364421720373961637588382054460575454606057472750408494377330543426394531516338819483476033615641813050680262298595812813688826394777992424113510077117481663115425468015235910180062827925780667018634499150077228771884968588753268937132335424618165383874366768712043465824552871634748245211580545906090074885468538372107883329807207538605273220756170834186568971325312152252703906142751061803469157908520112624298306806687775855138764119551011153330390279969099571901554160112891551961089208618031474527815889475508940489447108430074577450724850025437528632034391904762354363554626709500198970773508710045423937262592911600562253025380710660539894926275905423161253514586294588174576776875595198434559209494335954097307428337925382342197870918281576047082887389433140415010277283345032879159183590495760311790873616675919443785349169462185714858164921610520663083086332792733637460422597747053244059231533919053767227525347646697368959930304668010587955758397152506166707785636895371235888159600444778765641241985555629040041154295920965862766644769076207395252107756816574573976643091004098331554302962067386793789435933569820538967382121172780564376432444451558189431015924842180904947760887071864828300819639709192342886791213807455603837559782125352270652827345346367062630376312811751524920477115716161304765449917456073224885919574032920010421427160735957000316443981640891759798593615530311040679870532702877541047036947621961544852007456694619457933349172806700514300310970800920585395013839540527977710473695487132843504195666704137087782250259953157726011411480198762120868565307533734337295513218073659273579306999978179312344396080239320834325590753204232148666350436709942241395549726960035316785787256794458090892063985684847739539725960146958175383440774800775477202821128036032288481598455668105568433024516534777581985148644534840256720565553993047617087820368889157793222603122073369881864197257977298783055078576207116764660285599964653087686945629593301752063382298929410801161467575059721663444866370052211448560306839030183145947927643177013533390818863387300597751160071988976211996688179504142414615066895098157881932999485277513305747506043030058686796648111872505948181941524260565792410291383261599909203125299792440731522890755700757259581754681981350890865928688864420222787126170369632568623307763004663090168761751690599812785909721467377758736425371649564173637950209836406075043482113321553543484933556205980253733945296731031202098318649028808199682155735453405133375721824685152961429552294833215492736116782978342633771545427719694073874473490872366657542890340713891922269139259848481688111381804017226293205039507891239806171795248806556898651084222480758177443232803215151945922674329307689211002852162222522399438432686300408387226619883653481148245919683193267205372818775296644997696954255277511567006128944350442852811423082028824714366712755593981826876038097857093735282850552392126736957257335244443874543740133942179668000605588227966824171778029439690685950272023263360829696988990469451766497236216406164132236935359809170467113127302642080444007344605439371841574233165938259899794597241563292705260003584081868438942763949059177748665847611018073017850642892607302059866005156059542194480740624616305238298666967839561124100781484098550517473284448420924923633406512879073437933594822864630016685951629910154561238821336761473367798317816448975279453979859941779019310530954660387584445002615360513769971188843181917299695734436069029719702341289287614123400507007836492323165036016451496178205559385161592679362703434261069000729915766221820352459282233778009278712887034960924571539183126624159150145002842358654499935275330109708435141110289602800119855130742920169148445943609244792073888649616297679518830176523006464799826612642140893830319611406117910621864561256720230311493373436799535709044504667676377374392991938000749850699884347734626742017165577566072699756678148670939282252344395073149736749064448698113481248320919370369800174936620228637745291864356095423778420908011640021127044729068814560685009434878024291568564460588649103711358438014287794618448885424853076711977693120390664594412444026382680606239669693632295109639847318091598728726211646444440673014646752040329105679286998181385967574571425425966955581490881925833857936968980811530143234772236760887966860495494542048812452621039888491612358184522509169131759076386015890908308960403220071073726737420884438036121976814636439037731894041150112585681481978067050533736948355704490510019527662021064408915194766298430802901609381254549193207632055026375690745666719832877813053169911591097651836117933039132963096711796729039321633560381165645923396454525695620442751578691846045890356958891151490716842190301027005359654773850780343963304566983281826565917049678271990620337818311299846897665141356511071013257192161089471953284157295139133978117306345801738296905114550344673242420211350177908868700953157041892895366903261850529551846899888167491380614946982753679378176867136750361573406810488350613065114912354736095270853675341080913134825407879690954507912152324934352387082924443915840501132242769696510290336064344853650067596020777220169376879986799015175022391867108249836792744053500188966710242445249615686921986554219108052490937647811324875051227869118783152449805035599160348572966798117915452806426111936073708834707154679321397697546982134251933041099722609990814443912681140426676615564201161574199727073914020543860272703278062851157044995778966526885170682236651331665613489858538065656489681901848307248560439410029456407234168791660292508145466741896298969413790919999180113400049741065551378621930095840417988929154390879912770585895761937162468513231827988343041313744795504246111282024740097470615591819092212254746376865418013074973053660925758849014460783533896308134682731797126553214492243058669213950064229777034249106679735254906228278415424304347874856073452824491886719387487117067120127016515850995229578691572865651985403255982539852891861513466392972879494300250428123172889447480946291818312716517666136826805957078122671668247689877790585561185900145952717561241429182686102478994969331717417201853063339359075759074155225378451244174712923132055257796766223022520026273948806656355057422466192311427541871706781603503707552380496998098640172346017426236309092285139666793453358883342784227028655229370766302562852450254200772904277334597234210529803775600239733591273410613244766065896064041424542112765091282817856562920964714376876919603036115227713474728778989367167979291072487401795618869691297748428922060009388419827333447896443685812990799350274782870669405236304845943877251159923025928225775814124957668167261480110729227499263069186660933163630170098050174366956550459461448338386971846583042380491643608935790706660963183659844083059903109514226433357024309214522779887147205425607553311239846577851355789978878111082273039471064682544480281917053685143004712283182641141973661728208301804248647755442020001699354128033740804503241688022343671785616749190113565219836591049556415530789290158079314835359701121944980365200935611064095853377550743887928678012287892385986269236793785524380918554390339317056032129601288049866798154626163352588022995332324331280453632798252271476136619177116819734638729937578090162920745007027990043215021105234337460309397240223163726849176685289270064806518574513615058506581992769865602757508514720640034788916950053367051098463342433261814671110455260137413880847269150286639018628879048694767123803741969999182041575693792396172506037435406080611289082248079797742787174018687134265281507774172996772877357941352524792312171887466850897606684994323512664211283670091351367259287558433805938422326232828194736040011008743573732382205029897481305506396931256057590097925711227351238831653277488227785899271106053754188184417830354433037117532379051733291214807930850554387669854032069064192830438731411133823531640397940644482832224587028198350033364216574251724978141993694844497060739198632139599563855157531661816095301595105402858988940242426056250038527798197319028124340289969799199755604419646420466028440734278820100545618207359074118740387197235351996868724685927298927578787784483144071741117758066835994389366896561526018705297179431592805263540831396689355343087265647258273017190099093902696568797218766951874189723840167798537619451726178092604734417207955925331671407443269492674031841693585754074144713387001992405258684316654089383608760715901354726989376522284536984847442482401203393982321793347208843377062801122746448833601370176622412668974058499936913815677618404544738314658441478025294142483197413347865642360364561742344701348186091127039792924628425698860554543212990875780646689896515167652167068927853861087990554209993474573711703954139389558094150164913960697899204497859460226178868691962544960807235637594311189323904120990836640718201069794277134174056403390304578653478192635774631373121095842252193953051239142812078133764382668230795912971635130915115155288065206350186073547912172330001243507177981650313234136127892629601657766936849905353893944076169150419227238636605945428505736977525259347307384734699603254081238123142612048953738104150263648935519734249030275468862457206686437494872953361476481951369477260300307213428858902634913578740689630823207487470259457792447053458936663682695357066740381327645859987981730801239042375828644415340457714952192866386439834936469294688964679768456551510789966404707047145876107080853276348107974556623147575303110801753644045998376440495777363776425188813515188758454034730728864248819013844838351369362531433377480054948319732760972267242309753651086415498274365777126497080942592903356447653997403164666380148577603918219869859265904136020058988859456188781688888086129315770380276973647972805893012358515356042788167596059846127173676010612587457060918891793318295535466915552282498748700794560846220055241969305959309135973231287335303968895003661216534101563127002847564345040541109795073364693254527635780674199739838440604889038979512811343093466311893207136154540001048595983063506110580176322281943827886146701367359216174248828945696047785847289552010483534531790256290440832940433338544259879559541619655481351911866243841616423696259939781345820665924583460851978778008273597254916896344876124264566415308605512294724870018790386162957117363286944053315292500625543586393909791309575636755369620434320758644107018537319595432914483711882813386809212619755369108068656590303982905142532045156935946301068950416146163250090147015633280002599659474075994471148187501887949046328877604591989731210627749138272869267972854604591018981620922508933459060190610099143141488384512421360491342220261664197560449506562149207017325944352915345714438546070123661105643086717208814783469609611961120476811535088637242046483380586648950325293925602844578355692908167717964403258012909157353359507723154011286828823509668437865222378311135482947623239000514115493172732373008071395151223033793927848200253263653002690719969824795795276322156939502604579239709809602000708391080127001057623666692442701456271763774026355414735347449877497595842962211006523730835946548224646622285825104784876430255839016889969672121897843946770851955712352566178673943544749107311583329979489869244626611415477993380930115026822787390248367985662626744506463767448686001603591525817732449413175321010685134265824883427875924338401669453821751357416578244335797330594135732037507323204990051364561042834846390322510572803524281775476924661698428383658727853453002681085884099376307307501178299857600868384770742272522956130060826281771169345186797468155931358459438717483593998011465053807455168282525287245031670371509363959361561054963991564217341206899912691705340778159479887794009497977816761897219133937795549411723408016574821403144139703476544103077795888736273840884530061056346606808983894416816484555017045104865501539252238366622421837880622251073221380083559930281049242170935026059728245942577813376433818990522392870322796759135498329341248515573769967424083722529828160778247858165786289998867181780464886286487745392212160057767482680881877970876682786532456589569395311649653461543397337669609975675296806533170206230795412169176479622780889378228470509082390225094946764717785843144026040743893542137912021341355932576809302426438188312959125100837913143006769773086578624142399178651018577191049911718711270788558996170566342063002029057839959507161648482250586451215927684447552719851460733507971502376384809472784474167813635825470121148099334567214794911231345563672415144792189882363642637689809581943206656484822527048513629011351956509504988149850016193241084998277256716397703270534318918953867615422700149336402903663863104594091461144737032709588143635695845949933245585643921224094168673475001086570182941768135247401615060231409213304829270096950613194757746512550782462276048995409708635163912175859826454407463890855214393328782397921912393555392983793953530281067745370667845120236243074940129849582323405706983521960470996665036117638027356196544716278118308356800352912142005158460168789540657707477859530335754240861362775126532226030721773571615791569498275850590520144481339498969690778382709386741923107148016991271233832141973443866930509461706967649413063260061514853771441327643247831083807822861992699504546187206044682071461748807968156821179257635949415526886506714456266428775259501077168174461247291174085538649628897575248357432686472029813664409951319706970516132881319267489336736786242304992229016882223823117330034643665137830166334626259445836090740242282153275944118645550878123869048752679345799678266322668445505831997970515926964959263890926549882297020618233589868620443069474123446807713664814835558155518494591175283699209867636536293205684938343707520727489140770927999635924828840788451887416291873724707617385435893726482345870622342529132821414340729472124963983858961738411986078344526564033998816573771631441452832705416761519607315074612007023277750036073495809227858897759953375009015491599205185865794305784383515337494091420326122097842466372119869000215716559040893760538833611075028117633091677226825958992116642602167941642137919243565548657724934086982494099839083201098824033563638243963612195505409362131568763562489329382570795863411060941267556340341639478471098792154874442332488364715073166373905687394359042145415411475485405926918915954697792212950260075295516274314309170579646761638684331066719503317158208566338733067298816510079772423272326287478548891737018092860062715449541611508774015618250364696240444048072999927164367584900919579888294008558486056771604455604945267765987494861001009688273146572745731587597654036283738702656814252883074318477633257313575274642152122086733705042968012138506234761928562896171995844590722212178057356061383243479570825170696218363582337554511425640556838777983416154296243542360513401320911853768244524177530047581071771906161986706406230804963951064053949479849057511695948903717121654385226418878498841385080028923757524868801815467348739353500198872615962006666093226184065497314211500817928118523220995087960746591800753028315696398230509574482733844724305527478806052076286259188255407739916982119201492101737146365923039031052433886521241813576923587437567904950185043577214473562187521822752140486506389595717793038211497488586262526758456025547317291442157557091654540013656981326553733282878817195274474473916117458502522458314797664014914181493231269825316128302017661165853332485922566443990197579469818458974011180732753498425277896153311235241796949957094877779620310607807018043585145340750617702486040170922749686982826547890530098538045493159720476070348045210330079591652341845095474476568557003735957532946807869563852972271181834898601663286649630063217226486639500350805641914810866974261242690212053615776339489651868808726213257426525461390501906442027958917412033381539282397381824282902406476475869128514499790382132747242762056462671135774145422797734958355681057722955106203012370163659634854465282242998865977731431763826210955505815618062013360001017866423385621843562815452827133320262953899085526090843193431993480523290078720473378006132413310660304983034595238326652266882483042787548503635237426948887592847555174291306997135230035429487515029411537020131641320605999782894156051733534830998536233052701834346273093688030038501100154559213386461120635697713797468032548728334592401825191187015645603154260711216673136082697106195478037347094415355074823975599615468664934705543843871217466195501054090081014992094847433572859835920621125401505025793946659568685995412827203767760859309303745921862141678859705343812424776227781627644222537585160312555082421939393874937211086159136781634617073510167450044140502756323956491701508316891779585273028152537224564368815192865115977658358271621888553332517769308194404598129379049641573411733661369581143900156257216590025070296574722329695328622298769516698622024344306403909994152467460352595688944969776730436177872372842417467204196520057683916243868974545922248486954621843232367895465302268277577389580747374146588434905949832438835365076785503690277860524399907866227626710383520596576957282197119208793845225969787088149373491646469950568564600999369097016808328106553578309010084339075344339961328879914688908739365919476495830949794985327904417914536176510433366650416376356830197073567368523684997884448858815011782874840652214593364004344978669557232576285055048052132964070768517846857571188247504004423306970163280332153136640578641939088286852115983900685090443988409451095819031600698565849280091450696085427924277326268501210650535841342490201284268654928997015335685566033051979223335589252932049104673666640936234369577544044615377640651976612476552079254454791778136337575436979292867609219786533021320618199253773799518850820807717498244841409759962452008903881773255247995805060317094999025412101433823348790774250946568460197514865177703823044152233522403638179187934989343432589200548369872369181438806424663888279806394517609340146072447020140575366755099081317001340958859049797522590561167648520768687419471908232992388128404565304402105587312045702683665527144345388256269140029121665762174096610368989103462044124116631523823711406087622393847699123655754124167454391140740026441714906976687622636270895528638572831763273029569917162916455768136482679151486049975914024857912755052770519169672706740838050871800413210051268319511342886380469631947315284549127492642748524025720400722525350001884694247863042406464855404294148169136316395349638251339251496843075446224840830380924388645350984466924668268134760009672456261792907113148209458530884510687451107291425018141833627877822508182794691300872384447100640679874344125153961828021825266145830902201991866228682819829813636455993269222385228169822606423058881069203871480770781606538085984960659648015743727989707960960152308916637121684414057084306793288398052957353051361435824191474270435706251415907180079571690114031245955493473554079874824528102745509999307359540248171254430965735109224609225154597660429854399817895282022140334911630754825685486431292096552739608305829148837125453583490859401399785881569630440058663522871305000618685664444211496867357107086623496156280308772251367511830099827895649593252870744907502775622185858300472513283421365959589361473126091983775145552398585086572624145228372117253145506775132860836702888097788320762226325616712245253577765832243248928305955491430436112537314115867140451211862057412239266653949190690457608238908837922913547250593014769152113962401430293460986138639916567543009568057656794509091823150847294663712659155808652811376247325997331940760200315354294714056026543531057180066625202964862891453622855549477555232215328685118748361339402183560072730326337516728430777917444444225485990857295786844687723712473967141401068314325015060989401676179058119547495033576578732280102458623739942811172759376586009670322029494009756628264247824759295519037306615089718623375611403610051617291095789360768866461973021115950620375894347464067429847048631299847727170783837182976689569834749461367102423135268006640508128926731570433302100774969299576158623850054846873708776861306319526248465962296062777229986121750008246126708372935772461110469160490780495496772901896795017899981838905509386997910735880774768906333609922315792704663653418928215346399052090368411339963931814654308672771764431278585107810327962008515988868900851577769938052016201091295006309057044358279295025042110644492556483896806922823657765346002648117523588707974398261488191817676462846091532118971553748479122010990927974421576877033703588354412691110658226943496795259912723035885735672810407651082853856963194489426518001763130665679538025122241604275673796213246147557405286983098306453435429200225677746271166322396075034867970232156212393580889169753766308780176820482331193329628250988378751178827275623710914900960619847455783214862206941279301867894952296054652944436728031806846546347629522629835174655849204299755206963139206518517153910627828830074715149614986237452122481775311917138579636294925165323346370896614352980844183548586732968593667780106159942297070158839290326877984323398891121138462016143699224744190569165650297863234883012946325576054594235398886652279796063281609437638883249275065359396564570434205298993710632273830184191011049810863852950096707759007628437138656527063639542883560822769350663932663952671883059548678311962976207556865986230704970057678538233652394286466566631972182321101401383103560512270786997806398136301265700925783653768150002960475316148194913099401590909080696190263483802044975352170476049879669074691570494276097372452826388434429769875032147058993447184115453450235531039098431179808902466104190382464545054077399179407948326233687435585352404404381509598230558404201082596458503796955031732362022507068758585248836039304823037210868452010496311854703093795152842859107464290064530202024007713326254262394745171150928581667858765825235129297731904957291342156333924102666191039296968826858827233858133476979408251209779923296273941286172195107012619117551470941467415282764354941402053609737720599157834751555743285345924146257019489653777437636791724595692980924644098469151054892783921109864490136328152666750516101065080828974181098407966347231004167608029435126904177069591919452287255783424365775179919039945007897009634546873070627158596391880931560147584083491527259561899043782718399118049618849377609203400479318421733766251965193999181397394112769601624269335561908400912379735553411868262010508469546724869395437891558694111845066359522454594294299802730093016427085978495983226862960771020467415581007919843195542857136347379656772310660783925821674880218876888603119029821395148908293574053025301831752678846810009298064181171875868207874839314914276366190444309570945907627452342436114911716627649960306651306919751282971597133663439708668915676906840019693924136774739706792432083616640666464554166626079029100365210711856859633379707395912363749016693899434457092919273632672963713642420929441919760814873772481977778517331804353356923522702473703807231927820805615853061596345454509354659440351684993619463971606016091402580968010537873716617089684262831948224433078259419788952463211726746258091529974002786286212965438014230185238879507264552275623905195570924498053946484845768475523210943945694601711610126173138298460319357754041808133738919523245041287176899543919692898655889595877523468925766164846792813068642923641767166054452479859893501236082591892313231244019951799435921558489933171641992216967426529551058791025671360199207999270185155784658939017511539034091384179144996670750010177131440819945649399531151755662038034127165373585221692680978895465007671312806407292437539515505404508314608145288047870413947309758646337826100884093837436656024943119814420774167445636514628220535530803393798784016767288897812667276887521215157510466140058360749297123439179538811985702296169725233967628423877744136586554093255230408688582831142515103715220858167308060042406503492440295604719368841324454987230782715822658553212353135062574783376205839196308017079721488265713359034049211638486654662493537268671836487010249245066373574811541600446872229979165310471248997680509479906940948313936954443846357972215826748636452465746872723143383411238046311422735037710218566937716640307318237955969952584250711493546429300385353696988124377897485039913369331241010697893539452052006663924457031281362224694919058018149049610946523463927998863003295327493961553166849682409363961652538682945703741477171688492943152197942547929503134914854429598507050341447607731590706136033392005865317071399320454442435397850178426540734317592350504312079410096527418507160320976495614574859022475897279763977707216929844851026670045406510381422726278693700403035818522803387238303332646423620218960300386335470988133212665447675155530792925310165216475512627134226463977123929413799765285007956446826842991431271069602019881315828467884891503817570100879635043758094567416756510236117414074400911134205672104086248426113723534810259151126021877392319249452066327101627454532790170314350367787441185044685380766310433444786472200712270734301570485771002344399910657442358699315805551389401794794132716744539113737512111290972094375509556082371907363967233980909387031547727132380243358111008776313465557102625039224656924147622654297740947389108102505125454309322713975272279600285620380243825082609275263632895215315497202875576434467494230433718053950768940877160492795134971891637715235843073179825433482844068330732491490429181680734770880552632066181477870668909896750893173171540057116463028828129983296375655262642419331384056416897615592249897686950997100274268778605318290444414741198235626425618808512010236223823079278735784422281509470099524735970050557111409271027991146828900103245943499167268691971319306773849043868243658958241196918264902292368776431421256454352428363324504111547409501555593997672528153631560014761775184317795530460898847546113185455316325808504929509161462596824619425035894684693961106231458969972021970596875755488283815395106083686242606925356313064649193015496467857607072731156663016802047304836995070278397464212276602970827023423283131240584836422163615477095875089732380269689488529804408627833994063340164366965611147713790034362713976704093385798254507086470778155597066678068110702884246907826013139313825374047386072275149241428632307564557490944465880610097854211803108296568379879121189631725417216046158212348108348055174442540745474004698956209034655942178251053288681718402267952093296602700150784962429083337833863165692815402507810034128000431500152680512340736490116781233033393467158036167407562726611735786925840045770132227625770742339453692172344254286977731658846984458612454170911854796521174721809829257736728667541616068798675752359382238770415100906881574146849502076053600813064299437121394419339088251594102469203225658163463136176387128038572028723798916421379761328369378188583575867635242663141101385126973931240346519353904085735018451982633750867582738846571258198390656853560535190312381805900917070836382523288408070799457591043414144218869276791031365347000181854265758383756188048233688175159012531144336404597290537264732941344385052962744707047905421190900724823166273891303927072741238625683656662296402598873835186859770373372794395933900061551246981580434978504407832568151650228807640190256600838972548626571658867845928590667298422361044138855370188428563410402825251563737600886407126619536480042806762610221869542153570156118150040910780050829914121561871326292066621572411372085458997383833443965991264565937733843935634965048990170634559058700575298585601545295903817651558739335472767868820404648912847591385319940802502468850394156866461278011687907310888911201171646456619788886778576595773620435756312071281918982383379974116119532700525797300079744137444195596184198812031684242794123963307534033934072956502667577899427704924275742832159804126097708944036108220251930485712581798706147613786426780141632628179341953786960462299403196971732962014067892588483519993666652986262032020393291274460993314798521903185502621370516053743152012386340604604302813492525506271318878965699694830411107740631955560839636288135376511509520956573710448415591473982385743432132095682218548442852948832446383322277544185286942329501422827065932590517488940671671119074688139862945900837828167661916422497149575209732304694203497428034614389536881274464691201954246041589250452292532643048113082322332019177727660038089149279198316797316669246794463768706767096367899146394269952986131649651938701697122358361610086777940403895304643672518034375622476964976388384646040912098905219839181726296100877118933661959750013511886771332295602826563133510717950891105758437622167779073974893712959683497993791204335315461958721983687561437931342033646069004429355986295656008088333955166115241396580708152483733530153961423382835338616685684495742735974866881982104890127166065567133820698517855225535028624237864952869009689352699727561075681716756846471984546535389236614013581466687315502056856318905019515535844766311268007202923764001973486654635846770288893793866572808850293666748831879019038105765039331452869394877888308518221556491852199145950106088123987011627828127113071081926991962844210689947919491496084516350193018294965083246639623230567227232255608037004244718229502444437353957773699036984379214241139265055549980408446345163115441355162239124851573581184029533096613336748224396883553911898593992546719827850501100235596682194045036392078986318241654489532215987730190382186537928097411383666823668084429681478040913291533773791210202329841007996348371637010777629291321198627456375459241925917651239154155825797268428200256390136770609341606261000000200534036300311556453822090719414285464082299031596681351429318477071379146492048308305538180773088021827657434487130225865456299642509548733173741067258008677907749543116243263068495566649000898522550823459422112399651706106457567877797505396934997321512523075534594929024752435599403698752935222663968421424147527976558358962151043193434158224469531676520805945039651784009372064573151578792171651440728721657078808201078169564871891415585749556777557575961783487868999470295475137642618127904523508538766340406983455289918616873412658701474858410424890207369771055958115141633157733785724419998314621492326691352099874987369574160947145068844212245568913346994089843194107092373427212297542296660264344973060398421128750434499872438998638914236615522162199321391551790305393400779236922295943832076238066648579244194875720221577175250702198469939354774191815800659880242935473389732524347689466393309427073963191517302342389402057829204861584145431690563012074798082490277359868442140114506292874014365537788636007058787701594042415970257987611511995925670962509761464627086431242299976531453395204435284866139990442452093313423573226609211447484132305977925319518045736968654202658246874794817086653388015485104779105506462448432734006523276620852306046053859052022798068533487555308283646454070221561581086163966820382509307834131537042905800155183404026652976165432564949516300519247690183238850562439680791507014143195180178528381214266270485642685033824971610117546350138343408961972525392174898706135705035027135159025898614138861789919002365497438089227667378645989688453123401205457470604632339074970758842059872758342817069515629596643737479497994744571468657426684692496974675807604780705620274039675037683834391347094163637744991233427740843301827589154484276823895202981153382858553355590470140540138287477132190664678527455787289608437980188089771008558107581237375119041396276408346552607253499508938835165183132669911492734372944857834597540146268895169859332672032271612423851895759115220442710300586665093581859913806695176196018507722151214603678832020108743301820758063512435595880079318902383526491325369170990494766565293337445339650874663978667302858669488853485015212676338246363970084772281249571596654820705502656579544338638996053084376386808156302308988847089019569908868606928847911878202389788161157614610320864254449950843489076914476578487058880926669677047658164565778099055562108476017078131152792553487641013279171982388451752593645978154957361307221990384148368326956329826856211382924279140827396174196424680672429407274050936810839266141352287837104707345229321329468050772233184240074860597925899746903060928637894981973805469195321410525165388019217742522646052636136121704377358823922657393880001520139028749987898796753142916514494711855499173242567806625512768270089315016015744924625718313658856323995666304703447482100422086696831144527802542486120464589155435753727624274730758332808106579162459364722437096458228134816984221181239042127609195759953994077504942938225300070270412456982772468570829741145420400933648858928931453562846888392633158464814282195397649105841760506211972289998226853737502508016586492795093595838858143302049363649497082375834421765099846119599435995878710534042395481577875458968902830870056338611655381682528898424772847416834043689182191863199008891186673637516660166708301365347807221883609737366884197555401189201174148704618925267713482099408972998491059137098815030124369328510629134279140857449328496260010165085821097676740465464537193289017428159000055607060482800437319963040504633108995723035473367107794215424703280859348072565910108937629639121841261717071409613523738810092262673555826578883285419233458420712383304388536190773841065418764792375375249228361230782010961064815496900719099955029956714059398407292649301360456808215430893625164519911946222026886468099533502512508151497594462304529151428438973201750556970632952278946182126673895035372330254947547976429770982795496677474544631337996832233078780987402042153450680990598695536975734483746045647144114877911420949805371827320683078313980267067281218335996960961250872514743378492485431178855409609991347087469737278180056082332241113904542759893280270233861288484998845798760768273941028750945553395349944042720438472331414932755921071317539809615725151910654941219196423718831269972277420098785419085091926558060976221105425699733571017515864404693810367274084659686976813311456241822611508009113134212499953013253554966588178488126932312639806217492076811196283292860751397005409873441340673054891656766417853672557938794335817588638135212649394256019962983469946875815820552279478648135687560489959552379986156185274304862548777563065194581211704031275472832059718512973388055362599637298143367008889506096952229744053205414041717974848082666732044424873008988073295126867994978781983519754007052766830665462614185727331789252923684758832097195480212618912408284432797862612260520419546629412963251545638210796421918376179101105590719654079703850612860430538223955178462652069153515120498534593965969708855864309493589978566768002369889896228320077494497987317444624353540317598200791744426650382700014309233062367562893872722439136435577987874706588579424790165234004019548014518349020515713150903793685304367780217230235981570412991544657007629341224310992768943609747726087319816257534730979769140952552695829594559609772291273944234584795503298108192089298021717958981495600510858094559941708788892158829041607216893904791074779655246638356196599318878165076502963493891732268497860966869816084120355059388990455993154500868669693315638309313414382088345417814636882909188723708017239466707176919119396118521135723122391303272860656672297298985829041896992108385762163243372971921727589048510872756156284990619000189543504197644217608894471067199169227892309009038191116535569856617040680483892398073852112915790460845277201955733381063800517571716147480546878948518417552081145623874576158547370281868171322700849824211298503286793802148732692621833691094657669704674061472555337784890428452458301948179596996803221354779732219601826175759377544285078545247587011407655420902570183814324120522734541587725087458749579530289483876226353274829339942213312718675390059104283128796123029496885331476282267990369982573307653124448811795729746947952589034750349026919754725202769088483468727978971603877524625723129970120964496314841065216707593016078763694016883182452384453870455956388075385139091381128214812563444182352520659474208912528906470500318185413868058092931542443989327444639681138344776866205120098317020670721779886306832234757785398577018878554855675261592336503674800901425189233500543985925431429733893652565763899807684963127655737917261339111985947630054868362109313803226575598451325581824790004892280199506866296585780056067154448259096947653179913400250347156067478696463251300520355149018271538866720729510417955097623612117467914046718042664215994654518370848722637631163168664500261126396129300028886190929742788235430424400806866433086774667655271618306621499486297056156900428321923088005293803377103300389776352498919420517201449794946938635213411906187955251475692252279214672140807532329367211921716467661624025088190454672940496126769022099963527042761792145682232479986610652449794780637571492481540296836904526444068536098110132845079782573937558941217080538834838586197255129904128321507907885740160265019985859307476530067923914610041930868169946988528350027371439321860554892398940883911839835450415807696324565868753570000491567242298820455124215642485173282220253286024203800743401965927071520931044248841745111424655252073626929444982109072634532465173580216677638443262484199819846347091314469798699877476619407080631990082822170297782464842439531613161666473462964304157922189186373915655329353502885470590161662269720160702363009639990623909567472912263241960506501876446561094048397294994413367696827521063605019770253206739324833115309585275975991249912628412426835986606349476631617669420311382976126813954276047678526575830753204551232286694333599411036430893625251617957992606241762263751893365236406398093095598140360073733682815774199479041140963296008534109402902548281262424982751303926818198972969989718317006840244729820367120229367429207549019802348499213206035761246493469735457909777057942303212721695863371505150962666532892076614685292803948165110580873298752824743023859587188607070342479075667787400059266988743095262964888740316957170567989896275822178615768432561746982227393678073551593271742230097690930795226626018015748352595689629982121889209099267326242221354805475046294505796744036288754406607763847855992200763739261116465603946021627706823401445778315577850895581563137840420230073123752780671192541170868659571285305156004974578303209540620353369599410273880892640726041051417575499326872398828763064522840755127556046960397974500392598503909719759116070992472790852585957357933719304979070663810077385557382236755418549289896018014942846018271764862692509477320219990171515906379769439115070993725656825335402151334993897368678018220237560290794920973916168054551990707604580441230287196031067092086344577725432254157099614625116330248391510061215914658698409655342193105833810529388856784882673082352621545955447579434198233143438101352114469933382868261823551701831172849154657646279998853703818121327743618497347237520531742705704801328277632779985573207634689871282434822016634865048599556336564586138108871129795137229197621964022404648038018894058982726987384934375415256995571097215639266741575500549402461968650416656156687646697580814819918650936358159560284818125663765216827732880702999331911414734786581912601343471939053151171994922383770281074219641642185813926426539916410339389046747679227119840891090006781573126477360560592825510724488263005374694105523475283088338462793741552848329210354995775844464120484187337914379363176557948189635791385107782762974355574501193521669119548396940102948249088189385836886188234471417227764157328478379303453528474008428095281438784593600612742632745547603418021854378081616014232712231238035963852457947699788386023378132819821132904998791252477318991870725406309737535122455729017726155151804753642180612041866523068385003330451052085924644421716136992463264059734375698994211065979973263653328495961651457212377441446860720017767405882413369941101234797697280685242232281323749246878289044950303743216773713955096524905830617562776914711691576711743659343743035267341144647390051383093284446072593977461388258118703906055372243391103097892963589672813281898251958389359194555607476690909822776192173677196647927096269381630695256501687084722535659655474915723172830900704972081897845582894261127496452963643949083972806802270353669929216222988792783025628547101181071246459359681950534875058802046607565418779824831942661760015870142844925166657732819967777839532050434750334518237270688931673923377675662789288152371547622777048278012678034374945593358749806346626155591407231799990326276426529182705815260579429029251597168693083448823106984725103765868463762837792319557165218230819002004894160079197861685683551144662459659493481554998126373159542407137451533888967660480894920384894699539484045997373310025839894539552130531782466425565124716938808930367748565338453612241150873096336139006793757103082907209159961009468046286371448771250860016694317994586654260222678093953669261837575177025706511240619894078517522946515381332680062857704500776410792316664944134909563341737255702901381451557002372068555808926139496546663380263947111533547753498241165453851652148029681672184232490115187486008798082654761263212974524067428252376368996589224426721943430817044526674412917254371614921983369952527592953267438742975447860604182713703581641698260512083791956150573817559456340894905450316664973890571804670600344830729092504771191733871170263970245676267557023046579011965685054604525781063131944689063093701669627133272239236531700640395011851842380439248260095656075284592196462592800815274418599967059885695059234315364862103019640440043000410676172477015397582807860841448651096439126005559777768922267281898615382550648892827507740900389618819585957813200149679790255880621537958133667724735550634921374272570883539952428185889768511663723366753521632491940412941775347329803569859645052936367637866067708060167327960795394099159015272059066483098393524235852002980621281077873755486744006079571878021945442584217997747785654347976308239668454258498028398565600715034248838725476534884001521412293626375526079370112758761161762902908377975962842145678646739639632078312417850184164427669508341840370425543098036116096921410159962787676300717485439993847310498707334475416938380859570227404497814048329511987400937849992943085971295415261547361436502539705281148664835305736939680866563120217593478213853103186082316939388761130002029127415601144434024906398058424565276325998036394768749114927169959274782202931046839363037315506142464184591934657771595832285780300013705232668539847245232451853191519808044483162327318980795474103558506996011358228774135513681869424826392192651734863937682927832055482104874159035297475686872610259137156163059304369771028240668534143780515883484443578805518935039163880701711670436398417912700947130822222370301015985769348243858891976585265581199056516963179433369016563406518524738187345760771082548588165903187596480938329488126109070295528537016005914048261092732988761349980406756878410861832304759545081751712654691751183535558827356267921943750588009361364135288986302802116326389130491660264425587431691698481918675805913863222326996873447883309085414377217741564722179036586759838627333478928871105099249347918910581254106570796355717770742142475260245480896922021078610857393304899077889205489717882827285774922971264781698099991172490223459051612849704188039095471835810015941734419737452938482491458887280386932118741147304119122872619114715845424101945955313523875079912402342308817818552056799626847460685589993510251800551160774185810007716830546105119542744871289850721945222797289151846399472961566345874200764105811111002269806261951801881022884164269595865697206158526744912776422095586150188233996143773686660659289356756271678997986495578326945984095608928359299228732433197423196883514153794558735425275360854068799451791568717623462483033929499667275388427684131975903839461217611970978114987730751121823609150880998771747323421130323900828797691708735452272958262508526052366429190596229937575421034719768623654636326749626627816630216516783223492869993796993956683141685861153028513194507684085632699278768571637240069972695039818735816521382883091608049582697140149010958141655705184776790515369426454631824993745476114299543916498885186913369876076862627391788330786307122803717847834172933837199626018518179625387221460590124836293022585801834150516450982967551988006813728648667379984674872626557374005855576775974235550294054849189933349125816940947541932373353107291567671552684169291559235844904176808105613763738528806871507016252878652607185692096069674089986471600545686173936125539482891370075308554189106057273518557709571431550039203953266991350892209573660944314378056273574392693801490470627009414940209308814009230816955615122133241199427104080355447645393670158888352141688582384619874212272390390755568276352852682139883022400085366393527547149403578798217298153796364221246677269933774777998027121297693844356720431765791738395552492601335475304817577541963817985886873657529691515510653527891122696277493864988567858782343939550360183514694079640301624636791665048172652647619065381550468546616977124280129012854824011658898820239462477290324493976641911520967007066723885116615779004600644983404199029735213855939342323561265842260826053561142837279245345587224784324703665476020255797963536605512545855520897592917336303138919523359134140219221272450855693558938006942244687677416915775140772304479777549519087928288418377015284082278351508693391302235858884338732773647994120275477688278806638914406861665201872637182070293925574014471899621113643411431309722449373384892584122954832615899954739805549703308426070369719683077842950071263199538795782310675521472651491214162909937511189383430701756914385768180004870237579998691954147262938619339483885000376461591866569493361954036829750662137766857211805255666999773606077111909817285492864034733071983077707246787717416603026758927202567979935359184597025627629366033342542440134853898871897954623829798898837900311768894367458578647013164558575779707820144561629983508740699765425104905892413790513147675354111620635375308136705492483983815834066335581634183108847873603185879601779362096305500303915095058904587905057630824614138120431574075559679417505278207784652275769406417089899832897466504565905364495029091098523023957412883489368279288837526893790517494825823965477588395313659053569834140396341285817136868873788543343896077369283802732730441282641552753863604087018748132855039480026058830770198729534370204521368678573112554408229884849251099665925810839516207797876854185642588852153539105012252566802807186958289639807015862462310382010830305163961235282584660845239450812599636834715170798951972099687476761729394167646164035062525152266657428308675199050613119442369345350320857384637881162719423429060230640134514149732614101266808660120231739551291168900537538276399790799473191800891433856490021975374042580003565555669362269890991103396449080124442436031263784932952106614712121835029362444954865061319244358613113421672064093118317324573528644840015653128549838256694951871969290545963340292440644867429877985045951399825837021195609498620290521501080075359908250866947525051770854592377752474027185261632656145804436541055254271038069289170157008245159161461405162504680224864017865082987124902966180869228553278047082474890303741886037497110592290638884541824748017697788798013421385152778533863540875431674457833528299760741316093545869064476960009106347108718613779110604293890141271885464939358503857181033142568041909540711991409697982035420948359829556403852700829133720447334641413992437700709551278892392965966940611215131143813761406559330251953319617773640030690049089367964001174253860366282044916368606004060853948069127513333932908197296450854426799693122808652778325011797199189363116569215335186873607131777610073522487033229870112695607824482104940327687242157755161043386230475126668886357027288999608064081865486413241159319686613196824301164080426123965042516375639670137354457518988855335324903193938299023931009010958706496490866449550026265801966795018496249013470981858817810722535375958738115634951742743065357234351425391055399989464967507445908250938181707113037753937725296949142472228646489910778159697054050385323043482204946761408311895614914480597188614053835629946014480442012491526920586681633719340869449210484230803706936869656176443526152622596970609358786412024417289317965859703701154321335891982619744853646587163307032315995023648730961936282860691983364193636816899104492011583695306800041688819868658908175971025523030504199150242717488625431511597716309871562190243314057047777850641543946249427877324991979025998091106592779850387485474655813353860183063229688392365879122135020321593642636080635224301169346146751253796828066411307294146074586017952500241510851975468673787495092456986211964781317831840891397779395053154852949520813566645477342279638999745023500807577052467830898769371539181784440319281388727795977023712007475397963160556225002946118942156449429092357158150509068783271238124094428884744649408856872138462733186371223027250530866069704594521982113443953193121254208920005076536837721462107004644005815824965214169865547743000708251748660668632061366842529618927282908887535024841532474461510695182201810463309622755273374372340926825260683473084995564749280072871541547547571183473634339685712218150357813346565128061131811396102357261128146562657428547107753330871345312860012966585082727722481103479605961656859565813139841074221149060797516289950282070192273493873168891376371634838517669992955332505998845733461763960755077273574683911146292621289371176227992618272650025352267386180526655294696295547508446164823886750281031463180955127493860547987859108479857262556976875604732697955099563373944426009418055186603697997833925022211944721706755023183568085414599742475026844185659975469074695669394162439718360123710611916984533468807423101339386041113332944467007604343727641676928842996274145222976250551044026757815533872825355043797848101266437723223733550587064845846832485165898601223570522297502355649540759734920406396214407626676412560229777827410733410908384313658304722508648919645736017848532320325728198173234711375367713254603812751866093653927281274404277750203429643329122336635161180750007911357569120972227537661130462490927226979377659820299656628833774501188181914796558720800906301301511556053010528607846647698788924168435491398367823945395697109366479494440619441837405194813273566842219903703764172744011168544335747742014403857038421108547274167198175634419075803199453388081477167440333078991430724438298210928889832579849220596965756459770511889767592876112384467559947616736124117993463032435174578628129799662937224066568528050424642794005020050954773133529160880726623500188777517354849926491674093870015489530435446976110985156093763575567115590854373714545348366457743239045894011124974174577932661851985151714383759180559288415286958124687132111018320320992147216575212004889465913211310218068709595776619141455040725450788901605758062969441502958153275373613559476040461910588361680272922986177030904859263934731872587002987395224713590074399214432298159172350201352197039743405702011314930996558033123272845490588309078063438049094218792597438514728948432082560128236104009381840713872386927279627696960588424606882962487780279154629176511861175592414521986212134720930427602971021779197260432487588500513058511263381630305330715259333324178099601797509525061707639776012394085560437406286812480109766599126667025408667904292712582820889217077671122070251361735528974153468707856965992542990465057400357936411485900519228344225952399667508010280270721601229855692034819450334521467258122468070789201629281682268907728625934266733712671315490163426588247067152655978470206542423076914043467755587677638353748099108950602301841087649750972247597569678068566740507572486782499726050666669851290495937029405789659312742500136012694761767595631143635312774907198177679809971042364337321440372887364056482667160541055527609461238885388940852237689032396732551027347731627308684738550791641737972068248018915516509391228190710852431436196504518120033366078491130878430264595785964533395761204389127042334657682566712989218321059858841420071190350260603088456338314855305424155829200289184223123324102106998224983845528211451938077466842918272879069391031646800256908824840251991310381094827643668511611540417818038982962026270000018043846855300825999219929962686355264855469785988554972534983499455332596447003973317255632334832397055642666404186078057916286075705216014155161017439681144114320846419566586775408412025439818067867967384517404460334019073762424388675255490653304427613546223719592759910961302373890303705023711725414904207938082287172091879630722133914937103389414952421808738140653050727275588949711658806845047632625126986666760997374229419033291806093853852439208293029220098441131177248476827284993301563889184009537974343635311252399576745191396311816990843644131154870105295703281423158440393183723635770942830535409258778530469868978612118187608746848098837499361784365493123458842733985771836559233792081570323594292811019176541881944761382684127630387851560879828114186856837186336334578257652916331469778506736585155923913383004079164761950076041246599294983781306605298709063823602111103863210625697776143871407786262752769370877847351666070447654641381443984644496763890466588421910009990170954495517773936926968575456370082115912580689562059692950533969919563165289418533726869862082496989617105529614941398709597551476026443069313397843038591756035330294624381202311513682307039904151651717076523058096685030881708053636967238187536917822487413853908466962378166913190126925795652885425424014672422919447645623291990441186372174361583812891487552433530079923245792382626585772301506370696682210956507810160428609992078731434666601584707866708420993591280155571944425223491203664681104576291185395490778246816460096686016706464179234679825628122221021049417884491096124355342670222798958542409752892561399393586794693570219936685063157036502391904208314861502072200036197983208414094500382088544981226352303042200636915386594271482213397937720123661243476700825799063228496881073344057543673248921794591877178267053753329347411548745883930752682453502059427609097580846453972358129382778357265839376271487949187952419473384681644246015645388154051918795441050257380232106069496797478789719585830039477029847822878001838354836506005713394593374126037592227139177906827909886337280422250576321913234351959532277880004293984956716774526039685806460667070704975491607567608584932998492411135984146522368149289419815685513233956766783801887261859181537573667775138396680124842711028031409148845283692107434026280876275779691159606317405501678141599252065320804819918641666937579530940269661188541245607637326679659301723734846542863933726085439912258490180209209344100113374840373700710715741365120613988834784421406016242669203063256426015624426027231456460697383751724024938502597757348453971631299941734981737171978931217484591735338861157099629666998249503497669753493060310246421877018122475859596863968562638841208589702219629401271790556689046726372829556237513939977966318658025212074298606142742920082019911963279502925776438752577139794471906516262077231907494992705505998731525066109707450971811858076187538536980889996214071578823581792787246080104316387932683750559424802686402569332157661128508029438275911458730587972844741356561695180810386597273701130329427102316134498256006399958136459937892010052666801815649176994387903811736795565546879068277938937210542438057880176205120585880807361336648927723122148934334812422900571818228132785425767241828025094136547511980714254405556553111937413164525275562182688677684712487442083254143982634835955994204489877814022896740586142384518339714739820241763540207683815589497504056327722365147486995349929696744073440290440578510390183686086057658380716128531128852982884087467305852772550619101218456766056231142348700113761304454620171744823424148828253239980823716338499048794630709909186903308752126050301715630288673079678350135454434832621539341804068289484897863867909078004546156518521629567496215211227998406144350864110750078971405044076000876709979027435163256858670854005444859532354583803411089045437109230171467381313893804718200443128850371867661592853414686569651721808086759278607416180170907241900596619712843382143863301468674144542427884900178984606946885376186994281258869505634183534185678676586193980186040329262208339211852412428164897283791202193309204570642596764237353808254830887448414686502314055372215487366030651338433223110745576302824209736330403139638708788140165294684810394513867468489091083711989988216962308528917695570423693286066953231503265886304509112104781953167788106853812635898742804363599161132116210160258011655761171618738165046191660501941707984263670538969645892790309793592525116376343144280537648422949415003337116821481895273143144197460415151212163378176328569976255852797092829699049828280654527318459438417363866773675047053627149769417377451211368042316876404372738538753646667628596786940709730567483549722660441650867206498085701089296269058223813325160326412828606200891681934769890751972005957673090826464074066013431574722461634895177035319330586181433359867143114663899981920466557337060852489271921613557073946949714020771373177032926701226176242172731874789256192615841220480238344459814217633221937362097744348285512288144504979306973928166422353404559093388885304123964335891179930750779314257485648097622797131275129948916235076687243725764121626910702911922292022592657721906362115059649552952687157796441534805508787972079494153856723874388208681810857052902548721129720591283659357212269218049658424963316043973926451295620579165267265993996329934587783062171123139787251523546215335354259448135079038822498188692507106538993540149270336755798704772822723424907197645707217286087732086362661111071968191106495987042854971061669521909361135718832559832514866211877970735668469415487123731204473929268558359968047782502516650930183385745276809019505071256738281926499530699218379357775975332896818296600974749883369341548839259239776915535339409564032189102447244511146965946791712545180954778283152308847120682396447957199867800617480951401699582319199722260102997107791173067881495604227975521485826254982317616405444151256972380178177826021150155533195710138254107576805166053714115993419732268343930140052938369031605650214749074386968215435267754225262143097637855860046748093419721045098294625600412250876156039167622981501216125479649991516352731778554110338029367961193358653698144459360710069478652715478501412096394722370154086235307322473905252538966163985813256976056567233412370560213964544168453327382561877614941939588838863070769532750732606085831031390934424003649784910716552706138754949377141569013393252658300730981336405965843906229058281631793176605706242600005961298957098495609903800842009766646336571993842593856663642446398560675759758254443474506326890882322626410115388697234958534963468047903665175829109680372261173820507775252003644455864743455488434504487875235471135130117661933623365214430864493345834368750578853371659298602535544489918445731052403768504509605286249770558803307458029117761749850830275964453620143656623765305383862904064801350776795401527759853295021075045160061337117506547584590869249426560588181296021209753456397856801157774241538973684007088196898045732293914051132354776232262642709845606110941217481429419963146667582599128484457246349473159411006844827976507191839705045693157028070720576589755680920702877034418197975597963828010546123473495995390045741513860839279975415875660631337283409130715996143810071981138477801719751561644625856515999990284437447807724297995118571044843329288883289093420513357388518066055593760103359025725956711467609593932533663518328824207170768072046963913614702364058979773148339251542423035470445119543933689538253799743690430103515599449705488174416124593769649778917077279328611177127873798288645347165918588440186735529858039381025837124303743651515843404463443110227267282045841803149583344278955973835519121212154637150717333440315097378845841070111560372130568996776891372820100250693752167266113840105882662716396949449860685800325935931228423290385939719487239514991469482406753901861737258827826349346740900856721964430988889165913829685142628329804403859146070483078468551652487953930519184201333235249080101598186057631925636561770847268302296262471908704842262723788629674623154750847867951805474138001042003987942233976521988794112313998280768578874307123269212877697020799072598042341161920146864345856944392162408051180668097008548966808098417402078946967411100386791514544236525402508934546226634771644138404044939919191178166664496048475855898472754953837532618908031482277461807528999980898240082825575678905608288798385384625070370510423849673058596171724523056041459572972403256717569375626982609148480810422826553297810593030675935505406227616092390472343842622761266294709574342654612703408732908495256285438760810474005283488085124013818998073417561969049424279822273642721777472843518469543125696660230735283282107390351328687489011509829548220343351821318578603630551349914095720908922650102880081897982225645045847413983698146730499321377451083907889905007940679499042910868616924185465440338928164520303034515786974891463147195886072539880350926580887994618021717541564978397405310797055514511842054109870083272525825668039547983472316881697288318910015480181164624676413144862066986582232667683341805802125028176759959540440337608365152525107742938628647568298798947732738403366616078864046978563006918439802270539897177260050649917869820530092357122625470069778623339833384174440509133962998317616729996811663860051432251108388787572581521123924881164160138519278265753858246849315139304039231226587193034508390319076987061440198145378085353374533601904842954494871015746850314915518955858885205703081907713606085562605093371711589611331873130969465773156577407214484883539946897982412238136546896274094696595074850321676286792319128757901935428619410742234851712655135816532209906170921405071522737751221147345587240933231109856608300468065680081673562376403942105392217958777435614162872762532113861068173880712984532448910984199831209485473595444451163770370772091685130285839789339015783996411932141404823883163445108342246810068207500541089224017770359993887839525289958082880421129687437527027175988557353513513971140789742929171733977745212318339243014568235737253607508705364855095879418276314205847817817430308860117646666884421461810650568280137822678265591053649179291181996775658716829142956825201186314152871358646387012307279363707945380377675026187110035732918889035124157461078400149972519294301312441522737248804219005227049377323182886371630415004277191990981913282349275933700349517323326699478196701735361324227829513914400169310652025886292510967669666571176804366092318699891221641624504816839899008166548250052238024982993869168828827787533227535498930841285586983937293024996302821539384787675550736438574501985985487088983456461520941141914312996404863656150124102313256550417288078020464991137861290956159684964703456883124470778754682115904665894756002979443120085849489044013922365593707079537624921518320728330323679452024221187371756323912527306625444131464647548243218340734607154140263564829074754712714195161605573101260164140897101695495832943399139966214919775426281124248386292107828591651418039488715061502909873937491141633536139842375862882877045867964406524145462636452249138058389688963145757543730667046071145910260000058367862431533701919886934415151233028937259193410157269548605935173039720278431574528397612302334002857130785668761626321655352362105629651983842691627380007317707113783493538344053182179609470864128615198885216122345899893800790883473028210820869066836372170704422009425436843792179628735173571311119865582494066413694766059749233103364370622482728607656692627549891463921654036844497863995851650084606579518800705857352806777933415272460525186996659174661514229514147588024086558517051366498794460752777692782321633891537719811603914245238365006936138232733926366153014872596895568484705441505203093648746443411890095305484953772421323225690206949686058295183390823981239345608475047188834193829806466477272918193676400666345125268197179058113832968872521510104586286567572307623534462292184265274253717965819295180677147334997221834951189889947714035927069398105681550578690955915500656966331428959553521397324163885232858480570605289201394075219261970518940181402361090347737902005953209767955371026092231930572593283857229752000741846418768299245552029680312491802171651732486688294712556936448202606077389486845017368976743922384088023617691057734077212708781927430985475821080528696556372792707033375238934187787224268772900421823386308882576756245185805262213485538865314766837486199570544202322748178654137131418776088967392918986679092629052530391820423885164772463677776558275758742046663630167969546581705022418098916993816733618705904380028067997769174075791936145445818879663639639548590356076248897603119117576561183100189295790779158647275196894887431648910347552782779882567621094608046942464270822561424123060467395806877738458591875937598028381906813079321632156011847370650734521456867027967181503933911859039674198588230829963044851705564265126862939620448083804817458457330626005828637248604406208429846218616870794027707915777003893546918394774554110006038444998058558345131378847942180887927633601520856412765535718090358477948541706576833473131468768135916339994622404329200219298484956725595529192192407390649869751754325782244724433112919283339508758348417336804504018380482502248978796698392232542459383874851748592398177935546883935449356639367712381416447016518685995550520361435653221214809997231144417540371950871888171864361914196031389380916669911043985559393307363813847590492816694418138962727419415151481791637425410374096783980191741180554876309201911278788407066022550258513057684463087127014903663063898099709311164767132026199975173919997734695339692156466857524488927394158354795805681546306205186860714594847791500539676445988187095665276214579324143534440517027470879155984378614300726438550156863861910319541544927616536996918802917917357807807265390597181717962243100798456840097997190418852592024448659856031093303129250177753743998977670355130612787635148053065912991681594110821070242230560929286682890932955803760914309735175324550481687547913558286359140870291264033242239233085416545906125968696643228602403665856784661462394563585710178146484152118198972983336831544965689261912620258606764797316458579833498143498068791773827256789275232314565017058083027185287270606215610879394493084576178282852250626056427287099896671173863739640755430157649978389540162841002283933706870319180518291436848061359489334286487836163234136282318420899770579361590237445465046281524831646469676914881998737690889326639210716880029054126649800180802144151942348307307580916713353720848076368059167879939415536477849919426911050889551763213479440365208152920628830608406775366372128429410705927531300803496528438057641086092986162391071441423762800196962486569262212424838848493453331979099812393495490085476521206172774508970826635639477664658121034035031006756387806370704255324526863420539563462974489188328234699104770329966498801314742648148042504952565571984525683655845844348938846529403291160003060363105999955192343021176273584999297919783597124879748065742085042113495761121230446415919897456410484444831577868086396275329551898879680194637944673049524472495453405671507113935789949949083979317286577422549430640383631008492476528995384732291749675485478239647429876985039898433447634771332020081524004041048280172658581791470229044373831060911142867220706718072699201613077124841011295839045755793074576052204086733732076906625385631765867911890368887658860128549039808134001580596687805748070348297095208520150391707474005776810469365218658744717083511519708318817404688756079524586613877942017175112769996025147162834061608080921145195206714836587128124414395805229949045676988112533257798846715939349850756041185359954962441874125194724895476712895346304966551442078346329785461515352719454530206300493642842988971606789008897330736809237575184274071337130879867290326954333112759508405353824135115380645977702004744065105191221837667704015223912961384806223027872153100897084623217106670176065311922404539124364647422683583252787565205103893719914089507448874634211978868594171562544975951449803977596305990851033092874033970730049381445884859186174853154467597234301131586799422450812555411054282239368278504404472654732892647449538873676093587845415162838801576890641802553705604019962324815576931015423250377119592168012611648499698193651669462535707420480981608684005398315948639889531236576910438984342781066593328325727548223614343521120811564827882082829223618191047390275651630333556673848324912964324613492032606045723159481988711129183237994757979576958291266560014336700001076536504532221078957715969891098201144182703139828221145932862343636137812309896933446932153305881774579969026462122615558929492374880550049873908745227547688553928113459191183674420557520856906850811724045260229686047631238174092345633991098821727646503165702671888467464877131128068715299794205747714930453048549286821176270600501671066209888150012595755650068703700953278694686677472829844959976351539527916788388455345336131071911350372943711249514619359944600904956957955301110966166909892755256645064041464822518795016538269817329542763641803566889137757768443122499390743994657308116306564072959002933532743625821822207261902100647917739922979345528019391601457313156347795793047103876025140958169536208930350585614812019074453677157184704929949906304128103232550027511556201211094992513857582216236889301262744054247840853470769516344870595474074281949985169846939359066355989389262165766804414831757528836789359070717750593157671827909033455369246030218165960496423078394879231871441728803119294780937880452709544096161164925579686271911760228953980765341492828345113312626117790215312462918815967210178157344787776279013311470101991357389230272578892370714283291626984057027029559863608665642174134805175624853948189683411803850025032735506120480128771928308795680414611388363660308413795966695016189220704196363510732868320985714296272203490085608184343225268809944975619009165654475038707434579755835029028877074517386924026043100377233339563274996186151483951871041460930949630451376388938061038543330286655962811829453862203158861882722504725115630366829693926714942032579426883508692758615164569463123305969608200713166833754740064885801131963821488809245760716637406195641943382443515358690373196912300561168545618262694302297260667905462863067881696422313419056625743428516010389558455141741301748090476486600697921394057713426841108667342724343965592453214513415994110714832534919188730489820093751811726313578366420636785075561347211684511967856112653998961999652594944170580356426202235852902159605300539487322641318124154910924284505717174529032525414986311666522400222268001908220726565729602053053224763920857959672238339549605439596303396371744111257668219126610185554115708926742162755246080191892910548204149304989900137303038565818709563578388365405600449389399125943489991392220650058917343231586092348194520667644320927863772708363532819353865815903211742652760328326506724774647063996725334140453462196924087430650657918775448890443551004765194198204410482738787168536153584474966958395010686899623518237851350487096815673730293202566555359249888502461978371667792216563156434805172285004516941295676995404814063217713312588090543063587073553623805733858094539208573397725674879560181429206913578639592213364901097768011797327595668239163336748846006082107373517804406373635400060468021124109781964999579811627629159704891254441115251004521301859003301889980024732210924331914250201189597696906821358674873997122312808952449365097170252812025652441982656181198112771644977461861453797323368638129561641555601405165416016454124664794666527489151134606612996157274009585361798731893448290888530624709932236531087002031050483935437820697132152208358094633259769703176326092577454035974208408908353276424666990593551952695202570744054194590540278010320455153940341880519793904002860864473681045035805993694473660154749042779728355024483909469777703841701020781679174707482970203119505475374147941640090225669238525839791642416539199769195496592598458036779326488757794960358202477157722823906775068296387220419999313268148040555320178221158052718966189220374693573688012623019047108082330388479742521997467847591727483593292476412486594231479780534881102889688128763850786140205130442490175942262034247099562846295446317334781576688648958790765401017642987964521739227091568808219104507525547484518670626400027588414259132783469165047672017000665022609636110822010622270628884702397535573888871129766298107754884642256905645229484481988769945341239647377602792186933281104672427101812379732443881438934625220986373721101666749027753862740777782743911144008490318857677829963547994758196460248295663040571606432922569906920128545618146623245768315818408872936077092274048112185733439295123402715040574947332126307255376143687084202652358641921959845024430372657792804159672762950855446742580463610181228510369621610232694623585553222519713628997533783496865716891359012944231796797053277525993599749256402294814767375674201785934859657346070116028925441079010927444409921099621756886002971498024682778795778367399869132658405100201134881761089769462845488807989997475256624968969460611419827917245751460087285048190621449548221844757728163562207920666610331842422340865236764823087469102217894563081913977177527762876092433942638557791894658291948850820038316509479310736132039972653184635262815512394137781503945972005562342978268672894700842906956137184939460018782498265596228665086511502417299695328314309528707683663605370157307254301791894693379600497530156161996362152211115369375872571069433435705809722860960704105979656427338635257294996688537695894326135850253244349564714409719363109144523365991081816350605870349218024446831232765096493107874809967918637588399176461119903675373321607322789955753675620206859018999318484544190315860908241596682989464917851346462983731228555188573850681747182101910338541721131931395411765341712231920403992004905750874704629780055440005179865016875292749395816125957654772898860136665018238568830020499863957773146329305059940943909522021031980100288507448293946586272289249261180986775422528460168430504911333873017127521973138294599003686606213243225428666470042587559084398739774917886513075496236529236012357399690569180323124298967644798256307469352544898702364400576790022909987595497342351212245403929985252756834419271297930384363236500417180273093721532728255566693495156318294702415227063141632163033341886102296209838008542975369287004536287304963604693638108262566345497078165098283926236502619181767609346271322968885828959470870551378150936508429478946216737632142920071067394110915348145405832763605030173047676843679551206994844711720339901016531784472371899529684378388781485661964580784085239877263769078606932794784082102219478601635733710149019126815016757044033678655875896451067524858624823188938337403261891297329482524468671510577027441775092968292571201755685332270328603851756441959808610975235685875794051076680687778780864500872491372993980197110397962105745841272652405614127619028307550295734910294999780909691011427232810074386612427721690936301126696476665377268473595417953371674899299558421447355921486696930558183911762304933530630146911652310601841447744557829653367357876582303823098104605880562947486480149805049730417020229475560269687397422319881962461865975357511736800734018244795260429962524327512898360584258036037959203565227686411611551797603815224746534248937740924402905179794468453277997112868568533232161717125890104189813637581504757786326113945807634891239102691068709832861071732450246487113486123199723110501329427243872017378241215133237099846356577216102065247718264335645048727698670584169731085857553084370964606746845741524237433559641393890032867879778346949594555237018245557560674753718840005141035284732647616446921511353495596339643827733992004341482405792876784753263061651927355641701263780078772608573819162626225153842455823286598549190279551313206195104073857110012995922761365626600738137231264309855395821496248650878402408240812259962167544387368104914541273852830742611585068823318054030211673136933995945508271511911033059718677108448617056619149370371024139372745177796723010516896634652689115249600068282720240134021891074709835709219747185971418069154673739514173867018136112028231889579621489408185205419596697627482624997827693089579082365831526891379587798140167885976310988156188247651845382225198316424091939430527299957013718957539695648461144896608932288236233090803509095943765078455577527375198115128055425509006915317049408715991832324996330802754210019699974383499520903311302072700141616851420205556093580754725118817474263135969004337067198212680497880097537678398547346901895375589036217551038307725236309687798692146500975177251567580526053967534368982306950756678802989657241660807941810701807975033301007142940347520753384770739306267873608592271610204639400757436745930921460335091236869707727694316511962431846892921122680606893807750565462155436556569990508602713830097757668301871167683597597487246499624170394480264465130597096591820253326448431737439343668242335790148787818825148676926591582280809108643325970310821843072676605265465255511202334752604230231729743251792499780135977755493146118528851608756819862675602032792623721802493375347977296093405870051142520055078419205904362072678167901259813453418746256272768852432256231421996901361964327015639236220533999485343384962800175652305008932707669285885963496067055978934032665409982038141551955260236528475562619332835120379198988665297460426537755597632781170509522158749414813086416153052849734464876203144869543147543323403584240549945381367100454943901234809843418588863988783522575190070836981265897215153098895567615855288332684271775012655777386435724674807884882959329949480279963594672914931345282463173371325594285502839460301599151788101395395499768111484624053667051379377592838295077742412052732713195348988924254082513359497563714813190893216584256205064546867404661133479033215316005020210273905700749341997149230511540716013325653080069166767088937232011685789943384964213932824834093864871194071791429062630307732716686385250284490619136810791894840160416816695413394116577822389827825854457142245047997684305420741978455065633556387086411636157378548458518569522269931743122786128176643844605556677696826515649337956857693308865143887421746502369238437761596805347279971436509283075886666730928497253760951708331190152357142025216031111431082137583560275868070327595100752833590605458913070117379771732944191728707359617752128491190056272901748462765792167783620338692160489222184806852205652349135238692725310987933975914063063813339973394771007607009478519156547663357324096120252658192182422951628795023419664091352825603590095509761510915086913335574805785792704863821635258246825571391563451558741553221110303456246092169022382575239929719378051749323580918869203217833814526520679277374360496871787572099436025947617549628475276679355398894509256223658451657428952727436027766922630874743083101552494426379220427529338132580345131311931556042332745098164013547651031444752559577482973895331456624264357545256847173984911720742245281655269606893869383353520611233441650838043295470720420879689075134544711400897072303502557856923763445020120340089989718220689183244009174049336293547021023569747624383908642610297803533899117378595841112900544115142036341245609686440378493682845175327729519097741712125099813803825977586606940378404569888354234587709688533809088850150686485296039386163086614953340923592570631222012057116905162060652217576675450589380422515655764345351742859635622859557803292242889450578805191688964846588128770187065343232401870298632502203726684009286355598977821338705043441956160290361342798901078668164030857840444768803711852465196206723221174715694553556455982174233436525610730564027854228637350160377050780353444016822706165213646892062465938531589335972780391992367801848920585804718226333536886742236211049534437722223997467258175369551334218245562431264040250218657085805003917118029786989936958324979405941490480828625294812537117641745143413467787923457897014371209989518104381086285922178310211946760097182264844120321577197757776427260423218306061983075364165142309095306132990789534748722754267125244764983959973453268320959312602884453879068670396089440320792574318392363542460279660970099342723656610290228103424202389381062475601449863214605454759555768738214032777048806822666898950814141418092829480160332269123871904585597726032166159133685726561570654602737628981672819353133174470140569308287959079740580132469030248756256620761275733737542037775557977164270905616528192766557604557873695387193616140451876008714074483023715585745772660743851841973504856326455565944041913812370317256927141311422680162245905814372765907766743430482632419268437485469806161998401074638511883566061134926293666824284963498332358053008366153009922989640845333191411625714780502627938358481537521800595607864780663766651046962942893908954274718414020824751627014639917970598772860320726723049789504810750916412018891901530739741879917468779851272126637723640908116237499659380358519475556305937233519898802441857131795392099737785614419204565841652615638114557022836473753050835222577796865220748704473909126229075511220020301774373817243676070776124896343456147413027571138254655763559127086808386823038160087644873356421398966207037800285948886407294281161032420442492481835488019631407620901097072404482163882769238277055019808143333599075836777577757158084351326987863457081296969382379330418630800602939490207509214849037747184965608551949049333577497051864406244973665995949449400794871793238248136657361893376048865888040731429926988320201869556502300115370617497554668041135501743874041028938799290691817516649276637846620369567476667271435084250077381664769655796584656010410714648797179278972988927379166690190105420809348625410247033624980641930042421837655466453892903121500424278978557107542665230773704247635870594649543156161605493785193498078360385877047245258674512458250588882694948180007258352978691052035123324942654627342066719422153940138358358236835201773743990241725549538267945320346522855399129142050876549597942513564681151106540860369978266889306998448026273814740463353217699787297548163719391108670697224519422700788899244402050253777450377817547964670324604890189380221205408430623796998411902299541737332981371340189883769059497410024852879238700854496473274957541871255178358893120098694082263578383871517471862040034302340646519662770056985142132282954233202785100328332036125162946670174563174084211427092120034264359863643314239757647503003078851569751268208133208690798083201683713228578977680178913113039591921341639055951496852320921751647638692882515296790386168054869468867176636911775351125814862834180505305832386745951910456679274473572682184941943220064718359185140908040342720510469470653130166093576939820769074967622496295210101139364190080995219388613884554753217041396943214195219831166292089928287019070444568588162427837054487068834303548622997631295736682540640440652728642246569508439624710879877041453474076624671292115433528127858212953927649818790957300517782109018911614799817821647841646554256493187132773506146951733923094116640398982145717836048641926072702077663139753357768031195063873105724705296469937689012674665739917063226869306571031558145236117013121628683424538694454127017761698965737353479326415792319836831586913812169540572984939972856062031382017088417274983597834064513773521396459127752997120447181331938586656931302422089963041580119933647049104161352031472473830215058211326620346516360334036744727262732708954439094440434345718802164105301907507106637726966447169361448851170171143845533259863765934756481991053817823674365153964826434455197690844463942830423691476711956160938738682185257984647075165397565080632482426919422407225141995854312641182534571102685111178565562773796060932119996798684918133021601018447922440062608879388528052891426243222209514497783376935662148721733495410424707503948830791946990486423606525802777469004321440407492185816103685392736608799423770845412441042995693905586060266916429089313545022504097652838461179013963667818515482158870993754355029839466758707700734604708246094902709008918435712227923960777234694133191185254359126540199204610250108491602341443481413474244859089643220594350928244277697474982369111307658410944519266302433969049755539474656939494469025848147026094854053873578244068205669214686509805090293113812734583603645222617147944581957559056299306809939501734803906044417511054554426278022024360336516679619708953688115728630569114492083818605972146571206738865672386029897080368959331736419894219958192234617439853105663019313479345230863756833546816882454941121743233769830703596643814983989383842987823434621736761458562231672485055025791774968530187352855870159361866019359847133477247615429928930093498843742396906353744530024727628508161140946782128605753533019931185134508188278501236910306541855248420408826904579182608037420700356686050445596678337125623011680376511177292604348229776084906870691505086257480026332977358542317921245114505597504063384019194807270938597568353850051227345594368796970175965949313164577651466452615023877497601646358647279927520787541610812407514260535743425583077876261456346934662364044453598822029467401444494742341043344862160862964189978145301274816405772230568391415837987993372721589891063230768795518484348862967080681266946547609289919991957387826124383200169457989267461502028152791539115327513264015219610894096830236164653089038619945314908428467678865602321310277369209861648925360390232665491456426266938096780310066700316542933258721304751822861381154052665435647245431051793876314142481095805631261772574539872646813902726189833684254662232731110910360536409150948730367275940749321205459891064554692192447483916188226616729872920975975652880666827311215788366839878293252161316988765982993016860284240170788637927681135941075083946154241041735489306747702463053733330526930682585401734706083649310304556038202846406024550034964031914195087849669162061832817204593635989915377845905829597675423686284093084733482281524388760516587074375708125746692306491293265155897746097264102099383539983979374047399984293062119706896978194308542048607678987989601415115995209015840135610651029444673921922875861460171066255076443305455458314469332205924357906569395118904676439247761435340285544328647900204253585682678595388866734135755611544105864700465837883255056960070218577228439865116744993401676526434660862940165820637063244354826766044773317008087840880988360143119773866200297618959773059394129500813665634315140298742745295128431698322455834693719558157244827820981709238903728230071612206372169895884858941281406189635303678683988341498040748955094271309417539709814270308228618225628316882442043299537133273530950198434471515027074554564096414180512904724836195164009829756432977104150567144920002643601446745953851214937326975908669166376812987787251851355103280796724893794782255643520634908149421390939482657119401500811720304080266599679019121733156380766002810164389098037409662737105170438315176201703673760781239664138657154994813821231821164004122541290142717965984929246600620342898676336901206257227895938436267329633626705142540343247726031774526542910803859274773463770957231264973899419089877302271991823882841491075704115800973439514982635823411105422763143765870279677253631551264401087325874410099303752314018265951316812247904809253117697077412570039644841020927923307142698639097799569107493504179721105227742593981543116082020041781882978110698785819415810376033573972320880330195015993953401311261476999762426453476630084415565270436144092799836187869228630718577476515232449006380582546191202745403728106371729975367061285672653514683622506490904465310428998041793206078872524254333918238777127263304513442021215788962313181723952697550770932831484101267762141798396428255485298649733374121247015175873991162700477964475683058324716471208041845530779161060996443408986739718172753783195443498813801556412143328555200955103036039371868245068909887928334375642533842478165285722943592228479845413689858904946806198503108974572254529018853279882296423685113689048372628595884480486490212040704767311740209453611122736960903465767162584521026742824833894402475442409562019434459685850118155025496862845069940607189818268751602031879710961730136643855485318557057331642382984666738741306241982736180696009348537678886995812659448121656511416936563483027322555953186651577238347250267252574457926710824609401151846649506217573001325579066136444656422530138931190822914821077460783129732946412151841866028516315892588089748943851527388430300485337059592958357361263068251952005073670056394412877188606696259423144336599949218014686147444731779847633633012082160083499596310861476299921385005725751475004407719442793622214822139447108161414360287409044002065569245725671188328915663075652416310678906255258033332535297355607195463780002093752795471871246146187598712631849992557556104228063727690407878079806667914567846086134769748343413633762084893757016392235499399814760737465146198237772270981153306968026234604153464421892028162518802188035221071581116663211847207423648624283867596737404955659433807638471509559409437034911952906455423228887472642918627738488991292694365221138250489826630718203598819147573190801502149289889447863874570614748914037755982988006624957536564916042805369445590109889483204903741532719125080237769001464745106540950339819076837883952951198512953423588811827895792786559434784155557011085814804938968134095368285351971843231169715344978652349750086322354998031650670353051475798449385894296828748751002118845652771894734028118938661784398104191520000942726634477571169545477291797803213972341650024462488481202771969195244543347335394017741151967977862921239778143389662456154791585757452022055894963647604693164218541928400692255199040384179241162986768355056714243383301250790206093032461203772771576427273839043990860052867562077904358704070016076762129339649126167558742099365503238934788389136281469381764111418782591628817386124373654045144880330367420381117895284239427656123649960926470540273781094729539745174976978767878544816490857512925043880518567172742990288228375764984273048137552919077899731519315795810575723037673426726369596806978135470745031760362907163648016806819890277251853735361679877567032702119097744083970467438514245488842270863016319040982962225499150049694672319469112779796298296256336624254870722155336274596585268561207957917904553710673001525859084950714600999944964212267914595192950523452698688679775680994820827199410260373468393339085724364393879807909425991225807185096904264845527882866882199569688677218366714214646602010654354395820970969545681472434005731769936451597552266681248759071258749165374345000264154413399934612487547087836017367876221445432621230271031038981989079343953145039805861930927404291122712086841250305151046532267472649065569752053258650649144080548455545050278610096190972888921455173035671809266320979281696280154839368249658724088559870354637271352906581795273848620837334329721876679641706741270540834629511353604857232742732849151697086370943562358124162940514200589736775718540258465821288649116101408592783100018563982401878096949896839082856077364995600173793840403359524412890671966711400144788100403812430423805385545501338146596747412834659270252325536988370157274504381270344610620118542479044373901214116814313721934206409591136315763296908983104575036401260585283399898557969754019954535144776596456980819153277040112257271556793628586666797957644189383724935163737818276340684345304068801134617758298310911973069603883329318709854574047657176797939345148925533526196529287255672823716122510450829350216805773470582585090577675734767501799698344278757929979831826809922344302523234099371722575372444692315152081220583750705975065820382280785477115701650926778840258115527098656941307872649838233071768280366318527979190901881234253468078628489688231199771211844872295849934758060308041206972961202859054065524140348509575304914156873307408144019515885016938377890477559907574164422072848995985947487126326621205424171854045770367995616058251027347691886813542428183320023343350263832971450979043943251132708896456769583551758416747228283675641690185066226734321692831874418367508281893541395889185640050689177327770562103272238819940183427410717779552668278995953885911284951289403887075361881983922641287096974456881516450616990616269896022556892494341047878771504451369202718623027283804543508756539795226985210096272458612634890786927564228620986895118995184456926375506642370372740330066473246067461353512073414799453978492115399377771237670128264412959585265897407144933112871516753977040995380436726461593729182742203827817101407238639783358612298864575855036409430780124933311810153071051861540467959549797107578219835662587014382332401648432180094137010449849551921181661544099664586492097343232226987709918203604792183612784986909962365341538166729369038853978069485761327918059585170278634464336825576243977399041844261400187000288046183938782090378789528103867315635471275266968090785097666139975838029210765598076006413699524942654243406757802479953913011170126679628615762731311975961718126283545220596671027797886261525935362608352637060300109723787956257426981105167534626782772328838747958240050392984033535491852350459778283206028877151760336623562294569906288160025263274769041677920067547007510024106028262752179096341171809691858732667319249962122957929073647075558574286074331928543702008846262278687404114085898889649649906135595291327103630657306920755831653234469278493026514826486681711418628738558264855804346709721855202735525140468098653111977839658068891742365277959960987347160208244016651394213094059957144735336407039518986735072207936236509053100765482176637522556805756020741671635409265070671219847650960057048716083035703146835609771802527923139129776606650057056913659060707449211580992889832910290720901547733083435364267773725272765825895911628042754035590631307677976908499438131621686956753385833163274695140091571506595370856182269628328340617037463469407270870920998822162366713667122467361414688139125279209075914983649070222405252619129778828047316707861833908442126843603982158208918941654822913422928462177815273525981772534759506932548213715166477674115827216617531807720874211868759219485012788571871503754645512007200039025121163225307168580970254860619773326626549708299696554296584234552554137406221294666291069811649222625689584663000413494697385609754003199423273380373964064588097497069053598202890814686964729450219672110075929740478060875807377404121425547486478519462762677715683765013623600276512330377403650084176258570278199569679131078080701268591907719686071714576588910540868067296144436164480344498107524399599692798877961861510981977216059731063268713333003368747420999412390577166144787764321410311958208371658359563337752106640424966861975336968402705810963680071855621526094919236407956163060612501817338685714464688108923099799002308929836293372952000274540461799694193503792706801409962503851908088759846023218257932979274249667901776968779835301945829459141920394082075015589063555701436556235509132671543089514677576676392517188798872967840647928621488720375809375564491555387780709456074723625167588144833654262188911455039184517996758365051892222161805332526965568656256367972718706848936676107194642871642811441940209646822465107322809073222250044455835194182689713131725510809055856818760624514214912604682597496912735007361323774922190001102834610049419762964457326844395135739764840124821615619464402556961461060697023253754315377809518823901605319378193227745574145211239608765597760749774217515536422269559329453386220855613175553490049281596951159880361067029426430729508930310956029970812135412165807780498308920301192871015517686849288846861624142693506396597541976226926559722782037585215048569234619709410144107154267418668076090413845031670917415813196189420564749212336763555131245619558644460807368093505977270140900593822708085524162513910638815772528954014527357553402480737189480985986776968978136365371007484283795217310803571897247636985004969396209449357244807528953708866734288707535681496639458282026126496893477824398801631236337193490594931820183132386894539659954832613280750957805636899168098342842076143043066116849982712869856040681191730200935500749006100128875850058957281672754443680717877693687872340978271074685854123517738568487496375364274192636451233982602295525364529783973961210780285599532623882286364578903075447839728777428060445669869474691245170669425026648052644499685877125659594031432798312561979223779989946866068325062344483513984890153780301655343121448065507118482255152062014574937371636894942262774241989168788522074679868872190505341570963260249706441890029912269765177188971014571535946412057516478202826157297129604721300009495310408082966192796419164451042718512529737541409681812742266944462552592393450472079314792546541505070033292967920569189772136210829049505012703016103565925729116843692743035906770493515555703525526729419204345483768570043173976302987451560160994092686451590679964338725680231259077578202765302078608544787556023273703220557446114604540452910885650004691775409639985522274381498639425997181186435813845712476471635782074176582336513483261456830098188501904153199098299519130161490964003111961787006818707184526092262953169311994636803582056115406654115176667546077190631724199568465982371327942706085121906939694717698332100245105221226327844272944705385245353420477012072031355601025439932386610741319944741057649013479327979396588009496404378631832316905609068177166034615530119005464459547841569980176623871976075759523088514793976443885378763160254821622941026730291445240862681887171019393164544443874010643155838157084153466938309394161533480377483804156863986246475956118235241080095166296173647818679113732148659894369626063858035363729806143264134930529956321359068953915036222591404564298933221161416028730663925589143731361867978339954573122298367755780975612168977896139752326843308730458587666677594680136417876906998390883781636592452016897045590399592082652911055132307668724859073635272079793529439928385918653934988107057925792072040937475530311801299189562586582384300752788935701316228824412270875091085831070153514275363123741218441190799146120975027655191290311831827196104665382697322325678387071241546025804834026033492124355266651307354007335711182979463784255063616140858035079021399959908092106082365830740710699279326095157273605077152456645760747408850863031500760319497913193417650422156159819966094378278542304731535555041808435281169466561356041046600763602795063980332891452584313750641218616751237251153911279929723743071929861521993059219027486598287372070425177972621017338578246896700654621640526961166804182023075794591633403936621712682789117020380849011873716580177565960993320308698507928894830592908479686617365345035052554435460780381416953524123254070308338159256592109006065177165460813959505493480277611193605177688608277351820149109060871012968294335850222695920649595158137388796997463677164683144577949581042130990185576482743571917834794049952268872884549244072043410347005316160209641460445128136851655771838514909006417296702682947569820484028325467291574225102738157475132847559451266102458814261743092172627950167763807467283941682881680066826254413329005810774600249890949152302487682173569133613598447215295927137485351979738304682822712691617682107167764501351896848195982737717078690916539542062242541310383583598093500257207215444178442893876844893085111980211408401017253806914186336762687250645524397189584041522512518193826688887794856160341935697471057294805592174465415605564370983941352749372573750825398298604603296225848724631119371737543087939605395895667193474080258773300714357894623674540927530921774396126145829453571627398882484935293063617927109955617151042060296475501630639563945345250305936999584445105501768768058018824060370973683537250508933376220975792552607177964841097955404202095752063545325095357356403722685053704912056761432301612029925905978351902612652461451581191553026067352873895235113165281400070710484511517813512048659449643604298644257104616914188520966539749702201025717579182880617050772954603126869654129676540376816549781429270486667724931351232654697206048242500966483377882397657932328439059672056059671273790654425715625019859147862195490987834935684465737935339581620195182340948865120390193595133346220471902275624500977896188782406166723426141107709886141081314266959417718133159991707716105139376848352004776521689396185433190113353323113628521510484626223681860826175031189705047376193531029260766535960386257580165119556557924524254876648345899030572002709789225825960652982064695295208047632956937000672771991100817771286476813430353789267352990694901452476662213030176849348806819648120805560129651294035392719384808757589213088568684427315446981747341076266319833803604638479260738007305887296395775773777326917722947823287480663052543107692902245722338068682812462217775010132571284271908164295685289026322278055903202743184227640560519895998881259766847375387244604424806335106469003592260665770453092061910067393234177667866218423607962932435870270061591024005873586299607024458062058259450085578756144641291103563954017002963346709866472504877761781404671122973382060862642830840271615176510312701071406941809085859459718009952355157990652871361059193605535015275817666004329503909749284258975394322309061133222856695296066831148418868963223292897603753172289776949311442215972173558500895562671763138546690461959428875439450810405913070036820414670646808907137680573471567288223408085286154531618516384392735574212099786278196452041433927533655666715341747907489023169024351335857117406574382096388820660193849092954820808511997509096916056035917263892434096804965076827546669832231717527174427889353660168043974967328210964030132000796237237649366094932391452638350703686394438425946984693651132560379606347776559304624842828378518832202620855889597453697768738957471458867255755245303506205024917953103527443512616935327629755079649806111205433446666195654924141029096054982920157317478648634758722057633195306651874410400875485091951896744640533035102466760221878144122739436097270535401062559228316476438971973920167389117314622649422718386489497902464899403316893210043255775560125638644215419351585085728808432957078514998198279313659805035937445541141042392792682687075574906811948076660760232798677664206112623766087021554620964327683074987234883485311131792733578872008486407190761000938501165319611525923553219856837635101719689076554819423685842482402080531014394931348562887457223556610957556455364894340843993560827955415880044552120462463651621135969731443297036564730821929099492186505987814167101553782447554758809199435519750396947631546508209256067379135065289590536520839223088832383169153243066154910329549087204925458176711409355638953847080232121180162849050948194134606143273437155699461829707860103557830652223490549898292454184023638072233867889625873441354571629923180970520567726474039990427995050137275498118585043164585717526431333823017727042280539923724437007666669868935383790023695975186261946510631029827503808845798405517954725369292827627280144409480033587757768704827671423800195221556453697891275262625806066985734350697585298392620319861896503862626796498490073799859921899490513244705172122771670840931411336308121274453818408185369280076842497146409623442863526071274677753704034659225726916241234055176827756775877559929478623218611239058151670234590559335909245764317467397933693383511032942416475305968701924772853837234394931198634909308992839392104095955616719929154955886441869594464063458190149081424670293819378784046205596305539474592409295794907501198111181619449073859842973549104443348650954629902624006203485446445363163752185989975259802657385749280082944366814669963923498937149585823927968459047068221396836800953955682244823434623160407761747463036235434761723371885983092721868594351371047693339062892084372781908768320083349001818088346414158638101953875509890264880212104702978387292416404913765384591793950939055636431082546505529540448108228146354206539987800236895553521141094387698627038801751641487122710841839100114799493608204503643405040652550762171731258590442908397095083458133070377339428976043423942433814737317167728266258765035761717632398663655507850675321534942061224648168848235335608474239359801264855290970570311301450060636371887280372954499220202138873260829514943282519346031811498749467870570295638716359711379780643055973441127554025820537516253483907659702668467864101737899992074101699682273858755982629148760216999053179628901775090926593366412638844044774753545501861648600670373146826793004658413662000760156068171928702161323866691341774679465312876256004815134937241938691585495865363944205405984943329290234085435689462814757467905374991366160329230469183283031885615878276892446083875350601239256667138766551507232551669684809602787004098487881920953979511031172481318190190150171861426864577952988006874717096403147777084661511131876660747410864152322456751428578556495465075282890563193315609419285251461941744726622493929885954178371827108794300393129657337861849416080168656708637371162049703516354665788428899758368927814008728447122913219947549652516583587786294991171969687020470745132475926571922309030157402323952241833804099494866026841244629909861876126406219823520103311203522369982454569464694401242881070294781956542917675506367462458325235701396648790516565255142886428458003260267460668990116242269817775079605965701813550977060671116385303243895602082655861301009233568639287031998284169031504132679314230409320073975327643213818158031641099169555732779961363981154493655647608314398578409421964472509442673443108206419512681991877957310136504836031564663187250255176139240372790856543587938351405854956021540598467810039085133917258725541339221562116444851844091406787086842187730469529975480528986399844039609218994191905209189762215081127646518325005913854384278546923161152494303110390652405098269477911205985014680465498813910236116750727971385427476204291615755793534572073266816159233103495968261611685586566059818714180178206459395354898644154838206485530923772704070608338522351404311584954736748680953551643309820373121490227226046809513073084773906790876501794982937007827565139018550262534056379384559032224232972851569135455988411083051334396852199666418090849401111148524170481660572960975036630783100179403525980467132917075162367879420742341515521901016105041858524818313025938283464171997117487957446704624051239870017861856177411760197335367443560061219476002362350532474172113476527295048102257469198171654033276395650958462180966957279328195485859376140881262080116299305984884500180929185561030117294488894053829084412504677336635118187772399650115171812120057413627676500648257865784276797443087480337428060650127809320054152549975859220320579417596560736686447158690893688800951159345185019769817469530171091756149453386158968975537274054307392333010289468445611716745500846737729100892980738759606456713306062418158767606258740200326913476449728167445508018637958999156973314025409403611253805808545334311963818678804863935345410100320643832098025161539843296137117976366936376305268733575919807049694472617121900678428345276916707577272219276444476906036894116426854815785635735434347778176670726299738477197037114725484471130233241880723067109509709829218910888420583598573329793392533030263485833773556462668632273507395636251172596139097699877514200495598883627789999285108201339463865603003686998719083891652417427648833222092173647367679924108802318673767880460069801533717549347143627192755762590865252660276876828652676187809855510600762404369704405134632708661910229400238464164416146316256594149111065580489917765683744612727870429341126450323324033857587060934451378696844928429686402154203222311795485937176031131204005592731396021950267998455256273639277443558636358863501138329652200107748855105335904935106105634196151144497952269313771637603228359653440383447425840249913926625179095688644873323792163589932393603761926922269987240710721134244461419808709822303169031863354055171218666077398128181417220839015348192743498386362550289444430431589998203355524412994405273471638771577118458462443225308203820608391575807629459549322991236946181366025352361463453974034497087454303793970523439123367234207713861974887360387776040877984387514925196772355497706038026130749584590151849002894830278899727248853826579225337647110381053111981767726494218338025268286024538890231200910278185548138933558689483803068983218732938359837002992267796613001082351445276036421017183149799604955178933457751080354712432786965538741013988278672784531773729165135101383064984088321049598364000154177016890394900196275607628551521487644633216490997956204486366289001295310891556894276967125644561852431719443667740881344085442455395452223863316330549917315295131720155491272205906907457471336774209041227813250379382101797526904330524701584740152914051719714340459287564382628963372766982853034537997225000096459316221267197569076706643219119835762092234018520491996906223023753018518021175255173531753340293410927608113618198098895290758694389341903105279962280316099484763534595873257606590954874415916926639316582373936436186015164409462530002540623992840655117708465844636721962688905797649622236928374558242157411814467656631346096404069666229754021158966635963620005924981018601966766290935133475987977723093730022554505328128033885328270684884929661543854811686287109184989979600784493860498382725149475898534037114576559629307399262681329380897960614727052014814515552959610242952994472271528122071642315471914643048920097220582828258698856004249974224841969991339577607020409938803820688563257197462981615503083822533056016122514442757834796664309457444096180165164912697451840631401207381717638266950095498833653654759470450403368896973198444638344421353183272689648392749353240852539348509222716995385983213735061102915130395002841828775333728312210489939165158163000926152061583371415865929571261167513334266539589641844626448610407871519341644250668100003302072942018882886371290775722855462544151169874579585527105413396434173411219654600863097356399166197589133875805056435668816644765850520688467593260244725637103625101752909593790688363521553881200937702706425189120930004175476944192006212415618092649790400828476303863292866167556151005915635581449971515528566252271330639285776885838186300173969083440784225750425347906794294701998002178087301386281301805459351479046019488834300149419724092597543830911435569246647251020233769690999919850845869721278845908517834622684515244673952597690876057911793716164806572226163028839373982351148831750150045149422087790356674515531456817639999883638903078369201619973239736270038156625398958664048039497643801161533620207571844001305706155923118348801180460991077862370089248470874775316361407110979204298099676337086082349437616616999056779938658907213458836295351982448470285296292189304199788182019355700003611563937485118662328194478047809348819754635783713220454595699143349390526984919841492153062678206065251940773596259499301264293908703699361278954458410553772826796127078403535005209883435866818821526863145312503642166879612030927111536187772108035497972700097553376391445280952705161802011658539792082242723641369874381453455561005024627894678106546077239515561249575923743679833161612500639565518705514666236567435174019345961271374860507037406379507350251137982483325848176198513355791677709852335232786712967253255877576094904208351947100137168497509907442078244634775908113713244230705756130178632352872769003488041402145996833796733107392369266673930683958165164100024440353642708841215552173123911872097521563221660228990722341365042362355888837279790867262236187888488231011338403918789390103059178537942609868297688336412853506961192902263999030388783687521625126096817742438277933588108831814209331750368807251733631543106080452432157813681463506739703797501373514145624294956112256722181582543685278702714178960595544656065729701238520836457549559945425356413530109605926977585974934069184309973572388401478974837769151618560507450054965243167157225637190263445508167318805622724870532377482090406150172209357103165532459363558225585038805150644839013054205762462413440551847513096567296134644503690646774434070884166252034721284260439102976820141729706113223030426025638713012787300003475098124307453126493539746816730069785337140592735798001005931459082217367749035600523157163936168731173646351196041268469331496619153230480433939381681993741154615219564736486579674757837446499945249921580232110743796677148273267400189828194151363906575934056177039928746353041210362999265900275567122454139757939240133259652552073609222484696420561092050375170637552317893521052426706358671521305349360478414432088260646657161830304771829325372909917708372802218843805648226871309371643561449427594099218651773029684878780426197900470129600186632701320707455327203720674887966460433578440756087315655168426967907526624652444886406602735019991472450578167749993630865368114088307134209051090293129799371398850044322300972917051108610528259044685091351605691424153769969663707180817959738308249534543232536292894759899600467325166989549027598988296606181494128029964300725706878304480387587285698382160154258179636554188565710499936314403863371915070093359486154237557326546938601003722630188362894343108084519933874945792610540547149436935313772381494444203296628422959988856142885873339422399300588842996076678615025508521126631934162362787372712531106058549373782247517112945952360688293760710283454563572837612591340893935767662005572378922884029787091593686566073978269328898593736444546060338630568348341937221119159259928860698068366615625518321887423387775409077613927685182504615277822467024131115760211312695820195555432607374697134530595460053125964810688486811803845529263670925706211556672698246918663872174380482863089381100531919036994343946989688861370531483098790570189244249078705941094236819589032958104495777913504446330138712633185164714196189890783796421064140513273824650966851128459840758920661883104741301934264553226378494296810003887670652011554784946158826344815165410123784238837658518591470672040699133132023457445180165470531977852737289671549819892927992207457931675924475317845032985232527526789447487429651751663863631160782807981702889902358929462360961904767830969638763980601923692754724509294141309149323892926710796893046567264455908957102762146382574004580895946673881169439110004544108056431149092284644993482484052153722986995688772681751723420263055685976366409395082288092799189177996192593658080289814523798593688362540654680785401485304655494485338213365488767491804732713047901111847530679298454088863101206389871438907621859594543677267510355480482016841112926135136979960308386961666869023223423310866615023160414628789967823284785860593641816698214730491809743221291907091604099877141384054601862921394882465526735952935036229912276900061458105963989088081407012234129095202105800961686556209323105009131837325750727159264059267290768457964611547201037352840927927600565565568341672129909319279765685880861304562787643169487128136435890228770046363205678148959042178567694547098148853606570602070018677394641703447176015542868412172694093806812758210821964150611717973968315387790734046595399493349504609994891613327295241939875848142368853467592974210358243781091939044513589514377473748343497271931324639967726564139595006176976756297851631720967625426463489591980822743982377212306502186578402085271737994477307946159259125292443846384676648831490287124174174512214370929090450367520340123555634410137709858875906299462258680267048957702568793322162688490158651045034062377520731322049856450168270416742999277925475850014304913612707146293828492948576295524623363794792160335747748514345161584708872310925521501591324356896581054718568335884034921039999659906292419714682714611568508914849549160118825026070593013593474022837546785775334287817229266538848931527345202671547239691685080975301326673925265090659186929455709996365715729965528884236126262034276300703951578999165652551430706936183223053800229377011156110418606241669197125100613617198486805695496700441981407631923042322170506630158409576143835854280051626753871919452235518733431047415833877966252264600947304319699611278285126918829330699155667751913283934792818600384947887493145981902186875098042050840634351985477956380541002105260434608582054597745703907443332257353406213990021257215610168441362875825621419699308358392694346258050496132594985924261350718241466420794441298014930574805200261921952744236107518079731467300409341481010705206314395562790520670507438399676046236418672214986385064104505014320242893915407671195741650761877390381363825476573827070087126035220625964930438695693800566016462477873776118816134704746640600691321396727735997746625742712809069855694493607541514894125025961958031277802096987846626942774837183713975075538288524217943439026023445392787985618114272554359972978718675711575105362382383780098020212349995833655158288124044099855290033126079896486530333485994830687242104126268105827804165419766008168935283255647503056388402613183355069806724742785158698653105524620636387699815656875976099985749654982504270369599072152305902370667456962302655539908170512297848291267658099716036959861440958275879712913731229964013824797514146617901839880479306818321319880041621678977561622763368263962734575692052113658284049377640163608507187241841955788155944649733759356124873806826193182834102742981094309507960329257071922612542611814586553836425878918633466408061872045367299775372163694522352205364310670369560235754238585314965375378006512452868777097662457347856807613635521122870917153688363301477735325154074667394956679250917193686806597010142495566399941017557742597311593967562702905756289922793794128023009323581886262521321518705835694540482409354888459337351175733969505009391197095177554977565646170282820571068958035802463279902630250871784370098989161993797289546032234251744200482147374670257638522481860237249889441870141390614371882951192627530283385760192751287555751757227642619247986587478515956659510723495609517238722457296037651480381913720660895533908541365828929906594420694721867131573870491096103766635886809165229454707660330724806706889657313064834046010731650428422902358503421071285810307473377083548703623830032903064382750758915603081490700183837427310332769744727731117899858864449844475559113167127440082645419500605211707068747704144176940774568745661802956108663435081005972716290923174321697172532754022642862822290713468540016165680699721361013570156114111363895332950300592930393607011735914734521050440547725233150549295334713793843038365082600150354165153324625192239956940724332339581930439423853901321807540960204268056021659735876013897764897669611142081046626709343862137572297918409068448804580991257342555220655507992183539182469279156516194004271435412423112670976666475875939467091797374348863791425474076407940557731754016157607296273094105113106519404734669104865659713785964453941371311595664032024117468213981761886244576653930687042740301488819506201865835232624375242585701570054054361518218297934546415842056301576130817084495875902167243642295706993063936934035783898103708230147281252828340175927322776286251740320792555996655327836497835664195132266703497856205498878009683484174488340504402218083206045533635752991989401932516847674955461309810981618875673057400658292118765205748730251316651784530088652905257357823469299333347734422467286063230112762716625533091891711036991489761047141842447306685339047052124941978947845110510327613748630657082457136154033715274165267322915346776304473166530295026250695173252672006549164844342287003396552012250929498610583658793501782106507471938165379681397797666441810837650670828905015515808008313067031457247890615456918519176837874562330348065812761852561770305296489019914754624005930517355595298351248777410504561225258389368996827106083099200364470526054711555761847262115453741364638016103679213245283796561395488573238969971024042805311570882119336042644516657254061199202842521589227956839325857563154229654101929129181641989093031283762912818505042329508238484488287304448253491161658052850606356858570051093415946720051323975903365973705249385884935740933569757488516442768597823016241595982186423536831133349972120761054465080249870953390140952971472994358407114248208898885786108801901259733228360299372016113558607662848921177220201037563148906329507492261510599216218600521964120219552959184226652459414176148851348515071924228499010391873911398485662954846660811042441081982986661490874863806027522144448736280422779063363727579469988592891871837625933060589345245271291936849357500113703396648019375884095834385786561097848791417377325539801546638606305852662902235391388710955418319206222515958494363741128034433415046054224617091574004396677202199585031186416739826025621322115895866105475997085788856834946678246871217945490630866343165268395306103290350208431124165017473075832689191007839757226932278856846173298833951157167642837711144903452589536175523717004288462206214651612987016856738645892353406782819306893879291712990778014301137034133549476695512433708409981500432352239815071300844930012190437070528707241715742440438016025815558980175730808605559392025310418033904701843677499061812776932252345364342023647192145632912597042555155945303498123406570931461169781365359173024074045649902528097880028007986626376141671949487927928533373313878285267749220140698176476229005853017243472906483499036205673280113345625359399450189161409033891276247883625205334804181361190740992003569352037335183504513637950697593402612290682720788022637348474241836437448446932408298862257550697030012222321339072886685353819618953218209526500706702071186634302182386287267645725003979455272912956346325074469549795921365885885819414821149468051478684193408677860689423568169050646444283947860043056284945276803994475362104120904444371405248890581426187595403866544295214081718672638560631691162488147663215742277477561336792443568144862424464128469599769293123696392206524260948066832357330995977803203967536514569791374275737911759410291222693043810884099626901298780656852826086453631071560624329643846054795940406327356305123657483266196178691368424262092745345496813103440807224200068797447558608757672476247518643109663352719843082477085328759313544066310661641373791179815123868173769122551317167619268767698756141496912843256115040142668299580620583584394457032379671280167717618391012306242633878423134385342017455165191380023410451605906586869353463097344527140794616741825400184087098108067066215344807200243196353412275769950840864386334228432253074446612687108600738503526276544133395219805181034027704027410153362813768232164256745232360229390280286930038098089562793185332314447989373390014736262647790005445367362480712908318670145887516498191686826311460529348745408520233870473799186293483771275327918711367568407354792608183940187718626112788431262967355710101926091079965093197616329612926999958355652584493463543455705772330437894874746316554955511757368205941973860928907522399690187694616927558575721503358096359326133298267976315695575191060253148292285996957425942489846059221098835223143910641782326891270620570444405039421805399238003435317463028921690880156548904734076354834976325726236860345452811727785529932003040996279910870119908205805377761283787116485446090942571867853661857894605173393807504931717486107893944085052964171858951535835265216833925986684323824101318073642430050165659289442259821087770653918048148661815926691757663186878874705174396075161803643061175387902014830032260775715732403210561325924332604830782797360532283844039169611888837684948258451089651475528929641906981921476701447120544920111516759297995651335400625826673038403887452534801372820782915208768684838389605450214835704022279061071990465125144850611736042540363994141624075526177920666735083384867593764465012772247149646449959009410465501349700467922319458893056966321459177514496374852725529944334511270206023221738247569226302012433072207645133391263098472452096318933133987162110830263966635981625717289745669706054893884399624002897028619424126719871097918613017131740262647852834028100995463229531528540142987849352469755654137751599882842129211123970707949333786994184704647611023424683945920182732510609725211474211928623514209530053974754209372317774370515990346479225917522451867117665280910804336779237092471559951016826869607395199450409272773191116390897261377115847465610300486311195301465636538948441435112830673536720669891467305321844004237571390318918259283413614432939535392028493046972797244700502740379070299472934941578982940838327353921087716798311068132324752954094890849345136817704444423245278850168366857656968583923644111319032667617846228612246024158345698041663529576899602194174626271747941283482672157629123700912703800525094688616744241969820378915037041716718940273511328840651874535281382607457412680552871309038160636412163510011838515864099188232422476439655391748201429454330907782864471830245474359152596284632604592197693178009938401793644771998137758052305476586196587097855478347379515324447716670369284373229650698460951830945779099387787964212776361437836864755717030810023445646623248675170208570691100385235216279438727827045306590638438516975832468971320904887675216011403262763224443219057882991454491914364938256786013104700820919431873144410012317756560918656763168099431865952060960018545011882700583345530004730352344996387761103665266537879200703660548086311825528040933241721121644217091912905499901502105925498693370741361487090237441700425578800839573971692786636713913898257145135237780098860384385249564671900669061961143359295835382372371202073561165675741401821815131117353388571711450991107673042505987947759832100877287364195092798738605501012217875183050840583812937067590789380813166566811399313372504783814680999857505527031357660948752350082930154008204221370637667273162315886377998560237981129579947910120449932100534376318594230362116746721723353985363329401691290403764830911839678291234617643680960822486624637469854379497205391544161168443203665655359449504847030347656364221162022406509280002935626478316684894400907681449906165930548877977485982561099964587538650969423902892269099695590011398875098617358227220809582658794989686781147892837573557233360693470270646122698802628447807014492582703936499796520902980277788080186912230705932138546974393409822119855523315993763842487991958290474981443015263038188278326752459148639006974389327354404303053896055132986376707641543075429780052327192228823218571872977340781091282997747775560260096767049837596134395565778479541461438611629788676658125212843092274829511935200102786928260430231061765344707236851440834883248787966070554887986976238006495870619929203819926340760219356355176445609134546664377270241688873751332392472578990849953365776646796972142760772001435709861980245305042678526936207572857098354126577636371297191044089804306329689766803123736671221385166335145013157057200270476290334046603608680737140652064044340220422544612850567171079861448956131459684588601450750251258902246802816433996675724096407494968049202315021341933304661225198913377313513714182362245443869642114174020943663911739360598917803261556346661469524645468392852525774784621121075128294635250767335465282161450677695829293101955441963006765872372801116830279057009973615339841226781079966722318109733332738614521184372407872396111861654163025792497668551893804790575442704132489041733744426183924285361287452690827076714251255303189903735275082186635652206706173925105740247413264389785888742510626228071525597425849340371842146738355837569721476240138431519623433653888643189535359304922218878539358499656955067768246059469420536272185937432456672764959755375781521892072681582610996156262949261573425526318620964646672623545755664278977908310663798605246237876434429577693922141323578870073602011941439313918665701644815936200396151416148074316020129736876888295755121085555193008437619225034415741495446704906726585199113814615845617469366811584842350313086531450028569807960179574302044616361630235215225415447007157812420554594695366632586583623096553091798300854282229809247617441080409013398778122186987726689655270103394893262858276760188605802455584539831953691836048061656621878048502210605144778787252023476127382275094324455698261402761116947056502307648019798885976303265214471401189910997118157916868450013148705075065564812256371359624056320975168053986639573517228931057859976466295722381251912938841437987128715449900568297120319839345609567583629243532572138263739329010235124476131465974235282177334331467659177271519471016753094687549797457688653923416834268558982802947417796803867503478434595478310686485223445551692588220132148878623640021910087319773993093484537766118261064808930614582941793498756832637308614904268757178263919693239953456306218105505865404332844782994456975504389381712015968111832096292646024192495069265728080300981803749690353418883388387544765286609462884096716100277384504105044676175194884180036325168165013229679557323553849772030614043410698388199734644616510110782404254803701828962866624066070349271519841918126012716147759440520550809396031276162211136956524024719647025956959409033334294682178847881488099256334219469256385481959050057043532068035484163083200576488379701999731330099471244684795379780660874837029331717507070934238196172595663645494725564903238021730798999088127536100362940586565819892671282482586900885407888143963207871817134232069708109087957047094621575034163882980174227295109893075943792264606567527381414537708182213336901570399625566308412142275597857641566076109686655382166836260783144392193304999982960360808913098830538518144401892020649981223504070938037095935934287177371424485913308243333439797962091885444391960408504173406675863830481151736617341128581363119385270635010864092703977998001791626646444287790825979437378559162685942183732710139096185241613568430685742474109106699290623972680941767430155093391676649233392050265236616000002774350106700813216543855738003915047912103702066407740875389742647337022483511732558550999939779601380466513453801269765972127254054986607865807262748902835064375569827263665523565234672387355604608470148668030073385146640891490082373291689701858895120270253817676667363324711035752674917073516464712863073912440300230048107018049455665512064539612678805902513341213461660341156543357422970051864986004308276894789192063998240915475150830079832527649342387930428175612021830587611826204431732012548073991521741942656259425177741251018097029246027325392930455699437806713257190808867802685058242604230110206261049311587305522095204672795015618649420040422535021217433854497328583317445389915079700301911531966056236930576565699709474433503952422591277220828224912193504384235602430038880847781804587554082472706507222924539170746542046092560269442770824111329623315654921364717836833942404081851646100267135501728804610643119734396877342688375767074293457186050920510367003008244712282538096233139979444179463408263791913821879193645772682653774326434513517265281633413663879726953029128553495559431042718460693816395121485850359603136732140464742196675861494967117251381234347774667209577163655103551487532310948449596923492610757757258793549367057951820545296821257463877712224108141450594483323955418390360809706877829484119599530629263644429683160886737059215579859546786823167476511523198261194412581231777947507852586292711592159143939717604136803978294532710072102043377695695578754182365927400334377168966429391009699407306869456490758806179275089761337921345945799356432888578006358374696524093965311219711100847553044712117410969071306153165287747000872602782117862990034438750436538207538050874929738544747129513576933661708023834375727769001653438392568120879401245880560451077947827794412832732282557246548461675657312155785472363582730608044339722049853701564089310400053853521401229968285565674786224554078732718791775977934569104277724962295939031800394906345899765166653034425096084909054637255994320719874230934757059402550061728149294362859175689983193610349221523060216163559214358784013147716205035994000415447615641631893226389907391315723077521785361609410161954020019697689631146773123606265003427823431682208947275081012829618906333387708330924394014377807917463363474016240754677588100191409391107255248758827947691730800501877877018168690452352567395059770333343628553808693882481326837369646094638040521660807170830075743012203833906984180491457696404217657855383508933716291790408049365936406018904955957549929304293953053407282636775022247940144494604108877262396428943454346764164268559139443061034342830584898946682599182408283569701561646653243170299224600347348660195138067605177898862889291979995669386595956184508287860972360422981598335300246629856725598029085690828116984120909382295356316744440231112856271236663581492472560844185695165522937889159014417393516353279697161534594768855064682636067396157328279311177536030108511649786992762223648227765498822794879195734840930167010139896542991459862655428564517285487984817819531587070342499845174474964456453030427810999434474440166350466211452635919862999533690585007395114284462240570496082658803803469389801576166425600089806674636983146856401600923693198196775717462603295402253166863902232088728403459060776341936878133878136091790138427390918833847483727833952998337744251926594179856522528756434935410320050063236166633366238585902971165167004502246878390669772248494645243768497250586554353688163846892029003624066964621470462836158460014703076684870079280411364524012418792494450920127255899074605613165642616422133373389709197446572794656487350762415251327596454599005620087741491998600500764436356531643811063179144257555324882023951322807037909370113373075291897234375595444332839534741977525428643997894876786869801293145258820307030088850813960273913760334413084793590106770553620314048710688467466606316901455395973627881898877802620592867881006632711535917088015771384349253349992776849795798284474778038306520860856885830176760261280425689481556089346563156242387791507807885048836931487898059354482496582715498736985347478082504381619680392282317012956027917025079172949840809028640839563640683550580710292533662166797763222266860416213806603440916415761443536044961246767182618225147583709588544127520573681492001292866040608022365106603865203410310299871499522856376961332470017619127254335034575919161884728985949292473030727823146721519295768566885517715715762492666504296586709879044515360847958870673824698251437551129888403952973259774155677877419352626771065608099284287042859404252656544742662052816473685284677804840915074286377222300522938913287642195592593646807420506613238902718141710418660577594749405182730385975322360428207874090292423565154471639322097896620168087853413919979449123683748690696149109483903721669758988990206715507663455316223022750755449293404900046057935653394951985583081269981199798071179465642085361396486716523753296140485188424125453222152647621829973668291124758717374799088770325388280958282486723143281334947591961719326196462064849983423482151197673755543113427523386144737652319809991267750165850826552514829221587840529628789789339356854283341423990087317988116999759898677967494044195726555955211561089846828655121217260932826237642332683051011271998982638169877575385856915102592004362580270059440633367571822711553602720646255353505058465506094678115337569512324797861089032801752320876345219457443138398092121443789305821853867085098507056422464529588807650999973830803960938891031965122393349988100882462307794550921465288277337683668184013188017857290844037061052446157218676183772952177555161468876310505393575549393934860943374179886478036677968950081229292681141259295736243634994516140098315634666948855087111945672800507021533791432752502102559304246516440536990619336127808504673071604031336748088505628568287877899766564242934371184348628578895073192401586751274645194427576947281960070783341630157158651844683721493309943490373244676551826513057789072941823921701574968513691081936053857056684273175796198476163713189871091103475934582446423059029876642764992000834199716346893894254431472656058672934969029153217370137181564323360319016833728300270749205625323625627131563691022740992250768601628288189042731236174713523591053667890160439693502026623740771529900335218089678425889172201674764358933070727437999982223122685744055907963013925831263890329893018147425293427156798226205041469507632069786710449890600482474565384595985205031217921236004928261025752864056923382156326068502687684225816616147322371067264910283953327152178401368920247119674083405365411634298542926119312510036519640743611369002894536013475826995561312374966564427834876803856354610075149877990211566790407408849239966406989959709902875952559771539894554197131317812692102154995938897538164684225243947087895818911378658300225255893387441321212950896922611981368843522757599936926470138430053587333517354780139346566697813256597649518141859378066458111129258893618911063440161652354836235216081871918635038296904369717078062192014686707367236735647067294483593852911595778912748551604300418651049913148275010092829076494545804220332936009008695646320188582613725282242018783785425041006012884187709771187168989354758935621151232180664015683098143349604992928727322723153209362962519050657282881343725464524081071006330821423769590198678545937731008876650757692196003709346161290999456951416022492787895939399810754391872196780780499793604658920179621555266271330580209953709169573463915033034750603422441379731228941829664402740819271003508208092097738779153370926012060796754957262096063143718460988427539236011060546887335252177113840733496105829330898616077035960265897877768785850111813523102708746157656544762038353389914236826359753119920715158000205945107157422011742667342293945347210189594888820590269434094959327355716073681285609437920839597603128561288302335088590711660347551051368621320026615118854964615826990274557097430896761258071597496081973632261311690809343835197943339529610787390170399450147666313125437682267104704654703092164225228002127255400006919336625665073569208150775770819359047814339907622826720780057611857632552240603679273611582821899899563294684128983615887944802010644441518205595900457764022999969497158231481092906481520319601918320012769235133208123693045139489871425292071397350748028372414202976901684881371292319137069316207214657237031331894255094161216751689499540593256064876117280584928114596354544352239557228683902933606957296094915111491911789328580443071550364481400399609988767524271947201076034691579353335638109800639585379104733827305845025027739976785618743173929519399918117724503545733304052530853706127221812664000278684898769880404446773888308116788659812434335110154148982112439104268328650336696095621041118230081455867340046229022121121979557156741769310482226246836329112946202430114203910936373416128672038614523015305712492621187231711032218242198090047984559661672756182209229967207532046226865469738482603531355366477136952945196513972976866185758696457267310731628810792181093774171666637782902241000416358146604006088458499486993751642407209618741639577032409323229480694018571643555343409694870081424041425078224498743518424943641235095424302083262687427809671682993221166526046394305842294949365803423897374736954970705960694974710968657549599605819686902620716497099648602936164935336331176838553630222855823813826695762579603890937767934295466630273654825857319121335837495983617365985477421534051247486557338339409099586207988972254811990455137737249690255821795070178637206235637957664354295504520345568716336746218870076289531783216204342432079216097548514731037414963993982281057106420455857511149847620548456805548427711018164895903401304667662904403022612067372037335512324590459214825386435114876160800440322490817527865655847844551039982877029121275540370125351359624094926781228409689870598599576506527787809595484196430316416370825428638001095670196310559687988051913353958734686099601524302086894716537067526460250411564618942399992813842046663333130626292613354912242043251362393044532275547901763642634840970587941885035590210478812881386463546760030156269783451417247720097673679019486780210794700747221833110492240289519771495502622223186493896440132082579800872087686577833613914383889771084651227199066134713124639880493930482086568597451619650989322009957264569492727643327947420631007626332071689580745233560960760701505952325004833219874160444687308046740812110284032368215504707876733400246047433835206898931886187758566445869419701479254634636495564405271317970839302431399701011653836399101252196462215109177684557258618721064862685416131960519209420264553397784898924540540654958311937453671174086586598342912401584085586775958202167633192808547280260676903690162492778302296915838569393354683459690813918623153500083066375872318711168069689150244493773462255880435093549316018695203503007731719529550307964766355399974729993496031641424500934728741467888936380317960723987267994883730703004490762115637053370293065131434424913549065593269533851565745974735286196680067601408527200135431858793364047077003949754589576432084498136191522203856009926377797937481343403819893446531393193580253574139245291884369409480625823963307577020581409309734849586913315175584204351204863162631153305259391889995342705817354429781793802368206969885211595215141005552589409629475373027965216574297892720087361758741969834706816218981418171292819817891711577217699271807728942127313336280476036943117719784903292674651967227625562531114380298654215155222985868351441832824410857474630110663958283995805071938750055220633375895032082259444775470521867734022346522380809316253663870066187930899275015148603255919275732923277313015032217317476484010783782549974517174784848078414670988206539611270870759999977530090347697891722652330160619454101618040444896975663914153266643935222970468341606967606052005257675845666811155985092715047187237230854906150388773547826492354806659199397793711519969552602587938727868107795295056258734449562363726865297110738047977161903901832103795361926357701588251350502065413334822313050871383594319418541495392609422052807799969711714334426175402914817524545758821874930991923890375420540066180518034355334151123202886387243977527744612452967825228474592302973033992000585932833158834058176847254639685299420516167905702218272263713757483822773894764355148089161049287526775402854335581300243331032682352540715361405485548661653251602275930854469067184256340685512860512555756880712735801775717696971443092814170377198407111695915477350963687746700280883805338507066264369904637016997169554506097656379727112168462062114125812988863705782707932142668558762654865558029585396066431897161414237611053453003383850767592355740473143115029860444363217549428170878551290862388045727800689993660630259248887868028831031025621938579932651793472271591879566761159078678915631354515035179997213585963633829387045379855214535298875630003443629250500083849638662749387058210166943515864059443696352708135892660862034632609039382634454085406482763691830363185875992043909767181593426305160061318486211423997383115264001731312926163078749589677129367969928540133915645592136692433695017524596125923819868468541429783515145382292743306391452691515987280932810708466735011965667346649014729390290544814923687029004195213546767910891982108486629477563402878294079473692721417914615528055487312625227369726609037468733333899558232198795724891949387424194392218230996276019588155839945488365171678707614832476134850300570427439162046134520062812949812859299850176449440732047061068027643532074467917455942469645581777237185574625731511878923137899034638108276231509335930975665074789639527618074952402628561134552889358178117308461959354605891253345237337984591143286493879706547331700638603338414591003769006229994199254425572929433314813462966229565949722043675678071303342335056274818449316451145534890645138950189031344945398301196172692931110428116813169641042591464496586642378499245891328427814377682170288974873297119230826194308792183566138074611858788030495501794652701430531377393021090098340188959349813314580807707840197579276543063371912468721400810762618942219087140188426285453386640404067182044326351802685870156645625298232333112980918048758467377916020576214091490619554879928890847644191320380433354309195371663492717096029133671689388236545471818124144728638908617583847122959986754663515462211247142828816426221958007764086536571654778153400100020507754846074133348836730862852784561556693787192282497863598822959096953221285183097609825352190758128336214291565392199993759034877863404840062166596804766657955986260287034632733328508025136821077531936891925074451978588916939395244635238636164972549819124046746103086960856035829552310583742934068801496626563364054103427479778054493018520760039436197569492443097422680111487281987613689213513078292352558892481474732956094165866720237307210595182817562787607138288573124953350502835227238477874548569391658237912467253432953511027440842132950183770397034555746535172899953197765034607152288723270888177171570132504344005715387334210883919407394988124265248038092190795025497426139420999715220344841117276157481299322076500913185134867055726894003497021309412722493181857438967780666535714076128090997236575321674679120176510914365619826029411935250205431379535873055467278509429681352029373950870174184712346792356733717684114103264569841371448378156967706695385615676225224030133502944427496928593966190778878416674875645661101648244321779570799194407804518428298746609947096488106658974373618163662920423533119600144915334239593763621466473824080332807448237538513370681958876813766779978641447920061084023334426905163352888451911368779539369365142823308783986463966931468300426761057710003762433117421406461201102150333144206880050724730312232448343791004003223941131425091898169280609880632603924844125413953509725221242077842927893534412681820998221844299739491706160134347843146141946584188956393986199896669659202441019802779947997690698167622138206372142415829119870205824191169381985624010406955065758216753100088233302281449503267092922007068804534749127849564311990696078680458237214198305820970765602595020124104405506243385999384456610918518507776690590965200481972851711145142916839967816193058157104631191620986479722231528579615656920745688578482515162206270758111690433765579448348477549120704941162804632553548230228454772807261613738561906231617310416069157480010343441873698633989343494501188579671864901683828775785517526488527699657760741153626207726750972427145354435801182402291057608206840548264946964872702911458655773127707644195986885470229329071603643631444568730299778497424903111308827534662868231484213064587114557500677273725802360505902201593925894739765076588967564290389952200147236720287598299369991188245373106769569312049349624707100541755352726855387637948082775977769396872621365793378593177031178446575961919422644043418924435518792722461849012252377841226727471631898278033885393969626831397827466839303694686838034643935494559324440832658501102418536774100719456224723216746201010219352443746533429414846209174649177353894916848270745735511190131205167625164506339924756893252550457078246458313782200895921947791603486902689410182581793424280073604140920671997419000494631728059840063209886712956188947733330736586951015811892246251414706483352665902068268499141145040227525648978583454973342060084302297556268578429269188995065021629079258397321140117820946643707671110364252906509532919407290335806075799583876782040642612020974280810710486922640966790742545788433131237218987468180338997378266503424314975960858177953856262194811269235033456986823993344682680522234974707890076126803453724591810166533468521418127795746833271105749214031735503491239278071527591674664273888463976170062094454715762425170790518506395010267878736518560739766603748191111536069152187151372745740726586150954200487842457809148424298169855963315112689920607014284098191925574267534135537380899835098182197104577661490950615984864981333028025029300242276512273854389872234705187751455827231456912116842507338115629531973945928572851411049575538644560145197151624146413211291698520493147463527703686985488980388527521012386268057115434500220311320577102814318473371245464019875961827190547008456182392383705828809526145550272275468725286065183621268725180655183840744451476488429882081865676728728544930822537534108956402322742611981023146313262498487062389148182790055860543834485515159932359144860210953161282435259229714964947232799694880881743895062475524728596429480362338570043745303697807018302511070181757238419920166731640622439058840488396877966424972682462667026156427325349716228982422608051580500207701865448092057905257272380525048796299180250357318421748965222286469301953561207656340826586285722386280785677738343068747073715867223309935866852995148717876711077962633917410113264492543300861035187375526242729580700745370731460665873232877092595713898531911229316278438939630703818003236750567218461695869117677112181012814630624768876045926120982548252835291254398850216722337380520685016361812636044429190906944254416038248641126170755995055332676570255038832717025748942871013655285642622858722053397349651732165023978226513104830744704794117790460533853233981120656967471612216279799392352169872264945176675369562937581784861526626603760607722416517992662209641981436696848436800075108486066962837248847814806759422001007187548277626216863831129218408462168869566240815360076416970236353463076935236932279084078608928609223984887229111827875976476594658807042325157594351946657654880944058363408582246947715177647139452816213573764166657335147401388969796151496452736358231708663712256620865061892420810912952595947240538061666839498901225775982934055227981826158133181470069776908915479787935444026120760292460116515873639835918937508241829928426326201421760936483487203186095636715924544955099528436696938370243114257061692155180694027811133770750370822899956569008755409625389259679999124884143475764374615495245097446501880093031166429179856530093098724003536225781713349380822905484254310971612056375485168610147474841473728854558073768985080341027867419843441008778705265410824304549142929784414948580182515276020955997301908514048782807629264694067474066309013055148583190536056085400077114971223693286377340642002211875302830801539658279861465160879930566080182940465098026219166268950562219672580216929612478767293406804840978012436899427839565540119862167148588625866171234210885287247287758902652878595734399068552509915898925468436802309892836826084385326717559173179567954677236092821456169221809510998510268039075648674926501153681872035719961249899081605946449436089877000357553199023083258462959520362749685125731635933183876862346357066605277580180439511926066652846431322399390753650820303240576439666647674737283260097725020427395448775742447885292959250501032125193460918098380129001743066152343083056708794830470273328505021834969447035776765551941330735655008344576469103459923815775687306225662955897938662256311769797670945350333004496937492586530678512472170498410514358303851839656695074897512256318184083128312104098517629677134084504259918505784261750496247690412960810891915213233522366485494825968208795484487429493416663851346302829915890465961270746675798845849555309687739459388694728545559933944246589879541341950167025034222446447766270058417715531287927225863495823873118598838358997225214756967976123295950173449181906467997107069837813960186048263193659196670285780210963125125988528995021358797932929955931843761501471688463733742229133050607015350603615715883385296140360727081289070371187243999495313462778903261937041016433728038820090832148770570051335874957601174144210155831414049125036170779183959973327676215515173679712306737726589550067617363349330494096511431513455218617868211713389010876960993094466260615484935306105025166720366959420843449678865952239507015455138729734520050408514104985230949718504928633820643461846103950932220120932677584982307773449850654968124906973123771360022969749889737089321752397944104298371116400359889145535751104139045742254703459492337687112106273708290950882450345484559683996964740722488606470782953966695077262487576377328838553445539161421863275666692374919464655442967236600995468168061804549438105413013470560395647629456905565712832601567180120812662138227972270148629435004772854604061623498154024712273452468334603875584679426215013942915748389968724330899985980571969636988691884854365548470421542817404597633513451249656777634740488671701424834413019272635949850370934154413185295977124144253304800989908394580436710835116974388928043008844690409096866897252566688997254102288891826134735153649182477851098447818078451448917588448730404449653546444584655694552346275368636678336463636999926042594642024627344378690132175023931561797769788954223518879038416726761848763557199068862575837327826939220842168787724159317432468915249435735724587478540019791649584368094303526801712561213624372805132759343645861626238247094132880391387851521086466609110314883044146943137975647526947833400837914307897923307726761156273059663602840303256059088215533595423978387398871263000749780729257356108876909136745640057046948091222541797382187972756098779543997058545085164314951006638468551433004048612522716943294896156261723979702481569234708692929392134090116960453682556058119674994218998339241792511126891714817852803344679358124942702377673539145308176938983560225819612823713838368194092725285407612955443977306798952115867795054735131052585915258723173132635256924147345341001975738642672463150479819934406987804327618673438076246951333443604212066664197961088445336950250865835501609934883052918723354245248461745017761898178873672477208293311928324960190234175678730073416707646381479270899320896645635733230549616349027171837091108499213381265947119811968748953575744502381247467784401567050312569912557032792265403504742287886214177101629668507267791713269636649639657563204193787990127881875284154996122325888620968540645227843096594572167662168588082011581788776166269321713860279836356972691860495786212458838373870155958106571357504126604880482686143718862708123301368707498969519655100122056469277317758339034503900498786762879883123783450269558331163667318862778998602751723530810141923569775802245148627268603187395802376177751403256977716294642700947466594698175640909981467812843652140393149716374216210328118702632029489482144694824127223646925579739552631179390532045127803477516443322790978007209757769068953510327014165418009141083225150109833181189842698393860106650236161815545943151666707609485039364068352136095804380220941575138147346943479709454093341766072050500368522794564932624459832900707624816953888481397001952857746956461314847398213435665894979826285887821308471652656471091445836809998467510467539867253253065231719776289706713455934097431920461448584613528494004787010166461987561519016455123281631546784860715195603969271856798017135547872933124067517421354644540308210926323007754362326174848272901503720904661576234187067686814185917963673931501590793806146341880985102487447727099776309460796560887299894199060539400041434098010699455507922403532764929116829184468758069281929029061852488456065878774953151454923757677271047948999319958061585764512727458113824394221434438568659048858186461253260587304075893681720096580938047658294465016182039104245165329099380137827931633000475748126927176464010852801027107089679152695585153879238316976884441290250176769702917575585306090390336150284422038128364845437376911529388750918357973020104415449116555382635475130625546007963024895466903809514782593984659145811939488287612247226156029196093816230702469949049181657395877812748124714876062668167114307794339459543150677701395607083640868643125830523700251303273370934815217133605424180168523175377987446428523703075207904786477825337962360527804816556642162857812341147145853981579991246126866642389452762879941481507584851194082499164808546487515563895395405216487797374766838945410726037909005090329081583837935582428481173505652754893150584029153468868781271554238309269341210274512716888093508764513783716762606502785283771831976604809862798461451652680359645659783604977659053982568530181260810566774649575482188377742469499341490914519232758890778605221917235636518101351533443388174964879271014098689370141111786038729315301922184296488123020866098883822723902505362713137957289086237278153442061618212200368409592296928380539383976836184767822650087842538869818055829464533620339491972998313884045824589234889272312686309805170215070702237522555891423116784943863507143689228465783947903478030883888133972422426489792286632455005445473338896555836254659287151018247192861782912957446261443395870757082967715533723152016449639998448362969747090444265675807814565752207106441312775725250016990696276932647647850461837997904707243850823429322313669567087333026939292270304827914867644776488788218454378408531814811222109151213493248057853018805537400255005452230036577401984019297971982046850137146747236465026422474610503697250760624907065083766050853080312205711118846014449662732970591007274182455712839568389588299190615259002961553214371619376812735519889418514365159582487888431874393247386854152668731891722420911915827875982719109638064876715023315763067697795136320162653143219559610436513423156331353143813385003134114596439591947035231602412629533400762674849452498929084496024947325859927400909073943207005081175955592195616886032023702544003622801205169634709407831163361868563261429733260280877386793406448751640462183126282210616796763102520555334836175133391341854813166855540087154566258524516589973439253772997467983369645208201277008114158083872174925112405384261440716621352885052425584575397840833175564333100660265491616185536669668661797993581872935106251997314425666161728723754787642810815408442561726962619363611626943494312210099949289221709236588687946719124406582102368932204372570577550619310111537731700907641276811775344771459991863009728827298786696269645193265197815377131189480086134535015434317316196915845021307201875093035721527539222956306238199210469645114051349675464734747135498569453426475315476971403469242490500330661809546800610779344509204096327441316270146509362128192175578004168190142301989654828753906695756899693567691704382185937932492960125217486592562828868363866929889294405144005312121927120472298384801690383633533707684069303974952703034900789216144528756201627178273727405260421674534150281128418920379816605260178997257294997084022395257729396093934745708705374883617404996514974203329466088922859324436906593103731912349832704832860354545389652696092721221302902277001991456395034094023293381768897393208439801301820637532747083742129036133530950616775295864777479928257395029019629482824797835020778861046460084232543314690657883885553630790328767042099537744689230491246061012697966382473819508753112269517310023020730582402983611237703420551135269544643454900624159384779913309624129091551717520046726009454842292567968344084012465569886691766472078583921445744246786806766898668533393028750946167803828144012800283853506075318336857852647784046036951494396800778062211987417320295521235271077834885540855622414069197298907258766268711501706162844019682869093254890139542259279784347443663601854403500625936034580136308941285722910957191388630124287148411371898172357260012227308434058613508853852685885571519199453442247960643917491075018180541841711103556862863937865237742028355118501863763421752144062806648989599598632482153587585350444185334497967343728149405776908465284706395935249966440071318998932763416402070348457581680996513261485797411082544054038692357646980779258517652212805139242439370749219201307624761252378481956890950744125104112805410990332123695357334341603724805744413286813031342571362603222788922479139758843660144067744586670349566248244984731561581007539515246945877632148392477108900132005163900031847232322325616971707211118524864060081531590094553673541143549302106712872237551798721828129896331909989324079966316151432539389714864202312734467699314413294030250299340189305186928785911497222182715499905571797932075856349146036501711107705385915316714034722079877264041778671368336920574902972871963973623656458557033812263116061823183985509490018388739850399325520125043126625010246156320854458953447834694425717620556867397455361766665910748133349250089882037256969590264604411059977634471977777474321199115050552350681099894435565318467131895540013737572178080477478988724071183867920558066938568874255403938448754472651567687597630045813678569345548724601980838932728877588141602119307217161418006247548964822531580721316967330655332581633180881464679052658964975684169696890493551297985624479356872650484735351024442732250971054168591366275877552260493873646912201132437151489779623689931144143599339000158445838803367542884720507427647624292816817354575841608239485254235541030527191517149569897548949511850750977762494211884303638181863392470955295087012337972041926585117086226845884775127265254565516155128062554165897146563193657619171294136590285446305705834217992515423631902754214959682439199952682509567257857428250922647801735349194842528380356200220555535187991652262924070009609650039863011297487835928597159516969323835937345671929110498889005228099644879262565974620263520376296272200312811504400792387345285977177695894675813666210196653254005189928269335009027037852702967886667418485407887085204939119492381085296100868928119590561456331064686365181392844904460577918408068914370042489238559612460757136271528951371803787447911161938100471221513060667476571448855200805311619530335386213415659016946550139410878070958599749739700862460625068498807771220808518316369723539020608008935792545303786070508563051664603287865816533748807074462036845625873120442276217448426569538191283472162023065265829896141038369281645677418828049935160781578439231639752436312978613564381254820748254195183776416713830348108149475418098020163780273914277080323001516764459970342785409786834034383492039911822727225671602312897543979359068373067129576909064767589153373045538190876068113870825368736236718242758694354541143994678391910128364273569116210160988631353895327448543585803740837226032067855764064170647879512710357992401582418224392151424825582096478811502609007445916830325261276416522841147725852734097733898624161078953135431226869779860958473169970822022015155458739009914450590698732670124146142518155088676564999924157509992149141755035129869771599688072702467093986127212498953245563701030771805193948058732591771161943718096273445437387443709313194788118102836796002765218626682524278909620367764127297323213869314991779274304109901010656348441796333556641075357034352495392514088536650507508452591190530152707441287166470758833447551942220820962071282618539851268897171251520641718864656185488896801517813795460238205697100346074285542752746305529393577886630621154715755610976248041182818125792586672616660981379375305026565755907660727671906585387838162854378317057000897670709669919088962037648763134911336357876318687618199526340991104541793919186570905567093951761709945597073833912478523384536492151743646164789998419266765934086659706819192870456942425905521670897821280514378093492239355807392559741694823125608197244114630611491675577952230041923264049172462106260900584674630335474867943660641621107091327534053105454833951623171116843171771595035048550083138570772418008923337508438120091472114230501246945376032902052265763166871620375262060323196097873815005155513037399652630284895092221085346199645310666406319910206386522569412338316127447279196101090181965235741560864384049422184871660545660830291437079138168907023790722521556923481931787694581518438486692518532468717945201728911075067735735279028664665632013557023351268587362123816936207840835279657807481542628802856659189131107947430426321645948223088793303912740302136176623869631838653244781876565582463966849573911243636544568373808701797975448330254414997531222318514176822081354635572797420583669171969334917153014769706644583036625433328539588318251667210771966466097112519349509072397967042174304591346721305945243040395134410090694416824613938943027278306427729176277339330368729151172284749185632357502085963223384640343537420939037778825250971184862412114231900880751547650748515591624645714091486468252200906212714704568410278815174570083797960592709434273247756216517577071974096901847230312691413687690383229764797619484570389020870128169749839513015827065702353973943559418140478680315356806307750915070047628620583526689626273946451429139125894312778772684050076107096072774113821980320035649516162565403960574874411907755943978629564757674033809588599247987503114721705789505531510130963521999993220481335249402335354699330706160474874885188085545290919859740476437666971968844643294737856110776614828813107434059396555361374777281166349853017267779469301957876764819036662401967069597531248114896021024340982608173739268111959744887814937915506275338683476095096453097546209672445560188072545681034137651097966861144273577869163063998031614867701376938064893052597746429398018166426808675177549544616416951782668718673062671533189708949247833379912272242982139525768629767199394459215155723363502896681400533205606146676058658378079971597946022875979808309969552411180226439680098738705591181889542826253144488346651789548805584881554941551548481276004524647476488514191019685747275942743662281630530183183959811501231946327255299962060821363863565778850363834302834083781244606820569177821550892602789417311514267627785311385840924083441147797886283322118771107354653283009699136320631170370706002856957091922298691731607797139475129645627319012435531240471331069393969049161392262584336016033446836114090563368536418108132038893324178222994555006510799635182339118195679162419604469557736817035883396712435626609690787374745176651717299111743810707019975803317565943087517335363477452132666314793305658384012007715291780945997440171690980758137283317610276526469368636980834938389125135937033250030526996880647982111985332796173023667971675808344485263569084718079139984950507347641518571860575661364155440969884627561564846300228019077289859262649373830473259023420403223665026537249207819945210756648495561353112699681116627975809308180535413226892099537512155907179814700950923595181939250851800474583341822643238759464681240947800563561189935694770210709319798945861008780471739752732675842513309608961628617097068588522331110383077475464055730373827930263340974634998590714350427996144882430891705119836716511402131737542829942513663271669173642189251914747025646218234197690387923074135354947925818487432104890757391750083669030155917712678971160970757146925407206559849339288758171393704629690739701059317298268253276904544554689162514712386531478672678846788510365880983635756610210581741453836508795068666693438504739931864332566206841071664468212670124770646237970431620188353595868805523079114137050969499348214379209182567580335244960171329934537873749363122014583453618327434081619231447269505012152524942810912563478706610277000293722469536962193568981948888062183570367187367852358633887854557939960487930035095641152367367938829353202697644191328826650413483409914073427261292165158023441745155426425410044013163964896254340330172415036065552090919213676621498103182077513089854696786729081392827982241155060959315978450736546641472681196765497314606781455423456937461288886192931692493805692769163892298469154008376099557348993173388753583145878779402600448786335688238197222173203515455907077941157806796313745141123229287180592635283853979889651585547010789866751681339615788321141237982286066968696697277280212658978430286470338081944431545565790565047847680793998997834533647559728376535009234576695594178645444906724743530920757984095549865857362493955112385060344879177834436781748278125990108015508989070156420943258311539437995368218407484996472153247369196954597789843508820043838995623016172191491342775408878437838784239263097514294577124575577594854555482071094758284458544035182519688190645010562281994954467746635941127649353527299381738395592427494294123420795701753560656956035845982474801648317162604795627281328661108338946479103558238700050763907322149005896262030921209533861571621508291881958597892502485256835796583834406551111491159697275272823700152141819901191836522181395315759135473447455784969312336518236128670727597200794122652158864719733728343950710298816391309992016103172226473706783915424412927158812445389753078472272448676198184696590024247724659517425926717276772514813723561738638109572961272431077667450893295283915287635515342807239593280024010583897794112853105652730239468547650324548938608628748583181760938500007692118787544707602443074076961478811504841540275051647724691783331594415151138431151698299336621535556115913701660229053156499229949805113479367412507510411586825396499026382055168748964197035115560361404419630239358678444702056225896222756500152615736075843443236151929106917349915685194028999585092879966018026001499651025832769080569915942588836600485294009496785917010066096816974038044821470982853391680431075706466079416306149811651223475905959355608287005626434016074077615685742383595137059843018082329271556601990414611193129893418083411102828963812368886944166614139559185931848520002601561951563882835749714626852229369909729062725553050447518585538410425923279608239715142477817767720355169925570138032759564855382165803756566429750350630202874859777146895935116531630122198325852098145144012492637486194873694236122359496707915654881705161530682506494351301563821202870299846214644719383009334205540607179851310312717466826921179525560917396334825140578255782697103490113397411117843960111129748554639981397433911993858582639759615890023924265668789721325177855717993921019922640233865386151825579587190525700870614717068962491606829934939735513381827341474387546746046783549502756211200107511184733969540136456921327002024554441706167270522411552437150751830132423111271110391754870294763686690617655653217423793923669337760485991741132762279026336302181966811797070473201296726916625365406370578610288281904388411572379897831473297402731088869901928687697497149621582906740427565424863833604489942504025513427345439779109788730428411827311540644488895342245504076473644033634752428724463820508817644444240044994152800526113299096700967335946945711616975209841543220687469830700878808754059709267182791894915256026976038618618204717790156315780681503390845958254011496379793981989896245920394221357514474470956070328769171293113550632591397577134620299009188860162037882349964544585021769977820566584106089449787935615494283776521306069440512196254905027125906876035144383208593993689233424408874066958311682791253865344809184333959761432862899721950006352319237097766085135565897493010129067775280890100211001396598909661684512757192199326001659516142720904994344263923591821814421487381120593663075285580944428730840158630431889399357503045710541221003589590552052043659505749051749583615578640542186109925616525565482959841043659880475837059353305184551103319477652167322309442391358959505547719794536703438211936542376860024006378359490753694752394960551773154682286867389719055028024451431813139310665194489654640748478335641542478174799087496862250549163769601286972944703277710506272163906540141439898489380931231628239948047661793726960127676631360909170799188333316968230833042256027673605314436859840001898822705802477634067008897912638869580036953974792072114433454078160739060674528893534817808489731478305402436414212986089710730198770560276325494773904070025248921902002728752788057772425628748753651621830937583769355668354806953286398969148779987844677297705513742654470108628742882777652798983262467906331349108875003623708684643514460232418349874874144918672058389563564741487971740803032427914875982740601553822976325142298077112447270458847301585572143504435206937475830149695757773569612117303143365471675918915271800896948935130513172811712407562528712925414375933084805071094124146646529147596175267326329009720930072687036575376335683496157495048862941191095851924973959872115286707904574485287355476129997843436457605686460027583211528135897894955194944537070969266962065269181060587307409547381004908054885447419990850913504761895243199573298026858064288955044469171410731749685892710886397851163571789386589712656434071791342263089351982308243375580434477348010680764319567642759863607358490338520798757880309818236478337798982220904719532941307413082608257404455061295013682157763347317521346235720225535827097012919352286255845670503931380696665322302818932365439511210182223464865007093681267126083235908353385538662735698318199189051033917666617650195896970547638519200721295944113167258840236036037311253278961865744309003273993931117284454833852219903968990933517745790599975812429569905879130585084847364790510544694931921999651066306418778086767451022035399445707369988011377166757790574817799524773941479326116653137953351292847962335218685286836289276405426513274009519101567546223105459959202894494331943812795106174544623542793623315671111111475366015676380334789116493102476889076159322306256385352997260416947492804646031477988481732416217885526342375461055396557170563369611563544595151959142969054600573188647516912818456439038125900749168974302767694580487661008480966676202870948215162018893401389334136834355939366588548286006922209262357475703818808562956046970030286453477967441348094233012653539287779773181568007282504616281636972629111835739855695409150301261399739604457104717548187543784143793146341321045897315397065669510059778733751796958107471636681443769064477232361092140594683451180044002117909466879287851770799655974491944648549781483687591138535108108986706813179237645035853922083450652697879951022936876257331244820814524831130651333747285528579407850832240436473479971655609468013531727028346267997396084256575568398362040676803155934352371940729377031734029993658637574497692782807896169074866093147906251307195665940331129037499673805540557244079912075868826567877982957338861572884809006218255617685517650355550442966278386800782346879364879396048596478480312002515662275661801794483160819792687241235426886934815190766132706171432592134763970450836631298701589173295100684496515947325094820329163129749591303264513422322594622437002894882980653001102030040523429891977603736264607929645785713388962655105027718980477760283650565849914075777171249830693992004236133852179414472414149538907943609844762611685959011203627140975551264489980536743855328500556266603807327704000772308157559033060074794901963345882149379015292947298828938811117244004391500998347016740012832420058921434321662104288988650608239024747446087418107671189190698243202395941890662550549422819510725567056444311082652079875294063717393080562215141621224323521926574432588229670783712146330746092568665078440947133988854229328275759495821648147025026344536355893807962333433360397777332714622559443052536980842200160945978448535544651113040446571794892916112849026815515929346614205625916398815922192978305084120811582462264559807158122119580273868636918254331127090974664688706945483103630154760689253606715795998653143303547361403834862577571251361546092719807100351710277735620963423073669528828474418686126565907166390599870962432847649123490458781969941565516691385931965879973283555004757010189680676688103120213751784746324459574274353567586887193617177062320627879369513640594975808711413730707508671928869755000507628073479236905433152989950839543913995750852267764557002583450273348616522505625327260693786985867841074315655228492414918210176123997811948005761907962230827403624797929326926893449038839274934519143688913200866482978230470347081171182258632286111501523227703676208245089411926201266889644822845182165492217258489195274433603498780574392411066034662561071067568453503565258513939411722918927331053535599578899988608611983173355227907448210548065048162244342374674647477257729882989540835418706964161677523329966789374783841623787385454568818842527548955681265135104664162424363745467246674047124331464275842575202518349762912479095254084105040524023826555536370537426732736176952711780047323112377506303975774360841044708628377992750708229570357918614408751530394975836458720834836760793366399654463988115865661438072576147339432116475092637723980525742853074675210829143234039562963959052365199352520535986913622856935361012423677495425859830365070580509626103327291243156613421177766396565852655112343734975518214543443370591312803254972543495268037778895758393589393147559234988841621840115431636658098980312910265574795683388654360153760422919500058745115675135100681915730539540518212110514560533116451302063530234010120457955199551444214585394114036542833828723796401175054195047778377682554900819978579047325381945529112890584816551298514175022077397154112423952518471958279249205566360627874505579492809583098803106205879143215687667518777386407371697920605881702845112478614703784632858030679498219460705109804204311253013876525105402122097117495389420948358061850330312514968430623409202940312684361006827626198432586675843770563368755553878198858810717420259202245130383193898692371692692432748061479616198774170193496037830326508511184799511733660470187158418008917786665258662315175433208600242804049390965178231402489288730915728493246765009991123185660420142906016391697920403687091634369569713880473025354640275865817745618164503903728965754849481989880386911039342089872919030813223338477438392700720276691753558343729097214921913933230316914470592577793305494890280517756580930425701191609854230446029469197672848319138089408562508656156896532669915527365064789033341264700804476504834139472564247702617496475624075305835247002081792961386906015541850261018314999517706092024533565793110973765287364339072413094344046290988622974811995628121190220175888221551138245354106367862926984185405850398708129648969208304003987928766813480937906424068066955855903937637593963346596723548633435694687122218724255450920522784745233289262657067046899173965388265880907720800606144531383038426007014534105923928433950957739742515328335242904503588810794694107264175057662087528662637936753759392774776459048826331651163076923318762029192470606795603603438004649251607521395606917954921779853367057212348127726745233308760226686135295735609052830702858929981839307519620656358707307037534911189485456991475647829126152937260060515547806449142252112469385248825866956201273928779238966706067781231257623810960063559990421067289042573969793100827102906528900567261969010466540835760726515502073055851934976522705476104038015072681973848153416867193813702646985303256804519535073946585483149788874251590187866017635004076781518102755211033085330298949263035030255906246701883838648739249178358333267602200984842535120535324022580695995324417566443881221089927553049098082179209307458190572922823232875120904767749459750375060734554390632330817547488218040449014436731451572976188000580653581439470919742051439760112834927619548322031768236033803381930127378357726546295249151325478443240028335853867437923901847309964003502680147704169341630868689196746749992744074234365639192937770424731050875498246321261070498708403199539544060566888449812088210498608540974993887143402220753519515016187083726396289897247653188953390656295341187046228149592792861255730209932912198301021348383472287694494752031090036099040844847673486253650535241749898358684957046414159975546207824903150641427870968315904362699562180561614235534377993747534707908645676356235110307119956831411275697110590334535508451964404780025772933760959763882435515535003311503641378429434769445248022980460509191455661117556448559111302024650584293724224717591871457755249083037238942426685266579174899049267018732357683438593928768355999706724678944046193060392259312738248454187332322507643398349564092232085727042954785665537825266648734200594827973749304689324353168728592009516728158171752731796655284953255767072481571125428509924650357576782720323161219732029201344530520470572225841802689718431471591300808512053738277150801911023503897111897920175860954401694257187794509586281657142461136465726366515612684003968680913622391646028310343256263784383144762382815752508683402519490444453711030068477780830657573018736439963316968012512402444804723534763358839042788697053300964981598991554952825662615512136170448229176254681157712835552171850311424587694475529905669097574157939470239232715648610559843326013767901562448186888254698608820657382215403612100639802977585006307768617020782041050387731836816931550478125512062590208791210916083080164976501182392237400501400877782800250486347970714528596985669341326830672888782259136264369536310397906107559106985524667239991817546388827987663028758485667823584960324558008268961722883920777915174265608238904344985454591955908528148032180810476472694406924006337309536067123735575641234005388334072736099559689421609787106813079867368834697608301033112992465637019609165440936122335869723941516415263263327506534552062375379892938503774124615648606220759943083256840395836567241552964770884095710929489021359157109124575655022438389109859448434667217950003880412014197231976552324612738239120285365327376172690608401676492459630851161481835461771725698691755078187238198113327119075581066970173810471292259712667636894989094047199388400914360951353567459039434345758738049622297614067818866358176177280840682184476492364766675440591403951084016608774297447091582131971411693145622492846381717340161513214788519369087531051969249342311301786352072456265466433144335237511738909923874038993514519860514883458112725370741561971200660277683500167116211545098037969899125454532290518353534461845209830896205698849638856762858042342540383349270340956809100612668508951515800386061543824312412872243888194554251253522336542778262934661919781318090343117093672621396862710258330802670592739500196080379935027608114939158130855459134979744235731860840261594799036212232617631317813652012482246192979931130536892819565892253071642040341113176258602859859564539742241089772017046212598343448304873369877642901557976401969562760372408113072251600079891142911804191356552218060399758439711451134347346129415363711707989299143395122816427090842031836060876745244941040720710557159939727901962573230604406154120403709542632734339370062436488764323160294852195383105765522747389520863437114414520934423232749381739945200760670131314679221511302854935988077446759846532179081922204659184129367276569447197125793271661873293971530993523714771900185232428903034573730602552242739315265739263155367539300212908298254002087449250415889017729098075467009243720932914358318404983267145701721402835702489243728546822031947305511157791861076320078742127102308534964685136304298587595496594239012497108149765890009824976448995898167771615317493704601478597700494117409508598046496468533555462054447759999970938187054680982123116079103097617147757511155093900789903338548108297438772682988635297768716524681130647680612380170527307239197649691927639780500080206581211061436707772462243873286665292464055307402323131987831001973492708097572201182840460744373145835632630744219376884811469693352248429119634693754500598409796635181319165342667407498165834050048131503628059904151100053308835834048260232977702754720985801964200731783540943360545801990477352879088700160268514880861335646330704635034680938272168644621603948406917665280052843678134564691603299980302650720672001569210578881697859578742431656257951009477419144361593303850998513994775475112648194469414282390141794982054460692179888240853944782415319848362525092544675443922475896985898801100841840787455442547709049656348426183780952135829694510807797749160635320653357480224234109346382596729795006865409570060291231559175006298790609821484432132829997093333577105559652687515553998775922028104468708743872524528556400013345024102454506051237095417294105234833374503481106713134444649526917444782327385627027674381946705649282303859930750329780731280601790477288103044905338961119758587576078417917181510145726261338924592700954404331810251559029145071476546673708897531922540230696556905745078502841120416560888421638885247981463683542240021831609746297816174102170402013475927579364507932813912884357349876869004559874752733187890986346384998068724845727595302287611319075910826048146992689749240240712328954843397610915474041353306887472481463325033665780820499642521018745096386358991684777722125273764298165738827909161841887353531368094481681148906061123059153861055361726496912240515099886084910689632083851407962984982972667846963294098243655958364362699651466073597149036421125271494971393659614335119980754053463093444080934070897824762026141381929245002259144750104101935602977786995075452819194697557418503679742821373741862393837759851712368379679663794952796482800732064750239295281030810045317561525129415899127506981006244371933709401682966162151976952020321283336095461386493344778607964344494100324225841230155548709777509974614113682002192599819868481574863303499477640394100414725569753761243728421681879827664087938751961727918987633969527791829388657078515415325333200839480477364845079491146128620810173866083635469244771340354253234440676115677552822053405419707222724803953644122846903898128749288853029913889310930682449938035711503405169902144389213702354263352078417953292646941998205990714082402090868971276380567954584520748612512555297366569977081095634385325926493432997442735606470918597317087224732980200737706133773201297873261431258879374804688121832455931806148200962572440467746989981216229059835669515875022481132049363425499987847019391688680482495667106177950677645224753541707943859703794358995776508451378175250509989327000901513483011922692233723014810366360293143061576086887840564401901820708085103909346366332626766445050070348412894744520720648718656739133362449853758606619334099254487246272947735623163333606275979117347755271431190535527226875155574750571290007658994396379831884772192152031770863497835929947961801012264975588216705069019935441848404961994151102289282060707761158037418064848557478484297723795220566092015880807674519580527228944940002055837856035113139421649988257275275907537438484534140559170220598931324717267888544975538562317302203142319663542177404984931817472600879234841204194943060677464009331982539474794793291722024997283865449292325986533103324313918394691628942479261328895486116203697412715421820957000103744514527153817915345253603623585570118612508867337088954303824929369270793130005032398068689857775004763780954997679155088325920986381642507085226794698121343355026437292443758358754639547406665038469124879574869875537796440487931950524467401109283510525001775630160254393588991736713857243770499343850692920775277695007813657575613603455210117701027843549752421715267534455418662738779446651424865604177909322079616760216264036157503008333419026773689816398270726848568311260309929381721727144950538986784910836838042986448749668450461898060126088551037202075321111939112460295282595746616098262257498931378448148678939479712550710568389242683811058465039603109438532411155005509843926854251661938132616626983844473308383659744722022277275616152364648910499531779136831749588520414957328904026295688689848928770706084999521785246706606228806170963962134485415687045787488096438507845723756663700125571440219234810546965339736244144955932239239979711302251526816323686720087029241718717829389002469655973215671220553294649004993404606204559846470249183297489112875044235277411981237058620399843909354090011625631197429264303440520403543537992314868589287149940255357100107101211011443437425385083789155091886106242452898384282203442257226916284437636055174282021355447070891379098983647965218559529120566780403135214435629513198277335500829194038634350849812422085632099623993921891733146377479387998866826368104307756434510342096359259161768493511468270310239095250210599503670332864578981517152048435401292499879125366530270456273828361277759243712541569401302509193289038302520195609614587537524542508423118353087585581245497970418731965090599790172341197058747659519261019451930092445941372968176676276181887091444546338397806554602430261074085986836628539979151589077407920952390300874916990777944729978093183889623147982613433394507800252787306992937088534166917863008805300633284055730212612726254451769791113262928968365087164356853638744815352081645440506104284667851075347619947785332601619206019042799831909502250460012706157498746078592999463752185342133487656515576336858325744665790351871279669718135648738280341969531969793892730859323427194804706187173326751216198749057466126113158825268637047485902896981121454235431120566595210280138203036820845307885867402474102296473942921178802363213044432755987039696090066518376376278968098416570228281225038146801357822859555372218078403226085371632356735686484989908497724787434207879481897420928805931773169993937083516398086097257990796881074142458179009680193797003751183929472054668531905297594167322365275099913124152392706962985108668760375288786363400863030648914032149971777609791630730330854092238395498205908834396069306743140555686914339051427552252735878851737458301594843229803206334461096722955414864797885067373369166301090351975187190649499754863072083217958971989426034560003837084850558793141103952619540354052586904296618019255816293431802550170114656068326616520518863849502535129058302856459613095540794421468664898634009964774291702953898992459614526793687801438780780541163566788317656616220586695757834071366315587981275985234319575750199919195224781101922486577303885914584998308614484820791499997067959574527294161350954314367558755557245934244195687301848807861371190232872184027502651968475449394242964364677299459311749185595485208896174626642952177627544149136394716445149003326354600639019766598401113498648765794796302011206147134182231416722132977740659611996758410931209311684608288904715705134519328392795964725679463219832021320794488574814021644730130986297128436813817703906389472694285026635875964357340698301698152294964828129889446684190750072966598953942835971443877398828007473340398248833131840558558008960865621138588943465536890633607202119733887373556533823157524492055632168975591610490151275091276259618135527431363912939796317393313711418013255023424927446400976518769831837511915054196748773478643396086890979815669812895229919538081243427504364377728273943844705228713067892233197982299277778032992746635746066383204352923846430480249501067050804317156868498885671466878880021762308580213782679855892802872908599099282539881582145750326854911428410969945537312041470905546004620396887580665212640696642877177367905461756393051533719266724212160052154483168630528289222792038881275540899795027530762481457152207694027191364429143819471998461343842273386006536509395635331467317598569843003027687826073858268128546331867184991180829541733135843915973370290912445236336155451860588130126766890080815970898128343229723106353431401629154197164226784447474750327717980003532422021392964091626246759174215641194655193877420280877330359002508158460373881537126995096286504888530031236503029741553158905462345625155926406605354169673707928668865320599764202115027652556991934782748961566427102330149444481426206503483449449827089597870365591258445501702630820509415655790205229581913417989593291909345840798359170567601234978964673184554477578293492625709599490274134981440698282280380590635766485550135147150825354161838883744023089725699679266558764859945326485067753491460260196374093700162246609064958867606894456666382556872512369269841023429767615960007600672793120813087056192612846338779144673386779701832560676497554321979205035344036701815393029598786798149188805181629423201326858649843726376866258866668220205895388154857561427462477926382696811734339001605614148882419795105447118054002072294085221013671013975392488650434539902430726385515262408053474386800442269629919233508497693160987556009545258174326355907365055915777947021961580732923097662824234425538212852829708936746180346058738689586437826732216594873499772227545618905139385264723644736335423323529540989143589443573538403998144262497029441644515710699419282342647742866390024008944548180815356743096789306542025431540358838895695171277928238047603532801521138146606914114993331074118438279792816041654355641551793439915421488721802970333557533626109596181800954899628811546199527532376498966538729189112091942313676494215361762844827875887877511381163221812310211379285514302875667098984980333098833709384258245938705879184675642178676665223554148830926262094788001342587781848843081142762714246933668666198753340136072202508707921361139198426612556698338410611089513924541785056374544495028666620777091425729045938331393088381854032840416285453819592132724775201713182335882082978518933200254149032553702328531160724056370371569577411785068520828713344287341017546304981973636140152112630257267109373090816377839295899616942844334597042396915511967942354495953679596553512443730404755055480854369402443713794434870673775981738659690174120919360054888829982138470963803928305832485696753645850052362699118674160863358187628714755505864001601368549237794848882794974864523640225125379207401522568845586476739873526537239322593449355796573151200369666574927685803167710479985118336829457850176294522697756667508679120054648983795470932614257286022987351675935673777857944047452580249198879274071942526970167860692564718515330063417457942643961396537197825677962922329777813235478936331657050199130237693831096900691394061298865306818110953997758486702352362413195880248465749871336112883447766753003689073791560830051779517901193930357848612242353344342220543237828658279648525479741936356294512445769477640085918960421195588308690229890971810013311572761381450153831961679776215501065874912784861158881446265541858309102407591789297912991115438049593211494235018914155355510465073566926939745101294783540358202309782955938060225661415505328320758074657499370293346996344977403175088238137399807092361989198114683125363079063791409486436823009614228018965596691155695914012176165462618770094642767215664632027088882915011061251552785278596390161542626673367322026922533308766158104926122598323381823117359892842355973384715840912229780112124497989006033389371441960613384906103847697386101444939356150742716274388850249541999261909025132680880579482546005800073096018349681206749060789996130843298742036559696427850848292577283147297820383182532306534576983800859965978038158784509591937439684391050819969035537534328719377361348476486729457081858772757262079607799189144046472789277294358699145647502802374470574932776746746364342492959221270336279082412543045695133640044449372956412582779713674298342763055644559508358941531841210623559829186852992798767664775740995989446525534859864018917694072939175802245757983972033022008592958148550887470681501009592092678582003986516429244745217494614560678137251032095982763845188868704692214344421434281493212307769237400042410355218768163691689230216861965723868503094899737588385622642408930172389903617806939508997573433347591256732359726404467072776929192120912876052286393942802878809276123143086454516324576278887586375417402945144745009032012503914706156165037981698530615505382016710430308727482455478469432050902482320820642759284586346945569805689880144606617687290488102814123396299952353898600677756723992423227850725817037244412550797166125917492893741699322542093067207985080914573303012394680339606940890854961468042070399249402134422533299315045143540065508103002429282905978283530662461455693724174727265713251239835716641952321870029633871422415148203487027166627642700907152772085688996545797641786520663252011710977992934127349869116565971296778920135710054668556329269263688156321586452641669655973063540326625120088370887648431174425160750083181696154895275522115789185637837995118635239832424012137272809103399064688830762523313464961523561216761284987964072638554950864229138167491619628817552666127529628968058043269082876659022505453263644774120752013079050137018926582518603869319283534720662340789931657006283954601685378438592978720778257627064785697255126949482048589495592607574101338210291575641117978712353079769097008658691745290749937219607454581565947412393505397609384624194989848460857347640988146072031068828193788275391209710297567301883531722363258745970740310525437690988503152511072102164997842280177865490481084454627142946709738234846426871671436048691949644322140981399678030627927522271955577013373917283410316200243459767515627533085537326614317590489516445137331464785719940752252487190567247228863536346633300295584046095736702596358844347251899561370134805841992444570050340408483256453445332328739225837802781031712376087244965109099184042245547379707594118236138689576679964058110006328591075230699233311029172645899594041665625415675905367184198924291992947485448586602585211811207198542792820009453579030418649643641268952209953614322910284792156333805426139381146059011307234204865386313049384944451618274669657401832245412689619034172536797281711548450227348704496403432754356264093645071778512668348656590428668332598524246782568742611735581774755150536797704134317272099995982682373585344536456709093973332683374974173465811849109208442851731772579956746134152254598542712607134320276309198926351154664435486369238092536085004944125544070637606204285356146257688497109124065931180363031039744552671637068035120133760458788722195900110175236797312733715094929193385687472858257619457012304086343363795608211389083200204748044510036667571163095379543950433843150074569412627106310952013210410692653617422109825571932347844868543190920484008664101375609317197230931686742644897622452936836752717225133840138804772511934353755460282656784627758648675095016619459803674791130964127714749806391043658582375799998938082351123262646525399510815623336004475401652289645951829017112410557519358535424875524830491197791563130446017223802524560968492618342356392022489654273198255325785766664042156737997357086504629428265344301257630086333317577294906984954313881699042050554359184647609351220637312768143796629356164152864208592943213282344926432457712545110399804838506968763202312961569811795675760549985624020094577989307679203795340951090047129768210395522081603833248207904981026667279315352688697137271529860200437772713154974913685425552169144106544065934389010390440947556862713574570387588100058859530569705855866477155739258163078821546894007638250636688622499861436190277623754148994241195855588074445110327385485419979048161687418676359736129878261492501000693633078681783544564613009141253343228307597013023703358993292161423005965870055876602808175982165916732182700049718348484159783162267434692009507054655259241065551954285149779648737756158213449414864072638739378930574118349519663510921704567716336080382724472099244259199306047900309603288485800127967694923868226631134065936606578818005608532360293194141305526903438478994141128068545991051167519291652507303935872927578070536298626489126187580837702113640366507338733772074179935741814377169877175470040671786712578809300553348498273879125601546082527017122963429011721883515460033243619886211028092487007281795467011891907369385184853020054488394961810604092650991434332100386854809074786870758818222235056328712946914270475537449988897915857335301390160220253234456937497881803359193588799565568589475856360386839049106009978925666180094862171953646799953869588421241077201940994007558528444445561321305611974472272649576031049980982039474155904080204766793590565826608777441514924409466926758038369223391086131737863002288358973806022096404208131069822713322453478249700792951129850121768999809325293743605160015492295131621696340541257248445900762463616259594376247602341004447814230463457744711301335488657049070529296754280958522664204327017832846090038710762581880804127005794364307177314257055304928080806823801377095457098350483357679501490359074325984110378827191799264538408027657300344261207988239469484031902437534446546197617544286116113035121231103764708011288352183208380847587770231559224721885792565601172015283638347558767766445955572673508664040092523692392030942414830713977699051579280992696548231941274137222693931779852365916465691423934978795057145156219179018692469703998217261358428655700735132271163670249823219304865783848883604516057729236043040530050949844758072449085381873533660792001946013336777955465873045952136173757527282160250966272289010518625090939915549687315407309007170237686378764976438917986121388008122125040119684694054140481386815849312802396005043659206035779596914613104865671440591722660303008741229745821241586192361900844203099487470176977341227313625700680813014732559793505502238565693792320061504575029722376404555203572874052216456957381792285021247574945128524355114183489143562009575261476260481935546401790797478503984661891436184053492593156743900549476879336304598922884940390285945836802114517765809326477421978862191139526164623093144352712247272565194293972654775506783410777299312902891060652741715564551015781472576234420440627350515645126040559328748415493857941272350912123687801458004654067738735404471791153196812759469789328129476213149550170815565226981542988587663756703535500324303467971852294084607250790065621536170159662589417450963790049361580340683281014725824223792393760412402400883561374254758978036013880296678203286201851747645565315583831805065435634731054350375873810846252379036393031638697113771920082449537197234781373813534262122580577651779231297422106020564839318819455072212967712224176840780120964844429072936977652835962678876230813877488044019393877015512738741641791685329524329831303753895995332600775914598286561465269329828042689102152616558414217048212014119714823433355745289007765701903199362943838168700958653612066827816560660264065722781016942902387492806434479742483953843615401615260556777773118850085791603065950427188637511567339398164323138015233752277429210602547611549470986407208491736854635964296283128358884285566166089043057226208450496594863639871216364268469117613493385925182957729011755009061087468541717845659358099835702681683723474836426383015106734830293177810116969934138593705659283687096236463129025537497439398455192686523691144871267196150503866154983740077288496201591439443977220119058816254920098451299663069303395501107397348599419188713758084514309218447607526004461407862609818428165084140222396352881279503974175535244585635706676195463840483381353570094803622366059462667524521325952015658204783065579307680494414756020684598011393512243111475071949050547805077021287041721845224308260036996605401751538192855865430806578974737501735977565238662874890894199944499478369584349998108651070759975486437056085543565577027473288041991644841326230112515583703413678003858841092296798806855444356645095762590736052854278944630074464942332125554851906777488205819574501903872680567260463255742973194842744659361450193927550734106210964012806959302551435246350625167259798612172249370847542450520232733241797306504981393759875178978292802431304284709934139877730330754888593092671876835262908351750715421935655207647823900122438001730770480779900277345019689858870502662256324807434099120639954297094573706642281222913923433799649055961103744691491858918542491568864093981974954495397747642576033983745053876338292069678561515098691135314390152775747691946627954845608349482869607266568046245967813711949394176923855667193231521317085162118083188912661783532041420146687598267387986211380311386079600011802919521608826885951374305851031002908578044184810962360499266424065675615139315863019247757420082087210692449911079527062235398797786043393744545458379635916848253905107081690706064347453141948066643088130306463576743673527014212291429781097534867760531532484431287435616427936508893696891456272740516465925761004397191135856767158462657856460791503185903799717085602060723352200538688083749560382353495385639339185478861721655548482226563975622694368020202807011043774613646646186620527515890076634266230356366526077531124754293237327873076156648868154545433177999233456511787467597467218958643752883996407748532994550954455882633284189900814460994909293972182670626773316661705820394839817513969949548363567796366366870222518540985743407642104661393000234383344033616503152214442136303529895871089076347114474618166656035650935971321376992772697004120229305811111580985299084491894242656126597914821483788112984006628009320616327176716296704890637594907494182369383004371759499192219324694497149844538468523110383367389685003622240184951578348822807344541714405363793471304108685085652956676375923973650361959376791549825031162909925596689627534875905682035667916942375275598760701652533766670197227537366539445592127526552225789208663601651145699013544966991740387228462750198958562627734394426471177107078842424725590097150390859774733129887721491216365191519287992697905457331869806491529863736587703024514604454208003681821953530897159856875141298200381981156602073582156287664195058965090233720305962535067957924497451117063772470540869872703229876073425539323484840709910903882008513532375381508805136941520520511251533150578288619311914140471706826303987524427546640435943364502654413404966832080255300925392202115163583471892724290103415193130825864133066268614200282504895303333777233230935522261465210087708912699809215943433725950488984362643160503884222031098044198755975772909440111662382824710185951747434385570752353267300290800011156272255011599451966695818034306300563369833873757523523839657989120209768878993278743167438896143121629598061823330080749040933335649781771119254844465006840616748220729575637517577270117830872246465900237856233054273268090252484278582569845934494278835169804963571532688403946504338658819758695866754860375926030217957941693341553428731375108764783025347337208965256200282983904907211795664982687100548883960180139783377416353851133104660883746463556156995669471614132224688890323530622861775479803910341467838544089597420511284985727730000780762679009967614961169083753109629992824110475603205965494356655819488501099619822325889620451242535649851611539012083721072241789801985109565684233302923412497415808615540539837026794914182194276245428716459675679442876704717449879014463349051890505989684209975299864424104306005099440933177938823949468114010962911049394715385149644395811578891415242254927406752424054950878722578443086592560475705335581285310632005049750535891758535169536760498798093114976184693943908734272750387799768037833060927242075116939958016630798385589368394532705499783286668204671448358401076714476687094845435619186661087804521808175330584306763399812348055315959991056500407659201810788662041008401438496681532562115608399864192032910996136330292272602883894229970570832913391431791824839935472189007945897181649848701853352331429435944488634908847641581854051116098886231283941125810301465929412273540363668657005909490750102691803196282697366450942353464212466238087898525260763065810521724660743720847322361848251591808806863431606670780858069837868604446287370087900621237135285195156875111498343756607794838568041808024220247390074472390081835549327530026833677913234274925623876638400205315846778815581015274799828791505384160855737155492527838518841752730066202471270732043740013202002950507219236294065945647551001902122569773679274407436488698770244420775832704585845336475546133548353457526218441645894716969236676616509756364053226966493493780311242873158746688348175341243137516166732232233263097835320603283719703983659822954043517087968947810507300261507719310776020109180045317798232137784700383896371671727501420852072619523653371914985734220468249672087826258507315543036933774189492941085300177243052255696227361297118312594047004727272570602104560563182165283942151987210448726384648860029723038953098780543335205716173441255257375808480261318185800249370993859405992991664868060553960476307327304019198782685331018430000685511790290501885939565519612726944582181300006815113781720562712903747409066120187158682220733442815599553256751933249466113059030133890542168562395953240167402476150342576796503283703802843764914112275076149033173729702306591117874664509455191318741962012382468468558894434057489792366080895710079632089701124785716619010469975825887520947886011202248205402305971594197652601880363439418381602950309024947850598094187377437215243704947499310375004747610203391751682301990187606746080581699683259588235166485857275303269454534954782477824452188847166625171050965447211108689209108347771588854353391673511725486653881382871210101111578788153276184354698072496590846291350467632790299459196298645016372108197837754471093665069644788888803211967088131030986198813976739862038548685478764052030885209350478708686546380971266826027292597157779060100503934579272815988580453607330987436558910980028071830552194475040251294360378277016193212094847790616536586675076893387379536602817156655436062467236480712122170218952088542946260456566919721501695000092427614552279880702786002153419380976766313589236273563954242312830273257202367412634806325103928942844771137771038832246181050347174069150908953787084821571102747529399744380219317982859159136266084769475131760242013651302095887592280400333382898723417639387047252676998985955910383908610367074866207858403040377050464273639091875359269882529371612830717848597307924643316469597088872756696815326635256178247140637951038778844729055570823506950650940846590581499089616003164292869930817798160829301801146723781885796992467826332474035989121059739854410064919791462947756206521247953941949402524497898198785359712010944086865110116493098207611461885662641677292943589807718871471078608942956969509548812124147570366231000243883391902914412107760957152778860857969550022019545578181719379034217147858073177759263209926399641991819620336158801251499227946530509625382159544326469538853136158149990118144430663841008919732899587461925193244521824089216263113267641057580110151879571572297006690067145523107624634525250688288479143859559914537662814771520831532947644413085522278006158186034620255304737970956938124274918209488611528998998555965179311656967571535013264655751587107645713819476421842454874911599833851820398319789360832364445188913742074733366886397956213528928732574483310875979267541089918358607385670373157995843612711046501739719154561996502438247959606263218659670567010120355998841467460487231214473892964726825466667846779883956482135249956772638154744392128853765004176943196494381798341964578127623224571231175369559269837740044537965480661680195341300470008374155094742829122552477563790969610733608860391446011002218326668310244515367701479273532107215652629733557756914238833834479876898208350762039001723417932992731041552269396175005537728657013218439808415102341067397962090018131460069713543603253980221333145666493794697847949257274672481927240054335815427192135244998845282564268047247551173216468013971408229673848419743533987685109891026397676071376134543393147185249906279910505235582954456759647533995153168393389177412719906957282278559850837887796528412747148712089475534885774177988707760479952016089242629654206912398955676470109522269523442842519345875621944460278588857691472577560389778354735844221637239051338833266407649442410403534428951661548605836840306509840811382270785587211260618817360789292259264993408307196977162076010222850716337342706072990169989138286031588231165632838168579365776158142439159180653672662168976767229248106806416193545263890032058972955019127293203655844546758935319086618440763855795986955225553699264611526546308447537320772811027435132995384701218347781451931609744586960204957054357765125079501261997494073490546912975136379104627350482525723162811445781833403435495686869580742694073167886282123107811053299172751254678522611320743731819873255530194863866401257337359095154836713738177571739085061329433112546710575297494565710509184786281297611704967118623828389139840675719254109435058483497025279440775846819447355101952236283358600117082997917211268831007958466623115030787818393215263655769395031362231762347054468205421676337232309512042533273613500320305821878641832547766033409079291730665434110951841831283756503979556839625779573807117203656601250848873649277746215479422268137417681904816345744643455369866165980741601287404068298033946621301296724934726277161573201021034760359103040821637629803404651778993204914923271058267565715037303607667829567214584488894629665862108242673444399528819291314904397197235314038185428195301038033648045094306908981290919885976084384171931394036969334483992577086581768528054096134834711412680924305415381740341752223042560173152426912782685724216882593841044826731518656960882369216624739225410703944626900633621106809079472687157263817914547164609158976895294682391725069454772300163090545537328768649156274994160797390495237062410398989572763227711748697969537000344295130591763036327763125225356918904630644205578441905266346222827992102010194059396107975997614758762791725842217338267653055362247078816397527486768171340451423033697220944428664800980950218306605414396621971833017736714929345601620581209417212323799048112346081650594008650929169445818709060173308409067465847229179921578184272973869404162825233394345369487002221511650208535561834961152432504705499086100573123120683975030054223127668548824617096218211844684079966619284246354447740169131031501860176162266177131629539964187648646071029708956169677146401409994597814746918263701465726900060598994926874268185992141604301511012090459453462338668580116665690375355123777574273116852894140163588069292963740708686897497028002454111792054650486867269850797024589008645709432203675159541126613620757558639777054037105105947037077099465468282913368932464949282156099743027432458990542706823813080756922083644031444413501180301291439952302096678328809693430985821976742220014910089463550302668012651450819059292260893329826874576215748805084914310048618252218231757470583945614516471529839519870884886713181513813054378441875089938581855487374476579291320811924755684912534763148072984530617892821590237240739395681728720924916419751925764776055114702764751420640901295619944928163301562098845914989999406316671118306198784083439427301385113996086528898160451016061295666407957944358833517537243176754656612723468481031780071602878405477102575013387436887645201809169506523420930482805343211207081333615829086918195416043132411097431813939481239474746838182789667269370554282731410844653868629849792614091587956052263784953256661506427137800923586734047938080142768319758636321946941589891249910181677732212148501464808137939987458396260124287851852261228648043248130674913981636528883689487880478973066583877118523770420931298785239108765490233164984975559368958954917343107912850069742733934760929433572450942268906200998181725491389475821520976555805035466388553667374230089854672362349244468726735330888722255518825861876795190900218846917415397646142702293809255849017156608926851413614688064793875802098870551625888674791411003078865310138872232073111620625514223669376650601901589227869021376051899555644795450541163031004511034660190288768236878190247781905341411427572459939803412798805844105446101955803970096348075498184991548485224628579524529488599417775446569737547785400432210541187303356003126931111361068481957899415420284560307769451924200899756485735017863915722219252118587539976461937657428390764242514636441697029597090574386453890331447280720373558646557524953663227981864312123213576056144172336336080442265419142175075137579582416751174674767834203834488800871880379024016638758408109608967418478574123230797609720685880306297635210439896748454313081170439690787078686327239164179421978098502428585990307399881878296212909879176534677390210570681785515086057473036718186157579564955637413194179517772476793147635755966827330634852363931327113405065553792063065749737551378104068374960823041369319722948604341604711324755260885461450086364032999479104165536004936717658646351648102044285001078768049025449030179197306228631202155457124026834120349022511283012905528405126408011252615648898591639461769339373874280139861063748094063843361576807365673334694095248796496982772445108722535554818897522130626812882100334978504620237833201064793179216521334567032949472763561960399633792946017584594209711750805111037749464134774476428998409874861322174525227306103599144493058419979108003871835159218774928966511325369854670678002171887629152739127984904006252085441102568359126205715910069046836814744228770468750439034376217206300550870431861914869828955459153159213132279258995121092884493870059631864085496307125702451683141687269763423539970652628310218813701699082804874470720327039523946763113096090206266617274139586360218689860175934057937249239733707371488171366566953740155941178084389893477310631042999813392548920461042273261054131714494424571685612940405598956564259715318022163859958786277734787842749452146105057034647404945114430013059749651827302724622363484583562341934601010460828643259200331765905237139365230808371807472213948848044561187058710037346395607124522585465528982925987000632630303743717536751073757525693806957925274778608924187473056172554929006021470698354607512995380205162755705872089679280665383005633244516803749495212608265396010363835460390466635210798169583979175046922344088789639374289633022436415896987421758926454849077005432106341917194400606472409362343140053962409294740980550664156308334188739104006631038866139412754252639218743590362799743487215813682425587136178545228786604184431275867601722698838758381609780725038935036793545354461543240996970051342364775173249537737019239318709735178731846682881575221242431933473180494234386998302117332637834290921699965427609243896620898192957222162927618487166285365353284345691943746425073078840084390510983351855944092760061358846977849486795847211426043425019447474409318626045030744472500286386713132365305483796429304931290167762102938404297751233390726404846903001603679893856859100739831590039059046524493900242242851242135440279287451796166021896530657320276191444854015547641880832185689402657224662292964086841559957262688641989221241340261293719431236072319879603986445415587486387376016506904232100727509002298500262054400732783365828604767662385059178547925046001093041108909320600947992376763510455004361799989881363023590026262568627243886245662927804300019663091740320427411470564000068755395262669022970227368534976324648887765666335315623160113515729449422119611338525669993887369806478201111063551286522035931623289174103177111236099128673392074960040377416531212129377711997459472331620093037452614900055833282778301147001915730562584617007368852627786034333411431744930645312034905251129377248869165735044309044786685612292631075141020828039955011839255384703461187815544061801747442364469240977397427352037941393090522571098984878683469849498227979975195756256344794432369855979338608294912103095955370206090675805986958170578449042090281199182763551340100401389543041375680794168665304687877551807714566234011199970694361827958262626431294512871947602621550166384846643480327412043395538743688503658343029739535499605676714086464055343960063414512511173166883824258225068286035659343796539625434506800395636342589542772357334919389719156392793232026886376247277823595642206411291858931898009002264129029359994257102296871112192210343565965960090373066257478476884543474404786669432470881934696814606956129212426351903614413788581853087632622669909662551507796293632622494603974235670292534476496261357253269268664333577899180388011805464130064347855700994654908148797934311173320267921691438726769909979034069344233907967089741180526584379899659709423141120348521178957974099298472061255389555756916257559979166382721123552994618217593678883115010087164628736019973900653702814230311747534391082466584360160896042953087846913172274227844411237066527650409513723191094324094064366340272696978203551962006807160627253263870338859621564273062280305255430022116210246265095460060335535843361296160977874500473043642758218334663127276802413313767137969812899969654544289690935600314766249336936426968033011777708855047489748671407974167310308549879602909452979265696009532455418698433366216393816485502658534393315748074745101826641745983713707327761467552838760720482616708268947773934379996356559263629483814956237767897526948564509942587372404008262577698244192339957643047805252194618764980968437529289915353676426730549674243141273847510699885611211825940833196234851262329507131228057648461841291107037673129943639388839923628505957746758872590390132825345136609708902989372440961254958327926398249081017717087420243211005959116700943737149870498240846299341194859591604076629942157131564956599182842054679273043732114381087855196109758803526457155890662530062615183231866535302890270965471647209912763365051704951866985081995910530396886266182151761121351803391828739723877024275644608869616079244756812128839237396682261840699595452862346823310222308134528781807597136398372769652381076583163558037610259283932941047417720128246562961126666448315685155430638949623284670065173276575735395676082552627903905474246418602057345936172910217823418484099385055815393467411517160623307267370082300131585082851329059997543951667166719890789799413539315358156218621338155564541456605265332705835901349013989845456045831443162961587004095848224027632375240496824215431287880708530114390435208777836852351937835709731468485561202792511782411538864783306988948877777500314560008791508086261715068077731584024813711302049588086196979001595751849523894486273837879584638587285333430567733941528243221305935210854621873868859054537882666111319225089188968805003898430055330902530182608903480885880901793943663989591119415449287910049236831196550477453557301441700976431549410901987262716576533148865805043669459296793999242711225615423985080575046954459894517212267942313482677963263527948755181942532138907523087377628183290131317958376429910352781066448111820230646989356353957870693077302009277487944458626208504040824009399240531066250065013442515229040945043633245524690512397352470445176654668262348123961926087954702162942715804079994333765916094672119787602367129918641936123232582485091123239810387320360756027790455326867122000428659036493341938981795671301550611461451216927987721292183755444929789799990041903884490666991377668080862254962778282592898241782577105823087167575307754981580025824134836741345635005262784990427346823129326228366064012799706792350833775459082873784725412126993217106508972270412335070064627485204660403970648444202951531173307149878328107033725168238458757483712615173316401967982605798471477282055086303813102287220554665578703239367224890343569661792983384891202402067788642622342560424301799026444133573668708453057153248003047207096749194539522077442303196637426318425576928105711246038291693537526539418863933078663407894832258783818880504423453906650820533990096309366982536836468102527760421680760417977274544712890506340215501920998982570775342790895752703303688958120606004011795459647537604462718936773807842191621776562804878554861633380106035650723426933071519444473642955566857327943911300043336084561498841256967218877234949775610612032103070682965972030715223864422691223860493441513475087127866288341587168027072027456561568970136591857889343727264390868886867927172496713584498782844804158309841926458441046560357187642028210122594749032300588009904573735683161881581366410460058667180563310015122547625057238840143654482841842261601800372447032170487163395108085069163822247401477122152658409661835857093755101085887499798999398856869115781809752537358454265132891587372884348800289711819734562553844025659749635925842560119293929460017571784406034172932827077462136898340179367424478479265254969415993287747255624036097901170136201952924079741514754961606430909518739870809039735109384581685323215439865937314876410484648327426836201356618235090645392228253348847828267958207440828961379189814404277991113600985682744723412928579638979973416995190623027731731422030861483137997971766437999748313383948831370461498432579701296885983478354923147254458634546435676637115303458799713657432373137769184644521190691651974840015092532735124274868441613172715213221996710034599113684183347182717631809983105371902509061275171541754636869329549292813616856869506267861123831451439270272713110964977171717644825377675278711337377917110421358610748492157814782667526637623109524043729423630247191885985873980696546743021037985607798526936764356829014348679260370069627680106862252233197837289181306896950987820466320951362346817154565441640491620622315208715093548436606580380991845788778664857788378774471975790538954143531255119616017700813999331157660674613259595628903688972112767664023184564565071168465001088726728721886345523846219505148150965263104072976052102875961922712674877260196161735654196687130954491702541337487546720350607658387502238773906275698179993962134859981479405451794834176148835184856373484877614233958831247393402685998814286345736233491901976106543725548004815779375165748869665208272308427293494415680780100732823833907568371375183776917093792975453216203962988348435153073131301479827301050076646728004079011684463710280635820823724203976098467046128719557751225269627292762904682947423231215471630471658845893959641166145144056041273621673850923733595356407210814896416334973205618191054590796463255161840760536924005778981484763280383892064280889186330555963358766639443772432428069666882206488286136344098941573083662383487657548361531342212668017133859840468545606819815489617784355067542912805599517269278407739772679355225778296695574424994257181541138227777203062645735580235013443760589577527065004887905060085746828395295911020358949840724354878360182638506086002488134059069414484384392405313061343585433233254421388752524180274882396371159008645622521219865538673595258448525280478987423762706306201332280743553252990049673130333465282778014346454389091357166852272961727476103378717630030827771989995594046337453835665344304747903398169017930660819556629999591796460019866468538373149325823476200421416457212732442940784592636052507853787947928085737824798141219855928201383831955734822810781793661115396712079046132438131815928249696428713551651507738357881729438074898975025371174839682091359773029629975518589663747691220576106381635569367414298594058101384239765890237613229940112639750966254028529712631926592224154992982274161308831039585626179799281827427896148563573233014165932421229156402970513484955727875616139964076681459225176666340565770255595445171853038534696884230307058699315652521849244206574903870369373977000900608352137907615690268721529673963150723077205745755937199898088514479767502735273232712604276296433675792939850647747167069452960074998364465033291544406133474107908904317539805133302171184665061151609415783244903154748414205435523499451076230540360798975388662347786423467545310074869164769638742803285043495220795531132485701328121173480669944467026631812536778009708063152072392795890486553337486669267266020019868305831065766409268900574918984930507681857714427466458060254157182222890865907054925017390752904809168790642439063519101673726519236524921997658933558826909650683198909568581205327675235535830959767999422442287107188842131456545314963979473053190172572236508485688037998823447448204861296886391451917368716443463633966243227845825038488302623520605648834434335441931505848595568306164961241484600489622754246233263208231780809304298171650131669653984973220813027964218329629947837448901311403208938459201470320723025320640863927831844099475808998364071267998376894418893767363365767314784728129427596108830005965011650775687197452518349454800723445847637225027578103966394962978623598835689539093086472089308294204519715069402886217343967586169928079916332943892904820837322881465069487851557950999579681747986992654416645440294419533323629157264522985763262575478981436597525907013758206363989375217894224490346725809368262070363639294913386754963938664234869448704786678340005241487613049494169524236732146542405122093967764202225768137064066711431695138276330235509808305734821286457435376579218204066757428749354201391813302002686032391493138060770125763532489713679392413088934014796069235375646495916592443466220872617147166244749231370308793663874628984296282434471659677305802496765923344572944536522589911636552405981761280708336570092939194861216815454440938438604291909476491840236234208244087331190539534968566582942125918340667957281283207439107814557951659938091992090282360793979056105441872024581372128382152021889957490461632085364505288969084254172905957786376357712341848134967482232525590654207526925016767791466947678914503383580485412774766112562593016020343970576696795259231275993067990398132961355932620003878131243066162514705985416756659626825015940808481349294910222239306236519079043232059552031487816714102951601787430686753357497002808180153381730034567248004389368052543795652013561075182905766780351897020551398947647328044365245164311836608315317401524377106474346577399233473075563792639420146495219016291707720269211745027491436776887688254065228297829186197072932453193674624965805934903994721393484252957884333621750801851948895185828247107091207202915656840115351172623891859852156111726535749381263188638290276396513455388694162739201296763937098871592088170623637114405074924692363689077422626630874918438671846658439798565491181973624689099548165548110840708772307791489531110203876540122878048147302572814072893289443269464890762320207400061052129644034078174603206985483187432034746521170024177218127049504839604797179685237867447597358025047014038094202211171584327825948078004019232747471021244123997032903156601127342673987788683698318304874960221876637790714951342210178801926780314086060250270178682846300987636514285226073718803866858302550395520958053970305126924703694692770698913816864982817395141013464172454772757027757163502796329279891820107646786494148453146666400560289387028953091743031494585865391574058343657592000503012585744883946615385883789698665950012340370773172932925144948407585476414899996128470581880498155886485248557573754981180806719951723491949189699543631502105588980388978470771346831212665358980852936759612188802731747079210814827141821284194390063622655781226233522278302086596618179476795214130613459522418494954231170583557454337629693332606362731387612861246908953415309869779078852557012555601798179605349134689829175785408469610277404476754422692304848092249414597581861394634823912704940700791862643962815882618103798619252929985535152199163084824334629453821483671766887650461236149114690799056351286271559335380735467895475468546295554831791865768340814309447766722217503228792266075386462989059759564725085351416421862501158218164031244243735693453743115493213170562138592579938753046449092654986007411879641204282474711779851429600539236097079538141624000034363399461019891387910873792833199630427216662270812434240200539583157323818014032190572765255289757835523401468824876760123743940838852310904353515023148326134554540006213512636619609083060261272492090734438807653311619828729660578334346504238061363898144857842329051843063070757640763759330714030655003721600674194602939325364137831130968233428099986794539434090681090608161585905705819055857977267315805140275602062211330328548060263353594928250525702307663895007002105399273997657652105942395404839772803418811747415038133128554268204767025945251376279300374195708003585737048526506803323113912591396172331398635900094165785730965778425275920006975566311676737034607732519406539683033614440239036323237544973864913582931612172815833003689825607263167026110275738711070887362734052841039153223492239073834163785664893227542198024623278360627291099087306804665496868589647768630010152965177938694926084279543089080770865039412132911925341868161376189694062317045654771178406030320287354274695517189313475283903087209002838652130651135286530830952437663731467863474829299384908064536311063886685843130426437518612163476728277160478462204723704531566451524288125901005764790359638998253910480991957508004716611453407897916459307775822361733584946863196417361546331299389429033172171803758407730990030686254030846075198499521170797871268737370711281000282263043991054444512225806465397942405256372952882882452936157562790794569266854302691680366461484385884525349049447388045788635082950625194145958991856494532290393626120757676080036938157193101180430261969252227291907334015909444760541292950225451960807159190057373517193594778618333501296170005079231658168967770269982656385994316793438892706382402398249393625603518628120552549271863257663912388423010403190014312919901693615714126969529059513465470044476153563900589913302952756198281484360169187130983013268816238876397226051796013062751370084387155648565830066440064470914197753601226851726394467538663493970281437063350837777943877672776136941759892638060836094437941765382085968007753245613673823152231663335479502166195230412681302166231625167462088466406756107973176924942303047258636055472822336641071720408566757300472851117159868936099655524791588793893795043794040006002721134352107108352976511277813341176721653427189857238689329101533357499452487254537366983546983798550922439887403113848484798160241192724853623090999115778344558468292726804649184425753673383035214021025163883105553810003462105217937385583929020077782978480304522884521374571416019226598755266313335802753680866069705739163011016360104999550720041471170539910148343763709079666953024617604459700577566450322895341788801253827833151521462127868368222132466927204459198358173650609604695775236597447115788175054768738489471909809273579626648747001982320909972066861871947322457728784735823736384762038510563136186019025926704779437076169831744741695882160215810911700600984936366836465276749341643689294432717395403818102592955275816183569534148233539874734657271065248935240546706814459355917798152567565818868193425542548804263698351552930898232660186656913709278697152476975151960722817609338201619285173141247427710363888927264595723557911469885194153926418682207305575138844530620586618227725281770653767154033325296398266090548224834833499172202395614871239050672966693359382469212503577331078984098979099217653723850636845624813732023412440637298158533926723472403231835780922398625638484484601560559576726989417876964766221828094359505944367426905139277146281149857678023468932008688624108480369054183290322370741736533958518937347593733159526944275080573790126334624046095860418379877319604394155470577631058193655587828204534165623735207360142194807878648814717393670856148623126679603326820110493239267154193206566845945460459767058865901208020041764399005891768916487887767626370296264876577340750445233245833943024569838953649836296953049087612521222490052886860190105215300084982835300591522853997036161836131054224439213991834595682535871439568556569148496003265965202678540550745107906301109797898157601508826923920581484855461083615203184809071972966553984918178220848224944243342513200347955959051049373421288533321375932203201306406542003227381663485083806184163807637153289337316305048069053361367937277756454522783676904844302813080208246558251254415331558925207834534659964694010310940238780112665183969142138394621840692284186844948628562611103006199589747787889399389653395943005908523277274114896342153646516306563140595776984142442016768208166025805174878827459304769120325304324592950841710602423351190634818956539186476514528657570887335578552841236691399626201681031610444817324396116866127631655400212611991461696168572737521678231766006489375144410517149040778187653360793566939747371916827746914891544757849959726104863949473285327664299401048397713406758842323846072784915606360509454263275093327248068962250422153502473053667277812698434228594224673607232509698782150160361437929093214554453243024242950759941008830304701372279136968301341946560877204028279142942770157821647107660648774357528720991169002829581275619358670237809207228737897566766749349039849814530454265343726125369965561774754063382661306495604872696697170583453416744759970731646398751374392781684461151470577899650256113551480912504893903988644523389292377692419398601563300557025372256446890844546209644097390277260692489484083575073081598101067051541868030121650208390571158915799396699169987215825474045950471627188615502292305111890579640463380000765354887002055581610920067640568784178796456257284683740719637002257231135372213512778301665597437292488568393203920556848124478664071212923904047010606482040190242417932030558338001255872241996488977280487870034264216033867010810835272110616698533558105559091015043449290472826350612765612780478671600267517630160640104119319731158842019471914848609750897379474768171174979646308841220172421833444383881581295155908159380053092032094188843412122339097072590087308363381402623047706417801098691967194918091402988044786458745054933377497405505857369746046051356191298006207356210449012741341998637769405791011956884871652821352183344859518156681524101673246480428307692073075951892205111238981236461975742508863477829423897931450800168763174925527559177184713161104521633512947944887479219685284441347460268628619445205540275891427737717692839425248349208246590590015479823537173306689396328757424984645622111310533185065126129024123286736383790525698250132916126865389149283149746961452955330527428253160180638122638585439889210864122963442906807749688613889114146550213028976078515644572857246645496078193344257288899507210343114961584239803289497250117161042668397208946110812804501579167493583325535763163459098615957494665805635131934858580889476838003579381840308015757516477114304940534671769929963478561727782238173307380991384610218736535127157382175668075655492754382225344233535151900976307224391102108774736071979688560404642276508278896114001568074966457387953447736977336609264920341023728656610730210713595124971035555061432866827884378379780981019428898226287614003741898448847910862295670023754142408226782164260613721685869676146532859940773960304203245434800543084605901824801878944579579066795137115294169706741305190923517957840967424409542684673477370707103898629863769349987273653951726288214357415163801165861563147438339508023222945422986466842405506665911741947298189004236936176903095151582004390337547102481386153503449228496215020840496848307218822577640459234767519320827510475306646753076416573511477740738037509082383069008082825340467974973609414094815654843146689926351807533254022363981333001942969179191890398970640414629911639497754283667628392490846575206752512716631420939288180449649642125550794833306322128530670766747265190064952852932334732558664242353646992597140294110710546798804254805799644305593266656921076218234700975969998543145867034879036243320560700221085677563142461604149141006411906690079310586073287276242420503173690744819262162339799372834293235926140374493790476330028721405266063914636561788729948989015693788398038198543851385507769463222497992546624652354853769610769147457567354559195509390758945334870096258172992938237450624687673835173226056292056369607383768052334782776838270063593050498850352542624234882680753001419234167081895253337088508913878846221403365018864527504854083619281701457410239925057014158563415350715453838698261558563239612262383456075084677630843162713088014687373379364667422322340479590444122530831855586030301112011871195490185516288917865535232869425987731262125022259211974631187507099225226131267196002878337781113895746179828740322475247583256428249926129864433140195721156524526313392144246944936679171875033143362301015163407923133095297828348603036945880121208229261773494420641258745810021447462416809201812524001369422564542500731849183011549585310371792182138563245278977857728433799243079124997719842014657425564313025917286351506973808225746002948053944361375311983741486361491119829922619746743239872699230276458004253932894993707714873785557616818116713790795467911708741159463517714870974916763276653127374802927319632209561014251242701736995526826608343899519063072194342366512801648651039810563338951954541696101298100103327225512716636147714539013589181360535216475855073861765950230274411750323512480933420090061518893956515000957549775172051404845676337314227365372202688048811203536477332519357335795439858296671918055519993856432038921447923197769635127163372201147227488798884646881262983237062271638979605055414908236125076708934172735317377093916767077308345399079140213146029402855321600760393479638275921320151141012118659379734657095077339075434698724873215627706768535549353392204858859729277149915696495868679122988292802570765219408533490334970512568803984478192899372077610374153040580506266365269821398198219378417818480327202193137956514960887754858119417539650345727776767314608727790191527147042057269170429682911111616209613386186827988013517533727641980673590601898797504406553245646429683705937099736751562191197208654676240436951900597552461366579583479952411566276111287194030860357487897589368921813338417609801123198039477732505396987483580476847407292880242719945293434119299282820108002156390481318669568978202794254243098064014729275634067278296802534139273989380473003819312435072360953905965728366149402237804159664377739077433661714687173023099148965670797962113180372068988638580834394061929868206979541190765410779353605205480692277951625582494729695720327586343334618979112645534399413863544779632426690524741439677806527355445120366444992001987590437997483271014488371897148001654828652698603987655513226321804320413640347037043770890561303077346742093919909256839046433293300488460526407313344916364554906901614859385865715248892267954160569290669848545364458804335551022207124646363253337512762248410508469564677379408131701109061391422361776180174460052173495740572348166001190328609783826450118064074372758852371561249698845842729943408585863468633710677214057803022798931096444930517358632749680524363780134763564888629029743857661936832478070092247689806520765174268623755292466225378747494211284000452768933638644340993794083619478780724558140769043994650052975005975597408000861828327746763191038657972045742384805935911133791490804111382176380001321448560882153988298446974799022008619679291115305093363570845934003569213539410052995524160071892417799091279424683699360029008055672308053672922123797778893883764275109310940275565049574823259570642656855401722434940433692037760210533634573398827058955023002953441483293424624520607471433265590041290612987473586182013968941573700485468528766427558529444759344042237588398798258962439750004724665427706320227902165476847496049848894166491258039921674886432887289699602460328011375146569229437935873908698653752412190309094296922940281122388774479173159184455957531533798857265912171767947502602120388205898694279867085068906959585496419939170127313689968305977646910768814545847700485931710297764906691581941689021746147863633483294323182844869937162265792153805576134672954582940616121624385015119141768164440755540154411477778471506102765527866450322023901784123654229051285991257907677460061257354410200547596110090674601220897547004459088520408424485111541838263613174928101665195105287362651936972705843637577543373798102957262279275836023872836380595224698527371628767974731652151666872768628444453153048662319282048491994130297573835144488795038696882841937276532468860045166053221532473685498053374877439007444710335815342067974447588003193897884096849818656848959318946552390119121350871290944614824599518168507156378112752946277509331837069566128672595833755858712938395042624022095977157075520955760698129649288423878934259300025854856880830945504039815975676125366693496198258663272011476685838748647785630302219438004098593974175633064802214560476894088719708094956227822213603467254566627437095499842152598503137567101647782270528883228389035126182606144801752732313464323251742804987964000706154581854613799522260926184507977331300358793126427982410339504374825123078488558545106708824579529727781600712152925080301638397727521261831278334444405882135322256822553471649973619270452370375823080521751227744905629992038763355191231534494688625437748939247867083318569619443986756059920318953206594207236937975419773179222458294860510387954689788053238826542660016284573082063036496050330358471784172071431939660877275337245925221349958700108540846118542279531647692362160643820076755485011521065497526218912722716053266996895015218589672835058234445902598223073327682850068034524446424556612460180509056004974363280997053401591136461020402989207341667650345654202822857144468924462378395500708573278067506187056482523430230189094569617691197092650287999459475453970020548250973564918555406044411938732403204431191114276431324055231565677950187289209935707951480707661564963390139219158680126838224137436212580907417553243284426825775758999102622528496951419106903619354348190985762877476930138655496979866006737870533706434319937496306213997524585244157471132897140992404378216735726257235179453517371027111845280739836233530319736692633235264022027063013120617686357147897465697508066275504530726048992508865469071281243437632992366749495174014985154716077455108470275783611488204498270849998266285715034831489084009683517620291048783610396509879030667443087509754333641300199957693256127342054580699419358229596285023133095420682341841513691291074739016575955440002102051716431640011759138101451680288147537326935566730123459709004172662335307761898873500634725669702136698381045340888738641690620133415718588455698221855363153239161010964148417048685049207432162433111158631581697640757566807382685281516342657612385057092798458809836438756678102609745455154265718049337005166661584801195324015598788717220273134616220111249246500648419727707651558542805223253397394512472911961745348165939786845084354844154929025330257061263277369693351833665476715151244280638615821932091381276604699849899828635899159377095708156394037395605898256097519372327930727484031422819731110680310332742042598608319433454736310836984238032744058371263084495281074813344145944333412796667224180560258410386673842283215558980669433148316626824180239495211560562716958070589308222292657056718389688788551530031299431282155304188137012137355875076729388324262164699339603961939475106861402292325159654177659236242998724435177323734504922605073533253467349913781075150489857654161926287234817678904466798634768934326884378158185090061430224518504849263949975101252134459950357544556683819517433127784624473466988716330434233595220552092490668200979250276547650396264565315441400458607804719749761588880883236460308663232561017563729485303703564916090542863059402344211509614671770811958591546058921133125856359423900806208820413596711242481832418048700269009871713900105992763956309211626042776662143154918139838052774221722023249585074398647484834875073034717860255049003429142754916574073425307955953326277833552699701917544208739010953228022825298715169247751333839457577755626114378042120638821049281919729718946416602367500609969392788783238712823693476981220583577631229873698236812602127217543012121021414106825054320917226717914638975330273934575355653794699347683674491922040010933678934305576803017027067880700979668044674644954358845101219688481464596174873513643615015685577224614852199893953762235150835167920709713982199805559102927920024254647997143815262085319368176593685969766854791610916847551478520486386789494976283919582933071390430526165688753119906554703206382378817747742616775996367178499095458005321359855379219322607242352592988567346835871047341881142530694665472917425787691025163095433889828260662419293952021773370853639841924474114822826485156170111944302456438758269287243822807008385357645653369913929965364366106449634626594528794562214373302140057139821590292971224393726028275586811267662539544747794517504927417469888581656062791765872363867171422050444370688714249769426487313411383232937090971957416365915702306707812906869130529258089693861274844017203221012505004524635686479285659239106693973283589310880030175750503497678105438973350084927556340603155282565255179797951257432830014879932296624652411133676736115167557060914723544670231933055615935515566504476556965623629730452184171877279498155405524759324360725298506798164730277164912734442453148297751127018110079609988385630244634232762687999441223003103324859055630943284885778332279219311818720167899386369488228438554137089020450860481534829699426168772869823414537617607827090657763718279029726423947019307516247621517501816717902180872715203377724686220481245735960625710344047875392876860512577729064109474017289908102196388468624331338782541976246440937828947826069407198701202193553240085440099739738101972084933717799204570813457735812620842093707747823232819939413226818110291225331782648617430971181225962441025607693340003683197911116357647781685016940171849740816879569155073893659389386064597088720534761572212403628827134831231800661557370150509432622072385273568821484300542413103208609373880030296129910812259146022215557666056418833518415681606802526284956967152801845171214038307712642765187794745088995613867445087253378987648160819995504970187400371748625619589918888924969378006494890039556972019121350577842669956543101463743863976665625873061004380949169582800734586019424939840928199086125689357890697996831763899968984717036881866202041180447532219942090796519728554368918715719294262342287874108604575959987373876006912849093932852973991946268254224845472243591402252649870344745976036149430909422002954040607135096421226988062633812448132215191407109330977449815778959727771699728007253031116263005923263855990992700770947216917186218998205847299269246652334133836784177976358224482965040299207132919288267420338096405943879939702728811056144674354770539492846249222298783781090548210724622791862880995812153335290700176606894844763566324075680465127334244688509550498523480854821142312622832387348564226233821639678030073822623729170589129939208507087362834421281027853341563668233964766067045224547109606923406218458161845931446381115670293807633307262096604113400814436020942186664029055066424639690269154525496442900018869755433158285746415816393496428154964624851791079401843156562755092741063247839016531114340005348668860936555838173513281432816666830314556525032188016170038198810160968656568000030292557646570186777239729033406211229825133402719117278798277489002454542056211096202854962775502803219766529214077124306373150574718127422200591549043022792061000539113264391836657457122089557909443778698219346118846207235359615604227022384963751122272310270291160708721394799199431174612471944537047778435386865114107204272403851752964366878112271894855625448273817579504600739484909729425971303304602251371714398004490245430472508761030774350946679658836911876843465155106670122968668542217965988785744349463518349428555375494890890916384858858375272693446663009111543041370688604277263929267480366057550720317687108956459950122334649117855091575452487520105087872908218250540681334128162896083975755522637572937461404889671477569976976249784531987951134793609137397698543663305974163120330959985372094026005078327649597236766553520396516515450672788352421446384944514543141720053741666505962412206984736455976123046452104023937703117555136716920729801218578811077831339436155291048066972556266234049112400594189333900204759360835577647728210995592424140298849141128212632539037492205602364648580546982011028841614645638856208979786811432054054592611727334661597310026220391971760152300056249354497025304190450351386802727025558137878542294402097655246909110497813434689773892499939146142417312100786153263116237018348131710699350737884124826318717119410681081374106340444339458099608398970601671124824710245467675542433106674057067461592877568244882666592448502000015279048201893217774763067209549138875426643172918148012188536227409164655447595409591005134313670008016135526076863919363817801917130026926638626480321239393771010989645886102880892560200602918046817496101298063622894738731275248251536269430454201505310274454986566732120927857012958725155656339342578330547053076298778454307773314893300471115681479281993420876961262787233666291182715808093486434965227241957710857664225760449202762692128811362182704324640244862630671652635745028891154302311188761861525246527462884265615841523488588648964012247723726778914750268215737136525806851276929600247827283178326444070975365685616414493867289076520704468823616144976406394694414439727727812776921152057729262091248941800677439642627103745943306392393061688166681998154890454935295948869426814062044564371735883829111053026252392461598131326234199967169334627698638855935211143573767723165006929073151606898322624457178131837752995232120683942406317179815233602067451288072262275957425031898624182578502198012565891296205874649555005034816095659696238142876191097070553026003447635444306239576151883421472538068795209959169575844049401511594490426799758017306264860487144245035832373702882680254118020926693723110282775654770673747030988480876486581250580497899407229687678654710688216411784329038153361047810175478923156133469621132419164979964496421523477851533890943358996457649008877319135268551000940340971364201750266818070190746015689150386454006011531193456866436605249961813433186203588635289919562300599685176695809921098772818978290391781007103231124963467479290623467303549494725806203501627682175661952058183459469472292787198070535421364681241443395359986762377399400532846511755081258923653990554358716803479597171886387456269163424156868725248661548456540522028133684649469768743904102329324016713714613015543997865911628298302395142424154280324874299252380247278527651753073760468224027734281016062222304514734952025858768658575070856182006476605966940651583791982566460656485990710282043581199840788286403911495461242697711352015989899360760045029418206703890586818280368089863869593335993387463857764053499365561767278812834771431034634993126963808477476814135610986284180240689326287767796883384600945803533369134799960306840387688070678800354140610667407165440503470474469627550566234742416210368665071088269883898914002195936907919059686440792466139215192506835235020561056368899700858622864057567741724244706394305335925790481270607380541969129317123744169433951315078921907279296805504997114202188535630758295541345398290276530389915756372090230023243841550638552752768014729491451880149656362181474339851463502624308346859948744121580029046409606762212137932740991819715071566078944930890313892775649951645297358219383577409690463688364633177623155375961097157259829425412811668153582521070298845805813556757449884045758938780246674459929249865167891184188199952331276554804758182634783799414338604577671053820957271011810423260894235708342612458226392483873682242486623147670681604833026350577795239291704511696953325857652910711459551409535625731144394053715592067109057134721532300933888779810423703123554694164322532020117645140533859299072278541875084044165596414953864428588000655598111396456515693998826246601643357217112810146410817074190776056190808366185864634920049370170996641316155103009866740178487566195719959071118583557284341536130745024897834716025026503703383781831419758057277557474499094838639251277750215272620726954051874143011648032404226751394455626531483751345822516580877864197353306294044617656788393461124629266739905910497668556793452226286479069479836155885386060010272526236229034257507609028958464063878480249215234698274959721577211533038541864742407395440839350658973147132095206271657598858097928678134672893000536623938103105594968552392972030499003393229702968871250755877672718147649993218540452417833120879235010928392213513142853784662389324706257921194454559710064866523616076386570198287010178936599735065888697674980644061193652078278624447964604602891079098968424202903170902075271805593700044905744615743318574914782730034432553557544642767301321318233192300424958760243997917320122137478110448118242698418935812900544459973510980851436802530306671313423265572307484146233782974625416876482749157889767243873734210283979111381001168924382079069266486477886042507884739767563996885295831310800030001012246340331718511764680424449635169134918738484948497040833985214486930292768032379775125350281242543815696092424555736807896336747703251274041152180543576716146672877280005654484502614313019377385207025529564979754678055319834375326282468304903921877037869665038407241255932829232210568443327514756638542244467730080545195629739909467947563470848743503640640394538599680686390871061611654443596102405195279096025772134332007052233322906733354792296272478683990106940416629884485395809593820551861430343139282540821471645364640829435046380696833320211133703168656664493955819640923486846942427292989054931617259523830344999466390720636605383423268724189729378568390897798322478710021851367503011176873138238634494331150024063728553255392222043995028747178477283139670225827572600141820834863257541345894838192437641247844776157086274510752623487495843447850841061553542295825719159939604680180444361693390150276403348954284350025055441486420420536572227263625532707647386343946351127060911004330225877146047731815296955803174748314747078861931102719995013694048074344638349216695791635419643704689287499312014140048830078115721277445969635695505718429379084357344502805995033368418333056958042259739309136996023689485706822031964560936395445358222566422306197611749026997080622611674834286619133803475097590065572558743069326492368178177546158196937628600071151034850025536366962265724900179940892960921921694299535481937612488306559116510266743877990010325985909433540533895853506433950908010349440919213537422828583161271169114232435039360624714986106816746159711897870441314543730434565204632750543563257212061273572816238111721715327533562704212557173090187095993456163129446287050490480388261527141299286888808867864342288179976795489378466135193766909622700082556654882482530156602566736844054617295163359904439964561427793248399996037049423678498782370293004956879798365109111725612211871212026472559171995400341382868026074184753035721697908394964366831868475372220239180448071104049680426647637185590750564019007238018526769209382772533285179031289933143579542254251720117590495267622231964523156755505788196017423223243899688217828003496369056446720143729942164603098073299585387817134976190948040422230671105155914716550993484850298983301587062413459733120394505195236751213544349712353178114036482085649151059747562479959776451354658293652726415300925059119503235083972823462907230295345169433189239938071100145295131711278746737730543879741162721383596157674539482107445818540356742186167636477283628505752337576870781478172680291614305137477500770607501567608020355041299582356128678324008923442440701849985640905584155716452520412704767816438479657656095883672533658877026499366792088261506083936526532335667044522203566005833586007364717379553000302448337373910126890752089372620738967420663355517268685148439076196722295612478044363167121009967774013747449975745172990198474817565580275680404363231501118505050035248408441627629157828306841310598991230678767493780987114924934128318528491024183934040136686032902664805801199752736948968431403119500886500713511261621475168705547909925139415439333080380921216700428224336959699268975320974777693531694737031706540314682678978477327508698717458559774948322432156635701327235785945825634817076661738982034747486978276538984723868494868360466612466307575231499116299814554125657219598972745707283877693759887787048488926087488468803385990335823443442951450895104089466981657715210388720271074220333270554207324600474143906330456117684042937284181271815152561100433511656883769381825886381584965996501822895086819804695626173395618289833903765885990032142837186516315521585023978865745808591185952471372898295048081856794472594491587406895815567217694991900282002580850450482585449479201113241104317114351542989841879699118049411268210749950451327817850418697629827284804503819293985082060784342212004154542014734370607646823509792750184082036955943258992357625309491331155254221397877587010945169488551548218538887948327845649354668676065443235735353726128808427610428487924297383594844555762271441617076210158250683257649813124932573193712788366337848367447524049162914408421900445465880564774673878249020496780982551448650577104265864655923286412348468830817277103500285041381242797543252261516623347501594511367811660499375425951465791670933909491650297580115288589629481049483280579669644094152986284307007067034635535416544940387427359376846842695271911152259993572536941102631563042328362244526475449935308902890042681670375311329791615264788210531097142106234736544463392023967226820327022789522748535914920502819336876452803936431713620433125666932602370233631111990745797267887921184339849496274462892615694738079293069030858277226523242050166018398685055146389765807752881292955684220473032248725052406838520345498764478058142595664398126202557025316106225493328143836005549922313071313049823565896446997964430300457643587105086054314417330720732008328064996475685383838363202185937557878636826498946998761474865694456276110554632849917558105732427398249193676312101520075344498506992644015012489380414074609057161103777781241009486389858451288526314933157428190436204623189357836403411296364588357495153369196841412018806409239703551868544432503768706405105860244913715416914989342209987695427075861193556985909178486161836213461932326143918187631450662475030315334969288532165864433435111367637218468006658878240149009676384693033650795003303500526926257083932586349746492191921999436630082621175923523506855860481394531418595620058376046672451056613205947806139615806244435998910782610366064611783664132734319463675504090409167236052570093241456545577624578952554832322276552563409782144655967968351336919199031161245178987863925577420459476428400807314348806021883177120373877730242154192187564506231383677343261080795705046751584897725177415542721402113169555170023693929320836839370073360064229359626707459039463475589163387014565401533343738464354012750988479515666083132243917877154329626429526471515389387589289533944217961347528065224155501700350148663874449493214636367646204918373502905246480124912084949668458395545703808404686305560764002275280572695560363829878256501132900320449747381823249803456373155665581581409371601259398919343842605160905433691852059692481693497748351983819582193614381406586012527477646446965880263284523719877987119326762648023155588423510668144370516782605618526018823500985966009095618526985886930923075274542146480619299273394533610078944916021726202586314267949644463309476809510078731277459378765473218167210234653795953930069341418131136343988948615864877085931888109338917716718275515647347025593551685406102954360654210472910601364789812310327229703932174729677520166555151532428330715026966079665011164782661618829953586380824042869181715967454009584652275768450418637398807874242200577089868298348479824117570027730285643600192281422005613489812467042190477270054279543934999527344713941391771844349307519861586256373299385033286288841091195074571555699151773883341383447242715858060484367227397040834407070624254915650497096594023913197270241680266855529605282092635052709133129993540703747133748415655100831503263619823550082632110081823322894940321735374255205418605714965168221878856904077498762107828247992762849439888667840498045341516064542108670964732223080306886355338276713254205652367752463287926597447957696534972124186315588535449300578778283759516819515841758398568867523257514147169377878802485159236129278199552238258811406265169837544348308853023294080337616277304312867190294966224599857474484422805047245898977262246050841402356602055178889779375677777400600014516905586424162814402765127973886097350932680657186013613818787220164516310561288521330008992662959926356906336360365262245197015269367472606972511913759355474525382518052076316428885729411168792389574138867320593818479336703442116534620956731196127437178136435435956693965203693389835265955065987379998835229944679645348884846447549876466150406843366581903603931920742790207569922820157981267820142469751838767102712446491603511763640741137711506539956186671228549824425592655698899695486805143462511472571430932884211992933656859713792565423815190160334533643130321701513937942452325728222831986696036136451930485766075800566436943770668323262860125514133133929053289543302235779540747305907487670066086355805841439144538834561748547992035358657075291865284525494418466480062093291241788933238594637966515955018330350371424583636975422923518256200990508074024034511430916237749978879756237136784123862754464515962814536950807882641275688574595907977553439623466801472984014439863377887074436910200764875566335893978663506574396636605635986996731450630080264207373098404772043886664260943144432430116528369089408279580441448004792730016794170118088039671549842936879399783382528144360476590969025271610707151488298439314455297690886569650925692014039664213441511796493340042163947493891732082373077157765031797622394555227291934604157860737816802596285464121266052414654419028398236863462483136320689788851561733141697549874943770543260958541801171948611578524946935309269535498511846296244261598864125924463878351136938073698005006856463530023134260314950195692859844226727907490362391475959906476074911669596773738957878701154488278235814442668020479967162828843270181707667273497988903312135066949775813151290622946022257752457922393395506581673482742158907374766550222573920052119566601264189065174625865062874662893918922245204143559587042738176131409093847193756637893789092422542610917994306038256659897883534921671420269386125302183023999923979360203602636747193032193959336252349410517641755721904990491283129633311738534409053967042994487632954103721068529403913052657512208034011096273882577863542049332332621982055080924920831732223325414079373785683719448318929780689484267629956454838133871474244572889440208534682354599892184596610870898171125819302744695226672275632175081531490607579095541016479589735761969642677114089742733610042403065875003096598601185539713366190992503482610778917924648453832168518831573225332634024479479198842537895403396759508913741058053686942692823991948733804283903091289374809824806163111900693041186734909394522522178519774111544511184744117332837303376597873814351057810781609271711090189359957856173023393851208734849248383461065832838571204897802021101032297283474880782819997157288960595230123984548718513395816973615337507170092412871875079566375159657467499962849308602095942912176800757902632442638444899373930562936225499555510452413095653297354710478230488571049151640843591805542325236293768757857097321055272901693828434622723508459830133809306975129323062324589719463546526278543530014774431446804937122611930818021599013851556150454000498563614454748273498722098597221787433671442980046305052833991997418032076881863199804458373263080026253775842235902392161967120448625751912909455056575540476689427556846215786111174475411497752252302561908303352670356397814669487787999400378796544223195448926343600615149668601582914932484366320899094084820160961278313571738976463711316257575095170694117126544782109663418611136763220441825082033455529946181087680527417874552961241264473769619898864126120460360648064719634927837598534905429545604191814054471042284325982395265307434757570053785147890489643019369863067855602759702893438775850216777356168848114584956005778895136882973751244666510703214170823502654074362955346352625487929205820000541811428715874557804161275097668560329075359628397380969497492074402190548411302501960176119389166717168234795666029418295145527408538115538313191597230103540667688406464391430939763676043914956801459967570214238100985828830390103241141551438654935660114258764613581671481973641426567302380425036248540440135097875044792717238190879780059160540813983700555848743125407545190646372119955411665909498681268000314252141761285083666556327422916020178725037715306957122006371971216950402217469135367005828204666063087269874514950507779492904673532023558277164612448771952700090606533896661440294227300813646053050525072904356103913462178375592119197462609020074055044236933044950117334320520022439852790505003528215310742378878444705923554529983080574752853829874786089591179425258462087841415268868446071213688993019025489504377982390065089285300866569623013859537057296406975733189286748514245927923602821297396687269168892531883658439256013462780376208899457395099403839221604246081812460294589020809402012867910013033690378455897011470182339097619213456822486045116467837678920173118348221220009999539597185786224131634072412754882040354508127624638571080168517712520894432145013805252095695004786500417313740185269246577564070722662613305021307307956108657954786628565093263980908989665725088451037075640607251689345952382992580718336166037940883965597469610461125693397542673230512947483854017324844677723000940533407609316285201881268891085708735162438530544765027011358207573224424065496224827226921273639794027348696873795450715411900116146324355597574961985202872044174688750936938420075066585005511366675627560987774229533226770413403436266582271553244619374554592391457826933294036173897392166791162623063181830866848072274373803606135849895248161224607837036501647942611150268799671688955717645057173399986353877302112876409185841092023638302574574211007359992661465098299552449156912654866623394480761333417867625866526657336743719003091320769346130639867924245426417965209020174216873780683268062006505822089623931374843343786203303473806272777448724306593654063814747212741225949341886785116834421513240948757980868000809824113569417579898285111751279327769939387416709913853541300954714729438658701651481025043823614443459293777364090799781072287156277980696740944644454531255611196372582205520590699427044481520123038854853976392582928829413897053352032679922106443939898560191869788040137692178531827245862988066407933597079213575744472409857638484484265761636576579410730642712718400099570481453547259151942178038081463507201082464966689496527640564718077573459456490013038835989602332148138199978103301148202694522392666751209126291656070879668855755158527253926775155637107817421019131338332081449334736146519744803704655996088295410200785740194042716432477982781139088340909663054677785850979040649038985927816399618802810014111776395483858493962305272192854079365850537448887178684644729750838949044773483763050439595133830149298892305767770918614523860488039452126147130180792241503402790370374600573852082441251957443760675752872997750453600792167820059915558484828894264760410872000608853193795554827429485762497965677151086694817771189333763947002511890449863733721091757205269992139494778554972693419843015537675988693121189176062462298117549342761609719240398940857063660399016964366411458796975978942025846389824886053743243145084820422668859872641950007337028753825112061691810758236759073261973841554409100999065680372835965918361275615545808019320067453070811252437129206980375151671688879009831805323467410984604044159544169711321179003787736278093484456775502693492967719562377260048521367997133114956298282696789282892049121910156758739847939330405840295960918879757536731241266425339091924104251978508833888735882556550012539641956424174407758793535301223057919608910342059011226499528866496771429880324788332709748163408931849813979444062046203599161714325314708983257179530049286632329899681740581263033982054911840365470851341052702016655381676980554499005187521220993085390059026371502354204479158786912454306168387072922176823634031233196732238373200909406155836017636076897781329795819866405124004624357972971056133098244664652295046541865635880872109206125705572232099092948068459562969552375908753484897221893227965044472459003538977205079142300389712256222021058074323876763617681929865727031836768746973623785267709796926937885284208841154655914426096085233715152507081878530642517631901635540565054536208413122548700525256142496393731323964564960295725530722044477426149393569424727733211586529800850983803654066856914683831619570307831419195574587851377041267830721092270273964960342322893391879354982415418023577485835926493083715314565683830641679688764352289137613357072970484582518414778516981323963929672480483444257827512548800783833212192468056213661277701567774982944316499790877723499990437512923262521979319388712152829494609044301694887164696548457131811399580067655689935449397555163763395520281028358054947796955201849939602772670132304993964998182229397265594767344769242814604665163403419690647117602124196992967166521630136549760271497754394858003879241880096949089324687438098363593400103515565282820631605870396818984734556265343615227791863571790722893351692865322096449180041978057598319466018748236175424278211920915653673136355351296428158771080998711990385853930731860905375713874086962816533585893492187895526650682019348704809965405272325360528843440052664802685901382667237153365337214450490032721332809017251127397561019413679893845147673127004376892982531261833670530908022452986785536516646456112276641961826935778023832259198263579346773009433246033296259375112992503513513028210678420989329149675845826143240446749121839700990687767618711697158075048634816331650640866811728910528117954418831587016846390210028138418693915859424322911809893822976082709171066222617134413328519101476189140882607785065752582157763392219703908574575385320970136950757648085122091113608180868218815746981423485359213675688384548973251403234727727180361244232589196431652262756925629759413262801991354745168654285504484648835516747792690471739713227108799030776617741784160039365122149708606957314912492673807052017203485449388969221595309465551961094714271759851347195089434625044474764473460710889940878841210414736412280065583883161273014213194354078215799588278644295069785303115451785611468254596598242906144272993931025272343413385500268787315259951319614029590049102046600322951694532232673397936808692756261345505587915133238489885766264723776872631922147824517107902515846981485404629656778980333118885931052840822440879866620134841395891769634170451472372266271424855763284794646224662136695116191391705784898308057567781847304336404083142593254308313127983692029388356895858358504454943499850832223889736395635605537482151717084487476905799898991377459764293857737219043387989101428607689365362186402100458108339495090609529436112742396557543558332516653385749479108389498572655675694360064952814389680139317678654880937955057195565419962796283131796472751080197965329444375546001430842209716510466330097179496811228221903087204170879778164001565490033155711724985695216301624519144196081067644980295302752494843663021661732980575439546407318977745674542684380137512008634839017085244763006886480097352589577075623836562142369079466414364694640054518093245238992359329228833949302562511028216923507469786647502310854821629732282948736691956466238036892435296271053293466408391511529050232889603716341359129353647980955905237619304202078611910372877701994902202660206729835421942027157827102899419063200155360724223202415023564064868559267673168398420677947312740422097597406587513205277009530013475381505914410545036975628426124949996005196382023598433473237280650686564630460091311023176187701157705916823213628363642841985941341721583947657310818535939362464542551287906764776226610424243762289616142691324573791341003686163314386814535553329307713899402566088965393243648113348609352478884449767854452395822451045247494145341344877393908661323914666304950183758478713996517835635305961610497536609483026610350687017607782670728910000238392743556553692741654418975200336505667488425386316581942145862831231767665102374024916625849293767936619014508391635826928883520777669862891031753065588658103577776833428744586227768760023967022331962001074891536061105711587758827579826945852237075745327782250238051561173695075644935184025912244352720642219836247512110303972903352173647806324430654841938970995910183506473356203896233097086887825574045234042533739306374122152200414941928839003373302699636464221769556990626576445593964733450990186816044546473919499475087912960832343262726260691796638351013437640558573280165359856105534758773210746934935372028788589813810931580557657060115213647058418450366079688387247406502978442835638876141827381449476181197698903214454495993654704661131504844440928305963388813918931540956713797121358669701904425254452750560427834357095913064465534812612110952570838797842984208242624856406823513121428791369656245822833984374810141600919019893344715843143945395885866647676067340553639927115649584663391587844270149962839083373686484113612818804951254941626222700120990408602214018457975711324134488607515735032526288199567211176348076592712853634342493899062911800963277881787857995194049681511733105033184033484182370856877941450881763546850266201213085425126030689156112746350936905009042664185934813355728978751946747575074473692015884671700624925830581749271703316695999503331749231157015109365076442098069264863950169688737363452421961838265916696877993808355405444128877735414517140766063956830222534576467054220451936694738955721919238162425999869585371889299229363597899284794490968630184174748069446039687882303069696830894145780918695376235772307008661923953146662918929166602735760496654483803331149997391718219984952102231859073898450603016272880059671131557342819312909862124586966475289235233110990856251481774384957161255225243563403524984233809303495550023103497553307153504406581097464374116969215782234750966773445277650318523779051491650129261768323816277655435854442191350139953621261792722484649380339655771188584845390960512408841641220525625276299406510414391325596631045143472128544141500013812075293151827180052586983400295027195650773760123844520255649083250084677125484647347680498555768346696828913805636290343643568002410604244095941308319498074910366321528177565569056317687094778395203218834081142244856456207261421007177997194815056320157178864369190310304474972023391899573144121787877566367227275237301646154410761710934940077758188418969296202788630950518760194568202097389945605240151138077858139755884064649729766187899934527782457875233347211605214459467928201260212121899795056010018460565025394961426920542667578307080127412489220807124419935695013367818199320521362826167746973308489344821981921242993727331823928103458402961428167310218001971797953262252261847124889545127449152605918319060716128355030826864615226602753776321458662207053149614790669637601792229587730140266682507246678965884355237417806392561160109237451642965471033332544219797160551016899953397957306039333016532857963476173769797453626098308073076920444308208693956369670915795313042133992289785693692991424535184365774768001388915459258616678385744876374415463107311388449084435204099974405193351849073995034716144994600195913796513305878166585371137375859156750177687273455956254678134290676776988625878547876167556775346973322169600376289387586978152526102193333936213573211718400127130337938356485136693840595122413291633041119980850896415856204099100492457653709660366070873080820556367758323000042717964546356738931050561679179029427915035409959841043181843327569385350230683496081045960498366797313819976987761247485486740059119981655529780283974579235424300165461655878939596361175873353000836517437228889079162554997555051630446229693556190970380698117696056976857740042735116696810309460348338102739911957977433543352556725200594637414653114139586307634279608627801229678355792009959480690553318950010109171869505275794178807252185054706120035154924078605120341184576221257840266465191204328185393199228518351753424207892063166496872885940288303267073907732619647832958625735841624210581700904007625044701287027927351144084976711674322939456483924841024228329470593782704352348871465862629998673348016068086033945577962729781754691748880645154427211146946864604371303286033896703874389022663402615056464977705972328336647738983512617250409871277941236021315101014872670654105773667895046993315205494420031301123822553430912668941973667507849357813823969727995968485593041387131759845402683373009878242137329174360635922682897926216172699589365473208431274305585624924508373848918694392515164017204685892813980264645344671531051013040777109882169199860605865960979164555152643547518998813979897074691716555992704254383567995175362829696292498196330185029253598015218179486586570920481877345842503935639122782793998232087882140864374515338205121046514865338626515512990510401324662578635012488919008195176928887951895787777983498015474528982523748859241391955937286302136340288340828209283921487742805089520826533314509585920905109423359902231396614475510580215420496218190943125575391781673477903392288678193459791176032709462757442727264959666956204679844701243720432478897528811868955327176435846171734585221426302598033161872754264891294800384968708703890037294766309351303800970644568316059086047857691863248431444587435356688137289375063710939043408146324226451997501353234732583291293449462535826700123151096047760615339655555791656871398847739592652474484866617143944870232199624537516542092982357500272352874282065870913838616866812595447023732505884485063800195520586427309804430727401615400631498773519941855988727133273970874134271465120578889178574023239474205874126386030621487394149323100483429735689273662146375210077868086731978954106226442745068255730028870562959791957880966262054254826328357706549100936836728227389175534369398530470495603191786190430012250658025082890971754011098372072211228030851842594680289861896742850887869207814391338774676164392160071068323186257144750613465152373148745800718708708304718637258253327390711002013301730129700490812738551923823566611306636138325942487423087343381858092538718345197673752242619111026632075702663410539860334575971891290582395290119517811372849723382540414041341147644327100524550830384178612102144064984512159625476422348511582264798407937260735801309995566101896275702121078650647367625395428343682273234492433504205288331426855606808483372185761665633062611026401407838186258886293418772008086222489657577428215597926451142064520718139383054820975904708373838736145939597922905835893405679219279927606122619812963658366023398675926702011523617843255589019586108496682953953920684902125243848154709762490621379614269785245392205895977295732889665367883624033590640790882009924949095982154516232810645229687346108304029162067236400748333735178519607359540645568685946353423669569041085171229459508702185732406604003006907925998359914865550525425028538484637349747927229671507970861960612511118708663761444783756532004105764290862425186982364409671071552108950172056314307788505091254651376997378771879710889484966516768825878891759977009425963586193359853120745644468762324778098971097256650739285112535754926820925372503968410719368676514151271752560343134395125224418837469892603539668921978269799278434821898421490095833652188078156423037124514208058821749332768155769540228236260631060304291247288003601105884617560911858879983115154211906854978454556956428942041056270304776470010361757679690368887969236948232718897225329975040382166782063308879342336489971200989381386135072994881083898318508054313390076771700865827735820210940478132349936946230457954247524142320756535944028802931222550917506050786571595601807049026375039947994515977850155122772196669323753775199105755409790546779252111332652544001058822497995463941484441937147768359316811602939035565036960512155363656627247618867875426203697210674161080592500480589382773046769003633980252090111610392659060859175809466551321094744340955742230735227491551980246956917762638305916333527126960863048938715594205958150750433622068434407123413288384036927841687847721942903577109796714631904188846754175537394313553924957925552316281141839320219072532205257087074495287285631520523480422070009600492492173238015840259801579275556835874873438733747275350434501092558339162802031215491551717850465739315784713697571779197698981453080214102461149060096085849748897251585604078127644116296004267250085402177785894676332387737650592870182893080802719319946911657930142969439939327550396944190609073485304992389850067891939576246885765706878782598761587817907031959418764256883136100988009924983991451272744421242755228819993773690274661359690827211500128102744571192387047530573912383336909145567422410801814209449525088027535600870767415393435149952106238033609841077661867511560479854321564381037343836513305212861603200964062117969021457228124857631902125723844194178058128678195943877499508580731208775357451049941496485907638238809252543732857815561417014689258868059481521522237561987364346567353274399298211545781091798330155107139746639295316374193449120542673544283332886694920792292133837687399844753847522559549675067492818086312391450355506667323432499655760707549873852395224471960444492147862896586378422474150266900327886207747420731322015016822067156235327820053110041632374494566144501542273170270807918648003787034085881364531457360541298351552535419675497110103464542185666941553723451392645417001626881794843757066842854923610006994875257643619308599006589424880574335494041880323344669728551560331953709081901695219165170834304859359933100641835789457783979497324909064120557679819832208059930390871948337834035053041103100121095646848248079540781571666851346408369093808004786234932307626855187381055850365357999815353397792625696195440005344683905745909223270910242685541215104827486955097145496962516052053893766906982124563867617977465027135939316083626426807321236161352348157328544327853457386075692710550331170335437965637999768142521655651671444283453788408914998996174938521660065197309407926883410791587588914061014814421829817025810063523167141567822054271949731697090850450189701138261949418752121101499026254648936710293647269880248067737335040960592022694838573875657500881400956941727556763887075570651984501607957972195368060594563202173091864078676900406615607016578919325340740307945511950622585696735672312639460134300099337179086689377101648553778498022540517675904105961827465243780283566243917756893021126767309110938686616853373990997423360595473565278727860790247311519347197443837232073907656981073617342890194730466157373614640310587127482524585434802549777170654485254991063551502239386797860754809000101554316094916254283808371003119055037141515453312486764622775053641695550652501200274223083480518504239494890356995525728709527318466285457287283323184995531978692230964833769268523496235833031002752231631156842698924432021445509371365554054600856286873812939426132215395599303506972432430676423532048629145948152251050302973719064044329322171304226121600337502482675521064816949927251749141444898035697097125115419412543411291473737670166522691113589865507886736708362719666403063964977396243879616969767652450496533633777772477563917302583160108566482343805342435493370963564605931714175293397473790751605994171520991741263854887794383349890836509427667640434705339095164110145268224431042604990691749991816283043505722892211568000147520627580564574032659639598421855133063210087563840743586436554718030227963951702788896010918638595178760808772282771797390646798562434403300630334203133990276071535966038649073883168298436999601915618202457537246697124324303718052277862548460319669157390620115636018600199393354549416129386561462203020885039513320106306206875474103291443492082879084253121051128251661329809776564301154016440061753661378510628011680373888342622177782743621150944852970679505579823346121306694973674771843332502091112351968203643847648983595307262245982798049968607481709279329527012714443579303954535177742089329133137989098381979243239871463037371088279159938225989981517666326456548169049808111448786339421626945083566702292460724777367208533355971724143424079841447281133222576795839184701874500509867039073815873502334727770871334127610812827879686459554508052344733254910911777046986613211174336442117117071536679326740101337629859483878250039502297136339736475955853461130936092732979089173583127766570919375192733866548754106933853106809221339791646192867496513208889553305552452416182457707848171898767825851215532052576256925272787328186369121038961368671852984889777395752457714834231812289986448293658813496808496481301300887704135294137142072623045437474575578623682765360617864392079158340846480869463652541008747040305781906486993750542590682791060698812490036343177389281132892519185107668377085656721528699135001048693973474195769622335621120677007304019524433688627854113569106832665358970607772584456637511086859784989070902008432633754172531928607746615073822323113345266554381560267971631505290849589400873568631326451895428319604877178747496953595671975622362960122741630857024489356896787119094821832096044220438311036234247724622865636348719900344091211932825035843001097948178107412197602259322353341707257753050544586700278849546693134778847869416365833388923963772921350608372718482322391748681909594824160722347554992048985278431435848826434981959142103569298400421466229021201415739699025106448642576315356823824977520787805495045677978004461590666504246136793474899985892692570913379737873317383154434615380929409195439521915060433051178861002854200446044154564224635201511420682291308604232257689869336382491676847470318502971211837112504151389319578423694816171541782884338538001531851867909876738823473029743526843821087453879663241925561997668489010867073022218164437427899380270917159406390403471854579873684458507339465813579581811417952906484516494625307147968150344822080415215311167766101302108195196162081161095895856144178676894253327348636227232578126599375399291008819527686469344321680240281017743571357965904208140086680950173408029269957690310862412731688893270123191249210426252391578724045364533963886667145351947024844640962331760283537708513222829785714428325059046054856096621568370584624364315758152358836343211141704427779663180422952477316864257513489167910362764097315544277747535233790563083843385210740869852668545023982594700565203347826514268861751455360516355092608930976176666390620439006221858695554061273997210643561282980876729019954183372201469811583383391590559532590209216592233543277233281130985641024606650188190562991566162105667812158883651460706856805388055087146116461752546122498695832323582259128494688112378001799334092856671082801015788564722306360074597315454099064428009761023403619806932407518361621473919733209573600511329125050750650879043392695397190867160386717420926846646667427094593360688329304392698075454012246026928481747047440210021906111573771262228398705081988417880165343232183747271674854358783235596603627417441951040402928670501386924586042603654496286177860960627904904980430637213458495591655995493016754329779710575517716442063692152751641501789331189004184880421498099284692410955694886877475117874061918745353375877732398197585214296943784671710999008702822927116138588509532857958506154739669304888071472972239207825494080253981754508751534940370016667036384933051305889953000224783849885044902565780863122113605284261536229413932312182364618430702222346407595295161682759479992976969429854159503949891257102384986356487543020190136373896506245226891589741705230516783661737320276205496109094705841219078029080064189896554843386328365080462478735802149401337960748772949075844956529861164577047104495168553323998482411558555774558533030515645653901058198974949960258231643898396205240446723206029808001859435815228000867163622248642333232398034856336117755994702487794785868462419265085955901404210190514579336590911654718690900301534679844553961446726606217138853418666526223744550802287490550252386478575637063847279035521667235944070237229368650527052958752371173043615524073388547325215498638294866701950185509707468832078120186116807299371557077681524036200412648832224765161901751919861356920998063346282236719059363875344292625904478500464550566141265768890868726620459769557089940134287319997509055730073405379291570307695285019039077228792961922949617200146476362904874250840874596496154096105047413460504401656448410714296956131008773694137251051684272123170604162434607722416057216663065694209477577266916244591383771883996946249808463244076621839269969217179059451309453523013931521734122944861258005884801233451162373616404018384232154677428014634495138280587462378702980678482706942752803024257126081046345783112076501693349469937208758146402722480851337778680305912328210447839634264911057684204552616015334797830542331328004118847423484537085054652144351313955435651349475044992790797466051906595168988910243104222026303299290466372176558205206935347613660982749175925345302801970958466427204895471780920664406257983225575083688844116003487639005212741406993841398240398934903036057470011616581357812333929887304687626250869165150813719508215266981624906793753200306504952818917456775270754481608179853591175398823803473786589158657446567063923684783865741016428794893140623818641788604595684172252663604781697001939467613619216880478697258526504737199100649551717776202106076676571980570048865546997318719009925739980812190572014520488522512493909317385065608806243551290573822182364136443893093080082599031357867890827664988983389533588724703496473460725872828356146998341975644706175296536265501138456357579604956679385166473864965577643699330130047671216617333838591325426285402473986036236273271337437726684670377598577491246379024880443364548386454914081843032658197188201885084808708884319785533509232459099991278294463367636520904830995110233174994856230096813764736226096720007172412508573504816145148353919414587602549953321925421962096671218499780512372916629233786516888746534002732284793303095176179663497932708473097720354383374726404031416381332931766977342890855752537405563214818931281772656552414416939698211951956969910681966751344739932369542856685164758548176491321453070451665466502839389296059819670289554869339728270951684973278903457116326012432623573816046009788605436839458042080960118428233724539682278136055912385445800175328536278965524927357121659884714962158546695209300143014999966010147959208007297987242726275705002014437597643604170951620522574214454194429822133913171838705385130252170144992517986083896764560115023793006474497766649363392524214054186580524473939542649034877234520092621991127830600227882491108873765129539897995394168067247032077586395849049684596117113886692174682282631528798224006460633342431230518891693147180505785982086128318007922683561891952667723060987497900899085257129124011183037561357347855651363501423533837551589896776294546675146859147039024729515854615907743835502269189721912447556246490538057658041236450618715229109087573795715897802412638814063385513846441626814152877504976860482029199402342383678241017258348493793662046861172273810691666087642986038879803130495248064767406074629960943673369767687578729643061609428057926717105970915113415915322055919404117931685026445977779527198799233992147131899574629231538760811420014988852915420588175130231703676514631393826539124936968567723191993986356245470778551645559087559023751413141482419347349883498046195950537417715174445473972158564647006315428739969128048243388807318742338408665741720881751027985519512223796182811691131288434306019342351342299147609737447270728190789779902010175729655703906116649463885045909201231355562194515958191533963449212040486939936362325514267277887482081224163951424308992280818365830379655207068443707731639797213367565491594791910235542205689056764703029235591636468946292471719689020145960149769887802231723517739538317137149922635772078247312012426399342652496589211812746442548754138739810301684465206125678138185685874350172681955675085757858098776060783678755155088611456749274396385668180229180382023332733950094126170813775348290166389207944808770590752753107581469823775175203455796798277160963572287108371090398912299139297293754515810132679698495801549426676144941325312215946548153345834820196237099271838265295480100292940313869905280668306635359673627992526071027202180590208881286538172596850083919535880577394163184401954143296479515733331151851619450444157255495235859442095456527310697673087094562214314488257810399738837018552707349561273649317412483714516632539229809636728286394245364631178154966093342677212439070419925580446525278166241721797207969339828469738843822664319188190159007928407789385108812911442570538975096794663703810070438777158372127083963020073117735231505094496516314201475530459123167204069660698268867733011980976276563251953704593682431019148510901031586135654773905745836503058746462681346513019850510608051837200815007765778470906857150326972270117213311211007082103537695045439503139589601043969749970903734146943982108861027604971200609432816351705294692137063958387907179561716172193947999870807532003552901133464220571042804632245086333046216626058897399318679416781137577984486573227270283861155698592721846142524616441777811717696209387995244330874926398195785846805819650905337302362380015089835599411198073551030181861472061244529777760377249258019390035993429902484089244040774052474199933285282549463388251439517974650946372996873702454221063191347218077908382995178345429278530429186322701914426097288872762963010067393076368743907303467202092372681412346371757913723621259457700613970538636875226977131248604353101824200003677161837372305193058850147645530179351603858074736729460147813655785921729820704414115907492944811513415199955613738867201927206796818538700948100537412680677258805853597486451607789753174372350527771945904694555753888903893308020214500347925001520353906140901606022159002496868232597787264720635248834266499361018049598084370257001576283724610980238258206850459659962529154867283636397631315368406289933176681133088806572895733477823617249070002917029457282655370889511419187582432461662397283466284795480549716665717387038816127725411947851107779765720388508630201627266353600263766325831615453723567853457234630804287216623271964737158072236506116610553159383197662857457457505313800222979058128603092528457703120483909114741316101529899495277457192741766940632111820472799353672379180133086699002382244886720230076432056261301785266977385668681092068668798108758477146128435329702350939260496266381671335647023962507189988717043443576654791983796952845433614883872738653405788020845307808887093110765615990266191729244246263088778941012331530545262964612445873508558209510151985565134656527240083009038851315713939838488788184599799553954467331607842977484607363186347285772153868825955611422439351683230957751647671557622641629254978766397666081003117481482837655445823031707291369105448483314884393427671193519806866912086516526925221826805890154825932567099577983244060375557681200714773441368451115635879289530124648971354656298390571644253477465680107209505021711337694186189016539232421881382876961966779764935466427566263315177167860178953884874733575716892077502327887296849771334971528524469178700527236249651171952153702594613549340211279886356848719767407821138372225594389353663688239080238465238847377784618176515845941247646520491286977789403982393898073227567795847829387738363098285243966324112628887742974276064630817087102296024612726274453705747540682801857775747873701869820477717478012483948796467212489518259511067341388588790636249053801410411834795749906507906852144470795384918895223457224280063758676307421671596865902449696829593846879300822415451857555209682785290649570758604087652110905412275340474821811306970551505077449502161097934026115713182965172083617038507801350523392687231232656208071577535292798176516756152681017786961758263350573244846195917367099933211171026667946417244358459468890097324425647292857675062045470024528259334222101482612320253335112378271405169247541630206232008255257843255547591858304825024814686954473298990132664296309096536725239741482241261862820784623096738056533974371829549421274411919820484692785757411890101574515582291434668979270995498708515408619320023463140062803785144149452270118520318323226406270382184857301044174593497292732728660834741850084901602403500777362123206485375190326640192049451613268256913591393371580903329939299860562321770104724030384363935286981015631638491179443965518527690698280633618936526505598751416554636928857408408643373785627330072200567492343864573267869827077750686322872396350190503894403003321548244945261332805008840045192191732800802976594080630696259455289290291233008957950410580703301112619183566110349366410763828026675339022732260513451295090144980627140807245715223396750748196126182338402755894576082275345450814380049744148695584647770063648621967301548267536975696566471430451253925679543610230244011774256884698960229836245086834068332551277784130856475173687486744331051848174631612703601027525855440615023174895505614010020891742195878342701295725164317878297623683990722746519097685629274620424004421890468807185664921597225909087803959969027247873238705404623482263898180569153020989254220550993050761175375925964881334851630872511945821602993303781445086286248290706371032639078205817540451018953702339172269741478999783963708187214230966178198859389629125760051894214179602732744155073946787705990259855480834136218461496409222079215470165140792426970294538489715929973823985093867575133270309353756632979840534066334059291957614210595830205106365680407646195950866321453342474946145845245274732821996084095930006102110540872906206920289463400448974180924182879704535998125297923764212315994409840871727830945787282247802385813644199621161639289876326574244444137268680007124316120623110654825827761378590829435232045940933248862916752993604455033667410090029314682438396568665249848854732097584966126201020338265118194928595901169568462271392872935655773802484122133030867404212781830769302763112423233563960887039220018718453952851658210858384235018015781352285523637290342201266795121488896632958698976238249600828758013423635495229654218544452432869405026812171984115042454893313473504464772097448881071672879863107658199263026212300620446278398077947220238625780063106214183419751357462850074104197397224786111102393683033533365330113941380655414169064579925967828070776331457739376583619757880784774913676747563978927547099033475436598641042950245004002912005240571057186884319791205864607941864538799889563158313274493555488662980579811967876688962988436975214036377579415760645994344903460548809635212776659189394824451549194194408666875844615695673412335542945436494237071721814502800794210256198968026755972315196285733296383449127147374562494617979343728043377264511280390746074200123507407190404845590045461967927111759114659875607155043235917897877602790060991361630688726480717781959985164073682375497057461200364564507572191970673470769980295927890722073825721165940863363188612682385908547852017800254203282354388200603293354675701901753522284916579349872415544570976867695857122602515354087667462772860840768458175899978137856941433278411836939575904270569375793256415939469799834464282756373567012032972866761773284974704128921537523029797321390022405905347170837710579479866899755167858081213984266890694586560304739363653891892880769028435098713279691066432811440654101738072541610294035022266845767587927257165915583504624695676823670380680638095476547375520751236109090182542195422723961485677287989568065358320806667050422563221322385150027880333528080981943615866803012123091039228083669375264561266799764301084941048244448271793731441642693835843022777381111876365609588922964707013106676002910032274133450497751826757951067655685053891614031041965100276226020264079372349368244918946149027600909396870453832846029805346193750720318532583586504309612022065024222440801989972849704007377049261776214155946991232271915137318853668575275965991859948386497198231244294434133026396725267625468804243472488341794358983414621219036990418592956303288956226119996196439980211751827707742117958752600756999501042754779929626334434887627349709813209472425059742277859509173047802405986582821706560526428710336592155244650809656474142176471242827947334212496537028030459965290483442007743295194829272374879667123083879276695589438677877423281782616873445803852545141908265606783631673852086043904026665840815724450172308262155889041840529781415011396572755957958031705218603179045171843625677755306836176552189054921474174545364018536712334765119709359022310483479092976147950044539634216366625449600928505739291210668021682441453832181433514610987521373830346992080407251707219963414880117990232866215785347157132044934545050777708298811336490173803234094720881191060204619574704325587391215467425937986143574693208573427897412630883582414246908713246473136592441341839271165224335347340980005329385654688116538079794383642751097070908770647797434015801916624034528187525680632166731145568234385228711986858852242915836845827095223721066095316560677715694151743945630810623027498643333064599001454372234449008117356464638117024669403879245575735270023710390648475328331145840807973736232881017637364083790609303476940792515609529965221226623659334157339076944655763104366704986157855413606147594640035542080871522210467806609433686297193017803070004797585575513815387038405294458953827803417872379494264680279426768155170811022455404331639343771886149199249169850896122023795290405573632693536356890359292029078397719744324237500111149088695204467639414953859955511229069395834901036605170151369296011341382764086355201588352476023829369308209794869468078080799837654927763290430046213285214817848669264252213350414465159863683294119921642414034071623169516358323143188901655637507158036869658279796184053284471965606069811703198644696158074985977858929562489437262812654063542583006253620098290368728422887904407421381658461407911910027935113010750572278723297050951029186790789238904115798020397095273716426281136366108454155073210786851104067976637330054928837925303232498203014830050047486771306837629553366940520392460640677187574336880862473827249062007437787889106784401371784105869353591564194153048888378870622927569063997304529617115152462517098081378161220177603785801966598241314472872416100434294393638892840283309705293530345846428022625940126771354669687773978562152851615122456642240125051263734193248217213446729835059747113948203226051719988948559285131182073858814196863455855127874797846930048817695454002101861912215167462224581063581264970260110187871554691024772131390878373928696025576539025944575033844926962725288107015746226578643073004121450733054425759521845502996633823479357204125313137354309023445449664395537786775079400432929061877971436712018257550027233643379987303665017499467137014614543940986241329317868531279475858924549565902361507109383661584534556766709398332484073899901303226650364103915613344680082014722329238348163104728513788128168820928856263501160112841230512454528120096637520930083435385955720390042493735129889799527242884919586010546280873800829983771520950358573280028524272704929124937785454205447364513114207676663797265972701089088199838028595502318352952097735287521052670497378823593044556500042345711438138057251036335947316609259825474090162770693399406090890005239639068948131122136833579240479602777313061323541979948800689629839427120587588628500049202346305810698571207936192918845515370702091419625022022381971514685454490570796396380156302437843984411951265307868828012781111411154873065076531957252288588017128949548920810085163843201731433066463231754775084660220347851598578954358100106620034100542455289154960398950940571787203595438114711394683388426435349348794995080641558798471963139786971251095182600674780588290639722363881261048774934288282649438922010575538028143524354465800276665273117278132781418366441914142839899953285817861790349390831630424749713122194694745412185635384726087917992468602194048724795191795695496179574416048994045665111947810875377345284982063372048912033390284818082992939059049307870155513300570512016327764932204501075594345888858473553099194396157395168316956754899266944363621211501231929014588437875371852733759162600124752449008662536140078068966111977025300225940003709119539005966871262173842528368963276577655046747261833120857291531889944905644837615967005805399416079362402299973164117323441262162186195571908333153524000286371141711178532177772359165398299887881257386156569364940372557881337107316219219964051936494275323727116255244814461099434971724216730505002009365351255398875236512800474263580982302869794215707960574779569460681530986938199069348626205479425094340713400805221086594585359013713061086564177872977126386482133651042609872888378432609529422556380130518416112263990150968826966408463253928341151675646516441775072664582117718898875957056037608898141166227046812612325651822839319761274317835347058475755958784630708499142824212423629278982632886252097025785557938309927630767403206502637207043482481163816669959346028402507498486832019965971692556268153197702845588247323502362105332814205458060649050264932178695944105348157011123282189102445846667297886514261908716934616205265901561369115207165699593274943595371781434432863477101172824506684241216234296786903374459082772067428418060499776039483256210105096900748221650516910474609518633971674011251867724012714812482119046711140150613733504890024239928552866076938827389191177519643234361061711788583373967281189921824709896835208954960990346731763358082978720454325305822231458670868241899927223399050662694562869489667380318341841617442693982012730516058046460242003579658415273085401193549205529895758029840196765006526592014870238716850172155627651062351377897876750051388087061636405120181150221747443299317649835696324138133042443941078502547549986645356329715048477840151814360944205816241131072207295274844679441537824828981992936292367651696354525666927508119384066354725822152461924171517043282049037280881849669732078211322418430812210506516496885513772677515217703317640588504081014489157830027049996983162623781808780911639209577885900093404190228728591082022269331865782994050854768091359965483904180766628179762847760422812033500923190696674687878132747673163670857774093608456187266544844912172883646546231805474913814749338824353019460296150536371285271990649493582416015362245954954656964801018344555825730277815735779311195843966913405432088706825386759401206017613707187483146548246021731411829502012528668761157251363371548031904291528176787089283650565740830368427984087347042118723209831182972329034822627283612706511540368678512440159440751373586768222170725285882980163860420154958483764078536901638535605384130769888628047576518795280667700269293719177024838775196461494047122551599482847014047013449553042828436564238509492704272146595060281811756143461095412818124818425881303574386953266420509094671033463746195673357333580910041123407228014464554033811212418595654921283781330764429006267292632459841935640696885359245375952554320666368848089339553485527828809854537087773701877530088075078382833386532618339958079663708255099605026493175464476970971637641695315076157951715612982686172496451714442669658922543639248209599359282650896707592568484278455074972301932989860642670378208062820721531380739148276361843903895989988569519094060950560186662572876428863384453859535555909724647559484276185671685597972400996880674363283223579285569684966693785929781246407105824524833753742966803755305547721126533867024511038093105751738125433894902453887277193845508590478975229089421419151959395003760668402230325503231476213865985351764562042441302366638354827524533297591651182457203863087673037797508345190733943378347856027658507292435658069691919918978807338694705907353924932911655340101406605667387961278442461664839317955177455746197856678889185330085919237669032548102435378605871960381724473795423342051349286115481187899035354692509618942098125635084702330384398201896959222405567592919767495052349982165016041803304565326795584293621244282235615860057846946331005183025026855548962847816605860426340485846131431014547249125294602396629204639730609285518168139922433246501128127607167082698849127755611205905867131072016214816115448386776043438236720210523979002862010847401427849785955713109647165076692920650837078318537171935110180789463913551187674414165483632898650615460432167841460175612362517203134131180105175146476856617335848463245117442395176350138630258799826485920544577127434201595571175876999969144163642509217323936331498401587912771862353718353694845470852703419591752996658428398316221646081451925459893762283711238104791486267752854074417742025392501276034860956780238303511146294150681223117398950494299032315995422567120041160655248913170795898146281897149847972580493210437619063686470224247069088076177818236952919499132111814119231358932322579037926717878203400494588647712464026836819805590954070605652005327212774568417531212000304140966134625815810535077112578660460571886013290594471646728657891843994392917107339667801210523238479557929910614086332256016721303899760425452560212286367226570946053499411593353988588932381183791780702919246047399205700313601041681960817661715680029928911480319662714092535047530549717617260954257924834702637180827755645837813593778948134853409351938619779626224163030853625581625747696096472614360187996868703050683497324889021427853793350801223083069035381387944907411094143884747182600948545980643878344946391014994019572676693664556753921391854670777524349771325314649267638580284970512324448367378092631829206170118687428189810298373584533457150548581235258827502344233587770718977724246208135909136798768033625040715264067552551449412914846694203583948598512220002583292164745936717017356097782385877758306095826996768912895263285683992867245714716664910334617717576391217940810387025915877372289166788538213019947954509904440603445505745226644708522649075682524618255447251330936985262537608752693837613790526598314764206479681595281725578783174323283784157292428115267897624420842340493230032108241429715079048701587588880741641038698808350461891949526618241065316917570994992934645583865335014199456730326967173787992957439116731526269661792660457926828002686112285812583285699906062947624037042084471494378894164432546007101269359265113110762234530470878268277009870570362952400371979865238654785309078433853692450512286505443489784961598320273735261684600463150028140159681777253936882673726002978604195686484497186743284767661870593783669509365915458227869201542504289677527062192720243611309960623814879588659319600219032035771894486700531457916095199837279473759995433941723020652517380218819976448939841150487792154200493747290705425734010078573877711080328070759313744502433886094278876845044492108053830971886375814339008177918142394571084887924312303491125348112088283093366843405763111066189757624188392273995196735105950210428994049248255485061414215875995826386409429686504142587352568300131659228762600493957660789634288409676419264830284079539698223116661580539563897297788457097394799414973879476375655223126500401203660873934938733107863104148862833658617452099775050776101840402289344857922994403811995639685503230235963854731446461697034442223129707247319206372780801685728020488423337759772593042624912201076367008404094839511078101983012879946483059828821323565573378467141417003327998432101862680278118085869513294184793894385931525903786194868606579236893522985591711771938465364427880329988629285088054147708360972897477998058011561009547747622748256259587206903281090924023988037085703220598835576177259096461607357276576033169160018452229360996962602574922642458349423155898714972308111631830612104479145222541687018000001144193409851018539207748762881685123409453078253894678176125965326240071578228925083877709037036382624265962074538220758652649329218287538203856306183829232118502653857333678120764487412288000333664141602324050333783517472197171468452571033296909686264877003690414797029558400588017735300708419454045499841355310326830160484749180161772394780050518954715717209809824359090297865067765387694108270949508759217426838739609953526521634174157962917309933732689153821475082359812261062049304400569876985841098398388477193095407350740280537887454715121459912533155728345971412619708113281446913143836094522288523119318472876355090971040094074439306614175329883685704197153165608714820320913045988018202569854792499066422264448359056501250428348424889384833248436919754706218810062469487167264296361440409001324256582371084814074221047818529646769344099868966161556725966317748608419883506368273016474572970772692369676979811247135199505575244822090773227033928902051176984180418074577263235546982722356651320404630850081528586687805325765467814657093978462417020532341792131223413085859983356036566295074400933520625695901788408749030225728018695144417729984866061140248907678854983871868322542438873143177496413156197119533944345707389740632209936962487660452077688160278499879728892240040516850979811750220508105806332339479322159183045809849306982636347339667588196265849103568004368967973108065779980017814350205647392996507206726172007990295059323797889254870068352595624748723593528210385627430534580420766430549263639686983768554521688020071787604165752582213446835246963283875870295343006006720899040187529022036404070700804563682588785131055535515259057919037836609486441171297448760151132260110528897771663371268554434107011832730493348828156519584803609669053724010079458303419549698035691251839723507310083258970400322760388306116141383292269867653434311290113709749461075222244409371742403012309528096349871043777680334407485946847997867715394921789588383342505293065586637544439773866904230150869115566043995876415629374576028852464463235176067866115269412077140703972355819503673133769431602832335550383191000213302122820241054848803553325209885827841830383234162438594814027945502907952596951024173851416844166149522188414870261939132232984081345809360855387812092931632924082496345115062252244995747300936573334449846195507568544288758429462357576297282788897452509998477281351055054000613830037457020191678610527390210098266723923890623599364442376138400035763941192191749281336900395190208336748109762276577855856750725881911585596028042074845568724920524673376801319556813748893168336389513168789995322268309078988389084987288042550638448893495542914383695494567342766398085996277697389003031560292123107690475405313405353222505494164026913447553326762625907519432921662283976459585387483708632329777803923835951100623779603551662160277175442355713506576120522405187416421926952219246334833259118471572584737838502021965754293539009285519155676615976244944349630459947648917074876432783493224871489484397596033783206839732758868245670541021199631985453489441681810533662063291417967745469526550708818346756161018366488769011499587421887799373227993968616068601802302719154301496799736441669547123804317123526418483252546807367500689807099224419311242970011273463305124037607122491154280597856942416142401003553276022036564922676050527047408497248887922250050213219902118564331153486119611286397671928191230838116717891045281583468820334977271931084138987626324548338512715575632854370518977111467528210805712208303542695045245357699428921387679554514420872632708602514257877506976696547617202218630268343293594969358440126730366090300062588052396219564846347806108926603105436868480661888861389405728997929138155507577283095031920954069892832527975646646371586981101308679415165067357729211614754168062896111471809169468442395934076143385243652857754595790306329932437611831231246482112455030246773170695591163547660886232190586962509978826942151441746533227542193151943587665884454075667511800399958906872145591258328004597995654448129443918985232296221492967909701001294524221267488662087009950813133707384647663734223827621541613080453587688824006112794508438816068607159166649819399677858020392687678363372823559528823976111781938575839902740925786195051328489997513469103095497487744931474132490818794093076353914962399010794669357261323807997260621490897460710914859200647842921225532683581006163835319495375876059391812810854114687143748870049434315405992450304973751293396362824993398248348246038797926298983404060169873028842793058711373873191590304991614959364743645745991479709083562667643826594887134908915733212881167141553357052611317189580294431919350957613736501420828051922429382639777010386462782255129121859700506184428526833842432691189265931366770210597741052656782960246899107078668026625429336459223491084038514875171644437727496348448315470440348873006402469634718138454308462798755350847142566087262216530393066004140487672537073011489675987318805773375118231314535691546334358758479587588240670484914041495187364064587442925831220221486631785143564657930700821271206149481248621839106866339346694622285773492499437044290746670073830679521507570476790779622505349006042906317172642266988889099834526326045228178532432309486740539608084049109511898898416718824256962247367327139836002831485447569969234670177839417155960777074309822438038465750083683096087876597678381331956630961989201786598013798207546502673245614308077679993853279474666423291051337238184656968830721910735877933320286702362655184354851448283210227511196615668442711376985484691001484590749479233501961726107553211074359732865989761596552480700049800314932371185915343247260546613472108273402493237687005584187223009023392453184622523421127500165916849631538852239350789424490440797782075358111356581689956639295048525788837843114573049810463336036893091849334555988636624806086379190114446855817333109896412278306134189783091488129362934745376184448342004905119195101380152224515344913829281045924890714248462736135374562363242255458183752804169304894771573331195019438997408104255928073016183623427865290075510038552090331999681358916864108441359587542960907067676135919506329782900898081673103893492523150218989877282796881375020877190599553804960981688060061043225015174424669099876777302506950488005362590944464427733689907405206650999151349957327408816648328237918905079398438106699779665512229200212735081807312391517494324069297351840237055445742911225686904845734643707982793137521811685718644717966554689874935150976399908249912000364362796840416454196467579210869995800795658448640515445175134828013067977884425135380133067987512398304786158305513781796596148124657209065449744130013556950188721611868345409951612869260327953727289254407064620048859267359739901547586064601814608307807193124503349993419746726429923247352579247324249003092627566181618576535527175040383955076198808169793214530354460252245959087862815145498749303509852917965207285190769456055453148952489081898790723150538620505167251651674862335460855443860541851375747358744758807516312803421980211496893197744522770633511250464193554234120113153678142161473340256024828950846497686460082660603111375385928336824166263250078758202576890011533292598052090822988061881852381959677060304112658767875912191083473239448092232471884194747178054462937837568786363902512523265086770039788203410729523561674443447499336064152273220790943653799086262965133245392310311513876402476829919083644143218446944080582874044891366918152131212599119527887336476681645980907432565323683775564232945411012993868760978127357421428953794252639720104938812001467970354325962848391771212125889840002437600211393576290362556091133934153151554243203875448941251467773230707034782129407349899132378237310308442735915636489206812108264945379628520854937607111851637281485314013547832097940519592467091128309091970195755886480721206199354573674738880708026958913747706344862647892185003862529066989276397281519726735864024727067430975936480036742653376728527541618125068923077437216223789674410707672163243941595798129689925058037048642029797853507201310649851017432992633968166217914039739058467683959564689303430430862869982309865271432563086721851758606238667843004052269650590541283081517849066122975245003919185749066023712158839172957714995171649124110938018796890130167930932529137846070928442295013583027622997187188260353965834271607630615535474895691884110809683936273319954033177774976073139573733994880351545627513677066284466610617343570809621543048854531116608350055868587931550223193949619465880195904191009392199357892698264722566691463572512591676845693457885978179793508110723518841756645886801600616067432114639333861456765651964120424537737234166241075774312740263640735553928222620357397867215132884352268079792800575537218588233853716096282548751632964503665439625352367324325056870339097662932867138108849961106445388644583469894662000637492537001745108312822706779838119372730915637482076774698843927655222336436333574865316137675450062136788104763518309412126495625122984637443597601431946553013573278932183886059709793788672045668064073005019891829466138268972177115346702407285857839667878299056178810759406994219836154693497995618507538200057820804420881901552588923636954198161837159815914276329580395691156993879778806381581414072425555561413071305834289486789356194818461722296029771566888910073663682361177190500039404600289813671126114309666051075759691801028212039431356415329907692102732414262664563847372009835934154007057208476492816767590119944169369209552349605751035457844473540207795214532207006004456499551206120655608003295285563055596049088268337904952580846924198598662822329831421519729565239195795501230855826455239063187755292531026755910638236192959024200913356839690007522619112075389482570351154881751359353617079627668876738739254169954122061792793180468366621954722992341108756607659932453739078834587683627845736471662441954319169454487251142649827665357108276322940069783081312915669925587333375328037511782006529868823690632340256704885657116944319015815628916391492453589762595420185260032434688415799490692887209200554678378849319588862052422269778480703848181037528125379632971958529252851724781860069024892827284608385312248285821354500722515596247518330296020375346994100646114004787929989987710022058596795428168755033201499456147799377318194410388342143757877254647727188904835145811462012448917945451142600053783409182963737662129673537857178042089129564472399480360903393091970860452884428908455739031618824237740710850169424618729008994354087958602502092527309790034739720096765285724146662633820137584764104310917693888886489853583122341805135485108986642235290214757923412269202454868492629534893527170382074026979867558913115762072141116766561833032705341455768834810680931753485279827126768819051701126868347419962582955447461669890702192675860897419338730854757116119065424209672123671937218436215446801122765821528257690436462104616782388678864905979245271719803756262058264080474851003376320499325124995948948755261344576697692873101549856906278610925716018188034628903422445546705925740903520706301515701073810882326154018471676939968730539308781945000675600389241821269122154829481729934686383558126085677788967308150199697471149785541729827101709664902516166597413213079596844312242287792937755281754472687447538898311639819673266844209982636004045046360509469151721871208291070353301594818234637402430426388309360146663761079269028243230780550363316943643168186267019810282334088238022468475899494942470258704822783720777227729226625170241698239437045964528577747154771169314748648125247700679701362297725337582733030186453099826600554050520221045421055208325081469208514508791349815625087046621441522760860777902610329587209939886789848026733502567250624873999918746798003666862679704374888552855742186734076438006014122724173598496227837959310095963840054848549287439744967719235072544408334238783498269922246430094866990714837106076258258806929082730235792408799117316382157465382738132051270977941403300361158281215595313619709533615652294236521213883214926861132159617773147692937357148472021436447310630076507308982694475702151060655434998227062500398336396306377182908509877067447467531970308611067259288704494921451804472919363425721451073226218816345965969208640343631871198142035149861326950103744834311788175831174028282873477732093992075754776745594948866229710288578409097219231670150040703272314439823624496522023332283437334045850349947664245957265753141183007137940284355179774138053095740962658556437234580855527640490466669015117027653425259453672369827562254848779673707558659241790293360850492515448463210545183379523581620677812764666296841222022714722881562919240076107818526554493965758972810400513422275221157087149777157015917272734673982975139511108945977685970846481332465220662452474826836871313332900096249425879846079428947255029546540955529569788126011051521125850619072050668654814993897742653104784868581216898487265959761181149871757602083027520656317825297658635463359018102795602876553954522091941361521310163739379230216488958514932874163451121837212421679614088415216726400725657869205125115497779242592924098071639338634940217786332406861163490492955329198050729655575484707512180202584438890010927006786357737906557198916001374404089454076252648043154877058450459029951112234937061299931152984441077068916432634217001558797827692098632961297021819630663830298283763754402909438186661674077824983005659442467027449594459313752944218029824923112134446815141579328941946262368920818978718906203746406907900963444140622405271806487532135289412762643602036035701611687991651866267673204425848381186428464410423896132992312450868692776445911093857805443788439333598978911138702082450405512422257261901049644116157221451377054271429353902252190780615897749710095535300391733919033659152327282549842778207279973339621851921617440654200074592958052378246022206007629540911019096431128901668103326325720461125763975915535682952294889430351241722739231888701267944590388926962656993952960474798983676210163434240881562522540445015836406813073272577921135230856959713708050527541763369287314871551346165266421495210826235464533817484503685317588665556057145169699033712231320961771040173639347492655009714923466576293744713240686481906567011825058860805560575609665268755370239455527698552645350699656362750414935730900228615935048442450465776400534250025226160750368785398465225871318540279543295767947729387259383807843244529075444082007883567252046077121235995394576547002390467449759556965883303496207664719657107560926122359548354483391301180132299848126514494769627100923066692937990368730757139422986579083415350117119242801258704369175088291682276621936251477374336625866334450554272337915341331199613783287298987461489796493017107562646766344413794500178138397368476466718326993408042265508280862522090618610929978148604705073203343053322835388549860044137429497258274391006646148910289689395935928118762566364687118996071940795525166048404428182655308435516850687599865942485665996078854255813711698045612695127809866146137623023461782898428802238984155973399881727046345373148742274823277424256269302543733135139703091610890543147562641247323828132822671336174944334645894156942361814898029550158321899762948696138450872330424472473474686450262603001484062224367728442725300115993208600606122037285082011756540191013034646282406648120105020665250387205679573744796222516357353973687764850026327301493460783734837620488087718715782952622651124449103926562094688711351703049599519400556628579942737435907232221944185658756915908576072465680976402854007877762947412513685992693852384264407305024821252985811690803577336972919788508428975159050812658899023174370765540361247142724269906728539941950029836526735904871565837775740993882025458326068097686415825060018619750448961032688320724527749821086516807565010561171617747462076623756176800818291952610938076208412507757635994138109901373233505288998460875137217115015118832147173157075170007881840235001823483334014017749092857116599347718251072262573765325306298532235628634315324614857519730371107204310820901084433057393475792958426324575191189745656019926794836931107039698898460293434789318558349986822631240263955563969997845423723346169480583585569182020605339513921783678376432575895436572577930353481039031754719755669087608774205953185997857985315114346760254699457836341718346896281652281571307017618876510880390320801102405063589599486630234092708145052520673472352039425920409463322443415908111897393942122733076009306835451477411953077364189933815502402839783291659215523738084008522648696587986215732276754000741083164433447831972621965526294309036476916531961620717671441660518339280849258776653149453865928512435352845762315298581891866612427592627210162456920583290146179410743242070978099735345780144268041405675860120297359962207888438763846921994592536747864032224819346177417762490225800192446103765934067006339159566856759698782266679191489539088359740666525844902303951034804381525436996146611183942873632134355328651342205123146580770522617744224356951998612254916697837135979656310132049584619834564556404421163707380355673537317844150045499800231346553702810720140081020653705240164522109316255354995823093553872300208787447151090504021287449576229891924530019673171504609387062251734828846211949414903031315466823324635497216107484268956175455616518687520534727567278505801625356393580600850195245222191634674695686685407721443010842033767669941367054726112336181312337215010221432662974638872851837746350404719582976010665640097272669914452854883672754136944753135492266209656900432610459130574693995172071357853416652768759719268431465838691773438937527068116836155068985992174313834432110728290715044981153013151992287624669556340599990421748185665586832518732082970529264290149562868950167939071480509423998351315973244460765342234796961823083386307779433894918846750430096378527321912422937123405884343473731793924167148385943267550654734217617749555559753723479463233062935095588921854883613999560428122795853963790481472977332269096854660668411045495705150799516690161812708881837855923983085247783804776827558091004403618058505263289347213218941087475500122441307009823670458353096741503304997461721875099771414192458953631799586758674360461961740871878888963004489874782220933877466562074471737716904431629509399092186503213611854280478435721632114969828111784293056887835995586008800923277330241174616211231249146026134698911154470102434426893653346525099244860174732867942232611943989568076068782339593760812044236505199101894914693940265992530324987191503103130956195671686818512051246118144216340613123473697890408135401253610579374003224660914499483224937651191523322544001457804949989327185397992255563188417745768267780779444690226335378198021271331081635828554914624019551076137233718691399631328408023492828987787582145232901738992243026665643973243349350186182441622704173880142135205037515490023525363328497666829273249487216093503937053364359229612061083078982158247095800436966510990566729673527889740957282886888401318377374363421869316263509712731265958023851030731503795666403115712306662567126257746327759048436534972741988688660229285561542939183344269762822739221516570196138416090692279484000086762626722590433460891759710375935443619173640373739773238516105998067098768077347455175575160196717598921990232781836124207702345419913826673410130497863864256618282996639153098799537381437380122625510221337639068735172803136702008040049974527968222044166650933651066051053684659467508346948699010593063942362800598455101355761375762966118885474087040139791147051922239486926532408496951269640835333990156715078021443140788859690559370280282750359592577505446950407522781259315214842951426787915533835655216799953599686278287430205188019269133954987584877960465233389636344784405869949854445758283458260527409218960736416312152856309462413447748062918003030170012278847201372906164591888178030579668225611104323365457566465277524458435597617633185386985429641017391885602707988043348771741743661105486843328395853900846732050756264655706391455940525240721124841919884885297730427703983035553728361214335474480213641089682675723425932597181876903106167616778449060966770838058891461805744843197597266133581108085416169373337838047184434156241002847592612337885687626561731055675275565795793167316615182799436316921036368012571963407550563594934485956992570512581434584636662664364004215613926651344330027438396645059210401260497828850754631337317355251454283211516576834160139003493778985724705322675074109893767790588458053896635138853676750368685712736546205408811278120017625905444810514999221018396556141079000202485015334732214347937321391547275329059345244628259902899220132620907822648970175703860817967157094301052179650681270094318487784287233146938768565433351713898005882973804271670650184177000167044743348765129168809485473662102995985778767428583923075973526371107299559167819810728991462268137619332135759484695654009717825435406699266949452305752907147791498571989350765172425883242810302910016495119679251903978014163008977674920887526440901437206337260712196106433358633153200720688514444065271267035584423804367191130616417807837188633217546802922640479472647666925522523731446678847065378537090992745605496912122869216230815392278972816736046783378104724117799459135114477732521593593284255583143247177118237984265938121604070405110916255440376983322765329694116091812941998976817569435392812965022143641062576238416733527119423361733984477361459511865089307994180605613558280765321709286448612760299367610570311943032458048099834995160297652842407960203864286382550660406158375187147011560349698799104717093883978567639311668655785303660570559336800602390459972008829307559420336307784115823330716183907104478838336840484608519747257363647481123083503301889138915270457833351120264632379061840901407319408191479051670873990062622728661918375584687808246690039540821015085827595513437505271907985493216241291171243237725727024678506816765088582570437774459506709087033332851231879014099845587370886047363452171563229195895902216912685607761132216234948467227525686203647195646429442107187461168696312724229959077334110593659860206032174200246918938958566860350530147486415464078543920431077934644237645321138845353127203914198367682365928316101965949341442923225245310629829563464100776031443408861371970438754365066408837515659379381307368764386985442354696499808815230475728667867074069053522198025919313655679689738934024635207974418717339069524449622249792994097259805630915216177358129439280965659453351003547498266850438712458475752666231952189979676329949232757350019536373963629670138296634435163652990050945748592184374552672105809881966411643337025968869036663640506214223869208422488173416547203639707334516316529089075448513054480857030070933171343613114681421375087551966480890654012379696239082073391819681163870698528615089557099492033949413251093093155777822619773495254415994778221570596185488581856890227246699187747133520069843804192762565339563013158225845621887932441247236956038659455682841195694391019784822157703778182327234600931105151691545854120526387624002070793510009386620009850413734979264293116193604592933064088726962216141691934310508837489021060407436487461938820774202228076420209880640637348631439141751656118428445728212394617552924703460554623680456124289096463052612674720439855290267119160672195613849321303283520703530455715541065914790871327858672323122756138343061895955820158933749848268365230863525264274726423023235902521242372751701197334340179571327406031595592762767850417580950144785176110330436329068295601464941585256998179546224862697548895875036705038360501857217198002080442332066259944144689898333602160291870948324198472374893614891281312002077859311173846052134529388317850926275594324883821028939693476935196557016344437989662798696138797648522289408497002919712467299432941610095979644541422615062356370071611640310774768036957006058806266783306944747952194330224164449062901456725596260891699674791568631951957525379152276194949756093790999837829938060194961781585038550394943968067881861755234247025277970729135770611703766421674850820281734550717234105104674414683701914084245717167338989223241335405534994671281073832662645489633068601746190990320576653394385482521223984109581017173814565478874920975346406497135376522520871816861031808342857304901345636678311409409541934738291735569485596329228530554613637748746747384547729464680946199027325723560856699857061460366286880646180924470437268165385555623445989447440767340006180556824102421162634578996004886223344707624947049777900720099786012494804796625344157424025928860267268608682591215971369517448712119887441946201444961443226822507932923379701592889281274558758052616779167274050539978138039109567762884366664027218347878059804085627034473704630355749322780169925938248556666187522492308965869789289272137462174093583091634573227533447909532924150596214703325393046390370645917633523419867182588002826719567350091395510165696179559303259470963347376194087621048098470250873518971094141177897658812815776380127429772628159096451372082754211192560790008637438372220035665833412700355184043604991230775710693920643151410917217850311939122676346411307326910371348264863348594341720328368183776399244741985055336596294671747240627343284636205115378020188430728460909682852719575196076691225317903714643002004452168464192382900251750247374735165707068257524342692423210159865617928507394426299741139108999490429831616367352455211227064861668160620725891947314432259153845189694782207723363495958125652352594811384204158200444010321027307008714214814098534375669597269381026724637676281997915911120199208679914876894173320320496237924800200437981511701215442649315406379718075900704747688136232073938330602575614101699003992309728420632827053181943512075296533582617301586826264696419873706654300669097022034422322012291248576789746758238453508734309673594428778418873539135355960706451898136937777057959519703919142515860365962595960462566452667806327128931690843661179821587070225375911613568921331076642891642900814481937367741711136628903148028823060851873650793453070708856379392902691912932010068954509485106854914742483617379312368889713815606094151084377541135680411046493476488106823090209066636504642754630178738830503704585318321924472759245316193127592517232370012261338959464207235011304167723570081201232155639264784545454737386954490261885694485884507641882322083429943759131407908966546495428266408701302217137066646076553373489236288174662355292950934305542159718074345005514005786448018166212824393325230393187944041109455447609926056153979741063748792589925929377456593900610026253158486518357458016076532684591588583603474733130884070003765842572813742218698915274446170535843961348876402472263547347336674116133514040813437118795666499916839768297895068939324758691998812563308312534056507828477274425880253127745798223804570725468131604934649615081728784529192612600031870037704154999855084230471232759823859971026829658210268133712135979126046807397517111894356709058742489317447868889650562530889886337693528721330526858761621372126523573239520438089586520645576603100885398809691863638768045186866469972267438783742272217162253510192774511097102240665568869611752748915759058415278158354493081141302094155686562824690308638305061903614364903994977744470047513402923826153029295933513227488001950075539482832278566060117981232253396903196889636543865787200444484078631833868273086731508468949908878037840006871590600064234444692598178831741700073976659995856002248690109129534649982168068861224752556458712192222330163069425469172253594433595740397900607907355576242038154489365509921527083717570376750107122697995598753600220983911111820068055983781050636147375966721587793053317980696605576835341975754739827947889533977054014486808159188579268457852547699333158052215094949113930854193411473240260313156704081214636245659093253766625626614013663289238355130582436197939743996452053548904500546917200838509261110760937053047819596094819709909204566224430970859336572435507650204285479003961672400279050285432241339162019976260876740733261791150388089866528524035849569212881285660854944885853079319051895146833019024982026144072345590900218324818535108691265796377664050511012281670682448854207987574172637457161231303809287055678451028843777673420473637436133173936719870945704617083622145367922333416195418016827118819058307020564074357617246400154399871760389871999600063821678486141885769131867813216376849155716749606943680993052689127011813861263623678332926709241593231367530846700640526656113249240474750578384696163358617375961098201743173477120594408463468292933215403929304522022033866335508188893962270666157596262810124510947683758781390313462578482490762104836973652557116693509921633304003014162240975054876835515855224572833787151454787321399343686662876689499130457293107454740171698965948712023632631767018511448690718584285984693754672025539220330709781144490393043999970173124141065900752143863392531611666097292265003334628617570704532292695622307859815605956900618840936419708128985559646984864305818207100977908346025099992760415106374745807669275121634121587563501681269406720517386167931148432255176369007141817306297446118301406137028105630291418575705222012463519792466221005106696212086636253743658380135946324010011556976488822386062819879450338849345989869425520808112058439326324130560590026645374010486027582303558108267436054211319996339334191059382201030914599662258554131631006058151525513530576825949693351614061283092549889742777014349538249822696818958561357447621098697198024559683059599914498308834028117244040556712954014126512917323012967614222976244366493146813824662856912287373281612833465819402295107358748210619396238158441805694378564121280700091636316031172988482572950233101368069399567839007603824830093799741458568749193397110897549622768382772261688405401881614085155501132943932180971503776458800227267455181982179180186577093082620813087313218194247066827248389053412887529920145469236203787541691640732923814429690326913301034001039646979195014116027935236741789790977342736107579731050586575247071899811866868375726152681933677495727940242028952779631384720583541547343363047639428867934133132444569293675675372651596462853130183067972899508931446452258514254113991218497494677395465090441790274613038580458813421616459765031123806516348842646882032098545678964562227696292877814222012818426258534333413423777100675967235892724079879942253107629655626499133156303504543696041066896401019059632295324587221344102899915313872424529146139262116364896312299214267549254244517541702077959511659801950403117443350390470373212781569027623461489704635254208042248273389003403740529129475592298426963197811347860983173000698149945572363616827328299598667066657098365326900984189105090271919810320445949012353548626812394964452545247338080599057778962183316818897012584438364762813439415642421039602436470056184758803082092082321809947135414554143427899133454965492442590298750108428510849747025626267504436097842726013208792799526836645405516111025610981172470569549133938117952296184494884560982982661596981450963073559287435686156614905879054853152648065497058562746002524491416834573999045274005423423115026981383584560655699220497094066187847169346894639028344590013313305611762455509060208792418092711810183537413897080162313716513665804748191693153608839037768520168397767068943721617631459062781988224050752025631818610608788718279312748120982154439860422265602348439605331562603579163994934182811350526491536643599794182245023718069293190796568715675385402384893465270802807009252363343210431021263874536981518460129504019646749809677399534755754312337467459565821703962638035964989783427568407273139461926433278944187504588021861076351145178245349155704846173544294330495961452313399277636317348398628489754772355862531869873447927224201604201351712465308352360604643918991272050046810276254250123830364949501881099674661365956177698393549411695763040642939874863693531392217692918845595188575740471625092235029345382064253024970510372522727870150172281238926453341023065380257020771764065269690104329052098442332692536020929875168058749650878168814604786320442824942024557678877863948571332054711675818018362085377835479461000105356615918864273940896731134494575180770281517882194929435179784661635512722649840871064270900465706978474651807855785417490547585815880460049962364067707260810525542117658006850779161654706699133239526235413148364242424619708651150075587413824180637078537256033635087271709424208214564464786912979624437231241877377902191830395467685777018908479930899901703934413541688848647311928307073761275639156151958070599192733626944246277146157885715291164733200315008279854165174412436398560880964131566359140921943525130546200321668140810063642904918530251382662258871802580680013973420078100702089406642225096253488162773020440713168721448733475521391957890342535276219405823151774312007037627375401491628986990947704885299582239140860850171917883374025830941963983308067688003926577568639850024938553809003047255258227655269625175586101142995605439834971870000164097310393308640057311643285805302827030774838965875149933833951602063316369925176875461637379225312285563097281587118042490880270242429099753742592634562838358121084987455285835086521796990352472945876666127927998189418143120185423166612304274595764866279286642154069354572552586011617594423456171985828847666238846732221552806131734728790767109012634165694796472820478788048497273869489299660147937648290990704144300434979642288934245888035807110690950526981562332330576997853883197361725851178071993569253609385240133156643538000554206216198144769756696361893379478658211455032025107349575669508254607345887512154462872860390125573690706020110638626834269056883869509079275756202666611511445609105018228818079265304781672273449872307040244237950197665370045479689944604844547129073968832988659915781932164064343905088424352719544096363279495408018658182615952912876154757095935908077650313429363847015138831615470445968296340070640308648962097075964372965229904580468495353781311970004256663652434142235891331026548875257624651932317012473566287112377296233979581771081232817645168174012737711693535586691259277371372703733359009389758219882000010102016102395879494557183247454523021719474856055099745980601033220133392244040226417809570953928165667157496985477465685701981820100422467585711183401837104515791257998850558164735764435267984798727737690482701026957410139567213407282682719351615828236989706718528438666043539956448460007396568230109031843866892561717021446229525870195656342191193205070154012222502605455927266469467993556180214793011170535288677910477991357119439994908791148192405455568235267321762805239044909966420799136737413909970186859266873612081199807225441673537853560777468826537067465966933427065926711861637954565810826024819932515218202450108688306836421805776121972992335558461033519747678250844073336611335797042861636961798218171562701454761683261687724032264392314830370851791148188370970973460921581974924927524087034739793097156621520728584963144327753130998258911564613078571833796237360476162575448472254140416929687729050453176230915577101262184001471773586094877719950734719112810804978650937717302213648580160993050988236293231826465790250009790490058555876829786849267919938262054977313020145984759811100679725017545440133605286986314337840963373470342157375709110695202286884345929886679157268034679280212013150384592676737871889562508260663359621500921884614977375054094145460981762981164108914211319878462427482497644727107539963143126215804953199307624265043209413541192474909036553699252578478406862481647294107722639556499370388184298947589128125126175221842653067641482776454449456223787930010204600615858557898274578842704664666419032240469181397127080182930583657344110227400244310390570529012424276088085447883490120298907762592046376449116789294471468947839236900080341784117472946947729491738027590592522857305876868793491071984827693629697536638805862878579083791308171634063216937758736962981118739307130811927478215170907371931071553208686718075064572578800658401294450460240791363457715108677119996546785833902228306986948635978843256911321618298462182901955690151894238621899349596383339456900822519798505391372914228170724147340869745190627242999346928865502785640752320267163342516670431529715866250238008297976287361034307668621352883183442211246677401503554230346938784395773081205296792268588101555063710127296291054491996701429167716111475897900033587811573296921964442016512043559947893726114209515908597900228317195056526701004101938501322921822848838514990979642885406958293679334080941182975327887573553975913053881945084024312604669303568555595686065417034724506182645217359389000980162428428847302167956195610642362649654009543314640615317796350631039868991209241405753571563354247768755441772247582843478853963938071205445286471876682841477871377511593013818115411896663404879886531723305808617011337642538223864294096395839150708012929660688229149197017513980931641216270683995962139646077557854472612659038616649491412590548366483449292876961575519413422060674627611546692081783354375891981353520655625875254752444700491697821387482728778070518279938577864184631978780654068416439364635509465966677684303070795711806101640066681041441958369678617866883108620867759960818846670453641655855419121323410470250054353872847401463964973915772177249753429674805665010524215335768507629826072889939897862765426585497986939770065991588629572187991332913928600126268952879333739255612064287160539127010257337881057483813611603851014848140270533263771786682576614198928546947687408410662251454173119338330677769710477967647115623079774518636859836679923546273910512078495719998411077726321275868125423678473837825134420025379151635028511067071102950311084656946107505915624764143659881409823990152169364084508986403013324007486569778787977793687682235547338127501809985155308309688535118795867949543164657580784950880030180301197219611643753962713406999648261302806439313133833000276220362999879230117775020050452073642368399553363845753439225290241860032774020214522883515041038216529882558395797982795319094493291238951355403923962984568537296622429947589127794201034820133499196644171374124523111757992691556792701264689894097111376333765678192778614433306337321267572821776836509814456796821132010700037331212965291145211891911043543030704733701908490919452631807050718250766635638601974736601920248993843093978037522215508458572238674623748510165201801340468140432206344487980200471211342094380421005704223256832253811539222585827212196426522408572940471838251869089737152074793974712210099810279360521110367147669206982173966033017319395796341500892750022505053550445531464746033515245582079665561889345367231303062190841608078678682162239896457706669534367285012227951529125284839937505684684252453735597555047397626889513577482255454466833692784656327969593982981837955617109090760268132485502625183744456769591505350969559968932048378233287832693631405460895964260040270540960709915936621136534632966702613462424892376953808479936248205265736855954499377486717657252302567075688558535864865244628900514944165106088114026850954471720953447897917098588773821922173729578367119224567153384712268793354653448641585677185592522341231678596237448047549549208008476549987792830663605033892185567206531013982390386027786080233622275663966842682150065005954509948316151893228885921748253358150753594170572595362593391136480787577969625128746747951519474733060118048609258991293453456229821560361771276153401636117925822953275524972381387779635387699798462493890020120976992016027094519943719463138966420660811997503688800684551366807788464379771164687760087138452305208149426358592549676332490465160007970732485066397173306008635909877990561510075565353016611970918289719594244652688790219213103987584367901625995813248609455134002190622537232372406217759499310707034858323693000833843542265113184895405875162860506002612938341934720110326782611687379975979932643862797743904059037623663891767063447149214399446264060313329367720817667273246498940265780660964960528459574471339177876218924511292838703484251846046953702988208001249695501789594459461993440332082595730632977596348424659232956215903765843424144199776246581270215829325518843495799551869543957256804291679667630065591782845033766728720551226890511009717398841155876274532539751700996791062565006442046029706924535770575429774564463955350957613907024916428885704818672348665223380794049333736209616649033555653411170167053699805058794460296149383078184897451224877873074100429550142086022496220273718917750755331989730239835921925578728573845087478038150137218919559617003638635316857311789401726272478601070073222085722418676085713164327033302386144664924631032664576459919911262960696717501758749494572146413542746651027092566001010770806770356412047770289236210408910117587163935257773286434126332361207185265342802658412275040095698875175002054720838436853924471774838246820248980830496133509016815355887297450918804258569879706553809410963173149717740652981479532258192835497453145931680804446660279896919598042005385949972950099740282218543379603797059799412123969206404487213389449124647868756382439946741491066407404024669736897047535558477214829900678104589469837698733733452961704746147989989107977991768592712682560623955875371438209852385087096315573222488481966148023178744181240890206219649010503291811654408832255957161156001526186068906379643428052467735524541377685797652190063929415615266111676637926844885283080855840334387112633490855573663380653565519453377540265330325153073347248171352334465244909735307864077682932933117136964715918764171720702801933255732110821837475685403625265695626591872726632360256173928635574394350699454376341306550910629707028424036649852024937996837301521007978887368298172090509910459499564486447478369937055901152619130639598903292568525410095551399832250775500185658939849825213049714006490397908680365691638906830109206545161344407532276131975386908255022055940476981826037314978196022904801533696658430565097595932281024899982096981249738242550259789627185852028638387352819775440277437032526300761390549182004603754379341256476820084504246298071677936026188823922242820513826809151591920187200034570005638420749783482465690868506750962869790290249954376141126690007871595298535248400610738980755293127712727917997119051179738008687778652453826650666829903640226142612850186168776438685266908560921509744770477928698093475210478803554693771846601235988192760469267603693377886528624054596294428644315978064397153750779799365328826863123885909382027509483655159449308972571436589181126102044549462684971673814095862368278075053381762445364802025477770374028188178883173741347245015673785773472027702171334836203968115217427683149964287936056048688556271055223280837077745442226773661453721541048900731945433403622061416483115020025836417213379101602911870279338238936042903607547444416704722091046898905381125031559780247572949823625550346387715622860889162327718025104178812077210418476130760941711858677628431039632616801249055705514609602984532649128328715051549415339114707656806543451351803857769749898005433480164482369837505027315941417902671408865312577344794065701482443202463500572707952284038938410250146161136918041266662830207610262939946155359227125497653230939421448229217507931584562120290621754338732350249975243106419551786209814316135413911390369105311157940841321899522668275112576806387281840848481744530900639093162874049516191692057488135166481365137708264938669016440652887457045859812220708187034320490313164142242175773873843618433323722755891082967572351276840745770142468152931090300873973076795884105925148568309888513312813466075930546198551256748419486458743401232616102999916684597437149544930048549997047716543080703447502013001990911330976057096452082063280394326841251748037996206658658185786206567532315037365158737081700893882335572180842895043401055164796794898335438722557203082807296219627409475645568894263365419574754667209387877873920140002063234176056117205861807968943830328930746254583398942959476458665488134153333091907469560450526095468283400726052548160006059101361653674568924987695015064649621392414340282946168197237041339285559144569460826866694740484965152507297115798299905329307289138428353190545271642186928089945478379207756866430061068886662095116831577338997239554503668531182656298595462901830221891075425486543833130968493626010207538476219949997348924635828938216952202880205458714375981124176888158652805418372625266819310489159637079512063686749912463154428755119706474155989036128276690766250741276498385905744318039120184380079050966608135794603957164130549484709567732407188851740712505457084600340093248864397201962706426760306043485217890232130516820165509287960301834458695733963178990067568337265200872049129907643566263259699129189529355886810635494937913647064029310529929268090262030848615142422425392194258261513391911194348584828678575443151215768596121591298642307852588214578055757242540159063952854670138347482063428207756471843614651784831169799079499673968417177443446991919768999834895085021826858576124967463299992921344904462682046778531609052276424026547807793025386150201771217758533076071985691107672478402387363052763718540941755471464159881640271028724630836978440140744969444030635894285971116041596677142468506457959033548414599265972265939168555876014954691525097770704181664552061647362052094128413309847069008007172653986196439981000528370782925637774224726739888118482046236919739900447551860758896809467678965105719606586218227017128398236081687198238028889779109159841181514236140078503534003192770045582835474616605028146560925108288340056669611749550626676376937768523296063525993081830439356670386516791618652709620835823678013462797445779884383605446892951037616504120273132500374817178735088314687759151431548760267974069392027496806446691458773467122157921028717156831363900801564905912651018950795183478301927719547957589543401983706446864544992211205147037698777178164820310863853425951284348339431081705369237960679259104608163435852159868009887988219814668969389826596547196275626470101254074713636173206546272702629897914218968058035334841009191522993398932556603462363035300203715963274987760663123846313511908218125404001433475406943575150051775937919537680818862312556897890023788359740962691207565597576239079311668976728645314114807057904105616942058151574834833122551214553111494230501998016244499303727781502430823097184876357295429785733118103894299313198660678941557424824325135587447979884224158796846290634760501834395008485002795365114958519413050748896447187286159925019117038939147245300805620983685759277469459212137763227752950134279741748879664286498311632359014768487190301480599702267369555476772091763402756113182206672641566397625397344789992396919823726119147294642917880852394151860498936644291557917484667619230093288860399900992869551219965174408435870616927542121599325450006968543688811532682791292397959046882342145988702277113704856126776927108599934502783975288229223312822868935860850450119196049112926776371651265589249644768731844230184560085696701742255990990882809180920044597822867863731742630521409682871655182043047376303400330570380252538577494971071183805750887369326245067473757489392690640353097387912416647981343236720565961779793650729075090289074463580019911003217064397466681986751540122746964939015559839632714014722520602385382241864256025264143250551289835333695138917050192522336325041057126868083645307284089656948859414003658426318386717941831283660655477590839057691057970975524915780207263502756348209056123537023672656829259101165881783548298285207297152368567326716230223529442322497561170663686070121200671882428884929541260558011103462153284375332265239000623570909705230105100043856006525162248197871549256890366083150373139802097280040278990484757067420521117322171610737245836544456348341223752366738341039360044094783254305255114741742195073280199199986702076650769440930047611824706427974701819177990553600483736909294569803390749821543116742787476645182803015763180628920214739886400608935936987910934391423632479316517040016018581774877050717747750653209342990481325111036473287782081774187953919678784329091949691288051570657007610026755779818099360792569790021743595097791060921540004812195225128027653227832417930656474510057486361176784541283801094852549849614110071146986458997683901441481619387993020720491877664542287664570895790534749503607587299951398518956936419104565556637198814880705249110880738341107488698386093149038033621402447308920748258568202548134517084432038193477768907026855599602121723834621269687756929798121964435356160021574006370720124574558542175993959277573902637263003012612659132751462721229989444664409232485303546139836225382688976283967032609167809878580518714258189964908790723847790353185236058559109316556870584120353453733476012431538855178211169694458497113396872777999108797097082774624951304418008268998667596078087757769950317391764361152535177082343119743799521006392801171852685712087401486393936013862094865585243541877808589871632932639147486022769480892617677151809708569039594288774571995752410097106075874531329619157654498829332681066983640812262240434736048320764939495420122059017302052285221194491592730727766693291518093609949279915340234245078589482544629826334989807483747423788873614070632003955515761440276007119880214307749611103769372401714818004601369470695445549562426949761881271216348040748717348101762758569674270092428515837610124958353554549893878205027746117042533483415992713170091843975348182704164589053689849824202106071864388132134092136451433533652686107988617019206937716608129105825655811964603642423290171435403288852847706696224993951965155264867024853407394878555235390967668911824075525437939503264471519384957263304458387666115791970088958946809666756810111200614962737541582032836568649688627445388836304481791349716706327036217186991705633558682450305956896640741753994880783060648852958425478910609195405827071494598282125205376639930647213361692430504954637144580424355828531560347699444252866513003913527617442538008617736331642237398575197883505116737291458048531321215611433165882632684589973173268952368632879498504291223752325912271238240814864745338191610550656958699466048893056172482609950242634918909262779575089646280768492917389558533339617008753213548159888807608312940474674607981214573815096897309368928819330751805370884322146193534376169604191153760350397035943920424023257025180360037132983492157197174480050996389417794722094289236092783670439560738195858686758843174076860789076612454412038651423042949704923317393426208498810538252230286691372917916027751015914417694045461129889216223062832757088698360309701082421955419404376190617590430386108983119177117242965143541190110848107757925594326433124988285016636153351008579903666207773540042486693113176724851908418049207646766803023051937900137817041453545028716364773982820457537348424407923983679393820701074113690778546496697463482322266736935530083040028903624347244016455490525363456013641823340558692457551040755686092301430190260029141336101791041734272734527619283150405355575348381728709864804223329017532982802915923566517008146514061062652337198373854887872303039043938259074927203220842505891260717404200794759426453343572429708262907796830341758510913563303424050700494023190004946875595315598019229263288745783699523092540012808222329175618810043593678872012670012112148542018951603038714396794824022560856945159822758219400606872978856846049758538432379559098972532767605221143620203525193479299032328793009285804928593293377514119121587710644200685499732786368455507037546743395834156229651267516984965666980214536487397177479560166339017648116951515309147827530202024810403988854634701356107208192859137275932110321478578183871011922192761984325148023928887368334429847612066993851964430020779601970388415365596615177617374098911314761195968287640604881575092399350524871259872897073532521527475253501511232777796329048663543144449893795519747872246873799209267416241511454265357651015417708988957444135478451306460847699779895160455018955356425527815139662495022686776948986832978599021469522790934092189082669955344282995824316125899985025641387694437003829048068233720552620959209645406790988369155655463277387770452925764509498836643112835389773638146012142465277162084379052779445766627678299814603351731881347998218290277249549446745003758873101543879516103326526363503323123582683692528844598559573446444445997057031676565881905140054008060569726937611939706234388087333695160773462134230028758882898190707903925599863393696049333559369072019147699400479047234500842207984971283626154099366156338277776252741585138482961841348189077942566369126841798073647757853875616076753740061982643082079715567921256359609815399194867351914333690892006061117098152031925584687464548227407414311051264173870381479653835328980211994717602171078430501740344351119830126334485628624876176384440485570077609518647063533876741364204938703882921046608547913033171803241929257880417614455745231492654360327509609655074187193312663762392171242265086678218675879604493118484363208667090169195478756663288201717557304843190403384739098540020600594661087178261519697906600821244255100154735516460417356421847041802326029810528804038505576351427978704447458277940154356731628835895569132309496850953207574476763685102773714777164075803763468305351143233179780487201828399603580350254185177437788762668344753868717772508393369285350822325194891329659249322265502708437005253647048824392600414005743536427211870918072052459324009662627904762419992362341099706679416779280138912179973081064481150851748533959955056935155745617287563830594770989618778641701458138632673560544103141066235544841594158056561709930569373706900793579763076610658489037674261709995294320884662568016219193398299733324891870229035985187162219183585481261968210165879481415787317193945685787304252900674878530058974781637547780811127031914182134394533938048475543830942244719704756103023452082750233446918912603966117907185301881885146633999530226004728773525241359134831268765238861983100986029261334239404170502352390492967064458987357252358778253589088090112760573280106932856315241193512511402507820015367563259879446408380789967730081163780166778956809547255569047116404402174757677670540027011599449787416387420879387642760421612650513941128731117881256003241425778164013051582037987287303495654567310816301850359881412922937754560679789996481714349829574344360281512387522222105510327646842660348517556430307276753258838075103334481272603791373712985745972560894242468053472274306033119433783148953443541314187937022146976955147889313616580955136134033616189977790408819200406569290306304716683316576349226801621114506085360306416415717205778019369295525011137081441800183334751422440473413285938991326087919938986523575404534927864261389549646710059535129798767825742588203710011785183163887258228488611612600956381518648417841753829806982931164504332726046074431586582101675964659031045493512838553362210272653315954753516465694866936726003107621331599878859530963560130653235971732079393106525462734631709010852992274422175507128413861112981540771907143891123170358711580285110581730825206560770228926393802296259149065291612274479188831071249314533759553746511993396679368347133555350059293536222168874377599238838098220018454927593573421555320542447194682284066648284959220337286082214381940220362786198367763674351546841096677860713448632307460776144027612607395427722138610624629119657276737349124420087093254325772176072764048886251131319022829512663092317306994250718629096752747089794196999849357047348395351525976131352742137000468297607594523906566462552657260575859686511629021090199755254131970793497281006001056036651011196349863760432536804835519753320743807457242487010904778490059508774694422543880077664168758189600439527018102593809638115726107822949591436079074332066436212902789344437155751879864913709044037723669628951181424105762008880334916997968923731171468511585290180880335751804915322045922764428268554255757437043845420226636860814826629212760039424266230571153581024107698570725639833892950849812235225251211473768177147760486739425778612278613999834908076849714989644690505220071343759616886602080157388028777881598608099952639321185964942683479512433919426722104728279030972125631234559756779229083099034313886909961483950828577481367212903209568739539956675659625781177864617063843041743261001429465372392055683952394967685711288865804214701648109830116327003016544592635157423413925598676913810690534662729540486505882238921816816960441064931236356804811657497030654892976506541236974436889139450783884032286437657685420853556472976834319729314114374299492731232075541373703770638938496211861374842913567794310749222329576856453754837743540556995187085079431411786718306772295623614378788969002226219394603031146983669360983078393429364295743642025938975605244640963262780540886211322253209532459802946323058675525828015755242697513906899158625824932839836763309428922000592677014428629133710107883458486054693336874579444985610438539955722031938776857442443842720486261554060874965862780237840808127834616888502202628948108289057611640985821126872196820714041811008094309934592032258871728297082871312020658253235373351170923956962103770880180968210806385270501948498112080996260262298407518633585204258525674704390427352767148790177740627389119563099385513475171908181187698915288928745028656500172693529489636837030368195657620753413683749194606183034679886463746489776029340497924437542341798702190010582188005583290160135897241383296028954354069316020120035804675696917336109816833451395437686258885184368665187976351241259833110038548136104765760816714828523958581809276216368234620641149244858827183617911585104553765125972739206913260025432325410386085700844333488150253655795762186813963081611425599949461897343332401282195148908733401342639103229202133199721258452388705576524958023774298500103987846507321772086132893746879829583275044458021168286341853598028620361786478142727652614106124233770156368058010096405754564695067800177734237073185995911604770727910652268516474979906071242343963825586861298128212386762976930895656351463042812172591765541492260382848257363283931109388629871124070187805523008207945830734197875263481890946992023753838514452996319606718796003775854239966720634790199352752314589235763923186558478085890351695025264644058662018442822969637070303757270901913830859582593562973367456772734112330858206946674651992993082335150194226350625360372811100233155553394430980218386231625645339524515107989553725517297485051484484482616336452762501223109031155975241832394857197881644540736751992144151952536348756996443988323278460932721639055012616201539733432364316954576901571441968000208048359599702710743463655413614541131574728748687595369427240363878754171142223293039789853656447816658264722603185526902798625632975576810494718654549626995749827442093526466793687841091329749681767476432195362225020266615053509619018574996311704748971080190974735025822936042166446674477079473030482199140881414097298889850774300344731410218993605344854945771667362583231706868186543337052512281055334372595446601723429553577984355178349260139632133855855324232759133107817957453567977156281459166686391294497989655053065214629138329905634417628702747358178708538662275503955353370046542389755128348889333693575399322339836560387311958602593313997173409958818376518662505288396416052417841636709409112268235554608180041027982343088165686154701834348570209805679725094585619015576800891565448356394136711839690133858646640239574946729224058382154456746129964957967006032542432542671065694101111440412265951415776740910985871869204169804948323134881601107105032060074701088174741790631740441281470811377355287210788470895013246946702485499022855702311203596545918388314793127071688960024559908591620592753718536087069517338734226244230101328643757105414531307797621622388760490870582515406813921671202352267105173324218525122038107892825876553522055516950046078214080736946869607400397561414102734423421305209537879430525871570350903130052229789868993155845138115226260643364288760305483565759757935436883584397948341603739884604303404138581949512663379097668635912509027094685888782650893490305666530291579959951598436770506271023612867063637821166010188661722701463960565915677387380818257940573780254516779098055939433539080839454259413983145067698467245224455033930158194091928452146543609360948434569008232844112079783456490297471650712739483343331582144903901428602311834875470151258026223318965169059873826670792809675093161779359543249854347780029284695751790556698648450801015085926900482895219954612809146926316402577258934809360781956575214558471360113031199477907526266865317560542265392767137068375430316982719956370416607941766215468259169633096270694653312481951832803781975765377108027086781844239278555655482909705995542290987476929615524776240910118609754114673477076671541687613988962003171528569880751999701300289674768522400197770165783754904821998272756337661810929961360303684795350345595104151928231709709154689602980173226398711005892524429578258671626894368136560577234046597638324050695771172988265739330464448242327873743764510909340148866958497580146388674015677982160259936065574751415379409496531012197419563122228846196054063664010692206321073017506579301215220923731844196683205002881133431320120840446687259474205079267634696156990868852431353964282939253280450453604235733059509137415759182924637489141499680354618475163403577331721210520706542013122564247817225702752199987336192610957022960572739392901975187997865586035188574070693161212645018946092413201768002435029218135847138099692616640387552000601566842650392705681904064178124747344140321125139806864991751437093318437063715164213156513774710484406640835000236475572886637523310345404202511851003820630071735737800036325381217608584575962603170733993768450026266129467359962736359283416825733762238314363671634851298900677364500453627921375609021223877822985923999352330435809775149222166095480131217517307217815129124883902997704255446764267302310360393588058339793958693932155955641795232873138224966751634741037248065374261364335908140095057342129094871003382986200491424643505122163904463668151376095023952148015682658308198471076152030728003123895395770434328487529877202401498900492694761744398098357321797501448248160461234654595317295954164155097951741374621205486668195685064676255309365294206286714637165175856216082547217860277221196126467712285118293159470780850193794935446079879154077263935523325390155484554887412583211249100312227780583155200599733808152218460270057735818084426655171130371287189252280525635246388194411494751208071884546629128567312935103841185079835935871276418846895907471589000119076994994099506123818270064216839000281175852050886558609008075827322518953369646433868238890376278950849184599291959662973362032344085538666449113221507513696740894792881903994829054912433025513100146888237352659828878353654212244920839945571501309577713823133495654461312435695249588463638766424987693520696859175081267569155099579588500363160474443742846054760888486011803483920853598137797841890527672025703007171149740069817897791575754515958978027571204358132733522311716920691714951062410950276542847835963068835072774570346356190558683368369369047931232592109511668162535467995398101950466731290592472108622780274724465531551383631671992972473929989829920063760171988422561436508014172322006923446937806967629840429040953666615548526184595244357111479938800882692807204486068948610935349274442605239194952575482039997173055187414830810172557667207062466551381209141282083157261267223579557693997206268828387429019501009540062598561045050912164248119068919672110412031479957152519760652580739879794110078908132331848350531507136113404850946926512647175259839166881164967538652168581979211237691802519969742898952678124406653751156215607345288989952453164487603592638559403038592893730438219767530410823286094997526139108101970644925584947847301322465147213044483212677291033030967464479440012789412749302899235086439720624297910397588868818009545712685724659194171116164739230317412707009653000652276215500642419806459268811823296405742514557003070803803248431924829959407421519877434494944543173795040370398883736257042593594280415840940846581355418986240914929120569491597133987996825484776355223213660630428043735678024620389907777628098594723867048645213008568275296457984449426282609855947309005989895726914532512706407928828657495516394596305224005916851210074675935288599941336684104150930638146487160186426612058546517387942585391505516878167797501307224271696527336096878276790986079006698301697255910193774032249169055174321668159374329516369428287244131156546772781241247348936375024848974257293443568049312470716683257293455498900504252966928220542311892753183093425206973002653199404537013910776579747119511792935438793608686493309553910403887032060425880408374228147015445517109276690118649921890965115896783111728883432558442893776160576298235474895223518356831972660318370751864694137014684569383253197145330183428876801177035373536040170501090736870384506044426923993531599290043931552446641011842782820667144308787370137646065507777021486970187505730463287889357070685662430648302266730222198672809580582299713364613116567228514562437811625220935793752924352511436192809562812925757097194930166706572973980159904717217774200496786747045767941816497975029636675663069344442182229733346178981742814193438446787554747174817978402356282686793437677612724494879322187566690706564186971918971302695759351340966834413381653827746843160072676672059833799463930478936862729500202129191403289201097622738597440966635419421294475502369818380241408178502282804987930282352865793685964448802105320471598771354856704722198991175536007512255203377376339519867978972751604055652685633502188170770382276455448918728137835963967458406430680120662319282091212768880719411989800834110932736504116809828314056041967817356270508105706418696078249088545494478793550194631868328706812246850450947126966387511665764495176611155407139833568921502544600822564068955910644439833566278207196176735634670460512939612450700748342336370853914104667881795448673780214816916111695864000038892339264769133205758927680194972743630688526921731775647479743000139061923043999926957249855892633132093555590441438134303978036480896198296823585648335624352072193209513549251273579269315030879952164960971143611251945437137958123616720600269596030909706666357019882246735277884361523388895640194748473136476021871155555500067222278631146366099464727030570132230792170151475057190227508489211166144787436069015849975081194331912249582977413498140857955948212703331094262898935589998995018372818446572739519064112721381541032662590436576436623456126823449231696826124921401169432497683757928098805794773097754993826581478352218169092837302918629675045417978988262452676390429402899907476974746609477091284935226818836961868543316584860341357658520410078058158615592811023790348900820308100513659746101877740610706624347025822316042240020716214463273207768668481008707516634522234158495742044277804578867926866026282993226064846232139916857482628595381153130502485590122592824565625989279511962480027899670427506487269496324915093446855156223215856444592367437395259504695160964671330412097098871595042830015720668450545838221786325389492076597610283439889533171422247253511766361772282706975338455227094714389693957093575622196007399059506175306518492876596587654163337135090259859009727357110529750683193208834921451256713999005732388807589306723314217000144154772159128538398222803662049655215129999173512607044553999122701773180402839367972500251583622018730636073286701338578917834505773897769807917772100786526900311754615779788817341050169393946650243182650591918004876387948009437427175630557920245223898754190975907621305064308986520789558408030712084565028125486525699772973671550524234986322710193747007885351149579976145541044112444808490172853359068186049183814934571347820051997252420670044772815616161200481766501731753936195976388439634634972495308527741633651047358819310856956787105729890406836666924432122891016266976913521875976877140729223053075141833226811588633236747719081527043668904247657992843813147216201499607276776651262973463882533534624153448196761055130076643520223600132682126586327972548770106649683333439111150023894879335147224320639822766449305579742523785841914956881380052003894824267322506357047567844864843763505763298764819993041105924492399049861223596550428991208251649392116053433556615881934014133579146529367615833613517856059807586711968093310011898357998624226670272642413872336203491119970581973661407485264998113960065146805873011506943006931518299763286218438514974038055805251990646744915591968710236896636992711297014283306702493193719067202605539490746804410492863484665191657380756506621121359537292996670184244630165274271183263144513479569806027408204710243927194369510049330973479651169570875925477168945718881945727782975836099250161633560773533547177064401202098658004468547677063618440523896117186046728183763759145885305493679964236464867111063378390026158367635013326592980802171481556109672997149349493624963134761188692190199545981041052372281116373177872529837415182925047792427431604921895147692427211659203751314455101068787536319803895865009705135780052254313803771479474018414876678619632622178347909141166744312117122000047332993889258162138137759238884296729405858282335019731057724973523246904955034515925784640776444716977818960126907396347830513262271948265448536111737389949336391656743730217676878089812554571269503665701192285706778178333459828724719383481411990341271299008924761111484315332570655349833633884274746055961848473615050584400533330579128477370830683244791340983626804453485767426941718390909128767259326274327469887404430240049590812791464692211029201791993685549950677632314536015029807170670639948962328582502232980187141990278866544289489327401543162492878496610683986612718710377811377153852307625521934406312473031583465185737745243017531901846342849424570611730369601412910690478574889030844841342612718941421629628200695193534144429231945016417865149846256186591097563920579041533926635507826656738201600419265953070842828730482550886131629368051604488880373274599192163209421807296243942561935928190098384804207798657174530771021747000887116330933283495157337816443168491912003015936352421195309674604923903130691622116660497261054139790659052945324787907842392675770569730679120775954232445314835749851107856492068331191369170374373046309890511802456093185577249944526989857643410652892632315788826951708809647646023069484996908061819230436680814542870306445896407065908738887345869948371209091846764572501392906144097496528014316015104874676966515579971895287705352442986204397942374001151659752777916945001701578952794450398962717989023856155028449701461527564468837015441869529792274598625251104839241184551552278552543151636747419874345234428265925932102116892493559513227399755774017580245927623646173446403095216686673977592232534740448411499897625128631783031213095315772873093135271499130583127092989472430627483389749826125162641404959351887645230654688916244745066725470607499664835169518238533554365504988521344880863741620463447851538927117749019836150608770733549903924761677115531861446825959150600646586613838823518620332091144225811746778681008727140567571166646540605595762539854340276934876530680354727269571285292162667412866327495065960821585559166735388149496530162187326955818504502987654227122747509653305739614994718184917047019991471178555268777464310277368716881215416898886121925294219035786995442720201877282561152727465508169830012595251941325999152640316591343221514620729598838561188690924554950103207642146156410672090694087183095791778921489532325749588326341236294245150710857822311035639128588933783953416006762493551366213532008431796050643473939634051119341989047817167551305200187647835589695682020500054134045299193914942964971087423782382064753248078356441042019248449718173998578765634726160294335553734842888113824637032046713299921013088118852723271125402919023374681621639143845821600112322014657578707046783218464202316196298818998849528408155990731621589491864341755278993255178432200443651991439434375287924773346671986723143461009521764097479701271356807302098578991542714893964284356889663140527361095494784752812180250470529730334850222952678812665390275152198903306586100778226237771011283707500579370561066027072659930305582782312154371927708699348749338987835443513129972081893936929734548309200784246257790559645113325774474492567706499685302713011386184930957388856520067615364700408186198399254251165652279509733383548802917422468097117225190356535172086794211363667095818638176312776973805071136399835918257436993743814784237001217945275470705106009034092815687716659662471466014146524194352193051503217639599868543763283910856532418283147369205928226971617479555483142397469947204051460723177825378061583678703597412299295953435104774302654273450656665540990375953506794746324393502313433401349162176472836180367544356027376162519148526974374385205435459475146415617822323056290687879252015715050998351992233170010693043747435017350755216872035571484091577980442050977011119637703911806138935550687648193820099721218667490614804317560579937870201681491750454574824408986866583966378764325580385602702729383657201787559625264909559802298566443602088927773027265972881958167731418801661729670303580170242123533139273596679183303627494516046429135234719153151516221419038577076672601109805484775116077243424724604532909558601270080167985317627235918074781669477591921240578704355236594759891612171666617846544140938744175555957867154283532310028886261631159310079818506647929610599533196880235079037503126769186226109858558920527069765271011568839423018084027096525701275210005858172157099067873164418330136345765689142344593489344835288060923799819186038923655338567016874193711192226398992906449015010554721981378330057354131409896032436782825361233601492406215916820985145364490808538511623452650743885227839560976115465936280813256269927071732501723910634693620899918963616107497913586428763079214165177611309014902743437344706421552071216404971017749612432530371471857088139387559793045355179131627212146169978427250263713114117380654849318427918820035758840697173499435737289334208759478242598257623063976828394235307973990161998295071075826441449926129139140409128153075063446250101134176305998115793232278118499717228290901109850240048954151008017096817997103117754006597827571120533769832423971495105439101898735255566465640041675526480890031638020493811904100789070025719256974003277465513478513642792263681477507306968884947139013224434945608141384466493525252458160642477366880127021656981786174108009034167885167809124715675341876588204790326717161400290135933111476031964425220098022679520302642892567754179422310585544174961910103512824779394811407351273538784687932461400333444268530694103990787485458536612690651054318115923470265346760509551491659057739605087331381840147070854421491377412760844384906531139698261955621670762955426081372715244680905878864927511965241058353843449051805769872556144944704371274544014171427270797110461072478164248182474678175496210711389257626054722937288883734551801086341440745019899897509554559488502523100476789436123008947461126173241045107623482431441695200206525524145670554844185941129083317016410301295630594856471039888303487263623650615086860606506706268122713908605662286878107425488364104340497501104187737409480475612100299608642267655347820263998100034567356350763492994549854896644115145641459724231084456129834982597533443026747409292995415035602905529011470774406135298615838457495736069317625328785770380377031774693700725230046830966065323296577792662014102150829688111584109924231397484233072182610531982559138411174206948362752852683599064028492728745977122774436176024236979800536385875409175733612771711809806068417948968895126985408764756322353167524272747879832307829371249684034819743015110315766468605697648192859386970104394231671384026815601335260767101514728991214642827349813161589331684379275438765241495607858141504785489076440256963969941903727572148623102044041872800863961919149438881081126564591990546837283035789016098324233444615990657010634456047994029421425362858599082795351438391964919229094227292699057701106871306602649637150631898343563178095861232409160942077002873827838838546303758277844391644046371148092603429486928090483228185291293110182100884519824715772208694746686200897983020940415617942668567522949816262075587836728310740902774749116456236847563729324002946439431781990748173285540787712897935901134656264179811151824964638822336548813881280016989189530248697135564009491190626882495286250593116550710072119930304579124655325609573558548266181183874662470679895406949799902456940750063719636174942799294227630618702394609283712075088996433652191443174588330482464836022411206574926545039705897663846248455836011749525095226038007597081509492685925923357017234403427602735204356538654502468619028445627214425852156913546277933293132499317133773895436441988501698558243421979691006061486551013231364630603083339886008114980868859698853098458820167193313770387954327066377490641383030448121474725913375603590457981045409213842784290980371215509449741309206013696879665717384976606678665365882636463454786183496314553349802181461015779525619916462375568950033745923319035901482340214725689506740743915741750623794453215394868580126775788706228607782983221129433652043357012184522606961247417300416341521732591676666557148681714777240318627650377033079851676606190751597192318631982921089333036686421477229540090057095310190163707367835080912591619495007770772545227848875652264466514178201817515144825437685241298009587587365450952103017450814013884524449799385902390605302528698097154785763091457867185794349475966175512144990860697672668201401055041753480472539573407319392875591836520593409526445866519298791551215844652094713724646917145261668354348669768534923305326401789448651561915719773453817291806542944145587421123773363109774010934667798432486019757391824353812133695192443725945936278219642095918062454747795283297224042021941308376391588308425756639988087639196832952747373412878113318968336885214325291472891810726074559777217528959058192271077722440470159632066512300232128567393375756051808877328786655669913303659942119537939112495245075055733819398539405372875759138577236422705676935108473085457834324372534058077765128265221310438832312723828571015581759124474436734391475208554052272776531760074302157964004052073521743500827706643549435627875976896322824842103466138732606628284001605926081570763453915249144250674151035037230881550983243420247400323007297037133299978135936001517183242853195984296887494620785092266193440918371639349817921672658996788610207984781115922348324155806016992502400698098824038744573565793793156695502589294654360806397060594965905266310795167871876882384191542709560130687026734385553848684224488408860179803651578318797637368452564799725104687036135943136109902467643512317870432925429014533498614280950875393961346970083072645296924984797167957537292053604523423947459118275803048431767796989758616879858963774361049911191159723402739522146686627560521227412981101049631865577276321598050765535147287929391870378034210003023289741193693715180663894882120323729341029539170057269860780968844743326338394364759889404414910760106060129651687471064149421629751768782941461791493758562645739307202336832926586442732325071525404680518207703783634219798697809814538223352526412386511215860490467748518724567488030772934353481959397653970372218778680556923261474897165732048112517642678283386708205057014112502349795706251598452313426684945158953335524108407567382141405318132181121126347669716557350353499144258188311789937063921697573948793591693503642797173415172949309215244744647207481565024210864719874785533222196141902089944221616287796972438141307340585201649499156881253305136789141756037410846290509817561246087049515190170552236534672654660777806674802869392555933701605307362994619099837195330940059642928671901204714868119558260604072939475077407305749912398620782369663478897458256107576182402990957332125558931231851271456537688439925220473140248378459378706242834218843622797299877424846908730731714505375669584999388074642216456512306003499334954968499382446273174246202881745960421394036066453244568126188154521182395638781635431837444662324203228074448769559682270017049817923615929140750029738532099932357939539901652645289408794756794000295442313010579892965359844348949270364709327393438625309297306769136339588922586232489154601499900633325379525377006379187226016436753699071270576913040913184650806542302075726466903670542394020620774788104057811582653726540905543745922116563060577352405880295900754624995260169004218056485041367755166314541795194223563196084102689968286185358456195457749089676121910200318862573167837961239765732780784509201400406337462083250272085592433575282137383787109415215811603231778193908380720578255711786269858848173554923802453729128032622429184779873826564620764218301311539538885580794465353000587319164802944284518527193735291641947108568155647475110466638357724130567844445889164032723866216398056064209335617096378340645122477503721275827682108426689992250897826005462794962506705071203933419892792146424226286274784383064735432622742102790120838836017361463084882226892975327004003952470586031744470973528970085139945095142286386701080447305002489893418466900207386201520958146171381346858894628040985037032596316897875034189709349755697657622987542248319557793011133398816458757163487332347293714902511237837074385522308593162603781437430857539900807841496083331143390086804274862887257960569870270563217610910425831904462069527138421942093622681964907772801186503329772914880477887808851346886346292040290037318239253482089768733682880845358007597504035612163271114256755481473814354765951969733377541181771792297631656162046039487154450751048178774066176563641870651456290953229763775445023130219172355480708154359878226960967394609391444080599583819169007109598984079623305778291648986565452117691696234150821493222161621795406650319740731280861035182671432706098031616703416959177368516595043720890542141463980311885629100819708710134406794615451707761504912854970783616645516186723641269716172643870222045817341682140614286099442021745303310374283255862969628579972892889127769375886108431956762738954334799762538290848473052132266386451297937205016372153250250825467449930827139747850581265404410890282466941182746806644467522038452525954765597822115895602009180851780887460994827671569194418840995218925986478371697851014813665269959101870111383993908390866503442224512982635007343926854697075411914914204365225653219693300100152220543292612118148611638903302396881743640420207898350042261576357062878984141176209010158105681466707779291083304304324482265188038444419168645791433009365470652585525912916267353623628644391446303825504273124908306141000405314158928954272157965388805955497651553081654898373968932105520454291447146621450280788748358432021772883360132160331466646399843767052121858501920290546039880777159061156320443536275799667626515738363037449377175728607372955150233669311572128107965703150286174785195382873357899146590538576960278561393451279395648293813262227642058792445409997369448198042303642036720952870978031516510665617668406584351049287028177105315834810110765454620578905645155904716219291895369088381325132637997302124649752951624312188937423609739836517058332954803050394189858210995029491541519644958136311867920441844004572464448287927799300993350926500158027373355760862954938717092487637494722573392769759223687922051088986016330845283815456996790770870862265336024564381182428436334381215128955658884226842020761437796343860077904015114454258696939846080240991891841521556569903563006131862978386342561383780562889131280120479901884095157171936012595566077120693766381964379042092906726897028917861772346784030134995455809317015524709853943845429776144484698595127845427453594101128449350552164437156035714141294344936506523741825454058815341527501040831690509870416664729846932209327247338889114066227791906357002431531703776841830565338911397048317360016456451743512520221528734372610877124360261982608671301349262879692742091215239551241258696076371446296933065859487254262702355868157398310614743268032222365798035178558298973800428386746328720709209844217907682577617783453492871695148761756120326564045160422802098113134808950345898021465471213488977621206517623607568060496076735983922475865264904762797169726471664413940053513166202210569723413672565685836814549329666814069107782138097647318671097862157876864483648589549482742683855483378008798801928925614645585104949068457776430320950955281871497946154004690695991647769285110703688815247212841332486668021477534070542966450269066757410934535410216369343345077412364946528268104237890725724989370667965926447039193825831846206223722059430386505133582607904463551708274095603092274466308832451342982815807939486132105094376813822348516188157656851294524890747005569838384968541976886079997096621227827975023649389801726213531928657312513150029817447878813661251470383400710338616846820213375502166814171480047248860429859663500434230729629081730628891577405542692414525368485218451473210424605392889664842028653292874233594432818456255397885531069265075853023550362651218041075257810447078934586350980632178270194294658139397096084374854311441978885651770613776569108903530128846889653162363753384730570250077736151100153214999545665971668177701889273106457577040270186192339225362959778435054979340582321580294037035383510167453162008112184226932633250152775732877694740153952018525507713316403003313224763559333116906374129115029603382699006471194532305926870254339607830560338451726421515361721645450514417129606496288843561540179303860198590777546909152924676280742720172779688958176568564445343148742294070058358776239530166554901911968164029891096260698384096579709702640803543922891016820583203833086646017606481010466521242002948217975685791692568766994017321549338408512846133042910673844855093113935665230248187911149540311325481352395583865905144238090973837343950037662505248745640490508274852107885520127122748256875165027855804438746150924314045429936028508467655959971012260402318743211107448926159936000423397385499050670912179396433545488432187726530331546247499072066717345200575528621534777418385627398468703797252711021280969252816693655167883139043466628162872856238774344037447904133389437397168662246421966926052048331718543588897253256648330989343021694858057693593539164045442939528639556927181021006519388770825390687039814625068028150149077546128826541588792650637733858493868162579207469976244477825506829151244379503822122672699828936182737896341506178024868439480236272730676933651197611429585674284209405312054363659688692471432217171168179552135562612459761986058519630987960437093577053134435260267939699312967298992320335492410246051511115619331105196570299145397776186946714415830612476793848425871413050268147352833411405968767764621310407746892944084009454885444010203806781059587936945783151739646933184364314290317462432292608782587001333308686092211321154311627107200660690926728079366324291406109760159948993905449410125142766350534494318112768544460988300690913092795081400356419028248104692564189104158487257458495292153821344538907907613323965183999873519361320570677699435953055296628861445696235312254634482528665157974286920122777114623127106054281796422552074763872534209354899721101438035101529868981152444396216081900741885355886380130925895960836468623374514253963701482739382289532226865431294101005984193758901211148170410047257672631813317869176533422611276084567151977162563035546201467243972331059779124750854032818103744886387835948403817717619316716291545726849667542519987313825921603308248704511158642948216217653416513631529150154063619779595900243051478251220263053002973369271863896702600877932129051684360340753699621103860047141356240520860337446263018207534375950441517616768302877489180553276699250694310918313663311658626570957605595884239979706316116010305791948129151241980044792399903424038676748173938259687651543857955029847923805115837538320811725339672851490865286397813332805928540025113072173353641813855850683233577890986842806093360385955510358348959787769244578356322500418877129302650356746588736344480998195698250448514571761143951452935158239501120228756508311714721678008121871402556445986292481790356187153622333925244489317114117595701700086852635560492299490836569662105863107252500326569109885610243726889800442959474828942058950510564059892805798578438456140893195758151064717053296780384951779648606748145695359609976041101905564524858193237747207330010402146878311578225156170808328982605781197933235866091276046626156707814072587957242832858757358855224497168294390595772648648553339135445068222667119458192094579550095715304097039587869135007904941493781478940359993633721697562550072561350568930220035485463257498028522766136526879060470664742200826041696450073090653361205592458029994986138174705433717133933876722499567245436468787786194024362201507345149044609113077388297899507796952482264432803798451844033498362806626400851116524637243136374567439993441911794437294594809678825893155393817579632607909635800469529011311179114248491854848410654158100581263205515991346504071334284817960134714931821944343960923147131391762372604366678742362356475477270000729777808120934258414927700324050273974441971986707824857121523476242035680071486597943645284773457258156013645216315379053193553763942051366735166774969470007385287470849813674333576364716723715650292182685294825140591288635398643539794565179512104647664026495484528039495984357238846378205587134682702441877693137091882386612813659360778011122550439059985034055587677555863137087633968275488195553645364605123369314746619554755598722621590556078695063380894912402339297637296833632873507279010128480141292557898145772190496058986652541731674331335391584512730484060958597345076099383918624590061812708257801197878442343887854619628339047201865774456190114418194518618938280369866199736584161992972276808692012882905695278350827810762799510082289625940925056891587416319613102532283935197496402879376579980225055009619369754313096809648053337797125506312889242241957722228888530860653678315183346195355865908440419325097319526507697413247528488981376674525947612359779168458512421878025400955442970143398645358769080729730766020986057196665108554627204352264538343424169693711641333156270164102564253346650287184555298910155975723639703448755769838859677773057940493116456859651200960915111743893625915288147092334280419255634085226908503240315228799393305169562461856729662938584871176060187693574984977321606793974672206043255370647871388862163559928075641651815633716928689527853705471597871036184923086592334237068349054334272804001018565157288168971762032622744229195144276624407364639231581706440861156762303268201426219507342444033791946886922475711057619875952594805262521451421216772245062773225828719824320400336355406784265501811967085141104772024921255756856128133302376912502521115588643671356935871614421474955970829101852973299869984284540892240039930903754050551622202132192657711827763930977758616114410377625331698433673647835839601253744319082844127013184895973843884963423748071098535889100698412628312018596342126795281344412808212148555427958872080499095048381478845555876721956296970078908650909582958859130210027145622613196818696442057322160911304680955681162093993235201023949943722825222854342886347511009539092618436028902879865237646648747336411968827558018908208534305561991944021829477780307777139414010790643655367646198976580538691955865194599501873039017906505390681055808005637526707535741286594681171536713904424129696399695142290059692527284516554725712650062602260186161618043218175686017516113044785888857991906867473863255617124503260647320737142133448595798751340265779185521080403175499525742958045089468497769316324865817327973368911527147723274170906614405770134112229581117539727345853842932913034638723882917829977872450696738748922368206248420869233148981622424928633424016517601615293893603704308392098807227393890417538328716786409984299875041674885770130536049263193219317767115851175097898118094171356622160530056670470829618251752081678028757867029113543574515699829129766391812531646183503310613728025341607705893112167228355903464257186865486764796342253627664193624437365335639920463075265671975164641301217853489008945338375706050230782522059745951808496349942862316929379876612523254324233881456514295528195608821587473474341243307408464234196717930221429791175048151794364107142594600494954739156950635454486802496769894756491491173774952306691467801895176463285593837090793114635562600623384181483627048575185675817709178048826025236090708838519167327207732553042518388714252588144478910693009345271280495899661281038020641985742859168297315099961352451801288688427899064683070096723289618663033392535335006992181783848272236399085756650468989999702433148444603622099365880389883931405218742520426809599241814502772638531650465404624257343595273531147994043256497435847464840155706963213820417910201809845630505043254567989763056198314515779478912383424564799984889118130825185663969884368598665867786173071463420232253276502522786391146433543816400094628220900337157920604793466998250754190193428899245971796375000275022452017332949727395305436168835762617642013023466231891896748223153617648372541796411851368524995856924756072961053861983446869592935034785833039242212784589995752750779772623925898016391910000189035223462924544901292275814685692507094681885016844185090415993673482989946810336880808478643623903914088298671283957397144831493304722776012072110514215017736795652870840445442789148119383823359383594256537923350393345257241398104228202501150064055339839261835512042337090586768334082183179073155943736624210573859270140888821228866877318323433087501164774267191107618738303336483868234703721374777994350916648901611319470875252891621325195899880694646906446226095596170452597675408372577371285093747247522970647218096539065955179682745273789335433574106584869136865864819943363163605936848689001396168860144934650799595217330465245172444987154613619686604794712437773246975512329834868807061917381820911237534846690789912756766641824060720655622919890802747897767736186516698495239358132401160156056708006673447350875886010809008233454678392977422080777066187871883154103276385200980167026865087394771157375159876595044380767875275910752024793100758096197224488664589536710310061046760957083494606720566257094973763380386382724677369250324308595030265834663504227930585322018112516198550142318899109980156716795500286571142275746612399415589984467141360887718559024595016013713908300353725839676892258073695864895290178465213203706316662796330100000260676771070701924930888439989575102493197509089130363997333067749860935408077649374129159138192385049078385860457021681030344618005855070486147759776319746169863780424914015424487619155541336117614223935021183114961359420662905962357059976442078904557527740946516478025938151234520514830800955620787776198630197543629631190987485004739759148808593945417221143023039352266961868626417312151773077862407630151434080419334706061459677349676313216354221340056861285274234896397337712286152212192840207867589092151520477231974528504762513162921879435163021452908960692671462707694431536991128336650603084953539316173189761229860675886014076752657541552326301671897727346135549563707681076835203674979335189672970783707757107770892667035482880303498223988167820419063697000152413818643203639190416739338169271165788710878627195664892033921089336668017148202209462835840345738638080228566794204048389461209890065936375478945739333194954144221564438574916995372382882956344620635321944669263556849638107234139364860504018105819889328399469215422089391044696249000818657189442160271689174200500462616826860519878989405190147483739406135064669343074893030138978644350167486640369814205036828867179204878035626062474105144347360595923553575941483609179237736739765130548432078735884561606086386218419428219192251901645475762383128028749401879292901368558044978943085288953340495163677141862851492765298873804278621444702929426864379542484671122269112760748636274469807540593552904522710330009082278020401225633648473753636645017643386352643808477915458549333329875778324811843630390993785503236593599610755712757360064594323216108397670238812102948059294077620242357032627206067422235957261956480560945226630847131576762408545744012862821273536823660675273789713761145063455664881806967711818530716890483700504985827737931141748985095938268675489250138289132630769858671974447825528066389898593273909287824980250268701431334653263327903333978879770717613664588702172606515459416598071495623824909640520326602687182832768165485332116914032707286312137836616168384743426017918696939337591576045344265946921445531954840583940966694711386282708579166192327183459522884017742002119841015693278880356982705312985953972951234531024790941517808018007500135577543256137512573551001745203134841575292402628366678737026088653284690442894421950128126276385582405556732611370378546601788833335878816744248139814002395714914876030583496768496445474822608541033372213320407754540796702962068803079509862647527825751916459139202523120357417013407524902358524386714237689839224416859570258972581742082602847609323259994113209398904322171495698784200026651907163143573638000968857284898422668048264350637815753983921619744311042143586582556720221449015828114103179336538378942860384484488168991279914780546871767914417201236471600610115686066441795466061583738940386924093427218936561637167980816971790299760966882789429634711713293303682385781576987050380928624205032041076360205087294461514835735804243329521205982190447934247968576646791112403279983394791433337860525987011904777802664897020631834828284501643718121982154762277374270108143407897094813156558032757924983677730023677225224798138804057468687627690829450513780556442440315746809983137793037473457710821905783154751239490601328426598275670876631582677059910192182053735037029549142299664840585885314387906616491726523672596926060029780408514362617495235343178932789748193784755446584723070226684049273853486810657001779398495140659784367323634352129398060599669274885898388755359897100011595228039423657188495899381040431068630119447597301949641155569434473584052932520962855051620575414105497487559556102347149424979352712211717231212842616598672051778134663406289325899519246928714411461211001487999781608907373761641556596026435740919408870769455298345331650286228817487471185758475771404127424454236958428562268188782958228606657190653088477198497613734108082254718943395003450969956231209481792786096999561789681125938649077460461182504599874590689023772108785888424241255697082604683509710860331080159224139868132995387786111931630055538618084951883119105252431997921516038381002956770925114344631514677832737180995502512280765061982807929940286855091909845581836637507224731147678244952080189275170471004221799492233445009743519547703939787206537423645656561415649444882782137666098023450272923939774771547905301538773676084941277096318796530555088470816181866390766072353981047746197747546741580032299451751012366118705402009436019416115972324070771608014839961664663234470036004178435987189452699093806969814360385755303227492828443314662791533616953698532682958567720816132719123238996981546546400443278671214368673301189006937360196086203935868448102975780712826257828506585431719525729817336176480538247475165005870415697470407269237067063166887325872459478396613132505057704509273235833202838772104830394505615784545254765451341067778057842936313488489193970457202823596754858643931141398401467748951052504435669365076703050699357505537862743671344851789933745708072240987473009428092512197732265647674342022880712705355346063247347480886851043780685403840959452165931557044120866782407271062730382473147315692208166930525212686313483964998568762351449173570787986322240433521825962954965015413191375383329234122402498312283587292856142667477641455073073014872245087251664667592904759768891243372954470040730198432288821223235668498971474577084587557069857234238783348749472121208390964599850466847922663842358631011342287600742788887744126821716837009695061957491506918917144904438082643205327959243879965437966616569492817478585886269509822839734010738679641844242749640410030976685690143611448649566033187608593702857528528287075560841821684030313005221999697172426104426127074721136001716768856455097836080294167810263862728118443739349397485329500365618837198623622494132311837790636811266217752964417430225977786587729881755736585915680804829283063314489127844100098897892232155881960420710379345024973281580073733419115247729786960607114407770819157742059876872173402586549547258398616727446852697266149333982142228476030563366167524374370217916582659714588211890397830433752251657346409675261541004185297789963867677399293372929435945898990778752475874740636737698021758934176514028654531533783177275103456416842927841044866554150018819281381145517051693648665447291445073560619112214397048581951209656627580590693530620922411241397286863481755827915223770635924344381341014924484601154725081700932251931803470335173332172589332674183794850316843896459099449312979941378643655663119299319880115435299361157546826837036883066757920790178791992012886037903455120540932666215956943508195259773661832223821978709429466978140940589705815232356754540711523893667743454745109454703921845312626536819005879968109074479960385554442672021290798445187344182456959043301168945529161381025649572552808329911427331812014661406479241543745324610502357014652531000223574073209341162226781274743327509035276913784700332857090354340808861720822347994511159646858249665225533900717896905165625577438375682173741398441079283090641802390430756453098830276418272316475146397429125363745699044258435010045426226618017413166330296517361508096486276236744481712728781087084095505070195374261657141760998208859135076117992152500484231110669353884753513782071109805630688583885962772930186364473638429818366041735345200661277330476688683173508894664822058024722917281597069187022245900171385475455333283813791239740256540943711557128986032608899991087833965547468686315584970382447927913846750917158712811950547750271903898336497752511786257355449287292613392928488583252783051083472442601181443322454962486279043815524298333359802215811670965807441787838145685789805989667345812017692037173952206295935501182968349198705710445777395163228633329510305231563184884761889322269892843481777516785470052946257116892977204324338555446550928058261065768742076660740601611146503076620962045915165147013199893601819760405430678116583817149644614989612668914197264271125284045487714377322572718212934409894004561091379850506143792628188280007966937639090306822114710560041067496105416685528231264309191560798342229243785983907124150103872644262091492924073863880737217425785614443733659104875768566929542219906757025782325632223186128874743488585419763184787438492184211876574653045100291944501932285394657418246612786498402613618617531261597210016153826717615137588761246112689419407865875140157090618742935875053650992425691955415534694023060961887454555341356016837507636929826741140092065952542648450593823257811107152568990102935447398859890204086128671717981181828381472558185942999115393418887033182437967187981086950530072593293822511550006443344302537791378412764042849475841150752508052958636441629097444844114167703311364354082538524905696165694860920950912070139594091901348285670683824353606160030666244924210953165838013036621733631655875497589667577342768828893684463930960253067529448789092156251218913597525200849582954296474627232578457733694204369582103020060573846501699214484798096391905019973797716955181244436782312121650894937876475687344550972262581514126782889022371944704157971126688292376198912165835683262436503823647256634889598460033732466668266108083644135596166475849137215848189201409490315299778751271713570454832242863261967443361571706105026997041548942853570789684030971286376704855957248533038647812501629027212115857577748256705429722564492907109126526092269981476067529539721514861976000322367145996968549925227742084380264303241383029576330900076000514921216647033639167600016997745358109709503030309157633940061222222373484957956405849880372478239894499438354022965456958271170485702814126783659393738187000168799540388293261227486686592530858869059648786657798065986878512897323790435060596327641858020505887354480024508801970286097488356517512620225036048835476583431998453911958238566045954606091343595113300282122128648508762139861195392489544088153475178949734041684561300585180431918913367165386701850948195892005774235685668116883452549447555694686381603671239550413289631376920863414799175619964880828451165660328700980296666727067978386658121635110607162168591384944058497058813400951128605542795504309223418858580750594890735297065945203429296507899544474924357941765476780100007322752189634923035186702316344034073709503561458175458710507831345928625246792788094460683973534350120226684656781014462344288137138732165067428509510125124007489630486994273439929689776644400969513109038767938659292313713200677760374066078855737849346491724763629501865225625986185187358015946351260547591562435361662799198409868240952839401916069024462735465319182422385366960145147237130790207570963128409802341686084150723683422677134489247836582852850443278751972310244801115831182939537087804116941197893842370042264887502064842161518139509275849721727757233032371166130086478978971507572784383954093379333886082068387817231254714288562014060677816416647819560377742169401417813260847636474239445631444022197550730203183601054224413107930285572216451538812160836537369462731430590977268312337259419540013533137239359260658668187139197789148379402944173992276943569770216839662466097591321786013371319807952883673170445332381065165890848402909957342552891204526041113276147921055058216213862108878395421822744678609123750891466289515410356833256693752089763546645741773487773172052281218416317011783730769210876723634533776605175096762943336196357547419842959658465685893917991128312258975964123944081868227664512507507445764284588040461751938418232819299325961579108965475697148490938894064658320808087389491117410268030326602913987698996333566624244300295206178612323903659982089389054246243941335289877137772791438954651441890314447035749068474534886341870883815943682728202168019730041310946256768969558697031775988663424762867132136470564530514549630340857303817470270885441490823071881943760097280728297090040915523995125656869368158779857866545558514488368952360434720577471552812530637098505289939918665502134003047836370584455465236275839096295912359949073562517239764805158497859609678578048310871571851272812569682581277515735263766512442796433198410331374559154994745539285581469702670970403088336509741589610353018006860355200510699349442432822330622717257228478607343274336839319021107857954467754857385642134864027564182246251386434224667391518475024770204203198163734417864797930051738006621604555668575585825981480649081124005402028135315858316167933589650020000362900572132723337941901444921259678739434115379931047300158452756029597120609693078037167360393431433765154579330368809257871965664309667721073015627778741156120691186856237745792641964404312726452814009323811738445167168315638669106110697067110400244191762959037620653450752785189033541039887631740028484046580288208643608611099692504073227424810994089600561547727555419016575997478647426270032366329221978686568227206067675079736889246878243261194296732927263740689616447942742026866045075301715247131625962333198079742649314700094597133831002891100079319593500392583301423089750276010342982758925426867664203117977506655445418610651980164310587503895491501251806699971100166041140441949279874342716680508798743024730130450087393229869159418790534465479558317916558864242966955043328726714929611940124312337168271935098226037853002986239180852297279966827391598200195706705115603093941284165221476373493537604344274442865410991980778686624376597715531565540832813798084061367387029026144350024926099043633403179079330931590647118998911875675402086437471812258565881318734266077664876307578395382962426225293121942205080850512035788579141460296437256784230907141878200589401038348221003498806598505457382990183903017374569987537727455636923220921758139529372959301214599890451455993065711498384427596991153368042523196395337821788482749060614317405285268880302513140902845903999889092974273449975124334460497086420990530752908762746430644366305720716677780319884510746108824766592482845602356106233798076875081762455359627390593406429415611288029949637425512661940731413141490170264389290506883670802666513318449799108055786996487784273941834450840585544862688379308755973026972627469143828567153359958253226459209243679223393115460282526293089858974859017388147857242139631092804665318361046677338957778182950643042732049350625330021119175215792681711217909286598793934339758863460579666612255106048854572804225672737213497241518964809166622955523677417755035227769916602557177814305705439355584226782824259828132261235690642266476630702741829955302772265623895364399243414456891219368029221022499662839812920684192880646388524542831057206477023221487095890648501054603771476737233915811913247729408874373973762239552875480581677158892191929708781781101100056929202300446661309723977397549639739719618117632598367558943869848050878935585879970657246989532129296599553012423893914807598196206793977382846502663421604494281532266125819030363021366278672321442632658432501780162555304856407687691498894156530883090035852272904447735035092919519138311504300916638414026563537509331129759263045629906006343428700375604313371939121365476433081846718011578177208211360592636863125782242108012812055217697554175545222818613849688608767925402229347814703104420539264118874002937086685099557944008980008711284056556264632452254025684662889036555620895649017875044596425362760604650298872637208291773058136931293891521157588640305363019748417443291003551564221207123942067326967980735882527296769920326533044038977120701488264644109127308365767118433059499281427699421912890955144967455875817402468383725339505078369546920925789880374532557406569050830412943269406338017754779795239450717705591489570651144078102506522316526611164324858749242791655249204320419559480219866074975680905372766460873328692334867399651986383511190959735333475540443137635100788674727484312738074827333589608158525497752185046548716564416512682411188695096505696586707391239965765976844306313216704980603777134202172353145259631853460671613392243304980650072166405669210012885599780643120105378613971083592624445547826127417054973619284903359661465287568284077672835951041440135630532987779679275245507783919282254887827313016641433809398610960748717965494024946791909599458651499900087967993685005153295206029412593665360483321994284475732660051447636717473304962866426259785098296192465866584654499483373294067459639828354972766185071739878699400758608616118156114595236324991899762448976972966208495319394416463773909223336593273968252752788374822001762957888545309283168661832555262638008892848543612710599621360869349509831291593419714834179590011257081753301272995452591650384245452319366940480133550615800443826324919307676912594268845787544059577593935831596822601656288027782882881784340282076720577425999315209497862404172856889845362729552388278926743907874647609691323377030418207464233670109034504582335895070308723985467445799840349699191020006013925225850050567916983063713570558339099326220552809500298977323203401845384433453853063541126061567858440181034669693311120593517389866100762277195702529820043137455071062727864881593994951128637511083159789706470824024170372454038030577984259882511776374798531110881511491555601376235162014959194603490937541348437414850061405851094988081597516675419017217321584131041327645185862493567092549121597521052753587576803493007847280318509515114757590608062463764593465195319670189247853586226080285160985845047636255413999555255736042934529044835517856818075561287880618984263543208105988303934196409119733549275319467498502960097277777187667552197850809920274362354897996896077641722773405806764411711784312750033169819482227993200296170088478191834325506103914953247867932672017205592254031440562097286614747587756215628352438969408551289767571380273885541031813782920650298500828664021691534914890802474379498542162118617579069475781315326291871801282687362057288645729096805817700664452125290985106902418934244648752127139615275045645328760994671514713209735037672587390313145613993676425010674513281772260004299248721066586462593012902549953935923565435012671537022754467185737338353739270082180897979355921346761384439349948451403471858397735514424043110122432534200338760370823135992735024188350296644245486350305847885909266963946032642876070619512103448312973068359460839010405421906256954648451594879100116955272963552481646133373275002615116621759042590503538938481187876034921887265441558995982892589906250984552544419531136892854128543997850857818155524309792488642713558739223880997860108455826019538518012036851383936183752429107897708171460870865248452766003907132306681908238908471793757821907972232418668681189468471451666219472625004499349099463922599816648671821604410058691559180082597601848026568193272939480258553372621322626541297989657887371497339381420380176380278904917294896594311745928299560707611346250148546084615101042856436997527029735393527099640819904056463022919942715057252264137275523994455861287506482748905783741359171688091750300655494314301549190579473083589743116038391716413131291343962289030060387064611106318595458577819322321321911263711220144406117222216089469497633796840853539291010343003768228474814747229485567883448851861579543125693121125785810763813265479248734874954700254278414530017788013735436985821004980109779996586350946761207244366892610390418882361653632141603117417665194003125141605534094899032079090763849707648911746560976647046042097989000325976666851942993209479398780305898416629459220898639421271448503223067410364087103420530615875597258010483051542818557715488916854394939799438632946261942159641832754202858416654872002150966457944182501484733546152284595494598550860683755170944062902481398985888796724579450761650968301526276729629679286842165024098876042373653918654233245682417793875199207590262366609071032532584627915127044768831311086257090536075949107177767582467009444438362403421593226974949824258492447145807854455967883656897392420138946319257640053560458936180171216525254691991740545920771386705517501112383235056794373040663945666900590308726247946206857013670274665241909328144840078813390402392985510149760856001515224258571285250124981989535195088008552745727383953434623360746905071203422417053693679355434487881679674835573967386453206845295943112949543975844887592720660136262155107256044300978147459731097174185270957390933093871067885575956128362651410183103817722493266917013875409589174384305316692379874982151698931743704517907909993022551354673590949462614467948538563767834565588884504697684150389225303219258832556621592291905302844869709223460281209970091706213663409274781676393547066945783334118661653052636372044484806705488041478395215988211990294759608979270946098283161797921335822023045318398859121615490219109101491735591820815559102896823319794726877972358105770786853963816849430702605951308979748459575812418745141524538428819782587502568833430156650342287797343205750347825316789995453117701162590034109611773770928919358272792006398842920249801636392760220058354308283312173591692033424758694392253852300840262493838299139981350325151048493405495781942132348574529464292990263124026323003539203933543602021720733923466963062791450944989035945247620580088700600181290537542033221506084603507277127266137884463507502065431595354919377011645348543488396691703934440782673436717334610560563537695950268867321578330026859136806144336711534279138318014864428184311967445362645018878857750565270359481120519159258086647084702412363618192606062483719649871847266680659177467791012006685124334623294733599748975989005736847708501538697533435090796917907810187310464590026235632104782580068884961394262322602053595894174948146365958913917622899109116861086194125272807600957094288629673620837417480765759269769430367550038407862043801080990652361362855116510066829989709833879311762863109390084818286696239033465364790771961544468275212142889613006699309232930083576771835732816410945499301569161613144025014906700496158716023670129197639164279490775684303865839722397403634345482731608668175582841663365889251912920657507084344538932873885475738516053459185291119840313115798774592875526893035213314495427260613326662309083057904550175741937582749346768922354829730705992946329023489707628105832906902655448988544326293660164387420421666284238634340205750574504738580779909466854307376358829951965136681789856453524470710816080923833863107787912835870135549571596758856997309666686906445324611840695211366297897488346846166770844228145311479544219995690582636050324699699356168716223970536098014479895807673896631253867730102019217300769356396322601647954727080913092687781083248827528828072797314243504176013743747408784135266785944887127104111673240046119966193099758580662725611811300660045550250039661792392796898313636543598767977626229696175063328981732943169054894666594944097524246680165875221837865508842126081899712113157764136788037788450476449556672826909031627956258275400733362259632427842758119517930947309074927170638355788163563053186801142218846584153119010127306457355949114040768137217111399870613551955810243880898040302671407148002885160193042168601793801223325497109438322231098799414523632264623520328206782213191422731944774293087988205142797026919544740410130336306016617173390662532733153069509844662815471975021060235443505901033991843013975508977725306619955962042339602533772860487518802734572680678624080601815143469416681908683298957712635514786356232512536074185932235048548979991168121627214040780314578516489277162262432595472562726028881882761859438800846083078375402974425240913006219661702337071765892854728509022215272736170005296726874684156855682642831184921167560787545004589567288079327729848890362318768493701741099205006949105595122314445408208274687194249383755430857616373864264486187326229081976831955556755326703046012687551849778348413358634048561694535000610521254808350301371136032471556138660525319760580614250513042179114638454998408766056233001971935895193733897715704488439381379563426837424667139041851845859967391743645776734333739819447232534651862260830505578581888248743019364322065272543142151199359540446557588003711320838602250145107480226861316379407034566429915700267679084544971127062275242603321903741342330114000971231583251070865197867507490075800029445693735258200112742317886382056100173709075563262808968936347386806947659457383988355127333772738693710736476846086019292656240833241490973499753606707491574876025012305044443202893165713214111745314045299388390410848327284597184856432123675674910571986994678690250563197573941424981866386770152750859898256331988832251056262892670234834500525981480734745964861224030117973184367635398543754126650506846059173728302412473422960829660218761689803982347904573973931386296561145437668332520791735372394700911587231582594185700031243637002424812806208142646254447419264232161400645514097372391165443280399567844373895069327770574407059264506082058529318236655416363291881031811907099321984862254670634857854388730428799752723666492694572548421986356397754298699681506360518748462903345872188464815043813386411012464751133999223424906542658956838765052094462702150441720045543420879763860385677235965233549609599028909124529803251785004444214447910124308162663316975368529068972342566007771815211243230248043724625447763563349109144433106962589168478110193150343537983169798984843091349115127368525130450014237602010261275334209669636596301167075311952422367984890734902099646118949461192493583748886317927928608625536496943460403771006552702681230301626855458725286553401343149330749813524334637026034868591378502678994448931064123135377444343419533410348079988836701476332844811820972294844973374039810001404300309320234309110165187013558638890720856338051931735245760474886724838585897861080708998349467341714788467335375381840835297425561961788081147868390674288955381800256035217156696619727236442025628136909282252000566991301448324718844654674803724519202281680724685052648576054800998448163759904036019460573643535331994351437481157545673989585859703160912494509265629686464594914315321534424253679975905156516448182188010678988217302089135528487311346341195292433315234836570628720854891892149379713775638274666061609812617363965854420977401464660703913290064885033134261181428099919659059252768197866631667123785854615000356472385854247945651307903695220757132948457079120786093915270394925241363018262048803579902298194531347835199888099863972415568412897233097170641186630949046620777950864884369043052165697114830520630044624246225125990469794028464791290137961572522306461053076180583927347045265059795249250545894875269688204997743322514233036183964234278336801155501743757572076143853294598963369362348573456770939893343246747944316326489047607070789583646237563476285596635981762330289992942266512736206569879723324922331876673299965960823895346592132184032525272188921633994080056566605567913194734654020840256185895815098531611947732027047638961203844089596531681962360072420786423253762456856462524319301914204467484431723589187437965929478050672121662566271635310554057114959666446613018813083422032229976779540939668776522521695031458757857691696669459235448029464145886148679409233523874728080916490990376164500151230369142606647509006475925904374330582056401389042706581491177699174118685559195781609579635085057051567544877597101085229297834368012868638886409270544522987436235293288729632711299599005871148903129878311247989178003114779951200468221007995619813527661660019179320925053159766932853397904434742108460233597082849826879163564957442090042670822966247296607964496388856556671640145616579269572129078113658711993395748041458840704037794986073182090295707288405784433829498336281748192073721829024932617598850860381970128514429456948470054088059810725981262721704911476973220313150508851182028255559281377864380989165481255515287113189418542739026123925285662704961473627225792675268307969376558474304301582930198122453504630371699378028570401440316129675585505075353981462091303459312471908352643455461041189816206029150419276507957380241843781079680942538315001977935419174428612094801890719531131049548154748316842377461635947828166667860448477213710216395063109832617868097568459933149994615361188250625194262905006986759583039237019831958950777881669908375472162771688269993229351877563361238515424058927942819045265762880737519377019555392428010282714368086416199039167004051057985731018612021161855610892965934716761405725884842170363184248068497192060332136574868218890078124435453745230840007312814332935235795326056545831039247274997657276543230346860595457070687813074183821943044693083139525227392217438004371107947647628102608535041516698508824160113797075548852568632954609474993128657129804005366460580693817138758018530074369313058005974283985089028750471651409394971166243042996442998518754655856552643703864843105673681086681146287051379056615765286297321402304969302814393489592076772478411513703670539209310732033604503558606473662463844323396043830239895592175156819169580807091292255684262162143452273336727266320104865071832346697739101991906254331569066524920795477170940419889469112863355662181413449094348731630011033745781175192632893057466432288058444171115410809395330531833476555457357829177437074158255291949857829436196950922058639368454111505827350068812774428539427146317958301088234159676427964812505095940252138204931451343051087927141327335006683625693607372125304997970983548937652755020332732283570285046634062853260745854105442112997201120680257423570737311496383094496268927639540762844567619124942719892653494674387081729741722025106956089964986709919783162383301866282264113374429239772693109729844051551631536204439523688144888417446284376941276540124495167939655696026273610997591306981670418553289513188955570098296780749278960320355047236637328050914402572635798847580389632113578874969528554591498228966797975317833630392908756214340346667983856020335253428193057843280433732690508627927577212557995651360132028522145634905778723090076245226682761928687519905262668101864537355829997276568483391331648731327534953116074266936772697398946574285984705752078880590133403544889217520997692786829123041372893813645849275110041078976481328790310943651377009540515303465205365488502914044863278648624201205561816105550641104789523600251738046241729119762186076316628721208641552938115162078561307702530690829976737236733202821318390906886422192988024271808057291777516094457692363709409977518502260957577624541549564733600722638832488872960495890679940858663461732721023809125481461284363324888805510792572360818231464615512782133537097542564340257683985503805153743350421086830573281758651066867341488517373763755960296796040284028769898822195816017099608410304019289199724583203212555488360080235138814541396525671754712082348012536157794711259189923142174161592009979176131125631129035125703502117247487939704220403808017530629724909849904151622768760836098977692520864317052404097752415165116688028481545151511787350161663170432239146967856845451260786149473175402410686561824569597234952305242030394309217173196686365604080884272151496517578812763625720686447786321107883646792516410673032076921822021861555656215607496210858702977769425497936261442661442889998410922069004239977470526219170630701058707658699205599784338002208368395666061018556111311310817233329897292173693388624696755629564292939214210174857132234712899609148572764369022314726393086567440550519677723878728978116385209650689471464730831737447769961134312759315537873753853817313164103604675210988185752797722160082861592895178587726902462749212569682225083304606346667637949867528218308679455947585008996989719967962999495723339486103681037944112218408838406535905422295956370405268672606887739198514572785974983057577667726307042307997793675226327749680248805135806850274753148234292827820938976364782723912060676374728623724631971409229626720336031170874568563717537772184090266314279865437334072972664797855178413246106421997339411694873223883517813328280482097428440845607074955873886945177803878293220540356151902237360101027825618093110629708181448075412946865474985127156771432245114204595612333617926871206527774815238740997670513102588189987868144926584469875226899223320479142213687053780080270599122192713856787395439060100547858360346044323352164750010535869638161650455079419809397261177971451787936746102166623092534383492818668503835686461609673669344413699319183674184106320944989666678898567159893475252797726022640052651377044817484556116105398339342825130857338403354868960720776952969009612522554053888779568955204666165543595048284008083708968398039454854199311960136231189340785166227991963779678699080776198519715653132591922852517906666246066901041992732312123735134207838546459415850506512330489299544164840929649501012190902360331969005447019740620637548490863810925117066461217106429019363694426572988574531505720627811895964498312548091435375056092799239587073938214388093095681388871399357674171220596952430580492593460011490761565714168541068720277314380088883838378128166408900426572748101947287263891835793226657427075927672073316608636298410486160584715825774339313017624617988427143860543997417131251989039346646708569334309063450709331204195024134477791988517631241451623129017597609754670786745467674960590288564556839584972266065217363085551479722957074115884265020025201209080110050726673488893829547032756522684099020870852419963491159099112735313301791689689876979138176260466723543259681224721823564812909049924380455496375470880287411826260951418101145653360242672979089164924627223311186611472058680069306553803039583745722042334416444389798121750654854957050519542298170529632259508669056141003678289237971201765582649222117736159180198142884336850062873996744665917413611509580956858448013387983988884767972590990194707092877174184085515321593177984670868430587468651664302796103740431023096989767755815998211367976320375143471728985159010500254661154313652008526466275832648575443791801658801665100793934106916256652858055641949694289178100107869946716103007213014996945117679210925035956413773171307388086805920116012483504375797397290547293656317693683822886770629036465851468722147258805702782976663229092743764996847538975927657764660794318979397142504787209377627416010646237427654696204141510890925622051424281345811042499490914567660516608220153923300699493195528345993838547330956209743631449256399202149221712668173193183679783718070933732271034855085656215256489885113134985444703484205601166305650206902002537356811306438519427882042138456907908568164791060303594746918151966666779924450345978635169199744114536724183785714783806907975388212953304070055122793267953990706450536595924247245141342453070524547835565335831888800582351729467337938115077870785045749011028496001993339894289403537461287603465421699198759814711633882006698960545329974805244782804043335570024310129404849661110351991502144784339121529472776668218184516655112009375701087457441759974806471605082798009998377067874612341573305301688143642211761236157565708747899974977160766596132484362798366467882666728045687454537797564061001904640829635238954442577302039553995651443223269350660357424257686000186096853632216996969963307265995873400163871339061981635488743353971853880769923501041937726453556066940602244508406268024482975231395446881185616999038349072995884247736941432691122360036387227661809624678609320036213037191414482718529982159267002019650400604120234567839267002635126771713749840714536786453580019562239436990367740953160559083252174553773682257203860695005798316405014997588762287927216316976158604440860510386680008470159323358892585085558399044009526463208233255997312655667683451007794246605500848307972897519570521861415046951695681939208493933109719286629079241103471387983002727457276154501477155486467654596979300344410442269983244876953620323039976579537082055921089097406273122270829355009672685476817496344290560710262574632520935522852803245052627956837307276824100020277807892617780821995850349441329869511507836342203246061941486485967067888050835547665603632286036781923303971854657140496294464043516062900849963197588035473390980777317287912575320940323422073733703247344254778758026914473896677733688447979967153609569389626450591338873292719935324440576980108160567813903093917410737612561236569961948667866975493839950070987993035622096787717865618768071083825035578259730301794333011909896189902929133623425113305394142088924997979026067455647219432842060369714081363411819014433619699775888064473849050499432342364911621128875507232078353397731552004429797418367138140933788151182269148708876937875736741686110406507570469117948217895746995244498920116737680925373649944336731960388328460329644562320479347614269188548302698877861836713072281265247103692058637920667717878917633145130249798780270825166832962691025014245588708801693191013680053243682826730043806120452024690454963806947142092402583852221983089229243012438582992616823371194091445214025178682574296279999079361947584100225790090506735792472989093856794336509189595187796307500111685251670691930707923325686913612483215538081551468950453682138804295720499181042456209950065733732637789215406281361590872952054869254298811524574558849352913727120178643708955023085568678632031732568274026433647876639948176645473865488961409042679383695569543990419171727475956222258801538656078625784196993274686742715186981561777718446228348703259210703257186983313057620143365759615895766305286533906806277874185766793366960429218693082239227946408448356048817756365159143881403442975725217385416218533907537213415144250787038924329025188001365588020616230598007095870130588734322505865939558526832707154657428031894363212323375938096378303987257823412896913314403706676037301407637615713555884253418956364951901701707097524119446615427849423831630270066616220086659199913209571524833229954024805968270962367762212662177725976089172174050521465165098861355423744618200753671916614402306032071588050897680830698167259724357238802007778726489543109137946706291587657815754254842332848203130114254250953286107049632502799162248270448173631455088243215568868562265443611502041349176608638665290996855334015263542272196668339175865315163095887639627931980662329307304850334841624626231106912469622184934472672382971665696604056378025463863558716955864302441440990495260763235921445606892602550765949078372449258333578076896370493725627522793225216924436613599730582038974089873303359806012679560199909211624268510311445246873117342130396636873654469973468032125147949146508298958716232496402890461520449133463268503892468404283231935462236100301818115995588052773698537162362871114240997344477148014688445506365746783147873606025310730648679344695048720762568028348151210241803114910648067436278626159052573214219372253414420850494243880964618044540902680695213868174085465346054619663892779055452179019516414468445689202478483060328464899454422427327243346704053025967193879153313311607111540390634039910859378286307133968880737627096004772046024668855430094656865485699516090188841103486981672114774702833898331705604586897640205368539443325198706738744985627193370532667948616310859653066047030459997509662702057833749973265066674639780767957738634296206571810731859928359139014223316975013132694747519591922370282210452581218480892089163317181477908238478795917629455847219652037678516730359185647843267761214967800792493312575496317370624836968883493991995974888593867463133605125504495895632524090248450917171478168164092159991507179740014077473705629743069841078158008147194170039859058080942767694003329978752661658338009374091648733474705995949434786359586663784639063636024204169589553151895692686077480604581690263453926177165936671406681505851124759178403842867813534686307768186909264754980157982340395200380294143956117359243565723621551863442902382029787379491025839726783060561289992886920383158870113643228318752497715511900650450519470261034753216571594679977486330970082267197344945514600245797882140124835295631544159400300658494765902003955914304100031184992645685366714250885948581474468022552976737228813590204217141280079996337946111225482430734968133278215973038286300929678382867253319723359360486022450251889173268648783358490588844843061466417354779694595472641755444101492317470168742162146610982180028754168669325789254746627839481227486954113063196747394554471686389775807513042659337364130268142623082040700037172274141894628811160847912647239199591677856230520815409945462572202705029603267307442844140995510120533281626609801438391612251570116898990577854485740104558944696118617946333115505216040255009629263296788274260079234007551433712841004811188998555486680212830420732059201446706673138532994567799341273846022364267779841755123883372544627724762888304986402043798317610844905614955687002383381858097593047239354911229812904607376951681417930901114975208937312567366932403450964929314644668489697159265823939743194222063819589867400044694481309292966417025277030716131241857210050644871571956799048590937323743922419473769727695302871933193714379435216113544683269851981833220620385000910694701012255982625426190262672319493103996351141084454899823241489679002346628493520947701122598386495343625326782052059169594232311369760109443877722094267625247544224923436836640017641750527736686827647012219755139158207454837990533032980028571124597515788487305589836675545685763349985531361268117410357277531775474099034383265834915283044549612408398279248720235965827515204750805712792019724249723640824417428401441008721017725977772750933909658555947323686797126109164205694584135455233538290048462938119006814310510917175839665913607432718894020642646381247181138237038334693281701228801832825782441268122208759992717354540475495035362471643061023749628924947766567685464161653459859534414935426707875966462144526525252332258948735922198471317098763569411656408900123030605873219208396198617832797295174168320892888195607882085077746119184385246201865855733097731550680974706573738709244708231503737997697280158447241156179764478128410312145169733892468073382104716530528108741247076151277798230825685271053330393879263067956189754180236401544374208889422906074604059600154801920543711143548301560123112316307454940972926823389449093089922868189190861883074803084216580282365198871760537875808332306898525002844591800238840520582197267849818502432054803730228801625673698968584639001356186339604386958768591633333249226596018079909157301983684273847661793958519417105087259607894617105811263766695590809955383457606210205328307895584440932037865214818999874251479549557955657757097085584150418733213657299836038891956778418699461337815192371198901993748280799858522373323018768313897794310941592720647373688000899954784724960861584421767631216171250986581900177411242311556536293079024735813016756039375576453315170478992333898152333481498467015609599793791662383711713732397255568118419539102732013897809845166159148494126592758394336605960456527564431545618698712784515154939866128229884675881018827011805848673902734229460519805231134064616898288840839588138452843317188631424063993286772251029204350682348280358967331904250583685345013749676785403718416708425225533537482708426699140126600451233438717759211642612971179432965302948205460067950173040718033008821284378375111676370028134991486105116871915074929425077641034751320446056966120319356172968174775991175988373031118987693021933514950141419060712690857510238517945351748197601490285061874084859907528601848723290336771185536364120222272441832517989654047930111827812075480596529903235350274591847173282790138113797612495173216795032603701489663202901962484247621124782968255904791338395137063333614983615032293799710789572283845996136754973927029543179328706231744471488420527529196813489231656424289927933976221785994618211828321702015204809871526682098363723706459619586903106248047410375318348817927345115156731113444811608996220078448780173822277657527949077744649669908958870378804555428101594004783557924572732783384074158684270041944976411262983359647849020265372423260694611954853775541151339600004828706787196391472013936377716393728038293557754033085519527812235158769062547662179268835267064839321378767692802028400074251662329590212503208754102864029038731694002083028241047541955682591935513657065279926773641384237260614720995013794346279140261055680183377556096242919213159111072984532190484247686248117785000344750377921629409369833085650712877446711314158862104057716917115477976712651632292990943526290328783456083434723562941221817656151432136454255562057569861037567038226516051284117583606074285000978846642260227422985161385370150871576233948462595937731442828433009098359898371898396278639423159323744681569433897554141491784715367328736968331525056638380375994389232770372233120274395262545973253373333933740266986926221047181053928692546387952452766341888770471263711908554288875903187690905067197326278110396703326331862755228983081423950483537851574667558154271250472151735117332479337673900265802222728231388435980063388894010395040090802088495426664846241403027080339255331337001648226930560424985548373204779497749070240620657524762619223672957703318502768091830670414856128946933064178934378291730306984995661614087575673122331425607759566470376277017611119022721396413854750063328789809669741728094809133352599141454660664014450622956374918055884959556932008088018008191329755404170694462153581727310652024579738674014332873434778285386202131844576236553574292409963228682308813746039330471311781501641250342113765173149683320300697837369342282450973497807991265082797631174170385160968787460764172294769796247804405822109850958207794696016613882727045064314310286575165699971747438354741240688355887482661397351882097883801840622793196044622931077500809001034059757421121034085895509432833443821500497948157663814318383108969339645685150730674281165246293377799757383149306932632035126274277944759948013496788606097470865980216479895104145727794567499348073938621164959496677303166990045383053449947126523882926263826571121580601431275288472380690599859907837538616437833079526551300660431192728470274933352703662399556088277911080546198717428018133159289762881622870577660270195556925364204342232478455525269141189803934117324096142707040531547240107057225394012995891181609487622701643090643613414004801529688458327067695985741179933910976335472707707415993631007109106357600623469924704881670061867100930800953154523081746171092886331992294548841153974974109481199966953663840608197820186616179235759979232585008765451662546608373124427204083725013859556338877747873662934466430060333743607432633783589867053173245143944985874018014018446968319763303500914286410234458273473820350297527949286509082274530841207407222726364315543967728238311067307205462263417897885456770179855506248937568824087842185374070982800774597291442838523839856820716939460993294234533788512006096170855335538899884601997464731682507526214775490658838521053032611167224903679527782634056018212826503971430386340774870851317396593696307206630770123048101886080415801405277467520536195446501880636525403095410338522107692595766888604231859743347208970604974632795361461012035129170271035625172697899184924644691342087018366643010192760285483861226410795088837943465806662745416783153168505099429852151306892544444992147553873286336244010224285713723782125400571055782443726344053156639358061790707183216253834857795097414558175065554593061537597835296176565860029670741477085718548672682323143341049097394196811580859275971729436149964078482614081795667280328506926441829687201438131028417614285465763105458138802208207825616873563219818480584809181696803607147470058665154774946539045470736630111349075397891962007751714553785494256167331752648552756662841793972638535847327052151048392406398068910149749676860385907430469575269942915357439551486366311264561289805437722121176528926905805554165922718220797783864852560022030608563296772247353573809998210732522545218029859653530934290892133480710603928158031699437678559309564526139986890339960910849980202157323129061555112442636784128491241938021368443522355009676501307398472642182291233107317974352424046434107495229606392880297821758516209245004880059340338353316858751622641952775746650621311402080810247536299936725406721367367278688670271790640792258801713852593656226547577217335606548874832485209132211644179283640923554915852780543591917966399515947667223418655479958928185709815322090544418121972593377336601822160637183262560692218507924983670137070932520821334714499369696046313613852913613374583356113764268537490305059927487832268087483148623788401553914920525585695402403729302336150761544573350711403098337797439952703549873723699571414061975134543234715599624364284028738647666110881781826166536320483121644508518560761445400030794396651064099380300888534762821515317694867587908513798404133149649695338076770637618418196461462144295180177100601747328319344093769514703504121993949547400940211679467415878989070690633934572574518793961637643238980010414451894482315686236805968370780528630126290026510337919216011834103485870858770331619707046401574820711974241106001911545352661377290295024961467472813098110954408861858021951721506976868833878856909964160844218651601960707157663766642500460304641099046327766050654868881651377782079097527546772622176329539265625520072750849291892641512209507341675645442034300420221431194153626362197489147850418047793122006586760136780925210922650486860551932323116475374808333743726449953455990916779733823929407032349521010249018713290340499488554392901268336020964768344370819914399246991903735969011359639262198603109137088972437342514650606621889336779562282128250885063595838386582657038917766364170453008591913423046321838566052134822574469483400168463382276189770743846608401124814108992706829451426168478033238067908236039674468150365482119863037913320056057904029820869798683728416939468007373221417152151619091349512781286726475535382199170585437846201080802263207269123156566278291521758204395295659907080178521734714363721154032853300727641563299764425202928524198631686013668578848112783181617514447179040179132524734324063614747691366776717604394950676517564445297341404178211665669205156019551711710419854107639604628185371475739834964162231591226322827783954204389404847553212128303672736158335345840781770465376447054827498210862994342150577247010649887070020384595565067485875774232985390011672158204468586866234496093862335135245919968734771434617923296117966212506521584260079138788083119477611107681645670063467636160071958501281408411562365534473573606236748783008672335110680327016042264311245626425804896590302862074656053539450871407315929313858934221845156374312976446981358125842057993780445013527391058435226823353081984735193845863693852033499354177056592636051704877317834140243711587023945938930246183445031345943052687988743644781400552423157824436167243689427822448410541318744903983672359679281037123746787369539994084415953810604377752423794537969118123672333786355039047954989594075313294454337036697287543530435196444162677186928043946552279639470031161924693247167998844723694686202546845329533895178439942706666080376287836423064324007023810145793218826585335870143193303200492319948857332926879347943190625728204632574819449793073119792280067260151553215971477577426728161014793318333591404280246073632808519916855293611245764915614520223736713148972897783819508050207174062549750563263771732974484397188675265472737238166930016504395481691461155254642718900805236758243005051798068871755854217995058157047627559776156381536613898042508348061276728032902116990469824083759793803143223887310126861886869536419174588709422246178536740712556448775681804197496485090218482051552628541136833396757114918566885277276430731121431245087515133244634925128244133925526624017065903496440046360913076192515860841903059413929810067507369092694624839543292264768943289142588434216581490960105405333732976048799005142242367665281120382146238244352068203957446281707328228981890496605854011909154823422969912039922619636342947603016018157785191220316174995710653140615774800025836420444945489884114752293179934520359342705795740789864167317187258756577384187749025963169748914059651676540623355265335739076012063244151386322708677795566320163688099506943969004212890116313851305028669620704785358035550359791303713962928345186557651720050396824706225311862144726612922284041545444622298835966419194830910224685314524795063739067075071808111096899559411072813870755160134007794533652024899845122919527786484182322699944042473811692427091344214405150321112115422638329947456085644158587048152175774404244719603561599705873279422633387139700163808768594189807776233268961342430101238937796539781279521651302018643360244104950570728149924978781189798229320793241888119498001824401001258634683132009160746312472018814611448580180312229879637339521567262187476444985036581580524934438170151037502039640076605631021764816437471248817117310949443736225669217306823299904284136116899340259857438667329861254151488444064706969191226654604668671036548785320634789136920515670852163253255167885017788680831246948823872201534545682140009246030149752931305843774876777184464433283286271736538857538419486017181969415080611909682687807444351075776783102764944960096401759289369093062794933289402506908849560084102176436535544183902290394415574360509771952545773267781208209148301243356844717939469945546572230786904849048209975128356306433722030977213797192306706134173544609166384455981469322306198199470178226862596935885555916948647388019261818120271707283727494632454275515670533844274878409366031210981069665049294941561445913111011225047678622792947998387675507935992447987298227868335141631035002386338118734519208511986032111981350166949861730883963701938675619093726200140712923173880042140204256504906864511293560410171371192578678118606317006702900828938672329684371627914555291476696834059981715845631528996286803802296075002845876620103474392698937488286936739201954782611197843583681371210522358656309325540871398294978627828708099241353850985211453413461554520780463617934855214297538281624012398046650525661572117872316139277555132585894706445203237490387385961657685003495123551948742369838308568328277956824722971433414690058254527407807318072310001011899728919182554476880724394006912899832558723653584264668474279977365947893120150739509456964080736184836161775401371254279485051669232081758133348810737700593061125098747293275237614432306304427154676384776223699009170560809609577052807874990368290951802356806900433739601657024309356798479016810968416907757597923555096495601637711954615544242564993872314448496649129005232721004154532134201188922081211388607666035304038236952147826942770374867642163289692411261704734677747099034648558688477824599183665007918137135799425488786696815311747033766355881076288710182663115689215220802875400527524563392217000293419210706108404763870478789613272166919239568782827411534949674853191441423477233545851022367394599671377984344722470707572167695207832209963828128315848055742222585125245195014909623221104374043099952150504413463233197683736925917921022345375680038614061030625506580502095362455083316305346656838194356582063826681131981004099067260252696375029174476845053077034750029005372721152619531027933894350657090411324227980687788658088125102054844155342469319862432987465669521283540770736443602183721821034726580020912970816251080941364545417190677883737940397764740347126619181018003333611398665476082174587646685609651849283469929272100586959211815414219030873521462732508480578105929439127106981038490488621502176999813158100831632679542834910395915588117628167162727067535138339802792338794816842227693211631485898158347540264057019129330348073798829160186413481371717354926327546825126114089843499613394483932844249347792644322086586971074179169983510763158959421537639067728374878338764655304278626897013434173793910696112985395092009296645412054074842363063200715815186629518186103383474258779591006322129743067853765757293631687871123602524201562271604757117678613062085231847997575045442177391865883943992176164265111861199637671610806236065412009829305651585045677321413092679383942603315267165232975180081206173855741229714800968838833699643136317514543752971156138734572516224041681036648653484274178461886079867910186579518907863856287719304872880571708445213410696404186447673192470127901546471978870481075927157548434326195135515281372044989066691024958335285115629820259876194647665476474519219738493703800287152477051916634456422991293472497377976664237440677080926099302040567218539802373796760269123256515581890609602527734583021227333181423417365578143179661663819094918494314319035903523574808581344057062656084566790308877966545223647368505169347434355644234850742750053972922697978762784404352775367286275148171260263065484896425618508884799155425925408866361363010707071336168535809744649761228295325795234010812710392083060229308650802533658143823709350543459661514806292256538239313980091606228145941527568578140425785705555913153766182893068853876292961385842396342353143942136514050924734399591112140378938480056097237859136163326055383746160544002821171959033120503146810147449917035937390205627257680370963467421178267128389996699072182448368361906925680195543238756345148566408869336166378437177689404739148099356325358367216866139665301721671349484578716606172219558055139619936368419054909536384141856787353359510317859103988092658950438449910772079177257476278298487180812050948690760335342643353248864104556070751441261989746603257681754090607386109043918552475021991463542638985171913550996365033156197703614831609592523854471051404765570654399600747620590013426304069164085406318964234497358334276302828754457878689705204867913538297067471410394479861351645544595121373242629178894034727360382936409138976087023045783668004216349419408796771725587889697228448858446674041211062369539468585546707727509547415476482261253699787129206743181806893534528130414554580129659403586031569481461561975844474864789372973747810802186653588846040117777402810809519958701916518798792924411694915886249024865325933555399780605347059113961032429193656064676962291318204927463190398047802771599100661951863269077223717382467196486082890324918762636705175771818799580767208260503877203587101395542852925383819962128006383841372198855053835780889922753811951689343638650684089721747321037319800431476095911924077044556557003328009729611384632976704583333140122609106145030000623596028806774088225603177205153899068727101586908905999187001392910329328473376211414998825636995499910252161696350855638576854257725741180584475203196048848560159917500145269443743477827509707630250448561410714814877522450772822795745668645158937553571495564759290896191561987857726094009618590096410509340830317693807989489125485014775862097967423912503746235262786294990418342177654666112824844564253385895768223087830043087157610103942550645027493255773194905499766427149709790518925130793271547024539472807971271388824332560453719675780668650416839342696147367915197692547517871985806756197068170292787220008536851391249545001748955600825722824468924049024174528127242406299707016698374924179682418829050330498308816020793428117389496496081712519304689768931307858836154628142986326845208651036967417710524979990844927580746310022216044580029301661913443977963115988071316208440236995773467863251303337892406659949088040923091289023807306831258251451319704778973163408338694882823734642111713361734288804177856931629480018010747479759836143188769465169695006021076738453356334639521559198903523498248378126662718490548724509916175729260914282775000660701739068332636222573432825202947521438529851106991233469065698306252913395586625128694116821701513707189569975052550677023784490182903345762339726328630865915573283695637721315501725440839682288661348745223828079350546572738309732890864659748556042270966226409911293575272785836598798931089873685634052849589003252030221832234012042729270816444759322335439167516776086562382330068437553157993371382277378595695664743933777365886163043793251916264156830752148649884797449801912112371910164171030569300482960557192520014095448820912861317296007648657229575542566047882076400031063259450055608122586270388841905964267067064470367343465921285815988473033306743622425627901666638234399455265569362952892310038293842959488595391768543035736469736775180654819660983354732811825884756138608957677773658170687200293379651254369861893764666170018708561884486379548975906796786311426801153875208907560288986449186910480100555449323398352122633231094600746534001362995497921067601740789854267738410912959268181458379719108145268769349587844363019831647064779006001701903685582076582967719862748786782063606279341070441362968449153266351536941749580022097425950503675728979333442221050293331177087650595355820423948987482451628912992761535741006039309981702392382479997355317288085609244278222444610221381583900977203733550189812308367704791767193379077483557710221238231977271019535252884318083104196973009195842590372801037206662791646772336126646163106071363281144802525557828531783255825658659827754557474925977313962358875180694205532563534343853011355385840771915350873445320656808557994162858354846163444227727460478029929464119978462807302910115140467466894752384758968454003078033858421222868367849328472330199864975826944796252703332461057213721365292952817234611447628557932628035370269565538656279536410422334293769642412894768700676463307989605769660845168733221712255140356451244289626950187455750820209375442746138995709226421538439268407443168873525045319810106372702503431149422663430157343865704594428103930917369966670102870953248390828919795070622702098156596849935797761837001366706402798098807492076881534641867073102711520575895867674311514592836494306869888129013038080262259070486585478376556798314415476473432215711447944565865100139139900070810773754194745695620532550069350556512947848619257043788603103513664559280695584026281695545940605952420159025631360716026931972306002647163015103121205861128276087667153043160500353905352198210492034949964120342694990153237933683655310741834173950061042548687735268625217670597649597407195410420931222513667838883443981273794666476654771239783171506629900080609667403354444913158605662329151292023366293680652597579029098351365599531586072456961591598278486634051080101760114850526611977238910693717722427122827529761580511301569556831705288059605928176612246663299498868193252890290278733779075823722846575988921303686134615530592106758597423137132316048763867008645049340631905063944578752005556925337218056581550742510557028782931854392793100868987693709203101341331942900723492252136863106050053966273350897168160998743542230742320539709993157326389552266050530650449340694056697050339510994927921573311885536325130441173184987072825394888842705511914651643268000401164163134651567416633418252477973215413936021327581280120921599109105418610479735151778571945037310121791151331110598753918987499589876617884554139206920317972547217928470833561267689448988985741341144608748830025764583681269269055733212744026768169054896529268771909678495325304675509038637871074144698985239879638631726667665166703870163413437887737137070511204104207846746951405561430692721796442472391330063739854545055429405303471638920200100146369304355404107387119953769636342007549902602944642557073531794324629151131065865120172211813485878739740838240326173174117677379140467425457021359899144316544005265824740980482296290147295937316680010428143750036398308855798135292316738000762786777845564285467620047702793286812426233916850794168917403061777864317869232123716560078091521313199668655287430603338667650417834651121873099772583985246477920137717040732184167154810517844273438081911321286657690899846789632995216511564804314472953232574136587930082312379384793405787636735759495872617614331069577563016336391645259904491833364648801201049994276442114209666917936292069994621636701282497698298266921343159008812121839139885472923431900040454058411638006603957964963891153556609260833086963236750754591269889775687311198384441504739189475591339952939572444782904448540379459935232339494619607379045872324938969266154768809829560733541369783889813913519634242354717611261048799486714340020154838715620106572534203681088198941235373787930350592313274473667437330815796028528832053782083925096298086776086412004766201458153181685319607099516839493504604851447907427725632778323564748954161680570326380470995997848819739704078304414103398138955388393860293995833795625173151582807578825646229202542428059296865539509258576969101372257030695600866140153370685664625263232378354886274964427422135950855683200325346087113256451720417222828267109757698606889772166373972299307765930428875604882715851193079151512987687762982766257314738820710130082174631402991790337186404660011116425791235140128294297298646607280541000585584765600256550474335322885191565276708668342180996205643569061921930430478188088569720425276630820723042232602041076404954487410561367772572086880121809996585617543016082088594468190830518674022498876394971881643865660779459196683315141604726533723024855809639113125813858386253500492395152415787010109741587323215211422360081528422205811786907439975001531207814049350759006346183408945777226217674305599312735247854894161008583105768449882383001418270813317288121022624392984151906433556530439119670855054872764987339283135418613186169373040760998238026601822050353033231737390984746077727770511992053735167658357649448789407604739155691689389221167345076431087506519329331530268131524582077588502366489615500988270173834400497017301971233194128899639909818847872185929003050010639551540310992710492138203321303311946593858129470198130695621105527799913061197865654503371643594813224572037589853739293552820997136642930742089722116078811226343648040469454971445458115486331160683452897149028502145085899427877876601320021911730686660504605124385383221141390136777211398186522523424554456972327314096715385874119491867750610597434120564821879525593961670672103535221342712695232148839467917819929309274954002383659842978680897045142331310181576822557207328281646655918225834908095904603641703667028366264010932264165004582731137082922442367133032799017106510524821252495923721444791694337236035937504725205975859196978690156156395601420714816805057399004490405422188153841066611827000656547933884509068851772391825732000347510183052347693854026028374176662340704776717250418107638407326401816745755474250783777831422809358724216800730175924989809073671771380401194339218192343740763187845098635131929271578680009733541699455069547016226327262853369455507307926089303925199503455933556520289064770431206998132978833727190975089389017553822699576335954210029477914066547675436980387716102435003468011487297120525125549355066644324675782639552875254066531886706223939210970923727119725696311381763775140669367614625505466038006689362103827385737668386196157396179065468835474896728766392280785204203861643943774051849709494603026618535540988373816760597458536104903217821228912393686036449365985953088434102053229918970536900508548222907638409894199775140034329172523209817363922597880885127987021728776429400957104246379412102941984783482620615456953066873483018879719983002332192886766552727724992554273400631561304503622187631071887752278048478443021547350714694045491741755418035455436914651735548612820941537913978152544170529618689870969993991845313064094926956122915381369537707137397737738141234829555019813020059026134743650040433010178441966409874782645192368537374104747944049305362895593430813928751688609520440498776696042325537946156218275780455106615677649798616641632168576036570887722993633613413660671586745305435620562792852571389488956475752723720908479077486333735752459906304386123565938747103623012322753090147387028229777622337158780642378672174664457763626189043513604042504594149886118281484118817276318894744970416639277970700275847716116170655677008419068141140400770614206927649960984952037322848239702402962925023584742495421729752674043702562561850970529807865986119964910783510517005778294437064051852646817889586725900964827398481814657534637425464263944364967627205888693197576093759895111727795143799943502551160631307654701965362646579835714530423838018136941712363479512714938068453160566448665510315522510036404821174986661497622449191174017886461145675988367575632852921881036725898311693189855003324655926120632002604040948263693517762155982018630164651420648246147974179813481743512146811488907867098292756340554508223622196134299738731943248296769096643802743330366210323940743497681758462559319205718792344564935823175093845476814346192343855925266317676640812935311454705276519457837820604919508036013729744064582270723796155110798969185374298595163537637346575723150707272912836562379048885640132152835900223058017918758471639518107765643539670481170736309882218157870608082095753105298323861923950494736969177878200174689372525843585530491917592826639797152667457265558451715258594189198234251341547544102933183533118392541601572253125932178447440917537882866893410674752316867658712140254214528854924757478385002667853788527422788218899833728170569278212327526351785819850282174361574376596863920247260982622240175575930446910235202601189415807428232256174578441265445684781622933272986545889190053676285681335501345060872751690476077303568374568663923745211756395866911992196550087102437189962450759931415387369792616271646595896917249420674855726627940980183117276967763259417171347807204321350049925117051494585996805615734756597227971103660741709836529552740357266246033333527904670009770793025308608429727153473291582636416666231740393545736368693487924720653647057219042173492393349105637783696135961724752022264641291118310846983380371539045504926739707107766999483608029313064762444231264844691211891988086940710562650104516977549505621444942882374357712731308878250146374889625033358528285452059251269131857871124827206229961385742620306120199995142182080283124066572607833049066710239739098873567241503064775692279548414436247036384120953499305218373331601858615403810605326710228564552966497890388155629273758267869816274810579561727195342291685628528929332312526618872113770235631382614505412725342514404183821269159379915342057537988561774083676873630141507528126584744183287793023062721313968524183127325454904708058667949463661640299989023921437456933758828334418449332341972828622730177446678309168495488165108112992677442884011337424878863826030397308932671391692985380339166695390176900243899872909123061159936346258771216127847592747737096721834975218765900625725642412692348425588752388355676024519030970731137537105322156170970861344692921106307217339411703605885507451337099901237334653592833464611209170677314760067817999457205206017551222283295123373328130294287294013385594582532310721939219912040096683484076684937428202453674572161462054683242749250434447823661984868666145890322850121111571032745324235666450859881509656883538905124378865457685987527358295444755060054064610217029994717074667324930313286166272136841790682334975780904565970471371558281096806191375878988667419463647894818252654692426954312520386286314986465901003616755046587390638047491080239961560486598582524398513896901124841642856887683203825542196292097513882819631845643782134530275216045784351061782049622264470338132232023148499723973360893680155963889302863810734134841231423912006688873556674945009206831855149137591215970519796166918625198420164111328189014510121396759635208559230432171648117824891021938500693587497141155300234236912699568562149085976542849942721745869074855513115994988140506135473913948285004921415802581767739752087536326602747570199441133225413731502941949494568418596743393787594868152981909390902550862251741523402212288150696930900272253890282564568325319524137174876826147400090994565866412098656678470887298448432759561700583389865747489369007134234081124604536231664294626800631590521556954189255468283229387509893292640966390411908447288667743302724358042744857463897303925470464251382292409357952631505195165693875130020614419073604162495642466600449889411763766903640178457208231694999662798442032887888395191671943089571203674635483390663603999769986304760353998111599675391741158049274639618681687877292101408063610041961566884492400217570296742782098227000068778712247497711343945712343527985814923047543099118048967778810667522675107114601924319577781738526679588202178518493901491631382675815639793310547533175018106617635558237975326219835368068892090235473339719177322497928144816347887512641853973587552091578872070222558030289089389449057645111924181944831946838511819362277487066861280686355186460413903431614674865465213318782189365276863433932547048792641827235858735996543514311619208112205409077176267717233851996358726306064156617620179265530279008892130391911514752310546899887221467027427251498873569795299364785887408054358743128188500353040941821470108258988017770103538704271217950602282711911151021789747371226405421139014675998488399967877848841937417050997988613910781424128733182120291720084804088972219668389217775627415287690352965339435676521346660517173283308000305338880218977212489928957940757648616568416192385863513760795354406131215792607045585912362227683555249169025062258481570917759624117174065540753170845952069134960025267768545560515421603755536240096065007972576145489521041898192985890321135737741377825888198950120065949049448501329376172312552383846817438626804284695008115117364026516702814599179591358913727406748243781448893916864789072988247836111142775311534192537015047785183841447327808836866927091681619073926951545640097303430191444052946961941782667361166144052962231902992452299695883803355743019654716847171456558258111813921669830922490787509798869826505669514964331425162618686108028615897327143340138526500290214086365868520322720947228396726874407706202145864543058184736844151544945499757192931417660816600146238287827733359579957361348130414460510570491547964361567009554786782071358212122032270164553915681666606147632468858933660275353808898472138000507475269393016676385987087172062557237405100220832901785446091381005560959641487763558622390182568011620414684061611817689641310126533852984584274996897954576943137142293975613598032429447960864093688202375806181234083544956115003944333091874572055566504070104143878722528408696806822147585211253939313690949322404693938791446480065319657913967623123237415455892475520975847126217614319056947190932374417912833569754015648978917358862909025224240804290297206579111117251892840499447265278210122899657787872671633490388309033475332165998458281018074339442949536753617961756168005170624588435875186060728641749797536891598889730012508300165094832779293334158851975874536487161465464383700315852553233735547538646287221800156151377944043450952046899679989925675793912791666578901818070709258545483530610419462954299964137301241627145346044320990016089518614225119225169901348832595114504424124493818691288386437910986956177111003838786705054323993002748335469535892227319199986486333894199267683268824834471762625742919972150443477162878278658166850888208362936824258255078056718674722457262610879718576293437943991443781635285431060967983132055812417905970511880443786657626146365061493078331913351716275519181387071731685913451195334661533873432286016314838146466406586869345422403195859405294029661885341933026785379570247554236013441547572113806418046818916913986037283504417528011652730667683533579344831633923508725613879537702035059351192143269107413538877983996417210739177047927062963924901882866327000134916437602758508163025552664547245451633825379085975585849406595309584767296314236412345590601732548681045943630449059161729477761717626066527395472251495334997182836714942630179659196539872484755591383786243142709396867670315190187607938444325590145544560796970470355772588613683068070460916028049016032255147829319700689585301124311468062121471556351482509765148930041376142183304329573382461282295926717372172108991136378412346131484118380576983738652872352559540590524468792665282475965984823408408817673062203518060255151278954301498084661354773183492459593257745070207455738205310747538110383283353083199774055626726562087891299138382150605707882043504516297398727338957574331734409403192420868464812173557865162442899078949900560334370590466893562430264896974876353712491939213905946687453771021058742479631310599663191581704810509476512993774832455784907698352337510581369194640897013662799374083724808839087306422500425136050560400244816276343909719969231918410294286616121239863196628081236965099861738032397105813015085206202454966450476157603399289065194708401816061770317266037710426498613914738772199380636610700038477025710894888748488048374075802560749756324899636952677846761774574607860441816601510960842709437833348585074852183986297147282584201197165169128702564834986741817577550458014969618136517440916189564494359270837547177702588941076327578769000627550966340833692809049950502535663194605862794719280648965476389461688478377982042459047278482017559562674608004156245415117306950430005954896654501709708361620165827314059827132402398822420841721942500245984273787279332115480868627057963477581661543161203320924204639804956127629061663586541689285816362874319868255666075029690281829626819388566549080464744069675947253165060350477403617303720741899845434488391444593906131616534477074344824858063535905637613587481752689054846167945267992928574974607787554054191891183527451129647852765221076388191225034205608518569188770881941354653990748692291938485001934152136710697557433579752724596897115994318375235361822916525041653398961762513940182580626299881886488371864046459438300106023598082257738294153676820170909044423836282066129304200088349585099307203976582977526983835026279772778931269200085865137636265337082651715095789046453765082319148007603587918589319957236559676853214046711234243983494936277084978767543564219762576192509764951186396306750591490609859835513532872048501570414699228696140610832480094921575119932198546178334044597670486715949477461571873645357704361291551405917176990678008594226071104061772345123694017879067599458467316271020191437629027535912400507797356327464585209434736556607097666877315006318271005739654954396888179058491389388427350399553184842456636632911740036654758153552140047808036147777123717301894994835396946124666689766797784632015771662621471661848342482034689648350861023262499747243545570617470275608097170445757438677205426694839575951002403233725882251760025760772156974452004464481665285169318077159441318647701479521846587702685928100798662840218887375348390890152481777843034996288111832683101625756193741637318389745176573272845413491971917984486495400574335419283799835318787901094973295615014471668132116103629584900991393750908843323619925729680165901517092945616985276829506511360866483130214885532408958585213835600940870104734203190573963195434259725530766361854442819964486639719834948128380803945673675330660790485222188033901393325529424806084798525150580487953421068693606200094238508997631226612287370150569850332538818297498684207305019366731776336348048522478236579998126463557580446219486635889979979728926811024313509611824792604116898714810717715709356599382456645246745299421873323698672993698835311298760761169947353467963314759729204900488275571754121192785368600111585013381838355880279059983277033531206117034866325705773203745536756678376493231284846844760594373209602855939859659985578167774884361142599810794084709209603295592019430925817073142763881759943664397655929855199365690672570855238045659234200264813317315215060457218008437064735915173088298593878570733701802236116218046988461841949153737082601986640924398076776405641975864374071733855791730629037639957735089368484345894699756290029598212698521208313725900597552927634594010033082063276517323873822053172401210208782432368106181310803206486699722691408279311476612864413137736250354882423254759747533670585128531523848882431777549733009145136282750672095067300908363555619435180161446714460152505822956124734417642591774227439580923427607450080996564908413969043638163631985988544080850623105609956394475793680859230711182344249266036469819241013256948348547222018501892723131950355424423587242326087256746350762164829499919892268972959668531121357438452970802979808387051107936683758563628332095435804115454607208165569331944931821061721931517841847803364610226413523475608278706970027718924105145958124290819390730630892341284110442926212300355409358011094642247150269233044884283841987893704174998856823295703908266959377883087362629382885682262432273383619883728720165254279619419089407666144870846336294805660810724951493283641589633320242187982884102451156711977063498261867331918172646570818673512201409346120801171525525892607705386968361812709603337691305206605181936116296765342552114520940528593964339826790848330997261526227031044252596768292110550122560828534599672349285023094034915717414937908915115085704842109635701251320854079320685094788574603046651540668112648707979436602686947452354933002700575332822751217171066705127472235769909941482177884426389187394859746988658861161411174625914442701561349777730995064993067716054373726588158739963377218552636849909824311369914745537674343789038278243758531690377148080274433678732952009461167050785097824349450488576889810506467205019963439327554415540319368810916011906587167220727710398483655514929062901748868970337148377939751027447897235921518721913503071530991231755151058142957748462727095343615315527534179850125532830825561386736949939889791873205856062115585868963665677441701905461306789661331080700894952147457672036368399473880242231604724335104302312033939385314830969995254171088643121241074949091362418880931517262181099468962382775995379671878444018150948075983834938177154571641658504038146322783992426426998603106641892215689660393467311248547368666723838007606115123702869219348563994880923234999156976793796895420731424247317425604543334479524837415231942209462980314837530473169426565854384644382756406122199293734023427854624697487399939615712232094950467969513080236557850848648640393557904479299674303171082351045222269090043603989661924916023628818308737160913275222381112652042341104899208842957248788674238582266262492815560898183172152421428057720007164915084746192855835850047347415420344416830156743803869985966938673743564572889073993977066784192415499592424556889187755638891423969363547442650227074063121714793362235925487936677816710855969289206143153128600207248625329775052320859708402112913007226239618304301241834589978274659312524621709906219961132726931265714679353962759702532565513020652140694567802874083847991392765229582858154619444282478336856045525916691735892456709744267965994263494032765461426702712349405219963459767025214858931795947739861469695100152266478128761373536228383515619299644428645279235211664654230476205763274774044889924658342277060422974646160079165911727160782253923771235663205336435977401135746225943446784171264561495375182678781795205002458593867630944493060474381652582263332541342106946072332742931702494703966531600653110367066480239601818733154300826743109560283870600704294137236455828564831296231574641487633015769098320379199390906319111899283403341381940316849928222823333990037973482559486092872147639101355031070264342159458096259385726838703115654869964437619088568732365130787371866628098855340083310898930116590520771075669093944408919319112041212737539655661844564657929307540987101982358816127318259840848247914234150795115738606193033243083094116549879460155053360016882561603176838816901517814701014938890118281759735699462912700508722473861666342323390063310216976285980073357077024889987393470947579842876402007154069215720529946336190288779008351404891869696883983873228588864394491124784198697032350718075079149084969351010760787996830609704994891876246410430918701017536649528340336346740309592186493592964409394297288960499162524313552231161335311046020611948397037317372128251930042732589551570377351357505490062838768885167389686838065690061249883545502439403303826440533914744216665834031644167198837270220883699484272212972380831384713502026937282956313363184978953969375012806995269337548995568982750686985781465946535415825135658099335513864949837422232928112247356073452869299881554860831045674615505257522667011251947219970048117524326459980136114689712674907975577065721835459478975972935458554101931776074517020068679512584072186221182280390091410993543260865101952429442788614229778026129241081996224629330491055126854688451094685650725575530755041717245893257372365073131974789440887437254558034921320741538463278694827359375430119277683227992314465212465669239281552147352799825174459876790528861522107336435447659321498710447805576868900724246523116331389588217184678036237676040282157062463224244612128817860657134415366309786856236804697126662906904255430925139110846329160424469751340734426075662972601188446494758747000115772384132209775406563070616782362607362572579172117989810882480126942039360288502787066766929294895847112360876659878918879357474866455281539724836536786839350176347355254646041162727986690178861977535723487263613801066653369864816098587452018704288427701410990345365836671961792226428128284699360367932576458614226030654035197273872600828618226677939665436114706714259687625520921931253694483329918041728820894064346256111218875635644108828638371141338132205167977160977413081203681145411786260597578788470215386645470865018835114493512483156179697243967837963490500109671350601973613300622910252181949430336195087013298189857449833989974122880639416832019584790662040221354257611328931191017659292323922138698092056494249867540992390149542790103206887151429960483547258592061639435713445347885106093089147292454553875901459513466501323977649114071651321491825324061937664031666198375066085203233517229337029721670938845581258522271166951737537451514994306520246464724371608806442843278544671321618117274832645251229004531535491456280570667815017913978589139771731873853937558338042332303605845834244605797196021043205911153827300304171239429734283854756574905292142288799576924900061182974890033089137903166111779487435697289849749026428435936128834326405430388602800742094076008439263225403644494759814192481508315994692709542497705430342964081515596662327040454051853561067752503386753837658048340587797274725997332724866283933598155803568528722118680064444151276293652253888170330433417746738878564247588249804888358305855212153981848483284135269122784010254910691582708108817350189626652198735894689390261517242151790559025343945540045460273502661570106636864353773086297454428954818407955031525797784438300852672627921774347760521065888877413427576506634427314426525551174204103168760876706700724359504987103508741748285282806200789995798914484432776774276497402214213651381388515989307394630873456958369449707310514783806811810323547066110801666244597961665987916869764669291006638138508259975981337280723801389029297353944471528900286650846877303528312289657833302645250621595626644399705443748138757098538183632609795084296314815667168009997559806680767492364932664374770523188295914242722401678022182875736100822959348352389786485687142710050227283628049781349445392417657186847731946713721747978995859391379526041699952335953346640782423380952515215178741912475770177029407224652407585049350766344494933779903921658113009263599473251536947439652267440304867947507720336898900170621645242415023474537151080989695209164781826878271426055606571807149969887479168138815463969383637853407472627943416369759572503190283921091388422668677737125132552797500422389313938856970732102861385214175055826694649932079339110140252804779379311535945285017673588053790733276584165134437088683851640767917898035648399132048372780930437603548365243746559428105407362691697441731132378602492981789134415616042365268253128742922251310707188147700994485550890118908808541510538118595905563837785655258239770889029648717101004902744802001725822421204299916865626060214765275138514099959470423135047730441942388674768125030305716111732180472788481805967437665059958988677631517575079608939214807097034628063762413427357973755594939023655939538799670199616763880764678295591202401092784274784496559782964963809830097884838301692095228883021082877913342454999825449983965192288126432099388080313488940512830574056630318897920989600302076294892165031470099769017135114420884999466203792347721116240320413857344633486655772227119862352815996831168703794044798998542491797463297066504316527680050654969727695447530891468616354349487055567450521133363545210763544511767318602759529780178825588925199706173714128931215534495459408288341253759321709741339216087330147220200178731797357326436880436818656765805754665971695891854309159494543814992084703982402913675863139530214242506420141717466954765897039112086458631681945027851976634855248578913130133334492805566261090496243760779381812944189044892522442399864333269648646537281786112125495241246409136447467545352655850423082334717512178318936258305866672711592998445124658083669152197801405180355104939761979208797042003618034865988615115521461643386391678457335293418940779668349138034573185810620949007699587569358903540600631465556951194500121936976659093738814793696615561454295647433365473883180591252555699256610037380463281406076120911864490970368769176661248001367729245915069244925036920627017097574081152747858208442720864580751219648731434846353119660586719929798342000621637546271080795811307094789327753779146810417508320581082851010684439807207538314688013744500834027315977197201399264375070363524836561733701770588011997591279024018543739819576091791717072197377989730961277178892804029924041691374314888192070259747943526000000971321584621827680053237327966552006028940263996034155935994111676913856906553705407808760941094158090645427901941243451908588319836417757302106138183242780912555658809926406955470008583321383789870939266143459598285948584038305268796423127137538162664329998404451683780130093508707531522180783059933891612540175821804867681674935947081971669093690853407108131899007372542559151202454469099054647642974578243969037232030586325654047433076618710142731825730439801960835568096405874343603592391620120486574113383705963611274329485519226112902711169575732957980241509582414141494083191847222794530439529921525483866447547691646692135951826325825143925115505342350077271588294436276748902728182563030564448753273800572617354141665084537187426538054274811176798818698442796230744962725230640873062783683850942159695389330313301113767411589077998300843438052379100871447913643961659637114063395641792732105639469150270984998507418979456590333338377581589661186181440086017818307598479306652172023557779281005546259976807797418795644179923132211582177856727973402510075662057376919919475418287833100500131222557282012792323639944340447731976151385753645013859954898413887790486221516366251878878047721051212167635455581396812784244178831970372925097072755114850562597000872233869549576073146217082050264626174106929364262452949020858426872789576593835326251259850277136846934253368640110104423314531116922688497079661165779832791175273332011102370946461850812292009213134215529215576013417492795359899549845096885484652967485611675905431957090824826932373240445339906230660300208457215205022289285424459323502568772092081968552440213391804006737085372934237466322042858711403833073547993947032634378914014050297778230194062555383880907977791659779422839009365952802700486486102018727306551793414441648647633763535847459109464568736946764625261503053559492367752003962409248865561167295189170070066367326677635093744548059659345037935305155184400954660973779243840970286774402510249693601147720898979807353813095830949571279890695583857308970859981477314049472121937795307919462973957735825377307977176863937125428538706952988583602262135356469293961887308893200914680401532193321282114077913867492584988816052229039365799513602695527834165815009002103964353862512890213850792009714727559851928438611759869825611394642352093494679565902803654755892117278998754228199585248081695716892236976415357803482737943275777806769941961590088946032203542929908854317778468409427870297710775971308216841063767438453746502612696760545539012281720242016843662564795305826669913592252056074273319884411149024546340130567739103898606453376974338097903123478874216727805146026405717607237230716309375752081297867120393154233097470594898143494017905890699104356788352886337540525604365392493624280133520071454755038048767805880556302972369445800079613213129568779433667396330827452476664141353141934254782275160947527181528070578914056214562897031835994645918213173768837382992192185408292323812149965074365742798520187026286615910885878142341613693229812637645857877952159667476785765950727751960227597354447542790239178350863592410637579798540002395662375047129407201747180926167480960468002460268116804822664828254636626791355395617500971732855397762631658706368877835133884064622519203981044645649253320780925350430814464022855662190382713436403712344713780203068050491835195719948602042057552837363464089794050271895786812141399562304441631002465039931720232402468888680267999487519019450272524308777848079679911032847836105910723207583262969272609283883592392795981869949519911225272388157731062688923052939450519227012463454125641369280419971365556954200668562660330572216861538196003990477780846315108778980981667334514655681436337315255307951099055068978836330858825038209436086643830033816214614334081324067603372335452828593916536046926104603393544992702802729254594716900436520968978476916261319964021050440540096422884962595966985852142314907479670141144504386172985076830724930439178001787361043798624252505207625913599682026220778812709204410395124304641409093861046384565012003957263706961374219479845241465813967344315910405859794228611455853509769166446238616297371101133527863471879306248258905848381390229957319162287759634834938867882715071726104593456773148226005209214250202217973213744182917588555378159565922362103069796897423122438141995770414151528677797747542429647156732253012208025832472795635751617903395106639686035709568781099837954959731788079461838041462738560534771248315807720800756148819666906830706141681647932388981504707178545496451075598409323685351468982693531070811818230029613885138255774931859994231269209992982431879815820807447189780665784251688618854897613462343828410023136873942645865453018220240105332206245759803185677319782851687791672109908158517853832238524881420999315482681304860917030783999624864480015621963554889437018780731554486509710264988778441381055273751200962792749552833492340712084170239350611594618001391538910226101727499071182095394419697481803199306208612651061180071982425901800651115611597113488180412041200790025548431157435311274314131850252536766768737213746572918907117104552556552505059479858908815914844429225811280861328181024604599932011763159312666882633355805893780979543806656575543834754131899291778869718657864190129523545937050892783568573596336211364284683102376285056820934482385737339496998015003687621694310369240600388034360983595670701046779707342198841955967903540806661717474213904015613059959574240116118192227464129040580506779534844156625488194732573394211271537129134359576605747711172957028622596089425565858408485520393084925127930084361351862318855050590058480345054659577207509230712914246989745902154858854690357205116349680044262611080060417942967164322690065176950027491418616319035986128403657775663847833825059836664869368278941894236892640325150261473040946262564805325517633033583246040445770819028301262331741832423264176206326863537991649496575681144090073520059855318131254841878831951182558601543072779950277464692416457166235434508857668935031938859718408138151827533477684013167141637997200465317876268521017286084174771557094522376074022394750308483263679477855892171937202112704362680226508097573189499770877407183550486747091055627481488258150207251078229087041553619401369535028683100486934718058658874184630889474020204964053217449072793848185752043693235367461488181484519933990341783018259797513686812414048768411839166490322272541815523286298389020309354223433342793848340771174242122298835580946326110794207045001024049767482234356424282381256619085408257018812446092587782277506884746749178481647923641070038408176448592194538773215697978716602286021607291334108690872475051329867220390526276941819449247645065062039227088149280345821462285735381284765789798740732836736648647004448606258982206370511805132502733389223804151865884259999784192860448710917457559846568880029338976162338739891603358728044145737930487367983199677586919027497300621535820016245749815245320932956525049211046694832535835618191661194251978893547258776680147386874950233659902905698983623741517086793761585869416345809454348111571759502030564254013460398364058885897010039046790074678609419831344474157667955417699734083963354625429847629459979530435844863270222883816044635600820743717137702112974871445625299129967471354561039840226520508008972830738701611233452585948798451996946107484078860929478334245034577223127538410745289663831655724354723422669308377468417618391705015818822346691472338660238407164238866406512205056037589974763773146364229480889235753329233635507566248357907965743858330017463607246521292829542703240513692551278903481607913183480123237221992641062432595254996211546082194426423181000088101091323845905715326367493594243398020715413862748183817797712484649672761507688406005633083914245539011172628611836907159514233408044911390159471290243823025229507848694941998675702389104126101842753215688373790923685035380801569982047842033743215801183790732247636278016203258427816167635532649416986621005551595826331752150641687181288202041380794219647363800053033131164434097157191960827852816817202204233509075996096053519950395285476655627095184286351492788478818094728465102434948034083506440407801115750170473271222323445771677086394539772031678246597363503818651890648834577262413788771155646001370684442208209399203530744677362696532055635749810901479352321654370474163859982144670304350907028500869772877016875272256097604301765020818975614794251349926589411410736257161493239089277121478226392288025854711244093724714846193201129775800285611858845105770506910745238448316588913695732628790290455379372190469815301695290766035284757609273815791242024669326873867218649962057233023692892976081579749901649011509938417787063424933690424580139382257237870868805500820655289281110940595705576427606936521045783788056015753320798304328234721457422627982335318518190365858145522932395219525043435648364051321955886610482822559131595570658826328206644669657120611117120989769779942107893788780361316983924394040105350339700293772422670409650322406069019848782912617839294509720941200203940116936425431408125564529610666051121538403437955612360759063425781381889923057582516471533124903071199475571801721437086724083004680137831065408584291444332868530560131413346923668864422939385913787419480568609808732606183830083883592891578827519533010612317258533762193536330707251086176174723387096302891046589513541037431542006976811884025953996649470766484136159773837322527895014639383371919482294599064155022402089352005567340018117666922684878250402331245141154212303225288919038704894573329685933022691793945647406298259779921428845097282879144799235655863685311120125636934471371820338018717345016070245974195773881385547024656734679986810471027640943830216898668617819691064552540211348167379294785830103565403086100755134365255219572459116801003334646140148621144883446891194357367543238854071678109824278677747079617505561952131401889992108870596543750132273131858132586109723480517763501386114184851576919705425876870720488120237207648779624240644165081363360453315465539589083701496526847769000311144328924092413802086577235070017865648661462932612435194590409062166295345106723724924503277170051816601219092734214854656379864403761887179880054675071379597878285983868357469055211684900886036113315386040804139833157775879036535028380919582901923070508493515868282203558550080167064148700194771664733920360113415202651790616872629806067761360277740149023945765317767928931588523761493155647640381141469194825288219215776349569658352509326233636307705189684816253560647924003930025020242178182894502923198280930269306168896346303576117142038020042123640956815700869903227610157705678350051363010229504331377143751829274801545634501062727846178730354818187578227408121850617508919155660016959419776133632738082781205986534399885078173567114384684585864945304145446749483180064317661191563319166774487141726714364858624531807379726415291960424457710091767408305475336076542291165074535517195976989749150194501044114884054392659531770782166779558034295940759505726802303270252696804765059720290876461280374220546338890260373359716496880872808595667435431214205441337919085789219165675246405854531607680366412741575651569488338682654367847631364006193744543674060938932064404944573725694708338818299456182341859572470451207791980317896265439814225079966131662402001041871139438520212685161200047281869350229239043428023694180167490019922270768676704406760090886274275055192979593704808301728656468506391722654160128522266292833766196863653690101743923000747732646154824893041847642260592380561565987210866592808276038874081844541242003296813991578253708180294429618277494298641331189447373203950497182118557590014392813017982463878752566209898952999097171035139956068100846363061649968033635307733442079529511793484743574125073251280688813826685803259092617631595090235803994789489181836818268464839672118095285346092356135422209976059133859360716345405726729651992335262982995722752526749254305424009100200173369738686496610774921466299721532172487041172541057905343182065091857319422339132105252790239444918360805423135694476929030045601631066147593596910570544657797184091144156923929970225829554918313492047029713860884940358575885018882598031192443363912856773186661279510847337271832737776941406210869575986753608587371426393178789125604331712957936694548481132116773190342817816373182434393316838213774111791781011877789008893897951113886404517166733486356562300893451897413344064518816562126525488469359400594947342232107171952446918900914316951503282384650596243309023486014621247081096719354419468312492424726515195092817257485291985134098912708862608100403843211343287817955394727907980409459530645750445524236229958733933622460590457595797207458364250614582311061092406628177207219528590399965930930360434996737392180289908116654601760619757933906356949601644179700186325188235396212306963766795191791339692976241977976197065335716259627636936762337878987605383206553061269711453891680805360411063419453654395074587253679638404923115409388412193169190029052762001756728645170058070608849165556501446330662971623024483622970214101187464837131008614514847098798471347008798339038009859819174984748706089515801340988100936748389348529134566949580576714210538388730255864752942917602101010164254882596987628307569767003716306040669861711990903518607747603157987907871889223445956023178747436385907088619481204895123462814370098797272646642536621236452151972814846975419489128149799215473722395199559342320384017800340935711061185557050357433518938300900981653186130006723505342281814457852665785634411120883898318296512909104890410659904599533775180218193825411258053996852585202721597611275404784941432308205477301422425482359851969462230542421074228879787263522810493605507103830528176958995304792084717147700066247754754824082930667587702039901165306446165893320034255789974984903048323140194050333284209625135445286844962183098955756868055475532239189486345184528178782765790282662381658580858789030902525985607107913105241955979673191060544553584732448493457657231172469931315452360176585928482024207270553153382694573430492727263369668517634415163025727978650616485847658657149791206963383478496864316506346271996785536863648774849288876024473362522417648758110688186040987834266638903734940087295837617400315398379402706235813418960643662775875045400618063105216307598110118110891131803815083318845456064307054828177940706389629688123309578244953935226265056311452548114328504444099421541820774485850501097394493151461725804619237116000164976039472807725061699929970087723121243550690635894585103034762182946851342276030848209828811506555556674825024920947715300864220034684147695388255756220388234790139395927679056651463672792819263177174114055952669101808727238820393937822022907021586101923365159931724729401944437732760475592253065137022034688836449282184904583187364119125429373874396985323118251380764226407398926316940903511415542496786989293648283088426830485331159771867355728579230570324136590950322639886062051869209650196793133434907538614778069935900317379065221617398987518972879854180996817543226003222293107427728220434332539411068621294118627738089284216880227074588668491045729570559442230228143367463073177582909409581550056567225432381095839168225056601693212059980127679975681297597804582427996796407523076323248905020217673153012773410541820561271085906961457859676716576805646495230687247504530191496320676022965407511646683955714351330852500087992379662030625354573161835908259475590835550980087419832456740540640196076894718978689257789012144277480480565975106853424258698012233037844919792485117645080174058173606030338646649274666411282572863360895086948034234433453473826151303049897354866461189059976619372874053207666345033704929173427330940342298354585247067763030805110511799936279108712423415128438636059936358572214820836417628062153943723774570311320448561809555975316705271401749614323568951982309643167096228519490565777395695316973774245445069445651514758309633303056836439200793845080129825141945753179972651216495194310646720076258960853514761657685905049673052662436175978960957536979145950328663619951561251366898712291277911296736431997492551720463962206254419144198987154146219216406605950102835335726858329522456598449706180576822858654661045951516670894154597401884103103099308073837970741436313334025942786092123924828240593121958164015654115286398190325548696422834732522438594113977305155132479751104294547615669089387952009925874392886619124598952603593630103066948546747179177005280297094385546900143264761662080113306384045329031652824570376241955592971389272128458749550120882874014110097631221055775610478091304285660754877684732284132587209674508048280733558137535563880873295992538791387013221393645647707306780274488087676039184794319448311543516422595012254317196137568044583923950927546644269151989995665199793703797150387496610221521276540402981069504840804781166485978555291359581350770966757327074416117139543251865286894444918518850860536400364957246147881468489908420467838666778168434179618502943824043019770447482550182203311206768880587362750067852183976268202283677502380393157071820506447527559138108999966726890043701007154464439391372420320752060235475507962678496299511380447500267176092959315474468497571452715523630255566081516171977098860645587144627315305532522742396245155351401491946515924876186424748633225202864920164135902574250637908632326737689049262910395295488307422096834180895266577012649412518257815885000838358991254768364240109290238634816681661636888120783774957452220317295226740688010302881751715837816117246404246465437087735291363806552333411115834254481582328869274938220542331390512493205947302549713018060470394282392540686673507393638680521975221118470035188478113513667730479955525833784277872812882347727939396670008637979281272343565872008678082627720709885115960110379627846635712853589400896646618165422763207050419398582949709552591864296866985005166642135331125109407665555072743756132636569441814642409654402318123656798809865820284243673105764649334583844612649394674683732906822404654405163922271820238895828689333585379770467852358650854184206521870918634071083699106565953315474519373201677545946513351741851789648937089982204148844034513650093234340479425549802824407339115010537501988146311368747650280982264381624017996056650822125028758815194131538013446784193384804783048882456516416169775860083347212827255131131211850433743038500358498501282123141264420850931963511016899918098196500805202836550370192569346484728042753561980609428352189094865638936442057640603502951746766918114852562859710991200504699901497664346075506402948535438990441699290679380859975997232999277770203712769670228646362665606504767764140172636723812021137451570061520328766391339013244085859413908343362743671688200980929420661743622284031812073188700909478692519357586021441302429867892015000664650004537199395624165636746696990855698321038220969193445970952277022561477102014340874447385710164639341236179350488159203541781118059520718417778558219090028197596909793771742524563164778013042040432346400366979995965056134786167265164622361536232373118745863397025302640548685226603443456559869073473595628924970068298903520389985506341724147967904298609503331563365770174907213187183651055021995272642482890344185424102195868672742888106724823352018634707111937695590106650546974534160337007598464613217704278049002752762594486984733105537135410127297352607114844772693217135100308553724512433531058514813279063626192575748913698494917146310836943686204837754461764541173061802707246083275983695334206505369238850831966360363769673056328054363223230235667157707779277243507067216647043600613598715114363163684560459485788956799956403213661355562299870445879740588716919985117174050597162847056664036098252443815388567704154469509997047380964243796554172424467400182692385431704926113756257681538731044822405027261846340590186616783801258078271271818965697798798865628342871625532673025346113359898753914637403869445926594372392244206215964754416276210358807031763979872513774260168747831484843463356566185534877388632509221468368369308553534912314349313612175911849534023287975803701095616988932218057148611809034688259124152519169457628404186649602689542260151190997444846100693019621582335617549566448369441866187968434957698433307531046514286669580949553055879175592732927481065249440800925525954172519194279415784081024884980389242585351575506334481006871854940625424625117642173409429292641146578028701535968830771202126450214112095699507236096381247817662427993506001411041128351879055941611271455443625164689368702907012511460953234499435382192409317182881641291079305513358936359178087894171581551176092851953705074142423521720831524156727460279687824448733063245380659958019115294211038570579362664079793346786458620772036637044070231556703807201541706622104189104108802327760896732807549409576505855654474077219388907068173294998552076652644641782223382178428203240649329589307987014296643960245372944965654925121050020850271758461079353608449579207956439667181958769459552775467222702788215013455189228675490861398721314764337523508158359574018412608596189616188198959188531977027700975666765885949711231010163835211148604298421261429032009304172295026567172189756978767636921073120767251189544950485043542679717177419334328858496834908910776476864346268312978603409130651069809604339003784521331853918599258905899747209662614246863342662014263605885938836735641390575541257242054881677063754593444164573256745233942047992408214011919339628288919352989360613225739064473503417882974790916332481537481700037331187674928019596029805501441608070101981915412869413047072085270123011091474056630431522242736547550867099135469843348190912095747082691191926413712789688289045339383102092017496519069291504015268993711539323090672695180938791566952469046077653081833432090600984365366388808636507746905096469998877925086573166456861131841028323380530355460146991353561036908127342138917003712542450662951987985327175439603260732397491537759464343882251461568800009111557403155608975189516841084070866223725684045465864751190761221466656533049673748672726745556824173642830361475593505012167284755013414584983951037000687119723226093293258378876666391252245038991431495945657905657490199043139063441415915334861301339986281086571913771374802913239020909380744413291005019109248223168918175191734683521713560132762898171250126879303017501807571880976089510936163442143087203499196173479916105413137062375633682492172094688551761851307975190962204053905119142470294061109020930984108202840640440948556033310430880969393371223459895207922230233816847846744958033078190492341364206729543386095035556479801819938882261771345734406547198590629848328921721405474182637269192200491540146847372258172253880568832825517003837968249621487940316286869149916676902717472672453233736160951254910344862987050425756294191240843446430078089527751363465733496178798653594318354755344540699843434446423228363691437067967826154218695865952085977701450805830624533968858931218606769665719841702525489444283004692328682725510679345727189349047035877451294529989873624830371683245304706448854382247857454629183663863073725660189848427071421189933739313550172855721587637951198237357833106093208179611427224629871704069338667411202010315483658450132941092912411493199157974183013639165624065988284711400115327654230829167539643637895125160440243533431418578019590015221413870523961487201038857462484271173124147140371768587716730093555310422696145632852510530790003887894696213861778228056859401944277640269285898423428164977890420509371407043602574001460185390827539005421725319219885119322081320778415174216572606614196171215212373258481887376205274920214325031845866168485837485461706761422626928157683587162060461087987608013578754538539346686808782811901757514344590227525075409698809722543823307589702684270876928925728180853677199573329939034757221834378048040440596118778560584211273468909185794598566912214697379989936711117132243681857280712317695279770404878344596764235812509001337218164403349224347641681071677198603445600111567697384906912477459315504530102904514059735195515519345349338127421376587856998591583080588304480354762282744764780663834289752364001540660169307094395101501183817044823864334051096121109055388880249941751931490756878850521935290240377566534247027578717050811208215785715436218976511813394641570998738581634385157985162519884391752887398258213089597020541235838491741794207803646108296486316257778082195819330717851652017718348952077161405762252097502464441030238373063251156419700766053889112432852036613009494809205466649590332820732745648822009917792340202474860753847118701951550165681014925028177083690574779341541263306630505470912942091158323927568736762311401589193012601367632261780776567739316398634482974504511509196799051733003135878873443320273746698000919801056940100379998944481819236221819718822090278233760145186369967358851195068845308039301434150184009732792650480484858760696096276204805995204433067306943982616664268720353491927314034528406838695278924866602285769043310791734312366805303523698579800220520851843441466512326653678613756236348924572371049056884129582461419514042995446765388525940639381922742319451910979755678127212869275898923333996353958633355267716488496728854627918012631323607366985611751919376282736602325743123125760183122304702819731599194522029046387160442644270188709180355624586869669914620192977249783731390732030798256192606300860578203865442227731456928769654865167732297883487014862720345871949578882591149834236048712244137421223419489055100952686771899632880634555080446066322761729118184580760285852386456055757114886999925745557475289660847391531452830860020075403916881267374555596787468194569859010393975704533107786977939682808603760222584198643661951407005727571475016812632536099857765747938023750303453002759304492098884901257420958467718644624746905312494063108667623808477978154147357956066609926778690117418625717777521270991661850342938573773439101450564034740927003235690333162428807295794074010293445988460105767444754606481123671492877180117297917351023419957024972750300123899386126301732467613239499339784751085638725119800606965184957329523531021417960933410762457056351797643367874692650228121575677497009826925729768411908409181995170382614438934323205294817103628644019147323144141902233276593766863511583319270166324856165493531975124974957215787426627944085450305213907698183911998459757469880382538727397855204312826126085352335632159890531339848311447760960438850834447504230073060483484712495086952985893958770903770116506059608400053211119268602165179403277868805394987142237245421927509090114719337280050850627693805617796802670537904318622891771930595290097694743816657729525206454076697726774981426438418881269654889976119259307564416987801516238245047214558662123396573825337754589017124261132589659822467012782938057318720656093442061922874621629561386389918719888082652212616048931807770873146782972127660286496631166608855840729725128279137930575576743462905757522347890573064447544047939792087394825273702300444538161775627034955267556851253894456657739290743641999021399265183896245906322175813136661572273096131634135065029466102088306968180848874937414042613107863576609615889504612932798641913383381171066065007169712258441866746415006906376014697271850599282847351017537638127517687606306427070556441576470427579610396736138126383131727255036294049461396015473974101393260569122255031905565953818842554125353646177474076267165033313546341636659609182286673329854163272537913032051132663059220997202365971401623151858503465816199745541720945310804785036178315321331928548117299854255275447690062909431878727281013762783841720911107127046106292793388263361386987623690865512281058990514808653764351630120091028495954380638411974911699129089502307742393582603689205915533768497777660859791213571560878008612890352200079729453568612149730667601213617441253692204378106949908098166198232474221596740391121203483779764988486891217234269412160805547723171189296823710746664243600831299849370998482418163803520637615577901885799984126149734186100415348154212454958697172054423985216059770328055425065839940272198481304269286421998487108498747151920101812826379856162555486045354011829831300308919378566665909177246566635618837521175580345834071649757823699206908382741494978488622530899498069306819710378174616357067257097723527661488081578055950746468513583595652797596386712282648849269329586329568931953756558460517991245271809219340028725255441496205867183246518051731115167194473468442940075415153106397928818450777287163771744076481274361088709749099048338783975556282488362343194705208625742470268320625718608589359367758337972450573595089869477471418833720745392503103383277817271886718482682744518975715995118895677255755282521591167021745399887192940772276784699693587379098184738730254106843377571218361458841651209306755433183556458704490685092461756134008264275587355638468468400367168800187907895450439857945543050757908664714336645099604397693284315386267876673584005680958950324104453242751807340014190153712244145881508299818900707158524915080324774121246638977103299301035755563714787873792383242831581853190681449676351578316604950379874876220119251380474699781783657609397232521600147752458655252073720110897859775348699914036184051290024126983308584843414911883260068230859882587448002370922361316484664912632958751128827926584039684236055383904850853877890429447645446655098390438607612795109968630309189468883282386048179011129361327131620434043657772294296525168166903417080702490599084634125066478232111067063756428400248625707523390451760273496321427437684439215581215052166368446654677178619178064472002711648491647388437454806936030558886994450482212857128460418584440097952591022496851854603361799507715016592896869542340529550860809861016097820218667117369426873466420252626120743386136434922615025246903770718714704098028218140440775661857422114352542810954283727884821627305569106969473320884301326732203889956837154065709122992207509489485868830697864274967221098068749357942059546604921768385797247212889352840039274195566903707152235261260241932483501677872877822379731336481758421911896846268092170837496630712330427605699077397168453647110230829538524696862013405576045292211677797758286878320324409061451366746283959347198329819737728174819980654446921090879676005255942979717239201434479202703507153126971731021974290606674188508202276470412047036986218258503202337319665003528148211058046768090336305807444405942396012607217057708746957187872278572646018632281898570243937222443929079481133289304956852116087370826837769814330596456059358755981362721980102509206432671631895430044117484917377019686786238041426713916232104219328287509175779230990690817707372923512158502545177082960362567272332350916330341239009622623191784367260959967934790175491003963840220644584576166055041774933429341484900863739831910672599071455391737741996462752080212620144441970584819986706943520071888240185185710414548948999949351037433938285316806296141953615800914603638488111119468456273000515476767168563841636630390380162860017444921287747039283083029271280836845993095099870525236177113533492960405099892786033835110064807955733410387033530873799237661829562098171981913645159667594603872098917203708586239191599618137997227196569980558577287164785352508965516776287226775760109173901707985359161379380563570044644410275177833146818263079552041791701016007447219366638291816969640711156018750297895463400191222251073587974292631030373624790875982533914453384352313301039187755121020091447917917156216918221053817156466834536549053778889380994270396065656375297732693307928803795025520252608024455713528433524101897136932069609424112138385119022954562180671611832073991834875582846438396695817632907156473292113598163025613910373392983882410225023673850895400688311838479746306430744928556230333987614937627684854927425770665587039235307012686778376540667660045892904472421366696801256247511370780463091937841335397335313201308736893674379961047951294314430230898328382402964827456135311362988088786720484907247636957443811110477928673790821057893159651034663382236168733428018054087514057583689467582973861795243856878350001932945902241781469803009713471650145652139351550252428612654226344101342736973626686932829944910164104382143229887407957565879542468867119406329791853405749159433096158313447473258444420515985792517116224030204640808096787306217491634495194342158643861402632323675139475073165463812509298956034690804218213351311600175940869126862751901229884898184722720822868396490593831645550351644041127026329818024323609056674007504245729732359726321421769875884636946792314735743381019398616715946880317764326318946154106902650404026173382290211540956872458328605453183561911099810198523704797248782357926341996312646237376657062457574961627507664697278629999977797163673043535933710323285120477277932188478692094825612849323177274090506641225826716063426148519811000224765024625159433227609771140646824169536173047972999509285248721848133811300386086921148128528211212946534299350140883048392684710072584624961854628801145366962493635267047612981830753748740066985053922155478281238404822099891984734646380749958849781789893470937256998387569303315749055616014757959653313043919919009073344113791681049199307201315459409511531255975589327216355977113839505397882529755170695409521201275765261872858153624083425793496676783212939323466664435967826846756560355854530375647740778630910615253820479683277303792402400757320489357772589867045555627074091924997611292621531380144459472349334068698496653212628755119728434061157023788571105339925752087533067635795924797956213943071923354498334648534321782142769138415922632506777525319385855852925756148216475290776508536965811536724053862474262542466123243713510645592016225195601694663867480422958912466230232300307828264805347429202427670607225990092016245020355584133868040898993260859524462815595001888606546969485563472517051136477261956508561663085832497852950413094017373577310865671827016898215093978034896137279262743675926061392015447794610910249237531519955090162798315571185554798619728383271612526918787775328247493352889302101131268135770791201744581928356291773332332526296203385955119648194164153261301505486910747070486542491282077442613006891746692481352164514578665173573135413068061629932985477654737843237604033554972820873923267882078141662891783144826863291842970503562417914261207610546468692082159204630235467546160833321953751508046251022683366431966406635671497277337394074246576590385115272362544277408565157109251545842132863256543800528393139962240951138908158294137370686198317429078262713492152614484015610424322365416601498588243286309181181293866229661052467848900112999303541128600491385638517134132523848271171369966344336660934586375365479603314935857738412421915765523524562586570665403551722610089983210638712611414670129841833254015579971541226481135576116192171319126500960541736257803996805532115099967895769564910551783677834447562722716062284566494626300537537228990973279906798668168774668431847615871288617981281958331079451885038775987949073293663965852309499505305419832844762352134018584736596636893135340342680302202458555872329350724305739441439973594466872244632918296384531183082127604094626394474719157001826444113740264683873800544792632992089628040268538562906386932799809599208457114751418601730447933120864135116439916638764423728055387787375374494392132809287515267330173666709545531418034027459089094267556976129618059669479725541806337225886860095036977261221963871277334125829211843671794099703192927198535871933013673032570320572896998324110926467924104500747380166252878405633458362831056059097422808012733446148537941398804294731419596794732124806396496154412121434546268600180996500669553759603694135753984795675249057525508089649301446664526951085124444184484237473283292357038213163346278019090339011191289939383639505374533754008312077049284455126178004796822992411638856264065843416780970650028952728091580675789762496231532092026219970488218634113283556022675441004241620432928301952310561286247525474193462142950993710368210996048947024407600606455889341818228817213198364285399480189195170320384926454759735180908736874832015923933785228635868374335416080568128098743542658377114972625060653927889287614182542434427988565562006374255069248911894768662350058004126925948875764093701890243492287628158254192406430675040931179713562078349033208339536240170798299231264696987194301349320854695048196909572135167659633326273447348527094808959518892693620767741948983915117067645225504293615042614623826345131241502865169477506718017198800852824687507743177261411974650068976226190689722044189606501995395136100384039178224223633057860648999064319011938916975273969090739825595609130462051359508025893494241864787628918173980534120368333837045778614480311106506810967526445789017219873557943410273688606292188939214904691328848909016662076580777056650735696776372646163341387660843617729329961576473365524204736687428943766461370222027883842076154639122145090231991785906440659562326975356565750612480790990034231085995571115426158019375365286707524346556105029680688049828503220697519555027163405796503628523568962720622953433483342031490291100728396584866390866258437321324730266581549919603859821160218530517749023744987816793902144321776248379672716188888928898174976019758944953356194093009462391976719891399848226542961873139027980015736321551900617098787971241196007088156962320861084329965210973827084215287390997281724727672494281676418120723810182501272768509200615194796449894837184725048934382332241833775693583118440123778272836528661050749687636017084070986712566834003375046863309189037132120897107332133642193047730778740652522168695781336837243901868851255510167263945268564235507472306069771102335022084933132598477253063817801353621872953677792551233134115418682484756050925631510004722224318582260776166644916373419253359404660844729619410960502710536221282820221207435819133410023592952145868586778110436764327132569380981824709776755051272508337710159365582828618537966546116509329538507603759397577273405548202376232506858182362275493066520579472958757324251522314567836561796296151171805471060210162190012345242855975470190155868816845922788188857699801132369249495400293815384679775146966786223113203452157713706645349242226178384927480547864451462457519691696856893137426733039264368788897320784063130099358893953732428240595377463110761000597146639481890292577480625223381327164041250736008720959953728252785837138658780033245893773118150377549895454479503655617049528861076480349689457711761049708536460691568268598526123077697045211246914508132410279839021708378939036727428098273336960963346209013814429729285957539012066228541114601810973006366104205980878849626303015738088765728946770422960968562943998090850550258750457525609218302727165170887528786484996635465933431404302574864526571210085577027706892340513449420305562142009597175118460615173222043996379822558426509353529559550134064843120333901466460003055054194435455147717929496373162316101172827064132227074363239190100724707345061614345652390219890171918270624895641763617087007865528394472176122683998763485890033782834852323344519294290839882601294373992609558463401209771174322673245961938767700153525358819222540510596311150879374752449560431349354960862786042180753644143149395456273263110729329283832493113848101918554731138011114614723265276443303048699132232284670397399902058126876581124472613347669861246548429909340518851935440020956950307134153278413313937337077872650827955524972146561028302808818938347591005371051534398888241704651070809071400347535623803654972908514422851354504694947214442435434679927873721914021399273578610891610726887850210399449878852017034035328268449495211417024228532996134297937432919023807866574454279399918298323078612227262075298065798222521999029188074560720904512131413025376571906565355044342381920452658382576708829859659607789106616585827710005386343823104306884679574035328976225482456300877219191983495255151148103834556795903706037702095976186767821001970903746683887919965443108740734448144242819159222139299443397810193321151596649856119776435970740911115023588033827813748330692847320252416266798521348924776268463352755029342944388967282176283566299715403898300176867704415295620676898896965987410139975360238998217248869635133464091155780787077069047750760898096712388658729227018469536517221922672977867110986595103210799511226276075956418522144661116570000648206721657341209035582992208936820035958339957142160113319433840028753137762424584343263347175910976437647540200940432965084234410431192029479545935348888746994810076447230625107243463206442507071980125802267291825522627894472047257366752571233403293112442288991437642620263467314192605795799887704268376181908830772889047312307880861241917114031462027933788462021797747409868182056777068028458598198030668227917362756829704741415184729508890755055711287937415165154142333126348876681408362789245602616003112938830479681875119984318792872793545060553552979066732203901202588167180097539791212993217149655319498757637375147292467082607989517920467192897907042398732558517891117222323640999477301798196186333340189847014072969671830355954620769792740186331169347049430503535133683492471847829443865166689955095339391467742722413067996298752002951479749034603008232553216608540819827232721696240209261887951070586307752995016544550859456950931439669970881030246145358288886880960651572300855592305757743923196685926505867653695085849550500033618533990739598279542678447919388945547734799831777966732003447961833282700821640702816251717664082590848666649719146945461179381586353893409692980024302830442936827898119236388967998006439592829570653362883553049424955368006871048000681104710613686314456950772682220604950486144607094001952422042574677384725133228121927866916596145442564579334353324737354933103958607655312278948880237210260737444371898123219555583837771222425475514259741144387808051674960644912772462223864313364754326465620053496217521776242794857842669935553603374851004224205519064482153769610355445948962458327223796223916082105726549539137576844375673839630544237241632170542252928627578657958746731581856615748631911897495649794831130000406772302831501507411583875473276141226537799908248093783047676256106754487596412907298453806080102763331076715710490669884022822511942990523066188653712152163054447223922782873725834053909575834886902408044768876289586587537420171059487609701076954398646275628375596175856540603167379923937306554871607272397827499872553349056797391883555037431117252581522103582151415131802889914837845556272208496493263592485490967294951726163751086358562854212971162261120550500110835548259601893658212094996155191194259679761898599797980248224446092219165687915993387336100643385369611538330248271311188173496263120108395265448870784789165145851278553051618867742034115320589512762826914842439804683204589425788803553217970251024656644164404480366332357985017615971022118711475489542766731650919781081270898029461977651116885307588768095766033751623502358977520718317086190027827693850171189629111794757037583450517861053107045207357405736534209778618652496073776513712584932914552976367132561061395602241554966802315949543843742889904157776475013591651964372889797399557438932314510775761059771557733112141073375412591401761006409842947245858442576141194635045337747539634639304135055230132421115073536677228325993419913036453041525051998689795170358821285241348327423621816569712195520210785558273822457908366768483840920720511302684587784721081301380837530351234227893230665215291439132743163010695879247731250120683533009502578397748125177365114507051627434207293891933282575409527627465556764021451981730917206159720178368610222504528223703249580417774195467889443320560477037856816518140979016711587453932691713088336246616437984029610921014277857082352293302219400177854658301042299213039649981029645585112449462188842886514628339794630101722038734610088786819559472307458315137789838623120188872589481519299377158824795697335478786244794805923592451952519109168710439608070790335168639373600403913200123741691704600382343844417388393764117185626273473252934181869868064239986212247685819154003703668496382165813688507754360728920971698421125791290582499298050687704145204101329561914876194462343525169300590900148441356177658687366347779945559964752941776466560573107263138378664822076867241392460168813163539173072718906278022881214582035167650060759758302908879755236710852872395577396980767779280621419238230466753554441941826676817680186776647357103500026712270677498715877497553131022376361902478320980459076241213827132906522738508775664151093916907944370975699458912551537359360342042833549817465390944792691453644081219455154524584518866590349144966388247058812409768979639350923310864588245497324636769325838241311806829297043796397020196888689978146871236198352055297944427215884888706464836572120423860073928969250601536796758137928607543824281983123309691367375802123911154256898357182851214757590090434092776092499701590153265109077025792210042133209466842977819032093936341684560376589995942943112132925184724950985436210312691632520481772581032504904989541687105355144663868067152035027217768260209212478224409213546092140521971539501430850258023430472025803325959334346003641859519290608799650187235817190377100559628954382504125531832343951315307024203864512600172413850225258441696798397642353140323348915655958693441722848736851856053288204359777223494689655131083850963738364621637367655129855005876190986844507201650471057777347877860710580766213824009668256551318683250628612726379304769709178329494641980362748790951026650319029497780240199819653684435434732245848694797892303259322205211817305953929063762649567988792202311237318534547670823331104341847839655864302783309367186295566471191577305952334142473141824686283436412655631165942685339128636841149472694436557336139735875353745871852427451478790163245062979226144844832370022946588768689041193122798832181064450244380129674184232349656386767015154075340751387743208082515986490410024156865670783720185816246475002807589532033546063921401441155373794155521458526258743616006802212952665953042364742389189134923798030403060731575383638820632773606842316250243692647322603599027982996635091610422302221290377865619048658365562658157360298408423098047691769020643971703899668072402938717414638503781094225519788019338908601390709295491974743001892357107509896866217101780229923549586073039670535217442900958727562582520720402364260134917370918562722321888741851910784285206174195400906893168881574079964033423440325829419445108313045163312439135984915933918416266515303029720602374701275377727162236644166941800100753053085861151498766480814095391044869820885198102931913797810327364675312707586378106434612223612918898273158234318923154772224298091288333304702105225642897725103133929095337097073185527380818660508749986864918392935771838849897464315381220311370866152655680849971272103609403076758876925149435130963651238180062657442500029783213296752964974007529645428566059605758791122816855752567460150458728623747973116346119083886266983343296338893909577965082696330786393830557466259334379415926840018651087941191101031526516285030109813111173980447669260652060254506480160762140747147906611469780695793675520732101749400618209436801082255361783353765215491620287963292832735455601097757311326189031338133501207974257229496158661023705643491204662316531497754289026237007185198924434307291851935752215454451146886066469557802146431312850306081983164386562144912964249044511005989169548859546840632607935756739331437836214925258468019974659853372708038309484795730401611858944263601086876303622185120997173686320901614588803816077124881093226470394041478356368665638295255275020189724458950557821742819515637743812401953087954750594567523179692201036129320319565065078636044436696894997928370939177290853889361948448115879264238862579009493982998548658253656227576250572923669576927584398498276261168507216739288547875151570251289700386540566766894930620044359615148309316065558295148464375858095399206777784065567982074083837072355954426685761638998528817514790157988861293481545137393777379361519585156838631218116938750219262066250918925032762593174755827784350930003154794792483448531878816523064098097355760974688706454871021615785548151240994377945251094321051716067817465129234492654093734739693725900113929561732187286215759680965908359218202142024356583842703488412843486968466766368686087702263744528131120790290468225776518187043075321037319583011433824332174611873461226983946890438670954878712852249811434634493439289287047929587749496390758452558507990817043319812340639137263006607405612137759334317903626165000729681645905688416503799022315310139950063519046461870433773831828684487564002116965730994865751869313615609308735896861257757812201276681457736627499078798868775506328188479063970872173006787803065393024888782706476167079419677353386226982036501971982801264927253494261979823082924163216221895475685419643878993255751363746905937987943923045153886946079029982760101349135031838561736688749675837038779348728128088070777514415098963411011069244702209120851023261491692592457923777353273169336511220179162753472727887161749539481889027691166305788527699337702314666784203372301238189956280628461207679146785513593695598516440450899368357597886058619907838164519357600024026152739325238393340960306631810952968657186580817194300353333704940742745051979981889392469572785307936693663274215881047921500836397071243997459558888371907422803638249782306455976753702658956910336903731668503856290834055367764801150728617211580805737827888818685583310902491606784362530562288589544147762532466125428482004921533894619123954466752616328208423825661984339424242433302810754566536845469119073603713544459579841628483704047084065143307715348470678534981045796581650794536480158636031340519920831191979097601417944134509738004856980107873461438825739730092267523436198535720350921749291177687779125551298838901714079923042525386132750790237241243288000349865716408646721173898005001690951021736967491235312224480737332025066766921764195505246181332431559236771778398929173211787270193502100307147430783479186970310845380886064266446073001869325840293243112777790000506934320332351146650178029450244182209312970901374344322511732493990977138754376004926583941095847740501345579061871499254894937444250855949559029690417069848250583187737981865544493110507416693786087175678042871264329033413959811017688144580876113166379213393368347745446172884400220031995176826256603581109484634247915621239505591179273718598315483183126324658782053603696311179463484034277061707660687187723778233890110438725131453525480194326002960885830871841476376633052482487700086636678451092973522965231907426812879884423896723015019315754325892966384083532528262032989293700747632070497219691463957111935399485855932302434297287424718079037029921978253248996595477104338168432184987373162155151127468367506957470575901759950447340083197932262619712162181172025637157086452075268137168452185087172884846048474652765972238740706777075392352357041066611033738448058177932033720073156872487104967318282662255791110330086868313742647823167798917748012174866187390216098326605433987099677217635082507043477896325747059473021085033339885944535621557024798146252338358582881104978148799795388078519264182318687112579344617304527853831208000571738628500194350060311793745155225736672097365959168988172581427054996046517130914164306221401733506432788790969167296683299300723281980530825666904789606813591633113475485725497445644109090476060764170567075710208087503172786398617831179818733769452631125125371383510044636771748230969697146058710926245934333751628801204905311864528053247220303701592051638717186490812232473726809027714353243715455806786211745361803594771569515829572687078210111292589577378770064317921255662303643484852207294750272531102030061031866555733893657757644006356981073953902483483079603815946777533464228510237600641179607192645520988924307587415763163185488578440361409698020322954713584766063014569525481363281038235988981706764486993976589991095012948327245317989413482648961560799520997413898597491854764351176091676059386629871510317926182718713565350853862687983129127652933988408952618555882059539226560179117072021388391673723237096700615656390971345740211963305007690013983678248510276144815422158730933380124410230719689097180231085546692953296595845826308890157008464082091184145454311038423036430240011354739518772947584085894454062928533708224315864696858686668802912801190243271892200195460310454201488715092302766735592527153160437952089263321951404307443400792866724584863354860366195328736057093521345488097159968732729070477506159208886615299721083958032779406994460465712514658273945976506772713062425381057235270406508331794615648143325184170663155585937105474954228127267380918565813761333453209699592094257714678675052165686545525939223007516497487587814174133937662156246067588636223163598727406144917020997118976808976241638579786027613251753136046580563472194713285199620151827383506735874454392113404200476376867248887428920966171639143891075046890772068089452323032991597854879384619901779872193607369837706797936281946344864204599695377285652112685307151910378048473441341150861218114560531333395458211067567938654443527607556728960414967185638998639665455696441911034823581298542214899414623906537600068030516203762923010939913172419568749696739262990360443667518303087337848031110571406415116717739599013688211095663891135241559964292476116161049690021579032309224022740678089745561799072409236879163100752674778987077483985952291963231132622098127550497161490715754262890766357082684620200054366883677070018917342113870765964828550962178773577559813054365671882430499876952789900114724528418929811151568505198491015891375342911464096494428519930699172469414972807681448694956763920614715236306507429969977837407388248012843863089347574209408343585874065992634548916784044276786291490319191413172660863933526326498021734444759067216822850346340953861994908653140709196562823269562359603591343932402799437975601711466574633276984118713450466487319702751321830845584986194918991270108323487957374269957849023614103812899746459366357794332303269426001066336674559556038602154055603635820795407610066253996834540516222220537751652020522605169189888342329732845011268355073998218523145123150236705217168632553512779383386620874106945947462261377567554247943433994350096085646513940182521226807934406608080430850681734007113777456378590589092421170235192465058916828169602580668241024975338793563020474455590210117896325305655970480830591951912978101920635444959064231351490844520983015282169751157927824855881107059559764419799900968513221469036112285562252838323500818571416715054492602120422126211014183895334143114551973348801375819642607387806772578312733073205450785266395672371263244627262537364727326337035415745167971913485746049018722631389729271485735951302610446150308467445589151770313328376332423708219775391500352758489900094228026570565804027916735570449601782830798370595684675103805975200749398453718129628566129859731584368696879007979460768355977761252727264408724185439483848309633190693684273556348708078806032096301398889546171243808381018934483404764644377678807574727397243868111445330649856511326308071088375070206131876656039689279354060631922020753382273969636434439528528196488900814411157178974558126359207781709454306484672168781315489767457709697970383377212074646610239813345195694648669964794373649141070061073980121503380476203965046172909626702817713371536504900507765920468575744900820830180120453198092879571494427460767108731815608609943653883518831993692293784858072443385241386159076075689488084881252016695355201156579530743529730443387575935433277611465939886171367904660253907670819785298860754009274551882551053506585369862747300514536244159342590261383163720116150338794997935611012912712444560065853073450396179780252076652393037341631404525225029215694253893789000146134211201264042862213746869717521153138157693637264198440726862917505511110120384894616554228503826023464909749320708974262221422377159279033776550373252375984845498306746377154265478973210215229568188388894617636602350826249292332740916956478855139533864394273349899868248339130821568801269820498930833987698827547645757219136877570010034786348921088607152699240999270312133826486809939967282981330306826525256382701118334416330869180216704294572678578236036293412035043875016497102247318163592237759412862732521857128168515080395690401163300517615695139876737421553685116533070377174103333008038305952513608680176392504365937567217969772414309384899271568505902586542575853013026355912823659142008095769065807391132986314762276967513158078543730634897567790809689345649948506791626998997233611783095875297444623941080086560477051748233997391434449310861152744204387475870690902207285101666190682227620481758582243016034007676137664446028077837439981948557933029374614430190171674599563393757696988883556192656314674332055307123535698052597725739208369666215609183771847228032988187622656810142954935536456017622709165775530460910053118852241689870771564513880887246580674281114795498395371835354853078101697881673134646584732665577184887891689798058466549883016273181965282569866805905229090328671348159672320794233567964425882848925211008698313872754107652746409281177147620847690341892214644755674478632610262404221717092787588458857273563227147233320494771956612475062514234292682022244673674191836282999985443134378266253433988333693896637557323213124479919799728235024962073281915493058319092506533602783411449307570501880429770209947261276746564144845544415412596013025190573930745228633108681502519168699622997880399104647488676892474394187961116087979686864245273679661719963936656273506084155581730209706491351677082577417166212299006150178361718078556578527397684296032192271968283456660578483821182389014860971759850003492810923853569051220009961592974329595829307322145614181825452039056139106908868040310370485083593856319888104491271054710945507326050286176957049265115001486697659679537856065163780682864510692097223709629493801634673948248806054365931231678469727321784538185816463955293538681971317071972021356110475981852412114332309296838542916047503988688592938034312981096570232398861331211911560269624344747469623288575501569380885257521013626592526698134649243892886300700471982910184681340866259571037834712212660483348289466246795096293519801044971820942960370963866932669387716984935130369262445763057822045455285942772342853132602306945995020625050229229309440162990591587367805394423598799115293605978904117210485518009533004696918110497603111620707906724565996864069901545219263908755354745848666766376072799503426833635814561446654710120993540566696913635351393326961805324204187254869408666357843789754378067285554485253362619774714734005079290063731119215735749110952647117919234996851148974056059050847084961834600315853594027454053908644844239899476781018134614943069661707482188778924207099683586046378220818453583027547831027206772261888906231524016648398243209595740675797629115872075373093249393377206424219921965466808061403298935231841557625834858783220713448447066376077061783960574615284442210354300111905163478942397937883550326710549830703533854657688436150280122786010880003102400516503680342180798880121088728505191282445339386781555129890750780021711597899743223455766789650283111332728668742895836984834250089476919232303271192839511342832927594738282670025386762105458709813625107280206811311479589640174593816963610577850705535491590894187601772108801898813632480974709815581161326331883285249443473503885746704386821750008918649706582743827240652678559074056480402234508323411557245949514793094971241676381479410538349109855424071184763398111351169937276591715859439585870294110393466856439112234716464270593016271256426428737469644861319461580773043838344993692564487579798819166671484872769125526840345818593205618163548744733491899545921546364855814793810266094647093717332548596599820903196391261967608848292584404371732124400103383677509498845439127964702753025895401973981534916772309053267995851902711588872144806988451148213952951569079847746992281600070767447731750710200944909996045067284283028303739720418708430447055879778937769927549089320506731419110223718699565328803188022643166808570327160256335577643505551253562634709399634857593779769453140843268802716043573586498835884341119416995401092614049115769007057635340452964602781270470648372330491325257769870927577517283232255625561859405176657800185433071802975563718810676231942167192191573908361622598068627484823295934657118613734994004264852023586834396077419451688474473854698175175848218851716199159728016396247916343389101386536107321978586594745479833890030167730369286355336887139434595739430076979824882913523897660825587978088763903075110974251013602444290993428367468688587854398278586569796333358977469799735233378245362050322746353040961358886704040331868176581687523724480228039180490248608434496642846492005310436371093509235750402889134414852939496587165572587300135698123955225995309398506569527429571326723173169456448284105566895994637062189795050788767734690671288904375462384431734858540624608026983503028835750894288328098007678680698439877951660774611594516260403363245043638870692256630662772960997700519266730050549393100477500450344006284652298251996638227916162911389447324424704970734058656543494970671576065525787116390338292016218742335139376044729615217052903852890750960050332479921442968301769320377497364714819464439550376571400621360692232684393009362967314263810038122976922965926028190801700101025022962832974819405945176182030255240263100805832367922437109046743848761739978773871810061674499803437353958182637787653141165130852486171311088607321439158407622292810814974989206472341307830607509912521442278075759148818571935838120726228741878721373856861534962640056482014192587827403473120640045205379951738809235681910331518972053434736801513617479735697045919687181742973193885852108086815087115608877360097797931151788095698023800283706617820708310792915055828108742424300502606637434377419025936911685799762939750540138231944696506285262263887045031194876508778253177689280752830834497041172339569717664557237746051216778725699017564781663708047004351177223993116161781466808240047249377927392522362529172540088603015096209073137343328055176017028773184033865531002992128977977706518371742633814262629764578701737073732507083757648935941931836114815122287289131131065184754640001841762414564635846314690283306219493995271346512707229928266226854521092057319302222336988663323706700080633077917195621983120820835916160228390108652188203547307687740814337635812751176109563771809285555727328071899838695095899806541245283707014602363907031975921250912900694234370553243506631068460632569768561199000295843666911575411891185449677293907762046328546605923949668384201918161656575139634847690329726271573312530997148980451989798481443152149279283661703244055252950774259962970776964862461861197816196511997464347164270809302136220994240291109097211081146469713908825343244683092300435461568249275703725884868098107798504473156855719129825877331144896347363535652365091365931667827013455316039466694751115723014434831777169324543622426300406357062687100499644662275507616179965895366836028505534027504727453253221755083438548798972836664117487747813166329499870722598038717649743353390530143935186337047082189735751507283316129294589446054123854962614475459518147887977317466923991014969478789868935671495553518487745301581968025968622486358632429610914733497392689764523776214871844325107503514682203731208902322426005686148834313642073844878848300447466150714100829392651829860034652456005618085737899757148533698314485965604912749306953932352478903790193214613164243089462460562077364328723322573683807699560203884660972616345975677380225010710611852761458583609678639625512823689490712085461609789375351249798762743386663902886742305765903488280960010731884659788413666474725117028625816136574541065911090826935907933916513221156666659692392990394204343547644002666545443586258967536048426785135025026759722901576231373746608091790125461135960035338088961593025241274510869901221566022791338168767092931812872121576479632007721794941862930473038120250762650125069933405336007493199243683476566439626561278746961767849696818176407680777434849215922431684248806370695939658458576899894831654551468914716582175954310339456826645412920379143942809197450368854440494766215481211128143276075571132316848132893011849001782930458272033348607180265882495487609106982816463959665335832324077374294461339931973797171837073150659093713356221306811140807088828339107075707514410335002167035695852028271264712096408658015764618449889980260547439296224168487907297240289687794759964339780598934285513137972560904156027416923014289643512065613552284298074182368106807701797091627009556177187579097331749838309195101893929963502077894080046629404098010897245097653164714357708766716768043435221695882487762490891752435931512413359560386334756247412377190573765858294041707752046813041351048776201379972655762044626884285973478199501211225513696579674576601057861311431614887609959929330136340771499342697633967224877224995446805986325502622840854411311649306401391682021151074947330145178841650328011333059884819720756244765893484802499845615315212557560054144735061054400395546805304802538612352810122600339460099820475826988030053657299312443038866265780030497626183594323950997701585147666366358642596059773218677440957481218232601804230832303725745873807617924014214721517917263022676982168516586041666538799492748354476267865979525980274398195081321263106195115068485323288937374936720746227683996821569535431173559992117805857822552341012518679288551648705440824088223866309500510850336801255102926365204263111301224037278153617304249874476487497208195783737144580310730420334216297911777237917081755605905941689877173812074858276996227438824927576531726530069076053066620021683713107077422703181690256767594366509391610493246131051783395932612680694157083608324508460293194880372177242928701267600129924457280803967938064495616889676408668210084598376006481341356793436452563255838359463359004894172433800706559409460376400162003685180793411821914847837093981181579571877938939994200660694178894773497612755581044029197397349673689731952104386394876903105105987205735312657838859684501106332260773032007905183849296763886448338021640695599677744610226509157620840574115799527138266947732099651043207359862471212231328755309076924649109614153035018267825533026450381289222335819553474618341007847682066739056783964669273921756492182734307314768784088235250512624176268759818853011472611680861057831482306921058511921464165685168024937910724850826276870740970620170284477298339588979009681637107279118316863685868340661951707054047019401599165014065995267817022616851151370894044739000267199073636721080367218472917774447837998009865008636107942993044704302883009148386122613534450112417095543257554946245737280471122115268453418942144789953488717982297256299094064969174102020238879810410214581747085446847153137684992543473022337700712578493816658222346781725848711614227659706020969914084877236896621321282248428081743368981784571994269529135307568723423072659117656201638175700959692636333986751237029797764824966460095925099139992497890313276665644411590514669561596152237639442593882668899690382112294447852741852445870729035861462270545680627268039484792492525381831760094632558237469356438871362437945688971357265868974241535592000071994263696718295858207720468622092219878614245791191086778370447614750614514611292920083220350687205336711379372645596515890659392933048771608921635574461307867970096628910793945821666174815768234163433893459957449308514673285194932930965046663577364872198750736310643689328481033117956830604819049923185257613750860639850179163922878331694883303425743632252037502509342556000433386401705480922144478822198727042447730686995650004244401537171082209157739305953024338773876710989277865573954076060287425122127262847344324870196694174611919465469741056678046146758011002984240375578168815643848329519530309826583613037484593028877069206221755771228885133894024928586386953257779635584713993511651199800663183661395660988914094308186553490741016731353641718442886022458672463429500116424213162084037419861338397559671758919720274767036931089652731537853813714260491966795332012720900470825438489985842649014553330647905392384049701520324262648147818085261524332140441572486894457734921159785292999026141678405329406774649651350139728123962283669500127749753266362738503664301735606585846748768310824232732180083281065480722380395835040068135049699356681010638018223911909345130195033298736202574531606478466704010970284660382646242984973033335109883620979850051215652891253705392662547860666087565682590709148510642534817076354051633851466904651490803332903088930401281120828137671928886836572991352468426021863626723102381031908932861536331145353391758013926164110286971879290117412210400209236326516801423043913289795217790783870554999728962054106709680899023208451125208298648536955987166021758967557977484113663026956005996860457186971108689984032519041707061900506068237425063658881392732348464471047261846561581625190900865815436101373219399102278918111048058033837626453717818767078351658804327815936970455742144413561756219845591529407854584407978428342762285188074261473213101160552682218658831348803010471559150553090603525123964415390864573807523263201446506968188434015154046242241849921156505558387028179420197869507402516719225765688006923767239531976926373838166306014374797420343150345533010790679135080251672808413392253034037932868913501249812832038278838296751143692206634570537112392925646189282162358910796157719567827268827550998778120254716861632705210255525820240796900250810098021481166537738434560283438172548086463014955410731940674321069796272673397587847064777577232856030448199073996216911718144247700662281582090922470843220330596088169973057132593155142891851481798307754208121480714285064590756951939141166397037490355925635292814971968036651657957190775203401503995304698097406420995900739792859932371369218791187699115312464079704040215246530552581816180363146681544713763882431137584823912781029876832776483292947626785325024139229140560157143102129814503883868918193932719700774670865762551764554591028389068362086432836432302703608256517301226959205916569874568610124935973457035153653319588028972150780049961059392118828631648390419542168563716253970963413099454014079649295448824970438280239595246843338047752980129221025497302377390420843328043614967667849500876710135588853430324542087948736395024173261964942725402787407948318861614906264359958712095740753782887284147631034135960511408865942862211570723234073377812313959557517592203813602792607944413787847142501654706203593598438285394811620626863828468184807813452747057098039431509285880019407842725198053542116735091961102740815482414348915622670270294178580214003835982811557883792706749841818364182303403113047551635418959242452260804845688788256474334583420471976507687931666784106716161194068018774390259408673232541082178077881713771789397142849949903642088492907756413501239721830629219780843598491191030523580639650387954051343938736364033102876978566768852023019239099122220498773488341605612976701686967470966595716895166642977145054107769778979410552307421709567785223466196763416210151260152773767869943029660727187600143995632203813788168618006876612247622886520967162277459718284431902839919487748095991307275388848419431510080541292009806261664497223688451933641275179516410794557874560427164945529928165848514592336409689355404680220775068975802992246303691086841948599131133698847333002062693950421391033249844954132640264475867100394097502651186365940974267276948246650756986036076629931114175743399776921792552518711738221789275267722008513651119248519123458458438763570628339897860205247559906011992138743532011888796732019134061472149052477945847533418790326426855181046134889216848689879062807287510758725357373013980933318376915053862983411269483203869543515318738407586261054528779785140283070109346823048612952669454189035632485423473002031253740513722813793046819526771823784089530384264099883379221979048663001765091676674199649478960873974003410387113378256213460939321266815820363192163371989429478091345208689558165718068582439846745648181668522621113889208058402220000745417652525968029725922518819176278716339194196591172674782186247673153862014784315964937186297034539262754901342427101169221769603371018091001032246109891042925015325704269941895057781568848939154432701396516046915284653088472629521410788532867825395080173788559690482072212958262274764837994640307812984815056625773329248955208667624475130692727901031630320202782706313962382847518106304285184008831753148168086188842215481983742622432027726686869217737283080385451805185120014687504614681177353003466776019641199584969553889081790967113476695400737843141515807053799567761910305122893877910222289005167598184528147736273891279220620589610827070297558024284563886628931333762619191678316646740591040637957133662827055372078757246756997572557871873397919976828981354888218277973457008488103781342019724786621913819302397146644918742003453034399077812836925550054817191802336165424655848939904866227950536175389487331187691802329629262224378492996651429759460575011388768947508053217317760749679075125484675506373435548260561284686836423001980804737586606506714839073524891657437896710311638642620331661029096281156265912016698639826623668444462504950584485852890873672643603981639722861782965552463936624879301498950097207007585294140263452561102542256006557266838799539368186818425602724111969528927568526411344083008441292060076808737002038502319366396167626790547685419141977454634378179849267838708275238855764206624243172584687586154032498984947656034130592435828431189907136648433606577308932362812631236823813906556811757458291320175266953830307015036917597443430446815764421121888447071040968990815629497036982034558820963145821121858472567180337422688054143121484977750213306005609862819913412149088305942508617823676634887927360039868961699226735053277071210841518579929121881416053376140936983659461014539700239797937777686625800893886162829864335994294313265824000232829028777400580047064095173844986606720877837828148677102647403284856971790008156147665889611017644351989152969346295167197932781564179795640126203421413541011789886977754469893654225662473829707431942488177825526018802857482777822436872353764238015416473201100803964964367655231438899743552823291573941357578819688329752976332309427610946337389286952017136304936333945770242725631577070166584494870177373559890856064352115639968898905745499824179311743072383247029765084546622180646923221440987696761145014904639482781820747297136311366714523215440858932055941218358558230386092406354381415477434870436405235298657431451375335212888478077336933572414055325575935169147881087512462447378947035008429444887860061209506741656648172686804671640749666106225669472511988347148533649147522725059255419467694019634110418920060100312298398464410133122306816856421815022123840359267473464141213325354806422492678241633933795457678012748551152745975797330095091628839581477713994803299507951625306608442831823723565875934994008186027097008739150511531155436393696505079804621816910473297547235122322455421837230435470988513185275981296222483932402668483024403967999046471887884454238711679945282837942738505361229377121447531166378261322117570257161045044143230586404599465313844748014343012676344320903827333688145636490346645205515857133232212725823649981109667668779478496931014283525233850303707446890302023226063302816970002985504615978587451953360584867852084228004956245158449049604378929858701643996917271666417000010552836585037489386557009969990927766490061831076710745383595533072028700717004245067932351394576045110298367798216424905710876969071851851710382414421657858788019709147625349288310065467790282471324821800761829221436884814794921538059192091578514721402263664943839631245933126801348297849013071302250928746903407985017694784535986318324712378030974238693944252934602770394321857733922628358571783441395744198081226278902157487498044260390940773600298591269992104794361905465826565794449226207237902533362093269958596899093919508569851317541184706588035966501863636767227064513130113523721673119061018029299678039448909110298814657015332055437141724948199308840431621896022338199732919276935863289300670645558931868286060406167272567109939281090540966677195898885030132501069012238850275822374468043721917208023285005477122190379226334840823879918080658037681728419225494277687919105714932169702223441686531466995936611952563853923388461143657432259993205954868030281795657248733858744325675559642301767169035282864725794290857945624098016167180952213811228280091871408909664579240573011917208142879513169561929436308722200057366373030748621454952469270175587455281155522336890589517103169217247451933878298084310223498984263853233811426028515889723057542301938886271835386206094578491046749617222903278456527252062021618277954933856522191794408869781464696086927796901506600905497077930312268249711929672343216188898165577523408509930621708445705601484715986045862680255579059747831957748205578833123537497657120357724514303933068769449484965867485891300587570173535633093231126901848858752901790208827359639202336109245345144941435176738744083978047050280700573788669227920402823698036675097917450391308316501483242448476398189656063945977550545135393424473837458492587991139227714890014234101913973572384315968797116417978683360688685664501429400134406469322902482701383976379549486511310209798540837672410344950034771532970647701614163203987070124071230394117090735291331371895997551458187092658435787290081767956252938241365401415144523467911464364226162289734632633423497943664551261144041733657953053932346162243873233696172922601658399111521235996253979276639495192995745405170706275012796599609220182903772839489904686154753121518115647354514282890155373925343545371921158849745545649901048631390688434302969369155661978845924659801628826988351514268783569906364256696287560326348352859326509073282796786834584343920790443251173945893524488365914302157687048021878205743088299484752133194227995699642057339948103338173732849039815670459033017093594747289575216835833133342646233082529687676463318255819999589057113488969490054178715091576269817014232206648401415557326621807816642109972248381407007212220926376782698198483545128609081698823311752928230120118306498305518319109722478853597381285994459533411456789522887524645183669754925561429375114368985962860055708194366169674859613155639552193930786102370026567325109631125386300902117619500187271133196489801454350538377825783602222495458231846720461143287064865178070974529603232974424420545805910744953109377379885125836662041895211387849487526204598897463866820300785559971181223265243592439466776245789182601721792120866661993347779429123885047266293317795780300223408309928660656884590816966664059323520706934264229296987257895827543385675145830287592645520264410191677278595698100660419412142660174610286552641189963399153281054559748377280733424266423423360653155131577859721858181198169204885218860739859070550123776611611920762323439995126674161401049006471427109306190293657978220158504231533016037040782794466473115436553890634692088182536720711641071121927154932698983729540704087545444320014467679737624878018024302803683424566683571312350837050071993711784651309911963652076094521356270331813222083050832767492098138888487955190320715083206026036310313494020043121726342403480464614624772706369513931412769564789792122447880887675771139627129976733269164467853412866914971401100275716165513787461301245004341318991240842097035820247434897409022347671873146692447151314035360588004255405079279302956525935679714781568598985152907132206203381439974838550350549941573111348386790540865931257976534483931346171446524415807869183117742616362323291958133738304161941853944168869046009756898945940570455292942481570495022715434872039007700595485405697374471361688561409019071359789510625344604907679099724882147218469455015083930380216523766554904405234036572883934693655041786924426994610134963648036145770983627073874947711691503683370856641412532407958755812759813642360786799083789175342612348882252164893525412244021729872987403267490162390041308528285013500119058828011898660271984031254754307052747797439905707875977076412800010340426517340092734910752870500476527514536101262972372963254103901414246981729218590578687102463851525437341908603110115681772094236023413058244008055806014626914123147386531333096194319593679638841273955154523642520924424099328150070654036800743923814312188681966592703337001752324710609692502115532493211758296254239967854430640565864455669726861796610945232543235940681040512466050427399636342825164750246294603948952474377775187066740660449340505669598356914692995532244528875854130767162243716216325999716484446567458433834608923588927776414679881417802530739819335361238045882709350729162275516725064128832331692506564619574913992576599956809842458994314023670805961662758018044594145010091926326307308747012672683903138871971184169316410568514410827353455215718177181975982460044268062287621461624476449439188002364970912834563184284786034821470391805944500281917406224551780320522164159939046951999136203041871543862207780235959322842033239561466151294544626226827942010592558864893010719915890083259157440661228565548843713247702910019996338273477207510289980687850943143074931063696152863294360765794196816017086179470265346223960336070838744124120195596839649830600382526559460888029223208019188965551181634705905777218441915174018236202755851174544372117605555033918217185719472435070162718955206709780269883935520049294744928928006409764071697592269649038637590873330404699306465598854314855559485844817718547723915259647120460673693687762842243411185329529041243035011547000633981127774838322324525631588874738359832381643138385820191363198663018776916409518198227810191217590087493433202551455881503568768561603284525506702691023804732776308940694781212759552655554408486464430540814146119831340800406905991688991484012789665049701941878373579899460891513947968330629909977229881871823713919225620189901286359944632378261381173384995383824504054013822759525208702172192256050577838006193652363229499757737098796308649073892019624079363392656768137426318689561753613686011125228418304349429838432298637801817151810256334477510928183889719797857296641188672991182971314798799272947813857403600825277134074820839218468571315889182802539204065199671985616308166266419532765072792176673956006432027663837999984600537147108065415151193400115062497029134912765894558730090350981456611698648496553845018500302405548736863292195747131832825578533802432491364562526802081298342642469016680524042892240396780682697872129990760158276018674156323045205251733566141974902992525376444049650790754572757106310770769932371902137809595763589410491267955152467005784093200872626998840951770414988607487086027192127723981217369085349626316545447248611721716191213216293906501579592238503469268482313766574951486889224326002511927950550221551174583861129828755353328571943722761634645765634342766996074442686689175056559771636447799082963199739715490158454697625134882177021328237385277078187554958031725089297428038408652573589661712754132825368169740264433263645060896342120696964875176142601216204235248502258826903004994824032785338152775720175551966521899613456828320722229616558073859153635464295988052826318090649523466711025172044729961207851697708199986180131204329089954236299483501847807000217144159139516379955972460080903844747469380626059652382652414677577007827156325042318631151179593998459523356861189431830831441913907647550954990568994406640437725736955323917343953959192462204903028823984965746299703931387097870310633904631872510468203855531317338999383655295760217247659226030260174750683018402869287017136675654879129270207782711601452292120502456461293869680898637453100272458235294847590419433384687095183014099141066599505779914328847101616852796622713360842014703708905713337014140840636559416387567992651127113145646384423052685957867529111149581293406728397500576041694764857039799499690898909395445443278117089450601592243172573440248534951329440698834026379001892144052385836657410994756312950365635269717928168840990401422412829923793336428478644699176732001064098957673462645077958167033333908668637726918173406959369364682004280064661559565275517810015654166536007373238571432797395577781723144396888864276893084859347535980504055913178399513962177257444294268654928979898881535234396324284682611558697259086345920537108633865892734599327681753611731581412651228876179990873420616797168171711560645649156106525234520466751621869432649013249802982705502857018291550073011898638804403314682815273985746063492681840376901819837531479056718362916451210205385727383171682133569650920216427062137808115921814574934480230868672925226916106426720882325323697997543651740280646720642824226951791834315032295980620216220840903964278329957818869595962268312979491105603652773140709584219655270878026367408084828130641437735394455639503762082207973282818162443248820890051195787088636188293900488092319281774784774538971766213100030891753529001906261272098127152436145777354575141013767491454222173221533869751310318641067470558611014581070753184414491832846153201141129059771630459948811074221851809568654729979409589729708591366553698251852559448794001114894476787454892718586891328683535945041087690596380980104483158141012779386658029027100717469465961138956457783948809230329679747283226004022698388033163464382612155761192187542696418102673958782983637051714375657293344172632271037546133284088964758421310726439040082051762330320348032280826847015539826153158012841454741233287211945541450321232007404610676628808168035024594408039566501829696959442885491302702820914521503755928709804990984796088356136560377132380958140765331934398013006789473515555493693885003532507677635870669344942648085654681410796335407519245283980707085988484600988884664440237679952860301796721472206275761730365707428864657731875062057120241501099268338713694144939914876684728578821256790579193201794873355477679923806332287586261642293464403678766964752774903031372960723889672656913462628048490418802629256847772838314530308570059488294683083280777214463655253359719820766636593550027545282810069420626931831700499278188984235419913067493941148987338531070784541960689306883565909457834806417552424379071502260144109523216714662002285540198059373557945407448662831951662274323661880956039534872044848291491742882442072344048906207773031148900397687654995934598818409376651608355391546446255521390313055104719137703863663159550686924675973869475640581027161854375331444058983431285091840808961600462152333702217716513597149059587576370910248585051387298278389296707582955985851025405648044883442430024945927862794849624302708333446489355184530164149208767343869890588120390085211568146976735338703970001109384466339070254359078488591125365252620199899365399504164301590733397752884325578752771541572938964515153422100647634771057467115173578989184703044745863459700034712482215762336066363861959477871365293789611784385029257287559531966780887401705062348610681769144498293448737199033621844154979790140215377958329110524983287703528923428245625837731794023977548720057667962614056844990332214708914625109380366296084063196316700051336298028372907124143721460177686367005077816372756604295759446873654751351956050328105085055740427250234685706592309843757906837957643411440912376957345702652477738537486872169148560335787201641234231428833023774984000719036350789737145109415507484273777892289959385504382859993946003712556756704819325357985388855671680533206828672272332221781532110489323302946530382033701151667658747555104677615270132813623695617268384242622698199846410476142589484165113418442433012683792582089174277979677244111362006844495082360548046666957724772912986707819483935798400881139271179122849183332741495147828643293048909270426193398162167176721563653709432709525701734976331816789031142475260084906351184805248341990896430863968406113412167251371881450699817787014609717190043709295906643856780827078105575070016114380428329709808315359425759389084131513441239468693229596480447432657895805417607625718841102201879372181181333608149695846839417248088372729436097570590831566147079293205185972882662545536436804329250822805999926197732555790760963828132801577454046083932012442893275543386600317309363390704732940391796522680317831020544578159834960042461238401162821841247978750712610975398227323149096535464012799012159774047165668414666187345211526452720453731689079627957144939588656691118606525928465188693300013853346429276607596037189921673009207010390663448554407125114563060844846223363852063003659711225016527694632565063210310165477651950696649032486846406904597736491039996339428224756167849698350667984721347529729220550170054824780868067800723099458578184509305026520446215274119568779174540220731146519330669698747592259251083616247119861930588530356290038517271633186482923570745381588884107020342701790440593385043159852043222945178421290616949537848283059555733583318395495661634358863635324091359690997490733579078068995686248131115870788090200797653907940900020693501508262510719392678764990636840434152338313694467227433467212440232934144264304826200054995295340553382717390455059018279635965918245040678659867953345162526538007911495649030531449925511515947156043492061116045857969187008635532448008134382037523118331685686600068364210729860700055011240931241844243960485245239502846713176055283295726917138423732212115523019409503574547338230539457174926589771945459147101736017072874963260699657108977458419972227411515785271657638572483768621467015017163558526151390328966127714279473895218248977479204235474805334523732345371276831892438371711334998601601087942645912597375903657140646284103830531272719463804849035847409445006662936588244851794985324802154056115734583934229700386561947074010888555957202578419246639737464222574991003294008514145856468585364615982661845370155943650931109894199006939293474366198925231562010356186363390004784288834513016420343729269435651382697358625220721807325690497975887961554074868142433510562639673957983684395290808443787420460436355477283291536999083298222041687084029106081204474861862295000972913695375320591741884370345804606100505546589256971704419855551428511162071451077871952302728768382800293752073208573524371537773644099495237672164160075059850078578506641521402000211996354064379065668253257833626710168191800212946199840636857830030950940076461620381638427547221033584301371255187657242795269691133257226426407258361103799905846483951495178524769529766274423962794007435764379107224520201086733369383595694171066311951550716249532110382076270284078478162291934095026606778094991894311340568369333735506737584468692429191687570223031696682273938447012311245539124833867989956752015649952395214310663335572292493865049969938342999745521896377047029297274552384951463229654654719193717049763057135376777310431030386630396911583499121511824440505697527288044256972866888826516014590135568440612330527247612854420721943314188949706780424801063794516474012640188212523694078336586469449234912677760616805100732848960273912211555722025341686485575423357372595925750670336100617254122244643983264029023541960691554115301587275602221143157448293992807437322396666226521624779650773896775912521950679495105559315601187970285579232128228472314676746942952627499274089845265393536926994628848070946070719845890985753649970230903157402293712791958069461041113266403972199875331750949482172245365512479756766114059694574313739039247878121025575872319358015457368311109764741054000251118404579873001760554954546817963949879644835943264215778724995377354618123429873997610680930862821767337867026579084377718834397995639942339345971882929681017152798937253597073490382608662770437986989583853938907045149233739516939142282168375915996676337333279130346095015755407126924851066861157543677925250106563874111074890278005864021386270530922168824986872115192394271538688721848754956501238896614275775749434268451161152401166884753331987276081436591809547691407154202758455317858488635254452525310531051626480161708546081137523849236387510016397944645246651214321800250256050767699352289320527515513715503220496330566621543159846581795007265987936341392652723536782978563193147689238758108623368396923803639146047474710476372152066079170270682779602970425020449586610503696335552901207036338316792998782474137531317599545117706618149884584410607309423900556008188439230634362211933465413487729231695449215803429140120636113908840052414067635652344768110241539348897596792235955478651436837849878291637601017581422647867375545358852650265371115507334625984945426749509369207827107737818628873717679144268783134271270690290416585291066258505649257383602094181284146719810821494641074643850011830688058649283750557979093686087421578303135065447710628701883297564641376045696880229438410209448687849781342516847617682325993033092247405954735459504398540237241254186643453202810909903484005620278726084920682319393958586511158848052202788539599230113031672164338747937673543274973297464961060228148471485877971421772517617518737193994968041578048761300129223756288857356294260425748945104576172515967942538414057196145100130888211633034080183785187377773571005679157535351196361694416202079847246980810010052768206078026726349099707686875572573821510894199755400198770119473404229371492302676933101434009727396997333459992363161728322822292919652619910005926864233914870547765096230680177588059569015231249557498814160068803233431493486128591091438516293767103097470008272400419546446262886785180574416714345033807167333373357844334063228913353746350935840967116269299035770081238084827198967237132938118278843449433669186788290795065964226017781004880444692819259278844815570916733985042231247682456913309144140095723571475355301090783002507913117840424500317392996173547441524390277704043789217341898635499910879750475470802745175439503424669060592311641374753529271091926738255666530677662798704985558331663625001150440416717213623509255548507754805894096254140895102982600678530086547958274363814649049306171356189337413101215388987050992191148922139239982862319883014789163822997218826036788359150093244299108640659356982972689440083300860251636102506196850656075713614485328866425411500594636807829002259489017090989121722660495333142574011797989175619091946912363971160861814612259483568528086798890288908448801180866644718787147062939569852789490344183684465063771969037392883456724684039701027273510522819817660959011886868010475875181365213849784241207461344929472614116445705758613620211617233309103441619181606885953428363759093135392239978456468432663903917146592803130581610452284159820140937028952828191658036241205047223370184921643710183725861775247704268586164888499772234596860711392054416188150642178990408749120855367545983801906498538222742538839578276317176405973756811978662558750587872957681792035089455200666110613650069320637488794632267103751762614667025736849434520773144994429724471641670831613874985533440228234374340496324149838270267712452608849455070345634321323072775000454135021160351344322766664689728693874821524151369729509836648507333602024875549857697641183286622723943538803233229154296736168460748262765133041454656282509145952610246270059871556312245310807740212237456794877233337655541916370307363134750391030241202482109825095906706226429622682312137282380067519601858667779479212482888338731776056820845304529093489927090679364921106893439420941821781850640842447544648089349050375027955154742618874645466907944719428351360366745825293123366194061030553309738911650887450051959447413921981466954602255208445989019999338178488294821750866132949583182099585750408430801575285968756283827133584464277192723855529656836830485316039609700326075372375988902610897107446151519958624270306150713928909803262054564923135243833823617357881326441219904730739366247644570948516895506165305973036689157655442230156264488725974998877896889869955100834250131251945315942356522488671817488658987629394374262570285886831820777991744040587177296976845993882113524271933521549100822097001148147943221026375247185984524472538176835439806984163350116477279714662823078860533189951433673338854231956290227611441459544114414016361308206337220042970734770519692013173606616923804905253839201351000956326799086899712507625929981478440438726659733567219801605390885250231609208120610868284356635399448002254473052902645845289857915957034800035577604673006429847583618827973365715537873464896504983463918188310370196521859466059242116658214323760219549758039333534602376296914108831834428627594187860826579178355761032275806958100956549200909434795797479664331617154281344525798713865539675029477779017288499822767712331708383169446977436835387009779838399979143092519154482060328124356521870588510884545981067853771464504957666575059420190721239707242835339332979583612243162862041597588979611767262600028912528388650041023090341163236737540532638668753494395859271726039839218798378405138825828837013458811170789932186097390201242661762179968048857356483053756886036992704749912301377088740033745429019580783393968721303459619723914185096482363723080541249012435976501600544863276285513309742088170485846852074921146239657874982838606622074655446397766459965981127172606682560107793056529436270008598644531617964786154386204138563045922075419707175609773104705582189959041470678172926872352673609012774552040544817468777044810885020605400964624554023902613230890018260499454023422780450087163221982786392315804685786103115317969391837169568859900108477327869111636783673860886808977459953663258128243212108234533462514030959848270074352824188282776401903454010877014800916599183447268803194872760536993130937808616817410647564293181904796865550819447298574315892492728356381808799382450037464217644941903192131712974521604162519635165180878581275931814299045117426370967390283846932292683479568309518793779955946395093596319402306944259621237031429495673778994239454047559203406206603013192775439660947878150902079931061656044574045430466999780131845381987761807136314260921641837711369909203195879337489588353728270822416553466095051196284747486590072822091383944102891788089249627225491093904616299411481320857926402786430098970988903073475803834028901413991447752307238399366923872997350275712440173637487433626935946743784283941318578291513934353214311090992021588139470327461029097810842041178625240097432260370859960773626733612131793853298570509652355167265567823674139141019024711069748004755262257559174850257237091181279507817483318387081875103035845217111196661458110060962912588809197524594620261760276924619670650517254434709453309624282229118551958522695829233331802837696161414555981275639383093511860478501966004973567664188502693676229000141240656157646713268052527065192729915077361791563849104533741934545303815331409304084061098716622272739286073310486615325538957394569334652732595131594976286722849762875643764003846301605195506600678555519294345495913851326154336931111641806652731965207465287824785997438468044242992859536750555935232188112310784596047420328045332821379037610155942114894092349710216759794897491656869973263938733859307747537991984327001837965752054420923209941777167171067650768313829411719271795441176405153338943137607573961460873067094706944940508210766370378109054977512070862264523508470482711940817815598330265772208726682412066541007632635108773847692010592018889001165467275608564239186202684646575430744181137740809396331030518364868503973955337006827562657051821069005508034428353953114316640692090443966030802669773225555898454156095154034255641463846810122740836117413667927159108162235613545226031010203431094504996989904339370617460297084313460899667998132326499536935922875810657590910689426162153428387517016021600260757614403824097607114724460995394050800128208717524293705167121430886180779773242217453966204407280661183638875219959010883945368334951624570525280818285441479462028921702808401626015508108519392098841559014247250231700162919340556693903482645683096055077849558848718198339434336920058901792346168376877515084936338784673746019113851726345823322367693356922593424827853936689289192590888701768620711272441284987306506112933840010536920319443486769215402330919815643238586819375159666927886696411016498462380716514905268719961718859425227790153861719897029605212629982935850338653798475681472755965120389522210543772136545226069260404019294699143720658067865392123737572885795635558104855374293236619576479689362643935443851996792977785799256841428968278204142562593730886897203312475464694348254137507249423981526309837635238640043188443787287668118580736233076649808454136695575777072862282249885578753879584636709889721131997475810248129147170305726982741781762247354728289904509158973578306842735587182725086276199080136798241065620148768744217795120692904206148240018886446588899323538253653441292850946546421502503095244234593853206811446965046663916763371640678299155578171588305788476075550424988253946209375685518309831838404387284449563880282498677809863953648057661389077803446706303012616661495199402664437411986733722997339539228379045633160194041341719478704237309456285237467081714130133446129231487128550808508702427395903840669810145602118524703800763150048400787271121304950943275626395805338237416596140584522444029274242678607619627859328225929157211469549749439436666356132162049869223795590672940211845563125558074937819356219801186129007044540454683392678181413418663163600346760342445096223359172503868599011065447350384804124092437328856987384939118740251400176240848031057183005627854065529048431041418204353006326183333534817266053127084331699823381629401508830013434817633329351794915131132436771936669347240821953083559691674644299324028606321429544087768422496250238524796080379922535815226383047046129068340733177443013238954002228800699775854156744617349242955297600847385037830050890397268192165218375483116389164218921857554885226045610913001807174314497855848400541864647255537039766095285295841732995399815857755316092637245677217657989754084919909545020624304573477925146767026738162461849364751030345529312412660239670427078126939243905562435950403908668816217571722941464132257042572789203266489989508382583551359153399345029867639823330351045660364301723843288871157949413320844328407833671992864594500633942613573709453774952542100474864979832807273335995870158416912620201347634391058167087508779698095998186355107058402631465410356128353502955085608476903368539684036098982014921657680921846173068029295331702476634431448440413327298853679145982162118127595032320570145674124397616779684340024950645474108776202222476084653040716572871826201633017401564944828286394394265398533750760108616193144456251386815149581445860128524560047320083030128276646566078910308571794532382280392962520018015768547254518907315214341417609171565340465463989237321572009519597717595582650005508824729414842733678573440841633567547779714267969123528078042919726960939307603781455990593678080263395592322721588960654181148290129205064651754947181569722354157291597807962835839022861035216371471848949982173782502912316053489034206136816318070276174782977878165332184283238670334485309866541321574380207356135784530007730093689553332030270780146848780523761181157891005710208105041812590524391648709367177508343052448061976243567396925609541432249082694370693249366096429694782158923494304141546979974107674847217240558918843096274678276914592831609084062590045306022472963295267739160825362113296404817747186910420327739366191161740087117126669332590278178595366143196539011341819210391173000052589707147721675621559766410782610010245974762466452602980716920355490270987338934048252439892641719554227932436328142986252550685503867727900539508713757627873860555566481589186380212316599293035501882984396468778920505061030763007551666758348958301566642398676171584503878820552546110983166620585454390994503640482398961801633257585969534488358211043681885350156070123287818779917427292117692157138550638528687857378025485742369209035533422043641577684481496803150212760402648748272112753939970786085946547749619555314494923596465120991836866274070522798205345875534827726624446785184701987697423131969354008732024569119158879392549100931636563755754595073162208823612438200264870968130655313533645534098988133721218676477638512517642820398692308908876637729443994363843169642584508572221096819647929401280982786148003762211352344909813216183026385794525693179639204612810570498486908073414696970782491496717844078576388696438423471956157803829415511089849488907714136243365543946819722568796556415058404763331334015041389111581511419609406006998456363327482783594062087200146903109687522908355242429381291816976809632741247298414662113575399933729169958923377391905050288522877902471871373144992027918384734307855936186874385136262263178050909398309982524687149882364899244735700133681217411072769670725746015521661734400088367425309161091485927851265975204024902196489492007383889903639869321868468389791192082271756890585568696995636967759768552418953883629772367424365904698937341721310782932932296398455567520751772265340335872495721454207952332331155599522479565111172210773435744261305241866131369325526605705398585568378616758326589928889066477120063456927859570206309030686097847807620090098924051736662926380550413634307875151694918977919412690652757501789232358876929188435343438145965613505454880258196550251032734389313838427679585240771274897562756302595905300252158980851640293085371710191913955133563263570302417393111492575970020186736056169269145546667540189122283313146558271120811060548671044747410993462918651615564157286184332816391293967598976975025395769732263534794305386054892168303068908516395917835760926228998189740556019186381572945458845606812661200659989509824423831854095275128192413828908854599675287902437932139358488119067692967115932920531443553618065299534192433959770375591343438716954057707762327781982227853726587437257816439879790270875499757995272275276451075044361611140991949757526449313510490865083113038568432758924872904624001677376176285898813359766419144706016185226314376000564388638413606367320541416349132520526932245311829020577319885091348338555249393027678765500827280803175044359428488342342569070631229461040527590591545154236160790865461133008536495138762807029989465919563831069149454531405332705666625455042019523541634724544456669163284053723379866720767367809822649080236359847668736483522948792316442292925929948912146002026305756575976102028152891093825900705118715698814429797745151698394673072727480268966880212343061030127112769339308613651795477059460346806753450713567838147965689197633480221546003140524083153585701070960033870419668848418582654254735045545747888284883250117836663195375053556062044723510070242827633036220824487231197282813926232217475018292850264074688194068744644386803632064738837371282525593385760672388545328423805520984146298847813292286854334939492887409364063190768758908801931348738912844240396091001723635435097871570802579725029336612345998525296226753791037173237269226999970346513644566823412864497719665816848096644279212446052206862835571795874822911900267838501256775147283597765765658208797497835945960023516228080450551557598619178480248328492062366197357433628058863539331021770155612044129391966618921034405137270943447973581595629748070595757368885157456216677485083356575158995902896024643207683971871353782621205529979999910760107392544057907649582758876329744061413068872844254328416752109140980701820697257629821536238362253813795376664360082202355420886511369594049068913350735940378192859156593496141814950730187553889838392539626036777783968143879250675567716652993522874801185418369214494008861155859261925833912941169137892253348048007141257169537630966836751685548521872627085197504218322679956693837948190221840717531520444125586211779087731814587927925588922392253928806813633022003790974145528709156322740115840418410348156411490547342521477336627959335539649250145371623264183414854761745642352828005951687579582476024506351636466246181169903162177626254699911314510218840619990233390843927494780478578643180636570249635658490925211250219650111927937913387933524043203021135267568070075701814113683059949580160649446572986065013426751611054120494470046596118980504582502789509032075865284527632481724816971538060991568770982076005992206491808674324899575135259026992723134982777633835872171656964520064817053411621654114214296238377115303277019573625748904844137730892331217364114529991092095945089835204416182797720515957275251221616190493983559032567826550849345174746864648012233773636984569770865046087796237613346878158746783936723930292565972819879972057230673766624936968328948328069129963018136466362623481739059702632247165265853553857991164879181038308649413153871429904409029783286871888897588874056790146858430442617237039212737503351409146403900396309217602128840622656668304610396288107652251037889895292496158356246622622101855402840313115936161381203703188357694071004496760785861314002626476823960323895779582778286810742984996725032466958483706983916813207342251168528751141818490449729757349878129772859946619710535826368996348835632563650770031890070719156834612824665674802520549242252841189485317161472700805275537835333991787323902297741096899372486842304520342930426291270960973740318531362811825514141911871673819402708413441949667361270266174138512137131107386398271125346788916958231337647105764583757307242170747266946683381031860433889977896321131964513686802873005915992901891536705657761251503238138344396002262432057261349066433827384616884979682604720601156056076344694022877462495543216748990113318914680120654068173466894202196528165972844280773617163349348069021143114997824167781312683926055276802766472044706778673550208209621312878279816880730588848068713100322580964969270322205128297480612441072648216694097015454715744568319307193513581017791541856708000578653366591462544775463363899753214031234314046955566617933466068522827897455747212142516652563857743549532364698169943153925220898005165922808306915862316342459962493047341695073889009759141826372343412978818259425220751585116313708446725138555604335924692305580210306725261726510755360949780906959433707100585114264201535628977918408659992811293745678811129928804116352365542497044387056845932822416276626997311886279607234546376216405493668011571229403573766612373120952139148812867404214849902035741374883108570052169864320950715766360783807624147104494649208894600552880295954167984341345457530348350831121754266498049883540212578006824810128326040029270156389766415095247399767858402367076553467566242792919881068592591034896022911330351217393333400814744529307256236738911384438399285813480386318856043288533348634367172781964573110309782397303454293466385754037460882814112030646349071761543685752357148078172357543436593552728687685096062582423206071108393558012619969186661386561066880522585380409718041361552454734619125584620128640943091208486341797471418443728920223979778223657459025607219785945399017616636544562741841157114480490765164174118463584280301598443259085463479344734891485623558749424525005887778840036425498747466253402627728693382266868969109142109531220798760533408039687777217235673879069816802297836514602860774002579635623249888047142220524253315082363318476067094368257158468535539995108052870619283922686364978831865276003580406389853772200529859391428765040077841998976496679637153647348957649363311389172687552377182388457532444732722913143572820393616368320064393014937756575858440963230359295069729014686822279003186266657584056051477379719648227950209862682836963414101411878750153486964156600624413720431921178602955868950845655685282587145578351806645856716185532550719715979061020467696671599816035310453656048400250185872838094642350001536727574702244761288802125508764730679993161598546256574614179754081680553797884162197804109051331265482554985996717263133531686355758435996692493951166068369589811511437872109522150841563950510433531997564559511601340142515592329456189856630399345324300115505386505299634802555901441832496216421388798332197847003115333349140037068322898756234024879502038326590840058611153065095305332043096399434907243870204424083600248189424030502363138120621838968740810686349863812019766566743811234069233990722218907892280720107309000299882103915536527038817633104867661749277101032303494997654249464218644874361883117973965394198966339691545419571373829180430818473340223199246002025470960659909055528370744954991558341977268364096575670702409724102496670919463110479727269956853873215630468823512734598882436693600348796328195374681800410190021614070866256574182982621768609234036240817910870636467389571497285899032939569016099942557811329735121118492561584417646621522038052215799605995361918354537540499075914524872700194036346032483947446704936609248597458311124238432353389988142136885585588085917500935040274690869949043257443091891550025477140527516968179988678175580760523116636435095949900496382027056216186302768566842049671583148124027947706189794885510136851865210158412747494664687278411696144115514363352922346779317475223683572748605968893366621370550041154821265437236962638254956807498060932198720052770528684106640173806678711993491443275470473640308231335047621246949595155384400101134495962149408692709018098320080435408176478375187637471146469032171693551848965569500128777429550017853022453986770858333976886791498193382320600685417850401334149039737716677641090903270227900989475178916704022141024967232128318758169090547833110015677975172725101077166518873092980132954642827678053085994953192098369377336320206532048275305674836099670169305070410468201696185603222784988344581287487104742311020942819745667413059734858226313946409518870390045689607629147034710428897771492881478427722914844289181011541548445075941229621277593323576114123806833949910773377641062729462001161608896176861372465726729233194973912017207402728129518239310226366136838278463152670444474126045803167221043544179180189145181962950914473580488854665819431629801099014002763569471046288463184026068175672130878956911839063314866380056251137609539498643862494997527331603805075881517062556770073575290050855813945518276794300021651887193946406677402883155200060386836746433057210422153558840553852775033124987242932393087561400046886438390087203688854268870393196558830084234803402493216316776636606193137309679343779389760509316144951831142024370221651966511768436584573540422516474634689294991956784339470684316825219983121872788396063262246776131439324146936551074717020885022319870054621952394433371432671472979326418582709572862442722808077895660468660000403715459527917354220412263132892753426715844001310254581393254210354897473667011860716405290964790402623616501075876378552350255197193832652149822522622021750137255627755111082307723346684888521039941392277939010022300106998490235958780418349641700605593430784360410778050243453605523963539907651325793791438491481953594638021721930228168428529656527098325581615653560014408326616945159110355032682544826807084758272853649080903737733403010372146538656235944565490315403607359642677478326461288745017911363619391029565646518734996856467952033123655544900696757679326253509280625995472087580773712336451270075439831699757826518660816907156942616553090514505808476228680285625049980958672410693606061789534527466385322801856931163719562513728421801959823807829797454903297998728369856537673920669007633362062204206398400781212274108578195477269090104528679736681972633248729517205119208032461884802790891763330527505453471702072433057419496952369747461387711920837239003682465558526233709178850659602120938851565927153550375146728393960515518861028498351395705024409038204318685907551056976282906675228615921398734426308238722761180158086126043741387893787941397839265856992049067111010239268718619021782568692864140239448688257927421335978794769790870172399593178278774828205930267662151941010696116809061883806361295726883984054357609556584964717472626902067443947270484343791513816542619731205061422412522507886401247741525623038446558225239962924211097708308161870827253996859111726809209248741301794845804644007726268548003118213713010305918288567908907899556313940002086317097555706908962151116541812270358779904584158737211176147767274153803106616709694784002301427164310209337272267813106918030545041939961063104577902890449831997920010725973070854242506594159531148652265236871891018804166744630818284494906539265771658740216310949739312616680602990363101950982359969970079156244382984620489908784488435448390417402666629322167930410217238262157983902521013417433481796650456023946009164731205771969118567196292601634546311348228146265723261468808194845089613438657139951685012836207932399326706044908509174450389716990056711216304508932995230612125273725623416787667846697987062137704260960671901426087025059871583050005808887286496810534808648701556284737993333392910357150636079162969322556209663705859622385405333702674482086892677007135521617756026434759462803231403562406996691406549088537013897386365576161188637027779054620152182380052441800155403584935654699449482320563353855381825932847383775156925071354936193901797783907643778423495490119458484110164608269814696807364617415608042737602208294159073100797274846115646108744685081653443928938429118922566495017813765619291893922688206573197370575864315262022547708889234520040644194084398910177406750551013131711185545064161913030486160604394420077374652203328517906633990677144639256469737258400242469122421228109675566499366565003792489903188676758511702603856560254821347387377031950653529578465701888901766110221106453024138454293946006862788922511438696838536597435894808913323169447498333070219384754456466063757147811881114530166860039705650089226100511050239676092584444578187654178249182360043944390717029599338165816436371700263672743401913062506753469338883409896361210606631749534522453841080375740233080626467821623963802578559844834655470146397649880048926649055127018290639084748378875088195596539927381904618880936044265848478787721348911933926424789435111456309622788126921103443849079796755798686120739848968987172270205632789154278264377482775864830213318679827671210179224449624262164165022207972296131420967490078066653799486033702295323188459929607416770335942717249956223379372701640429695946544243802076591058914473214936329420199729496233409300379449261036864591792485835800054323344994809372487167958309232075646781926087831383078436399976263627359777158979103458044453974500479498236100320121066228566649622915932178150996589538565422442915702845324907963810835371783420874873905711386325423833536200556857620056041113116807359954285269336450523510205599254852094752851588123580368089786784663545022293871442431590039363497476882622011335982015970118238864046841385007546789569145867813558173009969832912546189096550524622688314579767488507180267333531813797179976676150679746381733620659516587093243022343391110443405472640189097508933340759242805714214750247926876729617463326541212327099800931077869603706968335297277069347914369804562797454194477731001366344798642900561336487471705312172066090610897567000562757040487598310928851595382500557425078636888141659721864788886146145644770321377724464322955468017353715906769919296084386401332989213631588254433561710964769246678578479688096463702508943152023616779802240865092174946985796991533339116891077507463330039625598939271208866566277352128451556556787748978185676297226625316557735392682172678540074798369586461730678515350129138703584373747303598523580671888912824594994155214051309968295785217983361893959749462318006563280859239123980211837690439685571147136203335640048342379544277564249816122074038521633003183233766618640750833271493546903542759563388317583305929917645668624696848561075655630394062861204045711156510168571904083188281247763327878064517918637950522917824673918389769005114855272454362782378432053177080032543548245947766691729052945674534027285665690375745809419309492732445856034330070796501488311659066559485663419303472915100214704140713484120403449863955666894235256335372422787097344284511484381238720003948952080692333496045207690173642344035485059673539140369239104821374920964085219853774672932040660056600470713573302034787179394147254422394563241623644903517540597889675710630870727254766518257933342543314066018848397778359794342326830108882915626115400899035754360457946925496702403058761337650695053248933204344095674335309631409834733151340404066049501106549979925870132715823249502974730596664379650515147576460752177420052565270539390873448914620706765545198397999436799796615909928168861366106188933265118617138006927057691559207622201199207709816753744559273301396769772417332684653623936795161337861281626936913558253403847855055250596835263982051178362430689089535619531611956497159762081333541934867169476166306136026540565474953513233389804064041686069941661443663391046562792763703418066957643233051539340666946057460386796504480510809837586657602118344311390251788827038038567626077399157990494028543755219466884741170587577059981844896089452018299866150380251061792723237343156436429252653405952828764878584520315982261917684424719580919296881922210450573410801853742759260907285151871999671078856690490095885376707458405959480070101015339100988144249877854745728922691594753859584901565936326084624859748613987750200415441407547056720523454705374166803301764547418052241274721159597851672381660049108842201498825145423312876384068067809522573109092087882660132209766027712471647807065111338637905285399669765338204875760687011996679696558727433299365599990744525986118502331869072327360434920892155011695411997300190898251561078387690871666185744245222776332527134451722794335847801439033560219123967251349874923701195266087819006934717672729612878963203173831165266710251949624985683823326368898200141570272975164481507458977916390580411493596282259882532611304609374741545494381830890944736398667996195149871234853817627167592015029013119495635007666191822764745900562372275215267142670491354478207059181055510252235474598039165805881071962126735763106472258516187037803589215247382904918739887669714127937891441434748520281110185906089000671025005596929677850119082298222639695315996308312295292001861010299000769430466880145285734993739913961323230905291880866619763412189617814924406895372784620195429952749627670990430071928309529637811856376127264990649496328845539010446375040746621289548903171728989012014411413634095870885657092520880755291437461336223039407527433660190715144979520185266461512688588444740356750918626283885856660718903380283610103694892019322735615600260741061870772609542451704491332274495013728835097331951864454833140568803892052444141473953253833286497052786055757440395446269143478980236766842156031718669566681690388159274372596067248818973781519951310501925534988035422940890053912870448539937525939815349795176534658808760195453383918911912154003041836893860574497583743832048873986409727007642336069735099509345310043095847543767607126073258959994762074752801131163920147863468078056144378770670738733014866517967859423574816909363513988823822482247627218791433788377848892402502577970031079498287300268954841089084826871526866881479097980977693528919619345171466206429908848690626396272774474759566386330468689889892084942175035611108594438607406641978845532069128790834935958869898830203447209247287294624438834927307765843546071508752213978537781854314443402566090873900604282213279181848204871756375522665880612252837491944577879312496148917359117039803053627858954677788155557396501475439712427618453698209895839653197024005033439376788202641922973459795299676888757376219464281396099336711577613332784143588058362206489691272039554855279587181730019596815888083882196541178943856511746813983582050957524979559439382396328402043400880070876594483732798691547762374134587191105529088011468355280173541920677276509969197089968152769575903777912799906545454850133594434806124551302018898835733882280845896378071490191195597492277649170926998961514023317544612692939982748399914010685533850172302066139145918126423014117527083082652237034842168275946686325875082067565137780187854350080341482213805723105067239762860673357157884936885054884911964397651951876519851409086649122408131011446650823057536619139328538143591976602050035899543829547294377557762196587989928680013697605356915237289289566677631753064970748466305891206791654302590112027355573014498553779949737735097769267310083160252731624602727507713675232503558083420316453311415959904218309698962496173444058623859695033870655367905192210962925140744936906535912395699774982581419846603960174226070267599967171784631409039878843509453638495283261084246142341206333188025598085290280875084930595253620174099505115546233486347669016440244685868203680897740320027457978763419024386106385731230455452471862434977492414314662641421166683831588417470257223632246156002346867367993054244564616197130613536920835558556902078791668204524830757618736547689762339479936175744908178273602154577904366099878626878011252681922863633665104421219356815434413938043501761607154456874091707804718632460921399688366769861565479821188069395646641747853952650328976096769598410678279294287166522757546429201334848512215724340417187415954205279277255711752842839367832032241384455050009049879229502555661177157559647796014169382020971623477031768746293574502088178344042430553047191569057532059471766036994977047573351197846487746810385311305071380651596416293287111196886631266072427840149592061264613758476789796059780369115656702895964868716136082622380553232235402300315668729006144207654058971948010110629758720210473704448383057937879833332237658931615853708123893243084009033651489237941151359372480995128570484858514849828781789810479125735766689527103251166226178631396518597086413177360618607043065138671736727587710848524084177992364141591259161314306075722291762911599050816571348032856518129378843153240216427034937955606347145445025657632545656194364411045582102407763970966729209726130515364740990048177583681408958429992605441802995339237068896590943862275566724683541780037226495762725358259335536248850553332983035477934360527156972099344936694272097151185039438611013365574768980568729228330952915130631880359204378354228092802202648018949804877416004303368926453798172497374417127765764881218803105081229760472784891531458270636682583744622575150640376992288783774461650623417333875827132851571895923242991174232918207550086227918652181728050428798793870548740339842169164718900074555601802626270514202605265674590102816559775152122252086663832682902411271221047216011719002897627669954535306862731692009248695759470601856382779883089588924961435353013222946071741077906979653876564081175261201617130921812937959588025128839715445139220446308119687758810510364405264518778441168648612424898186765291049637497692021318177245938611863642258162126463508086338965757741952242292116560177338921537254856190621342091741400037145331177879529533444544306455480691623918991600446875633851171892941040919324319343884594405487861734579951619412362372392066214616628762609520822701765605893090818745735035332366271976781148100689186850339521924942481863965631044361832896520369266383966916036370385076958101523877956592245064217868167772899628499424425358671254723687077226122430557654053211453813636226453103904617181415947292504593363826510444432818559819663349009068270527128211403981706919144334240127155704639854840316948212163266191220421943730177869555791186492988588680350385319517931013823255930800990253204544584326089071244327837020091913430442376466897864022581219355828676982817975122451756688693108256858365333926699060605094496081686162017984185897072199867391652442404131707417507848531776020053809124817728494937303288502399345611449070951009982364682629768977710406376955933412475876948021716442113392327081668997919282029373771330660671054304388968151648061957006642969797948201114007160340510159994285712192824275405564853102627517808436963164322937826392071038973055156120688388080780917045117023885836330583359948775025742095982826248842075683565416422676935549332432681447635185034710685828618964838762172084382187606267403939177671704063052553499691619078764570078364846836508992339065739970265847558694034716323184283766870622771098622080289450732270596311945927860608793653368344478615433702668607988390569821546466906868688788273303173364599954728555471498894857232787131489102069327838987611558767134637265342757943263928292061128796858508313572892700530572854235745227376441261878684877594653838243712972519200762213756496271768016612197071696856486965355385624757017702900256359969337109783033837831234155639791569447788416413049937095780197659751475281308438079722448795804472926103263885634505335228997082940196177024498478402091061113415906147251392638552301542830815292153551003460750319400491887144365264729396174694848600228735742851755872006643052099695297584836935846898208367316597745225760824443389921671345910477115063210178109529304314412104276393272919543920417182843740776676103747649284375092769758446296469015754879527243746391098434825464695301357978169201992190993850733225219195992421199036483611109812351807149582357043469435285710669013353453421308680382220224092477136077311260108733664313151892555011080232199388724273329702574420414748637449516614747993815259305810426900284464608146503205336245846572215100818094060797569600660371967974390591789454013958355478952261687593451866719262979050236797396983632384983551956337443842600706460824439456973808217948010507491251722791460025810344045322725184745784812169908168088035284893321878382936468885385310738228475422776915664403165881118144323132435615232145509039777886536613555816121556713574123047087890972391649722689228241775390682641441607324387479255835040730519137035163688664876665874230089855063154567518381302544825289818787092458475347450814292786264010933112616137969043739670387839529318149628567824214182540065217097726154310419758136612374453695104548734513696073378272253895443434746013615041064610936597354015969457867541685493511256383739463037762763211481621715623228044280220590128385285236636253142325447736751198345645077176910359885584376832618897590907909356481908654321879892998195978193336462169135669854428759563323979403580260457571574606426959813913427333662479359955294695673075567187355571721925013870252271394071581143342622761844629484416155064048958908474279671231920081136303427683932314243441172951497779128528495229446929589657868073290425442654084527642593145952836358017252921412377765216783377799024714628495388715701196013977736671875724523367576502508502056939915065499959562150525028601106891081537390035151705060283028601015038030482577517886041167093634408723542548112778421019746764510480404121157813547350457685273830956631730633633657467804158515449055806521184125760540343861114267943697595905559605678329394205449707033078526023702620790806035231349286594458047148287897867278847550382638577956266824596350488342649882389490075707650912374922620148914104827681515208913057882798882683303559045050935168848632078394913782668706903999347415725888628234360756493420891557266567134619394265837280422647025667665264092112728608211169832150741138807381134385772944476793906960923959051599740483569731290805475557891336648665225512084922705111998222672433536660479239860658063638638016291592754780267688212736009458776820987758888144731872434050179590346180445543416626785264191904068128465631307377298729915664682458359493548196720972342574395938440359193170922815831798416448817808587483788400885526177064433123674667388781523374204657659508616981950555635492010100266328454617370953635681805657112046129599495021543281792286559353538247306701691083827437064964057631590500540618552414387930837773211929915265571913009361772352260554507614408420842412266430867964427839326041760551530545206354177906750981737693937305014312436264991885628108534193959909447984515015151997614703515920871072588776318100017854064628905123260468543974505739469488640938293249915485388768716583843764998466474185807839150590253072102003246193885672316347813988247924351966309891848629854555278082790151090488298729935305678892856046008863675277565184638261230997076360197560600187269186384375968196286216864404231300440521395973893793789171266606598429774459107322519455915344661550983646527868630633374059207052394343215239855306043398076760353234392433841569561096622685239140980179046606029311202078646436314704520937792489814227720613048045956622534043075381479076869620828700093920799547792988527083739381046963950732843240514568854639670198811786758645280157092021283412412871184110357759157624005658144104150630306070070528029658487788227558574990340448381727034233183183602055370994178002691165832421663381276229854472937534399796241342229357743816692779190273102420565338460932895910461194453110301213075593049075336232221379596821053234080578493322665301412491140279980156419227960419223050660074697174135739412943053415829231378488711017561816842398631617529456372547855112771610794706315904888172825301021637462697854525116681205632328486106508853004551442778420750649220177684156683006981045116330709932407729607120155857672438167258943652435367693974085111451146154829984436112758051855128633975127218936639396684504570373905093424582329477479066813296470634160554269839443149748203298861717272712986830048561390923138732220034792417376500699317758701451427493804326208665326139741035703759581923029749696926220199804860038243806497991393843814362661220795642511155996291012022439531997864420766177903133980027378411193100053595270093588413529613191914952144773811803553053558265132598726286557304488754382297254178632752484481622092440142767669840319698928984931240335916344648304304812706846907024444012210119740767419969652573892979177298127241870571133366795117580234924572091733024911329961852690589184691331619921660243241192262095088929376295620130357356546719002352287736123541855574234927447504081650936790894359745862477123748566348096508810374567532919767891481660701038201934166649055915514423870311886384318015603777472554974365068397446475398981175196443684642844889333352035252070340029781090437755808841212965276875747269513927547674671367988344672876940034889930028526649726376698516083294607465475443057018249595613498521864607747683021626018399184435958073468691323435360305977202456604518682067476179527344903261723173697530548729942831014426383282261280508497862723897429693287392999197759274436617908935137398898679247186618674395895051550068818857264275808891568063361257320656703309595335079031161192839115556484173012395693363901345019035464547230518928366060942399507006104381480282365640316751510584484954088398517957991703500857044135697790202775798073204781989718851944718849989151922377668511919750186769667824539664236922414116912818639624704712683737063440139423422198213366305929141190277858472176715549738243594573497148181217325076440041841559699384493229883536998512187745348713188119144565404316559631152013035545469535753537033859643472552399117396542821075044156898451874819357408841104074040000774966788433551810684014612612430941514581994712970109451459563064142897176157731195646350868557906302239397797661457255489449587626820888407906845852748506855089958041446536511255902048046544539543811186518351178289047922054553305006173491696234663800125053652465453355738818163249530127495140129306154323479274373322087934350789914508246533570535680248205746132434791997622167909784912651859168151763484951073783954863511069346819448379487082676702810344062391993825288801755611862328844248162083692204568071122822331041866500850601169461352670087998106298024734078266093703873224793937971530657575434113578015289402340935647318120469501532686367223995141329210965492082401193711729437540203756036719720720108918092025071027295961563516302198718491706268921289546007539067996356396541586175673160269622106033127169678885764992997617122747929184267527493794342311425184271542719547422095350553770301639033904555395891344653107180034803673682973534416673000548109187530213658088034008812679966224905896271608829954812569200362233319959631209596556606114611639325976903005336911604678434746753210481968804881638456254915817519990378496315314756225015488876289478963893615122058796731586215328679118384256618300673887984797555598095549122772455348617327702591138382745833456327608943635379729554570237148300490610147830835779102306565338257252280727939745487526525043726779551715966009402829728653092877851077551065163396507656007260877641197177325377088835785663775339716983366368473480552310578393378372137538541828626221353643684837674154583686394934593613427780074774809028822614497940535920809454825770687697256448361321918562831877453034995686717837897863502282879040200424376939779792886142365517957268868475719147197081495715542609604941998476229750340366700100454589436916330011982867132667055699790263944254199944170869136672762740745141769294635697478756557135293820344469058810206434161788075815354108440213435872947508836694932058630263410768547456114193610677797092058980345712106756585143794765495209396952107243586250029782508999714665705760381010196503636453529624373479187414317453617618565097155022511390373706591918913811538433469036230823271318175369384657122281022446541605023675461984894505552570212184699767230997344804813056354251120628789309160310211345884501593465025711902832329963366316258336031808317894330113585143868431337322212696409469972766509695515589894196011719507724811514125928239677510814360576790930502725534460053525811809900484741582600217598302695065701513827991291591780112435841181565314920235891214491606025599342279518580365892216318520819799372921696043426807811737478729005718799840243913399630733416656998873307889660485567069371231596650631434295634072323986289396319454529094039132158032858399208089780410185680889896415895225917675517206038390773456956800864733354353603007899556538748687613948377146651634974531507435591091652070645470363053689610206835916295250403072210722894288854611539183124236176873576263457008961862978564145701108747089087263264826069455661341245198936481504806981784465259558502297986927908456336828274082808962649991419530450740304716772436091934787285215338918646995283432005165564760984243779198392299728778015819553565223758736486666902243869647656350101758452063611233578690010822329919109441236518642289956675593869371458147230453218885198166474923126958089924710048333759639271868377940008206253623291027138245708634518450042050293582008005064722327300590362306120331783269404342559162327588040487969862342586490961400638510179998188630677200103136874576715299831795430658864076206321194659136885941373154947530317269806416379164357957439845193124640823282284816826983504691237933080973571852517862326957541525275171682644039342973629805695164143076115292493197846887450119171104773390707518909487277080982881073501875533794670604653527960229171776864237040561244418068218053608985949620943264254681664603136857046517961671468155603708466300650889331988476033939910188406198517579953379783840845057949619503012605279288293218798761062832781882780141534631494411164234951644968652856138617614399730984539965836265722791022094109362534130036960466317381970422584940307518847605068936591764304858778040008701204222144880352297782162245831502508934499763179471464614082582388912077720608091106733219087239321418990760697615594669695864070204586692907537203646697265858896035979647781669003214192409961546116983539269605649974877611819899665294038277261672935738835581526975492860323125890741999346928562352551549282509013405795979967319596944285071936557544591091894103180716645590680900087365378662071449433779631446823941945106641481199083610734484370032272187124583225088931844695998986504664963378617726811734006746083558868410179033713287266064732510960139947344843379100330312060227441874398246369558523582366493067162154475073739940718989213559078898088569471667216454314513650337319896983108501412716446600819019499228849897209862222248024827996589992763006586808014085145525522439765703502638871127031454512525844026592252268734457780536887759244127021311137543883148937666034713604710372331214367720590271018385507054211293237213269693538772365935531355672789558867501256519514925866976712045275645917271926302692949506375397104485812379801670646159163565584044942793306957888501362912874260804439723686471001054243372205532208968940805965187026142177917820867936779811824248587978850857423754055911712497986061985939066706983405235805097489512079007361634216815534169717767199368481768867739548318490543492815544157709876806383561879982525560119404910203870990701552984064658270459949665726745636860810700614171262648594832252180777323622445379986713555183270810427527402842157199393221162771544498097454386973929986175288850108252324786310558827989950083237129615454479651761779232932963814067462682105134581420777783998389431083749744742857453347145540746142275967876225806703069757433563120551321868668530880938319042614934434741588018789908764459552563599819176649916839031880300411516183441625651041168616576271046583846561658866348923436078348658017484500483702185938684904448023454349260819117512041877613651654678145741611917418305254765021554130953934379650624347004454058673181941772627210917537482438263319042805316179082390823777965677009367010072561300590088622560522545041990724156930911728045141739897032169101854257604759982936628275745443709758762641703097320802948646174077074450761331139420931118248871364122853053294396112554203543676387125307026249125622897716450058486695218281886371311779846139915516559538366241653147382879887466440314562078857109709467787419214530036179381637923344399575927944668943051027691752819020131248720147535756585967207379647126853168908919524519658267768914917201822095352812926809558156984322941940712538266972554245413785177796384829641503479914484775692305755345547313189113046860168007375628616653129751671652697067242057646646984579881352807568707596080363040537305774276927160374801242089218413773514789960234890226546415842844270723545252418445648286124363239846408414537821126804921136575472638637731244922707960464726879649786852882808504724874254465081128766542512826793415525514228034385521210694911986201530151973053328596424678207060455818969247570796605689715823006395155966342424951023700063555803481064081525008486763530679857735082257380260389546040002096851403343384998663392213573565473931878719758609603191196733715227708781670113213773744321253971394811149241047962056977518803958263642148953378518911501111261173992364453983613155096369096987972247722861630225088646902914074262062707188626498217258506853001258567386458091309340132291217684661320850744270417583533501975190002405687784107099630722870932502109325405315686465365606587057988574997115253082734487885094577124834566628784757800542623110871723462835608103564865560008078291011233077218625860640473717626475663747882122537849614972692919851173891676879374709132315102940343906722574213126237877406111949705270555368889650782798812248991955353960152849522065820799392338421405139670100363439989267412393163468376673199089960024964323386902595786848004183217654919844149111419758541373854372824308804394152761331688157046131493469857955983870341638211600935304553275616343630985361557506576048215191268187350928863445531910402365028306856860142213552870877693161066988626112237127781710583335684340960657091298735317369118097393522264676862175868513747098863135536570562718857366680796955202748024883235056704326435755779496069406767519524982016161200574377537849914218691870325754604981797739580252031952539496698428711636145735225573234096992861246944334781078459927510015989405356028746810729077346693871614435491773879492865337018271503148222120717333972612524130969766340009770257802155939698960091455170522936104148935434476167693389498554726110117659648758997299836330089914735274062367590537024709626675197469547758128403009537143050636159445726943966406199405409277152654592270102185092672399476811515556546238245325356242258392838474209505372687567992541443814356661215234739102630500396052025787731888672480650907104938720851873126530917838635742356238853013391148062687111298690982184396010041021230356696898429550288973459789016930916915123482926970707568995912490900572123508434892574384101453331452478477762959873854871373911198741703524574350933324028894667915899590593115100594184868788443464665750599336568205212074593719600646138818723857840872691081401042337954545257133630140427894599983141418745821708987110064953891094459407343343670065947283585992066477355828014831294015902257376008637979300724425388361618057199061037640402685704841704805735694904163051126692165482060427614120435719076081232847478848330110320249242906372485742285200542446522223988510921753364196509616236666967283394293230209607053494131148955120340451491145494952772791997067314752728075887931593039969538694922513005780340462636639365341333615166753359643930645657309351469328459091412790265718834665996623688578013140433023990797481942408851841597736427930853048150850161949918952357911699320564230885419831729407012843403604862064070055949841494241584163913040607977800267707109795191031274677789524669445436563551696390926133778370571953484070969458075822752081002370791099240963207481615998718888176629001520850600357287763092800963915976767428748734825375661878899767558661984321397744520626951129447194463437031185024156489130359076789258794575598995722889479664162623216753258069431447448642856832580533716341329809838846445425902607941734826637011438035276716102791345629336429785153279764611674965878092357787035091563273577673592027318877011618050738463102463654794986723844479535357868468738018193869810693831831296071756916092298265526323533106980468452279605136571932461080157845147314741289913973799900392522409405172992188846828798629237450815096461912426891511592608927883185088029620102464700458765910063849927950730310551282909575170444906165038301251925864294821481613072932422078896686720010603759395975947609645004297935213393301128416144396909442407979826448511213019151694254544952355410206201718869291113162107822978469501314293462484332202201098722205947911107367214340248518849246014842857591934857662772648271148754980517787638628124435737271119110293563504366962669238024245579689640673760031387710008464021073543061328665236949910911705405118074455988426789002710802376900237229145172807622989176354889263790446067137393173454499892281299355434889794861331477414116644873971778507848210266907512087339157076079935894760025011869165868022474313234033421280603584230753010806750266605604027326556252448233523150640885968149088006902637119084392960399715594335384240484471823380787904986790222892929472678631427847503960404894543454808805539172048318493396335278439003763175167862834811693511021675351503975900079036374630775935240854653379730260836615309308955500157743494971812658833551770547772286679566756404777969111970673173870534781492683124257747292301087864675809762303137060741481344093652510204421332447727707109655155104754869972766753540447722529096649586697840763583017652758168226535483901172917203477604906109832630271846671819771335450333261246465001555087447153622412987470021724094613029281673126982214682899329814730561663707467111853987923307985730893576609202720428876676476079099010650030957881177011659499031338815476457165380984978157813701511514771719252045639512602054356118972634978110552544950306933285604621285784223716855693911303317618443989943139910220123887136747165164479896871188319553873294795720279361789081134298481815747727945581677248870360468152456172692426498117975804428660903139521426357993779463177881060726734771461092066151890282212933897692514500489027587466145777877152969976800097672647825569350879873346351102060051826508574183519882143831410797456129201852659776679808079073293945164543288417103180112123151040903854381930798456682381788499875865911992922783579439403505765392554844118878016577645131086625744506532714708592497668273728153638725357422188076213724181632197373983633339223976659589833492371247318926207318261444507078708683505214803934633202229859772162834331231285058965024206048237648146128720370941767962037377729882822490610814439982800703677017209031029457494658707664255744901323468859416771924939258131032756624938840112290031072904177256014904718949773158426766086898603413996252266344556792591974153918860228649212295930169046995779557230417585256870090916134044664051918155743839332387171141434010160418953850894381877296027787267247448524164855824460438568814977319132434400766633636609003185747108237016792568727242395032702259985487976284987208282482136722489867877057608924737041062676009998366311702449899967209362048346194429124141563425770773202929513476354411380027269638344701612417379875515828368174859850865486068612702160083190571449188895202782811739337625589330291937400302245445059542934497951029711607609241656263332055030694959972941172187493149546841501776888825065567935276123857853119655495860124941147716315714735248702152776700232795401991308327350864978913990935979200861334001173155221788842279651073220645776370518209634078049802220782242518753929844651438516888585373362952383384599483395140896663319738339116294793892052079181783081362393920308215200104653301492937931924355071665526483957699677180864951389177794683865497052642637829169729358762908383106090544173095273492439892296714562234886737508190712396279405672389469029507945435375200315258418850901949100180387389052353253935031635801145540862582426540719084591447322273966562912141171942825164965766963389990769821712388775271447578744079137962719806090940403961780797935786002351299137443940918921441953875076297376475216895200950172460070831987309031730153051156836729994862790684595874566132064605083754255311049805554413792623563188505312973672579623053230189558245729653063115379754765407585036851668132894434107366561705409606468609679438265690517916343383196328449829808492149634236126012515854586262681943861125222683479093342383396940160075797868883800972519540982041623321919924587026896680368431343724577711710192633420536287979614273539263556645910296868800888587915007747618490051241745284850560305099957214320098123221251031016799455048054101705940616920828492471202935531872647229557516577558773218508949255315279370790024218520481406457180370889788303662157861551802268234280757963587339757678675775810162629815864317864033911357970614925807676580366190919020408362059546724848984028269602953171550426195029685950899717016737105619392137076973068593343933613705424831300849639595950696439344330498569290326840660454826668320823330844434524034745540721174037779946365835307660496108780443174251815108710857173461968658188535678303604552218716015561121271002643640487906420936209880002884273824820099290497537158777602012323216732011009210776978777091247250997199580612185589080774461386328763949139985301266175647496298722717002051420894741217227815809481027584025777830542602514807298463416251646864000044082530084321793462012668561587798324603352918032382889845254048013268407389777581479516076900969365030525366240644841315795943966339490558000089201932400954842609838112863522064287101466018279170979848948097143849553235618871442413431369003945053548258805989606786008356163528535025857190178495256829090327376991547521546480118321245498083460306506937087163075008358760448007196389273275513688416624185194831929430259940147176827373874479461076708633463871562086767898316437438739750171930061133587729182616192104937234437967789252836018945532575773688868630468646247568785946230687177258864396646296298426464993629110943173194878824407524765100965937800294542430705050789225170515748434220251130591962810647258835612340475877163279567807614189487069477777951725923709493382287918474518912015109238613121267342357495836078114192964627042034932748488368726563575944082118362764289355598832989057537127376242197273713632861197809307200461852991547955617859913631684810059400387931678596749503648420885535849696944631854231053947876131846146818437158878722198714318053411907640255149496203808403525010090869592694920448209853515951476029045065061624875353855171797893573474554270824915070471861078147218107087550493091559527341474210829355193082973294646576716580083001921617832520770617102989195150311883815141174841083706087001248924199270151323422135358068589530161168284743301349056025699554971250384223834435473035420402021673346438785701457289526080852295152314194049813571908755969095253117775667582280544987078479001543760355097486444833132728358315717688509610260698917973006583744006181911214559999352716461470534101196440845436616093946627746344754712621199737714587878871043403526248162984915573131020509659371306090266643439626229891173937254754844020808388774310135602791454264449070922474618609729234610554598336566231130288737355980070912464883667041647279592227675175013714794684989271114585845988241844331249423136999205847164854625853677373099111671934604156196565576645490890892305847536248120724477360532160555411881359444249617930268310541749279053708989786737393491278499816155897920181667918995897429138805480915313934172612850873283625804701496582940089014575463836415668243380525627465965819124681834428234524724870949662097626391148043993329458661828686476805102349503934094917862480115616936428423442146869903019319839829464475864152532774539874956531597195030939067108277234620057369115607070053570686641276125001309478901305651792783802380993327158532696287674362933178636659827285296226248386002871281531329607718955285408747798859587478373460506164820655343539374462072425959044589308490455766725757211215094391881044805914560719011113815410943204901107596920783944434259993779069887738790857438308067852550698880220831456686613808265553781945311409916540093707883716071387062558148693046757488509973002065616613118204667255168258215972489675847548676551496594042848960674412885568515831022053284703856859539773615895693936116661645570889127982418648961525747485048029780862739025653190338569632331844549508638894752723728120537417218362711136469693129386319227585495346853109843459587623595005948324431443857670799889365929130690318600911108297631567470275746848860891758214162264694862052213482483833408680702589205973208029206506592226922430070764191998806359735738191864108941289455398572949837011236119707013954244242347682366754752901346926610633677091660280297205226847583028598195929087305574967758268564048729809657193138239419077418333724806370199577403806205609067187591147743295703928026278549366835232868224778109975091163460477990920399487674989136756444743333310227199529018100974150667380750816317194532214667802231679693382760439714199304080844863134632862956232814358289661097070533287305908186594854706494612552064656818773850895405483181469163519444011411819507158714068327960189471364806619572671215509535561092793922943868138927247664361337381831411221404765377813988000928969375962692381271722234223066265484135216280474150343190112031448850415005502485957992824985657752075893936913440581250714220397534038952245937980148864622642975213807425479590313369594557208635758585398423865135266937387415874451321848621561905459992070799807867688768426949133595675760282270098744212771438192712936980702772386278982396630595606236271153512488442783370848206097164442667765776433861113778604543802037259339614227082069066951229677278685032967058756998870201088196861958059976961310499669247673944564268793831360040807147607339042243496897195548928573260081503802169678311086105529472706852237550711448591160572271684917847966220208003507234379504063946917299394207672784037300639961321494782536872439286187031533140681514414195617952045428357752003471934412406791604243785348993749788400484698543703030053336823619777166399369384391215576415984147502012060436209442104006596722614484596050469524939977094727833839602202363535809562218656930177993801959907418635454893478236314853405582412278659796330019425220974536740757675229378274953430122465863258770360529896010059776631373355955535711341543519018530122483387405829043529716147016418852313392362975996295227187863715200436894285791590580893249256529280121413420144357313027035511954807780144251572895124580404847177975697732379825041411895459431181197098020088429178529363845398229580760132907756356920668112207561525057661559087512029326054891651066814461621054703291735531411821431026417332206517159741357099501016619270116153691113466887789307699547063321614166907230050192285262499910523253455610324272592649214570145648483776924370638602653809986085294747655112893469122078612291450941677022849698582444531867796099451999090665049273174518357023138198380516298527252626622775826640705305952403678390433952673735011360485286191663431697554310535163385344447608230574962917402266016564349648119045738471151425951981976094321591417499392027568704341952035573589627691602106735958810764957232992127762946427158512485800750238977347244767288369146737991359650729081521939760965836714965298952955283320476581827601308222951953530267868357630985466993306871211706148721816583831581665472532744608354512037180119137944755628847891327020053138635770048924076736705495472456742900382093990412227746372340520916656090285202951355958527707513990343249037351920154109267330113708179550416493159790448733505710556928803485058124874844246348035559366681899218487006518224692481755101000294811383158871930930570173419455294805922441122052781857460193202702460421717811357992973038808851260472658746073602140335058482231400240533865237736386653645407344713919009450728175713661482083601599253799828787756466014882988750842725451065390143643081245563073070429969495531996958593059582758696944815447729110929785803830955453319753642294567321127758176723690133865519821786859688553007378069077895709049524007876794122743997243818609059582861597503063641631611089778847359096219018339767795127796144043820796833594989228390332887205513565890608061408303867641573554767649256971653121870553539067309682159084478515657244981387476150231788662766226634834024109041207704427748988968129024434198083301399344866314280639581044826738177504902283975606324492836280728652017433854522802328130310737360318710008031216372125081969581530896188663722934037696183322229351675912239209708416743329601792686399156690558223100509627990217564747755396704264203472264899526550972984918894205961499508685613925355676366694104398534427319317936213764795818232902903558066395778415873271485357559340830844138427838138049578146950333256242983326380824919868388988485312192025456516866440737496904308479124567824117283672410893543935340140724177666976334061123427579465885274009483335802146988600874265130082644633784810874328072477440805800771033994074132658263242096895698752211676164022344373385406661726960688567971725339709934266745515809364718424385406990531058342598906227425594528776578780801150720179782031675498563955343225802069112259438602820721244552350924826086105185362983076659723315649878139579099192812424537841392348601878608641386501894966704730321507340904982861294086584530580898421616415043551542956870203981083818278749061425576036320901381688344373118844318911876845075556798120297416875934426616020750445373521080882392823057663176537895181633519144540782984984383855519594029442774955193241928141794877053741993391522800431501740704009343609174879575468534540727683368391954347330001984959243434916235832313485036894343099276885675178050143743713416530911567240387736363024868951140128110943921719536028808833722536669525306914488027389836415730893854831565958374834175570718378267797238130643858469711307200885454788546367848834377580814418794687536856588684138637450498392946505141338120975076364309083025238117927511397479831018505012725399160251160514956591980683999513976753961192395627870663938498606187565144797088068658834054639369081858227170944161001998879931717433698722326301482088132667851684017192381872933155270057044665049168500440560084201035060068319712345222197719670770732039949039284081394436660012998814592654288940505647263573178375582240061107071322254149301661886242899211219593345780266302830948086961424056928425202247949009636127865972485032324039778577323701573555009113795935075473863125583646259538234099837651068694431045382728631334618311031007050864478558195807380675819103363889991016996451682327618760424569657819427494298069725096249446269124576812792453294091494319116480773115208585405767280658951030060813464059869521921105146601188435277240090654544970073089903849254731872968653144655766682357160428371115589993361093128388234390583884431409288535202879244753080660906400488546044666742775701945658271588168955183648660772328074059797464465423838407071257204601273956168740342244612087240852000978653990477149330386324626300256412402663936597028013391497003371098601390311239627157114117466134623338378017952590587699536613591882546439490519125383107495383577911941804476604104740389758450143294877891829051255828555945088292513378113076466279564094755135477877868311562489674591186474077250451494567633773139044984040236211633167097985462502192256409689026613200773614336703394887255536923020457598141034769514051132520723587371701361372857495552929656204897469331714701074643533510760823884286877337189028514963638107098694300119654991904378951959196016415119547124039943588607424141936704994274764185338068285188976783735351477190199059366045023890066065125901878448269927472784302042552839167901138482699590912354881702961449278641842707507265112300044016493854739819563059981063532566935062396238266540779979181271893823970433722558340941172593519400498457854345962900719327638707231158532487678034014585801626079527179546528222006170285426463585319441009890721741167112807084994698078528492170508856404874209548173696345275527596844887823890162010872271692790350605635159571535239452759479772233926063566020158431278351167962122240202118421776384173086813248111988839002456701290937913806115038219074356865699817564721814925263366444111758785983326562361314705240942577458849016446082501132918428423050276586185664091007201799132354853280942665466724882761720140931386637808133946547337725663228636151132585289793202991833626592444959428689996990123525210019318588396929341188313350205746487372251546192049041298873307911298491295497208639207315869710622751177855507548421019756109204989161192718219358707895691056005798555138199332304149217272437153592408546006973524442632473629578305651120611638190151194826957832688811276495398262659451653766817343557616540757387179328659666827853838585379784770716312124239555329134801269057217079283531572370793065125396863772230599626435668521501663916023572071250350817523879764996178115670894357032506802407962626538770145036751017176987793708348042990247087921453716315071698880114103200954366959341367594071983045020974270230531290769154666544928224296037654687456325412239610937604362638661903486367572047500637733477772669569665591717088646885545414741634276711165883892150555436598261268742425582995695293317294332206829921580336415620525640382992613894184485728657187495138476685998718179570577928903396849657586890053062555166379155167493811915687500945482800076757786811682390017237266860408086611980929890773418112508622115768184020493996111903574066456186441399511017904402700245646373280154964198250382569750081924493548731933077457213190223107180670558293073060768911386619985367588518353522415035150559727377594021002095507189038543901762337615151924086550692876905713299071491307612574027767751529645244783514030565226749579277980408138946428019198995515538644072471760042419326457375443213342257709524991299253793012706698551773452511280757562041487919504600736712340437843218792899567091139684956287841564929286869688248927624895123363508867896168404954063570256502665784532059444017575054582623211106519034954453435378427493250571753658666836929034456881831676666071153777717247766990589703427416090545239824925391274689506424854940103529523073683102436681200877001620769811362098776399950142447979609930610956561243521979754826002759377867493504807700454648241832975614609164940553564955548512202612258571995064573215821823909907960721293942243388097731238400185442779052504662295476166504188733189460999440581919472338474378202485095005971288244465055220076322518677673245566876332075240486871630840096004240141610575746625515460897927160745930756415846660907181411896920274490212761976853507776873861775994636046432660137710494083031311979825824051418923490029586664303010855629393955824623991013453303295088518198525400387190367635241145170995536133179351213632976317450325636592863885194395590068266652780176507305191466890899671002083905000129565428995275364286652558921684526372532948151237258382073148759338002563981055827461633360742945664450834952769627034639865542729295859487136227292450803862821610781869786889097808154399260532767735371386026862738842529130491243465681730546146216952288352634939025685708271789118795487221398840448770447971777594712533643780091346715828883146449950409790513375322997662340706983420512195407918397967369350549039026890114666423039011162213064315504788454673672008846901574636046238119904952438278977351133300362971923886365644371186382955321812236532126581269788340365066937657706870233261698840913921430401710041968235174237851355191373944652949800037663197751827593187405440489681621171299535337859955885366131382711022530606836393558484498189992215395794630501683135155176063966498367168069057492857415659468247677973665448403560498850855555107253646722055959209856527861681243251411119951538999993989042015155348258836831177519860257217760985815212612003933938336647340367201350205462398125035266237081325363896233854782728135442129678156207711427517007538805613801569515345523445862298970123474264418256864442717547818441487994937775738725284198463421816686549884962634369661417082411378445427351335322733142323394505144518296862963303397678012423244328992805993085381903489271732190138859263962321513183883675279258758683756404413982608876489478690674991425889419949419497270359060336436788820127321670220944592469688556474449580534416781964149067584628630199733811043452769747202839117017356860393213436542439266012945695756328154556539626956595590028995474701284026821352087552662144484900816438150489188555642994282885082469296278644698142823869357922827975172665410677186741988950251256868706287830236791561510847763894258884384652426664832375403521797900786928573988010920280420915182656170740697350994303544751029634598731710168359296465374260646252773407227966539529707849723612567731551376617411700853563374094216779094992995575782486235477927129041098788709569683825004846046821615350662007233248794780457079782590668941380260787541099956654377458512686498255423778871311985443188384662719338304149290118495613076814385682235708989459266223719490834088159524076394252766546906631794240573027596004830998789758133665515975762961186577735028169888856807656101699897658907528544821754433935418000894578516146001640756093618151859990778983263745131572405031106739223506625214021236800159032567360605866809243808261299056666057085616814836737303679433218689182710455146919135509866876439045974666244463758408470655056228733405040662987245734319081249151176738436557905999886043119158856762855433887515950043521921182099516986613471519135456470557913231715258066693460304612668519345821686329784241949023154139485192875251803674506572306116194502534826257740861075230604223415031754690688959419895379756313811023776152199243878144597427488357026945856707871942516603322356645416609780523527459376322459782902064557496528436663767032559971982176782416318079337368628132245976470128805848087573721873851822075928551845124836827689409807787721991204964611848734131255976310044211138086705806456938786759725039014554890835425167370780974427607252909393888012284107774529496353316493474059512753644852766180944667623158768779287283635272521256820015619559245325938912223815895809717874338632775871893546717924096211199781664288053761980697710360272071571051098448476369791874966680086805787580208364184125467046312651789063948048376045079691859177719716470705138636266181895498671507791202993816826280618217260252223442327180893276536156348758311225860347118344719154399613698372244317925425863222002302403004233885433400821613938836790301365841868110031896876920824886188017835440887560647705867849103111842494663750971375778827853837515596936892034180515036813239639639629532897197696053376364962256025733736865137004703508126745770909908929427371513293072560322578123391566249500758022423606963976201973682142508364844723677461225602117853476032553635300660048067214498603827513446466319709631122233705779862380145561814151728969484833338806787191613604213617914893975360437728269393486624980542369882534711809177355507405222636090762978928108302306604168942113157543485465559004179365784923944163589566574200547057748362755168436420204022921553240754877530538496331789899092249624535586003989646749774249545276842831816274738448072301192512162445265812342107447960209198862056162560322398727355854514276705957594531322277259210557495875591950380590349080976111380777715710475837408119427663710329500889464551288659053952085512899114080277481205661360801892719360251364681760548583823717950253488234824689023395008198170261743043243599319366262602536556259798412303814628371175745043468243103411942474313522615390494288197353460878240054049460384739794778529854944755697492568583394585465037599808579837416628407853624467035430536407951224867341581158749843335605613777987259440811344476239638773934781538448551981663056036187263330457134010761167792936523267939968096749619842053816966759843759465843433244362171439959318649264600515546187417612905974502495309454250802301132657404620000663963699677147325065137028156954635457651073118603197452880514998140609948033109037855024621293242825485407647106216313357715182003464205545208228652351262255214490808067543393851135481453732090702877404888413583323675397072195997755337129932157245530316310692781889428383501160726334140721347291670176697598920319814951314386114360690156081462882142857041916890282709017770701783243471770923231114966199182070136821867494748109812687526265992205143284265210262269553740252899295511417843367629441024134149437480489621992514415814814324187098312406146426140227793179390407704723978620326776627407675166137822449680365005086637504188792550778956156137103861153213245693296414265098407618247145937511304430657166471464648935599027015998069897038022156724586113579128537055653647248326179679804805711427301883552028084898434644472167448866333597486956588772465627745608526446540827725606336987199517602574076576746882632973861968419459553123447714101286667885043983813683877101387171028316368853842260868873676477923173820355938340675899019127298291410473177595776539427512875960403292614563953021949636502847600346977857634608699439839212093627914821010070285384073473727255085551116962144669840964978662792090839403434305899968246149990853623613660013132238414361474166197454810554513540290282383118584429508134611070862908912958537246345809147371285519741430249639291566764058832355177255187427881807904340694139953168265313861139122588615626001740898453916369786383056508074190187631246564889018968319096886244092325200342795823449558313644796818662015865944875588001310482883290451957166013534976569750448727738528232073363766129849865811452493057261212228961967545182568252652032822009879868777583926030319461577634414967649193897298455665769621880525919904677404999257986452724612800179494552324937495545310645444361364352818201273122009351844345433730197978142908143098956708941389680828061130538908373557135770845371473349692992521056833094853438343080803896214878447379576091409467491992549546668353059505534558688473450597288586194606574767334890404701836880101641590410443580453558442895780814495308777416485034208123955014267829947596704675151257142420495870102287528610025650728072831858363994994406852342678057060475588985792696534345068558871046217258964529034995892024047229934722901329050857364268119242361594037918410988078851116624602211170380255459861012448629104061309894250810483136257782534225872980424384500558788820956475538912367089580867079488140546226371517503084334937250980967524277885373708131110414607395053802681626656923200511551330535324876328654446937493871866827336354579253356066342000311501998807054756955455451114784936788567978135467532861449577706091224465970038742866528239266217531236872784256326230070430507941488314668039112907134467575155117750848382169986110198249714428431352510671961109694545424837830153168727080261959894061684109833880962281408805982707513752370721198687442685880551307844042817365778645752188782025526115192173756425118850029008581114785473934233091825397258811472473420857024137820135675545701967056655609752753638035966200299636437873658095031533247361766869331006811400546742190677952328658205111121720722501773228743797070772404344481077597221899666299738956726794187224791454566589139854658247689003830152661293978228574554730158431219934645387982554197546683185326966137293708112074620404090665693843231709360903590305167416298449839831279457074581262827988151910755743631961993625447298346005657094405921040212637074419776423875746456758258218889443209913688986887416426543055056139275851421361619725006670365164796701995929902861371192684802721902900718864569904305597107849951140874940354691591673819946989516475221337615727286343801479350599197460911833488709774833655728089689712672444997274712256174461943013224249489384680178321457780226101645866073724123196362718858527711295404883326455885915327401371486957545086417018832207493923381038470424577802174759406519533600502384156988153738141115254419423059704956794711203072510901701633182127874601045516114481417519825310701416381553962544067842980932385181911716567005001932676832773996469937184612341581303497246768578734411456269811136851504729074550470611849378666827234519378470149576670493846306688989550099484207004970814685347065348133217224507916857344655099019357717422456614243128444216609016417524932911864081976481958260552235560315868248536179840327460659192137034775905384020505470900343102845627076991340615259058467848058421089069643741293927642181901419346577990589643655966687623441170708421562121617428405687132427946786359439946107786401052641693829548617942390255637178830909292547978404070405435707870550526580088568206408635519083445702271848538390244056103161326753830046137025771855577274841961349359604741328451554825921901665336075882361353371565786870281711030064456210002213151910677568653189372017109527777106670875918239875129930837263065075402143247631327385472806139185280393566204225340957875561539089303918257877570147801465407557295187499403842777673122294369521589510980757662177595473618997037175334991618153236202931387510994522576029947003210460737837564559220891339328995087730263034257854477343037612213850059767019234964933104310067331678202194709396641983928183138404065276845715731250610928945040076111824384091218820107701755704975086076470254782098218915490149141164543192545256454858698420183595603177759861580019601067065609120135359389232845177816578663808668816327199461975388648103974724101912564057615774143405180217012374290394205392084784825141843236907657951427235462742722030329378867121827032980097981187540777814141281488197392166518025636497826862339085521558840390805178047717985401833493630571759842072775955351686834359662109787888012307755478726365310261063543510434642250105078238890711034349682843204404535476983325417728663690090681154118980675128801879926537397917455807814411312539622310157445381700117521443381882691595551801534372278297625011425219521795457090457018369799311007075336029804184776539893721251474009751468388687000432454118272148417212170501355014665018348806449382746066332896257825653700060421628358086755283280082561243702691078186944295118574047351123894685155457370119547191144571447585650061777200553389364866919781882841023410803752208868591676255414175781116815510479040098498218367630023080435972728310000168363968013518246902043499743141635586136273462358116110753806490187333714336162161502092072685931337835123529710966484565372920825516035179861274429120290193814325137452810164732405767207000286125853612729254721743772124192239519695952335496986537636171627753141668779198383528258057121274580810603079049037073825087701357229409710362599531594532881503315263579617714141028623972402916511203587295829235573757756889456113778407647501310473182651411450915120595039882340380547504379582653582767486200649483569500434036149599687075074867344804956635606937636554088908958031629554540389942932479056860516709056878450005030830830262888624866723922245909816177872306831185814091729451842729828844069833255566824975265194325164397867171910151906482048901049584527553929811061396488053974631199847790996996786027793411889467390580157411237896809755644583778325555052072780966316646072461046227514675128163042422310335899131301642940788875711078725281105841704239480806781368786353971016001696828531245131186114608183276556744017764125349321292372316900878778573476738159337685041703712263930593818192459239394065031765010788488439410753713744562430674579870082483451515273607319565505658172711468056118295708858351006962807877797874130853447874427076090611787438104031255739342829489901501259262542728757125260707635595190720654015746594987974537768471553975603255729322124110213813398540109029048791263421044837890407221486286368953330130059585029800836071528027140561352498621114907146136895813550546170362910368227941933733289700545468872683459471283994957030303920896969192361638682280419123923268893572602082986725811395233478909493527586208301244794603543284906162335250571675215428031145294031981431668217377347674087110891466647388054436149354943859561986488437279818730621239221738253293100422536838908257906681660623967407606987348871607882466906344004400283639875484337337366809540708912555592938483143188313999845509912262666474359948837232501954346949972754798958538215160434821220000852684473828806969173778346440303902320513851387497803462690968300249050206706602819429545817580476297088989776197630577805387680929879263007250787384779103927899593349533641515300104949936008791477575453128893235515912771514422080964718295019553003645164765967107642327463148149984079336930389265754569109501471740637002747088909739219560615695175455824011994986547600403059183143607723163661694570147147542923327802431686393787877939425789550514832332679787846484090598199462140326839531262784670179917015177826782437586055782542829320554577796710383431422248969824444116833061212166675118127965190708359432579051771992941124919098157803314853857639514823694563353528736463284831686149951284306411103031594891023533981456556959680044269099003467341424965467969290915310349566242787831279345193625400519988620795987526920523978738444824608687226086407205860521936109775523636682013756877675540533581235544285867593646671300283515392676139804456719148915271723293836721082109204367876959906017452985955804224791919104903092009833940101197010724506090670876934683987954497098664787284520627558400098582314642978015727026400701959992943553940696190905146385224299896205459114114425046949637903358940502878670208566750107146321467360169704686456452806389929665860651116896952857092696163148461740170512852191024331868279859601557031945129576620839333819568402916678762582488000799296389237137846514626166365332368909922343147291990640699873080091841820185202235382142912397155734768972360252698040714737046155529267397270012414457864314420599657349365494591720880140287611206401963381465446206994289081694069916419297567314637211304854932002002740345627785658258474142578667740168744320520653455556148797165530841422194913901333730622589576291074817759244186364278549925865615495162567068957710551009746309236800541688648647772726247910349034805615583218481310278927194187671577775496429115226239514323037026224948117785874416606766521248816221230251133851207507601467705727583517417745321910628839478766355869594405333621225744073931370050387895020100488692165642456388976140859000766041975777265803364182290650430649772179184617213344969908406529988183635446660451205910338541971714912908169823769353207308621946418189362798564585365634565302972167553456876906019811393896856016399862082362595375787055677067382116106515202720839206693328700130559581020366657044195303749087944197142080488453937154305724651540389643089463603759290521778539866184638785870927877435110015525951659658210614245524967471884479372003043080408625647609685594369683280699848308024412488306083678462762304001587790878925982427979180070745896833900803420818832416458069729827957895973339428824803347536583500889353701322013446681660951971391093347191170122016581518305827808644259813659187181639930209491386872941248665140895091020958591069577917040220381063752510998668671560944209991832640726359952814058859007988216301329736214885588382693351736803882014060779684360834662238311899703160070838038324785598015587329759603135749824552344574736353538306661272417684826275026029562497466154962393922793450653833874647818880392422967478359196613282336583107887006400853834131612629299964606187725081060456405079766258609736632172492937874067073289608155250659489219792740954148369119704741805311302300006040816108283433012283942090409226688071072664189692825509272307554874111155408980867347466785076099840445108142486240686763097457109933122312578173823860811897186643593067049774249317035133681667977951122244271873191687673141144214953008570144764131884729075492735020604214761697749632195053695465305907464424740897319449430622894509175818628528659636934725866524709183578191120748551889702913303456465902330572214364303010447583519797402047611355190795583940614636057105315308851981324204511199642611460181263583812441532397799387031029398388115080929579991118556718808528407400700746573985805994949101743786906492474025269938032369320461380580654085458941010269683661730703684804671115808904180516866512514270706080963839600559363699104761764372920509725681873051910538130014513908733890173607687613286555253829049913013208277164832548692280082571477766876110253492085416456663046062570243515911677690775563296163638899035348425777919218334716045861570987806793593608970445126984125642741733205184448130639558504519295433557149515380280600425720801095431272575168940078361510816437978747199554345692138004544788189567100508744689043338156039378228968030319045016291163634148058422645602462293500827952181631591886385562070251986776815172180076347905277531576825441487553736945640025855381697981109091105285602665488916397672163527286404443459123164997245662886061981907897756884940830181632534981394208283849931944164118520448645080207952904568014248668634100061862286177142551381685015282684382321408304023073243105825833350569462640358942231597957347446881842933992879624629937431135733520391966969256949435419756875188204683936576658236488397549607355358036538348538811593004074946410869508674174126161196278080574932438506016992939599479729636346784787017061035826296048227622915603190285077875420160216066952173482193732372577321755283216031093011955775436887603253422894204409390310692408814112879985779170378008174302037652488055469668478185862424317613922198293936661518617363980436211737306584864444901724155637469512408617226401321684367132747439439428396778702087522523923835414655551325833266990984321376422481676061147078371328411856473472985529327659072098690387282047186836980950141792166110005043064910178737981602323051375266304057420639886983733035952389285518335257044208253819285509417530567809511352936738859842058225461256524806686999311971673014397728351450188168317609478147230546069699472782339191565697692382863909950726290053326899278910770898892483741495896961758267477411146519538793464952637525368294624546778471049709824830558023838137397284311352234510753977426464604540615868042680715722042426799194972196402179167233646423060898591989795909102124493228099965054200535929889816493180958924027604813799430495111976084145349678990569350800671333806775265292721953230198714126076262594392746065478298199691907294420129151393435707240769041658332157019817561343793950549660398723141819148304358579184369178533784267872364412898850763148214271818976979447041918479580959448634717063929132229593457546745531804507008980699896933666387185621384175756050832117237353899175240911930553364448153120506481786422109637004691197524360818838039230681386720043863766426073290886420282172426850883697876300154978503033429303245670691556881510137750837358030938414634119378561350931219622039910473716728631776960005849807703778193011523275096129968739780717577165917099807664130889414735419237448603628712875418596012390042864485737407338664935145700848003284790114177464193016290308417919876446757465574272685900921834556494393962090884841413606090702925565329524591290562144628940972402436659174822533053245106054048167372776243775416563615664764573746728870145594124356013846326092560137105824573428623121273918455864741576024238551819027978168076614206472891350395471413161877573356809766656913775140676307421456797376033699391892626237527817056341748666532419482884357501893339089993780269675975186782622625439150402213852157613061744716121540516093875577801643649936584058905679654024951539172300665031421259498575428858601855322618766908140864757494212413133125365244414808286370319849088074127564253685709681883151880263130522497595402554724879858530754142659159039994961164517810142867573427058874325690863342396473952166501836423986620765088347412949766318522478636586987970307562776325526731035178839549325093380123548317078232349883865398532847749996733156232082914333785256766953322206603982853466470415873359877410520687031266910909642069272381375903811478378803115229019300041364244943823418620688063570319769734802854468559269411791601890760859924689893838608488141089211101864803606054322377996214395771666894212518672567002807684146440316861787737669075330194400217643847182307023430780411696800373063036164283262090800386282407254294027199498117329373694441626808735148681795757900399888646700944521025697772890144437191806024099345423719970399574988754343474299136406367707680416395066350762576316499732049531566541204928924062857596737530547248469998622403214576154583870294464159820036805565173263872315857051360733696016696811626293187637382117926148337340044639194474098016755720202307949535474381125879729849526960495402487422521417388656987991392007518490224803252943622587127052828419815063821332380050432505195352673768887958602698459664732154873901616904955469517237861680912535924567575187906684503744500986513502195409940373990433852498893605114807653896458851357140827154518679952469431925867176889510441104303680522406903890817734922307257547266912030272585828887602987536705483214119782329984220221213535784814202310269000721589210085395905937163548882355563823894607414892252430097570595362703019003998762452201945571304706145984695862960665316540950372546405684252081182620959658351661090273493264186848732341002906971722473102000457658766828797204050952786759445666838157191777712800380664651178043605115552151032686334913025586202525130850382216555789916972048876446083241620550802422264502373856009915502357857536056777245710188937781526664166634540348020196076984525285056036524118089880272989514673133425702484338075420327877923378211074066307702569890332930272830057144791184310803610992737714098205535557525619808299389539404219429364046254777408564928361480421482740814609021239185174926323232767066145622001408324406969077586149726582509130542060227794583807699500989098915418299084214550711570153018472721038138951221669824101115591884818462755390717528403180888479767959431664139668190866639893766171845109971037753008451525151838034031885870124254202443176468010735346196482426232875540224194139116158115953508679875937863989872738710004211440178348734664280326974626660300909346658801631609754048690097409995685266494090663776812616617988146782924780819227530234495721171193613247941680061134688846006786500750702768254205585369510569033911537766064290861095976792919374795191522467803254173556833280203085569228504419973385906512818640805669679002244108781550748630535241487907735694103219455524357002432866840873336845283991053154924852083476170609050337628596773574132537311902644804718849568948061933623022665415805648274948318605883996409547718033101988469181440420708386231701833243376715078401162214799416126373281455826933543265672846884955996658505264630383710762408652658906386946429156349526532361272467341775794311558128697042899133572514691581304943057919626258413133669556986935467867617448608007294573722612694341395301045954039022181820104579958415032846860585274839243027180511549712382316641849260354105779178799582497908014548131932674120874578356565673915500084597621360832244009582171144305705162552209638695946888718380007120411167591799605736204380575213219588573585693970160741303127124680947260432644051978789239988863630675258414143472232691719268716610079627205955875687529058956589673059178009852157467365800198119909045233034836080735647680009257256618012956684430611520532285454607655063515825868464827741073689547536915248033825392790629136703132166198901972232124255899516782757164018945727820906299500574292406142301555431794854847085663234279397304671110014562607581647088345606262179902763439943743636707399367957754884754859491681861526185132433398152545963873312939848962979950561297892362964147036738762137447569256243399064090330359677360823960025882844815398617036291622922713611030279823357256598557567281249324031636347121930368371342684447384823839654557233003104820945127096615538404020088569989237929694233617580175262913619676378598991741591520315196480700698589381028552563679449558151033222316254651647998442028898169894457377380289294192563979215756465053197905621295099381478430192093402694933135903012326768242016672542864442962014123803302409977297099009623904040529000794729321095763057519074193188386291906690192793390668775635260743088203070292774313728429597170764103366268009110211450344553905477218768969867862005023066023863724834330225087573867027380392198972818588811919299767783924783356547786307551117354784775722866090063612157857780988275247121296187250169284945505802008365368640901984422230391379182912828696968330023114203059347966986263808327689653047662887496113856702524133332820846174097057158501248112550206889158600346183716810955370663074312263463857901695513670722513870850303068824700074570132199585774481669535718027494350694589523422660603267767922945694996347794786081363688801415011982816351342960808453249135372110403141275224529901549357533302571318480253995853607204485218999378504969917293675660709344219603884608072055031433440055535097529182166545462592027288979094751995310803041084907225016485791652577437589119695111539388565398249490203417162314005349453897750054160990795580229778616772185080394032945606547018916613945715375785743921862168532689553671856822123790598161590993746148076195164213317173322617260846920708170795429324015686870834385162863225715041141364085601339676241567233758892960960780409290315127545003725327480461013338252456660447397269257590357312918339520908653962231551952303712526205227918639724298084531116780158556577429587629075823112676313599984751642728685930227668698622161321441294572824108904465663784704530068704266030359994849277643925487051630667751460909286712178463870141954155438672409674142188715161497581689877809124248102829155534691542860949502660160618631163596098930383634668480851418746047559637531162938512949151403930640724667291510345970514546075288586070115653979645146070187522853955624069169682446923735912072986686883995833524976095700544122051723615885051609262555094076565214335907768222260767189499682147913961262838645813668945741409921532994292998627364719879945571066171706339702818614263787110847874243735787475270165704629504656606374611283831296602950198273019029704413100619336916270593871437386604126575757719639969448694057549709270931397894435913529167016947600652276740629547368165013412889600553669938483521785311423304773712972402746662318866950518434984437972338940870740441070104765198332308327276925938783039360280447862031968707957968980033756789326614799964676667772559724772565190811298750812054440100252484065870611769403058581230741120777517415749032077810299806918540481455536695032682212812841703216250373011056230646977922611481758970556205052738120354485716068936272203368262496678518254989209442792309069007413585894885685857039134416171423459153590087939822646083413677524849953105894763158892104613487758491653232428018078579367953313889473296088059558006520219984908799609661434689459948743362263600179752463254943370035461492127338098790116824399249186856510886703195091617979949147688751802019769099561807742157523312670007166261182400524815898352699779184248395225797684138722441565995424910871281784141482507921307187351346753620559615893026394775650383971247429311460583905813483104119486883142238205905974813362499837268503025623547290793386186455386228092253465059495446801320207715576358766816188803183801576517468944295432051252624123622724121959536409763315443315610948039733284116523035654479612906949675932555776597285481626308136715617865578786352302008247453982316826000332707102745088246336571419990291860008759324723824243395665754599415365336425342876955344329960390304784776829221205156494330246181497655760425974025859224711216727245208712689976668422616085492462062219028881666977830428049633742945705619956510762515372225065264021252109230700105290737780317617149231866955570919080816992564270074979965749917710472635139284641534626720561483066446798846325536272780488278474118968337262686498863061141068491924864807143576740823051952833075329679241190767452409482777717897180670200205863046769480879524052974537715715191036030187686325641866834899540631382117968259657483267549153142008318236383674713661601808985954826401926107832133234604454526506394601009003603955751306962466673460845213154464251056721147348096399026286897828958645689454477143940311195014539948854240745428248269795114731264844019289610081844037695448302141303052531996307764056888997887978025981506746306695063675064877831373296352020711781290257598814724708467859667160558205355926793476160428250437830537510784426374789842698870066343303932470639868272258832711932587575148491902860033421691462875072666821851836523869283562888868234213755633816089097227896152703232257782262197166549903858198614511398193682790518527487837820251178455051592696791214113712617398800822583901506357216952990149351000800807413816980283814109959440526896651423118547980317871305929568080952043827341726130662028134474310987038041138217600532562097807469515475592853103670580247346394501888059865201857158871784564375207886060365213653875337965941767607300312514127801142214398291950947274607553522126124978058749808480702560418777105741588726200242862007288026058209379215930360296941870504656569986095849524605565116438483699160024797003539196508118407922641367210793468015331686630856290135359986502015577118109675991008188127496150306897237778521448220156074112239021755249448942009734737629116430506971384567070075997210493546902481379243010223129058487570484457169027772428740117904711004613126785646864124632767229219004720145541685964485201763840606491324624097068224324363394517136546495294478474409440291273013820785362745128233523967407141046268035300877628247610539542495566655239951313348179153910881774154471750701809316120634848826880022751897444437664942450524773002342245289748983581218191444116475982117400851255954960245911430987040813244979134154112840077760457202491924666838239201736541380504019496695909633201599543019682662950671031955959679548568499022326101937783578130537733356395962745153553697644750209018796872807738961798600960233199860829326727548390910519789423112167307145568673534544060209124730870349814929092674542971156237307699717078481410344401122405638365861536837450795455823340954762960728422195178428289431679255345733282729796281047962381446778691901753478339536767784332239151721265241672733182763481435215157297082927007940042487660401213106149929122562581346129410045456180886967818324534928385550255119292823225436121169814477610958640281701037202157420844012852399577473569059512396291408848262605871714584680863486150662575294391795899727079564039522249978768969703230996076777125325050501625215644756368013821071196067570012640083155357016191499787183800013827624776307901711365066434551803244939715911286636775665698522766239946846084380678595012634378477969559260346556184784119532426199883751714464964403125879490103195607177672191124378523429389607987816533229400975073569101194256591583538472925466598766807455269456404773304531296413443328243944292809880402670833453677525009590680449534541610464390185918761952575992610310396631754098301755884349225571878046000591219336270411927307829872164306878593354865298248175822534544987727350769414465272330488876004773357167434470266951097391646782246018266520333547165799495957306529189893704604547410858287101780292534161655355681581104295999557984071125679472066687400895491338920313467083464851654285981355691764286198537766822291517809816847243265274592749582628834757981395596110031115185609110972019692132365454148693089656409975777114264725755057655628665870799423823906181027224757892635216962700882672706485848331315245796800235813967735517754922037090891961483171441103997908707571827113237120407547840295336035512367202893363187776481476221989229610960409556371287307539473770122895968311673951336895463920023410343280722853178796941062962327679973988342640988345115326547393166032103069644356515414016543768426972325434936813837895840219342397709946937622179533200789832539582470461642487233305564117481222667121081214851854902122040338908009829933220660980703204671825096991068759552809099313800806294903359171418642649757664875419106893430294542368669287711958553263992694187658800395194346399132811218483753311539046274137143905315844608083343747724487693811479107017770433197064295078239067941394130306160312121474708850596916192632454574401268413529314973599923861555831275166708980704862384169013649198466068384487181178113164327277573268758425127641988853582526985132920650127081560420930218857265501839685285306630316982044451240052888076534302560061307231315503567548119711057708089606842090833787642711175970133766446669913836988208681560532574137392453157526202469419820316179420054145860459574538879324711455941434124571871930983016500272849138524839572314636085700766168608687233013086570132741730474242681097501200231615781804460894040609127630048542056078168277313529277783534356469049848777738233783135918254817542618242783676443888977599475562762221432526096876387833223753713532058712751024563320828386318998121138966057832596829835461203884749587845509726177108498776934110042084486637349312680699196078447738750633751563207668545023842386144652191393040121659000867227620845276992399275457452165482055065371675452868515320594691270612936308269419233482272895278980113360533696456446281070742435312838996467806095007209484697781777186098431192702187782834983582628168328948938061228183232879696329039422457617547130296843983234245986144075326847608902545049260064148420967889018208326539438145555816542089169526480422375105116294914464558822469623626256715697407667837993821528497583960682556996042022781607278926230937795746596211625893204515269061291993716068246330745988311360694122024088423374439141445182730319251584915178031055702232278109198425696085226709934710359507265391258043265563158102640513495796992660027919489130767711471204756599376898845867662003175455309184274864591645691002924888569228722719449532364354350895229127722231392153322711573537264565791011452421271465595400582418064079483912330427074516651144642982019974551654680504385806247911795148295962481754457319237593838029647658068582285300489349457830146536442921018979337440631141323089633003080403225611006191696705398895022868080496555788124428601825088509115883836477931933243901978987547058822607927855857475008260404438179174736559948617103446993765976836476202334121211014888784370048301808236361933782180947242466502890092969499034183546065413668185299239758990459986482297807864501561702188564285935590527637724891124268405860481868030365194334157231292042558485604310278250095012144943544534805709518022447420474527676896685175023110303467642578105984358026805764234031616750342266120966667457395024374436722885220586833617450872225008685417266405334659344613780805544691882266723909778337775711123459461781427834045896372357465067671270454296077634015928196253348090666446411673301788555265714505875597853685965220676513103635185287577636480040497359458796342414202030348586636106273530217136906380095662238562672214463962079395406174075631711836093395357939976664482979442349646374272755298066160164770451985684086449715525867824760963152370230949899608853934005549132206414730432473043175128537236960352432745816161151274398502488124807716737916639621812525502382998036867002707108018220981898146690082147982311797863145425744243110788985621345934732117643947972357301805381322442589049525226570099835111514305669223623978193778507828939620742109426847812373976975426680963422599258062599406345388475592241144858186476256366152098471029133233056887315437029360691141097770554774586778166846280152601086046790214145813164888279661087137470874948433373271944320855982711923040266954353584526012841744320501030588721487203440570771637809091567800520221106031051219714248434572180262297003137642802238986207452211379247096803964905571111776521260455454627887676770664821112238391714255390650399128793503002593969916672216628676084924720161967096059632743009588665199188094333475694727759728944086405149185083153715099003052180335552013930580822096355588898301505251784109755920504223090333310100191449581783520910214551715001155477446151046937005432045778094549673851150990253038196892655348268506829556778981100111001966912298299257680813490998416048639954257513140837778530504601920485998771565598322964052181123820852096241530867064483874859600610700549537793432172643139026411635675083112560034759845605268306391333934254904265999750413903566249590281650825165833298938401407576050473172601173012379914948264443201654318161029735492954768544618684356417621150062983243195970613552088851849605713547736807021577018802830362971029623441642655091112920039664467180910253121236832257573731806362058845732889364522077067575539259498104743717751191804242898011710147414943657075703014365092434276475006068154943415608552985294690795672757409055272734666102255650234115501969542769724584453219929933830797313220339501402165986958833104924011039161559970168616847725350645875277824057007179746036023167252581179474363422924061633889433223093041453082891825138965443770472073916111345922201198152738697633450268375429109172025136018457106782981338577636979242680608174718359412097993035590306462807148856535769375568626522866984257755166918296279551131832754317230370095280668993395085255431384118114399326960900154388945018279463187606313414682836881038329440450816861173665816525301565772150373760779992926432481140301225047089595064404951141371358653702652360951036686335643157486026177478195463737346674117330001113269034880415211636677530418079694422050332626594748865427233595285395314369005844118405616849460109063915803065881369137097569959029322404005568359689536590298597937063291125805354700905910354440895834056396676081938947595563116903115319335639441548346237052953447567728927838010264337014568537884062427964242860112438816993772274439546742507063500758366292616163249163979487431971971528205098797103508219028764021351826028438876540127706556100829010337065307103843638753315933683070869779609423254772948832103614471882928111613816902739706890183742878774306474227007296867269577649127266326566400114537956583201908010497576011735774643550283951288801764787229920262009315943328810790783984474127638930043702413833969168394665681652396464998165122945635148414268875103458122121138269317336154444798272342913382987977221161398146717230357934429840272026861312940376681658344835140114622223622872936513697210373867222078351224666309939416372284704898452819868793828529027100853598818191240152576732487398007742017307818213801906442600149961088807123372753569667111242234421446108363441247128275722840078151928698392130351482740204475517974892116533557735896845213647079166921214521748863745168013567480966042677178810933538392357673018451026857758686890494792131274619315855112210941869035297015596810511772369444895012364679339489089593664398969628122007882209174142549102303059284229710958389292230802870117405495008755655334872669477761283314658623408107721213458495555196274734923108321579330894640102655722599325206923884673757629679145336810364273072961131002357785856482532185813155789583263986059423947070851660932887828869187410968945452558244854296485735193695187887854678645157701471520559420209672310110022199476372149289505887011705422332940164756864564156324186641403468491557973268338521298310367261247870651037000238297228047861003920583345860102833873430624601660438769979213319922376897958422364800516054882820550796480063111501298323664406382702405235616586457180843306413786433070080222468101446365784459528902086464248960458643387878917200203422655802558192069075094933262926426881210519562427954048587494066974378069094216910082465139711036576950909083309773971170466941946811365630474890849656655759768388065785699817122918279293578971305353655316505693443073305235377733912014152855823603331815746836352414305255094091721564967722428316733993808766274564157437212529504368424875470180050836765056291413176908134281373913468369256303006037142970876334825667052519666010989596196397870362746878330549206122432205776731092646007530890641771449697264633161708167233783059237290007840727305710113215453620771057633018647067244704946580270355139733399331337450147330951063930359295403104495235525987300228530818843738465689045022081775179898137028704422039162975372238211858359997883460851934352936804243588351535315162588911819866900513491868533398847848079807565286406832403905094213425346218265577692476494780909524084464174506004885964652537155047225167227870011715363463499150078741048460036085744671676600846096596470808146131394484725283684922541994685430812755728887587003139313967768070574589615549109666071498370892169786279636422340419027931192398830008117065467873118947365225095224993824039261735646714429425318892121148390139959709913243180117130515167222816465344251582155889633988452534766958377348473268236832873891889931837691800447307226578001153435233051747064700085544380479497726807731392333831432875032967642914420651636172809417417214835994553840114509639641368425270835899883813510531022799514887728218115495487182955504958185056491517001297967935666981486165438140955590898359487371354717416653267831787540145407231013441898598763378595517854740985448377089458220642978917448448239104722549929587273302641517782241932074398108487176076326544188177766074383897232025883145524184732821685540435603565111471167321837963280709892647235758950040044913460977797918754954559785782462653915435256613205041124349468009881356202040143845726171703332969226076453381740886419640436581703738483925560963047819645209304241548023140576607910653418851965775988306889390682620984761364794247073405653324747315804899785852837315985751809289308639184339376952273467889330687300395315087349411444612791608611279277279950195873666319352783335709971566723155659856289284238497575120143562092277398193198500358168161128399469496148479184613408731290179053581805800094776623078515412089652345897656588356655986472599910258560100394905165965120415705886652868860592283276363422037124729455682228030268226784035215120899494320737668201536006863506796236108195827013479605992463642440454891866769632732855927157163680955821758178792217743117679754500637029750988552818536177990462526857501433349787593586833129498910821867798908156792794702645523313880636317799257051123137137923828339922750539726481115328305124414782925932076225120675779608288583179178533692781102592283319833710971104090420023473227434087247202769794459965591341489453651174261650003560310285842476882919625128821166906695211300497347858702772102876141909268991329588798481174217633183069533091945987472194994307268636340858438363942634216995510290743643817105845092880619312435802480595840576577846886040311908384028495865642605367787059336130405780990633568181615155279152488837186933249988179301761872583643245718054708268080985337776659218730955963352237819312436249263087739037513817619819840711463945779749528379336184975568886000803771036172829915541039423077306177226250806394507695682274279340714105589546987761020655202444141603336140232244535126765302790845948518331988250452463066133352474665048391240131720937005772730914814740698035041752919203350242624323739646660610678243049446686709255193694418950506379218730988411067770399289771525704717546845471574440296815699877186927411479954540242070713079436747401190877634279343361075759397228042736901605223125358940369607355213185953593052361553875153961827868413345758332666812986430189767412317518567224561733350064670007238066818110190484553362475924147960880230700844573368232964771099808720417602778304341495317025520088139751233688121549740142600468805192595634353482628366259847087572103834736589060026498262182091868569750127690326353583554055015486384416253795583935714669999039085978400657015918468247358750010532990009194040039392619021011576877031205814023743466657534027946827165217194066183525649956708866902811194267267517858026506932668579418595849519585457148931108602864283993870591248566017697921232709738707706908429059653186746562085655443513683572102644303627441618349604043663511887348792277051870158704678333058863764087774260093800851002428381162906124598236903380931991141836497156922954752141423350943830538710427860354029636897685311900134494429838332538979192339775891964928320443362997887971322902498721613352890879679654845748208852625249536889690060434559702863787247000368138609943513312226553320099313734924137208941199006517736559899672041154491137279089742864064620456023734804682941609967997545127650869056641890867660983346201086634562119166498167598718359401024242930838547079303782399470231445663958027023044721850604041246819937283240379278663432283283891458620227028368014896560672742959486761480176262613348575925229590481429677254914472081077679774661657036232935296074602638296190363951172058321465804178650233927985591716431541304194294487757534846265119533743947303131993583878071093211709574037027960407599770693194918354307328332863263688400248905075987912329259787281371694580036513965105303506253618972571210984057422137043376388697354303341973168643900317134702534058657131914186283513227804854113786408530798804092827035470842409817232860703320999471830301897077512545762155724212160231701006631554286833690996356076370503437455362781959590396824786477500865536179778975799110347007083766735646899604713360242682082421561202336517559512577979216284514726687535542754988529007908692345616826605013648922178886921111173478325333250583750590978825781957666447487261493410454090366197784603918819377438213211909196541369704299815990923177062797728595840145810982164803249682249406578471781172131664956924421230001949138266059384429840870541892077925883082438208621215391399899602861235244080866947614175294356668045910123579489554737459829055898612385123187110875190627853149280621771486325435231506264664678755974286555067094446392602933478563561229487848505999174701678601772529483755968240792618950865431311944515788136209641907032757494774327797585966244989460804511648773313261071548131498626999110200296519706445990172254944099850731407275480721770532239144988053795955033480005162539070903764970571713419194659388723059331577819120176776304743417960472715081353770975497200363069617631376729033914251322311003476820851085491228318317577606900357320321816336345172119022020326192388785981098675148197127244263537589867604809091607196156959419437095562246632406053326593104995302457875854875171467170893660934546093313945061234343814112523001250806335026213704935878671581000215146742949848791451951780732182281964227799978654459568850771718347141127532509456353849994207937701740433413137420606008577234096771930243496793033774043581473359609251359662580995171663248682981746954048928230004497596827873687858027188242986396294256817647174792535575848570970894315797406645205563974983234431490922882578600654473198601569599733750554545689415014754286878473443050035747648379406849099573318575377950984709147707767439597022790113935728533924616775659136898011001301324498963616593233955336764333638042345652125175513889182718092590867168964743085204750823980262998671037943176519790123494249209094720632969525282294829170310544068026615294697612424681805819543546248807258366698042678979027948219467370965510616127286073162268658142604905691424922427578117381324320121285500608813053457865750293293694022063452071181129183663080779996789220156104269439441419154578573467297366454155369595344084683575774357362882688007676458652802485277873640970618747431155013766119713823223565442777715960079796215092702856290747307249510818342890469953397501720948000396241152646199771811009414003515912880674562169817210260766573456488853099738972910665053115699702172464372134898268222207343131412293390770170223446542173296122517157581622347337339490939884119241420616887496034292458396733218951926688535814727994783279016073916042885091800428929934330526564338471179201074090605143580433941510976419820600705480198742848919892308539049643883984534946507387769321641258461107796671879656733676660182854192649536114459233229192920761942531266655193375862535038462546724085028678678670958369567508832771395363028656479394374208792689782091638737501405641878205372845533249232101224193508173429706118697408585506944512972087546963210745141481352249106882733502085724814282454894228766684023010076820453788022698509548008695294025149529949259529289628694446623817940160898160545719716785869408326456170656181189626118893560908860360450237417303363334844648231627355640124757414322992396736061837150574394600064155630037020760444855552282910181821446174445191780374121307170842904981934767828536725607111786535662269269632544454151989338688898477738940766288427202043485161693155549562494009439794265824423340393879427905727426319371819394947820985893407869765697690612824813000480682955657384737502019437900338573670581381438258906658576369581201315188774688325073950390715439338657890963521266964709422206484320391943708126414380871760840989104807541617402156426516992840968332111246000150454868622405364912913357363335478159715640458763535479021580260299227100985745295593509228952006168260804361528024029527769384892200014020736925891218201172262000192767878213066704429390075190214210556512784778285454846500643972274961216696180641794575233946212910426500741248888667904776365409570595286761169344504337654529521393477200695265824934944450670659566253640843457935407062818615563691263579436932281365435381074279846764108183285096780387208451444687438491952603068549099511124610554702556252535194986644062230298065945323438653972360578943531890761759896692362994973163577538662215524810726269756091905457273729438721227888305302486413936071323468504494106371361390839735428374590203097088689485068567989747780499477806322488169178237672160194016694268744751118804107981290469951885855471809783374216666761502528587005249127589966127869122438671306201361221405776734830898918469043763240244600480614036726789660973566492575901003002235784721723229039814395734996584199995629282104313493796849440054643323447487314973648991675054533354636710162015325465237091102212120929950398679134624457713050814769296193271092466187056236501461739061656140645646999319714954431575896896740331905501131969303102514552888117230237357247014995510711813729933754698123263166832425093487994660811726005177836210865381466358877110328634418926891560134586289696378330630622562330035774415001136698741589712117063065263416029172998723142712009073186352393397028838708880558680069745284498622241383716551074403821607555719099344406364400345842607940570195757098214563571680900732229722906569844979183050452743885206579091984060948393104281313131408627234430186670955361413660445929440705227890350380426608457382407314134790864262377649307441284446207818732301339676967738339469178313273958553655267901366191933054366669359966343081837547479280679610106317511040868250564733542742484166962379347877171421168131100738234687258313559421302484531219131869098843953949803110743884216332151773717422084680951335488841240643761247253413259413296269959458498364658934731899112002077798049849359958241072741888790337070348038134703328596902799639495563016234258457767185763278865490187494206351423067306515177322510024489224373852830521221626476265748623797296157840570581621885837162999997189123169504014248318623923024985648755535948560802247865908361966120058919097708350413144349495624315807864587337827304197398533047046936263886374066542934098282189747338587620124353246916451195586212667411254610331496942523232097152930427638593706629556108304756239350615445724347862805661110958516149788330362116377761118640079057936099406672432530182872772692902693254457940885698526207707067089136589461168797782904592243912809890464767857213653786823508341911520741093125131986715318114290256483232105702334124805365182499837674115949670080852586804197808198016019460910809629055372621581826131265202453405713138522540593849782910356693784850679817871908758413484339443149304834614903906006229768715605676529939598993434224586034529010282592181381266658331322273401943474597072234916787362392531753388383810250098383453752161626725268360902026603547564137048299480706251343774887610139449556941534695372043614725194202766314368034996771582205235854778999583325714330443231504765313131568885985320480042818489772036824845212196358109626521426709862852516486747907374854902163068643481587618203424413224033964810390127781853712322640287052643174117799562687285850875190232028850117189672700576705336107586837021298447781154416449064960202303402529613202229427786438515814165780260390568519074433394773022330124565383059094274144074342020065359898405181667681185142536446318245193314926010767620505610175400517935590764189682591835013395746736716820738872553448181309166481274703354259746743004405732373175344638764164357886461649201157344634662256222547225066907467574540474165729493714779251471448599270856291575621621340515588545174453178379545299797253274265707388797493017731003460327134501032533458191367875551031583645922467040212573337734387019094237330077374370798186728304115370875287328504080295849419609915309747812443763639782456729690235953096643351097140937217962528436943186764433798124135782507588832933121596409107915698780857983135013827523392177701253194995033325929391893295619918288713811625665011137539163358442555020597274352925520567816252690978828383820807813430872248468245896217509894039732744211060515546892915467855471978506084491937784739865108613112621989852416920393209153983481332434064739024153326565564758836913113503624014016774736049178936426861293755217885026545971363929300379783588630603119342589309353101876924441883901718377487177873099247191670358054881278036122431824280013631558054529194121989810376363993592427967265692937374205929733804910105830115243619880445042958921919093074724043188506508948866433167131635287867480645453244082614660367188003558125643871672729249150457055401856828589514129898722723683976417925993047403986978236700246051220362893971036469839591575562859100731478270392230946904231466168833298074782823766201113900152228974916274591163343322213161479961099598268470539129891029766641844414107621511831151751948369440060959874466371816043935164526726615811766556859612875180833377032166171641276046605282806212349187684257537523917406286396791518863639965950196573972918309186141560536560106295187085700677750617182847243679079600121103395194465147963039573998105562948992378085831266581206440903827006963963951539726996875333189875019395699426299824539672295219314874576244742743789587760916107359058065488171829196296919640019821204033877343262378560299420949936854303768390960836156024308398211785758890037615319760830212025458347646484383674757722930381307098168364215365523545171146055403498135124694550279467165236319123460694496114496937937700896628379780454863446240716415748038290296561764055788456645517178456076653947700492798814619712610971456070523757128199872706027013245705927408213259450735935114476951767723359581470819533358917789196183207225132632077868639106054629624533860034631318192137488587725710316301289920514147966345341869025791182568972025293273805783728015969243793183695205867761421988315402889355804167649847457283410246695927244845872065389391137247709124128143000472167664031557375883914849040800763494662397697420710103987633622087606419727970347129897787409730465750029708051470315200199042419635820976063886842154351156596634803016895020469264498595606933485310714913234042815803642789390655070001447208890381429993250976236557331381210679249637588948972970881175387090162322017374025302854945409802970874328473001168309044422547972193205901901628466095151776714014584324432850353427186168344105031111744539464828394383457842502403821050041271604062180041352510077548173720734863730872458228986953205919752646014298789458369341629088126972537247754350415998203562137048102174506948650702562599230851007134134269017215453022929208440145145631854698871276603920853513330075668016860993301851444670295200606351089256942539554705468210331104258446052373805397266380546305597412575609238791336348787973892479123911631783809768862905139097238173558657115553035850270418943876708473288103074828425623063303485906297910530970322006371649253960671612907385532620740306858190421970671785405385033908034454068328326247862870252806228983881407178742763437359504380728171322641258610621577040018119241372179395453658055327098413141719059909872074661744917965767280242031741188098419634242228884641830324835646036887627754858380714984049551206621621320229099114591446816474633270174903306087164209697562141842307129813229111876823744008530537936764028152365125333930809203059526336062520909537985656045743292974840563068345757047178828739462190546174990242794954857777730703411542242744776352450360462072171368464711792351158868021091346997291078234966540011748029750388252994142265750611887651922881643848590720615936757150689295600372638977419535926318331199788536648213297325758534551858017748020803465163686446052439230519625286801368745797852365227570630045166429446993561154829223836958988663518432338522483990897407807155614165865341498757079543968918831076598278425336835948072888001028809589425630124699504183458945634558303956786724673457355779061822296227170020390446331323191812994085163512567022659284625047387940689850443623450782385721870712936338027860018124042484920110006909845404725424877296208440947217397934032072672294578628759288115532121813767490636403420260380610737795256386406383520626882365868140559645535216460250536582160890734556451807679695874677012206346061483356792772285332429608824529546733222209651858743221240837030726580912683674791154589672872160777793641915062385421382143244823000304775804551850295575150298647488770687561593405457753660817560462729207662792095820005235070732340640591214921210117514451290529544459610227809306446325620807122926421153060418322013564361909576315407692506306052104572696939130936820057495566057660664214098612960403768015160438069461584341962573209085347611714664190247213326691809220804559971709713498447597980530464479981587881647906315100795769200800874757035656374529186505835097156101368262820672018275498142048815836281347694187781009360957264693189578985693477249934380004282800919509772430764433871137294474835289688903394572510261480239400940754738517509014637481132016519387670523499267596336411043826759999871763636896323873003976659302912222657371448565934766737606613479382398718646411448172199372323660282585634103882302412630186980203558771485003288935457845490323036294753344474246264062789940549321282181865185010863107116797312038941493308408855429983991756996492014720702196894121738375053305508869937831392798217425290220667934562057596592543765670947949982737825505199362784809203101986746741499556460896007875693362431682138811845390270338673814040154440215519975014922802011038031472785364944451677600014223140897302371135104205704641746223066071970074397508795356684751508076988884834661549223363043802482324315708258797501240615831487117553713181770295719811385182943960433598312038125903694443377802161932899342768680254861339042691093176737660198097170855604876677924354914060629168407469180712895187167256451620845167382459930538851026587766697463498007791448702987501902786007526061632697559420717412407102954234512848653947406944246002531876120221676370666660174929822542872667439592112293457640446643889193750114863980310000869425888317528018958097757299006795745856976331815914152306081103938938188680017644252731845412032347445024917570004314539004391636131769006628788818656758297399166159166065243204594901685873890634435238993070026180182199681739485549874811245526551878460933492947156029540136334433077039848749505008669028745800918741229782065344762539541009248316101525499457543055100931036912246800679610290950540982526740129561353771996564245638232023292391743436887819167217151320989746463467822936029902515178367883354011614824927414922804619086242393231784004272808688775191752090497258744916778045785702553392255778064596159011477898284494934290141432798488574173500681734272987959532822124188894366713850202600578173601989228367450139336757451265011360529480193925805153513942629685347115468047907194816534369409308809538669365962920698327465772139912003585113555076395222850672096022042736584695916306807836188734224211310160643579627377576705583825624260317290888020207583916628039730864428175065142063058415936354443184275490719881970973930559907925250523076192015030876174582735845105389897092879591382878811913557333239476536837013799808454391290464842278661580871638066214654881392792917266569225272512056834656475431437446255971775665897771869610022428408942435447565765826652903119628808803052856219720853817309121558998146216862925598383141439897806355470171971303585577480089772868553453373955345392810385944894733796207314912475420538250075886155765805608217294895054952497569831617502602535499475891545491641832595249794232301451866157754495735725617758999210946422199564179528606244980450793269193020713259828155951225839032366892941430421049008503607591677378694811885570360687287124003560736020097560453488208659586395585207266246788423110105893937044858436818096119457465479175966876669933022283921752970139594390517257919448479180655733725532789849038025473780119799034064420816459337680591719508181816983015794733843353991557060512053982463675175889343576900417638974738238909698488769459250186994906289111591433555469371274323184110060247964091944021985858855631372676352578496913167756820419651799885817658493833119369533750367840261405510679790665453286107222982187042238479890666632377782825910911661563295371467137093720586380983104073657837291431784870980078069567069308226944035110314741110614188454493876936911407258644180969729202691185975522944563952758579656541710963777514029757873467922062099650519252055089846545871153791328673627993121260186254781736248411837948264624806064008557355399185873367139965642420580633898177194501419722134228924196025932291614407773566206788141289305794961449414377605527884468007066336849910780880407421393739736064414068325774219458383846333365103824724471018641296990397693474558513482395901822613231974062913063364402716358383133569830260515022964841302983899763770241600668044187569504750903619446803514463689711213891113595923294562083043671713829760452909145985116874951450121198974989904177484865802250611152174802091429925044406817783899325758467330298065928803873098058190645145826261759805079314304999705779576289923336770529972750271305775439247682952492660570823796926039002742585782831705103189116104171413988131859552192803507870073251719773272960529921398934114122924048868902545459973274319004228702946378465657990870070883261680822891369634724195395929287753505131460100817269052363593771195635841993481636707824897536103179700364059250616591429203530486045742432895854690603366668716179213363271581353740053808878580754722747182609689796542592980867549168623794481299075428526576288597808339877889411452402513981634854973348221184940455003441032571636847768924922154900147016084415715723760034190040404293582799254214770775363524284521376388438437860672227981505669808480105602872259135276151016248855380766723673716236513695152539415397819710467737342710905131464532215219131304665038115752844277774385539863802869377133160759756814936355710447292208623129910542253998267285388563764958662462421567887793125933287709136509947305506754672310627322399819863842654835073306497044969172798610590123372764352990903384414235876382353494944960028833721400245932860050484470664549362644392420755323128467306156786885621346121527349412735942613227958199760197537294058837601846798509982749090535893147706174989820000817725762417705727824820392410278312743771792209811969976272055881775305929471900015621474280217112844426474855554406936924564053406419425114871990948675572519768152584079901474631728917793562001782543900082145368073152626588612972082409943496451818865378121693406882503080058529858519334695360966129162690256763825898640275715017652709951966939816510343182999548566616604151137949160119034459190615850509038308056625755831129441317124515510114358466678917216921498491467120714320161218007831522257952314706005201212677204420299460783700971627733190830073715441851294774596531123137944107773606168506081881006715062384155362552814239890239749089546693238851202933878547518561410041282104164491448043051567982474399044215366749250553665180217960236309830211597527538521942509906629445243224583518032798601880216223394073863947959600983116068881898302285074874691096625580527321412495787515838853422838087629105282182456145745598701308003217668991744100246201260538702395350822358799626224934350589012986269284554138564544201900351739598600337627060408404660984092569650832340569095067236172135376044602854623938830679948140291464587777845528720020692995420469073100188796306217123578051351596564843219682889746394128072812168485267126035334918351139931818805269648201886250794022473302001047028079140731872187159875759662601724042185756273514829760616745925981692427152644733091771562481446452342764807379297152820137949068750716473869754571501127379800510654417528308813585995190849763533311340456237562388683892576319503052169125719422141738220771828065120272624332908320820153039595610751499939464592583541191501327628956167781141988444140171065373874344183874115277887922064934217491786253660965980109614002617214545489216490113711797977462262819871437173248870423615262501684952036234573843410519060088487689451528267448843845664246725479354200465526788892884203199701005282875636194437440560918747461723401520554949751685175103030793781498108195207176776704914265139663133751432532894866266139713961134625223764773255270542505951494042514883496060149922715288062477085210473361831335380714632050845301846329025987809185997525214653466344465466957052805436291060739395790899980319363232121869586475212744395809296782956497901524558188518061811422087560865636827613942792003531038425871867774042749115649141741726719590530231650838589118498467197299019451413359465420974876254432135342503420248115338392342945901996723057521460314404362386008175784302555394120408096601666861481308393627778835858459974685035636029843771324567701828329251918457290839819637496888804490275506343251473942293389006675501333723448675744428403231738070816079328178263956846106136125803756886881644063183135278580693780600109574945575634156317791444191275145331847469190230997028318817126396392461513514957870854985292362767915873989371618947991058845160475105883144854062965156000029489397052505781158505689326270613994394849975740790299377060902385220103436770834192259014337124443195625995974905627348891629960128721645086318003881146778584654268167855513012191712509621453801003274487938657346088453711433413992837338248733295000804767063485733839304856876190721346807079368259669137050603862767509139312677804586453631284106626583120017259155472528888811819752116185945501187528077290873436848344938756434734548061532652751544982871187462571714976662594858650371371227913114092199086444711247058606673777507531746809824389302564749144876445006047879027805259353366444345423901232762027831072168432386399511460581082648311371788128860331874245474053763117631681412442674696895306748944186277003141283504562653917136651297319290723285226477446218921275265440001210016008556065132451528562015011261438158256603960951934468967472263652913346353266359695191216974374764656273006149692797449081696332387062820376687063981331663222808380835287265186732211641142243325459758994766804934036812224428000996905950137597657211618923163699311630272747044126077238433891469658575279784961123067365837251089059855910282552556725732666915879154644375769205134376379471910024904241496628750376613554302577244998804390991208853560486029712906141830910946606313341407676149813237369813465431404253818611152877030790765083376021578290128601817447735216363351957323830053242030653822105080678498473461885829522078863119111437438710705198171713432722284402334721686738505469089946199980948456322601228530560731709538128352640492468954112028686281137449055710084801690011750764603693180403993296454166289463705180443524878533832845627955603611656571973273627180329311116668252164953387816229408242425990805827632806563636325247697238775009910745178353321393505663037547556089396546518193250523242109573064025338516091017445226551976122139991986358477554638193690317054490196504702590573564808967774328518645720075018523578769495712229209471599992464247869575610673371204393808249375131313601976675737047027488424383671974115626157004235385249481770936655561480270295035472960855639944096600482418580900112979231619409768067965500378500312726625143347847521474005802406408729169237790223710191811592807847588734796284494102888984206124219449209907764784178267643743166803348098954943086342255482294913402771422083262303869103978047990887973559714076779991921090830899916238191439593962621992626918156413662172484491957376190297497831825319039639104066180538407863725901526802296337857746650512181408148158567390041146494564180072583325499482569152580954983633269548907559753668104440689307712115869860673220378321246414995569137856334371121970376288939396655393394325070587665121343693854655026992387536694474104401557533183105699548470079096096881471875270924481782010841058774844105832796113683574669728101155819085242839531385072686642630700435833619624406992878441612446314603890500443422075627250318045986665487786625045244650132576396942973181940833283100762563025728307581232168840948702916003425283026371974328986112415537024838389994729638452404377666701615486272337296040357428637447195751389474542551920782173259507018516593121922611823222516023019735325562105669851647338903078197503099815143143476649729760262625915351839431501483020911958238296195652701452118758468537767003342909467997014758568094898699627968314578036400871593675313301348398916914378685276127534037137380487207099099057049738651019541554138514734094982805098738304672844209726350982849605355601462575556858756172497528768513741892299106166288212819245850988558573539525973514527805444435267103041840688603086845809766237032947254595080031948773630833345466925597738100190956478770787144664624292998787911092580566590762179321010663728045949173704533441893526893025350086656817080128603376698534756946729588171565222812790611307236484618916653382274058999504540324648821197644791010995812598707707770093683387586523907432404891541026228406375783758171946624888132365370027572305881892207721321336678726037000154769550861627893545433949214900560577588907097923995685143997611803095602533772647592457782787639961312933374339911564224185949357403297183054172664749651961860546354201069024371902066900771707774957784722046934164137560122753208761830199843977108842070011000822879626149593290593773860762545783123739418845755832246125861354426655667116325127272490734014174711439902855160354583010811103945918160982030159566625197848575306717150561719593707098574751275097653029992251858338018230087580582866236002843341775548490124329286525904481205733284430177174419844829333015925357557385863729279919729818721995179487527935235912902637161161215895193396423789643556667658845637611062738158677562645060344227593724367106373068353369655745198653817641931358719348725964475639214294426920288584230205294966169519808509560835442872425359977761335471694630776380352733974393755981028926610106772110805613172454957698158703529912845711716897819103142021057618914549901016590566032392970870031275330513877888231212852822614679487127874087409654956995525052201769540381025787006023005007360378258817758535683211562513854900923052720393356994800484953592283374840989874598950929701362519885804623899385488543390015965980625313687115760021704942152782205097078180196033120334025979646351693180460523452262105426298576058437399878121918667137597026204127902918187752899093669510494986951546764248568886402225970104431601489603815389589155156438512844885070621519522479076495107992325842872351375723391037301454085338284808580424072103091847965914128341847363392122441687371237788133618038352187757660795474106978556343885112259414696592194715529859713577278684207819214737826720627014690081219797426459031762368280893777556619718192551297640501853982967371554404486815106614694484057114580227835297620339363206394276310648241794278700652294982667910471434438319832953467691459181661860068000118426426749546812021488976576948733427428483007797581387083786488030799699392863260027046898102694253571935537613895424121468210545856099935846750360464661907538265964619897756820660546331713523029695777564407116473555938120626693559217665346546700602105109009957249286851003257571951798860640326118049085708835571696172345463042973549151425413469548501741347719861433511735140419710524584103678794217579446199931991367262601006878368774214550853949168857360713421823656679328395071607618036321899408512233350806881798515676674163432385003075725774769324424913832179128558347900762621866425570385068338366483422318241763749197519822544391539213877557530418402607719560882469345851648483901024591986853515186205507569555702676776381606845178665843241718364509612628281493466526382430214125400254558335741378243125438533587344995396814841556068563684468937399825388112334752548506279510326533048511648204973161161727200646400117713586090752042107822905928180444843738809934444090731282626561535619816443342883821230752358861730037049453571646737358291447104591443126643561553319543985874116238021941109912133802335398020722769302623637159140039949928855781495131571961636860417989288679165793500829818278813369786179226673418460061561563645826693913814711047767751800349968432520493967223442398418036554389783832576160107634891078645119364873383243148961028591381792639497903153535896358015881675996696198785326581629010544275167899735729674621771999800422375247100903376224378101906091916079496698376263471426711665145718989779253958187633621766516894526671581207435788197531083230049822322840099272615290626697487529605924357399555249210376127459793103595665592066454429800882422103318184402469558954979310293160451067803990615317298474185896214122635398658927193407496858931637473964044935469305127638010533526865245991721798605100941795256965347288171522661237311973879837641004814669804381133969248145216004060713634960887610567888159525703065157798347288332778603975773218841888758822311587305679252337407395672358908391518385628009866065079057475479612651731300740715106597430233812828213308168988856285960549903645287118501456605769501450946291337154033740525446771963101768321923750918793936496481593670490684006884061301171663171027775888711300700535877539453934524449032582677537003756870085730284536012869238540620587445944394571159724270300541691830408542966000934320775761722288294374770763678649414378812024500749491925469307500876932049986232438944194153370528742257932392105292917000816248109912149658949956707818303718762599729637639877500334898673468520703727855666104682616780925530238514157958291763616258448592716392326048785520808504641816870391306750478148579578627317295665449865501957565264722589174013925967722064242799102522007473177154541395216479830992443516386418794958516961536276404150202558783078369800952115516863750596770432718359949278294448478217271047287118357353922101607579617081697572871520370614243570406924707591851185947157703592007603586270762057987948535437898785817333633868407373819134480419703251404231459493578490521780797102793333640271459936576133757408992166351271943015643817041066499628067305335667126257349556085731920745126683445788688305660542654878163807555095339901326718983970935826024262101514245982221151537864542297940306936467043055951938251950569243493806160676976286867724473106870729775669187249836789153749602929845138309454033141275820150525647630452908844831167538505079840721621040438615187212482268842156061842095518011261157074557285561610294226085858021624502244630177334876126277679149301584395427889166942555759254980147067203107853829013459553298811413865162053391168901870491912868189334027028330946114970045101184937422930715380313490802327364556558466506764674916751929072521670734061151813780231172204627627583500954938997127384347853981367942008072699484796597055384688463691354897458980920757877043892447401533559558358030290913401565263310248243895179029609241184036792085062017302979933347371432044076999322494642505116524066049815643609155490395520145554797860360347280764500767811318228767830297214446721517247834759912102955418920411232703560244702806119075218722068731359889893141946262538470411594200135655339769248878444117603676755525495440905979163206240025978693937324435798523909111410638881455240168446096971658607730508472300053406147181147130148106084140463064836118812004639275227247376643359668517118253309975999464619707172314950067539184540456855662471608279708513118169010635300603136952580762972154796453169320179205644875477830419851622721544701533457170770117057375729517525619569896982731189542133520479852570724925064063311039849553677526030035620566359164291537618450909598061818587570015205895687348874289299947106543900201494955550950251266965079815584044700940435467113487904097696426905047915292549310336865197650902564311971515386428668333377425048001231793848604967063043513822299827187308949174006170451182114678770698281030711801829363488360280680786744977195839186481504865814780483164782448193230022012189448467423531100760101503717742164885430802385677476011252568904076786791544160151115147497470155592903996430035812233816713778077986952028004731166451128506374996012381754781566011387830203290745206065926747146188429035412907330670119187603075031787148734101888477340653824087039947523905996247673998286500051741967346782377118493227539293810804970478588892603701249739056967886859345319219670663726523316922500384104757690774175841535453611636964698701700270203487051401770538500615328007051141702389744687182171660273313644660405457037301829302125417733469844309381749690443141870815516614023093259476827361166852597595356613244604756590425408291373853737411199753109017977513568329369115538787039869970482179146300599570720206422505584180634542676718348928034457512509330091017132834321310108585176763520725484018934923729622339064967140555756547094936545338748214930786882590087640126341397792226250696334232870383558673262115604557576517847396254009672310075136221897222421862286416963934450216368214906817967053288149412953904180307730768725517954884326385450860794044143300685242245329672758190361638488248932193850680860467355575879518040893952585429641358478128308021713165501108481369729477338455182001068689408778559791974306162863834183461255195528314295958313956410941562553093055866714791655105072529025115145208911654417729042606616429992587587826593813555499939947393683526716874719442779489767577603333438327088062508996010017758697996903285106346934525791562307258623589708756255499479156356271260381928513287385874584443922968825018055981860317862704943267729836609217637120422923326592234264430956659167566371584428968118252668160401516147338316060885030975405805481778299852825396322859698623376796245446912656744127173932447965872231712631016852069667915634317849840533486956659241293474914155948745513614634003992095897857409738746659702028810103399604850797988490184633622611709994047182116910124717180323657923334411674528167822337267431099831962652779370253119961588621024941898955882049838998101113071621337594346622618926097858214788192986043728383478655224594432254171612423112706610441328067919845339695747945396512319161617237306426609360430658803418331899680879729574920100726766939283225044596526829286239259962521957328991323534181428617844192679141059943804975912735288788508188785781446739676868395583734340155949900512431457637634851659217562669770289360522213855417649177126483109603526563642946546977783856892438292567809062357479526987083260306009025677259833136567774683988401774975174815411080194257917946536815087758917398687371309768700678316883023104905035259203683569620048017959644287637522445715932192401740678470432642553933483700056277400820808417584292394946313322892531541171729327508342263628184066190271597096005727130737414226916003832056383059277467601352622858857899655790851160793922867804777635353608745522052961307854040029982177694160257348205397136983151440163440902845794830186674749042165454180148871640536112578305987786068076912161598486800950209335460187274963271630725126200447273417251923932645321644054349007916289803985936800831054148487852524090509712810671347372525284862522391002275421001001780527809217437864170269427447765214632808393012813114493303091887149559919207229577453278879280597970357036720867305362033507501454443620591757065051253645594431158802582308420718376743188206777345654935865259976486942598301244881035224892312099541334626481702167386088873752717709776210522254227272594889444700695488305517221344219373252199601027128686117807969942569572314854979597026026550897513105569506696936749910567686707903418241863700510160980770468340810793853995936786467598117930569461351813623356701343402942679653684305563311937698629341864379497822303020669141034418146224506033177669063025757692206398786693606909079368936798874952660084708372137719623907871984001075856200479755108492329073284776923523833851082021434601427264585596595638378734180409937852103313490914136628733683747072831813689957736538680918220984136400413300354094041087405347582312324837949444385491329003240523523385838394878262063099730054543437406968539379586816125353681449205137479613437904456048108451686872706935072651854481757157759203800902087589848641106855364071634992287089615723776346846206480009773413887148334956856022810252138671530001203523851379914419832216055915534726899781828915710521670408289869579612060292874272986504700134868725376521771158843391941542916076740475181935612446513499187959895389841362217401900488987600029024679916740424673918827938659386715451781405542796881436078281527584006525191653786450437994094325107253679401976093370009042645217271387588745675462519680134521121497554501184391958571841188463898372607264248095417401302246977074890207501358295644865772899519727489971241011047330914602889582342601496534086635306876286592141386340870470803871099720632539831854238243394222074532407494012410354700671051304099530412843703071982141042143709327649332408693865459863134734121640653980857373628207986736986728856755242976866561805423300238200832123247460090150463827315036183160986927974249546335232284021044311063047746807723014214224221896876885894900074083436164851576153675965833659717642109780193900682496621679651126754556000781700837823551261678635083428727673458844699647699662059836167223937191877445445916341339725848771392393671978565735098463359872040670143574708205070501431419408711363998384637342251031141547403178315637037499099775128339384828963344363435046060627505481733075920964601122535249105518562384917062651185592284867702394275188040028806627511745371622350973896136736798870795802346216226903540493079292156927667808288395763874704702341977351426775924670595994575023621786149764492450966860631321875943344506265295285773888903435791325774808626596641261543988421949267861838355137565793961804537716253874165875586453390230710951057434488730022802423314582364722217848694689171034042435835128926007185331710452352723615916046054171838785345706909653976813083191912314928476606114932850946463882189723509429380444292897875684962868654366239544224956074745992015597322463555369903174262118154416301646530063748188323661282295855416778623004718031270805309559937618803535968477492037390709488623037715278421439208491288970209595342329663540534738017859019310748432659738194340416578211079322200781219145092704331557518863459165536890310985864194616452465305382643715358950625841239442948828165383836800561856666984779368257912637726011957673716236266242780456927429637614222185664357787665204212347266977766889455733930341803434462849740848541972580176118172610580279029618906460318916446497132564022000644165387184572217179748257440022994101573647141016795167069962654133872835899247666192884250291185921164976348142367563989609227064877562168285555671647953484687078749448087563164827952562475870701182236793998602022154065671012103923730544634384434729343730264411976118071985881283747139503827363796816694142694870488148434622903213664615132838679942242378281127268116776562905045414302473753437884910032929689933434441693285838475845074318844884426706728320472421712470966855963117400293268194329712801176656282183620416256798173444728666358691401831534296451270685928807871846174253101222071747200796087986472821272089994261232613123530507572753193155798456431895434861939385789570531590904613862662472920999959764000852650651838424692675584033326686688493348721987937069754263949121445712435781950666760437534210018580133407609481146293310732958941474018936483907179585597510427528857277003130594022605456770653349499183900137953040847577487753722335365600010700564202178725294900076872107242743397286113409688683252500114246749855600403423791413481356590943649231041545585212895224813317128883017805208731800758169019271785768284478339458355788391989654708568082147838466343211245866498321434777191428939087494719222152982532549207007311222765680335199684187599807446632774196148433716835249419036090970969112291785765690157945670903213904146786641838210324604218107378924030842041838785791984964026621385976054333315987903114381820846074923689666517456865773137165110191127296864136582227876721557529153548877493275475206539027941456467711250700163364129973017304638037740648156248180942877825261114934410496695282814693760078382725764178638026980235081364403566708650257834718665303817355027268766766258939227563811083282361743559941024924509038971475712595608237017449271628161551456565998657777422082957418866661791723185810938189448217913582170492723626998463326556223195472063758655850870021370291270127084306002164806937541610543333938136202917774599608885631654921804308674683404690222960596362633717325789295062534743671575803612995197045440282775902517182461497385287640130010520362999289921922275785310776297223538142912863531063374768488813838746228673978706094126016018370321681259843995681606503344882354888413468616755935218562638157332073828636467663678714340419347035312195630249537549917762293888934084424518250515386035511472315919028953201352889986089144948497988033490603098906898871282295541384583098277525203583767224960243954573493393046395808001779032677810866950312434272478168011855704883564801508999637317429024854342333785748649528029518088452918458011734273229317567012282472542230715724613438187043874417551496086615960225076547372576523660891015292000860535803124209932814651963853719574712314588835945373046450148592908877503248835262323286157077206806807325266949018338505519751456207477013365894189490583021597788713548827232702842256748938877325746997131970556496111889836328846010893078523127958490579246994248574713650620863582153626897134524803700951790538037134492850430015902855192953225771760656609461423371363793294798588423813706221246635973267377561809307472779190978562025077537653771976606765311758984662402808360910298692345934982822336217228702639551711972371460266838877616559703778060934958952789806506503288757515175210607110050547242545025245720241225206771382139057811193889570733276705490545638909845784236953753442208739069171178209157966058819349593655656848700652093707521288002174774484135731664398732264668712577840981405060949160745720044312150890244706171953929375234621783669851469098704940237860971069950685046777234429591684573310072884193632246006947870235357396458405092273829175412533337158308779631520887539526453102253173778748200573600760755015171440193804458912051420704502588899129960483356232040604680972997131592327340323185824566704025520072673714843287794683881001790246157270976956843934770338609917428157872714440955063482226933261285798103361394684776687736233453349803299668484874800768589733755323913711310329368539614339677553562423524043431872973102629172262164415659875465603646587529833315128733888921135623531068182905361947561304471074955941583297216151044036024184482665567660944116007555304489347635663843539822093070188664571741977206672160322930954227635313594775176436714811573918822137559104726697417151661774778358585188157899601780317795826805822813303545029868855719079863359584486431778397398363894679638861043810489348333333351996176724021203986345821825532970389852656695473487489188379144074219114089970383165007466059698642187169497904381072971932455949504402895822601317378465248811355188562236827148217497607175534990112086685027601788112210699160810889737231603847653257473266237270950555399585867615251001270180353114953056573029421262406460452311795400495414726678474934158746939443349947623376125986825960769762843240510353711077488082879996150138651057419775654046595250886576600183897880307278021222320185248334601526687630100040484344559231255051675308626388268562930803357919543460402543314760193434613128890991739041416429820915443725770508415592192557869400070635834275700938292521509466323156840125955405624970214417171234036977413747759624679042482597122588027476248335940486130784469603089572448560357613009986495516559800766992517911908528454820333998722987264319092332369189379092750463975399022133042440006249817768102364914372311385872201464253221722697705703298588282505138983916731682618460756176391697148421758656250040025864060492043373794309577250011913520364582812395412439992066603395131095600045158933233032689638500317031139044710096873887622641252694444334117629034041381868611465716994590017603672172810365882242199140905314634456588034370428686380257953629781615275693927590084100111101938938817991610987369520225068754576388528101594119465317190589874773166844832343847889017522073647895508415900449547310160566069545291883040167711670468824440985714268362916909034034097064804640151623620718765691746095496941282270942954359163811170094856376160005126903566734785951380923387879952351871281903598722193360759449026329966461160698881434488960333739055527219846314423727110144748321540438674350154736991994776301283788149558774313099929226755532822628123209882022906088270250408344639427012434729727665832692496480109613226866764392639317347932218661745059781958367014589168231150793412153174428072066312651289072663885131717201803420051897303198083213654946222603821915582940172529817449698306970666659022223542358545186197811983361604000681589066072271647192102916149303634660614649249461860470098427126334515355453525828665289092926325730717563332578673050764543358208856875176129272621956796039338979168529756699223642983611027383633503530660148801183468154233910428398753608922449670556498834383530583540039717469872068589164620391396161929920193448500608008047309840176394537187663602765447965117605778531101358017617349013044668072463783537529674527972425125238297980602507376287660739702239566915344024511709942021767820010991578599247119286209357289872408946148631657156800604357403578762299061582707700475538479077215269157181331056077302836532518697218372725835328309042114118694832186098338022286131894191907378213010986939982825050395633314695210881449269245194832164382954364761536428925014913001002657997983358840211787477888879923277459121537276517632777803097956596239898254550334915669625569149526174869310777880245693733224612306291927260470243407257159776536344477000106341307621368017078009523912412593430994802755668840391015966695311942117522244985696355164128696200663619156228326898595935208471421260860555384796378157314252221484598131216586812978151664075118465860924977653575191966971404662144822183244144483899244024865904715092007287243212274790478455801239083350835559652987312150237273695235153736321476098660478066641373777706573991943705417165078408926034777502950289966570780669792977130844414329459148939911172988926914880154351391384752896837102926778011845883013110024561474166003360804055521577855498074963135445063818154759494422199734542909418879947192543108847170431953474534703508975163601396535291325185658758845133954230237484288333768498699289000458386322120306362894376016393172167108099227326933450904882654011555753955569443182441802060752401223601880579432583941102013958192355006555369823447270726082511578800177092962473161207357512669942758594252202394587039420362661842180336286302958576614199891022582985989990505232259601684761685185226228570790755756612294227186860849708895101729519632978884640329771115780293737309305676798019702985826112391382621872776792349770025400250539379430467324057244885816625316927022925658826144605849894098871948626678978610517062109436800581598609487687450029330452848969934503296832363722463666069501067606391704185984881826349346076304252153656856298778999309759174492619524855203912411151307258633208164471664813804340771402242869609003282403549115431667731376847123338734177883802998982622817261420034761397713170002394810144240433162792401371857240764391463220438632246879138652949918887806417119524417595077287127573465892145694003443254452705182334578086297004360297085103520765361166673487127331127878327740520267926583348852366944463416103547193977177288973808022459996051996107718480596842114905011667212906755789118167786008012814110789970185031539003602920997179357229914820038727531362118096781079827263466792726384011378646093926905306796133511301492677559699652453896309057927255360558790089281048435177638887382774313964499192047696858921169131252918908345450829998943051508876487222439185930473040374044013630676517800539425589680998849717761076605140715513458066798189909142941481912458143674136988895798483845121596541310981173463115859920519904355936026698128326251724444230696492974124400154223135398524432341563216462380465859919430524181944026591510057677842090356069941526356429658380545315041360554570801498029192577640159967418648666673123344004497329781149395082936238788922675702934029809755689094693349185859668112013370842758959444542969383310656697812414438884450650619102164750928268847778296866078385382756850880592052041845854643927752540442034678939819279743782605881223512830422909633315146937248364938751798303889014598289560198252777273918416783692904151196309197192346129682737613191912281799926275512240187228981469326058715600101235877327344294378862961979908136860024436595838557323584798340498571632580223431460686911938430277672620587638382860879577396310095567113763459002639406188512664335486778256768564854093210966741662936096045329472630247558207690003771612062218956898241339210058222757504824970252516317010808039870404883230731648135591849924479949465045800210119796954982190737356074228202289278846051248288379486048437236186899785788926110014224544948357851509719366650812290656670564446999438301341282811535923403701947875168766589500026311911667654382238870363841689809170148877620755940517874306929304433170199423220367534273936197405953006682506532131563852124943262292773353537543728018789284086964910403312567348170002384180857519333620159819453469822431733867675761753973184075443840309542930969952238218225080580161382903923006489935514460424629703865417392792356557132797228139278229132462594732287290640267424744406199340322093874126176275043658046764733799200241071542790193777034942110403450371714296076279364968073712715810255270587786987871040551995624172350025088930737784004093573069563463264412711995705760331859364172403204190969291445517408826960118852373334781716545658064399043885366186399879492786949665839313333999754672621437141221589386109688877052074569478963607940006523936638050618038324311523100326748378727167993637762681682649293506596416655469695591131203861579882114589349769503541654853794643334108734814719903594509184239655024786789725819489107401805757233935800611833604016031534105356037133383322058880187147107461983352223829140610638617456373567441774821457397879952923196756631896841823882503116754702438388440572873737372196941616734796014562268709206508346207916312633153646251284262906579874399107927726556265774710351869760360168258264190243011671611708961573536775204612563808509985509564291417907128409751147707626604771099243574841978512693524394953745864141097698759103420512404246920531248189239614431785889175997706971008689315654258302133590263565881145629248313623205602489796630634857005630913456155051209349834816549750906479545732967472478166960429901841167483600955812513756190907181821307600939341776014857807219297325835785130479447924478426597506020477420022588180785427098413045710730861533905821556605708660332275540193335411353294448529711249919855367070540476032077051165075542318488379149955787834122102363968549975524032039355234570743755285296719380551340221528572611727243001013219993070396518555182079012801882394385344764563041272048282308520083336413880590510463077286516623605577472067904188276249336296030575389689142168237295156601033797338636677234935339783931885805906327651589322951402986150940067002832168934776557914520864022232579203590996726732291481884387536868020993147239242088374142001997302154375507337873991451309781031543403639554897453326154355076538551867130821196651249363060705001533244462913924566800708976999524032863246705267436514390878419457875111878962612537333039212235341366412337554533800467976028674412328831433485985925299802372151973260028414839831174898251469657901705515834675394353319983067293290562070775742547443724660476519470559892145483342558384132378896933671362407235298795632965086151974531414611192624767421090764801106075987986476265529366829128842461282949427045871867500044582189953842000125522895854119266881214748607385472680256481150585400015388235396777562990868789009825266509238335821780735763439922685798539938865455892654248957063618714906024874656574496230105782943862043944149538405187114867464110985301986329599942417325785054829758452991121140211436710558571920290812575907893081006843166984344863168381175288368764947356987040269728731196307408860174530290896015297531871590986148041171684046356303876431233950420975023694474526610164342854960190030474035858330852130572677457076490627077180149269068189910798052377589662084845790169951765794595611972651523007508201783271545595008057101590896066782795113273290615803808633157498973189679333410007359583408128628607817736271917168817339832660125145520682743978754217181429220608357294422024303536379136321715369606751418475958552954423639475960748496136063250414427016083920757464583920758197740091858210144062618174823613024917020100272590341697525710731914002987567489064233737639987282616580942185406527192135659059344017316661301992067963595734694171769690220003815727120635139145442127871917349687734015559481128385259157564746358335110761466262266283317147900786677609009838506137816193217408448570321561764549383466921382079949475968906457248585049709423864968628165941619515224616541670160456283633295125092546422133590061458647353038199061505546323685936304815248850466911268135608574197500078414569022750470036954349452908525552252179803968847855179943674283017612855214323071564921242759840634681323856922144694403738235613209981859656907966829421386477161108700144817532291175151467285746356118404320593324982637382953308604273789067944028857560307645975298590617642560728148395356339327516726098201453188407270351806497196276046180899746843217329406778232196414153619876390447328282249151505654593456174502549866515553552004795575165515240675209526124422817671449137958724743841602841252425690494034266718428856190801757733619907633812155321649954688328193075186678634434672146482335113160893897271716874913734673305953137880595941358062567821794223717652879745867465614290076865526902640072355988198156942003573726908359309845216335705320942930166116938155525655923765982689078911550820341106933302494706060303109677074248977537162094731798229668046506777846890029491420152875501575294883085569386408638810775152718275230649132272841895675212594193193264742094138850399124162433672234449754225857962102338814822542731766796421483707100986796804872644846072328318728240546119267575875459836481710857372282967351654174858321202061110250946764072398440274740580442381974239805452572146901646600086723956642807532038505696923269741416085248688784218696341494059249613293323235813051649699997054134250333849006027922726289239608914392898403595100166300576101382440402073821741532981266795112435008364466138057683100014511521725382698290971254241084704632201214161967690360823826171570072595673397980457355715858794303448395578549529630925126237364892989041591016268326207871716358659390478482188461140597854094389275918621377702006293836246473697758277063463849815815638488995247175539945529069175442218102888232488328353314524456755923610180342293714177550222636555533028639530805201576817516187086585982434172834137690178715652352453982399367145788297745095690915047892546384223663287688393111858717998394760611882662650022259037374317135281317706270424524963218251476895106691652869603385387336117522152610097298134279316287420411676571577599353516316885823431491156547534953197550236783942057174743279187039125232624353484439163290250924261801076471497763076777820288414535199603478767124661482232487761596479508599998714429809911344836310192993155944413457591049059104376220166348118783476340093022460143405904801976678840870498881270685824970996337678685079340995886472239920683389037504194840416805341214764416021941536743011593440551444415207251847990813798445263768870088546245597600976703972128386681793815940571356411474383027134027745957372240521594083021132065965192256737290773065874419985539674463284323078725957147794973441843484060485721777674698314244970959897920607281126588438142848965381634842278902599713058576125771476437919379138325780079272280279299720194313387902594950835307607750865243215369714629759112782332363043509540150693667602323411695032473659138987972976975954825349079723408533842282470404140120871364273219246424021338073026927640296966061817826507729617160739598919110006520230070211935557213620838400470982350667021979945908147569679169206884643776917675185608302233992640199787184071020435494615352695313656905816970443433430411253433948537266218082340885674446197706791879770409420964169932597825006012722857060801657950944458861858232686833654130888231281540229444511584164077498950751918560835100687908198415747080742811501110056226087847492765294219126467675311389135212149285696479210372213435080248326331559261089501778056336013800327814237123227172280912830125046494469078128257418841619404523792421564532239348172927392353742036657870307330186185320056638759877291164547872444941001140670140166766111658228937167930520165781686597223127986198738130549756800361447951984337420790450961820904682021447968594293690066901906376848957524673045139663195843761908599477378254591229260856238150568199627089375075836624678185673602185673756290645140169958567712078666836630487103836440881946284103662846457708528351672608938936331895492125545278300882043543531208217617342726496537740937818583139035713224492732389876688983855904550297117828328937058871597812604535787885547856630761168073669328871522182485269279049375829847350792201319492155337788999403377206869925171507924297784340328266531710966866788591810134396979992983461031592603529138335236819108598420618445957617329195490637547852452808646305790233630175027930792024350468781966265844584204190541966693934493676751852248901195568809943046220460620551990187679191233661281169662606211291223587951837628886295093868152973724035305144602348878019254369849458145180874215609429208325589649905700136266233229724335425935688687510805353640493093688941247637757144371011645561062253426632924826944698647430403652122354813611418161586504773805584371253203132425876220931170666942638194033096823758444750788258461022274514809397152635187432981059545880413112445413837632002837590212363614067047224306845623253557678731529622786525491565381203382048462007311886034710620841279099861214449978627471329084493039914390693611611181647035151878015867350400099179577838083717955787558259984227927226048488036705956224010467352651113210520526142382823188803484502600053939577685003504169030085110432461501277025794926878479595380532918452022174545577958058496983998036801581791292299531168499952851790160869893749282897760272801684066650767020174909920888551397753972143256960833436781474231553431919974457859395184320859092327801551444809806457777819128672495527520296891591902130353789251331383502325206919300966877153427359874366160661789557838886284355594938428356124342231735812049307761729289744940090660806054451429551465408057381623790808866505603205491697016214320205967376708685769810824915765580716463309932786943246883062772200203232970685627139778649998019204463323084249115095794604405605390181523743528157919200230143402866017610727597980193209346095737028695737492211040853445279269583792736572928676294410874986305532621701218892999000635698395406738981814693907858699420306099440741436009542307812353226417372009496162601486147930486428168490852680181287873023689852463867545870257187010813928324038617109471202267675630502106498509918574376010031368487192478730400751529841700778298662505526045443744892413669845170786284146727027299553656205954753407347117270570069697036971591934667762039294359634432623361198101307984780354557425913649955087331621924648356812214762759242339555881370815751971284959861139526632149018704704982849429904913731831835719663550856950075661826728785243778100149203329356204742427966972292078713410265922280865326691156615514428773479851379530823728816653880369600401291918337529301661352122575518503953187048739831457408668956990103623934283849549331408113964173252660687626981051305344553953266097436131604304424096364736604527798010381486875822523374615503458842812356822611114426867062585679311154767448521318448272204476736270527676087062301723533842563263000824075162898562379510304384650306764543786177667895613205572745412008406534612713396259863032382121197416923845023607216373389197597618849227599413445362543656787633547549864714279771572037193386829481885736637867167101355475782844088912524169234394231022253377696424280870147578277521791740763967609034780184219178234510983923361464398420454968063291625663854871505622504646179552202428695394554632030039542997279686184403083496827235722082449224224924355053527385786949865880194989642048203431531023795374424208765563885186615306356500792134169488176509059659480793376336115896901774108439468172763030944633369357051055240715151871582445855178971079379593925083911803624047887169978858558687255806875675519638004168902686292264619225356710589470859094740274073160148837413838662383048611944363432365193854528101230761230749318152144806263802739054048479977060566713147919577557731872592885177625877088527937361668612644513315965147040864882803232589165046421725686981480104145547296806421757289481034384388632200003966355624290223354562982917800896485859165770671696549616241786086432245535090797316463820984109036269874046152243844992388886180948457666902724728388475817084498914589597121468875961091514639135399253447780613979148421482889554413064592384400854612042159972999646442660756657668564636995613310569061591386417249420312432624090837694372312113209630999654235198212142033782745679859418634369490696135536596332514069434701776429605416797909570173212391782926781150636559981060708332441348583316950130628468091616973953063598545217253901221596905106505926604557150461011304852612205698117829587171888649912191258540573817661836242611213857756337073033606432634689560881760931360864253571338313888618830426110191123060773974889041440751749386661263624769007763863478786333253871150761458349119779889309048852896301800330277886475564930467342724319796610406276414561324085466069976979427784376335166916439376600082258432748951422207038091831886095770769665047526955835675231912795925017690061887008701290284115087367490003606901295576277707522765913368098854659875882189089106998311466045051446834990994415759973832370496192471090889591748271670728771185831262995538993760575346073647906896384525135105099040471957016695788398942506437527992617804712948669280323191584488443411137424662368158320794915979033225946424010565319613804617784500516645574739719579325445610187506623284700460472484955460348784761621034189194753965852281500948788311506491869904555709544725517488709233466875030269021565301455608250614544918114243242801459350365908768260765569652068905462512963577802942865488634398279561603943617926648691829357906398139771706913658259594839988265882918110215372128557626984235404691081329174305762007757860836583614875493171361719329728876779445890333166405602967157650966186202289723189049928984040372487641664789860625581290470963085070305823490888338599051926735837858558325880463759428946860653713192221440425971645960384875572292003352013607989263636044300036599075513275150923398222453455458541249132233317341423406095748506692738697904927128224185013848675548636971058626185072987999761413970312950663206170742201466748696755939083547499213074760671993587918649416221367129627012929197549052891175521627570164144650628456776547905776264023127790804680362945051791455877060418072944977222121919062408242554983977198223687212652607975239620926419935474666140900609537382821666635618467988507414641769113887675659857078251135078718498704375762979438471315162321325226947657842688449174635444322970089415269859236441285606073535612759526220293448815311664001083300669990236635203467584001998993842534352772506384505624658075075646413263689765751592508837171338195929128126405874889133107828883371073489117925329140309497486432571282950160899590560122389993754821064348788476052204163656106480350899375500708786562733400302143655099295368005610060776968800353489417016645165187094701888719805663749090231887855893314835465127842910821545024941208106029251773108410579173758538977279656956277750420351687209337179133152487027775462266479350053826339761201240152358278078187651847557196618794290411086149037292426347988480072226455783285452194640536242877999463990732701134751559656473186298524641515339445165767606630941600494792541057101945502241010708466189497444470431065581376768122248540502096365530369717758290149670370475078929099337732120767219372981284385443210026310486110218107071014172842521568820440638072391139333712296848087742480682388938434925113446141672278654808961799027833825925127596902984621250883800071363728368162416477726015185140227114035714302142830916588182725463480075785914213337820423482186771045625829260235626611978085196373592106526024222938152811232884283142713739692862607724673515601533343751899113366848301872821941003011410482368894215342172767878931085575314643811755444789662095515061276917627678435012915567189842448550027525258668241591357322971992896781876953080733243187065590709637097007394909898836015201499309075343437264093365176247145553840815895624151522876479491569090289930890605651362067696753430960854782502595074261210838242270378883821206589402943705755812170801029311115981045545059888147154378208898911418212263225151313487968081692242914315756174018903545416464262577021399833492650721303203460951870666847653921604006582541892613099237331429553851156907290921365554746420458849926342015302990778200888856614805482746765087648005504971131837067282001690540199155308251594222837137473246942783853199891805568400339167172086464404757634964240684235207906524161644823326379857172138375866713722408223565673162532358461970518781957068358678537856495152887739967540381226969910229119744612753479378198383817837181463115272020466824501878391025394067396064693384700114812873681585294280032675863975790730747113728675087407772271643977910588191988944684975011820678605984595342531458190125515730386623301843489948426219136665467034618542436069570110250043874029144823483256603573185231926317391573933766053423595172528597129317283673427638637617642347239826082630815150646325263609817117498193557856385352239245428471630761407201207339655298961722228615977855018181308867246281893813877287619119585837422102414089788615661033601893242629597251937183409143526620993227913502970855470290142503072874897777598498964023758832275426940939045989738796053554027704105915707275532449916960282474946119639919371592456770283126124603426739435813006517673019983490800483963305220751766249640679242243428220275306568832493073555950029055664517909094925606118737687473438522195429162474662558143770107132228770005843134895998941206870539515209662748441335443882082520235228285252523939747021980698541301107767195263339819141959085583726956953909863273470347859906967561601267446377419568232161942140895549614811118121631624925478449586654791216206577309318857206089687071703211621453982495095486389747096224225612885635128959505878778093548984783487403518455729997740864449178950222208156229670077499900008547208699976334776210692220201150542160037800444089875111737342193844926824224790446140762468041975702109676740405628718636156661546652434461294275347375699251085520765353217519129760131703008206541356145266591896743554868447300713393587741748086916803441119878328183275985614781720476060824594577779699796703278541963035099715599529044341493115458253614594108966154148640339602863945173456358170188922956254133385599946116921193948888737288698878027555127690868040337844388131203328547971894084934145671758260125410829053537248011474405890311843731522754177202081651232098047208549155997222000838477609071690852598742883166708378597996978883446793809642486808834603170565554430354705350494523175096963186026864509544083403506176696339593281473477227529843889595788265127303943547535471615409610731301399538606542651189624002231872235787134370323494686307689488425314748031399454643569275897185405116777458253105581979714240424670198444552691651828217686642491095105307894976825961921447718770982026623434908928096646102038609430521700847046067315173158648763856957036141443678286337691866713244177882420260206066493192052757689599258223640469643416568685035775199780523448558081443842474654700058759355369140247741490810387631720853694812077924793651843062934188214104278111280824962312969692800902340799671967112524020656743980191250265574768774998039244778888410092938630677151959669136912492849923296638893535948446818496005227728227055683184138527724885948210645603877595897800417176960781386199439928779403455729517246396757686854247796923720362047840568261055743322366793825719799185884718668627100978870334769808600457630067918854042619268136299549280846107621047891621113726767196482923872792597753814025003407732334340158176189620490962987395876948414139069104843222356927820973797054707240476393613789741321504051868045876541225099481311569579375290056631447432731982560758227590040580586467050486415910388656661605370179220325242996268445205736502128660253343370243072130688474125573921543904999109978999065009862644656418376212935238819443494910488789846040511705509127054511955724011537616712610751306744738416020136925755714671938695897926094889392222753314350276544544492975366196166348054260987179894061768900192430576824272619775677843988632249131346037469567379446564341940078133293723539544508590683558490466342985105814510165750721469434012778392441008107688957950033708748756447695360070824959844313416741730220662086615391027593224297944405133471773578648540800794262449029002452180023260966545368548312232465909917914750484589951994237120832523437976737684342222526885544171402595348222934408481467039104434527508146924019622565508475779907033315684741602797187588877460999430109135665000470488047625407602771477680203357120203508032811749265619764741251973570586664935677124613681194581716529246274039387340103139784099853292990547926614011087124537042094039139240778031693410730005468304440579189427425658011841340981935573215696855998705798664550807921187819950078071611965173342278041797446888020577517527180908593128146210619796129174551265872824268823122428841266434255310611294948263912393629852578394500203765664512568089015057980222318763520727261777682245473079900835821157759221402705167477753243330937304292867870408834226427678122906405435871669576660833194711930145083158331269975581996660443044966130349339494353456991708892980877915974349746056501688816463168756190562805871677190217526920830084521309513166561947961690421211955708565772716737019895735769318517645852761925555226701871473192948608485563877526016008952271028168217048775849249180323954192021773293773211275878605940361778104336177341822196146399446793179415895947363777400803697782291659543793040736565344285467781973506687607025158570556240534897361681145548264590245747059564458297300638251577985825614269455680601804363145123762024283664729693088886510653206543581046833744031828084684337068260058863731598388772852593163145335135230127956850339322939797053008619152983292545008719332389898906521077999031613618870462962414278155470709496671352062087324439721512114731008303803734292955977675551417685037822699542419780912891123856194426297900555008903355458775202308200530071132055558180293468533917158549841385837886761843966271091213227605978822099426036509783638476238128604451325728903538408215020328544570149362106903804712235938773177802507262808380465621596990700048878913372572227435025079436820762933373152521561727146841611921837841462800259780070484292277188185277983836507602694203203594081567385382205688982464252369674923302088667133397306732980007994802356675308814167900426270629882859944201593080967698891499260272703886244914377901589273561067354906801906150724925581867820421834777061041748974205230417763070785109451166461524047067929272262785327885034399593281213754289724827845885450868459588643250108581575599240474007400515629826727536216207960838506901310577496901872727171976713789052995340098229021451834892170081743642307261743563900885770362172704023821395031385574969190173199906574641688648168119010910304587430526774889501909440468355150331373309420924654864870949039324953209137383723607680569975512813506998420756996406879688568379299869707993536650510615995122042810677650146604658896488245022278165474612325891003124670402423201230912494889745378771444570331702242170453969837495230526679455327553991510328226150422829119944417279318496917094065771187207319077926697674442271056424415596443952223040022558522715943562041040637460681742324050362681924374502260286241534625283583236465255528477678228894987299783868456977896379918876077926397337311208591799986234182838118590732976087346939674095979001305773795268850427089555337720019858816966166649459247994977464714968477068530270357679193778737317620215189184333647566906846864879298423290199075112711018697265196782071718894728171554851324536045508541990697096496955030662273825722971931648163149913480487500941850231684478168566082666119694298879461534461504893023811451627930005534957989954499724612388293594076711712486678664530560991588999840053004263339677977571992823391086847751043190586008466089501543953204649807179009553146345660839353903476044038683709545553945370337715524135641550221243037554473121245113979684342743705688804329907950548840172707273150574265018552327358318008335165507354144260943983951579802973006850764447286086299265970554620005429422045393314738011372723405759838981753943261856197844716699660906518093844112638271743620900084413527340299092646828035437997882078389729932710757400475689342601331249992425885006849453203583474843431587508190422801024263998642895133138720796748860985280205245371945678668528330830274160995633321022098996773947967524679839765762885883852144163684771829683522721909396167594560058107807636746601217509934127557955600704713854845857330383155473879624113773521560493829821246961025966634997379413232835030647381299668315750809827144520980135606641755529426955621051170683411499765533768953551155350171178090810122905609352398753665728170940343393795701950625617693047839927096567916683299938876598266725335497803794997073686769288816700142153066280013724623255342105723859559976609976774573894134893044024055394938160032020039543619634928595985251497565215028125497319618262663967363491607020246148820890130957043136514810580105151920062038357177360746959538889873545479161381269941151639712036466553355558452334011064838256978219140907435940203494076899906347207917357960754871429294583828604750628509492559698292564712339139982521254314932022780738406732741769559345982889325039925965960789750082543162422955384021891909741376849716893763625348259292035431140987006666409080599799604161642087484563596507778357370954407476909871678475710789414315204094785824583993851532390066422208934252638082425898820950075508740347330343108211921015172751382978124511923281739163281076844453469375545568611733792314419636589573191306247583933729909904449938005886609089321824299004201119819312191530721130215191824993333722549192323863895514206141309288000723671151122224584742926745976834721832297678255243885403078200549221128257706664295798083735226352062704945979332264143843232817531052739752357239136297273447920610833130020077120634268099035942613500467507730728950280800425154168077550411885660101797410248926588194446842719464044151448726951560240524854300077445187268186494498679549940905312685038754957712664474693455071952704828725672472168871919784398124778076014894569645112039699056879317907853382306920245510436748963674637218181075722261357204303282292183544497378982265393148850581860639352590146590234432827823954300333203928668815606959279951850725762284366540879453423995381106876027672710023912842908591613763955458748181204672355549359249618137033731521032276165561998783216639317320422452643263151619926117894677401548392822441876332967376550812035421168933189761159535021692451142305921105181543944930959128710544158957038250760354234860546633621422025775695892318257786587376655472098608599031246193356064811062371873261241466294893901115588676170507353890781202252345946886908458707893888247475694339292226158977190514841007085985839263628645954622024201122117065079040048673988131469087825876395149267036255141067730222011972329021643908517664106201429280556927161834016456972244248720270792466549654703507930586834244341539760400311941897218991345121613261051907762792580718392003188210369147788418994960689351902649801115410897371423584086246224906852452195039573738528154546227119280691134419239703802056241033659290736335271133743743466181456163319190924840723089516537599748835564116765522779576428511926381318686737286207262088692345829543489370850363740025564900567432471375643198506542449073773606264208875118897535237314065751156530898756289397477591383306122736967626591586734870468624804163645495624018197301430186647140728766857820381006447479931082178659093308229939013792157858311793986095521198957448100602278188078280436000077861112739836414043710243597891361559164476691258597951316500817675300954253414119697462000989211713712391493825208269312027180426960313571595248254291728646889258930976995298894900165158080965544173506606907696181844619768337317590618694285209114874016339251359843674478926675879619796308125542359644151695529788059282046263189849034133914772215074568270217770521536461388944108360809511246394471291256082680414488428856202978645773136091736883399999235697982512055655579204918916882410671019413629659106305876609712906004958859195882020960122444859448037616194372623118047596107509619895112417358181872047840117946534072892244828148052255938720344604591448711513741778261966720049492254634180799827829139521003624657912136549337478689059145829746633565808968928975376338407918386773374265756792196795793949540114980239081124468256446652644256445533633218947405156910179712192373443434823432473218153611815831384897303562475713588560680449086321038083489696992585862520094034256539815046657756091357166466155881278548957322558537044562666007837805782859511074027432012598099865298800527909366981355948406924762346394313983304427892072955431852841003636513528894082201884017850332383595333166714000734941818800833821075126433570369217847499930205113850909004541296630190210109316510627331473312210183228804589828133448478739969256168924217583732443734583229602383821377962542033505328615231622886479923590255476265487869525881250104956848162600814242591773625897886360053777075216592205697188656739654054939372931954540955630770861304198244701206062862865688366592494968466863483617997828782630885492851504542289773275819825853920188234486421742527840736214740630972231503464191016349980396430037832366384955133617928949133369487474467531223320009119565979654063713456175889618097346284140620324882538682585513108079997769223533035195520553479444942393734215505853415317999497428093926413898258631783354172600844936351290684566594191090380944804464617159152251808409821140411274028709111326490225373871599675505468007239039011617824947811950159819416332656005530325381841534729083600686192423422669464699559295157662743301407592335798582643371869756368613788200345608507236246931784745672154153877907745880696690800975118310645330681076369909914795776624124261976149067054807715547104360044466207029432994558984391204898440992607097333708378454732530742221228481971353095301822604122444766542308783626407605706102667159839696137430507577010147978436324076561166303288015706992409236093104543002208668419877972687765952736380937453554870597945511187114727683412535285728113203324614847918583401811247031088684297768761209664569851690056453883073800743365086322898725871024239938367775895649762167784997742759263809962093658700813869141453932666588129007215597506258912552383860862382645953533036078187813309804199804239260025666853553575315737242786904163901106204297083931410292514052760442274649340899034037369636787335865656312230459345542326016860885054809506754262898667608285656356881126542449172888770817690021489246495122756981635745492039942975821925643632509938836099422327882633188856169372318160587118882600412027771546424660187491249791607784328735447885374731535885775079423961467798538747939779327436250245932653314381376871245905821204102914601256409974281232357345825266845639565334425941795228845816487712068931608876301721972026141186522167267151169562255045456393183952720501663587192627342273561753842241871823465727690048964341405542164717051097472889319289485964698994530674073164161295623835980991891813915127757730037909381573878490816143204619493901949958005744784472479914261713927942899952510822709604709765925800122748377517620115713325017236713079525908631867950729219914958645058296444067541927583464183092628175198399393813251458187412146806855619954334075047138494698174390830199278339799697795817087447445789812820260918914707207333813790283877395929021475638997651634676116403874957388582463156768661659886359725952510281229691380081320538342894850512189765849863695541244052830607091564501268644180319723814868308260130675380223785560941968928364884930281262201476463481027058219420151070580812087985463025568437663234672096633820543060982275558136693782366899416603527811941773889205107096863543651441461229174482385501943959904048997138574833289971223451287444563118942690958187504112081462238376266882126629808750603920772298128144016144727994209825500663814777494531433740211119318319992073112049877818481360889277131637897392570691058647392615226601793364882583911105600581562143199871131308509474137086571954633863891886091079279358592291646003624937504466686385907308784942640539686087106034285794205754879367584206253516902584476235674784505687810603302775890754772923771972748053995826833081877761022481943455215508325800666259603515442940711483833876302607908607442507872805947658178145929786492685569266911564631686897849183835950296180914965079864083467220004072341163243510951176674577271665575227105456263914801435401065090755641572304614437787807135511764677814472488632010604579562167354515902539545238894954928097133521898240220355272425147427805183485178657149282525195776144379427476672944410732520569019565649272925303839849011336599272314332218503516959138121064694498039955203048708965891715933864107337522192748757581361537937708354175494835635893633324468972727544045313330235946524938707549715396358069950275166073007580126141849076729341310564366308529634352676134823406261577899407103694363996371634316967099202116738779251325697959638180591466493914506266707443314071607236106205441817428202326203211048160784284176520827518398739549494198037288546382343796316239116410639055208747067248305233071573164943790985099749396657705311388896844638813244899581140542326658689685437509453003432210857771255327880209236305519527102000689471341817111081857386995536535655576519013670957629923328651485424557928318331106687667050582070869717750137442588232311587557163387026299585092426495687751662390452488564587593933307639068243793022134310156475747325124745334775093640915498527853681579634900570695570978649168893241701182197387813416009907167978524530488528809276754182748001452910983360307114025109457694781810801095457015895849690225882588884266249780646249332864751254877350655676824752349156494666807833170450194455768884939232673414786794749554807696188357550400485531148846062791218251745768697769994095588137655137855486785923014684746519813854502815949331445192661105182816882317290535586092312670097354253713582296578935930100064151187088330966987993073107146695267452566491078980700011098537289416595465054429512537372275744201741173078860506367083745552861782566456324457712459948815904578890375032427190824237719641885558009825277680211558575853208472644025558991243249056569433453988536189377849025153985753130515815412086142518518062569169550681845541327168869085027450239360112472738383016875286594861508812706901957914277447547746129723929870410573414440098454925897947343673675041297193071642995449648054722481109537620831171074757193173797019682644633656170236098725898436133526122351926580368813139568949536878193792017472819767308750880074258745654913424750508419524867075811356741720784392627197199580613287651316136102826916696723844434852025651079879571756314525551969830801239966469397176198825462248317712644804773055606856224035757779302455688247188945862417962959544075731101905462232010645354583274415128952874695151212431466813503625629111954557296191760225396580487676019875799613473617750095532178841317164646476976818084691367429040647922315557552139548081422370325806828713711393605763101513044807737741537850381341369107792015694790278890540296859459421376351135794612347393864425132900371434037584408481431535715706768225704574266710866475584613643073429175016537037468611167422945236700842097918449118768436421232330892333184592878086459852162658847092924568449745729433614378121175323856031151384896746796651190103335637737921974365454811539029731535711284813604304741992637421178245358585315320857929680332329253715896764841629430050168954698136060819183408399296640200333994646078641628902779324578840715218190910062128561268463595179819205651011512548470586537393075014145812879758418710750475108475101170601748713841503733884593579197724795617999129110129542501902180406606243387038274279576817987283041041252243331258272950124885113690381322786097121163621990932173902453952848962957829142683664239146753557451867936972847915493783245259936808306338868754194959660226145788109486126763231876741362545298581386517120616589311584231416049193260061159501345675116029078533850911844198366422636200907099609627391328583327472857382028827613033619625341381055130730735642739627133520875806490642461478273788663681280035315413955405390269535746858007059697795099749212008489741523577563169144354182385628512883323221239162488023085589884028580949863703670996797532397922636758121414878438147261085595881797078329361396283805854452856913820559678653939455734170430331608096133253820673536644863605634620694899863301708400892270840131525543171324855221674782508175367066310430154035100190794611295146530183563966281774940028481396295218259437094753448649931122435640638385597552712610174612153073294253786791746008521362491435418700552890085307066911739366559727325354797174016853805828284752846908976798776886044985321339521074434050689337508516227110799409475060115686863041113333746728286947236586760094246848039632822861567783552087523086306935788558283921739568927011662471614030128363599053030663451664067915600859232788502460800532868540742218763436199398273528273182786793095911670147976442234517320646363771149374002558105155393879577198078831956097492798117915770163683272455235490265703352929940563052569050738970555746087062127132496898564188114246562716531757146762087467941521287737045751477215491066810478183430821393887163103878211120972089013696635229558598787114508817658059280717890759077135724788089749298168157978265710662783761789192770705180310059880020540606179138601780231418959759502835442575731396670183311695024648600552270473615624565005311629912563328429829209777825256486182120694447820977306785180040580623808544696422970779164729567145170987708598394508003428671741097944892365555412043036003147281996949971721294997088513730778290644679831364509054839787783594431133806229671767418611292678998498157712589550470812031423741067789538819001366313103209108752044013168800949168917445941633030806528378316429602551285921225694555775145613340551254361013687271378652886746569257347016780571072379128302470321216849922482983980719901807902427927725514711796790808508234834401314046950230975192169579954234467950213365747443988025798338422142738904981068813722627866277754072010558187522032016290831836624936300762939143746702605974623842878343072938306895320205045732192967543696940580727897747747958553014360938240324706511101100323833568616095235106263436359195689909333504169324493995637889148011242172982030593080673421933630078652046263371984137234334741942312222893994599450502464082989583181509578083034921876741223422346842053282202020168679399738082647702054966342223490963572870509291044813010037741636006904921082938989789598313395973527815796808556557134671380412434231310093654130426741360673102952238575760158696700742368852357929335552200669964461976124841337731468255775890885919161663550216283455798417916971480259049665898791799142610682475322635306354627374233469805613190099027239125842564614402024679478014349027929622583608943446452745058552323711660086411710289018853979439781679601183505897773203236672787961643200238605191546124688159683457818077783732571431966228278388838999618316171517817484026571823117501371958650607341061696415798768849824596312611718191964644337886490103890503188721172861821628640380810233137664699081019960043859906711405214554712503772394986111236223510002908581093239794645761808073726798824967947679863329545578833690708524501325128105146799518102131988764454316513949993382826334001946055805242415249564113280365659863178537319287501030763068965871097055279637248174298698159519528089227293886400486656346541226927781301160535062021545119987635058646793240748958702331227645888770603509505289028234527475178419038777766565025989701239832727182934600934758786813703831227228135794411747989424841593301386735437762142423628293692395900717900265965206863139060801594922896593954426273920543221186062726884255984199809966358446802299411946354015987315123351538049211347888890921347613433482599892333863168846985064637376923632310240063227815118172813095251046226928180566570720671931942618419412417150737861714490452433610355112205228757783653194768714655742276071286108074297065171263875342431222428502833873303338635289823002624386841153952112557479030664549952973886136425865407886425212872774925751114237479083585924437800783497861057187433684959038874998836021315448688528211926201109204834319844096226286550031886420966451049954782553086794279937791608750129239804463896544390642777109416653824390719204124971862849939297829680260321345141071554994805673189390630103526014216218179182839838885496183079950300656743798750214028599547592383783736013107431502162630865809728579819814862594721094197172653657343436550782772067229862919671062167501149306005189197574386143650614967153290553194739828331899772391846629754122324147965759670594508581914634493742539895489998870409277350832823965166891914258655128676525636449087761954402422918502760299098451842377067165114588184858532574457543379544567047299279134257058832991580726763490859889443118997153886759837438683310228785803007454638445226267988934990215089750877676940505392706712616077586369875808819555082963505992710953948839247360031477985630549300668712739360814000429399755612863892319735760842521770367800718458478676252393641659899359807282721002557497921095241905073900188893974585464269325475504076342424328379177627341865208933993965365366588751243960498471972586716274302891900020085149866770157472458023397265497513077250410935048440859198005681754338930216096608090838515807430026415420738816829324988831618308590102971028835652574667846567920046673184668665872742725280499303981756867748365118511465692031916501770947212412188520119098839401567455515673136962410851974969856585022322814175751468749589948315715558203754044784373909090274978112794865490950065994978290784186584220901378257885357418943000965874552021048321317122216050359462280508901728929960397015956693587715214623440461927942812546561619179071682969864237001010587103980233541999416628631645944572623899018780818212069087981944063402868164481224480439461153187299360624585059092546770573063495565400314118386022969200710672459521030254735598468273777098314830923155698192076351511717218757432420774603935855167624552853899866101899752851809958608830276415338000298437790935358023359018619590409100785288484242653026975069721924191104885451156579670449588077935172155786587891500743174844839914739721663280356413569915791097647542861777376570531608344594645069541344347602194309321275582267076895218179728203784382807248486433165738132567853812092861874537411663320170576853368715360809131970509401304774217180738243572495524973753537082155613889915685759900976218894958075897653528696629303767414832443104896293741950616657564838695800167120265100918125553467107115926235513689630649261888049676733517372301952682065855115846393975500444738217601764534232276316051387867222033692928825036900381014477040541848763531677615778763736604829531320606979086957717888037459207941621022963431604151628714307159212894300677290468628721875691700645470039392271749762762453923927142112180005651720423213218846734698710493009459912080640571997762959370505271749542281703489608103881465941253196265641381016238355318141688625951065119985336730776365007520945053538246838931355806031641015525203019007372262862976204655557750122852554412324730410995596204421114440502585510331418881687409223356454757149762622523639610232263987131903258047921916117049273460514187674106731024862277365317342018532339782634758694407094530235006382229907033103277057235597351334215591047865986551370067454402164027535881597108804023086075479734767550034284440739097942843776706143047592932552739138040941387216239117736658303171575691059833510205955120674971527630049124398775540555099928108924105483800201738724519532814147572174563136859083058980039029787233837776934018159380313343402960990233728194606757659425970939070848628394759296443475193089055258064934378057634340938370005140264462911995148577049833836854292533581759859872822975994779263634656603534032795907064203941772504557011262539908349091903112847565337895163241866480168539741387043197529600899076546844862574674290776193026501096442428658404543353213972672976594365710935416713346851992701231370995551655932970829523926559246600936562371017166013280068501032978812837653236312690217675695442835303884477271153001137432574099468480585765350511431698249588791878179745815858201792261239364401051043810259062838980256426190894063797351888842459697112061594964319818614650266570976013638844537729692527528640318662183063362587716192744397081702001892600659161839947246718691308559359980239607495643024265083485945609870212813756093881766692840819216732467363613453532047370980328346927277707267488985326954806234320756972593448623465114587362087352411032895236644947224221888174462218283807947618420516673682984743082272363914748063565711741276457319023005764709068019918588575512051807532807333208205413935051241041128054755746052745787067957485648259329430232662225575019252283256732847492270712043333385648833372990928419006900311995647380614031170538986772606866199465944873793308812826294642913535534290980482843211188219973216756971025853506130286843210672438749914487400028766298986735828362813264551753435286658265731553967777815688102538572087998951890758176616698886860073745513848103700065700311052701508412045874820329961563886843160532724580628435120454493960310262032685431482320872632321412436339142375071676482071412236141145342502619391028590375683026854308003618111139808534618817857643075263483708548210516175738931688709088658537249314819290234522285322397833478493743038036412700633110119558535971577498401645931282294657743631169208120172011540474193804470747239603830865094623436576909858703172077672461414696512725510448436692542091785942304749109065845964104960070925364872550661745153164296466992316521002649508719991478078899779425687148040866481497089002500024189447002519790074039298381919063833794697661585768487070434252737930298262871429968657442642049987568694706957378781737414672048186095319802970520863825688807418020855259683577164731599141015926822778116423932004797749732984709891991177674025666119137467264579400446664594118651296062241202937140657802658754761624762406392987922846317417670634070539478759878476336880611358004440478443718780730604908586116385306841263296937517584250594714133250331359232173759969920490174995544200778635233347403569508705830589190950026758313862681432204591777443880399640120118040628373520594128606739593310686142438100668078827828021414907656883093402202795005717254943401577739444757526281919887141525940880100732622409572834308111041002772957764740074391677421522529756880086702114086417331320818369852985912307707781810554774324729328002963977807697443396841770352161931383793086250186340975691296734196133112333322590166640837384138463756423102076491557754458606442046053824402592511626055001969103351868862377517533194347033753228317376248010026669846748397317854553043295497969874686693167255606227836848538751778763862715456386347521925514151946678429660175137037392283162806759501837036417243674903401782916222830464829294067162548105584970081053800176202329280164476246820120563401012213395448791840159502654715804433208821612134632948049828245908350394526687508976656459899284359182067181901680085136085563103612848207526686371719644634586197354778662878683764604425529010729779532163170805537792119640501400531721029207360927140898288719273579168561394876270415767768796474864437361072599515392244701377918025909808326622076190060765524567886928828787979707408864792841733309952521457617123148258260824841726541142149036365041301562590198720382302474824494336007223677799094378570378705346533634555448107121374546772902063232652397256646491435307103870556519757091318430541272164127487181622114678301774302014328028263287835458746632673838226625287764359509234878901478370392663486677502309702854625388576916810010881970461940232451187203718445888916800311228049744996297855812560907236563898582312046594900022856958970596326396433561285354773206236959499674266868530553680965121938042929721001514937835772042185858504630745843325960912436622226452314163624091904623351978791076712326180220971365008126985275183032946487708056957367505639962893279418206598127757809662763973687367720275068280256310628415155431151082765488822466070425934931913646720780404852099505884848107347391134034927081007884185866172418129910191748006101399985444997217976555626162156099799438183019877249129005129108992357086502919882202958621569856788090026536778577962703210003176933024628570069028381196632500405636306019457502336195051490682539681138032595285669832387341707510304928086364278420264366852759328883328235749687812927791194483515453180525220022729601643082810613316313046487252610844641332776093592903339684321633071061841694925898667640866674063593620606973576554411731485018094564969457068351315338054233830141288399010498397670820005613607374390489078603759767576889416403549965965906041874902885207309956086716267032878852098523084318609799617311111033765217473994820606193914393903551155536529161812873977943981641721126830788521050776818832022277540120772282966478338414869330597265800710809148300793111800677472363179022986548016487362471567275576370564349249012771406484849411227211650421616228504477791067626121185384049509345606249240491935977286491895161241194924127024616000154490907617063775857818007869025364267883418256140973588677332821233049950137129659400057955659582216965257731224944855744965025945439629449474896407324472715212119289580211430593703407342821805237607031493813173056172298882526804239462683971862651536167479761650391692573266217151596093889796530818568368886173469912112061556032690282180144151438667630261066797209228696395694819593078164995133641173417478336972367993423006859571161113737440100721363727457399305019285744585630148051478047927118599787944862346538014075681199807419287388216814902418037435007266407232595789702269865319676114864679453207922233883125191993867225875457760933371933126501817543098632324416760323228716089932055883003240461235467989267584181515594447621563142627993793590762025689811619606290311567062770085427682968633763519189911598864986454859766179438833487252262526637197747716263292155449065916044444945328830615707688568839580692504849048634654713885623346229862947751205760636696370939954834524684958699480713869665792580789730610552881379228571320997815375593815232593868325782942225684239559250573637660158855228963747867059825746957830746349587962521528278431274061835872124341159033043504783175465990094507928013007377574326126946768040481127787180171647790114338407094926892733821357130563629950438598354140331498186237927243971354271718334923929589191489240756841520480466727240744792157494723985008542663960679677471613238374206134066447877180186870229254666703515967998692372004614031562025215177592880104984052394213450952938841228887141471436387886392529590952523794833262330490515649157703703564052972084221946210107667225176670969115960811657977109605540002552751670624557957012572125924231590776972344489478482769844885046449218952025683592116717342784786261087519924416270971591112686395064029180660894489044945037959828232847631398704535559654003070417452074641775719258525644190683004029487374517753369887742637412829734528113119118049515077194847518588887358570041734436343189900831350909282993303321274683056699579015659684694336881999287236978263857334774638121414125393744739598660558545005036848124928092752421248340967467523317591970880535421458620787747936654638205081474444971597866333677715626125339734806367249514899744392024614737380950711748403191012320586542018032695742396140577806363881191871314398624861347034945169544993154427504235083921279789882810306280048452354816394253604793056627813278563924303188565280123786397646823957354481791993931366738967388494132207441576350880172537115449596015229273919814087890378246202548122317965863738887199490457845752725923380726558962386249937943254837795995240442802741832325358433157329597157146124087566853781207132850634080047994905727435054416178318723894004532826744299141524346227090610125877150425195039496759240838017578656700335805983132704587907046514134706067268267557413315058329023817606403754930855758833158367004396384426371181526851325060807460046903652802467687221397916214977503283787286233751844861603519402051388802790921364715166560816449987772802662894557489171230579840875818005864970300252612900689448729847230165318208440977237011149792581352678601994059326966694259631160598427890958548709225343933331905271346193245615788098604241414097187811387057905506666954754649384117558669791742794026382736566332842020072186379911031639751839559235736720039108779841239854649452292646440009447159306105296691708331020042512651640489879945539477087571256418432450673010396620297189729546669885107932169254749829034791936243398934332526397173106358994677933616215534715824187438564481051531008154989371963145274334941392321057504342287574675789963943148202156078728686052333415201369278093020812157259783855648652321285150872195221534580669496090280678891983908687307905014556770413768999398608390100357067305365709898150658556521782924737270866030225679915594109871358162588672489533437726348607747459149221012805619569071231114096971481817406793130286312869150653512137663648826550478308263354288449626684788032102801018101546693413518729555056209547370813958655335718625540482668276726174183231522754958874405030295747505548782170571511024422324043649253062449233924367604424539140098651741383211264267019613702771027274503769743618918280437062250291182843400978725175286065650904977340464597083822671191775136234736948101280678151637283843337566460462800283218566400778911033518332615611296776465449956674065318494233428280222789401096034110436157438707727470554853179615647567612669606305371038489961987022894506003179799727681422113285845238671666447316043290595233081432344766217574720028682530445906209643077666529639141851772881775143791292720788550091802946840320363629442891907540359262228471933276513861918865995888461934570202775372824375316355457806897838975051917453120758039221612946677211410383004175205525171383776748606745211255993851365414468742244546356120794193676987276545792221749917963710809069782386786114797128224230479474415193712077684521883467449174186730550215145632190214488246602231717335902418481196837434573017547092945216086485769076404210079090766732002423807574515921360982605339415944619159149296924460334880820618205440534958410745801609987657401202158353917431225837381674957817049962355695671323108762232674671731981346373121213436942539297925283014070885231338548777108540631042421058164499626883893872924971060747000823201044225271592432077463822487692896261517995936089199010406447053470502635251027468585494798712291417784199193634685685476162587639704262670978271054104790652739610303455082700111348280882436842081810549387400303918075307974654389469651985809446727855661423318122208669468989401227664481896515196562245122151712431790818468572632448107288220630978306397087150014047202751153965523794778100732771147914837673490508750249957235631112505917257837572319700449884158088621145856767827374226492487117977558621016543208317679888842237613398026547927207034247839626590339710418068056417934913504543076746535050920735456741616629904355827429209198055199641896406623715554995114315927157811992269624691249242909662484665092188347280646247019330785037922402805164745154470600444127111943705674203487896481528580483923649577678446542783177968981722231238023050960553940086732242223827201783273287745897438000293491795914457638918090942824925417935650210855152120636472225363291779771303229185877220857853314341065779057659620094013762277262032582618552722898335267278368081908348298779595319490936163817609208350480740876108715911116177929284229106367687081986972674785704040963071160363798866987272094475457870921445888822189860758205121176600472644097714919148512280726410011470821476116878787456944761225396184394037918974072365409372950127249507943504566739659765353594268545524194271531854381625278336971817053610353294886815043940449916618787982866179533475575342920018185670540015302786222990140696589437967046965895099735627089373019775085559445302299183423713871314526884017778158962358631816530426242298618817213920924397452981927584054604740806674495602309686054233233790289766495183674838237723691260822811842675497746120156821715197335106119871609509950889880247806372313524369127758304193088245283880465428123779505398045539062257922294385679688206856706654566454887297728778692325614426417324836614289793793707952000920499401270654690227212022935608109042330698860244258014696471527969407040096062693356586349538013914097174801855392230557082711093308719513453464359822668758092596212286312341183437025967050203907209360507910673974764659263953279335419449001573438469245898638835339033438845930901107813316013030545332145838478710372020657607457155430921010970320572918383081101419868404232348601944142342172380270889350263375544555391714948124460046784607785780716375878836189238662487241264442535542372722017792020145276087230934287652002034857816586499578956793562909597682209102534016826532256117347065797249561207882023246320518607071192253047021538402927384399405738287123434714151858096698244813450447020325983227634350013002628386549140389421529776623052363842357486117393637131617888972711383120597589217642517513595188751169112293363091710802142858699406641265593026602315855205696713185944486984243408314099614375614587727152850274884640687334844680487559993722321209927805596531691399826580839628398091314810972337059081083347251189933964508464591605000086253572094218281890169408612044653423942022435467417953708601297077754772512556850235916357865279022914250157947609607616923005117177445507345742965588113562462215470322425360052476496493056053832990318421562649341781992338483643411936066277615401223615916660296744417425546843856714725714740635686741402080346152403885477003199569775324700912929619333652280952851775110214864345998512932617725210264294406941636267247057859902764428384075160619190655498080107917312636333160528202604637042475689701928774380837111498863464919378278363100918032653585744679741954136443102096984977365368119006340670096969095931356284096841588850006565808693413237884527034949872533578018646672999766038582916110432572859736620909038781599210995169195085765702471094208668956031690284986473818472866410521861531040035829593288155944380104088628653225321011297375350349513865573550524078560460680402714494066843031243178643693445555921797046275019789114710057771357872565772778325738677499028178422512838262283625258649920269156822535802698321709790392579821092562355836480773016044943022107728922699247507559652210828350732563418893448745900622812303465162580675487098319454518616560860564468867229737365086808406111476326442353169373358433122181128300723630201825685786896606564411929813768674451603965425157277480745015428933511526382361673150512267558312391398202746479904968203475777019696373463982621315974750723810634624910899443962149459603708756238984236071431914638619546944097251534298119001427153586138685180643901320962159151168386436992384077477565994429794658472816899419671879057973763462664941593326797500153398895726634306014755870132540669722152718049948502494395961452958231827158832384599917790139604630775524837381439493512412702614807471065881464037666290093062668790904817246313252788685650634773026362054531602651470043240128331499908584953279843500756654916269893496379626345219428291193558386290422012782903692879458731119771157964007673279679363296473588309088145741106442712269109081398216774053875313278133528899432403222713307377966267016030640079981540752460514266007253936159485440634979571079993005681449145692181771364002253880463800876112168391826693784376773138373147608342772599991731497748101587971915182528272468946532139147200208691310789858610570607832347453782348811749215602349994542567971924686664644460371762168174361018321361493195328529037182183093193383764607767548087727091365493379617693371912297405372809224021510430887039825224904663899371898340827395262151757762939639849495789792879619645338311330187863886859957053290594223157097277205961880151582017373181603337746163941097080870972036975460202560681551132696513121985669441832629577168532029184197495073780859242757682769709790663940706778971394959399247497425053317400591568979793108840246179101301318369904337024933502889788199359753009939647595029126209082413559872811307231721153594612376087314968223540423870506115358266755282658337753934730176779006347296996846847972863103460988587151214718484857901846860935792610509612874169919764089944099284000555131585864933032171086879142479978608984812001751815603634184362258888922909078430808506786593383010448126501715380121495143491114626215710947288683901232696620647628761904336506782379082624723134836303220254658398801026122605266382197178910805965760346198761612912516873607705381150931634147737480432018427729535254124370482991775559824790685155890544262064985419459576302277556660586105320124052498834824652853389598769679930388507612419636701042504982380658467349940388180625945131081087509720827610272964734049335574813689232067610873683199686454187244957167878592999033662998536660185582156430944515076747695997879487105742462886222695667009184077088097835024269090249796700044394016860989523544822978293624340578276013737242730593071073096330778742715584405679209251872131053462337044726998747130624078111304104765981153558443516730991424193309434603691781588913819022044309981174494448255657279587651365780463780159928760822655774414736658042685548819605345195653936468989446251368634572113242350566172054054599191455563642425651275641620138032269354655210506665384943325482441312740632766716782298295779420146795251199905851627988911009580166827388504568983398951012346675620432670175180264895147321372727669776030906264186074228768365441641008948413787934554827350030026714682833719912084747104565769761046003908978593225334201922778532795134729687761938525706954280620054950938444035403670117552492482483010588014987450429030712777015900136265950641285059644790207872304503074025814898761610282115794120770823857511600311623864807695766263144344171709931661109502076468746177093223110979779144761776058577557508648544454365577910279275708080178289288695891844447014565216572171156770952916972599472604168951060437400789447530360603835196913226717288595640184134496708163363657448764639326829337718275320011562292311076113557287473321436769436242178823086192386755440854887744140887151694081911016822111377382705436299171516177757697345682581735566721397388394231190896364399293437976970472698767919485942027980133270911745811629412178826145942631338524825472869435563611634671395332698013617255011438104628969659058836473960854491100244568286436202483352655440422033623929807893780622858359455576054323074265412605086295614306781539711355731549051169075742079519413129639332921619339445275455756968875008521004215985074373087285166665495819229011565221175938908104629187665903336429844879462435791873036491390716913355108501691462324915769091259639907378268414969366749168514992485581453321908470518152639677624828036450711642496970458311108089905170761021608073716169264436886582681628234807659585971841819939967690563213295077469407744132534422976936688479648698491942009528085587278101355678924588725885759673935839039642013928181317641102279283506828310877123536840127154681697562029073514622465628068881170828834783683921449370189246698296809388217899077433132059825481816811648078974088806758729570202519238860327537775413282418266612146386196417724065352235175708380702185296081510729571471704639708361770978010105799883662363913408062296545329747922053916535745594054965099104212964947841468906420099913839649618439315137260317647464980613614878456195391732032084688368678859464022897583647876658985034992540922895998956341323805681604216486367403484432889889344549959107805261171947378074766301223160707173112241830914847143035278652524461443446707649867029069710473678497523902199486376757964929746891929910030661172572135909375721319625070090643659621123077907724987003267451815356107366555701605297792703946375035929852181524642767436808119291317835429273841824649391847761955215109634048659505519165189228753495397632220064781456552157537047256662555143040065075602913815520094330540230924707483124588090830616383794639970007394659423048319568818499814493852843372508171641320775300239495060293231588869412868996224302594320364557572316354866745760380832639163776896114272088903689139331135310465829089586112059057244952481624201055360455051050845750542393523751562239679352437386473086720399044997060711788241349345211186452146058241219591425230965014968302199826327189641872747719547794505503946431332220631867607419039857468627667674879435616836619075774231231664139064233286124078742872255263701605114967476491382319011404299077718187588180018961498875561956532967318627309068554352409386536453094077625593779152949154205055864080497719039630240513182924195042282653989657963031010435994364301460898273566218057542000109479705146648401253803808333219879976425152657381941859561808808391416023975967587611544861768604858299792423436900550450531675787862369166299712650997940640619277607305561386284369955063791055463927389836097592649578890984104459893959371423269742242813764845062930249542856606171373181240544656802257754216312081624065362999243966891313391966870976003903058679146353020111993231002935705478153842454869591361524269324491142340540382220187887821683633263998299941630841845282060934452615576740924791477796685417798578047025278969700838134276428412353418098232495230729046630906396304677549215156580643079290227161158250287095369698916004354921491101802305066535757047019249481639945551627484834689627467917215069672002369897730041061088741380343900508205928060766002589650145043247384808599110696533733711258197655113778391817161417488929951976917791519481166750426327916896628029988023374140371432362269606006277195280173999311727765832515282976097115602860203326240452717595198002140916122925646333075473828284387483354258481549544653597086679272027910875890311011000272018185290322201303827485997742752588572128519679258714644037408883830250460935907592723455181973633844777538054320705021030934763981897206964801485845751981514305344167647186739458456045862700985157956471251321595748758492091251971700876648921372356198236598494887620990162633417794943402762117759986047644060141562302290377044936137114952002283503053320492122897837098796686708680902624956408997695144602893362523166828696838901244993835016416281399918852290056836509177078472511362225270556308054882832006177188202269839912443899937687807913735407979630987209187220979429624597789557349963991178256377880795273451187289307718185318406660357516997213977545850328607806908830200593169013741279427766338379386050736044407823165260720253183094162775695005310852337055647343568975360536020726637454315995225973270926294032115335202122229609708240694625046056156304446192678480209034880534020249439931326203020876998488905917845545499093777628634836494879741893702549082323456922043711305235081857697855680576292989025522052758854841690625312427346978291644578976382807230787159702479589858692294210156526652993154125668179110758057954545695034072037216232342132355124466447800097719239759056655970360570903610116990967219151519911675534336806087205731336324245154148768759345498782980175873628263223530122944906915038344187226837088872672743677673144872707720116535707821105406674488187745678791557510455700600576498465154318932629812486412403314815800074669734144674162688172940359249825978476545645010468752437480229811455857982415598307269377073759742453873888179894530196600018937378993471534437129734887385611137687757438477131693315105785693248561006123969647340115554832976068068943033849819844618642309122213630524188017509990988428469488118425728138874502485683852498092599011609875711304879333732055465153564276954328334172691057696344642449386720949348850215704330346073876025071113046702227402928285877276849817201910016170947399083514643004695853588502735864989017316060296135011509453786931309727876266120805192088812625961014555847289765417287967803003038508700228996881922645895498299656700771079824819519069548972178631162246145644270487132502010241235422027765832233089761266853769798190622637099687562150125724195860527027105557933853771129837963936909303298672297277216811608186066367485189253854658880147139917666507314170439013854110087349644394571254591018927064919516321907440488936999082312441252052796405876455079644290283078641566507948660514754378341189906544203625798243995878011709540152447850019293934261435044314366048830653549092705945204120296261571888014540628524061528159896774940861202910716909488524704727735047845676453397079767384231741568182058987029902429489073043453540994608453297034160627694166417259068229638500815464111813117412715998828531647108119880575456216592032494477637798283523530556020785454381495165747622210797273922358453889150971413442077230064919141432653648900102944455509755998836248954761133078090725828898014074777259177473849812686495708028612386606314966782996182510160504163473022514889621275253560178730307392462110193279370083013131098884192202957062690194512608188524911777441766893773184024299643204413595465960502609856164337735656219909493148330859452499989091540707845144288265465393012765111990252422814881749894196036494780761232796473231786846146927363282221476891942306058777561962248179928761734763012348105459597192630554410586297814399022416307470314388850028905561148523087626750004629529050347709528602817585944127087921960973573817929082283361586242980178866091565811470646945622063204541890548151706443698175650389127197248300176807596788776220934166102922360854162880951064927312573701391534168699698280721647134997088794560178509379070151816689730642367805719446879263437458508536856504311701369763999911400675612165150273624631623462162920968256587243410091611260753793315166444129753885138241150870508551021770137213759752973275881669852236488084641543776721527084380140542070924115408759532370863964917261792462314458378214152302339382790777103362657406870510346829478512571326773727047872871781858876606380786893256208519818621646835103194216174869925641375613441472116890577531982759118483694573050509550755619433165086646983729519674437613242273121039165964788213066572630432926428840956210758350300847923982973993220104265569839665210711316435202169378457322210756777928775418604087018444815833136641335690677219013674615901967920857219471851521227198243168096549869797238232436190711422088085084046724120876911189918705282759609716686758750315974494160582062780686644638955553793560428255460920195046817846810012256405459159450277061251969497085830557313155556445529737606121888269154788899898604764248882527765557319447147749933515579294983844125637571272656049617728115372604926126448202432127454259776383319878477051791114614819942540714321257883166191621250139488969321580618703137244047052845063662856170249091279009752785717819372914383390898402318615684347323598038219021066566008227045257023695192067254453395566251941819418026435387776465569860452931151656163550338094102031251554879392092738047826566277085230331002645770616595226417743700806997159343098155451487165766676782402661516092633213590852367543200735175927718553104301809776950222735197339836586061025270066156943581116849170457599818962067066243231726063453662314017420281123859583983370548014522420297479126417045394410737472500382318716833038830596971618834939734979932222761315336903057207514437605370522941762453973913059114317238429407362886950055502387530511429435725807341678085085340018997378362178736708720154255042924117826911535726109260942664681298770108915145538139157053763488443747878335167770896061239815065649042283226246484006523233422220528774910556653766013865788641724648244050157655285364272437026946433919687453525215774630584672997210400790134360055242078627587508021844412169012573839522614824580686083520204462848187139902462044745321478968058907860473761185630732363447540789919897378562434212586238764093976497155736042814228472864392320607459175223299881982820004781518059348932001142513275939259421981569895085261005520618959660876427601340244380759794094818790324541359912870887845172303659500636214740201969606826341083457862755355540001500113489035005107605222529862996763436461307042851757268026647404395477832456057840796619231129490542769453994459461083371040284725577614061752845199174325066037836337844812515945649552910138491605640836604504178355501173541815108171518327553826815532882078583828214703883657197278133870035330043401271068286826899504322437645788246532215379150977897850733747844731705065465600076431086396678128872252332044848875161248393388598973551685268160096837817375496997047509290041375435113788154010270488858413088531008979994869158626975458067870709311587228309320022546240245750867929879285142441444053383329668138264819659338294597503748246322394956210400556742634441305988872915133393337936838517707148720018731186855183960020646195163589159564292380019606443553328500511232257037623319002405920198820483856270372578287401089717967987322334471869378381908708592801684857677818888930464158637265553102781275031788483023574092813743490947295148357215604857260447095213226250449445050412194155808106011444900776923775932888806542700283102511437211562350794071323001563572738286165869826980388596279930774555166055662780510028107843432877671571259183235248839380336888676102065271397305769903566938993435099195768226826838603971645992760323536062609141003104440024151981712012107559072988983058880817456699143555245574798854464024288698686994176915813244216788924594023543423232342091959184780754952402249360103787419902555827428777388593878466665974122830798732334016680207249705655454222702562242027439303601576231394658544413874830075680811963403701535027508120634054227432073719495782679724512384812986647533735168707865537841810322775283314952890206887719815351348459129520302512548488443140735147428313245501606348993963838825228904826416527692551361505994067002615118189274654306922124464591711501854768611407086199064810523405822862344054305120155253447772580849540322210378977410155509401303111238661265785603908581054493095314587291425526490084916735485442196705920785814935677967481167354361635462767940311364634780884874625182219984909900167530031562703248448955925461299097404957032044795076711121835531650944906627779819661800391375773075690092075035120284878856080628633459566084064086484814250642947492141642935158064252593852560602916831165928535638913455068996260327515449082681565157818183664342578187038097616018908724213083470996527102810341440002806695865358271956907931365326024921685062608587703630875353802234682768814934495996249397491742597243373401898598493869618484494582827689072417731040590355884529855748815089485496352628357074821322317255870522899541918934242286956348101265320038360709737066362153342202582886671899986409440765966887313218860663414790675868269192212629031609683612215791938758126929051556089614961346863872762243354785929561589011375018791721640336089487815497371708551222337862731243278651378034911749452293562500488589483855384099851688820910138211006880107900752799593359592672569164058972873086030494351395209776123664258163073410845758753874497098476578225942777764294182250563750510077242931052337902104509268266596984136461785277466658450512022358751944830773718353050416026808642282050120883342735830000645850499085975390629336037905821691829415232641257431063286455465011990994434650658115650063372244554795739702644701609242729584640048143505086205253804879911044750025623832307525008936775381472942533386457207771166368432009302871049093480701770857418174249554657546371709409467950374190524996836826292790068247937070816180742484087917701390414186179883154089047989518329986261481297063455203655033095404870736655899198429918626582874264477469321857071601667204055432379106835658079018614646145822950420952640640505324521942639196606870900877823365942157078337207843777525691403150438920557113549963832759616114345643380290285810954145998868881408079885742925989023681613499510045129526519344230762069672071031603551498889806497118304574473415962519715266636723535966561197987516694812751091950071941179493100623873219504513502888455939826238439006803959094714311881144317710592271150445297528502854067045970327254897121040687388865138335547809929349901601532800997888487395092670412001182809102440790291663144349496929620651657626244503824896424626992748184695527819682267035192050216205672845061938348521438645124818190660608101839947424039130956466261453284162047291504983698176136809284660700421038583528229812376663564761266713776352053425352765477885192747098457316845805446346785348738878592063180859536419243358087216582416906976947591076875385913412270382223580594578498337846215239716902200633774244762797287097394282274407540193149735276568259958017045648523971815073246699635054059052203828607690181417845420273798589377042650719234808976019293949680094001384711047147921836006309509767394227305814246183393381688401999475015030467304396374222508006719735600965115198047172520238638081235388199198182785918879780279848474971906263931247265805152049793402695803507715194188631432248057204067157280920141586313732265190327732275359537497178489517115495152285084330062238823023397703100535373032808054276134675818037429955538641001702094670177545908543883150921721813874999508817953672924412010477895608733678677802202253358580372624361700253865147109853632817011993063247939671506034330123152226076511562111887840130304922175600951732539586789747972879170477957024999960347970579970895475100048920464300711214187463378234264706741144927522656934793816635121803357009094276745706435506687154351643610417334960533085398890563299810362059595565188205972183400542337106446668711387155922302716180087448474616911894312793740332249218933942159990337071132120237455635037208453429289976818626774801796631197016708947592114311615615409040440694363757600854804800181928292072070695603287517283425194324279893980680758435308020424954212438559636630195476457433779347596646881332305614435181456395005107833320214901383858719858075899061893134446917638257927325277725096653719853819228282875532850483507436720688101614028578505937571721482272444741557221454442397551298104602280389676932916627624022050184392379768452116804022634509572889270106723700930362967104859091163727320317898276601757469259459518000543023924630719623421672419977818472758269121614053897487437514379539386904048747744147570041727873603416680757411957835979773074867536569284559042686854361338506747133090251527485928664644566971987250650778892550203854718505223700334446317443559128867764583618499207019555993222542176148160171914214872787839067375886861439688977491374162748734695116751618497245805533145831632198883419171183459448918180412737600544092336739343395292413729224396191124287447300280103262302978511930457604942100379715090962022001799007481319456831939304990178263517854064362035816233043508565334755381211098902434388001721820542699401563923821076530266146660616295357283237149788948432133871119180025220747109659085703116845195657937781587672223104454636235178991968384310800860051443853569984399609138132498780086058207746738100445659184569346208631080184348450711705096836078942765575035061306849050392004701462125988309104444594247457690619484109273813499801505306499596036795331045204690885045165664255425522557159656032258956602253877743195840315714257600267827621477269934425989153136297618794300373134681027055901928237884770672914989493228946889645360801921579896589232839014462924093681941173548149046448682116652643877971155681918438132119954491181488780496647022415141518638232973269109558387400773063261924988746072483313649423561671181040925919125144476398247430057062264215929194124420304476487572655435259548712146789763166116180907377896339541098089457022037716324077530738552067088917086674556337846869845143195772111882262630309640788071376977037911031388373131510170820036045105490192262915262653797373601096859301723157542176545011860781976768475934047504323243340226926963498772904832286021997190244604668965923200230736637079116118812780712515734176226286977563212007190758556936205352108061645192830932329112965861901175637434356057291936443453280639527763759444606526709768324867009419145744116531509742314669064900576631786805714648815134650580061882988723583603693723316818127504053069494559138653494078946615759817953254055825911794239794548983098868270347741229435932741428893767702885594528845990348996482985862094184548978246881800227822804552801152376264449740760350720287695591479720442251823534964106775564203813353953971585963964273086414673395741466554334172978773015325456351987316367097379747477973800405897737980758533924398316688827056698629710662730977635969415834644551574232147835273173133085374495075407460478374834246577257758754021710712081264933579462078812588975259804431459391171122952137630203055463804750289599093915793552161735337355829083494820593831629601139187347608186048611963270511306831070906648598148361733316626587441107455319998414720030282585294310372171401411318518713966890050241081602177800600299017935928375903942826858941064045182099809265309476946916908955068771242410191453619904767097845547710625945796831251649436906457809336068125426632606699497263227022054961294292249551500724594525212486347053510496849251120016431843019373610651130869179469585559517499754066279458294392314402748495279173466168230593212818756115532040115727926738079356288328992589125685821809082281560220909300647762965659164160766148117322211458096244474551365785659873348218105127575841985641958266294070457720581922132533436224515816973960991785061244531661573796555047824750978845078104228793398028668186350279425813471438379390586326012990575695216187834242608735223678237553832819505130291565167739012286260598588182603814417463179525056430788976538259015449500725331282250093702074486146650949959981113518241684210659025826877417694781130273520290374064018074280915537914370943722864941184607429322918292224179724045884914521596448588001946138187269379398574578013550534172467689425690742725593290277112199955780698252302662092744206331774385801985395566079435860218908840428818556339281809898721115344377096769420414943299219815126232237384927340997161014947730281215477520412260494488776285280198417394887105141695523421980944691125913721914603775919447462233715242480757503148410029428570002496236729351354324820738503890583533971310269366474136128321393148694150219100575790517793002666891895266838093311737631753111717805016431760001426902993870247676281015206034393754433430850877640101277873500188326414586853804345520128388508575630712842130785389410200989956182239069405507268793957270794944550220930807175094856323393619414849099255643377439844973037830942297805437284406366725625785967136519135591573254974163154789503918330833668984305854287271059500473015479976919657792710476857389540511847736922846410863598016045892913709946997387796178090421383898147456000014188024607390720472594910058484162579119625802164605711135317087852609907367221919596120951181145508895117693684098223429613178860139497436100084664520899825442479257735008173674044916057441148506326833761239766782942882153153835805357386588784679931039345844719460755837336930005137363499723137468499260809383467875705062150936838540078368730626416203401584663494235424308848781341414893923851993969939776560509627494317811245916041867165889130603910330880654335829408002492844114506899475252599759042268175217111560542704955405841461367178673678156422832642896274990664800073721236145770335902773426367443870491717825932762343573984896015105755214764488616615117047130635858491036422787852034781585968618713334914081826702893954317654647041471116670972519249310946678171798618707271991747935187510703719595412181383399560811717523222246259406077605134803826251048770430951428376781911536451359738880731065125947787438844559069679353111013531600029566562781203305900621088472392261333315898132810724992258385329899961461008486848041439761845274118507210775489682161131185493606310649519745142203431081049562296732179345553827302991807128932384080891456408474330742970340795528149660372643316347635420379495922387738968112582856894374647390615819303610414735964692744813650858813404431013887362773148390119272917207634436585032081930842803651772196203982208571511584000337429378793742714212015422261062279535949731995335287641878043249747377580563579545374902412568987787238261426688753191074133867729670058340756893561298522237640684273887213280700852911211079361997882684503072194332769875234151380978360254051907779256875112352430329382979801292663238219728048886725319460005231676869847233715477802583723800736900517188674336735941591388420858635867657394871106723212150251234642772897648624878689191262266784852718892957795075097033606983527648026573488729195950172550732656593495271880164777128261427162648444448734890266035886188422990912785059892749697163421044257254808540488630833224186400951865026354522450651497278023740438957815597497751320020922078125490130599640131429143851626975367409801680031781111578944033471968930426691582451742665593366582903758993616992736840869142681550759797235105937752287793538332146729085713739950669192317065470890854199290970628972725238882417638081798477868933584110153809236571804749002726549825949404362854549760181455808419840094661016544252148609152929627170183459743958239414658375992537314962337097381221219618398450330999588536937867542506444226516912749025078599974225157354365904545304375467298832342862553980001450355330017616000309822872719937539628786169730195911982515285323200740360628666121030685259986807344374397097621744144139476802326074235702460352389251169809160566119162412714172787682394189908363706199671275145228167482970475727200968148865187586326438955953535202869947749006050821590999763585368595767259639537913310409184022627577391148643674495271484055688184402343085869153864099825447051604342613516217445657063751131045036350427750379875179894185816874386056212596720603717412584524411000858508471759126951108486127217639513683197925952143434006848939208638461546398782266039122660921412698667735110047085666969748005230755269631902558512546660192405095606661666973875923227851239549143744931112948078823717767442048984802604563385348547793563546961737288534401565952044320483016394839113095299613905904670360594795665995088446923342986288952117788570855155626895453524779155556753056767350653180139675806908569636934648710988938463373718537693084776396247863550583214940836373214326058849238964148188533077040172711046075119556414799595368570509114881199614181791288864629554823531876740919434264178204254847422793877101310287674464216112753990024426920335290482249962571074088100480356941588341695441808178941434318760832860304715324980238745486089733534194867215453228228975250301542809777453064544299042249733911690676637752545772323233051601783118708005892109983905729481172455425927456252892820678921865601680578220869336041274234267750946954970338308482407260269865029954807848082587935469463494344455484406251602661878760162368634727656826148624215741425380030966142847627425396012137074641840414837305314180959959843288774196138392283344731739748918383499135173463191861897467327494683446085468037969526676110899101009358610820555473720580446829203676752396479970620663585498124653486423179217205050671695607358090311096054578525092794249053887783517799325715595221461577658052941670673607789726690388394098701472947155546551920402595860307149618949722761827997956056340474812690801014327597293808726228511571351527259551043351295542499639982380132520056816168616428393328772054628381289795619324112917044023322564917980675593438335776443806113532451631666898478724932795629168634403316264675333770794034878553955827994772909317814953113725508068834546807598135340597061408492045200135321982469745607928813690777296595272255744401037730981234200710372085322137603080111832812268060671921501374403633315666091002806565579719424342488436605461301851197280583510271100605018843881891297484267349720804723763798869778897458201215151234969565737726041737202809534276488252728036313556408067485455340525307848415300844339067678669285989761766482871588347021166401301570651794431834731686057758545067538598497273215328259388342041053111588877642875995875884297096039371086871687749021788647051402317862026683408030764319696183735999071358075913152558311689559610884946784531216161035449546525525722490407610587011244609554515695896572221360255805349064632968642702893297493578446561167678809647494387479567813317095620893383320807324730345449020334581942274838274446472402601979101944543299520849544094489653617068044410109263019261172589005285561985519166365199215102166876301115134312091739407210801866446938885132827185875576545292925352267331521131316149975689916129305519247193521052636630819622196389479356794879930562755842227126908895744277066240897941301540623535044158074343268388215178861389748809818342795689662553325027302270013469452142359412701765227572836402606527130995710073275510811919385515175364739385387278219663184611234623411598370907946997414050652148933800101293763970210218636667049604035349394384483698788763443015127741386672075081702125745045639712014895912858783328829659755364456041809927146793561845968965675895419220102169268512371391967738914015164662239161184231812248257319815247771237804384570654265978884337938103323445450072974208928599301128540437238299538084755327780895194487602589328098164272452209198730329850432103701935671503946915428536880641942711565683412597753465065143285668566524524166530317195955426357620548382500561364332653969325455050335658242689014894367166981574888931236086409662290791504851727457472246435319985500862757676598962404940580857877484023314370224727045361426629147071157568412839008522223653675136106316958202004457167847969188790491949953945067176730133887799110665593381444042363269357888443992433614258577723257755083624407845240848732958890547664020838620568048737339403373679615622332131280365422948956371993745227701314747663129090163887684419631996908244759054721745872105345570875574802537591761859410259352663839556597696523971806563094347817753680106945534050347950121451997170570921341023819237991938373685851313627794904566593905750965419931198172588948374278802316629098420839293863457862636272008938074053906984787405579371252855713764946969470124228860710451449537889821489204508858576413289964322130331619908075488936013709092126154566357192762551993891789092361178021542540981406021804681959592578682370673472130168672638171788347009366944530565527433449474190641594846643178090959171173029953519581382360967043791306937101041450761744905669173601247860223737495408692739251565861568863523497526546897586583678774626811064424360969173368604143792287986847347526551274315420783505584788637286405655440016281385504459951892552080129996406176729984804985614298776894028497013545069578783934981635580957587186038801120203560559282527439298355814424133428431144909522064500694820880080755550439091565487459560409581056239699314634626625674239163869512803243622732073065071827274082371598799463712869190531653071818510767311628094278282503041252902173383295818463027367052508073113349091618229568011542068081051237131536532000832832171783383642576904691114471579004120072431463647658359768743179889911954956488615428963964743944338673718565852573494626815627670358890962092126440146002504971542128932793033469110376074174211384265656886775770933937642622484505759999959620848576839622857527133920960649862319180282026430158097375873201464590072290524215770174960859819291049891223090274099432826533143260813918113390039303675079835026041894432218674668389213059596565116525300527071696847461266923802957530131390497872757479988774776270671326600428852280607178291594332162772235334254094964984301605603386553319095918340215869870942664600135789840363554559312316341768463372400582065783122600637251623017637014651121615022207871767499496946141945393116233430693283690695808305282448889421571060657124201927400263389962180811810281063564951282565418250018483878094715355769786081403182876942522084645600824945733610231156606157172843873514747601029871344342274919495512614162174718416400941454359349812850967631817755632530606692204713261757434313315375357020209338198851515858337457234988307874762278019298511643755944586247473265059542303138907604888859186096987470047754714191361623938198766157949811820043981489154396462109454760365826709913336454633373380712391874897891617487908096574897634364654816001045392877600282164915735247500641113588358031759817975858218086238976255525169650968302037382541251916802555070426624835700946410909647323309537826172499454683354837041937279745018655679052422415214551384649129998743577100168339222632800588718875292104201973769990506580864692040990713641745288960177798033929508595161630968613913232753317411780962302456139850809040033281050630770086414254003370308538111776908834283541744503597804108458124568031310661326092867911254084028301649884856605390823918719307032939013472978438102038898483600108401746423517748501754544332121726228756613748407675972888357741413188459479560784850284621818554449489963834215505592268620400574554074291950616345896265256521987819179721216476541490239394243766530776016512116668527594216172071015146692487022789771262603594606482030161602513906600967790849912906159684176313044739374821282381014939651809527137218943797446786476080076457813907649453276343836426711204292999451962156939950923824904443995522701538052311113557033848785581152700043916574910806074718495807520498825247310591765310453220592703433908088755981249464194584156353367072323882564466401110767748628800952586842170848202453343429448741867887645709272269776903510903322856643434187239940208478541129362701459151281057737123807498416982312258867436938603235730547748642610424676099133642436918047140633654677949878728912214724093428739409947931873225546738664765036113752307384401580631023251569124682711895161080911069453656475126850154690820499009310363154530014191031984453323897910180236633525964381901555434820137349456718273944876590193003532524686108618399497120786209912374172735711500074212558941761265232870478222872052812615569753598432958097092112026260178147510644803735258039752250505924358476413136979043922900277839104099996516536495901122327887186013164550688936202416974767657738056209229675394586462697960518947952229015056613126395308043773634108417523311128460164491092110743452474067182719239627852320930922508299558945534254301508834520433911838290140090422236092284674995733927123774222657494245326338090784223642496424786894580099281453460769242616051465812440897822329102338637294926288640131224020830527923804836819765619289900771423769108334419227709132334437524550420663799769092661653440189293460237516425843210404162519059598257259525910388923133968926768198590974150579897833403131400410775569285296941664998411795491837442543896419001158686208131868565766244644413465975416660314535877017414673217979018402182249929878730216227376573534012953329197715962371692522226690453036155294897451535239899850823819444629133143167725495395408332917501228897236622078618710755061643965117140864246159473698234769975556784851784680616692776158292610646452398012774394865735313358764313082417478695428284416357169532252690412876012973379674619151169592195118439821484928632311727006463879667073116316518712122793969735413856405925034331676645009681150724341852639552310109123014535596336635146172568521638131252735334869757275984374862202901452589447723886199541205504090818290870643108391238181214778439428061923999973180780613022726602509239722947475707857215788067576002140584747969211575019178157012221138856989460814430054919083083898635359897110500266317017830098098386766003822211281974236505016004671285315552040407072804631620450464392093807902533465491377820441049497151669999142708346608548827770306950453932596883672426723716504905708833018361701913808551940371024958295616240780932021865747315555980806465317015944933009195633939290868286059970824993552325776279851883216821588989550430373996400682212073472976547824942633022366664722240796646887462619168573708409783297855806301751261290276005429620002711778597718099690154786134711687427155362251730246648439807206825644304637032362890192643358704479665104165188942664582251055941756456688518724094288802868708091366856800428094818760561886711912323259407476358668837569652647740481715133162464130950395578824123458280889286497250223813274044457910406453439698693308277926200756697682342235532760452493379734219584376856672169745951257944433325957132647512058759952799873141890626290177934573238717353478327725359666206551306508756591961970896139793538256240647527449212048205841615936252640127140189035064057841313659928799276480956195790950174383441314096197621724874943235222313972730841563384105384101124015753804089686538140043410615801301384832321055553531645232722497470262154064687232616286780727653019958934095410616864569697090742073317179801586417060071159013706492665682183350601844218585316658748840541526860997414337953179704549781626897523710189649206237086134615011286744682957798651343028609996918796815298303410721285936981493618999566964714520666474244064071553665368821085429576976196677242715834961406339555146135908624342348856826813309606713284805401989521488754486510891530142549077678205806593358675189538901528084146868910102394247904631056469585455302554545501016084722243835829579506906781171592403204854109025615924013828879740951309323190559447871892537153054242123171312383386837459240036027537625736577563180252107902517696091659910829664710475856873655023928792266686890978220675722005445035279371978121926290644792652851401605322785096758266068154662047164852998029355830246693243616575633213127234108142191075157784175683366640777851194059503498779247087862268918614318662857087919371411193611449176280662878844882688854652857577597529545059443042816404906659433939216728560043723978459503603140490803839452315180260044543782824822341324768082801215637781514789832483932073344483340459715165430217364000363727214188126423469006908065330722068671132834102210562809764994500786599069652421678461041850939883851467341547264762145635724712965081912786882368110911775302812570077187341611089897455979715329475386692016830141002082391441198203204916878789598519155015122119448052467506725994368902078835050491262439615471226858449643533132605077634287797612583564505065948809712512734593155925847427936877219248385665237801716239835914415729694904855210445025179697549878653057171986243586633875422824494088738474366288957553565067104676829359035770315311719869655738065715305342378060769953417806386149324088348523974305296601178202817964285779598698236149527128362436090911094353431510676211780873947594712608301564107473903755910561447180373821234253481181426035816144990745274958873942407889572204221888340932350619021876465190126990016918288747137088579909239953743444446269047247545133105003864222629027536364296841587058860572107761187118230832429414775906810851342245422816483271800799795081839068240541857621200369895937741115273415720487685062805915586549876537542033427901402058917374493413435600179410191540126096289278830745345074087733271229483909554276941328621392266686437725841312267384192746958897169983978827910142528351807090307308723233190676216545902073012292559739238028429652805718736744524846557370235412933240894029408814739604718713473024206899938762155880002996629236663168021922608731233037982190645740929836319032386579551732707685152094956702141522586781584420440422252805910007925218320866332870715003515476462401853862101230919448188654471629015365283019713739937548139632277827040127966162541599419855610421593950773331295243965379896189132455357586683549245380073964563874509002252135558992387439928187203704344054902627771398840690653482678537451967596415239918849068555534308573648259176260400610168020832829286525147921245416615240155874230539483066541721376372671034551031626643639379630017530603697510075842192513370492688607978598365781390687967449740769756771783103907121564351674414315442943088636968203284439256897563495178051037633641129009624621664087484004766587580046460704975840225630808850801504729552486423298234886720944897874179887093973750995076205080210737365719696766715119787231262468664028472423243616829435349204794204161391799607183017842584262598905739538815184995372506618863647569095612503257949050220553258128422724745361381683070435395254004695314473092937735630475883844434538217911330614109951752387392278029057453165981551306971979829158082639313667500654888060317994479251322473352708782455495347688219853645940328298297104904543104088706187834411665568941001909496705582147685040122823965589436249036282315456310956732626341297362839103135308302417740603431534374640286703384152107343216204617770387380242387871734763459923079910380472517727195120444295112993392574350386839809688970073663957896410352345345759042022201017650307808766627961145275038975172241745349749822113614969249207170626220372534980342913731292610616455648246950374184654796187386258219806635928226894472509876332106143168076545713009701447464932183865790860616839975095276680204795789857821916482115445869354738776290584202166757836409468843090659274522033985957676697573906431967108016412287377137560532592521203224152886193772814563677702106121690419413540752096372704270967671648440438146140737863726975021769381689483637978414191357166615951141840023083757510830156876509782733125525631447918213723033959807878045656501066750567464103097181039242926537358024443494138310718171686413256218463361524583600254572872200271017168567079137282703694824151424214475035389054355908478981831484493825826642090642679343501605538984123576857740434503381986144893009514829692319701729741409598052362859781648391572089896188507134175987645776312039296720033037553350902907972661698181409835215260506808913752027132501089714287644768487891245180342832903234884645187059877031951190861973897028159508873480337576206302194699718976710831279046905092986218711794394774154628085939413198396578116048766069216577588278467686446961464236160512670151139702255891352242912928858075172642132571365484495166074044993962548978844327833695618516044387704272200884497445589604363383291497771677518329900029092031246998246320028086562302657296918127239704113373152407601949579423651619544987637400562329059542755092237745758724038508484916270228360767765599355259853131089959458049246922956551364167467307634349612607503646573472533362799770165422235196883139673909476544339974493595054479312187142327342083997548158742504469974675033211116291615744690024042280914616010856928282981902333055837842200475352904341801675846544245676002281148143712000011877316652803730574734972897922671057406446617031572480876628608089647947778516411397943839313311338301571569529456259792134325389069857856287308256521782791810221322912017012397819412092998431405665009742648730683462336235888562576911002757869002480442874411306854375370844986925627460244055026387144415400875141585998404990112084478600781460402124619444953763397806560170428437716488451400637295775792097087144183104580593205572573031313199309071687902025159165703271237086027422499587483095389385519301814530008360890395847279259286631731446484393202254351138808760541645543211229082522599304264080270745164966397535834245237908685497987550087523190833411678358379769780739247767192405484575739177490180523826875155126873995980685046235188589420848958921563453198397359218613805777791462996192063378585472382778992140476355456621395675657520051743508910391860864841685049513248174499681817114174593524880181367411779025409550425739289964892137775193289931223425067807683484105762535400986583918118997278187424861506946035863941413558170159998457310592099864879171180974348888951005689948463173697952807263322008223761497098225272832477468014700001852263615853137821178472440504451990101903189551266096058226395443344820074054511833762897490035861871682709387654975464072666196215339660087696649806967595089556294560070387006206692927042075600455066383510599040488563717239681706364942818683878138049421559734037147102794597540930756632913604051245898876982323441788109318481683355379634333354555130438930770270613571603977454077695901971902679875606278130459544050740495723978886327594988021582976575350911913566518940257948594261751032745852339913366637034685259114816840125783346944872819336139997272073254965634187610611773451206332267524145518544257848852585525261608601971301178268595117124906547982063083676158514711066341520870596039438308810257930211464506653306825302385438904018860282826910888519696000286688913009179608228125690007412135933977818448415318178632970316899426463307210548144452858464840327243500700360848594557019665451166130459116786366611190834666065157443278283475554989450818000420986463499054584402469195254698158144717595232017575924272224170496260863867654479840380889529528494920317431039310023016713364424837448389581456385682095230712524664624142047033400669689024325498930447553019476315176740338438851492851420461810228723831553138412673967161332369513538798560129035389577825240290178544064231291398579820789433640512144401045358725377201297027429049039500748365092670535243990328704214340492440733306637241673796476152077703530145766857519589053144614632744878666811079939766927237824544048465017397837027154879761745070205618527294630257346561011023867333314144091655131733358830434186053454263293188005969538611062284032450329079014997880243948620578247923585034793240192905954693245406327921048580612677029126738754414426640555008250832269022977942565700604830399151087159683770907005529544656491256783662050175632378157869983780642493735149201725963878949771758090971346314368642135698944552956860493124693557483421044101922519992663951884891317353112041453639914333013550691149651914139734071908590110128629999987262796517635613112066306706648894507808396422319681127087365361796851250945532621820884709620729022630030582665783519993752001474784187340170835939846642134156215317504498449916289800191846838982848584819723644647958459899222455444407248798332214261493372196968249453438056339749460819013707602634361364926478054140161473855860457425230269787298522387333132617495991108374547546092541598044756515672009125438364634298564699860108442264458899105413070971938202164836328326968976754506943312615320163169520173256095134424514233150006324105745739322609471800327304890130614206511103335761611098579718970260053230224093786870521139547604224299629723071679473578666679952241563962253054721829723960195065048900934495055818470658619711058862164984751493733759081336121959296197190129268446495930918067212234562335845126283767099873601869734007085581506758027870166750192545508457962869682364860066391242151986139598530490929606627881132548061474617938029684362408705312287909959787324794300611824943562000322042802538283131947630850066073338897334061083002429907865765974931279911256398152705113750428658191337753640007098748490010271996362991488780792164948235045494160264335666182589253553805650901883574536021429120648195750250415543336730915931463747274541157345221632578470541650432871628250633569646975726758717584342848810576203964595948860389959962244720196064994056439484657651861238022210378618824085411341088690489669934819512458625445338904610840096642649273719482244630055919175201577213994604290789866822865944911693775841342025442400466229113505313300106340903579558354218563040434726883619939840719350266738124104109252257497593254742656062788426266498993347966598571912903148671366752946775588516408651304802979679135358883908680667954967562177422766737391072029569853794184689704633569837003678316128097451682068322980280092062907329823311004044133064642295214074725018993615866024406166882072057061254916271464137300979791412455147236939174165091961395689955154048043404508217100018176006547428719303658000421590265730281302118208197092936300195094994165014183378809647733019366759777959318568694922515455887161026420530065929005945525055449902577482981533086715380593788369292232495242366869850737304690097033252295768281705482569650966394917111459786412462243446805471121457625480677595632729774078083040367456430608086785388017597943628008151176923747560414341812093119626717752474644855620438843438732042363149398147345175140787194646056338517695580129463721891656895794284308781565473780168964189738464364071728746873352294138128790327725427889061437611124259905819259955994635793387812426185988506119815099005293621021171506825601724242521019333496060470801266517982482239569042319953608055268378925068109868246469315119613784811020191520371453643696406573824356030643331078060252410418896870863467385248623878745444741169260556457102639933079302205981882571603831386499250351678159182176690651617838015533514202595679036416646510757904916877523763908772414848906919140249956295170505007856443867481935359842657027823427689974236242706015300815457560120237608669875314848306518583651201555716055689551903352733745387260317493702387808359661511203745320423930022395817261686008788391047191655474460383636458730014094625983386379207388754264638531653639900953677541988231012823512429901796723368222058337639995164953683836608822215385390773505998159380002342644534256069777025063100040321072749191418891187426652091974312429161535515112045038869055905681391052631897406064622415418598416888254895544971089826595782089351367916164638606835217622586400014662074351486933482733753451067630741270726141203967782638630349760400014740417630020485090755734922509951764078573721711862881478089301766886425480858795613206390545012202176881961996653048802574659921769260368748065846928072145366139270369036116969206149393094495553986914779109671963301239620073435119529020992093138164382967273961342730932802041816549416114684014391047510893935804911477252637060532967029791440441840213814371609562813141990888623044875351876178233446535949404070630269610407599024993805645102407420115837715464498819183363027527300182658448397442874608745815270372847425750645169745752977516231459927104063303443029195515400348774249235705903305384872035063345475657034101447977255205997156095943268298879032465510040459747611017453508729955656299079453944615354451317606816872828200094070456274038886837341902566274371993077354585278417611412930251463864438915660817556365952427026855118780056305628931115865020596569821190255544851627032580548151278437217421888913820010959550627897877655724550469019826837850756152141058881631239432320397398120346503371669807973101295007565076579651112078092361766205409769938793612864216250257515924003372291809412802727293925774462704615459059661985749573441030395867332526834728568811833120464235113261959581312079798446538311454467883072604985581293151585841873450894906062736307445095387801866460388287515601185168944012143204462606007036195506736719530050414167950065045115840720245219233204562685381300540833037661910687467064798931286906409834299803499797504649256500688181524685097314669383068517872889749449982544224956118890881199506098189001483557972621640638321743024081208035198618472158470579069975451999218389979248890602592844054364576725635855670587958472895147609128492096219009560616132374442610933271914365874024162491468689613392208419915826571295057493001268179292243284619285408292275230320931004423207565606542407836964580613874368397828924631698347567510350021865904330429111168671060150457329107228298702382193752311733280377700181983919269158616077033594453509339476751609521515514900590845368785774746329009293844878902897450558519585604926971140571423098380494503475750608257687903391773771989975192648427884497715123230393060917301725502487450441331392831926467427951798994138042287578730543785051246042776231038130352974212429290996278705939024811405246523417366332609278096101800816223576531587947211319227874541539875604849934644966028652512603928985013612301817408501024312751754126510336978921286960616317239648955793184148680263846585678678403698256001549193768497680702998597415708763648063993275426041669008031102495000671733516411266090373232726260111660302864704047100759501701617570979780584860106037033277993602423652090282463641944424909092572479628374298065678251020898177258675742982289088816234446669862930851988303850460662446538846718653463864961520262531475011490645658379318670551318439507904215164880730914138108574668956494301535632876778490947727322991971162837652743890171697603027311291868937455251844232716479200140944717363687551531949345227928507477864726960070635027101624261235788660050843092146679581226132577327692561825809002934462589041528246337192637128490016454586522807078287122208095698651107930020306726923131916830008367672713954283732673826376957292090747033205052549653279815992273811398177238838629509459018020168585087614125849216092112854982828006286876974234528736551652700003666301061225676292011150696224770623675288338263190638709248055128169938444204572178475413743043786266036813256546738166618117798321385999739771444828644890838656240384596820101729462061951300933817766185803679816274474954439452617220798966929415937400995099574065754173782910973341231644713596777674746390874959299448870934042096070263269624913819016652307235281420170652325992395877126028428721094930365100344588500709721589139559157167874993901332674261163179736009155013888967533969849517514905191032835736990481502670376907122584805435087503981010158009725080124913399765519240852647050406658668547434622074415049960376218255653466231097946333104410845362507499788444323005208658011120048860803371408530009178230210185711187118386746709370737300023582638193384741028847702624608544810321410717713487208838151217641372551293355467389924444925211776304739567332856154071844184214714022931841312200523691037587503489882140255931135674999343709213265394508228748940407181197649616520938639270643092189595135643558247235830042263908430014190500248341139670637061290057929369547558260639333725174006260475238279372968516212495081895019534174907237595676553348185283816783018670053117960370007777408829810921809461003515297942989665319764100903834854222774690211733592920315601219269148840498751674361331450225648296572618485600558609877952654565103047094454246775367667267508184804095076737124740659458876720497298454799336779734067996576160083492705312037957034369108672200494931561219472232807451779217414855727733118927601359299520553109836325711821614157895001996345542646372391265439603089488581509737107080538429212028315660964698143932696695728649847482222012422929125052223956061508380260874275309728394110982285268500141155558168389726594655077127123183385707813298444746487967181018378152165473696591041109578275781162168803604861462047358686126301908954786405754366235744709051116791258464539398140955579507249060834457204417276634882486734385580234371421946955638260267943286727501583739886590190338500906408707987993056219868691671580727762493857415709716102099662589362626718628045112198377576479795553094404942091889007102637437715936635570716316904952563922958916451675010421894140219731656935694591246670166506930962672513980737005203493865864323035699653233617643301477828264541808930483465122658287305276304999577603221993077482116374105517374267430949560924881162277936980153454169359767390532509236370769165623624435484457770477527312381762700907053843330586542454174404532341986832731574590404041875601917166259501107065356446731985805491670134954732955733620420632934093617496371004392610171914939732028404684364733372610182884348029801808323065646789669297469165536394160764256501045733764606554088665635829347360508017664490949301943518096585537638839388860254913312749582742377808358150537322027723296204958853548923189309903663313577801923461197933790397426424324492711114307257953578430158326592643092201188026764656624294317989638975647860656434250733172537126694636135164449135119446421999485577466158434693225101510143030346640408782106440931992915204386237778376489883572963123356179237461976527651674935818927883718377545266242921573511509297006325507146854815361955798098079853387477780437729563415640417916770148360302853493773881676139152121357919380449889481635849681313902497954049963228217870056327747665094624232598788728641696853208435626764046902282573176873103482687198973680173140525331712509871716010176042436259954938192927782793513685462613742474819263448633498402297931240491329992312682678387578857822232083513337024104324845864980916505437932311363510095642598682783383962181438670032376591238851297825352333355701966188820186736583824559926220081621256604704404334254331249916882289759096638667000262140871644633860516997316304767447864135540418800064710675663830964176793825716860408485362435893273804383402040566679746063864828262108321602854885818252068293254342720396075244459054902347514330019026257310138918623180323603907670189178940851733375724332374341738127043475363271063394643933002854901804794772137343692758317281685505778073334900618564634552072064763102665105505596543961493245075691925179905485098324954871835908504207801730847567499637878556485350959425212377937182459992069270709187394573801515922806601660895592101708351604606680416265257756801008645405533281175035054662399307024370100419867137214276654344568032093913501773075443858010190857540044227462801185005177163234414557255709565647376503549119027849315736942293956151181417235477051126992108503667258025643789796262925895219656649578948878129984267165512690316275545857178374394097200904398362876383132580350192338836174761459769263545568297533969846715420457900191299254252281749693792156676221692322806200376148869546648450494126720921244239707649385917027482244049113067331114692619785763112253751525468396740903473002906741402376094261010811111021875491188266154252170287013061621966563983018721853844455102824224184468038323368745905885694849745794088377684590448578393204658094277773203075836692628405023534225976499054687786193085583503193136098335537186559802808429785556782955683071928665546562175949723300312121608341947619505070034491521843043166554838038031249852627701099031443404309339413826223272536605123789874224297295984661937699268724536636920974253447661096463161216975354555960040615421050969883458456064353917105092153498045993932280136468345782256926204772284613244688740665634682642604142335482859948640116478755828254044509197987976986037460061278106877039819524496887995374904719305431991154056882305459189279990405660710607367049620345995934675862556303883318774038732398900569388332125975779702966011595253973917645806814617131005696464093514849768883534002194036577700534016515704771042591227755957226335565554956607566951189071871344738578110957963040926132590518566755415676679626157594779846554150172900198387600432733707808276803344593983313600597825828287871538666023282666132486659272801584027208217413295907554781354744485941139127900668675995068124701860453399443767178189510128212326009137918843436334891000877906901602277909409463054300385081604977720803416973750970641386423576592112970915033832098002606288939196844181061188957609081425487154771088529164811922564446753982685599200637946173961232923696315764756862058895411894793138244818439539031270736161970186783677856534960059502867411481609102080819037835781440333513448231875418419402275686268877891787976848744323735634644763789243508939367647007569283660730814987521845383037487378101877214926690216935439078724892598651405354221695292468898423680574663885932142970223685691033514961828357033165300588530917928226375933235223598263727179932489418015711028178358557982115056010132747122384983355709009901933046902333306859881812719531344902431244088797825145707751213160892728029023159306704042028475530388209202777248145866078287687478347223866071019362221106832746390263180755369971905134496725821775336885776725343846085285140618146135071454148090502124186414977499061344130220350554249198859694989466427029141784303652181753448310519384831119397882092280485989140828765624320623428093076375403879626888813867586018046781302782436713947511815488774734663695352030896059215416799344792984454604014101700429887422986711071548947068754463223626217936196765809163900325124492554573945322899538488678678200223201034609141852057493988391745597410420199727491024414283937171433560102513286123563704250541663704772216834643636990544214258849392011515058076847046616964326783793619068200419280155691303848050059640510503678290891133907004876120760039038385244357883027798818746868288653857854492884356055000689368738691606612975962606311666184612389697321084677842733026444955559590864757311989783302693403680192138471716784786308642710327305319121165871727598610982969947328502780540753275573529364190733558279567021489396936453310109682188295084363386884561253247045696801298112740771639744698894719823408533153009177401327515667059970857831272211135803558504461122687161364975175146736982586566383346033061588895376254365827274200661866902043343276008972927748717834390082392579523436198394713101577852277606245763421808913166982574971628898610420082532108674966438238765800222561868236748254628135067848417361719625646469738089445330232303821722716708588034816184422025022474807190244701637542845387298558172609798353107270695598962118228946044559574178864603546699404768481435928087534698907768249144651315706590546970711549255609822116754611721887935579059222179484714364611404961437999256079977819219327907272963495778776956325460364013276859525605186322384799898779744118020496566798794368841058687779930300594994658416420798652685490068799889252039244575473707295887011110789973511904765450046372765677225403903961604999475558304136223687526486234351411432822624279252125403927431628044930041768676977679494508945625614431045121731332303592466780477672726628725523362665080915323355721626783872492615981179835931309444654054183143661297639138506581227425228057684717208175545071166120006940364095984067287095719985835099496099735578310304006550449412977133537272493449414749184995515556805249150274073718459664920437329699600957327793524491891851142987046154117175327414042887408569225545989056565048466882899765503716009812759243797127688944486906283108975998896495473325083071204509781698648193546111342795039040179980759666575128490422891931625387419225685435689055409447817050414486248785550489475928067690462080537175829000330650879935925402964197582622898006283648678839183590244545986140635418787980023070313506349951914974909641021593200932919886336632041337081692457650649517504167947883946575362915058795783419461947915851943084501086459629456638058550045236554098379305544465520991517076743058021426389962222819783564878794237164099994234214267892451311936342158790602017843125825884720742034444952820124314072412297087856682217535989016303124036810906641006359193168159909438302422832609449503658184912133248615112446476898740118667798329979499146956511788885739727349610432708390181813098049857918866040249691184686224047557414857018905038809610003399706932540785525688520362640365718811880085098306213162447261000063779295333377839493751682029303950581772778403805593606486012923990009173234950076338013922022094650071877137504421060400521232440650290262329350878919304503023161627500988224563242626123793879843670596915380906888199800059090291362476925282835254727076608890538320372058163680848973956311171831768094844731409961078170892615352997303894729493639188465109302183030344777568383419869737698120321244838232609093857463208676405062822599949579923059678106326966723378015346255064300739441348350701727699301911077699643866048654213669033934664312675241859633745253818013622500498286296026393241350563698694187212624608836958354683929504043696184217611602737328040470702718862529719589213883329200114381954486420565243628095390974850880761976251427755624497609291947823773774348773041703653163984993137048386390153992764735659995776182062706502978194477540053250572942591209729605642936008647440821531242973447099513398410152357201899391974659084533271916475604312130890473396593287063547839599702050307972061863015330743304389595904906755939434277647330755680605400002082797424853503483016087813559962554952995559334525547099667127766315252827784438571537597977608468108277243131381539239850632728448719525803283747101937093884270082357986235052089586847144741512700962747688310772059858576867130530289322538330299780176514200944953057403836339786617078131439780876326962909102347477373280222030991665410066468896270732669448132017495149883104241487657601497161465171333551623274767946299430791464760201342116846071510871463924384676809276946915568091506571181814940528728339412357634635041030041099883748428974908100625626549058903556960784712228129236707789125001720101450428909553540540527405238577551180296832908474495168362294085009894559059101396236825500562615325231354527586039135278401599903730870353527149915623638853823836839098210982000628078368738678551498529126614767887718386636353301053781868509375905891255558683201662909512440799818452222417760964391904088412760282805708153677013795273209003546056492772313180116388546798595820681416165409758283641586885976197856395798521589655884929263200405954308504069743860025419261231546712781007051256615281188204973051346931147757722267623635852701008401107663349128449863636192607130885817400792488238627299153756880829675547568443001395025830896077656906813481383956561526398892111218086200818209733432965542737894035098013756957239218321131112838185408642085356628824297873785046230393940374867669192667829091072405084876071500710470073865166238045624645013907033585331525841095639632155025933339088767670181110460951934375462729262173552324724963834282430407246485645961458728432961393197807860982500703463554230015658219183090940739822652667966603205553369712499873549299262136639232823675582256381701695549733854402026788242102308320897389935352858530593128316223068002485419315443590547211715638432793102716697193754284309368087370478056444549662551630185407094139350211412430229600224306559622337904567543145146698698757866560211907518118842553736805770064989551931208000483311207447669333946081155683106402907237126097220995022581395192650562415557221711436537705750865178551027811305541783097450152226935855270523257687642207341310630193595781226405979481030184958866142863271960705749188363279620936104816614525261805051202561475625979785708984452305558994051210156518111669405016707652883442732481735255315023732285304416962771309591447817744370376227406366696343512621519187359441760061205980027176697295535822235503374609238714850743002032020336385262436877862341783594660108405082816944353123863863175564756855204796736898231798937647686580156731895798290994591133117956426340897925418969192312616611653117975782821980625424760372354610713840623853434872618172695379089180287067333930422332021062279648083538714496485167787196910649147190880137266663196767439591229435478238807252624925641226290786020493502770736285687933300881260072417272503140511417251127721602503096859582242847619594252594484584447936999790187749370337015052803354034444621486553427835377078332417551315567610952910150754364122338467212954382848374813050446027781208236911223711532684490378704678528901184032752083774581813268938400187260067904424779839721009246607557881498657289274589694081400266610366739614304485937521322737355341625160009366061148777756282837560949131390908878072215807945991932888360044321953810463578430146619990977045804526863341286280243893558385316142736781807053278831400423099421695415495386111461387426573266880106123046985266357933259407442805498328314894413625123128870861173528360562343738706320724601591175788469013449443371789081992600179556323169666455291209471728134065001194871614768744412679697534845221554979904067912137649681991568884866321725034513880823714349062352880638645699388156568891826244978020929623641527498216045029937196367542158301789539073986042222682563648779792135932818429499725801263464694953264057197069003140251657630903693727447768059129220842713689020751519359566128799269231702692314525344799463763708596420173266088818819573753836403119242787911351678644850029242174380345416822102496614430821879234970882021517737665943018722376649669498180546010232682563863420579493473886144167626511892996991764298264297629360022962556637505393059233480483234710263920195167892330719471762121964278757576873867512854421230229199918865984375208465837741981336040782814716633086119008563459623420045452261622874458906188242796479923169983157561445471373273066413979310629027010686571965349964302840882370149158536115107907275314341467512256592771739108643808457228279858976961360511104661034385313444493410810628800202888112203311460810667065290265355239269234933519989074729247358366956899455659302124837696986653717558922030687229921223611041879979706508841025628858226426054762462227928058472625028204029332491849492805184549984510128007241660898951595046284904974244077264666369092559492522311220584932462122665068912451276036949641389405700245512151164341549888267127150632077300756813336876200404547698101994800477491013970425989315488124983810252392469856691860348076111586464601505842566509084738024549469268860874004296219682453774222454220835161991031533332414630287618652876726462475703461061361636490622379587638977401568636608993088351473114288693881840361338969108836539211338097772382383412409222259270078255528637266016545496054613738490287088953248061967036596563685078301777041441268067195222231197067374063396154203361361809169575565885730335762605990283002774473125482391176725949144644725520153078999910244268757438440690997675899136829821851798620635613469665129668559873540589192857391784435510430771864897437321484176388183085808902474658228140423534257042433037234898916883242292995326114957952654555553735894331922574246192503158157276750487309822211225240032383312994654333828172137902563139226070755650713011527610621369579008320861475194616110772907824534900969685554330080446072943270802295675772366591693193585144236710459448143058810712761513543717091051446037206499056031643519172695087027140729975637080375630124439102237910007318314946531879580862980535839895475609287464695429146251069250754624255765751230254399030513744538845987407961410379195314158978000856453587995000321009077815704142871128685273889806517750904980796170686790904689224169056913353002939488538803526500460029919895737358901347276152383606675829949827990645488366785176524459024174172599142316665793646383864519327386295089990437331440344492383945040496510149800274003647239294640846537599304426793968927982819369306985034549680706304436165256310113659129878119426117189292576052678114321012517283987437870031745259600996436385901225125997962408319364018160059991366201983892800234313441257391109486255411452352669497431016727748732109940329201633491706421487383123647639105287277051591323029567098587105170682251757984502788863325024720165938456111297701246046190745054477138828996246337177715553668683732604143188553257902833116122305756714037899035352847482722430054951400570493249398108151394296275132618342138175938749907749101952049892512248276916385422873084267585266892272982460328452231034991453694919662974087063784203341184751300486371785226030051813898577768929879379495610174298499989077376161233047474539198318331046646486270825252427998317909795557419643532222192333205296226766437372408794344956274380831127694001350884156769157530697650284573287800646645294124622546842488220675880648891237001274584377909555193355941597631748019827108204154442653725104644973899275801060682808265426197544300006465061320585940842735168687375842986499105758955443826951984685958479625964823120821452111285532000742518800412905467761551251934131386120406843943695079986969737276290703508939469948098727171563117532188383301485427291276440829386806431630259064422236790899507989042243595626013636943456085888735868530957158459482465101640697470320693481382721997396601568207347346331610538743433708573551999183284460401848649588479431745392947470194335975506686055533195076775374054382856570980657915776685577019570612767019034308450182622565895656868318484300207188311807075118843240518196681154412936316529964862652344154325473587340604892363153522610883397291121997702016194726452470740848874302321365859969512716057961791770193343930356214834375507241141726283787146076602465277745101129034829995112192684997523478385862303797643695349654233691114995241363776803179897131155885458537932578213285848482215507140187894900799633602190433047402009838163166838992768142922688938094279463403867614122570879994476902455281455705173139847903969677281841303098325850303470726645186145853921753646605641736975127425419169883355690850319989818742484248248008386396693399790808407255612632852681348648196668617702135159589620428494895642469835210414882025005394536285629154127638091131252973829304165187604769720467937121770549805419268351848615962689813889970256659294608798848662893097232417477063496585391653060090650124241468877525969003935031420322935275014378789492449049214744463653127977846485641221609903450374319297952454550394021699011877117475258157178565047308000784411973522757983402977105204683538692825919867290326969052674124639519881035845681851479634405476239576694168718868775858149404974676210559302971748781018666176854878219411689475342279362082753636455409481349345112639199597533091468959771920192691695237342263139075019641921470876998348240515791692145468192181595321669030551807740342785270330922267557513073872894579143500517552739612258864690042274499707581793846106899783175573505288014785927952381322073743969606467489292023955140262013538648763961486159302409699692550195895532914024236360204359123922350468059181785402536733267124605480545259108587842168008109008900245372190038474998019664837148447475785346219830791413375467310136681676107907250099216187983723339042010831787268599628915280246534937041636929855817737348043931807973210615482007360728447486336191005893875017126014925054853728818675070451932416185611881206996064927314534188480654239279820707389381661458014461786211580978892142140030539665257598228927434694343234217517405165201325099147705366923449416106562111229983009160458926372012500877246883740774775170324131295564496149384569243351686722275812628372087891042599447441636496823010188181579428323537295826437461367424998441273764905903703625079720531091163902515292051687574729698240873566710026237177347606940232226451616017938848195477385237012925470124730659461539415415978942790942879888887300325189864366668636089132186405885662002259998507645135509388107195208571165315033005125646446217986752994009551716127220957854201080481144127207881847469919141159435822977858811189940856066027741806790623767559775161777670470844865194140023133184035691481799040186564148498628130464736681272871172627282096492152087114320939299470658275464312860802708179612339066066099179613546981852617608582955969527994349064379989670506713141249545854708531895403311716432944716496105244053932188210553809231788233631196628278166071601466325192796308710696318230081349886433341707405208238996256861575809186065878321093399622369109745826387706114349211009989907132194583262884776148309313092915141570948269133611581699346161760309494980026270370495424344298072799191014573034014761547188828313187166915506187788880083378323764325691255045955167764983166177968160073302116537637260111979846377343173184439400265991820758151669408221618501877067079913593540769473343162856720503737775996501080131852106881432927365081503287666644918948268558285202034558498177927515561907584816168955277868648361458089003371755198109616548689524839726676865646413430393558269292370468250455706067482906238922810283260188813166349246928428326817946366759511218547721162378540413459142061098771377959195239793756965740439366267899419917267316150979237579747456819439570114914326532467627159377929761860629937860389466907096486909130463727027425798380325184477320543186580656240520108188040140302004223814191811530663637293759065274264158972987868157934035742306016213395314295893077622220791619822951634821984461078852137200636994997408130735736297077873785188908377857152475731061982985897760878331710814227583852674535164081865119622828393341324197983744362473230399554685522212077662840766288278792652117144093333630047688094448704399133796681226035757576583772391556828523541195155165478389862938694006409964981018301443281574827020895045277448789005070505642995726463812480713263739287520903738755156928144482253468054596360260291969252070698984592092298363245618609471102332304825669431998148117109402327698498592756325340415371463934769237338391144487332232025914977880472672208375112690879912564792492142920562031891707854118788356147024745202794270326095328383996392154937843119895358950938545002541490984854735759958902469497254112686250075351578884437570100095447577915370762345348853064715695580670350968544399568998461944573535716777981170936918421485294190091314289126344009394411480984672941660265437463927988299151988804700687005519129655532721151495946281110795445777934217364415158442268249616136031214262969691774798884304441648561721926344005230229065522901170560299054189320558219858046895706160962914019419490493121034122168488983812987235484257165798906820603234405224050017202469507735041033818699658508938621242009854997734725018417343443635515776335188680065409951703203867718059909317921988157428860916470241540498196647318791726416465696472957801135063701938587204388257240941461544347634379878632560981869230922925401314546088496563234080880655485248480276161900796468289959975960660832695243380550002281526612467418870093526505551593231990805998883513496807321061447028732339839633420420516428416067281531649503527701436768704226309762517415213422985356346091280838827282431063005518113218158058948166736133706887908699151556216412191553823331522111666910982148871702125284173788424036989796345185344539900126933082061033208898283627809630115349528146295275494205785416698233020991653590817122647388572466247498644535640078503072122768696599574618546520376987219099118476200463116528199242944772319033832242048465696407889250232728392188971063040693452108478929167351923977534364565729780726565290752812628330850306930288697795026374741834567540199680488499120087669521215421843304619814507583917568793928365248738502513191425194641024918195861528663914980118024540678186699438916564459743094248558654809660985993885906101131087776192442318172577992720145044436706438860121554678364393324840367230056949828672752981394197651301292647424931728310454122595041996590468142911610119377935477296386686849899269802859220423282174087030575001953792953025322241532985478710040418250436656848576820160274023897283974091550847743325516204330524021593563174189333212374375145144435245857502389373065641644035071505816077190182679056789339656013909581663621124633698123927876460866219990431642315089910753087331515161810873082605350814659575700169856071048886487540902688283814893238513460482569274061660469219755753392545240047107584285847620737948158331609689945981032375248789163003363412769148558649142228591602280896657366814836862631474213932723769359476881966955509917760504788477685483465073489043913070208102960144638557534103981444310483151149623197425041527219320098173051234930554713207419100447575601565456662743307291267882206595775841239451762693826190507519906949652957846519126705837884177482785642360593988617279949416277073580501210946034272104609518612477428718049841139585192229751914428856823786256746005109162857435117743987021603428396020392868971463772413639833594626876162768485706176395154767496999783165682796252842330298000429164732782447375349548813008901788392249649059172206904872143378066589821586092113200432551819069920786166369642758687491425262695421797079351209126727677123097455365303188905911237026481270480864775932601651772145171240340942705613350845330559411454870469343940476127184846381839735329392296656508998275529905017180439373123424587090833752043008043337001272107322280263157587911133879223031571946561933162688877577924189385946942883992780511274323542462028968122726828155563486865808420556271199675776674505760295647354776378019366796340824537030845669943075929765334267009656137261722537445974743322971934439261682201255768453866209129045430433421792646507688246504881563545002066005337757650076915882313475040834480784572259928477088294906981905626100457010494149555366806511966990587507199567017636447797618761320885420088050781157509453256581876145841580418870955438165015093310172297348344405354299412546648433164212541244465693541159702801372456369115892878575546666205751454428510057840849120229419857008889436950369159064126318809032925430929904642352435807868120910368134238159965478372669829391810320203782465491971497976278660099607486536322371409240659328392627290754311425032150123756476463808302083635481218758461177293370273706171522064836452181158451963162889140403331006813510470657136411137698999193642262832986171598379315397072111750930964957828813331254842611070792815781540393366526271083582688378810609013057702797738525478253213442204006655431475167137795033861584279572866863151285157385562589809838876894799985018836580306928206486335777579773179184402081439591048136552384103848015069330805531874576216425451708986063103634173173391096497825982715630012934366462676332990216630894920042332307982663788568095133724373006143653096967513656235451240083033005078398847021597799070854782528463294368435493249096940390773142607578055852212468613869346575734757296851542453244714333451197373580039059392396771849971826193625699841591547486437871243340550864754008051726623789318824807543349093081369375396176688651793980372691657475288853320127225701735778207796900708080188728157163216027942088235784722329552472736034163781122335470804388550423810885028437368678032154244363350437693847504579603731788896658290163257899259685701715614819182824736836125341793771823112874189701314632570090849354415770013211284351493106034731230545303511251763278159164557626112451917223417256427274288492500270426379221448618774489311869273903548076998338635678435143294701722920953672480967536354248060374989836013082973999861697761852139517494204178246126954922408673327336533605556256478896446531508695654052753205592004862467275501018053982164518951146464414229319198574558720879671476734370644176642600423116117199976685207973586395186739372037969376760186591792625013998448419504609765368440601809892528102278821667961922065057344171640859224445100558578259535459996205563833872981435141559919992759928963266380317347800595336755141578641331530684321206098469057197623362579301673757347236020621010420821683196183728606297001359604616165394631234802393923264223470448069541703554426053159204003058288868973365095859577471134958858337823778097389576792876480947293047011722456593629536340625634645580952199276307583886157907459760959016419098134884599657903205587273901190664004359155591395850524930631148944437460167271405115074957602763344679551569949038645611315546016387763935564957257661958310580392717035886404479320404507614459994236840715795016740505898900530774870765088995979222546362062518271233531214616401066893170319002955412040869788449693002620827833825757698754869021206164489622466339667035394174644737799353169293490901873937877458945748335296644315097584688528369688660752564111935369684846249322946953271905702462636521277521908947142532609602913995586772843149624954898270947707266024962786534675965747398348171181765034242878017936230348168754480590735056121616143789367389086064770111131564089614605225604300034692355070298936477067296018514106778699463442151979079602414363631334312027265584360213365252782814339808357803633279109535400953239985602236362128036426596369737032569903991315276147759378734224286343028811737065390363756383711178518390398147576164286123308287781909258156686114465913419262432438344316941804339913862383360049863781168486702976537765046470705000515112035621804680818680305312820404759757017326337719204459926993358402699258660392168726998820445463071196178256732536778828188009885101855957158336188811250380770384380013593610382787628997569416457664856690135393935598058681448235657667074436500400872107093036724564371101283746201688942468480288147538596567254576943419704363868989478621149345285765322460719886396947999545295306962829960660055807705393946665821720999675643210666073026818656660412685482372490347624092360473418529447120523454363604001068823040508116164938312933057760308608871788181930503715243704155031843262996480623569034425112712299365772205367119554198014352825774854490198141861678015607386695111867340066461796163834659232988151138789485554694641644090195897696352592433019320407285557277906244191638495359851147495286702303566818792811773237891561759216236341637819190778925533490924093838233466657022268077744937032215937828213643448088141623969482684309400719948866861705497489048624108044548092753740082820622897824290831262642720243170153627211224035228814952668431516130677884458612916094025980140461754546295272365177206074214778791579627243106225198089055196376364283547634004605975080330319406926112217607032491390912119485242970021943772721854458677471732521808328351442821967552110116251646820858247420208215709405962286144744686683550654126359418522164165171173012835399878975547408284503758726879896594713184223236512834764436524806279363973301216472715722409613975028101899815366637272830882771816862017387988602766192331844489946144682838069909892201938580993040695538019291483202744558518415130622175607300285135714185106875984171855867067928641224840202918255501344784614453434650686839103832652441024040489670440555128422926512489246194677421258288419669694498677616662586804245420326042116155164721514587082454587688551129017052547079017748927067654086507729343547704116185107085439883722435428146703470242675467043507294186230048770204311324474814157884630810282202151561671373126630918347854517784922796210252604266527038977504900211513982539818946959530499549818616958038054872013018391970490508083646494066472677572456247231351277521890764142331647318754961488125172825883069230517996325484039615581062400789200560595934954165910694556963493117641715309284580216927548145875887073748947228261907360626647456481130108841957177370919006531634304419643216548948491280458207885309628416468870729744766138234348110931552586694425203609649806434954273307544652903733068031893881383106996895490078216874519672227967493515488254164401394042541874299291275994329789513705806091268677118427701045751857240039006196631627970002288649099529570707350842053213984142346386609467776398284983178821218081418076899895928974865985497554140742378237799697839880512992784577029317081326993749036739436972938275515869608897838363342557192397716784886427213880666676569316290819001783943939297238825870242562009853325811014093757105675860336561619432446583953311358611756439975664072860037168440833368185859406055010667336244409318980558925453500504172325009178777211222123492329708962735154631897901993851471176407604848672490117651216862914037055965470285290086710161922142217526444175510673020850970075361017471081806651014953886315803503384732773141277031176400033043959394648816078947298234582724314722427477009563099242877579532509388742699285360837665727845441525659520678611296866184718388005032687289436803357788529251170346277960182872563594758010949511811015274762253615176435927297325259941637552127899458400226951404514910130370009126617980956557943732387764251560880478034900581562100168208549573706360598563938913124795248078519894196829194225894570190591592259939049577650167070666601354200809807019496520902190353379530083841646449078307903207122022662541841162347320491922476367520161088061759729750316746309847205697432354356936274790308190038993749276342879571255991349130299446897501975409205392431253982024178865121948425225022080753538147117791884904688052292444577265902663964715648768718318920806850496233415645613114858463353778536770709848393514854701677976634533119071394015607224017307539922309748192183717819900295517747902411358258447546136253233357609441026925051768592157750636251818249439569187582866558869567654487116079628826779797081796605415069549126315133330795731634271512617178565504764414630888692765600249416978751267064081202785325753403339291606411145907984935375045454083609851593578028854193647926025895710284787181177780827147777417358099026309881188715867195078873591256952865310182401983873527521377459075933350981576234124969948602878459078051542077536556194461049042692996350335537709616996657217268852868467349113904921324831655710549898259110494376632508096313230281898765745361296092922458682131415327652675242400794431282232739190657779517397990994724973926277349507448529830677207737517835598819210559046796998773551801195890111198551235979525811307423372313309041443603564006947379470465187161787681198111339319805359332991597663303160776400856650838194748322436528741651863572248771081469780017976793439426968763445262215298244661030421935919279030818223487857191070665205504565668509552768732085438600076469238298381767545813045736911452882740737625398193917885279283708561883698993479958372241614555502825910976036211702740162342821951921435178564273452755857023440921769646219614124618044792015358923425205485241158000656883251113913668007634558213201048239153665233414013451647228174521673166857120874449006364123318999482652029887039513494901158358931051036409835223644648754389136378591599400570286054401275725632862712830845455211183101398746353512390394100799043901774812553685042044721072189561509610107812685152134210504823418454529262535092802965329111842324352099780630171011397372387012878560501287742392798859029722080176820023240634448479101487333065978102350515257329048434803534051860411305739359150029348687968968549233935107050298552710127027531304728810970237842836237012934472071447931016437836640309478620785352778799928861758414640780077447135025645546706046124543315623491602999625222411225638801195949837007182215093265634380556375392865134210978499647041919269659006338838386910882658408777616065191919857620866987306591835780139720504511136062850211058816180144194026678166795764312991323401043213281124023082806587629034198769359480873665283850986457517439996638947407336764299597995344979882211133430314733259531380462251444984846953651094538093181076251455027153264377296411306779203428443654556998419957702971665048154590530862790493194818447540478146797356482985124646018809760936363038638361692909525440204629723393394764077664186750251671460008519264294979793746401198689733783123566110711380344553863076915306703580783902671390040508712045902363882141200101317499257975758794584731593582133812108166959549872928575821697763393042874608084817454737778189710358638672752635404955006105538011536888418890001378485603496184012744834958885897712951316654484596592763829811621178170136020196682636284821089591229709351209853539535446499344446237630812821408243323591679965728177137422559734382142691888255915203877978665886661237157577229802440323475631593130479199412222325555912886260861356382706194537154595783041502649127702361866343151624579123377290713482362871171613632686342844712032418463852546479658846134787770735138507459452389340607094613957145258730850188209820882884922529829164684514153185087017612248811126558571148181106474103792112110704822325272332001015408034077606486828546679323397628387223026932729143514706236307510973525490072998643595949811932229856937056666553027935614680798353772292920619627420376761088946819219580171501671848238743753982685089475118608943664342776169001304420581480894161621252584805692489569278689743932659973890512716788892983313657852173119290540896651683346144630968136350202626470091042670117101006247162971915830388194753865078133793829795264018622503946562889990641788076139689839137799233359729481304237922892787875244890836336525549380248024638720862336906781004092571388070255812941260436737159545068814149388463313550098430167787172085542237580221140680146135651470020606593291960366538918022807129510955439082214100573960270965369652362223059752757526578376689848255118520296056414204868334615410384963810442233527685343601665215767651048434743208238271755030894922135701517962122570500822120627386793835397572127208948543073092907009778785629765878198604344530679543470465674313838273909783161677191393109370186449220583397697222675727532677507812745268840350232618955154616295139833735218983511325593689323341673952435576128857939906019969956073336661546311749902601183654112833848857424825019994845362336065968933823582778038732316363478346188801843593820382677518384421253381642209821929378302280520870819720542500395717625096344336143762040990099499495698829808520871151648978050239126397419413938881797312533908366251330770414857164114925746404023835098329761123973925915828645043479473284401739190451691848664803184626269850416009951339945811847449670712625577374583065548432242346911877929497783863572872803446167793968001162918509837548597275957317037984293507114477716996515209357639141346284198256596248321991755821893224294502647087396898927877792994688924791275496624320761291748334638319519721094822018940647741337092236555377390948965120302083018859263591921686669532911080593696884489032940009160155789813215447059477380585781539630757394946335954731549632659345985169704713565315153325694870550193412102656677730134952544925286850588482496172870160872506087132232685373918063405313950175850012602099533299655333501159824733896287761641173925458276410789772068170576821643520578486017697713038488429869987850472918578338102011946450828618240567133434547375281746829249669262646126291533724117403379096535994243434019921931571874547137533271663485226233295956142964811248611257382359611338405399504187959718765900911917322504154305015086502686627649107877910191476276503179257958117085326313382292157454733028239936971963637650152961022839930450862673988269882236709912054621848492298241343469456593792255758640871708611316466032908198028652869990472226629696945747921756438635756578628108725500472199372112066956757322202120213883554215200209623392660180424377820347197155244252044917321435867894900915663198656072279704153163226379427224318477347326132933554535222459242310468363515665223337855121845709379485534400705488943501012309161908753648105829856189203692762681175943457059796972864152093659067318392091482529193722586556408583911301025737818976638473308024086340287929831894485188532991570002137500763461647782280738528579584309314602009001964941581424454784596480913456702613746238576490351820870493360769826021627890000481682736526166308899076451454220533243816686738212432695357292324023826821016174663626172305276736890252949298216130435086096771726261302516687952717566530956623080176833147276651033146784485347698644318511363299924407080972400130179230747877748872603929482044168453862105794225124863256676521791356779374113310830672530787838392217038718803958943526463468435361350585338157992293979254965466924799798694692848718902767061898605514926346672942684918960383878524678108696912181442027337163902277807011509313163700126684505634592331307574125364501430247646380443615048479038706624585576798467075724841821076405166427053062569743530529731916955528651464981855616476544695047660523442062583494970458908566788912072362174349668613551223903974675220004511335052384228131961187683238625978306146935508229170280024986942364361594289452010008219889942563377376284303376025719875660503616443747942369069427175383214876900439075631746467989793354808559629593979163751227895624215112244561338110146554563207081675239861480818694519582705580101907302490837879501060206948206650060582043714526035500947227357410731122112874229729892627492684581668064731973012767177430674030803248994478019800083265663272056713057458253886035127051560164086937716664317036955393702688260327895580437646260744336337325533004633938800220044896005648956050218903691597244665715672867563834979725612137759184338977355339657489644087857949054804008564955582065130238109588975714845147744758752973895677774073544157285120916997663319029886788387701708839620388174383278687251809047812197921246978696610663687075272558443467760991544741718185284225234795557115306417145803487225361604854759118094141455951753790063000554258797237583727997805895712338038251918538664836950058942115417701479504727499301915446904979671435414970366998307083676110358825582976991455229376222962011190281340369378309944461204225197638086595831819418411955793663750934062365065405871646425790124041077982637860806600392824335204569873852716622768890061966535570319498158500655651003037889833218069344926966732924440102035151449592766327384389915877280839198551623028022688065916743189155837241368578534446113115431657984878963720207209839898607612360191590181657751744579328902503823127116549699937258204037229612564503691975086847950084429825814821236609507750890923419559735079149039055414502835790906621172361614325319275173782923924072979460629324745802951410568496840474742586692772359905707428817287948319025088807573516005317031437642388152161133199256487458950757462848594763133897768676833507024583227345180541964998083468971827483464728853049102878164009176336419068742485265081505534030309887803583024473290588607593657970227885546151099309793379657511678949894575596301782444553463919749630308270301906075361340251043984826765920607145770918561692370147439054078384767638637059129994543825716553935084729026623893232507152997837252321292929865365800728543105666728028908838707065858952058915157009705000909484841840369386801885493569999463672394835678732636264047764275313453569898886790525786264997974475733808371685522580176564076731983466188075221331926871387041936649135782393428006298574047026448519759917193064413554721484035944407841902891526477931933591504905349284638082055707986069979582900095702694478282826337244235986436152745449531013449884969244023819303762283301722017596461947808657251452730332334380312111094102612879988694463306033361994302164286897108927752757467222941033127085449257173147318657298576629728054473927874946326583570228310735127181851168406108437766721036724219029800730936729493422316720774638190547816360209459053859640301609239586820805113184740543271534793793896087318578898054415589050857320769002464944566904441185561800762319548897846717181090246347195799883791623862667717646534528651243315709159388944574746910425295442241505625124636321386258214914664221238290268092803304849794297348837398313979970937751666792917678389353907803485415828272786715967765569498894374600334679973562989978681097506774257701946606519847466542874568748357529226089443968030134247643181556181910147132546818619516573408598488152809833131165151245430741669412882121183415751651765485360051440539549766470947532988645928347934590729616119789835144614000933676219707600357012529563071354321159273298908614012718671331108674350106519422832000636843331544432580449878191056933856489416894714000172344245855437878285448714117998772175476983147668308839765637719380922863821965291094437021622425949049745482466429661138536941283102517372977383808627336376436390181527329138596590637574571347035003085893350372331059675095342184261991017901091828414454833765281868675065254793687003933619746222791631910740894958488202624938067984342398206283536526376038075187563015652129269829765205609904829008600243575338622650163490389528823144335818401535159280703470687250959591898177455449329439177055775388017411802288730138993530750804794645537483882064654303319197913392925286858257158886819567763779852884249638074878733093558836595405765660063675735100549471690074815090844412064069515571472029000941326647695509697397498759275522693629899733291064322510668865714302450929640227752190868273156187157287756912842714482735620126007646728695033970974459952915647377997571548978756305978284434390163460313449587389859182769377053994681191818798906505781398896521287749397563127883871043481944131588604609605374377842809190891372572362661357576364327239246765205194331669245225789548719717476657793423209635268711173711705991392382605665151067408263029193873947499602908167739611987045084252723340553708345806324843859479436972707403447493009219636157367360558173210656786604536073728216797388456302502122019128034538267211461701867328309232825287428105624513376289726507264495920530343192245274079993111747832621393077774873021093157764508343485129706230282803330466382874639962914945814450204136307422561475765053043839085305629851149453148351870576306699921341495348866958753393283571328797033838749246737884580538867761811074622050164752960233229495745489108862923737104173697731319196214935129977714926821057455096783267877495929544629343692734925635912182199260501458282042585889399229922370181817196440923899228149844617291633719240495714610676323957222712136601353043846891623424235866762116654576553696770458930022526449156412342989845767414380823161649436596429620973316944761177625323386416155212079072765423103704849472870206008995413707073124799496232502168460395704398949157580181950511426195180196692441122513397216208085424286501308833955088371983561323778353053813480541415567899386750330458769910493925443017289489242070086238786192588203037850150224549839837790482256130006881106741188786761167401383553562200492545973266785915389107200546554999374733790486902330518523075610344742120064888657026131809049678773484208067123718985391413950028760167409611504678608864003006632585568820931022401218854431802903888198212704393095671203933370623903172569763886394292353661892723218667351275130011115997789300394154361110643111808121375797776105344719820022091248832001660761861106129510241652134706442277658908923624640886789604974137070964331197716971797128627108116039306362453788828625045155033325208588030554826972530316635987820337821399759720598397661844576399303534843171444281581801876866913651869237719591040639655077781067810133464219871969969880285141798323873275175336938662471126145972613784717218911960859502963791787807344989919277283864264621129605269185439130871181755590453499016050981701771252355320946813895580100195220238028218277446673857888843429457816335370084278725436183281957075663005197611886164253971483692267976670454130056829264987680379487960615493823244090450750937280094791183597911120821550208266119833631316502619029479750912135574383771855461957432679700170774317834740771277016700811442933435242788171288285085124633480017589488578138930935613531562271815486882812459514536904563231596403669450276214387653839743268819012823921767130373125662295860721790195046949417855783662865767900413931633503929714116567787902201214218167298700924009037726420306450899610441521042121285506862000959209498271874408268920387699089448435447379324406899814695687643755463264745600092933025011710515152038758078910224992725211651263827710145884780674884351135696768382901970225270127451717308280284838531209569412915275072709051461098387982240862861768530360932623977231196910531606153882554724890600613118099507183493163987195918530320524147856947466590473339092747019319743444847415087013412844804899462435084605375243654378369640398045326567524356921721449393768318892656789831094345844668387212129524193363342188259217703208182297539601257188197719737082658390774561834124605567216683852731192723115141563782846367894729109492493199252307570963739137218083834543039536114350602033678894412991871325090038060352103007740575974205208557865332189722586955483524040266696146173986218573487971788708586226265463277826907806394347700334164281795201183225449689645855424564578722372976914071012801360039747702798591357912841964192675711400438997110723590864853393914219320346062836859502614765991908115387267860444115571092046642999980084572311850164190605033412150798633749615417268174759759149328307882162161995112403927194050394206316596294087116073263577824909584050328879274998820893938623673853174565684125993747766867098214843344068737303541110147015252749265319090307834330997167402878814136747682962684448061230235770506749838591347005767030693860712240858896684833640792018509939335656952658658063232314937683113178265891845981177152750519760151338197597247576879056551494742916392322150082575463359359269833386087184770717915132484294032555985794485922754753773789229315443488993406243319304268870282793633313019342037200120071827403972904919233873545130098056940196460742835603317010513862403679473285848387682280781466216091756226240191854758276235658781340534439970861465594656217344689912982076691866789780439556530421664438931246963748065261827703368214151643714413883539561370121068779611861844981530356305273698803590893986577344315391296432576854418261917924614232705864835025421472727215454949173137581307965774766538537944570158111644150412761350640718243129456423807426748430060305316892923880273828576550074461958853509927249960069667211058948145579606275345127223126304030668008369675729876047063279663640098434147441432605740085987868261461238001607971860079186497778302123543565048670777760620511071955303912320336687663475738533202905543920596453373121540178413811892151598633120528036749611954690375810283060086043811772455778115280858051494922705012185209400892518648486650852615783381666307205183480451673652481215314535113410009348464900092258379110733532666764249105170199717290865114316081651031171877817361472042590743526774670353249954092728564144468260672650886809109086721171807012628244842914925009498822891117661271908127820562856751083799951613212313220572385768572144862952775225614772728834202424583704289049422390845610641373921383618804751091458559109563763638071225011725742147007603048845647603527238990676224859299120873392463343273295608154817760895239063453327386589595834292021523387431372977412602619521912748669972634860988611719965122652234167652123234690105062524194517946490668663712797972531033760587599892399175264294244933873512359670235740276491533819592219209411614777022569886791565680612647212995880821522382857583667929009877916820060028334598003144557473596179494999035487379935059269553524842296436369950334042080352816091460418769255496795158895914179733947391140313702567701045019201428314076180680596854891128550943035452536437423907404567877825612005231605853732373517632750152876397491301893079863546463524153073701543633552448710722521023186215949084357464589477166160845059577150369442717786548658651433881336729558239248203660060396320147514237680650271418053910684566750099884384421617752332996611893704406038245740132242402007824331240953632407609373298641860250192977102388069769074878923157783344544145579418841343043736084299735319419015622381102605276852560396620059028716913296911617265382135777805710076275101888748946975973704700279276667166364176278099036197861911858563694659764071439562448242295148015275160569529863957269166753818112610136228436953338753654167180464607466378582649269679980703755752499461896379373638094733030273895669060640392590131383941164717518654328290005192717956480064157484013682333128553902486219472846884133154311271808174398863866103665674484183648981927518548829320988207531268465998138009029890720832870159728123071147871065586333900042753359767173512962439184521958849003277184717678846021339853073087540068174809294850344840960926063109749677245804636680284479623014381337503163204239917337336127242949683792456663288297748783181434880528646620568459200973948367876506569576975055842107065080870865794315900660395781306314982710151027688985417760689757237623780382102326234605053846551995337553277342430986670286443562376740112245278745898938319841447944742899155840451841051010163301069607644887237132462895370600964343813849906844323634129264717164968428689224255814978116240512017012639634146857784392892028311203655631433222280023356056394302038862566915572900414919633885328883069555607463561626546093148362503547044040875001037458320100374378535885566840585089191878931292293831151597734107945300524268914623994369832719356027128802715763741767797410195022630884929053710676562134232768928798762161583886475576718747195454074040275659146846453754096210428789643582121298932588888965529118698110048070388901505523381542570746829135942694698028135784401159595919515338042110172501489122930338199093448527656523028737097510029173101109415139641340325055633986519178097013090107408254985550776502378600602501850419063170024515020370257514610078420431944279882101245426481979537321771362169593256767442610764706279282432287291251890813322995196940007777295262644592564216833678898389671444709773277528333833019463024912422191699656679422918634804319770529016092636416344266230198189490239510892353259339307953001241739141128298599425980229421192472690041462965791055418794609758623721176836990102346053167670737543461877163840884816186982302398954236532028319482529834737170132600530528288202689815109311204340270558558710639714323094193145490700028978702885746762769317973101586570230990883378810940896582764323895499675672379164770506156296800054235501254830886394749403030560849480939530141873238515200232285246914241561249668491844681445002211610797528053210236394880086156179313256824272096749804794650860197500595972908928065275355822802511854002487999029190142345369897911648807526285187369254061124544738403666777980363942586841151447693044495477298803562259175322143291917075388683765170695864993180072790338626971537015445772853781332561225946076867850596209140733235063268466657336820105617962626819308539954881042636272155884588953714924943579867394749688622438490312739233877291651561235901594581111652216824458387532559004679609773325957422228939738901570692126615204329414713421087492044489815242357071605332310774691531744191221653486808045228227848819055991212208654158094045050579110771264780757391074736288936923898367462224764550892814784613806267154308904700252732330466715645787546113020290364977971091832124258521702709466872782929878016932546998241076659086078649650694574938812771432693281161747882327883886966858061713656329457890397590758398168057163742815705681416784043984674080100639143874363768788132896840775544436589229697256284071238715981137898683586679809072976121640921669537149724356899665683953902410576180495496675450554921608257077559198466015710651965533027747775259504405496332266653335843860142334630652511921413112549593828540660076009358255036110987462232361628561096466254782756677021760218878274825977111129904131249500288737379325413533414294791527168799523502211956144073401409207142621595622195238820362904299195731678395571995056044967508758575664112409543841812195301416902678579015909821276309022874867028739330500828942557119507445094160708327084179740623644936545458945554653031898305450740780632100013128870554638390247068243307029917540352809034041718720813657194393366106618529757847274007058488999586669538245432003264296072166902240483688592218699885649469734267373362097058943260319035148511861010342221102696189380134905504844732359948682573886281454108815087040490164379116043865006836863807814782667770797641695882278747476945629437452366127063810048357963340736700083889930927869804019688437532068844233708883445114019610439022656440768683952835220844560446697429046153458574472355003625433662650230695154047602213672468318284312313464088636448701902688085820462336821458635008690386615988484670546069724763572462672515397571428376398577340190514396501239080500715268227077543301301446347744988966718414269459713916804697308446748371159664370173858815402361640132859794346226449687929499189835160857367762750503287765202198763803511479577754590068439257536284190687343857633781402274700717596926569539898497537907593092195514290972239727090966661448643463360766103099784762197597120048478226890836525658046537683939463355325320076725435811408562200777040456591544276186114316028965597926499203380643827855289778091631612289004414428330638561938373585243874910614332130309703445756134585700453619762760496711247587678584278305248657119063848012800407798632344386080800237197631548077957741351908548044217173799085080001172537239014692270094373970568447180017421518968727955123251443032017619861282444343942530393910320179453480887177250658860378502457623068007886041854820229473919030048534919608746595293895356260910491883362267707007678585763311408278442602743144974727520132116528642575891160092768701482371311763654505079713474021820278832694668621599012746988134688211816652789124922387928126575999746910817597757933455769238715828359893844755622778274625639003691059224093274794850763009842747425160388920813552776742378561634288857494447687252995088133359952742647790501841850879782798639484669341598954134223648001974230917000399272186285758300503142077728955204587861973296334940853026667634009883995874622055432167658923533915447165337321628578111340320969131168539810896619240652180601093683544163104863310161374400053358563855857817815127361306244892485358359191147959626144551500122229592995061177306654337308485902628276720014906868532941143037906675481916862089811944404361305369400387895853311853121261312018040394180947088747787607733576715450354265572482399757694483738720426580078189841973456312928457583626393575785454009014313104849395187992505603100275352121661131475528968469263492833280621923387349882335016935205330405615056376851719348709382128965817655906966613893681459770047165848999371687760983274508151006127610567669680206485644966009593472083437485699142320759428519246990471986110269398870322984576468456777232265533755063857116654639453731352501157267852243156530726279240293631444523266223492633712284356275735465937171333495425558130555899259948847001843733474411932686659389065703999620629486170147552647630284286705151993341419091910691847218304203398411210476281374755953775833613977391744276738178074442162325138007774235866948459477993843561539788604441047759623488285242406827006669764801656365360526914348229936596060743109341094466262306271037346014930769613434887220831990175005725449746263162754310953007519624664943000485198427694296301234396208277809623465249086433615548008779056742493161198284166076359956034827679288468182147778650270524948922445179635819319959357062210138208228870052197013497544538271672304870871777043038622871548657968238145628525651096804356125409079153884374570014572940320872868444898041613570691435993983266411819699819974443135412920185891233722808391561843876788612373325054742183553980920807975074161818151380265524710969623767043118626393934814077248409177943100790400222224484781626056986745764635715599156185247866158822631288990876850246383296697864846131693377491561927435877883266581858487604087757690370660771785905193200984412092662776829743478193705205715182371032895313149858962042745304789693885360502221005336947834675256651338488693948824564161154668395211345678155931189992063545652414111475018429766853920575047364089403121070359583404516168341293848020492406234674941079809101623116683919468518993374850980297412991752523387970988361420106809295768000846131121474161459465021784460397746719575946993739347357772270620107891486901162331809751566252367560893623069580817598492229528274309408349219770379005479532907962016227405029657436749915222683815850951372622632815634208708349719202997784498620947543726958282141821988174400446642788577351078217551195432972369384728283455864460051520749913906807642476576990225355284007325054177242980719606393791432543791066435896369003538461742360985513410684032935794656520932502498744088280161616222294483146206646956884847653732204673161623377085818728882975488529798973177505545513351172928756158535842015369594831756075702752464270200286288983254601136479364664628871337781526541723739158532994966038522039654243672582497265085390459474920351081230225984569870528715636172226006496232431193207475013637021714270581582645096061879823950268624813712817050433338700732862000326934688407343996226468644741324242808832918107872541362417488478047050692129962244971284521188723688747588121756689155504667380284444379122695922942470708019956061880039485515270928927630536744982472804548264448979720944411005534192915913516525568090608376027690389886161775591039941271192088858473933924574065466429318978136859846661744191284333039330169620818442560418896110589274467734882732873837622814781681270129988636566634793599174000995276708266390252719497795090220083166814303606719623965205048998248379903343400719690427021175499601515634432450090390055025772159552890342844716955251261041878687404155657472490499765445285939538885021146132578834886291539791199532839107964165891789901816406869571074557823207065482914129289223175905270923133926551536139028767972951508149876817152514324338707659376553110196172577795088606920031503392921249204584896381198108735221068899690596834667986508111894421682261432759636373400342517997245898858012598971042171842475380801554393346045027163960947794737579711170022038058168315045861347958072970172988698480795319800768880397068542021867621370981810286202035689279258557859415515930065070121870957937668590898422218668833535751386144533827278814600339416837928598612993941956051577262302085499810802607783653036006031260713031186387450988438754115736271990091304053506245544150354059239201217612216164504288082453713089514245672616902658784523544776855124780839582179630939180945015725690747175776161766285574587922426489840657149551656208569741082995161206543262735279520061968020883916223002979914485642364509884153534013175664069185964437001676767504282627239426427829922936392344696697383088025420444997811438506011485567223203982575673966949860247368485113539170439668351322689149517722954937054241983114870964294421811929264799038695923466725748490513859597748997498779835577241065041924483377245147649102975558587469058322021093149807682915224075863023486799628204710964128557570595954493256338564425549789218398941112950373087430153968670399304584584042793865353839242007396381203096478892592052832294720261813253998847865673845785929429017529663452459421525853729739361438035039189353720921793722031066068594116346666348370045612102029711074200668227257359114348123147995118654860846670415304053899364000420434415969271140827065704961469449174445296885447628003986393417599914744790855467625696698548480423324865804692073930535905914358845138760055350585598522655539513050637997564244393255471789534189548602398413610053417602605650347969396443120924976450988688762681993066540634459146631308192046922606715229354823506583510071834815311733098790391167041297131344019143413757374266770874070196486012636979147906101457672481293499933644328380740279334783782093325846764255062623781362946379325932929468632844319546932580789209121157418370533494335893053809249374204888684214032192144812840273144669455202951309022578467586267408844585015260954553282358083995758289332776719450221791822324578507393403995941656565313270652501164783330970086251511849052644260026416914554113637665497097538433359817654286839001153498729925143018041835694072469886784798909821860234135286927766059205359131682733873130381080874587686257587463655187249710334581723152159157228983087935847639947712391205125796223298012720461575235087066284601766708989729511411183387114112021207475138630130449246953286615395862708052083635385094970643404849341441302413663672145744832657834465694844487356231575550984973992189172165845703697333702352311875309598269238684957106722716760606689578265155197894894694301645459953220940142801660866969720184523179127587501417548987880830788978377327200625754007321137215927018602170905398376354553722878880568914504759275197111611829856476313577704665518831389691956286493210464764770518426306394415573986876823457308671215084737919368144879397557996233882490227433482350315161715432618041810207261218948723054957770033594376447956587028175196007186461083162753915689636064493658031599931804944022701461158011355007574254159333682272966280235662017235000472495788814249167143081945255186376232114308255043728585108377238958546266076675933541416857312588631019692393141381388858326316118842758091700923816594015207137620688320853365980359730949645761056630918000160356830832393791487918233543772942441447913998021021766517670728964328995800652449565490848112534004609665108941189846218508151945708567000120572185923801416408611957881813377022367352442895140461381505956614590804751251262062707089740181903745474182498951855345515131261959735164126638542786142484609504551325435125153952653694605875194991756932123037304579980740848451149930945578668533306025600063403848809330997996566674778872315389159087158925824884559009901768501538249143951175452320306346444672906842991102872479117015576789476144615759822139780101203737402513355581281453450067209490330729147467709673536553445155438361347544801643606359077628359109136410039612559131780343927661085936898173109197099594854753624546915078850196096712763881169583892324611706801041836838254168421359329264232046022892536875180283172066675625092083272745950049672386692101581805613382253403149106465765383455871521305028388918554903118778373904687451820533754342762039464074670975890692506791768998098878723159889012433815514000576778948470904179003948316107779878939034464382259690930281114524877439706827355899573738143974966062090654562429959647991702753901371667543250526985501783099283930326319620401164547335290458902235263802192858411996723832730088823225136048803672905502086835923709171489679420107839188188185342577998396945453864998222109256073383197618464539377810374419466309858753868379582059679528596705441671455720436394434899214154255917964864007447281104674158864681356235037632918799174360655652782722720811553123968662940639824895520718903070329442392674113710766440485274799500103116235400605089171806391034561234918996039702232847063298398524993425266968918832858516560213120249835640080436263312067442740831705982068734609792240589615120848364741391610046594663068589192019035305003995734728264463357860081678577520422749451713136756244172258030838976139369973787007823301289731353435107246971354160040162732275999093320596566906697305195642735663896668221161624681651567582567158767471145810412448738077047483554227180718396527451695355231551368530146185190574891662443977359539512147418189802539022372630968752124473513604142070027795354784682725063481375492231812809735532293025575528610861378154781961730401365717123672159473002443151103033353788317627756687420212752363065326121413903912563844604793083300122815930395857872015147155308791244817013754719502286836797276341409924885705094672948332436726006623598126414812271896082351380159761644555447063238762504779060284371049033187009320851593114979861726579765398030489278175078046307518294620465709502692692269148647843453663929830768055284397046408876047219795299603909471611933834197810200544408090268553647043540140541684428397375013640302789069684449795033754831203227338404256563894750861182456565758957031126117275402974403759704277961678322004825270441352833790662456840688097712117660475236083013607714981430615335381002125365462835208215484484919048323093655354248940021939511672817647367745279307795096204526986138541344345277131482620529043593332022493167845353912200314833766525104109917073935987927293182667671217774521576827059608703378727583873514190119821264254878115807468423752491575346062820562259603468443391391973839322963513316373298189732845854621833006785532795417186916585421980442470169372850753249123044329968089773035533901201786949616120536689108013979790250560316716416516761703966250443784208075273097084279515090402792986984731825432671571862051609862596821136502124998722891200616004517673322427474230518019409305590242283760165446160154400446998103872911192220320834661063582184768714198463687849825292694019312258288481561676396954116676880983444104564118591938928593099186939185409555645696306057299788340148919457833393426766900124044507864089238235620411792147243240177495409930855199899620658821292694686011466476108884470100222483552384423950569676110444577265381211681727888383651747261574132623942022622585779804908129578641639802869554020902678553107426581368996958727343108276903217951560396843971872572812591196428807474095150640168390234711106789738394730337109185074303909022019574843160156262320628085737409232048778573000903293823085284904729836469688943615157295767145699406627922126226487177419795297586798282485976097508515117305424411628736167710105329368561326503073733490413484396203642739646067554045815543062691611365913179351847689261093135388615615607191535312146677332935693262544450691677830407289806012780674377578959137432228550501839830957004565435106291165799830238006538197354412040284764001952211066270267128118363969668121624520846850255483071235005381353729635638860019510066324383050499626288114091577829512152967438558660389183400585392542193856539658266434086717512734758886032720623515444179320694257017999793155325845242089132229518679982475625343770921876109796463246773045558683985429485474227505015553068209193279340253013650575652707627290511309182215307595741149554404653258587379610603887590554146805794041638045285607141091504527653863485696981781614493922392912153884415719545616211993882391804152861524359632104710134293955186375927137167863739664116247726977818074889436333315826334195634186164479837704713387992615286987816262206947240892597084842530369597289387144464602301069248364034069522268839004228226545669484833385883802510550099415502098877361032848103764138640079221343294535674336399139388334543563997685729254991313914692804687355143069218432599184889380794196067057824918623281734317742819039004702596217059369473103389310056513225784404166423440097389549216737279497637559918593238303852898233005560054101558977389221175674591194034344335809300440225475392381396954893246485801808376928930552585672229962298326823361175828042740427844766569415731264198418453482938919824111966593315826055723047206773320831335181753342614175476351979683833779970748091719773255568742904474408316472434661857564732690716590272545730845643237214453464248493245798598768295860871171849872932448817982194226286350464412349032041528002100508621181433883750450661763001564366697171024854812957478548961253102876616314876013976715602306603736647462329403296191169113717551618506822999516012779465060078357711350927960309100125619266516708611030317829874574987033779645958497669347972103685856252235010775189534665045374593864581408949620889574396994178989929025654677414925434397480712285621239461327378432337760198175985047799167158922945447011464475233011452573526203359436956413527433325936994957006895432161064762645883632522124950442314454299682377513383855706120893233333207269633584223947697599054367125437015662763784619113810360273153689177414313061137596166734741071676658115283075368331930546007032598606952095070968516944598120662123481389792400221826013366030281417012711677599052236784140201209513819901131025033432717985771260092997258552646964350212130756975917921829694753259340060874815757105210245558080904281614926052095614209062122973011090983972136892610173973996644731742316905592456091048060394633812609754806173898171134045550776275813567555937125052740625810050351962740093715557470343576521876876406627343904613753102966425859326489790099767606476207673092819891695755395639798359535849794187117685963532493875455606099748783504100360481614774881386332226060530373181338772011313239528299865458845748141337689867932464235268592302573402268710956659430108394869504378146119419967741732233068543662462444201933025447181023063829319985830722643064228387970873740845653860322812480025340425594268421444682845496630300657968569630383113461979953863549193578979617857423385829959946589102701645825435262634608492421893270717831512482322763106689638217875171456392781717702970855144247466628211265466875031973275634473175960746077517366209537875259149744411966346507018720824082956208003909289943391626391834342384760834408127133708872188489884334645534974705029517183611089429700788462702858480801817661298884812428275919542794263808020913771804331210368031873687239398334453453548069597566735228599794944310119855110552050567897729749560670027725165909457359493634790406667040844113801093221724791568606443904338060666784945856957143977512109865858654906706702972694931024299601223159836800996677009543235231380241732689920221025344524361303242870392900582087625183325688744624744112399104066263238064653031976532345347676134433890036105281461749014232956485009623832688800438551792398075400086952008985727269941965898065734081931291301544760172897594504475780194296765518387151569355910532914499366225603412362317523956732499775008849375371037174396134883512142950531811357713401864360972412322998551319374683641252508274204616919456029069997486691062137447077279781934699203027834255297269255589750050126644789139733453312267529746546007443407757523495066092012907776229165837185300935830775981119268655260712630022146987349939810768709433092089273521581225800229263863664434390953599329458222468246675293045773876535896756503925021364630200329083523945239244333919010769957812175720099722695843821629298638090502315146972243131405811251945937506738148643589450933640130484706639534393034399178722370093621870433094421531914285196661987062609145860589633734987877790828106626481387747833125610855844598786450099266611940152003972096999238262793154347892698422241847024734312490414423513794551320313746523188890547074104253015240029162613964834871685302183359629380637559394343539646796175086290103503613758499783010137760791541438993906766592958301872418027967984482770998617964639900287814675869635881765664694572285453546759297356244515626814100701050912237425036973905510851118436048217811162793567937471287115533223566025384136208487201405477881460559683229570773981410788435179987064808511812132260542639263804149499966658135244851123385624800571742325459003279267826301237803032812837627114131002317889513105219303053949296796193806084209465013225807203200515296234517240721926487187694896675357091964188038584783499301702674670913855301197807894515288895676242405600101648204344786095533600966393802401241356273702639655623873892481876786204352420691655860426908337501332265764128289808473788729905720478280125518343359673572227961306487658045288935589045231579556759311415045752969052576166460099394278493709569435247863769552444356180934072050733911122198032566813083582934848123595330738152327294264985334608021395821846301849645305281715337560519955101833050331714021682265706412595798683528727023562261556514259418055417096564943851548428435754657418593439873224743622144804581887491155709540500033303286022303592708841145043594996498143379562644768925680552132127864459446742018416191255870936243904326007934479545827983512190745935992418578992941363772803878295855190323619650588267348421474906917863538637964784928977469339743667835109806964191727051782212882932919489566426257546892933720335434832722423990090161758401700539358751460006118584973168822822197109903064362975126350939273628477321711350933768181270149112688910193580786948065481959702372402406573701457054733972390563044529344698398314572944051943173412343720889591050546499389487476965342725454263525499943659805783201507167503084426437559929811278223157141233612122667328104450768614804402158272913064289994441911355252939520145038285792626023883607267477939551822208469934898842322154144533848241140484244144572170538652750203483330192478247886158187401545898482530616691409194177162527731520030475916961247356120501527214853128853567758134935191807018224791268443105413265224275241939843517279926238144686181385559907524522377888693740548597956358974424201445701244513763101691037579205023429502343070485207761238470617181457504615263369078251541802567174079496764350283923490280520414467240829640683507918460695214690143489683578963874914383054563337548188733698950611400353884791851684266537416607707326611005488998309443534405628735044956832136813787839761477940176473894798353854484933468764769128457238738580247150700098590922141152958595374238770672561135020584761006156962712299691027982195631669354563184092234017693194986556052892120030047943206337334128915484681934469659533850634417833916471764228996320609143763879636313031065132032395835440389794620891477734015238017968674179658898629136641130735602640854658522862390002450720629968041014612549489486619422453289999653662560899016717265522540055030055914776549868498292449845954453155918597705877760300769206060407675758069222414595132653729009970293921832778088312999098033220007190373298673548869769536133065276912695111836573649242109503838566331693083632704472715409296858492255409495269724319742566609468395810993739054195087985891334539826730866597994495847226360205026943115130169243787652846973912446890308090417935790379170090888202862683944777758997395821140755009602778863484524216674872783495383414411407379588729651734805438087410132531205433574155068718677707256471692243072808360217807418897175086163174398370074154725590737835207807275169632026201186726998854915564907535770038618640036404762679851117013362366413393126054922209597107604903120292863614228706399496498642638284037898266659967699370938202530763917433194002816123563303817099875348840933555273346832804750171692307155702181773653218867635827970753187110594548190386507665360801582082418143059610287593684216521139334555110218823436107590016477030619326499398676941024162930026474340861284345605750338317389155945253265916814362812724205277213800876555900673117260712730855416810279071979280879699945011784699451545770080446360694591233189873146333298541515355133266609815731496820188866189054878893700880847437541404973393947763914110391975752100999552707290275882392611273652792223234677894534249812613415392099504940517468492722898676605442700245429676782321186374712623510620214082285124494544583708664604137499304711500390102591478276876495865731331205919947671482061283019990543178914348679615293319502384315328423942183036220469402724948711233989341589869110011988113036395830188329202214466004349908574768781162464047642760147194873919103303171210044063780997673241611635204808589447414992261165573970025083998163187842597903485660885895421269532147306830660346741269470671969734918903985073148325577407733759648597734309465664899686538229126614378304392793163934728760232979387504211102801906335510377924119966646015522284986424539488056840928932115212572082907692901449373648275949398362076971212262889326968689337663793707667986802561597629603733977849516779017961672818149570171986768688562685647703492944212374530920059469538094377923318770582310212768183606678499495137954651331419269926614783338173480519868382789471650347357829373357655851869227880834160280983153202312288438199889504933890058872339801744266507208853672132685962288331264359872804352970333645076625155792861029980282699439128745099263567718403385925221684908928695839123650738123048086315537773944944946926147065153189498564861438681712710214009939987993151314235631251521496169176329841481754651567194747368580517654309274107503584534539699005674495021013595038368650151221063507227094545243644048517563856037527556459738562178043047277535848120003728757000389186556934983675659890155450596995575196048084881337774528787116394251397369642943311924512169950869195895134853161221093057220406267817448431768506688078816283985948357926423209447523533449120934580893407520295487792099468778284575593365764324390355040344402432824494254816192686785828971039751718265759774388440463575253430334875222287214359467237470706596224959883732816015611953137449148435858706178883556880146525812907752789663573141643615416595490481032395365085649130073758257232019150783003738430775410777957781545900748254996804248614788003823301239663325248908366952978260637509808793142154392738298534234884297202497557731118480181060657472827647328906906479775468843982515454159344442710199580169814959062984428922683783785617730182919850507928856057477949957015068784327794449641510473263821537384585101366801832503298926692153965906438313725338353406607973644938666336207090061597122873568175148268124234039015611339819243552791442663671161857857820078066427643064826149087976135129647053407901139073141329654677711132870836700404710494617756069894524038819095316254081197748301926023365668679507767997930026032000772401594379199326236049242058847047750572200996815048316020991574818968119071459060132816785386685684952435394965731125030387090632352194672612483760043383844612845464171674621524744718441808471897928309884622212830213045422198848428393058301701648897494905728974414591516266835380529844152666595792017933074450740996543705672805733723060610104137623991163285237799166293281060221426537143984620366478697540322629894329947220414826024760225735150893232124568577764612677088230996327148821560502603324020264889341402767519324678324167272391336582121432507257052103375760777443325991895344080444944199525893210702177190024299448016717052437734044926586389718165156106244872495442384018546444239049368426562031537395771788073068466599373730748854014088277033863932417589718947511961317335697517214861808108033602402370303068192434487286764881169421685987601227665212753883521457767528720624672780555380388670070163432447152371326553192818042538798765632197770958265476190035180723160686157529494611122034031456642581936058401764256497987021847593280667108931616104661936876373067685101663073114823076472726616441247128961159062222203068848483277772240555801420153519846876017258520235964022662072141451419191635876480947953874283236153269197603112610557729529448542512092081438788074048489918762977192884696737256515023433549372971614800764937507005256783623512445416787369998830344461386270255006762151954908034820860390130466173056552673561809727406936091870137332704966926987723856848830937778235514863058636091665101718803363264190712670846773436342309314953257736560642657944628918337716791686709735899533707477712017174625701692238739236587937956482086165237998609281143885563834595353766775718734604974463833275759413156035347037949932475524365377332343332805341447553319655170629287065546729841629657423854531680122692231619748822522447551565645102974218786868906189371058179267396682190282428032146377590846543994109230657267349836628986754814460186783548670274082232805228525427022986813919762072524267621579174719067813060976201301833622347308295046072483822813348718036118614261595131096638059191973882229069169348852046152421817397679655516516857836036416182774314833981163246914202454749995682986028416312019063067404047123869894269861748585839280998848174886558959635652879856355120914697096532872368014845397922961463207983029858122756817274905124087855923640780214381080028840852680708742987039341951877435570118385693074510288319510722339109333807157334884874778403998028030001793143341504538369662654716870320509515368426426886181396320810457675362473104174740298839710134071085933546529114719758435856738598030121581144182448817330462387865126345257444202030773355500562092918095579240129003379851070405949738067948347249748614596134015179543854255633596455619343177182828012181037376985086659211406276205375385861512396484820987906551089695910154580552662682243860892837138106267663066865149439238952625602987792517261276589853511865921159357538921610464270308528608012858546815388413003664536694305312645830874265002325579394158654720461076423656943726298805975825403853446989590323186984558880087068249661285002054942093316383831374040840836877416738495491020522946150438052103585546755894598787498740695704055386715588382077143412784796194679832048142996227781644442316620031097332032274439372603789106402530678681052920100671806935837212007265622736594552111025696902169618700416119048489137577310918581643526622437947900477494692474611091576315073948816800240616753844390835986300098794634305540830595597122161813344645208419340945676704299580008104993734275650599670045553539457993852645711483972038282908152618439035370478257081407067734187151452159325146507000559922832958295159401111680561750611877913222488029662731677575638529465921450077763921394823912099853377471217244713498004126431510410841874366154840787764161066779456735225377530772650303745597087380814595666196448405501598802729173552970601935607878488369559751312977407726548344813590998551191338052011985886437273807023628769433877544748125752730729098265318328480048930081287326245621086558398330998053539243642854020717328750286450445275805236753606583722582692334791119166202494357435997709125276520809171189758182703926447304771936668446002470367040436166024396618611146568804217932296866412917540808735142410748606022127371291357730821068457536992023648819115767747934764141668527819229410049406604060490724074635885010017140808383947772938937592467865996549655304220855880855212023229334369030950281162540165475770113322333369806311636644014931762017344075588669742555255485192909099424171787483428142082101023403348911009882250670175280061991974008272870950747774378965333755538867263077249097282887948608866452105516676656092894523849548826611759319450211303545519768163805366930021526751883465521955406267857509004100506687357369042627124026062618876503518029431582603583770259746282953006008284504914898428182681566639554429689868597088690836952631913920024130599971671412088697157648488828604287210269078769502991177578636071489919685937461293544596838139829698677005124335537906199469585530926816538966584077353362051608621440577504763095906476998673829455801278633595109719920509047149966172039176289884818878883025511198508077905892863127514603319212101701486191302286908955401285410650332767658889547575850582472816827051897155830893425909617580351596624175962022589722025706884488119090590447400178257327836142129380329014341846740522175967843466940022324490318255305851372011876626532180425301314367155027798354011749190991707051519303628842281326833159921906386744102830588977498713515375374578577581982309654538305645049839713730487705333709532243914043490815080134990151549253634366630597048750019492330893996348000917126919689788279662244187864095279722767745322336666194965482743651844353828345369164091306473212970837167834649134794833051826195373377196349866967586821584978768550668443212874123537303048045584641811428274885902617194016438884328120771447013472420809352654553884525170658921108364593177023089797278369531172678915185353261129306156152196944112558335149832214714529973787078223184676430150558331035417873705474375373844567352988394640805573185837490992151984333877332041176669317090341571578465467371402861664903205960436258609003272720817775927891865644665752211881975718759918172633875809392315543782579164212401208357357848456989849426859936463190543397243360736359077619635358593449614478265398688721570797131582427143438280885899757342442355744778219657218443236393789954441488046206335136499683504819607764378327415442174289349540404008691311689488806838375761033951822872434657504764710978805135006830095040425440960091096309182193514457258051682703397595126025938236288008148940108694773828557075478791865469526318161023638895217164571824328662080585604606967804830747796581339874545922689559036086296028479402097251464913914004748310286020992416341573323608718583508200931584597776521256908578870824788292010278440116036398019029884263885433617061317714440829028511774266343437950668469296592482479166673095614526543867415896090686186175832450604222964966268588403750599918863568780840846718685715140510541218050266544314000907226768213306950643698006069055971830424863310198096585016649327922051925001905044858402170548420182544963788212536243665396260250680825862258667063966333247781612273243848235729086852899274173325285303176545617317117105646531517657732526479363218492250738766338454637067366350929564569857489072228909430026195770040043650107241574373278834684186908805592820228237490365135545769659150569014499475897373219926345001673805120520221250194359503157984465535792531792200873792939246267445803290105931164694619570275088062832013600519658087085182439258402279606027693334491367698448476234112140068234542754043424388393870709677836409758706372125095743868522716748075676146820174286010976069762292912899852870684735590070117346439402080116597849245247542173314444904874288058194043452193656598277576046347088820435195148016932452577381646431585201998546595518702393103838458893152113506460282008764430950048533398063927610778783329649268033144993740337604800743054406874246282762962150174464809733363110806386466096623565506379315191032951204920953122275073560642040501531076342959702916933526731066706000920719879519866215716043742259081322174577328451153829979377262505492073986452243149332296925653507829342796727253469476445179708137017743841651761689705086115932920945501353420084009989271864318989892331989768409881450092682785425853283286408964099107506185914439315667479627221297981456420056038323826819625717324092225229415008471108679929181840061533093072092079896291674153859478453006562062641593940604104930667360970317308905143287673634709680025925310161290963031029259721512122338989389094158978506091708628208461694195853928100478548500859371049191732456169212259336145861897788880823760854913537263137112514783739809917056365962833629544890449091518456318683135400452855358114085107259279760409029660564124524333782847366989035737148833896137008163952616044303006410092476832587578696277233798202692435369487307554782881390330090559205936940857290359491151590047960885930748143815646216227568010362444086105264237151754332535746737531131423191710429532113739877020400487083087717238789393453096192751363187993280773797842297063153945472888562117871963955968633601461638318975847335498043562036108013285677227510254109155562924860469799010844471267870432718625628661309902223877759058123683217799975002007613797081181737646000731726853144790453487396913987895805801366737349782055234626739405118201170163838554671784292940108426815544025139742983330021113093395375719801854306572697539219046234699044415815570806454748332628282018060366246959888097225365744081359808999308291943257958208195627365999000972175513917514231074459706955425463535692033460490378259207634942270477133179967289190509287272097974483113995524455152837184235313772898040762619603834687521272503813099676322952736529512473702674695823325860406082569367506633481643443024529399494511735521059513818191528207832464385496007727067555815470415791142381883587668034283548129495965545070279896881690225181251765778220630653343196337663338502905245449425819467929141378330443360624923937401090821882714788257490651004011626797857100821197095375400431066270837083624145078038459230308781315287909077222801295935803361231051506951904410860021677373475818217503123118541097408623340144186750351931404527604706673705727073461487245713893555010549211844657546325528231448790482639191350344133080578770437827611277604337847900742903287107453605071691379238236390616918757864140232002000207060555572981537989536566492904114599929192508642639572475082801796681248900319808502843903153522428845181407753427235282858206890391971566213137271744595612148797538061233840715045666787905012918549102612140081973493368693546439015978225787124776006629878989690694992719266357066252073636676410760308844191382854738386446013116080175809923754373760700457259481809543727075864625133555330240425759029369639187713764282402298919112659459401719600245767690667804242640270271307436864333491061554777568196086598772521122577963483675403700980411178591163291015501177465156726472902113505953859071323453958557298299125320707929646474276516242170948675756774629952709736420581524842874986842932288011255558711371830051567976003411135342506926585138468192653813471255500469568669581454285092549669357907697060354295136768715467829781408147766006178467140758888197141233484660438535794870963487296953553742980350033477733475044214389061011726610400739828344931500152786759044107965826345129268685020121239912256168368069403998129268534029058191560844481176096714385816326404519125239295662687556485134524186883599582404272948299630016592847711897098360992961673622413394837958430677096171534823994762274140343763818739443255402876521359085626316184961165132837641130964290696453201136325055818279192835863640541295636825531576041273716325714094638230437312777042397883607096363262527883716515022432648603936422659241828488867382724231817654108503783932211180431807661965706871565124523023905883960431249916541837168748787939574420682962402131598956021489576554459065549549066579802921327592008076407880938762185540152562997174261354721737020088950578884529682378699440208140877043783010807211055883543879737445549027965587818183231525057167529796066778291981703259347391103975979622271762592850174985470716958621234833156451225347331864042773132496495269371293660979375464566063310540893796530683621838686816341649126806706143366204434485916118773681806056726406102001399590541171094031796601745948952153322098570203990315083297172307337418161176475399677738374511746491759737049169252597586423035423804787320931388353755615042384102924254521072937919035129958583179613461023509019412019193093289885187213751464230330996496150460046128994661857062466948708016857300169935581124374525517072266736394878125093369043238516021954177486865915477228593632444514546348119384477921527664199503927820780793709030392940886583522590482314315119715585167027350151005266186156165384156866335047608998780050945070721209784254747693896391928750687532850284383700983982425419209343526498499561588470943887828006920806291445680970335035016439536704598600244110629293343680852462143198750422527638135238368160491249355498375038619149072550606180900332370295117172608573527372401390827339377145203924195254429607253561939281157486234988045806268977325337362158450989017282615249610627699153579495431260875186724386611973378435684368707986432697234170989226730984768944064300465422886642964327866587330049735438875510577933465158430752512965296517191103441416784607708722200765262540297629065604094804929775954392544901204812043835412403709132578834165089664805233305236544347273865098044937015149098408064780616778744532830048396687572470620022567012686655211290568475786409774565549300212437389122338133337350577731089983265573581443185108225679554572998872673297443134743397758061609234724933130344766327128353567295521026996610861382679807495594210306019496593571641218322295329320449839189957136150752809298092042749733625311561372492334002582034364483059903532622358834780393372575981889493691726409226945846672696123980251622047498397440020531801667575983032117852023846310507635843862157164838885511937984443513927707697767668303169053977987290912940897310332313940030205231586771478769298658231063787101098569072746664199395159255412742057933086627345043466843003394747170699858076447844102798005481168364850517871750448980260479316663584143785676538542822872428718987267983229731643671996638692846758143464204275002184264962165054016339135192393322142449649084729087029257476246034829109993835480192767498583825757692707848942957420182389047270833329804228967938429730542037346666857846249799166463043361104395917919727999864576160727711980889510462481473960618020645167798920682416519891452010219923410695452716459255187313147564246670265799132739904266515917275190286151843274928826139334587215845438917367895856472845522402124836376325698593493962290149459405173555038100789280487523245385711555242948880060725151824021816535894021950829979371409086381986354517889733599278871870030912308398549558973478750518762400318211955557724624484249234207633900008766412442698702305262236329837729366138937839281770238614634522284346833523135021914493501626965687377955076650464229260894111055448337340159189575812006487099707442022833126977760508175976515155803926370762126965863576055553039314881941362374963077628762126533442829969095146832450912988043837294488950180449026929831248104536105281896951627680841507325493336916103230762238253009589683170839485866335270636074823937976425271580264657836593542859805795508812044797450229344195180803267732736670451516407232026203444629025831568641581695415191531761561408303023355386239066538097797265272354148192807484870623627359216401010324592152180847908190607893282150191880617012884288959789841714479149711138370798753297681810281984714317920898165060393048541880637956117589050252300988835333871046109982717901563387900306270240638373317924071066378820790361574207957994795490068144522306149076364851890125328197307746520842109169644764515700307121837936115168483889426949028894691206429598156964891974465379388872956590283883399115097046149168208988837184531150306821630786224759829409675547915478052837810019261987898882414034912798595366453022488142503241537975235120947125517060249367031439337997991805156960150867668483820486554287358920587703642460752692582553358453648821517213306643295889246569292916599683895947152669302741955224884961679851923247813013256267557578702528879684669212274782646350482882785835575591240935878003764829579360713039893317429302486804815631888342778066039842959579169983593711937874427916970384051706498121356629622346781873218963232055294823871369962007396976564348430145484513449796329667175212930298553856066426414520734316487465016077193667725118107412637517048209586849257611612677058359642705672361394072238919968644201398684942226521013568665826272182710844252606016386021434660448947837329469456310739043956878078424109774893365498440323636688158267064549723224942764105327037027011093194656841050230696519392664540417513899012336595374118347950414414813149427918603144207124260036752624239465925241694029320990986247254220294747771409551585445101759885796763559304185881571537154576712687184078402349304191586319720341272117363410923634499918195666830548999973627525105027051379976483800258598897583333441690945474176858506743202846889198492800917927045076456085009838717616183056486702461929209657781866496561615074692354971539830557434752240138263940360530130647507439444088473481557073286117962116003500501998455263332473782114290220111643807252631724109548458414013299302999100321873367198202168156929593900757387496544403055148348521309874761747716489601306230553054862610049261869689724737528123255833012040431048330655011780418001906914012759129621241860059672786049804194394530925916591724424987227444047985709737968350118104571869370358192702097184063870073850503905371713117826542811812688005928707303910898965671111753894403218148109088250799447421676338465616498866670200849444732576820985829214089189255169840966048156113985156268969603620246552021449667501489236890049526104037979069428861068262962492562625879051840280913338432016212523225738507978536961813476947810543539092288398641773717840356448207448371226979556623656967753168425421108036221030992447026314510874601503919513748773531842819137659892483059498169595877923133640098292617336864537154307436497893321912650275859716043156131317010343488508758797360155933915534449366072699314954721558114913215686713711312603453329098123323583293171526239497326157499433503901012001818203422344660186978877342667499860834935601713883483831786724920712295719355938313595263315447927497597657036724791282622667125049412972152927075342055899887417316324982416622983268846732891586660156905840662031070848308347036967410324080522613978767638388206865710419213082050773462070185886414010310728631598136074185351569483592095610350791934673671675486666105677077910350952320458562046109819115527604922352644903812968959562803017830388674761896932036171952981755463055092578851181934929567055899461206245765292823545232027899472018247902489937159836509785993420088657226264019957951254791226449785623939043799242672706158121246656974483306675407712244096950378361597079938656196673691036906865407046220455642559884804038515455433796137190899476517164309185478586846395560192713611174243644043024425607321985065988252903091621890580986152346419840076319109880696437183268480814243115584654516849755172018751235750820901907765102728505565930358475116430239841858888914665518856010517821002227670839645000482862473830040222563419835026432848793997228576936824750675509770457309593778707109330380161958816468384056128939346692799872937910048023649273786544552408355426653765764631550959041944566862641881535935008200681875245170971969463127339498005603902312100813718873923019760373688173952149046311006888823574690454437321356548693906101652336740290010353470912594235310031873823242344251704948049872987544838860763792779457591292593038349398616040404610560629259765667518449465179596409804134052247305054299180477858270140328340433857690099241391644142100318441338619854656887839201150250122332808030621955642818838256815804903495250614327716837177260971049518868085277866263236380851238848669951047838488984034957899678892730264531695039134608077290340047277937858192145211496581452675992586967318011084288692179770834636208182391884203195848627043726894165324754851927242502204885926505218504548101526715573460627832506338961546957043262975537618951485909097004475003669423794186871176403464816669326323817973496274980454734764151751547658838611907919009369162568744485134394647054340939811654643895425550794410596893955660794791889744871594610300909358782331015486483506993517017943316285059508430858852797416742828253850967596079860774837511403256602847249625558001801499181434318951146638594250784179921650129777015396382263070090249132008488680151303714514733737714869773564457966802553586412220979123716157399426508095964581785590911605949449249151045506700717601548272429915369780122610090586701253480405697401792062107066188438717848989292801476776140338308564438259438765795095377894297284553428142758468715892464412301189164048609457613369744142345695533428209388806906030708808478497136118640478093595548382122217995444141563284320465118695091038556663994445313110846243604770805719871039720350422232651152062703628508934647534510225698758920590833167251045115747416131017607072184980270125717707394759810277864699009474871425077978248512359570361956331975057758268153560581743242671429362275221952617861866654610121705608856510522585011743997065746643902119144394739669476062042191772561563757106468917975654663652618054315499493871844086379431927599692286162456195588200004791137296363084419412828166525054429135649988296267711324676405956233158961276976433952410545285391486980155635104170555491433254370908687357842423226905032919418143314995105695778738034478329869471598700385778432117298455135781883698760107943427589927574609522565554191250718140526969120068082913221231330085970588294644652380764880412231458826697713369024316176565022049817028585727918076721028719400188714488227703513237300277866713378309872873790176085196660936828200933229663732582935396663384359462433051572964468324546996382959032405168343915359548409023645927181426247341663270834357258905007692503529698756536742712215986330316523009554673550307506773311308326666283588424313732423517280577630881460396038608816434830383929194032315932117153936213292189636059203544543312121312682129895666104876684811094579656347488188342427070897762076604468761509820253496004057168040415206951786276279427916941411574020634348358454752810507217230970889644171567772575060618555997200408685850162762646005541671102421002362060195348721314923755648556709807353724786021536507182714387732587184555990281970693482235334727027907048309911617755814465078970218964211424513851581043184202128583736263281596485995669577426656892981041099837096011465787933747301362683768813360394502028557361104573601478137339431545057457692890948898983690462238662530389391040465473812072208500371257699020437906471356381873923541856997482077690113505336607351164398619210738611582828941536726586968615093940827786031101387697012608872709995046548035464287194018079988713886034932093324978036923144652823746812909401717823475966830112094894196699749020859010775003156773835101860840340314259623738534599098543447035409252863540636046148444398890300164694467817267397099691115489396040850995722781252632936878356312366514678186985013646166756023089471285100117375575958123622599391271063021546086583197635996748230288988543832893596274058829783397799470672938537107628025918271429354275431353976956008424122238549032056664528034351260946739670726598057444922356738385197931895789924918836063109205934346583752812556481442108559048314650672872095055717247958491411087937668405514771680342404072430214369606011272358662728289930085598178284143215243152424799859309176237525061991396366745333229713394886909185234841425275609634465300483880749005918981677330056997932008622675410559169805866969208206304025156942464394107606612407779093045997243302221741179761212038295049787563205559927857491604726916970691977300625046983904524693721140003558554232627980217429393786085191273342124599810432955968945471075718801244197760492195239405701500759814375699609774336498717611426219708369002016056551112524879249804460221085975975422825873559147405484249696508312137110983077617275303452230995153469355166122000149263269241826122791552629125408100094584712596229367737728053634103338174519126020108695527477120118468561287648137702760490125134972756737904596653682109483445233945466322261975052015422453337883006550844432067404288907437079303183287775656388159851476754991282902389778787972302714750179764576545195657718777057170051685465983277679104968574482750657757598931149161529348487716489425977931219444046809657588817472449536169176549416157961521224821990750932559832776579872340588339513514657471101742478494934658248113527291039584042318865711324977929932896417676946439906614263593840405409691534425492182985711114652419687336508929631706194136422771329411602111992544447522105671220626444925936085051794986209998780346133481978521953306232504490815945488043131758262289044553438079776518654508543869088785459787358253290953735487324528695494932464673944265108048999060999049458920152288053677080982744970818603073572236931110008719005884001914105641385889867935396389044980612604539051753195300001536716373927067709842131573262631782954575939419227825261539045984839855637110250695114684043603745265063772148265442882386270694105900586466126821489102576012228331909279944551794448719846424503229311452423512237165791326697761328595898869981296848587746786044560048363111569497980383926564601102647196639855988197899001174696909008531398104028229447380833042577385104282261315222011853930763172423037193959513050073739588180591392378323557844615404766825940862325024811231051542326775390067650028564836399828050632677316581048431720839637119157288106512625456288258693719301477143900610439546809726224042854866776636836670910541679827987144116349113066853886264087231491486142227578906322105068988410485347568732777876746100667238104782495425622642459346148480612118443454991724040382187734923578839188221100766330857574038817060866057532828358140322337822638085764244316354418928530599739508332710973347469104957600483603899877837920426708089385353675582279432142011198322348925081418856449704546281911707141483357505118601307572627433116694183716383991247087384672658215017919117162503345413302916542093340827481763545361284109066767712784497411826295801947486832775760740299237471675246779890203145054978335413038095160073056050683421070234823079289102935088338757532953768550289659255603025827884471164631774429180921772413825301520023380896427205591027685263898335270356962131518231883901031879341527333082587409597623387075454286809967047635894724613098258578579899691352898166275683810586571974471623804328129018403641730471542203056445891821939182322498099835725171096589319684906312291388174770774235261560118972934055054224183789891525057258857215244458520776201612322512153114646878546540598400285775310276963016997318321281829289343186579355495100815547695957368629796715690960357576814777140321517206267974657013362908426495657624267178807711672552688349637208525813660847073465408370394191379417590711850522422767160913044017550486517150430355903854313174803495293526098345422164099019849428324687487914549979860842341472036557904888748805148208976285909030337194347462408055850777050866267924396492802366950919630262328972096513715222673181070161063938106686553352090564568718384934296784286289986213127271471058318703452229012577437502246342692809343507492189884963161738284041501112524271371202987994453541778836880703911149332635229208329739775198904412830187219622774311149489193987933311052361380526168027529983456652743999070749824218681497618610159122779096808946777957033621165590172553511640013941689516150063512444258155833777981663635319754922769557059227060965092065313052399212668247088139114593491073606416456431851214043297863559035547143206497498011509340320133971486911993887169976155113735105029751144991227415287150245225078131567408996741847730298707634031783661050072450523396652018326591373447853146322950325720651889866025596934146673093105666038896711274329723883443042297267667908819219166824012466990601573643747376435547067986192049991032056966815414567287230361447963810956913553908502767395048538005739506803050577987147234117540000926958316103761555376299703611687467347569200973223867932460654906214744970971170585849117877801906233670187648517312743945938506921210375077661960603577636909395543153037917922079688573888238725220333538522446866519085386427050951633285518020580685629121263135983175060087115484888053797054340634742437164334390583829184814212771519619837965336519867155512497851656728940070475844562591306905801378158184464111420115757114848212750671400469140835629623669182642699683064210287052420255601783739372711444710354703724205775103139347271415518918295237760307821299781541997911420514353180240508042422826567465208815244230918092650556938832802104450189614954851091901633424870926193263155324972272129132005348084124812352169106160315553587616639932414938520166226521164586059234356210824759384170987829806892727472119076003256002966760716436587628730687402489594198623812694152239289442265960443225731229265940559544709162233182814450721520354167639422146396951630547247657381459866991068111008340826350315636882418529776468133421017949903846509792694173283506157312762536140945052598515268377639650856206675670937028786838541333699367010985308752993391631660758635981452007976625445555600256859260562080793783650392440452420815469320690153214241998431227742555270864112423473399886599585559217706919205690832567482424319627663735382161996448913658694628902542363298054889991318143918314598086132803181236422478259037877279836864236110420779886280602922614215544526450727086746647111190399890724678282524541116490912510244523469396409527253065100414567038618442819055927702602294425471346265347593209764885166117069637283229618117169557674506045364756230623628812071956869637364417951807429188198586576225195122712974513164318334697875857968882154140108305111185392805373805688093788874991184946876859931138777332992740743753857693136087754072841058645707933537949213489040297960649170841642875063105133738792815004087586833898769969149711171016354720005233066156952148316031726265384346387652450672041261433167859646234810557428988449819530487354367097854478003593388255466409906030102461783058660926767702495751413929156478203962381433857011975764238951568569239336469620180716917730688670066224099431212689482631224122985024172474697320521504227348157369389024223958345829423674530758748395619448727706105792869236000195998915293174993247629113503017092236658844258270659903816075427977079234924442841053842581681348335369140610557797348201330503172246176813269168317069164398844379541934459361148548151035903160523730657353405504265433932702307515261904748104954756424133209889771883421045393206703530631317906871091149048015756161226000661306393304890561970291091970850257615224180149288515651089516896020820043421820590047609186110621050358393869475512932246513106179624340960559407509329913012286490790335896086642483257283236964879783773425798592273641350308480151220206756248077483288522323541642264681368179356612097646430014359613489071366280212015026085506924230375737091189587639666760932480340031565146986223596141273543422601185957803188590502088737864250349828607775858171821864463099938422087195637837357631459298343294190915759025453411266792512380079290945089314046867769721329851680875416561112453946640874470417599447501518306564626679917509328227021806273895330678239930644277048050360953778188526657154676183043502359227148927626561107594618022682679501829248872669292152006061963946236919889677010746730369316637056822041457750718885682047757445921635452942265182818924148349006223097444266032913578349718662656622154443999180139330271855368842717136512693315042945244615843244463145727969299074368532635291760563610512376209305273609502611750573312169313929335587127973539974941345550161906743970353488893948700245044763280132224324213835039315955752575677688785017745336437674176361266526153880568479995907851348682484160400799141894961045594901462691944412666472441349585229842164776572810022371624693792804929251125497017971145586821936703198874541413306397411674599388555869945348454005800167191662194913744805234856346162992364103237496751141987621917928798675892036402911143003811506401368243704716249403621674402819378671095285050410529049275762268274885039735139267403999606339253635450214236601377512872041514634922152236124303010057451398846212222162897110188787177558217278529528427679049586537471452600045652108988847711283025715982617457341946422077527143968827695500906663473849330396702787956314663082798812153949060107276451888726277904355521004774469768834131433095077156671495569705026198666777053262603869679687247641555673151983668279377644229445329473696164388578253164589364806094105627561907609786183889907529629943830588876210921323007688031501152020497193677389571786039013108613045585499752775337966892826465550839592368786222962203593107616195481978143612960452955123209474302383093923871272681053092615060539781621030957671699546745903447755855333632973016742491917431931410291692913128348202992047137782597330856255053752797257994468176995458396579782962003160728468327311878113657878386172234015031317154062362805739233409218994344737909653538730236777631434579226678216745294610659442120419732104321076430737894701070322704850112707052693470249065563699663320782688037353877539578266949838746308432012866107123719766643813969604148443483936515233521516379481535998957989708879207297607858441708670047091045240357933732981526361370956070910253673208757484344232473179945191685671312090434267747997206843694654458456433833354436910384740101893181103009281024598555770206191911488766656266079222479309131821653281310236571566016423788630515916637460398639136207301542190756340266691985716785730273844778394740518140421611155289068541240128590881913393652618829321714567590978686388449374421576267521512828245095190324613313879693341673521048822390647499283604994582162723942146448548820614949706169435868371830127447479928684323801940858669214048963311464474581191052062581475852133014296992721668590641291496188261866915946956157155914330977729110488892927995567581537381752327737443563398232186851712766107023972395231493598927254785761510702941887606707207265440402280122675951861206264300700312400177792188006119841133618361401850961181738548615652458340959313616620874233918164698602214548187970862823453441867609681978230897343434710695454192937180373502775503599765602822931297436627691547312019918724884630447306436518595722917482458397959432657421840663264984533737517738384001098610521137432370506772054482766388694155654155654777171936428440808453189314009662665604320946622577004120100680311164716964393870225841865430225784621100655832783050944085734895973895620611224422669430189463689192930290238159827424314625556766933999916549888869354273506506072508282570764651897295809173681799367008068050797262605911802375982845499807725412968284749243655393489454658229276705215368625054992967990697550178528156312656529577141629096850288218246706655244134790141473190189734947717418638628111463938655597592892717546414939541137929800824019869855745621345913576422562411305702011629383497026816566354803294678887120577027743036424874612159901105989132487245470795590991432571339716765794798303657500232429934984870621903807651527993223154073068851038057607171638719240988973630253784967319077955036898297439049354483811782975485977563950116193885214339471578084525879709745276910994399062627971301958230014626046892725825121616920839326315824838204404369285674223442421837326141853772629341230898928256423920236408445936290682971029943083333448378201996753309282213798380540987028902147552258245496763261793571463664158213007194097471868023080670650751488105928905422476892867046503407608873618313496821671542755819358385658972000191978557033830274824812364453880156807152217031386650671564689768998803281908486127337131589603912177363424866917918000047391896478588289782131008339501878077937516800743449733313497605240457199593110813700110184718098612140339140975107552947574296523992931368566884903131807818393805628159778780224166977204445661252361379234395375287131623188988640335992985671418850409301801996082607151428515628621176798717269199305531794824601357443474247735593244543201226904257666260872014887076543218183527291231490020382646826634437138873110594086844054323872891108169178778172289159243723792516620055454737242622469940670486145141606519317799083029200440591125201886093564177068871592956301979643436617187883769961906229129859822346622474088061305065945059409381010241936745540319009886079993985113201335960219227159644198014513492432807417153344812668770503502307691595038744906529315236218483706813176672008422127335008430669362422135951315769223331692621593154812049006537502328483253855214280413244673874550184546559131468172712284995882675825292138763441081039309581141916588867514194403685573813005881887776426585605334888371330409012932669625309817585414567510748294841195893264169189736470896440284090691439963836445504172494599054045308342422261966513363212981008191924885242283505481614670820300630497011191076478145778410482048965556473445835073103614637937596907447455593029217776539235009257846311846955496372019748839453784080071259757618761970974949098295961870486112554279225722763376694547080771999713166681569273961489097537516088253717350030136103788696202594254717536720455598336527516043963666352284938132933753716250520910586425580053265513097079564916915419982235636283947513962723537004339384090104959581071487130765657641849950305556605831681275766831952065297150266133257358137988095063023324862179374974849159424081398022769800960560403560020431134205112978312513549712093058041076317490048370471327028994211480456945289609030339473244643322851835524925698363273246394693331066192048011961719582875593259448869521097649418884166858450163130322778772076359809978375950057225330872317935812168030282070060793932133754679673727299908019355655262439862674627459258610368302440297199580551178484642452991664142963914032500057640582226530017483975069311259053847764568404679146971598526528756645971404594701892923526164174415636398863666342967523105127968260563603585608230724165100852476964303821591551500225114693736148043145665647269074602174934810532913639858079856937677113208394154949503451337425486377072202739888420843030751088026587731734585783813116910657135842416589519922236778461365982534008997042601666348253473402535343994735315856732011421022188152170524027683479669204799913062069799262115511618496367828443842684880630094393144445152726027866240435953425625468316424932778839329796536228595477622466211406778918877040701935131382486798633422961332807992885916299560083107132492229932761030966283123915084868253312404614356028125139188111875306564482125362060795255912616457325875486933381323905646167906649490084858285546181293505977877398399820039682420455757556102847260654479467874378616940248233113026943456299163175434333261326813234775135430931606378863226571178932984562569832147571682037863292007455896838673646226860257996734943411446239176766895440582928667700490376046517982140083093214667170653880285152448224156220292453520535678035222504974715477871491021131350646355774223001657430604031448899732339721041881083123160903628235626711988398967402831908782202125915638849599439713911589535218301052520695433316383798604805189833912312524307306543906060442097492296438893131355314333610274448437096134012424664946834288486279084075366058273652755301301026298881305106706481733237575112170920822079559764506437994223659381157234103799682474560368102276110291427351633117208873990579041450437174227780600329598133786569616263215124145034195269129595455160144081365905495028637377251627358697205830440117296707025035481099173254850875168083428339840870541842465149921194771496999937853762341663928113663524457367227839554684595154103346744073436577948908970019108682241697598214439007344266963673313742009394763187694035317117928842836024873313445372364336271794066740304558521263334633147640113896827451543651958663941215390528731689124407750750893826367797649038376557084865925812764103569557143494573269742354255548292585836670658693745762330861367187669469868781082042641612898884578967801787362380951488790187437682772276285577188179284439947420769845345215065883809130395327717983561084837203792214969053630166927863286978795269434128992453316498079475946955093933768844560349632380937407868376998347007111326751779123523576315454728986517676911852641507652233109120536043143014306138240354733184586741907351696174663327916024575017575895020376233272465180657596599460868710195210735489769325715292063785180792028842996983130487431261081280433656169770065553439387065278462280928528277869194401363909793947808589263512966984879618469539011467053902508653191775388351008170163004287734062311015760424852403749868604351221918599274076281356201262999247071516003813546732980605487035399781150465632752331387409798092410252441322557600699880326718306636833680773580679667062514669973640774336936896612960894207918425442578699537486942550365077773282487953037195197681754826318136368056998322639319004145886821351563822780896571463599948613578761142723504929088469735401178781261631779637781523607709858059788345973652599847619044770624708788678852146058665153056910825775104108794049875274935965831949828909443236521726290232232985060406321410994706237559409603185864834298425799689553041801427209116158196329836895336505152101972342566372860002268955220974947343515355046211473324796485877557317419025309545717529696920454721741229437995031758895506034020546784147464933980649603036484874217332648174441211662254253830174144000218433527659513032543814142959204096027211188115630132416323583345011657647259186146970559123018840234359913175839452628242528509910006289326041519399069577296016671090814092655515585178853411777034959716665212926015761249480542135994341189205147180046557539052223278729913607547529240552839772758071064870885211678801465346762928601642637853623035770856478544318190982530123761671387509448776381819352376690980305982084588237968238431923556601255027852458549809429095863826874496509138853883829096722685711260151289827630107675416016666202295722959815295462129720553283991148759483687619132705004132854444878475227600069881185922869553438846722949076805963855322767485321263108937101078424014351882035679961881962169716599991130328874763610836502178091066704606876803951129819163019153947826887505985867686142965080886917872065803467067914071730743782047672089815522365783927958183285540224813445982509102451922399747275067992212025617397541400230096385406939897471074494536828831481976391230476027063531407369234553785770510273064407095682657583932895063927794734054828060972479655285787734334112980371838683517493327126867124272880780889453283219986111444650653553892154203633279752157876648386353302676550675193132271387100548943440160839012666440271171178280657097652128899421270948070419571635852460874910845587805252828756062854339193594259416420783375809181045078175527334250368564317980068268273610601347914488010248994675130148811984365598050641693756755174725490444231508443951829840217789058502465985666123941801835651932769848976351744071579505903987152941916751239050521587647276480193712287581839868217458730067754890359679431208389360470314028419192943604246287727085804576194099500314895660576818500869056227896990454857728762293769555660703808702683128261759316295761346674764685666755585296252471570858391458324110425186857827901943917402060107873660582404750496706175629748949012716036658542914837769875793539321090396792868902996208546917870671565139905750478011338694657301158301897015956035042667912219830449308910479795006563385293596751696664883208935048909678797275901475105547118030388562959573766734039753791188696903756358060506226576703921211547404566985800003803195313719027083749032873548011706124387613043408641031581756360808376937777002574501269822063448794131383833163636725576935795720780601483678160892808335124871416163268062127474246218628625384772719435311738909363330220162490857861591775443168585314333735447684572151403810065232315633119568255895395873192888553900228906156275879924809351117301838937155606233002818844641729949950403203263835862810308645356930548266261566200558413638634287630337922688850249041309826722585448368278590581861795007227948461905580232535655722014945164142252702663559955649066853963493947781880009499424059197746770337628731653038039590712822614296127546794045281352841910754769514061742453319537537823698028805458596907263183526518633837820544453669792806944214778814100535885234526125588343198085964519755063255467620955604303438675770258983360521552343188683816034352628003319113370577078974121731251486531756431944032308158558600125195195479861151194091526456945826771716477863943712581842947606447807210633561740668038069240067707410522817611572740141726193937410587447818296860653052331537989452114326668649795357554448119455092533989157536760666839650024456746473097616621039841871505577139289461045880888053110251470324200932399849083319549326868407686284578736345235870240086794666594243900231472031080385478613338998928809693795621306635139425329567116095162885320140158465817189753439080370668286563649471776317075701089351837653511340847917463663203003476394901508035188509270298129637884930868479847740011654895370318628278214713804977267362313598927422161383702910560013841029857285851195215423256814404169658471680997377563323928475319966226429717810876978544960399961323316275575499880647057762092706167023760801682155076681189418510149282053598232747015739029570070463065381360176978446506419498386383672447244518352799964119883081557948151971152013858115980961893731849166873804178205850758917181934293944462035097150111045385377636491329527513765290493367425782398358016805799383699188029426958962985651838359552054616841284164992548505879092568507649635332288080054698739892049409595710492209232988733200593982193882038594887435242960146554602557736839299703997403446814213428525618331954718078821527485071578255255605611062476566939711673037657392143802459382316215871859413400773115686175715182581584278260131185636086718797312311891249956202337558254987368143035603933494834483888228261856117689788632384402932200952787888760380031559570019738162093758123122806981367832338945884240626568715227037749449339031223757301589933463968600584683323470583302900968345147117404645489038660954705428515844334646134785989312612111658923909541211016677068356099475407807843603235447461015849797564348174103192284452034423916595150775623548249143667618382495644432944211932517474715070304142336890558915250601626448005684280844284202821326905030777381884548261400791207338535380980357747115133781314138490465415387110051241537370708646820628798202409579150077449521995172697636096054015115504024876245090209954497213072208680512236059882701734465851826354528918193168353560437676543039495740728253252690764685885730072554504812545074074508951731811322010193945648389855870240370553005151481839564771402233799074599862970779711924181283772220387447028166625706788081247382612909018516183953049698543164178275881661271311751091780758269905157298315070699889261855709113121007212007746150753300056177631941568727248286111542505565864175906663237887106936078423327120020080547179901443826642864484847853712596617162271238530929775871461396489288447054563727483541296796069007672725444904584942486252859221395012884325838432275306332364075534725472350657818021743427002582197901813801708975803776497701142107121900192632659768695204589687029901559333717371597119260246539700038064273289952386930682350062801774923936262303555285667358435036288778829046459915862685510856321534416315319719419939905852678151034685737672600277837882382991536445923032633501399105318258573094472572527573901953128760196153298489302239442185873806971853772489052301871632054539317456283469213426454827961035769325367719909679849972300294134717224556962514988833787041385096232140060613038170028644705016019235644338552041288403264354877042094221305858399771676242822888549979917074362271022578961900658177505319180825538884239277612364872671630130946835919600242273436729589388251850073541336943087152411608467364576615587547900179900831032746189835939356512646631460904274185417176985986179838106995924518585232278572218886372859524371161720166498644804618828702431443153780476111080392753513534267608132636566791070142095297968766635404398365955967849473980162088748398969453964021135784410889979091778282648584117402337095073695070119114303661362455219343451223601275537781582857533663091061913734896657910064355265326599620039635136943670177244858229309708592326787273335135781062391954144201123312286084283823519971733706246787262415099897992483144194885356329149693923180538209827044248539816906563711419491444420854653345498244120151380279496920779981530443646355435761172525616434350402320719666649905515671753922811889256795198792574942951969052978158556754773007371169867757644780979183522757951061349548663840688758218855637074926407607937915475852612602132909751136733960728031828067624958825460388237395816864848187225199260772042387289389843386434002072307581384662290899738682924917849305555267436305261546401482246520621909137198650921298898854375598368783137863858479058205023537673316294655475865652407793528644115088781197449167785891913690261579254131162394319781409352334458662577845883244548876203615081286000389553642916704527505184947171081803139527885094577567345685165375337773073089000332073997854984980321830024391230820757046988862716894312799529089671002783248571925269316348423965599050084460997895329169559249030737378594548438149923176025547207837222022001753106415906676293060413193015092714933368316509164548319505036431162310229689328888003449197312267340269694161402196850114531773301937321290139655774664221217811382992999521374712050919430151647524340088151123770966987882501468963938255964910913503319236037323092909880394948334950099213048787418854382407806351996889299173407049907736310793692517088732329454935528611768413671629159014150135428892405434864942552630764623061629470871064766965112911154743465031693300311442985617842514686095766846574719001886196297920282978807148518162182310015154053709845058174934695550422463597742233140029514596390595104316487074164556608835247175729436979387296152298340935572421075841507399605115545370653853699789819486274929975045359876166138718867734933198216891851185897351285650902182244210587420905519735613676330457517600590112283610426523820713192875253415519151318003837910184154874053768960837572636297560921066543223129578582997158647742115977987902122777437357832550284774059736611655631908282978416397394885147367244543483544052337356744590433588250051175899083994720887598539980872509967605314695475760841268835688825042644015865209180942175159192262856629626896360626332383717662603115229309484291916870954724938947526994938824239688842987264313484987442449258713158110352386362094317113726401170395654208485395752204410903857742897068843176553894315885599402670500417373561115271503588183424125681592505981118096424928220973891458305658344477012406988003745307351532079396415726687667961539709014575971556000829652930481186639858967797603801702684040955573938118500724328143986309122527410733148464387722750610238626262619870611017828622188270682256495707715724276397144847801282106958807078878648281920064189079344406463789390673620611986923960705896973105475419088986820166353226404284049594630660618985171885018686354238557339518536579326968228747372256991022145337859193210793749495467879315088387944361540029663148204599657521849152268838847868433970760973857585501410566113172030848131399269564675735802186030275508896096328587975490615353313787059675974940341833038440505074654031653746414038107555563755026248498960127484481857376023201561404955811196931493665465678371374586830526220619574605325343357376888708413998608146903962735880915097593279877664513470012729645702501627529196537585764814983724800549847925382838945405380336028947544090457924790224824224430006514269773990650751283543480123735795372646794231127487679773604804503888245832828012241317047837788664524878223513649360326624108062952806335381916240680102644659334489246390047361012294429870765768738083312720222501351607344866041804621727674585816669379817829210148603651738607839212640589648638920425069741070277866175656237028313716682602542856748193971862524271809767570846969706278891592306636929545373160128092019608540202582963901375257323812557421402691012699087467819658391373881028630515364082547630774040241429753339220745846040134993686179033457008912631597023647566468967052922399920642590908600752694163938301413736967371097119165629820665445359219751938217856389131433747675756106612746674368320149489115280515261567740075091278760884067839819299748485584847640430020904963076425083995550772561617392482928919815454529461642253081023638458429292990448717270395630753837268340230002576040706551995510951629130652996705656414075194802094734573877264993367694287827827973119799820399183993633914530202962529560471720846979670042055030733223058146146479802119955997316473278692017736073682951698131405182796617824879557966193565183191816688774208636169297543755318658286081075247586816731672233976088842209685333919186013612003567877885373008988192204294873497979857978122336645007078292815891157148425799318411761364246491037730223178826085311557187066185022212415944444073608125318904607255703468431592441937262218921252644806425465775658546733823956322884404781559837363715222345753115328841501066930567841603312737967359541987595986589631920497228025888579195646320988157824776738398733514908753714806145826563869780902404891934889757562808642694987848919389633392443380591606472456893811179810724773923419348845159780840728353379566724420254118493779098200004748880935492986949743673529973446059487334366130973746422276990928680052906396769244460032958995771332503970434238003695354284068713249685524826424933724769347473515605840093383345402157901050024096339561999099832538194577958385575995583811061835440485223580069652220665286673107446773247478580781672753526474744090638716418188591004289268559772743938796106123479777828572154205073927602289777363714175659523564141633072102748854737340718514804071475721694470762409127413737014098229225071638912661870211404284057856748706943955493510185336139441605976103886378141135579766900907135482479966574719108961976765615262018106382038516060216858140645504136113270506761107828612647122530182112949882245501993033713315673155800600052815705857186683072271162990670724103947975008294211420165230233528541314595026050702416691902765158149895704635329206788389444972142884484211959596541197462838356661892399112772838723691396700519176390658478120001451866214851653477487870269903940976204337466712088653415143095303970991733066803545786008424526497652676940220179867725708674453835562933492603400780710837538056374038759296813769140084982432484147130141480846808025929710025468488458487946110623435666967322034166302261902843639297304623893254213189581024464682702835490476787959267664333921998341592033360538403447132771691462093003474867885020719940342232582235125929339216402982400069915649851227471330336054468466767324314930598383221169778900435075020084635513905831813890979842345741877264674176984449894273708892968601715184252143731044609850191547214188265693126973013391972601574810192490429230562919352061560524950110253015051602988172515199567191255215669196621741334998776290160268344790190321257962609808344307105105684933334663150612226673340530647329150188988112672946241182812226359079614017163432150095233808893281294386134306957298102670351074822611882640340297644062345895205527980436055990638710883094143379164236649177396613933667625532819309028883218831323200192837768395062606935828358038586958634495896947813935159392351253037967183592982567332747089701071604126406314033402487345080779553908888089945129525502827868850196758725018238346614549923873050114265172339942640968822536987346833698922090958395629555151191894787255103631676469933517271553560806810364396870923670323388021142736733040618777379396149305371828545644544307296705215843626683696700206491845985205088678846124877691305983794920005679128802349899243161149015758692789649796004184372742311732310372761643506688084962744191583936997165826632861877672431436856545150651714543447662252538484161443987994688872131488405632188822394034656281018734321913757373227665396454813756338586569464274894441693313662690787177162759673880240757974333637930283788731897734755100547459932172967574039334162056999110682326328401696294546837674707888626047195702656422910933199576605355929201304126445160414361799949710293714270389501012279731116513451040412252935337088662208047721724687622111846150676840191736746461604112029262686347270512503647144196404985800223438310538708627929770659277537398278769037096727403734293408152608436291428225970360943560675634548305512073321276101265724517069892573735982156640533595900636743154399548825681649931130043346938166957430308816227459860433970472419478126480453576563304433119986636639677633594884617454361124816055814533487316496775847357113947790504275489483241907069083629748068844838913951846287595532324671661561243243119969805834106683269984366267715174046230986694576949832238991508883395615564538788371612734159087898246792104196531988215371761090691959321912342353158991788507098027220799048717058031824735148369248285607750350653214719891280562774717925883613682916035616345610753931837017778450399312595288963544411752652040270161909276412573151033210414365333216803044902633736135850870997181399802155927947922064397348794447114610152162842800569900563556300264982018413770385675642945424193490385822833183754360108061051183244590856464178700582435451179645001020513402092900170979072059407886118963573489550147751914734661359349818181002911283730571413021690094712918776636810941545384154508932518542445046723094060587439972683796212134429284043005626281593350546912870635300919122654623046944543339403790505016692811016135624137333044342515408733450765093360944151349607626692511036573939290736908373584751254556975135987708223161110199380610554890071588583440377701564792078249052430103530848650627249439729130051774311619429774458483910890503262176545726450660810874857333474708922386747800050527458202889448275170148736465573871801142887739550658842286178228303573333159698119132366193840586969704736751821412809049310262725136657139876616631209921740791934801380877192357764837297431145711723374711817993647918604894293298342417556293050762837421150697325931888985001241647478240110417783102148896512663889317417469859214855872219153401200848246231461879509857485820086010662404322259329520275023546563240457201314315941830885127820812527501745652878032383161910345887330981045359925802515349903410835432558948292314285847146663551470115986096981398942341537967254583475616675023753311088491225601595507200993082709319307418402502904123970666686149641295767711185986706442503347883613777130814723307096380227986347442345913201249080059070895780743086100256544455467308565637001397993272004825989209937620101913355704921681759804591236482100105278263939566717234399459784295147244559357456539116899256150143431581677590575589998563629721425922625171104488023277525327267911762224763937592852433240936519775032886527743728257812799431299754324815174063875134232861493807904756093028142253097473999019684838524825130547256234578252223818174849076129767396367563824410581668975238245323307875400762727144070683185716707108988451574325456190880386837100602765097593816820822116249006721639185763578855365898387710497084451199730734794002499314289567157275047436343659930183974913093183949093326246610396502840047672303573247961281407885727765357246320869949710843236641369478598580645575646119975892662898215235571755964384376894179019934493902144915530069195710792535632923057945955538392584060886472468578637794196152346054619216910466376018651423378883137106574549404844801807275267562051048565770558402067482793143589863217761927447863456253970497856331250574215641841027502058866963488036988162722363432308833076385928476677999893721346084852033509408294092787220553485526624817261273322739443161577153118259580358771654327568409869541401101098646538789250874823744066936735715228273059266464590977476547495421971736273249972299697215349752693377414940408118510968611722976962253485941529535754711435769291114586175730494306839441565724262019959089250301644470198095242626148978928367688032160483053171955598761836238975603957687335552996455313012182959150701971477478111107303703045798020316793047069610071373471034403439632646839954356670862509959771160121587247953839609142546004965386272216697677830420921237297846688140650871426973503486298320379025625936162080855550033304622576419884328334528659481460854959725589007530760092372726044609628550407255130444815373899717650906066697411075722262703190917363542957981314284618413630300523059520744022076430205669215580860755268408150005088010703565964529375727198614935541686209103969114333423930920485814920423674223269671212895857708382450398581850809481088965552830299292672622337909565442779467197002691520275508745420713408966595732852416193612559791781996816758982640267284460232695234138932954859334296655210340507400019298689055656855478437563102651754323251935566246730903057333631804137778177280239396776030601770903090692377206186785381228322406442659505008922022160068003119472999134657576052767706602194506951688578821637889787319981151440613998331048242172554174774492293912537611308008359256380822723128525134119240341269170597745547096804931433973069800965136284560124736399728994931610752587749209819659787245478317939364137059542339014246580442610969860790312415259747695608495226013919922626563356637999947171204051940991551474437348480617274169924754995774887700906194821601806572893086365363259338807702524135235906986566235235816951774658311644074772242368616064681365125193906469469834234675738187658147900949252066792587859334957438973606925331280024204117882774159253188490647344852877530475274573551075077517841575497840139659228647777519971770947547478587352615730361211034298225313202946562536786851857433975416443351080607185637534050778434212901918251394022831318919297563390586516619503535523635674533594161390554394920801778554723724995007191944627065511076724744130739001526193653503511729883374819296485669898661710242972989858871912927406785884190184526040140672752432380064107531494792199092063074086574369101709942867128732395957005502022115826552842536814983916606439205941007363633129876310963526701626411506708796646109859232271782292418436788741507830861447433597192022727219244403321876036132809001445197527181974458210956723667713359713570863462415072774073977052182627609441903195990668050705029244589671340391357849214173868119227371470116164106424329274129660583390918392952847357979267036741702160275995530051495119536590890192561886471948723650300149230253535890920587733891303659646531352659102986781589485270475047779017833434398705838698865533876301609815554142335007827679363311038596291952046625712626975924915513902550174595371389318314694984371533926288271940486892534893120468934893154587305055081902124546832881320012509137995973524744739384586977440868745645539366196158266022383903543964369350631291022591023083995266763640556650474165121844386036044663407408931395859834263385798004029769489633300414299095367182225441834095815316614227352046686819335289415321479986787222250287038702081410078400697011137495753829418439979787538422461813473768500187015440017541054291461864758450894586977879730518732841702402774999784566032988678100269038598729054948007075279410376808097881622917384569210133113101269663295270042554954846053870826266554886494222215297862060672959611386042344326235673331172364516844638167190601747689652175105120843915216503855721092713177231477906278566489828954155164945477801708769765067954541426815760115330739209228180989337446063064409108393014404922281740546475718054067274789524146772282507159355143787676499589526450769942476320729522289342249683894527516948179538434706077083915351063639854512381140705369445214585649202705035151174859352518050027675683917149567177756285851364370809643259589807732025564760479133243691382909118108594502884359795335639905725174649112791096638701399202948301301857085341347049192152165688780488503575363207708865950887667187472950646298292178847752204436819590348613084278792742933671239850804519367058327274035243440985169115377313354673885056281564759441185381177224846474962927823958570426190055121062358536006322782412705488305173046713854342575156516986704938928720538338717255114924985221681547776637979993372849655772353983788568981555647887695183791718585062015645446941902288231688189809734917460774104946628267577572671926718271442171807832048620143889294966972457195108333328741502317873204881875756058902630703724515844569505354880092888986744156118474600115716667187217323397711722127338456684111129936499462782634829266333745299552395555732390177242475871245489621613749712214218224404125847960106857307839474816061600150518305574001010577170361503136180121595619753493911133437508479220739976325165758389666244394773783770831300200149244097037584886544975759963313178251092544224830504584517842404895390702891640349570816366340018492104978969232997638354001650522859631850778445808408884893584265950020538058007662665364610913323828978474627179600587522903296423587553885521495368169501020946153413600063435619878549421341615206685198046162409141548346287620417242266549844791478386372829651375066129564083897580229179740910853836015390552835877183554336863985576104837856873288072144963581815971156174983403354013839110299951129436143266180035245205208851140062314738941540376980681778263061067571595051376133536943611643584570701196623251058092187366273053589766921455351202093132679810333725484021627773703498562488863874707833837075274406643837255322084885978026524111979113582316359219079840597582139395810972998251254357199848064776675090108229908723470449994580712250648897701596084430113930797564916392303832281048263823331907000604836823568230316022864044573960963157582789458782840444979117810631008164479003463896347986972923272115164937385978544084668942712775614647890559203348579226284043997745165902513590780426177010597222832014886603051429375730415235242634831916285759881235932726551263087149939243049423467362528932912331735227066068874422274597539786016346945596402335408760332915472602823131943933843835089245577856204187974938952138842171161126705584915106693650653365625737623609965629145505639827288500493000628958456762550443725111440480455882801872705366300348276117810447239143428337167074475090417165746048199827434035906792711981577683927855490010155215648515670913558048573734325443526930463062992718263796555456660902939171770137660418893854171415080526275501924096469969037353498400220425563479551226277912790733395319915110147685779031593629612778416136292682104985679722620772002064538565908556561244970496174869917493530820409167393815901704017212594698643401697716046539709432838254037134811132974003738315144995198134322699906619220680031319065127053175372175240956430408479511953546589387078961881010961857140807584559955969394435243918046888669334753264207709431923452455476604831629116369439950805759056155185261284190390081027356442150946444979286803659819249264436937353036685659538318176720058158517713663273059495544046135900826991585109216837731581956330010444712987519606743464174649796982545362854044095054652358475196108458652419470848975620561381201551137861092534879049852391336378413367246119615235844491728928564775419674875925464215241144100048842867257220760563291705521209047596500094119125997363404707523149271703866289314091538193562438046880191924596463341556600811123867292731264894533774968289535468559246893992398750413705798583740058332036340662188406857982978869597279248522122553451880556750409616462910545239111178507175071669855601481928519576526560556337128535777993552188677340380213349135083989756575412849222395545638052201665429182847691288806116602487753031393278862704936490569224938595612434303046992840861477634953343689149542557160838268995897740657488044325219041901436381130790608037595356644133620969787340533078328088144113991133158734245620307082463319197486862361865847510442580250923796021474270835308706526877913441638492053304168946836585267047689491629660372223392598933135726239281185679693002073144353498736884266297091331373411275312324482570599959927821978460141878184892499769132095942740003704263192348897058770020648210956966440565729898569934199852776742632758025142332653801769803583682567106707242969889619274978371693720736953941557206785038334904825919059676088283060870849110290262778473070893073845850045098353932361102554219694281593732210934062801503741374090879875609581499076720926256003623591786752280077152875632392562469738067277520516913183800644874565638208200008953829103183733178207879631989905680832602697536982656832578762249645486719530707976521349798765761970051592561378658490682415998037416432957313638239869638411747504648366944447668377378157411370974599306895369329028434202517910698759662496536228397881080754551857748703133332670435513060680960326693067941202541674845070526664758980594880153262700878899733152476219366382151750890415816712029110678013483998752322641488425269587773104922091055095906333198932607710586351902709333565790449043427196648362285239306636791924255000991529949667021737029747777499542078299282568738998021306425082414448001564810292307916999994163925181272357373427731139158894544373307724115824447858551067428499329358373737635859090111517423844007174940875285990077823722316677103896040162780478960662561785503175642257362149796533509369541390675242785777773385582987063206603483213629351630237332270703827394131031428409148497811048541054729383213122802494356170722378492869386764963178550420604244134182210350492770692329740941658597388266150195010288315460009937111637601065177930626998933709767974292426455617742922936578995932918268113420302223644958176398058292800982900136152036504426860108155036524010393429407428961903473425900530555897262095989858974962530744351592974591688938432448849713224564806814895924057446808942840761538889232663293237290295707624582728522803529048774108024120223575628674959484041461615935871636743350091857013988274015634971101875973272460379775010137704415623158063717252928752177562605079207122861723562969638733701792410917808778077988232499618245240737690664151584882743342465858373969277787715228297184831967316974871627359295451784849759142678291004834412461774768345592996061496269673089024457196655746075165915406824976071809157105534552772867798621137888673022786509598481929300082083131544098338736596603735548982444960810315803403620370254154718305630951656894928642087729796500897455274229545786397631988373422850570828159638947876642940062652423135401934295840458305362768016368552471419716928329301451488961566669979590976652632999167525773527459659055192811857076165758883064307805052610439016206116219461615185636690533756647481465460192706931084619944557586932254939229294202521734435542162691438815422833845463202833826821853490799867938993108434768433287619488419020480913004670683107648229071935668120252249431290235048319073094670484366725604238403073300215269924637778796621883897979331849210614949185949765263203229446736770786015842686269140158148776217540557243026106225349266514692163507702546835207970770888654370296300606754622690608560089240746230753141972841537273587726886882453897897347727844951049884181859785836309560558234366680496076760952091157205820268415164487003475409995015216004409975696649385203819974054035958112651790454812453696739856975273969310147069135339878999917125808765075002465895162741777904641353780517693021114498628290362953677103424686001057444365377089296884880964549562067586200461388912595486037567105942404552492614232854354524289323643873311480611485611494810886753548600612610609041450555230613924948700837797684445205046871211377612881604815993185209204420786295014950936234188726933978032921773751635926314465785278732866315066585259564403839098995205814242488182526009035098823671739759010036757719225495277076527309863544645984224265136419385014511467051540161487022282281969373116670668537794853072609015021800376693589511469175559460611232850599681263972733448338852691435373599012490587096237169780765590880098528980541897157182298810361551975470831885184283249878988438233285621326869041644962257573254390121886420004415560287373627456069375074051093757436670200736528380255446308888229373422792789479814462090928894034952255117505806234677675552260159975236403310219513740744583988314581830902756430577094559882644478301561165370356184341682477364576787108872949823687228129770328199707800865858601019182055486993188946334124006338910328152881822754682934578813439969958670674730956082546403530234825014639721596733729694222076436349215512064186522057098518682521508669108746356073550940404191772059422446250212241028846159722628783670532527737634484962042617433498425051346433714971986636997227465220825644504536324717035472916105364760139446506319014953540009207323386455431969234567720219390587075548535206199407080582602797491464531467849432126656700208926044461459901667350206484671283799639809104070889139300570177067404570665428565632495897892811047922524537646595257969680679187951180854170484058929229640277548977985211729139370080383292940081069865245289331020948793950852437169418108291638867446806842871116141920063568688837631877280221186325215261854847927526835330827822195623185267667481324077735293929292175359891991268589826813388422912199198492786612173130583974036392149095930294541437746735034124923964168141649500495205268894740473207101721557663097019141263340003277769645738420736811027886975114356342673228699034968894010142937329200679535734733031900718767494933730756048582305162202605315276159471623589108717860603989115710597909724429830084030835004171151603034561310895451005009750501362299183815437995505304027675495595973275787357957589259738418206013011213670289380357216643538991855740789575091419814938067150305215512122907103006011334883079496533689897959824801859863937329455709491125367795594490980660382758830642588453653329944189790463922905561080386288679861447358423399173129397454436272633395761712742359652688928510448704536557059526982065884285300805065215973772345996275252968353365562726093248845881721230189650313160245222475640738902768654417891973887424662291399772452842296680528455009040626994744132627897741464273338858933028162198714257961596886851657664947352607652721909193437571789837209808638168564353365208039036619795333857485408578666533652312362958695553118799391225469305638800852422408448407242388229176075792051679166000934955697157860533415566440080435025420664850496223104328291642534574243313135548821549423893950717558690474646416761027402942052825206624325903179129749942214534783504571294454072753121223714222523030504200445604490072219596267130661758947478381530734686580466185276624820983111868518271157525980935453485853066736068792011151753299670292929333021419115738215960737701291785268352182460873178760272060689763738456569912190796936240018481313268778091969289519785404147122454102985076948552775264633054064900304504668654357696358623511697166703788210818155669630894417330725519251816421325733574748864982657517435078648103617161477343763474266140392408792752489646401883182463678632209045979665027417745638387964611921686514202396204197554687558339370483996190319115077727067106016468385523930337410007579165630930747138944976663216745102673058428176334338433917090780910317354317374710934368499130929486808940869772725139296791572867026865759000375332226609626046561494105987396583955176809950520138959187929772126676980567933769777649491127703843068405316625054123016824446360680100488711276736855167343812522942528991258754710884927297496424252824796015701169258794087481554138306549334519149112231409071723147765933631464989534515695684946065635613930208018119720245483274596596771008953942995585949038421295828390702180991482645253550679551149554285256719605026784380089515783623611757167902025278477194497506272613881691237983766995620447352077603404917530221155503989051890229288146849450435344694141582751492852268285673551895464802056413473577476810639409626076388420465431764864228711392759091263937129044515719761306579062661667044644186884208612077453036340520636153143719756422857448352929329691339976602352695392330999363418318852485030333990485859739302899562997848581832887754279145473368991331345205898660506750443018964647340569549502196701020640930143039888724112960646224030739708743120060888612948568427517479187095980595773122638813353149332694457675639119028544996806065750143485365448774195211099847098719354459366872342075142395408984689346357877670622450399932237206421047458316492740851745356491101116117289931378532990142895068733071876282213921680571590690617224341396515149214420332295075983974593828916628134540956728135543936870682180023650555634771316496706781669557604300578488317536465236395893932955117695367283880956493552731847198519067331091723383601228258141807173348150318040811505229934000204047718143699958001098120304026281239874092407718692122385722144206242363211059928688165748174624394249391194574304615057694908768448132370417232797992378093574977998342677232445913115071238217527360981980825794691155213937053507609804204271661295204718324457267213579455596065625603797164710954818643957209252127265534613340741273897666744068455777883901756138503209819718535352473005379473753534520739309588525814944025734917119488720443932663416514964168364014826725273953542974809102782793417673390203109726469852755968986045493471111848147312411863891788179675223605070019093262969356485101144695150522722906397254763421004244273473216363296139872839464228675969814051586545616216925681053166682442636405828154145710675514648855214147306395616384094349884335078889683425873678258755212874044155210167684641944865526883212093425688171492041907907949094145184152189140309923181426840264402280851729364691562347624821380610828440390689856115649283026807620740384831709168143388136319525610790827311074878627212292294903155410113974617158526628402831122199586032408636757077577708645304179589815378755128130100369507071152898460166975796292239911747894255241915117241899442009241428107202112399994250148938998557621894730938672362375190509375565462961264579222575784603650890009014976465341657184916857099767351225365306763485371877424783900478867161481759542728844141754898465916587333259468115559894697912652878044313147471942807765222086549971222486139466233819587664385516452687016190314945584623349911736254050600274185605442778915925177640905751581642003934716226688614178490871763057300899221492223970378778098049989967526357547162752022293424761490694321280913460793394211532465586024585834140924204713115383615847832885243925416132020924255072823991809458523112214105118864012825890261078921702812541670709489794906741093376422833148372804493500978472650871308173120659372582417667780418675611305690475820432967983786060531219708973959435956476039980810700739877542558004253043999495630125980246464612820272016956098724994500024069313819396048171413122808518804029258091687188892550272586925773419455275495891889022168090542364666081542469254959722535655031470624278038189638569428867730840587935343621077089367099503720291972494902942698829310640241786313482173821682626328076642941648686515578516133908845123792632151894573942989690836270940750708382915746856069546635624613983919534675290778565067622805970782998590966145692875530210351839538442628430032637382456242509577615914112977234762510427304394806091540529161182735173572224209570095261555756425715536922885278160920600240437632717706355445253017154124555797060686893815337337855137073939071979661663631911192749193859474372522417112966721195055539640334504979621338867621183378163325837101797082576110121348381636233003626391360294928712462293355168409825223352706457604132261378208127066459853898526301421842897524187334579123361332817048960824057912837300721795739401558272951560989648775128291700214410625005899298066964398502808423676230124431707384540245997852704050093189427268959498157202343609062284136394781259130325278853672164834261086505669802377246077094395956609338982092255996749303533663816326031629489349080802531637902314328033223178850595913373757378519968341182491043271948048718521649658594321040945409798900546974754845142783122014942640733922024587165385018714710527141685430043426573539615590946045477619145066354247103181245983249734461673944835890850888618075143531617093710724820083320899446868736284795692076822449721901700055265472484355746515751537728677964864842350251223991537235420311727335322632040516062250842401479234724139061047500397995956344368962289865869845546892608754374014092829535017260875918868764355021358432538842146476812534363775391582358285768784164505167846799182993603448044272021163331457997928308008621656128379979879411744087605013788426097322307385134208944577287748428422911834423275204315485767119187392078975870877017871244354457391248565476453636088683614685286093868261932855194223383305673978609297436391518480782229084164521860506834491415513628852377343178654843568347957752081598221065274493135983672598977702794313910453543891383795091033400569971058155980670359938425797002907147438539562146905231747433529921800886740918103945385267620582400348221112537724213705893388379696290511966818641401141828917115143058759750742790378021485677707595888820196306485779939602618124645667393832722486142040377667138711495212027880809366958236705317090852459375767515709862598078229436568683482482051301691117498995791000002689309720276023096618629741081042605002053223818721902497033368585535817257511819582878970508300813707710555950824701675978303152692519926410433876478386555108068972814270012104161198957908108268421451744730012408813768635705545193263367679166000392099353926738649965170876896285652753945159974406908020086572841258330455335764826728963159193080600110508814008704651028395930299814480292366863738339436488274169352199767132419518996972265958197102610290443613375348156001607668655857802132109448662234319131746819637175871617465472780258800139283046479314129083169097645839891866670884863208507970292853493917588501578237344264376822054585676364003205318644251154051086605266240043343717615593966275879682445932544968199827264664802115996276420947480364826501707767529870205767679660002984973388591257008482625016759137982993918652314048703003650862689037939098996626019767123763258913171290629539307754190336921666144348358486349689522877030494216944288646035932605642776367754625280787536058852677345266824168252149259122453379513726516927411343488850608481624595020454637361451874249039790399309111551312776975907224105405763054805974181059949932957329853074844578194429877727662350974148000886508605857564191142393130683790322101611985689288961155141166788038563934619274527083986724079873806677655362031355486033733150253805818406154962845916817730426426109896812307030989264429282241574584264165719608057654552350720592802111546991765801634173773399631509855274601346693156285766737087641024489627648744787959197230868614533383856447260020131002285772597361606227718219353278424439625347241735798745109094632531216182300386231652398045342130252414116938447428943833730715219409044513869712710316531927964729082873961599743241762939832530788410688596937586429790439739441684124613806430786770202211146497508093731773447698896899689956717856590979132908028622740413027733873934960882874175878946376202735726352295692316869338155362481661174948417182240886804460092665612780014047273057296564514027237142006641702223865678083364964906160658131849577474967871787849378370064285880126719398452840654536564612884433768802324618624832368287339384085609679398064419842515026558082363473271590211217546781022397124790824334596380631302383396935104548333225678428977357792562733310413718509170964610182563731953338554073945672745152455670610091638273712501235726102540256347939559123118221338909174806797846676679381785779414910415647016231426678041742031325708900126330391544087462372942095542661243225066730613283958591156478089739264165507506618303844130573564734796415700424285884710688309925416800813566082516189272377089952160528417961738524578572272361658734998127433712253193829706499972823773115835536962346298155262952914626406443321326511933358730950130164095220874017980345167622043768818352711550955962499783632210168348655380902183018283217071820050159868642258638870829207685738439640787447293150443667378378672482174303364715923430352851001847958582158295815267937412583516961706316647868950819339694533823596209936625681588624771658881333239170219002815711386905511928321024131932871005340688812109685439566245730597353875912547718857695754535978899941440346070347104413005788846758222729275043228805435551629121213240337389866850950643984918124081852113366080123661415224242906061530667372194065529423806939859676128116997100072319291538734234088221163883834165480846078566776185028681574149490710766938196773407314121732239473808764459070124585866823174185433641528575127689077568106108696998279611856867745204976890571843679296776324675490039108656024566568406476563616904479854448308812996956681463163334726031250926869612500842217141868014082938664603881868919584528929169814331685771814890129422574113186941976376409642415631917758398500077043145008826578019692930147582698151725817221757052934482339525551538370528634741347565292279343558009170866491686104009713644317083480678288605959992353006205674397432835484672776600581149254417790728617805067933952459167180327534677403856772550226635254371328835887414512128382896453628324163366095763045045013791967929542793892485903835418293327276421796075535019716608050008239715156581947836711496067811120555725835783881290736142845670684156601061107198224001470329605639667713951148761573536720272046815461877182549280133034655585373234348051866938300579147123146650375415650097867900394652672964814159240315313402915622274192683040803125151748184733553694827631024525658613918257352647998800660273704962667855796314571783690126524994633683721211322020273755698995843004637412855988568895441021528853215389664778614137577325608561389990673373368508032295195100650974920792285333965914988432089299965356397588818638209711301709237731071800034888488343624712011728440350694975047024023712905587414087796817842030385477093611761983614730752516422009582140939944192048457973858109681762051070314569554145635849034354735789321505766359032268036408920196063488490120144578872439971211599372931079515589072269307503888701406880618667810088052845136060749859542673092467949894164064285078242433985879695194012622211227824775250281716116378376410973702963621391201405122276113123959342017225688925251352852537870864913249855379664156997760783480922192922495219939217483449626786658428749990271787359763486049958842217301934903284370039771016095640192029500457654615928022224476608392997043620200561129095834932425401913101613393620878715518047271422389564537533635377165990984370837413129614990420318818464908221964125482109321805707602040478578394904024475158664785349463229090880367543967814946817321645871591804648397125135303712370348419188708307544689392665386399429661491400315973494165525825382933970190324103866390795850867747215794405669467828403677092027239911033470538111044863487746355325404575168767146005235353837612123145639073108863304674874036331334189461361355418765523675427297925086842471506127496998400700636062817563808462516591845904201205330992565684811466352674190819037891336777920841842031420029606992728472187788695888517586317069472770645904214455549381325255215743722377820602129283741455470317346804709758573605871152697388746640374605374326316830997830654602355835361374256805742165969821800674985910776052302490900448362071610778815658327858632054959844698487166665781142577420935252410032195788749501285034636181707852601393174692458305384396205774276287556580673979550996505395029433408455472067017958094972774597396123257985835581906858409171566272128849339157170083483686749506703855228901186039068531341886690844624779022130953917942951751741015959575082658473068327059694121722600162036970697933197894616269765488033584494892771816980308274853794526595520661413225977608177562907158042705898071206892585329579675233417155461976442847178106538499770376590670753961783496329736583285183310374376779400447930017413248818945737466599282150165670419197767957728129170501625287548067263405402101101170150287712991690258456424530327477992796263659455169384595414805088297626304893277752770861448076680986669667144619947926963511311081242380774851236506323653335300901296460029739140149725274695304965786906858163588919189438185159249154140900816689552081506817074133439226219513113799242394631487934036345931124999070975251093768313282878284371334768025981650049218424965530043899937213340092344323873577253519994962036401903378198895581885814706333570070257169386009808912959307564403946817165243231148558524815055930024682304273909203672785972409154630096430097779850409792639347368309090042466723202602389905238990373448617621016540869918956216293086484186691705866257037937002352052707190520167722409435970675262856939120691526935366569993055193457725326297514575729618664550794316490465658485657968778412883415774178210345034530118765231739985221837588506867878753467418091382659483804649804568740911707591900495339527688038170443517829852980164047071234556124029878862351174110839578691200833110851020858535635969281767801033207018247869556412091557926990238497831610133103450166454011031008856517750656285514676652178196063283047291698863595533314648650573573142113599857899765487145320702804118492653920355011705190305839321637992258331562899832249604364069208236681595811286155927420852217839519985944872359980569520892993462641576124327270653558402286507886903665187094150667827048910707526419027057071713462506412446484049133267704798619468575944587094128534994255322121486348443944891851407310953790922931148119384771692675613138936816549685542322922965412779067176138347723393127646634497016117040457441784427824847593894136175133542333606252446837424058168042602808922601356580571907720433645241781650655260969601658115081199114209810150980972917527020579711531820250931820287451914852204590431922159443592608947293838284755567140139941425324754713237917138657495471632816714770382651547526132287338900173063731440031781034858560718766685827567925563733273852194091522448755819861860168581490866762332792797777431820156453854665088754650426080077123998544320626973074736402324796434766487480009121462562944967557962045134591341939317723845923440111308139629295014117429990968608395275721211119623718666480585345892705693609730648455829708968992044334282369100369796977991829160696549804988597704784436001559039704923974086571294143843926999347683924500294951564737351242447453350038362685381769451903349269281717213389789367407323848734322130296061598429933978085077817076741203051334382022500930297812797278861943709598178235806394847847055484669005118276150095472148610204882020936822276082515352449769963488867703104167686220582381413489946128192379463384685440788370564382930248877765763238074510553894957789743277636739709577012727789923071540663538105302747998627873636384661705770032425222425469200717829615921604846557178693410933041386109528554512589906683427743707010563479821527094847603002002226762957106659690894825417949903153257749226524609960264032115089442288307705149113460672535136881265918439031337073281249134651454944815085417018997262324146724611297943573992136093525468402972985054721276670444602564785951717743575903940577035541710110090900359360828749034290520108091325040120398806627889972664439171355778680150406131441383384921893473723758432556834646562650240709957095106309258476194595559855357663818012493739059811349043580270906457053615931663434178904296845870625668103013667232142201496570884355310132271992564000046591235843120669758807501664977164381912125309263473633876541641664391866336299870694247145662487486661080219931529919639545926008183233611609404036700850178568292845340191109300910285639188722895142443098206147514717956891329141653189699503158565198444765358048032627612227672763280625787880913093748641549585413035651715448643937606518008111681348573979273656603457134668995796010845578769185216357422193790821417593848961439946958846474570353680555057063605068419160558578060836440100092192841337016001132625261276036261311808939487310584846544360715878202204958558918055104921763159468993593517989369242022532951991596903514697861155664963253918858091861407103840150602523456924810384622424448451957018960914311554779586604614123973727504957027279708509071394852293588938819684607676179129424075805554194942690662965463214944884290357365203334483889561346917626316174949552733501713811342507398560136630922066935504699256530556982922686869097597418016371633123310571390499272124655817606447091436187780304916575073419195488757502507035363983200255185958327437401262962569922623418267428590014882971181944723340277420246516046599597786704181140023377529533613081077467239770698231948106614392414784112163241993851917063610194083794710796411591761739974251689133563440805459871604056543586196776428828561965297005841552017812324342380520661282618079045727385886802680558772465292805259144871985138357583325126253474262812839928678154185186916040315499978949119077616834699294369522454008661690033578784183815700780590953411457726826037301001278965377528055902290018238050423378437781503383212432983289482033305011467438107086060494757581740694976642429002932347225508565271101296791965750839575562296153895261035599245284626856754608430216807410519989066801599669660323498612897894887208138072437870237639350360708082138019219306910249898175035255870240650068600353697551348296805501630406031907562815633181238525856274215351172969526565810267039387284688535610677617995566408330507089904669523562571733931508067417906588778489673275209606155773442865259379737275391861188598379265853036818159930621504572113093867191447447061229006951812332175431001457894391246155819758956373946118380594169071241891278753584423902068994757862500764545285382612890400462058697871373398470681242416482052827348737467889801624865330174349984133977666979474361342968501594685009912546649330807496328892163680705750308766421956653233780461988319735626611891224504078860695339652416615053893156936746452076215298786599150698586649321026350482199021082990902104754068319027977121196868874792584815081067905027306339291412866108030253009618625955569626602815631299239452361299529822644452102715906724570379424268166854113724102001371566563231226327007385894409878706963224783508593285030378994190133564373970248058441379519361729182675998057467530105045257732554154992302093092255257947338218420102190327793037696318629993561515237195370028902829824264918931400063520965339343794745781855703006446795965214300161964916545694959623979725078927183483197342671785109788127611487038828352910000375446515336479096316837561583883626224521904656258387948718184338654318030417863966248938161798488243266617041682499664543665428177578430868557671002139560962905947150056046740380776586541370132704676186807706564092717066920349730890125806714882842273413364634513688291587781982440353756957587909955986716664508373030411135476730576071786697166955507807454198423438083213473829414861893011311141023746250898923681539574853386696569223763727120602046496130546704141379545390688502506292480196495087457155511784007252482172677878462791010152202349856689760010272215862842945132623123811143078391347293422505513106956309550448196252420810733956484020179500194341920943473739311976868978352738451266467295988927980246185151689523827735500881658972887010205379369664497207867904376563349943617732949640553186470480784155872558069883764208490693504375846345850620274876156313817656045076496946252271208714743092525947892740570320523989799364410002502780712623691575971061716425222941045005441034034183803572065993682876640140319505334601605823790509992497398127409020564814987516578817500753480212575966455329175639629084253669760749448859970296461876510762482664741161191971289301142680079756404427985408628911640522992972833814478016488033668390970528258968434966564866396123445391284032575598963538961383054801773256704656685821442720942672582446769418236068973788300815989464717334059839759951139243083596100179275879713215234606382246123427645414688475851673978356859779527085740505935632374141511314616477047846556497610227301198162485066791209900733952959960677952828045018240229498766127246841985121662960701156373878457119620855809049748415431993336905056693136745404782841645245605068976741843342490661966879810121018689481158762185816674629685730294500160207973371462982351600062393620660283573907269687371212546675967125029883441868906257043909786730065654297920843107060003635656479573072470447652118208973714581760553319986824044129886537812460266415532159008193226116852818298220596134839338762404155943073507010084456611698585109918874779768016559570289142449991419909949128861830380162734052790016545337388126415529834191845773012645517181924026508509002661685051676734311276424718113156198339609417651941482556385275651252887806885012707265030401391696703892684609166348530170559008089558855688788381334054229343326087747445062488260955603666996803210934501987115009661633813477471363543856989027955226508897540201874671318498193905689084640182158789030418681627727645721409336833001548545040353522473803102734908638419459126430665695173949933961684831269878074008807751565762837550943759180832326893797858075401944873260083302337531971404586335217534690852540365737382152169687136625034099826510500170055529397136816497257129668934072892439231247967402740538354068408550278474288852785896370566695886269509490833769853843572873782482578990308315597328903876917850076603505356070255237514013594778962992472957694827934810116089269070292321775020318309746835477764100775574812453820996366023306934409708502049913587645926562590889752211182120418929027955888693998399175030509147068496422108030737254943608136473698700615403251222815718214018227972167535269611449332534915945111207465468179428970391477071416421287246494395706650326531226229998773422769775343029778671580314498769459091200212882651884380614299752837107477081365066335977251854108086333470248174785605752840504077191411822174042987604680322744382655241375194903246961210516437509045701179826004938401162261064559726444010836786965656444898332981044529322608110227044990470058231561269879390064562073264910625291366159236039053523306638384239805211364093347387956487971866138930200557818393068821362295443726840036417219391147970115157879262592051559390648350755361241560995886313382239742676615020932290934235969982106261641477325602082692619607959378687294078093780218213996305265397098978547972859308435837301024562111445578879996302058515712052190838022972755549367774762363869674276013577127017472415661606890057382267020835777741137117468671010537136830172609017202518696484384747113672743205193670464500609768218030779087829131278975551630240135199231232170128993875413040850106439791392417762961496322675995088878969960232599815068638354963273019544160126249374990225222305294777629754956757857907913205898921405173037996585698501795360090930861982144993293918343516316344711901761282235154906707678329636113709514376044783354157290612064852232438562505403574089773080505404123580882472446896815234576664473028886764136322693012786575339608144878755751299702849118825326443355532487870017110265375495997719632165315728722211577516826256316921617658276262583914744208897258037235872215641564061303991271919309588709169993027302628679722623326125996011066273978881576957472757413137986199507961909287480552729561190740957766943495213753312310631071076821818567548471613873496284658924711905479425391742573050177979555547301142666214965105887123569851646787292224909250438540829921126281448686897498859810526644724676279769221190890951219536185863015537128135459034160454118607395964736873111139933042121792547971607065561208680287507456221600745594792842729821012480922587640788733899514567489407231648536090869977897272419943238423431815188184317394598455466258227775703054968491606188190554055767502977881185365755922745068013709985093451265316817442387847936898866432568122188989130531841907244370859581716671730816428000819621610768664544629737533804282967631224728520424298950948498540156828459416438775338283869549081058211497822713236047752786920527639479603556426819108619067584460533884124343694422943376219587700984089201927002129061616257286561411333231179220971276721348128614532680255019991289659050573626624233813852421814931132074101724168715930046123992214555904753090800490758180816786167031116523921682535656423263002830609366689167958790374864891073598533761445548678154255677783906579317025063262319130151140206157545956697971191468057006305413303224347840408769556677982247895965627808921840964360781122129702566350538242647180817210090045742302918400527643013489243257118479329790446891815028657540741480808126847078489214064132667250784069527827216250917137091550904890726534654592685991595770152545162282018296715795371148027486914613562741701436886539800266631446036409249446575707696714676107469294841042415437463550947810562179766481135782949759831363093999121696170370003496383118858971427333017660520659687242422622073079202863138352811226021438010861940581247264502451228136046790148754049584884804290122280892736886481557957369897444142880876555824053631584280701633630777711590762218689642725215189491602949164548077110072487266771080614716778361001669015272780800258366225487291662805315813254893998582509884405247208536984743309418490062157990929116115198391173117246974334272470959469240254039060766111399317439933310003766837022317634121152022613965376685479961771046048572370827654561472534136032897734787490729474701561899883866931054696529954211901619844010807653326212453163022024521196710613685063951738540930882750899705260273469382420500151770036680068830457787475890064259014671216760106327739369307469194925879258975241890863801934994062027040510026200987494503829447687151135381366198924820820169890053660588457557458275433579266500911263780120789751398754222657425117527302515720409612723325106542408958337590970216279917105714014749099211542132236682940072568856399490916209223327113278756463864074601874804635914221089394353208464199312748899622486913459802047733259987939714940052951963266357560612787560598533437587786187704762217691682469538333750925989607292906483454347235094136182201589983732500884494728288116852484823190769029212492229599257115522981514869035901213941942045539973255719409987317750064233878758122349141038549334355622997232028530442078505525006958882426259995726419215590709719857550526964128088498767707004079970019790863291928873045534098564053725501354199997401250659798834979394477432821032059523593826703153158768544581221587800590888667189751837445797117833454233950365785477304744599853132470845496532128247688108459533897366718171593234680251035190159223926716030342109476383823075598380317729349975124641222039487705421380923354447252673904626171565638214466596296629250012801148529402016560039952891617625253883040582098946955095006274108824774832126551834385354476342452908455717018559767345064447960591913204827544433123737260643432848524398854750420699230871773781404662567727200704548927328580362055253509907426793855530614774812902931371116563192656952614361689529502072597274120042566408443563880600237195896468635877839868519789539744267274646542368500827819709331189103221313587226944951095302136074106429071352268851805960995407435206475379191428792504459797644498751140398086279133968438498080016173799709241023557603972678212643496220258979606907804269845578919853319041941373881655190922397810594503471273276305819003173264266760529730394612580440445174200720926865384898509848918740106042942965439425862777202422775879158036408117086902536967865637988055401724760080391364926244712782646015609641862477039705414166806183355784111737500877972626154176414049531623217748916858372286363782734394288840897638832411283030436942834720420096696107714637529482049269942395191785642951954422380671833681188261541479061256791983401836179876494615307772531215127842246618502986411995271285373988886496169878655017872663754026444729130555228773095346673665604824152036977331645062650370699324730724863895092740593658979477263350519887094828521409108917465329485979121337032356557774435414672033328179261654601127983075733082240420543514862561838577095797686125993345144552297336116918633536721792021027396764427687781333009158348855679788269852379326916083455073521146758477130398737789968382730952775002886904519072875843412500005468569366818164571956543149051688179548431234903943746530739906803046200406753603021490025603610877348946373049364983094358656479698849678035749284656510520315174713179066474129783503998618518108304649767816055668978662480199543133246083613820754801437113927705590185343972268896254765350749208137377353846568467269541010125877965895146216601823415804813448771330998657246290800856013100464336984725161612529860383228900612505164087354984795286631212176639737507516233022741368249721511746447537365102163424130494775555383630264019062907995372783412659231188055446583431446627288819797394582056141014669806854059656363872529431058199884429209649798956345280045106135662434958557243866711591014847914493974580923002310982502241629912627360909524913418761054766762970037417265900456177854043885563720788131430812270926264383739232950109967659094071734269886359306082304019505030123429840563102109108988113703309320945419037663990059560962819270962465382938051552287296676689067981006343328706167733535433090451303481289797208638025043376736846432650398184512835057416675508927142222326866819525420745452972551692711430741169719625172966596784180126593120929298925833230655056449960326760630680261157743385746523282484653810637717886416165821646936863836480298624001869020593095633201270790828600850544820105396141439713512419257176231752090397178062828104518330177950209519912367507541045720868902514283914213331436401246584534548257810543314626117645802505517677214773460035613708250531660054663798447737601150500436086673739016862694933957406688948211288246844845225648311158750305638241510207379051792856200821378116315211370127472745357423418741143278874367804984845523467309667536833415884633066861434399237908412033990695089926610251222377212688190335346343526238819848581859092242449479932836650841205440214841499276051358373869369930813721582076171844422260518492041927826387706587465446466218607722707969479745279164118992492491773889202632404801753199423479349203775726132672045957104549664681504447543788179404356544745120869966827072925933553942586848684122715852644724852715402553811249084020514229126237967789929580550787551445421423209179600405247120098124897601085888721590155624066174586107347262856842251481681225587202672849203798740697100417763040009539041120083066773764637235179631145520891803579401857376486169686437389244808505096390822438561814389221126966337001071276764739083889764709427288191848722595239126129200298954513921500717193466021978874780758233778380648127842473401187785232013651667380627425471801367118967115564718808757532804961079428647715525944872333782513410495874043127601606734985232101243198419682064260909813416254460979488689999867107960504899564578325612345258072033365758179001904512114793364487043313764217634350505606070704523206634041577104504629053406599400153645965134976720853518565987504644194258542819165261415692316039336863686286980704493943978254625877150280813521759618784040478910030745738110660595340050951831198733980105146652210074460908905558543507866262872288694762851589149412741547993701711706471989941763501390380079674998894621429048013167592224878976882758409351798740909435861619626445616866960539724695762971864354323066259459892353011248415879300397403372115353315266474105930662488935992104797472841530809484916953639064087998996016919087687296305124940096755035600631739252624750307366871969728330185238178289990878392352846422262931288689581572417743336747752916250611240519872706222270683613932121480022474213403159764562563295462698170687053080968513521785661744559222090430002396327785903901380524514419099060046524663957571364146037572711912181170998549216392190388178362173171242658741246708010408733274058752667994539597114303438139843686774451711844404674844116782468161269533803963314395330949611508418689666616825872992620394430974092096439243508225246651925043595613795920058509426224409995125006452669734040614123640256013309985128246059430687177351711534573032251963790681780935056910407703985966486917498636002596414768950006518673447621227531609312361071988740686926167933546453944205391227967164045936457778568791552914600447117074791414464829364201306669600635762473534095002373753168648535344799599397033445989011698326488937865503947499564749206131633714857668801468022953344819702156412087538694869556458345636200874668506777040744039356771903722337648349863065818872820259408653312764463933031596741800937475452430623805607215093056948912548508608152249938772179615967824379366751091913832504728596012429855346905167059802452759877692606916483827372482991046692824387754612097935690100955202769935494841894472493661386862213010504271216510179115786695970573371099231950238427374550970983181313496155916797312441254420905795236542343160535284593178231684344617220441490403303003240138212858979924418819650298021173229127443726062211745971149713783082776117927974633892408869243126936079614656614945973004788713621550067564005777983441639838156097622161826635142530282118965995978721131890745124481530604511065026942912123492188978082951211099552619470220693402055643744799381794179513218375946510418146949711664152928648412586889970479625160436237456061602370450991473184672150783332966977898904762883679982323454007092725511656444717985501274118859061898519032956425184117337782019000285680166890547892865490663151203762750205519355224835264367635519350044648553588405990484908240875294681181037142645209864688327041304339818335180962489081931367661457865562493888371768592809356655309802546852049831332386702051329174770571303104706174332719236307593694642276268123896963156091848610316047742758674495728233463073780122534218572720321272709161404211632689144287560958055585160631884079222323621759759535619957744904710495061287586816846372755378066705708708261909287987579085095260800377984743897276532572473892301146255934680144212284693118660059008749502938325681556703725703058194270013921428188187637647026799909828949492181500996521630216552391259055049867110096852686190558771713921876122951281462268204047720786796918290434434920738773001974826084245439530359617032626644221593049503317502696747607806499255460572907476608768686135412131264867048978150973200546038464713631430065340358025448976562991051689721412030682557314992046900689334478237938981792514045374019293531205885321332748207714239078787245400301839404744651579205298649460058025881468600210357168261842663023618442202770301868590517204042541496239838758438149869682127918281043643273456376328105909366536013043541564808012003535299417106075301906237323857915405351146164022745581646485600854624261786769648170273084935131785737871239095553883042302538470721812421490346779054506325573660793501057759168746848971496794037402513799874546896212457314796645478115446048687352945691228194442161990039065238710479148459724505250270428598436518038902949197231921746256126892671506760724865791460955773983591407384256938640725195322029285687801348641001430226589994265734210090464430568643360862652869108571741016116883147898794840280397582900552590639647711956927647563503880462044084798924288055123061596989478352161063308447195222163874828465687313116000051427304019705545323459095672883601153026532137579804001573931488774605451638832727564901518344333649202159983396981507221375467400404909242505898787301642856262160877610542006333612132892396898237783189270412466333395951064744338539358475990618364819603844392994392889830602696224550396422840929405838504074577935842936546453373789073235108623258888534311145133696500814244345233502401654636009800754536902485838122215981929735021182531824673183191294319585217721843909579251416813777567031626131340607716361045055742767940855786111893252095344647052230146012159864570716152147467794152820749100689498256205040190379673485806714353101938592619222362038184190665444086304440181149322037848287236657886710162132681357653987184718559380771949567163035942660214129890266679994321514113712010176059543901444691278721966934510443356793537415578161767594446688543083240071445170886309451597086514179111174559079612643777440785085335368811740794745231973601269356101207732337564104069284762223922044988612520912825242589678481791248376201986458195963466211167831768163682843612877118425625883616164046113390338730226985546209554164123039456072008823230474442840752906504066777681359005261938566919419396700251898891821583610638334356916267757767535707308891545345118560813668585651160307654547983982821711671729347394586296391335753526828528414927366146919043799707530524926269288603494245848218543084797092036599255540571698899591770021454660445639811685848919300701441884449374398098038972407157994562311999942047558062384788162667543189625556149710544430323200475459214965016559427843690386753685763938412377072401083561399770587481098429327016780825584742566861774699817499937966209583995260613485688485802469352090508372022351070914411991438752723420466652966831895746835479422827490303699105347542187214611419247854097761441494317904015431151146637951129501128045543340113817288977910034578396345675524186382507095620874575607422897910818884946465328703458715542203990039121752776371412682076361742779824431559752066297320447981649948648531888177283166222942445407165882888196227520072477509185804029083068346837728044225168761814957252813344860421830244769904221728951319657493559619717457054167877327604507221680564118800014615193716929354829056847285200360028400818238533809704466475674841695341337249773781243626260915279835022653472579668313720980869654403923406517318037050173031317624704364606191292402916355788512770246744237869101488698137632730238475589459672242252966309435422556916582472142730205073215058972311300869104854892988239831267730978159752916798926713549892368193117532957402528237108572451797220791031289860621884324902784076121337445843087076805489976512453646913192256373437113861369051221543208234483681164765179579419948343211171480629244637216349556775979764629935790921617337933809868922069313969906599354195893562703348932439389740983069994207446539505015692342739799123682656378579064516932933187372801258161021570676284471592703819629474368573898920633529565207866933018885594349461730700780788258105288162877803561686185694892967477209435896368600084527482505954735470244308805366210036899103407040040880215336838609468745708275087374613563125089549244769873200035649632135437873595695444819397659566759655876881046360245102038191027500699980379159342036999744082263195975867533116868494222398090251202199004076254612041844283271979766819704845598194053108425336392173649020641156484059181223579317298213015043716457444508557280881406733979040111349635062557334500095262633356963561502119957685576118656098127624432369799421491102825164230076569553219483498206833034273037929537350762853076728610170387517379037276683979899946856825208449627626646964083156586274467580847428798189253253195878211106335612052773066988182948603864749601763222940057841858555590389076715795108431530508657542095757597367482594823180025939062105477188186978042242607791470457759574331073695420096117157575187023840081229944523813626331253741840624175683914590119558724459569997868590288216191635298527033668807141770917333827729582290980073371859110418641811849057901075706452287942301026527322665349626431945285125311061580456700358195097952093292897312756124021407051013595605887547633277587446546114243454459689506295818884107856975200699589503305207219698262943678871258022607954079362637017049094032462878487265022628567309201901620802921004334927372375286180870130519322498727327596679516727953364772293886018708736030111495993030143706876450002781037064342283914716417526011730947517065833109302036732659663099886486074329495508352986506227550219022730798980623545440480170995119795654280599965506908866205604532837625476859008565851187320849221831414503006770920640288265469696185427472736699410595605098905648320329622679287656336465710763037296901896576767271506328385208137229288102374567448269780516839397311493305832015952111156349912968495023205048842773896045739202128132164804771995531245716915837640500666422899455110048678655731260038493430012882813462817143969245738382983834218592602057712335174712243368783497361349651896798208939664942537102026822124693527439329204185150644302737326332457908489371304705161803671711218614742414213466289130232852291809838910151283370694988446336131800829779923422638351248005975872932285331178274126206809031330164868928535377377114242033446763360684592951004442993340120358431407288983870721867915811666734210053094950660190261940866192186897468890408695440896546376209924326191627271470036013823100093908299217344250227805208433888403462670723063345150092932123417603255196069403577608313950129390233277623777397227591387658871580267488070516132503897081165611769215100418483318410148957985169063237437944239913825427044777690285157601413456639268358231694134326946538520763782273110324111539108993671910061709759607760148825688228299697560097771178713489232707160685746739559381437030305252076391416994020697690816214992140469132050110289236745578994928060510098460537019136966199320818151201773737745559942092693064710053292417364633439825162489233503472944744241874246458898283001892503125858601761426807318604770799583769501389545077084883442789476372499541530023121908543602606077344740494362580012436570324205472222641632510804066872933618432530566532996879970046701525186493508800820104562684664245846416071231389457421640820423972498055956006111559910448266214373182698832590997645082282377657825172851771478495851883380035784817936367153491199577025389573693837345982725298376856132865850285183685141844101059744290646215985931491429953100173668512044561784966084805298981009277840113103645051135445019152050539119201044551845534431387909725746007969526030549777306212864913162419313783834180168661505158598387250606570733863568565697025929020992377902807274808360903852885554848496852656294003764801761696793048085401490767529078280303010203756359928393033516436330331678199083736275353109754139061651453544482679927390872349600817234850625834155615900817743462820787679139980388525432499962612797847369616044844670473877295350256145682889812518784440604613049150399185444661601754632480878763882768037172568912321120816960215463107012529007906723926549496206227690083209203807838826171765537404458444128630791393670726890560186158803601731687341484843287206813132333231629078416236190401681844755314890396255137638915853905284994268916010484936084339321034704342756121684028915236542913023410093054208878082303069381509300788248115858107739108994199986183774913491768415741972804925872937312336975940553675277619247077257030926612416356370923298182810161700574871905060975465644739999339232878869089406023489637371973360643235360721467223645312404078174039277703706060248677608005399467697072353193373110288143200933268460221824945607903468936320949319838803382012486919297079501035006688776251447161280680142428479318759815396209954034080975895812583111270670262026116002591540914455597984875597225976515937475422456367346643920420709086898380138586637520809287788728637250069449295414227123127080427901216528968959388181750176918322334949999356816371765208614579636652072030203815132891705904990751010833771317243932882811411461538183108401844593693940780577697359037054784860786850740405475648238623217255084339123054590656274045973525740999547408914350200012580973249669667208337976035458515544947663949959980870125851484368622490346786319505196559211147938303570953177298342876082801023865237976342517471530849871844765773048098998774102316644772183549406626438190814647813093420817269455388740173601091887537678438736569090285160003017715201304239859520028926591033563725404612683386364678840643439987021359348130960558160463084345335528953777141690491568005040159806551367138104908683011074076300456659541361121516971339002732309046419251703562446042365427717830186086777104909619805681064242074637977477142343131923486706249578792644290246092064111418596294641904088511033698426219748120866564852636595060883615013978789930307575780034527494019275036037463509062973407488158553628571977586316266092318021499546037717141124709150946795422402051098490269019793196351769140250591996390924662508083694564701692965017402232980111476999990291485897602377338598660193263438706971810820076187268336683043563512718974539902924880383467391031449567739543442175182989722011554737738000539281531374051518508478343874266078952816990489961114646897019689714059279814567143732415829274628664868067751240425206123625132104109274762613835921845481081727533778292075936644938260644882270346248736771815291899634200908283734962166879953203143466678353475278435416662675293782358371760914024786073743171065560793919851244920300368461797644078866707358053464721820999418871905477632913796232077260217479555296830846084217048237558033974271272603106246941453024080121204798711972280516366635427525851113057438594661925326969972716803953683479763053205741169341318944394447355014714166115893610778701556497025949106866895301591265491051636906625285197575663203293746886255620639120614430120479475502539618635832885018175978903808027727176606531903399832322469975333426017755628306522897408573643248481989648239899653325861499758956347441676167604828480380599446333711983102011246462253285205334974856548712213913181599666515616976783524720966779550172920759165381891668490204755922404042308335758359439278325816090705220886370137311720974368401602976527546779723919322401370880378499626583119115123463736311384895202721137006987839440586935647866596362861318575568718179527938788848764028059229567512785547936100280134089661859150427630112449640047519466634291114174876746921735121600841097985176066726257825285624804752585890105877989123652584634125009021765892605172089104316775033660283945141502071307841743048989147306182323660451049354099746345842940427649966360360602473398904595916694676606541179473930904899094268577187765085484720997266623277023683547333658853468534233377810436490075380317099630282593056627020710175659757369524285474308506508769797531334905524604866616101473621937820303658111050290083919323565866359378543194387583752331774573960491583370383198151334839741227810113825833584705917698276186761921230215864638260274279154060490626406337462676479683379898372517208288596170404252595774757607365670800274981260863633807724728069235514994618938628565142866894649536428802093672627004636195092920069652722237823864915183557037024200846372589435839883268794530323235779417172832471795884499955735414734747053906634379771494535378207951852448389910108526323829679233480060779634831638694037842086740897672925471466726017393066411177147279612944800449813116423330603227698262368511391663436580748245506574014939829974177569372478074280487804715174908739619523415991494042533875013188444009698338601439904611743636255601201917367312753188568229291982086466963827650526092665930077258044203147496956147044395287901767007558757976596511078452113730168850699662305903032251302221802687528277751724501430988364822667636238474531891713213353408599907253004103704963314773076718044523819020371767197690876400208001044039250310973332618984338828091725340487773958385684676987642699335586400948314032735828847645610375581598420549463355285489865134128026828831452385637492959651025548325266652599571055093329734781531699638227348551377660045656871900339706161386972798282226792220390968708991420603429369539164409523148145329451967187927883637074554914648481768708254843804951895104458050819337481436503290205897929241993653707577856112562156741545017526558488097003256145397505846043767018831516322313712377565738656813967231467941397916142341159897732126035568041251070134918501620203684739874768220655720002357834986252852953926081068595339651441220265885087553748026018427957919535467039091820760239592013889197707694098141265730585529347196066233672700571528502354530407775561991937069018736811928993606424959632664220637989527310399354030405904352554324229669561436318906611180615662618225203103504594280373363049419995098887525092167860051665192220370450754356689769837027014428171290372239111822764672089226352008039940665981104461470776072533816955561803831929459262570026330494965106428782567821286114595207497089066443296287377869366713518897128232945353732962607333500806184800615579452543845317251367233782358000397155801723678293164701903523405947629898551993023719984455696200910956613291384289091854310910267137753660770901911332520040747762546424019106832926387510261847864179421070035355764551895654805567119354927008291785838039375563931695438149561925261979458928432553115391538761793548214513525818550525381462554498072924427550767626680424318701001175614892074622910145192927615779196124562549518139680682303707258073523238392873637474358615641452199811500584974472106023742052606113723079811850206581554888893417546945707189752039672117314018423577729434176301493053875365831294271479998978128446444795589665571776424768311516161432581304090066105907494366713737174370524789104834723739202615331382339802088908557525885084247129689360922239830797447584071637097631782250329828039101230208060171549271167363994372635889096846328956322903844806065907806965809868149576525237039828482742811803138175752678853786765900664597384212546031288084070576551937753674410472992233001839447377357477126407440655808729822979417102593826757875653098584395391421532262481610103448140231795580185582779642134303956787660688398584637313975466368229433273727699927400240015286848475327783354677727460324557491092275336783415579955904379289886337099204819659720523139984716349454435724949966273725499244829688511323279138698699502020267974833550488315537096599367253342216017725457584221144751541057215012009327127692744951752005362149490003406456443875330170989742495351187450364489147782808044550308048537577718210996853902046826849659087181756703064245847641290069845586908555717059601575341630512611454062582920579013350621144936600762276836741964646618172768701354529037351837597585514321287659823028068514126846488648423812939732820706959558187713267883202521380212243719780963953697494702661316984706832701497530472980573218836997569031871789151323367415804725658817369819271559074869099538480138868171984214035125289610654459305516582768904493997631753546845663312485466956285989455866100924441338633265270151690243790907284431267819906858185709320312607939347204976046338065801197856455534546926819689230602716359219248823832580467881310298578748659031098107276569610108614448492440370588925057424859363923281826203228041403462726655458088201178778247364668622790324701116804852846584825918399205680501679423486298802041237051285377471061278772326445070187799334823169234348184024485254179258188512955113580463360455327021806348357149266381134723939008579739687286648698304841816260373967605945593338155343394725079480746055200485640302718246684016215009299580581268514680076442900679114656404533686163937572614449469735459817747155103156355408604968059778677726605794396864069936712296219971018405080145454523922516192304762185804486667288575624875628492942699383571940008338150141193608992327675123431292496342724638195876862640554152982257949752887320386504725256978994376697844849678098485603183087105400106884109915058304866675294251340295313294844093154569525126882532530256959718460921042450998775489966289663192343496056901385623410285544763908726552896554279200340252190240721904561237791552827267244282777023810886341289857591274268341135892326654685258893580454584354880620891734492238047375709839459870386980698979670541869065681957427727221952868795005178036556166553531885420518395703870420732196639319711848753981821259846529054950585933387077378300933677558830633425731179748639355190896677006084497345875835225828739805242638407545288838014565111005331019450853967743782134436213645021277451967685341780469056533339527436291766798234617321643792829840905856833525069489557944807211150117446552377265767108009602610061923097562921664196855896556000400257506740984377064607058942709562268836814990406742427671359416111951716671868219221958593366176171946551850581768190386344801193732701376953417976492203792645912525117915043814229260588703427842285502519074842652376964566187865323826211088615881302284644561086633169044983851209370109306456204399691693619350086966671599546388897190004208841908338508414817279671868016504090905767569253847355225162341279088734544830618966522248934516796357677855002124148824161278427493080774895475534916933980196586496516285206897731036588787230989339518872572739640172407583053114963354517064679523312200564653164770676222274046522418585299869668651079918672952957705456557157667806221628594317617211646768676865700297831204832591128725127696603188494962867090105327217727253851149257145261492791428565550091064727742397331995772183644759629085853837649174946199091399539368503476769701161458887616448898308657327383870646592701049337250158587351050725229022377680036148499624844424741952953725838822458146049442567220623893405197723711506791748431254503550930484226474475212527869848802508168645483778365672959037225122746722863764828433067429868778827464171577226762408445896305472153623415624307660470880981756337685196775403343941639535013807939633038253639968776865008218863123012947515179081975412485925749100200523675724776533628863128530911413467231132041743743043822169687680935338588970353719639877395711661149385500183779338384776403555282395044496823615548936446621351385924501531147967042942361162168776970723249409934199907229440875185185589772828102341181738822854913337327989182382526749661563720704665939131516216346436499018237562449099310937755418544468405424556459479107273470070107633750590412371058650235391080423461421566462811981543325641735109379161475862843994113902035822801229973833428270323668700476819803538054361217162505369962574040190531387869484511628663362096213461922933454185137211733275927988745858386185314853559643814685684696772389045125329885150693780255475408537980861431722749473641045889930619876677463445473172646688699830109574714946245808933061707733092782159121989405878012327126451324708189727040916686736437470041609197426145189740028857661838949225927951612772213924364901957532504982073087944171526432435126691130341832924058754757983343462344313522868102792569763997634134312364422399872622250591348324062552211382567548690035597348083739423242905268794583008802725568062805965971439325209397135927018058990735337905386623092258887787189016648781059057448977663517670037964176874648198583223096629497478997960516826682376093066758659717258351814115857696992258819795039853905148963425484641233054245558648467776675073602434173473562029768977502164478283895243408920453614308761914986683678210764483471999363562705443014733232400809695482043821997879645901346868663360066887482962647002618866252662560814368429784886118488023216319219690198611457495406666152458968233666539931949069154057633861220650663133833108292869954097361588732747247909996868641897203938271428840419763635313329045384006059578558434916023880348240438538908357729079830554059460443231054389819248789386719910315542043822246549451113725387895751729806610099838527792525437712169325182639958114798333605641283761438542961709819680293601367477858834374572723381273890046836536253100095540557235268010831491948891970167796591685232478332799215459785164542317596188026579499469785661672027272740404676574629411716265660962121754416719762560268935034815503684086313529320875949451955851482920845719544902163604156609743515062163820234000333711341114006693372976503627872375802593521924661960734801733198275980936040686417259781612567371078537564797142566783690205463332201626693667445495426749207460852722040910228574368517612171708552968734458804093707233151287070906674036261911281303087602243637708396592019116475194746650159037387816659803890970244898908911002377829105107034999135905756343818682875193886636698076370170362961697675166367665582288392137170367056661006493140911602961971584497346957447661849696259588076624421981943098655684696698753078742689335579463860381613647003668349458514482528086270474941759569425158480961756221709992086611878803448361450371631175496353143886976236214777467635554887971259227816955439250018530705173319678477328350085410310322714286382797549121238094772967337876259298268099354814702895733535249098962067290549186707527532774139306610742783081858293223327330386393431576660553218430062315058474634288751894561409773899605618408024084584663532467088587199075073680126895921403814858698953999681351138194439860086965907112624707227583159679796493522668417062327699520836371481869165005053965397075173270895714924417955053564889844738195695549706521469986880096237141533701547697459079238843313018887275050817528900347826819080240848648807346081005385386333239718483465509290356152333237377393877198893554339299267627322779415079280878316801241873575100580922298938191925020831744133820393735636336363780375137228032768171718123938549353760784613947751670582233820838382689331909181637755452080824630068844276353616099675367097467441553818343329613353659225409618711350462370532873919623269802522801982750135847567714126619562029534033181707208529756484600634997866835081645173336986893840358652250407777822441378377329473643869748929820576900638928516607435699554234790542161458631257638634536784813366515327026692558584345928088375017805692754313959382625153968034030355498031687924430290874914899862432401073178029940712550008393721690065292596659620678810310243457146234210953772267462628280743707071568048406804710878686185318075673300526954777338212607413255612946992363666432636326947271148275631571851755163409490749619279938048114947788500812360140429685629717184639585015467300460666155614409809066293178486328487542771124521705553393682797006878693381526732273456315189567753309507197953488974844296647891247864988987496768569754316882180150547203579304442986832073853329334259142449272111965533654387994297375632019203162052163968881192219122527027229060615184926525371620439371540246344794163381824568844793964184744461681673895937578513863185424296501839795775542017873490708465563215894487705153886610631708972007413919305959487366789147194108455807884114638407468601905905567242345165222107025083954433096432449961010140879676643296343104954688880430312797807671765073892116753881442281197505155300529090149348561806610266972609805359301959245899175800162571490988454099720145255027714817411005325768622430869047286482701930788482175851186858496463005594605163116288596660692641740925073412556948402661601232503186975935975917071649956439001849181494932021905192260024605534978351653718146812720716913262324672540224944612675319275816358737113322501969939355779535800182973765708550415906343274364898278217567403031537219186371544479861499038687387682908923858309814545037446335773009375943875384801191050222688987713779517112742688047095608870223742051743877324586915986202898972302049037188250622200026615053163072671969351044103905835508633998916225782482934489611814846766047557807320908475089815595457877514375847299313004737893932243588458639292190787193799564354631446755815071391076213784266036355748056642412520010461754065330557068373122151931172637627922583627390562308225525809312977505640801507846231219129330156785925370102991452660203136077189087999729026177858134114773979030824585319759718778974148274900853787904243246725879156722085557039345021271074983166371634032461430101427574373159588731313388367085361470746794857455414844072602954625365405820971484200881213598468998310912717426192576294689722848953934114624136481646482620262276198151437745448868609946540731989871017176006679149612766590180885652674335731238713127099886582225786819042761535606443946264054257925167813986332890278902094857414781985594452215194713729116287875174424101005698719360397918488927746404411148502748528651009060893677865286714113738985185354792848580490232304075906617570094719728243050485617102395613476065967068204645461253836933211768835284492667350478341431715397984751154427776106093774883076823510253418040325501621059958689946836576821575479203719312644724268352197950821426646514496975389199802346799194532487373926824661584987922209941122233896068546763956529233016812136486384360019753127532897545116490892905970737806602185270149260081115253702831018977363688146801768315206185709682034555882015415209331800469335809047619183669956842135869311940212301418051240155871876992825989591081016808603080218794681505662481511210429404808885582369997475304421139768022076539784608879932765682644811280784741707441532390439328349423034505089866595854509526043693619956131327710422417946627874796286327339236345608392054753542333482826011301759523497108991576849308598347334730620065275211144053271109685828156222723493380299486692928547897883999598503339003586931329201469563106546119301260640957867180783137993603559221993163952674882809551169817414183899286286112797654333849800971689762368211183872835652435273393010642138007797071421947470144290489553729856707808886954023734948393774877499147985002274086388723411032775418896713095590957629102253786076985357020618611661324759269059850837315441142319857891433545490589511695821236563805539047415506647656960578907764692787031028395766980280237106880377553020019037495285060384064797863962546215154444960088533779660088607062341906559459898596305668354518212943812275577013577182659090959518265461890270534379213671680006383331343460418863052085444345979986018327435588234530406617014254637733246710982762678493452073307154064863658970313544182833879839313974598309345459184291556620974797140564465126383647083894818044220216792714301269498818668918489903323427645851080869338879268980000330245728624031759704612595705445077124370033200588720527182079408698256223595336425248787769076951123478441500340847617890349137727409618612788405527522286762769642359363661711703338677906528132938858098063080432793476462225160043746490056155962869158729597011857003102490695194178589354471186129626097114383782556155531139687992758826369237084283329093438663539397396953496532228595157585508672207491297651316144770923177469397724935038935446797150366150047646556512618354193794409609057993932687737705387095594044313517548153126523096162599302806225054452420378378604170025456999083557402972719691026150106201956047738007640519023475422686190712214275802628901910634182460279538504692641036652003343752133238799083941939660433820016699250374555729678990829474154691621301799663960527850790812708947227477606707460834297107839339442095576865120038356688911410116448234551339992017222021396240403772356834495882875048319959528638245990976632191787500028262696598785656872563483621969776491541066530599319157963541269631230825761965401977417728930163968651934248847443427318058173131848034624279075141380050378642422640095210127476189604030956220800131618956871701566923071102227902485202957412014476362813814581199747985187147766566409567176449416615453388047854616055240629533336739091286383701044634027593243786410770011270494326616805683577111406206964172265549933445053490326488968321879522903013379918928950746514942163292750951169058409697593226730756705440395536967826856921032357223622374674544831373695587790438450950307803618408856651312491446566435162880792934930207527413819612767646640076811602909146628257412486230626098184866813782020528764288034281155291735370419738011563929915996657829582188102830722308173000429440927345033867593739815922158639544996169970220225777418672650118677995951069267205462371467361456544995188542501086221417012678716558949834219262221275779877347253984431796897694086627780244840782760266175728830446382595528053385777373822348604833106964760856521579912350170838790140797574776201542668021121912469446803563363975415824853187539396546860766725618128920399267053587484782742461702792672169339933949780859454489047274605471677212108817367060751862747080707531160262664050129411798044257955035164490095419963830244870364651090735321130638126738586273584908865929126159220620538223341608008861510459834529872936991445035025004708432368407398723231338697990062519917163687524464174299637476875240401685151300223949707273778600155133244665622086545605079403377019969020834038741796881282738587866230691639925882588470834921945186024093189217526108727737036812559960593341910811773442232893242632505635777060335974160400286823399036354571011286327725012553764971147387915573703408711386321485373564755928025182807302129527110973154367177644008273254965320004121837545073020495160508233218093169208201058674056016762921682722157863126093961678598393656357636660541025024748483192753051856885221165031056718117428061983829876517649713061995886382869759975687528561287044082145841813504936857315196167689302393294061710316745588489327331387937614524317366602343013372159550362212726831711740397839334678869243976876604484978742169835625061690530592147257089762531607130766547479463660895714053289407317507285536038728707172724100623741697193160386779238710472505172973132345609398848195473508211580923497755239676734324569639971905168113834411130662647622609860369206922220458280218057384527571390609432137494935469414578525698140728573307349726108258697838433533865720936847849021903067337919282001128553399048733329184866270430681247680688431501061704367918583195236535131264813606934771154949733772568181411906736801941064732454844707964463876368298936237181585225335520348725225894315222474231787607878533585937776020979289400739969837682041280343239359077160456151807679018083998554808720964888697052988297742756615381676558592839646749777036356329892505866827002891717240443299407903164448092143300301491398262113909983499581551521294399729740902097904914825690261784943049950019852750889863468040146488761683808323996715651457878842852063824423704822690369291009732910259364890861715967826120611814511375149353825035066691138340335426596045906132734770886700933818708695022161653347570978555608331129936189454748123084071141565542880063302871484086219189220089056263070495281477655703835419275579255613319443964641719384452655107317050667159748525952862568724268068018758402436137671165278868824501330292971851087860902461532519947023539457092571928178695061809866663956364370168877636603051449599251888670658533710707186826608085731040980197487533907527586062400990624339069570985082656189944942221371761880866120765790697414256017359654104006511181776011004416753486738665612260662465366894384683778914872193045421673887704034728274823157040065950149372675131938249985469828128614862632092924999599630743095321705309443403738764570074873308920269464227771588314300157505421495266729046772369625211555074468905365284248825067708956695219227407729059400808027982499568402950525865458276746905316754427796541413360223577892657838702803374141074867475267994109393446786600103014425931973807790022256089912731788624941608903443466121052702339300773559644453259188533721887203261821060332255601323522947518463064639077039339087386256940382729624151913166986895393149351311103406728997315545323679458603391725153751659510505619858576708633314779428454213910864700949392438518194944286750826421853631730061696191085122650421694917650953359492229929548393893740120079567457968662990844454177862711532482423463801071665181786074271762754071907362765533130511353555628188203473632887405578344941472748445213872284092545358386135710930798579275941969799865516694272569783360292720920197815373995229168537065505841676834754496784709719556201504798045543059429715503899676980585093988564775972247708636024749833690686162132817067835771252146556433350708432615474760519900340258758222267220505331155843711588211065330795930075191346953594195684939113754980817306334387267313076433524233702738538642175124228064165959134954836297086793287602625787849305882447840261992788949817072862722651250227485677570713953263425793421992393041099961536071117835253294700741714104291767197409291511953660665482844026840901317598255703285550682368992566695720192827014588156928557379717174345338499227363350426368242561156185089599476237625008986182283951438586588074519308593349249502972648449019427402934068567856052639927792317204561255722678563045764635647770385912110653806713779094981823012390684915890849785513143003833464174301441938108158824291640558565348400022722357140564621878930353370277864990976014051850180980484767465004476597458486384740435566587877364878528039034820983750423941205993989322498156577362489266259055885847948683277337112369137344679831804572416082755893351878630938644927247710642581980702388542073595769653718338560539362113480292020728394981604333792255384577740790409205101817456946346916983242892127865352570330378398462852553879554268391439708492609427708515222641517193669108123244016599760214771955721005509944130732284568527496626702614350007480334529540194059414390045908557048872182562374796167128748449500195542785620140817989744882629397861237805046092660791515377286675213145625387191956230783474146018148780069302205476669099289239563757409077106642842277874102554762818868406925066199478858986118725108520690358443582462110236813866124959477296673781420076897094967025982463671050091650697162286345997341745468507254170233486018658459248581167168411874559740397488453307281478607740848129732494956351572271900101259805478658827382042464990934338683037707098385213581562572450289276680224694236712897372656585564815227964236136477100427680637287857443809580035320640833408783560950022705623923225332362437275581889530053272109410879773434845000407669593908369930447918610439644840122779733759953820968440036878855843710318093935263360220998336497301842020270607452689968588712432456412013094019530739983271200772936282735108681593872939691637365490665009383735075876590164717868463011980230780879523912935468024559802199236468419030905930856681466545649258561787440139568632779422253253391517185369498406993205633559867016411468132374615427871864070421751111643561752745034819300060912098156111693334796486392696706623909499199559400638586102182675922357460385103938131531330929729427097895874721247976313619437181532826780038936568951333798864744156811661151766371765961686823049830976741456835522877991352550660795448784244200261003404509662202470624496139758277557469751693728356072083049269935846178687342514704545151816998485916945048556866596454084212005338187727373663654385034192089605063154995682499913605843167507423556627712004085150902863896218359857003438321063314191849329107017359250797748037924485921443535498957037812436257216522940448780453746718199735769592962029842620403949047908578070394740729650309626676361037991744366984714248799230347150403955559805098287168730453334724612445168865265051042995682478530025753340513358876605549334002006366199735067158231203803707041688700584194512661435681152548209869542104488611985604828752565508431150378314985914243272198968652415628486552393562761713104286893087339190962614269112569991552834213610172286576450695149165245835961561242172129980818244451549297467619716781603798240621756725495010506904768019355697088919814656323317701406608250627722158511951385040169981011901793756236314741607745994891667907293533814730482032368158581670084841866140641427009024753556359445921970010081372156951107013944293634223449245350653443428210054329039942944261535116397569503405949686147713963003612744011557479489739889677689123924358601240891592757076305341012638013346912052342355402450162379976968224726924255146057816086742759140418685130347724852687486181589608078716440353158487691208595353218101691958660098178654658933749908589819423778784198659593245149052473246321740585725049390881396222462983300640946991141848913132022912760788811538380996200931027106397106757366751269596575434154047309853635209189158627668195768225520512502765449984196536019480529340431380773421498721609980251277991004584229986133511549077467162001574973949922813760437198602745867229300248187392002841690029179830162709980361378596141915982343264332375880541541947879697726510624408917466518803876946502520917603307402116448644063362427499953680179699796893583934273378354678724039658091850114561719558382170309431466286758948999876592622364082843650273839458961074746502919728519560314242838431742271646907712824323591222461243178595249446000004928996715843422625064425421569707636066123438425047500791762164340737575695095440410467740642426295959422208796994660741106458286337506432451265460267555185855773478384152116705191355265188027261141144811749310794997599470367526373435142881078659989634617242319039852884877284439205662555205222479616153798616857372302833373518815483180361304689490362786025431208675198323466196356797921405841635826069495276451417846544052553206602470680267672059066192936744462886923278981990631419669429355909388018527998154074230290578910445771715772354731363046710755973538602148458432982650523663292515564604951841706931867527223312111369995916207894921505565561983603079334860584513368391920424366319919992690037285571448228098042400321144129248997699065769486655868175328426901439927880787156781354830450392817040474059701819906481250221968834562655071045783758586317536431237095632361265944830539128202729633923850161005903154476116830284981114427251689579527141930776499038467589613904009507842867563036967914982000857287333876244612300481384363876538673581250917250485915261192636912886156830763388508549798647039113482322731458804022734232818629023035686301573076990792911450842317816076027399938191892188196785031799111695874259711079499714293913265082319126065336851327165902779601775892837371718688525064643631091515578940299577892565136822771354157877060248432396246511458869023970228268100922323565530795285361998681147634324542401003887818974283309676158309591475636897277451489286017354705678607425321703292234968093871424509358144739167998728688889724019070058083934561179186379286523927596195175881761007789739221382604128109781177668947812699333355854878498386206651946619369196940061088667774098508420363237928638837396572243503841474459707339352230070782870272215537206940213065724734549986983967253480615343343822367603370004163575911094440823774806852316088812764775918085834199689067975277251607142222920932808184906541577857201293940866716900015955498632639285390330226753873124056149599173403711895149965650579834309548296861454604906932423024869775427615652270755009619655743650877003001956464701489509364697953143904507893490219901750332352924552203345973003684143253704994831802248313223962492719444955841554211033128092385963245643838732341156167075774670021183461427403565491188540953709283754312799225966060308065718730322744076789305966306397308198098540399990437602818120461045115200615419911687434930178297972480202261098512214272525655563676982174127303982382646486926986188495052206457149540864096806841794418193298269475629288480207541335618730139002715543277177427950632680587685383391339931144541848714154337425107328455549029948981530482618671001862761007804667124766954024240068912027612569974224482132582275218036646826091967536627341522717764074217620971358576012007748351512130467027735644427121437015584645112545500031535654528247939783288364274726747213334126570778410967723727855935517761274984447140586490527237098129090665884351977996052037385201944801293400541296898086130625786919592241986745366957361511786905510890675664706610854830018832939802646792994750615595676245041118752326754002268338779924059598676916520283454228715321352774378126144533011701153454403180268245555611438960521176679580973219355339601395630823466787950175265671696414726708883203898775562441033847758049817635412981786959008316072562753717024235220017925610569221031590975637287797368286973101497809471970131536464962766611768307948190620272137352648584136866759934667144663440608851744571913112068062388319931730324104075340573150711309006811895128260540059819711410475904456281421113857165771240858919834230029149429490923420619107904090949406138656812746847022911879503999022302564202701621988840117410453528083963749274770988027541029272809616142999704486061743478918196852361424120794513900774699376121677638281949492299086086964995690101164277836073623856900933495122452465597033960638370211231820113683635377699440132657082013534871357976367419667584313860741727411813122051085996894602991634913934063285203873071182763766054091556162165796561081943810009787966701224080122054898653905359117153362292443789264629035185158834489635780846529047241005947324992656576093529007485965853923136846823828863323691858768579846159050281037312333689790335613021205143600620061363878443878477195578461481051923320601500518244954663986821893669662050252571652221521125572664510925643628746004572545712147085063840992934087598858604966991545235109746414306965182599312061051909892644151028583869841007216834042105550649243004460330358552968161946100666472755224348219579963208297664064435861631001963385139135544901205622367423627561739656427391396039677098059893270064541309089291127308466616400173448902769564206501988571555607305899620192746185444249208639503095237940682846022265360281893810905976631689443175499535832082274868444761182644276647516451886549687496530083054738600212439586458913063602769172617733696344830780097251725546989960446116450764743564647012119907743109642358711998407158630856162264634509315665301143972852737674966614671897536806837290695661885905417890631504207525567328251929366270571420368765861283245802835694975039348042664779748253205108721470411478999091509069214237572685396980055388721852619507520657356309730614341647189358231813830492831129142718210125843405008458735309773222590547816566112900985786211999762044822687117426391326251722128581208685579125846802332383923692193101140862682174930329771516454650397465414053121674036993148004769431984716158746110998444698575053454058866041071565857081716141718361144705896432149816225766295369189657807113884685346043833827409075552119168136631025842417097981005651536924903321241227835118917456721683569618778939010588047977456560895254114736279099536261952794030655040641315548126187730654419870903354819285316738368555676608171236812988148909487142460368657180421106695284055818284828999857464583584767628727369334277362188124162429507757674406068834522003208717617866196060995231317052406437683357705110571041428596103216143386411944599978879966423651179283329576712812127763355358236088772807543334625232099176645962913895372158871024117089879388173423648735425093575575355535435093170137564896005257287671874572443431941298325656042570880328031651065879897571707730441983958878182863933883471429018331747630128666170458480373480968700024708168475370822466050317516630179926024000795873382362687137305654398138252978548725366041306383320459831618694975524462034774264905759755099797834274965020730700104438920259629942763986249747438346153904835797228254837723968493391183177137389262949575912955175575540493588757032484856837660058497939060875237573517183191921364010609174687246181551806541206838238657717440167167455669445093973468566464472153771207237358339371112631229072605718038910281906237439385044978524316751064641389951679638624504458613586881794645674110584682989161502134734208880770051514059135790955927805495134863780496867427304930226415926638015093227162622788191531755343481995472323338773776113617753349503909000620253498632388920746884615154466919907825774045400265837595297728987564143411259688110738418768974720647563350496840054869766065196202321578034861827790223354387466227090202794777609340142202881529147236415819811048569198347150528759429592167025473094617311130838319154343828505857368460921362480867187760133066626701149284226312592534923950757204578470498030907264111169136451143992610977202725531603875166442358673876103069231268125619741493055939077053032824941049592304960491659695318509369140249531537319927741155780220037395527012902479851795325665374516635693668948152376624923623980502438751944497072193523111085738975067436155868260401245765255882239934899624251238845943791129608329269339931179520424241086381514633347373195829068697761016269712531642174451068477023392023195175004980496183439841459470883740539645697085840704370838591307072516043116277591864003012462447630077621938513134791020737208849728004245330263240953987712978216103221245054062556876217627828964520142814846199066972834703383251945689969472137151779359724590259838562851834275771890648822619584945233371427316005439750270192482033203568331703198781988378684034281263504249890248270877023429414244160455899424891843389963522986300154572949771379208026332586662470939433960437513181174654436296367948967215534172093109842312556191456267865317042699826072726059811748363306195491661317735494179940430511586875181499117046637978525681735487159800632520878984912694823783077061641716889698473585112946997197414047594453981458191244995524306209528290380632284841767026732738182027218681681237311419826636564863527447958958930296091141351146792290857772860800660458170391229503395835813060787916944079004360911356776046034421875429402545343727152455098821738196613699802165015365211075725157642443532453927113419119468929873531348568652113829962243529314815409503744443085061632662584173223137972666555570835765045503319669517676297543432430454816153652150748080874596819512838302297307427570517469275497409858499692199713631830619232390387577541668766666134963370820089735681655553606313247692483983451461601726723164741736323193124037566141892965614116969730772953319093315165085638950306050804589655797247212999258678194829966312985548226572712312951676781110613035482971797248759727783518020765831165099157133403395946530286458746951389812261488478723745257061348214674698869044391726369922457114281067529231884894750645410677002393700758965539831501725095739049687052580912237936312727958688755917520387752659532532603419243158992912954176998590635314081156448806474190329450112623114076406978107017413630729994838192559799936470522468463133742517986745820199657065797135335332778735416419010807077512736103966210079408208346799143934362066905714262370813047736142973752456671331074782568239837873556716653584190739109413483770014514858322607946480468536144078297876038520655403827783154252469850014805195790436523009412271025073812678995963798096248160581140358350863258683880508700211930906642503606478451352805097526311844536955210400074064769032297183203498223537650909229364619966126682306920399237666156531648823303432968069060824935886483524946777257211278094285396527519350108526161583406050827536591355417538561319596467201038666196091683453398453198203880417352300206340353526545688649265921183502694605020952093238919430592728554580243657206614892061801601803644028379975659486324855209908751026611334196271015564997028830930302016467120843377421463207740055505270261650163490251690021077673932043752495953674110028791284281565581285578916650940285648892297221536282795555790523614492251691473967571042744264651400645342908098215339900361380165078867371971289594697985706437093110995042686515772487979271681595037366245938108330569953611216856665216869674215474225287373915373248192398665943066187712260816249583625007409559641479082571308348001151831757734434053303950737502428025737281644723912259060611961549460664440236832538203737865385161423305014182609590672286934230064580840681343133569880853061887717994654194087007483333596167551176609633903209481465670489844540603679513686064273573467760663565045388225374759032827519267574953357901466185772169305183796456873544693884871331017876391463592312170277479139651171770990532263471868591828878740120472974350027913502978241191640976717665115464919904128766965506919419468430812665876440019491297731726352487642715066384615017410380648967057518199430204573158660888327697345253840110864924438932353057903292356111214152315656537150844400627617016264063114799596869845927981016142479136120139668476610891856467062658474411342901995434891419836169691133326114999161910619956111812646826604799904669127109838412196351757653030995978185866721032111005662501948834059117989729138304170176433788065630036200211518529417657150455636073525411311223856868164096912756931881593271536946968164167460225794263809969166115110295385521976545249537646580117373384270111905649758752316851097908201559640239340187914193110964821814625581466832753212755009989785062890117942591899507285840275789165670230198525098240807117981709430006029650488111513900085793530803389011564062251436936116263224869348935029401384734308948966134702497413648269113944080901890158194388925304513149936044700318243947823933829506859161414639428388565260150079481956093113797646313419595356772212924701803437682202780631236639976170403161563908379159070658525821932721243960237770787182192310544809792044332331961238532692456031789559115303121641944954559180798358295182849148128199691415295634241578357881770205569937625931527878733139421097564858145101831196508666360010239797340060114376706444965208211625320270637316587915528453682443820470194885891851426456547832576063725515390590116956431151784463212863735723707912590868848467298305704120171135545177393695544813850685875179764866581568967406396798983597223516850339530391596876324219768040817746624519957867975132093957521150447628553926152339525265860485222803019061702706166720702213385781932336268826372302122406600091103405564986741713611791272229796677682389041849288617737563172612195423312040805347402845933618562492406075245700072063418291198817044367419082234735448525206927686846986527259232377210042769271440953756221421967672411955341420763005758103553586794652003831364277070553485709718693790859842459947837926556235783072601174419534092646839191125839398460685398311927657855805843235208254473128456789907947321451717396016140797762608140384505648290260160434498495515466108518088617131189743472352384130667307398096243411996141787415298993724354572689731747604909345673240067383953203088021247778569907988007530495243418015138234788104131207172432432593814677121854827373756732905023903583734148677991946875815913404760252128641403292504630701725252526931773909682191696201842481235610164748608580580418880234692668821895342128239580567381063363545129038081005696468744836080959062839320509370560065684215047488004873908045498689294753171521007726254770238752099485845105445403579010408139308341104806152007830151720922244859001736675810666690886894101004147414923798227093829248461499822915033972434142262114639039044986184356788753354756457668969121974373650713711230347879359571484475127653858540424022966108875600202863722286844834440041691977162051426671005021600813879840913240528018359626504656483768375320956116525204635080257505252066813054874308813706920378079297671701002415856595520800633472250284091710349392483514756158151225768203498813406701601636643685510779293922935251023087520967454443474235073433100157199345490031659595358954383583231797223566919864724775360547537042244496563369295009362786090142871309686103306322098424985721113750965071042989491804891691365010315624128701806825669669630250918562822163756566923446568279740281737606604351434393280549029128713584637606502617012005855145992574862923889796019093462506186489138240993881795813153710960687354799464290820365085563675621027236030387247718609229035054176656166774755351129348349825326686552327793713172554110433012598991565240590576820321157234476606316336215734093647571998123939503355240682212273746913737016971776753652624525670955464463693236450799634560117967336212349498442903879948178686799468339178947815116943178626101001904033527969438012105012870172072329624723502833715424922324513761210645325999704386327098810675057191253193613801522576414031758234721264206048061810652374381368731470350761574855700407472758446506607214370637933991639737028240831978377314340878322934901590584185366037299000336220536665229404020813451704489121498741526404127400012224645584686552312792385918178298756802953945867711642968140101309456482811893372427552513370188119782279778628017712543938097269875380145303444299414955641443180596038971084043003350476827143511670438076018299913422358637446499504067867816364214641607729737509281105436281838843581036392892401766537454864784231807194132705109868266384699221231286803474418679707567667948450497988083256830726987202183514016247852824780504837368555246347397514299320707322284300860032684220680926418225038033703283220787969921498899078569558218823845634525863703373033388169317563802817593802931266613613090942688966147905044935973822727896855140026960612569045269554235344899352823637939190241222050299645123418022417146202515174698388220866445640511464006150072779257803795538253968258128792187576066265259812618362910986033724707800151274700379849140528883680667720187018234581990967477017911642281801613781689428079507886020750512794166327388526761567130989029532341998306590019295768463078987928652507870999739563440924576544193883795669623827118056803912454321634299021414046547421621222816087233433650759998999594623373582504791930003694807144191471230473083432926844013901329589964146941173733073205848634854806194330700177998540303252404487816476667305544690241176507696094100572139388804213883646065435029052689120769938484763606939837478136054012656950390767563821154139050361615110643528862031102815449532360800377829648397312474822642510051460663520514578728058184281127817748699285740333881658680505930561499209514526988783639423073020903727399528892177144787296973498297834742496524238890006621585775523765711144497104882388496008728541934707452591481208831332589037317278230793594560862219463751339833009954472498929677928459334237610874402492261154685022866135694330956078505024570163810582998190372026518011606751073702197607274166578812949820081864414995597439369831306174998690705124671423102768628934847435399718005637619087851841810298414842739461757720942919469288947970668319661315504071494419558359334513183214162272523302320852444011140220374756823306435759900215951494471447799978535636884619327003523407921755719675153951427623672412861849999007108425180933711251710041370905981172112642581345017356504170838909756468307044595397542080104979614682284342709815419350455627693977570372748046285916012652945253115970206271606596043197580403634285083801634776926748510429714362670409286501880651087898384718434167018158346617949228212689865949330323474500137002296293259809917858832988980865455256110506004637102453304390537789014681596390317866953063231828598214127022691288221848710059654449203653742931385885905378398755639162302792310922968009543249517657791698917775847203313771548411408004568073955994231135657158959440203749821266375982724441687062781371076014218594859352483845682088501806358483363505354711987283381839187775651533072973369231144389301094519492667343296333188856720512163639954178183674114029221940659229365163698680220232057860737100742292083575149270156100021097750845193004638368039443057206762209354830650318083747274616474739474076970217903610254355912027895448685640465805341447478899693006402489254700281293974956935803388426231898740548856822219203058320239197804434235205667195672994556282246013956355880143649554939121189883399290194654660481614091385668276310679807097036191728970066713162308127803131442918874637473594957258212342678902479012768886125464366715781776606160340768694557024048617186518137870465758954455271334569746113107103275139081890609516557787124638393843322459640187031635314162179414120613813675251920984226672141806461651483258722756056161212956273222669358513016439957470456785466392108624714632107171652190539789425057985053749964114712124693795139736490287605076698289833121241744629164194146185286471795653935282096606808817144492371567471678999236104325585424308145062435403708578818551172399390333946211169726258051351552595715263633628808597001140477875667868182404367256191099609692433133454738668780268152104681663090865192211343453259864894875703542702011092709547089407596836672842706877546093295541144280104639525138700601887357158602865282341793676652083278330534026891010508667626433626439778344562705211021653800931495719745983533516298372543591923218910689906167341278111666849335006141367960200593449175382443907911427785241608738603120617993190497893248297621817111573485175584629064258064852969141290398828371340995386108527607488598738140767951115129835116314741116461943800103272682471600996991946187717579790027700602530763567579415688444360312056628430736722861566337020465868622872620668750771590739367572819222297563909341373179359582488198580757869939772078375307017854233113210347667783113280811743299426164402889622038249852647792580105423392008282644514174950667914227641351035850641639117809586329759785152504747433625301637597801631447683408033312770963256050564251300936889173594597527897419380231901759287566371350840055303312046405173889230438190159652082891072758376909262047476740622301848426372484092596050625855574153602960767420207121233119114801151181968364345756014447981486595595703942948811850475943332033918577383787981203156923681809823879961574254048732765314887185191391683141559094648717037118277331386081848342900538612506489986405276475519962313824586834647761194747745665849179729205610984390613253847607489852403016386336197401450217667081407106982836209354163052049951296766774205687243881863816855700119271502821635461888404817908482564858558416192639427010596724249040283081321111080798001884312330022361666942305526982469685074393937646465134018529934161531410711523481837764162418170512308376768034557377323970379628622843809942582893669649064136741410255600274419017511315536385717472859653346627051861443069910336448439316141653290877907328850252083356713589327082163266056552917081601452563226540168638174843339973665338510748183873832189250313524224237215929321082559466142493296795175130975320119719665738145003000451359782023236654214227643342975363647100723998646606303794667883687773589273933713605527703209748566831739781633775554315033176229044299103138256845210270037846675852242539444121385222259642151984034361777915808334857642889406588617332201530375217551142415174515286471398361525698328017442671828734141008401839019324696372439358237435411365586861609344865851838845764940967876424314643504309499032514299880074636157886999294405283733929951369593266308273225308041005259455974200975869286686307430483668319174191862875078550614355644369518056583743568415521678194844911851169060058087343637913626133751936469052132582289371185470468256990318812028017500935683499646128360827829080372200366243236231703250691769053758633898090915814418005071728465850399574873937413176908988032041530906894500965511381249366789551196601609969184739740128596471132699367090951871008470977486342662626035542941011338397003447053202839609731683589178238132583531833803024691822444724721143835470944025962525677953713485464575430636643929755012511218396120772451629680668691000190613768788710699882783916331558263521750508451165514583121241741311339364236131181576258549746734328806140180759966685670892011170371415783465092522178623271667622223926249103276869546543447828683384578366388096441879985155543501102051587148028504741793388801585377623885871776238259764975869930796441741623157435736835552235924773953479919543464285901662545940420612349053312429090119155513166497047884788297538188265201139190406200659636636896776645825286714644440786781134958972224126521722023459899171928823042587978867294314203337137928821270310049106679161480944731620411885163045482809447091542445843218614210529176527805119263034965953374502010282759033355050683757843161573673851874341952861092002457244725605386750048409249674800994370239161229769231777822288078389017546957760192181662439183560355464309102282871870747594605311159733595411417651981734210208921902846736299575662676927661291888617965094923463960206832243853827194204639318856730071002203403866621308728068573187859331909154902607528673196305740557360597041975343519709360279478877157950585804542901807731240519612256789700028455725185447945081055871186188090258569394966039304737390175402284275141621212138928278634482240580375554485414551302780493543038930787481178947233641588133260544385395248127724216989400430017340421437654477739883665128505237663517361884775268939956533216663189128674684870020869587288771235261665157497567142934261609011019622469319246929852201177768813048974718914746265021831188931789641395330124053797702580341089178107260523652811773718364972150528008556861308941016264455234765286281459016476605145222537919830401336107234004775620014293789290289313198868330207867758945892939720518424999097894035936500465680132232552146929149541774701655846951231210032378558584874800992536520230244614471977661128952072865233363763899555067285980177024913232228541745044514389225232312366994433766238560380479405085472000783942156848007386213489352500394786613405935143067600759289221304691011064643557690530058386486804353252015534735073743684353488179341127622350802104280073159409807350004104710800378840658162796627472050827676513524910316735957771215219074192766665175825437681467471858822387507479666564904021119215908885233547875509194145810104330608894633665777965408181374965069950872214449265320586546954475549125785239572338901677599127450025227496722592153710517418204320201361008496206895199603590889226383554145175098138758855904695907777195833243834421243232447901272421446518813229900408714004342339826926508859459677196620985540693210616618563039562874547890083851792809915287205733189397077786123994565041693657093253595675002219426313050714745949385996075599925923865781689102863850022148396832884226266452156754336233732998285268353342846357136572038571792208742669265544463659714627299183074133750328812338870664795742957373149886638101040996063995348269431364087838969927055553838613159701432490164992460589040329147863461604927862468815095846366440027426178101487072976094070720280084247854012790940395156212226004114278881566938005487757740339973330187295137134924995569673808611068276764898563557975029293596342136980000077047213153191218275370599464119160015348979995440201456487355841006917724528770594727445829786160137658320817905522540204363850920024602703464601763130504797084498139776877079452821677376015537417832838129129852293978035659190750729098017226484195644145519073033991913536673152742115205895496219503310590018865829584366947098894889931305439474867951603678468458828200488804335321967961681879907479355875322446640484517369826105092929249822751146379654031973518342233680988087605696229525024789698015926544608684310196589617049045605701504713928749460007832792081258381790608253373082251366466222128521170415999678429271883170695212175158196863999088531567997378646776118693476685081457506071477444699355590819759609705464819540321337420921304065062851139308294245411827255209183731581810294653440398608895496184414313248299470163877085198863089811751472311032320295438016121868118682830752461364365010866309546272186500728344215656040803670635426598215788037413928971571625850022524199653900400120226743296727361550656295444806930831962178886954888065162264240273933372346372634484332406086867034339220403419086942409127232440593933551101246622797206699095719240715863921871626083961950675738226885533932609170908898681214595998552179539849431509178460240969359317521342356605970433610247032581585173712104559311918552398775000499514471898190173462740774196321130652195840618157023850263627645319865856836456542732885868195406041242797860417662923748677675093836287519143001689513311426261889053350337678000777954959568904682304507621052477795060520466620984371356430632874388747377361656784080292781814690652210327668407463763926442629431485733371138479135422028038251888235720283067098896189286146850269043757713151056314771342926080491949046205766328991400381554866030211907612536820050407719623956460285429064794266067554260999688858233587918814113944965718610780837728909037096605182451301545029721641899048046725079457818739351601912995013373626375588612878186589783466525114906857758429538002562124407054594627999261160480056665334886449375776300893647084147737157394029019530752298689968571804018950147962205768687366755171912161645732118402863374210799135234974016951917790204551885087831136752169380910987410570168317116302540861672789766039976422976493314032406546173247686314535536944152627375215480005163124789747540570444713482899140581467988190195261369535862071662780419051241553499384903112517938391706514812310949658358109724778666269242790356441510236208261578181994200623258932790476432857404680409395259834560144219892994918026107203372893777197072668802485516438164591450328373422574578575088008831586146666292945412442827678004500987431666700147282479515792854869450067344476113315392539648418757135773181421271922134877086475854197705282884961733184188397823872998652030231011316776846667633877430259816804546430276666485574940419218739660363046959514484335507655656271321246442733905135870901070381824254861112451508197913513311015841350183941813276802338461942081360200545853422692767230283651856600734002305460967994583919694825273317132479640612096246654448634414437230898770294682243465530167742611949865569735849476396877801262942701641095700386130895370516409076569564177923837669368831060138650928763371461076515058889815022323632484462423951312925367053050887898016335811875545797640749126811097336100175224728644993271476823207974209026026785431219831599065529428867980725381732801719986534811979012886364545714400653218519531407265400243741802238640699797652145185052724333691472579469618641285601879732520722842000684106252007553810024297450967584426172510192554869674960671279073519420486187629522907407794009997589268744535102523727991528613492366571965812884718413088881551404751143663358258187824440427908518052146466842378171641552727525966602956462991938382338007948205230117375388687349492877385796253416438353485603376222084012030709020696724603188547390653106874167061465798027119859140421813014206917184909226324513554155731126599531374326097590575567897076908491085444568299770250688984664937238366882065539971645953992163588215091826672051470458482822433683116158709762230260291270093330167509795346947302112119017683119217767584602676902228514454998082334109209420027194716100181279196962059673944641987999847719747844005033741021808303638769106101356706231672512901435106577792213661207026648060222308648987991930115062509773570525436750707562524123657413581503340322616546292877338745229150435256620160299997115235250198232152525969748534945019639331613907872941021974397062244749038184347700813717259728148337750541533650542985598733500441133753736057363908296530130037981928010442598960837365372188042610897544506933198687221531657493234697775767550465671160900756728214585839082139418244468441533657539472689901955046871304495282136497910477597987129334510442862748033615321817014463540857138324066456036125235574289992777247066153918088334814228680505479252104742706222910350580564291622510787017991575606649331499809442800985543260832968814550692982715888515833006077459411370000968328637314945888666849862255227204245528279774323988658261167569761239374285192204215076711307907589258452934155628783635965721765248545706365515129524630002988725074881699973420022128868271884271296976399678194200874256500947907545952077533827744228594971148489757427328440245784310719466563642715212528730079985048483164332116651658315719743278406960954712644696522187095847463074441577461041718285193446651518518428745578254675348428928730677132214478272717848410445794312704796613825431512361163018319330912446394990823622263087890593991371225315018201331191412047991850702625185826834433041463191543932136204205986988892647359835692443007147922994280300315960054512836611719663983907915486372416519893595514711154643737231733762856918226207929329823784764941959087430843493091342927366070358767319773945946743375453881571387593229449597803974308754743258440269044121318728767602214974022894694666962409272470951296694878467429884482642693379908466089651373930922663414659455570267362603613902425973054281762662171224332317230767645112842758420357473983281285326386487895417603626273240040146515308693856301479585049709347210691274322762437878770441570794616101619928600284826757338182801486611363259461260894848141301834860193520550652982428589621430599939498589181274808077031701096929082212646378785900314322490300054322270795626709017972704128942331817926014691553135763643719601845249734313569366191019937302806096285057339044889132894670798020208904347362755157034966986895074144893606746232280590799961976628511160104923840722411345795435742785180759329194348714373649572956686268779475363884281063229277034096574834914576430664611505709043443343754522439819707539009597678289574518830375731420284665721499679190516569047569581146119512508660838747192112824318728474449697533200840300803037814104574956411333544198352565800333773954291513022361925354224450366686147230964314668361528509146228652408572388198774518578371198265014259269384847806524562438171381681545168626567491924187797315411110191164026158755492019924087938591798055219801124053001144118793486958239554246416413086560771824660982654809923374284691608557485379073478222137246518771246440507765676341345290205919800033374891290107630228770500699051024115479462238931030843240739693182729760191441841930105290481740766378667109838431561212920648760896753205918391713286980645518449109419439902207598617375877436421607166699612895379039669359052248595614554586697731884265889746138525600429758981514701599239001400082410327015760828494531831816660545521730227651103894010096980895680765970917612292268316490174501356571393417195368363285487735907345977726685829029257961422681427224427157237898333225679102514971012306414956290799783052799109855328239879090411751123419218018688515731818374632927485633829475421751084287432864982769524599226879964709740191199153555952367352806858720659287144375360904897868733087902292588047097433633226992822759505325142714604759927645340168628272064545155326357066129589380279859763176192610150569610640821965774258581383231521386689723300201413854937939079979983526038762168717145452046018836888479085881676329714275365539792947885617336860213881478180280596471588903255334148001698457131577102184901463387278426377003566203556470466454780577806514375661820124991656862440046660419593767750395436466956270416991467852676526808862937430111989657798907717841551125330734359130277549297285231792292118678685101156647683224857779638805331130143493378877609850881924037717126773329999329303913064023244689567129264991196614250507283526631539338538304541717992541743235110080818191513401787016082978542266785581422277909609939115094607421636652657922942301099350403525905100896448764530958919071014834661769111429049556924467323206813799889416768113900222774435891239997713178340076101208223876735165365212873435339261643513788697902372451761663742347083156387258571615048538644896602936341281736586802861560843914104294732538186077413831921391897637109565955153439470886729200982048840180117282844867328561606720266314631118795265485647747463052599631946010836312942606589655982075272092725733533737281810331347416455881123125070065096036616209973635704873049623274816842829902047879737810659251991310315740387480019655872505955304192927374160491003358968459609367918892932046452089697855810641790150303935535404946188346278154011931303652180551642383578816409604527078402476478878533851961531694218489839936757994807249492860193096884268434484556423272558144542419562119669928892945503383848483037898541263214879891076372419705684364124246009366313156564062603513013364734037520930802927950109368318525678289112638033032190144292398637047584822775838991491727606072870183937615018008994222017076709992525683310748328616912754711471079330259735295866903507752336376405262908422528298989861403727536602999256857046960101246627935406170170401648855852160784037062957275450642874824503554876665937400364372518396832249424345909521111859779288109021646639425900674345931628066993017855359583232503658382719856418632666159429233028795411542042546273377985621758390218443535176586473497839593839998694743448264624790037556925504336524529537730004948497341470654406314827055600637216201317795165079196203212485866033485380774159830738717281622206031070032263396586412583600188492299187805391619022020869836723887918732231345647936571756335125585335580665670247944598143069534267839412304656013153487060252165904648786165243603541159431470960200711912821929950213782041112068170052586810996099441764133404469274148549140474609831873003080912913489844243205299729016250440957412106033305546430063049344080413788480449572877234457706190512708194396295810799101989744671527694152317071246464547281220756655108446601806867391979929914608434289156222953269232635867063379739479632425745940098585412954189010017012294410059936743888017771520861788439253395064624038059407260719246471132957133264846611345614281024338579691962600716115900665617134980939801361897245229919015475324985038331695900780044474808754294219905364996837419463743645432685283825383094093911832441744500534404016870858704674180073850789130964241899166270368487976269845213162458245429083854122074503434524895252639164098877552431274843332149936767257336727083418125444480955327456314837819604936723438494776079282845364585646181956253541530848634160225458475781134589468080680738288685496036854715216723484539891548188656502580217088955890505258580300663269653422729059048901411983078127763934068266791936384639202584944566832312592631785239831705368995841142194180251603966251036509131422706830501620383594896444708412597345062740892269118289039440938065635535605374591206545095956794974009456911148005922210223715054039321244133933223585575554170532348968963785936427002827866007392731259625808210799370407424761645104836846506848629316413684081209149345554406712543509203924044553680200244682080704347575162122874369788308001339456292529263132235734126951924475190268725777800212742153816255857062812445646569034945301318340723440393702073979078980778701482611400164976480420311526189880385603522583761854893271888534398043261689214942128373133571085062095570113105127060280096789978757626289017409718852508941871220110647013332793243165279135073612848810530456083774798741547885108979095692365497766173671560617250466443585262481073124674485285796115185472712976683867136660712238592821628136112109529682227496760272372760809923840080051062884012133940380475503541068063922072104477919255376457832001826931686067237178522407870582176545850397436421680152556208882892838744725316108915511752682101724097422983025571187868606695167586296127849795633534653669201215717488758459515494920203605403040284857848500724393418388074070661192941140431476854575760592514139605957745042291543855279506662559024082280847504513900120308066260303462784461016500726037957030508251565319640165518176176189821270659601650632342852118532692994148579258563789457088275721813658390241007520362172632817835246834428535222013426640677731704024714852933910529150291252993014733877007910496009993326811293225909964464498965919822859458694147501481851406916148425146154772093622391362318644238984229154997471621493334118966997998521500257513084367460383469984847771583007533260435857986308810856156507532647668544588485408569751415412022721406406501055269100463977020811110717292951753507598219426608274733286315538146309098315419806686198650889707408305045740124624171441850993956859819846110784538104297066400468286537812811312235644819229801996641254254441873856419658372968411771832173747769645804460326449643743669802595213430507941242399435531879191252612325379200714067146221289641579016291024138691386484724232949919726491045613885408996840534955343856278802520277561388078066388925076607321890419334391410393837066579205349855664338750918419412216129012203646083535113753718555049562352814606669881807228472650816978860837419680498986136118904866052622126262332792306836398876251115393359112290700976122888832441562431649515429053547421938683766678425947843737822067349841401028579012651148486337581987794465695379046521510612561904809457051412538392904399764518294519940740424841233966144115640989020692836078388122210980992011310273827976389390873616033392753035159677038818862028078063932345662944918891370988859829237637192677918406963756266048080902748339255807825980189697988625588541943911665644707424937485868563026181576093924113307608193141050946101013917215768698522119204498558641102996345112991549677332975277001648124887276420287537225891949435198633255902162342616091605815284736740356502865300752685941043956607762478839755895812406493951982139216558050635533633387445738270528613037017353498768056886706824770763598391734333144588513469467576972395222873986064584865281890170732629320534815236964874757792313977897921695624366994260715143750470657366336845639080054993633262049854659417486777122170827338065918205293726361662656948298285854943190030695651928271011091912685317054782038206128044383152523829043126898238141357196488099894796628628148001142795788370056109377201649643295838402885341728283920113325048876251828375457268320211315903395182173254815223743065421467503351329714562304120556054172801251649739431363663103752461339574794992476293853643282115369691716318062152078080053201543881733688706081589983113740929564806214991862177166448342673280612493765706559702198142596371758157746551485974195336761835890536909211998398210516599134248718532520480941416777140955198972174580325361778479706717766199121960527113680456525385835720065620352723346385406309742240912932815438938717193113478126903238501018482569292864941284401049203045177707621585156865644034870368523686308648575656323885306263751916636361646385188461291704568065941818260094352283256502695535913972437199104379798879877076451123613232446980431984084529631028298966887090714342759564420847733619651276208464446527656670836936485183063134196325525473105079532016478870214711410998150473852619504001609240966059878906949354534226709031026945799691542233790542295560805432475867703268798554296652771048263214545286926496375821240119331473349483265231833579974735015540747331265929405266431210976302755186473395970250473016274459941659398480971363420532752882893015121730303014970294668954604873454832933419421141449252174184155066153527446908995511789116957865301930255060695557576710130494894893348289675079112731545200814280827613411342627141025501828128638896695547686097075371997706324421833865706854859265538225410243072207784091495414825672035576174267112121617177469824924898094949974205831691019361292845855964527039557598827604771986678157957821642743717654465371438072538674808548341240682517869436087355362470691183295881038205397558159062301938749330246738616079706929350927625095216313881234226306014088700969879650766183139487221283200604430764457323179258935539868146053644036927693916619302158189692627503566414154122522336083914042988430818344593603607428080431897756439462117253733498577440557108264505742007621837683211911546709135845080320185379866102183952126281704132113175588420187709387745148733614584999312890291976327290723552320993615813538242711825337024547151151716238499255075326787525528288809995008489945735132949416857624261927209727410635190959298302697668211355380289099120478417242649178826385661165368965864220398125821024392578466372660998724619675969340106796108816657420366869117538286435496896087095314124595529006264858605498158157461523319506098421382184594399768434025144596656961438637332340907566450229646613135457404576402069070691214798692087129356913591861588097720302933998425718907456669474799880068641435518497638883484228784047563494762547540922051888050031718760476019197847839453145220454000309736015366427089084478057604171145864002611711696215987021030565751410143597391062784603706485162454863456652020039290357023320062851785781862344060174784104848356285217651706710992731373963477797935828083268405578175956583229549969682398730525871459930435186048403036751241710310824788242854240503691848486764562564718912094428192689872637882229959780145407561488010420717272241261337665021184092429465031535291192993092119981099339424659808195603086975609932068192595509403284935170837227837972212756667056743094241422605219883921954154862062691895527228530469196740979731723690045012059293948146471604287730451996965368152733357463378315449674397671141518833449397546062300765742689460201613106742297848835915257329760364614813699005934594704024234073990904521307845010582913872648005450356453989959427853274212172614337036157308782680582750604057059565815085872529856877586634719890639128567506904864612446372504808710550562115821196467824709283198645984529839829862330113674797174514808736360196028592936452159716459023916940268874266816790406911710566314456426058095365770993513844253470780735528807968816236489385822243657440652997609050892675201133953251677270536153164660957238953695053863040649413523102815272635928678579403438265368080735293201915054705525589316749631427143497681182162193260361087649428898231482672254266649877515976537713463842385369059218675917516538780227141249131874331247815875047628114958446137814783903588507010729301341281211301448947248303583264097040804883527837705911440375081583891976032372831824027878829585360614410890860889702737498863890961201446128001936543936352418209539132720072752045185974806690415857113722440497863342462820715911082529876031214935866908986641935656883945538996145527620461525362588173465975776541467600577356841427951539647577411025853044376922496711106810690558577079722148603642458416190574330138726560222100784865719459354140574236681090981303173678325234520749425966798931260965217785564262615073873910081953445064944486548445435343284741336625426968230595756997854610672200971523325474639927821386576132804807398938151722948797013838076453663016161214774280763599470945598061059991336627332056655596497013870299759202302438264291904548214635765161906150587277470831480603363556248744271955321721252160847449572075210875366213172343173580222193373339649405788821305462080539950592125820885764210547306842831315005796457607459195685832745950008420882350723595613847626489114070094227914090477066507095184988108700237110322597170286775830325802224109566422286039580291787344667900510556153346556236403055787179388516197406762125611394606896146940881097811433280815529709204304229611199783846673884749002023550834830886392386574000319801264087232661139990253214324409052764098264511218605766545951075713607113871963862993043668453029752663612182131095760772276406087559083699371180326963408854954872134013028691655006515117787961195715286312200898902660504827722901721772460578136626508231611396560161731382022717390294574973876760824817975130136742087895211675422396502093994548819882064544016384531967076663563643094589596906115243691115418116069612320076880771303767998702479347917019079143460829532157963056631264033627514477151754932791626501752389187624106387493651003851526468720523887454180850314794250255727361152393283180334093187529353277503716441497146727592736701129398112912207182267750988466366963706394343190423926028748404047829648083531292460075189857249740692939618024922576017868652787461500182638366553354959345072390933259066293302169563423071931767115443935304929898921035520917461299542644457325196427739062821545867052726594316491486166739165017692744813984568506381504224011056541238346548268977276144395978355846581043434646882330838657898103757158358250911617987402439803494791467014853690134222550999982688055868760334647101885419480679794779376465298733460437789547111414973479487203907932290808607898232888397526657141082885897774170121496202831601647424493470916127405204426275294738105464222478786265624381534882738095520569849607030938311365539491291275764588246226988398859741744259671099707714932003618860196867980087416154775468402699672727891538184870162162875705441678381429572365562544016509697673728109158279253784451856087854955966469720698226042173893494569563041908682385245266135273314406234168004977669495322384640025882997108839850493137676966914492696681165605790763178714092367593951977216601784457894365253214046498299980012734328813504876426722027716519062564613631914406417586381539642873730472756032662293888466161397202666481487395741078300525090348993448445292361178323272429681125637605430612588758364485743897518916168002933598255508049191038701987439553563489771080642678808992010665750850339214235948777625117043120611237946993478385340492449562975084733111264768342779270578319441072123202507799590339645603661607193079911086887295870144216231508510940070720509503442297430497082619465083254209077191621861905657649466859122801724665944352211118574808220586174549030617148655030045441395424083060147556218823786660531633431925503591323135725472779583490921917215107179100781862232030418041042879734272274039361494627604751214471508613599505461851574272623440348703274979932811443570481229346194964709893544691165755580464300461836665547205706827701253107044026182218809776732200839438241887825625963853124243440198325390343394959505049569049139237214620408511611360012109600181859775012338269494717076101762681863226604609465110754204839941486766065411897532394909598736022415143634496325604387862209295054073496636380124925236955313976236798172210234699136513368798939855418249153847133607826648654170494224032668409227572686307526184945366269322691103673767032137676041292909878651768706066184605360619002041654295340572329655041033451361148658603767632857988783701330671915020025833975113037583984800560854531838465825481239689648016605882485145023878086338260670835677109833329385811115870875855150416920037841022403515096753745979051729582912104617885325273404877073753417558173772689945435009453837134692269366146852933740430482160943262203306029370511644119067874820207133778483728060179105426683628985820276601452807173890204725181389627292669293868332240078247988196296107276490310325492763395019332302691844395183592109094309319740133948329387861442350568837994381969001329264679769228829939574307429891740334211903726172431004974086835832811624900194112053005530655356395592630800106628823937642375074806101546452192464692198376405365093593677576039041950949129738454264991784147224425838751194753992026414911248681082174911969312249580259354326533574820422594758070070021102702730295740081410498932949437480823917417002701889623564524681731128066944442492156115412329809108689685736339631527573276596775897859694978710082473566995826989758943133024420524832062414720134958888635469863755644502906868826782704888912212603490341977691746748039230727148832534289561681586277479427359431479097243660940470718774154961586311970427723887716152963647602253022093970887216014350727952401494898706999496870255110433093799695438305928298446009855538552249472624044313322734183349886983094214337234640510661097916295786929960472369855362360784278395610223199833941435223683516186575823954353740434938700636343619991497956701286484432013821745906507778569891022214981754625055995200151526309341153920268399235241525495258003587006711476831705438885581305599264885836553646890971892210308577646477015567867917341063084960433486997682515530521735604331529192376814341860787749666080011672860526338162950966869951994032125341372089853884698346303447980542776637495255618024556678906646470143971351396227192123819924998223549275551104762354547718535067291240172050835386581872024961629848992397641372049763925236194965202179010274704046348737398841655927063147577945395625834021891713331040595924870032788514400448578120609453152446980816958554868279070200676440494846816777695957098819393661386188682360616809970643703297190086396411976318934538450410664905756576490579535328252107748653274561194952327422459610604833751851034310485207194494211522854666514803768623041250914128073585205114077097631680375863638792056882852966126088812090428738699020082406043196361539931091020913851202510098739494900554609568140470013361750429673796656107484332921669298325282425287783783391956243120800654102962185322434580766923587527814732419330384215805692058617032322805543410287972264385509715997506401318468889930790154819107831127713677951884240341409433556685280849945425098386069000119643769353440629186439220315117327501843535733141290193593694812316073451780903170445247226834338787304763952267128681767831131737599504300145635452951200825904030613557359610438754688413139055910478713291219076722462803867989205936536514860951048026866291937650951400047312340221672885005016452144866296515547400261523058463307224421751246216618215079328219897660312310228614148436614893239745870612918518167166326119135465639656623240993728570019209225814786219265584742571452533764950066461301279809750189191262078516764684018135659727814804058225130049095029787379763991546753579651560374568066172914707320604132903678812294328775091126438747448261339084205560392153371681619351850919014048294654251903470129793909457075981186768924535806483264081305688044667228067574906146196609408254350842654939101233421757839345092126916682038253983970769870618690183328829300220604902332872580515144671714998558702564356808347936769492467552659587085756373396269670903064629169126385924465708759648585602263923639811203064525288059040427121665964039766821064758544823245199584939051733993778286426919582913571775090745771200437447747651538304776261344522893139775265145770160638259872379564649519509036215412240557556090722330407248723014126823690040036018001741167573718244656185963625758892731540587458103116062160441571720561180833459046717094173823480881762489691413957113437972309660262519375171419345600906145671849312065750836328866593577213362644563992686120481330393772014097030820013126219136825127586819387314071106477968081337345175081046882736705454801258355381818453399015578430916834473989662538403457793774839570669600242791217526219526495257301279114350490757226223083720928048243403288734817939661500876687420422109523670469300406655115322564999596655681314540830855200966258794531112822895516778379740959173669130286841785985503282803238845156218222034756261004355813937063987999351581658940670171747894955067052066428201817519698316717321751543595390370214591935384189993971468888269607983187266479931636829037530998946733075749709142051699716870456323251551913061763669944349184602132893532909172703858133759900553506519646123261314172306763319000265207757029417789575240382776573133592377271445011548820897458577430420151896149162886875939128566206367599099746570871748407031263793803173794922514415623342133926432917270652842949350432891807897489016330693393067107785309351867901048485183842154529908588265435520067509766426464328755020451663575062025845780499264092928063515373951408482816153207047055486411985578767583684547337413572466381280691990491545939065009401793596118570531396955696575504796057484642317533157152679616636541003731859645958363787085405441777261748167774224268158663107765270727345607017329238110844435436371955614452497252041329044063722471948657819225438166777780515648308295852602695676807894089402194509745107666610886624154906478207154695647152830268753347435893595654043208920011014463362151525293624933551517079418104374575355272460783366876047321369937768837514919098456073750842297078529200989345992094310393437814606588994712580756276207176084987374642584912343199155434190187499586053732825901020970712074136943576686668301725463025339656151602375789513592665783522669326630754907239127041141883842603972546406281058393354199216730523926534999426343072132776378503325701080171086302468637829616872747908317322677118643347653286941481446544027569682601356774078873596753629357712827559595802202422825345189807119728356878127543381705542734246767919467117542871318053382550854900770970114900145479634867200756993928031026704365512643292752166483608901091811970836803848714616243305564664846951049293201656426202364250127809166560283646974245495698100970628177534441791894720496829078940064457556120457936631647873469245987886074474080976460045788649596920847629297199542371476860684879562023181572173504426760812772392284420576267428737021081247777725844345159803436280154353191527391011164173830657912337632092534517950865611920853929448894535267407612098083423626391942623635163086509766983304884170843166795790881133569483124093125445679910467313234468604073466404753717337858000162923264889676590241908932149307996083710141753142495546641788238205655788822637409369749414749070014027693119234307888658044654359098125260812387538162624736707077589538946511729635385839726852127502271224869823198231208224381075630543820646081897799967406241987921012394757005422168505048382539497733782791455437549562750200427980384569188048189767227095106945077245829832434965762415845721591067628699284781145159948055659967551575685471547659444221293180076721611995512611910732354733544137153354592571763135550477097247972595141740029747580527442457613523450975374577486188350818063948455583162536648122976035096873866574763517482550321346095959762503759471729444122038936137210000413950411673222220661859686366262277644140869510607868465666182157006077338526261726377345364771293795237765902427240718254497059339711157373524956979088717377476956716197299897841161311157926187553186088167719032168292581530259251331268374233939723620473692961771674195189686342177783676554574416955899166834331644425485166523297701081873403739103581078453334135581103140057459129606290453730125995505932545368065241725152886737535495086784717003473312649996313120426831605003341424318031728988663693058930892487776957374491220242348575075009245244615254735745752424358751447283989428051660009820512607623077224025174993856126701370131683913785204134680521287039262494216407609429486805029837742200486463258152249791200561573097427119074124779979192760266599733784366396870201356387294427865201040840163016031986807363024859668257987492366760947351784933800414678726368402351810432372205388675488463748813297803536351492833618187518775143532823555586099485591820735112714061681398603980438983877580610927036921703974993691288107002756552709212528029378243523986562411515824487831716451806373174142101390877495415572604086688184494950458748333312945757572181957021080835585804707736047244624985041385890751453475924372179809619378987919565494020806516798546477961644628615233884382554682661753921603874930493456102110850141559817836695973431189738434133877451730311155240535288260982162559538836661318012801048158993461332051989291147716601245555712498296300419569623614277507102649945337473074679835221027413557762224266334091877744244341588272792550742305701756030419482185240931347334229601680770459353215488447717314395117948624201001879294019471170045480441094250757751423305741373216526180844452674546982849686262462741346585189881775010999182647395323904560634814485028941845782807712718163363805142537450088305555857956046932330053148589235278986173578037874621584568144302184445126604024452232293851116276379908043102816704439963150729501213548427007184111700236447042960611810962400876007937425595684108677343268362738446330998018117902510376459491438301944356594708177020463760405786330242830215457081453352181019493672388392776672157325881789864048943799000724579357793332812599013725748820896265038556695851207587228663875860400005133604542940357032989112312595734330141363583582214214565515377721625697945053996745121971737558538207940006827928851451040205429955299332312674461825298128288036512097367848192939793211098484379216626957230994096222164741406784860910281059002849117180139380917737980130393243038993303462874706800919233340996788980867068460728747459843685602504700233475578444748814923320937603901337184970011409665629133590128310082553132599980592633931067291441563359505008352776731199635572571033754705460093374716587763857629175675541721309692439255144851930463455051309089103619129449220837386511670591182506148214254936430054813975207336589909315121865491407334348660170705352952759872138703837558676835025562053328134577288459774352950057033564852300085442319965360253046563475254330530241729002832581094768057663478212253988977684953866616291105527648016375702769093752923104053317009166991630573780377155506328902300116270887537946021062910321357870553156673777142174794473743566419607617075279027540372371851299560836593836877336879340873344516255011744714305454158620520623536175611584228308695194084911250478704153895984507007269758589249188913271978190140463047573157129144678302369543822360046163204373316165793707887923632500236162025092430329981817818596705508686501446835265016248966980994308766968519294007016594596759137109771928880845049734187893362674250286419258035256759865546121527586052152660282636345416149673898124871003947195510521543374273922650792923341101996198359212414498245183876945971370518524837644422434245188173742222497570477006954935289006440265135731444117198835488833897343826215182224602154505030263482434023902680514902028979965424005802464623116761021710854451204367167529116337497084588736293099795674910793975679670552895109007719290781507552726013142723142740222718483351272814083437941906376245443245211700737298667879644063711318171464980429281328456692741882515731193678733676756477271019417495907752185115093894686871010859891405531362204911916613377175323392775765049094560357168913732101887705654668339238830218192384629512865188574228825951081223410007888222134367592814540450901926134104663517673797240650658382405700957933905964984915292145196430354569338178828604086858835496850797937995744476791062986506278631601263559071416937510088042731038668943081627145523295488282352551918983372485574081635517715804664159661630376847189127752526265706876043154240994180443782278059787856608689060116509247075939647321901947458277828884098647179977747290688869685781233727256422735888807647838878021814684294260520134608776621236220983692347717997775312567925676065877711084582736398397019417977481961889154164189540640290709045551297987406527438437075559249661211141816559174912018338491798072954297301750233374678547033219960361034851239819962067095318239602659856525295250231256707399762410017276620775902433626620108578912794526526900489983479526463505922670964955695025075106451874944219315014271160474052200477915095578699340165949323891629055266505173517725672305979528883692397828076030476413862731301625090481336598449211271633873058252586817727475922794969926494104213573612148334848559688711948956196016203600744221740110911055947923270108724345485864975101154290395372332069057339623492900574704160323283907756529314020473593362561921182753543234080796446489039773979251277171996597792066849712925124665571657612111023352417719635445665711502586686231510854888956212298091912964548719984948109451500464534749419981471750478749085691063567811954919134683913654599926373575155946674605007117599834793570862790887946765180686696655710482579780097385013009276559685552225948952116603651365472175011407653144870946584542002115372274376556133694945425250325096402766252794694676376300113613114315285363786183654859858378122278562235530134064362075713623163712071869942860491542379027468734473242958330296604639067166936764237395909129654595596737314996002920689227371431542176293686722796232377409955817027519700095622831572883653263853346395713633411447461198450923119001648168360042520022640749731838743483359453821748360274827579607996436158753858214969456994594429324779871167591872185224723029314232602577886185501711549196237684506233322692432423268260527384539661630334252642368974621138775765087420957486134273800063296358275152856120357443505087055397464499353643959570390180798279034778573662871004177367677288441982821762373367129745163884291759000176565986589581177885405442804848302560809759627030440478337907892494395783219385338062566403600772600367210083424353256925405561572807779013053609877943070447537220358938461605783935101696849580218929689939273606734307070593225554048049337264943328710394270132571601007643695765190141103383562688359327415796944502565758779288300033273282800093764741046050539235853588998245528310722757131838371677946331829396867042772442249169785996574233739037186292647874474299991749564659164975299110971916093469705099537480437449505214872927504152579164685329587650812334182063477634384997273770216733322706130668614687375066448485651703281401768688404036364318593722282278908282102077427717860458258913980281669216489782229575999882699698644143671743392861808048266701465526704771928642193418008001420340562389011308545331390230337631380855774308827949460324517176507658728198482975352150680594997070977429318215686064072074717817760186511748274727169111289327366680996095961836850275117429504218438689231967829502241700996964870589197543907378494968437637602192280377274160186192742171285142609407286187088244042421929982162621422484857396838238036805167623276920638544575215855586406381953926699586675956827146744652628536925775822496720553876624370906606841869644877628076912998458599658811313266604643493602624709908853392795885676162417281830080800788251882199705171413628756561626435474564715604100011345884400336638439397625401196932940555361077346661326441541625844789935191053398827255967129642257353273912232528582175847004067151438099900512743057548444420579137655771938470805854278787759841034688724844863169816085648162280899909020613131394496323377675986004848020514635975749504281466987497594224092964699421534125451010881810579011239379833057202355925522302709792881624318079902562827727270744690658739102398313450800998211803030812801436724663029759246726036179856718580730157907188071867299443208051010657626976947464105865245392519737574621340673805101882448203895483158867575939668889990144425837287062268809031309067574500420939719415790443752076167514852721904107875599971033335067958393649496602266423289577995406886930981301281394199416321234593023469697422948220534111305172708997147234396221991483998569287641266914897978043230582557927396466112018873097949161303486995757862965386182835357618881243618265302933595200536348458783798768554944904043160447931691584121646523538894214871485774152611199090017258054946840450717613711471332380615166262860873823047621111873819684677869229294149820785106209065498453773782186946380932095481728584231830328456072350245092758957523160339931863072580084497648093077831909805678884058175364788002283727894710939117786531122472125783891767143128917017109324739070513205573653289867807344931023162603924875812804434223002213039063752173528502246979369478007194676801688516487279885179379171305396288770459374105233299568649044406677533040709018428237172750896223704974788297690235288510406294399963945223981507829735519032100887776026432976178473221685571437284459221596983740380911633390491578677966374855491622010025929250469455115657506966891272391741813187122241982881294940359161063668176313124009692058586497291292583822327457468613940446488482649921673376491957068056813628522412418013905471884960721866717885679935462788976449533861732845833853091618574681156166825413324642381164407204364926280626389584254156837336651208270407895680729058044568483777283418843931771940976349467425513380169406733152627175385021920428884169754522807477226710200937239156305360630813871330454562899378307755205561704416891490020021865157209374928071141009520483127645678632746653742396520405734639838240389853371059895075600609765119246370624954249204066813281054289036577594346678233215914054039816196133744724301264969196343529874584913846127671733517720494202711437571363885113241956659895843086780436824223776458733657371266159961681078425385907599616157251906867660173887668218633238249755789055088879306270265968345735219835933244572506759309788721056661476782269034487465353953611133853009750364713240915658920949267700573260357170552458162360353448277896473371735367074051678601797040705491870024368003522470630812867723741762200397653233914195197027723520502057064849693015543229517950214832353888500212021189357647620526597559475153934644740692755665940682965571425921631634750325358375173779176154694987375753290078983503794449666277597933729465107621257560086833301201964963324567319855016337149935206778430837522686160716599194085090190663735737283280500772789251806237680582229441357323889133014125360092243188721146523733125491163587850371775978201713450854510338274347076703553118863832161614058115840873886037833867882723132238297026667183026156742148870686852012444672487388089364383646289543389807809876512149888187411404680291331610550753156468123514553288544237133287889579324021216687530912572698224185541143689655066117527185781003321857112175472345098634700332641960076721574277137158875016759618812872676781888157784924156190940188382317714470947672355015163487044567961893078210116621377728802920715354100410700637168056752796877445056303605714846243663836893297378271215611110357608972513978703006549954043939187555548196383680262829664575808504976828544086201156928269904543497155574077028951485394777660352289529568231963928077858686775263378527216598115206139285019664684916876849738054046210995511079342968887177121844777787767579038815711759037018861252683959835085261134767901919597774632350658309117297062217249011196942432780922239731632112023498321009182996995964767025945664743485472815036455566134909055005333280373605995764139587146197450635116651120688654318581978648630141817089551201129716843177360806709430429053126227939532589664880780465555110859794890613510150940781254688632208469982886849377644992990374345531306082092993767430832166722680578696435168371108113329244747175308847348442104563991183492504793438481686214451090349275896237448229502969137162014078723256803088879934867156068273261077877911652718775286779353703020447663094866365649040500984835712490483668343330089560068191187850540073416393202118920274055700669444593581576307507684721099733302653339650319702347380113423017683141966650483436997447500450569258708135153094084490671386827282366915389628364958022160279205317510218241501372547778831524091419207565380271720773975055885171434794270146443897717794351745764592183067354989063115415077317694633943081655078139172322599491191335157303481953769863786839538407068148062414919106121452409501593683116049540801851524695210740591442709813795995426634258147922979450422945976753790911592277676219730008006853977137298752854292764151500618557000188419155842532814323543930908749265040941788753460869782915056051601753298949521053863500152574566201121146746457376010106261180427489987132908915825972679533065723676689776135634946945834389732078099513786775590391099788583660383781721949080141383620026435593902302323073748992942909524239604177946022977346492250327158158959627648610056803438624266574864356164910684288625556291233423393110590856921959791042510665570387180337648668457815988512476300175205974808121435589526132562342842920624111360844796220514619373414659651301058598428202989009683516766517657175715736989846877152313605885873863393761332249853534621843497886743013159436736626778116514673453001624260394490958326339776570746198030960727620043929395712512786814090746755605259447148424174999957627169307018705448888002169967025153118224127585096377645747631267705631427952844311139881522758466670634781271173550261210159705262188255251675668697225394944731375126548805646522950902370121722203760430816211141802131764597106459428008206659940711138671462808555078070126751227825195344672408187558562300756448080010824752761786612476040145215431346906287494585016232879456147899329168545926722985857217090783205380794950012437927328194427489503627326509669515581417303876389960670443728016539325991468360275753442436402955869305955259149663067107723549112641129970001642671442345467262604425624819941632856945591394954644523839508692021619573781494495485474256327153615644282781553723386079090908794435113239600289145963478160857449199579377875419343503606751047468158875195872986118235493819417531279599577956964142060479744103081783802387270099972282492924520876920358612282198622437218702009349202938251499351078055779629870694166606395494123685626534700481624461072083563695658947038281744510169807869801119328349844645378339045819224964664011714192176514885370865851642644318965263017298443403881550872593625035227804604858332558947830034495253533259632025913859408513429345600719133258024843852033996438524826738009568235722531300250777395207072452832371995616615108361806747335187600111023721403693725560073077616623685906500394728195138605284560039881785234587741100936336239187200866573944637876405939670524490973805286972047321682751872984756012967907676661614666369635239137870701943968439568671924099186952387525043459117531672289545592967874027647978988545971594166236739931373703350257184096823847257622678300227606190077025333242365270295671402955096092009038761073936065652596022800291820735844437575862083514251787308121193665199810947236199376061986164452804089422439312918866463673076229955696607095267793055126048338756211882366251294262707464906932017529454310934046300765577024023582079583316180349763276749965310210466718047797834085971348783862477981833719410299711903754938561092337863057356026175147255076451846887524267020956880032535627945323621770743112299982824262450042247714765680088133296290076911783949422775704011580301990076464641938513835149303960800884140733467883197663823653746589344281286411399830304206282908314141220165070263943104343051047696468554595007467449288438885979962018332832314938839702848024999072724526108072348167156101129628449644206393153807310922876112036701011724758527324951206639419725789509813820190583097622669086147724205511784487717191294353935276295908807741489547850456477908145697450998647171649067867209435037048381708974116240346922250568778853892565320042937067638395704749350741989396465273311549854068684482054731004003800471407884656740447000270288751528346490056587416377967990540162873942787365552597443416577508388353288543583329574480360488283445168041260947211605193120252760170992421793076040027842082694100228355654844179626775005849724035255963452683678506628577555542584194332515874136336265835073475048513233780005561183444529295389748013352304652879822061347508634093140834413624307175603681073223101990225966937091947458261810322503393485453088647180175862312537233515274995673900529473239238473065851806425391798810882239105939466751608993036578099423406752430958578941107045573682142673002478937138474023529234219893219265226753631840054470398509739958647561756905338340139159290550532234632468180823240219680215057158574568689506434220041715552857484464285710544105462367088662400765709131034890937462192763117237304495251340284543865066718777596386332682262893881276272739695158931684290250193656237295813307891157077943765436367202429010434546473688365454916437597468124365735337388655755529688444713656758142784820630840827683920296966823586547256996927586677592591836481437042861987791377518442743036627074192978835250167840305926665442513358053375310904538227498892499328512189632751268629729178055157400136982973227606697219445407383894730073366789886742531838511696547720100847989491566299688836893230626013238552614014716305974625039164558012318834036044053613947187169038875340945169853890497806417174168542188690841639713051006565901806387045551278840541950589758171350931006374545255818137758612429108370496495886475516311962655604676750825698442185976158010700123110884443852831305940546477976436985584033884336183538500799735640010104879204898975522102600720090974925859483649227061600305517601924309994113642304895714379802755087540886202768602151007949676136585899727915976676044599545735833329754685500065886649692940663783890230676568202038133068621716961810163257056183362248657353462844544259161560426996160385473491333954807602905277017460289993829848403180142123165851004570685376558263058624873135258313786405088632106645845879198520564008589703425145615561128131010595122599673689524072462470147379087191357437014211664961329528921145197905788164800125068720018948513943267448136193533554916581469516358099017371002443970158997586498817438027443518567531129660052965805808601235197995059611012340809595444092433548182661640548912695699693092955496572158296736783460676267607658555086514186337824925884311427506524963768347470553106314286940202931113874352966574211607318758366171645741680842865301569077865989078668563858613369521461832910786324089932515385091082932725065558243017933928731175383209144018159469418693825425432760156488706225960279676327198077294235634434983886312336743004563841289672030386322738727353233002184376524168679855713551249753771686804249060504441099973866283407411206729875003472809594387045152632815132264447231746108777780622821239282879302387631070276514038254396215619480304273875682736386604150015884616549039740204217659609784884712745212606690422537087408435930861880833656170779071548905795071912083388684899858645281346013025636777627166552227983650857063989688875406152578204689867196513978925634486555844624550798547660094571860838926395548144479133022333305661140682596285626094677777495672091910201551267955638293069259740821042086834298592765577796087135588452336268697514183212146123205091223346752567905630561959625989604190681611033451332779564299350392114323669292171139067901770172524969086299966134729613833562245768947872234213490825490323000249910146654929214648479705712058653070123801637303323481013899634503611239974329268899454675357998587383509535585398788316437032046034475878738072716731073732706347977022760468542906365000059287575284168671357021911555488374729113375045186617166692844851109243468531060226773622618872043169142761698764575022123482608873026520067870041623266078368051808333299889801334988180550889273947756575465618277872815825779178707336394829488801638198452398355674172065691607691796297632431192009584101266096558349046357646971840891682098379164371774196136807421239049133195203553609036314476566628961372120242791195414543977984755772024992448326542000999784070618488020533707500535145664185979848727844113977711486493784092825965141272873225608453334459082857079347135062482262294147769483315500449190597638738531709043636576160539853722298501659872924090258498783037431394641398432163917595377976776782563754997456087890658044352828692794280453196839730540524358784083101137301634708443832245704912418446360451115536689573451126036597216436349874437233115139464835648953206386916435647313559701032707383650663574087553492913228498818041501833321690615152132929731687349733811906408626448635315332949668042785952795443522029683301859856102800765242551348434671592982894895085168190569321624947815858799907156368790386164809367246729965200099799420553459159552807904495021728667624248816066699868464135225640188429421447917675267690127489839402218196882341914855144868381912699230311358381109615736448267777891544786488512587011686436894079185593905691417756294513915353206961452127471780085692099204290326333222230222180093990318925598743637234741170134346558177992686580550450986208469541559461458422347536734160654903469248573768763583249006019281505456882920826253255986830793619045685603989049522030800888453981453975334296312696349484130560639989353887949846824649889178504535570347364599348728891129112564694322106441506177111346712272752005442649148667410502989465318359008402957096203815621024574564060491446881496464594897490278053724886669723759560524637969136587080357352260403706950808537409495694448040331381901332032837544884137953149362019293909578492926686401776844771745786543638757636053471725198100451897311240158992003558621664123757601484245428814446688669725421448683398215154007823048428860686420565568014557520008712661318030592389349425834113071260598784141068589112119323898737013666217671244354754996115531713429126080730766241216134529451756631564543402147141504928373463266207312277318349289747483697363587395939602697887309328005703652252746636321296392030048811904970143217449812979489226562596718324509179489648385411415755022953697138911952395731288127318055958952284805483529085272823619880095412458316271171511270420583571165923196702816394999872889998286710352254275748041774332717615671898029927201573269781316030937094585768381539023358487402419944481979944066606082470821575842129049579681257315612139634839319375935659175157604191344449980270449108888767261416053013578233405435641237090892414887267428853291005641183576573836567010228904014044035512145277123528406271653913610073040424008674569749020945357697562636898424604463081273222377899248254572031655757763517756294142710839912181369896476654910032814694011993591942376640438001992620164836769538274370769137943892682000741750110886699281505010658219854678368318079747021928889496243416905626277504120637921029026795490550028219550699844427845055443131478350566483253159852078007178873888551734452187606585732980858186789298706593303788174248839535592719257308281330166764071571663207141567215980610819577915569795753842884807824567175694460228903648830938106624086986615021693714065333878249658965505560594187999290095887393677102848549063332045532451675671992336068829634809472302675233080953737370684624645598328864994842425004412408761070907926179220430024530577501538956569877609739584710871531882214075756659544445096915726605891177969666153308306824808893765543172985818305003097929851653149894698404597247098899492422293721294306575086523907086527975773570538087093717556715878867096121328450042947333146587984175542858821661531570560689049375284471775242409340070738054981449547800716051841218848578415665683744201978439302957794974173774435105097000773020634006142924613361383222711664654691345169771247977789392240057063748280011737398235509954205863951174898917715625305897519660995705204758614930400823950466876875144440302059179394615442134660676238118480568559893890694583612917233926642213167844145634750605031901249267555103412843709973897142009880156065698188409997511207660640125456873049980591177965564323994211125184033637707495440907943270664097887655935974486900833238783850660366311319810747606200517277360575815744491906440715904224711119643533375487200230159535694657552700227396150633107982758355596054338669650997322889141637750845561846721227665424784942937904389461770642640652284251045131436323591154887088871543667866484476443914027851732334185951092913532018083878542408151307761764941755825949591750793072285339849087773656497984383504858814423570966924603868315702754876174851271696802289231089263310452907717587544427243516022958941075200259848528222460405347777274195972815516084277045197240098570395982131221815598661452084997775722375635344400962354703532239379424426409321077845839627770524929918419688911335262234189069916658562821888642777684001189503843114745954590278739984602117229371258244970359454530849368656103920331523675731441287867739825724862388512422336567118268411467222530550312954884581132148801481553013634001130363865084885775295805516871329233483748085375697370882184976296798599602332220700160769291112327840168062620425892041929671925742247904420128821950386182630536634021993431362388217834108543513135136294641853953990812828348183272254357783273908275471272915299462233705910530810920744607841282210019403558572510767665303132211136413008758283273705040637774240165698417167953052006455148051118639592399187675818116182315522932315815449299646610239136998738573704013133520775627882305906834927666625737186138846508149919169436076520555257900147569691706940421480889567153594053966453804192818613767624231085492835535342272529277792145203936639028329235548078917269623537459480237924207575130569027990781397643957211965870062217262581348257420764353112590407240115826893687465527898751686837384475345940337314700812852073267464494353507841907821903279468198510262836800464456935041736576658252203635021492510283159985419379016683219881733190982898046724979559697197435273589929168679662683261197060213732612261599645470500026250748865847930576837360674597408439609653426254041151754910637511184402338218734602290471573444994292106061313770554610837305201243025905514482629017964135673913249675148740745872206155998120182381789270413886470634842093244802112655119977784087877471108586477556268199743586664027001632774441510398010865962448263970652195740444094687347435446979014376217805899538318016176280834920476922834163052141914573272323209696356528187481095632770867973067488396277086502226145786560629212558989107228759231771627464639870887133067929934582980415147420455567022162110821562746727623185681682614355425991787593730402118881213203387829763859724974069499187999793225956015800084354267168459458040813650471191201216351335691569818348814735126667844649716421285948123857545877582421078850538566834640748560080751487229312338488761214862124506121961947848802901749893884498029055296003656612039143999790948602052644167021754163137825678585633587505232235876937404550174771401734433012129738202361900141387486633045629848059582843934330067241432756264164099492542970299280346432414941995645524104484155871745959630902334410933608879662085220802104138437636142089948689156358299413762495967883652379384269628143941579143653668685142125261830374482456879401001922787089314466843835698624677016219295200152512789628045215009629253279676499365468673590546351967072068559482699769732902744890211740282741176047484748731906989800688855699204559900509774323903620458931349771354338276940851909077913596625764705785216709160466182673110466133038762017275244935254525927029848980048795274755808814056949716298314930075664679017447874176850838923562514908971443780426024677814217235871716032334166546976212785139134557526809704839372537448203959955329807826609954245839917065549140132322681810986679695824893805298178043863944289385155332260238105966090791513308744925172693237850698806892324642285273794862222841774119537472825771947991817720012216620170759670042506536431654574554352322548334722606642761122615862032179220808755123095868036680783048806737815902005563910576988442535710560570832674164986802293507992973490189016063146947772403279351910643157225220826451742626485089256896631127228882773643886598320149644603526917139291466811227814659747291525029257376361320693591331661451722451424032179164387489943237231982037046260032897891716467981362747291267092771639860308639394283977465699274606057361178381945162552176975598313103572434043304929544382923709052368017780211525820121237093489137787652401707811007123980844477014592910293099259162570356534629978477030682030719577048562087688247465736803619724090774322364998150898766068186807249684613983202409059200104097742524528900099073327435722363564227890094237869476839203219490052360310419584202825432091573194714329915212150431117919537995265573674822384815021124197049248545888000230579885553048461424514354548746471235080037003910852557081466479947856916083507413439079966493867923898789052736252257232077773877642633175127344505621802350227726395444363192341943887963195281924016755134982772919039589257180644503630292397986340607909673333581256119752710929466572054245312733087397930347460377247481527005824590889342840865232164003451817726613866545005458581183795641171617171440919980165231086767352484562497015842033154762271118729896441408761439260989159416982789601206173874733601669057339181383561627938498755576654349581676143735075338227317081893371792343801567193304951573355049086667703576650627754788619884107232600637640087304512056000545234780971955527723067120139398476085794037725458557436420272451038655726197839608804451364033746719323046979742465337437690504631654163404866058920652229704299023618477531535250478086998300166003857861354879935577225280064174888385728309268710421539577573842514247739116453461270769574914157344376217081659213501102341131968009447625806531176733735189495503157076451520952273404764305836011619937607700001288992851784594905430500417927407759065598025695748048112873385232964091254099460879326383750302839517403771035248447772807277038278216659347552384495222067303052569215929157192450236226373243118382175409040676109838412471430997724530130336410797687091317283476497371691487569720120970294605448604715753334255595265945793445445291867474951153118636887379095103814391505112977592983396954115952107452503653503482156566633989222278559123838252230515333829476799282682692631551571260673945150650900844578848877565244203530343856632451762861266984883083838277247182373126044291915543757854876593990518803762683702286553979697311957373524931161284262066443809942948055972566352068451536510785670922253822126759556491424607115815023801567690136658065961084278156626565872151395203918588563521824847346376352239306177464697538666001516927863617495878681668131936146882886520848441223777806695636123921849301806517358072087466805405997445626123911355914035803080298108130371570259233500177165907994145095485611537976630725602570022662762578747403224431489743727950222694931832980387778304390090669481620287247539316350070582332885242152615047732405981950517671299306464416172070897123711704318530348518386041812764139291270221877188207102482585911443286362636016520341097906296200537007589243082306836664086868883671315014628850659003267440603804694008990587877107824999530048754689314796900316396377531867568131109970636940341328080079543498003322298141948416938223116215923980371760408906799148211319844006300930984043241893529527149028285269914243399434598650358383817001155372831293716093260215818044318048521078060362804140015246123220370654912050596273293225119259045909997315949205596316916494001821072305693665186031477050209936874322602791630625521851623435623753477512834043624841067988071085031448104190939870987631582385262829309708994706754452309132444774234669883870971450640857443020232223812159851003686083847062511679555232297853616728159634684880903637808502819648496867426468917838310189638941561458440234810243651333618091930674872433340379418770339553014103610787364085557723167609143547618887167963278463715283428379101614551964753648852051065420575326845206727441635259940130984893323127126132433831039560702826293810557433570799569716342454156917403502777712281679244443972238916641211833076974516555183497014591145487114240170203676398998453416996852223919925706402820670798598269341281075056719673021633095730802409118243405760177592041482169917717101586175729337718882555298786461970132457176328711270290627997938762686712676826212598972482790928418983344704047891821792722143127586692467785097025232607935391832723865858127980605577756802273684084036251809643369395204254087414996516587701587038064528449213728166356410095146247249748438074168339452421103101279259144000745655209776638406474173975421253323043599680586939051104181289262589842516243549114188127749490074323175442763572534876753405360092203267107285969860121368437379994805201019407269843505978912288259501491748151635423198464494949426934614877578833054261329943812685964108530650491915501960466324093570982059833771199789591441265757434515174689383838776725269604352137119293103642886012253679110127582517004523930003954027891848608698061928691041013956517457133589952482430796823088519427539115392443485690507574146339311523378531439387370159032054088014716533835795730412821826723438737638885063099512150120443281257586661536209227312511593055010743265681731552775179611088548779695977534437186263707191054808086064043281952919400497720256333451026852926557086654460058747846880416856583531043547850278406925918210696637518060664163876469937475951319039425181411269245290184745001617780378851780651794629942292190486939028086400080449183450639444345142863292947719620380980616616486932467307975483370722366826180439785831716167371542968292364725451647646821954832516637814980864392333206821435082609154259889490336707313650814084179125208660793050402988405066760723464173873549128916000806100259378617672224677159902451204845052582681504653163375866581831665794999118145155239387813869793007801715558937809066410173226910635801318861587467795706798851645195841336628683895908225953846872102597210077145485283253972842109876616545267122305879642607372632040570962707432985130723159189765770073420234772101556425020701407923252281802790982866949064496723450475204032445418692552835134689828739512154970353684381221979615242031168943613295568710658456622857115634288624940673166685828480469509200738408209717805048589908624957450698350935153133304301290401880403734657203370373026730731041304804876727979591352810274618346368693873805805950750054063826880501741130911859931599317560992022196355499686827447547939986361039476211881639902692603944424931110371539771186949355674381707785058014004349877734080483492586196196134904350333776353130991173801618137590052054729200897165788881663475329556025299489423559076094973898195144248529947965383914213356215144156294223244674889815988016424846119384621348986252397783837425068377053813229068217760334605104100412656978863458792664767703874092131873304499582160689171772701279202064481686296117138696588554531038004228185505967619408697615910160280472311580624271013783443581929947950975341464407144974180966460773657666808756505394248201589260191050995727663556660857638558670404709421645408256944308980147984821157724076914128347322483578870707056525125105908497683062204114136118155473675374791701784719789122671199804158624099919577524323331621728064778893037558691613900224416714324969855998425054989957562177870367080283440623615296388125283207248250372307842176257382894160297592331996664011582723781058197579280276633161658777423199950357094386670203611858924876040670314662016502576653824872263742106363367595864742862049769170524810436382385865537289334043475613632279841558341210075208815849720242058654181845501453840245259002125497492258909205868098304355859199637049374314847997099533666347787005295425843656815767555882002538571928483116646792262085509212104130730990162424852281029179872080743451998735073754438417575626799889849172100509668229719299983564123977479236755658338168127129658110671457542887165020179688921827703261458825352270766139110418039624389840613339363196478194352459691024292607991677604928318531070947574670411994615131302961965766152318195417329676363458822879164082630966565994622234546238210091013549665201657866676843950339372180681690139380447444636408730042327740221023162555115177590836041719473132454440343883281430429445455682038807746325713624018359684778946068999214880032302801394706410691370865369548912458198881294360145511606557708267558085219244115830811102611843481917163138171318742324816958625907600252368310640310880636950092625361543019913755222588522065727990297726851638914962037274243060159819283988529903763701015239827602643409037673210447851264204726928838706003803267323065215838170135934648310798004468728633940687555177650033967607563047383048961630050524804730225739870176985176933919114823111052754919390723339763804091075603337180275383355978087945342900786163557640875910232349781228502311003086677292084913399235832249482622273707758551752357422562264978791818804690068069459793966057828994790927988514991856681022063074102921035062854829649937806819435794947093556321375266588953544938273072864874046568282071936484569444659674294996199101775254738367399664101802074718624845720112033737184965506033174709273481012304984719590441575533145560162480651584948576174128090116522087728404208525060110613116587478457940496038168315072305007593589664010912393195698230460206090822144757874536274897038356078392979127535454608406572805228621114173438995935925804923205071397263017565539324336147451475470824215990516233995390252270891388583523178551308343970496653211919275892135056197660688212587092246896142953501509433354039208093428296960278469171034366361483535301158442542561774320456759424762651481155340836055166445205635781349790081909110546244288624098640345706011589383689761336568290004226282286529898567590706742292347950780267028430414386428065329080126272423821631570317903477268116810800081326872791345043409966698099756381610113608338145834540554036383591620690914126815795266448861624691667782125109864370068480556524925014236569097369696270917629857019468299983017982836734039897253156679740503832670724753995868317178591886476564108173273414704951947473896329426656824562698576134921941465441117124145756859887792062154057022919231354803499554436839858708039347187914965434132946999742055381424966696537582658339547203240192579234845076037369717523990492727028866741957685844324917989027344510740733663801860209713508651507470612178538501145661993345962848930657127771131213835645066670121142514549765587884320436939496240343031759753445169723159043741065734239353313963402056234596703658843802744572489771121613735987996498034779134085170791553779894474613586786065713727676826888033067916778216621076378920497737217445492026172099450497005152415668814800058009799101381852466192106598498812255179136579196816659002094781732236128417780789354381692628139032597590037882636063378769881878111462613052850908924887147292965085186869278778710462942855304719594469785496925546735108867571184689763622119926478436294790359618760207849799777378409399331128304857175900238370894522746535485769846140486736313247315456887378402822308273654781868944867377684608233579771846000202465358403218163417781068595853943812310455158616483813201958513543472433603631476082068735656881336206288190520151261412142418191730592150268062636735642258193289125130846951112306840079597364931716451331188886983584789508948542791756707833597609715305465740197046651797193358022321901786908902588059004749203779638891086393940964013411021226837719170853449681103174993460637961224763381700196801852824733586667339240640506445046874835455045298902697167961198033349922991351140730081381916657320300621585069860359442001874313318677152897927652342458862865210195628736250106825439932728077928838393120338053368283180895432314871939175015439754610849207173216449032700626232558091505438456632224351833172618025107203905103207027619670409029874292718043278357067860237124665899753980018550247827226159998954555954874096116669716288714443755101476016712695104957155850022535271472711418252633842888540887662058100105387827435853226437832872192758849827806866163311219129257492878468608889881673847819167364473319933448714292248803198104961872173269390958992747910905857654883745176394495720776544685217592335374595592980128276956760394469081751808412182474089745193425640694186960052685468601291053626834196402630141888944408764890507763690944556589772298125924007409238519368726430303793701604045862845015889450472615174642320305540887812565891940526614865823751140770266214436284427939607273483438222694802356526294149786380832876571247518642607060474397515483766952426223711498285084787522760461272654056831988226382107304581985302971179882229109988557410755590506845297775696846947457631769608572751595071921406909788472475781748324241179172189008325782879570063660764595163405809284356630562889170253863884749358344916719594394822310820451315959615856205585196549555693744325076620396415244755680735293968987646943322063721933611050360773900787421752660918500466363442004540636762666239327490264622699416360204216909919303761300898295337606965286920376005428564872861383014745315410376586216955883900644953714762409520565107596204907177228721054927912771646263841147903158860061804825341665023729358088730217315675923821203023304704342868527442096568866767748469391800883941954451360230320574073124005163131637191101734911725562211337994584286729902231198252542288069494428323395747928869173979932372184278097595604583281486635746517602727957530785618439901264857833698507800950229882801960255768332370378302136578339707076479568812453660225178109208771964250126321434874860005442310713389911250319469095320510778810999508444913440850224777385317416780391763911784239397036862985921946995416750211016818364999939900937648078138675487474726742869028336082841694239825710533188427599876790439939635376898390681599485755935453016344871060838427485885175399126350347194603171686327570894771540255847373920726917133501121371227222603715813866503255099914864378227232631922758664461778202241121613651047133143336641631767940908424277943536390766864357546637057257121965452487056524822994239005502857844064091599953136538898596795737293808074241081230347203083978681389090192451733640455835240470064997210200650503456693216462512244220136886364404558321022319760936568993105115456852699789761086983830517481030182433411435322943665188108549153826807623776756392764779293280491343094400796513129777618751856367213917988325352263388938721348995040735260920973471466549340229867023168612544192447377877377620331628311100765002777514428063283609178664735852357430788546589950853147676453894907190362678746464380679603707063664491530964740241436117827438616212165679088275248163615687529248181571565956235254213463268971014641068029235686629924755975597495433077953437239776191523716201740427178930659010558267641978949126633575444983634457757072493194668472590441589611377902791990120927528433532669595149810831447926194380556532287686370219341089273789979958201333927081041151018043872706717898956479404703547972668476832150028892360802208176023944156231469628820092140226292840819476607405475106218899232541800960364832220777458482169943943484613927090417921212679317965084430669830060700056020356181539332345129924130767706208634771192630520918011888474737211487219363255227903970728917814950752969576757531235747969545733594214282239677790000814731465391906562718464762653920251101219502224522518183999979615817710407104201189999387198100298890178186924164933951402038744266277536907034110078033981168526215123375235779639431593351376015854825309928238642074035483226770593003676353455238920779084428116402680173465920357247047438523576340119247139650006073100566211452837103429968090594894115677322863448696095835056084975647072577307370468693767820832867121431886093793340285562085441292519831242484709304952425825888534365975431255927719917421222663447104753176767589266404675067778327347292474948424618849346766969511819216377173153873974969808483401307554703369907989059054385288762639604090205285296566726780811960476048128413010910613308091121706754900950469041755411271438949580871823025928772572684337053035527242673814055831066250443889051102424649614281011925517811412073850347909655467339913745177536258376362189963381029930063587600304759074689893092965190872980959328996020601382587575930617572651645077132160461556681572727769928334268211843419051761289929010927734875330615207350865267788799977294044047158411456928509292310398748838368483111380735284463957479406498036722649577050643888858753501610304773957258098022442519212400967049711787647052550946271568647031866876821303857207007981690888428675020738051477723113268213781640101948730452938974700148954821613974957545252270260972919790497654862192439602686239315481483906635758044723679494386789829541752722409699006718406052403447729143658058285994829136520749236158502333026731006079783701607523519227120537033085763775873202385969077377627533725766284228818027539266058914790100787571659736573847693238344394642943907019012547362729161615870295627057882209536248762375814883275298697782954591790572218109091817139001264389463839540684486370446465786631157203870665009687932753502900279626871478079150978579059186766475676750008033258178524245023634853414552367462970643782820361122262777747590919943651763356458496111849613896713699590690341210013844349193436710100089563310336333857988228413279055348817201572897013189160743134395224581414675750306463067059892582115273914486434233849686417704852665428527793316328185920664851669782408588802381218697754197966184063946692631426235209079275088175282142288023881621399729414178178107056096159909857097730796196230889298933415955855546688695077740191949996228167103198911562721065610920149213764275007215387275104578037666455681128736231444696114406556818762653849024772278586060464351617921538559643394357689190058160142943423995544398939469255865432727345330356620327395397448538405202955146050191476415845957035540785002797339071636421709407964084287119328708776313822985447926616580592630190395821040311327940846643625905818470581615952938874024096322840225368749808980599810912788169598502841441195702005370874220794882330502188906273000751776173323492490475339238578549732296571436869246486008580168530540709434121066887416859620360894580375128730651478130343432626702088424071091680300509927677289376530633160626171420382281221407950737585830400154154298809667122280929450604631650602620608253221518799810427828132216211009489782732718302865409499550190625266337817078801936894388099028765496376096192579025075065232696153833840652560629614969770470053682675770703093251379329130920396580065938190975679140215751764757052128690595093499864572394525909152088130240831093458237734653697944991105582917190817813773175468155669846128435994979841587998074674957040234508052891473549351482262920639154297789532448523217872984898252137766633666335484128645753068954270621040303228883343648003003755029418581519398544494020394086631041652165550201678039840095311484317315456874464658907445472617116795254221317906661444497739028546414280767501252091387462100656693822773627385643602854526088491009320503072525289014813309758859215493741575682698579979513231062913145994942459947005331127322517087607486078613016723147576960163081506306038502637060165572790497512467151620888397563540689905201509434039969930719611369033658146683800981817908371528345403079142203411259729318081786000555962159452335306284591296622891205865639916959914095279357357632647364605004899866175785732279051781256493802524481455512234549017698804232492988862585342264671646675421497890462204954924370835109412030902601217021679903242338377311431331999087460585113460196205554034758953129881501571223399044581338295753881612218933127160012873945387132295242080767190532188869410380781103896783010936665489050441072454464346303509674017116919758460341792771883049752798336336277354700432454400666254734108282964901030902146034995446166088195475712233709928088004991274778046789132331147447049077527449639988695576848628357350107043801142033919430792673933117485752429225886652713119392162281877767746382813466532704446012032962268863837315118739590388416594738665255590710719460131096787097055784751569360287501612253450673796853689327805650114047079204992084154271140851426992650078589100750899498291634979608930488578012966184822473102869094290154595228977492887192514383842056113019974951173731099198303656574070125185268241775491575445662187786119663945634573615114464795334457962303857837040510518054350555202268227056628159802386493357349730838950534803407945634587896373166771357708298867294351765486447221871489226716554259555271894731601647487848746692121217152454978299597862504632547870845587877618625730990443818185876418744904985275552520913125992964051561622528898300077993528630903005005156094805046481365190810482426759204866027524992972482858297660514299686362962979933571808684958239014174435635893064843318131669091560955307398870311696215847030538158327267574292390433435759556368717627713747178064772969224449162026310680778533759243162386554264135155145280095917944217464335082667336901492233341494611545871310255682388691250611213910604940684210209675189406937830139269377516321429295924518454331694393488249222062984814816944716364061629214768991425739408417632458868251550185021099211745628555575978039393344986326974301139880050244417938676462661546873231232526293369509029363227919307509075585546441265494035817069230910258644407588754325691686190665174182394225553855667088216541738976309097165963776287104175332412708411092766086987669300209790729007999028540729056904739423224983159845314868419033059088667420028928762316221619609516979492731010078308944785925829855196536510065481770000630187266982938996050066237390397927365258219394861356557667195223935358732071454972627103532935682387022757774293044535402186533031133310162243734298791053001539892429315724644688171051687735867720698009149009701470819942792125858551064552881482950974317923713039289745172306638801683253670940423623497539990494172512010587126437455312622002007841528059215590076170369144862868979009796661663933110123490857187237622808437681105641285857864536565836840187006406911244883379509197313711956467500449289351780780779067008666479065379534990162653823974698703003077058979167113780132152270041287950702224381362134336150878171778655023888102722331874006473451699832844838983121444628472780711737735627099646717665325946364946490286500992203554522471362530536809103996175532657599578879149942541914643274076635453000273463497059532582260514715370421151136413799905464073766030243600844020257632382850408634954899195181924249936042976986893284818190472287980682900120956323691955743057724091544618819618542108146306128159614186725938490527270904913322305654356718621931389293542811960427727243364228111806205667683376662793099088968597479856276804774298962927587266017619808242881774790057380056366432958537971824181251422504028127271966403148435040375561928150946817061375250775069764285345324053111857838606038376969074602740993445865428272750097409061033517431011342260940117625886324811974350400407519705951251892366435776368928751364410388758195002601999804984034848043108976434825542857916584727737942119707884117606272399224977876768343821180113283678508550004397239054801878497732545938020887007789804388033224395549967842475313344393666098080214951671732003327190313018855472296774337926075055498356133858412458074472215293694483378111012209972045661357068282703515846434085304496195395560219173936871364848842472792378731874588129133609566697418486226596644505584427010272361796423259244502953902385033923615044188764675081312355791388203495697479015753901718147587795663264986147963408148255779970916974860518473716982200917734120686450949036143042384071416784766058450762966792299116809323726419861660325711840761895563793492452255202182843518305996377875338433587053889491405043609726293872191133493735227872397880199125766402360563519199921599491185281219860545351730508797766162533482385430423810452195984277373416142066022482985668003334789590170295620878146394000253142900913596568895039681179002614232154884967850668450841035414750746994180926263806587732385904441624777893265755259987232532043041940347118108276183608510145562465831482858655943732354295784017172945814011404348906150783736112656823261797862697679162948725165237057054944648453789543243203703637915059826224809055802545654969582649125680450567042244599832532080027925218829804345211802356262144580102357089190030284058140016786489740747397484169771895066732809881067085583620595941930854381266711609835024718216075576694217483788929073123467737392976649174174070874343582824110405197880635493621815597725587328467635188353548020836395449681605788972458438217853946286850248790287241453821530178628451795963860645276177155341120697449369772624300680486032765658273713640146683495856738093096595987769814631008532111706262968639333147602304200102642836742460027255414888386252511218562834058868289033671572249148103422148456249400068991704989470744082777300048594822016899378592261708678547539512953532945189408581452973741737331827974579110363573754762570191172586019558221182919579654230307789986472549298279168191403537818580136759600934737222749586980498579535128237852284333088342031377619395399636700259940004334785396432549741148266564319097905730518887806202687076208440072998182428180954360527134984382519373961342383831302543520744862011517850166287998853626465297792979926940729893434454366675741228252312974747536794409128727247831559269892955944079255462949037562908387491573125393330416497978458841804635555850157610331077089283188667988904592714927652483413602213584764030914550060308780309265015691743324384359523292640712710725946776539283258663923115162536581594427154560459856028998763784617397971407321716363300035226105826219177060125143775192056760009387321994785632879448331291917002445168547575503251539391382863271240057863862025306076313468461580675293551604502374391088398539147770104416466408670175295046715559630787441674272012673616485552947883869419481998405106287137325743595883843357034779149090652775602875075947296318991164387184018444217391498836952464601674108638800802295761851747486959916072325425300465297104530351674818121629188072940146974247462846514364670901763181964644819733244191084203143039206482584053284802148605050407524703842345833499802866497056985504673607886267004333701741176770951399491006313683169469372531868788397953183733452403745702834189653560449316931180346772851270244333940308164939159009533726437333873620340122787855446073781400410596128325393650676904586997730582874467176349135477867384372425192107627197583878290856675311736233045597084050078442312516674739150920301209165590574944627990359721358367325978831455974090687162683325965458181939257132294278957982336879773157227834290814241857577489133508540428734507556169472056140488740962853665860537748785260468045008061754692476823791277317981383885872037555077883724594997690974713639689943467492116162612532619223703442060114720156217575365841073614886082986052344166542631297089075298198812315078351559594358959451399164281738466391348711970698026801170427489702141974680179992167242551075312194291695380182625109017400244284187899424245499173647692072706288182367998172341632901063191812680279187062097897283356521538756624181020841934265241137578322237399275738034014128985862569909709651060747786469387212748411733536766090344797248000755464318002221869970127093605067445640756558484205050323752445821829553843863835651384221934913333657904484727767214318693825229717408071031206980129346551713338967946857062062307232545354624659318113968540821595999410441815264970986394166433657810864498049324700067437353237914604948344500083774942056458072286585907691966879957361226480422072061781506665534654609262147237127697098568122749439546956640012145478477548024785598539497147747547183362898562405477990240594195671238623365448069195134424998430246109106909835871942418401884777174357096611329673459601119694967770628042881179031272913833039878228147358462803217715422608042744122466825270020449305976993275837109727788464848152920047197963744999637914086562870688847009638332102608986007872212198859105508245195064359963062053634618161948802960935628982302081310298965122195345994361025638022418517776443951646234384176450833381300850178948727091979644057585353572933490413031099038187962223525040651764403783696192151319902821564083047845647736664414383362756601537905349612750533320568118445088401350118548399691001300376712620216730911310152017978888309436002876682036545610204348667558084330679511228011395800803907842316598476712638983872007061084463053614378070487848513471226626222558615449057670854495430270321782150029063157724816612097845753368460275928399255105341518243488976856192816879202753131137251760453837063329630784066260800054586309580718651054142095435077556146159169680945801102309656614483721796532955163379341224121672858452041156403203789969988181543898732960699144144158645446478296987492796243145017781588840476161922180912323169158151503145674138054452922389176291028210580521489454849330892143660906761756974074872459158124627899477200578130453479462961916270359313932136663052738268825540207766798547419767311477581385751034112910186408388607885591821660762319980520570540620905139702497051829288437911403685203413298928479226292956500709313369199826979848541492352378757607159728807715277012785755509037643087551971446484481554484407788968004680587427072558418524607365939223269351998625311796576932175435348053157060092139597665847968139378422954928473961550031826600340786653671472910290517701649591558102185017933001147150980954609090502952651547016740727240366315472148999428393112295201892528196500832671827045297568446845193932825618681050936434827971226353734088661857300037695507720624322798321625719134465234142648098086040743089676814547974895327193470128089495774027174086234369310423980774751116707913175060103403929095935321252591033283018974172498243396710975184966911271710852078733197909840756248047931069698248256498451626091075929762076971127716476578282940871757390407284306531114636721537443156246905390657371095164206766671803899286343594682818969122375445094656112001037764987019459965634336986318786783727682010873661936584837040387979097179741601347152996094978795425596606602886457003542906878841121683709845682559384552579078758834908144617499683018661551624089052078202071042148158322352630710764733575675811476905237813717740128826117550261415371849591075005722862358077157052544400358626039318561106366471962989782775591130538228406396037482771194809549820866213547766912902185600106349667747616204239260870717598547024624975747871366217394634162865269818921387901701230294704269169629338013587871564087126777817838060496166998047462738998881039850034691314651441806306217278100657999297843690984203791318957289489444858515538382236188139066061115808008815386921281584606678238446290012769627796485405261797705762873826501508396631193949359266690139884486645133771499880944314595226839976233030162955226788729305962215859412464225013419538266310822386862768062098286568020012626966680340545118005278208788656761143872176612250056577088866808865535052917657677480510457425125943223866363272105994590420675553541834757070482878870407267180114041358975972504488813961720835710156954451224227174626526451968766521330453270419954092402036710635935433606075813714890878642654887100701087129013814135295974787823299467439453601026239096594213462229994736275748858888287334355836769263472902086991330809560956024311522936953785569436746637949519155932516190258781698271162536330035733420854731459824290730668854196733081820374664456319431826676133600661346972035219444800704949503448808155648697340504612024426321557923587798614307822368358779841168280347847067679723601978110696542981474497889089146001776494016876194173855110603882291836348568528985747051507275052037324189829205907492097618930124601062721043723993394090580342845997637951455626524145748875630215422716544876917276105614951904489260061769165745650831822094386789794079726711727690112058579835022360463765420559024966759010451382557113898404744886770946358461686854497088429542597218346674718623162955358060776543811372806002092985054176938209440386183949447207208967024362572342599914895487137821158121879920021282705771659132085538780479478581243509832933051987496733420949640069395089815698292876691658650703672292300646590935277957012841422493262531179284233280829509230638305954420642119841917796967400738899571558002897499154599335892215574305923559586813446981937868210177231682171416019689738550858783121019439390866180542428730667957680628167682412787481558603629146823477150357734014657261827741625453330310041983315638025876352717670291556792404678935609493873881924736685255787229299332427760918308244935922769387054453487331292026356611194569168170503748888465184151625649708419669779041103142167855751346472782555962503205917459389103964761175976329088145706298960268459334042960086963355777061739996783519513309018198796965924965308170671666980142085531959595309680989880733705047857220690651663085225811719673144284330575308955156482458872371689288678655333965909523714036491259750765387044356051586817250262731524780337625748768695247382536496918509480869343348232229267531010542461813577085399590298980513045286052695331319154438544943187189182750486617774297785895610137554166758230364274983071896186625808860702029550064583720120101659621664288813677187625621776718393113847388271591671668457628112181752718847456519557329141868965895367811507233260817184262072410901101512724762557093847658324369951487345845430206945153497052645113069764842483443772411821138239929019611053797584015181758031556597643288652543744390599426453548804939408260330399123178429925586182055037964279637308475920387380425095100124800034684224936898125117789559589935861585630214602647066545867851598270916648747830783122360293117412920091599757493027615633374858149510080479791191131314010792325466671638416145785287474392691748238441052256846446741183186514211117957822394938688062863051289117331092857726198982283356498312007496034637569107543872966782446226403929961731102198293518910415137049439772837283322327865574118500835757534394846677050734233104534384267355874243360584479632912331977527604344244449487871084493909408817482014428009661190889717331759575356112163805375364262782754740731403665560680007794855622313120722898207390586206680443688573057538971297044068086551404699841287397927900882564026512820903523340143818816154906231316991621773280016150564961635525844324012811286792932523736467975004545332092606116830516818747250054875961510989497119965834153149786787510661256907531155650073755847425137181902786132877175688322017231094561061934915846874565346417430799563069611196024823783542563283141576648803804184755376643522831695827626773936162170793051061570034678150235819100861594683586853173723563911478927875009171587647773490136257649393004410291363810141217523240007815619367393871356873518947072650978270065523487477949684602176392200428387790747051702244846141520700999503523738808631541562980913054794678121237987042959621397344954081945333739282594152692256581198303945202660495945369191236120962242431320096383299161067516385062137268916303885131767464694130144699200424866602047551003289942686749055933615697086512694428694113855008554945802922674498692409263415039438391543371631554763955411074006640233326687140020903470097956137689221608777731275663320998723261712877993699912781740805786902642431491647820566154785291839668337961732835374897007254563416139970816524956499320646174796571805391594857836920391404345486955055725795705664670779277400217569524577800760384471378411506184347686142708602737934541843843391827208522877744875880232581447152788753622581596423175620198831683332879067518780966079323110480636980988679870792561051166072634306539025273302570781786355563912198530248740228657997059428882675700960580946819615092234332812990106467107979829721005631046557792927073519400096403139830136254485709156710776950339340852727602696234681316791805673678020179767209350489027274370534354630417665299924025708807610012325161102802897494839233079481760616210872395035408617253748395208436736631908984806264355269258859477973651722371504093293049897358332739854767231717234334107425555209051346689004517253846747196619330524632706747176462111162929297486910124345428777531701347360132931099096728866796406264695030318136798261071316300782624823000028001007382288001673760473472032407541629662256270348570689788717327113411123218902668730745708856570796825445018266085264040006058833246026298828180563461246853854119501567687621731739363216854295217545835035256625884109330489315230271182833284315650530855805089293289844784775313218866619010325682159175572044603041384783166380278742384277482457885351180195187197117880629979177777914872816988839329882143167650554446949789627107246881814097767137431453396764305863450523624317858374945378248662826989728099914379456397786401399840134794805183246912382400932602415121441505615771984645692785060902004006887306016693399668294745525670080569073367426462955193390964394376136417629217314714296234572549386049132183655608104270181702741131367264710634524655440190165504544501248039393960022880844218920879416762167304743510894281532858565212145424375068736731517590894553924717569865743830081405637040623868911610742720331039781162931065272951294083185287132940118028934193629712141935734906527524940266666781826026102684627820400218769760054824966690881180809101972663143822466373129389698518527402031135764398414778338850939100118948418221421742381711736798447856865604697305428932860612607028109769933707184818556020956899940532372640563573462847052016302493765256595954620504540284652447733711858600812567198422292249623312596771019016435616734571117733959333519969027348952764023880241421980564994942233975157869146730491284065992754248263527591080434388806424897702371827256877837161560142592740968061387784066049186277044413414141646853890616624722456841543450981620193132543265312446172777260382538432691131491874251465461661902119963705124340298328808564137476972581290599948521155150003177812805279339785387230348142930703862456795626962924560502606394169560352651470452775356852656190552208631035004070192519519557607897435282740477032875959569726009052495265328977046880737386901979973524506981098322584733372628867708886113941059401547630151705169149829860381906314377770271553913900821803325646539657118673066712085555974205676525740493488518755486404950531232705359108785003144683889551468665035551053302489418061762476568223486864602774753920791171599254775781586702360463920420563024206277490161404554278273927835643077367636381966077367467326093416422792282522049762174940460380519974379870173207967181357252312628700686535388726878370634023949949861597091239023843947016401481039276109841455955842878212615907963231447063205212226538380426413732418874234208451129020476868581397472102383546806655525828803945206859612290045137371247095688489581128098625726348668487588404919996283274831280475841283939377756345839681996501178752948513629556819637612980533255039865983604092793730506034385069474312384161863143188603527426410015375952358419729219865681682956554461920399938532922381164283541594384240788920628407231492867584935917850588516394765131304404165943981443524281817911358323183317318140687296482206671663705292944352859427696052470664517144707380282613850113594062170756442018168949537115141746994776698436037785983348037212881457497104028650216917552193510845762354353140953663677896198303435825718551994632717966516677445967089442916366657891960902187119220725711719938930430755812829021115478553056415441741344238535444583647175249090245401888302439227814862488690736592814380860679795236792327255894184401263877686009272664292561919182753699318536890915231595086908617634180266469678589690856233704562345390789138938070579050121319412778382988026891918283036800052634796983302130047231739984442591353426603061680443603535755808154248801147401497067627196893618309201138577612894252161137926912849126219395566700942439815437899294347649417323294344280903807954288892528419753959069472466878484103787484066404024957239965928288640885689282070747127714261840455569087045229892575952603067820911533119823264569635059612686267467656586336015061868665946309747432917485230397636917774114812753585990152859998523291591363834740986681534902095973496427241429213965780192440821395217005560084352854645773692864369852937782758613126139769114513818585443863519811664627914764760932920565850025237967243247348681921217635844761206791628511869289923508119682273611415865496255244289508809044390403023378965525559178546982410065791188380808731832967773992807433533504763262311590438647837158257599896186446692396644066751438079674609067000109346595285633614232910144532900323351216381681245160109805026597711917843216600402909265985005765979548971187124068178291691649099606360693051164525545689637323051348567487968955582889810070806295876052774063959528106988098904417689514796424531959213867917181290331891597990409479038228047095770949082499235139613938568032941515824677063469171833319052385338780778053312852432464956916823028021603695781896188058715505561061364884089879342868873623776365825333120146841867215001111579921532160825507435343796700214313141676410173792432534530390741603631765397859643360315924485389427712891334720517786446173004064042736801305396389537205307094830723953107496306495500689551539826042782362821123090803277155269969092509068343180837107946284725786087902474091378985205114829101188934087029049764974803376926252633854406717854508249512189537925956011893813436551914585335227252305440766023509776810838203006775933976452619320221093055905953873976838785502637388157029597402129868449131457810214090675694438966387025826046463591055731830927225763443038556297093646559653652994927069220290815103961951065871635171425662352554339263964100881214575615030742007645038366953990491327618211271551567130920720757169932812285708855166447036686812912330920844582627191326604722735919961056579110115698855503998901643981765550163791362485492404021399468618959801412427379969596331968540217401533032162142752166510579857817759280016507321836418887027269238178653756944823555604659130948138426114903113388509909395836578492483256279817849429550647023590431875802332449279543088103782741116555416662294910369035230196850583626192718776325238899352609661572181275937161367931455245502104731296467353613081002647806627085761612515229559226905509176537126025371736584260569865033187981169605572576144581453721746571800418171744359622893470511758510244284035287534859190802935684134602330795306103812943580319653535520570383435228542327640088021939464041650480876648390910256907923977957094282693986198011571569359733628204771073206920337508232655259586603968929994195582485476088546769918495621689939730350387136960924774630583229158272053072767887401057711048024473216706573154424357311452674955410627437645683253763521121279326452352489953747610201523242377470336769972035449582167325147993916096265498388061377647107803791019410948341988271951201711328816432206017028292209856515444766753157510135199753333284243268276380032044242599336826945015527589790044345795728195530397384248858025754663035898744370390341794725272719258341278883888644375066009920557288446061000435248166911408611599151070525646544022301739676534391183617653250966231894948362308708098874556819034540718571221203304140283312105379657960597419198431475012054700413621553860686779697575577809078428005514471501291347040899680465037768485759574478707547625705182602288752240596320464792650547816104459476439405218252452335682148440828657212105882262012748012843459311348589951471043063465024874448851972549111147921195152359079345573072520727296185375847449595940459790822034306332467469100375645110539259512524121889759534877862214753705280061785115719996351713639238521453375752332259406886333091850690524601969659297533585838160591718257676739617325432360384499770433791171143088729931901075317273005758569929832575960536536896309691209639938525436272378720463967082642751858383579001056876543830167360165374619840750123856598545584242930720453947295985732227658222901043964796928900795706976422916258099578771917204345896529246812989977620743921243706049183670720148255314011043270513879143056368907676038788206257672787751162936424081755627125589900580919920768912480743880463818028056859241900075293018465395099607598832052483439351458002133708166894558538582566119947189526118543314410229009870637614780574190904317050828507563533526512233751073541276785773768964061520962110455131279373337400749042347650052303740455896954095794860108924668878547704511613393380516404462353576594346659456942064864515791255276579217204520378293885645215390272173390497066140763126986545127271084570449818862065362364609236051745219134594948124390944505714850108514371988147725534467084660321189441776532296533749391001542098757748035207892847537859008170131122396697518501603149678545001967819047514347118367341971660383378777521414355249593712019518235549662212238313655230672851280983587611961017830491606675772965011016446180748555221918553537787400139153580901905443707446812120227434780136097799828230115356918204425562743864263160929719993540965662410085599652403693017469122733829086188447294522813074092401162747097729641482543474231223338223115866431623541086056379166658965698099150640328610231624106036155619287598829857807002456404884517160024543255393641014236998814904920150572249706927243801382979269306309441430429361514287550535492362265630155653384094964683713513311429717533555690544872288287190749215204953174905696662930127777423663395070296686831904623445182432806081662896857649567389525050415777318626611953156371485220334523240746652162014085310427478545930164794441210947191319776010220544260861136347897140593910608966645163330996588167684935496295554184582838226649197785230380537062657608229082666697399271130063688138275136017286650724106332490540133102867268276068642699440872965440910990213024025680718911238086678839347382629890745012009471438608289706576955958640860332015660998688879426974340470089839291687042116287647199299524971563323000479592475094318155837250534269280955493628056319057383375792457917325838591745895105675389014052984103630399071543777027020115569527900319883041051775766759365833880447820610921602984316979983800162647322982361736152064023987300231314517290019358933944154088518984407001244567668823255627570413101713175097808345438128686922672579182163581276634060167137444700103792085218855082483314285770579450199182895967252828142460848148773945383069442960799035840695393114865126064802482831052300189935485626192606620676647707971489989737256416231154946431000289873119440954097238811923981469602453332203810204326328261550934969933606801706409408229804150407506207475715369658966641807492722960593604260813304739815404868287006651331880814321153529033541367598416708362271231605410007320822906584479968293968620835005730842653013525246033330934020199306522188758371204419261751533335950456115725778972404464980565711791647611766576373897851335993047471082985462530505326845033859144601137600965141609961866541868779990730840749011215457710261635498999176963178945124443296261388671450023225140441682887732530496974354514503664425648679194030861275720011328173636341415879458009363185063518960767507743929782606708629495647156021977070794430895522830142730733035390819892012987913145508356805582071580440326834183267820792764079475163542716141782488556612824268819259051594060577964831008684625530117132809127538763361435584185146927098906952659525862984307613403364527344268230367653978635462336162137347070824532532743415758975046982606975452264845137572231598592502333651911274358544754087920246571668942016210924720205491539652967895981329876668773158400213734757565005319813512864300563737768814337920724949711469735123050580079899208392680019568185699694967770960028770568176860419485262393220935158270631216570540634012163455664186734035514937966454637539613169373929623633701038886899919579738254673955438276249671711889116051158652405830211649300022355166668184544604303550755280378039805549313645491384135297577372339813202896347673081851256726933355519159544208624499497595751947174887319562568695801620541844897196528387808651169210125297757251229137904897186575016577551275058582582715719486517587216871870541841944877662575993978189360633904945726869062669539782931875155353437930540180728319985339836930240632009408358011835187471482352578521433272187451450105752413713960682008421511096518379452142905452255073487110132734084728446637337887130101634308301879279201017618503932123612973720411655729662486700278112148918208805706362544981175911456752235268072893535956698557336622040459311509823950728594751773678063064395023663781910342067132999103456241475802045528834173558808274842862183888695565638969814528619424018913184201583520246568968042828482305024240241837448082344171453517093031496722252577628491094267561170380761729205408342949992724098661512167790312906043221410263190514636636853704959957701812805899814179581444817089278673015383695641893444973777193987066175497684304804093009361442319309362789166163855960630906288680885944508315913351739905094429815909946225094842331049151547130532327389159622874951303239253066750270993458002418665931773851666690152560739521423410983873767330473785638702963403846317722197357036653633188772659954351970379868480736893175480644424417150317632595683462066802543157589580580603513812207495773806489251464694721720303909358380222938525165300655301004367448236200064275904094411863217795602856466949274653720512168857058803824907031384816729283514506644720262754979571676614990951029510010388526841681006724349300280673622687802639398856885467988489417121680646402576029049115839854126845855310263203308234470290795690649429266333833698541448237929294831067143472448039849675802940147703038077694734169534720712153875503504599522661020113702148958252726753555395921334099216773893162883398567596059423847805846179188846371035038785694913732967590863013007513849100037321324998621746470085497164895658276865903573027514372133527626441382016361201623111968973140967981739351101943557677533685887009890765804590198152892042862348603743401701494118505609384714946749020839450825218781217008940140896339869686687877781270172006256108238876220111185118314055687243334464665016166561957175556638816511221881647985566661894072491532458685548119958069160612386140415221490250288399287016566655556709600350691494180702519581678844955545148038863045134111539929952967926408786794758648545064227762291711862519199246958910967165272130051863727486626425227599704202300122038106576455151732598100438564067520610913941679402081687252254115790958638454992656967873312572750645926837672260805431845601559126872016015813225960650834740790435546554501959568981958275591187531587338765968112737695976975151945481295032387541263650315446947210375186251570309472247368907964203483231336761994618139106868341575360862332434678229169881097822860106073593032211806555434119813838609313285855029214432552155990566554227412954138500648608022238100888100165871848522790439868669856449983850993665791530869578658009803257443592821806799586447506625336897259623495534575631724903235135529222537181394407345936800525085297284089367452210769779334540212014051575148768220982833970414424325558631177571758327108916927768034130268326229572827305915602112958230409699227751573796332748080859281423742157385137118285846325517356188521803838031889940484165444273168421184669007634527316138463139867913543993924574632036952349607096430907354801954648387615424785985204845147280033662232330592809637426608502746983065772590179379815471889922614408410105044036925126809446458243356371784557313593207335819980956209906702160145604223791302958189398226349001638251273627484202878846690659921207242031800813493891710898103699118730131593032277018049692246497867543964211172665012570941651553109657061318782409815831197150847769247698043664012304481469677140737777965802293599607917387574887268902698624600875294568938433978852910553422928491986925005177740622974890347077888612148177993351114965630357065551707313601771243971301899696214265370838790405382369904679893957863842754615337560559170464363051750264697980506820143830659055280076994076013450254683119076237489266370271244420704049373453967068879813949385296941467892105263934031909631968162857453484954340975568822602588824225324764188628235605423471019532814900252653739188433601165676636371972177825981943788305097644467592706891348295428904162125122127611867105272734733702404853068614130547589500583258364553176495627563442684049723351119037472129946867891880397100715489072658483888558401428083375692482589622561968381087552814207424993685739313461011674332098318087046729824692963322652564682016697009174353174215862921186999914805995826756072061811608992530543621143988873593819245032112938039558629593547010654551513790362827355810758522156121430526150744479031709492171535677555177543954336813620287935635358218280187982049469127167802050983192843809789563592051525609208599105265789954693699155833359824850288332230195815620754866061769031688263002423664120557446357483889940646485915329629284233259007623685783147583712656884721096579423723761885457107166962668317044810041863304569830707796077402224927798700141907168830400522593483727326405317344633185253958767292970488300026628363959980706653983201840531250207775298990593877630981039902239980639462195084868818528008494657779647009922498050503755874892820341935728211314657501448485016455281830660860638371943617666968112629800257543620660228966897490108779337794020540948910722720813355713951948675392469082419623177803844584455414098640759608644453977217554296178615740419081339848835250234119444190644846113075617309835610035027741697432179057142779283324434455174954982669415083553998704125256498684725217335929228716853704567722303249608822718749242231811790894620425984327587553051339196620101581153877120219908591131067144802876998354295358372888268241457425510197507774444181359864123140510144813540149855384667121342760813568764384439357573087229683219675067976855631033380059424324585169434350268928414182518894397312481228113859938658672797379162910943406020223134208732853096278019359173216159105086607268850781486245014183835867741924829917661150275376802554121594612199452508409565816290819845905774381096553450404445217261308611929321528943871264953774871048719127167559267194417109217340689078852385539966935926286867420536530239740772805524599984039745595110856997011501382598931210293513344591183839922719139072294212484123932596794090681259772963024380873876450203461474592596064855014553105566754169727871615669025318737393725440629466509527614568465965398663318099604096213391359155022149349133029844334097056327320494608565285041474014163352432580815906369329921372178800768527502681253953926249570009279868887021544533253260308760117884639103596324619576421044666074578072375643768567234903771773413934312131533629203763785451248992025415872443766523081427144336236022313421784491992128971014710147077533738203339909500879036968300277263826795021116824800028705857861124181889369308217137154734659341534826811732796610958816479487342129099559127988149601046659381529745403782725926938277800184126680862985433549155102508163178912095411012778562215139425915109479819970589207905612467724704480471381831710898416166413965049973612249236622254282247446608385239246432884171639986423703489936653798935296227703868631332248570156951760282402623188568687679794196044314163241694238594318482893420098795997790539400465423519556401472566458946939114056532399442076526660392857785298654889305351473177166070421057308499983554987802562667153815446927390188068229444412168386422121988752296439159484216183522094700450536465342961682799631424551742940324262026122503440063776033674975151967266258702543144087852555158444408255562765848283922585533957574225682618849067728492773485352648640303531588816804939400899198946987592284322417389150521212306420157562612681871685431542495840199398266575312705259039591047076270281144700932474333141084998030895317152347226657170843947807830324052246872390852031124413010427658397780702020086866202856432323896232928191526286512323307977644202904397277748342246264946329138151689639929684120410849181205690412687328525867929685606423776446897836074494514480971188988940269686096132676469575305923795949917520037198629232236172157280010429776760899740342599856645888354460813496607542880504740611954204793615977422779650048091214320425610679088931580721629883000617778617438675852272216116554057949729708046632542456595240291028926139234862321726237754197923857399929459571557824952816181830798967160276486120014105015251458370634894248941778011663526063696833211176247680916614838837190443820401454324458542191865937263623309213882006040921556415581453367632314073506872097787189452498938188252348890212352937164203525645278108230972707278187647093479738465174585460853017302232463720217835732978411536577792242373473323759609917656861426663957970043721522360141674832175360961904842030096975365589470382845473163337725973918542948695788147262231630729879233105019287037243832151764366042240242815433438826272407786201839848120186140543311161868297898266440176054360673512588877709542851361250631441307943131084677902216840353412126719451569031165008757265379609221861637159655730008968614681238872159542541196673356614126897777606867084833388991573653332351761057961949663798894928555041038226928544318045708301818615504184879526271797856074811749862107096148384101664128925347641039007790552372161930463888072715970233900133874113950750322353377615705628932195831956309033910618235379091421182853646761400026964757459408810333734380601465202890148531118897962998075680186368233550804252750229904680284500090738667290851852714443492410883560478069190061125075023221238426429031165035047593982413742588153609449259461480695365632366898116021676337914598613204778519459165556515016495826218404288295928545995889063141769808956134566209608714500572371352040524390304969320682434560975583314005413444750965744727500615569004785294772999636911041137434708126850220897719864888382190944467427231917519450182022975619907673078752401424505082042240593150780967840425415974713043150781300799709834264239253666580750716057796018493281987096344870403905721581491291401886651658475730260024020582081533899078461496484038116869963075728258238850321492192753100228326892819923847546029415314405197841616529866364432175169505268485240855508093356376411841215000114114887982887022152661087902703977222035462825314801581486014110035978484328344798989820867676182495010458076022477116195557561662643976364822392675361787049743342339630905362645506838229440079440682163183141527343706533649231087033476650112570428861653575415725304735086124105779324250276086646995107811520797622245913157395072424663727394249982525081699128645231230136745293240784293930033931375577102033731718493227797943946102641705680878137337129273838419081412081884087527021066802381915193425564435068807010804302763875347660258878242834300533878586559076804370000952118145586458764868051039201394896363415645522123341618128627813615144222771630648622269130792671419272991686442531002054340753659013559143959602414348765540318607052693749231404725056904814330111800876267672292968199194838741669582257011337071836335957769239997371260047783323090935367504487017156666434642024638542657752645220518345096895735757671219559462894069482219243117586147588816592372176310579268156112324385524775105821404073688280131524417381694969041914868390680490246388950037411819430305113473456349401672181275784792005761088330717687575487995794344944583833533506464759510850416036171791687477884707360364501645278920070543522486525799865710819105259754483853088740789337910614928655693245118075895358296994460135290757645191382522732135613478917824609161964673455843328722219694131910841784215655446210768885743909861249582555306522603115597392238370970630162463940896360308976600792149648678342108544369571537293832078533343179986269691191068147283142044984125709573449857453907734642550098326320688035096910138665840046987506659042581574683757308881536241820989637286325459729823359085723756227422789645508777093193757457874248512183433318387560755403587791605273393698099390217147894384679511531385540639747015656423703134869279518755978961027924298798620497159199546232521032556762462634552844065224920380298611222246821041630723225733701181994165035475252299960488466272439638892843873939997265588623227631334861879056963460826799528550894661124541162998314087973580647885750946658055054160484134366408272504399859567632650612307254100136584114993553100951179931071368755223838801491555813954652630176122924624522206538089491481902954139399956774341641501854944420107757548959596629015578105647855222954061149541407416098393290586219146110399116797157247034181335609329591830676087204473162316680533126262064764774772503965113414138036263671652479611448083509942488831522239431990792451151679801129077713563174244903362492580263366267291641399442509833515269617716480380997776147934368692348700772613684081495494820817919684718377630109766269371758866390738277539087244267344850151303141731180332464977115359522589056760677601977936078555411335659041752340570929995338771083479719603701072948477327581570985364739555088843624564664978408513277971625318496977364463459474749126310708137750379154303209054511957067579674185868205027130100083790206432209205077268104404727211401158630299901020440102444537074439482468527907400905688389459758786655120458802373027146956787060628364615140314054114187538421152324786812077973358778697966339472165848093858978448359463571676205453496811200483096901614291915618548195745141839306233613471651949797960445596064906255675057795497828926986800977484325540632741015163990668289859830841301160885373095741053418744696641191570620460269042070957396694103625842762348240963615154277254243433201085613148991092628654512036744068868697867780594065616553064812751956652769991392352242541786625256019576533321701494565839425419606695040897833765673190315450507272310629489640838413218616093375288145122704873956490891443782000949557703397861644076642572387205712838038719243361499879706337676039551475721717823290742495870440279831512353318492682352749278010667429967364594625564619303628516071089448245870771656061336759122590830204886121736820715205653696390107896585024362151092138590453332624201963212295657954291336470796071396540916263900786029132878584953106306435126200279831236976689794509398302733158177550774498805155103053490327654512456186800488527078522076310757419094405044678080208711696553072774073566592263618118950029025987891813088519837827795787050566219187060496081324656769416708437409009736560297190352603046205672136100924346710417692707955944764690973895453196094605535446314664754500685638213004834408375763208245326396726295474210313483229848276733747857051163442615664198386339183057544731002872450664016252376893318947927609019548026230994855462410308727009282043121853243910092504337338557462385913665106118669354765479669341729376084894394866693101831079911869325850133437127739190394201837672054415722625361748294665039355747956261152562777797298450498292424702106079458605226145157763811449079192287340955191045784469678160212865322557446613962106314658386501020501556473281156020990574351083436247581663900032124087694378429013477734308387106432796940625251035736706867084429906183663692435922700979119800104779484440529960273236658612468126394123433368918324999681394012731663361096915390326804219184146264898946631070170432875896097145203034309344232873648372317833035495638484401118309510882032629620946010140556006248096589734410647772355224100683214110279476657246278776391279641819286206106440039343281150539534932060053671953053577754686800627496579283474346486717688077438167459847802174879403292750107875795774073836395614943084831468492709386428813330065598575372329047520714444730347554715949276738475888930689736404930427297640261283491074130439653541194847523138465367832614036406209339854015654081110127659218139473478765788304180079406622209566761243467300632539566622519746173131254010516862495690649680952141562237516538053837625341440906556577120207094525427905804472975640006647156011459656508796820874524601976217038729736128530206732912699715496482364956565699051602955690737245315718648275245371198935557382722298598542640290922949450143997185149885512383400256187936223550329569447448017478326926424314245089394426268651894931948583613153505795674788810918173457640974711025373367060061331890286220994167228573868801332394946209337716825511860284749082862594851952820307437012716520497797285961107571225428927931892242587943305354901412594129333840474360436385411590737689962549221763999589923739256267771337973357530913861263782412632252733517117243624385334728118225260044865694657653235857988115183908802998599729418754059381103966164279352956534639656217951233385869094477631524566477610984886725669292166810555955264011351486384812531967787906070352799066255113739252249666878946436752430462388916097750615030532800603461818806071153167155412854674204210013655301606523352110046151116040060859327129868988728377776417027596922616254410465777348491493144859118982105978022905187053302952587011993332518209762288639027527864699781724960793020670026427640187425429861589679638128414016946169659087385728153473329751843703692186545030300212754999940165095276895065383225652922559927172396304647020016465815221998627765464077917663014342768225809167169938815512181067170770704471055301073085097916507336620874480883939255640938335335540225557008985770699288471739522242414339905516190742834069505794613986471431943368446181936618857979872298694775445933338929799862961178138638955733365823214874672364754525544837835386782461561817571830801412840368191800477620491502044435414973164068005398336683125928628890160946597833263313803899881160634575367450657404672412995437836457750768017592253659466467153040811855899686041941259885131483647417752608262627629658703044228186451224566333434046890399803202171697422593259839301982765716543012018413324399053128815994626080665882643699851161588268838350363034225682023889976633050638547454959611599390159492945864111432079551045398332678354112686113552090637494441678382371074918341562030793315662452136764805638775623985003799714352220458862854927480329822933503113712063660452409125072374014549809069404117176704420003383398454324329435418859413272853552024666642572884664441492381465252111164564479597451582001130702534437837809439922440904145205576636130434775768945695197243169676443093114202312087586731725366568186713429984376322127098427645365137663350396030796390807514999933619217985543984912189133481907875140341439168427352438972557483725315809993066760645027922290860524456761662179531425568124849003969839401351660847456392486688184788795366371658619307448409769690873313689415622244535311390206413251929915377599726477249903161365385205977669609128265148063273617081305887329032133134044827125110838345416007369406855028937579989167169710965903430071496366798258479893200366914953779863343746343354931037964359819279082295803923370647073841538147050583004891850025445083489247146542646565819394081583484841480106698682360598470323198073468498720441863170648219560993351959276971742480844847307070908716774839280808609618788267335766492250018702641998805321386147932278051833175516236126696688879835785631073521985846281472254714731951786524198855775376118269128919567984850137464154811135966572465894761124046482839446444433645609292181410326883140126343444744577907820896478088804600876494266662131723827614020463851260324122076003430611174613488959989177618607994534255437891254048124138660271058309182784758287560690396659681514515519456499263338285612417271865360111609606435748968731839623551737675022017331842053155547883627766408743645281045963136221159006376957516341046193585350881879634191765647891167508929659532231506718834546895178016092305437922890259787606026118330401807751185351259029154089530472669414476079750946088843361032212899976874142688500217913849850310843437940378614685313500165679487589093997297872126368217090773256493013390797477294160959512099078824722355561540472860085079630858693901313733379573922007422756907471349551118421347308009344509270061813440897433172890478290285100154899029472470117702062388101284021922215290302829245327446971066834629121552301217774513618617319817916418593301240412297777647568306002214285159566718920397658612591456610657237019828707576793261693158741947144948337931073431932081718550088755876394332214450019055984610283579989277909435614901790724846764730983286127249545144187693308290927836146602952755859800389693649156699544836210790305647563088472312384875108696687064769789492851369058870152014117760237822901471012195128754682298154449248142345044168822306593029121668027051476744039403210885165385317722769729032289182421950479889442530457792633457526375779862140435554886225117179996649813017491617220160846141775315704510615697328363816239172650547493518234577458537717720232608808315564535940201675641894018695772474047613008910551309330799317330739444335743013242826362112330104836616824788827131864790556236149920679226161179854777602531483736156911586171006568835863246555162035604908765427284335549297735584191408094359089957557721260641402777007715508063163843827956221517702546039118835010540201070952581990019497885716202697005009371862670165057392332533440857430805073299806233238912718236096635001359486903607153108895749930767484700191162121160986050292021587202822686204867278282454554674485732122349409537088392124249271196640439507750758249704228284868145596041403860836595898457518546395651024480042540191767134445949497051513351427910429637809664395336971650998551156019846860806994080698010650533136236217472655160179739883131983567243263763080912461350652647221645628308086455979931288299850389527398264429146365583256402349135819873111545530018207330988222050122132984089497853796053877999735374613828903242806855337102550916005062969738351879238361934384933482750694168850532784976796158998079292529981344146509611908802134383345359491347066634683532943706390238235555075425055397520606511475218174247781972724828950361182390097259977133830518321797016158948182121105828730326456227973793011786919791758841532231527016179714312175351406419896169684016106564299832089055131302707964994523256084584031429909280626463882087463371852872367304284149223346730022423300131995380748491579482574227556430858253722058797867137513513322792396945648207113630204974994469326927969948282789949329915952205858248442199247126161109209658048033390680617881049581882060596073544058536572473270697578017297965153578285388570131361691688848179386217677731881790878092681210863994339536657982965005120380035600745334401183237529007566975063296452124636405877003827674072285629917903740358685004656446269138961686813659524502983552140191569276887976047177770275351038529472849749883240566706633690566800074572499625729193193517074368002860976194887328096045762334104975733977857427269785383980217540518256311236692597648605572650334183930120425487289300035811209135104310949857328819724236004783805427855978713491123327818833892768280053102547283124658421954175686723498655551605433242811905612927641863903156951761649581327109316436025126456110417208470414550084020507699392882850036926620592464730857969013812227563822999055524004689135756092912349485904555157575723234458318822247346818111760482919978908506898501100832568363355320678659637295178061846889761377171661870046637101545664297013193286455815932397591105610514966658798360164916240826638525011515449666249461812778213422845966674220402975976452399160988245124279064258501524653857986976693234486752788158356842576041419235274961038471470491749210125171742956771281437520804627591080621840978986103224991005025463884021270572298679219150789229071228428582244824041029474593248897661125935074694779095111191723413516072700666356585990673954682476830813336811010858085086462899534360658149422637816736310148301738582253942129081013590679681378975111166430916401279171845262414493413534250122214231855688741169658133912235637634420622507072778135774473020405719688730079704443611326023787519768471657446765287400843271307038432890400742537775078952254152929949518660251024632706097445159915712702980281662135902903101406075122822522965500534729947914649699758411612612838676968108486197956121146662969191822142775116580162553043130367881702782933326004431519245652554372670586858244569271334841185427624174922654044745077812713091449990228522635723177771495531378488255685769526024429589286134575358309344133578189220811056029496715517833819042065429065915211315995231620627335971900348593883737952973693109170832564664942005493763405263862711591111711420411229180318485854239008221499018075555888150796577288584344839026319749416406842127055076310630502946190941056637989710563247737187474424513641682872926430243640616299228023083020475615972980400608432105687166050180440694409500982355707322893606250129757263051616913052274854810616464249704175128275102031060533666934673493715623383587690384904063126505159730164173907480444174210140901413294672094625055056025380009658851217498071347013193723111532921691073090724659368504259754681155701457563940769005244931326486411263198761377236794650255142959419403318455723392843890145548311995430721042853331634479565261035253658903934137149398490723187111342737740824002508785769860063823687664222760116674534135345470872676980534304143472101046962784288921847689883955341415020219606002876218725988581221082679522606272836203264457042045679742083592414062769631816101238829440324273142879479100946435440314768742713741362079157295446816919121191128634311037910964153181003488881247749624931205336093742200037762605454135994383665145055141552391071630045884226344948177369170491571790837280782377101440076448815407535484790090197523652749844290897394959400675177571720169116166808834559210934764748459743011917476456639996562571083805200023450182774869636438476034166729939598190004742409582512725304842176352103238216697374998678053101478160653549419673209695990999186425219278217973041487967928823382118561045070958938610154122838088631672377274705930037385029303120714889972768945277801271522131676365525053327142642703354536131423892881807130604632728933611588075276222937904670262976365529596449460378993722613154932431156288089300993035466328539359548796922945769340718082853453817716473151744752446819792973369107640625339081273932813959698092141174080661724711770275811159094694405118694915150780366755591595082254096562386678936167795781986335286035760205497362843657359412212582698282126349474414192011332013891081879539734614432251735142682987783998810308021139286547626737075878181130550079063240098244622909159848935261950838055374249929075963551948533433559207116063990988992581707905351169409195920883652164311682626082649429597055890788936632479804990311233082692451706205485082886866073566024557234239196595323858777633395224948066764641336523561631606719789866234979333275562092966519507616827265617370051250339155747342880096022781886842401622220146872849564318781049502702076123288475506020998113190810266829417441744046068861747648953453638728424501244242086446349791372931386816867629746810342168049443941908602863167015326419159029539208143492048969052263727239922710597859724944011002968712375589834423868417762758449760224243036491172387170274856008870492967555936838734883419294664135074861747333220167545479285359275685178179009247100911521824174334033805510654928252406429534384955430302850158150087704774025885313858818675281035799092662466071635359460553599741906151289392610159445702538481317420335951907740942101537621470868101642930683836662524476830789565509298557584885332948231779330875494564000958987393672382336566674031840135907766817963849780061753690410539648439117129432529838453035039249727157455349773504760580725500609056331134197129203083796204643076045787399493632186979723874751411831425374566244696664389497176015904757278923486762089017134947826353440730483983534337141267884739578894503435897907348684291000686371873438014937078081930002911250047867022751592314482923625899538504889974566947531358007814679305656168744928673707159086525100181991786635864495896156825996215197980205239169278030953132581772514001442699191377870062693771016452661861820849371071876419596601459441310320685809468746586167311959096610668082315103811601637968163089484921598514557813685783863946579981189729411549322813908973185293174939001951754794550066007735050344347847121727148422760012652198838335070037823617898643139766158864857599125596638286801215114866558938412819281029181126540268118340168081867782511074414545315597656375337364095078606928042276680329612381583897463819828931524602680425347302743310378648696585608788200190729817589802915787736392518170737038088213292228515493610349827349870600480280423275375648325637469203956382982181275779045090519713262081378707620855289001554476573558427063465742854433332490497281380025940162029309005966010023649890328478372105367100787170289239240863406073015072435399255634053588157973705923849641789360027756728062075546685284468902558519725374390011101074516591836309236313366652152324948960520987881258269134128839543112796904296657040053816074965386100924025406604139656102566205853966078375816793901855703161503832998995232158196967367835599998996462936703480734012451944337870181061327647681711681196735520553031548968958486457323126057315845091719005982734368621535881656309071111881043698200399643579669253091855921310931507417056522707341500557125043220120340842973982462011250857126743385225943053738839391075570109597309579729614206902760277022069104875519706070511108334335610732528986100131770110152296819520335268239737819948076226698642427518954755175028643596514139189157118324710597097541165287402268551699492650748565629695301007976585247753638385562058701332241458649259969586119104282309365987789057515552052096384725871426329973796150123719979820201849981099141684059339995049117188563779182284023003194811917979360932616105071253120133298736220669468296577084445365956157427809779767058346424756877780263118342643063708046940287378823632930209399086041578108619869036480273805518839157716643127796420648499773306520967227237040184368041887180819770150998920243142138289707582350666306756672655623361169254957737964225326302128884690006720963942867884393176612993408416338655510801487904581913812334361892052517946367029989365423525382313417982047594761409314794298030397310411464109203834792063203237775066853324986671702405298436417466670947631416493709565911160303217260930342787666537232901041845731347876143802050291670426859740826010613606845712615963605955735073877601897301556195577665025537249861840649941879355110993141794084936588833614631165555334521934404287300059824105253822289071532459217489098356645984734998656499523469998538143254478723727175558961335277284134585545736811001323138343937612013951107060729004030186801559885139991557178127104252224070128800922062540132079844641071016456328945200419654914855749134716417807275642576713843547384875953411495531040399953192379342368141639257684916182262216760245647869096961360172786364235387071021479700530827254580097338568612610027648734358487158088437359665219040330209754853750259261977136363367952078595373411977061651046092659384377085635815453933832494746937961173271179019691054322056245845896976711738354860137877862532990632053543603547309672236040020026414584539251118879448694867402349859266874993615766505015840439465160819602311597476989464335060116155090994831019857779732578320282365354497820947981192421484442816392862199575249174357992264618103508578508399024150993503584027353876527629599420656871372253516094956120037028686479352167954264211443578707313545697805427728244912843641218970885739763734669162242755519509771591688674756014221701395026855680464893621204128447188797841173952023818244818046061031184092826735460756408236813663829986168702858628784937463484565986573894148686179870603654016577875642702063290146019132732202233513881466336609955810618411302261354261337173399325173985302245031742061193427999825015721363960928883674772990052833112518326600719300076111944398931041740744811213441835268258606288563389082729589810760585399860325107212342523084780425365478423589538252879074698004857400484490539812158032391205389324167258271086407197672255692788810067541462607014729388752917676086770217038637494472891660519271425803853613906906626022014441346702203123477962751457976344593306491748824645290007333614172672498762131168015016727087181376997990320147263875167338004747367632393325820621266330678552695070211537445590894696559869925013259772234310599359935015191917404348978006652525238986148610797026350971738244252068234302353798494504329450012593452294477761106876405813348689666603309299505550059852967538309187884539752298767148657368868738633694951556742273711768060257830735171540820172188474756536179445900424835280935518572121343887014467723814185501551808184234485201703277566344242492682901817546026740282874688030280362760130351606967468208488012393419397045660491526716768093553163302903974918348889699872845773322340449494588993914907491762723823994353668273591522846449984429486527098516673867504707268778674363840438557519024306556663522503436774645427431807366507576181402609005102173063350090876910422799889607105800765038728383149621237025482891256481993926668939313804449384250545914167624397873706510212345780700577384826599683872490802827359080802769174882110171489268618589482814168204947182916000116691376083736961147991485699672000057993180263800554767585305335361597438323853698531217833172114956873920420137712978321129060321918780239875640788652816706529468662487757704667102293006722008133695725717809753537697729774619537943477880826419135824927556352217608717926102417934974142589138658761636141501031062697803129003657792348435915127452676348253570573420910054398751530396985708106504015843424215414355633715657133765013906158526148806418309289937673066875944157600688387237519853612293039057724795052053676097495335394523340552306226719566801615784270421933754379360741504390543686303019727365924911744380257453377192667213227449146156115398561071510870155123722324312512125164035894464977723612731371637135182519222184171652054017687050482509396730110785851358179128229615447378574938927819786646817911399563065240583932623831448281756162952779893913017685535419992322886726695540041469863659428039926256951119437133061874685072019449661624258992702457256439088635670456975957508997052737531987770155481991636880119389670846447012901497542205244871012438933063992194088877164939446888714854635118134456947984731818414072500859326690925673378980460043682068430755924384839766599240667368282611098801698569193355148952244574221718693592307707169472191607025691276989355651268899161574378736515962460448136032515821849453073371253758626917831466330994391539383481754025973974264852458883036923997520298052396129429641481022823900810831932751830853426510445119253503732471050529489613030698461039804672809493832327474451842588409523468832694278477332550523365095388768813921970974794464298249712329452326300810454813650969026881167814759943813455597280100992409920238584379740595953606026951510458520653860623863422540651340339590456674181978233436840466930009861954994164928673025138540094961474702025284307390082566107662415651394940077324277068795682579188757720504488481937739182924108728705461028508760772180237588071474230279440636385179299448392570698691734116442389083679685238996160744778113996107593414260173610279715069003925214518698725152210553227997099602127475656194504629347978285545164498048993977316235490552397558243089750091287273849583100061196455160275288421394737461503795565895188124023586891165694491317074923034174341980921793571361383587766465125412615069579532754608257020733127560819386938574650897459937043787867892256070213449210077183761152003469856323603551289296247020787537770833059104346387354151545848971183699877201347907612870291149547206525517288318735064946763931885821781040039630577544652336975450306008468152187868337593653077515022974904560211914599228145316768689826194092093961674905306144556285458054089097275153681353521782336890400426964135870997628971839168959071859230556907976000311797914230103118764708647486042653426618919547232233197588531361776012899053359030992345778807218337876911328829819884322123232641362144613677601605650267487694256949057055498710462181550805350140402745816990712605645562363915856823618741790115815051214669283640025659489131907604501114919284870517514518778378107682093250102329940367443219715065937787820219599406006518423458776512632583389958763642815968092403255019348426920091506468488363338642067314145151225472228138477210054334713411280930029336739374488348187604617388350560488258788038337920705130891762074082613709127670863394472173040027207970195672747124775877217372132857419839089348586058563896161214762167097482032407008027660594434617780941168907800437585015174054649295137842270609999544036389958832014041073092779158975713860066375423406034579596618926215342314432502905003378463729901214654342304053007818289482738915341561974843877630452389554340324606471277805809333411542255498553420645142666055699206314200307671117233300641137017366770716607413464064344945970594784077832810659167196282745045123065911407079008251312777756168741002916219352940881523245886381502213263763837828013741533512010878929293705808009908454617769931417891768137958031235981584067613679171780999289404220933254102370446534909568536782383922759782385459603418235880817174762208930846354410630574251417830530668245211016231152977435775268650786520224469182205234686871090098512069644609009946708385889365514552077227354328931960953959286264892387970617558515682796806709783709655524299796084385324826795301610735300412500430143885791290715543812288270283639933205238973840043352275198967384664540051044281770346685824915862087508395995922756171965736267689553848694115111398898964485732354315614688009546827257468598177267639424350376151762273552483037836979978910745527054684437174367423149221243166408952645297364321894560877146322171739840300184697604389142806720778583574924016280105426656211486670763222148676715619594913326890568518495363814467854332200146115293059181363382685387831812677351408278863436796789970867203399327520734358473187869091804765449861046310224508762499420656392495853773371856458638452741716152219435820551042028299642518724893077141450828982257122927950193859704603305539109322988571340231623069461909456147483193024010124201899459675848306878060419803304189325756605533227333978636464479650861414358534209433465950760463506565315670938141233429368799873544512400599362103898904697350453697247100507250249550866777270016918334693525712559056379719932006804008868717273373969603328836875549437051905439666044352846032464367622730411530311246515802011324743021438869017415183667911316807554178041649090716707944779499270994511906526218576239797262372260841636831810292840004732848945944012143378282787985878362711838760595664131803457579982676053469654123637876699688605054052417005849389831170769259467111305345947778354951959123161560403955819010931716278125313613198428442126527433149056496437384611600121431727568325175278563195776792860711918456274350764926952466509997797649055262082701909091901571224172610970905524886574205880513477723243976602011808216857734414929783461009978709798268457690559995718959073150038908109502121817528837978228683366627116086499987899134496404068874029480129394582170507048090430627968338246981985644211989110093008276884991692183440067594037982285493352360715843484443791392349745717960598116442208918354668961855990126855763147821583559138762942140347289770523956783000026314208466511779021366871676506131467121680158883987613731315828966855348787491290844350852023419355313576748283317973411493596898589802358047469805236989620441500925229201623390739489535111614093955156569506229617409406814536721029760270387699884750432280805732157539618830656470197492075353349854672543013762132880523032185743985718968467196528471542061174161046586159415199595598285472275995275716093154448544805747263017811634449368366781497521139512865584354908004600046810079476290789102596450310998545310061973201638143505752819832246586348840626716290067764370785489561306404995967976600697835768370162699732183314431848174798753961502100702699090791701961683054367610628861745051910792194748286568994843161914692111343692199678722561880051299127921200862053643349318810002590369027069770333102737060111961537292622226509254732572799093666887721774718979290662230548878807923939973405854774430019714957360296940286391986862105353228897808157746025058304261009587786817666509574501866935415275141156489857409960768086855740436905831853041599759979618333552383536070868039935291846842291841499833484030384512863136816896622381039523211597313155138494416359988355265408814742818801902276234128955978270965801453607295622647038385635279806586764333364897783429628956804973567374918999507678929747688281352963510438676039708481469454634452616759789553335917891965559295703832461330529562169574642732188445276741465404330243822061198281402659245373082540113235317121162350472528854465600006932454963712813726374182804870116179198054390384801943051002282870375883671130166193431117488948579907877867389486802561439211421896093236229594047749279446738531574166240678574694716024676047816776590135867178087789524864318574990384178233965387050956931164696439794157932423176701123725551129379516541640860862293013889334562854843470290343215580049449704739189213626266429290502281079270929547842576299307659416822872919346821848845819774173236647100591782151722095657164952633409747366657727087624400199067584144912498317023034978422800487714906532541006442385369944391304598516482563014466804674031975046349372748713860857580652306815889461320142310304365900408220694069870210534753687224270830457329840975882171005687651837172607802105152799684839289836841650900973014836846030985325759236262093418354544569273749073783711301633168993110689522436784785354322924929799551737779359073185546698374180656333034358543931005616305728791050988982745255859508024707808092956563508980956150955936740167843079560886218526575821897763802183442748758852814160691039952347190755358144754471917606530522388419342417255164205936492978773471673294194428174002312356025336018438988437716537493479210375922319546858435972131255111681437663124037531900111198790491475150956359516622844575621678564131272868144860385686110781272862769178067391496869337167015643792936174422771586399709306736291306933392038740650013275031478263038310228088987696223235124332404107727439891137741374113969602991582310939670118847121878601521791874442914035689115867178134094523426492625473883115988178883149893671258737894516300279529280016290117593589589414315447546749244622865024118779934148891365590125262169726644893594279566082725342978389895299784419303549259463026744193167829593955850352548839924503862168442908787424234393914850524337603469837053390501760030543030496061208082836279319014865440138094806560239908721385163593013633007100178489703353156635797473240137896722060789598812841551153542195388608797296753433281092058577581145510973779905276934984846953812996761160210808898511517441502316772185777055210737059829364472701023637907112304119692936863392313519201640144676582114421247633251529328973016141922143216411570863406832831011485458080128167992106901746025366133115527504307693557806179546747840942574622314053455170698757539829413092183991089506190980023500800050636337736764792892620809990038634438085674736809288161601412127371508396938300761498773289872576010236444689073841424053021949428427197081317828842275273617759891555797439116301404794760045979850174747259704505509475294207945756126851223063695697906601338893206500475036749104207089689870564218696142229375373275265834636483804690656579182651426206035689996757110114135810632906943038947236467595596566056263450607230780721574130377473946901108995201127085269537710822293200834504461622025530103065246139345436445771171800856981386300637869008393667058426554956907397333306598237859600304981831364431572405050335816246707901045019496231369077233190173353696505853542728754681659502977923515321503932869510524170483067127821697343592715504446432378001456509895653262349322836845142580919315731277134920360927013136932517175829181432904827927565498139502071288120812049306159665614737709635103703240943070458074848360455514058240803741319914037890917511405820606657398503275024648709088187031784660617068096190152796242675511792300224745968473291808710877718437656349629614828854924937827820357548228695494883695392837828721118133323944177452809708373294799971971401939793842709657162502984389076293663063696899867177158760578829410801083993913604168502160667666885163966741564234888116892967124114652876943698312226236004149446306977379392489029579525956738315075635353906058050740643870852969606548131610703580386637479713808987012640228159575364092404194332189533565736958236221804195704776019906534635189041924582905477987139706064746457187431041203981529006275372907696388625177034069541629347902041913766893813653441819627230428393995143526680636086955977170530892454113954665643356620559036369638456733671850042295142699649767868079309493962933860479046747607460664313445952958425417195690923164603891931045884708858430346665824977771953198589119831999588369880456918831685541839801538457841675774491610105780154992428143175711404620124935504039317679301233320541900459599271334098679164742779098416979355202676276557841410172634609921127345926558402591031674392767355732833357769006761776581299789236186701256216171405965970239564091122580384277454555213022202024395832452689322738877773233244036470051407595424501683196059469145109864004474348338134461457312337836782693143799141810648288706881235490223838323362004802993122567676396416432108353626174923441047391572875227360740294552541460437259311472833061104869276387494969594337300041278858207994523129690002432197315090644582808147065279044733596776866892893301617318285040714229265679846040423749914973563124295120091262965602224504072955996834523614522363173853435273518154023378827430365368809783615040340174077497903069045993677872457557398585536455797213288942465903653342012217289052292916850525086166062927565634974570441178034061887918704829461108484943487557336831040630643672852799661196542490387140833839211591144844246947886414330705747699899985488190192006631368542960363860040827095700966292081029643344317613157161819356760668589099875261713367612275623180385359371762604937245053081050832616767961537416043592364462222863747010600996215909929580015072573430548956500054434592762447434205007062882319469453924884041201524799847789549634910054976465616621235915027611554552998196390306446962159594863031840499049608198040657914094686565729996615162231721139039945927240447895154447180469168940589663859911477387513417102490354222092233252460119116992082134582223700738600006177898664366891976258943422656925402828447495405536350883987257599541725572172092795865787484031142663195135606370053778129575977768966428994106043915883691378275210755846822970991804535293204108924634586056653379117920753186449879713439767373337705944702737926012629785054900597654273306839151697706291937319600189702942744752767752497941567473762864952306857035397757765051569692699647109687981760448146140808179407738709917873853309136785690818561818982858627511902301850077718628379266397918636485252662009519544339087958645139976776995883142001058184445593818020745772229457308572372680433424668623213952643242790841816724010775556270358172871502128898157233167086545620886305043731206414080413560378008851326837680697067054834941920953845584801592488161245535015011364230288331141707241581788985864232234353473502701493558299267345978180260231212169488348378207390482462226802979565206628794206050279675000480036463649138979393837108797008592612424514181627856526429275674209106326941893881793117898377964524400980541263453978314785237874742465484400403365403167395035678135468614162170926194190921745024877875861353240633680375434797056631126021758110687194298798296326057792650421865649905791510049535377509038305710819580579221817008792040280874897176841676603312220540943565641750968188031345247039857196734214421166450294861357628803109862130097545707024368302059995494092136860533164232154801811156412392702484135482472942403614249423446131846108285432931693275127294110955641808271223689915326766356384756774021501143070930446158520239041949118719597517280874037266684464913116062653827311487822122610552536329611693338009226614818103415711151913766286259831979107445910938519635912415500790664710406338351517245172639442725867479495035515866085393307674408841036609354780530818446051623858114962914326863672795114364673377007929415499567753302025257778052747558917058990440303613189524121293524495054125720784571398311614690264886248182887683613778259892471908145928315292906443919423062971759036919323355001893193820998649392831718261554092143278373706754100316470409879644511616858774131472804818999800748784259578339141233511991932108847555645343970086033502224636554370808699038053689444759001268122909698486764175093736024963704309985634355040779161709850623535763165561483173994531289582590713484639185712393057240599391868528735460283069172921106133004635833484024205145726763451951815708743272307961165450184588276366942253362328434244742305556388318105863188760504865009219627551618945360972981425558825179886681312053919878120660343286197893987260544159913769426126852794515230990323821082191464747078883228178568699632796955642352457209942057152132968736123615612641557420221962782254056571027591609375203894780727652094048952517209953192899133525967791467400176003941413060233113205006535537667296977845626513095910813292537584382409043425575464835456194756965807367249131096220071513927731665905814313405818195491678185686706238196302170941788218609752074501651289335678359127443437124907941065352168819590624476608165803771119470891626757158852796791475379565680946476752911468493844797276984306501913550924427661031110846220176590875202896437641370560233720233513372223121237825100547996891395805242981037215981681587577284728124107156951592904837564909469342117718143910616581284787984964481096141770842242447933431624212312335498285240235604753280863246731478289035346802459919392326658295875126406323869564690444505578617685034511963447456724849478816485926323487508780983856680689675637583502096327585887388791171963755443765491211193987141396183281717384543731404695781700754403000696593510816091941352794069979503035885739542839995166230923346188278192686712015558153254315134380101704401843421329583164230230733955519562854792841871655173137422969118686893077529544409738621988850959955828628947467793627641902061492734161520346303226851683236141131573365342192084168271973340591209682693098154140633745088500390172966753683720719811175618176546571632410883874521898098268595141149573704095808401087989710963567672822880419244980226084950089996448755523378285964827891181233545044095186736869722232202360915720079942168791851679766697108381570472410306337866925778004125455827912120069290368124542626874808919586322531413259891741418099914941998563109054805627803492503025501515674055380194502840906782326949830171908262373775266204614580193076440479484199878067406659964186601634353150725620918690664569654499702958045883672498763379237774612322018067550761943619127107007120878545074162181378801041323577952926771342596039321726623203550465349739582528925653026811961975256090429260412590540814804565267368333509490197819782364068457151520406961239218334744373168319471971472466832441721467816358679499618126067868354809161883490627855201079458357341153308675060760033771108366025654081503580890932741639641129373271367359719494134687624381932211566540726064112289180505428111152936454036867669524144772908931784015998212764407405872521508293252483840309486534736577463460680015844747607672279739895775897374728886429663291341190124236528198339650466711567100483189087982492131100201934201366907156379901780877371974773750094919699916264327401776417809024238551382444984077966709347514245423383843858577662839739724798926978799626963152164297949183803323386681404341009831368728052659150151276421094787012282776504271163676776448857137220512210797577436820437723376253015328178192919480482981046161519270072401892741470421939274104910110369229783430188662052702635844817225560547180498199440253527336386218357454531298280895687360803247025397027512793863665456826521262111831914808613149606533647666387910239555023668650637205452961091331697754332283760975642948847067148827183321627316648157219891136282114296536284400027798321939821652458015991333382287524524106200597605128423466415109646917687015621172485243219090347530175411086486927587857917971957152329169886514412322156178396500056557597362592073466426706988619651608879274881438282189459321756186461289489842037882511397285261764029937563880880863774443531880505896937239717808119045109180680760789690973000586603730213084521224125401961332832966938382163485372517452805102062269591902669392239203044419107679236755194350563668973823175966465689574999238842663372445660608057337327475764208376715600646274083987721346350944020166066049244163106707359347970600865799924283172907269125682460451404918813587851308629820864360184286272573681241664873121246365482877415327629110395305716045350794802289637167196790729870286975851251021647895298538614056185057230366162624586620296220918362862909062928900629922756018769298855146791190382281370591122434454268459710677544574388796314735516722971860936669088251372631339703372361901496515952391160565605490066010785370795989332416530160097641549511250029004842212039825448612721043880823346610632120212722161227052237283050090348163991456954588803624045849259875156410546823767537472268046818827296516445983476839389520080080733184092629862244646070494385907940511035961949921306157175190620329331337770044007585720428205311153662356526798672639622982765668694738222506263187995081546574504233485584432049489409906141358162048022687479766603417862435394057108744413810156746052728555700240687921885282008301323942179478040852372405321597021742726194111032434048231334089253093284748512345350246688168939052009426924386298786482023592754236519662953073789862388910528404779024630328060967044976221619193765667253872888004977868887085303824719711787468037016911796312932686436338076540643228692167342794208491974569892046205474122797153479017496117238278736148142790931936545914156580527823741588955499814869776241122066038090583811844419367673587396712684851709031045827766403146716972704988758283480074179712825588480021545870384674781123818343096372393380057410027458663277401571601955204350267587725975500849434908020503621046991087312722547491023165103248655517421443445089959378876317992304874918089671710146661799484275060459498640381013513842879956851660195355614335717796060133350425600501834221991652296300936572520393668814621683395182571472929468918488119696306993689227657604997597336821545446918838980165206845350685086296133944849724104200597795683216491651310352558199093513454352823713232112235995142846452276016245497779896523717612345302418281755972466230655055524113989149108137889784850480574040053700093421372973229378691312213810296548850883430225809521456596899656784193521177964472518400356972742540409129541463118635932743394952823917547061435709496086161170265510814071273984938527405706370155394552944491982720422014522964899847539545467743715293915361522246468272750220902686104192946965419986891874002017349850617727525929429690858725368106282411839083881407257845776566775960202313247107036706897845508128127948311194068012206959453493824885361842392954882360806815258839011057741967470252816917986447598631325237380121304000364574841846568190950739293102606803359087534953268834188988415851265836337489262433399699256196639748627169162980386318266013593970752635906544715595865860648853448810034829687186212092029675552938826658546400473227057299175337635886693589013863284111995269992891435332684993940570995535852393981628286714573490598516994747111744727896572412868402932079754306218939273189711215525541970459801605242158334694215099663834299704626607367475480759590316808649871947666839947240498665696836834168903205328531778512077024103879887461363054800729411949052779053591970527884426985071139795972515332415646229582457960571090099349314090755783758657581392475879642824803560600415949806597384343877984877614479201678795136963089130503900524541126079833995122868012491410139255650841069736338911813600330741057803272219567767035167175272667087296139361217588540167382479700722602189481930311390427753475423822328524606035072692353593935982359980880832182281988876149599873510209877759334884056723898803198539938960458212367532639713838375010680800146887068528141014434799725476552313186891603531163327506363921621653786025627152559814030832163772413739397142612477371684854793313356078136164655784274245765976986869234059395917784311175261228215997027304163990747910067124641331823783832330584709897415618812658914495744649499609726491639970215280333404059632647335620368662511925954438981030930673183441982252763615166106930521484566977588751219174121300823200354735965212775423670205036431871209036240245182240017019056428493225680344373197918846396071142020644223886780268268684677819328130126472281709466496885648908981245885004813867662353088810035232479287022139631466511864945144143318426840165657228040541440303924842673825665682480558918750411237565995963246149100327538495661500322644129728809450383036637496772594403157938233837216025090209555323823748229256276784493065069192860790318416344107303923192886753968857835511629387715296602965819480120693210951803416375868994072391453502740243230354875887851419813070795161086848443779808401305848498351974603374592196872545029293756681514766695425501928501673007770489642200959630220809809253992097128947031975472834697592422812530880065701491253637866239231652184351627187966592812755534392739247183587011606415779173426216597399513028541873433111410219662229069023398343619452039317321831575397249920475501717599561743085214345107266977766370289725229550194185053846380637963734872140689122425517348029761249930857103093240337924483433496258837315467755776498981350493695876558675052781765389905437422525884983958544062145665870390413543023474653114300226197003322387156058649392633171348702156326080585189028139888539699528946199342415925403912588239012182867144818935557719991316253348517220777923589015523619158536059835656617106783923981845130164354327820631988950792483650635107481742498954708625894307044779883363118682656095959986527477874202624671985871368732915338759854276069026878717432123126131241151018068181454538427082377854883379365589400283630972589047620560609329705153491070154901831985131237769047114979975115578329914272918405734640423900466614615738269422964016255411206454317405772078656417694911409489309971119753616286059937487207350539723172338117184402908570883538239980077193236740946940778768126344291191986997623497380190137656046856137446285393226730089713765658591631502143329931888958496706057728650655493012469047737523589205016597806308455430075133094169107993483173012934667334203966438823123076597552761361916581688336646596981491445353970580884232716302963283526971711234593989541895708065004973065553095067851236122879282971888124451129794307880380437273626691808198649613659777912367060038139040859095880623631119025949062913273133839429948086709642473573701536712545850152875983504354699291557301562350184784487591870767987437922446915734241033980095631602291536671198739046733284220462280272598327100159735409105212540403716433167494060156010590414565169103872512793393531735954006691039530960700840293406206359944751785232994466189273834766519583523609227923960701455520731577149930458161160800583967807946559445836110500603496396056697599402468918629092014897784654996988436739412659810062620305233595932879360087272816290402557240095204726027239374006755860633569407884499900516085148478083740818658571957859677370007860584031639320349067426526264204573681166407601050683684028723002088998808229323179466533350397377902061146078160677126928995510037817614865663144769596868184855483189160846990760528568983957270847692182715235626110406643189204975510397576439279592274319682390965339240318825590199778978982906362050089253431100944207958156316377348571982123849601920228198627633960224335645008873505633051501789599101275003727437653700561145718714316123030438779662592298042902070709917709656364406310218597611990537081025546350203203714142411920777212680509199340353508748431241141818940502073536062555409066511953951063521471902291796273862906029378975454118452860121038099302307206351516107546779494131483932612883772210606751143254654638351362436013714737292099127269590391455280772992360414148280175766363822982147169585132459868556167178790044468207255640296083673000369036088585355522053102364610205895941782383400667567984234913576636704424409336731481526148943228381272892719926350023848927851435872939142798310822885392111351646030291202690688733935322646518527723457069657586360887427734992455458812611764308252766088596747778885691867888223904943271394928574133489923741456355580458732538646778247872925952453949014274246244563896964700111069895991754198486704110920453309146042210122788516114071544565302177068824110004749444245925756524564955422811693994650430722045875233441216424164155310074070608418916381088410731740261855701194277120560123227411322657788616153090765259575034092664064398732234015033656245706323522746214362016942199511571316888099978933233306259364501772598945856923915709326860360826418106507249187600257085721049160758380649143683719676203056026844809262532001145388301195811836657213585308291274715662026436553640743526074183179580652193353107448536651366630545709648842009490665651731951373931807254891333794948026126701996155631863320967333273725849831202339749961187206563272247908238640817347767856746732542488184625766998488014952384404629704703734479935557951916177091404190381521969529391366059437226181627458377149811271831044858822287665224089794734636892557988927378208338963386479682395941603453775482282095365846484349736547122699971070968223743955539596529115175510599055443459955963937869960143551482741502149923283631817272803838333754605978480896783952528891218142462211770752629891845049115932462021809920169670481319553774005127110422904895018053958867457281461182450058880873920012448786220642973436594237632212724355350353581501754616951841983801983139169785979230321632119277524941786846631529842162327531597508000734785121942735821052569326603206067231281085552984671261085628966435187863146558874783347058094966157539435140569554130968447698993069416428750422689125669286072995749444514258660465467841068397217221172486435687714678351272205351936817495501179424789756807300228397373226556702030075822667760146875774776900151925120753604801625761596098949675765664598843313883136390141677413588193978433502333527735315495343732800411554282566564556328569156629343325671594693270315501612951827317518836487534890336068391353612641217806974262965335877981428756772579021036475913572537588876779941804284594301756485601899190082629318204798604697810603756953037243159003757673154387498592157903104093973583099667732837036106920594381124014250050898291597394914747617656371574542527343296712763659551766106838819861677132665842417715805799395643299572564263498808728912227625417610650434324630688920859486745320431889943929607443945613424592393512641962526096719419653692403891655166525033656548909289584076634034976867456482836380030913333696132443122930279935800408215507242999595657526789198515472513103988642991248814959647736082140196792158115516638820578882246558826950068835721399381134597696589741069831030650364223384377055229892899992730873985372856230099960104670292385776036424683207827283905135106422252650691092489685812403490111288605448265384753192792556725499147200456118830352335945878972987053649163253865038078706146117682300203430203178272206156066627388910127531222449205873619066439630359563784651868229504139152247315542744265524347525846823892681461098735730724845829843756498630305675116571315765268311937312363932588086540726951901848052574510570409367143738136891101191501835835766380740899434043007541904172263546782138376307848047996648685676322925128950140810887430528663332950737455307394555034192518813785450011808960150940744924103400530870179384620628996382905198798985242721927245843428177105178230757360849001461056711126163513876435679657184549459412716048714818960139829913977598736205799646166503806201666501759240494234344437041241166062758699720967857434768894504112856670308695616968525992002494778778052861610653478925968853337767210046762642771460661052217508134124160793385562904564538601687957309650267951381919630593249154543765743843166282014853991011872799654490905154788748856521558283522336897918261489994776880421008697953176750570088038382634141072065069372606049385352274177498055825668015798000693709860696672861606493049058357940033556812495327428485760828602470344584956248728424923333415787232813926078406573917814415841117752910259401649628862755433701128403257808573134839615678027798510680821063263830735019583959081035360860423313461859202731226614591702085903546741693720882420281741815010349704443687587977725606844215036711362427184388244416461146988448790302212033385730809109790961717568986141699263741324747920082303309139051798200784291030399069922693832124653556297210242673988810789739404538269029739417119325061738795527660609681217227274453956214947626863357582522509124674379793924715474334253095188328093451418914450258126567764303154668841302300601807649003321621023301562953856902486093330647014977189449790525143072267464288597057036570247474821149188600519500818234472867608369681074277490941277131860551983018770864027187309910663825731718837432306315728334308301027982558821032546283203887210839809761809157762025173797066055874544244883405082177825060238595614903751381973542575647556313373767937101259003726364799536806237687383418938427770298939757174804649648233622333575183329810521178330494082822617702104772942710999287434773726541834748206116186185580446903249578071554063963783197322807319757521529276656768835682927545979472259341828726417860759704297291884190543461522227132119461033603188765503707403117366764416997414256703440098784830506480567566374482478047817091388060753929831165263488574050094630679565037306367604071143985567869694000155273900356367600608149834375543599326638417148449568941603817544954027363927105806756740252547021539141334760552089547939040962190584185135947263690734384341610824056330806779638383480468960081797604152958805451059667121721226669528036363853488298195140994366004980568165978929405778998916402838121487291960493004251389628628685331582309347829654439831643631803975196799448891452332948724159678695726308815630568275418634959317450619004514617274640830545681255416877972730108755440720859818214209600420476434867398512753701909451966963991033998811400170706878522351929593031252091649272027047558814508278508380010527788709831978797502778456286263108077718088865539902760519879634880936274143819143724478464335224621427986433118697978173665362957387530453399586327020755262628885554073933665832808270448128148774317533559096123996924745576154554353640889437812378252052896590486816469099286049228522837930542565012288751600549533248465660522369902366175454388781735745349837109706458519918521696928333993350072653262595110034222084043159867021475428802135692205722982641586213958625354730951126760861110468155987097340019192893628347563569013261593145862723947289492720437869418377969901685269569563878932021338172424236369353144970666560573998194966307748168292998454588506028873668845508733073995009556681047667492798601994026111288803394255663984839406731568089678772808236548352419408446640356356785531072380396769330111988574742280392547414094454776094314432691466982766258211682147007978891605631312714135694627690610413957136072597513823296436836259061935430965956954809840422553236724263469569848980214499072543662896088928962898531868325074810752411408763875833164138109697909788788385597546429640665502706708915721220186905454754040532081454875221201522375891859075436067847988405849228791217346517694860546092071063965369459842978181075100244244732658529874975649810611837180561764680610551309503697671443052936266799563908916735245037270149449734889228326923661666382379067295547834851608658150604080872606886699082655345073927679933691176976608919747329373877672156942931440571734774705425540201666197365138828814360818433721464122922808866482041106452315590928106620728916888906550623290215445612413707487137657857461369807297323571752188839130627086513861876322185191327967453424653797461406769169400659821616464317687554775020870718676569924650711465810961749985794577200837868675974735256785730879006946849473198714056712553967122965424145223326420871785712515709884581156835282914082724683141567637421517267096377286753255332387531533409333344363116889496481870271606708318481776957734438946683694880410283480806546511094866625064021050820167880634302355619146449143034959946001026962628493174868395274203796371204255163746096972178765823777078602559850755843624572999782577505735218080818526883224875851382408388544541288897280254368366684075546895435920430080683585372124368914294394081595907663284831868496148626508958510437702833621213405441583731834797665594979900083546537036166837694810345113776979864914686399777865853758938157795845755558840651109353232578303849463802738974756743021504041632638005036376604719796855796068632440747211211371069353237987937928911181361093228525250877096392358413110532305364169601401398023143173837873639430955075488053844098288124170871404730255904899391416160301304518501419093844447568396422648649933543866572174109049843859364556366563841822061474160655249717492684100736956794375721045296591272962104716795428509276755086934998638125728033061739114930748903889974433720644818998847498470917370236864133086471703933968705462659995404667419911041283340957706857700602685925468790018746632858714940613068130982737714823322231521730475740092665054825806246367716016790588784683707700031704898774149729740389144244962041512752509284019041172570435862436403447035552720165914273645571730895824654365112659784534568597590834992785125686635815648974239493292326975580456452794254461050715983953847724577629884948082881021506491092988299532724578447739570661981495497234727466342400529374884676836610149227531906840097438423764709808808530164912206806544122748538419267430424687112473409819179777652655912675105017901969640233913950709871638350148672545862419412585129473257990311498400006469859481985363752122813350513352377856856899687066636019736234729635960924463942815475651190358874971387153321655446697828366468955685272643789314223142879005992562411845005152174083564542237305160538997707829401875669573554094288028081913646171284580248793409273157496395223019509348154761631425004824468205769914798054703358088196560133658093072943193574455436754844012643913650792385258642149117591873146383112875760690474027710488856159577566306753819598771212435897082168319685312318800630271724442472818502387965563461765944595041876479917302145347408921878229152411647757863420527994536530736748446565300250258267613249913392958852079278764666887824564573093214655083063896111691822851555375205326817776995710621258658187514811357635896019574215207037412208000372617665736383090883544869599086266382955595595005641343603377882230947205210851546619643916761066651606595104723091487063402349657232633426797582397624753011185136523846666558711356762649509801474104623295994337447877682125651946529538831475300692741711685402332495431728517353854727433833385379611079555126365863311545471010976601657888637085555677040254662568058484920948070397826063489487721119987050432819271755606933047532852969699588131741005979133086175570183474318124754097976455501581721314004277832470491895663623688802787863018718635320905743486325105783089179147148373753162515547592947071095808441581662133327084225207846806548686797446539329919760992472397386901518226273266709341531171589234018313930632136777440044324966123971765399369459641524882748273382582987938803226262608514630232772092393255660885323071057488374582699801833930727745779761542197718589171868920362739259413107282608596941857687919325681879567039133859992330715141709374554490861336609972704091336600470275053462021199008653734417444996965145213935427585124061118849288208127311608719587994382059746816704032336186041488957904402336156222950853235075749758487992974162657196705228824215144555826901608325312926713680141598998992553413489904737481155816440421677349364420636847393504274604414860159376672865771229947113194276733425213463822645141937581060747532505520264871191021916707233246852507393888210123220428685555996970675708002548647228997100106917363604157480677857752483684318903593417763033620349344617636439751612690611998647240691304377732694411727322093286176009217125756570231047368529126046614892414457671182356054216439993193991624114594831723378299023586479278918416302392202063399580057963785485464906338598381932041184017248528926151317734349434472665003187577661129987056812757325710373049017614756135357677445468647019941531601272544571073336508223797626045116778640023522711112603990104686312471209074244198932097130124730718199652927265524952008050134135202400087400683504246341896241714776155281820847948385923479844574550462257647750788754081148181416174729314139459982740941435158224386981970047120488580611505581116196913837005015549187034519754147539289647648496656326426649445929038336523852289465737604302591202851356117385322077421356965674994823526358963084773158532023870525075319466694631781694549754821341360431745381982184362319459209944762917052170831357095820971559888478919746385361677455208472700506867728168529020248409152492848267806528781061348591954679073144528026973967099125363563585035787787368725014686401814766547846974668670415064544321169529727495130978322548785222348614557990433640491572368442869435230119887028159779554359708646120601882036498511447736126763939226795254900614077293397197932939815064834603604501970780880071800871706530964831925089126575942911228782981245957574635802111145151405192767470725538137865790056682607514626700876872552597135728380115086519381003562790340351613031506096023377371581992995618648037204123210728093682989823944558927024469699244207574907166107997462880389304444625509291776338043303993118984444068226343758898556618019070655948126124075029602573770528776115586978968172083627937003067245386418293571605654356380068292286983576345834946897012573995875607714284092355380033451945519276985801119200581100712909028741238695276097507078575589275100903571295235313302657294224029301777759994125533352900763442911580149718391990610759969425168380016166626199234977232147012795327309596377164215950809395349791718096333899819892242442047989131943619162265048115641395118693345301111813738287666122784649330944604681208593961667790785259650227112464744439831381612035503542909231034609635350593204124230950419707519491348138059933406317512524386245374356679693273661382974042627113602831434868546468182853392367490230074220094680558004958140068270723123512626170803053433293038718786876285666901628899023736474087601128005480078377009536150849160230217137272857127323855369854916947077673254753607038459516968034631295504934214683528859210704374313014940896248894647076191759526937788341073906904453001581708230459660040795562431320913363840763720779236471482401516126029311661952551928504802934370629468852584174629277020647028456755551275708949820550458836817179534478349388479244579193330664938234195087536781931392813575299644098527311955193714715570375237074086869574159136795713711174172809289358322198202634905354514559643517323286733791349111359262049944994123051084973693488137656982118555601396613162146436260878659559190780498212670134821818294459310142970616501949724622383298713137996072966663607211130692064860844111983912817274828351266525850126334769497127320990035474429598990446238629183626183062312119564953603117151819758184532898222838703856983452175194007043019504427366245189192386155168461639293246313567469745943996676558914602231755748259024357658375823370966179375461153726190050826049566665655635541280556934369782021122474528894092123770057317539078217705123038418834976505664390150907805151251393082159341265067079863728880931921990846067592989786258491554483840264582650011955339896210910652724845433136861817908978878849040903038666690177480951558871400194396196784794682744292695281955730481288483809207544665377923368457323872001664513180423384667985880180408861109770957820011642703571755283879360570101970481867787613456427291941690448392913372398883270869315622218588958563424760641406422229142853272957015527752127542575259754416277287602602440535880051524672061452789430578724070300129209647227213873921284980063316379428206991169714326762959169917505122525824072634069311916253861822137754763230877490097991724051204860104704724275093822069670519195812284951918322754862923171418561784283983651985092637055994554122259303244481920145715924929216387298708367630199489338631937639267249811043227522428051818196357140005392620889637630193828783852413191791971696649359090947831353800451104428994577719351988982289224173733718352097408129105750049793315592376891225208025195257434061726852143602064364328827824081385546477414024922508684822031542114787227348394824203094460477825830601556437701606756046875435709258240868277801729264681991145497347966094531002127171238927057743787163201874190727452161415032309675799875162192109052087477125933833455349110734737381928978797503356093959965851197949281307011462390096472777512342663551153763971499062770200697955542105396612720700950997782232935756035822637150199655708332552378684421633893567632905784185194892296938807254691361976991572921920077048584859980920154200138720676633936195867777661765223601744593633825849577513033102041878690525052300073887479737076388525262344666649949751598426202503141217313366445425454598950807751639598991945662315080727414548371553700074702263309764028793930791932032113584327658906645326748886326989449028883713143121280092727828057635124551141997684494766413133186644755284333503285489369507930864348196839145186545192677588862721968871936559637153949510779586881874660930978335632581836588454999179506683293171269203650049061418038797632289948607427580686471629718635527018455593170202971277675539192250348819522551659817730350450548560391038164046400104237939499982795051225838887982809808175836438647340770962829921978318415254760400032644714627926921382979576619601414767235304600835351723858794650029362144539543459485067886763358861542854366954195859620462054032794922489254882871475565982104114454404720229329800701366964135472049252086592116242889762486590553683712325349916075836746000019544024711645058902475754240853861573058176232542729359956067122171150529928443638901776712173831426103474834812735945167514760942218581065965015782369905325980038970076540679415347330048984236026912658497991577082324683087166361783950858218621959038495162620960641014853592764729711460363225424574661528950107531547806991409548104025110061530375065162738003192183330234102453876222970586892977047170816245359232037666045766725058856081039053387215227066800670258735606473543233778165569242972495804818272643570173680617567397083329396237267596866588468877910250353240545646507040151187780146089843283408026873385674768480169737045762566547109201280009151388355681358931757706982859788248951609805582402951612663792848705162539632941506740596229319382758995919892475344958377795682761345272139073644306024769514116483050921558360726783715932211933116651150778862150384979186070704345441666937818284742951653772739507257793193398667998063540422077870729986805504082145224111034052395709096430244309573956798990934913330120360505744526056802961772436675677742253402476615784663503901696225751419641463091837261512981984396233561798984587154519376624700685354013548030811125145375656448385524861949380753124388013564943080732525758382621859805683524287411972474307800883701265135639347915023457294804813367267050945273585587756717639463564417176963128586265410752762686133246927443705768825368776698290681471721913866781316263755281727270682493318959127674535708583847748679340777994875665940605998056532037597673306324065282654047664820832838379678102517713428161859105032627348889408568362398442679772626330763264915675839400095993106650877626669959530713465772863596561314650311049131106128144983745685022131144944041656062385647932497665149933864146096142099662031251621966391099167065362145429812291101311405072454462911940239350271187456305578618695129430038893560487923046703142056452749740216662391275708991727735609520446893217236424871463978645643375154826686528222541516241504405078494530276180256616521137215454915161383178928871572353377929705347930050610679095267955440297737372496000155215453618278824677381255288827810846672746468990673001551831907481243112264626899421794508572611732619328086474870942248751749476745567455016235715557436847402255929770613263029270372086143953234406969661678108115196148114861456063063386356679943860107596212484717958030919655878560006372467253988389537367770448036440267585817295913199514889066117940036537189084039320019785446516912454052812256633302751072845964804652479371903948349995301662721788254028037667414877837533671152723782881600123580502854578845914130950154222493943686496757998141634970065249963140920780297974015789614453846145565759384360502473914751083624849828210253720055564916385336196567492559033382150316257312084068833789123256150743705769711883176006504908452081774309127783821788011092011215070876146211031244705014896418563673369472970932846799009097029809591484841661385660017084626624344959096975627406479482340716325982033593497235575922586504010009155476057330946166580227714502560040547045131364041562348861063742453506565459476720199870410476453813145851228278554590447638518713825392355828059714565038325031659967528301129819118266860874990518386208323231409008966483639777808011861634722730769301322989041184095252532505537745492306571245307711975437698397706153928677573649474985694787667832600525283982744542815636712252485409079620408729540026001031390890317200869424066403366879920708409387205101711397401377677976309596190784785706349764165002642775666555393604984098913680519378485504625298203819265798935387241893089176974917340926778496862401824637671693960874438333114676480658425948567941946637819413826906326438109944263868563527865192224247019397519897284971061563991771538356700024746282459318704146649508088987025277452212851195850955261220315216707439130263800792110352442800463214662175464036110438441279392874899879899209456298935594730199833237383333842640498051915643239920519606223543184283880832372577593227266213935313895525563078089891121964643246064394343460998520415681514539208336958405573159600947455089476766303859443889006329825939005179124556568095752147001012475311391392315629529997731873781415982209583031387179971969571594289717622363946892484545849502656797318139745680054430578489096712117732969771065903878061898547641263432351328549700844906309068263931825158136104618267715267236115093279314660835116003021014861827886314044454722894723107932657867009673449709817382053171429957792300077143501837905991071089672741397580669438577060695013668951387923165713684128341124604881462020198598378555836354910883504076120663291671335363884623422775455707845739270708767239066561362267627990328901976493505283068377516874123475778591302677169990049983332321727514833427752524949172344488452891211708375868765352092898203823498792906391256118254084162055794168031724951548516245387257909218603649647225646178248460186746196432620438878803406698472846283863516939790436703727631062673047974620130085262095962418366219948796681439784881589453796773014415565832766885949458152172902440314948446051970540606892334502990224148358027375657612673939090358182773964081659282159004691732438489713012342874250106846654237430529042596242372768936137304292391551355316313460442277560689738058454125093367173117475507541060525571997596907352365455540376501557925214503966198254668215218149406122581290878750931464157863566611272460082805768651441366909429740854917555791336734562602202754554014635951782735652153797666403502303468716434098929958482871966224719972837198243685419118604066002088814064424166750753754368077603343758008831578838055613459196236185393356579402388837070361817402641141738431444346239124950607140322589786229112273694356472137305192926252395775363442874551369349705464170560708014661538161245256881849017242976011667829157921156273342001930207444855927648257606309484322241838982077064820234911205090386165278976854163597818831660243927385175128643668206233454427807706239818021597617038189286015671673693213380793087767808959755998959800742246672232031331385338930130231397874276667512296659893345017250272773631659222620079767470348460119597850289428409900614521270298472712054609214902064502570806974846666351746684618641308943109730976463771867935062739985586032649346439213702114316227270988152330071599964542776402186631821381168576817701044931662714263947502922441931096065872450980378850754768469364834617718861905862469463221180402310098548421777865778550063508312247339469044915448176973817074268284332736240680687788951443558704554526325758392049493182682072819149970932197965279618530243471726341765360665605196830339498262809057725915568909863641626549998824035862630237753410683666146210936294450264690246012441184794720078834419779747284954312017980774919748361127313705295289711555362952942533016286069967555493071087210174290944916765236031730488963572531176530281974468073750398863558389440530392570599875725951930533405235719474124355264659743027183547830202360487966381460956191322333936308922730206384311652418903596142927005697473214915074619767739315017676583921650305681584456606565408427084662107278357800456193169825125306304975613689191171226674493414946607126311776802193295604903227325172956297262035105068185982039954681165407588723694876217133249607514670528496646885128796611495213763969951029256520260245821009205932671528951599619278481080603420167890932363345000543677744246400778938000469288261067467383350376589490315374853915893301642219792901395490005981079841671264474054130727326593672998319678457809707405929734593286940406599487902233547817967896261108670198572316206683753764205156731805738792385579166595561619041642899952515710296073952499266636400849431517538043029295887755053590776473497972613235113302506703953172140802744439137033367001412025191902515758247705287274282570617569854099582741656987676518595980951506720782257767236012209496902333854695471003455240729256780579406232119855476430137185137845170252307098506417310933948113380342787810933759808159870297810086083413150740641265645905795680233110295488264791607001422386477731017870522720611604781343874816345291875442478092393437657744472882077674222542445545891811300947982730170347417018289584571146570386279258334161681606091109768835140016570639765099640684175412923919175739939105401790914579914849507194763146781997079966827847404548001019219734787559276032370616864438836193291819851743193517289824679295499173668998136620715050404164142856206577440760475450705020651984784011728494986828325767769868938987149114840421071812014106169026876425507723569742625692789000579751690061900729568951213721763707322710914312333746994376818783877885699495757634221423360239369009614103128980708021069017695175577815805613416639291009807016378348542457666416767509249793326682578617059479353515511209590677749249422816931916789290805622597365281036803542841589732242124686932598558124294683381645939169373004215418101065381214350723925076757722775887959646028875409055111793010977227987666773302957344912352036282185051749554618547031914109075438752690556372369144898157716280475323281411559186826173953586343654103552725600066025369777964428203627008210112671805142762382124648926042989179408325838435267641061480531012374780143904115016266177771462311094590676020662567838900044608011109570458840428035353364038745068216478579127946086773383646705569370062009407515181504851929617643040845363639428941569972650564634041119637250231333967695031026505049076419108970725264493233996960670069757291476016403749391538120735595430507814534690527838709841292020959235974182572233013349362298759050726833397681462697690674665925540958114706815818424919247204950739821689707742521265759649416796230076381914545461737496993127324178952428390283020239296976891009530860219669247651663546097441960213006748077256538817344215370324837779239817416942432942034221662296657210721773891228181774272054054833855383065586192428291204690334721483864310531101140055357367588868284331673685888180562427602927527425878689361036438197559958195779239300447303774212302457833422812088077685944792726566754078354727857308637735814493893094693560140663585146241048089565199318674414924172198542594592767129904337806581180028460797399252536644077671243064236448179744481083684785563232505907770660564798917416719436175197729468752754417089357970029627132103729302361670772086101300218562246122969796672541253725863721068386038833168462416412053673504279410904625652546310129516768569008168029595899170442515131979175244141831805793701550448451704390738908503599286562712397468605137999261710738996348727939217066437312405542409644309787070861382816577906918423341644605717419402019927193433659389371490088562471987846888064606245213341730593497842801955860782387382055294272972422426046285478257380192336895284705849140687800545562401910582194676014690553702475314814190570319483858500842349078393299821941775096853057992511659949655566134010670692644335822372483793397835782818254551931589439844574186091434934973295193896590001213754955824647785187387636411290038563382014279100983201155564403696967566803311311893892418805832461499142315333656984144815552725861822820349070726611254453485166201509177603153878334983385180910356143382687470817998668129061814616158691730765434372678441380759768219463125525782040021338223977313869360321257843354289364105066074487881366437939226918682023592249162080124408722325752148242539381421930419092326829212603492851637174667587098280719413760420298579501548245903579949867222888886191204760420611035323548338844283686180237282366915630720226372852705525711306237828527050808170679993517157376433030525696628096706359563870062035520626302860783377447124796407819501716909804696664454237604532928647331029045444630890977352251543449733723895459985684351034137026249012691470453081845501536455523318229528837565536211645777403217877280340879192138185903038481435869459571757720301174937597805750709457444976571656055707432543340204219422850840430717657978681115751742009197065019433487764019804137969452695896081459379391222215009304271593500308676339340214326816431906481060419165248062153685935235838426356002730450848161342192776570264844744669645963739210527537379016965496335915468686286666356890666629345688726205937388040563019793413409929479926859323627971357911370879912957383944180414302506851028031386723956148455455116740265902241003372500622130896049675853989528157742302188249976230137730327402637804834009123020025126606018763040941058821952930373232569606216480610146850275067565840785295242164322719013247534079198059424317104266438168425606306777150176682102872428848472162992264797474807238066840334122450103532895286387486054108406841103242373160110835434018409864642434796035312749354037850639282714087381469925423856764827299110109884838991187837143924335928558869620615206866451630965564093677396915267417675517929232727789464690479312832763183223852407476427545203402885745404635433925891400369027857475232626942474645110877392222929848688865006939141270848760336611673779706632908127842546429341092498894590109928046143046655676890669244860152809887766882207352364036117998393577631506733787035016421555160035165690311575115991235141314582776596708764121676185052508312503925642877348889362169402508437673282742202955325336138063241021364895767219169363779980057309256733617394112565853848549239272079663286139150552330741688342322583237550954040213776693169843022600812058269563353132581506620461165272190410951010568562388906732732335046222807703016131957821918263785403898658066111862894096163586595721585850435123606453270144625075018435510510078149966015399172279870124006469280709859740923192644820016788484558347935537434191503331262355288412414669578181281032729434007964894317448479289215640675107767520019292722317270509776929805370930509597483048547872901923018957903146683215990859351960512463653922361049230443135129321780078340935656068116672802450778432345638711980604667483677632593462835578343645593067446775291510636935089563201438551790333426842006857055333811261957183382736467298920659706552161861014987981019942070687537691289652873178342956918765496953235899917306274748946403998561497590551227929859593793759453833391708120814395395514706021911381684977915988888673706040111959554081999815881090298014760868054487448612963265003442277986161928106249101063355350926040768301500796039187491329457175476410346080376076040591494910817131674756735926969428147436834643525359285477741639703958931647039522457792954199207811862873355368265873198348528006359698732356537899223544984181156649971192073239460656886549623963555714922584596147392244286030226590809328011773656257426847246579272893484217683364572002227297460202641160753061668282908683313346827686068358102139899769859049692754429952815793452363456808258791669756560193567861774909546980838056167989682947301909433213791930885543333305416404780049249822907486938684997078099056713209763402003149285131672810683084002457965089029251597387721313780526935390965150094458000277527877500782749543074184348578863636087385464945368184088645927485571101699915640116758583436284190549358242372370907792274573517755731859613861572073167853120120103994097043342518559293536349208472031393879250406783969890339235471343658132388445853792053992113448884910809562830447881637881844190035239493035526199836790772650014040035738277826169568816752329231646776029412239600904734185898035112283516754894143785866114009364374753954910931038614593610857653634893747951400127303969251234242767884332082562157703484884259913225482481464022959963354198141193665355404161734422519105258220529223732933371400571369543801537075742444094340263577249444561908297119325489512353931860259962757435218294249968370197952041207250504347915186806904516838637261188068141469768363684647746247303105436065148388193682241695518799451304108924374385680168553441336379404407444770159381713734314161657514490252948001598065973564539488911278219691808752246783292401066432539462261702588066343298839041969234839385748650869240261803352086877910107627682595670276087852143975419236462548990361117548508891604250728201251938360098485171312858985772712258014205710824966045971316817609887414345917261293212565379109196120096759928436211630878246466589596592547549579802355312183853346859766299693438595929337974611167578160145517402764438499124986648032567504784486389713208922050869577825282703956948665609425708323522095030907850834113551986859380244931280331795007707471836854869236159650229580122018522605553640396889476504836517343175255177440088825685029848670266114151517302657435634540902043525751093268692267822188003203564113787438138962201272741070526025681509908016287777665768684542237439796466595699408030465201878815542160355847157334616858013134513509884936799038648529973237975755143649500157909312077331243931263293979518680773017720358231551618125019515072038839414663410561116165808041665726870106603142308013166122310711992473968230004881463155674073305624288262898958750506442070334967704732266336878922340524596155146146636633865695933656104805353643166185432080093458452194696567680569403665026364748589527008098782376469934926718831517584756531959972874389227101779922066013838099083101366295251929161773917106736143726631301056715725630189014061119863248391417543573925925831789020471095943684873049270495484733908943521940771924910839460396006972787615560841988620047274332407562068989022523769152300183705296313110399749218384468869914892225122437289069928970011914629024980978786457822243842449643968741739020825276493028608480689960348564475037988637312174302747941256641666223656296394110618609992384123236102026013615439636988129395296844313649479352786590870913463874623017352514514685878334945121238449120933044686353208619467946934772506026514776621383714819645730444469420440851413973958207468025711528277803714598293131391356944077452133877499199045211891858446345722309984411487038551212479540810683893277337619058300200407123761905514480157113409177965702509959861553917849308873120186691187208370752020036428254014114887692419910088928420657465108850323857204142803089695653905215281112539591213166925176002877753030446224231540512657003104716997680839798561055888599870236270893705343662620924441323004090493790569785876995076688930765499274967193240781558774024463840382441662079234021369698873533434439695851162034192161382932422749181230825800929972777325719227985571352038364528506226532374288677774002971416111720142595206791251322861685346539674508005316383354596706111313873677871695572537146217783002400159486098888574745665987996406689850410308009125250031238622276797185751383437633557798746969126310496045139726436443195421388408736095396936267874672658797740971969893522256171256482708958379567291323497368602783184781264319514211534477641380086284036322952092163759027456328069419604514251925785810673682216533984947883065917031881950581999176426429868353103792735033307125351404990964354158807852721358277935899933214106024564378542252759506622725559082618734722371626458712031942182137950743122100798706413969193715285981614442031520701248956546084405127784456690527318631057123521754987331707004038504593137455129602528255027929411111758071757980114428599854601066806708061690339570976952543525229312207726657539615323131460604022488162276312043709825875687618586032851067234741556085466466289228473594142194614284616759801300559111104207026426625779701273499785134173763349270357362077587647297050255030841468629035213567701059198328886545585014215473981308198940503649061214985130807905753848920386682103098780087961278141298928674347543768449854092004465942221732008709582082691328511723414765690835324117218043272727443307930389064067981328055197263204951209154951304608415397067001165743764955870898216275691778425387614255289742207860287903623831739573034978100683485642457369607199139882522290557006924115125968093440131783263451600334590836543002064143634199615798910161122822942810363380746339839428707101460420958372526885216180408230135159483011397596301914121276773519376599869974362077189582104947855996909625818841409517352172392102769885926521994798732235261656459587485795303921295487448268247982931686788242106911260419045275221526855472943001537430406961282451456045857415901906495959935457237725040671362488808013202311986488474609234779498047244543442932567156698288360231428121141062340738549251337803720751006924002212626504421464742620697588387836707907956979807419561312288150884552318679509991552083600434973047271262750606503907735515675439885296239438872001804476098261497114975697785760935535467310037845025930617651292012331394529359305558610836539732680134770133081349898178029289805123699553997187926549633245529945084636243775828152599727897485452868229671258619610758512745464220648993245582674340729181416982023311942695516560513858358001136117674193028250885918163840815690827041343363212854766974107144475540011973865917820123945142614396325551546549677587005730390694715713324944897211261799608512303421122965413128990103881510328732118707952750118768707181681132375894299462386947054138087692641194063579175310531906292715459208913428296021812261336871141376625565052240901987084540086692479742932519041481915150764482575750550229318545805774799773962150893924681682842092605983886605436718616940646862914605753429873127302975164449175201263546252610087044465699675258262395647507347467012632963897940116526635950623219534103790398186477246513308985150415242299410063043306568933340598587240555411637259474368437917670974626129284479410188895443765433562117325062637621009852112770806765949029388886703230552804291587659880118529413020882587934174193892707900005887043882254162835492286613603767581044871583564137505418385826018596516402648812505545630183617093531971370031298989826329809942892139015116129171529502202801977070769761236945219959643730193404730031686455531031982538318406135891745880991136099573977899352986311376716576694201701546546987692177882504618771928449774508355830577208494694364669930767805232225835339530602888576859921575303602550313845250592329598539175672939693189974497299449258078219110729501249676521423683040882776271765283829302011485738857488455061638010599855368438444388523051004313428640834260780201900478570400095273667168685976727477215450923355161228289067904237479883306578265009908280455885026371595907822565797264493204385851609497795032653496099597927805859882405471734645499996272849455413269141993926708407270236999841353664381715774646920698151949509505948137401861465700833309591739809373832020380805306843483684803177721324758917575383362907851894821666643337680016625245490809111363661306438289938104688717540148226197722405581544298727093129678279283480473618304247618789516138541642163438973782233279540727247946958304516026529728596975052810215311370693488811629648299346645274076186275794408509583907154826802053668011188864019358045224864975391620723359191485449551749973817248866959025009179037774177766423888160261373340180299594194561334366504747681439445893225143694182065534598598453730261206403452676078135265774433586520978282012651959388679782519383121775002030819080433900394361758056472800145078517691036951225618970894658082196107659119631882113199262492262265463263394673494251439282258905999866239352691008738732288788833158334349388071255777021625547221783221584955297094454483724250536233765123358521319667314747060063812916325309047915360764784215905906803078860527086773385501913707388321046678990908608117776106581089864398209901195531971214524818026925840875729433730304344448625647619285311441342893217974587148030040861993783804082701574530183009788103274069223411206957078689736915716783320347809496691389279489092770878864788143110044022481930873789965972582371219908842413034025477778569893490639590192080901221609804344624264029057418487178253729204857541755085021821709356298541771448204669931972922823215435436444933703417210969293558800935325221312015781628811417633904850262506926116702762996250251127575407584348967397136157312868678194952605280636252707731199963044296850070519119730492433781658728843129496057491869938195892926378246213535037946332226402462091919560056230608523279649300313259831825867772040614948763667195445993430025229919568457314266863460077039553000672803927410393543201126607041129958145684483868686850800103011808018221949604376173691263174330196218072508937295261305754124128545982354723024958772114057375763086471307345629226293699042551184865294039867266190207556563482106498830073931273877343354756410021875837491690898779253242338575207046068761149678930058808870570588756264445749903053159169002073396190183947607857100647156417543728206218209828195152848332601270547157585279128169486196946734192379013260839963316350104451676862765356574467597891432236052855550741551134539297525824627472390531101766165962047147653960819475268486759023914085196007464827465921287016732194848928148792257139207107195005427364728074068002417356983829172426797068464221561929460131359939334867089833222803259564751686646279643006239910417784407386860017774218389585358367271800353296644828645059322988509106565284906073616791003456863216449875963225803967717373916680762321723764103636842523275464126208691804327091405380416076221935851117050542834254292071695161785598475573110329540948901322476878727637669926788436834891545035314898330325681139433026327267420450264314915241876771009872088024175722809623044558911813470218878899206714089672891763548168082612833736074392842839918694487906013869746103765137880128755560815573064747461630015372035315467643105056917559490716043275150885999710728902751680661876177332508086604439001828295046510199826627789729750042088757822359741181676378097659191650077316645590037029912865872403327766435921610822378466558256610524056392331583057065741723945680941723582108173066832765456515975809623789732301740701715208040143799255436075366463029833513278205708891883747666040569850535745000481296223895071890455014962547475829459559309247340190066217510132137064561467779871928781826622047393229192367067651656348012308105327313362358359447486147849629354670573593436524034357899569848356839411009593135703746301149479260340122715459943768985665726446384607403616862348745948777655366813613502493688629644042232296309325275210182872207924560473040803668877363957462996470165020778946685695017952737304315048210053337400868428642641184837291655708626430491249710783481805371649803284468421693383811784966433726729518278604122304404908453439626168431809412701065517819309305173747265848489050175345512076665064545967316799725504745235033329727529034587568690074818797602665469998447880565759178178638692308547058706364737925128949483899396281013400254489816676936390003736745943981115566402580546449466697991249364900370716684983744663902438450727514274720321546574385159417768335856861406094955877749153671704466110054829476177087571891324565485625987467549969822168971082433002511525511432234602444885104818212922940511470585329089353799810833459311055587740381959911874638936257855904931350499713590441283848208895506190325259731909604231192014999441929112574102611268208183442128985246067403506922750810720925848255491986294337663481785810552437195807950534689311531960603021462051470629606281014112960788830099982408668293219142506092383379459263548785479513037044640148001251234118529659335444980803275499676603721397340356329134857397877023173811827875854171115331561875434326007805067340346369144488820313061836433680659918470741404208442726479345117174331181757066804315512619657010067561503891343189657150070104419162731023484477609720194531729480299632649190160649206696560289732463918997231437602155438616017959225023824641334620175200817183286257665314685931998441004114525603673532028161601155741907125121251543824585167340918220726033007184261845501285927158856414062424118295836557517569853422856552514983568339449493672354937099063164388388630428908644602723754037419048864994402452663621936603326391379371935694507988631291840620186758636312044743075191180580453490353473344868516663636373508249000662558843168317938129029886963686368161637065529144795179549416548340600461543109287636798991867408357531447535994826843821934253694423206330250828985874812409249720973831669743494755642870690282831376990211829504439971481912235410124493001202550899180749622065881138670729979866189570476744697563523835565873080428470841388510918735141475814388369061880197174139196984508046185462019415167497817726893971644520133292325317782411254675746135858081904965805983734752019790624583949474038447640488803395274509952854452416841379520427485550331948210240520779457921392188725561120916738974223870463327586940385212164889516239962362350981351389197307454779924861255555320885806277700338232306026672272339327128124425812547285022612579360679413630708475408133318153253704543781767585059938494665272695231131854530648013631882878046239148910987453627495448069059740441007420764947410462664533204110931663265641983428355450832607066674979390281697347182790353146302114917160691825923884422817762842480492333452118604575838790252749363920397891146686131464817742672386233728725090110563668773921323947263993862592707210792939712730292715873679841711656580169527557119151387261287942820478211984955314977103794000566776192348670011533317258399988991201613968914178241064417488656955495110507825824430330276400084234003173997035841692392287014140889383526313718410530737148372808499052396401653229241222178679370261512919786447122996038686847858245202945754116653455629497304388028863540427958700424945836337005797991913606403380800148649400527430623692997252951537385478627245579947825997439720085162756217259151786284553797709800238232187441330502104097742187109947451543261891077001198584197238816007322544628393614901915058636945590297740702019181111891537562854361037250796481539234314370739383297680961950130895189497997193793674219297001419513553608135020229818945917919579765769028894737647752927481432025490394382475595369174311665065878930214388310392702482983418958170580798137737289696876337254638476158680183383528018748832639821341550871912614899482742191482402624550953541201789457519904130841698273129791610155687531845489676261319089154992722595595635589558729923946018675656334846571381702270236137184343313166531026924043311186541190810568984072676028268124394774888953940243386630070072074040689113454601658438020002875481499106084448989276874622600654973874487501499995603516490470808307897793409699018098655583194776212889969278994359006776519007602661530124837654238500157898030906122700396737405867057023584151554320411080154743527572035805801293914450585358890960678534263783808370820273953630011040800087251367082977946198534874896494079211358438380911193879067790414212753841252608574492377304135433196594341809894796525487804751274357309058564206252407276460236165620808208070834094497646879458458299989550558015067275486588522894619760746598261494160681188025098194922259358182794468331381625474648348671995183564103323789731072442033567608835915100871831209292014162077958778812638847902373509382858064667673704089973235324244749613203246765444748185378597867871564967439445875350995145445473536431588958208740360475402004590758133689668345578344946446596974691948046843465001846567949344413919576718009132301398281815897701629623343814389960234572518216430735773460469350326441656568673533301296116256618792821876558400304518862369782315410227014320685702135946642106899289965315423600364509966549913575328644955087144696234324318474377051041122138910144986489592819151242147200771946282155452338766716898666313400164755761737130326856818599992730400240260807188759469619031911949452457577132885922945888015194322199220155322093151372290605189006379388065633453064057588487529429893001634322644939936162303395176396115248184024852512425228910513308498601847012764433571730412525288625510561200155633839964232084915593523533272769816512951375388684298732936746475872510012791313791006939570357240558259550913957511438505305804724459659939353014244504993956577181469997076238947647785670897418722451928157911732517072192690274391307587691649703743189551974808267473196863043457815838592787134085051548693620751264019674451873835578725262719482220837320498772538334771697532924542506974872332533652588970403274588139058199608041359179565070925729238291305017608038944702204838160535350832798786291614992654470487954491800215595698035279167708775410790993655922921709329854694010757428112391958289100720844048849735248201727330284562436935085322732499978031726015907248697984252674317420540023422178831105133685142703105998665727982742165692353086972593233077993086017708011258138822649449285404278609830576972409465586357912552870282676097313684954215531859456396080670917097642278694037541812851129393826501371919780873430538809000147525120565018329067063269999660986619653466751301225728031472807602438732362584982231468684837282758483354712268103737053512708272906270514076735858168827395040613642468753482580654370229792339098390142800165035818337527953236542658251326152037946643857939283015640622276598638970147357293804023365923274400219837096817697298581585459039925150639885029105641445734046962230492431391873282220211196233800418416416580745589893939360010446409862197145251287132072120362958794389532876466124995383463855259331367549773935630262579569321905333748351930696071120350086193924815015373285393113386918028208753204092549614521008266602093438538678053985349453227429173254108882941008555394056799114643148374594948457805829978209407507957257208381487390203607058161584158746658932627980173605006856929624658652486937626789541363134839197659238236690691920361151675936760859328593331686319247012739784929234770630988932216582406632198897692056733730527456181758847481281141922706463940029951853774016874772152255445450150153117887310925826592558277704921005491733315797880648982969477523038801917135178176368559761737004422685479674123389404873824255371687625884814317089192514578729171175077312395253021471071638682556932391443207254621739799194117679318952584101765056659688513079929356063497392252221631301245067056353734953549849284664088408993932585837009819445641774214893093157358176436518238309843323633322478877906308603510758625300064659425758380033040672871114685361680829776927133521594232887536692358114438492842935237141256131254103076671937402179223817623133707433704878790414887375262693668115444199452662821188525289779663306902437882460376849059463733341963347892139290814923772118892477407939733778869074712168273894904114943825770137319631838190359627193173413685140044256042119893502058149507356730231244597252370671060627457432250571854363013316204045292202413125743877341748560422293659160324303606554292980895264498687923375569065142298211214976849687770755219536749896031410755756071764393791723604660266474923349585495021424151575834469867388786392646381908992247923196876289826560200201210717434240538855288027558040761170495326421894185903003126444701772919931356507596363743968385596432055622547055729479151147014330417874928265761421351046716273869287764236181908392599835153930098923543114742225658744285013463499016878084663471690529155838100318117465654862339789162494473437361648994894700750686751107267344535382488130001687544229773718813817913557766214942015523453420030172266004396493458008542503110955361954731017969046206364854902899653477109278991490902764435114900325953823324452274373404287574138500327779760492573382128486663082327292349556752031296884215199151273315514124367410349269940283041884716350910139038957796869448232539173548544549036881034569071303464633804966822852270870058702496355047932662761545402445200062682147930175410762388232364612242522327093910139142406279029084396013271894492742553320648217818722638577225436366483468622324186737386827042522816361728907147335012132086778628197429505215838997761741189044347562645805046213859371044141605159895947640135644163175246357544234716742519367835750555135441517276989611056535957064823989435602732515110550192127157675853361981299309110132333269992952730217755852882237872440208623692892012011995989142809352982995749263550009437752348657185919125137901913596787167123687296197917864754142976037511904176346221629967594969702096287822347674581282819556819482872550287042906461507841497552239374542652467731205828128529130578123953164439687627509648965634581561477454302083461021938215809248720017460666001871522898805653874663955285968550450451943853834877364013025982454607972699735074819394242023649110583900298963611090836167925015343851252797085821126242875133799296124134482407129228751709917461052503161540320550814929721662406470019841387303343354896688446414927156119715327325847982638567540361915369415856399551895164918031153110580923437160239658091961403564444323527361499940829262163406234463112702952567721543843280549616753869083500551360949957978524772985254918690626168751235189544210796623433801329062026442066798905766477630754370020976818606062616359849574655527053967482263569881877331255436927091052885126583817800825462119530009709878158874240245406510555140026996928894424534421292943768241376337738440241535705267237380563104146928335166991900697998495061827578529815307453895063910546106860250327791328148401770081583262766759575999800983947489924190127774939854437987464828081904566362867420920844060991738213884683738902830106243551106851698833875215488033907791809341636131860791371362930273506947984424178045740216712280733968495582151219506768158710283259334746767357093598015414976459983516250631492161992122621545034031676932100636793853537432237945113884085925530689663943976661639057500985223597312493463702341742084597225810169209756050958355663935418132006776336328686819119100468654896014237504160659978733882659955797162810013959966283746003050211506144077352349510054513906275390898006700954125181557248538685332037413232156006554639576762532468126540643804560071744601667346969143772024782739887066810463815099960947964071384142717175009791756972292197006005293440403452785141218524885210416067938201981381423330965459674336252816097141918063497914731944383451083295693041373865034122823443596166388612307833675740418699324183749056877083596177159185916366632891303136058458694769482838605635291012125384291410249053504034785844915509944820345512520576530242600970742704587551830728057632561171320260241642578564617608672107693354864045806622423613739246072290784486127230987469663618515126634429577287382667553814900094908365851807968572967100911196430090349891130175126648050688223171776998405601283997655363347395665838500317340544554109484933993741486826180051834288832512835595646595610155211377987071805439397005717144701188927604080724568310670707106623074204396667154166994983453918420766762863161380169263129738801365976408460153350852360466130767266872275109148368566280602380665457946810108211099266918577042653883744990136578441770365565931424822450104129762574488582869145487387330744503777722294147925347950354593708934132168166512836878342169785780095492656365631189850685981951806504275345308635797642490259891426807953148539420626095704815438750424281026233078828196973534639954656259592602495782088118359657617730729518696133507479312553431996980459385724517068968797510570822099291206565891981186396487855444197613849016700743276643911321318978877345937775691240693223562173320393144346226536595141735698154401457070579227239652206111712614785449158235556723976981930435548176216418726511253918183514529383505133583135932320680576436300088061876869944882373086148817894806195486932102575001212429637618059268179504568899134218391193847845335217480396979684184223718105423403931326229025099944229598460679958866752338522611306573668289578276767869654458415655569967022729333215037163027569027195234159533451402946520996351616578723309495708629641619700123449693688603008102712985586494009615762576461899539437000236826235752417725204254156297579394455919425290960075508395551905910784865640872103157492600317801351191785858208351943769949094632411715073275914511349956732939077580019411131325425506397181088551553242984346604530153229388853305124633617539890092897167874701516458922520941908003556444237154926515912239779932135032166905231748393602301628185601420800700054422858700008322470710486156339197969876258783579445707686845776284033852833373320020184228940980814904706943903088780974041454186771702437543010178181550709855426678720045161152104250286925162780089584977740693218024257492250463086522020164991267957304387591283871263294371974922434812453993881194329108191499976684810821215859212457335759293806740394158800039846919046650663454010762366756620371960710011275597073928822121350766572220122416902409114078593403526530728596686982534134027161786020813928699241830519748573966239273513652607157827427358695779495688161298711205896802287443308048640523227378869834658059594473598288726630799040418857075366890699763144614705799845072891698133232885073767684067700391757902568046921969721808843637401349564315095318744108851095002040806668129598539810642174408086037484986048725329527054280148698018373341060691966909855159011323599108924596321479416798767973656840962473918095740122259400215436157396468094370600422532560939165667981267032247800585174641731186836562951470000162808309723566210215468005890186151640117669492867282576808110458764753392412705115153585293931907780840774518650701793951578649693068462877918727236833272888369574848251071992182364457108973732377805225188785754539351689163338574602242039249576568907832947862987792718612351265949918098885057007433670954118543373501767568096277156540769250560538611521590089690542454479978450183276833768187341678002480887342288875905775635972599039928157766221996886881497769174996446625592582089383571505697443044754812520697121291345189151294823564284464086275167211242970475322456526173728635063765427171992926468923643198000765003632994808421413110074240516506303891444528285432934848393560572259313243181990215736082141334856818908787672422747299740674371255633834249841625345354679337960066278186092861485288088293315560763306210305678207230135088634925228654852729764103695977652899550377275489369564654522425016548094885045648568410299365339316111947105090995726739705295118355371280337581273440006630222093673253896079537049023498441197951490793909139468806913197191600782333115011077765232739839474159149860446325003919325403105188487747864216277433388137336229080193072633808598923363378261026985565419936824869847392158351115579297443834889465396504655598161742683603057724929932234384365370416370600928526743542738576332057629462231465438286846282836211103043156955323459423638537639526103953981231357204240930288507252539454309297716384562395923812707966449152039006180499274603386930675844698254777332453076424620898724011103101408600909902018696525013837787091248905076853402020877460507456335850155832085232511530292504345619619743108185134905759440432004859699855597817535748807143810452939470042398848130059771020785854243543957531646035239900859211330656466306780609718106991185077756510930238633277680422389459828507670273943090032988929764786024667869048809396052266473761570733828498759439363840198618918851259783293737652134619547725290977051527362500079100308771271705702347977977935603668877227742049860491703112394623162716239685947304369916655780799341249413817792561771756006837509994076927459551528125052573736442153810977396811978631808807876317136899627496699280536378726856734869797451107187301790612287577301908069081521142624434266383383166503697751799144310500185015626362926899854168635282645229915727553742530234441237061668341291782665181702440192556476960359033487814397273957759718791118499749190626977092646310723990714158355207872718271179955300661228747355935321899402324463939807611583428672253828230327616275727512138691881434038981618087603728826961920250878389960364927080233760741829839787216682233312796277604934134375795868370501862236849155791494936406220094854760242081190910967953727652393035895343568866451724253928716301988049887973267851518066383250884506700124804402384711436786095680428511764168478815792942252245737331007352351976890758340749394361236526105730157034192308690588480919045960116008083934777433348698316560003139347265550030864915283209385826491824188300002259807025166184983363762253376127741787813242633615971972373046598437602564412359371981110355813582608459812363354142998646399187231075315330917804097299206582160070627804509747312957604416624613521668839363967219829433073155567376145248518647471666698087142421351437250756013237024737068109513207276202049319767035449476910462213136490349338686806504116179274157133193837249365890527612413615993410483877162334752309071175369878829348697412231148750434254156131076237512055744805145016523128910150439449092416486968328467029539186964738223381413937443009495786576468952517771358100894178893143480699972494233780845382280298328728411621719701639571531871086853321931599178342740971521118086790194152304186457873654340189205828506642200293335093229553314306297264209347278609318350771097332247059685784335674050707757980235712422227465502285255293728665253795890606848690362001543502284633747918346902487827171946808186043708818647586231956965827514669411851426626966118335998386685227733707707616918411254631303201754963084583733186111204989939215762623233384844273783935462770857479461365091481094044747329736523446968555142990359914704924699885794983341626675301987392204604099074199068970806783524354285961470120296982468090275741311410339389875125639741426422749311077071123264906225424644019940404868592342983217481001960254466665219544877275248003618504290759292442312443278131577743034051261908255730981601421872127029217283692313810280901380287293715376183240631047834503965308501894889077672296864234051566475529240887082066605735226039430448005458517691090517543385265136277626426323480729037155447479859684230651913332204574675571676255999526284985503619811321066163689873854559709914489237251854471155053849620857414458571635173853113449878530714392136865231877584933856022538473756878695702646000465187485839678225376987783236919181958230863714762657636947325606670259657925965146970433088544598491016882500822154385161483979193600389532713116469457085037232550228324275302303880295968425512658057172873458253686915612173825864049493379788543689823152671658594773102770431862572414662629829314913477634810922382788790986410576082540008149121614689232856129780086340373430718972387455859289428251849804699313551432243311223266128189545558665759683906549357063889658295021200258674660004528340431310558241332019790855612114291406655033526583257101057036241670320631685182009497801277293570797683653758193775862842796965932963775213523575415687938460918333649846192544355943220616288528167047811358508477916223787241391554469650255042940828443946197339529443884534044500356481595121249881653744833574025620782564882179725883039660046108434021117213520548314401577731729064325493006170395062811229151082788183013506042375146214930841000592741476337989347334970062342909777337381314924623815124248100682418493376977975648580034162231173954348498334999102786407556069067144901410263771418526755129385939169741521155810148181953855765514096132858532695191173460471662072338168089120280980293644491446727037792094687269763215710745829412096866797863750285386202154784889663446396118421383577059651544785135575450360828844083897936602757542738197731930333110745640547418267140744197197964972370734019016616976528540647685595455574516079805967143573460376337314235117686470262773115722290585850546871535789348328691564716409203808159423903183151420211591854529884901136867416555980879278022643014272451170070244497593527516692928504395212391784570131708055735129596339992918626171479521115588590414901818018772567153345633553584786854951894028496288450291533385916737066519786956623747893041548463118113912505739113890088982211965028626081520282177660238401878885462276263531501410988055772876497441690371701598049567875312540714352387522950414793688247788797656493009324229505019929764118420391415019904574806351339207242988098897552205278812292155567933031987752558462298799966688571651151006674231979410129280988865149475958079078463852351216299955064984885327523680338163498005434669075151100139914108727694178938302426550075433743125996133640363434385268131604361486920512036111701064059588537528070065173585479920310073486149789986412837683159119391387863213716422755967000929353908052318391557801699513194775065768071220067182788873776986587296821543092616493035137042237893214627481117692421367441940370020659227214923707702773377133211805075763928382651471691584997134526802635935523694542362548028882833012797888565257567092212229487309352933496276264060654993885013747801404455287274895699513021335292762828451985312054972917654062213570038951669651326876622324509116525512052847261467853967612454424415549852611037829314068046116801592037772597144802724209898264345822904710974876955995844157421813820669502093561425504224396548569776222808016732720473174660454745218414327423700322460537384750699162496143034360598628204669814427223255189961581641794616202373311366957045054176861979024514649903887472085133274529158334587535642476208492178054007192515907086527735864945073433502701755118277680294997945621268648424088219475947635676751963275904196286031201483579228050581530458262981719993371777288598587091259349283011057426645000756172627717051300693114151599615882999928052875981896722618344462088294409284566129265978669822558589161604262614897805017162671163035018153225111477747948242870149021080454436327871522020639554027569256580688130300616309992486957605102379229202570480906527258141384445044033877671084824933672987362082899458395872765645321261827114178466890671571539950734352852801907991935999011114349838854912612209161336542290466627138493085474373123646047969003355278006309703460522736210558866523296724513050325368160592762744070926101337556193155733373174274534203603051437402145940925851023159502243404763033526011189932017187614902178806015073699223580144496279204734625116005059546437909211162509619299559264432963500590152243094974129652823004049296209401938312147382907854192812270362317946182159583983277189452164897257160075913219121672173761679400260837692662586026792320041705120458671910908456041926919283366229346611885644344599983088975330442953576070244755527298452134989419306555499860732526225150934109606400632253439202551489161335371377090220433842634513668273910578786503066227538016112508911006228903855301973054285747786890435720883226932656821895143833993990993559474252349348496169075389733011779825480953159285348079122316671599396043254430650957414312930334921592105151475285802051628673681334213143730890336854075060642861634984024510784624563554467451524872634695118984455788217173934722406651118332836453164693473720593471723731372645775233543201750999103111876033726272239139398047256320716485279767400146863016784990810143246297998087408321047058742707681705007789578763918980881215127116990518415888094021449869066816342644412191420913996517353367321779306928739129944199950065319484390349775953230964744596633873849251558207909509755866088150232661090112496067662100499101499209958786879167642084681021905933138686650997481417194766603039244487891314778393035723769332330389882323815927027066714463629275713386423031670641420716748368016948316896780563138045405732862699386031052924665561047128900902015088813340091077860989977179833715962129961529668122459512466840404021633122384501885063827446176625291855098502226893737000807142378816125475064668881177563066110074082862864836663721361387010220674208465255230285113733929846648019790259251372137096769854070156974955757202118653232804901637556903751993493421450281802455082266840081248557855924179399093743625129869218255772191158201680105090393590393608904888508669578000586786118137157126215379800433706972165345724345066739372731103408853407231850391299390520305548464770904939063119208543142269480084154230369602564077598957344089211831766214825237373573390633789321491442593026142326110848280673439977530570083246933722416059659641192926747510416465630013864764487603675844358915577103860859692672429448647199787597041053640892065261302096133811546102140287215242831478794930121061663239401012159098894523926198205601025412625647699883535245384613744741432489705504598357053681575692009727070583115919299585857211859474711818083390811078079766490047503136083469901683337196261065190203333037430694661993103435577837889427321646442473432368634273058507988072519559858802153547490211611666751568773901530469626364981735077744067110057929068312342124116804310719840754367939644216303595170452477161554880184744362761861149426900715194992463699087982845048704665194848965772475465799601457983195904202494799370881622417787315087889411367678273792074189216805425802480152507782254926042774582340696341286186717829996519923861076169784364725027436941825138318670780493548353415441342593826876739024038152266844336958343828019020143576744787946920115973524534292124850735193790234201532876012912622765319332839636181321007753857039575164749580454503618412056717000734498747585674320818913380118834084872269751776837834806036627582495304625446911397441611179478715441711800294002942585858483492922022425406763610193469634478389919498795456130036304852738857166047848311590626477217562453649334608866725320597162472884542694539352366321494770358923838220938184830636934700583519933596258624535410504625923236190761279693493222814525553057502859197574032767634808492782860028927791247903717023205590893174426365783012919879295565313232016289895492725768612443420447796243363252059040411334733059970224245294682786896261430018797815907409154244200151751079311354235005254949875720887894922708966658937924882842790652377469910358958916300706846851428105917509306527423585107715414519399595213733182263642548360991122348516873372706563774904262875187207241072624089306753100199323543037933819279878736366531091074870099307645954100353379591085199989815526292830103238630814756526003981040157030433096570703695847923879673381587446157584457524647995419111377176899301114330543772752078476487293784599795167431328270219791617077596919460075930306637878245851272047552136590519906313551927390184410029492619586724396678616251716176804194857697685773530021914613895021024482525943377292555240942042202553766921776227974720810801913162109203050662264984624898706609677304355259336830325801722003918696897180702467428570862845090167515577219896840067567462866873733385876049773794724031028703412801729306480259625166033538517544763442097147606896407576955292596074751599434355886231698102253064638784180129374226997376145031498690803063653838115585385573112157928920113747026208674046920192294688327826462668091067149452310085427553290485992059009942327237979933450762607339396191262127235967573276365076437738818566380971414738897488593785896578931312932512311455470057712695721781496982218327996145380296161006135704988277981226492169063625512655952870069244964967118571177978769619979469366451111698157945774213970757785637406068736491520881920782091838499134431451360760467394463951688302148510837286079933581140118474133409420636699561541234667276792545633896222394575955862988749030389353391220560507945771469704727137759084603067372904679820349688146902551829000357144703369063116369417393536824644147829337643478948559181801233298751173014873428541242994186880534029567912432587829339499890869112068720970826584163983271356690803406002900194440744600145845143593797588963766985744322631726253137227968781246117411046726631167315955191002190371609190201856925049625585560726510201245223259891671676946982861524327153913721515364174786672817208805770492132666045512190346106050958550309679161162833093818868574367449105531879627129373019478045109696013771173554516679326784090011383954977401036229988848711971324262476648729680273334380190033055042583434843020942371393290713733208102923268426529216813457528886967201499608125886648053668725119799703114776881903009000597842013670545781123183141267686636587310424923334567437998652285049477208864334246171245550594628234975833935903509509760965005276975152322534242537758616775911026396732705739280389388106908142387986537736239045765625953814012784752817132473159944712355340935334282833426147852782773502502602339547554556795986021425955111423913273936265643198140211515880591778534360753408325348657154657185465041700478248778626601955249334991193813832653196064830089140227398260941158384526984268515583160054512394380967940236572373739354720163279238046487233341130222977261043141855005290715613689213480449984563858901470844682970670795471445703419956679805970692329528364438478689057987130439920438580725841573014936215744123436757025172370737594193881438740403457508625998627583702506943445985277212088878250828704850563314384149767394848406919099610635298947998623404751093540908970827402504391672189601890284438428441385098725044265798008653635529205535141293132970903941199562263041998961007142330189907799766121020151721404031755464297714254710341618704418626528852628140033779701772092232633037659874896082801114852412119922947955957323811700763624170884301357853048763168113775984055169210148939780782935380885628411110636528275482088861371044842879539185709551753239366353109560681798526114038275678946214758303368788495294059277047291131447474751432073302161587282866508171295754427392057755512183365459261735984785148265655573921889548550297107554822119204741503127187860645330399182554563629520789483792846235990016577461259905903123878821080455211390715551760672570211405666767455200699378916896919707439143562338401595299773876311568343033266694088488796049919624012080093288676942041130625354000411007594573636124748724388498752092360950003659065701341720233539870054307099887140382773151919807648486334015106516355530771059218672303818224126344482770493122726232682644153886560776461961450327321318675930140003337173226560182106861985973861507982991666551307828137842224949876694245715271032949020163731116453445869554210238402285555799124453480208135964040242685199654498825584911591420275404632119359286430051203379198133167059323190733559585078209180368244428179705166604488145700319702436640468927209852126003649300140187468119554980918704315783618233138453618056017981889247774494334463986760758230712227352752539031405613273493128816392161308444085501414435642914255050235149640284512148171998794856231892037785542601348625325499752961009557058447182359988243859806447593539778003076048293529150468101629040232669313864770230618104406871042240161453419272948293361094642192913103206411663587011265452738499612701505126289059353471284322816791672587014602001556608219997611816389057615570178779221619545075887074773794785140643750607272073210837101029818781689257388272000589900466956516112448393167349814166070972747437449603445171706551564066360264808847744982330936164807438429412145032220256533075762805828592330490676004619531484059210820051542547650580650456719208614058280097595339929420304570719691007754492591566961020994734410424483186779346397381452861281499839715946332278198537237181809077282857437883633764947015672533797434172210967154914024471477903887886405441565882209851516770818600042749444409833493590025180383295419307440101968373474272841274749334819058859707507229833814943647554778987752454728123321518049495127144338414728568477051494734519465905758652361007998111002278380223754715558454131127340436486147974937534870260983825916972700756726635499662087712362809755527368603930102076264945077574926684920279524709003338763299734031581856662451502880383956575388533559799560828818311418015024031247166596908586082911774116514903595405876990583796234194192007738168220783694150709115026386623738308960720279347304274452505423403546202647600628453094530869642038394930691954300855925015523003560977564567705590455866554646458277693042841060828957121454660397553406459767690024510037642677489110425818954910044076265559613083815392046592987198530766672999543513351409946955568346290420453004935461209486997430972807718264481779557185992069033929813018399927682185987669974715095549118595143831430503330162000071185727241584279691620412120794813329382731916738128228491530428256640851531522894435020494029972366706416883979697352279861154736524103310217378011226893139189480308287866403335401436303617151060243508911388474814342316666002020741203124454847263332159923120842419244699101424977515822159875142291450080010765648440238417334784842708273945149826534946712656403590090406889220198749037095373718022899852635973847326812997076391059669920502102080425077188661617126983456278952007919371257115435669891341974660153047715971661627679885592092632249901341088169324005326457164584863662294094594137890814530326150902779140557625485073608733088900932739346802227110479340886931794821938342525061744226847459536250491098352760042756631390334721914009350559748343644195239622637073268671302789871523625671450341740009143387359623615460439830861659007273272990450535831627323263726256394768477874829906560943087145088259052509471068466341536302106456056674426976075435641036787169890608625374490653577135524608106417044571422931079708116637969180422693242338050002208312211932712128150829153287910132279184460672442059804311808537638391299525494007560257796187691204353338764758072124910284668987209911331519009971452309489663507010929439136292554859656851489356230646006283422906233550963103063843953559859133615448904946512119300123460383519046904667610055232507749794510195248375257878025823002078573755165003438913178112182661961257222655779816641597256108476595234791357238328964753620119154880861533830084815561068104722664927124243193875034281844760347439204272374460726510458236364007581924534768707421022062990313570493587314250898564570313007869914970456010753414147368536968745747771665821813341204033516049721699947592842903024608105197357097898653544504314939314392292192827694112642058326576665321596944017773321332794675655525003345751838359805286761904599188283169637145292557962478037362181597142380965599571844202102748375979273810410233883155880108626830068258413825743004986491848348241695710117086127305151434354760265252838177630721612053188559900048543552424239675142663598776073409706775414400087041640126833496216818218554535048941125934390256606657341511573627899389742335087615414690616072408362135828693813624421248959781146058380446780002221726002619530995316233700703188596706890654552592746236369430456295885920337314001380534649191294807467814596069439660542851637074111209055559823363800972370500819374447585527910366538070146145129344194751207380357713260416733958880148994939775821353581496056203627668159958002319405001496429527473670111947146825504510466184294832254501920373430662679552050537768514845631665218336220444669733532394448814527351087323832496945277589297976075272705414681764039219031846139977876331837785897603358580493184595325533282881853791302107140058107711512635646368652226461973884980840112433029006594738747301493521932794183206825980233001641566849033210944109556323514642576735078216431033451959723196918368408634269838488171021611258455432684671189154542917135376149730048020326949192234409894890147574974704568882276552639902322636019991097041636619280860367677219879676550294367567428394966638824025189879372419277743190511044372421948784558935341064692628167835166409045054159546153754275429444739915041205817712752933888569780482219765694188860159425513140917420294211035230214189265251452150074726050659262061645422099135982909539003177691252025161298229111325612615308321250736020509024936341309193276903127282070905867961614648226012356032123121524852851826783135487536902887534096547025270889998017187866513939419245006786106255033516955517640037648036283681820488336439022350603349608670636279363429986568247039613899543319794967696016462049079778606643629475506504147604726842747533336487265937874410709459494154345771635292952316479869687062984862711962380633644965693430398866520699484118693361094939277719645949928572086785699590064148383734510221988382064447581856370584421173984627923338472039676698807315892096313984923726395131019709273420076798152904982312947565926368816616077922120638522079987282687143764643269347936706780946795443475379948800228955005191543726373448573789761333137279401851012139409498894391325516954176608049965881451608193988052758657423929378007808077332722910581886432987738876907526303003929031834953403980945319310200351339779201876973721637558941033669011886685605175789996600544975576405679448808492626829107090084699571444966926082732901223907770388433701232902275589023104734723471891823500351150489765366684736638178876845575634595438979602596353281685884477213030695975986145658000271314198943452785526719937755317068680587814297267461496145426037890779672517663970211855286824176187216436275970591825008380209541533766054093391183789822627188791209653740804571008831294210573982250278805042804762480121731863301323267463720629140996879177489380819896971824607829266914554825656664493822407827435184726378723385658231356861467406656402179240258568171742339699798498614381220367565234536028362070670453556470388280767236245605441341938037757654282444784269867136972313867497294733294817279453158157203210657768909472839164117724562047874055282091210220061325534341450896882440637444639538015678285576140139819125935286123228833308774911797018261361415502679007433226374024152577707721320729117046206387176590347402306542834555540277989005326155711353896743150076633771736122270018980682605774603286860199684108763488549153013501874081462091355473995420554060445546831056613146964717289069739193738698036075379350578287858822341351097035476969292851734730105102668144987799664403321461225868533401882430554165840505482710164173363183215777223914051210543377795396693509855407702768324691021170081554198823281095748507645001949117572856069437108233972382458277265618467259734078650729952646812707367295406898237502847010256806585466169781421281534346997478380393114830646049204249456536614827149638963109105431547057879597015826329548909107330584627269609413463531420680971059013779091785141552175028224425260954663905443877071778970994579903408531712571914384168540221327919349972062957231285767061340011162541748311130128737542055281360298364646459815313002656128023901912682971552218055479237925106666616737539740178232789469674763323000284351216620874434380238642460518222420788699524590586416223817769038148112005437972432755979271736984526434004323801949654032005227073524415015851947303455614128849717879931392928477345593428470157016725649617840460802354887701654683731457430125778391051578911270615275853043231546386687058774432381704203202068673905086902448591683236169734820569473439814046549189676353066156718583095218386949670180949956493390043816207570361875596919621243125288769563056809225966418873789990120860354319268213576381037707715199283323888266857106411633395890999195838194367879765077768231270323804893278881517417825728947307100444453841635736626536166487414760275325473461369270096636788730387232246161256043658735318262385635670434413505417635546947367635302419253513411165998560408520988577540946415679914915382718895480580245435706912789280591489736986932444136360326228166398633608202622099549588243881476900394936595411201926692159780911385151814307667362988952383318321762736477190565650175920113153910918974203276094117687287609227839071038400478431021292674091157914848368182636661645801126676169255571150089629058628722228375142934565814738971894465978951575795309608194191598583220909398102448766965938918171814479315784591822365429585271566481427329573433696535211357250568286070632460879717992314922764753574324491691708735535022774447439733320303827325043152314338565744275659805313437184520336684537420679588195220291666172904654333370264914944363253318416222157650048822830263459494554680917717728163047490683332477328586013621486351984655643193219440621684828345631266337014429733156476141665400041297163307790278598073006641052796028654782351019789327367777208359906052589461331604695778505744227392144073220326181598679290819459449275909380047526653067999828485605054351075644414780732896255602030501848939962668154829377152879092904848210702040480679974060953409969433953817484761481882210247569652258756793419212629187861811318714959172608542097303421881292625869084543127350762944608590566440431621831042860612272782504182514777917424798117023295028553770486388317194315330893950939548130856783819357081933599715160242200619669799096783878497965199422727173862769986642157072541905455813211366314830354617053829299614684753537091674911327383393566617591382089680896018093366247339458005446489664276384222415347700616456821547107480204976902174065902019383317566706017890823943217666744475860316847130012174960216073672144204657259055422003618729378574232997288278756437837819466532333823259228761824321286304394515653879225864948214183661873429343800412969180989399399547895834163810817820490641455157455578309296260584547511396682350923934958823665557107482878560783840676837885763575343063068032234614518860378074606113479529316834150859944044049136929738887530746480778128636976551446403235379717916161931730879145356002222734060782601882121489993710607206307336596836943601620189259966897470149006757469462031214605575372623279309388090694234770545506157605665646540523059560213186640882796639848665821320718902374206189456441067524255578568043243797063683077907134096637124186794797818517567596679719541630409971976979770185748949770544837539103882070755291107776889144812564676892338479155927443622944274083878049159494373279149710730710469891253871234310503750563198904775840190496104946597730157957948077500402549022908895018906578990828014593941097234364422045018441998704217386122318015069529896069174059781452052380567672914369993473489503993192483355656105049221326633740932601471725496285330797091230755900611000878058924266269252985185375624569170821617145064452053057640189059572979600389934937889132472886400136289337492800768057465608282414278868288482911081483866722184435313031721022597995762849965033800116223175112733120676102600589549230894354344247879028409255036862087335569112181469006601660437503669635859195196552524129202244863971877640754706864311461746903008446445502709998406202203747948725027821036897708777420640722567863064134623282230258163580496969860474701403293683036417421641640776891739284568589576968256090690804476937144950109160192629918359471129367165565345975716025182702716017728789419457931906088422148265491536411019970614949648948763256550780570256698218801376918598538988322600934376331704313487168456106535106084818522513395455843248987550592981485302526865507801683466469535634766742397079562495637315336305287923876230982926104387306671961336456983938027265972907708103877077429484242071491223608299862134567244473634902020899434616601693109559401669588276363858210539282145178603957605942313980298196096835377013831358602598553589189315718795760452891061207731766860647220258782237160740333190593610055207428446036235713083205409734412974471964326530692312635822948861610649511397234205820568781291156008416508070170038842792190585782572880696196295941308418755597402548941072204041657595129312189234979111840051755626890244875193467342768276048743970115537730829567718437365498634307232599153332070110670906994476580184700629454015135845334269276475090097914566536555230392957022276912854238861097119536071907740087738924642681477898967964347110877700593640363517664805463082543387728312931155399251684164093529046827063940165801921520910623845505844992656196911078726096326173179853160487581379997535213241520890640239314862925573454824319571205678745242464408140620260614838594915347416051840200040321054295138391818261523441626343932536658545089332289242406215697047612598561096985060525340971641759808102001143152822210248456978459331709151676996544674257365481531138545715907883249140249261051527440959620619904249510684629161247522592084318289396832840501395819858828443382083517609618916641658247269171586286068564391229641445632366227598341114118943704861112038767267703990619213225597888512828930468532401858165724190073464381100982407812792587553362048484221506150384336428787686974212352944048308697495619630842263765308073877330632285549485248627310228339772099296719365040840205987426278942560620574875358579629912508511215293679305230502132172810908413046083085786121348281207488760268783187519211851912843121326492353436622641938307383863728541954079378390504162652625033602001758788624269346983482125590531467445686007314500237716775836566283069329035330078265123939069601960206940362117588753604415849826055499959092231303200605654668853643912255348343896800222563566351057347722299046428417838852622159805194462956053418777811758233149018693792991185607465006700513731169182953584165219963926831696575009628059281714496966458995341478212291198546210328785090930653344769153745693559186233683190506659799688927816657370192774799656334350953879430140980461583636559584100434023583975244542785832155326596747158264900248852279579610075816276715465339855513974921035464117464413977103420595011866143263553702722060989521942645906012500776768805394829073896716209262250813752749280920211023863075220238840625044420870026817750761227654768934418493838657319545459121155286855612534227309332284559353427499797769268742310492715302464107953005251895595831559339271751218697843291283233472436164527642035851819216994662466706416788035198426510723120689438568682081887674043202860310668774505588016281133726205180807173664878313271683327263537391292445764585059730655669557486096038916015824179447335522981327597544425381489927007761113991522598310247203760224896387008958467285587155733364597770699073346331754339239139975646880537516106705673218945908696956062137883400591407301915679049196554594215593389769181480941462601723420758647414121236583854743076822917006903260331733295605639218191281583927145000847316163571772657380278881314521765037351320610660571357984254488789618469733038887988851098048395012445805462092458886368549723159942442169038582613497898118489018765482584169757652216497337998190639189995228787612023771096940958789425988921796076568385024306119682998374558337967466211461954379929976789309194067653919868994220099538734631555711167560152990225417255865809836135879450884116318093221987409119379045750882726918201948736512595294465071405168859319510143938669098483086754766672286298415635763653253209175600190724535232326635711371599709152927219615410428957737390000421753599834279555466100431107548302801753014978027363349655390274575025610623041705600415412489460823063840660258856507478268781040113644879385350257069533736410549166635054238535122045879298500648253805553683341841832899603873677550641365288406187063817481045550946376315978806562721146874472822240213209731280161476393937857924965154027978420030981599546153131159581495221354784806908581453546557530397158724920831417290520102806146016168217692134308167342042684988137139364390889990451069916204393829351166668095075664508980383208548710279633018388210311834854618518066294379754848081294108058726655439775872994044166669752251035836627047379089204592502302810757542390093621386967443467098048060138842002687900591790557487338429442688905603976653707515583786228978752882754984537641236223010797778693974926427389695097232679596924011378955376800211436818862132680828140448081505819697521219611884695233249269534859065319247727937343991834724680250294274077839814823622143689567863981842661149640568254901981235707202797522532491316628234421838398113845042016927513100567362325731714136021427214394814435767360378542807027570498810695021937184804192026114336293233007106138391367893502298720955602451939234703266993016931475829503019391463404664987631318109661179512373005569888847737794380429540644365893675461287174409924521541476896002544887132729397217405480985452293639269182066371203209822536454012557470126478975952950442486679368902638093700366542500863511027737721783887453704472357508254668187872812305717157214955977217421876463316275202948406629299784574795741644026834306650306426888628312228182134013212651827208020606978210019426212027858815367169958535827143545770491152390170060856470029493041519940903176571904183349363450076447236838842259361906512759902042736867680385280939307639154903995094648092735473544151768658264416341312059381060285520322844976141440526697059360328399879463718974854007284494336790323023952840289449665774659046904696844014812175150913867873009636214515195440119065325506627281744353880817053527072394683867604153934138570480651132187607705628417761689360020726810318055176132526801416680785904432472562184846976486116868248550863740814809005414907003565224038036721346762866363485425908755612267368229008294890114694975108311846400156719537755398927250886312348191719394656370028354780759211665073089683215315695077599284425050820621052801422503379186189606186441119144670735241540097906338089526148225278085327133126466335590791600519064628005029964479319850130981960788375590519872496717775964921741550549062857928416226167418232535399091307604618420697383294023330428632510108141984370813245773570150320706021947733488231192174979773523433573340024245497072400916615946541720315065026826750211105677157489258290305741396422147225278247930993418961434424534907359224188537691798659078731294360792503264822012698074856330262319634177747679188294700008376054789507844539220889795202067609845245216467846610648395605558439000577756287302256489882897037272431638884193030154844557900905897526781026933571119287419981967266768456601259442368315349378646684504450979835950732235800250494181347645165829294481501285140595013428299212960364952963633228924853497737108534416597447439401969802444366719422853762679967984901197065780954672139151936014077176316063477871225716573171863334407451140824852247970355564267176443847742080736423937373444772167408417101929328767344087116695701997927960840955420391002552064314899999309095556603879216584722935184206992023002681711355111142244381940409713387743454415054665707889625483022668280576972754697684366320032076797441317363457068555789108014028771142115978826000181622427790836631417795499275938059549112217895547256367489174532469519274696246031902242768637100340613888893897869800981717249253720064971515794088068049571612473145377073094225440226520694600963621566012768719097647627614173698874531904485686207682315932649019267574174965768671698707006210172701484259264705343346890287655560610308313469927137610968703620496896777664896407489780907343099850950843367919855836085911887506697014127746261368797497524026160728406266414675209438213663167838440091831338965367589174481221446332811649431491991286651455811001950915254734516847634140234527929248608691093480845058748807414770388317644214889660810057970873787132199856082757046665551526183624385883820299945321567345930470283252344933179425497740725623968012768524692456497662663357265666672080050253181115419035093878720075975787857377325438730944956448886419934435783019313905165333515681778051035969987809083894367418902260715033194493435119384783722031147836973144617673874019375230261940829709076155980650700576237593180853073916985969052636604468286414190960667061656543319619288819642000742841464308717359300189388932453211329304145022312559078832398492861740348608298682366058970717993839250397335020732981748506627135588444157101419826970586839988209253818856501245417940736838102472143897779232837191475298998833015918837530776582374256013945052890174554056098407597760548008733855698242018576486181378894671872542495724103327688560281081099518151763425974939204622705028670963145853072359473283636088933917819508879537194508260963664981382696118577368522511953623619307003520404261611494845952523140282061905677304968352529667597264165683756378249611492378576783223542341506437590255404641321477806728832030237640421987718872930327843522090469665459253370113357867887804479628116852187070034385218109218717937502769175315960479297063365044696975995780569768455524765413094607379800941511492859398837356340987065371877903007238480703235216387809639865061875631537760345701276072154161517201136156321164482305692496527252427023138364607064053714840231434597626351159459339018059804725713605584108895682680040359896840120451295022439090611931719790751673824445228007080645208740749484764749429714639823876676259941370942076595109881838426121781531429721524934105384849087604883982991145232771182281352900107604252039980037566755454309182747483967020275943632177592592580453445590189299687158738675766296450571337232597223839856114189969309493328530099775831725529959278931599999698098468251736524051455387241991167857454734097038738730094232818104163722155669254351993764537783564535935680004315160248940964270234034699181224230368978674312225028598510463467471398094512783669422454450814702532897961202426884085088672800183743135614341798319102980767901232342513529199349941406420175896329332832876582788330026370636065396910255203649195620902046428718367259511994525903232858159546069808603576816534196718363761689317942157845220413109640914812213524961021452934611523964946589086884090465519196916694001433403655782339651115601631341588602514276393188707270519755183763597674282086847065145778810834664574848008159109664052560167321148018369149541065871242379082125048411454369937026055379819386778113128252847482935351308808806815401939700077670951483316460029059329227828898219156641538012423286509990366472351791172216127407712569334155274045374802073363879587455825308735852295172663774507096945092725044466232794412314572795566807295137538971441981690829504174610180843955165170873171355079489210890514546219255428035841973790523933965795975719712269119321782388426900992181077888589510552761157222345169664325779302847587196808631511029423575244065587618664237904370824819407105069707512551419980060202880252805464192590279511264311809568441441128061404616590570541515345598865320630935041800346759810351763951302749933894799013117948647251179714426481465975703886786374160248109285153009489044920923474622547708141597068516349784196288989704184784476413829908829332178744276718139351903954655498614654994300242759071619196477465188106151882329905034961964279832353100851450398942401287074558510557865945994720240132891247765579421932011740743749561949297009218680992043090537596999114339107196961409047278183378368912928746381932971115062547023314394171929499952754892328677158173758690789632151012480883870586710164543550431409537469346898538502694366412598886373848264631768408040622985904156023811852547645090162805238594840594733679610147497101619113340838721041625681785726878280166893177612529840158058182440876797563533281668587590485898135531790325144960949647729361169454538665051444454109646659627455169979578276467293040160436195305792612549906865936704693594270326929046275292644683338091514920201744445517531863775668193000966017697682985178333572443787663248219086804421599472950829841778044302838817790267094545097846206119850708075192331277081212136815086523367154997976885268338854930803219983442647694999759350936259423201767408608219846666609326160603146210920598335896557743007090937936660278226295034216869497941182689913487393954719205401231230137494877551829241582389881218438558772005378465141435471752531031435621355011219969013480487516179456192178268345136536957184459341524536952186648706201097305211990787844294559950047720158885196127919654521504020156401921284419884534796993852006123498319039275287175191556125274330620564815716326782139147967173977663144119000934753231943178030478140408274760354355265510674717748729180706455058746868568855148442968237707970553454655133987849112175506504934729104879308745567069482173066926620065925136551458527669562350479366288678120682669777995726415331427917107396823030915863256225287317908733831349303779552195133124890912528644866662468720412201394488649685288940208994006699859182147273279781299225565036714070590899066505124125194263597078293658866415881029661973264659785948429858569234344370327573997425635400571077848389040479372172741883773100779148558055987482744570615472836156501590573757492401510816464905208677630060730677703521346067980963455906828542063549646845112152470526598784385024573903662286345949305157156057339310120780446378114275131351922606191017323927777621585647767438604368853119343830610152620212246121745176010098958952791661659187169064011542625553095404188121642556437489916061613117173981347054292060396389581253259413168623698842380095905351571168979385155737513410771927784359403932829321873732394101511603424489431537257957569110137118523774024942697060150043531942175529146157470560928452349786865589422142345139223528950632430892800280546258900746259322420162128590760732172157613887659870186890603585605653396306744476914016786433109982857040504239080850927061386944818138888015121673552893565891939898677707555232433254733998471509678436946158326713510159100076803798524729512820077047449801519491534562627128015601752255317040378847586063005548928094896108910592068583267168267882624284665595879637429357806616025571523727650422123084524039814873566731257458684335118573669817640299334465817641033039247055245695738420780445907013912136417404605513738856582166562477087818816391463391995820281847292775105457849046515939248651542738301731323631809473444419074122706596982457508827931462474072054930202445492542281061599785628784881078895669200863498576620768934004147060677480472577331027541695998655259319656704119236535823500748806076369646907508609949322902326611277161757040988305464586291901658064705125850757027644134632799847534146214967664737312738074935850036611026874777372625276547307428616792314265953515538272490550593158757315006743368805917360696745765880423822860237392880381500824069810114537597071613292280862349716596753984422973192395877527938260755722910035000491792491441594351431745644932008680036260656032123454115802439386256473827651461808338079852741319271020891154757204719443902850654257733018235002028951682372184959284301763592815655439438033662387444010182578791555078958269966458373053012543340955092348423559963203934071882604783831486946833591085854942586083865307243012907554693851863705935770735257651314459830353651833730245094674435124868354489296890604526272136055301863110619706657393233013425678351800857807526970958559633105838164302015058464874472958016526629507879260136605574615338049270287671415936262498438798840369814138707862825984494927053313771475580897240328882720384931372806403308189451326400151093141737384552252260727205243235663243025202771127161656860808187723408419759057255873065225080965761490370027527186537697734507408793780674420200541366794187337593859678177857643046075282822186168223505349605231792070499122635138591328438535453424087288816207190347825707939278857197318256702878456584780232971863822589925568302702167140162446759557940154172580205360923779736714987047379133934330399515470064498568652767588315263699311637867398241002126383645832233937025718665204680128923083928324138031927746459822496884482830984995756328479750829987927558780750020952337926372795404548060844812831062048890521924375673600139123160776782924110856087594068722784132175855930034474630439142444265968652578199479021952261688693457025519787997741914903154569042252343106360726495106290268447830355234935841499342540859837437741771235900371070465689440110221242246558035455338347432066681379394144421237722097731922748980144352098254975923709572374671415058989373587271266360141124366475804784601217732127929984514409207682400996247224283233942886750362948333131728296709961712681406410851877820230171895269438649773862187399714574127736125087614824301275431715434629169289257854450449376889559659195580657349866412851573919248873870505115536936814058036229214182446110385521251016423872276772263186912265301877253456935835005224365260439772285829109696719449927680278646670517104924947291994581669790484349980889599076891534571186319613136158074156166748236393249563836550476550966890463238160665061094620729576231025910792016236552326244797291235903888749985999097516726380653764597682773390962561131597816629695603198942154169817464528560181282921369955100676311946611409227193066814539260886841277774192097586371287072646848957071745103727628848296864066549702219728842252492161125603214609061592705244379692442499860838290082998783463543242777586483163737550919139046281906514578490447184187821363845332762096220293406674393795575489831952875386714409254836480397795725012857981143595704602168341289407261206131025879262365186356724210694341673027765150208933053847831226405057770527069055388733510773556354603688746845193449717422610184169958562880303571404065303929609649245326829573773926172859235081661769184335494847448672638503534742172081330756076773503360739873899299322567513024620179345315900589786040044856469708640280756382496896544595195872151769676043803152495763808784747782901492310597893633453672247547876729703784234198595212276183869710536881537423665029595812241353500022911488306696608188654850594245848666113709928110942377544515348875860036869012705229098957222193256620626969006681638801452406865102507991736447448316673191086647953694263057895737955482595446841495184292308557373408533490120268154121035754031880455789193413776070792806980747627770104680764953867125998664742120581736221760365407345997903841149133882111190092813024567687900038560159617266534648102568248970879338980275645137936409826999446343251133572302160240354957664940592376257926241733853956448881737209204874556990831991323059978265633168855772448955506868571618740691032103910497901270210335281908054715795954718150879557353289844955365959351022066952883767048663328755353002893155452672414723684939438689298156667806920560714155278432738115761273062559386320659819431997176983309435411302378573209119816092998728929695138107144498312932174542910509699682556865773057118450667355166084046954610518825160948088324495828394176214553046699820572171555988987698460756831538631707767625106428146437876363616733495640686297300543868592236072821807305654923331571895829237894641532445168698778374806221443582415615551957342062498262074891084451702712143508861230491595541351514222820190674309762982528266543588398076851509509592529089373726548799453003067435063533121393891400839313590302919381990064056236157288493023731590311136912193261551039668024261846224715851210987393231036425841934172953010439861603863498543745290401612587677740356213282674526092215793065029080664479096508025702444837496755247469487972549194819472783111823158219169939271634376962466026254079316770568810703496048913272205111401711307286676681774880100291412854513715021070704370617083894990033276726848876978914963124808829707932541665833468600567395642119549417360716279332927955765440925607955584602231195882944961411708420112798272018720280467790657857598781979540328983714635779173975963846343064204411504941066700144739056213652292019541097104191847525460011538953536901424257671722900187277138997959887321546160918417752193273364433442887091645615742316128495311133968294689080183252407056632679396385855591308909932074654859610926101443521614639437834827277590357701541590498896515071258698445225295734030820685960213939910024453241651977089591261914409136874745160388013147504051515815013724883246717342561137203966531741421933212743953811875346598274088776430674794983841099666829473740906465613715680021262556290924878723698887432312628636262494061304538875151986270570408250619881439910939180601851326839696544158847102938043392315884553508044897174081441906690742681278034308843309740082445425574491727395981698819394359194348323568497976565679969996707259851005265800306537257850422324975653031610294841242316727331274426754163638484318808327583877511047135903837158586900668849274964542174603239600542403051660322277366543170436489614664337053962104196570878035864691123742896846856701642593123792767119824785358543256929746475946612030612374255780106158439057891027225031436208400740790933371391396820285180065524566609049124782582968776843261703030898028761639589573981084288218268383966869294497208760322099985751945880924481387805293645573032483350105614915214382569621950804980400212656736740157571181468569751427905181380312425145177113906429427151453185664272582672112106109401011525993783225364782815380730344139121434430097536343602773290731388815630340985898717420827692357176005505635548896689023146253589562241963183880363553349216888041542839982271466989317426465213104165725883164002205203710136775694254555521349006150484683995465666469803194337133905537064409428672449455426317054774860195323223010159410189247148506275506722745861920896967611988529308225446670380135299024345778256357258885746208704361757769529681388233609998295507560453174104125211085930962994266924357070396599409555231231406214908735229244274629957043208670058339956134976261561859773947259157919939911752948627094916206664709584820725401585380654560667695124162030374476859466644144189207092265442599804804766605587137243073886087793934410423403841803175721116655064535937331398374643789015359946201866077402271321963439648149060457091923101263530912788241922354021343456191740242897932959320221552637897835199145753854967319282700214559776778805204807346387498282496639228263288764668873739317398765445351775532059392094907303957728832354551730270772269239581981015824761340001100561125180604657294692055396525808569236996719127902841374531261065172298476298796614983822779256353892672063947996944840132324401400195256531413263740861272728775226490855871648373401682162831657400562113485050008127559617197052593315012215750470911555167308765036328313209686378287595070493814583461500749849144751205984310685391440497286865054837512748662219031460028266545449948186323538522509042500147230541084488825392695802998736506611915212740182506381598648896408767776556473538822970643999141466301973397854919684670866413677925520498889488390800999925811914138429389292415058143132928809982295819583593317603412125010421187205038073199830442697487325578264215447380793490174733541445353879556342144559715803111954868715002139109160405708054805653101380273722033648668281781993613861431589069403133145238813672740736964200620713626430125357143071255598387752759566146595520458652736392326779739489340163794222101942601707637121962029800830478102018003969281962644912318305498659538316947554268970792988679165621703791140742095014319625681764901332736085611744253980905240113044762200438874202767550994937346107231121911280190329343441978424259335484562710065387373974492976011571526894511842256634573022458594718581390287107016582392328294523086203892358140276716264216330903307601478765949746696647285517894646717172521329202174328111005284464033569389309644254931854563081106362519899202161075622778624812079223804943568929070828744974128516809146031223192658727449430027109669911594789597240018663670686186190951050752967200777769409596736958743952708048453089498235379666345794923350256600207188925300054963413417967000676093862788137889411243215687485796760075367615750292277688304996123471083915559703257781154679877591786725897052143192327614974689497058879741083252913319697655680220677181384421310145941290988655717016217282379426435807832524087383327070054210385508017164453661488734006170888666837587841244556040879482455125861736002527212315404264615623007769657505335922287400770240380815545906480526103841227837969255002418082053414967370820061199320327618827798638351423553104108436156085378497383431261939402276980033662671244318256249977754797933257537163807553765355325460957352771359139766017785358657728229781421572765553741218591908893959568240816344802194163636986711080113319048474327090080513839036022956997077921219132253778706767546513017763298846582497003794609525732054425790094230236008254562162098754896475877113176350293562930417032741640036199747939723650351594301206169928157629498369356902472408036145785244713352131245969734449294743916051298810397528096714589568179890798250503951931424951384463828353226665629199285555775237333102474758122796928912453391835650992994507869543756277226336983004729244962958499841462324894191080801210433558314017356863972605101941774189108081020489978498868869597297380440719853968172350550101537430040653174963782171168986424627952877162948710471909297241506419648318849382911751464976710852652349181876177003029135681009914090118194731150131789872261249229924955440714848778641342498629452730378241125844647923264086306045789938823211466653323610765280564445511820051581431813444122095666186456253809564037550723873166764671529305191197528767798053964577617438731217168576484581521249624044845789831980659947661900311783443163301276646989360193567700498844021974516799004578812311376116729265251604999576507986514448028006110945573524166576719409795737929137519624139556996587410881774095136071643828804134050872688311267731497284897950259950214750676118021168269853210474792488963695126620412001592184220472065198995721874902968563832931645381087313912185922720993220570905916026386156333221567266537116492172770838039745327137340347574522765184033990131452317359307849890372538523837992378175570618051501304971146929475942887423350125387437942610353604735849886898117421323139892461645178286416843045202148019915078453135728395380241790095790706718621117500246310922899041593873161401682150164793753571062585416854983479302482983407766424498769813037549328446429924215834344297427822305926340484230177773153586837529908871587219133192606867590772968056533348736018904372209227600911828132620713328706959011126968315312653920192403055896066881820366937438784373648783374578587111682558861563149433247671995570525258948703446147750854332055326489333959128968020660049000734929461255152168021923224311625432621832604552979715219045906235771176770686195547876614292989018703871594276308305613078225689756798618080621965563655152585498418169999947453581203501842738020434435260601375042716908104369463504391047629930627069120122932998974123328442507510364974904320503612436210029341336274283837857237089002023479903028238142788381184744318683974190347379413362703653479362860578730631766918826210881866458436168439029223667907844736715243026743136458640939655498647440654255198432820388924936373858870372095439362131744151254749578142958821956822701010695796293820389328677761994279443790899457749222050679991830903371769420745180263412021688056336585175615622909853326714276657234474955518418805475951498140133405448091237136264449587086503682401807476569463618181936168848857577158039988833297193265810453805887962697326206037906347930908500150348050678502834381276508613903782076550816502496214659672577309225464364166178483869284874469391610704336111685773545334742584827428482074217900917801624129962078536402752067253126345427680566992539824521209928483140444847682326755645974326844528167533974390822703248005977322350465440452262302495182910887811418487123951059960103391675632723697163711205202473670702922019311255025597390130513434547782025663627635470903783258246469166189813976151320085638371498485953493015188840790383646468482488549598959059096008418650790730512016877114019502528886419193474151475513079692259061843235545566488152264933979555515195241748779187270232808244483688265015302495439253345744237048155941728226345607090427480053794194527851984427240439261783415736999381155107056080875532692191555257107344596992146010524023251569546259174141471793489620579615434172101912263977442632296146930125062700813598933742033275032853656762821442265323867658545822137995522677250051900064155448163406238577985106022282904766438321797960734036387049503559592414534020852858863489169956674034314508858836966418534122747702687997918214648212212732515937741036409104598760493882133734300447446562998731446826333237692799526351191634218122343511342058978761088326987045096390326255979210895481973680323443943323751675897049281218020889759251551919194666982520999981876332137962455272623643201188347747984380204780061224729813377887371342626438553211912315758514500523412677399633687230778536208154945799105982431423421508178997334750655287890512758937874263516371921923888360293621321852490401102800506334253160786105853151283163003878967043400872838974545945993654387174292843659856062758218997247014050438243065216304136714071667501926430449830022193498603651920950375094511692462690865316520337772281708863588452680739235794465203821566191761275013463435057795289937388346477637321319986174837610035631007727528082907404249023943309758101211425008139058312704541943615584657534685076771883389072204746162910524679821404918824575999783143234034290147724001642054781946259408444242911153599344106140156535343828918294105508082571684761241954282935601371154130183666873878898523418268407113927279455913422037808604278614404683911600045233687389590767727916487141311486225524939671233936719511510459099165940373352819782652608209282896056895006457071314753925891163473442092688243250916553224276229362158081403959361040206089386350533632194182598741123829520054156745010407844483063051102368942183046006721177211449686306530684954903660121538298859279146989979343654916907236133158443897721285941315249719599781618187554194449063750372809257647826942770093682383946275975142808116714503351498466115706881413413873339048000972126061073618571588965806678576990179005168205950581490843514591490244565492167633726323211358898524892816853660975041747490873871459051087325962433638564773537718301038419798856124058240164279298816821125444177903940627647747474454773490421261334542980544752095738415017062063353334988749008417073634968169877444932286997435448640352924932801638238399275060328504090894084144213651663657736238565434600626269703219725512911320524743841203711032363421342282919925839799053146591564440227062883635123017280574310029110579942882114892972769668437697220714291374033167652165856512765924386710983275811119831234510613784541025715656242769500817774106009417799141418617020929169664398078938945399234918086545748400177885747994830407283819274060076334117118911110617015005432629879076052799152447813497046423747901851709499688061334619670888257444910093451053188443581895459323840469016162503513627281047606783010896352386522410616917433468792251147013587056168920682157448412235523186600326581580483932626753774873542703481057631933454098142760470348241402226750776789064954084076657251388000906162705704469182852096906650681336894515215541441298168148645845974867799353265891781418270636050525452403532643307137404257570154997703012150376955691661436523150648381915087507380824683910159738414563387874004450636212168854801237413862732338844921242886353258456761383236954856141890953691948476143174705096504334822916466458301003765253465402465805974399271485791752188912841865962760071043439103147055939359810358080090649408670087213093749799609371241326173423979429081632341201344267181097784035311938922957494709793724657886010436965929828566849376957839364088083962301304284625049319725329474176729931860151255208418964108431288048476502987686947634605611768090654010806178428118210313267910593856709347519760313793315121269822451520624543484794492548061028311236091460117311337517667733383598097733520363526749819314903020863111645494148462030970893170619216166292313056527290886558156539750768007309473572510780305077794327252076657147985121881504636622420607637917119930331502731482945400445414485148264710595168095166742835781347206945992144640382622751188789331757385062370047088082353984953121702295484050168138126813203877992592494884251955306538400989819500645141152976881304810532429354557098361471041289537857452663025686699215365080378462557767737582944546046366073963245143619754983700424655190120277801505563950713498278715940619957083718586743583327004301824323967717825793420757837267877405582069212603933038677305602902822816390787645018036763624977475946875094666007314144399722554730575903984719803493819337458928091533543646043908431448751914792236205291232376836066909107823104418711162748795214179376758215228793105719410911007947082419320256871867630964483320281928954956665116191500727146592011393410855729715102157689854330764035880109389921688691646198899079423248639944983646680159684572127304544085069480367449946496075729980547693979705879463994828726881650070230371812380243176267421762192058463592814998285271181507216522598658158368494625174318824689128316250042689127432558716327091251631155787247621261363683115934842639660112728353852774781528523038776208268921970978859637621392858536031044371981479317314982224365382715585002136886899034396989514690465586120384483722276336237203433251391073950904711707473088067205339274526175307900146527575868150563569349029892117740731448771315668437377425207520108527553436343907633805534409158694855773260740475059940557922481746839841004955990976430681729507648140083615552640493729494386229668884716127615067251396272161527887963458294927665231420556797748321049262612176250997875287393761612803349303591877909994185001657195372781255152533554025979655204262870474269631581550236998443219582030167890610377386083536415652740423740749258005366459631436870145238697746995354006371662096084574781942806069560253308853289698834869014378836042126174203596354540937076684834421832950078199770008998374536267808019698945464353527070071331197674291375662239882781059922382548967949696580760799418390691940633018258806753413148500881970314207499663983547184017427996847844173750123689993009997738173822137776384704595175907273628663988137959398629480201069293034945725177156682923304521014824931309116888522828400679552353353298390219495609508227723895213444267537035701223187150733774892561170848167441712992693315526583942655476965158283630962959230478414106517278432304834123674849718052684595307098345269182097823556191588272357590344182712762817924360625503502801705580970473974182887600693582746891959148754739674905116168961949456174819754946387549665152769947970517096379236519965046684895780299932949406100006232673854928878752150411600047698145005156782085972464645540130053810426817122275069478515906906436983450603916316288124968437108540332304631972691768666545254257451253383078681043548328628051450748964132482946721332580145214640760756129969727866596948245233327038165317324107692685115460038059105300949062473795528822145698641467657009446583118301143070964532704525742179407244043284022369220604342599882839112984272746186233890196402331199926847735609700595478263941510056987215629204384294659447438803168984240318371812015795880887309465267124225089675072094869530216251955588544692982891588887280888202487009479501546022155971613096634526628066529610195785955530031956854716049744121498849764995412347662984863370669201269983722809901674947546250044950404187510596697450357680285583145754991765669475751129449663999518158967799603429137657780649976647638298679731360166756157367672704511131764925170169304347377866698231823310238467687071186110071193060683460540128530842837388512095455270242913530259985803969323449686249171179458662640565543917007391994145623874596618008028822759751400324830984965409479665138337129858674365851852329112087201290939846702882591655617734857246576722555155407715673793284014260318473031074734463670051474188353496787925290179346651949195961691769313633544166654678682408717975700847732745670782044862179850730733375783919406206104260804713970669534120402579403102943391425151154733827099033338867938386268200434565465816637895752983243179305632640011670604162613899995745117780935558064778986277571613767862575282046505292497191308946175504928002809415452659009732712248233341099258066704877155191816771782642309794484978334840067968031624814099901819532442122450482869688603717131332343265552900671931996198568733100039658352869247515064022291101693901974164634721599631834576500002947561457262702536269179035789467817329451770310771144553796897960132217970294915455444559397651357810437888246703567134767058110441144478663519695301303062305762356586679438562110815394187675788442539501698049037181107871048845683181979361765847029568767298637897322486991978353648133025518342504693570278355100699626302547013546953725003638136918818405273546860340607147052452481566418026323372547137325052211331116719371510486050739830941520047410597761047406827693701387411856077648190128514884430720412827872138438867729011540538222141864517694804612729968395865595815849016922706142911880428134087421841682118857585240316279163931676756801107505955074290475151777717076379549498184691499050750833549969578127496756797436865238298100655799668715972172554759531272424791938649977740128222469940735706682998435402681726093943543791479161401285107808214402411354685743092432923738662881230206760274241808209558487377755867362118204199234074059226118079235766603715580742378196258708033392046627199360465444365153236224532948326136901450540606010112332737472396838736056824000679781017626436144037307797925551385524967905643601230926583383161625076504690896365360286907436297010327899703304270515262395807877742215079206268015711550735177357148137929437255602160696754871514850754606486759712788428720850092687671331268309479841385343127177625996313624636880116042648304650671820499848472480108210155155905964379704578011215086481164231909310996760257432905834035403375347401098572192956321498493992186039094826055462454711131996058037763020157982163404630727103816560029140717927368130700790476139859020581213764522416168050507048271217766796482619709782941520112601589294071050159643314963287716309902956038521702904252437961093747869675913487324846065127154333186853415283279630126910146187087270394985960237541988186982693051614541857072433781748986742254604066589432814317942607579186201210002274674799828353588771643654113954849493751582910642862606354315972537028418528547470823637777798125055373389126436481219606701444184355356128168646711709741053596509521495861619277074827098038467003744976193955666176051089870235812390044809789200522102078890299552175493857757482603510413095912763272697397756167863485289193469429419476031128820895893461002053512494119652291150469243298376308370138670892842895210325433271770134830130468324277376183370975668922166953078538780627113397539007029753818405488345877668602274260638377150819344385327630308627770985665149641520131186718661565101412377471770912080441894648632428374707686784678885353211302623304544943722977376314721704749496927485659924745719798436166940354894167570702387672060417121709099372211458664786727129116714966498199115715342361102374406541802137154646291340326185221779221237724978803798507561147388903156745811408698579642099076904759798106327977845893445877818460763556977233935342825359197205384110601569674441889868057308054515766133444627551918119616820381078447214143710932211198631585987793401953290129859622531095290930709562730030817911488254244214809691895329435472175955729141940975569854323696621162424219530446693874244728721331441300858350876025946343145940830162925391668208629843871587924403155612591240335767196100655512007524910379340031514657521590502838647375435310918785047833129391725548616179564963816946446888707453009384004916778533761425933893271715064966619152710762018227617752073686230068261878210173245952034364118354165285775390060381058149020649933729085933696510531236120062714862512845974657216380550422626618544927237444919569629851167870646689090286085137811502173976871493049474838791692690819489953115207629156747138898175067413172008889726247910359458684381416023593922664794617773883387213265627244038229191273626290973835048190118173901998741790415614874193534020637299767769258043941457347379167468414959590916094704444882776915344712868788159620772435384907161199493614975125173945362947578832309508058389101915004307628626872950227672627530154217651179798822285882986243003671782802684626417931296801186410201443205212315352629690469510177581587808566697766808750155014091925797673394970911730775834912148321520997278738992007043760528659750675524036339454666076670262124451522308201695061778097969966465074104123105709050097987616967443195024359685407534392187626835284179499562497542469830011175572756370604366790745980364391505811088033877676270900650963606715618741275990014726886537115806844189377859508411530317228250306160367551351120895537025275023071114200232866458838062600247469736397478087018872467121029412120949484019620384080033045341737718057160289608965584023376808749568448661273154617726951818598686951711250706352628555094560700353806417269242874182987902740027669935725085126156628008425885336116359659973259823006610625740967304012801302227494426499864619464203025301096498837373895989954268244034187293452719230493586919800029731413886431757357178530788749231215444507032603462659756556399970870215748898746892984016281703555528756851798373595708943632314592993138840777569513552473672455757814132898934569925345585792929636725127536037711690814905586598596465208967463743533059163075384654686131645994353015020262000582460168604517675647579522122147615078969849832413340841729699865193688136624087081415685113654017742587044917786723823838547463252670237946769845171048219440499830550268413862132233203148065510534889407439156641155552260448686489853673910476315191463748308425945291965930231523503274810763331395406999712077708807336970778757966505147729272771298252988141708035469634501487796894931196855666446259829041331760887689136302100322938434796082351305697692514953463557925663268090840484728167062795059098016474172629685275782604587877748048512924808241937464588802833756918484305540279509669636683818952927584204049665436809161251405637852732736235719149333109658820518065926815182316199616255925448104663019226262193845345342934723642958758782331828514539701391720299735232113962582831358776461682804703759379527543408048327404688950782565996432257917285108963358255987436795031694702951063847077899098407986803182321241083416971346952930043455494551264238980566536388745878975918729222188401549522613253738474935977785141839811515201560336413275857874079826233907021179144723740494473332002570512716478006056385079368566122628138976011489353693339359792962100901608774597405438926641497254543088060019508207675846786730392626697473065604668746003048482944882825021148540038827315357531940976913167164822048816280179415190739775041598497344017329626261795239688848619583300653055512776421678505362724820873949741226047365286696176551299256561775378471479635586400633506597256530263492472509925902106711690305848604447534880653880466429282371833910317036509246215472520166966235590754151754838144423891560749725528345254122883985096842766617030003498445697321514342137347417191396025284171644872763622756355833875552180876136693056651541082416320594906715391732987996207368548548813742001340084546400261043170735576692156447157108214971295717550799594850499816563392976257583442415201879746641037524712294698370194294947738212020761489443124959245835800553640992035511546960734510070874593248748228419313965571054163332168701588799331034580743355649398996338043326771971835837904927235127786468161706301482408374684720882597782951339035712854975132732872794166877843146234440088124251018800392518171872380580823454574993783632558904036025746128091675268261134115510132328609945281704680099886626493027694438569679263798344123703826250937554648690551498951940918618796191100474835872052686684101736536193303744818440189641954122094607506861255680485864526129368184119337339175752621900319467916907988026589467798036407450324894967748066471282002300577535937826837854639462264663123223291026484268829322615815110563377601054460569809042411180155834333783162555168661118489694657364062367700439252133051797676852131990135936615125583130005112239536799181044072840300770281934678271015498643534640965376344396086330529729278214450981788797155501594762529209845319755762659819609974603302434030635910401838054765274636272637042860236537308148782790163104233156632028653383771094273589202004767526342419131760819973401624027055146465256685035639386387419411752254474330365886451374214277267040940951494175731347496054851794457741332251599703581853078649871597236389296757891743242395753443010390921248718298899539747624021946267725757817846352713409680538576178960942815613087176245724089819108515647193920266714805789805799788886572818246837430477976929048750563345103316027752418362966033755673739025058047312852781506728317995043762042653856363373751225926556441017667415137501401634317646641880367921340143381848566946244408162248844590322267415013724171958577354363881999404648050011387844465212675498898578211316507031046355770058186492168103547216898910950674836556761737249762630794098830848875204759471908240422348499299793962161147858039091868581846343169007978563771988605975369189891561659517095923056377019252713906012773351314313501621561455718881795299532827557669910157024693559532116695264886729996918844909167417175131747821027905446229866823094262965266173579251056663850191029309096613829515953408989334399310115694098437450576126535757459935088341152850984857283688372122234117578258532997331638094319506076804996574974100072304739038626193762972000327216131168452580811525202212904046403881715008438441560145418755318873489260924235604537843839523039136551587457225863178010062201958212418635931330480940775686009129242279313704776320805532781780429682195127103125606636705408880648683067178414619509534720100529127383230873043709610239479698662612909303705559743464713176590798708977040213668295897295819586466946276727011988935102641821665222169114613988222088246645869515265290026564881167908346901665775615047411018183186688011656785436678584257796103978690775502101478224854185407033482012920819531110041725081074136826188672433097058801738351720967658329143550248958199232471178628062283379407117524201195131592187627676431993158261368281518780314008287775830428644074250831588180766146146226762748138834788332689336632275344743151829143877583919106182288475421263341017683455840731271426044775315820974476062706283783313874496626313143099498319698854432970545375447263379332604418057641475581908918926768025642373023656666456901649489996606130676651927708246606263022165726953687064761259353218634852658677599259120993309150061530577338885939715179497029940267859380416809821538151473590898541609952040025048631934893286155058263340546667685098640636538784598404802370985560785591882938747342234925280491895478293027503975352075670472754958310667795553444573674491388327144672454112889588199366605896393941956146125261553109565653030965973455777778898717940877368304895399442169087053095449167467160541136161869043870693698114796330374553282732421372528893871441153319198171618408424990127453909690103710543795761303076927111432797837302396632055108047810890124724989664672029629523641145447756296666330280987344473346631403222180115044048493668981997562124103149437449908400314066616300702520861967604794799177707116816959577429676483616840608573659408396384702796683241506299230383052464133894391315362880686651916182863618483270140247835006011626961450193500928204875936430707315099462021968367438680296229712878530191103878471514259981758689001912551860627730911085577613161596132658495690076559457008379478943652095132229676674316144849188203747179209329144842399552854015938414188218965541323321525890905115997968654473977221636159023053087299706818707346017085796035031774560461764394180830524920607978410601248211916527005532742445051237481987089690557104052380088877111662114532900258064444170126133284312535789289524189729838952844348108722714585715914256160772447811382470252175675054366309009736517142708953465288061939983906740044853523783081516054248987638553927422289660479306117442392794289992722287582657300034272405541103498461899667924835277736074937205109266163192841917812089097208448170406752005364487685719325957863018496604385894231187573358720465257931645076406275617642543337622659362600827218081337797033513711820348951505329755820509095902269658653165589278585228221636006123991375581848264312107827757974656096854041790420961773321732659798051293202785093685373689847103039505394944791791815920358593496656673159509067111014393211316531609759595466402684972631217488551518546175373172182853808924061171544186678871803956527689116846968000855640849430002737294093361767941945160331094993177957287126974557336328940861426664282425076444503781572771097692455614376360389237581960074111345843206758484126884494976116594649621057675242734331756301262025827456621675679442058516696120680136255634872797681785987852678197938095674700632803870388031750596638937597425516958573992358508849824086380179585274529670086277570159667681220650946887241057707843338655999331807842166310288279679220032175351923817940011052922751908486443631894132346689492736548706696311843204817217903988489843719836540027452887806953619589631181553494746272561359697656950402927579602447038470162597128015803016174466255284931658282265938618911794870809584289986159185515698165647405587920525121836656755771793530667706112202189952623423652456056714176357895195137219574387691263715439168451152994293886133760823332558122147996786943132818854494117170283381559740775047975336560098931194279908197065465383007470984949851748825551426016807763840735739538950642877558819298674826013434361846852621699894336184701186947138643455875601729003896061443710235690434304740867761548032480079389256684193516289853400161258065960843223136929304134467472838778422234527153107976703335398259624558128164514009783513715774598461469268450100050721446922529427103748707089053511959158551622046232546708747941303747325411216691749033743472745917402480535040739057593940031879428480345172108947183842613384288052743555833106056260500949765539831348110361846461046954498982535283929012475983730809215930899146264131186414513914045743216768353365897232658438973288099226563348246495530292545390907928597744772913077612697919538039830839023126960913571767086147717721624794082819043526366355942784103762145533768267924865070846022253184400824858957706956416839634131895697087629660813988385998320391654391244083381781061875294808725142410008588414235761914018630737930397202734058888098436648857615612721282948345041488336862285579458778721720762169267965985556036543025976363313316520065027784775009346559466489341072174848289602588441026490822363418615067223248175380681013284464408743949658166039301219842329035077345648180760712911535361542591419655709616598893904543353833259852128603103505890031605514244738362088949493525715218686843433698660684192501118278069971620367272556595083372477830146903291366392314632794704108138086766944920859349068043703405249472143472599433709959309164555261357694696917099904112139324245150844282067568569475683777462055066012483961021389829403621993898977451201698162984156370516172625522679890882318212725201154845787086633974854249815862947388674800087299986818586139366830786842746548083145308413777314278673778248126590533936101096078015353383506660343955381790182355435861880331456991847685384057029550077646321503710260210616672251569679644400910743773870502420469244559572131091729306839648902605180744306721559995209864260881015336719595778120875942397459863941278452418808956091938766548390739444192775546833076659990138276347294620792767698707760070534744550703670521909751960154249610782632324175682110124907412566812984752977748331533032518428812986501158819847151175948949866622686726162633838112619207769906812480397430604340217237323072769533805711309336869795389376324616585735609368976829283363801736563868322501265860009275686379398583219606385526340772232297268697337935751156028416704234414025902953357222373400123773482085621882555953981015230909455652022138130244971322705513452451616632377638532214627941640166370700365819057964840244944267629806475195973244568881162366684280460166540275154048229231895870680170113924159804544342928044806492921529173002774303734720728761130238958647621089998806519325243486064930985732210148821889395816641677046496586951878462929234040458449369842756663322622046012893284827700955006455751049205642464986610640645608595234176889530312107345857554826589757789844549926311302029011562855575894569847953120925332661080956071000003620738878057698220605273356581074243772486458134820272653291483492037833775563208122495875828977949719175592727575611349720483454501800346829932852984460625955042599447442720980725043836367242461482415071895023839203113039328601960826894082398862407758440051210713324721345191967160758869675517959883179998985810488788224802079931045102239620943009702219335085009977013345253654106827613891873839053884431489436863662531787704495369361979142237892243940149643580518543947849202003433088404946139874946713583774621433455927375570666717708398393076230836617659578003113824923220921982795711327477471671105711911777715331020689673512679879185402399270789291531790128506430735324748075801725873670268029200562909879349057339852791837022980065983534338580458164293379588512512768864802276478738083891706047646904746765757490161584376210738436476415674015228662424112950634132859455559439915369038861052648575976303796556669044135659737502682175874392891233098276834153106366784465423718434420959832535930924792065732628465643699426599134303503265354249737297143313985935259812903252299840601462968030674852909127239023377006391467090437828519197297524376114078131448700833903145535557073906054205715482820714273356339927343726370616340807323272897061553103344872893339944934360315266819002887266796967163263626214033216332366187685070069359202245140315141125466377188190340084123260246361347490503940709956105958342545805140392458938020190149218947807721802165972036111935813315029773438703987411871108876190992725890555988294138747664981761667644763165450991083669461217071261386795902956809104615806446027734021264481412513257557266033318918313788554814608592913077247352763517064811989781354241871384500526389867536873365955863306218170969715027535829491308431944686722270244718112463221296211644673618832255042146408364372618839086429581917092851036714901252687748603552342352183219560756106726942383670221615716577907110104547442375935760267663682598966271215995409955388147234760411059788106743657698677213959104659558335589868929072759510411013882621445679884901164177589589578785606970844534265193270725338903157654005031033369590158933197820803880833471526948482669767562428201530111867509288036108499344595723506372291472971929626396178954483463547939728352684304492487961685763791436015261684111235123271319834099542304634112568898111271415620984366688455517676389961978578703947845359966499507704268650184123809006663830242815710225689520576068571984326043743712685931882816658398228541268928094846588946359689140990830644523843171168484480560179029157037714698741866440778470154903714315211692922480426349437150376256146827024571024609286689287317739914748721881376572240076799348007425940273867566365864160908418639089069509568857913282517380820994929520580045104399099340177301229312698872529042372873920128048208780675454900994709975404337385037801906477725154477930614746205584812992732034060052770532309893581152406928449095483218007043432950528593151647262637335744303755057004512287329032330365808929117682100394529563790236650154213766801702272635241181974533453052154998933898726462416144260422352334401509865083110432742117134303776948025680158178806724844386308746798500387466930305513447682017647935258243816888675324920604003608775821957298594470153517359222123364976912393974181051171484766951491393877170314545580339201163426960328158528363223669945149209787975207345810447267539090763732676813897938406166842379722837872442718983267748525334650345942349836214003063241098508214801132791706179324851343571100648373176267353221792088579926699356140614700651155716096712771707362738963072602584507519329770864517493894376398999977370410756237004965048603392079101493671550475461296165556156650104943020161530934645625278152460567206383354824771347846551206064589394810022819251346440199478194917048811799045146507246758550580613579901906133265558221062156469247382296459230723857370969280745016403752756030282403115435578409779793960075284229681412546310517910785126842001168461319695789339505484529866743900403437996998045998970719451325439591178843397673360411262046879783673686350878684902012240787804632350208183787236971801339110559227558852322762975202840062136723228638344030646236099062835832161372186843961959277273877285675248903252647320940187391798862113560105268572799708495647864964019881435936872105428696015424101723604143125986623278634864430903653021817859049167588256413724124862147756658570382883925302945919903797295638427048886920200919356194203669824499951607260925507397429728946592849831847070612775134001379798001660141203468029859070198510388638374349447104762843733461605498756572844364746921916509642920575621030201928533331004444841700037527450424291477548933634853220009402552589027669758845134177602450769240713207710122471284780470660347743199278487411255177307705243270280520305974784681116358782537229077238601147458093299920870387306037810759978603718327423902109121138347711427632385977403276928769649912660081559964275458987268707727647608236473424816635681507747679595469113970669042243009020916164924329606837026222183362105946484481222186388549107822719588397661119896749221176085411647160209609789001838744442229497221988537305072195192587873287035300865726205312019348387153127145024351605407877858906684811456407147324527186786357140874455809796954226990091487845271821422195705842693600278898408755198007253483961873784448542313010402577188952857641992027711108066323474695785424771645934524106819023796134448301635571039856091660863300164531009822895640023315653757172890765172056285084836721107869882350933288372241663072935343886891784363610373503523622993249088301620171020234788563227243743156152986238019123968424230462828548259782696867416152968998347338300351432556361506531470897933838520766216407078049445580579949019926887696420851244857647864079757572748117477771410221475506725898951860461026182800568661149380118605522452999529404201530848632864915056444278848483003336423682572939243260061581739098810036130421290998314635670535024337225833176413450249009604518042279846380977353871361338422872452166540632578735678827191514283952120711369255263071406105468159625811339860334986985046625982110539787298428470445004871515349587556300606327193609858714413170828675062195754916014375116303479877032417689221037262368175008835307585496254085279436939299225350819795324997278841254181826300642705012424149752130408807409668933298330176774346577747904118056938113687877268427249508159635005108402329781343002149224366019667184314161753965448611043046642937145105729483617761435063007005115977347563914084749297336560073822153099411358923975878763452948031931209100073054954100494057544906436650885971848410052685221060719558683952657253718004619061632765773743471761339631730763177126159109125309357328892729185209250895075722083393496434119888783698754358016164305236737872591800459026856004626658050123952218396312625155779554890911939021773240923354258800350803383740744922333547002125714546036592896972848062576953771800000612226725045213514699847514570498258302089216115557752267913558128323165120661292987759475284590749440168736441919721077020395911491704391679177786539691791545239843106423223823054253501571626612598722662579955787185480237313145734806500032832135227271802740744702089114456437911824698492529011387076885883203848525138610184231566107413058328772465767801498221477299470661509497681383422869770135054780683232426662420449980997140797837105751237190412007923606760147133830974970863854021861761431553687257976661213572064448061982665856938786524308235193371096968665264128256312468023723957355519417723078934976486126291176465168591076728858149467266694779441290914466316732022407320862004152689086183643605827731878600349116342814849157153917676815228558717154815714150013525734555414774831934925025547817423080942034836187858742241545913656245679985984829647351848184154170546521715652463061624352809113270983663239325870621895162746727614265945767521254834591251106693213191150912090752478078158187399338850145328612688191129277613469735773173246263853503568727275393930573130505273714576437432891958817029857351904255642314018598866856082035734276504387224107690003966383535180708622134177891206011630829941870237213850414864937072695719337647125797578389718720034455138077380288045951073954837090638224080801540947495299284535809519917485065900767828572672353578570628804498518603339379475986068434648927527665591305062716369011083045713082103757247591884920818784857982700667703192421498778867144823084989225041467634447534539092186447565965520339796658301028499480343852257419086672961267488407915849652901988606327194720262726495872015633257741860904273598269890264044815325908696835610472905214801030993393391550185539914634457896997756486018253081976775663786201940944637019419498403507535444772683918891433730359896608156338958967050150886900499047310447672206706566820367416802259776737050267251538242211141015417623100639274378380791155017156721480447913679704529196909007128290815521939860367789687593039067599920771377088741195471889919121017121755435055252568677226741560650669842547785656389963397355015762871018850850425437489281545271684168408232597363906826831400878550626939272387253976191266872130287912894465138226853097320068015773399356024222189909924091530467084226745056492684609299907128488822142630772117166019121243096527415395371560520892969452007219768623233223558900997047930849213117251384070213503934154528231830611040042745069408784498959988691766661351920399713131011190689467209859553470137625032956061973450852308137586124978030980257515568727991173774564601232152654514802559414511026068501465295372340359776143451684546360238943709148472105443097746519235142393850812347226170058787818075045095411955828938081663719377338774033876520147916960348501134496538493732248941635575191393334297669297559197901849336383016994472391635780432343376385963081938985432812883500419730464828893505671011654439331911464127713309167560232856843318580548033076434850737144578184259238684733411996547245566602893630555976132184201015293990382267617913097937480738155321040036841232228382983604416390051041611880308350175948265390351133555707522879627140652368260409536078010656989037043449184994447432114920865043428101655744532367933311676414738694214989592505785766392468042979145553167096690311834559033453082780838471001904480421168809087440857642913790779294289492686850786287177842061035456802396962304073220078399314368609942648137892747001138217732806447541283196268460628021637562535702152145835307303336015904112304931097757256626561140223379956144297269396448048323899817492094091737312854474045151370779246081168976272771369186885712424401029669027756824106693428473638233855609550381779786057934295464647122659967337519884978796040434496930112600773240341393621298388233571063008845460820906251414908818863987747805535976300956916893082310765098125330931338579893160547059018715188215326466055834437029836056567634875474725138729397875235896543090754076222720177472427924189035181754850555348727957322239885864196361175617114837237639054671523702704072317820306023827920760991674411064309327373189544481233239401155481317909685272502531315617547727007909919237683884893517335784113450704272692957228501231328931956425497024223092945268049463880867677195914978543794069186790423735024290408967818093865915458415284389084010199152574419308601635384918046308698066777826663759758805836145168590040829413480475309937643546741035572762339654983929163757499208368539385820540704544892131924940454263092039685619614910463604725541129486363626109535209832035352484172431554304462193062926374586847978799735484914477019700148888715042088839847398424669632177507963509427997306911909796363179011579685879564428729033226822693815353292557772793977974394900595562219042107899060174321856755524984058656005662262606510190930480811214593962475889432472064114068080489702154189680824676466522369166533155926408588942495978927830226011784812714382446198741328588566383361560105881269452169270724162122548306962207978439988988154834815014292576205244750757887413517750687703548026136483864879495225020471821439400421893553430389014371117378646739625675306060558820815727054244115074565901050446840525497299584277005092443265704359315620498878736869823956850734032566526616042650286421687954922901091949017926000975239837869347956694169423665352821012485395832567413883082057001899963819782214639200688535424202402768476317180785745993194527860090967589513367542942860345575620795809373247146409481366122390257991001606257106343099163151612006914120407624142266861604126296846294071018701218244777540166092754797937634329242582826943728226592446373993184540309369497867690908728850954934515307495652011352662603025081368136046086526746819424002449100714515822945536916087808855574054577589746122405584398278843777868303710342040153857881196544235067530884594402191379976290931507757540076043441084084820619819563086768308580227779591617022478470142521018899606065803036245377693629962386964585887656566037748442093227621437436124864062189625608901012126167905390218525167491488710296711005085198279598505382899876488963522906342782041795318781818031916762970384047075565676535156200215022569399752245140536919051030379088786125501776424001797937469497467751083881949862802779997753492976470204476797260113357485916430258795066870640928536233977977717692375665961234534804556118655692567356416803633465042734953597156266715299358444847448341626172383530608333423675461041083940075150410963683237443911338812402095229186882190130351583174961489497905565564022054592514308460281447091819347187919378078958684590437072848598247431698851292658968111982131717129121402559492878658900913493977625216068769480263624472472587906888125242487625708455697529903772543345957998686028107473609874193706544654788059883858909294407974254868238292920042202037224093253233077191560616627110187866775452671008188974504233459330601522726669234415121423943434936647412897527856048730330880789800036335319938214713787326729473534098004821612153842664572692198547272233088097721593400856451183254363546398609530727635984436113792092567004700132512378922528959633060187863311834384137192607528680997832417538335103490834538012408157405156674527936496525937874594673168624276753848873206891787353864705150566195199674099379169536552482828632978685893231949083515515585258738860964536501677968558007103472450019523647350961752323506494774565201223373552641896988844010583217101818836229284254105892486610302991216600465798520524544797497094348105863695673761060323336741629619215291282286380664090350291516861942005759011498584863945232241411752670863087301890202376562281341791820749392877251743664521742557180279185147959014051043013534909217548012104169864222856945133185074252313378483207815356814451167150938792218546331505828950234393105506451208076813939988947724401445502637931307449900181472725897953610706093622800757421750349420538342641169487359618225873725257281659832735174274667637870544072693567036746330196467003490664175594677828080785386763441238814745046006295052038746325183829795024369703014911241914562750556043842840876481474903961987803281945061890468042084875020901994335688534246965245528426990261981058888494029420214490608334132576348586462662890041234405952830035827844277758394640128241780298370959647850608389166845912752509973464446464718555996192135249781176761389213607189086772143178392936009112369950574904618518589943660603082706470236307631050432791475040865815951842493261101330409588663422195967996701473656478809790055893935010616215423190231224531882540574271024265462507514654077572562243304906718526712206366467659342250961061530225050197872914719654400473108421008990018366331068546529741405772328134835649310184490927083678326457175283370906090411788165742606620771300371036457491082175220845668714832536425481745771836461587517234255138763018466237633946122146587131265725510089153029099129553562645703186155899261109528945497486418896160929941955664944970505843223465600144530072770314742376943109424946364404963422540827272444342127431369646814815773193267033166388791823970154506325908830727899868406973960852090661025918388001931565359026922981630705207534182734408278279598705785250212368485319843045002198981098963535152775301760155152268080759186808056647494378447940564640085215938719011366671194399639116234273416041416874706697751386524650704243460388481011100650663225246104863476894640029742704047631529224749111551472166924547952335631811663196076542809474653608400897304214479142248607984013428473064928111546139067968166379159596866154565371284121875008848913797778923513892305953653483953170529299380525068210452527853832136097669004828885494265582807203516145215092627066636982800576016379835968181075776386368591157639171533267173610380214295450837343999553561927753822621980811875893870244118713350964877441639632169282142220884440542583399074438220032415375883183315040676516361789502708913763835791619145634254312424734924647511540605850887908414964083324559064248410588270405094918764935391721833164377729610369973895725882757476284925745139521321099504450318032139848568319677331488612391210429009026552602655784794034065956190325538552317745257272429876988565034442815746258582043367176254176522036898469522815592660093464867097982781426695158112774223626947974151164148768333437245654435510928219423536127156158193501163960036085514856145794075160321733633008528661514674682964843620653803072162310530217772734436854657842757288286423660410646194717704286069083029044032479684772571377902065489209678532366068159101553864457939417875898341027523467382002757967919549757199995039074198229355211821797032887148346702355466203549107692943575065223605733974413485962342531048342403850819935285761562921574297296859001039126787611836744317224132603262055841494400602053035603586819476291144299630689194687631266614705616900929420085916484357836498969109270072484572760098780774087044057979196596799100959704496667382201668526595690253100368374435811991607948051338352128405142356705025412184094764025771160338637687671156511104603207105309945983758804184618871457366298366884656327223602375059349555295154352953711428720880935216867305790642398956556402410228715434154773936063359390359833457843553532325561165923078588388527184859994783372169653704371083966389190680674538604409858515838533060400090221430549258945764021383227262696096358415220481553937397306072476643587593295380501729299078156572032183417050258001338514894998506897766786061069692163266852630196117401491974414437426852607533270590195269827122603950243070262096481467654660316907190264317997337042309174106027798564144982968881536835446528782937584187600513501912255440379992759630394454918438505612592765319042606506873861022801770272174962606623917177157363312732968173023254316209538342673972471587152936287600957579874971615663946657326741832211951838865824083945427955033624098319608393922876610576399472646916489925904070027230594528301120303019830800249531563778129475206763339901915907145815356538033911647129284190591515523567256797474774595128120857852261499778835975726481088108027461423433812927527870033103744728901472953204023661543585559680758104699873574968055977583143301485584727116780585999715973754270763860315110631404758335400594313894508193814982149438812874592252168688941197911541025885350934940658087441093426702322872235584874464648246704349133747731414069292044486660535661223514015189246951538446993237595350426304119522678043535055310642896328591544223551530535643992495367906274887386523399030974694125647166744121241974065147581596275694127592254960339194259486272483197504117708242979298000590733226796048760618210427062574187782734682886311816962234708551592212101832050362665454284616226229477780327842878889022926693467813996548875211884716721546659388460997211853539342437015990198819440219092790587094559963930809727142207901667247726755277935158924661954802624061239440304964632127415014424047436322083089994673361152240779567099114019773272080552475387114629329892848279600974631931838126637836754203782277047272820908663574638211404245370035906285643991556916337501338096815666803164552192562672582655497939621992551651409928310798288202305311565217769126775565569556543463789122329835390505340972314871291368311694330308127202415592167120951489448450351026697746055183774260590172295393962224670302901703106248085647187994605567553371551539648046270790097210456955380139072199807097946938578895759464049703434624043388850240279548188064003082504256628763818958870379753751201608296210662267662104669538393021954526651123604271142546178425913217801695765149866597158759448673295275070617424629903941753068914240731290129334596714820916850173187626959005334018278910469665710164700005535205038642920014916363667660963320703067287375265019672305840999650054294905922938865404093758188229546337038286784332876910373801901517182791505321627228970729855237877229366515640110290989393370702801596832323941874318028126413837638272874713309821990790595812809408200398761218316451732962918580472128867899080427550638211072227192982805146293557859813576022813438188379730311699786448839487949758493229196346694992902508958016076642777691018996173764948776708717284801775605764885531751708388043207820571956632731286787866098474677355561577210125320649806875976668723692020974936482650390731318509672101586374979447254216877572382487589324645887256090843740981478694141418260688347514149478519788475715171080205109203483413004118204656233466795035895333080830027099426969240421064064827043762512956746765035275573584336003892704279770189408910213851985476455430581251011867118821033014664459193082595487331460719958027018754491005774360977392806979150838845215109743452821959560883431511123684100192324458452253248393944360090986667365745304869417020974272977529797737826425588341802283994335283348886293199384006100023519011485652620084786456288318989962478332462182256048187151197347065938527028029787828310393210917764883853687571031216805672435449960733640618364232379620462091929375005836738400853629254098125693813642624704852751034373488754347765182383437234916889650863434535332486133195299659955061868028082396023080276067343501620931404101032616291157784584833085555246692074411486346858199048943364107886448164949823036238438486340725677778119764340255569841162599394142714214609496854178779841403404488580424773294634603916829275386504803068613251185362999740277780879073592115804737625448473140156987410474877786651755098802935087594322424242855032373330213923128144074069642115755750657407610944337505285917964574939795662294162894308311027966479164582682645796552138771133230995896887054455880537700175182986808666429043589065240094443569901454245474090949116450365144123738864324406962657978674850270918951042392089127650917827886834486871215577898886330055953606597535739736456708143220285913278329308235382872311031250798198625403925229372225340346295941646355825631506990781332993424079776648601355691609864763048405638352282753085854584713703273635176970479404653911035538864520105587445491406811778962448432718218938432799090164542787956606636217977901284762145681705533623939427114462225212608545532282294800664735652501807150925326190338860220767280319547533638233463139231438614655108009088299879659407087904510006581214907297809401552531447229475362125661155090908221380299864935303920361891576662977442265297225061754494056191276755540985139725724372897254500548985043789133184823076808699146705766925985442535398965519681767018940161032427214384704682462599024926621175685021483160997385683113790190768166184270145770950104263766943364138440275116898393322095181425167150594542831922654507087704300632392590511888763201128035234750095959903497338870037788318489973326104161858216035448492138889087046528378657912768958794352654152090810104753402392019839660914909248864593671289784876619657977414097736863007572893706824948345307253311120666094128068079947307940199699768848153082946980243069079113647536999555279271703828766505399303473652447500790885235319803589740947227727467062875374963267561824895579301432802919715340441292693173287151551483475091364761653683135259227139306757240035180398556183363094263790146562697065705182037075542218714295632961542932270439918320295634083273517505533569455891727879341391446161643296012005088738563215996743457340916268257288894195742345326162835182417809035194344040596705004087750465198665641767166372116790857838449043246631288085781534534141319154970075395545320899409612309944319576987546338731191775620489294586017890479170584988556549646363573373532687624624449961942027652954620108820893010052470260125267921854979275857614860064845982607289405971818231329456451497558778906854867324628342532884482682774899788987272057897443778692682755864413265496930580280295166455579485557481524909212485618528710244162214661834181852334267462873121475361012171908708724641697462037656996658696546044048223960266562876307096018086232811071890557010851565925958029367960649201987186712949047325434675377411130221661688059121229006696154068659121748410690550569407356692241498598018877797252434671967763639804848490092634816373170343332585944846284637249992499520703048904395957249453301907222151175993541847884150526342219935831606891692979928712115256366742866235875988608372140383073056151436691878440407283294520655422293323846237829837118353751956724186000427582748460582050858760938313922101481524617084186206420082567546865642409225239276697584970271817577848886179410024520149181852036133478188073137232429999137147545977519415001904879427948336166892290313455897182085833200306079802375699829171444507631243328607407302564547764751479245175313487808344228782274488870771283591278368401068834800680501549653285276276387555779666051058429390015922663966556759301580820501474274678341710257423936893496579603431677071289613542789776180240027588168997201909110562236922447382503810109763398067942393551996352549489575697526133678517366457481089829509810953211564679248352261369237068987436117127287355323477475433961951300817084435188586699230463278449803190129154780121179760984767448469293577391843251221885349883314913752919676558577737880205067940554108389829063612844276881827452053797035217510299085455579953004018891510513577344468867797001547991686612502802979996704876527170028718811952397833288838033876204911771197124921072111981694103969566727985132965279428011739901631791422679563359132682229007053530694169791771423845343870904937473594032132101453767676081954064164823534984192232049246207800455852298419233598782864393036924103562007668418163343111108096233668315827831070045597526939473330590346525252742340900547737871436207589182389162088409822061717401797244895764494389409540516117181545451540008285292746093630356699654311864428350098585213089648589259526854077500257772704280784705885845184849507482138165379369064034473993427151006111782267310858328919435158241536045797599649557336278281231042625157623478868584308634947019592403343475025634650531358789275935387678060471984961493529895518129583543584946693439928199509483743714151156195044423618791520408882090883769722796223139235721615940206609708481513989876433933193354137114856027977486928005271350307637051705537654925382977949990669033012567612971030102106605841976966454468020485062083678212221525844011379844855733886870293850414398262395463795017093686716442896255496552130038626812132763082091119292972674917653130738781810764067802763840122598109896710550907818478533137833729446306626501345145099901490868096797968274882061893093700125112821703560425424488131003806482933578491016031257019902398676860242827028075771174136258997644630628559813358280264493230807375600619434627647647128393027064198320289191399906876774674496002692758497029357017971638707364336539846528711346194657926086445186390851782781214073779001527336183806086233171980478929162249588403877176193995042661427588233054298312345067230792804444189292615181052832656866632026296636847309164634915572258130858088461813735608443597728463407315210637299700707046254042850415456182227811917208441298270916059746144264202679245858081544130033355419608913292400821675148463167722767745281662093413192075335309143139535559668358265436571392556390403767664376230413151988865489405896926057209382330536359250455068451874935795013704602317277309130895968416811727717705224179049561171121986265225341150194651008243664504594154818501151531451997743481444340125144038986713520225840825907538275641144715396080561160931372450731650720760014254644344449972131507461295307153426279493141251173213185206343786509767700464970747261206763814334461772775706427024237996729777396053479831461400312769086642193115347917753876363426781614392988002832484878876068509748230547190334961430804186789156644342035304449467158582944170521000398195612953060046844265573329122088547914656464045681176781909844810422484229567918610156487095564864374624065451209312291798130172460712130461749224737012750765519471733162664307101298093544630866165984772362043166700199289238352190498839518846990296828820382213817144550570604398377929788573159882148537501893346321828077225081532860089708183567443455527155103163630753578974576017811720929650918967220404665093063107123134688343605838744647854583846115058098566954201029824879645642315839857367938862753926035870873337814899986129313406079106566997482345860187405641516205604148477007890153415185736244449247531998735275583504560363388192536919086897743764965051044003714745268318346477565383879150646087583749990790065737662789675352588688125494041590076697302737352773844222402101395810770170728804839301253025279678884661776539041415301278057584548987893866444599984700096809658947552872737136329810226287798089460221436557866869605060111685954582737516357968590054215979247489460489712112662988723089054562520580065699420585765392381386500821804020740231048682073148910982258523117513096406073823722348169289068957832423722117676837352024578292426497839424581317511613118515187451360063814407376460901282288936963817981023931949915343581518935442652907565458047386519530796419521541527931915911152032963770094615329271331488599536083889386238725646418501761428820091740785990065380916279313959155255542751115267037270106640436027723693945568810933834774207091177748082506451745706917931235778324444458225395953084404860471882834848805236396466679957590385619707443878017073392289601058979270056716088580342253908823504201543260151915822887452440451298273960364986114006738607209348685514149802349482372240621025712251613948659694364899653330254511909094783103449679823978284446175540966585252090990655509472635545828867668940360849432835541298548304467097232858023440780889557257222626476251552556895923003740891291637854677078443588524101447732759329968941562625825588631167079863778773440159128789449381345226774090670136420582563962723168713547154111863057301223885642364675588469832992818618806151968314806870422246638642400755340699844082174803042282367973292204910369058445116150453556122089398595882231736436754250865657047029731257110169968368049568638899336592453398704146807944867434610894463947327087579428114990062377759382220737101828235910059010204466422377929405501194868452226041966777560517222808330480524205496548026430201440532528372093414081935718280143022136013848145253126304792366654781667169961370686646249390523620343181504743422853668118954839348855799674071725938869670391491168937825127792082869756418141386879359712829983329258611036963010870056545140826912171659594564450368597721887944497634490576265892661492167114251584992565429289701117922355426934970606695932277475666573685783704175573818595486657404432621211572539049019942985869068389604403576074849190615133045994855520371270168456578983317373892981200108850197651737039725424952188999877462855272990240996976161556810156034173974539851010217306886239116821613797166439149025346842243221271638837354407412834674522995602727484644452487916070099797587903193559238631611806553370949019709641644200484619608495375029541270495710207667803931546419367873062974687195678539715085035297771545922260542432850205340533321014909571773799677674770941176219955627360307200283672386919668988626684211546492763354512558330859699944431554235621149017968341052471178006391580661685423334885875985262723911720006131914223733916577184322421060097909449396212694473092008782063090668219138869592370966900060652454180521641553271462788181704220413196569941046457489088219544226060747416994635099930735297967569365299783126739839262593612249780681342293735731482840652179748943320464399058429041390204847976783040373652787633331912003448626998683500538735002354893204585371801442323956362038076111986590253514193329612775442052179166558544015087745494957704241718294458411271550887946664818361808928733204394598324251341723407499565223109803730081983103652886225748000035115218264030652320235663237884031669287861819120560993795119496892561299564922960187503194675006306559656596458548302285521215322696407781862120144022947680958397051683351527465488857635763490248504884386200201556315176946518969719129259376583120823276888673806361260835944371976900450016481627157443581176005958751961296106305377543827226666462454463555330782033049548151796402898215774671973007699764410444719537496112387143031835684774785626534092579226385758027299732200320537890953860282905234773699862402404263373678437191792241613842744992495579564126031597426711752439577601484641830913895294428216563639992291697830981661233951709243335402938229154839895156876348501709201165852385544135358790038589887540849628079261501926550781894105707801462961592851589462203676900338962274287243944085088986247077839854124552928053733029506247071753849704133657469662470028259546168752826567189379261340209721390347681006576882695436068443749091063655555832182151978544784421913199853865430694482015368788715860242691510332106131360264726128083536925396459856348809289721680035462388204573500107112418352044620920007652048405735411162080644382311134329561013273906876186750101217272465647790537078896299731642316535028625640070682070032766941652196421335345617400716518093724590494643701837057717873607710341183961241994968173680739125413876200395676008157553110092825325108875997635725156189536536671616508742278875301914408811237419697572058248630855074143294416247817065109172586926478068223394847228638159510442793515673855772864822468834262362996552846549189893165239177214553173942062182781597064482664424858478569100162793814626504866625889983298870902794963937748227588995493841637596157131734304445790616011677890606883162850253824374269344709449141203203392597557279375872386142766603174616157565060127667371633570880491816411861316777085137510604029681799277863062260022674121317173776023925006928569818116288357349269156773747969912592431845487376165796053856063741751058472002272847314897843079836006377857038441609316862977467797445629963036205021927316707556854230312493116330631401253732763943195457221945234351509179769931705139847093967343468006694625042083618129565736016392916329694857661931595629354287893040948393204206614938481987485554685418924333453052152204621332496311982755441929293740234370098441796951024668926182805755322795015843696817764268830377904966801044568723149654545093488266263369024912212178423754681025828962772422455858936747332566560578453520448904496337603415919639346411259112430820884274557654643857824672782921628040227235637523923867779525758111995675488368994588822450846918915054888329357787888824036293675433032497848573732625012767237810382706848028064221532871328546987480310339586975708606768505990850448980974223240925874470526409107916665810283892795455599572878814438649676842307234810091667181808141864188960945543947490182534839879895762988667710089971152007043516853169865962836056462794240889638469918611645865056019021654537983188852095573062782989254321650673282557723362888150096615390489607728933441006275455334438171879436478656556234893896006678967817173781840896836782644221889675013260477112077673227249258663724216338292276718829392171325886061098330012144998905332056722038031246543923186514986164767994827772674244038225723102772652769277077094363086002226099118327764544699385363190701466515088309563738310270128891665024804639922923907039155207230075442375440503776420330265153439734867384290675949845014282826684971874188404412474322354199126515593074780309978338902897124601683362963251640758064414851521860236751332854130005089081534889564481455643665771367246818395288898903228436291680932882538508913415910674500142548611482370421326391064980119117354029315134974042640342028467970003307304179581559444466857330414591247517383152395362166925438990006461168442998879344937663556433895439406002201711968894134712948842114048152219815769515605685564899711968894742861634605070104650118112761672187904421012073800448270975043470104113466932323832154931044848906163834546634836816017561660288576617444038151805044831157818892461579949326949366668099385240967373411147844908176556149408058037781901388469710182006007682700286364857228277738653221693249139102154626832195525381494140364149724687712486550903887665413551142793536084739738364957619998454505981766436822963275700377298911520403578549327110486445895361756086367232401183360570852207502507427450800379651305231669102375939310223886346316187402399090814060710532354451492010691352033662436803878127573176163185116802865579413278649989191664319141460460145064952262643502644294537424803269092674055895144865697939393813009352565963681756663977037897411869627444304697185354752840944080977315999799141443602400421114033367563746081455064920689858583580085807517073286003220170711324867055384591736093717897784691110072448704527256289461632454479724668646577188467011160957021428158748399528426751762309277070098533312359270070424548135765616812354173901170964019171314913739245478473928412166853282426926281050932993710738470032827834092255478149262701592665055760867515547412883141385958043601266026399622623650995007762792702798248182235486022579558716898788689409801934149130459162982215474771587862276738414408677118801797056205797657394923034266969908678798147528302723706635793341715853022640327697184189360612010052571585399527924587471723066717265643893581101540713283587509498950269684088133673424449130452407673632352462363627798662096640179142394795114352299617376009532446161889780204499752374288489077436018452065385545757064235190595171302599542782985993182101782981922026747026867341144552605978852829809296745378483444590805403361570647887438730300265527249280807411027008424555373477588367108279432061487487073360185989182799609027635530845326946766260627637083828764089129366835284550647242900446968574106625930373277587931678478129277551559378378341801086609713217421627956226793694735511399567424242125252407674705089320748120981964302413317670239782504395126482873971020621633586418655511039690609961642586436805978034398912871644621960226788928238960173089228682264450899079125838340570212856732711427453770535962383052560272362326286047863325705296641961675840530239538312944195126752337893000442083423410481014605091938607381882000648779510907317926919885105362540088424010345001769877930853888226193491095975656726023933823208408729351415097321062218252501351671147400531152286244123995403413143661895597904550984240565397369581904656916243931879509260135479472648542765285009884327096570436499306285989037783024869654252606978882703489719821014873296449625771301539237028301780975160508021559359680968015098774402767666981499498289383056811190775238365985566623863256242322713394348721877930900295690503420342039372737658444968651966944389561597944291465429136876579034963235678011397545725978869927549769385981627421908207468316955974967352601896001307382286037718995363160393033058708396926000325373299396914542810594496909929609765290883753323400130289375620457971326276915665676220428552592833418692903360498186542047557962645974708854536264328498149993023782748048000326512807248455179507908865015058571868494228560655196983420318158788190680459039454675789652388569307419865027131567021803643539066625287786282236194662904789946890160188108138495780425763303129220317231592278307186144868225963372370473582021941049158751436488511670103919624084887822763415758700398035593657824790541226343561379340401034589983080899824628102197497926096743126061989798408631308122571108225774868645726071319429190744837567755433433869943415973384264726364153965635111198621068487886950645103274932141134006910931087743150791081903974995378475677200355875233531860447333889284138279388956881907844197126209365953403464656122800679635832602893180791209157701039566955363050339293462461118186677939929370008416444072401928595661794004842564081676872772390308864510205560591975194767616787903350706814544763585431374299084780866326554410793130391458662970153912250571650941221227024080836269530951793219308993030100330584704586724518969648660515793598832799472334581926324369844065873849410735068861787358550026156183938356362451658590871791671019060533726253969802723675071904115637395070505016199094602365948691769456231123943296975458093528532142282043409522315648650492850338313759286181783418365175022701939660348979987009019152471219493260366928906481139846741375601210991124082214919814501131840117067751284380117669574057859957816193104589088102238965264436191281116692640683637124491861658631268165889724393397402074532685428015843671016839661014457888396350625994204655224836416398268328135497938034536052721682887044658845146718163533522142574380675463783748867794866146885438912740192121013390157967962716938530739616452980359432411408638751108543440597432781363335477915632041658412415079538158766288015343931330305412365223109130301025920243246158337543927838721052934047564553056749268845609005982942357493438095958698802735865516188515832932703820323640546449260639397441005131297856270918717638283871330903448980531539721820789856285676099345267431023475619894706264978381191239995411634049766970805329248865173970197989602413687962285360276420279907360051990114526222848416801228586058735684554642544314773387913488097453217670898880355165586131199522491958162845281429897874740403637679023364725924850208068760520115115439471657634900868812917589006454151413731353123896868416861374463565103982076153499563530609864716883637012947353426708517047829378329321887406303819803537196914981346769913206561355006731871745716390797821817713126763478517898403193494730335392062517612951520297581184996498821367702192777806838717208244423404547335542908535067822772475892320664931939030722261863584309548175967556957693103569870246833271304402216067194079257556393384338466846089104100048144655853947325169851504912989632184915781639044624089484327196818156349129051778333179786157165858035586056453305700540721916088618856971184278519259030055131266485314743091286647878698182313930330936832153198265078153577097290411413484442993208643797362506807411309554500729291457384861768485591456152360405258055577921639526857754583328086271348187431613931687457408735849993786087593463433217881147401895081861191515348020047108294570542309093601860472291250955954695124675139902986680485293523431347628917004061726180330832743031660525305091946718297126619106315491003652916592517658848848703412305899349933816245149790704800706387861930378320083655288736912180493162545399426431280479668352973751570127248248426860900856620614034697662161630239098881713664784929761462532951999530898650797760021189697092770974884960894512431696720014746145897720527861356654207238316483936546930679682624137586659562112043273319189265634208242658965819625867283914566909580615247286126555646914125071702798288345568075384422700538473888321536288398396043553331619341742947040842187175613960400161824105777494997303101932294783617209345112989137830726856723951903300330411336471799427965409805381758233163366933599821784970403658465206049570009192941723983356662636476702144027468538425328647544715044007872005344012391311135764673688555239903987486516136779697651241475847990421673768897845552393786039041610373927524999226391196563053165772414555602931910242752895144124414428518245425633301804136155143687187250264745958988020200761444425547246764361686802484178733751098945527280431221644958463233611022805683156862986177249302286567300114854039245283101356180343155089798164243078821176162639418059998064265905866765636242738347631675319734665733496659650350792809842376596679509080748930750421080928031628096579898401088914954425868496616822901990986448209116796178863046999467339076991737527861902741355675388029386523945687308041805829377436128213939342941633371864211124555982912747762837602124759237166235116346422961640252561219229523167654195008055022066279326411513425447525335734114201993643407605022693041361083507322674178231609665404306089839559513634033970321251360393212717873127094768743005335477374791721198308125618587042799540445990319240844382337767716176969641463748632625100519513793592687641698127411297671316481836278220521527663384963033643882436656408377814459399625512712602597334058260530477970791490323604846763863840312318390456109043916714245500325185499105801228066761623518842219631701372491596189068468910424143101725077177736950812246076964318155692715417833877562197098706135859731811299384258243343178740327183739492977777153167102192898289632009216600271841014836942002538582836636097898326293247476305593453190777213741964129128625498964365797062983097493820088885957315532093004935151162363557156620240994925718935210876068338328196686838743729832237260157561142086058147632311437450084534223157799314248644705743182001925081759292704680471742522486781302582218824683775983556158079250757844959152712766666797570622259682547236132672204114507304835483416711739897176706461143052481994857814970635146197693962397844126070124484056064132164354078040968512906680434649985766657782787370628279278290833324518380952238839830694539280388637239704353079269289802944299227903118940824844909281523681617181528014907774241166866538817239295600819843666134093585202312461184506254154491696091832375259900408044866129233095604733035788570801858277411545132792232540678259796981965748954515957375889772975653747182141430073854005289335084208032006343469666569237908590264529474901211870823039460254988077822013753325213247191393247093111157252983616225004173360658464299059340155438725709122682787002296220190387576381043436260694746178546252278267621335659209219708676438561791300273637663230884099782783494063385317648372864050417397494977281267854651150303454454176194372226361046939967272581003651261215563875033262729674988143971051001668358267591430961500899498341672999037180137448781548352223523134259285465360741960236243595012622758817765078055535326666376667042020265393024260766680460825998066242068013492406972741024652677843029316462143685015096704405306497532331786725406987901560634131207765134515475641609230106841965096852585940954064551027055446054833384673350000336964733528705470769626595082390810779729957119059308944990369584344622051797603936686598286357316174286048688055364900877770420987160379711992895308768612438917069488688492608284255756925267036780523514038759919112600282993758106210384658166581334170788566345812423769932532895841942505067792189359983137588606810998893737570392964794285868169329514140567793812281773624673679428100349652763427916253340278723935894508148250617900090751105639910386353246607800402558430998858241334586957209925328507078906323090143583797890604332633064087253888708644992760316138945930505444132239083837855711735260676254718042861092428933158544222501564394846797782419515604189629860615803551758665050774991676451788569454491784707732821188641588662855923638901142272393391418655124604456945674207263188161867928706023687879293979260092608029510257361198602729138798981389175775595023527033682210338156361776949347958464229457188780888514055601084182407241428926556177001400710357254868367860886565466200620456136341733971886669231040755398601441090435359878667950946827055853014834504732171162837636555920460886390409224086233068765530462084070276382958618456621442679645543677174091353019957012681025554131572970073861613695454549388545712373408650069917858852392705916071443661410044078859109782064909626962006174402582903585522561698381761732588792799046682962041802346854442893801674240039438772031608357875991198847914581335581321749699925353942552954767369653329176789935830617796266014667871871455570878668968306459113521560107525666146867773690462577873413910787459504452672802845996716296773250983198374791563065419925381400797138839438623425684418904704356063441488332896108711987945268786669391593086320926973437684664245323598315442298359167271411845608549970940601450145431143575957708118503745425503931509031131337625891340616453702769904577155364226520984631926934125895300574735659342763304697369679448940709926455309805567110621415750747602410268040831766529527265659047629215210478707119078649909877300839343196213797692116088191924459339016061230501309107729024798733776645757460124175076493401106297211402503655238051936881724522916051327355718168290888973470159470419336024520771980233574865284349315002812759159283352520060836486785919813287730312869664818840095383865443554789871923761369993440193907848827876800861782677189835067101221763763948404389194624494227253009980087388085354408695839763445149816140173829134985285102113167580057242098004600112825564571857009389284762240136841267496820315360783295663813549555968720853632028022635517203479673930803769671543598108253575161075700558589436668548444725424355145812804447836735204266270308337821393497307215614977946231344822329149408711251415409223955304459445210600213477932577318516070272046989188978683346648436987728417009223377286404124790250127455911318927095404996650254961984719316623147336475220072981360450201572488041957670824478923375388376625529348829714502523401212787955650022846470520023553038770197086056788060492202171298089259970263249094388579590232147309851519768507070728648355179730731694022981989557414311930178954913423727568743058421143481128789526457487276203985619747318698913820341026123406769372503635319365458883392199230127727772407543224202669951781469653834451998813938259434485050512887448234883619821551123120697687166945238073742230181141464649461187302756538687511222831853614047515183928252997221071938073776388490242009351823577107101408035803246338105579864992150249873210868577803942764180556926435869160134548297528420508703999855014801350200870556646473322817340692906751695266223013221215905437273823783379774958631147515121749447009444318204943873994797039789705421128969632833325558377880641030800600405382378968597235711239207374532065223278890387784947839081829000103363703289251241706072317823297973933697831754191222611882577920129698128787854907145381948505572484814266540854365569485917877822926933582657900474109089307732014091256173826322496071947313161793968842651251159372314621578707208973927906737045557986155936681933942663831953770102396074050413317002995760167350390275639988415901502531227231626658054745267454223970371803371757435377014224908009824255819773106793603088220709614182037105028571696988894733695277854771488966764057322842622859184253227803398299730152420510555551465702000017036586964314005439267840818463991698585052961434072572988647291601150615593660143284905975568224602936275212661191664509232916829292224940072256793544595903925266179531596664718086647843109766589725269775153619113021496784794875338304958004498264974414326910980873946868084590755605527053269335920889991048648282268710969841855342997761277823622210738157117255983957191881869713714829908546710221215471851259552054843786843034582043540970838675243998611192524292279830458774903329514327118830773770467945939580544127344813190122313002063975425976365598505297746914867629157497692793699759175045598987811039310391046153832819836466098980336780341746971541415222337410734512282812803015051627520395450632384553010956327082224977991511377013778025235486118000661146657844464567662947195869020202829608983311876276502620605111832133780514544568714015921980551223883767381912957727205836338706630861726836807339318830128134600760329986665455132945457091908691799437737643411279542718329107128834592978587524622075684375768842404093823770847245944647301319158658309983498768057740312717233004256774381439238346052772560474870115556131926904912771009161185182870849256229093300924797969030398819389098754880463911792916805710278726423348643041730152529953267104435716463979471781415303249608940222042999640966006458732811616155981950892865213467770055635117512485792078214422242201015015952468335847610322868864178072703524874046246564657654646745192975722120400103622791904693743445457780106229377677139150087334282047260850871783951545023394733769981342342840175535994380989224792543828852646347736274845491230986461154466348503210322060877442417957009898769338245852295927373576027456087189677317968770920677327860850476163817537662337868978924038685861124449124077027920748498449607865287710445046200525392080288719359769895472433313236154680763069564458577944344166880494652985370924842999725377704673472409269919280418705448464434182789017501823451796396542386090836218738077462725223471419179137435357510207290359125094277753168006151077623282793135696812602887517369215145421160898853297233112410598206873300522201170421533311688276601280859043051563007728717279581471504562102785818448440846236770465142894199951403399674894187498485120988656552198708400500832796245601202097615064218928383344015747832547867759182593197359914481815865861353931979134942392210280086410205491965902866211297689022058128636648799087144624784276355552576067774241043231376533417859798010518307063111357425801268272448366652501810739594583339852737946835572599743786511006191472256146599428183848468975018222892824873958632994728705222866129126188347518483408483654419170968813291972248732077914158984745226191137716741471356869636530535927674685149502913940331606468716124698066554598430161998784740191265621743920235667391856434678810779604742294749610662150854699186786528352394304809043382409146830200948098589428253438888973430463140399446353279014407928640277992202163373733825787778850986959380341023847101191217401154593979053949444572509455153848514749312053300748543390220322175831711842349167176097905812253873709966810383007833507575771674712944272086151773403806299120140007938623436545837962509584563763883326709554220610483085790962003957830144490598677618799571933246872894688233503890802907977922142434841113560797757587297844615310006224875969169196030088521486593924747943567503157951765991590923201042061012813103884440961063928393935402150006576206815221336990089615693643156519501552173423022380134272420852030029455965219972806713975138569608463388797528718264588252618412258197273181930181427993485101136365532154124267491760025242536186045868583770330520612048204220252735579515864549647516233509771501031850316130827432163854996890824954286605697633917066514105646869197451020790294521506708933697195390249654940841029474065609485822704246092170335755463400151891060376667649258167929069681828314897406514983890227509006945470169242725467099378062674524055433941669885663407808153089709709880379231994075350449484496276198114366512420780615434229121637320374459120608569247261449483062212993875179768943985788274417303836139510581273635680573988684230942051883765601702701902333496882673282570977595813300795197754906548824182559528402386705686676292232602763601191821679625179585832999311024465883759211000427520053920194367652603023485287832867918322559326187861157232409486481856894094936272956544142571614349356813077575376877794045476109538471245991540131343097240310913823300109754439460221801420409035499346880528760675115133182209669144516688354788804529173812432326146102470307765887139027882956226396896462059527293589507954601465338571914214376305040663093314344290856600852863048136110056456920786351199935866646043271551358913615658526713497572929698439078656653308348753429313566122649773322913932382208761285229657220341286415525827394618127042852524732360924326388467069318923800894896688507856722736544890810959156057858047540621166443967617304104209490545000762365050985370524390345996114789675952625070518648783938092178746994617984511216514535782069913567226119978740604709885249446030680040055550528924504697007380955555214652529697057603611738039537405470315974924547382429214875004057275905692820573449339069227786731273422964999046846810320558525323052757437898806873559566825710520594229130515926618699539582266452874823493712747446943348138319707372069789104926434665666439058315912917060000429144501119606977888964611303496806082342356635949908870893114319271342958292395542036824291210274633496658580066864997809763136253900639738479065350913456398147539375222670865357732399483160382212743787588578732433075174314464831946379291015184953540771114581427146724680409292148811187604988761511637831771979150586264519271489121325802088191514154494778647471741713741138367495507249913608530108408295458336627211673983167612965813417013976625674555235644769499540645713775018779659275681908458039832961952323665507296926221006675720686073560308601991380265515857197719455981426452362585187883371835602025520792271216665001183459251610298774377382921353165338084581069982928763288311719497423597038669981609677459674607916480257408283560265508616530631027027604518174133714926213877571028067551730724880683455118404798601611189997834693890764250378940190269709415401231312168321634128884448521932933521741029152232424292099613907623446466400130937536759630406061663865003640944337634825720797986819676262443667626033555693282314220146355058210774450163534390434290167354921864617731545552367573911469123536062178299000684493153531089192559627563088599203659220646927232084340446360771766682322292639150529112586972658845284048646457112869365023299232049540940493316472085405850198715947272249360071665262562983344885203154211863389218314123391396330456919255571899800018822476067433942831973845786694741517242936834335839635989076233825334854802658746725472459644466751435711868756200584608334649813887783871728446185688050988380891011121940131193365029838696805011305117923262809246973149021209941507626073916502404221733794833559136723321014988705504823004888124613516674432724419746310143586746863953200385370501414460304578216223666001597046569537569144901745391599004527472444063533527749568266804025577540676218825834264633075008706671192179810129309523297511185630456104248519341703293946218593422972782044127023676390373635380988655465335049316094889302954739788579537983508391756160660052040347575620128677865766276007619640253580344827435766664708680700161136790594131405544351040434989581317357624534506227369314589049540818951347306095687320843254237221802752110594027982417347477993873161776802748251110077202924887590397457683014119396923866192226159890142317467829517123935864987560676851960477060455896474170074267711224987085920260425462963351666396581905578361403439553147716395861926240872757581609864758360293912895701736075900394555942971962408356620137447402914248227280490858656638394563731099668385628507325199930353036033176912164633764991027925284550356308691420693312085261624645863708655075030211250543677642405695168805296930930841150165601713701097683617272255561848961730964134968484655477633203482575959941277714761440250883682276974581443046768682295615992615087164770871863842652172702155056017784606868361782778406623211663992979457878586066710870928156128175452524017088535423463748565271888709759104868948033872648575321637135373519600552857624142794959919563233879529572076876125936060424250454158306961602362449615146891369067443722928500243093328255752859607264585242077895356174282967001109913614976154807358199250879976925730576634977536324127850148931963328281447209604094137609892973552088052984192255133887469619813982392688030194596957741969685075704801704990578107189594165588751468272960456882456554464345782692154453922470941602131839466248564195240228492005032424816881883601313666535822400714410329652124326631929868660094419691796412373485944159714178000814440925590558745824740678093761150175641814480640434885910452900866453419307051985586124168005561923982721943909691905954404880648425631826444945630455184961000004163457233140255678509570732867884911573248289834746891204183735054026271181699967831953448741094380390621108037441363705157286065097328687141457334841570000460800135239095201863653401165606778837797531842779661197883622224274244564430052238457344234650530647434311438330392498955599714193083590313258713064860530763149330876841478649754156972498926469210531323107783866470477870374284596981134386903918847190740365527444172811691430818964460557732469182733601537454206052623649282806125716498694885819955761649418863744047000920339501710311193919693864287798553233637590367419002735048575789138491896344521249265135857018119090491278173086808919671955075774792859727013263165345796057560241055584186169253167017440284473650128812218937293084067600358423420446575811499723875684577771292364857091987056685788763483859036342016231523276471983089455178934842411013713918495444158393432480358281616730560155055100186403684535717709870917227583938148465702810896948712646078398188613882275401677641523359292868660426843211747907980115011293578223332769742262657609787242487403904652845759647988382677904144350067223736587892985208465810165162607847569030296519883855585432316711747161245112930657331360880075675823334888864692684856388699899694085142446269506101755094624058466467179225772036824509208107213988503942465950474927765005895511657443208036028187353590298531653264199887297942875473470588743561718711369133826827738672225810520893673557133169161105096108473986494309789136511255928282898770401332699095686620785615625185075807006119539198221675236065844195439693083525220374339003123525640705878613282174596041684642214212241018572282949419557026122541474646226447888230130011969736281078440313196370194153971060153563728246127687157482973654253697749370813175635634977543497013510261587548916896908672470274175960579984987653198792248559925241416940008220703754533064715511920126105740546284591781599813573270196593291895950403415699388895248149156551754331212392404702883323159061567474694268471077227070061637278136426582435604161821861055349206974017546051021811324552229688687002431848803859213039302381051879636463849239155994800524565020186916948772511855026815109577688645151078110603160146537594567399384715454374195827249586901230841616051124098272923091060000179250928881432919480788791336502495956943550638624711009945409769495061612124320507854329943479210194413813450147838636639185160127830719454608426444825042675172993237574132457965435034245300030812284461167197201984583956712181950855279043663510114404921625651521421612654945771504626845813618588586311043829428564349801804410247287941265301472399309362868022968030124209281515383668956901892183608305944994268062014415889833037938586640896523183167214158665777266217193195129102881489231614404360464520737771764139750997130328788897356265782472369923619101660649288695947116177993291868035277276763388848642909171612586148315294033782811761452600944216188053499755421862960681541021824428333886189156160249451870402031365623218208511975521059120318889531602755443993372926922640393618542986295454251891410004821766943702740775637633431921701404861838411716439160710510527520304166672353594870629615081045583850593193587492466134520501456890690204244847302875056205310438015892278188929939652291599515930961705321512461141572647822158090405202600615064389059806586224949346475697645284836175916287556653080587403935711547004877490416291866934513922863449686582516991687754259662707326173239841190502545186954116078127069514604994208694511733058538795587650720088521289598084953993225897378788771935944376358403840798270760200557673769885385798818829094589423613110727792273158667772825863286303257537807167076131773464723744585407694567566233737493815818119061280473066864441581425716120298967165420547982811111932270205101812363529348791351304310568659343072919132491189431221762864158139341501613955034598273674995413520213154802027482015095854650514848457838973545903823678688401167524039002237262785432567124919686058794676276383715854423487306124374144322898166448290404971538094082042003279005885449055297226473541435894626091454065619709787711991089645348344899770239321235025533724224334775310864863803562306022915548788456516192996277234345735887318105025899239102049218994554248756144931934137685825490215089677779280211127909760978924393000211570666280532656384761074240507860980517646772697268351071220665460495827912640611224649711173438668007848635983979631069292356205437831967792508758171980520573044878239899136716336548743054824128698707276088543328082962863175556400201768479286312868057488587001423314912099697039314266829275539864900272243060021699753453602599008363537740010604328784263376051390731579084345380974988738852475581821799723367381691309920640485805792469118008772625987633796281809895068169382791327386524963071412397132954523449714010918392347787879553917297850082623074979492868645375345902312691964058970480667440125045652663405115570700235515108327268445034908336532394759218438919310055252298640115352909359031195336230378636208501249582440558184990802782534706865356922988712693705394135124834810815109571437172555139306507583731289382398516601989985121231911455486911215775955838656357329197884894920233709801932304668780475204670438302686995479916425046089845618884183966148489757821827442932838081402473154166494026611875966040442400486771075129805862805817349295159575279977503890114319025512322887024144024184902966276142338213553602496730757661830018249734898234136697545259407869414314797919122856191047695685335871471314224454201786607895283445355998881710053047304896107932934829630283284082222497905246784998063496127812065996409643073161148620319138168348001029054625227034575470294753045123400516063802945547545478149075411945229453513698450507564168082654330932235380763747032346477304581616273494997749665496609995781246883652920990182145906988250034862071411815483659233822540351678836423233957537734792610713887212423384035735300399325498081217592527990910068795088617786734335545255171486641354995330443896751871603723593233749220754618174899965439098830799739865211999524835964301203514501200701795406194055621151460719495900466179944061914863173429486799055638069386857006312875022066060434335990761534802231283699314748234174976714011276127247011804234427644425312949958707582397906330512421292917317049883238322321324507439767887296957175613949877820262941445747109673327674928665572691183347050409891503481172210079394384003693810517790129571520564623299870428060405913551479448862686662427789623527275137767768510916032179936421052801961941036276280433730970810316880191128504380012263477299164032460351666003154517280950732565843846765481346879575866906167105720133903912523023768628322163188119804943196823911217028686997438997606049768528171699049907104713525607089538696939644565364243568266341739402413696296017771771537966152737045242150606265130016799260087388348552043542860891810567709663499836568546665474753492906221907114443449887744930232223347345138892588410626874780663128959618948355109450063023324743683960020637881910919370032145173079363383047831550413289675718838881433605330080156497053382146101801262553466956388210039456157369481057659299319845583944097618722518065734850407180127685717889720728281498682189154557294266749237863388329249571173126916189247192812745628802755684199977139284967099438977192154743684072529910297203990259927713596170999178805902589226656905723834505474010084995090492904299824520364950490917018864724710202683520833292262723681420028490736583413171849867603861174643453096933998932531356882459017881555094627396555923323262418812472815790051310731801371005312479917074022806770527321622827854001137157644825793518382574923442975129790865039266475111622043149398002686134069818168839714686225686332420612735053781656743728385270549150389747275716355889232836178625402655152241550094860621617632793638995445013872987635208772652426205735103384408488091333380777247185358601458803163168640847756797063323339329444040077852682800188365021361092135497342638910494770215648157001286487746333512911954514739114095111463078231565342741693452173914992500385151406399807951921325734600434120689042647025989887686969335528459417567498177616545046331387145118038331476675609138888569483125920532149131530886480540168394602863258485854220771262642411423463699396118237233172839068935321362385520425322544903655931736617092692772054192565794829832129344930482394858845895872508830567946470528152438340409599664543667567673196704860874141608761845099375742432736702037755240502370438371660493584416809696535074817775845232754669103107263870891412995137119248655350920133682996523844842078006405165190258444398904053935777046542110550081674136029806221105845817165157176083921103448651317242725652205099061724527513058301098902506325915682866788915341946988493154721491207044292124893975514910360565900513021002814203662750036124799387128525112612415361204611556420424393723518223327416392184753944657970307859201014527543661573493501496205314959796048421423584458894691664308345747179929025277955566560984921377087103124051582586587950057468152708993712493480457482365086255928435052910560726620080919178567370249258535482352857257162043766995395793492211426802351675502383967041953375130259963580681889673132050856717374229410813340991268525610825252322878734397446002158797248839093445716337630617809353971630012954653480893212009630852219840471554275511487907903975306241833292511900767177805890862874615967852598706042715923420720010191125088082032589326667066163278913541796407718982847880205856341611655993631468045889953608121467334422825737770669821190211917232451728252144069361880547436975782872069228376222097873648539306305339725487325094940434691154186734616259585174021871922910784820232597917391668374437070715508793121020249957493696013422073203637477449657738042737586103972377418199427431401970116168810356717000899300448175233661367907447753184440010561940254673722548495810240189979243915044537669947520028235002472121692294426044193508240156306288317071707809043136497417443587624341245862563283729730797876413818680165138613660264085752976587640090392804072511545730766499730536195294563129237077343714223656035295387085387528236522311185779314853272399086384141514991432451797393846334378997788412242131094845907482661311680321574662185381538703586192964691895630987859915933977528554741927137773945626210664560929401928894146777800506172810088153392135064753919064482893684975186524627699475344801539603858271299234804222504686958146433302476027847357947921845163311087596321856814334422542494424332213809075158144154724650414652180089261746810304119990394575853096520092177050161226234781262640068133173597859275827658007100178768221042718304984665213758744038138965806067879759543476141860822821480213670477311372767282457047570255535650154307538861090062583057710017492006327051355664207217146358023377264113135379444590375802116088471903612308724694718389058683979598867188142857077884316750995857074834650636028291838432506114677803149282457632535994960371707470749386906991314391032134182939319304440474467585558391360329487872229067045992374094790782917251085173431378718634220864559914606943969124388869718670474156212763025866728867117834615871974944794190039225163637461368858167863965973425998985402624557654159808305431759580899856799191785872294235573328600439356197038103781796452508470562823618626051346021424852512146759616312765649205510339989186230082378931773271021866642671228511601089085529712361102147649421002731846868675744139291766750051191457133937490638081312935938121050766003140215594598229976802980718228863873728385959718548459725469541949762589943095539102016072632341057577486216976863562745021140478586592959477162579521817933142501359288598425597609853930784847076123931761240898897112062671994775295580460839025927058892098425954643976480732825872484747112878310364428991350154801090552091364547507240904880522593834758470786664578762073127956414246213936733263247090335443997344525161681510331677674714175700690909737139200308777177603726865289245326558470438825182744073777422150773307877474534706381206443541850964247620469651134835424544169160966989987667026862716464747061563997667286126891553862468135288721364249642818484863320962330458728431429746982343094910045666633943952991967615414235531357973948702569043410217969330169696234359944711880412523435350364372955576487106635819582371729754435136654998032051850740566399600339677278153910031176352481702887603459627571531961263806393236850874978352486867573320384039252791558355705806023952437772723681032765262242823352647398995987851569555612440390381368493134122699196834419659915314496214557715169918573943423340664433576557053354605959288078092449250900483376404364797543358639204534737345987120217697687342371157583540969858652225882272792294824752558118701067151511166759778200367278700880350564323164359191180720325862551404978560781911593282214065712046170903784549986847371736112711120372955481492610096954033029060660795175375459014741830487261460959515071817001428575705924108670085387242926562381842909456919726384839342366571004469886229405243815550753611923117456931325748837826853850818742565411099324572080132216599773637003201828086561078669226680372419363543095050302050307115315779914258741694752325259846805371908973272107975926142574744903844258215856700052655100033303692285995422210127457882567346112042375444480851695354505182825532632496684959208129497048267093472117346649751876815988672457744136973144327564156816142626492704173112534824532313221953473529004788507214047978790610808643670975808988388557173950659570414077149377638824848723415894478167700716502278084634078015174519668988492043387695891251825345719072163298530553856913714181947191703047961384953868080087200898052149106339243567320291807842081708380456122651335997292780696202340704648087289839354452519197307035755384913247179823333251461898258974839309038215671934568797128277774684014303001244584280023045262865414647748139415327177728341257803257486511960878838252569629322486444927272074548630503107858434573506586088892228248827616770614833829785064821645840121657430600173330144834499633910028313544400348161281739390517634781244597836258406380094251730931298946679417614693125778367634775118888210211084456360882023308807744209964356134797970690320376828475148847310934779321063399067608597194761411650746160868550554022292326061173783299217996151082967108415774833716930989342041488107318822410129455083700589040473302061797135270957954163664602634084163819543709433152035383192745253510153894661712142363345303048574064882928545422274275722206936497467913205431417978711779353473079024339455140833452226557882842471572817925348122342884315846976909727908336834289460476489356527816018073079003383520407897413377675336108412656574273400598609869009811687727773910890315421778137183339446676325374954017298753913841765924392402183570823034601187853187386896807710139031943574986016461044984646344454466832634895461794590040472175316541782507573687358623227897215422186531915024702740454168216023948083296685874312223077967229357500349737810259006653453139849001467106313553684167431774204847629354163409127776387149899667525147040885065754105128104491203077650464665487698943223108552582692363037761067805523540260551054266144814317851939566559238315035824548386134932640182492909069958764299116737542699289914953095513179148023475198797916952749527487153768885361531534127306026573336239717389101011796446126674493547470211061944561359380597850715563892806148218329656192493941564134116067370277445158256773334871814423578523192829770385891625539753612625860772943159348436911882670094133825260924792082371391293476995969591336679110027905369189317061293017472864888905026180895013731151744676005604485061040824267155715515697942900591776644083819942837947623051462393813110956515677305657474940303499605408228040197565579347357857456659544875593064326262198605251630370838087820297704787184533048725513376229509916531773700242868271337464365586895576077381999161993396441892105265605845711555168010982825103332207564949488609870177184908003886647202577221206174853977272187458926981985323481178669694280591638973288598107431991470645495538244475118550508627506358845070995857917265380117767919690971223662400138079316444087347832856286647253251717567429826360321618789417603934804354759992184133102929325714902394619456359373365033176366583084384885147015160897531334029796085628157913273490448646783268854201383191365413572784356103146532658018295711045590802368762476285616134277874590387941915713217876873863063745279366421905969109490257913456507486354061172694118169502168385225545099201877024560644637119087274535848553720321798071879282840077535838499144581625407529237884216455249662982892093662480630262210250311357945814848742912264731716779920692484142369570814868581472918506166152773276285136778550412489040474961871804946449200783758116010969039894410841474451927115961715449234456699614936407805695264560653597411748316747175062198520881625029727608432459830174314868173965067798695929737869608278797282880060157887192837821311710868252758458584990580601946406041657480339388060322228926261875501255067020728170197707261386889582633645181332181599231617735140043033484822339943885969577495596901669497212168564398292382758660681158983919677066530730221149451089532064974197928870411634083468746209585586653100641348170543342826917514716706529028784045196412443555506979049512322588006968019854595580938481235773505435798493980934406083218313956542861759337308396406153357454850592486729254298707364119766883008365738603560596582342691806802234949535268870869249262086719085075886539015191937099662035902056747701781222518301024211927163662610882652437311645488571583041984085943875037188599905276016214572411383358217424129297287532692606533543303836481053166196832100412844874463815368994027366264838022756352642868811956395805824958164585893021881599317073738492587956863656714869661633062735106720143866591521383939000958844374044137003174672722361662563470218963699960529756161329414702096785159670541970549464258053318989005186203592574362885198605926033605677966659091432120026325170646432126864111548929929986892363592244583519878582272438091679188062816039977855920661194998107439158913490141938301606829132235752770390430708484202726156095766745432894266687131039190665470832844550305400757413337138072928389528402313327739307800053872455159364834513808154028588409942312572874692984386047633868815077681893725581039573433497507227228687482625948832196322228826389362434839411415377753350464252618863743381665340859744132611283964815548430365707109478242467742044913112536146726976882765636905913042097028085104826133273420497896577245002121040491827664423966643724282285027902446664667462477965670341851917461923829844099801926185048826344872403938260479178365149212519319520554112241906350323945871267704547111621112276985640301510824076456676487803709245980982929854921214579702724745986817978674657059579958265874088063558270240058738226638818628107467188252878857689535591899024541601337309383122257919406128189755838266205879596709955038183803826555896128862968506811454403317777939825537365164852326107460357958186679536315060364457496564863498762902286646246218730771378710410566048463794974067396802254221346496066171478698074860249353374247277630377375020471719610636584861589001130798379695857536969492532913840581652046398597817190582509090624273640912260904563818159993327922328044314284288083021574330934524458904385551298912291744087988226824556443986214359911008809521918326895024009691000082859677804284092115667314340804665922310237817131187213748124479560457676167223982882795322834077979144078077495713132436519037018117872504637857524987743067372669251971912572380815983898977275146364515108551809729690888413115207732277733171693976285319168624777286435170727009212757937424556355277625192350898521976819533212341803408677371164931720950965725066349809797376894811179084225527552649722199543087439704254275958301405096609036582785326366433044848600465750608138821382774612126080602493710637570009139597059831107143468709806872527103972293495284896021474547348555993449992048562817581723150919601349171011765260777126398956015291432220421763805249392503449166606726200234001903041717169195227992282238615201205864225388964013373264262547716664091488614054499312751040504351956938906447776625623945573023915494849295815650151458711736972906455432869828004061381512680792238066600632510441516679250115660400538327165700403091383786389321490357210312306562464272795329661820461425298134671278260621664925630805622427875566032402086880200026629435793493142077898335142480185800303253668588812475463001067751936058934882263350018321747421910052084672229122457677411015463827150088946073642338770322191678671590767449199412750576123105414382047313930112344716678119126438197439160085148112808239844329390194191649654083010949658657666582125646760373200071307685358917664435440320496330732611360248000809113006996327145718803416369172689131425448982964449773135244555269771255736934697795104703502808360134145173404231845075053170044048300021737739163420910440890395722138435607895807690540257926881938842552928559883904150808487655957631852055926378572151191257030660362610775603371016699406500595892142859560347491706738882471926761536321812131669474276311276764415328405857917912797181400724702670556826744824119394440559251008766752489041118762805854398160052849273643231746999290764289026265226249968739398492462823115469366961183631500868046338786165242313423279960874995233946441816009262057500969096727823308065432364231763306926159096856920574827458415176748659315016308111276977361570663792167377677634239144329256172110222926608875141016103318546276757935709700935764241614358442702034993214166553202072642289431904709185558745588175895444452178466569491226017033601186434111017261858367929018470765064031321488364418652274326432655865221338718083050574895698471537314179912346278516281955379914312167522837251580282278995838786598290623033382797108548295819102682942213348319442344592923590711537151061657558883935471234837125875491172610769756550104349688293023144109211227381886356003407552635244891681039736185767925683945990354281580083808529148099321956167154042370295766788008607980793156445007251464328598347534628159647751136914562388741695816813696387263708776241903813019103192876006924448866243782653905388959467654628485508513186587020327243357816438453804087375291124192311839953231359767570904529581712038667995221029653811212681840967041259053080632670984677123445782112384705538140014238692080918681550964713455621411457359693267199376911434459302190507094484315878091513224019534308751579920770839268675039232727092314598085239948670321215657010396003769317339237995126204620453820403595008262130036718499053688179316593664874937670073420390011330209058099545827176718843578694771234566090784672250548292838940031879282840216317720348618943072169090226098378707131109055007269202743797312557467445838488229451257143376958798345596300203779517326370179281688259022207722022624322784112418357341813839868252098449890936000763042322396821764760562820065163919828247831363954220092436765551149607027130323938206253270404439268085408139218366685974994889041891327428575731053394710123369701970258371775953267285300733714189977972407837772895910390348387059447607031379527246128594448623350320504516277108580906817342947591260305296673287418976969380784814744409832260937342587375185085515494524079605838884008775031642336057034033781210255084278689127195398926502037480307308200282510839182757858983849035305264054226835968401822241502499396665693837111854060887588218967557775705877479695106344318468981690117108899431268780658339776589606625113136532043492731736716868965198128522347530088027825777473714296569931997339068243659508296951719905943216024390502169423665820297148975303619070567000880558464296845115685956671126039836304212358043500338622133058812280492876194966038500889835348466953102436714542762658851871934850100187594727045565550895784334000019507052488799121840045747371808839357531345551938801467472972285832052252027319787792393127213115576654773938054562195380668211681671630209371004571619407884475691470503803363109285529132074039486836418016231501027613814753664858760736507591454545754657390252739138428552349842604594613659086839195059312837644789504299313708735939859505587396751204932231803155019211483858800902460015762159104531885805614864436450209233631579148210537758990514532018950399717488149346055890324168213350449877687420924744436313749990186168619003251086301089431715364477595744770543349674182102296281142666864222069683356359993672944945342663814045023815628410095918121119280917418619137232650431314454838379051709222860218467762629982829299872695477830542768114946331004983823674305996278378546533828181700023117488467463200778480302318035576450071081246797790945581987487956909890336848769840230688498689081955666207895401013273183849261463319460807126442765607759040811163625389713996299638164463745755012576651155854475867179475479579032618808978152797907687883349071505245673357846311863831577368057321051915823835921580805801523110341047197587363665183488942912886307523805932610947216700363252729635888728944486063359986928141805548118362752936283852516781636965323192964424663183128530821694499928942187884640024792329090939214286876671501164240386175334450692749682322937413952746028331799092291620089364762817918891673760265391412678080644974476167997120894363436506282753082179845249116553311106233515174477461621406420282321143384778017080914728233625077643273664367066054543526367581382791985649715546060938959611479366793196369942454356873032956975033036192318487394658225982295248359273601183907348224748906837068295498080072605638649047215251520590478781249794026941013178864561240135658840237055928892736782511863584679144365538792303515233431959987413502092005115594849609097133323611100028928864461243953129913193332489705984901636143995051872378436180227714621676039744183501939571648479710736249691931509333807749157827860966958797151338950041506684383620592806879641445820487472652494094436455796269742452886385017490971378049838577267811730189410291333879712837967162205244426813233746792617973219132948002876033168970030914179468605444916661549869934695030369833598762779456318911051883829721195297940664691214464963487486348734023844128052169467751992713183468989853142598494355728872461521857491463616782544063380063064488496040326229486037297892124431295158467678833390850250606984512435232493605742675302314953081674799902186369530299793703333957614344074582875120827560861944276994768415793665041837772790740177443374568141417348156339008454608723703191412775904937566919833502518517533575170096543804156572782777886550930161884843943424381264026482102966445838101456247010610741936663430461706118492683990755291143289084282411727820802058049921227988704027480285001484795064792267276752769045510995569410038435146029446351287847265294356184528354593527190382989995034280234602060698811192683347532001102644602865779374714768896008835444356954397249294252867481871878576133671577175535446532810697405068029090517506962573457595318797317523864270462095415702188797988527928748775837631250609213966762294323554151191024777063911850474487325295788199120245636062774357305793662984179944685146208571495583614109714482873749792145010980310571715284167826855824962803891286192984652667057859199329737835420576026132197514236808762360878465026592335506448953221133354049256732332499734158882664685043937125506387041522855042028015625539658139148824343331923052490833113094896899327048498404361869989937524234530918697978045518671527087414189894690216121891529095492090248319602041658878346692265844050255240452638331179645990482446833404028495422788709759707134942236620609047936929948876387091332123358671390044279219524988170125507328122632617724530062826836579050137740422200055142503364132094095617344081638064207909365689773665628618147528902091819553870822465706649761475338666690952517789109226524486314786255223545444459279389428812008668357125583250590254732611622850787266968249034231752187217267903646434856982622927594497948602150551370931500426014536507811693532728004333042255543788174118364836745592593833942398935302178461937599074303618592592923294057571397317989092096722079359380529142984388661328299868944663903009732640621869113377043920146387239548910532182379136949461772302311625054922111293284304753745209551808012905050892171698347360754435899768177751186038580722954579413716253290438235385042837432548691469394321891519065512549642146395895487150904303195263580455455361108151326827074196573911773830167982754069086925780249208702476022226248345108559857654586993531317957757192428204180777138023712700424861351279121277855086689788749226789479121228384036231058177381228002380215730017601807007563844220511348693684094979528767412036891093826916247857702812844552569153267724345159204174283490083960781158560851978867939820903723826053204880166328570496388584313531965171559339865057065446915962970517620023106328527361385808458278633489837353516379857365287214924641900442240905272849804417084391981736439610753373058846703700435568070442377055136567422775483441308094605844710811819867953423970364313948193974649239842070378478532268669869474077881955688424922753124971994813626605057273498337880897648096261126542520608428409229436248891368253274437671413559154984379437338035925861353994355838012882267734420342001115090041798474269329060333954621402213330900689084375617262590695689943707493586708594915537250861724004246829951483646981103959738883993366220028471599662884601562974590038459430508234919402917263196122574892263384380004538723065243600033487576782572166212087275015785758609693208941485737814794505598286786458655897836910000740128054754402044018537353765736777968473876608551540179484091753235406557728784948737134705591606401055874171145864879759481818573381944764795338183708125377089244183284479790922974309343564387529805218627920524395174958838987105840477113238473877697923610305066967259910790415093442513425733525219360585380945914736035447596440754156583884205064418663478095853972562132686499704768475294285540770229512307499148088137648191945668386809795975562781839727272891324249122630355821768803291531192230967584700995229508941864293411562311842577966040952994376260216475313187214650068620600501073768210806708374431947780792708023674394323254489367492322833420984971408473352058620441045442321985636366957614453993053692272300612757397888427191567722161564246159538529841957641116293686632098224275304268612898876877753886921081681229974955884053651288768157903290890442278346007530794058807550522866794566345774083934644612949370560007891964601780905236919652202282533441757963673540460506454761083707728571974184308337460848451694579249785677773275090964008821042266080607171255574009705093340024272270419203902498964875306748582833279681475044608215823207822571611091990983268409081760823169660129960439242650215735962953119671836732221452864454540818069282042652932906678785664917889734799313666534042213367062217386626807430331227223882087874246862542206197814284752290527322229078727727049033976364804640293119188437703492276128880734092437442979197631130540020633831900980979560754807713527996906737204084746716197188059501510103643861014134009151349274185365182607237669590280518407416501198811037462815268250826449256206194811334749121618581674509835546226483507606951599456208744427206046089845657441836126156604402496202416426377628563846549233023275919601140718974951508574457844255357938579549811838548018535699840042293712907306694810372336342441315297995739983879524688057726738778910012186732250049011987526621713723753860682720017244714198726851469541177268596296582773967618655730284991317691269718833594214043457528305253818971465518668143997053821634066076897149044995692328874431845350912056325298820763589988778217154148237641603179230524166565549002036376876006086368577713734009222358609349292663556392329503731188705904669071638554750023417285385793269451853396408920092804494753946673026824005246346463315357702740677831447831075724008440792877745315939420679042621575570902081872121209905411063862073640048167188599327474502334272549858829171327981085513878430266102912736175748088551823954808025597613224209797134735618310320589991331288569901718327554772106900777576876040773612738452796678515087682820179143350052142876935190495563295531124472217643898761913253744329274686343446555206093552862828398717789126074406338347771861004771759607035865431830356896529797853156524916195800632114520051322425085920273498166787494016335183977624231630837365422560538329818497323461446080480598994402812258069755137377516394267162988286555427923058692087008310329294439168615909719282602868858828828447120749376186238960530555001437470002196542204311738810956618668384644089335507700611686062147657673168601726269582101751258411626525937486077972417992837971823025007114639985704289068964349424379083866655718371210039484231640757582703019202636949842401963605299398821889176015218261152649362167933176253461748583008459056703718782965755889952760830900115852568680568145394328857923703873286361530381192288809527731235206015086471327305935809132787115348938651050204512070686084459273300095635100580975306275308847762440087398528457797464856982814868768121952434012715659779754853784486983155230138584838867781195973400892115749949019263471874806315454404273988283258096601578393458866852424708848222432410373424466597729035906005131982115964095425329416878884286226833065792733112408367224529187215940669983275515764195403925987152602193254317715578806158361412818453501424789810350626372618585158935863322486400277770363966014296463337402061501639717997388442927958358804892844400237088202936375267532652805093953834595576773317854422079620665340098217234315522145846116773743822637766698743465035747903513780845664392369755113944144459331183115450377494904364066256950170091036655846795723672198389982744844241456173333277792181104301122237583385612518774812504643539033170644349387261788903535322379022211144370873566852601502860767754642662398441568310887972196518037865388684691552574962561948913135979223467011248741692988150310580056190527224907676789447729119741779513735831535871004641377190756256432024196679645269301712806080326502085286122906993208484154000216796672839977440497140450234784738992669332683988762716016042051821706671541761177045061595907316474691206245719433374849951169982870526729962028094862826580566237830732373753058857994961718569429626808685994122553596282473195324687684308343815098786143601691217375055628305615419809840410477269444205050871977712526024981903007609006792052479494913304218394307013728180615164642310734139272339678192071138451787468234210401166678892656331358508726138999836126631534773528261572286733830182885807505548286304627324291954070419021120107921656125033736899519869477364723822785261500862611404738057367851846831321253923836654553797096612437341953861755134431181914137145132437424831645477793837955167982042477922489143507770275038527606614043616183642362916580412331700908775569226933837996036562802168543198464919678981775695435533592587572262212297104738771888438347947225173536820887083074191358899751816018444216996538402905066688070535954477713649814606112638545917408702590436368414684539075264014396804489072505600707962549551215733268698034918754697138113764993226222793126683135508445338338737830489050967120125667518148624502113446809915056813199429758234536405115580244806225348975308905641637928898590756132556156303312873591994826041298296246523521714458824159336448926529277007115433713131288132545730031597256109973738108179473671607513450658760909834662008152556894094711161582062993038813334552881727783865652129113555391612878128264913319980914079280896498782924886817485564933784778529074159398178727417955783300275073340857877211397291463036185468498718516328078387759488539943271105291436494004879446039653917959235102876904439055480404590469390915662046266232368116292279547170496135800032239450078238038949175037745777822440288798583524731154698863731705501060843219960077473646301651754523673614716524015001413545862164583181783667797069934613405855043735342210441377348066575394806292378675027227122629861492205400191136873183408268543547210588158026903065967355180157337102877680833412567540480499257838868285164975768787071172026185971896766472215815639275142660760448248836324169699159781508217148342709677603498926548583323044593719424349405936752122252352585216911005361753460250363331091091055457527467169859743229510077082855166045219463022694594786444889777638353263524457575033829365450559377903203966006261597605639060890194527055744633707744152990887757668384597795627568812767995750487938270786868834688673533945159519274809139328767901160979896129361289119639784560424055788588499854029550929005988280550279579315396362457173088738917003829497814174112590092228635417565280697045746029249922775575663005107674901932486219002764711240936029756069894433747219444899778278971227143661386289251215965661633181654761835780296092629702796228669718819023558743110953689410282779277103145466192877800048570510527397056439909474060451110105908491368916866716325912655688393616092022245560670223433871882375468836703807647253498568245749626851905177460198218792409501720030527120342943635872929334119160980181685201430420641944079991683584294158059226052709987698546759722412073830652131629812144009218594201069486002296684104631567838660447714777110479632021998626475847939206786831778917320636922153048184663867319259015178745605271699906563311657179091875724746455530183681201156463243267623800700514425112489024356906257897795883705737544072105589490122690272317778961772125365977731385043002354845680700546857440770176647701074381888812477046433228393919771748435239993205681608517419954422636583726751095744505568984162570441738880278708069259074331804624291837683207671948758021024771511579079060122592584537605102612423619821988064988567002493857420904751173775734122890132986741887526285208323466943297026833315698801848171217530850731546930502914125491551510705149616034134563970422361365649354975201363918095754864566913136902681013560797490777586294037543616987679920460623550845768586322830930083790382227310672591835554764188268991531827119298889511683506462999996582212765896457247124831819193783809006827858182464323296907536254665311426157482258936228882730629931917367872644364665573649962238207654581337621608334228288922547127408308228108647881058454364745993331135994095563803587384132292406766407329614357399399021740757415672899579636600589974839353495073774533793704794655770544674221472735164959043334528781938992003530348199055168624881934882598293469981120269369785573035279969760889998810222446278559595929013240328387447763404300911742776581370462529365924392659721662533229443809941988814861207226961319202641042091472444550939899932131326361371063396581457385546301870049660706652207860548876646912551895764145209828470231050938164761168222955650601622504909850800483701559349240559092536621971549206104717291353920497224135557977706023493707493644309106084544511057084787012132708850814364698060643935873326614405666041103616753318016211736460770177864178806204276467136047795476685488774654989514496666607419004016096043355425823281501593908169387288678482944691694086365568769250169747160330491195375005075706448904602199342529154392583644549998079887804952254138067000836042126318705309449509224593215588675363107376288262369185114331070020128465270263144605183067543404979072745205007562289974347129028111910467138557625667833967620451213995165935205932687616374610176249555694660423324923571784485460027955545884273471283251309351018688577687785613169976635023300674576046685538928493436738313939388146471864984965733813617247109847994338710334439403347515951667456143721535418354795216782905635951129108061772235590678033548160693899715412449794097803288883889241626151721098240680575234581164919025171333433165329070916010451464307767358918730399378357137931894761743961154015102337748310764639422954403011518499936205994113320703156536817714765369871111079497080643291552038937131112187792876918935563639121487098465189374786008456366856199350565966537176704349217378783639779836655663941252293529986969685230090367001164430448287437893461988896799754961814905594722873120449627288180640550736897806836959298234944349403476452018772589529730319301322943826718887512948281083533600256685313310807737075001499707330078898502157134660399145887823325508788794172152246917190337703011998550402458276237136259173298462903318542687211599559786908545573225361751062085459287601854885537970061274393805760876713757873311218833975944598823189699273873727814488381778815298014503806528217137494828442366903505011035704436788726555697114772768688455671683971472305312007893821400263391502365151940509688672777166015685833946619592321033159007237777736415979725424235438115938959082546576909714970756513836377624915562441345921776258403498899763403945561811577877176492771673164319877035919125203947194164243807223090321095442091629696131246670854693495746638335784731056961721062707132945015694125373651515609053290306920581715627775587850538854075777176679870006794103885496594397701998674038058286695608601259129123961466095381955724342212004011031444032742345807758966146601458114087575510919060283522516727285117289493485502795727308377481788422515701562070404852639288300394847988864655290475264913539383203888016063903628712181842987390385888964326319206750571267678937351962736678343410843771421006733878239840548132535990354509539053777564723503613714245075041573827930799503644904409607333237940682803065611777560430186667111757210592499375391587868921661372950463115076157440666628372733410091204403451686793498180826406172928967638587278660374769311100263434444847454621515674732741774306877133871753553604767402888825998907743193908381921189710682585889538906327450949188122751985463963300128462966947916115399424462004976399208734944052152975285309341361387549118178687837263671373476610449278913386181373200343190477200240726976659632004282474399179105150403850748978348765069370653233707263554067719245808400682823771742873468681205102372231615194486973287485759596744149965572719469321753305491708542672969741065733207612314715443971100975683496801808848792518130464647959947136078601228504685087230543464849946526753094853312077847620333095601817030573927319743731770471921385620136527933132928979563831578215570257167687105554675176333967818695833680056657179473278482571076613430652592355792427595458750571114338511012056205985768822908585548315104237259053814926634948885493065320639461440823571636928784277973290242443895633254985636305810096901517757899064969352142371040457190754721319149243064548892542367742485947865139897750361670731896240208161777297006049160776882256234300117135172938317073990030739867996123796199495562334803840293582151351272803123151931362960362993921788492343828559797567146670600142718731111985805431645312019507099891026557673845493831740726432239102464686340416385148487599326419969998847677896517018612604216740070739641370554398287015648183638138836701939791145448510138112274151944347707721057451985160031393124899881828966504402178307688198985262505411862188561539546114941283467113030472415825340071052836333990382867807642317787666343793110538276871437691458449477768079275436682219552643909659791347201051233703995469180305985403205311442762164663759041390222976642787687364076060749379905979912197136353007411597472958310829927703029139518770343674754392863108235114134787555347149938717646263365195991581343602240286932598362638789842113311546777040805317060864715674507879877375548676038978793308617018345418652843061649971495710752635717463173997846132307571820770947575326764719049015109861769341456886819258791384592133338789441866614267735084883536742037562511519302580786848250925902191513249553119245963175112803983006397267938938290186378522194710368948291754562277335365147455481754608426562408265681738330604844968740802639327525164522381007758968741308301047567482818845386992983024994742055491982244674083996512901882464999690109599195925390882220648945936941282966147397315895534881313987360683879995409185418112951905524728148686035283893866914238511361326014670682301783678356917000207942497004517509756980467599955568314494892829002375398377747992974790873421372224924349358771750086970602938923699705268409556548078429925619767197299675835041145167225689076179938636607738685185300521894554460389429513891098294979498893527395733095764765083022612495043125385710340569134046437305832806337996055946013867487802664746520639444547341126702964816789555734149536281271047425372855681972397602914481005634801075925352500398372050869000117195049782167073120251432576744579255562360887206146921490641153663332648286533228946263044088537071633441085059642660784697938877913300619642106207989010805315372108283569618441740905263089135757418514042138890195212471072075760864423088345759863687318882662237041057479058330486770442366940675961446267843749622768328746948287917176839481813987633642883506243997485614170702492375166394336620130960400269811550367735313090958468184915799946687909457240596248303088490404207248031852553671045802635949228204466001773262771823677065436909951530024138044177651792079316248727516093610588590158628011492580159114461539579320678286178881728274525432622496382761553212117219814881093607258974601186240144243954108866598699334857600389505696340977409533694186392959461799215883963265819444087711954060590942073712154698555681066104355072446870950570168401390309043432731888194227965046444523367504064312396966055412958825915946227836755675998866015383133454270792350412454889037249356906883187804165774106109253847438436793783553802934112538065922415106679649609779707997867059977617104367443839860754188192650920645440078715238451585849520579607396256092145819967481864866783365799468784751073743518599203837477749784261690104315885907159345170659708096315354337801723704528401549535441130000633971822242944975322587922856845876838784363348259460104274253566274657346113922687801798396525911582939167840623074966401932545458068547797059819595240205765547854464307082891847477621411015272368751425412033113051704395333203536514442683200533479857970841358351497352037086603245526290508804305085383954392063086817025979134254504079082156708188425715684374635822388344140355738056075954034425706933421923858976911346857836807443680417807804064201146969989631160673866040706011188416045706003439735237613779600059559236331408226247279967422551348261828800992135715398109156704527930224716504529210776102332246940473990995256379566027952068408123864458931595745745202360845518075754409115833864087903163371552726226515875806811472255679267044918224154880664828797704338805454296399917778333931621603417362252078134474188056873095140103294293246442886928609332632068481078728322678447552038507816755194698095739077598024622946294897148278331494442832775538566610153492417903146379910888669382782461056138040475324549460280842475686056386949873228994214557657952254527720749973924649298376501360848653385890907183978875134214270065308023427997796848964207610438437667200543588533342353083261119941621123350206976252526729500928110526729785024712232963045823913600438320873690847296761667788637199238108059565486590038687358191860371615655236650558252631422951358729097852220572159951713255015673351116182630723275031569917288572276370239809416859509865509451780439814661488714109823706277162656464744560744917387435507985317057407908037280852946023985797293935886409295009903979500656340473559724439180242528411611461579847926208290987199999398148750678694986524960170778839653461033238042411515736988444615483203034841125462548313112032927979933267274040115732401960446700845522298593818191203830807023083832777782814714916339536291879141716860059454163615566123768389746356954742621862059928771343258266895874517849373991341342153409414829629643436209283310937210751111179206582973140527113821241302181827244281045346753982316528055887167842499489623387794182870674428162587157441300161642821218773047638847638423145220097762792907415994120636372904596591587427516864167924954909449270128565794876482323659450845662336054351632588817679446731711441591929117078675178943660014511427041433302498776902511853785957634026643441180603608089668432487162054642057476262192001332563400534826996321786646994647465942413338841221101859803095020446444539310338100333031567893906329013457799160758130932518957849209464782119540581770734097283968543636374297438321474155879651859506288168020095808138768011304742998132344171373672570364493565336740680588575552156998458125798037476852416063480648399325883683822358599945117660878509924679450672218457501329269461160097199940402269485022286256155600837652650141799025922675172277601232841063256881919763491598802747404258822783733359855015937001660357832593783939853465828336336481437677576561032921255617610210851824593804408969982305613314037870738657370405792999973772823713212770074396433624349517303962920455518836551676668646507243400205983217422918608038782342507128649366345649187333833537684752543839927069583311230311945036145134573335097961193905648674516591759077916741988127144245266137750428849819093035223391836987841258624829386101358172833067840083627606536121578156626979181558875638028754788916691039153822922602202336919822347645985657352200023650105506061705041177733954067507571025678033381331891296607160180223261163307828284132920712329433979771563091291814990237361779613413649426742572928446710134907535417948907126835026299555304172199147107541102935660128368945652571628027441322894444133451971775299507432387252813093972479390243654337631254486743971885265844873477336889611827154874398249040855001206141687656050890624451978469205549854944012910310198106484365054917619224662404203702496463312020230130680308931193636968194712213873353123657796524737483521414362744635709520836571041689951537664196823929525209654924132103323251926274390201264443621755915957839406673306074669486321804399379556183003709313320276036603482029303045589475369442187078731468239641832271733643399220175981297684377151879769926417583632860594192316216098360742395775850045035543122612220982599546715971279481055836328966719617885722777228125851513735927387647995640542338798752588025183730456117864419072267078987163849808618719477052346898277291038706889479949426294824852453374122496049168661214907334662819986537505747961576081845851222526572461235269101705613939582063000752178126477249895076157852647422293746312988047251361421749223003522274995255404849159954704476189866703762291837529439113423134042381905069107853666421250166594864660439809266111500754774443542297852165159209997376110933059727016094715917848951830556008568968697061691167518995907387076095506186338075936893868682098579564779442457643663759001372650944340946811782147576542087325513973726348981126102166684732107304388574410881234333309418104752945695756091283365236098395663151864122035123961792103968252741932543974975512567614202372419150590005661758733897538867287317489352277968390462992948240778184665286415391408619235916567313597461837851214077952457712684815679669108584082211310112829230993242738694165301355657033575843569832232571767276741795023435548366541272389789183730693298611940210736414305603329811834226205807410892302153444382170061945831245320691173100966926395719854174242789521409990736693317377271788611060567723236001574505350037390798275469005525422018116696283587619353054795061200401990739190751227647788867818558699200301386727000857585345413839282470690086332135949830481725097478564125629011648887616054118460003755641239621471953640456256788463785261888813752340727296491528906425157747957868490071769541924052978401125063194458008902871470910403427305787802372336609716731690411480758662971310770360590000915312208447441144757191166183346788339069756867625707362897961359246846066799846022005649602036697654866696644537257466185546786424196797626194020733544395665514888251109887464882786843326940190026250403553508757871644001335221671093853407955121363990410867640374630688838268080540688936072364566149229254871218289528288545895038205666757700336061654758571265024554763200131552423789568814149839381019052754138396078034933374629017875251369705255038163250499318001471816245745660245637836108885633737221925428320287262127672502542977063726181985519485321501093842382223113500666092803195629264470584016904497497093792929585916304151107651184055138671178043630671209345674472106220259841277513809208178507127996983153255026017297388822311575303875593452648326393234067541476742719279604428865110914971467348994212180956695497694274917474460748044618812550528899057549255579822611363235762253294491410844058601295749685091223032311483715557563311641347003157763366606653721345165234943740713315143489163717917162972853435835246568446021255466605088870569976157594189664662606170417806787150273907677550352141251691718503863458454828255111318050052343233583560484468635665975709239195547691391315962955446722084082643807452703763789985123702023459184025108514185654803171555217851466244428758331365112626932893343957654209215607566740383798571157122607733975524350857564562045383428922836206411112381387260049593492510567471839083629711312867169874416067934763571333923391536307094639809151525459059113202688909930128971690747011714658960585999174851475606893712713456476264947118059253206497711831519637473854578147776410402924852035497851736633591954225300934113164146011817478983210089183400443080443941751295795512878264403849555838421407938473095450909604756686033411889146293914416882173453364152382028110971696289142262114326360519934068423608375475139856078781442103935389295653697021683443105423307587528765111546969634723613148167968885860894109104119235105638400772915946105987913761686830106173419106546353726068537273254827984726132163565287549361696683952836163265677414654441882568238843183358355152709935463984804251627740936634921363191459274914185583591547288808082821594712853174001107961829990979690254472308001828323106592401143674538096281104216860855920426371819611915336107940728898672502728347073324362712702477703777060931061225118378362399728423520652734382370221069023448093556525642852438943103642461420782603536775221589950880550824674142859970285728780043840220034130750774417346153374015878696965844061916164810396865688868078615239244414479445014172885883943984000163396107032398162274833599880394934531552260823721041522718451725767718408098319843587774381753049310715566663795818645845945827500938526223244283137660916641090559548252611916986235888424518916744539769440172138729752615652700053915777913633993695111281796623665980336374117256528741184974326688820743262044964701425639757196786337527081403249451303563540896133089805318773245259887165061054144194926544096762710692639913008549419730303734577393416477134794374829023011461284617939208185827923721069958181312275275882680652413978942896318535370332397316379932987193658189209849787852862714425959112850659873007294403683649798062432792720596082390825159769280681215412722646443849758112419416449938829855682081842203930519888689523265559621747068936215641938425701220630995645827746956760031322454218005235248380106716094616882401612232136249038669741823979924816799889121050795568100386952790700058334979679103748024620608240904888889107336569424339054491055503713743840238766842795485344656590397793687158127198135584547406172999254227594394413588213578900605314804660413095798020739759179889932391238222339749182978885438210001471564272859324472294060656386729261533911693950842531460686044314270381899143741446593071151816515229042409390270969079229530554134842367024777111439377210094201449757394409272698154252423692428285955695224624769452326916984225116509112920978261562460960456088037984773115675629778338825871247368810846170465364399177172611616238520424494743491165881693952772381553621027096240766825753411699306495862423489692754774330874184789715418883876097708243031513286229071028290171275148937138732653538794577594177851709009939914803023047369636255095419576349278925451170598448064342979051601016934175784862558556570944805216815791338911733828399260560535906232426447829604775835814496152018725362552893116182177799343628977303276342233888437980479742658146564946359194369566812507470162986709769231950153160300956417868817730953276551545582879710295964388301503030529564778846298682352199797409076353482380488888217689588192134119476155493711427967716140354802253553307004522762904708583680681499922775947228416158833225333271275402069682384957609842398070357545661648159563575677088196377377383123952876133445123235870701558083679343075700225762115965965386558366627807350117200543355633958032283146855794835803603633387811945073712985092267519146734251068567992874694116140483197544503005226032995505189880076819045379854194968863914428881322774551985834859624138759083036911428199127897323587786278229299568658418143972022452894229724552532046691174134677419124619026007052015679571761864524434355809766020862297364809825948632477935809448391150477135649953029625488119290988115817901782277774088572202499649976410364290077827280419890837307243149779963378779718585416397947321390389253641605931192560619469795599717583996210042296982761968051303476313415535055985569662773875205685694660553306567418277504370353454827295296746601387774249569873392184728321462588104887417053968421532540309141225675740497650059176286619002818484989779095666798615193037707681842969898803534378060646260941825331446352703692156109810288033289299287843364462220774109463637595159935501237080809934385357228155569991399721791756766758566113765413304548630874285867020375589583332793789636507766013627873757704067633736467545709678377754191175170117036253676741131431921451379638256699187070522658037552074276185486997820615637818946268863086896093270023997974652244456418080024874139879866507141069670909077604016487314202552265885302295884488762494189600588689859157709236882778526498612529717754831921439968365485483247758280523023803303112478307935100215562972133004068795845286678537891957210890440837018157841540747559385482112591535937657333715026717263348290081953909497043272234610431297578175725218818618061033963109540990133952277220082954496790901183151370456454401008265753358688812774967280881067802831784788938489069113933571185185160296521223359502775022087870067769557876206526466080880189106437287265644303657653167239271701579157551670523369812136145616977641993931518095390698555205464880651851857150978367594814677878934967814077749466777829425088013729977635299533532245061784157095816530954620981204237024866180925160172752461638640644647486331328713956890839646651574653062767434276162211516362495381388540542520404657096906311841654340724647565203069182976221942941612245074619827257605718450089252509546766866019926862587453993270606321422961741264181080807005228850041989933193929917179918082990783571215305303320131954580687382077661800489789919794356006221463528421107661570353602382821848017164021318889647979521468065185403044768557213783727346555345974414077998563229368259294670980259255777300478034491219182479679360560616296136028176373850686663045685580464796684475786143130838752295952114734503437777273743315263376651014375026609625792652485866517912106095993032594635759207544624364147018514552219405651660581872071757076348618694736537743197606270032570548468660388073954126508590357631083686587389729713546258633312325409403210159982771834437190835756901043561762605063017987463083612477865889850857140177083834844175864811129147919206163461824648299454034063065663582455802676008899081125684984792636626292783990342655111131354612684763360964082239104313020144803863161734613525025561854661369765530126851873300057670560685234931941563388779358500984494373497705530643902898371465817311803662036567744567184727605897381054048108408556902392942119504460217246210551134879158432456151029649820084277444402622894202132304847934602429705102871933351511535970434347734433168143012757533960814152252979374722463459855033060634026729685380398489853421717386079010667746683876770816285178389087038000489246433288036622571770003563933630692973385571799990949474872910451904531531568635126113736670579394180858462224486729053738220983422683384330409523590724056296044201576206253446237882260400652931928179232423930375398756813389836010459978840016385706070836156115515808264993185541491540887533080898884755358496018884625670635052252905361182929036604948764472485194269851372357816748670168265419327965261058104977739171891261053868549933426602432109540773671038573880284323327128232628760908246729242250225836870412672733998039648174438250106542893169245780952118542226144711862645066484477711168013551313816971402097346443974231330874139531947216747836730353216844799137431983590977488682743437137141253220232229207243297330621163822769843504154380022573810417210988071098739333125513767957118757752276482418948044184224606287533709866744948985089464245447136885745252654715093354909264862046922803413149273014614539837125041434923521177850340765850131193175927366605498849983428337750371474371917316313686047317429101303562366350866819397167782063792545113237643782721631771923601975234684344660040381974574721363092306485239795363034232079185555953953337606382748756636016012327471947420608886160981473824973727451894802916973594649767491984989070878031814941353852541584705375340622161546164882326106912795506918633864943754771383578111278809456138265152837026026555995777409753428653322575291852231279162488733482560682170513843131579490372787699817195147538563337111968566852804639177321648984792593007384345788971252498545502780192465833147261517600174610338126348029098065308364798367180788763765596413594284643769271410214636985462239010817546108023917057281951075999761299205773494526393778815843375329192944265042542431115486432785051951938084064803779973665366427836804572948940484376845020719736028363437550334318223916928228272077872371921089651191286310327267478737744120504386636823139210713100604626381005458265866000775280119660971337169979954001938973070635101704314131352070399130003087154922517277435657194438861815662699962832262021557799703273358864470541928174698569697731901029542825541595652017256212423819159415168063301449953061577628728677461046974992994537862693166662179391797026427613178366556941036548626521289689864103549077512800944555365642052282169306957539492834961151731198944141905530645016143027017103472107295639607797191858024615451891346811493361837996579045619029695672106685651205807349642289958343912930585879360029024939000675073034979832170478692747079093915901384561108111388120543074729305495282770446919059238602353902241989181478759750628643710548612838026326634231299955556290848939474453550163795052026188440788806469416896309710173411959340839662101891848041199002711470180020217050224231888019683875090377611123664639058395389201159460483656309120386703622677368649421092980180748760543482920842787748567319771618261513766261159360993827170377853519358266640663554179438285992160890644538567860027371872544363074771331434358701769778658810108475567459967289818189862015032299662364181074164985485053636916903310805359227126502761308590239714170756996035197599265172480175753287381087371223538843688757384543817964280756737606627738227804935856701579425741858998589250626769836567957556370154921926556901120262644806114002156301131272822660325720229652967555065512196381032709151512249395872310550699390533238062022163327969227455601089070173062508887035226196768982135960353661254941527444048040963303334326016594285762887560325132816900362380139744973192973548626472049719693253183972466499056835480939306876088817070560042171316015607801759497616095490119519111042223252867389825492948396480261927685237603869873462322943433743190845280564191820162771600849136546335623581821451528599174675829238935814038453065232020780181508482229669094741478907001093509757806829445246377988988862282220582787699340213606590941423478317279783723343339592778310449449997206899208535910563423421439870202388959138617210502371077267724273240937628058488211873237553398885185431515991045056170142679787823006065659233117691238149830461562278769698477375883851219273322787544054776652230233912521508300023848892340920138974724647538335368127732145674372196418391933568235758420863874660657065873143194093025920850816845617776257219053543250456368451043253065124269559423680028659386545285897717613650492463964471985405388724200855989833088642173280810584415037327149767288394675953428766938786652227393683367343877716204589860172050492334299392309111136811348220751549527383920648703820491552470282309489791420051435995352753354490829315405814161591296093228639893925888329242077627976024713141037102628031795300674958130193873642940644796653634151306963250654871615427933386364415628878545426107558529755979375817209540946848041108156475648514753363270655994296212747981323366337162699539616932470769060520367130171526405729418774604296743888317306614539065487449981152641454252350729015979204939101924702409667747141982590837645438963283670157609328573522120004397103988525981842482919226960074214701619698529469799210922190886758251428228472656758019608119820288533611594787106897156788424091004101203631619162747520229812061149553843587316603585810922271458921042332465033221955473844067417024911255624430576392964798176442541054354162143616556020109245777023896103541940072009787628277136104990272937881683269252477741093237776388073670780747666465710578515105771484788488509537175431682903564009867678421245606117585831419749651892671936499664450690234858047072740291885936700468688231220045543662935647892332631148015185252698378680110456085149764001973017240006292552991059665863705143250312428905652282107421541920850209590897485937254852208786641963449759679790407090554631587448179811581958037438373175453652989909869388625680251948570534250770511482085142251671122154084953167194947593225651331991709332306606695125232980123630356937743936743208255612206956335563902190806740653437965971721911939107682900610524784394416331424097981467160669046085330280070072741938790303341173661213566860630636987962684623422730857320365162982371523666606493688681156599812779902156630879781525619352100670556864592486811750413263707379977317601311899171469884364465635188303240794041637203256696169609553686371425405907891685381490789252625847048255684697891362725871500594494352029568689010862652997653396312470715418881886857485835425449752018714542778993992714367869204236102861950929956958254864149355879917958751090789714777616419780289440664458885656636288432041955019488048818893690810335088748822800168519347634489946740999935393353156025024047099871275406715433485116397605091198599747760769624058657724328674601461710562936386901365305947633739022052530388891469151347779182611292764217286511503321507373421538100946305161588943020085627181759857730614667558136428292598377396216014680508739637867190042342670052170166633434023848837496279489214963819873188843874781267390943490044582426676897249139885868211557838241682188491325507223115238665511350245709436889527238965574081630504615184126647493713665483091851598898045827077842555927863560414939884930920693455462639171796828643806218682956145125597130237190954931509200395333626623668623652864244166177075502769196446761713448122771972490369672089528459289991810293690911687618157470899989554579604883609261582362216168852623058083673492175247952844033522952948963799366444625605969055630335814465442597768520661693586711177983907488077538500288827049914452130400626392112100220924060071249091708118320414890698477470500772210435404076029123318769826095091006267996705523006644118497682187851038958417188991927560758069140663818957290761624306422349812887252915364676532544752125276214372954997458981356533736405162185775838654500381327014491524253771661742199144225225996607317381285556176302250726943998966656429419427652311108345133227438035263071003108892421740405430920247373594459285685220170621804967841290960454717706132461446118809946376734660657463002299052091700224588202804832391919292066260467733126322971293633791619993868947535294347481078030998241125349975569908596636110932667277314474774411988288574609462381605092720264597611807482761846231296691482757556271890377281969916480122862397224118738679162740613114421334100253911424724522564258562029048778253757398120652188762708705316841332905432893618929535354614717126375171703165201515845353214658024012619397219666817874232182532403041562079183949265601600579411573739882043996682967799877249309403449024085687467180950302318936285755372981273683869793869663966095390274297503356720125733129204241024412871338867960119542697978553574260472884159052829963320509470327247060167282723491369306434338998020195556334384149896377646408879139726507637197748961230104058132183746631368809195318507069122401315605701549706259438680522507984819955427343879368065631193896956969691893153209925100888355065765611301639838416375558320670415189686038211292417001240446632353540421988212707857039030366187904902910116356537189933658414026828633587027266282977391253177247134644266853978505879127905866737380938236125460842772675239522447766454545127522243220323648875085865362821398774568016259066668863673994228730246858470291692290184048922156262247867439498381814030379308333456285535054939264838716027031241690974277341267890910905169084128812979899264826697621998214349871338215204388764063352229124367044201529469323557101297289622745338021096778443737868328351422878792872357554886576566352711766027711225059878852012346245043953063917679534276753922573754588071863686209368238812404246880040087342365460147760280138128183297361819009145235530174644812722109540108004664627998256393774289142738101344866615307049706328541505365333287741146746135590359335747752616854339933908578228777720000190386159039246211793834170952628253253051549907922756131220341133345962260339204905847083362429436415469463467055370909600271239293171791062099449731798811503100955229549690642293618642149325702800388649516321150468500158340992457108566401427917825077136485575012958659029005541326616300261190929487428931310440196749489208552446689432299715812902077028698586983531173340482178869106803613329495351238809346072097133585966044896734798289654919105557877949972941171913267549579643350274573189842249257959197406441570194972791456546243856612944180108298015712682551900150373798180633765683253392226085765009622844858064214427708737490921141387517941134067420430670980961254380936831020774859845012481783560588967547840395026474862954542871561343255104493207259221644681310503072731362728599226257613969907901218922842548578905966708681885819047410359606733592486338939828138838086705425501487813004469866196845564759475261376738041546808557596850978679194178586421423518290517611282019221126744832352741964473905182371655156410441209851530170556776143950683841565661859565210738613098466535231526233611747665033759355259510802019044722554107136663754551996031767474740992472860027912357463176878028881230691293938246626369243412697394891204658414875681092507623507707523115323605179709900115934699692793948469165869816289558488993470924357022625263822975479043758568450434549431229078243315834694606434881945049339756198336183005082773125580606444301196451234280387933340466542332258120669095142106299727899500522452592786699842661107576065455665066348112892496547356628690479152207480830628207207054339620358713456151655337814469203796072826384222579141091283260381241470750398144616524506868812663900368239947677483930685975503914613064538208489759564614927862736521833855385103404455720249952215100864770381765509740740620451520468613667551019785549545657804055370633136336751734021111171771526882759954343122975009908465697403714291858910801795623402940532147442644803851642559026034121968408740596584433037672217782260028984008163195338084520397161932073322728758995068193779141195869358631848892991446318714341773314560831698036824015189609630682379245247176406558831589193402159340677420231697666221671634064874409316302707989492373877132173609500965454841922842101052108117127290291057538736743261929140784191273716750145638070527447267085958937618224210796558631421534929651818405846800344366029013634364375597273596148791757597348990157536467601522204570514036479094023117195120496470274256030994516451109052421134125320070072825309982953992067010340359236386711871363312646308093059221646249874721497678808225705735545313181400891938908703300105050119321366339950598444899140791080190924629346213387641741452474004094748119949227653669511038515978556445566550432704764975263873723179782113836412348249675985411130708948983390545926426818492418142710569616083235620710614954644374701189504268153826607672401236446975325806407712984175454136847993487762971558109204468562603365953452245467835555457565576271685672753933248395930488289757635386424481779298228754549814828308880786345534996609770420499886830861991402236079309118617046162137790374623727548137281124748541216944929639510739076843563876635545689331722536522599733289840011990174378644601490570209416885137078598639347425205918089455586971486242248582124256646384034963800552302742249980319832752377781503671926505266054540024737012062490706503139838800920456432552837294883669935963792099991486610414279343081201877971610076176041952552450858064416465962131200192973483942904275315366759978920732852879405820105292979471137144027989356182587683018392998103536262962024122391520698915776674638432809003014071935441950434040736839759309116688851027559629555948699608699160891367580688200636513454079847862893474552843786579132772276046486758794562457527246392298215015758710715562848392281985777081164868479225086403137644912308724869642327708019035699518890146165429120243946207186111033519712480513464437754659027948446992572354296766039069024782705656068049083219034330449425955339256996639760563328810098572095826271441692335961676832737069132292894328274143153363006765899827077528924410032964898651490054057571907859025363513583030273097871816490251429552801512632685549904877448411768366087930735446485907512656171487278065190472259876680530565385749091351673040328607589131801299776488840745520076630302400115816766314227683075216501055454991479754681568544933167584222966901835151459527102435951790067573602995929060426132685958342652178612707082842027969472110074268703248800698693909750323959482761220107547323999051262314456651134526965224025286938646181740986012453061579653740089539651513631642153691351062725586968522823891501403657260663198265872112177882829972570026028524507400956066849761334734483381004771454565877215268806312299414245056192828876132158212090338306944078693682339906203633966645061529701504039083223173432625944963397904140612545600317044025744697355594677948445552552646958576614653178207130926083000669735085851752651791718072716308010398036864818946216261645542047384822317385518092583061620590870398403180902772312700574146412543186465170537584031772252488510625267152140893433219570090971444005274179301481832817562333919940803265908822382339670822878537311599069724094557466513356441905670028704328274576136091266769925560783329096667493195232099788760856146463086798741226304744537707103980220346158462986322454889483452659395207055682979772187171655847457551365627267220511538894361085275315392752624009458395439682922739706325759812850584785241453480969517358335534408375769124194407752743357086467369738919088569542828796112313036970210775364270189729581321777040177757432803231000548285599084567507404917330816997900554532609916352690475043350565965256765922301347540833731897641713765786996905466002683341864911086070485540653006633117017387594592012212150689223470003117425299498998620353554203312634617811752456037151661786208345383826416030146123799822101124563492153104504580416863766457983519634123078950972325959184950354223644857324237871226739117433214971113797496187981408953450917883966276779206659226904392263194361734769682808459751550548808823092988174551258533158348577886111072108718832798915064729484924210929881864123005303191324583686503181143935483018941756272571385563356651989871528466474676870021186386337240230924584934627078923804413789505400014260752508579869781241628647746902910216915654115341983440769556356645279728778931544619687793097514836186511161601567084275774027049886309655151736079013736337622755571860805167140823003363148210268974157163735950115692678453198535649005510944826963596809133086047903212215411376434640913474553886249704817122311759038263688465906023114793460914985902784667835507240195597855884932341853753994398301716703202826291368164986850030287976488249533090413054490775369281269294866497120278462082140744847960739360569436740062566958434790936731225372550007191407104340990570242800530753397420552708458355517567065377928026041896333645915807240939221356222703455369840749831871896311536507465482998962765074717066183212916237387568638714866213356193568175994283921771850813073876026225835425223017635654787306280949334803050698754362998651310241956789051311525493729035719759153962981428132313096833438337396125852470749723779993352885702205638774886962392097663927719827344675740104070434594425065415752457055784376643269066592352608072699333524659207003673652769026147831337606128734417325230546376709295216072365277153685093272332221409810920476719193262667016557386721016009640899336165208908982575646143573744687469594101604116260319428390115682774628840308278432316936002251229198699120963518121167587460380715557568519773434253728516380095023490725243683445643715112377500974752252785831536908511765185152893798517806995046951519125523985570735539332973722639255263547780049144584086667630130278997817327861144475756949466571650909543970745976229868096497876647972973571685855161750826466044051651550148801273394889471637344869083481521827684193428543801725412155225347307548108140750510933416925973890590018627004600341166155908936399385002669941053845279617863825696213265067869104233956662536159536415873994626714374705636943453823854147180586481611666094969578386594800624002173035418066029912956426072573003317365563237827378813745408939859622412164255237636777737026670566483219042210369686322014170339416303473836362125576890412275525272476174462906849997996865308139765693830252597943787200827948116348019629129836205970697294963426540857996099402278552143827243456662591591477140944501058514560032660168538757741038046054766936832132392684138194700485466189559119359191517550191364599627445955229551859169294838031315375517065684527978633210071086066697894986771420924732407138460326218318729311489868395458871821385965541004533211796241610444756059881821174549697218278007193556912404468121270626456421028636759785012413034639201364575806992499283084991982462146776264062417395363516075352444505431510380872953198282884766498274068905930126865592345324421972122914287128819084503508945700345086013738658693281650516191956888173986712223960161068179790182048752781654325342771212067600364258627273942807802713873661674888119962490834003044005575724508007450035629085438116636893905906730765027820680028255282238104856318398417466120831532115199043498191619370936303283098239748778326077162958499548067811366860013297499358657902129817120746201501040291943972433880958207329870968817191152110845514259926506167423355921850057385208165194080669051861069977394311968432517027736111996349890290243282213131617373707398934616813994034383287512745305552937725367931923020526855030601344855092152462137671810930339109550480212044116198434145920887338433196941650269585063883298972635409885731402528864101481324333430762086911810990082639358233189099082455653474000165093826846698374988319721238509569285793568031694108929150129715712726938293971056903504763210888197147442261485676201657385210534483987599321955405653078397846954555067451237627200717574520548420045945552883293491259129452527007683245072872894295024422453569463114470296707691303036467171288571336825809488577095764180093750043388090022133537219074836248045774793398855983283994815738546788807830579935605287387087005938646378553781836599723618932290424115000594908126991727158941147288268364243031888797332861689215628426611592198336552391019173361863829224561260314483651010867246408578315404435961845487205829683953351881535706960822691672571967875873966028228978342862508172445168422730558190959376880174157278209458585806008422140424365136205210854380115948986080726563494989273325594401253474362156053434267059907115433017403850868797244159704236203526492987135293053094731769795856539543422351709967560966320928299260781501283155500509365613669436836294026186356273299970401635128210641548174355197666238644689379948865721355924356773745674242797253029243596767249240937078998670977830102772440353559949053405718652065060982739751487334522882265083996997217754072179589744262247115514503382626261767327854625433751348635511348480658779429119071986271009409564749650802263153903383923783668904074227135445151677227117038083745792067985183567739967566572621650237304564819037095182154565502823878619316541986113720065884922768596325537431040470685662983272580801402795000558227494300930461967449975764502539053989697670456806546310706790101234345898880259450736251377342442715711688385141079580713923672931344723667088677245377271625583443046466400220409688247777224813019345299508082276246629260884987534554224601079710321982916692265721589526668420977313196504586286682056157697009843209862517352760964891391615200138996327677908504415048357416015707469918997113315561979068500943191328162647836229570548364418452987941986187632549293291017989432249804483385844226917285214694399487210156086985775500998592186815805523073437319636739653444899408252228629487092782518296355059860025263332142331296510159302477473115926387995107093792275728675779634061217792534054605905265957030302815470455526874669073482291724604264625265632135060839922233459525303217679166614770885422006691463882673086155902955857937298219416434496279829832444706818069910141709253479159436719717618733083675914395926187839319199521847956319471653124541014271896541638720036607204338785853723981464863432726010297505344478247791725249750242758836283469796278931764292217926285028744453412613726896081093282090821227420617674515090744675590559745279710988638889417112613944109584248093138585300792699986550704529655634445047931826005833176540353571011972930475865664110021918208895674483443013272606612631231172240562814782482734513780662297730837614032770464080373899889717766888235077058912748404694674069670303620782268778145507995848905856300700382109177487036592884831321869902795311294040383664252307121017903003399346646249238969752590112775738969625295166360856467003060832537456523488069736691509532002415477932485255402293538654364671906858734524629021351068925774873589079753600684176791984993045130793730692350347248040029701216187311961427088507272487803103167528829174947669392929102253179479425507873049554705102435201241255629054131796457730666966536595957337938324225057188413550300574972967764227676774961382074456135187370147643635135803173863165572813277551372231279040215712752423213407148878832948138383596928540123623028535414916793408901544834094933755041859206583169896654933251623301876624231315286650353107745835005354150348695072207174530212508014184968742190763987956122456993562279396152464452485031280141736239160057191747580405867672384374348148589981977908588833598687645087253321554924599244229731660635414703362070408594403163807446615820936956196849966744100885246243790869122026582669298638617175956720065904572991938429333652469391461981296187503509647298255410195078433078413889658325744257602061268553039579386933825066307090734672794579730383429296619027987318004405091443345816647987034110555864170428132704427600276857359389986273651618663280725172293174350523520891660987929392950585106142517575298897473259349787598387895265265220436270160325447265775883502383288264881706601106125592956439865978194363851684857649921705651509558335382449648628492076615059782689333003493719606660876939717416083449103233474651010617726887599169468360924556540309429278041805007842784032365984891800585263051026487363364660742378931894055298413931955070178175223601130505285339820988452687795877002820757140089711285859971175016822467623733929230413324453458302648842386161051574824061039943594619821821815033623843981516016709708510498471653108310374515401927652177172075978172932868445300579786165363529513782197582022298744971396416786511528505779357857073278959502033716613424666225211380927358726198256380731607656703824761572991350244850316914100140097667716235956245115691183247718076802980087336110344357437159028546956624865358686398248426494816980502243516971652225284860196737757323044183563360219819156172630744100686141948517085949206402078846275317136246673237754699340937815816478847960140304076103680596256047658522834218796192188841623346534966091118706504692461896435437007633875927005447103790219022612775734750318984131316450600597406368788753028127373530569784688379621532839669393759641337331098819437835440464883696753159311955508831288436355706723358828465226113028305368993652548722290659166773375567700146749849947450565898551437122951804273991744404889834619359641503411765076342512929278095609834249700541909543140490388161747110291504260463346068768766078373839518924325059688606754005800739741465153545605314723015138965044101353057467905693352113871235233482421227622311896504351691170393514766473282446988599997551511020807769624614848523216022727594751488310785810832679005978779053340728533842560540520863451068432330169626474775893497812328301698342375688797235884993004499813437423991967395250658098348496673980210650774035530969825302426602909060280103484525473394464224109385257906681521880425430735939947382040967961544710285154282996349488773537126218836347411630558001166105375725173202791316240854329579498684646814859699949876684047907291580563973267831505192387687216208349848813872658870468947487304676778640112363804535414389141691425617323642111765990649213294973225327196034573593868777655663070897355432314380498375914924057706848067474998744329956531309908382466731508584682423750233207973848896041459718802279426198851273906453738868910223285085611536200898104844549258999679172469951919253481226331180192622811929928357245613855417173721711503485927684535144474660506702714210831036572437342379458348763226828248073686581416388782979813734722024537627788597799634562532628578323920314542702231594527602842190560349943546377677471197673027721960508015227170160873454310113760073675477849766180778070742726675975454073401318754635198258487524867074091592581809754527564106691532967513579313072277976219463018087892071650240345653534895873589398954533397683744378022223696112877398154741333330345731545306061262558777158802735232971595940760346483624435406192573955473755712346830406475909971890542320850732205912361446499118575465012996829680875030214946607254804342540567238915175133617844432116650580029731295659974357859998322335490324510422271629000013054858847491714297318646203544208510874350912682795293755756782123992343488120194394143085291445648881962508436896277744595913929965464393784952948007137853575156654962142950471718985737182139572395070964078033247847361074808947454981731358462429112706607187125300379063495165926275652681807297087041294298240144570931336243867959024831371986315588411535061101026025671081651870202206678167344942076308485131097069586793670300936684061836287712191452059924085379989649982641164960504015743394087958726611484649533860425540012843953847160403412114377495071201338097897457995203283722457395039775410635527746973920998700199170135150244182570702304799966626504371105036446562629868066630797652727418035096243065730391256080355668498739979946794626247702323142391568818011946523236148294100445001282600703071440796813310618588656178416040331552904354679416489264457724039035009405996959577992229100148047024026089151352302972160922225107798420644396277456783386526050248910328243364333619231038586373806277744965872955575314762264528273954784849796634955169790047768542262600720529908790346092992260239975718797903036123124332535824705647292520511901955114321151620670980118421421064455145238576399579561788858028328140684962460838270930721927783587180757138897311718351898271318562215839595674713386111567030553179161537844007596811993953180873206414644152909334952942952879606869932100253903384826986321308805243350477648379149981948743050081989359336739771450618599402123925682081806613960527944186418835068000094039720734642619783647377115756231087476657664780739163632274402273382087868119532639905148688308448420655623010207734194069174024382984689688012425213706755789523348237080232046231860795470835736718936299336636937016686768891135540104019069639563615201059158799317520126350304117958850532395483739912403142699086245949176834864492481096940027958910934496872529040670096997735651742024593664608202315122834023268227959124785998237901088465771792057583960414835893410067147582626766142347336591849618327868877978052174656355710907106969206548880932507058302932654136721923968010809126027952625426719756389641232660195474927297210238347849938297528446930137128509583759093994095960647115060811254300651365280891078897553188306400633559703730364124751583375022873361024696158495136521227422196278709549733686625995542492350119938619193083949193027996750317067986445489749735197005554263687156755352061239742263409788789392970544799062023569627687127063197752673333193674776834897404370038969127118430434310955853203382597060906048185309589838408783173873617654829974255058442915287051163844660244596907871872613194068760042996914164618596643637719732084804858974525123921044857241999615501727171782099423393817633086603268445854769959167822001899637644847458916683350175205538118750923937314802507221711141295951575877192811069010810572943067717956620935245642539451276772225256751478717303440160439100393787359817214463092185112959213307987818239637607492610894191943887811282548461874053137947632910086499894434668905483576887759572114070129176545483462257096063288984524047177802542740883650296827862297607246303055953486550040073155601541229487229372194503457618157413378286971052926034924203645711747897836174028277109332811889898320517630095050391514711062960922280024360748306353426771465571179865824264030851848266375287364123669612174695543012804697346941258526088007164001556551392397873925580567552033314825035180236948201729517990143119740734191408082910609488353820779897999364972672360058335325465319522589736158837432495303382300108169262859702661040345660328318736588283070388484536211161118039127011396928144515640537172001972362079808624563566534230435913351670729248399532617697583471216410234339924910791426764157744125381636517107762719577518702902321490414971541474522646258270847363873428451461756708592141679346880506843103042489141850155359147794944624729150218069695096492292921554200087526382446531449544532129538570784626764099813443880152882080388182624578670042629238615559016526620040696047423494204848836437067718014382384522014680806170254911514927345596847555252181460980849994742729631437575425311109199865341051094318718581335760455564893523936099141932752431338724361184359899454304437322881807517541945687334781313065359776717015843704438234900163914606371077225310152728960229517064890828604010419705487249096892994065155196499516810268248997614188529055543919870006086363998360131315361888614908844510957979915052736451470410221261350451173195541139410815388524309593667006838249431954803751517018568979679927320055485961333738652949378974143411046544889205784313817877676007191001855246519639579628372859135027925141041089197757449326684519792723906125215858518019931566229078981125117564139571049794801326920188017399614161412590128311088135089406515899150450952213158790501134387106730613978847339149514121045222859223798311674289035924476024681550549016909844748270558618793888545906430190317353500045184370862049785616442784435891452039132699112760360868720906778598162561359390552139356943978421082704652407912108325351281098695824543254591867178221837808745350498143462244820052082762464697377316036677883231654734418280561529521523976743057738542488111970628325705861573215475145774017196549968000727938445606327306271177337071497496989254943393016824931396166343119311165211492131653798433931700506243532500490978335897734424637817642937479068309913226816122871113113559526918985314376028694688528782509566354507438741914998764768031464235817706286305210408126041721033490848877303693477672791528002183627269229943098131058190230162697385386356923569274907003533570251031069766793683227243819053579783064307789883409265939993277119739588756651838313974502423409086474748262389498800671759785598748568563917004084726359465065777811368301942276866323066762476360763496552627775352285826446442157383904938347590145668497118632391376778650372131058927040601983183507056406414937305564365222769094835918795070283807697765183544831610211304889807977703875381964850913059626412258257695199138131343121155778945905197701772043161639304209517810342800325482201623680357172782728921097079232776773193161929224960134757964729118978266135476374302308272351115024710011060527656765221666639562249222322933108029007251915852140046485215653463657773731929586883514021502095500586523641667340645893836081757558297637544064194712600571892689271095743594752696965365926122507102603661203886143678754056275100459148988548281403417968185528914142934172461319885117321854789909388125433017473163369090543765102796116160727552334688013744595315795120646665151800688194009538117686928683767963692757570471877742743592317922135507225222696879752465250132112191664330298312215607888114391588449965945801052170669760448583328653910259467590345239962127011326521525752619107192610317651671476646092920514921775725443335399065477596387614996045201576512894461138056959956569177472561069274594397090156730908109163658954227614734620201742502155066337994593370247990821998334943871929756014005295299224182418599177801107289342130362797988251520274313697789060523763083758735869646768745783470991403401272972275580754952520146049148317143265017028531829214057980801970142089247090891168757788447360274725994990896202375306785780493209799101973615250196976318072701669888109479321588587246494856546232618418435417944715596122394102396517541144732584558348225408195797571076645986106999304249133853493935581713027929308910794630761338808398776639858114551898922424659127366750016966690857458695765124829775679281357721857282543581070053511153619085376532197325753708917889318518523847066119220770186070746958203159645004975356272585154565294808112348547506365013563248161872724112305520379718256996488399499253886961123063904157442444940212723995019275595488493572551500756090051016879093297328160790888495476112612734928071994302458970188138999651678837498655859266244471315944869783852248570356318394852610444739483269941717579102088352736258533385509687963918429462411962288089266174181156794301478083187856163266424762996006669950198902728242940986583147464794385115386626760070370136455244809882416495250916256587086703647877666089665995017728927413299810456183014570752870095205334606916830360534864982478627849467480841164493468318814857931500666098452046550095169034683739206139741881725318470132772388542705586637971870099134838002389098684533128718435237989795193444792365111842423683460737976504221745975498611767245605634706109240535648515354590379546950495628958678666809254346055050447244373989017527219269332197819403711513749955284547709090100054193143028759459178181433076516600085504628347309123885370393551980789000512086058941941224882239752042578171323928660328798411165107409379989810313932911453792561914218333223975579491449953044101763581217426608951952121753801589611332008403272477930004135103682030753478541063852322196620834273994331382359718297543196641774992744576426471644455000072861322085411102702162207915930183481648670800319460322643266029527979234531620504006587144914252107433488862918667384937408383796343110000935728947116194311410243260617969852499984563209090574854917354080034732468798060385953380239966617792395416870879788582915716821011403436010999011218021015250076556855329048988361288602685281674041449417767739748619356511545585432133918020471432531650053941491422013822194329902523325996652893055506248536913865781795319442041737697966979709772485114121600986877096265452916113716466555762584168368518251382093660583876061781311085895698139352301950868575443025510528388099800651730699227594723023533449040556693784231852339403887238031189681443313840375015728656416514143772088840637340934926805356817796543209881992855278514112194447204453900656625298192449925220233191612065351879763870092647468257138015592556414572151982358441807584494108990874279573283945857110532590711164773541933825777781079239537312445195669282894700384827100957735410631387896457484047433255770789604248602588773086369077407600600681288636202530720133067342091185439452874369064919815355430823519310963907611431966839039892913229616555909211597425106799934639076921314411202202476733860435797335363062660782123218139944040285278936143578721543479829210338564649104942706690873494147600961558618410411220345907073287851031585438940168319463630505654875603885132106763419091483728561567402576728817319352881248339873652890674755595288656524579608700428279467616641538013675678888596991160025447971605133842282472490077596732763794588653838556202737905637106860846704431764553208411076964967914281950914653676028131971605250308438745037895744085844519030338326204183364006777821149897286932530349281375349793089790332211344402299554155006941680692536566964954396630173597391371466339304374742304912690881960191832757087806257257539185604784264650133601173012248743869400684218430960848777114874765297248942929441266798191446052414272624654651572513694535934214666046487403132536717581002227972752450368088102548938785778124979501976468774640901165270619299312667772830304178417180292927818626688135253342415824276672830589274257701645100630610319400430119418255952326011922963277184187103553461455197768989266985709786328464658074706989882349889930672961689527037644259946314010938545096863480361059454293352452072402534073918494708274844932523099063901892401565185504375035079906356375141928632926576312924960107920591384472866144713725280639891562431319330031147556403069715707962657579573111782146880031937869198985771410535179843273943899816553969636557594036522151478649228971996526607012591835757345398497792942603347184909314198298773922928883216411745053858084220567796963404106118386676473870791417908011895029711839609388573674863518378771317040485764225981244617748007237838538833993508261524969966428383321534790094379493583339977452613659552342929351563387432090196245391263385316813988804881586572492940413294388844668834554215489137276591692823192145021353014814031628801266429444845934641599540553630792835565793261365178041824519684583504118284909792599956678432401716013943343440069142258620589953963639249463766574388842943523787840618032705445156318187301048898228099305045510160922270353685362750542002023220590330588105292768626379781087249512979177648888712547188335539129478762038154774482837572386488357477977438081690131188425091588245556485025433754961424696952439180397232321902694191841998056085070509853950010998163668618554618564143156872928142919299092353633267664594037201443036359715492592557210067596070365970479880603717219681245297440095885762317744835366120991646275667907711667672505595267063938555305280206088120200399379112952679249978603838658197041079164889575905932008352192123306737811017208604331477046348534137079407033848521725644617618084434862400877095215318668899683775290873069851255459179186305771918189702588209829833047164198169929870375785330621101057507769077255586471816979933326358979752391904073141572956351602874814038537410359751130931232430288363562375629026884744370852415909325738012970326037689958419152788172418595198065481358622449989932139030297679537178996634442125010442073193233277354810476387101529320373836743174190770836370284033945387653002783863337382402968641124106519421647541434192888527402847565019574674868529909838616122632871733837783357233662448916996903880539174962496594175159629837179660966090261865350635086748045807238343502519122521363282454525754312479563721545455938175492739130085386359586922112440714700837662967326590565068481125900804187702113450045139050383598036581408031432050327644249603125721731964944040411763085367330259126261355926020204146565241645301441584944049762782180970384520265725127516003912365699254022148018090933644080990114284266221155187081646382594119976933807778245236592516888447078802375766810775984267108898936064019185123042584827555058332070520081838427203380291320277647034330546279233747062241056464729530219316607437878725862987025197399321882541624021985313097274533956897335990323399831016027784929002105676573925599529591390344895289514167802731830110838594160657954155654346118545136900723069183670267902821513871916464429756875777000902715552587934730507361943638974111596098733695059708455568006389333497092422518256426052534578992195283788136361548553888756593906031044631958440245256272569569434294287990309568854352245223675349998498165805282295348247142249896618634376213547478770743033661865245255291125252427084034653354248462582202681502263651397840210613708303904642358733425035977136812894613704806758880486169423774837371905020537797457324470142665792494850127650391410054242930750566028218716657610563092492030021357993188972425862738811185064867203075054470484792806606788030969297439368944213315606557640957522315928572827803080398396540827217690896895717823160073208732074941627509513125202418349121371883908369871694091246561892543795148865588932614948554507243242133130741269229977991606139845959505967674050032098211302574425978070264109553854060978580278968634291580695222475232499531648728695744036043826666991359586452835199793597450005900383504207635983100264799051717286323015863386209420142951816555480223299493727395460885509704361856348711334476459759427490053248816329139982431650139441079830764967334679071007561528557662383582281709492121980240244863813424366516040855990584589744384274060744292566687738742780665421979186040498780274112798470007812298505753750396048685279540637513141616217350512870015376772568309588219492318265906342800117647894374365306765403265524988787131871383781247803538028604152556992084952899536955039564642968287869707490007905829262627049852993628535515700452575362607037943611118015908015852899678185637914591048823553338562805760851884077753048311919418106722035951709349895419364413716436006764299191282250135058019356972039529400380348310615129445194802264156238012872792962117159477352682375313107001372891383457124368989246618922043168144053374156812971567193662731545780933523539035737566483709377429960620661376067055454259345242529972634307329998847634428271279834235952200186716880960832980268189802368351657579924738617123396726436358508394533229424939137529497701953386833384349852418807528455973265816026208842110357510366368630101454924260257981099814069933682149175815341707689367635492648812345626009765079954451502542520464657066107564897470617492652594822390582938485050701844683851739295365353629198170643369631918949937707569976158689222307656316508371163990372753610149945652257295080641698565577434906303022807254983550798111792838458355227164045649550712403811956903535317580074069456834045296928387574767714740181977685148753139045449146533839556576892588845990578693198836086122197221133043767169001308829685173914358604242734251135443394612232434076293598592014490964962721910393262870551500562035111421193038620196980425301294175621493512751088155055662470407821671839884164739118413180562399278696872736507665803717407531668050064364712812285871380502599861389374392307808334980980930453113264585655062618048952548559560035655676925795181598829829696827960059206512405065089318929048844957830748956870445120689294637086610952634150476633358950337708601686701347398728625138975590406673260390401488845727232540039714078944655304131753794631576283168704838473016350478085138453091635352514435450623006350730834249948663989013993226037192925004213217678833261460026186970094229587158463609903324837520456241182764825793450475262714869959640807939610653285515773265008659750056421344157325126221141499568712729726035148673837456969912029220704527221211455339693948260026365462689119965908136351647938122368764682782134029389237577849706693942877251900441820291189852065327962922483750103351018988547723532801145141915119589988156896498188085420043938427816590453655877133336274108729709391021755421909283579978876278201912916337777254732424969504256757913462371924634266533665412737491057683951259043836158495442056658809403932839836905014450140876216448778150602649346218904710811042767640948688025616327060593388975553038293550885419595614200614307961178128890615550087637867119396283450363115925644633987498755943838643086223986282010592236977911389614484354664199517854929279776454560855808700103396509049796649285140400654052550777751737220787834360702972423115374646101041049432248785038195666138295452650097499833507324732417038683428174507586005758899744762158592867746621832638581272649768676252953434209429594291659243308788873156490479829995379613174890890463485663795067247321841024806924402209747371069696413781257387212123351110385528149986048070133173898568589299560706880996057749245596023394674946647704306185040482619277175455120505455853325046137968098087478396447421552278585074315111346973729983835051273529495299239256835287704781153774366139105782425243586495234876713750147942904576037290768631696086644483087115311749642874567653691554180049607219587907305404035982249873870394274503792478960486681171448955526354506388331320399747256876061376507072778496672454178632346463884803001262164759100192428086624478348959904167333582900484157596702327069180243673775626492093793668104442373119745373378231969049795000566419551040631446711646940868377092136149090026414729559963587149520284509496452330811962985981007729456120315489862984777406186267301933072558620278300711814708834207170100359711061365388363859033004460627817125163316477740224148605559912117639297800661608402349509900878706157474951677354652944481981581821296852324760286918430224619263972015064823223211253910483746032849627423323986473178375907842644299748510735811406508652257503936770799621128158666227748722305004985797790882099005547996170286497693263538302992273542285636398788530046976581315951772997449180077105399241514981077607673946530379801395147366718020447953057978313921098356487106454325668690838513512480721979700845289261970652898895725970601303571723520190544407111805008100839146799359400255345591221786182447024220402118911941803396894355074875139757804032666165980060228768801614539130231124471786380427111498756322174183648213499585827822826474435349747034584527660903524918538212485951507430393727984356488703319709349359645739788326760327411967584803024845936531158458323197972771181368852602972006047594832188545107095398251494595537647976224790473425366220589962137538440447092359729438691418262893301848186066879868379011365684137186186158018360306403672041020506148872287653418637334122428281127776609842105621067459077491681144664703494038621604758120756992452602659873237812885140489936976479360853003872897232156378917117308005534581253613637523937808296067411259896332713829846380959808235353475202443350349253843964456557170778209436119465166854200358935726439338576720961534432745462773898840359071299498033358599450070764405052796166563605876386677024197054910730406957401944680874748330073677314502681597176777703645749414948158041504281998268828483201384779864402384171612872832813294910850781743598161142810944282449299210322546733407045389487834157564370592064207859282794390066388514974565648735488417122974578043066058939386942308345778219799767653077155171716217769108636367887453235865651738777432282225700480800793412288142866185184743249453739615158803005422131419139292556540432839837780332471332146430378255235493391831667464457403644874786789525180860744182910763201305039440834917931176071138813236940062588669501905672402164818768181724402737445869359363812162120708353870972966395860749081470075111617362451015816541258824579636960975383170731767567959887215780692625267804454111874214078720792819673076267928306927420985864681975282795686057671814448759036709950774390185888854176617441876155252872154025489287261196990269910037516098185286287730453898575265558376179301717084632826000416407922981918525963622161914658020881535850510557208420652873271726809509268630865100734572951099479316689023145425626546969673563671634014989832010072107358639085616576080139704354988311028902587045628484626838034988823834211791012844491937795024716767147482533613254576143147079487182568732442381369363259916390307686838710274638723612101463441969341296711258851760642851746513515665134039197822879507041429989766227111218893115955602918090384482013657714339719271908118483645983889025973867232829826569613424003660551810722057451336218588065508695553211824926488366082598693499299892850129586302769407502666294567333086586261974559276407115843008505582574188888565643154108129337167432076842721971547867396939413008433165366967419751141500369591894442767780316890812168629464860321606517417636663287142707316311967702518453891617394436410846149774702310541292104962286855980995416983323531912023145059134596091807301238473843190145270694054674360558314762978639203583626782424490239920583746693332404419029559051764326180464298586070473704498729413453271013126695390821412345023864676266969838094803015118241782974672031154221293462950080333175519301260948437365230546729936880439702996886845282916701458203533632969445360356312344342792391533389613292856287106794305072197236528191078223663997336212923523919732024234821084261550219393573978592329879801843853003791047427924556389092464973287225109134099992037079113595708923737234003782784711896706175983625998908822791873897423702568370351673106970689769358113121106093365581643126377005934830934011787089972145229275969453056672465966273118068219064626720263096436358077497931685255247442010892736414416966300554938537311573991247947750647217136344995496623951611355055829734114594234361061320763337576444986516605772916266846269409977955243464444619654874065977313597004338896000820157828708178895209778033174080525880627842358590725125743896354000325180155210912226013069700284057467077374929608247083257988455037064880955811021154076124068051158709547531026940958913252227634152141470461363247467221896196620218126334589297811042400916195772013224152095661852744679925672012346793485973288745891705850198010404904565654161051609051838278001447310545812831655957748329386448899997855850756835469366366538366257769550959137676047144653514924260542865822666385648454898799177015902658224826431267432584339322784299056883693834790383939606984295628122019557281179329587088000320668489239231520766217125730647642398040413721115317827424107938923336421538843453552959844783436399749901435366514744587075784801004768840043047950526946120178957605110189984360712066396766063748685201419300059280339086043863722088699265608254947169300316163890529129068693844618273480247605063270659198324259136325563246292301799022664947978941631458927384997973303646053791488272974538893630550276160763601571941059756226521081007514628621845742870622313427578579765342996451924865609055897922188564463766148934439161113752700888547219850290258815749074928167532491189092939023170522105063550912374662748752725799642785765636080491820180613045833592871071705002398226900667728472948169603897014310995790953820398129981108955136279379318315435947754652825622612998722442526890663330804356611937913356661167222317211148443323648349202573403073752554748458697088102219115688556569623674727934157183472403037555554899088864733376574839394283452849718945992485442948253559390690889626859114860011745958173246204055381447977662193781577445064334438291247384722022575648209570832203616564680769697313439676281349211229281519726320943017732356171699269394406819246947685453038783044861463297984925452474328506805145825257188286076078351018191206772377487003425446233757281592293017361958133209761840003490793380477959632699468330352016883215442290932148935405408418573741032400943327195537942229915725249015468298881446935106833159613064420558484678449484333916044801255462128310251175889273792066260386155590434525819990565648124925668869385749019495908841193860723418452904671450958501179101900411076843299303757246474456652198659038487165419789514835220051269746052261858597833614984209225806593048933512537452315005312350759439781127996422808815443594187420132976971975526997868400456406481582995881842533770380871137715138605786430483303462598200947263678113742796779408602289313646393559480233442322515432003241835187889948559423677006710960434928304245504273342889217271391312874532365060496842684887374487472668176973567408343727150099930784295242296988102477713057091124185593699945763412882329106813129618632127840767218964526695455070007713989061478716358308834223175753311324826233704641332898816023405842007648682240377277738170535458220309682185133027618055250459743988280802224860012311153128707799212328317149852380781102394110535990052178820393352287481420780249741541121304051363237205405227492783652212319301765508060543874283919956121416113314820059386480683010733889090383634517485478398430460227872584614733128791397267202836662844683178056922279025663472505776309401153672055250274281506097108327375026398585593769811308352577030057764603405463792017919778550190291911441384682601581714609107192935186199848097399983159351436773147594093339260882550382302991007144829471541245586943105222059145103509870821077430099278983544970868074249377289254073151081497929283532624922571780471934392796660230175096007043435843040799163705231194004205803964962075088877523121261871224204355529537227972344971315508901298278560827197865382834412158955964674127876412908039078571333853600458643718908309767291307667085622257786547629284072410601761150904331983298616848388598254111624254392248978152868452983338102327510820544668736909208349473728414673020629882638842504942131714157911600204721925524457398103209389077198307153797356689038361941940889203227637443866117555103144826849333919868276516048530214324995784087861036596841184588053604598142657005367593350536649278300469551518815306970310544356598937879192677243847360424058166755038032140221521309810930800932757501169836288874339373089334585479579215994029104753465516854492190832901088406692621896835417070667108126999625011266319457070881205288740465961095623684694386757062811055097077152234420537702810587114083391603771272207774785815489773748666282417993839638966327087929442893258794475495531702682643918792758631287463794819105221084633293585961436205250797242641026074267149517606295878227886458708446137360696799700122835490801962013560428069584009685458757776249223466874648473565535308259953633886585487760841253443067202352328994575815326887525572842937191431718323029288218314489648763381909871462236080048727147372635834216571454064073714243746205143248453060248411485757663677746538243497698975429867727714233050700873028017999201073766907560519822456053949365301633895308596220585629314323809410327703246346865583424079777677088522114233613521956232568075176645388743377486528573242442479826007330684384868321129651200091553208741401307618554735737438320856522111558004877654851841939110990057936356140634755665356555296849961228553663308968846297153952477491222013220790093890955130667779291286612357889179023807456520515731555163408053390561577512012443673695531903255019197646024335084451260059718531460167720215833073311321072949630685047448702576508926077146453346666429279229939013104731018993499505103953576160834407895143867591111185901595217002539663976274149794669986237310101750902627128306356121492478943749910494956160575715998973965074104746014537935909549937811363204353935330348404731807464418126518298381254376615770452040893787866690544051688991484916196558594800487462343266225585365995139298844003186529251599522494634650806011797796606327072616255003940814715288306053098305919440143383380667714735558744285249434198050848959033231947274274991791022691781663435346274846606862270518678888635595702873642678912119255300391994926695228782301815365124939220016501529731491297205570928646413445490062476405648945196768881737021703239653835422932666207071075015021668380934997408889970561245233852069812901690765241772745825254088938200643557013422624576519092680822613904877299061050294446276076945473036516201884516790219568927597231748898775703454061071964065721405199707441310240979104740237062689239805555558525600521511519642308972529893305434226634317200993347195449029468686145007182306260744311322401016298769732318422088743172084194558017003288677448696544251546125123523392626789635577856844249630248002854117769673654232930572749147543757414535321510160261569100937226912349846432623064164437001546338755369054595853431425495976068266853242022622713332141103013081553739628327806533152913613134966261534051181703275084262613984144476880034909516613321013187672414331461652350732867430896650319309773664087086025153620816682276992845121154677882181381278671134019516311589167636995005437458595087150196681413876335377334203086885723675425469929784715957415415127577333285301424049569068260062022525203681973320047242088937954871702086886907691898268123202415932395018667334247930960505815100969825231566520732645102936402290381166404969588314789015210558706655690278491153846686204658392571447610992595659166716411655567887930089525646522979318535755140669436908965048277677489398047108761433233102582592494160641683868538838292466352388550449539795499352825228032334868751261273310957575631208666089894904235468801480003104948145263438889760417599901206742032859057740032007100124667037340723569228951019709650679766449415140851457360055972712728117941398331968561614508551002231470572827218184096508141851510201775027846396020196770149692724935436503731401907727845985836541023000562992286444496016601161112718097069438723825589639121766798977320817583283272401629424687278728548456559451652249110917772671954468580708851971152850940320665407472655299973900903974789968456191520370750220658032610334900183735186461882121424597345635398307676527808667814735020975832963974161172184763159239489857675843315537919392290590785500184483138037660135168775026063617153117436595479471455841952990936266735956813651492455385386333710321216154031916875897826502378820569585897958116015800561665545821331745071560499768190315583992811518550694823313517550735485151484088122240865789907955270295020170702674635789599830008815066830182681855767668677326279376613941395169378515391351969146015371283239166360245585173769236463490686591949460016906547661968345534674041563385110923418121826608229543694786736917226900221302171918247836042598242300184376842878491802390402504331059873218685799575200237007239411150828141338707781790813767782900844704485344911737663297076414457081393879676590182990638407997009371223718090568093454544213402831845312137692930356537053586975122268600566868873431653724969705352280472594504132210078203229442453151028496466039488103396842025296363916633381695392177658038969445710379462675477823149015921472274394944477613296881544755144696675037674047507864087603394439642377345171701658342424794449969051238140634133528687654359531085879837977421690846484183049464755954469030256633044473019146174064976426890717330670619469989585711092804239786108424646580362592445454835587683696334745711963700427970226255397147504107113640646183083962779470247920480234956277760834374550683068756373033997858061795805918309766736049686709138387369149298961365281050069081691426971273493220589534573247870930326042901478795880075385396300328549587402316365517636255079998079786084304736384198299116005907715708383858637591186643858940246532063562658838513809507274334594851933930873394504566161075546887408709497375330647939005443800377845233220369218202611465756609896919869810208698708143505897200285357627875852047808530318519387591312887215025057113478586092413764687924906374020437578081134680930893420529219552538245927195603386862821523088395465444159806598863694999692666545485332022076779206391141729027075411539832412203955027990942781425058530053239263045999812969377725191613464843359069445354951727425717207257822264713121742850529100441808722108934284769365933259660534001602453010741773177378201406507297077716161322647960196864232267094688619876780197459132506488173863784139542913655660669158053116630485964530956546846898980111944204249805337904040042609387850539180292874584820213481856035496611460997066404865980829821823757518777398215536530720995598227218518729471008147824235980707040836958496123109122346497466857576392741869444968417425214828818872295384310940436116005284206425347595641568326092154233088287030682816730618603400881496020459373803231565374720313346912522199466765841970899094194412520875713504240044958738363563104081209710351214690907349543397726830983555819783818146770345186815473314800884785632364932052988011661696344372083293353342576402020719977044674472278714046414665505502527646431569216279282553640000123330099035929603195852420521041607769068714569935185999265428805046276472560928705211225962788372145230277124762750466157012122110627550420139626186376958585875344283717989721130926922051567175447972086525830923443395505896210716746222252543383953287031671132053305905230617907634814097431442303418296230584766903597523222091585765414826202598696101937099978400919486730519476284114685798588987665379415343106169917141484514002382025957355076849952485479532799137831084118392813797167173523677231471040252829337808959501318305831769139243255915656705785872513799589509003698076175101181108372924774657277941059060783032140871080554944650241377602671553561977921027452418864454379491280425333750840910583731971249175851544809085170282048791434218489786924986650258210359504800903570991074452080950149523329314952140148665919016142897489178423627460536561634400720277904669411730212446042160295036541973611133276957995759424797744753085269468198154431805429100548912427443086754874422545464641920176879562276251209748440966540208399231132208393857304331296381487138016159191061368852312365972820543819640901263828302644269793682087273961518991811064699413947996163534762598597987018959894860796879887813235002471952638250626597462342334865564939289500321265203717706224511950265524730816515956860548290522243563643617996813457630596921627327926517821823610012503929510130999736232003282971103308164208618711935080205612847232074260712366252331067925315983127345509652781450361573122377514782035834636837124493378134393652372486619269276102265417849484772332311974534586576178347753231076741124747420882692595851906462430118812182070495829579095274343700687128834543387805720083541581673453521818677537422969852885144628332776414069507492951377108677167362860879953447482672765670526126080275950987708259270516868101994279204563537448323045331363695383691033988979696143041782125583473105733906467642101297205631759334725640922016682272957467354719329910634694324484476078238266793263744481841515402765172799533949226031688747508932334298616068225119424076273200071530661820336581172356806386108636546348545149001623727064191230981668170769622881568089504314207442673095944921695206770514672452805519082748504937944302604386387057581115108535258780755103424784676992252449379000247555961375742979269853619533154309772218034122647112645639569659392706488131671035529799482595818041344578780483494136496217913794588352690325268789180501087625093644549803265127441749919227496060110606405081726442155076900675128917157256710762952758367709610542285029545286654845619728259180663130330523421288951342624525640478385449812088015583899537959528187964495095234217987620441405136499344708229874054705826146269817030392991927238468836713399878234623683211515696168837421542455376126693848069457584962028345367052100698687653926571573916412398609671022663999043326057851774559168050088729661946912835661325108008819226857145298419672478406921025160306798469418716982625467088832222341619028610133468262856730693976399810881593789478739105259412130178457427402752325591008129508513722378124762911479333277692903190655894642186091210863907629998391974670210122734169582570129756529465945962443275403906067323210619431923070953279196701893114355211277808278453386117753025635870051535727490460783624003441301513258352261582668870640288188739902911012418533931850224420354373449487973897976908739655721586819380112400939447647782163655055853695500781704678432452688884335557295033142357449070645000015722270714202311580456961159975156972114575669261081864313769563356230481203021330582130762330762536626674028087711549626415634649056878448869556891431318900206761804936014968804322548235496694657270502842999958958189598835143109514644957006248115240641587816158130807266597193419061693105548775975445174398418203970969018632261808701051253011304775290120409379322034416059082204140417013423653378607111574134682788364050727108491720687061468466590551479408234459543541596097586795394273753026799000724419698501233604430493809973659722779824042732540873802598048105366190734325404395947217701714946885542266596645065556232512928958478670369301475137730388213526642802306887113421930714832760995740955570716006844574616838094330479233110349366982654596542006329489772462240424303206649039087506679288804929825794350402910181612906880562358460994482692431497021713375782930007771092706370903545434186331363446882540546697646078328461972197189944764826155959098647405821678867510499649281149820398213492036972126818216787848988626947474269810185315077614702850583513798593423880866884372090961907356549009858696279693150980425744820033585238207570256125863769908359847452485265204197716118264584300864871450290552563475703306435115610047756027808519582023523783070608017163577375883667421386951544749966304901741841076140295870114268109144733801645634821779287559829005200546890754273482707315163996143211744096446648609075626353709474513425995493037410433784703523862941921963176355297775631369988903266717384991981647192464491034901504374068204904397087982227749941719167722906213266803819277168000764181210849164640425734435349139621007332310252383610234323326354772396033210734039154726947073156556866187201247382201863661217803313068488468846514025825656887953544459899912721704035457425497918874240938701167454398513058440986164752595459885508676641595235414072615898885319021099580770435372654741586908838032730718598160151999732159789698956714761863951853192103355545666198299110832316461930474539063084189516608179325941009500325742737808822390205435539495054727997755200494216284224921197401214749597041114002083936899546657432555628461055156191904689656515474946834888903735900434341670891746005981751385509173071016997124752858931376662061287287585777067046896937146704989105072849918426570144243022293717858526015900710762108786524112730634613118478346335123626210489568750190265299460957360657638643168979239356563812430403390103357909629658802081110169034903486880880144531377871276544024874385648647251178591008054307635929991184849567659084348254088677652436847435503411510440864046114748650552392211673296078612640779752606254555784675678205137775644867061742146121791325227999469471792009198887987122516780468682641451124928252395330195602594450482098831172648099493069843852296266759713560226984979308757307372239540545669511648309416783241713178715697687375088841754429065877724938836504466288337003418756657024557622869629802079648354961463536271680880941632310786259933422818231416489246179681271744507010491298767733203316740634732840850277624470738500094666236032503684589311192071916774553635828561511030519361622891358348334067533700659700472609995939796248971262512461189930109872086337959193037335429490893205544684199077062442806927750388775207441736991207741299857010703530856693011887532123479394558236471967081317486553720565661687346455441307175348375450459448645822894628315472289573827107252018578066339503398173371435277794820335672070296353386551428638123990451646653098802762016362138339667228346801100007434728000202058565200485197318337883696779910897493330048496084075758991251893150332895265876248986290272343228401570603059605189979022005505845698566029065240368362353844991715321455517702905965189887537098854724123081594723540075564822419787341005519310404464413178180025133714175335628905234143467879709537976961933124073518399956839806721302710677937287611318378762652393603450260735231189770140975243106819851117720877455450207280634353688969440975413239084957928891285994692743737934026290891080450707857165737387429696604426255168271485114175191059153993140404718384150972792431142306687100161160082154611875643137842082322910346483428161036702029441863887634052696253220277892402770573676131697771060034544651592976688381296077868023769943887830985898949745892346618338387861818593651069560810229629787352326214834748552662654544481376086117943791912328790782825863747161643800112915089000650392503523179652627458456597439837955079366932965498787479421334305355173609149070138604185724905028217812013130671765997821242049998384687014681014117589334657514186914246207592589596354551340444520580502242192113994362488920030438500956351774432796026663014955688983928692461553028855921211598616149827883015581148575401589002480896740258872537029558736092412965592901899569745220906719411837290551438349155768384462842995100020183286708003856069813574705624206680433069134839441943911304643248799900692805201032951126690624113077085074508864752524010112145833897443558032678436287972767663125089001155227284759626753211433309251794770568003934619643151498188478351148677340631262613053376873443365719885280532095605077037753366471422318010026841006520497458985916781944626810570849444818914107226227087597706157357028005072571124285417258376138338434494869524352230637601124706051792098392120701336379597363327607934764400911443716089640482221009847699885209505911653230907848793984025522155868225207442006826133160991870128328573903138232818268406037062629397982940896650552279262048028143187286799517296220820580274747806286782239657107943334381378486096212404932098441532246321040291413630921984323851211540581886570762089152007007437331285629572274701835034457790207585724285990842841898283925609702449631290746907655613819382079445240352062826633499927959467136202864659376308989244565355387391539110572079656359747995611491675602281117198089536515699780189634249860160157346351952029661830825395045640699108659871787003048364066520752448123917446713610667419242412299670418482211082841029595516952291202629554187030257752000349794885738785087250113259112406350249021275208508756442951263123880476273481321073383028260492795280762814539378260428844958789167697064517939279276054364395632870559778300146383686581692158789294744284771936110078643299458166477108212105733087629296558596984406759835129669926872701206740790824216931358554784290267779597163993002266403582512129376294313173095131041182228472111861642978646348473618874396931014525772231289692171243411778610917063083007885707154530496176855755571300609039289883935385604005187806947627411087074932209611161307481590469047855903648205665704701488220545801811815171632647824680889581028889410737109165563863657655830521876833605396779084290926482244333761610128287928269683833057914053553372333355512603834479244641390150345997356330187417988397550762213650409760818808042884906203748957265010986749820832110035096615919383343375982687170349589731216363861394588458859592178086104059035894795181248001357244136741391371160709871606191647825202024245356663841690008358187426606258301145583465603930397790201576555219651126946418130825124723959984546668838006925109251239703522643372263021026631901361213075775973104649323349618584510495273319854067967133132915892577504080868922853557119603410028134570229135168971803492355916677732199170564370184096277017617904314416636052065977290368446231752412572626176979279681148178820828598586130506136804444767334759538547399621596971315008244582512047225473494244651533939334047078952784472474005399679929264496081328079131960868783079312408231487831696195264221877781414918166874103773360734913517907273609928487228431094782821179123154909321160300091769398676825358124815960542705535426694009247799032877706877930690857250934782063987723082992502109300110170842665400835076301621444417937487613375469257280541386511598607816795710868683219199556658314697096300151717660045473302464520753476818307645197100966612705426691748339930986650376722667721367824572845878270057233451109568366390407288414383859316640459287245168806152850545044659759269205061862701884746382863073229204608219251544163552407117299319239852791454754128918383931163020619259454346054829052259257545715030704765384148747546755542931330995701745308993448786442965724447543282044569269601834348425267510604796606408047963294260916760796621049616969148318114468458998842071839486008767939162207040433086348924435385927811352300226145752624298418548847352027423721185269141851742949987784214882786224886539118041243817649254095764852696066632164517023067240800378142769374504873981457057218484179066731578892053805930060097189336351994087158945662791236618168931985846307216934219131309678897745428347489254693624335129284196670246275134472103657039868722224506867504300820097452758895778188213629077060337456595300149248572503736343044718708886934616303312877596465927917284278833654565190374597749848171442339172352467872118576724686987633113179767097273872556243144858526691178436199805203823656432446988804208781527217671810396782778710200063686467922762810933855602277983907827028919159155297141299492722253310422216338703856191431951267997165938091489976525634205642352724240652928572525694603296320830244165422290297301151916988171561941978814662937408468219012721816272018988328387699697428083333928817486422244159967867591261451100316073027309810883738886013156672448607094950397750275897596441959742901569431738302169509756100435386994475548167306607399884792248408813120804869287815724770043294857795824011770810947125439939695156806521411958587487495659667314987392601650509263153275926318047953706349722746817881558468974729068334580033988563345102950019523368055586926664527838190217112173977330388208328511084605720717955167225009021249756479490482846218401631226281242383031601825946229573186976087626214223747989569944005886745655548033725090978719357155259414795917229576100808395000904625613778103355405810610964696129726982281798602492907700763831576571867130379102960639426500265391727413639392865478187070828808859217236874570984529393308373728751111066754152304252711594425576281143732872228028177295174817324985960578103103853581140909991982411968107776746992302199017952076785156238883257419828969035444531420343678530360951218265542759646465873550843906902834866728380828081874357781491657164603006610535327969994574529238498617588843956477343346043172971651008727132300668475509495913499978356490533527281941802102914482801614240492161216057729693964767634466476899971975513852187181009153356415534686157583307897859523475686211368406283943672536545193536260573276753806678108632189314687282866122461059587865136429299722710457393694151371881295881912659210175581036419409378113489240460681977458458975026115929388517826485851373017457691556821680992877014337965054960706091098017561761434938069365260484273458081684385752042253128664631027066290676569679146232054904419808014229647631159040619923470577789693711179012112506608774153719472065946317622810119599609964983492895925972330947781033857681950834799054174401196135197627249581941919329869952932793776679639079769890615462361731964266285976001323263372659789441813927462463289312791064972990784206973950478407575099671366858374559582144966360614572348839282289530985880259892235847652544191471000039817009524604093827530352242694724597317855926336877334223977459954114068285557444507999518079887667253751613407587045750391330343137799446317672296830017934902841622487938544494033301046958027422958748841175904086548207212299992266725396790026912901501947572723414902300151989367313757370069391827955798062305342339282791228439781453241465338020470831304127897219145482484712658195834792824119677180287193439785713062293467060885457289075796407399466620385900346771241668232398497615756714675887733596665779064266801327514949837903039452050136795771059830854975261269503668474635213276292750066041777120643675653241934869470252794673560977564486584833788368174554559457383961137146074384392186777779433499935706666288737866038106914642547738343808527456950360021118901514385859483631238999969259319408199544479679384587293961641353741446572904592139292820935514209805303220193340403230511092270793110822147684615753046855457859506334539338783723471297504246009347253642059280361474872801336093476861509957935353602395360228993409112211369938675699340928713298609965992901304073683736525003136685790152715708424292163555795684920968555662828071924608371106131003624251694260532227477976619853570511590814104206318472015872299109095800308409775740251344576504995030200574847269304078925649732923649342239631245104453148481234122108103111166845175269855501763451720813068414575560353566719835231469700371369200937758838169869421825881446128875340406428485582326605031085445938251433863716304025975292227205512528785562381021734205776136907745836614383540996149082713194467872644638814701829049747912579513966005135106815193847427221979589126451924157656969456521697486027675291040664147662884888014728011051274872906278635157839925419506314474550990831526729270542526428595429943774502665061283183031645715330074379339286157520067922259547292699340636611804082034903942359149587435057148784799280658204818060697914723279810209534542774445063541669806196460115172506293170112828992532561125551119439705951581837764209602380813720543830418897268671897170278237416293247478989667330502453709842162683118443709975376961973991093744828792058596497935157288917217843041611338125787220562061676228675890905527657170076900893301639603071947699359945925647239015020080772797675460057674113308514854379941453896097752335048429504142243003780395348359120391088738108606002777514466939339594652756386122884362237096462721817548664931451818261485611280170868070853856872686855701995310425541348108953969053248239759950593544194393713973433861172690029261577106921112941615001806963163551046682845604307858614617818540530470935968280075555410660895329776468799988844225377091946122091813573594593051133529740877760437399363717184178264583782545924698656449998243750161150934091911557349215271374225370431514922828664221182174671999843193754630174042484831985849257298898664592389546238920339511792407153801895355161371834231100528566961145906579623633711084795676986516615517235751651684025572040088472619516223293107662711276205833545392229689752740859698758521990897204824374454247431585581388520029362193617621864727030210078487051592050615195318695998952506397770776929840190483693332282704753457583943005251310803515200365052356709313208388378356086077319809083167554285744453510569790777699572944672036547854009514105685505639792923560078747848843011831984340939783514160226567778158914599046897158216940587736685996132528521825365049502867239101299034342821265652154538223105739251037571760683812939295058435905498357822502873315068016017967519534471034860467397192170664215174208228471927236260033523809181810211838247941834186587855892091731924081766102759847279160819547986674156152833568546661428725468542658441838431324055992387172297907383235322425869821750042294741812214782854018146087902943195967689550919360470649842298244280477587323317244672367363233679498902474035084230300456743392202735136264038716943995568822769715161887792849920286365772973517105181853341098316758411958434387016611741511272194877062087636214954585497204893733816604815178559916170537421330828131182856385935548917285858657274666861117333607845281768771438238385076729990970724115960501798830280697199613738870248260331587387332282008338098783565375748722452333038884926088078067994317681147245731101963012240573491256873389760926058862569368057219998083803573025868904285879747918340031551392423833292569215539087055138589437236158685296827963500302537050393425851713409047603653553192308022398623786087923619990338650923038897721494844115934578580956142047816048950239227814219088049392508801585734620896091163298927073383880999766100552368928894879651004262692464337589034804403501564918738731646592012497486479413725088534017664507588988392971992520612015877340144191328892681990036077876991904918477071478569329450730564736922216285818981825976992091601696097247707543185605735476371617575081643583081072741751435154760606527458091327260387237465819910240440765306091406993949752860949277333964982494096045891812343695747649224406830563269131599281774693413767296666939199479754073314344695255496675355749499760388678879860068121358272078234693278161015188140947945946021478154543164317203631702313065060837801312431190669057198711157610178949698441484210620196606561866853325334029495220058172554058127846067570189246731879224708295745424226983481845841052535945835520262307242528852710130472795691318395293993793713300652453639936726267948952590967603219171269149789744807922689139916724501500991940358053781430739408921179424442250896634614433123187491464008080699396027996658688816965404062332536805976020087090306799235877590692921704036090516822616735305839446084520664941732775260365082235683025831879437796564463324832049933862430927132792249978462375022612343766544365888600056330924578530238582825617659354373515701182609682043166452923265008698534177766111236825375938540023138699482033192303682992574584980129277290805888940650976896774384832200288742654831136290573437357670449967934098953892934114074669235443820648977654765040593056004445208218387203119882292657269059188039466928615516416320208876036819038948780623902628154931995565026992504504453242195785160981045978229855834874392234184956353742687940716781843600378938507271009029858034421670754116572943685847253923003136662847619578347502272222149608538815273346901485309545069889134653221567386144799552270627918745458086993073965422796648831681083649926116161695419287390368474165120777317898760419335147979710669824871706315762950883904817999473671268700080075389516210676676491845062795113857665843241905463580752094855793347187077960567909432219329579268228276063720233610811511399180971578674104268329726540629950868672883453010108677026264055025030703607089190747859558049678013459330336334597667552360139246651888070768510628124684978005433100925651868893277287498453728004217319848869930413181322311196335111868158146835042531063975534226435651666941915762131889980028485723491273186292936601899524483003580719879927833964919022579935860510780218840882342868629138678268623751724743670863983848380136113049674132998830228568513738084051265376138874901979206551607225163994052936504665447816640590879347630278364049223904030090999069779203719868688863439551223918288633770609485554721199919255864879082934598771473394274102177751878837489054653051736399833927098423542099181481645403039866903315889604212235601618651298720680554832503779549020670349976058442354584409717265878849631291550829027956099527977076129262991479359353880939588519456140850227432468687639392387954220211456496917157468516396296388238167304998383436396733639562847888085590862352408573398241730669885969935156160004558440540001270849096250559946950501843071600029270590100363389278762863219694620839038342232372390183230959043687035911486461316444700401528333073545386704570501770391070585908449116982197867639451800151067968332798377580689662926844457844064491230130590237162887000392082207083399886811498017051960484268787131204451908571395487832170676103616304037893802319389019521673266665295811194352207422263696605623145788416721822167130182824259363314485269114514416151097593425644237661679684353141370582006695540975775718610142415842740068460026554217457926996349059335653342587616230635075149018950510165197725566145828714386142792127712380378285523805381082144956670871124745199864678610659940420333383909523574136442808098717055553513747667931056490360123137161348763955755818117944058260905706624622593868531393377894047211161212989058134140743013880543286827128767664176288537578308715693003807483954393204110971802198148026267100371935284310930866238220475859373804261162681767372430438537428173621727416273385573295610107268683538333614935474993847010812186027090031793904538471954565375401346915502473965773945198837867895591982697292240148807617503099564165689120386118677878727945586224981358486786738341771079804572811580930030715476012108377044479102266401454114217148990265136759124345588534663609098189032146963950809396054452530822236343257020028408315663414389212322284037019358829513159547031117854974163999065564298637380628358466413303042135115616304204821286738617286010915800612924626601002936595552510770874405396673895229874632184639543451750528803989509653765458325558032571474357634999660296688549200473552609243785950605674242613522591671460848430188084422758050964935931601288703732845263268297029354026736682714852414151848383483389885717573382791165174100441808396166477108283761002029768415704608692396324757261616378984028516232869042400321754713553359568273594684958951654534899526980503332005557315542682035710991800295705286998119701440816072993474058318293285591722586588552167901223880296819092252209531716912593550996070781505903894231670410122062417464830875963136828212127474371396458769230588388185001449225519087015343612668112163672752062312316209234815817168090348761495132455477191902670310557748748008774374658860148916436696087691718866543301677442773462241771184930004367221271763053382288493607860255669857701949745413554050988337966674034015197694358869840539703080862405931715172421049171915574548027578164421834655106551366334952567120755529912852725873856229153598364910569215541966428887289007585160738778231711436646773253219203961419852077105018389497077419000682212557609330352052878354691151043822644228268077288591944738442117588656447751259354789789312882728715738516594400084802484001889104986755632383217865038831401990237401672916874049050291263584360597649169029500052697118579868122476713064896061914623480085250945071482254998495027605166984433501723635313178617888598322456217152729089088522192863316645691740628148112939580075338568610484172198343038016441460247560816949405544365095806915843704560208368323961922212813470754072170214337722377490091226765222589565991021799876940197589649850889518197514042447738641455176101291456110126478388918636803721216405159588454305911072306292903345056992166415851002764039335324602202430854764467821192001118586128309244623639335494096388801227307272573999503034023225569279632107841661440261850342791173045287634913381346297901071917297939378316265616869635726786713362861364260994334198906352889876468448049808569265288570038458564987704789630280337343368755756937469201564203606276596958911172379134435013038119347575016221174085540386617011865917954361999948499012506848183229210805849440640647232366319557199682999024350798915916785631480542751606660942184393523500889718944352716426135040929041379284695418636135845162678309987152059216574830743877450822216577748587843550373773855469655705769662813975558265886747002897153276881018393541045238570957625597599298687056324205175739328886004432485212189651020009698728610375715069629551706281356188915187105498088037304884025246015780744915438851557891577225931331590256410754241956390007539317817280206448137916814900234330390943580960634878454282843467099970548453258994613506920996297725849311775297698571603272671255611395563204732988647586525714581131303956695854317997467273719791298394279957291670288215223840690669743569896027747490670403976156122809460025014718332008829460752761686769360806062834813802820513089510740959060382144089252060990783798012584506815356159548847072589743747025127053466355462790405173386036749837123800507263702911794551621047533375660777333037703480401109120461681877910690149314257698453885367595337989403555000468865351698731751868991723246930941141164376203759301894941969618458690542919339387810967103254050299970218614747958388970268987217335402361063408212411357370214397324595295575518637243161457032200798799027494235771471201951866873397356825548636130641311117823862693101119719093408892742100511477952760465477672667788814104141653365921611119119499939235341714096156927990812047862538866125653815000008469497189506413186119270931948300451700488921385496562359804229377632804313986360756274457215579678326252766636650547992919960083335751141228698242501275911417815274511177221608928412790241777636204022430437609615046445498044578173289689741288942108744046262952143655918360367900520805473609365953943642953552410382761124655825282646224250745690335481771685595273554931965989681655842912703325605616236305619877087836604604781701031927905112937217190562473348995486260125136708340958963780124750379880109069746917822079419912115404027823969823017237264087769339268643341772659213194842943787094682210170590809054064709448264567927289645430012046492675110190185919961875926136980015971761077175537637540200546331573375663136159257741862976071914399632462860764287908332208048194660342601119384143673357712828648113895163921541493121574366124524865671030222175195556804319477982138112624576052451688140171187987505759632478352004312828004298268898906936833658933643189539174053249933986608211945595826631805312242898276877730516619103158510768429758210603908027798712584643031065882326275478253593750695625618279839119468228387272369926171498272105329261038979574879920942367370572953314503188984569720559629674523661337343451882126764774971689503575371870368617196979836116440747971977636642752306037122067955203908379538432036113255911350119899007522051072509814526335904519860283885311401032939253139395044117697511417242716116462365957597249563579202482726628875862800501450249088404935120539022033690688957587434336575893585421375776287766547870796283805022942074683008082562199111809042608418142183670564928655768392759498995702014080087965071278128466202749953018379936965883693708371798107784141194319991450172017815129281584279731520157560105226291652740276447475126887421524029300169742604772277746824001543375970850290602778563209751072581659575145875222157363180341114098551805121444643819658159048523565208792029105026255975967093719963340599993462791609070968339785900463406252738273260602249899841370962689354782493687248886358063910502497879291888809636824790277327697626420015339218156874520730092468535341467937364497029100921896243907381144681882616505314526146791920303338284911986423282140472778637744695627002484270398651478796109885989888825135545753893373663919942369486285510003469030429281497791601666913977688257916118975183718884463564103372245892596754707303838226575419655002606877953055487192080501803514140673081823388177835475419608428126683236178631139288010716145495808256823116601944817658906762867966218606823538369715541493527441471448167794805495666248045272612940890161377450839440102828856070909533927213789699066093919457761645154129880498944727447944297908113780069223358762415340317718355373656013066522886294633777893507573201570994752986420972057325399370027162130696093651147244711312130152027217588239154946148008579818523420715455677784080497674251319638475148998612061327398718690382944355740882306461984718793439907525685400084014442305140865516377430764699041329205423750011282344407944154667881919516885319154291278611434259052164769289677727341259429578754530002411775097444641580633300709060284581720704281227762561221200619926175417711893554736484708566598834423349405750620292744203750191846607718960573802887758079579092635503929644990220949950819931748317222458490189344319745638638746266946621968436637771818200294207773750026461753796418600734072791812747802023875854350016263495858103221384353342192486846922494022274205635389961214012228368124797234075779505732569175029317399053930552288949382909913274957969734549046071239542580701507760405007103424788681356401047121400883178824273326463244914039939050115951971287763742815645121878151141084654937536126296844276294000188606554383713230749254419019007823626471681719362660749692533798246852310079887753157623828648421805066844234496667205062365511864510924984583257720900205946230313053817449840239629824096922969690005972974751708408777873813735097881675052947042007946460664982593486746545519464974947530609967331822702149740106116185767127182170184016643376183223496396287904344801444190603671793279267086265173579760555399099464874750723553346102845206089823671132206448589030932236102358713688456289045817168890689277405466645515658276609067913739857728776300496685539326482951246357018528956197709191232673871590504964662415391024057347346456771989534630754876252022113450725943595550667929685586465080675971539096516076488929942213573409236389730009611998150719589465652953322016908739888387061543599589857997916365655119607654177545749097066923899253589217217903460606390047124226213565522065651988455658856676367625489883166593825042544089276453980877117001857321593710102120867095061654552930521132936910301369656293364113303343236289556450755119224179394931031233144953527547437969082241860102592958600319339447101212574446146417079187709908618511156761428087381703144400242562811752922057323862250737976485511660092387481415756154524345794151820253871272743951467628959875720772693813949120190869593094281844586890556335964839899136114266020945839334040576509557864700254594371238453666462059222205426869118624948758029326792006486577903641147858123799175726222216630455361484584755334075087290802490719749273314436259078326589247914136592655476922252674190151280394426037236120341996485730100411306365913172104415422886997558890895247435110297065294735704104803773644675032606111988798106930372166710773006220868283871811743049999667669952055887724382652653285663481445275861615284131015788561994135741393212394181544635099991657695809586173068705037713566254700469931223438265654096601910770233151644078595654290127388503517617062765100504032651388940824421736668351725447464020491038542142916381005227268752974593006220568308175869607395850270964954586376116404846739156526037813858288116939098213786321139675905369951725228966178664007599405343677637605604424827142083167536417819687399276034169873464163435483352311679711081521079061577759372092158491049063251900769428215200091708316218391847835471956290942507849305229748347900640427467699773868474881441185540562698193571528339913844589350833515263447337759589471507425165264764807011335123164647185754823187080451798388059293057324300433606059995909499923711550525854363356716959187313079021036629160408998781594469058638661717311955813508620085174915156250214045106744873817283336158766026114112651876935142645306460730012438070534371163840704878353833780604530565576978109850387903152340334122794478125980530172462663535902829397668678538621861663601510874436443832332530171082544693837402711215717206684335896722056300139573989772163368940291169343751169779376746001997866591609286165926973746434375572269025090829918980294139855236862214431412216948228004530076375816525416457551744344853954525673369250655603710200871231949715719911066922312881961030530847366178668023021840895699539692362811299345120136062583555701023531536749708606288912839400402148307099728435771433329749166269492438794363479874089492625263567002005171727407939789882887348619218587625115577439528582303006580725706426210335541669385864224993838526337016029096164398045786080703080317300811045342341597027547262908179741217893326562369732486625300222956734249271156519143685582032334995429598521368341541349271842023442925888557043015559014696403275322175701403546481145460383303096651465599757582992140032590504537729895588438642208075602036551683609668350226092523414081957373597351538335207324201855537325935293466095551324561075836624161451144820037928805914130683212147569386909890215951422535855397442230007489416592499703057278801699272615667267385641223741006769377705177908479631068052333774263852649517787585736960160783798189180700223145802773521933597981506487958610778834323494266442064842551060752244479237035861411885633109896047904794531675989146967047321572220789665984614960807418033372382709983281416524492501429695086812867698147708161947264187663769907623322879226840236118647066451687906420355695225448669498239156871609966289447010887628050823293410916386822111790495862432166566663461949067817752991746737393265474134025544693551632201217287314622939010402412606765712466831663042717209646847350661579994741722612084439037819516519434688142336123659631293797453713738013526921074761743158589602310755613159695459077432175372218759708196080583284727434966319965277718829715784062445265358403155615562945215538412094215058837685363165079564816236375553559490582680776883104856378021527405735817464147143802321096857452251491108618229157644294024204438582751202993063590578490286431392237427948610493365334967229650686132919031201714938594474082104794770412050947566141823395340641679942702883895467470327834266423800021193924540520176161748075512962630604213107733942724077269923001240957064564164862231278296598128245689593191636075992338758916733413923301159220584567008810843248619178225669294846187376416842545275282178454253398196472536388083490787745522565576845686945381703772859603468655016226922468964365260127973440930929060288766963863586316732924235371846024125197610643160639630332871783967586042657432844622922716025169689618070906093969133738604606873756037078864134322272411882318647402982709956946682782829118723644780432958716772889775916555081568129240030134751001953350420907727876938239981011826381529800849936778447953544893768094730884111939981280668784887134059334633276376523205444953015546207599090668836340959296640973770273017660510774842466098296784451093071346690830847504780908752753832691920809881861155931970430417835350135679863779204008685357822382682750056043041596839630502319415388188325683408304142897144503540788508725266373202256572659045791087806376834337698568605372298696822816309663646997675000119265878256021071922423893202212446784249560225600889247293523458852370057253904889688020675759629604263700475795029678322691903099437383146737614324298931633724191505579462865425782083513104141124544841955130968231055506471812250734280520132487870562276234320355116699412410105253518099073148041064589182215391438026114350647993064860807221608067430139868906147553494677915905372360990204492749513432160443137318377647816587568308462420335188906182332741986080071327085251315286938240012836996258984994242043344347908839276291355796075638588238057949263531596612732442106919804627946297017140187024935954769829937216355946862224741627586543476570777945679871823035417634514961053970230633578002337217620826679760634752984564087718590683167818220834790963047732090723408011205309319522098611392201363666935719114486453291491428477177262227016244935535361692223104434360173597211631084044008964784352115920816752371975179858545501730302439418464159931949436578080067049333842916050796749168908302321261843341189730745570816512096905180944075901330165088784381003649860908083783561315378874289694311573244030814863753771806122959491013420241946387229059313448710117853165522549375136417668386583037412191377836529469337516022343224183789128613734349597744946336341401951946060198507071714026070946812428991148296563191197826047673127629042151717619186702774416559692498760602135863068953197472770217649275606147229966120678605954165946696501594727311938961334335570946401806000429753464633613919268989073627797034000593808679829714362900447261146535103357159832058308245824079019619608225976796489082677235150487617386169076039089352498157198071269961034481160645630830354770364933780168004219504068250002535601184363157140465031802680632990146798339994949051171749072318764904868109082604392482002568687887640753794920667148400716364118240497009810586124506197056332431897449029213333242571386634464403478729619217408890579490988394502854374463128737573029780419979100932827865430338316356983092141662233685331026957514791053173418755484821069781593333505432514436600869473362772687767740473303657622513540017382734174886662225283118264244995298688705227269010839435778294982615171376832400149338543596292968336014351384439527671324703376921561024880507780835659264712966074401817372966073539146238138232514711052473534360468603045150493486749010164065004684452876041773673863061528324682268601071563638275697001596930161846507135576988566955663602973553153072791763006785300170595651467244370130961333079736360497676059484243449838740477636263712697810421469452070181279163310924382934934643336968175155667645050516366453916276077155510313378918062752855389546561403100990124618943935734341215308087257788980898443184689630214738045962848362645642763015793609578425874038075574179428879982731859039188003248811343831805897028538895930082434735455380438947679137839900819261019754803557080906608261067641164630264834978947980258565302630203094129794731884524875553452765448265542647923771756413453487979975548740742962155952750784668870114306930744227261195115868494592568405277798849375276101174951044767938998195927260981202448633999783733701529311397826552721801860508179453093291390188973430974178377207756439311344209629984838619913559644619501228772622179453936120203651509799206975766298726372948042099189682541014725058407711882487101529495051629558158936802407194133695569227532468114991066742607575697740693097266540365600179826002396111919820738019424923374139381505590974122287445334607626342577719121443084179771494137445650647991523305674744102294002284485914893842762122009115090493863754804607042550024283953155277762286016982935455724176061282835950281192552360365416377277590349276157067546025160226950248084573389756823831538854273928479638795979871586336377094422845052711023477694373263854612518126633613683095361912184866663758968444730252227400470437769222544987443083109869491241888610656764024712854263978702430683548485314022354556199648928247621079502888561670203693039119856860041443713830118130128524671729974490268243668204565749760843152671263952544883450515230468662461495823082044921209564710350645885675572394560820394847597436830591601560041618604325431167711575540675004397638511002032555576675277999672513566926819201233322606596685411916866710163254995182809561351299427829447635499051396609242189674933281259346872973933285955637218798041426191157588490996476285397115132665926265129597896763635439745658987054214323774318040868418416415655971911425477728416960380240933326875952121176611179058722745516611713812134827129016660090955196671082925620763027831724148292549282263734535581018556414028773154375037982078814865964150518093195028008885999696831670848589071924717906332590270083354578286510422718393870617180911456747572408079463993606474331999264815205664804299064277252698153686229228477878870000765440715781367851426949827011980230852069370623862471449869047005583906438724776691880312776598523693908950883749461417544427051209940347703823744286846594319132314469605833099140362119561498315560832321693062170801140422430009404645004212153875756366504388122971154582876791967845160784112530384632934183422867177184605729637247719371697142768743282174372557397581884232912280680486669285014050889936091649290702555328835668124672431425245156644574015438817858223780700616857905904626228458137312686883642709665281248143266205303768792802942056176291980133638242872565886773825058895043282174151857464768139439674724407620393338714279126823041165738948319584135835724675193971175863701479555397574706357802949964204880339254177211820682698488663630534715930495963604150019011494821910338895005167208677426263105605059277430827999494823097156029987510986233356642911484742316584811584345057058245795481732889767810859626700012283342614278352633759744563556987364561360033101854061056490103082084451908198961780654337930951329245165241356226388604464043944851476392302878914901644219642788319200434612558129717410499802109998408486105964762779524822976473265432360590071763117840061976560236602731512624129491292772752288918732342491847981397401970255256167298988254670136340540892144082897972953090252543257801609216229443644286205477842953056317361415698155908382359918177364234738180213568174882212302272874325505006728123083124185033095030323542054976606746323716688841947565896924969073049108278753656767606769832810602408214084850665474502153512219995621327196932988148901216288561461019421998765237534824668436882145125982825976177528571165026079533801167227177875848708586901474091072293903062227464871343428822426093460714143146255847537924853392697395162043998791906005079271247692998890266086106106136191098596372697296187512959210254657348899861834068582425824465508968807530012844226131981749344954781847874315036557072096229670881138212830420949001199101627858034040121880046485174235347321291827349508659821898813735773883909065293656632602974375992529706686295788178923510020074274325826734455446705151205128233213822026032369955417165842648150474976075039129558900871141317292996170154679236901905562130856276095445203162592896081238152624020502964797894320708043049929940949670244296368271770112277248929560086755667764390606628245217650922075802837354188536828456855987612142358128948752380375840545895570264884689918984700338494188759364956433053471402614219777435107429679678541765551634877130709307963311175338159089315985384672640494185910621561978358943679859083386441350877002072135625800716021234899853206074629158920515075950238447767535699199671507883000665854498848761741731006337165203036096445703372576712367545046243134247888376738940556761697080637944117322513365065851589700890676051541978707408134492983396982793809192960542191039344525041466263191778272469976708617782518308709810682984185180758342438801474973952098144594796821600335045112230375249658415572834307888773813187187515452486715202719580227280868535984793536118270392886427549027053340378064509133206141522353588776868046682171466546437322797701787746408059348304730957052751438853104676523008479141812205041841102544701061632061259720032118936659503046073407059790573184556994687397343035873320273830625842480440786051692334113500529958082141950991051707209951432425152301341281544385619065348106847957285465199537798685579582358432984579429181311858394491228378158602071312437249856508205600928308689570759099467207835824323535368744163033948734857970913851727631469037462351019309026219691910672851588072532044782933098962854037220675764797440675361291908228193031642778652386655572426356762099810978388037261286884986114467924282703826057901790339297345898805466737933879467409262006973157143686481467241467682919184370191178094159031688815548396948029326948163326850607073649961249926063438311721630680376871919382873089209908772727331976375489304705003690249323194318693721160192675898839352371868946161251610186448572841778367864689986499869507255995861341989565173817066460253844556230741642101239089496952892299832420344479004395814544448296259099577719212380471135670303956154983823875703545127841490235601054542428761302008957569575161216968596727857502498255077417813450454274402609042007111866499453797028858113866980612344914016768834505644286378376309661059824794263250046007030341143427775341020380489246305942039011039367898246184595006557461636527876284095733276349293728218672743635661907632260227795695290990587510732379146968719239185454919262449659428736418087851438073703402560726154008897544057252728697236447467782416622669549390713534356269828358422011770044460388558797593218445719533007749942034302163981695469610260600752427611306571026741940403876689944580212843496031991744565629979363417341508082508231466784310069642069794868903291227285179990055784249737511382570755502616689870354863609161581049207530795475713797671765368371386945214572507834723004012765344421283849910960508845406690421453275127131520531872754252433569913109962431000300302073084643263462916995041691843137891343641376080735397650135215377507125342657771725467682232534050904146289597079462776026017781426279908336873112967770032650142916606131623888944775196296866379518118668376898047723367456902049315944899471711620553517933114144983876837213091434448959032530200598767534963148709164292571320710833707080012513847672389595724381670696357631285080387743395492642158266020313177878394267489753685856850674820308692691414326505146199724325772692773251050218410220153900721033939700439319430956197688989057933606694599789615812195967078777924774878829341508332082609564110582733845651145071640710932632241155867935609174153401381540644567070746680794367710107448707863703985601996112810420555175385375772138150643502869410971124953531599871001118002399593099141262757000443722450251491434232150200580794604436025966911373284037002742028982840442018824534042369697101255635009241180152302847348829310023670564965796631968822825146906557212093159114753151911195523242012076697848391490422698045813209219757041384299215537538507505286127830651122568471699178674720462571221813524467144160878711807113989921786746260802817764333694050514731400198249226292682002331159024175613576001705270228251729699594329663343895967553441781367171571071315402977205227472475441810772967331431386897350114726957754205092591275502681369887333750791547412753364891846575281727466286492433529484754984823637201048233916966754081859080127359052945234387677971987296540474217866740352987333415128791465136658721144349219846531596443370337312348309158166804344795091555499927277090423619994387917941464170762215051830311807012187658701115997987408291416804628787235174535721382227991177347489248006024716796175263808961139555218087660091858891420305420890473969152347213005487092706743035098955481404296477793023823929924799810541390190316431844786019329812677594539914436313354247227924274902932313275477628980632981561142365213761166115506467496282580903778169579905874062779975342619842337458960042996666640343252810080663537936029416455778526185011312426045441708610416075203839026952108281426604581543333336772484724353974771884019908145693320531966543393083644771468703711679622820591639147951067242066138074412987341194854978652836451908589416131615186594745332784160353999517077811455036161013186891129996698770610147382462290273400933101262701913833364480645101093794076238459750024291756655717966544293173406158073401686845587115335706709928567262079852734882984956629431578255949564791494507261670769341236498396106576381105919560993792747835658655742863933664918449007814212277277736168995449593894595313160262638117081840479738331675984669355738852135800084455100389077127295346611768481878655628815268160910652185152919031315586393221057792794651766255775358727410237776577518828902604695005493391156666928085662396550592567041828652330357704196748996094126136218162458612724886271951698040399587113098488077085593688435908565981174260486605658667026805519271476115141156953755682259251684858321517840263589834458629906221772388131755069283448579770903106416767114642120916706724296484306499534571498277634653679962990697502441961307648895238023269285903163202425174258689515377193065784671378148340397439587763260407816056349959965972169971615371968320496540504104983938794349325298791726620348812590878122627990464371235178877191466657191480260442352216897384503631882952284421140229786305998522105344425518760469247120343181223664080641289468287797388583584395351844251633364603125566580591659227937406869178014812767809029667185547227514237185575280119051020224081231587170947763786621048899686475562425463016269821883613348274303224220273689196897737607640976327506017799640253974777775617131739135581408783960769263925411599849776596585828289113253040852420362793424639030515856774206204434457730537007481067434123572916930510036690014184129005616644946846593311232635880324523317468558859116878684473974095375031450478788290385429655393910182275871458012668189312205332735023513487619037777556157348003515078968611139755799998710458798987148418079037735052597527755745284564754705637284171730518611489107670991783292474556809283307479492322842675341686321796028505242379603866778852160674596405970301957529848524525029240527243547016049059650566443655496490786528677575119439234647577351267167183084122858636640943429346951621928730908581807348276955495680874695235190183158531640437253453804867369096329193847579359745417220661754460105319445443947070643277337468776919876941548282039736737988721393631248771541013088488243959227570588017393859825960489172734562575104248645175844843762426278823059915463575352414777200581231707513357575734995049008640449470806323828543826451162823926485081945990201373409087683081763996293502471749474062987550143735574149743790334182644707248962955782754829514213048945595396681640892355973909562803255958894793246818248314494815275065845637439671564578496150499771919118812887222803876632945191626001697594612883867158008816143917354911496774193402752186760240118138051841094291557203722861283288634491797418146056541769156400960069796252958607572485018093488505074977497640227844883381407254602343747270983283904453235124011672893923789584557550932297459425938076794752090253101812466152255612881363340208958224525178866638062686947981250455795583513294316717530747630311843381195993645589310674790597990892429076367060579618291660767117282342366416718717925419475667687200950180806339932159154446599000925673071796075852738485961203405117187731538247789956113818003537372742367425016688768855934937601895101760984228656474678691509017786042485072871205634460974239874936875748434088295476149378326478856898898456931917450190469348927547416902416306319571268766405984894526148302232203535358434792510992718611035624772896484739771155051668203042898220859518403069986109453202871281683911865483126833810561328086142078977354343608942773350958295764387428718934082353744746284270173568563027995991433958566614921219740006487904657979660168167116433752636749814317850538123823672445450959137472704509455843970254447024592783791065773427445826978931949606623705048054225764655057051758064329987543856753200318335970405179651937509885501707000327000614354920217350511822840605614677513452126647481695940837819110530002626398592228174487908743079102083776534738085589315372451587492043450768173500814523729917219736587182924856140833584467137316976946891534563557357533272488416128357824830923655086192648788572414886705379393438915791305213041955522252133746748877267614803633160693484378629667910323315051117174493271755004480964802576882249762055578856242321573332414316788937750217885892921132335948466297276132096633312010642754183197111404709100045976083306647966401191151023586429075329516067051467248038852645908305063728010175626500405064586113087285762299392603911676488455751818161881891246985297660353815165741579066311308719283518443286860463856914197348676820314557424339059374620484443751012954457474215429799003077048926277605162988080872180080703481342370317734076306472198766777766535132837992142715336756522151236727251144621760846098250855403009676568337282346086039209805631670233568959367658281123916655578387752863502957155218751070463471204102469856118870176182447307170314919892441009267881837755124720739687377572312132648947773277154279515467539449903381735636178196223115358688144445338232474590173984928998711589965266220641263867445517183230862262977582358591257952760133902276614454420046618625132524927939223790025201477218593764476175851298480539448969485871262493351397172633395550457427826111081879115957145207920851363310799275260519380540142813837640794989514687039348024393971212754738072304575018348235183811553987501239269463049153357593483553233686250481493689194684692956215078161476312096752582292800041397010243895654060333228066827867156622988305522636479010770974798529924204034978302296996523858320557698089386945506816599702330519234646101492823005377886882168162356045412010814903138303808309116680452966966499890606081931767330983343211441576629916487984839566916448008814854291789749941165217202895890351232436805407528691844724801638894167935584066846408308291378111354776211124098361873836387981388703140430980613910214673758245797977065758999724035696984973793991865777597147325642941322031175948826629942717967424941869704579764730455666774144852095233306039944950308023448026391604483349931695179121497701047979821937023697689834365427365097482930874583699103837021219701170586848034719225350407935103863831972718774705447037295691579188958431480846539515495959423832427456660428080954697911384105402872116984252833597492485626869393739209103171877584088003095836569382964631205949474498266951933357676287612259017257172909462985870622474929658797609951184977407416535166818610053346602666610977403042296913661016707152964589374762501891790289981697452735523969437643897475811881957455255585590196230229802202451158360644919725188281020757962618999949503806572439547674566105171719835568883888767856512327373594568132239302572042699278232484678304862651729425720476430058546394800236723356809050018744021272528941508981546545478094196028120106220129814002223256696831735041397926301561396958995003307688769565395128686290628926728558639826302684792760541343879882675568900410946847775189834289184632952829167722690928124754696433166269442403272586999389239524627534538617801900005437579812539373514770969951638962273034538011500327219052748310223988153627549743147348698604615242113032113954227744182436167985844913392683890976003700511955037317144146874457971021715165940174578305699234703666569484468035503930853931722062895767089566676650390508309988026218257401250363705634498055866810903262688460122760637351291715506771766585901373031226454546916615462185400251240932663570293504830696649205550565077303906088570746685727806794576662650444602225838058671495547619754039290397443053529975972835940516981031600196103519355517373482045243383200035401813047694131519296446025679064297470267463980080406214069438081673002929720115444407386271500876938761874221268718753761276168513674951181618079532153139443603734962027402626643081100797796652301812039677032753461578656204811101880295762969098068253374987156717047267714457394806535773306927381084990736237353870161633582081943841056263562755847349609553088664437074317079342569572700127120725015491628073936385265183974387539256215181272526821667795730160458063665294940578144700346070274952998989578818485324742519085968097977394968107503607073265272902088102339490331028643101048561226405301555737265882447215526606483307382997991629118095218586546693799927082327079751310769805367905634710355379424654151255340719449903247460609922112356545208875999553036293087649020019912952362646460494825986348841852767761222945643392739901020452393564282208811852312473361561771857296098768818795245541469533265973285634104380360051249316532784588692727087558581693354659490957248597070852742598691244499458749178009613456239196231078053209457111669568781122512560052691667213283672349455321901897298357072785567340367719878333177784556591305523362923456998925493674817671292771689059387417570407009751338406309379158627824411055905880377095674584672029415795396418202153480408510551045849014136912778732437651003504978359839812469160044979449698227851327263665574634738046720743798189531147156165753904491794312650297698247462322182828024825325251435273274087469987331123511813047904102305216759809389709878205785719748509504941347337055897559346890333417314378441363676237042005006702217512786281524332008811791934064054333620756319180534936207309165032880052180852245731313349512441808642073682001686151024123070093468158652641667994474343725995749372323395502972876867134002467099569252394281984711216469054998174009826661076412679255901937655661404545023347694501083287056819484192265694936598103808863418940082304970653125219943696960574858632330026585980983661177054975192200578307142873492941059011452997201344559858020199564202253191948444952599461388561040776813757134601949043769628776940967808784065859926250313110105383701693007746287318083823864897231606943960365877189419803797056638989456503844348893817947767612009608326251923609375978812922082950767011368784122113654388603170183277649986917502559609992342176408013029563494692817028483422647826185309883958428451990256816975055298542118991889381369001444346523652125557416654621688960175129793234416878685045344446972736616688655875753155864133701937659431933106107966176116770123230876594553869861220702976504167596498949565776547516449936016913889552996943564051522526341912734328260669305421609704629247836110682259752279417948949528243938702721539198652474251419817024057197767870439831775308452666776060847690513672086426476146060564713840258817520345870390236162135301673962155494064369630980018967014468769643279712140908823047491387108904017444821295913218278794688697507389624739559013853155142915303564442879464147755842485592394847999692812702661911295675663648740918569898992786238466879097381294661238232805803799588195833118401357036109158183825456573094595835942135017956429478073454472871359141703266398882591251885645358526629078288616318100492722148515670596235416390415113415811560110283957403666155199074965292885470932977527447478826944282296012374780474863514104553321279573321745576641959408380144563095018828673497962861409358923729613196484502429092445369430711455118789842393030557581372457424081713631887529551616142940911062965140263923189830628214486345508489432469294096245865488257538866119118701367837019355969601469793839400938064140324693295939526630417781724720133240701552646481736267575354177211805379918703941982930849953914497029438262805637369405351901332731486364478104212759800631136257447874094003721325342609735894882345287134213628414419596917762039256045121486464177583421904721187424295497243602683210867912154880316596820937836347303266869265887204091180726052377659125491242495062916428145485882847863300165281886705591706410852683068424097830032844255666184100169014745300976711371892949007748414184646892412568692545338067594109191112442388226928967577305732631390103973129691907222640208026476923922733649996379995819808064703331861410200595793495145531244847265834688881192409057911743373662651810479445882493437803741937961454585607358756098218102636880851140542582369535094555448275959645980611604349321389691421677407361690812730485382569244390813324646694675500127563382215496206826995274124351609010045505945140348183553587149737505650438465466319606219969087758280444545753162096612782098229310715061544874176661836473899835174388793574729212141482886200154991871372185641330409559609234592713144091019621483788160666848270072140656294935639475707536768534915655136249940101753439517526181000144509325965432733713986509874243270189634015414459376618542305326889991461506066175863343681757038901357586637679602359597253993857434582002083386896305901290080036365658573470455343859200849944744055490623868397587345286013695373503737183609496280586416993789014213290687457771628121330590185903524797931439878641339299222160121873407686258936621007781649548102925232476787333156468175325171109239507110742942352005739534158424810552677353223810285448153148191531523124132928675964412022511484873621845102073954287323528868668946292324524437226367354970044952634144927165693412595635460239462815049401974320356148657286283536296339304302911944445072948199615602039235998919365508835525415745136368654985320519491473541624269069589513347905808047126079271087450062129717172508674747483985267891036389673993908606822443824682817710733930674415152299466858192771670759578139172666719757423291960590236829836654919222086789291491501729754286292209576579477589906251616810224312052263621273059530911782727236043231041684175259384944367744167926992219680122519229278177921683853195569052701497688577479267383859791734603654227839654202485065219126463381735594480203055321281771374676059010315460182509585493094938520386940891719335701339859104552698012175757957133001742118251085887224911246457914820965610221350130278658219911182943116654703220231203905400595894923034468436362812106583025698139138647650749718194903632798908649812520327783138013623310230620172331867180710865768054410221850761320489938938407764590476267275034871957200979016260274499614003463853711295421181716525187037313908395250565308112824372393980737815117835321446279343981012295654611067601568253984922115719871466020521293094647918676714417830207295362447766151537752056920494763946336289162106538317847510781188859191843745132097682822975422881723794781411556330994241664847709970339570238053154258288714575480170074041014988105600159103099040375179536576648518565769738295470778176575090413063737258601532584672000859299715270180763341270298592785944733824988211395091699856274023355863036575667633192773434423975152876692210320750164881916273089667520113060757618934000520437892212613775140674596941042098161113452514983062810120344934069475974063867134067038472087842724718441775512492062017865508884895918451069294842494097789746560776804068363662311478541608790333489327152296216054771893847587386052155260727464962296734551573924890688522608506884604679409523093550149648921300200178555644557619916080502239611220784784410540617722995145872451400842151548639975564545883636955972533599188740020518262873398678249065218515937282814879466937336337786731806070325302280163592276710153551164121627793466753546036826425148451773055892673052085589735977711788399119799389220198567859166274223120228986638224214462233869919666585212226337746375628431612063554528792394170708124961560850030531524226808112030111780749822799032337265382790575319307938741853614327269986103222494522339057241342724655777678398726557937622892167290178692139221862506901756749521597696583448569025658077724528671971391488270111143247114236603021351557798891814250479746905588431054941271063590217603886564621037508990155814753027197361346937400622582873308154315534456383307651167506168150467954245774703839105693948805937570594836893643838613147169199277304412902957558523689328474189867614530080525085984391178858889594822423444220292189412397417550803468579839530375470181795574053574848079023931990424516687470179753781412327739409964681308128065503432576386800669167359585435217004811666107014481410449103958053972431766456012278550545289077208742143022691242297537442269526795180436871823498174961810410891636226873578360897412166228157481960775497376839264253726906496002214479960266095779630140705348314844682098313568754864321081945370942859775646627039211041765224272568559477104986056476630007194447113790239845791603390236556388454812913188924708619325563685294234436216772931783872167431053915375267762541461042551716532940569385596195870668120779132542818591357512538599432188350653799271697937724048372349968751360975273427920651411494890261484687126704159364465769524751813153643716638603588002907414170580450727697539172929028352380412785181528325178073983916820347663166475406565775686974089558283277239200316669336464450841466765452013259417408211615518528217874645264351404198276232295656842618149579578084492307253961782355342826147034030014158491069659542145064745595792579101625620594323779187897036602442078161512393328131670986549870735825872401514268216045950163094414745434374390912999756220938338584226709699042416521509645123931687745914450401442265463489989785857524729368446471370811671655082501530879672365722614373558511642579739118130928356390590600891248811543079607519190204866754679664477826497103227658947655100491595304160203206899581448226436180697453321181389937700433517490841899149626010702771256041538694509342980774897683757685781713470882600107788313497326337724970121832041683189676579082290858479870013096281134462248557163947708526539730398303436220542938814162163658540925529778316855370538920302603135558239694615758295978299138868214174290175978794579613884694174694740696146021603155244768218662910099563916161911724607265235337801996724273721334717210126782161983883131997018338082738559909875195005586733085238132926885447608969410333387165535736485636563159778497724933917901824851779510825083851292965211304261048582515497006645347830819441330461581891091733274885370641758179195451215914433174762490083484480761478619808154979267610993129427950551846866602134334463551772557364385166608918225351470094959345444711502320967231136565195896777330120322678318600879297204523124824398519517349018136425187509079925566218907489106467661071931258278635922498386328491285697346448671789273667663928082578914356036350094823600714746230718858393999336859723028913214155596852214296569005509527813253249281473422132641569444904862889220739861432072760025533093514876739999872054410437855271049057238810145349184350076993637586213470521033624234192234958300370096718493466597966900735828593537879374496206825661869414218742457108658094841683285760591558806799889709650460053572875897588557316840844885060650143328692205252210186911754746994867799212000563063769050114861758876376406306345525867334291142494812896796712053134588757618652796856295671234436258179239665950855255733463827013272948270530328748005079725507717186605410497260222926929293978770733149345207663169095798873588392964625577500520625502910170225849290557891430254670024109968317204946412582328591033956809796176149751597289107742791796874117525360015987817418634930206894846445265438837988902124621907159638021570088051519114249000017934369722079129038646269772691331686826038839281201599274047193213970828178623527738030332525196324689428391919682699364824036432588998925346590701327750112504164973829588756998973682688211905452722777240834038222241938661095634206217576808762224149909730855107260278834209974890067326502579456942859352575853623009181114484403465614823533778441043497449503709201191409105705506064460000202683253245470957227501043753068723291811774807063499487271961835682026618362240986516648197256902596088974979317047037477545437316036647481987485689887686016683674933265933597637437051458843502508845718204918039082751154637782085041236363641279644677751012822003715519453765538019326400616176498341092678616225517687569036264859153064955385040960702518316088361731121965336248200051489650814811677633220120568613346847793276535892315538788285947343389461102611013018831529738644654165377483696725612296944098007613883267696719514301186234663663606359763774369437879049500287536550530499572866281989005211136866152002973382167671867018703871823130349340227127156601215059157703863096677289317726247212698410713818620296466880630558084761507234427634507014781478199388697387995103256437623279572073945751328488996974609278329647490114731523844021228113440828712215842589713147435258942910616464599372876062139618793665168798717014462034673251394885908897671708921735197031962481030584550386312306102887374791454544317445996874325183890863604186963703523212802988735029114591133676826561171554255992359286328959895550091192723074563748374168234615169656879618786829351647479697356264626730775757998098562518052226054887343556358936559384680107607980511826034458939996905793699231402558436014544172335749260597036295345163405371549326820732112682909056661440964661974488687512510747299941441248285663176491755111849427748462301651010137310786268200373505075313108153272794278893816800556948005568818502180667316737996856823782215440598852759533732633789994495956689576486878552151184104716486853732152751088346387747269918999187398247994742078243861238586498538770719387796377066371606725418266045869044454187682697640778692799254248129151985720437035259233126749420414060085278072953001063678553968078356664709862267295103054753556221145388824624590398775745276007312690114893405164122870485159956950307715041301736410936319405863894691875308558069505179402233819892068646282543107498518738943914501982244948153287039511910502321622161113671196816224936009575112237838529516211815957639964569419542176878362629907304455703569721254064069653645679840975687375838943596154536687391014666453079521781832760622617858753275269562141889233406897813536784048290839717011104030643490314665904795214226925423533142900313621127720758167083492762330295645936333286997076659560905914086029629237120111503409993704748009370871821547293186901842012657541261220870224193249690911473592955208384900367682823645229301647144924703126711803558617684736016768505875267879911016104381171322999454935538335811553366545543966202542899929415707437583413031565841815508081257397884641743302199219714973761943667295705399995045291124779037464872639905652499074961707531735895559072547429907571748578874315672039764711132292166439854851602023480334763958311238297674836738854762554103786540390640978389958477202629596459422971438336862326825279078182757400440563925134601016486432031192240737685408747889142236903037877421908995197296083321010923752614211089090718450054784666981604934578969319151089496241128975240743629035728415774786774911668182602187958285102005915157456800408352004255672304049442072697877117965696819547813975864581012096587452080309752662682613574512979792326041372072116780146065192146878227744464349709618550230046574561099522001493543020778006905113458360856473101904197807390246212736639656078729545621917051589662136039438835445708684823870839295892533076042960848065397854054151497938308256021283966136740707328060877380503076711933025608942447355007877667915772073069251466845663742968828521389233881558538211661733484095065347438262857760431974335179145007999413378695604725379458090633065310150814874509962652250969282862916352698146057767847682409542874291846898934234391539271906233745944946235349687936212081580600612249973732373041410509855384536170571478918918829203344960371091962941556796299319140060085562417273993174765117513562972433190246342403727916086219987650900758199660963789220350032626641358223813672443407826492699586168033174306216568592567642158170295921515677401418808508424947082012695943320642680184814050723338528158630710993651316603547684646386603999603863761671502774542898532569364003648969861953357901662727851991142199474682326768754003396888083171632041732208047669209837770940529395359553719105677362409870604519469886135343054659190688422410423049092601094311195059391573783214222403341164736009010643835676694077127666531987001779555104781715133394965352650739019403492614283068069972719369349875687664482736872283372453217884113263725685780598947228453542951822623597824560422404933379916201711015116855775696186546392239539719715390067514148732117555419757449477570438596440165190864657999300944704170942941604166585977692706622865043018825637112241898780308684589894081712367546473814296833672423524667352892058189339748756280149629850968805571179386995796445530554855643388277913344716290067109676049841727508912759696818925181608311939835120046769854066903263930021977164039737473043155693005045824698171369009687881876087037364904428535915096541637243106109339749393820352873432782462794299755783408616347524795915823273995955142497820590621444624788996113182202280517297598631170216409730267312366011382236740337694180685947520265601677979994353798352980281141222056232169388485551342047394153991711055999852061223331160980354106563948269044009600558228412086711889321746756971983173476208493708691466195102210787252770577799208987896016217181334845129458447159840551771735698867094160717820592428964710207409193303731521422613853566707366983762740705860653760947695525833021033517482422286914321987688634311775790834243338984364284507768228195550883814448976273621509075107447751364214947988238004202318878623110780538448069762667380754897462443657743728439879142179204984307250680217944213111818706451985982633279871898987363620730440411099719387688900053015504562155794701807931934844873164953649492698039020197356728304290511970765509593482750636373133839940764096463389562847981765341564404612409637638770705830728105134530348549963857171281784061836566621137095326178147167081190469960616298854106113341342891898221092643792810108699415255069843329439343626972002838821242249609268495168631988974194669889615635729757593597014849147194542068324738775863742963956456003499055365067927338143472050140850150278178843807113918733666506682222686172717989366849842314201523499763862765194517238009872423481894778481948152158073137223847166332341182760110951954857008700323493175245412580193821610228636029254884858235601652781909447259048803383990266945361226983343398980735356865946810996745508551961488512977968454918722643884121296279459422172304932405020759101457705356481537097903158531767925833026238309552436098847843245612130066106033818248533382209910653350606993361264075545326748528028762081578300643552523928424920529781964978565564579778424846421384539444758963941079085331168694491241853281726392794998251568753934540309227177691980720550441715596738050081785926795170378858714016229951330839280613790619347684023235569190367192145857987784199110530735385951455133666451489370404127048808269692035556141219202223702279991636177614885599955886906586555411737375206365695957749919070738709532759943867590132693950699190738778711697760288783192204335247715743773780150297603483048521733624659476361922476396578815217153547359205875487998027662942962558131693955607373693479977689044669686182094485654000514232683390070560987084592710956264549673389316474983272773482493226912997349856914510874925505548929422253727105646878749283849096287742885216819789071039991013450574728644828003181044951374917292741187759107317875981121085257881780666158257941989722834270907288978306738931425290377794183004789687454339567123165518907346546759843008143738109068883084405272669703608324539674541840292678761544152848992354520254761560602339508750500451374158613894678856630504346223706621541435977912810508507882254829942725793952604803392743283750071979472073268049932721618110198242190667213415751732502119823824255539637508719036008768228021171862245763314344802558746348021624590261075474193877119601975008159237192173353457757387901119237599923782592145797260565924728938293899741674676458760313627172368802676383585846441018253187065842844043978203831018063752978978515130343331558857251655050939684894950445332678367819985537695903957364119964966240435927338882088877097255313373033923684696258676906226652236341816249945568996457343230752740029979106135756892506507134720556546550085026188575964570082612047418614031831581819961495842957221840573576678426565081298186827762807428414329587362432046405615678178827218477563667761772327226598999022043912634717451899536119241208313541215907520731666770875207749894816904162884119290287140823187566914276602136756907005004775545250666810937365583775587140942905286193506169667364669712426579331130373370767107027136192348016278757280514160125127683877353131519258689368604783275002364169952746777253968509253402671647869026120189719238191078570704509559881231693660234211254030642152364241552475347181892334459287700535336560179859566860094008132951451604779373745570597793030371524436171163941585244033344315264370548513931767423790642282740913761568430199642805364151954804985304130103212583109846133896446324082899369147878777840787944025133846533702346515058699331102617161146456510234503541980677341017424794674328936668567645621930828187241250718512111794304521481668607280836015468171994676117685519773176004950818746396547897900543989599318932636910478175781871095369515338511385866460823005259415330021495819871407396648868266530498724406289578944850953559213363323938867882770607229061982066115526407531015516145364329755872286125312828829861873379134620006532590282204538748140830362329755374935825489435220074261581657412146735102620702282334205895159207684707982791109009911243741930222935186955082787793652303930101225586982999971745076910929403635084275773557702930545275105232450684061424545576937528979999970074136689187510206546499965639019851186370077001451373080463176573199032407712848391925480014529391233763724800165696728154119025491216656972349259118083398088543217709113580063045112594828956240233019200404029122832779983185888176954366356508971848800243558063776656054338858641054982093458101637222616603235869811199069442850812861166493735480617112586755194637236838300196026314140021810419931128603204159793881359634231762231244135657477646038184730021454912028572384623111455776967596088433992170074206843548967378480110291673924225035033020224916784677064083607239402151715060333707104902996118829325743198858781105099079663138167430041521456463419811023782811987600846976027322331485147654268477020901483096466164658197780495503809462977835439459984929790467740937028504129188093954310933206184722157961275803263382116907626542878521070942070565356556295793515551498919276368771345336695021906389056980002039901694586882310651175096510455564565170368010934343978203849468879910765337555450004788438810564947637476335486545828168655985826785750567796859074261795840597866313504744462070639375366807240719725610449714380829041583903336177346093322665196860419548907661666006048645510445130525140743552647282959356832982700603384329532234949935966613320864481814307552716163579747314741605941934278213993899650160043138075960526319059435209820567257540871583023201459026024364264435385589706563254265406413426077356492145723986091282396448916876958258434808523240254087095437030984960072876147060748405597588962951157867838639141261273402143784429713503025024188679502992421887265979261175338119311554780632703530549624266132179639796257210613772954984995625759713608988065715413175557617844451161233937104883252996347553037654779971881042297386015821090147221881718834029473591820997489537171782719065323309124912286028214032012598866312615857109066092552639248379800464247509244114044285390359321945366711292490425545430073076858965745353838656427902436265904442228054297640845167471097531839243639974260384724515013758249421170073936660925431666313279701787514646319432191537580951735217876323048451481793388319700937017367121663599274864519094865308466740525694772221838796399310400623513223051198679748894963384063444927930129301045736997605049395753357252315350594281882552034118766664175642221566630585782411523751107648091561059107674992100193271823991603741829917136338357744442454294039340404662311598089409573501927353281022615433213527764202352916472629184070288895680928823275908735619537745326718999244400046388877161459333338109450807656782848429444683938647378930509394651370688564852373036396873732341762378636816091161593759784945247173098012468259503936176903932210932376906856905261974559757072676121601758264774133185735241977323219195176668523311390401504961880320100519030102946034169096310218930427843707555499532357034256596390467711752773451899123082597088904496370773723538069183038361802116895252256543911321255649430547546334093313447291454738218102988772478219370626140139744661633881149851901265980405587340220287524275337666728683875268549125522626917382493153658019028264988307341060660597966412672962234752106493934024481953172132243950368865489231708697206962236909796378166479047344072826547995575574442743739768026836584938420963309339961181767796662475720616433976535120128659198404044363490945658554813030095787623237214841794500087829487193402045143216028546417830778843896025727919274725953345057574213816168360292158298249121228757849950298089858960196140728142917276482639455430844024562245040161540693453994848236626053926726492288165561852809170325384861292700101758333789789854421481145441801044596141043237038742676364112649867006528664738017270944756283892617486410852262529485747274448486553576160251803825756833358270936882682208983312788711198508721124345490072330626628199337582602580259121379075758915139578256586216242579403101611511041082410912672498735237840861387485491138974189718245449137166297034806282230441034171197447048509294598067381245065958416310023310374305015783027346819425704172674182620562374715501115762913850108867567301325270607216554873011491191426528446410608753389158302681219057279657707014056394896996344512515464027657844965932682223071665077600587994263041206842809362704146256579156334435987745826534308256271128388493596848018423225834297248495818865716990344417048562427279062953070595655859748293313803087057406373385959222000783397935749021732453035111517187402037147588568370194358792745319582150704229483633176203369412426737007548277400164355208631094261355257614213030478075526591961463756370257921225914868853624840578261753070560042130689078581500539789000308987021237288077644996146909193435350929225702795904865413620165385116059393764808639517224093695749143000582874529897214133821360509635603353953846819606864724229974723480856595297342305366886727386771310203320988488708738034446474312857878411447088713288477007311696339431504945599868922178611182720379675021024902835518889923333672225460107789483340331444032239765130929306438743132345941898168908284287349108217566075274577253151685097544317921099360464103656949743543613564784853921064764473279810427988730334820257408437930654437484672032963451506109347921153184198077468767015028913683359647055044932551675670402174963457602380251436605313339634732592457229562285398252563617264584290542698134895140464870553991127310078636267661289289992726472606482527137630315971693179757638594031530696750522619071583201116381289827618179821861941273741897635535352013438243272322787277864882322541571876461378146250214329797382014059588454046815853971666149821854879068667340082180819138803037385599516838879540790882866210573334792548381537741166804075368131993657231316366933471112594535850581060528844442501087255388961303633774301482974746752671690702305323907745780787486854424501809590595006971240864279373613830247341005238148701421586814259186344203373824104627173204481649778315466655541219763098224411163038647302388163536959841588641582960477007185732615869638980154238242831931420275870773365328230546593813660963552350913409033490708232669057929287455173331600429251134672526973592164863594328437205765877634532211691068974347213209051508705896443457599862153155180141405002811874997744753658509302223823576725567612362379892585045179508989314516333007909859571060967188795170654594517519728246071406419061175398983289314863487056893316100074609952147019371125694436282716990657147925793432687819873216042600430269142868502887417089526303473353333762362627974676042859517026861897146604890869764838514701840250853080861076582535721228578910469127083621282253073834257221499732205491215909418268210840770360917336870996371484925912620418865210501253799211148675895759954361485567783324618965473586810884540925161040891997211155872259041537009332882726119548179511798428394820975683741155702374616343344769916427629907789038165861731814358829319223797256453551162916879389940622055102855775919106327047854824767237142884174917089270513603212865418647817389153414450228831933459875432061334848491987900113539710555816986820803074349886148764046464092376133989054659536108475685408321445476394930264013481115153190925969214470525107738182160795544521426748127084431594669198431324187564169150849346895914878934294345512924587935439263466963467443053081460754256937732110087420323766804173944115448040293325486528242544457747968968125338250319942224100565405861104589976698340680023748373537336760234624472313232907522120315459952555824576505171073374727888257596278243763771895110326839058309465893134160686817171213377966024803542140155754787895765608742753045629334813552269495635857380609379158349659402512854703158822902235588650824709220079169698303364508615874793014789269311945845518241366503520611901613684769186587244236967402908117333750584030291112749478436234602085492689403960041961958603823348385355752323756216824068824450900964132663982650057591343373582415069741547190159636077909683598797779495932845328117453792188090935488073241997635565544781497613404846798822098021996261362777356200477643205685838061336907462349879889243313739005997065258934949701718056386154641814835162647746445047117884182166383156067327768692062003852936476488384892983957564998533611616943186385526358213592426893419868848957811626464506166900747794598824637036302560337538051690487819497610595565284520550384956395761208662512258918254319957093600991444843374131960451405903276221491912535843397507774309581886601780231069172801587134228868279271200509531594598499063009464181135219077942451459859662550842173676073490543172985064143677789368946581822598564640214649570454916623478255033455117818218307252933857311677010064788039976982318351668093047743205165466743948990039729800948825807581949298012434794021387159049263630060080749996944107447953234208841193546496162642432601665408320442633494249168785958039266882476460273400031193669336331709513856834928444641132141499989327006772052341869077758775103529780797008343143833693986769772995552875324756085845799907022829888759908424684980132166616418130273598536025385824098729450452568402383478770276582517274352163235178701280029687166758086108475163904354945004455213988678847729216191381704282333885096801606726906543442568303200939201839626711961203109916587570607931705265945167804774555812352823138610546613042684170436928337617408076005463567200644500903932919573813111244504236163073489326410755961504564791627107368249283347342064682069845518627233915257198469235711777944614440005683665266389955361659515713376295955693223447564703123317749334058565892928760491795748602280303837101970658180693783726778500992506446776825304095196094443926277703526668354607081970170220773002270678811847019078684159040200782922332773705560423979290140523959740112829064090862119055927546221020428834217968978311948535872069521315152591059506062064638733526499341213967045691801192001448731726527281527268610866422279357404800479923579333573963237123263589902092557636209075645355069032487455658492006745804210477020574597126819889929554291347303734689247127528344729975745299217004751889944382352208711062399261008079238678746737064050014811897780486130205303959374883901776255331805217409272460094339260001771708714590658693315929059324929705554911210720525288662496862268784925788004972020182146821699936094315987217940844613097801946813386946749808589336176098157397212685166983834234368907088829637888575516508125036844577672117084064648009815995657055168977622723024196484727738041906973282826463325192045754235982780977349260870303218554407473473786076864057969195433308888475390757050901027139699541357049497537248834583053432779644648301395108007223189834234665542824096645316764548773973225537509052092268126513832893967552392527649097935028263714383469235059457906922518097780384862082630798331834507053203106070508563147796267135960754380695078709159870623657179539592969895969334168003601468010528346703253010058727870580541900880513216998625044793331209476792813065005791059766642710790026717582865100972257742638881384385986988684244862937827619024565697055656474631818416260363152558452220163382153720877508085272385640278720739800634241805953053761928683631695100348626351318450106051505106150179749719099777080750613530180141531964517790146626528962399070139411575591978238141681044151656391669389296486906308530672003187829301663998466350615733429780386279870781861178468648265761452570097711439275049991609605652793971219368741082702829705569498240915411190573226716169595695051349558559969400843764728498737382505842503026886385089283155985222974124634869479537655192896046779279581648312696100291186777907899743281835320848829921176692114014923211130925790214106093769728940081375953130743635688924304419447693057270141290447293822089815134299585711067737167026274295420448790213845661134101502679665453495501650736676714607931582749924809505990857955050361555211974481005821872871148363371603903231306368115812760302782859387640998260908507060039242626785092080303044368340640131305794180780643020431171905856781764583118944852493691461379465866841746984795698057718227509030364165512866817189831012597755370452829098624731853419844172072195181147325849378489028453558557179360038836519642791041700623796288537101700059719567621684095434321597018993807583295201098571458244739561965494058323369884662853458998145745309963833020342590678734127028229662270327490895241868873654486097893979665613637728726389499287483262986877300261675764784682868066889556792022543522008023477162880537508975640901197048542498930053496471752763675874399191033119108080508219194083883236971502123512584622143878708339338215111028421443636530528835316789911292582602318281778124816405646203298496562752750998313986878161726037271901473734330733723310423985164605337379402680040234053030711498451000241396138079040210447232401669582140478805867560673743998397477867309644036053133805985976801064776835857530318432309821443357151267511425089945689182943812611966803631502924271513288898225487879830033698506962141757821355797435796210568599090803233044497389842744910429913181941208282608040638723252412501209531395106362556357758028763709901121535500290771014426327596958807741284971661330556908189186354130052928804951628652654050025306192518917912306414635192132289754876303754156221434901191982247196627768567954317341548372045298510118522417857419037990175796527354949881751266758057321326839259185967973862909989736089510945048452450109073449632330941295432958159580788112332133145146996513398335804144637515989112569226403702244007837255012389040837033355909391229501424052233295141621434678104728847364766785988130507921533337026269719640875662648743555496455497190865630671036771894917688261964018209515808916236364747554433818517697668681987606834773482233132405533633959234746098941402717097239014631314951254765971965596196610220796281206678745779579526564859897076406630171971459671324940582157992943084068150194316480344202579337697946237677121598530905214534376575922743848182180288514826163845413422045972141299541535743864779439375530525425274828184760280241603004224549622006728327818737884165207748854551937206969777522001313064168096426549962193200500071063676945845509109206198526818444048499880254320749184002028900601638497127356276159015629045034231408236495625105256126832738862409244831827968355840740640296409356201407052119221449560335723573529748107177470641249161393961086288222818604385224170638646441558931844565471553893905508735842184747494410407760302101581568632673356376237123666885931655318254971002031691153803747973677988809577430378660710514459228587560796979239549772683932946648441444019515791530150730577940727244026016580062478765370826773898273514896619157541935621510701192758411146065735309461251529006124123847300205174070056035393963682151043912152949672218226284374645748004273233386138189625606893717340832535861871898959030843144255931919088594389707213393847202191535414316224753057054596396460659713240889977472042482280445402292491955455078652108512662634266971321921627015773368125402103874097121697118148579357735979092081334976874436551253929441211219159448183912055723134056767748615067571017995044891605911179935224241448102656872713487664782366970785405297544166802438448555954048722775796020500234818519110623646827260161669194573588783386317000553170266362138178566611624716837340341212114439363683763825068453211201866630620817740839653997926883415777638970565542002542434557611744377663158207430358239131295224778067593249308283431755066005210823751272929979035265018796010270036198803315512743160132984389568203161935621703594540234270097691469090878055813315732764513429701006736555753187020423052511955324281138725628172027116377432974317400476088247905373845458446130368341341466687486335044226805590075539618766469094332988921957354355182944792337563890569056080454163857608517633906124120410820250046809671858900170565808712062891057474937685006540453910948060595714062942799529329096650272256540794965106954845340869019029520759515709656005267412757995866037992629028492891285056912836566635632326287161530290803925133374166884602345004233895486567322545030608885899719590213748830828728902573037809544063221022103699533066831327579667735638995252667106829512261632515181025763225105336875554021912514336119978060788477856302137459163868610419831642780687928563266989209952119575088383437189458656979528184717319935826460374442780247136675261172174230467953270950504415744134987955273408776449534440805673543188978676193036633757171314523296617177003614055618964498653258813405612890212636338971577890313179133535723138640280865979359227661333074731387403351871779780259394716746275746167747546261849667818708676457764845884196700066777039963676390406363837846047604242727161698276378747688641649803700618701077812909005169757089587150555798095706033419451771751916228701006409461231577307670008032914353739687970188797608985740250851808721590564759046365937198679364714412149080640131994427533212237033772902114892845829823371495011034902584467157934140223840377586818153343683556921817550268692568630939985125093176414977232020398787416026876395197346760109708972576934948968199701130276261547492070495381306190373255899083018281221514396770364838261252710191722158326471832824524282863800790663389040614008500921801706516697429940933708037627527379360558173097625577004655250389471963618268999666728084727321295953839849708878710033517404656924872657470916530782601758166857445885363628937695422706193997952214553627602693605478661779705602235143910556941348231936856302052312221126077031585424833889709659215565715592535809626027126739852836069108178878044596919521060873015152029339856800144441702434788787943404578676740984001876346778725899826889895560058370539219404052124078001050905576663754510054054806665746482716112596563558539504655779253666921623730730081814922208501509895323537457504436463342016088888759916584969636935235449933050194078807395690501175225993561315108629780869555116245564889640978973547289109919329213980798649380109515990677337537930582144428436828417776848016506085509236308101834226848006419382177976767068121619226102996135149512639051944657191329147228779698777873963237921057508811820390853201320436495309361257317614223658906558467876255309074879572065192278322521503669356071097212484025590160157853339459240283955210995366896703386099536503781898713585904691025683173732977553014449286859644899017132238285687527083266412552137251073002646994386661160298536522754913155987388704506789431366451368187854481158739912842792637653328482705015097479880871878104834262112451347946323684332342565491154929722687054095032229194881093240901370155318119578249412373937457307405048446729494095666804518557524868958187798446450200616188448262929487735291233593180524137702133017356515017977145244590715451487552033877772501538348218313264351423005353493530812196940174233240196234017480007731689269197530698312044533809279897141944198094991238166377637995098561390473714406793505924449023235619346125435203217057665010436030126203344778475989858313348078258101525224498046053300311194630035301642568230433706078921413765813865869800760099881872580171607789783326005140231526797993853060017836528385098459849639741171517571609157178772943482314006096751452208293803801849933274404592814956202886464796000461624631734265874627150212462470793975436242936354816673369759862915525343941169362730228732266428088792870580751205342204271503914825897876022836809241308989627751010290945742444276415747641455149552329199481848816731206484126140828960270088447701687802588115640986540878897221155969927403616885206216488117849018448651702782320032012264745736366532281356560200099549163940094412528401822923210139946757304957356946447428277788760550452118607389682539171863272574663944935945196153757600320690840233585107067854712902185978549433366229102738509869898289913270441525655003157248749114763936123026039993708804179964366737854319302282924183170271985965336116642388924437314983411841096836117758383769969521776544719916712792718125959427214611033812603649961466134525764595471878191605310253008915790197749937187675004362325283525929804981178863242925076608881208284303703925551650024449528948714290686120243842887857901016660516708780013149443252002865012120958667222785746253775211200731201659039255698972611212395865961607584399600684330082975405074329665541223884436549682879754861141326030207010167489552825377760344575927830402883547024613902446329205113541650692919800124694497328480713483334537223509380971630298761489999056421789581506947067650157809411475062799867667619583172548113632039562110748432061459084926335598606561480693468113493593868489180212912754327854493481272251492968687704526352940380802493290648399343674809978629135770672386160514779749657712606494667981793516791641647524858154103356073047825193522073273045308254844908028800047919632328791832547860621276976435852025969938606564372002321258602365475688446377697367600483023951004280737610424048832509585396939287549081919137611621307823279040185856308026150868504851914949413826217039291786318968730007232333523615947171809824570558232093844140804510193412828105530116160758513911902284067328500905100310512674893678431973180725108783842287770018557691647751699662471987061374355708144975271635984101554104972901523790936799072466297250599270732463550640221756517244218949214343886824780617830804791093660477028387364805222696454580690315448720736590296151398568786683126696300128243783982043605720287721995519046975492411777557910583859890189565059177895043440619461140188435411760981124947922295126835335541503733207343014125755895698193207294495556673393946422239584199973980519715297839279141716912525294366675260109831374626476682402303165117775832087471543540298506138689756901918199082904794871102708015029174197902487237080193259269495201997107907568089783524390194725938191765721384882482593738904836677688115295824385314273547145297177653712245039737400236445299853580748601359506467691630187294136296655726713226268880848518718007578270180857733473420845187857075321324073348640882555331094542011539530515854426055900795533567328294264471193700947430543912267625702900923278381868110509128930380601908602876532056781435330526804754008130701715620084299096580030812304606643836118006320181309772295614874974030441849981169968601737848147160561028403124831748168589134654419773857971066006815758571772114790856945227177554605043293414203096871355088348509297200841110147095270463032546116042319123547096851462807451391761652503409616869061884174968912563878888437959733724045684799178531785859126165532757617282428817861785942995054049153565462091732699682695326609404469413455813131775826775215626642845306671717958949466717728961376636799524873628251414184790939348798750704918703634327106034097316805622671302618766212550176207090502082210679083818824378727789543467683858946833005050651449577987162180107419191559446436355240730534823922240104242002965031857128957366415366107964151803724635635639936299495838155772785810860543351451713081410057555016815027252915588927493996411810026816753867826157364232541989977310450079406175266700449651963080265720460397516444721752189828145500585176039146874982721142272566399445022106072592874483093076176051795413274344190863429396487500157962635119969129304614228800004101747121742600349424995285456619784036435115986738274501001792404339778718836426851689320030492027120877943642963506863264870719922643630120435583040757203565942493956282741346020345202803978107727917510368684799635139393640786571695996592154483334195549839474027175476764765914607807028397975844951593596408755178943142361249478011014856428488427283225206862163740248245503692910644248476300499350512961437495234729366708911827206430340840590933994409169922073779890620071661721424676847392006831609922210797244607792159458926347779600925779955258706430995964540019467330832587866645612318870205946509075083596607586394936119110679000830427124551939138362612158635563311092164745673096794340285704754015034288296873039091699509959284552313771432182375071626122914286294379380884857353282974963277081823807609943773121038549370669794497780789802810859428602093623004958224934094239579808551116270122700451431460967378827932773111523352440248686918783217131122807511305376755149495129553600752017532159672257454622103283368368750578084162545480118635113670030977545496210349070885372963998495412959225939678548036930303690272748997639893904975392916168621010264003981081608089770716701775938715732486058876261600604627190238046387953988578956182685089214874334783372878795379899905542219477936178769912610195942284769137019364370727471389038497698819439366904179126718985708081049234932959813416007468406493966320246672757441375715916343932135185947209311216634636738381383461598629264332688274913354422005196558982112094822188584566115381167598132071820820000527173144688929604600427320493924282632561163461516713778239085342989523446768183998355852361580562210497096857074335373380257388659331513001065078441657900426711229639008661076054108617194037031941152583226340955895514618278531993006547053032033325610953382810233528957125328437060635003383280614517564685561964801119830946871494357774912434573859489199717624990603552113501497375264938323963357272132459932730397580017344749662659432284937317983105446101473712529637460664087028247521617735134101198307894195929526054533477726501504926943569560503274158809348193138856840986933052688038208146755775389880615810011348454185248680284562645763567727503936950654713903899968936422542000209235785502411579703503982472615689264506829448429582539069509987759373600864542234584816108107488790597276951764924824034236357564836415423421452863237294521650028480179175122550093698576726392971475906278675969712030621732230538435634162145202983427959371522089105726748624117493375421298627272759589624820273239836897149807507390446661267988237129704887754258625083089103232302710851589104314029161446203492937188028278681332946090139140029868364359734120682475354544782911027175472270558305542031414989860017378511880040408159350898944676179913511030108328883412728161852478144931326764786376257829751265381355822485665311952838194551031628118456640661220196522182671647467796258470323386148866882303185650896688949513362368099682290030582564928162306831619971055698146932690909567398980359848114130707243862427024437607005482633058688513737102902169034565588499688319734333314779289603246604171820097248624612951715105552771306006274772346819250481942642138495363055970619254340224981031861550445407009156756526584827469464268225559812125678139369832362008948495091439589432429157775954290626788594036580749308388353669854953537721103298504066229395401013889873039334853825042247324456947143603046072803832010531257746864773275816061985942770385217165347778912258332862904020389388856464884636982387469265377701355250883222853267176276429253884188153520162602387689131393033144026251238657043283076773020262567995521775570566708319673411385332864213841147273451587388269241163050817437206190673762081231005632181028270115010178454892857070643016198318919547709549281387037719097248967665169042738541157053704719441806167594284726468208728533971189516109988047513780535424975949691115331018624969502828113782314677400758185831540805922201343455090144902168505312923687361953410381479780753606355845643434482585788248543102112729040712058262268393158747314479755935221967916475615873877451742220387596057394370680705734804483356541273007591824846106268739907252310486933022313855902064453545463141645558391424845084152864035210842752088324888643773112695358650713403082138504019439332924706291027617577843431875099626446739861198253354846172063850232244505322860159373133268616099488922700715927760400201077199189334000205586958482883694316333242483077325426149768782797432432231723916218889164373745065834440919694569294772913404684719106707738982690350951213437759742753518628258807586020974765401688824578923732130564902549144504307762705082564731417330975560439106589631201703293976389140489059104908913958156126147485660318529148021694988335919381120993639992490042384302843157871929041791056894610366483100110533510413508933039494894941017454592326437707718966946381161575545603516486285835227910585358374376045470736738107450668069777722644800402833628413067715221347846454391022147952030782109206077873538549312258424307004959224358004595334904630881695429317587520736411104946875847811189142642479188769129063913204399998812951075069834730476807517817272132909304808663227532925034237784329064045794603097871443296346701867494254569850567474635491537542239570152968878243150954486115781637294872865999742622128721024932368835936618954292874846387607895926691461304129620667987443816576205397458463447859260802407163171340881476033429148645109782064892585756600997161327219956301818238968690278005615236666587848565942783890501627551824318708876450891971639570496346193080558936953330360378785094770255401986178009044264072168598379344655782943623032067156629987443447259829577506313018546365704010399481679617886009981000705320442670334089339485556532506409693914461963293473430993587149558145112861168111525993067006663332255116019078642366253980258559667480673121825660733659407413202623602994436804562817394564359129227820146546997736528115315561470103155383183858297322386270922632314340711024919022913532667843003158643211407945627045511935251669836029529384400286015226305221691737268732629491077877747171581119404177370635423472655384764553037218096408800138694126062563168954219154628479238326121791576410079460795853981152019347563903610048207172718681993688707754759576879753655295623502695425500831992796826217125448645172833393372592220038879156013107217227250460518720347797721903871830767302635842667868666184260052028631957411701404236361105501109437754809390866739726839382081759803562144723893953432725459009799819559004028331731507504996375311049071888386995245491582094607364223710856086243002761211519762928736606804283894815839968251696811870167317013069655580915919228328480738707205317493158082473464487792031736029784455330737615250541161971324038152488972891017292094531697185019195717869641610941578527573970028667274171539256811114623255760783886345550580749043294368586989265179811288976985508246565395881119217971429852369049104132166273618334380390770971294682802093058004692571363253696797030180318691221543901507299420175242722522117743570437969112035248432165817329726875162692772230538162353380654703644741775238949858199440799504861593581583042272093281282542118612751841301408984548936466279332242674880123692961997343608472755432280462928159924604756461374807479434660363458035753840188015741596620952089320092508247821297106273900977704536415566555462124784173185922813708786978437711853713271957743172353918692197312037612204559083968581067400776578848427075283071706298984917012458207029037561276695814612371657219736713453408917147510608624052094609719156118525850502691948237231916509736600112820271410724149455070969454201809305216539114289757197998899151756049329467080192408096360120343543656881805548658007873188189853789283525019261065417753001828748432392290558416295020848796363132284732025850545775099522265339245921296307081227164033173221614085835913398745418756701537911424016489518100478385319065948978567183287182239559889543192407437653675156772860555707760956488344906071749678469580033516149573453884356560826268615583089845625145975980584813343015439264950584570820890496567601887681351487471549524270707878155351270600823155611040943692506203573853206712160089423271711633969789625434355544453573710534128829828884129524382963767561153641878435779795447899588468538289073897786457697793577207747969377022989318681866158251894809413830273332036134267532293474956933837480137156818112784341159948096771594377326375838209967059154383417689035804548018085038818691297856991419545116998403888388678726152183513381427765575838931464537196445653382919236621744735333924416509817988389799952893592078042189611922900041889620437541875651342457298600207259374598481091740497196816864440312378300008279500028727741683416126126733036293158529986600835572419729547409484263087650857324772651260843396095623315423831387778571591877853179070565670418072170897043390300323956056351981039664329512066243374324124461699984862124908094367929920216679705747193864430327406918320731497212909052302177266349592143926042786914543930421148852304428136603225554392569185505156790760766120489186917281903674801755611159770764929643265650541437077056543346246386841681480113766742339489091933648107626215476819610993730192577842079381701396910824789417614909313337810939791040527360195770780359478773782443510750711523703446113611894123588406103946811583811997479697941531983133973038766752050359051577862909895179171554433619955249515661507713639045782371475157913371233435899894441229405487108726016717760127054783579279807609832790291094721895378158543965146862334262307732403620550794935417693932859297869911253010994859443180139418639352300459010214574993024780746207138915704425665609173833711101302174457547781241349219268980645238079220354770923169590097926011199066648356388850362068228900391212399709265984715569717753727160871567322216435420047943399922968898407948708613797571521348009032811356192307975149936495681807843765095562418348839805902995601244342790617243283775948944100259727497085776829081484187582510279149366314337754760923075946177904340427508800528596776789329178093735829904833579908045690483024688124235994388015526115516790534542297782195093879919915166794343893419919640887143031483999372160976019120014316100594302634560331762917314668031756260939035600175071428636548223169062323399772094203357693092595135574211533099611430744588635930017512968703909248983672354369626117324648820979512497328491200129752947844262013084579187806157032696116429448522966667092867740801855905891930538688278208678239316551577106851549766536270147637944400130965309956611763069257726557119806416097632380783516236840552729189666334449671416750813480412071329390101891326710760168418470173257128406779898956879361670303483609112520445146264227619287683392910126148653104900276303423620122990923941640438603571616318501921421198621283650294492513560024496661067540992782783431934583942601562734836921253901347488163898763724826205604557385871609963726853947488419442477597056236310439655073273345888975875789820187413929721072442539280532999262236687222692524728952230633048738565647834562408813683864633353314681166528206245592875274927038764162456858658110394144990707079424427648698729606240452925541292675510605447617580334536412767840782310841104214774343318835941871120494811721429595427735682230995258051791756006692490461271915743678237751563627713300146394637329642365144840078444939315757007817053662190790714193215926874141426551420670500079885825852710187425562493915084661326157145583294916444191882974166258367296782831145765588319554779718612553783785927373254486166257644987708153934507642307910971758260285086751280216169851195402094773019773976640021450276372879157133826491148342801900889607479002575150481020587275296495509973780036118299401791981864557780747271713803985365615217536856199085399265257174492141563540679958006877566383039652972363064558958485673486725849700782767730455614741418236021314001772386371307196435914409093021967820456270392641312084352880318584411950273203846798692662907646602289294387176844540363574968007210289440458912297337750796879153707061260299312127984012030216686014725598361580952028739115603957935392283381333694032098639448553995154298227569834556130164040679302935556595463208520351419732829685853762425853989310095769099991114402861275554148538871958692346500491217711429742592892199809454299431660653273636751790807398576893808878877697863580475608675943811654418669606738309923601436927431284018368221113323190567596903043551037227269996831921729637933475961260184133510156294911312017968763879510121601062756192549754745359972739118616002162208594572571417024905384257882797609519489534017708239111668783382987785286223341329056079030957683870704014095174367724673804740230436868913059112120522272608373206962025351892668678510572734881334092779602533514482055631913622557641615800635853231144615925466137250893672130899477616802617564243344780408312109328918568113952698839782852186332209278888583376586359312802395919552436662414190772430125585763463112676024563261591978322375127579566581804331715203963360847806694765937221043750419377450240824256780009607626840807087318261003308550673899775997415867584388150812187250574237527359610592203270476571492658782572493871558665242166279340616829743381841314896420408039869354244657812222958161715530405641188991721991857050928266407578391065857673021265345856808583393617269307251965333035105747698514466640525920343607510009551882943310203608237322872291583723683218537075884179860498843722134322470935465602407283224397474395353409213612882870666291868925324168452460821844391597553781224578805227743148177873783300086901439585610226574059542728803284370174659973745324937943016381023151408240396958001027581319231778264615872458175309432423405677982072406745821240282035888360727823518587249893923263513426053744213616211863249125519246070779855184922226765033474179237913910681346441047918254530567955637661808015464142416813102435862632589894799112290808858201952901878977030173099158852853417221880504695367327627324482339603033854410012379645602916188688253932702406681509075824263765101397108765540096989950128471397698144325655905842101818942923785180565589330006812592006167431528777464532953480621139303306257830250779497174964785271575065771858789489934508669324874519247659952542340836227047578303154140971762440199392244488335959731362092187587672584971844186365618329395129228769041244564429346646048791541709911004589148224038194742818270859727352401326642233796787507255929463071337445179260095538353580430860623476948440591922133242348781938745129801972971958971423244722705526233854293791308379460889799650975793039104712719987207460813600349740454271846033908849454197314763181349647013492147257268234851764667497226388931919442194931094660587177776125609765592521907573083651430510637786856336728832712242080290776766623664862069207496424037564909231096455844460832417137099740654510071911806551818347948742846410202028501225355065902813544305585053591779491978936231226343949850364113772481571530369393611573903567936343751304371043877809054911405715919974838326076543974244120874457937158143260834946738146461475879803188036322676690600739477398808454563719175325308296334489435459275029561373578920032085804236951113269229733836879794468868579897746115208138410260111342317942183933805511579021677576756297724523307778356138333227492207184842738933545500500146189823654587623001487068117854710609293649330995015097553373827392472801086195449900275449448799904213483438663621424773769126096766084899110609083246653542018062595206134343232860457409440495978451003255233732870254460322970567234005705729010147453085301271935559665542617139447357656468795088267538705858187545178592780966602081411142387114729712080431221380680420231626967684649033491016750874494780556533437445120323755316496837595120831407337298543261053899617019449351911451226176271784858118297370222956231224272554896198729922998719305077103759385619967212667199047619681833346610285175623591037446267167200041168937941758715425605857579814278480257673821949865946716115532141159553957950684117941987356997252242420793049566673394113768999232618490569019587971850305185872276179515183980542654324073113114834221858179063268527745620017770928744602010813406003139011380989998121190690819106971368506608271548576874074132658573347631751789788071314794029505798619053935755444498222361130746135185643469375852956272440814730678956837350449785393021777242943526390862462535756249557674006774119796354155489195079893468653154266904369769320931922290533014261001632136308089172244968060817965522627665946280473747786564153097517864236598924243740809499546227738866978136717484950305768758851598220502314462898928273100429454129119416524816382108561702068943576751313845992232596183009580566128816835193452180689805111448128806350227121638405057324213944509316080865250307541669657384988560116371028276108518464721337614537227639615506060426860548574748395412857625865755682753866434153995350033639123413443093474941050878350692856003881911286892013815169559995210178371870678338173391722801045520184255281807306787676893357189765705395066590429523661345493075868058116860229945715296494583340976384042906738639225628160670923926564533127459243170215091246264255450027865290022771397020223300916157019124889770155062062088171267796832805087478252518336868778073939843870777374501780079328624382702548357538982746510816827178676465667665960497420262227836645858928361730567783093108861756676494981522681985868612966172987907957711881762713015100477284315830334825637403965489760983454898248740507965293054250340104926033799074457931106845599476944723816135819212130913773342781387464619266245194063666236916693094146213351981511303722356636912396165437493284843107735741998055516922043930268892902635052938759120518742545680191577087286351241219768284526107043473618995530318692528307238186463021724963994056486661726069892802565978051434480399589550557160717727302606794094458124162892738182532146794805602306321845474680064488394122745944343770799372126423349642101084785700926227559792989061695939650130144955435032173170010492473950324099533029027881496761634882836889643908426470826632359799377450631390966456338828603852962262329621478821963092317870496968023652624756945500766448623646226230052453960492231866561596532257291661024349762387359256160120333879038549179598474843674899546698581410880270871014958094600139445821444409255172111599859056858438502537315761878578271031451323454050596315519223243448000834907236082561676790505504021357200000774232361098084480793589378132932177060953015173690541263294267500225071350682212135673022883448144236217171656336490606341725421099057461321387716438950145349233084304778859110266836392219028807763242809754336568062842343362280644323880878843046520669615903389396934389837078654693753005426336252093828828153151600228753491054160783478960582329574384531411902603630128045214794883538539227547954376467724220710202195579593551198675394845133375669216149556255399380107505459753417539861397186711491565377237476412585964769089885991879291947183964945218698229034271176042863649776231316372255623062357546275694205951548226124738794383390286131853978574255926916727874985091120395034510870991984147107153988815344406436688047179849244549420831119602419496001014817277719598824546151698215474386184313044000686291637870212397792675733924601963687810789705380665627176490101715491086541548865100717544763335879463935061629341758518025024367915582092230146220774199421954515546290332170898382332444141826394999959510724608565343285534102413324390252919095609776888674259627811728410479682753284941108849647794157564758104802723302682128814165504583106605715531365187085376818506773656037357423977692148508965551905797637484350476247221497068869752666243809899123527219159857316586418037271683892318948685008553373447773421291187360821326806447292171979038904352494375226461970423407537526573445448885590268319691089475954212202716322042741522695586568424322281502685438535828157129829038766412664622747304563937121466225907041677396334461916237036067011763519103290716975617740633866602069306294573528825141024140846754926456447463108514917001064745254203173321385962740123485803602960174398367381267549709639003403214682625324109882994543654618245447977150080885983020296684677538563374814608470431270903912377596656245865882414378706874911004719966616149162910728281170182972859551864196058395177043714203717505557380348360998754427650651162737294217461883640052800680569044567374120911313791361512513110074387490031345203044069300752667887030250210347937353239632517974678814259121809062609544083432591104263257915359842718427938605774819044709199887923961563357825054941902276229144361404741160764853535975618910816090589829455096617856558036943883416162806274005399297872010660406113985390649213143587556320565398927945531264102691387418610533073253389683822165970615252858494861019941401227063946968058271786785353802271725251133387728969809740494635727904205080066314149358796527287809719126515202413131845389511476076187350916653209788418710185446365376950916530066601661796719171218884908373637655116371188986446074877172130154995149275197007256027155534821532466762713948672500567439794502700560318544285171589559797806221734569196022990851855513448124414702951469794896312604411389239078858942006805532166196169858791559061175943960800158777564882123073831383876056558689696058837740606999009772215295508225664349402805338315078072993986808885706744303064920459755957043492018791892471848645205111658152269868780533096806946445053226301918448071699505969514772296507682400417690068024093732245945801056486619068949567201773622400870058240426960328564717345407329076635977296372699269407284443642273646742344243402921282639033387624431367801148875304825001287526660028664052443420598496802181536543365197136482660471072602119443720597577031491261152664304309763478608338325265681805448352002513271740072752193316358342040957211348405487235414071198417414954750358282205344661442815679659254341319024686045652624672952039821584015326839540258270749114373721782144254341465637712420989516442492738938954776096171617998206861317790694623475865487457956564930609683888159018269375148175758454928571137021973845902248863771996901081569983667872062786452104230962509822761066925467195185051583188669504984656642798004879503787627855985939042355347701728513584544213195981426593764334199508134513505146869668936293139993449984439485119631182312364416758977602685468750713697428066581544771489802800382081819322666692605542772270403340458216485623990382315710309598805093730715047718651163418972710120022987131716923865489561530484408500197592267597298267858828668491915488436996211472992318883017620319313813334223065615299400818012544262362677958514656566473869763395006626940562766025749350139019696113642280007077880857717645844521850501480902376954324522257318644317431216280661917639394108961048467277317140722926462229975918011777095624209561757411486691771712992576325839859019901087545469759402759117407024450545510341130012685377335353996246272133835354771752834710338435277258967913672469814804915356629539639265727121320153610227705797506129597650397242556837541792552386373883180077635858601537182074649221937112667415752117403961864018147145441432052110065852711480291886708903159757345555525277233471381771793684414620723926777294588980810587163147664341921223924832105816746076622638744377475077057273579116422517023023977450907170003822063358179783346313437588521049136169274078666475136917051531202816343783683274231472653871082138172726304999182627921414629877142850152002424474577400897965062031532180623120865744256402187358466741854516821570115477455875051983760122499472150347663609326110013646947367731176497886073967836526894124760659130067765526592159073978834177564883374439862007216452645938922400506138410269273048994897706667950466940521972772483587306498081687525123724846911749429792313789820133480377493834755387075901764107523597025453964027962170337065855688550894329110828317780831078800255196017224343255032551212145267898742955210295611169719543466588928295485443812396110327531684076330432776065365770731363340919639280741038543074530249495893217903273308918173907239887903880697759897472178822139277847406863057595547810731556855665431589544189706512380080333860796186794411297563446377014721159072071118322126266488672441768302931128235778103025382187497206475030464297309049087208849299367081692818521729055672375159345181574837983967197666138000622142055481680967634531646568923435147520931153827490605791314842077995416339158405068217830378695889061120529190774032891640877143426064176963417405547802592815889731944148876234163414084466849956172304035648501667880541767779542562935350712968016520719794897142891103989503002023187995155243188322944182404703744496288628061123624317049343547644954611768332632244952633240144045366837578999757527188320115856164452415130569300006834612060348856387476374109566485387150516588433087003899116666351163869428611989878237338518677498651074082844781222168150023493330437729057447230544145830337384929247565285768476148589226123052505778034096294110186940614021662334949732344477197164126959669204674264424759916054059786415581963689239105605287486796749961067080747903808896310673871181407253729332811869667327569272496915991783226953839481500828253709336322004176948688010792147371219416835714451772505936949901983549455246761649418024724058301482797385418414200597892468593643164168322481792934697176676641416465540149735889333486578651287112664588876110369121816656054997189710346772293579317188397103628480778369904914013365763677304069349819187998146115424041980287166504635240322904374195992532039986286081446697313772130798821920842421658670038290600450495638780189988407676874522259605861067632279655809715400593113863126300730620124597085801303882622367016751568796335565521837125550808378870430894096431510560683360380115728514822600356267591987381813678437120397627206828134875949655306712637247055434946828483251875653425173703839844771539857898965081222601127180643514842183792284228212046828198173832348520994477719657957974493178099963157066152384090304181233411932456074190844235935911330130665899738545588688741338905699959543702070673850963938068726239804674144161832875027297032891449618080844117194717541806899406192603641795972825517461234272384716650696182435200590363968841009745721969990465491098663540604751166081065182850082947290837018306773897280197471717252426480475674735904545257318525237601645061657898064842491643854836305997265862883147899037491301930808199683897829767315099943059359033704502440226435488405344160079230466612035411763194191239381504492573637468682002007369520910294923058063188755385949019549996870030033162300781852286023526973336620502809780968379118164464182519657292146710991814872711909255903024162704140543133832905209656702068690075136355195208929385595396451283429067335290516658830907341681747697745950043021918360516491881456882945063785682236570423118370574918396404610688305664795372332170967082345253334969138841684837475148629818271934522129761882792757427955200874267884713625185148424661689434206965588037049627273098614383782757732668157803007901205164705169197501538586698753695570592601671394161803241059079192241359423742614512439388843477345703448385644666844917709915895628479452776559634733050631459541960400307988225811236380226586134256797183289467576666715444650651124751317840672895907162171971460405330738052651090622288893737148286031412622099154991176661049482044224123188939892654887601331863742511085806946337128845501880771405360680371911733277773264281362773092169775659174994750571767241849629000986814181010735786619185024742632794379788316652708837056948592313882007259317750353489699476479148132657825687301348500814027537785450166456331416109326520476221434175017821837440925973667976174922678165350592677334382514906798035698611343168022314799992705415761668958394348470990687520955054070423572839403871147756236504684612484897834838809407280173856308641335700289432018639940404484064564822243614006392616579770608991860100001144217513519105509425808097728414354708201508093275605561030341406040658609484246267329598131431121023659839339429099981985861447663285739278025972353114227899849252281494455413022566256180767724850685877773186094508246443158953167838620098421784601525964085788464922245558643615163282106321071817254389561433785181637219726398394787863878865348262673027094235877981392758603765518947637535311591205476257991240562339898613069012181764417089632823549554421312695398636401170519815726926942910671022921353512622259600253631741865659258673003009984180700516324059853908441570698411365983062656811029870116148666803678356748972508651000254029927532651769243782265412892497685961995141268770251694753533641302960753762401464413275558458772983284537165559388995424682117559896576022791305884307593089426587393426544387251546441106177575828497364109489669803491389363678242964922194585343047141349292724080964183943527064375941359871119453614247331044112131001325916534987415332674318393729272123953209512965082242649415176868037907509678456768194421678366000352685714586129755175699291802413983505963337887125427454446766673192250464665222461628551717825022339711541571272266863357933198203357258688825872412163564697584516984248318911165674333752795329833358650102457258916896065974727608329332259376240617914353609532187805728318434194731590251758038599619369143487457223915104086759844422861152855094750965962446243185825551008295002806859830125476701426672467717055866053663183095297587352991418889690860790088563704592566617525251912254247588576509427031428631162599096617297280539057295329707457301627613146169339356012656298437792779825559209453650770978271363208556598463386153900519519569056478831900175941065922555317678190154906507739704946956376274964733300904639720491843144341244110274012061299216428734217313703890236732055553716494404868518915169203749107333550267307411230136022605703115869206695513336451557553411600757715232378948534252672633223494797858634017266643113736949146312210615668075827439086884442465759082340745102231258159166812699545964920822113823333490098711458044138215671516053204648197888471788625018083277911030734722434631997359657875561639845279411985575138022009607515699973482467553282851138976119105773877392932725497857284198521761570142950979279570440652600939724455775147602421615848417348239968261920362067154447374472513860300895056496479839754875746259583874785153124442533388528325895741894009428537367448617593442573602768123389601513803704365352194970120918753386501315436553725244261799088229646889313178251485301825092213600066489298138992074969413747678302779310973519025211549793356478083465017260605747286568364196175742030236332094566849366780797338300025944710377867501289587761632174993232023978773482280711641580190234740039418621234055807669206899495018975226901829881786849192742095560784289755950559677422312600741143120243763838208321192811492811505418794182868561844304631396317533504932842989720528546213496566015478180405442923932100847185038026403656386013797003357082413529446732555232698749356290054267048966376971418365982416182902392499797215737778641706146203808545761790890668149453971570432324508080283167902146445162616705341991354067665393562340490940304259166785732076594856660005229564221070430907934772932080884545079752052308082182450593470546894923167094884448028545444265819452532010621400306973931688741817496786016028913572921890740193500408360338773144334428934609983900557631481827521601492940245761940671435586929339370526646409032452549518395737792713738351385797294311065506330012313899951667990247680731621332435791829525232297146034472063449910315068945135959898632607134847084460186206036977539730928855787563805603583026655619119135865498164998799640124830514174897992185040150791453859085365694002425883488638049325420639723656515461755630415284454860739154509304677962711160859958892624700588585837716735682816779487752639792654964492706414164978235661235814985325134298454708003906223017600944036128880609691736273000471476993703672643409691919115807283073114622648842639497441129557500560308021249946208063502970836220123880431160042067108666329868661642780879271114494283273620437179489257627818621094144895575003176620868699502883819118173922947632050552683085061465107794284729263774876778051076522746104955882893837444811642404275563002668016629080209597854661012120580730212360046319356029968120366271213870007884444318755766311612617541823011355133199891900909556194367447464940958839191698934346713857546447201847845017001127420374443498028000872717204094924496552885478927132273682736562746077344803911404017185032664732726292404246082793292653551975275576311472930350824529415381108856152118766474001932600147254169181688270001431622044255017020603939465749800193435904233245838508193630407182649245972590158856653770692934922732497458507793493273822048848037560649632741628544283390777986167941790294425594216593907393051764469262851639286761172956020399338970182233437108668131991616507699526961801714296602176865223295919543937552070067203361601191522878144950100162083027852188791344990836288975127271016639023739386213320502013214516324771821707616911799514496214200111973683694843140834312981769311899770512333125073803503737444055773696064059651905983002566274513547455172478812680238046228424088482880680851810797275529575455563030698536115759831034794333025975968012301970290356581316297030798982202089283287626744003311619643454017487553785617299588975375249984261927673978674217663330814997945837325099701804718004871352219526395611179608559070383074941903654533444029322065859155098310683980266681588764883596930638185386157315565024239377932111197385078237675937742619031392116981070403396216320068313616788453183712175684374058974387701101332998761945973386823300617976330906585081657258851813473805093838275659769606893982499402504985928484023478268644744204785187668046737637690704683714706365787876971113581634176207395377036500954696438246414513916918887893672304598463853954030586744958274259837815249181119571149373631989363274275296398789436193542389612282286840790960210429531275295772155270423742993946097791564651212576095340505571257908213322014151526552465869544734606097360711555194136369319790627156994292467403640367991677512188221898321267117398653838605004925577051147045298864790987474925103881710883466288447578462640957514862604734637346835682256448480882639140042509604498713671432925702229004654114386472895160160774075005467167528739400000831151731103484269901494665696162851634872206909155711115387070637008420134459539224381123297096956728109453498471259846966182015756889642085530787610812822913837940325702582014123778541140305051031100101160433366956930952116780036822362959632909631065817048231093322015439635212214701626956004707564344349876978070988910227240012716365235390035917448287513892349467053224622739172079245189642482006791255553345123347326137785076417770561401690904672734485202738648463183259390793601833679675417403458444839885657361415119266138339207840276097658288435769110730224153690654315088134922652451147591113596493443622617244730419392817832288369415901003737908385293917398650866808191569551473909355353373835660308206948401038805007520032154558542010165032101854758615045826927365024380474805362319151959319207765006591240845600235655909943366747903574492274960692151858200922294760416809215799343092947481738580231743022555269131572472852451349330263697916657331211323042588637566587348764851745491309712342361277374862239787504056075883553907322572244000769262082919193814189912466925556230443629079932771829238493559791062761107314721687393778303676056292839346901759826052530118569944120725284283987708015205820355061184690490065093276942761477810460270812670171538931277586239155524964571919149847707354123873320530315797241245081219158403981275052553946279592288410172667461718069731672926542208838347554578154649124709181574131981750911136042590438042948777583041755864558652799723097258723812989661865962611026554054155686265062325137780692224992851869027173861450833815930155148777402235694392552049075582832494169439901324305348861979659721134988101628577500366858362713631877607909585992947126553379655831343413890963862844778804114496212454455774749603295394923433465166643351694966737567681532971840245591771365505822499393801842032785024440199238046607204004328818927581877745500546590936399774773292859828914730911611508009199306715237772123512036081258550376692491969466992993828858365264332472346801701080161045999774346922502348004850318108177625021194299388156622396757262317215279666128960741886287544408978580927263628960208347947485126286976436492923057679494279605314560854927096637861990985749250136570239391144403606925285159862862371265386423347310242745342802085111486120503305802269946332938828334480508404928852641067906794149098998562579432197393539055554403649213534767883672450124884177607560403547284473037485693416519917385368889131459088584417600882901236587631572942200836804641761567537015943295781861976719923212190692898284606515879769950795666020058364036212068589466253974984984161675448127746067173354141443405063299304306851961286069863680665257449825665414843457518156810616880279768852863093551217196652943100022656319196780525760670409345089907441555667314053719696256135105706722024701486230520640010851871929823303002552305639895647965653861043313589372438613471199446724140815538690149348052692068215271437623726956153190169995951385443448189226470535804357463202210135526106723518404916896316502068945615130232113862140157239902264215726686250809240163827494416837230505649866402513091946772901276028025605405408926500191920104518361491571367619064407220492942589943634822194232654772341412420769577519380518371923717923491163689685871191810483375794876758653536436644636296832527962122948978245677089429513081200536361308940945025526270331173536247685462359722813591008000029695042327071290635906696307283664493135559907669015031743799120774175656590370545830248020520401850504892350459190317743854797439474164842613041139564955983141393770288711782053024982385646563173582427159900410041748129538984950064498191298590440459985579969964082890034585438226835122663163316495435382174022743111902264059811401794180038289194983016279250512793230868840219487274968259132772855379073112974123411801490150652110508598141739444348716110524405228186231497057884117147598516135370303612914897229819954283406566414183845870059819825493384055429929383009051322094477113965175915555582343258429121711923930409277940993566790881349468227346223528700820987895696579003017524498963048173050643571387290321040925342411676895617872465325319496638322406432196156867519399133739997800860479411325031256544431485154992324786779827494428795043272119238439224985327723644209277636870710647752525515445651077843940774171346298700268233579664198788970440068439294490304699028919483542310200126495772870576690387896547062275229202895435706838487606815895154321085514316244298525617596825960516148105317486662426063135268894300615652611474592290803263770591680404794607400296415181773817597150782686184272943577093229445850276864517504909165614585738586054709514260561471316793174066614904283101240753375570563157263543431067939112748761356075586572472130755671397248285459855972788546531150660313168900208152794698446098733487247961407359475600693313861199731076142352663586975067038496231764110767265721108590819560624635966097266494247109664674179561526523985015306819288226479506284053839137336543739417584792509473399503389513961106128612318291386825891067326872232039325934242309631704872541384964704628342521972332876056679800896522599948742313641963626171127988932689090911489843853984863458450594787501173095494745107233577313172053862606737962239083576299601922943234310799202506793088777661654572434885287001974211483619134377428436500441640726630542953435977943770757031311680755180401088430932973635745040724996962504033587263360607074132727452563745480986512339461054087432823360794880902886391821249015953938392332833666121561296644626216726625785718953103429690353818053682503090561661300253441313951522797668138528729109008103681319662678955395890596461265843848714076714062991342172802781775910234939358241188107452371038485549246244183571192371657934915078972729326210920440575848059148819099011939901792307081160711878940827665347358956593589242294017939773243028650879519746572331665387983416516272475319171223182139217793354019691763693244328996759773749833767783600316501955952635792336162086055111359185114889540734658249637551561592592023592671125600231858627019512943789994231486336970585557203464382475468838457644476233857285268436266682527739666195637180902834771792296668698106431958648759704482975837970705148483701535568267203572974579881423452534114576180263020437030218226641272360464552244468566317708832407916243519648073163274260668048992343504288915987925645969357347114588647170181587246952588767789361096082549022998876028960078242370128006174344544926936757584280796110041646803770347410031703188142272306838337649391521135097204802129834309133116933833889974759554898008471128655288617161091429499052764240575178563506211534745322190037690934894740750960384683361015957802548257871747338688165002703510670399407319565090426355060497856729578003959423738299815382554513599777276499387152757637577186949286693606753257538211472250421685965961677153043776948681006149216597821478700267757254810413062339113823930240174899360891467625550911636658056354380961629263081344830320001839400860275927346407551430068448024018707088000588873507974227007230773327992151453696781449739120590759873823345079361295243509492631055401685833545505676381026679360448238342000635949555923472489131693901628472756256596966712324479029409658633541105027652693449302508720397497410035342732552920883827861707930258256773697757542448249284176156575271987225456770267979414866840409468813853602185782243918360027744038280200114810950768849685263554025627908932939450350729225240707218717040331011989054319766614825028787565329179631624893397229442507070856546026047687884744411168105130548848335677328361923142037530512481274185199918429221733964640323532750307767385958351859899708919840785180503490106878884547926445314114451433091113662022142365528542854679491983358374667667977566489380675598260012640219778923977712968344037760417410907875228854867743058387053954054829631644158994262413759762280869748581189751179191879143864366160751120371198001167915508125493502301176527285605087443979914653229785272658405109076527950968394620391542232667658712188736718095516737651959988837343011176116413146297700329295089060481949988417575594905976571843277449100031395646538251641688148393905508391193652674430877287563215924738892521993359455705792366568195387399145793500922160334997347352140826362930256760707417174554313768039367816120520740419954704420669158607796924554401735575668270213200267377196448519615298131656867901884933183219459398714418625250197523233066602880598318386422063431628548996400421678643241195031198323020508729889480573330810061732526508937643806409986262318712118060634185049201435610956074797549344881190644699920300424955868138099037217201182310430888917353788914959435140094166659410989316734483687131903251960636175630471925938534750623848489052865449405123211768049838157389997849010230724501138759445967785656575616665779030454019185482371615647601809504020346997195987223155813071708266326290757292988566519112674164046126699961900608790258506414652154242299169077663188681244030069115182016633814430067772213912870375696546385823254109616272471602988655246580018545367047477209475338253013370026583340031248856647145795010132575580149803310847937010587657430548723696403187882611242841879971028196014458957618591785451891651096422808104395030048317094248031326485976441800429157920365490045268786637381104758179482050235886264528632635960073811069784723143111628416155666386844853338858637296450959077071636110387140405887768205170086412606261910117012775407280774368457165022215507900400082422276965689027655814593789917023429992710798854101814262847326979187297883473290637489666235925280918622445377559793011347397998600427200778986951662880711924494075944627119604157018283197584712906353277693239414490066175514964194493625634125959768874338925914413073207929435636945017436652364084418771980945646141738433301454886106173118129510806297031699321537429360120162879592611464036908809768775934801869515870465941631064569853484188306253703619580357592043988525075023080053708164959095872510532544164398820845161395610874231965881761168814003124069032319827729073893202686271907846128436083760565194437497604494572292565782604139530797179351123156788119940946122959585948097679183047509605068618510301084143537335696194316292508812178253935124094608694823146283000286026369137191105985029971094340311210065081704300942526962831332662622369352448233779069290929851858672699302871210534905263153112603408304428290423080444384653863297896295026683802710642784402014269297236918038357022770574421566488816407513038964661968439122135379138995351261810504550988482701199003891887013100614050996536980535252063909595700401078933459499345133806600218156638531717261000557977433954089189574750981876325007764711696970558693858903849567126128221149936739700292279963447776632266226306694428606212488770130994698847828867806895088469258718877045238636427445184242919269691688652832304874156604995355254463813861184683905723800931308982585972218584752428141155494032477539759178024460199785376252857313150836682071671054117583875184265891166408600793625795855500022078048680682151887657293310567866926711712926549342270670679361066639661262996857333788303675312950411580902212015581875272410391407234060345450678816133450652404492843199617517860766839977222378035788442950459429190565567402503703205174354306207615605943842383435135976880820447014822045736143072466156299556257849243537743594606258865877776287506701328182144041809486776464972564289857879338080680899548290174173646058187850894446421262623693957665100556232621394184583961159314726626350735529775768209733405674790842388177345011729557972548188753255431923663585860726581817437435083382820571879195591877621300056260383191307465513008923250798168236543942735285838616368271707852518494446149937286119216440923080605974379813969441866676217535880240145810840182865876790259009578278091064762777849749555240701284516453022725062924899944594689234041027957228463302299031514980026598803245283900182238960356058350752559258606226313629378748810522247842220434591028359190709280548003066517280689634577231737049317355703165715079008960927434515730087163779772820447690433071193619651054009684239139826002188141228001370801116520120598377023621562053806846945803465389799820882525790019257036167072497389505846305540947107503880906358482413585096228814567952895886651896908151476182597101512205770175037861423261701213244834355361768940118512888421700137067720993483385322092993879897358557878651909171181724366610669719753255120418192253686294887691385181303116965839614444099499905110400450315713947544814662831643786686277007793826171164538838420473307788549477147144523530827336252058674412464216881834591629385127934694217345038876777806112868360106991805643613731029364839441550356969894599294083592139014708827379997751534953973490232577638797632725326606312677471273674381759978179961039111488456498381077233709485022758551724417665033759240717326921140104567182149941185843840875509607036066240626337245963669259554131483328261704934108615864708463828852686306437750148369575629588076349454754063787299903080583425117472087268289767790841608471700439725346346062836730702908155042319172664987074957061488618044423321439135129779792049192168913706779364175385462486057985392280972432293349511614377112525977330639845916646651241800958894593659900178425473590854197013393494131817249144635987506166429048449616030908663536371712848728644402396633877869392304440158244655543856577907677535958428765497762664268355974971355224940702830847057302422496486501180790346089264405076026744236180028043357921481414818257909454636198156058482418708234630755928016120880239791779147867465063818020590835471731154685090865314434048069008209332882377388437103360232825312311269492614118421374738975111930969435707944021919945987077405182489524982378777261254382003664686146142579742244608120190767989203294046991029892588010644792104221166023612999367467384853511314900877507881546667019691999025638699738187539085916181455414179338705709993912449939722141163653305250845063032063207552878545594134017924339795719988220621663864107211721856483556742858757909805929412636545566109733653403947019305277207783487258865501361873099213795082334618702743749467308083194809962460653422083022238324356002876203211760594258625932984864785523747576495345061062482213304837507244555224125765103431548725569383456637191972590958529275799531466840373420346447286447690487733983056785273758974207195027763854850011518638144070249007815162179656684269716375349211122050864865252850181189748075103666690740897815382716400088051499405504401130466164100864662667927749900131826448108715552316688275756735507699016107543339598490511193515074698816754268840410143781288617841248355390686461603465398814289954803955355061895528190721336822335804897719087144678728138309050198060427177058206103044012527565653596694370876240921567912376894700288501406949997187143302193797744736818829543375117852018312762581057357479250604253036719704826413562643006402931399383435464224242568215441556949520511157929019701286038298469247630271503710527330825930363692645889156673415835806564154311760514881290577159378960286821719047254331820177069163313349055246297028808845524395357842363364000479129806373937702431608643905431723049752360876764813642417031063489520392150210590365949022862929470130115276565639261676074130159157664276725917752237065515731360352840432823022966862884702567016055779408365439394003858444347768488800392854031369923682465609973436575239640712547816024986955801881080017815804859790235661247220263700186066536335728745818369761380387887460855027190566364972190234264151740105584598285177393781142263456172535379079759799250891230765178761761380746162340341711808891356265672869877024356640887551483033709143266392420241205257819048262740469201880912268813790642920475259113941512276587179677837399773966777943357684050712252214786194479642827601266380481718397496444567810410524100221087371498449612232177577353036565483096595502915641654808654378152852020381927980920297026270761829818442332959427478199272949269407795550540969136314739524618746104040279227075802144426848514974955649936575985930911026183752140358083287530353483012622117070022451731509282922897715492346437923748827698120032004345437119607441831488193678158530182371098681584144814859438279482525904871280426535921138995417728185270103372375139979655573884477384167239654584755781742508888332751190385034556214421819632683906187152573060119858756801673599174414228655218769025219964506634899365228961798374852418876873671926260807568324416971770881836873059981803881646481961184046678185833357205256461706559413849223815377075130315382958219641682229152822481207294567407972919219055344793545546159545161482025566699106045190060690849027355270084720039045817122130430022777932096059402572786577168616421972398189383121127930897905795823926441953996539191976555782061105323921714104982284633519778631235438526957158161783853439022745168117078433724737364880693808777106782935136381864306462909361376411033252158082466388065015506140895219969191498020365662475658598198867503982973025114380961554386119283103793362219567449325990754798794529368311159341695260679984800032180236633176150482104734641408738601064318774967374698053639440434513948375334041693769570706485459042552297958768565859793986932180139993511523899565424752421408732368895021989591928661023832215719575651116760994684721389910158921747801712245959421331482010800501476409024246203207314467247009861996640571325135014091825090033753935565950790180766751510496579312537719172064027734990272192169882514845122175105727889556164078314683932571582140500574214883689325979767444772206209075311960742241437750030896924852002093548683687559737033416553632879752797745786011783255027010003952965788299912991724120316165603323227983427172051549189361541677531296871278482385528875226970831711679490488435450511397508987975931177376248430267162537902879411996817369669854664783081683771303440496610772471713145625102089844482198955726449856602715400848919909758974736306908496658791572628330630403999853346637782235193606268979415841264944544265310466449887671864571856230629257236691289385948326987355530598968041615200798245656575254066172309104875566871510500751595815757699560107859935202789793305444982238673955245713200014361052179840732814768620997287025710107808157836219794314669823907197111696418611992538979572288100485588332721383293239516065126170672780639826522393044795958871273502547153179036118098149738016987986663720545382100145828740236343725220363237879807812765786077977855317121052685813780446033659662573545034869172456142946738959533293847283646374162202205985225984775224139448018910557428552304577385680771773278170692690875682224228532773812118569140653517444804422588925368622129788843278345199215605530883112386102763649617820991703926453405408300708568328439278611409184128427173270219891667238380428829266760120783901760022765663968660706203536698980676192473009349746741285083964883175485810224942078660491832670493223693647125544597724453345304785405709425695899136053083044597338261440523674962120300008507786305308218091795501638130075157665396310525384345931987706199563304417346816218654271351616130121740984283986727688447561376484341898651033023327118921855955737492569640273169639327636686160521286282489007213462512204350181962208637506407926335825873429731055294649259931288308812350637242515306014174740070265344944355507890989537161079561631014466703109464740518677549530551298635713414019333930991489400396507257329474828314991996571063786600824912706834314166352239756452203836531151378953903092023563194000486054250849000792329615595155333802765894246587535740329254825824870740379766817952841064697411871860139731384566128705998921016480566148195392004896367096064695970567611733086924172001194959906455781233103521113856203267286765696948339432950237266178480089719158298161176841163063384949361472744430262744488642536525627047198255703727529132028817658666846403074108222408473434937743373985159285890690207975647332966428230135283008933291798192565933985376216406396288913424186820075676811383865688491672693186590424473851505278137340433150197358009079291725084221208592099728260640583469424779672586659930278367890490990725270183020284702597744153932179185957215998439714339442133719252173804939159997132084935895002480901717203990429366095997243743104392822739210061878441422400299516283361737563382960252056946510364163923519641977437415748444848610986549060812975654073618295833822810218475973457821261312336402529707828805387752410802193504898907710942660696127676956531945683975770533693531594857292906307300674245913438274583743275977840834895780336544268794481806537581332402414661539753611822886700585222062156071405442356232309187370511440624780456657554951500520512997378631000359517138677127486976041340702777850319248036996170835372178331591511259115559176381178756772200493886968677116953068743045305591637750024585034297627685797559787535506133108088111222829266859652747714727024448642522883061455630643442596324933116820517015073472164417929981978212458164140686608180653494718478863295347118362902277543859529377650095843249485703392964498115042532012599374111481505305216610967850931463032129494037379790411739502813460261475501468403710846430706284724523608993646727456228466593878180396819920386101739322205130390930729232034646521337483349922872656488222245201731640387156920799717246541703610519957994774776136314909443754283437362876063980082561056870604474830842617757171030237538120194751376169433317343213390485194377885273049651634809312103901264070649708536398808696861519414175471917138028487098935378414172406685747773988449289451007713748211780849476813944351341323919814993416923085725515508004958464853859367209695726429647468024099903630513585467376684254743620448766670265263082246053856416896456206106998403989942525026420887058732171270070408657357705765938739110611260279567093105714042235635161189679804843416863183132870037055796617226737198359023048520565367500668582878797316816695045886486036867369602212459515305431098050967386987278227665944333148328741875522372310977368112541397908430717521826106793752434247271525451493533985979451243332700822558176785295181166008227064096811413105681889090070958309972190365863752254510211383830244824563888380251325943333153947762187377635191690940659109460613880713256696030924295312007971228449164318054847674902842616853460463009233681221822509436795203241869246581015098025750625735648477657523267136824580779957589482442728107920379545136818957172967138349707217847704031534074429306535067551941111070998720474629089215717493848955589398574855885465574872881192216118774050847222952506350073793026303538487313870145848291707449558015903669586516670643809025812596301915981210145358287542109598739275109444781756141828029771375751282665183769125537809013391404907744102914859856427272074536999882964630994218951478256529786112677614450623523923110568159342374397514619969117966281913104146688981964931100553811100157870902392085245507066327281998896327841568042340153213866290191375127125881801871424866550152354709309124116111027879782133293504194418293593286377499424731391784710788135856689704555731139707116989193411726265279491124436976330785489552890519155825298736602577309513122059669540987597826465663405978943064618816608634111318264535821475251014762559418238637588616903348536112816377437293638330780884110620755411283407258756401397307697799647618673388284002349745225607322916066580115696113700498007335201023242290785028585038909841804471986285477394849272228047560160648031590082249433307744627624422054218379060986799203962415560688165096587133819921471542135178741371033308286141202783763504730580674799160786345326974691543786845610689305946887986610285436105264996327751308535297870366677424457557154595364658002602128081749543723401805258641701557747473401164278571379385530548449887488002005618893175029660635479042094106253885591974360498400760476997557194808644806784981116911674574052752401115510314947513749022477562351371408935117052331467317359929099175490333275214140997855692502088415277111040548826096908160263725023155175402017863888399840644672128193307428801835320093487873721292842479513001987396350261807043934701263884851642806708422259072004878639298969990953931661129745646471672775656653452584037223565509006981842050218899736040384476500694520274065124939682213233036535336392461071977149055077804345294797569733224131777632440521668665181841928589523690878189275936965820638470853541141835074275032889619305088005194628784504522953631398300982548589673097672559196108434470686131155070399173917451704874724001373222471258861378511768130962506020685431766033403933206363644512175187088554550046999439576089501182394741495970370107050403352925987026132504060293099295643805271057693024219849598365144250731868951735546723337491503746300019094023486612860571323688392698253739840171401608615667025618793719380502150090348932365875508364406861413666397071110902419680554844508141412770211494848109092117106993784606228308347008791013490651816952573318145741220860080366628889512580900483705848158767456858548480474807158366569315962070976844175629318248761769077330658538434819535624704067915954991783142699775724938115333798066748907055568585873038853054033937439283662403199523520951738999986090566429836160197195665280524035016447653251204164766899578040852816868643842547423330300451359877416490859756271293318065389997184807044929801167802584606311027866549006271702844494150125237210617032222654629406947124656488497978889832015467796433637051819302265276728538507830104086254628736795384016336724437348574027991391638513455803528494443750139639186724941948134593486729766019619122664438607489420518255542192303052317982191782783314055065686964771060079416159317385597560636761939980078806317105851639266582067493724720212767190352782302484437624588929733329508594164250267577637711010103888484160932692200244013076687746538481910503714239324608302413255709925391885675296564424222338163475730564294701342390985717323947852998228972956309642798835445817446234062806593818695307943445144917113631518771567441618146750764233974597125848472725064247811435945174308451144691739107368133641849634082237905472805536757902540185357209269392715462694752056845194025219016637492297589756695419904288275319905636318922192870569885011599992508375620740597789840274302657939981055173482257100198643591882754928723665912302506769464300322849099462533539203990727028242382773206039879813664411190589082762201410003067974054165861648254860033102584689212904847336086398080982246161777562453820535196922214242213970901574108898994261580372051312276236449208891678288207798593149341375939480550769217926400851946144961667420021354416607710766883838629613437667131699166770532489981288229142277338407576477385712489093048867904621898279987970421802461473362245495523257196327152430201461753700121232991097255840438278018048179957374662734993135870385580815340623100962959509375121096494415311693732720692133199717440571232697730177265932097118583431683003728614217197972545234784438525907471604430224467463706676248674811900171009485195784018681665798706555873876539414875731304611440998551144892372834255279426044552021671693743592077049300811597131355907834091376006286829020082780799044807125692502690388996134074890886555677416610105579717273696398142231349291920909123986617571060765880034572419174657968843588460641991530592616647842199345925202233290694332757121379275061083323224878203718996665763363479060292390310416960903237635752849056888564843474681976662104686777368952531152715233477685488403056217216794761992114435604934262153765204027910136574953215526216364953002466990200376922039202692220404683892021886196365112456879122020029889482991104270620308698578887226312527201255313857931347441363716807303032268293004786612172945677943314811837211399273687432922713602602483642242858942790872326998135334322410734139234462838601085711904116516840707557203655799254354808998898855730229731064702666389733642667679252815612143405548003132998130953275253174286296193863488945478319342364610085331363729062964484910172058160206584340334792543073933764430685324114148274304686635281649538237449451586337851892225717578942312341189803309625392753663092152447352395409838027172038869790665734803657497592134578797161827264120795942182947909251243593566627170235475639952670351525194827570912615779702950824121699540482660705684859540998366105705480002227120245252530378608605357918545251524490885187173082696299789603708561124944585742171559735620528344249904570027144372740425465715009256229726641077338637437843177801851335484358649445484808245167926771522988399331841210255425020449274895224013813804124662869629805985371961795359119665921435461712990537575386978233782288461865726897370241816768474125315774207398386934618234331126478866191192726992240914518434926512107921960902951989843351607383367038386519612896530702572463290436674826048600985605353098753696299591538666783637661525931801961716979600043872389149376460433280833126021124158320195041318250419810080747886246279262676742696082059349787149076345215479650784406877381941195380377596192834950949914407826365797393780792527367429824531406350057462251993579105270908864350359781267193919649994958208174338947531508235803982390284199569396907003017948003137610098500676738278769151523696816838671973990776144445568944230960879914106720032782843092413738470825291066542254526944545715144922401526422389244458068216447345800851276390665551985822854115457217963085985055940474040867734663600382351591234383216036767971396150198928201978119116227270350869337672361733794194424364553763101563466068259936640129598206827243370814130958381335130361898861262553418521030513448466839476852648723766827905479371267268670323913778576168507035263389040220092484813626574139261457569442717296983440992826181367358780299647251896768539144520838751913244346244060375460024258739625514584071380218655486740284142543555840493653208988326575456520847687127039958818025240116684752108977034256101986856448228708633347541252914263301636385224068422155415425287243461079829358412995577315792384758606431125757620803726785383205950666817736149930053146379261841352758115812651035632448198883772020568220504057690716648707420751816690270633640123508609434524508597425398218975893153193148313938450883431861366423215181000997148959345961034180403872086156040880936208324470493326576514629201083391581889680357993648727780366028422707702685522077060256012869089431567203879847494125877156669752282821802070178374041451197715056921894795409195882975611827093292483230548046888141799041605875905711799600372434448901963863173076371967940117182477253706907022254468149453193642347661235111612523687354460972786867982205108481276790161164544384278359763725937054723415315923794071836006218472403934532500623382288341642431669804196549940643121165275255319993255200437395380308391469848746915185224582507569914499376115498840405024753094356956422163038832892523244245170662611791354652242568733490369568795074004280672805565391640164098975769972188178859766629285892685833857231765326650611876108803368492399172904186277828562939622644040646555313463947306303580847547763424272662930936980164057695095989180556905493877073490033479754286388387206359622333794144869490274776305522425189852483686416413166713289683989342273041840218996572970825324970233037951402515640803668131605428073313389186071458412539973762932268888965706311208129834582428926743895194094941377497648721223516959580428371688070817515038766491485634871103404618484304775671562713773853790524290761694430105051866031599080755302083805807280432154914660799314751588365445905498096619156606390261975111773198506715981915157461329955250941429894573787757208560703205422957505274502893051917731565200051769315529798999180366344337808271519382631586789474517779422943594520842857038289998074579359585343613519689275683773210553228571784379157552373142854341431559359812662466758826464874153019116956270028461073222806535860483704023964469186335650449216401713859358748768546705889885959788247987614327650349778246679743047214863619835544263046651762833816465258371510627463479864920746616761440404247238161893923727058448254527634496765148774078627292334882042603691216876709828939183997356607759439568847004051903116406684214900622873554783631514117288342218061924329845611029054172611769451459132578077371320841716801715443357078423160139143878856267772663414519382693396759471162557183444833710578595081205669109881562142187219617069128918356674746137776948865410588123177180683192878825094325193598483312928184007370502153803873580319463684228511810302560064924142201725613850137754372871395707509061712929124121062139411761763955522650383367950841053148964308263302055768512779701019997847728176724519316214573967096897274977461948425763125656176238240249799617220880655284917003055082750918799549912837542922835488770125125418187659445665929805024056420720322976869783690918828086662043515900687657563673669483806512757187702468711384015152374194884246116173980567934880286196455894017944708604399687898374162667225947201927548220108240615014913838844224899670287459904788630861385994938863007276293102167402166152107068422815054836635466962932701623392606116450530559840959402178928389433679742449453118147488693434355053450868895823754988887548857200967872520554906198775739910597916013386764126410986788493341214541929459124474413210322325173241106984808303925146198677371768083523436058114782304521612939222236141966892190045019362599345146713182137255318377078223803060908503528677158164768752460793214298841460674766036142237847738858878570028253923735143206035520681054831087106350358765079615279785005862466878658327366625152268540070717341136129820217475717975770099619675780500131402920659803890963117854034703725839080663247349764123743335830229693512592356613891540814873570347463700633349164311598879164817623971538113555984002151061223761405282835133186043631966089352262259858946478349313626541253481979548778886469417494828045085921265191623115045060448866320249892710243367414579332375818177378585563247594152319176264384570462345204087862248923409798819733924036478092726827701387198501458102366614224052420393251681343554122877326967878042063773542614981608844077652743785681789417442837990610891921470708870223925216494407121979564577982791587283348714336659521504620316259999640388948276360978840245713757987301272274318930387806499863516526404243893104338323902365530163337212338741111027277376200403021287147003576774326602683141556069053267902896002251998808563601694961412771160304053742102371541768427366844358587879221008140264204019153315873697454917440409694621805990823063379643413607397355987944776671355849058690020036215508807413752426117128107130212336246398330037411269979211786388241759813107826646629450360141335435431564463243365158506413404961703018956620146474017447683112714312339412234461608128522999531420931783864341952385304698263269376443906124775758534298383350417221253820159323668109510924142492285907288651086164001249208514672337014597664364376035208113624757353248277875665175476845845466939639678735885248368722263929698855318465471107904178309932834657844437161427316382297095527291914067833678768796265539160008498258729176604623974670325647638286471577188998032486385590884658390027209112466486180773168719555798742719334688435010065077037149842163360075980962116703878053389565824176176063167870758243268485241230834776052178893185850395570950045271371817301061730823255286131394186738998715763065720348088429364713440230843041429458525921584962836348017218457018076385611848478298469829662783056587217672050001258925273878311142119001185208066506333302043324213808516309160180895465395806794250896194755959932043083192437507071083166947911603627324797450734966466466688076610774133339666054272958359243693128244145649944047497896067334083557911925105268665930439259044558778822574359867850383013951267575966662697112393690551275813961592648782036623842692374503287144560757256480804712838947749492785949604893142083777257328427257479900200789092289686375103006418681954696352353518736142598455759843375705372420709364291687058677914697984404413456221124378027271510242374941998097172943330742440786134871754386047858459884722908302496726709106573862756094341496790794097579398780329374435706734018704732472848089328359468546658020511708774613874919241943469827346004794696632768032948447266875936541284325890473571945718687469161320446883749896282887861337942038921386784895774663013689074484178508299940016133484864569154163203786663621373000088368531391378959515176799523579973628500118549358838528756733429752875121389622432534391961253969440391868505546689244570686925946514231021124603987237667273445264713043007071454898051944608598604320551504121435671859127882633106779854633741199102299213440839578592789752440933069703371244124393817216251157089077609201875770091392546831047532514185014262473299769758145963053374462839439219159217311353362746028320034043578397983922656520397013477418696843622804438372013641942713293452668836605710852962935470222871094691103303343222666862190776764543395660379576429426607430233039428230655273745016058092838320833226481996962142013226494868210473066990639111291075280573282738737281608544978932056076458703020857700309092290702088051798777155799963676565384142020461265820213676171144117051042688778670486100019462444528238607327639152538504721760676503454329296789196604488421712767718217767753101313038042068036271674999707793487601468957755814312442234427878353599296141701248124714651975234733131549731166457336482450300414959391162133068419066210163652685916150504763345097272382419916728973459843763276965055929351171107362714954123513844883127745728197541681016988449991919808139616623246755564822947718327713336413838465826918910741618441405223571756964201902579347631623775189030759444290831767693491864451183122767390676535326304018519505461363966943153077266709611419550139833506187552022829963603802661378465489614673184725047565045842213810560254980121689990594569071423530690156208370769505844565644810526356858254557893483238342629272455370838334205646247788905111229749527828356332915365659665451795454155961535701857019863604545345723745730037685491717643150983365929157104144392480669271260226851506200020513523577191067103049528337402537107426216449018137183279851529741616839249713490262816574462502126004004024153319510294276062329187469532386339382221991356178438097887098610821431501706676845185400230092795783066479781001008491746548846971790151395244102156560390396527291345620870893464115511090261699444952719856762959376924504398605979589847547684574619878346958417270538251511247304188573618236834609073031878125671996357694865990151435354595186959254833366050533067267232956576713651989728911841002069762853175057447943372214634080470575332154910229814967706019352798925568750937279342190552561745716038676024359346874025685390382114431498977738938638076083715742895207831225234196539776391599478756478829089688473529620107738536435314888387177401032250798069371789066777805526901281986935315710904982620799803022479106921409114597001689461298107843936719804068706117820913278001472532363093364485681158199557411845474085376886438383414436022120730967430136337323384518117254428105872670146156644597854005574315067320874440703941301974356961773127028854787038533816398676627835886682416417930921195731315672364427306552576518223645742106449331104836758915314291761127842584193830881886748472154426450974326883603061196615266443177085765564504278332760863515514258883325451115785123506056628676640632525652942824013011781312234916178688546905680198870798060326351673739459607097983011553198123953880861938331978199948724330884451599685093490762119100887187794145422846607516073255589675345698332875421940309707595861406171015182049741413562667984082097739873446688318754718157593284205741178747373019137569440908806418297503968667593125494042294015605776792585528727662832789695815951669119898547007365860056041342047390127924921111780939666148390689412128547321761977947469684353667895372781663677678891678963114256167304454128125379568247285177885655894082149265691884958028527228046533522540639034139795512985500107431543045751414474790107459034430417575170753950880338812400944032042231104977865530192640461022218603934241313645768112983595286394719420423607686056094255470531259866967348879333933628715172166110073849103487468354041419648189962443335880129027888940233646503386737941859179663010120616079691831957515472073580702993478635791614675006954896242336663740846781080746655535962988576488066052906737952175363959804882030961638770406602843535300169980438674398483823349507465922298249191324889400394090730573134232266416945524486863510497906926599214063966946594170784550562621628072008518293903763576863896273756952915385362978755791405933113280409565534791566164835778947565683955365343814697092838633411638085797672422016611362554657485728225462731245221395604446466524332274192033030681595777565940630147452501558866988593994080332327756306201021888490045565191171107812640258629256741105230995060200430001462346610375355137465398374219968869878875237353285620891285179245474001629065374440567640695580080021726352552245349424087285234977691679221456071991081228452176405934962220622871937942349130660319425353479171937738056671395554998570683460341542173301736002907662820403756316227055937474329649297660747383418579217348477154259768705335090313554691963737940265439299685313387171777705280832955615323923269563518680891397909079509195058054996755194943968252164639802435578652135616424240714172022073474716590872781608014664774409976782821866039551212731459359346843491665477401840194944415318792080950158120742110556538603635091877671996802624195144248627401851957922603522116626987508506356774603449433692121839923803249148296212325207197293709090077719534282833566695770240160064382910986092347901886612606933439254670798848539147162714308374160412397589098658891449567249975032252855165000715597000420985421179757263833883146293100895199495810101909543231971197004243113113120748472173972921194034889923206871107047392955466878525709541468876802569147059943464021485789859479357253588399299096598659274370666247110979569888982305552851491865429684550933610576201443961929585126575469685546320479911480010401475114206282124831970817240402078819851460039354172834447769432884427866992999273298205832114752364569573565389678623592510376203994639510238142568878239914717705061309512255958817978392013168860228165900508836551832135046778839493257940146130216727021818639474020478820022008574914313050923912143356057948532619501164412471048192985630978912066888464675704761295773835884761422057187350437445241462612354348405436930977074571193718436507738867817391470442173681456002442871949792973557433066603682453189559079192297377138724805921002783939473048932620646884359630303132604557675441610890225824813857702085527426535704547800078326852733404102978531866194474888597635693009211546926981541220144172573187381893760256658038660801415798268913775486300609607317111627886790217686789349139076560344919981303280836157120554165973033220674911903051592275134356757334328769674974978292948361329078100131498881714185381449142778338080463454582073960238417311451482234820499429155960964458285621566993144562517969770033382716150470831229417699272633958478822009431955306719316623175408400802773960563173068684241985015190482383768922468414485332790683293631262980447940035890826615432489037940379180606442996325429434799704876935256092659250103817901442442685478518094961425103766600665798352278664888445045291282276569912814222059340149252268793895851829418186894471162927500484675608114473343648364823023672170936778331788953821064626238484715221055136740799603594909794800997762367162086981858114470280295039657911511399667687740878612860618967999984293699700063796518670243312954555663262015944038150394164501709722179796743422517200076674917749719112883217307204281199230752966882061051158644440998630004175535981798494723002909695944988702794712710599991709714999525451159425901012164283853039604268616943339360709486552252527110391069359208066064126504158356459611066557953248908221082958106158860901711691634200666617491772154022027824785555864958332146153953736660098366165657477244698929249538608654280934391563570076499271146457831235568009201585125914354711277779770132163972211833393437683336649925936708810622318076594608353897602562039771157039180839468876689915905963065109275555181621613476969757630788625666032705927799390468939007350543128211817497302271531852987494521055882970275066387614604071946474926237238628514027876795233596311955114393909683072710165462663858988691858688657221478857072258155648393696227290987613454984055975321963373488894418234896945561885678762563549689332986425544204224096897138166449003909900086357246173090408940560093302554769158148295067513165460938459999322324945463202634057272849721555857300663690996223942979177502155628247462480479260412426246738996432052350207251808123579175890581705850444178323860749873692990436528970908539201554313121810102850039991045725921923570213257320775559962939632353980819941129651556914080968478471942404185672074352296912093617407048550062397015005339154539645850768273655341494327281134891361854494774228770683209250721195930501164149415758940947656450541056637372178405143021138910454604187260013082834117340535157603742182011199815820109959795141307058059562996441104047977859552470313250525749568718525194308535651835616086286834237593930840959027531144569892154784474964154318066403475359671653575005152302804386257128934194319074772137317854604718732234350559376398569336812337648584825048198902902857998769426685973506969724513305469869933368377532703303435175835587866428234376115664410263433007226612409865297231224036812784811863765777184081688615585340206454567345240041559000519500415380331215460453200016037289246302508987880440606936397275776013473777369846503632817708317052093343925400906401000206440204470697693614237612396053729555511328989386313100704022162613810780512359160895392060522433929619311689510891174442182859812628915701060767972371761513184773178220441732757661869145549715881423073358682438649621644717050920297174740157880041413115442941760288555536766801485997061308043805280533652504335204170297146271269447333817724208821498316774055122395899675292762728316316529016316530499974602054843966346826190365956067075265654761001102407695719063303200918655799309763199398663121357347096853145168319796162544798520294848716452198943633095217816826064641194358264451919339991590134955739880443400731319800409171069673552457503026817877960121336741396311248425096481502492982444504002837396123641975423215549958411184661748902083748016037407076874224979486540527801398058211304261834697920949965343769936342439778113925294475637269003590020523155936432178415838897087407171816705018269643547111134813732832684675290035604826232081880284681023607236369813778836588019640027470345544196405079165758959803750453273051997609150767774226858351296494461293674928956466443115932757300909229798693467465149335559649255704994959199495388048547617457768101931775665932952064769885097986095181155899606713461011093012555705855477609101872924874707214917175459930160269848031199321847954746636812808563116090994023162636181333003573158037665141165511366000071981808822724983766826056889475755101307144609476550171551425258189438382869475364047921754848015056913633552450172360514557210010302164930744928136399592219590075155267432617167225984056028770782853219324948246399239681745095943040239970426013312416368411443215436766787585959198563114175049572709584195680371512850583735971682276613416512743178914262973933859461072581385015678889593408188688490255464292287113220010653025795295600990450629273128287151044764251416482511779037629041583862472519638535785333496701755491891862129264296647549022277686739753518262641548723255744284467157843043845147916543124054830637067172974045988548689050479558433613301554545523241705843774267249262951339555738997994806895525208678937006578396514071487503769496611703779626745064317745945077026664703126752004706901315918785031205696166911120497385242966102618624082782224022737401725462175450701551044507306638692622009432482858060725638302890004276322003216861183519445917665167828596389575722586501318107965780029064805427793401508912203280224578087069608733113432561686725668707038240544715908701790258905771459017084424592254061599833488217921549893599333660242992149577299144913583097983424562274551354599109389269872675818047787898655719552517893983238377117060219859002429371642763195153500852715992810599619511202073825257924576859484009074516079824023354913223164931408476065804883513331301318804701710362736786978400301991684038288186088525389488007130988147215383427710997722844975507398967060149549985314544744111933368145926911057820156965492096875294925888251849712274588130505637484597691222499367820649382821361136606702440129288287149859912006360972492820545166437219630569612755189340936798611584417108793168507619991926748125669558142321990416640454557964164758428011594180637270674914994434652061602218310697551066102242547516467668483219885511271581492842922975972548928390698601575824688965434353997207096022031137579923927930713399241409993091750375213553269897478862458941729249907336337679271168102238586110824956841698773995772053458858850807333324167995666649161080620770491890309636570993237248740681396711752356514375875624957058648460078983786924863155341288806150656864027980716540493261362331018911880721129504899986130677929124486451312494357047200644707715011762114036245019802000138389320915489932875345741016320981792534647110021672153602006316073047849030418389531615165602933895350742506471391713601170629788309070116586165297514198946085319077101635393796271153326583818020376625836875296819079029825556792281518671072744188133746440138103676347650892175304503176914497511558279501838978326105238341505183249124776108380475515036051360246863275223793590158155722649623176768482634288535767916746451855069941795658045460841924355764191129421382264791033210531296332316735324866187249696161526023610631802264914987911024516764794469128395455038272038770808084832746201799932406685546163640215027476600674677153652823953881416816509964802409673371442168524167568601783081097281615845003901277310614081595128196351990900254389440375966956439230071048992897667212511689423158025660862443299329977824710871957406435768435327521654332579338954308178011046827366307325885476485385933905565832895997796158094914545686512502974574679430666131463140766101078942367712155602276071124158409065552887771508780749809557005802929578156249081278680669269770463568503530163289589667950924367565916920373795043400786631538705188572058033675990106289636562450539331762842928446954368045095132879966821972698486717817081328617316557642380054890856881049356067177042932770795244931797351216321810758593308565552096985336962657370965129655489991751303966154204384555781415296143264630415685360173516842685906572855301207247448822370684716719395231241240629392047822460304603766961283318490238021564053419812296296965794058701455849004601361782198413537873372928097570539964388542489369103858081798621653002270021282755929029644705038983610174567293541981021051592415658577006795310903720639991215967139105256104042007399514779967989493495740697012276939593073203959028373954960196470409549448315153205528961871607946616727304417406188058234312732289033809601119649992490784375327465888223746233475126529375936803606376113066471977288704827105796786763322957982990697702359660800479088530957288382216614100572678906136625695962869508108918887746103451898610328836570290775360856600092613135589174585935543905266852843490474607951967035033160734329119804006130725423073338067800399987873303736082269943658401590156966288912415418160105911102130486359968262685781693895388403725601891994195742070710248022713781965987927507863609797652810998841431222221570967750188202181774967327393837471975371910032524357146817337265408332271134137037832357634101879978302854922114888434669032192644772749643920268722743887632606554064103897434177619834018668748406288855003712012889246048206453216193752896908292819485358368228190496372860851650783571989166119712187634056583891707065019477287951928828156146963252405042833145592415433739413354492910217908682247614943811858537119398958845903749335872075717343211214741849285367216543825452728118021387384234118711647057255814452120113853852151459383257739400708120685247236913891362209285921097743740593615198266309318323268901692169828344911487378396130007227475856252341849941998313733520948970398721778833182516101356334899538472899282356907139021848066625262810481614568037883597619143160020598229241175303058135841469672486702946655215209155545988801646791897579492875895753309434061151916992614991963876005213625476765596765589632397828732279255817527251620877570406994713488757725107939537810873857022906755711785718009567348524440406017376134852337860905073113982130422100426749450146321391771310363588978083783277793666280386566137321819524505449286029348038681792037290875787559849011972682900910852012639568995321882860149134584520192585336357249770309013241796802792018358589231768393697786511151175817167016445485449987942815365975490928716596320557185849326723198998970739154664093749145040476913201370652270284072903019266455200560248305169680708354499252117833843371848507731241678444991736675881572045271698315014015449188206098905837836325406955451893347257071274541145622807032463153644119091377752730887886884471383885017051828591848100448530931179595854885329740787935840122257082279091022733230752577680053963877810072450864801872161969798501242207120433573986924236572100630599655377098277555379254389349254779260127512215023255146411860062973921151558879367957750974726795952454657354670538614103478454956301605751436768498194733817832632232766258921154220260768738140568365029544996017428581905264708683844724976278504668285069257416206110185837896113230533829845471486345379049990906586977503904497701141338750335707656177764693518011390336476718043349953713883097355265162528912737197459400062727906265201446774938806606348906962617373100818514111819474845440203097480488035306146897678791692394301008360842678349959359182109312495146849847421777262479158459111444140241320461490242200571779431746460876497821580345112023310888537467782146303799523843411875631116409029140506645411313834998947435542966060727791005201631373039067147321520579894564546530604064439434055290455595024860183465088753321905378473086105822040132436251853008664782934678732854319734641791142507317165518136784995653828236978909284750418102339602997496431357003544482249660303314908554250971785794466045680794148467191820304725197594979650647247082777275197307291911562072982547926701671268986284848589982034623386110340319434008048935509023991314001932498107205839850731307740466513954031824887979180701980705567158721158823470345565172741025318859395354814640179142500594761954286979682245143255703369864017501153122424613183616380652565969098996510791644353323510878793846426371710827327892542485098651984034934427550497086308615407465365117040595459608964484555470499690529161086439274603809861256114527889652541137985866880542822886745302091207110827980055806997442515685364984943847270542639224639932190798250053210597766047543087759228183661310699881336876274906291568082994042592829358433598897953175248294687941238872703644962409184705831392999332649569790896867259747958801848088037632062290814823328130224365378489998104325293102463920153922046617253736269829877326159048790114462298403858539429017535324847886772495354155551247784777313953181785633344993867678994017021390035154582523157437728655605295903159227068308085364554352961917482940313924338287931540942379694579269946238926239462443716876838334147230199569874006479379066930240994963558555855027859510790973921233414944508684805219616178805421328891103961927899923165992305864927651687367583002309860348583213053096839128809270773869707510694283381206794445494381344625649493757151433848272029962872831944387957563378055625836549507774409960766977181652035855962627418637803964353503114739566357587174918588916847878592800516533488964802057985753436489323141050080664324230106640001708846591652679351148173330673740664725788191916192613336031769670260285757600005351008894267241110127890429653869512872820541341947272472491183876064029089956411522021893622402503014025457966994633558798806098060598017877815989956632056638136967718494297213102743502420129443201348666188653554977795898706645659627448579233738123073450694169436081584555410236792490662129392189348293136608953681122884837087140089765115385109821759192213531013884841112392907751439281532642693300928713233104534774781821408005471468590038338076605420231499317837607763342538098815814009740657347158204368021065887777308605302866980232148078704348098348330135392450037056337373640188272650277364266166804171611563454874737999759807572072913996019765832672079953863327956619668054993434939319640841720657128658969783728957403652802261504622313074581472849497729430644945399407982203969932060755184893327659070735311811655031315950434437321265903169398255001429054887419938309258430979732841513881026482577008166567929400018085857195268683613363959547365207683230394846215801424083176549101269123579185895870191897719849587540108389533152484059613195471545289740811070757301280655924036355512180226185182596781194005680462202682422577233914954032375157773950003007337456550166327177656084267930810155160808882389537298507305789039530357103123487910979241906907239331685042560594214940427654572963784138839319331480922990990228827454817558948253111813329439780819635388909189038410724903315067322845486759138001451277717562216486353047917201729949754551216361337036573490438633041013582246931322569528419537820766897208908788155958951043248527335077444362825606719343732396539501572706809394484086081142000838904135681736060364767667879438851229763360900498567406217780249797167553459517947578931951853286459486738603399241758259277486137556724515690902739104543343968129567692758589001918144571017485419713457389587849719857417090568211772767658243226818432920150968045483496630476672086983933066288964761263202761113557160664774266658160488466143735281728092643950521670388174555166979042583991313389520775721648529700837854002964569713848722265299501954939781129245952135478094597956302844882284960296970063886544980803103756944499098923234437554492765569072986151339729874918928461751112451831767113971966965456862925760440539800992421577781146659894719416157651123428814143327964000097149863958689992621132744033071813529763562211466360982994220048085271962711326733529047798690443880555410815950114928447114899099979504904673049843095841393237083706801373896654112884627380705164191528030254524001891730872707993369875233686107985620229762037339152740885768739902329155729859839908346879599639169404235141828835735810769045762307636430174972750727893352143545607772173648303068731906839790780879418565333899824992214722545772556557853607477707999206626914663897955102327983548358322814438849718395242968339166929696075949912251152339377402004710602150941677906488921889789694101882318524827301762710867213458293402424883813829730988240449384275561948400497128813402307660147127545415898842328925366533020589937406888420088839433974130798256801146510626248757968212598161440223570602398938995456968232412137825988984737216045582125044640832588035451294052336454064768547908853264640292258699097275130427606218730147494628136285408714676790120915597822547153340331215698505414979579117565346037903723888340839138233608077138407096971211061700027947333284481836975772979980142459411204473389028072580222574944404377917477647087708365150317803700556155969702794284602286591836992346296471357310684637998746297567058161752324062263975029662016952375152796481539329895509933785118695375803893910791760704603347337223486585643113840453094530198533183225070527549148277358709824328304362208416767039060189824432683397872756034444535466262693303294506319594627130724942237199167785818682661881420267244349168994836506623332471028319872186915931107440546634411287373650957012327949417119786884609397472126115089046287572687299494885911708284936229020806068161005954168826245362346451785581555053800261661334833265382581344350968322189673219143943125708397831865204892721224883130318741846321236487811588657368926665761737053952884369932185502433807230053590376374401754189941178576530485059266957906875749202917557564103565902918853662978511053783603881186756556932183596813812022132028145281680813073479765185710794402208675677426437883899534183804679344534520753789454141943301352433957737409838497455030102741270163554634676614398463692370384155467858882511178255467063296343510177500094594459973201408368033754420794458222276451460104419592394853413081038419234015221373230756914772279069497288723823691864198178846497459515158419564397837550294625906722541909307184700508985372045926886109167894221974035315081905443893231275920425998675365282148487172047698162224563085600115720960394131745139141354876585594470094541407586019921543497881005130544496736918424884028364897329533928744647934638187219159490282821714591631304404989388656116309192593769644315461847721832874904137149306025343619163400153957792725807202551260873579226682862598081367654711473605289933543395644284557706418775644425085199833882588670254318443802690080921523716615720656064519200415699395463045669185818870128075569231639389002155885268395373990915786006044322641939299256379956411560596041469432462666788736409695151674330891979314291359939698635670105091425517650145323651244652537530839086484064937793370916481297967163151702446634808829875348745089823764047976404220496154325894483525933276913323944766612250689233923535084011017326296036344370653312178328422529321229059807164286827080569640022424921650379362922972699006452821871955422445087835416070834026279463898597247678421129538569398724979754406651344961322625124525172879000923933258279137039207691191187862404861090362922604999474182401569620625299112713342725487284887953354498676003369534656804658292431205257813058696530543948799956083739287979819268767761209006007473013192993416314895975213648849493272004267774799200678285697094744413128924985682641804636446101777842704074217798506813660685521259692012787946712163254172222690541483684556056617180370178464695884959502527876151607079104151287629655648971993661123662502474572379770524554569099195077880115821071212434538401567229224641093372861446324609275456920097691162612390719029108960303855323313186555242358830110898925372523827463830679806254380907610412898054580184728901473476563343293970720996189944694772356630595541160611401517052120330100672130345912426408550943158990070697714996787428276545289641563794208410064551351850466450675209909931242221889587021531699921108500460352564730422098921471192266968977052769791805280859485759979804165047534983082551003175560375031711968641024946067840686654453832504512506860088352995403751914106592233049588353014336642718157259567930863340986044203994237214712864736919262147066055483202099325214131661061809664986815631059414885914791793460840079266897957508656343682965766725967665320184754325995164999774036477647753801048935376863159783281751470761859702785998269021031480009824246704994214799241136892347524885093742106982518616190743527303124725212426043774633503918904094977063481437611039195299657782580545104556053402869002280582521030849742013324920503047935018649659064143895908371642686271765974831384957241208033252800622168870556857213038760961927184131276640604775861115452554510396874750102617635364390908753240772550499910749262054876283520749013432760487619539291612971752367269165004640249560523407118769878800434418106694109983427777824455106519138189697835749487213329171647458274497433531591843955589136855613286184071824088525015918891438232905329009019071702391136406318711915211887091294154557739369421549105969662775051834963424678831334554427527687296274972028930732152419321455943019698677357050408452267671674357696292796223744415016987369432554714543326088980929096201177210442290062011519410843235041734228596960791223803140345254035259796361237733779364693009572122342381867671983425749258542789063517818631275018275774734410912704784475530210944443345317182289263269382280938232683706105074865822959469907124579353428121897236510707852859573899168725163714605412822431133984976535525706165362183974395709205459481917721183154006991643853155358083153905268627851570661391766879904360228966414711634316163015338596669898419004666088059309349467043996427152011171029966929599117282713426535244464438268731190015457283712747705629418415410981189880643376983138618868675019291710324662174910961472621388344010531948137515129208060874852457209168129668478139395488203621683948325821091216107743118955587975871401331875935937524977316938877241789128921211446101498236410323426919890268072767458304466637617663529075068416860854074560286067499284234039242416331962238845428226702019368330853896053561440483386642634417313084120678424204014092156041875211155043430804921075000206376102566921139596537040842231594597197702946632509213736114909523909583185129003363299876412227086512778526825676914863998035622652429664407885523326402689130650053434006261365642418174808972447269168687948322575523711298420534184891157858822232963169349057907916952069332831655791113264803599495076242591175920936158671336033673996199115874646378724651331938865789259211359331260737101051029110568614009038347674540433715789595978371934740486629382399104716335633319819899393919236769483826011013879256929072918668689571537084614420694090046669638796300793448741578161984098144996687577567759950605599882666011287523330495580651899158585405142075010981060023489578102379217053148157475214146191377297942291247221277548147431218212175293311113171289962092889974649764132470120865161918610809339149295612947217749128329677673237752983372665384700443779495373440746858460740011709056293519383630455382807684145275281101228811588379916296639176936023745533867977748703430593591888270117176578299615824169291828705691307997953465225869374518731651405870212726485277082365921475348747814472328354341468206232062763728874568034403444947481326972468493698903291577976629735167871336764038305705839041412346779631750469804238728414580597421033516723593688034404633425931382475652609188163686091542870535750858452255259641149445340356912414797403254333836779436220537665138712946130283044310504742945060731184195678666835768394305008880564211942680134584735007298884646141308590932466047746294465684265598653624105966971906885630092015829998558293087607624815030495286453138168362144180922807377646904523468370597130471182375789529171567597008891101264667107135254594552564518593642627667187061136827377134492762703365674982476486511704142070101067486941670001441035693601948781119679515072821691306670370552896547253557726521876343416570321729495718353403549470425972964480462949515338881256468257534787885982577171087818580007632512704092288240931364497018782405355818004678561343254188900477980130052598509318931968000856966411483383752255412382688489119959095833692010764925333086146725082038818224164419921048973815373111892410284276310041888305925937830309571002531051851129653828650494922168661711826872754096656237902639300916361974932907728156117500126551871272075969208975740545960727869325383782422807448867920845627105004420668690354649939122140782588544835358632147241704346038710554519139672791341047431340236060596078990590189762152727315651769813582574031826499711407375854757637215014285654945088489121931608873708625762359155929569108891124987725576547987691037535406714745593305781620801054389951005438365021046237880750872113292161996560162615563853602967884177580936553756697071104658648874256681087705739823439894617715386012978496663919168980517638853888811328113548991200668063166073676494920443393183989917543335751187664077153011742265437475111904757357125544669568607220402757438490024944572273157568735570592897060398564699194954348798594973808589555282431688394936386630024293487879824663522992259155634859406010313344527414320739286391693704150589962654203871130067095368166634330796859966218785562750378573024182302198500880250523981784141728509316376064780115619191161164054048477013391121139942372334777611987350422529332450931462487589489513483356820526139015450102435795567834902651390692708936633962605778696362352630779220548617661950563548366012305625109576497236211551564219331525536620948883842528069398802719337691639456988096148955438844704290675405388247521845393038638838885872001249739689865737142525539708340267440471842713320762381159907178318710249703692716417069037148123961445341052531973599392732011583685780372763351836958156283993901626947297743963632365093660586385781995953533550428829725911081753362218962991665073893046262924681949078500864473631907866973259483340057107048402364551114147001749607273379589580129502574011000947209905439589312977382146889352485797215118865720514851316694432168538503825472920458525111539198284296824594490130733449194166267673866576791878467601715952206985563482982801261900380084148284774329927534865888522945756462458683998715299378373524461644820020298489916765833963510433609792961473632991712388067219806729178886818941200740155994369273015680963378934324955623959013533962889168030523898866048915551562686308723879885689750094675994718119290801898954324646903435901754824259770056224034704419653550204160672767872839595005449192935930681787457441418344081040719265011860171089182499446203834593702931607665712138865216639353799926445380708847421845360741349398296554675213564971743723372424580506957789773507291761651142271813611241584730671896886212874543650499250588162600782854921819464328676089688590724797301657064122744781217132516146669730013163509700470813745541309036775012382797793164492388538905116403742638945697099756061601651251109735489012322820739689326085826134101533225795514835100683440421927810352208016846684007968856360460462276218332817855607888278307838368462355274140927073495848880145439869189848086675465989174461459730425623819812481146949490710086465967951271849952765962665381931880005261671881606201864233626451645692849352144197309190632407434248500515550295312682263341246884053494728345858150961510847532035093392006915418036376110734675156696957455537202741661561251714450263557061734264072116919038525165723006719415190206530010531073461288872575979385893112082203598475067279764544085784185990285282923098030616340984560546283414717082742738926509333815078654420298287199314189582469472586195309224445468996481856471225413926778636174464681948938712362856104652244908883019979942308252819502168994539970164337613142458822640527383559512921783915973913041661663154170947738515145060386831590927216944975264628737331657462453129796406178182571927489647527765975127180447874047002182738683273155947554978861677939970866802522866292811922179680547105279926861609683965707965452737979230331544447101085692687172829136641775559221338479680432009097029456190341908646451303667698837345987166044346143215582217477911144467943734982783692712381390529982786131171320484091208467104121127172027125998196184132671168664623354987570155976928895574231215910566249718894861536195402459501358205417958516772200977739947277012956598104204598430433590935617831008077482175026781864172025777288216430191910720775941685162254137667567194359624539966440659406588543710096584070036437612635632875183041037369685833450228971247846540198709726427885340619826739235910985382614608582811720891450263602169814060958419303973543474417144577996718290258508463633744895723553659940409883932189171143848207061867342727817297546412934215617472601577318911807742765948773281918400378734555588835085684264927837917728631365252510230923277703555963049896545934984467950845667530071962143210340348559115270460120654829713442576700846238652866534883465805459250133724997367796091715615787592373333184122318076853983211467476571712801703082891592527471348205117001807591372248345557562939800737149717588499875535977659150494051393434582127966444968790249171671203525224985777793752208619489366501478997168697189149933439671627646910358028228508354358717703071297985551616939433574103315460525741863382839725127069971039052738800739715726048221793754192900204197209020234918345115869722419438581667684854620014580312533759580636506121215719648742438792962871241490406040084655578936498859466762050424099609207385209652185288488425980784029234857724677362810740747504864682979306372081700122941747168023406292427615715853297448957390321608414077604633430468210502298700402420038309798677838867901789295862317169048755984953719832885881658963694562363086310561447308667257993470403729444756707378519799943452404332908574406582844937420920938523903825286658368269667710148991206921636530152148649099914086985054277143695764808024425619055096228273481097087837568967020430004972095714742268524144396510885742856542273705075277808730327898885633022934757130183377408214830872779817439879815415167107304603425011433978940855773453256053406974207488163029410070341639425744259316535601515985921952245739201851425610161817409448410875781490711415312972697530144967310288656594738041554660712866674180285915677396191406084382971738157420539493011723653923864123272952076717625873175454294485947535590096680629864816022860913679322010079578055329110832306962701031018107663868381300380870766644332896019752823047696295218261792901876915670268805529176920094083606727550284929662763662833922589812394214970135242099790289045130535330964839472440337411689316610018743242419558424278681373754324217073670928934546417617595958307428379426911785940119815045108048789856940264897095148885270621854826579327471612789462494085301595573521408787731023115881947159869248566717077293838438216859994479445730524420121957660698353366406996839655592314064324095185914806622312158163662353224177902426423779944421407709437409052561448985994443997848718357366176540339684587494524495213999599458005181946624537530427896737738333860692959405947431826743445251860994907489973440531186291256512193662225596335360418659177502634633010382388099587976959410047310518513151991785412565907624169200865714225933792803240142244834446581800322403673977634845869156161110256138115911283661157705958017700479565910835211610086492034214983044942818226113753620778875180285816621602681844654332671211171320193284104395700611597703159046569711429264012164715800351317666235916287726797721464080543947667700120551759343574782382245283144503162249433506558459465678461883069774319042462665460774271760582624354730704139390111521285618965955226563757086521027489256180860851432139341227785252139660931776014637989934544329773189511357817674051238579265095921420209965056359549905578537788386806729937951919885551407418732056864748011996992941426703324296228631199251558038100508889692125138410238167003391164473656272302835510116547884021124589867678674204464451738821519673246965188844278942872807889142489377460263271229828027049021717720306714911135518221646400421622648920726035148127277193623088027800416659919623105855803187933043043142133226230111893248140604129359384887121646130504485454147677525635608502041132264204852666885987400744286178632025962338474999522279185364845531388659405650283146520416160311769841023484031659569532196670509929434958023805632568260326394684046003098449419341904684875742143877682837746994760710108993495974148572007587571680154674297674454179967207639365260365809370162430654962649567547252958259305681538395717335606658810419087033185218181492964963123056647752510539542038417900640056885307645836619968678642236493204249273812279851928008977888021498554209770035129202214063374117255665445855839536682341612553222162006060350049808873410720590202164774658637902608468624017453109836461536723736176567633230055032775996947542924638980889137517628329348441603949480610428368367938869016465215735645756260457338799002673509037721400909687611838289279562561114601698447183922300438022695159633225714166470373187134401189098983676554379059549017939061767622226017760585257626383685080796563458758249274049883607177881541482333797076219698899141142988435958856660829152336728806478174230717952740703148616345651372477164574574645140126037948795740631723742651859663242380409153330699872719512750366644359226931307420640534298607188465347058470508495797953434072459453692935854539701818046563676014899325121557741116262125672115025816375410684830422859654222300817088997501781366308803523479535721066970659226431264292403466478979559202158092909270446508711843158410742907709527099494475189546996782769324971084385219569425576184457077232624031884125443169792040223470691617229010041590908352516167044019232471104895754747423090380119358052291689799949745582261239601076169517404242255118484227505643017953208708181640955052293095942521801001222689552071855449836263704266186405519335913784508249394900366495289550533620202298225458488697516312422804938657247822984821943489387748792244948626093954944769620788415194731127458100774781060809322631115595024859124441583638053662391506949824160682025048465683944391026466869906920815011931239186894565425178187815122881992141213413572481144988328953446674843647182220434252797139914778823797622433018314054861488221656040208460546839477382615703740998824544748587778739565501565472739405026414736429065606937441442089343188050118457211965784999357359679878481794895500247898776315652269075371412400748922682013869509555005346095962778831085786285857971014129861766886318398897474324705962603660145721498392599201747217193972630833423047432790503512116705438950280557259430111314674406403934034821385359669863350294669297366998854806558144842932387373123684858541198172512840484525892678683914385970636080935242554795172835901686062023478840245280871324671867028714516766147190368998650983793405747853326850763348547614655080065706054559324141397323526824076486703090917831921826977803118295597123525117157937153507058497948830155602645151485092235993294429881316961639875172563883581233519281545342409135603476401284760363445191550476228842022683876447058000782573143771188330156025039362407156756580135234280200881201348365020817793825304044873127183178007946617455863866118223613086168718034827159819994435247999391292576368932648515935698171802306684546626412369628916979684195159831825420371616811966965883184505646077925796154768858784177374513099736080129220695115221494560254727016093247310933864241334736249544325767558518140822003823390554709793306439188271072390260899199372873750414220291710672826308190390268225133824770402647451871749044141443449643968103718479600561856851946912460700711489617070885161704737502292836608881328427731025152321323394430334691671039458253298100579609362175919033886207942225839448407259713215342218914696907309211735156613557461827077842793362131537443385763732504110469439175761631439194999397030511068271496721846853950620332432299315243774568886072058989246264492729949817907981705899579366619423178449950683925825727655447953635485277071673351137714446768795951100775109818435661131474348353487927288068582570951103628385619606494492792711534897178295997323233268453767219233179162587272994970814833863360252988029534510136365112634264003943040392651655770238777353342920975261404012327215944458176365986349557359863690094323792869475445954555277513553554387556989620172386097747387462303597364346618994614590876691319611118103170155974955005405661470665314365714427326381154964470330175928963258874512728968816027574219558277122826937429096880753949131485027087203640576883426774117155616311442972599610579073835957845376939765251770086488721123697976264963277917244604294179490469426057626145442134538125877835521233275721775399250888750149586464407106203934360184095638335899414794573620868065700791365195240373189348529345066846999684635646751004188984040280039000691922611297383145642672525661820982277042037176211551223004397044005612691468524618304743555863739911705159608334891542112097702718034974406959171811770617965043610397252341411281159351394271142560157313244320978560831589712081328936885797708856320214851062161636482192176190602459969556974808483744456592939732427093288089311418145505245626738826896372831255466343193350564281234916357762463788503891714527959407656700145168728503161360657942622629903048149777928858933525213458585631855499171595683069606360445381700548010650121348982247308592542827597233833682416433780932817896779904848146792553805717317133222252207375526292503466176508923079977829663562573632763972624346960159498806610785668625079624752247026689591530167688089697895380001245587441900077429492820670418559584722607905341149626313296256866339061460947742831078704701455661952007421363513963226635158304837504941195211262516625047792482085877524564633458753065931052633688176347748967598325991316607716222460598368861752392587126375234443659554315624279350466284216203273059500742778236807721420366704770741809788181305985999722224824575221319127297047194376496376018824691509154042257271089498760002025048435752565441423386409114889749043244623821351421510558983577887323550964245909287380009510391861947054165071467000521592182220972387678883272659112063133507954543505739104797869353305569971562189894535915998370776875533622327785958910412672484557655385435820071445310229999803951643954911443038387706180561415827965742400252661788940567270928132876086276592796822161980846703322181565286744704510809540834672624611937938093862620528305782660989738715929922667153827783549031313024633930175421788653549174236988843116636899055188862592087126921422745693074235780891783263526538846708310520805422253103176650667642121134629124837329063010307156879941258794913098296942428035657170448551489080494154562654783884271830969476041329018901676318155656372373055081449793698672244614029067937060695986856122825429045601325665059734857953091149686638948903507677418052360600661953225782319514354793618330978689244649672653759067737100164833676736778843255795086676125678384158594398456006330408249049376450111247180982456478717270067345346750434216974932315480096128591740546982441297269370667332990745117696607755511643786916244240727567684851081446721565787496516745282866183223831642784251056669545912119017273340873893896748821377160081809655041184657829253893493281910154013727436073101505257444387309688043141369856508230252961538151641447448215041166962775905061941586172748408969717871158324647593893193486961601811953460141254479565479633893266286355336654967532263695953256769475413133072545483987307699793664477015213276681785689121786132202346222964375610390637556341867390691531016720272576104791712249659284494883385742802125805476383741170316243359157853776001325480533006513047288169319719802711945975685352121599721598297178556348039549255878767680962956587966629833085187691237232941575240596040814378573710421300926154752761009140571829932066020338761052935705497594008046112970468719312227250787592402580065651250690214499627413597817010225985116240539216834155013080834357523337380282428791030194346394139450611256717026404353108903254957483066120912965463022547094102221126823963522787753400887772380335121489332972690819458622553948352504554361581111669893836590376268275710429548368707911283490147386974069279294051857812708721393022676896273216923522840820055359097481454917786082395344965053135436022241922584757940999790872963727973866982237274129207449785833286800088949772003803883895603044204908997897308356165362003973840014320127424487800400432476062692386237607561682916829087376001609258054317636544926571289576779760303207776593235501494374795516836145350895410141254057955327005371557136919754838042592353231168636325660968249044383156179254331734660102482807142576951300347652090912048960268895086672401782426138581192512630629728400810333564573314129209869179843245883438198388417069071846026690014664668584493461151511175647491867931125675431851808527643113706324139341629884849678107049278943124490108189238871841595549070612641596751409204772685504258504069371697452032870003746377134603642976927531821089114210987025345652083638106181205029596667156840690271949725603200299655991769381178996020438026967107588372617873304068062762045765443557668492159880657172486871795171126798276004064970274707497692783698496176927728014477663032490987585007463010277312903539862578822386330854881252495776991477052151133567933802255188619593517177705713066308013705695149511277114950518520989336971425065981896071937229270374432209499106892075592295977341719023820335614791763635212770075874852163001779122897864263245162046515064669085771592539330039755714483852178832112019730371362645224946300856932220053889756013048149558857324112557810659741061122430980911708343456501127318533294583818451318276033594148676609634040843133392620899797573702475943575347793575189652474721749757231623032370163716690788890255071231740047152996590631487081382002638598378963734231330502915074127530431394035229437514811955785186111515691330377800798835669311727900589931691937155823499971906250963274610218857336283360788297522444945672063458233681803546733894969012092181103849141474793113884569566852237624087360652606003503812348904013686293641141302166765990610152084437076199094393218761211808163293135884637599180719258231086183999936918231142807922868361279765612298893607333389334364372138738347552547246349027173163083016532852206865273450112988594783459477996958375208612404333498726974594889650408915594906669377631295013436417638314125663988758462698159175541138429377362940683104027444610552723660016159768354591907575420922756495142923124038253358760882780364083912033200554543368183911016917798380722872594710229454790587542267615321520075217685740793624604806801149693166726039202497570591932914329301842504045587718267086332277222487324748192710048865184549510609383655973118063461081995116076080232999548869253618057319735838253010608759532752198998379322878478924160639425897792933989702615214326094864932059682026030278227014512576937863032832631757987469186953878497485461942956045950867403652731234249503716832681716418573632286738482199103550001151131081967703515123825460480112675201255411241020219019555243760679903510099466775036348209698958540125456645110516529345826298092917724223943372524926559696741142221844674403785231484378941410879568201557818463128729579691367215499992547573720223905055433500105088751415807609735280606623363438920534609433853589953965577934344998055747940336820381524492100448751881187555284341067499124824562353317403127042421034160761110642270715418691549779536774691766392714177706094559370667735297634027836705875958276382723642548206565964863921614423643359824134033465808359741592163969973871058350486869637158835430719535444683413102629521659085764963586924111426084517732598373263323683727014744933886249356834386949440618353388825851139265662085950426159709366586738112581301927864970313411840508891343650848332266904834876463261137802338851505091134247550931970239292194825991001405585144584506514226611818379557001218081996900613003930766333638617712162892106856121846361288265082285903414417242848858834187144763640569116812403646263733976301083424488208928632048920762789400756950045487590699192694670509924531181575986566327852918092696706084522702826916417907954180808552159750946898879469671919379701647898228204040251650435120623531097421884436132666179199835555918186985210995985742334449196115272259526690670624287931865081049451157486302254128474708472284727778822593246035465008767583816398507454971225377946595318180492477890957053649726666497022403951969109994550389741021679104738163440061697880898227720488222525413048617906061520272913744523453793686577361729363188849222643960631109063952264656575804268707278614357795889391908628185302115743190041298791829999830517978190994463391076545724071329404703627880025876464814344633900019083343947977103119023655108456517325020453592249464847086560317362128338897993403805115212503671325317500358329920101475674557796587288836114735780573532245561916263138496780678392938815525322511323460022765843053061447409922730717919733028655585499378229128198278859068501041873003979156006268231129401928878670120226160434128954601740235540368579764516992283275459925828511856839775111430138811718517913125081293302744010724953548172215436832143731218719292452050907587087138455679033128981071027070262232797937149434033150016337030986916466688825139579451819933726565520579286172196872113186023021978766023860692173820353634825737446806858777294356858490002551763829312844171621243490531973844441046773970435934397382058796753351934639423205741537448011587504578105567939912522436688475384708873029407196565991660792779182803913667902826373728613648573673340772953880643651765711927529677010269347331672190977417141343179387792574857100495166822774353315587449097313381308424850572712974036079612101566969757151981095393073926924273523679351110663577362727627768504995726399501489561677517534590680920626168183045395535229438670217277668630615177295439772514422644628195361599009267265957041142572640002865529945624960176896474045116388672853215485115944077042558426931750102263698923272761325275769383287167609037446883513717561007977344855107037074072975373507956234986023375309648786771266449084417021034524803305525846005245376181376709509600895014206017048280626540444387692617208858361040778086511992686667477944992697097524922049046589896354684184728429199330626129344889701457075164729084552110777280955866193454003502704341362391386882377606555768077376972507027398549826030602549786683038986051480868167245490813365275913213496183322156959378113184007968754686535110062254726091012971621551329986807625574348175601507123247307850919690926728141492025550456597881309064725723975532365188418178500388673107853690010081900985573378312350537331664926736031188994151421683832705112775521331229906965802338162676370355814792419170790389204819430623193808998230812159212499791077978099918956764943290849437403014778490198087108231624834330826091473295311271203782931314123633192001741514235469283817209239318512163602139929126947319408202967995507877453950472222124854975001894459389295666282539007673863210908641261334913125952659354106481838643830107477866262061543759188475675792429438558325384975135991854011959649194702518857378079714547504014628834012841275399342138128957267083049221701225523888982824895862661172192406843516753370317932581410535962220345489099842059166189030711118028416561202283538531270905346702241383470225244469725378628406177583644791429238143578493345174835091028443107930399498098438282215149742635705317175572271032206598343694146345187096862475467988619731938758993446719727376910240655254430421151371514334423848012101402217137018020604133824403632698298133497142477047314108132256980583827007235008537826540096433165554270132997057787552841429724081024386167857968775177064160126650804746536786594483956995996239278249758783137127183379324554221314762629233760863149900565622480636706543125424551189345793217196635701632574962928880983675770096385617250015392838129930759089190374928620285211334374760488173695633887528973857844343079472575792150983725490523554078069169300477479610690189675219661484765112256623674809521922229573805205931769569053192958590258854725201800324063410376136117998746279822565141590780094670287029932351385163288439989824186652830955710933590179177008846000981330349895846507710729719380553232943613562923039358912530263796504380040418139646413306405334079422640534725837727799100590754239893508010985469773274974694360490965226960207345954656374972010481909773808875622801903804680270599979564002577932713887609456768375109342855479691458654520156744373709870770542200669119371073585626134062584434067253373945179631525857652666310101730396157634187675928205500555681763235866555086997584292611656550474932953618132482565356886870093992357616069299767387446950547382616570670341486184883620588052884475245121008272015267553602697875054758715419148792419722583845355502680683997017720366895061937393472992796912304054136284111012390858960258980091443596834775487990542698549017920648652695946722785268974866365215180854242084056841221255480210172168544012562266707823227242748355186172050337295295603993530743773832950881322261705570037083521554777571640182462221480584381987924124760942455071679674546230171604561400613604732461585031691348041813284573160783000601458505786467029326283552602642239426327768069223339337804325132482587486381542029492228923479016549510851850704516910706616261677383517544613641219101427915444642514744750452333916905205349083494148818679319102672849725435169101432065752416991674695310520961699073727586149679284160926502095691236549169514414539582655220637733904162155957048772463112285237601336353429775530632527626838085246382889188068154382527652608341238129124758994674376157542065532397536498346341440412949097341260983900070991622897267914031973153935880319136871932894138361874196870685677392916701527500461343589417730089816553340025477851590062274127841439537332954645081082878593283554525865352142590815863819782507633972401865905213598056433306010022127046756241445237319486271750731395949787647283027554023370785685325619480148597261462114133712448288390779029613110414908300883840391595110683859571159098659548723145113800345836994309649510217193117707301799112108983173715115745048024360262866949573761140256679480820751738544550197242114152802493003811918588408407735379772902608159381138436532325104397511187778175928316410414809122761875681868528509763158065727896956141991225436042032661828586191828686810181839945307015476675251105740186953865453544918036909420120761985792353170022760826467697010950865580386997382517807981953642586805266821692602294965008627420358239711830000493682927313480053676314135413325161755482635479135898191255840350935916623032440878381104902371914688874475002998259234549768895177552657630520229102663421589223828939322423226227240942408832520068380808555556409768639314905405890773015911099239571984934730416085046665706126457791778337460671944416694968613649097576633812220408963274391125172040455305602377563385229710076887245810873004442050161649634611495573386568130703104322575269941686452653303478081899048102891726017249464061018802589094322632753126685653459102784006687758907217551186163701257704953868522876904833781114657256446492230957533066827314172094208003455422362856181752870830976392528503874766940250128639728625971209214598047849398107355407073271749670476809729149214440289428630147030296642868419912076292336942963083211799073152139726033308664704832316804356615515331390716420975764735043299583249481640289054631508654950831677255295072536075448287238749060736003475961008990737869480389261396924828017961089840596975458274341096094447066930688011714570994028537184719677710397080080835031958363123815159118181154807832018271841567491740490002382346475373645152896299531999588550927526581815928134804264786301769501514866912264079756638539340660270940202072413374639759783933501677787922178465066404286553830373772481127856059686369933486239645284218041044184208203169464266133975572798269721098130822772293831070266062135321059070122015067485896029246091132833840214739440668784252703585492525689577284794671556398824083548010957790274147667988865009401214765963449367317806912253742776874635278592580961114179860002086558786754201786102869630998042848690072132930786037771793084296866756454969374824017023202728397290263414106476148793609709479991161715891918685632359802357425136083048150152459343877596190130564729282138589735663778423571792575669030873985055212536585937644601475870770510428669065986018260799250409284271958285411588441559547432850659756315107661090088893579862520414952688407971779700456518730134814349603978233762619828892388823761637668080421888767081209493585439162071540483512639554619754460764909894871528674814156664106817909817373700349495206832751076054010935381226349114848145222382458865122608314671233215904491559500569843115171836636546250331238819804695994284727976852395039132153470718078677363506253099826832187635628072285100246185265658310600045075143344085668502686372819646803334957489456157144393008143636815433475211347649186755541195831265448316033293522696640503497737095767944569967229203512786280522766141635630161051662252934896716819031802811804751220126823478764009156295102643014043755054236235200010182193921178015748924399113573763591216517194116253974653427198516535942784656354918422376355899767503003794726348179716884440195431114377902470243168539102330681584448079923560404813266596644258423843442768816353850357098703538202352912221821009142103002673942515096247640725213620019818180234347591792599522351093947727333797527882834737604522084009790593598663101668863690780178494484352290770228959778113243841990485076793593963031115562549018472528766206907648170891520411496481754337557235090610002563987911564527001817513618008899346474123271422254459115078647994911958949367034762252386865452706119406006569681454009299272778708948574856230051992513929334478935299033567257497049183945478950069589866359670067095838670764581247495648493186206443977686340577824549362713525112827411853964398489557312848760252445505147431741505310794230969950550414416250731350949576672727389843111370934874091146828932957116180870339027573220720614163379764580545336187114700612594245238103278650388184845083987719973765627346818725260780118424573285333319784064814062009371375007217008307427744655524323917597109131732486450351891338371465243812138207154964288151115305169502206072444777994086373227775942169328993137945748693269003851857520758397803776420630341706278532464049842883696296866514443351801945340108910697637959571069231062263255152414563667848503126166340699050196767154016761055514872039600981459971515631632123862814245208463848789630136554752956078505693534403360707682128873371059539701800953185025296967915530893029318274207925886104896837855518107647858184530127117857210417733063162858636653456827825346561974165798503092235036568725816878391695866165344131489916530405332205591057719992976821549356318533336394667714946324122545943040185664702517109030736283851041029037029052686626995317404133826048009663589408268397154080675798314144130571942347256182259608453066617208987894105701073816870333418236474558827593373942813007096152911282462463709909720036506842061628183277986321028035830192943945308396182704859679864767067398393363271863256441277288049915797302996410182139275742559184900423759644996272995958703684839804199706453267266196021889888040421817651653415354414287992472645684094092849061567930227812006549903184195145494934033862070194933790233348072187899199407517689260479211885094641780097251635684621953161955020479269600778258536738898606622821610961920340519010037297361458173626265777454796853736225048757374270626420283810083085314063519285981654990416775815915570225013952955620741428777261534471757876578699310597006049897426239840271675109259353131175395413985600847580681581064209235570077325855633613754629217871417866121127311676476143067999027153747507201969964615256343171853387809506687559629599063369627354318826172672966990889275527340750867074200970142095926037938991871865704692234511319223336113065825769030502645412787098313357427072701964392654137982867295008668121315666576728884680355812949908824561349140030535054198914918965725550217168099129100091670822527541207185217098607967617809823730616270636389026738516077238505108262679072691539881963678394465126954592640458182803415622719048756431266534929620850042685158124093739136396151940182858949776856247523589419625049260853485934622249838379350361384343423327434079255543720005389910902571439491960868792599189227931978167752246290046588748806281339504793057844470123698500779807843059259496501819922642150299403857950572533236168185586947259994647666096144137432914340747590197218301207267511867227640812835909587448575916104956819368795368465022690471157099396831237789113505828994594718443999902610747280119723928000514822005610492837394908114642238552376823782464791626219295990021916761069655302297462649080875978237172758554696460149714643939488045150031595008033015546055036847656736532438993154706868641358242171574761396224829523937543446633773653601740938107872962683828356533175997512047897331300715856727448839824450783344868794782703822164040624583064316428268885819344084589625881414998419746844783713290339743121151664993484429777118751979663769821489678346359934935247640199215540076318731452087425564895896981656421868226623892980585634069419975572237557559309915881074006881871709964164550000570245030422815059711974030389308953855916167599650176691095397879042028035377145437405320694956766613598698155706782022559706754791682620934016873194936091642369644247793135688859501757546598951657956503369365961665405893306859826588346229882707285294957663394189616207030176776367090716274854931200730048892100171595802877222853241203862547020692260272662600551825274926072142967535179699373340422305532183772024617083548664597114796717218289256975329903055687962915686103271928165062337824850729263777473723699027061191909417816124845221897906757603341934899370310877460292795071719493753132907114413193451968638645421396536495384798736774448671600743531232335842811882540166337417711749786651645558003805458272524455933162035053053233593997467330042707964032041122363994919955319805621008552610008991619669684903794592712276407163055494609610196467343680070252210519121288656831464354189729041158195621147371240756381322610004029583702018910451161336399339687510110375498101314855968436287773062756273287604848429569357554397019355642014906114524728968432944576383644378754767832613518528419932145448560665687954552702659383397630604431432968702451176095646162340812938543605299412291780901078429677893329182988826406057545907679634621964557248315493619166129654293640403288156493965545027918195756974406361751717746908666079726096369843403161274670564602391132788174489423836238317557074427855676832668474375755724240390958431326105794360573907570843434791706833239546174069904260077506431678879660876665204765049256106577605406267938654548763211966384007119839512360271008001528879387079514985564694685962875399790645169799783756679916564970548939501278691587397620498269078917428301060440321328624982226944738592547768399460073824892082874286376245111362396695490363971387464756778057789500456139931532109121548073264911041427511749213836464344815025564694858997475666630322236265591403952691566643006292675533373923425737685710973546787932373901077819292415151689327267317976567583677155134925770674389259259800847341622965899360342172077487026178912132006576493979802186188263287240414041869854210861124966365682553227026142454616055035874171183348549626737021709770581070336741612374239534932485756553775770581139983880622115785950167019919732286267499615316530405841385442687914608383978992901585002911327720166861193438381995351892907295360085904283363803337191451047591347352465725882086809607939266177837851128481352772549264702496653839068847656891301828859276926042235960415272654071450315697533783179821127306737940286045728291919885737980267839112514309578975894540874387007645100716988468225630732949781158053712517782740964228172682127855275527657655702320594797672322462239492470722972797610885661238854835235917209863158718059159361889265610800597975806137766020371672212666836006481947561802048407834848179080687865159477904834528794562834420562523443561291575451244353670064281283116974880253089770752508454812725216672248510964093329124005209184978614387625234574188713464226250492523905955626694629075057830911751299229713434745157345479464841547133005919080206856936823538539271935562193532729077579189960916252715990715361278480687766982664936496371611038305183166872949168252346802914224027744607191602872101866698204480413071637744322627984224081207327990316573798858199605910549874253087236675689405740370737325014938175843445586577005009379396720159759323576655113656351850665397576568906041167377666241273944684435917677723416779701916864629763916298669047097552002771543362011055745260887035382878302391921215877090140851723087486155320932734423581255373251525697672296072388128691973845860067867198749511714005883668715691752591026311224655398657777100347397365635566192099167690029424832997989501664490971727435718305241506736437640661337081410025371344914972352306794833561902331890739459959895938218644738096580620835232580918389057469068089807526239997642999371721727917603040179835809952451371601992435469580336541233149126221396137660653596187861980579984947480056109618185389619885084500335242138945050579094555867865822709066341887860833119956412639114931939788671713663227283331863772449486010344925693137255316916836666325102432408772857868319523800465431190535980684902774235467191418539430564040990116912623528042247451799670578977737655737073575935568560227088415021340060697957839775900313348943556337546252480912355118999097728558115370621627650364695164782868215775841972861801913643403015058538837140461341164930105599979690041014297657548170296139423646302609958147278297495970210974976534452278392498172416844571639647852288602249811324087299856407141017442679692616141458778318522860453535796810523003707886202589627790768194024178114774120125923629853426348135147988542074605046086699981017410883544071818049541930578037936710313051077607503253818172308863768151202996735624288584043769941799353679563213588405156600897329724036057251430812355871023641467508132668671516869814882018670173283710622404839861975600456392264113104023023558080831393364105703205145678193692990822477685456818360402988547972402525459787986763565419676440793446229963062688259487789724678492176395863432477869798878509275932323152220697409472434472339485103828092036346651571896010924500891552301633738367559759657163375470069035597470649484527104886524659835932274093277250379632070883140686551140893172460000146681429719504080093400696566668759786564660573647798959200006300310864232431750365541901875543212587123744692569977310560971780155202708829689618732421612627258569272468226968561418415363146471103639802963343525817705048955991418762000416598322893479422113101471472872790846030073132210220306896871631077925920135711750604824674569311752369698901534786906966800299003773543714390179805413868349301720181831775063452120439007014162250774376726241602761945286753386162568571480092794644969088787123647366263663496515881607419899275803732869441328568059050634213487347006516709956761598577960727712230568359939784417600193354507328307926103771704421530043656497658906599422783312699652179656884979010835025293665627269531445819640618022916192119424081851155991492797475622980515288637202536234533045632582972790491248274540741414005949411928360105125100977539605157415405645083982930544189383341104863164432713613718700815268567304484487964101986919531922400098500505019095848520498847304767556659266812910749820204326198845767785537256888650905573176784791972466251450830518562336282771805806419902009609014146525080012015740682639255700885710495032672433029829681105369424014555707533941532447920174818745345142734091380431007396881586704562194396942050524156508414616899826819990559263467616152511898252936532808221955965345233772642536926873097764708034493147714209761831900126053699831007050295140751071549643442782452754888492398324769112921299502350524523128814225709590022889139473411513634705995441541124302784175738524708058227898673233034143719985297246005075641177185297120296761815857255573728158643443120542123592748336178964692103463031785295689244196954927823461752408682741294444472757885397671412153932339507676313922022833487122115373381784951770954281911084421127028880369659363362103688355927221506595932911244342435702661903558353447762171891379578683020513492074678399046967105317607881610339423023566692166508418275420132646458877556583230440621243523522701631348969119142688635239069671775431328356678345447935644419719797545490192294595510010255450506007510615943646033368554781433133663095359661103707707373791442442035371034122468728250637490643281605251504929876431795139222539070258081364851608201886568426094487102094629899057909495061426273269614571990281063053708424924306141603669543403566849681069969766485938087262570703790828998200535615531841644907975538320136477249539935027080734430778428627056227929444363220548045026458333759670641229369239792586663449426560932968137789534953650883397056777032501958626830574953296916256218267612280594557405146527469778274874511628408603630133724675191391120839274301624085484902994562656570117600011899488419746896325837135099277154738892650679317679663623112110958049678481169565429340280155781989774918726385271766487430721115707407994260475124500168583738658198325592649473946981593547319736777553511985226678683384247944935467728040335418656469745891444260519380169029785667013383637585157579434234507346396553431324844937542853169522521399417061586577658988857338636117593340980940232780093534176527248586083878532572854312144919326691857146712702583168361307501156546485141108056978523896022132327077110117761072640463894177799574743864433168077362818021691733602057357640395633763727571421326112821641450679864586675438721133314790333598630320395720718765621946511857278511114518420783847465687531875415409113471675149686440261848991857033683566622496744882147928519629264933469380277210982054842519747663077007811734091426331863980156801911536900606470016080223249497611379103069712402136052026583273641916149722723876108529984603010762695786196831688355383665159012952091566535869322143933259434186984521571463214879010213945381986304891590414921610440547674453271855232874024407491210903029016321669286927849174637261339343026075309106517663029167055556534271253949265676860096434767348029697050698349705481883408066578673846053817378065345458772682507618492626258864773618348498012014580051184429677834450862856034215370375414315783842244305130120858806503232155371798147895189587075492770882566104191599911355924254973525529091582250397308887127849587181348728740444386096110329546996127840773306230773800096491193746174229963520625822056952512401531600968094596964813296316635181156377907990699250071889579472732049670345397109556439508938439102463060349715581071155083170465805922995506061265867383403379736728546323363930452429015045743341406728430774766471259245710518711382295452716535295387515597533795155414446515041145946197676092772499947260070833949001705672156828576237568925899347508987789095720489257897630330896763854239145174583131001888432064876798564776859518278091466098964197522743770620722612514419310749349767970654526569284298354032365298404210776465674505718157525019074936799295171741297760298254906218910024410045057714149532530683300192753616655806129819445538995121291478587401099218870297069871740655071417253594193488302812099132947809055712760924560660572213073505324884335964595804836046985542335948984621684847567401614181070392280583336898930038347289422529131921217506112541242962679959908418295937669009957054092389839904802564148801106411423839543133711654907926008298558842900999686816176171803184601924489971066356055209911836654339402937694658821450569861104159193553855609674891764273601606958872466385919699730423035049636423311269355222214592160655955283983800497097726240885217339953002792534737752065474434832476945826435453383156870705565052178922705731740453695122987603851757579948720492905651680245119152198010618780433405901297380017392113417118262114286862328718167404906811634207149853375915004502943255620229615483586329634982568842402874860431692545113470450523942806191916223302452979503104391311127823391095419761445646634741261749245630099737610503786908489346350287188981205664939245058464080458556908442629093517436452231196435554062687136796744355828777479653194162535022879057460235420716105427544421155876841088113518808418994078520364502993730486526243552681103051707744678733278405507737801070898479305715037211246697084617029104240649415733946790476226220513073442364715820530435184838765739103068315449913059324159404677932520687558938851256626808350256617541214468189822973355262178537669428357252454927071562585055692075767223883492294419162516265005650953153731815848364817884508980782662132495428414732588850571532744247575081794916010700678297674447227374764594953755612059250404399470633561175361028408658935692740480122328167938877227985038237169280651110590756165536599675334415804272171219429620396663807502513726518916371953495952430428309760352275069503888954000373703068937154415757726017655058032201109327080162958196165275254871234230078613617966816547383573013221290941734592280424914545128598054332682386817464221920986417343477855291021621616913864500677250684923034433299078266652725193105383383247979986080940476407826104529716310076002449935380552054098991543669214901742052689431684376542378489407129264111420993162021902590250603457110936672023141331664720303696021176333318149487172265963244388132833870448889297918970614946451670358457519400926126653689454139878871316804158861994957876171479238281752410692410682122695542790493659810731480077719343482007331981282617694201508193113592167617440883895887649695367794326179108859743495437185753976064359669085538174424545847947256334776222891290733105052256021172377719937339650656672871574878749708658468700068357680164360868556249571884481013571519962898312139012848912497411349721042700251892239353286280214752274504074608883618577377361126205174399698585839673811757647500902227931077293925151023316832777721179787253854291057721678978937855185777497976905614614262484797809257884835287314588500194099205469827831173694719876087170704586552381944670009295634791046244052549975021826040475083033386103858299652179367026355777337842243145371513841714083206749050512663946018239261630244237106409361669390119610044417082934965586978627288005060527421164513577532810775322279086932760919835850859040096429603551704667075099694056472672218953460494720166375383329513024012419094808943718512157650878947151775438862445025618353110553146603443301488425370683217810094946954502013691710114004697591785802075953485800576081127861616802119754648338338600767243328168273385952698436650043460195344949881887935513999763680366070399691895671546025499794108540324098156534048578431694628254695734377830430319023732548877001362892153247379559983748317651726946792446885714389695648077662253152650800810732792491273252244058569457996144210066705569119264017376577778910884719821256199434009369960097082426379103623656325652032118444366525740228775126124746889428750946833965554159839725517008368112191392262991546043408071151046139898427402822147669888984178469011908312730580532119546012703500995296546033508483252436544944410394912165663154457846045454291578465608825973028708594343257499760962830668674620121692026604501493134710082236999892631471166810073687532713233218164921256988725637423641863225077873745133759259919014256857904089045185879733559641528602631168819325460298987019271179987195928009157596096336233069328369233598786364940058869063318858782536835128765709142061208384552014696875481182901517572036571678000622343802822259362006528196097284832260359066048331895400085978877304916085437908231139095498658622652019884794382968180059769794423478302466277537000394662200785018535052655352536422384526525193628972664702174956123201917322827559225932566319241819747119253262353725147236932905225392269295325564543429717480638530427383546255862513761286268077193307793678785232713004430336810954107848236071546083316800560480673668403177548142268509267731902879853619252938407031463972589255359455834868523116516948652994114549702239773288188122430090996764750463095178160455292306853085885550289839101938472315604618763963013736661175053265592761327828640515806124699669117252911170022211794422351860602053944774306135708678980501263598021279929527279800080727202168989900834673786092129356317416353571070910710339573505952464081654344396591805173879030322654315651971949385243638360440649331194115999692590157963419963880376045872017485630952818452706956825160990450027889618638456989209870966811966671133306337053617376100890503037600193994016408268914851196739440222766859126721023977373335984711592664274976689936615754646511885862840865060395859453616513068064549087860877298264605780445632694317230416935668385034635712314720097236338320782067379989072944091825061922279930368820475085670001920701188915751898143319220072781546667942440867807625711760046971642464970357372280581228805926232530315925307760608188342367841892435593644476554885720961742650210764013213057690468028965103005096277188575016326475511272214164240702495298703582896446218154286193129042448179324184655498396904312752935308062940396751614726633732789867341292606577532438154208199155845079369978785695174481088116076625290001454737256555803762866720579917601668211135476558857805674408790545672401625865729005394908145421515907351021508951431375576475910408413604973771863458270114884522326780672876837400268896995388758658407498289452406783235016895453256569597721621859349270985913826131935394042431626603903241696748880045782992696675241470504545103910985839851823476312183420807553824115517568362297985611016333305580530903355304589942364545225320147604298018424804610660384536791767582044237921680592721659500735207743244265860290317671099752866535610968568330470643276782161578781900425215784157251990826908985388977384343263673303822868215131905162826213361060859338171305910499313498896223890598904246140148108393159847180483004476893057213683482427238084887258391222874264953181252720880274122969818907588763661409736050729170626477285911600760666522725982029689376395388558934290119010493516069644463158846312211934407079455217722736773440734433185207968558529903459653553404469435942634372196377626680865481630781872124078800584987570676855202824456157380595409705604246375631298325288123325259622144525823991854747438735406154225356989768164606237372215454550773546350493409971276031816684395725230701938734891779049243856460158729350670157193074180904253519235570590855423935493325343560964569872817265201519521006555391526372004430886459457668249624702982257052141236124540718327609933433085915067846262190809474508412715566454884105919316632041696580411480726036245254919493903134787888030355684155633015060438878763512558466755618004234895858885969150420433624881427719247182418938345796536134945489800106074340037309438268932067458486191230467241518629765540534011535036941525856504054325892225487710628891771236907476502852165528780030195050817482983112653840940793627920573916630507123970215114867563637074939139476341330344869757252334921155242424695546528616991258180593885965428691297752077018990523818046191787901463876742312260614111330356522369671587359832515666984091051981254251046917350768454953600132611666427936682712002438040248983808281613972997377213711506346032098712627999276749577298598210728163487197966923973722908795419989913067574117443105345902844912086965444112501442740719910927077443084067090015081982652555325945124278319763780685525623649795402508747770172604557085907119250043233994305538780080713116261665006856370908281578438011735841707009920986010694700577272375929627563547320542905608859971378966260877269730006068954190102704177372898363872780438847328495745740198678456821404880821876496899840779446319217752704858408366170235930323509934512742456329182806198576337301408394833285075262998688734812085574299569983740240953060303745180600333359760516571319221659863828427293546963202589592476933062283465990218480087875558299963248431578438643118553520813153627647422981828124924114932399806738331306797355214872267465572230683736175440009701402405516461489758473397012193373956129387395042043093734972287857884381192051008607059189005656894275843204845736768682319450999210495970898404176465725552939059985538009125085253654743800280396797792870025788144304055912905523971985661163530611848337587842231358859179668089062914000461692778069916540236377903467422513793796585565580429894920408511798558327793352926410687111337600870252782878583957564720898643886638161500670227186627178143651922114633902279526906763714569264776135249900025706818521062651315634778772632058608856680699518700072451586537026940524150799845603705673724560245402380499882675282321549086861680893220677223399630022104704454701035888022840393171672562522012157302870146059687170046203282683256591745596048162380822174203287310866184064261151287453958302694063527258986485312110431648047012034018295569351955158942681529098403111893674543865798115063441189635534602647112679763497046682382229967580025231298406673467661557715059109442956841532851806675576957048530908371721347821895352536343755130810057234209971288367531124366426355482667304101255146074319277583760916886444781926446046792565539033930799338137546481415053793685403729195769609552458671256456290162398734342369986785668144475732677204809106672891775084038573312891050989105415380932665047773237682183364201686891949479036221977433686514572484668580768469629383348795493363019972831732376821633125509734210109830261375049953522892803427525446061555037119541608692008461826848138035957444386378599644608149901923889574975045584111905382957332905228759340531694667318604461563477928527662206600225906775410831132486123095943233159097169071657197345594733265703020033738129675463676292998754942013345166477308044182071933576340263939194041186624865039949407134705077790373569649370718992658125419994948548972742521096416798023173571173569147608444755663160555055298178543395423387071085144814006901849655886102225983185322320620890498186934808471829624739193952698508686511076271792599860640001308536681054343732709812290044601037768522221077179968705177886428872425494520130556474272736722692862648357435466870864612357799144420049302413626131105917316039286817999843799776640812432714219906956803122723301343918608418784538546962304086262306798459457419556779480579570170697273412249525998803029076354484096238215527492738383782215944482686922607376453376804702284274192223641574112791836441960396438175826694487333394210546314699139150510347987322370240703982006741192009870763801393576048486653322727001131734934088909183067443343033293007738440250537160236184673834182375048151699855299289528612953493797902759273757845557083448975646242543627145848483725094254409802760487225525152198676532780324550562758516780217430699068595560576832940639437782557679826525831194253951345231900228926186614097268345427528001972399818824159522853640751466787328835883783466737095533019046322739596954848763616481886882050722108033749820716964620113305608009804371361073882962326181375690411591052117489245387341576272175106882804116677810295462597574749942496478337100333303792233370500211001746984387991978577514086775183664398574211082642015186522116935947001687608868488479350454342024528970832877186818706525600116253695667890139947048456573842802878582945824263262002896382058032876809876689691476670969504633866709138482868116717222077952558235295845323802341117490021592876316419926426912680218188813544701072892190811583932878530450074538565924575837336502711197808405390090596341430301668234362038728935617243594698133033989500964633327951713873080646273241175663502471306631700409218640997059176692456281311465357120329504041980934914580058412940066424949580316608757760521155324000880035037796341277928603773686632439922321960004385985494821981249057504555805907116138878006115389872146439497879920916047604700948436530804713449108962478596874997327255439948085456381730647061812367363945385147283207678420714096153682778835668996695065106073768979246393909279258351806804427929325838103439189981237461199821854663266916737392771514945523137528603135239653294307205356124913919767427074541806654869722712186846789753538039621119881242739179180267775056001694822430446176705366659766976901839407259609079912364822863680968527326780944292034126102942259921733200910361002275127070490398024581692552781397725534885928782599433293039212805364524149664024414094255256617481706046362877536449119245362413185938551116276929498395965255998546133383443497258506492200529548530467220699411785437854707504875557271472454491371666596627195874001333239578131018212405338774943280295693180383064061874040023687479984657503577253171648820684224738629126349901892975068460568525391376873586386617421488147495532400022832132044287796994733659142166874542062561790366639830096939761652188846204847542297324906468637285283340522807630549891026813692059984668340207766271330671041965928472403193165692808503078541486612357266999294599645580784776587674577938027291052859372996299640635994364484321744804210041693776445835173036976460785203383593768568751843299205595487164959522603539100597821027460011625700204619572852360400715428847990547066703263278602168028202953995793259573914685808031512626881332798317145483208424006944943481996890491053814066786861552413787487542772250138223446456083466008143535097167046226537745092573309861578344804968844439238781426919228912594421053707625927601726413822029201617450705543529745126105956751494038756395925556254752985448650102186002982326268387952899395475174874980628871992057784160173927873379561447471662644970146993673000584931004259990675933454991135514758774445110156118655767181472138826246093338364248074137380431853447762613370176124618720604345736020240154388348261653264307581934995241319266228400238359451174077949718086262121474862945124731074655889420630706963528423093320268388486246981334495580265749356825196263536191437717158818330481734063706645398313983581242741800381157485459850019740110293023499349146763957236055453829644077605431135733775813359235346138716241558117948597011830754584145333771709358523471977080080280421016762990811142383511392696110170965281530493042569390150949364358196678782600040001343586604592930184443968676067391841176174746232186504126246747473448370652546331686693305005979145839498552792660165650119128764562447348007418309095754400028458425649718047288845184959921016108456256116416217168891301267849870189906353641429104965724674244535598754887774565176006247011985966210064602139133188172209917236812335848166220261837299385462004442935289401721727227740893031431192934917248958483013278898471154861730613930663753114238513454591713868575335092440317117223061345878481644592014296327718450125839884129836023927858704726564631501887813372657628388644576234645215992732374759188058597812328513144561814597237816055500879443040432664557157253428537012495986677784969016788469121962135782979558755921410496954739245487061314887273709695034287651193721999887843398424038688231161033825752826909444397656671117986569664521650159542933775827200383564193317176392601863808367582599613157357561256266163908998799769220756952754004205089209279442794489489620957317013228018141507140300400711346437611924862826525367156328084204530815878363881959393427178215573479568689517255190572426868506696968638158263399633821402434274931573371457579400456255005114685937096537035778529734107084223335407987705084001801818069059241762178874019404355230606667269851162214436079868425756220474051545383113569389502720761605661381502361931405202687710874162839038227656402571993863982361018707220658634073135141144501799171598310038557784741485098600377151407689155193450329115814319406448359561270043616600757704961474232647074053429354806304661583761571275465759648483031698603804229593708095418726484274965342657316803998971468913954738667366212387316155863933195538861034419366997295075373828429541974069171958344655578825786153519846354387737855180519374815364305116064225913440653370482967661947525998997284058132281807504896124038857006673689458970292137472050007318284640410036173641274150712755207900611281740724493466219941023137608428438677570548718211176506420914520952270864055641606317229181026070718289544083092163064706715360678135589294454895470582174908289840001590295941115952032014973609295452992742208975218640827872157452878467362401978392214567743898275866550768060594665149463667200628446176861712428329055233356194714715879568224536567614403724358998066526737855401773791136395953404359768634958892395779473606726130025788046090223613859840957693896515761750090769111381845229531952229776524034379745785877136526297418159944967682242793098151765741329138804706711907731302853576378316559268507613715421194766101521553355487911667658875191247286583755712456550873300999519156982104040557609060713074495649262012632749424085056591411912403254002442259133995691833371292746834065374627146995412910806489739795455346229828147563674188760474008853549404802337590545770402329787305313054139929605926639785480479308570453324355315896259405209316500623662166727621273931984742382086788204238505026704319253095131859767639330077331868351847662759768560983417489371611412177521074017867005851191416415418362264649576579022905607563972806045571494324301999531247157183816439558679558075952806374742193206723699700884423122350472199422979202992042337016872689545463288571309845065674010326252463558986227374357352452720720790288232563233582427051117270996277154504258650762993427303657163475209483588194466520359104294342263766192286615479640798512468152314144661865915211859142108287475148061046870694480445717136564174808855582145882266157280768602621622483450192734837473811903063405445253674168161712193361592918636807164832035414211999823582976119077747670531243827790799198316576679115879751628127678938143198082955030235782021862417091878553126792188189479634352742926355127799100103698396645577562017614765210091415672361371134534706886586718283008271954785954530745823486664054167424264267983532365929180029782220365840438311359536682600513220438559300513461261164528522371612150242870415261488170753240549671373947636067583062279678157282713665997048643554109233772625440848594683619842150426439181808745005568674381828099958612407986208143709689710870996211375958414649935266358599472596687673441971532345583869898474063308481772058353888731179596761428322254363382787094247363145767902749663115291040768829547988015032330158557007805301642889105879114622814833888473331476946094059728642629633348735184913103273826043343075359512907005640344786203961837464638314391346496384570414340813344376801771251672452933944396503204450913890607714902804315252728210715282479367930396910295248598955730793299246904447519789021902752891965326786393768706196869212451992875051321210819700771178203618581125323496621158973189635357051317234188958989292539934969021342851729230041451143872490765187740619763871248365864195394899211774044710280978936999895410526746366139186564113489749319028336886136953402223355400788822824761515056782311175814187673174096065508468980649908040797820821345776218354544130086828896724443643359769877688910154796616480368462795316704710843133551628634543943549825761722098109167916069981989467177484971074756223543449927023911095744592233266092998263218461627879592524830915060799041507868347075740615709301726422270941820772359172806875178201677196057370910546020065563101276096003591981103783535715533092907528452793917968740957000358733750029888861649179396874975532797928380780269516274948991476586879812986471424915104049143316660561246177701686093810625020016581299046245139419182977150870715566230482371714630219383105156818900571468714181995458104525557863134793459819854865770653507717828150200294927674666775721193688130813041883723459477048692305529858735123724758835712709220706576204400757044273822261989694902765225170843558213873769441704364190414907056415033559709848101070289670091298554890591550855048939559829442330470193465539305424567775711584026035472060337143025790715856893412143372794809692637338621526431739840168986003244045939762524844711356578955515053773083946496155661386609743708541332028578494683877026803851224912562181313252066026304552799555672306985232359189671233779805183708995930721466095224601027636561357761757765159834118345779591127932058440815764019796115607999399177390138320103961116606562447834031672985311514020086154906647472189080548213163632910975115821473898502464476874414268725031350506244573712164333336377341154701914459923665176026178561570632539035580800795472653571682811235164937885178122651563801935756057383204810600582324929201526929713391012115859250455329388719438508729467583306915248845946555508198775716005124677429159710320933279483810833451406544111230601045885652665218414842717097066534977402050829041552834508146507975396059834223358751928921768543149437790760101766060649966202529318344167604354809043438112335856711651341721123267167074500767078698461297240402334476431440682212387500434236452367567495984723702341347000335787678676203853987615390555677868204014462995889817543886479229696683877301109930602319229559134086015862325711849096810216767022570481388334377250507559181373076469502479572662228420819776226130344969763035959743700504623581350210040877715849278201350730364874204581326536279863592408430862708187693240012711263997459772688497525886520324127711814030412844961572559462784096097161476842702778986091781714768183969863714872672984816185571176613565891547247320061343412305191925334309267600406641653249354276137565186244306364473980886345339086616888281811684854981206180030015824389329576139380877277505461419806901708088646582806488680676859071788706223760525565185440867750169246489956471535463467087153712197983178411537605397891282280089972466588143077611950924893880512447556187521355824711181039702674813102075935823670820731729115020397553517181381193669407650185176199128617599986335155087017615084079449854240981074684619686732787775086697633935133866234166786273953765743347443210464662050564173932527433012539380632474782198327771913909693517839084273345147783472595634221820497437626639903069084918043068397437449734929675833155514630562377850556707447562536835458943035064765367484339725873639433147766187183774895179550263738203700827427398599091873089946776440509086054851147419029532748113774301748752079495758643562920479983454654790289009088439122076507827271844223169616139556211190256712597521422753360956165743533180218348467104426922784499502333684127867465558703577461643666584135683862084066362128510404959903148319315307763930623657592529585971184701306615183048815660071608776872901811235672802337036412226607596025001353103861567306052391841062094634292882666348873118217097338867010883171687719806116871585484947233785392930615313998665710446532205272000603492173655425682097527167908216970267426197390242444914623500275509165246279303886496941190364258949493548856347183100572056127929358526353682402640856973761284357083460065556050635581184860334734504634415500678971078750433479065613371661062838263330255881224869349821630780757969263860508705228074291957777682748601935115364302752638992839080245765353792076771915204895715357213201896097063199650770938224021421039622996650658849840680012889489801834621854617245420299286247854873880866078888153261685881996286087431063836718169088085219594932463035992902560508252058774839709029020882836995462640569743758722158665450590165593761928776195698956296739106613998835338192594436881759119800520052391066739219202069435977180915317186521973267267332971534671590437312215627531155477720381137837096441465156871196881842647164247107158981155621280915956923204543048767261611467103725911805745062411498818714142004589229357112304077756756400206543733442227031749035242769086537557493525135766264741210789378457018977857278848255254491075147317026967491925423588319127859867862049292711169927863788277265000580314776805976715813741448240875125499654441650413859843416785118523897864794167657969240824738276840570086249259142467048642319335375321780138364508029518805996153359043203755821325117119145009730209333188986614022040288968660476066773513824689691217797194913962687790933155163956821925741937197326768302470650695437130751781391981801773725595288713250446275478780551517309755322174097911827413726092545716111181372014730195545683144930786568586155667604557426785744702066785523497208432710704881767225247900645053982051869830033603630141557469435836830220425096304756409945730705468900562872453137003264139193458807203437398421691248790459427556328107947940224226285634230530320374736750188739360530179573725518660945980704520476233437305055495694143852796704976887897469028371747111902368044712896300479332067580560167285813073693352900462969098933726090778860745948528024084403305411849928977731200432473233922515872952382755151352169023940031850130876383929374445668060375178255874729855805809306515194153959138097155860997948289678860146793394682558876283431065805014507194979510905187741825235140972170380633945037010854193148958701713022921840824753296492936004818647355758377972495197220367103773084896959716198275152550225556146567973677886662246460631612032345290176273740865356272702853540679194622137569170902718009784641463223670160987699171103755585647412241313004724673651461259313646970766173198777818519973570130078433923407689067343618579818415678871866449773071409553320070690160412739985096654830534766454892935186291628855356880721349033972775008749107556522460719865641084330298286191606391115111073156185705004956097254492421902987654411126705015810044102140170034237519285050391600212854784612729524397255773124608883110175692208392946380250001187494171799805224798822959839369930352252679648887062453248502074342401106168328225891960342531822219865297412213596692215304626039626027789693605524279132439547060610842292346076233496543972912978772653217184385055460638729832499178966040819971341170897662983163720552372369027484185553329057269494698332791454734764926811987818189050935841006824653925566752664206389370607343423842459214294771477711739165239735649950351064988754393132509043475021235679282369625758397994987269846772182903107692735018076224220189630622376413871071823470602501761793112010263044615459851294860075901070537253064106731368029485532113675512287510861241575756738180084909101097445602349900767545101474990552860193260012791638275778806073281313914085424909768066237409477303186544662378032952686860982342493239416719380976527894604546415389188194597486844756976558809239446917458942592932984381513953240914737805547432603145404023382209157081616744481271749438605022359059626190936594790085247513810492131512818242171697226259231656621961867825808450729762046897179876662445954364341343143539475276020428500970622475138602719961453347483369506362283888900055825465953607860334584399432320786193529836088052212797008722203511077595779083056137518076834029107658101164594424598811368546313088861358303586170101934244368369760247407140763601537286835874635049853009887030259370977139737134024534482915255634490367153631737364926057396470032434265376620470322417405744336036483654871549087123422608074210468525128880109186756872929506563555228216016603731317706278127555451499176196206649748631325041032990351024636892936084601930042652752934864982174341648724542691313578618861354491180780080951893224895689274714202964632036659818296971591148360279677479849576082792699550017449216098601645334763890402908681028208753511268968005264185422061819382661141702610502466588713682989521376047736851832692198366048171464068338370418680701858101066238330430143108887676529533015360029121652343068884009478310675680226436093224605307115656624688990639988169710099581361690815376954313887408671541658988088777828991554474497169180559854677854102302198319199994058791125918373362223396949377864385062017804583463925132746419349845018566348343667816960406577385323000107873020607226904383021796427173722007264981372526268536931860235824166803527114358582395696779226080687215856054041310275255589355494830854892151596426298809131009277482492776092949318985913149251274406449339655264567275666754770305921136270769681860557301838096109252602735210486902460365624534863518144442439368088211820166162329292697727095601959986790214021591099728571629881884022867309166098888263637004960686210901056778055692398777463779746116548811137916765963277040200411769698202458021277458137974252221636203777718086302724087235381212927294397377402831499456535114692863204855704292307386518596850359042696517278468899491234247373989163153786184186435430516382063540057241020430930392612229638017825168318693826215030315096358622717616828172901089289651768409904481170709352286192508932148668284322525464955887112366764442395140109601528221808143297744010067611321666151512746857079182755858145842250738069894799466539647729799088812054465960287794173803116692575102128091844843883907110089901989003332003288236422046929667100915857499885753792410204205454818657351256666770244841879690712335989677913698925904423581448265605206221191677527436560837487292822997544717485969149113768563874050505934232510670290537073699559024306658879586925339219037481597515294052963030215438748986401055025982708543283689265426846338313825957324035644125365780099349202841315531645242736356321883804128505404153806206070870267978774370357167155712600940740060268564569606799447554491099070145308356888303700719927153246795293770237410936092223701087507557680148866719371147295487472830724677591941488056237947953775959642216248434950169718944901392231771658177087998527198925050793208930409179920171047549704396178740301226183559523410399256437176721667174330416517524263083841195307834481685332904196262091366844121619181001476435204270119560188539279355259684093965646029488705531845388299351445407531402089940171171000476367507705458462772325062491314480468353206454295765708155754577343015832067833249059270695990103467807461073442627960809769591189808536699097950024459113426604087927704546467709881721860491351417894173378893263840602725547713135757822059868266751723763654632240048983221628677502336332277893195411681655335323307273142087733744891564810636166774113540420586224448139404220939444382286665279346461896128908185873703276845410870233121861082884570007221155694953260081096042093091150520536513233280202081624140280165934976059418741557542693345713706577453601724223573373952660737284508980145650130710839877828568769838541519655513063766422860588154239327415932713058964744275269215526950715255436697312957270827260259518927996007927037675997096373030628355185758666982904090467670491953365950257253212987522180042936328781011391232189557447883761627447280151603152080954913511778328670868197325112458636051229649099955677994907549084561315979436551929730860260006461577993483558762390230027483423510543511458329716328266784787525465658112554187825424162317155035499536246735521982651350424392408463435162214516941204190249410038117322851864102002336159293104242684038467067310351438192037346966875909616164844638542331065340499983411083215128570646549521671551901891899313135903476281251359278238422750735992480099818110708090234174209004266625127801121997414861048398762436135043443119356469083347094416073302195831317853093340614191549787680994788740371973630987159752986669130532077346913860483848405124346853111818909279843200740832729120542582363928434033613620572756708759119583540554940255017649137632514980197227981340191863556281381070065135605881115223861983193779436010020533880601253850350562613942897860601423179373734364454905001147248687217259977660862229865794950793426614737794395891344973919477501758932929354197900655705453463726947194633792040255024655788473817956293600364499211485113170968884349512992746252409358105607881640310533188094629346156346722011777440010388368551593069795487021664074359602438719025492945015952556681533739786719973893556152616856313283704517319545108803401526267051154664108282812450511220497701633623921434875939426259658032192835201137682159106639690381726667497850781489776477925968238599875242307746143766198834334058940791689242772012388239414563514453974548476528127268521010728389112435758683171523134556102359122876005537966947868442717849282202147090046910469163180390188374453289746246223924517367621031757597433244171922036088272130743219096856568490644639880523305138858925727379745956730109809625408163914417220334671447314165234500793577578580777188428106011301581841356324419260485638800149479179949315952222266226043792270997286261334740546739510604109590248456604359355031572463172122629136205801798320427837496774518250923661241156881133091509075003783612436661927523057336696865323603805406173354753859085169563920930370321944286681885779829779910265278387252758605487994236713054742467338488876683698809558563998610212548653010965674147232504796962034088770588965168737327379967117794851895023863415940021886209910694369855860105100968404004493076549739094884060604603434805386914961453070301001723598552834033688446701320857299771809666148680199293262619474550385372480200522130615890875166063442759049908296695498883963120129341501908667041413941728175131109832338892480357564699597420509727966851723478452988552726566383084796435710151732173658470783323196841725094388568568568049415058652214754304739280584512974008875817513580739022297158889198363371734478992919903477137955866785970884413537949963449397199886183625069150255585386873279232786671081344971316941986617020519985640225086682309283686045826485873747942197734552811573572867904208949645127837984059594599024548619791978191133872863350221885810594285813247511164624646684430500988875097733895448817634295555354180239926907021217377745965802470064388186865692129994726923232702007957342575621336541130828023020006707169937071088030266555611527880259031001850028427815023119914307317203823831259400648076353034685239989658207288493345856572465340467752227593741000824367056189856066911730237089254666359361646571473683330280670499698502875610316598553199766858865895807507784671689120802645971235467530672069797009504360416301184292850994783797281491302982333848085322951340005484172603557733017459193801805266873644175495904753172664681969379612936967889632178465227274401854503151052689410160854682523387453919929688650130145851996941505201098869867954998462800034803365154240138115914535803733670336633781863461916776721689514500339877809906072024149841056285557281498742662222486942021099199843203131536500835019295901150529845332149246800195095190418698952465238350121865395390938307959246394684370071557210027628705484510492933825838177663207959646608124874129983521165862388544479973332621951590959804613371450585335256992065887727547056904196515216739799588615454702085612004526552931036627701429691353382286571432061597422798494501581600616228803568198743280749183967447463283980258311886953799665082781757122960650791730992742724693627479008512275246299555745471837296336812677844616814290251510205339507633914560226754743819625052600757107926173265897007609683619324975584587213584917716215033856324191647907085546461002003627824197440934928591637185204517406102235417624350881514147506748159324157468216768508421168746829831415766528570997360497957279054926798850814178470598628255371209528834788165300686701599319364774289289094256470417722717809284401291797002763365133524874294632589836717832868812812084980171984131072177727509936468619074364686345805534643740701534699312163148518177078535125735160337128876963378888759545229200584008232525611415569831937393684096262380815209746517898729333583324462409196341981969498222772223733052896483366773765865415109287507568569680205792232061080494293645995374568705784343047613840488865128107984527685050597062703230507099367334058874456650531914678786831965439547458291827112009122809874967950294692738712699720485962861726094994160339047006850482121034503329667714786640949438378729428043890729411847363094795606604900529216750000088774955334369538158736799023202482094809599430090464217031627250508035042834889983366280559517431105644213244851945230037163196196553151978275020570057891017311409439235182311156882082208799829026246505231038664251104308791476183231316788840174558796386072332495912230850020346941859688994325366212744211826316492581514861507542247051712031285094060605144337994765963172808867562009933572259437160219963571673712994577927754126829447614463987836591639328717874819700418418976807645044071597336193154410264539389143831258484356627055728586316305952423191714404271003416469443996423924001644685964889214259975455232364218455658713662436082425784370013816920744398715359099598670383183163614865231101032000691391840727658029761470317137497191798160517693202620138952342658641930048284812902321904048092368666297536996848232727144336889650279807065093542754252596111848745599016621892685407037612228529531336883906189517493695319010468264000892205305934951221697324096177701600378409912608934238739828321165985521524754189430493226874800209350294223110527691914339611315358662381334358174108237513802016654353063530657068401019848248932223587442023754826664697407237693843509995961177034440801156348028259585503140013060186896006032429744063809244642109555028643196780575049674547008704426878881783150419421460230234868569422945958617614502226415834304873393930716176966765804181367512033325940559887414545429057723249098532250349342777728672811194042398334313037400214785934999306385060086148453205503195266803732708751818317574932369157055414640185793215537479247832355027408353481252295309317929103192467993615161221424363918797587053698838468206446716874466565587521128156022486737790045883215755874442524458260910318733588523932981435815080256663599428666840392685007764765674439211287572917712883236124261067366858303974915993512328059751094949144752810251483655356050841674169275329384079127701338767404601134767299455940304874354551531423394544261385783203826599974560346181591506829863955364165826354496277055773575684653613211605793869415530879314514420792503724347470945939142001732645434596588013274756690568184530099565963873744268830430682638444391269177347357409858766736333285774057185640093612621291017065942023215156270119924840567777412851664323824460129602662085736658751842089437882437291128521164543363604757580427720348431314723600415388588238208702062414417958177892003090806881336360969556552725886053131615463445183920876821406705111723525209553010263402512282007890216618268906989422364159023344066443335565017476666061191818544579902329976731474740252823370872635952130611019045228359100965967160301859376363935961313286618996771947520974473123650204564371259818901276114620714817977780145286012830835999949639310256954173338798380546934833509377352247797494622609624695645615306783011208840149086801031834308474053636860202155389158931827167436381221876731086311884838010777635915750981097504893270490402039825605492742666551616822166602305989464368027122739847859103162359377567145797211214050717859292669644758875618990072361905688416080612216698106311501983039370879296909792462354220707321410670744603162219530121856090232872545309706441887512684844656159317746481857860574360995966939951730517060867689123965403879541010027895880451054637007397383169948651037752913194965726153518855185256919322767419042121191258235590763075172967998738003580603800611244534027084464772361989011887370937143958954042691576410197241854445524515496189050338199377130505036359312019617824971007114070779784776413842821071324062098269005700603180296286316071929328740452653012023427290229545588532754275423897568902698092924190648725356494088931830759126106245497842483180235540803576484147247389080189974407028509546525326179238315396750471025358459500309210283983716313301413140499268214682300770549384127790066181823442216971839030465413539701952822192694000182183519667276879710733097191956568339264634633334178626326256519607974332102224352934517055569413499565482644549694144996322182988991744244447725322319392777570626247918588552736142151941955028998994425377715067246487115661877471158428193919838045009199562863553508484007572080216108732597470766472369710574891990819755794501439254378393897493898883991755446140199231803285631753653411192185526111796925623527189244999245944948394022298842781165407445109732460663331344138281560004784541248242753699974752617743987375817917743684465152695938998502191551312445243506021772737647240454292428928610648999456937470209899218520523809925849180254215292914235428218495016648152542791178885177960125490575311134731720957007105066461986589527383795407659976876081936704799845854500676965959860264524858987918905219788521982278644219011843216740872837074553153442992688669573690841550400403015047776214366755718022809654781538209769927533739067103338780425344828374560094544108851589678372374346271089755275554407689902159173601042907451296394980252695791664404985174678114120232679624321616987591844565170945862262466706375789434816358842150920393963022495844298586490422154916852469227672783734598510834705474349043482442113710740828388448550073171663541528235495359006311574041298125223870694946601375334806434129570737490295936162779393417879008418355247165348002312483653605947110290027554628818787526415996988458071608418513012886474977723627565343124922689335252521268852080124021851440639449310100421169044634382945486664037077387533165158822888788352600501940844592018729573097519317876183682545365982164710067847637495519321529882148631218387881584865473028385513751995261518942117335889536940673088376708713545160371810696118498421205628909896924399511657141487387134821690683996946318740011687633514368909786379024970737977163882282226444443005401121742549867407224200599451273683941104753820010960525905275305483854122739925445763848735377867570539868585701493834419445805329508412988494874326115283396724266027098617270069389246294495289243303018756382853626979127089349223728691314455941825981448289972385030352647102607703556885762999223850112394008053958032041995438665715836258447070749395491567550294314337597681857920331711675878369984871868993086598509066452579875213749293153310243955867097765187996276050840996796525244718513436699968331049465339102566816971608809707162101656400718740335722492988692104477510048896433488484727821732293742329885975009433652421153529740730930521660715446906239715113199350412611747231055857547291459288223746869432751245342530074149566737558825679869325140252082165655453224033193337197977093531823891891546029082118949468894039263828333449905640242064048080063594084851413030120224712684214652331436925940773916273467731905657784420214063419640654717423050965213149059538496838570158227386296964051808740620433710087629556583387102605145451766601544454283756513044903236722195819364958521244173992815681158243697234655338595834615727292035576333985181806743082709442838862106470643075319352474468987755788132748684490072274427765246275742054169092460393346274470932925571668587591702428418527159083994998118763559953936554916007497730263323179231781149087730438549594776663638474420054251893408576267760382459516186783245533999941049749185285486161592275613570048306215582136372077116098922077654444841459336334006580930527185045088370606623803959927301178683259239880536602854367907302212008615209381276571399548500124602260925942903802977895622665181078942730779404419756599362062270037420150602495880139682371337991264776314396846923504292729713952862535117857286078883594792540453108297260744387144305839871520205452786885579364753531404685303392081978034013829204187032057115011368167237225399357763535085285332538921076636946612895786497853393450289236525786531162985379624041715425390184987947498783361542280429864051026896195352431473578475731311320336820731256793572774836756630164251300525768022349944775586188184428218179674737480083738943757410627470703818296748609616679986947074441557820066935867280069185882876230673014909797272400862913581954280731384875110515604479794641751972780391471987728156582168875868066792169921724389514281180735061944641923135863931355168045183385179706593952635075177497305760721112570359013310092278319810850934228469243539826343466939532739295956436876921413557796757340828471207182825811889867101242304526203295214754882000813852682208574252160438279814282426572869160544329933329721932020802661871045907833658110496966957698688127346324024256538800033696399054781473078751265289741957163421617308303294921840337087149431238645066195754816119656824974879585690733582901944619495677373932253113575197033205140566873825917699951670825650743070347201377668391550589024692711346834317617008032179978962600448763657842121210233381724825505291084250650401712440590522573307527713897257943903501288217043206772362656501199090890557071468138529639468551233856328616112621869064294733831434713703003660908043312961496342849005941915772507151276588775983072853842640902149193062557126237559187484407718598338608915501237653474300528250427046230289287502121797200492750496081634169940031556392428293778053580202001213635952485732314701996827723430770620724086497840434151236244859233793142456536794597203371426320270822973238109045107764463994877582883326487126269708470003400522483943666565737119040719777124199907749725461872314062043686444117622101277317923361218938686847220851948221585034204897309650591970024645814034330238162638363686580090451267790136890322489893527536970314811753481572059734176202983546873578437060585494211609377269749022816200891060625051207065196667688978793870920220785523619372581343580069548058662910125797123554084551081221768378523503375932006278641529751155556928926774184117020764511462803398813649439686280241962246387696564330182951848796465317893481698587284154520503354406356658304911799259667982490326351907568528970206802723620074988818952615667191478735919746715099939333431275586866247647745433758971574385616265523449627277243589063628810427078815950412710196373275906895213969722235004185165671077229680100052605232339964803566549750552202191796292622949964226921076739260569083820084788770608226700282155965268282244336127750788288926524952065909399348576712861066732392206215525888508008157377531387415365787425803266732395898226549462608601003519366742898316649121853417353603889616558550986252854619263241622464412382608296999741411731920454885901607658813563202334805146212038069894354671028509889325704423014279651943494452395656037051938015850188085607305069318551072277779773978955422438426437643130695221040108232770493810500436607729576969328787450863657683215134845273018886285009063961818910161617616619999223040515151775737063841930495862124400711366178839500113928180627551469382599434362925886980832262045036793005734414620530386957724213513508152917147612891017558185514245973861983411201675190350240370806875874335528956898312141113237188922517888545843424956257521936928851115668118589378977836540258527503669605164357049238074540798957550702920228496538678710356397845483513857598632129754509699730766038217410353388019738336809293460536053766157655344355655200420999476303437922709707745717484731424557128803613064133556438323349363794114602070410396497995318058160735449054786530341572583964122613237543005492500817979058369979530343098378677906268813264536225782989570801666393574630354388522942928122212882954553692038133994385915979558278918562533107820679395248000200284310646002527065957935242058941142589478187400685375976108337378071464405636801403377533264707109887853763156171884726657278014207714513780757429601325068680343920214378601747450237004318220704579440382314559390557449571311761463613084101059909224935889505931818359765983124329809245118039816952889168732298965253394644468697302893738137551556024142923169827390749736270050147657248264414282942304463581357282086146041187872839040019074003455452476953156920312640644827892360302864279626380963691491043725444828800343314535378553622138967375387518036961020391930547833104725438745412946740003032652282477398103197685821225890291952139499271235168845861969433388386958225915883544164614636842380714185411068612736564534607921798376073575501866403384022367057710654224434780686456763923448580155694230187151350282473347947699825170485305785161544268617376397869820906324826769736180547874411015541247397494226058906761141400534522488589668558217760854728352924322853183421443905010464377773838587982062161613954454326833244498865528502719156445210131335502217309269864124353074691481278225807649505541713247170751059583322594441327913617613119332494293123486541023604555165644169978949137544164507526389101698409340896465113224801996395327319390161559897411763053774720800555014067680888703403834960367664363704913405567159902727709712844408167614700282035819878979341270985754961187052803525938448517678751357975857418019507409740300216618466674526070165058824316460764284838845836166494442954207533869139119716076226265163890282691841175471123997077705535900686633228169082065811986510928147951804785540728014869489203105056818139391169762402415238338944285677853281962671209379780556782337769790654685680503764220630892596061189820316352208614669463828605869695635013497056310607063177471119786784831424007866420032945427694829003175284720327009188147367873969500535358142095247891153138119714299775651040109468459455551584767592943157583942539495025180518290039991159009854656950920239142620321411274405068678705761027650645192698546586578793655818705885414469106228713898940593976432817758059060350169785748514028061432097346130542277452265155117672709038346533224907660672694422792774897048237960682033092537523007155877619894449100054815812262860335794982841442657775025176192714382734078015813528606508725226023095484406793259685733384142422496965090978059734728987318673289540847101703248727515217237091873581526394357716492886838366204890107531372791993321515398404736589458695775333903230304514612130781443207369490856446850894968757452972529267017515162122449280389993829738159085305555217318672365614178517811224441927646634746005128320597331848076989905005036197793621682161839342970227261065194051077405690977928896526935053942941159074174770831314546941728480554267217666955207253241502580118764534843869818273993880752999529838267948512714653323138138802053681472211390530229584683691910143705963692779638354212025963444443377550963077416011892101953455677581090555337644555914598272159940381625602897324312364481074910183584513836126178140925470408024396096451428229622993893744485561207056913318918750572095242553164451719236011808440118616845669933536384917988058827319725100481164082131539271736983101100029914041955105300629804228943924148658975544389605630260837334990290810887467514401158898072567911920544652555605332721901712420773481362960665573741132633348858081235317318864159801309264529123594509657416326710358112626800878653800351290750217319780373216146504550897661116906573995471690579661963969738259625656047300110388676433362183931042838543569211307806893111288460662944555494513612206962031488374020050509326477524807870073554978113375258310181081004514425150193910007748997965365347831184457623707708687405190264167412965574818570237999588226814574903788157317068958939713257328430217442694333771178145830262335124605779634656479781864378234299870496205997788175204957318527125499716473416343044825556750649545493548142878072842336051908785938505547908613243728170090256728920067827238913521329594799477322873009456656949572350757188566565584177159627143734164787640870379817742844370675574561867855832933946937304594438423836285522192477361297868827256387221521129653204713951244679706838792823354510520801260500256440033069281056564756191977898271781795805624923340722063451388398732553914248520786666202743371912672726574357963256363525258019203531901195289070578741892924903153309956549286410925039830810790244714882683884145120487380747969173554828207992426851329528080095641101112881687932753873578795700288423358416338058300305366675447041939451743128707333918105248833248723582316103693288055778225818587745346326618674718896283816992193826772583050980669312531515605060645715819647298026332634402303226444437680359960292469494263037942394399696193080948569749371864868949729706202283187313531806947384842166587142759110643405571529633292524768684317823028166477301402479228261523845724178588590021640032019773305459363500126247904685842013310833981675044827644646011225926057088826711327192753802965353122483501672455930102084700288925385897143424097703280319488169075931466230368568320638053289827576806634266391432958206732602483985184088125000510739779056135136654577365931633044571051059463582135147841798374077173863456713230582979832362747106495304265985662518905060538899742047093052145342635773004730901804955947078274729932501940735256524068577426660884066975304175025647960769703876518074191694892172128002318414961418012240132110814332782913772505604540229370534203202750104704693056416224948945702830994391044478801619754400493059958895476591476861460505374469001177235705160768919478350543397623165246263443322290475898400419225212385184317686551091278082685869424603491434135608513287906838378373907151085710140849330330228138225436409708505553301247808715682489825879439271367660178489541322607173483056885784039124883666642709634746366978873035798841147693581435699505213460169083414219442112609967405041184563535770382687532763889790797267483514935415318798200957820317675398723172155907534451695621560101601371628524545280306401823191421680357077306933246769120106635885576429965141642071200960664223547296676736865656337585569559996495588212191944829202279507051110450856990079970305283799671682823635438453107601289711581830245276585081738520609170463740445711061666560500353404456800030775007096411132916995406523039491826405731650482820243209523528441467896676824498043914575743438480175347392652369276328330081797063811755458926317621181843129741170646679156219562953359042779905588435552921195451989040415357392850082459529799570102648484613278028680120993858700674412666993288378236950287631513758077361229726730557616681720330097848974195713270510067576667739037415021099841598540641630563345355975877516416650187725101514703290498626333998572707863780735319304228263118090143794980154123868659164030754636950784641242530399648576077687826165161124705713153793722740589203763494384560929951013418755922517662052943183602336716097834966803677046490228318468993359941680015041835106694378289733197531772343086949768511563181645638590005258777613434913745170437939384783062849519088334553446686239222315044957382383237934134572471140119188854946944414545791162067970747663455549100737082503566041884909485943882670611807121060716709860058992159872094100971136628434743554907006225111698155973374466681784353921191378079799584730162984742007144199119529048705900256729496321613842183222274619237958955753452933054484250952681231229822238300427991419425268356572535789055439524282745545819982200327002438281543716023074681910092057628298004592649320309757471267965139607033730540399247159788349363762715893909282302288531103840588802781035313584586658056346871798091292677164407312215168926539909732477309093668357729234543879922461479184163491087457767043812397868069507247727119954255967950431164820529083382730807027456266054738951454880944615254621657058231195114170576296280279101335071721013928090180368886524066046332072303909372570712399779877009347092321739910081266756884594977332891543967901906422527702827604888180328467054401262160643822265859419367143706782272036026398945972809325591384814304505069391827237858773439475983112991721599135827443676972661103425373237611842384550123709415084933383016174691636154916555302666396239363339188586887046159526786274842611934118754888896757461610136070789678441661495099029467286574051636077946572320627011010443276131006710918684558485427239489675069497361939082654790684125812716371370164252344260830295062020565197988733641555104077287412959138305876652919271746450167053144187380293632106788300913708133710428728730381485441604215029457491735615402576580364620977812753979815169023000195784368746771727346763459678322020394090171794952247762378158818409040165335137978124904750921122491870987393753509073817471277195737893067337925931091971369180946678563241663968286673325783504418611471455839491019410147177919001545880104610855281944447418732170799180278598280075126000179315880360793062076849683502152794259406082959748707754978913055080318196847594003608757356553301872885579837946380094538148415518000657527567868406451227206634491111257176869724791403157280885838314228800443812633357390897753855811387923905780309787538337313973942092616936414588583597671007551571826786083250135631424654123652552178541709671653889147094673480304091598768500696913482129526619553301823971528759270318833280339737119676162121454154151487750973018507600506094533596259109037308926534390005595393934447598562600754025416536987525143800393892697979335969144399351373840847223541550059138982029086943260063411719719583517272876653504132396268044492867672553631358491578090138312884100001833719611467260817267188483181521269116787889308291368335473958778228713505931742294602532494366199840240372081858575916125665173234594496327687215328936392081646685375287493057548530535752787443045671416526966174344210758729768732582419186448863227979627168074003127812124290382210944813733376078615189777560387636829589293504691890692227389189132267440156740406989307235732057684640028853816760813263486948314577796784287514734518085214163978743532737614514728076266496638685743287266330338307073558522588104751401470167249555598146390178972730043595714167081968691929337720867441740223985353836937157656739582606546567110882645216825844585935238328201255540913675245746257338039348573943188338327832570209964979936727857171236975708403822549914535567774379586466426952583366395132848395153711317425816787324941190312880619863624874853362076170800839470669786603524128697056330759946008746279030486907109325752162424829233070820476995632290043931980870059427836807174837067108171134351542123629733587703817476440250388200524824362105330977647442797408461617586516721181951542435406418493876428373130709550215482467225936839646413921468272437724917455455832147752066781216266093765299628234036920200638446082053428633604487292838779438434023322662776201674528623310788940493174499975368145106388007235021034034842091837198668013750275683941080289010753435955602230860064277857403995376911054349647561129066909126233220320603222136550430612767978113393630514256211042059962179262530407681367601342560288707749296902003662581557841400383452632656597331825871461944370432343778931551013417469519441204183481672830765629201089997139838724600435486051129073808407324289176080246552105613437882564760690655493811557539288614518588499482413883496759472069785811985238172461980557874595956854894931730291070121352429322075644356103456916544603676943527551453288113991351446095250071885756689557696245540223761853292725542340378398087927313146507876386761097075056300495112186031319275708963879472582105016798849193283468042731615887537758294207137200043058178494185374298128237558210068559162939515813151593281530441801301407807445106680764255762892008208647641013421267599006717684836579488982823951054813221788965640048666380393101647566074621498143886470197883529547790010601794012591418901975925504170023159821304137494004032423660184039470135339693073374003990987283611202488923711848515625119215262477680089197553005594929537537093469339581228223812481287004828388199107782513028917289336668417145464984723987081126713799419831709548959832802530770218284207237189062286870882666197115298662087367544956413076820737509728061056509813166400778522808095909709677172697079927821235501490153346641343489913199708680619733970695995853503117348893281593508324312305029945032095927494379771745425326595717332571176465828551635947647773981679114491811375054093252219007077326300513707450293263479411929871538793396008112099958518192866592368019847579351668575673442565818304077871203175963171415573631569691488820879531761375379456391194112410777011927854910781702250827052878657735253120659995525876041764777478436072439116562937336809860013596445505483722670955530261902752444155633489984062430258956669754919614493360222607791038862097318875298875781869149403330114178935162509055500400615309401005691228129993642205425467032519651128590240792366207247581606051660891711815282819948942095102029009451793060467237875383474399920439268602749482933782968088985920983341298985830641792536619038036976094322540126823762538945388785682414590632768586634406489461143247270481476234957375453287662445547737113899698164334477354281148252621735586977132791413793978786398873176335523631895502405322930976364019308121439395619283263568984663713840202193603522034880470644591888594618000044280852587081467623865388421835621613377388322796603150751947509667706168971898233100547242983865917318927487041207365203039839950394717044581848585380295303559029435838608287237220513763256227142517090767442291232910193069422804618309638779269993620076426967137199002999462382057979829337094439940188093494811702623819442084379134596898416782068558840688769355113293982779109926795475113882978090297242997221841070144312456598366140574854359695446990560796720006121477500497251449632856508321938365751699465382119558658984264837834861696668413847561768133170794326153507263145519219874434924365692930894695410016206102489385694715292055911813737751222838126984915213360887160806587012699317635478379704491387777621020073311406611096796630512312340928886751929231324010513514607697707841238953359262300587887473292800271153607670959980842937520570361137864036526406950356665402519739133739261792474595914050032912699741258360653642106215295001014563093734648043191045741888062068879112240296440454694896436639283181942235711075845800579902644268028675945636380803716206945100424681735078474966055655147230141782817897674816757575716583930484942916015169265084255521595887539544974323968966200867001849346145280788543143492822551072850003153485411882709382676471781393507724760198363045237207242606123249272186756663318453326378331034466831333734464128869001584963803001869547557828903113911420770614632783640884310055710177746192990942766329703599849724076680219691385789816429500676321744925730694341294965014419188157079955333247492482227830591012890748149712490438768604377992437117109805377333124889505457142415868459713913246714249489739316793359019128010638175889218094948151275660054569641597267674317507854549318896174010411070087282681930117226441602764699825853650106408714310291552880798358828968348176680706326449834621989968991659728987352825461681068560522563661590872733448100660554431469696886774815542777719970470188367921702543685096461886551369157281915824660949207828136423258592301595997015084774616409219302243301707803550101870430293983961143849667476291096564953528445130690960712455211205358163629033641515690550846833556899846719883920750968524907483743926314844208230036426372365904122339627594191281768187546838130095539299919504361945692430574061615709883704734491802171607061983344081422818241342210703652200340890740275127536876930762050943308610679055280998068233576930947763858634670301521804621123670050419349104206255376062204380341890334118433983928148542167369817390621621456532176205273086829766739993180075251576687504566192565724353466298039115201654153978813214408849033543406289259168154696505146755526459311935504826906530456771896156985857225527450811689383439146404588937302768418643474979079910500764792855931131415984426036680159215292566469063166514693315342383803144896304923831867849584434765737527464032934878708692339530558295518872283459250023019415278311924349553922062764324600889873521065283521480637690126790295868121569936169334545448244860878811052914736700410982374662907398135251872949638339572654131194161442773640662234302106167966753527744595290656621611195119386640847291320655777497110398771689698322413247645325990656697284894730560450711940956469667222362803914919409701800475742720410675757974230392346856691387011202163941269833718725791261814828488307060972114929760502069878393978934858943984863194971788766987399312909613599724537912959245405198116076846512429228159737880636964858798350835141360972182745070397786464315038243289369487810316280391470733949768801823134011170056906917413618792734866804522681530866699143609801159901976680299289144631178954597029570279228725500427388407378735730360140740555682170801776933115890201868905711230834208752952361510040906531786765711525311642200600510569345210984629883104330404236896534809865864783852446820145546567552576879672937458660177405192903909277370444433133839608657975838816055892541548979320100778894931440297816756649117061114079993690927542264626132281754309049728397631340391869679080910422361507364577863856770631978001988281942019590045947079034716630950173044196595355720530858718122599498789389687358676256285575666658671233383095833941940784068799977731089034372975542808364008611907958090472239616021778405887055609143786483285186552275858617108214764768974886109895072033897400696443802100079403944212089557780249204773749335849026803994786628819438813981596301308954490987175434235483294712708018181200934640917213031350270135492223113313444363169898515033277690341249926768877845415722604555625465435116789236365424392008984364751584222053588715955542242269198852881319355611771385473073827294039792910874400349473936541393336493889036992193379831011802846015256194121818244194859128107464465953914494309516573598468619704840527769834040929464943348718954041922142379315258530477736553033768012892973664060486186373216988021416436026543567682889783741231321680612340050678774516975573586791029927378747286925128010626789855785686704740856480190377024437902310813351531934093468283604727998589647417800072157100078949095961143508437671507236428938509887931253904596259370722890855444748743768875263420987936139069654487651735809428665237453083246977397814830728655292653654550211127773142544467535175022140002134518256187587676910481569045708030216760524197808777801287407612524672407214239574888860426723355440235787422377864211841357448768680073827969141302108650060463282221794158760487987734547305601030184664649832090388443693923889824449597480830989649286198718258547068623551593283134934923331877623626040499409109840156941655289887577618409155430599102547115509248993291014649671146464301885485607447315703837520238398010776378405922092056070200535222464841529131223349019850486140271999587325025211719886288973036561653293588943839389633994054902219101417485168207242474662764403175041265088514912347002952922113739776746199072855875479159046368619399021833498481940995398685669121793800387266636251840598157247874259125435253761963838961018425333944762224203415660553891306002043897740509260197754585204582660980585009800014323966093620738054245677871248495139754351960830983414179737017428380922521896891053169756784461861644196501220957464968678505297820338614087452430230144990302617432407745300697600496054264690768550001935358025278433675061355267528748416453643196669294953657026583599278038955886453893218826291030617000590927787748157673581643007218118341273202277506297610284039929747694379465617117512344810443023831366672885899781858417903082770686217242835607312876503794295263285520713585004476203194573282071167225030001647212658362118581678888842400792481144499752545906524777747526437040277595463743769262920619900437007756350355513382634522655561325298585561069937581837077212011269430795130375048432490166283636827504821805389406681711427157324088729567414035217695280736519569616221379836766559862938021057010483257417897814640076645558381765293644202540903954893807559322429079649212020527249782567087306312082210029388357305773833572930853935585534324098853245852171630045461952035981499414666750271477346523204764802130530162120732568331071147972065374041399754889355551663492642231316260745760165992919374926214949607264830300438352166472949130003836649688790991787158799410473573936858120857449599879492734137540483280673711246640032572112289673779666613439707433309618460619071330001387193739577889986109663203210603288735987148038853567253130777715791674693259401442899702349410239980513270316661842334328892055827509732267604155981360804095872511630057918944318630627408283771341710830797955053749463863414204488760528832130037782085140385775349017898581142604081007588148600490278179373659475155091455180278112372400904684861816934320302291564741727428335529610262870886596812193680549899957922953895848468915055544572643804547843636681420245913101862282784374837520186652624243751973028452181825333756263625955417101957751248917169009403007301051218681413540344509152246563758531603246548324976447771701768187447212783468335386833116415068215171180128523275677553131377466676670653830040840715315366520843764862967996701798060227792789710457745331049134889984201919743477731034060869210502660848556100825934210398901886046270965356257231921417119782855174998095677264632183597646954059746166223530053164676196902704464314057231136126899098794357240175200954481841979401430339026968990904887702481950116011442040359439362061657910399821464171369446216076766491721791681109648084678226894356389614344741506180766124764670888448777094959926469991920432067160290042002265172003808020541617521891734291062592013044521281827911371314332902675210570085553751341584711650462136121667851970258828500096974091074457983075108658434411029936454255842821360495344248256755555527691289617424990032548974533270441819721132894557021202764514529333712786859385059735829082181527231692685269302925725016431673429432138001145727250829723910996969123032708293018719569703001048429240195993970540674416112190429909911841319546941499570066827382600970221440927148327312080664787301890773099304343999959938652699776567313458457456528853129954807157986098149149213342388962362695314567060941165415374797843521582685241535393777571128558431677809660214774226161847019801180952639178459708696467075961080851152023515228167842625815080336485221209898235060145073058166024814996017390621465466793270890497636909990986151546749752023834041780834186003586246359351541814414106401258640542936529314094949846409304672223959036046275801875812200473172401373122817402599246760856055867467074191843871382823272551457940021055975465575952148675472194646143541557258841934762555762123844939602265039157755015517356516926343705742809193256579092866618593335138472664744062748216363127070872356314077131562516712297552510133921684417009695709472128699945229831091613516549359273513533566873543320273822630998363508289190123375919696680834487782751858450332768528189056771745093216091136765485276761063347479790680631480673056479754139818002378336774070820550358348932226399073977224199707879335939257596923677691495144410362943393657409265388510149060786111549416809906110981136484610485755896591154328350812164138238788610063682273509799592603023051635178061798982670979338157750495576393973266406690391907390427920990239200987057689508621466284140735993447637725985360251869318151600962359997228073717896844691253839114487478625135303964400804331792092185108959239635182446365295369641280861598991749680733706615830547676161026143548211975644992392660292848592514287682658330296717312816966490125788781243574709662293374496298220617044294759031651700259851191563199931862646491132556787763591785479839731783352374456927267041268740117363629471925688230579095865921453660327634174241326901615242747120067618692547595471814364188889668540924830608904096180914616581642267596324107686242388541508426308466039282081732131832143825624621162348166361483065099927953458708566252713693796231700564625594445148384581365685585540168728425765133393853843190721468937690536145495190043573356104562542195498951841988625056671972798687163792855357238413741554866264989205816259736131792389547814824677387875057416966236903754738386323851970271479497419372573894600931631082317554680026831420701214649237875111561916063059119902018853760032828092534695533861612738578331524431993789262010723121425737553136817279635103341545714788281075731023533173513219606247974818809120157098407887397253807679190877972279799528214341584416691365185813223518329704629744190868327877497879200853760652785478389201155228354479153144508569014876600585357346312246027053110079883180348793247661256585710410521142437049103165785278317894734477909676232597276125013997958609688126689240712942052857290081953853170749297646359402944242683107325602499106224098771402482651136423178155708584918724509989677216525420306992155757455980373061132912889421705599516317525676774949142115441661522985401744809056169379374730891592094905132289009411322101460329750202227141960514700218254380881406073625630840317164624751549257952690457520999562898563436353373181016986002165048261816881406927145974117715462886283196433613422254587528069298253767697790425015341516323436925698672513264220403580240083899169816826218579612417545014581518548217346307330927649322661120344644202937504961951188200139480126783071178236752578080417199213582595600541456154353991476397664798776788890791155841308130613032342569567846334893116610558020380470063570887569022701396968705196103164679632703951096512165344360717307037162692908069330364287347623971825574077132742510705734636706410181072308429367735943488027205144598355658302939179358990003008826264755075428252565748925362556290033059015427676532347608163007053706211667015460349200279368451542407411424294131836506940350477680989890324123787447942238238072889984510076749871114761847346221386178687351130702961387050837700942260381952255297748819848590833648600987117056603756208887955592938479639208318900919038553260715490425503875907667610607684315060828131959352223045291992751089699587310270934085481390205489456191276102369233122761470759594307914205619100409007830802847307308926441153966998299232499017423558396692622378731313076098553592991823875434529209949729980017018696536819905887703317703801619041058158803741305046047120617229826482325816529038421960677544819360044790799866930061977839447306155311732599548492464326678764067566731012644136917402429037696756129468403831495737605058254060149196258631991469451960864607845692953739570050674774832880500377712350771673339512791402255550819626390506912976327336697660212045378544346673477479150151286483187803178959310486872817289952790384394164534522081446087373199959895482786392822682267762918783229826659282398443631610527354673072837618203480177047662061757896313215241622477996840737569261943600868462037156611677808010724055571404297640765256779076658607695883355449423618859694637945298549839207344083412136393864574992124008848240917461546717920329034757083399593978339884712727087861829250147056027452800337066130980024510284065164981191872152440749523912002950005359289878575701299148322023751489243543148128063738430347497539631641572184169441764974915914193058018690403932040493925132497506990133198162735907538876023396477551469175727064376355763503521020062552816449052585208694413775036619288227801771975807946136986826297461598594103432910022478672220014829563900942881106114473979648467184097911311306868149774163676309634168630316032359915074815783062797202765515678238090940442792593184466712675085773699563121560634007835902409116743451264666774114259494169802051040516996332171368180640688316812203228323304963462049546685670003299577410709665884834220135585628890418552084469093120206782888123287397253055918777121720473953359802161417042283118314362449746532476957911322079849442907781708832036287975697040032393289700094302377165798891307676052411046603128782207043523501493198856975651648563915821509728516784051750261242595400135599077679327695511920303942027746618809035300801747494695398037672314019918874596360336471463000219476852668505883924586120169882087420561630432294293649021395370228278760827373649171688260051395944002503560450364057370446234935893882227624581052282231132694863592155553594212107179639683245699963921102570172538133212807567015450033772345342445000124096848693852217509929583324437843604812896760905358583846099239725777126514928046387794658586271682767538023732394307029426577913698151848312895003258334615966456383387997386888069691753741940094067798330806913413231464317109465464858034078072057405303905753682262666315206286334745689047342026666221647147093012412159166498243438366523851129726230987322078127467019869392861605535557319644866119768761503985870943518257341766407597924463098053464452311698521053133948480845261961438282960413808886796684888675160273566890459613650052055366890129393313524672817495796928941219077680401459836657352967636338486543324053179980143704579164104884050613078593971467291681881638819560959216525409509285882061889528668781606824339759086583677867452590865661868899844629110086881342223493885974052179605332832090483675314610115689031131294826965949074028948309834221900921095077913091808534864772914797140745924852502239185881448937400192346294583635630839284242588745978948731257992250096646178541125798348351566119492367915620550746797345668653739811867739496102278157199253743332907452745879798033096194851370437280409652595415732737199947621613663103598648643762840654795662566640043730975909520188070352919058547782512873549491231794702352358571415781907418923595990722230312191405575653094263570547595522458490240819443963321037807802801517502320820649186757153030060402388702219043038720810947119661834974835742568815638978001734467425499223989893778232195493994612044526748152252233872415658371396525753521992955981278627939815289874462730282895552154716821368385681973418857033827948113514726290226749034908147522996257696156751094506610266873178225577907820637217474218579144532043547713704154766987752288134261845772774000318067666160894558328119889526722141585862092795405180929604730007490812958035645948143560498404531354105133175577026047833104242011209984521357915102886084217843953949838632294619511155511482815099246876836513436087469442537990137601094496418132994120192607343955073227709871931675046375373073035367979724941579320579035094692166908015866120485362757693201280346577505195720843695240637285620319182951263210050276984900493124172701433027684220096978702439278508622335818763437005187921124933814685893606550166849096609016576086276754872617062305819730555110184588105965014651482229152607283020995226317513221471080170429770296231475196585514683750280970569835950517664275491010315082681680744875653719219620994137459666193820410592440489602315105149443537258506737323613887753275015511739270652025984586405773559192541649700031400745665939922250932592547764415488917183984979221838247633354916902145962771974528634109439512109546265935194498309847485966908240304691120049657925352732732876918625223002490134000633456144087837225887676874794530903492784692444994075709819578623427797974250748287492889785675544490976511873076264740610141305684124057433328061465486739688090275885879127693030913752635427234905935070532165319478087868269701421574504955311344063956960930449077856411043765516833193594237722689921932953293223507416415927723799502418831026049397772693396947790951837698489704826493464058238989034257468337267881716160748520644761274155453497121490503595974894171898902620804572750344065771108598618636674470577865710085137985214597551418915030270132986752720885489067857487167728795429538017895405769050059309837124193412316081934742904421613630317902977477967058648321860085004110564301630613464425748706333384310989625112467719825281497211181806698130480966347176145350368280175156234808277248373572357455590180178279160896415611980810733601059944347469350770415783012259668830865041083767909436031879580592882040637027197729184256936502704665921350789625208407072787741712817225069195096479909236923214712160999024687751626305225606365479988623952116931805736366733789485879020671720032795628603611617624717217464269994790684297523948254786699416075736906104804143882905463384777663123437543936754528967570310038110380179712664027227774703238509586997772677198488766806516015208516944272704269794747714687363774823935661243478108239352330992913578732442347829918718658988697544314795271268868232571027088713474703435942303931385052759713965079355373041130378756899969670041770972368012185041067647026839604338483556316337053056302865655044684988967147888537939119202047895773346237739241736273962229540653745252855866278346346170587810124570908423775943176275851821509179257349309226827170279729532095033675739117995889715918956630648064136608109541478175595708665918909353577973692004675869418408739131696172277068834282867862687328099071526330549556399968179413988271498496203525395142518412195886978015416285881447866840003854012250288980470213244682265456475724941323271322211679993613335524915644147209857814975044445268055715651772111313927892108158321972456730529016358700257649520029172048347038626849669197151682883828473556437301652112101171592913936386760062668060148399884914940228052668309143465537713083876161334683867152417367067455699613943997195613081424917012074464739013850955583490777255265563621807979047772625666534868608678878516038423366986106087723628085306735902179385378130387775978690405764797534753717834827392379924992352970534284235437125317513530462884442688236272934162303598114297033437270232241930806241077646563808893994882230502089420184348789460906717969068920564967988297405264978426150078783022980228714075763367694938644271444469154609844141347900523989342749451349054543154950818739225741652995063881945462001806770132644986798380686469901424430918852928985130354976836744777152342388349342814307266667181166737121339953741691299075332685997712680236076792934079563593688826929211273546920474242515528291930091263613603691137206232437014558384184797508837862294066202210564480580576673164911963331938646964251659289482394492170563171876915591280580556589927571809219734668902281397639558979946317911849377419846100364052982827698334012737693788216661920870670588237908133249629283999488591641898350820873508269631471847939361603716106748196081077871912375521153210807461195159000341595953508920211069364155090171983200286742163293272864018828003351772079148766111234892208628890069692161803849682557491136512774601224593386613518544568534159571260188962092496513453833172203236771990347505507106320821961779191721779063021040286792948508707378841604155953961242442990976247732068798794661940645079560142690483779325977806189876214201830754571588965304373548279629316408655583517184407904487513027599793446936582346777969380763857094360138403329893937334110710085937752966922382463192423741897771304485016556207818941426517758498489772912802794815055868288102905701099755149143284704008536048299038200487490667558076950724194747468279085898361802602233774600087487943039608785530640948530906638787315391076292438793223336590950971890257589015060739971821587162215152803817087018652537504234407236866522995208939297958160134553573806528462014759823445915850884964739187155480424989357584218489990215317655807209667563835738917491261210806303974736558723220848562468315242888578481140593523650781368428813543220379965290923462708116615582875908629674407728244386398442625495060788402231131048280917741982170990355107524321036715192340559055467553329105147242292830490458924752342769917822928029751134412304573276535432155826982807049737813872945962708752760682350776092771875918170487686227755851768330237784361939621968694306735898024361630450076326617763092248715569380573229888915572044707101416613884418440361180187953868537615453118409695884856054425479440299879101631723460268527241214165076841159015166494849310715087938123723025570433132773586792647702331888896636690542038520005269117433930817653744324539025919951265603351400492498783759597554136117591997837260907288201703728315884272690964035003624274640274329829503296726014969016043523740973144929297573108499450447127887987136010022399106227989322898852801408097850183399797851500899263957088577474916172797845203557089589977901708684485488186108370750699928157561755946826050595791315498574180945199506371579088588781155426911888963690603196196229818768789649730920598394864437389366899112109662713502557105903179605172157578179203547882803196377758869019322255169863897932505768936112321821257759349097152788471518452176500448389605203239518847887482914021270308525774958222816385311666233952286609195177016986712374989137651646056950661799708627463749955583196067301799639732755848518319295963318428216911513607536314867921803686661549585169084267282832032688273505880064235709763125669330389426076834105790051320930025396063698469665235453780316121533784156146534839517990984368779873316762409281758512127540295561116887967174960756424023817754745296017005014512217517615886216648972517342774300486483408737817733796141510987326149090413150443023199918071578839383552064237455049081579747631868714761124227529036414413905899027241752407597915248510081514545280691165299892819149823118540180089561922245920187734545602631397520276149084826872889047137645980672776936165190814072440364159331562626646733360838279745159393230849521950127957505361608064926533421535187761908065572264443346172136539703499164429054205483572742617870265334168246294502809764748858636947357279167537798846059225534828457233520828017996218356335492289358695156704045144347938197977686651837013762537160635033790242945845266811773518503662883078361841775118744468664592753387934672619374156864715542543577963248867186764889920170004748022713888832386630391252318727341511826664725828506246396967213464491118561217446410378297114820904255559689254603487726822289288900192856547666725694612149706303493121901756181950059156046801345725919134720095297592327132154597794729639316339048301647375520018944643008272140732498249207099207550005765228827317777896683797005774437768077628195512919800317488307105842547748668519997020756548095367894889261404354011494183948144904481198236388698027245096916160004834989055864340320443946447227935460965581384302803981949824230971659023865922125437556541558386015609481147554421882342872326925608726970467681742000548287530053661245778561088833022888004096728544683404392765821875041389121880767649991519698271586102528968027060767045382163905237923282629437507738253344993658457238857246219648474196243308250297621961652129008641505156281613448845404664037912890431849805435033354861512506123598817682451887648394723507266669756654291059853900267050172578033725209075611664505317083186679662125047446131282063627999073971609540921014874811869668239536525850393827515089223059153911362217704964307222205754636979730799501006239076499034431864310867940226810382851251386971498318187343845744303151699378115078946947449635186277981354804081175494819835579935791869502704726043697303081548257106446867112728404066969327257370207594080643304169744719583903138380849276245858760444075820724738457531259382494665768984158018088924533419980521152241074171578930747745035081395369406662414909707655367628673758413894052064210060029187651979359185855015556892534129048105817096488366268592641706493024477507333099379547792062818113375711937914987637921830676528775749562161258570346784122443865070773182835416031573173140002957770278594708592012888437707051757475347237125800833951226832001795432146074538911387333734135563003069701359834791789699418799127282820985352888090790135695573082359151538371774180083953837406719907109825536097890719782822511435607965014328092523394528009970156573342681411705823663888633877671157989160639951134772168973671012155495256270003144381215357150946867046236728538922695524878080283361849103617505530118269514884407364617991898440543980897104450236235713004303680044494046483391153354945308892598012273217709341481498523673786225590650267285853683273554808157087822381406349038416214329419322404623707589992402337621231689022824781628187734980242531232793898005943008587372105003458459673855779244380022805443275785817974571324845496664785652180777086488900388560411151934782259041017418481014110314321820614780247020522903207461827479465063182593759155151980676585178120204812563912043555529113246324961786678020516542630177872324501234819346554077934199619716589766908384112574651959846269217467172362844487526949279372270991991644431884155249434747835906968569272178892657516377794802042869676589920698384763782214365731536341216706294354910509492157910399800689072475129766395096114427207784619808652921309634862839781865932516141171403769946130850675658891168940679343774897832050727080015232408855379487820359839023376698206107938769557054285872079091964380217442451687179468773422487505190316742830707542597357202024914112630203212619690156528790126513272940842527211272252314072517424631828913001930743256011560632722907444195214148606137997466463455429254795252873933576698186173567682694191829583587788543297246922405342148159828008281485519626751928830231049878913328929891426083775064821748483606826605119942640090286861753032016597556036889662737923218718059754204432308943443862781201933251559545355768885670077627147070253086188794517622811949755061314344692499412677593407826872864231377777575677176173655410052995004227895099912280908138499543914552798230987980893193460225974622837508113229429581100104147194664121256484211293797516549586829682798881947027651683082393007597254645189029756182920060417057826876224446470980108233438210202378143967108613076899054993054869955455812938735442711832897269339340295343910795448069497568215509106300907429122520705967395332831621856142310919028187017885993825696924513505408356048579542250736075018709383043848127420262364314909020099852299332452188949538594745146372202599397339375497086713739877310730614358960341857179803098251466563561735487332084550627392224911775838832642173822143887998032658928860864359552347386292094242781347715999007765499884402430194335340765199271421025558099859505211531844175938033595230288114322180012440149794465747489217763019170995376153580066593707866256671815122383947278409042998511913429544845247342127955598789766323547126769823052760272009466860093269652139418947734191078230522928062894668105235610434044247138439843790109422451633571837582716874405339069022184112942413526548592318226790876744924376276324100515175019017067655969582689483038964219784602681545130978790761813515313057223355056016165719249234925240199560873261799142447691687799048489237670454091931881701883077636651999121851702021627787152133143653764571610833991583801627956473908619951150200094519929888983818170930180080835870116137013806287994980396409148687031346454269182967475348333076073082177556906720272213035251686245662073687959683570796882077445986694299812274472272515122265283230461203577020293690932780691502595394743854800224042847553441230068040812229412311489522530186455297796491234471470320278760134620255407752550372869800280145986843666333513844484463264052893293494551122950978091352226061848534916480563128157393536877470900830594150898022394081647534222805399485717374640510713308025113562955999314614755307511746245833219417760142551188891186284361620449144210329054545368582475649228560488811288871621334434713494785109726831518884716455391049878964145701374750439429246651984816689441202739828911750617137189313581745796832941312353148052523431338756642914675349594819148134852930628043011255879205692492239843137759339871889794149277988466469613467085328608721724782231480086808328712970999942398776772636175870025519296664529287451603170578794086563449859200878600027095467166111220317046307208658255669498322318090587285121349328671802289367443553905110249424646191132721773821745729092905748345044315962946552227993140672537627373092242386578197040225971969786852400824913883875824110655631144908625632067196315699584612686973234757688487401298890848628395436072028144943177709403759393492066145495224409281317209110296617496414565571437538340776448400322694932603072057736002783342430296748983423356538485290040125654623760195580773605731945910576462451840475021778055579923718246964271987316469255643010852905621656153202081416663383235036181355732246232580865029656022907344599481493148692335497570859006296291690733264446707019647315622312206824774581858714605846632030492527816648487112227624954311622544010649843737520996593391284143370660120870794226337202166607278481401688911309231906915279946659388171783897324121245598356333696443682561743988006352715654220504936449790518385097253883904648787615069059113997443728125565527813936548167894129580357795104775648478720033641598838166319443274997650303003969689657142792430957596556099997823102225925465564272083868186719780038476009831658786288454865233178295621390706986103559428845660920054287608281495746045266375634814128049856460520550550271075343646694359327276648367354687275686253066506917262606404980190507801426465278889900316305601029829593422501020525608513305109822745685265375225036511745750985771064334176885162874076003824378619615642057841768350313435645746578676794294363436644608417893239510181217457866103651421550482408674672528385376281150513324021632542155683532381456936523459698480032784016538353455141918042369801292103822871761286043405516280866742960841801855294045073896035487020640522274601118755741407587736150375042873106878156286859860789308019489696031855469474399151764349062200501737141453243220686094479491717857884771327551210014957291415462553223230544667195177704750323984536741027586029176907444394061326696285621200654215911842660066923096130806629332253442428580158397226115220693595510300296404032439667549542624364293171775085361532904127699452151658826824874496471801744197863430551094753879514495599829722594085741966124268467642188320530661865450812099717383940110614136771491667653257532036970833434940447225947559123435807650007864718499055029874294291306719946081522835558208413446338465761789830451869635670819030812502909447495802100181423243776153087036389436962036357712512184955257055709208927143309074996266698054661362593276472218126849216537327359961656983953067047002479666277271280652746771216643940603459538679638639132513121309225761335557145883853593731122619558999011396133758179126988332155218463134128433003349342265569118580961657657770020941277938530470102096797143946247648953644487984523763251803351717999772573848823494771983728111168296798441886571904115783877646268612283701585602496625184829089229024872707224033781979168299469880012003720368944648238409775871394746918541975430572615612510827263560950537754827272830761073110959095616519312462421211384619532082325498674265749947826746550151609605117923067119669052581547073581793490967844535323581725233958047007988491354500348105554404871070098975607186862217432319958160622509348008548414326757436531253874828007095411394292678578088405032636001647858423443741930257659629454108739127742196998593232117365114543962023057204005791591522001523720663511468792059840010470759670069405296255371421510757318482705252162274843980943456484147076069051927733826587245890002963096805682962213958327417144973939778091813844075786180339106862719152613320478172071917341244978149062492065113256397664006967084862204597871236269113589430427209182161209701629089892441560217823417533661727788822711503024171988109529146270629509463207759620398996992444353196649279318178233497695439281088957888350580084573727164620980012951892447057422381651338591094350445225602990153392132684818573684708094048592969171617692542456459773933894618491865585737980777117187985408805282464037135337380829996663099470958424816692094594587267627684553397473841410842365421888130355352534036972589426099298862522209434064039979086430660365777108728499499601442293101188381585863442034472144720501633909685401726638887826997161332726218551169560382844711220753356538225454395397749980428780070791495456147170271191583716185690665111845082575290435083986653800818238676263059223879964114904767285715709464559724520869287750549829021750996853389625396165881912625666804115561679888874089141564639726547488322873064112167881019049009835174523549954959248834876669093124751633218545211736573053225816116505067751755479491922458300450057777377924030414947432314229374328591586380851783873087842491057804062698330658101680716853317986104575441495219325382343043260732833145686064745059429182284684820668800519725204160302652067462292089345973688356972464873509779009721369898435065542697078244805919561834603287590004596292291955331225096621709953096166367294510634316026556392340718307384900783717939189574940448268439230489135720468929483675917107558999048165685185850975522056729803241202776498294096461668750488265755817462300915912004764145039262719862017606492469620066972297551098845852412178961415439561275029928451737597044725175508702760750238315432063663970424694614414148155023046886849563954259658535340858895166776667312471140014510900068703151509227169616970564661371613048324341647506568004995519256927756570247733957004075322316705911607215185922853367537316406907046405790939894360829909857721849673676908528576523640312266301528169576737234417167439201469810503978328576997277544850677215835339997722267021717458305252989127742648621437218663519433829660312987686153287347898350590283180442793889071924720867040048327029064803284986168567720298076390021259495096840008452814058593423903476720627315383405507333295286445958999204506392640934826401637593445728547264287583661269211852438195778632283395716301639506789152860020924098737691836355953563043122892346143742637040073265834498698018670736951431245835155286248592509436469598655547937309835761106374665077441223861385377252011699263160630801949617675951356963605486686521149969767201828104897764992593403779818809053344029511887875083162309050361441128789048807357476382004839874988426883024288989456581777703614790217580894218938550951881179843805781272953215135799678263440219704615972417732353374231722544008127533830537651416903725255503500006646413221737968842270944726285899781438193885407766096445345678846093949005083663606932340273866481818776423298040292415266927027916030620338554669460859079217811575334599160136950517952926962240580775322076426485941938689929090672731184509360044948324989020847841674086470932872358527115622534910357585046605288704624216843781357647243071840810069481265000357867766403508924536925896077566284329287923743362677402439301570989889200726379175445981550744603919678043767820017385173584911241908904735022686575187455171049238081805276845708693049218514161390886750765311017025612237287093665489205372482106965942794626237971560406918446488848817156844062630544755580339209405789983772167379189602094795947928644688504556165622909558093335649505014146940878560443812808088367259393103584402580476940985934569960906452324129436619574735017902175581224737966484301186503895965447598262141823845155175279227245195467926071098994141401562142121518459917919857465042257309270015337477238345983687940871773002713668283941589554621572596298015504268774735388791866869277462092539701887147445742514914004420128638477876942685147683490008998884315097316159632752570385590867739263521929659488769546755305122110186068867272431210714029971734872653925852078935279901003431847278655264361561897969401210072838101922582111003144557034563076065861395951825632760278549423381135720268125932982888320784808338815962538896528713178723232971549989914206761761371981167766688887129953816136052634223590171862566112796595813474834983031529865550501589212533920382796488285834510491877959526554341662841218032547445332861000769266704528847797786369661809567062512572852841663584591870325194348171477459744145192301207816022014204890980754343527768206389549280506675811995359322030018499379287162479709445618191655637062405002541098321496440658617852619880186653106870647265272630830774434665318558730651136220103505466882093819364845883701083966155488083779269990636771113142534190044569690944621436921391690527470833305447702099134339756646533671347636403520048718027230199923078587430172319077723770115151789064091444745330780948403832874954743060070488264500466854917112128614344108962998086460885863644692126545945252084804059636583077322111982501743525492802362371710639058819800942728633527699191130291941484784611159111357902602432868543553281121209283109049641366365469858594531243414253961620352515636175164787799677583598805809560977160912400387011162421612200904103793429786963380642436932161908356926317600629496485911309556683303607438292939892810500711020742753542527771690614356589130884514737175636914859332892582153750750053668402755580408330282101639414947890046100051754348402815845421286152223668650386628524256520675143892351728521928691913043999474677333954881090740972593292578812502877686032316129897257411196657394062526606845982101494638309067150641839403854197203886222437577488741838532347992304748467921656042461583175944005969181271541916646251532187241923760359372121955246474324336722655876211243437896600852400040674852859454378905034739805676509678586036287678832879596856845477249801801515909838845996604887896069227433552879626215069941453285250658453378814552912669156666326488646545331306818200520023371890091564307190922518349973036854390539545167625487367077774452494916604287707995400276130479207022623463499606080510399566560359929501186056631425359815645898562861071705504321202723030219162361539504685759808033530307734520481979097160946748729133513446574782896260204275969007486913272004432278369129163403008271920323726267956169899800180648265912309932997155291342331356076879698122992038442944164982360093873933362839264111064763601584992443313051834783805642746470441958640873486203812667688242446645166906918570759544776545126745035006142432878101675208076576995623560260246549603057482710337405169415418173865135660160694356489042473072071824792997806901057968867495337102403245300807666862276189665063263764873319434072545247379361088788730719142660413470193766115511584416505661527578174642872763566701764986312066469777911140152012415299888987254549977468996997582047971168642679597190313731519687333832364543341408274205007371946560232632398519725906809167033406820532879859205187769493733458715680834433107044346726916938644538231308352581673084029425470490887048868754459912754982888539490226036550232688174548115796688461488032599741176797276127703486911350846921535567824602204294150995686219938969231888730123139060668639677204011079166634150461151219435697010179900884978315923613820704181302389419401467063316847200378885593942416937616119590525136687635940524844500708371357491738537698775675561082008008007295334668361852990680666347514424952172165515180526748339971000268080465655932286956882707236954615009346537564943561310625075489308481699287438999055694627459900704222775695614240697874838554886664116795883420357371713863056054053045476111476174256872269459059094513879528806146774553296767027049231566426314225575439294029455268645368256924648833319371531970473848472081337405086146377125570839935814698890343749552597624129714519364533905126062771383128142365630614937755365737585631818061613621261332732412070188850287732459020660027656170876280475475985088931931757811459151015460565323829511982873342103362501856778827307320370717954160104566851707437529918935672049005016574620387163263201982251585789532465249053067985810501120977231852462437946945689213514430244285187629370093553592164139144922501952412229679380365176600390666218156369297564565555557440908336952838547903997912642014505579504351350071436463901021154050862578170936643544367627178153872369708163301864527058001928776586130213463552845414426108177508506893791662278146408914147071556956031956260241877390141809095241168285265637454935471008013770222492573189711605117941377899765838664562379132238911320771287828211144208768709154701519458139315837606447768765378016345643343198347713315900067549525589144566338833129314859656145440501926047152156062541594056409797302093036114790127962467555141609284884788636612164936173938163107184374490943259172647741165705762962557420506953471114654239938209133616517214664901882515411515299501845337872748517205978356523624013137144899258559923796156860904925926311348538367705211145649207546318734355853317303207208574048654695214494274864405184508044809911979255830996930454926131455860226275257411582036550198877688101998256185781422239494951958443985409387478811909048117897475329537668761115822518036160868255401528304154955325937940297298110729261041552278139369679396678176024669972086907250308982670133579801951244239114648379683577523820727448004297007180392196810319893624898253902943989840279477617379742249796413522818230380106388309307084186137333462565853616667081677431731519954431334649877299474967222721234076539776266156813002503780734857019519460341172080205567927213634764007954765894539524132522600577987154069555780517965734080796672448649913798070454520925787140933347536956370008982481733306699348074163139904111951639448828750333640591321936531044259902060545161007967981893198021522358129666740935105991612160569493156733319159642665905673532166160352172293299530520736741185396204782567355924508578710485388373963766659907115155479140025300786820537431879021437764888157406062073683704786554360720515069856116804107897408508047476430644815264872990868969539479595689191483288670313516583340629735160467885359373758806089289412167511078355410324811408427624526195981250231721579226107869820890297872046428438720095015215228335400388833960194966884916722654667068639317132672366059395462107406776654902379438987305856275381951779654709990836888111876101321754388090201154608162417732377034135668882185069017927294880741834852688660039715860589530189408011591012401782185945086923673774825757398370966716473081870868805632261484991226696466388730321341920185787586452322361550076448167255582465877172751244441132713286821114178344502370854831779670843494500366958774913318616512246096441302855316503068245285150257922922975878988364886972718839581113773934809774385058709111328471446969509861088445212684479377974983644988490187796379310342121249797774289730046512234044850160489506280643048027408630613697136475835805222342136396348843630074778448109394691723114681839484769019391478284480095088466537929053897407231173721697459827942949499652091409514572924036666148690915692872630424434818651091482841659854676094812458680515221905335571858220971216913901299984730961561518688270513775936550452931689289598205157898812115660009781921350474152476026503040017116039205932927165750829611482467499612920781936118972668980412603563708551962608387144708742003115650252745502814802658762226731125179001967894460529318911038180164282007710836101696271239830684606353885934741425361047977808675800450166865573437264411278532095561867472227349115048954132670941281416898185051022818205449914086840397777322742476307548388754707615219663143039958959304268146629587723990390731472975976171650987137069871423499274911452461248702153253718641862327018022067907086197000089419213377262557255271645726501328440495064388592135219247151953297214653100362613824133294650320426797464970008169584857328980455161417446352038535595125197354176877160090359477629478760900830254447593551555755215572021216520504090210118948324330294299233998591404938164200450279150428444738038234368302925826529248490479069010038965099265552403581995286438449154420116766904556601311216764280779420884828115704065013665603246591048044979194031302749482804168155279023718896334874789155765361624084607768539251072298003562276599474587180780407875431020350806321113418177998852653207789394351260855927856887512278271514294236889956905997080767800017070910026196810837838832039642994884474322983443164427659900165114815902357247764423221837137393147734716377628130819599648267536105224408724101014067883477750846519240908558410758075157992398774385402473255391701529423061339774424231762095142462055637350808010913483825322221435623938739030490268594297825071494255500405308185329024375818278352359072624039206508643698305359303877298924054570134989329745495863855926834596458239878164359093583487280948914575368624521258451088903181180807131413528061994272297507268793772499004552049361450941878877471977745458933386517044181670741117987480491007760140051932075435256154730637688398162516070132470308787857207347656717943145680142069764086659710735528058783356955441508438929739851365609410381425121273395546371942051097940968352009501122144450209025925937779502700310481598883867808962771632941784269199750522658836834435024819397550283878997801286970213029549716012575239903601965362233033648665862630428110002940452928229397470482865963909942148543585694841837437667972958978377990341304786125923838989009603048857639447123553046429476744947023917808245136167216847651873704295796795024691908017958606377271678032509394382910887484406971858513041213355702420216896097007203615675822353709390850539320610251085965994065087172320732323151332281485279332738393852858083223013929637219286431237001366152098663646095249536696888723501076495511291764109313373951437311864071773729400215707857509885927614537153544682299431488820259363848037742344980170266985583671226714723596044110990963607871882113816725169894841213390439112989547279345435556164026656774901250343080708092626088386523062271106302359252108595022450199398086058636521810510346660036542204359801747089336682166727238997702149157395652733126460978322488396675678333248719993202146716993484627365503031926149727743003309286545336789728453109585424622869052422041177987961849995184327948653035084763076905483272513034921060311816556845436234028541319290142256015599133366410626765333919372629880232605793424786090286555905008457304729415731972038245196590150506485447709024984907470708450607910693739928617638494133868883134413417897472395724537159881545474620044689788958555831794443474952469652402389043772970150329340884159257330656513691726587379241915205959418208396143103852159739805288276320178296601490434644606259304550608078322338666946926232976655716349491893926642545886688244066188223283645003111196196949288514905012958822641590365726194073872591320520526010619356575814990640263421918105153313248926064355733660743214725623658084809201705004278738358026972400093824127138624633117257817367689125693369275411025087735230698863573729983848181829572925976948980502650972501964969581615370604729525271530088239612749639201540077206603489041816095204205734628701806703986914991820258879282072385838231257951937967087245725349384040638535316751427249538845912347584817404380598976447082668947491732901547519845604116542471991667939520253961974605855157964809052036137874902852473718940964556461449981480224572231099802111684998866690178651058142958770726753875659140877944011299898234264929812202844822788006760538636929695532834081967407608302798400672069151443441634503116744109098109292398872105275664068949695253363927253864499273088814077659657990665876783098822013035602905048825138692414942964529841624109430278965072302166228173756922127948061468206451755624274239048516020059949308186540911378018040159001302000527357595153303056330346872015118170055675592627132876613145694256927743074224203844836485309250528064253390851050207237785364774476126318624828623314487600392572433898507355679306523049711832669024890202248070372689790439523563827620253220533670506458428513389146216191319000727111389960243803792173883276150203654268195761017729431773930359133758978287411311077490600164853720165794381735365053738879872875612899755189575904136536418819937337991416113405339743843439004643802630179811928785169710100317017651947073117799601912935871805922830205750981240923053413337555673681642014369913828667342449804752894667448711686871301629333354660520152941231228397074725296642280070485636986709359564673141450813632181351146192130233764393896823790667048429554450681003569788103886064831027741204353106045808716084534189858827039649344179653967489200193252549283889739334429442446794108475269889445321905878926213285982095090837491471083442275426262234267848934443871120046340307576464049195434408618343275159471952900633460995346633731609000023042462277815339356726574971781144705168979772240927882422585413569830848021483392271125337107230228972091616099615193734342840161022110733642901189794662421937968144636252548589619840209662053794507088244052112900134202510209514737062800380652088330299781290774727531444356989320005637254744476943946624275769217165922757332696540927754835105994749438334494790222811954056382834538196328359606581167521921881997467592744483473980813041309245441773033355554344487777671633440813731873121735429636174195851430105169726242823843366773226942123213333331216531537260551276567145517765041296812320937984748582257734636709242336789168372835595064059559264028300864201665148663140528194535826983557765182190516156190091762976339373924592635441766642384900058191924964901904957692642853944645826286451276817971435816224911233841658515281156473180006084158971975179779517504250441022492022652200377182277780882189867313355004973159782282379307088861643246621513982764292512960669120608965093526090109348054051283140074211426253680779543815418329609528210969048486825474625883965740157969519894938011568012198608281531053326461993134120755793127007389675268640032449496038158706494182846208556955302005671581676978402377293323968360290612483667241404329601577453254188615616741495990491012261495367930835811196144622938686642537400596872242023620897281572859084337176136017385433648178377685763630201920748248767860942493086715513536649024456681155417891652039050535545004713436257950564468029505569144617975817022293462616447401405885507036731730099253188544726259948025544774680348032150979037254625930406833977557316103313919045266418189663387358032368771343715918906849975694829782795663218437111446824444754273558378074323012576940384514302241236456754680580058938040771846232854519676854920316956868188118899882942317341823144174834170147297379972644353093709380502433604531568978090583939448315342623009342344236567880436366829494697446846769401790377507433358825033375690120700184616700852886736046914490878521936291436577338351912755329683033601336498590564293979120180095949249821347597453895376992718823220759792175447518496300901740683081459861427728103608399174646806648060397888515871409673684909484053796948418905122620132437972423156467269949358958625394813578153116752745863167144100236199067065869802653588184192261066679507212928411868056171689698269207874167083749633830202585277346938591014652310721772192858066019737335354844046543644936445095739149076410233888493177618570249061500235476785421015625060591915082798401975573578266710612383020024175300299245131164921235275131256484141171556456036471027967628889984555423236042280468244135137715194424517912943852844375702764830540034726881773196273987016529400299735925157480574072586484554530852289907128497757581768380799405480668897372013284855296683119984539204024036279565325288945103404162542171716330170417188966115182415969911284255672082126475477789960298591990101125620827024359403277432044842655062318507460684119464998429688844094562884279336760790560980296838391096905534813486138918169035409287842407105150808018915199947451788354236887917007935526345618862858032089442665094905265930400201404850795524872591627314639249092154926110332559782932886592093289211418278388507151770344082073849210708378207637025613639478386231419705731920286442027073156585602043411379943870229018003438172587612259367020257307513471456009375147177841133679789982757576618225672445181078436543526453642643575106129623266540528120068154549440757078576720359727858241284102651759019776049081166042387009207247221879064168006955858484043005958668502476917693801577417152033645863601653819724789275414504943858292478030419578155020385490776793556627805011004362459360117651999860783304117426272789703004117661474516117015923804302060978269198532654670456274487050213194751860651171153444888262320238955802594324883716314946074294709814996785294438424960614593445434298320185553562378624875897468409713708193580605279626313374709124206009186250492165614058424964404864872106454552102494144009778362377569102826262968453385697239560443133072305054586318793315498566751017568979258591954833521733890636862753008982027787824684000639683557252430616993614004944218732013300029518640485605382436879305732967001662722696800429901300811809201348943615368400562254674855827482545735882827420205445926259618205109802804643543086784249787859870406610828581037901271631250566785494627799190738909743023364066455533787529155354267833363661130506604153102502586840866626776148007001515572860480193723310467027005191429129066402291506235225811404851657862914866099956333940985289186763935192467965556232805368511772043458395851651640604647756929972409746410239006832739616146821330122193217798188312771715264643611795222085479806795901814497634941142656516676706423269608435868631625707124380948246791631504178565105608770925693669627170365798840640860269441097848644002169172712094815956161607541452564352488654767303863655656062621472535080763576250919274842021104949295969963066106292047452003465018136922958094465962292718625912794487364073371497789515327688742859866367465780523533548194299626140382487766549555296116497212909582427177900457833904783369487512451704031952355474891917644697801261668650700896427327079996109454566835920270007077728093273108961387210380401995902711454470917718475695713246802702217099859994320542606548000351882309946016558113205312881252288192966888652274193270344250342808872817785208511098651181510416005297904558309522905316706856064105186689696945582800316653554963991220712720285353213230063288132337929376011500778139872381665011402303599781192903508930421997258160712187763178815966203948567134341927936296240490253383627636012242053100870235208589047012595560136022383573190823345034548343153873347053903605449689217127804068083071360204572277420909466662913420083264043405034869438303582969955683576000990432254398164213727583971332382458411202439435469010239176807843888233326425716952293110595776231503997772567631036201126240691625773312433345769058182932093691811364890205385616023263707484253615386797137497554326876763237893266950823157918874355400761982362660678418156057198533959980961587824372775652424697251496228473233721140159669853026005089576715800785737283075024309387933534565417742199531475638886539433049604213753896381694756977707378875231544890950944016027370204972482992496613606130342054805521793472843036257475461660753131157432055549960893164850842852950936820939802510585080636860223867550383632346260049756899797290331778710403822132157055303416665296028169426322136430420017932858895600152009507409937671935754877682128941750323914072069868942355938047793008723031046471043575130161851188605373648763826811967514976185693388654163982987482062542500137144981385177494299667174968205336492472089687583834304875091490564002805098588596440921592429690552291137363870694598130192178135349344582505331803390507480354383665295517891953943693446215059749029665431665381538755761270580982974293335896743189936728636208506969130011363661507982803574632887583978263995027648748081715277007291171344870277549580128503929738971794280519054237449675316233874350341463981243025809718918739087300635023733448427592091624277347396870692772744652348669104762803495794250964579657282805442762085242305651674170428631136061516377974091032686372476034246692225744976168337778025409711301148638486514551837695576386977407048733857615049565745962113618757835071641431030588066308164714816492553998718235933894230244797582282195669077457676421572417785338913494334197169930243968950291881918019365874537790355232043233928561466737236884016008870421078674248679394609228380417138052248366478968856981379919438463736896971494531119442995957435200584769626455545439202059686919828658934775909695507383652928427375924408779152059757213295276429726438299621503156947976199934833649602704425367431331057039619101736775077975797887556091882022629403723562314292867549359767351796604277754064366987134634154167163039035519297589815483456680459961641960610080200595400921400467589627864718736823990953239548272886437862347705055964610485835955969228238003837121925963169317980819196786392313967338087457281624211108639782523281294217814449391397325053823897474054316057051364180018845659507648822644702727255919941024844850821546746603898264566867582740158453398540544250789768117835170993758073976185131425376820952495033830026967409603018265905082106324744749065703628985500362753270731261272619643129131904955981956919548970601489928847619912260203294751663436148986538453146172182517635679332766996478948488796038606947753678859515993047113760566162866015156187976192580882096362870066530256760913080767034848121116428853658154310089618333445889476815114994209334801400465550386760505887529862844622082704086349321790887338386950662680547885696764612614415450088616392452653448254662718048326716254929680902004980895748559953699928007050980489224569081764928992789866738378197817039355335696825555757428379127121521639377775087859793317001202374200666819570503716928555687954311960664618861120873834316307745768362240776921420715412636078560094003197521997334788865031925968773971382923036853424300896355408535404589980771270375886435764589038597468114560030576116729244773168563809576044423535452061823067495524503662548816150255964042544996058023701522069576764322667757817473794123465870977882846102327219078104209933847624002286219566024896918282033820362982144614215171546287496090818204460256849601620563929456704813689472960259067913775987194367683965997654005677759882238115357275023120065441548854054098705423108405354540303763525666162330579970931769396967096761078813717139336991074328502836871289045541723459527460610426904596101996821759310556182350380191373385728026561665230098042788816069504125434338869072970615568605921226333258958744088046896243567862607504810428644046657073427441832331794819015000476642598740068840513929766965203546821840294930872527818575593453569362658979958051718414135755012585776640658339178406572849463236878449349486845434104996791780225154634167980071092764489110675761223947424188871907375995667579677816589469199092811665247254730422349743938168027183223079018707586010649892985165207004564427729483594229131293443412946828072208530993650508958178982217630607101919265754202267757599517067532289717449544173495909869816533360079648380030563397827783915329360567378004542675859275266198058653389897289306496283483237397563887813886974096616409970804073246673969831620057460777119575551619887300200816566005676469349846195800725449913061911760119895920818219757068761869168417534468436199743797989069037578664797288945351330366688649641372645418027747472568549330727035992998817600868897214281893149011715267832830585587173560283471375958478250318241228597264546623557566119147012126820006666339994175342562022526701032394374772604736707334105003737164263779026310829816975084355629166151880663898401126200208226895994988647918798838808888286062152993585707779623678651637287875994520386851297181492333567451235902279928807873293322959940360508684761223461970921107226250297523970643035312151741562923415756230274619711209406244522322952688674452537972779831592848588666564184446636973145387182705604905152749182254235367187510583550556039017921527887770133196245665394682702991315837769755465546379336382766994452983018987301379027635996919275774472920494975682383121075425298962547559521137460957564856769548246494179384069144374355714932844850236682614043001206163982297791903897891758599560337289264136170645996093434196401442882832531537485269248682159175683926182438780512497147334805823041648744670473536591713946335864651794040358875845218455802474705663812053376335373723012826683180184313251462043044787400248161138689848913955265307683635055398133181734905385554026713868511395326673274385411109441150940957299534719223256047989590664709650099105971760469133405855342641714471925939579145836720723964609570897605842543537762666549523908248727149115760239007631087303147072887136931756822729028226901655164739025226532966790638602149932421880403872860929919053717412316556320024274567414474458132036727373006250766729576850931984430056774685040914362676883971142650752021863276753337929676110614861379433665152075572142557531428045040093671454378714027408681167009585258696182006208596527278076480402927174250729151991275958931989484250922778876727636371280932803532253175220022441034397607133441941994551371852570416524884254033311978911364939876207630953495748630649046050847898507972115650124282618626107219924717334400385543519484660203551469254541046900575690113072776084471078595915604808777257484527718929498481719322140145556961726086605438018445465152830767880335687957160670619298383005499142795686548471552594795830708904946393472251426101800879212598043326193926731434384805080644822175001154699818473645332232072039530495979858482778620844002042045503338199234927601110313757053122274144535233114019326131328923962118614780644807335529196820027372752437292639340577513433482053874128606792378993114594026057553585576721271814240492030084836430739775647080592091655060686370630505585944992624667445959784282797167897082104205379434877771436515610672338779438836307304261240514839409366878609933456316183097988241972205273012675145758978937331649499307724229897634947287068866554112668796100526892302085148910072621904270128015674113335766627196747352709933661790827538875472336610972790374066792189808948544931595340841741923360711923893961968755311370938914572624925151168358027034308089527927211310572418675481127171803891196129502421691096208595828657301533083389554305462583568283839647440564209355230973191886204212593628455725025596845739785418333046860545328834704312196063281749253943562596440575140561123325443363054052010486392493080346881078116587248987327149727931835297348732012299888365308494228449621509675751466849291338626000127562098311055644490143500302983814317861832064118060047235348032971744536847267394318815604145343333055362392073874506065723834451614924015446731274730890643609163496473157801199681137575541701791898411225712209197927363657936089795167271025945205454010957044447227263404811596044007303628738754330041349513409609091096046795298249676500657008398110062670785134096355283869473273140487220643504776200171014941517008027642511300834624173954870801851584945048037513320511880229580398075023914520500980746157986925682024054112413875091218003299754419002410649473617795878483793012641444278009776902865142271296766967661755517062407910803709273420821544211943903874514280193031506712027527727853097120517563038096291563671072340672721517509500855295905359430012025915985247542177597939788090469578130085575307380912185246901886064843012397911311076111238645353134524373135220574247677141354936611980184150013739611089249571190175827718715048361421287871531363811352204754378900120531484997408320579307216193960776216621038914101341371186323168322688798925187522221056461662912911912564786137326880498125395220771485687470844369787465301044848202363453569267468468124268465989814188656393675120807164422745070088022245629363013632380663178646810409700515425768903320934988275630557164046063821754919700061949851312691343696619739826461872762332823789615630853025878026320507218510533940277878332681930742017047439901434181008860331468701841070405256102477150181514767086809198482854592599788667119177418387565339777552888126648636737710825966354446743026524691408746773763768193708911033394369335744292643750881264640203659731449105855480528408684785734888881380962542174228344221615238660266608919609165713798704741993229082690098201840114206112483180786951537223140083485313170435595658141726531093062732879121772445053399222535021824664302706765650067332049380369001485804954901406991214599664054695191928877570661092213493614366756954817600492747348035211779197670647714556035446115287021221313165457240604853862287123125091803157277916278162043826365847041706054689533535161454818446296218762360178726860697543008668676749652490906537283030615385359018634616362729271751253457437774770865630920517923420033573703309441425830630818669969402441899003946956623981091968328675084079103932456939313574752096100434493619177889405115506633189085783379035388199809613922739970625597694020683179834524089817451048156504142519996777301994813249051551182941175742356983489790119397699010905488253135975513574998572263685837444443461430086681009531274591151453749021796641557242809856488528381150097693904177972291745398051847557339210328608287729266488134016919623509385311221421098228680659018748073629963929700492608081216118379312916426621672949245523357655958686747156197811203895149758267037765074961777357571873251995062404603273746421558538881859419562818224024605154060728916538923789240135503277096308690586476035727653839913769179749958439186849603116111439548627502512409261595647748421716587267617997485470149934708879187288553851866226832311016387349176694837058864818746883486978655353019781144678547165652068860872031103462865070037907400820080266235170036015950767974801510275021708747668357324827366872554022283484955934754390651757336185780934846063423052214705003871211913157782993109079107405053298703970663754487946436530401142961097145176166244542813669835606224096890281606787845060580363768002045256589227183493142223292263647390774108830899880459346992842364756587920585066472291773464421546200987184307852444307432996786473795248022025930984140450357947447811830555508176497390819666064143151533931563949978956936446665535584712366576258304039301615009269919040406659141194991503960905445586577212070353964724695436795950472320127359610822717489341813333004111713598425765278155755168654075280382752773464060558832052390630051389963225467039227675616522550406268958671699158140498329789799983355269855699901053412898987203277173978077065062792005078814998011339546262850682007251262937961266035802138590905267145063226945608711244229972558619745775014966872528986797642827062926532586139488322521259664031258711709398545652865437447842707646118416245763442303563083895431569827213181583688154955049130266735827318389939847958615729013500611341912996685530834634430701956749155868776733644303503485699200120698139085560091135829372263610699237971329169676482495869891169698319684112010611794784313194975660460876256625056500777117146452015948339197533128413274829083634014693309108414963972131828666960080691566921472578401931974644767237004555145225956697304846449594336727916981728032461173537125075340682450392611564157269540556318097827089076217602269503084052991439643984635251494907907634058341544907128798177918880645252128432789503080426430883254376943888950531165584380002204435046229262205306218595897276835129267155228270369963972507301794755352118515611429214289203027098028718059531816547541964983085716058475518689988177012836173034227869216930549815284106477136304643581849916968294992584229311702575424793918402585584992824185403005821670020862101370593586468009598747297354868332684134071239358669570611447204465898994054149144263108410333868139880280512710083303520700261434910752023956330551569654783294653975994218830606493186139579223477484447634603033630378100541262832902073251029528902819589501035126856862172003458327112738013271189494884609292361764143818361880693378514772961086532236910884984688742083193309442202275206937610178608176192797718795161977400523121491332979678100096483736596765541118520326161265289149983110004244675207704770314510323092675629524013654755342456602616813602315129432760326248413078790280099484071230995725741145938123240741459529096929891688580100636569895272733922643428397264929627619856598235579210823177321593719289637304740182370486576662510315276934955277089679766122157101214052499914531555884621601441210986049590837450601873606791208658579001429415919694538986838888238516552563600249240469099231139074002275986895999816517558247089295755592570369388030166529081010029137667660245906645080991087971485227863458000977528727396696253438007695420926343084148961231869939429960006651469417683653401431265347178127125388767199813866343884971209506974542128165277627640695384699672184035939702196380700253809503933981334780502244929914888574242976200998975191010278469309901830237618223854815869487941549543458442970932086816774287163364905495556571887766918585191425204381841669011047107821913511804679210215894816510024532096248470329829294073924824713617465103381651136198555505707689099914721803497968949025543102415699829894060779301926969138402456550861607355900647291680299350417451720490338728898693131746042860639169506400900850476294552911674782380201984787615288823680693416001685904291316739394275543146716678708850697261468802277050443210211214599148454194605035067885707266119392398032401877825458896593006233359872324725640285902091441077766254327164541176843584888078013034922995942259669835677479678683607945298451620221812847084453407675508191182386705008145153786327023441429366052534193794023512071921299523020726664202336076676969329210752437508934406985161293031423933614233517431979866129405831150932968462673787892322259121434259383675950877102508467482526494404140739913051381482811103944060352078969837612768622165815546606033989832039299250267990471227716680482777627999790287984608400185087776147169111159361860140471794315286540979265772009367996711968489779865053100407793485977331681571324294701127234676965420871289129734339215413157913299578094616562415212617318953826502888682863979582846738076131330233248073262863100202865837064128411994245881803823895264605687916545429531025160867280827777486982095081553433132871156605010333487677806969522805161819659002460219187511031403086677349458600804359425724023537646968918614945362452921877639334298423775954449027146758119774515558562948804286748430993656186118708366373107050786398510660897937529904426273743266024675295780838149292910057343257423446396781899186771760834372304532138768734748526644710670288306157951999853535802203199764195113892347667976724862787987770748965050694941690214301598144274093560061164616586518165956925223178014086153873969837663749517836510848681805856971285432101414601887553450908911243709036446302980644725891956160946835454283107652705039791924631799551086791389244891236762375092152920132819523444763095355669427469612609877647786759219217919850330142825152559994017025372683579339251571843828278557133028568447273641500237513222071307008064183650286324857432238188754064867041089630935702298835851886381765532575508037683503800738318096362742401275317407150634425478580127131319352879854298933321948418899709343554567266692246239608186152110220576776648233447678806298601677385046254589753301505073358399198012348950809533483178141119489756568189731051532687369057136372220063136743680034074993247018541102196836074152143691458231423829663117545644409203839926478875151112400496703084446192654908403711594448434291935073874701709088113316663464460828959119597366348795605037044097864679917860052929666765870894275859131934431326706062307055703161387312706529465365296631361084616979290832604520111290892511293933761858011663720803712304898182643211988808125923688298103237039943256541649013083765257477145764504452120793582563051735684651647319100017415853663974751588722288869429131855541255268879359909773962705022789816363561577558776938455384561459641075439168557993003075970930373945498646301368005592077605402871956851710352974690588860976452660743897713741146832005178481147991380573335883038518264038455562133676514541131965598471116579120137692756726651754673306812250143985447652575905722286744531318248003954340939640507593985435536637259000830462744466680231649757648572659448447832944794274285059184770019915207910547407272717897630714628437163289943510787128543635688859541961964595586622451900287314907966267752974779953695879447400407377314821824828214862148186759631412271744053387843543819751638638591416600406849525478162340638901094752762860872030462292383901506453385209018031407559546327833572410851919877980012841882566763716918138485883620808634305139508244679982768997973034443857266678826303469837374173282776131911698070650786574177435054527496850280097535745392717862759973870346515646531491880690246871206929920073488164161199080121296363473403765882871933441884093595194032710505075710225882662255335465106267111067152939417538521703816717860190762847852415485730262430538201475861579728072181390185421961195076204213001573784523769611603139506434765747956137913185364655428038176200007518175179512871602747086172647537366432160999625696547380561805735242569628770042480422472295510592879344171498548301152022855292849461745543066950792949055939448717775785106369738569607825814313021527472191964490790632159787083734365663911084705472109494785283072042515379071338440443482315713376402249725557345528453928448547997893826631021709575523825271533678550016855844671187838649811959535126907043962211868418043522260927154678930041063166242220444452728029529706901470826040246234152881286029297576922186702063447914343054641777818380355367238725427315458285247159093578502862773899704227661631001573251862452511834554980742777391556761950113644401095502261456278351517242085848868305457277547719373782876024704507897313819479641417968073474864785729442440021398761955453842449611232715952232826412501595376485866176366790777515399043839290497362989946146961981960904131967029143492713397927456624504824340442204200072042325950946148454240120645047996356929998789372721909953736069199819707169555189741411409827329367121891695406451332746283909626165426609522368866849008540741535299797550300930371014685642786125415529978025999380553146561619614830095837609770482742367845589537536832729328252112483932639220970390160722901575467430741356162935589668590416138434270524080144496449486634385498771923866553719993782928589012258554639336774822333085086319698294749131046110748727352485864352661753873812212214610452438026935041970205089451734764392230578841021410125615668829337688730744447956210856904780775986178357729520199537505954588440680555694780784330401401607820774950806468274683306138961658062931863665354714462428676401684928482578089675869657400934978572857056760757950639717087340231502192853602872794469010550043020008331887756834715502061713358331583962761354912854566379318777553800433888504379155873536555528008707817956311575997007241030509511118956951626956860949778084332904759829636210541623804979680773980970245795850493783244765023106258469439477164674045515616284152135648089221845475890971387308188933028481279061660793747176897332410589783073467318020354893444906874529801633236085992265042717698060799540668758456893135709537537109721594663676135890479342572980908791481911618526640344365231098971086027276180455499375962297891856550335932499703429292990006800474614364971678933697540186629242088794708457344999891130680286229954575487394949218226287763752324408925932007319209294893109380321005462671171222232352734031602904647739960454797992031507386150733125421176252143433911889346723923977875463755272025362649472365858645674666599300686588559854307542499565472562199007986884925753431765448839066571536968014184088096557751467823618270113191770322169848629787322924453109832347818490710235750851776182482955726887638463428882654880310444749433481029744999782970104848663869130297763307355905525413324530488848419023572126119753349278090329872867949060935334972111057879524593718843777886474757757983737200227381478172710253133378769442743392791340528112380690510466506215798667300591296403982497865490956380666818767475276986035421056548267692765861392840726247845374094643559469088805620477011323964749613327663656211502023673156572740277103734185820401211430055808159479933150322849906321402880380151942289372084057967221125016558877426366400293672873189951349774531428790074863129735902343726969855676664148713568763325114948226733026024152017882654392335622983096777178866703344141855735877959322002738404724875302012020197789387521251422620026037751193684736655928536076387079291067762168503042870794960139398795944485466005507560968513515424393168382482975065915533022734309628493705161691613124690587790810295574643359767524442548904712535020054729690959406439322091757377143472844997198743759554862609017424130099499006498442178542893998915929525865607523006744875336449536522703195895810975135613958817947435561591464852542284962414825406134175102301740377387155080337407354453138670492473125548594949973822269595798214506790984221132692820957687593342825402516155032090283576228687147231667268829493327190988539649850121369064707831115837739244035905082558701460498473565897283402957196014587342170220287052008989509943626747499242882202653260134206193373308166221013324534235975271834554300500115126166044058196220414910146552304273803522346691200603785603098938958478372228338914637289132733824726953760783737162863187924819845838805339047692331624739269414612518370890793932805868599103183278600096499984343845063150299256512394319023590952586518010755209741221433343537454378198509409192797655558331179203060389776318015112775442736598737368799122707901200525888909229485869216985664523248185388992757183945092862059114486026663773418596707187326041574594568462808456441135566097756021052163053501099177381168680523187355250666860632365148918149437164914833859602554528666439107666320821287196482582441244541269633885615240565040659358789808405134416220532602357286191236796132140604994553433036485844250339947878854884317183335250738963333241897264837831530131681385495181047458945139074660584090152527224782369736553776009554148082092378437043860689765572622662874833408512426532116992917743539644050781226495724747359972755203686800097744892634151616730588342893145087284690176929542047891033939625691092415553926809170308738957546284592122722910150196116472867527816701071189006107199039880600215637677181215700993281279918159286014297323662499729135792368770523808880190054230577365221946620263535922872772988818647173491856859707831901714428378241119897786740809485297687791714878837659801607968810067045623677205497013348849065029012502609123891862078966142421404350725501836799696907529379274469648075775947745914129026647693443682816450188874750551620860805176891959542507157914683318908217322280709729818190195021389673485526276215029866655037289450993903831416932448411509880111950186610391992779400969142600734450714898965823913322283723592039257977342463401380143889838386042138212101619659954810602273932034636034198753006505192869097501414357474938574127487550702846394213929922358015934681795924076273241156422602563663977639466554203540289886257489862817544297055357901292794169146140067482327330177703305176004437458037444856111420112436868077432589752804787360954993438646266424388978688067452380690798465064927584988684143923508190410939223874257595315841118254889513046231742730243774223391455594625466118487876758742673300791441703240395401618173807908446195221219531996792579059750013451770907095154668769584184829599304248573491878780579054536344413615273621672155734476618280443063214420249204362482807603243608012873145046563478597714052244566687251675183444571674226838891710472348056207417240231977026932260502782848136699944899671375675012822241849231563434258823728435369171438187945277893650016842535946557865340360061540820549757727196545667395607696221485696060327588753295401882557443850067656438660972833781215123194101041121536192420122825517263057694439782534983314125381963299705574306386064018124630371266335135771735901567744201583925264335220156335335148200935603904984823860612526828052786572742311202234033049620636789595324009626932237951602903670809311620472345463421560161789821530378870209088682273652946757531498622465884553531973556543578693670639317054098297722327177958138717320622775656329905393636514519735118003627593838807279210818214717251633956226646529281547667758129730420318585145144443204955945312147161676540543369782193536237470386057829092016269109752877112143337586466233777266078553800196250914267269548164747553118444888037029041041492787217025898448142579770062108656334733762871793013358776106267073293230297144362182389604602994599398347666516017588473406782627704496850249275519191790422896994314605247901609915819135828442259497207318009631818840369260211219715967698980551187934140124818395985885715451419533380530840358518199301341800392849100129999988279897539513186369687098369970363260119450299379643088925720271355098621959546131362946594854891382080512480557122632877221612926703605648406014306598742503726493718749613381886257138052982592990049349064752740108273500341098142940992353383569308101784333181785749758114583919223203376087898326271771073038309539925698891022269075190758607887817795014305141760379835598841388859204563179212459804339417079846840810009357822675320722102190414129681012615108200102779740311131335733576478390207171841401154427773273631328324302977856824209170885129103383068667278903482483765758401145299983439662885553229352185678432723743533351175790486436021702792711774212693733641256502218624242297588988010335574802442619085994062978732737187262629417287828048546017620724095888767719967459497869816086861828514969321385339252338703929919775759460443301078446819160781456973990688165880362764931296434623953486572365937313819526588118263405858461934614055208114078980824981036020361059248217892507980946243296496448389653208234211340366355452337046257514821364068478455433247269760482033767369382255846263134224510861165146008928103020262508222418276979416743661435079483333347824874447405470540763271988786556531037119937038229157075089608318430358145488739514073200535905479509596102017352779326398650704570257504131746741307067390154709875292815793296265320448538460293031196255427054493213866677577548250660430290023494666347311943518842605050042067044858984103683094000452600771572906400187679401372567153726242941842873251404336892706833212038191979500988142944278777471395428468562509468134674716464159819885714636394984211183783241424821199953130224404688381110900157432468577058358311739960498455103226278941645565172114933873684519835149021519979864505937650899206229045473929998059857157644255377350120445682525470975065905738503033589383718179319641804248815143664215835450363938450112460729282357815451543137145431807251810657106725952801851857458737575418427206346160775702866875761761596892909949568283395578612061168609884843578854447483732147149473440540752431542277271177626101388559892555389531993121779422212363782365313469199935612914999780634774308863592338216002506066621028181758308253665404256189790676453653793280613723034434909932407377307325588625615605242095805558392429892000630558291912109331197768849588329976502702397468433317313466547837493955968865231100976625111053747474181291774789529888809982771344090675205350969221528306365469303422724382350433226394910263548144735271239997795529765480644200655090866011866060783183903722040063187547436143700019961041388860748622861443970674360134925576081668335402023875285199367422926958889733810493985668926755102915865670200806288754419364761015227476037996513730161665895327500445837609337212353294715197308187845160140416615285323946859755339499079042025247181533547800144503703740729771976337101228761882845965412366765069853623243403528698881366540974070289026384046906140004148713815152246635130392674830609987343148346058795138396502621347445606000247430293375144397793761447145802099227218371746509609658484014623276680416670979391565946821105827646352711552465959661952838577323861697197804395800644495064575866868450897045802026098641888200767621393160554504852405073855634443093683630568133204629801610922057699595116503930864641595042717378917656952538300137592657830136264233846941253818881396476471394354384139339472838324124838665086526653796129013824617832629349520057022042813938478552410660348458511142593431523570324591473978565438243693044872419550770773228513672261370535216967450053657008044418697213932155869302934664359377496110989901431504152070320652421868622128704522787837697634668449460299735484178164355136339292055106538712560966977135313060440278019784098823738245950688053288798867380514228398241959675265089608954140745635652255307834828863029389505795075665901642635164233955207554887335957988611006162576292645813366815591935013752636033154797433369902338981314969175433410751976557448223658537174369072576854470685133337452346428399959972858632661122131356771591719846589424811991381085897672434752878330381897788181402015902053189729296309514649028088707030903864272814627072862313804196990253223847579437471031616283061567356719117898259796976651786920861484773790421429606404496176813403805366561486769897677112481641499999960615403150733435485993214784851094598338939256972673283266374209497554639898683745474480633571081458755477694323585392689941580535843360863605583555058301324949030811464227248962942529478291100161370535038445488249498518641697621765843867011564766848830819379828731650665298943322254267185832706980306092666729685350130915333306432988009918563562357213619125529221332507830950816474839229702884936593167812142460128911710669916604801252914751214861247242449344710857419835637395660369035340499541774898770225144465924164586885355356193397994980757834438183404673136632727590917048314584902622491404719852279889874422951042326270976468869519030125991798886108687585710561048918479917337070290205056740034470358850726569359932847098934781071502136857012502661985024951204160338917248908784064452478964397243057432261163144748006926845239525551774439113834655759844107644584319899378952540585166441199607579585503558637098232207439236240799677379250021813368518721084332505328689852158253320047042998250316992458450009533448036938267922840338260269693968986614030043546680347755816867311680159317714527416068021285429576089683282307738458223891713570588889267779325075535156817463687360261860749858690302753411828316311634530037771381874628258895311843150837970640069750350648422743565877837607448675445625390959278401790226639934536959151017426294529388240087532953373902124504519939741149270826975598006233891825492260627585033662609745167231255727591276093255814708251905024327571365492847038654727698571008970057313578398162687016198600199425856564008761805951313592244345461315915264513699407858074976007160247135421453725306462718421701264456606580011837136479701567118834476483588795224826614451929089900328811572887883953731596302945867931714210360922713473466723277256029850811057354207765749280123082264636541810802601075186905426781620137868935486884586410455317736666509051111524560704211099450147630600088677106320528875827064773698912533290673328646329639528158986917775741345743848230332683880242989644089172104794121051525862467641226401318198117925747890264337440288636842827918880820302995979760982763612771189911707071323974322938085423475975721482293002614851870839743460528411137955907836037661319115377491290230160652821780097679300083494646197610204216268961347459451326734609215772864350325682606583457130170996282262063249586942393607616631449994185674417369689846541656755589540675123999886753991411879650737604282433860055351657081747902310415596498673536374337072333225666491208063096373469821409817406441300593049577167309355922912233069325892151269474094813840490215265868651183936348263335078507228879840247958802192031718220687123870942679756329693581006408409484783429504058297439340892971228755994522762377814160889890298481067462149084109726959504810990138508934845099204261314312162699245212735710673520458451443410613532621582872493753515622496754410467885558447376586150492717363492965857791394555578616063341490682302672695883443957052841020297050628305595226427196604320777753873922443328816992797812734877675203450803658613727888826480913301928743619460324348875443547198066709526452890837576162119691694346171852350693894939942398745354939123835760020728201873624710461231999851653577083730322520727303733474129879650013780098031687985430128998045869073926046213248071765176971779690087757022011404368174231886881466965932597179027005622430231613438199785690888428366685042026816466828546625587921949150331405460530943741249217716027534440910502743612589668204842964323294591024417492584602643055354017988358475295319399665999018169443157334176758238448590238581883116719866698464496322666312563078610507177875413086337712829679450453043047280189248376793197215612417798140495660208141366043595565055293282504974775975316050500906209905899762253746225972150055662308073279337897119150356446872613795840768117664703077747815952744489354270540961265509862466127748774636911163501517514746369079478966825132704424199730978673302303754307084027563309289895248690734194197428810203000608325669240471067677237328801417654432494076059596784663567664604409756198202882887004214553847593574962874783801480017154693455606185915316618305915331903374900615058608884092730265159502324414081808038000701826846587999952406810893432960505938883578768733890520988611436726387668288419381262921905797537683472499605895862632759839637018113855327364834111102758749989836522518607011543660333954933604096420282305592482052690743969212447891276598638863819353946836102112558595673445766196269153812027834747954591599124807789295848566090336278056398183306568286917755672393677777093835578801474899828242798844949978689964079060966951834594994581064385851872272753771781674782484314996741506521815095009991420269949644935822219272495907867714579256400462920759003305466949673142678352848193423009489569342696907675150889304599764942551494677668691376723785208793376531706217942894586209437684889423230208764049513478950609237202882122494931363042061335846568278111327958812631898578633247949878891561706943115533037642471014997633480427813183547440729873064590924957767440511488271110798490118395865761073419465593017271144520358689884705101977805312834186657294832366711248381343338502294455375514561811582828264140087967680350197840025761733758122716342967687596572112194382891813657563554808276055567862226046160401751036993488374777017313260202088008302494991552304379209679004836389437915707952430120490478557962923097365489186781928158929821473313874271130813100189521576781234313868314615293642629312781549511187471527422217152242341307331530958994552751342078635323226950243909532365334529834633770125531709325015980415514245057977359852002310861221768718998753333226951748477861762079544709378767851812038419380236874822574084101075203305763075625953155469066797825466187170271664078985497026374384125133785515937845447383423964496732943596287661759852133393711759281472399847098295866735884700365732445781528760564386982064336197015930726527823162546770087764621798873580069000763929348951719625687102693961372318395454993550841832131062119921036889499697663948067400503678532282319105359297046035683252648970844900507427565880366639121084131352385154917435750037652146542819426622595909534064669207786969366788074465211792643309386046903084893028297066325321222319791789074975301110177365077816196376622250022010157862402479979911942141393878843011544073049732934711662720264967939843274928049692736954561428102083827612206144982432684052755504654668575922801128724760391269800281201518575338538957690843679923049724091604441301966557692418990157038027925398606759648360379087478531565252507769711391838521439356043197415094196224958949217041285691585044803291153264731938287222507141268949169104492946615603226580910696780363379425951058434549716511361153882292401151367795493564461181779037808799855108782015967566383059928601193436580634767762448271777697203861731566603059456538406371507026171355923223457571143612357059703189964782810104170864603485000253140012150499812968431510154609256038340436134302894083544002320172293185649743284002337784183041511502892705992583968517420948066980900314284677543599091971813561076957826251164884865934853507341597837089420315210134879117408169047765550712578936549637124788680078917827511565607647335976902463926595006014542599466043579713504939951164763779015842425786279449619425384581623465782118671071949706846695735732616309537096083490643238094714954204617313957500881199039048059964049706850162612799390340904014151429915573032132529307008273628690907951701751680386433845381441450361525430294929991189155980175576210195021015688217642404485806300781055239015239013527112434354209894391409889792739790057773730557680336069280260021758457634509818779667515335563837300348428715404922992496333252205713539543702219598637271030694295473278122978331317083453461205228775783764310801209413979232286162581184663138343036747467174746877774946728041741511615807066246547222155768962827335313143442495325313930208282406574352945989391296923024116072257403773567436198859747815368174255060980660168080754274731885411395658571270210015952971019664579803584717258007688236771866402101900283655616611194936258380363557064015423087902349400385624867892613461654708062759942917484803932350532153730073591762467494706112716415279626395565034786903560517917179388920039728884264274860370583448812734043304854805305820049009641655996241354612616114161523009341100323199230320774996050705363986016783290720921006409366139033983001366104368973799957495976329804689712187624709107846766567954365034707867513867707969460472491591660448039031989523802228092238279746921469736115226489676780928453918649933408403544846882749381583446097859317414375243811287206986419027092972831961634777251463203558699711515673121867622912244885776855710664155886835275654431317565573100109421491031377356521299724480291292578838635286933129978264997157711648555276097356128880386486842291641851810750437543018655838339477571438524081245456798480712746122243255810366707772999033703165068661548974391502992633631200373771288387282652255247311230974520571016686324042677276649234463070317048522907584640547285330993250190349517760507186988993459696252226192127754227595175935984442808225466220581051846793363148687739317081457463929832939065108164994124629171127282935793949897729704737065824926428102085057179402863643671390117831068262751445585838997711056011290471026874353944863557692015203842616106405508233783458585522162352051498986962591143933722954524763480141683896285121409437799877288268873790718790302763727887451949076670669978685864880753224738245493132100277164422405228311138521014617547902094190633801556817478786292515654923901877046436988807131918208789965645908887421992048373132005129642208680469954972026206709954573324289149257709919924086281690636981203714744775015381662595408484219765872895426432747585398003512242227269866709113465787609461625697826046545676368018828825463133821204693432059082509969365473236622124195219567504568892674854478688971279018929488283951027286579221895781830612571375906142993543719984751791587671863209946446965397308499389133238712197163740218872144220302128780640331693251310705097253945090388780535495921352819491371072734807445265040835080352492159559266629164980225548589447086661024962801835934144407719465008858095037473759072035128162193016118337660312541191473372228532371382103601549036689748030329314383941059330819208037343205748901385170432488461035926153421257873953506701149708803448595484589623929836223111217855918654871115917544873609307367337194815352519927266993805486340386133361978775765793872040543157579791362317851908019353586183158935722491101041621055676614546831585060909186889423043999959590358032424856901237797765189151922215557392193403993043730927906190479788793524953556901034446488649993971384402183410497639494904993699194527501510426600886790491885293261105788960659026635581068100823414694529482694064311072967000236028308360687677531467720278229861449299376969599145316864347969999737347273369267057816695059701460901732865259216725710751693543424064913662652911980758752177420194828864869524161924050577220067261328466589772065213293984945651091717663122333659395401798371124699095903428659866010895718502238903544713225611437229063535891533100831537772372075546530333819459213261558230766500839325088286193759299735828093713427812760713372327245707106155055513883481115582310203066021450202717405862042126341185318361385239589159561292785784705838520688035064700104964535189476411612434749505778495321454570155346202368369302537512846966119722094526937023641524503414301389186699256398712534040291187116679385040441430151615540432711797801153305288632020571670465102120356217853193636540367816301420359913880756212054047888872763643675011400441061477952007239535439781746631334099570848481807015240600997033845280942453713782484130387080147288616592579041852488706907363227137812852277321132185674883100464092754553507367316919521877783776938556418033324853576858395284767160909465449287915842318562399882687830753793787987429706154456140343059640479322675885175159007897181454339904458485183489617922866431864565122904688445701234265551539297431015338667527807640343074808147872327683498414633352525822610545393236158398361613043578041209969401401495663137035684124516340244576519417139630709554501568093659351248060228948682843878705292956957298341344061124849320471467283541948566313703591558032141332724854792477125293132828420549633415721820156025207353800458834488197523069312943567013259225581071755628366600946296437736841858557014356396267218135968743459727659325130901485442865734828664061342615280685193265828983209708281027419089388944022102777517828951159495611525239656904601866194585330302411726223130329871120335212578274253283377545100666230795949959000607255132571762175035353116712166412432801473934293380075870781454144483300362421169081767343637020677426376548068484291668813408155908563209087683971428211506011055665491737281819160208453532737609829470747222106652297794423085961082353293739404561487467538055276981740403256605262887011201985727504554203230573995652586594527787644446106572838485840016040955058147052174788104846220758980873774355328736034261829910814823677296422468412397787813374914520058046025260196597762344683784245851298736510677594500982325675971348079932945454490935049607792321562193089252658877809545543337654706017259780555824716005722794845815953909309363154470637032217510451591150487647817108697241122970539620301803805581527510629828235874690272261117962553393580277814927726989928416125995020166476445703285287123146531172148274915766970086501116690735515195237836779619438213006458838067625549789149354310607464447595377476371741448181316131925650458549380719964923296579442165423931835467764282040905157264213336979591613417447194157441794785406391787900349588603455920266144975526058971845378101105209347380183072405584700005366729040551419221961843473364687625489989557944833636573387350473071972259187501446156552235123472702586158858412569237048798527305490584712608528817908742332674041865098300827239066882564436282928222519332279295518788161391613331961428958608612744863631490729672381362640595637520759472693737678589006111772137227993034806875966577852280433698917807858717052002229990940792072327899228097973993451567899684370946307290967231184775181392259154388445875276585832680814171486181412861728170066772629268833054037686480201613592764815897025656857380070077660113108906814978764141060853921063900901598104123661130844823454177113624162104005795322047933577825006343667470493007532285244805253181692893409318199428444569072829971948765793604185384518375595939189475656320503124382738830158784228765674407653368380303765754622422566728340417255022138925516286291547380714093611690896855451631015701395975252405668928706247852072368282992201028861764896996257494720771016907468807073951107261060445670775636116596838239209270761494185455410237868868560488805263468647776786638279616454763468914102129867918837753248420589054600054781282674641242242133325073352872964445403294515172415815738943673616741069522616988094314052747044217636514914876069437749600119600559262863129532438029685393690319691851441335720996424451761557215929009580019321699055863355094432034701176756546406482339590033464373708436982686401066556640372714960172092859397150729531083971262356387321254111474646913942623088835914645864069464924403353847750268102352069226164703354826212797398233647988671665570086743469078794368414000139658226915738229993225551389936531383725327246515627253218140009445264201944112768640172035789696898458590827348425565564154878674168967849019501867034358505763219921359866762711106293792009137116623537480705011259339150966557403151477626072809067242995701431731145546735437834448490327769280524249433379504085929995536599677766183860197615556024585761507367872458835181207017286118881044651738787155366586886996101585433793691714936585960221818626159137251530281146437797632609186603438791191994485192786618189785133926482322812339914378198302841027486123365500253181957649577545454959394474143923304910574382201233697896670605913992196295926096366792994475478699026873867407569525206856508983555315336572083163828616884333767585761736500309386652226461208725957352094057515967755858276719735189723419808061612945008583713479690858212530319053858579123563983469258600748831902548062135873801656339609686383695238411574289424576854505554563461624594030717592656881364929231231218630313350393943520813471726018343424370992181287923919521206857656082362443700181297854554151403877577361844315585631727139885815884880548533805403274545002001453783288047965412751016566581186070224677481895362396895961794845084178747306848092486495484878091114607506517539349424246124484325062623287116014429118371318523839196065953477470393957742949668880027254371167591981466030829986191032221842171441008875859731798030957740026763928982737286168660305457929332143850016190979176411410624695250087980009895430938217334744723519933830949938990655057715792790309268260670195672958358720580991730349834669663561743306755505692667420120519810322281067825302144034587146486081712132455474258280434258886147005432540596657383138027753780370221775325769063497865733262594640007790020867220876171061812100253404726385405255189698344416237048570320715917118301457047532381465086074303550623269014128311848194953240986825506751796346795662258867178547347568704065221981626053401911755111523165075545541792360416175911720398120203803721369483955495909135875716883637045618750335692440453581456927363830965756806897350453125020246704817375227695273026860440579931679428933495207678960034942498919617647305572447336666952419913113402935857108000910471569070747020558651801902723328314831667568360725603891281555385429580722614692489655975253677926479250140385878002390037303787409549814214389484916291983203656205234760682049672493909548340365024834487187073333980106888550484418124413987631397735568000308597433125426793172482736935777449501273441590720398713806508549649557117818023809089085179653118298263385228320574944544098830483828924810220044543166135400977833953942218608065263810491448500292521056091997551833008777163607207485876937668562229527326918767742349512609855590601825956448292755641004811559862748335464165986931337863396080433754812634513049708104881688080898460667434032476487005837046586854950488116834511982395281041894221937152518289381021576662944530944409091309689933481379119264140542109961761906135477560279238885519513878875411318240478091630821313265939000845088636735146329748359038501003219670170253496980347103437007133336091842048750357050239021576023835788989065625673053599360825228861822978222284838931659869513182748487008448060725525313556177754984737410988768661830042923597866161074560025334253225883253471136525122955670684120326524233665277287576772870515992483298547317136103698902462581714836523781149745807765323857904255747456397043458198505679308938075420332193441694591300662071855862801695585358934302279367117656355274676428493430026307702179478987197842709179805115343740596875581526158015331857933690010671006145684438330637909597109054358783196096874368981920193052369715207170148276403495579464706898489253226851798569020737161295699241235852213139502585871375758293298041045190550604636141815370108866654697908044187660072684570610675092425756534720044415352102793416983893610708955725339449293269617518893135069060107200194871779200568299080264916141137416873341615555442187574835575873562269037790297521679142858814276243157284888534532993569304363918598651843241009602225648269409290840495250049554352334836325614955872562098256752338597789258938130502227554096507713714003474064604932974167165463075097169708851517230340902910914462628221866899836570448248604120567849606027158235695182558192298622596843878529406700608620007772851693120797607775738681373342207348366070014889419863862203109867555200632929893421066554989464754159025460337829778710840869110004368673684872212178767665497980354586141882339835056016605815049948078848420915687146290700008688834930752354914794223394785452889796238617918779640871663224912729475488265347485593530560951159130831653733294937785438227855050444522021846376781801799713450248709435840322373340011200896344102960459980567430094384211737628845715960436183150589618631731502452178525117334797518423106381173454708992556475550663994446161955560927573162928762315116597637999103137935108956960844039025972812273495170008495871895678767489693452129619519470608047727218087303331599636779410251041821703522372617496055717991820260592656918551390923189060458572311986439783282990452219955468804534301773894887783447283856500600775597254999403817709490244633328168985859665145917433681945540088315758862326444676923435398621953910117409217295356787031737357557225486083477912943708528406232581586635222177530362853725919786556888674526714315560217384072373571299891973578053225893206937911770380403150079962794942015581958947240973798166833975269448820962631376608449093811263367845907185876258183752951507480679234612447975785729097199236876806285568501580252329760415771646272486372571092362657644104863045440151548218251482957953938999937113099690504785009707314620563797036251109898125052548968093999941816047441939542063301381105043310983921157700727002536479527680447821241653496000199325230222971549451144012165528066073232013555404519578471018485773976260365833086078580762364736545530585791883121268807696176939202714201874239218003189540471833864142030431272123588085986371558722901566169465314814074225549878883307333383911153126308853972524784540844910114433434882924909947933051121198000834514703009205403837299068699507619626477969170383144368120944465506782492159853598629696846110656846717199921325609745371753068796944861940163612132147531066794718595221190918677811860772134070165083039201027384084526537311341478423158177041889830991890301948546759146975216219550282795849351393228272279454042673196541768747240564067874933754652512258005483479859765802976997984620351479540535352317152722236907563326923871820370373836520196053950763902679012661636357687001770436609846239997053548662083132173462228196629160785260349093441708738998635634357520232736647253947759490939973022176854130231694094890745782796994627708422421272288501962510842169085881306328203511728590173944494588422238353556356897128995596555015422043715770189424368174590796757107802123903875938891838755479379321908835142430950046380079618518073932155984929084477814799505391061962225046910509627354241221507617137318399586797436740479563047099031283836299732014905761697963901780573030064841732083137521075694081969099132448979927655446652963020207782350752124257985002606063961626762966868342620593527182548624492100185551817415528429446940729891603501847621739520947522094986651083503508094639174919749727376939731852787688828651960343530927486553269275990973569666284950518485312851816723960790160982946277302853786344238748924027062730978454348549487443069361140407417393074550010547953260715665865075515739529719652135686618598005873760881797583094319720041771950749925505594275191386705527875010511704843040062478063270771031802627260618740368011209113863941800855562640408180553926719140953256506664348707435494994153775374994349628065045579799533412299093879913158140527048617853399151310782808701743406373585687606291029654615655046957865292616807096326505256757027474195080107176847336690420959584330390215933876455501270872577599034708350967770337724742946717179926783574731931329134967289720581609018857125566918532782730362353183522825327978508993919170134732876187299386942771281868711833211029900044859022722359772972121112126865093200093256080645679362414064813303470721425122974808717454687028740258087057090258875616070422400893015687910263144389245565480418898125392683773654312397643090825922089360247445348064979882908138194346073543158255162970042782442791911645121865283300943467842883321419274104249381677659421933613234215895541595582709172638125993027810491950250874283697876744764646510765610737047839804327676013997023304258944360283119253684475374662898372791828864374962439032567600661597839781434833660385538585118672368809419226781576501972950817343890663937469447011402895233575550339284901111983413436164029822152218562121197426912648709649604648841061983088921860748304651451676142704707051531469239840563034794300055360431682561928757201166778661323895594514922202427272537915611121067938962080186995450611635002596457082210879336705066008444084017546838052201910732103458473101607333357490078982564834503616539739110115099891707919884840973950250040781436211920346319202106822755279668266129145328602936973855995780385694768777220798189262580035768584368722611602132242687063429993172567189972560136723526594989204909593881555307054644166480932461781540722459374861688970532772494190508482076924039631468517205451528341877490640894188446338212466194527063601661072151109969534972733443359325157852231050522753272783693621658411578744063976232074383729254311472775154039673214414319648278708873963692735828668955054335972323493326190156121074611283148477985331184112450280379445406226597632495489208996007313751805554469622206372330715781818521740808964079989938265298194746439142589135798060843418817981072499779710553147064072592091411397252592032057497843590014803242932698147814450748279251897324441546055753875250159203144521527596301222422788013495358499616110003914679060381726460344693108203972392522314437306860013313150561986210398569910102118770205915412944905887831389764997828945595938154205780687863784796875223241866952632405990082935681635001372709595669948088227034064970217300081831284015711211092637821428648437118983427838483789603262044187227882483163480524294104904769432537780331117749468112721654319824596935771267727681849044152586982451123302727412306510350119845723304342187993726867228667554863420073631306826708045173731736756470063947721347441223293600822504419548169322290087559917457615881690763725497688791646970755407565404239022298651878605980973796327533859780891478435329236225915619001920881812236261614805651169323041469396871832218944855106809403697015435664393698370581322856277438414568064561383157868582547676077947326924772833566041524923986772624913539888769843962887215494467577247644140800810315825973692193246492849817839404929755340680957176283288519049259494008257551035646684938066949098856458892884070203121047089913672473524269238759812593967392485656819202992763495094518061493584093863215450409233422834861719832984893707224913603649470323016382597526377815726552768067420899456858404481025081401161326093933285998921664567067364095943541431788869826988461114837465069136626266843264506795079343007889666463118596807805311205818826981718521800798640526383453324615112688133474764592891737957476623999065844035893740224817494568457335174907685112281106362162580219052683960466848949462956691880111626569503412331766603225508540924766069290339546214509872034500746483486689900885555462947460449162471370098269106056296511651798073928975090679282345153801309139918175394021123368846932595220899019043576153913455215475063406239610390369550426890299480975509146659002665758389966248033599201226050806477017794132543590940050847063324791752966489111349366601185705022786566301622762025232619240096067289643990432716199191701981042234627992550930579750204508671301673577257095033504690595575782449262724341777629749464376952851232560984823109506125921238171905345849743698206956842977454859690618268094887389070906924904954698052125479617758543318855688166166403127914329628715955090470342046849347508515221868968630840178014110465788614087842058071946768947347887046095180055146651683146018582268623442953786659228992843564926990481294969784991048388771869982235521304944226092214453138220349964304945006255000462740057346055198281798036888007101957280436015730508620451611490615269837806147999535616393622483703807530046481926275613206461622339301215867823421336096752438646651561818904734980698291851374840215020636954152678385718380202022266353321915012919043748658167853914009712536445148061439374079811819004041384373616357023263502804622859358120133151166921839191212643787650372644978451834810946625950363410450123167611281746600850677950555707174269838296194819696072158907902374871354106322956164476175110837295359180535431357564933405709992348128217127663415737437521384189000375410708726613455391613953236271341933599091651443222965123089972323894107169242168628093682422870147820885925820611975883706793683908283855706601787306133704885782109895673202428341945647031140897686055053555485256767056955037644489698355436107857514218989753311482881688443722529765975432244817455699982713085276266954072063953167316584406434181954631853227869983615292092877169829299109468235425681575609713041822949992125449526904962172755603418253225565478754034876842908740807675869025139973420145474386377524426419125455991275700723132420066916708824640611507803583754400969525508066034674495793461981782203256294162370727719616173563833772392801840754771955719047686447811217454345229199303573009826415636138074147627844513597747904699571111066262471080368466946412810418015047052500000887984499840134585289920728129149435582561872593851535972351955871564254988974724542896859164276736374536867628444867133704613952716353280870727441364053139273972340938849268878326961091754965871276927989802092965716384921549848322865427950084997684527972739310776143509162317052132865013372902312397073386234567870209961786921565241334093359361984783059299498730381259847217114576324386303117243269781727428113143719863020491961017352972864539656495239240839120935649261470891846557327282783043627143212227359546200026534099665903404861332294484607562448026055659800063077117814519573053358030116503193496435127925077589394201204042158089311461403217775907787264144538526151535963020429271829401664558408956953494963325248388643656075243497614698092281993571033410109992231203939446365363121396568567376057883053234328735083378739652472721311201160901021776918157692331121097165024250420451147799680012466763847820059684787701839888411611653396073394123951547818319780037928381571767350733589997725010098354249504161557664799216832564725265385130293935978302588737552726940016711586547082725963711899579804450947529759106187394649096752964955529730515758470195489378606038245346199320512248163921824596751688500221510097589567483608369569495291339319286397541774128249417647424265774919231926079031299052270350840885690093740600755929579404328588686062334215174929537471598514166000211147120899473281267035015584472512326912537122195886563392359415999458230922356221880364782981046180053661684095900936513271053731283163985136433471400704067663866344295374064196888261074031706602968355287885891696026549701124233631522489353281939039250784213641914348694621887425854371996248508664059335910118704846401727746763748772803784075325124892905567138485166634001839522081222610884696055971074096158918836783867715403777099988922733943994672661875138356737731696691851843646088923896800117001299478520744147395099570793859655601134913620587820844306613525107869256252204809131842616530077676059302658016931546949167605388461311614691553538081464806226361765578621792338086555974225310544007657118227786930662520159228049534068326764081344764962273857887646358179995628508585943921304742539544826472448832401432546907273089247432456484993897586725368438742250230115493952280773068094893305896415357421693144805540432633521962961989553179374742222619023491896830305306350756266737355120587588715650892966306525035912789823067427116138984258251113196093961317646255516446078968200697010353476448351915214465515979913231333787665956830761185216659636400606861706219848897590167894013492290964920042132105924319833780130498129843473186019809775462263462263088789651341932841507866091503745584059328011595695700750953353152951718420528663126484336630164796014790590645332649331298098191469056138710244712710599072983271912663008690892983105668331800726085038982883566524371454883629778603814026108879990946885778263718001986445221449582873604402265073057375431046504861785765975804383294980504896491448181647596470354034225522186580693810442780703007119468531019068576143585441058087841452318000130090834234389996662376323873099917131439338825594303866047327492013475488864730608133898544206652707437845049972145296004398101454802386261415562435477989415199589015437831196190821924637379895005558709930410828338049741153709542455736215195016583678506898422077224415491482484339184468918078283759955996411460254301268790304038698994227863775011787424395822176671344940824723679006406432857845228586858211338324217275732169081952438191061578068335224723227631722700797159774975206414833554383618627498759419467759319822327907253337003399999469044145664793466196070832781877110863596945812410069681081547411986866092863717279844427496451393967292446101554929122571162754182916962841903398989677967336236451368439165563144087852132569023553806473538364357921318313219005485003959872554404210266658067395463330472676957279277673483673990476040002549458198702289186345886297797480390484142757215127929524724081810976282968306460369042313946505355734079240032462511871257910464270006415800935906965440001813388012976359755362216785666193824775480152512232202432317914530839347974333245706812318890375275700493661897285608517066332538811677393483124950188760852140131121253720486642371637010033001346770472980047076312022925951628097705951196189811643893087489414295496715556487476938497051286185012019947337711961232733474576070626755186193518405335584553543049096676182058744806158103825232720612887553700868845631547019107871536850150211405495409770748189673675093763722804154283884384505985558068026580263949236328720890519584765764138178049663143943267912703931222217659657719493902439720128497086913196585158967449536187812555281241342142081167716981221458523140330432817284349044860924703831752126744482805053018178080977454188302381076744022895191829686272006634296481589586198468681051218377335854938106942955190009682887665703554394183533289549169016720721684248149640363017797076573841959911464349860880252328498970702018878590751272383441456860257577090139558077272018906836667391665566760845243763918189136727395211376166033024668727701109551851270117368769413985132243537077447666550252657939377968728981145259979402092199002871500837185634222202168535244426845184905665445320792687209634355138593160554523696972251664138891948619309691312763429207250222737810884737563309040745514126891693880514754461133112738225499764081340325863908089692313342346481900227209779324288850214043876832013196371482315048984183927316949896123402881779503217439880071105325611139644802088469662756948633662349529265178170611976233504233167289508348708769969569861092534733507963294910969093720813443632342537003946000498959186654065085897977114100998834283811767348394003945766417364936532208800818029133147173674002662404333175572975659520595713570581116970234996163285314431913569692650109225954027746370466219524384567934644852443802957712090413078692119181701916182631056352100435856794268296656363039725993051624183477861157798964672690916644110892918815093968413837643046898608403179624215881366944540680454609898146808039162584096943899837426729780630385511994529731846621721327708238883761468337008385193468924017933331519566635023357064025978707927923802083928459005340149364490871110484369297305533124748239404417595683180352108696468651648847866982563416994672973657170240626339880145754199826203622950273672500274894838047414242431158586793065345596235938225622733237197908485715031136406010741456473696230419541488487828222458618071364301039224957956263676664300634448133574458553334830274052182771140288545145113352948632071148171168545078934983871558744289772046054276270224442967494534884192373138892393445647860849724346136361234780057872492588569114125516328512144103797187687898178414017570654832190045057301710649291617356185763598062067955411454557843229610929877889359300309923537262186632708868359976164161211810575683115677624865962840993037886021376481585918020964626273529877403081198738786867406868631713279110045953452556071017573489301456437810075889450227860682386217503876926460428541397648627731036494434212977942878895271101031193109769649505137602049638322828537787359527797242641816057847450670985375918358825322436678378734768068997637603784261530576796245483671406845987935643585177507634271948835297294837863991786843058739073977960086722002886321504191897842819268507851477559501448914989180501534825552256177321521398968784257008662316835455508900176637134692325097971485847435056293765593619243768099292236899711202264297764247663842850655011976626310409904046395530888729252251864104920172973819955975442298636390342217969279198779567528764785044931020344150944803368433540045956691381307239238282636318891843289298245990432632594493424488164169266646929874566623627006089967808207361461109047623009829200624127599042957494462640833748070545313816049655468319201477482229161524893353879431626081374672888832825171174857653932308930290818378355825199295639403607848196818716812648018307190977372192163964087146731422679190818981704448761526980120830225276593058050822986496223333282094672821401031149507242550570138077114583211420156999583538074578079670743569311973186442620736581549513085321235978106058890977550131702744512659567542958464788942831912906948454271319081529463395104757286554937647589054475804703965294182815546068044726571738840562504407095732702655136456160229070679766559253170830704868369003379233507007531042609609112166209351570611630831558966781946329536850870556080766968305887427337799445397721369814455611861673913253996396179420213905308069718829794034140473714355928513300765984966225809846810805912470128322606110489610542732322861746062686719915760763443236981574215421415820502270496644537959382009371533335425958938064138866155209019731714523734259690780068582461337159445004263019529172960763893433990643941006166421926642478448749452988543591601779088639679430512788292704721809634315010510127391912369527127785555858802866571864674922735600672822109188116770227429992792095977985155161128550761104173596071454180934006632474100021998358855156722524204972577921969539088601288121858353401471530185614840241412439237469608388925104150437790304155985871601512681489508476302045686287444451590223067006427099459178321845042758493200447675143683736733885594551854477078591544351501928103005377182197393167227080896284528509792658172134028981586984194591483909185429320668790265540507339827346667654197637855365512221916650432963826912436027338347921605753420430358220269766138497423401224950622431839999197381008335650039030490954352600336867775681232282929495362238154392746325311529436138366616941910031625896940986386784884486995932627170560055252226072750896792355117508666719275242889507789200446680763246157208344803365409417403275922295610438082840774428933835453289202953862925718570591578404783735338282733217895437303674078128193329962957077497737873943223787903469446727674991725807425843085116151828516321343108665083901399380042749125944560160865651486723412583967118447063806346664183243357072750159944035590389261233428307007612925662879148915626688954365513922237740033248423854715855651103999837893429668130529902467631518186855639450502717542685261785867346858332374528119434923838131555564767372087201223161019589762057557228525790970698993334928735600181083264577438801872331975300572641589879856867321555678296920487701567809437824326240666266340045740483647988766493280398322107376234983016507770024514438123104471433806477262656757810924708852216316484561277905443627351839361118838118556945951892507456930284460281003127423110897281768499894242322027934472190572679569038174219124907218739805026701280296516869694750325073684344013271204292126746146387285435153347951916446568383979817573525735909060983630168692780202848170824701854309119028487313914531581227664711567364783390228021601445566147370637123683090992280593956452578810777271384286937939610425987158401433807369308104479161391531649853112981219326341524172901720487193372622772289210641707720355777409408981649619901845611463372425461434639355397455656450425984652890761307046634564201375582956224167814572181166427443786069318240102328111090237376769781074000296469908967936329734529010517362724413829445872507363476016073294354914011033556601533535632170837773215386034999067156158843978809875349699897183939710498300457922059972245496837279098176797252797590056947011671786732486615463730701464866291687196802842890886781001717303430829610905817021425349284878355557820654704548906028417209989128860014705099482006105364978277373129520054883499443140838101016134350627641186384136870786368657896629575782233587866250268127232128420497490025258772349464741342757637406745096482348737313046893771441185976889028725927330813132826468730002757010520560436961571719001997898125592947612275880260895429131995549080343245180938322513960958327413990909822560448338305929393091697283437730256523144177094719695665662447578792433259914641876554383326888016539987759634021282360490708180240708159796093513402997382858464412286511375987373391619886451264022210222125905127895128272344033902760608105561874587386007658226734543831080994071267220664916386522182754863625926350306158849039452177331048370566296943356147461358676130897250356447439124729240646200905709200953878441266047804888482973659359142084496907894998832788050521712251529020428149833843352936300996224521353229449331149696912754008216514052614547015055768309157386996773185317560097236938738992003615088332009086260577564488723454703037717030772810651048661592227747509417351569829371709929821415892551632308817399474386820337097879004943469872694624371293629787595381712649453164712830339209537714783143113693460235649955887372220637666821359679261232019913135051406748305543430548787359549355187073460342664702714612098666048651316649801592785716481714954300503727997963462775303218011940910220272074185843568457678172351116692919520347411456408784054125236423922894975142082783973894435172227488923184632701263994510077917726387658921904172582261454819575472856467096288070308386863958577885324881955081662390621248857683412068790411201140187968063268147018806669732112347047204854605150991853927028871677041980693069726811113387151179969486366714078471437013913141339407352729628982860068883544499000953299749628460216323321741556898027449656308961287624595170355927550872208283017126846735165872867002298421616903713039670713120916713677569579435309358494143672120814010469600103984690120841550289549144340172569424642368488917351405970791549803800851161959976132242692224713772227736936749498012300958578454444381575610733477160341457468915413346341283727661999791149913428287143704519326230062788541963178088441627084307043471270945614642367592317544574497283190235289246437799246143493227095440721382100438664923341064044169041455138340993859063835443092063095748135108462081479888866560647805267398300278425463032494875557093030673772927393117635441660946722294314882668801717909234506605814027467457279723287824741287251357788333905077450754242802709292419309683352733408751558615022332318387663124870717250755676700734485180890355694935457151945455258044152842403935039164971375919718133470056531507044524295527931273306908972889475942237425727241759766398784571006869119971473423319323632429481609831132544919107623844293294753028852427536321804367019351848460108136606491432804786679369129763657502916048605619118507949274242920830447435708565571631370091204742604425763500890808098944826879174423115114607826913094533087637442028386384373995218040906690329857492069422685823501745071977672191235818187020003821125320630722331479146979480688627635992180149258482239056759319257912742157202851816225098509064313287348627420153896287285716930366073378277175746596816099113906746608451753220258222126224241383065084060652982406739928343951853366289947367516357649727787725525669004567087838341178770816339438156709941509067856094821725888955411091766322404660295495733037730593544043422747056595347329422433790131034027299373424702019475800883469218425828184169502741614105602068086901015674994163490675789524922059861558876965473881800939002680177143440676941347957875024921703085198369169957936548917124994516780733951947357475342218528434393035514627238990519812653094626318642749341224982710007879863374706215960710028743510216023457691496672496586676267129034608491056288563036812065415485343820510910339408568985083444637137806446926537958206126988548568262688990272257810533136741092818235894204964740153243446058208061384164099489313327495839175015765702998388437365188831920774065220601647149108355412500945067807927907581790476642416225798155516060249823979660776453572401762102808466923484821381016140084131914918330808450398300126469424932198902709999921096795867027282954609156146410769261867793453300544337797684313517888288079033061335810739683986799575753344678197160531330839139601622204681320015135794394276837017543964869060542402262026893921734613998659956606023401753067910311183325975720976004968013081052582650338955711660740254345878032298436114869745447885787679799263420671312475721743634832550859860263322123355688551434410890000373298809981226638315149261896232890836877573793214640088404414096917521900766942138072789943560780846998419560271807846975788099750800734496699380764182413378207821336001851559019942452574603143788854603051166031843987585328251019849086693524232869304838557116703391613426960132244669791710997051659501410806741179000985270828963406029401582186088428089680299340616839381150152367139033709670681093091922963258567601689133677420953867473300298889602200988344991152312043761497841182494050452950931028669991081342985321724170138596852488648201652648542687601378942885121790920700225105213353507728014259797837886621514190132732840214975014708453130147980900844381645256890312619199242309055614333758685125729055909008085369444552620645078587219877088200163846804126969235528903134863496958168062592167456626876067620513826955500307842770728636309242775674663132638345459370405036995354244361659249398635196742538932647163948989701222626336727769229639923699510017492376118950940271399991911842453441941227722812360709829430859386436852040124454078990727319476633550964351475877390154381215747173977988338200821932012874396942035456804888972168429143497944546137370476300560700989978350330827121343048474295647467203091609413135820315679488597941939015594232857675321415651896124257864789277487796222287493461095129178282403716331672025069957749635288082436508396037122729431805255076071578415113572158036995663748700911355926279608295215444664037811360284443717282578494781772518114743653495191034859947192893154371271027291767530554315789581104224788583615307944004553604225361130628576643489449819245360392374834921006488975476607791799368766482887962743750367020465100466259843073540621847990284845451513216640932167705611346254289311967401332934545525895305431146376342350157815657707514858381658872135030284626285344214539215213888920941847183101896846486580057430249099925649278137147203223168672648354544409646936289501795137214152870253813376509716004494051440147404215250501180518461895707400800050423805768293568823132745734821284808330801148097778800523404581585714465350195713965739860526314623616379680558208451203401820328202250509600836305178639391790448830760834092916264588054108162124942872038831753129941247032579954438641562890027970342579282758031211815044028943478818735065326494795331907445869768118879178809264795510655675761714602588104324248693833350041382032329455528758316162098407470079310025120241951241728041274077209838771168019954100048816924062889173347787411452479418351244863519178162543876487673480705969739347109343055463183344401509067063406046620764938623914682481362271066307517070497790957677430189688437359061594957516930997298335485319535678129890820521404282296475754537640498851728444919189795550139790444874860414136185171922850843720060938830134006135852284680858506983680605334908243955180311381661508591271091111701516922792961263088166160362746171813982536863054052003239547434007918257457172155895709693895781789350453829779760942921222450485975765838881462044789289455982977610872476342812228494626050964548557546013025586258516022603510689495726346912786021971525707702206200096235043821234539446935264377473838818956254131991274242197531137141812911543250836539358533783357913560015148432523698910420151535291430407635697516704005094390142017900329635894141702324306521820272462643019307417644177577466248795744866837380783681477169269925146552155579087155702116273228748687017890239375189636798689696095885086189728319696895734089957413259748368779311360738311099466039773657908050513971162579963771421761538225566287020284856668059159256478538744584163064509569370890144830931912259013442990171457131339685418564971275790214141405464552860410825293400158145258599914231071564732961526444106623584755604283346937782063839911315561899577666946220472294931274076421460005632140449955144368310100329352184301306030957750390279155423326949515594947723417160530250981339975952964724694767014577215054650496750808137235736433929984849966034346610656608651513392273464094949095317540582379482937907107809362308413101831826160484526405116133762372125919690811552919865677231755137014917457105228995971874442272659670443376514052317161629296924419358843791254937718769958057044676283594172297686936353527009688542307069502637958248924728868767580698629384392095968104038103366968839699587522483120359032953444547636775326136954729967129533872975971469546138703695216477052298560456346750549980187219711663509450473989608739246161780873051020096093394417820374531681948621281730477429420890679716665934292652116182008029225352365898735519480249597607993263738750702692363364748883453449176853993700456937197580831284301208612055150722346595635287029665813868581752196310710169408337804940079003846256902452472669153642927544053702889726679045292345294131358508584593492396848871455349454954376438805412985452316033210119054900534978305502581016427490899666696976601901975493116958185844773034139329805822046271585941538804528675922638601335719256873668377220993385189682665810390424956914633266764832337336881367565710065814695800813309356924976015556996198588527735308970233433842175287680162663249433740308024835585337584089741180797661495325369993985394446588566264254983319633968413581844272938965841541841984180708752815583364224615338557693906480311264472273741312437568351355743456197054783982821822661425444435600852632079667873890508592024218698995219892542218484502608010181002535867396025894602180074979187860869135954558281714838835374276077171778528270532926002473108578792795940102598089275784600404779791622432896642388253800102811339817296340841681015912725958330343381241826500894672410570635481471927590402949051831475962073057704479554945627237418829657261253939012271208594542332479848055207231016220016215643816031592366700541333791746093137386017061780742943328860951443692750308607842711233798025672841385247090759029844530205754824500375588744290606367563015671029003504460477907825877029912169990406734180693578340874945287488917777768357583055325928131427083122561820909003896713053906422967522748756324344089519699981071854421948699108128878607646417974708557601004765716130977084864486552694276388120594736679872447684975326702599479320252328273145491685600141295182888193367916947625708013405299099532772972756420489374022811705750173591880831337836894439581137298020903608830011727977615792656009990228753313832429395529227556176693759880718492455840277586700472684729957751636674287034479677642679604852920942833980869009713215009689321189970719843113464647711796949800131017573834480206945541136763596843841243265237475465784783525614733216197860990389202006920592760771001093336190522507496792477249227374504711581855733103168131503443999462368683405487669570170958252478397094587682179858037852987132180748480053552257602933958841770515784827396287099022430088725561368701858575015601868522487856707910774358483039067852346939411494296744868320309323493923086909290893691459922090699871568211032660067381396433468991050857015644324251292110368187312419764368363152511719766278233877086822454039513221874568718423049637637273744224320625996088240192982960305745939100468869428495955089691966581399798072291042484816233806634718844578406781432094919123196923208627894755618511586463600182527909095425953918442893220181647622288964792068988092738294060391666807060206979382763995305905945023381210575373326675687049486800213788995972410137802733584180518199411491419115137976221643369721736304590691085319061833181085730373557211481043293543859840522784271751926624141317227138471282042343529089629696178995519777961333387599731633799460579433722691059747487746623051590164628950990070673066296747607364413548234520241141761252199496558298039680761274892924336433338002922161273235144940772131942298105983509547898160448982740648687929001171773511002745972399316087878624043400521665361983956702722438754713240517230975720706191487059764918627808472427184277642089812491955419585543896495206666173460880129024346480402641147785891338754251836470700937270755021235947491824856841639561386155967531697181625730782054860584633300057601941093325178035318666596703478416053146446150559351466460870622746692904789546155356568757364897227246265714081612915854504803866649776153499557145877230220516887682488434822512032506646133747341975844758517999247779930049627741887561805420509140560655918745352822883556936843080399268312333217012209147420849163404291716797337470327353221396205974755725932893049801824445144249097204584526718297013262124266343352024499081574384000500562034077676920273739290077239103775165134089263407041326104949580826027170367880900500295497085858354676480947002367610334557361235194516859374051993932757313117293775339783813854014649353328483335032688251249307146246438250426985823957992671887612210854317267436122417473101463826701108870908675694247759955245540676174638859380409333466643206278999202452979474835589897888993984781804448586813673892557138803232288375106101107466381428561562382244697083133698412157583748930345721051324924589374949889655952233509863094158469272639071999532672120018526353668468980640091688080241263251407570459945182663885684064844129921947725328449459747343822741033476014013259092808105121701590272973795569096794410521747790502232685279057917645472284510868928635180105538986658721957138084638139705561514218262938585458681120788609383393075919563453433729196035128153478084460137693381969690315600641743501855920226763383619702031751436250017702829478374532758071726248529276011794666289084150561802179618567523565190555304655416030223900598906783704232201090284879649833688290481856469576525070143471472435608837094916413897597233236380755504334945683585385953534298623050372978039815585682303813995860376784536600239350137085562493080390727154167809181523394449190372786085164380768624440006326012754476213526453121681601866903142178742517956539728934845795686422966154383904491579121837154985734510172611675144610027132693885431374570698829653088766271055731515763683250563754111056380879702268941372746752746597414594642463930001155191629306544114218680333810571859900268895401383305447686791096035941793397680716571359629131466240302389201150646402568082291231246395742139543801855984758227384109342084772983936908609095002451786918608267563801779306264499786763074459087792186877935160481501318973863096002119846030305660916074907543232463838208438316900605246620179279161949844234630988000350328756750939009477750375653247945249154000625006715511996874072115515580889980039073404480454812580932367177905121565605479102144671346034742512358996789689570066206519210770733945685362499722652529728523320077623206301065135454809577725128821025641201585504759696111084589816922878945055577896729109211107987354160715002388325339537643523262147671859248172415522767568366067315049825048885185114398228905216663677450934124217286071777516082479862263195393098829216377240611190122811823745903884238089605859079492784083390415010687409957257115915947481041704732803952120230958405567006233359471399556487751325516488910768487183320008505155902005212580368791664880477927494956446282708837690957110157319774966078999021453934080803122118217328961280746228849316015283036566411164054771670207261223431490514478051675448409434556762207599992248739773255243357749856751188120885844835989287165497898161601091381145722950680652351691169881265250459337035808923772811016285801071994392092124845547898611811855666943985437423894217671359325082159587550957118912579847156287211028927972332005653201594501679136865389921286875320918612290846288790558459326196979823480172957659548086195212820121067209492600093425876815291595587283656946229057730524194378134469162859554578978917534366837006073498847396806752566993519340988184599192711931329376112654386253336651143770812196878612769283814926109883575779514517335695268747236394656874295516256763860691051151092624643911135247865506467126793510166875801320173098347821427088831911686191445781637123416223837855578932246776550819510732135937539635023295467641255673247868802613931863327794260598232991014073802173802358858692160322860239538125259038639348229764668399872823617073851157936954560650824189118278348389739076269046713551712431880748956729669719023023439981751038876129083878516616516286582656014407264529698341232120975849156045308262860655292934538223296769889103356788571402285913112883107272651162028390720829987260004784772692714389788659649125848533422749586973982799629211209214558994509452854678247923862096344356944711130290394908311952963243807945558756543041736981104052440997537172276382083032208724374943977649324463615699155547265683269897292800179719463323502555828351001904459499527327997560596945118528359938084373138471050708556568633553576687247112776346898278933658146319275612292407443039544953815142391653209000900545416866515644136240111112411332984037271732472701468948006628958273290252586179302881151986404609025020264715676983561873029594413464726307152987226961322938995254891086914802778115856857768665714406682579669307508211962778163759580283125551520501512632453957379036601292784885845629784639011823794491908841016953153319105211010816409210188810560563047601183853386526938359759965516906289656154765469725536299575145326195984020287590726947779957514609339892680207280759181349938013761057502184961520139794246391123453368808740759683050603772910186156834268041729575963832388590528825262069525168303722769525505853936363267705743235630841322210507257096457950842603052478870047284016672335749397176848424465619636696287078894426168205988220286486928236323459946605666215631125394362584889641312422237393784434169681822811454209024033483054582255733609971917302880580327116028356276950398840023843760501821699416249850056388206341292026166088029326641334813122182856785311522034134989924475549442710986323830038638830157482533828246469895735228228541338947056052645400312145945249296101112127168617573725833530266903131922432165824913621026298450662624161062820265439191283551688824149762507016920644439166902914621276327790907682502642325157075827876801589191322915512881265040778502411506727230918292594141393213643284758595086845344288483344047558820299021580722096622836339841676376045554526567197138940353623206267148911828407232952103874662428333171620928329382232892491822377983536609170394780180397416404096760072599262603437185357057585682060374678382240991493560528675031884419364557548052545927299593889708808400699398538731281958300137122364242545416390080134462961986380545127099958463327300199244828108525133878342113738603159745057332347894903452939484428630849717312085635650507830429426835409848025027912032089017157533646568591609846630765566356483050801695853342572445650465465324283810506802379886944329956921987693179376854114241174371037488502259160201185735638598104398035396502232552836632270782592230689023718287511127879689397176880509128989467331117958292453700515431526411036882881285256668574299649560594909315357208940632954260942799612196665319878740645757735958131345250710019354776039519927812241992427894349613878553281020022335120711122673670325799459151292262077967709872314029087305566684673428802604994093413753635354193803427010810125663685660881473741059079714046702067224462831536831376938705205815071125634716940646687121652911550816430767839223712442777108076861737746436837509630341522533087898100954865899692697641015037292916606883835051753672327936368112910521674420798945146227122743288301587672094272447315841381318990870069573878909650402156615642358649006061025274818127000560827526575719544191555256648208261553676025055415174979493373868598719686791581607600813803175026808340812769297396617380413308954073587751634988319239256102976153804357280399845591664129240646156921994632203840261917405220151702669166049511224417205939286108565566855632181832318309560240282509768707216485611959610613815979450145685227432853770053079888726790071547345644264156001532483922612688801201170677130054885945496832367765264521108599600288640513854645073059773333487577144775550835882138434206356924397447076803164142690221858277924204529522004883297344467472394220517101464885748960801734709612233050316120203567182677257054435846287339465228993523574850211482204257430951152242050786650433837655724471656966959196169993353852119599063759986678303367739820497364758220234036320471495374875095554843049602174112088493243917292494552377302840500551216949966589244710497071196192309626057213236684064535150587138244342028943783144672308819938148954663643130236247261134272849508974359905416974055139993409187963320327429016492577857076685795700396546897128960690532015773473843388266290497989453373104217113696856409066011433685539055358974909181195512810078074404818760986939976618338166955445531435639069127378297388608192994174901433205896069797443684535528546712906067673159152940676075954703821348456317801413120025964578781718799152986471681878138317634509024795339132569404933444720783533075620394040836471472650517098672031552955613176945726196949378322108100735790114400501010854685638079236355806276086098848160245619009801551445294999530698062820101761425518321252664859142393329431104624591090733527148372102729797366711703026372694812794250983259688575405633607541193440448262482499861914000450982924747434450775948318491372478043773435107756286285587036008319162253805923621012870123637478122105227713186566272508170244040649503256935213460011050934665487324274077849004370395130542400939970039727130702055888992727050206315844988562740812470307076353674402426272415383882843920054804744067440619510650012136383204337039855542986379637425402636390342792920466763459451796042848948600049746159508037069032368736531692244578877502284488462722524907328513187567545947772685360275803046361521102392094813885917843695403487864822507514531278139409024566303142170122004348150899063077547170355408545219911383884764533415691082321870759635242478504929835828829604338795547342065923225057887331961067642698335376171161666561438574576409815588719928760173052534504791293897294419788404812388299857486561123610024348471226884978266612184670165682614513222456327554292005248024017212266785827462847587483411825295673286969904823514710371725677067252675168521933968846979508300602015718209146737332591585392760413947932471400468600022221335189013830285127926744039221412782686800202049116604576813157258644140656047553006447618118610491850194491645328667167664009123330843167660653445730691640250211262848322191507852939988748416364299538287812194447567389879550735550986283035587390916231464595122604477136573650755997196149265540285761604487903579468030901146636991068494160991870092935490145512190875033893105035060158276208296200920340630516657964493794905321901902339998091303049513419752313655772312470093249663175486374212587765972008354061654400091206570412458948500337342449825612148694554623027085377552979818920467646577167294539373922937521600557572266031245066676666139036729805955421808825144728287943383928471763766149451316248856135522925644004554752134067481455985395107191214489560533717823070163985884218606575255600642029147232501067911046218039597202725386857725420335790708023076504624372072118160833911040698046036378446854993907134726270966434548699966757865505271013220966583596650622832572529547572990541721809385426950658696115857008401627212695146604225142906028556219815232015321641935878098438219023030490813103634590994563518931156049331131494112998628557497418255927674393272609643362056594834754500928420740152907110147198127165713217705140613554186401730675420797225437189253125935285569287621272773769478282601418405695780691816693535269049015536274840707850995673050713634907578853686287963672899108963758389485592501271330766786126526592179597803620991773610218543941413130832422850693522846585616830709999005893951968133270084598942659154267486236878611831566205472886423399758261194357175554100857736736843417082780654005525552356667688431099844096302277859189626386646887877299183517679310777531511273880336406496077537000237529552066142693143439323254986846769887125913890615915180871789796444263011897201730916465413381155437005745724354875297635646156898997340528446735652694620476757006391416683609398916554096334549149166837268080076301966293084384224752073076586642867399251230767700794775054243093331221447126079380143523078517708042097411707749099103955914999529856262886975707347816212019008391893127861678406484141301585674438520790692807335597587036321159666825213911798526738066505850590913058528508286523531286426623312302180346252202560963478622126717101926724523829513915123968876138303959158972942899760179648826221339709670381815431024267535373216933187436713367469666641915316541780150937156494744136991906787696800513937572021368231027470221020343483687146134147494434686331521256171733249403183304029691788057743183585502157748396772518927733139875134579105861599166535611199298600595409280738924415901448021443871834177124553242510798517758096061460335513709104089620539474538622115562022351168591145389348673717360471361479826165763400140427937742271968151945167419790407178863760702948169744359666142827963116650774572764613023590098188241634968813312229832025274547706865788502043893758819795526566395374502436253277966527807876554138108667212485315333892059390361790758638901495641022137577150305674695159573407673263615858898980195964860001727955870181513333494175503148339139823071815937359379644277610373486679615829495229672235767315640880196708321953485731225113859292477352913596599511850932240118331364165800984103426777465686855765919685743558509159218885484819231888087312795289528314792437757810549102501098593113548881010465288466497167921836469525143163024859130290777946004086521472887671851445030067707311876471315828752067346659720029442080790649185290201906558918330104922490401819473536438337511207196459270936306191545842510330333541199481842685341932455499628102497274213640502189502445957854405975040966630469392689607211153370688021698269803419988179058542343857117552881019561357749541090747262268718021679165022810779792598635641078223332104384860942427926010461265700869454052811747441679753892967434607804733529554148626845940894176502131101871838038534079996803676642335292050484081279467104951381745970050877373395534039453225077537728317876890292377087302714290526365456318121223762329793856390565150944718701250528115751692884698787968686472666687007821555512823207118060840509806150038096128103983097742375412292634874659912252921099521654278798447053641893038273792529298260180934794066398709887277252287838349963462280752253962864360985045491496318599641446668319115898799725946211020296648344275563335246756181756431501429087750683705696268478734261438367029883619526012177373890950970267469221941572037222686911495971299397568600303942073438679304819607800362490315126184316234447905953889548754626334080279358548241273436810484289127678276663545829931351808112190259748306842995641942734403635166012377555149589573964472033536185627135261479929437473444637487609313131064111512555935108781791859365627228938095518775066329644894763401725144000485333489622486244946651776634956939213438878648207076813886674178898962407824860177853209100451775463366582081675287344235554289964982687395197083065661103678663284513642413044273857441921541170678213263584225012552946524511130415927682127459002340855097978787343815785526373802907259946086852580830449622853899737102523908754251125292453478245644883156437928879486036725750176376508132599281931096951905369624736330815332301712529372978614298729739377502037350538438487033035773526805238822799481233337956409979628699670305403341541050439149889536875623682424736742061435471040080493025476529939787657946683328377443006865971382268406344089161373166171445952122713320014981994286635652160084652248690698585543886744993472493670961251075271232681565236049794517729070076807625183897127353621176582017385598414037542024793287744229697041303277856967547777493034671394579674257410183176627024271461475966687943419843670444141831437281853859511502412103156642265824197904178195523319403674614118488143835896943282437117355857029164820413642304537041106090372952159055779035836578923417736060298139638069374374547935890567257812655152884662206876588220003818022468027638586757675709673206215406037899984818596801743940322407246480262915119643797514682814852772279318721893880341945615964696701694439985610895610843226115807213350339434973764739637083712330323549982869149627259281144756097906473420283738580433863247979844878531243185208748551113974993406093228916731606820361789046035057686392779664078949902775376394469890447674000757681311780733958209057691314311033450823194466738657349950160340107371841640913515931366715106031017014595617050000152309865882120880084924176192203803520411431019604397184484543832220730589207864745451253063416071729460659910537802581077565084700606717449869999412473892835117658620338676898565511318864078670260197323524258571217323554649554099093033663749134184747423727298789913666127552974393559952314241030748547807891788642954537665674178898421791103882575439065250602664395755658084193468287961916439591060546016845916589741387646649688347921033355348787047454217056305355271720063418032670495097381987651295607578388209598042679949185050123957795090698266013657034750761858935256877785602745209278462225198536227014309388438454713947388893287954961666974179284038397511540449893416809289055093913368366805822843980179533643897235682424556375233492508778671171509780644658013868885818539607725087754997314904864846904682077842981600141335207885330690732799179853678875755415869241995323739251545829104483497368403011081516615734745592834513888740628847693873127409957487287744781764527873631191769725315509830992170144942095497860094222882747597892073929194151786224875618844389995429679474926969234331841266496721514874679442844192090972175611535173105739746089797932179319220962192710136717802516549855422972472435407067460025164394056358357848726682329498943576090124692580114521565021132991723519949624359980726829836630760329022626245606189848031937129820981455287861649110551035311457872707231855122413826305170288184298010405462972140614109197198202326458826000238047358437926607254837438254070728594298831640981038521124833154211171911372874923722850936763138728919270404539867613330816328192177309315332098260891305413682968475145151025719738668706516423484205113729503029433718860764556285456437580364392658094652934965796163190894595802026712778601034972951244020920029295765452822466133000910649336724305645939906987111270512613723407315391549563531069065620428011626299798363368476984741926040741005991333756775053807621082301693965947449614887965821212564164588758166670782376602979684261442812504851284095856673770158097559398808222393671046271535870578621760264452293697628933990336289457914063215464150686059579850714911196195771680212645229587768527968929953634427213631882483288278976069636813217885240537736222711784008326560173655505555078983690850224368624531053423567344086456476167702929608059579484311113795160955670257577347175351161473100961253180627185939481075311302634258301299055474837764272602220487005051395545770450790247383924711839390277763498830435834434057949271301877762555774708384383622420695540580975057893998411486455796275315649782466454096671150018571154080106570411369103913914860107373813862660710979924950252069484514886299076415668337450201471240482775560339921401262867383304253137547845631061002147821696494983305720855312837183806613562542279692139853413298659734034072098166547491535968273461244500294608325190117182832631432972529533627845824875850881851828908396485200632563009079989699397979882437944016599547598635087808405848560831660215298743882128883356759450207449479570696405782908120358707167819646530228779414311501287439655679090832504308861722179086893923931751491432394584071513643022109127194339740028027620932517057369329588541689532691711158085293459606575619290512439129743285631203570928644298522609469138502917045337881247248998619537224508053415955672368611845535720269043565683849697790292716255091796587445225517960199746703561594779203405017933474593457693518156946454928637044440234757123778911669096626704013339270095035262481875210607857536489366528977613908738978225674111364869374792265542925320751463965717136619571206127319508702993995540899894242851124109128969440256942179333571019997126066131008062169203189452334218156773305034048661201598774102097067393510032068159596663586056293361070035496439795590634634396678249119959514426593191749922221728096392960621041974656118562953244662217352354758230016234347174864752979922713691142678383904932162485171025770660408047921148101369572559171143253585327174483930257550871653704742669088075447858116994719404504835765825947710978740969313033556816467624543511174092512036636634515355801469140701866345834863757486056708928621314622308125138666723181869894506313936005266461766562686725718306568496718984649981715226751384504294156289749603776870103039878701948681913427256122614773664797839995701332355775201515847187471489026229521739984601338385096339022284973408628756215540423421227524022391088507909604306667284072683716011327542774264554646625176708451817315044716148644058189313265184580550048484576032836563590630839862284137521056777949177954431882937174948839961304717391752906430815306721828591134097018815724375519063448542911845805814836083776648301753995210783900484090961810471041069291797891199554699546718475982161136994846705870981337205184825879776108370603169260491017227071270431143687315428820424292355899347937886615291413580847130197659812495841270966308176822580806216164853087299587457080204083377465762009016821047863183426838261056720905205745893309019336893744022163488789422968299252491193733267518561305534674180534587435160523628678941691974455174985379548764788702129431496976326670767219962692426581460198468782262999968767177520430049041699558668581627119238056599161818626858712550308341857154251137865924107070258188875965238399201989219910376807703256876002953443431218093768867928008901078153729766923365334414972106892169260784402789393328063092554546101702618800493804183251579146234115149685093870655954852045941206712900894796296355470763232303663722773407983079868621792204913242981512764863007300166378348732681683938615307318935950359695769856189656602367670711690552686465718000276654832805816990226007714895499494414316746152979841373003561163470404206483051192578202843194911092096850721014401125413266885614396459243210536252356886677688433257119596658225956340392311608396622560684037471836044994464491235457931050858476014687035034878763872730116682954107861337612908493440447771287594018019043830632018402399651538367198591141164513239904546836749399713849859394721071179920746933060823719817442868017304174190595710875295295453119205161134164590960309465322870739296591078550777283705713874711196373221221483207429818932441423617025877264675318401273404552867782741858874626942943727100402126822184003114139687467953621275897383098210752976546460781504175929678498672573953884304286045850290809550968715232893143518430067936108105140984865427187085903570363119101744857696726811738958872920818315132401189265054227410980378347822686348359492591948431696974692121990012342131534014786324921869568877627611226466959444772594989262307196242415516100049970430435768166426346185408477389971871337279544927465219762566897304211664484756588497446472194575818454323658935056984118703713905288783549351580182188121193195435977975301679046173251317831427575232042396046682243289594134419637153742753730367243489887607735063127797159172953851244061759540841577490146890262415879192361979806158559149309205394125936070985012676583353061148279748067209075708271629000506935554703501819857053582895025739731879174963803399536102975704210711070992130620707240789263749975094884359721040284064987893246459881759932799247464296749766188696442076350123795177792442351337338814807455264423798584526762066440910566509298333233274018894102531012059441148230209266769324842006635153758681882454319973913471719961587127983991149003055030747056897687328779897572655331205223036710982827786325987212366199411777120294559356715077215878474093692303027748533644284081660242859542335903583962362344038275818540376466935404290981267238912973977048975462242994322869122086292786044027795290870330666940734220058759340928288834455648446499568140550948430728878179909037870617620194216659772509322887248950287305615368450358602050880834153074006325527478837879532956796719673022331581368507626346725820580318021359434263502542062969730371606446352853553161230136357015358303235032979844815304496508031063754929944184593398795696793867337227926846513731657451184392434234242659030076717549824034028951007677861611440653167546418288905600456615028895415260452649855512596780675447071314153075267884975561354624490823445923215956884994857906125957876544776442551946525802963000487517242327882699359422177490430169701728739094469164925729000764600570964178648311507962796402434044878656063904605032643060304275072341840397043234825176873507763682326558722897255249087597155181789700270519395058530435631161841050926358043804079000219689376129842949358940552110279579369943535372209767551486753490634821527148384093879894586133255386742313949457471763833742195841143495143257446915422678123766148113766017711984113797213063561818098872270681365856716125693193837139545883886419873654336867112452854022434311107607420533011562840484728079780728670744632621161844598262366757014670977822365520823468777929031340236422058102755623359454531528028580096687431295421088616672410520452673403851847433402233781704807515664568902455646152091021147053191998567128210217277353218585068641535376308951370870762086965296320686916093665311467582592993292647640325925437057375870134003952185840226787224951284659401775661167235652201845982358632612774916028073012144638570412446905535329542237518019810235395369229003147857906089978304845953428101191468502573147930017691390200924392201049309849777557406363042852937858165333447841640801652421797127032584697317818326409069685138654702013157648597016303494099931430917434614094176141369223810477469538639030868654650097827986720780393112111203442559353731327802999999978336081240768628622586008135984177851065864939189625728431566688746184350542059425939156643878817659191226565507366588428887397645254836101094842852778552217219398001477061536423372907187492889295742442769287551541241017551195086756957284229760904095886581947570264757051105039505027598246222728832503924498893304128530363043557270725134228064055902985298537579956634717846874792862986216623343840311541076588604649656707247888931330183890496480138456720648230703450933671594569862854440017971164438840913633505334578276588632593785067643576438975629333082090960373950499987092877639429124217848560826076733377885881134414278868831432087608021751629756575003143029763267949143959713203957220551250913942754946958108212842350384989944974743183525936262458054805197794494498749872802869258980170501818330040066629959752482656593870746022479786490846420675941839278142400985440671971030917161045264301041951195796951303089050940808279154072681055369558038566747368642844401607874190244311972227695034320741498547372923108579495938425438322272180519182007576732021806989469502323611388192173096650258271762285647209320649923076242459755441152578366057608730067540927748097703594061558353376910567043917231425906829416211850673681534518929529233748637899472357778494091462402196713596388339913981768941847143785911231248475743686240176033929648891668694086308760720485627380131214709101192658346990850726125035256895270481340613553366308204899310989862484106930237956409424627906945264880530621228197195676774619629106515996302044888686658320340908098806283769734578653544624162344440775847054236905301875421769315146059303616389794440235305331465871552600508308206132771945564010999389968459089246415276218469026627244462431983325209152724930003642173432561990679678908366222221876873418737833764697537891449174484276563800574736552576472538234887252899856124260672974855856271003762341685406624210440450282203959493247578918043350298438807045612549432193870447415995792494381721787250431773111975444469912591659775374869045618401926247779786206636133127422711210872187344142712082038315014943057025201336912685759744593405989149953242009799856501997114823219333815831621936850045376375551794185683957906725106822948462718162928100690588966510723652371700246300746652826658735339816448408282891971472333668263259067403775596184760858632737456560973404634298639012072604287546120178443510449205558300427089894894249581447754016352757852952368749999867161416335008733083027873126754106956369575252830280768282976889799032047748837157443094969150273178529189362839534549110489669001361935846176512819872066344611626443353069415665884408634656432289083437261202021436800748990312769815410602141148096256889469344287523133941875357571119364693764341964107999907622841852293323361339543706149309032123683129531656476512859931068251299146656659848733301673076771119831664216456198952093222819347575413291673003558262369451385660416825950121471953602258278031602791008335463441817847772592678113960943385387382725542478896176427389559649718660663814682357293688926156120330352665639737595111030391617659767663175630920699671639878644793937265056163989147270777080736895384819057451242895398662254190501482404600534990787313915087236344246696921904726887604697533947860701909672344761803328108016836136793010554756676407349069792195626693576896577984637677871732018290579990718911571277957156395037162690830408212645968441576769953399535621830473857812699235499823624342300187640859156003063868275548376188729926746958066657119610667133907679990748423122200184023811646919402613064798176130318569368529781861767230984874495254636757312593056168471921050791465411085823599430924742117608275099299482715734299723632380277560172388173892411821385809302574637731347350396942537573874966926882483203967841292751344374716639439662270051927451631833508442025493962740558007194290054833258233400683240284616722308860897423952597845176467182047875345426343447669130692580820086545676918712598387589077956796722289259327531891928847385397490442936271090146105712099839752656166168737329811066327347513296293284334520213871849875625131922468507301533869220057880342975974704243020395937697649006730829519577881619375151734245609170553357581244478631814228706065050372502854298708471823321533997053497777138077840952276712363650506270713266765521481610287851810996079770168486243042987381982660927395618530266912172186378183822055273563624887320079177415353417255656929315068703701734009829279497297401822827023665977100344996152593893207799000213141670072117607042659556720818751207615479539023127071529939204813509922118260733402179614912457484984253717734064752646446574765800833369784296110473825777658723951213652192673061124533054008848663020660591696770908847468315162604444975432559654196024615713312544115947377071593002233108045705591928825541556059639091744698458691341781242759913571306079386724528228730567038704857273616989046985379312591200423744210894997546292774855874283473600588140784833654815108729130009661056733754055884490930195384338744595657153979619352566416666371701910825851634789226868427080990534983879902466175591301747342864625406032642255231980025628365334872941755107653114485692505851456721094176713045445260971798271707829428518237812782913078923421744367644450265056026395044983144178829190067054511582725315587778608424574458713198700299917067587004561991024410520819038038014821761586330897824175685069982686106903570687474370675344559813252745846558166682916732886629022492124911694736415337690729546191630310380101852357816463187904246499961657613112111182110543844828620304923775519172104160245794717670410165750118971627292640918210671809075238669382566584109863558317045330335159833737450856041619049160651863396044622421452209696343156865648054151798032769801739744878941117971338062825080059307183171811363796607625809062181057292235121710571500512111729007486356190196921043788697517107908802089961964695567104947517314280355086640796170652862366009848665927632551080695816852973919449319531342103428302104863539943774422951346200322873733789478986106835050638728630447433431933939920101120273757425322964041160293526477148272156755579162536611055015984247926774170884788464417708157622260525177877704517580695905056970175142920288640561584713778697617556352670759204039875601933312860302960866761719026845178758512700370742077040417217139017368276819094903535539027106794795262098356841699551460286005914854477649511540235340382270579340280252605708391581660171505152512082461002725152285841099857288631346561172625430899191650091582793656597798430184094841789598262667305541598819967846171476481171107249366805967396732860908282101243631691263012047090999363044764798598349326978342288005545026210548262723031178180673673097860645568624640186287127144804655408710002715670076073243222273167738551426039798464081576899133155187843196747045217033468122243985268599849895867609898453269771781159663032285627827857282881184275917975647962536217139954807655132580541283952503245034791665672807224801009491754009240011587496139091804231834799236576368575334189494806987171251609844905281060207144498079805660081532578349171590440055799266715843040534039361141122634432306516824607781815750226105301734769123325102753224483116636442764785880229451053739931102608955037187418163388625076261222341007733737228652983960788139146978315459389184493405076451709217795666985874051056631016524434711848601110233844151314054954102364253621608927123961942361687461568585822274103108509012758850983887190979164132373055969030881154679919200996788660284484444665182172243505745743531929936513774341570398607417141027760566954258197378543542046050431506706471576510273866140370708650180945103915040905236100406671193021046038947892660330662027664382691700931545628160625430059956238179541777096515391282152644980068973896870946691868019903230316073867863746221489379328785947998491247623045917821254498589348328329521202435718406215603060636342045666198978241969804218476171184003509033602077333866077701763304464836272985730144582721975993913266506649310581920348284289079256221050304158705287480442054959856549992869847500054784610546661047523449013462531248859458434340501927572353465807913619480440249234394646817548557284886835953985912089714501516870392008771530566203667476502862070536499608552298775523381316188055643474067156069229916732607663212378213054068019612192521844911397840988842693405164846570295152701110536145251408156673702533223756740289405657803777334245926083130319368511082719444143588393576087338262227121630572765983047807018353787624861933361022350996623215577547906135715081533455352341101110940806835444037658647480504439244495071201764049358330064504825795735010426632152072537017677382426985061267880256073515709612107785441232277426454129792176904483225326721993053099105779387316892387402550765457875829188093078916023700431442462590694793543755527454022674938445770291649849654528562859650820465800588657121376599596224263134364376978800770981660884682906946114431140393554401571436026639638247146985026264590236809788783757807329403189214509307922783780890591625719298741006347843306163176002958714079028731443716884483912365253732007014211857079977421092275775001900108082723359879917869780157038724555158917555576500106654061765199623850853825059212886204336804460559868688274966451027147055088459142245384201516145797036481129671598506492026488719565533346211491700072341434161515295797097629793936818760525938697828200600364413650552729071208425174468684951203236796734970775772115884352614154730936737728978790925359510851237032430525793299420295374521802834661549016162104753776612016160160795109771080739059013429386064988740912802781418791729532692724685494512049844287496370412372659144738763267249137561372428146209388618085689800519643165058419989344574073106120092537978920908565626681304176810399163536960267691583850943344916175545184317155974342008501493127174161447090022005900687815142282461790807583238382391296532892949321171190118009615582768660720242165864896257676563692621981966152307739238806347488780478877617886283049416139029518939865730895131448775734001999701837706241822519209733401360166879633602346324784734750017090541190690791379553944242967428389639191737364394999659074490482346785214479029440342000314396691118506684520344478861171860769373130236494126626575758237404643751024105176667969343469153106991417639550553684591097297909055346859410270543372965274167446092173410059300213177565083438608183403830273511606865691272734423997737389253525896399639522480603001725093179534997465891946916048508022856558479280775373026915769618082905081558907728355945861512907426495518683815538985795584364681412588615549988331588288922243578666747893817938877635258460364164925566417924816319001670687635490352096795994315961759092996461309863374150662498219891485559300523246310604095940695544987245865128614909364009166279248565658249179962971337798200680395617986128429445771493908545337074228015921041016471774089092421508828685157450986341637398091242681525372771162409009236591108842046744618368557650209382326746258376322964208070810540700652410901549164096478606514274549219521618461626033487943634580468676825833905366855141470351799540089500230437405456626026528503899233053712154812980413988819764341700903695195953168206335737999456657412676723557346693166146572066430672218895671617778787459478262520512279146125384655809991554110395565709417534777490273918539004797573277476682026294930774933548850557244625838879165654404049533720889802954142440066899152034254015424837965464454134133185591936699129973162589983616399607251298300800207312901318616942009597693695351286224166185067607447514769145694739478139875925941105130230494901530542747008083727219368326538928367801226553359077418007757666440884534727044796019375337021806349821146644381866846047882775970726783653597340292326100250945963936360124560155931105507762970728883939791883480700104497367037781062856739941999010086176807907891281689794666295937067484192574086323325626369760451892621772940376638691955199047641017110253092907810494733725327133527565635014227897257873315209084369926282246319504448466758543907510482026911171045224291406724079785631844468640346525540194862372194968796202655919580949592998029558594919873348118856499842617722861399767862270885340826046055666222373484281602520386640667981255383983547925075029058529526614778786329966885174111321170670772183115574087370219644954908776910760042325596121381738296008986266133069831811520814991954608576379076861556127378631351941193778593093709665794906453997598962465192361127253772051308039321964396619767049323608664689294981733896769979946585048104730931658256905560442562569902854987705775258155318155667761352205501666481566257309433402382944698366918615347567217540471056891745241294167050452407278683403745938536942046557795723094589371882831661656081768616697001787329997304703925005230422867641000483999890669046381890856437814065495345989491312059526327601425082151585648832008244676383627765833930687150297220428918030772453550100639040133554760734224965282953848738732170571055947587497641139509503976444883454685756760275019704507422507202477747189191459523522450430129193955909768654493910017380506726656069011917853158962633402495637413593011308727705845918636591610848096587272463427918499069961558262705463511775018503170618266934249114344291457972929954804704865762873677094169100102577732905940178835698179760931522550854209081760834614138295755837857426552387049822903665147162988752895829925197484450123704372889356351498438652812394558528555765340305223043590666204374352798575734376574653878907892800621821038878575611075566239632731971320235934385278775903169124572400882985574369448566155936654553510804738467264658520255772135881450758872306208248089295436841350016738585309508369858895410377348091498577934249613180134127567659111597640279425744140998182969076338482349711297415413162050641782293987747938999129743485718174205919748608462093727703222569438644400772042231540015624509337095339010187639708075855192365419173061474715887083545870483338836358943127009006310635480431093404552787643866700769120546674590534208277953398489864395013587946160246807365810574091856608936716301873735647515679074187716133594871581124339618597744942463252316969218231922839768659080720144274199591950801717777745354059779100231527396641690351352802541290430403774714908985810762017154662622614324438782103289382376879669686345289809659966171577278267361605145446826548917697009887038120921274773376563307539763287001596986692382087777790854808395773347671416206508799116858477415248085116573734747228523842361863263500018900531523287263088778969081396077932171678053322909225208291073533856946629259135626356473375112608679748830265419160369592868812703323523130969706647365414331474771711798432591956690393892872563545993387928105409010638774194719567344344958836746620256119080715638371357189968845132240634659378742755106281923932653284779479872067713079776037177760385885341356239030348890706944535003190958024057488863471212150210484728242121001602043941947470040033519193205330465441380647461431790903800701810452718172059966645220957448341819214145786629310244572039143322030961735649422461481390416117173951925382508676073995737550859761218667145366097831796935412315917901037191963549445894806476633616021967662452855476765916968619223660527580748594524377823953681693592848956402816058935936386398794800570421017442162152091938851969623021584574804787815423806477286813697183756550428417748928289304345675064404782970059301425126429085153612117963358277226973318648595133779787260725385048374312936001787734802929324118840836703027507240430153429567169711372293921242886689305666705440604165677558696462330183854411023989598149386953108310836845076121170038370724777172364919584428662826136639251656201055906333049501672155408810935113157765479541647176235869943825749535269715750423526945000397092908400622683318408120920181050369898706505966162625108872095897945457348579522234940399518908704705178676736591817688250562698926912060703003300282775339676314770870635028150196710947757446898795795082568161029486727988703801067456775562698283131400040072431412735091189095836288040413994804321778461424048232588582856449520114176113536325324099170733007802443398113083453828074352763835635486067061566842149999339153810306873619056189308797850880923174938339056876003825531541949491921637170440139819130369629779985846493253720451498209624827766932602754591606196297332956035439688156555524365334696412364058329465579401329200643741015214620951165763321161973561283139620694987320919710393152664507975856263030809622573466200331104204997684199173452564366626821428350342994190380628031743592247453164135813607812600824133055703312190863412643139816630497440558291923587500912375591390972473967817114409355004404854455662304972094857058870396051198296746357540953949119327834136902428276036163010557681596455938230742664123024047012087341504744831182983342324863360563315839188436276709276190861131731012973035322118298576695478492092736829224158186376498231748503009377247496078967832609244107522916728557012183809287333680312515987665331123471950923407378532973899229622405111758770766824738659433556454024614522485386375106362704778953284395602444801135795055958112834654247930788554207113910096996807302115086724374773589388500166009188300051478770257020141172540487521296617678318823020095484176742378158235958418327251343247170037686462225833098125079063111382081767355840261460500868511819055089077770583496042748256030442905297448517146333430752001804068775692527327087459179993914015535876575203309134688506362581433884349221613501425697052194480150409154839466283953720280964429433320085247692840243138551918785805881647312969757717311055272261473109941727208490914128498999702946567424387729221809359880937355059431808895494436990091605928738882611894627644073969998113861881791289367969519970175072282552395356055100451105904126522890156615890866041867006942281523881899107410612635668066707590959397971919965251359642979159532168618072014105330331267146493111012044431892073240439991674489221599673892219041739292635120950242234204793138160586665450092586504210483700882887293111618214761765750207012719908763456748795412128492666685663932803557412378528644022456685301766153086324636971332638661730646515113386642747464776713145497999221865632257916108857559166528022841438505334928368690996527715362832345480330150498685154231767495078307938390188927276664252860197714887473246359818191384517759758095752565517771944381350676645862185551149795727872221288796982105152542693066889702930805400020852652806273039637777873440293663294725729418142050402548771622789040997671684702388193885495652154331922032714972464135445905452802351720784644451128436076553300286846615576798562319567518296473748395507054911012282036891194948920067604768758301933289535826802519335811607551105441124325582425399269559059993353166621193413891480419671852134379581348915045520219368278586300192948964542382962431666165203780630723445366353982426867552084610845517476891355199869813869479328841361452104793995843433945903637966129357805360569265491038217068518448049289982980560770994700443551818166208245245347479334810270338285282058906302866198375952652036716103855501899796337056986487252318707105820669459287814773807523885915309331972950980174150487622428975220096542539202251429437542168137474776839976362735823212739192390304399902963607720869039584666086944083590589632408201460090605055245171406050641761027467017875114801832539485170731063541001541553821412228040302999949905785150691617860631764882537074082912541796083011024568685726128240045192460201139554317598326176486117359530834765876573406293413649539404574460023524832100924448139928581423356941942456457182979084273260453305807623633123660257096496383266756140997122210824011919201887665192627975383399612684724457814766350622366349032423008980466024187599804530029274725525153753586257910909686595451190696874291012213717584831540878506343053379536600280255102058783964289526468418361789686075952976163623444661381643421704330780223022114249838299367210578249760941414571387054542134822096931994821215204615484098275048264377170475362600511731832883900675646744304212546294509300135632248724981368820449972465504996766955819692633514373789618049401332483956355091966392923372026626646249745505733396901743439186326856448697438775846928944903823251986181419180432873343839595925306645379144206615303530642272521402107925171046509574401387316449931809020198805964686410563699921938420272356079285165736048237404601865428395307624571832184106394106554910111437546432732443847493059508388309150710187336654484088258402916023979291219703753354948118695365885485794535439724314349833134116474231426921199148423681351729945166926276424857940663302848684347290217737132099416803487217616490815819240390578702433291495111704084591535120261030350477602269166794670662041973586131769804278247048176543609480647549578766357107948469890223519547571708951120930471184833280444717775652161837387588853011782396281708246214332808587897486877622628669935404461990829828246718814114197938670588483385037086570705116346832956747156092691497954515620855625618517884225630825179843937597004652372395558930866289892854286166521017262969482287021547257128548492162010299317136761950721031366279331182086377146261238038149007048533468242312288921527197098970830115411000678316933805454873414041529572808382658501984587032758381682977689809748542851846107637705204516094046204774648908424346748661942927136583485218222614705826612991358733408078296826947801846075768216104394814591652749421047902566640689896147491148322898204312689660510576604141721487425815861300620422196341475034251071463006153584123213458994841519456423203145722182167416804055782046123805363039217884785296879500323202153271513412464530957720341931862417785920550806061851555778970566616843297573902819227029512415142651324923800395433148847843072030176043700612889032358378097017735466698990056336577047262649321567939535071665303023515246209365878420730730815997203286921691049987021728450759269041602520149652272623494536483147236309536039505097262718871831209550343105058274602840755610935484225221512906399104818631485802968608735781011359062740702994703601347355628089043846546641422815202684382361300995035178201872215574851218447480828896312506459057992790582985621662164240473304060055567867222593087918414042703355904917793400714782853253103189599935022084143665691376984947592652773888317906105652612512277425264752972610720477260156718032103084358091168055849208405505625856234493355874567868150557390612748520291047895431532520829363479872302778457327883025367525816958895042272413436824461832644783042075234955317866548484100173999413570711081622400786922820240420084106247681601277501146298074899799590007169638660523366642949509994052048980479194336700844167598199076547282025848898942039066274639251109280553667882124655629735591453691207646856735374870154324922713584087831209399965297948602417960745171456028211336802798630548026286836651559223314851993961802261211902749457554462488694038022674200035737157238616091197361623127639563936036985833526033296300302535415671732478727934687693645991797544993682385777509409919990021001381004906198174986051106513890075052985978831542876348713413946843637895228031062887001745702191482521472607481496352397095775242977394007192597746583077888594311592634170249636913375431424230973823590943496651198014995028656719517163757917651143767635512529441820896653347409103707933731721020443561897559279081414994693852630789871066910116482699906113194925217471446494072975046076781153305970379440314475185249487711901401363312560133407757691498065338619495345687129620555222226497751807922348761471097992098298093707984454135981705766438740315321857541377540675309668178196268750447511122167701115260949590494878353856055888463527678807202408850858974635064853955076958377144815309176330572256799155245990413676846236841283499450568889615397077085310958469773193251396665608237378558733785738756333630753913976672698807388200732529168270396636961578440101485900632965182007411122555922624305821328231100446476901179410553847548890639014561728475908083035279438393952784078655923408350935519215591891564977662621179552769567532873939032252823852052321537222715845541207167660080334818645442342280465837021414076324954221366660422434989967665283654582546667506347539986235745159974497265139815467917308278199379774638017771509279212843900954108438663147774668730737025122477575640518307817379139384808088890262485474638633325242126670184386766294450656874362735348186239359697270567570469697288873633924325190718785755829521892716443690246327841471023320752520876647335393698986877539610105320527064240836297517219761464017068725611472948926995503798087538798859140488943696684958909520071950223268876900394930722583459211642205467373617250228121831443878308207164868271322261470259467099545635202644867983065283671265011683321088381553595210464009830864239642688320235334573900469064005630659001164367701430582968160830963297204501265998314466363991545428672121040131951531431710020586770116437661409325474320566526349011648147177823095154833201409676981074504971667040149380546772041535559464243858370953815528900257730861332397407831824559085533066851290305803979624636567738775887736195031455235206962892904463810321159334065184162023570723870223529235502481749863835920717821630741382505643475288741781610593984023905188629786918130644806862548421084861717067762055216929717855119311312950341145661734228022619424656781221855414141356372638467999716552240073013150604991590356835552775535702577851857313588772183231240652345989986180538622806499252817193698491403636782905580378652925767438033707206395502892141894420248181092599845765366289581502462724315240688640727946497126866020934104343378703030509044336409639256867147759129184991549397937410060024272983917223043606599981411951754401939733164758996386996335269907018190401998584066003177079127814853253507027466093664841184495956079748572604099690617794053640537961174060121042539948585641839635804644722129226259685429033293248359322041991151818899955335182002628589800961082513351127088938400261219744159790745380066361529578189020382401732915565043672716876874803455646073962143930719731617179552454596167672356749344055399501590965750030676584410483210561720392053651308248598859241600854007921941506582829616767285147022269211094600291722676378644840862480800895393420214586212234747456720227962965934952558323329413640697710709454358185612962581341726024866115396702801013746355755869374835544827183156890747442681657932038053408699844671383036452619139229585775341980567946879100622378780546461876320905486005802398435273633605167303143625430857129537069909167299975931525846687848609322319669503713867657862735305567772545070802241475911961855005843686263613675672357631407607172225200863699821774142547379839988885430311164309354759733894315906845431304357183191157639179525776323466119933553545399177753928681701649468082275107036924940986410016681258040197494823644121703560121562428311220113476853765813200773519466043694969940207666441550547849129005179595693180080511393681422162399070370608335353399581830408926024653891527761033850837163203694519744453233331049706683220753101500412547711329896140822922174847888813721315872112951719674667846416873794230119904487762392113930927168573805212295303372342898723037052157144760962981588917917243046113709479653498777629199983649427411495232503976178130561520633633505679771639951001129642173110516169656523257402058621833608870380625082590911562523461591913503846151014132623632709336856797223719645010744244870193301765209813444172162830875817216752328429963613914174770104954378333605880717130253890213568087865820557875445115508752779860227078077900598588601087731273809445061072232347029445543706508129761673706537211496245746538221682059094977194539003315585655451520197953795043225341136990676587761671709105561494929705059118787220718593366376573481307890090857408354613299929386460485900477370897981358035382765697470101783228879162549399069092187944632550685725928683948024534106582949806854566603130570063900848097097805414764247094520311766169589876563967417502983597764316203377786987827486784886356563728051458070910955614787428410898182389580085262273039656369947846839770772464560751109266391579402431822677189238303405193198846952016728520500246426708995700897135909814933845443339623799924323363873910780075119148568006153021006348881958754288286515533988307717585151069424006590888197043556842331899994693279779114968887291938635152871016090060296545201401601365426081661133115234018510529726279237056160483904061870073889825187222317899975455229725759927499736073355617746416771345036600924186874051987031979977087368217546936217678536996312003394076531201433395164709518205904807095505255728410257025450401540416952729867257624256508038258258588865172436637178289600524587070966371509977752899771359017998578683591285198048691281597078468912763175575238949964416483930887626390327461733597823640351055929793821499927857243991977325016310955478161986404750473101816897043629930087760154463078640765050479449714686534579070995623624148922532025131058544106138399751931670190086534368061038858231759647022161988514399915394114031425426403417737358840304728172012118121897964851843259794120557015219020689617229018005803722317043908082985409322952576956547689588488147860035153142334402984913171100970692254980931826865801557735174095231316657711565546825094951445193109412764535281746734700387509167669623606217180347021907085025177263222499880128893598812485280635235327277636957989722170329174790090623951472381700176742534850301714078623317840959023005392638899052118668591011189601463152448272128831660390813283551627825799865061717386159339861835014471850261698547429385537267686505637835616125350866489667762908710504539970542838856871447874649630732564016842688787557842329860711441634433889108635649009466927498215477193852088304888140220688344498052438746021271393038459667514605720771439687712464316218141288565834749331966808203312594971874743825788811876080101996591616110837371342011262501672856168592700616282969466577812164050060849886003652170625510378412492025367734112877241363546742741446429625850347825331393805079575314381946951159312899520997977426257033323531488921975396516529582812274777962807042436435226729509546275418817924609877067588592665984294600819512223057120262501387366973939355790976986796428041520159910499642760590597701357116343434161593444678999235197354998257657832940290559973665577073743455572118182897377048284484834506364062088712970933049155227854272539173010808959426975811253344675212863877449029336573495858770238959203134551283268749097832054660197436097701483262188790555396366105186439575525013346362621202670910219345474272289179350693419587260814300633113984915967263006018347347118124152967178217663901630351906062753500864939360315936953282478423568922431240563238077614296225707082500152623565987324691138853865500406381665577800610641036446785873749276159452560441084399945432219256150065502001289982100077531256894152732427863770774079627650174615464419910466652437008160334982833041289873466446161148214665564191590148465284524366578650133605328722708792421284146312083983463755792366083395008667538696561463692339269209495205853630186800345177863342571747460510798303741973952203096696025484716174486960604938481070631659278763497294458026168999224279395472820922736511264072176164679737574129418472758793221294425853392491611979029183215426013275336026343935895880380067817539150910543421103993270433432108100972704513174210430679793053458891131309096747817446789547935589531370441605932041599435536317342129677223625034752118604094094123982090867079933734058869128853007504677442938216972375347529093561518125110414991169937270571320701622583673651620028906505463089331844097162763526323836231591989866124666337396502546523568311120334121914758203121555216457604624088975901211540456965479403989500510883871514425306313670122212376478321421071749124085755944885674063100851943045247732992095151069540390966843569201959429202750233085214989174048162045475014326794948612851463204883899893387395199899953722177713450475641263820428794934989740624435382920751154521531321474371663144702082975874224294754543173100618784190026613731901996405434934959508104253942380833922473119008188052093275389673193896113641696694243765977338649640344142003763705743882387091986641117268852529845153394240268987873242417251919808016484035030860131008501586808297161663069152151267460567531273641265667416533890274463808804161514651908191164413303464997573385366136947138213459172227440854745449717095132972165302636737697071742799038647067520734748804680151904983013820485929955223892144214962582140793453984677908251903491173728236415928738493303016103388528953627255439478426094158547370317783387048179974269407024062883024451203736162369984129624728882472145052764186318192905387824666802152645060014134783985787656841504889744405056070791609122062497282110469519907483155885303239548724584692149515522538187354237474332622891788117536645782742885669747997775408628270501715441131464112670260980034264452099359465013327975804542564268775505888920177327724278005690245199126626391446626423600550139171415308608084572840323923671763727921175033533935261227972904080992591447502990302145143186199865179472133768749582911989732749508254807120285831343896877647104958047354701843506776420238217508165678996595724687045682933171437494614786067711030027915521056911749353973102253345232579323181024116035745583571032457863856417092229705308285472160641382841648794921485188679114369184231516378665141017583360206062118010306459220092889212978771572549855318088257718711429939679031261632278416224576914181004118582484803450896040547503612694282526649868676793970434469405874400952729971105847918204917996558229995324389772375306768776511964195925222716974005344622495796992071849902719078043980532676264221221924700294258074274424176885289502940085340005030165428105837086868469816490196172139500518410984421353744397076216963619045050022687778313028297014014942721045838068575363224116087788518078347713453630388794993103470209878886659013959782406361425276701019076769612074447825445589088665645148522426660638864565710950682709252572505815797983973086431475927520691792145199589136880606551366664021064822661753240990955245299758950275886884955660429843917093411617316791893460114397376683565067691301321355274413163781148197269680122968286669191488934777836189747257506544311736353322088307616007336465843038529321773905640315148230906373576515070219320157970890655263592056716146003080600502619472037708483751142623371233138287183649048759573445389267899955409410908068609712759295846261050501119050515649244197338891821849185485904357411930206008483454907912799393802446629716151711084254354494031818687284552064286556272802495987867758046278492834698499715633904091841541633445810201202282658588762798535765691189018992747860842058679973782007372891942451406943212547616817115337082898642615912022100540430189927850940281290423699446634448092344662431540138815444078654346030268434425265995793189119691142043746586407262663994093068954557420391761560757849488094442578958941227267713395623252092809862703894860449572924125059924937946622855438192205080982893417709328619209859597282884896145516749383382900704217427742259826617854298169061834910855729660741586584912244836653364869876865449158155306172844841494606075956068948405991410038348224693481547761784115476982472371105953232062533517146086943685263223988067325476403835274830152570885379096819304395417567586345075914642506675476554179902422559927122350566901000874120090639674170427298442085704457867235554664433346328124120511339472829216655033787736413700399852912134280220867405649204184001019529286699086663716647611610147209576103433854941856581294492541779600765139990573485015067451240411548121999212870519721252576429953933937449808885256131469357083328705439775346741487461117458300609843775181238714054440178940560855547866134734958292123546245227229119367368076116660678521101014716573899714640446622813409028856390253942453921808593127202311474202170450537187130127067657823640543023629554333221803814532327548138634066363626798881906576244546939288626354018107490399572514567107099781445890048452960503166655475213092871120341131294254624867893691695450448634482220580323510360112060860099927012334938127811192423199107600868330619328457206775158631372008657880942706578552190372318920070893250946406575443724256766970101877375477008189877852486256112012582031174633110615315999802690765561316305424072654028178375853135512928039921054660977010321055279530588882308590137971155324699372707271888256878096782498409930493815296889838416746511610089497147322938075568196043339270422532632176079660687078710287016488960258519353050970794225574107650820131290417287722989380116292956876968234327696037638954829728941854238346774065995065021910319094167430798076707955948509177497176527244022027591422456612134440398097667122413558387277804643777501316089087719594727658598067530397148380669274986179503060988828716278722965313260903505763217532968532899303563800887260807711146439000610277682440705995663764714921569659540706583806714928597095944078160895214528442359111985191170393267010140636551559649931105896575519820291035638611655259063863928259121429613796855530758210298448093245485834589173007913265179993436026219293709133466580490963675799027602008095367192063409481932800479979721255427360924051018951464743964272183448812560984248345587227539020646230273789207106260250969545212508091701449541901247071566779349645031735153604604443130016672805898382931222688732174907484813976249336266882443734417403484861921485035539973870157502820844786344540351235793666301551265555717589811252962156723016418327297197261034120237252446791431040162103686128390076614378122096418205347295010028775042592661509875709771883646931670088278468416987929249166427853366454810516995291316294101261461639613087886510439927873857160268532149450460622545109201842021082337983177342417264135504861774387241590010025083160994349995019020338853892252750526290838738774506911421104695630458284163805328751703244412200632985518302092061285403975428191160643921897544574559358127794766256616326965709844678131343376076266657472892625124004224283529851772752015620397916276305828169024751519724285285457339448323636930851026517206860025859579525367552605665632554804884803971905516349044092890267644147490161884296727437440911767717928266388138391621272145404992205219965427767284173398040950105591707315829430655902797987586533492342587685298414100740292631257740297947876733754427806124132033300349538410577300707724467668121344710628211264298695618256250077945408658726426903886900061023399958239579467238694305540910050913125189219407892908109189982853759163891423300661022613598433830997533196653751179945320739629751997282274739153738056813362386278390622961412683939391623518911140462129088320624311855756893195525506851958317371528183587864690340489260744500824521158091173241925954805756411546386108405409829304056511846205526691571643374507953499430471023358976677829971892341795757108848683362326613026865687494647465711901776306462081183542732845073103281254931309243006100753006723398157940121585561061315996170939285360305959554433706111680448008381907401929468657408601753492006836928314852855428391968076151658364068775299932052803972661004994897562447560731903176806674059622424931958486985095770609530745402340675704488545036197142323745141668194869782727160056906161034096374940996300683113308219189045366311422934801003492505647060570958476749904979843107191365813996792971672188794133081107054545031125788947139704886797653484061649083304023129763811670143910040877695309426490219939704251504817431697280624569863940692739008296703505189811202361320992599630284624842409104280716202734187130046282875729018041731434159310801916843265806291257388800158915976402951292906045091744820326567213071522602366886854727229950117240092966342923344221899370056466014583165743562879590697494973116258851210990069534720914136084347220107290315090965708920919782318192681359747876553156553579851722521249353063601697423812312869981304479520736675853036806057937735468087508765977817849135214247480880918700073279820259405216685587947854415526977646419743864962914660080126736316632779568718212640910311645495300602119801744298320325268885966017975672696679886052565015418914915285190940526295725026778068585797268440432700214516036067640822250467137076232527690720817752294011265268548275242385743649403716730442489194621599954779141569623610659106677703804646646698819877129660440575394885041227094754978817261220056967092608789502112923090043136427879999740785585540070201626002029426933592667176313094630710977433710999812594520890767465483141058028449002518776286156413454770256491705582532503497586178012655312573895266414273252322879740230035739715536785574521054524000224460621323899196959326993655004239831461659644322957057256293500472327080313351102981463502210197121284211729942247151706174167173784593437174637813583104178619723701098730209750990237410696772706287425094374836672262291142225741006917879312231891343478602204024827870840899836442689126801823298689794863187402107368515966143146489709844250603684571919827283707942755508546096043486365500180546184344940985006066710058558324775392306623816245366186171417257999326015196145824758981699251950165772565913007320172555534948152034283118525100956868153269679328092956324411493557228899527029459153947019187280438132681690667268479433337349522275831237768378086277164947789656255496942176234144369651120549809456465881190331828300897405490173547485537019208432000555941472744880378170583228596651352840223513125830269909022681101223879521530909896481764147057687333145299897866996655718629684649494935037386626570514373788764653713243547028612583682980587382366492084207359161756609727137854815034953558460396810508550576711348282621984584222806292842959870867384284457848115520752788098843911767159149543767201526908086694971661662117635721352866759593484057069440203667074709912278924026857361830367220166828712197853828580288151838690204716438543114524811124806424908964941388938774030035472156319652109987455683619997675725849296806508340712147811165178552158276751099774216093295241697677833971777682574166537279996688725148730927398415067030489128886648713355336285366381280504199295213095327330402986581741447981614012909881313387523646306206258587788659230835305638555301492355031352378706871414573261612500138907262063652591069197834539105092681933305491687719851638379623388126973183919727806804927229271429461214081570291142202425431831222662927580693055161596469322915492694488083987156449387535364937907740668116512151157424067611568778012686466784197374483172649340888787328656561434445383698080654571087580481164163374368049311637234133835090933339668830878106992680340644069212324426682362551077118423111356177065463547538987980033967104109216623572363478513775060125975131830375385865827016398285981098805931393082960900617779896760058169637338972450158801052406890100346000340353824259742055913722594202707965158968159981749467898822113547624837023428274326534863529406498893601022599528006412063883396469296751531258472480460975969059643690204149239014545402256613605580143067917446929584317457061539671334163120293980666093091620353170852515876010285720938413214930022108713920234037910994426277667218645494503414147866692790626918557819291283156360988357716106672625906375912363855605654325915804544780007819867810079751447275079127658766159516456401157261109759292170284961555826922161627239290207059586241996977503501240068766211437897994660037163347598271785209634206911456959812752210831337717565230516985307863994448446089110149749470322703791425913581548109513138449214472957657118324722047888555047449814088199496106155195237782002522961427403279984263782240841299578154033249822246755564988358728229566160749168645023456671725134703805621376574919642274923607922206397816957480412032164530472713524157029097334911423527021832380834057634392185140575520050333726949475575637274597483276039201738860746755196806420050731999247290553033754802930913506435290910160332491065937216799072839796320395578447354908413400347293457871925911087064261499553760402527277172758840535065519550559417381676646800326755588783716054227722052254535008761751143923359092908983752814721941391137424029651136358374148990877099807090851018338730359389797575646936977197194804970828497099240101996756851683687760069045416652798690832428299069655926836842964308383379555780606975426697988830226834968329488779940779111682658070952800009993673050513855112588072082491799444666382477387494117693645055190081115980552690026603905900823875885164673242177143378279810369584179051633271925506834433102918325214702265305172098518138879817175210925384616016267500300790581918683099613369836965042593367350540058252592981005910519865026495780039322235540372708874384031161781611458007565467905205236704920456628937817786454120833124552230517189373327150553196116756449200223328081103075134769277633417780770425806783585325170225036252096549268527610370818650528118849166554121162318607194822903812376675664713517054867542493180915555160801197162630338553918028853004451955427482202883866901942255659614182721438760725371973260714402641388136891425193382109188178362785831693167098321200327776626507722454233138910397737912832850460248672075943293104599519359622748250270418240677363977667760657188123641840398805010222709626252340260964588339967332874539490423473207145972998573600433617783242964164703056225141560135895912747198570637560000490817320263737175783059303688188494745108180340130334970909437579434468172986435795209438122597372483817824679281846165679141283712606941953745779310630117835904090597024695688922951797056041103663220155313346156435391831456898901197544842374643341583125506152564735737557238328270252109343315925005111287774603760723169107797259456152507333001248469349475956271678503205104246963167056449727042279749394331120416551545098999522116396447818885591620933720891469212573482853710238591385779712796549890294382630972773355042706732967347363812450916733047601435108259372473507618769732271627682363467345362327979239351891402050124728333180590075236898346930510675719082426834722066697731790448367603648799796142228405962090566801104595440080826992902618031995939503174500388362902347032927079897197379798206160609969108965402754450278822672088454956918425799539014664761954898938309730630931273291651383199705003464842179749160441515243924225303647841281464711031542347757844781400099531807598800345781584296109268514201000352159803100179645474375933626925999959349403459009863093291724899501191882121500662653062004543746225014322524177179736011019422049754853085854350966959426032932834471742832125840793374710305309471395702230196849360328623183762858591857767900732457221842468065241024176737520019674428654857085350882721110699928006608852679523498919337225866331564359610496479198428087013366046007643447390765630700334818743098662686515499708503236923376711222014837073959617388993724431178001223041036592148809852733490547579732341221951885725526968801548252507609947166340893974488414708914230044275164363589738267453896040537422621101191195338656721482650609817211463906045434519895039095497837156520761552933862079553225583952666529044935252327140712278761908234579514306843335545050520906838618840652984546107155070340093361092740580315963338796414791222320661123965685937476026288681846157822128075333949170215307475230233276148336329795463945668387412107590757217610189791806931756646182405227709380552625865087141015954116867715322545163348525037921823905074980059861148216662830982201093873914012690490718293415223073964810628888672140723521484719419415120443742612506107312235943244424429942067372437320113126157779040443266126588891258255884209944928579025112284610060735333626112696041980336475328339383799988978260031932844413188587549504678930745834767264186092971185275366404522551311254768208079480960056278197621686095121947768982951058894569094752603634035060356852543665839943748560389509648734337770049363068132003794244784943557429274521693015672273592534695734652596601711487346727481398092397752214865337097657732541174402588524736720743238117983044233935131300294873086632906311730157921544005275444505147529817246015659121416940141512251160217219107040485541286585072106710632926434012085022768366268895921253371107887992601863106561885090691183651390956507443391029704340492674537057902017758312290377459895426401623715303428556422444643637632736940743352867876595438413482120302742935352943939001008989618966414821215096906824671562574886530325986726178475501083818505530476703842314526470061087536037257063433442932643645735757082735422776009399899777847216625852814707686480658282366280069772312498429694858385925818936695664121046346780688863267424278333155141513710544056324948037065805343519592790378199149676714525417993092767308058449378469906757294977596291095470622323408517238247587746309889826144690793610297105823396201016754925879403029522008645477275185523216326713552158754490807866311353183091377629928552265730264381512403992235170830630338300529243557381183232929297481256679753580490558142712755224462078198894132340855266652559218954511096125639371908831692308158529551678070421499699879109139688279398426514344449619354024160452117691641028752237817339293761096715952516889091094898946099094013814994420917727306158335316349589743604195988507037704236786687672258436370563799081252235399542315542526973912071898174428310004620975487898387172110720315097102782613455074126933470570187646895367102763980126539099705288807791361563242080558618772712495013427130519334964704779007811823474129430976811847362643673304159006258682085790166908579844023039005270807128176533836467314462851092674419712945172039776967928235027106744910563097084365964141431489275321305093723180765180856950310636372722542872298907133756441392143392914636901540930032699567191077305994428872756901185116487075047559454565387848711248614418482236116411519542271648348275612539909242582927941626216575492816126359216553861275670892045517969911114615319419307217690962547364015178674977745815847139613854056536003618882629587225438939915845767410717419217236895900941318104525660929864819653999957097720386563499299220556469937141618320056231572467262373241690621732648682283461329258178758215686068936529138622872739293143603146173786789314795967719788067972182393694273990996757476925286330047348810384081887972646076578267781952086895828896660447385807264223830748144604160856155510833889822882452905109627649183017673960020085622612473314233315488421079296817526546284690731737372412481340315819369488923189194271938241294468595859159602002959196121565337197372472341266416799244743643769536122132581816283339155867970900794937177835203524687441726781879017819217014596253009399507935855126915591491452724775710825473776411132832327188461103526333584390284928932529401282932417702144158734089089258273332999824276451515168104151079867107351574095178599375556060229970062808093460379495881624780949786735294886035631176646773192034901965189225506562351673921177956866697619026168020124708433286892802025769382854480119978194105419529785814710769682362684585453299659810351015220879501247172732536286425359244716736055377339533167756753029537331638386704084506737217141201620873819850952137415038225365105560754451604972269702861056711130663765440961153669323559312528158885707660941597867053145189070495151032052792758299868087991853643334179134218404445918545702385181136458201754495600119546984722370067459747807983270575989095132017081350762212716447175240541836038947944895948622640620676983645631435730361531080130064993600571767863462380197524632923052829854423165903546858970435254107655787017917516002737309750691902153236276522118257993377917959852556817789407144249088874743766508191919562456762482262794029585178048927250726419502755350243435487124888519815930505935524089607686075195192608707536557173442738758134090431805704619586953660972961166725915238431419882334116789576549987734335889521901156389554916051874526924518081716427197398360111478151679337123535711374152009450934600420252817678835716056963879869675045893202653299792954632213722125203629246184978702820887974235738921997166276499882843314657564495886262119500169757404288466541806310860996603254971754478308410941520321681823649923530117034809142215796630658822776492533506493874032283314705229707251893440575298905636066951193182286000651301442424824239358563545807486737833998730980778133450041655597248255261713326707020483292048558834288514448527080864182772585570311958407794116829216893834837089773612412718713573519501749849273966226457908752623853278768334988036070212867064820534818901934811408282962983526032980724935604692606532680348496469857606876281865797149759656539941873402667417460204463930664688507976409053077592046861885266546391600730211641484470166077404671267158981985347059505317521384140410402738309742246101629340618305009138614750091830998436451961728233190232170529360473717391227867362966302112967276175885065868444528032747619651234696587108425661022976240501917894831070950749891397762878045960776820123148633546722717870974498249606622829815389662113290293790555028202568527803248180188367171596587060794432516670395428576374783449458270228924040202895556639836887427924413235474565937849588161528879995691148831399679236724225807674131759850198141586405165543866773525484371840430497516861219123127616969552881130120278277006764177153190731803290024420401519442766694563018609006856603272291246836031307946929567192325996656974538643757993080933648798321506991325859077611293395638847303992832115810125866876499673169400257595200635024171433384359215578482684599442057783615608737578369175157937021877390776175135828057365361229899010916339793060075267835412685901283624962227986709469224395460024977836296792624130988937726621240693494481806641448246450105089819307283215359623798469363602206760414031732514761720785423832298856193312226051535717181952848725403557128501874686232519470285762448276692672259384464032649483416027840253487858565681952504304900398818912127013985190380160983277472236309900282735773300772283961653706525698342334578132273066785136160074472526623075988208997087584805471230292989068631655363639142658341616357301411449018570769781501429894661533999797778045713968074499597902462868463460344285520434933563790531651659556677069988743884244011667287248932653505179538378853156306663403860940860425929454554350795177947212542655406422362368178541906919429809015373507716757521654595313595927958051600235839105705313815819925400420008522693700034142151219637725526392940358592344086490412010837375020876801875285560118213388098492693664098211843173335082627270924653036011210417278812165748979585175272765049990694684123932431796473739011009121099214537385572350713175278917436163798192022466876660513467853154751515383549537485055909644796376871488457180347609077660204178164067481026099713019588600310161091882899734347396052086455084987412067698252643329636502407939665949251889819809972650465763001881400162461788619886570479621452366863298795186846321735633372641488759065306250824076075498093143888200512362745142336078184683429591107618686607847275509141783859734278853703013076445251485888046766076710410228430629271818544155711513900576944601654746346422747627212253645404101097030397072968126888378797855665568797825032466830787373738523680727249163525165924331624276150853532304181869698381099997117851742182080086271581867165453567416437541237602666544277933406962397637051613563854774554452266188119526209916671676592697538077782482530388044836196601641856939750922947615059814330527658450072807639023923490813275255271299523088589162507030803964436878895051633134211737156066868329862995107570600036335088527328833585968101921760319844877017158750902244378588370375417825922184186865065341668183930131704295971114524793858075124238528681598414590381957422609785188757864796263876219751707912189011007966110833314301077804043613033330248269298206445322492324565890472943812837390667547790773317533383133320784330864619372587756497119456825816336651938935698873752318758236914117771484245093306159131276874912186713471165952418090318265961840863158302944515524224708679238178550049630781581467229817022561796817342864067710953994142773534367307471573179752310879546504467256430905850721167134732831779331812835684744205066397324958163816997443191412247589226120315818692351242008851091258223077743976472203018204627631979938352217076024869911971571253090029241864025283306445160933469992855422046533453188464152885062574732420967213396232591988219573965268604609378356683171533357989234144331179706770017076051604823193470449160723951281731219511974753756513770062639756610618336667618796786622711429249856517997306142775582624127022157667405248881415306879759125814049598765308312236006623799465480328443394982825712459611653918499217121421237541260973509533113773781142429383356312734294673211806653881793076331503319493289531925992781816721798773417203346907772581409112767691909698965209494447247639161246193098999552255188028383558731076588305559494233369820703483688035093818157128363047763264465696899156332172906141607188355366938493118674637447113842565575607447512146955621912486966630957255522315364393782584305400502107538329781630179809519943526619743636836970510578249669770553479786867707339037731269173369195035033854851962655268946532948593035872054085025227990253642843304819102955358177281689302574054783742690927557610853217967964096359601940588379079368934132672516867462176686071820016581149989385025451405251647989302022563818137182490585316486393356516907905605848351448321099576001749391272704074182034419192148681020909529868957276897834093268950300946429235227842883936787083152138018366891975651169148589653144302861809770215099329739937350823901858949872212927228698621011795017150600296238479258552367649132896652989952172085106683011986242789566910411843102023033706407157607466723360693662610094795266651575151705480561826441610721303193200299449984464528652538738710684193425283298689595621495396117968250739239411239902420304873967125848085721095589350556198179338473564155758519844507952117906318169175507033860493909977588189105008644083599141193797044925920259742884462010628749871325362672667351121063287750799543482602696338306165142971580323919586555975936466462295292913163292589330280961921997529007301336360562010199137047143318442402445170666946871490907969996987221116945496041380859680536937383413314101003363790554228268239821420691483991397961553303734384776425350133703473075279839334439635660653503196671869931366730838173483720180893949342585678709515655717203603044221932971900024307062230756195819872021887406797115370386213694265475452421896540797217571922569411389302686406743223335148834810289883810576297564500453412770302028480005724746362296251997557292869166980282715916309691133781114992561162440096951172313263525463810180525155597333516007595493112338724253267925959032638483065883014226954276689873534991021110413346762122910393908104638219392580704150666180072489003879762850530699929881367520735270162485724114686920950036532472123413457561850921184726539833197622471999314725094657733559123082333401943133476833744190860889275967669805252956036709394959784676917988113980375748506542809956831535154673401633402657050422914139522905832430834516141858649234797550381456784922836544299872968492599099573002279940168412682070356504143902268826102187099304210208263297959760653044128119122728576294404759083980570491130189573189496148072959577334656180347985556288275537194676705565658407692650617932892501136748330689770024811329562808731270126328490279958403040747169114137569676380452731618911836304352364467598262491592904391680634669263347062809497428698728871477765772727736101076235312595251862863653333746298490764356228984665397997019668024806834690721624784189049805550175675027911710602916488947406252070806509526856001953258826960796427750943298214918404084620234194903228213286545540296707780143031360320297932218128197418120834566333972525508185823630154380973427620958200002584483901524412948204642975395359137971389376022742199403945893259986986995437841922002151079860728286320131713945215222002995379002631273547798804906928926135990583581816534515298628152051695605924923912977089777056942923995197337880995316767332574430792429299292252928648369140900470285301081654723625117003163255530511790268054807568429542919364887712982424681480298721184573790809676326250342154502636238130748594030184877676234834940219682501647516605787984461908373332110583728073037754169868019751815800987692049566894588100192401885978663430972815747335724120759547421323335926682828640510738957978798088503014149764890455505758001634757754251173977600993530570432501810305124607043510418990744763008740766054297107584227332311422679373149874484670643368977157811886224078273669150250859931862445229886371775462653110467535868940807988334842357327331134358082779340661564803085872111435252865601748575433521506618919197857764461146420966804112180546418276918711075373090737710276984946322001674228094768631511552063912235726480355402750049808735535496339901208376878467065140504241213026111954191489827648292862627539796684312973555616408592583009760167031395460056688294642796283538637976730525761071860100726082954565114067469607802338626378650340943762165122970648414091203149179916395151377687743564900974470420749110537514776184277263501358492417415045945005212261637654673998868900093022180689061736591758744771135297820026122949873361406422920023218519638008659463303752767523064256964238251314746145771060129771951009250214458675712280447471645095612726491447266881764816538522499187469780109398396648426556302163191837962162388718943645962815968450580506461571029911985315967618077126968267240418407971161665281655190624793758046251199299592587999351003372559566331433629246496567434321443728113472275691987143739995541931128475960754919518614659297976887439134138269325128037708015586516432667822950242843290877139789789011295235784050343370912599254690501348129817461647321787507199529457552926032618339067568110799049751580790423012134787011101845521456408052621407680029851179725884784968210152546926364248217805942709961102423463496500832249205749095153932388408637833363184142196824124854859278175978479300184651718790314142542905547774017088510767971695895255012675084036055114992821949660504493074679889697683795662926372367529394972775027235979123613865972972729075243959734554023858152158243581321373842656056799333646429824591893270546057190660296009877291839435570303386017090736890325760448352954410008298334667586127078452200926227017470283223447374668614787866453315740172647863130296937338649341084023368880559716069469702237662978724950511531200611262514982757161593043561952823009183562680950023945596933310019508737975044366792560405913410856129869559860626576719576951566985998804313661454643699074263260200429189992140733179686298990878459164314926104046420670358374799620435759646182749732481235050269931976728832829015650304132705349111495526986942400468078790022717457027247945922145271102804743026350709627992492977692066419050025789146325460100349500287570799023317905197478446376737553250694498414935737182951226985742268895293280643768502991636367347790631164862644627761095910189783398957685385051767452601653552768933226115794916006169446733336689248693603423616916825220970870658196506649348117694246192529525904407738124306014989039340753360789424734398136401675860482816289481759742383796288943507839630463826432686612547684956382014050914316996244254717251260183475972087375643036298916149810937183120653594374790436458575534413814721008405051566150680286273221135386999234682738995297705920996915145667103315745167625850140677653020524146893885903592263108012665530908613417811257468826925377680942828797471270073166889042642350524238602020832942651770366748078139792641580174021140862427741921189462257415488750272341858961603046877666027179734297517746767248502688760418709134666664829463053012915912273293601963083992830211790014975460763233227704911279775922890973009049257451742997835551921353596082648872099845713164207531537469344821191181921840963623552180922968532032741487432177604009762690599656516129010064785162783793916391663331901131832543013155694360244037048504728699713965859481265879611739162661503883738609706032374185243263927056053462143784856053770447085028494675060257373422805627445416302905493420185071442556347830901425721831530280045969665370883564383398498181228607708435135973916801765604300953083027241425449048344804188421235670532168531498265567237803917892635078623597697779442316440083581337433464535662878254777941176204118119692121004712234549194327300950442367450300642124627600502847917842732487032554835556146746086198897225376776545324172335377922928920289234494473400071624559554777407243424887670342381044299730836005343615056820952610765185537413210976838532257106377677807306280046800381737429346134315215225107227691575938205436019177444045056463919984081572135831970417608504561663939555109960517883158574918181548011208050547733119549519066823693732707072633198193194226678886728580228969586607355369561278375913930167925682835488315740921890299388277025341668371257475781979139277558279081683072021620449476230006926169604910156806890972731526881756796845575663892873007988895872859240818407903825485455468532541222437599459162980757830179164507838606888168726537329134515571937399236372614225807866404553489866838093380706621479227538923722803787443441672441728185244500621636021804354257738005229272247448580598550883990537909633598329453612645228289587538941714276167818203355839456216815943594816138714705617378644301993350631541265544446468060089662733637516401207224237039404852718171009857795306888797863235368138841589436271176304091110532500189291756021939829760153831740896672202852074010486594149779847873365896013735870975145813027164799010890089765882112452982537780711867197875456427207737054566336092538918289018596077626261830479574219982783354248117679638485256975226896007095416624684399843619601758553385975933926454620915702766289256260378300797931827547142069003786451637799952760234979537113319698540209234209922973430707104658952476990855963209995769551709068692497400663012709606442371437736702327681771131363396155286088381531669484159108275862244919876929815339996107525572828770600641244262296957981500707930491142021217592038712916709758197113327968587626036544949062075336066986604542329175558004673790470884845108284402758375907668126366832777634616036821513602979283050524720019987603586901642903142096963692591251227430094724351009319220183795869349555008268857661003722581372031995217776564595429971030201956765776134535969159428519231182382039593644463968443976377078881788795082340969132979175234810776392915093367295826318057905198838410178640945860192805232651336825936166643677821337108887039058876225414609883741334079972467862783622213829462918934755209952270990721234231772024883412612603785190567673723974474020423351275167747997357871433598608499344986066061183598646907012010646390331561159421267979227856925792604981494472049442749676329367036187844898307194281338693856031127365229011550752834613508537652109945684688476238355307818433718782932951384707582569021446986472904483088105643765028074650111005486768851202881284143538232872259925939457877941180325861969632738536663557308834120390294007225698521786867375566586848178680069150973094685426119775015036976709770836875149868722487537295694428243948140783844225090971780437216489118740682075107492858470179286482725752968687669317966600087407605176702661583541129704398853983254257109231091137347201125056955413788827022800979455462203696767673651329490599900890007796941248096131424740915094254911896299847606660518902430144155484746430894171538871418239530100322788936580928174635441420973120586766481996152897821074542659291054460513307637987273222454337896716919326034973998393568380484128445396098429755092169287875989094193500646262208325157961380882547888770362728941836958473242471997137534438068136513776382785795751694511821376544060771975863693377438400096925295820854097781176013279537522105320354775652036268678760554025795045474792638992366430535790931090529314869684814772265400033535596485410446622230750560015657456311282645261030328556402692155934522018664008417179066723674004351241601743226832559928469069021439368738631569262699968500670530129208204401971228014554491669191218850670530071347175541537068761841610871759748533553365030059239649022152262759647211995322219940961040170404458580152613797431172585243378132664196157970093554170159843845099880249402790330519961833166726374496418301235010053780647797412105266256305356952374207548804567988488947508107392293964563404614720712053453622086306040360444549324821205381958903256474333011148119874907536111641982279470055514169082621258710615964446775625769661213504463670188224740396155308125777840370587125998842354862179314246746672177579008731666150301232952414085241175021725028522068152230693322241931849166872859663529108556849019979732167181499443739915864902570443080094394159705023685900758225482682413537771421247335673294053485403720077832305231486071332618760503934017717787000349293550883525855798321202505406009619880935172289702648889171298290111347127727071768186955454645598506084353052255998378351386540830963465675031168580207058654241970262346848759525097300074868480293693479641114743315905270809681141346953249192130276711453037993985293900713549933798334231662944215795076332719571132184186979277824781799423516008702516574943066296332282216573648496255877203061351184944158505953790657985274341500799772529347397314171780375798693627541227219613671284753903826854027636127016409670990105464720475148808412231447625942034534408449653132993528260468732337008740499099248618185028417469790368445857251545150352057666452230570182209352304883309721845077825148852936012551070916420610373524330880281989187302717079744473288177331252127643702172963891201536687116047382788926862626683487337218895805380978241580904628953313764977186431498078772632382463352315506770654042809232328792688959704883239891785871569691892430987723446387961966170851402561016670169266385956668475084745204632393502098908470091856707913444377440279578160343792246041953201073431756060133199046098227641321891041150757060013216946867088835195823618630104965374319629989393588923720959658296769388418694708912512944114114584341132568879936636098199587017960822292866316369530084234803963695320108686746351734161342068639911913569921813093341401670657622923352964021057097149635666614030008026627937136317256477559840369446631885430675412371442185155612729434883999575683549744797548421474711572106792074031721137412916146591878071419446570403993619981767533290215026150863925249648858175134906960926238586055994917312358293510007627101322953068021017296798733730525625659863069888226604022028526707560596767287255332065945345175889264110959563115282333607642472884433726455370031338840575054541659438663076296059597053193131487053427244196262853293856630826382371371350969795194877785308185184642226251780869985778407131493214861405083776724721136694880708270197756157587412548678526804979606187958772912832094941566756024855142599582277699666768195687008328641849726107055298693103694650728978705094164692082645346203656957517641027379878820384470020551329730332255537982007571799441013398129384657695291695595898076464861686560192499332476741469208837768230392647727438323428063873623120693331226035751725699767869217162647262051112401751658034274915760093275803409999350634299496277186734660176599938049984119065641221554144767308278895254980102232601325302858282059701231937605842150417618076972787673672593105476713928701727527525066359662349966703624747618417473329282792719353817587803125644160920897377514009557035034290373179991328965415781234059386811976619833133744727881989235203496762658362211808761790394766287110486563862925499079908524716873597697222495230953468788828608765727435926028212577961520215309331207370226354766389668807741713742157206751283085365057685495971885944050503958701133354825997660490558991311594411739433275207116900742945410035450766207417617198653039695201888730709668963376021837211065696655835863318704775717476832984462596516074065272630874742822084308342818543744731823122658125899698597388589782014284152587856898370497785231574575194311525268745763414024586264675837656736375477024576510203367885782747485317876686782232569441950591183388629952524775402131431180059269766315067524723250499870901541325598508598888565206435295176274983688148328652369375597031178445599370481210218476111710015640860871897221168414608178935690657904520020318306214949552741555417531389399102839292561267711668755118215692137478389755600714989128635432089715159714591227439863417426770573296060885733007241941991438622532268649981842391625835183386079258002742984442032839138806764081993274334621707229897298220819323844569637750984585972827055967670763160285290233608137481647859028509475082634605639672838993011198353052242230981442574987572635523870796094636173576616897595166457739304682310662014221782362918687818239580971796189217163085780384037004127403399423380309240354506925434237808811557926632301900442315838414265214262490406475389164652157075215094970041737950551731294563288016538614511823546460808797462405388063606786515751634546645585712898783993454687396025886988828518189936035172738523841617713106306231687270982216987943424815903891417169850808049392992335462631486591233499929776701412004498660763649111039887367220891243136231922857818213563552969114916832574581748476054056357272922321128996436401493197893534674580009012138057886494492349040790624818774744278264356938810277610767344803353382477896985397326116124039299860605682752528896316365898360585561173450664944484165608820139420164405796259715487233111762609861786005375693676986592429468854392620968365151787526770488635202300169002298665725967170889953250818648250554718705254002864467752774998008626162863346753616238452901769610641409976159129106590194603728655968375322918726760032984108440688566180611317295046519672500457047362083440505705278558826437989261715049258707051421701300653260673586636471915949801872615061619345028310497541108444091247966124431885682934050085684312232576414529901080972264426509205756575053208960228218658540640824816914298123939000443730919471911343657431973642069006943539458657105772933823808138728504871850334082024769807477223684510093095018917940137560164066651792043106159642458179405247955938122717892165345498389014950321329476489663402719533353193699444088496891287041088638609332920794950859969391433098360319779016094049142176402032375572425354824798497679133614447768799947992932811434706560528118310756144661358513206112114836990137858399765905781566562934761014518857879236533603711731109611011124196925597838015707428699268787415611332339446883799634884996725852871659977975899924235531664837907161922733687056669555459441898969047390635017984655010954428017468884398855564054053646682985119202447660805682886709405916513050468395138884516958941606320902034333445057780012765579492351732175925989417030100550809658616178230655304791180473766035092470064674775413439159603995197345316112350476780179185010716858858289940279311784788497294023323230912477763350279649923765189522506433426819803441721114849249026466727088859227178079160836460670838402476798508157376308183481415482487015149227901817034408085272536494586137661638676762747531366384301905969101408930716179682561147987546597172523893568952957617764192435424511700722290181235460122244932113556234343308689919920650755491262279441318255830201736868959834731241638095110551959657069192640456249808574630148566877436013735943153111079690434461784909380212906515676442564395122259102196678264193857959127442992030144864832512238736449543579998060424111108517751501154142926073509433866529596192335399372972644975538233317390691779744722128859456796524730680314526244037099871027337536554971766182472203628880467214536202847099194036675315060582828813347597786784514334527740135958105761824739950931637302133505598891343036389027947723609981383253728865265439959056740648793522495026968479135120417868961297146916261543041057367430520870741990534830652302605600997446509133217938673059027301661173983049716247396889815528695438764493379488511368770956019880807002112247410917669836172001150483802852586461871230441629812979640794539130032313741182499311492899820681473522419350052610981610474208799289240247452217289126853778269371801310705894191502222058440611332053260893258523999645428501411141443113495475801594079550526262956397633986556525384881546456469709938715036565682158288900096716483235031212360457587278675027151774703144321793441270853052882690999352196530907674197000891917361092260191509129836256307608416582919790919076718599643673014678179339213800417276718203550286639095631645066975742080956574463197089459488230711059594520965674410663007408554984174564503923817534068964726147278950505838177181575599967944513849655571091970504011602033157105470376718009242760888522890098335178709918591348033381173973851997390938440001109748160178541720200877495878704621618911854003705155025700464758575242644524283371032248956585765094583376225084859710926991228422876681215256815257017826604587753540977188457552308687087777126360035907809557098376473213732613964306845299521517867213993945796886305283470381479306884275039788662397514968297745241479826720574712166262915315278777023907068706645898468522897295315378697966459352179811078525089077003587249569188492658004521138575782928840198439714780277447083836640574158405160301450573715453974209315991488854582945161136979388332980723317045639636966535842008296970211386688246169556304658738886054792866316115904488326974945296947868149687446197435132494745960726967844371318551796645344695545344518687142349748276904379808772202107273428417900281383491936580831120899861608741611211598140667560441107210019630406899373483910803715599761760754468306696331375126929397647874168619004856765735776625207891961988412774000675584029149293216441154924062604840290333040303597916102799524152135899915391493978308114975378106839779476421170057078159856500060980285596091913687854109428877430594711227462997192514720247826332433862800060885164136933391978924719997219250405696554983239086913408300197711651644577292511431830789004743185406854395286404908886513334136102497529838864999492492012774046827500602759961774365723836290440495209349669943226932623941612754230830529612718073622164641839204546802710586063393485608302540447481223978629202177698120077310126696496104423614373689730620771768252439475438262945676375749010803778487542415093126341569698426407421960452880647272104574214523080554040619494698495358977224780672435417253875225705044784373298941270652429568467938585936335222626242482540237945868767958822444849370212394372267712529262828469505676305407948967200286487598878362947897742080633778907777909318321358997349530715912639260178969344404840153464482056794221412242833590148011140412739271112602716014239879926034696940140735568183053121779477530039908188643991540910513562791028926329574898329486856397927501384382973561620106187020139915585137268076451756182778959442827312801171356168719618305007325008678547144308995798156760023045175665376072967310030822566399370272707746075440952738443477172384258414142581037360214641283386779284799806415176691003442306119753125285009838207779056446519989734428050462692460443559444229820158360884985779208182871489541591960671994908356684067061350201810460607550626511490930429633927394116971179256032212338276016419631478624189616413849456885948230011452970373503516669565560113824415016753891441152126012696669146242766872334649573775448571767268942446186703672039965567578771554757848215960536296227674413983540188158146538352099871833694877882765802850810700080190580083197935717845880234497379549803821553056995164285193435925184726621586502410281232996290390946832502002781458573745471607455934118740730849616227034751455036111450395484337453377252430900603937594500065994470636013216558267668332130790041133793782622756805068210411948610266640113402171629766202133262020412947550817057941941470602674701853236202592295181430054789574923669349094485796944214459790764310764370965497754786153731084144484583382315701550498867430536191850832902599550610629190375232559918350241787572018064043508056865279906489027848524832291408608660537152741138244397373838681937313178794654974035950724038362589832352857932315033422172038485655875616627724119301204097566226945369842481762825142631123049012062392627898206895415662483398743932946224591281955967196245661804276324103108406386592348440651198254593921603691597642840802695732350659691358633901360180385908612909470694003634448525827141505543766391825994939223446381520305653218319252440912349258104992525786553653139217334325972309497151040108356171971621772588372854925032421327724221449026716457577868611788114553500169731076165109370831469538778261411105981031603443943762796541821403391655418742631249464347158395491131999571058026873055851420464123133555373851406782259827206903574637381943840547458354547750720427180286011249496879511313514057993847351245695648421058741365519664194837801399825378817564565246993618816088286567896476584992234518969508345173986194257049829546324959969224920214758143371692949745371169751133296765463963548914892138526716158902039825998275882685928700674240788499897802923329349524987849310955129471726602208968804209031882849737388087369025138140752314900041414196822987110221730100374372333392225724301874786583114843559812412301068931542515465716532432981781847809201801583939618765688488588130380511681899035120355207492870345428366827692989518678875271921926756159780809936621969265957655231168270410144919643115083009742491107995109592793024597996227385829603574853286425807354734945636980520813119258346508750062337001949078673752792144273723793527269502322004664228920253192522969710689117213107324964596681371929659456966007368958348293356708985271770582515967173241261228352297849459230119512792308536618318314772372911698846419777127615728467958515524168100544047452118547175770809336164653353822478840237393511828949812533388903074301507162042666324968747633808421629385570415113245166991577674167795271577858743710696465187569646676695413497503493383775628298215281247462680546624782414919215099998723675585058436965901154267771652259370407255546191704973813021703133833045934274292966702074714135596262888447637910504395852904190172039525649432594737282575354289633525111552940710896584862485005170219395854245601993400468441142575127467526970224245190324149899550421457132489937586071365629836619197141640799614631286015291737539421061644298091564665534447885295187607563203316010350158649518563722734709466038948815934503987848627004846643440717650253271008449265777137355552252141378046842583595386946261741666436040273039330989042525609174488359149455826486665890385193533593607648726422933263922030043624198853644709712514138116095301533739634207195168980823734215265769144988040733743949154390092770878951624908331083099861316565399428200451988538522634002169368430924070614263115383663139466067715211363894228350047941710138401701685554651313932871245531810900569692097246541447727085500785382985277983467194332664024206468337041869682834916984617014102062925153930428214809699097542443531343767078178741546688774275128950437252082746667931881982900424809785647675083228385809058397898505655483730361905792217889396892040369928297526643833586631425825272603600062878472643095840764402880679543780162212933138739770105196734718756855653780439411455400830963689239183743833193898150608697948774267303416468017472019347103580303925024030098885464216079500655056027269457342407734714639635724053714306368780130867862148171015842929485105393994617775992285733994105701391437063294107443523723236513497779830408485659336932762991882170658612185783766619891645298752108821962661410176639107531647051471086994083155752065669592884943634915011754566492790585945047996740043483208882322691191839086455423994080014612709801956846241940938859794222826003119517826877869590604782457870739551826928760004368482454004518327213766227912903992341196227290356553581236724159163300657287754208755740224087964780491046080835992891052240896799339970045127557072182627994479888676562880592188159435953382662857052799296379255946674521658038131085598097492952589921407069522352510757001987114288108701063679403770829091992474157976329834027032170490780541486044338480646108142056604820030454124534470843020760447926377836977484828336698072808793919873632314399435118934409428171890655721136309918702264170512980889804217329414466817736252444326456531490968982050329776207262916389812071922197037894993010328776525928069549169103782203442669917568015517319478178510629772220271015721611583941206781015337186113826339262442489252424325104727387008917406391597732549122954323676490477315249155444065869150951572422272472869722027760016992971848608238628281246574329248093380881510582211145330584371383263529081622819743265549383541507485773721410729628836838222687886728842815874840237691123812170605472769476213040462482389213094862051549819207539183325471630323784102414514772102824013607589035820330227072978885143739515341272888922771246702889750450834677629040381054476794772845022068250871441465054612894906106047759179213293014112489778101528029582497102846013834559177144683543368507699955912932103818552109031121676710829505919794730605434616690958312312065637255988214881207286367822467713088744854601842565672659750771478013901808674836115113847989926567624593184832480701850767867435407626891912841133708766361706592537964502016403009218208327592974324397957795883101732216278913248277535440647294147225681102393478397006010645414676696156947093732518124935460817860007514919094452450110670365569762792971251176227614019276016182129543154532468851041572439325144712254447875632695777493114698903863912627626685929864420175713217506653725208348206592470650439899214250462754192912962162657612857772008537180434621344139277010185428156587689040038141266622099861684511757988809963325107272905242835234376506436855844170066476418710586726527169491706339490873464562257125090170294369247919317140819403354691979060175954810963703556665430846908594794302424667996842348183101123890881997617151787503333427421468984282135523841596272404865218918629861005314859793128975685538849717918290746273444045573579639837730305674390731144074638007462834357082956495835259935733498533351578121210513979478862395346502660485724870956178760523553022381441952076954892251447557993022121889748675799228050907372705170576262145255485570765854565154217812914169980446078458613296669219376838446864795065211402215747693064373592108250849090142354916214824516883527023851327776024593900421310928474979286637925275322317419650044385793881332659559180591876197867344246851300033319846038784718744378112923034311307320643037922218972805361178993541658244050791025797106997945509521835837395547432746702489755324903815323770841573069492894390871644566916053981506147358698720586283709113520850662296865138355564790341959214129389500538730512551202351834648637505367589360647327707712411153541057457578341311600092188217054884737560967017030089078994214962586635673081259706247955839499572702721087899068171312242599933886939506364441273566087604479037707917147560468767452987174515451359556750276777944188119872717102139861208955598776830744024227071859960836424953172971904029832979910803747232180925529750646193737857938172933926243047706868431624230697099783086060801434295408675055893761479916931604323224357316134968593135941072870470269655102964182407460535124513686800556699670056110148262594096602883753870100287015059834744891599227185784749055447177556359129088988543342569079324706422422169510202365813785517013057727607724671090020269615789555170929351979254084513838812961291178372800958500385039908383513515546417029213426744933915161007963777601445294061595878056983350944477802683117235393899735700553606308447845145342877757534947329914214174901191053161797162646422018555794074058362048648940634228129924262748410935370211736289771471427568734214203698236257976933492330852346219206463389123207383518955309586574856001345768377426025112597061524681176178160975808656055866271534845588277189646287751093785808780261495147989718870066590531095385646612829649386961533230756721357487275729033746596950599305152162312248825739224732464233283132764704574771951488531161417737133229117601790095783726213101597006511568105009368691068909030624808984495308911438004225514036847149139598862046711872970441728963324782537122164320488813314102582266264219156071345500029746307378453308766291223240966258727545142361195755791128549035462714380339979697631340589999549325703665808038874984716083027893554432862611931176413944933409582832009427907473272148638294884530359207813270152809878272345426551857104653953441810338736792738749308046670891181776272624045607498682091886344003340193941473616799005122153165335104631353787902065874214269297134915517790644275735561340870313492232449603130727326575460576177411478563028801424977377278255412719394478217009802934656073598008954062641830068358563176996411704220022052134403625121734655663136475782182029136045890499307931484159089179182046889020246563255161972969203789093966743964817328463510302028421589970740913725429314395194851396076523988677336334814658775156575315996339554299267044999744669000636305811980093016070531591204469612247134641762055601662361737029110118176814821778800597990741981898532102090015094176816464873465429126569945007270556354948620456821122456619182139352783449816602941195839622438428048600496131352558951147288428952725054251831427031830747785164190372422524276857218027878000542907984847737747174326420347988009536507065511252581793513177350319535498031225475556495421649286753872555855472187822920290974488313726455709777365137800182479625230420281534399546306850660846138404994247893751517255387129223942081176064762234535175100405140562022922748630165428869975441146016606762225629406552646939550913633493146202221456890202339696775451706833547946175320070973048954627021291390754351570290176975977827579964847539034204174670918072928645822048963994620270127311033283281225016071032621414000218968972807295907077351334550810325741541376709035422601311923406809891516968574259531107738862710633368357240976564725959004693630470203158014089259941025414728060867405667318962716340769159342336590841129940758062064199732636883409149222569136123670367061656637597358198622352118636723697601340638125416659687572924198258979239351412789132011117005654352289594376134202450362519783249177016301383060401312953564250949160109147804975030889560882006594296379350899305380897687921948619850079706734256539395863768967412526797281231728454600004672182984103005272983180565387092368068783311410179139841050025538033793005437255387501708267338084960386017694607037788886369912484284380569458508316933454537835404576067728795227677089754049428700331249763213526813058648286274335990555541553901039973785769236959484310645067399398941142836635442134232197168032141596721692992798437946013410455590207698859848181794432448410137306606008200791059712510838986347679256620616233654939024951131152808159899440856473685845684902886789007225249112424246812908488260498357281248881520125109125930694752301805266062687341921240205767127736864252493308556036059931932770258270929443110380832740581077464038504158201091979201117803730776311760771154589827407491265942277656179649139089315007295615613117152583031216867558931117951445340217991289398581029775572810394820853377729541468342255410390478897380117556698503112736007464927325308934396733140911972720284003470203809539377373041399157791086783703287692437529285702983000982373822769019995872283493043562372640513067921274334691795068294833758075623865097806896541952649976943704926604089813285777057260315074002211268795322500242298400708075383203371220779775139669859940882942457186287938415291516912133841644308367223492440688145188095645739883377734791271717808637593962569320212455260655593758513518777620881675515532496090549599196521171971370176359954885087713111347941752825475755843100552218559370468855635357432708056974207660911152078309667826641605099410045460025294400309691622121117959775945143294787513297911586736855960949598636269311547378966236530113007569290008697557626527296158611670992128709524538065135554337689499630909223737116549645351216981870195473983177678559136467355092545195737775608271784918110647762978935718763509358477725328429479122681111744960763161723652544890701708533423048220477206116067504473876610287217135263744872185240718329126557413585926526258360405278527479079879554430013016723971743571883377395585094437158408525913431808828715765447169195189741142303345900499357741832387183406785595907465537049511298993851094283922483031112372979286773553606905400643979224009603820616152419021799741664772322709407874018665616246424573450393330110519254203952317504200372735132529130302324634687366347150563458963674451835483826833058740013104727690744989725402849505499934550118891240407644106373134714925807665157088823065415083796773348324255973074874653903109674075042867333925097315425016502156083789019233126748011806731448746266308087525294888341069103009708016246641516191548709336982133882205097008343472534917462757044524534686211428812806481796358937962000563262027823602516198326141714397609552717434774387354565951675011653570090191840971038734414473214796536995200830969690416978297748386104800528031140458547517924463235167891577795974393041484476597129837639786726307324387623897086832674042425212598993880814441561231707247222095794236150861868404805044840928173077868494582741803810754931782261187844360167554257164384422494635874458956786021142140192328265393040039809822004718217256150911154678644199799365137965904695563709254994954423372894118788303601031274521797422920650096240611692425687683021104201994751643550518104256240320177421588461047020732711467004174823025266430991620693349556094288879628404969417455045086729324070715108425515258058579065481055991975864554514544595611483606727343521864847549072411676633710026448753797607403059758827790878221957349615644653753611630058574402567068972193995576528124594997796964510811099859006988671781724686932155799870902840299532581623701939096912097830657857828826573416196093165004213365433653066520460103938190295141720287156070737850483039132617491397966820413659624713793984422294910744987593252124426622767830114812278368571525627322985158307099817312453813482407855735268164510751979527801063606852050330488988098275848075184378437063139695210825897828792411298644765310871557593143835788009431673536477826807408579788464749472080309442001610780809320844257036203063783039822496107879370265599686605421714084381014271229278380470495603341665968077781683985469811359548354340067285676136968215910503653226305655315867299654865045449340770022315790515633643922910335176746345678081404008225972884520537710004927559680564480130717582479294232430675859693645497829481818687952285693141389537716305229666274711522810653453311299735221829151028667433221646336991187466500899210321085201440716203420386279036995656998082979030286672651594679700220500559770960506647619081661045899822120067754974410476913454755601221993836184855339204880166752207982299595507092914518907451110716269677573416818651984090725130872931659125166983016381763929307387483572431983178044127038102328117714671836389085561587891167697886486451077554315228186723863219296360670854666979782967219482596613602744493155063931744751348862462879312545728941818495272375868985731402007420726587402023990729184391080983651602257563127103012013849895840289932673665451876903743628414575371693485422310584418248904248898308500198072456816459476858610642545357615899338765677727058569253275051207599052527006917382972908893115560645220283178853895788245412230163175042745257573892102763348209990647863046692616788224417349636515855266152590037517920103918061077447954091586841773500776169048000357135346872289260875340557680610986495678104639764993058900198437621657604993558817891105107026898100462929149684042362665642082805226204071699793874695284459826627593435071278423614637382443962152429828346939230499678850179662381671985446554093195834999877738820625353680790214332614989156818972025578065538341036524890355628302587149361685294546983560141422720828621595151089047523460230254127885526898433740651681507621654645087016028659030989542466583255444445074120409889551067634698631352471516373815188018374663911223934421712874818557430670585704243047122376429198158856175066646691241051302324154966175535154462666005933282939065266416741471322740993572682705947134075447243954114546649558552064087330584997485204678274397905471217112587051539278768091522418557686669127004213354599799975770486709300995096514641648759964442787303776882399244025196656865005312067011786622618216739010259843724725655374429376153371942575610976900750294711762454367118551073617452043291366545884852367338180282659958375191643407651282747318215860429179178737348042526988104071692570461588211882689820850238913740549734027779514847359856607350758308980463586162990261512953318907806674181363210090896407759332949483797064882271069366119683106475353654970824563806246716658461821184290723402250041042218599297047786084841917253027822437981787030949388007885838436597481422449260146825181887105431851885707394328343783069251447140577466270508494140252473169530574959072514678386885988392359090385941250085715738244511767885508719036977834399621928313993667119782238433491030414527733992272553057084589493342193543015917937530736595270096320448698349181991217780414803297292059595837398286491580494712762484882758986098376234128941055786079843508799493140373990841638035450038524560844662754223865490777373318808264946296027060832452113437130683555263859908228679638220141822586502854354387693019507828188884097649489206664046117876623987408202788897998245097471085620037842770570904448115020915265446056033099266527196612359793814339764591190300038967232539655676976949501475056602002980116690036487514315575613083322008529369554272301399912861090800524571639790130625541197058146170511873215025896276916054672255760716440508990379220558868989164186854589730909144101694412678879477218789740188237877200026658745840545137846983103177582499320863775045747290917794776871298339749594415494963350060336348241301932759736505669766521965229152149916456625765994386372476972335390685041641183271712387484189416339073584673439734695297017336921702138030441998796907827422857853717535558026989642934461796998034860573302539752840022533560445759969921923198971285572970589381572506981495442392281603408779974158534099238099730201982871119058459259943165663039283604769954247379309467728419649608924841790415329652613727687187838368007644592261699301639283892028885327679166276871200071174620982982547791621049385912738210870455885110817314139675121923109803714352211177395435758506883598753102122295756341540852396218513134818949578554436570732336380417826140404592346197513336537039917145562377983235459829974316687715958246512096672787099146763179854486452502039551777653038476935875625174736196824779610055755221377231738852705436252426962515183619772854652456844386606712061795406782894560266661486499849065294110788600483934320220675183301725019566265559410180545346882224163419754357457744037397576841926904019957706996657615036109583821483218378308014568612640925171812562272151501211028481526936096281132866791540512182552291083270599340797886711266756080287600295173434953707235941454313729166354390244150916586922757445789221287457998666927683159094080780175580571665362657595331589123162424555685039843313703701692942974221861076621267587406242694635387739430052188110303478190121312796743120880069005880980625906520895732012069222863049542964789723923190277126781537325456231166785251081242317290310639775152757054739403825114636990397520014527315688885720207601916707101000677362469398355608176251397235004087906833032718163422206410193917692804878008094224322780739495154705637745724309441686537375596033414040936073560581454265515601673271773716973037388758669510002810029213284277800562359217242179060336744472876560610141338300771513943075261610363872245721928437024844796440835260946160245020995051957743138251078538205124271054648898496397948892591840021817715751647030602644644703291853735319308042005152840023364629994851846820313662867579855561414165078209741707750279745489682232485439894740856769489481156478487863724654380958427515783184430993030092352507601386671417491927026545590859837806725712416267239657647066548693929221441569352555501530700016528402722536675328979840120344970057788287862023256642478482751520676440932275809287796893558418692220523953767849917380225727367463557714044316287881125604517117116470419666492100533996897247499209446828931963855585328598188153296690813728251567963049779814610649714226456629496875537920493667467076312671790485192038236835042563066562859856766730962207566892592558023406608496051607391273290894952273897067966505928269729025451258098039792886715120518639810235363661776463096697675754586493330152275931050961611834307632978790216823312265564815411075048720396303743860031030661832485156573540875669681147209936918883412165925795225144815285167809278724468914648142006997975119858231375383214589221924917672475614992209484633473769595422251698179751383769630058301950982786161549872548506107706455636368074996533732573840681757666579632156578861374696372847933095775232770674032824795847685440954963928914948413676774267292911855624269782182804699222809966953736891023097720070399550962812759668105889040181982502026775642102026085627736169355367798487921898932646221287107611706586302258543694204990544663135556637001337194953665415322931965244911656685131393063042253693076516179874777792451579593792530289916040075060390210976105944063222816974706435357566880709927084078365942692620498458959958241053367237724428094893873969889433901533193587540798265153777490005098691411657673531705785631501466435460219028090373561263408131479659056802485809813125651853593571229460780786480336594248764004741905335208684199420231957134450999889311634668958392046737636181631463774995494181352140197175683891167458844942993625697098546597714761638006267681376711055816116096913326939365068257092479748575098318859032000943064545389542792593246002613591137374676682934580356275105084595352874773490286842013200036083351176036201887016472456222207118203691927016892661195289599726895120449238581228201509613680297468697295046850361109030165928553641894123942484885776400883640545058491968077167908787091582175291627836189152905719702843724709182158609404603325173101643205935959306616782655917737107404484309462985019019433659678727672465033760061599197432966038837944801008020826569871979546207625003177514041139295342299894959092636650391098051971531666896531416825193787860967446638055310031737432843660367169484519707269169212185878763251794278186684138651718563780190194180182953119161215701391839806252177172362299534889985968014545663278350140157223293334232009388277396009773467988402074281730125605819359161175610328660202476175676714802734052908194034983487231162714263625661053888861447327578289065424315324306573200112026280163357436919064933266488726528831404758880036422588950420256105343193717025584179541687087651988958656644138079949916834785962408951376685542859465081819848794585206129465752590369551600608944070851408746626273753985715963211182720139994861759693533789261367671312288123462667516609950588542768783865496294071423254875275507405919573350100122124673628413477303431704022051959903516562716441861123592697041171618301054290240248809055580891526009524728908621481845803179904495934734545903445440099051300480018465654098628226416845136718834799578005778096436299699724453555713497633566179023152320787590497175600134999249746264424855375176286666022124970794128388884056863850709735015873465975825320531145215449384585735666969678923318209253180606565012396284327473594960900171970508873814709851699608067071965941767812651464812496954323823546316777076731239684064516360286973475868236575569445799009454561718430356756440585105609301477170237624169645241824465581217556467050479770383501400451535587862610487049672956764645454758207213340927266678890475229995218854674203971342799457061545888119480686822165452171079387169226029927158318972386194761475933165785184838183673433192137123294207913147077717769383279415037238745209126550730428699978584214997214569425178598071223005106480353615117230732146200302547809477808031485991640230865312381290883994439814592778717654667392142646325383637153351752911189027839062729333449978329301232479092958909643286281432085448185940375939244667271072516307483076132731370673826966234933569962748460850247841788009323606807085739294424295232612745399354802375658323090885614778847147697672593744888345344226481568750098177878717062845019413933133535795552870168188365535534169643741850277259496032778597340496361088493581864226741563923983576325160507999886935991434360192213995021783515722722391399179339710990401198003264930671130968007779260424253976295437867469143055733581414301264357900855723201617825431057597583546360163063018457745600651961630876686943658175194460844445346484484738835696940685015522922986916961995847526236158679249065657733427597870673330497956694288835355330537150699999595729191468460745493266000232690430806007669347960855168378694570928358476783454861663650553822699575286349395738107454854044206744462533138299318305451353571456268663978646350774450990520823038652917074746347000368610099420493401541039790238367619737714825640386383642156838304704084912758345578488313762094376280222636702717495282875112746803212095210924245579704850231513661210339805316269740913721384070965561265914894022724907643779220966259388777627892622284801432579786577071335381438530131481281321070009398696913517306760506684953633638720560025402283905438636997737023979337770877682807823392173376017359283135797138364868297405377576529529213990904067360259692396210195089766386788435871432545413470543449525669272536313812141688634439095583078045524108774657425213101599950159897777595597554863224023859519576892313401849578985907781778064935090409933378112249556933351181452244826376606158801819387331286797242682895869748003250268401994796865159585552072380397869459834554124482337455021296975270221108007278496247250184659721097758728996927795994347986148052506109452026613461483066884060250022833031186494764009899157834245287337665863108882704996166248522126922515821243020921192495136779025597227249062279301476456087473329461500261128891111147134441095670692944917609291427129397094095872375816981949458956840704234897885715343465831514500559893579835209695930333665710557892478727473675075307736695763409593485780997749582147952632629078987672051115057407100137020933200651086949062936959142625772876703517381719176638382345843115381347284282479663116828794437248101190502494433188443281211257079122734761045674610258885428504063209346073641634581812107702255130322183686506685800239920447454419239212577556095707060216080548335721002166915527560410072865846063274195779853514349154491145579138817927693918072717297910547743140101643969668794845064557839206193588265933423213676387639426748430726803879338439888617844241482953837696143155789542676575667012360011558080196077095257783015647197335770481797748652347800364865513877185086293709279485082144323462276019054243905083524095720696899012062233989249683161312535593206872770221203886094715042435256591502478379305211876013982424840138879310783680190650417035364063927149472004706471698824135148557394141776934298451148260520733262181345889480651848726242672786856922029534601365023464148742762647794343185438588980982401441795145039637745737093830999805154986016482802187380847345912023986577278922639635657203827057031257350134319846834532883563474602043266091500265078591779095436424459741211872881684592248213166077887484006435948840551214593284144919118704912683007357406909056539593426458282433342023190015395139586624359812727305900105112654008085470335191615442154903430670332034833781417499545765186714747592517243845090515223620594965207670718362073865668900919550664805927759943285769035246614274050335509601428556654982091849234388065528562878462611617923669912608609899956108623028952091576582490738225144586223825759456507595773559371730389814838577964446329667183564644089078276951598919792166316669600347676568882016233560302094534994060104943331810762720707414251020216933437831817135207119729358339141517861150454289038002072020838943535930266738273359169311778045479210092238636864365678066263251067807005321201877546946201097306771224237587243198413611891060289438095158877159015927931375315482007416889255411404957125389507210317802183455129096384476175067682241425649153794556327770718576683651923108503617532378103624125562855280565471171794310754318297543637053926094269871440261848573679550695340501743219896145885974268420851431454215360068219655347624755059373019077845334206519331784457384115213448890429535860267924047792289857119497387724549381470829320794149827395024007558495334617899215539631784893013074681255767624196715954955564406682552321703262932978719409994211242586046649033377013108171469160472644640085331982619700770794117744643674985075812905837057773067730482708096794477415517696034047293176903880729862676703045619267124817486522306850330763830301056525552869633476010908544919055522373758895216351944859668139651707067489874103058734281169275974347221136397955185406439435962695633342588341409888745439397686807493734315454268512362152357792551801291232180547175263230495133193189588754640490277974267347328882903866336971417341199676181525802085979093779109563026432300784530522717748863902264559255898917155142929057861998541987598375864877048053415899468457273825179640715348490297166612666704665349382414644327620990119999113382155601431303217922011871142891848661305706082470393724949728606558937349701015882836110796379260362931958809304160994357939712516295696926850423671902919372448804030437284240857513739920856621110044677958101722246411842361147068920334306119862633522297592140277361990477733025255736179009996196864154950842869335513752666740633815181261207301111806108777888431667959486022764974175188037801939820101904706142241194959743323760031586083269637860547984130555155863552835915343073529989380266627372528232786257636518084428516641265371985620164906973296549338289458649453927362781372409325746718852550577607531657197030174826310132875630391492073258936891759165119644122249608947629330247566652060268922522647191747328216683132214887472593490721944611851978036419362612562290029245777561401083527998459477723432195790457634242870179282728625978611884455489285560592287525971214920946451196301760044005024835886400648800363530790490155011740990433221824149007721325645710375764070323165237473695439138516172359408112116324006824706226062914727609377647102114912963036353865842132709471126341967571867003052847304086274126838664335918815141915775832931734308715681986760310852978547938629474946517651228853420139668188579840426316260431822369278799246157693195917877674860140411480703484624107369180149853095156359552959969605321600569884474469451001583967318583159909101452286318430371666152566594124620820423448363762311106501701894572931832770514339051551453554424863871919848211314924199753664943341078719184355030974655532088601262861663741301962231175817954228474931099252266988484967183170606468615787678465782841814812594925043323977593732082038780976274407978843141064296594697139949050426304893560682002399446877017762164701029879893188740739113150798860040096744217606883186056772505296094478788220381978298550890043680589083371301596130058707739604111209886849793103201580482832042914541507254093601231295518438922374923697574746620583085007565090670996974045945642899085275511767270434947256585086378700740786196376208938101252294135853531230370879439194742667181439687790112100464894543777221698711780759035917865742968493427541286516320926669569173399754913036257351822917196194628950696850141238151548572735973343162888072030312102345421223642653055634509356022933325607921003231153060570988756022390762783014478764134378281842275119694508202283280588422978511843638609993396555071017216124859517415921457678696744978149314401191941596121719786731083383418419252957498482348163845178022642104186156742808328722271959528901687684922677855733000390413244284147545882462822544570152250067958850850603430215941218013799259574946145666726591044559906675228106068008580327618411413073599120911386400402027188479940548954127747693846261693658110306923788357964375837516719682022521643015703970344838864024844587234984820974382452274077996595262491132091229065763289546501452537129418737781344824687294209596943621861778627114724036105545094546304547454105293471396880977099697658385862984319078884699330671753248909727079768729196765750297710180475431481648235584138104475023023432759374657618411118675783430788217907737064159133341448942940154386197627538585130616563213785945850615662108159795441231991267846519047999684774954735364648064929760618058766025650452817360237083059532737462827718919094084462719246472904410241031767837457245390710251442501770890726006337861717839856778376318319429794371541728999974131466756740900562665772097109727462840305179007055603590071032453533869080650257379090285344817275437944642518106221609657284080907405098757223802687839125584640102607039666512008837352874320068512386473788864137748424219407948176387948095218915428736299219714301259492526681215177270795588580862797568924163398887762257662769373521378997132667372994218124146852214917652369160911972657932415425720207746214329581617802213074476953209486877886407163843174863096957614559297026994717789730664396320397959448079767100291220676751754312937324604375599434415921968317715547521991278117784776855216519490987066108778596034890447936473730709556196805852816642509906748562418241949203848562233339984004129691431117339491151104708085988388263140249004454702485941108643841941767890204420685956960981715437664813162329603606166728082280382787542959081138828800362455307199012487296959760222391247991821925501046554397467311968103009456127269294236340151561488546935600635400052372735050460292518379322800130351360398555364015234408362209828721551078413662156810330717067419198964846780854289207978566212877440531526579835889183244053769121960479705880264179196279099174912270717423113326247535523337095001708443359476125057074578537301259488073212296807895102354942519891496612843695149281242912685923371686260544840628968829585712800662952762572309791834447003686954638963703085096246765778311716208284487115041246689637158871040400761121662875221835933361794731676766178762197239538273158949891273439432203247066528662595971824529112088377453904249260502088062532381469450060642141437168587785037323165614397357541042837084947245936189840801146671368232181000781431601832240740314050478464863890459683735422769863959425021681516590480568837780574499961924830390567347727428042406696169057967297188173142139298249866439444646407658798013465808887269647190701580253200679076286264919064347692934497085047456500867416211743481039101962282420199494390881561439634654264438636966117976731688776724745594533088925709113346164037338081338213147593928694853655875555715388417799570049484299095371098644818997678119923712854722398345720591444464048973254040801987045683014541397102977307552088006168555261825823283260008274783956284783951152544116593847806269065582168974642593210341055279620021917544865403733255012762974994358447930948725637969320544417508159695897787780770540701644371229539181859055721507534378545046565394056326919290635107913102691559073772692583130984441147008325276378981883681716419790929198987011353966037681955008011024929811443165046128248775631428463800751694830320821520707014708705826789160223358283641966956957418889556500590302893721831485454054637042007949245654468385741540180225700127928048248340457263940237194976603830744112979349887091802887860853837184022263190330484926846847487042600619052839816522583085412269581831653758445780443794676199545031011957832886185648120810020617169017798550622643003348785931053507578034912746664160946956625487116266347092812484769453323984475708550873689928632213870414762667003674627781097533868420201996211036090048895259337907558334779720051412926545789753729374588394429423408727215699283770541310881162523504612033414847899941136687860365584649311134856338110066713044992902708719504248727794344350991867296827424897593558101244821830298763815746011577368772881561246033578815867723383937669081103628176391276442181646907782606019983821090025898234471796284877217147697846480806355510116840007365751441048980129822985959315893344663337567702446411265002109254068938242531587029270976379653166531114896436150931806425822368016342985013079282588997714357558363585530627536401433503129167287333256191635886197735346243796515661663637795598315307169097823513958776792325621566247372674913366461226868182629269060724389579049222508176887963630104094005540531115079702542036493887029298557385198211572836822748332536850166228174509829223577890903969195895851252609702578872997068840493516406946372347764824733752797476472329231900967890132440512474824055291342071673069768849362163127049317205106695682969840699432751049459332868175245005584863385590354006911853277897701951616446164021460734693066621999952058640580057552485842874449507453128420491793423775644111358753080497446896214666826504574471126453911744117832447757341306216796520000043887411064245143218300979844414801183655322115295607572467223475137083251338070270689289662552500972962930928518405786969616827058366975346416731078499331070583557386230433826929087917621233525329580471638856857220887206315784557585415500941430970928913561207190103419705101879938073616012046683357760870670151473461086151372418102752831359191899352021221231681893687007207500800773143221111517328866798885911153481404240886921510158278587459514690365853138940197291688908200495226159532846373795099272578564820530245661104004006643156909750559575027217333791319125250500606105978210916623589425258429603271818392577714831265237321919507831657648289606801619747372931786700632505723824491292498708191589474644409782163975591426293324691401389034294163871204356424507347837456741891841464952991146604517944858621412416901844478095993184472086935224817893816726766571452352248035304710626198330055238715040704063506879065645148287014085321783235110483863655063438922496725702044542760910138251957866954104498645876396423675747208248893740417368957268332822773100001246214566036410213182500046801184212644192243881725662629555695520629572825528223474256501865616043652111329548138256539614864719205378740529429033504102531524492168631310683770753889927595455872594191584864672919933342982268565135444871038690047568566842687151723252728999504127451317554460446967099317411302367358782071718456059567375564211117063914762855589864334209222946513549744436073453700495345361834627248846630419402795585587651049143008854876696039778231770692881261195548515710125957916741068037776252619500565754340199615514847846050271973261224014441782941564826540808083587323525769547898433468866789323455315197264282370470449682484747419610857386720353553943750768613829999099509675244376510130601107060292408813807184933327575703705924738313025923773879232387200903649623969315275823176866158198726961424373553588629310455095581134829143590200607109814373788523518668932828130875731715435188297560028549757139566744175898725488907727062580380537956423984898591387716061801513110353427262307169966438177651939204440823146597135887619162081659825656549838503968251838096235121555980561754080143242752511229723498028720995656208158028853322949575456528650159083285323128360004976858797640337928398293004865235096308485211613196132359584370463276137363462821987238157971563103810347124172554354434897069908806061367754315323544209192858481015376089620163211954579840271446424803585752488031704224560736223298555516011831363077660013639119589261175088035580568342782680437294162197918778816801697350707734173668409980998866471968022272527754772560924962922691473770561072544690530811739214697673872871510094064533910360204887597997054472408742163770971869224572216836726296916898376492527302518540516277180166512081025767742623142064339461240797749663072438873410220804930925252115226960342558040264581205074986941040314117008399104294770668266835129787221979705743721733168563809164589444922468093156368320757268860531717869492804782606925601569970343464396033816062185952718244432105397025758900859222759798995614226951602200181306510690880404839329469187399141689865882036463562503132889015147557383904669498753061371815534378652701136781447009471554780651841270683735407156123621002245537236193114738540864961590572495684403846246150395730181139005818604113747831902741316217602630005505866113762514058035313275702925001972243485946151787068071930530394815381934010636078297093171995226638677955536192109452359060445895537848653381197333890192226461466735973481912334883749107272778979057856255190522967277015054594377459050909844483880640481710767473311019126601648821479479860160069027478346478051860164572522972500056837333652494765109569543276786859445615034957707123271122228023085789967431618324877948452617186661801623282958685905946831021811526931174104517960560962179758647367293656630592613443904983641290718458280852735151055477867404827068004315077469606957040074330523324100554956807433297535984302090573228844231421003504209720536595477956014055210244618129148441573839096152452607462545079385939282798169383191594322958323866045607879747185173668590316840820624692529596363332989081865631095139177562644717181858509700686389356862732669982075045081888530760785397421604086429242902788678189300828650094310051264453854625982849005607994833886509379832874956174598881079036935345462752316808704668299016113103190385755474012061762622415459098370998928348276410725155947958509851144300786171385820119368246809083077122558313296101546389588324566911965312944945306932028199077891431436067345488605411860202881443036035546736072202956131718753881779532208612462148372583320257719945380656661073283962789284514432821990554820564091930761054018070974158547664340034015509114663553245114701976001298427066362440010271557408351249617796454634557579981823550984167692558221605914157325345366876502072466941379597474867924766436627574586723753016761155450156248478921404162669427201762676668860157057268437649706763914494561547719725007102297552968930406343668972875352258678788376488779812273340246232026396898637514547505883464567958240294370802892745297691257632881348849386255244588189210913101412261168432113384893380646400064158979878103656754889421416437367668638187338903189080659919326097834153761464282197840979021915007208428954907883593417788292551717326449639002779262147976302320589660133852415502121622784415290594070019233764144340927529747717542664709917347100639142115003373182628286245287197614117030689825398556105574281465067528460707365679914171739131468162933311237954831382855205827512821023345050611736562297784621318489497698041408220982709774371702882985613552324720217187005010469094884826289013226324890076929784982806511624872060662849694321312216929282564762480728712541850742120711087015717518057624398584354387484617711009868655731571448210250589224764924905811495114288381171827236903095776264978675909422898917623160841054999964959409771097987846502488897644111446697981227828860889042722708305312785748545743819030766452968596959154505982468897706069493879950719218281266596575869925323315789850152069176583945501285970395087922619066401723927934018741336201460634071513107026368697379896949907220090823362232086400450363882995787294351707468783748446097372618664550618268522373264837349757765044645110751668962749999583150290560377497474899949964144530334765351501254494714664897994897554289697718458287353571066732967216391587304804356156934916598731820983378567016439471929555616697221869317100014342100805913761104138010791198205543738528499299743727265493904108432656680343045908280416121928097769519673935825493399221706740420764005773851352238629244152347994230263143258100584236865076470927314328562728492764639801987481520051011396392641349131731222916251290206487847152360800842378527455938777203728570354550690864516993500596007975498199663416636572902637463585925394889439051117106710774317052092309991610995091215220221987393389356610908756929094831137458832297586146191325268513917214605621392103469417933880196088706728995524081542159515998184416057397077798510745060703446169393735758169148393037307453594766678559939852794549545135910253828233428675840434287721107599743217733399745780539287924489464759867493573835225774512708398867782911577151961530297475077045764324415002651284703111096023842976585613819225771477453855408840225208991445807590673496671578879940116346700427996105951810616621897096035045847289034473750955527842807975924335218837847022113119675263456338505567885686144927449045976676202156604879921834441622905150677771516795246384366202609706163859631442371164540162521517753896013406567816283127900987953197569475894166087667475967416939481051557970624855868010271605777380624882515799219378304669695084510610708990890265038284400980634119645601847651166803035047357901430681692267668287631937352468565501708762464965924199978967494663813715942380568393964635886461831303996405212020811069365967414595940380530681121510383986673468689654129457683518095359239665187319695049551456534182902837586982968242422746183701020814815204456009864051588664429316684520123657337741126377971803646651172438881265732686496861435972475932214189095580724529513122660644645460328946276200995317126415732945783446907403234768613385912796941077545310845209151889585099260504917430046808529871180824661346280700179359666657182429581218720280813575552334495362097929674470175282936937704773023493394298220206808277927823631646291360842968788322597464906861741706100736145966607428856912036312095681363809876092332748574978703572060859427167426978305358048962297851042535269529299910399888816706262732134374652364546481635310527025028823053008188381377846949269111213226594895609260507494771875955193196667599962440967114706419488617063609715523094160609845857847234103592288163787110134581074232260115441039789397502227416476100579746346312473815167393566163128899437520437473476122324905484582956697252745363863298746873025745641532238153701414382811652175879042140894590189646317874620865158592990614963555342585669274356787332910960008883683222637631277265618769809447333748403187911470887212339750180741790657127345740138831098942752429656411224808282551380365415889287642084756678083322347396074592115981759508219196803201584817022073111827115028591541690503534601279375812990103647230183251431721564730101813352447339589629431100470528083090056651377811585702648712890522667567895137428182452939173044644159903734332579483869009883269584326397688653777125314786724470812826273583123192725020467909252000667188467199721876966789522931988934343270481496208779087847746205043067245428352494119837295595731488277470281222603892698367464239872203275068386731935704839071776897199147778901714934086138301071959389168358582073023940940024466856534117419597670298635709492797841942393291547814303629097836510394235655296527962642779498084645396243343906659039280326763398489835057893780739995820745551274158028571413685427143878871148339460694518138999502222860394784902748128859530728296838430366930786699707797633332685741677502880296443482007685340478664883229653325148454875747365245312751144608598203372489087099123122485604371941869709743666818531406048442056645342498616278925897897999712553506238469577801616207941283964771276561024829179836829107383765428301233108837252376692226537513532368537850787939449830138515355863061832694325141496592367199063627768775721183369958737461867285080301399753511005999470244852398303787652373625009734035400929924336584653552292700894475386348064794723626360289736032574733537282865397291983985958141900826311778728870712032981395776912276639884955084067317284669290064074552074635603366157301061628309638293477581182270634680665785789292116574760192468627986825724935415316496912944096754613892824498831823026435435620149977362294979354306791300948486371337686644499060555444930470319606475691598269722304750555259979459848037029182712799371970361930498121063948238469416195055561991041667112872667938560773227908249331982001478013387552730236308061404289729995442125992003436116055362348571736507229258711348956629832060431032080550043011468038700679515846543222338136594863956131116931921210163058718229385594229186084689232602818378106978726336150607843319343704851373538971924633049302883627224416945385847433914825823375217407894925485183714945803845371421508999230017626585747576151805525328154937160178886963046646973692229880338770167155394528782496114568135654233189717409083085404410463648775005167818847826769016559913974441707586028544076256201629417584526927243645784552559875083289865667379860514702169218434895641508754478157282129800208387626538547613153373377622932809317363839164092397460672824693630602180044847183129144005673797907548959536003259877691427945031833182216473561771349390475628833431484720566953418652213925144313712261021722512582311000498245082063605924684621912463802163778880545900435840922963305004827933220395352666134700691022989109030855548725054287877847592212822689570503001865331652834005912015648463112227809060879925347241988087728832016873871307779012777735745000550983671304150795592008490321590567249729488902533619428378671705445567354425058838581227703399841317688284093798745891460248141165236907805004551269053770206504216793694892757347657068618551482450461360765321865769122306678653173435346596108766600993438142080759694559051054877260589882878644377120560166733323935206563669000365067848203131707747950610723222608424267221981827532408456370882303659700693025697279102741939712911949479808696969383008019658488462797972761337771815939301442530306686004162246774265885602185871190812689174421192335392545693476497458950886130107832332880330282957308482194717191701742883745415592452777588150548912375398434213086424714438523112658470440764781440590954968261036129524704041792107953109535579636319434092412055918576116513570670365446782097396462865155752137213696822778966692550182601744768893071664196780468167644452509085798263471824682409931717146185559605281984938481953384604155964333365538436101031774822945885410690516401022831601878884360366790240539246271942827580676814365735565844308442802698632915505071573986544770090608263432850746036462952333147839762004461900117363684563909617841420623525736692403898069883167581316461254857848732751325947349337482712816363484536923973330026683099793190519179029212084876404558525741675291128507393944686380275428900893831900899940422911372798114657661502779584659091442015819387601175180097318441313055212870136511131799044980796430326222553751735453745911852956882676372957091682857779358516765430459597339890339595851150234977162249131368098107946237515355919998122785423054040239827464238411100904951149555813691937621309238337456413238154897244214969194491154428432029589863741924891916786685117711227792803704670521484872704685790409983622650509060843276089665322940389433255316354419838959624377105377804806944653912078927883398488093018899081113353626916963249457852393522640598391656434952457370008665141534854090523557047278199034915329608005508358816349969246046853722878171298554179174555623211502330233924821094052267838533768737407185352609489473438557160371857028093042978779500156096142476683859786769561216860958809437411051658718420179046064616762202778628120281950874626216813883204466349935189548444740890676026061744981159410794985566903645737194273023154032331915656051101664951878478579518958545717924030286811189633865871909386364094293775914800044199135995593968423660099384936984974604389084847731420002325865274215067535827274232930817987392159545211529423405190421718750129670870741059940485635982305485619097783222531412463683466917675777085832875607353369891397232884727653982927928147954853044819042280263371687447715326049297919096067081061403506341937969682345212570580748250110171725305177276033520588296841247630942094427311761276746392102421693010194162577087599304304668944082429871462629226330587760613812846849023697892938075899436993432493701055541193157769891113739257839360528416635004862222936234794393247078963259389926360556216931875403413982217884528817345167884006986122130210539735381678287516955139983167377458682116523354890328669702357896930078516587220295251661849637443487653701297485247506574472518211136345674117712581201907795331209040919193123303721013769126289237064426611708820912599105819017195973732248490765128812305005880819183359667891717234661506989888380160371080692471895659015404620799320061150787016888251748176714368784357754641731395839837481968196797029605285251248326538777453432843908457175831097963465711527198956191179578478335645557732393733820195246534556108320577567395932727495345557409059677629354936893857317815172261831432024140752778789720829521840160022174070940312201221201848090161429453627083079262437227639808152466763383110202325775132597742340359085662608071415515430944215652824548187339070516997594928569114173215087238858971782033383949381026567386765613846198572549824855146448677707412206381766091172000501124075713426322647159493176809042639685820461847115662643267027103374837456394507387073987842789376613528241267785982821596494356586433646096184605917634801301337275741269699357170849418251730867727987890480950865233343106577827378486089760885860909999541148585509155896409968465013821073758301178184484327702514146177873597379502555096490777693079458779340440325202044961295901870216597130276269647827048005126706080847884394241142986955442116913057113216455755814343680491453483820338807496079696719116532270859216412936174973259617895590623161572740263328483011960663176621584981924751672484411524297894817794512116774884048047634491460666542686653062382625126132865101192777742276371048782305898662873236620404649486685198555474376071367612129156335450662979180407158921589655118681369800153142885080727059433064617389734259151926660496717666272173568086955619281981030497239073797452257154257638910805126778935569787037571475863384716834656625014509524654459834163931823787744786490100021998703360037503736864556123896797822789253322204831734272380036297912709934110050744015598159341090440730096450064555107269089340818513529086827437265832694306919725148443231772636286905712097935590110740865609604146742384710526169105146401936266930187548680207288882765485067426847422556021608011780016818789278783942883565822228275027707982837576903480767142375879999558915092667397191304901234259413515099904508642301921284253758844278492837359944671292858276382742703160709768917892369145325019743433745516278199058467777190620198175532428651981969160250544001439328964473335195915584586445192005117013289636727761615122237236662665735816448940853888028759699380062827886491150938099568290396337708100057798672974234125291798064144083126230983976584246456070740286084586852237567811035156108191057549887668280291638943920143721212304198125593630226664270085382450114620370892710744510714954478383998710117084720815039334081049175578391261690007155184262840135134109526233730482434582138446258914958359902872362777060804521199059403946924571323476969640309134793159380167771753609359726638287390973747382412787423580900342437747291381028820477529941356525474407618326300879025597565586191530761294683364867674783225640001521385310975924765063856779271888333996493650769051457214279923809466558633786057892803986129802981158406958831586063822581393806912142927082092229650136850105336311243829292740544034157595313084092232198513893486628631969157684664881866754530434312476705493038139077041388284467930875827224799576224403145227373616964091062717778880656149781486743786544360574418835294737071345537907446400092570264748834161416294768211443427712721701014140512556169706358911099797170371182744115925827780944585305427810070393016955741070380439520532867913148714343339008432155971229165659704442950926406578757201113011235027598808281710192332396628934475087560101384278886831455902251990004890733211412031657510863920663501938069468529659455658610268965917766817319764851283182616239149959903842521329048235093934324459550090607567788448660329784347238138073755201402187712786303845101011044562706555425475968356390117553861873694857109206683629048699242120876903554652748904125712248494061649418595117185295691311134860071594968519195776512104811781335029092506315422439989059085853485389542079227584075371975492518882009007710156579881345745373083196908540227267685452885410248822482760109339065768875635557542845840369417899763352625619671086322062627584648376426862610882135329858748278965960422374759182810777253328097991247505055331763111588852896979932642640988391910948362500461164789705863257550195390320057742586044762166341885893812173401302865684759462022107094877197819410460216767327050522925462773290641421711847606937290506013832205277720296103107691416622862649227401618568780083125377219037296931108053679659645153574199031614729908410296855318090418869605970744011707340969350210784854446702010230522037283392172292413328301378708774660548711540028100423347907861553589471111522468645441311386878766601045207924354578440170260508051402392978923643386051612060857614047157249915652551608176591751134214069144745723935873291867561362230378656238913871593509619312794949090476302449487354958201680600787736022511175822937052956447366392924341840221125214554106911181673039738289943594619756651044590531764180282649487416913449891620210093636249459382681815703502660971952874186449444605850614138841915447523766699495789474261321097909800787146714495253514991896470802146427494236994808469199349009046200185266207022885113782020700650769944755090601796420920246385964908744829379731626269870237326331757018288359142893105661475630162744186563556406497981897573301891519022399735658011556481299331310610354550024147414017943083424387148058655865257723290627942161840642283737841099845261423091243017069741139585426974071870240522705428923121490719096297748636960521008357671459287472646267451218755722019574856927102334912694971650482610369559757382209124480651870501015809408690752379908466556597779046978237827478446236248837416198156432701199713235932819663677914801508505146557212979715147236842303979510222224353367561213778342915215206579900121005109354904732414487676035450477508412613160731272458271710539550872513500872877869831826021231044301787187355356110412345528445733441001796158090762081778711886123885362395684906560802746093603575828446257875068568340905368378054753191148603424350640977089528649002691216785509887688886887935589960872448002580316521265507126556715712212426879296046723491267749120700749664397010063226118041231779845217626316930731718520250753424819112521813493998653399571567961595929993914767796177712313715878400330180466923406688617303671861512136709664501490045364142059038395412860178867195984267847983314327187762269656557299029427948969424442797617737902190862368874114662951482657127601490201354477035017644426282018039019404155344499829650103858677635283263961539994480621114275562719542298751421170650840700613502626424445286393897757166140469970341416759293590764556516953069010494773654634055294514611406709259366910553829360063761550850201007496138515891829399840381685204664487803412256688627586590261601991253407639368311910434593160703710329258620486029008807381399743874969083130934462305245988351606935358341970399619753263411006984517906066932663376385373955661075862845031868705929496351627041550609331981004204068608100926632187095087498998805234501417240058574674186509054456200902824945069938455833283448969725678666735697860571830513956667824485308095702375154570639776125568136166849663493334095334547702586647631315684475580590446043329280597993109923849597994912159773200739345489856590407392346474205550593649016263790012174754443102866337107927664051142861333884055329466268597449332008989738785149761321758682317787438595953938751609282222631768683186634421952545814346889322259169898715601455126485916812621601305327766387159530146225731021203900911065696387820091975989447094046154238465367537567808494318316625030533996249392548504469182142814259971813484913275263227495928626469338005839698999242659618539434190698931436425933623692277329594511617929283054003736825591691079112368576144741937787246993342871722488816558233107650283497881735628376206879431988584518936481535697805982804797358671730958437024942943094829554848827992583760321497993783423443326300443576337453314080067808646393531773375178289786505905368387493690590222327324902420853840082924780081791867960702531502187913524186897544015993449844981855254942370999798868978362152400768101494948104335701950688138754788454330257666278273321124570858967898745629244048036715395099085135236474907487346987542824948113370328759403847046848673682741385061645974347656188967725640591189932586800708413587212794553889744947444736866641747335675120672437333478634929557474581922396092156204993721945470680727101391108128112462005439436256718669474110687643447142908767067716708779007542631275285191878905864714936892059612682247395095605747283870819444847325624075643204308034545537247321728031750389433339328018110104023684755630608309078657356979992895635885765157087776729902742077677402575256694141529475783205453626730561376491511210796829242951974961836199848529120658539781816357828292949169278070211504207164584055206097705430139025011905651407605610507787176223267219667981046319213675765190011005757095232063973315831675522616258278197095571823395505888867804527977369781943478541788168624068007777833620466463640749575341115992153342933525062502620386642406953992159072702787277787572670954099257083827268494642817631970857949477706387744152753091276563485577533487742119166155821566621480788165098304567063680098451415262377769303701695325631917269570159470159578397235689138687337684489496231355361540605283075423274418872657726627547080912601308207754877410892909833823033241467952244186533795621890484834004512219828725300915968337267712321153592537186509616823834117465534222696719192719278053846327768150098572598243483953775045087874913319238641682589194614502399508449084531123253218245582096102493736800206894939770405392462985898655235878695822920689111310424576896055402931636843125984622692021112636997569373243097317644700489456622021222042900979632033380009628593879943126903531765447528307374272423965668623639519742756549247959426169618057835850191651763089162363286575215232668547269514102479518024927032806001481893418898982659632443807892986961171493612364261001142712992248985710016390167287730755452067035059692976547597338809991889355812416828734768917974081336897257534589084574593349481542266631172379717692209896223033503729680545390376717347465454830697338672667602385654009546890833961951702470561680042572461852797937534568456172283703092083779566429370786940222659474220287617430637737286552846536172484963179757514292085240038040649841547353084153461935018133424650008805837201097365347207874812908618823909421907967440581283398479939836320026767938862079534404089371605341477676433222937243746640527710193741680090496938608821845130291039587354473452661611864614172817362547417435045323928082451731702933640432032222200971677475220027938605963755757180645135164451086688290065533238256228323108328235609011951400200711908101344892763606442883267575429149495527404352524027064644618774795031109955691392313278445202621267227917121168068487535341067172440969853630285303360484026206497379380741146893021896197567936390211735901002081174557014158388087337633317668342900405990600893993628173346615514410242346331678580289546330150326810247291308226449381771110970129933041040291925986563237613918408044809122702261037719559709315709131869044484277427073247534615126764107538881047015337631853226683483021247201603120547650547787024568559204061944416315036034896422914990053589540152717053166593680552289973485380676579400862091028353817058560803034029086502000918921336150845185384820415811120376560387499197758342895219970086548255064992716229387746750847904570640273689247275569895228925327735358430396258302054921363688430935205544804299573434368278581048767869559114391533283848117380523087428335698305626789341087179776973544422611984453589666767677559091724743570720179186385164998436810971332119618245641011296024186983940390959569622061771411353273556799137854346747201399316110388763305238991328486425505110802657635077653282353163998629719469064783631180309432909493952605066895564011726099737719840351433065647506922912437821377156256640024449675048533108957161477757799587292036184636543479997451410612797963078116026028919721662265094096646516250839760363401502261120017000238279597844764588054772712475440909767472740374822492795239532102762321791660575511745232257556307575662694564422949126587540398906232943154054673769106236935058167093877992646128412352160941991032643124061330937766264751216964392394580794944378556289230228200380884020734750758609289044666886740499574389753699044804478914908798099599842381742496415666324556670140087962105988426663259383486594009825236917568117397363518878384447065069899575333391892869228214867782913642079589440282527617331684185049479020977125103334029041371469318912660340995742495872509071494953265188300521631007104268205148323380075933546311562167167765262105942693400705794841543457762187895676119165025770472432937524807695859960520241373117870965923082369631969791978131159154276641654220289714597372045816264794402466297663214053976957127092947076117941080990252753753958969501612323473104380335632973133170929412393695158601591045947986624885317205699745562705765572320094033876511245859852937262283410854261333582936493416153524951827067442789033434328317049233653884151544081863050589419240797950273360370177976581290373325508169928559666295440257764988982916063927394817959177211833003343329993255311001241670409406106499667114263832969202967724382445148068574637410925770045227347432315272157537695805565989892233756157845984974244470066350886589210251679947837873790893406376919766465951280730331870140432142143325534192490921690835673680212647672190630486451175112997009352214493981677488450599059563397071595159342457775158665388978988517962970505963305552894214390325262888482828141640328174377156335881974848346136099065744556249344254070455018838455474880046152785109155937844642968165372012283217376186900578336441206470344775031532980964433448690974332245186919659329517342347511740304999439788533599051175738097402020238426543428939465748279516509439425113934618542026325754720142565717188637360330302662485383805061719864205020561011667102606330783224170782525894356838684242610459616711749481805723990473776049379770728995061563903044411103499879540765216026565666503501788367443973687786712456710736266097429230906164432025700739166756485239807114361108920355067681167165976823662211018946965488211282998230719837311597148971100571555154210295613582606174456244465642353401322373452576974137536912860818007582033231873590216880245587041543082408556065126386790379939469451074699089913462047484856850271490649349080520650750036509782813118300304825332147012067374932828757588648872325749805372260039228740047376073247478934342498982267642524246473329628129586773692841108216430271405800421349253883799860529549824266958532900975876904502519252480711064393411297236055137781926571259752485839619232995290659154537053524909004456789741014457754144668950252049719506230948378442101475200287626263824345324444583497211663927806118327499260560571701089834013551329653079369800191483246606693410679741462190422274264271614606071472065498518799162087614397889536306999308614004626282575260555574081596593608819725183774829310647061957140085925657182964739285626201405760479427482249837870017482807930595730264709325172748969998789739006554138399341145121487864420003484293211377668181220345811714891107309842336868972420752880064233251373704359845416733451100000213511560458035771373757354217048433556741197062748530279785979115555852279728913753678506816174081394237905580538815320129825400271598814788327696327615265011133486600918069185430870122755708371967440536025767442930352786581980468988574182296193795534023655278613035883731142857213256829570852538225028841788286611025483351535784065254238234967588716114292926495081311853514855355697301117663454447453705000177225772735401264844548763716792980584200582090004462652379612471906379422919609979094593761744857967123392990463800297931635922911398811077157896149172062008195514193625937811207098187079168091449283944969771216708094681825925558012189218272872996007841051180992935710470038210649294375267418620483378590114743860300058445181824214452118615793256675090610387460299327023826205155711681332174801242880261880451118575964668222321783076606764449635340003980432893662656709589886608892195430973538720727582772046710657415417298302077418268841292037588219063758891948545446691436835556984668936774319913855940668957855817238621081477639902070377959819015994604663779534528773259443276916150583711797724377295605869421928521335154420237884546684936510422013485856120959630636209562794232769753467152122649369032024857110449866341222635397157111807719430198475359100375256258177475509351277482572020021847775474067801580217178720140821213503261593924782471207085169854793435919289314453158589541793364801157926248151187861181310568695449497522741026292364137134536134478206734012288867817364886011567303359651085006979464328620321518567690187071774242561643376739633226376460612174982421465381288092478034936594472904908442124543153690367295929680752315243938976051498422548940437118343671396591452874055068252059252884684733966111340848713903001666269381768433622935746499927392612306016013954450482900590434548232062821974784745301419076179533359335395365264828181242406411432413517043609911511309770363759836959986746664159085260990054945069082102070043505184917462915917443953276967776282386264539636022108522698160867392902651052995418575735511123402113785494453548057595164758367792767739406889420882516614895138119365786500198563589383912051619357776748522984934754520539115732923384363127147839813681782039893557430597470639804736600129554444970367415854651704524826269265718017772624858430791268236774696889935496448642851899373040468266405894563574757902705194052569285712382121736152665436621700097001007220623608361046563231379371696978939801753944327885962004523471658959755406471899252450387626022065790495969038703597941877307233384672112932865444151024189326763579364508897392944705987066182064564771832905974883160482838894179131054494606698905017288521104851999856938563811829126193507320981592839990609217939505098711509419616677174538460433667201744119450378832307543093606270882604039039094403706882506535496251005554206976495914566994027862577146925208978719601540284506401375037437351062727067253524454854005687705220485042878458189133163251562975767914513174745308038428884292957164477362275153424316965384560642674568111749751070169425792874978850672575754303069677663969001591317386894353674473606611351335005230262991986306890355666877682577725607350683373401328921016818378266488872799537745408633858400228839209508069405019309806243401354024058128014178356394801254347651653647117661339952401498398513232726431381312106135338885021385231259849198796630744887303231814928512177218348631610402317427047919746241944594561023126012797525375171345915917958665016369005620992511032215090855595100253424552835040315560403873885589164855710017224177295294809706892837874882248420905898927247181032703766678589259173509060434654016245316878379593145031277701930590799559846536547266884927156264354351148741420587031361449804262849158779684104296268984239264080932439290998289977944288597648283153138571769301923685423582284121369256299028702826866081701810019696819355768976961148847779368391595438949682363794813829430055467948806492077801544077510418346225924625205566997580669373179100359629075427830016762042832022209833871790342844095535520780649950252558210139725932276388645576772692552876968545809300552562319526345986953389755904579683346122898249818269994403739101754937682240947375668074339037783251289051549623336193659513982324019918210092890046216859445445557179510298157730816294064135968157510389887111295555519233351440643043575901468877878195195115344938520806146291926664031451231255059525919484153702184582715546152697087158083407549692729243737179940040860964262560315332921381758804131285866599476547337548526581653055523589398414502443635128187485246457439801866582094931745534200059137417596564385517289154853688277975338428016759220343747687580123415054882001868607361850880043081631760852059787961083305996145296100619809770801719631663362901718171209904850705463837451425505196772622131603328364438681364869510457958879114304928887137855778560806674238535821955418586095012950670041315174881468558597704511685933029922939628156155253948428428916065342454643102506919979036355892833412788454987556137141008096158177664826244315556214796495739129387760339031052882297261519550161017436966747490733777668971392748365951322853152831509290594834962513625732428196224635873393096583602657542662103468005894729830569621433540867558732258765248235358076967096933199786740672926161968475531101009994793313996862550511595416601049019113433381628716206906345975551097023362750357622072670832572397308222424602924375269247580033827576550340834688018930792907272332220648303180868351415586043009283603427969185065305188923481536387842043168589603781319586461288181717508257898545204730840270624129911522727337549690839676328058398461163477690049142775334651399768364429631492812829820154358158240734571610858377480393598304737705790817675908580086072386227994124926394209688097528806977700920066450556868744933367570699675960659640821726865422313210453641703469989260591817038048146786702023385681942974793804542639987296384622834390072921300523785571236432612945066099262441895236152746264310028816107687330356335870553522301429651692847178227591731064957524989637294199146386031504684982402270222605295814439574929450045047567914334995819053589205643610884000690214745129789983684434343254314272531387787629746648358001957825263779369119580730983878699236100603864882528299631615164015291272645518263909310435044952519875598720707439177273848419470272922123504156569870541976800131306721386277347737430761904977712598095372836017072775479321177366004867661992775319939448221362284593623895658105853077234372760483382410884033174378127643929220414891645378398406421509019152746879484896075539534327797155977177271240982164730402570972141736161444815598330232395232695018180463528381338599568548537444074742256407349863260492946739053016018925419122971117174498096797941312178506333398671932058393818129387157824056585231500282138935964170101084833299328071677485186189799928523303508076904612224828663039159815364672796173234988215772885684963959234158431593535761510472881376155355809252116175762119387552476264059375030544230635477146639783019974030542950831925409702028862462966566207796034657274432756920301946411409956236798290701889421051296896292043870804427836276517126971993867560364307110746610104318748522239677398355679916176252694725678476489790721416125128412797005924564463437104887553333361189491236123243560785546646483391366883139681884523013957075696454452920093746838042345086989996140752909331329838644346927744611509697865622066159703529334889943117330814040292856238794555304829126952844520220720578089283039029238967609932243823238732529874083062393580934253883764517481997688202441622855434637750809885514813553963186280349576423731531486766396265318448133296486586776589397686446749067635861096899712684006794464647329212522400355555874565172441595872004703076442244703124829240772583075797236246192742979276520474684267217686553523146516981473742568591120441381790005754287799969977038782933514394330983808045486842938936593910940073338070072016921738335832847672385786555442607446432192847775572653976805005959580225806480463818109418426434195098088977023357340659368496567547285420861047158961836222044973664725544188879784255941701542907518268098174087223222850228788561029980382872362279892339884070199354086718939919146516948989513538458926475482807739802796143287365576577873396865950745601096779202370631659197328774475200910568476246934769322210098627218899825361265204211872455308031178092443053194517611634074829706431772875327703818205327190934200857588189601799200743508141052600440685215950219033607592972068769641389447447598791946121206109289766074696639142629712319068816954069305733812443341624712620735898139718969758015090901419303934940978129873923967455326975047401957484696092105569393144782982613394474753225299140831879280022198654574334656945815899599460171164138007720821990498380793958235425304788442286203932319952633297929911468394340178586090933308399234630367131398273093135676243715065168705342656195874289907953403755762227456775553583392822636877559335004988498140093518559469777045200068642901133064986914538214372888094002101134544596945071786167853362549759503476882782283259720838668364036430942640832375697812545865373585166006945168405560221282617219597886172034026247658090720483356763225563703726516892208743186128573196000242614482396578326502835702038868829677492121544938031458041219644602224303573928691874431512924445508907708565312863427685396016782528318594081941898966668358162772987964088694273869759305272868716276893038880396780438953847090158146274671285093361668862962631269374220521310180318438274979677811627167245279271802068158370778152259906214689289016771844568386787960170104461923258938211734385577908025532690878490172969135939641554878496793893007915539101509857132402750789074270701914213893762972797503828292541646903997040967184341033632870460637765873835281215467384337273447727629655521505181336327555802013131553287683584576152638135755234043045564204178043079220137390850258327531846700474607630222593992182695792228343666637445907619395134101349962516147805579881877232483834069459746646130416632322882401001787422725773816670644938887065496801816018713322461935691824666130745890733920552416644098627201962647746921509963389856183374141869719359358097601847668428914475624413489960525341365606003996101189834398529124332126174388036082583784768930411111159032685604193035391453962283147808438692223849454744308983904988731061894308456103489787064700832715989964286041942135016945501956190811880193802909389845690091853562162030149114419677517384041290512460440312350122768713547540532483108338906827739336781055096628737277245157394568478954665123915846970035877322665538985218220814887041904245734324704608656873499446362397312549245076049590951786010034427449165183865772333254892167026571652159780880592156328699828602927513962961216603002583082368739017166329437369510616980865749880368641100335391829353468879800700510953779131020521595448167740505208652998224121713916540093346631279022773197915941302076249548221747624185921722054483798051151726584783973211471304900957481704188935638694256654357324215450219868101289797150224962766427901954295179829171411161659399955639524782894607645840818052553576319974681309626281385388160385857844175947403656812723643837674429212244187175177376735872409592732248355081071724483234147964823423440849341983293920527644029912291392921199643510236234146595739536504316096310302576016676500225852709183342405128484258339205143693819501197317957823728162170944878629464581791829445374040607199330018213492292030778723685596502729023446367387821562972202664805088718264975223680940506649649307962995665194203296712966084253240661107027578266687519244906369910867485215376691774049975801193885463819758147733060765383457309495221666256735054671308856906266346874317368035582724421240183297223838190330582697479029253444862421945850218568370839852311513013323510587087858647907975773010388610215373095973385884980583023162998039833063593917334122509903401632350477419272564157765089977299225023894810601212404932051296935780969447063875377712403299322196554292035363492411536598432172881252984678770700573926092369004259707573143261988419450058897603860136804988926246155295351311002359934005224802327274347544406079653605390630450057601880137800686306859949867306124489785997263052871974690213615805358471932278202865248050071868187375242700198662952430891260407962692198982514672556616371519066936028608723639739187694588088386261573740746657177031393422540981320108844604297658161324336789766491969608988691692385121643803734256450583945698532754537471887414277602147979939054696174867398199482629359854844456621759820970364122593889937148614626909851882620213125125753187847165958422519246849145502266389022546131809048425925158812806902478287278356669091418761666292383133572412432125056261762185814224545035215801233037657490820487112375705406880783936922387339039671201796234607494920642540568648404880383207513291921644820844870598129651946636760777246236751078166792767925286326123173515783059275554152881211866522363504484176728106625158988861194679217468678952001288015366663997237821237222486057276018872473859463805944920130066891081732178956744894049575893102866991577475848644731376603245616115618954929112439001391693688757410045636219277389019797458875198962554619539264325287466676003359143120328216773970209126672925580525464883478102588224888079886813623596306629593714732510370424631156821376153246474485523567254206776489654933937045485098035825062401581187559297939295710151172727817212426377737710081209707570255110328131498318195486885310487295760750393384102213435934355862045212974894193311609873694131766533243800530518676504522860904271511714509852974350861084655153322184203569831721425935527621760994725823557430098552285002382654096237067789715034292973324521414252836324700203230727020719914416134720544322271889815950428757886364423882454830167721096196530764910997749575836043929780325122780340295298476464144350701110783610519627691823694757803482249446198312456986315792456596811826672484648659241068111843222323912064532252394352481402563580852404444928096566465620697786524338862801430279615207824697075497178253029545206056914654137208635521209948583025258517245129360112442180073249279097465812323350109811509827289667858633059118732483641421879187270269755195300239950088116443089087934090019699581752884817833507623500074571633531689807379099885198694018436353861390173867785577934281863232835506145523912508761810003255322615947177732538925937141477444630440361561398335971955588452560325523161753344700258948362886931432031856551220116511372915896163860543501358279797314154740435855853289853039695249018292394686908052136797046754624314035218606559388307535009561912724409783213805214146156057219795135836961148575315243270214468613667859067750420461270186384703366614619156705783536684187812511577429824926987298107856258876700007708351593460502995341813154746405683711957201079718861594721372769632948812971842725327487709180710978480941935265254219632644781596600901336192215945682600051188445854884068957573222426041049949749627865030558635748477837436154924515120482838365815522736633332504549732834881643169905191275222194375411340262717444441462480188056319740111054329493731978348988681384338569250139228263275300740146125653638961232874960969996678692125717016879741059250519557895496470469053551545584063444763351164729267447526029723573531243967646980184829318151008469291143796431772661657311172437003777061818434906109008536421874499867278888543271025230938804440700802180108238538524618908582160326200602584756894914532342135008854100437694723754756535206154394588264421370068865418662333760846694092354662000643761037513209666507690506066631298313532776740231771838092622523736269572585061845805154239627205792947914055956655371283776797191115837503494088720806272483607787046611413767190040819122320620146286379820666480496939726737898025518312226917789204470849467239619420982382022034213915422803446223983178380297975868430422532923818102549444290709738105243993035333035344988373587421092259192817398717610765348858184072734360476174976136556082067039131158855277901309967050881510244859555510561156863358361806897733394368264451581449043643285929972328488004513492088301713347476655390629278399225766294984124777528232828967107690936443957433936841113991875795973649604746614869908692244065004714258403608660716396641546718296730668730717693933920917688111899762433499409572240058270849280341453707944959140350702965667102657822454029190245803532295915673673757023610403688392656516074415755111530436543087945789428289232428572052066673917375375199973488936597825650289787537134968082676907558681900378801696157242279388517649147565065891217734839888552717439163996505857508365044674191522038003507233229363265770630924885625490623648278532610852671710474743258401839053415236815357654421515176107364825124414025873289127918088441584194157714519892453255553093793461088477514086715005773220842293976493666664035919054272332697203484037260077878379357000186985108417472983215756178821749144166386102627081362914158157587313314450021121741125531059794255221190967449740765900626768056234269537715627551038718902532211637626285473489798393879364655602823893582953716012612949129484715051041963835558476927417731103113580460801771479554136767182456847064917070358953166740611869197466550286221123694366070862663286697231239415922368421516143817679594063754900353322655606154632751197684811698582765919359722333039679486410754873252922321539521360763623044995506825613210016344753279488663332716694486213421067553373381293760393670031654213230805145236153965656951394774701513872420469547992076049620271096493847232362977483849237282258254421589465879384306883017561596954639804195221051114527819751357917429588833655106478935859746006089534912096398647831173423785391283460458079014828547314027464479113226497823798809731279775559324543084577921626275013903734728387522091654672902200170806103957270425965605346908857645154510740305216009664226739652298053765200558196566384759587893287884893119258071926214217788809409887291747564466708238223536066142920828117354421324932879526071442737491729106507552337484415456064628229653807845915846344387154091278492427732611398012388219295828547664938868760027954624883030243088744379735335195191773914236868029505620942751932507244321163916326364597102477367514579352951860231139437372619087573476326217823825728921475602787674238465569037950048493701067532088295698282179870305790444223208800205602051776302694410965212808654011023364374643125010424776648333276427761987653613228760374564946338667115825708346117981817730236344088473211051162100675877435807736085797320644481373009593523327792102622200799153009936671598192872833473329146680793485729079473948079875702698037367080872211279215019156599544924254847016600681276115286207249379232332185921513733433114489706560124928428552578737525472417058070647916420155776334490455011396559695544639043041263931483160642207762388122075729221732212374701044799233170611363078714015628670725045786371380333913936010009129198633888785417387753040932430318968495346022837422805332428328915880470205404783224650619472447023695571113671599894136120200404773267084687842092520309922466448059467291006775780226119468738769269820524736862482754380274457472129116692918483190188479209291989444350387158612536890275378165230954857826265225066514119097662613220591364845401903391843859214724522007555250238188415606736426947551234662240729926764287155757872148902166706297382865781310142507550746913658764865092087450174718397834274222868874511701911221307619998877703796142859681935636864118061491194355717491151112785779268929045352594129646404781532775225754766501350569825923806210945284117353987795166736408815415303727736599220012135020841406949502164313800282675985436891264084623739649669987547319388832899143953711172971321970771898474018297964656331895307983782945625479194140814554982544171186364700777351235881701390305040648398493590083097101589568472971506285103062468897421274488157171744142398388784579699972070909417242975089834396493952764699482968406586381950961024882868631780160410625259280482978485623683031181112694856058886353560458950990442669852812628278023230351835129064559458303875683578474685201633724871483999543980720588702416186558029640058137611643169133987550936854156949787691496069981186019748342629202303193467016413275175856124140556254153850149899586511135137794053711450095510573878272935587840862227188277401366514582138417436999584902382257912597611405884324881889738373833491508849762600562650173555897225029336356653057072285144219182874502408683134662219974611577509480890139542702095798891279589929377392276657673732423743560238384633233138315159456296510484997234217346108568321699717813176830572293898278604013771175066166774824109019754513236934768780942205849305526188804907032821708372351429541907557499437199804173364896763760560705342993823880898958874657712593569835518609353215507866152347319782795946218897594696846570043445806793931643808513205041632254281638179495116630279147122989400556461211254916652747195197149295660532266016694040209667005745095398539809653851381702936618218313844089839758068737814061316922839530424865649943334836333304367351497563372418962320376533985883124281509107167664144275061646044021504659802636217653597416556291775487591252320379290900054185844925548617220601723117062889140114001516376108587562801279352510943993352887148395094172871356271254991471336726519326697239137722405639095932452090910214833772548044372032642785003436932916142316410041413364776563943149919728167593842929433266270809046867103306960364814654834131649461014695550875716613530295380053221049092357072441552672126714010558672183541067314798519268356785739617749041804918003202149190952486862216084418711585909095642202920705979160591341446080884493283577081423785954594704431608561539393763897607782080524984497214400815993662339871726546265155880695690766157921122184906307781666461168008021349594570390727396642546071963990513720738490996592531897235625500652686067164307047346576886800311276376351857429298339339048639402864236837928622618553659499775999407462775315501532174341610267619532686412936050169005770077483487430635919669202958678701110506812639434954808051635701857467323686040134131434004278507646499594572420838922869573247287409843506272306255292664114130693820347191417085944800266909637595287906045339389363597785883515818415225315205732753100751603143834882521580228865154994750656275847694417680902674103328622452444030645009426089113324208234858998386522958841072735097246286539114361270339902624666168814243565020352576904574633661912480736652510612604206619698531196316484462572691031988734101299075993197621544586140393545103754961409756136930347745645814558594807174940993405612997358711736628893076807291885331827710894385037136637402014688293178540956531165283987308114496712040682395715597070181829214959276996491749351145756230682414088720250815858099329380104362878752173070463410487974200860740643627305054291711951084612412407964132367402637843847494683338540222889866487465959822548037384716291961631075859055052494816175608006500260281081043160826411271187119239320035704102952946567439640289139981401371448518981457524391029784028487935915333940167137882030770207562025766523685600604239811222763333937638474642470377188496804435806026190260768338420541986500437996932517127565070733889543781832828538593496506456479943645948583476680811553666717933280404448314935815324561581491602129193691420804031395648253871886949822138244494310216549125863005444142659147090960925474289287826207608233359727519984002262507722857388630105114856276308061795852076572836495579191665695416926007774870320902068160510811706720966690351377059164693553322298292956674264715085697279519486177952482137698207526868825110423089858890113990608008104874287242134450112392778224331552316949439026063733032662196164251701280718477775354424876894538486533217648785059823604715091150201081265664699867164046907125209986521172111704425994205755178162979465701424464125168498232514977902329483718433795206544477226480343894248579441410077441165276170041854931292239877586802332987876955475860817524847066664514232356499136092714111221634160236344670903717981403181016422728515373797000530217876785420238252867157630285373094943651672197476672302320445400029753926288546384180953478203615752751675147194818802130972003359665644519393724066115593155608794340134863914333157114554119491777848387523325051845076976725977943238608331845713919080362335453652658161455494195642526919782372221046337199261908877024823641990539642311135352393180858471160782379561271315828152411295631218522160813150124759494523011962155372239767933144564785891724736288913137568973820451573289113335735425663383200618821023942180331797580409017040363446062069591408904527170291278162299377179549930185890844512606831471460105552170560015487703762675845279902529104298104014516822733857706391319199640911729891337532952910257359616191669140251739719964621210765247728048884773006000231656699832695209701643706851108252861751375898561389466408678890302945109846014475842144847075102740868810531359459335326380475768673263359452078772167287947384453251386726168741939281654495752430068970469819126095917677281893580039775999320684301573161368634777979966418381122968715420524781258913855003425026306465207667915509564451149542913732212849653632295173466548413603450153404683850118476815826727974947648837301743710651884951740643142777747809486330637406011498747258267218434350011848055486679638139978818470344055095298709442277995676864384228532433630647546880013755034630811968918934447261513004298490797766065363240616767742275644388083469909180454828104430051768627325414122246286405298286606859430274679056996321284656607145683503883770456896187886577409322030419044415089182991048710003155493445264065544209454985488970069610723149012382844076175659172423518273331819160759137199493398652524822026007902826888282145183155226787444598986756314184246076667449072422173025647600474552253053266324797306252977528846356695916097130941942583851561464256202900366676749195598874785301879853156125273488029088957826038305890737576958416023250352163592029441039056596813174266349633321879216226380354858032733001841787401159393645843748588976403356323277169640576105436436098234253318975907703139940456112159950099993274106741639661993074548874159782446660280309940207376418256707771258323749436601129678125840384964113954345187228630099784077867353101699430117231837288836500613567441407812434739757378616816073506201919189691166790776552659596355255580398060534870901552014565644776883799694860500812469249758892132583061781355406270072322671702806478996588483459066263618052277688977485853123616102342490811134053908797333167718830212046611321321103526048010418570289153289419123969015556656116217469028137657939372905344649389169129669222916224900258509000296257269209976547434686299642197211155120360369334973019839237244992015735561698584059042332780785653176789418891972842673795085232884907496077517583729116708036725877998075652604989830462616683624843390298400685879340779465451710304503079613373938384592724454500857262042083759545269267543385035966959316859358344816216026003523746664411819197952930215276743777052017762523912019515844150997768044885376600199990223269063448858777316472889993962300341302073488472201608873453101195905863027580238431366237196375329975868865334622212812306549423987984808866918418018851494210248242562369596666057274583760527616105660456744853271331432304623582126883683403716619956473819970568699150153304933046028079433279509500562776809080761453720817047058221253332627922246314617964138129808769994318903210368156075579656330771040468028726841492989006813057003125456720676708775490641170821098738127250112469510912111443773062027114777735772741639096715198763400180680759156658379865111572745114778111132378968694037340402408357137656763357708030779818527304704235703245336302477215019749468626008638666920051136315078165738375988284522712277886163511060849338309202483826520452304823488143553749965465514476968049374730092276846099120574605680965514235720895089991185185818411152067785986570690202052930492549303537909817198190615197805204762097206134703257069999431955391334586381349006658888921126868394937084956738075613707910958606077529767055860352814761545137905670385014648354587688912912968583836309095746672471789074650435206305742520142612922077954387149328572211635816781730624794016960679761107356934158143278103509326599958517197423540412318697042773235777465223094306823525982663628322731733111907819279233440970792924745313692510798171075146887849479568104792873472194056210192330866871613185115112510167159338919597377694933039680438566608016612843609746716957752263270709278204424758489728323972292832955551742589263186290774598255089081776876798614340836034378797358645360766235640740314955320392139712614255422154770603865600238663417864425139594351454884649444516145812999316817732368727268963484447276796663545504256559281890782588087886911732894870678130530342522646153128950708634311184823202988895128231225389337242834137532053467236785793218385455062335003249547072101220937962241281330110996417746222874697629276371310826957468828316339826225679813715137783708911501723821164737991419416003841823377916303206661732503344336525509455112308546931883581847020616872305935676676806686738885521749623262246764698741760345647527764223901968246345082789276655158734874822350752950345679846297660117428246330426207423183287393573665771657119568825289223696800967759256537052625614090106519796162386325605443140436304415925225161860524194366290265057365612404100656257521726371464045331192615463422172692112714419677901661621720265145356546244811749311752750683698626487730296160538119707566304690445145072915897847791893515231097969373590386200580243201497510631684659931910105942550835601247997535102780933167527784622939394269953884903807088028659316771247398466983803271422012754879769863791878677770346693963068077509597863316897522987011543896772231609849197869621978757795360251700536790641338821810702179905413022859763477262441714580728862228676193983792129619269625198931160087763351864560359940163323818407936548910772335279576477220302824754319738880533765827024155548454385444583336447248957739632572569925573732025491884814996590369012920470321875727119773250179691278657630936794599058439921372492501971251296197759689076461111454713635954538873313304753232559670385876784070960240166255380580931231132484263194003219569111902881112770534375515289844725590166503116085827197706530517733341181189549704806366920019772245966208808936728876224764103029542460722528888941718282543994483871180037975729538090794451023841385770199947409732497252005873771747803036879780536239629996191985351927225296074746740748603242724691087157090564490835961445374663992424603418835084234807628195818678307307732995935248282915125566806866699656972902925717882863269151656189993787598782357249948161428413188833936262319505894533711279965015516329345456938481258299514136025713916802684397133996162075556910018238800646568759412318106057506360960196320432358894781816198255342671698189109408079168914207398240183578443352203455455749738232751441533201649387890140101045234902785335625150642673703162486921181449182500106382239077465066893563834515848962804088413580045149638944660595649727700135460883176596493454417590947057021394003261155467499428870342739638672111618138296704214597606822912662693130994761195566039113129152283436046635209103712055679638998904846862780917193868779725095908393838440146624808501022498026623973820810278388495172708053083867713465981560233978279572344769883429684145977975342839437755241405759469190948087345696190483351420813379193085482308177895046331373245834654580468840246819334662452591639079394914669300240090131375695070005986177568185502269133642073534324934249659474234118061953238493567994094265152396857599650160287034058033104029056117356262773259030939249976148426130089912201917307748972013265388255755722276418180281785364888044900526592596062478864948639172159888132889876179137726540272651704789277096666167056333230384213810082935830581929706009509535867644129166512230992718227121141093310000099972444887646624150495433050480604184473321432755295133948631813098993982367280703266127367328290345405264706510649356493368280148115805246924576009899904587694104529942032449525956286077698932534722879371211593554727990377842424513329374849615355719131647870927213173247006085771926626546174205322327651617165428723338569353792089612786772304276591014723790391611149308701429564964662624681216723073541601158085063327960808282726746124050302389284353132402136034759993199443737373651845693702445205452023258704828337267430993203721129031403126584583227346767368760000005398099243129312811921506955472779323904824291911505439529156513868961053601217059875137704088863454492662500580280980587849306258813663935350862482550096821289920571998786088114543577393234920855895522526688537459092116426061331574012222594787277046849271390206661389943232206804356506350576746956561483098592450693944576938563939730926874618719995415805464090024514472232168182222843396659987557652792778997307153066421405011960490827341693712657074402363338399326426197193173281007239005985921611236279201491832451539171508043907169378209547118602737891787807389703730310411308377623321848909979376304628621704092063660809980829100276831642222681518028672570121819599127217223400439611502730970307798723622007729578644582181516157898099779854586473661718095495800473716003108005253029122142268844652133991778824362918277669829718705325205042078826094858555236839794030374703080310765192423719668335725629971771628178909996567583413006721731949951146895897068901279991862011024819049010206505738462043551200336572384848444992824883303866978203616296160830773952025979101852254594558633305695797014133858982189397279537898183257255636775295116652096548261953424821592396166706738640477737819089525515117971677291059747431758591528572732377006447044274870704073220734592725709765161397550543345123667639474847849637448432091196497503709875081272420564681018736246048317566927711596150121033874270723735150715118530487901232517604858546314222175108035918966846418287985953931442973934792560372085825140712424677613008335071331242148572745293925754854761636411056914608378384631711989786599440180865283138607973002482710735093452734487269655479385009773668835961292285594615552367797582093957139661879296977111358964867154878579450384481689770328603087616270602991609725446518180430753578068131591752485423757055721541273620732212601468006290398100884911042643625059641735072791185928836486465014277424002878677181838445532353915919779008716561139982197915457526118131400983227633887542976467950690490096886633298134822824551047039257812673393451185339606971185044613700426457408564797970700593843283792572868780923118528803276193132706053893117594162208252965477114731453115545013412558911006404319506665184406758043313399001865469038558485746322433556806818592422821162245969762764151239767638081094107037922871679849240228820350375388016142373095506416063039516113863900958839126154148724150798287240049152038488803855342492580078348413530108151562716265779933535297066125387029526015226367700980237161610143326490929002845801441860949409787041714897632434427876414678599994541830235199451224288229261180031400892036114570413229880664908623497955146668937557250206747621964508618903602901557078610247598944678881973959116399247011433826260320852500444721862671492942592847401647520395153207171733500560818808229895672401679186296540897806977645786261236960604902227965890902785552123890655633708572806792442133386222313743409730909582516918430053128354546849447905407677965684114078723307062488894111072567074820684055972888252602146569918987948616504685703961647936675550089559759980404808868036134421635589205353582681299267255172370303104909335506388195720601414832228236869130595145555182357779218301542592187043300884747505925670181111501080715153516806478554635172760707570809360793721947730318807306499260809664282927271893790155539505866114655335231285375580237221113246661515172337806740507986354906430670086005407845107308044149115319791861630369392919420787933759372511293905793529930758975605582397469784326686247148385669359890868140541794923659631333507769591981328480752170617671075835792420290022455965569000821556892536416070649748817464692593961163220915067739531281104481786113133661932949838541682230517640397613841887673333182640824928452594086992634883304334260792785739144252161530586598596648413373605883544956599913039129679128238988244655390845103750815487458128170461932616904357778839711716145826118061749929153750498468495074645629005149974351162972835195578228967702892688475450616827965749738531180440203529715434406283326267736971893922449132870703267506034764026023906154093682525710549568671687423925590399223321276039418994731989417123099797663457111647507116076914711882071373290336131736526788994872063978686947398752975569767840027238204027997207060996774908276770426234043637931389749038737472190815542555953025118857271895750633102459009334599304726955086366322153841875407317378033063871078819397209899225747228725708886883125776485716405909692625552391261244248028838134081263055999564772170391003520731027495610220060010598006531019519879038333679062681191165947788754476054507766013823380155917039447900521245786252088480199654276453892507522405603404248332153650145794148766323166775191496656462303411519266416585025780443271495551447869163005524622838607122229261260262826422063952615442070910038409666028109621876873499519292871863923290468044475974908504387752367857941663043703578616015748318493845255741095924657169623996441396595545004301951369619855204301278178244649347845063890191969854925894537562338092441848798109734951437240820556529754593627474557855345480071119781897430401591719111748213722875754382304268152105516178030229009538932525405326349540446116380223435022061884944194921920685360297783194285257399056567742563145166525971826171258833625367369029829177859538135515999300569036939690226081070350957418517682307443859236915543905074580986189957163406471242860553519021266440599035674364077821726988129195452109972785810979204435822526216776455254574027659699950499086999650502453809837046533805389407416012386365245343855378706499605279564622645692532024455046850820731916019688790940304400469509032733452614967908887411721993666103372485623603008387410993932209558886873116169985170139443400365057739687505782914337610800596099950651384422772361691002392412268365631268386250314737010611530947590556059811937471233344922142886230061983702086216423892433415620557886295087029424138454530386478692286527343802305398067903013222324669594744075675833501035604755297872355290535039037629186729764707185505646104022806007014577906542307205646144737872553793252395115280987541842366024910452908707316899762089262161459673677061849854271326501756515752101912735684285139912116958893732353547779611611640403581172568883940274618864542532577504451762839659638908960781755495622044148815464144043565803256460670923709899123988369704956031642671849467760140485040281212583433041854104030043492499339759054084980944827708125644990194664415134977323192310173843476518734792982958617876223560367379345750059548419244229733305050065989548551644726544721361421626188129837390799726477956143050661600350724739972446657797417785382445959482580701750523887091290845611238075179781577474621411394923792506255590032174543652361639289375040506325468694175581725395350150951986765494066196655458146975844499537109709183547382242812849040632982782658372391858579150704464787941976525811907910737843472335109890609445299380171723830072471181114034400985651416896341719200274111784422317898300510525398225842424365668918099260029969537714250634183845240857340244425145313499777324557587849544303078244080544914657927882935135419009132366418769344063868723731984671261584636876353377007337058110024816428643297451584668610204569504980481990093273039812403631642137025699379247392221528051723777348167700427445921070855617271022766315910717315524826276755502277377643994923095255538392615463033381430865352779809748845590873159855182912101148740201585915886156176984539108709628293498364293186771701828357913433289191090497860691028746442180054154524028333871679297833117542294183412768856030279311050182763049638289459844016130620383573037353297089038404740650216282705732968729233391833460401616023773372034710373603502117229663773916617045888031226873268848330988357298835641927104588472661845262473223475564070974094231826067495334019327948717970959005982035079376665154718937926012324699077549456160019115098893221426362364356158999628834984976415325648433166658905278900000132337857169795162845748473864389328445886552742492665771061737076282838594813715211731258133050588297495763102561839517941529104212923141933018198234534497953041083032178065217790783221518321782951018302378511344394714195964426835298585185818449305560377687098010253088419957081031538014353617426505830600483131526424825384050099229573397995277069197949425542295608223232321259727210330720268468093330661093574493029483768157821399746352018531207080985586281532731318489327056783742066956058140555269653625524106220261513291169416091660800714607961190729544278997559288176930727982581183205357139541350637227602915956079955342136519106266429267526884690314592170051109555257809838222024021087890707663072951487435599763863496038592178062011546875002793981668624322996144142657762337324892595780954337554926211466369471928753635473767524620884091601657678967649240524992820995052010616820570331250893035868721595130111255959879839099677653506640621526263878872327809341265851970359134908182424870170529856948042387770668138880636580445033017823459465520314139065124567314757996172804279570501475385148002051922141267741897350064140232580728802626664168951030714051365524697745865904672164164144322686287331730192125189881465521986174074505619803300675674908906413814443742437638880721537228202224874535906596584457792161700666461192401674741295248495133039424209713366680063725371598491489249961331100812223106887317408998109764394200956370731984180357762673821572729355252892302110719666898321348060777875978974815834754555182161058661635622652369454776106736829708354819253206254811809401792503422176240975769794625246148020380490729267319887780058621261915074258384432544751044367432922084708246782126630544037390745275397651701425480509685549246959284818806671904789001735747890424055535415151125361945690005335526461860451268191721624638476550225375563574420613450676487896279632901800577745928062118825438250418665326385841335164874741081629488311809112192585523152043842796451374555044859710337359424182216576909264665615974377698350333157455934368071290491286686485552300365011674916195788886346943389201104179641652916109970667543028314772325819788171081393718291452136888144742088024098713545502177937679500517758177241003681817124021328729609590872443366112901239131122132168991640668694419026347077533411017382915576655965606182941819403266889331749234033137347449348692489831896289999797924632693736047430584342637118835046601916105833675210607423662351355783314305960616338121804446681401517043846969121984210103191192798607773935997347525584316259233355345190788444732511377907660733229895135348296631715188024874860844213729838425694713631299495527096974924142630959240305528618790877491449591780677246368025245707118930884760773055619377086194694345044055391148212493833171992068680447184997947668288775502973184763857157152542266694775629671560703593633395926913475485490121480081161379008954473482784005008454500439858548438393585209967453149998434989417032204445093345143941569397985345557602295849953274313967450309850380319861960200720514822866312721730822966923157190951975895956792322377288329988446165418131716058960247299816923700984896340652480077723583615070574172139393406117086574224223626265316956744248822269786341101716321156772849975964832819563333683184793774806285676196878360173725195096755180409716187933145625578092328888607749962598613099879595676516337164214055374001468598304557345212759844940186910703963884480056716414566857582534275697535414203285981103214824511688379203225832803295644997263381898160910215855957170775732897245590308003768665782729946822570313331963902418991972202667231771126979255900645739372306337318519668750398898285768780086210144925617901833394185853367019538427457707948652893743796970233413456800815866392358247804172623218829811866829902008793413633461623728114359672229907801595095222067669279581498940780919405570285781621159297314803180069883631399942054831525348046437620594913882630668838027836536919617667423164191732054072656327925976479468854910846406162315890860684478229897990790101003572572586650788229127243847888031521581386981170695727884529625430591707906269867048854520520614879036638838101157649771549918679721382093133688248242491697730414017340936913473626508559787841397378178695399619080093522095991999612879934017484289992816234248905812811543589990255834543177561770493096842128570457400318563912630720928609785836954083328772718494033483701755359409985618439780459279506886122172867451625143243648665383737781295480930156685141315413738971919480263004699661038505404977433645164113805328875757700699187326154668460294694879692422053802427842810562819721001430493846526343313673270551429401921689379129608377541484347928653651252813200817886598621071361758811830344480479503172704612288761242682643925769561335663223495591479499432777346187424811275296546696757211215107935561791143682804776663977949676570004111530732427492749888391185477026897483330522637889102830733182624034794473588970052043960531695268993488862218451610944943648169749246794941609850719909378573801596461600024595572503697217778307465382685003822422469596385710879221030879902650260227145760569597701402541003755374887409856342085479740997375858051310848488920607607810342063863055411399061791798751618754823994616443482552044000171622085151347159550922125434705697858894992332344118564387408695714481649747522939125170698158333071914410703930177019620398770626463167437715751755237700188627528699538996759979758230107207714461827767769721699633809400795596515877728313329506116893264117404801251098683221253004379202851645855594205264986084477029461123071486845783071721596258878629330437444315125698830171100602258002984518821653335549227216096047927727597263663136525225410321253997623298816053094962501893636236488493623446764064379537064971819292465421273424440464442712615613236525510832409591652427941843945889176452145800802905625790939980082682706680925450968551180126747247338895979385108549394877705643118991077695268116609258344525079680773844241600455785932871432183793036449450540782660841958665407398430725047736989792650796647891356326494485780378458261176338867245227622751460119911456242509243939139824252006454785974535025481191407972151734221672411493253752300343618068849810735427327434046910445416265903089586372782363385775007002180909481495803319395641555027038338484930102459116461656056319950104217031539363635584987798159399624298490028332702067570374666997071232550353792962540422023067402773349314934607785885592499340605620092738230861908913606674244207798492125668589507796256926018917097929484456483280558508641646097216221776397159960342862132984855104085610456154281367636658863596850676370317433109467208425472682802163836357115451275019053607022646660697285517693482230729869505458832751869181649659374651662231083530454595940770169432856399912424392639248841859723544895976253859907273141433636322933017357635319503434386298431380356792082453536295569089035758107906817944073806839799690495109794365601688348591408179086111510556979321201566993822144656953895831931676316815118099144716313143979331852928503964621189883150736385040399538810917955367395869130463733940547337881705756116975633322896445426583845615808170948102509375751603490353074598219262096200652055763938294410871871604017623241456738780228709693365887353595133550228231909249982419733976202261658184160050687486844926988382474995883443059567435479211279276420758465758434576305335595067720960732005391968310372103792142155469408153126200483030785200351127091493045657253144512072481686481835110992350747338075169884067895641040479258968328152848250503523561179558575893998201326323530182266049672373890346762753891687867146373844457519021698546668065753177465306564022490263181210929836075092808077836059460944319913520768417791803689632795154553096831656703248415225455472053216541009109842495760671563071534739693495342253603214815383088440233644594700469732659863416283273941712508927916859555251062264781094884267242560026950776072157666882819421032329294341029310825492207857131175550839762433792970372588280451444356984756913920837519645196981604610126226632384341962125023033457595705575644948537515396294380756583646007793595746694649394890928935177671137864267323666639731728096072479687140648350757480428467361871910691292247538653624931597663339615412079479990802712764992851010191739360593832709924642347396101180915031519095304481952643958223931240843040195703529687478338948650109705107711611873187764975749301569042656795302326671919723737367114154932909195905410156404795758161415320550116558868058994882313995609421682534491812434366245575172209703047181490573868244214405048487762834473342996127446158796008430373408594255774330597534714877943883546094573997596677290336691393155648623051382934380369808475542110526746633520312585287388084556814860570217597801841139252362709575847505878529188109900985323488047713495233990219388524576999916891553704821674131653749029905143499011124845043160672305269695396306587105534148080711705700002858282307348336150275809670191250043657585368354176437990015895190126441337776286157513306523611098188069987297147369554584592025280611975784533454575979425302300864028632308771626497473235406413074865824401077647288879977602717711540479920817925586184092393565767749549735344005173709586707319147835964526685119091659127735662396325300838649198667069244908160635759502413159244761995116825081329301471791714226115927682919219296898654296918990015506171710261182655831611322522950524539471881889945138823258309132439224159335773945027718199178785221795899189655873459986434856508988795174751589588830667999485610375987612149257810794879668716623327766250175872458961455499625626254336623192774664102787430747634239056399767689163103631319047055699678034160307946959276463533732047196071899829006777099580328346650978405012969323656045588521517237690948628462547404057051114960895311972883846795939381366957840450769704655118837014450348297840113439098120983686812605796544550239103671274889937001689949098739183599054169861697099832293316716669575508807776088924874201718744002918464068315607193826988026546630080794130899117799525573493567576666059764972480373812361011037075091068057131358993403902208949259306382544655647851628389485072892549016641451582923973032431516224098295299647736585555673787191449956024458727990668863677872306501971999960058905273766782693621034736699735183003208823627631834687279015205980199355952928274404581034147720822304389124717809565646971701724727163829767036685818167270167637566902931922875176726627029507128421038758338737602949283886180149499026335438420780265001276675270302133979023426696720227324224356542636108124717562095807978083987812224936375515402188134191310991130254098534885802408412348967025954232676490188663359484378973158370385379011868513577912927556981984623180349134896746995562490378206616925491545020075730072094760261197588397094911342628766352911178740180477969437654788049779668765337871472012166945337294892986265923637983434739686838452313294383390439218878050329175608212362007461225728618930359725376772679809847495614766675980503335527142433493636709097996087860356613371264582345983282471010146020320006526348033351252066111878003546155667250679087811384770118014686594440163345104233799346837741852159522006012871654133212480649649634637401536394647856206698406130729306173793944733556771031660899495441481132845091894133009192046900426521656992047449382266373032894288118740303979031370729516977757483850683473220322843580048707122185881772772744348107842912165029421553689593227382578623698371189760479611329445097555391476688570968694074449196035073473495721136671728209118831232572286531064592819350777816446952438978806334252068880630752699542587428665960620484300133482148977233132690556417211353795010137307584428334917813733696558103580445875854548316067296944607869880356683352544935892413007067493594008558943537731201767553467339985622480456150998430319841474968419067055965153785693288528921966970293970093637148681648334510528787127148197092123077051691339023901446764504631560210310690155257259654567454961699163777018043386196894707454962736486552269164772933184028502589489226897668168742986496643132172407776622166356244215463823362109723240776171703976460623195963270071318206586960519932074452057300285784440924690145933050395464888206264201857409781795574835790215280006878469041847866554420409703722229696687287114843631596850401665310176422836978292803357514450230968032208532988541474196638903945034204465387188478230811120313335500278629483166809755671331178738433349591304573899738925323405105143753533736850962025965617275894738041062785815753036112211089440018698273887077758981325292715805548093542388931590489936389290905091499641081464277683698956591147300145611839637541218255760531763945013754155811583424830998367210450987076829515590957782226275419845352302797379032516265837364182950638782675217272543363274668507280254802347690664096324722563046314719666298860068499520833222139696050080653251063770108168655262507948277339350965582975985744301093253806237507227831141183672406100766733134841084303757083712792124657321606450821870918435094101022737821520947868967929192908447100800622941817244623579645095305728730375793740050057752144257466009675469198137019507016303619622899333342037569033968496702898566666746380451987282924864592027765330185557144765338446060609258184407045304797137240415493505650020981721376177750716197215334308855331712014796430088187790251494790319762065514010525115725471241624540967431943069468148736220727813190998859672123322727751370885575284420030089364991450918324685709719923958453434675260949685523564530779735048466644285571264428725220799120577456823377950446216716840211658777837006658807758000220314749187314235066853648065478835741271545291721634785580278338977934510043584637676315094965381415285603318006699059241121683691209907196317755505692468879154972067611718116378553229675885170177385304016980822260236094367571409002456478259455301111183434947481414462772026926642073159735354767850103434641405746761525202692971073917198771949574709571251021082429399630147747087859040300487066842168923382116966538624481476155617678970694215372494303609078176256199010991690251152905838741148296916344061499252898867080192421908088384396360521669210229388930988615962932954207047095455026985902926190302501410795463711940075495468036560610335194417354919904064428368943258165561145329675088578120933075550690711958482440633074741995326961482447340175000263318459595274916231474713462865480877960958862453484763091076996331778910142973797283357440480210037441216951478612196272692696495541390677635871970616620797662659837165769188134120263717506202751391114426845433974308078454962975519775257283533967606759981069738392008325682459078181811773030652933218004491362482507642216744095562790985351935312171087058250987915309533675466256825611349837044131669681827401550951981119009622683801211817876836460703922315058713713058024919007181336232257673962971010558890995504191996406258710029359081454351348029877926712358213303999219521752422820607470762220324026271179779608501305366301820055017023321881433890165174459568438043416307788737957311554919678089614853814977520491830839498496314289542751049791752909384357365583965877358263440412043854953675733616988904024739307797636225151341735865907514540366087800902411738302324190898008993495599174544563872452783827523991050481659990420460525496630579199826401283502076622708198647837217240412754504219936715719000998874880949960078113385006379618763250996957354219027953253563276034961287792063594636141360362449421267189041857507366477001561753422450939703736993756210809419627310557359857876445210612101909885231636277507365769088466332286323569185812957279907627897607168645078870088084683118127323398600920020609770942131264555296285343389194322333964962482441885154192249109856911506076570407905975006008322539054366827814537539485823383649095572299364991311257359129809090036908596728216962010799545330649371256272094931598884618825252026723280399098869993469554115641885325322296468070159470793248100631118124268945666570837530449273407050439440102051095412157298905089117004879780466577640242815512731902952781150324119232615234781254120958842196462473673222271503706739182491607845317024016805615655371676194414738556110410468845124203686778768445988592789006930752259809695292671500093924695681110168345544383811733072751709270003521659878832538304489019681100692989929982685280120820813521806276625684988408820416687196241422527554702110830910253319192838346890178663095875445580757520678500369634692869720035245778174864041345667507403503576668910250288699812994576887242641714907222872156896798525292746339855598516995686732683298457800798463929404957833740687992311458132665563691230986857811388254732031790555365978892464756878328859886870090110460849303146737940107013929421113177576426331327897927451796006546488074033504907727494669041678672119020699717754629562990893798170533393808900048574435095993497548021866082578007476834476428013094119633032450094098031000979628759711023196819537935886990110441531937421325532136394333805897226887156079523875414171253168639356473464571758353239583197398883523728409866873409027675440036487592156275264479189183225645845676641399486410789771162001806204979862373988613026666669136383552294395464986872856259224199093052609640273458960869590336628348250494736253021661296458182690878059061084502087581249955985581873759664830210818736414498103525231136986016385342790473009820042477196381084280282812122801090726685229023268353957454160357081797040285276491475494864775198746879724545083021736490063842957504245671623274075331423532441870264173349712071988343476355666484996506421199771492946019387858604028664394966325454854431248934541522037240009235052355721846411512142681795980115955078397340758375956497088188564782128190914112288239464765958746320034505678343511702957059782486980358880926813088826513966635598987243579270499657700323532508936589492075756375352628114480602589985697931352780092200108517510695218714899963288380686031474025592541436302519213742789869801160972193746533958232291527917365298846120000521936410320022164574616587689733870408138625848581156235798880560276819941471214770565915461529141124519627771323735730823226558944270801784720970468185323598287422795985751776976385721907934501401376966357975300907247191351535149046786953963919732536065383207338190844630867864088930612472938297014380982970081554527309147342566743030052929945430981456832853563927243706463807413924069240220088945570237136024122703140363378999358374183361124778757488729308050811269208867375108294740730964909362396421466256278619087943373366165886506188102766768152729443175596724351986674104659931116351455567495611230915091238286547236377849660955525886153845512380030531360961412605254366028627690987029562844868945738154379889377744241424038502908130947901190178508097302269322742138114741532492600974931739256835851908740498734964097702061607153974163967330821823093572536401570720235671258350643811269745364516578021958993591800100425430367911267883492567029028985672831346347817803787152060616142686275021669862023044999928060569869248417435043906858468156567598652971006284745886861933813324889072489845693622167233298779171627213156470941100599402520002966145208010088570896074315925755212489556127832902249826410670752428126900230221176148232903936483096943375927184295440751613738845649271342164324184629085718069324833510114502524751044743319321607439460778026976560086336912927210298805851400742695968896285338894523033292230123643371520789079805701467317165502697963123906094131404982419321346829100689747875684600360982963116558823512069389167023062894490571041160954189526572823897928282508147834979611433872509532638654037120356138823410403554915461250191180442012608844432007851103445981521882475639884419386043281464469301041877353754588900120914647932647867212352136799130028232912616557574594823816106231079185912039555487509017446775727424489552801027050862072243040165152893554484119628210685217069514583231371052088618550820715617360790924150428375865503543454663102329431725322541942740248607601980323274382768384410556450735027772548639932241248756844832265431976937189023462674525969200492136919586961255838261885905511696350674928518124853428182707929814023492610622209076965740196027499601815193213342792023582190408339902923831135808828545385520261719540383694108633944525269371137638356164181060629927436503797663848339745870041384043968674138620266789428795898865594068885543758059538496359206449473405991382352793722764713457858438202620274323325819642854971185076000214809432556501850473777141722830513672885767580249206228529697424584001197039159175304341057749031438331531061376007127196073113393828240766849113247409618774028599594339315372744662376785345616660075830782335161384898522866437598074844166547117474060094084654792590524091888387555601982896847516343639851942991987055215723715073514689650814231074053883452805181169705024408256872118162818284349772922878948911186114104363891537125395094926633642844048507519212711814153618874538824745848037542590422057168985128979917602339629850171557419442415089926913253896970964875608873905739890458838609709292529722201964274703083971645779493609464996610451708714687031315430614448819635445216031049900027562634167444498077366332289275848952225048131292374951906529947249027482705590080112178285034873562903875889594911413959717520909129282020032371869333871239813905018994482691887985369546215256879619874383817550706118777525365658472589999808384634360762417977306449760362830505994374686722348274667135869896474749862632361574754531467934953216642676862884407029407056723776043164205995829281706219507555029491180586196962738275281547533361543285113227143152726845824018019935805406003510049012586200294728327733768194066634889367905015099362287164280138110878189721086556199590663579334921181976420588761792693379951148771982537937807627620952895648845800100339486573389116072288706954254041528496801302229688136078556394494744344243529877868355582319308057529645804629379423387167302492346368209938242062131259593424273326462309933116670531432599251609256121634651489204900857336765092363634824388625687348023108597722962521308734592087105168175443792033938482783462051735771645848593646502534397479962897064353264456314609817398186164718293516657467793028016632333116458247703921635263617216630419919077197800630691190492319415029164406827871895992241365160270257968818592496588454862774102979412481703880437989109071787588699628755547511319110820527290363432303040339931254111354038118827643611676418708146778439469775022496380246749441556028212409252664761011763051646543060027814259130057013776823541738570853699507145654136989034525348084717336664891016205910366622640913258400055946698166784966500188145200506569676911703566261691758488522221104803818490635119732689132951897991895651564242383810377629123968529782152852818260405964013132748128458905092704002033893844095041037011521618309313800866237085148266646178220094373162552286717526068696267131976478238212588350996970551110209394450418525220046805122691805512725713284035718008048470646346117631291035032777075352744524404328555247904332117040694398093753993791443415276219524948440202600238077760622109003742016932104284566941759117960937311467347511812900727156218204928767699923898063832052116635097465683050362219318267374473501839788605603213563670697721554426682807867643287946851354514390481217751358323608285482861168806589379318092062736830113251569931752953630770178741481334085228487419859388746671045997983028363538564325519074344976417043133344265801861752748934097786451685622686150848039141951142892732882563870489773089831197917719292831174351191225595209880520863267527080379571271286349258601139237481624733285976138713104718143610544134309162638330806763034749054214016818360996853164745932548747992491701510034796863131137676871286871220714168174832513242986098041578761498700665331053860991810141876346792949362965282755385922540355243065665098864687451691812473657019467102157583679391425419905416432855817826530824385054947157519546561002341113148008901996588020309418180945402966369038361962619222177665688194691997551776995840657081248358663840305282945145368301182485858122281779252789258510251500222002833930991026632265139353109300701763948316447652233301560212063920842924604600577625024396691491531871482307873335584237135197300411029045830416075990759292891126283400958278436986024118158644123007769562718830159937551390465871976818797459722332191586391370270736908301268515869210604405463646644448684644122975293658646424644756303686074786238738279970078207442425925951094881649106294804178052190394028983946001567055158334481821652431090831971976635172132669985256462040689706663621291971078039553783011447904286014172489576202216349199531017831579998328624119225815229051248250693150401084040869055099132670175567066435674675118289055291631880875776385184399533857808745718067795134930456576649072474290991557417846822551849331738993536637724068745118712871250822574325494248856836646837194745147400099324874657090728310873782304778754374166998479963607355162481031510401916302191365447651776056855143039247635555811017623523277060496404222925835210238955404949292058740135164347189750086172737443032879513462732569442133095758106738775546418714527509073881548179629176031396916699805681636187955658743317017790004668986465019493160546421257647611905806328298876786114484229956726887022199406573912914405652600309568641514427879444721679825474433154047812874581310841343428827175518371047402399650658233563306176610835896714424377669856365823323659558808314748177399843088036369860167682076477553348680347290731840542410384834046201091734878889950494834768717635487507037702250547453099830029407320097466933517217596481031888938475853484175902914118837441975140659542134093595811338538222343826395430965627978854090857612840043218472141153582832695019236074937877584504480395957004182730144322765748553821915661175857930100804519369606014012688504652021403538600997151829129328161995598311368436235900639262600597817437178513041188921246428741313519918949960278716659898124443155586258482226731605191780600304398254801715857498616391025043436234552589671029144740169846351471487516315875052844544230991057538071505687002723239400045940060137298530548006754331648346953071974591013310987391625917177205458555690963242222447006783964701588997359977250264785244491955864100790639633888047498288133768037781282671380032057063157166350143302008506696190988580868565893559339176958940286626260876295629174064952812180679059790155302240611575307301833609903569281530985002408879286411793590480163718744046385882231685638763411634754390454931429703300271602258565578046458855520488731531148449465320297674666840676573946943471487286960626697902672489002601784254983056394782545066827188713681415607909011217414880129837837926371766842921676638394440443600996728566504289002891470093344009717444507962648054496389693840257806049666552920024757320096427951388087254792939339596393419646156261154786383703945003784130004317053822372204211714315357112046907354173676735233213591420690372274781142734873086120028805622260557930368571261364073544698936447999333417032500389857203563871215502701918827093278386381106976120365882728337567607536384526248776964563422973797036682471011386569389831037349659152876828030579502597917436684565077692605877165775027779343587524718039190899373992081064135489000332830455491975496368455468986486998364414312246945350726671749034226916562563609051123341066275898918399012976282558103469367636960283542563161917633634922417009489771139510073751633783838178210831556277295061686566817288281021423495881319251884357557909066766002620305012718854019711926908273961431724555065070366629008460780287712947841181525569447774790426678043312686346782643347108027178352935542855785068980186908651439411303141108716178356762916508537746870673472066395142723778823883954714483633435771321265654925749045195108011938183577365098842109612504137608768413507341638966094025690272680487664948474423162932162044481995403012508312673187567195616845672458716047700450916137632445949729854447993063793798165497950387492657334164637578066904979728302777234174769541817853637601527976239930746374864258341568495672506075793954146351277468326025938918596465698550437188196824526128207503380530450222992442113585570563796764598382252482018853653794327029280054832472691730603011862263734904142661128593421537683969823838581594376475758988392684561280643465521872771952973394716962005955448529969820180746597907157688587784108313366859130575422407275220654983311528851706767313924195249661877600154295584072927405881335680408825429169267120098624138935069224588863894492910182420886515977159898564192703955480361788775929635986674830615529518477659975467656834514297402962490739067074978350764787639306959186172162827304452421726038328402022089751084227703987812374992228758708378532738220396454599400680176697949207394979919207483472002601791666615958104371749862974978776433159197735145505171190417397547423611268447182025557282918648987693276343607444986053140567140854151434522497429129513251224939221487999900030730083212439873296073358451241635639146802689901310538684620662810045229028186402779736894527959470375266883193224569148383425688082980173139233316422073526393809727796184366900820547313713448855085645971817431042890392731336183346100706513805799425915829923961624492754328870394577313963823511084846126595650041403853733557602949400291331650080374756301767122556179309454256625186318858733983514997906228174521293564225266007515815010130038282495442179989410785251959835290531107018313179078273851192577635215044457619912610011200172492089060658087076836100762556785219629684364208359185436146909378369925726728481831359639470165906155835511853482375483073928733214743330212883620007876811968091333415939721346869613629421804198873895365805630509805289721823009969130017805567907621107793512818928223577587695569714777356047432416730260972946124673357394774924770624900410207455051099786500371200100935095110640910893591666998330425212639101891494451715681953567524042385552316347487197200213887206434731383597923872226291345381200298980341012679450897686327101533481562862344085906638085666174095944093630308508994853017771311042987273152954688776596486572496930759957118424376116682093574159618481191565243114986617015328998983122186733681708555163408210710236563734673661862134247179520279035812540811720328151322971988221018089181932851950329401535450214021174141436830436777544576766122513957747009526637983003371092382581384765632811988984105970376253503533812592978543418346084742948760283386132033877783883896003840144891928593506290704162937754742032346218480497343518485003686339670305966896566842404338222295764399694198420190755951079243155230461875978050794901459166763556150088088242940062730999509390548352867524340187202679968353926929993033630605731140788536175603549903283104834088924539760914267107422880176701071454136634057463852418464219722478699398947519634999388109220210025956188861356504257844633207389323224203334194422939921780862715985433317843327468023871718830107094187776054560762050896412104581000626505289500074667768783748183047446376146686805797913426349661074151483174654971174208456006818296722272559293402686730779952439054853650604847924738516356969135224251333386255886566296892147036943946970006450123095122391602203493287366846847174205030183606769145668366112137385135199042149860854725350232977615399334364820010460471214766350346692432184622145497416123708904249654363299406599396282591790598696660169763474904807594662673807881709990925462679437450952923996097300468206267896768245006833922893301739817783156226378579493161654629078883978248598724596310053070113319432467452410881693305737463851582162142329097972927703455758108595166589050524046216279785232244393493170994392799299264910700211821514266609100923035711352271665180987671235120943235464132686164635588707846196948032082218384252150877422658884877425478237192439856978606172813763830894629511135895995455361036216073299539191604405592417818077855707425607554550599023854099993032065574596174612397893073516486718291070857621377543758163559163374907491016629319533182850618292269844898289840371248608424953340911701726918451490273781807981391157725641159448400981619540889274138448230867800658688590419409092583937877478699467426270057669013001175648700635204759113317621928178208414882533734568331872025057387591051849286641831012542215371982937564170634138159736424437267525539939200131802498148928633435645502170481940620625105681971668552096036508738692064315104624178443304370452764922703611923270524654866583330284034167474682340137599178429544666756049460431093392526784877160973816012401949042275401636710631367881315272042724510373804949051001259403100503905451423424467506822404167843541605251501827743734629075302070983814564325744995343065730560516324631783652018045951420095083966126568047997709773846718821999166095091062327757900131612530352662141016234408312244928732239947897001078522714296258097534109499472542849357448797939293332035878098931562557546297417213386535351424605341310053317300351957928312447117791694739081140104122121998879711688849650506221401630330504747854255742507523639226153687828227035052108253022664866888102314700281159618936475257995038457789716588067883637610200572760138535926052871272606388590256572029070308705704410190493858016732937245488218237755563987445048864960264636966990012419468643492027449522331624678322185378816780522854539426344533443672200232484064283476841126826363417320999962849442480766339589672718804139953546190337281803306766308611942346030499834174059549583348425969402394987650649028472574489383185072737817152207523281978361110936432362289712857456192173743363800138574680366515234142169148445436783307471916013008847864212192630338682783555486634523035711894095523192728035827204775480019485993441708014209797453324328724966441635022523136513372373859753196116008929998391534733943998615126695628010586909252847935108665084490341542671360767932851396679384249334010045150558314930591420245429268703459375119834789109364538771199939171115064733943385662597907652554926108954137408131533632366465614510266659329143310992184137453168456598636470189499908949260050809983559796395330605510500929010285099589869070806411575164021760584091324556700049027273974647596607836693382803110683964901788100211828992269831991598952223438096687777890477734015773834348776691266463449902818771296644362546256011263163875273664859972114678887706626944546729591988262427783875249136600043041099392188029021009705117810515119916357487320672697106308618511294891141334216256069184393211797043728308904579758265529447616281920533143754560885693514442698712263261318391130625760412703831750522925158857107736850486847188347214276553189707000601118555375117317191532085819379478952967297023340054039184009980842006588357774293976797198830553371526433988616628259504829154917950905922422772321014408376595331712345888172200914768396562185322198959539212275640077031100402461676778903796674831623102053732847237894262778779143042240757739507099320403413473307070700471885829321788012032817682306111716610610354663709600987447142018100003391080330086771714670556209052982314461790290961546801946399550285227571133119880666793024565898589351914142659819837289355894260412852699968880639245032974770335164093672740474118631596914104449768782858519213746995656385846420859613702334265171583918417179292118738147220270149277235597189159671112120809584695879047850315430551630925981970874930690544562935834256129295937223427584483573659219182986492404777877668787080471737531850254185632936214275458664514734022568195340158094640912245492796332657865678344688931843002971183659728094800949264459813919497709490036931677366240738968763767015673911730401612358113080306984719687979775888192930530997274718548625858282591517446976022916260194725910477659270330697711691647214714918579741777654391638182536931036224895066418108457285822475584916340455996159055745646513781513955791835896092090647591095925694623311884421128569028313104380521801527506923415979053408622353573640830718649828081729911177605214870201554369329311422176974722157090897802974715786703094937355954336262248173870537779754231116959402937956341199872174352224551843488564336582668784705720547099451899357964568894948400051709805532772095366013611428927201034487063318342998105926804034193563533759726128871040264430135393235603678362836226890025744892234834577064915783103455868857772927565139588202317697598124203303482382593638605277791915667063527278539320762105871526545608465391530864988409633138708345157312697947195830856994300339184609535720266957301865739295990436397656189018289237245568182431858964590341223066789129962885013822922226407808914815426298899377165085525409877057452464647904426869499177278041203688338711557209862996825962544378089798619040257708174353208486501392730726937678932942791599796289102006014148195200161530396788489258720168842172302261050607242161072548002231790158138177676598285454389218299848518220763174901924946791462480303102714335060011043489476038875518852043168926174686606022208607437720454054770035664889236938874902143581607306775678575504940553601166956313165436964078577751704806503143402291020125467258845274961971801046114114005335666783504306848341121869692345043959698254855893500665778185871209083748087620526728622913501714825187671198034154876927772112422477270195923111255009024394982537639941468134330519481514809985926745328622246183628608435566684348383327875965823338381954875095399238579267155934257687609132635381559694658738385277838459614161846022529148379809196194234150859071718054687966981753385587165807827181329592913701268401902555008456293496331467589550259979745832283098336521667398451378534168778730292126460055293957305088969569176820992746276036954213622117164746154479449988597855158006703116526753978560165074974428369943378812356214591692045896557399623890808356205427321583728627677871867169294787115565017466013199709428754107393914122075129548460705712156883579077748001167681483534013947701465874279810886587594927350099457550716840538591931509515005822561755744041200220694084352353875310436005620282390476893397689834984255494291958778820290763716165805853137411505410535352246827259817075752239554445020106496776571168410519888899805065483500406519105912293880547451822703918893943198775623486299533332541764525863022077128519962888826356706110990605294229900299761320817693305623915052330539573591798408591477574433089962994127935358560201638486905486727619460724151252485239521251332540795273841779957125089454478346621700763705500290538939814492546765421037321533355492092609909957386302259767740528687848824917553020999492550258651511236720611086732083518444434037697948518395907059593546758418886395567466609572181095361681756135416510753258453054454167025903322979170261773908039379446145290045096848820591838265322670767940923430583167262321625546088004647535601134280204074242905704678372127298267873037106589013744600610471454136868965772777620551783973600510766740386943001833324217425533518195675991634990466244331302246791915278855578134869939323286354576924523246540087329226160203521822584311398063947873984747965429058949946767165167194911255732328727442418802329139519712213039830138043205716789695200349619730014348984347529848149571334991047160097063304785950018700284583245212792331771629024500111311144980394305788150738535467080437545903713870784525232178674158781624843259636533099784848727339487326527246153291746804377782652037488924331395232468489829539859167436203936241679596543796378869820710824296720834106574363441760316905868957636110772280983371188302446797800436977036838123950957511072930160041118081631777292500532358269471303107425052614190947355286204793862657565715936853524186087798819764749597824760084511510649208970039784836637736316990276265144066697204416682979603034274570719006575999447841228225668288500301265007515197631515760320727205647677776861737340150565269484046027049464443019185839044454180589322158589738395242610559389403666247633925758807405779363769638624082660236094289978171083578495449112953358790059781860205298776853794367134738713969686293742848447316269091181353380519416918762609247369194115179975243915970180218572141879420463241141009206767607932851939835945437460277344294793580360303432640134798897085600007248765414692773794956496922756096862871367772957845584362606548613108089409797787807364685211911999585052864646490119722903383581208682939196695652321020040292392003218347023043583650757231303133912998414357823259896308241157201302032752887487112275393378911303742098073239274615877459179085262267988584160902224573386453847081187317769468447121754874115657701138154349467852212917340585801449844872401956140118956387211596448239889367346605135073502687160409925783512429564940698836890310499825205521803072223820915943450103680692355963992078288612755149162402630248789836264959802493759756305932860242421962957985528606200566957332597946952430318474333625260402984005074854841966079602998971878104101577769574580723972812630542460229209703027890575024127064859789911935584610565632696240171964219272174706019679901585968706468053415153818587582782744749256770038673426458621100443733744193892754713054673689364608251237452522259526792978626199822076238203187690859290250327643702679737634599065438856496011058994368441601635135103664957198357815568660607582340045151415254395947931377152315936430954799383963818297388656053310000102860024215181876733828348322594837320082395793606408159667793045884529677367660427727573433476409982584071431835056303983671335066966867706425390214364302979399475135820522893835547007933322918307565673660821099997645740512483631684159385048615937605801963420116666453662280845871325828790693922609899747865399271485182969298211999881001025540597393522081420597612091443405508267396106830481899517346424591609248778905800382132193445739169748077488145238386279362328429737892469497409692584697395620803126266327713871721397964467599289169902729778892348641069229797106626972037410692012337551974524500742714333671749510159298688948684294436596854881735450326804089369996071480378223480332605663464707878363876870066923780542964326027065663790982127230467989820164575904740346013299475543373442478361568349455370207429137242819609512553054527595502852420515502332176497881603525403539681825806657919168849315694443779306879932670256623772799396747347719020272365434388010354766568136706338182286367190411408349807645217803861511126080890706005342883206187854303473946408651321468065361737483846794206429959854868301809201078807941378748348927282547902344873463951122047854697427255079401768009555036213205384730152689477828292998477898611671422026247950833772528455277917021005492684447351332816879485214524320666993502172422649354169149293522517929229423501222402235228956208504258060780357644155580075271549995045130214519075019068660970967991739195280019612333488948012333826840094663649270906453376329934039217707828791404026318455219819510451336992752814542327207787545694559844337186635934810835659020089021760927084514289906145175633961387588528506925157480626047555227664798330270296569797105984267560366624985734889820989523603904816087045448803888809262307265256387392515565311013003391363149936858362206060383967963117279020267521374719691587411141959574543042804373878877801772210438506712010901979337082228257307362782705063358050723115754384821874338055576582370655815654045088136241914157958771652619383725332907041987990106041258722491492278390133837602053133013658111924154475785626717638988708405289994359896522231042996335497379154810518692866613249576368784819524120406355259807332603181424741419104638735757931514868215153567539083683939330109853296390205671439936208258121809414519324655569031885155199408182771997835437556025937453998570176417192968560941540964019475005795253191630320166987298667238194025459636463429036726036023233141423008134883548362018383410320296449092153753861528511293169101497160687024453678840665214029567760045026074616670415311737704879129874583435012733816765172983183934261354488992338217402952165776075067069969568230884722582402096554828784871294933814507365026692002663491057386089541444473818852819724342656045081969024880912517721867431511037680815021575485909031960028534665293168377356733073771227576039830959216681606902838942987418196684030061451218840369614198854759481273139780099983655605063103167606948375041490316513318315488661111746607953784172510240041794290894674555848625907600068332814320661869433041593843066288347403524252680955870689678254957656242408172858263511868016570741925117464725853327908549011115713173656702525144062277398426506256915746072498121439568879058305508785842684366647795778513097672918851542607885406483310242705571191153515220080578369765311144169253396932070987610659973600181163136616327317297573592749829033592848755473647102219235774435882138546841868313484992304636483061181818591916056572758326203825491016159179350499910027177603720684735539399357706546334295779160213698575904184823543420265858481255564517476514633676891140964398974692899975313557400023341671268933423936709666170381738896437737395385473444489469741377198426083445926686096792259382549718755596370283317369715934739558540521170274707264382481406656054279299373509628010114154434229906094778387277436726388256924053291109247699655492150316264634308095067401730237019304216532662697548205093138350017526715152075673395640003308481391468655193363098911283643024638213886553092379393447694798689314630985798611191701169635840228068827998663602430774143168508581819427630771507799612791790686394113835290576229734684183979140507946846439796117538501986225013093967504410036208409368654386913488230430250908974966749698839429062532298287404272845842577590067945087456844710301958184981245415055382620524291200679949702187068336771647882131185874176862486676438506309459895677759573612011842276710722793445232352865199445923897648473673747578295856166632034412680395097616476490408433865525382510601135054351668937099334056214135715204342729001388414679009911615237964705015122327251070542960847226722820183800104371234316537395829214431261544539841437246524031484614298180067449197364038027619072171992179010397069692509803377353153657875100209280641007240966822788301026919282784643725084016068900908193478738202748288363892030550664179035724091432370744102052605853301176076956969463499825312700860512121989721794332408366472086322573928503621702088488984635323765547837435174403622664284007455134929895984161735046077205072209095096497981486526392045354393349851609804498273482385958140254534644305788779816297750413234484968459329420314926032569135917239261999391151033113965009953564059055992350175640590310025233722555803752999137536689208633842924109386261124505227137448360605339215204204625272458881858094210839117127327669790421148819352319818800189473973650409478905137545941421861233205729193017748237513563365416639616046261282476038765922504269038204962823685815366157607609689800538038327287911417468922890973139642579019240400018294071532651155196684580691624655704435865877548100581437411906940499085131774993637152549616765350624326260462814620225580787181282152418200073422250736529217993371961812317918432883210589517936984055049337988445462693829288534234511933201508184425982586393949618556024478171322087498108462425345043266974318536324946577729164060430730959701536800527858706922981102709755570950424406583273237291538741341472828345926518477484844438254666198874504052686646158070783041387695261416078833232789977583100848181020406547004682483490632779529076758364352072151842021415035434395973297556998503846470062267608852015275869984974229313630822626905849128832377398676992074115680971100668854256589844537394282811080939079502671250693620800057399351634979728569462439186741099034058296709366500054329793365115986224600980415388238932950775042388314970130025413387952859043300854223351236022692260145579673838557764718862604827084310841680228791847402954634110274441989866333557035271772080779831360613750874431330483184004612604211858211222397867157396834114987500671048036474567307755164398409604274600618819367042780764799423474776708399733090144542618464674551477350537150725664652514324173312058495931593565049688358606094370396077652364255551865241342027640565905128305759807504352289802497161760432375299065525443081407585020854950911330901208695536287214013333184617344371824010351905178878160487430957312277720774168886427894489152549869988564064015925108869688954044942672077264698016429358677968859346133697615951604122407063733099023227207366430444025859929980121971783800810713313428354584547308192831073159621350376560374874547556250513720580228094703203185928967336898321532059518135497837135336551080869223952130204029954835149772280244880615298896893536972142640543596704366995268124702491061570227759346495836359452726708545289012170652659537792742441720719307816521705114113997430351984180338388037167317041420385982398980033767611983543007630101098879816398150824804842599145925367607457547048168513222745203528310835866228666612832711917867132572965192347508687299040998371786800830417528262172360957070927674509061772020847714439959464165988735884634722765208196888447752451915545920657319573135378669799876720092107647456883377723833032017413852226792336840874438349201472996325116108275711915054111782462239796985988109514404765839455567984667391407623869808262418278379886384492605686868828629774791608887545505508344018127232678081105241533213732863978402255873211166710150459619923310294417524271414818414673813398746189223143927388652042534443723073914103470697629066464161629416340765960621596335812627855513293561635073670380336497089179476737707452044165841216201859440823083467102032538757627833221840316824408912015040152220165908823895058640998834006464737375866978582669960309295562247249996905851343744243827963604542497920935818231857052413400664130074450881478025981232236157830095399266484855994453428881358469043958491600140973859522998095875806471442542690298440547510333808995121101141022609552082526436537028702117953488735501440578281446570767490548805545016491129704309161962975518831478402264624848393963882925113983184660718126442549975051660458243137351017069775859114159446023805396503376479683257122552826783448570750492247186813029297790035827122716999844079997356642811174501676628373558309445069343031517375549417077110143648028497077020560372869219784678650168053343475026047253376155165374732783163177453068402207710991262140340276353921248489035964789199671523049231563089978091473814984043923495458456624488297864915373712477885564540515215567577745292148510639569804888079177463481961320037674328255136823256060948687674606501856925398595004041035069530147194721731616128703884398908302998990005782172117728678434536731439369040275875628008559418822118395202951367457803879163807098856920078544942910001798079161917988618767634962115909679612998233773835646224552391958859762266066349125978004221244416750388232008400511428982994363120683753242136107287964960509475001717826379978993019555147770446221109932157727037706697959791197692945522358505376739271460667823811523080789170435159254241061780768604739648908200626618732097279426624008060129176763899894258768075721299927547641998730850306387514091629850639321710814175242696539274957292431791291103064493604188614811769251372533690128003598495247022909715930523469560870216507620801153369334709930864544232850577355020597026521465557876802761623619240964565964838233466464764909951233613353489653109086870298903595719636473332933143329644930719774666735724152051757492790789372101759011477653038424111893629474947628145152122638413076685589421624487618859457994793479329664216763658688196600076173064826628818036763358849766643822681021202872386380994764051979882452166276432162355050703708180263950479724330913084281146107810723115837378967792824420118055289011871733808102473392269281289189742248123089204360237427207391712839269755418901998022743911848743926104749982477644828750685568786197017628965902386336560345051406960567993529361549343512688780836769686502508164774464006783507659516993826390688050479489877976423712840134528597588755470318361338219138808696741637631184811618195646453786876412263907338635463369895108159660785792551539546395393560357022480398045531278096610428211252898788045263142435467287844600126003813412969562112164590457198422683501794782351950599181289583983319716367564445045091653493716677224715771715368051924614447362332430991166288640116180263510111792104310688731549775074426402941565956394117475698187827226627746238138992702712433287165930737217710264389788894890228193314318706165318808881430929311702470905021713541255592564153361621809674405537140827233907966674266226366034634084606556359909585350978156468109492204146995723744142820532772804962872464405848339888493480290432643915942810551722456750134362794381495378795982639800146999905872522457455770454919268172340225320965970183267112123046729929193914655226990851862963882527344762096132291845102422283357385396967042086461411745738682401990470475728024496279658925229211575431191500380345637334688914750458618066976703968196504028570608943839074862352883513215350108165725703673270063298124560870722956711070546772265685404288751317094558339277294332128759178844874778072837050153473485511430422364449120934326791348435061217092077427111721454206411404101446846591104736148373911116905651639717692245542684427440691100422954083089763801138331623869832232982491278497853901807465884133038033466007890448208921751119048742550726147143378501228203732420158199585050531898364158857435588281484742774749078572679559653579825138436965073844284836259454832977020249732242938789495436128910307987989558125457319316529921721917311388725017675245739062352105459448286838906014830854151527862398935619047166090407450122570510766007443230614851541223651210072224650172016725500603071676556272179039768032019256955698139954144976160618330020937664214215009925510838131633624990822836842866839921014432889936510491686713585440083612352171747620878005551875379014798545356409306119654437890741624736732092236372186607266916501267478346651906403391813555042464590191988308299476387860898265199987931904249130466537699774112810565930715466566728210107247238118743991966306308902516463467621362764079874688331454160181019067667870708423046134931378842284656180193018676287985829322342572654817304294070624916052334659168989712157794422488102498819387958861709562123019495877526832637669548546422008360672504190280130301318324019813376009740215700567711378925755130211697300453223137977329677941981374776312289212335791058820290007916062769190417574219627360673404447561544458368779962170775188743988643866625056564295057179508216214107424067897004824615841284138460642082783158465994084202302530354790794359546127587606415931098936983233393776037797570365002309185623281029851670555623295562058078575272281058365447053044375895796501325562965680856508673584637997301937564075111014051717957861833238042730069624469187556152140999933111128946579145667664904473583251329911627609507530903615101747225456150820239398022402595221491125004102512515895180673034215783746353576291317985653873531250959065969283941575504910038356409306177185813771081540643695438507526320459866256780113722040876800309399705213581836662980749199666837359484687224203395247315095101894686848578945662475368704549256432142836389726424743444533696622911513903065132497818423743643703973098077982446223589681552558285064275711082379075203707687670529572073838047704233427971821798679272741663153880031651328840757271147596344776470220275633068440955784569376602653360041576635572724650527282004675261309329013133978774127316305817981095148133086271076851495828707014937273798887113095804233893440273938779160977323949602954003006546882438357775352114378189113308816884024571168931231044165560501086172785974187611069918725861514270474313305143839863708073804527644867785894806774473715550172459165930298820866355878499054185911079833439847888382201001378199188305707846867319558633541582383311609431871329475725576758657156496160328980287554980013741038512447972107956380705689789317522684289899813842235696032031961771997978112750868060069205427669546797792101989924864799820939762746326740218248874717425323276946403490508597475124580243707317479067093901640356439509111875154836905143706344197198727475349094820553829925013340959285577340823765123893634971721850658755191131504061470168436113510492629713293990845845027889940682738039377439568362674516813927242195242887777850061308671701494613471474744320868730926653485928903089802760363561137316315916080645955048387017243995133728986044884617348638632288748927552515640404024140643192104229242500548989355550786507120887675830947901271669097576422632167865856179637390307480480984174584687485183794164781633417001381623659804807070315006525752941139406446109322412356102546371404033765937761303609819214890246916296573030557869001949308167839614929540526779924769284701713730161262879847010011972591762743861796386633857612617543507989736110250330388662071924512922174785403947017476334983110378643016832464726412135894933275355533289649449689149366252465284885120827287272265754547313255135459323316098967182636654711097356895850999614267449789705207676959837941535387156416629348072786571850928641629214578141048308963299890152717051707538623369010768783492459337891695429288962775136080763404634123253620615180967710233215920329509798572050713620274475102080361173159362392957376731445907853315824924268764184678449281970723015578562143926328838908279382788350520723603456178993915159737727122453739681290293304222542190744869449029070711529931364439857319852494037710008709359872074355968069692412494554270051648224541224907282094542645437781099046481280027272976360453788356147054529432254291737217131196614955722348013242387916056354167920879666246015102632924393415356789185680774004724872921307526316777065091715645234691382445693045684055067201526494838937042868477087311936691522713827298967385654289466745796396066195895327866676625189259186033107115874887663856403780735582599877973459987044343917741273153428134366718690689602214832859925893621534297630125446695209721125302132630602056830209298236207749065629950421716880152619995890869227936709990633777376260366280942314113368352361015382507738358136400023014046550407607050877903001608401190393380939466741156329173742737657290960906244268890145495782643713373104866934423321283789306174005161817572442217981684515897780601452341360656225059271900475245348967196496516325188923414180494011578647505592194466534057086319807651647776880945127009779759870376401729066665699924236263946780515594619390751507963762391474154539070555793274215790481117137042309932842619641691431153053805434052844015404259049018043724634032513078726626448506195336187778700915374415174963736956631193911847332052264110239044904570383293448347801846943210403188344541350926534330336256388462631155790529910404730095244800103123690672177215489954927617930479988566869429084244713138996565558183924757661208240490213522087806231540704331387500482355585766139206789105205068769957482204732790703401427752253295593103421554829285650024289697515857000357065737112386832477282722201075674130015052350896565569139826975889148633006612443626241494071531460753520386828018917718715891189002747428146909268883849327256275651903732903638660279896424438592955198816015245177132765114514026897323162584570510914157424541325886277546519169619367034630254120982827418881660421262681836174139978518280249487597936890911062769129871802416142312707580373093221758062389255870185681383120916128595106525802479573586207766964924945802174862413296567189079727443470903715368748176643301620467700493168752232133625086278350461778851673073977211007586903536250562168310572345537857257805622904640514149576818658616690871452801198264595526027758286165892135623689896588792005280189062081464425710279701900372677610775142157919765590305379637232542823637428017019260290027983355544137197875023649113990512989386506232601576948074849446791686387351085334413417915332373840849352602433607808449332459909719336740835194891270043943755498824030587629778367480547064112446040892419966945036288281496860317508098574010223289321206432026299657815897254796196964276721239004338553190819238550426844908083033534404149525063749073009075894952175670581327149038864711871872534182989712290441275044114462590443707439261107760032990438264638817137755882771643238126040032447989678899726493945581094375758025757007914903807140793858238493972516344327740596198638884177934983505592132964794736078423955883830217501238082925525893674001349844207617209041082713092879110946851766413899592441200076157986172738811599154714349898301683390610878409298628132152564543448562525656737128435279255979128609114258145957043269457547729468362084297668213719891040784427610082294191282642458357619861381613568325214520201141329747911861216987764392775868318243520102310267989530651235015400809220368170176297632639121589312580972554588852004708304392811140284915325245084523137377066102589300072707520851388390406086907254739167557777282588834526135329341363791454306171798987780494921729296038499868117804388414187011351942257949806454391963176047159200789382959184204484514144533037249656089141518626700137710476637253711934497080035356814842331649003340439415876676469008441330107784737074993824329021625473175008327803996674339226958478909645702364671715527758965086728457991304749800075581605229524045601862204277835899212406963020313247247384018429559025340076609877262204172070148106685638937651989872806224109356093079268284335822950525098029803080439756939324465559720956715025049515932681025481344624184977737707801191405010425919896023832333371182127517805791662074711980150420748669664792840664518781727481358751472500507849587114862178733171691953241835080091000076908327251459203530179719183367661171869890072094944892049881657896457136665386619491195137222292906939621944519896381471566990421173474331601892108679415366409385460409872230511114611382837724397905574158830458853677726497306265905827166218053617551886944780563537406553577277813737534827643351080393676322837575426825342131377461510515031263242271872148548665359217317535251291067162089334872401700879548986094582006791430881279140853311558615600725241441083083149181819486929303272988271521156683103099971546147927301113362820126506697729911221406669043216416099396680596148620933009915079014890002648042685724982158563055579896865623491201629220222652904653480500456932804276477798779750285100086234946879153519858100218858981811706426452853522054868909346011828576310894997010006061977718154249066214853484518293554873252994712155893514905764220065256554132807001594315919261441314026025164299906064293873218523161845052009111713561004010562851599613041683047256837428010574019025086440787458459799306750861129430443263717987590799675771053961149720617476404513204085859900528274550720110882259080699198692130311982703547446295302583657133369307091071840021553703322980431572365911408237028429169604445215593961854827836928788934751843865028036097968524856829295160878189147456617466226664413147306224625812063351434478703498351089640195402260041611864701714660976197686565437959298134329301580033374758637723518660645297317049192653000194635574086193271562327595677283671989096001782033627076791768923905443011058645844063117539692907028674793220120204477540691010040130922540427602918907503187759589809048700686586105707456834414532526595540751265932494555878080379423884476568273701151154835238955312293219291427832414256246825890090813339850859316357878555816847172468213952845228434309308337215935181104106585688487219482404631234035464802200140619874006843842361409853530556801059517158450767812444429798281631621641045623548182885990968613229717390275091235519718553936459293988392010655795919184093388750978458768243853315678178113178504420273946255319483875241478029465864798474796079051579209086641746945492308583518328404017419849828425136293654892001648694506180695871515072249590111569370993912315893174070621627523544768322128137834751350321164712096427488370147336756850227494097811362440736720927880124416046281190182111478732126208113443642437339689769759534982535682370266511846649831419456920162488940375555871444737846524925333035547367716540757892381497242381696970223526595385581815478803886050600365497833341534835981619063355283150809415653073207716479369129464536522283942240760504977154018185863359257223137579003865530464509173930224494296099575025231749013098058518890709924015451574997690820993880161354850700581549829896338096278991391456359267715277715971048485764010051707505920071760167971411732309732932027031354754857940930819188940607911041013549988412904035096329542224584743045067378326936504762920342628438656353277765747172172732282982228525222013942203028335615753234398224606694237538902631103511922640209671430516335250791424374134905081796625758485340676875724673019445209281812113027600700264002808444948789246806692064404198023575620660663534133061883422023782699418612259440897423141939998894055812512971396840394213411782734729201052404065098522720563502135413231859594220619217864853529523075198629376212419597902566484039327297209803450034877128177353318583365791640563429178263507006767735786194508473429968764522572230333878619046348046804791374385383026681342312610432443125653782851079089045014830241641196808870433478035729546146611866510234198377150661580012184438941714802750027871403100837425012347042600397526533698830952253545303604444002503469863795528738637279385386610101139567848934871382023609213819561410014883859986117953512347754341257228544139240257011740656912006216426155389985931158814630981312672126150962193533793510642344107358460965279886182723228815174885854392647178410407359474464599093433173817356556758345208921655777893783727543273376556360117257795750284189179986201056051476608571879379528231273717676144911706730738530281251967444884293259160871025269862291624592260679764761092358140286850457054360600684727124429661123491654886633133114448915357583466512134506217658968870540495562777498891901605050668953441951381902228702402363837990989012092090768926824373302224619802185052830243753183556935579507073629988396028168177115112143151006948884842080629721985884908291709143089586744265889521831286772569163255319218669564501443760331303589761088530487450914550189985890539266072764216397672244568030341606657744265892548423616141592977506972177844728603350335618119877231377474789729298270080726377142532165340635465640699772587333837548224967269139675089836571222794259889860644235779160291966266744708820166504121149890274184115765183698411827819403726824314952322285486321457386840566863012914343245243149052348321115661306028483228596821498397753799854630101305197639637509398862922014596435095606441195820938884221558693222255752954845327636517029173792722380944942495316948871950942885473365374470069875946717876546440453554917125672904372936615552271700731153220423883461690607848294292386599627043502636144589401007708819064264254131322143410915655362291819122453753193258476546145868517082532210448750298584662933452619525963874932065193776185245257307061411819237510167945630835493547150198910003206481075943535048052809787262036768104698332284680634665470050738542655691363815482113854306767129741737419921022331032668916450778768453204812150234076500305440582543602449354662712409454826935222725804092211458748003311939306765141992845788077668876089791099219608502997003051046667608317274836741690196956294722127270321384197911998745183194260959327664418719581626784623233827888696541364132147055163481557676537653152977421472464371821610165174389108221142439295613100569261846323741250539504926672204601230012986578414432754158747464125120899923374490905495570371165871275933940834334670787583967202175973724709284860594293951124928933925228108161514081775643964231655229701193177665766464347695078882293126178924521740426622629612745547146718003400597022722876427018659363872196364676709980464243586516291162622653426302846413489549346225090275539187863415437996267367838809006988175279509734892564707547877665941843442623529386124687526325573180181500725720906994029868096336770268660696156055118081652993941899114409457339823308491841707519559873129781565672583098026832694333287580259461661022854371858490058700349292392730146374508683496103494919479397227801366589176545884366775625856758970982183991901675387792398942522955875575692297506615314053885634990094196891884765199604426588771389602532504589134008835342691456821564481260220408493961125719541457740582725072518250624823471527601785234560998646922992040889440399393049313906596060000985924091932942150474319576450794372563607081288358772848254588743547817550178727037002046775031621496667480820397943636510642162217921514624672386420538151962438756595826506446381957541670965511364122693009510126704313909884720048470379806221133032204380112933012996278432695688786286830768357863669680783735683002521399763502179828273119466856217893521635179048778989381367711630269456680122068077336548971438132465348628510529902524051302763924506577017033249684851365417918580415558546993199812381390614898145702167216918809689831720192209377457678333163645704124776744063083043455196730540429066720041277420512415053192295780640662161569834960702516500716567357294476461421335763703705012667694543566562869834763751705685127563305992359536764635267022287659367978376957668615265741392433277364207289176240612173405342239488319343883465871041858826150066699821309393403791285663386411454078072493727611830963687431804527861453354572131329532605724634693834442867427946980371571978138930375642682474752526413216500686374020999149057066270918899734998684449272392392143815519330245079494863523679594803091921564975409772258785614419144242086263030631124536385769379038649983806428099533791194198136832826683993620579918787263699246564313619079258438933405380845902421966996939480466519259181340370429565297283095906370055295270506353108366692997885148079975726833289508547919198866182368969679352793509129145874611836245244078419000516588808623191185864242125814124488320142961158046768528611329819238937902500530289448601197495431175631155446475085745668618116105448695512394413265797186267634391730193124421257459187461020040012437242593446775200756802428411957262925914576794481624650254485513936229193709174354375142064416293818694397854974392367458033290630375581497257809880451263087930321176204965595120208838449484376086153796013119733245590713753914219353321815417495235030422508025994835739619459515823832598696032871876673699774852961871778943920211905211490441875373246252447550919988327356936152452796970163431756293986486390791349061041570994579387300582094005079186181364877917825538557084112757716806415635442206261633144314937199714791407344864106965433254533417008838970327099765254019453063879898258248700688313856058112607425034655843027859965633070504415489995704959421150640578622069913203482234216969731338276226406310698829782031174768549110109892814946213918017874569586678488516588666462616446876078794367716891690941431945235747869246196658901437812913444955743972786991492902365492333329474717363805047397481751061164052602353618135908539800821637854046020335590558847055471785910478667882785239662112671664239334121506048040698043121779069276929236254378257355132252869852464711590217020180022637776591549982925855250276200568871252725058845511347991335001095355468123836806501203817081213644977480791683420778243417068335509308710802988149070167683093480513304056483310261915850673167569975395571907096156847648911147044512533786247078538847412601907936899565792635493115880108692817740673838436918145695208401680330680957218884565908097093866003876801229269624067669295257095715586019684131812115230547705374037746171624496304981123213780062234803951654517509192572779380204837616631264119750795395768848672365205250130281066517027340322679981643122894445597655827828231297083602640516774184650793848992210760248145121545972283447541049192244736492086279280014348359584758256695386494786481283225399228106327973356408629802421842286180172629741474394797428612397737900379041440119174141411491695044224492320359847998247062722246946819657024605333758886475954269325865219751098749943327683026708967848586310861265025368861708695034434036851272923909719411182327488449147901534713962343954606632598771711525896091697604630235440645039157525384609186122340881668935601024729809518753035298977163335032213942938978764469852416506816417732131742746529567711220466423259873870825469404131686353546363671181083496882368857936253541480826677624722255906473376189645396968300402632005564874103471424343988250900821895478428572473968134276782632591801738315186100930613385690093454014334069133047276168179848350917516868396131133257853167782830610460301161058561052330046189430567872054269588667413199471851723001888055517059443597939533804236813734984257719632293978344977384900922970598710687213637719611867978636981192101015272362549502041383581676660884618370819238748406698745540628577359107449271746279224485426928612849183586332335983885802852859179313214391830616819081933075982440665329961846240031133193178124360413686801790332271138036253415345990061675776721104335808909200608904649927228683904601442907368300331755682838388421557375714496335392748971536320845577463158005581929496901901813509524920882442645186393523039605912852382610678977884797184135603421569199809285375084145835829788575950182349283757172212659377466259886919737705591754988535829599449053677838639253055150919249370499196109777274519122719831375690866681945548050462064374166147588437281157880362402466455105315315991012188196457247671698506052917966730211708639935830826288111902827990061945053666302629001996745566361972949387637010457116549828134397839204892842897019023784767386004555154519312334823784625771025795524155359584878967460244483726678653027559440595364957651010548118658863134834182940234415502746521605958371752383930386764401649184471958235576329259051348070098817728770517937702418001087392166704433031853654545048204780186863506537121802443793693409587184149022625175522936919303022752897752429677780511935432256823009841646900541053727242996090256934063249755375711100222519779394650169522282430912582242759793077793687659156397982847406610065374211691679324089219331329060588137009906204820463427833281493591543735513646235809540140375428841525454909991021544188366947951628637255216506088139178001990135671583042452229942193952767136961722813647231062483864357060428619844896602937693674031488559359658590283032837491570283752711504613017669112027993483555982586321374467718223133858398028922975364652466581242776542421530743055235751581346646043112280470291140638929412526344492027508987117797432212358416359975924149719823922600484861916881619595351994826034818207934555584841449000865651194759007499002569692018376008425163623342267434188358716501090012029436394970862483332937036077006374704237523000249867201276458992908963816972369885891663239290959554983673903653089362581929110636986159470130927620414390813146340612295080958479501905165784404522040986132684984358333498704773042790573785938664858490061245188976165886688123295962791119972638879816719667209908441341548330998589714152287236546653312012826470376957958359769180184566624449655017580108644816144765488554972184512311201078690014902289184837808740063552156911302711145207039084106994259386215673650559638787988341447852247545389788409447370735939552494880018670875476874357837992386695882268129115352673878683256774699735344319165783775246449268638660935021571267027648571134787403229436498823247371378761813174404432531596870728934390875264782491916494803335960064563808039498360769208269355279347660731783821307862980487776305200312352143027129695231619309471662028777936310752755964721296188218716557121657364000659814662933509357644878499211238386383642643076310148972036021442934686315265556675580409665361603874527850931753323123887928531847322833153724944992616881980568142335880543126936907620666506988574612275098640262325505093550720988123649143149894060095278320678831601941982979107994277613877210417831586907082740101034990793675155578115360795395532443536804890860070755273156212222575101175841459384678830945721426171587006326276664237036470343004588683117473508439431994766400300379664946252201485677814714237084336268281681536536987650202787328717633507471238853412040942824023523711141045649275043052311179705019952692260898641729649176604006509368316530124949571346063784808903685342445056470694490036662246227331200571176513544667715658722086580857792111628052982986823688828665418472599384155746928970363769803100289943093390275455895431711764714634229059622071429500508881455271130054042119107545776877303370850113857718088042446388468357032348416215920394354187411810168966418573576109535753109841715872033731167046336509372987169374141966171727554341221974461621245855402769848839573167318851493899146380496674481475135167785740913440577549388731286697148943890528050591314926022518246198939785787212629582351035718044977129389211873772907638230877480999514397301137004424345401806811290175677235582932935945142814694426936989333657566069511966801905995980740050832458598861272210319226423509784707832196185311486827394383150286826511600747786229596300579046910744011637800578995705582178895296569506224085467389148413782211070100917384157703094394400682788327698492902723025509391276894701640451179484196024709374485353413940085818840373876997878693787258765407371231890079999421857941786481696860783145342918843733076562584753056137659543712451978321041744100053414151455141837793818066871178087021044361986488767504370572684470321443792288711376715507286785643075712964580049731579888809872426805162403871870873372728851598573103753364616744883986910297926487313555838854645241428371912316702720923406176879960934762284820424240987447788154631245089815821876588962093008150182367454834302718125345265281520985926038004259537492089233091934355486299120769507569501536017868580885168785147753839908628795827251364354884885706632778608802269055188013347747792152655884113363978730470627671513535644328030611660697803239893626957164927037294683557228325875193128616188357146133683570088719919932588788402277656279773597519327850917343655374877225892696244642005370464576643606450365780409520035649592826463245941389560798715209424774049681325754557221048356174618552680968316452976977440925296804617407286415524143314908728099018670781341688056482761311259943551525473668834341361805748194641465112976515910511806154641004887495621542714987340657191063260855647056459321268115657385806336956133511469776343163450882444126977313400345769818549400295245378316939261195846717917098679151341254398592565389321660160037177063339209955823028382286994433781505284554012001797984054154214910133694111593086998655927423367429998145487357829754046137328712539366464331914468626626589869241532814741457950512217177420161832479129368618486656649305206520419979115575042886351083703198899015092418915972123614442863699077295171142401298403242807961333881536709927541543797243111661311014765128332242554247995511237558771416560921344099455888761204731368996558691795532949295129637042918715560799381684949972867472177895354961857313043426859547399356231681586136280538009921842710627290527822040435075348493900892839916376724535237145237162941701611311666102487626873632951038935826255570117486108296451243821032955723803849328608370904987948450212592767632009027133605657160622672375014443192811725824584932878523603880137265280423882803155186143219893952900906162148157850264998840537921122793511922500396076763132837587767488769356749980720540053223777856863685875901242338719277659940272679124641846233341852889147039069545947001869071956223494636517054286595872793401581638424794281417792346968069500071199635392756437772916538080501461530869826155914605568068920863176872741108130520723644913758567993189233242904090299959986569318423708363775260345433730493627470998093152633278279428007150857491045869498504855560875301041543039807735233450481654727753996345372629802578999398991639736490322351227358002698502614774921428134380812212587918872254262067480650521076495482284005518629866366836855505544086432793264261681902918522410613254473470386691009541409211324332800465816664809087480876994136587081675203563327204488479093006888932322247587816373833452330427956882855950648289388878999722801924103307362749082317949067619084225469670923505064990066105335368816461996475297797548246289108927685473962380512713550597317920744247659095328106935202198736813275502718081479278218329374348022990534047548927517879614549159700553094057036272115583158225184090435033984030160031579965450171920284284742722283184316274494361693072604412243697902831297129541694897110982060152718203113955898081342509981334878872252105407908640180075116469326410073615217286391500858537962353031179180833338548885445380453404334109043880136975601300691739671440298269728504028873960060364102343398991951139714639290603549289681156722784867865830219214381005170882754970205119256370020752023178902660162731510348646509154021892849757035720109609644814547308116851476628682168052221776720922110008613043727497256460643958256895622634237490055188613740928845967498388053378247357868394865779595870730754478614309909849072289765841020593390483407929438056875801494970136974224461648284029722684850513420372725735221878705006612922736677223972423744907265263748837806376346381757436741705660674246856131307020145121271255479104394410460789186011445217749156141180801875530174009821327147809596857908327277953933805704555048772660020939166065634326558810185385872623713831669546030412203306104879619464790112901682440130808393105031719775948960404006384965743216267540041227576865698394577289599732977728958574533589758035497467391808387020343028311750057193232924025054873549606448734666106936933284754620366045028367795315587259219760018795734041337521969823839588961875483685644400072995840060083827250332735483566728729041473889768632381139522514552696449054350898530257621667786083347634674593928324530365950157355009800309532962500833540013458032753533790104210646558602180444997523369674990284076757499114541487069815605128782912646222625301471556902204342508774886903327854362537275218486419174967219020278124252095232201020256015587716981459152611913810989686495690363241795329979574194055884612372427051186456581178299550805998313404386033667438244757198905439320281725998512035623598029295830864878089135091488361180489076760164719134321007838009208589026261852940449248203677456485729225291674817683900400878009915606347328251239800691482932702763213739604245836634800859961816704025756827266954266217896704237081820814704613089548394086904366200605677594530767740547704365156549722229686812860237956750661873386087822558715775937926005282619692494772407866962105833290819516220473073875477640829440401487733351709075791095641666647271674921381340778157809510199018514914456002632398069348556823712710759953899987999149761627192996820767886143795613229882999328874802717645171174278528916545067743096105764722980134313390175247684490289380011619140923499226578708131778383799411828571714757117180894704358243692995379521559289102435922267585939339996722541977363094585229797882304158216367431593477352407970882603253703213714100128597524100369915692944510721438101758866551821889443788765247150548459619097192940443321702481730614981105931094313726077417403098536078675069299537993610947667963630164264273573212139800041995465340049216287999885027287627284829052179183959232988172884011127148905220569154960037443138459685083333997084441545809855427015066944274144054126147474651264004049095259820937994603012058870537804646690782976512810801409017186498616235037772891151300302771339834897321871892211832006938266363630805413558411186370779582750875643528192538520534889845637407218753056333578365969673074078704218419562940750679766770526880613262706899521945420075151120739699775088531396012704867648149527784855129621722805736937556414555426970782283005607402317220780890895846742124772470916138251882537473188995737288948452491206916826882297810566792020536459610872150018158651003413783198323021617352060588620145258233796670734233287420143212895758659612130939821027329537562224325061484227970594482883028770611662021404708703309926276789280224819972342986543082569768161904510110255123548528169107750944840709328862770009870222734576361447475777593827108112125618032447612103818529913236693347526230721055424608936560831701314063676327242031508016428251852188412304356770204806629200177890071393044485228211645117177679389987929762030206619303184706765838984437890355018755064541461901464287362744325335806419755965427740019665184860126458574460466257118618326196819707234128661080733765382680787633922419068711841491712801036707300729721975984952946120472790901418352134789984245007266932923343823712964561779985606282926546565560482043257108644404906585259724127938928869387216744091241822465903367703113837825843745708333030907120411752895316337397457196100772950548848060004759626664647572698181625922544496852643718306848681777724493498075418755948852360556787420866940161608957828246794744708466845396228391183331653559194095284665034849935485335155940839235158579842194209459740179986645202147008332909989722944634519703812072060317037264916089382440625476956069006346494986071681152718722168001697531391664805015758983383439437614433008542228444652130691457431910904240651660577920221829424730654011798238911505939746429501201756162895483370000032512868047112741998163316154604107727777658625211522560420294031161831445783225702488051964726278167824959048893889413363558328403624382999933816708745498449765798374274786666008642297643520081994322146804112876331786667814288661946628400766470737317986814083273351537046657270051486691693981744057435879128403144875996089231152113563175276856330736777781220085048319384683963770641961744144741955719683230915789671832553961229411764404211848349114871327383890480091704408737546872572951123439403679428595293215610600568930025788850251950920711744634904689014108491472159668092308414776519423752267541443686092855983857685092910705049078768415935605068118253978973201204803954576594772088259696660702115961190821421589819078395765489111111237406897367122812298523536039848500684352953670310629413534568253826558660457699633359963508637238342223900239276738858533580230860677204220347358144551541341127727288281631343639016821724329480221144779097101107005573040229887731595933860302515777823153838264497789780438038151602176955518148074482037998144064417807210397689757281697399787183126260472105495925969257894024211535762622796405211843003297886153927532244028403351184010317585493988253142898602818673463378228293453219567484370280582801680724052459091591363592607011031273259753289913426057265005247474601737090145567983240712922076362062515242980804936645041702231266775035148948370412011396047452429767941839856646074167778753350930572546726169944496624220712109419594386465536410206511352120926898929645598053600934120961904092475663909380577438024435488335096027505118335235521356851748105738938966245638112812785405961895265572386298914417493935101170048803547384043087598660262676675837648734717912557618388358736690486419174644784814952078252892026834057805387658619102654332165918876345091706757106802523223962070819522561426459383732112672653161550293881953413580663861107246746070685653444964895577197441162701416310876882976179664590449684027011870979452594686510609033655760402935172845439893714091858811831499682588092061650915374097591223179001688342157199176186838641964554772449007097792585289075899235229063212654910892976215452897041230447130007049418797551882805531549397224006173794877525615504633533611396286918911540028678994662477654320414306062212962756532611133335482191313572850671989818768712817588058090872214712760469982997885017918020220339510569599263809805047317704228520507717985636912277910728622284821321811500728726591508970851375148783457708499775742270267134439549685773118380305544010764914559093264180351613276799677414826682594654919073931185866654793680620187893013983717078930678822497661663856516518968070780115287675327493110166595741122777830494182915159690967406788706150576112225393088117711173100917714135253751736313157096923988025156936884514597559950547349572254900866090974389411941389813284507355005548251393899236376125184865978782090335328546035726751117166503765727199532884057213989846072203875225057607804246905273733941197015031679557741951326907899822758880394369258477691166338045318732051349366300029271534507224812942039427536568069830701271103271257414793370507932196761302515128564472572194295699721094484453719437562720629572840810057704245606948162251532229316040199258714648674311680363025882791553046173560298276447040397963161254788536275119593853401333130839711185654337903863194655219565747330323768899902797872725745479136791265643486185300594819245548901227100461875072719015100342837315565960706998391712742385855190955943437730172874238881341725594099035592791395188911907109823453489829550337401511626836349662249105531108671839928603640268669716830667611296405834710770774940080534316646739946817088757538150416270418994455898708402588935325223511660494152220938379658494150641826573279840519803794001733203388114176884224259196070167971048804959373605252972578428787306223548259102238044816214369938997113343563894559762672319741823878049194792304818352318676547006365759538436419870061894277528033250939805835024960356620201953055885839530429245545382170924640131416197329186703897465095852075887412526844379422376570068610055177918758974975314107642484005125031509195673733748545733423068363913587603941573178208208416522872895782345788889298727486886323642423961137995685663003160382866297918418496099373085776318176969293370589241136372853612124731165913135203135854058095688833782178737061862998327163072416755789791166912806446866349775739127470082990878098624194052175451502435630712961898479735269823113028368351166248347617296676044893136415991949265116333347666649048224271135544432303504332948117387658129440265126111544740690385976268982572853562489208151712707970136689917609634566518484149511138974302158051454250270548734722200204545497515104112735136734949873046121639418285060711420188953368093076729387064615778608542214588430430183919990242769848235362987975604807154031283980179119157226231880676517488550830205708132940406957530141759882406385132365583507218928784257841628092454463933475786528999392599005131231793294498020569885763518613800931993136383586528927442231669877891019000324277323255237966956661564297729443453028213918904068424842945027512472772039619099821365617448881293480629514882909077036099402382471424070265866628741871771920963954534926694776845974345301662005442785202878274970934590111878986473831265689225582580621994974707233829139596951782746196868247693863648157925637643804577605104708103419446986692356656249876027461953661122314937913057408155023151631035907035943648820922571821427608734026669524729188835047546492781262549131759716158879357850434466421522411808062217358405343596375861076332141312657605205333573171479156152033859593861440064807577797035458356875220972188479992502971223140651850200530655568599519217280636831478210217825136971812110366800312723246664504619835826132299878339454007824213960848613890577533961427839277358016585018693806596862879970963168880759334996640148920823060444931398877782222990990002559283763585444275678571632849819584344426010780718799576040176362399259245314316119805288082955747777498956164240936543997697369475042983671687709798256416270933632373449099572058103574602024842570459454115043596457355634634894767289187056177722715647098156168063777589959293252742589245229067053475687059933764102156239437725942370717670844959928629989393237704619165199218451301327790800420284814338000387969493076360500255461523251815515124165674120880620356015261730134840103358286820365639645651434762775704080073172719426940636681534886097921410733623996651224371876610508336181682995221610013970616575874275981222422783776435547089658274976186205936209747265917101762696375998908833525664818506827070992659407106637012645846827446662918155233917959259593820450057815275348326418797627249256504373589712337815714878551468601142771458045102844530238516553599028776037271496598220028124141947376419168886517072171595438110028436506917624798472783545615948982067670043111806653248333892108311213654850566213969281245886316113368257403061194255322997380771981294813865138358126014141664726089823933122546882721300423302745036118986733330597808305268124823309679024723922481754964022190182090797877749756180458064073952951629842783616825322222202425754340950958885559678817848562839137331434627958477712403797047414431405360203602605406962845138455730869958029609960375893599918193315902898218736581056076749712518075377410556011136529140658505397721764232024904203055561668159804456477475182865136726444132551781104198339129598232440344674154198524024363242374250319576630736666333561028069431602213638321777263351262503199658689188218836216343031489573516179948470434739855913236443773589021965388833884958436300447765762669541873112199841211242101669522492143527793001314463661604569278730137672862766658207495308013944943237926548025247731568867439262874676069227738280797134134780398945927618405830235637757619176127573502865107493586920327894778015481425033895502922776695401730021807900317009834411445786352765381362410883140911024591761319368354936829464849936988684038645210998413223688022690492741748641570126956853103957049128172074673661516133906935352097363208999974366822455041914195855443058582288417917803762868762202613965846066782505765693816336393654066324318100848178752010230657403097510698622666247899123603124513971679478720632822623745885782205630161929326340004824514743181486942413764075780796043911287901856917438920414010778774101772701245853122793851499044490436507848217264821308729235243002882201935273329923411921558999892731288938538546313198373397692120411176286635560040653681511363729424590534706565535161418271155128031455538479651177680360800502218183597530293649265503469193002811641171552305216976492218011278762568427674860536249086751667351269610189372201865618738171866014395698111559696628459826198029522520473132444063028716964136426190251142539378875925794763587537552415487886199412469225661806106925624151541087618120372738716036144698177258243674092207864654375369951667883680533474195969098078474260631900372278254186998057252396396016177524612239856052415388297459156184460717078708597952645333926985413385739392535794053940830378723501868112454920740767785284526881871598582381791137727095663209724630458433740422014812809009433997902673095089303050902148972267379195953253774381743232758538033089389099122131035872309490922084466474236727487605643615402885874230137458729637468704826865677107802354421098562104362966666426523073745423807524925574570976697360075130731313833256335529944993946756883635789182034583970369562049267975141550240325297079223399098104036165379833149830806516292167009768930035342252492490485947695472258415781323091352430911447842754640435665667089985719217754005316820716322852572466981792037328290596217175430396300546739329982695320288575975411647353363816973081955100370945341062854164822091749499855416936755051643454381545302724918153361354206221079859589270106094403638516855667147089628320264480964359473735984412906724317362716691943068182781599903363403277966244209157435981173787772457546659372553607936438156239432736750868400757161763029320901899063345259942460829215908208315025957930765697500270827670948585755559151943975243138647284665101493376614722536121254957544027079864703651469921331647377135368797755389113442179284105257648428451229472830624484440126000258585404642218385128913648165700758992967124733832574707200732635637474942379351285822093224139352198267528213320576831279603305005068876383895407483943028082490105450186253321548808940691791299986655834814890514999849925678679709738983070352525072554862316205011535567208146358571656934901234788808427728857952635106408184366132042421477384453217465219195451708186707278101756246278454061002944487678230553121154813868762080115099220511268482653812401460508153573199288174194951996572679537179014992205619809245535278619281760942389973149349316394458620797185757869902820099224564696273717858766183787872252284851588365786476513266952342838606939015749916424872982891342296131005197106432261046754498727812574234328433375252017893465565858069015873583195631627980256798291333445809117532758563231452275279089639106200946946865021633191733520303911021724067869721637645630264814522846769072173118833587735938882853980432471393562677378779512401997436506320777042921794637187511403494317602077705263776720374875515988850990861915772166386520735064060117634169809120546177915673211004607650181974252561638558137952243805350149569310375111689681722560527646570861370605105966987255375173755626019044786785829514916067319233445142201915671099998995725901110125938461171937577867812004847939731536410128131960445110056743243542915183634419693175922572103367892994867344825179326853546390902828552523923548471578217607963538901911615678046595348663884539026042689403846315061903625000737830687883447897557563540108740218058091493600822491770794830168520281092066242010593884535973549181724697404875977710134061859695106597950386022799874376166624913417671105691596103669843754667765488201000424933735005200396674332162501557655192457889308805118477662456734020939763931176863086325420753543455264221908667262680609171381267073933753582444870033088374299155186981931980580704632426819691795956274139940214892759762180078210931611059098862075179940266658918518471824534557494861277883236610009586365320009560390731230432605639145752291066393940223345895462962643881213087254261256988519702067482528293033147493209564020408381077481405333507605021053275707849412252164663503818762154556755239671634253842898472796566932552551171670546206591236964737296966750523423615495849543292310373271859923030110181435499910734798342646607022620908469274326492096307754303103649632432290896796481904548756529865354804517401973848436530425457332060851346236627656576395618433479425153160964472615678719564067936586934848450910730471656552066945092567972596477608444466028935584313330481939647943392397461917136925853941849665561654635619775774240293199677616159917464354016330991427654399985056522713822643816045663777469370015072529465056519759253634571118096514446194503652767338615260352073493960308744957305862998655608261454048115639637893088977558725326962893179102414905371629873058325563502587883417466612590088562449697450329149621884744611532250353056463686911622960892035487881112747653831617116790360444417739280646397282188138042418282287499789576363672122683441037167770207612598307203415355259948795256645599515545405105899666649510391220537794562861181271604260715922734054768655189787583478915827766519481169039738991155356454805015746812480470946902787078948728380095756407428145097278501744766212332913698815632378502448592821937971768644685124785462935827859054158356118807167730575659463833867431541989705678110616244553255996730394048290689292588314261068286422644640818003926935687287556010254912163848852123456909107868287281968193912141725324156328060000284483126201221635020438637824225326510266003336862433560562690279725778267912204704210834116802454263788269990301854998222297687044773883347354986482132429043634289645202659684646781008817146895664964463307399989671650629973243608216288406680326524891332061439181828218726549722200975684736610686227896212700198641429931429197454780209138803095217127369657133777055372884523807518437712155280330931001760123994779218837136797784801062135509050134110023811089243357352737045885922654872457905529574137400552476658952638149592955579741419411540659359007018429887476694432368552036233907786124238028424123879332512856606325645641582217329298570807396455022849001350859958791063629976849514040134321433956757136318941113779946937581301684116265466278514280983827902481834041382304267830156132945491029253477573522332305369505684993728983102191942865103430638993486557702644876221433639620289373512828564311828112410880058315330386376041306911473509966882244108146232477294360225410522429364345426573365394012970810327267333307965932291181917165418453863017814700690166233876394832605367083449826516303976631311458561048792579559572286507310861191444426979463804447654106347977804035549362939986029750430266881406467003965673927067411286838508483002867567469882423910034536352291560344695249536258055154304551667119097459440968085826107326597940759063550747518381535274585199697875552054971420404602331392045359658784081926218262543434010123376749633065947861490199220299189866344653169408202512030338719492743960406958503503777342240304755371961063984900790883597500421745825088557449849260825388498073117431809701006772412362441681388306321697235205777247170329412369383009544097246217453884247772969168721783449818959829918598771878454699670166805025035637199040811776358343008574626497350574156241242099485444601507777573761972989087932355306263922816624107124315883720583877747405392096873563455247951885924867795947186181408104355420857842954031458402467444057585821050647488340578351615181954745411280923115593747073215633038532577342753465655905170368581724043658467634546129067735674006566094666136228426981733111480471720879459499199211584336263745255767116333198090855970416932556064567756604735230740234534712335079443203179015337315247474283658179770528570063891081015923424518276685582322320641534136339984681418510580753695139979398109303702773568631711234656283712284333212534105883167118972787394686062210617248859226610225121976349133747801476230539996998654282323448001819801107732029238974776126830059270622399525257525419842327956999631238940131496546422152062684538615916213109367713598284880180828171838804673024776016043202190161989197540543948045834686254043498259373351988437687996892938030545865113107303941115830078690060647608096301190574271589972245493591200578022052216566371701285089239500272756564220549410797418486014776967898167515847113424670543958037117059283516875194488848991939131241079420956982969213633925949462510869581586410016594496464577827415430007661131218087682913527762374325748666317252617930298833233231383540237944799349884268872527382814580396693071746849352809303359462905813797295973404223255751560287359973742858607902043991946108130088126315955420647234490160550255038548693772602558881175638558209498707384538576923723044867091414238301559308817139854182357350574226863225416647778290385761111817763428448081916066567482367165340185690053085407716659041617110261124970417553351125075003291459281067195484809370497908979484097696514485487107632995931988522572338377898741226290912630146790121679288250848070109366418662922890785097981628756030075226708395875929900428000606281786090109209089159851785065616446850477114665772633019852010539141976723412854099802696736357195388764015123457941658303452790927755365947675507757784714982924901470814436176256199495770683664869584951168776015042218866227597428301429551578270348615746738886403201483290840678731198237113672502207440838328083890199533764801578052162866924870730228795908543447853151283959804153973567630261907766534194437359511050183491985726916011698481628720859770954839019744398086506171917567876199511779572729076150235165960337118596105368932591742233360622494777717985825474621182829407739879153139858422203379185878176301803008560964115373618437807777065729962711640519567418494467855155855039147639415028248357735905147440109666433092972143295897247119294521706533056155295687938607952322231708045902765811402134494923141522465216723313764165768122224084727747369012604791073809789906247446005763812933906035551314360286746733076441393079438837595523770249843059749318856820278551023726294261091887127786782698769360008279583443102247681715545290919955762855664900629428075301669455764096401463073437203837761154970271455554381922891852992801615334303292726771589986310907967180268954444294753860794948275616004218775635958702230093556858881394796913238441318171949435975920111709660616789742062165018152617612808169001444990482472313634438145059644023271377519339913852584763813567708068959959720722046207443299269566739682821845297367236048985489240895673019602538691716590461006288525433277179954564976125272156265195414551323259388361495835530205727230285674324689414431626513657770123327558121093802787882786879364916280200868153961796626374004803308784263278285094656743358275330714957740830536595371159940270245485109386178738079524387335182071826942321600358396706653020724271540645962350180131667072251069483755930126269324044707331169129991024185640292826444495302338341416100867643270360439590844391661022118169386989906038877560124843924146100157869700262297499504571391502846162432287827201619133725522964682709291040852420005729675715058412007766386530744615328696337199861588435302559633764187759073297876533996806090037735151889665612712296023234075983992994365125914301820357333140536053622235546728503905149809859744908542284301047866652155442978643267454089184964615623234426471048702135819406851441537901725249684049422541283956085850448400092013882868706202641958423048508672704907668898756096749873983958595088350924967680048763019920904999663912650127914585315987118401351213067310914973770214550882604451937951850157878086343814542789684265029128450046576319066260293940334035509529935980810064245676231591979441702370786627858726902857339082848839839358880554460329744636725907717784635984817670423704319966137790586992226035194651630725200723394699307472392742132249949699332570185945781687832685098056621225842707914791077916899196816486142798043388554589539453150707159393389916868609722403668777423351507862047552741346827490052010588413235340403409525642452719906686996642483543908379784273996588666210027820641717611484396686137983696742160235638230944216600910536667070826759002636505253863641929608398798258648834848480139991814001564249895775562494614332979507955037867464606599391204103732064001158927451935125851270564798133700663817062309104084996433958417225030052807553860215214814942855653443688216490316085071154064566868444181285445703644563131177215313177387944941401673131493122802625702480953804427175117121258324615080572340338106326386342523145425736460018606888948739884428443852879769233122730184951102950330404078526597722594925031764834920415736829264933322779119858926524866337674598315801313604839964687416701719775303591830010866002437633844585703107443012051840212726695080724633280700505798633564868698124922821249524667257918910016232683543169467728097673739164813176545507663561665693869603332825662728080939492709628136495139954130112460502767072612532334282085207873384567880138152121213750629011657898201824603811809014106010790884476726866371317592456662337508693426241687917806983445110562584221143935733554412300584220104064655033861085775120849343112897532275697323783603341808402902642274502846830162126652338927669791589486745314093992594939977422582242874962824849120520302018414412074562460858618658945409265478331189707636155004852687732012806002278017383923446318988770050590519992152977847347177573589337247780806181269876477037206609183444437912087479039987800393241981034409052708275561898807490088827893877896258962130437092174154431790273580303873782430365824886610367187132284180621752680206117085762174430182899005276542384445277718338388301513186806532777942318528177083413794457613743970246420070194159966020453709731359482007815988687172807441682096307550935730796840675591507441337441081865544798386391342138264624901326702252318397652361811519579659016937404713380771766420117466106784683235196588182988274801012928950936010113200592508149567834393366106465162243600871335909615222605277155620163828095706864723383592471825264756859806059718656525212060195250469902650312637055186301459605112125577796838641603681930013715096000056965727047476534639433505045990034404938140932284119447426317089405922502621182578897162810687174359045048603407298810562111789686203082282912926878453703955523722970632915719921365921069838912152545410998177379359969820713240228144190086954102082362881571997741324147777506200200932728459782423727079315748936330362887046951366017201801565811846138529287400143951960128505586954173623636545698265188090082999337061473793224302944286293351610467171961522801548443163687311992579375293282359109162510749703422477431017078222524983853298302567450534754182751353632350983602643551491533570080399131713842768254252223516680388728476540997285476948667493573867308718189145751790523094561408665570487876213788271055511764113253727060536391213318788168712282033085769653255934866968588260319879552987631893780326751485237667722354058634373239425421769102248383662370942082805040577210107727591151030761543918537342628698092268155274726866202197688661072657123322631935979051460234397382908847510415401761213965353325643282096211868704057810422369625766363006771828850316634100320769202784558446472737003279909804845178521242951835292446368813523189693789779226230351905598327550274200278887611835947700041408941945414211732266832981882136270499617959013432047320230465802902624144582315630825980756566334569924572460502976913621797827938707977829814712269406749434461572841812310006047506070113658017166345009426639309380843652508385900271285057224475560674993618815974756913633321141920302623395245216554948513737675303101102346532810405282489639459255503346699148469393093285829513730828085946884540345820917165929306713997038882475517406069547029244424048857110168053826639368538841141240903563721525493445818125467416830749968591784252270840139427587113780992682775389998900329944410583292893735084851490507970671069019120787375519946476268371265195909520252012633098063815709886418428781266064197115534181328014633165272894337859951202796800152752686047647088052742274412274816761752370835790392882109951149367188410671011263260931377556785252022834975632563581902183997875547456494220107422563782554977422661870078662414704324671784071420833938886543513680101251725139827146298940796035084450861467646565332715580725805514772338426794221535370101841549651687182721936461696260393244958718745645644690363734214987111684164324170885090167732727536197240576340587679623382988388622641097969498132490688763968948666874311778397313863836487039496654499675790588554477016304648236265202088592549755269020405709122868647192086739375251547532061181196983450730940774296679964387603003567149803940422030364626148266602691455074160001519734643158913792165556455104308242670113837172310410284496005180317399331814120983877951579943752091541720722314060641086653680295187202530018285031210752441458324807567827517522393131054074983464821053858842138512718637558468850955994561855092417864057205648581638859206718673764860530849323878364433701285130325777827628333759318099857897761278675654350257432431893301282866830265780015959778438408996212707085313159750444747140203193925141022816278903903702226592467528589601865663518161752396028384973940766565811925136792465685036282223916583814346620154675713423916603850265100582441556682008611221301415562873453717581102103864785274726683897918346804765182158518668553976071478534782266487020204817429201331805278765309527238321309001597743801172797016280120948230426492342563191696927931109171637699523217972275270887115009486469826203311123842544295722717307124684803113911828621618960890534526742417404839511784111883520401558971158408975090776825709341547139247975919734141906831413285504404887834068814119056445730583107660896491405673490403434993930767006349098450377342088218078871609440289023178951673304187551326069557287712548739914543030502533753580731997287090915174254694700883545155342624259689562438429291277960763825875551571962568019230400399099094238063443598197209230509499545306083480479037264445741745425499059153527379421212353011867188626875553686351104592867073129273091564110429280842389692390682415408307545112638135460739861682460454161567143159355201125088226101540707472420655376091143064043892508158090824511789838238493616625456663678239709250039527184172596006343732373804853821523880980689776066653319676808792295911970867955286939535375088494768598160790873642667219919264385333350728668401838732548549709507591542506088423642254364102853040226946086503850060543332671300541046442154555626219128933509688260681893880389383869533725506925206464892132173156211674451656675185284403146764375657252128647587556116923046768469276207567715513855329157382472707616338563294362369304489192706254449756720288773825839267640757859308461505056268542627622761195835296622737805446666875262971263021952515078850395715078458403108295129668848811524421110137327061937504421613147319974232595012800158715613166209466101770275458094970085555001032374988028705736448723659763847177965797435383328090160182893195771208551973129505686216516541112178680477958273603292748370478915641844893995467542795132030603685461882449847577297246836929289029688970140179898660686564894304308367184712844589104957703737150960814804849902528364547556926931598170872859376427050630368182309281536200668519453920372007378650076310993655218243540774953254640417388294400440087043658003502854951555278578380314024160662062249540720726188832105399796410543339547859085008445323452060538108162762215099071434902300247078264496742981676491848112107487843758502473823932186458912733679990168672956656588110898078994468633166941069529440121514031943218811217264062682526558083804612964839335724754911504698749373656536171400091881647667500366085088327401355931866568116798047271758057458436854970940927809728354967941586284924341018134054547123400590799695037112790804977985570175395835019171822799627806847703905962285225403216366007006548530716779593452259973322622558231772346272703907768538743809500387828961196795365769403800134809311207953382444513752238430104895538481960634914531325079579943663395170567094548589339722442251077160143890949927828530699945329874205410897239201912885698490411033338873731960288043559263659043809924164241127644299978458594694668294593114553277777651320705682272397095157223711704067844540313193459272735396017727467528515314385844052934927725792626002876800390394550276302333640418288396462429760951097402701295920556946487852420596198411296973688991319679208729377351569348308425393222094603369175624929039372825323593446854821647865792130940061627343364834140885077910768342188399930851175847161279925364587180210043624967426735166345020009409546919876569055248925474969388147192479076452610778445202402569292523190722623301952781177788666999506907797852076762138842081013045787641392163768666219210654924455472197482161321925054632103639225248963091912561826997176155763752591400031859600145064309571592949255613771891685522610710931694431945842919635646051289107407717948378135300640091910551212331709463397837358073712275684130136358795143127573579370910319975499085926816433119318825611788679373511551705022501379879676244651153698336704471549541264868300685051347332194791980761028648421552207473496808617737515557545452510917847761281094018889689560362702625075906831169196177454146792974803321727816394862942050197896919620599672728310204755319828849046812053600039347211315511152818699378438622141636650415991688177765206297321903976649050418169788712720441288669185609925385402563523146396608692622194072655614562764887952366043707436987511467408551798872302663405367877896139077233774226260613134316484196733150094943446573020393252041799383284422779789926696127655359339498648874427953967048784363215920110687959706790396948312122297141533234644049814380595719830381430919176483670599514677265672492468702377321953477170445965295065305482883186127274899938468249630405185514463511094214112985028740163191981457923739792813298940087881306726558893725013732072425355434430706575368667896478965530087419938719520732231637230266528075075232050730459133063658141674084531481719971032532768779018868706311006811382791453101792867333091979272619711850201359939568527090698229318504434883366111604948201927500853261812889075258896846631060286138062820229585681642756757930552557177722219254862600046528416559433728090210620421527190606512136774899119722735692414233166389498632599896065969235470339525347862760537475139483002591185422797050445728424285811138922359531851079608354369026526149717837280843027951674393067953235245955474408833315451033965815136591727634077986840470853098572721609654680498817458078071085097399939839666074327864401604547083112344618631348582462140675810135677317722039277703575584436799964389588880701360824747490977205899891311929674694234015095248463173644989238222909230798354735373756527124586803345605156260284350693195540810966958729813538733869456752927490971408495971901976537134127538393332700754392006911408894362276840767931757346705310915742841236844293335636712912860675543052519350974756199655417445259736392869700747091253344031599056833729509527613789396783207636877625663332601129115907048236904353452357691776209738546322389346828490305902065253217726464688905024119008540701241738165567195484721908681839859671371582877704684409055999006499224560704272891576352475745078158070317826945570364395079206706156511491225205376171959804590097742479093753224910255570286916130148012770854829518077688401263650035210569902044133213168254023409234141331099008156377400402300552826608007100933585500961160505062841177219679549092515544491658081110490979343216855260618812452445389747367107660383582480150416372903770086101691686308830402185496654016564340196595449882807764644734741407531857866406188501520715308501170572569903143205439408034349090469978268933804146503644876746355551331397674946847718293753043187332815590934927325455724832868820317896906372491114868295548491079193074468595668584415726412509209376687060535880499969882230327650298799569317836561563843154975432794167203336138737680613598417611217963992344203504471612711069941071411489948609383975042442225399974016233457004964316055376116057636333264340552746239691685312855402081853521681840775682083299741913139645191080030367434690162863796487968673036929109986658521333402538391306868787665636998602257053450872455869116568940972530719194650281248051651603311419432565844744328191127216011426434505524524399360381412156153765342245987511940771222383466979252267706553071356295678881898470863536423920067689653602743615322632896623903206578744653736077160897421533715307781682991122484331318470071114041096350787750515041833191452469999255887216723970217488329328680593896033567067507806584491402290502237720362759729094444662043015648918195206628137732122316176902112745969071563720132212893518560622206630886097813245291721445557975603130643212312031299897932466043945725299235885672225593953937101926382124405045068869457185554634323036916159894135629427697635426359302388194812822975289737444984624099704464056236319459680054801584559206339282337728264029452554645136136844277744106781334402316881102601202532941311670948640113710497417379395706215134553840073367917806272443186823920833152462537224180518823750021657476704196886812475728185919191630739480761918228369197563583248256323725176025565588397101168258131704343777302629914506474986674166428239054365292401250514774651675699554764075900806721175136379396984797861642507500463377864425296789432271116832725852006946227119648227829353253849429974692802605468039285257905344443794502159350912465579230904982665586013916518710222444290265407413124007699262978961155575045496543254672017311036234904054037050371333591563778516244770714248331232709830218910016723576784295348703345955385204444779504262909394682830593355515007256783697551839430104365475580778229521074828676875887947124260850223831601899717006674781579919682227965117558304317515768319229562530004212429204700509198319087459177843649587231850301648397683961015585307890182578375366084660038235909736764103669154871418802208540726114243135501294559165714542199932663088270227644187968822609352357862814485624930419552260622875510973362763724626450795085167763797845857019939694446038940970470320158418760695240548285210136859862559976771964678553754324375093321737575832543638062310064301728554227006908444520905946580046680379489312809105836550630618348429385231705199817223116509336769751148224495464565357220820170229240476876648540126453481854075447841195070680091465487366141123003804465666096450199423891570179576033734757785397292615074540187067599128659402308544280111838881960780876623350163247098825317368281376021385105130400110748899624883634220296177520992216435919534720183464751735883457439590176874496275008311000035957918454756681897887706089800171373092670624718892694468627621242938979278800744733067858639494582165166587323708898049754731259222043885892630284938178914247267597614292964109842132465038233379882985733177942944257536421058811718628443480716155149402544900852229747960303132570620458372903527257925560102973966510816690464033436433352987105327560449227087742218160078766483918824864904986117035601160148530202524131032729849771868787800286603346693163960934347481019071015573347534085948967004623613846488283868047470369333280023278693159526169590851769366476630987662267011969252998138486953429610760300765391447096359530385075296046989382294700678057568834997987076674759951852160811230348583180750325931070292178118504915052764040287952473455819220612969330906073117348536725662288410889444086015685651302886713603894085103536053054781232631767392880798241244386122072694830092300125862893562438322397919847453328133960170560272631959416597717967013488125446993605540437273011288439119225885716020944031791910035180123890429384894835439912895666205441688244054185688639689294470615539552865724530095955233577161218512885189290571122709516649252723959774923478967986978628757419024130600071928780028125531360411330304220485401637640852233968966374195126981568437055652431133359618160120525119108334024004557866689982276801824277718936534803612424077871579007358482037167972233745933452035024931993199746961030848144383507176995021121490062285027726111682401291616413962723739663480645918394177041763981218278239856763154694764484723392027128832025784937509935552786003649416440674895202251832296609734223495156100066442557472859542284142971440439210670795316975756008326927799612659152368708490307681695018051188933924909366922470328050285134646187291425331594992279887848793988887832527363705869638959228121148790526976089793520794549488322035134944753341404647595157147901418798306652109781956623700286562853203142749941071668631944835615058818662959842931506151646539041617653562071921215949506638645808710439698485670069805009813276991167884266187984242620291287077878272937907432452908531088964729677028477922848846265010306690043666709299986156336630861271772415247305344583344749681133294818967668918734106788688405318620381957530505193224128341029671341228395388798396113214640941256648140584951885359081259001320762959123693093046450509183635402756772364100248597066098335501278711177146443789648908957479622501140094270889539693193370644051792260720074715549986108619806064749602124399658100021207142006699921147116258434260402870838939426817064831821840628327923286438807774877812189288312593641924119522652287584030775619786765545909380811962158648146093481960136517791682325327765819814323316610510550350519744697722130624166965744485645890891016136540451192064149248764379827774080349854524857507778611470931286034682218440092832217582747530092685749031389240519976190946976128853567701059917131457381641971760798376381658871367290349741796162361350309197709267988842470922089725996076750766311448706225631604501121306731885279440082452279519204600666699935229105018924288171789328354352969974319037589604240588268044840996918907563826016409764150296120019403599157836655829881703158497735214688745935332229124923057777357606448506647271115068460450706090584903789306884749950099449531646361277176317803115066737730799854477266482676647906647929170356553167319549361388233925683539630515057110774127486735682323330236855026750155055858996071582800100752580744801515964384506581858805969999251368592416393836167293927612741568243690513921359301880399613029561458278996903667094606016202409007404867509427378084020508074251141811404350222091008523981960479167156413456976378430316897653303255553501336877717577942442696430316527314590547971461490023507380034262113740562583568871746301022498413915761305909868429560729961326234020621792469915814038435127557866450309192277501678300040487183351063900249874317705636021826812341001296040584991822895065263271188528058434874347547881195033896226617677557629519473431051626056993239211674972401913793514132558827066504261666668781068659118030563849402792996611843807430915324697505037653630455897167230613493941601265579304610532878990735237720082172733718040482870137330675399289418387435759855066173217237600327036864663824438677311414335970975646311981821235538013938943147733563722625276162946813477896394412108289409665109840612134516739114437573702241521895383797580140605631942928368723912465132562967675280129784353340214452660481197957338293225990698376892773489341291213724149340669203167148032630982296584368918332926802574779015828455196230742244449339100966290050318587280273482291255314973010057857418826397615598174672731261895946305768561306408303174146910542879370804327894777238668134409359603613193604836361125217221651742984277543442663093200493154308274806761536260502567034203307552407628919219646208135828268240044013161432019405990305233273665340323439885137770666106428107500352204823605436456446773195265893029377462873450911357685300991659193951138157854235720821947462930455704082164223366546870457698119486524101087873365926283680659974698786736742583005664870703074528879283222464886290351860125094998992071613846324572890103186391026511260147501306142191817458174416252402979516895584448624738695740526032096227908671143685757223316150305921281521254190076571643106674524550339815161142568674146059840062233276975681808160717109630563332557882563156999899322371398189579982943702154665875112468315766800432592791033159811567117179302913233966274770598672340491966418715028832802353993862316899681442968011770269085815875623630094760618027815099795184388470839029610151000335242777286536489832089070342976422754960889531471680667135900141683266715065285191665013032648938416218354860746145160333087731630683946379305092544807797346831301558974297711358610430829571948605371856772983889031287027363526534896422247176434787698196927662657764112561656501373684761729830337107174060373020940417969772609168112225073821815220364770460949359474711921555982622428806534726067009794150954108338571947505178379426095851455928606979679675499942557174386412003455070461290402028748711614712021628789895622811157507423235128173371124371342598749995476952066259434052816483621947421206962992621748159374576917910630160717071208169136372217176517747869612369165953496213239253058480364641465307938424348141995484140017037208633361133315732987002751165486114512572119082098414639133355671856558051252821411735911125148873624051143561425681281372946750583894087435270212570789798788032563433963632923524530599582346991725280224330301245992766100365731387015797803800618330022814906286362990764999054409517528276774072344456594725012856997469589348104289218421812270853916353998877333811487466833483605138687912682531416929720773232982420260379030707542932413122692044570591876714484555455814652577023693802860986482167379957909956954010878922658434828982982075016597257613893799546830884389051925271067603046632083655476953493600049055572192312597807631001264700623086729483810036500540837289772642277625506640875775479252264144941817413333417047569043321059041545837558210650707027588577216273354277118926528406781933690026951478339729233786110065570633715597374624385748151057692094948717289169115838104897246008014548159013662307392708921233019457720151387376285687068360834207710266490926143162867148911728946583291184662002363950891422163784292173170314259723295047442352200565779261487455056579706284298062504423290765766314739456037339650157964720085269368369250595735306110978243534027107520998545798943449550130804931366085757891124603781816137823898329017271802986897049505394932634600580753406854973475420053561771965777141006010948921396361879939436910232459709725358622800065959170907215178486330440697282254595688159106290835657146391629801629497981612371249732606690525073503430758705154514719697427798218672011819949617892307817144533804819756170266460706172257586003870158557727199680452725606052124104275946574496130038828645626310806881373716378378467033007653773733961113090871314855895384173771565088056880358465669727810889710124021208370746731610462108289484131825125254548987431678258194289776867323810986255192037112153777627956386522701786275669756182185637436750028888668706705126149705836802735384672109957261027938434753517294393811527786543188513007865526565946027718711250920103286011407848350627858235903350453159940123212572964771961167766132193926549170727642052078520949040545152926562448532876455062440051703715056151683020638069270986177385974470872715678199280726272743947431541885919315994916676251822112128113608557583294277757249881979478799224401850651304408643370151695095898491418438820087999023510031263759780416466117399294266464288443905604377136625272323677896749018701655733352352925221202840319794881632492144609838664797556874117146835090693673152383872734770263811984835450340925959877654988837511307679767690770114154608038976483419803160336810189679130399396127679990769034036148243038502817751547989765138855480523667458348582664507100085635310445877168420678433119539641285236009927518824015200793901668383696303330671571603876194887753753825260906484187445967258771132133859394166889324558708524123987247318656464681296126110619214643132600748636597074343487140225982713462853261946083397107850101220665091970282414340497680257345315546789960400224688430091635203274020150216340299076785157240835752866672189472208057083409209524227408090092748566586772942704780704061926084623108944156504997177916396064275190745911672647033230558875378777976636873198478607927920224343429796328095127264581209190512801892932188744651407621077463459054265496901333186890603327140405942054519415686496117110246391661283546426416995921910721294370583975457910418712469161265929855817377472476286113397180320816496551400245689615887104824302334330638024114971187813627956411804908395037329816014949084025892442977877064676403014142526373037932977559368752112439649796519113284435347241456739890064541853749206880899547244985262442602997325056277691023190428686258055664069557333919441133614059105589440639128804165493286735909328764715913840248338918281976374768380089707308675437142021746347535664734142175890215503397945501183659827482682096494295425509674611763822227033234756193428553155307577715283505980677481075842764665265065535634270331036635718271704366775291030243245622462010342679176468841496080773767296959389560474935378103866935392859947315332161377158019911024827336712845836715854530463987730057823742665347589990964527356532459665271976610750535064972767957831352491725585740650534770041303787085881343491118137544617283518466395588768596890949337196565126961145955883343778142595801019799035075412537305469138035546495633081773682244855246747129452335112650411567303595541035104917749162299451890328649124773093702041979143808459959730538228123107869992966355687230574144878581646486591483970536542121325458048826557628859803731971497223850456800283429206577247032503702739302006190262598323334150149873014876921368257723554116821293821741777411832567250293617522843191064591351628418539214344632862229328478718779878285459762790625078775646103708958657525133150738706682571392897128209332528930463726583723531897375544951551879804239481788511831611171343130532717850828964824457119529612527876590408268302495870494845835758657669743216309304070952617304903547216742446696291346236236294129548525495002664380585067314646803917773481661338047812945227565888890646391642151151042131332053188006955976344222972730318781777059846370018198433707600713699022565796707315721070041311004301198514266631156743631770269712794361553548432651754894305274057180995324793370772133525552839224036415986724121776609515508962590553124655705403029202891197193804454115046276988508643988049582099496599496326107068732753245397554154941549647221154649234880589912325488407461858934098799306684561147481410266422258969431222092577303541690715830956421244771643893270696026363444134599183435649791223931707971321881065954637513250990057126960548971792043546639740698145558120286095412454019121738951047564179192467349766440773822312482655517583909935200963967983468649725673931806602140984613511525367060744706113879476559712252246025024931193946101665805332640296726214649482063118505119288914353800648898882676904459260719052369687032646306312132047916337203121941421499673822085262908850449686450097235022284414591452263663808075306803336980468766779643095949574782655436683216135285613217922182601178491921441867945841581318368701615512809376007717936990839001357587051329968273094889767577707853316936705637334131674921844033669392722280263106241465314706072779142908813631240316461603001901855073114274483563544275892708726714658594553543902677892160215854058387527082235706140583483033652964384972197867395628551645296324186863675787827786067725465203679995308154398187485662509313670961512861810812187135251077699169153127233941619659629012693271642897872228392250825409007856936154203329899093608980088642845728569830480438749086638812795815751021584957937771381158948622015873658960184260524132864108390829133255366365193587826994134041319894678541697920358993872643006297474364655685671072339513174200377994582651390224867399389200236392372629471510401372749568253693022469051149584281314767878295994355629981139660845285631115820323829183983984471423147665008977983607246949883458157979248072716785485866025690373039933690365837962996120928219226887101582653492634710805379858434079548052836250240551665213046558783334423220920898958105625820657118353267336655443012985312747552509248198881031256561771591698647448521670809390031690715953777166399336197953833306576234853937915938197966243047288753344547161459938600444239402502953780851839824339538728095152806078616002261247404551904323966579226300317596289378746420490054552163512494853544180269666995423261077764455426037969932475163619802639766576414135278412094742000947564709710749261589827326234296069676672500745619596416233204698186864530024610110246298719662481792453166061283790726894195924982195305466094337195861123311737799759862028011804748287244916438971438773689095800588360671699455755623702379602752121642713284637356244796437720050954003104812756850548042425805073806312267330344685894700407511174944855585470146421244339541053293138427044916164711216510031430481224009511966802448667907046946316443710608411563183477802023922524911116738125645569092461741198083591989815536326545032668492046526487422648736093797882503565474304148664398126548569341259841694520232092890411326753409633256407102861248637971903952674773610718277065519307444460594450272299194937564802883470807491740759323991416816037402202352545821384592667449570054258590563610070703677213672306558890711196304825741606333736074321425061807259915964341118327313412892635122652867877368440046351705258011937974463564728469418051646335636567586183421437876236720706452956859411649892979326812367267426201929798356984726377360833811499964280382124055984286264800282608086432841295538863096057203602745911163784404481658367397233758752563293359700958503203571182330441668840939183203446327158268596760724379737413324979455632350565717387291132086768037358397698822330326306036848425764059482641789994791059863762660239706961205801316681314042487287478232610632585934965646297010294507807577548284193916216605409604455779566618037368918879617551515396232335533759608282033003917802017463019514509333917035774593775944466699684439905170584762607133902303930692045685778134580890100767071172784276186141329389629672113016488507549538837280419666326161678470675048343198048321729260867630397673329886137219600971187040491654636722431857196161277014067504482181140712811582714688072958140069688698276700415210753178994468312264066172771419069128385998336475466702464868544013251694318285761679614518388937320670369219223992958336608015001476250412860171555920642616285672861824162707739371069789569392027256990680245849850818631505292157956488514895551694507610462458877111049879693154475525100121050229187162432666531656369969044999278595402492254109286273502393565118179560117570750660224463282733675536277765296903753691870832649579363093068405496860836195111947782391258426824982046296536065933803313401807383485738424189925005780036056549163646029066505135518315866564002534841751582272828001697605672313969761019828193445542839729123857278881815171877463291194293420962156724526401376082596676232123053577618867851232949714436914924872366292216609101514121058291390092769212335295758272737150003580056626353076765672648759236521716575850200203645004173097910842517355148382758313207013722975320684621748584431216477777512640082072404575844373503779827876453706387252881179592561478666085825796127936742566369440874177669369751946050309832437643892541987783391136656864991439220545939246505452959215211279087331850201662534254894625824000822779509258274447156229750548681109475402839308647181027182875122666728948428822255612221017372381618089324775106294793914072153589068183979103157452031378469152706192339775977864811328862657294772294916310657132506174559595602538666546320862934802885348970229107822379171190698346393100341670148289127187053271427637175819236375951670131898620453956333489385016333306745341748805183695239020960450873569431555538351629580787544040312521251291396994776353436758986678887236794028469069162085700513319135483760953580458713649849440493316275233325511189905222107557407277151808391078718718478638740773017317664558130195124405493403981320627716504093156003026230865341178336483510978146144427461510459709462360501512047043723978085395888417526443109116937070543495255760449443209794073564634737007533053818432132278052529570648737373683897920103960046635004756029181056722132304367501107905722189487931912081433178526605931812803012940963263448521829372621474721329463465335821215362756250764796384592648136096027533514276541708322031018151542760406109873652002131789799363754746879302793772936478107420571767756099496504637801259180693839144066398598238791079507126780760349537633091176504934098831826978338659510218059961280757001923223059656752849920201644336432223008520608517540715293634873801303360739214527713167226007260709006839111911038557927285556448761557554153079806498023328383173029102900490731090468493580750282124233498260519627140209498246215179269523285468002652624965130648572302785657404848305751666028059335443751163817309600390174598910535418338226879660920030581129414050858344829031427740211159615366875461473455978288408648552395453629109533461131755654922742980846589230164369425277820687295030076222101546741760837632096054294640001015804191830077358317860282137085047767612732623866408780067451685265626602979698110597229973839482126050636783042576651192717159613032708051528790473731404148626716636217178508886961930999557081237021769313632582907059750718702799903210032257902266603026011336605335299843482893650915176662389469270539673260378003999051553510998797336959571119305073092565142102355556206711015479105589911524099838276286682464315080525197562199531799385023126959773970450763666893271184273072383712657948614853134815371636664581556290679061394681635486785512411081344489298415473752520659225574465631940107758171180166985152616312448363116106882801034301234057887452526220067905642854017270031076085265896866788018472684235078557637741143378722065006408482201886463636467590468118159618815882520887490020726814991326951593188005745148684481997737513143886039683501360483862118762155342207588043189147796064763258170193996078960290437055029195564817754985580344883656729691191103135031300439825853423271615391241190897490439890352302193782887676057210857702392379021436334079592619136281009765690320620171396000518159463243603158614817408318246096280427940862446706779199729482799257606849507316201293088555456730004764000306228100506533616680952857032874074053131233270392220331512581451741423256563769294848343371239096608311770673960568044919486731733697901303435388753906977855780682026597904498218511816473713217193396471728122664597041882352472665610031880228305330231534468233952860257394824327943141705932320647634342855896853530178888035562366458939052940582826650945528284445464536773754030572867020139150786132115240781846478165029326784011431463694553303493259022495671243411367557140541092080776163460311992286520050006489866882392759507137602242811198159060630472259130938671548698573277978186480577776911441977026982887354417661876139262073952968526329527530655918605351510631763112202422669603014918564684618705593369819605008841095951448237805845142947871779111835366220499958842427107683624338263692990568651275686998904251376560703804803888752952372257895150390614569714565334141127106083489625218018539708626105083631764817661070696327238200040914872441652970815352136965269351938764899760908865743323932648265061062898533110926559438568265403956400673721249777947157187144150110867585437738135064157824698286793105960050022969844184866033385695502038569951715816025775397223906577487258304487818666571419406825832662733363932624142711738763488941163169602196983798471604798793161650187979834320652362139548664861396037988266274790034335902641698621830650875538148451060822470644692467108699800780509430365225973673479686664708336552723386632418718848490587642090516371126547001823481229925872383304017055679147665422928287007857611303532616909670385875593812710334324601327205443350508837011055273127299053170121444712826705492204498489810567772973627467511494091485733029855233758683822239566425408121591830096941920280840482039328149988992193507415744782484112206396277108867098308160839556761078858867083449576269621730642305680660431909500464616573805433569525494314294198456765631899288904994553767234047510124820975105417842591125245105553655807990247156444842020402082942789483099230290758834236669204159328226881125242090450119606101419148699736201202627748586035971862626147595124164863114885345097873548768657387888168981753535454676399353321157522610060205053052511102841461436746560753413720215142670531060246561947062527408769997595638298027568269448845118852547057569095439902514183490379532800583328639674437541773914949422329500243954510426735801789628399957909473143723972943088254624818998497534627737296469659750537902839635465327673931800304502691026332523080383678860926988935356306093989359570721327966826745239277135378128925405157184010624531069644904615093263074998482243979526555181961128527746356278047847198951219237086435956848450931813331266394625536011382347872418861684824247357831676456765675990541368009857257789542249205770125727525380269636034767326416693345602347728986278048121687195538520319868280049805417634439716593521820360214941412968117846296413527463082912449830884437596708055825097641036562422861308881574235212965336914525901128179217340031778050426853317119790113775711218564601730119431639952255394435022813051514682192995774487140409115702394561175440502440805950928015235380120796074978762801878085008123795424701765068787098709106543010529554545777143366796214556870595708250791921651856451357615184445117131651950701765325163606989581912839046649596402170890361456354723983548524252214319951898301229364049618198328601476358080296709598727052369686456557212918502794776521002156592917437039212296081013616421276691016366792498110861631778018992055114014914945281435819202678041170332418565494828810410405325819232653881636399065826101147184045812594403540372749568640789880005255247731432843670029854715428945720925714242002690725434162911690535442119516079608196551559799581776837403669945414461377391630331207685143546736841384582781444057214446103341625219277519067048799557290734604418253606775285372441887763188242548278999618302053979831261610919080094555289419408454738993113270999390948049191094170645910969899024843773149581717357231326974397479933577272629666907772009961190661697041719346826332932544196687685915868211092570521573871763900001329383219682040532744357335860963983987807697567150857517335969669452922965892547559191750051524102474734748721537124534282304740595523320697929610302049501714972883631464947456458928924268432098124851128263595825639525019679274254974424364277227915703209651344562168871662619082814159159239196570852319773319747461797550396043954837016645915330165161661080549787599330626864979208573585691184253093832319474864141504150665527354386418512088556044507847839082102394687863734884746978154349868527472518589951419308505050359027820162745986245199218032936701029724714470856833415557781628429474734886352462550692350056770196269363984625328174316846547619245888720851302738801234586187742797607843413273192329707248588692786439652058914280155781935299351771084573206648482640688936223107265411014145867225964132802148385691862415520306109952265891682587452906247843274871375992783157660895996635364191192948728739978821280443459700852804302405778222824860735760201093295581002116196849509679028681909755081349263594334291189587896354682903558834448618663189851235821602937882577826130200051307621865854839685746521776753612861726744938006454832525935574286850770693153134169277034743877278524194721609195977752421223007296493327190762777841682435839849233842381426948088873610914199034732368192790710951565641108612390843424590791918910340094300295517184078934077511758907115831387650086452587861533875126807411766033737958022286144633810282272964927544282123400396732876881989131327464984916707692464337170215676475863358323748346586445195973508501340349917024767944767102008199207452772007490747879193067940947293225350856684338496395068694676488799520693462329987443494548423610938724060457349919638746542370654987623907550480699700595559202148851730529616061548234919242565544839580196016362410638607831128204143377913309368219860756290525510708679823094079005117996928185608944654248427037543190911226328592142910587541880580656979787662638254935664541771441095076326589996223130999861545031650566015190122817416238754327180748398331472876978614335955246833402448282177414324163222735504684959980449574224342837194018811653756474589335662924930404348428335222823056171021093416318682824611735799576354989562348786151634132144647825669996952331584273241689906213741154101569014239056233008241585988936069408675766953490195429919338667672868945290222211563672000170184884880370766084420610425231607617556762887185681352512674582172191160280344228364427017607535802836535827686046929414450660087707237231406436334737253843982344525706975463998868034151875215882412488158587417302459222254767592752951266546942645510021380409338791936880234657073514898353282348120047405738369669783190101190739581212844115710641986117437568853403962336885340285852966425065809405696137016946484445672397456802274059007669862663685791349928295496834304204586848396960979972492895619010556198360671920737884146883093781502498138680496212243076570273057586340408863647066353731953082276251914479166179692120981883042495284080794216571987357950659585594683989626380612760874067113314008573724557523079951752989099538763157292984463446890359211198946597610015605931747984923202576284682137032479991171296056265326389008157446195036938622013396258842147452574256971797651339039794159137357118632939883942541094577641461872444536272938979172725818563638332697079799992150705748745888491335215771359796336324610736413230251476808556758553084321027487707495888529264709241326463418678767096573550770346228572576895093480418383040201757914436649412633098745229594977472877288278808121063530559280449611075467886782189733712310407161481159562666706766865783102850453996546858437202763773365102215492944999548128710922264395026068524684040607989760744818412400692191816878804025730956758188847586418936585343010909415406980691345447356024874121327467974874983632506213641526982243649940868087441365059876547209118752395977306817162049751549007298996530108140297710206694071499080582740003923371489593379655631726356733478793808811497315329001463678507301221486335750224702106785791626918695320612424498649512149239391198071021484893250068845689561431229252525828477345875670512887665863960271133624302999247852293164944966141303767060321776239824145007509181922930305996947895851606358106364692447322385473613343378413084072167768344047477789960200812657224374228510212658620525335594847503210525074238341103305620547555457959832982975042715717485657314184397564395868363640861255708763349557683480437052339738219137704443331235020591634235252221170164709688548007778623414100228990140917522034377524218489319964714009593527982260851098318592256351262719683737090646799883926788486059333515944536318378197392801580633409286973863879354753606381688030166807366829530304956910698972179067933429965874658328946538264875631990858728935669052751104063877304472567053868800560201469455245144672468973929595879724386308968820867131154479280038738869753018793574138990159213809013031360207414546605356740697446173411297293560187801880294553294811421297784495671034721303454400172423663632117569097391031659882058881258486565791009218957248618887694349672733656524879889326323811608990058164368863109810354535844602000683715196389877223750980938627193571753708147267933470329075519655662219187875691123053668344278362227190908408015042098478601880968278540007142833964565571010475710801560203116754897875512747613205067645432244080292268542628309638281690645947512188177993502922585395887246277333638913756309457361894121177914018731825854618203406006127836069669135089387203929689061884522332283489504044068545399274213644634817539897977079418352208858274473626029828731189416965484741932959040391803596457615584651777975010638926107741417134406209162116562449442653167589339951503418080657058124766388896966062947909314068293878991015382590476120502824531118172943576397289077060219045700450322057000294535823404494806544053084299379037884932412355585097905257864034746031017486616302488396607218877028969480542490666979233641536311240002236860038124776184585369558191456755692690804349010753572737074469185484832147607109689560015329811029810347297508026627026576324823228438073503588080421168279184883461439731440875070355304706172770307902462613989304763093017212189351396020309391082017037523388996081314794857972014800752101173311433315698314655581584681044201526480780849563428003644934244364909154885205535933662555244339492139128212783708162130165140969233236709928002307406154087389956082560179185113326933964700259500817714375324667460406142871391124453122443326349306227357208168454718947140702843495558314336159842978858501689205139748933491076791243365467985363289987198163956576272586908685851357342443995935321167536347488155211521196572565087966565161454481264106007684286129402597044755489231499241455248688223307762618630043568531547148341431166070729951966488031210186371936602943484638305819829944393738278659889346465584134969995039598546653652970653926747853986878896980493757308278560549038494430814205744344433169525825792763301414620668858818559013277995428498018699942560949212661877419176853428658822281235860074259106235075033644151105719807918108581035894548365806061996756927413641151683771221852887267365255076705697354678294307581710766751528223908351115980231524860334394481036088348058491958936412119864540058566997953642009352951927987630313525780558197691712401450564471321988294887727975710259321753634312871745370332925996517798164679368260456521818139128155476071570371265665105347036975446444336542520701818772802637427528628376368746936299067147278513509754318596010152929696692514318186300173606125955025126613831812334778396782691701601649920877998822614640409832233394193806219671167899167374337748216829861996078060831774549883537733582144011958513876261640164300574219487303694142414543188149731539200136468045235100422139876308797965998998696255641808602739286763950656424463868703561279812061899287479856798800477503424171366863475187242447993515388127695259827722791034063110906243897733199380449073634801346682468298661745443919143563840648951521939283906554351515266876514075574685802058523274977390727539453539343061971087207503816439814603319063832857703929895399118565674424081134388776627608216576179839164894011390645196305641310373251714524246574184440792521312031251753620343262235345710002138843521572638000596723256813613455588637895370765843112085136997386805927037052748073512988759360138396853114673286192865311519910983136070162434942068234309679820585461247732685106135146047285548745028803284788374510481682847785008693781105758003979386054094743554640701205890323913181599318443022204135430685877671214554296852357361701642280364266157135490602039568617560015333405428142008047028262253096733374903715168232005448628096782077754085872836101306149708832207961101656762166763931413195696315798570963946831527835106351130276804592183338798627302872060685768878965101928176850011793133893590727738645787961391942482521498063510589435599696431008127224304629727843135850700772819173149599856698107187543104442356017099303895715416932596309865737760183652932971175439569119406124156531967949001181658219621082877546102033084514936785343848323846538399993925619277961293895389201748753269692160211681440845359032887724150812869699505608297834703467704548470082160964438874474366300733159307655246047636976502863697195632449307633569613192533557544589464643566846893386703910285665168400211933230451987340043607317318043182054035694927844018311435810048803173842794288245929962555231141884437015791294934329052417830055652858526103147968603301806000610174328780905883527475987081959832333246386371226328592614330400683412541710556495799233638291936059358697756332055124237648382645928597825734407557164049308684386401486766317718912316678219540897320121775758674761733748736762934608908107658671981818871454605537579786525565500134522583661061373166069872471509495144792746219408002090993493337943394282677346219398436894198901204527690295119910551613949646402732168897060690772008218677248363875046702046664557313878447158809665228713314414389558368970089620557636696834951811168207178162877128876070575464281006401839365391624219846751282387895394752876712445650431565040509472991433321786950507745077722720252267302125159639436955599561003156066000690654908053282950686583497761688667785511373037729995729412231973892333540998974175589876164334945162523560548070232860142885957236182915310542971718638851782198596566291016781707128624318749011370206655256547653149550145072737766926792315745865156891144646114037041698355262075106872681244435995273423866463989628935877178261526072499822607638404468251998934752494500401671323248806204527650436670153806631438433317510152221249498548133679968624382799773898909183043839884016604850427643248249865934244758665729435630246160423099252559375874559105895660381424916621596270173610586245700578439516053329998515299409265257029659348057218265758446497862632807924263146027905567090519464407494307423790090041363142954046029988434171083313211179627327216456783429051162546753550682218645394468210880664797319900761862819783482344581724716707541233535734080730014959386715655618238843024417620262918661779239764987054766908724606895313068800777581894050524292677761492835783091117222686990454362281115336108936466507780555050367315174434289648746672793473145368727181867075049895731689635480264727307995139081186756651159757348821689111248640723294207271542921500334769475144367125858268533863096019020035719677571148253493028643276452245504962870845094855896483717052027669476697257154852599963010269131002116528998172026582893758229066737314021113128857990730251866149660400914217685489107825260813093673063465343117591359538843501290823369194975868462412488578686086253800141619249051689733347172216343873768824347911871527790672630930929110313880817716962231050865862018381719203270077336689091424959496869733035797145865607905114583407329778185843703618542593393550831473211981489938635323016677293062811480249058844707683048012818001161153838996402173857547037537827147968557950571373129097670014000408201560129805258082699956760882534146409118389519593760134723683409772605336180398201464093123948569513567659942384988193867519927327559398329197786282661898131013160663555983594958603021059962942144166219454947547562577366477867776171680344334229650276876186870440152877794827560115749788151977926487019547981453411283514886815579217361510909935769691185719016631700288051641940353438260086107148214018271198793660058879150165405358679073391764771994607800148471242194719314731177006922903074396822516858173984840421935060801331670161988773567958734869258361726625979631023503194898957314176651363113296847369486204164000148147808822553035217533296068298376413098149463577655915440778483922075141578776871972238879481108278985075922646276004607547211547996700127730800518320657317882771431744798408126529657466776460566054677377582046747610375286374020101015008819659627190399050487491107365286477141977591787074048808104672240177518663783571182217161526564525752101547218124053382546712177387652831996679408535379435029287653468303642719945332923061557319138016139903989089282697137665245183364008025857164904564465994874028253825246495185449374545172385385586562097751271825753743421803189575849524821546524802667801659532155216241061837569810282385681549033634062802463321667948614775027280282363935303004878165177508692712346733658101895979412355707264394060075439929047402440873667846621667428540446280835950225112508083231408290455735952135208082711947641920325824996368548925053396596417306124398349797904358885021383915505090714738728619275669819742012980922368631936944444963531225251955555989330402368087867558099028527451751639919041284273783313731271416371614631713389381940074059259321139733702986232765070490816417669235088008267315712569665196303473032833190165134856411838476545140252974451143101575840192642485851860800966603570482909892196483176048579665062303851259468968782084714095185400983712239675761236488868903145147791598589553132553946426686115109433835294488951358838105798232684056356419503975094753514185695577691334121507269459434896846959679901571029083875262644122251390407513814550157004671913823507888431362706472923263349913359895534708420367215279512180132495971056898992260419226622552305467504082272189683139571426487886037087423167416432388093353698241450923549508873504150052831993102136285650432092188703027021132302939722001045612996751782590988257820116253455044715982364150914641588543249789654922734776299792363113074761558885892773515432605903136196351397162173164857452986932945938259143980828489197990768301031125392452701832534427242770205598924940019407018267497571323896117995375518788742728759416160689499541653240156385952795071886039066380832143776517864605799339067047355789385361243228871260999392932291310509867024110358113640441725886874915110078712242819475712764271692251994677256609109452568025178072734089779447029904432572134100200947639279332507943164429813793380885882343870180379619251252567583597154994787874275708851284947202396929950896017195226817876590357255388382022006097188537953721536546971840233917625533347807333285353991304991224458240993220568439976887089767443921469619489954048950931165804419290811689473095343489503371315736719532844037467091219018560465318761263460104930969077973011036950990066395117870782612929326644018683925549030164125006718521576159628237481996033535249366023731004138318603375134378549701581609105165022121207289277891753260731043309385577024333313345512408636984537575219135421537292970369981056043451157760423150207584642437164094705211286830427782116858101585136951281442294953971016306933259471639378111013214779600443943739964087007055715117390010742156501505210064130359252866496986592946676159064733146358510710775065719240667008958960525649085168001889913692733956129606353028021560829168221833431347011707962907876629088722049761253035975003749337393998937406139486343656081721594597360430495412260172874830459425238811718398242548231870020080608038643971404354075068594164762298107658531249945159467820234937680222479558776865748554473174271781379379471255307335067931113795225311362707136397853323519726866423365712290104127212205428648093703879996957803281022448617410760479229573519167126114298909885206194298822410902883858321572974062790264870699918770306465775711269679396141568375338705355715645373147009785402127066436793170380695229609663614421456542588376873472609075386435865914852626331058564208120617839303104589387579402374766511027197238341332522372879251641844855879768396272843388306144650474287883297377681470884323984989882221287067772143941233140626196352315353236844495614563967003923769001932968946558397740767952411483413538885067837400402133221738993676856989627957888826492278216289136875072316021064803356401048867376107878423500932301658063130145495068972428011829324383740224403345748257828389787236461282186825642322071808188278132212728615433079618439703469945398033532181554587533319925692388618378000592841013980126644618203972853140937990463919079033381186503832558620788422369211164381666494701010662832490230923968122832899378547687366358478440824369361035471133974435391718926249845261869711554737069982576048713917300375943414781471889027207755302505105439147262135275304845237526770942018471440177713401020615797909153720016555894859395380638419578668962884447476231682103003442360879305126508133394360702579304276674561489082506195634651569261554444551457561868395154566746364947038897518496467830999007649761152820061421834538986385672040695349855091308989711822307839772220143493220115757017337659156798377552364685030680538117271065397544495293068394856923432560367034593419789860898047919315606786858359598368162413839848629222163297886824851331537510706151003581708588401232899104594078993913863243759582869092882853383909636399735847004874761116389659616421150180949980530409842753162031885214672441054890602396808399726187455157324856539885799592113605104005261692026498712889956803166432292236429880626827784442080215860254286151154943461543378876952451503515816123089460292676421413779461639994647987974535196512603153311981403169612579136059836919566128975446148070505835061343577558018707595263794895493654169243679384495072757096818758822317306745730132897501809880378765962454563563518161512664999454239577129754238292825602604456302786909004339582579671756109809973393753290754114684216974464830676716742294525091029749562222490391948878912527346144705846554016377660726207244636404686997636652444636413654989611280731135426758304697240305785327003479989164909911412957698576798173340547847875588832254161172455243843034482110579993464831779079497621283981352436045152169485368201681289776811663953378025296723175622253075673149890983878369247497599249061894987064730035905370669224343217352349724717385717146585954233311327381683405705590004328417390435627270771554304667442901046100287960159633480323939374243706968333296745109422629047882373258834801880601668695278945208896740894783619236316395629567161434238531718284093402999148179656764149976909647945836350438880823384376607736351864648406576144320088330688092179199031415353640178940623199139157273413140124304427090828629871937776140768564195445545244915285691680752441754111552168201286581157731587789805322869038686118660731525067922490158069420342016130559418313480142844226390272819662215210893789464165691741041511457516943361869744231313350619049218198525781030039488990380766696053181819051609706250954925125837247706313718428690333439245355482806457136684728648018798964412389556509620541623334950861307595089818577160022446114174958148588117945695203250350863587918404101614728883783448294302982899558572210904298813974886399699136315113590280160613007511134727253747196361554961810337442108803700517405429899930361541286999602941379618502084738186438550243544213449326919453910971591191895523847288213414200126519363210741498455293449722839057077894970197649241119089015799400098726627738975409313520297437234215259007125368171611370643257998447434028079364236094289084414456734697339504962721997171658163161353484860772261663842142353781242963128835956636959992223687677712520966131104374773694430025695184589575788622918619210256150176883650513991419593253990761092036292857911496017228748979355498522009450541462798104176953796971855456198883680308020325921796105424888514158174645668415911064474659855106267283508522302489043899528221222393471538707506579776381149516095141933874141749151231618876012136020241822420973733771357335563825915600126766490463338081176041420845695148178691228947095322171309935210427091205656925908665334160259103077020682236060729441191955999842825663002129700973378760750587748907185201271021826883883309859081194001987076239875202117999390802392880731505879374103365166119548250255881458384378227852245358036896383235621900674709440673844775176552582655250082144204891488797049109052737674122186157749884234090958744830541989065995267804707719867105429010540082559876809446459435396002311022268878676998273292207137548089285317448846715165938081888163186395898550120674773130566632971474279883520494305232957257311234188208834077032539947930216160984991620526932349818596826593512301112446998262220440061484786999086208917995664802749647082882835717472737005677403302002970271322110183591035935054505873444061925281480444662270031717359007033981964891843012096132597159157974970603749991113065978336600987450066385452185360728336446445590472746491191901387453073151385476587061886204577307299365573321288150462980201879190204166955679771373089885662065736009337240557615021156998906918670289664315099483171220253659008683120794016965269046897989223662478251732614639522183616791816093735351882503558086371095685262699327267508476305189922142500971807402893651508121210385743174201793505117280974020603870916447380050389347141719788289847135616153306838507792014792984482707267266559051831986250034897160663990356904623209302375102538038464286665606889632047245127811176691960260317395433933134933473070712160848203145693899838584080607944072293398045652436859055998808634846761866589202153350752702883773426839964727131497456040080800355273116602572958853646073953325718920244269974603988371248234364840789431766128139069080271332627878520706591243195371736936213151691288639697420826589879563162774563823894279547042752276218996493642427598039749717523357667549713183713983623023070660726510691799014296429917985940500920010735208589207292519999990636494200806531784133735455169552133406168533323834422559369337908749705652072662365278686752363351198012649655325430021862511477792352996549005704498271007985121172231450590406090062521897499212064968344924337425288209896425258229715123329766070727058876199808733840192202200037194106908261471114743560308752390979944514671230909742701842636084246997372283229459833639074008217632791742996174444152809857957713507356546717571468024847113621887372474858613542954088293119624222986289129464924369990603283171712321004676764226053468991489351314406125282152937762921864294174676872485991541844224216005145051704681097877703750660435247301396758414050781983061992437074928727795055661579916051499265001189297364226382614885671231776796440640951347059971105180882654458925253009739255180845806660851414588601258939529958866213641063856933868468967511236649149617220585994956472930502050650353365671515663818658260862875657916358203652037309022222308353208496529085081299560411482906340276706122822306614304115620977989453610721253308241042579806780872112400228735920925681788906454429420831288100915308455248491767478049999067475203595215288555846473021014424204678088866863188510289472262549585558040109328426999744064774204858908921391040512193430158987858166928039814053247993342209033606830559388221164463656068387501653148824065029889362973556903255269496388761804640133083618483909901186468901166971241816214843111116829904850070553930636071436788866194631924542581042936237065923147252733115236914289811304625090418967982243652317056847167251086843110556802691070796019203112132707648063802044682759565237793895162790517591556442400822504902274269385779480131309749892797867316927556840127495888034836517999835438799313238667058250800960742175114266538709429093748146478054816218211383712288487391920813561066854105748956013589579897022196895836401132980621282459631111799234858089816110805773369406056268935631047121367493328012851235760516220475077953212771882771588175357089690423750227534178064965701662089592697705681152930429641697098833949098373264828238211025289462417012386209313868116014956217358448804940930706667120861461785200319821868552523284527652980912709099689850301126508002009724467086653332684585833791931087254599657940255811079337722243321383436096620608512145690049751969479391279795299645927115045663213288570436585487378057300952751288054588782056138504730040445203374643088314032515978634804871967486686154509730853142531953269298998386261555796960801407016249634927338446638817315343136809526131471977641750909644355361829497739600535896118301521023682052962379699697781805564224511937668789938369823833428943145139458637026687040505440960710122435791383631519257096927420845705687578334292278991737392882570990614961598113255262729389108205490623066852936576131812351293983254725764458051180837531718809244988153455815703790470984484086498959772285974381227894740234434215945683055683576209552259557620667562243228323261393079652836756707425243133676521998431296107362704429498710132402286477127642980699117536740097965698881468534390030997159213486098450729512231950789317960790505829875122835987665694830875023849934243742789451534461451856585707610695529110346447446779029002061582350205455114738143340789730193403000654821091807624116092635171395716001144087982023917531049864879358739389824297363452880186869772849154188262483108430966077979232684784293490162585343149469526185069469258744101138797160772849571073457836996128573423618008440003086142425639987150786433034470881391070435334399835190074296091027298786153158009330585161410824621329821489742710199889281703065729906505848825944467110361385620349675789443272879509568851806202318570009936557860303772649385270444050358038059549215904929399693406493843636281414405115151783601777491314338771619263506217711801699415236525019749804056936010941356312675084261294530813495370812831226911123442137109919908712015398406684166979009808351716453339247060705597208910165868132239960229203527222359405428698768391585575255273003405190417730863362794669107308104287948214842740445434133556496154851788784625030405291926785163836665347923465369113348178210259926351945522046614694617993324838965078764608402523138575003626498478479368590660464300295429973132260046749289427343410478728503582347612504846749058770534852904450206462368109901566914155186718060782099270087551806497543440601296524282495961589302879997592614081997090907078764598230892052897027112937854327307076489377867789554060024772139220845045005326402833491296643246491923198906763763796676222582993931244581044554673191248795760182431957426454445369538782528848237688501853608454011945752355062450459347065291177347202968869496897899469810289502472792124129719755365975739394042471710591863621791566949927300438860425216056278561468376838473957260980374897401265542180661617796740473649508878930085881344634577217897265838403681045297801852166148028546915755413705229248898720241811692395399999868177078993779061375209667507876034435130526231363578229112680111339511844716234006186242415133780962058240119777191252377484367515077438840682905649601882056906104576534300629703752430840237895858737149301423350603474328520910820606502481842113527007192365726438926918660086311125176095952889447452276830779179000217300402036225599764999336285554303294514148679420964706784253083852375917095530004728172957473178695807932267428538018247879588781240691416636093137225329546179361356477104622224185045331370617811447527454197526931378084618114622675971481368803735181833773322932475785807285087751314388452702609962169383720685097348778607600248153643148180340832038506308851569590852453500915744917472541351317186476407519582843448539910750312431465284828554396993299855604311774435892922681808462225705069183017864513519571920157831772138159719943042171227736152774989034944696110190656788068495314850021524738549209778151132946556172251138238234273827988941142664707665077063905358260842297255303117925069730123755816775949362663501986503188366558407392186904755078049050332024418800569345976235093727590795394908835301079335828033291648230618938444962765654266427719845911307363258604348554883922007762663231830218026681657986088272929184654240856858666919033276651401797838754338863684101464088129969486576385230995063906819507523840444166379995209147054390039994428183398103017956985201912041563373851565118442829565240141702488558016906225568254922791656436548143043480736990526137128622433530598382121485000601584977309488111277156408561102254412326810440340009293087827988087756587694145799943025067702409450620025231277827489903684535842952116822581967591624084267052195913652535416252666143457655315508221697002396363196189493341203293883393898900724123409998047729717665761059207962872424988691676195595655312750342793611189004637059233290203408626844312726803603213098111463510777944405424599319440552249173170039483073262431266489908596681122020507182632251533376150006823753530796170453616298537742374237039628003781479059442426873241149601372840860416288710597860156658182570846190496454033355654091164926319080367463711673645251700462751978303126241056500059489372511242400221934683708404554954971025129867618019391010512690656805381123613541825383165301418758297160742177029816350313050734481439260485143964274697938723157015569877300963109634772044196862453732021883761269260937832489886531265713929793869701011904504433662065729011599813459898403757485724319567641907557208456467682690947978655919327083816694939655583862646982617804157093363385728570856646605052628286185181686068779765664450804608193886663448738997200987400658237570575810740661829059730275890249899207482328884462794622884987184244571357845965233326983605323050419131344593645600557602679813265066651045323830467155114854984100105280961690140878634071053885753831734152741652256311664314418643496482139926415643341737543922898431997437159076707677799132984707935245385287895695507414527366553273821839630739473261370340295541591710009430261804939977064591709088633201252624099152853243069089542810321609975674488645286253732089128192186470211141129009967074966064298550238120437602531181523249532288146126321380713081779833687701159732258434488426153840084790427850843831879694694566143787324651813311311125389498855963122571100804688019518970566198221874369574573391705929425945676133147790395845116082612627356494347071819871118096225814668934736754001869202970573158358455709735926387511708753341692846340665441171461696485012727441177347221760295538158327513928034569551674322793031613314664476083437232922218043364801006946046705039331432543398921184784482151033296916539431765533032753566365061440287706358393000500917747743289253023325530523808226781713745043090695909908099849288876674604329263400109264578861264184796651233807243202846359459806492120458194070640136207041320609379261673232915817338857338522544068114113550490243213610874610020034487565807088608476474586841442301206875886561042190448073381409105071471473327696223139406259784245232313115093947063293080875658047674354020362594878397658160956586207916714124523796940816758691175319329204472968097298906315846287317965872376981283526153014025741162720458835208381247298988195889919082568633133086961400984932991237745098071223697585853867069512354757616734995321209878728396867341941800168749773274581858881227058164556223671772902038303585223118982780458041236422831437650292823658536415129566518779918067528741941885597393899175846150178459316562169198579896157687965217803589139159436240960845083339736526041449265450458905081741747660138127283470382231260121815446749700138611003472244381221694721802268117217885850991034915167330430906517390066083716469853777090062324288654453061536790468166369866959740610426249404144985567080599055269310635254583889913084685450273441574008730535856103310754285642382487374554325803717177802459778678879057983130230408313581153284319030475658550491924841623087731820633372879193351666422193337404847959463124217800689670335508082036584060072699892754191117981678991098408616473935414366234391047020115603555466448621692757677274522910701376091144558830763854351228807543886157943760949034263945181367847132839711930257772840037237404937366689588970906835118392631500231034476662792901426374961471878805453517009460604572511381553217380333278996195820129928915078185570282005542439222421972229449064563124366227377540347160139630008321728458457213032215537392758359524626137021317270959418569787080605487417598599842580979897501848766056740137284030095027080267218545070890593125238664651836096570347619772625603697886456698063593487713546202558791719029623216873354666215061904688749139793770837604811561772978779976785271458253383928853725637281881056312582611922787980280332612475190229414152294651164050439233200147319453145141551975960427358765931660581578938322167684034669227639907928188077344947628198291654572719558326236066417504281349654060568286216126687836147138187118311086765803776463505089734278351421117073798435181782345628363600405460080220041362440070350476624709709654427831857534961816199616076188172511715461708736874909456957472737421584101793995797433475944452032326306950049952531123388264914032329034887764024591509456938941750178602660432543504579538810045896936590962143635812769223672014228061718742339438207360246055417815431991905222786265435232350406624988210326468763416307965015430742005357553079893962788582064899211494915265514979071547812152567828194765639139392520658774090028312136607442960846262121292934744812518462992538311546145377394269309549645299645922585760050832047501332475307886213031700100425120385619322845984617038383851823781908871720033935918153806889794573733051292094008521392772641380555013469840266513067867254358542305343673252036833233064737127756195595433582073034192895149225044780225455102880672077768634460956686212568819239177943685710006400899933686858096611709485832829368028574886328925663411443506093502743623752484995407434673475876853387951862543056787588018084489578712888679468977316845943389835874502144919399558689830152990650990647682698992644416206209675059689723114763816793958091738721688152995834954462723282077939786361330967265885497753353119714902862019036989293800813258607434074116408249992886795934400524186075660372631691679145569185503130520261896619393163762038322603687771095042791597212997373892101468054737846116093536439541142669227475332638425286142090854594426285776938463477572890088490914956087848267295580235905016285266268182539041515877020708269709699189482007013784995625605218441478463668886179706325126906551029911587570605767150645253208243949004311436625297265129431251273824182118301605234636379504487018498609694433365522904583896175081066277738722196137264316316120251955317149482764303395564411049904325899870750214327834283591184247903601979491883420583130040791432052979990400348519793786706022445195620627185228938222175865581927608606015091299897565109698961109891422289000798969804360662188295446644907360658233752129949691831716331806477227231246563850627197340502609864875683301118116532603367019440924497693145561871171420461481938107063434915650908119366065366301822070597701147474680074854559696306999898145261367786813145810220915121059903245261162692089452008884555553101102792239573647640318405655147842090609489971007217639436078556234724665864785359600210965032253077862368767083024443978677776781224748135702166607248239043501013563282568173246029879406909904374018941463607539765649956431169644964424401271802766092806912864408855874704602764507852922039563613508559384152219253826177097236395841269306675588368002888543112366701060986745678622455261735502705891966707814861127812529593452184990913917739973004433219205861188527073698032416246917954235846450184390852511767516147660681999310986295130836406974392784603415348409422281144865537166782737949804178799129669881305120760814607689448168080963292816600695292903417122592238090894867339015921696846206221848103704212972893025165413560488467404187241539965899412728576736830603359182542230260135740774777371248352494399743495623705577629925482945873718201332913212948070387089348885393581150734979991238316330650050503973329007218613872064967719996367942483402903499291705969501305301276537345922487952464292820232413343709713421343639712748547422469428758254993159184067866715625648153488945909343215939129004889657167837931236272028332799336710621766183910789264333892068780111168287885049260317836753899324142944619316806795303034869523381543099957847452103536322232196615925579449929919541352068163564342128801620510524826975681870338803275485109513929886244981983153862206096789894736429289546090672196634136649159204369785537383221963442501832746680905966391556552371912592928831122900564760989491099536919920138805366588491442307447992389482637197108645179358295351221259783677015535126772790340509115452176376137736614466311062022470608221660100612575393906140875977708733263576740254850031367709044180566140550877640959814333509555815137917079259485842310375356787844596824553935043922798617470947887395815708359459819441976713803369000215943507221430835123545331322072877111475429537598484279121986017187746341101188740212975272204897096018339260450197921519697019120974479180640740701681576896534137939163155769820576682588201327497863407279276688405529999088964086516645104779526566602289464489122926477936704634776828498080556123485981601513322374626273828526474319913416343636702937606735745999030233132350089669249586646576480426293380355662904189612610267956696700761596583601052698602612667101452195649419900986602432725523946552243197610424190689848424010999613658299483126735219447696557932650879528076225601150545267366784387327733351215588587097140486611139697994301893303459194665703448278531967400810195920322600758838720985562570687847932017323329292183285769679486119840557950627416720072210740851473345555580026978131976348792037297024224018360486760411767454024680614359214518277618533638351279320211258496138370814586463982788362278796565502004124714375418668180727821110078248415288719027721389518397741661808693983349690326248613907158293433295001448464708216675815425674581786801189747817147457912137941483561102399780365815955147052466307660671776540225175532342802413830865729230075947489453684386088946836858564006981378259041068734628254362692420132455756142537745913645963867877937553023579756869287660512244361413188295929328326391789566866726746264066027071030613706022350892022213629702580217426246868906076128826530695371692475642374850898108758975841183066681168306760877961730934312189369663294515898787941432238161792218331310724486293756040868172588703688216267798437444468142161111594940744013631497508712043078519532050246727784525630929982464346066629686366798684765322995049684889805434855962644191765691988187752473342210627535547886391888329176820537294228560585392593192782957849709941504581512657719446394097345800435503340270375464777273994694095687342190082943348332447443234048822501242597240810631556383466636665218325504389341625882766692466845193847651388118482409771790295516359566251304293771529313576041702908245777419097203741175228512422067490894043357768640592820012686064470334174988545929758370661720409713982603987992122018232581085362046473234569919316830953474642473405877053280852063110037420478129541909979245978390120075611328538792800507836664082367091363914594001713733064544375327282692342909014434161155808954771395703851366872484412676896052955384560107181511529696961220339293832137314261629895606221116557824461230831319267393254264343330448193194991146375406071354718251286231480133494102585571763086237629207869297032114250445719931754952222348948771870187117729984719850006967468793349907008873761005607944726039696462286616328402173449251954311701916203884959407133633244712533397237663973057277088788654484408229941895022722310461144044580519954860722940984785034951503425989817813998309809110841022902501449859281507076306781148360259720053144742801789868070867784565922824980703362779911112093517331754170161456877355884436852331780231617357377954758655385003678770512010411054924121051122380231232068838672947399723984852856922863122477964812730190924869405032843509038835311425417856078530106321357075455446557778225092888257483059292142775839440879728216897900382997634382491136243124276686303678223728805141962995066651841059072771411940862655879433315168678887857185524031753997741200533875444724226155949077109311158043472047666382623385322938513521824490163773454474886474893963533088528451533756598048053250804929112283744827360220104668041965212613046426368559922058439107142648924573815196113133428333909863485172892096129226709291800553602082974514529126833913964323658858639952130960971974910912755953761392511975818255340568642828652547427461470054198928971828703602143781998436159043624858083878112106138564347361490418624075284736581075512115173307122079281712089885249014063991034917079198497820267357026530988469242912103927406360081378035223184167383927224811594741031182122966680872002631587064365468350039079277261559325818875008911002505392488517031519508036354491814662011074364428826497758830385647337923418890983660941731022383020020855594415299172256831606166083839500306657378056688899755691976859934245430634970326661710241814784074599007338434807830662089025170290211841337936056673603271100730314938272645877554737960918257151262137181693296750144073668298366105172471846583019858790552815862084696175451879391417446522380915648116503143216727575976779853961835240259291931135013597565395630089254174338669665308594916729749240027471808853036627448631869834964389468766621419908534899354488493665869909802203086968375500216014374602904225974030916141535563092114523292048506522491992295592529883207254607110267816163961845974087876551492455453684496590992626776423979816548861719035008080452794386624284850872665916139860566497735547616490601880064392414922878635614759928193817795473997756742718158425257444409304599918890875917876559715923980092529367000798613176703633778483690133529016168327366722028881972362436361265592627195225768489872411901185104818433245490089197673032959559453853394693070233513912669728285200332392636485701257690425519338492506825666587138995889952979048727275069093176476398418165295990841912247024806517003159443069764387166777529815857330501257832118580046109071145499611873112531180074996085998593935759401793016906255429685930050318052779204018520860959698397154514554940721656473839895291857209262870138688487319450928912889107647813847737798566816910261347019371517211856725005585816314714345975476807137959358884411848469454870535228943725886748467467877958757953455589548027240196945897023921822847745539335737321010483631291809112795133710291122406115914467819197073272845564836561919109259463139431974781356357066853754365101392910396357808244614008189902670992349815258609873624986414235083282550534562133459221676527757850268771771310557490189248811417819799517351438742477421459946110345818270403867194113618766575009445216233820745945864994411806882703406148583384306417392379360060087191543707416727509847520980007852725279458197482995655938026894298192109818830418503807231338585598556435252516053530667617379675653762393947387206199891677861162626430134847554732739855387616927313407476022790041272367448822371123970053450594827484646412387452644827582074045833912632748378145177719684689562638861387043162063002448042311132094139312828436000780403032703806124031841728368306942358862750969056911158295742142782242619514614358804328490513348003753753342123277942498925134827957348723494734292264643749252468797325415722142271821078092431661044800462496551911900925970984661771725003868084781533496428147348035417454406298701602050114200830227282903554773790060347739252026117813479467762079916801831439097919758077856902113869562093165601212429409915815994969549539386446121475604537202798213568496648651114948520483170141381000137487523547917612226444410903896669125244485317940490131296508941761549224492946289228580745599167182188745525641696830446518435887126203645734559775999040373705848982433424103925953622106970730992495502352031846937392918921137590570632083798762489022304642420574409275715884678007712889156805944084231498927657811750631769402521555507840421149878744357444731973929488336146924847416094038261780811895559337470189487849761534271645760242708622389979669951330143740234416187268490309152933064720191916198006655584212932664401356476395041664419971942820736697678821314748601131864725828762483172027066410094396942242176056811626045123451257843411301015363283467613747991405669835734935098658919340109939285661157139718764004805902610606931223364808582474606578614184881200450106977294321353910983214145981781764994260525014073180792359054603877299581698992302056490256377414391031743079471186554565663250390397200864124285906457271864790219300026337959205100158636337685033677090467422641937273050936166861051532438613558210808322241412346254686248936412136688963952452698572530193183344210854071392481395910815694213313529720354252710950253360189726374518057573796551045658230738191393880062913059618216663788851961594160825079753689217362894205355305617020107532553846577386005694829836742679771749894423796053862314594336270960570958323182246960863349393905568365162600620455120230527643574448677922518504858117559481468448827075436530917698912741801288417930489072355154576179959717539669165379703643902239399346520318984396897551272347947633558290581850871591849440050313012135655805868101145614336852839672966579062172837653363129855993741887630744853243949049307205467300759593233886872768830775450338320345816498494964713174377264492527998742934207648527500191996439624024627673749646481254019101574778455223002296414658263956514763782057263288191352186686067111810682298086049993377470922881746563880807833161085935475218007940515639727098805295577268822080889264093798649389069206826253402827149628596871728853055864065897327814562792454465700263136450944550706912540611700217232006969110200562603694601071223445695437756699608411696788542739731436714950441213320094449266947102548348398511290034611796717948736143736681360688562012769360081544808823032014612810477952558182088187039795543329974725649276454456567146180492209544118241965485739661869095400713953555599238691758021794527878230164359714808384724308583016413142079145265953927199043434500561998001600025865915890556335457591348714245093377908203009884623028157784566184562013604463093668333302164154447012769701812050801230665496583427991668832586545080188173614829695583356944012488670496725044874212217119112452242164744556927060514831935940165267017908877321555407123893477621855877476401807438744021731987613777656802168509923321115925388805399474564035424797285327128441332519059594513355706299874974155747895000325609738509286818658864479605274954302972762907081555865767659538135362368349305018201776012655563063429121739170259931130143736642553431237110341402354270164327412499213591889382581686673238839039814685102350221241037765209986337651786728844493505853215108055902875616231194928887237820818331067906158788736537104721779395631381725087994303606383591941893912268730935397210413042478912774547138125438811754466198892252451463618025996307497533675153069682874575796751278848898506565586775396712930240258569250913669618738912059384241550334705912077568537654302712170795796183403755417767177006002558348833984611991078362965744498396083518703396246959369663333670189582831727525766522214456615147742593533282177455550397150427046852437731152248365871862382620120374435205151695918637317177473434594554379956738128544170680432432290345279430679843207016451404032839627170873400666440773098762874045993749073173289350347442339083581411779732654996868392294393677115753375493939659888285957884676707833345912595466230960944817151124362092956667942111128940303067912714721002236405014082917464121867863670879966570604362184995165240785385719656819233319841807239529275984697194851557480691038206244184809644246689455861411638921679793599878363626647002440547149381545841414951722054264879605879138622895449051308905099580633839319009190402038902360249215443485561906983215830932720310112432027417477908122766592383585908166735316571326423710412917789722643714808389581344864603772333939905595702428158398328647089424170816568758248371715056774586545891318012882813445824726591664776067061169579205050554741263084123706085296136672111583313241315907077719880095703251621321591584894188175815200257890858286733933666710559563533538571891017274227592685830761903634054967534819728040145074791017610290581310020319624204863755916972185905869131205242905694725457026019590680944260459417059014454890551081294903295595996197856911583362329891063084024572808154799089829949870953261373272374538879115398897765137350092444252620574584141698206442897513421657653975729977118104398110916800176845013420116453320359500820759296388615511379878268423220313086671034282919904848239251305970462188438999483337844258758713514079154550152849994007223460292185540844010013055378075890414372988288685841950594659332291456759966352677073479995919648911297202907928014313259931981997590084652474676036503955924235942953927320746209747852980307203430841636726509154651409152051981715568623174075829052975557334419733502322911442909285482002098267995500066047724718448332014871002271932868013905475265127251921456091818179240555252559572141346437278597589248049019973846235475407425762574737810831361092207528703410522670791256024122813150797081868661787144557886575324525785924868944067130204546805053663791490524172216619730435138030225373289324687746652969970369147266579977670481518429469761348368665775193151807546770755254567931226424637049817156005672730403364481926266341298493456149796889199675123195354729699755882039359338229373215932846768773420782030911298830760669996286028088914758629896816358983945839277092245465295534626385832387348393814588047790926916253744836529462629684974121618507421716411461649206286822486326731523189283633297738029517695114022104292593833389989611531082603853645421155364430125105400301196681061644254372234372383194552462253980162047543061643479049197937568894734387103548490782910819339869529621333031153938019987479555326723165990470261276644677540717568091610821203047255847431802016332588312657442205604122892444318455478956321970636943542463043172773887278668127271870308897305209360874909682831298384536914347564548729054650485105750201191162423596550765449765082019282238008222298085488353645522648237173478805654843350848041000051888594745835376509965919239004036248831710762609573445010582669419395314410142858594036609755281766780895147745154710646046627762706952558218951730621646923781156101710646661471807850067927271390842545424515047180800141130569197329359171433970094378342219948729981571375165282570845438676756394213108638023217044237977746111886299973782565931846738115485061026414885940381780262419094703343587250329303855300929189840730720860228083292414708534398253555626995129598027580583494482966388625014228425010630631557912702833636051586802843660726575442472940834713078087458161564648783921319543061202852039996570672104054778605312241888010796900513635646388473686823663572643338410921730393546320112808377725640520135722497839603020362689280423208346886536120254782293606507789001943305076169669093767063245433443497491018083070686147425844470959853450355339088200097522921432900827544652266801879787319457897119252114471331275619365773469755988951352289513397347941124022046055005328242656526299096569420252807436489629606516966821813055572586676183176949431541232439810058990403050445180656550097136726679484114858989758121891934405899034767132462779915313964444560729268917082137204120499086239837113479485847425501932526813748360237606999403819069157634224378567163386195258012651850589049239104916750112910214204435887001931789931276404780368935638120443348019112622836375176358197568811936707433865631056448644003342588017020773662879119291428785039877009833817684491741267018309276034190801613080619120241132407741082410989449620858904404904860010697494569709639853767535730223742055628834324299639907409312068449902851700269242479864425891746418254286545630337618310315662814731535591328655968205565178839760523817385744912378087602366218359029292169140267405118665084667781240639416677903789393832283212121020687938090145720867236597040402694548930000241165466587417240501450863187069112382141712938339411870887798274844849415565074645263234665046245579461888304668782891047524018063478849127959017100057302040876995377519614073226556921800671490295537612499543936759202932520849675176576809518566413239068244989494171971620805284617198272717485720244820115633499960009343622732786206054139117937997926701500823855233029146631872093835159400335339975390270047672310233827986638375924842139902429128035379857291852994878229687430650383390882766494088752828022502830051016252622781929474639862194710953656895907699079254308634764842016515401332447797493538001723581832732975100045903341212259533240548483465348920878578116256792443565348291201426583026284674890344108397867799075842505255480146326798201711322416218998136174708999286835694882252420790826566095051341181720055970021096021415124909462764800551435131011540859447270315958377185384708011898061359088601837134259086153440105127409849302448226793702469149312225578805187057057997661095063666037569702520529494330346664363396681588832626087590186412278513816250695829303253811053842349243012920549590540316431002434014404486999111618824145703957095185534199208408757934301476291755684936230401365188815745732753850527652263338570348438710700137352630329027231989591150220902524169881356334489267172233104607647988725996984077232013488690785086513908052459011477808025821459814387602222018226475725637906079548940248759289067409049935145955455672858992590383530715088299395531774194076180940612601265968487405211773269409744550581018414140498747380089570377242345661098408849583378525243044603707412411201403423882012971642122503103770883065870060613211558454195848133309733934840448515367419806070894623272906118743204088964841085155427314325623352337078894125578467927261924564907668303176412270828342388659563120579984658442583667473129732433750312510349482145383149308990721931130638394616272962399761732438593151894659302827590621828647740474845379892299698276540429635706326168938888365596081991010244974970668172524155315800320221275652677398434511846086128646529396506913052040463368051158508369862227963598628516732825524218110048939379634577223336580320188359586075682866543082620084065445143919199151248432674727969553978407535052598786045211672723409292030835034967261176148628897323019040395603530238584796866504011617936724693230637736726598332624315566679475296939066029255693074636824941084070499196862458263674768940938196593905483262040335920507798462175754570568518231884912512621395602760161549404106128470140248013490469188083807035018146854265009339030963957278075096777079417660596454979614581633681896956396334936010058445580426178865268706638432122644934532132535285631767165888147003776241227667715338547060936032425501783283178495418276864666853590978066496788990455800974153472281801896068778692888550791765387561096779645361321550922183953605304195359343867998097923905721785734201770717330744982652860301516275917261793218390061823054255454563849187608489359333571277101160929654927690064911532577943150811340715356398688404024608657220118939097304440700725503867056105075566069556265842788160749194468725004028046980689794603526408394206880573891942183832854131362571994583085993736864442307883565700251329638941787672131429790972645147678101550426920137625726613954336501556320590677135752030130348297859045115527896040939491588691228589102853428783149173861571782729124507705888623094637663252101172767976299788744663914391078794677587962408830697282934642567510882907245049975488805925825216895768319658987803195618695132581650445010161928521422040771528462436580536372462972137668704689558760889104130116899412937922314654648088953701651939576923324378625481473475832544811812612503805370435409037372973136999470738801804363155949412104199373946984868031083692729082045647448273128247870028355964903922598993181965497966271032225117499276961130051215486763052950166432167536135433466585725986917633715147039136176564252056843159781233782444813913560472647276918732285840331360545113018250547506779761654769067227487973896515289580135728715701924746182909254409158544776159211094186248019926057128437864676318407813492220667736326708488636696677220301285017483785730684708343488857758479494289602183271838634189448014655556747856994072496699310297562797751242473097038631087479974948954920716079035176835760152314849279052922183883311146000797552345791936641473305012367201475376671391291268725350769775809642660116807344524188103018763030064875098848190094414769320721255134602330448584326768450549918498162824021629725056019678494349962078210893098530219044568583458895251798175557524223980261860756137192562930805686404170953452918375217203846864762702181352028298994527784770882541312345569368643973057744122941975080144696289889836961520365941083869084795245107202798338132195975199255790942409996703471351738854941691420844955210271872292912333274470271411183137802898410939251276082315473645047579574666963441550707841567105815789175629883140284910855825206662847630666333448226851023969758751053575583874140163737037587858189300341775616316916967401681524348790002201474633922721151474292170248179714411724896563659878846120105761140186897237141709729810105204157225896116287191717736803973459095089870569297132101065605023907268590001114458190895014140596768229625375286769372612222511647150119470099769036984368413512346144766895721827708036183263457453144116181897021132645285419844670893987784904375636987743606145645044367931771311494505264483278543881526604487393880704970911401193778217478278195313776770409049153246104536057985332880786395666369320007165755970391775600344145263426518417912054918880446830786560539996407113335662143048815658224784775969711106820959464029406831747958691170533063840562132353858506692736607315547800162242579653070837889221675420415411445509833665508868759145731583101647732930193482348084480590425254913255341930400399825833628015606130806941254986108937463175224160619814829988029194775571903653318618767827209395220211226674708393470967732630739958796509712165239123609422538325640452880418519176409404243348963565936817461501987929016598321683630835615212472207493867439970067292151918949124494036500983560300696101751618052627722737994097651687261081874942663103701544475447286600227809965156398033262571174574080760414766748601451529318163080161490950091668020695133983275034036671823592977756159185927820103597141219914160865837095449288216642246963947336222141341654298320730056760925850200865640756614765219009459722330443276280810069965923810230501299437248489459180115870170683648388476960258685379870307156149156716712990848630414074971474248098274790258247106395159405306055497287847617132541415588394379477231781951697803640386725290437472397789462434728414814968687164186279282798085022920255715311008047622553330568407303314409138837347323963977294425020614510082233267417809532184215446668062854130847237369965451623339658856382056377565764939574130734291593613060446482211921584511795595522796216522463312580363269538699014079008648780141625731283479056705318460683841259284931539398315039043993549015272066645643466331540629795956425176915558733371523808390871320151638722174666460815233555729098282653296139843775451751405017474849949356139174390494527307165046354125741781568051296475196799934935766776505459304070840455673574838496220827190879127838974862868559390301727851818438140985570548839344282748310279595853354515473902790608520778267622047333786758142204454840952985490556727823884036194557439835773409333294853495427073546640102489934173146070763395483460644368154867899969739152265595889135636384676359091003573002138535496284478091318247418439491990381456294571240041737931444779997948371730318407465620254754049703082281398761380519327863620385347432538219869850554122056213595806505795086933121963279054970427387556126321405750081224173185502898672802948769011839884477926392986021602160846823226078696368220769645141674090294474469647256260936555532366009606360638934707519908337846793223231715606063261842593409004492165500571689698731589271623629450660324333177051672532342898527303071641528476491460004523975082472841555045629088976227594002945871602554495233935212583373471157813512648521290294863487704153556653698855128864584694260195450472526376642636176169154465668788641572746609406274134571934792599938660256436156550408581082134492602184450053704952927478457728116349526036754785155441332222491258437521983937723323595708975530687185421226751790950850725554739975177482902385373187373404229853690136089100829290111163849371192985307053415299394192957366005880645538698622282418186290897345184899692955693854408703205612535853643215559208978888395761117497459451003546438205903934588061931498693944975388912318389043507793623271210001574311449268959632035394712847838501068124298488292948283655603704095090562346344364504933152104300582110133768290213036067769832770256583801286382350290402203240699367354695455837966202451105920681074874170945522262632170522502160035632088628382248123311336156729223364490405081604134577526659187588075923676764596627603615512352696712007021217011665778191608303169473213186726684917636927025056505208482864161827566011509371488944146588514854897123449926482807299952501248121353092191366940606887659815770808235217002209478537261472698853495446588111966333953784489753382372805228315136781668597137720637708936439207616652595628200490382426382732795304525961904315426641500032964616627843525359319284073549060295285689350485379426169563972276509072945059034023112515515353427971012970365817082313752370151981079979530630376758648629093056810845201643293774827989852619305883505645096321219234889575711998600565115615747122537054844592584842705714395065326602563772665605812685640893380874619382256208892486009503655878778695121931396329339677818362778430274195311367679249716916614174393662676048096020405682503033233351083529860480424190806017337194948955556105300472407655131778449107679295417891592226205586327097270543034023397888734145649461669046989570269288899839062302727083868919749952987624508423220406439229301674326197106812198112846170043563631476396475874033590500972478551793263899263785896124074755895858013507020005378430354040345357114963915705556340096553207834012733536911864191668024980648141433967184777867162585258462027971736783151439775634574602380467263053461803150938001444750288787381185833178110253143136638503305938450761150940765716298847911782630049795284989844689174170312139293811336030525241186863441890342930766279051359737906056086459080850078007281229361019253015371838482684799505126607742114294355825627647111715617782831084585001836335560211373408643771657534045711143396656524409959472442278481290835048681255688035350265054599988312825487243438085670159176301766222691995423316094944470210476045654682801113605075293466560382608644042339052999214158352707183685659345814379766783131379404378344939129931488757342914571449070693009848129977633408494964233138900302631799441084138211603976665791077338212444527709759520438031077596446222256570361488629893373736494309809577667607510399828854465310536603608105001589448402841322835559846884780012069336900265440573464636767910551786242381002690834232001625938992899803186909778191669544384417664020195866163143563393953972320086097503644242316507980066718446569200312629542971006458138191028029673743432894971004103385056499632126172831295326055041172618265648298616871162674114292730659882712579642559688347580616602927696264330375459220233037786078639556418114369850009418198072810492674207875947928551518875665594936252659704333933364232938196914765255711857115232241370426082418749066050228411746497580052517104431495185525067444840866163684840537726824134600334011256968051884662309236452042908353677578027325231887747107347733990737112393111617199135200441627779689867745460383350543003397870829840886934651188936837208878492583338017001870620820467049051144888597378304828360878632984797869111829438843136819753156493742075476434432279870787526103035156774837927447851986288736625214087601862854851234539683424213357434846819359643434196070844721021971730495431013711161271227146525274551674326474206173200816631043004920390759390052446522997914063707782496758612863164397547196098437158089103380843945014978630124763585453977234673813923115140369349484947768717891876970219574877333297609010766547657640514944364975529108229709072351770129355022047912946652635537450256122930369527489097285795881565476490594706256205621590426306403093247422398232096305283425855587801368270658395335507856375199824016932772005474656027047721284549522681270811364090459419533685955335381872548349729239344557020365147081168476042040495838680718340553947311154960738064685498773747873747349808336171881230070341146734064668175528769188520785194784315091422521145844286023721142278741333161456507365010531740051375187331942954840097581217486422712637561863652795316845571668861750723760925911888020556849451590400352073089829905697468613372328588576082265624838201074943400638079541457990197193301558604285064958071645984398213589688171891209184349563469734215092191415804530037280461035366166131959783080522661272153629145505878781150230116405559183592734070131902248981960083079086037898902355557124619760891911897630259926543576700414910125823989025007337060445881325276941923781997369069784064775084215899104671615581200221971181960773314735532005710962237207583941138687568832819473042602434563069838811391786870031809984380418165875796100120900261693029986779811050372772033574229309495070625897271259122640423474456673588165578734252426848925940714815228059857130207547267089966876889192024297830650914824617077981692903895165463884755636082709355274596649921341311691649000074165499446344565585885227758477411257908662271503726624343047792352710868767455707114642745780744054778384702082036771981267836958790910403446543366635415428198538441836763387377033418270790258457841123712451520415201997191045909993549674142311349228122369821069630634351762121604940381649912801266097412225144801702666204119543177904384075304239237248843698395839892042333242566178411290209136075595818130876985083114277933420294632328752336465046587121181277439235837122931399654026379068860065360762501754748354495415043453895357149685577657791800879585791113852959363549870985693943917319394851659629631057176670345285709526483029962391379878260535901105135647384183575386662345689600669135944522543450017845147501859282753688689872174119413186247751566008208867639907539324059004665968940589060852103405812333851488866866963979474280453162837163743946160137070103723744436123852756755153055308654934449258181910023899960866022598194990965065512095932039852276508005100115086153843510222541672406743145926479864724713997881708682765308633181256100702680870720891691412480401126767705053368968066086503685962548009284305904332034005274667934940072300826343774721386694217923433624797945284949176345561785255393696780736542599223895947928190713735982666339190946949373103537388571835085436301049364050026952279717584649706675240683405070518968429508343864500506415602950268955315330340619548127063898734553421501350709799861640228445834753638574333599449357274340307830374706131064788359594457795997910918718494536836084506884114973506861833089479597927393008365393637593437197970964223025056157084759274289518452955380410223811286809059872413807555307567214609804216635746033187134815256981933010871273854766317372201963631334602424418427338892000946734291563657070353868555311255703796887617447046676537051722048485787419546693250397656408973145209165102045706354098732589112041226516424708548652869872858990169484607957028369827319343226257683682240290318536915720595490040780337966928718802462771520196091202451092629611969264180686476632048631169231317054225197515861138270365367905614458424965024228375562166042620654402742481090641987452645865204043915579228533429356087269861925472631479585451389293314066937482283005114416224541514955841350725034202126581753969377061769251697333507508972738510825885887227253775163498606497671908132121182633928853598086577338001526584456460702173081143566982556765325012253081864626210939265948357841405937826758619669068918877900640689065314965387392243532964389591476181791719898200771642177709697719247188960122737406500530003507562216789857788716034448051485061336238050145325176050882716184365790939415116529891925766563997253135794357061273903038502381761392695643744197593825084327168994228459771606038161223883075740977349699371648110195742091062592612699534745726119950363430435399775536333552561575171703129998858296669510898055798085264679815942621831948554885006100367152072838920598530485494592863469085340658467019505693236661970942070842523639699027204955405598675787757118386947844160399938047866696185843072145546927394067839639951223632498951250325210579246640672728008722983414236843477841169460687753370198055002849092178629646480501229205536722461170549795879532545370405614801995742029074566550169894013553638988509975730893729270003584210201830816452961229019513170016278595694990156286355931517161953563248898081386063097874886139325438855075357378297911703184231085806866855767680579532186881636305186842341836325674952013320009199190090057441489026075479144298360334711979082728461445633922375143909570134946007015161818907601747076397191067150740343620880999954597414758575414093953971828626853987954155867396641433932044358064218070557923979363160192243655369865191215726564672278227290498982749072070633746654560013790339806927517518515232823724631396584561384011099929168619451976431286621474810821023126133073051792783216537363661891867214670726951759665317290860213998756148677973064840949950558428587965427073197276941708653460549730902930124704656358512078983524560235425826084994502613807053918843237360958727496514457060738624139834735777725215930774655519536119073083087149660132796965972756702390704223960367816169016620866717372781988281698912285168822979574655407718925801451456499328648289961905249983223253495807732880577701143022447718215543027417307400620160271967637844471654800251529847439853936027912386665332927674922011929217319468403482059097532153419958493265810363538829913283460230176941558217845507832958871985415547868554684106803567098188116016987450159622826565293263303926440402262564518610250547243257662965621702372186141321547798179378774565519274857506506439863738139681745726589958079787225402122468402984858016778846977631327692953122313484353108255601986709468392433923135267367355847037719065194709566069106013496353167079793228753704064868956588033380780081456992141730227272352988197261679653370648303687807611629197564342667648660225983129369178512390935245020018410448564478013546975021175810198297793385663983670503670956612281802257433851875708867406755457274136448402357947317701541774322365685806734890929458110580994942215201734541850348124408305701553965527545838958304092577428769904824853550033677042842308610601353594485997828018279665756919178641734825203855027981344606921903437338918281091369284131297152203729644808448014904955988170304532469936022106228976470138241490999597750892560182968756182089779261879598804075164264423124696380007342513930478362347566359052812762584198841095946302484890692136092165596169740503645787634649148387395079420282246712517198907917912505047540221182261779056248482905066075199890971465124760451600609759517427618721271806066443428014530063399649970545312441809929987591314978591969849620724403529880024922792587019963938416922095529001038826727308976125918659915632256825447685239389487522936646419879867852633630188451963580489911526934514609828818093231241746288758203748783267066807864609290391705094669823369687454783268143823215641855488517413181873108405764181334551972803072955139057867157976431168480139862007072647544941207801462288874034045001040438808467137121102651173546658926463577359798090129642052964313196352980888975694407331545885615264827391262503148928538131227476990221928602254841069517463938935520203189551396165861648327756805594718625285992150955202712521897713561935625985407385603186685693793022685734961234377402634217428199656650608175913840276273477891173730501721009900732683683418509295665331290555505184473106304735165562352469175649812829369178578309295050089847542741742136927532922968589005718303483791377540565117129261437312027871477752265375945342935075920062102248281524165887229296120496482895322695875539931458618839144996737956670255002277539461056527938659803216536377891333761910166520219844162450211229013487541270687990211411491672322657827137339948295652077783074084467593249513922170782834090486340746026671857326608722421436954878342710564566295160416346072828609457431548143936675612292143549435795289051833643232586050188139075617521561711519624371231707791431016777465257843883839319534732057487240051161541464832231353101207937968297302377101151070124780114937308926057727328463681934999983831328888394268904084158422960198313419675913070239410298756462052963677624728874975040456985568805434395512066242526280734878919184941434911679927615309446444246526522714840484417324502603176582516623261194394897855324548398962645674182109626384160475863412693218648576133037648875753329269389211614290493028241297355989922736779377815089148619119831251535796380634822295513401085576338962410025667539554771646645980158707078149676414586932239221418924594353986434828067202224622090018081155801793822687708206153877609493733934559276220008651001476968375918207692563021103356417279839316268462572115608232051094777960640871146052779855100291869517299688257852000089218428302462187874187080376881312058570753786364926183494421724492816844470845225958338101129023234893919959895004421620460096958252854374837661244749428930917975320717407958593369387967712694689321009463428935121948533841500717656246150217338150809571671948355088651082893841495640376285388642256392752926350279750277537076903499515918133223760055065978145917520198795465971634191645619864925328219727006566210754068291307126611026265570069054289727025051382371023852305895672869418810142320797680298736153592176540631045403148013124410339427758603019430284083143640902328740964208398645454815856776680084338350181630846589067256561652332186819853078343081122282808428548885503686956837338249060678023786948192706487308901439476803242953879214302285890278281895037613886792040696666397030750110852403753230330716624405612913573986362693497365522741821742992189803802908867539959807581111073650960955387923001746806635317222598003886451883732476366006065657267645357688247089874607588907687589641511516872323374725574507012812762171526262493198692319208234028798476284958668520517721287446350477608591525372494554692825561273930902059360788525579507048297549519099499717571130636972416537484116929929926577639929208976822614331700206525198928260436747282800032401698945839993771193717156602580168583042036855783395373915296164614430136348085693984165179689038199321663717789589792252866291452840963699309413435770791184029504980703194907140614399914848088714641758267184908575317012125810981230733901751010014989330999078353213120464359338538561106903952265025334354592190372675296579474937630737676711009354196435076515849744550845705882496264769103995096161892913190060277117019228045243940069291148396833865436440524525555218272044638799472124759432609601757188043004760916369622337204154008445436616502918339722227412776250613570848608413029493020991901233749980638756919844764580527461511733805778018027507091966973372284626589750859506810661337907635799987519381481657423269736142382369072418800031340338749551424900381085109800767911504669198746965324450928087984435150982531329141316656902708559200333873114912118867195333152535180217006689869250855773613043610129976468621481551117109517807785618121977538545148917924572271057628316646612606839068311789917783701513797671903604569774198042072733463677237347562415703624360148872296272699712341030111622678083759419832021802506060438354236132198911325748736473363308958874124933231863073342133355079384596877810999648849336065664742484941521831601098245474177673984796197578510059862487706082914945842074392645404014285057311734105327002904860314093457340102337621991654824706948287222152785765324652352705946194731084886412678549242836203879234053501945911949577815648654289291154013597049202953220077920390465114864911020726488357028785776483809273506579256418256819281761241918600493180750669419413500248300732194322838363426980152320295984895538027834794490508530747872736848786074784145452652228694447337887456787998410196884477463100465863485426258602501252713246148349078305567484213659290947866834364109547989129207515994513317200326526507547760397597164177585783653461081873493601374334284429456909717729662543426663187308997690810502742858367248163151503541015959915651487032670234754882055030012242699740723186536277170761687594682948001474151268946615421735241416864498656452226538390533869500187511544009982810087098225837453048685037176000298976732966367728216633204332536923221581423595320302623932790573210110976529705182509475522585765243889129441466752161918193800354174880179421422116913370836762154113649825657850374915340586828129669645715221224333464858550423765173061478178580439858508538943766039091442862113610984107438586600111106125239226554485585521704953439455495873625358336469951125069397045851853339750223592357884677180687674950063168143723530295882702570888953499111005759321688041053905757284059213583349860701686267406477226915872081482251213609270801625807418495970517838974139988534682688330555878032723629297746240527958339576300371122452811827716290579402132992964455166992933365163466021801875203763671119591532060040586699473069547748832311251839752308364299010528396684265714467737046689920785958124968243454017572975764005512713540868892821935591633607451279284770585698102240711609010982192180209885961810460234395703408105249341630396301908462053011241639029828721448090328452801975138542032510827680107520931561037317090383797128157478266316015405019886494364750255888985984356780417490326096106814929172549000223928321350530420956984244202279901985771704570899715349256177221157708113724953912097080793720798649073133599195113454265597809155941771905702326667565876294951170320408739353799300599150676271546214635154768046616877672334843133483754222972879864365949522264438705004764090151494601385021940980873676323425931474881629103184721696932718848725966663656851309243692831826071708033532817930221291604052122284934139069082892938870317160416382317898985474656902076797211783356786141901892502686912857232882259780080660685265200159231148702048300880520045036246711605665615656834044759190953165445658931860263825538328460469798214325359939124526414360536242254277659821028819925032869699697432235920912770628292479185924990866537313620962666175581756790315597490919931971736877667532758667242662444277853550865714122525890226846877967241053238454641041916816959863100552193352877117581108522528828838251156278175766754328777202453049589951141249012758533060342940167239522819590670008851824290888050386027013030595147986746694375318454450356389893651946040404971316340329753698342433313623217901168916229880546920331776911252784870033495770994643006227552180307596529884422603103530373824376157846855419938728957498828918314277552440684891257495060634638265614747305920048007097549230951809956926069282256108265172338032570864694681281465772864312419161002050218688152401188974096755337800525728425076157590928222686970537647576108461118815489615990171716106452035194336064214951594050438827186525431876546295431260500252994538260516674808397254075268769866491261963218541253332882160445135322036416922293719773706283128226722313222618494010170017316502655417900255246121463446031865948279231039388955173526516201743354638283499620712963611036124952213656776304087664921828078876454502385573067493505538388933470660618672212252641484600716774151182956433089454689909404136878209885687357008535988734320588011137455797425850282613511615023131771019277365123450591010502075018985225956541685445868481891438130411417982065517132293601033506761031043836421673724457333643912311145128722893900047562040589125244554553246112034731800935695989348448796602912407760658448731907069385346699339386513481066940750618054054785062990059271216433432283830604671329943603766482522539878442750452404832069190274332904560824882406549015249011731287079315807772761443947634618549239172851872172850054847268738519689975638105345831555677430696471551727069574188329109558715420879442941422727242707343545028365240134178468503774042960567408863949634138659988882785162302124726842434960425681974848688668460079704113575578274487473962212676045518366304703867545203249875443891237150875945598159513794148266988159762026418712897975884658545651646622114321084633402635921009017630558626175500860397864617931808143223984594790896531868646105898360498063251940355806959575692599766071965121909782254003068675811856770033145880183896441676025929404282302037080298136228557826448668338109815729252914731050827146064670164623358472576814567080014869019832697502193054745672931810671315468007230262394611535820194445749122175256341918695959554081170392573762374436909651524372828043668034148098104354833197940416607548298151086289212583304644735517389646291520005779200305307219316177819499723606200297065242202833167334449805667506430680482133965687446382261494147029315005596004656730156434388851159053117007653172910905342449526135565791493376164659117036511108125785730888451719711621195914711242591965891758301479773734625047455932732596480419326152707158071472036842294438344859031597169165098585491601770836490847324274644412333882267010979509952974566309774392512989162158434075116287828057729437063857934508768366034984135396833307441421193308148960371003762839471589177773941885029315852116855016235375490934708980994941723926948028138089546570246836045713705490856232744977512278340449185976606589238395503456021813664345495329260195916648846571746344446514823365602021453163377424147719573904310809177856531030827012535426384865816745659765843616814957617914008098542604327801559702240693833493662636496807239147367437193584695537752955962401824465815531146810328806262066598870975155124574175772550585813801253434855471292529136564956899838437827776329702993512643873431727778720990268717801890813428453483468164720541759305589814453775975546229706166529416112792299109848010153244798929054275468447816459145071209781455361439109581576763563353979172057452436052351474519813409424629015514790814067598969968859389399764368644501879732994803284470510979199729749446397747432786116143973713060086302714330761845070256019134781494616958014711291721307569400914154297248540842901499660206001760288731156173373870597895354993222172050259535854760483265863696576161525961547296021046352421363030363309039654843420608122985996376976542556643532631478055309833353040550185738971669480050049157370301798675001714916552627600196986362874130372942153577694078533342225577316259945244949013482210024689958548119542686960839773613198156687246417676171556717653030528442127673322754874877283779747265351749053495438080603846333449671732052008632283025354187414545940115755407511530665436524222876982362776476156541333673142081275982999843718684407258563874876591186592580968070766661908830835413867582058054670140460056616409843872312751213862949588616213532014044586344370968435203508696189890865149262087824845037204581984054270520055398847540239847956436809035699988458007960127327059100597989540694511420501774125220525336856639826194972156306476415340991833045995476332140080849726282506378024020769125954905059365081521890216341092942436580680905259806071132929980253290969370524990307346371449718622713781462406520166043610711806858131332370315001176781255277228728901359788519037691836909356740135862412376416885513706283376734286494382757839271737949370389613715216014343166499031739448494317880716358810512149119379942272350746606300515409502719729868292581815331025351028703265460844847991721229785766481961525891157605499965169549746805858467647993626719261007799159060102791256439755943899738101566595407861854646986318885443460512415120271372765646532525638770998459577387633643371784758796002760051035125555331893580084608664607145374969786203675500385887621192335331939391388456590245273682301598970168821568014993102325213350649905984627267263675219520820618878544906662199583975907426100150197619750271893983141550583086706584831866610103626616665723834094744498119027728815850428727216790423621850654987022545322016871163426565776851865407594168472506656625776053883395149839184878064739141138238726352295427060294253645709110224242542140681030051170437422012733065566314401722228318159928438783545506077797170959659864976255005203675878722451797194669273216255397045796090466491647488234853224293019653080859370145323964847738993148581702444881653084510119462662033113985143283711088953705471921881426002370747481883428095006753522753293839171323170464022953895110842414942398055374864795405612528059687985709538271677905054384372206280686967798491954164788133654329757369348461159277266115912208960153785942834733047073483084683547484884008234755360678083666974146562252825225009579348561249185279590788095447166333297559551971350612684569017523443249988225864023804077153254846799995535424574433626669526484800068092832069910917440357058426371116395315895742424884937738120330619095636644438068108915963615913564115098219311617347234527601711674187095896497562708445194642375687323048274458086223723125057419968600279894375813720187369245421439292107724481455458686904255214666395791633219263704216495963196023989487931949546132132048099183618270686922564086497720594318739493721676480232964710216120516526611844584976540940543889442942366631024637212459079412512740697831857851001495873130739091839727565403661745846352488773180340401034440100355891289620728278119547584977522780995192381947553232197712690090191465037431371380578950342091149948627769405916052974385407828840883689371140523073803841827436835709883128011769035121484702260215839199079161242369814318119541723459084697927020611012187934452633659122719709159898498987454245783479365356670206291308530030880415615984686284995989110237461118986837285145619273797716792932694797800634191328799726016827055802538141653585216131796852353156959422575463776380529127181276328754269292495620272667162069875591386474516335147593621330886823232766307213419230200005614614167142985394530833085744892962449467433436012116096063449233163372533133978231691854169316823793762416722621877518055626985477017232232008339656419492862815741422625132847973669865667938722611714360776654198173143547623775361667603257265241226567824981196968163523139777448128643898721627304510470351424871930703830565896010786622295804104820795875926666659561394827252649272673879509239140180202523861727781010244922711578678152511321610732569934173549897174951949473027538845653391113300988844075928081552152818808695006305577084098071683332969801356422446763249719322291290795900116532518820683019012642072749066096708551812278241261612981045609107989603702337109975355211209605471960271603267334234681163546334170629362155451756622675162563494823992585495286818521760859258275691933501225264134856423438285323128274537414935931087361464717464413513455395609047365226736556883678428804019630020589751581836835559057844319151173699547016083920269313966669942869051381434354980605181864406091006987846509791278245630685168668262268453375000440494902047848311968501007868678780831791178359793283684094138614828376858115530041691081147321180769488851596651933713028291234750793553665000165740099359538217686226702175871536146600862823366388711823165643240846555780813036389539689836459708486833975641328851616927773663678751603498488110525224757553828405821566332425098799978097611462020763332309709660051839246325752732392129994047344423388608850585077759498774408323206578169461015563611704751067729385305575114040325759583671719359670001364751166918211591874500010825396206102467996616236034437354748459264743301149017342017136789805536392776712856132791435381411496985817381302253924619756341651104154390075073486166668665055074393472130202134431714954090524904353629539208246449381473868635173445567878337801751611170944028000266810222338219946657694879983954605338375575967716646912464219763634370473362112763065055254515911182114837544946477971797507224783156985930187635032506944407371784055368478651010980571893700115109201267636435808023107817981518891336752795812616220946946645915093944793821331393049437791033468241259013766221680129276341533678336878590238195051718399231907178066610079717942430989119023784724668503725740666029396333805929531258805367367075760059213311378223012629128186572021032753310315737925362816740815586136249358098161359756709589819450074805177222683773455445158912123693974080442377214286703051544722121430143954603268581019674837192606339321506045861322592914579485970660657451798774325125194047064797472591679054170800286696510784321453290058967109325793317597576433595568424077863931982347258191277277701817017804841051093456756646546708743575293905892301729944285578334454452220403984560470027115923684316226919738203027055936088192521244021870775986948955202953637109927834572891192166325022248799075275993071849292504411026335546074805463364575319680911576461630612865352381534186912674178046138641877638165170557348966415004866737123034959724396606811260738849330629750791372742386543359122752506660909798176234339240702146401701025392254774341234580281432382184003294799197194909911914345983481674440955499726755400425284845975569585599034580535872369892691320197476561686671811128197305017292242431923077149168401268879480942284442472659582962985360053833974562778273279319190477649414836005574006546090663357852983481009948412069190887741317492531204502511501858939567072887343875947398354173239920926785902447714463331469456830461985349883614872045335210551217196365577766400296367774707636221125881994970722306306472806995095849388314632344174490531564569223717429041005492093086207364879788533631103927509127626816451468399327276579037448296950498104667694070051756988058163724870947999768151626052154842862521378075357157402115860903688220573341165755882873118333522375131204123963339047294015827475154065685110804963031690174829402783935515657706740131842941829981837848923368342970255054957486777439293709032073278766519892838115221281635131446270617745906565693346724648013850307983500553473099076614768302898156866880734340902620450382909636288116086872623893719553618356548047729566334281483250942700775912043751869570417966311512766251470718146662929704302537675548268222981111728972370537394259353567078096146109372186152218936637731062981366269723306943241327191490813290788331488341402401504447882336466713946760832622129562883834090864001318728822851852341431741790515398884935850099654249020062445260128456451407701341728356837224084688314397197052981621239089980280325018277589737806532299365046819444094575372969293909078791694009867221839641971844473165808110736801534034832336795519269713475189142763274485754781774213888052878034222837985108602878532908968513711197848236623416777462022103202810599478694129391728845402051420424426209620487225432194624994409695568418699009220490278777318556454655376410967886501709158428058116315485097629659613833415266938097729439509525536141083509405252502901780090589151646158389820027959583481488920689535467219949520366887631890385042313246678552067380913297370280191505946473241734690225959880232875908370019312698216141493414308505702926560273741175377622038192774023213908448745550345393572710992715216556062238942644876122295522615863158850354461872276082342926916967627310950344906364483128830533539782819507898432634414133649172476212461745685788836028400216585737276396416829516110418743497914625122615846416172803862588654807839659668526810343731826147127640602952474488061574863236032583577690521854187971407093396603759943849718739915845402097362992039968125205725286218929201293285498809997844750919033701402575225900344324601181844170540186825603140358141823492052420822883506704249364176124283602922973858268547940184371232427335874540376975115404279295424665770813427840120891485984529686737227163505318480723603628625427229049982613518906465910426418801832170772562329597868039214143906839927626782041591474846786962679726984715231954244204262012436506623770094802672561846727917266023518640404224260446767416805979709393867371380886751429617681548414871137324999056328104557840346510738667887821332303517841650964890159110495362146236181187181888841730415745684617141249664820834052930221635462756342867887644097679847394380024233767828676667902923334931644736951898396582851774460274329598667661442341469307274773349681434199479853992786432557956366428835725429245568228722548767261146220578867141674450746493301288476795830555119259919309389176423043548453718268032550847682191438418422390697852533721634014226085124844886142367527605069823839787837513517793848931440129808814515656513321232333252996448506367626408388041658690722029962309403956726382102481120309678581142906476246508615733807875698308500454091145099950895656554623735136825721349414776909834503869999674399360265483050131993243973450915053922661819131423416976083169081805407582270998633609094123375858632714018172011930489006054709164544960089022920465992624960552462172621525016879011777349504054623295326249654137875744760064646491596475969289928751475152549139149312779489953993750285662860445286293909362833889100657874849192687195020122443209021388096636955626755236732930021003735665441682358596503619312900363242179078131052857769624464932266613786515973243060723267663120097376901400441214567293668642895048888497315818362487723276322808858521263453516476445568650241095406591662194313693599073441781234269381003661615184030830218239097481261624233403987250062157353973940362768024879078950797066446813866152142008760055867223089765618488702646509838903189040824217788207368302760767157787635775126089459161496779011940666222848442274681168390023308562365320166453586118448948325847764147488141296946075871146817864867738380982382788428822210700682751929201983278232193593903093379411125146023327030838638112716455881474959839643437971737021093133049837569165105983988818289147851488257276204918731982378805381940982034285746421088708574737010415805890232321913226100039668052941783247373293145983407132509750258918176702601983045497745022650477229629574125543424607154889045575828491337862701425866355823828440406749765295166470172347940890320292037894488270003912655699675359649222431302168995730666866603486299626878069484528196449524374257658940833246250066474757413564544757018347975369047085859956211436627924221809258421719707055729691673681146291990326090284132726432978632437417685917418054364462392514057083946881825729323780146505998962305829771087178366977505305891379482128655848907857366650368151160515558781313166135973568009378463356889482743664375680820381088616975328215058544874311896408603062681281599931406712326999704121689131349599026772742559866137733215583406704980939819570102792570987508797739237563857859814269067080675159871948142776123256492748143723789680901518291628401795260823249984236550275504458912529237644044199208839199868282567928396390933492879573753404214448338436511100976843813677386589406401742174622143756633458467167202437423141116280593786048281597628777832900222041108190677412644965078924753408975877097868955104592529473625255569534721869100316385894000733228009174310372333381937238443164579549248005857771397283820761540918030357184384587018072456414049325543530894361118930374956826774377575585845404553064175199825186797418650520243530533197396249093794978767585163609116699383690489115636173873235390601133655651518827182360902591598562199808630528194846580941506692964140016006079451131054758321573261719775383134116000704404402201073843170071471917453945103089937154957863126238835397895910531092074153602518947157365869990347379643349647913225028010814716028796704666865446220887673136585223014955320819711038548647127917085105652301834514548965793258696552831271077884720086116278007896761766955984951759676990274517914188112563378572260554384880060567392395010202301943407533780886700714971003041588960691741512395099523451932104781022604509323749399908918582616448941616083166673291577707969913880983142207221187271141096251345101550929783994625576398669003463155136581742693927605775606124657109976140234753112155053380025124135093944077893822886510539891757976823035489666782219430457717911681827822664914489422501665984771373615082641067413712621507893560171362492023817893339134016533754970390830378878091396658981681992361810734583771941446288992615334436586110894629341684896654473263056119311092312004647348366464889030577234257162810801576869980121826701510288771526994413524459550326736983114113834138285490562931368819096998273710781207445402398148798695302956145385295279192298809972787056641737641801215113304457610954427071065218433276532308011338394831114710776325953001752099855817156425798479328288890083533899747539861891708419513953243502206167299230386052538407541519071457008870294723679340628662804623447212293151904231486956149227246098895416788587015164391764916286943094236335710526299177247511409088295284541313682884574967940131738667142309994161352877459001952194512174931913637614966260160705371084680911423587672724934182037647247514057734659093799874802772222648565975359038886814354090638244536117863290400093292128366016141867865629269913094858104634242570077320741088559704520378571787599612058679726596369334306409960457858860594497324082736667309345976053355706812382068166483220726247273729677659832032119452944970881446256462186549206343041629686596871427879186294656692793655760826903621570402800905483427125559567483742952959962418840557682834895415401796376505506764101991115142514687775232443768402881790753330852555662535131271210863345387354580790764169895462495238628286287640409298994132789294146881565427816586492178100593669754976210819791738848011208253875469249846907202914670210974611319020599370224422688054669147081548259989641843246873895181908411762749969463043534842868233389151468643874348846067744514262470538250239021305186197798572653848565069383678220405317243487153916201319271773647798399498056430445313247145906395761598486495928081994328363740364583777572030703657437664903961304837043027230594859584749574965439999812618388855293898337731613486310746370110145307236265400595968085343737088433393808114781559013837981592757405531278691527245497615184628624135779311058310659242199778380476347529048280852196169022572453000757088133606561240248658902726239291818746123940174298474433679508030378544635716960417187306348519775188029211870417580785234457238228234666956951422923436519795209525029497299774833171513813712044213089842094062692362291252515787603248419837453654634994762996633019244984616533258049235758581166299857580482900574886521399729097276657219344705211552694895849175394774479858307037041415715892303648510528497794577232636567301480206258460266445089382814739818308628153237661468034868691487861946358134025936926778284756105768394869886388288195762762513438918310980003785721193036070975395212953670179105548106391140858878224363446643470768737599485240728422575931535220621786110628612796552174401699396807373722180451987421508253725133043535451800243081173928612576677612200831867536242202606042869347109809860970355966790097164711752866973496580640953826022581580875219412237061706585331111443467524170685469660388251760822117913653916689502865643273826684740809307325965714442603820185524234336517785053835214538690009300847487323948147912955656506491903492871619181883268775493274702061548882433174697353375336374731685811092843874910383668209249374875496535581901587460555462976247012422632849649395772780857826739541894285372788169505800932869876023816196423835812276365504058234589511876854652958003930626778132764800291518258182680926636772552800253583101685240286929686079266610753489583197597381913330829435663546692174085902073999011159967874503973938139710157566882458933262375012726293843848751884844580332782817679972237685878755320161289093271113325698828763918673546802154234120609891583666184144214466213858511501435993464208646249214851741599285933140372689478514357889682335177573309014844075364069313450229664866472247564685678707043626360425618450981432102383253549581831231208462328134508976069097383055652430875409850442400706553743066726035685687620702447319745981094339954704116150165205346927596489827608374778827041011587222809738189895032433075629788969634656046220202333325448250866383449389080853639326095026648913035250806215412802385361562514151139198669671733911378601748913846069486480690515655910790687636689264906572315764841021120446097488615777603599407040745071513752583814142696629047481821369124658446568346141351685333464023846119061773189329011086702176387065532864728952943268336942123586645225813908281880960784349121370140436327550691060883208713029672139096312187674936166401902703249438037382518343665735350668764885190676731560597698576075865373177019728337743674611162596005172003250832359422380649951078509897851359371014245715891388930356031929122511279153917604145347979241802535132258666184826456552573233143037875808711912211416000112996049378139767385795231019608921720082896779018480875050431039676973212769973758637866313762372836412848639022929745856980460653908197759380071375345227345678841232507440086215291200487225413445955496849118916594029948787064388114710353026591044358233225953749618162488751502609857913717004290191375804360431771282264264151941465361140776235076801713814354312830082032517861071236347154683228841242368892167955537937551696755909050716627894676219021779549568739647990468626390445542229545330490524718807635440053668382471639465415420439484005121348052478385455448301673442330591635722905503708272257138957484617157555397451386733178764644559364539301358311460938845689898996827443768813521485065912196811828110889258657434112351091063115523476387790098622913035456372471488036662975685676981039812581068514215350133765082612974978971495091699171951260383501960572378989205949966904653236117621665601730537453147899241868372943895046223513953901919624448912546231301839224791844837125023494454489693029917033436450764157443344820046023503769799617475149035689125911872358005176185160253270490520081794665125700144728725018968660403057516697653609926040463896948125017862118133370414903755311372233483874962844123486330810298978178744566289705664518905457042215964525989313242574372175975039028663950135729003560566620289634298023759622660931692183361020263727172202256830288670645176553880596177659007697452207538210270423726227461780309340222311764484899231236537445346193269127531084651862385313630205684547296448789191042879552613729928892892927870073847884127727396428364830008843880682300886904343618784246773029030717924789347956063570132697599276107292827790377687782208570254127326177606518152982691687582440880963812663448679988783518726737458898690148389591614735336030508665966556385165376188516955251400252230704953904846730076998681148660543941712026051914619437472222089628823032063907484034400118575954852223937506485910444656205630094813355459167736598466009762341767786601541453886174008259903864610494003226306296163656129078038528329406214187493430927063051030906150684528811989340876015745658426286354441574992859088792206552129102743480957648499133872405383982698986904784812363091822035694261403814796304362836564177463414450382503949292829993435809028368460137939865536095158491227256947989228368889335702975549087826330108933973324550319745072341434768942536749947321631616623827729118961649592201255125559326769487174131180925614313914352759372627224623253397084987878206143364896959432524671643319217566693141909500222546394651956843820853181299404556134812019258962297868677846934755245215303526901003586309291783455683245750679241948317233928466334670613559931683983042093291456728660476189900069187347584186736894262041221033760504932101270689863326960115751519092195871246899963266032894021820542857045323568335743522677533910365411316844199838635041866857910070676312030364006956378096646683436046337234566779065524255806587640737222299475251527755564094415852966120325146143999721276167584039213059452045841034686198658101831824031515541105072024324031135095545609605894355936650563719685201893140596960688675499943659719999310483323606211854726495635815999904861574823850162677314595879317809635965230574430547374437450447911640987521197773817302970315797965601583413318986597219404995784314568886703103742092245459728401004260377895041252089366991846388300197703073585849386270106644840221185968888807708474615178803255046390629470104763237656281239407647659670507551726452975839932882273931651032504526665551823239551390212684480215673859422511655062586133291955177334322200064037240909281571103473666841081756899956490443809727201447872329075638798929911019418782577837107488662146646637547496533074613949483770262544818495261228311340930703282570749025223062277509372947853691203648028634615969252095016872776072186687739702315940581534253867172893201071231789288893629546762663818257902232845501799591462417645025666448103938829909565416135123008825263879178473725997178118107080047124234115574761943280511706480088572918291612429551516541949498475217807823294665536574220085643373785703064203992479783725446248309711505342348476464729803906999049769780603400335032653356740514869224638485664665130294170845123040504260717784252004650685769060421372560151552411654653518663190518606720007521321240411533159803179245183381334895013001365038232551450086657336797631236831766124705279115000462757873248177531551317694414459861315393372680860477815033531594329571109462861370082569276731359334311346841955266268525796146503938805534779770526373603387053101140713609987266097512911017174859848994616657750974960475062720124513957478034498313703471059385374009793860317941099803205373665946662950492739726210813638763956220828299892612510397407168369263207186090170448203219430802601124222807623572863173811342921235501297487898886735542304274294552485406879632484597432878045500042455700918350534785281424654720411499502639476275403605244491513886091406788865761094736571754856220129436281765528294788230743158587715239015061801797802232324761215396429090159132803704798317948501113761541303517743935151199788077321071594704187578760215471166316792714210597327298685028020205604305092019240906173857664103069194200793725322199104592716463854258591332343396816519615243028923153421131574101803480923701954029084196728422365104568315680999182221928374601108157290117162554041582815026170475686762723214718941045120335169384273680686298156841824879995358232137998500673931927434106958165092471489569972204695569384199610891065323642421152015376347771119809539746678925329805057034227317792874209056206746966208216047791264390167891509443839293515918828000462464028461105030157013241357325014765583779585358560367465222344958491794605868569775615632071159612308461641409892559021886453518020470151271447310712047778076777165613129650438708283891443905760670111412479560693024922563377494529332377409849019345049267999291239745939050017683750975237841686280260370678323268572621565802294362335147375536958358343851830059765291899267100812507327549975500726505586281656560864531380066973245649280030204706582278404008039915984057641907614066251333060356749274724189993087788273871703983722692722071243781714460286124762174467606369237792000493251621822407798148456660636982169950870323151976744233856441628804964789953756418227792077982350219574779575037480947413387793601939175728207979752393684661982660875163747508132267002609542198961680503379680422230565898105823119197808838574858936159880512093317678974239045548553546302429635731994799632244649397584452091875936678430562199721240435984974066082907937673374707495730484398725016072499541103881675562925432879768416580342421824808903298823499574504708825214193667015933657110695369297668209500907932579783203914356226335493565314133960892048905678724163490645263333485704778576881019358122280548240562785022194328306934332574907122627918073423216712873970136049277073677942641281496437578515397795732211547274282567248630379297585345337317807258515565729822028964833072323728302929350666479893105999671067676218398743115978661483681968141785679353278661726995725294464277943914069748366527349281569569720759307057797056607324521939330743687729075197421076258336308406016275719805569103005522628573868236618938768383808071514794086177374787929497367333533410405519444344804735859762044344011412814257642845379323114913172179153414554392680153717995841631125766966289125929360808896483928509123458409316442653508852980866214872839410649360598952776297233160192264154486634709710192579968998285558022187679370894021644233898322047480875119091098427121228683676659084026630372984254299207971250178916512919379912502638966127239316003310637600409323723440880258985433623648324897525047990888998342699673989224260951043328248495305885320428323140379359218476919462710153438317575776206830467384830538622082864442516784017590430973468250955693080023681079874085206551710639120208976946325506338461399147931032923958662060422631029080002616855266880777872092601513343898649010383464240794980158290287456734087990439624581159867685879010295145142613543757045565190745953436782846531935564014175735427002783297574947661411182919863198178713994945298003290587852040614937590542241740568624161579823448596461113987480322682948585611968335285199833523308886369443880541285640658638156088857440865654842852884296754252375105673332661442835899478470294614270483022537621766889181435827992736232173260214398938192347233185208730307794259150897335042675040434115990413496733132794183330059938608126740271936364899592783884178949829988042488517312193404100634399362660150084175187450956241208450060167674121132069676578860767960220243391468824259041241098519672147706760151151520960129742656934676066880861976498007542785605860893821676197817059639701345846191156036810768115622297031263408437608373839463196384274927590109839414041190939117277311892601843338660282238714270355889188844993095961641200680952038293336453344576591194191306068553686428884801863873898391182572262626687242106109625318331443222940067073015415436960916656794685180940292020779575055852046821828218113618520965406969993990593852834961994666921332218807062388747319479197313790706232937868589784247922765777157852350800097221551213579455317226538253055032369243007359019518294238368775702159675462985509939291805714720498159124833245502817708118142545799554891671011026457253199406608225689942544229248817356107912465587248186394482792627036959897233040466840852906939282226109029093745738819688392605686981796634379597292850588478536783740476640377099182261873985418883280921109886583293519454700374050076674022083099035533121103757043240323926649123519704605267995184512561301918460128977212878095395001533506181309257116809363070549897846282191455905506685368689297107738884893108020844675705593670246132031530261656633637111290116333700253575142156677176728047501981157937792406868296218632310601535266659944071384954324947333220624156960177663177624049153153856385235288362356950101435027211997167875166203039464793764432732923908476508247302543110589575992744764152236490821825983333200473971954557419562832696130135266004086967256509326278731359737716592972935236728276763169413525106744420890489505583084331863019458828318879007903636239951465986241376730553870778280579972137683195197172440248506975508338240652644915603154394239495193773934116970680550251154416201063547796111013072647811705375737603569733872245476427201409338922811136832925043435799920353017914933892220719016195936339986039770477147473439259704527242556744689150285676763293835387210692873655807860669929796548666716757703883531393733978714385855695285740977699487895955196796253162735260188287248596857617859037809229387569749142224858290713145479734636321863432935708059543242152752242285517953696824698190355048500981260751255689700052633601101398172537609835387348015421352401720862001000375842400666379406044670127329530876792402332221686667382915352602456784855390529254765157373393005058293154513260882234832315538848972540408050459038735609100219959403151708693651501856026209898721513082375275193544150545429414961087457074618136111471962951010037394027613145895262156900342269609323612230627193216396586792457199051445818289502943788010999033565675357223678006071492986844102170996112082323963191543364429158139159951092542710934291002390245177548467296924993234594771368854546512443652434886960913352936595745474023738345087805086555067207289696503269610763619798576992452249431729260631308196212105172012595914878901507076998648494577082059559761642682166698611165869124862517665496840292578663971186708148398385677348557245877390887488775304065780577710214696418149127706172485471090020956849518750533975387751241768442730260766928053420505443219252054116957457467337657884095194321645993838913122044086086482293946656514146879336719812797685810737557204739165962613464201989635166060644812674270750208425016075265954440585258689537010816531134902656488257032614811729946055872535439767531582103785024155744631180262262134324653694705319445877357155182153518271783052742392627387737188789874847472734597219977174119958890041303789400681088998702436931982457498534472331162023301264685175138143232084688185358239456624902075901641499006519848803656848939980847697747664083173873304942938753632745041133943458270596437658397319093942395677191944110182222635904171271375656625976600424419170704211840700077569119492215094749392273750523130248133696181947665617178076412633882539639361797808806201401105384914548445457294567088486627941354001244361136200621666284414344578443146029267829331657855362055813438988716062047507475254723147922505646627389023900383776637359030522570939720717058785175477491984339152502759118810232105168357818494357449462815679460946563962622266453591518857349621777792030330587402525881334013866234147819034446519154669623965777120133837225128509633838433540182095839680598888829290175221686106811007087908795319981857638310871699169764889457971751589943124043862047422183045278673440380405798836283394281546786790752377055882087691410818436876587092530830614485819039471532110749397870233047691168042183796979890699013056677395862257709135945420482744659328250323838862103383483233841902441789781787792911428258541148388367175735473971002370803529395897111923595288015318291640527309425048930498868126020601727968086878365926180072644322622507460668386339774077128794238501765127081985707871537054756659689550167134233177431850517539389476693283817082623974207546119828418605247018552273789146210687894333864702516985582150578588584190774852900725556957560202309057004059210908047637827450516201719903378166375522240008147442043185838754159527604603500226357316504396673754291963417899760593533040935288552622582065333007133461699494350798846532651154162519131014112678781476377374918118392919729651867124554359761784963322435770061716623237320788468507509325725540035625517915471033614968856788185731761190622258005212727169144428215153282289238355489624093522718076075301358493331358803302858268042218304759282712899416461148003160059857776474353781341817668522221532755308784113683704189417458826913166407716894552112947757778607202264456523646389531123442035366348905711219883643319114898292025201345187338707779045188383301247558317779025938214717358877766823017109658629676437901218481312792766681328300937310035986139592405301237299588962023291664168744273505879435081621634376135305463130567822806474486686049477571071710072202155306286136715716519529800084608646456851422064581954740281323845932682535481186360709832250887545247999052830812261204609886714878603251448198110822006398903482512113872128765130182396023705695208165101477313786235819820140921070685609352953078387078867636590553189545128654092846113600303419376468024193241493065666783745213970068854140683440149893835753923733476032757156216000098309803486314808001817113088540629040546799165015973031531293314783664077640583386786293469282533513146429737309566688042938880541284930739597159027509015441398716879126990830839582177125711153015916718178252353769438208527528850206018985188716645978970390998957682692413893567215152343232950124842789724855340705422576711156313490303017801423530975251573539601179403476474484596126913817012012770462625967745252250739874066796278801782795534007070571553178852798591054336867875087631276601515788924832737322688872244896692631671139545458522596864102152291218763918038146892846854797572564536196035684313524033098169153737419976714871611886155917879497688336137247802716024143074488213434384947034054249289349983238700843996071390991506385698388221186628360843811198300030226002600564505483791809824692885384880391041862597876666196238368436626474444279041339193658226472768592946862486274586055010821560780501236095820426909373677995244993109973807793502998200248094501762318750242021193392816729837669497784355700817486216709236547166801639515264006199591268303359081619676292079882831159988291010466359240312914853623820831119207641254530511112866057368021498423643377355273420693330485052180919949631253882541953379691657565411577931867945817635638053746121304833142351403423835829318185015250360951399658511001216723485298052849159945389587594906857922279047495683393784495658022889161291166408172630827484230079343985407467049419573355064271964244377591445298733862915492290642707040850243712961846236378555177892457216382674114240518905833650041419768830410230796012536610352445050439953286719234461320245864885698219103157255875050569780683371950750479154155656089944822502984864242546107227237468607380628734326629800184823008662762940995936020728386025804088725768393212602659305475408160606119705682561269295064598710412568521033084193401702867039958616317655089559131265648862436261120382323652293022726380804993121766831576838877610346416318110076061698825534114425893487808032825071217547868606941795308215002835159918449533133864560673701451063991987166834611343432326700571330509428260227834666175473948162219479846715571024692062513788378308524187101315632353719247418253280679991152802545816704726815038505550030835247804216020381437273884414326971383548273614420990388826362441953617691775719982955070930984213760220328499995160460418734906475230833469311709963077851148365555994853615947748478598628885339566408981476804698126272143456064475004776614390446737928800062798447192438389191839018890964743490071546442130974762217345315070409539687135554324846254168302468974952705411201763021731751875568540374290959810888735879318818781928711531252682550127853417032170518381693536983941154169594622270724954148652217194424132345061233347655090029678872069966184995006824782214156883305309384168952668148406732922195605381560678333465939407510325316923249418627856561961500448274174282040760340509594178755853207111156214602970150109381485324274515697513858174253798356787593152449465429525535902747270893537134894578846708250647019955066662413980672255455478910666642753466371319088513955895786120568778770826554853064101860945463684722823170148117459558958818588113458374478317978474162016806491373242981499796085825418854820536365994658070427658169465627619676527404996739768672550892510837416431099311694413580851935818015041116353975745801084375273764406050932453265482131087085121130022185858022944222367706496646538428595262318812426631976387265043285005354700095424414555005958357256243210339618307860375308081290563175557321445835718332874736705067723540232238389393840734887278342908223635597197374189445253852431289703007686380013547232798887931347325646120935634665140975228085079825197469012900268142052804008901235109363534446170976621697063280001088148788815326176219861462862014689640209186982435315369189726461693465314299344609933362187782139858765211779875938537544016344485564487798516569658824382972394075484278645717670052551644376046106090886596919384260246934515238308553510989318243155852866979014044380833553904592994795689832728094347315461357079029279469512149349345011840062912712224710739612890643781798739567111412866878015358251261033356816933977337181445573115455778919125390530822541199622278956718562000120151046252800202552514739626889636269038432256109338018981421039270844696782903095082567058623159451524904880710512345081902579015963287401156367457605240796889900992909145092606900521097106635046373545510263818102419161468518326224515188183760220373725282625212613991364739969092184895845530481564305864749981344361786328552807062772794730068093394792579481101163831046350382599262563663868981636095852396319745498596136474679712615107404625147459841687843066114846207444917017840336741908967997167642523463626905444686606038847961171156181408487695898596171209997250137103821701411260474839301413668777651700342394515424202555603302519886391783321728942065045533290593805733178478827503425302576703383088019048971623491067444160343615436417232801567185383919413216310148082739145732376612448611294493346910180442977367595883975308201563393658822037467141153635743567036999864871661463466725991692859321272417286995694045453228719088172356435659296175325628480624085570031598738022139435156546346843677281208602774419959646187082902571056679308005205910834668140103015396420371657361194161752539851040663540658036584143732777146129358225677045778577077602381251351062158224540309836521244610333497625444890194628106506103822532674815156451231458939922951158194610148181716245051564075670941898516810820971890286705763996144465371854082477260305031779323993780967710895505819789798964396146343643802303239103176931322104088997283878266738683648392044349597901726442961876455453296063765469737967081432524861976617308493144343658646561068824079594627191209828779478026940611942723410153202178595861943784788208388452719834997630713514713489590253469888410058219072958256101138424203213702571016802580219938833107393071273138307637877521062647672466452772637709959679383879761627593835624268746188556519378476172885509605485727829446187002667100630084128906129258667337587137978573745616877953397701695908497968920369062219801477314606505877641451867683742543951765926123616980209594142399798013832582383004837398374369800613741791382943449193892903573767763734279131825065163454608705654850944466420310528737020394507517563744158525832326990969393191560929936469318895543337799383094654848359292877667633370882438690250345964811760994337401903867440726921219211039627068554708178169331522352390323964734133352119359657035553975455064274370917839175220287892460599162119520220153366894583762161232789226164667218036128780453032362180750474555213169843864372536790989533497708228589396566717898321656441880028937714078116529572155944252229232977939845681966208407060915495140214206348249285633452286167314556258372064870985386450248624479360268607829376141496858704908425211270433957128865874547340627306931292204540717883063019620182130031798740346801021818340412384358386191115884332373909399220332531562052756950470956701732858498916418865745064471524228748766380730629667665868862589853277859754995873576940412663626287060738221733459164526693539474222618093916200410632841349574599451102052081208157355312377992635089643364556349957680109708309818616940999945651269633463324006839719061819103555979336579230666270131646811898485048061833260656025413625599820315600453948521473027782084291989696852025143395480444417719291485315395494830085109776614322108874784450849427949978008815759018073780500245910402719408103371267018160223905770766712397371235873329906413982449292650586429464521373326004693891540205087331821807701481511542972372640232632927888163783685153843460471033560334870917190151595258129063167994479122306214509584363864870380156142550864066673906543619122373900647097743478658847917590876782818748058789144832302721583859670236330018212460689615619397458426614059550530328978109339447209977657890588110144288132293577524954396473215224971595717037545280580187046355272398465415114951711482987892568989172087379449076904092605460308259422566608644187361604922081435793381240975027628044458458587752489932817915338338633266788158176201667534978801012670861572415333382472139464247711116617011373972203263126821639205430179567379943524216290762316594003475308291342838536783541432017969405210015312710598975614340303481886571744613834881023089555328215323753096870315629599803548490529778461709318392259519217414874344566280272944713461227210971653391433042652870733084497465393276447213207709241631083641823509141461873171909173250658365954651144173825089394080945434906882872019388599137484280205976571657943768355690309690676920891490745424710284678774007124936999620858461435538452064948534083148518114203194893685054938808754023015822501891366435732832236756287718968780893735633478161346366565455549005931712374162492734750984311046350187697295119554745952389411801898643289530282295700016490637850871374735341611029492536799315529060911291981938006484886033796349074800251431828243830910811642053376531098331193559454915652846290680353233066844460773473520082454741012027999988265968033106794885742992473355240994966561788782121318497801892776644132699527614696699936929048062952819855323952595300307796000090858549622598701039336052317094446555034335118553252568456908015252342265997137577013513431571292022794115567538403260597180091088190788637467377064114236189435205255593207785588636422413925239539095007212201141589364246466278137362287052696837148520748465802085893321818889304575260368336623292379550126134637283232180461175901686629825653979457590355448256158023931126080318006899787820611157656662949106982228666116896571056782435401114191852599247872817382000785487755379265084444852258249436612322140807633589597957088997794518346724594768704630279674958963184251174960475021234498974651414788812143678285515512124439948209348674838997527151432996752316232695370247377005226146671829854677876887434747557572039944129267575270830883943958305514242437296016983506960476653797267339479912092033867330189963014840974124254747582589423222363294306177474948047633512134324587440585016863361493087230169171307595308420407956586689726630563658958087064825529685414900603215331122521085296565077750656807326159451156326207401824039586740896298515384711871664693349659158737965182261080363997609423871027743908824305187842897376346502719790346750683217739904482039047747826091612452689427910341154723180431308142912089174112391490560694340819847268214748693351274180921364644467318111666490986232840244986171664155770456167215579371085782434784415912320047504487417009354412592078395112278828956449260990413235601105816835640948321397552603191251799890954863882687498986091678490213591222875007928863403210421834208789177479386259561576157484634756917799797415817343897234298871875914750699616087355596194089984096841313314383409853938009650498528429669688824737679283086813830515628781201852372987375254209515398331351971539428770151945066073401926696709294535601963029928997538088426603620008675437938807463550196492490498941071760878165466484101160919347248007607014193253834676704771675456040395688405868252006024000319303918233282245665601184050841194429939128547047075113656427934083440109813561459504943363230313908341705128456946574529021807219626751660417345679313580734659179855319959393368185116159600437326912033858201695182283642799021476003339727985852548067118490514944504713779470137182886426229174324811519905042565990226130305392199380375829496861883882968014445023622217666573185613463870926613270896574481778551364056232298173159913673634628791850066060888638781465285311751942277474753359064834122175063787067844192446798787245853403540824689204938586739821105735334208649123683267674265610246047835540665305716381588089349414787443031584166863013851689570247815040512399924227951902255056736928842006438723259060567087853199363777795156512012429096263090063091441644718478919202269784074075527678398233560606485232877757533479392969367776146808559539559630883348366442273765631924229147802167078617176443715950925940606437810588753219277482600912836300899710877323418590969688550104137816688617244287214815954844588614498143593790526906300140822169672903590223758048852155144871036533843973653841655872366766306353263688335985479614384064565784903132839919687842513926484880873312730614225916635103811910174245917866525806663975473495425394115383545250016765303335976582546902420554090019176505424475515213019063455988687385103470499614216552218579854426047466209750136701422131640319942403811917612360441791238071413026152740033621784220769169552319089712331189376592552964151775907907522235917748639529184214927171738527904690750823757756844981309746011402014066579634591879727849327861385110372835584499769836529530627953664291231375757283971697577895665870428749422601487349889344248297465525593629989702083641520238006416912248293659293032990250644741797663282862532970408235278465246803540279272763220062325898647497244004948643049135349919199712351657108485114614394687334643950035124810252878365112854882645439482047886114750240178246549205811924456904733719916046529956799328309085923408331570136432437977175725574293807806146916081740909650083686604165236944816719389399082807050317658615707651209557100740057676272052582986574573176188462443034590728192437637086063240899555277934743283655457542231715940016016642714350498973671828416268677748331581929186656997991850370044444589546811124715989892084150209855448954823372689022806651226397150479958895851040394727292366307600701800939470157709776726970340217171725931255812654983039574944339343733163079549337076807441370955533940114805825675680103773749731643788937891292909961337319245004366627162409346368395972419029821764971279281564803156351766090929880722016163437989539408360582535345357130703928260439980338008850560337804424041785457680287242961858621027117305981863666250642834477435778433107997491708957853568944183058149415525879805002707377365985469647726253507535335317068363131004309952412966105185550150747078868053526959870712948908772582682639489062417882296294720150977384395452623593113793015892077187600672509937356037547049284210405128319115213857583389925930560948749933338537681503528335251862312695417020416902255254209939457926043129274975003551295621236764370487930944163140953241437294271287904725138989810807232440293475812737403631110670628167049291444214165926807588524937280268436014059730143602006078910835609462440932075342193122918603826206078066483807961438745588341946896109041538877023815555300933435639061058681702175382382318637842975481357566558290280762324682536509475267687202449248408927303454311424441270205648912951534170329742354420012699749758862075337315242320927164586438027922079472579470360339826267356074932687685151278548659584531076791420301388833137532196317775936150484546703539927466761468810683382718877618251474042748942895073427522561459217505594963728426185508431087979148039805442992598231737045726328993245912168314072560849754819998865221780471077632964028836267855865749635963409914584939636767155019310954280478167862520791435706412121968665433465569853712536916141337359129261080727095964103238929196367748647687692378682211011037317363701119341813957683211204419044071026264361294228798066691904600001467332875979562811902401202857075890785535484383534228894771350698441513263254252744008566782487254430533509245676299766322273580018225919310358145862260745355036841993715983736282364314864866917275486288435564821930085392191160997738103509175415931051523280147416022404647550434090386899978537830603328444865013685100833560940827615908845555485508469973071203809631710238292561048433320216823465060393106611619446260236416143863384547144027603597102144960740363106383537256144506117645112624372027931316139719587824381460307805788178825442725881757185312002095173584331315970635456476381188052735619192804333138598399738521611416317611766601247241164702616752120790238999400366278895685899561733678153058485499636814232245696335787784621659200641450539211990830170410747679930594996786855936154505580738464325136456798214534360899472940303947742522124818932114001920102013382855196140249702339347816041277832176721806540307290301352513029757982684773550818846814626694276255786053643310590579672108134543316041514373981889812154807185613285476343686253689697603622474776537332625305158507167972404730729608936310254303095207692421490597758652054358280437000887710808440278045660354767650314179273792531787901763699192959000589382676554023297381055858751848541841485397298516219317399301812226719038488275127919352877521576209562394307333695035407720229882990625422527451554614115716413151752123094805294919649443873511663897686890348203140998445649501720083718127608491892143051664447796105045845373109243175534748906174704608176269704980397794974574628630618341299672227848456464725396539200260791942520298897257682311121359608844051269316827614639973037603444829088229712382352372955029125418290001362184746251711288730641179926144844114543368888460086846810655025092681069113327636041356017181731012520698926672730812287723287848324788115997600357670557303801144733431058327191569843000927676981156988816883457337459941527447453765694212672369806876082295341292013425506567408967949231208958806519603043922133602011614197042498516169736968473716082504079181258718424222894249697411538874544206632031183737395568465379268720554704675945886299798182743488588807827483664134422787399826808424439356693979354675002737690410117581871513785601473720378441234590410952646617934214622420355988892214240509242203865363922461810366084609700416427957733997393843662321799073081275262664472702430996748457569693522336016463934367606674192368233261810337985458226643044587726044726358919819979930312808185958263068597085045662235554280451805725209428160802674878440817333190444274791456212418933851707652257355966529898095668444704476349462684443818304123365447272471956372913673497959283161682578208334766452602728837198016311633973283699982587153624137432870471576923598077349633437267383960766371587751652617892979167722713841038979886376509063499069322317478868090861227847014653708918496975014012051670332815304860795043209098894456793039598016342610699719119164543950471773389008808103431323997863104134842814087784302598996565658296572988190444112749700416788755705386881439459991285272375805529595129055044200704613923504274956788360247476500947757963050919017477117943626973052770506803757275549996528474099986951776003206836078397168185649590197836825814560640661395786300889619586742680050252282729910344409509154183413702417576912335581940513976641754231148910730302550649836703813316546737084432332825362944016423545450359066504617533455792773675952010953845319910015525743830552514495011553528142436175796307783288819344465326460533033963324672440038071526187143545174226976751635185903664607630917908709287944043506979227331887430644169549240949814769191891953821112310098404486630891519848069077416697759824501970707182253104698889042071791107345342372233397459993565908287745670081558608315385789121376061837842373199417888380048469143349449080553323335065826390432381601081805665065419852563986369039306286793089951279825646029457294148564423109896155390376444648244719776083679149089059963875961224980457123149511494560553397493129746541413528640254354235698961329013143711727914390461832452346723185609932562880146891227125662215331427978583875415004530049979940299870867399929419415645667096757687123831144112269496787331612854718310888470176692294259279216464290507280072053286150830493306367298295857737675952665707888366066076672305484019450504438558380355171861909447864929356345034760442367187615946343335611524274446792438873285480147802640822255306108149385428211898042069276904889761584278603151505171320374914046550246947597003324719109092162644240911303600363880635735211257056765498079337743671910734618870314689718933378348925447113027757376133886543561199429581146471389488430329440854805501680100586134184349725133198129410557014811390037647072789130860002767403455468509619224688688840032858287488378194163014383032474889892030501877371403852627695053995907303478340477872320621480188815405323363426931192305317511573230481223103324751090316203450847295954826554991376626472598091819452378295444012541674974193618490360854633695718120238786799760790157528004622699823264097136410031081920475109730324724488034968399311106279874704531633491372479225494785270974934809247866690529698245181921018397895820230351128465100708493347065327068457012240818370801198502754832790673826368096107768142980448774566160449171810753947067982570361435598612897097149406981116136592057731708847251159633523903453722707540132161456106254934626932736375854477298321217688173369744791735072841184055491632392575555408878826006491214742755338595499454855583548282609467065590801587748695806156101602319005457481305118930962874990175415782201998528072696468270163640769064885987036845919750591169744071391931674164147168731267001621091484524020489889655990401772601076821383607575704841950319294189350994246937794409995792170142663335231009085400008727537684614452666834175059483877571190119519368526082179763610016543797922109106622068361984159711934391491067561267190653446300061797160620193359064743238493207743724958912955717143961493149750393591197873385190166975754387498184525707221942023871662954699136942916040532014074015564166114165363080952004454519409722948438134104710202859634245774019549541736275370609373139072080153447263157115680146973144766610082887935299727102494792823160139168659166464595108856919806879475415700695227741167719099941067480962691672506286019105166416946221072994318221668230579713118689969891673387213370847891201601241954900228006899497993310787587533462494209871789853999172896100509469253329096151189454034081473808374157620927138443102650572428423409855725700266897415845124815086367104662138987304360663921034740035972362054728361431119549587426567677960119272484139834789837712827541633881413368620469711023624072389013027994315669653014331780561063666841755495051757581431041501097845372359760301754747443187630447340919046961103686806814715274196343715869070227441491947798674490252776190324442776545203631789305397593149107960423094794904134313788297722682700335829255472315573272098943220867262282581784791889090842575940629034390683285449749309044649598339918505515122135574402271832523663982165177605928875101511681190034743011672091620025955598797538039977638618830060680454019591455111479724391422416819167980396722437478202619067221769804225059117778077097914710160808665646498521178629424846587297537499380590330593237749271222428387294227071051872737862534380438230706817569884607361602019802846486377927503965105838959320505710531467961384660156711668107277952866911914652281682987467290384841375118549067892282562806533937659640323392244960728107556836242026134460988924825900144627019801202199906459747000441429201666671154932288944384896204056734817268742276342481464653418710203450385540906621784151092748521429119500237314101017180286129935040255697283065552393644035861523486934795456937608217265328294556077491199887493467000772226023667078305798139495367892961841606256351804670975325518409653684408771451784682159592125625016898350772491817498097496317505191535524882999384342784754642237908252532331330768533620116807037486102288124124594086864474542325271033880178674355200313120340431329229713372021690424874581824095699197042326878099974076182014541241538956894141904588119870983931276996705996025117727497869481538605736235831685215607002769078359771413627571686971352556276601849224239399905096940429083367609772651381033976261403746942758628688553543866918827496075734902808183982259731515598788749538497154744001024482402473456662616623641831170663679113928290597812733950799098106907314837143646136550926979221635267292354494508198419641377778866528029196209147155255235493299043428950063255121164624759361520605484554695253300935325536845798566460062636076507582549349073133526191438531677660317231299435402365127634335414954662179365224553270947201549098903655621159614328972393978660338818053382910685624948759852702618222923668289970578907872413671913904507729715321428904646396256344964889970545912112590360861758394668273709974995814925416813129993824742581903750233214896741958801782685090714147131051395873282342685169887747038925045056206343363820044616218345272180197497633047691839739258851589350314353765137384033789177864308219186450666405300089280521666400233075598272776647971449448710866211763178860753393255117239208328366781136378450151715994210886189010271340575152078366763701592313869532126105270044656655976185687883108570584890861191350265084163221759223433660143196920317602848031593946414072801738314842398615717969856119849712193316496610571348370306009362423843152604435633161830496682789252036139376343943131289028173363790102690873144222758303860723716065919476284288999022597116772196814570267331003864878728976691098691650947364327440509924733979494372368163929544627898750468410020272409902046010130310097886957974309975855320463261484705473981834542502930237663978961686034425597534971601146678165220096423313186491222998836788064297366833259882875792182196415266815837100372791359090013013296956803259652214708286127760804695869573510663495707373964423333568205743942967946214338320187567789408188581350977315126469261008437449913612868115775495735926170380148400569971536248167440311262659552163350443457462139785763807872041830802220103404316495001037841838105531052254273083867979751964969451582683693557110858888563228801490057916507034420426061586551473626887666590431341656790326918302032236539808844134007252573046320526353868550180926195335315670106168802781039994910802174188483549309072092627100459870905360299793448843580437681376587645077575190051987182841681854329524786021575763952671552906201027452768007285156850718394357002973817699876445010756329032482007653487518414221819548096519231670393589275188626141607933859763227808125340175331356846580890317887346549617903263150655621224545496569376746191136611452938219141969691302993911016189791171341787756691878457603754209418420543835473486074706774390985030609789972526550705085528349175325587803686426653655822076393166844815146809011135130814441514316875098641802645630908297805610354416319368747214959433600743927884404737897443758804886571104882455590212845811647986427222548650234790707775511722896963397783484686656449198761494939908388423818349424252031093519188819681166131678329017925114779873824143606037799684850644809760054043582403584427728844305233031334389992414675770047496073895374147553327124758369963674836570456678476476878303720076073160627443971059207676673754862535952389438496250664587918970258947355334326042367065344264342309444280892002899706182460793106232038548864607974751580086908351584517343163830302169872306295150724949432258997112089793174261845594313364912160568322036457205198568775449130253457597570865258828903271665611816725923857825847684746398607058158471408833124253261479707876098447293901375403789786222509247015158577024338647477746088334956439469268827745996401196386045303691453817531505814681124220056624707495028178430874883832098698946294874380615733661082152722324491311004263729955813361298651194704820636474839676645850284025102961378001366769505164479669186883291270250438170027350330014374323276697356149146918328948071561912735220856696904320753781230614367766873026589177278487492272169193894040471130390916583201402128374676245277246378439972729175051077133045722168375199001842774355480718134554763614487191210857233384566551785394358458029699077223364024100610756316682878845784472112048330300553565151423288425338564814774336706734825789112764703418781505008446749130944107309323174234509444207891213862909604183635341476983771911405646264398804987237495827592015832747568234181598888075279437259255974518404053671799623224228593582031512186317240566981187440735115138035384823823022882384594778141111984328850654074988989208603535522667001393831614909224535884455971886782576560248125319512189730395657344970891254508809535371258105159827175789236071356515644545991671361726505873379500554672131335192531449671560206611845173166683479295760674100920357071021612768283636892374972843027476741601105803930695268228436369457748801513279965744011971794150103871696725618707292867000195560329082340340310654033792579484084122479954373931571883138212603074702683460905784581979571992765509837958760518069617963143741655505608340744130283289629676384314080307855682434794874066484027192849856243588491709312321335705994753495303158356027626082121963890418036733958237199478454497022315630491946421909896824123303382229642086062813939919013469513113664117482799781586761804700773348252385454752894736175061442117241975657321170932140656841051180700829110947498054956859850449353921289342579220588766848339094891449856153493712916384893811511386329309235528073455930328880876204191116551352230394480297048514541754619956657048582543041987846913661825633740225992702146274589100643500010766198282560773857567387189593538417301821424965716798344299563949528982776628764637252467179877840635257425261227842737269581549576548430673390524495568842647095998481629391711391845587385964586966199363687722247486209832950382231298365646307749215206773615949010443481927943711495016679854825453283367678903437980073875781859122523977281045557710156739421292579804525254890253966165859804381134082066120232673968292055992980968017257333313198596374267281174195976789637079724995464357013436913312127537905348738133607525397562958606598999922054209045782071409592800026911226695419932742429219028841325720472132957673178671792547637091827338292936044874820282269344943512291746950940102975626054393191916339167259575489624721357853566541739264051288257919453218916028456270747711763234781579037890266206776289609757300649638399695968609181404320599688923825711861995700355155589890448864857047307766130034537185694139716357455591186776829913740147563152577088624946812889204503409324408687698070207974936704594253579612338343325212519819538359408583992116387992470531907790824148852034471225001175032335979840651675207280858056649990816676115681940099614229172721238306051468161117499469828996488228507407804593661521281836877647490537907296813203480195789747581078325684860700012979583961236853458321444719222974445507238796911492227863702531152735376605434926064626430312665356998475999609259052926539357234921726390845238604216072177290532991410113141456546784151767100068942914969606280040571745521846240553790507151653658029898607928665173906637898174173758014693173038581906667301593056717763292130359306717923933687157105094340029328290037221384529013412113116013039629789322312158083040495730404527634930908901714964864724088433670548433576088233337154017019512890295869536469564227899176780128155913111191744778595593224184087504136312893383252689623603955557480099634514881781311887074977854804600334384926695716460041662283751052565077850586776519968940602590369472547919909637153103550408868600731926786031326165375485661806228565632282279913280229287074360461608792067136360611741780247741577774257786881479792399112687363456615615269474273355945988238771417452541731653915426863139755528156638528440987083406667033421669067247379326113408858410408221568194016355515060339374942803396492495666346805056606375152251997804564106037485445497669246506868915526659767241058886731221375978271460716087121601328315305373091426055973631176859505749373689363701621008245316841893589015219841428492080268198902537251436103138703380113943502711672960534064690410811662491415216244433528367944998991618976047915877754243619835198933266818292478326431556331005968143297894424711133143069337002364158827704990461331386639010625414960514241593264307944531720946266456028363236067320885292600444472414956232089635843145606141320534849240592318668249656731327917803719371619968220362434489809282189511692401312173552830976397553360891470090486817874516345292597975195868793643754372917286865620987399896632292383436638375878156885921909010362753785411325246758140060380467446507253068783087193349908820428401971508281295956157487705307445650788461922177950670325900537341776875258031936047544009936110351176823268729166753186270246218271046871865222473113853592292280276936499259907720819032427629757420506806095374029756030178276718114210160264824177993369267584198325317028370434065143769851872198475959502240998265246677848087134744067570489593435330948446699300054963228768796710184666877440939750086430653194995210162221380080242179030212669575949965773334770870697334467958515063499684237941210648515562495829172706527053024338921170053927148547048583063896840582401689198011802699559803691839670670091972693690624194591195855133762431845791588469685549629520519309780774064866466881160542334544887071994724431252239973249478648671495018628441580454191313949036072288415570380228780471414809812310499482224393740547530282725956704969529290601182489048237824864560808025986737885094433539608799454030646421358136218104875300387175350794672386994922621085760307891621378047314694622489503161202934386324667676214745794333699299900691359451492704333263601088036578971997663287264727853811942829332074266194900793435159328051574803603786067264171404626497684629962610960892761603487840412549371946534461434391731038360874640734777015900280623910704162482699962289080116116150794136437587809070654816171905964071883612099080666403947610362116930848175167590718074053800949509436956564519710067701733157646992313777215564691637430821032551311363127948814562365727941262151691822156264396299540697068911529772112478510262277874734347440059198632479978612020581539428467837167174440053533905463541639111450559523091805017336417140796380870815233949200460865610597723697161772458972625441104460463761065867337188904690043020559559538150847573615627683194175363263450590073189392588839333646406061638021501317862166956778966245054472646054299599684551790159718517533798343621466534687862959732006850979305772135378418313072641616937971208566287925739417333737178630594014622206183849601821791849176078626035846300080057563729428215707114116569125127734140759653770866493492853334634923731274154143247232374494311248025737890163870518886264214237117529968088577462178790527463111415450702962700324485684482652381894361202993932599417350353077649368699592933661357196581623655800103987166044762077163095061825541106149848264275971325405424646729811120749287904420674342222864419121353179308226042653319785442024726497707883599832179020076653022774204492371427016286936908965160657603718757327599451596510436988546998063824967164278528813855582625933491619970319498138538353250150248123905242075182393634247810238421436139705226871742788711394759961086333855966950151137035899902672269723246387865820091608418455768426846223164831986587857924745889607560537733734609618671015535021097009717545426589384937708148575108036257131103229430953433128690066997791926013501434550759039941517747798017324966262190377359510298408660556919388545090756374706640244212753334152212222361912618990799691863352981494539312590482189382655095639876908470898622581419620463108734497073835674115798509486076387373406041749401475812026507022382399569630588303925872601661645692291132303695363776933712657031987986218716696526081470931312446444946334891161689162194938234203744083464379770623402544377259583157619487789645056429169380548181897566281906927775071021948191166268328621434377911314907548591152416055921370320437355536053129238436033833598683941764279400061750226585898344522998729065719666392551235212734585161843816755743625294491631878392620909135063011923227298292069688956117724903516417682794932833272587859578057239050928010270110839807514591498755096613747267399525918282623336736025017599099427490387549935858083542169555203386693604655167045338974352951487600340640638012156685656379650187131275600703669761635722514583668891237765864695815088137274879444067010851846749373050878550644914144284669180395380363202818919146843580292275258673462282650842015242543540547349587701832695707623444764046104430239921650818230897729066053224438988047732062806976270524113940045735334926278447271610931229520621111939922235067015032115579152323646708025020879917593001349720317871004194402496915802433050703691810777354309812070634748440416501381614096645713010004131292537355686947699528584731706305549142273600411288588042519788245689642706282894853332029595832369236459003842041583133681472354116554017320615013350822983680253916200663314174917528423010512673621448642251051737554182057046199467651998152747001848166341498585188693568326420475261354891377082865501844573411606070714879759522933943033241004581672474179239602231710952218723671489154585729818195077312744216778920075764269594066750742598034660081603102402044483187968873973824833946182898323079764471181837451581653448082118571647668684031589933904975856301208378966738053693905425029864843428374159001784643015132745050001442576807444200417057070970288329719240025606614798867432177400548380762433959308056256105901465035337971217745038349404468195935064034465921750680300553100730035142187961238983227012607085487976480327425395641650064685888538980761340809268766151604003222670238089086770351920309414034254149777882661969518375252064426918497200402604773013433190908423333306988682867165180847444971175397434459410967488016844284012349265886441751713438129426313904543124629602586745450647231806158294653264456817562601408531106477059047140545908526648732163102308204862519725466909130423801173595857363693080424695903023589479703071601073773678605166109341326524520379243078354616889707357324345786000176085249519672226903267332424486041750867688803968870704580766571918481209575056959780513093240976259438326583676455651330496765957564382326241670637107815831404597065102995231671635912267468614330811187933776719557128124056649023543747205742080108538643273296272457332364691143088118088325165450941293624383828918227448008978434409190735836811066582103246715840345559974952285287559536626083475435773434429397980752149136169794318431073863362516163175333411933086204994954227548206819272370826445371039232778091890667285664126328449507471979504408670809818866374653583703636776315113934053164319829193457961411842833229554973503572640654468930578195255779434240387184881709099580731113662569300187779919179870173851161433209125135912762997673128695778301048895431946107983002884942997640068631821535371995585608293363183619448019029721717850880554721186600100886316960513889545251481071463704508809318692971173208438221646923303351879574784962714599908306956581071253476517027374418895458116586354569046611040897858722685280033926882130058188995141456926415993048063235147912281068669487952796814892062795781157722318342262062659439242881906122368393760906746903298155634169640899723952778771751864366786188966304319827137849379083913855890243135485274422986959157384901774956689138352154103946617100852568242686742303858803556284703236844093412717298932006301145688354940253071903691619834590274337339060143447364392782250008401486283842316355296030277986129907378777167095349124486305120319223558863946789414842462058984096928841857160367451524468179405495410444159101441179405505510211173380268142526156806991336873516994497295026594748698795822419467814229111269685257697549077342406521097442730477249196872903056137290116756821859615936208530699406962677388412794693225906909439970343423299636517701991974155211482945733856347274571300674713970689663075043662974351011081781902922200931031717288278120039602350858894787185362046795042426483279951339422875382329541695956926710187120007531941127049875722237180108899422231562398174854959055255767949495584757735537274118922334387004607944180479837411640149193461350857174846459861436113917510779993066118001756845788900175234630719225189877320273924073825804359926333659833746859311050733764366403527310493144504250022560225430702120530479580096917311047803931676477237055082981300492775902772389587591085804413591160972735810873326523354723422913589879277994913184261033847660416058536782723059067343596263666635538284131705365541895477448669774994056254662358337317528274137018745417127291981333938519359945750403660278974267676950312292398155434938339733667612132898186035839123102223122411014649689539276021436615549855604874383139583501193236795849748237543739178505293366152199851882672502840569904739348742932806483852945576037968634816177684645057284550257746098682457756537178197946713278755637978505757554192933108092693141381493349866690663427305157675629252921688020730077207105229074515311191375448463999672551995323319027286344508047422432678899995318390250885528833207752237154422342630623817651171868282305834728634461354423125856852664049917776323093997094644542137182224367724806295601980631510486641432966090681041478227063188522608963495739761808177080043519469682985173827078237315041755379624095184960310517823514296255253950255715847893041622197710751100405754092592855085254992826675663460330206143152371304117129963396409255018859846841121158884776606374487176960192884011599275234259884336949380148633317120839924451174806476978378419770204636318206205345469452095784909236756720178522863462760674969572332817901473993300314755949485662887994288694512261272201522588559014056996955815991313816856576101909524741243524052821298695359004351240867353556891955229919779078582383233459799745909865504049600031396112570374976176544192852081305480076006562188256404067157331562386888719808072084730126259002863999252234269471594681776857253966766359032688084388945201997757216639017279377908194891394711472859971199618061422354952637802504589771790059155688565164305615399457578778592956369206025076780540710700007364747361394431913471919874876284697434245518448243190633305728344139608084902963019023774233193040365280653945978010890652999346483135944302088246241210087630671072616086245256860133010211646573574403059598315445919948857918109295624333572188375985010037764813582805760083600662235401166805198992708003245344058789266626345276943078271622083636043423284454883895393895097153189934881267818222307918526645608820960453957753577166045386377335326280240853087122654283651782207477312653614385234979419056725782817671589442611699873277376816339634455021550603540619081173065341369816653920888060739387106565200879247441321884036982142395737041332255224863084766799774874833785526333707570476867356429035941204126253960681304791272763049667967864297140733659595228986145591029303944398011392312985151046434773829253969288786921265655387131978842862312257906763858514319424065665788897132631090063494343073219716808284294371587165123707758548860105276303175875112053367596651864467624483365901977537439206694898168249373489125136881622178275928223005470272693782455820004829445255337575059105540885257918638956482615655042224235050926689242683869030317153708344105404456516902678966415991140535545023741698719080817654443370975780817666304371044090764831836132516530546681906147464777102915972393470320865296806070728327661931482927283713983898207584776939154676622449074233605122026773362942282557718663511575300507630068638063006045102448798684082588755437568778306224823041231829430043217690959775318103984619597164077026721876213376449803124093248122421526288930777769794338707425361746101509749460811533499199442489319003583469723349905065528510735425870757478971712727910342429697504664834767231231680655846166162149649117744077581173472915375050601588814274530963236421102312038200113762942744951984904687883949085421474130200927154353635952116123462813408342707751178488574967845218209029018144565005501511567462661710039641473948251267809345628607482821055652010690835962310127633983150796471494062685770552988005863961198541153667303022256065749852436051549723857560864216672927020238544437567580442583916067278726588494213550806160608978235311215780252457066083748569164984746713617077484833593044222219759511741390461617721261238056928093013863506334911064913231668881925518986633369205368466812850857332836637014191808376114636112172154672320909136915105864700016026545860132724310533183086306175287775592036039515670032311741081783117405069224840650892311911392106126217216567434006296378397728619128194860071023877474499117013204060710489398639779185886357160518878441848244601081990748003436540961273328737700119482243495010403584860277028569979348802586761179323316047133029664230166590979571332267122235661743857281849832479242969811356738695216586802648510427312679168938382793617076623720948957209594876619180294802996164407692620469191279013788641759556192497072265297374399748795650896200294684072576759960065229611541502912874694439870929574345639715610530913451518516473408850759466134177061579640606702949234891467581898685303369890955348175302098984921373767735181453586123901328227313391920185217507569643829674881701019977110952232362876613783438823996649813671043854996668259793353285693932271146624167983558435237978572925700477350299458262959940671595267365806616089633405764837548711485302925778964462629255033552979987839099048692192839409604898167031795221194667080482928820639626902143063812137264868611490315481688992196096549924206550629053634311792083065203044685720324606173940745957438403885227706596308894001134494414113770243877909651752928194948183145626432886572938396394904737932810934227407745094614251729241574864929275281221642636033305779883254168457462894434371161301636618462561543313676384791753254605823952813471279118861986412656390578245651839981221002879696940148693521832947759781029744307621718334896293622295499018144508339103381432221565202439208344422522068558380860545677664075199748687278466322562738638599026573759457577091489374603145831397079622948846306337331722373402205009990244683509280730907870917253624354380509870602255379260397682240558753299387147414760785868004478624329149822034090967641155850587397693692819105538842848213209392565768081479795967662000468189879155849885763939899635836850201612821880383427044181075447779548226363992609091207449623181922371908749097753230101887032652938961767621865634244048046516852583972157342477132566937513788940074121225679823266925183327034242440317541995397581918532936163845368980663232206319005434313982157731338610662164984344548161497465829593574666967139923363004943630729889653225789034106326764197750993157039425080459241723205510532429436022518544779360651784451896428834012082833168845534527840875680029225719379368177956170866957429650813630966933414890590986731724063423122382293201895321673757466221302331252930944091224250106387077644167002442354365903953339596286520106519995501649167673568602483039549921234059455114306399054810351291456128299695773436722121004392226027419848845247452353633636610087421218926630512147181163199473691270279896275540519843830727344505702578556022640275677706644989543921860850268302353283093404222180537316995459906343693659401721496589613510383327840416466818983249364289942129408105099864193502686138484311330570118400347162365510162660901915303140908325473480698220233936479648543818496398628713874150279666155299244907783721325075782394797131619496379701280835039055923790599814815319202608658589227807467343551000050712051950862500985892407153846644669095684451256110826452326046349019212472927627791723055826386052842370480553798023631435999849781997169737487825029898117145348083394686617183258006673332045246587852141796794971316814756476237360386062356933917752984492612263026261229586216496422610552014522791001069398657247692857696418412975337020189827598285363889062475791695052665043013487460450253423684337119744608557385603687120939380070243216694095314062645765374530777554396062134558389925682421048445652878644160421295744892032516960473664405527129993334997704788963719688307496902096701673822094711248648428411639224026379932535537621288594922218975395310029854750189385793729684660554104305835593247598052904040214208183745644608054031927292383977229006447392883329913440073154801729697325852121626596935908007352879775219952650907331095591746597373357259643250122081840948027180546764786401987517350976360723213188279611503652976856729733146752818823899207849369989364316859314678591863051124709148673518620489285027884063969581473756633404959584061577778116747551229236081963294865432094886732602237976213171993853208282029299331454052717686897283649145119836394446123838481869901922295609711282117718759440293676528044216348129687609930109833523295577324345933151279938000575118252171817507874720262564596868102737880082285420823620398917566733236295279552319171739942895234553523408074108810985770168136588053328043958333797706732537043726255070841105952308283650418508229228318497449946934823913796123842858286569087937174653832806712193513258907932142770729634159179255772519822543507417478287541080326338271697334017165129943413863833759210380418290756797974092934519626634805419630136516198393919775126437519363137274691563407717685967370648081396593800436835692694055383923336405946822935907191868393880626353193748516071747281577546616300782045365392884835179392306606323853566088522038097709361812650987342063786585191518493299989596823995047288603690554508153848961397535736392131878106391546660153714002182868546338878126843934524209852212004285748308605999835071299595018418158172720816696261112724541247045512119462562346733583007662752144295967382539142478243474956421122298409505481972355678236935466628365888388377768392806085536857979352166821004050257056882311833200486409476609990586195132888642556696993814022292385524038551472539026951080422404694898165904958977342528707057175314499666705933933928079001321041222032996760536130642499066707533317550976740193097134467921412050778360006219921214228278090739360032956372779852537593290794205467572732637888343022317109488535676107568150672113677201203255797152253028508587325600045565916153448329939820773400448344679044156948172041522563442058046430471464461212925865669388805518193887583541955185704330953319754939427307704475426956124427728402239928103494155326890746373869132965868475929094263794387678275706406384094044587295223422099723817876272450848223428629752935106688805414677822931231299103563645815056189251808478438435837552479490331989354555556384061544131483791201527789266955450112695869688389212641733859943318016092874936892822820524723931064425816564309557194032621904177299218878371835323319217532206632773977998744631649436975191347415822743051872907561551118031314085234518101954004964315108610242522277499830446050914395139525909843068537752950585231093756990395723774362870853016802906491589076283332279907204027024904085939977069504069404140734289798927384388087913020081198041752856170697237781270558946245431736755086775949361197423610448979777572005913880523831588429239985341846499385731925363789895608177691002859435777899172021767333349332863211625726812686328089466207560481165089640416171961367477435286373879967705695282539514511859040412230232815840265854725951403124358507348578500077941331933704591542545170083779383208829466941818477782366559589508812976311495962832573144041662872864887450933162887061730871041170697199195850338196274151357708836501344139343735388759118701982151378975535204206133704920992625389493014178460504613091024582176332215863278258466191164602943547112161248098667574131043343004297432791582163589077008034745167295060682107136267117347840854209766472939931805009292878468073397160860463836961721485890877246674480519325001780836285620743856129848197034541052055332576944507133057391763662201839380702037082138691014787723523892114828036327579550194363701227183986020412950539452138696180112130956754878127539245805408954132299065486719046707933655955440845264435067823842866666889225801567927229614637757773478937281468126751933375919571275308773830679826630330985649967423345760051209001797697544531808748512332098819829426685240124081640399863882396435182077895873702928284571636581072623074822691288241400523443682616422812642527079537251279289691698400148992881499170240243428001196728435652866710333833507445018874468425315861515138848673701381125585586231147181377825615151418496865585123303353856008672097901186342619625484616160724500835361854134014928683477153789605413831263042224340802138380960811138663358690147694281715753179138816793478802058995652263702161128995249606905844327831795502908248020107812080808518066490932812972616010671992597605594475365981619774119463202336438264690670284581006408649083307299320181117830988740587462160382285867748222683463303236842766881053713974132427027541119323041998181683789165936326192622872675851737970213928462909681835474189617650946100392373280036966621965130082147848612131725162955434855633656780375175482800629743588656025160219342252938419049998442236107213485024407848652130312844734178808021291017117358154083479108737514873314989047396399447534927580460900758201624802178093954074271535944955434092374509411226774064405723280275668096028411670617978143197285987262675491400133492281245173617963996547810766083619134623655136490764965432315191863464139635540246129490223918236233497850232709355735698365307301281785049464334659737788623026679286308525056365896001358000171584919841034370052392274253618237895297249490472700743911704768335495446148842261861334252815884707906475217716422612843965323946447238284705735095525337869113010958881460036971005831017104159411373294914638830025736786941121158868936460662655315803395237028657529358697071134909133079281748431094517282021962204085979912201586602952119184030318482316410397351595594603561795681857978663852063377782174715361450414015081246699833978268795642820501118314820870732804357277355578504139628579717437457669986602891603798015208175886335103211540078642220663386514102089001957622750025128398208945129685361265047834956679041365939817403936585955527699225356167449369230437035617063632973835281796145440617658006590584904266966743901196662162304814684268851911179490486454514287588639371326750928742595285647864256807308775475008916849676289389593764367322572670058997372678000499423068529209818124187723066926029784005429537575461680219382260795191557335909508737756304758365532810922086164130305633966612548806040549580073432720183326346267174253874104251897630998946219705077104879744637372209222556408185387192686721107068607201441146844706868314871857084490426977761815471332974912357431812739470727996664232741688848305933053087083068360347614694509836659603596364740128880984485041784549650813951515143881835812874278356020809543763650490582384102235002176813901270685993921616138243691077291920277416419903763632540121017470553533972923398889258026801674323477335441489218687228404148548651203183842755642637600487038298491672930663779006241657342719781972560047631584914701472108396529418251046953704521549929974080028668548609352485533272743693573565137783442736228076610580490347638503713572661393240662565615593178962697773104251971641868900587146503858002647808762909558518786480623673593944823102804740985383121738177723528037196265880656025221182552720520173096543413190245493361592058834838883040188108989311440993245867513556556445282237539594862444401656956637340028796777108474066547851574338295052262685224930258949332089128318801061049523680130342302975079509375113307266052181471335460041058518002619514777821840382716873704663632478603217343298611799946338434109952876023757534894912865151286968458001862683824477996137194528657599025709666925000556496937689601042674977474605236147833582972927220934542883950058743991399137709783605947554053525604756655007644605896526385199702354495154836977323427515950348012797408185826271130790291682919307117560201686813111636908967779781241656450837480230891307318853934143605360275500002298950104975412954967149423964484136500473980737176576910064281256576752791038997767275749307582467159961617984981715871196847705522957343705576330909597531259583786002169189332052854047129708528875727152314738644853733616759158378125001389521669569690251942557469974697191761138211560472022987520381695408772362525969942422498871437382561876651785091037634273557528994864471837473571075185700829174634916668140354075941687522242647231879582700103416928104472394397597723544051168397337925582726964696628248604307102171386076838258414651287871851459663888532050551581545567275095074219323436965368461018503532035513058570468909376374115582325395055171079095605746220696866416935624266028823158186974596078542968414045625113475747657743690265223386677579891337106791128056731665928881751822484418591384076925304219715808365968402041635139325381456360926915202989851402117025095287345899253496595786836956594581243624359596598016586739364587802878870483892150336846374363682947101797844606465113050039655982589945228745740333487953987758976046009231354703439476235243878224648662803525155570843103258914244633694168167687384712418675070253749989899454802711297188781143045634732592602633713252524851476510251774315941577284030091968625237360319094060895842817007825616513144191407968658067003292193159200648441235514953336912204195005406874011296279876419732224482167506863639290302768758784755409237214002265593755093729607189933956725701050569235741056002865851483161652105409680060497588776661214354601695000006207309430765523542071662854368919806994034733810242245602115329659242085574597887749153415367640776460913902637635990858362083539259407111394268201415677896255454739458986871815328722140053338741720360600052137455377093748755098992101732243006310972345790734760669679680956629009101122972795124706182980373195016412253751228647533591749091948545861604425695436304751529686565546262377059995887276483091393283644774636191950674062896380238873058469033366478997322667479999454451275107453290560162088094296997148109274768870782437323558012122926578886176733555447852507665554338475506834664905204326122203306123596662924033013827333294224236770632652428791933781982367592310846748819669246334035613853741582048376463503895764056389935563083517916418635797141396542991524951078250590863603336786953512760594202079620409274412913682472150115036729232054529274724358763415385939352510532445944298882129524569135371336120872949488686131263166623246015362453422954855090361949458236850070238472544922368787778361775184498462917087103801815619716001997523385281883519734240916585171112130637462539685973831161695698911913695607136745885675145963484408100764031065750201424180458561574503841028898004446358461057526692955422460096768204809054034465055662079757057443406536689718623251920979175940095295294697005009842802460957223807512067973158629542888854876799336733765469509239842999974906125961208185279311478799332219614758483853894619835481002588480355490360840500074818546924241060376826591920071123654062271376665274562234000124972557877613219583457534182994079903862484561473464094497878698213182440693828184861169729254503271934232184489851839040586109825062070934866600072754257228983720376733205619164657925168484065979323188370998508467527483796663101252117777863092163592957452653600555659703544584504549653275302129259212754087833414364408674172249931498492069703920041467739150879850663156269866104554937630187534862563695485771230989971744591244224206827130168691851081908856064245476174193958835992211363482776323748479002293833203101851643446114632447119284770646728353912765687983937503036667207686056472474746921668584139265048194129977101351343089216505498617880635113544355136811082305647721180677281231646468896943260976274906963664049912553443581818464108486958624518354103778886764578303123462191131828019137444184416147002670939675515896183644668874744963770935804825922389488091330202550227089095826488899028510864837138100420496351369287780386794005630492532504252758292349989730890861320308517710089458691364934778117611941252021755405169783360865758021271966545838556622164695982755746265830493041831806869417620467293501854307948997417588755678680992561605466847800855050405680092338541118322389409241071310384487511060776239007049848671862902012049086003366681567654888149836275677662765528529340898335270856139490153129430865524549217001289751371983820153423425907024462414917460126776700899803596122587179422086899799289619850271384870675417876282497830401234994431786008157257834641130616007269857821472198847188922398328475610002478002478866867913127830631664267574285422333190511960242623442034794642876276660673098106753172281874474757890912847348532813931645434651753304872244669743694353446206577206255109352400050384681075442292800740188355077188601610011273631832693482188699870830820774319773581527356797033451699298024644555403140007424946517378027887995608808897271922871359193996682137687420569865324699318882140432547526280117569739655666474224098562761092736957580416264467486359597830787830099515585790501657996666473719942775650561710522052584481281905103111576292273644592974544898869749043343544858754018005805717986054819002015526289557102941339479202654114907397413490049981760722071857094171256330558799755401479644424064787923071875589713648053459177844565229652189366726477807329504226942151124292463491034298295287862678918754822637877555373864614174156458235280507890788717422012805478973568745369006085616958694317018618870732074715910885284469340561074778113835611802178365862624997783327140956312616339964069946848127676599827788413287859018180684341772493387230838826099366723779220389504946417243878536724587689336311956267372250031841691422403545621053111735216554398721546567795161657066515549719268214597917954519514337535350382598421145993695190873812639510085497819921804878386257226999674288731735595868964286220527944320781919989851464024658402561816316936709378836822269381418203032341391078266406512327443631298534478549073466996652319897823682578429904061113040820162703991294806587912212682626141125754945170117076376201521898029719793066717258925328134778604353033459909814791875068044922292608912404697967693634337295232197727794913156308582240637616419656316613394110981245738758785325819055730483150331493418469868876060572887389254530451821872696312455413866761461126950141743703750464443641911031546007464460483894526869518081272329451859835787294305768974719203933247136312254678075497930687793781156728586050303294986044270604144384951974519876191752762762636512119933521521765542603347926705953503324328169215995924310709062339194502501666783520792536320548941149931419463170785524867167440467453005336828960834946750764623831686522999771438879718975525479689222727714397796725456715405790670086709066296025012479906803084109816823262445090985704721718064522575512796280849507183504819675305913269225043989232160548658540390175197797317160817076827142972222338201382012257075257505432596265293292748689131024796233786888638629455877133341558088831502294191207544715042247428808983842327605973041076974531716329312077451157203376440816381241086440593302159479536494330752107814103358043394404182935182397016669067145470052187247669499589387036151969692437179769633330392623022939602948830857203340354182571481308532050799771794899757739534529864077314710488160803157602562147679843939095785834179948721562418335436177828339443312539226989130297122693295842014344432146404517862606135971529418975402781872502967795655978553809140803901846662603425186667321141720925536186376212204503667470174733833145793500088326353930257102820543425267345240062683266484627037359310750518946097400125901441724065870679861691221160518143475517869655547240326434562442826291250305297100368349298097817821276591842081976534104235901404059344381863045223321245487054757937498709053532233090714684794155417201086791976539624415553926222137167641817066675445300368504369118923282962227774982709899983663618808829819028974188990302126699802157280553442148727009223319024473697372108823765047723522945159005019590727250051070058743223192900690565638958997289692867713034556018208101715403439018890793824091690764085814080362190266645581645180637586144546093672763930835359550912010502136184274831765090915687942391683537101571910477290533503200540772980363453751030422987430975804197931238476996083262215199280199961426949568953653656528076709837928547028737371973062301742705070479848555922823289700642567714052376841214412107639882098417144671123541360264106206538713141322053046499994588883669196454423019280078039755316866449138358638602530952161860235901237620961505357599574202322008513342545793789305152837940626255047783837894511605005514337277515441525580776734740350848908043712860934452719134508827791021987209617706790545548235869760393065367872303417754791943854724502144831322354376905859833921006269547211950598841778441404879453923000067666909690480417743738717468381819867348781373426372829479433935678301527410760714976785038597424583119846198118702192083743479870346993082013109997692094505597864836098971961357017761484531371406747769421489903571226926058144095963294770972015362858113458880089750566743039941896844141413338107720812305410281870655438774166686918915183750079878890884918361425317067450852293716811370532277250468199612330234345522793370530889634074524133085168365363133044224167903763578536924945858644250016553437474517487797102004496421173086821737233261052161121005081706573061884853189022064416870849354668635265950939266981345517257109376118918494613216859027678224383260688640460366081810147490609556458633812635459244016088372418843995319038939224719470266266430432480062809852464702846568186348499114186662526757388829010643059466771352365935639062235682493435166925749743456742747433000653268444201841273087897097648992523771623876421127927357428089386814837641563459234857320650780805595355736994968138456066415439300782508219195666849438026427230505684106723731930644478987901916787309557776227577494377838947121845674350918239682788518189143276328247053437066283767165715636723708923839759994794284831334471940571916574265511548058679533639751749440896742427845395875670681483577710546727906077671150551359589640725535676437051552043400865257196933765813299109286834307623552875964338844651324127427855730510895457299197618962535450978604379465476695545082275053687466249989381505314674906702919528239564404535359505811014519241681726000814993598691314847416885295053212287335362780745007701107483442944440178962489666310520623952230574127383510833916100286351736663939778479061738753977339900473806218738846883663660189879783859134954624712955211934797757576827513590641271634449329324748104392289104769879464955883458373972727489552933831638295330257763023099633793871223783355764096609246965444626961207632452438697763257216440910373264326659673089670903048274598708081477939148124720374933435233666448204152347840652324963911359459733216721541927966249407672707233868753152401358471872264654158489188433005999478744981198272971670202747991312153986833362570099527410819207943416101962140999732175421630845995895423411905614946083745261480782134000980492759418883625415678502850279369526515800589913900049970457988614040455810922974714698968029646015350877755189485934381052148009501789759778437171496144773025820677223379835918484774931417578621267939986760286336088160780417188922216101044723487872383286493846277702055062989719916942156347764713772834550394821239835828231407334858702479594268577110610607335947652869070997967760841179054499153348447294703025812531158815329469511949025049600153943745388971480083226071246754296746282448994712393038462872527902603665164222508109529657039115545984604607171902064493948198305969681019223955777146679563289747476351297347872379026936505768885267515332972846665023997126533324734533181379105207480649504398681954881521860010370177145096889695848727543652150540535662231015987714457010303242651856263839503870526846050409509892407382821393179811494592925933363962900010242000837694981451601340791299647291795961469594319208339864974911771959909218547519562057258712033547391988601821771760354358901480143240928654854205045113215812256405092774137277678647713084191994379281123128785534204499468370356411613271793565108076009198044079382863060230271423274274408886869742568165927066379474320974883194598646613002175603615603384101974734719084252939180542269132053263744191704244420080711018809163748765015110058244601404203701766577240727986391774217025012997048543270616777217668634307492076981501030752655562519446903520759761581469742589853444376750691802762398474044965780464892275241791480127576992146985676089857917635795179515727111645925368114942149879984143121230711616126334533789271549562178004805628408322733675177768590337332529093020880381627956201881908577912494743201047539645367182502070593094120442332675183240334232890157097421883190987536479418341714716708944177020988589295830754971762384373967057764409055219589891425231849024276122313162087087590694842284196563596035857208320622827124131962230961968478769901479041520051915950028568316846591541955282155467909410132769647516960580554742269398274929915919672368198150813661252616463228982469621582309815107304828519810104753510120125189785718559086003432049209576642035450891041920112169495209283128700440714331858495174579249947531815481211577986043609614173939128815415903784333632830814985473818149328196748244150716844254296918528755533018553375467971599707017308661280472780353450986153496876062959850957686196135689589627980057822883020684695836029534654094184604073733804676132796901298425548916554086488203267378491984296626383378686780617235502180539439756812690441634865936171867741714004500898424874201437072182901449434834854267146513666257438238239822339228244473920188607541080337775345034353707252313295093060493184186877312117896918482115339769202717608157898695223717526141826458325271380391744582392492421384018523287732262402068424628613863264570436724531640738611260027649855296810577514102452291558158237367837649737432295830156175360491798738149555490963918655629940626262379421790628182750092981949475840204932841001684359372221413218502030456403174987529451687772830645934614339873577775518496925172529588449983936101211810779281760822079317211413308189753162748094823570608546356365238009999012580020863540902691355713557517707972850735433616711264078512129629979535095064146785645298358476567840340278868818387668751905512765450016583514247710784353250938308365891160990051869741264247829104996051626079170867125789541728129814629574416671419998491843972661325829455655163301812573806554097168475983611147872638916853408653846994553123265502305824325302099775541454672778856953286070451434456754732936826869159171718061749276289275816357896495062834048134006280759969344251411458841834857942292278695944329097941691311017374133425042369477373411379706369321017916311847546505816574866051100133660873702229665820173968289157215638013248788780890609526510229284179460116235947938361367195332393076378729317115874869284676439720188710054306752966427482239986039796832376902441466843825510420265734347200255699312025544201634790618360612259853484241677236916166570532384485730361384732580753209681490358739045754840441965140052300650866386854008911558211212747192965010156402753367361753579819758160236931498027467886994236260474306794566463043809683630060330160190401437280805852375829798455176512163166440511064974672501110602196046947209368027304994452175847477881432621534512332107737613530964720279829984337154756723988978568704586196690046679379172196686569330033584100988971505694182533715750581629236491531696981042742287346720031585248231853269316290117981796860423054877544298071385464555567138928770131713985072430547998337143561116116374186427627629002452351172101467325216492914585627499109598690192218435000429022351960284841401366572851978668300026412744635091621427584355942124860558149180919479340921702093172753579895467799977495544037877715280477085292734763944907180114043319289124328866127258908662070813211288266531092199704377009843728687152694333411996264736136069193490174110179575965845391260345581700269920796913531344820788141351474800636410474345514630481515614244815813529639346947920993104017704453526241625362801559530051692466492763097227735623917617754632151133712826288415929308547345403652323177350524579021999894247818653768753725762969777923580955528769266315322635334191401718764535516019499511278449012553734280731558298735980384053057550014362858593173451360370828337286625253294360434228134684916073904031524970265142193286813177202734677564531471448067408909156396478906700967873775933474628872397212237773638959856215462886826786427781650848156083747589419493346438781068044347643279598769290627848998778811490547448473162400629565773425352505492471106664282805177283279658759218632709471265759136959379311672101254330700363793271268547295996759559000538928294023466641792363569762611144791433136868120452373454509205667297919653303632358677708845305727076053645565670482637653139204584109014448891060291307715066961361630477408344321360122605790245859459481827069387035121182092149865786251109381165458127579256746021731616334484677770498346555715442911907531267208660759873986175629710497618873354089712435959699422398383017031727825546364843940330238213199639661870134008461347271882787355583075250014872980507431715313046767045652633505801705096782809654874145592667690817667682117258880567286944712681405814186883553153377231372746535153859581677751345601754673578840858218468197737995419134499132259231860157061516232910129044942488500980051339435429585921363330866100017145608535153390717841192472738541437742999903027085411861436624117738926447226562109084667959764911198988895800128236981347110360391287367676908734623823605774652347892000772760485137284061505439047377717542180111180448257443958289699048603163556424785682594127952306487208551094546000544920597113398834841667172203251666653919892980160887454653935223189982233150241743018265860133124205181711026626336001050929437551370463649454059074475120542383251223474024517342275514296200915184706526662053474499618037752317420551874899087045567857743575241740214626979510415188726110214016966610666309721600745887104494187374830931262207061216881483844997914364643312281725179446671479880461049453791160663066386214667347291682454424106978263131169805243073718221098307168193293237559778627813067433645727516810015501503152489736513651959338389388186135971339519446509423369133825984765714444012105439301792951260407895506210187129911928631661130682385741618934027249619028750865161652633173883063805079462227500486247215583950997305444968948244690058327403567582938124760279448273411670127865105347009883744770047256488443113119770209875116342100690178452850167963313077634883072277092486006125793066410852474851890736992069020478625292142988351472689051037695008513546915297081619580483331383155970676148108016676407895214675783999039346021557538023622780805075383749110699650192205438163769515393554726347340538639618798459084951832422181837449807620280019170420268662481291990799504531699656372228827909514692612379153030595245567078814450331489170290639307505534111102225256633147450641816314348850677244318431849691518707876509923844799118838585931471388192096970710873350086824637876347319433823365160291804977163442452658381697764563443754535169684517813813491587397096074853253352240978176881817611767792026744857837827198215313459865972823811290231877963502136269599149012722590964219340777037806829635739795191912419116436435828073832419142597673756848521428800747582907437848979018783861371552548608721521693489423950141757104892545143284117042834849876338203901490343154654734602081916663063444575118546450599362848156410304084809729160668147050492471243046004842728837881118561859199074879696583258291730629337261030179265285840182047895475244796320270706007682822613247128525427158834880319869080533412862722181315396640763357067574189794694820442954987224727308005160525814772935838040609867691588123835438776525096449949947037287009877347014010278261759330356780562262886688811797347973619377850491229855357249764918826544499423989689532410012592493794412707260970661601186397773107275981341383729380711297809155939883993375822465455068763015808917423121917265444144716278222442038879191201550162498811750167966164655552501590152240405074114304757082658660672617965731284877190845607967924519971050770163534631654196048793174936639563526895008945625857380367558074625545554601972348822043649307756829458554384294019973290105557542712816703014393677926741698479920133156526095536197469115018866508679367211866643151471024255457487669787790859578279529671878598676032082895882114219426494824018881217631562986054547748600211534821277698545118900520534016169840380848393396682201978890733375426499001342908670398110687470624052840712882536154182436378837928800963609685717421675009965224226928622964388320586041180608931604951666878191439450327146227212163514846979715947384262212383689956734446435941440516824190909238551009515895258338609059256275700002091408632383001634535880088546120262358300619224024155108096209889612033620798659891304729029895484305400112250166420304332545018194755126337833285981357721145344357144641076949943492210015538486703316137640638129722349261445078205183881179056079889063982904985060932257205592833934790739233110715263997402230608710837953493704300635487427717493844048899918656393140073696054744241094552070618085149056689356432599046672086680117243877175829536801218931939790684876955548588385730097862637149943504698757039820151058989152707468463740431714751039804430626769909476939827800785318901618676243657112777470265201272074007386002107284510042802793828600612276809584658130281414676241027610261352183086203265379771157216177425331527610234266951760194684130895383072907659729616309421729884542101617534996802870536389368323189026317864503410833058506132380640294504954646789567052622642664708429968355590677303592633117864576235626658481945949652033293125120706685934068554222215064317887142889543591394500244524872842368027478080933511850734094583844091518890602283431208723823830661341085975940914351928576522539126181106578611007165129430601692860600643088198739142572022473303389739356504891276740945633860676244606229349921448622329527188848653787063886705826117025153762594037490652974874154120538058182434853618367991941981038379651953877905409149812268152942122693591131078843624180890437744742759731829949501898402680448502488709902158078545367803575385423990356275862742061132359247592009638363219547122204425682333457504402649347270728813068651387963774821544824288400449268014177584795355581754361283486973345548381425660055241246177770771676217805968714383788066811317067656779675766016280007061829097896716019251028262994106323172288812494112817802689451540085829478682232848743357168805977443141221222014957106577725609695637336135062476527060921692931629679820481307765765938515861350597506604479518173847444138895135478008801306443845950942409193356089472539146919523058457209754575389324378119477598500813834448960819647311599163771244649738767130353860234293970810830846493725632827282405144677722993032167008194619921186684690227388515253536840315717645358840413415556838553678574303117294592888683848027507876664142432379839481650247371610793421802699486542549786121204640459194937312515079393929343478193237224210584868907320300346058220271716415063598593436850160793941828775806813316914885425737696724949476325713165565115208004166058831854210537497012059046399401386961184195813116835394008131506307330142378107602533155482892974310323581269169500620448285881030966793480956541801939629310309887962588297691445559724168418109461664461052128180593780952086681648348319562724637868430881593465796098926968809673462113109876741525932156113409417910635898956805728562821572340095760245935493390385049435355242809489831608434496245790503427651120972779545864897911942625876597588965776136165916624660344018761515428621814119232899268190468660343383472244071137404851007365017614430734618852677736651399264021261938201721833074371693679442935959892550383473958444072378421551197397196805638593139616426016447091482656825686868860711671743412365372395899492286565670558049718898913536209821206971614979652923236038237053938771018084250234548673761879724604690110588077412594714530025822298194210455998077770034204592756561629355526750292588695521109697299426207770163590139237824427478956616228236989235535692925009875625839633392018716047154638535721494630095873728946989652996784957084117194247867443123559175832112061096605368724410342424139684107679198617961300055936024570317746211616653946919411510178787484692379071740715732868506090699646960321564625343207651680753263560879444724471679683633106031125776968489356440569407722468930198205809233486598218812587672325041040547709204282507171790897983892414020025014168241835026243691381776244159995141894660324715713827020073811960791053483443839251501534325089465916675582728061855593794139451958916585344596348370514115695348632442783718544804808962596385359925925022864243464056147649187914952958478872779631189023109743188843892783246567917697767211810300845201727183757090953782704930809136400587047837615428441118695177977433541029774127001380618065473481569310390433769867328467036452040651576051408880999289472484938603405105930911180084441083984880862961571678561333935643039740189879800974412813950869620134879314079785658523599660218915232586393914395023480001814679556524861564865514638715560085147908203593444022369006806983566454677051421801015511343807254356324508582192039273095201223751562945380117558466789149540729361509268702397723855050789279910444131275086938301679374459730496093853291094220989604181895292301053213055416724882607073165695655381666930674284965813395432374466276923951253730663783249828149983433536602812855225185173693835721256390910091208164804627043666753181021683944304467756235579250066460836475486484625568614893922018220151320764339483557116325600468689292857287499635079439449376135708634041787869488177805293812158306229393482152722421664299954234872021274763823131113585613784146691226390149010067722446971945204650667407655800967851861493783072175483872058420254942724322961554985012152223116288591747487748464746609141008506219354809144720987635126064942109090030842897031502597099181801140167303723921791920193859119683929071217194509501014337410409437004117852269297400266480875293290438541376097553084596053135819909563095901228628107833118139517177775292353106396635670355378928536445307085742203260239188434969146762968602310228998101688591396595100421786325407096959964489905983187705954761295416029704989650484361887560697158106963717021386394324945004434096025308486532650512941253433096100747736383262542813194400782521523200097086873759717514455895937650992242978269393069206132747937107222448186899186889583782688458852079345946329036053585635681879939737767415365460790894347443106531096695155741341395409844672620740218128995874610942102775865838488509736316167686238245211075144471035465310806622872369630640995166871629724409368088954278054011808166162529887631699709688206096037217592527646333083261321382816921387304036704055260981791647818373487094401765169578929079563548310491638158630776445923002605110609494238025493996553490526745470908354836268616068660674255670474874646686723481198537599074375304448075649998621811867736373340029648161337880668660645528437758063188918934234516935206484962714724351748552039583324703148454995275737257676515536181914587605101739055122035756094824124450540014384759212426820880359058745478457839739576228840476662886532918210105167650803503206321878905402134329433580874088118862009635513138454840066690438418480025949078259875176380981942359570434567025970874031573209098438896821678701515104295267125376801414966413367275483896769453936466925164891756381815524798054300729492511347203259245477275988220103737739216880674559566464754892743960541742454179042440516461124566711221383123425510462549977202863687602821508007202422451213659082019340702903961214881184935431937967782416667707215123473132890713060993667352464918398475742231738256480994554677200218977215828831404715480779845979282872966010312491045333697151270974977312342070912241877752880582999554289293312137536447581426064355715548846437709459895926961453849104952642978148376432696280758602070554602637471227221194982789381968012519116261249501679560967190496314446134381640805292876191475624021823316715893630071716860510228162317027032426292298754907695443157559996103822237234386658824676495609019386916126266173626428744031951850784494716114095875707057660752330646951742640847930426262133108154323687773972384495725630470316934354756582052837568452225841902126256632787910955476622876009907363169133695182020688354751740287901589160480991009247009016195184901793539988311358333295687293781263020257177543210227097528944204818813429602898093273827317012243065082704419456602713001704632567971601888799873900425336347122333371752427925371577148023369701694481108644494142573292435309104422595192810545982043881225317965143262995100161143167605432158219204123438081562645306609580138057184220451976416941449362318558703822470115151304139769062837339149435490677789322460983913905212959208162395112414897465717807826318479855105459814354158974974369249322501147002072889604988701494275759991876988299465313740962392180040569621800343890933440008593287496438893884757739471163723829595916709613761968876983666071269081872485288203047851278438866313842867157516320100729025534778896114929887817565104811093788590140172071801778910763967146554051751520156987006231195059172473414044927917415672019051148438573369659362469304552484642597891712139939494228559383936878425501169729004535803719151735127947129591517255419473437198235215698262624440919968909053782383443199190259454213063732743047187267080827474157875189717528154816592191535941293866410551075755110874389114779173951855320608957048322053231666752380701835020402492453242978353315381977018673765308029245149876541489565320468972249836068176791867355242537474776553799663814642157260473087336809164666564800876092769148176043563667854633305877477545482940629484322945086004949434671244980939154690855503185668050498091258958080651542669856133428466532804123103366766343532582337984943832992481335508128828403968091240052164253280850089950926641675446440906586854620267697170540336902990613330611584352913468645515813270381967520546302143607836064849694259104639928575482522521227521289672968419389383961125079217260342176244543743804635494926536910653066611508680387936128394462816963081800911539355198532330813001877620051478609892181863144160615290869057649519949610950866879214114446021171429146409608405041021343951966084514953222686439269748712657308320664045773551851545102183569185121290402390417885869240377743728132077414525493412015481954478364650734314514463948718986832237242988048403565606474169941906655109221147782210641403090259663785281652781731677357570203942076329441647771175979757684686242567148596813060441803161262754516968839049910176761492907548167894516939002610770677585531770184638078371577287104369074097137674101446552122934046874145998040056774486925204710893291396925172339778328672617149838740494861445857750380251858557844912612236325861980122653550439646746349084137685462307981342938396727572873352294965200035054900812958434495539998222981901112993932272221933401048029517377565946028919246581523826974663398021532835421394980788841341127697247328217604472177558805291986824706179666921532700502324142487905359235607710438147948939084964824651704591622595957110352416131977039814699088501791837248966174990107219608491794588963757761051639800310284269538495636443265639208724049111849898687658237704476098211979095222301922510907675895479649744627307814808192431648063764638491752195370072511206700000431513837456791737455076605444412063042703917715487775930991709884338629228833423722191174005784404404997701223695875233279968840884917175137978392629800397711442428283145993642864958673554609858906472338017218703816698349796558608381515994788928898075684778588366234927432231718653230999347341199788544524203293800857731866675987801750784368936888341311499433244872954334405846406164393840633182392656030812900363737880220646870214833782982907433764482056778270306647392514502264251359202856338253973297754507159028993758702287055325380809712810774282885945995089943981792744302580881775740717595904569320089460635443275639926909141664385681842106496876317665344290778640536050630737519501032112492010071595381810905154962024357922086463452144662216528904586728029020750215431400169341802949904694401093604534649781529674865928388405357136374165783182868972120586276263656113939371857084467494024196804174488211145767946110858234085639451426776474155450773158696868089245943464645719603007545105584228851923863115625795672429634258862201017219245026823281683345855408183589603619683468100754650785112751344827041708481449479750205250452835875854163738161806386832556840681048022717884076721728786722593614791165786784697849122352006914384259986723105240466901320796244266913405179389006113111969667758410572150440815057306547501958156260666486278161945373296578636960524083378875964585373930979873834290041486066200630851114064145021779730544078447795225499377466935778304397389915516464645411855357161860023368023465620718792713317636903918857173780138902040611012525244045195818038153173831703016922389547295957471622122115796980619603559979373723170899937649765903071429338978538293473442232852053031730827412039866985853297878012428048492802863213867609603373406837436537067839016000501709270384200596160405537188623979349815781237672388714133442964894058419903275462346936555776345807035887412303669228860757245755095516723336661573352694236811520562196357601810239048581822754987649519155793475236147317405634445712282727461346803639164507855089837376807187645899905702421797704798403787257236440097299094449798684533779364258428188585419528785176998742107866039852416401820213863721885310369710816169592672783617868824608076143481501817834357054737926681567352915642799615010305322920618291688374477953841181545985173135984660700488446834366125471221090513126507564270447169584649649315186952464626062196309692511709406480766501954547189336870179832404788279217753399120952951504148376983398338655871552939829672294232072820071577158251956399734445468737187090782035737226399693423962886434778327021475826803198473397655586999893883376094871929146223165062051418243728425260771097705917465080684009581247217756815812204804764562327499918391678605164318827490572742708068923889667506540628615454565776061990428023930767521052223125096569942667528039483973916557496249971469513554015964992229468080194957095639265290787538611510510865986466357805851679350069028334788222132167828740783798976393937052560638547109050980197053084998056677514388035226663469601900388830306152303782290673538243972135986458515070223144476341592495813839539025902466767543301509563965457683746128337679375505496948801463741836972556057685708617882167735237146742504254322113062868782937879923274197244692888819185474666286384035354886766722491477502299483134420049205906424456980935218861914929451819600532425071732609727983555348799610774149681909970143240472706871221044407577338775114997006916278087851933289169862112765156996581210061936558866481315245994316481486710385953947900535350586889960857905138891004499481133101303765306988345398726335491078969514843998728058269251710303773187404630606649827461836639196424111637590242193241068628373757191456560120241968462191078205583157691732557215665591125308214315585771482281204682620302571667595411947668968560876789231485803317440510949388085057716489794286046428457819388904078322565431129762398017820329409984428553172887168007471800985169480326698852368443112991643455127127960849144335996204225984195378244004575505484375962613783637726143483887226143958146546501310695071064791612193488238972674094313848870880728053423234247332008595714029637445573321181401019092612154244515929529631829389359117136505340649597183620795835119264705248932948365677949952945057918549688211100044291226038772288024826800294159794923460661908126939587482543831563307320514695128147376244008501147146929964174228808454588607105455166113200380412888662861352301238752406348313451597292528510265836913264251360959582533400372926967938161135196008957194246168918228211911319310178696940230613294671210519446125972095917557908764171810663497720142153785616277046976073043222834858339843819059420933443093244127341159244711337864527154612175225638733380249382089033146224312140445121313017443750648448297533054447713566833150546705339720809078164368643087487117999759383249774816089950661310022226534567094705298565304516715241975056886704886516158048070036852181490054897764853072450008214126883286938226130117847873223133677206588195121561081248163374980665113808265643764775579549975846018861143699886298632485042098067980926655763569600767227761751044166433465642351645620935165665157275989989371356418165492245423035233208537510454100602707217857572814668320811975027913145496610187910359319178369526117181992256603733932066443883571614965662893307642319770284807231513490734935623219548037227047823462016119972168203457158601297834663880874215944502625427789699559644358901417337548107670563731382690228763390713382734635707136531553235952764191298224907612165740116303512751887790310942688085659488107231887517535619628898721547822163465162072704286705694264396635542866859889164313515148679947944306736628965091928031122374872637179270006159274611729783887690707623205381740751231305904024227762660004548733252121911630167442579902456694408720938423258039534059850621737662755252360847280484746259886043412248606511786895254608550812464355274684620859005434637720160427119140854658064012530444769562379816039305204513255950526162968092448314997834518524513408183669210103684175896543543259149262426522285242961361215287822034552575705983168881342546066639047142302325227577715445717589084745534973089588726847084414363341127081860864620215859098111461126271272980658585553570672354010819942126385178734846988355253098372644786536151439065258337604177625467359268473767746245120714366917711025331667570351826229490228476260691183773685111541007503327531215668835207317452906871494450002649120637373202737488054709746397040499386082111296251186955115923584458276654772047477273370287964156463650919713870917307874498520012258170118652077633933846225219089017347180479585590289279363880366576850810044467807425900343624965633909785520041205939735911260177805990827394191619582924930773584474853432561585546871377592509928496813782569214874853240360809441703621245353916080904517217365759083981159416424208846237535985949386946690901435920829133641265592582573027317111971184476974464320986317853249771642768442954652324300360509350131768166569859471839198815172667387965612394286970310563206075757556373889391468090812189615458248253164767613937364857222997685389480677636544886806591036482064721225070992700888221940706798187196622101248216285941524475275444242321377331766321098673839476811508102521109408267967955097395106004629671833095411556482520196935400896523627075540057784645213822703922589222133498761510089174213118086922458984678915690110186223529242183708463277849087759774512499254463320321039114952179393300437559655769055138619553313956115036055194892342482816762843754424301907600407838106971053290389367245073997311545983033072257848339402529842696641022083181040736557225689750812523558364349875767228355409916005372170957036338840729169300759628901386788847932293540908018473161283160676336820467032522443160964766553032040457121275332528039428136464260091391519175290455996269211760313786073902594519496546388301933156915002664300284823842204238641049569171096569571636737478867840749708958308643266380212563902927009520241571494949435599845960692238456354166489526740961112266258894465623377009212650489782466101161170075425907029485635308969940242513412132689121273564326996189812349765255241925172163222799921217022796939410438620464201303658599489314332961518735876085860705937933385241661354890965751758146460917250226020239471458540851145403289132404692604585605678887747451385630264533254720835681671880296411172857259227264132666561629409423876870231266082324663594048822111307170838730467984493061655143452311348668874625327767130466901549671128248508850176610563223043747916098055169837189600262575765356175026091234902107331159734815547256733672679094769452383241045799815962780592389454458809052207007217500770236545365677011334172914002199387613229978262800665140704442015357357598123374462898460370693954080843229298477070599144915672181842656146430391615526030620324391082206723398185676482191153282734656061369660863088533171672447895319032516531035526439028441989137747308587886993469737834878954501906458021071684852732154616091521863315641145204434094201819983858326524068467348933818195024236079079613592207383775337398826259877426449211268935961049718522181836923360799237683147055158134430885732381860743791541807045559746457569841601125738444868824797020701692361798425728212075101516284387495548699179380210342774655194824950981129515269606063877426291415957470122242512947586786968295266711293355168956357897768020725418770993477387942448124178060261842307658434349193175532722685033765117294101280334010157822964611613942863754269885800247110236788647047164013584018553935786827924754267532682494851240397287717701905150236905586136070189281166105374585079073786947679761971491258700120158072780161605059640360668842636023143768985733350620074706791436178958846720515262668588349583258520961047988896775966721624918124625913344983662415235215403397755588542187036618001005550057992961761744205878625908517958681066050187004561724548436258543450895883484212837970202002475189528371016478675100484880994426930866362154636694778329732820278408600468597074302364360627430972430893909488422235004364780630493169800897913748293888306475497765910918307462176126406861932876418850541739747031215380248838226501457746155514833906193869289626666323066090943331037445466225293787371704098278663335899255942495058004562013018906097391232438173299146569352417361299006801785898211670836731041367451134029438421851366627364346378109066365012849127220063876900243455677157913881742924461557802357123890721363873366765075423107164887904614892341201327517432441403349937400536823604536222513411950961808161991682635370483031402612029272391938762831671586193888037212648868451597675006502287421866017233216242148971550939262846493917021050353534670372831551987753309550985963933961075770385695515785110995012453959152076104950659091210321419062711574656274178360750902818034796144493783464686309985535788855731976412021235993660560577354010286549985706099539813278449575582576444713986816514875374917469569897227467723650505383307034775422244216380117865691729440581487275023140530941467434381424927266383712583494727648298819209542214222919615757108156594634485065562209019144744628926855055376648637838873688113768312368918389923846146376143709547287903793335918777820331407790726634632705143911162029382247921559705073973540858642114304557188562501932280761215698122218125417860535490736128043476044935443422831737830785006293528961531179110375616564894632927240059914389188369161295116263980862269763875445056449234446004106108443819834211795941319719652734928783571048652578363275023835297914025868177730719447160795176264823101899736668040374896948634665971983016600498041218243320663810906204353961008661812980325091457425834204271779796816634831825483951552120425177032949287842240090603544928291498466176857786320360517313269411317020350637695621583312057043575918221523155239959515117862309352974879842024001593389053798055679367976150216426742951775203875262724362048890153001784466706806296308315241689177031417948020331191620572579383612618147200444922455900393050132036845799000250342855481227828837047026140806750291426738535895713716127729395721804247834773150658354749056350130809253212443661215043961952002745630400147452654021435500239767829416452971029482936308928462155290250188475843103970339380521300492126547734377962650692303467713364265900341960690932349235519931458408897751734990653959163855797691769846375548002189692907126855768153542430980261122591384813546779247701920722831300218955485510901264853057388220902695818540642522975369446591239152644430072191204032106751282449797980576408211593038031804429630759080829559227185501712129690026446589327788708340404203674254111034896431976628865941745064745771211945232481279966710679740018334986496421239440675080820067427601701029874617666348374084726256055950349991219841666416244675730767885102814565580906134124201033233217224032319159741907669409886237404267916187798430185653328186258354462249588977905950159200617760396369998219718211274953345077736649306565742092505000290172728545277702602789461161249957284236971886328435479971233084883500229403072898608414772852428785827734153501494593630565536634673515313159850513382867289518795582700403627910501717520084852049047933559046518707307368354053781876249819932552910694451702746529071420025503220859156136504021425291877024876900432805781669585343377983063422972011877411398457978634176564347775650489372428936805326964051972032798821123414809681104411978428374552801369435317522246617785985840879504624898865307751661673236626656416677280909842438563755999408350571595666902906233314689728654863963880053585571460598700379316289237327877013091368093899677250707230541965996770844329623471476322752059103655664279652841450233225849968521003366106648481814270683976608514303308243520828734240243383102029052055010337969519745087927296527875665378911993191383736085569785062629583987561053802813410448391356809683263527755493055493182899014537173607551740585797125028985229154757752243261124261283412548659896945942623578420031412416283481400518984156130168180523896226199807936935044370333205221962094379530853481514658820668851798070118011173038016766539229766531253281400908742409635648395647675586196252978148316654922518790412337142619373065471410164934002444322103392676389788571354033096126177583376023171651261183747546571424656360156289558916016412251070733691095029794745197903653030688855640859935750980098067093941679694550271431471230641010520067416312015854818431743789904766985841241929168603777013927887840226503697348658246416999742396922385750583733470427160783994114897138725206257455496641074189543153169846963093642839324158939964795758072793382278074295141918817535233447318160593046773526276391525711578114438469563657777523078134777494738608480733923729476399445106838604114726915992404011918007168250603082892690167144206767648598688980300103483823036038645443385539419357909491353315806137225603642654682431453011223646396591462125000828097575486642083301855728666779727081885322170566705356790375660992145552626286815147223729044411083840146710905018350983940563033392634788598081351687588149836430988375885666608323062529569901645005469765308960020434982301868971883772330913489515546019818232511718276327468762656196919874238203272671775807958807694953042037657174552685964060708628305564434712896237956002626090890052588284907001011488086105770006579260091780616251287009371516941067064782331441584071105527612056561618735411744967809844296134457569399776210153529287582531618013040804528873962058199408422907979545013094656173163917543756527739790296652219140130586677341559565262786423707206450606671090233490295844297605230891735018650962806403132360742338670565184468427786081890592483555945149848654481153244760024440647544775626776441817418017630974897835606775136687806836488423301261996255174781378238111338807556697914173920090932153997432252926951933188465927586983054422469253578824074262773887041142183964956288652478814795295861343709326881710500798114104502095471663642272526747583910306348457899994290846808306592355661909689735837353106470970024640830725664625303925216792202521961541204389725785346790377490899465002681620511521293478368116558075139187668688336232085763197410237753399308441159199230087491372293106866614513878445184411971764572186058902163607090434354840607279753355853488320053529849890207683862908703886259400074395683999981605013711036474188369844400645326198926532617733503951549046806490440671862341533935687616459230563509876806497068199120589638280450990010768574262885159781889981817049182331676899751877327998162518180716946757145595845394261956340844565160771671469505212616189659533372471801602851253701110973165332555645784730632683301580601680064617225848758459648026637975095109971964548625183241109643957614251442390949582541031589688706263945522291152988335025311881804578069211699766681410615589026748215868321363799104924108686652925243060298888049011677057569838683464410857205193680103042646682656040632877737575646092973909117957686029835556151336563598533856797852285175817265669902013974112927437318297750072483472145850084800687755195146430050500106455436040941875768688947165459677938192093855598674234719682183687726257362246975975206318901246599854913769388297880722664630945139726608894078015846641127496686856782782443371074959126112788249677774276198048547698507203907657547308696751618328531464188688117172682307538350579163457985286642976914472721336966789754835216942115052595585457318898023941306453044955034630896493658573834101800987387469221926214276162192141016831709102648125824545040515887001087635359396057228105012796349802138841298676499852187267792497631752731045188468882753937641014385752640031048245413067668860956590318177059974676371137949345887837277100178943767118502085722623938823087709827122212838899982511422354095008636163435207848872048840145625634279345701477668079182735830572311502126283326961650800330684312889225973592374507444850214907040578606620721237959930329621831622995196255893070955638371268242735065492445435799452577899786907187560646101501087844866138822612725091277144280227472461616325303529709524691384310152640879773338897913200453298052397291844005775471095098739214156117812862321958377484563086247240701712029217945310822547600792507449816884496552232873074233054563482289831488203399012278621342200675291673369078638344588483774349243698598899694444150095096305920515406972618101285592032549289192711100261276326577647791415192171154805451718613829034021358716935479175630755227856207253153897145420393597019212032337122552453302796095820977373284823839557267286424635347885276298567509128199296466000803861106497579673194974230509749514997500052327900952033497217984642672646311500164669024985068825515439291883025879466661412876089374100103754314769010658667011831553120960199650957764801971424889480440407645699163646544175013636160982950341454184414126890015807891868522763743175016033039680976760738960255037240378123378560003471108541905357314952268860829553193434676897591661309802099998587356452900007656050214714602658416663056018334163680943170545061828353828651760598578025009520673668388082610221461795555853875129871205204891252913798462814589458350815954654941310158568905822431372287864303290768274276915121557878049810271558829080511293987330886757328455286376816171920169460198562018568729337845433988652084598165168908612330348036831502347256222914222534782848072639083041246976738580076790104028139025412941198376829942647229873090944110254077402480032775152866384857156572855808363760680081858909955012432702584158760358936436705794839459600868923619121520490023343923877184099286508905984256078902510786231804167158076883108108329949535559614002942105263170999063711261025800533075672350812648573828480731298162709621267118151907709827321073839089082180731715985818903490547961803506970554712686016208094347547032458895512305587133025153641482860318023903450837777583305320958711667991765676859905288136534023637435654521864759518268590534104071827733351972251103808667015340813098438212832940322828931085346731289148989636990612221790156274063356175251906114610954679140078227580055455829889048365903064333088988140373261115951382693106597424825414693605049638187640538460543923228227932020311335559464651990333238857619940505932337527255029918827694196368815687372327920065697173740479245519544303311692893618805494183205133590634791769589973022059176968079821200581117486883167812449039855474241978781529341686941699632928135345714873435879271558375891948416488287945205759795165543512021759369964800317961657710088049909685230030764254411685910116796843076385934916139481530448435958918318339927518778083404033686660952318508348435433537658902044106309315126862984239855114915491682758042914473803446578823552927970572973405109123189528454433253392884422592346188875293919653682189498974811065808399792959566914156942267917137165847994764022889318807231109690356246453058382054898758436129289193814399223438140167267791146965070734047641350597199477229003117665549476433883560262943021962620472205970931793932367422589701591944938186950579962839018369397549650657883483633614985020359606644382835489171182541194797975507101872188577180971536363795138788197767130130854043921429530505050122202846742009057062386868765058088593729458334274804291925950291970195263888438201385014879932714051915125456143565035978546723752873475358325365592295707095893034612962930686358264770585576098124435326295513759420964658701793216351701784046813411526108994615577840333057309400037740419942569314830510303394378376713690285071437057083522869808647706466957017541619205584187321444761934406360840594325170680274414237592240921275754594273578803936682534078995634639516558982084756524300990933381235893437734576104820319759434619437757200300114109785903561340377442635358698623379242586421609422485407326766750475754611207455903423804735532819381771502052728187436973496793378257204862196577180990254408620178574346919540929063427801213331183715299378691099823382506208881920743974231837733696317208063793563487788199644781168719072179924197115760705453836517406027597113423658387450647360559271671916997584340187968554451347021666179821164828684506674583052529640926782889526443925170296390987382515846878025955113760713539242357456548488027587927337197609492827512384340751251439361565384310134641199977413726573158520495074666425221292133149091034192575854251783560341664987682549568154772496360939045966588968747479999040610242351190968517965246449001185247468770747612429317036113364565196590317127830062092911127146794153898991182833727157011482458264942717746584926015015041112265687267385003608340581731740809382750188177788074517665430225778808965410648293008542293037882139701248462751101320770362206147842959235293837995338112127225604332279216114578406412798404736648459724861468145074480307937569166321680031728033930416322832962651850890698841699581241510240153805452693633152240437116460337417027989574432766868700110284672637588158722779650415817359505351472406323084989020274607770457545914558988341330485558429110431997551409338405961070829490871296367974664373772325154033992632925883198016361516273917645378490183342199962985162946942112067963212914399337125363500028992850338609039456315199753365192918959723087954641452420535074397532162252951078062937140677217158594229495636419254488101952769679182330464048211117332533484758524934897507052255399588003206596087437121600162690284994860996845236731278957383909916614297752635972248439196825201713418603786056625334543572581051940924012245263076359036359790146770123898647363229553067774225884457085842463450923860771626756777111265143962740126060202464411622661532089783539789779164299222573267464261828785486926483765303274701714085294017314319827598994115772461930138070125394597294511675091480589547520251780312516659002763531547655494638560722928950750189879918196367832501772647463853891993812311886833433424568683982760459090009056912779160212520770128527982716693995983587004621237984506208236147470579646921278491113429357473688392803081738672960293417949113938464150558753697953222225806664067033024514717275479033938940005045996128476898222468169220759257565732379536689431989886521620360140673813047502090752132140907617532978878291935479466841582959060500917380383354027483700383205593802577959299902198488992126637432276798903536406649179982509754369891805255238422618342679850069388700741209696433658443371476988175924309373208485327501752739839870499714666077527014173065014334124162217376058650037740690136550656571814991484968965604127029382093836331815790512107334002167447179644384725632454018782472459325013923412598856681271425372794939697135757098340948964572233671536553082005944451293022181278819685774721184618618004167852357841072221134478059263224478151211386853964846411552396102396392749054459968494809748627932785128526643388535831446456177570596678804988711823152056631935057749172304793721503307026242683929485864056557205230162305659383333113996220058121066222024806520824003514727398904446681386852991720253150309663809401060974830649626797010358103891584394669825057289989218458890879337705728398713525487283149153917695201436328546218312802073571767580086252117251774899571069358765972735941686118426603904263124748924370254826732475452978700358035152645575032964291086307210308121976792384718184459149122325299946997914615846916262397434287221561273651900650648416625044067883849287652881517729137870420770666868280412780719122545818112058721234351757564256121095608298882727474048958548475612144153978787132898347059188523692167147861746266219495336348651256344711373225229634784585436271207377614031440825890680483990141708939607377974772871896445580843167442922723088756019291277015333146856234346826099033856573573071508699879889771557706950751603278499016430222956792979844888418349230582544087067398399662874786963543586014675421893753545158972574790573499499208541214886248277469409791786782930235332616206452808454290977999975501824608087734422152897257108293225519166917347450827347427264668887853520508955769224128197307716063733521405999523768555308193391370006038429643593601841026529244980796978331128233492011561174077281907909651078384040382574808205074380312611807876957253899564866911650072668713637820355923967311839352023046187546573842683035535836062160664887811021416499202790910046560653199838571230417996219040715329239069918786683337618075580915850574414546582767824871759380676398839001276209899837131529697337846184155882279309463786159631928331677447407791791702138452680638907016671840148526496202278464422132720109572385076059062531062653040831136867171953876408474945453247015195994239790085846505576242787790773323435149655866765321001205490128885010680376856306704221274714812112656910823807151383513777990015976716139278151746891660107665022632845935120609422965553214155772226977283964515934245955197397788802700608027922683428284350433770025036484061993842603342228983610925268703375658385382251837014976703900462772567243503580049018559270269993910332080891481860276683140520564441528308348209060719557108109602430644670596478869479075328525308836425384565713360690255673285396389645718662841851783648332488413689506441537482380852406402325930629423343846637102870240762113584740470169798302201528392483933025058408115300433291975612628642594817352339879942695831304770429986249935061396989273713869172194507097474818616284724284076295267224955752861239725053699189832257618567709487904198352707782239473190161093116345683151798379535047398198470682478143477568165512778283916555649454379676549157783626929548218330547586402087347809448070831285568551369935118152442725546547888580734892627018971357769134181027446933005841431070618495331779114020187146002045225680891981476314576894950251381018196910429841643295223238787370889671542766753836477591336523468118500013741695669263569015100100551884457773570128408434724317276933659874470610653168782174220758765545682317097322087232315515157406723997681027696600208973198059683016011006437743481199032603127149779344310053632394420690900024025234385634128707654254375964611890234398128874273270452027610460000409552792203917139064505924402286858932559780390768648278701934754628650564112901954077061397707023720208272869201429316014998956238167826209839777013833060879470577150177649558892909077357369122611697346281330542017543693240032638330099273538443913306828785216559934182465484396859698737214230433404513128240031584553793590485628193838526736201640592428944051505802444486637548101956553248614080257534777575205187445873063195118387456152405556185184674024012410739526356755044630427683309236564084940332774929663756038828766837869088696472565100267537584545375012814175255945748127225866105364834382626390029018276568379362808093985660806630820144853046659994794336658661560056413739164020728902296628346163216413693163292054736623108991631094672072080476102258827809027165990092937509272069113148727725918887579775947872604018047735109153341507561558786284929279961975076432472204201784104924472269300855017048213205176326687809672645856638402769297806886258386559413933841276947891107159803101263470659253621852167930593540013476293492190741739541725398984083418129968522381504944405197522034725114871553504644036794079035428549657155681289301971043107547878126687024683258555203973058924020765952907883301453802553022122118331970484441749565773425083460744464960100080748168721233086969673970992086214869107404116490928676386936684946771382941086127209858683852218039358091318346650133397846011845557935749407165708697767788190863392371918080288952782025225619100628253671061224695360915222657734449071779655549765937723571295557850217711395890969213110594534828574948945591692736935945277871786677599947523107234749343163243507941533396121938004449200743905577758100218013680231891687685495169415345442609677308076021038512210659799296107442566071912770827113952249172108393537781678201230729132680576864971129936362759718705349948529955726198034446897821093246665967739492109661169516183296271770641013433293074552158949458965258288807916061733307784909524772338449693129803040807948516297786347063046643008164987838649646629103002143747693665600712613256909368212412500837723425708747244122133078909466192417051853050313679579947707986420917576015508637190895782437288716268252073121632748593448489497937704729082142098129853736114961893791889740991758007618154187734499418014757312211952015327473029474329492218302075181963550636435983679524483470443617168859858738119232136895782764951853172944237888427350459670978419731279700678489773985437428704726952576668883014871532121680819277404016783730065764945488816864558404646964296339357914945326566446379557223195746525917493158420980732673599089588805262422388978761409060169309409036700803637430632780539068495610750011129793971885553700692482357125759942203524322789807917868720680869281545428259964510799447957612188279932041886071641424839195641575038886492459909760993408233311366655351156421611689184366129018771650040089924337059077334077054749803208452930384338596043426570023929087275674151702422062106876021811721011354109368771613721212136011304617364301390890981144391472679205782072035061336370542208257067943848523017364576648411685392075740376558395810371354384879092599633264668708188054404966944076531680979435232334317059252181689904004010452191403084539783753119464764619626765743827064459531311643829848465675765519788646110576705860392714307249996946587239179135340298770356471367870324824465664215740181902575575325823541074091444097313753992760062391083673103750589538948859618303476369419857039752207541488792652244651328764402930428519359161708932460187684350816668029172413604645237950860025366619576051917575337507806693035343601170736522069861407434383017895067782818630164061298768046062642161604393221341111765194489890532057675517980851659880184121421690237999081729159666923634910011408630925832668871186978060043725748650857074426131986257668447238084730726901025394646186268861383287136706556266463986697775388869682239794330027838969260115058397913984789319291506387595416557643091973215689177091970874703703141381594448463793262603663791848895588567077077978325968834826352867523826484493418178340173784895776100127662329552565997290070654923814115607009315124919751050794115285585201525130999007010689059649176643103547965923940023220668739498525994478860159004487075961339599188695747620784549372591136574249761738238918456520196051269125311660726525170974125211705267442128125807027765145282656150847677812334875855216572528290248164272261052601077844256312712418535842384125064699015625757882738656662633307313993422989524463412481033215885847460867667441532233192551616640833675460365500092417448374076729897477656183743850913641101119251920362036848665994851851321491320248790426301310486956686908066712832828705249599577026053503908732366335014102773431001410542439362362168140854864100668497341767856497123004156626092767370531513105130575088327025160033012804102881477721279562122002455856199489837181508766666508275236198695834039335408992027164834911837028592227585745441298713257752061529814121271656674585166106597253779958437409251230916780467296936756630841193344073135196493873659712271473969523407045237946611695199783701352632542448290997738324413975521949311669354553037144459497513125947346424923887780160882014604746210289021149532866818417612698213971602024125152350373525151140985981735238490283909868637554128064553099015704382406212147974131424116974095936260030918673301393576524385834909746190681733553349654259733956868072101775168483909712083329177810324644484268054921297002094835217021866656451006674500016078512174723624451608577858149229527650419081881743671985883666177691221348375649352386764772091393627486359674731447877891010940023119361572516108516966868271384603224624707640784150303176949797791418043769296022805680918943986066888248527921823955456971394048469230767914066986385003766279235005091774387065534988204847986421425898695114703386654152702646617451938499059216308582243246413689224580361650800283642586119487449542400323673926894603427588638450468141465818698301249207139994575350789039358627941915001855554081473160138165823899284032358749169102313072761978649099237064037269360437300606277995161195534065437997842170584568899101011857794665255563128825328022362670646710723846113719668531486037059749762197005235502053885070080429264032125044289200294929388040622902928324924373278553465648487752957402613235176801352513643513457249374938168181419856293205441269350041708822889754580905816025645189122311530482302079882192721553911259979291342113705392622055273776717036524978192195907108737763909297847547066670146206266423794690410257894091772467915482132293540204570048640399507414390253748547833938409880843765677481786089522519802988865095420531610311791668473336888091476114310857587196449624053959862810907210002969259622104522724873311614683974039664868305661532723334287710404212202723161740852211589488555020879641227768046952973423159518047803387963082537000493560418139058362785148347706302988970075083780777302534848645850737679026573778433655477716611544762548517957953748769608367626347407863342457731011074307719310806094700151267800332606519114181402580125044093530029685210697857449966217443465456684178132453987845939145853142305719591722871687916519675312455514737497624323849663663360788359215687987228718888130612733914186724756734458295021664526331400040291714193702997628431044554983872897197646232463319780424146657532715353013824960357975578975787083311141720627456396926319638131507709814484887610747568024445320756250430114392283795498701200634270948899803946807708832783021735167764474711720939469980732885551729130405607118521944148318230610070204308890201132715101395190380175967529249795800757508610218976114137052802102569483692895668693078278981319446837383344793144378820944188943544502651225785676591615912834536986635942972981782263697533459731378087505114499159230881952884086384809519810427945008641882447303800113363423549306635929937008837620574944457872395763950822858262826483059836358417036073199191808483741684848182901926853095186127346857077681058974855559513796665247591337970545883241590289233554825905313511935337481320050964805501215837693742048317366941739323112639048052434809645819043674482007413193137040509153984565686092244767679150527981968320025249557885608510084938310841315207757660402103728508557073512782646382646947379667925436013575045763486869622049321413902998677183077196234989930368806057176714050114340576808557249188969630180825096642692842546524200505102459384047341401383449314242074171178057282592542531402205972440507845829332665904450371533317768228967237570386154922553073123499378151029394115788737936623112773348475434404830487472963522083496208744939518683693456746097026893453583172377308670945414781116435660176518483571334980457255911315738981363592032786137870275371038105554248545598010451821555165799829747119478702444267561173148208453351682920657290704279301601747005272861985470146097824026265594008152432546559745621578748904100833242069470244989685002982940801624406461232318532914283882393639586341137650478114139410145544013425981595994726207338899371855228006520424074770444540804690903724297136471164376218166528680167487540685155207399208261268575638256015795745518159264427960377386266416300070598581766333633913671923860857428399110078220182195406925501492350872381016530175525075435374499218042861931451794680365751900603228035443042974026749319875272330266922491772769482973706235066734188957609070471873541230929766098037074259333038576536511512883445041674115675393523592954234804858594369394007838673858640963501788791101026722814177057134737956406422372392912329067461908296385116643258039695182217048040947248218093118184649251258199168723268434543043785997231519147977657765899424071326555999772817593380949214376588398796390779603205558777270779520029809308234138274443174978813698083776457832680983960564636872426048119871745919900849808684906703547625650930854890493316374491286251903347319477606962832611868293581211468878335688440282051484019596056984293324176075738445377610244367332511715015243414171770585077641747707174608790713621205420331813371749295444249328779374431487414034239184039996801173027434920095110345010766707507252745793360793356914117396483738533493490559383891164927764835571214651515458098320773292149522666981631556514802727573468171894469660143647110736810115757090096224467263135539978876829409540636789969955647007482774372699710642566151531134267302547341181425328104733862678506066458120378209079326759949044620508246084401975796837894880949230283223997192649118413230851624367217777688154713997645993529067399256894895563320360261432309585240260216640573757194611951681010247372575987889929500486666278724257094381833563513352982928452075189478731226615694410708214959252052439876484290057638579012887733715039760527064852379403070670590142736417334331554501466041509202461233755136495264532025282247657490551869733448934322192384959710502442144480884436774383443316076687713663953485879930100540555087208958756596749437797978839530872922071670006669804123541379950150182912707525734793201600072018547877360320760999196248274651054103895655790899594669788033686746709904283904367669698276707925962216487891110654066914695388571919089653257034380362901273944679838006479334933316065219652515510108920512794917047857398664891743094405746788330387378008102095439271227496001932610162389792664011522671553341495810672271742480294764523756811368589478833456501066566033439984979215280021832822277512130805597558769747925744808284450853783319672383628328315037223029674140533916916661265238690813364785231896272864860774868040848936431652092773167505935404032176247075378706528355348115387086014441475134204697250566082807869837596023616877413379986610865680843872037933894233233389837281378769148725109580307448837341197280522945131428399082258609207808973169631919364961684430700430643468763866217692537581001786283988787813218333937650034336089920224966192008890127845074322375422152047158584666303165870097144904661397694137450089342855591919918485783197894889750704062170645321238770820013142253467961517288323947110817687667221860459723623279958814063822015691913787058017325995177334343633111589697944522981169828429875988541753958476061043005955949180170486849001062916078326114306080408089271165977699298755454476744889822818410397213995578841674237438223893472798354622409423232347982330465713666908421022161570569594071107068463433935957045595389872753607738652767969567778111694384476433839223896032517494121442092263531692484666562948531095934138973311054253062782528606632247242993968258960297375005604384604618441491980415371033955762070467227332833463967404965670711978873127238226467580389072669312720206619396761652474769134468477288812940053123976508989732750111201538935379205394891750529115838152188080098092665524636542072202343278019225763959515082570810179305195741631617341401950544530921740844043111640966936740335491710282473598024680349940632288314684369852946979095400522039815093330690221893597994072088536494341142840745128996658966554342336244810646507445987901061611880232753937447024854705082122665457563825500192892968127272503434338190745178392850141738812088813170101929792038598044382569714665050682591804751807544850640105604686618091216318188975474973831553346984378421856326892627263125179188655933883618018441524730351178077381886268449331127116752746685553789972952622771828762532425891177057279366227788103155666728881002739304372828711486426092189134395887710086678879757105372734870947154665670145373934258742170284588713984421514062678503150928167618207325364474104293000792650981311946209498515246851482645491138037187394795669414242446970628894559884596019599600249211984696957666246468648677430720496488271948798298067440483615009131767278312868919042230389369898191331886967746972756029963599143633672354685307745590614400124606044335880735242725345583495829689896007305784539572334175545534880799639029507326706706219207012267074268308675189363239738721258033940913153398297855699060756421332398734583634920503037120506013807001988042940444980441910222841063884366890702493020287005688969611931441423101810612609048110533798421464251348882454355345779614749037205360522208023232583254605222303339119676757130977611682984740839807278665066384296162410690854014368831313922625002955023091347727823523350970119272898742959884405720801438682195969155321057940689326105099625134328976588852874606190301420857618724542129088427538933971510120425007418630085806043337221435602898877211035584845096617306718529295382248998158670670655119911200086135886589828175696998856285791172880165814140648458298982333154843185209569546928176637453247347942624008238011731120940964283422652613603943453327183227321356832739290144076113599310096007018806891435774229308919145188184950785254438134303381527020702206998061885368328325852804093528544000434145149556720600527092815996101773452952592004394849098021452281939930557888969742337697251217154434711961247519730453986353447868028131378839558924843151043607146549612740545196047002397744639746950257627963056918600106340430909886605250751306585139948124311673094891334092209124601295713687773392277550614785775018463393640306912860112407573034532150967642122832977269300902176094644016004120545269989870953222987271145932477313812311419697724991745840646508037171400413614805973539521526340974776554462690708294631458432730995277200473103612925111248863112862364592374305878992349385646300395458196256865579489406967275345934173829639079900875960848481397447390343677306180062964089976091742278753587561724634059758623508693870493901125698475161667216971033709076229801423431649599490210357348625471472478908860314516056146337755257873202449009920359884951625826528948886016987334080575599161019079124418463780829569853969459696120763189051500673655945857924951305691550780183128641584968694678979888219457731814821493079503323958021783386423853795674529550771648438961987136855436037244012957182637535333439747547903216422842042515912998803916462194135067035544800574593267172482915934016189275491901093210926787033923525283932299970949365421605483917107326559774618988402957055464730337889089980831061215198819830093233610230367582162296244042733525410487429686422780394233101577682926880238189807033409737071483937080823348368160672823476962721597742140365157454900100733847108826283923022386287091258862690006826323120263129335548708547582424016442325722110145130768772108545109709350770135862613178210440423700364703979533982518653199431952665839949852842377012928560475744595018064850411618977995614875786449581601547713970564641705188654960878861239866267446077710349588455357415273249206334887941338539031295599600339485717365413838030862624736657265152971318053404934948384517901237511489955650101276224170843437472181675189863163774982180695530051891857291015921387652417741130994033482797526899953461498241601965758106693203903224553527580003902422298962095105684415380558288821256696942586154040073605578770520780253379519915854799966634453071530938361371159315091338065207203159117458762268061221350316842752962554688375188523050762318720734788213071468750061422748771603613073776749230940877895727679017361221964314444771229886476244921479343124396661241167832444793349038867816530921190251281815303265983550762505003649860144613000829566279884055698088135695711937242572620974224796866372170313955760114480680421833420323277313577188547287420348224343572191573875898010037573154990835345280842977430926322316870903126387019402716996140312601389345488853755133360444392726839430010866775014685108494774355731496178540465339592527866601226658535809287739098530556276716673236553016439673539676082078052796210873156599302891669276812580060854391078481289772470486910023748528252582866657403841759547315310036993345653572709785433067674089340657211308475655577499566022436511815854264689368652106079847379766701396450336309922768529223532392368296649477362413312224349486791693527866190849687394080337565986091851626031228452039304466506629658677012769647074879280826864953261362060767127233522949901670770187824704083680210555678191664970745173622434804278795192832023652510020692942962258829426112230094980997401052212783697532484151019666390230921885260338608626001679460554660209352836383714634570671310229699908644611679889902889651772543399279217345273738909047601658678849415069821989656970343276864122544816753856748009052822455730842900244215694190494767421964695882722163811279679783198530685579681941329776377672995719557743001682099236477197136522277199776422926768742953173670326996668148810891638651150563284351478977804773783300695805747323736796038218393915584850687008655042464963820942598052351803197098539957672855106709903201734135378648225889869959071882987075986909750668981855265188208485698032144438314959191194516762925218872241495520837214458338806017226107341946354812032219455878360565275154129033261362206000842895923035948254365531041084420305885491856300175318583913125811901266617481585083415708407142115734170504836189618034837270160542150800158934480270650403593664641903885610082224701831501762756906645009102916678823215610326911141622028062386230279003458595118946548238516048377463985441714767440541076997550091160110987838990208028582349596161123383735034383182587272676575786725908380300032528435591725364029883233495937794670089261130053021301903661947052757186264443589510440268441939286828763697832475331692554852949596416779140468415295131435638812601987017450469627258846252553525551330162838944535652383281593234312195122902317404624801544299446618238277423410206234983095773790861057301777970279179208482818935168022164642373713763105205520016168934747576504892177391997491957406491944937479750439101003967163358977322547472844662522688688372850103558016414025197073536000168842883836143795291068203487225148282583139406543808886648812138928336227638512365555277340461029763949511127704069086192947707007072377322969839957474073503688162059227889230862007024770107410820136690729459294420915143865974508835823258579588023449535001788542093183607662109222600842019461809035998258918547414011377330064481647147929932260401729906462168447066017021023730827090440797616212227283913126755998163734049377291038540755070339795843253737446460342185637239289647535748755327109843886763227807044163226188262781762325787718039636154496991044939147340358272142680189496692338929924655806097966871649832573175682362168699195771217912946273457438088161439015270623442971012376320324696308395309452108304673913540357033632830537250404621864749494823909026165475860837330539385211690235118932057428594444035969616284778871535613120150471990054228743168701452773096325301561124702068849748620555633384924023710389964756425823151798353088699613470200640438489044785293853285006666706006367223674668439366830779294801778890242163361157418418770883877973576451764114731830473196616801150933008523656436610919181315196794863689217733961806112879863226647498789468763735558934517297668800719097733869878481761758746485226825573332061685054399879887708228071319410784395318478259028519991287059974950973283831646389734672113981543585908839792562201566823048905523464542254867405730997833968094248368579332940740509256448561564460509096317776142224918347686855311426750069703654100750690502629882809393768592092456570890686939145681148912824119430938802796609760855650588179722919604620248275229710654375866392965805883442641060130567659618639291200740687105884968282234502859049070999036318657302965915553274929637146124586798335998355064465022797692806644160917242550030194020984089661834862461068418762577824893791755553862415361685146364677401927499106360903640257575670446982103343923006843241051167377172922239333752555696310254604149794158511519316144397605729646459579208856395576514383687903990431820335546076329999853334284574751032182972959482409680243804498362235294369379157072649076359050552858016958216583860751879655954834603854600082870340453224893250049361406853208493535867791828520650234072655749360770429529401581503871593423128744015587395115510388258094861495608501751181214941187637924932417453768519170233514786339615811193703150926164301058339453150374942958280018191831457211072552212857699028300281401535044350044940831670562152572462756114555423079838806063843776775745659576558293375032020406319377404380486254721505012186231749783708948547105909559003483348468206631984757484565715383608672631567194532829688764060132084282992387917209429780109169394350491346507592213481565682577834969439407573146703718923898800476247099051230685815352105767466946742767216745122065205131885896384459336690496500068054663143056459887775787344699525626701628202130800438387826785240779416805270183688863202187710664660609763573247109775802590025072560713743157179360565078011227236165648210656674026701352822741538858041662820888252392526258124822520412444978612183273806769366278663647623865677533362216749115639631765415228203279812248773771880013491657581274686697398416148347154339400774732454461330697484845751806064211921159963567283637163161222521034629880826356677591340815636584117506224077348891147327291129415391136756605044005656650917853831466862635505702239699530144076109954333825350690357484026006153839961382935544398386810943593204799335678088726357731397322656185469462168239174252129759462294833364946449927147636741229774395957574107054993525061579367160732504577447681253168439288014221407258182019676433403334564358468439750250282564867076337284829939282044589513378112284457583325510181278150011262676014575865940224659300770147850417593247631442397487221006119885276295236133893540392404952358151459082227347044248062499822991168943653605799184880786946062033178357991883097296743443347222016719483970371068615436775754349203699432120658793601497117972651461648402644558046494194548101370203078183063350549373899769847402490333720375186406475875708208752437636883596296498943464772731808200547105633617752980940502219191319501320237154321031056923465618281710654998515568745182382867554370626507474356530632935129539567701497041392333687603127645320436861428253949029669819323668638076246127000242280398944795830813639972597957246537056496107704978989264320803429643016480329093474796150170670875719659084872774895424555673744817173370080361674427928802283005656280700034003359826580212256117413271767030872876114118852551060973772445704440494361894076355433416815503275225280604207476600120242541981944532951902914486653488738088326008767795885670075904498716099915703225547480519560488524173909383688694606445863151950367228443242191142714029653729663170585710560877704835164926739566625901339700277576860940639177616787622156136114357736195692497954529860236086679225306298479725618982903856958695383455862514699771341344585651327123026040597686124585590063689900862870230697371661216738031820621134524191784502377707321081793177467136877821229185682938315128341464121998932644427419991403125732468158545272330384966249448518806742065132095724335262511492758417228153210063132667374836399316492873271914164555205457377101780123154216124403855074073782286033840520745463250149792711437821657191557701420166093106645108711698546062451041153856238411229651451913549485308095188701543692637802081428779922674279604571438268396310430480895579026730176809550959301523145020808741806888511265873957045775750278907083026195484203886498494365404923742226823516896303599878722716473376190225438497927652145748513770035781872719695606712862258609333392696954503893998507854981486918413705364693571844328350742812228088298995169488312778540653868106016671501764258423503010139242023265635052267021616971337186041517763768436049678599874504359465852236598396294592905689829961201946237986504509324678176032998112585434370904965089664502876451871112314273684015223596889685082676620994076647903817173452071526278063761737862940189847132991678279846807101273783491838924559081973177806545431474405796785236655970197416945866469864896288109159941678584247247633962225636787755752842861152812814548869192461924431686379863600384606061527194828141084619770655262894112405944882883788953853677683256784026204851864859075728005889796026889893466947291593706043929422844307905725734189997232884870256252137411905642505496089483126604895033133708968285455144070106004796277794894798404753236604474162234534323243643134705958080218676748867630685124548769411644539051014899435581886697618697164992585926257597664193207440849388838391192985390338094151682276450104643273830598755250815607660114130025394168920115931998410984004319998434024668401584716586697159371116021769754100354326249361739662109146281794468121227797799779774479807197648929852037585641155916133156275370386244512261909376010852359352457356182124650844360132924787746131048379425135485848295720128216718683771846363621245455750352854373941304602100596170323217024009780321875668808358362839212171402540374415294476615318751886707253049910927471388520484683485991800326784610750154446908667847123682842523657637068686536347764695015697684571246526803919617217100211679157543821561866588020289042097614522626322025353305551233908271862793950056406928629200767956424438943840712331807297514843004297188544908029974777856689553591701174963716311577679413186779555791791701710021992594100839128876826290121721659980335468761037335891465400787865723067137788456406216504394289593112144989635898837911132560582002696189853538797413740880288374665550100467586032534700214846678477429789820298624459011306775161048125783743718139262335458993565272871874240268402532263102583155534751798807092901138880116483437839413830635171198336260221966610329372140696176718243119692164054198666790187705538714106272229536226275376855671417329938066605572379146253054585082779900029655250091853271077146017915363295262855063638338547580075907029706110781650647500651623764895524780583915270597669586464926277979545335703977373739892551791266885047444608600389632807020233047194028502687460616292640116944721586692732071932221984892198338486010034969040283184055100573127634625410773801589307070844939096132752469696329691543257607802914968993168079280017723028615054849822912453797253117191666713403490313059800404026520669275500370377393356243263364821495688897981317343777989181099169581997007532187770464313795949216028282528283003766047146875142005112629808038294066715065222202414267057944231644587770271133028891940082898789477862947514663680678539244481368356296056275381068677116335153597129794341303207542679692857532618834287720724872007780552549182991355447657767242870551284437975469318956003565480096287229543619745600563572304563407724132021773861237707854662508519209391731810316757227646185753837381760127186000583063670303230783301487198099210668856388968808676995851636621102904081405212043557704740958870273461654093098156113007122844149633381498017659740342568807490903263496966858318981011141623092537470036321573423513667055632997551347695617213205074607193806218081368622224952269455263231272622990303255039940925164416184172989534719252749136541020654350274182862005289433520076978812287504012900686202072917000932675922168602567713383074387933710693494596449961958528831920923568587217290102587836745411421924868127925624066557253991505441127286651904496642483645740904475876270077549272395186194182815819766308945259482406566502466329461207127037672062725549283532026994705589710377170626460815262091238485947668515696574235316462456371926857853493325522840805245656353293557788508308504337169575373167628510659744300322726521858450670008109423058921652022411231807906568848964026972198798404403326636890639028085147500324794710951876163585222936884830405204867234037165992571346428662504136275549646789119679096925993405566327871177207884789249396330698246992285316975608471379069425667108944981291686761795009519236798333320034588064734794452935965659907738930236520350654755966320631846306449502192318566404558058091053020758984948494610185110409821547489466760476280912164034442952255955759737988958622143744790894696089175671606523781641256923038259329981253047939769412624406963960472328842397680958588184742625922407980417096540082832930240157703056904534408290821208432095035394464568174718772013506302760701453309064217393300586802506653415140867390455333312202958128048082018947265797236625054354149225320380295374187424607662683825594726760963519462692218476446667150489183948431096407161505544485139529842214175878152342683159250894095966785563939523960436361637445070427901959127339040268989551547365109902590926267257539428447959205687413082179939873690856195738373715495426926947537798716417001952542789132744557168449370452645197086493125227240309684819495426830955398510150217655397827475424629533265707957886796013590277647673545532702448564938320206721023931301259069011764352797075669719347701014892948519040812687435851010350206015893545784226565395079969598127468927447413350051274281323280513254037257899940076027548666224425700504989189509955716059803445957473733259044721008103438388332829883820748721417686799613300198103601558854364557440941518614052817222409137947402759090109447509685975036607980053429239212911016011222077049833035309907986159599107374551173185782426958321844615938518448868381669792522595451195872427124300754998095481192703784713424905569166135405602071945908578799283781923447259416216955892871333216525453031765240169805977857422258851506987240591961779426156446636588315577284994186955249637444655672113975103795723507571239203038054016262259318083309175624546339514789720316507796436627327586768922414315668528101039421988564894084151032588277679565520393378328949163580552339104778572853321997551319181057671208358976720159384046743212443206309874622839616721465951749831191892368159287511508771786652899435009821519698627151798281590840533380931317446693555887598718178142566301579864505614540406781277498711719895581095559322195213809021134206583766926432791362121776758450171106172792538225495452140534800489259881006063135310317402623177900932758432798332081580941736908846055785259066599460495455749239971066142679505896072739765623027001003801306801369205468208264110249497779888963178498276217649363269347630276672150563759498077456048294795669165253632081903373164091701052158438776990431274511913145388451697426451003380802214456845385840633096048787379794976058025368001226861657939893784724020333838489880873342284447829077328191776145476724222101294971523315361883839167560582656975541850595702735825161604089221221055473783025477206211454867925407328458742242258321060224051470950045709317637773981921368169255594063357214980590910990111113719270615899493651129471552788738865883861134676832175312968255949142609971518982108231579357079504752401559289542792444469552488182464717238156507883668260533219050935233717705416395953747467018634303123016808011681226124075042767644755450781010937806911335099629562121054600868054767223252596192764687180839990812509951946973612652025006297698745597030218187210597376593112462832965327760506091453035679680204687096492616637539473996168454613713931914578637768647567664686574092441976614279604258628434357305205356975927193840429903688128544505043571752906232941010169227683865511920561932698804000094765398836584695907471963670113102960704090361286150357713489231886009566522084819224331065103470806106809650689320009017397093385884908663925640953602952584743697515655764867033366844423141195168564188770995596220150633365773657142229501321115290146378738204531481167784229935282808902321800989751511237367677963910230982618409170297521223922883828133807859090727738899603781695122418020832555355076196851882426997874995360002828870726291043757341945850243931994081652249549599054634537303178345108104911843745770224018393813498385263666319809993225172780490042955392835114054557833862947226107551900096838807818744336139363202805982664079516430593082445688340961302015072154394265137291593354400148837586538753604795792893446023734208685155505737989644096115785547926117358637645955061547484265805402589864531821432416739413792865937962945996605146341896071757625371649545940720716307043356947531716456072366401969082270051740049714590378035228879289401234570965331218197036908328556903894242129667877323886719543018107653824352249212928868345997601879633091791511126784483314908870239792532412383873239153636692926985565745992428072829832484968713592093428599255200087149758973127175828557763524210602146934602214342147601651235734369540733522376114826375529034522497767157262162510319211088036588651283117419547803173624105085344300504574512793064633881721618173199064824133264977537451561787552746555625703358271404616432726699099676084326257250828688551525662490906406124488958699876966440452692178118411236386725306617412425316108864029171041942186213193173044896396082917448805609994265864050788914959869634941052443241383925150293957955929599247090148005492325458739243831882088812257773775446689657951768513836382130876477417021029758756946641272895684440991944824212204491015316074081375904445820502706842287789598358366016025959634234186299310817444145672526141217325003171299414283811499771258189832956707666346183340896987037958066445799429651905219918882106188960170270260582240220200384690182755580717984446040111609244159566616292927056984760690465945403505552019977051380790984012330915194589310963864615722088151161120769569393086174812710354628623595656806977876596456315773313839527841990392771690404004385720507288943994900414282419178513504330820871275355464257001027676483337317124817926413751880201264439186116845699183324533366174189365563361128966186910356067964012284236369869094458683554368836731924609804432773626787947641774903808389233403390585728612070342798026867437231208332954539960150215018056678131685052015421619281462173600809098074007480630046000380525459361603541819464059409220715760112650979638327033641441015244291057964462668596016735581849834491078752323424327025258480386999124758345989172111969499543414331937266194707621798480950094501848981797245711968512885854431667703956588571098141418972511452671467275411343852229061524975633826929978686182316098693896713052682133537237730063182909100168497179685900289471579469473206344018433717096691708121750195544978476983969592015281357727032913146434959937291284526181347833596840716509541754528847472707824038986573665582904730225728143930613734443095231770633242206371994132624357293759873241768388063416089196990558640335425803928709958568417549925365625625971502984768519649552205403405451854915636096800490893515862322555257569480055733576856470657610863758883554982555356278719799395282469064782240832929624478713101978490070168693931824035206052831558931691133206384781122963069886721516831942364407704810827742176744824420465368589545354358593707443442507977200084304317765723728546310689796246942319544665909783595906319928083186917371152480604107390327853743142295348664227518217105281290392784386021733193127409739599200644385074770344475635037941696086669301568880550231680398198838059800385854177716639845659683699135865950542553941599241587275566145031757190174051231054550777011309735519879079770956423613675658721956142399734188949762840878315970844185751670987106871680950094942119610899474226087247774821423582307682227603167574677741695331175068328682562229896801454697492245462070163921352926311237540223186164180302556159624645030025831191498865758254896584961312253090917120916858883416930200538518456958959616462225340176385172676999155510424214342636454961914596016891385434780443589649970042740931061839243807738507581883146007702360827982409574944670648508032442731848600952916229345510478583287846128711470917400891992573930805498604977940595782139170835150417479746327017451513037670716745745245813291776633748945333815272746548606734404799294213388150294487238114166909303722125854024783821246678521859060563280033676936843035910562622841003497189208244193275186571986425020685947214955703811304131940375898655661091379307554960540253611826406088104832381088923000661465968118061682858758743855650426840589694968935819576734960596059622054450696767839501424846161470108281574485691681848666741236550740536610031652126981112796828550462593125324476253897460654443513958677802968194513389721365648614527063457893726204751680611154321568465848311234390692974328210052861417180625303612462021294242212442428506254793093656163867831891757396769738609026930370385799608171065651540770193305963064733747340805417509285676586809223211226127758585290742028818911304240313770256630207684016615007004823078950268118252490037004416031182238508811844731915590448953464140142268513878606813364830086880136620143543535864575872111349526522501727075925144888482537022085857336836801696823557261217398256444551199084708805237202040274637851070245575354989719220043721037277997560876981267409401681551804637948200601191929696538725253169323166437271246362213851704292194588215414441469110218184041001277766103946446811428559244152426457284160272682163065128924684917823479364126334211511500138173580861511462061980446575382113643521348310811606000292709078198890216803394350969689375124766955110830791138459619487283856597650276033931240576000221324923431758210727465583036137656940108320961598194566121294745507894717600144493801237490380502112664749092820632241884626365597456809273188280644756411621115257341255374278230131381774470044265952716693414367007973454050730954182471491789448922664861565503533013553596130136152350156729276561888827603724287631717032735009550613991241439071071270148706022830976051445798503640738773193790194479598173595838418107016215117527588627769689875181568913178954939168488420468595586584332154505609920182885822669586243048976981681982090318469978374956635283268088583455648442215075837675579588978808585704629240586039222879887259051188485999459937606411931973572632262032262676373750291903371224645165963265915739370299746950022618033420172746257646513917164956223321318959808956012997449987201509231381594724453450788685242870335431184040338826140260875124649688174878296617722823083976028859748628042592986683852037772744614977427517054709070792062368068741302163782886556811815766154115739064136331389080613122271013157845143351514289937457144611601589567808285266023763362062311354092602275348974067303687335038455845841193892729470675140884699658671919529599262059979821593423276213808641437109404724574828147057654074336486341322563134819884819979442284357803239880549524019147419816123758113911700609205635950174395614301943278623907279722838439037703672232571176688253351554386003278514513645370338533880108229949523391363724824048914617643414691721991008244007634654062534720484126599908857728244185381561390691455126979483859383595128272145534261274707270878031421494224845743207587919863606832632555836809275763290026452387776045687861091562517657991056140880310746707716182736651619603377127230540499073221001587337758228360622890445807462466243087148683694089071785878120622486070706730970607044185438691278985125011773713746770745486787100266087710119535692865453693626679269435731626915411001905054142024602826830358998008794949729435063465013504735350141646917297111761506928030535752077895688522269749482332175464163847597700787854683327439958765375064002492999794366454435639561319063418298019476031116320624466868847139532268092551426874492189319990239721236315279783539955495491615011256854201740367340227429218814607368937459646100762205103579802128930257166329897752918256891885327396216563751890658423804566831044000886683491267015622083751305100448708133399167316494548496186631742949939019597886369505009193738996807000993423283387009134075902543991533028778348394164111697038287715093191416409938575518829551354816101883026234306269439673734064047108882900632965369962965673724590102360529916354677483316026300207099339803925186427591767196708269878159565569683979012463568313468639128610997653008138385975752270446928069843219429501228973891488002058448741782778418041178395860482091825361502990022851388480398368260923147035372736538234080473926522079483737654789842353673228215203756265813484939758359212852046283832950625704694642696516114199933075928328965867373806682556652889957408009794365084867098626434124339265144142557201628125227182636142687065103805284759280477242810909499316006323178642285232364039410817644009199609012155929722642457524135012426110554384639662304114823564010787596279050323194641321589908526515075865054441785867286106081614150999363740396953255279672699605084460302114000358054906988984330857139680128720531811813474609641968557083174359700971095643400403019102402627720831396456630984417569968706458725432080380045816295347328750759590045520648113522547349339956248978439482026958140968926387085737315829392987105779760284267242289576727752202176546116965125657092621007068788940092019938280218057019274620306391695669196414929236541515484771084809588102504964499302184704608953476935629251189302306394581860679375511258873352099718719180923854051189353042487597862771602844991362117842301519855083286758169970442964265734132937088187700685861192834156751332525654213478947585395125536186344928845170682118186252467229853031789724610427344105980524597198426002862501903140122709020018650298561532889220228159864487243243023428598250104794503701464187687843384604057797430217247308525276538229653661936413220914847622146186078238152249463364572857754187653764450472466224979820239406711349612329434870878978403661236493635344729337129778860585165697925703921882856445371197208078586966605011214085772450793606449266050659825320915223758847584659791220681625296380612058499278334055938084113481019251134297449307750632225416697588223762429825250525940915636275547595616938169518683576276084729229837913482872552151803157209246090090221160274016486440868072881803552560171783592168195618208018056494273211595064601586082547681484335697375852570025852913384667413472553484312362452825949358262885730410765845437700504177740276184945529243541455747848217082372398289340312674291289274364016345421175457680075757956568531038007696536645741029369690276018839001213179373844103531565057435472959217642034608690649656301132852475728733716628039625773047902083389711837794331621008492147817264801298232056914901119999305470952305543977257268334279323871976224061045919499827290008985095813788911669527310541766197673326146117330801960571696930849867073969140079396747683213299828038620874514808376158286133722287703305530959942781294449790377281649885338110274478392505244436890860643406184996933361477354824349894178853084579653806209857689773417451726331377201707292303244530490668756099091967084646873943000626435566849327658701777942553158579645760262353385643046438456330747703643511012238590104565541578805322840757065436352077950701290354511482056041592641433466283985716879940910768561831381436852451665099449965567294645043844024169465113675364691485348951443457769232814785892572379666822609053843952440252837911757842390693465594241075163568837114121044870704843709949211575081895121672587392331285004686935845526936863062447901915576727057570120538373624223502912933154048576753748719448391069879103781120235733421743917400179840415714215547996495539803638735078593885660531562149488055533589484950691692510906199841433299699094648752949386804839079135371200463558008955212005040721275849245292915365059802954768083043367977111365123551044206942718118217957589829886511716348381821837314208029395476661317369719584748258520054385914252362423652932824225418420838414293082810909464358629068960360545031862845609622955810727395862679949012564740950193833018103410665702766281453772326435142381383965228376933206513557950475806822695820889382791858020581848958471854284394703351681720390724782837758647971334959635106946457837425068721837051920909653457261700500243647381680636312658517722062474530143376217112967817705719443031375607748325683318238625455335569710421495565208389268480480401046427408024448779337323953073735034907279084786307955306204997872080076294843092037549007901215685449429813402463672174199168835894170018649430876718305897399050332296904521775843498682297257982095492973716993657201985758558187385348934971084992670054308656610593107397150141920071626754482854202625312777363733553349293501486305312198718347163341721836916883937011459641649672624802998574823006376320587890898453271111701176899965890139680521283120605529511826335955370606943915890729776794641010164470111138014671145906797567524038650274292730893687219837580874669008264467426249271176401824196230705422661688936684184811731825119552525293984365670237358468104325174389096788932253244519572130637675034684165185836793856106833590729953369863211848130197819642382680425975847953819978354485652957361489150155010215751982221783282751788650747802009338144864466104429180737741633475534670609437572281105360113016157328751003019804193971358066925907855124351048328418521437129206090348787997437731463261623601444880478760178796919402880400355684565534629116745995145092785534854800143523133538531332231035763206488235997241429661414343471854013957233052999346827809029765969401400127371961752579260652697907785635483423754709201160275107548939640551716916075115936811648581344173352064960277685053899531224020465722199004390101432478309072730549617891734027819655224232112594428110756888944539319530402027298813333201151645762748535274601178382489422267393072108045466981208984303806947530211780599293473557766127341180860362953533798028614713958226027639380583824250446480844349934622759702794313179879715361476301093398095593728866069220333841116558144891651325580952651632917404306360202662898600927083429991452048936619686698894504046072182254266926163905563074306587564642919510261321462535252997941959078480433738552499641674812305731377847850622676180901660359464168206640999832579587877035964873990767249440556517319379161397260422008762352449655407515493257789503054076328465463381866827741648200898204472650034269376469202544293447258749765484091681717956609581814379806209756593990989629442594861383116347220190188951028622936088927056499153902817610590030257634539205911597587629309769046952076151537194238899230415221262305523867455814445886878567937885529451296406133934462366429126574034057740266516796887404477836630210452431484187710896606674782265465172962373650265215996628537898413172662770795495714551438686209186913101428863469245248170889836233989339944449948031955500094562940900437533301005731038918791942849606068060411168615457473486018909741848138595574953031025023638256298487505335467435143890081928467559950919050469278651669869598856007600400203938917907017376730899886880352761406165584533965364956504260794454160907637712785673060938391960435983293165220320961449700895940588211014903696671539414682272055301862316156498357307815666307571097976777316025699514989233736369388474286784055390107440181025863945357064370264815476679128241321969126900190081906181405322325710488539075490525655363809017195541681848570457365959372128435802411927835996373209185824844635760498420154002573628774545672176115451807303948547928313404400555520893014337140801813026666228727719755437374489533987603621777898090920354425090591441465128224160374621901162751390743074887877699477353194614948889647161356293380454857233995443805752731466741877649968180497386887562746784873022256326233216926440779727831405136777712758911966291467483303249897562798816296785818648985697199958904574637603765418043233401600145078367522192314802314357869001926401496338097750123320050915090958999350135750207201482932945785881556076579329069582856839374707721632673196408033618063722173994736277579677353674189298274979626945215043418629729340934090140549034939671884275750395913084907251805996052738735339458398398918089382839919616719480575631022917998901119307723526869949230559246346532830931643266533536891656707806727064255928421717410856183558416155874792157932204127108781462013588306263659390146115866251064772406084455390079886176692579180583364662757182435000635576173526289055481239681426428566624223086469485950313217525292540081219456485865125377219267109968180941137663199241190671901851818137369745442013720012500688369817369654036869070572577081850324318041694983009328339010340367536324456144152857102576464089977632527935112358040108809646217240225479336015467680576323910312899373533183449888058941475612277790934276920981561670077402261968342416264399327809468324556124364839427494392471525758682543512830553157664212079178271693670257226426522591372322688767125466192121496987728900479834638930329856960478343744353968232642282224468722532502338453148749210584503029702048933875163035704761810699051232555224042702008497592490765350927422460271484160354877390500776241166895821292440615148165697063698638847160084412345851330019880501354234407996654966061876407606837892847174390717601953696746455779874918885487738474313684337018972514163536953608319619328846951651107484782340826952534452431234182049387026548127805197893638955905392405740719361792088079268130713347533547690567046276473956258161937136675704922102206365846500386227538757851018354196922194828423822439371606941892751783534261101449626647749790460802876509522079908548078650343444675726610081403063610942796296593102799838470364841455214286049708342067170194434720386383460800753792363563416628429716607404939165201849044180330839111790896429710917096078261956091457915051599965857096100139958444268402468853964058108175311477514423418991717285161734724356719097252814564504462268100520751293417400630923250393516930136028228929886773090085790325600755756849358092280796570090190656909606799675840926823607145728428101555579796984365782324357837983031453165847447250672359428641133978472487668588522026115931990541378887208466634555782113546415263278371453027699783889604623181925356785281270441228834601241478906145722494097056800886301414301014914869170381837152431218511653473931287976353708777395091957849503307535536365181438681276293240096827074047469366060585485341276851293372699554137898892553086445792960571780413538281700166414457612886471257803091225557791912446272317942013255025769551115312583971977481203582520446986762420250200232335668755560125363719113845547224795495831390542482436146242105917634262202904609907365451449200193231388991527577234023019886599198895112111940740322844525560008407963834404646939788828340329844372801235170260818646594025897888643689548923951891210166177105789224927030158862668132549256563402719895057046048194139170041271473539783791807842287824460809036800991492170770879464778589369231591661681904743362117201971210570723009439716683294455516121900146646365881377698194073103241026797186742551393821557996446134166942115690497929195924609895300160100274725413708739530219011931078973023927465712347420583709075097951721215526662637030649438416542010770327625643610401230276454993142424219730655001758106425788768046264713989586683938034771926049275499511362849265888537276364823670839028960082517742585323969739507080380530392184377751228581836159687364529866500865582793696083775229638775179269188969163648510482037728227909897704256166571737041643081095303405304060952167788427676099684835302872803536574551976519515823429457056173840398827953781789011679288688734291465482222547893974384593854734706182631757561256290190060999574965032662803193688927704215859876907676370974246478074000490783058103036976998307161437361590449966068248724068038308553676271135488719726846977432567244759593007356786471074344728779414208567029278577581819710914471573003904498716486141898545036021660871564894508579435943876106151674639043435824264575784528162794565058198139549459644001416887116652261602494839959034074403372999354589714888542975311180682087115416857609761280062418392289714264479256612715649313998931594804653856135051833865449366077183105267532124608445074890133726920583642126646521002389261710168426552859740884144798064879561277277018426592316609163380561095364792754630362752911777889376092515566725209085509330210889191124983440128053202141615641667072790203242619880086945789011993260755739540697514033372349694570968193462439355778138155535481583497653712875195203771699396266189094795451689802106552542063819713961891223109231272011665812018536828697123352550639707768431265008223593382293176339173237755823713219953808387909891829914514969747049982732530186690981347367817011169126481946812311499883607671932035685608280075362999711751255315317518589984645164393733755226526173310518823184660061736681796055648732214158135414921662532159986401730472154624211480685961475291176369558514947850563306932680821730667093099458649025556586233662923726543119276390750111791874356929131233794520374545292890324697436688945648318163393771376957734779622743361385311038635134468157124494514416699277899426208159737659229003754953253744585860602648199726032405159455926268514144920318707599009998550073102472290069607422781279838749506649144438819484736519229561078211185306837921702031301776507489707360663210991588345648328259110861095814812023613036972081826399743146384224217746552269270049858141881403898386874662499133679912080161243080827659270728060479694131497089964930720261705695400210429973899274378731268285121100926007050491662528706175093690246317289363350850432440279259242715325762032105802920342759411318757669472098510417080521160153763151371566623453658446482470457814267488207083906113292979043802240346596374303567337219068638980888191313586670164547077157789136654476330032831150265890836360705588264712526781858518882246855377521901444570784952188630201213792676889483962115989912024711596128683408665501814155211943016946330431687627595287794474017596794659709958504072337113222809491318064517550740271317967152735370900943358054098590251219071724253126805438995244140044508519139048308311642384451208910655658229726635254058710464798143949565499738251103014294617623448792719250973922972200319377048207151354547996757190156895865652500311063294340437465827916973755334458547013076471204650917922977853403540514310470159598154179713665149096560171018185386780179780530400115495979813646167282298654860866967247439072747544634476173096012625693733962404517621875397817262899427075434815407386010378825624613573821986176957753175268092294380966944252122333819038780632331973298259933747199983769572454656743788912215634280158332517968568947695973866341589332081370109328719658526145599369296905441714313761793517093830237096101866943363134071718241660609363096746070483753549589418958248976091149361718491856976432672653416709220286271150139719768305098490452717216322366793150478386180050982532448664115851813060103243911542715696095740492262209124447776155574948733623098858526481015505331239672918523497505288137242710211295781191632589802738851521248188656364896132696123467720258900302899264924255397582013486150637874388526058281938525325291050099683588111030446781419585462111140297322801969287739265538386510506467016391777090766761826551027255333309086520700881589830022084260411065610463916138463813046274181305575330942079621556867032040872628007226847345062691834109908622602532243444664940696217415642139456667769260620318239269200408925544582781956029696025632055865473363025906861122410518935103984381549154451166378046375668752005768347066862027895438575063406196075259688861278853173581356779075317601511459217883514917054789523754714386701094761058671673318626237982632867009452825121755317866238427033007899273506871646055242776790601609507709986484966376571913005808495121775306170089397567854912351858541115918293484616490099268474834144282288341052290840145268237588133662792521568690810220737339861730665336553199663660762498385030762797204063226192678772893367109825339240303901241180689799745285537955228565351161695851245083996894029836415143002673790645282684676624292715953393057164728988025334890078113463540377743811804143816478679289241177896256358387910771160593320450605721305122827694787154519456684399240030880835702471148079367890930205192643884985567013845840155089401997211065519655148325823258260494719337059852417345937607520974828878610469296791211087577339163531363566128635642984959092874345016869391943532365719989852096704503911802325544950392053672213246711853623924477358567524327143991046024949636409429598127903268074042227284151835251091806030349642873438532123013516951523664880827858618144503350885242634402380343312952113406834001990309469056570521525207422305543354856911789422250087773626947746817992828558091388401220882334116229204720354450458819837095520735695315991199704160025391161210058591174360080345744537244964687725037389357095250194061860328173672854278973585407781878744399483982665882705165399756899153008584004378460090423516181838161802303335476327034691901654029567343323294717532373793874942755535296836970385124414862056080172054715079897496780109934867316182426287040431930078193341694867057882481623523304557935145858259395850216053078013311288311940819576340027191848458556306592846558579719200031394119098432798323965673878959912274110174125312554737503549383365320492245533165047414254292512390704121542648851815830540236951191109057035582776389811067693854045117979450313253498254478482118876543186698716717501759938253190033585765363513238447746000268807554925299530389350860146512749117684831174914890885175760769674428766710446322048909704449821208520854099814153867079795028900646734586900066699389695180708585711580166312001239089575961634083891330953429373818168789518064283159654659737139463913194324940525208224066119978050099438860566793286587441952308668844067036690532641308109112511060216963030583046529235626341251127508858284857019474417825591177851239010075674127736790033769337858555258018736182455416123828340238607147889277391129767228935851503857371003202790127047388996257560236797743423116425873423058588156849097281044255533187814010880306327711121886807845399017464854363613580296150454292490098986311731386642333762874524385961217416519330798839565392414257309899690901421971108346537491811358307047465194852344670719261993687125951546086335114512778091745476656878084128416361682212195212139479965256116577807622328894420437057199492928088390699724228620970931942008562302294064358027334343957162843782695164971688857554237542597939582314256415355862516840069162887238062034628536444596607071296821816149876311275984880263750231583716136876782091249905517459695268044392638800129252278738354788223424002907998503738570455943793536252819315398460547602164522694456910911362338785213382071573015537630410019086774059195886767558090454640514486912338833552026266131551432134065022796058566270616295189463110842799790217871408655716455367224170956771979837540208093023267419011356554938042927641119402306125395585992977465197167041695479904882646595089169646976382714861444771616405604741409755376638554516183321742136621311434144792431490975275941346032372119433715630780844201756747400858144438057562837208281877542460522370793467051561623484621001489437669448665294838321727156796591290493973847861902449513872229821544585046326450353898924629563765889540623719821342609807482862076084322106431029377358921575626598835283991491457095359166792674456361193853344035851287811488809760122287805523131149990459861034960195297222264856178700140412360717164249664256949476455988905424498043981529545065813180582046697818592732542658822286252860668514850230852283391710913727485955263306006594082846931588814252390220537806839440370226741256734653814853625488844311624241921201431461562770113254415670307372999706932249425052984685322925157722248722540644518304217946659767567454877924181334130212981891270188570981567368932111380339799478039551871128954049345123718364208870278477940970816599265682432735073701416273390511858781950561862259235700521054630618029089765764146512131699741576218755244339583183075825757412505301495261123314600753528829241571838704806096883622884367168716587632276874897922125577843047704480548666047773238197114271459686722665805157661146880685897789584829662221854701016812848496264179473967367200641153844627233289103703773039245692155953071187409420535236940117645249961517993233589291087595243974181543859164119391465145590069428252024430128621278578227575371500065163523578225424946884023251794232577284610406367392440585681553878970310656358751823125643927174829350977342657056258825315574264651826827639634982952651666333853494378248363399586212895669869856772925336669766788031591614054615802005006670775675418081598946218481313580946040451941615168572583963512480954983689857987464971072420233094011996478212833827968759985012692414222184692801127934605677267158283441791838947344236149507632658594906134360722478364797126944935650106870295253625817556352939953936847017982262276499516938946399551374494221029920756553720120025121232849752759558874531085707757188053034663966420126571534781600865802306771777013054094977215035575116167164232128682297170941126692835915924829667847110768502740756791763768474213603627921695522314894980917679843158272432996721941058310234710777872848430057715096357737623291083061319539649816303872634834694911789367689428625394927781564341996646573064630336027057637091074335082391496647891166562815615248182208339535977817243945056718422938086056600659412924154031696034544690299459513799903446793137903696355198925679542260339304087828221813610727155786126565562494249365326920534553670056907371279707190618208947858267069890642531655949509189555911389801048762800069573221919003143666279499094859232323896250030882721319521767314772013508900810721030674659655992228564392815048694756253513330266602078294836725253228077473927277409952330868943641031863687115491986480316548128706250605023521106717072399439586462726903899143273960408398427853845330070098072821643280711279828466506800074308509788579296734121078455119461740950232693694238239061594094148682136364441835138497001070768872944271519494126058172040621232191329258907148093496136467495928825876473326209425762056774139809219747625631225860725477912855975896938910156193133262269959614507746901588760507920140546967044160162645991872989076113049459165344841618829422587951324681699880761943256642245484210716564888601922234271094600885440205551107438506881939735494245834068993473717465945968987731634015200461236347876449670972815860406817208937513651318617898219182226758911149544833535276468761428191296328329088142240638460509141571458792551064068217755321847760396559439413486187844043512765233185604759254979012604960602312465317089382431501367124589144170368055333188390642468085048692883437582414375212120287311790415767454596771464382003468286977201571633079845659993306760597737147596965243399559058208676013665987515911650292788779444002496356165310589901899399896919799388595515507982032111947216769154346832074877920719687729030168722045662616921050331006165214076540924771849825790284324810603762660738985667160533436246122546754925271379522952457173128914576815387628289054660223964230038365075920587424473662587151187731977866741284931482242075161208057269403853581619891973953616929339608947981113864618694409142354252144792346359776474177230904227527272159596900976267651035413576307304962828913603326956534368214893779015143781017931565364349217351933948237324531152499019737441885213924303542136361419819178974835322281782831606018480908348507109392048719235160300735901921051445322487554445205042388177867906407006743957039205767633119349047741804492648952814643660103877565070320030326213980393372300761144879662229440038804108442147952399900784252264245945091400444097477514141752918409164333150374024078791153858667542593236799576161983766479120709475537374809344369287079807963569237604929995045939730945448873890444995844890468860974456266076411523569631427769952614737426337713210970139685409993653303645711838852437664517072047967302358887973977020487844906177020052167721859148568621577063245513867778051666408307844552386901328503163162986772063902597223489658063621872739514299083244016165306955478304307472137724705759578394311618786401260489250140437919458632097277799381334110559107723574600421914955153405110763481278369597375860037692532706900658136950272342534794755752227031565652738375310581254143914834394379103638372814955365440124946368689555631181295667261267297623850548899417660288703668419566398044199505995912289290422932943712659596311746332250563793850487142543149319019643346214486503015678306488839017261650653439305667373691185995600141181358991653621311213474412369431087333740017902323542524205613186546444287012910377909673881676148083196330262177495139730447174941172165609498194243098155563242243958069150095994809879046366836383642897926512879987423513856725532164638138378153386518915829051323260180336839681791479920627455278487480356267160778470565718539775354262801493388475211220192484761679550687108356268349223467108720127633736134053468443738871320692322678243435966192084476708449099456232814130734908795033122037364926285273068466417533278779736729476886558442115296876315449380390346867719538911987668761514265095875197360107698416852644927305257422148191675325056156397694931900054281809134452019591284585757411646278481482400347519183850449520000348633646630016836875129238498280383585810178379107054042325145109308340180553393416275584033433647641880047316773730211942872186213275779231135245690378460891146016202861343668944006570643856830925591164956544302695324540738769476359163505132587727233312052217937686174098647916048270152569754383014081527964569773470062958946764239870798121774089089395363743140046979838963224389176560720492683108189469617811643878250489097772364721539965143613004612168523232735356775660351922020360839846246870536435025965950759399123757481568025092559855342012209260733920765751559404602238435020154396808447415520443156015204056656552578182461736993800502126635605162781291031869606143962016574899846878089970052832302086767963340054700190081996766581552358385387993528370522954729960400816115907189539068474291093685616211400494852644422572020022088811867212080230843648124560555331544283680742260161361960278807101611671639800298150274368030680737048629562122211670226830360522126158073725178589505433774584823893004630825884492528442271741981069345999791414788956172805226641349435055185547481322551092460225521292528055445120596284282976171496190752723753913062623510288906895296661618891914642016287932717689812783468127941509416764523964724039144000814839133258854598413545665152120496727945657120828645669102124967347563950142607115095554361211776690449407837913055202853690536850282047989306982975742513691753159894516478244664343454621259862207626618931153044719627453568889640681823053844973255465308151891522063208938117196863917864985670727923959588715429576252582891675867239691042448029057413321844339788398314419018186500929246355393372442493960409888353489710145300608660369496271485658812662560195422306754652066135427280377070297890098081050636459140850049051354546609192484320949158842895653022507013637918505846180689071338632412243985307502370876533336711851613307621240332062462125519534104903257867177395427724378301352279803151985516601860330856887186607934626952205566264314198226430316315346020908429120551052306430100307843369587782692458224617755566076587200038970404168022107198804815015320840303336459977506924521294004106503005029695346424895457914881936161399465072723726908414096695464430297336548569164343188714793299397107529651292537804945843694304806831890007764621733349369547284886376907864666913621518169368138506480695949638276316715473757900828755561795007818990659166546230045844345899510159214329327719638869047569864994056456116808717482636233738672747595718645098397465774858921585631388759079328464897452386373522067054392388074567139488578135124846776763125744749913559790817620466155131006923775188076902496420762056216236486592715822880255904759908545704601114182376495634595829461771861428932919659351410809647165717487681784708186834714452622176023076333982058825748371789768539037049316597745719125747764927916481686842071159883745141573894438622622618574428861277259228681848127551742356129962347809648612376742054584890510581159046220480097794840252000180774084645984751257782510702275848608256079290717576339598772701596117365264648385733057764800071779975278806888167214296183642008063732411540319211578047627259490507332802237876332665565020620555329621736757585250100126391759938957195875144575881481635650490230786638520690052897378486562547327149546131275201838282708974101111335119131228609591148552311389071404050602339426349469854318625239741716582395210488715644596877277883899645308819247284596120948691521323515504763231200748917684353604331614510323495521127080668983000864645602321409311782812656884298816523022587592234142203290437906602853208441233879014040340664186579598867962110984820048547032797056814049762163433774309587458646084802564503614744751801976391556064023440856929442667530866581514766231484847637504868624253580096254910072289626627069060026117052921096319501821368304997600174685825340189171974311493151609456102916926451287329444116203475786729472066692984155146880460142143488325337158686861401146055880586602094744450284319247816042816680494456470448443410466584811427563000654153377144648368439526941413458554081202594087890617742963803505832302163108778961600257721263631576062735301458430088427001521468023676870811918955991697168290441084288259792345630994587655999815075457326782359617145937737153926807179781115241421246161582779968364399991517687355368091506490944468726018043144381211585232717701590896392183058504102535811911530310397170749101928238082439583347557891546327210258056917733162390074149916643312253486163080724343020318693005361809908222496729432240316341648486538623687708605413694602491848348202006438989800859804260701401278952616163828805821422117942231379291029123901329376618102428680896885678025600650805259374638739562319024765620067748078719128231753833343666746304863322509949205126726671301945381987854795970981781330189223997902333648215716533957414015274678945065353021805425953263668524412725109299598390612580812165622867746922628301310526607101552665894941845366207398435949815839327982760611942205891868084124214285372880217343221406701873192855490887784515382820067565557450924669151304210503175655169257203235842786196079331913113510232725162460583139874332203761790681431378400872501593666281810570938891770018230019190960364562780907081558205633644884886191040356343575143937127056137412360210822416690376579394593267996314341283672177059675902627127590729784717255775099986929960218412849982290548128158874105077299864654217346785851299728105577049311109509730395632004852803109668085183788120172316268774072871655486766404945222871427261847911809302864411709931561431590712531868293791211752109672442686053399572455226257389609556531210202181369257192678668328723577538245254274105950799469953005181211514139298486543893562647104389410374562193978032180611644129334305366799925332112668265624651524379145157314451528050361595750982007554422034206470192427414341284413423328137462797602622439416055077563073116781655629264374348998887226699242492760382404214372447348157047895283843324203342325818578666095019679343640518063083806002090225436233936549334048597359793804851880974586524356692308523060538744378790819647970212444360112228663713727205995420874142353939689318574697956169208809533661407880352967715446481014380851538463046050889415671255720629126739984730872499405008180614579699712354025989389760757989144147429373257670220000079227053375098099757176159598967812207144908044350686083633542670202717614499841126734647686170613482376243769417770086884575130454674916824554260096937645150209095946179750057619045633387271903214639913891627888602063230819635744721037568837171238467610174172913451572809382940347776582518018991342033418619804750960710457991328443910234682915260101796750523492167198142677001403993119462420093829253430617105350833633775227533822256767036691674587365590202734293325337995927450616460414008771287309995124009921011369242313091633832347401891346301752441991146918885857349237271727252160990235340607217353633186542805409558831917867975860362904583304119001355257803848182512871094421792003318619533531307066415061104727696180313299816265677346045987046405403817036781544672890330083386623550659076383487995827604577709195444704566707902256444530928399739061754693849418494476062649335049720567333926577159633308066554983480638074754638113446325618953697962830493124741567503317675558414396812938963230537123680926926412283545115828707323897603101643758526008860211195254421296341715519998641836114096946984269863757857618338558104523446218285890938102366671599750717704528938756810230687758040442690956436172667264219746880532203254471878007474316746243244568009124914367976306794239836026021524998851072875889124057666211079087529670740207242561253724028203512957152937195992068457316281690265393251820477491554264892797843567554980688454396827412863548748924810157372999619201456997618245192365022965178949294799873288145764587285258401471332038127207718435038440419847102177859698184924582701314017897404720484596582591583921727096208005387323136026607743364048656293352604969229966503728479037549990128014537739277085049854324421242282580360757602332455318842395603374240984595546785244301672595075515219859672033729126757809290339075221417067152168772805333362084966500300181034932927638646659337715571526170922674764388107909740024250510913855701378533091970944933153998191968073425838040179418688285469695646897192304642837768026715963587937396599254190942622278271928152894315037751339591684761962650372758028392343875617113430888327273999206538759420917918546110914618899901594626922541731692444403127503523164359338576237761550856959521675003270390730139479163049884505701767605967711009451945043944204723211170542872210399768914701651743550162720291913145114762059608427170854560377436702257639818806913352309300719189439440337053255298466573644772570364359883592274995581089508917938802196901968860560003111563178615855757972839544778792651769298683034998827284793320568662254827622304350277281413574222296032022313287546796016129270793501414492124041035449629652428005630202095797718968599177129934163354841823988940563402982731640931565286696883283895888119912140810460348189353217876069399522565676978237500814756297898202755682157227468438752427487554103347137481675007526435106024425248872862015643710109513952558099764540751597931746693257870289342957048587681603770768812325844642057650919838009454849575097963082170193954217604332071715789143130606562182050097617327530393431225741465887627363089945339063853766564867108181830172357123469510370110382458400367257296176650201806329115843199207886332582278104821468257516112048044034915082211928592131921967396221990772929425545881232470328064706468124547583862974837954187764106357533659894120904661886895630317852147290174002225566247013392100438346123385804288054350257344238638695108084076278437107308130291234703227011793405395916851442031182457603296383324089414748252607510515979182480965205850723352005231102983562852851636609262210812954863714419507102138562901777871980641179584459962918163366097389080506086251151800674138186907972822173818334461528728527257691566493886156291772926724869841701001800319552071147179325173442450987560585118795976256563688828071950489755483120842965054887510119276089251582309033244184517306569128524947859930800376886735543040489734256764553464266918335941042185631472907329678814725728665494474619518597575716933069956623405606303514372883279099698541784445580913945984986821969209206713874486958286887431099623994675210897228610505388676097601937473888853103949653234090123533654930312863580669557498766788411770380421422756559816746549988118825090988301841498100753825140543999747299342669007576984695804661570700678054702010508413154373119755190168844506924396396714609627012125119877717338189407162049477115298061807499043968634511283132164492922543827216227869946458549782190990451259665628402738309635960843480990620250764369078201658108846794088239398255262433834241654246558090517910242320017359335364451578401523399393389605209723563925752099889705070997270343243750574965042383524022830151902958196444672384577613885453905188760510905497036645685660895534613780302755402590853889158113713411769342092253086151015607614136043041939092302857537780501198252545994290472932030747013514881619381746387778303430779918005585284501506533554228211861153666137572143250680144526179892309675900065678548659156920261347247211733944213368330516076146257561696578907974533217886098196892448096276508786037333685572045003777166040838722864614054112336258517459226393176446922477769932817316750121359336920178186531845360370495912890237338121074841184165523539840470097690189481452240369959209154101706675936326116551457085484925499370148699000812217689970660644571278954617912241630705797095379013669339024203281407640658554028840695120047546064896479036050979886977071805769132288724813476052928740873874832400879501316266878405876728669704820600976254973820373185142365723359694081676164716577278807247621998914178069358942380910292157383243430008761296781409286237864163704003988614974438714102183747662783284282219676050366283966767734144737967053133464687290585790714139184643218292583395043500116522904884745999632607109685092491878086135013256562383905622592195098054774948511656886346523569927969060211849505649603801232807002432543577718202187052373290453566331717767130847616630292187189100949403009542674275888761920456093072027325898547622239517568019433382254056456080943376686120042306489237645843518909455210304634059685403167518485393284138151297773462034886619472604118233432936873552147143450479726364293227259888980398197775817955313348201229327687223306611398152547700385418498418383602344506970841524958800028980095035345743765953490617265948405950495747326934914683961726736791905666526480612227933135633429270580413442736197284129848460612780071433339342005368615574671745372399465233502430563564991135974430281263685278728644508064419644614534146804011753689772244110660872454319814743911043833353132352141546105644539827238292309380949127783392934322784005635151703592636255032330035240735406170679750675158859592542357076772829874082095933586961859767535388319047317763812865016436554796917687550819785253295085620587767924706280373068263746419528867410249207354864477847073547907900477870134259768123192389808983682407585555221873388868410638176963848949259154351524712097251598102089060952930908770964416763940332512529466401118875025099849974397877764190705638401451812348647162779963969671032004689054794535394035115046496395377416652207443981242716040504093826695284574047060427695118141884290256973400732456040411717133582243022715653866915759727305451108448930882447873197708542068875855894970203578884270601795340807786024413110719140354132714750614425641746089181023264291015611555297900079812736216722400187836433363269153901605122793119584863045398654721457824647383093496176960968154004893346281556060444079159232161406629010529265489682689037280061433140759862864341521336207618791782521018649257490120415697690836545422309691041065580560696066171958153857016407865866828155290140308336470340997869760605384353600672317174083045357243686785749240076068736154969353376530756924431218497940087904269845125904039149498102066265689940914788175355385757458138162060688290597772286926851862495559822350511859840697040735528979630548160336538688782296296835814242321572636965108430199744853358216591524940331255699951003473742198060400864142823720482605397945972735266633491647893840605524969084404954688449365255740348420271927010766177813155115250971239162280836894545543821390901923984048404845472951445278894110530381007448061722133447306628452932255904401677603074376404587983717323006866776384879148113978353780760832194957605686910907142362304675533001184775413338864138987478264220268855876233361508644225729731154768181429382975869780144008778281292618527874753370584827754583920778977381164030186688404565671492067054504390029197812020284286171879962438089232693235762093168430489336936469185406524342587729099316401221706585460370724843309868337315685103164810222457198730624548263402934992142348397709975740151944802998991225141915799660001689110485214254799180132247692082412275531374589160132382906009438814470895927231303236403008464908568118859568378047607866559107727490278134707582062610558278915299325777802613994311388443264153137897143043897901337790115329701115790300452314440148103800214400313542313316786606527592858334057952997562117058856657636047465664063862193162224362087969273760624185986997926183875680651705666910146523353393081918886037418623350469710737958330667260216701623017484977287631102645892425662425552187249041070990971433488096621305040552943623911239682628173194700413333161527835961660419689464472448061678942686320740778509686995212049752000821477210366028949744828112890652107152878571113029168653128299740446386337545967450379295270241298775424382594047724789375101762244509081265388389227640862301746736060446677763756385112531774931915041503158245381312310559713817114154040410834336086313948482586084502931155685309541460220944160892929339915955138112813258489999378734923793828338600192913670835589989445624857133822453769602610951275778985286076383752298769337443328855157556844833421074131241518919499934620238183052578593559252710071765978527103430895389053384112053040989211093657498954870577258953521628061424907180022607859603751644013573399966148983993885443450752223359553221173379040291935041646578646035715810855322897917006360196650324275800280222358056817586868653298480783172419676169903527228369189753360501211448699138471126357870739956565652593653960461654408621566950881934044998149734547847659435972218475164290544791818253172317978638997454416033525477113745768846659169840030428207939584363802933623024087409220036390238259767009054283900748170355883509749680434461400273603345622010892717357775244898578376071787305350637305233690112932280727327762123567025528344314794172173335490500671535176959402474062036583190150924269839418901483762846179583498423143265439101084703634608194049646290603917220772916253438385240589780782523079009007942303850414527621241209893184191994085204115627494085999086189721863543354914336918781245625412079449312260660489484080587153581826209579349480312772225002818778952598214974310348580523056478917448227299270318058966208963584363667964804625454551285130329180323753532605344826856335247984268840196474571587861353936589309109125876665202165059950100742473064809035123542429064193057878270567190694050508742950019183708843803042589657343120613094709017575336079441892945587746552250654580291616277880093505297144057452058113656960313405123602166109752720199237252283018822830728376360888857850556268368410650724882096617583163360066698422123249921237980573696009009802237130036263461856991285735016585884283884305545935397588656781073622210332967231670396235568220605181825918785915049748886291988446792069161148148455311230173852041422332574303519245503523015622921350829464164164520026091355313370978174430447861314458844129951154407449536763306295118275363902543286325722071892608458621915564019962358254176459618072906765506539817327080141608177093186403362300627278607688436294514465123273504242663326171553823078456228281899356783065152374093911029732999883007209384459159097223592619898572093344655108325564628782830720629324149088857744233865272223439055166001707106631808792879140478305038378802414683032358355952402840564375530338506378637380809793335258768707553062084418102137089917556477671793491571232751301310398246728906207300663364199221276459228854735754392383866036615359357411366474040406292558969117372884557674390335333969719044529911863971258088606743912727942202293393149159523250850610989190156714133443424518330111077734102674927415724484190039463237040886010624852943596815470487216637362095955093115989426714743605016654635116221244749856830689118021151893054307171995538630833636936948918286773784919405359878507667339327880936389498563996839336342629538732515754166442206559678534382022687153718179134137994081529873148595560631237371896214781838553115121534940868004691133100850398303684174782839159274883416110708309677367357378746186834157685306959117187966725425028132135786961369990309257065115416828782546800081647429431294022461665409226617851785591910391442452474422743357815478637950352184811848784237643509920689378080883849159683734407789992653199972005517856442491312460550819006441026694906155018574790214689990079631581771339013899935879327130036211596290665112210467225085536972429987611065982590472867592735089906974226433985978051552739851870163055335789889623002369352194396742310535940011800164130876632181802523746143433586952018929330583614333827010789371968347203193601351045041009272342122048095358463128608603185244553376396568892477866029404819340788223591294369094843831028660462343074245555877962206353125895400537954437783066551671313684329883273272145616577872257883720907699322150657673423016365494495241514180961521945397227093382326658959055994797532259435247804077111774431751874974710340176896132179755412249749032620014549317096011528576327278457368189752165020975243527286958251431444153791065442888062311833851637922596439811122651506241881474563637655207988965124809877691302143759186293565105372284239673828740398038997197143428157155754651764725353448344294960394429463850136249040751143658841957591646679689573882836110738708703894367466873364700526229346632456453602167972630019406077244922672382237491202279389273735210197421927058069877198126358767076652527892220436170251639643748823837832146602866630456064025022609280170816660827078800864659223175297688095287098276878784681391072729963105529931186339243095358328844211152338269636933126154911743033160257457157146295799533588886226720394562568940994941840006236519622356814197596769975188796901617348208779086654009810013849023354830468873853913520143324460366803235582458623415822785721824857901875346154949161754591747256267069150442946491864032966824203729667891058241676938744355304894071607526524315608924447060851689851488047748860835928295441557365341640563227833948889367659395500644576540087280507441540069098682199530014317422020560275056733117657599668320506100951866177108002261931062575179002846475204725028986583009918625255702062392465540503952442362629068659997661107852048336342431241208944115334779924096678382204248187868668458447564279524924651798411359304166126242162471574243209566616534219514291550916306060963243880537570403718287270440122090745142580176183762365209613237997361874900465691071630419908862835462665861988412050918771850353183857053292018594774749120237197850851038514571408548519949817972554360986224778685491754527090525412949325892195764729747297618899314070921991457206968582640870598967413624965449802209809734522505619118354543090826485967358798692492572044813128119314900653197158161841546563615556797201999351104741176184451992041597905870098475099610559611033381530756371299921394382619174692485996991061139914025232705383819972298853484103997403971560208653559288365696005060554556071961878192674150466984320594599994811700162506267453253849930786251949046034955043548600486735791674513175681100454176361467846039278125078477245090540557286223023462244932857082161129531104327440134088422230833168784344104261915894650257804267770099914259303706784772291408182525995232134022615622947295566553755174630608149876982734223065439509111207561803807918020666673867177692374957117561896293432109486401270744155346144507815593787754768738262547726828599575687916503112685731450338175443687301410678834616752467868730833650863501394816359430668989893732255273075609489002778530462585269177305993794346391404280982644871140777958898063823482243705275896109018328380032468252630668325260447941525181890081183084493606299132377036084796214989450648686573854835925331295719135546327604000947646682993076057300394788920122214788029234909278399355896437681726538046054447097909918136649466298799287551962930854637707270936111623340652961779241698228657652769105339543152505361677692717459480047225068846277363348407190332208190359453372988217168179776528016000743951393490976127566083234545601489149464229799651269614440263432470385478807525272229130023362779898816545108625138500941155713146067648909847505600570703024641755610459082487764988120175343138785220461633422854642898508565994330862569025990803211621477774464457783792063054025722276306616742006535750449125241735218451770428005893835442625476144310319147825699207721735847118230553978375527194579839472293222420112960752990344673021779459166858741786235065649673320421515911275853815601849739203838478660524702969166823239760755737428314719282099334131653062038310329362930140685845676980383790165293358327406386982722164465331584552668226480287356145814837373775235508411965902233362923694168434246551962847577536144520969772418743288832897136828445203303612528411695468277285436557294079164118788044866167556422011765995319827593585427600689582152778966686199072768843824548056973166123357789878413955267888702661959161647245285671860120555601939364289827022662202970326750833297783771500183885972648233410627428619493328543403233780014823524448632584653864683228420353661097255715474616534983301489566466564853767784949280993425227538830648405145681127258688786962505474094064288605093289422027908151292398013977446877910084351859216792875754771589042604729893528843056560883387910673848337740713376685717336175664587899276869777136925192825272008768856648560072877802721583469397446080611461794364000703578159349339566368147118547580075351374111749007408660997082898120816512580944958151163318881556217871918677554422883982189599136468857042522937945939912580733480393348290063542424413586432867404804547930260375256340448223637994298401873504356337059832143268034145665904847391748410356168000954916774912323172382065344634030784179397348633182707763216556117396871449194705168833483842105472368836728984403681252266311790451736695324905304241290682054099257862633025327125384129261190251577296351277761376613862359577608370668948300751677488683990468110067224393545313945336707588295753749377908945149767209451645344942820164099910245820064086964739286802443457409449823000424283679194587238612704323526206810402513770229529747720546032048600484604139795245766102423090321248716980677941807848725215683356951022370527756143672125808812010967367987927798983935153333935293161374774529993197361860059869878423669066066427906406268538195392604513238042164475815888970723014513232346169161106874070843602272485101579928414248634356021190723672611046184147732234826106298038792426405800611275824583857437136015103463050840853910995145167417960631101512641656274360659781929675826515647800881057863712449712929074630348797993363578470843664793477975785212879408627709715229324663819904030525198512155247122559977686183818548759529969205194172133040697193463797944794141926806023713337006699979325904108894424268179803037042973238088427538658660564354138023132615374575964639013157970340568982107143740888330604560546430370488617611950302772924155181855604013339478300207871272555620934459118352056119987638603060219453733487941315202326627628962410721231528539141054333266948755185826582036134982899262270862270481156819403652286757503269185696312703415882353795927400927865518601833488409448032607117562468874431247672204526999555996112277891506007658708288981191416563598476011613677255398691113970853396790034684997807654602235270596724319591563052233253823631901388427475072516331137652478789808358342209388105940016592683504368992109073852689249605754094981530329672729353395563820157611496984723600021412963518032957764219829701030597664044557899424150934265721247492600829119151097713440647796922560396149870107603016459965288594528427706058773240042426490787543153762109671717860031025891112988861435251418426813985330496936820291390600458654267315695444620963712003108166910249186038146503777298256669851473071118859851380796478663046059306443661224883023086350019822307913817729194484190534490384085933277172504035308172922181218019343283020839798208103407580530781092393239217760664074756788776801543305754777409705934388436183171310570847599450857621535681180147220894456688212486237095483200475545642303725500076968744807622561936323480904449903948241292658146802619840461137880209922711503391651622096957407828874936664056533966349199285580280698253888416655244755558535781694116626392739027607906015104555961368675094242405236169318669134263099032143247630316021320436278630026671310344055009545276438686693666764932142540650143363556043314765275401494740298744983439836563133188097014370629416632495199051580012015571616803985029274865563859034165607613313713518912335712436321692298576510870432212311259813939762843804545165313087023300849894836184369604530357542915722740331008922193949351734785653026191755206345946888568393888752210728101873804165793511676922064494865684443976028764783733317353046128394488339726315088170535734703011682884834150168706287954335603917684214544662123032604901629763340172365235130627965492626535499179775569997035120482081851980178933673880816140622553228003628833406823682502055982829672614773856941988944305003780019115667617102232011096406972133272491039548761517147866821866179418316184441270485349222542597934437191455554196524139373664582887681465482924791981956311029375371801373797798153580298940448164612027528677407523653046755014724920697834288144123175269463291812623438222279592584494074882500321664688684689062261248736074497529922569201104508905496814883606627257794294537320862463239738472367116463150569518711085433054371104709439574557083560686765124402357597259696665821180965233848699730194467453398344162578507940557407578211317454112361421836846432434314527402012628902905383103335069779824663016926742631529788199318749321803803433779861104055912508689806548020192603146375979094914646330443605890952585579128817313232516561502035098434297577729108809076258767081168873417808214819626094227900892995385126536023615584492419031311747244609962151098110640758255299187072231584198653628949850185873972214139498573163390387381131740152364053359584479025865682421583483904139816285858102020668064195750845456961593907349919316351172344743133286200904505866008871588444743824055148764590271670916817116342991411226443477064325670472060767958466327529288584933232279768182590634667454226718112584091864146123115461442503558717432785776327770153572484350095504232499790573344350354340756098221180121312495027872173505045152458128964678571257983388370435914193230954340152660329839533153442630665392479818667181697798259710961041787052649371964364810645823244772590729945391856840881087075890971704829166784005056362939165188921465569059293887361306462696049476777959944242012181828727813005676618766209461124190002193077141829133759457626282040883048798066400320306312116685612627066543473373180467210132069605020903888881064654265344392824250946563801912996300140575223142359024527261140600874588587428219443241838113709306773748164903059806456112361300395244467542046693858311414970128570301657764216758485568397569730189407586640391742276582376466279296840044946631622167117238035907650163641668968004104055973204947181062443103497620245864846190168631016330181312163256917267677609206600365423243871427942943743149823813357871999253583715975135037067950610559712821214821897926723604001947071517487430968547306198119009193453224201926594447402941355275140519326080217274631675595184296124962613511815001496515136795807686629344547901127454513277476644080332821147711579412084142887533652984163909530699226021607721868520127375366693745513824920288430139944918245078843365960043259028529106266324948161395936364535527060118411932596274028019203042616720048404063934247339598869406226861541407819438541253388269671208710205277274129377480273603036907022995910072836330682429315092077341730668584643135778296306413423792584137646618131653806600481164449347948834000920962620785963327885044975956071825476945393925369848640471117639578196395809825917870740703335026653186078019676807275726337286508753656487120824849359094779831989639147777176504265072371825128321388230703832377640718491604526989750608617200145677006242889552339950023437099580876727452718520735619042493496123460785473686839296856167883008077400711771673509632829321372180959787695094076586635929264446276491595215602141582654827259231339224595220000871302133523969039766024249304280634349872870417919042142421810206000322807959943931881492682138225228518816116824131005917651422623666810425494867574480059975124050393106160337398046275266029108854844604682539986118293663067264039049563077447385894651871461524857303048833514143714790688656415628549134699186331095880989993629201539284184401402664680179633354616051195370623107400506601533762849064052434144947081373644710170135876001460312746705475300304907144106877678431790023238818853916324840763350060913446780633391170953099494060814058695414521063037087477078111003887316962399716323914001532913278767385973589359991846726369808013735949847466122968890231624961596873341152933785533337133435732501589925858993323768918077905325644953287413336939872699459584962876175479955354673252109721237807046346576279292434697787676166355562727830680030512953681332820322423487365098582798020221088848197569697771497484412738944934421898911999135305767106690757994721425107922364849775404380230439720974491702428305853614160473447602440229201482259987190386136235802218404168771445825214570995973246044008647776549269259259906123135189940240413059001788575757002286761259751104563001055910877318104440079276203778573407178796186574910004851391840998370152439569665914478394514966845959851681357741567449908605048470338942908628107647231935102400982007007499031547825692886085237291843219612004044116738430258641686850245555237480306579489641306259735842179288316729245364841958955694251180296073801270099182301721184099946908025290464252256455308955565966230808988566951450749236375195621948788434799431697526430361411714698445980052884146592709348480261036384080340761971948557166800483529418169223461724492286721421263214172886367575649654590330231429293285179829768336665707705142528347017801141083792305272442613009905448545556407548115809029289094106551961712178284811837411121373543502655137978694283183381994954709040199463650303973630411438750410026895991127782221569495924354374810644494205397680709688748031119416554644411660937025750255367911664419576809900593096904884017968459130608336456607712915236971513383194466972723598774988445397628315142584052636617190613675704959031997763760045830856650472018464220892039618722229292861661317768638880957692310811181103015427729493281173392752475041479003122382497290986763987057784890118852741827542178641750631690962807803833669666072956110473432908612818847944668345287455365244620456380815196529960279346178258273510946414661650005914687064963303714688751143034189571522994139048519310757068564408559921649669681911983180298172992066108137920946828065798125491827205157249405378265280138010120100678079458600833776063609026769989371158891196401163949536987213491498474323625265702683156321183734018620162317447078501740133676608547066301601714870037431259116495421167503449643130895615039361945742090689677426120916968430032765680811596691548339971721913447126340672926287037580876588037576534139244989818754882900153123364936810374258866954280878285537753269661961206107839915162490873261488768866758706456271091211530894992139762542744447616789883275713040728591227311020851410049366759908230729898201903431759326430541895719580672064505126975648826819610859688807001207537827904968245671959513301986178765793503182268492957842740938324560344655133321115444077728990486502827855358155636172620408064758612922766970785544422261203142820511629332030883575019266158945158010298577265879266438041375332655064668689040727848464262932219422676356126703341683656470514035882050517077760029763465944761292857967850545663579735415573495835172225408033582279392264338477406311960515763610463292726184657964373131412017386468863094700512419503258056392439173127527736987042944316352771551029085483159334752446253986427643003434796720367073573277107687884070878052546943203755642957494062559215487269510781320120332389733447176492432607988998300478659160387891227646962313385081176527990482225483416425279527725754887800310624791529299781759881514649505663940717675797026520119159800293551318990426667114807485054774818310745351753960207795412536707273246504778827915329223296950618408698867711506712643146814748585888977198437422939726776707707739033691025025999926691014041767120126109239811979756852121032353199224480786354546937137307788299238360780031553054868297655166743802198328436276539457738794086243844653907342949890391753706501271612431178512223404597977129085436194339794616491881451446865329179720473328085682775512109387061840160269985689366739782806010379529811972403764693877846943955056809896711778958270313445030758653258980244324347335802116157107873466200545490758002499624999383856484883770139177047251506088254088910174033095701410655053037235825473804698056917624165011690189142730359911568806579314855623505669599994936882133633642068363254346025914992250364117404192602730404959872458890050025584463731140315644435057498320273928529523604058169369483151308136420124704935360551442263658630851844699533363028507595896836275814352645462041848126235088140854994774145819485948274506335754040477882546079856121511392640787629393379923807720089865819437513867369580894202304279772666108667202487810373405126960680456677385121675834587359239687637329386215254600480933198896111223578847449509019763098860138799926042279864116993203851625206793820633036517786802463651398188446401303227139141936390283782102355067661117182187268926835800157019514595622750629329495766904820731118246422883697772180382266546686231206133755717778492892764405206418277565209929332551402857509781745079127162884417935619164835156350768816155093360644565764183683953678619924290302316612143374261932778848386621835634639525725752873996518311964393477351005621981886714526058984016834376596017603381509895055544905127032587456152974185123455624739640374746159181833669804049564764244094464554734032218697552040547114771610336354399890453899206163013334123664803153335129798794421284871727377515592053383331531739514988161742991722008897833323618921167207649741486813794496036993725133870186072012514675518183110315433537324045894414281673910408338274479005689284401144336039485460499612979207947000612624480752562939213190438247344764214604277570176553674013728628204327153530923762544070866539874112158671872954477959504631363347096633844960373408597678236414007911767760030230790675737288963356013720990613100666073590893348291018178246888246463781545552896031862631826787947871879298789160382090518209657451720766326014962909491156971663555698060981817667375474265954993134473390363990899721297818660366162095693376870523072200221839700358648037355529456979161200870442905398874936065705982380328033724360491699713075825238609302759923550423669257095571265297202874854544370372731354790968642589310837236824266960897225174279512856411096648764032250420153945009818402385247870018902074188337606869044033741212977761899523164911380245856882185584706102265359173686190924105628828726479617081761304456110947004297900549911244369221548564974470224866651867980552618779564796718713567777262986586248227201098266413570007389241445756239322021247662136237464540415207015569798539183355095756232342324659228718046748408487228693909965203795026827753718255014578125819457102827603857360731002793893633824069733765740115367949268964955663867843871945203085319073932233455778574380202327874771972441177598205455512031761429826005309969959588441515272795322667155137869351438072979956466458016412781614688856498797550159881341732509815783785342200388793083159331690170562149854032905262727091639160597953382344504134114455642691448381427600397816519448829413118883780232274402336499161367944207166369804879294325035151642583436756240242684216928957235415050579516015140390827992105642530543022079586655607635252677194614963389054875549525741792563212273361303438001800943205629252079533432350102446677372990005428912091950805017434725414302875967233089876789669892665399565980447460023007176412519143679290759522831991000892650537510779497997394864717892047232642875364469774639949349252660267421284298637692453738953252121612928966627824085047206798439090717712573311045491285651351792518107530335965758283647067284152358105954176513732813190192585952315310966399386539135388641768573864641628697764575154553833041944260215377059035135302396721691517476085659254271647941184189857149270752900869900666475784811730210450054402400625327221614454849371958934089146133577892826530914996316737879392647670582158623931762305285374024066155481960405106824661277024149227336461449780668592779895771090960925249219581363627986055444316965861786902952766707446746496398180334422517241464633492601053028580364373025525558228731963263314764801401054900857609630665119972568465363952901590740748327283550872998297861864720526221805750462032037525789982805982020898062073511655412283546617750470147562843226171288200278186429361680802501986119304183895733184437440974460107006979387569562931767370884958902751090032893709055761841263308537025978375247242198954085570104245995571536980831554036127345448777289269583743775114717668451587311417365293534029782031561716121378207084878180849190239725035961516245490323676862918061113625928073366913952881557581004876996915512476277976199691727547103806528105232785713670462082416428045549327214707801172419404008973988217208524573237622016776331728560264291189320796195993468232846385176743619294314121446006037300071706449543281556011508863852354890882220571779449481363257428644070086437795675057482256878275743190324313651425252866930608232678988130672874218738936194930659786065239080978185655005333365206085258559544024398655308471062908883381182074534576967927157868187438173486958512607032528693475040269489277589602548240681312281099850113477757370963997359171351344555028385201339625015725849154581124839735110518914958488255995124007684677070813035712215899663061785623428734937002973400439253398773401410406581329485471774423808249532209879159902145921342560486496854658427479561795435344550713747273027408181172182121597700475525477340409569364324309877075133220144349029966149131101642211469746575907339618732579896587886536955928204776186394135192620978240471970187402772360233925758725396472098577365535187431506037056342344490234068346153427361756230111552620643485631626823717343157056768297773253777158954293829379924991060979389330890501150130824885749224279450903935622588208336252057293166910424839293691972806469921823695112696939806086108188641747093721501693710616202008462540161986819093477322934571249159834460107657897020111904077830587144850168653079994909057443565496233998021944265189894984749785714736527903575857419159252583711726221497558902082451865411587300794884806529738747647528704319079211729543155079792107194449774424051096904659880030299664567506413147762037343767415819309773879577621533728750919848089581479328064410559106366647459195862885969384925693723396344700973555969680081002524581416964535809014624281075846329573129117332668268766183868584268216948813108895033008616523979971894740996754642270068277375943350885194589468552418522906519826148046710990096829748792752480249105715060735102422664019795801116219816265758680932764787857207303262248049060077908133361280699184533055780507288095299246560952348718854594198311227640227024611641623122752697411346789925077228010868929288650009552439550398887869605060114970342858008507811366288095787155142441845633975701028670668485942182223343319856827933194292134248275228764495470402156538716806440928726515122804258371426888644788392927217436105973368260678335816021906328996506844142243678178564552668058881524995483576688223667508879286493007645807782284703038873959312047123398890871946778109327088449967715276207726582729990805089189750732900220754059327166979167104673304648263132614748220528149225763117843997429314348932482108264660169679965678509291941226700678524989885949591236436827818208535805526900977967086743504589482898298720960737044594891305413457405245409791973694354025693068487684633449037538074104965149775383684076228939307989293698234365840131034799835914848186026701553691029605801754120427821113444989270961675641342204830110272705589972628405651613488807305435339674577203991299268989868722337515429810909146100539637947251080004331544700306607892977766211458855112266039723364342120750228770682437111231165598880052091173289531364580607040277273758187713680663126950565302290470060717880747904045796831522392481227815507820408019655785724939434220166406785158286239748987506193489826035735946440883977783997889329605523062209265229300837904895990759519385412352858940494415279926343953291720759169536160947926963135610116284319679489645539321142754937710582207719607872565726502860156338334172466301886704117621775586729526354738006284597825129628154225926241853889769652454451767356469394178190443083155748750296051798522719612677607930358353920973407415862206874036245013804074079994371035236797491277508025890058341919908517548491364044844840980790959452565647209002459316373966421876207790982797030490773761485773537338495275074358878162915562022849106689041291080318789926481158137971123692291546617065184272819135394632624247383999211953389398389087872399409142118394660411365125402153715251802339791296844950050083323395418671191773545471322147176522018983270723175565981735098853330825735170378926626958454491591570404452627890763413857176300727336109259719884656703098712523525922770895643891870290907064608413199851914596002712176389177686819957897158969938237528394787909214113884104265912909659856488558565556576016494552903016809608225550222475068030926891158493030268555865991873971603564514347593962641027070930551044689931971287741485806273002068406254971829403275519866026508014220295558788336536388878275871892727672943452582162126487465539359445298518367986019515389903086661067454075732205789590970357818905506324534535484206691865712960764286434889796400216663115580501146187669161543335194226277371157993575488506243897315762544497465855276472486086331319486928967991335981273956237402366908388146896292480432633486215743884170042241059739582353254079966246425914731759845985397863232956742142909691324908928484297825075783588772776821372209186633278842059819504684063538264612480715253783770811587661617035092247901939689812667812911352691690822344131554546448477973585653738311572805581451379303843914586145238121712952499559188804632354050504036094913937957676667267686370124933712031815207722360243184261946225354601859524702244874433692602949616419626476643147648534508484386848632392234322137658775969163253718413863362633552621383424549370681239713438060196770071243183896241674505449033152321636573353535108323121141352476890738640458014708527864372995362138816500912317001757863629558953906085082708228463029357843763476944432851225716612580259821024763602310025457323456088262524317895533468445256472013102800757404599874054648291846700763541814856046422163700673275983258953943586561892383211105722271475833678524932919342224283302262707478046729191937730458056808842495674602832560909556241367924035646848353378261748445305459968014974906068774423428000485896020680869854666097376729197798478815531167612151905679194403026879272088817982454211567632369227262817759539614634156631422379016408743717355407576170913930322475317098169585677890075381428142604866082282616152621970934127033647826169146726702271512625839136645639243327023675274954430645015596298463184024317428356524229766796916560273905341779661722793209464010332970539209938605846850961319060204715410014119682823401662354404976428949475242139571983408528884989782657703712201557097026683015333422929720014279198271020287353119918362067970261974135013790855051551601894558209324474290765499557382173785508045395297195791547560222845568384442761499140450914634110421960940290223821104878910961671914979549304040074883358621317626868450381508630710462342173021736759612365353972935996699624120820278097516876714631446695282037614707219350633318753400851842714031793506256439321907261181304804442014767429154438444281951535098037184953272361757787901859271533270324562991694019255124664380031467947436597793868845998231999913660166674017194190193759517934274555876602897376684619516131946259574547966551271172913127173546140005007182131191831248724113585081237368560735485303564383408985718877054858212064789096439655418643987980367723161778282103627213561969844725924488627405619327920530919929262498306237983023717851701197221303360057913831369614931245918038300143785292104652035033907147511243229017860583284698503224610178147495009371183651135370128470753651867659482302200289373386701949414100129834872607580575885985485605000646720050769546983182627643038885706286569804633151844200166601051688488282528355624652424854289107652093897583479905187764541924064807197502487455749133222741952287940996584705419863581438898177970468679154004468663319472121798603434139531192479851019782114700848759447689479873843910345675442749214293945124926802905078631534006254509210735710095580633107056083351452341252529569206850019745045726113778779277205611556898467285423848412937159242527465349150328374022733286806024619056566746346556900052871976639132085075022357056739735143980705108775575673358271614947204417590916544038051085220039975344304594868877598394986556940209867513412733060535193110270253307394640870026265213102583244442659741107144320839338820058782642067541154012267817669427723084169302662789251266922248558041183645209249841906081261722510410254890614020468286328342329028585075654706624077042482379061920221100404991837703520995511839676138285820611043128810477934801903771715446001576122688788868433120726828800278678344376267446924552371209196130761393273829388995823083921684023639591828922457103565061795709805867141921548894512540128924646147968814320747198752869804208297747314344527625409552355352914242297145902876394942284561770854530994722089956197875165694122041905649694764539874191414611989805031801297181499937667166683316986045229763994891646838848381089701840197577810997013923175558239369813748625196743713882773782720882982591173512931811071231889277430893908240984054440710061550831194214571126474854198136857692074231544611299752405878638326628726040174921344302823502231893719508814656220906164231581115221401900325572146987361914603068632133175947672822171261593283340357570086664812884235000820530524046793270662306904196723437372778839788093936334711196145329515252894052556052009621411511061248551983135572256498532948153092259967079863012936731555491355201781741448566910910490007236565986678573503042791759164830425651930411669069456519847242584311209022211710426177299446342539224691211861130072568980626389243159845934755712269798800123740099350204996735306155795926948694022592919663356384713155976274571510887205044489370987190021015831359863711356710321274455552242335565025154415264201669882474234570198306836581036713096105934120344546154282258818821866585360841693742047934069874819375912054139417853151904252205390475301834815084515908992754079295459583701975516405819226605575618404829002799898652556449491757845849410936832933381643218984076771839678865640127879823484954366315752856905901537641949704901622301195317476523754353039439574260438500252178179003995767046514296436467335781166584976590069086262593653630595912856034280135465452178993503134510060168728250023896458894805269888942073840068136210324108828762173245525091305184435027112989254119313934299656661576676531474804975904305981315103313677596084591806813376029813634738355461896886413079965817846333997074055058741174909740578839728069167967440551409495247483514692019230349461456898265786697092685460783801096048387365445121173552683358456590165669752362318394884453004433994333459857146861788573418824016111210404623028496257171350674425462114411869623783672035396764819198015713681507643416718756489633876768824844164608134730892822507164346331550235751973365546513423752760703569987448928434869819279036637953132171288721576410327780295854778699739557040057199776545752852242975905669060142525696054455238134536704778403310699409357075474853827271736793291095999911259671378253853703502331257674580024508689507655345007084645518777489079532367263978292785156404267522969610021375005204547476783695366340609607564414525469118269277692061766265469619242675185463738102803716659899743958133469501684380340841426362148430687696161653395989042563276640382688937616753500711314548776893056608915029521911911735518140780393698818200634426701070605728941760746996778839278502204172440297604577964043417352493335869784837480263051847840702587590497078666303908871978190136927538773819963078635548233832504994344257300875531201552482135043489198192695140827624633385485815942235698975990893390182464816731619036348656865748166457355332631453828346767040605509956733031746355873898837944508274979612780399695609003003037395429317338492074743407742666309175348566228716465313887597803975960064219825081648997390646200880771439179711728792302475776940453318154371360438351058503616029350522374676506617400862004096058795177290217001956503179880495002850446905821012766987232882210321107281577648684692615997792332507306532838663675167159635492445202247488389053299258751372478789758962471082055318779588405335404856069444741937824719819979610652765931896668431384998949723697663458759702670502853180293263468877515174352190018835632177765428953396709030743961992962168726880187069371948068718935119966020354945676011376408138385444403386051978446229188099167003099490842919292870753601015328949715122607573640682369988504579448435177901236757688654174205055315707009531970557990892555903780127599940047988876188392728421711410506276740276516507370899285704658524580968783021622762541596923875855869999721434498484534578299594383150019907775715246791300491682709721233797605058993168826200195613080774091299761735525883752591735024129074719446514862361935303546482416610922415058502349679411394565904199334877167244446655917109955054748942717423660026098069125063859356231612258446547259665742908993735268621215896581176824693399936083759190136519875563085600248069358706842235121873834701691711895639240193892296738412071457446198315804487126245406844705547256130073576721000990640886152196031810982272708368504860637324488141711309119751433610344029015759597560125173671358800356717950907241389203251909514951030490377386282979325778775004582322813883975995710809912981616478572388135255711421907131322293464438798164042935766273941199676668655358191202232205884813679540700466092271433649446842667593249826468638771098322703609128033025182460594949716135721096135755472222998117025561060985716861587370069492986602453828144519256712346293111669068938435689753339956662559727359602674023721835200501820233720158594322955192475531558472838023642129556794281208163005354149795349004715309217902581581222837320917804546319322167269407226442181322616465077946042465960674215523932535126407556049391758737547866921398015367063941467263022167345946302237753285331672888367270055574472546414567506864839794494059692529536159469125658720437384962629708946860538397826617757168197335912012579208388805581006158996134360698074359250029738038168407712467539622366063647929220312920381210196404032204487139170014633822267866159025997291526108668444137346160020136850662282211249577593493520161974646247456896273212224780876777113964627847428031381445769696788888241483990063614328755967908800477607001974725389207719263341960477012863108662591874572997327695460813085894018292596568305931769767671544038567969447529225551124178428685574207145731629978559560259582801741577219614984722641197287934838033472343848676098624452390675026931107009596675848620024329424585091373897725970990826942028028587166655372538756423816725482224169207922228688622420194897808472957527839616532079211175015990567780128364878786464904644172649226655793012384205125199797012012121343136714570094119887614643443756485708513691189472316127003983634296031608929000978044824001404283974881486069993243186436030226773104661211260265277964548820764438375140490919699163834903759592822113967635826998099976924478402231700881649654652288635606300712272330450130700443245581925867452369070483340254871430401564753958040276672636876786272221808333673442655202107633058595618816587706301357621786826887461188109368166655412252577450794961161268113484415702131909681102391151918752424444086637049882059341593777639678378048257905740443333536115685945980215249630450652575923479963930514387856043173728673962736853863242784543936407910348204623801563472651113369764510916290333112713947639110218407806947112545481386303262335546946408197890426740684926068448330323836260541787997422035067893056092905671256027374996722462057048519642425233252360560257305286922935443761064981767377431920513278591019413303015782972500925358371599865882324477473951158191796223247540538995464531529387278332987857156533836366248089882223488189235182502266839421090362547686190676668232560222521178750045969085798120384279653514543371061482735223045345229948789105522648234572966848502011429700546361565502723294092459052926723017269837084946102599149544482456470102920506256846014982904105666894458906897055270215088643678774402538905655663442556568570342041963973425335979599317473545928529114625026546374522931843661448826959994439996172967095289750752959077363009658269981905442456711296018146600843071143664175574175401013978347856877660169879415123895393346703416568570400880745945928395416732678263080658267785179270491199923971857948107622045419565043809623273254002420177202486306000258674348687867783417009188743240416455438459194048714079891019576880645295410643539771896891861639232831078760369992336658628163862884660674496411718251592931068513819206744555699139792919346371862368582151439832049548088488274502477126000522721111834011268531804480395436651234732156905611535365925319326513940231269620157474601427411486465601484411840045100819966887735854876378304744661883149737563584101661501251241134248359383609182566695649981764949986156665837110193716174195017720091805438400523878399609590965954207229839946111575599505770851596882542418698585972867701112929014136693489528736679486126588939824434775053344770717952578672574521292258391649967472134545027897057835991371103867247051273695738110621714921748025909972303725354431753085137618312015667538375812103045364183401177852806866434285552583960111196249002477886678175035152312303090263415814768219486686555735680989971333881948807052762479202320658722169869399864283459058684611630701956732909428321508410781585410480161849735206154687840718418472904891680450468318186275869856796971898874310017277399565214693763378386241664998318445212319287233542905512657644090183172465828706188537601136470546800997004450895504802557831078707698062210966815296676310286236230942576833539969355340963091473642667026738698261689328588683726298218197641149673341629681961711493105924304836153498106281827522327853578078798666958340624424290040944093361931465281336986785088665246671956669357855679554644554634046952622217775154111667538173783432387925087790860207688031394811581237355045912178565556991865897295335992855162747598712224381422842189879219636239279110905301656909409014800854349394255622458978251188002780201289208268481844219667144470775736350775603007959125151073675164342035239066684622818722143247978355455593711191137704434218604524463421599326712515797540509688886917712659031344190489991017547319671563950278896264128763749885509138130789373240587646680057871788659271015109447248196650939640133894757541241218999078815071463872032678027019282206121996214795874771495275043555008884138371908638246746335714326176299169895815328313104858737158959246068670011425761791737413432754041694483581197893215514893802287777913478269939022018736227508066670202864336338373217891922055350712054981014485802332004124224304689296572857571233322728931019443572554886659837298822587952858610207376514757109112300782937359747657442928056449302042503849493367688478659242687581648555388469356397445727748217326654078238173467010575532173881760912521602035460898674369755795679472644448287870250496498871817479854911135027204945929443701714731718725545064332223316051623420868410109859743478346716490651227393089779503707672698471253623505758469972342770631895197777190197525793028229247762090459291676437953862015001356108626341404413902160410004422310163638627157403646850611740826110694587642460134762912954988973036797490288880218301939703645508442579387265095221297384075310861539308312938269171008017840866152794889071513040437203324749655377819365384126429738855145442227407549346703535155931982144890510822598914716119292779879979595536365338809271285837703192635281155716911455866966344967434344823845889182103196711817249038875520823256526999740881193225347613190535254203216476385966056122301426733079760922059847612338862579236750447201932277510733528107158523091960205650275083520790518057704517213930299382944445557134506255529209916858663771272914582104791461796793089545171579942591816945017544095840556998491053527528910902906838536755797409422975448145668001254977395779444471841064194318975079051667180159260962346577250934704738051860449203134496525002377571810869948735589065689673249570202607839432226579700757992265296441169414007893970693425912766129821146742772351583004898379447206292912753134059774688111562279028018172194152702139424484857688965303195048849673309248075323737577190027325165513543237622201667871136781392165689587216959883750390391487964907346568308274329884486196560921371643886230549705517161061753988045902324872788059833077595395480957018841116933632678744723676979298976206554295682443102391716502348541858314054036635502712021933063915419296935989213058714338992290638848493397287080810605629503127927848748902813304713141875421560325985852621537089671020184052732286745926779543008832922203161890177033100113502017638881879441559118593595118026520153286214806771164383230890469186228538139818264946890267814986125041941142143024044360969751930567556287927605968676915650458222472321686112227155468775242582477726134587277140047773585443418642300234066632765728429248092118961066562285567119924400921112807131475089562346945115490064762445732343671731307872267910366372085891740038156897316528177919918183422053969171153610540781452346622438565568207190638693627665582540542540607478706891095497517555527115766530371255542991193386662470329658226263325262357467058546658277873680244491439210213012606196548823656816458146578625234812581027399766081859731465437317265827553886219228548342421727606309796866508370649319900968597488694190409385830930371567821980291370440766062201469144782452209434269176172710254140135312542443775669415405540404812879824034769452240398186114017355299780532588326753584489772978045669929974311271191188962649940503536336456253197482736865335944698289014606096267961213772077507818048972836689666593953399596491401291202159170295103385432100816798214653062166362032169287770912932605622035492215609293775744208310624206871625316371440344028765385651317588236603058847941416094684898873954792240460714030663911661932561579482637000620680479778139563945598144168261049357850614810354880206878070448739465089919596907406886463706096687358272362877888346654805820120019150239714084446078077999185575423919847268907448952343615422395448985919830919086166983176145691734768756379853750888904291784122381505162001623413246172171596061139344237583436079686512121674690886600793368818995326314255239769749542007823024488033081815806335672348409780184036045992847357544336652612631928709426056525195750357156982646886243482940599118228508452167299117896627083160556206302941640154154739194835209979449178746405831821120161979887482651668859119580435259106623081406053294065026422874682962613893743359938303918588630538101247801909281553789591785577210331095555895778255455907929563502425542664766187666977476004939726097312167399332049333235240013237544278805050734810498735634177988920473863605436151529640018621254851500569362035168285871448702110798492850684828685476883581784692866361391834251886123918027154021691899056196359808160043308375484158339688195571111003413839088803282419664443522670177381551900585702923540572027907601995059697192478618857100572068471741495354950252201733820700874800628242965080089201547759224686845072618563749819631935798346111658167984740608686463764745856638246465181994607229346294340545016627180174819365103932312274012723028100005116904374504950482048057022533537411376599107811329990285170550917675832591042892288481444096535041440293149548994039939831567086801910069622559923333544991887129350326200583098770545145508443820121099499496467733197249628966313452722732136595698639879899518892333500125312252169785007913170726861042234779283901283672958134687948234216256039403414429051700978890570882718215927978288836657304315298688940617585791108247593146911324545770402245787352913346712502884150586537215069401296973259175368875321488290920958558248599016652123489155670364378221291050564909213953915430213577157067438120330110678637832196809826940776351488691104095469978104953561955000198097909855736654081119093582318231000220483436928031567099836287343756165070115488469318669554857393427986507429277897841465132292046051366101976785650023045046869848123173295537590238147377265592005010819629889479127531875010330596871376292877025318733213857438000654837053132563455798446087700612898203758424085689987878149429856989489232999461298804542388810891199709871408715334327873508857587374413571727936896404909688191505231949637196142950789298833077140053066130502152605172827552634630017801124627208711705813466799579539445380126791000894580850606499070934472091466578814609761084965007929661077403230992560645750741789631874536082359934511515780606527587223162986300674568736718511448473506813480146834868121077032302381698864179555961579359093620571440857807752817128844760321580564552539479085859777872098637381687800564045017593693508617411093411873923700994038585525100872516691273962975774734245309432975132044752733882603300110811500957260182210529380720971040338765447508170168087951374040459693502332896873431172940996069310221594005861618520645282192073443711578514708323098295914868029520361554500198323982786810905863827306991284252594013718620118220026296740484360481644914607310916337070461697705703595415018979040243800472164481622094648585969735841967314516583937796973771841903574491178009235806691022899911041748353314956527523144654078000414843730396032618860118392059123880746319660385256152969276270500177628351905197242401440183706108032357324768993035905091530477037351331614323968290983141778741855276477402781855343659720506739637803241719113569103904782875748477114054702285380259037844399659314172135460103619816615880917163061825667285593985716272440292431093693680349285340914686503640173618990885548444595217333136362329705123376108692344295686838408121635257145125581305023249989185301918580586799899634461571570175905055214790680508420007141130682772110541273508498162176110239765491488788701331734187403239820075985518434926756823939622046101939509430265021479553757283448109605199912194525063947977030729872262494645265170178607002333783458467229717951144636575768414635465371144350170862407646863089817942965577862992121656748357127319704340553089093067546482893994783909325206880504877907631254520251785860127839677115015848556316485386243041916943760006385230516721055386940709453849834275299008927136052136977102457606786547321961138187415595676979645250180019494036815288545046386838477947289078014305883073021283224633038624442335013829322544250948558702908220428539450699596458676997978741806995866828235338043965696421657117630119316064603575705369963297252420559617433239222900436461345192924698975393201644124229587274913710622576766987866428284743044332309766427229725836086570371875051667264622062507153781871915833784981381772614402968164659059359919530483323333411913807477788422544281634000182671923755202220731672696227748478676345468687362338892539521293926836694576525352556510440004064979474627043065833538963240270031117679259517495338719149321019514970088407983807675220864143148364406450703762321383961626873003147937639000344138085376511374786221879022475685606565114886050276127601098605937913702316308724141867098578064425876217495276559854851582223406336996139294895580708918185142703092746655367528935830785134453077518489502749610151750302707167723210350664265936823515615906093482531262672938001487948346150823394036350158219259205197718527985587646979160406243134332472620453659085979414186315381608313404293776516403239343821588246034954351778159068964151029428328649684517061038816493455801612565460134211861635068372251628023129424176766281160334744045920116513106918516094344056425579563889144230226145823119099121703227044820537411219199011211139393787543719488381348587680218763101038711734954993522086390834654837573357081234499105528693445778583497407877058176028182709843968226997659816251919607402677184283273434694197666130443167125617949683794739686706210223712574276884616723206891448336795269506717658200527926714797490714251195640405902934702006003101870027698233597717685206815869607770390559029341698700751423446597107336789775958027704783849286371636939099626597141574296276010899666477615785210066240276102990190098551111536040087374810936361849653875301233829983946972243917302705237164580477283028209137537631817922571921889896591539019251461560506561338054037514685584495189507428568874152774568848501654028426866825407883316205446637724254689988655462301384310110608958972338717790910354160670453882172189122129395868457635796428264401179344725866641945664531062690939261892730709522179894923073674803955481064791146508803906252152523558393096340338656947739396913392993607016696883690048839330057679237127160593502778891575355430887125537837586402516141186595441202006853048426548900127994570431910926052442890697616010082044520434024301785991674030932858482177836507993776303143297102018317314495356746836779898158105233134757608783052569426671161256787224006307489348788373457152806967378035412818872120424863455275756102611748002678536684427266448764320839585392114263559840445923916214231679838997292400999741891048145228211824537786852344933491666368058215473298235294701801379384556496904898709269415903481208616641418912106598622039402955890149519005059210103689750305768917760547130868764713934320069386048150377399442646408541260699658367967763684837492817548561598086574783658405937147903589156279513599803979958826382275346570484060308618569940371923031518216235202786923042273293023352083096732941244260083227350374570878429272417665340362035157919839917999493325557342596341361645610637983768077732690759024572246904704593993143920265034053064521964732369809347700797226501051361738134758000024303748963872601033128622862423302123832668170729533998434404093214359557279027683459077796814369122286854888603277590517711721009522867322124625371157445231670017613870665180560622895949470300918467814953836447711847940302204353458006521707810085386653584539011424122343157764791302832375897734386648362855466256172789219181662625386833884104839029797955192062087205282234231197308187040853806658159225537827742028569186561145000738305765324967474166584273916593575248626213060596679325132473184749593017845634769955089070278367622814199112014212736301735345759458463128695056692727578270307972182799605769754624093482559316507461682339891732569024374078036005892276575548805643311877525150653970383298522801574593101149200053574321785475087471089075977071643973736358317471325549535701642474308017975694102351287338081788303883275763873224648828241171768297063231367350022089011940643102127139793233369305638328358371068962812672793445521313658380380931924753186974158470134459210348791845512588500148204855580552548263873656430034503916916503825420229639229802361318031986864083725992802686335504871676450987512418969007810963999717886844826054171501982500988190614546548168324092597412876539295393143299361112556645469787145960242718940086468203265953150664098981530089241089740688550942490372247030315774455547187485453163971947908080294064899519762717960122852417826634532624869134031934364183450823949917234714007582731023781864292836533214570159827795754004774582999804332025867149940076413450089220854296313350156473139954557716296485255963497600406869067557524583615730871686628581203063630257111954955114678709775178147656336390755567702513765061688480143050791170129783719882698281083914223784428639716502112079056839136375070880983524364956779170889734239776150058724404652115930657670024443409345916697854607824620094182204061832894678450059745507416778232398200662169326286548914016830706743032539462913283189280418676504155840870980444669119796672208204531463404333705423545043369600996237613316867578869405289832136270326767241301606243743392586412668847246391947103985112435455350343716239119138965028734697238517037969862606462539891829935353446404686915133320538994457537353931421675291834867491602338028745742192018368622303772636826481423169962696933057075409248423630824830488411123213505139456231924102751579148810143002064740342232154609440629567583441293056722297032740476844176137986729383694070100079667014510406005684825304599272379157491303887851723818010947971069167806614128631521206922926785387567343181770762215328190767869961230786064627645476757412499989188895839950886188436751449106764404741579517269957718267172573272893336874672563219693854151907103899240415102516631672196368480514588888879751569146174225556763625045361165342950860480793083027503251085680273402085734496875844761723039198728891138019951998874428516429423880416363450632053675354280187963146454649701608712891783899155615039189897519642150143671690855950949651929515041237523292648079915556005327207649469311694799764065478774483245132279318416645942369984457473805478674562123612178376467196594155966420285050675901960028645508411456011912287025899319723623975410750692664874168892743993427511922370477577427724217728865350932410760691480504359999945283038052728313734111581864871729657556568646833498156957420607930689571354638849923853690045445866363042634957064239175137258201828521620737606117841515478400831035248225348651814324139350298498691601383578749596813421561682769417909780102662769261992102327289220706931037318476818192809338705203190478493568684538502760119515522355320061566518232047513438501300499507576999232530984685115799638201213555044943884154095152095733980931398833507729731384450576677196915888304880047085624249138334679016056960895427625463640181486728134724059048582459241204292026732617945822909205576038629307121525667696465840006639344416669281492770635059565935271921207899987634709623616606956233411943928514157838482367902423583212858475085549091550179631112019017024740279088242396934723699077692227829075367877089739188319245860263080947194718592597465986667154459621845890871403736087952716820128048045419924818815473014921792358858909786212908563468897205788377957279293150632916349183108782217202639211111768605720584130906020799144085337172695429161809066828406195284223406477067939113121084299183314442587161134950650970145329354749483444632535615148570471813164479868057895221137883675055867566120164364068974271811066607422824170802217042800898078814812258169540239338956606755930757697347963249689409624264335665962265565698237010172550185508664997844406166605438996030277366893394537839311714525460402558147282387350831031774758109803424097076045897354187977165127016269127929668865310866793427966430280397341606264902977408441838759755552343717929637230364287441609843383847896833031495119951350795170283694152341925790495526725586536056204314743309503742625914486060247340566100059184845642850060468522449518912103532606728882205890849264748963697620066557200776316914889222185855253832964577284822845244015090590884471576632461872992788275817336605095626389072492079092404352318011355523015058376188971044103646142303469233299293812681563462008736426241614953567096450867714949891354061099736470330232245866082479531387009109624189597619562341922221714150456830023839109897933281197508400868907892432944039402543306641526740189354448066079538941197753897476879683170792150342031233994869173064986119672389244793552413984423296566207646807570409366319397766008857783210925628520197952625152233518060111168097569851568965735181727893806443398368314722711317772713010864221757113973860288856215245563324765989656790917383172768811420642931506706683700326063767931987704103956306522263047686259564074927574431356184025037512203199849502480787807027070951875112712126980390934513665807988620953910370972568813666723566737201619792603534738302872774791036864955276101361735467102116200198605893500183023674127094035960332422682688504613179430881144351282616199981675465556889972171463171877739961875217413685347950284157709002992288540621537076683178387504037656780251765881101477154085069864565617580244277412588137607512729316935255901027912989956844656654626336842229145141282767691888865124478220631174093149079649671382981097829748043672886684193234273446294367791636307803991054237585200751360199281492087291570070880057944842244131890173858321463939656750826578002214578127380038361719560562733231932138275415929296339627229263211399488997962356046794613677577610059433793582727654306808540414503053419047217355243376980021112044233415947229054145749651660958507238374700413477299000017176049006552208103020109443750898721246426093580585283872124014411327930514153487947761299959153296449755575846990381199516635381286592928773379165029998880377172107900782955159466961443262438790595099062972661137492931752087526386160358171270074240822079059176111039542204016625172562965458114680444455378975871328589943218325133294853078483539481063548169936003827008902898588281053185977882089821460718171544792633344200046997108105476452000672150757078337865867551195339259934187081833766742209759230562509537480127838660729416644481351710795692646534521934944114448437412634651860251939063733223698709104039694466656528768419326260434974330445464416652088852801598895147575931114072171110088910753449391169261276901867885329313601706056681016856909486872034246431994475187969367679681494483169090947628908145892130022719211936635296047485471096480559523507578821962956876247750106735076199379944141993821536895431815477376257895903337174244405561142222526221619192583788956984135891418972684566235663956868962312766840975012025043209641008138076961863193147096428662685633500925445838901470509437801820350110520947795272329492997084473971523827728930322651746720794295585141086916739974376526362488342752847982101269818838701599889922163056708554158693278078256963668531000714804840180119652633407716293232354837495496579908091783082863987451889885266083520735886743976936757421111456691132845425374980297710165404070071913697732510550862438564895241930866410879385500904409853660063757550395412532991867880070809666615163077453503176352623387676133256012232548673141796578221478046933981152137753719421989117356587649112714883547100206311193677316315757110249475868540968486959174905673180035431319237279428348477209418013078680236762306033021308248104202119572442524664568490612371880104740723093630597646634786183416812670959515243593285037967727805073648284009854227686931922274294371463117291440400989608554294078393824687182943285351042533703915765676853214298608959428142408049386256115157854326713707484766757459397902969500958056256569799717750025420448666177185866174890511322576324516465221010551260995966218002611522903328363334952659634799432954589074190287427377845619035762718739883591704053417105853629553380245613180521313468142462289417064010984492611535259243848963551718812303015462213382240689552253130455122131806816120909950275838264757323709992765939264894480890198458859251902237590405043000697601602259999063542845890815107434097314774731177045484384257646586738515928502415284997379387834882133945974204810368182360980880692940200870573703044213834295000962587689530050286265568906037454820692231166135606945367461602638182732041322749733427409065003856468480197820690886967154246397999858505791113154262179282276276992921927799517726131881987023688581398628817578703371539709078411320142318828064836110142831953057255250215539114346631479539904817700179303823587675758514077813345035637428137478974851572618896375788816110251030892303876293718668434120180852799988492177249759279084077951390283504199920391861207571443180964073231031856857411918120636815902386949710564120588541068131349297085488288843396458229406636923540239552299616975366118378378356287456703071118434166932342145417917666273252290617034001704549573969798433094799590962084783723826296489054576442686789971111024338297324105509473068700805636675323766093276526454383528318619439217823025238896169562886722481638810761547255493040982147467335211306198562765116508017610339962019300212937499108651260897177261887009963301898515715095713458238551704118545276204505362133399322212800890583193648212473787528449292007132590377017188748052762963827430527659217515812990625325495045305133611298260727650079648251793984671687013115020169048945180214311195500853210286691273416874084810215020552328594762903169738086181993413918668152810916126390072599420629203112062983102806456429584753201050394983750465899094038394808962915660437089415907614838814042912246678673733026689040124293643406397135482559745427164911595416288195255557088995735435504912638011640392672408783193387458290708632204590447380036155018186958162245087309262312347377221620280212705302992801037451293161481681995394746667453383369510790208913518298499517609721574682548625948498655361799565396239328593639946562664187193749145344074756059708744417714191034599215659228198204477037593366031166260850557068296563339060607165096824705341422016704769209887794714604340767136884354809115562162346659451940353427560448675693253641888392411492686712808425059038582273866573208511552965170801485384327558993089924502278320343349324830906331038381526708503634410103534838281691191465303982467735214130743599692283915257332954954387541130743411847507859267922544858973942417146032191589271928694724353200175358020748193459602921990969444669590419471644205349859959168155476720100220273187549924460712445938920796521280399751443916037812172718714006605701674869204566322539185333010345301797932922439886552773934286806667609332623106203594786217859424025518860406220121221320845774205622099086299151878141119039415254254970057212324314684670070442790080985669598654010651889611645978005635828971977903932840705828278334826788958231542468710564601353516589325367910769527953643098616401001340469933757664213735198941666282583797111954777621437610188023861559685774966480651960121170332175561770511295245954019792213225704555005542242179479917577054439527215838365275493162069208750029714856013207213823772559825311350205851421730037333726480837978983983055187440693104253046360528970418627936744160462213409465472596380462281217077743176923063639440846296226920932284306482505210784145090634186372263714473408055455975155485131850055830325708726684917240432582890742849724170161879633227732005943456464778121649099606742339480376379239363342904871864353862525363876471765623613796835007373760495717252526793846540997476526880088191222828223540895679655954325650193835831663478396138725776805941787346979947111189509937351440187889645199383948451436197385077403064437388990694094063661782046713397350893781650961875451381449064107922511557628281996753596859896787488576080092462714911153070012394391155311474873801190561769675100296426760045303899698118133468650823646786795388612538323029731429639923060133306367815537256557671430071454940883855858832407367457732637185286775098521696769590844588776582738814678275432465253676123543185499749715725769732339971597540699328635547762413713781519745226876416614521251692466267064667144266056561996323144961041118627826440510357478737298310896190835368341035618546995216219355513383992075885319849253966220714637882658679084660923440208533113197887261805158327638191096256676502902698791273231441868368259791371112973083692777807214969584591067209887780019630570382529714768995141563224542141519874471559230682605440229837556041996663598421838613235953773958499864772871398228242700763131498439567893184714507086502901055077862846753434506231541608096154262504237221502147772274681157325440579865856792137958353678309452417106483962975260819220684074572109713978961932203322006553079336414431611410784438457162220005575138694367803743641903811925254274955084443752908441745142209931248147138916819765540893592313677667936160750788295281083508103046882887547065613293965848058580358346483207745218902833391333264370618797360298988469504814606327145143211197754936373718096346094998326174511470684436538724249525715951459782021090671631424369670633991838659697155579608825170786340907382975473613603507632727287865907169262213497197629180898174407419526519490415429352279736042285978592147442581868214603927567906286767662399878070243135703313234592033360838762341630837374693944810936486653579983397683599485508335113087271288977711934362665512167855157086045731097059909524888425971104603912906520118599572326090415858616463430605560527659310874736541388828445301239205551668751083366872357661241501499117714755895237466646777730246066801803629538503156692520656343061363889048381135774038528712684234796899586643857144884518692451458053553464966552772862913039458229841870988814920998820461266182125076502638360507618132745040739273847280866559874692132504043403681492791852282707789420184449523498087857424421781236998068677488815319611529244713979821242788643849192447377458604881788141887745790726558362029373293767255251032050746138584436373121784494931558646145398988318157642366832470134033665002907096886229737129037075977749925814714479922107805099377003921510559303888912306990919953028393626491273284893417678788654749461997064236968868574683805408481102940350275358425981314533042821525278819285259616529754006370412541607682084028586494937562804302440953731429434520780773190553872422792310429274773094762237349116842690167847094734162560131650297638184750127041008952575813734078651384828972199567229200273296083648196824251201218758273534014766090030413236489090981966389631572851972547288765228872119007520287618027452491455125244824222968576956187505145621547752317618055394286692130197878801285156585297859849313863877725353024172972135802363464063318571858253905513887685978186687350584134661547597454285707893470807954236301150567542482463812550893193040180820989076435828134360849435937790905626326124496570651462064507051122916945575947282030862006194376864835658961722522046899855141859393724688304649958864897123773235256923781886303471164576509562661146753626086295034071098370146691884304725791163008767633764297665289382995318969173261249365291548990774485100013246729864525345300924276487241306463678691607121626098815890365819451106927393071266095208069715757827799092735800497896047642986843568572183770090131020115417142085046502083536257523284668636982159504485875171276249464081852847897126325573293959426315224598577385756014231377527514830041247230036746151455927861328637258975548767356673301424144519179082819447676835913558732178471092626433158964218468397564659915754238014304101968174447424718999878817373709889513840231298921074828603464100288357003812521511690737332639239817949812491551909592112573191068646526787546104652481343064358290275931760113876134942700598240000948181727028078250462750144338075054500491067115865258837921786284251910937629416598226646067105696360650560951062230551580593703226343201880582845554600905668467811153961257372089062856749727025545651010917275335334228861233337307076134825189924558774397069533302028321143702308721618402292402482286363797876082759781473402077516646691355038003563490856627285697999970088925632805723227073110193292855012165768492891917089884368236204702415604317488364205231616921355924227206976095611887769917129341482613401026348055430389589870059472165213681886484201493565089263661845378324437765098249725701587279140225038467265625908686802628432079201504155621785396228582730150511225597985869416703322664813784478019879062443657787646786206415281425808080750541050164758418313679920536979994778833984665866578521971748303541429038066850563127025341489472433372886247315820239318756900118476498193008583252817599542301568113519771581358002562298909844418180004126269936956368065003055454031391050148856502692017663541935601900724779933546247246575663015927529794621003259653658802832667305483621814229913804409184104114217205442653128188054095040096275603958780575275788385725294770815834713879373082057929500548322375014098803833832492703940605468474947226703851538460926113203456025815860141894150970248523016670271721957006313861768890687482618419062866532665476287678153832883318356087588705258219621514622525400359952444094621993692271449670184997673738806803998926683399325785365261736598917378932327161890180462436765762513507755810970569167614380776805404277952327716131646406733197276248978656219015212977469769404575265821573315522474251547731735673124191524942345440373521467842315553112607032727426587499777544402200814297473411937084256647344366598132594574874957049185215856709489009734992495682551880074561883067288463056187311755293679162595430805535024901254066816661359610052129513339068769307961940640608965812108335957831785482004032605891629350373914029329586054280602983695202513053118093122619872003271398248072378804397365001249698612637772022035209183462235638456767395209120034507966006123218252725288979649184218771874772474233737928894327654292728495299296505659254288152577853843421645592101008116551908543283471938420280832855675092328948922060393105224912309470279888465148039383927781270671699583866760001050156746164777342496994388606376725219875632457249683682671718231222809945986820101065749870136775372067022976810646960251564799157856992536940480116624122684020514787931383291910290526832412191802248656845103858791477886181208734530100183301311793739662622869833226668242511104870266749962833072172060480037346810945208686028669855291827422754622445520160680268017825676021406711631884375416136037804996173212469671324985910646776275176775443493884824301673259813431080150628575474323090309088726520591189138814243912667804693044918905194917236698814584671887997934663592669831957131514139788558364916284657162464299918680670393076944525726462532729892815515453842903773025365239012025052695884153669411214276581575977810355275060272192691568616648379652544258673540184269034372703595393637338308712643149033420224386716366160199757284864103426033936264042899952928624247135657553213286946958478862978773877947954369361196009742013617516598363310045588672771089334404567215720571923279966090434042504835800645234631769218134609459149621852799260675295134223075752505605027298467486011601524035822976802851992937773704791557595436782030063847462815527791932288612054638913103512938372651560352499946308933335419136199248548532046290889010358983652716782731811110915383643693342253808793119129696780357199304961790124970674167304487112185986833598119953594594976445293874293654069024430062097117120568231701800858869232447265347787095168888901700971450257826530409620940322253008492234964289216278603223348937097513333418691091271260536462310566177634206655817101945613304001667133320768712937094410575052654239158072494556728729147654107880816397986238254133052771239967723815388540629587830168425840062623615923393169884421958129026593784163765522093593089597574562679902865529199630545406117919321412461773721489696261769055824858227753726957732739335118703636504644427577660768387138711404778444593639999389875270582437727859497193192949868034954306478726227878445907174586649052133036663552228582164251426489215259935126247452186369983576912347276060185358925170972357974473895975209256772984949310975385628884595613652507899814976761980056475462145923449585220319713729478844945811211860480661276561888093762533318228777853512893264299637897791670234572182050406883477497515846907847413568797528118338794136819767974440486617982558280899606275897047960753739588246789172091964840923708222002460305494706679030779500325764658667188534922219495761333288020368735892324232454408484560382014414640032519613785705640644566745967671316421158299203241506149144238906513812633659382094523776085132772415316195252262430779009560561915266782006429056432677664227443736844819191231939824353872918876351622631726680081114266638155899062840170116093333469992020193741794135962143025393864067517574883769896349795117142357026574258157787840940294845972182558293685826184448316241869483278961852589642099544082617617043259143472546756834348788610868593176343617285843555276433558765562866227648668786103212870771525432956432313927863961080622132141843871474114898752914058507843857802204871940667212188775332605654431808933260025399054409410635400948479449383211872090133689764374593360194196243816253420072952801405846453627875772768562184106395714576920149250238409994357291899950009381311620700087467692550696850603511805434760428670596684042340794775947615932161359973484766547504374098297945219396678076883250318823232732885515386173516349167803544884225970351619268090833317412453111818258379912148003172593575478539442085275494471607923210597598761112352967989146491897475629254002134564896847059794494282473282877800652355730551514575045954034734872808803556157202619085846857532687859980219952728940780268610624155451591231166558369068352509738908405875780057988687137037719102273298890361307434635720826534790621759780092661772325974036376336675845643019739219006196277124568433384119597044377609425030503048717905890998278906010385635209930783959570745902252884858947911144715388759913118620408985748687479106133726984414344539471837967252497801396972812280842025282366112954385150458815419304588903531619138447998033294815143247365116090446987976909631237885383626974905795372782466390949663207684790366980253119949315870151106112971241535361426653275577128544522657546264852458777248456659935801094562824348330028588302644444675957129151051184999347508557030865203942966584956887781277448320696087182004758349699758706328314399380708174360725803955386129927841915387997901648367663647243574032304133911851207188756578111732610405166537217908349862805512498157301723134159199764474789110453616334254280041148596076878207934999821387189841426826155659126159178025285899138419198000341260688979168551298063442976374226219230484644264088813573090645313120793714308438322280833106009902916722826705270698697058681094187231881943577808543006701533733213564182988068916471096593902449089957810582602420244885260606455516861221395274628823976984448087106811131610778312352304830315420718750473526305061003187340620680882559835099253471908025864563889521290819648237483629072170138291861969654792381670956305981744063418614344500950562800474393454620621372718829368011683983248864356212658301512888989396471918896133173047405043461730820093007337955069841142284311521594527395977511486426217436919299050211011052382043132953535510071923361651043308195668801871380880490855204701126078961846810276691266482407013491500901731453911860402486851452379707744059459573992212307629335621245696089833801919027208053617441593788621289437175924173546849207081332810053408207436339305324789910610538089371636244643604549634950578414557005597501810110102939309419184376828053098324525877882335065271443293188612652668443616663845710770247280621856717267010475307123130802947428105910444408111461420711406546708755968949573106363263013595751616051459852525320255184372134641625481663903340826128527260832630599141425320501742233944627305012610548367935060387860723171687017876867210086061693298100355739762201626570349650836701313027330714641188415827534251691572238100562128333391085867510339669823460849467031370812055036474911432509920065590612193125828457848761566892640497852215488955697981813457840643459221492002497316340193671688054838831967881290415382675010785157036877044637598444984805036221882785728237868057570194275592938470954854709286771453790359245454111259647875459396441343148697157116564031781410604205899404322924217181568931971133656652053202839619964278806786962908111537601189055135698645577582340358519719062028908587691358063004157259385086649688664690631320186044822673294010652004937331008411152223965011366389127964419594533733741103765961488065374170238036153142182781065086231322203642980732875898080309089677460213104634620855039440196346814954712178703594905866462917289252827412299383289467154701592397204142583651456970415646140496272231774998972534077605682589392255523386179443821233677596976195169981685657426280822828946946054711662153271385194312580867617096694493134789187343440949170466259910898158842930433097539984774702125662712617363668736175083542856308663775627927676701851359674704598885809871298613138510605014585511240037763124626728409787480524824331457402216710117461836366761593648708117828911649175929822916909065003353376577010817216408524424114774473865733179725728885570815318943781468134722278425402240484672722602745828379528719588571014018607717157054234912068132907892649462753944074441596752959136337265506175309355497268029105678286386214120390317802280788297645850078990624942270370874446085689080193389976042830924446052753072466083750524443541437816792204985320959978264900166979649015129874725234262602869899734062871168496202502156357336185067791300496132107619201683233434661666805337229224591771075308083586589377150710906526961617623567765514232578084190140258476406220838775605726044529311526223606233191174702177056180924167801289997941067677263616593625690556138636020114676988568405746025218731378961225087988761322689429599773044410281253974667919409875249687801372463087445372102092716779829476255423052800689407818201662992070529325994148717771976073292421421257945675696306454942643328775095414418928749164847220042143237115099663994483058434628451240113019107664756056714658547060855652962387381098584081856816653255215477509937373933157735236381301939614812915527977610196669916416854222022758048999006197718407547861669571958907833737588145757746632529415943206227148847108350198270642433688461342288468566326232115005737691607052911038304918148569445289604218846044371359948836353243315689568190062029784729450667979889052572701754022656676104774671499554047926249396586233431959537110102427299878699784750316530702933251387344410929098345757778336257484408157827803552332631608137092046897296602251961992691523471921564246764926324371116753542497010490760370819922379583659419204019353915302230075128891865521251351543021517911319096180973081273197514226149439608973681084683886753827727692018842090976328596787120721410705523133234086088002163877450516490304925628177676498518977754699026695896254043705147254196297808941313233056496776122336374000069930387012877544005635755641890500349098681587212881156823834262772229470921339396840521827353314407354381628508820229622976521618456589343647107330074653193623303236497088404518029642621923024005850133435900237140527693252173846974588628380466949047488559573664079924177117989283723113208366507171781705491450346413972189699739531299405139199099434410411670358198878842341041963662463619441569688981882286920547190812347189544562200576409472322736001086646736280749696133273905133116753845630428181032603130835917433921886905806725132825320099830290584825197237696552052021758844001532392256524883577963397033516823729212249701537355493523344074760358617759649950547076712907514065700737542795142451422644129354130780141104063330820409213705299992744650436841576382840254346563966633327862154675778283360097227706713934555709122578535320423420774202489839776610566612379653478258961517735641585505012991173043308633609603782856975911498669338727618402077706143005727615129268777027235175297069063649575240540464122751036020730248276377751125729936773643786953751168979834281769031075637479243029354851204172214559978789209605922451701877140660519160051611887569142439958336146847740168028490162151573383607018861784269947693936763275308448458272992353255565497285675240565337456284173791417696965234465480534505726712806378284798546732983305135534845441861703487371386992780754919624841589507246806773929484661438314427160971568409917326708668023660604321705968474518279218147078406811609055310964117153059671285521269601836624197297080370277146829696835295532285685343065928186068780095186415359011591169560400271814746298400375422739542083696588049647743744964058272191779326867368951745174669802420670172639342255071019530254027225644707625707129220975277116131065799488213596827411219320406636641957927498316136159315152893111119886679511431071217157155340683189204350331315222042470485690619394064881768510736546671639354552248661471589479316851172906884688322528078716778407603420185621490539210531109484504816188134892848677348508601163690343244962961148622347605053640280495432337187873978678212709724753339219483779741692445480414223252086601509251905730415362917847201242536595144663647589401705961729923190268308084169382047483670858244271780599428529850742120050280650728132723725886414138413869199362940247736717908622200569229236991902227473964081265608073331836538869853721469575415410029896354229724806862176416712329678841518484570652478992778262380325514600455316020537171477451852528950108607248243712650078693565071556427623412424365681048059390694895643962475930813021660565696523443592961810025762690340555429803712179614060380943799918363567528557115531147995170438765055196214883013605826133588986026448146989736198816697118682382529926144407728548420761071360416762663900321375031679803027494960420285552862607882413779300614500424235304162675538611173710080960452356427541868529339669533323054554267620936833116737116468229296608981964552293844229975730572710979501446971528415740213491688627264072672139310366000916394053638594546180691165939961626085734314787441531478889843175720359097510673365556024250982364190102805821408794856592924197481438743405620682621245065266538728415421206812637091665104880346901335847752637637321897495802776738948235141282101852788254490937110501615406443039725619493937601169124140777559615598109008449136808799987735363452893258545119561695672019503283229695025896601586681498173291624483208280355915470938933650358299604360448003752634420217949983285247765806590855959692767504575529520926751637605286559699613106288298317991493946178845886093656885827464332035401860889618211592506349398580627947945517778398745271679209973181437369612922034911889034937171298848048089449733272541446244946365852674608143181535592387861828583809545674595250879936770220378794266386384870613606338825092015332060991002868118955973955307612648389257375471659676607517389791800974414955441653460860259650820252751861006479945789522005719243226948758477852104761539158333249218321411415335647106338895510984009519283122932934935207561471232573561103905201433249281946554978650773772264998357492830927071973282108359412069847543664550650116959628961230653490553872544717006823919554725882026122505037257517420723210380677109752967173982536786495935766659507901483083349114166467837745191303542431429550058136669861421191203146645078660832550357868445635560724883290278607371402400800641129582444061377011174605653342604867960113062788462121050786309927375377258996552158224245888544289274780747406723071817228513945216646196483854005930601558330974187583947956723270630528784335775638904271809651999003737148490323634258565325200437928676951307361676884989025842519091548258220055311026976637765583994604531257229940200458597324028178910272653755772724106039303763359530498710205962316027393654075151412906382233028398431529880434307209553569869051703098575510239742143021204620973350131621654614859766290608821888170065743860669563486933856677291104200005619835369818007759149277683914435161898071469841938491728066916609480547432295837935442606337051251800922858373507615590156168592155746166789420020197260073778852819157020409340067394510827861927755497945781125980485675610002803658370472108278015541877543645517222632623036710909207664230247433907451147463325559368330597376777474057304233540140577589186603462318325672269522224532838121798894023153504786326476983003503637895719873596506956791913486028324248871209891638968262385849265204985991363320193487934490458719646545417715591017877696463560382534000929067259837331238602808939115866846257816907531390513783577740881901171452680008861987593575083234502815773693502436024705248576847518108944405076345719990231828969249320583901007530009836938163596965633121194896825092249017986492207806329056490415290303739025218959512835812196869666942066910027660037473667973474019549718997532750896158985659742126727732213058720877285811155231058929204817011365463449122522386426697568328652979365747015393011938633102282129641266872174977658385294027954681670092100443544971964472684717979364286178307844538795885935691228837514820713087125909718509828535109696508265701713378086422759341344561710886103630099884332669958763435639240409612887661629941884805394501909498469632446950259770500942016234721186014848076521483101027817483281394012727111421435902331277251363794611716821374039686272096049087817651298413997513641482949759786073336709571402922476404805133473312314129556517625455101556415966098251053896256368466726997301448707169405141635009651538195875792745639030268788748468621227280020683746154317112371411379159824511910155329114675573194297263504438083781515602145117086238870223123440456691356989767915552422222962373172879048911774037101489069017301839514703354458378364322211525432441098124982926812808784339788027665551310298648956642289051407817528120746111573019146719774065941690071846836066675595650496691611401252769169999170926099946296666680124468424131881251463828671275227521015089056728901088855842038332610376735343774565232023049481924065312479325511056680174514908490091571953448648534899246771590903761314965359198493461614923339976111376184149736637338628575245578387559459589844552631665970953883032521351726897902739393460315395443505655159128823012017132534634753804748486552939846282210959579551585520823179180975905119929577303739159890703838458389263002396731478651676178238687586956754383259459347244936086947698182816123802130636842939541269049713883230315363144579923122537008868092984987116636286430451726020898149358076942203210295292784749795684869350402826500302926838361664832468583730740572256776087383960276170024170411804427542842803428890529115437201450982631005414356245994363084971774623840254176278706285309348824585888719024769867202973692548149056826771708481656023039416341168720323742192229171473715000767854973682059129569208619581554258788060318787329637087899510230571228972391627152300004474628590760193421393600713776969029868449558888209800755739588168608489562154359522012840700054165874603267217899572835334650403160885815401059739379987853070958150646567970793105188532498680397423479779397129351427767806053155603162842057396385920703004520031758146497471888291034556356925359822172876978445666794096476854432217912599154602190007032435822638451512296897625553126338904827833982469156504640757474205147465164643851005567718122779502932007243942594742118471536745300655933846888628457217303917856317502279902760539002262797794853286408019196464080534567109818843319246644025084478410806138410775971383732551457704578671512442282862177365137366534012861401021310627377113052318701942890429577628223443491148379912094761965680104391568297295353433135075614068104292251248862800793012028299266877864741550485558304378755663701239088529758376781384470167789820792451651887569827629288542314087064949722714619416941866805939832151560556900083335080987474711176550467038832676480441665858807337538027791162760607613340828355672184019886140636186056537041827819084788986333074338054270547037117461229364662878102174508606417041078046479674827901740556262256277173181907268753857059866015940513682528536277531708292966432032078431195571681401473708065651243810844150174212163067360777195368091652604301001775334725371387798755269088815004558606495712294963333427744952528021167647662107668539508035620855177987200586667129163194146967055619898121988232098998263368675502410737844993453701884761345777302821899643827201804761747504868448184237194704115479388577350917116309392485138961169615512035584501135470484034209095482517928032620082516291247681994146858773206946639653868743455785547505046025062328204803900067791152871796812656838251604440807998825201153344344340123413473137138817961665798567596976184609987321328918692337303297591396007246480744342930261861289417285506009440174536527836272610615415505232001001179898666465788364011282207344768405713052580582427075913708753140298279211359688863371559902239076723620928225639184379652222587122261103941487434291119661600182967204595035123090716598397086351131357902563313161454657425758914289910117472516963531666478609132677648645692956211223761143129196454922573363449798252068756353835191163333561579716827270446347080245581252510371576945161393536437423134244126743163182107687930390145247787345100106747422503859622058524030725081247701886052817283821737027516727776109565098718281696996961940995572755477857852773348190096967554350161812712219701121156748245870709235657690677898627607974955394112487674950842164210911993897688132130531806861042764815838938954758851175723786027621034803808423347600975481519684350116034694552981368485773537344379906686779715441131987635627878376545618899422198084251276485760335726391570294517438438207032654091790307102437352689099310906336157561322163735862478961022775622173279169247007821307549877271004128196493159846677227694327747889147509001499523035779935675795778394885656337620500788221178143117717599324453368313982716782651547948844774189381809673996259602751496716571626129068424689439515219300930096082306287829645009632590498231977972344940924617604374842268492512502292399094196428234785594219621284440740613358793617407719276850077500145574020849171815916008847500756506959320885685786258326696453582255751168782362823047145494872258792162590006301432130248934172756521453832786998825315707229517383074492988017407593299842211332479302761211256095631532038099113037986163340069227315422242548902848932444748678025432441926326659855888689069791072651360166113835451627839832461619191376936047611516676496917367082725457783550200142644735574283793972363345254237198752675348784413951431691718918607399409841579431445020265671135204393892617632399776794885431628565326720472507656968425274555758775306152035281966447516358828764301497902548440463705268541280724641877264453187317486901724790372160407630273663437434477586204762690372574726027374932462331960436518321273299744949407434123478306111320634388909877373833837200058817605328290291492795646210624826046835859705085035334328740206616324367231298644875027737972233095766635312770709857533332919810177354656360473765911674334453654008867536248125532251323664738152544331393590759360776838292379909237672160181683339243950576207487191481897331139399601641031578213515289004249222815669608330607711620097738501245000646990116940289325137070820550797749301041689995287904885848205443179097523723367135500326319065531611661401060195407084887060683185335351878145130635056025522155555743562048445453267191452374977962980787572193243669922450743950972474766880069839383443789821978818101551344668677425334890986713692903141217614873915915974244677180501583007891178054333210781889607832443051528246710284500170546166692569576793963034982858189397099067862000115436863365388305554224070541460849700906342212140296891755366329326274558116450422669454429180677114690893246987635666394639234482023258688385722497866974959728319930541810605489515393477104768550163187942728302370545390761814689832968372599827904952098287517784011055828007346020710677152900522767748203902854045339818360764492533694483739815008335615417761491953487657010678179685605678847879450187090552551488179592493953635420949867508479457632023734654430557443284888008432652482163023483820186075391176553046568678424552884000825505590818980456698304505718007526119841162739170448829590206810095141346322689487883616872280878066970084315048266900740566976460267148001462826910176823215030513368561639463431949675168022693088363583366606882151761847922148911575655896211751104535238219655263506908978371321674752544166150635870928149062679945035956149458120158294915490950331056480453589752896669653942572713609577641720555302159555544416062747007841417375378549086658585733604734299300217556630949692544262073541267821271449985830586986715948944384602811084791806295271584983126902611459572321904760938105753137699581902662370074496081165853959542746521057342064983437980066428885815459211892966534728126186916171128744413660216273786103675844787623525521084018895611806211840706138229936246510035958440741020107618054564887249388636224075383548617872751190717066429197717758002149312957034464189685956401935006296671841421658375807831844994829641138191343035203411572178517577520236705273524513061676189699415881873436975268687440861941971572842515739407434913167263046464923083145179179542361128740835790858087785953009525130506298923880880136280700204377957952279337117389880222283927789128630239406623680318447319431787619783922267211196192810272819196340321104403349917837337410271247038282825008410191878059749104650140667310298611198001793267226373529426241103803660188959952828261318458598945481017266906212959430901565222844681710970853986662251133256754081803753176878062458073330558370459749245922382090597292872879719223008224651096537834967614110405141782202709865976889984560293598505315951592604970480601601873477570221283082815882051561552495774984871052557661336485663938509073907290081809397857036963234407858216093889016368746924858828384405949611480267164069836148932462829082367501258453502876583350858749527783682972293567628560655385694911575730531666435157389075532341624700320498525771054584670565850784267830592763303799639167178344748869135014958479254354840772813321612621522938496922031492280585070911091553673486335161567787522358668698528437409156317123954153193022548463569168023432304113327769380658335396691073962322177966668747086214933825971312833688089102450209144555791906035504133873254841358486700346567006600706155639268901657465827693792728728599030534331486711596247793692946189438469865438018069176477633294206137090716925484335143447834709176960729891958081165403315048930760793878754344191246980283156509350807496442717814523279898934101197575436516114962136204513726255803843895655792751991433071813760096464377497698463704085581544118726106334892259618097366621815956189806725799557091913058929051162364536573204974906819822525280457054763611650695361457857315647347790399134080284562277279258752877866842621771804733445473655784976523473907286921414044445477674355378260664360168331229517036788844317821569529030889407177548239900949550242795682408969209321329799590279051536268000588577501981366676357954879180939136011398682225262641506717898849457146973104353819526916186530099097380362687651847065582902185029328606759266537660483078000558704469266719367425655100726122747473564318000912575799906523516587501375008012938068584590290937308317850776740767779811307179610227362431073726153693927590938526976015005809365301724331980179190718884639829195477663780356930208139563756979889812425374815006814767223575152534975446296338499980384263870069895250583213714827251164059624843845495736535769480985319235006127375150227722383658932616310161796832258665854275708430636224802977996244282273218281139605173018309347437440160506429736522649150671185248475844672220972101111465718777928416149465244035153440314299893901825387448017190954220964181085595789656557837406743280473149013616946607516606289155913525013946861369163858699136049383879712156598051616949348861342082950119545872273101514710751442411178433361792873076207271931455775976991931958095215863031931294530222581983182373741860809722226037783783438355107176543714858627258398420336261046007701723639670598164315655420520765125412402559644911732224855166944030624946002848716670725406279612440240605405913597927356685980002660004193331281934606696173199929610952890416341836641331509594061824128449192599170438005847823095910704064690678560576380526336340610253043471054222726129190874710452461559163232889810636120032008402381348953492932869387091457629180352743954712257715988264586390718080236642158407884328035680645259570425489797017945274582457191584001793272382400045960819313108928157624427402488691074089360015167218319565827500409498074171155730922161570191639896892978390990831979274669020084541416501221325319265028323266123077696574110622193096980546034927762162698399528709438212188705944812434937750406476793651253107249278556464703560099949378701292054542494724862655417113608571566128145280899577828880272488251054414482935122192287179033935645042951436178281564466671329780982847935268278953274023746658188059509550744112415933814523231871583360542663165316072932763311760221978869957632724081382401336961425736232459543986024332892470990831612236849638327309319895892175119890512263680573748398234411734227175517309948621399029938638700246243210745962052559607281216801803623059109189465014356203844869540119650582134101819383167530033231208867144009740528711538144260171628086469107876361742911392808013953203698632001665058952407232629148099356127645684018969707076549815164291381266326917725613873430662886859600647071958766536469078815014726953092506091149356123506530943730318878165922794361688858187824028865390113514510411347630733419653315862649852191723139448031908763228549849393892226540205884302452766303211355806470680220012313621960362042805282314153534849733046149204496488616179853503080868672260198216619059085051631934285857925758694136404130454027146860592708857456364345090229758377380762602503865401372755342608366853655579695092516537900020576200865865383766461111591008540988521907474536573993627093256008903964608477302025027284736436569369039924281347912646924997927206095430452736019952368278055249322851496103283808005982121379812765969402869066990380066412172054764278403935715310512286675137630295385068418224167870596738515255632584093750761771047530959952967804675387817112273151158564050058532067345615290781412328670135621044053820118839948867451029667018374392742426400025199178046171107013237070797599221147161965093137804422291949471883193374102521503792827142730147818044047884799814683011416436347822141087466444172722744390844719500431604800328657213774662256073717954266732482669552963490735466225014048472710493597706442629654811612543000099211033953538371770007550908928207790354405486317730397240128207658329325045726038491302718789230649631509180496653822899075549771464052351446173099727164096234455591178523001497962555031132797003137475455617720416338142504319093842937677834247995055462720642719464700509954193725613009285334474310835939245940759704147764554186007713513857259431390554026867694099578097858123035552218839640050213263111357904763974150154343640543713121068793908486433139413796482478011256484135347585798071149219226300438213619080911918304318736882126715633935697316498708023271165761562248483068319150289361474066205364186155727875923373401766262255170346087330942205622148521753511576539197238752114345190256103269324826021790997294574852282392153544163392703224448471446721562760995260107254905705847113452581084568915956960030687975033211770093363213272679995055784463483912202663692680596231881772411048412206097424738181127916080375157021257994700644926238037801699263767437745296697395473152338856946116028685338794247493530016622354657203528260109053817597247229717632639647828276600653873209180709220578358402701213174859085372602664587494470523920359730763220464114962929100946174197601702437188928987286868030999255345378468032553675434619632376351100990015504376604233928419604514947585013466397693584328609598066213125278155576402957889796622115537703548895341442542103888608004936164488511154798267463557575899197841540907259463468181503633978471298529019612060101456168158994359134501236016516006631256917963622069672790048751182734719761036416184137758344933533316904874342791041910228448954128226226678245130471992449614093556772923570677481117698841623281562397750306353755783520493005606258938546052436192291475131534880379038239040713954858299322941418678432662693921203941210105882396892233204462732258237459851601363045323167383858046158299384949140465332740578272379844944620138493463665019756489693587942343937326870422182775747341480647310322894363118930363988525459216191539370371280171564246225308533480587783782527512105173645345986388064911479026217208971346972181705965670084038444988083652153473676985949088538438619567834660933960938174683504408900185582400897530343110795008257426614086430597117615284286433013747841563006013833908480634450772351353963698353163123181208681949305963437202970923742252693512775515989580642325372735657659433656485544373823215530815626754099951136336306538709156565712763636156433976460446076568176871993194078941809302175728090618987427864269998269379397235709713192131107279088620122529232176019522466071720908437005247175123256769570473980690198465342176043203402796902658054839004389582071371660727908215515886832936417540977843796163265632415272143266319737769344189893558225055397219329519377251183323202804893968769461360406922001064309282001280255809690563486024229161647654811066997079044330638677117783866335653693849293477652467230649887809951717857901820407250750060028541013013580216951127219186696409116273566831977961056294357693589502358325274679453428126172887496371302838863681303544344312491642545773946578264942074222025117048723220549044330694627642202580439955705493930533054030469948022598863243741237063586105071420688024788446246382704884668877024770420223728881560504717739914531727530490725617504459545677349624441879786347954918123338361750832031049809620967372360557793612660258850279422879688014746896498671302567550624885308308117633650221767259444242815005175495773064583407209363856721363151806399831468357828859189022979133050526229670146641075427880980794181016996074262478476718515167946161634291894304300095415340285641945025978262765051090961331148079769550716541649979309753839503455831161825084668127030578982954220845099431177926572119281309411251873203752149243966799086828193052163505570280775455183767570677118055466291921691568961967411546220332281436420559524291961978589913027578471331599587884785853305756192779820378329797308570545179023082859923253585603104239146288788528470525737188712850115481095074016870406021064316051612957429474436012672724246876378778286085669317927901067886175645238343044124131197642531159063421824821253390654776276808081270719940027727128646599259550147913472757119854968770133192692545227795927717065062019572033958294962938540930218115383254064956776848077627282560936651027339812124453223610288037225372537688583889584410929201127544686382920377997700013659852529150204393038805549378213400686188804334132327291681594785649116065999754631160367969368065276292501974369327609283255319399371034066123786176968943927589624213971760037083821566404660349224028505395848666745549701190579532253163570009710635880889623726822118302993466931951457049322356617351343173960364370319038471161782053476017675373439006586240604625612335685209524524740560325325172655701642876639474480923456053538356121114089630676485494203026879162797497500387720123439043523733663250675270725869998915800868706475063817052278859927206360493526886786696419810827804211900620930977869540547171791918394857368520762228034213778579664636978347181330929420736183775699039228068343273042972562650021619890220758021133222580140069332926178721015163349930835352740754605932186295630985312532595925023756641367698107908625432571730811453273649130345381388651945192136274849040543656570076678941058953574845472406294780785935662483922857869797143941592748275228973259343126346747469983823114282631582082154165388352085437928311877201776897816887129526303020186676541408697855795275684317674871430973301208697951538510825214905449978631420006511665399652391417521049432872823337321520647708726288208826435034753116398707316996243497159422663628395392694730526252855640972598151489466926586983759362542505021528794427128915690317761454626580724685670780717200171413916331397523034486947199076587135157282879429890142860770267276383106332759745520394947911668857604272673473640452078411884644085899657603320149298423238315840539896564690136280450974039443201065142608913919060749847901952618166406220630262531092720268452122978299978742368301661705786225563689906807215151032581619902789838526284274891522256464078697035548976687258319836501071749532259958096887559447771643186960432752227071506556959427293206718330839741787392426666076168390231072732367952939987930473061928821258660354227537183218912320314574546911407041924754481928290033621276268999081057646198127783905206972903513065882717983177224580066604038519568654769832177036065900725831718656797618889855747104027283783465885802556652819114957695721989819881213534544970955924837785616240891686902722161281847579232499337028181678133473043589298400330386027295123973732062565761522930776025229519570326812146646938527166470335309650289568741699063198908966975361423869657635555936514815724576343496702077963568860803659364251824946623703127102402733320485538358141179901365547524859597878616023032646318999669096573774458567900486405578591713060105134556661767260974964355558581766424006493775280728482236904714130305192438264123637344195367321688143916879887154513092490988029878593194267622035626901139049357007608840113026761100083042399374472162128370344169493200774475849056436868453852936467318481359427473213982266958080245006160200904327152947425373894141719581836738358874547372950575019026590346304740146249394667823600676828524228970234021951969276505923179606879393133067951784386017246422124274135299709767278838523932531590948218825425660230429171542096981881975958669879031534145537167775218976082893290189347299916415102888662571591560488340703929788519487092226511231027591870524930256894174619188637295508651061937110340903964521327348470976245979311744406096640752324826229767945299545095121179047608263622731767943238874094325342729577038328169209357710902720537071776298753341982711055460397453554668275601360278887469872977387774507697632700072323670072517834769579671482126337943092863096311592908672594055194760729817951558579184932669209685031295135907088384017777559438175164034267093824401508176789537267169276433392331841762601024839046736180058813430307179624694386213266688357853290502781601544348900495894723340700398162126531888321681487866613122608123134926275158994768405690672834063882220867207635961856060967739901224480770276900720977623509132751674207168378658605684484132388211316657878754524578626057719116527993404816978479199240924103403271643311997192523601147170781015502107916060914638778879021895976802891832563753013673122751176271633543076024221319550582346710666234691706639977608810196252127235711321179973414007758445701470221918701240278949409295661372520526013898504546014960237103607955415291799784693497772420067807619885490204993854741497924423067028677600108866384867254508052265610573177281202574621238905014503970140765373888786392361888081262346585007564288190827383689220408506270781159932112822324126002336783831572143283131340419457367968241221733424983731724752276392714665794842243270394926636337167344043633506777035132115060986807167609531078969400853444003572835893083029545821672138939209207027156309894409736488666996971050581584983282491042025668432270511421674820300616881947538920582280435512372223710920563715383894067390498106235150157312496512131097545717620095343694298765222367114684366410450854387212635906378351194644962681874160728616974261177830445159881062774384146478795003435332979778274760734163650035553221990908054133486574821480712980327180631299485857138670625236523595416849039209254604032668151779656715084048126333050150070370835541769784931681770316727643559502975581080354039671063086557942547904882521448342434175890570925618621185299828287229501836281084601167123044966649704337487152548678552423649296335199800980039848348319425381625249425336729835507934736887933038026206668117715763068228835806014331357465853019861607865111758419955834156826586334094540801565728933206162122620146841214381709176327898718073015910449266141304530542808368907593335625146899178151412754698739184417894547100467229104990862907390311450827886826305085910765897908262156495660552155771812910447585985235805111356965235306791782262395431237092006280539648636451018064990592669760822125189210614481775318635057687060952025953931975984766573953423577959132443080272484961503977525565470567102862973903720676747120609299595785068256638309805634003479768209527060155731748774463098705675496631261203250820355262660727728413066586580388998892402383857912993945938923277117244092155761603911327880382234140567362379131469329443142863707018735915206147081968295996552535511636456446374155484095002084697458027287051683187176959126239937211365554546590848540662081411925805037966301438976032699309687801506317365575965328452594625785713984161130604618957847921507663815214774806233816773750395691486684003999602118652275652107806734217712227580469643162168429929267362218425461932983338884288192258678820859223266664788038835494782594394724359209662538880271361957195624087598551141886313814310768333274613440350287258558090686124652686305101842135079915439067017411954089946245092473075113170148122150727669665640652926777955125082862095159189932282122920129602812978308113165431436164769194035574113577550468931809871649366457742961415256144631143842267866501874484281827729955943144454092611770777339256205832461319268524227541580290523984027242323400059370857589747451188134564572344393426620319298173588553799462448371375458687300348723496815448286212441349929833152762584622192972399456381996995405627588894976394237884002022396721702355056553952111030577511469320213792428574376988878330852263896796129705077152269164530581904974465766954641393229699224323020568976811001748048074620902669624179254427857455533723363800635415688562561650784828143448834662495882527736320259387867496100374019002504068454944931052349213604290822592649683867497969800763551982333618372941255929380037933364801847388118816611533049979371425859591624518880901366389388832516506826906330735248450590949426699233477234967804212949525077398145773185627499302894037000612871173280819197780116168089187785846690596753269232944155113342047866856867205445170054872183973552048644819976279071619663550607704997021490415362597059319746499368010689625074475879629421430931378169651962949628177858590896513347903766051556322963696421773067777292906939176175725110342769150092691798108816761014019513099662490449155923595204543961680560807454681254622703505319915452150756350290545014448080886423577997617290520863886140716635461004340472629946961873688073239372454829934891004705310238218254906323193970536312700067432866806055960530937261132818191147614032679114849585560085784135154300103985093404677848905432958791550713676146819330689782347225972309782679223541336289288307686671096549388904129655518109798727813197727691080155451696465150399404463166497486473858973119375440108337453621927017175417028220380751224598773184203613016315360880745865159390580307590027594095697414711152222383683432261509233478304784811101315599574940339571336182843466022312044357027401505394877069293545122687292014004180258226937552531058345125874017744038935873119445809183993148158776276315902676809209421204471906915711087809674114735891634735017701277042944889315602247648404592759921122100464670800283838686634304087227491602425640824567943847567157318578355982634685041826630306235025962398842629236747152810603371828408783855949348325540303201799277813823545310471267440811229029547815813575258519439449061272770269019918831545669825746652762525249296206622010521536483347293763011877703456836385122573311821855817399945865780230900063354136878913937208254690543994376369353364262663074816394825312892929095366877911647314560151439190600563210178247824030940294391953865803975433448495255618121211803581731725488059849685321572218989958716001255167488457006411252577846235472290842746476742110591407881089611381762225141633440812059745937910439083887464339632444260329336547336546195981530336109274875610699641634300324653402562402011968031338485459200858137887862376649472506926509594931088564349864974800122648436938473593814797190578937794788740050650997373911117811537559714087083873967913854966912761202442723437866958756893138159148785805204818956449038532675524927979446027041392129853850074672790834589581813881926008117376643546854318803105618097879274875032393649840590309720395806138708217860267628819512073602336966493211010891163517147975438506646210325157440227916698292953024068842863550171366938037437580530270640562613956814536023310681188742032242238610795361145781989244205687539163477911548545900276238395744941434484987200219311083661730043156256838837168659204574328879650734361996367827135410958314139945060412938083609248236092764574301569470737354816104211491309985477521466154156922353731741042009954092404044417703766225560365257891362542540673132531225317747132939604040917755817368101756225390337616072765189969944076946386320415896593755921313894797944240080986315546373028910202342452953419220831973737734884991786296532677499200816233148266611497265440665985986067951915314757580061439533500677930491753866448209141242624186178574110388459320123831887963510041935748528376089277241293600858889746365856208398719759290017448551823171801400870298009816346700854998626252398622647447942989259331080682847781143221479684631608800382319527863162121341652410222359761867629965018378999920768683486332734906659037922808697422848179718765779712079036648883030547552600928378146540670702281022439728845999047940640781513726186854380855228997626861091600155544707980309389414609345587673821135430619172609694383694947361020244299710234764367951946412923025195404308957307172259772201010442416542634788573910617049240692172909997972983123499936803449583682177485064953507388529755538006571603808690655159449087364469649780937185784865253463217356339215917924022438108987757938412423402420086425880574382262472496368016697990354682762599971800704531427933026296634289996610348738997895130999688556195383341394918711673571157662350861228840368218437551839294849879719653641036907806368575956525093047323698743692326821739787171955856299750064759050524982895685933185423852179576175513178915830405194286011711267462031872365332624069096343863535518688736470549754474308423132577227142223270496908617075649177060739266367638117983569044126106926044008205787236326320915253538608090595039345887396265295878795731251723895467801238037556729756780920610538325517697676862781119859725408663358367494908767504411881268774708699759135151171321393300887524026861526804127525845974946463681065974081428092167844504105635151905891985272597473009621842933145918292840127368274363578570934579141477013100893252430211503544583637415181429723592887326662645114583666508730932700263548464828487073775296049268225032369475564819160514891739355273675209989712137464159262193929900271282648044406329203216081990951946431190266274889811393480065074279703922806093405432967507953700337844993785469604051553823644905179194596978899429175843361228613786277882651836621623878820425763235677639910645966161213212842183081467102341973891085779106583845205959705012555831784042249019230987552426495974909583707934371782277399802964832321800764931676948127907401573754617816056755120751826589684739334095849421472890369585475715952050823665091774955291046584370603844091045182056172512921423517062777746432995474824369214801617582485553433348747148157647952216260578330650706680640155569969678617780403737815015678843592029982443008517326076350127725471757148847898072497053644678641092902391443149427800427086760779097880052174986621718932435865700061386191742241828553760313297305246330691206488016889004821752911010901214720373588163821513526204173468733004796851584492681236575923086795977254670244606514615455085552139049836104724213955355365966394819444300651800186896951974309651441486507736390336627085743112999113936268787135493507309765763102071278729489283863458263810949276696147672911515453265230535733273442379250687084626033311514751469989577833980210751692799557682046357607554366354279547093042283438698512495578009032735657156146579010482235478226303043251926936729136263865986559017096952525376361289860513470962770810031382722937444668145777401931486083955453113184616490182695482080148847994688879102786441450290350103352086575837785625731862284118446681117931678261366803210990711943791079556219013984932879004014656279757811171100739823643514301113421898232003159495486804243322088571596783812456014558332157066953254835765275854471835711211383602275342854384904543238088843926296605774924758762877430299640319248044220934051755989341678458017290745435475934771513569726631203451352820393705054236126647129629311196047311836108128081315613106028130901037256730958854949420294094075032394058008512431800478768080401260558415153104950447567848450463526587820475766224642699083694119900330232999966873367851264703689334741358361826592858965438574510583301676654476085162487291651227311763376890504475022548978253463435981191839971798829840873389679013279574635574399407842420430920611097471499447610298974470513265443477310260963632315871358898654277328953120574717758895200200904929308711899729161340232063382790395331074115653977652342617197330306126081047607501970609850070996649415442874871378700424819742234122556023393978445676768644853011331652118077363835839823211020922766298928654424766171455192581248135513086651205950442001180208158989353737746467056864608488576875318660093334797039457129647089461794350733892688510340594945500739792179544798782127531612181862703173937602947074053504755581572889961499939735990017174083966215400546589682697626142304031534689017922886967139630435596913514535863159946923577635861041562133201198209278356181543437761050354853370694078216438344488592100780143102105246604969118124989033189102791844335090411712404595757361158577859360188205525763209539595691218213725974405786556333385214800669772171955922350215010173060680253336681332180737056517258888810716347520791420313884727114262545594271795133234154739926711632848181709911381610447763749039335970102946458821578181978245119803983080996932210802408452106702415968542868734027143753347675157769057507422114485175986219121333924502641857748468343057438241479650323346908769088692250558002306710222939008003708610024568524822925768128483605193513661695058416041904031084412387854278777481094380678480344988237579742594890361273393283882696358728395589055312625063380152136066994129006382667434241580972059545240423371789628050945312390573290940924306132434828371388210698318604052465598276865652781347357735174684459202769312456214194213904303439784963863094000442449664523140514204407541373818821945329540479517136633007648939446389295116062319220765556613711092622499187048721088446650760380913332505601466673217469363972227404317888470681014404413692321176750510179629314249912182316082349822206840996021367122740583775304337245448633884801767526517973820492655380489112816145566791885916378933656109480937077138508087697471231340753252836267417957873336194987082033823504817122037156140863079395926209920158593040147892458335896690648256989902134044948917527333933886802218137653769252212880755906880136732066987702563568707317447587137066774582391317742663054232078590734318439085184446055310954727024138642835287119630985656135021723773909195563685054282686491107604735881215170047931626956534173470744052274548102604279055308362307154470359051381813017228761211130016918770158548006297006124247828035268527570280274893548123999225076995455368673826822922275901326191073841066565455630463407394402868949306637025725129195689499268920687216486864020005738128269662684147569371818538326693117809484194980762046586629773726531763246308073784607620052048521001725951667774260361110122571242327208863081457478793866591617640322998588840233576421321814700073428773796056688222461153134988090182371990574890384177456603221526158693335404217003871515733063901357404705320004813240842319825605688891977433430055955278587921716570683848514820358434301970292291707942256918766681100238513094858332676343059968418182472565591914972912570296778797114879896078180669134325834972950714562896925019711662948091483589131866700989012614945311909560581995409991837257494011611004106209626061469444619716969694559070489229969132411281878455667256698577816802004233939717992617581940259885505834519116379847385355170988473114059713376483952296862169898466240447259894542934549963184822471280607396539221630732078367501129417231267204405877614704702550599862988711086540630273752966032556323982631290086024768416353591377329627862479591331580859780329261925018290211727900021527138072097430804624691045673786195074238800520216719981769137997514079805469967727539238626668758465657478828644539344336232131542427395879017897245013956022825706334365494973852306743058916757420862600799755737226808441651039879122772338203876384842568504874724048916890702037670246027732155913431550242139461381743724575014124327847817525898011681470116020848343034809427323616430893722941578514193938630577725410934559560031440079073347939877711656923386486226513099225997518351099667161310401639641308108691877259142504299281183885796730152825571719980978072117641450508310827482263395892869665862434574930945214180834263440285631669114343189542696897772299263429255121741955889064911446227176554636291552644252953272590944736205574573617431191784447756508240172091741819184383377889983203756680511502415560546092063439887147442020874076047171493035801958038826944418674369852030997746268430681420243711907294771147461167286929565287868140712179696615684977740341224328053152340859731903634025013356202416758615333348961224412637648047974760486534911796491784618756983693205899124712545227821314366851674625685304992808644994244308955663075703616582593276457357813346175069341688865721497276161876411540272476620391953046368781776270090508926931704179810934688679830452188427795565997589630842126453531042163136330520874493674186193969142511849328789339465472905722692633798634367090134560255996702232538748922476531198385548852224033165471339071361180666228885579330667485200567712970865714570483891839251022048080649911033480775244981608188318379435026802925292002931852145275112784936850612397571109701330326114533329294325001979798300774486808008883426510118981514219794512074077603771361740037273389333971353895206173917059476118007072339407998158686304351379558780952758302907644232879572621164151661941734082627555240409046308277595656184120536363125208200505378527055188102656908115968916305954313601350045837237574149841949397820810306633812483009809965337528868522462299132569745499222371861578088806319223572415322645213281765122621747391210018431259373088464860747937287022226967102095567973783675242931509954509029447960844428594627873070909317068775443100182321674137331504040672764633705480331880601682064949455167217934430714814318659463617713296229488081068170009301232938992575095458061984118325230462914761392588252983979136892101264564262554106340431826491219343772063107012843168659810224177863182394686736786913935812048588190789658876577409549037712642614262521663845359312247123960984446646863336626644056082016081899564291578755593816455254372549707558017461802580494413269914918124000243589124391858375596201978333469602330779905912833130528664544737995207289284918324859385674916037571312121746770982890817615448525189227783754134784897555680687364305545033727761566286594570071461265247517127413966020204419342575048134072561593110744162693058108324197203041613871712861904277020477524744397621609868750385909853566366687746177617241302276504994587303581164096364737743414025050999691932071582723275115541610328877500406773753498601900526319549041353344627508680881105755696573352806507650494987086600906066818849115844602445113514298211931419277850921214137345046078988653343643707285401521956701319821159900040595967428375957896397530223779740271840066623047718750129058061405404577683068147063386285947865875249848587076994326790724660932726714478706769934453464997450471823426107973414796929043944561788146106246412197946504806050747121086845679245573409846446970924379913309196700881872191468718492751514558044966889898842643047847127400588046531005010132094464684934570273817965320919980107866905064765166879070973629880884205956704714099647380286833096314167394295875364813118071806029968852896456713923111841401698805687153845373096403352989247348469096784717701346429563986318831766904581027788053229172191026334892419944681927633837076402680850026781194456433729639807859455370198374738108547667240157991928872877687512423738393728124710253823360721926264229211310177529337504698826594233495043642633739661986661806996704416130036094173038204493808287200530670797563002875852783899732015687456120184281008027306985387348312355106943404266471681358280219986017447327371600746135683326741279028394157218814116271884500931447641791586846598694294803324686495964032854832313496289761646109513788013511118501275199155976795282857978638321150946120367151238798954320700549140798573369587182225010813934626319505713568480718233779272905495148490704187979890337930363607351262251251612663907674864458719609752652459267976319647672933313185291110994189377917176961419528033337698312493292446683760039145892087535836031990466117999541805073603985300850178622625893541038307158552264809565099892059748922500903719425173586303420623409168139523609724889271070059577578585524498595970846245886119998278647037131187351129953069645527332602487689483511124920050706859165036380283555982513764003153790824618597810875542782883848512901871496650651719115317876374904253180012548024413932010360666768169427239947059967324044254736782097362617925918649004505234559650541675005060208109227594841877312256832673906342398735664558654392805526028231442129401671604426710435411391186403173976553357841410777099708412662879302114531460844295733876959500109833416880629361637249276185815315460496119835823294955018547417972938583000425745909848798951054034009837787812422525477436715362844671641161586178700230656960099128171154751222087318687146463481511547453469410943795547272885163509470555150898384351589567264806352584878116268501343290419573400080776979651585006961302045276651946574613532087145448347402791596959804788752439034935887337374689435948097507023641516807527259255747465700154487103082788902658429573799361928629031529165259806523730631697298652409539389126055094530243970654957943485405587483861247287325333593144377892606263333084349976614752323158036106876484557119648416215196540996000955983908048536943770715679091267227319766502052691921080296682634547908310182543591385145972882012188083145716488820561476380628492601285319558573047471537935577931114534851962018133268736244995946193969641477931383472873527591006003915881089800224514533960656365616602754120575135735502779407434757562261131917843958132943804415678778117372102635766840413488249788221187106993405074605244380402099648802794451365627939738104889864342922624357346236109421873140427077822472455806791330982209492148629785628917785428574909383447450648949649638455490874017279976228236948274380952099391508084914302757399489993127156788251389065512823981610023044713060095279476556176068756967106793517330978046507565681677457910125217679137323914405417171079694831214122168600924004901603782993438148429200361407355107403665140412544262502000609117328690894640542060292710914315934103844228810559303512151432580507988197858904204640817594065614321790625423608425399395871613690316138364476789256916899571205419249820175634999618051136411690907789880067151219803951026313664026997687152562849600270426699923456175614757149513653804663441793495969065474101256903225692274291138560201044999230951005468925072914624697035515476060855608984664411958413200555420189375476919650278474534290145049462152841553990692397774761160351750059503809660163718567069932139612744178360327476729160600722722006334647105897330543093410751160840245880555956856342600683866568655454181720483615434897560889091356425533820054264523450105052714505170606844637406799733922148006457701015649154500791047905302374481864135388738108909346764572516835468360274412228976477756190965307247762114915486211815448079097959337536629936142980837749868163150609305716009252788261760384880136907794375971668476794853875046512843948355891450781297471200535548153539428531887512619921553495017737834302528191114294135171523934235796594054194074799614810431253238881609053767362032307470728037947887591213274257579228561946054324287404194712758156207612966620979112355357473539844608175456541417699771383650603457658131739908727731042082495990606918882306715567882472707670712036394224648860455392647451632151271023213559602465555604154926358550073878736906805652821115383795023562280359144408115053576727406583300346812246825603241287558470178001286825956683948697113151580948980985791331683995723639553256600206223182268393466223680504587815454888483147311667792340301906556551230803954884878680712018229111988680096468433578070059861638448048206390013155942841772572321397906946690572461136677527915184199569930109801536609970728087761834535427600803463829906258881833288699889451183204662105323515998775928403194526318682227091539091661227890353000175113912839152200018437195669313594486329573706871934605462807187160000562043882600980487048483640424879233314998034438062656469354263731233891021601873289639461123012060601173552158563944792258610538491237393709318567967140662412248717638466962754131835607187639919960510571851540890792887258520294482511911325380611886690767870622720093872424947394186993458370681277710749625165079867301324934789983033899376450203382266877783056822009513985042032237412517986106057496426676854531427424958751817894815954301622608864979363229897616412571829814605234063396463308303172478533524851626038011003201705170182742393991390541698738416727683532325377870703221615419078921597132063622201065558732748420144881789135105013185952885707601863701054772256293777198528721496473437610019614235193717266920918609041457043068521703251679561031489965182878513649200806726563087945094680341136739702329144053682119906104846231975879481053865269185606244828169070464825692803499626332863451798415422370840852298121168932405749103059334350883357233596874431964136730024256267532451389423241446578913562499609915605753059869384302934410623954601424227517441720588998535072936369410798611051419048250702627982391199523465528821459826047627865827798230156869310433499408511050444933735580847395798607973641365328990795646938242971215677098144331621497714382648058868095498835226677892977326210921784741880792875885189869788388735305722933833479872068512635787285213510495184656844841035422619488754928306701220501553568631140345830614042320047297811207635031726648252619944892960186595479493673010271598598509125745413376834160253911095180807200673309862981292563202362850671218085642633067140255218531031539775835817043203101165174804312802187363148570869271772035985915815597065045641223393975442408098170074064056963423646681069964807724801536560237666007324494227266494842213910197924970095755056646662090999082954123841522527366889745377098610984413708493257439445435345850410276187992423540712228674300893860574179043935644276326182697436317369772515570647240896381432346909453487172503848652569882893852469227944956498076578516583546178798761193120268673663336460454451904142509258625773434501615281983191665515766673444574781000088059214538243050070917346884453203763379671272604516462505539587447540651396864364248941436810713342912999008422482581209351898095833601998262965101272596143412695326729775851241405739211354302215197291682344717814041176546726802708259149221806326233312434890040016509805771770472951810141189402391108196365337058009860201714545034847705827589566887555428317398496998828038294188827126252206016480410832012691151552787161188595933746957732357892755859806031991951496000549814963267839084504200542593708223567091047916947435432260018699436154449350945241826496857840547370492694958605859690079025058616510481433528839794584986047916363885416126536482938023651893116986435522490901140909867210628224702482540388175787343570882441278024928256747445041816637204068067494479306901900306610602425046549769251805060383051950982579136564552095474430757245308111014624336744615112170510339892209618129494898975901182100503622989051345825705792336690259847049735119861578355255542183203944649327766908747355363445958768474868867352790541160904119935077574829846449033308201488518631187628366656953721018707521265443203288154813360334201772209469380647000682546788547780142945413188706264791037302726591595011409533405013832573806598815441135588748551566051975208799840960843889848624681470807308581456665334462208076381087282360770438291766855907860092686353361937225562308712032167097028366790579305967086611441363726949019881794593956467445665831088038063627435221276012290466218130731717378045774634162943756398435612858359038384873756432428196713386225522064371074444688947311809633059432738775182828030266968543286343287029338749278309425224646538614257004113042322462713929013571962166850684784983583209057958874047886771804623931690410446714779558544646897241862112889311166798882696075914972344447053261120103521194143357453713246827577374250153013861275623335634631268102071708516218483480170207744106259656741051582104934941525916313241215463905688158970136853153397825085082431849645549607525091240900852887582762754406362889460519687787705902397024102368934655052009309207949847897223549264532960250298576191008746560296883742860645905616089203557306245489456964730425560072456032371504017711702115103690830778675262739967806447993966323597740097275561557483130739420131090723255315417746390887175206763232923638876237030024293496152249631120577521239660049533452646462866392051865684374134977180947550975395142842768530062245417759041311314741907943630303167607062772381799162011662259046828523086700615762402068560786375733341166283638612440251734191605471603158657983421214674821217005789222227563777264379606204623367947880629734527194369119929859612891457847779482445866133742998053786059701438242773419052096024525623120021638908296647464414853396423874129520619144449001783555169954668893336524628761791439584611281623407451833002468555178049729387235700698975131954245737547237177327424110331218280502920169923084647000367114108740816275566751299782089539505325181087648847762216561982951081394580987643807233975839527294557398057354225353334500896420850630788722716293663742429716557197495692372666599874387310538044062315073388758679747453054299667160663611618244538019430545343803143559458759067082890333195475068210386461542270753389107700108329416450899012798450345893230961928975479218049596040343063287583040751273123918138524705130408605395834339642803189814714306762122499704046283015586010564481821763104766896088181771528491911791390124345420750962684385172662353786040515007026192359768110319864683827845664070233244541728978938763082867235763235888613401519895664010081452633869778269809004492877052438253843303186257109970148310432552503968521478416939698410784222667985940549216839969115687882534573264643614859299895977187616778466580115649894212837723065804813896852487807630684736507260964768520939535780495328057082476387449025863311653397666023858729493226780156176076716040193766196971722385589842487703536549813882750930463895020976130738637219491915401713132252781537138476638198799546156262167347711848783666300880397942149347178198450140793296125127645450672673359289425344804158772456347372384870705271276595135310922348261089919698132541153501779811579897207107002218337424554672119145621917106051194234781385353185115728565655523882760912543451497579568791765988776500391826387538452145249463171262639082325997169954881637704775746831967793693741541647855159411167851126092437604961996177822016891177098620708604947800087761956485899513618872899272708315096277918978853950284245056301518884872698031900900581397383861419746624092151382671636651628724847792434847007154307727028038320055013126729830658454494492530651412309550033105800781963630410292354058101658386749529032220583381902319898147076030642470227532774277823997707405285639260212550352564301139738772416798671901183136857136283797266297407182947579977094164746878832122115886433273465900889344793014412149848461249882119253236582469767767906516202330029808815249512747706919193983775091018772575840091197499016263837065831700803182300202182513621445209691981297396032931857759102910587467798947336372424471805773597906794247675306128695236068639870004889442736473927361592048889172069187964714603101315193770786269198306022094407685737968239178117262740218036179013683603450517418228999515601212447481076766137329325394474857913683166233747665008757916311106657482966808943084311475948086116248916644979319329629923154040769622077735205441211311744702104750769539244742164594162622258352542243536632119938228935523112187659437302300239753814850548512549452899799866136194135370006753246284750190805497122482068452879786866880029181805127932559718517786128138512058416299906723424636877656874036380857077245401135386273370625295052866411995450553932420293655754814772169225140326072747118917762591249593374072013118093372465668681680134258126182529719631902379696078465106657093787646077294185963307824961067568733830810396957298784272091583520016060739882135905779255423896525833358223872933771726484053400954417986161665263283207946592104588299009870421017179076610740486064006314684472389026094616617586605401477878134935278820931678048163373835113625810038674327881483968086218553015631479182197420224319684871463295553565061946951943073671144135191389941790406706207250846134255006895383000224466644175937326580947129266085946265814256837062689295943312555747364638869175893577656862051707675421763749964802920156877323234889748298367564295398437527743282913435880896502704917867085777077172514965846904431590135034001298136242806710984915098795146627573744077786724459649517058887627773456375243536991421696239233191134015430058468502376253697627348313471120356118934961960560652755145251492281277105258750818358729452600203422335622401885901622759887579812864876841108217622335182313144937591015219379367447465808595500912256139270335794739250823209740998303411738526601220822979404062204345386383670033086205485419605957978248214460766825805079615331930002881149242192902343196904977094624684686643739805874115489996886381936470525617510567097714723825310676526289776158747189209416310315870947089886672959881435741053986065728608394530957587602181366364933698359311081408716295044359354826093109586343670440961866691323573469759690161370775782583114379619268185463112770518360921916521671629768158972155009289319173707072815067639089749534932310526875242624002250039450724581030114623582335975030618702371229510432723132667677049122871860706979809280722639891229577849079091692108028419801502186930791806868368789393375721208480447420594802280077964418049704511900590729169861924757468774721744127842659060244515347988295332428874719931335774823622765645132512166849192975497626551969781358090910487128248620510342217584543256566486048198446992966932404950305777219669048516357424395479285353043179234845525323536820304355308710406046953302101582544709233839016371796815838704357253369929223796686669782816746141180287041552372752782334408122985364741220936964791680087159161994072187790475192718240602041207290860764644506158769153061938558233547975043163383683981773901550837077463084299244147887499043052417361181903473790530204663381512063864476577284748264724909165588205581084467076590254720657133338455932054767305847351571224031306932310158096259730662146872522608900764697574958403447658083185416683230492350414375639701484070794475155099336868496418367505022722666225434354446982109493656203535964104521881983017546785075683187542551436918691132138976931168328677943312794661245369703271955473012936852110994067216255381389790580666052997338703417534757207913744427622283368496867184385408855963871808381715047493206783089430553313149446766182655501827950560060262570546928419983833578757129874440066214160637095758017242595113439457806540813992912895473478826221449916906113808111029368374625303073489514342879764644827892127699567703116481433937747855275184878854077759459609665518615876846241597101906818628644883585575949056333779847133783730584246848272692224270734379190610479288552196495799215013596464507543892407043541588955800837040335260168708925042256216398088272286650082552012275302035296250140146559879309470000900280196470949277721719291338202817045287101491212083023505882015819905640591130686445894916645758997967465443792676221674016635340966917891895746329479564850342431951701407611683826531581320307173959549078910382979205291024633730971965358883619586215760645232637313220285083974795486628086991609046413498134973206165520278028920611028037518165608653055945911181403552346637238083015501224123300364052939150701868803723802461923845683108110177145225824451780014988865841484261998774222450410971311917672018724323739308414302855752791149821339048584005032911611327252443184726791239701319668304041767650254213914320784382259045346244533896560663972164790390358987746411621004418168125330662729727927849991879834511503983620460238706645225118991159291823880765889231805733820216195622833437942787698077622941287700036036794714642415172893708280054641810734590137835587240892617115790452981428938669151812630264554351081953456667980425932380979477444220880494005693605786735250982104956726059188952306307415610839311212093078340612815261126836979212877632770908899118078009991506499593998693658337124423329396312883703270556568945233632700857921187287453735023439339479809287196885199564090388240001374978703984268411698793189736766949012080930931666769918094513500119456776100858451579206029256459684343145605212462670167358339089653839370769295124254830405723974394447566173641053119119638562644454577482752300658381934595241959761915587209643351782149192173958815753646612170771212576811769806286441110161640398468868662057823378446722762022026613415685392164442294961169977487735089564752218788128076423074406255094126812182089450975308014515232881641138186232361962911416548218683123074247452992495912307047724377664424172098213428148427415162727654644449141615541091094530164838593304070472886575815861335277635509248606301742327370277187222597363952852114341206362450247907149459104833674253467874296022722365755003168165278835222053781557851352893240100607830738946499466124427437327940252754018087562045229252534069604897964515738795448812513628969178404971766236691711659926443776056605655355683994187175459856426773599483132521606094243250136259789798127623865778884654092963372841622880861723933949233709092630534464662211534853741317833814923117203397407069098590945588173883535343331092568580286889325621826118570874449234076888211543486685281195702411658065712618376582345218355240569376870500766772812409224915867462574503798821847002533364803639303341821730809387760494621559582819348433013949862115310615988725299367620481242787886963201153203335171821250734310776430749965334389710481490456946271445663322162965720671942150191776178097960732799472802819947299167217124561335657687558361494450866348356991154849070281741383242219888192215666673197632767201372449385265637699696389335884672120966471728005721790269863684841019407112690831142205106809624914631294782070334239748445929555535407268912063534974268887951039633655763192689722157550199258454714034263868830572287315035470692868958190267942089616926219555657228949116282639950004530767408609946167070870908802132240217812129310602066096868248671392403292528390964365158043956464544459598586623188240198945135272021839249164760725530192957139911252328400055108261350794979941116696093431841098822827792308951145153575580051599580315830207136309476853021944882656615143902511856011086308856298884450646905384365421320288271280865072810103534774454699218174032176415872269786278525613684361232992281189337975899440733433453360679599776798766918130532574970561804122170578997924270932782274385812782183585178043085493314234515009303915773327029198255877681216504234846593208459541646625326691417703799164835097709597404445312449424148407317418643828804118788751710543481703970686809079337717663597969418999193237902763391040485588722291386027131336594799781174971712523881408549207446678979763219925514869444915078736753133081142134198866374398502214146572133431766038254197351537333269729252455843971085137826489114767521862752050134773289723525880398009843078175422789764763214330492804902173517475595118663851945299882021771942000730070554338192238519091071396538607676033280785430534999065506670215289896835052756807658288315601162283016787961814197044932063881738747430148091861493285173206894262758296477203338548895980304882521008195512799882840903094256278013103376174372700246835905554714136079742175342366818864995619421879223224739412890381552251850747193646986982341124887873251348968175007527445974638626840073222661889602110440693041953606873990624297898693147235143541001052750121589902653383796811820280653035528201959417481575824724176035740973911619397631144852823296423533590085145676612347564258739538121498777256986333123085685406180228564887339193323057031807137360674358250324965157321597355207779512487537313658441426929446084457010725427396839606271134123889102530486258290419132342043089626527505740220936830743806981491265295700811736325233480453379344888148235591261929852997556984829156585039051324023960330479329585566214247180206010680653524129696424077958411051730746938097175937550453702577205879657694676721201882271195431353924360629495500511217856812625168562935676807558903066128566037643281815072273184391973934906210508749825625889106255316829585792756049620208926690029859589827653057916978815489466566525895973024870721335532038494067521200496611997831582349439741432182940582233940719953763588104125160330865691410115699413979178433246676409227831282134118805202917691251366707320016367871096378186874419594322571578720342704531112023005435016047581622167904921106339955205848806583301236772157288831356873448717886631929042281646268667090002321104454305638386841340397757214943980412662526994049937300675182057823156416304368843153737090288712924549012287662969981714847991817569203794213077942773892685832470267766832191240478943575437367465804860141230837667642975166597889484267720419774978151432122042386792022321890953178905405643443823396732943983491467910856309356338863909167747387150388486741235439952122259848150960593645196679640914816256310401422174530814862797860324337309674949925160142180261482163925004274626371365526388009585830607340301472910530733279304061378377335794225493281373494499365311779840580361270502993114918948439760388473085882534883913287622171648966005110081851719057141399934050603779549643054239857219908884228676219183470212106036078333800672236590308173224251930001402481935933735617529796382157857531740378606318027109604878616938105498602650461920335542329470685556270683928079321280577264063397370006951834062296596946352860821175125040552859847952128251624958378556866479812690305222511324802154430519611509075922301653950871374257107798956900224415870015587836209192906140258398890814716273553699587455485380762982504459077252387541770570490824698944222163048646940975671963960548074068363989198162585316768454864577281692856152482478250622120241355283520259501339304736253784145093722503347188208929484876552239545008634288344730867771327575646634982846298861046103918881620786469535463346784679924405310385412904477751382972842251796645627062215477851024046225055562339484019721454631170400592329803001597101663210141060008982220468464300004719379921902698650729198568063926471045723380213455350719031031321460100023047340409690959923391825051300954289117643593038028297307911650429624562144882014720852436595974726405689980234337668340027897689959698205319059454990809404276401836117334156036697259833370340758519429061940893016610781773027502007079230660432403698479534077723823216089642849355108095547921938396211542227025403535629119535459949044534154542768131306674248610152564218968723298364132230803355577580199596503704493114583885089055885310210612553622238637068600870572747710588716787594732735362190021540036144270376400389157128880534167275602167632463799908957388082500075519950176224269497231139779552881906430815246826131774055972604665764680836682312064443738256887444517843015064182188075201756279163615945001965134351594309391519806707163200872784795357894296404757836179780414842437564529583118541796135815558579547363145650602488751010220128498308212843137943464645292641055217868183083713733295813672312578068284284482032881976053632324574464940768864764065450947434136056492274763668059264622426831756180588639670302910402223883952871985309050299423322177150431883277196296255431080939121674627014857653859776698984692305590087809405956361014499839553374501844553236440022277428900549765677990355082675025470472682286312802599637530050634331433516009916570007330084951635337518619951887689572338055383069021237700969743981977137285128463656110343432235484091228787480322429070032447149588583590853392311964145351161307120079866635070244404614488654957763102054742031191110077062638574465335610876260279511410119606347693438352083094990711924132918833382347733522640995300775549603779144206771320627366338128206281327822099866705678075838826668166267177841795043048143835256999895981009429031207438009971271730137313714920421999626122588174955958569589761703946287370927117269109690905912082585550193380808490568614593525676775484520361462326460797351417052780001813408668765956629396211237179357997660808018118307935358885568426276392135824659334382430875217131514357219309531161270444545382895453955806871497466370953472576514384082254428816835856766940720489640016384802639629884525371421843003742584126451467056151679034425398733230562487283918818912897448627356292754649790721801381220608444376473809481729746837032386255112209855241543451856707104979827198816119548318067801290687774991912207636178547909049347067395827392669821768398337409655386548400376065096112560629544877254943510743937730076770354980543560889885559272329158164678929071937027437188876096103548253226479953984061676959379084772912217964916036913188116441059602128194516909788587841227830764096058948551276613109792822214411286466488859796051616365774153869953937584640811463858680345637071689624031089543309200610189117040203581953970958266024386525933931007025324610334592212161732235502050026919609150027981549872085585069423720266826789197665777736637962820421798497242224707678406464038569598545169671438125653999783520753899753797361509294557206828634546939422301456622138766558968801450867190129784578100654108586376947516446746669412804361280374592118464625023370308222437077086684173990476555117182117153153842661586969045867421886826753116283891386263337518443780421621956949506213520793107801218336350888209608682557201746520340857428563706719083256860299353289902118607064599023886651007196555752310607582046751475983234967484311625353844692838556525039454692398966339657594077729211127821257086931301721729110953898329405624934289144407156749707184134072317591023212229576963690889027379717136840507700194878765378898034090998104817445606102737215674168838442128471997525299760138898797955349893203558702419677504872133888127892486201041894067294217547238117022656311958777176977540877156394567654710457728106000904434773095839220761751583283175505059987867983879976229809272118504599002081855194981133461234634406789014781675458804037308859347594381502084629925173026569798944186719852212805266758070903544018921403198375909956125007356323327031715409538675607736433703627046467871648050279057006896323453698618448511153190848138755237167187038095799681900557369558473415484254477404255281758759916861429132964296363660648806887690984263486456178727025975878548325812675170349498902379596612390194449156390942351512644018609551855731157358624490714408228564415172587795775498003542414854059271127433282274981583658555893048093225318374297174193049723842720254123600327313562548971894253761836021717923256139602959623254994445684417568205245021360771557742848403504417433506844791274317253447312722226299480091156577315251345175833799952660063584417074424628243111955361392601933882122871301205243289438377245066758382012296352090436059869708563791133623654945464679970320521428431660785276364873401543491800141969638421192253436333911963013214497932084210791171560410231075519293917561799238562925295732277620247127415926427809245254863490343640432469040510278267102158502622193537642356802662419997198068833292559305840107919629414135698474931761520328036818985077565244545417009704339469783294558867452701948026749641896181809346521772321734683440055352874833961941692540831097256679995235069244102111001244017621997138864565846304234365774311109596067046500061649411991885366204575178950188601655185890045817537567482084476093098827563558563097383617476942433156539199969426422209924296657062302014661989148391197549636138251615491450271648924939630025640140472343162816209346346490295611390031155097906664810422239939998056388589615814102381210286875561473569533609280449883881464254208144554927718350507101100075266474029397359043344196197666540762164234865326675829045205624507747337090223444676772606325339625462327070089812430552758810469876339863478089644347016876954019293503524723020003289889063859731498963432971329927481942528082512335299387524608999877612558387124923690737387597601654091117481334227628471119021714892080835358020366255269327334595857534246516228092487991146279875175306355067734198050126624923647043643376467866543793714426830102404981199101007873471069255672057960355870277045305203599877259806829779591726567060477040157115688671681084027439413479593365194128048267638943341866130905770124672750181448039240444390663709638972360829322011176774218359521728167620603816612125231276893819198844328895104630665826342726268774694827114549431687422690897904162207577782042508397731630495241237745230232671970232337453335828799124085840636920574604409895402045256490599471654379997857460159518995194635057472834917546294562242465786990032641195212662251868318325791891231460235596301489597786584926455197883785995753748362596926459268985897571530767465544279811427292207383841972238186792492220438149605318820353644714429255226236202711902301386292285325542257300924689140372953580155643630337053068730744660263226808613480616757273683080038565719277285438137393140748652363097148888718430874338327453669815576268134972169355925116491907591049037969343524565421424198939397213784740788947222638630548712854356635321306884327320142497310759721084910244343456453728219383526065360693389485477694470850992065051953282947745390586637846569840904537477132449087596100495231514518390376283396302313099754757402472752310330034892255763603124743022815715250973426024963002844776528221675237123709935592358899407737103130658147641950385205678938335936428771542407485999479485320416364177081937891330277462831023558571738133635320110461787538473310672333341753245834954810486601774649367597660922496479087577425007372566476172635120066076497489422588081620863772115203064615388819212565447633723188698079098989896896830373377719417866633159940607974576727972661123233045613355138033320352014650492620096140750908650453662749684508372447268451379886518418443714585268372009156465826972517900690609613535649242845240053650419673149436726609469659009690131740446808818063076359846201673565557470672309312715461404281183435080015141508406010411137603631856623181448255322219952906516113350720728599580312055724292817505655539796482708827497590076428080342689328323479553288490392938069162277499413620943487671608669385701441615480807693614377914568712685129617202442241516345465188280034165379000239568807568769315774783812976046101623588389001424900203127244859587722481070489935249436775595631322473907907517638158247032345671552292353589466756461819309388298168299802889368511599054148174055661039212871151379782908954625220537413429788384189564694508736954661558744815238504528946707894291432220719149528620320377930064561664578997653591463500517375723614976107615853444868672991908353446308004263702365411108058606285147622926567230156807550306519224210646503643699169089266852903083947329968833718361076902674811514559400922537178344232661947994713652723846294769391179472679247708977610261870170896465288787910147570057701281139243898992351217086866553285841864771661783761043118521721927703298265573930587376670480903416396271305443124025680140716187107086288411117149423364485231395631721715435523346819931280946971862133176370665057119975522119614640112572897819697342959150072559429392875373919450893722143335426687838666812320817601352600061257221731339281580144022299948932760133014775464680325795205424548107993719473726162688384117645487980450637050595015365305398682754497590287116036671850485210673288902992207671927253246257138585061318387836462501620753031600208298636294321076043757948073574085359734310025482597631244131812949921753277326469491523749502478011070923218385056545245416824879138711310908739365522063902326476610632551177473646893620509383484183770910610523386786530163308715692360832614483755312603039368758496448341648489170460155057524814357633398603852883417674923622619638386389523762846792244920827539944821955290210398693820925058124124335034846017940152450460129700295015275376124753705989023317175802568560310512260252794662546174741345773349998543133102889091305938772313575890866587196951950200572743278960311530512135536851433469731428384547665609914823373623911688354632069616052965799243596928616049055385619411599690529881402233874780763491246495000361471600975313202300286948366328415424492615601895851028994607624510951941228912118157203269985003401321825293825745340928598083657880295871384641204878836311561429284844355827709170874215106564222769037559170806025921520860987537274915550327825788348978366062860057865109684392364215353783064798389704635701865138224941720354682867615670269576711294395215341136261514290779651342315264077239464957511884353831764845666675100543472930398672334689750680134455252974418559314038123736513793550490643797038645807402452777813714083599622660376392391006439923957992999863291687922706490572415141229609263023135306761210519018634918493342141925714918570917883933604060466278474531329532016083618686068815349254302427787855272030965510402471042116101611713562698014546946978248484765495519138135819352296186338678693640549897436082286841164670088987724650847639931341252425997691205506799004850176973421482983981383871859648363079091341170165823756120685539482062946664218412038377462244762521622739334960403695624513607676357745852883403306799305468000763519475150609681875632191287491773295537646789898073215047567367804092742196057305293435702242812993949999659865120553908970476043851298335017841540068005309883217308081177942418226773699209314287688481413876824073976364655007127316798302572506042358946789453102059122224965868150901761752861819745905114112132334416746948829977005432743087600307764109910113319597869750135446878303953253827941435307434430112519548151371447083507615960629547107491507472823678133249533831633513968312410697487977080267414402604620969091510923382142714581141896116325348904605402338993110922203759466031981323744624598320099173941830489700807510016852394173528785293678841062195668915289213525135307072188998878351055357019705112458719244394337432357298005441212596055123144520909715598394741524416638386707952016264239874986191909044198036080695864645237582382443662700623070580377172901800439499195664078555663861580815942354105596533510360698212694557494205940305083869478829943396750889825502072656196769789515619754888389798400536556594715601767468516993928686053883455362925156156861737052701382880225441355701765988255006770345468334497455182644049101654286289255868603836872539091699216375208334302560145099579423553671166923627132077909463744933512489843084515463807979654439468423114016261015653884966993696048693049618935961231032057041572954142992630575433404332028036905322606150545603307160665028882539140364277535647295251982703008493828242598027958052528343983776004097989786727983447245600252720132288241200413506058039243440407425100199247169447703030461847286416212486064282848797403651261004375301618278562676114155183748027697218537086379043946921485249904906003150222543492796350854233561895452682805948995889763145623790211721189476592520304060526963596847189743340462200220297088230917186887962567672012805704865403483185953330000519518470976048618016082835185028935336295248028029873620332477432828459623572736447833548602536712623515561001937991293447625452028713021014061189441979667840156185720163892482823681621135217820808695146170409348079349899551988726236063985726614536213151109299512169209338818319424314844195550051708390426339491991257926515529256061542797361347765365013621555720950382068572410168639872725717065082899709258600146825799340750410822669669381864764322151998196065247508200233323857653739246838207780490011259291488745350258720789087305817541567532903170881373693120812898889967393018560384739545051096369979938863508944334625045821887559856224955669290482275625858196484857294045394114819149641346819222359753627784747801532760663066189607209280549460210379049793988657263198977114830494360473614652124030464095438435314069319688927095856154827253710902902330655365950989139896943756027052372887077229427350398540510905571981413975847781123548634340156049079365159301110131677889861350119393149133301775541174482138239297938633695590497192804618282078991155281353932820394850247483626570544440289153336818470332179564670426404502187216745495687472462203712748199371101027495549197092578923896582686659347773205054555837494713034947460262139324066732425385569867688919673446212921976022504221526348406088018216680890323329563589432081277018431435676524627444824425285923633820393073921364709599725372369320303342021450206518343223224875938084907399384160640465232261668972283064935253793993219605669082011434829595097789606585522803565598547390216977608755224604889575041789180870939646707081002630763604285174663304465751269416674053252987525694111606591735544058233581683178131360355210334291838985536509061854655053923232198196594375783734407865723578284922207017241541923324931102130556592888288500419052490329387029181827156504381646979590076438746549019895579229485010345997486254880064137740004226235028164127026562643772537396686155026939749746323947776819249650445113190743419966423754505484435168735148444993448730494198031569111115873219550859913932797983847502570696047560452548242170334450040510290184433007991725945939374462803491901471329438582676800607923008483626674523092647344272482436993859269436320367443134564741004439953303100772141801779419018235622790733336103591338304063978966181925683264122913656929288967476129539146133373064979909684279246189843401153743476237226794002594153739724842542280912610203120400033598400830788527878582660132539497207404069567761424707835318888136530288395929294698672208449316296780227340342333296290072683003376429364462655393859604520665766373574009068114088209028649191211424946826553744961694797005388948527638351108670942473859301011064638699823295694758554890971608156541367543024280217784870425627091725437403173745654324166397274125908813009248132641232542076385608284044958341049634170808475373688249120362252452630517136845258843493778687133787807171192772961501530550746488980944844791422457167659183852786490727622555607767469529743392724391273169559884504989082692682722592723432515731865519814677266077695539605666650906110630766531524831266470533376142867783714546183638940854357237056109461576792043858839154093497320687336687237704831933501011654503844571560670914105706862851279035815127637086778790029397734152310149343947894693536840129630011538795470669600968379338218212766775820029178370638924650140050308533160710937208765118117195585257160945282664214378092759665915937250969572176292254139679910183799051117525866969392700432314210853637738134497009328964112067360522497541580642251410499688636638394206205280018974020472128707536311639391329599324955078873343621699083389549679012836369599598362986576381273536985094120644413674748891685466684334474791474129322411436075055816127066547629001014105022531305069683460706035073652705378286144158261515869432609112419847473800156316376939053815220965994104000008792054721526248541366340666562849930900476557216646816953638600570128634785309661630254100237051417464393713003073687800809766870769076035781879785531171617740514515000249241239382144925051459832315394605241822049285292770494101737826701015386767569986660181035891446287994287383083987258697033544343828111179443565018418367612825676355455709817323637472110292699012017146301330583895729309963917607227917569683765162242770476457519099110734274442666268986244747219757432538883690145271355104902559433409478934582962232803128492531279514639252372916069379663727711304681959681715745209663631201504188724343536498531908633705732038102447925900001359888413198918608194719963927487148608328293685773892502887692172992247482646763435331960246423805059520847829552233929206684782554775117694863219512920624134666793788687574655873802963516768014204117638511054171014824600987874146537262950009926125574460023764788877606067598902238174327990088794891334525931977404370073192855855519515880474258356163629917104817467881734265025837172812038126121892347402766716934283981018819568181071052733360746738829043675275836171669355150413741071033146385817623055370367662395860149370021819802536035659235284029419338670608816727128693950491186002089753350563351649591381667199493887201422791351739892374472522525843275225941097448207987636118700502714977541339720529956141614353738495539017904700457028837832097681416921513501153678967749391973321186334233917276983262645941359734485901570597582612234659047416938587531581966596651286228754387783285579913609370423155462067097827225046841822440063360456482935530247604138807663865672419433217953494644638899380150244200041670911887745538313344607789402866763316373849674747773849271433454060726222135799258702447469595456539431145039083269837045474147642057414763797759778846200543758806003368042408897390492425744465899627193750439324132696364436701496805640528541617697122408379187842068194017008554686907877291953201423914681431422545237508428593618607087950297002285481972105360544754211386513735254264254785687277363639032436224715402985029188973682589134488701558702132999747547196401302269575683430903971353696786860527605012566809018319872376749589072045565745689550442192399073931014462346982633206168983033890057820000159867673096910213419470682910351410723507149765757709535812484745887075301320012917432062780024635386392579184331032655210376911357223514428883280693047204669902234792691019420438364784422634531397537846401423692996535203181957048754623785787835749948704144727268107129648561087795105033836311863208355240523738531025402799192332868196697156495613512706290505276289789635368590625976258482812139441189424316072170402549390740072758797482122493032010443296249797092466949356483861562113516415830008868409125950308323712753216010016392519104041973188651394934905490640912333734363147176210372591095739544881373098709670341700416431334227158856749751273213558350275427074436593339343577696730469584723291019910717066116435445409168032801675270657158896984172879019965713790914633097844641676103661455662482557374588845710788916995318440089942725250309125761208307527809237485778477038874800964436631459032132622270684753903426154113309240266144106229972846103195555410584453872939789861700290569841943773197061195991728300742901864553270739956165188488909839797418346973670112505234374709428699210818246204462215814619419022494876458526799034779520837416438928061731690699145819427625077363009284237612481105615516997264024740795110240985087993675652246642516345242542023858417663127835595355497150516757801852991725135809434551729908890568901155288209697717149487598321646032680739038568020775527399978020923199918437281985962029278503574992474010928395528575138334747276297523964949938359349028435925335875597798048523399923359178259231439792757492837282542903390481810795855170467355785616800550185528217182561690776555491034565065426596282258174656296595037106866322532384403901609466650462660697178351889480039047414965323394665990714584822592554163427748632268379292080575950082112291958615108229781431645605182126282893542591986541446149927954249855580815714429035179631098533604951786990553830163396300613914254966615726037342904679852229842004809698263314432486447159815978693806089646187456275240057886101325916080925756966460143841573568442335336330853098816439306769335714234637909150510817208035835352886182945858772341839720413308593979148080003869199511569056493505881194022283761495393631387405547627206027188207848126632432759236745497097868557254022792577453642797704269502033866820268628786390101083590830113503439374183151454994416588297322932316224573885006789879632385513280509918202859174280192849007795075448973710068312598333325821941189129312195959551501792348170128132618590196184368293047021994677283875324679619828026446862685292807170579346439670102226111971766175150214282124124414417584934051258189685080236341306323905626719772716033307611782161268861032728445952802723175842908911972492716471576066026692351779905337026245606916042456236913760342762819048797757945070495516807422501421843267359306048753091731776394319966871811203351860879817100344723029942208986890799311630572640201402203831636736643307730604870769560896871112492975998011676086459905672841447992168228604654565102438634899062234792997261243130927657863233076842454477944428359682211275688629927173207005626011072395427445031934586849255532357432355915331066916558668321050394770718226312440033683118070262927441165732420856002695567960867938410497695512169793481290570031087850844672989206506034392068199151774199469667624017974281239690928624616225591319474562807142678904533548564995696091314292194772703555360163615700823421650015117907942366126121377028920760872403424481670924915919788077393053907568362864759725028336493169961771679124971122177174980803337839769918157775844355332602797927937348856393479765673092292519714868810570800208856808650108093695597983941080921981217656034317802851402315965930969469850947197348168131070210578341356717041235009365852226508302985427853022331602887543911174296499367254852160464202790273823327629452029015525762755820494256413386202868497036804100859819266253065621741610816669662272183590708527906173130103086066155130478793260213629706360212725606870288287994458065762082995383195468871121161218679833094639008871054691191590210240057828792485381735433057565287579467164765015032254866854501140936032147412329972262406712384563304507288067361039116530540586268150620041938903265484194512382935863640833385250901804547836167967327756059950752643784073038289935265488347816737958202559176719333183248182737401222231867066038673198018682385321617435873904589250052340130093984935420166462376130526837362970731196765465411493530697250311241998926998487462115860315007582291406139346382928286669703901233768420340085992100198209892311239049028151958110340845115190342443848133215231727035959516472663746022749982142960563220029273430147185411768625275006206076736081447756313086096521049774259308514973836135100004523055840519271454585323661182997989595426321513438929945626780447119737219290739673520789578149439070637254600049382480327297391255382037104608441936814732418699086796051734262805584294856929228092458263156947833610706252658951682037589738413582354866758089160062426657150086096653198958666905740463337672073792149135917927707916004441942226947347086062117414908334864725318055727269342216979567540381211555767850316197469403381025926780213188790060326858366336593148786479562113836044080119917886067457880412460809593667428601493254921917884470131419424805504833355201551052922130890123907932875592700882285535229502519748756918359203217946390315526482624180142306158310196103435506633719868724384546515490349282661881425415040355911873610456378063366157845570528866728459398379136343116864476483593204120416209740558883660498383692794720194894344433276852426729888489798610700580911470993693635342947489619506649725027863160298831304992693942786226096751914544991476198232492136950229356045631529485001344868093119371592904457966269719901684116876970301994469633525816365994189930398955392028679570060792018180321484562544449799180941375340315949967087152734820490542013326509740930392340648645906190039812696190723602391726769162180827511353752530990992630330211907993463155242813345345429166576025959655925132753669287011732837564202252297788254538517372764850898121701291161719482938981150794061545264188846108193289263731810245871360908706144619708644468821478240194063605304904453618345663944788686630156667585599160747313648008375507383387461034847202360666085868136639534503301387139266679254592583387106203219688053623805103616483596754431374164505889573352308799068025386840015734110440406398983610046888780298900359883984620452370186459161622767443417375672110271671714016966874172516652151202127278084119386436856119362370543612499713700283205621340886851636484876143090625439079179830677025462854772290595800990597959566365328758936287490834373335490410419096794901169216351451849654468746891662784579639283230777996620916185574759544412649620526034273953195820308614686909619586703787965596099914732347540070686975761835232693999899729730677916520757965533443807188847276586929464192091983510521638306342949458806801224984315974145981222241989448286285855999981816059848948986663825792524191201876468803609389921021703603953135314420339352128431966567009411473520092838652439377672321098753721667627342886006314671977213758675705542774488006705979598075503130952029663519042669867894375105241617835311813053804531507445352238637789986759873226425655987123510924173049273561397299414003664708431129811266078212776472222536472492367733530360046065171584505062907552102160149282759686015253320461656237667164816269190907107439644768776624151551597735557928212160008089490338233708075836624868182668766981255642718102476716342722582478805216506627920391515468698993700154326839385742552733026168854390276956280533926687306889683976511463371562218806869705726011039841038837506825210113522589288126620212000194607488187087842953375136106177128325995168774703309505829694253465749711133923280650574819973304402988630979432123391631827916122231999745109942402042322804842069876454381664185977493551978853872710236280476346568391253395774231388550905044539105542513481206341180041157056253556617652874829066696966907088877211763017457494161421042486334069692574004777867546386067412631217558922262574592456232456077071208957237472876926170285957402765721500457571752580177401126880117888614969943129736900917763970444012683931384549347582304649211153266674302411112250622197499908591801405957312396529572410930783085468774570746559649077544499333704342644594513180907370870580040250707515376407606708511445370538924830902312547909219184908903335994300093734653950621636363073397015904850241639693671331299940363777703266041039107792432490498417722512903623952766726408379153079880667875591157278239271783402145869028724625331346648606110489010147086198051048501091964689596428573797016494520764811911826227169371089886080880320220717593519194605027333975738258592633224849182984644876381993231600794285465261618588742565360625345893393953257466200060697190294024478914158757315351673413166878569871075515061933778694558754389004464759088238261249176690109924285474400060044137973487809397812473704749033398177408078930031665980495400678263491996125952153923516692376124902059453851812007146723343614057425848219733447978477630590987859739921778667471583037947222233739415323756888417801552327321439494141297702637671395953761314266934561293098053244693264051467881003325380120780513940461396689224206337104195822228357645058466854395040904306457796641254649646212861737949137470395839672699778711374051936846547009783327318927550003166315732800411167012818386134495176131448650384727276752496882395266712233666323617435129575022327638098794521199641496005383138397612525959365552939938529711287630203516373432122126447925211068502725910356994992548601905836398570325104785150422527370791563592135105494871984452062090608007880843573238362698347151497550448018695631252736476242318316759864983520709485977356809801950534378076571733636735164312958127408946955121068787485046798106169824088718615239096039158688570175547453281324313999962741003271961446169200411018403979112973358321693219991328537563131654061453742034953636871871371538771202119498145371162251795473478641323689678246702447015827967246513180293537127232073736769547507066421837609838963415245251392479502594049926130238761996902424046626707469001576487350500356627091732538629143260786726571689531832209746957124580328416307341372649582361383549888424180345060460885689765171680846066121560749606633069098371777612598335598635125682532604730668455506254161180095752493149779006708614376680390252983269012903709209777036066333795202112354995661664200715061374882099681043903914169379230650529278373208613546378896867373029726313187410413548496040386776136313353284657711279846149801258083438773786150748477262898382344764372252533559436922809221019522680755618628592692471439654333220916128253364055908830799650533611138322643573785834565088332010126687611584379650532546321712563860972021690768823832603114139255010534584830086979329456266514354071013728734945078103245563087329463575486660839962225995076612035507489898302577142903859653050873835697399233216621492752103156869585908871549175468237193034930344091104382162918506642347379469637569829398217391796650182007951034118533588714148402806287772956634445341079129336269614818836706655980718070830840715029157028577541535180807538927541484131750282717962944466346703006332771040721939404588350964217365054944465439106938922663981394730774866929222333361994504068601825308291121833558489297680801799256895217289999177361136525945728842089245288086238060413222847199087765292486362646915201572513907665229107146611909779397946682803530021972694302343829593305672640700143836774411979685235837367576415430510159645651095939768869138459394079381199235042951953431616862473525408495008856063165166520185618569715499429793330347472941429724055505746157023758583585760741857118891771913185639730036517130932896185614180987031537159626694582179827840905184366576185182150046258499461178417062886879344390499198352734699843998737267692860069621648857225843134622266948624659050086238202483702182304283531325033840372381879130276349773753516465846838681445801832888357423520541596058871565417027260344257163708645208499391443778332598983507796601492445643033361859684439208777646480441526630745874512901395711667671626823113540833162558004944256690672998371220373884788034893684115798603840153979421971229425486738327582398580460673784241278761689780721331778299059639348770779852247659410966898405952434286429396023095901820337687798841710801618333882487209683146289670702897250408030771060075773092752242075558522859069684318500267133246945797173301593191301582512126398199387645049384635635797509257755951780691056976130081409217281399566522799101908238467139053329843780965710718505537636577944160049156330679884451589136715455685269820917505926993067590018642459264079131782892775737047130201319577895606284383857276098035983852936544546400964810747155231176425168585152607815160726746577510095952981935746291095889362713077730464330725748509290806027930387849876133096811414609612284668013191070766051480792240748138177784070552696362783538983038828431846759164076703289106157012406677636520245895191202947295640128049506040152125826465008053661880248551828480692613186138663212662691185977675495989714791424286392002481255507423819462231584508393241679022932410335408499551620005558447502743558581152013113222209953728893921219498572417543544552383525797799532940416372148336861424923170141816183084470621457902912333703771332165220547415338913325302172783966250971501885492005724607198600410658769646195888220770485522885747678734601746680463305425839120600042484370279797007170519855323328294127975725167721353867937988094151833256367799149518861609678643805181666074992564503938047054579750186091444534974448180888883165843723893488941412103769353056837796805832880593403620780660581572094024408697567091045539612871916655227863036623888328703482740758832914192759860350922033936879365635903178995318421521898128785404745843807932201979460660181787332116483442853016688605197892785386440237271236014408047215488669607785161091927030413796151894780962740486310692491498801571943546539593349360193813266024875475036773082806052645311577040766266327694304717983268925777462024395650822013506365246437289091707565265697703246335714975872532070880619358202144876825510264844161636372355740261084264176646786085888449639509305361887151989668544164497817768493881495800861815457780755692962352956666650917016245703028318680366683409797228659071509316486313503886356997990398296267862019204027982580597536868764133290511932737205877490838985877326917415830964978641259386586445972994205862890015218184018192946250456005574930639999054502588609823279101725848690016272689767262153220497801498885444407211353503307279965576691447416451939650166350801403224082079298413475455314562832845679704742115458312794116402174164188656648925616211290524581582833811260580997632991455798709177660477621359614782990822318516835234953464491975263602199208260298559261482822876070711281115004204155264801796086076615864288719722197709383035016150494070810698886038329141499893015748639424487460956998105457269462719869747875685173651723148137553941917642176060858644091160906225374974344627092971461444479912814583625882723865897570110399025478833704704010579933121626884441749546108998841867416054866634688762543241749600919941291008815445534446220117482726018219034450964230062654692487222889167988679536590714803982981346603503949662165387620928133988919461231533462105483348461363994613538528819870794397573101133066758038277011608519820240996987077971777644791308039164433853399447388925635813821725408720308359657112943825400439655938856115257167313182589479386704344787640887498312187143864205687259724928119797039534210860301514085324276587808247889712603358713841777233590910076844220552580001059038523604747832078901884563783745172526103954746727130351562714134587135302174528084919768775744478379876744990379665025080902745189705701516124433741332163205319768823983533253031525257686957214534291410660359931340463060063710468862086553798873599668647912916461402249917868311524816194498002656072376743657099848626887494165308659534700114420481360894402035545743756198404570981113865482633190020973291637858999907780702249756680656340914018178696090326572230736393330405271002359687070525160787166515641609971242778247331939636474709735619468092303602459654557590389683977075782852088934068882812082259769882912896125803318935781943519503936222236891708604106530639942739664240590324957057898237993235557938651406845393018398757914819491501426715747513171479756771995695099633290689638667831580580746302460542264094404265071665611787410992940710791502091952349926374716172740629806661601189427927857629201077650909384614387275330883713316005212336793886050836127825253614568437425745662124494732943379499096082763100357713024585753815924180102161273153099641539485113472701871491166356080590572254369095001506061188955277856013907894407974742080582058756613295007014786628854021823602458286642008936777468703914973771185586284414961127002282718184683746381899111062377442347090273267940375813867120982971570483592122239905479771178943932058767694597680627601007959642318518722643882614810001784871820716840449360577813309610592195720669269588742390828142248791596252631140254863809277946398338108404181488783402178456225656349385576332078490515476537076416216188052269477180932249876152369930587156649208618581753138245254866996643211223665571079783651029233790633115473123943125079985761019416912326459628709969231894432587175647414207191294995784414539318548254381479820949100146146598847204743844284203252514040922393477811289987498881603044803887881486697414397966532707772240258036392478911415407286395849972619149120865972956418472063711308519079054092215220639868792139412109811325252394124827061834437267684824489003777468698561466911053158612110617838543646477448891993941673200168566757061274919547054881480447532363944151137428127690118985763364022218594488499811335866216403094603445341740015009051800758105629951321001931122920961266766164498785116873915190759230328301308859164374203968384751913509317638397959869654156328799411717953088745857441456660767866147498586650214572971995654002557469808433111243855761245370347700222198289222941808804460267843908869237702606726098127982009970084728457164462606613604274584354910543118597979239588299358653648587477387566762759831563320820494897296415739748713769346134671311051698124839768007204754285634797119638903706715528568544722467150518879666470700709001847189003308158678979820784586970022177809372582144939910418842544042188493263630127061162988123933171740704191005994259129615561487426276539976920035449058634566893712491524273651782447977993198238412758852819343065945150732532975974611485732914962299371885193583217020206014993465964553952709837467855412472078023777450030379980894646387699272757702298465965530049396702437060161299876602289469514926623448306750024318626433104149340093232526185498324368902346281011131394722288396891960911394826321639885630159351923598187556308592854170708911717387252192731521069818260775784647624211860778989973508929094454928521754638706432308618594570953975931526406614584519924805656816209883205206959168066684655231484800117005571141102353431571161548712969253202598701078395296238407761897860663726533609067832362216906321114243649689354979107914797714643257427435048379857169860215997432687271176134853148273085566266950067892253098862204526366703318917478745085694401181943016746825653982567833051955867132931812216621756328343575215838495613466802386968426550667580708631447066417013078057286070235378230846902208928863273799657809825717280379759675864261049014256899067200555829426518281934759897201931822105915774126150074512573699702124224071720079060171634455175300998568472488102480056954306808686757294202016516167188796508509114180450701723673989582252478566241703917466751359903684815140616488472221804990681769278629929037786978801470244334351044957642082957379740804959985431348723737660997237556647893198780185284611729361535989756969802388586549823915120930408827349184648118464547105159600823624262240802672911079033935150910093338065707761172012426244883977267399503453148567050124636548008957876416084413872955496903071120005865115018890589316687998833136096566974226139119636716914882368283847643137496394120570896120012378982156082715566979210635195537346415461127518119066138318468774902382857881323833024173662331908549867271245964514534298614517507591144302803874463077925560461872492922039907983229937788408730782202627739925864116408815025386736816193589561526430404903422284382037987687040127348074871595818107497449021118233232881144059490531412280600397490485713850590056744454933624941497933736273155943435067672110501751499384386683610058835694232718894055828399313441201744809349547248067509860016909346763457694898704227517452689012353241692704254964867554790664853678010018261495059188216980106862729199863222372352181698256804340353532341546731290854093039909162016772544417330153879849970653419019485088994041648215989697715557684311418725610038186331877728074432909853300077872435166436312010016352031776427901602385583833260371595272050310267904693436834482436959796640947694986882243950343775741213782335958094638637119708579055637781068197132850707181512989271224193420638214453882151292311266759920680183808411059959568797169143580911033288442177294377819316988926944978112395851597412276283279187671158054989974300765636906798153882026678886472217397392286427013685572463278304925838224131042753772274865880006050833384168169342830734710685274437254571665530010101344681518825205997546894916327815141288041174530463606165428849313712667135918438885159401576360173971359012183275286320245828222559906302487845582384395212404338832897018164128157127014199826519149040725569501340850325892590444590045052813683053042427638532288210776668583551777739053469702765100900101355795663874981402881913856297679314808381754566433490499527987331334847066960489815121551986581181688458768737824531516152553212955547518045719030603241210661190876134792083225678636103622510791801399019032894958671729283610470931934496432987539748690962659221581123616195698774901230150880870346718809015258277463587226517180371410976331998828391623418599303424997884746202048057058890696162834865521533588396126564862788123043073893494740080309644759592536352949743614213422823985143479908699603879503997667049563609410662881140970935255660029896748482620052911972339178875512286475656252566342955940245006889823273632523714258834504708537433629313597152134024942425132543967224180795054587362580212183908454428051511274909285090961909430272674515647985436980893942697882933498244237088018276262031963567580730094938773391623723990801251392083464258052353447514902535035833415449513060494781913710974203531225847796767719438470167835025035122095518146445787094449624933042643340256229169005340538694347693948375104562793128451080731524636496052183894548500984505314544010817859997499768667460686715834704017099396835592709873946706456307092247039076532774988849726329104649323309747104920689634700688187283630731663257680891147508847557696493268026536517344880589955331798560949247378960363922565217954711200603019439878395312668118968439784959208833540012551702842671934915821439276776244146041783269300908704063658978992089558603389880682175881752388914684894718267095190386692221293578346946303457124321915243893556474167842506931962820548825639768912064040708248169195071685498771575518767358232886696928911693295538502162803975700669709171645841555409226276878798338490314562551040247833250007225725182069938409865890967486695682626016251544093674455649244836975474492172700901784261990993938516827808366306134621882199754123151652993404504899189005370800516024292559034417346843794396036641219945155933804373689207225422087152243010488410158059687630460772130843627859604625458819454386137887317231724620073556032122457356165339858896395470683663838036286068552993187133020188339349347616302435599956555509266114381475017958806852608675963588236979829111241432212677721005397091427170834686682420436945379954394960795036909016235145420128653186166417248574790365371726374850599496567829162833374334501416732787612472134463751952384108338127865004492016943786072452900505648276000184526927287015155957547471050124703061022964416849749994384914249094961793429883533555305872350135905440537984974565008766959524303155949871483523759601508482468062696764525865421468116797931871868819154044059990190407005834543863440143674407096896801423467732402196308958002164220623292975983904013967545165945460381301027165965754559321163829260646193289149435262985819470086343962849303998963008656576284568277781075665230840265362246759995931494846475314964345782363433585223489013077795058303502517027192393587904006820418836759730281208255628755514657941742716747353637866625662600226259386187220438528555399767018255918117081132231170006332352288453869836862804095622761589503497514886564344183783312838463576360829146049817193319904380105475362862662305885475672076949264910687610317925925194799357292594666538353451066045823281576500925601517909565387926323993155773183240358749944924549306604022867880252200116106360566325321464352407395829243670034059492255009221522371015881316664740422049343374540195134376305621316254184210411208945907641090217523410910447655109403407392969000197725437861026957066686021055401686948988253849210005540110364112852986128451047250562923276858033551366019556249683613794700699692523185905514817156042063881286850378224028724515990125763342143615589899399001628892404998202654854053561815282531444821215893828143692851195220956654233092396370357636687343784245814087350383001357846906159951127637826582112502864925600997745962697232926320283542985793330015645639221486343954297500236675070482247183392962257195960069707747060587414144380435258488431323013130802362703935829090087063224905846347402085529680435985969359505559841280165583968534598176402533551480936150909383600587619601351430769350893153355370348141097565821020326231188965371151699296626869052876798826620922610559396245226476413636832683026215333729926160069826857503962455658733412762353354513630050641288344316214310080789106105849207341771521065682690232235779464247008892747222228198731593892964278949122617706299873586489977557369105989604006791280836468092405343399945620383218114588752306972436349401088258491904867053055390371434345200562355837850112010237578980869060517053534457782693115869897139827572637719992853036477081818529465578131118494760258796007392344472446224327848267075243687960626991790685903878359461166383540802825490098541708592793227999863934081130080912706681432433574392059314589858832869075745868130189796731076501954150959460813596652283134776064301154190219324602935256807380994147424035749904805164745443883686157814348351372405616295141457366548862429113835072117801106056425838199185612657446538017131604721991013634094570322965865844440785868576609053312966801821679870429446688101289760883421202811082263480718368640294316606037559857418074032060826804708707085468309491722930087775466866858367085998734796461292387777035576454688785902803539362119390373869439461451997262591919327949585693930583837202106560820208870704516888154116025062433659237285094864887075601567456821599423671713590132079254536894571108040483733668178579826310772780767966389502230995764620020605992448071328898995243754485237803211796480020104414946794667796145610928599651223884490366382674364416389727368988424767688483270415103343949663837674807388847649355658661014735821755427038928946352159834746630438617859214372128617390741200689774590642478454315077941673409957742674211885342405915349349415289068797515796381670082892696570052120749664897000505897326777080261851718399948194932282023872297852669711595284640678702585242687583095360299686271034188547697729543406566916571713227716489708125045955245965122135528168223167265912727536129532858086220769233021429151424866056630830648917796109307226769513038226483646987381375602278194310767010932595212974522063819453906921435581181101941175927171369323116377357190157490909521936184072096799734117635058003441724211603371120966427036295782064788931088915345841570010824124482213298830626727385026566874065359086460495703785378911381369267724149476352423809383890317386226932032772142515649758117753152011468242513167254465189559611830183856567046827750131307923202313884626411704900577878281069943574436443296851879613119473557806381179659543169092574514941019576252446436152773188783221806349322009372132278559213989768706597219913298348134457691349675949303795462187143997914057999523238584470848040288777280808110161731038683039886898299901558884684036132717924366372225815159881298653133900497820584575776463086661315968320163604590719360147070747528437273937931154911639976233212070773859812030530782857090103628315284317095163498273549454206698756886273935302087713726405004948147225695959989343082663825198158016345389354335412965792998102165128552422633196822511542883961754286503064862983443734085685413115494267818771965176697078806783480809838714106321402842460027611201578254799671503558145622317349147555328032228209892397944946111853598710945118919384639462143319819945234948365886538412908107271689489016797811910078512038726101637663287128713314390365647357511564115659871861020933497873659760854657421510117007336922684339081261848606391187695431120394094164659600178557889399859545463225648595922751559088196119204755606162167042966905967550595590668076475345757438645271739424873538572101607580721494507130529090775123289945929127107876715001208355782551212212553501017145585641169191103037233503330583118766053202627388174022523171779838040920631618502813208146751760598379608067225619875399339174172612232170351031413396808870522136465233564073599342353201795907924353372286175084566757344807710802514222400527266132941077758723343735347776037559713954091545511504706835097541511839492899507157165731434819657593623909729246806478240146871230976298676729620200055715989499881525952743142629292470594365329269853854406065154523560397402543545812245844748864047303645117095529918778461422245338510958534110268413877575869506975802497105283704793005265929107235535158319255726685266027676507401515004671522207441951556031520267617844402973677845895889158126042156179403019274879136975142314171354785112456282284361749541183051128822340872776354317365413559148280510530811876342411612772462883189843473476835662159487719648896859569382764806374864065936114209815593396819078148493495130129351044897240573241190448722356325067283814641971286509077340460061936582144195987164685240490181416766690044071533239149503544860417206602459643661299724768281848672818208073534554243647092183909769184626251907115495800944861180818388474850641179100033147269455349457578587352974049646960169891201415895199715401385902658605875501585495981977939432623172868539458307975190084645166199458967267009748199093645859206554035484442106175557565686636482420050830449316442124513798178343102182844030498884548074346002031531083109893966945168950023618649324323139427007632187809803418301546674288390142359599308202427629159643342934175507399396786472781528979588410404914728070212879046001695488011677804500619185393624752059157742373763821721927500789890423150112836489047686679084936391736108419883466200230818106542378083250726044581420606313938167008129781846491244892823762887090712657163327761820067676640938284213333278134413539762229324364150682472692270458003280809609796099014493085205393109929782781877505871914540610600433582800982682916726058392381613202203584995210521453509168222884909126499489272770547813763706325558268279277509329849945876357287512066128211852244287269484577673569213029225617507083353243928802969231230145308361655557981934803719867413029146919059524703368007576423748531866946675741035744253529614656908543288195187778267314019530899587438740479113658364958525562487241358224060539232283926155075371490850215974485922302069620499744263044820409626467932327427560668489529947115426782348063878257213933682621475342793360282441870478049201427857756155832253280591453631934959254848763219316887574676036038394418922742182515258613316103905171338445301697518965258247714746294549084617633152900020296157283300787296284517608994502505390277242907260352332164263750585180516410018804465259698741278682653649910312236629275791710500649268013499055511709182828587860439319118179285106613798907455378142720759926553294644486765015000300683340965163255780561828456266103125366509055810365093651169329435162085393639006301138703595856840662052948702997788090467605176294864545340996792935291516133883205045089153149176100301158586045689843390112279808609517156958259161389531646065628538330457968206465972082065970238863494977101005420539128983473440966669581565041843570415180179798162404402146329318673907027801518738868463340510979826285485925242954675176069831883962911206756342025015429843611506369710687494282960741415900818373811032351870541727329748528901632069070186951089875426282310169856302141631732984454045117852357182292387982866701186458059996857750747469486639115278141772116080596151266053073962326090806382637356161430809969554761065939860922430823049669650050787805395039523003612242559257444620809006918619725678774530298868617431337994314025553097182927155258332618111005835256127878226247017799888482423863437572374095560978267893689271866650071265468732247880338061351748515142117093081696029477222925173124300063336344836651645297373937742231521244374046228074042944769044549135777451363662901683588139249897753495653703187581514403728041070141536962248024832542256938239299412277005725923612018520840281143156466743130570606461037095239802368090217695042797053798841099488868822150785399368752822568530610350361401585369707841793658249440351650620902567288415211422860458992403854109710067190064412397667482095173753243151585791628541902411295496152991418831354728206886993246904202450802266261635014524336803629986259055734052193644305357423611812948337434817930173032087638596977580627533307277512207691081807539900712615092586824747756069923452860536053870036287517890398994541973696656919727561240866127771853167718084731922483433296427554206644149716783466359866140920103923989592008534385491081826463187408679208699953667757060600093069521995217128379461545066939717146129515160308687903051262153759099223329577730343498224106316770545325835650216604494816738411554990261573983716114601463107179146670155702918028729351763595625947325978275347165132162126363251395098306272280127848580250398832312536964924155727524203983134814765890073498175646714763501153104456704557025068893988401141594659689304284164211097590057573995314583014753367385795772241196011311104161093326371438517705851072332084179521906218815178299290309599547168245362263142549643856454338617124845731522887748945401450139446534064797805631437116555439469878332127403954111986142796635770920894349729356389723142639795762417022939506003173690229161341899782176454168384146180049750364917544659046373897836012971705199248104119322843950999060712914202744504359211816333156804589875074561084927688099080369465096886828935346478371646155822668236318530315169043136730403507329533105988761960689280067873076653326671419771319378715828332036776170772318768842211423347324866777959395430157205099704356397562100772547100791214431169546160925598308497611699245620690050404732152249989042912606246818898971713347319425783555022149704232787610222916305521295680669770502333117801414906267673222270055027926436857335383464339859616529419388811832630201642365373189654104644397096074537948478921222631598726156665687749687441267149417252641425922542177946067310090602420589238572708048569081677149348832746826045765175507501522935315102478357460998379163651123286884248804367923165026711570035925531021126531012056671037393353211481606244770835291380770125662135305133386705476454574693655035876652633348827129485086662182674710774373553355386939223481592343648256377629137348511619233902901977314858498750870651182488184026403753383545694432619687647102831751873630094807639154081180103868894090911719728770298793649353373912176415122525849359540232103382699909615933795808723137260708813478412970202801241186788857728744259802472275380586158318065705545630750671728206245259216250196702992822025655117008650297700124272308013346302327745537392057020751473320702179605325437784311718198527904262467851611976490529830442823246124843443512631628363241761394794561392779096307204517993637263365959587193435828451977765658650393795912371637759946629161367627299871573660369141911288822631486740207461389004416747446891975633202533947928201818085398121016175282089201977043793977326072499307107876348732982371425823474132869158039275601408749655804298523474227491847136040064059865518101526873916118054434390230397274484637904208690634794081198890533124954399230617867483089863181400914399177505203507357696592206650690135504119428514182354296579512840716705191343128074943592483089191339938044564020880127550578144066825193243825755251133553433778994041439251974761022195626655882994016002201518805642734951715149362743370723637573446447527437031229164330925570134431511746186188961032230614071525532312572350918981625664211556970045132703966906949381537274743079356593948811669991270223108298931656280676621074064395704056458173711613236591562574132148055292338545585287604351550101442278968215045829157323422492556085315519243222225695647256030877763329212508250984074929240497081834726291718707394779357612402361755139303240003335870038619610719447689731417264705570109133712696763793546644437978527931446724795640414390148944811089579652562905074111000643241759927798551288331135679071023530548545808142608231633100212256400890887940055859587421343530302146652676491214839601999960938966087691318407997982919318730331110027986172194696789160802598522094966419164107056066038665860389440903812178531495001677540226886359393414833887714068282470115096054144032973679086847815308674093564559606027790969161992064559095720345177574643875064290209861936413114990963436394050998463704318903290281165426841298518717146943566973022202645943510257656957120340944294630584704465235763197451672254937703052358855991725586987186196306058943699207100677683929178746825303823643851191149823951195233253204508027827440339579411257823735274025630640286438664957876291340024812273057775791211501531263076991971306997124449826648137436705048543555448370140276905796277715435451139715845692667745840976930087077011840540252688376383093921131136995328422863675797584947418897624171034818325135815107062821140183566730625324422394107450631335289480463994599714365364010063481184423362474856411769769645132380915900237889760351048599581943504214848901281844283515242741168241939385268937561193358525328334170490291347326496481585843894512856607821585900214477648660313799305066053157488227770829326383389001008047197529229068277934346691764240503314236265977872163916186450317155545094494977071475542516081158049279570254883272897900367438339290342643774366788711811375696778841505062698659467521616461717641530113912309697696528014815133510745019421760650113893056689399840749502350082379674387280874222989522090621077318209570740667322739501083915072866665381313760361918559286753408233286116272705755626534060910487889793159032038129828706732064990650310144077972575149411193280789575946312370191918596025552829379567368718475082623302322182425741998289498892130933420959384935020929409052320136185207332368258132431447790712990483957608622311997843836686970340200485734420610285807822826852653959170659680551752057895640674742441202363709071810052009412979456587903118219740634801707628441326280565365108227217873523118129064119662158498651966932900466372625700883721134961087340278627266466579801549703079241501042280611914698119112484232763908581590732518688145809644270711413130957012402033291349534244665062634201458393561931286899952520667312421698165622856985173013208650704331092295927721604896188519357416895354949528300349944540886422082196460410634531150828843524808939101752372192389055833612771730734482730702828256583883110192130608410716720737065138762597408821490226990496814920943168624348697750838646967388509407671744398841230744050923384349626223905706824959847942691183366906100122932889277158648820692937366813807350224082902037128228466360135743164616944354124424114876628144675642500596221376616067375463139723338887435125729080516402548335512272613578408490973633352152883683540854912038233749709766299197043394733501376873796217530460121641322681895798126754395958050570216130647946969667258944933674422986980299297386436343629731095254743553784597068284525338717547571780811530342437777424368331440432730166243523565258198922553408539590321114658699746068660078064503552753746956737592845644080474026249169854218465456811618117776683487410717891858575963659502505586604923258902186022260400699153127956164453314396697622268151588856379289521065001412413580889914496434787772907662713776264081983046271797339686678529550520599550882529282931207886652571881339339850852131368467831180979206523026596037292977518165885135615331559447865152639216478509888929621188113911502158281183556077251512271370540851620274416328249308728618577119288066927731493933348877384821772182996759056523474610603730613648256581228083547334093338870505692271857263942395082534021342934436888693943056034223578157145115715557217548137684996754020813675729527663112400805561287331433489708203442897368906134504484735085510476175214347326413531936048670304010091428855373815743137409096386695220521267827712101979984751727056955568546950965257527359576956419916117828337045752881681419100680226862614498669744227148263919933814106903663525107831852790223635625339049937371003243092818877082214236256290587784807054569189051991599119077420899143264161845387904054636903702160856020071827590944915574446297802180445272023109983208159920379996908903354095699222990547774236790806692044222615158777609269302731390070766514748919464689207851169756134480763002003002602676159758110519150187414338470526212607553848890249838332054384255174015160084771554269287797305402448219613508103484618749400133822374141448126066898651928299148986671632301268180819322172090006425359035598546678591387603514444501007424491033157098113984087408602675343316485531380280575187105900486047976241955183071290489302916840820956093375404646585981531702870874353087408342121466687937415610611056422305996723093285586650956563890501676200413719211688549823578509507633169906501239397392830800264366342416009141761000015700586054397166677301011429786232010280006701225754073238557585428702226622087649858198906714831498058114387352950661652219108477113275277141809716651180925712186666621750476273957215872612054566489932692887301481393122406139496839737454225178150998040558876341775591735882509598520555094555664922766540369588560540730913969105327299815766223414720650065070521133167771781385039029132828907662272307501092512981338432980404502787627146165609028023318285382438228691411682845592493702700519493618310559901806380296305231702204932201582925728974097739525567987705264090783311428401807214242610407602068578209168051996453115231883236778223792138255115957593239171792562135096803812215436054215770767064782646202626228544990911987946162108871219081180684363449331844906328747276301906376416499655357472556770993398119443729053177705447223196147291842708541207881522236749340446976412066182248597272548442065014503568262282028271296186322296477623478262414670116219073915201338751264145920564450681829129524265946617276450758822365401462809271603013081564401765757851247681750240250281499824368307169115448189711959460691930821806794963598257606977739163314752255682461823231080934818623156825035859483380501967602452339026560784123377477927613900373430323177019110418969002381379966385798080706213490161820880786742837001615327144727777639329140167992283382007128062578627883619247409485500883405538833115926942987557139647553606082699315516866321832160406020957260238519889510220576500422824843995453553880359763694688187048586468373528204795299453814324782716110690356100522025720789106427317148067753244488946622371579393173992485611342332845774393475351842552825727323771647577015354260512160166581909687037705671170863490473813432588618974280813141226722078694701827002897727515308368606070236093872849015564010463199367319433512713492291268148023018866807165162219613976364052796354262834070098576352350638317415397159422087386592457453485833346550374711684502198281497839624033581202632020359626937130858491348433587393478827569233545359200918163211774131185456192501009914053049609629916199740676666862065400803167957251869397128456077618733251373042505681794053863607661752487323832658215361292712302213325177737043199250434338555172315158172910309757732083592305482596164173957114086768887921508684945752014005973915212942659159447486511136958797557227638214042620407976673935424645926619488454161910439542928139255048309375473198233722979824523579873377932546532292227857103770468647663765018113370351923499893376576883245793683108636431330373337972299910372135315961168842056488395659089303179085905513980089588861042769813102077595204319399238214621248484162845172512013498740689329506797013818763759590352833374364683993357566875417877731299513664852830407843621352606325668593008694332579422382481921640270549007656239555714142698881736156780669532985540055898234517478225016276074862519687839182252567383663271539231036890801581145864925255209345225499948126098485407419120686110969983490601280684051702380436132249000125078741424399972079014932117549801985318724146432440125056600869214428965396413899688985076910772717536709908105999447119954774223879754520038722948599802784328534170180603658493038083535210695125494433108348842465826752560585987006248392599130327710131474382452335036596560583975023193982673865332893389896932038094384457747623862466856418560816143994056968376165749235774704527256998789760682294728183817738024919292431446744712174619851073691632088286785029941991088987625660331872516193093027041068016495062458261393355207519772230899394483071824107055241149210105729001684252953855697232991461167703485527261822736697462636478433719291661962536845677767920231680815820119493718602329667778310870013712013582176422190238205083758311744207843744904971281570892018976424331897712109766970531020980553035183668611178077525329508827479400131128512869240879605782472123908581236348818194033255797084194314768244238019869540103590066081291610705617441436298480709787830149689890547992812707540620744421608794415359766656628251910589862095556839031065432921075837551095598444422330242389450847805568352262697453836559660399739860147073823951362043101686208225306073686428550891930173416774170706761665362478438534534476879806596838821058781630818064972469343492467490909926384881501636454032226858752924056349871553116477336441100855755815871646161745911753748274354787648936430107054693974503959466244936075212341735869048631811173857174736749641083747816367581156853582556508296889803895319417432917459857444291996593839670109395974753444390955636913879659536854004816774211676790829428344826887521155319240919618225161368322010254374601342652428790348022359550548587900098308050997420845669220053815546876144059577915204955228742557753743486627237386860663209938963843885036811633158249167231716770505179862282752372454946775796575362749636855333391163372556454665358228258852251857863487729333949154377535081668084018355005301784792403892493604914951522442456277753365578721225971292449908755842979153623274724542494859600388873374616136986849914462984983391122009374183424682222320792262309130319379048645688862105790687921579868816147986692726305296036879846279017658791572567091125874516849203283141742008297875145082531918032471232449508361703068938666753091508940124474796312509665971651047935508943890023098765890265597255285631483727354313864565179057378329303866755660942299978756146271149807434709115429836047956413561419254745217300338193526083039830535964159810314829591804028933923450546241900772895220710369302809463801100672006343087719538549343690353505174926586660651805142176859645402480935520212874400752288760608822853486787771364619410254687593225262128103904871451500706308244661020085539436703227672434738884086687117306453725681077631308824131798598836153010480632877968330908603188088785477976127287082399563852800752534020954506372729548960435521010012348682126876540060003423763612566845037555808230377498480784142118795116335489158501199317374942352030238884758239210623260436527880129777097573458249822793636050589169266152324568462081049259957730663872132140012401260393687625925208675222490154477379813949475459830284528363825619307745832621986679485943130755190069186388872521826050665754359532729060380314891826639722138820777673242386378536954906099664526196637187496424763606408381449392008321951697029865061776978965849631862689966108472920044689050550453404525745776999450079339540344702177039231148242085230500162487123892771581833539703872452511279034377061852785450260000107068822559556517010433130458569438745276132479558656900484495013564829008524471390337636915895529644061891857856142922725255959942408745772084121978799873948472542204122440738826566927223967863667126572843005784742698878320420287902310591785173578400472545684445961981341119997299245975698999081300545936919815783019744868624098316416084422491962755570623701002792191717405119840731671306458334751436080580719510145027377080038391190549135506302944070789782331201712566767876596068844023358570443860089215571558801601522132407782534556701698832118853021438786802220758083694828114763524495339447897666320846579601015662195019113265725565147301050852870064451580478816551520097685146303498508628362157506937157082613424274098284231164162199651288234765641591797020111068523773035129504852562697993783949969371337973512305101700402320067246311265979657588975566921989353644272305704656904136475218291111381931071086099332262465773327296422105248657827037204957530545410490942174409338764131241251123637923126679730144822957098459121869717570912982570187041959023165053774956088182217912374267165498848691722579748345629787467166253317766482996946220898888274011360537999931192114733705993674619857879573428982871904816213552447875069185640126154287020087716080708021391826332560623966400319751076462987055776899017667845867705048791729401722468847093176222093487557820847013302808154514303990321672950254511165649963152091949755843321027882361225646861542334698990082410817331613659203767037693401938405784762381400155286794303784090827758320024238614935903092904909698245730836413893349969809083827870941177767227271500447842895219082107944136958456155734757133778508596757683917383577057398751844485073167048541197400583290478251387236607326975333268634818843527508644603552329214612846052690629636891922185049215290974673975357840912206771668580160159898687551201231923925745705379045519078196372975949047081465696625050792853382128345794297231015096345865984316510570295259831092774212452847778691341025208025758902723968802030736122942923848106712812583373320747527269594747171086342230908049557375892868722361667354293445702867001134476338115058077677739736702006950453707507822036342880462564582154489214014563790530549132018854857558113367321848483148044266537225381862365669254115338224187870219050576444273159623765268158080898032756769267385287594214273465380436650065814918653017125560136355668473840127960606589238616877178971306520007817882876963528436695135984916748238816525910936264806339688195138211138673813098854484525492028694545659284012445846991597433440433929370670606004748711177111659808837235175667029951022916769562690898458633991945137112521252627007716941026124356772253260938275669688808982686128882489718841777260535738912294059734052378131499447532701786662910044772921801128836223842642823323378952333052526272694110198649409092002820842901414726945997571380034541411071589723478676210453613382181620103736309126112778641559737724722787756042580812325645177327344401320655707889391657482977290617226280484854795690410941962222759694737813649684424270311227974664281113930862553152562119307892800614768613583866658103552310497292512643820372182880745229138378333233138038659904090883386408786227914689748906719248325411477746927241369860614486845846226687698888361488451655065456047673712970240885279757674978965136099453279282208065975100518949618901000642182555225795328897225553686788417704011088780186526570346345919807917525844123231200079075506079301888652188005073331688981654660957457588764519137278103151374231751104729354933996210813165615925802180391272699761616652341986488745361519617462512103321022777855629044487512879245650872800711456620621977091363328440713848380189199102840925513285577713982998054429802448668704406274145564122253314460521056473534314101623643947199337978238528648615555206926805418447407027474597094542398182901804611251516461403136264469820768610393722256986497084658015553864107352223917941022889541040259605496967442399287517097635801092561561535144512595837066974573612670414903403708085667199332616848846512545811543907316957542866475461527167840432142253550308385148939949033419738317135675581250162408093340480167635390840609948528560976633865519332732171306335825683972644964649506484315153419349940113246996922877046433075323616314344843149724505754528008811955516353103986822473819747277476292918125564957676527516696429658706711495086987237880008551419091239917361718494161930089159915431542718124102433278714111898908686204855382664555257562231882746028979763218988633398576211984297164838627206576582812081096581025869948499192461200874499485618536354641427802129144032638119237547684073751659040232404506582622538791881775551436688112713660295451799132439562372596931314354044454196231711984881625585310884400638120949555363421350248948907558420118993658733440226359542932067033204109010613912528759884704912156932397507005694329988398208082794233557122852692851727265598860472939076419115146975357350214139933564907958376425821561584582174018289401475837466321131646303019015736597143806237555637936962336257416828923230789911998895444069245658297951068519610909455839441274688174839070206296159615674614362842564249181505220916488620277401497088469298253943319701905365214493593113928090592824790061061299704126324304104258798827872784987903928317853369089695284222450632983235116195600425049181312910849562089939721805097357916666146198371796375078422283737680553282814137070440201513584972485537031360576806146798456649754867009682774592096445268395697481153513444320093157725232660788193784295308225651438738422730783030548415473835254328519743143461242652189703656689712172671729530394370184363550908725357235627324991495334896474309573335873020477173578082017748260086106292168592058262416336166342270335078637588636860215211164226062090964324797394346227534517837386131177829751254519105383456915235940580877041376815139490389125551157599949353688494430824140506831417847339011793162164262876598909298423230125775475873183694683616913669478462661384944142207459303989371668977825861621853156484596003779142311739851302217230406603798059659416375451049926296487721444753457883899319795499368331247614589933927299735790813217361992218181106267419312715541994267264566842241378998172926722826706231544460137901767496466068205726647235446261046757874503388128836415091076048814341642000038187319084631336665225488415173294259136101252632334535018155413627201517624429289747684282834545539950426743183894615805116100387653952589513867618941115583219164732815559978735691249715119933851581600373671789330758421189504463026666848165076690693817816822678285624879800621635296196529531777511511882921325682620369748403912462562331390591376152281579226427781771507312202469496835220148063252785339351445143573154823052289227713491960685998317254949030009812107308000973668125711558933002064518628335553433499425823939605418129303037385485162716807886771975000756408290231016371829764729584057839560650531796697856720943890863700074276078064679606900309016885866874165996521373605658824435931897067777204813705648972404982378823526606624411070328233699006161149774136012470686655634862159315143554158633376077196221623290678980061292098618650465235751129161887131738343011134856404678433460128301087534879953119000646397123899019357796614486888538184082253706549189740486080932699489743415338168274803616501136396311722150385773596003229431332121462772035245184655000909369260286113150396285419370968507883158318542987969832571586211380106510924340074212437656258478204604972259445877815233997701359777595194747810651569517005375125978551657380777979806621087630967024918916959647404311516086326230756851760596486270812670414125667253919833297744349540323056091184938887575120062023102848858973964845302121584484625972282570748161022041413900533401233190607781513306457532656387278526022727496059663776711732999357443074513598095326685843329752845712074524254358977445879945759345995637248455774203534372214948603490549283250770329176836110889651239435329185635591659191091255210262304918575940481720347267837789125629382748168115757831235239641501838746718716654166440597045137631584289244598410498558952306404498526561875999000022911368824924777713306860507342192716873597797883709766793475620489085017121972551629089498621315166299915257555437490208759512376533129682877571604825433328947163779633084578471778084162507780878908840314161364552240753940931237083182312268075262012295728010469463957496264872318874635173215187272556811037368087740363758261538054085321686217498317269681919539961830002175299711571545918063475153586980481476614131483055802019303200037660222376173579480175118719047922394830744327874749110704672313409324323739947239607698274579185091793391511909921164777966564674720114118461535661226488525178669947325702763207937818297951475363880511865987269237229259101145853969971465574152565436983611939559240220055430972486029958758522487923455658797316629758893690910886329650123004531884201994941862779771480027231584735232316587345777000700375204923063814331940368213977195392108539884896893613035848537075075145231857307603588369658336460547632014552547597861371509453878745939824468176016054668252540549444395542190150248484041826216584139056626027585278611220040548807925158746550682725267143266156043405553745833354076284279887523160212856530782801254105765682904831490451430562742069619939185851693996821262810806000405294513887656903940510009441631772294671978024486779006558405689160849473411075861809840692654468699047760291650338482606069838280811769122374508067625410553410759316333011334764838396724341538660137090007203713322891576973732157139732276249515544886477564084151572624571975688421867666306729105647681310874936366008417085857698119189011181958757205535879252756710382283086111760760701424376267083543445497616200149181656270644728618506807575022923682906140996447733449405015778825569196459561068243607525843949380554214571712640453349514542151581728214017295287097906827115789755874328418559165787548881800291701486955126150130164102791823373826485098247377480840134147710603478485873366254244658351664114537350211754411222985320231922411466769297057317823025440499315252775591933905743776807816307178774437650215913817098194692776615549053694237660788793167326070921718974026572076571515551061564446394551981263626701704794688802357750925220769487757120659827937561658949217784866472824666127344820689662113556116916634307011353180023534999770699462842804805254872833509980975108731430922006373654197176335684084675423819815251030626396583532546966623761254111257569003451580069893141398220594760729682353798189847015601471650924336971293395477298184485856475742382536048121756114873884300929045269684056984553241041815768607599866016786129689014569493582418840520338462084900431466124506808486165838369077398096795337542860114231341274329536592192428421461312238094066970467496263756267051663365259248195156521044162692013906346238359432391607521753027949673996850844021311754817130745231468966378206600026004828005465699983799984334707327809445883902688051610034157846592201347643327268807488874568674606693927064699665045764956324884719626841287489574943909919458001136656423029219347046073641339991214751045428604240392663798698692021210781437928361356771325804359816331264570983530342793094466217714499086821471778460921389050309145892946828177098703695223057402628200035094667767979645305375297624615263051110770174404310846181611506808996972282475571884740352542901224050692269243554043196517399182528602026844219660218483711253440331997674016857848530879366780574149260269546481377151797547798285209852066340132927851363655202107763098386241970186698078400516352954457709106920005422603581849704057349378271086650866087500228926648631030930707622539337809832986320512991761860795814152375196891449205470693732986488060579940533473521205027242601205697552832079553987075590416961832207549958040973685031839846157437279495993851352543762312021144354007727115468828417540133391562367671886777150177712333024453110026333600524220034036768174731280859244640344581791814317423227066875453829757567290196835656404609445224287544032048867397686536572362473845766787742540841203989130666852878771020180811092201377741085589833557088561891582669490669027747068906098696197107090590020024025551342426027013459727208038637631110889743462921140738384142699663519949474609828564562099605591079635563493319405611742058982112804700830894530227840661762288368538960835812988081656928702907809611611646711612575113503077527426287915973297644774148502150770994066626669032825369569289802905217358008689348567208033071165311483099646273876865742845411942328292403158860058177966593457558516358423014210935961213044983496881755212743604114088471780653873741970477941433886958967275408070478110985083192107697664094463414677199323303591198990339099898505851173788811183181398941881590655580962605958398384379795347916014909860383355504229675278297536902035486483964947956898897930504512852583200087523011979217237773021415704917138869645142122640391643589726550861315475257547652698911844863526967296394661424862405609061703616385819000883210492815485775894665399489011260796697757859395331500017226949585728732851154488827156011960861865347500016695553209730654529920683664827127333532591246331480469941640228739440711127656252119718711395753129890894688647031373362587981496668769569101797360101658692403886409586865711473262606149388539754508677619861987432634181296576603344740286944793826736637158875018111375598650363063833581794036128684838304782370166469916631474853555519076214390979312831514074300309776733627426247935032619066408686661213906795545403440859818296158562111408971794776680232272402314539581363367070296758879560858746675074894439421443220839015100817443849964204222622061329832738430654101316403162282959178300763320718187487758822586318722889124856221558017384365434299166556876222824779037143479896566445195234736140808765786781431368046834250509332501761423529185457391253293035945980909457770762627265526280582557443700056427377098815262700673746040976009776794517704973522465847402100216862813220324908980604073822361726313723476126444499297812360322639582260547568514843460692226107540550244378648390538595864682364852485723846376449775851718499027274518902587560982095861060415346990232578433978319496528489744335025478720384403412450679526973812002979365167350001692256155038664847702358617634879868911678464435421944896730494589130575795213933644300862706089681072410887600197829893520169935478249494885577506345121093351482505726378311545455738995873311329405462801603628306823038912342618341878376610405137392239213360434716364583362200336072816628955924848581409829797611632805758748545181776851942241901907404945831865742357327132210223041914728243881753835247973950148845502352225314439221714590717243446725375728643268594016999195441483440796652510288183906592839679504039497707305944122547536358749083967403606353627325052577752449683914560167852281209090029160343979763707266879027960868040541566952192180969577663463697677501554988694143269058917230778882684234498576077253856785728249058292521886251687998696508264950614849829362310458422208119702988679026712657233753042482311644539083921791631696199600759837046560010668952570947551592375501837414091923021619073431029358257832031342165829175238405198607411879296647411732338954757097774492595056559285732042353720212029327345289882637967157960412529111593521547866932406013768139692555403218371762464582204745517539810100999328557058092657710994975879532446865267019273543708844147008535566076783548509470395686038649994392417466688029709657583862372478770927063822157500872947346704274625091430940236018205993926108457454557539911792295997005358071439179868462786919805172028718430742331459926847524400740591261260431793616723323240258260761933301819897820126365001205609525227042363935464214129735396884059088415692719804815037931368214603759990616299235277733365991759803549406238340997780006912638115923833040293928049380808037072854191243129860136436322477646540890666466231104794135272787089683332241942555057650597085639330595555746807032294315109804971624479057432503039739395825172145781880058352766703440690563860488335569521325608418656344944537211687208852622902043627428476790454377177076822349729114470429275679646467871130692029124830172072829813934525984072213382893869566263486631490583132067325626476016253936746490528225463908311143929265087830661044527896721286682471532412779479158318280436397600889212982062836984943213045256014223563103448368564816434160519949244614351720059495421510441668541209672674611318632085136860449418591364359648496549982503606764669394282657613468599764596215074313496262980481018697219592421709876220232033962828471275707391815937642141274041503034166106360124729874627315366249801067499756171622067583004190959644015749112265826201409827346099734714784723087899401804990991744053136713458169835455138636773054580225395345237447798845730827635372955044105309443017660397741039832048662065585615938629315904817347041339933814390562037627329311149344003239501360996579666401644080886613219105209229141486825011824785395786813745681463645584495898085538829015974166507316341141841912880308788212883076614488127719965185365611158589186635600821905541582814147212214897012471526700591433074369274134981534486769654378419206076383751992737233278349347151404138157955149776237242928713215690271161618503834327220387953418024034335851388516867129730124661448938083523722864006269758759357226691625671688538673823001424733141163119422318644993546072896479966055989101586734556101029664634621895871508562931800730237697591946994445892013074923074816508221066934917141690246668820447563160231297533797151592167439709867033611224681534604689536678628701112838826328429451648331230410535439063900653452517645416807563027281045460868722542927187147910141183867799458886188122612496726186560076041871190557000420201759004522180289432710967206187601562982822404175418042237186643411930199684616600612920800924011378609251642506248573456651850009383138734410295846122387629899098381350050987864885762466682390714408552333981354510316656455753164989863634258956380607710778908696309040021338812541761668482129256500739690960963275989245246323373587196655918685681203099192146467461311853851291517774516284930958719609445677071261733396435833336598968864114077471303631822909455846971583250997599012918373594200002901150551944060585410018460101544184380827764707658167112090430324745145397603508603394695877167893209763063959859864870459189752668130512944127848681184084919894755414333447561616041257388767807696814652318655362632955247514365742230652505768444466423614506541839831078438490698425990539625343511644828074570179791108460470634565503552208992283239854989412529173020883713989390896655195290888578154103667357968557026272001956710033027676482284633793871462758445828512021906160840608783007585505295122951930197978103640510635640124977130582553959294727110653019791486153353038219113230378308173633715127717424682480974576780789328907423754348435981624457633640172523248989753266453449368783911569428954835929072076093882001734106216303906992640289574037632952481246393990701393610675457990179093751573194955695186256663621581991649373626291287245799377386960438818032062656616123276638014404670518596800201507326356747333213511415590023776108837068556751662338818274716813942490595846525325330073175174923085624975696817543292699874486075616419286926033675086730269129872836546362223877647259619394216538341356824489925415525707771810449210619610152343355636476543809980811689406950870586588032385394223186378131515635076344833341781180946039121187235561914461586406341806848769755811188652784683513449106649717306242185142495667470204306395779108882954096768892424343212781592283975417484074994501757749981271412382992925300047786568978139127188390243693548821721311132984096462802814853093793197370868047479005229956780231440293059590348384084409307306597990614989320032533779858537039571025984575759107540162459950834056985112864929438583138032759200952417149784411657165951491582906646306138337182499190126228917400781496024048834127627228995163798434903945495433809286532841012273893418430217859363864576473531688157062285787118296875876556660299480309147164346514314347516389165154704378511632733964400092761719536659824824962999056748532864998039233118645214650652380602763365789719718301743628789845410655019500422917818957136330450984094299933227972960897981294360293091479187612750362440507139130630483728271929806178488971340865882172150390543419635771703267798672530710422103318595847379145981958934974855345765527745446650177737913168793290326763929898904247028966736197676681391527103281743135808084763406117487081585936165652866263082078505933443084758496396225605136858219087994778893179522036605256777067541434581497959743866855098969416099796907366590988493464505533268334929844976967054834875555147570319810846358840927800567703776650027607917617847632692713961559680195571461322961334686429635654942716119931788497799544864343928759020810890248406470439888843022667005740686192663757090752228095876553348840202930030131169850568734777597249453159025745271443512794111768596593895866540782507349571934957416285878498133844315617209389165249513302238016771919971494637919622404956065310620691610233739898428583899208648984990717508682606953049090171206082407534043986270036484643796951269468309178180048705902106203640477750426566266376823169600794758230872507635553245403272796327350111134913791728037958854014799240498812877326504931623588323454210262151310417418513929158642414543742660516164375498089266893299759317628095329058249393955281032313172738359702750180960055477948910608461317589695092888783269844605624949821020279296183447983141687640083399903703398041547711883604678282479580795148073571077659721372754769901988476668754126093650851817621349462230904169682174818303982608071428410886769047754221571071728720823234319508912269176121802909393106098812522669581571326663615520486707229763453666814721471742864784001942879675671184531214072295237907429709371094826826354019341013896365741780809777882716897491128630500411490569911936383881391229575375570000893158497740399035963608728705289566093611310255119605747750784613721092322417724897852822049971295416647220170419984968775806743365181840787039077470262803386102419921408928270888993109182404673097657927551986956113264483580241305407697633947412110216680139574004058015290821731076920861080510454065663543253243678806100644865314191155912969959571713313277771485969067844351967646902517989797981783174653561886749314451504007843684515994194214949842798723550005131608489690953265998929022680224428338196283636896648579593874801586129303832891120564887845074572517883305095822629715381377221828556114628853187617898250593981141239058976307859428515782880911019146654393315588972072762999067667639518194303630242875451765942632957395887967050793644846182729085908180747623175334624076449676157612832610013479067768235579115261581275447826685873098497628794855154285136644371802907317724978245478447307202690152992215697779738282962759963263282080961764992310834025711335947514733331762685299723845884346271348520249652452326030772585253969074659664139578142257157910630411235665526044004551359233663957052716635455790670129751929988968222935032807295607535101213162398776376236553590831146495670787623645442445825290821460594470826551798541311223762362601506158558402772510829992345782525842714351124280225433977615446893403056353953516243367867049745534995865184491913317006265634265341538697771824108903837792632754955525902935657099869701963180975760049608696594248705469592377680992867433641622612375654225801222176028779689600745011857355821136898054206606975823116006814581572674113564880080918608452247838673500696666566486414796342520820954857679394348290322603512209522462988807413564055512365084443805985701800143743684631658502093725735787477239918460660599279523533408066772510861687296595034943612724680912465651397141380720263677187553545747765404730193988354350919417904406524945212106458704763905405688780205385495802647831215122962321623644676539051265016003876281952255350594491997047794916501986241632994540641115867704737046915786395641741434994992055847622747790160182890967447917161057049070790136902793191099534860510276673070646906906170976559880775383415645716269185462063990828354417764354267434558093123646263013769481360868475516664979918641986776211008213523573120419013404527399373835984850762371340352235554024802063409106722941056775743366667211141573356346638935715414086610540004428093839030016305024399044042827839663821334741448079125046205438216325037948194498195617829527434534194923955873636888478821608618739258992047262750613078610772410473662691609048811035894626236395081793736524351620296430368881689485493460090570759353685208741092049499998148370407435848812495081020730430195814423666621657153488807242620962078718858858656657214589694511306713625355230681063618181621264469338304411487600358527423060731756223045090555144510474670136164435931562860338864265476668809379612375967218751923188329824897141135152488521436976009001265156197690577323047510161446698057880346402191115639009595884607786876650819347567159248749562028949785236016303924077092939837499244031428549917174418453145413071511038149725377453763506199910201396990019578038946177546714033087554862984452294488992279858594612316426039384581209441802783688367739805953371842341288061547033880644920927597507117187106153284884990555730549517025106629985849525813527510204135830684818746046959517115250080193137755447545224800473696706193567582510835115512282662405757146518765953353558785428293952908208542079787667122174450162134283068396003840061708303825563473861119359971125929036042122022950812711234655022068224923089421772957274638632960269278551729733425723289603654148342881309800842121898739573837211199175767861774288204487490769347652489182506189723028723752820502004916353669355998175505103226367814250632613467914317522217272997579304732452707782103514118978382350958229251386614441937002984832516925017045662791070218448298896632945340926345689574049604000155182106670255212760287996137565429451787468745481855692628059532908239563881069647160574268093403078670466268757292000214331688501619008403967752535477689032069495056404272364240886218794176935753259351433876612052198147861215030918449070535803930737826646910781097298836812039994017264815192572273973261422449762719657531104237038805620930898272912823410789670714771964269953277860661236940887631076691499873741210457043059143395202523099856436752299275103061352456277240162261014321389866023250771109463923420124222593119438368182166827644407218617248134478186113713256573305395966087628605006692184859117620256279579413910556501252482843085999553101750492207938506397722561951287691035660565890568970694096768873317887482317962230850577033972690431852000561987209496326984122558169909825561663278753581333746668363593468981471856786014540716961584613631660130031244531794133194514841826419026895926212750264198283672379315424870394505463131113186234152135964693260583525067320552219203880678422505896526567760326374226055001144377553497147363185410096778108120162047284701241925285984338056780172326789072877344695397578986335298675761670353672122861667459252608029086337324685182289025526332824364707625638474375038270413862091547402528529936623303844163554658196056214023122147371990325755229854340665692975606659314630392287337502566599889393684821568661615372875233524910180417855643566441529084399288440646977774308634440088758908660578289370239875524736297114911649597869618694443861516533900069752975888794561174088078114580820041493347032391448892170403381639799717818427584334321320705777858051070507485024590169137974540170099375358417384157916919526808204180504100602644752346180291829293525758569974460153517978019971496586247885971913725718743793346659489450155979182736389283528321437716719540928081922757095930678733594110608075259766818071576548478102804434522797154599897910695557526293323237415884131449927495991988116030922589718385455893450414343506387484773496165449903178992427593330700045401021487864783339283443927221373052781151572272408696419713799537930608559723016901478968541156285400888125257774703592156238661356135923547807956617898002343380799248670145865763328702312261794549301466708037858594370930060989082281473676390955842662211166853438836035361079955790900829940869354492581973800230406390806194639667219555866180977203926500339912877898686648766454237011280754719267036899646968386725561453359272535637983966625604304469966130397953865652945409781229047016104186412838191146152228961471973745546321551258354741698906509848214484415956011615936580151647081075558498024098652338585280797720276317298468173022840963506583116869822219895325831169519527077691207571892301896963155015355845059510436123806065119460346598502146290077144737117845787424617947775607218727659276568797609127054241146483917335850401819239065733417685270850605584520804780464796071282680556424691810815276142671720879373324074265480018666163091260496927171160421833866309096084170797074134666011609427633929112275413782255241381570205572165311230794657250261316976686801380217634056525690722082800860186754458815898421807231857835665806281791411474230936598470660441957589668083359972970488475586782493637596445750574594581053617313963689832374033805871111702189579482209664147504311517168984233706089734486090133870503330311191165505625285180354126603246045905470113974920045540200332585025582170045074183470504737148050037874896397419564209419695530351951691158691550946160631379110026774072709975783044538730658088918228111861532936247265749296564885858735215265890843858932129369880037380452579894924800439835776633396557316081568627565084606777704318821405038316470049943715583015306768113854705019143613245717960192332870657021641191720584196712198747096450479748304896954503453594664900241238698138675087735586413444440817570690227817715253372380844574695626646721971887066943715223596390164523563173528280327312214667165673623097216111003954390907014394891324926363675073482615698811534620402863978552463695779270626974148991581881472481339135482667258352837542701941003046530028926687528671109745840783266445612294183077822982150680102272699137282793816248041888490835595999293956497011669484222541914441132383061250689232824824066593291325468440941520739400363739309034249425498174299098604700732640554852560181502343777261118240410733270583130113952571846387106237837801688574127138988456048797142107201016617001660885035247917031392825695033286885361716211621835330742153029243906406939400991163730085546270601368353886117613162764753753472460671309486306057564576693025084119760434949565615121572895855711765611762747018370057193463187471303474892997858647580470706867464761419871252055486427657926245767529992809558348985394193310668861970826531796443804080642620238377682089089657501821896876322012437073544046954606752999177236912755952806673588467563778000474313716975528631016249239010128100743694114769655095493372812641953578042493914532066832123440546312097021569851133075706373832636301778059245612801571113610197530356750085894304879851974655650098105063051850488273571669324061846198221417568658641195796255607374788025004751367268162550457775667554692479426609837287204020234437789829098895619983528199851534323074467018623087855703598935871419838512291994717282554591967076911018171923786973724977649252338830905425047393934888160007792343659944864303769854894838818481389637550962237767037899038128758688023733282555541985673753210578253874454301228744349752129073250202791154492263063155697645810863088212942565141152775747103804736752973478364249673757737771441147200154190640456934840071514908348179269688861872191357455409521568900160438411830093310708206055349251647565148703495457817809697081303960889279010825672425988018198784968471307513661720001510619270694410149594660064847018601495067100488092619117777698582191550146585580951559200049050071940731128088649811289499682970644235297319472225407023799584957359313473982213350285352939417069758526303097403696287540561725395617513211537746218293227749042888252265240424623558419868084947269984153073257809889197563546452922891913511047602675680639408921981496119925046605377570570695157470952089891088106022196104561627084611347149529512992389566389567312797035651168371071314627938866725193044022236322573390770984190383528590070704238163165191893396814831199104506510134732125350454003303244525803148639781007953689045612727712353130756979292515280363706736377230381268480426309123839760169451686445710646907831845098929224261052314921089157614293024228471980649134580658345259068835504585795940661150520763579148750178686258085156480327170126938627997715082791540353286661587508398236892350298799576533399259696157417965859779169802971640194887871406867626832222161953593252453965986270994448973255060968948137160646936688786324840070638206648447282166840593510090579847178593379568232061119581505004211659976759111538693289510931133556140664678868940130138486296117068505896732116404783918808805706297074100604790772872599730499719918495166512918586185957400010569347405777655011741277496702274682283372761758430123194042042392532534937123854696642496809391245040338490039406417738846131364763821348658201645916612036546413158164894051394179547690574711590491733263710223887461801395919828183495600203040432830353697191880894301957413247172232379930990752086622269856906979898879936756000944079611816517973409817752449384925519753047267538911745560382216692539082032003461490351950631069014782459902587416914239350779901283624352115651070105503579473800670381641027859824917669519921272589975106659287428641658231762429450246417652386687129381012920423751282205100152183443882346998863234293942735603052880583047710195349069889772594019478885765176598615008898376875437232744985818477895065629165934205330254786815784900116783610482528610628844568710086113699795299901078196459114641088063582150327528751225543200567075321978732925095512187558626863113450460821147766593883330495456071179757402147845562931476155035857835569285744279679911336240368075077419937982904381191110282919575719246778732737057359233858741653822306202675091606794245449297732909186318994816081117241837463951598848290086863581065262612847031048191107469270805699825104942832884407056113139832315464216100087287018125179888673408514884960439888428411742467901101149996260496643336277638942941855746768315803949948635496314555506270574429847338858926495552112640784475722212655976637741468826016376583084807619005133374515604474263047783347617829566538567755146335174706198175315970117268884060446015986844790480578388905912257592863029650765281097411751985222033532970987969206061677695713926220182288169092991338894677335491692500019279900096020643455029328052675516015739874440943860228843946405279588216011685117571148055398939653686615093970755042468835263691913102462194880847552021103858511123556893342328874912208285834456994339316930026787096973922457390121234149239759484393132268656263758281699737956097011353552613840459517766803289232968440747104648752911771791258269775419460655751973586551345992125608479288201857569894863409597339942411111023132254454162197622386334700651556389282889279234199962465260566514874737035071326271947501291559247211098453857915049389302098956128765860843412992085505176881064685332566462608281719052455337763734928687323523177402823087437267164084281573314001109102209198643377206362725967826001690028500166974662968017811406482892148808170916978406821741978165826285808618419330940731043599204872631576858171235614485597227375555400801455069266392213377534100023969499750397046163266833178140378893729371953661022240921609102037197204100315745654207082535049796328953485074552701676506820704449121780151782971058450193588963726653729677188822939498409777214421982255629485142604938034986435704246437110693975846292097804799328981078625601331725623503473106581271136775743419036340588397621961114488929936298753769353479450505649968095846609031947376818267120508759344351804659516782452366984393226751412802068049860004247209261872183521502982432091959805885799240245864903170672796669864082156670868342216685106599151018819869490575242396146977155891541610545710132387514558648499510689583940695499348499999382993657222050009628459752879390216262566364863723264156498664119155742171974045967785899279758507558737095619665266353302449750180393893216019393741760502452637353077128964875862601322524621325195086486704462083353893489731816747471018841782429984500143488394668479099727546290065324405726190058922941240050902103891366132865942416675504211913480851939259625567221803267712152763889000270301664272658744717923300441129571697741611349050416261613394493040095142168985197121146396084265624582000219341972779288100200668819940622442105328593622201748051746780925368357639238389168612645486144674487954981512714504223577890712534601271292615590622334838621391303437884493654481749043550410197073998063286014411006657863304932444542203308627119992402614088581203946417851428282116330821449747162538088481739208555798255033897338792075360105223629093614950941594733963478056356409248629223633171439027077606372025208149512592296566771805401868215667594156664472215088322860216252267260407895426420314733316712272646589975469959142874429939486260942924290702391131047661167635845084585926343979138300724048583520621020324521902478780009904485693557424113811932761577250844329303818237382486159696860567542849881275234964513315482445880752400847127774307007910482135773651382874283249165162015357338203353416549081171998049577955572539059923340218497847158108697891348909828427605662970872739542750418374101731460610671653008160343726375395004653602550129133713345608646161909390308756350922685993399338621596446232287163977649956822290683608260733659159053856464195438894885490712588914599632382014665377656319517962119953972458228877599501628517110945007641918762456451592339833697785275650031180267811106377623707427526853404992630235505406616742607182712226058578009563582889004147322874318439563865515583920913444378173572094095254231868565903152009334591251405662712271314794777375323807892077057716818094017656544781252334541200732599707774419479125644988776086436286578130461485215140382472204338543086566141893450300795174555904787899147424613139350574585397734501898853073320329032393550553832920453057036097816234575522962820268477517568815982909500718994072612055432059217277902369810679688808583693053802465463058317233660524187326599829363283239521912254142526150871836840038742359407611272843626439898618148607708735938268038220019094497477661368938691079937371195231832752726694467441852354913346894559525176379412580650225368107656223400072541223502003946319162233596996038404472909022982653710012611083736907381568381154414868563929958783494423952479703654524439046682065941863996658755993998183167557295799663647375322894906005389452479332862540443287068154784901477834124603231631924019197243185121717927279611233847374292181668779590914056121018917973255097164707470991597686342633071219631293621549291547195701628226780642743951859248206620008123509143122634451548070104975962930361324663260456160157582069687761093318088301668714126724131184778534868924497667830633357738862538432816907423621590718758635566318295588873285468275582066916746463722199395774148026982007845550741304616432916695299917531085457904312871317747961723027482288387145948398768493266536517251649143842484971025668400697937470695957775655191624328093211646949915707769789585654733161912916337791459038834531717200745280603181662607364028897805473237421785575540067040136180524888282595415430836864659449112764535857311347289148474594741338019779150455669308531832641534094672043878448519126135997821195265440875389458530033001252053943873791599668772034488554969248648037588937555795152036699903116750799785588438954093753140892825089871609074976538806027934997655388789610564843997253745407893098081862548158299908315294079211177011254770946869783791221191393866416167328830075663721205298542503706284727747172440923954080096562647650937773143507109851733673759644594183087403193189025511778690119661548386819433231840602956897216442550124711284194349538992797157305659514664545505959518665371589232690368733479440953997431435564355001910488167181431561437672048059008564763694652166328353284015064627902651652402013110988680472187574254272378479402229921096893206453020201385154210359201454387204044900675774034355505772263707519566318493934298766442018484261327202859853577248893996064905044173599519571538479060894473462947498743745519944962636369629531598172612283815425875371242452295782774840133928182829713566314395284190557653933076038593756747794535765185101339636272727986571204333881677683058213660765823564948822323611108180072716782222000869185750777154488973638002281719895728603525273264998155601132410758620744128635586773630834305557183577325933307166440714106400651029556839084983972976986918441880526613998072796952343124541422796185965341221572078518419141323574950401485700621792638880743459410888330246375063956849392054041531894121548698866425468658161284475331488175297003214649637707655420839467381345309462983902633418529627905389043566178626662378570061614066497671765825496653946983218709662000550937995941153764673829831148248055851353026370875125351042230612656796359267729565659088491756389619990178969761811621464767392420319684279742267793273112705294537855845574367040679729100991695782100079961278261034179697926954648457732119866259035764972920494067404478367150867995743176070022413354441379732082474322306357107382770897062892308575614201957590342056787318356171199285774158087004778440068772220971377703399251974500691294572132764711807269414863703823809982330053235067695730315832032795225192792153288128812560554370363747365744731484670167216796695680080885368615543782971387892809955119142578131909870870448072163982140374435222629213038853602607683320408683869602316878011114371585228275956254591204696915606871703276742895209161117716647937787656977098375273737391153059518063144014072186354976355886178437968118149110287914544904693573437230811089399088057441048894220943729212167596844871367886013636044660268426824691145216444189702113098551861976736663716950442262116974105726115595800395878239547695243642999106116578796391150496554297611399308536670896052940741314986229614306383758834154917710447198572043102132714089390680991416985463037135048366912848166779311110190851839410315073025437596097848196580630328078290824667913343283703733582448408889725162914583236435458387133442893364294053558730526451004290245724381748335122421028216953450330767538756636614237115970147091120224679770456521351728818391996713763600717535793669943507901680023273684127551097688058155787357775564384766344827532655925385158960644042781266908553617515850207302275130850213684636028656765751204826331655876276095789454343485287396228298909006059232291675724596129435211760644696893481164132641847056606139845909672364326717065747176937544028293228942862068324991990958662880274700535525278834620422106754685251487532863757496691116542174545089993476569446377870679149316207531288583221479379204489544432932063539471811380075423729686506126417463447849253990147309149915521374263547851514189657561587534894090776829383671168285482677793288175489432853788351503894284653217067243266413321545692525231607314052115779870519782870169372652378148803527373986259663075795099009006038007896011438771231425826863596945117162321008709939890060225768639504473844932911023369607608942352500090213085191076682288223256301675226512482205398735200445304492108043195674811113657302602664210448088519534523463581903322041990311912624328074532705300571419098236749905388290914231549099616350581464964512902007202993450498938432673129460803905246367110923857588986665933171473436183315699509439268948831123818978656933151877826043025116608253287353378536055609001621496636324464947088395032013649514492125275527495008301529752686444613457749596469976919364551846032866682150222601305446761170034288517316857021642886297440315543876606849886312663118147830650610922641335524611592643936666531328534774301518349790511810066944574853005278407359422286554592538229470008129423303168702113790949362933835673861177652582986541355308730111636549280320598778502892305678156245471067039909235719491314454606254246570627683040978736486917860277390020869299961436602031346227752190069721248201695411492796971805637787089838923456422638227326507946945444264006554024002674744669931864162953487936058569847326642741415929305756289352779155071581597840323373616204006497531883121696393460908919918856335803212810332022244116431723316034482968005948981056106184962456414494964672039233183185538023506914110895669485750604225816717498044382238674824538031428211217556679909786054503144060200520619452604718023650938523035246293691071078368509402153579854330401567440051561944431680339094692213523680839759716198912863222061185355228921489683345322047056080444945847399208301716281173274100177131674384228196908421033719548154671775395470239629828231469722858417740506966096690845257955488973358522928922594897245868757005724464920248947587448154420293443010917010101939376764430479606884834666982913333823970805921577714802197435773816039704364642844991356906930536451673044112574033896456433081655267134646083104330035557156728360850503871051108675285044857414601301084715687654707626820653492139683669491711465519733998823221315522663129505573799537588708701361307901806073561191548032663386033683882770244165784720945819566466224406780449954166540998825619963344261329297260814846663926870357682865166366412477063369910186894371901577502401799080365404480820226596495239913129893228668723804317410005797889136728034124297873618775486174036761622705463368952838710447701472319295202386597350661359761418173717894840467548456238513852842597640893707296379342041844322835056015857248957874880245239610437992777208926400001601150269130067183600513849023251526329549088164297823664241258617215976417463070784833163586606664044765364736584445072726174925539003343858522181295002093936552971134040266530959550575304002383521181807324392882709363988747934601387006674358854672595429935345010148676191095423011866666168953565432067122519329349302055929990285306619319189884965128465230992234026802861811179728401120749190307619604940963410202012351700331441666154675653115807948925162799338297603390150771730846275185074400192517049859870132380243871934670482536909635385826399165310409149987231755657872056323745742895106181430428129253604664794869341086033301241531882404422830779507758674499637436880056166256619370992719394851433378276681145076161279004845698763116781905501241963390651739746748318331087541598360304898613943557486053320033647774645817794321876908672007487237455420246001973520165411706099180121781111414307474468882708252309867762561215590545926296209474263806561055265795572003320621092504154151716082215793948570454970395156305860269332219039890138596850346884883311281973428074206429438182806023535400774003090103804891382021902273439140215825475302341852550143085039817658836890993639053014939797630913795437859646063901180492878440641954090499114208294365079370703884242024837335214634276536749718160207874974018450077476760109243609266561891828511404458135833542620619845313385440578142444641206520534606813514483178858371108081760571454404235494440606105899269744340489644210601000100074115617613135077798210114426038217382474395647660428559336592000801483849771895104178862833491802137728485179273745179757612530064440814730583327680375581820126763248704187560592878844821564292951111845977670107441269061874518920263604220551557497259994803841287529720882468737190339709567544619864353224638762026696487203963336773638890819233954393207647760845038489428342529983549936631247210937992877119520296984955784720195106504005867964634917185913672254007546957624379576370824607107696579228888531031307425291787491118734160220481581521149679342751019172833610218633977942280342382685611895872954432187115255630558974736168247499238655353493741281560336449343578294678361244239160290660361105982586811513590309010423762062241023114307861720155881930523856525177404908229120581108972501771455329894134620817310719181013609195010436905868939317623424203979229744692655529884388251322992959482349258348842053883661776392348593400502384672528757268977764356999167320031392449835292615608736349740537174141383967868969116223734252028405500786608046102626253396376078748273510559426529009914069171049012395550827159847845466155623715609031448162908921518273795263241895122547171676546111051982313816139905115804565573877899838232608690575875302481461894511149240073754534983459359314761794585805623135562577013057773494937852837244355807077793092194219998182597832674856835392384330143951488340962882858087856067532435274956893454938557498199608339680117018294987034025422235368587618509431547779855162508469063545465455308649409612533377563256569623049044535900945690804782803853951903949457773541040476002210419668517023450826405431135597903264256133600310890627813197360942828750906260927804502533002392063000222144291251317852978107243041037070275946551225119898592641502432338610226071736367803947600322341314120741890596827535695726653696588811476183806720585211580934869112717448391170709402669591111478563969425222553173133822393051030026913277997146852231651052749791227901335119591350660754615355209252226467815924564748647182301864076621699534998873385534480745677540833761412434584807411165351893096228181999516629339076059059320721320775938374053304156882315541620721771175482213461106306892430900097247975038856109493673761088242609910540326983689348118365261835761336395746564006256729600952236833745015985392755157108921307274379613525408442950989579808351279656756545685239720281782129067282330310955216548231720162605204972373580532273331501460288135321423524466598558134388419246527953125825897467131033891297221855132662924352677684508484961795249463822561698905796018703199069938179273673908481479654809714189359817284692310368409572671113766962302760041754273797701844385222143800259407079123283236787323618209005346865709441352040007735231623447488115137376547484138219581140002115271916555135032288577221262082174634627648422060312494938767411514593323995800691477988250915368215243016474796677253566550183644419867338824653631894707700274449204228401976043386952906785143200029244989652087526681739543135174711988668455318748189490942610774162192813514367239131756087045283292585730675376793619229076901982882528070991739861766330952559044321550367158402741715761851683717219759294843280087859708560379667074469594970962550437553707197800275063458439830002466544523980507816554337942562456319075017173874975142711216289161245537607635302514487534681228554338944671249166896551963512382636917229904640613918044257783225989292650138328463445512705425763564935615763638433149904457616398394396347241308653022944938843426169179908609156899951435072782077944427712913226460992417570636160909719269151535530356443007602531858067307754295140572672005998779205423403838939033176163703628437618622366894875953916543419023406827591734757911593247922209960493241613821726434998043876375993257731603024298405390577660065245343532050309588477011300972285008371886721483817561582340955047717846930100584226797459501586099199879538375552172564560990988822562384357403673490396049807276868325615681321380879664998498473409161416616045882177447375278624608734393659159077471367286466715289598390469771405500068193874676818638871279054381054790371386486476430792871649683603365841712558364347083099702276205329271946280211271203373038123611694221836252435808543919301608592348626940911453578260582127474515621073721267997860015329072272120125237213320445432995789003006750404798440915147797573990356097701318972190822816255243077945460662784684221128366354277346255726120703654113377221131195961239627009144596840586712968309202963675115721909289430429958654927950464739284011411468779135200515474825677959755979514377002618910864791206503117108378080284937432472328386059433890210384779790798657264011901233164112301295008402427307286873141609421965719750312606876104994695019626318212390769348676893753816223690695113660853729763777070958619512098769208092545284279237445831733969080024895265508703465361282605825956778421637442410941376105329075658641599165728022522404171657062711449586208718178804366408216330573183329404873766984456991427511140571139952722838056489413669321773872984854471927181637703650288885729654218739055698396865611414756021637405671457820025598912573806094962018618022557793211403825870571542679903258586351476868132969438385296681025318204658930493592805277496257279943908949229874241372589156647022962333700890223875059036389817092126623386615493589188964046290151135230302327295153122225286374962069058948957461804178717035562732816110806308544943968935931424779254270838599285530121876176333414492996866214737022404298013589036904220061961922808127579350777426068874013435402237627224246905650978282393167138931843377381977061588932168345375084642708799755025417882740250719813209547876643871052342335413098226587083580176320659723337655400355672694803793694144059232907770329271697045209860464153031097344895914488619405019079399718308007299073953935141885805711625453019412781482740769946553694356680168523393483414300985696239763622253545179905039297761319161096420479108422690364019275077412562317165236801734209681949806594192651633415223143750561136652389010671720053489513086796067183544753306808355353020949937985834440318808534742962221855347754640892653190185205477931422479218999092850196276690226774311363257354664725983175217894106789660493590792521719043725649705011081533669284750826384722627160569312867714202726870889654045248573946857267053976508122484154108527056523759823353346503990315672965324729102044393749269305251459653959304783468877577736441247993920857088649804953654308757331400659622980912883457700332009031272301242714766102627522797105440357944313125367249188178392790928273152761776108279639612031537057148382124816112619432269112344071405862752828125868671655117994760139862809609216779852419080304314745157906260008610956425022294695037258580111939661177020167278685109073686860617562690898804338501780056912001146064896204025983038236252715813639077607682230814158582353942000369244253029872110511131886365304312240895790781007705773763629941295572281402036955712614361936966567810994996943732326172629441182176267220216549480613777702316171215941765453863052811015490911640734326035258353058831135970734782254802372695512008078356745096691763120122263416432256519649011729020019720230511291383142766999565209871849222872934209633098110937203512924544933284480211102475185276953946445096326994903424719044213616885067717327744159604356129426333220844192118139290608725392513579617029913194698350183640308104202707028705326925908832518820547232660922756924511818278109903590622721499912136967282705305034224400910726780537988418336433168387152923320197710166495055174199368706103492435601924248196732009158453998226203874312045915226332075185343138043118171296823185261597095708948237138752377704360844486270594821577006553753918781235035330514319649547213508607671489735888375470063823318202295870484695846874057432573500443221940402114912356992193174054605966278538341550271538069178166896407487447218333034983730876491619062177667630280539917363318182582296793884276865043832338256838993233574153366159927150292574420298633417911334788762749503198129685398674754003863946230502796077689935246641840943158241565777104769661634705014605523395656285803696251034299053255245119381102947784281341199795492919141099570806054627638906541446550433461072191978082847730886988652630155226390992501123175524455458298749611072330548193199109382935905522138804375963212695726558762398972248581609584764880433971353285762604511545391965708313871926361686282610787222725703334590281766662671619520789055506918779648187765151224754745475647930731430707285550488240963587357677314882595550281610727442110418202386667015556759692184170354992333943156770784919526064913258756974218490890691250405540351195583739476020638566176632810185921942014009650961458767611276397566588526855162533868647912893975094940666927289640138266790460034532863564454542044206116596308701889250942286361887856626269066315296068037994567147761384424326608461120527779722258229684351809701944238547252763275369739527494851640631931276883453297428656553625043610786770404191285673526978908603407318132823262223060614853328303777811271642807901314731467529674038652839286372799521189553203870411140066343267220680745461550479547996238126225150646947150923289219525884561631967736676076074328868563215319870544967546632457695471691986274418058952304258336652811901855214770333580403441997023255379395201014228378713619072621200469019899609032262100697951167472774566234258501659368491003474697434243194710158264388814389887481166304395223939509087617972661476247828058147236738763335610904349806442441763783302597830869033682417948300701694398503990014142313653398208272940827701345494251882803016956265019886887147709373821856229716094648408200541250215517912352725792080609331771374419587299571519070512131817410099149515252393590450942389027812256998585137939730709938837866594076620098627850599849301350354866934933428670925489971750973250319183989339277026086207169840367263120277082617436050101567360060288400355925999404711771393446306246099735715518116332355179219285227228088402461936465412647310592723967127686467281308776808298984269005287550090904219204985731109167595062789081672686181283441039150355377361989141980748390265054523967755453318679814558614495369591136167090163131540339825106557298366606139802087179418119835676164908508264325846916436030124412369661426640214413128289247900067172730181785425221636510699310267742191850157151182038739412654734699260839338160381340721013731144875439862672525907698290290285999579074733443501085932163449737815770275132384044026323022656678642000988316946809069649257663943412619812255016275318646013878706049000827892725272482837806436780558562585054415306297017255047538443826291370662013045357803085767477638533484901834017336697756863158472541710297440942582760347681497433320272044991416469133772030090380967541671729247715647843866195921626587340535046342966612191994297995824985775261171833185922044774060663342473535311179263051346427358302563821869118657443876260200924621451382007384366501706322242977414388164389097939224033500291897617709001785623259146824331222347238660294628103784953013379771338956094571331187447758622757298769989927843305244279574518823596114716305516791956152829410119341526922838323261170068510198436759882372595124142869850635822678286098125732544908319313059661829110817428322520779948330156375791265017882251917459489226619003467320600271449916076923827185333566201301814854083261692832046882447885231311147274947472462235799159080878883318050624952295020985263189104557986062126975621153906390145497152008285752295124925693171461202168105425907774231689262708674722611370518462014041428230331128349505184316611070987666106445985582005855295084980331973344170594419688551314133258122761275894075138639907924794805161242741789858250846101118956107317041183336905861296632566772816452364653128486234977604687977349032809545765630445220949117277381387677087639368015412550171030916235421048466404382632531185398234567068234609991644168591268718203972935988340809846324399318389287813206973108243536288408713232449306038690012374532438112534641878326089173092598136369281573614859291117800612228713424126557390289450335318715217612782700029524994789094215660149064756178188333584973788346744679616262709337029975677423648436358767118065240102104308231634654871480513670969038577954118157034875148314768631344776250677066704869196205724827765777144882370339622768109343938957599823955290455652602641220610677080195004776381443728404707063271675103376785703483561210524827383229589405066936421155776083722248212655580768302842102885610280202414389475645410205837926182385079110734932979794804325994673581475886061907719759715489059195083471049050153783644610554068065405831580540678069519305935555053545583913956637921037715109588985754167629000601893062620337111872347664089166823986382662726879544073624553096681638983777577555444813163855881330523152043903020051288817464383460930973020270790759415817214845807584857973163545204812827977239530916430967828853252871331290850759941838092959274119155912089010571254179433799440131571687457569090605859891441445521411307019916133597416245852794238957367223149341666005761357779284082434703218034253947390887990108213467181715750679826994082525616216091348076863596473011706415273041915982629628651715444700123952505193474511092256215773733708284818662266904927083730311776877023748519811647949421676732505898974672623515636167627421068140873220001687267125480873602100541296370385079428731576826866928815273027638037812893424122080435438844479633707697277267219707470490036356675896800854959846237798425417760225230884185105744820200525792200662585436883303934926113455308574642579581370827548616396145973835082448672055403659946428259127271334854348945727966692428219519129801256956956976092549380337325841303218862631532513167925256415802772493575496163501145249771207201616135727981796494428309641940654660549917910637410796767981972867538832937674911562140162699114427967534397245439682665331725683508820054580277829691813899035128809465263115356233167897933022052090557536072784938744586227728239576090440950573421832858791720255461238799052997792979555493350872684691433054494474394940283439997310134929812168086610874343310895697189219801082002318493674025122609649030922224739052990288049815306160510784678842441507513881168161275663118361726234109801147739323366171557126211943398778179485311710610907662262641539715948544498786669663902610630668138078043791039443434163189647492123848489892722987672755466908183827133484414594159070235039137213364645229737407019667224168799977319415363992352928309555219720617895991612107173033492486114921542533249367538464820186086669643450356757837857686172894304604415719215807071665561135994806340454116111588004946881084509213514397359409713383009790341399127652938501350731523830625889382504693370734119492043567174648682977086979016319813303607563175854242523274585594066433704715818395386486185657968945264976024153730830642557607873616018094460825169425356581533528598256025905804823197442069115569367468564158786189912708092648835084919188925895555573309582909833625873133301836337681669910979513772461843940814013069002115870605147041633164913936657462763068140823815817097435511126189618172322584552801031271416836527679903265118127254806928979206090259176760260612795234041400364851538169019796305069963753124245167237835824879318603753217377226106795583289131736653255065890515093211220243007442804793116145227589186792117418287389402883956209731931676546393329460471549621162962796028381192552441420838130995397990293672999352351401488427905996492486124697268245448555612348715589103433516957369834982605246282967846631128595708376800894828418060380968374040110918323950176225647494295486272936588563796436145022114192796293124724010275110165638037491237778633060437052020428937577638933336800662555273467917231214402557424732124978933062040907877425051076243112462030864564563906414490330394651741835799336943841174479263606823483122951362292620484993190137912739248510637846019559620792399705772524788775944933949344263829526622316220370060266725955765934027878651438062883696096817132689000343820143173907952947473372611375203701312563218445124890833428905598059205772991035482123779321426456689876380258264000352849208586179007800681620879145785418767649687636013929480187799274258539444505392753164629320738798588699910307170272781146615059728431458755259498268137632798701708190790387259118021242695189121253116252722201431656105854553049304636275190376173318143901320716526786470321088663873174623283548327157264795236961476648253106399927038257078189228077241171349048843497181210000779775097930485679328125312202508604467731712736875389372960134854340292409151301409296435944782555427478409131720866476790262100846884019603364456779389713312887322332516391358072934678374346634401942488643698525315218560090835255619682088845494096403895728941112116860743534061902350250898339951106917105326605602780025670394014365426088161226559957016302510725674474934464820690044758752668823918092148738778091005050359416487775649531194160702176112154479639988605710995706710811876891058366461457757357633946315823627280162746316776564988400972843767260855997414998998958790720400920182662325251485082153545084237453531188990002805265650148050704760531281025763130242258716885545984273307151432645845221389850563587122693019912994152394814045866049429505638838834110219625406437066638467976131141528156525074506396069791169259734578583921875243817142088878675844026783453572412107443663326848604723519832315046140942902321666243490168040289674887803490305497208485951827137051659562461893374591314075614431977109387511584361253639850424332871268647260598655260320589411283706907642340516225073179877473456984712488251819648192047911338944097053651268614015027759329193363693137029830262472884090871512236878213104773538957194542179072666624107335018459341493117628651118264007588898377141425322129564359135861861494761729643921693041722200349430802748304679496330834942828054943581582881095941624915297748988048677148107289462831664625380598947189375815931416655968115403975177598860344324026920241169175699822413774114479137975679241921594830278111328742945280270833955884078872533478625128910348932464659957324656518014031534664362792055302790910515725223302888216162204664416319457400430717192339180779587745547396947414265167695669099494468654627830464437578171648439061106354063051689292528985853423174443989276084234583533438380973983012758397821923254043163660655988521959906893481726871377486332557233679494482304098185983517598989943151923821597343753257049157605508624492936820501935361246277217314412381279600245873627672732973069602364076394482822197176275079088500317870339627382471036807698917298029214989208896954417979446083197899199627792030969418813973052453810064705512535583004259445356300191711578554732723317677151514001237421241286083042589925453467189323178119743165431027071896143358247370685668364790724927372690399045140376007523628436146262163431930431938171074066889964412203286273833587833830075122748083922177072968751463314715025358364936837913422734462539971925036698077432932042354410493141736614122366445370192929519392424402603859309562971845432888222251081642385760300507245733029882225751425606613322578984308051857189754347950890441893634673695063426237047257886591391046078994848023982796324825271803807365726287783794887788359681386611043157696087202254879992179778744720649079702674583416043439427013402407565713935273016553600543461135799220930272382179260624530653082120136336153732262672177076604311003874175676306105811818216182501302219601592749473401634913070579036741468785265816043921090230490995359807447596075920691216503411747484245168621802190024336230974115969930820599748455769797359173199763573578327297077416542205094636906049944560973968753574801433522502987667409561969922303890751610937109326161445431446026467937186775790105482082301005053587802745588482312910202856764714193745449975528185124203958985443383633531794375953022542393552692449057128310012904900062659212483423375506588518062407691492605528981364158085422584611366909719123891793721485214375153456055406011845018737229003539732681715577626079623324971672919372215838655153037595469922963867595778181752769208981428288926698259788075746570456713951015164961116420526675688265345634881936278605778657806266235145134124269841520019605954563165290025732364116718013458044691192794802999079899170201669315137586179833367560310497404540362000060854146540850632848920930470766829346837603965738509532159719172269420648780646045251137606161159840853734170995495193845709517097610852154282511043708624634643864300247922008096612575197799648290456259672739506164865200723837840534862511447667724294893971881589029536730435027289437501459311900839592401757832865719858048725316998551563309796852711608272246234079493321385688759459267442333316369907207243852462330615164822783590673516638681271374809390797264294662855166655187349518045776611106705452485896687899844852191709008238153699512651456040621538746678198629995874785000654422693532620597561433523487080667887485248016702329007687804582093297052178258403293130623191290032045667420226711313689857582217622258375782542194776600981342114532696632947739549351677848018565242943300398272472283487670468068462916278318779568759441307992887664731934590230807326306456371829752468416435081425712992633664460449567953060001286344465409444593494639387221321306328927285156605119420140573740133098710340337765458500199567999106542799764896211247304398379164217440512069397108878690538844308245233512728901465024951842584774274167094483021953268492454046707282902966477221570797475533021482030215261757007927268241083700093344816032136774039129420779027692371084460086660392731919736339508089310407637482431629709300974790018043457183790699838006387607831456266712895124805335285153317589326139694630698520856281059091715305494231563759151257333217340474028036570235728516458063180012640090960904188222350863505082193098229505090203716272320369565214245621516500710072851415675209097942128949017824054399607927434161692447732059927094268263285944185897258134009647345409700474469593249048355463345616164392827229893590439793901132590466285155074133770442604453183507467751962017241914627233125064345468298656467873303878291133491926857528532254067706890924760147945657518978181423390698087546732346579852187400100742809302419461076123014652816487552792634105300769611047814600297215951783233266785804421665906173957199312978220963889582062677319103294347239091676738520970474620055053544217610997586392848597272258754108233487908271392571501374546369532679698627781187355298051102344286922128450424752782179193493141342940749149062053938793718127074403674338173292968735001453396279212345113714432810912241461851463542620914448629968939312202147589666330457923007042989319752406950440293704822923162118528253551183032992113399972634981053637273990081946070832736209104487184452389888902373605249253032282288501912737842073238579164190245597279049615977017083424390970944413270396336954191511375431516022132116739089691164270177969859050785516198497239834089247353812501663421268850219396412731481104547610955372746363556203460437592034709992728887248586457395214985012509393760554928805855732824910480081531118363385685591574106895914701172275333764111076741138488523534878099307654277607659895973467709934501946034585489386872754836102497017514901703543009776197658630923686723298568889576906027947330674955267589470887865084447085091091259378804247886015843989631871236561298186524039258182953796509073502707426610083956682554613140760747464264782420102191016653965908165493979309693656818624024965160827215103661882644287703958967181405786751990988654406293703634161577830859339768656481526863792555174421534639477519247469337099349527854936569756680453456799152023823463786523262957685323042632048991165548319972610181175960150889939860051629890960433655249811991398723013034247645791980806661659246157334837352911245277389415667764890297969684461836021886368088638536604128321044180348266240017704057547567796904492752376136598970253319421095639927855782821474168659856055755945670783763004543568192608636271707696434761607320258397881971145339004353924417029790969244226406333570099481737723362934922919033548325231555272214253884609616489355965939915592990632708300788509459212266417856519945226690140655566918279078749537668751817760775061079657396923134073545199902307752786650637379196778649857680333515830252247570030188646211706258951765393409649756321046292935208037350775018067468843821320407376420292870099861595031895420482870325168593894357174072162807598246688766919262098473441063749013285825450687880296810855699298860230128723725582576408298633501786938339325841970791583254760834958640547564768103893246160967834308948404583454432771108913151821901759989682171903223402688301912084340318273627988741460726805003872680470541148503522092014039050514508127417772912984833766926517652255591665029933350094426717854060355561661111339565338593211251482215124204207213639563423441033353632620811499941364047883417682210902058888319894788699152273303790442579684161609013345802942115872012558612216899560709986023277780523041310211555551371831029067296698671671061249997623630693372980461386807030469897599581887458935623227407184983239887946147779902264854168333284687827267801604797132859328535280907935164834794894493480137805479132042568436043872524983786408305037053887313951910719854254802597910517295508257449742779225801913906286784594247073869556943685709417000334482037331436714428705201450601099344407698613816663054215263594897954732475343608489101438672401962935850743075079872487922697796800350700899299944310269851144708909549075452856059913857464669771673823044594282541189203629973134484131576114276668087816205384973855694970886905059548940127460646517222395469133771037487672276218533550752789929769602613334962346752096843342714587330011234447037171786859287836195400129580870656930545174404926980110359054460671688919314272988629129084083213406908414936957356757876329985105132179913130718938840122339945938311448497233363097465166379203772131023069756287723621601847860299495821556009481611615753206565960088357058336248619455542740122339996230154398796645324185948750144800453484972253246542880205408890612311419308225097941773141573715092739248100641614898183874422295142639951156503711526402880657637891038858512741493340222253366303385514266013316672260984083764305341846921427554227513248639622995874202988041769265203999284587993076726222441524304139379468268219815206723152261789266027511907799357256817291817713587948164077692200362845700785384600976294049963421207349762380658038956974965590347643370138817962229323091688149876328481057419970069915455011917979772487594620966939423009583983321625546411380259993292034846998235244335496653551338425744974087267223566129908526170398343211464478379534412415796930999614518121920903274276730023513065995898256116214075051184343804373548500368476659972123569993565501030847018035785179419474770461286445054188422096576593826791467194050583788671493258821619218866072105918002880711354022918938206724870062499917485961998810762743859318367506430567196685269021831946851073749507780995448723515437048649099723363476563725107202839517603300436691766415916323305387598790970501772524084954175105959215021877932680026387052302610712997580762283035319755696047427914016608053253025674415143455430737471902684471722777475931553502345386511533962442688085107237319275554559622964052921966825953250451964249785377611152450966739065762838490656317153528950203250159843297261325848055961145468945207717492525848267783594252666653367752828664888098046063159545764280434196916653164209177001734679365863819006380661174587440676329510935251440901048638316821262771939522891839489548750758195885987596056987530972358163298481921466062445664091307900329541074399939125493956235194824802503171333856139919255999624142338816606303546703184279727973083917504051595650484013866601043723559205342962346634362156849365671234437592119352183905803168205849475712468139596684051959101349814745540006114526922413386162810257506535269160378228764427199118343215410785196903105684439058037415647264431505878079902178961897148548519564065110383299733279075804241784645869535447237200827484171062255829017777474619303980653195519477059933565191096576119154133272169155334556681097566814068037412090394579907516747357289684799869350857279852764415487824419332071460590259816407418898866004729969729724891745127951687271656459224696381558164752113847921345582097751077616291059989753174208814974604418668131502940747700438005600808659502920214868958246197093534520380048409483962337994098549401823854034854512215898911795081149217388452484576926493668430794298289275062976521087540891173168899795570367738603658656780238847551215191812580906656095663051337985866266281127340448371261975094627060126287879530868630420910904938332028384565282953849210444499137565853724993730086336413740021376659948392121878909181160180725862282433024964849936082685648836666604506715485702062053487665234390995875883842481858806117063719228678061250586075921160685844404737537561503349580287767548659177476237763540495054823222391272119552792750827646790119906088959807685246182993670689939170959788211856428193506710223188378061931994242800337309776034547476825282940747847438963691181632824236579777052924691847679236907159999246429562670820447776654988950080396968631975262562302550039089286016725776029857578043402246767148687134693217464024693164597386167763272303219068724429098498864546617369574692285257231080111130319613154289563559842783143628805814194277782240497148652611195552782806530839829705675627771805765578882090386520574816554121255742207143334518415507550799805658104281893520649859863131594036716079527604660348581585162867181785736475634183661834063817469962429559941357662864915140358567077678749138305196995446068072822857587164535356715622767613778062277368738669388395087468917697107318884763203150394040900691825621738555028010091251348768619672594700670477992053502613561101404510438573244990904968162651433626731235829886871505923347261767473529499858482638794215397419429516670522902043818258760882498531508107881322921135053626431686280804207508446634149096442559982510788900764081168366238125905177488017466041596186754020883294289344044250356991505755686508093344941033322084616806013898538313661234665661030878437845775737373162368012994751756734880393096104932851412360619387699711027972946616048251892247759968887618665666433594715813995056115132991602018442166513906158916347021773118592490037326406624893395937471909629313697954007650819013426151720427105601913353634300319869608218276122953272232648845873571647875808982864896051060981669881541646444195844736177894215511409410954705624186064762737114861793312827623602667039202398130382412540516285872190464915443183166967108819957085236560734256576272871387096864296506575046950264337627866582219881790485235147392048060224848270676410029887309421158950671114015296183726255584552041916805789805663637693998658667948475963068469476232730202223435075099461370392468178930221255619258731319503464651750556253289302777851710899738504466759568841043507543774759890228932668532227320702129338028761365015335349173037056638319238352153333165528414680470387722444039560625268028134315652786450274900794998153277338774962523738570334189784440699916655253789523380542489033863099322967375400582978986516919665195864422109079163563302735964028489835814756216544635041803476492560701528311855139028246753013982429608606539501656426801387974271738760826376853055008667328868749925269935270443843467225840553497533170405677986578038711969647275559350266214786769844077401530760279572548218149107200932342310390345578320976238249108432458832298251297751708998711427607754221702009285437457034613991175278064405615741805956057191864225246589629020241390819178293721833720565433996675426572973980939782365538321769474104957806616512787012721484169316639678938911446080365632021484345607531400195413222848349196035056906889286674268154845397734127813748970167613647241782492396436508767045026660443753482336479854050401145599171303925253373152923891902243990620212526729328559896753184996830102405528776823124030991823004661107622967471458087124214495204507793899289914949977697223355601354935313001296340964785249986079650553711079790080246600462497099008733022442367620633225651230099289086119871839923431696515158932163762310925472490339884186631701173292761455786195603949266993681620098728630435341062153935023275212087320946612495753250562544575935568785308166972710753738672991870813133614781346721121376590982206498814750736241900389240895609696958883883795657672050216137920099477503644737255629826714204171411630765051105086302883684130956847064980394010290264355559252589663292063858377531971971038018945797387026008694849987203801824891951543433727910658785329396376579254236811681498061678101354901389583880717792866463944835806542864653918803866452625846632655484781494968918517976562292264709725253298057337214916803652443720338478231433063286627196647781847513425836452135935791486601304504420489669155781949151846552686488985684860423973660242275072852480002661462984937399644788658854049585752918229672589099240222991344026889243054656867445722103113707923080240486262150457516946726921668899926949446370595974189414999031729884575799249042639510378207753242659458190527321996676941039483043038005314191244817575916358200220261433950105553254699395717842539057537628475480022398836882195311024240414740271770370078943294054727060680986450261872458003809346430144480412825195645390398020048923919554746430750312219061082236284146431275262315107835496451189561100692840137556352834818438182554773731759496786149146359846678562692180400511525500234976678418747741718555851007479227456647422235849892374587991992126842910162304409696807323930406781750342785954822617231437343848805876745817833387066287091940712125427483186185171130194191521002347197363627336488161112274907630845645668977737644926226250611642568071311034958165450542031433393434804630051790539579810332307770745743751390966824417015950462325199986174555284158919411245220875013044115115377530556832486843802293675066822888182443851119559983473923498601500639388884689459707872902549196499314375887904579633137660431714821648437622904836291885418585667477981967832478849659414347317765815502733562576211165035700228977439843654794416267909155246838194137271240276048930321443042963740420549932903205160142545742225832122629492507030076204108854845093894982809014599985509827804352573711224391372097153321507592177997845905425148430142024611358310856522026753059983379254047393647592783797827228937754003799368198249388487312094915367497836207927820016536552020312857055176931136368628306023758210612178388873865951718433385939305986185563374519042708631618611210899022390221231988940236246633047329336110526662338308887617771039932114822385484938362512081355557373996794912196887019423390010432729018409517228563181696613630359924723251098611108148438438810644874007306671755000717253081762757994525221022005853895858446279251858024187365802623580889834917088898284420928038985772256872184994011975615004464207720173079383841364611640793134087892624233409544681939690918265061571345160189843743626451685546527367084435700033855600715393670429095263944767658733303727686367619706432922370907508938194413959953212910896951285917614873981613400725055744968092592055874297499708324275003278561531179735684915221994243581990639553784348627530117437199888607723605745725729259579183966149898977079495482970519603168559875745586708540427910327810520658983256417731848909882690226993913267136662673146827576195124584829067544324909830508940481424058029593948003506296232694723807788349331586760186866739453383764738790568103740748876232647043483876471444178453047983375362045238064916726554317213034812954671451874768870102516915736150010798099613212101666671048564626176181778003059380757314614686517851325415797327243749092876554009727131058330602917299278859587224663526926792340784139660406414085139081115316130018629292736404593985404134937701750997540320105648398480797259911410442205099223769099857481625509810512214065675596782066168998307544150804258724138437713011373470771200380354808268153238411338272935160343336280097534237380028178653167692113744893379343285457546989402058359677353984334315784233966797470061679138655163149909709598377742286316575912002846594844276476388375187169269525522287255485236834731698433447061876658655633958911574201651493371585721301576472185456315697943478244464701012410383913381035291114333514169603820155551798837913420613421677084309474248520118457129152340561891951154812777622738404330166808725840415702314747096529330884527947290591165891405785503414239368503283760617184234643837648918008167368056719904248925025650793528343885820866590432235905841175316629337662326057559934802728372625428707318741479057432844275541465090244817116094164194469629544219014222690702454513891114865458426845016376154837456747411592960770216965701965634316004999492731851847571808352456986455243692680240082444002177992640643240760459958527252105685748072895644118752748114422608565239083942171684629474475217130344502414113932373350191301325937586534111775161821278785129774171947232128443157108224304490302303907973838785090095017813533092937692534102788449125369736945748691164611815622883866727477786472729723869664526385166751558007911186016824192091459086497914864581126145711468678063291818891258361812199216105449673713607102840335968531352711786793246947061220022195115121887152929280582462495970762851594013552992121273634570099149423470612377781004142197353512210867061655007081742362186989582074058287457859188601167226158558185305962733137631714185771116543374326579198660821124565746733105497526081315245557976288639687095858929487223703997929553658728676381653779903640159156113347221136052232427343632620594100075595125391582435100972532014957054888241637832211693949373181112282221320904425473975514410106835427125575930594176692488090689183243461029843726985655878028942144064492376755920264353883357809068826313123424420849108493579137879516203479454047549759984849327282469658996783755428884214369381870718798776708348717525797030868846016447042027140527041616058951603253947391838158485763008192554518367851119524169334794951627114113693795795211916392519184442267642689747177653699554108341254535133295513689558090551585795848789217230626339172450700109789132784284717491696955233301083109412680189793738918334526948903997117145960600619432243415011523205993081314726165542440207279906161359068505172330565356511187446862316398757972799089588384728822873884881082519774630152155870782929173150027449567639259548591918513549549035470110201393742828965770307318365085504791016950133940969336162344157517048476458566455205082398857307193558521037303804068213015454461975386322144504080646233076824215292644106478943539599199341730075006186254496017650793065705031449172677768500570423110652823130612797225899354186415775266841926804124284550226836914371012876662613650600934043679286484241322357586399465003027527751395900621628535287890236069980413187994993717488002588955851151959312649106743202896554559244424467732426126585281395645755369341860067451580309433860017598277531384349519767502033245130278443258888350345461350091926714855183109798840962395687468690892851440423493312329055205686383234191743027514584904188381691760292465477868103999258395591382591249904545856947518996382081685202013387776052532584857846696044148899761742806848921345360584866732163804688502436456731244746538248465243950029637286262558957125243430663732551799703808901808229457834293086987792197556186863867157382109461539599170276487313404093766255962560355347646213843921394606295405055962788748926650636991452457261943521600714969675469682948746858497966655863102936671952602980033825205285991059729905890329392078663014599640746021578969270428685606149169584731854755572077003844608425591516831883630065356079006674135179570322896625627784360366934394094527985469896560949771135667172678741673099692242409879036324367585859536620815069079233521119686360937432982017135615729693828685398435935781379926445516181884432647578893795996099506600639832696020446372972462383755425988532879431807562043301994655662068929552686861859836041016515844162242568566630652514907167100547195885665930589990769820580948894893919128137443157946826316566271228213558080167743434657606298962664711573942177731569722971718427640524327685519438004594076640189389280115944104379792856902098888343374057542987066910391912048749274606215140348907360220707552816997247091873399503662484598283846048201430833557168467499484610686475347322758588929373278384243292772071476647849340837926594252400171293771909266153657601759845061764920978652083430528349036426714766441688897864599775771667917668513453332126811779512197952986251899976247985607394456228081970429194506731619276649312902163478896796657865171044223866157169523570042547546417061174400162238861744530389111622641854238310010674509615454849905209964648204379845561734093557933587094979466313927468628639372358110926691094579097709888391425068945558566111457750700534121817608859758926044611646843856347030803094839976226777906829259724985159127411671235263159815235637642550412976150974173226616632264790652312851366765570918946582782304853581273924216059549347000801625129510512789030046029177434646704034847874629504907538720623857161885284476329027506803361511405845614771289788654188255958682073391247627974369386710605678243727586408320340629431577123334244599446969139147867589736012415540099842882015512027516508142627970686194726712443396011433559035707518757618295465570605755950714017213886296071084676626343805902429466192910783559383275916194839984277358832095638540960043798449514324065935262382816027223607367884190337751214853338019771878626481370333149716864220988587927180781740734700338557778179435616262530486551977749059463038628539531148271813129096385156561873270057437986334865551935830829806169488066964235779197906451578074210963122750074977140972099801490800606949373978367564981220816880027994275193133541596570361464033588745405497661525017259705323397677021758250155680048267122247626368305231974115087951890291056527258573669487384011134811454917256198423890550187255828227222979109109829689366886575675663202409456282128720909156659419923818573667535606391751102473587973790620392361836357358054900452845350604472316528026761331238908161431197818852498094114244053412393980216977750778367435735983577157700121290130978422798617494622601192057955806471008284228005170286833048650833976054238700697185429739803124150644628932828599208661812849850542133833792063592591938855164734562627603839500958435103336803448591821681505361909601845066939091541417934491493459652498436710127786194076173104980739474379792875168330774051978262109553426539665479077420082597637684913833052605298941318170809337024555734105194634429768893164390004061040028982105566934067530198838861607249480956738796256267201909797738819006760127453093801835094379761846384499745993877220217104265522901326028108899429069793867842718604087576225858621640369264877913892662520513444341881701182455432427938136502272961476865479455733465752657273847994029527764038993236609108251161214616391775061561415452770989632379431933004490137953132148592884750336637685642438451801448462463325815535869196540862676132427120801439147540839717156431652638011721817258636086741583111040306644669475741252064005953323027309403908472937544036038138813345497203867812530000577004078657468635216145281828521151798505125533827346348213136489663409314119646799021407697293026304925645850729826307208281420277327188130153423861763766725214921104225101481111606215067112309283897523827698374886332835509384910295886010620211424943983907079367465669951782373416149464934245953101958185535062175462842701969811310599265677436540575595936538678411657614872595165125306423878193850283675434309559197161499761046897531429976512257933827227436642244653159879443935897805726470331484278853568937262681851234556330979634343039277440775130688215456979780318995857673237254558132137722053004021170970280814552916039587251263158178687936644141588078438284957300293721780761780346697160802277848806338208591560083165089319064563232925596901702069446063450940768799962847779756160118182812454948789598675873857661065461933650690721547218605500276027905440916940797366840832940371817739819200944503459180109678558594950480600688739262145767565658762447082279610732407877146048863337722418019854697411371821567447793457586028938504635376315810780447500812359077133293661595365700385854806825361463754170080196322182302020078584243627047879294874840767462501493808408663227867417090437042280822414055923511790312917808005116144085268153190874609661016404518116807684557413402554959506072291597281693822564786271546329318517021989771565178353943895743542573828505439563422814871899902157895565080767252012364981148332222240623662222942843308274981228470377032138830295823002220138463183504055031199205852783312477945190538875335526432286285297602458655031037800276404788452794787765259079746248658613434671372535545361839263359169872755315733090019142222176749677516306139963762782681635734821899765000490977924901303250106352741140886033461660315007526573643790277650112355601734464695423800868273829272025718647437714117267963778380315777346621771929344877663834893350175955776870912067356143506720875510769369367815158149370927749590628180535972213729827732492681784691779894264225685892052120679408833232929238122654922413803716019955088151617028764566150378010144929067236308618289609646896572766836798168352124399621705945940817013985771248372217878063347591021862305669597622599513300244503698476541242337908366889141726019904602881484151105733640386420207028867943674015829698350983069430265718539551113796011758044604923041527992049703663567648881776381187081963404594957428901555271589130924930548350125649880708425607689105773185475501690127752131694262360322515089931255939888110405926032203044857615742044211725601671398136723106069536243747172942048571953956101818108522295287309806355280018957112266491850281324742790022803891478788430882353000162784854454717245266699738936529556663652196489129459238670157360119958863352673144347674462320624435192341013118143623751131815896086193373072216832443925160382401657943394961395415249154346485045663146765287627999531463437633375162591181181470743810391110460683537102757537521692269757529931250829389029071069388615133481515991838435616674023309560085728849478252100465700188634351391216918786744723218467480268854008585134948400082370339810774930334586653230468504898712837527725428441827029127978707121032863132755833725642485660849690602423129861915186576043561001251740969500762587939487357067745774415606117843986658255198510936913156277500502560894099508144807268559556763462769841463951850777469961747510695158022382908744116562312940658737056892124261706270319277597821409561237259725124075883168012176667653694388494014824657428705214036272557340445351916967190853464544876725188158276947021116444881338888111734819943778360989645672541020841284223073944251875650535812995333057406573655322121334462471584501800303115397750770344537948570670589291787995805049570404085652429709661207516785663934606344008398109405470198702036637499571600126803746248340345705483521318689256074538322260592703254397203307903675170995527038404850245552215880656442873139995740234976611702314035207409966156432418506269751418852837718637318879314976951535372307127706198122894978106854420783014300879946681430321174829792183671072202688951708902190451294679800765507087926170241288700790678898754327373546468693277099964039167611187727696495028191053646567974261667714284258573755436912458250010747252508282365011965505255479220707745479608561929416050071145777500629508437831320668152075586442556596084350450051547265842365492441405047295100670464756309278593412324765407710685114503751291732646529661139945521392481173012769464892454966981374006322010445442819635932520527018881377594979132981452502615360006169856049916682660444145824778022479490400446403560104731631671293526421148328981015427842741006599801672564117397499077761836944401739225389043977443937458912912343373190698233866402629513182830787903425056767978070716717638961730381630272589407141099630133048217682101601328120804749091063364718546286373288724784851833455804213653647953153007511186949392450787675220158225241270198900529511487197478730111328353524493974321087463451713121130026942589201691497989754860343607511601467202905660449316487452722033263525673525761381816052714515956192848336285521697253969796287056794895334710133245420923999925323629631828351461756481226718245723999498823099634848170655175603568102747475261266553083652549018200862967759654851244283340228000056348330788911670597745144241161008882986902493861716887818285866480632256541367567453537701087725699866415229194832437046039031086533754766986395880475622232393195731503659181618303457358354134177809110479226979510734494036250389357406312146950277381435646141050990542179966732927496332921668151723064582024695641287695021741701462624041385127041315818611685596372931871127489746611699171137202001475684423626196264236122361319750230311479093513362967619248928374193450393545201586893989799768246232881662040038724158997085560944013505681687245540623717390234591493950607662980289723110706543816698906555186888028635370995386006926449566992987817670249423435137502363927170035370881189148206050536196077602436519781507120483278487774672936728409156952146314483639918434456704618620155132685700270692185412610024698684681018925671228143426265733132746346876974673466723198239950148946648479844036830523493629449597512286496604912007923756007103487096948458630284622583991291484728833969982548259294440778102504010117788926459662825709974846514787207732222018610665741581810064085814364549422352029718294103862291437177456419693885975378048648686139345558360185833531640577960608785180001628597484964168947430357130395238279783297467219706004973691358465359014532124658404030763152808299631249334551754682328780569925834114169325699690143756585763817727502686740444308673526491259234429073684773183135960684600955774486309128104213629914962653865778645694347286662587891456937439147069375888513634102228614711009108243958894164644039127393373816862489024347453656719812478122194585985146845810098939137406499618596257196507295156978426931419567202797114736313533395818911266487995405853112953830336733655209347750835711160135939388322012848334255105842561066299960286709747192241987028222550622313136418486519206641537975075153795919325043526073120986732315759021357325574487804013991167342775829243990775241683758813164583230753811647067493199601352669148183404926710958678716015981878876507661956283186996759028230187777222814577829556018590338848055623406004222384611577107348592432695917230283817597040910410847443668918504493777763338993492554686856741554957593555920695997893653897499279869055197686885566593931117944694991279309954587982541499692633387066760107974470431492793003267483049796894210319359762001951406083947672207739238610344585600696194439215672105418343192054170552222300642270758592632052318343924774305700361535582806309321508219553162136199668353849093900879095028628465900019435491193175628206454703476620937912076570957310933861568749959996213100166533998828085894062256702603271984213654064611047497839625085510385803969518286450466244879435066917546011240893714296777895855144738876315568171662293501592303171142300012885217316248189590665881979580967004795782086557013109649859825033049780514657019676411942939030203499566119253673225090959323160892284640247448350548328679981623285322014742932203764178046291871015824997306392006506162195324356897000436602879169230393356520357056703548411145905746013921950309737538233232845888665940971844556147585779892038600136085411848903861173238261176099465387306851195164278006165306612440060248963645901759502311588941792334021255371772445112935714137689583394819279257885320854118450752451824001604885141392999107444577572601220960575722463276024764921457815473251602156988700109351191047112494807377999763427047121474585102948657568058840391386165057854282700954304920268870800963150676411795617519544877982941546118994104160608682294305313458739776346636696115988602298778167312373141804731738149549135086431462930487027403234261272123162059803098143467602840055612417986667841983586640083783219026691375151401378774610206257176619288174197828603351316031861305958648445640290109384854373280925406280710514084191758832902268506986405668806889588873565530924062741230355966045710927758365690502386493038413987442339185140319508384469432053664358942397745376152842356383044302511855844973604459621713884125327723793815185801099675110182025783144030365402413245247395155642856678179221149519691905059594495709927883060338182780014822054025674400127251194036684009887311969922717446815178089107535082246346481791197250875949223759785275418163095312224075662189682870413213841642552312277002436501805741806508430491414975939672603696128280192547764583690905629195928815891658516641490347274383591953539037289129113946064864443819542786329081460635225685138634877130340805249473635228305094753331718943747382036822399583530729485105675441029489174654230876738098813446682439264381972696052603843076170866480022483674042736991324699417489235396962810814440206491974598533613893834754985293489494567474027904819417734026564570395938980317083373726423232819160740448121569526704364359827612773597563759115513299214666007548841310322351969875959362668643873690566395195110129664965371673082656022367661943608529761054775581255239364126211407958199520148182767462120111903657524143665242244890818405467674590982217698101922267883473375585234116784249516543363021350344083092924817872404100997602931683693405527162713796413903681714187019764868021887392126912819050513376673223253144787756563417551713475706436924418924939228722729034763651538308396905238050040448103140384590434341254695228924867241143146138208244017077766684948058475682295502346684967975913494523932765622385670818097074511782835639215589811126227430424873709454017141579792476699753294416989299892399333724090524771252568189538168650369068610231675622622092754783281802572257783183802655435560693434347214320902445839362158224430503410250610973667236699802488643620927153871315295547412639765015574567689768522949945144770345955219077184321249632572032021927736847953688487368248731324894110108083772577219801567055753666749230109490163846889498640861419360251829083622198733666843665765708977019570588191322922545259213555733629299925451303690804081169818484066373661166344398871141943254680120612314602298225511086256604385658163477662654346851351996865986170960712991209244175293707121190602009743102781773345128691856201148282862480365118970905039764493122810267354328770448360132443726949991815895228583617059311109800007679581559755118720359810466563832944029320110068622666573907333434933817705951568939823135873960273790394468061625305945048554571116285897814214889378714473712713168178001460987940092831404389790024137393737771796547905459039542790325981939955375560117253077779047235826197437348960250181096477065458675109637048478315836851317072120543393935536537530739260097393493505111689676976021547377518761457889834728801077226035912805987073145588654885340681006641465679653520002209059030090525089848349870812921616156652955024452983863782383324047555709427759371971711597344228694345558981272532214507901155296312395368119922724025861479205358957500686787793051298181128717416057171043297632882781681469164262352520252284121835249213290279001202153301673084387293296795276839401529181215856820003835226044858538650615626206484569544787671292721952936112396338611025779605759509150952246069055924352362370433299577868243173132029118424059882724825702412300475015351466169608097651870297973807602413516023381776528247995614485837350483453727072489911868678243809035076415378878321551690030161406533442433086074371367172574305412803707654092617964308473102991939219385853939131282355783110277037397413313958792008688352683472490263401038009235522482508743587518454640000697071725417858734094207674786978379214896328367687464559610585564080250442471423773639265038865301187343267820328623040685242831375444513592946811577409113260606812434558380896640457030337937577958487586767396450241866128466115177632814423438821189157234551027320371324523028340954211818365751184153103899129816140588447049350990354879522664056158977591743381221340935193881359671593237583962693601604993358859050302307928416918406441547539380537911807427487991577016336058597270200527767056859547554551220263749936176436983429454242619332220456176609058798757716319397204137060767558299566795724097629524277479978991597960763537620113148138493881765084446381333545501933558895910631800825346151683895905413762612179886183703209376189928810878436453678399649753785648003329412962839964885684713796441302927319254178499040469740819355161286771790658110252871635248318608947369297263256992767376782320278256601595584555127175080441511545329131329048039481406349779114282553204376671596000392496105208098942327130581750158756580540240275912366800150500764264028611916826066776477006351194559634315172859908419872955648670064917879323225398746997313082848052794749871199162130264503064933841558773514115809072513973475255923817486298140304315712057810156293293509304112396286128485402285277987756640660056763676651017105765607004236876208705433877530740370021085009927256585979854392590108274273445675729570502079972057149449784229615632466938402455886030714839390992250120133649641927696202585810564191105624546450829428537367871844156289542146790125555875776292810394657006304289967056312095192085400811638428097816186702558843658320873727757620214258168581208043711525373117506972278741141725405086589854148145787495113941927162517132009702820949704578415666487660175589747937767688311188112808349340868760947587456595607114733350772606459384077272360552571558241752076117002731755152623150762407123692533710983692846895851739730326333722450864526786086024040659911928385976222883734577260038869548839211284293087665616650904007014112868534864568223419073776999208139337080882169429228024109442863596721224168058926158710010993543821356212622250141900609583609546078846155815019626168567244858320034779797649684543824925922945538873241846642024948248968869436399805298084916237407719456430570008475556691000801256915847683525593029456772647471106841981424083827840719673664746382577978476393588582990909772652350745691707785103142665333531153968772577570498953929153439222561780364565768070904684977042638406522282526512985287343863591906176559137613157704690158802070153470496862093214930013992153683421437845873831225834187168610814389224150755779093209957777092998143426601991014579354374487881123449268515316372176022594005524780503422252864756445368310888610437099527666256520151966852615956958795398520594928810374042367105793092197443079797207987221989559745977705257672339689221429622654533790193679708544017249599391687909186257052792483779782939606016197033132156882618533105071753518126227584090500669114815617950828418635735991202399227832122257354014702187586448246444412884990964432718289492865138229458645395536171894378030682347386669680266803477334408816507922676148439623541348947110076215196697882169158259364494396712441430726984183149065151556961281449804805199242061237208973371886506590536571682508966255883728003181027190103833089414567952443361622670652283153125332647559224364878489626571724547662818301181690616410419238554369368242760121056049113034629364709424025906301445978305302586352672187519879399217002386286381675814585092342165595345179019584874299469715854695517198195966074074238143690790745535691011452884825843751548560887044042269754698289036183067120414186526285328268905206653740403091850120641086369256223669948255730991935459271394939696436199600607133591094853026968941259448153073127384487587206665434307822721470954395853933114101162354700376223361791466189870858930066857527474361995988287630579535814553775192300981527741292281660535941381500992117820965339580362323638457080850675962283913089140630865354434636557593949879835228379172015800391714192077213657076520482062247124269974248940009299321019848636925338770702594796786086655160792440015426414160956201091645934667416207018744968495701419323449581031769413680489153342669686321041654227894466114492559320560316615990957467177520041406858564984985927694459668990908981329584142662232724427457504019368989840382146983124713266761886338050029577380519497802196857228971782208394150283358101252664823096000360213779738682428750415550549486163110907927183064251847072785240794715957427122576364884791348300495823501802093990158353796938325751167106262179901850950545507583938740437802705430938313123616071674655232125422533438980533094766104839400141436169939213994219928623339073163076016081621792685143983806611386086176416048309776254764041175173773400880309729783703407008733723309316824932101424199127705280617569226820994979307233315716483850179487354093795907127773872238325942674770559617553467563828273320901270269347582160446674839294380502426211743460588078302329339914467348198151688811324419270449644857430108120166518392598754128362297220949486648027542021128363955811448762361524019623829833660855034407363299750379661872489343914955149491376190410695865225346326038319006288328658067671089132455270707611900187532408909232453190910544542142698378887697312689423228598528649415766875035446003519565498672033429514215913543311018539620078594940188521169290214355535539111958198586435357923856317861024278467120606955512744845322706845842940822426112168036043250172120340863936452030450234374806453288038693920351850438885269546706895971843001685673752549196975489474340599972998563741531152137398879926612633210145432387822684308607599377736168760491437855496678919400016667018213555580474635916763748369026149891415182325014074196173436129295517282042178714667140217995900800963242265234287377554865769683562361451030190036782001912130015511687749772440916742884697726979547426527809394104589868018341452060606766062336959238413066550838367134532639133049202881177633424559063942027207079065710978764319637049400939277504968773045535669948469617839508576456604043929721565928052295227934232826174997358717840490673172075672983455323457634533419536784405941157021796036117110229962996290327903675582289293861809169171662393685693166397666649177828693700769869573977184886268894695818739770102909145549559999636153721643455624671740072407608073883293014479199300191904886000934133200382587333831150083893515207609315566941092473034630284350383518396920374245249340497942018844675420666454877231202119176796824638150452622280722680399249038372241005176554562751984318651979003971799903061970591661464335200016050936538302558719347997299980892472989999100095843561404499768845995016585601103794084028384715111205925816933973056991432317530106248241237361286798976771596904117074578404147515133395816088924352866323726370911075000179380254863302339148714912850068705373596686148300877178160252466463202261385053172102828081584048887831537595346448803976869018370418968203116231150689617043350474484067124858107398192261135364251584365379880772692410258880215997938412115006975613560126759357259730385598971944741128799723632631394253280276568820697138746478876796616819231403403843717922169169312731236115119941434529337761857436116851837325957035093659230068861278619244588659809460468496039967838142882528190258834721387506184861271170621533222450528847812126451684428304027211138287397827659849413592894790874654892570414647501585522411320816569914561056288260533928092896924451620107807996969699371032654499088210964422736095873049146883092222984899274659766105269248653358084937149474836568754136192373598401268610500743417704849897505990340989530775480221116389739591826566634130206166407830401402049529930989046920585888007698182523696592294108588622453158831733907132906204937119497293713138649837176704359345376283789637285556763887475563681704022983133738009107554047870629928009840668862322559724035906241350564305109533939534250346056395713560715099084307071245879903733009069155271676390515197214425886490717052897584049389223466876981926126234889368046720499628551684513704224864142354489016949699716159854426418403070571727379662664425508122964272340580830204016029699037809337413789835095313800662353776934686917121048906547181510537597269758576830485291977136980078512423433904394191397281282475048335505814384124773412427846096664023100011146437417741869105578310290169092468233447100173953232016640867091408036197941122679371847952759234338482253115267315068113204331851973588807106591843834980693776135410773003297401704706595515158121252851536086939468604391513805233103341393168149902645431634562002645186223632255041372320723492938596721938660194831951540211747647701222795003525366783131006006707889992454598386626063777932854320192046545198430840476053202295202383501160392258706583978408557663025834608637307981048375744244110732189393913215895912669611732251238408482045590884389344726671315578889143672799037277874980622615797810749750438851029478174618714359712186332575322944678064709606371563525577821518736257910684359273690298730535941963624892435039401594462994873732892596282815953749896049537517270662865367160899662257684221237785620231137784010287925647683184276507814036723043095729674743056609422824474201722997937414039062568076302348250737965920446004820252681744755673494039707797376353040953596393001891743992213113126267847771542487996711383008035401911379437031720168144271612528624048492406150007230783708881287815745716600891999909531187921012624403094592694153290978592118098008863738823531357881317964154009420778215971977718251842386263558854598551778700302557766375389540709521791233217194548346601444984474459166657958087653779889252463483603945936528659002363911580204871195501253844315076033571876801199296277448970614498275707943018911063605431739744000378256947510506377295282033111219436972651127919728785527568314398817335801632125465196583508394564694271959476623656867163017968745354518363601660555514685284282940684255385956989253993160735636870632619779364257239217407360257918918110368960282995729693426941596912920037082967724914960070225299941279512024088976715289534932805921524777766676695357568388242165195969856256633228493215888858929735565540649053741154264941668319462047513794896282145139046550035264875403202946574116878398693979256287764895021873018179568584263680962530711062844953214185897789002677015199493462119954161073204202661865057823926274837350418969488649715028589824904831143943475075378007549653066593840805915650857813897344044226809066702013101393225281177153602714478798919939755143927306752493757415695158113638101550439034814629293331054774604981969076205151513101128667392130241277924264220145879907752453436386809784954411421566647496615349429398188260408027966804906121139952816484955822100490237527336360951379480233620036611244075985817874403456235846462984741768502441883970679755672941731498405581093833451465220211820100346944664350555989951307864347206980289952100550175948949753272624827554573972116225250971595971286634649391623139010926619240837535415364886655506528481735837598084691221532922770269187237002625787388939517317381449287955676418807713999129047966837114789889036680738574677139898821683744859591269139612942518313927105940203150402350778424693110783157088054192350995105128085787020553443730118101590948794132332751292276147701336810921604300774565772691631453524435916297414846455591416054638132796926270447066529109580402443878543391308487772004299080756828423757457797792811455736652776178507718402930108119502440415853924955239600472795423393724121823741790154508999870373872509306080309911699138830179816274701909077238341650267571918004641726589571001432812762898058975087384347809572459301268762794107392939439907692126793363374393535202568142858486670009532463869200190896881046050091920757135776790201046532330767571583214187678762390370674646460264162190204509638985361586188921151044896074384422338423198077929258878904093108571375716138615001857776873682140263003941958833644038914911802535192490768192540245503658910088453110185189279072276142766694295588151004564553220960628804211237744738439865023578959197005762156749799784021619605300076631792360759253788393546915270383700795123254905186163066526690748662236795213261037821575669267608219616639424148134766079369157677576038085378014434821765196373966573657255522168950564295286758662715999225089077199548237349299820563987726130358628073145366346214324309807641332993527490696572378437863469236758317035228518066662194313211445543501627126820120789232328657650727600030542647882047022713150093907322897848076073552910565628280761114876928581526234831844111325296671795200316170801513944046866388406522938836441707709849138120258013408001491031017149870442889443594862802789776098469449332571874768565257652654692320823368063919045408220363588724400976256607682240673353275311703549602932376593424982794627818005790714074772929315747720907218766472588296950729812580873766542339825778833166835011208810921218847056181741257035042763810030345204497414737439767982163511360626418639390807375025904115939494451095402854253513837223960279614896546688334359038821176218602865007635751711715102181960790209884940650087219756567687396406744285298804246656573834904021676331784387083966377009295246118519066892363433135772249477256978175567436028738649559671577172498803198601354491670102047745721262299588533043165469037034839056476860871431405837550241771643394148409524483688522344094106148240504731526318312669028353260418422236907272504520686172553413037973124773987790640251225644023140807620928662634729891063794559745605495303088585639828747245745109743303128088629052555684554946762737311135866306575122923981678574036663011393871580695985849141548741792448048188681916893607297387778525851699311104705405896552335244748200168041849596732525048025180067954310354307556586609046319769565925136333998826455071272138398655911966380268895741483845098151031929017317937314910385236534838002538609550797491414258476880092073892512790538188362145526308716105443515302403760385274278531583674279606120154375773342704362508033466781352339028053236036427981889818254743684328822756249780715690000377174961003029411768903256253898123127020914012888735111334113436731396834573219145652853127120931056409247336278338035695570234276941862956086790782278445763355415801228875520260561731740702490561413314160798600405462125923277489637925223037333615155180367198247795038790449376841110061191245263978966329553540350586343936436557373272495750351139033642088950177844183722403746276032090975502122468520945471334280204628264986154512454109577621299326289914874261489888037959467374600560919056187635314479551842126494877011937065319825783341780054571113294687994804341936782722551670173603555164581123534060448504558103077807883607131149751909982952804430517387227071072395672749289880323685096233396478342061208222610438252900271339323308753729296410837819343431549506194573263011620771667184101616611990188465058957802217607487190519867731060784747687665709178442145260859556191119360761131359447559162561510430624974893426602465086303935496860930713131755750621812341978875138691645724803980912476493022479735902149712812203649716020211658680198067735376220702161249254949211980727099605880275537009766751770385503995211281289429049258132324113858336063329909610856912322464908980797410222644259166662897070249027380352191297531419484003654776216596538747076949221367414470369044331943254630161347486975827244160130353845904863204045639184598793994907039574886562760488600591849875398547128135514705881121977178242480634183402584517279295245584819813365077518409319943923750511062280928192488011517323458390324768655733268232392821787330708158491060423442215174223922796953680754329046893530962971346139516817129977129559998907433019529118309273645936876445843257028384721559075171417190140249338540106230102085042205523443530448058947492918482403552571370080465831801125027028866450145627776276537373038823695442895337740761654592732388670984924307363955748947917705926814267253322700042240555657335632387235298765650221420081421154486592746199217229716486921005774602121313838739514856912782832765572681677636092788439459027221314710581916449964208746426261194425701567832588677314724909290628240232595607951614228393392498789108771803024989028286894278524476013541415711284469031463678451311661999219148581072229408323597162591988087752307057882932166701360152908964741982051975420217331465165710053629583954802959398735166828226644006936191260272857561518856266599246938483178948280661245875092390654544977579394819269150819480028907662524977695725228707736488690686355896771861562000375240420743033580073917970514636931148286586301753799586599182924785556771469708064256127075990592656142415678262915833048025620809498516890574757826715937106928828578972851534339631855754322584221954308130131483967787196503222977985796267658655696829087194127785739974519116695366213566065412788384061991155714708711240208039425062277851422845619286392016820095725518542246310314280115504207661439433636339462595847237825758576920146982842642913666373930656569396373232004448627042560041337684175752624671167580788662979822242343759277869083356484407689928413869343475106807428200412910435506988861071825878030027055820800742620163451246824921158552251303706679310435691416792060562089603721733483881351766397385727524288069771518653632296039336166392085278049896035356692509831628342734168733611553331712007424583980098188588883247816059059567720264126293513695326664707600688182642831917369946404235749219392619160556273790084142156782962230633941940971024776267074826656847646140205041682568746405798738248887034424104351931702063387462703686589148329500850166099373629052846041569182220719982911462857431875142362651798832218312430659586790925276714638609879614536672166625724822793179872812447885582644884120628952128121957999714195133988713929361022266220238612338313977392069017276064110802957004614021470017224622106723771230955467992468990811797966705579862549244227687991645273572780099226897898834941459660098345627035026016253861677428720983416672691933903073778505213806605006553164682846562412559073158477010439910521756196620237670307717159720572349525779831324710955645136222429957454593523722062696852766878877077704359362461917034612802336214460506048376453354256211339498949851608614354769526059236893522577970685670157789700296733314455229225155506846758264818714242701976217967960126799227402348586200943103192482498608537307174762455224977361505383981948166119668280672950648209879321454221121615957090387376602793638708671984532748128490819564420154724284274441057446971256428099713538021944767880152654881688255203393695297646501911827383307973943010204552443602265967973402577871613174027353814354765457637802525405624721467504465821908942888514777741861801927529983516743393959944845916931182629507097823493562896443699974006756923213524567246942722039839237244249854906692345077882444324943402449482008738017341564063859008002880851290020610211252447099473247523474460769289244089939757670703629662522737507083239460793358288615100388174542275065471054637790582419642336849381088931398471587527036825132141249985401297266787543525075033584253571270710594227646292127786295412319653091400954009408392322960740789287401818484139855544108133277394313469441809835733007358016225477146862285637723430780035532531926616138704500892238969369102862908525484295865151632496048388978436517553736618994428947748458639092035723958353936229800541861827310752907231767769316413462940204584660898562864970717904447333510122176808809248916050533116680736982281989320245557101141569869177326417992124995868016549160762412699274357634853962876141681560740166765453437328041079471764254815336833858340536110584589219369196763267730094415815059348079695276123806616455350202007065752759396766392951045061107599669395431379486580552280293418344235249942775981873995488149822832247810201732223079168202437275041119001038620525759408486363319837469678222785250961296218112467368593586557221159797200222723034996846470986862426548766579742658418178061499772833142952301415293381156837729965272761831593178363682758528339960115855328147199812940285274416307886361880295506941774776335231721226838721963469300554110945288517792285380652682560700093138592555290645891710803112640027527483442763060372384415213208417873093653636341977956932821755387915005618313510189480027187734324922646964726514402361907001829868605485886482063171066561610424759242317593487741074064412152905563497528819927362354311181665567822316509939558066449661457961219002119640173341563422818610780189140150264842402871806451951051637559115640382313526305614096911651212740772156405002344233216139558933084958602381067616439576443831066075593830688713329509421360405951211254038732448719315707218714411145970189121861926486465810562835446960214854048905636553970404659129023473284713809707007376015192872573800039014257699874804636998634845522798894583925102366395691527462785561341830123439362403543505847438577263419650019061106886830278194771696741794999995234732651563042844967955972358549027577881946714053954897276121093885890038807502479200073781555708341693767587600438125687831282490041212515610877549000331925887199731238052950553179755631515807505767537140109656063875548845363352762297383071771032526519529655292787398969033383139394996231286076549758860420938161732764051981513051364379817867004970296505213271680143640038705170459807825666401144221423646856100078332117349760212794911076531726602402548230098683657648370643026258241323362812035841402535369200854899065473087415457193291829602393726386841813341492775709525267383293731669326621716520982594105070937182774706703011022622980822780739729902572974334609324300094145605232146896197610772187890996804234275987646771068402053642304600737867339951308508043179615479100759761585328904735280846364091045220332156129945545558662815458855120112987265456600656860626406225429825481635526153403804427637563740692104196856668685146312981153607826691216658299105803457361044943793463360674076194294900430048236069667439017723419247298892304417274195025802593312387310313385231318486437652029048419953880260216300233499113548008802471057709806346004480526619364784844095390507609379992148160427202446521159973024824351700322941897343345916113610033181166548747633601349783323644280554077437296824459015124763133340205313167898050814838356659145989780186729372594965178918128936219550319190059975058099630624759767049224254376796813930988639988254387799223412519458899097462244784141063152253230706039123105496480297065672100698823417213713142893637283979927875627497371207479173262046188110506514787014695633782868006713039659495863883285570360711362199165068565544666516402942954014399908283383308560185563090485884850206332975424415383369468529899774642131936109550814621099655140049973576046225641674218723266265506696254798863132635449811301147930394572423399810646438770064624752883914429139215529892376450977420412584698324229070924773434284582857732891602835312436175476081465142469420824993084578668501314803171109012961542774750082491934988451079612515535808194009108002297735735075736227071669045663855836679923082801691050306854815814674446179971479887500950602058068660964087289896707204446163506820294398132113423360737026315914910748784657322590503054684138062783397199946497937956887315049027506596718550731990928454007485117667788032812794092386018176064298506416621704688790338877413114514911862879711977026307706122802943471063783723280788249678182705112065007676293535309453038314092845407041304691662144993853962282799661172887674622630232010805694195108965988403397116720531410250379973649122386309314158938845883072484161873106243163026197910037241405588086505174735664648930531883906076786330972627941139143001640162062138813000942573764722830954971520986420640900696334372598044977426981111829692578211493094379366358651042357742271332599341533304217744193878684119395666038484989869116634092723793320142902870877518231430405987239137207996384769603637843563559483725506471752714537005706303787082810695437788720534080028307303911020686208616226350371557808684663583937365985863385687265832240863867227800501145769707184142225438868249986711770962804113028873980318758838850948462118812235956169368622340611647358205953334430102416838997533853557810639394459617035104214352359503814596491943288747129800215685478496607707561052581641199609806274733411753083323277464199991301035304474359762443060132316744225876987565724050630780978422062220730276645010527329183786589021647718609252271502887561045726322922318906234260286112254993475739297605854324684998690030907054131534004632828967523049569301986882059790031826104044434845487331090366299523407014390046528666260374442574130745992340109031228944944703422335799151197797905130025284035087607944039620319800824873300220842744663254383034078713667713681552403703581720421674105670249060592321838194823476041715182287435767071026886512104573661024855104765332167239052271001528281987273886175415161450391517834082452717454485965566556382045688981437337193706768460952514032571454748196929111619487963807787568172986916710287398325361798060431395504533575279572490010091907832318497194512869223425226553910587650207520385148927661330250006687120123871649197846257158939897382670477697186743921968814027404667447352383670002557370543387656289037317770613695387282323935106212282543485937207300311646219143866342742078267214827448099436794051684988542700642784847778240755870708491397525156149419822177147208044372123233482417189663982788149895277054830795495082779431886427978573384915428326467489251764051832339365751190892952039980770219859875101899866274681344051837604007525825077036386015771974139050221946171631184983856870542820185822122147680305545910623418243724604457226399381384871238014506084278986524258535469243331576411174159423746040397773072716404657658127340570653680768190608205814962114596867117466645312210787184600735427016094465695964867507020334223222199218172998234686116581190293064638180644048242314991977935137952664373475424315390504144630798092843166134441765288944820353100675450871971338972590163443713705813400639668478456794036921346528119549083968531574990373108212708799819248311811614035361196885635871389791215500254215911706996374037435611859316457891915492826736121021745260130549488205784548832361173986489803957339489346356068959679205824640594533656207761005209906974674269643403970171918734058392147345506189330679012497506490544432921072810245374846733010898554502011259015157445709984634231199242436231878557405858081278305291662496362831202503738150577242163849576032504079565983299382093583887255979636942965780332115600887433181781439354254387918149764787879596503476697954541432700395287381080961822266521589556392069483988460246737851047316155584956008772475498083554909928908274359068526631800256734249464041093122158909463415856024856650141425533713271479625688939486550526306599210322333689821232916469966190869648934118673543945718310187150004213797273332788529314584930938870960117205755103432679720814498244475145271669910372144076496941063069278427332373816212394596883598663980272320147059520491144174413956214995762992333544458984106868717985047611116389261996151737419905369753665548192463769352630294981836155812904875006904539261919506900668438807050456010359463290115895349685304590437283895899058677256340856768497919461632704383079015780323603820485966362611334000206712763886727178567468641256776383080369955396148618165594115610457556924396319929590102591678605757904417577575120269570906150978134113953393308724392353624102365031966589678567296115360845935029160814245716086263261328427020767969074044893822911677301870319238150113815304643837854385892675482488313528123018883304247262509878106451776324986740903662895101873023147370497446351009108394034936449748876830161347619315389713936398261435380680659333318174469593849128297619653381346099917271510881946512072883918356884595400702824668873345321571791854080068622917960115804902732030355287382556930816905007651209604240058180640786867221145889482408883694434976733958829910529036301997293363001851515779634556653574323816269405696321271642587315807453884813362383740957220701238969998290144381263636830797211203019678299207558432957740307503717898586956483674698604672162484709319088513844236365989611193655840389891175249797524109838726726672385654644707059108301772372017189815878172011857913448639046985033783071981656678572657123567357433650753893186227838021598392677566485423446327759720239226931599048218587294918225226874481442472003609189130430487432314853028459160632655077408865426791238942863056079119445824845988739427561856782063032682054200572145652346712556923361032939889118530760886839622449895428506884527493748463836502617385953906896124784444675858387347412330205227808659731661264561764374974707139725666456919134993372595043644695339946488968029322587836252405039994379466490055025473459628744934502571139363565066933272693254995316335897366465875088759651082754886385896709899968050850856090789830814783232018074275859184745548286512922795054524977257215064645697654529087234928870345376590806775814696438753660266916955778871651785499150478389320440745572278204057837387394557493782746455816488234105176653818481073826576192660088025525371874921194793281873651797967455867947643878309064586153400739915880090248215094055655318598209871776706948801349081731766285554985896432496677971582864036004308426618150914126192737468038125334910439161573284160860017001527628798530097382522868597123347059138080904568429603782024824465821125447474762406567803967956200076005115509491870221366944280757274794777664345574563490125643982224633083869885042276679008939350434904833560449117215934925386722328532578396116521002171934206118615963786199312142565369993442478322023014646500138491183150244673850443258172732254554361396554254247965672049197853903670621377857034981481441218189874866859216406680235698569560092656940112113621124933310386906878056521446888645272830600261345782449341169352911091004558702403485765848768546353694834330795573691473479581946391648286570407064510181026494817188762527962687987344231035330859444419672685985422986931804602456341521346213076097991189567497494279746730630592701147050686348816904197265841070221139420933168834758689292203878103219015237721736581813241150870820904393728724256121637488685610856106172741701462452473218528928508871335475779376379791399899845827022966136681332065428629779363581490484962052763641972200415647857374895783950431950487256999541326905186238215268529951072100054921381401191125847644204805129303173812201705508277722279787081173672944269866517709230278305791604679747448890724241634770449292720560963011316358953346250766785764326366834752972764018275505765207866436589696284669466116913628771077698310893460370608894624768291967621598832214543497509357405266812273036763622759474463189177091825258935550062213010688602704013652553747504246339596211186519907864797251673362421057328140468611311866961999937236869635830988130598628411956638429740761378095485382771928178597122522884738019278482619562659273675573039176768161096025567739770209861390323665594840276876769258676074616598269010951206356217502974326247607551671927386843818609536618216131983589722413434431811813712875410139734760437336081573112508661352458431006738416052470436892324911830555490990085311308143074331036961646665741198033857191986891100386867420553214431673368923425844889537773478444969682964113728122140674416040560445118717904977885459122931323895551125677216453572470347419196705892778432483125060100157138943782197713798801987963686299173964907139873570173328320865794749423894645096894357959761155059449584450469370285655233031782768967495619759544527472988906741521704518345731481218309009889367068021630410467264271898198589480513655925176354699139371907467690135010897850038378599624705240569403511031366228244386091061091211989441392376445558231320255981033778715182767881810928772621295347570564906199625830742525774346206755455776022830225837835095023388850606276347136989003011560192747091625403089861882397687404524601128827691925283220024333840669426652073557168820513572891034522749405064348054132810407955229102110529145278798227719801180263011748527706285809506202101005744404932777378767152471359112195923269627851455076868989609007485590355618603647917259325390769222575448385991928120871761040615065578329882453717715248943446679344525455994530870735991743663781825326995820444872883075734050971315423923688945794874994128502853122860942184309529057608278151375428719381866902198075305041360522561486030741603387113892096669366201620114534675333253039909140892118553320508431569999777956014796143832008812012234897755036201045267439789725312142137039936491810689161367853434232325136788364240567239764799499698485947906369199215162814805756189349609565612506266503354460164234359089565372887187446656529949756686971222905554014731541672342324965878220208457879440788222097046387072731498410403388862299101823606938388501527720931297104170134890239221730224376853759926104076609094555542714709177486619615639329703691461282747113491346871848001102995661069180494796158269956840125792402406327510835111145044372107684981002096104209392146159594687297406677706029652874614890830374601217223795935807683289746589382084372211200142277514383297688510781853291589644923436948176465718955079670610947069150252372915416896069863763615176091864541317166887268314311222136131075653485633777801428585075149669058000007054427654838010494173035398667040383482890831539144940498113116514756138096886136043225948214018179022658792016288452248115343898738661044200119988132912236559279839010090633008677611818280925461682148860246705953304940313619615831431896202828384162410591621781524452842753011751654972194217185251067582165547937971950276338793194427357002769067821660569659560957733365943163796704256803613883641964776403207033639414631769826883899030880806854313729734144187116204013719241551184085858287127614701261082920522024449048326094922567264949796456320806086261944823132893433848720771474441914413157745121153430804770589993466322935397430467744206424482107678189823254301532698452044281005303631712145310389086591630077447640772145063741010726399736713189581131084910739150107508766865539696597609472592362509048129661783506357733431198090363230437670853367041785478144460627131403161908519342882254009880129837976539520965970282437300673573135461515282711110663080541127049015874475229716648337496100692835805195808220028634478012349276832823044254033693874404205977550758174488101223259831407061008507988997691735781166114450033438897996803219280115968751521263386262568302030227437704671096762900932009732263891145990095654643530672036854594057650000397873502890355824310514980493416106743596461589385191053687331029084720478672744827470667020536592758862460138690327167259926294526269186816343687990925032439455670535693102062399082614650764272464237751039279970625184260338874500578722759925966847825348774415267522026025658164086887645362827699562226335629277219181512646761039839567791310806061695725739447325109128541470496544315081171902575093776260622773169980733052173224543406254466543368666850686696974590981238050857615383406059982354528594107526150927023402565430433372135495505241435376517277461271097997709576164595485550980163445840617010392871932693404827224094018035339671699452687953736452791290643553206389999027736226394982032188046845038580256003616124562057278893823213865499024450129370180854851452284420302192264628385619207179458834256683596935533005171928377696744733118377836785629118151900031084518969786469327564624056516404443647278203715609872144363028137549417210679635869263392186984397527924565491882677849939456026331006206015527099523128613643000405764751861040618489955348875191242844410331694536414039459776012302269608105693039590994652073202519829485950083936235311337453772789275362856933113557634885323614535436384216930198673649322009569437748457856870485677835501748454029809288111939001884025723194987214415012838904735201671039948413814081116377839773856632724179544411582702680894914350800387920789546907993834132205137061564569237585379223287734147268044643157002096046123458916292799929034785871284887767130893092583924142398722395472826088805192162908686619871599124311546201355541835485378232147788272581293344814181328198778403929205638330102925329747486119380205643413779868863504205180291789833049840224348475046096114230061189349009484606714208909136206941239745533860488840249295710202556069044999597723086258161575347046244554525938754795850862661952281829262009133973491935530618940531046545965618175000333721808004318283536954299446422508661587814098952044840620954964899308941031763417834695211948034053961771933852722997137268634251829523917948842092835356388505248261235711998170433712159773176137731953728859262388241453031698708062281735115800023429651378787370754622200936048179286877834703627519236686023831295514194190356266504654188637806574639932425052052127371844837446212987920608182158411970614527760273068062460220338200796064127043990378413108651491466750409127510169128833507398904420541805097638976832158096098829062846814664885661819471938749886365960701728784601526952510132418888121409442683228232003723677493903574024454303497343285878434333891421602257652855843858985391578360391350487242843201264968450646236870262742644573569041252363019888947225211837765153535540513236452964005818862186388438938163676480685427680574061697447892605790285051877525117071850096348563308066680833144829805165918481359738120174057033902412364848020166862162394459548413332033024493589806336519588698228991408670858922435212530160264582818279590889252037067477253065230036083370691386798365261492958434673800498823529270811150445585394483784945728038009295469028516972449880401384760755957818442564900576704207273300438381309513744615330204769072768626426343613137015240699492302514784320572128136687927115953875824765961987653695775966158825341948412866672332215614709389086134102516598333236341647854867004529831091305843595158628227456621566248587114563456225970269915203771197002163788152078144808028214068694645725582467998927784931577292736035836261567643904843327804873201940682151159162561676111163925220821339904352612368268134222628539834188907900648723942302029068699342273524113306468046986736190539247175103388362896815057596837768334140484923666227397757318939350693044282536756553647146620342682163536493279633720659468229502624185740580598034538954857364710924811469317379745692939046993873520363276384216235405621169380978042547029929060046504615176870739245373607035111090021895182004882548850122643280060339968670876791674698711269744840726956216281732590476323514295245324245968706444294289287627561936502891303096757491961905986986128920900473516102319277732867572765483891396776984632371502605313672704798367736495760669205005589417586194461329452981209427318420780887459091240131278926087412302070976516993747805553052664535855643120431287386707776131973852876405593160130041491586601001383396415660788578915478602997777934990495751320501819800324615934939919161620170927174306854748791496994194114297480313913221887488953447896277529910097830213279791252319656725432679877604453929793126258268615568288486921789678382210360962736247838445503096536387939991324825237329973378340904843374591174288150420036602438851651980182179773159613108139292445284189866312912362242150552855103397703186988934291419706510795436518039473849565211881130275892167666979200513116879312394875178642332502129459167797564812902101852562331430403962345874622550049732514184237750331694570165347108801815432115924202534496103474228715361818724528076419515068948569686402670344096321177221844880772758788058500759904999722605812449836973331113184212818708401847956030877357952591442010867688789623223902935262920248838502459427441498289933212396666979686443484176835585112704416189734855755286217163255363306143173601017285551135254062975326051706958171636649225800862073956024382040225018114313966630143729814555803738631127917848154160584937059617155842380732245517234747518672472332928811967771334999064426288023539777092471367227761030841344477373072966056362620196421101240885213957046304350913620759253255733381011208037390221186829874114372367491812744299405686284859350819409327045032495774371735887840164324865315000133764668474276427734612784449695369555700036715696747466443771582395267090885541848680362935717102879098835685746939148651732114736941333155506287954433674192118409817760708410383894771209165726916954044520486966081278211926803110341829602205974125269996931417399475361394655000774850833109247517617124837808542406522841711524504760714635697954945245029002647884537124940576552752195409350371619521900596747177932844032345863782416146456625752255501392410503953233403310142993299369868237216709783506420490511435813875024865564536544073079181149566471590612500060592652216619731155669865770954648631881437669790727310362932365497004246320291276264567624858202926684895201172414403143612779209712021197382470553720986564966786997770625283059092764740606380294436278054683935517393336904432542687235491347845572237913134065329189996030896899723694179559791524033169043141118071372088665813058329989174878453201044095118935491649737080211421710907380643329404027062977795376038964136909099115151937978503854291821938566559821671307741463202917788678889780744167275077371775519441339443093109445083766460110183752855026597896683001672426824634393994865685117726497052096965879949464084738084634728013291558032561557573826066513363894405205691447436675592177747713285961158698030205163153503303015467522278069227942691702058427505570167921315250859002738227146946063881623923380134183181097609052314189860413871662009351185265888943867880494038381575412213522153948504704669403184795494507591702030229192541107551965406778865679090040705245103003749192978945784111589053227544442685817484832435491667355386908096002978356321462562199107822658291947526873872939098013594833554572802809830113049814496004108429306883581995924454674304782775944378891188262229436244255967717897270259874930625109252609481773713640589509604948631370556209650993080652075030538936806844126918854752606210311258918788719671135340967837302830951203082855919541127338594018737749904596461539022045162883922886139983750501690553643303128119159921969185347096976228668396616486259936568627483559309537458479023066115045806291778631135823725849494289698841567234777248783853889801125221153007579975864885311010687833881912508510783710478606825553117031516935097243869817554043948019905935492967752179732687205245659884101819867308001275717226082656645007492017718326366926470076704927348157771996318480414794861724244900791261966084740437077953530912435727380658533466730220933727419860785078249155393146241571237666531903599307564928373483137002928052298391474131135907908190733586021643864893538087792749112384334995597207803164680759998656512903696361752139568479058180440816461316869883766552472643070889549812257964986820586278742557532762188928346198420366924827595021704187257299337689388515706995966296220736389538617510872499803286518509919891913566913176469829415041352854634339821588779812842863830805048021453133098018545704599612583197339698585704460953046827657800594590096321434157397428324480987987918604898997244257382409935917992601342949413992094489627651526742804540542834003150983997295138596848111767922529193580838237569962746612722126615427133443732115196876381452684799381536413123750605688804983722728709139932403733825380951768176517637452817626624410273897422603601689573485286582384972317797428353798800754059946480112988044787998028297264955519210458051976753421312934684311105038702923225390301186403286659737839651283326887581345014773810977090914823132871688826598384650578868185057212810880787505669607168727563776190296623937083357467534935162523274199505196803574053275461622284536499327233623780898024052572087482761208050402031200404188880736643923472216005507673521099794737637928835349427242789659399933927494039859714767482841270970578532120598857621827128281891418836727002977797890077742247283664039772852473239632262355806884555076425462119551988486384985286976449752122706047017583922287427341870177712413981042190117761602225101147250811494507195259270083236546366225742038904521238044948778356254293840170322635472499616329419298625187267030499578473365372994188417448805386414488937238790742696272569814735904540170426482682227684714453672882832328414395739915193761793460720790264012897235759527850615275047334852709621438745717237103963242041299238562175146695399348394075446102681228458026622382869538583226591455111650763716920275510399586007063952150132097207022594338132775740529215444485696868317608710488132584623027096640331348628148987642550857973750737615058278178078002029009470026067173217191422201934568869071668516305516360975650936199049495833296894691316112494155304568744683461108473972648249461355549038095848045539609988673559224251824758818494689185752078054101530380753155475843136218969266407125211968322673064391822694930433846534147144200940100328881931220067412148667493075353268760246386171095995827152629093914723071659748076800559512810793503709123749030833761732837188752591055883754012206281394088605808945989787495736919857115077499217498534629306018945342838277699533234881024612476313396391565281168876561013425923074131481092496381614237051097109418617026442568491589693784769556855992118085125585690262040166592608668777059234240347330195988694094682908314191240724886907815675248787119239706687437908517451470339710355097346929076848369876824328159917795720730121946758352218824459304815872529733424846897914506645692453568097271548128051995885322783924612103475635140199474230780513871188700681681162083553895192832487769531913736255811381754349174816082915534791377714290362634695006279480108974517023991467845065919281370771822371662218952536312013935164995601400011308444067660174868577556282984792641327116444812590298177162301537839886987208668983723125463041446367370029786737968291065790495745388661436736114139799511425582871821076018259045361950286044450728387051542968030390462758239316100513168015858061747530030959947883476019653136238980634593983498393905945276077926264254765669988138974487365099650991051525613845114541935866669768318250112849503353703265638648974849246211839607752733164535980437002261437160120387083842198360483442090615922956577718779334700003825062731446776260657797817290999115112376528678852078486830113678581924927066617272133207866313895847515258083578775235145231419959001606548987350723865546119197740741687532655057267287909907586311278285523152534772635838122628177657178489175838550166689683927523445679773582182095706651292463270524966245871808678130939247646036003589942825719912000575282952410879948299796057214316733434100477000540381491415960405429828297289608703362791631402687163190021475911043018399241091087723579291350032587985308664993340682107499023703898933371351477565545895523762036052038875269817628710399618753800369578606492978394641691567118226824641438029047876655885219804250952296626404411517356048237173826359170716516632459756988260938356957829153388689118135172150875529765154672679191889348899256903163004421068267150314552810303642564582088782256625152643091105772747113969620110893207441639035875903015336117662377859219947974412830386372819440287356247310110833834008701573331592493726676938122227643738342224013890645964646858951005047938212854969212064285549563844502099306376630756249064195416427133044156116959207024027249779104856579670934354922395283468743424188444164888147689034415049764476950811159276930444406323588746271665439732380697876971564522121052706768795667347806506172106991312838145009161396135162488607087929818383689972405862859352165578816708177412222363221127728490729705567195215250353382325263978113866597634892466692023403168255578259217495749719932142999503181962806400496639710859824654336117985769032728750994875126136252138874283270751608922688121630069461665033291965474149332803933754256988523716354908461487013949696315031211725337338690249098258242408643632324152635001112015174400985465715613113985818750406900499307624053028725197700545769103272878184808270437739334129395628272144434817617779132620992057797222382965070090627159137383194625887311118031954908160196145550890311170378259448828288584943001852124113334465627589262840920712834220417482759396876055265045457913602825719235235347172655305521115084982724974206655505693451922779833461685686778970114974025082930959211444727712476792391492271062714213283833564552721007381917008306811057260819824677625655760307648160902029082070120167701488434739581762560639843551911487268780358196053024322234183551561183035771580842876971218494167545467977089478921198513789511034779738647200488771553132062350630568074742271980878207432317645406024145347131963019746548655606049158032007260066967270165890698045834490980475014963595719929264079680780821453888047087952269023141223873334631518569837059655177278792155982941833007264782365096571438109212996507262448670570981754489726571773699850573370783190080387311763264219975541646744760054146258150871504530583502786912612647086581799344657289755918156444606356515910269500146221042840461285239975385138036382670203977347000790926850384727053763550499336782082100526855503354530240443659007568941884077318997260291640796861933158063504125018530124620397193412699205852696862340306192886480738655410417594356107672320247344578017080584197370182819464671203692818821131678752313659733308717462305137313219993337171276031004039613792023500110835169913883863807463139748934198103780680898090365261814296825785071827488111086549773331258843581299647195714422920789640955540888310035975495510029309059423711154288976161061607774222109715814024699302786626788550118749799040277038435264605868240757554119729878772606921858320822531408179070951087848460668259768338755006798507341391184659190625649663522482919968984416454765904004252321621932822513559282405166251265455366270745770110010291102046904543297356721093290633544324459997239094127654275087245042911383655983649606489133989159980540172945461066455543853524258377488764135009412759316482984836853945942310323280807543044008529471901281708485752006616028498557236445144802597472749887955976318047552011347510942549564186804438207780551406208502018346305156424623422404431967707631332272640064350003327119027533631734716032398627651305261517694390251173333795567902171464429483601788225322752970540665692736190795872534439781239855049167303674508288383484128256585678983850861900200299191363124981938833036172140660098204627719586014014608925607679684270934066477381859957780778276763705287754346280674400087101876764929307276873956862204182388673990980540308526402079764839837866841735228834789148404176332949249006474668210621164331848162474108551432263205811299300933514488755221897406457897473195220379774141470069162339132008548519051307564518218461344266726117537797076699378923741305579510768380628931965873382729126100413398106856551916180755897444428826834743612178226471703650780523914694996353845443162022731405787319070118119362357027419091869488779817430998976141064984494897909022875805808872953038884329122634972042157949539485121341774973572974034484332913316109871987179561296277102084053873353800378214939901408175913579231458707426016766439964626808135435130651139189438680930417141252574789025677028890392843703960854241455504722308014561702139289039944058103861345314253755349775227232801183706237348532500810781372044253623312284833020446360267847326945323270101370783137186969242754104422441313024152849555187810654398129083706939637841925559171159166803853220147637274508736023964369884107780831621205886698385936290065028857605026549305374947070613797127320896691996293775888054167715813666449494494003642722350641504990521892487421595505236581773028106961349610478691297279115418299581976942262667424509882404985857496234317448012226512989802635281085856939016565149812852812372274247109410458301562862548374150633021563693934087401973229080750887509616812268650518565758356344881408477383047790738715593563671064556854284971277934962117694447195321457799898076755517368824630543912775864789145325877594724754026620196928659741802270579592679511353807797381251899251396545825048212645630227855192899582766143626591064327860855309629760502639121850846269840874989463291377864301444031429815468333323684456687934507569523251928593643804674658765169982210760578639209757935404342586011716912802237838229399888730214810632408609809552431140877671015635039983414299258740170994087119651383874064778372280094699061048793865210471121025506656300518270186427966524216902201608254990969024559467363855455904580129779195950094523179609284154347106629571001906152793662307598501682954841721103267403879123582786401887934008131220091635215968097164516304796997963350987466560629776463643711510467939255375734498148274081060655230416321027816107783960101454902135712148122444816289212310099927809879949980484970589178790954112898648657570167567246203104040244809573468183452911607384322390987504834876430813957238754744818792631862815678469518699661929425832831588251854885840717392075590675460167126096555158708562838964079955570075919274574806825551880872745249614784153007400607480432334606139895826423568353005841135585371710022968942318093844240062184418836594083830569006907440280808629626347734662540297961963422999325130141410367017164690855006279651303635182690831541406996692432260674743610389752227929116440849184175025084885513585212766240798614235966417833609797310253036994728207070074818814121560646486977860194050475998731450949533610363188743760954973095546948186749200719206787740645104490099682323510456161313873473614630288780846477158801393529400433891385479999147481080276986066430619554597148948823733266559839168535842060283834935410623041095538342809699583041597848536188511545368821146242910839053385365380464716791360053854034174513374240314000349769656053568638789336295956977220539249060137023216779363138586478477203562914686285681799300671243618193137510165756062138976580576757043720837760362736461988756274481509976655443032467700597459397009868246798509294976663629001026792238753142819857417741873361198128833571144034818099645852888998858905702975026708401744830729879515120651038989049459253455330461679422110220419127923601440955624958611043390895667906340241611017502915883274840779616669881445706076022031648949053354621431413673041183740681223683723925673360867476901341630929475562034458249567684411183393510988834475425316957703369874625263227107415728218369862686923790052013136936578131450596689687335516884520852412068113778023686022781119551920864647150156768401216056146554320115646167760326963879831637349252731089271090183884218233261207242578667149088161191523442513739548271837260291951863159569983924598237607167899673166650394528065350056947647257120794645155300527609588845983839577387134526531860644671183721432845550754625552240632500030670114956277801196462885787094887204214012268946471873453441426885315123270273248513906122139018529502344633082673917033318725831287251929939815186533959767545977095593697955776972450137927960623032254478634916282254085539294300929680494313026815732049875850434913124219384980143979078423797610711201825173854609648312354550734868041008568659372945617518079088461177235012000404811378712828240504396596154440591971032139718093617018541594146421845275722861001212210599438705922827809760718883360931868520985195868166724925760659473567043617245040597872267127943930981872681462723484682400386487697617425677382615643850841832043758819301659627293912144952913207405734167243977439380309059152043358641419985594370041403891143286946959245246982168848998386198773865640389295288878467095978239177745647644429742671598216584750125072207807735863439257770624054853592156770354643076330907783576285105109804730383634289911085038042375598741221509486257249024362205462382971271706077039905949433909838847424075220963935250255307485612809464639176960575150226491676975641877957773195419198857671532438094299335236080799793102738142746481549252720536722510748261886244206467460723657137868590477808385104310423803318310187066048689263722338378049397033171569150157466999857927751107606269925060786955983386166210570372249214783113200067405731799732505405608239497154441146897633463190343985460753849748024360890501664829011195474638110270681826456127297774578583820427844593090452999557184773351290347621377187673622823741786438734593789785412461568759944410147363584779583648287185000865583574240641661921353762117416971033041873230364423757890537832061868729165847726096087478285729883435147488495979953919403918868546794978288966663052925049376602074616519055787740377553491888296198286300451725781332596975558400257872375615063346168742280785215796048336233178876187241645152661279975731042967212304813027044476718204354431262543051046277277915410897866371724365843329523136259185711132706823628049103010126170569995022375127988479192619336994291233215088195079040766348156035678427261510385118839971469316817365011352650290585131789156597601732223632722966311441847511222056245227724398971303601763133931636492605189954814081095772760946709182605793914868448656172158525924181574635785238664846726130170559640733140654009819575416797557868654265027220528309193643413650743423137178440821915477173962389168594020845449845389315589644746710782522586661517644586624832355656233540766839212770487069048135856553458353137557756939030770517879182716248062112568562968196177333235019558253803908834334032757270238885537624513852583200719824013369418969596313403449632165009204987816980529533522798619205608522943663908900742984534031639138730909179670428725155541771975912105439771708991218749192459758310465689357615586180452694067381069583875151300590873260873388025742137744952681589913288552926690052119572865713898589397033563325826866698975064887598818062308711890115989652139701726438130925635964155798659970980450305985377918083627021004145963619461708999181043036100487041182486405094779239279434238422885533675566527684932177020104658743369614589999586911857042480796722479050250496022340852514534409676566327397977684360951757820579245697211979168896573382994121286599147471434565992605440871711263588067006220646100763879000956654682001282800428941277407333662560772347088860607733300525601907520565261537295525883256172555896141682534325915905815698152621179582454994087298296615727386447409298028882044181239502457921499695389989303769248917281555153992170290412467157271516499251924846085399590387512338791345410578752120761271752449627654626926722414820275101363706838304301840998198950738321185647807109976802927508899198488506248834395654172836740994772035142865973859622695664632521506304902515220914439761823828919443417785611173466349245196353670503263902178616814230218082652585472884499725732591228778937677672021484171197555791251290940869464944303231930304373738864356485424905925227870695895128696851161213913800992088265060398218363714002053034145252330226691899633022287225188264791827895074261717909382988369412240203876723522851741662106096572599571635436928549022103827269997694813604233526036397349599164092472500756361978715591892027322253366565678921115832879124732040518669351732468430578918195209519418715188110995261494312565706168388715926560602382078072350642949917980421492348104867764781428017879553195938939976243276302424837590199128889688489867237482566763460361570457884494408723969483662233337061561311029290152429459457572279576470350418250871919824750462635118478266343256105386361826847838919848343745615786417110055455854516489670938669710554941810289751758574226919929587809282646652978355263396599775456372409255202672164659040947252988623600956740867322211009192546658753186935601248122124863713921068355226701034230023890589985805686793305963539297488117994383898448921734699345318318980772902538761120542780508967510620265374926382798102554075769816545215257771223739685924519414548430428373981320893313117200559057957586763508348966995147748029340881837798538764503765995302719326449687374930106484122681450524670569268464198327768137943410301744322889086859211837469279215632602244813406601393105668435469616750517034215656488072444742929873256244209680773885804255513828634545906649739955710135169913121904661170916969868202576837291101034246947231550312902622208695219628093221188087747657658727413342045612941365490933207065401999086021975011493806390649133757500926404049478327203546483351051467921162388109624968468364549786159594723504757091802037686502098414014634359772622702480619967810032392938676804762131788435429394384023716481006921863270980723357999599257511476157016788430541008797542940835248957516147756470705246634154050992434851467788466742478395927882137252691539321024434927871274672634875217740878009691629439595545087660147352201746825230168462037951422358545030933405554134965445497237872853620306592105029252612732077595204120122819754882487645198554841864786177153119788118262028380292504138407819122773037130196335725496942716951489282438563380659232633627118164395191097726938257662795758637255327979784756850314306818379898098192550828583890133659941387324952132446581698892152867031498770863441668173352028028902040321216467795505899109546066674631042395026879949712344627285172033712709989626698142301409586545357005525401627131498969072585755345271580160217542968849282237246159610746804356186425096186100847856842334823504209913150116615343532510377843783855832852076543333333134706998274122014951367053406957391402361410263867137056509717183111473400266797225218651632290803731361619778950343073580189754983188522951039190423735218181317233765854566323390334028151647969494418746567329145884215223436768301106992521501891752355461608797745455960974374288268098133967444284242970458416932990729104411282876230222767758884194561224085748955465422016650588965432408610266271394367191340001563769771254976434670028096807817728036006068868258891390019961978498887873828883122336891993933339370726346595416768375488107476754023972690012653125763389509989544986516141256109717521494852835520940763374136305346277840506220705099779207913684820995391453665750800795359664981291685020975373584601359536970966317569748976384421676296531757699649853059125901664929327947557446864362508855418154430486302808122213819260155187577249666949150571128239133922613321831515583307561719923063450244855024383606384268886975466890697557826792567753806865920584438725717427922444634871878961341377880077311472238463253249510635806857272791375687208491716638859835997254152498510960995653871245638277848271004443060232419934722720070173811972323237508411416483630407324746483900640762235472748303313641654035979552523378830498069925843328727765609719279605058429877055954717897758355257854018881157411899599881480577827059281857018790746125821220213632277895416634422522167967791508882993660320615424240687142021211774678630385168251545310943595169609517416500775176058245752999105108384753110545265847321359034025385586731351069796749657568926951642804022376913012672319857553756285062159227411047414449199857713026898782290133946348395702263530487540289283845094387919398245744435548577570864930691599694187071381050796463121701386875329961448733337889309405877802345830143128333733982726984594774611217762221575062965906569545479644852664625703018752529706512816581608501896987299731586751782174786395168019650727520439238403859098427047293598548422759954573220699727187802821641045295186200201737066414959766558758388850840753175075701151419225546584264741320368035512724839746423357957548194661872305181271907545485513356489311563395437014462932132471471670655917243013874161904618082543286445911645678757030055970114712401820819862707564921228841321701154116214742969199599231193491401170698526992151712403776469701835898306217585914359593791772893955044317339418081070409870728924166464170821760477341017911968850213851246643346439777994845478844772085348800826748465987180230255402073516010160284924716648838130048831481353333641722906905257145196715842272950874732535943853114034629698020719473761511982509168953374034044631980289316620751257726975944507829562026364535267890162061995121034524026370300080395805294005000619749928218758185274325612410445303009230756212699649446775501306093704264798272876829169284751220560153426003408984168374245934139350803719813321726633257355265662596764215785811287267127627053630462639715613722069039878045130751714451260506364830827801215205163370024478497428439816041573084622668735065987128165007688994449798950711693049744888367409915708541802145025935322017871863826248304412676176356583123826936163844978669199709350566599349945824457652660115574989776561368702183293781093178333298361343129338673965227967753587083096593523597019548101113600321439693957736915965120671040755668824283034404515510861919751789101247165229342562178920284659109364446136192833967466543931647706170854563860551479516207294173249472167563758885300928811510101508355174863757090779235399420818344502730778246291061750857945327418861417673975418754555936816136405153044011674666615417652918108490974684765833398752600126018549101120716900075690991185133437693593592235375537302168361887083709237666990673169809134360717356984937177934348695446701489909568907475763607215463253459502869234547356362959899904680149675474164076510875804972147684259670857411234034814968381383655417872068631439278203115390917046633844007262011864594987198392835188499293423317395812291793877105194361965627390143830192587669379330717252082836430975521044991903590464519882935818485354497188937992096344119441551011816878383601587321015209823564635081350426474581758598760641182734273030453048998998806265212145220348514212931846699315259164061002144575016387812995053383885435842053477161203755914638162873295815928887258510910870175723600765101351132637129605346429539529684371527050021384434136265580630365117832063226589151172982104272539786525012820136827203193589518648726371628133826012482417573049071592885329124968264816756863864737626026769905973755990635589045678060253741062368317886996006150485769593644940518934219023749001798488399194832183533964929754885510280114474539666932638732211006285947750740734987279779176446104394954540720715353942379492411857104907329955876117419820830322371703790766465084294746109211511005946548511165363163625261360457753966034480393101050894685733882566030169667703592839671911215447400967127999571807099514689412802002079214318095575540381299150246967613209403219540819410334849251231034047773569769745909733031242343451506988294430385437540699702421172777346286880477027700206340378755544506268870628146475555193013799437875701075287197146280106412007091012645619881383525449097186713531773407879777964145053947479610865788271310852470008263398552341412864167984785342304079275058747393564424257773649591793004739482273299329586453012983973286011704950586534785673719773705950328827018613241937211125907269281316472373175397550685209868111749198845351884538819620163978077892878103815535248175064470152549545640371493384953658923726441206644810390826972547612019800784789077250324320770304476363215839156435429504504673583928120468189155261933716709951318698925663217460853787565641829271662861612229562249321833490432363969752678267526504481068362475914198781583854266084449336973744309193496075029749980065347699620188855488612466868388788882464115519415479508254190083964084551519389711917183944936226710935222904790956239281546691289199061606708265742280818206687137695167027976861305028507810584379690469224584573357196209745154715093489764125094245982984655034911086981278186066051700843118096517360642494197923971809073781558388098556118887493199396617944400859909116166613898769025956757218904037935318651418127525229938781755612925002191277069574740328908629667687856340307245499109337598149280010526909366532385211116541988507517083796562571524034521211541574021964478536597232779235118804085446087886062180756731668948394351829311968269269996412246396344924191002604361552514107730999027867511786288956645736481943529374000191767588015220836120351394540125057072532070101495234955975720687237103227217602115088170415449165821301808425658176288327061726642814251420461882581205263772914722094448678245724087293749584828928245178140948815912019043819458120215053740650536396702690557612039889182858112897294842038471085741018300068775003182248312117739055922453651226175155704627558735209904768989035642473240923547060751430224809140906242063533749007738676101164766987357425917256019304627817451974079393725164888585770962117676606961854438579620283552394604909491631934540604051569119472668909805627830122016579029689855706218520196348520378427011348404263295691243835519840143161339978579697961269918980954212463276518792973864100018431414941190471760419176801510917621041939127864544943009221960972461548498834327496122393347238291814012693163236292713573888380515343429114253704069440605406406002210901121081908203781820849684945769655475463072978984820295417020524236531535695723259749140226821623193782694982487746727776085110866628609616957341097493784560257037524239500610044285653735579101536424868656142288216918132294704544816945023030913581961236861057892301724355610932348467785355329758659058075278879065303146816490230762951555870725838511703895227621515906469668938983898389929189439727065171588337998760594550283512208229170228197952259019056814995119926766409288255524872507484739767359042038672582283505106773587356771255939049477508800586881017723882352449508056714060719957941823856298216704597165462438918400877569265772708153592279818436105718481424042070491320894446858678190062458104437399105966097407291557839551245961448369162098570298909620971257341310190579913719694279826357483080392120649174517642238084962474869441253243821766018925494274298255497651493695969532003215821010898000884097214625073984105896237082645948009195397439119720049509900061221737476151348506686897267890813001261925220223345075393800062684979863024366376747691699028738346805004237199253706309666806485088914106856918568128111822289174017595025357391044996749237972862073929546726791540043454964399982579559682825130611938172026996499209047995604929352077685415774851557654181682836215480001371704944318977732224738437269705669271044820690609538050606411106724902301010347377870215768097780302232761312020182151524879703356343446749961572099999212896613135445410026029178761573564556132607854181004191239654180917892970387935182242608278642697084973262765118450854143807950425754103816198263895118037282008951035332424749940747052687826992594267029355305296116646924290647657118484195900171184296668921619610736000730172353544583499377140975739955089419374399803674827106591076485803017806301290635214587290647217611569153226268264724015138150243321051212115957356129528241669011379683196742282651970628359585139038238805365208626411793111519709523545052328587985688491841715608888399803129414030062848416889688235094615414355151645488344787498725550094164886933976965867043227999638613977911621929496089371238786652491263109417533598302661873662882056019824868926960046658651340870815507202846780000722760753791704856137925712929684457789679405602591038295022700433681672239132552803619017379583428086426985916066570159897664176800319620351827080789468816407767622833608017250427601678634231210844209322610936890812438212430798883001025204447785223093382971522178306583971678001603572781571744023768865077855957419969563625693224478141389814563283279063533611569227354164309054963549830740105582719898021059783700411747313329766400915451805237188091214563269417724669781659835605470347091047410719503562686355191493406475241108562352722902126446581271566547283619507216349647578502435457746088562786627533005288490061555454423888991785284958063331173351024061639896300969635112377748323758455559943580630132648635705611252186986967610199097532289625331533707891840313688667410125814772210752397820542028630021301804820104644964200466407364885143412868359534935663454385876320924192794453602746986169837611706013539473497498266261208823207490275501100108068282297774119027280910796714415692014732003711074001784790981241860396358458330095883239991165337175106527374134220042011012910480398200513346890064933360034852890727125827215440666953461490230257288062741536227204436077188933904987646741850072290782393523244894436416771206801133869012735926591365386894705088418994297506766042362417041957533727294253670366422990933941644123929776059258515237344680696187878781470544616535759357425607265861159482573786692964276191924840934143765595897762897054267032630595237492838974111922696227108083349605284937349437489655996846478071556636494682979048283747554697404998222289003781502444453429211472391286463450866771647865790048135517360125437167419971917554738497627572791933597655959155981676697396688446361912603109780612375461021544742004435953955938445046981850232247142050858858610214591130924563993613274450508488177744195271423981324210648120908453631044639844805317689999304047386940243488819167744551233766549604205673930104844728551764619681007704908169149587545766394164577616758848707295606411483398392494325934435128019634771661104975349514344372199041092839039298524900797121234822933571961295038942123439465261331706912477596748239837890824626406743902863530637098482575151623834642614345023219767793436019454301271077370244899338998773875926856355308313437043925633796267507198076253827643699009036008069712784584048727106801110795958730124646754773665005844581957709734725758060509074378030660397386864090780634073674067291559353442921602653866809574400290605912216976104730202052118156542825835128283576659717682409868638421475229260121402402381322241319948584566951360658519975678077583826701862300373817910842854163134294106250386779861449140711084869543167625250435676705281105622039604697438905943362154761959037917690149409540655665359919568318380202517920387723842121466713441085050889352049145103495293096251966407955685181753426676843373445958762830452727378304496329400571163218823066212207612508562953864005707282000694446664560524525812572142779718151434968849303565230857074829003893325321579022962331689390713636108124420223025682086506624792107396629555463822646209205942493988535624336727300252684717016872369627603617483249029355153984053717120465293341082090891285986489158170206739580898998985499453438344353338164080388618712140443870877452973605646531528217328582213826213146973758355673951055184656221555361838307590153236250670028014799424656010053897270236890452662709059206774647647749805012217137546148738049834521226930557572767199351121884241779657929404436886825313289199321619009276190729112891807593381246465305433035422277583651191652537803461615801028036583793877064245926227465576757615740460055575271393740289367225949058675938714205833684864349579191005028357692080049525931054203656081144218851057331517204013081888626319538449905003243825914343966759482829721750946634419518582003338134121352963321386883450939466325385652051597512885063408378029068219785524571834839018115367674236185717431125718487869553643617038888859939614752442162068564597253483398314195676740070591001576011150994726012615572121759208323440544272580371815054102476225955254951413774795627386371389202625810087047237625213935088970603748462424792709150732200629080986566394214225257004390940923563485312292110602172209368003829178193947221673326294723039655200381914069100246355515179053706193277490040367620547584754105995949937020943015749741091556279314505481611745698847613974093515156659315154420519881908907652784654611279542779963270397346998557057525812084714094721013277495089938897113774282747773367978831592670805578891339939475583996139349239018688110363327258307388920397599619838200890635885509728082411211472953847604832681408659477194204065765070777078759665563418545831538110510418500380348623010900107959306102779492024486569403032439356347114853516948646712408568495858066849945947590085815623859593804275108428040550259744790351037343415943509349427154108627091763363945595524653049541412820886460349798240159185077514346302158426149563523260873550505532878648235081812906343584724181140868534026764001703784984650266700664836981250883688370835416298729954210405791532722725244736548774235155788027483615738499542682633128954190741964856096899492213918548780466414601892546438292916665631160958529478864447757231326438933675618099000723232959480554542745299013541515115500050983127929401584011149298058585443665185316837738673231807148472809737806066619003088843636429180917851031503124168997251345306510590623885171048130486539078780651073838937572375616019426626192068851228960895289284316849090573264712866668902240572003443701576498430549079328029669231431460695720064282187807826742007170425640221969162741188539773993889289950442888492393508116913798784151304086635862394236955857842371618231262661418074963228754889045401834210530467199473957670178872457406016702557054477340024443691525350667896661877827247177641099970564889518490610302672837321871832159328600292447184484570873247046242921041497632861062287556608194263029469035766404717268450463386753936701833142464722043504942081841171220989358665437856395561456448046651061632657643670940107967889521519924877641748047579983095314643645651280185205918797070783375773232065508771870855923817748961538234984317198213247315198352650811577138078918137808785992682525068815174038530586517521682615980267917747376613536016504893276397822677187799796756712056313298553735473448401840724913251320566829360933938276706793274278561841088263962996205553539820585759304098459134546772625985293098884579887799343187164317548529874620915320402641088307352008443994325609036709119768937587192524759720090198314124928981919375254591591212095290542598708959646896443092450241798725443048444540482642072116611396839128993985779460571010487546208085370434243427517025931139393051458030928861400617945521244296350332398214589824404417891026038062695682781158717290934443387405633971462903260138290241403310948561109946686745677550979228497124487227940499842847563360008215787860596831988308002333302963222651062216015822323349931015426437396897796381672833403576348303458857056638939769909297445100401960849148583379504093840557826499567271308830265876777016763918590456873898662491871246401536192118200306841974268486611575160069742996057037748782510627013749605152389396147224973782026751364877630896063450359641797017327530741163961487812733713789492252937042775937454222021661721350066519716404260139200813483015343977696394814119066771794528343932188247808840046533245323020462204535804050196037566967301674208932502353712101788712438506901970596504585343841114372632105312376336236120716567323320635019167691628811797222713468902194037193956197185770530718411420540946887062501477952588114650033432852029103787765869528574776940389864015746451905144001654446636167885345354304691687783046240253257222426898754787467883073864888871619940863121608200042097752950233529693084772448400623972444258435016947365859692707256246654163566548273918597466506768430159389862355099023434923444092489446625858867008129545780981908415163706626006172852289973854767091192119914415840144194961882514508361606886174419752902553814327661308730177240624356553524703212490056154693500779952289528082337249983146877806936122235019416987712756309643232595361972753657844160341833943323000346320184084835540711616956378312993634192647753993732570068906977240661798638312711706563469761488861368170784873339546379495945273361087123342984351793308758003371636721549777583544655798797116884615015763442386351782053105216186459596160207300969388125656810817295043456220000023475834206724319053093913416621663037390148313324895496071163198965421442765339775934180348650652213653411645537465313619335732600275910793846123764719230587317216878992457582111695656436238337751814756680449357074757622592241900436937805343959871605236287387977594848741456545339848253466167062241594156352421863547467532498339856918882128887824193290505283290631171331891614858276501700583759113527561542169474561497889941028201114670651828615331875717089390708912286474432396930428823371210014235923868545152267530108681389706982417701306957483197860740875260498042887427497008807203014848649903137236562227368647387437772174747883019175068520312700493634982312205570224077595488924344060538387295274874555745556191025565338766087615295377488602775756175024960902483614000161098057653346403965864808161303370104624319095681256040763616616690701224217218189211287042095840978736960511841340961917446103913744381036584415333000919540218247747505077512495143970766910467275222425405723476987660917165209629707401364007054209244637796448855851838357975038274690297533639489244419753847928356203922315382500119922741140395909207020689326044581862132709761312189464171878765941909417417502783149369343798616424180643448165374958963140525221987368887965631869150271581548380211152637262630216379034352064890985345132069274986145016425343839559221371385429153383510200083318415684658627491450768851086887686122733730538024483049504316763221880433530103091403443859050933190215811542681055577357559658867459416052867939377563895536827963178838363932377743005370119124956692989787714865315342316890185979499490214033851617201332827923148933964734259167194664756172590425841896315435720409300663820904975084714703676297748743351214390052601564174862507144751835472124420888578300264623186140390174607318394055828361554544121130569373314733267934814821012309945471416475853320929302453920742996416554324048684302183081094075927974982918426798173803991092290790312026561187352664218744596635650014020827196460404752343797785247610732674512012101209530460310523904047493451897272990240066682033076001935789365118429405568866395220476525768546489752988857007255166603247885716688333053235433561501278206565098620510702051755083504417297003363554167480436094314198131385261598251300596959203149387609886587292842809367850652942429641339766818143555814287390875806269357749838136392613552189436225027208846210422542373404859833201475523002383257950880062902017179122205579557481679389869052774152816966180070203400076186541597906691495568949580513763110465576307179917597205624758636360511255363796317284089720548630856853014238633484453546797670603449810933657626774339953121284769701808104200554883491658766130140447661334460034683662255312274636055915564603952102982520841577208354809887511680983114457556875164019005078118468379914064852797861881230954159538214293445769835536901984214418085458663673930441581940756698346034087674910498806464364676083474950406011779982950128646506783134749927220980116437395660881685108800842704142665763625717433692539153876639575253135402551039514674739136049168803583823924845385520852492388916674594189080424369367039790845319218705085386906371959593143753413722745724025832817401931040049952301978472303207278251888258720256769798477583025150180190605064408789423902097814860259997298180049150231852794518956071666673527419910848813257867890614399237179759911118726563441704323567938914343024394228486815207298999543270696014735799323375746101427881087949636541045203738513369784780529959103502500417287639111622991198058935496067400596381292746638869247794108469512301453008300192198731592360189665875268857944772291677953387227457668868345847744165240000945498406178612158586386529879105671306401366369769045034245081759297515708691542940030380822462783620685553535575643382584021623446146502573165507296072067341910623326562541563700821914725243172479220099229281339492794905717642207748715398185484328716651063246924400514950420238319895848292861309728191070114264305167757124042411767586349085562080808113330616759651523994700288985808454085605129727268992658153841358519094502002445958646044582584567746513531940532605149594691929805795042821896755112297341757115555377683480989401202350332219574896908323651522717634658032059088929599931194149981083523079430158509615142872932930485710404391705641332061517656409538403397699189748739392039371008455393572570968496031581253563000395638297932029728764140702495802233513124126167564680915258107810852747907207224123192039687101778672292911647965715889614229134541439037862055243458708975329824825619023852793647131060195560413737952518044025981612049979478609251653483859172860800667927916151638997657078745073086898147561586230468205788679833161256316116492749332164105863061250592920271703384205841756700165107483502193164443375217421294221893698058842959538395394507038086393617593704386173895187509600050994002059904094491545373830011216570681046911050923789808212745446202165741178975604426441008769697606519675966469668521497229712084640468708523850773304351788991114589851346874355054152575923042790706247516158070287133645465645462391466702399755994756886222842653449711769871247253351402676032388440271018541268729451034752743921866028535199786949653548453176638829130121295359566431447618511273715888199061881646155395941606187909454494232981631530540230955138805842031417370965981890404406218167491334394675388689762717864957399306172741801325722924427444790380369509676299089846827981283816395280469886897622638900593158918815706664736872172093740427396055938700490231145966876141101291676411117586576442522991171961275691951130175359521380075522117070642391751709576839009745490896321143645909211211789625174686867707677526351521755575352014447533833714421930278519707484783976378024031558694219257056389140417644266990860945045273134025673230544168665488450071024969290580806541922067934391666877360733813998284924735951406367759703626837103527255273567576539565663682352855782413422363651396888079777270920010300799840207419968283307925576982478815053173155692573683772470067247149353292905299340034139407751287437775534604230443554388642227513396557620994265221319607963923374150878208529159022046408398871836352720270063966606093005410534332541827323551597594867112062082953569491853164415873627816055714742196692585105094034389499729801551009633365474227577363424878330767685358668970709656024858206167721945261874031181907737535911548064556429581510260754341406407739235362456817082379163890092793780044983532421079280781292560077243503079008417411113287507426781207432500033588988020898117357686489408612034458932279260637335779837605699291795018351963488718059393364378900691986166665717333185194263992260742959145160579879971620770303407428858597352701331036905170442019599998481196661085958181942054577835590950637173198413240349476292568833186722836636595881878411855419524634821869616284689031148556765561592951695082850409515676221839854894960606300521379896300058707768335336416360295626650290219129062060695822875352712278437153858118095194035926528885072135928971184597997814550678259341203817462756803127098076910723486590373542355050002082467248124885713686035319057884305205438709051641464426936153698760641785494980320146049187840732299942414298863895911628930769581183430467454342534609480330793696063884652608575754067244454871000279011533228490725438619240921055244497008389112622633714859136841247824244645127382279767866055403237286592401386542244558805819335781477177998663263594323308510621580587096788578645657209797740993892812192352141743742515449065437996404010864277613034849854105264708055134092685215376325803675916455455477416650115896668520243327601100086091266077072470081014394490767750237864309507889463109127919783351382605729688677495346135318203164772642294187365967113700915890289704510131567560317916563827891102335343613393993288553163600445126510662473171722038933259951091530764426879842712773724373363451845135508238690823841957551491464222587133427387626121196640881106180015906807169046734126699556495663776328642618771876052846415368327680964666789666444250210968299668703053449430208385510833768219525111274953860619706781142378749211177358437273274326336817421758794025043840631866224020288828966505145432316793376167883085077013776682216149924617761702645242563517417373193408351837136980755348040590966284274433778211093084378166717732947440032928902574818978082873221363465417938543024673686243844788461286308241759817970489763556795575314587451349467753511287276577724815001769112604637637598814145463375362369075141242043248447051855518224538924621076362336586667844187557552672337063903649697248736022668601630323069338047548560350796568845131922086850623802666062998135532575196360974790182093199274247482906147505286287706833335019937868157760088339033528787305421127495714680677117938584390563515262340464069838724396009840191859845838907605944210677403149754830719681340556665728477042783429651404365605607511974337195723393389801103584571215454752525397254921656835090909603557738812380126972597998337186780868715825842246074011815410467267424141272543011666969745184979363037655188738230290287539139611849656383739496953438629385401431756124722879211943828992322347185142163192759862308041745083933614812275507282602695145031065306814792687415086093546082791466062373757094929289352082115663215691012628880513546390481600134424874742279321851458625022157244898858900967299288647093665786088541189409610317962225419630529516731641286486732941390759778089542123492306241334410017041153706531793771888499202814650369269112193145324848636270279264209782445832223174864004482755250341627213736405933357015456935094811971932261753789831761219392650991076132765441198884829462365454586294016437596924392859007684646554600178208491521530917607797409019756465083789757405480786094191260910156124937526722288004641495051701162766923796975540929842740645164393248029699913004964948108456052576680890801299011902684488991972062869345798961895306730134608234288814721074297539682138223572565588114700035994308552454428346945411077049054298452582641727987827759921895940094117777873159228864101372073120381177353184920159970223264208487448103991933075521302012819448467833776247652670414690478941415815838057395909924546630730361648383831213688910396142673340978522553697548943507104856202335981325771628708129350226267593348908090679427090225106246385357125919867304462261183674724608224501914569615024090904317888118479561893663220499523561461417572586773474076559833081692235416722886792262750567796587013248386316425229852721253049339090901253279117781520347944634364604620206482721226926850842299618274048742626900759109840048708591108582033517263522431648592862872985512334895661107027808002315856333896328454446559304811074728320441472675156829905058448039116734666221988161532357110618368335813327823358387529612689579818835473319113956373843794780533597964886379013277651903928070935454047736097024875767213191876064584644571565318486005006112551426748194321319640789860361258160455062363015159317857853729582207904375074722161027811408183407044636337126882474060130904047166620373025166280337119114805102450085875309227886173039072811026858885509931265826694966878396806062705615310454479286459912906674824857969738806837106301031019056914734335851500488801319285723020300698328308042363943601651262196467314638617726642747808411388418547450207573356483900185835592023585972488769382239919096183502956904149619364982919016316816725308973309958247014778348560744253512197112060430370734587991820411714400449574660901346674279357035791260940543648805462116337733793510962482173151987935892782357586381931662417575208005361509164467205730159408515574875306695439688745619567176214555517520743393810255264141377395913129832672669689250197033839025357823242465435835245031692192283627641828700402211103714749355254060329613031606786361119879264697648179124323778974623927560082191699092449852180242595569196706838800830435006345906977403803905493650117431129093553522965294244289691923439311904325123997481798551680369554399856513928526319138689788713424870530853543864061972361873662627231332572872550953600656800444011393474970507606850989400422524919838620424561265125070144543137023367312264055200323514307124103188873427948725705624489796517626764728541576777718525886764171988156088270374411869361480296554620063534548136484174384850362947295920837049317718033406469987797799922086701893083673089033935755362679420876847624940592643291581545056184268137334659019104123236092259772442493020852714304038804203476919479325383513036674890798566407296267175968754053191470907949835307025158416479275084627380065804809683980317616065952703575008748175379002806379325633753022702156306700139672256955775960991647201007695392419692027260005051186224324454471155820431813685502463907148418481887502013457964484328089939704008116144432959141805013574162663544167488808016782132319948930525064439857847565776919705719450611163298055908985693685276642233941141403388179015462379812426151502537642988654292260660068520536404021062111362283901318959342027115932447147268039589238541479873645268767283815925958486436964162416077724684903041622133369047228385189988877428207322600153358543884065359357382122503024274486717415956833055354303171734798859476924539433188254394320466697365712995684282275978650717446147170701384675457684051156622442918039849293807873679355804902508186701533873650544964130094403222147899645163304139430089921267012715613894996563815420323894183010865750347528996458834296516962909009130965783125175812096135043086309713449822106407669006992619445329797254457012829146271593625570758015380649983105848829106408939308413117807791799028394092398760542191352376855904422550078913843082776114185646733234861070544044094843400826231993278586301926581920622524823592151990576798938380436707484787202617668968261785189342586733833166211952953541854230263115311497935199475274730186519576455894613224593816693632520240207490766156870739764960230803995814982997762826639304273373348113993304559469969723726606098254997425162006640756109959011679167000842264800387891598157843011696001077461877772737517281734780046100272227505513992286135552092984463050769747325601400037572098301363800991926224258072302267975906093969060961536303312898436774961608983442460527563694920948725767405055522591027168589081599562619604859957874609757716559540947102359911952202662619914229653748652371907427621578254660899131841858319301827978857797666291287295693731134636602022587935795221648770472782548131416807758246607115334214806679212354754763517735473274697228924958758622200262879373815610606785508774350567256705720122038107984438783080041320354385363793799450729180008740338035079397140101184722762411992771886306075837510078125717604076233320740510147011865496127714928555027340723557146666421084916617112459823639738598070189704236128488349298081807595747896745866489650153147221849171523713415671721215486182157928750650605839041770383305960495991825982608381655974423807508270358970724056647231288860442824961878904366926627862612449055462645939750182313386435761479251557668002805154070578272955874743028221641658187921231864670920054186418592561278143463412692146639606547587314316091579751489885383544648464794841428169036468528997875430220541128872985228824201428222530250789705014771817262960070898504944490611843978750139411314205797707628954839724616491569308842025448611311143915045330590604170211440530130472303126239237547435910013200373701493113108498119861022507111134894685387019110479085350181707776087075904488799332744042071234611283725202236437307748034787902915678807034313880772380340519583583644300873331172619073000431831818713373744891620452836767741900052682219235883470508089642119442567663040345748805206759506999464515680369667357535737692701078456986170629279488126465018646460177333959708874338258386681087550699955924693722876581959548253136522730465707822620476413515561682978113668683948788196449806590774786516358636121075742809414565526973020654049235655650188346631909750379378359867203054386120826954439312629622207526063860980346193674604069961460020322681701580093424965646986652634511170920290496424862966462219726882614065402091602924312826344821806147656524991970026932484851201013530565420018435909438130203646590900139711961259244864083189224016363191330622776012652955202059014630354962722758724927383355458039305554697521826744887337521087208507459996547122003666614930862572180313573912391919582387400739493431468009548863460331775515359380884299377754422558064074454176426936248136412788646033359700915228665767215407552692413256173224213883701551392195103657693960951386659663426895419179576137596047359553109946262705131347459243590209293838409790645514882403834058307133627820081576289978912970102854664473084776314302667782634720574347460226860069749620015942374417924376413360506397241832695773024466210131924415183768982765637371277140304640190297184107967223545290554090482216636098098822731476954558121003318448065551870591456168674561808313600558186496341018632499489561189199687879927752930482699018709429755070132915076718350007483247153990125753839376798641217915981018138862786068995545162593707855621240764290553708247376187508281810100191173618982365484807128056454792703156459252323575881696699458542622480389629088514776769967173766060991901935039513789571244203253785598475082858292498735364548228939776473344381047169951674778517232549113910031816296477531816943509513263619919352903270988376566771598568524809304748687400852325594191941291944611288678051480380015366762337539094847334364806700063687342162241966418433944341395958810397718749480409358134486959712924259500393036152146546512684957067533413252304034281418240361235282800115356795647182043016119194320921281638160841880271649684390826961355486649002034154321729606955626538582914979793543253214304265999571499411742408554351306232532399838393371505033062189997768102023690042990307387948633888056515303791341756788923853230792080819271458563612347158276780309536574648409009228069508280943912777062141272865015505005586704605726799986790340329034930706246236343762310929718021472587678802110152956470856554971077126508760948843883937430431919036474690840777467060106371424727913940286962301362096314577471934951746383504232756691124398798110415841675854665295748266747366300421296004390380763734857792909558593074211341363975480249796952705464933816255397720110667796565878800873553995330115994566619718916418119661271158720763342053622182217963682638082469598249925372901017827833887755206579160981225835620612240994187223193447558013019558798289522049901230576202005913208491112996765729420650824389734036949762318519144995998992321348102991764086923228960585375664618504835685899943804436691886511252879199399074343620642653150955666683992236638838000212260730782018764462277096515689254397268399461616594001884627311644893347508802782465248849623825374562206206227638863594120103741944643897004075001095667190957292994214029882052126270268849724823533549957618235973833725438503848380195002342200756702837126845388518267255995285416403543734711162176962338796388596108074254605059347592486806096925470549372495853605890814433541177906024398525206754817532925796070208955470345693919854006180950659020226238135057828696626612470784554281516389210136298478614819563497636085491243973634147608812275400865197731352508720090335519205045789973975906222711258651133443344108879153887932580286565412848563229229947227438524118954735292057514641182096764915849695681514832412275214649628989220043674717755880365743666606158130296381592034548042439289389134153019281699330809944600520857029067528774666896311871454761693448152400146309039605236200787811468585380782616463856586533485618796724493204961176109383121049710224298956988725735569546512055660978078570871920905909297145874329617772929043237016390472632898800535929528056164343562866849007420461660223748574317959695176020671432497511179143064471654524866560572497052972226426430210819789972235120717103726413172323209013513314387140276170907156820087884943986356189317892107253781175660092871908307267450657505295651361515489682060183634157867805367971359826625685542635624584124548492919793351603659249033554973372563423385467841057701942171948414038001918407803716394506602894333593632608312446145211550084493252685689720745478359332225425594696178118517302245110224100609556664983929008790744923727566425070087768286652310408193644334235879976415531011387372679344277100765121907572470917902911781216626801342614493102565542287841545886903056043524814271806479771908830257229597732758462373224037027959163679018482546164486561122383252733610052353546081444435605546499227031352644451976544680575755666607347293252783246669026324471977722222517565839714564420460886665602420146534865620745278353507441251691745146076577417216701098965943183637551251747869707879148519139596997210273327297603705224948647322573742904594647956850549276154319023298787720042171461433686637753819026998088700093020242363019086739922753074209658811303313058179643914178967558170321870848203131866639036559586893938707999764592700328079400023111915056872821761522205662371877811425398413304014203969606351373834447924464857816908695273166312407757394734249502220759662770725866437860109230755524869242553740629447583465709835307713961136647234537510457365076052467141315467308349603056611346886543552984617814751363710377912656917809088128689249744130054334231932839595797260110075114640391203169910109444289738008639808684624439983999242930640469759986932243710531361492155390637834588661576494528604921235115541563357006101749614156108453986329761147625441664248030026641093318490953949287957187720690482198044379381312865204906032756727850887857473447103370780885476004410789016964331849793044830335392080760117718714220784219202431457399539486178451445094944242138376760978563331982642882966620339220766232722121694525092522535083700191563085094345935068312097461286413175385301033953281047994044482497229834221341228579874867919103220958705556990788779138504377313664256130163455842890994797797236953547672578980341372036025468770263314009586130825289286407606876894196175455286131509638386898917715235849976012932479841163101688653105719142214194688661539405790770838067301081082185676198274356905906480468806281685722593462937103554436153644464049906132176794978819516090418623696065593906123284836801940704629517156744316142368031901527201738532976300937389144802441137290747203797840445886091931665738195615640531679523809574587734995859436956326363405366012117070961607834249918641240762884858082470553077163364463586837749248327922001778761180226207652999163624190456845905911251661307922638456577161287012006615110051808102699594113988409255185522647614799582960791065827753735671256469220847987857290876935875464074993596213777740805827999187783182876623410488419378956835320838208808506253704581557741298134790747300899594317071772134970560714781213834139474730571689557409937348337148036699285465942692109451901707854015486617456964675816982622295957872456390335684077831976098272084098851258685397467027332162869291580731855343847529530713376275187675400082765367898568325541888588180468189716574353065196465167545927879249306757788769412966083105412252528229885702384762105889759945060377740697095702802846802842856913688156147367706955939403129383564776856562790002001312819959944625612080396573779004894348536939883581201239200120964480747120025560064883659272819732767673997754748144206546786318911442393857773839797519451712177950085548984166495880212027986553255711126180022603126522450599921210939861984008850751660684124600882510397781523141828290548571826174872393636408179305251763732622417351812898733138114926599203820565214250149628018800493501497173478970501333823984799043053063325783525525124292296970094149376223930424195289957028447311107054576760190063773692617162555556306605815434905300293498322741059153555656585803593011955615783471704368147083200738735191156695748091610579683993369402892587072578336436379915913613670504160170816817216617956318504718308712074612736247504489552277976536204922381421667069854773306122357312204920243618570536709143017004989233862215848018900554936063797293499315953363144024246344349832786071075268622572687674532943932734793416802350906066912144310111677168391342457392170119863485515244380779375057186597572224030033104081336458451160705139205278002773133407847373492212321989949712008616910426760989357914873425633574978720724463866255932304035976791917720984616582894980767779611482302241189903029703853988438134836211819068599244826352452859152218881167916955605498143356255287757974725980526227215597269281386354952111884902881962083358130369808949916676492224702042758616139265782245126126250141155048039628001201226787398987032816682973447650223896155813199603395331124320322044006028059190034645307618519840512296391455262789515031577030382017010396203431853532134670078873540457184762831991329781052045256554690894448228350247729257362677433521741717731938975811497315410053154761114216200980724822856362437462977748942381401111839564502612674197191410839663845024556994839119100530587858313002380074948953042181788941144431247977736500222442653941970130362774756483861414912412184431677530310562590865230645935423533318148478824257997689741251203906367036842089359137308090761965463319279516251211278239918427761987427354143264027377334615155190343169465320040817293782024177845258432360836587673603689718423722516836699125519559082675188735383110163257495941729032458113001675362542469363172180203832953920757532650979029599916871182885425862786701556431900270689610963298413774168911692745504524406226862084132536769204729467090987215671987406012852974652637937007082059072648124399402780244569832271288606686409330129107586300774963502148505201712494872397086999858571773999594266403926869769024178127850839067583234222479539584699238551405585599015566192929113851961740762854644577339413725507710129652021461984326552305367135352209943575900534093584696456601020265564167098908686150484672306128588191680542481698283963293162130167875737093623067526434718903996138018826759905850777596038338924942445349454339899638698359484807803165822769069997198138407639889779834661616915094793056112884485335404881054652242254738921335823585688815704811797824499601986272148727241975041857786873192471372446578235369026093289668575426257126212529740857246838026546837590112884000133190981872787897026429359154843095983458276955390771800802729928584602928592226499886630104279471925982779801281739436057075924707202144839742332668031813750707835841343950862474655074615003332156475544403202468255773179614710164663018399537567615906336861064285028723758149749455496759447797596432816716148999951880399972347329425661072271172056059767390249906464570486584601447703250500641726863982009093094208260400909544683027015328616250592609580726963136457427109269772003997119313988558511137669539314874415305970431781022315726006040455133982920299923621457115025316309070264874331930276936484479993052073108277969617575806101299822946415515280275460334553413693653863967713434929429866135599751471183307621412533578107972747249898290421187489599902572467187617270684603851104927225171342755121481248073524016477976729766647336005291333612773029498445477995122437871238233295750223430268745661714615379107192982432448395287695142291736014852659751662057697772807523909219397347316211568828082521790424002454459806798816672755504532990447834992816003900612896830521683622208993668536224727041020400047601739887134239095219926469615216183970711999521253999381290754435096551384542137916703272659872031315889008651298386236733409957257343973626335098641438241322179227716193160920802311245869940747799963056467451455320564133099716050580352610437090564864296195134209144470176206262473662168279702202737925651630129929681433594939502174224004538755488311022596269239303689454933830681626778765244565340180173740637777109963534946424359574324498864292155399967326958506691796787546548488951637610269412822382553259601920443701944882798851155455401141372083571416300859851352203661357022023630922264317963396422766650849286840565844034134997923267945434937575134156840183346153963105722443303335918928361626670753874820506322823340804467632757221055992959967340919347722242070787992807698120678466790734426815407276088658114771033640031874387587643985384103623532098123895511522122809214926762950645294439560965508541357836015298648431087751768768240026036487611360299948543335057243666126447295134183006918762534507504684576106970124588549740909500400324911690939597466414602722931007077400957859922947927027564980865506780079448171072021190175626018932817295192138774388969113794114808477229020903114321642666869073575707085375287546904053211233442736324667943826939035209010055142290919823577795227855220544320842410363652401272241531239133334840961218327075364085666580697484524261583662303531534856428162984256916166120576128185643451153321390109490989442863486161384434195622923578053285345935324877483816723908818641946418032166908200113980571274210373629476810747101701298908502564088763091166595759860085539665837410566417368860584701928491980889490058453257053291143129757348999415143572265876283320340449113837385513911052860352389423620122579564629157292954304650029116721504005712093763213668655025505567313780251627326785982862074847385719971569069721357609105232166853281743883653315017087909063154469594240825093909453902214749560435902247351954723883759257022221309941200370527482966898846229034243629068201474206927992729628143215968943082231427094847151719854426484209727487802226820374470834825001475480631766516467001671443679125436802451284512872769307839207572909394174769421406913398618668467363197935709036822357046505399769219303392883258376889534122671207737959979593157773459539184658315805146536285162002055684389471427567622350145783325312788136789405752746118801991947664139396156770969358972102721261911160612567301047047564113184668932085408028556078632747474890180980264123166624088790611910082962696461550235122458223653856031791172069889228244220349018825680961446613111557304833374323785981489413059432302532070849333206635412569097360379831287323677013731977769566144380409266761252272868539317542488360339090061828953901855330474545790044132505640931669706318589080202755225325137937531457194940218869724362541239513890808718441476724038919153183836694329832767990778914948574029742110134903271488935944926769710929723367343973806066630014342647633618405649821264586208203040700940256199740298185329844614553020563636298404157735148926808979637128858501895992859947093850131004593197758941588643433520769568111186415444792666541351634202359630539522319457514545325215584978508309091828343287091021285458975567744793866809222300211495947555745230526597169236524129961243256231837722585713048335509167510374689380841965365897925364490387112387880477608063973962208028159066382549809693622033934848845384913462773144765196048774054166865566074628971076215109676373009890740187311905753694656696509550609340008332061371661310947576410071922574497857487370333927092467678786499443115893655179503447680327355790062261682122006764056455491618342522536624348628269383864988202078118321315501226787244625815220456878680930529743152244552189229463345846625445413748636724190303249024468473635647615462344610736314485359997917197478964196515880271571209090175035830744133280572987132057963840745643449702010954529039004767821534319273477512137107663768055001723966368039367559801897110264933380753412276516863068835966916314976254079174345797406557423106792397269027915975021937580669174866978419785337192913996983989988457473805401706714991959070342607595750303613422509111543227313481109600810389646757935692574245786391654851754654078752122562484752357682293785938447951186437222129098618191775910650140992407536449752305179052790601010464730409560975811209642571794773465296366428687933427814043483289491056768167161036753181759779123198954681713133358577701012980846343226018021398994464403481556650969045495786621790949949253280397014614052546718744851633562430285973116992971293295222060837046358655491577911489298693483730240256883252694452022153351640879403746794424367649141952374056418451094245807755987544573685688782193782810734290090072470998596548122792509350269195276090374763298683048090883460019135558811255739296804949895262971543903841564088141921172587725978478407322132484916918604100190661889117856035868254979212412519765587302135171364234359673727491227149337754506160860522580447655026346200810381914898356410612707554510836835348931440795055238519007730497080143115761842937815844803524090905022227181790149996540277872099883905638189686485033589463759258791903426804264804237175756217450412237940692109671344487927832015201351828378289246667941906612226184129905217009744572948044126641631768355965190501103290017877344121541026869003555101759219654376051494945276790581680916725292348797104185323693410994889122900531123206227111439094087237297433075422249382031047572099190573436137998892118274501945442642432053345731108184591744391171735001230428151217984527320045279901767893768272456000867707824712464154743162691469304113327388363737327916455685556056317319856171354938531163888986068570851025493085755086516596461344242458825419241567245062639762991692765209749426351295897757798836177945279354313785086240653462149744293480600677845275247726905860519124078104049728828694298501225189681253753374489754655300021235725809154145211603206701661893807285081402496712809364936149562511918721697893337262160045092080768913176744649085541088056469138197649833212582470106485013227538977356382656006168317999772323421143401970112407956657417235632658477541227002204699180197620876173825098952580159416407646225531603935298146834203894390425438871747293003439778496259998370440035823627885116954544305628714565094253010454307004169732647485372601594328110198822548130511480886225242378803233010479259029131744447689769051377082133074930457204296417990790974655716727393570082591514498953217103582334868623323658853897059508404576714233172102335749807562403591561540448435503318845654834033708171093731171172955093408868239797344555599374137135988453025144937110040797524941319293060747860864979885319464795765377510748633424518023894918043033756359342791723917417014414611633839575861666595955034271826357770319890825711366031235766448650478598329147595968133841184697035302543766586979056297908517983782412474405766738089910256830095674215814639900159786613266765749427297705715003439717695385462395490422434780124923090953065780547640552844041843290096909743816780323388089999625499861111440921927828914766096132141330794202992820025851806295697434323537823360834465153274800929797067550199642389928571858561190214672981776786692642876827651575396846029329882131680674286620184803832460054010387609552512824522959991256240579416805805642350862831931367918479365777771692033122097132333404220002210402941826303210675331133535431902338819508643459375496067851229627971292201399867198795505623478415191708212919461824944258371410643892455241205822127914106681217689561327757349093813064646878177324564871132405068328560962036884958947974003765441300283061525257999051970103974268050849519276808161382250199681370732906604050948586899275510890743475396773509565780931281553727984886056470204249775859492157332810398816776743063644109027390053540837354503794062546420919980415263143054842752102536136046040083228129668326118835842179871968071421666896130549741979801117061425413443069718157971947876458945864795602196924620401726900490762284069230728339596218872096227913405516092443338860894099925382045597293145816634153665851253144826195209660984211099547197141180372008074117538781448468101733024095642302655701456310349233240836780084628375692419189236551286868092180615356998463389894190884160569506420198633699867954773069773628292993070885169329624189630705474815216663655807060628616655455197223115147531454016047268984568509303345109679483058356203441675213278131176191410973353713408549482165068065690467311383164020650650127511250797489707787092492602321658992483297857445499054663133027229601536383764817583517647782969692510041573439048290138941794839477486449479723441245339765599775029704796854471035379169366211462453540114411918143923885681666588407019918808703021828332114317740400295545791300715812127509610056161115308397808473831283139917891225118167554238921778894508769012601951872852970816909070013846331516277514029888975711446534702023791589957836991111291959443055524682904430034144115561660569093177355268616263829680392346468534710577213099661139333386390661077459874463595363433515737977048945062729598232667077035038949569871796172154860140493045026934825122522769953626746727795592246317284733260065915289977502078919687314669104300972852574259381247005632036776588144317394825080845533829644991625909538487905481634842152706443225405612954356816250846717037902501544004857216239398289109777857302383680641812872938667955447898799425393762167488937847270959277318796017934836169503399306792681766461533486328443048499279169551875696458048396515951935641065434017035595155880727633735616320315905681970762323301169010815414143652697703698927274196734218545006180931286315345446368148217810362497801838120601100674421397395811396709153970429399726392599790507395328252299708976597941908632552072414368587638393990824940775051653573044818200015478557314530463191535270091925815484841478519537835540408045569067560654441746865631287610867238518874795726554707919938562389182895513697185525708360560353718446027224596495221087181868512681121762849467437473639658788505727055858803400813840012570987223532658561897524257961429155056666436415657606701403066279171162637978284828210026745282572095760433992868169771185573866170415805754495204472544957111719984278985659496407696505263188341970742211429679557289141110273068033293406703966980422695019384643704265174465906525906972973861007301860140507524361046740589856684278499771441717931188659898509998235946661708495270589400401751157137988426435205597815051372618926313544706449096366422718137260854018260471754677227837507590924053924762878359668675042973714903513149901984573663290702331218593457699453428307625753597888555226181929936074183583482696578566905016876326134554709397992279391578370124041418212675913693296623576209968728817967735283823031591500323013982264816514851233754307798217676826937652238764581621335948097230135738238901670259763701393991846354180924242205610632469092384667086654857850026616569883472049179002838904386677804292052316560574623586781584781492206740586624520384714548524306190957981125287751242812290615433890988977236045820203068755364282482115269710273593147776249955775089527479350402361925938753885208637877734787685080416705302395052320842165268871613656927917441152646869033169623347841448580420391007666354570474773052550135623414868639119425721341295439970862567162181684978769193483518427570706896423958682951496910170992612343282271991229207778724252792498203408418110909823116468327449658617710430306426360310456596728252893422117598864104583238408522677412986907043442760773863246207714097610297694763340384533601397968600422334816029878851901577702834074117636381993781354612122917552764973221989035468737646822283188824686230406316311571732905166447250250553261366620647727921570263653691973720896720266778541917217116968001437408567571291233627152271228978399240449320374628747580407438770389881342483995307842114465273681003750712603546561324344339152949239507831836636286617765143948138530750618713399274950690973343729873253342985195663423313858903340237852452167656393903651620069965134813268360923203583970520142171215231396587277402559550697491251073862001239478392036588354288173198543095855146774681352372832549192067756082758629120737058145569882673738443219109550699396324722807090855283333894947505315373683851246591125681023838274044631971443830576031040400667557806728080873187492133620309721741504072338851266648385736456097260697663414513628795751364074858605119474431533605809976865394573439188081932719763532687803712702667165519007486887067028661131756120281719293725570263310629547201705003284513853064900683701441393487377702063531444863473179429249870238070869563434017140763961888560387748297126140765714977922551912365091332884145434834216710348808651988180902960917889292830630211762846662688946556637655180529546468693216865569243281094234903783173865501625133230263648385776316290708951730617869011658301051359343311803734340271905431434161698635059521896006170529964590249364197529184741089236214692640664695020909866973699782603026243230027566962783810036534450331467647111269277922264353270865141451212563553966833495838058714099037427395894588526837638414411184225505413736217714809622878074447567689149009542189746688330334185869296207491422400637601032215143846545715226459908148800573445795159167819781932351808103116310406046498079447929531852043987362162305175686619514321009016090401286853719161687115591364605659598604280464808644564316811798075360938609879536787052127051451940463702946280786222247910466869735250295192750275113642333429248071830410342566700286534059780405665627760976342839601746080130447497087543765774850118738935884447882488362453456566182186785458606978528069205570142498052944668027657863102947526401981182513855719874590063738339109411001959199957173309821583649712970760404069036448680881639630397898407872065761236927644371580149554426861156921683035325113758558807054766300614652486562043143638348864372250655745187815312491633454254364870123853949601377246340817364484676078993224292101225233103374547137783267016828524473293051073215862533388993461864796840108844102024711473418639420872244895959596531571608350275489758091017072182599551171192074706495253190876480787334408118411697124377974470112690592707835187728569615862154634404489980137311277210785955234429223432874742211238626460964396731859209944171604381184028272233514262035620872770975962515668715810322401098437455763888649916731362589531534577874387604294419876485065248689746151150051235809429189924201858936224552601085098079237804099516751186448126062582793768389150689187211441033351491879656184267721798141424242561160535426516323242410421210262513675589665297139616692484224208915898514807133638343202702093814350560186827850808696797211081347495244980944080595034317170903981272522852263776212925301022323147611301731472571084029885375276406956582929242447193299106069577112205310387533983318132494663657039865584423393769073389104009231388657610696208468818300431827042039315476699421365870826964098823233962444876393144820728160002293310744941261361829215856547873493711188597909932183136460052636180276339715052810452377583506481256834494450937586332004264700056076393762656878043025494631667540243515601434678708263106558602735665906228201576927114097097449081884454699225740990433235411780199179674575128863642150364137026571765513564145227553785529517674987462552232376457517131968543271191267783131665444478161840055677934699164442643412259624768312544055582469960115788693995841552281044357656921523871902891189260809181591234565984832594112429155288208949128663925448386621606462427165100819951415992846971381431665179299013517844090938701863397171920037410369859449572471938893933545332619170564835964334198441245407710514160282101338464744121755792933136592599292030878439958565875964222499921491967225168184345439601176035099123648262485586829314082206681757716773934505441606230485931765281233060997280864270855004581564430034397479240230609751727114467014099924998192189930120312199896754847299520701178067472878061698732255844105404646689941664486851751676854353610497388035179450792024681955919072795680184910810849605584403028004722697641033291977963555746540986183468544234774821107823632283605943700434042500494233787760725642213363813527980545695422802362883986517467855685746954671712799678522783414859362873086426019791273939799552259365418712275661124054550398327220416137487014589971152467843266758086010883919941931626162654313779024056321446412568683773198697980977187947236041465199335211698962160484386436723958103653759137940290622982453055390819753018486562735025455942069003486921548308274582285241966656877150304651409423998509413651204396044692830865275138864408060580812453210745993246690742259694716141833622606155177704796049230006044676239767598988573447914134950994485500634757820954611401264783240678061626043476792728578936561450690490647228179530916264513745727400905624075340204975518066994708959473310334704332416079949384362583410115684075389891444074266159922976681093062284317243792965297671081491515886732768857525392000835124928906773864835317992635871999931903975432599128797998460099227739335376854427117647657574382618853865565075749722975152290464243341031107380888275832242192458794176740229523674566185004850928651043583290839066773999779736418753243959433338749215361079623209331385602687562755981295334221769066944590104361129475011755839014718029681621887411882497226720166138242637694167727288562310012495201172412289884932167392507196655906768249643575604790246790569560280309007137848219352878041370444825740353693036085627040514666307902378868409037655029581383987287097653903123917828821568690704553064336004559065794785689821044708022717898326252938082256840243234012195841131859583537527277514937563516811251576155661367215079183750447985698121257647963050154263836298708086153919123115902552355985494230029967980801406396862388205570151104907106390308398131176584762924600706365445293801804812452108144512850679848042910351263994696195898436065415580783660907247465740295483116563273643241916472475066003301274567019148444451506039765387822517070006852332664390572814850048741158377528872985638357367703207478449133529527207272710868756678720057893918541010003897900548290519080436703140256639830745768727360039861447305645202755142279718350807534639587456087327550345104922533081354860156361948675087267956022768953155151151531635608994886403032660075013135588685819859617992691519256668870221853617816297295193347540418195250662464578542056937075416030437504605309864803354287917427597874134483646106947854816595414727077986984082177536551551626214451869426347186491670466642360826195290827380336920010881004721566445402431452551348687042679131432481725744002033787508442607945668972551954938918116448351168596610705848652627950892110790895179137942482515589485827172392490815253901423298069563039112553289078999434052356523833154996303582100634510499106172232590548386881340336163218142082332497886429047159796623884608287367149892192075583850891414279530204430084826953164405991687669890532524040739190674687108167091211474190919805807063484603166852026284673618404976531671699775639534738788603038033094460492388611423262946805301477506872397679822372191654090865033036904038186261354445491064181344946230518124015924538485687196625588331359457009583675818555249080704948553103495381182903747686292160997140691344678376128432742638355877753687597865484711022773443156195803145092516371412853064612642234036741261543976847597920812404249957172385205589604822604914704445515764100107990422853022729968622787646073944469330878920615062742313377812859669984083879839234284188738896320720634807639777706038452611741066446491215843122130374353975664833104827283318270296857286431105803147082539509558542507586902311303147614248311589349712475376472930476725776073640718795481346388558878647493742674974666811468711948669564231278389070706401464552933968293856483968797036278208955704759857248718499811355192586627451449143892101054571720177237680797017145623506271913494026175998882883124080930049596336686536191500074169985688760644238174156216257172437698619523243145277185541328210466258479861658276722973636147231668183679533057086142805147556433448224185866653489626091165240772038719351988079620062795837350668979740942838723215707606341599934809858220611092729532801996532223593056507880539981719161723663642918858589813450084108149165084215657733086721414070479247974359699967510236507320218594711806580593974344280197128170202590956842686949212076806904917944326696320844400912289931919067118552913290278549156059309165089080534748932861897715464112317809114581319447482173420686738116590732206506351011340194210090667066390631670032149891263132318343655807698870514859113809377819897611843343854716498909068732499907806372673382512298999488844852063299269043500609655416977483208278238616238354075259460284404590249976922560099790056266706690475884887048095930839084708287394474220622164500884903719643576500901179947627637514729387543604867072619584690424620609297242552095156484201842674858435310694652948459739136188759512576207231407544175276344499390023882615129169326983793228140309202233923869186984829233650327322923527979887215849862682782225243229319390927687237891226538339185344270402305242289493718707128121283274522143232132188867375439773638056296314891054185012401275122707958689005700030822608609765630010005231272221425192285552845012971765351895197064422517490622107422465492378082457822699189032713355184233006819463371254097926099687088416981082547302297486405688740607400086535020887462549063437905420914105522809055276216335291800533487053914189919122317813994494316727456069696299741694278455808096470385584611652539631921841897768127494710155228412912095582663735022210091468307344056244624925625922062757216865667215456061689985411849490988961866356312720459264250997802131125641322056386226859747426459829178760471350963154858155864879083424645694878211166601912671982057598756858916833158301594429856683788868963762608931830851186629802207642760363053912442726146053090738744527467162528570466254664969242831881330303291212175310018775988647328180557110245246071805838458134967295324707560599177336680789355481010948895751361468690241277447984032246261356117127330044029613125277429816415775868088815459124988032098047459849807253768102525543573395714285769736192579738637959943701913945468899757456771245860704318413355483098536561632293278446763441968363995034638776706505347109562763061238464904956744716436773663918599490318601572654047304918960323518383226506231016243490849554283342807209342969106563223529718627964880960444279177509415525351580806634125561530361935776092059103046719600010455483103087162427906898442418935940076326450793818567761414105726328952446922576324767754158070774872709955958545977753889296822415585720897913142915309461186602280910595903934141886455179163738155308030630979040148645074555254476977048981474720233453908346848883309951025129351472321781494313449371146754507041960342556393581692062675808136589379497829662733817038541109490369237010255981741592258531210157590631877994528361274014909698680207049610890738339164256255459504361278242557654963777237494172943083547057919459675396853254184375081686093502664866970357351954469275038003298049930289531854113780370489596300660335278142131327381698819159149376430539036178111447697687114245324444887067251849612041211455735498386666056902494487587099865904228005188500865874876441596281211303524434740376791409474684068535010868909445729426492669061197917196401712066340136056034720381992456646666536713375979523694454748221045919747199362859367788770321614154555017394453954883453611844710481934448274887984653092451644426428134798359212495343383266787541725221779134141153977828318126020304230399350005485000315440692235767663015768970520603776204201667245928212240043491800165190470673809943155515813578591694237895349296317120410333409269975157633998699956993809941415747020125060451699465918214694626291381259989425855905503771134008442885436871714903117626495342030688106317219089653282879396735325103617958769950153476709343674212732867705249682312456247847664559166385319834346684465797654592493891837558193893959133744502644654207837823907369329961957318729770032882537782832107078255070836177923565308072164884284357750527646286885503089415127219180157356336968966141148608140990435602861385975598107011613025696991091337214762808747620565215165824404876312597432612731920878616496320599528808252777215484905425517143693858782596546472760043679140870915784224652123839548673590284689619044683154100956322355289953120492424256766119474808428028887353584263057659540354632667130352673082291618859708484704410186314607762327096977551754578503940776057089273663518734597620123514203639569181030875521815389148951552665306128927085867792061797530290827469658845452853804949388862740786464074895023052297754694443703059273952085522913024086963598870057867353543053549356955567502616568452580327222259141659257226541537980155664578921165137062528790296283113788217144510031902237736952894010964731545669694883176794130897643600808854857740382879711972869328502064307490598304994547319725799480005893689734763820127861047888142472865082050278444224052867382915669271439874137424961931551441757949674626098797834534038421507698809275997728706718999425740295342295480180923764070270762035106351722301448646995765783795324264263032946074466558527465342145284406996672484696283141000327085530402073298780266375465541310689804049523774384260484791863548734984324877000224601855199835734367468898893868155708229760521081592958864486169099175428714874638520535110452006541566542376894863282390372038352502734946548695232757520511726807137468260831754148353125461601068656312655938989672648931658716098328067143931249226558710244488756762809697005234981456392464535917697883045163674454668047978124009455504807348600639672472274994896639843631014851765895119655355922917309229137192323473749213863641949704084571716277374833836796725340767354992763552041402511238994572601510775770314793161096776538618413402845345268447380685905257228386769179294148280275131600594644726652893881645706911210934283634023545236995326974659861028724795543877571012233069234672983168266938206195544800028636912521236782071123117963745055030596241845587887538016979953817649612702620451258589022407844096418448275463910093859067426555766044559538101708771980823100539887665367779693155969850292639980502898627071721605489598368125115527419659126427712494396146443652937458002698511303427846865653290652192075604624602643874416574841941458495483599770262375376871504667740646274330542456440079092625320816553780853295701971018642545117927261470297170391880096898317062212150795908857248312162897720379840185203532103420709320341262480899226604980675303451992685021934296401474213270627366867526757902938366026952150935577024659052656185397768079110764018070389958391826756639665336764333038212230447317068536757305155418134560167240405803436701486065387711023092212011267103426861845334014732901659240168343771672321185666631137223828678933557730928171952827389455746099642683155550696934885976034900500335953970565275570547394872204117142318707115243560146010381213646080410463919491685061781738634658962154015330909789251380728342121179542673982561621823353314446514107771381518644179139253422199508638800561197026482653283410914336175736050464278603141424380107477164140164630427966307506167247476724011169248515454879891770313693867711237315104780955924408353488668346057089162276402725219176097766243182366844047576758470337045504276015405295275632489909862825558923447260772265777346799342862045776033989671599109400853153542010813523982596949483847754517468241449104968927787980797762989310009816808119494733381411507906159979661347680983837642661070994022153369123306984522270266554300729899631870699348462998633236729492953366468223949912305365282657424531809960770944530042364293416632414802374090818571696546231111806652854787630244282591436822048026376062919520576162759771703409166656978434997107333675430536461096227198568042407259849293433037299990704992306806855896019532628896989795068335161034073898223532993555080097590192713020084017589999594635854069110742488851924787931827072567143810675007851552466128023596530475405059806407554219194484768645609243747742040833496017249175133531588892231859508125258832908516766615969512673602187486860926202301971153081294571082403303735162066807142022131093587380333112650265958743122516576880939700453239945125722164014491194921121142885299632431068498048726285030024342329046228430698146675890422492459452476627626038794212048010759632450951973678681145635808646876023652937115675341424362634098073762089848124396277752758829764440844318716643710269346680809854967449803404333493467085077208378597325316048626121170326553212283526816755561068682773997673298586712619753577852309044874580751355200351191007852503496920079752227160028645448044848794134984743027008197833934157003293300803918844362232133290609409656311955408348231733649032695835222016077485379404564709435699577491560626064076587684131305015063423670878379479054443882971801664641848837979389213057118457238104493875236836011216612108667514080862444021194004574616197253810681298656471353868582441052797810185681290317089469903574671402235703628576400409630846989383553035068086876757273451513711747612219743902241404397453090943134858103698408766553203749474345520150340942023499623346600691372888446373564003843405189114572571960653580183034288425903166076944239694112235670437101032867164702538002831756879367544670265313329026671705636882548531573370382850257702851445691510311791905684591774884999717970177966944869276765237069648301551278760796449451596291488024651277537471433736360714329721726385807273253511898728030514797833515654754230473652308299877127098306654690043483056663643100857631944204500016150333056961627411945356529840274964881117955735799160540619197509230033508297511135782373922303575131967544471835745072023895533069905488692342621209865238705397585297622846552943175195064268279336071616394354917658796654795766581369871359549851921763280372627242078706398249579095521509511846543982729001336260307354451401108876539464766353952889452060124632712567244574086303509282227558619580597535019619478022192109010264942044876962148473805730806274660757517156624027749247992645130149440577828670532963439467542353815574915250120963375283216206219570476207010509367509234723144803067226223114371636962411628946776157894686245535857729964455126708225368066691325992807128564555155438588413349779413527138987616445085414708503919537678645980236936303608626856635888971011889806727575619239146476907989187775577612071907507952920021385725235680465082290668361432344351689094223158705829847679968429740711266230533590618868119122204398490396066594695447754240147197006802328837033496513107156128410934762749812335961968267683331965468852952680709273865980084817764884341662871229563372425436297031875289681729476480551527358369189103921711343878528014302474091190333923676527379944836462788087021881328565321719889110612608918857986337457422901005576023493640168936862123598610032542037868478740750127312372328926460125915400537890219036912583437046163742386653986233654689072111736697201761533469878027173019000114428469784438037592940619853168606378262474789280123704706832395346957668802359101561822678730737980936136836721439267634465379963830268835564980487536771782750207792434008995113242663013610132563239369652082786276296274961302370249657829018157087115902532863963942103889993295116114336389860910499889829052188151400000736975169659085017181219800491201771908944409355700316677272446218594324253607950646644628696565195039327070843718371082597277823600963476808783028414472394755241807290048308978844268540513208805574776075175688144818077991344908607204695419375989512601680613861654083806005274789031324415852288588168970211111661278590853923122126995274793488486816442893574017136315590125376303021544101789232869490333114306629290928383392681895930968088375485960573038271406262623283318306953411999544607882299255278149295935279612871077720527505464248913924019809465137514635548431592921567589777265582555430251616245325838113124688753026967111631876626579954500087379719004348923203616372229868579821795146066003272175481866960762082094177332693765156313305969451284326729472300579282883697118311995360428482228089057290562455675906118375072802467428859712528379092190252330860842858112516935742675717990389863714332542911291583495208407520182201481593745380886997240871610142701614920783137208648171571122423765640012158073249418632730213881046682763110300847724397897533824159855212831084252174984440465465702321694504735260786806632376235069706924461944862434982372558668231166237812702497103203847873075754112610067427477951034642451048069774487615760094261126035540188969452699347793545371566976856866891874508012841964018953568554572372924846163650316650178052361399024239906994283110813455816369721729572537912963738136814128215614479038116385634874222825410277268317217580474946934914182680279691055897438572754245134494738941308176341102156582187166170520257463296701495930646220844864877132047249858899319050929975296225940437073929602305736031828163841098077409854719571071113173977363433323522683247721649826763013813115231468879456731709936130037644898315149221341498735568493474784425208384523437203165041101973830933739145996321233779296131677042250416489354924619187101553810034223903467228463353788280519028687135874957620609302587282282224752221396595645258416357973021513088090902522782077436105680205179949242020897290897560017669900367037999720626995079188766808060533436232785279140571234168391523142340081815485060304467740002805881378600289285065703468592723610916242893644449706219288067616691719883586710691878530863237153040831593393023866270444388677517557740168000604036040573401588129401183156525332400598770425770238446075582279647005471209654004270876002643882448949914108544219196347558804264662789840867012211200872830322271686833876287743490239816520155514505716739132140139934188610039368613242603803259341660856800183638255491505976716812433182536512256860101225288311465478610793878220124981518695525648500879216303809955922884859435823121814890458249866115746675626214280376575695778639257082892041481470198686172362873145193327731730900954652244977209513974229398217705807037174266717490104541088392482680904442755764112788606324985920822829000322231231099490347801940345271170994807384134277202437955124205779644594916873588375287759443345833532080132733801414165437838983066165229628036416014416979631033969737809875562668726009258679795850970662745329378756965625455607085806842532199053072024047873385036680270361855400313196471909016562018930467508668997596172779005338902600714814133472333998516394343649302949642049934860588653098696985053737679960849496249174353742674066339988491737958373347141960238003172967414827898487704767852876667220498982342043416995217763985979988304321147668886037824901270060620183488148917347698305373595912186265747243069653872041681566495416682916800259131469324761805768085673476128180456479483397848964900612502906584236324443763613635401094566600726979582061395480280888017227105939973702138764532898343453737371047097299538976756323020137805984295508103368839114340138709926270113467165560385576980986371585978418791553487487703108410489350240627165945223871842139183278902397672093227190044823628967792780733639053836817854527951236862034329696812070338117030288969391366363586103624182088385934134372971037849944236665285494604257683410820991273174736146839780463008029453075575525809044768337582484227335132102407577664992002184452893984345522211446384441017261189275448482618803285555524130025454169341796862952655361499667232957660558209222877070742215808763457331625777627986486596967119081589353475542957194341100615649405632542690796829335924799743367179592324840661496929335699876191959266092339627812907723616199588756534226461878953574830004801118153509807459922171404884219094086209510201821511744513544488434467803626354068813743294824306643537015047034667078763369135470095976437647335610905863340443027895885426810625307617565242661312560543758676395206157618264797237088201937060235555870888816068936912234056917931011348501783232509881554426257527687344662853796194260536815349603382757881229257520924028589646578889495750662011268273732560206484469904696128339719968183656437370071862725094022797160408782406172219860089757198625142318295148454792022272555854602424942346843248738117651741278710643527887821090222932744947933118331827266704049124951919016880016122006362443753823790524001843183199756165858188484743012630650194748687425511652816284125444112864130620321906613656373575911188053244593219408961767235827533477915297471900805331618536728649549415124267166619594609787351710161344974480873600246380885726890004765007604446240770151853114832550049869790860701278640460822639924203987478985255662547782405140694677793371865602490274463651485725959848269184733687011576787572377974184487247306993266212044506893389930328176236524318271930220945431080784263059127456092041403452329992560769551477409591812460562688061322391193146735453804235125323967998134479097280854444059156422318005490555028544769181548538723267164089747881418239194118259681536035527667116586731914013018706575902416121469951775199401575989921438818853271608926128571248173728157763621184573781316682110893585128817482344554087534329891964825831612691482514414479331190756297072124080761404676523100512208433619672756738936703780735320201402286884384041236816907781680042373686791278122957633689272940537610506309996098789894979428356648284032975828206298083967559551896863574111640645382186821227249556137818171722828765701710225375904532764410055975503332828647605618148891260009597405852399326634477100800792612188073006222740883270425784512926363190967463085542757053877058207851503122773677471117942220148446108640142896046646666190230138493238587224173408952713446134145271242174410035691702047775069581609695553920564476850306939262981652192713968210948230015841547254194442916295757323482985067206209384682683735072329563514064701867255035596921418849976040147638594548618633023913689637901061583129783860343701042922130617361139548746883953994221658958237143395678069293875190601121657160520447874293022984476272986629871326480943602794721871671748660363319269870349891593433139027353638135563079037726066706740328133847712296688753161334913792936751824699416393663801399430106076922446347377205192873014570900307593515781574976416762731497532851513801353452633063837029388345057858897137447712540545683324573660232851091433912381893987506707475370243786469723640741101145405092527639200545620625668341428462329714448898105851892871784117840822889574506086496934002128624026887999254636553698316927189189451002788538713690982905954141515811179090143068012536162242312743185848465783778667540860617807357393110542870978616761706612076750982310605734799780508436545380777938900237551746483434579558144644447249455163258619996743790652662226361246564611671970730659649449219909386355899710018594701533385006182047698915251110532567204566711017495733755185940141838273362009946967961003617934939603505271231409588262432835068855633470866996792164149978251155985121011754184415492282324006459182064775090667496968739840644419908736202558839127209571224214275060946368846333000230717539610964679180529034727380962887614620194446163299709566208453612079614245890254899543745657478684610390878806635904483887386786919465409008208451786686175717120792505402385473581066031105132883487948719221979602849089102109291315033868382565732452282535663729326578026323343971865446031096610936139244520756314926293586273763240959494726548692150598829563126856959682836852037471019609735052499060386321355030242524555571991840685521003518726778738175536818810261049241783015143161238986146785581594347960314731018809822295051627754214183500927576314301860476751522480946203071788322801710805694985517633869885801999565818607043858304133811521525700167259248523309885918847274078046875046038607083282983723648506675672225457165512718858212776882344278080662024614544755168723061167536170670589703012220040155402962135363874680185942967002690428248494006603674319525617315767288410699219587026813284067762834396204955444517466538238765480401253510187831042204188930335212139083704674572488472921141812391762166612952375081912523036020666404430910228352240893766002793069356115141004637069959678385604889728045607371022166488232301481288836656643102135167379741186940409017984827805332605934048752753254341477688772434283534415803357799520635299028306943898135605104186543487634833643279246402819255614510889868940645152542622463607875714325302565574875158473000799430950910792179160166480679509835345120225923248617617725801356585398021224558665952054808339042988454818891163193312861544800898816267958958547624136330855026489056609361605623806292207187926686566554755386140644280949645181840283943536402006008778892235988996497835171724031016452095459100538949111860760747760873703438795162019712772985073398616544155431169139731067089848461622362545223200732854230086875962871987058222385288724560893716232295405021415294239684736897511806152135394584864486832950809297483700920554824001408140210913635020650462085278339449467678424231151171327994225282546109976223328986681191656072559148548534200645293498119504236743793905721069704719356747914404740569956681978261322585110175398693663494861294169877294597019660578548910882531964269480414801386807615022886338891906609857996707717907495995397175220724179315778113042638004209277091860743505783316892178897779573238293609646564837031325565220301111212347225123072833440547797550553860563572478029171858942813674121106269589221045576902476051932964510812707295519112063037261204262212780503698425956625926054772914621041047512497185983917355817392843708144731207855549740055659726947837932343888045914095766803687012158907792980878034769420079439858127799063055689658906984819421243498980225576005337789700228266034888554151522271934883419424381141218107155420674226762244697881827788105697003067076386679512928543780462666381163838530986387701208959903538182377500117339477749263537748859615438210883797335513277657949977885065412963393438516548910771151851347977837480471778454858032566061867184712925210816370857997748619622873276927537019411581739590299370979230959786012942243846899757603375098935283316000490579473165670539938078970349713711901699985340305529710194517663568792662188176288350782969829746482116537032825619507999113198046650245980305718584219523136810487374174563713165756763082204901610525703734047866784504459595912152539145821451393307376134739114107076691584807586815841938827978122658846381484647017588666251287433086441859411858264934664632954877397876563210246587859138574915336181741262881639014673874894031007692047088882337901036904786480494730681576851085872766795347397737486338336473510341682573709698928310491983470318654943639681559476952202539526025009362933442068500287567473937814115731327298110813935028651725613627424360943213007399479978760238692982703987139693980012141853568180233958842231090159225150295226779195935836178550820626577318481217027028819347854967166871144597526451421002300318222153180631773790110177712426973482427166524984992712285277847705841617943411613105284712800041327004900495435480287454866104188028087003724480579075290285563042400316660646742517966577334000835196042917797568864310950193281877844535521695262485327967287976952925614477952873774896532181613701536983162794353039353436869410820510672323405209338216608991404654826309032365544569086118944520227611891345005898284813172199935687337682839784615586496666003895329066653090327270686876436514348141151286054182613534243714554757479239856788651295377650974627821321656673616640869061183495838011567757412798509183830006890483612433688482991830536280842796269697182766296964434374106941112117926317707326057701525849326161512257851982422917324245263418554502552953966313350104573862301182756027021802073569703552687746521766922904300497192525808058885844706410671183397614342805554335012572780967697359748908708215081419031170823216466763103988615322967084497602208340055522568751654050761402821903493224724576005448505048438637241621780300420692386900261965841588241246399977175467950449368383608840358693754574263769092028448335347338917890638497579682923723007633969204303514170396663479284322463245665229424187219611784813319827379620910696702502404506946603162054164503009710828442905039663546007198541720480965106620224248209356718707420228769708496585938429298712770143598912015215857267869102488334283152924385408908824465505045540007234233226535605946840069950500231358716019677704755479141652580118607648620505285611013616760837398821202079702978658310148247375588805752345642984235165057507029815979096359569466694164380947870437930772461117988577250074405759000141565293551230391079399466415689207248761478030893133180916839989698979004275762468626192915377323148536803836497563167107373993554126079095902651135018241699470280684613823784744911099462180811434133870326064188492145018968787694825258098227583284889727934756620449272371357230918794496935477139607520946935431745081225058108569152136913869115845173758891244720041884654134365992615471423815816766885408116022191697384960587786850584922950245268245757525204809161901031261775768036071095060451644686928282749806903717613710687125329248287557926749874388986151695305094963751269737595784590056716496161184311827015976276001034526321084736599612990987653941744206925109939169183193108023043750433292861252331221241878155020347637759791916071188044342105549201231934268095150451561814364158153004705700962036589688561155109207006854778352438172591899495171303044976886009288612294650473667822000236045765523601741278444872132235616893877818864813825326152486864240873289532317292502247708619014134975633624174389113792096167071786139100950005764598946711265046212268568900205390508531112191910016089814983391509583589909798113293744547264858572167433567123243933462136055000109949809804027315214393758653351400643685532335506074035119384364814657857412457700875953220953987593962545312933725317746418801769481740054877013714523819675617461602644722486369011987686330544651382009248674765470876063518548449513043748500500161882877018194584035150077544739898976695234480315926152146483118707364582847173075429427196569067482468156832052203178350747953566372700878841404872496483193424062023054570187519971378716265462832854182283600220991049968240905499006966454967415653828720462426440934010757599592723128409152657843722044056640118808943271704155905513145267354820263383584647224661825809145404585766583044958947557859853854437397795917796339231583831395483281829470721747158759023831935877184265757848496839799358398515009673666532600306009009577062136961239625473598649736508609878578778140363437120518696765384154979991004403271172242356641040536840918794374579011215658744235376160658661979603111488413388700646499709323745262987799837492548166557942790766358918231597955679481372918624614109980027711154424965405460209492174164842711628587921908585245836926144521512067838342113165901387291324428546601778222466734238895081373947009449827371102609122933300633081208753168824564524683349898001902176933350520823484054550443998581149177060135948635061836861893293715957409720460695100259707494697203011476124384382815059893106807314403340661426431716023593926974485329366001330639050619179449627191803604931969836795402154841513592292924791137025989140949331863006218155957774956960865413759047618462172112514515593542647570344753501970781757048161861385691682804804790480496482962422647100197074083435848337636403190996908274408059387379405136877358341547406064975103975540202303630253048032172122236152334069758989746415405342244265836051994947668571336425471082116955241632999901722020320949214457115529653756314769480473173399225124762201593550333135365798163269649577796319926948830654881244986230255074229585455209754388263167291853596770961149181052780195859171396147449377674971596104875942240863801269270206009545932007403948648917221424717945102169975649626502170394517876838468629589495097728972571546280680780569970799218237636437551094411869823077120626302254193367525986198410213295073818761596770792805697944319123315987441594138631991177835039628218394632122960795731319383279061357302753450601151853295442837114238205246764945283709911165923552870531994271874622205029380121576642722234525473863244951952984196929614873814584948134109706734649455029411493650251331956236870010825264963426229603588962511482364432685996672822614614223610432054894815936617942844080110151846735406655973602523433531711032669841549396239639650966143376692872012536563193414990017009921101646144901806418264503330022882525648341642769589874912932688710418165992235946351298902089017709654723605684536144293376818917710520055579578490595423990671532091136715365099183278595968010644214027998158802255374442292337019084455036898952625996263982565840184022098740904327660497637242867471692555862538708728847942018258258037998223927067523736054638064224029342303768156014239446773230068893158656399228429395989357508478162850748130900619018188178907697476237880146712349241005889131852110898249971944314157643259564336765911149976499090163762070502678551840334202142385218401747897275319257822220333321481995492647437935593605733766506389339488838567098006514082765515628271034651377850545775146972125057605442698476579139104402272250910886013025927917192339321369829553048623125342852331655257885766322380858555024897789523223269406555093093377370882519949666348896625960961820245445011824750930030361957071758826075565639141525484081019743300459756680248783126936069311920988377437913979484048056160092014956654301203557401112717368763211149349838778851894530554530947653867642064615359523102377648583973045710774921600962605979050856398894630831247845558365228360630337292259761455950621349268339096502947574486039615182930696068467835934967995595035877662679443432912658375861998204358502120033246760815956168594067375260079010662643026588412255224551796872955669024718180807893609810531393867956249603586703219053955592449970372115117432360616637716686794892188495060520407969987843839646077037074346886436370370046119866825839697581711095713212826887993801126936390891247995875148805179800715005225190643175023917239538343546664647303617558554754877874830558649673185272779382083232831631332652523534464856547868444809433960693864155617702821913127683192825487501825967241117561973475990112787207515952267712709055785772027128932570316321211591035699056505351189355935641092127836889766129484170419395260053044661344963376366863959351951427257692949069807558344034705351903731328860034422544622192055609344843027037448427702061470438840768487252382429403291847629540435416175232043455779471625473126694010681542806076698922117941741148257656228720836738831790092276731610716303534897131155222880748087078738029399507686298044514233185896604275997212044679613626060092571348027391639139867277352421527590162006478336942074738460193861915387852374530897845566600867759348516860313696199335225065444084524361191737800695427201314234398416391933259329802628164188116057212537468744918322850623407921458214367747404478437287470717804465738207518128636232316777348675332768266875033284949790624819729740564487419871282476151936122435166743335693024296554107502657174473445474521918434077528870087857638902402747705511829717739319821267221073399646627578408040743595681871824519373718721955202022567835744524483898037277978347294936738908309816129506847799982246625406708373539018706114141065618555523290385419299283802472722128801731112619212944923137582256649881222989290987517448689427904761551208015846289707646137662747592881939435526357980048467464001644696091534711824715942843403327369589455596572567383980825155312793542279857113393679388394157721856533722022970365003283517932449579302593529059555677848752025897553809182364030094212837706840086924149111575025992228064191580864070315528444398011423786302949318836647737403877405163683681218641701267039801373369210306646037352254689853755503173872971320944870580957000745456123476451092900195394789523394072738994473658397942807354913549395185772030245107622092906363080682220595055691819737817330135985534472688102908506159385696717543625941552458888281294912685689843881053804914886063736404372592621378403478908833335955536944768040781827176462298371112351719963286429140008167293343922251228264854823572392888820384919215416414929442206231000879466233275194812014116508590254140260559051405311823938399934384613039196958674344951381523326719833332652625856775051372440813479794757902552997663542113603757643818291110564047631270352608113764144490170610698038724316077133696679752577266795091535244870813761676481463126980581625904038550390323470914046296393011755831447771526720681146608200317439560659703413818325462078743886412094905660622354975798470249677151341323097136020829397026683559596203818765295787154046262322125230117869727099851323074214862057932207456215756713126380883428676742074746332791661681409823297160333494344770539912300933893151593467546199961238301693365448031716529988311944187821330060122538005539471298349468888435390635516535995817431038072075185174138287840045282335724415324488329443528616988622006924275108412384701769641369804093510740393386404395774915159210837414651590842113509886590216152741676459273320626457816161766366649102546718985439662318350570163500383245543139805157942123348193765905817663425615711863395170709978446580947512796443337208994920748631667407220752567695780311882605555810574700277912069808415654712492787468940947342306711968549910182327595238081940603335901208892948110854965419698303156606579148607407416898774562659477834023445126086570306492378616844681814119019088781381678937918676852339070710392957666212566875779420424238309100214290164897818020860569339357962149510830525330556500446684072646615203906501969834156495963584442646867028513172728580136579196226376053876339957754127162673664175068079297578691634373525965510370071735101817074187189980486288896864407691586886302708751749802618140207017694855152892069463578932344592279209568809981432688211900192879796416031804756073947715275904718173442618694479764162095667073866692649167127291114837409299023604355294915110702283329993948245703013049706049392020123139875012372838260227219049972967866080810590753802609964562259540017172101203571867600730512695163809007719790568025292198390800557371008412855562667849187591736824425670600759056634286667180322821881411044624870981381894209425614558278758818408444037817376046575136936703379637784548352829742590776173136896271715039482079251369432138180421140877805331978375248049946753485692231674793013805790251412990718654073178508245477160037122550972210953584398036796247897652605645833576969740694041750338753386804274192878813333004512681051093820793772949892466663997823489181948672974441666044462103954252708763643540770546961872150123147567469239845768323272059433363763272576245837826687653335872420768204468756278866180972251544154069865047294576561501095070409976408149800305108487641738644049118635910297863304523466856447381127146544884948389901210819763010552805657071534881089337144539599074609714136952776039589277944616385958387875327219840197304300085211484008098618034750392104898648210309853451348786718734453143314397581770491007908627719870539867179269341659148940946250316566442622831270176006101254869440824416249300869688545278942912624925795035992549596303929561859520744326495118472471770315959596796373715234410441774339301979571560074877474147027338279441674437103689541030387215893806730520501748294475052624228621594051234311771470947068989057488499812846612666599235608174663295218815737361835715509098177783453407168134004035045778121148992244475949389872997609988478150724455346889242089092675753755170217336336157674308770248857844482542136236131940396201108164974737030144440462718514793048622627403808521565979349902008589475445647284392640104780811804637696876451480406964326099238690411898548708368613254190008961885451299874254199980372450538916355196083686400318899989125548254919230156738323794897039269074133409841843074700685551484921436508944746869051593334658385567444026224812330579983062753516961958257811694616963420851416926650178611985630420928293877586964816585659236983516474051320924047304810513979748340448121826332910928890505195124057817151252856018007385087868012136517774530330318272801949922986523301381412422797264615281869415132404599496218939775163335215519105993101163954248257064483923077199625384388298234389303180662246106132041087435754257762914460225589125110968741543182732915046438335837121631410181985364259275398557684596802257405195132358251522010596068206315087141328562948935941549178278411660981355566942891251502390355812155106783369233264094291783075896509752729939313257407996815008431134982559084269974362026069687868057879067591579294192754239996931786383239373469824563464197322542734810679745093028911420100015860243136991809450298937384963400967728714775663717161317665299357011119226091534796957006519443532161192038309528347548688673538966371047882348870876456231597664166664716075563566139105241390979923474467648073154085819687039864924410678143862142308905146170701560831884162708484637792800614572376302648812898930826115248590151976543177020839593849173520004999108856874886608859366488787311158342682368324372845263800520526581954487560178574726460000632954363817616509816641693816324199215576137145387495443438176077688365695249105775098122774421154637761619301758882149789237148720504905699970350853318294304779248324360857343158718492086671711421517433214966829075601324363852668433180358566484249194052974887784910707880592825060285943305130347156490073262981045241184191047987815048572326410495540971121062351850401803421403169991810858125785843482929363357268489724100155859475943916165591235092565016766924623273464939322626627447477099618182634958177359643390306303787379806206118978725103768786755096608325212644009572030194798890596054476985751323988599703483375835413840506022169732866146497074375615604841455724228689035757280865649468499339448500432684977718249290674438898125995130270403148844271326682929628224432272868436777837663013553165934934714088519783506891022458398934818570188747179978915454551429259006108229228123179320373361002446024840596417416788336328833037866308245405743246121674693875822662969416580182470848192220472080440319439117667001849680139755992426192643482805856537361188558653438026960111852822598649694455877329782296593708213685046451491560859592373462412168850918442357014991044213580081406515990079061127521652241842431992218503930310577416662150122049467465810834547115057319014661688544697860220039704309934735939925566969760560376291826991180120986059150097016332072444944102481178972611134752284553246093261531255319459178686523264964648858743489300550853352348593990798167240236744698984699591683980591539474773299519619505543991607123144144900086100733191518988055020368009132399447808046460951716977652341578763712469933321740378187486014697385694913386773370104403947335761418775720262424912691314652340107287775469218763042444237963684108566057031562159725969432346190291960030475479139557146832296774628027534174216666887647851334999929680240296915714171589580765661470454123485256010630389717166523690348363231542429966518631626231978404848746448700483828748742667372541795130144129091686111385150381323614366017311137441237225868241274967077790685939116523653996221304066555460647526811638253723208437719079723088623655004280782650985352532759978165293866455755190303070262998829876663719727542885342103273926135567884733145902275357236987387364306891753932023013113906816600041010343092956721064074344999572117320362372176463452015704370796552711372160236768882408072553443113258033808538874306702796511625455202218406801882164875067716506863956693600897040945871553735692629678542679294053508566544137698717046373645942609329428246796762894832211555353561210900110220683943398770903511671279466794611653479637928834585905075091418106648355064041943803143656620235849145964096139860627642954659725653763827539301660048162176812224150557415073827327076801689055654295817356100666977808527699467962557584893966703407214784822418931076976735896334569587744150265194847106317508620348075137631655348110048362846553064334878861968012388969621270658226699590181820959778470784411048113025427421878238387591596315326499515075286720555267887196745799913747982154587479884064567460956805679051790508845120786549620332671145581159702627006565773998163795008588468943593797009329587882415547728139853780602112470941235446131875240975818117394398514783132596930239382066488199651930476109360527094258167098884728135841017226735552872476818599062619095318265343795297285977810881621221362305101299196565682202604097000401691578756193743835854746642745876469445761972321314229622948633557266662620771364265757944363026286266929658598782096798990291402509417206006129431704338106419374548248622445273206737488395530818410671513170274172653485405053133210668731237419016319867691995736077642151074902529905888049419795817691084984206081892582301834773526635190094665160549167799628451221091617567478276210116330726409120769875825897794037418303191184995395475482863232159966027498900298617616300006814179284777919427843807602899277348732499502816957964775692586329000096482472207522517899541002847858985672835590386228584931867624403040350076180829454043243328910737355202407101420568817092518630874159850751152712239783111238511994270388529760125026830772105509283243536728025573832355159986569548703494431066675449688535495117628986003372450785673935250163120011248174823001269873001656742608868061686890453782962828120730525724923883862351700974063486818751974951990477882276019641738457256346065877851260595144282001036310725372785627754323316710418358593516027323782766412290809791395468656828349635882934226663629107637622907746620575863432145921671726264991828981048554577748549625707006802796638218955259460752033938996762700640511864437151125176497201114337012421561086627354689620240525327186857810878060810145049470948250517138042770309198885490587909067068566276192490255842964884477887584294367917488086225128358320805705392830190037325354308934785259328265427752285248508080113470604663080376726991458878163215216790252864618230948687991078819539829404453576634147457327510878513841231497067766017808324667076615444295063822340485958648714711522023944459650255383176975085094052995688815468418269354256426450059627250535108512194723477546833327108400446471274755323753998693725729063393732087153283302722685558621559080307812677249900056307160705112489126758185419681939711204165001952739556841330488462446388184060385230178071987999677363035075519349898067302330782915094181877757103302285305200191014589493381586565577353056801024575902239764281848806060215243713110821774362411495802933342007296186815384463266422756226292695816646575733550311435339224166491696456045419027659087965834422346145567776944552435586528696309216731740164103180076566841576748036606585083229562887959018534525202584769678193917863009406616925182006642123901356424143979737417753988831749259432938880461138305021940725469119955258354611465738097545258137390395258052866341787768892047363047032370895787367163468754309511486220122085904051478209731292388959803501147107807035122256209523154729118508155715071356322066606000287890253922678698922474121406969369107423093343844785930614528093984923840586986761535180438927289441897521838522377136527654922676651507032520483221552443334892837021428626704730098994441112613808981445639180975175029896126903407222681219662510222886596693003267749539603187634533611286540795056995496344028534234418935986080773519147039936698508820302775396517809636045424561188929838668446228606919907859589596393623151165433934278877875770079910393587673496478178749763722202210444376708545678497073775067596507671831075607469570153791523495803267286053089948570241333254430096040051598816113808385916099375395715268162431126080616761882057022569455462866231049536059255148749515987187612939267463021650203758302762091239819783278080983555548769607438821039661328184315720092184667403758122568490505264072512267758849290803811120854708238802965447301506653549190498991400109163092147891077934974787515164244319417067184799087816899791150946831453280432392631023859727612493008489417510710933706234546400242882541221304465166655853812661806362457061011697831804201501197426960105259621189443365405267798511561014370111474078759403283393473444778712945225988429705833524502057900888763677037394887539810056173228215386491291365231806420910613133736811574634645773676268885781832976893892658276995007191700779702477328587321472101468480001745429444302368556011547944266765727169798420843540099114303837743953926154999952574197403348239814719163692785678056956514560935312261674044172013777770709587102035811427505490806580389807974799743752552576328359303467654807625368478119917416644762039183138410784848978558650740332879918175074591007740092937832325174792318023756250829604299724900896645296176785386727583511408220815982037817534152539332340981409345455066132530709964964277783302308548340923689954086022672846143638794332255272529493942063595458982758167356119593369270512655237244963510377236848960217890225434696460758166896318587795239564059282883407364979608860422061688692566587170388401700338952624156247853215128197805957190065221113841536479573288733170394193712914682512070461384736128969363315285278527807534249075245585854689031845843765112319281745164921224797180083970299901301085788321366025121568713548857561062137952713585035445794330346352821693269986435644465441956828905777225651627607235766092543230869847294531422443723848540953804919417407435569691408467581881556511644690221317924219145277735077634373059098908611494331098553516206845952111026987009355401184776673959824530442342869050286730591006892474848683406023661985857184556365907633058715105614193944992973536069456440666694996123417569351318218945196582365138466857851063701879087026831350613371142370070348572697247293062409305186816382076279698012130719026856862150293538265203689496656299740894656042414237914584666545649096230765017867164815723014461527198067390565569321742729018679567188279623728518865419169663164535820387432806166040145182779576208513528031134984673189185404362435919341655862273898789533758768282384502873932706069274692187356863038375431273052703433815371441946456367876095159951944069494256100252395667646514550867449486723390633362855445511361196323764708076097425946815161312080498721618544578326292442223968347045735204882942523077259875051964263401454635843808154719885314983386514450335177742196671671567634035712910858398753519073597977361349616365438363257926305027272443356511497979979646439950475606439769878062956130127095773847320064789767923261075817034703860622187995921031930481112562806225332530836695549183648291052926190012108712821322466701918618739142695946178051897780767412478618793794652599759530445265165989263508437172097105886565738120381943017678034349561071354779679483311359453527172745852199784951575421192484244543604094274705652159828547219370914909170451005007108398520762350377428613734706737688271143884789392624687718740542260065374674965444564301054045652978362399490140218500616585464553074303689197573917803031047707431842669045112574230470981696226525216785623173812419235034964480971020498197435537972493047677564371851887629951147814565956068745973436493050132832020489854994007329220332737311843636316943698288595201476759659163343495553500432063694580016940752557029692558399067885067579754432707572207589176254938819428615020512193831090268480405459797755181003597611506375929481902528948376995852442223453158752675029627512759728088996840223573829817727122209931088855538834719434823508339431751255688450124672721568963902729029357290759767962510708215525208268706818506974871642019946657614222234159267952405666030419112352689228351738289308898389103957943510201312497694788575045273531967387215698250067313010098106788372500806106247962103686409506871231356371352608637696126258971758037188951337814424738245007893332778618802926998132955515046795424090169402008944139831329325156300105482497930959499220625002449543966518351889741996351054278897308789381325125031621872895288209592924184668328048470999660999448346299998307659290551377576805076506394089878918859007273759050315651948971992860917375181300833875770552426088127215288628617502577220730850707549006760765767892686264125857990354336244314967402377779153947958124723681177686705627145909551308265358934537745144701199468127227796805407390678193266675706457121411856345959776891961267030875643646123153743581261758716667806008173448512552756088366112849786263289061151535478230384242969529924353970872412815636812184857347556962702759740047991351722344978342863004072124503662113052945207884320976933734063880450125674861093109638940816079767128286306216523662759242213507587005125803084152383289193049666337526992012231047592910364850223926568233370652779013144409680683516580125338650465104091988817804798975190190904078892251097745483833743624770185777698435601720928875762666332735227620274073686679004244264163240492677404115302641253881303086279194270011985799225999510438736466992421867591468611390247221765406196815260431810151287604190978802086821308268306983542745849479520946046697393105631865562395274287000005760260886667024031735817206869726724939717628936496396481864514452689147948594505508760928299763060608649775141671834961857829818824562256524184254704663924789131758734103841670052258365425255479677511162623010605836462768209133222286968300114510934182700088323727485996163617887636076829985006278526785064483907298058192757628158562277499098073654710565326835024372493113266850162419002581570647262984755560305057864412320827967772328544237632597886851036658886206404880496662089860954369446720353560350556285321071699486082827981253653617977624417723806857084042391289134332382051321020865265708975818474345950515468548313668989934991487172512808330183190363217441362258898432661877682388735950501727222708616919863949132867358227888142723678183846460615548187012841105685732159039086502937959366517951231231953785324641609322959208288537908241490011057155764941213595754874548706357207834392190903105865610508794451667168166021749786994447801313368228999336343993841372280990881305574446554621056855305166681234869654135136445791391678281650868491411793575128418866124676266155685195837507927324832788689809826702058469518330950730476740517226312114384236699704001446221041125537104315314605728045002044298460268613525683803630016188363592635257327553282932975055307383102370280107820429745087561755415067737177861983325048036451734063114428440237186859703141193660082726163211213033217552673950791516994303681980705090336355493990437021054388569453917650040758395852382911160831738045841934764258652369261472187732674129566694788544131613795658015031736396539369895398633266351725193867802643465344313405032968834706860778695695303839156180658231917722986332633157369286100169395936275604103540394987349275647607079228140922352055368779959583156087732308570952082469452579599881189504856548850945424317358933234905977881622142462304721474865429982021413370145419200055101423260176030411630219114688329013211056465423293023298504534570537493344592306171687709256790341633113799879314718840966557036990599148677835334992130406350728943705392275904996127599934931148816257730721753868660993431034128321592845442441216857069649103410874663422221318507331047593412494548585176945235990999163134186420841022210244196032176645981163114298873714947012383024319380628570921629760212930941135463905453246526832374680293199330357646130008413812628919759840041203857812500397417129595687232727372782665369684731312879299564445360947314244620605441308131856730296244162717490492526384412814830899264276455526350936279800488562207344588924074866511796769691621238185916223701495650086360776395017184889330153122318072957241170995309997610622240552099731881556905736054148358318080280783584979857991171235233500085398440026299259198289368772177455540414930203172500832459151684705525921894757421177782122688154084522775574299612850213198879560381387011178670037098137984333829042868438307331045176855449762702808824653030679306480955336338058098475212251402845276490742230338875726678657291137918944281962203819475054239535711009683607939025381224743940827201431927230586756335383165366129452465615163021607664650755697423294937671553863983463253376703851820962838156389489381348778709549266390757627592723610280866946523677484561148939813800783580653682316898842888057143731084605335679265431626566801271909461346531647670104500826887231375043215379086978192326388585233554114229108516897701663780412437151341945500570675894964540425679120753698326044012896699057757412789438226689847094580007400020604940007704624842850372597520005803545959565575078930567081105844419888101255078049286829733622471038889758472622936608706190780157395746231797614238772022943692057119797634032719691282206990038875211609108039035910717508932307002406481473021044042381764740634938000041477367149964841173273229659096558735115605458428007196306196711975555036958956684556195602487700557384494187441215655094751408216778710100570349660889236051687739804875651065906570248780068498721896209717073469170121102099565071127658477210594495034560786385428300936286663755059276880386080483731739543839199710207452736494633102230989863280342762875080366772863794661248196743816394072928568372204474056204407543308511748013331454230611360136903001217535845473130969361085432328447977421928730434318090151276541231794375660923580107806997293666196105264280181692796300557649766625793923637098515517667980933266262301202954853328776488973757145413038875280870992125041538292144663926613231955838593085137715708825198795420823424969416989932940088616451686608031595755944271544203269493982081874199993663733764207695194332250792495358887180537168970963172120038363664050274864781137975357329312804790960016557639673934975028530791028367881734616199918486366813327471856173652440674729460741380186709791012687582371730309844509174528700371818097013623458136632910626907562645905367858136440176648866154263167645828089039540236376234534567101914422365518897864806924715768059337151095743845379299169442158481776107529722031782540304214326348996552918282225851434399051082133699105909306983585127418215004454269388897872576567408372694650515003072105177610976019380351395548713972939026750470340344912110774999082827238122684159148801673954559129427484801568734155939722556486843999909426123886244605387836690760722300918951496880631377283979022896257776074907662235996594801955484220948766771120981284433729584304976662113468288173547844062457548566949384959938630878954040094437494346439679838315438331784182579287481092389997642071266448291810189988641232067673836897486525591096883007730581459930605873098060425527078366287400391865272997664067887817817945420430186354994020727709176558678966243110673172642397423810226700789252028681521923144439988345138373576762192589713746133980157309078079100381721351059885205671011161700758654917134009017959961909804675749304514765099785959014896683012141601320465899756128848143611446632543891556453858730798135178418551696978016109670606590272878594947927248850986275962495354953980138785193704896603602583675817943602099083130010793002446931263352994244927658363692263036876904993127796936287535219685437381889006719593548757823230303508277942878670956085132336069356719587210568294323133579056776356581967841521320491376227606607839216369078319295136539771560012740334751675203712755189618626185131495613349000721236995308360496685509749407808726823001003458186115166459551557195619001315924833252137700443439410811157922985445011548282343457023388847546252313357853277837484709234926543260785504947978831886758773138148073896763575263765816966094822234387501234981877083327739612056696532696382023784446571565276766681433500012342412743202963144723390108369112256381772384401672595094289456920750162568221129530636759186132244041895871569010131774172907104531990673207928003293571928561958577811511314828191257787945668839321037070155753690306544901616986031956806731969006049381702862797387190120452336590671325387997504011775492572001179287397677613614809941665651127100828688506918173270932396323344454025819234949687449230185182973416998996036981366056918639258728920691491727328747100979521488451262621164493355868984927245249128888054043519324634796194398016269967774320813296373866713438693147128379433839807755863853373275602040499102502564084289646203589801732949367902006902678997206312352889196859917540778011172882476544518195182261462006900522665673806112285935832165299882266357153534173827239579594627438207070025120736586857361834359044795016675984010425039370128623196216451948496344600317448881715437852828644798515729454388276868955094651483874287867492841366749151927037076289679178147409492745359311028877580097487312236328518823621283907181347908503011542830488388355473230203376485996023726580687503216577024842405135006953280953180219236664422717507317663830113496800726219593220566780439682664541112298886700814799898373758652156159751098855570925229088546755002887633019519542199368715084989557161084456909275082093555875039966214862495750277151248387333562902870850949645930086768262685766717939148176875476899045578166468867306871289388277011537885754017436110360263655686493579828936091772348023391730754585701259343538384488405282293433503765649622131468390494264930837858968139464344082813283761506107601325963391969382444874859509691172173978762689318756748834964496564795352483666151034420184512017392880832658896812199409612873428148143349867058625884703160800223301273712595593652651849447300431218624541859640227702705741088768819459526030394194223639740573153312974798476029492848258627234750499205288711660386539616611585927042278000386868225604582819257373753986299896632812609981060473375736157303090511920189764173476656332199310945509288647333078734613055467310193075453839806230149613764771373308325372880859482014290465374282464127255045935443903290343893719179733714651376977681377097337634165734095837045193700193471921784627013302179497482731717146438079932165492343600915971312810360732230595680110117932105015235888686672165614656389203353894120730106948228589604889761814860836436880723688211572696839995846610069996947477082138032489364841002011310192583598771978337464243604168500822891073073069356478929318743955691313019306216792333722227917368361263705382911984790847441687798522304752470615358334161616793830404074874088519199189459532433051306744523167036167421848884605415262295635177556545420702246480411913676624609758840044556490339608860310508356956966014309439338872667562331734251833421471440388927696451789188560032289500027447990225661869529954537113602045942937916900889887353862527413836854213237973807849935320697186542299644002265948349544282746534425232401680900950534751533190671090446257751601856732305009778995064545523622544032212991637882058122999818650432923408527595766646712155067243871820298615642985216040037081972069112418818621912344278715711805358634696667742421356017466972337127151068374875979371191406024899607087444848090617742898260423172343113986549150805718271358249604895036156277197974762893092034888768484985177167223480410308304790890297768078980447049149165461028636271316001904811096149695284394050161486183632419521279161226263312286563185282227716089166383066377336751132214865579600634704191902118935362969032957101389341878902879582226806310663499163577777648249806468118840437897244976150852619685665878000083490078282436090425436198041245088281684345202877381164582332105761802861612010510919829004297977103252239663216762908711647486726377922623677518151185755443512736598291722952009131215784987428048705321746024146459286225621051434824007083511112999820070673457848881844172622726101323413783775433671524354363162392770184541519475319371141594649974407082542016636913934668581112697784626841406408291897317272100330717355458977460982198088296265061225021652090574632683876922528453827344193378449738031033991520686234591127911122420268128215717271557719216530900209342882437246187549898317878418170095778525010322239120835781744332793069831442247663580081553204293275376109675572316195717000042045893349289060862488448297775173477030034343712447642327901804202747058125394074960791867995683385458331570266634823792733639241526073332700107340477696033834459588625327550631545660716981363100421457072655328002774026421454670354819891401526511636966085686895773775423022399325162769954466342114289938567248773834984797328952934675123365890473428792284405236174649085311061080046316013240077172436388018309961841785772992846141563418513853437247444456811902587284188535931332572165419945128978171537198486258260644777879574539380167895562926866435480722771922944171976838967956812453551996204022867016332109675717402385981171433921769751680666762076112108502175107829397091174179454552075577864418804677864908889740901545807323037451566404385357173641002609663775107665954210942190873070713123275004277506049209592795314211172608679336382834891590950392920476664487295995146387273101472317723671377047596844793940624815344113179479823368874353218504151558335652889484216441734407257966045226484004499921733690208845586455939244749945202925280476868529742115854801638209821098600494614865069494800645459284518333116918872753893631293457464766278541898652255591393442899064588120925659839474515872293909898785335879568982884608264683832840457496029931903573779270174314165582903766584425136695199467794136869799900423754356649866721912945215703828835495553063957210293502578857902380307534492505432070456706248433486896605375639977650577338825475461359757669422010516272973827928525881902173868466811256376555567956385536294999651127233874701175614008574032286937840497755334977470024354728177221698836568547361477547609911163043088691023376873813202661694625445660757401412448553110845836069831989445921569750208524041612492897454348798014118227627596394182218676633536068070887082094231146240392921166614134275428358470548911752385179046652067892215826784933993684374643314362104764995403566134337680237499250948081687357735419699793735611596550876806297281986330058828117918916180376957002557959636274120509886342893481701714852264810952432505194374108139487938174624074049919914575530506469318057579405581564528885502984218010278920525721527233344617002722097434164002430995538043330416160892970474387390186046170078929608985825861344258790574627713595411611564868678988151192146779914615608913223339355453937492077532058385516271397670772808154377381216858469771986402119130277082385571587939054626003676242086864330255993298065186155955034740010338448158135560965556969922693551608684037131171375032272743814299914304309893082730769886135557794013282560397164673008027335221677681980592720266691293770995256617333624969999464008770332408388981830263650389850222451492362967596332027421290156651133253830922727488141959265733727837167110735236835726719815096224458866857465387191276510692202639563578582405392334157867528787293848223923831925272145638972519384815876574566484393426319438269653413085613610358464779082649280610980564277609828139129524784016511301580812396241000493125757160850949124464359431845484257732552536820614952733078726132537456690178684868904280666039147186948345598646016417519038852915435304470583479140688632308043917754707283463903304974526170941393623880546862511818738317401408868728224020048211570373296352135202040969877395069223292168094165914275672504337434601939733104514363360553617039193646077705106739101017792184306409257843508939359899393666343699247989581488890250666381020710035001379740470497583927608283701463395481850128217841995173797210002945632555589720016851164084654142135343861375545597474208537659376798466848430643262904766332556461123225056749401464902247565371627066112191384370267199931089075542397561913232707340264273614927238498467656161655804703105628789152606273258840874926091725517920077117537022107195291801022640653369164566954941785925487368201700946762674871411007062501799430750148893696024677102496243084940864791332300328955030496531611187538126843164802938423006612528715686495918176901972079625185299008449410478757926024322934297506675216575777251414309399678773070864089216032182745554147239122491996330377196105383394003134349535619856742522319838403252963414179970058261345993023156320768263344000987235718024629561162666149842268196942389382272394526409602709147856382588739239064561973772466944941715354502465494101356779318766144448755889403932283081764355598208748648053888769768322647858828923327513215546688225958130219669332644889028062772154769661171098498085658598529571232550345776936214902728828669560175095953595373606573242627510369042563859713136459124991858951210917023074852497943413118833323774904212801842285826484062093119967965731872545321487559445830418465335912470619982524130450272511210315346321073259224806446976539746092277891093004419394726009876022278859892375447511709107822264910645857182825820346451400278119158367706718399786912304050138227993120225770998964025659118085560765228999058492919096542323414323461206351649091669364492064155088692708823771683766171808361419646892412430296079819823557386522685805127344670186337089000887672767565116739913487796154397372019036038658294942571482493550855700737538024243816594295053423659433544381723462006182009648286878842284212504389268127175207757202998549276548970757818156001228114458907734255847864966336934626333418728017483303126028052308827567819472889265742175908787302726360506982573406708007243711403193443050334150572998855111857824939667657342350583995567906636104405173346747457558340412808948005466544581263615867085676134785987950564775009151173296351407693023630751914636697350966438743425443818013182866422637193453703056883457340506085583229742204339521626705122141589664813977223795872755820415135392428184923828845413644682008621559984820936923904921932753363207340779137157212836771332831387269745645783181111579935319808024656358340843624255904001419984233108438476563299519997724065660403782774821845681022200970812832851176173986192885338065824091296868687979619264102946867205146183151319928435240758077135577612157538765054358836439384683751870980722977707493613454519646970975858609547447795138222880280947724051516218752075265309266163648135281516551428876220481492817383261631990270238679286699980915753369840653074221169397343509810227958664296014560909418566577944735464635591386243011365939098530403565867662952898281337315524519630541295182760594769904488760757473550265450243337247195604940655396966209780051413821380858054250591223389918974663112247751159869158206096833587714696928603629368482285469857865880915291381548444380321491487628913085453079682125432692793627711448042694376565786937394769664832582247074405784336895492175020008708928426841206530003626715120913609640997576240536320988386967669237140587104215586766178850524141577489202845590159547267723412268920856777016133940819784479211403347715292526739216470465459590397826998494562951411333108110543691329274544168488905720987451921451848431226202035495121840785321180307881725637323179606419237607782705709646004597989155696214439554752615752365833041080613731367089761454873991239919839059210644974335748790019775802374934201028142541257532399061212262857451718993738258474176475693366944451569275526211314746435609041418588787520458482872849359018990169108875663399745572921471920613367659919536790763189701012483365193449738395504157914372787207915676586269980796528154195444518325292210113607527779149840247166560122922724415800813519615915967144986375874606535712655676902661855729635288332540331487805028320419194888591106558798743056835746187188769687056746722017345993599472185130094916061729462871683644979169264835389356861680972324500477849111980445381805811504686855270533632471128741024034405611718095567470868715742918184154738299966795439786873655982568993532771770601715420647497695616286375700518241625420106510822584249619708098415009613404106721882206405926241680752279302465962442665800010154118189011657188796521811171562557066075735279736174844535819270834551359018933372702470216243254276578318379991563708512737173353453232233136617037573301180784638750293797832857966173425984818188769782601908449513954586101533559041847041509347489382760538731386391313539863891126111972301061923618424347633958276155326073352318768839113363658702181067753874327904638930230269692921999348982398907498457504718319954018823846892632270311254177167748320770375464859753420078272586800324560594682778354608512933062997881822691477543496675614180935018497330637573752966626234042221046336282471800122709013060226954882181411629868402726136079770444618361125495021013028675959325214535352398280581010395721718389093797304711151639920978043098339459050503783646844753830704697835407223710852177788796163275582220390485056033119454394517875583742507970941030449572371400045615342094589128942370331113334002913049885229458915224093461039452580244426085983408580045673965637484023709247133898948331958211376017932543899895743037474469802594638198834397628623732975484821615389397607647108051506882958070866381826805084257633631105481987002713861637577518877531999966029048372020211956647690185638558874232190971650422725333463810501018217061884218470721144238656872335144064585145933975285186683614128193430563653851468711549894065228159533404052988297082050021721147960143798693218806984940599396073800236258398218822611288087495884772340929434982309904270480034988490334568811137228893568844868377496984883248053169050489699508034436021726733424730666671988232735632256935339528642107750087335563991743237476763281050700964121256658277360917577635729209376613141906949791845109049895984039215237731925299687023471962560505579555377832099381319504856776499282617259664711714698682204512394805089077400459715700993256475823750347651725731175175077536763475040863365266428259147693907117798436430186674995131299348602788509761838351925392760840181420326485495901630080012716124619999073857369746295814390561716175982006441090662384884649805272262670114614061049325550531597902115034847010379767222711427085830972786292552259639842257916759058218913931740590085633697539297440612047996474823658648557362512044191138016333180749473212776187500382172530360862088420180931769776345602299034982738598156819419628019110504088877129871607351647788478334544275082346703605688361355284206247177982908716890130924914654441417335336828543785346548177652257819594033265542132763386993919396835188451990254239186308874973451300367369769448313450449460453000716051899042098791492567523137444475717722309099544616397775623734842066422597283145940246814378620833572534199816292875581021241043404783201213521167463558211423151661233211262037392707139972773126835767827948293750719830380172144347410624178358350906625922130555725950684518056721313215065314614141252102812828915468096120169604796132870445848227894677786079347613437978459067698527172104571259051174097053171804969561679368107029099293541007560045525478644851902261940269954024641215594509762371816413395772343690627873988754033130498063967934976498769490727277467470906201346578126457399409105526485281300819352781532902067945765892977829121895122494797952298050504319411479774564029391382248849239822405917174029019587124833080939864464170605227561420218284493834049474479460814465088294247321120755753677953474204286867018231370717415105791835384899962257244361098635321118870914975521824753149788635898364112521769079961123845519395306894893077298815671953731365472794867937593427997911825001455884332077529998689787538581406034991861490313481715840824569623705781206123677979559420278019007050038897584493987693434163591878388260487072048727562310907446307835500566247284411112339254688092397912157786636152480725777932326683458603274162242374825532897453499417937775916786057270969699399930243427366696077301769614862968389052624812829010424596704608410393426173552197105494130930170103670286822241979513212590480018482353191008323485146215698223206692020560436087128485416512453874025524264465789498509046292968175199139254108366599103645433161507107571482019373326423526900199790425303140099566935247009651168806524983912416974260494225907140023231010224783317709785372221342258261497900216834655252327049206517919898336704070749497926060643210548901853990966110272994243392520554994919869020798785830049237241631333994424065180602612092920557708955649814780694397777678731541365022496844343660205305163940246595287892960183094505505230005305148813452828338895130182398721018843768159358082244013982372802922863297213395602482997169572502604816731201942570279352043007288204502358047090028029563768707504124659744753831709345561972806918317526925670569017050709304991139062108878773157539338086880318632554591915898097637068893144235971722166280494353971544840872970148560535359180459389413050322428673909995775900005413166854859673993791565391130334610184042892979708515551917526990329005760886415817870834779217914243487590557251415585670420706887950109654788780111062812075940990841942209330338433032840101540919560943923079248763238971875030712437839889086632540616741327317797947308719301719146435842090630169082300068314658357575344808359723887937972518291162935780903236044532985715722985753379023476790513209219854106640413722464332111955429485787530179273607692939955273146374281718387158876928398393296427592267937096398957522708198689651863411547897555515594561311479797982935407485511006365733286804205407110195209716880303678447457080527120890300859122106465980245722299602155567454967981024638981545476239848705791843302381364646348446556630514607224400374322963330294253243986240838663836043960632588798961545483126015697471998375124378482380189570175675795667704408250607988363904082795039272002713585314839338891117248157302186341290067734508198273288936594629048933385243665531383322939073009795579321878330470582450137753296518236672220576912304086545024223697411019955846213247575915076928831589517155295229940374540562728878295660905263758444214106304691112579053051348944642574577284946382040226838479162132120138782693147327571615713586882058737394929248715625321490000529935665927368422432735897666342162658542157684873255202953571764149665251868193440969852505228882896076825577299863989276902777797010135061899970338778777445613849417014769664190897625886152085257061293164748539895720425767487431111198530533072252498430180927049031990489708589612195267271151410668885380682674963409868651143382378174855639617732654514769013657763514343238471666455963513182220266944348177709158942840890966628110916589842889502059043037406915343123688123968287502215120898302307374667786675473405097407742919694606347967096746231779227043141290244772469783230971988554037836199729792796763606858169587221969678849566526156718963609665759555131629600485407751394208208626461629942703996000284884490793683657427809770485512774344081819219197128677837038470512847180370843675641718875672308722226806395121204653371524958386918100065267588645040998435760580613916667254425176711743380651416967067643761887069374415445207841299908375724742600327344969200209276770337995371330752700263915830968940730392713376747559124442495161482606080519974877916908785850551348099081567325725304091485396661002267701757591477514903495699059914842071453195475834365621705900505528372295103158626880620854581589342000110621921529467792616398007520953684537947476168256805723880862710308353539113960831474530620506347462896897044700112187487150749611517271671418484289956242991613360838098396755269726123190657008481857210975920697918663348237780457173757430412284503308767332237196827903123694657910531035667440819808454753144756103296287066662240018277398361042840922390641503379470480402219234475242087850466630775361351290302095921260280766847797411775155164197459982170132524260361898616617487583208847011286265768509025712699722228122127802631632324211582788233059192163655240219561317058051328370767855599224412100880010908560066908208728834960026092978571277951080791815020897800391288108717033592183049369609741660741184391424355193205162592841853175785229095272996423339254190121432933284128068844599406417202883758917114849998437120477363542000902153216541816584831609364869127284078919035231851291260024438743770563542769124982646463998606749356122169949597161441806450715691036150847240300626415712430429705885255154790172295808863933102436114061954065806721441037086626390672002817499921108795732465594825403230190817697105726023494495639561595186215760985261657794701993093540395159662711385753430502674554147236045299226446506563688183253286494779688578484607646321589420291690539680031880110973268479827480721555343974304676041482461322041730522794253437338348929388285959061213040931465419475707183145742919080488086352041574268356525890860174094634849297149665897413214996807126687829804212683820154728326859832143982619656622098973785858182488516422083109411030079895037694770482407407159909569330843624147974844149832900180671590930138993904813408692140252328867600663868834911188694561638364722326598804566859348134386106385939943736950305854336184875670200075057545181387877712308691100382079177680705888732675579048187004872039416071855221765660632206193521121277001301037587696335473455706209288827666651841603183116133465745420330969566443573874784189041719052031536792295220255801734485172315574486860046085153012370514680444489590143851587842009314819192894400259475913690608125138723035998240390911133766436758877331334527349359589816500439271144307331821053825000271062920867908898614750860938057611928769088884878777153961255729516775532502741838678384422857473736150979224921285439291512527968804180168005891332978224306721215633438167280743168423315978923150630309584356990664078815932490804155657022286887077231298386781293721142683057648068121762439384838899100230739448644338255517489973295567950677781260223011018960044155671475218341009888095110538096230519198763700567757133715015498405115765958437854319482561903391938709060250408370855711072640910473176990427963306031765299678203953589860035010051855219495762073628392881172600545132165527154381001461355790379897844544348534447751843552334097752268702841877350574689702740154853211228748703104693255297185845355762598719587519715741900871349010519709261896738191464460242594882336257671676222314598436345578615141730207532157693876979028626802860780301269778684525466332366687189512999741807175295132024838796472758266661499666803843520438999080075393478631455041634715730929213723782309024756847268273324249945737115126238624245686883132639884029896497905862413254972513617546147465134316462312578995347921687448101487439121935743475559805054077407935898539024951840431315096703664929533490438898584733220873302628622158316859509022328748241872374752475884832537365353744984074954598793575769145880867445376525198949368581879474569936197923827749689990858551462240273364735041065547877717425781561879074516053553200597772535055861483853315695282511516469916308048656708177964774119447378502094777156885610405673626870760294838057959034167296484971805503936474829352056570751209055697307357898933297292054406163586911951926690707236244286128190360708988680611682454869851192929630424073570302111045791594545189170466710675367446764843594891767717175834983074527352897469160052249633175980374122054224722757597581314511663436442838261986768494814332188810653231005447533962254676608575242909431388833116533502420879268136739735371433514900345575322938212101957250322619880204731483781887730605383445849790042105880353417021287782735201836648393677695687033269107180511015461639101695864199997277454486592363099629636023677184574331801610193800875679020552889088469756458187807873224405404400613346426304008420903375344586811872772208484023968289559823449964257428238930190420950188039371079968973906899553072373032489385976078625020440600028315805301301969864950276827199554973287956083613245349309879984644470083179549840426344001841115717562963078246281923264242639720152421458616430546883940399863026112416081566530224949874912067923689459529774963103001393936193222030096125589062315605689684968455727534898358586521975490865046571736378913874552219903657489310006130130031247429875290550790424378027889598347096228988016691714501745177108496744561852902489254991584088659365340652152112656381870351199748472914052418421300964870357447539216679961758530448423857981352332586667520798179281538889476506640250884615249046384274542507418535232991326511914557945336492515645234962784423952102975602694641167388915112177734357210570069397212348743555088487023318711787411999105004393381501255003967043709737617944386418155106508098028416145703959562230636681071597682713047639643518012882998480301367898127097031497750258781955351350884582291893916073656199113144126965323190315968145033007714053981123185447725838770824580981071441661198436383339710131606615817749513875311810845756614925620885843155537207097988212312030406802506903607907545824475083032149598953243443488155888312166779811111877158364494575720306360267861082818653168796756091966727416359463662949538499610322827613617216120132447179101285726867117953099937158374947048105609309091233934406880819789048755225834994838321820181252490527293944596896456246890701799649644540084823216803318181851101617504127717227005964660649476593333900474181739315505898832439682602044442425308675685983366012630434667214666726169891339509355243325430661708024190838740937529091397424234014114272397369478807550664123895322679134867812082238700660623917566166673655347533902215706431146486230503688698756241539032226665324638516378794810980121960254668679258824553659254927268360612156663696755317024036952361981834709328321038333076254822844815749881981382153773366385210130006111064745287744089042750034474602753741006090034643555734958248213141991049060594369230393462890621366097543027464890817990952166310710785188296507006979340093803837101473865281839955351564333985185974467247948522796159576464992445193781617921095031255537006843188043989493485512952640563949581114161900699944834498520180007553002129860338524344841118969977839539890425732578453334963475820812511507368980050540136632594656262279424464481796983893383958857644602634590723849355156687100697415900864833934240586541038680193011119324559200441930781265070496994775746034525675766068643388415621125945619348718685154582412895203275353384744923740826500403689151918183306047241884875985519194278519462731474036101532271728177599640259764056829332725347454918301211594524048144759447578030188353417601138048538206984229657093279212980536057290146854425156290627435800449449816883454071487456644795813243717465785507526331598339154289949464690709167510041648529726194056906336175555649040309851205274358673649057744919651696629974247305639132779825387274169169225112068349644603222743582361099911182156941832177994234749964702072815219142266184419679362754105368172116097533888780965837119479084993618080086347075420875750889766860589725669985107620779088123645539893222363726798092340250315135646331113941092093324061394243756160625073998269153516452415643748428390991656690491701678398183020988325496515522487603782066224722283823375487010412362947922481949272337623068351232512410448416987874722395793352243730339027827306808482384208994773701986518271558822422023433937074934809062844919072074228303582650488278479655151090886589650731665384153310774543981273584590776378067371315194837786710190100189261892570196423215842707841703880249595669390694595900595065370893547480451097089749992616620925109821805677561591114171241056780284631435106393717617852488289854407520368948709609080338201513842209807170321928250941014006720390241368956653597620766842669084541077497949727740397545542446766483968889421937934150577675051642405887334861636289628340655649038244196106887350994001340937382450621741723684724297633793914310949671487217141342544310143095996118179186819115557370163288929636198257855789176454330198084728260598641171644445331250866690240902328769991272853187253909728384364338221273108112753018284992606283333557120270759663544258193283109947768667326751390541261726136839006037821229960210844233382698352598899724071257831232369786515960669979189066637304336562843037151775037450730849227053618902311972322596223360266304887136074327699021719499702645379217808440317818017358784034174448755227959045493319199662509769309205535998276548762267582632324295023557507747326424004497506586819660468512287357478356114479686285338099209833535187705283401472852199117519837724845829509749675587464208345325399531506272596285299151695924514838135611157110553985886516483751289445410868677516933693565493614816959423670100461556079444675074900053542382128144342642233521910020049393861585794790124021814804208096226569946338762674222500188292702667030578215552582395435939185185513170132930858815135258047306943878962751217571698040690545116317800178898853919955452190367168588698375579506324127564289205407379057152023392327895951378995501497437656291843203864500745538847003537154218192247870915420022941940867694005365672327055517488530827758502546266264791619255689805333716953785834456605141338127234499571004547047050667317795021727426250140353551087888504313359327005120668115132080771465728357538366447962898243906194576109915005772405031916027284006040278166310114950543666426228298991256861832809300802863809726473278552645533821454002725847158405396614380838701739778733186967006273321562938472650783062552617714118768811145543471222220674923146431819465405787604480283286073211499777075304672913631955024477779813832477536554671800469058606839879665511738119990784274809922861581157852872624635949891878405985171943110555733580185073694679182431363174730037512166762930926803831648407887506088983198152121864232503286456283919047723883269660175767543545431843550687622390445897312679247534554932768601872718093753072612269089939581687093449931135479417009433053698631793509830134854507137883976593916843593945238219371132480282949773041643380649741072289436537086268983979607124094616479371261919181704247844876393245323756717038846755742334795831170635821584012531064955803331665539208201375604466915787191110977416656393808965218992161110789517664364352714111887634446472660546462738841005338896363778515054603361709030117115125479401881272276456898981019835733263638845915770169681367181718284325481732748400480341270535148748071678729936389002303608826235184416463574731141278474667332955178980661680221133622771782603411536916864927848944032099998356263058608073385071595114135387318821467251050525987694573781594892344564368143549295471477887483158964092903553329695773781438386379398097003810655738720634088651098485803775222694390845229159976044873463819233610279889038081869000394367528040385389120372869256716118529022066041937410552183632591842741455844275447110782365107095082671365872674411400795457789776109922548058312737016554976080258663747588337136763149880140200341740590781703851785195354931427127960201205943002616327306477233592893015807136755853609779938913949257233430936093212531089175923222827003148566401417210558035292915324099627348670550300086044300957483142271771702837305426072887912116808560393660744654032235010070947586002999083952384354725417707958447172628890323531950696751987312459676815349546387224381830995000158021525616924613783853316694026603951441831929172807077247988651406265677827166197889906796829123989179139865122773437365515553625331316934543984515840811561163824643238194902730951418885503763721216394877202616280757112350322580889923459883430446013633121779944820607722830558919255586433572886083691552499002670502946011133792879627634312357148408329217003219125213000459508728275889159077240323257700779502619675741704743689730858461781518213754286793277638514313331407272180710521233790077438349564049390375552358255751488480957771884237053857582223205346534160578244008769179282197623064147592230995748283085236799585174045384770694787989984376183610975096753045495151731760974333043904357985508930271917914369691158725894702102941658072529303633111701640849080094397307012932279095455429235075420258302503916762488207416606226041120751402345587399705397006037731014993704598542505692982553458677498308814548362218210241176801104701460815570601566522821475686521706713834585548626970344188901126040482135342406646836374759233623564288533416122842018529711663268774956159583187115809979313887462657575953217333777269060825779256387159624442269190891592727747838743671893133572532627537370235552338819312462356321368790409389866666840002398015019954111813696860257713287743639394792660043463491454652331958623734608774412268707594453459139977309476284119965373207996451049758507323033363859239061865567929301110610098942841112812469141825419437980845358647090242963679545636066328297764792977444410836311573212668519505451182783518900952465090648433566899052480649361484381354781484416294978826927683278056667240414172916482173221635313794691592497075187467027159219368987437028422846874818799277186106919684559431453329676541141806202220464287908368795402275741551731373776798006188238896994305947961168122319254745735856098403455551662177197741945416941704075587659502584793595229403767824812854883098457810564172211928788977235496580393346429348617161094793762658906440493308329420940311464706453800421871910525388336899073652876832339182621838631731353738763093344557239871278504217620905480224831802475695329443607276717392686200511539806374179403176339553590121988188301486096522568735014072459502057545498500376667765813986236864887044687278432391668658504441719502160507697662410257541410525707388988605703785993607549009314223073390150348931978697110285357092358203047616175562902757402935572449538216036591093528918766448292683789663368448186885305208273114595785122745947971429154810994559572891299935186284341452689421461798816755921145564961259408679095824915421933786852190483442640132521697734631531759297455997143819065474026727729818771626102070841414029859603886836523835976648602260222257804182217727374399402382123685137153761729288018495432920434003462533787995115701565429743770784127869226386203926069127431416621725448372744689914512751184580542496959713330088307956204965625408353610618224738152528109241954234871285014702488279056577875306730636857386593315987583394990036483660965273674162831749569432063300962770538987895131135250748909847875562180609328539297300319244563200950980786470764939547428673672500493024966770703845732482532855457539068316800612587045190487912094443895562467612777708443052231904547440773831339838017152724767010248571407932565485400754095280739884231349025593870258938522294423480170216801620369882139356726021259773811845126527246985376641218217051948381271739332302161370138451869914180482850577360590336241306165657189993978504632170655285398043803253683213069831011196684037790253050750061563778285605505333080866834242315689215233724474071748112105913475009785687378264584701339698375367436432743503968734785320258060742564968081001230213477213125249363136505190515031142912791726251239478488332141430958972694757496401235900192645243726314778483631180477123736785355128394990884449695576747492433927858466288070646105713297720679292307217516611560275408162577237231091169543752200075021061564540833756612855835775430303980539229687173039848610906566171541802763544734866571055638637611349471281467652756222888664449057372955752234264830998937120357795890660718951816964024750436972775648428974961283033606044044151471795697327919109065149369764438406534301646012435742347656884364392594114138175806139567779938467455947360467532646997307607877410132367373011789550901257848260712445425892468957159361572210205078445098662721471058900700200791921856667179588560155227071278826868499323736245165645606979272022912189815141732492491462728604495032860467108391431324307498469763879731213013127831747386770490634584936258534148789233090666245590782682124586128227231439161601933398514579391582184530339360929415208610832470203704450498588689306026993856016336557087660218991888653046401436066413324330024610844811721404054520574895458055973573694971124906045737098196727317128449001547316961307470330524985885484234897008314184497278472808839373194050320615214822817248836417326769846427801290272912314781410194059379452482961743902323442105109948164998711890526586730085562689174285863031739816702824737918412934215731522072162134995869768705007420965758079197691947772794596137156816925164473851631824998175405143564363060515816861204410113126111076769155248056067281712412084525269933706996300602870657650116921835448574074776035581202252906622576744895398023289541691032522964903577006612558134148873173898613987748157719758972696370252396371305277451692152695254569990348034782753788379527901208524802029475048469011136879161242826396924949824364536939183170132005138147651316252549683333229365731382134792082108753221615320807838085230070912256635982882559904420512620525160810459598771415270753986100733319019062083263126746864965983214369570172449897224943678252490021694611267575411543334617105066795777696047079448177570506880199174278334431635154353661691942886289137489609539092934596243163648372177243315714742942083062734644373071282140625071298350212584800058096535413703913033666957100204038972125130738699841782220515876074855534734260007082944650737370506571593563573529287500688794162133126510175664057905294046515250844799580075328263698951999945620050866985141442828076856250449493360904498903865976869760490253631388237762951994674383152192401535227425904957603583453188738270109864367123371299777407634196459047666561688213957654992588506185650928354554577872969054637202041952161526589788510834494946413385406341652998310544517210194571239738302412185149057351662913296934539628322250218069338532812255202868196792936739768924019029108885193557740586593326501436303565223402677034523153210012012210901960071193106996937615485802139579085464839894213394512790512961424185858143872817559022595818754682024397459334108467039628730764677560730780452227198985110825311428350006831305679363736364629083952896943121335794260801007177902122947467615423372283268073079400265944524964781272911866848271437076922279935688145118278408910283004320060920482595872846792352348158302960089661175234459104847857168059685462023015299653281259774770731887051181704238620260142332334048918834146706818547125342597083977564007750584453131935465203844725593685927882963455862842057959891433507354404833202676480246306052774003260460338192362754395444534212302834084034611253131879068483086524781200010903363559498386291480731211135850535132235128065236851768980025214000320877766192316932952808414212146528791612202292527846166497007824961903095952275540448113884462063910138200476439623167437350115771051110892190011491538076948128376322329167955743398158209496645876567265579078075629323415343313190710265971273071085776036281498134116989997491006975000275205718773651911797155386862320586597472849448861892755355386677452376296161186748731710239296288241152350927565097168536496901147654822779098709216117345415526240456637437810822448373989229843286125333850493998659164477453125290341040040305107198763916369151985029846707386552494152063433427429531247742519957977339965239189920936727533625975847176280210945471391706136187618577954876904224654331964888513070398833491977034444947503693006789585556379001420789788640602263245744425021919172352309328801394928248254561265928525333512637185311547287862591411745038667129455800273546209809150158200083215560663229176973622783055374217485248627593915789556825781989609111534960697462535952671658499329669399953904776275219711088552819192360378488966265753821145199771103169229845115098857440398519579252269799291382173028684865666699578745494275671701534976618976144331913585528017903556956334089425815268210306979245647647089648470986151178460204955200709950403096753545416148645671208192486407397065514631162722972549139952240928725198962500734488317438301965086721883605630782358046547514206314341477124478337034804062863334200543442634451868507511552270958241909609932295414783364075918335291409756537143949784769806286875946058723520087026866216615850262455856073586670795370047211683419254887074572806740433792173157064261619912826560408647383128572353069466600388751468800217290212768994212764941238446377903287166411067771833482997653777441379572372342575992144057658228443382751626359801924901065531164594967007468936323695543647053486869221831045809762709471860035072776483231510956288316668790303397972847706980005897614042178014076301198890145233834704476294661366812643279620799725010953836830404801549020444082643938784447802497378255059973464305584618259911481118996988540082978059595681456902900123453712292193948188960956882141497415262434536645663012195717585956546502562469267830259155730537739031017224921695810029208936541070696619928337092092003193030106397548696097257826790534894016367446722744219930702530026644415673776499208996773364178171214536801609528440376781214495434292282653340298931649570267044654671399049034429148330744478183026023072330687847545402890986274655532518369207853155960857299566066404517799886470965457848169121772601276480101014628302079751173756108019979739349818322774202761049029560840610441783951288772314176702338301169291589192458705621910340365337438726591857640153829337893372515050653418104504814571776234039083858661844525878129081752958607491095515762242050635463836260675995737117254827418096888218623238623773220235407631502254481320144916140467790133316843940612717437612552170937684022707018309341184928943932370348141313906688534706985988362341854546258200251193907841622508835423113565011351162422968444830959202811957620390720526356330064076845295109337381136677226509290255902720541211550029315154336180069938892866111801759736555194610888457911131001457861253351217062938790771910612798225383915699685311649930259946140731559816337823964006050328146678180282463461833098489530834869949386445901631883823826902818456944595390125626198575459830108007211745320152808818865427102456586810794059835786287326559051089993311773746270838097651098658340954620610718012660939411568396074911571288425482505964317581561061036758500343143066789101830734540178380998958981090643925918918060776991983698235108231225166599419548944716495787790503196282035844294230185144509156251444011277639350222626503720712997336600045034737631386525894851396938209639038447970385544291856173672099420413525234725011731809193522349054307408964976841222700137565416563171842801681045834829118042671479071879561616838062267962959008166534036696958852355952010830643803893073289165433956064851775158221815968365308600542953286456965720131826494418298033682382846447725451595195482052037504235486727946394725862734781376403946437191377961407527691628229957634486994909808790928801764608872185453928983428222675948927664250327692760416738552044367197740670163176506917220973595048698642603869731511949437145139878683811432513998188613638131946174111131514711383654493395695001997751000519461150445419481870267899026782728956138543895683054735059494989846797616109431806574628472910171458930764888966001292784178295760918859981113661929080366939280922149772563758089014217732793512069368094280129576113859885186464431618378934825360361913178398606761357221205663617968199042503196009560876150214555630785234785920086363887444670869938920649978207731093554947233021379479391880214029254911933993793529798966948230649930664179127130507895016214402325979028519638372412834920643727914466617822873342420808552515276935636523249534544775953602121054321931483816921260966777284433414675770270873342567218488912112462115471288743261784091432365821202622006828574393123137857038056231422361401111361080096613849111820534387011377104911454722238774440985824178795878215002102948845401489275911277752834639380366299085849086208867471846895903664938830709874098700932543561816749949253056248057091695856562875602328345650959048040432048975356179602022783437214886068889309023531954315492032886270244185413693279563675015360326724331098170517318268907029940281925755983515045890377901990649070227437491402118660925244031560035780736850474054093042918226065670304098316456337191104406193084497255081389270573136687836082734353114674439395701145961079406630193558222013626609913255473299716987187280223406562307411456763614162395612442508543448615648072515095836515668417969675685351451819984640313870188218612536570352469225933269383018125507955144655034549992425998695523186503191474451772018964951526481661439291953928091185459766443913887571633880399879506633667316894996918255413963389966296041229126443948804404028967437634512044048285767608776117356153138033332826140735416387829955115353054296962552316521709584459245816170953841927434968192413478689199895526650296686645566194214033159454277705535515186339418841367022023616624853491594156697061283903059471276233831112808888341739093878852745588959532280454055943336973914343639175176878853412736165833309222013230364098593724241212001570323018208772250970595205720846830453581579839921688840871526611023632797985486742286065815527345174126415003758147115882080213431711517906759532827687235665950161125043198585651807422536889368954015164008051140988757170224886929476559879232357472379457784978713755202917021244425263624343279372428317322790726542081112636583879562948004080485432822837917444228543247979709128431767100020888493109650311737583073553576639837559359447484976384873292033692321992060636070731488853249480731869159914708803129131328236620515697562507732769777976090982046397898765150846657261832832348806091691085518857921954830600453946102914576508751093832346758924056836834746549833368877330101172940866641375336648466137333550695276597100572824406080592129045209652706147700406766430000711090427244285086024516312429281182271515421996249363646450868172918989068238903706218156605466761266942934248038044940744112522477561311982818621166095909487343117855395947716041590572887533291990179143549044837135623969798697580817765636006127212415991908137681439171756931460702538374398457332299528228610101036070908888391155825325828299166656205275565960520822440185587484867660947558559336434777452405869040528306598286055407141014169240134244593659356237828218639134310579493740276411496671761850228323693322691265369780219159418823962333116922066668320540444388033820812297038502088479750455191920726783283478724615780638688503050690988847533118007870305089117367788220906738846891750511239499867237606298868815049099116799415929457854521408538668096928521669256648917939254179087298629936245370575178604302347039308783066365241794665087932729399748123247621328477340269250707707436516531851454241464490711619517144425917085037622715260405403418832045445734683866561594150168046496450767770231537283206081613696089102594692038354909252650144971064133783318632652510027373765590517255256167220791556522603675916945790110638888249933311357567577748510728289450004674804570516442168451612269176513092414576718038869093828736774407590124422416979851464733201894808403221897020110927531105115409461643773173890704195448486789966477711880603499374931780722172289002020171848962240353290180258631334612624068106058492806375376415507489775491309918902179836169383191455428583028181552193872941818696254222751975877759916058850414339083327694300356046883139070957930152231244551576367323698569998189515483097207367113328146160892533309524376263726942767093772643603605325107621729719180635714768021411441231566312711936643067035302653972289348743484885715025845383823034033539020538139968782892867659979104601046958923425174272617360568470715593494129618278813494096033450058093425457643252474836139048607441229781222279401736542233472160148644341806693142537365978165195973219898971809903948187884165357896545770406260734192189803445783625833115911574648119176251253054149185551559134682839931479252990406624091332245125934564309414652425247322384759328938551476796195960316015245306842211513043052687601064049726019020403027676751280582365532522836867178510506660821426687381836057961795606667503096051030336551963712408977370066734185524852609262201127845661017521378997631741347452917340858582436273966016740631216603008529216184577049803197773532386114217275676286331148850860993900874600308635672212685026952465824311212344766995096689437816805717423127038383975200341717062272040249423617013027614882747273306610780503213155035909327876313941603977528140397305895519687118012038399734623188290789755646760386026960873538322597397108275889543886641547582496912073098210904917316918169999490996917183837325025423499916637021239570621821917020047231495897619599986851943200889892078852537331353136468657508194768506365729806795386777792583561547569414374339334095311654432887811925683348572218458631025130793717653169079164194796848324153360095002479704586020674653588986590294501783267927435519315785508770754908286394178038490725672615484297938326017733958995651639037948927249903821354556521197657732897981114651935958204283484255968213089161460095048421925549260207924902963747139296106362481601553022276507470349478262647641133008496368168729741070561730628174107883733146859958256467510273519328231400610933523828993171440450227315177803228207637409467028979847661369580133491808066345806435949599691220896786481022637241478492031936991647777054552816302788195240917688202323091402026711747855277406844664660959270519178682559191060633197462596537031062926296365168618803283165466998978734204085107245699283023980219390539021129832410618162681005569629187440862849812714225205716922184504701745632151537203618453789192295568055019498805676173904776606329338783034231403781207391376649429749389521117547280629050624585894398216880032401837349166068909471908503871255102141036389597672592004801015496781291007905209929711014372274448161622118164201213601638531686332424964331189762724818424855033487655594511274432992049484875553120333914701971173570562731316894784699419181812573561746099874807466798742558451931978455998041717887369364209612459902960869209768219387833739359467189564293065234044698332732973532147849442246776535905967517825102583221723469396956428072901489593848848700285396896613406871335738067086913106034177263639753207158511894534620373043250014780833504501344556174605901666885307252561719793460221793278559982843801958742893658104539368275573340606431923814134300865711430478926624839460133638704830062904836342981858598920378688205096391096947449578877884278681400117702644645896507071315213826229267054974242376577857594438058328921399876922845407813922332715421908499018176700818130398025961432322157147253596748019642545309728818133053400716460517023695217802715023719834191655354941187876076611299482278734996709500915020922816960136424394220101238397036981168061611893868886352078506459184964295953182723799236249542386988497281597082989695477408161700900661260752989663746531806011232315321617767317560682442618978547312028455450498347931633269469037981641424351483178003161598670466109776000153592298243979197413315235167494050335997988735373803315790736029182727821112440104271785315708054513050806497998524587656912922934644843460374392083658044151448548906199724107877917033051694960434419119924453747538690877844135404844649756773166725418703470344180965434077316343519501526727858339816113668826341903663140648403370353840743901735595607099224926490434023001628891372434581118380942089907350311318031606673107935433638338665644491016923169317199931366469812047355752960929510469120804759112875156382930009635818688952660257893017202895352058893697078424188629564858754072461240331290023817035992849593352761937367054808837352223485247109336821689262469726776764847613233612354375988277482144836087196277882067382229020092396670688456740729602234021264533343478326670957240181194005555917711255137989036436124538134616761363172116890667808771894626453484131448530606867239067857430873313781634962840864388470641389734407838914394753066661450009280507303765830669919050433106834820002673295567229803205721621064415313749990250708587524997523196396992276566703414075641755188392208317569863072994197681257947427825266492037017073540940042386250185840945775275898001835004590883152017250189357995752945824738294903885264364628019638371927871732319131615441884768164231048104953507164319082106217826766046261470083279843650510989038329788121158016642613092234740872310642855640362112665901628598485393904440843721426072779994937168713834635096796894889303742297908951441988258041694366244159554040154173220915427293045551158779223288180361931973045433741548925668489690826307112034170816280698618538261441808124040604303244108194030979651240348325311276097261954624310376406942714307004333190150208227482413977358912595009651300481015731971020758994231225415459632781182060639914762515137096893216611161281199072892388068037697492547138114549465380047437597648137285510088549004232710154556076276240834802015789810278345188456224980168464967459728876967382631197154943639989295166392762310347035018663905567333533769634391599719984328435672130626669536170720969176217746823554351563058512779449206747429629727579528155359633291439855089455907348822721042622663095407406939559108528430183064667447252716664436121649199169350654052806428131922989035372748144056235503316955092134174882036484564522310531002714781061377303123068837503951214148676616085726881977102528404059810005043584816433598385289412764593523333473482087173219313122396125381359610567683540698608936213130209637365250481165306961675851400662140649294600668139563496556704199217587128916420000504132923484816312819657849661412507267700399937329754336902237384954501299029552497765606959911373788689457598239560340549218021508362525573912750863546419703374827235658994672848859540863666651669487437412237446838134990449428652218211521028234615078021857939477517088118757531971795996738043409671230016877838214433359544710555920415914301684650711549777384577907799544844683254845072324827997991836544176414859819325760491469688512981481492487597875916277432170492673500947548179414287051692705873842335095640687398265278216583418739340245302478037827190590822752598332980523187853368841536869862387234518478008751456314143496274476054367782771227906459467031485448055188067724683097187342370844087724342070314264334467564693315091475467552116107369956066496903360498238449754056846913723423744745502780972240520199885609309283694815547086656174656824181023023867767223390624668036333152533259545489830188197480420288773747142766886341867019731833999755137994691388060575562116510106849907291705350226491202894848040487940957199166443586561179569555914196413291456541105893518379071227004873322792570986140710260073375066392459799490329030595092907775864245497136210974037803216675530970185190439897023410038013542127388747225409507426923679027057221344906761152956143015290895764698819055314931477318888152311613790830318741050515794287170932330488970175637049494626579936346615378068231839747550909601642531795529382038902091395297888404490269250281281564024168668067631682784745602928889397558820963247560750483935615477226145003698491467299578288438462517260645046115430511326870959057208836615431490567327133471790463486693298072102140449839724056954865447839305310698871529764068950796635339078326827120806167456660712061114871818923531121438069222941603260767532593557314531049170821200305740480667028297882663055241802177190584705230606944702914703266572287155092974474816084165610064056116915064561392405781601636246469303801772280194617572112367260170596836006435265675065333378899674971657259384164814840632589082208922290548419163944025132271204828103499353761062015674561825607018730388549394195896591048806532897624541057045718301151656473668582109719122750035757676094604994558074010535833889005079379752870077581421140260744874223629386721990130191328953395106375713520112856209189197732353256660656668301819721593281402387100708863727485942088040240352633236897524079728960510935583277685206119361224971766248741454500634942130790997237511155462112806262432130027881945715900190924323527004296599025958593665197866050737304671764726301786226199136332084725701375647581485370582587185371923627229748627446777844083075871017126057187203955174675545863027728911928569994128472184943660607327215949663982957310674375071575796819242408024455932343940621538238236781992598279200768780477125423427565404665158594728966790543617931919028685355350475931476816600909981831053051298152587656764645832842634937703784895806299396296761516235697411329938185117394841184425066528477326978666108251389461647104115686257204252070930809093609482332041396230391398303804857437829756048623638007904780159287627505434101030298271488173545935105022928533738336234382367098296122631652451695213445060977536622301789117215988532220540606050464992138176483400831591097264854386105359268853815001101639082867405537971129036864035297922114671983133369280208247882937386407514844796014708767981092748274273421825716205133152159332067377964916562352785441770047508292479822206149780523991538270718149341315672652790297791096663169940637209938376899668311017715205117960480624777210265556428102201745218363485199487127536798674950551636020833342835065904870167306488702190145075306904490572226673718735127834776164364383752266199523808810585852579316579214603540759515377497020478898934564106695002199541202282232772764915974232185142629393173355626822192521491296018039492575812369701256954293371369875862356554608950652475738193399327796163449846079545660756705058758560271585848486811534152873155749394093818380027006151106880479153973037687228186653381033865177076494817965113904650983386790087889821039914280324609488600734570612152074616138458922445901592269164654065593954810543463177053419933987435501141669092516478980132138412016304474245999583578896086983995917617038085220761461688654062721125352525279461338590117960533191708466390580310329936448034548098675189832908491402990851299007107695971473349161760246469761346188514571416844836713319932297801758433728941700856759330067701754504131558222850983197447872299030955423100222080491688828992406793399833593820196602406734325810315254151010776977464548397627032223915213888444737293653480408594070905298591724504834898282589165098208833735000646308053007391329811137554045639935012236376710410131423040252704710019204985520221530998532710156609460613372717414521070266783996390708891959445241286900207625405498287679620494398276821742814365813170807751912890543851914685028009227185292533252473890970465371338274139183896172702659011506652383709835194022486155676057249560483555494104080045313602775430185984058349197042357073321825251247477969690742539726107906258506712208705250379676320110001720097889717339182277641674429490367011276742595681659386277123707807851387587087276053239306038268924308393896100394624424980260513627611771165209043182871113709570041723198821582334919655220162410961695134475874590337756904023561335581171314990790535165900228703281778422341845820478752010810334360013268529649178010356812981547844288452438686375793998019183294443688375360872921903917954956306548099540334272063260088021848836354308353678197152001042760477431036072885280382548670114272929226348406256158525903214752347576667233678477942883548077941965477567477402861744052307206244840681840210530458838902582830427957451849358014335824309737300492722580732056366067992820653429280725624895271052331079554881558778978206653785415331641409357469005695196849483328057375569506092850813787583085015675173579498484596164115946488285189125584251186151918839448140664244339305157347062330509570447391407466620217888719539419409133464537668544126362963111678366322363733979452808104047561307400027243011774413829185922724065807213441606801728083069770900319017024155472208051333314643101266180239898586990587148128696412718938894983765829072479690875663164844185286154058790563272903079259659194653860192351749771178433759230267488619992341890809684096262542716432564502644605104987124942416385871339114774063799276132959681803984750357041157104671067936257732430288936548014672751023986726354346932436399407002687014860246808151690242439578560450082072780781650824017317673401387057380070598302697992002763592264414496913814703147967854028360349030770543980802902079858901340726216971979741559959918066102039832020908119113887801019986849160336305625571496210795331284085225971746494383201818095640285163696560164771707019310387823785345220588201792555380428378648842628875854084740772725510718032687745682030053703280630620160719082113745350159371569274607219425872978433297766283282896110255470731624835605279543803791825460313657536266798572524474795261968532575114122312054431896080320828205433400097107588238984167644196888394886219953780615496771981571702830052785747541432343166800683038343698351314226359938751176771632196836495426989248671602526004401879606797137477987379907769609161563873762146518675348701730967671604107057898190449095039496269504370111135106498180820511371846170266926680889363028841014551734145066924169454936550791926516666941929092754597429941044281720412624669737422295750852544229878652423010488633606361016908517005442498469521140284835134857229969168167098892124489892648019706594759869849184121816230985222933818613812814673246443129348186086667780752263617319541029635128683824124334922531505167555663268692737578851009554665891866089144013746103210353465021355515695958389024745007531933572276490161285197155047969475416176833846044572582165461726537378046794159475950463278861719986013060851310136187179053997215033211565391168258672178151832630263714221568179664728223318867079312042586481393268688633254266666162172692782149523247126369392391512144512808158547135507571422558688774453832240519910950319291935013808723591686493545395165729094306163677738805509587946157433419974016279274879067376469782613921394785622158821538813628358011322858796954382604202752922864850909921186475997201045549515341812490058794640466253957463931828953729648742775227780733402045957964812061137990546130060762721601204878688745375040991100900108373902877962309868015199227685240173025856656914431107855900654634435260371898612560988458979172346300015368631000106440782235123026264706548457171591339033123854437510735001527785980505428201581914918742181300904187260795646632838140515809940656703533785473486167825735524424438591346011438075794948467719449778901623548070852345268538856311255029957429460621195731273375879732427745856103861844973744502371714534805713541929379308204341574560976688508904445386068798097956021144836670969613349839888072402944560635910961583276045143145443868323905563649925156246210924681359716249971000149666913174875449120655929171577669061268611253732638202034266204700104804027936262534519540103599844523711225447444702700123062493806283347220972009045014707941852320834752943942284071841526961554122112411745572013707827119396551928229449033579666438142343547817293924392879762751188891453294476909138355781074636943496752682067059214256906943677285771892263752415328250492433683412170018873267519739882807978511146353694710526962011201754630746057992361510729477384795670004889251884206280994271200244949998894255488921683117496392573602618847145716061375722396957650247469649144594145875362881849548275777328364892391415429437197744406702722860772025766773114828766363734777556551019383425623100398881345385138180804930654668681452146174823748685659796680695498698700360025620754133693253522650332837670122794030841986861946033166499744452389432305005319287968695908228606941439353501791756051586761370516802454043775833114681437515850034501552607939216836240227268779515066457468590627986179492748706287425510503240109393888829163832325068933162951257621798548037826547910685466221087425188416151401568193389725107405767470333100156355675497358955475491714408086451337920100924884818565362360988005192413303259422753490005048421678676940050301906219670360734467351251900849244764342881885423204674560678399813694174670479932311862548053118289240824026872789919927489938808923511181741875105403870734710214376170519320898923014620072935798893510988189112844057474133581875299893850478272363683788009073504052544481651986561148003880429655108716930250466051173186104154288090690829340198137355951310782328303959774789631566421479522042754505036480065262970555726879644063956192659066284139807219969477187186511939001192096295965356427044115317598093010660730613947216763026133328491655247352848026194117435779810726847881833136937253349468949044693966989061787738527260443695495723835274130716150248342833678043976975244837125263788286300702986495754767466884646327119991402087075663431591166722090635039254126802365531477520627351060126606948348173641372947003581279535442471763175082055360001373627134901977201818733845393717072491544245864230835267231279210381963380066702420047556042368137399654376697338532504078192963895324314592569643676644603244458740832220378809201541518025722694586925426936681729609933285332829094976489450668977400199891643556869204208647595808438444859765783820152611863799494265459262216492474543554438951540645641580429566663034038893032623112258621888337724454589269793952593021861673983988470982979192457664542043460052747265710597321269788419820217783694276970584620490034131115270154537099065915092078925143125470577244922361305666782502021844925678015390449891854697546100904872310216530148081782641340919283410683175813590509834143069814354094948170543609913097332028579628517418661981121282482369354018706917671835333886291999255299504415385803752820392133423721370796678260159535423187490117961475757218679822357563862791919367167433997697569652474838122321392279970183901355566897526218059834432304049627378090305523473637769520404723356975090897096573484515624587028243867145474843045788557274946653938554177015198067829797025696430550784349560283476493678332304490943274795937018479057308621879564449982537949220422505617909759079937329695026053014064237677032875030102602077616157300680258123989969518034337399948134778595637026465165005911198114305178893920968768014351937960436486276711563576968223493054938218433020120690294516652336987071492870619332335652933619095582661813807257509767062463061331470022034701657315014561684131741552216305925483666448232350854690698424742142146190709360685198866042108588013911054469128522792132825606321906821075260424049765631777480559499673051239706798034928187251983253681974127507866811270526131307209390152141215874266262316223029260189393392126745010442374391132519900288231683944452943666438792317641322545805741666398345065266143052832445669498489582802706598455685737496996954449792704438718543902210874313477478946593070254907979360593187506854983088735604490237207692741689879895069668417822128988556141313874483691708212754200717338899518643996920132959799303690171287154734610426286774527856506576599367108013338136639604671650555320826291235189051937028685856528797835167680973765478085549044401367318711129102530494794661827087926210770965825970247445653945860496079149551236263628491292097250931890500648939780636521896499475986140078941798866469303930861674548419246584659908135118479737808822065060423522926059250444710469478389022583007332053341701997485824220749149513770477046074254702020056979061090315752088742418898469357292124459386449438277384822668880138982846331317039789739237297745931034469913307155430474163926790647831498962830236092485475979390994944329400995134688814390177498012302609474334674626355512763861143130050214386428782724812035130024086408355472106341969227830801008885050448326671916988963137134793628423785138114543352724918772670724976036661576394522281447936746215317181569631651960495723283624670147680247053693143021217103130301553467690807685605362693996094129962636994319520081466739250173921570152622996202185940346521606178664281061601185366504847929764793042205752050888071861343097133277969937991831161128654800226819064945118528494580530525801434706009973189719445139884443139940600936798736640229690219164704518011750969532769038810562263346806426308924987878199332640299957350458990802725509197785869947619376516215580328536059635144115693318545390535097418918617072405665534478197336059142401161308380623211925834115529546114568263781131602128411646669972265933708636570998859026004528778626982766608705258362986821342299100412922961585467230426379385721296314401766767595592046189642142602122737473926816568827221350086999036131893897747397844390766357486165203785136551594585097147018295132107630909932233125718593471075580475463048401827013551266829485403531956409496772476764430753795234909809071108702329153516385244277663799209922934014812370057330665390428261246673737404333362630183572123704559678365691226607086691997461596684950285472911655869194119620302109245870878686141243039979601298031723521324382224131208315432224392878116659503463313694239444461817879108886038052891865428772021344794782503175378190517955593007335731350319577441378307206065736247386561638402345960343649851332819799049732866919781674714240774944106310053760736379855055129484416505264668554929230744387054957731186986021047783543649629677554977311643546167965871545292138665845287828570618243459801090874318772942318351560712226637640198744426537936358094350681391331523328172230226550427980075776234199647697233644598189324688704562379790632667880243466447965755743962724428158111442102268028358317078738812259645246669044706438649842829367545921475174495202794673415853264718377172944579518040685237967765741275022322282963697250199999562992633676128638956858926900443358750409508605379014294418953869000766141757795369973795272056351915568771824367205059317852903112583100483249497843329127482299327594001117456735821054396792315536130922576029702072699686708056703786401163121875459450804094644801550883839570222261023804505761409725929893345771925595214567797582158256194713024580050848498637138270941371060452229055430004228934961467975064983781059479647273260901034151909043340677085727249616627289327021402406533274655705952012431402186532132898862405435070629173563787269064855089066243717883867785754911074959447647411923120785792290762807078385225515500949998724837217533917277496548159209758216843555254510305584197485217229534553534088995771462932782801460200570550809652737897367077525310864449653267380525844401834595077398376875172437809475603229501044172281762454046845501484830689231545941421898941072792659977946302684688071470953522317549263036821414698833350271173536300044676069892149943029557091619486138128149067161078522404050793941271006621964278464034107268628088413967944511464653906036532589088919704251391082766902535181292676467887323341517002647643175634403297481664074695878549944476118641517618251165628499872390301514131954366229159232038342862142475266671326036245453484503359227842463103630884532765181578260321088606547200342010728337117589459565439166510620175877827196995221101725600343353074112639064133672946909504982190251513996412380933598159983167487515722831520044135826763763489722705772811660303042600707924344574845491810637235443221306939232992238268487490718503970299050929258623821481205795804555293921509739688737626822228464577231205108136639592583715026941262308010216728242490773129317411164339278335641204200653386643602785803220843814069833470638142127834692105979836927922063255749634164534733196104359583733553830227576574936905987202341591258223343599553114258742482048957501676341365462902697085948005862458727013139005619849028695348211807730204986767096915478526633695444517845284141335709759432438726952623842584510211098255635382036542310867013725766978485356241617089660160696253214388948421812167017422513695901148128708602902987645994576951803885969487118055448736175574607666510169430026454538066108625653374030497571940034645236147865032627036443833647903972268496749013036721451677268739245248138516088629363570872744529061130209824193930584575242255529314628263090209466693291435589911754794907408335085461702003561578267194519036623004382282473634638346883840598816056074017851173950485765715342650742626936761184651969353360355598259955701385279946248978688413611050292532684843887758232201510229588490479715591256523726060223897606229240666713787756768120209308786341461402377196148792421163041763577732088234550203114661204963987265237101788072946398420154996072103128515314377324479524222703206382913961314781527348248838252797073786901597081700566421045617322369914464564541391105833359399756828465847542776172453180282709125303130025492729635275057632287764111292347876513732785384164080263361461355515533860620707575260501001899967752033724107225837804680077979063460030884146221616059794990007877489455535270969127825047904536555389565960158336723384120288116894659958741033043687054070628220597474055452055120330012792303615815785052398981970077426159587285206994689670919276773651056962107591271780066232519934884649875187827910064618493593011048728337586664130411126250008934238976479056773818790721884893000127317542941545320652125515723996889392918007372344968714410354404109721333849319500958459428830220282854680785822749996712091233180262393915133327848555644426340013379858667265679714779128682088611121069318214835192743614272071087583035865486117098975498643031282070409483539329067849358768923464682363236897246137945713488021239727053896851709566250077707381222792151163211200992658679832855964563977605468026865356425595914039744180819992399495534084934197440427080675437363227667909358600289466384781020674590496161739374667650616751033443741482788364707315570051341958088566406424279701764308947947588571269309989570213506850186663590458515607011818625339774980448600269271512975310687190860338691679204523999427878719315503107369705149880951832479306884261201461061220778127969961766482125690540491478596835501603811501509346066414419188538060438187853197693577749723042052214610766728671720862373317558468379689529172445432535296181221870551843958756159793773065600044420607949513848201754418024324948831443425718164829665495488121571580765440293866649124463048293283228833017040737435599827687385931664658464355069900273139821475294832480581154635967560452820039711358716052744298317516798396076405060265435233108559088515296623056599680164055450548875910811350405296128034254084164834957240488227099453423476375446968345422594140135506074097036324082540149123068131810774200403638740335435540314196613671581489258875495202924992512473744638542438733589015997815257306036914048477444663043305569689682890729385620674169521067526741681591304627599146466948326693568165644171395846457720200541426147382547276304099478204907501211246449701287091137660151078615973224024237016282145213198601498569538230309114052322726250669335110448744729153665868165542859382188099076567369981350173754161459421647539229712238668379585972917802312310984498140946523190793959721266980198903923875707087701322411668201797016354887785918711164653316086274317729721767594335460759918914757900192598248516361935196752779620073522639284746459372569585405364433963209981916518295238068766779487904562305623171510783847764164880559440789404126032119464345417683703139913689878999228375532859861461745483907775169200799136841118001922293202015827771134332751719944947715337379194661904264165156373611205783541014179704664546060800508089612211429261855860023032865538611453891575406155094785680743357989175545985130317937503301227224685320361392525289495156647893102110195101568255723200871475879996154894108416286061125919292348636294928377990158351727391847419094653303901447756776026123818615935148096677427456699882311858034870658274301411455739798085631404873618520862343059885584951971455249573299741246498309221050960936621580045478196128310410277347112806595354035632630450313928666440475125070605744996991623208836835963667252189935965154066926825410811180471063478447901055231123687880529500501147488592058538192186256816189538492473217954332363798945403868408941705902953939184996949950868794523262291152891232143744598507397258888290866052495694620867590280526465047146871586653718786438252050762818146564333005932157715927696623412983023375158238863271323112513592912683947804093520915571211022594927989161351232059064737556288322545447611426882501166956319231511451124837736482362035317300109900181507623261462336824494210257789736717400935178480667125672941597428254730317513004800836302602409477117258157549947855735303179206096633173514382448861293238923819069673744880890642472329803456344005534837955860338673340701109609900591398057625511323528697586720713232165711958536797389076101081968381278822895951306552991130046557900321582701234855041333758954746454703087445084805325433789551769076009652894109344749753676290917761205388089978206418732979440898760365862724797027175830929875338343725588072105454426873066160770932954756753948051046442698818850458107196502820862253898085327098621397203465684370420424518435423579479321999826068999910478690886620930797573417994794363540961220511774877358823159536805605622572400482114454451111253412190181054097355756168271239510038374519428597538479264751613077737005516730994410744305358108780355998566799734200304734545111490403115443236583008374576485148921856121690199051038533880705939904560105091764250279035315387991495672042002259767380523552820129513485548649182531609575230761820775135013888742308420728217506668430474279040668115514295695725414562173805128428473969807536762911054533410200526962519665491884814967898878748722263657972570958094402614676122455063400887676238700699410693228430494144031363983642752870450021119064338890518102544812360154421775559054450351349071946585083332043517213566770216084604664027431277173587155839475520687423871266702838479697963894784322110486723696076098420545473915749528611482931393918324628655922392445710906372252739874684019284190433793119974645929896320953333059848089286512273090165442578498438894120817731704333827032874896084880535085854828852106625882251125267996745405408371609599608993249107556473413171801109996669506104295525400833489339252498797059392170038854543519702093078728780248816507160936437620673285841377381049134373351950061873732820262898382674337589070906478101267930317350252677809415109322015972888031574500233341738261833447682699207265366263077862712536048177523492803362406144679711844893107141945369389251398953732821969664691534122309215022575963190379518227264920196536845039835798235419174901546417421561937222637650679346043248445778438493781625719222936811259949700242375800641847191604195069642332813739922728774795530618191808477614934903895126822146459820343970743264566979559462798097744102983549736735230385893923110625387611789249207365769605041782859262027402357287725535107357667853494273568187441830090214124760671733888005216761574432352847584669755730760990842329583206079401392513090645763524018293695124924959205305130484606918671975465224972642996746659175142147909076462858433728096123881071744989125643283281895038664244384699096302768095431257342369855654012934367790804540478805211922153897781980240986190076152819947164166184209784508738074728545394854851463474439113752461452352088413821633566332276979549971862843581797422267712859216136228805441904102497926967924195407697398336545941915778967629981601934661593301651140751851546085306433687248738294390417768257298414994227414511522625746820130375471201229832507024309035909946971850411983456759081173700468247163942033795642127495247745223740684683710982026502091269298415549165786688784984790991345794501002572104844383502419403459876459267421518076771471987124540300652106029156342973024955782274173042926945747520497443042282665610379021203628610188591911350244635946230570486684664672063153643278475988343988744847583194916598432585079619860671391485912858726057844230897232911891690928302456392687792932603431929844402319792351616482466432404568624126212998391156848605540234977109256996511010093813080153359548911410660698120716010228599255442960283550504618854742898496316841769997083593655683262949286624366869982594424788210401556634453312945205514009996039951513462190525533609385333784583031162046824047882077533388350384100466067109151103243420321894215340577770822679866208080113941594362514548688663028049762200444952546643168581369240741336403847672564834078789002311739371141153976012556971229953894389211698386763161656285647791635718617009027423718821245548831352098589845059841149097675904704065657124098168976990506348890980441887044844551415288863264030953586707170571575687404597810574068632979496895989414696810193020932937511037594999289228193605401891444432466915060294861555526709429308432049950142715929763340066810781670048139149438306602143858186342687117765255025567227908882750848117850217665219731218273007798561674050221403647089375146671646456008795486708262746627274579711467870811313772030118778584870122871320238853149874233062410837506938517459335899596744749246930764375160990094207427659271202701922259837942466955116882859468678188322165558972741601291714210544429287720868766417589897439006272121792239764014835332951344004021706581222752040798084276179403279459677077594441420485397035024732453444296355485687626588218552984489647913454266682886055650051521866114048958999675374817356111137583719448525117948302069149283113078859351086458764441541831814187626134743215348322692533479740025505038939156541077740037443961306930644837743303121857882750354198899355960687705089923172429885457878686708530879735248597433053518615929839071145555044569758369747325936373014531636675632916423025263491032689631572049155015619957529789639301347168750049031629630160166309748166331045324850300617548451928702608528879834601604019231469261666302128899711073175735125918074693624845841964823629559599102624240763309075613440969998545287288305951793238952190145739855649780608432188863918808893093583973779380923950909402794906665021109482679680333873046435673310861845345752258853535021743981037070743894004272877362453905931382403451147480713852116750790746594374545304317395215977843186752973082257347701810598461555783107293630525666263116458288667085154767385344360908180005288905386034813481569402160813345809465848162108857121920432184512238043112860195931443817029243196416985184308012966527648340999510384049379155260638526444242142181277574195578618042666595380576315234887454778406948546181168189288486291717194803439024054814008657877041130235640296846455783567448632980796256930565972908968215511504984648491341718586371737563975616703911583391229542136367704505671526789276110089019067401603965718718347141675313669260100111067301576101235916084504862867614449617733287534520892527364293949216088059340756147194878187527953476624506655939634581031532708091748591417842200170799649744724905745904740434982612517592353014490606982022900416579487189291777362786720932651534343335106372396087186927624682646194033864949779447520689113985200530951388702425034337560195859591088437290959989044608634656351415864314134192795265650474338021088746114589078433505956895024444448562520287808005795230122782121690539234596556687061392478216456876155987736886836683715199876130661149198561550298453981386199373528446447002679105131490483358420411003280775263070700032113076263212066997458422418926212572363870702112541078487643347610928578347803678457610142154593285051681742574324290321271432836400200583935296386389181141320411248561482120695957315816884160464301692555227935651913131144811830451722929475459520773324546588747434995126423132560507142499496752473656250560835650787856896762963665182322581497512638094510945792770844545997825631608390135713657680622833868569466251254320181520543755927127594135305163140377179652026254306640890313272813018634405981145476402843466520323863909163523087607408956878039621717169300166601700213208164974797799349296626585159542833226849135097724931637513010897899769506136360356014319348326510792714826995516068268247746154164371873974536587046966826189120025944165903142824071867522576840832559667724718028943169265412617383435068892923024011024801578455827828886620733872391007997925288250369240402594407588162556129347177507038066908153474877876193592661040015879319619417120308926440294097520805265500781670336217658947689422826163760501522145287925193672212488437264448122907092364519497377777155785668801438502364299253120610536549822910113762806677997380480890001746451513902800995347413749701586118633453194885826909754532002908491534820171043278229537108229240827413866399817072645827191476738221384477891033261845327921920495655452534549949769213260998286703629261851304528410810160411510934618820594972058388996927700825642371743400011639372274811145032085245283753936887692296522296083539639923272241164226006030111377768788888688055364891172252730587476583092824375273729933452320059149404839190946645444571371260606751859257528349221661592215484625332021633497603932660834315655481546488318659158526020489613684083296084279879394961680641125685001467009654621797519829985391598555765337330905691618487045911021548173413020206000956842174074941282694219461037118817911464340505881755441617351605454486985979735911380879873452538667848905372349973755004747664506272780537393721774600932761521866322577731692873631349898614685934758096022162236529963346440280682378384560058677377193091836953390969400488743243420326934207573893115868558641949646096024022403368660646548838569388806407913849845441481558605765380292976809954837484600366531337183199952261932187447100076690390297973230663950432114741844599890356020653233672581925802313849622826028889936324251327354983771748595156042540983485202391153227907056235117492266605570132231272467516461327208300074018533229290927274820307521216633247344969645058104888936775915457039270179133817183123806726834460142949755126493637102352777740040568487315038024548717102905075088551131910902752182786829369582445315917686203980283544641690940530235986799748965678403060697460957735746966627787754882500418663504566548905580798653340221360147118061069870143457872322402590861195885566367530153881359360878804236002885173256447867458233355715178799969922389076079822620687248133548203243919720858946361029323859367462209468913518217563038553776541947283674710892976265809458161253017203175098861239200032656669210790485356780286447623888284449056949536187627861090674202682768504740058209532315179436010895645088791747194514692385160244130244350887502170024627685775646712939518666877142918522316450276038728538596756597689664073735666164063412808714285952716693617635078747737902481246141191122246330914919699546987287886543520025332296259519184060003234678839459166428375295659815822340243818793593518036631183328481806152604081288085796739920316171762433414098653312375185342330940075981130516850260431018908893565323963743604669786894504938628598077087644474115039114490102005883419176216314650140424841583831130496962360581000216166383363807695704786623890311340428253320408877702342266837820018937480497963749466165853553089061931034517256075486147311089478041993230571641598742206837973609070240519448386263599268504938413802628511339221570129130282436343965659509588121691267704146973658862136028719318556578114080460447039600520224794688333065140487180407549962168582459407888983897703038273448314383900040886394441756556315073704072038539358493328016719974396501672866563377252519916448243159684459333080616113579352022851607083080715931274263604230163543901015154397424075576207039858732008414746961110754989650945324123035675926315613323989383522370907074029872705820455974884581122671934366024288188315821547304103284003190004528106624792208508941303866128056699124353382589176906751758931849509159372542944671345222818990753403536166088004051734574152818688056519530511563436142617442102891120800378565594361751337921307125481447186442233616754947900815817046021806881927533248666977140088081687441916145938178609277795534936038581619056869407834785843298265553041687402588884380201252310678119346917491287201197299354571299435284925948935314445635202485589658741802694917458426528095874935813836009161997200860477649121393419883560331959089190823495740215502364921578583228645475172104617780503223930060397824502420895219849180922105294683851123270611242161778404325394099952911291435674636242454454238749959844060650176663955539159863375909518215636650254849071811590476857021434517215950379083336574905316499815991496998333969891639881855593724253774266368230130537917762437301544123881802636307588150337003870397780951191738583804126672317042224620787151701883115812749813058644922986245483247454140581558962445182625945887561365235895840200886123467641420813064793819657880941046679645815040795160205077274137634425056721246623655963837500634690471708062741809952741428198503898578093080381514818605787430730923242373821421869156444540916072169992018170532128228209825412862910851053731589224412919021850720425473552651142186085144336057929533736711519058858674577587114568287780286678589453178584079780195978534527228881474567427421664594277516723905770393752973432723670622949529017596134348364523462129020944454987551824644834171921323803265294433054557903996902793067666330353956551582740096818280328578307526450056793718254390470888140971720321762544183672459184577484315304556808787725527463253774841958445977345590818403031030027689160586536512605912159789200047308897575385786383365450173510490277346728708400184156913708661075329010716543738434992797849283896457050103025670598577728915734124034522261429230973543357833419539243204526134836554303648234776298764948347919875127937360701318288914938584697477061681379276586610933529607072602831834731362777698970354311721061649447617831869838115143046295511129013841638096425011431187132558664180539436866986059860800854957398185863873000890680742517717788760035345286289700679450755774647324262715712495777055099727980944235564956431752243159156311448804239392428525530158871394358777237531839351005906510118872388965432270825910534969185213519852961693588021137657270701862579393165075462645869886012712127235527446443383491235149653197150001193573946272156482151942772730047473412383053141692850392253061847802082319039003355015808736922532607120929381919723115012637153594075283620660961859979449362210262323198085908631583595332279128966653736113699744852277666629313105841092631153315437008905845880366280038262250961461651497837856548469157669786934800600866357943076592687558878397108633389047809203032544282018403376641741143242795828869718273275375307989873049532607653306346965701352496434131576484651712704825646328337138035840729110154776746316324281221168447035376255321641762176053646698622467587541863816594070282806963750134457214272986601711498803046376936693323539187835812609934583776134602156699098026117519229955305074348551090290585364355052887789557177134886816699052247889352457617991147549996991315552812358418769448495527226993809162655322859372257312718984499745645128892290651586795857011647712216788093547522253176157941787763371863630605418182743329980995823835990242074454800600863833720395370596057095946091211620090428085298266990973191964115429190757106146605612344058988849978011696641498709681209750697331163514440609414925866385053821799303278464127356882082452208334255013250907662142946827385986465914072839888925524736767382389895024667367259484452420082378700350109035195177155221363454604059621810833351425523166575905352861575008385632749068863558069371285510327257207846496392093764226794828027483331025613945631505402580636592964689335235898847988713818854245344801986841693587396602645005692161836075574740793511220456140600050266311860041506123649326759781588765285465489278781759575168895682797076038917115987910478621980440941543716409601683656145260211836831357439963961703088522723523431889601783176485047318388473043316241396680709828728270300166979092160564430540584158355042847677151692420303469910946687913336357135712199528677615657484824698560871360199113397360991980967720656097325490872374062430846706088651540413428887978189976428515195056262389183403363877501343705667094004383081999539741222882695638530069531936739231273637394956207324733757960281057686126384130008816744722376086799626092018010976427903882408453550884228734368838092811032186502113854799271018210304523243743899748763456733049149584945135243367478101513958541414191807446266932842821247455542917143540380844144228003599538734563348731958570671729718837429284241961976715119337190084826618767918054194605314525835483677912418890528885856291014877106008517177065320886249569858953906960230954737984199692626461751995857663491011537324296285126387485468288246929402566715082506425577697836592319521430401249845087512906734301253269085490504407614768817187468245821651516683902818206789100787039054787724062773049489004140824246142372854865067618544452832114173612266909608405065440516797249624424087997761460030939647992622221322244242287157008259592389280588608780341297173688980076718146455311629712112429910678698098303379399686637938315726744832586011476187582315402456969863666665923464102526324324805044607809381574459221202970258834165443182923482473495773454693492745237368706572688417769083625739863913216142661770026039163420781289662674404167078784513684947724761560637354129846312723620379250179453036819499214607962636881302663590356038522040499445538087146213182325123577973402000337175051138784823497619509263711278371505554026448608055080136536070531557746297816917049680401568439310813092265607055721955103008058871505365936118456826821370402075190711225332202986731133643434187244177715812705812257359776785407655705847870547374602292395149307807057174031419382687940274255993278061782177988508010953733022553600717207502427309074021568716710435438607482207012433844701711920820018197451164540360912165327313930028756593458958800553023553945246286124356360453045996637380384068118230774852508574285063355211661802214061400039611756192545694419079127049706398642003258530278568539004042388629116940958901220873601760180697465447113706787892732577023386160541827753192278153878350793893376637945202548934394677038725498116504588242121360903933941383648053608705857832583480346872869195854797129410801495969480813402662730391043804134835213240338972035274709161959262935483566835549291087497272931934967010379515125099733788216577996989548140480458668914755377692095667542413270621304770548635656267055621096926105447585257695580347397949966497700753738157459965654975504126109568382800698021704801409178339406840021012324336860607665255511247122787402856728372989312784364934986810584795111819327574484886983449277496911781366436838304621683012750150706400523778603288885141325404947986879419754273033676565292369821626466901882212510369163236928505387681701234029593290919245292196395754314106973620754424672149047536538373047359921870344249524792991028565780594283013181167495178091756541829008057970586989236514879028622185812576015264218430382272717484823191994007079764450543263309070909191120897283237235097344895374156748344388282697632578555116222998214351149376695883403324329142298366551768831962008930180175364807536175956746015594352264093132771741056950400750867522354710530401940320523743178480610342434645267772468246264685240493917511538774045682308476114795792047093686960654728511395987416883551283891348117919478954443219692519566246792228282555456369732479514378262308146592795056990131092114054407840449484364914956901817836011969622115009136646015123192051255955844153274579671548323645382787645710318832978786408993362609079400043958579908419339955629359001319280126238725798419506732273480876786731212017576696305285635064881490463847697751552835751025836847029851963135154900365298538046952548456679832641914121071036198354952566754212934747929497259275691678320791558565592955224741501084516421578390476429168806634520513870126226090775576775399214187569996425832507318990905687703434047114785366143610851573356859913540212267423703479544080589570630693750050469418289227597743625719541572205263680821405428739959648557599770234296178939201845536041150175485358809382914067441984014799139021741238172538959848790544156968713433414573952888500002884737465957924256536114880141678868246036187749109826610422352227093726856916947219870264715680775003184145292800819744194857429302717484434459210568833131852043161541860364893824679282462750158210375709430467371594007381701258073806779198668054761506721458346409162013503870002768244465543429728186872045160854820412021374092688038951698198886028793771613248188624733707792751642087961873503142126369411588869806945224431753991246361689393921157131652299726078191888160843663150158254709363069003356506750776722382979793130091660751837516872622215589260957824418526736911102090632344422174567797485223937790271861831363910384283530141194789099631499063409594959194162404427129729550852721055646765583338528943892713812243033847161806162248559991453100416572891765954922982069305585450831082781502844872140549429607671321090422674936702311421814010476100855663179973385603499024341928658907985924852318456901023653106407048027840300781981259859834187742728183785638975834511443682648793585334040826460653396349232307981048617969179286576458993540702489777454941838474436099851033900580803158901718232056361830243551006382195441612435049678124819395102081685306735607117197547011427763373049704452539004294237035147070105664986666327248830652614162001503040248646279327610999503575010288025279483923617273793419241899946690732134360242684171742443451203163184338139057632151525001433408663916918699380717173645792077225611402174146537172378177784358221449644911260257969764695339996819287920414911187417248063392892084116103944034961788742647266693723125242120384648846572302544587296462164119154832631814731985381667517093234484002899505119426453939688658909127927516995006430637553596281937959893069965064775094544592686082437464554740192066807222131825501871243706494785574647402427514678385158828042974803534049196599725356508707303643049815352632160303141799027948797847075313939797620677926815266284052774556544290624939386136881076061450341821699810488800950726436078982385463158783850857821528830579786899541792601578396710203072697255458193490766002936774467909512729672381304462412261690483306914698365861016402535704711172479936745439341291389272845816752890509538295279583013869349723015474165454513881362531803075997169815714229335121740124347375686855453097819814717365889040932610092677205840040253212046614605471546370915365813830825997613434073171046482241326764375943673015128075288630611212282183183180405687053422201373284167129104693667618539278422813536224444949846575885236948702048845599722938533685179875523043839446697674495953529983322795045751988056874902908129529856079045963646041656936891921421443814989312971243836815956758114449476601242584943217897532825355013096970632466657441633016746508440305462124405341881729017061687902354466352092403091327221919433241437001549551098790983956973739332603183532238864269170825451615752487163071730075764282101779196694923510102429991379786988645576288614567872499861614128622113153217738907504800038300341241893049841548143872237283319372286732207529437224389472841206487494500042092486029137454023500309605768083187162606479975546573378429956670080394048856064034513677458056999741548374216156114021286794466706706307692869432588252348097320314432251665283429249265965645330175732450507425624184082236528101435557649335099923179966329077389827220850725705204456937483561146544878741854266405894102954870573545179269920768796165575118042538960930722837290419261619133716860131789155110290698413216545414074176388100505437974608017984272423806006318144724546970200143791580157175076798727262579416662816194298709259272890182355749317980652183634045037174729193917063958728119016114491669586485570398959709462969184563832342252644126238158950089983525174607531736927986880774315386621974071782410825528137760578735366922057733051952223513444556039994506268998385701724810359841933904401920644828383622677162213021032838283613466234196957626705734637184660113051555208330122400867304055373761703139906275018260666859068395242144772447004803265029293603478014908562499594863500814940047689107799353781925304196657220023675577357947276025654649017055791982325552278035129361672775074746697363012319367665530629750822077052277228261126853028432877269211412340048206462979713781556048312451558733483240569811072260906259536154559009897901225780735230599372733576572669237818705834459832129890706068370768339726735961751217100608358316495644231794959216054977929511417759696147577642397404233385219483609515813181303915295933523594087597988049273870424164163039901677920717160325960797680818253184538559770290087796652042434529959414077769906057397821936649623128731815319182832740113213245711702996315814570230419416894369381813539459506002395671270625963467831180073715361972861440455862859697507526417470505666135649179794868670927861332785519753636778545150357599475161442428646604186490488901616992317569354964876624168843649465211136299645052325384382487844367467926438610896623026159041050390107711721217396081377166853284523922658193091708697054844585891343639577945638437739008221627365829565477559221817735449255717869842876675738665070858156512905490015827699351491384743949546546907936322589121710861698827417591642349130084657932655545575842773240938492161007139963234371850397082272213316965978459188721548515041431860290250953426399601766173361403607919959633007663844640143179153616260241581500483452548499590554424819962423370150834951852621390130503061161566148742147121659029292715495411398926933571842928244202512487596917025271012096698071992123495774640579659519638066990986527166184108719735591564872318047539237115870412294115932150210144327923262873488834859191718117046788580871044372007364527867830072022189245351033367923207774393734722944213706285230932148996221589601406330851007182435028096949053461715212386457561037213695326382962364883393390034441340713567772153311600495329820205910366441369630041655276659360585357061273903231259598778823875316573659252876781984254749845664640248579656260094049593322476649681790268635629188407023021107518797578789707055759420119300450572082358702653271093991686470683896937832902110760913927195043092581791987396214728279011051691464603007962705505233848727978643538156067390929508604779447383277860125260964472408651951756418997386862580398651314950836704283780760759273716877443739921115949505400357851600301055907011905581127280561516627666488050771031731126848321105371107779430898887455166730550493550093706001496261403803096194005415021848365380386565869599862328595625355744958062727101749617438969327736323345005916152435713639492066496085526604697957695259923452584279712057121588053025917284428319790781211892551190820715143711906790193611666496880744216523963469196519116361146956174778564839051138975530218639465189488772340685465509007584979519637646372075944149460283236220019939700810998118765964539233420742477639410595344351831725072925940812693572865124893702100312855430367105954784856155292379800154153317342590064884775876060571672484957689634448454622933724826284586721120537449361060259400155683184698826890650503874687926289967981383503192024011226292216171376541147505213397725484946506543704396154208754294601418629789213379279345732100280245192945295500175361022519989543954434522278996113048465891095832960244984622923226020868308175925928674714994611122342912912606586865220256216775447101210441642688250916608890974081428986242959433702116619270215949291901403550783336163695842620718918080090577028308782895813132863090188137635382811709884273633853351784402856224846908736869136419185071502450849777962930217302263929096386895272777248917517501622308070093432094221260635986025935757348465405961667016423747090332982844241420526988202166850250346185210167607281870981319811653306986009853429224212123524129061916265218088694817391162340944021379084863706474770071180170510439835110308264969780541949807285237279623218641908737335029533735106444711535322243556909427056960274594716762850291581988072734019379159815867643339425052752615196288368508831957656626435643599036584551144005534949030063462895759722201234123348967652358180711186799066294082137470050155598805735622023084812264066178642447275490792107855272890217426644749044701391524294960792826444915513292076636966098142581248337929507911474753552190823579015395835684453710520304626872089550162837066645653631907427956556048256495451401829263320138668450601333808875815787745375060085248404414140507989914406703463111798500845137511356856410765161316096413814144767513465243938356230669837554036746197481750014256687656563372731269858744313818863034535229043852584543344572667568035304888470124728523273590995114142409375041431823433308462575268519239469730805328840025733111053016104249005615151689003655263701986548570164144712552085455677407572018748493103738636723111274637179872333103357125512016132764066449970754328538121878418706828001897840482375540951107154010114779955029243458163807267701470449246375220175463111928230147119927774673358760645344327594131542523113089175776409601404798858485002705044523969512990252265573399922730254545524611043939250406909016639423035160212748997128239766820559237453369631250336239063020083670667945685652843905794785020076137843665543675046461484893031778581997280495066161391643417751974138492702850795107940752324110003561966924272203919061787355330305375585040707442512770705965457504346175836955453311882887073485484543828983048700011514960814418640500173841602457897395808115059588162791381275377267713203490066822354421596699852047008447005735435804914885161574250594768624219643499988917707814461849445107607143103370196429157468122096173101936315404466265672945240243860578837373268170811739679385458265989436827370100035083977549080267456141677578971184848240821151481989041404169049283682318172330208685796052484094114006869463852759573232081443377384039514320415299811611031963886621994393751892382192635856140342136259593471413829419237387361197533476244844202233759597000289514513554952008619634151866524551309117540476496312766045357080585265509525617013018006121355820743097641630744088691190448217361891454840838351327156801999752433697592251752525806330662788844135973664120355899267508758243534985902273373698634027019325324515630991194915576948697421767075028876005123067464076311385351974166781328752527418295094516072546922352141321313547547077963780529280023703615415692686597800664235052444091072350356759362623155869387024175527024618059336445362428050393369684599598291013216188568756978514818952291590598294153531783040241394444184876155129592465342118284911257512988468858104153139939169114912957429963772910738599384345562182530065518322900284278625098224351436639056034119557096739200390610586986430757282613181332018017380975948274775588782111482872612590696017012321522532578212404360955114755449704560656907111180857079963765200513675638645865518444640561581712508082319414495910393484672255069984928628974832360094366784688964913206708802844722632889342620607103760336283135410073404122519472382166862087382428069316459436630504297933853979716141396863125849654839594872780488049126457900933361776786840760669617349320689527869696154859648918718533109206112120228117085056276800266908084531647517994483103525084046129498630939728919057335813977171110201069783119481460098142573739247649690434170992252831931982202794096597668435927844308431812793566903929646804050034807674114734261919689897920922818120923044955190967494607271151223322714456100489837981719149042232871072094881441928236355158094724970449153659539729887174177178039719844787956046439096589241215258099211429018261322210129005536746236008178961838686499056281093529230405314547860455867450853185691198973378653666627135357909673210537228297996325506519526953516967819991317651963311739843099139356961369498011069907886466659742439159517143742887980437603237527355481996678056497067166028267533408406603794050187805929054509522469614813079882690744843571328226204770111261093717113081177399037214368462096835085340513287995733923365554578477151608617008061929362202909071716517281720014971991260393714987870473863227698288633013480851047167428874961881055573032350785473137756057062307721338265986197817716788339949480316840783297040904223091437316596137154876283474088748108861724801198393335909300086146479226649849958343367635490466482291590928522675857594462396417015244493362190983599190148149723117558436816859872365549450139022291578960410089867160635070328647593456962674332278296858871591001687135290237005699945563980358825880524175313110111209972743951993781185002838646580743811803559749695124556609743477046635620821195157222166958561350072796882582887302755151209347988925801975387283492686357782920495846159329008236879834128882935585213706674738663083411983737343336110097674368116613730748598530362847448384755792741210248351231436121501642227014875716609828554812149667851506043256513780150851241542760494543063113698413438362129023502614047062182821391519603957193767739383585102165854048536095251921471689864483740926531895091445110506779694740252213740157709164697221532418148365641895997458417959992812710397542601420914886027338501129137147774029188493638547727681641207812655617473290710838022595178575838154260493686438863911176414027171708382567665505690722453593574448940918733241363006574008551525386128225414791682876809681567092010345592139668859784992442695270987506185662688075537959644387021619277895225983476751157683181737168049878032550190872157514956823447726307391459720191574207978086295248049113725370908979088203030892543869662692484824793626291913617506773102580790649087233119101416862751884011118243141313908468392791677681339094855314795530518250499745737871377572401444079154067637351345535595718429433269077049945262649347955234360552964244037388957031636319195490967531633872780116200632186765317621986064376065744936088915548444281191753444336041651869884818048780824739777268286769777864179276737689256642384376595827481329511281273775791212504151958995716047965778122320858808957913508246757070492803027407852776360177185467609841134355184762857838865255028384463704654214848202153400628931641779342176639394575561007905110197717448113931729726949895670733178344633064828273110899629324556891149474555093496926643732037976450239192527784566713160032250104622320726166045741317287740533708418936547278242934908323728542954125837172315255378009235920705932115403735861407741267964872557225741028967719052698311573993367520497638161427026946276884810233038110462201299273073396786005793155222219210928337703862082934969263860808743943451918923358308013563714726004669995595084262700269322031362189567409698783162477613819815136550621921961765435397576484424960792648485212770791199991616456009053582949767216543366061383463893592930751750613908665747362451902843466478126312389423889071400521456856621750231919451635114909869673526417890030727388910531999987857896758469300699714842398673431707355893641930933536382450925585054747229359693027758698973669798869682295490634189423335924113482478966242654484840129404245033869638455707114385786795569576759785361397407376031273233138632387872111187525872231799895651945519210864077747062147441544279897697647948899671802941177444407900860566384653785248750395781573546159316449646722954247081448901231784757628338608292003503229605547565067644666815519002810347048730104678820374564542836605017722516259498336620272598091457698025138639629927617747455680130576319164246483717791172602479829491199926034110874444453203624079515825292383762161993202926177576189032915807743792530612935729462891645403039724945569820661609115027270797489063942918643666056779906723202549130178433592539430370960111906050724329171246368071677005895431047084699202033217706641367844453948746369363750952940447823778175435301103882803292133287943739549064533743416598337876387515970417341589077188596041599581006614502393608307580961352468960440253802236346581974642019384819810682367675836620812929861233988140869966330124863268742501339654355951141602574530464544998678747975511137107469055551188305555455919627268630459349281873568943592955412770216544209758642520201241334976247848697255506427465729405322562572679003576150798672581882198392786001888917268341666201149163008172818666364516142575856769523036681924009854307238399389029518487393551567217620236247887540687604704532926850425885603040384806690999317663851561568863259080866383102080209175058003969180681112861208434010108432146768925001975190452065846994252569192530741247434284806655147423922896319864194153601084547522862213526673107143515129650444858654393475086568367919048928580598862825306616141478011543208671309702024054743653078179736974471442215020266573339879316267231433265696896401818518978108366146100260984524801269490321818167113601371541292904227348344166577678049618248868594379569365767683909234808505670310807729780232799640941781335617947750421217947030265398677902397752078674289879272522213427942155811540896932309730811829557061701799022146618691387909751274895212991775569737265729232309861118626808433960197527970903485659071991607579792440125449146362777579423386108828605243345799281985516219010473099478691343158061462675335975217194829376727858667662657619747005923770631126056864828081521565372536205057373197505060671215650242119781135508598258439971280529201626351797346906515809602054009704214319413707213920190355952931443115331619844318206766149233914154062697181482903897454233213426986892550795451450341205979549637115034172897722546719472004185634744875761315888404470385394074878151457778212611656680948410576175481420089585196654303081131533026052024313538884300830391183509452753849797995057368532130379998561282460371505718837218761636267818464149573426004467534492969856842632159923664921327599029499531840311874114650706614502020029986110431697207898386483203284951270026836030620189836067911333146016976552343766592188480416210757601261452180034264368356289990536969273396387975604673471357667346085310895111888679470797957734451193944216477960622644046743338322303018371523998989864417267190329513687653779326892024587421413973430124405358335542575635940125155732451706169881514634513348576855682725532975624135216072879422404067976834963284766944304236208838073075939913293897493152139732872432522898811968664744423192039207657280823590543721709381597455287560851619447136749316683233615066190055976665528371510901781045846498058393709549162116610869055287978511965656364260033095996110396156339960565995866425172856794074693193133061009257983901361330129334076274341436915789581338022232132463761103893800362219148161992393309035776032629999496813209477203730609687883775116439033584309119586359145737795240773946562805471109876822637879341595926535785449427290191588989007560343232482779936061409383249406522728217492086204835336970476599699081124303201199986229765663756689326416177430930483816441106953751957215409292234192609148345460742640200228911299235661760795509057554856797769381856023537752799624321848915113054972037205453539281212095188824004933980387234423962700297760563083780269384220571952422438604036851836225052752254594649130530094512501059841513368553794985189305859969431159676521581731631342778627166341320255917229787581133066329839082539884666211493070949484966878612724847177538242659893173116073047559357992135506556911637739224028178392328965632779663175318528178992796385279835432796727919241148191353938080260794059538180631541446269312872485826440532686683453619938423431001885163266283567611177001089941266547911214057655344517003621720446016635126862544183144264616864454273914647038159504451591369636805523433100441616960241718786187401052715373286122489211705736495531685417185999270258849304539687799049628800762625416127109567535621806324522957975989982348390204489686335919473202817742679980768498463958651111934481980390753500126400570325888023473975423306721625519518206727321216204358608121249613222081357588404545441573740186596758302495775732761746466453031120223451151752071942031086736413787084131162149044612280460072752974606818527180145685562260783667607840185838602599745442802381420879148445437598531350381194549415709955552689363856409061983068464687677786589975117136588038188309969510375381748347062135275866182647729596011522855498497687968114957046267427042536353139267423955306633197166827707916265945952642655346255634576359763476255257845805920254725820078013300777031154188137834889239340135418751177537223249140715153406809107364786791122022261105988936100852052010664877605476214359737288169378530556473844541800262000067393941343776233815386779468829800562671649807801615882793582599635651752185818976244361727230280598508107817496231137322811284222981311507363653544465272256884560061951269132653419012486590485400969484421899392175883261668000600081880044208205755933882839737442453058595524986141287092727027605760253799759337250843902013445439649632306630733225898778168901738546112162584254443273401145525555029361360182084767526116909503024397514569947496038709968665548557210624713423872923140002265626608769102276198862209911738710591240412701936608475374562204944182065208508413915452623444798142771138884759625601957051931004706288763064539497006523648688318108011230775192066540870484287983089163461346840322150587720275725387147454277166406944876923188643174148737311873838825628554324692933664693800680118368038523008509630186750015711857921586525641741666384903972181723249918582643994095753849139951865602783907326234416263914023487275600300645203278493073211203989253562660998523388698055607288900442496032987220527722396937095554248183691487229829020882309671604720055553079086018786702051931458419208273032286765942866259199844398739560603675811557510600722610789266635902354181437264310190419755559781047043370103265224875778356142668547535052887750597642967921977549022160643884791504097786542122659047430141066766356177161240829275297361259237519490141291053134008612569389321799724327190204533313253283730047010119342231605241853998832708021630404844419146703460342705413694505398126606267100295054673273737011186278852556981917682934371313898947754580700175979195001451738823061207684491225604050634127643533901897831910012201912570630888999993891442943907225386052414149810096561583619924254286848686162140955511449404475583664012306540244922798326452814028499304155298368812342514608169071930294727353169975469922645246193845293826579328135225106938489979302375039069885652968694839728798322995078171163736536228449034357806422773642690107859589935860636536345897149429813516181684715992539754048237546007516105486603358242227031422810206239480206005138566157120116857425421485712849397540332691133513512872798929787029433572399705661247026446074231674699178574505106292263477383096771431126319048913150940885230223038639826236946617321561509313770830536163133070002883324090978300087077126522477112995071024337913792954061982820352036286776299090092649308738750169975050880329273138566930464179982557121630011430759068144252424280718125756524847178807556328754651939576546653003131647143207373606567508722108765339608694985006702366432361976141413642522061299387889672918523327227749567977840559456994226048946824059676099100242573847686139281018025490821021548752519322361409578424421917551907678450344018734912613717027103946103819947566653233898533595547422806697878452616460804182349201932967856198058273119922924673966196614619926715491750328903886872440708595865234132531751331622955359209048037486944693178302078242291671755447861832395295827474028669300513404997578741029270812487190926297204938129094631548928486465691536894657314826069568609054492449088303920614476746729935830701986770699556908674575913308355528421675101232984783627093519211525386453406848586825399484475671930191417972419069211785514340893419332613813197609294999635189066356473281237653833094065197923449414520577174890619906930261569638965509631147362416037743561576900897542021227347042072885886363012125415961754231314929521300442134868580447544031490125137869092564078863441491608507223668555213531376617558436550428866852579025838222780561386300775768575714360964471629375675274725796667696227331108580469788084037104079482469873178608475974309543154633412911857704354352930404760986755068716972740548363465742580439638960910209588039361644042786743668609117080239604603118701391161003965682296205228792123255764518013704819672534740878576673567643008555508248632807675481869556133584413374458775526530774429131661678788134699892135697723573419790074087151142575133688524550004394656859653896339146953368206182132351105883724783914457325540474127691045406578675505306964535995404151344475715131411975469598660576666369587719381152988042643875722270846116584190719690520930414377217920443514265321159107396999445888629504275764160204158346291973985307322163014313691314367686769373689182469237606288690410708244473361789581416362129822297938693347999974981156115571613521011923397624734283278734683921866451715219173307026051139958084834467869615737910362806925136705196726186056081588603186836703845541139162279444545781634581601895329421429422046555731656237121695380777914161292302374788872326298352479424980419859280571396955189620284442435331596519202924899031236582064239331556069861134151833927334244714704943374353331244324709330363752936553101988761686903974209498218501177186213269585590238596770027181564097589872661111753537721905148696022362531366011282465282735922861586504001638820809504310715483848303242743256184242035020642604967419876871405501719874525267792083292462467393289670085652473874230149990367076147212365361326423639898024958158949211914577794355525184853259979483852805087857146193358489702217067295173707049461430671568134847241067901132225134373355683482985605744868525075649055979953978682357399674113219527001779783001999738703900819319628418244703919549907936820867869224933307598261180437517440541736223830351073654922413839207179428216262576855307263275727949239009185636647096898829176238078485317929840604282730310409147923289924780619029467825544484307429014079870755573843114200461844302045040372334599449139133025590293851109887041283789340011805710583727170143899345656116520971281061196315657832725635121391300323848544800275619983101325028583055475211829536478503869276574308533858362414215398278533295894380090107223865095946850360855151504368184046806725369471828366865840748540519044565996214408745497323232897839010512011833817254307223781757660270896416199241950192666638128955731917877767951342836617461203935513556227189771075398868032357369022356383653272159639035748307110029383497817346090489351465489502142900569657294216179001247796685187384480443080783612937205221135025661323994201765324599234812471408857394609445671673305782945762474726011204665235092334910829261479584721188500080155596578393424070598978223871688912909498136705920340195887235911569871397670684837113727737405256738485553262441380383061406311826921164066686051523154462905968476301771068422823708425832420522811673239437340542171840580064971571839357247503751433507911899325072600313964010722391385641414328334380299207508059888578845463208480286103004887424132706223414299816602954558676472256045499009655914218049872492619512459580671768742684635255747809028684225073676611897911024896638541694759918224960282536588475181488903216796836184852478420494272069274762916357915691976157334454935464230156264086588462430305671796255258134566634469863909655527646674743371012731710291444622262855313567321769504458399888968674135959308725100638968383790553736358941169103596917161724530414495589165408480124670636641003157340975907378695819588102993210872607759911477105572705346803058749256726094395231484577547523334725668894937147798081499517945145886075403689135945947467883572003915915826503806820438685041947528288877882958791747483654351691592320393420515407086777600120932082034158783948448416023604387671074451755691216705365468332076349895894356960813646381949748836850882629315064520040368986365449185389062421058305249797447954221024065667198649622315376698501548191411781714769163592567812677111635317517078343662980826819431806138860280375339940605571327831467103642949368261034011036936640694829285223867934888987326941570555086691823172057840723533897482259350678941305640003805740921885999538910483320829666497717381918391929173738343791466128218377390221009364081131576259121545726847375546813196969006589534212710668555043246324212105616890756017110713923419490829273602414166699152839698643064695646469059758849585076873228658986314508742194535595849007809471458196988659805835445353582784409707449079567949724441403344152486890454082700278628633894738853763278522320087859195419658314170384952040034259142041050171410491270629256862850150649900021385053288065918956742253637260070365710013940456505469206535698691381589332329675876261733757555193289223924178663282695367574571662927962054816284035109053781192870278073711719174306087417191338017896040251330616891798921838566063404200137970058778353871858882457256844884090907623012671559871733690923198467151874111516351641210006756181319711171484593195233056235226824015403383099872215922819512735992602729859087013883764041872246073388517337306942148178954224374707217936323213250959402247299024655136660204178065358017358888019608641646361921749823650071231892576852905424109834018246294753851971342285185816820365924659480645885014380889347563893605038552593427528283683926535503313136581701826606253856812334983430516684829348506525908160391413578419666143611436777264444647915603297694471502809620214791838134208205654037574487387044326842441364321997832620765943648250366888197010532497153250288009509437616317975281456619130402514088014643227449948800955578638458288452089320733715100605512183424454616512676048862004755576942649256922903554670633549193614715766344442288005163369743020421651016191132283529088982511162136796580082762700493719599591446352331920487486780999964970044844243318957482474440143115294151313271743757232095144484563612563149950908299063627241824778872210202340301506014809349498951823157745683852699611418255073513593514966397424490699295159897200942839494698810001553841282111014389167286244713724159715690978218608929886089272601917576230443475697809977046152688096722807165080152522849626023201099024459826390824375172599436128534413973172459917255061312818691985462019014140026329332436264947857168206209881770580190112871718704073187004702830969459362247465682925524865795548656518991757268155858946614764420733284793003925906967759233050134408302621576218850999045100842911321038734111026580537541867779713513366503204576953330542144814102216286957391938807238741707135186670036931849287592707261939912923035441648163536328283575191742695496240751758617749030469331733119026057473692711654935717230404843480046707576280440489891995419271720562446812744409369991453126830126319255506660974246548105323922643782160971578079544316171279820645294390679524109452681951499212053122470434256814373976592112153879713885150869130083184725115533136459468413621546426139271508458282211892542889181622544455299552243222310140527296618491498114042415383807583932976101360532184582432827988288177217040997986950047614893957417392799584778656823227608115035280889551898981069103362914144155157815461451798723517017291116842421103169955556672924277117790139572818590195551560385899082587595484698942332013011349532659530435729322165267535694830276301880332900623588794876177017173906314719383945951252269822661641094565987285218092583032886190493959995845503526224523253258697623893392156043642401191477700332339419542440009157799075164153192520622167475081261245724419920326979765175243455155504620511412953126051479257567230767320802468260938575580039826099420721743876122019184276378983479191250450507680658320531567973931324429138280776174807036596193473601506898785771682195152421003791534594342224005367574438275181900554523333876239389341483450388865239509966651609898300532207320695729163280206065954637821045438449678502803064939808334758241534940235350453652132402047374584938341218684547340724343990528415968476234022871669645257217051434254744583213307275863374712544477205205444904521588282810926376692201509502894139283849527648810864104727757730579634108719720277483483765988416289845420292047064885388672781166291176996749334899547851408026765205646690789970959182566439865066477266061664653791315805028600861606713672154904894832480909283578178648018054799039949907995382022745659814166454880996593404615585411219701891617783998850759598483326875509353062762249164679767888391524879262117970239426519800014138567126766006270197193553004739771775483033915210794483403717026030506133764966517831510905140538368730792658164204458802757788544124888020735798171640519775231740495054605014248512952131151184885626485765378844800480033759682582283766521143241062000929181812746803870659656606666524930712369977621111104041682250661456361173875637815767655538541186846651249161309770610561480681955171137886017787712426723264675121423078065666241378852027341694400234129786522898017883715733902779138386700942000097756764219504516307440651444439720548724759418824734273096271961067617625453232193302981765275851697501641142873757323312880561034161833802639165826737756056670250083582071235463228259193960438479411017840813546800770510161146053484562617222417941218132721931473348426715522410737576486433812339219044420084471460254492031217459950927075929232905213046997021547265314388514100458947691626564732119245747241146703729728340638733556440653315436614778139784228353051926333287073017560651516588489724934163209438554557822983430123938533220365878073730104715029307923821969976675393418660285115617639696048274379641509784121123903648031082829314577982529272921740848675187379894146669937838118066040400996372694823792906150698536915296172869569470549591821950807975087924634556952258205415213382345256386635644421381942049091005645435468225811867326326682956973011774468260966641915163425337934410826784196644605599061362570942199963277714891731938430040078607277695634534377374387913860500582800844065415732469975550256292291299720061118096378041190712878830980448223898496727464245817018831301276295130940088293214048185150288901776051085589631390164941085033054046299159361777981375796588392496280624590462344483873654978475262412186773075644131094100341270188518892702464625320555627352147018552674646411491196309073071581199642751651168102570529711678503282820888299483866671999266193903841793513461466508690617299532179799594460798239005971065376084642087022670006045974305702249937445830466670693565275162852751356580147516710791258414061372488793498069282504476931116154991852045105308095906779375343591162869401186058935556872153430872775074853129261371289795643615493112878908193284333270807047591719741969569417673905327701632053824191383085254895339141433642720316672184266870252275208203254143332223925529014523493193931568750428380705337142848849447470247539759583413739959384966026567206509563165802999871921287415752777662160438211663418510594592017561976904165159603091977781911482526062255704341069452387934944198987018253981463806019281502486873326345186113196415769922790299211982393083421335748154009899409313610590142991809586903802842559492986496934133788196814416492593868202997672417762271073309253278924787505133836687081246787089286135990533309669487887554458488200756948798136659597387190369266128359131557119735628746895240324034799832423605270261840323076601960135324672686750761433705061294318463600854996796067407616762716798517930688718458458004755021495251928286656812166185158529117714481699829369615246603829990211604470465160257777821703130384963706049320785553668804505143389581711291229110685531995694866255444818294530402414836492350098047455894901721355431237898160574275591894232445351438122309518719479819991717610943461238263235305278746382862449090470460617658724061630970708907994268027034856087113773086683386922673772168688982791252228932442941383458273487695188270230362362168315816874075915613277092401436260818406205109338095301973582117686342447430239556526130789997861010694765250078867568165309638054940011645088411898202854383707131535664838480882384030042117244969569345227071380201405514467902188257882257712372296437094482920762997236037189438784539211917287189060167443644934188527486254051986342555047194924400053583681325794806301520344918819314028705235685298490322384215476858727824417343658387863040378777221000681711768173629982646854670232020161089249496272999535122499425591186105735836785983113989350371948319223409879325807139122641639138916163528026428619652884703458276631976018106825533418302864836955914099919508053594409177863264682307738348884747653056624609341347515460160465911941706562639470672038591548790021976622605223250249761179316057546649555313965769985517803610822086851826189313840880923353769134165368568870612116551292599797061898644458835099349071446397516338447860854257716565403157452975816865351348419118237391028840823828178150665783951352380093454715719306935900192385075138356800357945133886833480308993990853443070680422659939277487158430909443492584046642571037942239845734349768865268237566034831716213093461160609420341561857183997553690505614360166316450918621046169198899788772741974156043116654591364945121976826873819564349733363463753018337809220520142189112382335091898342923278547646393275636690447699755096184895422189453126125735762032724617818043074183093991719501301636882179289981104524088664894491362337813272044910581790600539892236247858636938258269965662661747593002764698890527656906720698060065138828867275815631395789194607547214967011118623096579552396097835048504125002949141060758660123492448994500025854727774936493160389714611037980308890769403426732404151530386521657099149880100712117678459390092186144172229304814291267376204168421661381372972063496657905193038792710084306612515845664628112408659951399136156148529112514522854299427947315788520651192279819421953822207784842112416685520743942944884935710021118030504355893704564402831472809766493245104375928188538545981405211936797243738754114549916951203381312318113001952920833801124074081616044826596587877246411658102939874505550465664145367938464989434294562900887261656654191314655945865013416137593696581465899693915933854355278395171693762016677200727345122462052262482164904171425308691393347511228060854398438032712504142294495893115287841632598501342907021580693136650430701501413769914687696267114493264408077523348763858009481102408903232974628099473136907124580135394929761683511304133089647233992466726354194590432878441955955643797151463668917546852699139333972534622892729588651941231682508752192848593878588282405691413979670464289671340926148492495964591698556793559544742098693851043282779975110505616457758463887807727505719831149739221283420358657561107463832225414844944533139074604017715162660057101533349453463115820297203072896555578016493550909195456282462283655277698012612809175406520924375767324700147155595356309962698962219801960339587842357835275952989368392275815458537257493953588280290662295673717975810024653317194383888279153303793331912509999663545400394179786622289610429744157410120082971744217412767352239159019419781898866091448597604010695705565860991281017104754584894247904661717963349318994462375024808594518069430140470578545414274247863912016789103570875981181082835279346145199480847661442915687912464207998948995726977387588872569011173044877161874330858227175259132228597899731173406331334744922316354534824957248300466179837729180192262599893473404037427093330704552378997711767770588800130920797691997704505499252685724582751388489035653938502037921088338067615542702459209297331739267059868234896156509538752074665720729767425494559128165350996754173255857756522137772654137891808207428425792365251114634791214431639407563440328701757632927894971980371957629004372589298477847628216242765824172016563790797490032172438193262693104423937488533692644217357685046753334745702095751483779566311478328903148749556970072702176453154648898761589917884876795266618714194757778405400740075294189574156292601210127519990429798926689985664505320162510672074451594867578143004409690082720592507367181846411812898973340986963711296174517733375046329708995848858884760083407857631392586752486340963645901977488957091723740958595787952037141424571335046781630664380301648925016713356165042759231857569223818530758287618869058549005769628435513317475922717837229544293650005490176011187649913208982642199562443918690961354232169797902942510297287703568235319115610707800494785042655438102405391870456057550270949692888771567187336387085760511022854271261380017624429750980180667496670416025204337959386292609795179160914591171705422231354627610598280654077118627510178075847326809051723347348983875967887588871028864267266755209699050240712575374665364583101818833134988566406224922380960369172971716606126109081514724480749584967327967291961772756910350789656643162087521245142191770823183803308288807103100109881853585600374241481230932996419331078816282978056218542205824196066027724653593024793234573036862929672711689266243644244586558463978043953810945847148351036052339639863193754559100002378731785235044252941177496960178353605677307132540986037479280559359229524687330794647900949224387313155584672442602521598127030276052162235684735650104738825768456973423735363524569981779008851214737356649371678107427941763863872465852449088385661827002221526967571769054175910209557919347922433433369771045262719660761952094087915037542462178859765488667079889506635167701585047062726574659215293040116257298673473155416195145062916539925008537402821772505173116920444481679608902810915776022299526476037625298620925506348193655691504661732479683144849949836666154632091027169124310858239016338481429528548197230389193014413442469932435834932350653264990480566969937605687661696280615964153472248936345272184476569239526843874418310614200217981851711018325803189142712702230685599903460849117740739336734779209836705240146920102447921473238419829302436223534252705103811512008226845224045366370599549541206462646070135725581331517559977339499641186509791396663363913441591874547781558339125017294949190273128228098419404334053133097984687341189854183720803213429677758866626365741627712719066887281913733502218911931217666761097716413109730523130936606847208366600579185910750126419016638700073713483777093808139830510458812240395796821062342277220605191407013523249882334188407922571606823179310523592030563651358796590866302996402530171332304027314433156683785083695807354760184444819619399068619243841575929720728596077217432304885767388484589226961907360320347124740019717724632904899923589262829723784317886337069867564603620048261958835233882565304327416463541153634566102040983711833703442196303935570657904040479484117568844433450178481224960391010154716879978941900162456075057368075728738448984676322064304422748945142808446035933534717270346261002239016069288773226341372414998687628589917977489673273018528783996252246868568828628378663045147923445573282359051957895618572821286251944206440253732313683197593440283572756706944060024387477282960272288630173430043417103575502709643432017426041150824373029227703065448350481432864351019047995726696256404736397090955010797543894520255471342719700863234500373509168420580726253462358067539665535313802344770137200479203460944187575491045367624398803405199711462090865151327077746864920584237693794005962199662332377714222677611571637211272851868322131582169564972816507972140426210023139879111635430032981480321137273443177927856391578551693784928476256051107019565832853335860645710429535547517622469311191179627923607375269359105264442939207493291113740764575637902663678742611246189463110891208687121943022271806463205337115073006187731078053599948872894915403080535650703180442942267146620776402650079977543331039921838774083669226519334717106980241463867255188517356847240674189755639983563228003610691280663243534511358438745608758277210628369287987431430516729108395261218168364110629227703521245828823258376879789595024449790598047481856552475333017321078262451330770335007294190852124769323112841502321779548241303939267907527922290448207807559920365062919384080714857418197568835145406914427293623374198249950130000860999441675295098900554366447131920070337676353055334797779092745669132507513097892575971209524614799016303102885412329581119366228011744660656722625997513514210710097754696586272205435784511134971931550995234547218382075163543249751721456287158782738086955258663384509216278208031305922424002279268144786831380943186595489365665284121825891688838998848047210672486220633558434301316381946246297420911076956342548860203253024095753059565593740955719187225393996801686612074182875480138746322125629745123841267790262918558234574907773723464538943224744560306703217405192055667999226206918471577796147382111780689601203146841070267423216279715628940420926464459319530768434261530394085029571060698508346253482181584580617837738210282518868421414461119251483828753697255954942857848098279556740565898714214377041918794770504972260845465920116318043186424174735847022927380188465594585271434216049729681607533466629557622604052335320005145167585993892610274035461716849076206846059355956798230620960563189367607502619133312578806559494847456140769755637304186811901752532253877999375664790284747647891753683187072431708331143934854493046588145719973247843810942588708951527049788126351196131549828546855631201794822120558959117523399931107277979675271034630480503722531532554803037216002700380382461866959566654089467412148145268748600455126683485132876787829463183326643275426235781371431354623154735734083224364446881866730567225756361353772947426119925610059915317689058652421209403909332095832040247638989430836462307542864897977097808314498127827027759164018881406158907396036775369140427694045388707163248338207201136129875548412538619239575626255933469278121409773507140691576065719997005450916452403853212316446011562801305671849790410110058269298824708479700865883035699575291995759812982637575094258764779580014632498508136524491733055907658112853982164858499504775116097051735083861420759552490779531191362222472262743447259725653651499561676587963977300557710673295897190696597837092830795316657314144235513833885523180897822447506528053857655382323184152539476562003393719664412201513431074815121877374410102732492047933694434168666453782782216140352080948895919110108331806994231379051857992725715580710811054492208704481537342183826253384120426468546549502980671007714959671048428191376545070172515655263621817052383230681436354402758509159795547513696848753938201593719177302866557914251383260533401353707398865091506559685943573572723673919872839382928449557169000874717562387846640103722854947720629436817424269652062352526855940931290430922023514929416426537124421335979197403664591868082664783920419823720842967120041810434327813649089030295448687688233829181170500483119320109475998110504481686085905306563981917272202601294218824097375317180799517415535272546417686118690748153189455429799628522853554942527365031117236360350085615657418890918458061104365562083352584028780879398179278669708271118699774735785681754380589668247373263583044372323894453834934567373769696324345811998259341096524467942268908224819511142296737899957361423400539646160293124360022440269467574063353664754313827682318909990093218196172081210355373605418460107783096044282636885958194785027748215647547140545351631712058156518100922390053646458936793010656296666954790521525539566030576885528204508129909560080267728886826326277530746952026104249548267009324992525028104232462464446425164265889028636690051872021234379075550569902380785453990813614134604467501937732776462810921289916668012200788823496080567885857085795758068054561303574481942396668328090465734812605260311278874035435719322748788165052031503108924441452229460991688928939463192119639149302726600909132879065764388900529180817160038400384473731491941354485038321489752429528613787683672729621806068429508981294819099037830566991117417934536186115593237196992550567104397186022751008127290622634747754137696160981341303155955947095834453297161239921546581219945704825173197421593377623840953894032928205213461824667049337710754864532536656874084642507791700475916261961085163900059474019943700046626116460395064531374584446784339719987593097045515518967246579599114002282250743296292320073031886457629641536828621059550525349396658218236544909507570744792240338794676241643437133993053754792544524640245472581921831814765704345025631406237402817535431952148232846356829228682199581905496543092292551470568599197772010269838520213425934365330263182483861097711270633708551335387537526214069118548720584065188028530772112443980640382763401277193592280346505437269043900755496841548081059168854074758417249581538341659470405568741494156712513731335832816349297817864987156850005780075361494576513172331854694940419671123773549056655166130122538511836423268033272231177583680409544445385959160172847837321401600073723703363899404888638710700941643494934268629512644304012985210566362565005506914751575724804123908667886980429984121013859450585343767085088937582697570968476050181178580776035024061079037517251513486760815718930605415419638084063016313801104430594511289761806081758456147681872987707086262295995555262999430955198275153177408764128533684731548376218910811009905233421946882743409780349176153593166191638140834552859099612401684085820052079342738745959721384256571251382611918285842835580129137819129795701779078715385598469806370869569587317097369414077592857887800272206297790601401988697211540076064280282708576923490406343181821982531268486208468827971086949263522981455873560200208804783991370818042162025425853199478943057536720963657649013509344493041217691699987282416711085079766176076601733898630508708926284821849594051377976000254838625842471055853331367375760053113482258367004908860955902680520951809104209487815043830548894566524590370829878410596684120562263540410447141765605862129329947543875828567937966519097186821914148899042755790196521617896756995812992267416705041970638632290832079186471733918805021667988022196600579406930787009296901599156764043747111321413638872162357754875126474952711565568343116623466681735913813437458261182807018224469159198491977346528984188872236726473426333957961925501371989428958233460828902382380407136054519994531150775906794863689110279171688494692625506426967969936397848389375185208007201653292244668766167132989151874201323030093880182152338246659385792823363701752267099167059354179728770875920609035632481864328671763378805269492542071827075998371428405240479157890284903445214659720729625671558943291430599680417060110715855674891579379916656206808082489291711908214542354348401853553794282856352230397522496954013697524378602888533855977395205374661378013550396200005063693936722169711370374948137401800062324594928035831031841429349476255904730188332516214574558062545969765566479949203790263684488875599001110253916710532612608278168790861538952232753991142577776488010482483388649503318640805206879678349746490164130016098938493447291595612567846345944367349815337343817196890354483973534074247836825274940803085912560852606840499244688857714082443869162487712428477331295861819986185055814738248556668361032794081338431902937046272311687998668356917508081326055865172137947949385180365919786897648598911927656690374240526762438471978821402383481543402389585191921188632686294773635434287540887520971492272778471700510809735575941638297198964065462516788759521561083482335220417364330752100129526237272716665894665165092067992098833423029601880281130512184214343109559200342837781281802298715671642422457869237005789810465965061612110646293784778188629555099917954728460837867365144840053508355135889351911579913204926500875221944850364454158506057024505430554665511808510013289113357842545949392454736666471770290740361094379477766504930552139704286213347233908312478283448160895030946681745478768638929310316966850956547738257205988687957902387981873254398915296475593764395411502666710704384531365174339104304705934987693747446681295134612805760412235970954827525951805082445207914833096992616541544482989461994832648960107921928664557644566429323165208499764873436264208573121524141229048338922344172700485330245553915382657001390850886332826088565793069443932427038876197671553562608253422075449179556048018292126274950673356681564024955035048962997530831345599319849080268607058483821860119251808139839090467083406499207681135000776831318853873095035922893731365208864569181403635133027590831506398490250791063432171294541830382894992166550099550833073034000630039950269639510748549374707648081651870032319060814333143695981515053270438853777599138580315844889427132401848596021980231071961493818977235863198008264725112663619639277745622454319524025239330668507037462159737069485391334295409083977088990256986744659194714279894240626424477998789556652074603035776398124143567860262354532699523289181843525631655103495341021612710307104927679632093345317342202245481427178183570581941284970204873219547661790169197474625726542121703161095919765862240308584264779306459907534488112944777769458283296379364877005922715435097891938828974061971166891962059805576380266034721995132792836727426674319028702028902265807565863478474366426560011992334131795381486357569763236427380921499096401046731617687274390636074657327101814573296079247483583687469362132466972547196137273332204707333847320357832968630903012338914830534449851971917554553106004055813664992629893360125134480181407739910959733214341537105841761109491693987060023509211152091785768499430354090403777059816591530670436256315757664757308306745161312744617237642694398883625999962610992276006189668550397449174290412770589195701236935942033168675609381502613082711043973739030348089295451503876282633054232379981187148967493578191365449181495438038744155976075436948571296360240707309124902975814848183188144302889283943882465195109673851117571986099807067569309871284104047308588123128842110200550080515695656909452776519106136575560588598355684886098989453452888294470691516695143358575711658138961558700874531208775633261667486534830329401801172924057693721057043998046655003744046906278358570784487238058049849615641585686998091004576026645921020588614226014273881135394723881182697198719078572253584846760247194438660226260175961972558747368087197541289217099761182075849515531451453679091859184926832579756567144122005915562820285083868839824266369784840314165624862350720400009276584164415385050850519267530613917873431156824272196440802522123183905875416347818501414299951741580965821952782643709907891364032748607029343955640074069496529185680630750237263869743691846574488695907215847307308583149331765239960102951644422657740870512557865419678489443892207712783245745206616183703802531156153675245682014001433616484161380186175416926949429968301646664192689516530925142369931610611273202680916624533700390464025394972702409308885171449463735635189168495291698366021466483182943267538454747213891878719115059320615667580885624605193656697119641985460254673659853978576910593726248057577101554811284143305717191939436158699211864357445372185942026087504808999991778250160520113444323599802778313362242451272454847266304551272991364821157701579487433131805326052833866286365438585458075383639607104386573312058960194892109149780350611327820579711513038042228674183693068825512950570993863952470727677776694212451095187269069490556364056843752855717768241655795501093395790443554984428974413387513856116476412885241762766072665531702809635282000790636504157107294362016006118149846319820956814590449214630211727201070697113311148505386201987649625348323745049453723789366368302032799901503735201215256052209428906998637832500058768171865805558368640595691914095527548165313104708936918260906503515219948625062903501176826420750621715982122578949955654206052799235250208451539462065366161908363962574598345879232291554954694888627513548380544984545354934510095595810319779837654701835352992072826197770823052534640015506936483181650695581796229737609250839697735173574194243396288064032590434865233579607997159985631749747673254301312416016973493218085040447666718403781425397131318875606969086141218862735015748439450060090073997096306264942360020166377560090810213831100161003597398955530153294965131206623811803872453649315449760126346932646905950040090864370129141744593355403233500353717330592924046790602148661309319935067786803571645404465740204568398403273576183791846414551795387104544313733820058001860894052071142735396595339019104801451222142309929112857469030052521890575830849475444422551803592068615077849813642038311312033649406396312551703896299086038156018268017912668764774859885964908751923122810611524212634366913741067091283966253138925716343419689047300997581130184155986900129401733788775691989460011663913876222681751228658452487097349141922791243079199612417682766704637016881754546629467461491722084056188179896311269103325084098561551400169076947276573047948881294920960281019870054201164967322969393107525761931870375701949818463990652911979636802031875769166498332722915696502416474545579778721249062465072659602194382825576916723939241382215353134372854087065519422867763327501953534943142513739069144104375916537616763655339924434592661709561643049873544833975980047677634372972136160846415662047523065959252664053128007139090361929489038642351530353715046176289262918870568460109893114151446913408945834507748526091360707436209339315325278777589864518043922738287690782230654126891870487407814862327670977319651534846850296489941531088211325829891453678487635625762559540771887661193548012423919214813134963316546437770294604356970050874068276833015705591055368655671818062074708400403820451022844721727631152073522922033460416085281171571779544740280214944781213018634205026780078461202634302295359862279256330365139200398656208849423711727813535688198191310060876834705363688700594002397991541047799260675808547173667672858322895186732752187845023085691019258084980486139714595726230515232803688452313441019374811595616529145796736560808286876754740586491801468349496544000828131741606915627270684088567918190718246385301765251843590124691562540989383470164761888957167710373840726507237335112028729173853260963262631132165022250735974976739432364781666043937850438574202017253079525915060551967343657262100508803518148233253254716587291060650160322531644108618718329623739120664173412852880193562828559845717639318351950470772266440106250665462432581405278583095642806142088626287799873493870934894837851319184805508415622434882204228691322900111401306389750712905272582646115059735411338302048230796832651031274813566325199111164049986338016405703076008071420445314357255228448302490741139374004774777653655635109109201116158163043501174064121845015249621826234953235693431498016424178018214629149932193128817372501662809450530728665038669154338647233041844549164817434455826346559356401945266985534700315173874299976085247270901764314049181792190938811175928457272933358744143996677269183848723503841565181134734978668519205773889114439858327206983458627078522723662098941174126984638205338294730759544425161425995902637158385359374047900687106077916717287443200558987966331119491971213181220353387685928618515054377272523587501137505845657711528941063689949128465011609915444998401325317846000198221842764893219143674870248196681300561984806839828572648891814742857076364637249430947040841455335998847463542390121264118960276542386533155489751338260040488476040429694738988745800791579837745923233604817780110277534650640698273901097653100487520133149625191399051712552944680426054036418620745205536134813310508120946513804872433361691440152854577846014568208879040960519071932427747896372768819566931873001673802372716266948920544432220225962249544840981882092298794744986690025353691897300897091557166611558483332527938278269969412937922612367144381100343645243483919663401734290276103654514409249992991098525934084094789743717903942737382383161364938612548506902359756855055497001097094423787981522669657218009017835850663312322581069686298697142585300510747004833363945583975026163355902820594776204940212278959032627695373847123393064920629039143145350460059359381362428806629288540479430101597129677345019972064438155352072526765831252754004823725387142513318076309792503749304379519964455988822728320759731237953530800420898446967279263666568066035569640638245862512207666461812725775237015673189384277072099516322587864574571813043011937538963437409178195749937503605728800245468114877661262184573155964174850211698399038933197843470012218920853263425670648220838905412845348166976041437802593868834995720199613990617223289838323618316158824773208519032305728747612487564381788724637506299429951786382246659285540662845002251345620336607243676353628060925720859427553877352689594521172346071114932672689281865738482066005919637124212443999139486140205907574377669325887419835604601908239837929546998450126090810528855854450343043127659906169812425013373850934092292251450586973863653250932126066333268392155043243082277165780097916937531589596382938920980892672696912173929935170686258350654848510089926168593063658207148881272758287199399710700351056304725662725660113299101022060307361258482688293857797648842049801744309629855608750869154566724471119622811417109292830439387328966748100436550816907896784177337638003957668426534353400073633551066184561266165901800950942305533255249151789300864209301246278175273820914457109597387687882584164487032217853903992040296982442357762497641940271357176813921865430881816011530076071114131755492172297122419127491212090716867011493591568588673982061461322327859689378827248972986193384249486352160926223606075537289991772095708191302115491407930345023635528447687530668667471735735516872763206337358889580653318604143403583295233196079895057810950622251016795743476029655298968118041911720741261631278496870912546052661288683178894987817518226087335848697788517248117562739423952446442412437493608078052277707447008990773609632151361350162475276843235296594069243764166399217175709969289177377682392296297383616904140703319805367026978977247510066761726405911303032112484155903590176349593990876046205804691396746036218297736522986548383731894938974889100582425392207228203722249867849026295030894902408207659591768397994240916021602218882243886218982988197409470524736964047753876923067182585523711355130225374276095391022880249993347723681679879933213704430827601385339975206942362816890702561266296662201092016879045454737640248335385962824545329730392572127292244240731932338021450042753076043983839875244936357030257339117312206311291525625912848121298977833455832154591838041060839711713212133885487039171569486045467886720345237645174317351435837031369749491762371281484293614312245187263998808980117162921999928044073785458072679141691576407881158625286092670661510676729746550036480789235707801890257132899659779398238923309014710773570988943545892045308898630844038278688202514941601352210737685907214185337291748803220418069531260683573729529297743281290335409067206488868132292103967399808443942334891041441940296066987386827899351417056857464129577935982914337514629089712247118439563170013959456940496047944496429297378875286796248158734027256936058789303800814302944563076071619578724606824377981974942170465515839835737762948091356814202585162062656291907755598483195119376382313384026727899889897559252702120980353451460236642961442582245566786016878638156443736498745848191476803388580994937078128561790342223823930414882823367349910494857876528240862400937745903794350215580057285675228884011780008705747668277247458901719906235835507360944268657555844607553121949119654915826212409612139488186083181567444939505175505015768899338662418537742221965880996748828161413941560995047947952703283942371139756969848469971434646324973930133584807635674908530047632461965879160365717097968623778961421748283487519778759860832180159079835615499885661471464221121476333785467705162111421665887416061035202656275316449299198125979571836309016539992153705318167792006089381789762151720380499081719798944671597699561037919174632784936363650178627093202625781019053825393908762164700640326305134220081396092721487632030896311168885572189119590136423980914257322564169202155589936115176643731749771086385391917696512780612964829607834049188473644964150604106015098699374345970004244741823550804395216442533948571546097265487055500780421585658122781513117153209044651471140328817359005589224282286650145101061886335916670091008313404508937778591906862855358912301865263545508952147525590694106215745979298599555545762458242485646709722281006579740693388134923834745513640204957136819493793726808485248312896054069918046715254625245625843023105078280400760126460685861762701554491156797784552566374754001965545777981652326887307334924256549572482931542548308176105833190239879300268558946099043903975763494410502814738188584590089156225587199888018084173328471570705475499959131736116130412498621229105013051488176219681008195214406080493629224043013142830866203306936485750268763070239378828462741377819845978589593621903108539517903602376412498090223180580945399758107437862446939748394988005857948398790215632374850721280285569339880652877511020431737078295886291871760080732562902600981664797302063458511397325598731469009487549699277280141486892360110786802132294848235175163582227371307502725702745225322015021556968379700165523313195730866858077378070301807948495570467076809930531591376071603517921070243516010942056892280149440270279808949950189552013980624249104418390980470113989899606016337725734535872647385147094560017667771061283583394408792779028070734394304144896734485653818029138525539253621798608215628364154880400579270227405988018674318507565423713226696678867486006194835147381614564943357985559466559606824991360292711275439827367880263587730931756197899944571307081301664706868587839079655017830288740120053024644102608251377691708137374712966159210877436885291457508125499089502807077559835797814048409079289522169993518506124297603976008215593435740573125894077727187565153549425707393283325906802605733103865754364452964095041103423264021746438887700747979959872758341399417115084343317016618934048876333507640240817519374388347862404235512765481421588566259796961559641189338154796087535165272173685426556581304194019424085657543299355039311330119861188054847257536685145306440825327743194443892471314232341359874615224749072946088730404406642652562802276447375143635395724977107584095537513724808302898494261205435133976101565470295355095202547060307292260129108433742780081982538652318207401676437532959059654239256421141375422484535094801991855582904427097750240275406878702979608242871693746623394329933181241518577285051315218582440605864935841437321406395998192619777398612975383475856849923833912718892178730359161105506603922602928001617897708988310351852801094112766160225025892147243183832353406072117768689991261593238418549554829467346667103253739856414315338610764999893047269270166908435284538677709554439661010731099034657961536936052941368894065376047892888173782276640417726730326128434429339059905471296708542159183197058488045592281303058919655111773750693769014946489632284880264809970158881660995601081675627827964670257800910637833954118845579522564677134855740413412693501914415836669521737162036645593085996326505226639842744765351718998591958030141192501190999104003263127610977071287502043981535024106501969473912433797882895388344027732075960548925394378506616193766396032469406248400309311977024445951321006374522733374727261449796312505950743921164546302421455803797506238221369149719438835457544612083176149608494842479673359148202354146531203862248857585768780150959209147947934703116636478458371437120475795900982073102735511324882207095558168686702663541008107760865721876160852219814599916901698767458279052825862184006420135930220388247909387452238009150018581103231208512088964366698806169612699173444983831663038670266388340733870166686965783278156294036965617910239477108575753624599765802117924309254890217118843238562044046386715358908414411163571932805851071194879195578825887246862470060960699221629949821438884848331715200573238155490376500046736329091794655816813401267306894159108077842758096335808411605530863452909028857227156545168700132022917733768714060441162160230172410359129703334145122545916870045098608014471567365453931943896894662058226529241953545897554820742360341050396648058286285556567043545168087240417835408846058655841963852474935816938503435175917947639517665682170430201801786507613754858751405838107801092189845870022069031333159325437889276810683059176323265652074052032305464684251353191237685617712133880779572802954541396960677948732873603099999456376733452005660089675372996270107764340104346309867450829094085145761130397706456105829643613779203258354300014249400967337314932016989481220850219406730509006019995453706380377250402371200036888458355091669884780803862923067860738497985884440376480711034223020888799537813396724508112405048040608976960825127970827260964625738291299557370841727157953108862338566950226973504271914783395946465958704540397647314502416462629244442899918520010761991208544429800195262061146153257763240852757056846684586020531567294028768924778620015058454772510366232057234365545649820487298054471820671797929664747428289837745528751102088589092692750314716532337897492559014772027188060853671966272659971591360413343012306895835791802509297106786447183268885950579785359066079091247300344984203200760127931276171784418083701407994853917156905882032017191689154724636462262715625846239859237359948518279876222892529084179854198437993006656198679889390410171371679268717877316122211893950847375449312685053862460417372283892069510058331071320504383140509201592280496760203133651954305750246011673353080744149196999426262728613148791538187425108321826448670042531260759717608862152955597847500889685950458001400870445199687126733969818225031609980692899897637926972357109112946631346599333261733037728593570496464850978380083660651843019715729303054426970807601491237834431752691722171234462778130055485970660621713207117033356129420564551439959175915421653906058055759912691524365390670870456647703016514033307491631661541970601877285047919016758246979163472268918745615081774377624222458157837695526739667231045664791866159186526665782548634786965351109502405923955489855792179822653298831144459616398669641857374165628297699083139506632623393470192645036060877858645283041937118049790088133561403399405184180120209645736295308832469607385490585697646485699891033286366120656399466811905246098584288353367466334160467670741311820034234625064217873071274989264661913012433485242081534888681919633222093674481029471143979541782943932528794040256628011077792661692832511484826620731463721702620113700227504263627015594411396139223984202706834805864113896829425367297994867187083600987723682864370751293264901935667547565013521989942796189636109751687831185530692236455200884988243807798248139240520768635539998306986805163225816126604146363080908376039987912178272378021863856021025529919429429528878197488764342119616879887024194906301370679248544972924534358351381564635781286187098065571661827963476478118795685421663914406958225960299990953604103437262014842095243506251948612418680351076497753401006758586884878136463566580979663014004596478567906322964375588430188995174971227866278381945313287925874749449644544964953864507168481974513326839389157450619794967760689360974329298947841141524953539427597938321587069387061379591266072777932751704036789260158768257750622799203233636475525231359604636796202468257411822437394387334177150894422061095142405735423643570334356099308351648508770326735302130660295236727400372425095939010243885412607777926375383816422463416168868316777792260876607564355396701681827635377263529603315631505384650832742485722015939410888600831224862241503222143760608406747171202975210512618033609530169260267928610397691111427280430928164489408637448218621221395745217964193294066477774446170420582336574869259634601400459034979763456984346122231466458932284071566112456229835563514507378277828688533086009207831306666504950539637866633820537633953473090319065487561494214666595074037382942305187692165878533949543928932008563676802257802559629836272675633622909157041266561928557694129228033482637551165440375790895754288952852157142443756206911112109204954449853741873869582213955204605027822198729683272007072705570373484095718604812768932155175084124461452761841091494266740228108847937282298268486446313842978590150647390897731027865355945182912648494982875123045913131326092927026049110893881963170452593770238328434219865531689105403157067770499185533368626795591517613540878688721318355212136589882403379851632938647227854245862844969184904280161704661002787992633062640079530831760015450130769875282994566356993052345563686930874760647789515615545524807353605760228465535066278971274464703070887221518371106405775532927051187708734147386740046842213897623462764594139055184537526000436360561328151980287088681746908500118596688519946535073232155849204492797781295362706725319062840326487157708462507518407339714327128550653891310452893456740655121234034013947022065123085167585672943486529719207867024699274243126776261126022354060586528938791223063453884927747553496776261800813626355641613885473019272370759620966632520647735286023966004339479549624518339957089414308421028248741196119080909455394012790311708100639589115260642514413244979009374992014555872604857003856794578862612116578107217653149377706437518984335741103868219856475014818193631876311648987031428004648403705347869451206871342477713000193891613303542069833786377952158190009281747020801981093546590189823390224096511556776838389537331242915925431102457951437176666658652431732455854703273492086452911510683763392753296316614420267717090144404537980505897636082327828192040020767707528415658167244584870643676446374488752245158360037865753480875168915101275323994194242304382159723009903993464389428840950550943275033671079117256482147690211906963317828646300631368363128691385092652091978466255068820776293618363195716154536088593807168754317889967121111252943182259587127243338636736052805063389151353535027164558243723884141733817316059768431210733181393292182574266389981762614711480231196601198239251804225822085743003392477284093742798019305700118090760107779710939245601059859674616831645308917694994531397319870501251237938918785402929358047990750739789405987222858733964825199635812707905559581776388557394043634310213576228057550902180103072925502007805367904034561019251152508258307932425761989384096872037992065207607405408875467133183533173482575838980419602808891797207836369185617037575841488025291027483851982941833828375875425774874325880439707572526251059917359752457219145036197347501741364457825825493449440119478168879585650769818076369229529388164130861922983287207305544016137047265241885939673738258989699210223294523591464699912830800375464563316387925612391237966095829906084923244975258860967353439846041723135569092214228913837201080802323944822226686857072774939292828864152190557410904633129717974829758305329536484499948285995989987613654129377259395798663922247184662362582374965790928783536407074602375492162445910227391246756545221351043096053536865296538541736459617290912919561105093159340645767548554515855500614072091794108344004937173608072801425186687481345820336086287079920093896914116527696714868394781639940801113154792937905032077399144818116054155525919247603885202421949270530418808916058805874850809473485624777150808435749572237712401281297778523204787850941473678109526051721216143714630593309687328941846285061091684251810147021768720445131265939053921452624662556594954034404297015219129889987544130039464498611051777236173396755978617363715696568465727290483445829786415755496991187733291208144876424116738473810132729531325475237040838953361138981965635318612738939868725839831292603838976058673161401239411944093262293621873625048371846560566336391665887161145291041473435115064491985865030296220469856021811335680796710371883960906943060733764345590197047882682538716123786526157290327519645536865990694540793730859582390649760430261727052437886287127932772756533931956284519198027103327110996062107572357368045211831050927780572420847277172445003560095866403181074552901284266792853939317948403368881109614647864044930753791871810058918529756092104441674850836713328114592902175982521710315759295908480740624983937301580113438397736399251201504240996184538083315053145836328913468632859591924353430531782705106976825702080958686223911924934904660552492361155856392350576936979519995763584245252361005395114399357353358975345347048892876040105522902418302340688087351703598666701186084260273452549079632493350193549570407039461349608602036356119017906398821860303544861024706099211546237137479221034326106226295713455067530640275946997234247243734266432750137279924517757549829224124010921002227415820681426856824331725344107732047807609715181277303325496498175354190043788287013011678471504161928464660130872421291462057084234053145805204871698675449787163643609874592808021736647640982702425416050542983526376815221455815468681628183102918965547024039651080827884630269863096278156415685069691522923872619385185724499969957865341235481156276838079123754097650367196108726768363348806296780519069857118182169032037186985881414674227520879382074422890487444063189112454020405953504712124925783606850006409512266021393953252099018260279947980715057609883363770049328772172847906429554291287898690529507297688231565559193091786674667026963434534503593570188645672927549310072064153254305903189303406268204885272902926995930403992914045811249576164743202170457276952486308621255823853288099206125601112969679121277948682190001240761341061146561051120501504041862992367044397043336234433626390408932638465082389239232479843578913459277212171378912037051614064339981027312540118998261763742377300241253307413938696579074723934792805865392377235661821873329430348394414209326453313229866260749361633752825056846943569346596818892547002190040117975761398403139527520228795158933934745395272407489074220352001229259457930237245809699728408665718140387883671559790387279473743651517273242988861887589062440711807634508319571451077898647493881443273302051723873413849042321009010032244394223957175127329069385181713320358584342571401558146614251287548091527884710160930217485421983849554975181456350110079081459251700687997059555660591676891693079708162872211522238596661289121085359431952223387211456966269083059311904036409946886400284592659441020035883335747192073306923514697178042470379257806061045991410362594788776787944219586654332850909158565356896500889672696727491757878654205486716535159582330369759873462080504416434295040438182282699598860000874357076074995671090591155336614534772643506349611773099266818817321651346214171845415291007135848859369360026226617664357876299928725463326309518317583488203942565499311768802169617724934054522247224944552843714101044103343347685806614689277737497181611679131075326748337362518202132932189850597467459980790668354424563484247681885755025181909576506404385395915023299092651208858523729511737654426700586872738049613892152434685343934787838725082503738170469388227073830609149446849463970172030506753609220374003501876938552435581409392392759001201537899171258953353359325370640945457755347498014385180238909837457000290111760253375831242454390316355611245858275932165991944688578825373359279172693748601594189013252563228131652672566051086650167629384455096874141874944757477362139859058773721398201706394970810865155236478321083998387738625833847250625866592050173167391667044748162271788140907981340282293681913091115347894348748431545786060893048516910624219299207086737255393965078386726246798369668999986835674665792005770959757065698563887751601993018754529778317686395432724542623239207878199306171015106678530342844528823999533255904084622521440816080499782667549558020450013953550130809448247191594128233803784697957633116507213100864759999731874055292714704316928644648098652106312601697343907603971440664506005374446190840940589716387196301761253624011168284915188343147484391952667993372843960992009716688166875155721736099148923464956890580137468991075548675892280669258009673784826582139105692335362688934656213532009071447789349801990541810214283639230124917410087918806765424703895090820415603443121185952539122574784960196565176244996200789434398726629736433936360162804777457681764591037539688703318870701344868838732130461198004529494240196090535450019515726809568915110506339987654494001814401536634108814453109047091498807111700915203927841305958281084702242738926578228155084010385333698975780170335121343323704122677813862726642661487446922374966750585341195696960592855794481218074233959249691430894035254869688760277726838463740551236188473465172336693298083525755909913756106082590776972416350173534989367376186441556107450371206022640607813379085416773987462755520302739240219708273345285377886189069297500230489872071175546615018088945707873976535799518091048313479728022181882096715435615655973029924539027619165617206557067259100704523835190794297402400314394482549259512854253125463043636981618396225466800865702287719322914191237558844757150312977362962554686716291506239079294889391327892194723865488171242764587142261562173112732735767218445994574318823834046500629458567458515900799097763086272558578263330801949665883655252226289037808173915606609828178352993511539651661947876529910210218758696901207478644209470924695795762157097425862167842761108770452849270026489190401074708460185816308545235029068964671854185641232265185823282554080908796116910927298356774657463991297654287312882629101491005738865613049815836712679035403319880815439765868384778770560665375998114799086062894767466885017571860409001830946261768220517928144310794101746993415356996512423192247393204315787730028378648596355903983030684866018905356584324850282034766156841688999135321898492948533234335147762390498963501002232367909835824480754047797376697155557535922853590814064146708018730273920718821092745534497248838435338007446802211828564998857280769755889626242954170708885028056337973916485215706924186726662223255159493229973411443118102198511496223254884330938036153374103970890102979339099900053596783449169087819364415874273355198436541166348008158720276703252878318922375918365656779667444180166790330481625880785183543959738528427671612298289898263357272704741321148925660539238481889654086852703528111202344392843659336821810414737400270803269313237364928518844191292720306107132801984702797776509486121249596291880702356417873693125034346227084693969443708033409191442858031072135390966170853761707379621308666263311872104860988174417220387853687666787034507323728506120597134904183119914366982324112351310692135704562880917867017470231870446106499589524130503208980141270997230622810441961414592074494694097785642499602816081249600319407613696280700216223016700324718526596026358822155291707727067809050955689611396749512318701616361337418913845717001001097131259567614940086717376041404095398279977660049371323177552193463200953540690348077530300452959307079228393168110976005452109644698839540015790755450383192459093034410320044976184759719210026490277385782561038537444654468106980388138918665284261496480468965851299947862294465266819662173218419783707705058303366231775990112826866576354076687792449189536758315979961706282306481234838619710901671972653964548049984851838625615447433989852965148486258068510430333910930810739959235288902524292368634434474764124107413661479152050644264052764161300086341429412246863223490343066184042572011023169688096543588638162484091304125044226184821664473470634981636874038254735574571903686661165117450932644920042515481607160965216525807325475203470782379460110995023851067802780359161930437599154669137010238540726445006049689941972479081712550316976180863921394336675954424728784068305956346305116939927822742423096104838823003705679984549299622384173982488920076039546601933470074549783870530260742062139800016058427430755553917737174473083840885857526006653653648024186081311801810734817453307296968907472150954173435338528813252309100968316871703617654759113772251989345947653102977263671414768005556584637114819463044702774072015474317291522717647805354011821460680382576242672844313849234333387712588156424778529559784915234301206034014917176762652745670532722756660395446521809203084008192445628724956910470541081133265290570460500131602390939492807097341195962385346625322784867971503313316229567995969094419764591331581593078154440504029453762339008644761347054410480217833034509924794212582170575593534804950657147529621554052009390117849092202530261456997619499872731095263907776199210463712951918248021798741905463257416107335204839894460936167486382201175612890832157371087333162698971782548839937236925188061136989002731754398333648765231217932323925794015368429476290199656022912962126547524558590651439243290326398306220954096452370500509635852083913130552095685718879103275834556041971812265755081082398718527569329163941716444645166251750257638834384421377865835876690350725367271748947419917085043187908156391383762125460526253850656089249974624473118663166546536094420222074546457633998436837701283667678251785914129873699475943173258980765015901439394271378264666310635962921645505679277202044712799477301448437969096485144518940933037038205783343155183724051544180809412417983711206588490511951219627058293758300970925685716005187578369629536377675687639571246961858167630654885970438256431438873754809682895041580810195391685998527284868459885283702684243562053916855777832413874265275020508393828644710114726942576939340953198752695045469871355054167213555223310871023371736757545909404605287149391392959423804147368332917640778047054271559819630020223823660531514133957138196172011506675908924637465169615939323097541926743242509477952849506057537232112345057443039577799447282912460300022151315097805373932538379765503037802444505929245249040213801284625458851945093024621805729959670717286199256918529254888958370956748064610323313683553448783070061832779564281611381237641799198435467284497615861765083535758333205828116360847182935262443811842858702411653110244345971024299186819546825211615406308649975088040181406428202006246996465511716666961905857726095376352161460300797973705984187411284754035627260276911462829965038975980590440670574846569867263125148208622855124758318978052197579327041518395997288968307391960750509754645609530837997364756936420976738706905979769782940093535757728383955467377113594043182767483963449534224410405276637801606371793499091141440614242654825330136532110648276754429786361858080304281344230958392559954215699391072453259771696655591993154155140834902707083321173029031424989719118250628927538120115432518622917993289558748412649215637198762949613809251724668523173628779110134724000590675007293697076412750182063613256253819144868369990353029585294803569567843393769597043479965208752770020117511152307118328157570752409299541803436075861782247484962684975024339395795267147324324067667840266895871812872115282321459947418569933226425224011916166534585866090239809559809692102716442546038092362427971838080387405659041541526679736403223826720724210342715440513704466428745803512488509052949610225773963137927792966503177449254769121788139493809366913512988699310918485156618397884364081354365775330642908812354801551278512754658195513897433662739547305117477718436844673814075620331171455189167325837408245696821368513514788442824711255161370429317871744765221259655094106031356432160473207295794255643126685523105126841739248947323754078102159204515367160865811068416861341003241918138837094434404746381100405861852783662694800518838833618833243717120506447670655970830995221215464731439323406669263579613381465384832558660467323060922466363619153831307233527532701547088977591804122802870490535519188174018121349255384747069381374703727256294381353509143017662778268374975555476653419979560492981433410153546402915405217054052046624212620382000922700360383061814149190418038551288717066272950522320960343188178264002132691538478206544457233350397275649076118571560184917056170069381105459415663042713805861168063530109327429406116569752438321180832000388797792147634066082616041779176526470353917997320720530342426822192398170073079465579409060230819522275494397348883049722187731550762098083128350542946531796033683901140653340456325796892594507846408583183196119852075121340660957288852596998539141294435096176378036634614323069522772546492980830368186467326266875256906553317608280239746870202806923274449662217602692244751295436433621178139188487196553444896344113249757619829762086922623334658864249890494949587655359767941997539056666220822371897778964723605499201587900198649034572944013370064045080647198526309392686309985907726527760661420931361896347065610498266369636368493071953866519376722312821220409518994786133157175631433875616881377735166829060122134587157719054632106435928982498692714972700277166341203567367203743555279936450818947903415005017073953699494036752359566717669282187230347668195945343733883768202672074672880167008815548532612722261559792083492928962064106365613954346349236549413093904095924830841159756327460026284561150207033311685381392818259095183716422285491740340649478716598823606643571085212364926013858620437078650737392937087140696364440663885162426532581904290667685531089361234771265391296952681958085350636930427467607889079998120965658816903265598121841252155724970379363065814936472462978947083673360847194982072069405210776646761599870136980496691710487445161951556419159151088400103906534481386887597899899007487490861673826577200254838152849041065001028508263285265445759112453224066322335256127160579490757713874719559675400539231881989022624432009288841782509859104229856826964157886776153884033758158729749311049478673117777116285914021462589469052604457417558574421186280632121428344993111254249372328782173944183503383181850946087090065245239598322059324862831196023459815589940330026793337015887543896654450800337072851729011395805061087226841783940707045207052828109558234252323522876652872240823836043892640410608877214179138871754851032206483951693564135977081500066410810635057455752755964312172429713570018091063955438901515368529965672514447119812649024579681114386462006370632837439549444610034893162090753665940711636762181850232909224944337938639402288312631242797524293672315251537409139922334570338666646535950377994908552608598580390463387824676557912872139415873074408805305277118879992593240445538208366534327977515776436900781673572240301126252024436495283920134681357083873430473671871964255755226996075133072668499740082438388667834304380679331194029299156921045111676824157972374328803617495609575711089385141724444199856733611561850704102169475923467849584719117264113315593992074802208907976229393777881675426787779020531496353872071627031314738221630975100322720492302439773553760262237629432520930916071564825624378424390307148895034731229662711327218059385802909161819558927697289575238312010637809092040452930698860599958688474125022271611808887702025560376517925936552910875926534227367820128760726879454112293523945189869456859057166147126775092891384215607021152736310251879579667659914516093983206503311467726068210289208222692021388993585262867593202409315103314406556306288676931517738001565688726696970222847428709599906987338668357949207312854929215727723554101375663287664452421798637798241336870656557494858650319089977019320929437483494307955844922817810615489279257890644372563667993360963336940156391164585581948429169984701322531281790370514042147283371397372653805396383550826616631506406061044502726390947672739947530749215669101408012168199991534110473017953113527546649195900834932036423703528195838981011984438916405235470640657331763377871758359731366036786107860251626293278915163330584594964736688867185754939073348624999593848430862382197358559283298722823769880901089388929804359800640629351758307774802850107594740843534877079071030382546353668286615508119082244814712260104153957799101629599887192827433722713761536497423414732430127078607726072984102406360027205340971117027287172373452841446210962255700886774922936686568385662197686695147770019409419478329663419846759614508313338799942787198958870534359298422085489156754586106210512795179939287954655006450146754924159455742940306681808923076285048859309270872841693726671350880344158928304604604905629388023389342553903242146607635892843669282701718157585286859882364142076400066276467824631595007280222398893228236943738664121320856318485320368483620627306396238331589526785420383755365919441625933895797831262423068878918565204299198162157032046543090722654688904839310957256007822798360722775536502378529638369199528634075079281476070553972320113637872677252680245365322689264841325024481530921613143574709661032202754175271564399325039481400406566586611557428077321061098219234991362812287504090759691186228567329256731409413165291849721287907918825148136429262524068229961287840922777673644979140430441550571161653444082252731459627999377658535849876362260808894548550078180815661351208804412764145779961567724918023977816362284234865649604118773590740763628003684899538719992037933098469163138750186261355514577349012816676793968284079924649881218870836031729178241901270021932331984503220268704947488652751053683196476478395807972376923098712198141815598966752287721556604400564332839578183926325551118332281663916206309648329797027298245536239548764737067096397375991638749347850250260942205359942477114899077856128344445033660683602964766493127795795466182021287902831447659919821458643823322676935129288775527602344202818255759415825696434340221500936481097315406683235308760650239123310667259956142076056775070165782053040366466859464625531693347311557475231866561438588586224259743750740488773763300358827514810271464352585117804395802767199305473230707182400155443986328640860207722415353042978978794434897948493371629670893689920380141097273497339342367166649206169033704902968707290283994378010611046678064303585777109789029657646551604919237380231175733761865476624836882152458602589435060300569112103109133299165844497912237898654029114976372139514259570120790016124756128417660867324068399954027013858776978900051876101911011746990563066351337446508423399308109884310026236965796139501706822195981191356085565890872662499094365838256490445685560165095740419723533431521589852754207231242730234789391264917212906796986829687030105840092396061726925240242640602384241515711882545352382045662462809090105618898693789794869101172383946257722365980733824449640854272753817901233922857947718271388940581878052135413212403384527863502198247347711564101832233986891138603567668349434131660696201108283107316154589572326840483291997240065858366928128384520503513450725488322897405511198209372232179986892566931754289011162794668391509075797518684596813192775911778766290956250732827420738340230615142229561832372663713806914276742867750940631480767395941904612355713124335313619016861610534928105622050790640545514257085857607019994674168654908105718523202701582671613935418076935318678943968797970049321129066328741316216123532398489382715848983924540902084445016997735842772997486133618822149168063935964792650155147686289502719114363955081668428215229191907465409078567371407010201230063665932380061169368505682060610785653257678928010263075625493223157999775869073496535944726297996726822009047440529681599970051357064919613592494041206323341891919247779957816217856953303534936868269603545188279221159119514533659505704611279496384918705745039685434502881182554083304956138670169939152306570242357821210454830280218262032106594522969737535719765749952831779886937299194368333846670826932511731837184473171488833562454642104735913471352161786551855592380633283277798038311343326389292947110486847523391415018065520077968525203123159100543759543416290098830956191708609375480321930827379264952239769309971031464105232572444789259160557165642042131643337400258620510262738246841000096993943244365103227990275205166373872441881535129230927749031911851829210321799101880758519119417322970812475244542628421473619819356513043864745872144130911255337560258821723729936769499021954304158993716292125880478424711638990598978879784833752610098311066306520093235208584297028391797304821107668056619865690590002695634554283172603245542369261556004935647748075314112212964312467160100948244307211421876725897770400244267472726215585959581590306065323809276512949825795562971805691259948833877712378922303699061901102718156661491578693127683921567350057911099217441144696090159321200706765045697452541930600220166083753643531327832221810434986301742886966466902119220128746470010039562705801095908749417280885250983768334646026682041438718317318913779457299489485492590618873011069844837544679190993040732973850162086156624933140295549549467997112745187776813615977060346523067967427431969799248122708635143621259069047351491159342368501759590608806880221393133751508881903776880687134350873463053085209604320903448389822807887084871486461830123120409050607233018167986930979065140213586353710721195140895620242141480411070415664117522560833524787827057576059243251221053450783158491091591873246591874512434132812224341499733675409053886353851846203315071244767234683341794605155324988497205964945175415429374332115355988304221208502511070421201158363382649106920142047120951947932318186120534899390010196956235784372528751995071578911799518033506844768965678332571969483425395246117078366653682541348089828977804048942208363070601464533941742663934636978365797826109070641227101053017169734756683524375550113054704988646854847404120123961586176601648413353346098684516505743825398573265022855477427756365488739353672371782206898130459990681561243901651643401438196345999462893210541953913571901554590599403568807087545373686402055971303911454554414655599611535975511904578637773903515005101404168228477133968046880850085097236327103827660886949443603068281030149138120648327578686728379154400394687103670097895132038290892140621925926680308906788971428101220162554666113689722253281119981117455233102769060270331787736572968936108289488969603538338116333622712039714954511083652303646858513300974347068639087807342666724937485832945826550750730304178514803950940792037728268321274207076542552993342623778566082140041411972400537181115540315234244342826314136712304143447089040600324069981308289026800671693838844380110882583412315392199224488429756797112933987646417561207460174461177206714365439011475216209438599143599341432628436731127020450511553345118131975771028456454880977973732591972780236396595382100884497709699948297309083372042366156643500611809865896731607592979244467085282037671389764647206475162817873128092374511795852105873914500182291161076651504718978103433505986034937285029045382764780695273131688129932840746212044868560479892400570461944449733508093883614315342474285741125328429265394581824666915284781593869957431781832281982233177836701974252297327866723405833336432400753586789589170553169984592062725355795415287966936345458471419457928323478501213602517450532245952342414040775556211281432707712461994161960349178403098355377708034873385005975556077585344503101381821043913279902355593690106634326604487441030858551401256740766045471705904900766862624941708433827767879767776881982070902019665081659018522781936629658701289616116016757496272994239839595097702699703641611817298315389713225126675731550552997919632956700722369660032440435443398801459202262623919803788225861911307136499936754075494281431021236449672885519605729850820409937244018388014129995491903748771468187006732221034225774556451704986716776887273115005746762141917436146377311219958363682063885387950809995192668033703738328140246277864686964378418869495235618530279042906308979856855933144658174697627701385302043707308049191142857815590984086687958646991105468086893903347513071535412624094216591845530041561380683766793532588328244725411782371050131042426813447730903241365242016602178887060286574391990535141659512692845823493646333104685148753706849210172171461135062446911596615988751492704301043868490968189856373071377571916921803836480616414761899990356579545757371086520138654806828436804331487426553708545526394305547402150170759672903531864909441019345244315987708528071131774384121759034177581373642917031388005179515611915705948544073905744305442902050184812809064401607499171294790064233678915451087608441446255113012618689922228825363376440005121374681048324238591969710433722278924201004855400936991009238277740342136924212413456775014001962118963265506219731556055742110552805363423857700957593632280857584705405224688197545123082136973081960287309099705095760024648246244460242976928998484783871720941546325380688777906733089992172450446477024091196547875326876645814887547222233048279601544037206501374056858956095611931814999493068197414998574650049913390103835191577445514244598662703158352281484522858446729158547408332815162362025901167422717651528446682994597854249264022053979650400456513850340108713509895179777218904345109790333362785069421959581249590642727164942429814085172048699754755473053040240454183975755016269586473757125116408823005552388506490360793398704362028747265301568511763503197590888887346231566699953825638387974131036415353940664091810070282964318031250042381596641827963401095206445427662571527956842146499612378084721760391046778493988794621646289078629999685745355346063943026888748042931366200395485897308798666619144264103003672561272304872634210877140595897323535390059812656561959604889037805173037943478617115761459542595863270423554856333355614673126564875812086853118017257311816663885120856875742893161301403767472990565503186469634286054186087300009535224612746430819619266544011454197711042788367986768017118385501976905533132389450169610358573948545338796578609556206136892029985634886114913927584112509337271325237102757263308305631560993822230486123630954601834870752149845460907466266203649220974670914002357288882204409729879619066751542029900549421090770681684220097655663328059864332254090385708654743958702896716252002677218239959822477097245488263745059364216006839240733424156206543528071119657533505495403971620404923341536335811022093587743450168436578559278154846102305334022023854327795144290423737123559825509458100803195713341066305049414437162851391597243775628899071604763655095762886124639469968620025701457678627931892455279231045122175562314841455628275787933844805440636196248983042691991961133811318662766644759242371033389618826562449221548396948704289898737489857663483803598760336146589215645123565290709753971922077518003435034771902885139390433976516175114089483606689569753304298941539392615740169168253839595108162486197346586151439111660735542604931437830846544744990523389880511730414692369346566032047178745339977459144662602019342366074781866875115215905888604694867071259802553462847180358570610849408812732850334579217132505005529672379438069132480375701290537374183311389204167177900165586235313696772312935038890265294566061099692135835271129532779804260371676812667197349947500049356099849042621815933194949508440834281694469813257179729554381245573335594997853449915432176159996462462637993848496322487962114791128031801023389146230077127991096473165321509926506099619790898857345054613667170681676625418279448855854588847811857347091112218281077853785207491493830383913245176964851667549443931412972511920882986915277314392637841396493345742033178819705703595113116434019732680258147963451663144391621644375782681821726780148924880637180395356189486020408999067947520371158105544941117438815556509312651254273215362945841898549039543256534402581418193421179308705171162219944598657424230387097247003561876034233850715928698651155900637265095667663679267747580231003489663658383750293444144335010705010256374142357024018871640305965286812046519491162824418246674262717441622938355921676446381683326899388940832451384744608688167568534816561851289663537382568212264402492484345794860163138855106223519313463891242255918008168387088041257287209070856263678483737512399482838929456322507495345298476986169752527193681395112137486310188645605362645835058503936240820301451876201521304048075260674696148188366938830866071350041767447992522557420410200807918899825052979897610384312971912213199132717255458328246866296131686257613772846970094970071439482574391351585687274047762384365775395713340592207990981002365273755794344626999139381609009578404883350293601278754866317483778460661030716996588168937569677269574519439673347974654368126099298226379071824512668958569189196332489201287464233521417646031060480462145258412651557115696709833075751315923488936719799969048857966796893271894263957987273076990928156017013469114993534732598204544366529822856222639790529626114555175325935335966061289466391206763013178167906330302513893116504897853384562188458461807867628713771585990882944645848501360260562496727589288332474889284909430495622280937245069411967044269067101451492776936351127418933060891230553565787310717338771753196145755860597995805504291296032987620102708619498834293866833146881758908971003142004686000345538279094031150461364854903484749555849346492926923345044823850187936591953541321389167315434927030933059305141835599903974370919546315117834943248783515054311877332853991089572970901688434698172037178171715607763456553158464577215611607267522074206260615078876009900397621126909925721230140764592005831796784143715293879451409915679286074415439246670662458786654895767113227830008413330941883106139087999812774426805914541084989272962869284785244550040138413952696574079874723579413627070962891860961113822783330839908709070131519275202426616775455162291558696359098628909130433866594351564743520299306420904438392848134960544087940312689304619625429026903724850031403317265178336815446519014943793059798325671616391783033607159198360424245575100526792208886745702211231319800126871038939445406629704832127532754996916155062934177912532540924219128211621726568681466415161417706286161831150108235316639348242392131229328634518104862405544843745663794080143408371580675804049748590278306314929693497505824276756440851594102710370785670941425197382458157534355223691485830777112155815843519585624658145050189764150417761771908780076174932687013729909013453489201085870081603619093008331943508904318534867779383010863365510026213641136628022174850558351562466893106681567223022217595163085701440643241580020532623831372170911952800733507006602241267208224493158839754460638546691229848491377915836048861107550558684861873645609666992545388715553689839118633390174706766095283323839453629849604559453331336698023616055990819547824540681389436477712974473875585869249381571974753648450900852454309868355502131789886220883755860624728581770915870217486688654770089396418272269745626814615338586310360107119823179468538173370110599317448122402559127829602659150295963275615041826915838745051389286838654851912654301416367498772638532939882878465457515750209895920112297275150016803260838043083743307162584429011704248275886539698608919633946733861608175918939586530168457967155856675281915099118125537017164897569485313770539529357149634550346769568665961975116252124178178503794763025666495855758226387685684324693430626339689872899089512612619284057802128432116452533622169115797460730180828880096592163087680319788817312842353005299666891901440032954706621166774994948899413439449951477945535926310009161449886824102981680940267630885602142000523650385000829904311142413307561279165266811006202936576576151425426774152523474673907184288311362545618264389654513742106135789217959561113873435989707004811441717259996094827312126124975987129467817447877248842146824103259164887330845141466446953376599558134302129315232407121097991744602581344295848864801284856601892559272822546354810879550357827054333720318650162869553631777868025259750806537252318568921701657320040466270759949010488096517334141471756027274417929079918184512735674764116566176804475063822326386611823819872446174099740483615123595274103029659216173492625711332324149136633908725678595515902659486918824034816915962895167776027141602032945111795954689726388682188337813061038832955758529727910716118266266895637956910073571539769322214314041775986313792919402579092886249627403815671193423878424394831745154494083948954403374810542897479044422582399605103887135318924056301779948379513994387804449188743128011870667976419978166418737335712635561773097416512509829827203861732391857011857131721888956434412182864384612628346055633004992724130424100049468672664688769997446128878189602089489145957089865479929414364043367772888326436026193173738530742980336567324644544931990822330430223314280105753500616382557034809389085985092007675239411444451821305696896259531941925160192758529259263964636076211859273187632601917051848150983182325075747906439504113726120178136115554820865346541714025966158781945249636909762281450762390308298480948323731418764983154217430468989172630728576301800103354453101463198175190603328730025557190207729853176183142833031880838102129058978456373448017989558594362162726476177925389971049408844160525733932915887268855131828825628061691399891318845436399172763738970342439432612641449845704808780643496659410183334850249752928071814780196499724371529278840288503426861846964143842824718028489330610042059073798854343093559261973351596631005281642198521332224933529749236749785460692661867099482135305667616822193052848404445280803222358186231411019091445189901102728804834973438632917089924479475992111027956396671338476016054386343082142444360694259529786185665201522307777393858788264680121575260574043824208547480111125607873445842486798309261013849897459221529852677911213602630607185530587627083144514833475905879468734223406229295696918914895087157649082111012921787077150266971111611140011435164472287288215072910378045018627376867403031242801129298760088572725452042979806648091946755110741464606368217281558871761604811126761061671398017044323173256641653432617040674345070831621562390603705393213394407193499288580902897998978821684681062588342881334439855864301940439800821466288867863866444690255308227071736029393327166435112628259630440943286890624589480855542904408086377359230284524754552810541640130488265621484731117428388743057863839881580324336202397874680501601239897107990408396280685739254476001852874480185861190053523450019676775356704057129848619441207822541558431355302112109367691937835249320400747677777363133620232286182689248260887605589026495605094026836973783685733690133797680089578086095676785223640123208138474847900810921672966047549218295195941591696428751587215423453001051024969424094702910961310711759839564456309407035121782447369061220672787092650622468633847740386007663560967605105515590403503170883126382395396766284053919840615575868456609993284248092354488161037422599022864835908489732318894804096864721685007585414218791261403420320667961810918564169726196361025366431278095397325059702186526286718877022345483654836557604596438483221722768427477032725180701887612223418305174115748480355544295160024615751803754522788949107861002240596542637969581057576139730891445361874743395293160635048266007826231670950192861961930764415813347538115713714370857889880351691530466815050563030407476003695196360604038856439416036708958985715904798520795420604448805668423677922970249372168342261846766504395738459155044821019016405401462755076267312055945234908020633441063515882353351305467183745773444999481091170038901303454859336612824900127486594184545187178655795297791680700008376237041886257840848049523228662453933018267755052572220047714191850395234944003377340423222906183195640459452983102845421024312826523704944394391575470933762311346565077225106918260147468115736807197919945281125131977873281028534003793876376330426371571023738141862979643282953497380746376330890990638671894123409822273085169892639347024722281863076021887018655458340651142993355588588657208811717614496416529516914043916751750232935035411438381683400798140534390749925474738035654566776169802007067467736871628705645481132587595352611108111879726606333477036251464774107432305854699531239001096180873881596052344600870731269071791220617061861664732827840684343705544415061914161509875232401495532881776152469884759930008265045899892488583162894007606025782722026450176664403679571031861277474385566944689478353467040778217657470284911028018508891994785093208356086153428617977629690972558104523800822786731166399897862711341218815282921574392102530806710385685671228956337687108332065059011325711289618356841020889458493313282427423360510216665027255146509669991652104075041000889060003470769979106761365089332736128291894544023852875790415707674182247432526907470791740850600841365709268725122181420182734377635280700922843071275527918925046475094548751372863721014086893805045173066348179066702726911834399781664460315099426048253416601082607811461051035354723599427048619979649841013442998318558674594113232941601544740735822439733406564429878600284451908839329569378504287578297782580820501672049879682878141671716995554413372550978344839967343228772599441846560748441791830591378661446422154707118517396805287314161322545825723576709987610356312824519545714140044039221161073487348891062760850478949366088210055034624300168955574259706605198909291810261969656002256064286282149763922966155579111315382766106986578504614771317311635844777688794972421348078123101963063630606769646836779037715269967135338200664252044912227381219544192104005844726554547723417316559409756027481697742075290416461921602181149105654836851768340025264455501321234827061215147227383391410851088232422093817671943386565061872241422390221169070629481505601905597662831412424083337725010907416706550598247095179063130232081910442274947809076770218366729355905697444629080460355983857748200358201043373719134461979190169194164503194289976100280074660139364621856474546313090014970516985418795954929897042492470896591674918052982517553363971900113605036779712719056075312136784643982190777888504443480058748969520127415999067190366198551172018335817073905240565998149524218310070560609567799546066467818108772618678336829135032824919152938499393303232495632236863931352762871345617000363142424090032827052238633884783460562237881286322211912824707769167554089915655117813003610851743546464004292356933614050606505290586295803156828502898749277132941522754263713552307436668684484891972471986173496856995620946288938770108116227095511331446774847544738300579529934296732061120705797593895042255074709276801213954541182152122909543376804215147262097908633425953161014803630125319648608554284269098469726043467414514718877334846509875228402001653231678797799911094919031436895883230833034444399830076248878614080868083278965159848077449272493793544865620337921662530549508058376336682270900235667385795331561940707191515001861119215798832416002840941897623205566316099660865902400394929079212966695022625562973805985168798367969015301939609411231763103742668932693901404822476639828925292878645150490181862796386404745292829868584411016515498347215034220093775550761672925938560850501144273174741467513719730812874622072187020608460885715336115433327585457903120368396829698146452914342346946018737815148830614370932947890079676758782979823126761710762260782723834946706816422494335793419570752896190466808226045613873295466423353205915550610699399581947484066939477502452128803495453201835283096565968443436805435967270397965837440947053438487234476954635329097122560969772499977266991699100915076406690864367246306955043632057548928070668798943310425658755437080694304183664588661286279769513296883422078979664352922682930309775124341652304696584005612900168816770361235002243093302374626091561674144997961883235940890777709190099014553451084794510095954952280071951794864756417227892493855462455481863084720996421208905275608456081504832796964646795958966372555621226841428695280793652812589464417557899283297667549453966603590524615038878392009650818578345606421400766689214764506860095568145079525881425171791805567448859207562377705403220947069078502532224104179432922796497783448618070203146242507891378149309350562048563813604166761378470451378728784251488416083793925993255227557755023213975845780967902562964137850323422748294152319069994541121753025742445799172224752542929906226177268424734134507433219788319252137796057846134193934224284295265121849220896780342014738831462801220244840519463823115544933611214932232708927363671445571145467197329329275579465184227569605131754943887629451178274009834024569557894762566261146322542036347563491107516381943782189774701257151094193654135603289280169732943728635501895253746307124063350773515752748814039056862134528650497240071996685155302870219053739989125303528049871864701175254462886092050375382242158541539763682037455164132473918714394824531373521170017693115300651493486166200615876086194720023290384192101223253565933588607317197137280378240972183055818307233158276188334353100451155511807651807884799137783594375545035833011372983650104568657117745401846016849854130418994591663123398573351274391474328891476137479204969822788061322493468470764893743553551468982740895673476216118554070660881469739558077371297934970125826587818177396902781625022938267969669793244395777780406859484083590344265512468022781494927490468883353710855239063256830756103251985532938524898479259302345707718088190343112499030511345571390437064583538352091875008886614118156768128759312466850880791190619704906119461693885267292924657590112039020877416712426717227638261184474579993529630697277843768988093792493338045961870687770886549386669269880923052310344826440994445365326361303002291148681910386954467412740682035446670060124974642831076780606937146161030463425572899292803708055818063777559205076145299574956576074062496439868203123935684795754823339103989711228011178528953809416328812829329303465366040200062059311683337403431845270494805028751489523170407987537555374396932823198976053973594269295685749164555174059262860672330171700201854667576100674301159889217911851115516348281105500174866546115563124496415680673273986714575963758394638469582674627325492236530569175568462055259610972526990642433542917534598296652433695833660337845292893909113682946429214689353256316425998230263039845872180252884195761734990781141158806738853994597958134994314561426956709725813814453091787266711726871364035606881667030689650635102744527191766446628879479488509392671895034898831870732666989600896607602408478152712676688821663370428700421743049393079714414821970412090758029349070212594759761551324292044113664392270802205427161577561948648701615604876406237302247645517350308554710042573313268569922523612336966878405446070382397740594817227856227682841638974569416750876161904711978755141921802125276935929731829745057346664361677510422951589549487059784459616986396189378315858090310507483569754120881725425624886699354067496579477375272765521286103534083339682100975812743955991719720602809057679255291692430753303787968678015554248083668936076664919548935370786189481792777706008654447029161117953660344527995703563065879586660469977193535563090108298731423085986719778795108040013859197575140984204981535950803194302719699089636043474960615313831036045023375964526614936117164217285783522773622040409148482316634180459384269974355171868379615291550555010043992663959543575866774332381608305153011293048630111342737895232627130219977245729770383465642240603640584700059128450567199429785683239709367760411610979547968286206740394558786834197449360799141922193114675381007346536702721606225321688999315758026370916085112909783604346333810506398031382432773478809253532056634529317023665820334466389456016086563901046992467480143943275912873159427096223223830831540754636095107095700267439988447896200893643204641768031832172233349958855166631694220836531566533216953458711953838446927549077528137855368484906299691554206297564276126277275431474698386267187003913322486081844004329571886013911923787839679740581109952113634076013496753831831356838109604006890482785291727650369878493111675742864875353321325154316684503673342498950469260905663727510483101232796842504219312518371525653802718782534757234427672679129985459061109996090538058450589925276691143202092819274370972569643577535901587062873339110473884611380230702703048809257809982795623027887257925425985505613419932267150171542499243369366717093766576377622836847257856166584135869395499370425106109750552000336381414585859099908442254444467849795447259743962040089889600452985387872954579614672085166205815243665462853602192100050003932766331338876793373128679855724914672190583408139302953472411526056051386022246876713787968964899669403293229087094301806297801654135055418935575822228599917831385779179500581806630767094849161091414052668570541377907962171754926583631710283667600218918536975100396989561808156172194506275504635452011728064264555638012908556652027545562941860134950761864352080815611234440561270773327479136098772832054619160862984414276804572512380739333373800007927651474585604049998774172844355284411792773526209692811009102887917629584534971725100880966153277201068592984524253208323255116460823772399949556485190226063950163853804579596264577435185815554190426836614472344065096996764220908864786138392028422372201509555045825257418146965680252661515152972170655804500992998749974081883242716616428227987768414627405559569575223866027300516328099684991564084226435131006743339122456037098455129139421285579488184922198522632343082078627955043937788751472403279507062833659436772579261332112585012439923951086884159715751181315976789994220276469278740224819643015943254862374984293174779517979689887701324006889247969657583918179730340436659594637906738529751091281546002840271484196279302608524406572220506671542296588621023784197041654682856193319707739246006539665455702358736617727005336129505245333668638627024333347988398443495860887886835853382577615458014468200578948303739189359759751207555728414656345664406671252454388032591058720005982291782690120912113237262304176583792792602593045541592753626216607175228619484289602864290314379437816280988827549206994996644113155690811073490139253837752727614994591603490583141753440419201282266522568329233079072234069457501142962486891139397975697938856908923409619356891799230947793371744102734876457691924088011684718315725856231186206417799754266628405348040548353775412028480688822674707826220623297606659894402916874035604471378773866657090204484965498342669628139392999263442105920375347260421526221742896313220949249701928587169992441320620094787925177514134568558948060306343774048814278787300139408488378470560234298215401719503931181191725890588343464515642966946395203294678183614191185131399741539291881176934438036819616771370425793025413745308569958664850020430383843461587560885950536825206133163318941505325269432254309115374306595172122962555085108238087386390220869244135935894031020089504641103547451515296035780625361121573728025678158034183965514367477221077637646197122280654540689677856703576932039656058135012123437109188288403235492732312174584800592836493171183254766969950857694277699047084914023588785391467117970858379503475324576727911910230598907592332871684013532079994193249633265661594998616721338487710192942260416429910283464377043684336480246436980346958814299122376339787253754802974049635488243401795757617947583649952725017849165827924202372800491244106690235562007419817077494449427671952128636940735960274228535676238161914972664235052954358072724794227261569024052009909469433250847170778713155575354738451568348538753161596484481392608699121980925052252823532804693707058491806305631202636276475580661267255815611264543046535153004832990166281207205655969577930347732842352117655062262187486845378973079212898802423802822500181000783129443402642270823073891514091774876008100000725134452538936093247402200881666262138859801115978056880898312716735232916170295560497043289909996583655248754084050159501167856522257659593230843048922230584053780335400889583362312269347066174774505226726611914672895486760705990967879393837603894917819765438627434824911943333335092469818497027069374777821580327676743896476754239310045256333065597240615289846539109113651753631300572206533539136534677462781721860177739119624196357523782357035144867645332654888979802154911968327162244357451380378818973674572011031304891309769661913223019031045897756454836666391178974592091231331842220166652045941554364298092815582074320295285030336560488822896131960240160299206293389793660807354443543539469930419317787499338866457570584322886381342173134283193107624210252075527377358105402246952999399629711543384299981115364014110480727752081223880385056155043874911445246978473526631730307825502350519140251823417271435383601438806954660796225941777814707723232554021455539937004905014071914888540516254262297917391376012806448192795140560452130043086107172996978704825602190000816672042137551255938564366629386616657180179736269951383257139366302361666973579089656280241411297830350087569663534269609713577230320686342408932367261762616345611342941968958642213848710648984172939692229484118369778822013362492478999451554066464863916633591219675047115549591531511507771779123842546823188984148410614774973341965301704598564512967064115139566753609878186728381419898219641254874868944649514061027862424769860581614833614501064771934169446756382603927153799851361792383146911267492771457315533321534524143993208765176118627855057233621252651462050874042426497202551037487865748809797470658386795258463858980768005786035542057741733868179597106733859850636685881607442777079079584962377603253724576546817911788058065103218843984990560852583607895441108285486926575441096424023186145669762173620603469538604672455879996200101812117458536038603451296993371311920758937070543855491932319216993969248063095864994310634432290034058378738124918460596381601809496669349063108848803462572133349253465272842129844511110715051878854026199704542902796987609455501688007952719298475471806833460050893810512144904153067133021821692696155506297491131067746894203298471097099575553113897034259533586946137358533828829873968759695928743496249497547184260296355828878330982890751159903830703640237646456706841015375339757493636612225235840532993837997266220343482022485739936393076535236807274620831066660436014149471424243511974699206297645532178231149494381652107851686013224267541491073026899799416533954794410085945824231761076295788183979321252590641930099613280944952517951764376019170060614671569986580364710489075396947021234605760239972771819690456505508766209576047859899030497620954102879788653654682190541736842372337736718341451267353203397504632300699942086420453270986039274057634053932441900910770159331555501213845660352130447825476551742744458084333133454487509086205916065701933691634219103118762432227310368769146402205273185493540702561242208760535343861684842587580319721976622440701789966195833400300581893775994630586024603067340058163486776119050089560623413443308150632250709543408075044532935952425511025288396186056184341352150658842021787636879924132495717116643550170086177322624063357019379351310813865249567754267555109505409386547224877282752172555203261162251584718562360162030463363815969800756096107528902402651552805633805930353283935955742622247301087967756604562015384888640144882860962011536670328517156545047211278346300062577674091372270598417842646758536605211880343203496787491777695567762377503231913957919817273902751561322427748134676126020350490883216774962675804019986422578716682312535725402997180788405515921071611030775824415761389631095964425804720038352602710482598944516800847104134903224565235630996337221315636351347108613622694703948064235997844613736647139296664527140263162639512832394613728272152045215120073053634002838528598644032794017274023494948939002660100290527304804004673555297631135638794339094086519559141915718975486295400894584907022787730563843980419943988283661535738126239747046785605808963612824169534237341698715895367660829658895227203684826174084917359081862145759570379228525277954135245360261401642906296112927026190130080696192227442006436902816576152876162293781379572101257247542875943598930736062763581453082431890651435699219296726883983216924933447417740705782031415062275646751714893673461645900333814525114331551528622859844924226268052537712374063062192591737320767873586357096160764490188032728202398568866737209149710518843916924700662266126135593357979678389926728017036749200758035747141018492781484545219424952636257851307395580718184488859353654845219574006206372166086666244980722606359318476003601463559641219317786637541555185134551439601881001089373250186824825257180525106135137102484913230361709974989928555647130024742638364089940304665584462280912739216241149776960167583062152897408562181281828179873718767821479507629976663563303814092215965843693786473491970756076286061993603645987605627022292159535849808633164971889586955182775964484867288889424400015717930667653436115643112734764632008597617527408528567456418153549286897472272774592763392965286239351838535479636059520285168151666686304511142394579294297079682678589693867009757841428983493271592952963059969435805538747680563975518203342135980590811253298432238921924893656601474291853272114250942039514455521366623451640810888783958942524118123775990137262638019052640857228174516957632069544457351814596980114630020246159401040859515419369828707547285042279641903256152552721928155418743786576337206505009889426291857014860284101251224350333937125960189203464745094254800915982919326103395655270084192502260087079659060366332694558946015775211558054339508512507284013138676586589750982159605450009007676875366738630120606984811963743038064500787123520251320333708980577429310478044003763917094509347476155775059137709871256942218022923159011424936664084175715791340969576102879877294313678009371234413112599640097635260594101544193979642342961965209902074556061732151824355566289048562654376977466180682563916684723886037041499283038482888814052186851047266804755936399663525445478303381354357294915259870980833318995774412146954419069822730483486439692317469381160361728159160774877264108278127178610458921568401081723621277718576646982396656896629615912025652531153159971264750408776930755060396573936814742608259343447748741105407230744604113805604618556138035908843531904827826870641657229860076234375882145669182582276869032605117433432277693060263575991161548592022155665587734945487950756062174738563186375735327705562967208193290858685352497272530338001267622852172602261548979675301385142589535589940639301616724590328752575968921302645565704963301183649283796218223163388017503207783395353519002932618129421839200310593624107749934459297578396511991826895383112818811560281332958482109559741705051240727404855419684299210398147006611681136175039961494480128453300589282512645656735082129936861679710360284684328357716048851729592859556929095455412915278012194612320418038440890725251025247542572432353952584340754064016223802821182269100215810291448171990505969955727315103108798362006715045502947617754033014398698149910083996165135052720911955812628766689369857875449843742892834089037660385251823326864647590295296791056552421117225908505588311919852066362987995143757733135732294315078245503954307607467339572063709983952207418803072378675415860782996351199756044877160034169276251292086043565657467085415890567669353118250844575647125854676686409696524191056804028065207320995760930055581643521812447444953066699198789201495625848690322120118215771538200070438834503538080255441716296157482523084830838104332820045208668735226868228694369992337924237761738435744887642136504462286734604687864555534736681568467870175533582712391386401041793489622872647523943350691269112168783137777825372607901280919342755741048469313923090267536751387116915182812251589652559715533640837859274437391277521952707972285256984636534091958314204637510702299242009830376042305621744363401415587245498188749704500690621796781856004547257600152843532029477034757434739235330509038078413274831606504569028615879084540151777311719494367761419462976260830613755966789106173085304977043562369039068109015122565179514260404192157282407054645686061744607993529887772077017987834573958199849330111108730977055782343841219298515881415106066523434014236559940815190249619479109103225167026981251637072696617972873995353801576663277590557340263090516627507279957891889710778699099871142011806146440422725226813596997038773322682109004011775495772255860261425582812234785034995496562452126135640617583204283309268698512233424541420768579215677601899507288401244485487030726335367733053614182357877238054816519166917892867485533264171805316740705290817434178436027818791631092508065151394042652330397958288420067667222566035224198149733571324124996747022866549156936724642829060966371821468568530234107499135865396806424044482147900922511622087383091357851078595149718415077276057792832031426434571342776866721514502899641485017852905485560492058204263580287620504281131016385261234264484273468210577151381656388147709044546347412662225916557543283727486944716919010175090221220487731507902755603865247761035776581164691661719500118764267499866084737057092643849634852847116966182813580842262041186859823718298431314058187310072925305732311351386160441717811220773185477487728182781680384312666247972857264100867372983190562331271404215915354439836632390428715884377961840049876332952939273923897969956659490641851698193131288933316567065122917299594434753728914241517796998412967425189603027424294722364146424600394261797385611901974980402755303069335498775842659909003283982028046815084766012834196556667450599145500321585637241865942916461729336112327143484345662566213569199893286137657380756273743179017576274566542107208134575904266755653653830623687649508250529994302829533023972500070579758270577025917933413555020804143621365244176490273206944229256540916217257088641852867410612318876083249626292381856093298250068510548255369828075536142145546686822206908397303045036794582259003256371102392393733298190143239662581621557385987582454706849322124387609478910210728665543023347944568243657536956364288277140575251259030604603784046558022681509651872633154823842255913501550768057487215102404971371536267867879812175333838561528980216247921249322813744986043901869752966599514937893245859474619199477509961645013731163747562178624565100815138653873876549066618308269968854269026850934712021200671932359846619628000703368097601677515593834662142488471767871380960496434477956189371920294452330264577935346908075235645216827966753458449958500588739958283450124435253950189520153084302459350400995394113302781972749736992981581115489861515859823786202672915390165440337343016544241170103016429985559416901405328346153675100870332943186463390075727838933275181552770877519834189228992969263051108624596746593240567804881645448619739599821783531199240659975262855198340008823636786117863779474615125985728845199576331873870573781313317276956965023070414765716746433237125940533097564627968388220592937971102271093383677950238557084989204966565552209227960170743547869608778832368061475735122889835472457931974462504043776733388213555134022164123934959383541707534892964618667359203391697995001328778657408962288386127626414113068417806097503732218911566910565901614485455712717764874447664167450586845832640110281917228924041315924780127391733399419756109986582973103950396598393634743650318374065028625879546554938897961993234674314046847512221139192737584061117490566811685921262560298434820025379071733063925495681519113011489535004488729085729754522248787332911430854455520415859699435745113446071992221476437400149557592838581065691837174386568509727081680508337125072178633710035778805584642897960724782900762029310047572309813821126385005875034028719094415282402541134889690019597343509899841434097376132399768512440059023786942496056340041369470019269544592882799215718181075458133209817395282440464572628554381128073902557590920251670427575479083043505124805843765940460950327400498048775050951541006001210349219156467447168150432174269231146763284107608001576683846311195225345749949253476558411527584569730304514912626689695351648718842918217362360394194011230469790204404370767462584094476886714914585285240709542516555696412033593164795047450205396629501736376697025292174202473350913408014690804935033242256538249012697659585976318797069685735453914250894568929281064166181212303216573208048083082213865042368142173999381082297692736143427008914504001154622572413345890572238578475366215946937698135543902043241903609697609896450037892857716957721180812745442424996025635136720755269023618952616176340020035613005891495962356165669761052570241200070006930040954662802373548406229263823827867941256801077842601619924842900294698485041832364941052647251930133642690618878120222478644482163468334254126871061154224355195043750710491162368667298611629701624430431002456435520846229675752747700137474916228797903897156543344340085543340010573984157547442458073019614355408960967380667138477579535664237165481284911833396032549840038132938316102753799287617725402183910776014301875317167799094351706153190109975620396294734912258153298200918878336350795035448137432745278699963417017939913778679631919908604091144221394590978045451953557276570927918876934127818983894837693235081223733725174134645740191401003143109452841775553363391350039335311758106021288224842329586331883778239280322205472264071523411725139882014587310804610703598643243588034564349466331192779141481051858777931913232697484617096504231044791723872238394405860083537839983010838426715306297386325425424696630323536032011902807598396931685870255838666528191647203293802755107769698124380658260845331533844862543563224044974274289685776972582999714301294441719907245130274336851066393942657684786644818243897328645378952748952512103968087659548058793701590163095676798950684791949109109217910614657715052996798691057039291195221736310274002746080066879731523385826396484982541597721470321033641860480510265074715034255020795045154162071169823581923231582377401249590878120927450692250236831134224287997696632611014967434589929309721092571741248402640384072572544623486772743233904139662701458433068421685764725753733328939495880100620252374359030686643690360189418334092185935566433663005510215227060200973087733679703714239754671388248299679016945420406198892321151594106733729424682920998487634638568160004005773250131194210040829647697178711696627164798207656254459236741863203129580442805656360799782743905782023726273766986053430715110105577195421878153845302324621064267294821898244008829822421669390308455953560758567767935456486511275946781381584647329522199976981272669273101876174579281820256489002072786448708919872411229193023607426130366232314088675781338040085506085881644262905809541961791751198322640234908266950918564013895597706299243665338373410669435860048846577684595743654779420292469684493242616831502366127365554464296702463867066476848505216051930728253256752558661114590657276419477729064677136472289830856298412387841416773616966522521828939489977450634614003005416245625749113223581197599303521503009082450358331143634920409859622212660579914192393366592022354216587623768564333162606713882795930320025239684627599006661286918242273582352931192024051583344238424847781411712984363080659514301003240121898728748149154574144353782015907410171248501676249767461432887054549752260080026953253941880646666649704690617122174907370429707416708048740664804105185494761742058335936233180323645169905174794788718613983659069972560852396285480263832672090190225761779335672115014247112214432162527722649796486183719397370803111644037500245099984874433912647484358327046791511264220888784527484603308823846357709588486830857789000153749039957890112928536838479615533980553603491213222823910964669127614901582970115416673472481577612016114735845246067067366517495037287281810953582356135024074682005696297151972055568892651810104341810431195423372690945079650513335875344269768927266424443535169865503879794583169656499462936344026371197267851782640571098536800219145437545189117299175802689765070465238164707543181924223537732501992832991620045656352624133375003888774261584345077591222281807573525901290463548002366256593591501142727097110147034812432172471834420739020476646254746975883645509444357771549949900642805013169047821538644307579124057377549608343299442884922520709092742125612543095256733985870735451994217814658869174020022629522000632069736404538049349522082449090349909249912130950675366660439142817124811950557086361813782336528581356771042218057455286277324889577866779457425631455667588035813298231890110848557667552886610213792644805111272687714588687859587832206814668265489257183341851284068719466527069542601312623201600594573766638553789738701714394464335805052192102417969535466215746964544426701402834105750863916695271865024162854418219837378098605443227655786787054032924244996459517565871060847163804843769696052539897753217496261932511204236548860847898766374893553091816159785854303770263198588958574133858381187145997051872614333109723603475853050884455302298601582480954119167840615532576465628109983792246363706655132599609240254070971724089341444668468149129904521682184438010491496584648043760112956412075074101426343544174724467868268416281639447236117713604668849765908634143154501829819224456241499693610040894143234112436100625570129513260544630241885239126606440316655497843348186815465308259252637071742402469578203127150376514454161088138175595656558270341056236384300791313916525692940391034504636418463506819687748953685987452635313501158539501277220906536361441832637617528950907791609691224725188886599870683289782335544944607883864392741760988885290763053893137068179745110303524742654128737689462798184287177112052644428670546924868349597166158744646747035022769437658275207110209204440618713768023290781429354940931530856350402752282797439515302369384718949992184224484489513412188583903729442659741244718065120275910711771561154537794252336234762113610439666834904691532694997930354046232967884754036467920053751558642158345696840844627292005121035201924375279326128272589906309011054276175411281824374236692695238220728139141439905426671634835871260309124440484048753011373642246760707750759178058429127990628173608533192429671409315560234752731062289021306360992007645160064794669045077953298944974375093556209891910427965160692345281196300054851932546492719465180410954358083270719705876093062815045496266432612614154041273754658361515759786261941925100483580702846717769417562083019593558910821037499036498179848370330384978835496709999144348442639166972069454551153523163470493818375186339222248168967661995104058188736829689907849604412491107336301358299978321293771517938560443934725466257548635829921477454387306392591995117802475616639881107967715213694879250319046998290220906395159012093335175171392437943109792004462439973761111261593017709116494041865323813504628237570878459243060521045320219614761532704383328613857548809641489604500776409946738525944357576286490004093217588504386203529413470416004901544967752447368116896056803057260585872012970569017727783316000683289580742798920435045773646535214494968181240648825595657873417396541940403949605964994672523844460076467361757917652817025186047209227974042071317796856643114714492633536674152284939184430208023706546159646445336771760781604092954857492392134472405750028446048091746361437046599161828654161578582750864280222889853979526591110152197733519373160517712066135819033831642523477427643927052837266940412040915462811848037202434051883143900264912346165524601088469213375227844807952246385535510470701063925941825192224544131216076673502170173519745872643624815668615936334259991087228562986881962319994444647779455690003713748400592185685668071713120441764464968713958859495649039797237295987762365211150091921921278078008603558199420889032575258891684280957054078579427944220531245108470103504579326946964625658811534535325720699702712626022947458424614834500659104625493582376075100073841198084422772245928162750798654169054332138067770871430383456114822284669142496304054535523357313435283515779107315029637143363011081179732944394372506373659679138059726880809575417470211600528823658475271042945300219494098244775524324949229184584530646286288381561381178106373284503853252272874554352096175780207012863369219860320425385943215886877466046184756138427543485376478917678341067690506291969008338045853175631899749942783021588275547298378508207733630171383406988975673961723867116301360051897071304991451421523063548685621194871462210640152172805143818387425192259171529398098043541726196058529158940020340354435918337405934090883492122193835297623939108379513511105673369836520580891316900524897934447710822797484975843593266652478125386189230404533283176113684499447944783062059432432757519255100834613267292339578547229493047908811719729074125015525643593524279871218124278017164959462229596260985781937905933603613371781669705418509858451934209829207358742208233397532577489935696678955483250644812329392937087526155810994180246328210723386196822980502087862386371525157356923498686458606395722292755537511246468734539628788221998163083364787249787743697042698514627442926482949534819339208955959252264521531170766772932768183985635617308449899574420556213195609118356440345572871489313426556433791542192247056478658164912874635564872738881401573224839115158022620140601361903613094692702461840646340399266739080824531392233314247337656143970383676425060589715691070923071586616211317114039406612149138984796070235972525780124991025110636360642749324046828878400808998690516788978319879380780242719793825375495000989448461155769989290291148179455070956310169823322075627006475908178636843594046482926685756765504647994034236474626092980493592556644792817574081721674428891526799698484205380903214916048874140822970515994503098137907499724678448657383758121121304368223258699389051854140323166359872937700840672011416897189297113531349047332630839458780589862568696367421700101222031752424057309102358827586567757384925387578039262294534618286595495457510702086776260008263190664326103427402096657163993463750033669073698587556285275550253448933044840476520092222235871604166207652678987404286853212336045427959398093276823378425048673962911438996677379625653833492190998085989565121374013552189008684518773345971668839462355010663820384926278196986891377264628419586976191488729266131095025763528991083277880783136824977749727488674984144624529507769742850484294662202833342728300394531099498098002039008597909107301084531180696651570506936469201726803590350583166319142135226850022077544717063932986853418402899971503908225960447701819758482258876337671257253298922778473935821214291999388905424306690775632309225158384925359210479923433970450805665783514488958189886363113236582504669650239343269759739502962634485884223302717069987034285181316704760444863278055169819416673982228078961456588404452706330338205671557516818882791674516845494487938207703006401700507948647787875071581594741045462844793626090561567050194773101799406224492349997716168763464974980180823409110484246436709420976156892984486359645694424344357738119977505403004635541078203818703008690390160062126018726462925533825903022054445690109343120693020883926477620020347315253428249861324273306475384993828675265213383233118678662034376007788713500759056321840578139249854276817299861635635264626998338299692034947875220982659381431287661416501406500509464704402580336156776755415514340615325231659468253474491970533352408906133362647043123384346034991292485254329752107805089520115399650284468964559990999425688028510170760927786746881628905195941190216937066176967749718156083490290580625713029500629648303099679352835104011299134730292770262471067942424212183983844548352210648162096502612015331954585213220691187243896901661231466193195425549048325485249765384150431962013563160119984239484384190879433571788075556984693003696697421201700953372579090568944996408213445099776023157338844743898521779921181338468851451927970177909956552171459554646688911330191559821518846190700675948267462210971590951786230047496527186537792175394516224327677240171832787672735870172806722616153365700930517519874513106764720930890886499170241489906678609827536114904329922531257505009797581177661892546205644693935061472695101953749918509129930210020307637271632917672100497717913703141191707901982203425412419093788244457072429151052976167608959816776533484131112191647065250610932076010869067980310089208171702419994195883234094334159242826503029612022216072501726085942680999813072854689633296954898617885150014966826307116709851497910292283959647213589526080805578648695791193106681839729160660356005479772620961017009229571338185591810911659347504740687083331072939568743119210218870304873398030576299556229880684678637912098153119429187905027442207724709078438064435973587116384664339663209421769663538240451020854873278150953061006685228616138491061209053458965767177239488652811164009476728965454270012294672126267262185869873787810520706896632650699140304085024928760229672452599078498381845701730032615472137965551647868547977408236834441269034238775386342832760085535915691512293841980890102547185274487846071712151850209316128760678030839646077085100818393631294807986421644034029149055893422034981934075759553416090209773634445461989330763592230061542280560768966054959226806413333910597670665791354852805893506045588453116326334391730692091115003291790115980341854167227179721610858692162892660084799493960337246473767095521860165068823581339362713055621228330358215264735632346520877796748747028077948117659670277529807234766718414195271261252186615364938183174454145406804117557547808036011253219978049646771095084891662802605758535206912841266670934294015245370952842829466940611598888699179530189117646165697150784397354318252618120161985033627773090821353310940196902358990755356631466521929324868531986328051341094506249713836404462636062773260445082272705034355834761971402353123609621590908380542905661529691673157253404701512186256315241300875660390521877533864416098168672727020084368422368218960273279263302382198484378993387130898199169985899338208130780131687351739810190523168121121836326944689772445045197183594366500713390051550364415647204224557735773956371613596601581687167098358702210839880558531627282794761611932649279018242138380197753465789618290638997229562692897939344945635245899910628788115900832469551164769813426037098084384300695370038357895322680176324301022733126516117907691223370410819443937917833688236453147232439124978806445463318038600918747052909348398199732142559501630136109210855927869178032157318918818806262162408512010137937917026761192925574269411294904879466046127449463981831838592784736281607579767483823994101549808611979360771228065413219185440985737611176902615515841112612295166215772864405660957643590543448537860034500025425379718660840579353693779841109017743112980034762853078734533559131878819945619688828363248611911309663235704997304335965333789009918627551187993016594147165153903369367269932045720871506504698496840681084540928117904355542737496334069462817305252178299610157263512518528123196154622937351718907951698387510216058999560339332562171320087313014566125696161491781154113890291560745835949554389953219222951149051685764456432809541091176477541082427014256303519408868146056628567566653831027553059064640520463410581555969230126378534553149992001650807232321602887176161710579146445794400863896537330274119760209386324735848316822440520864013006812705121668755882895093406286576471427990775635561467903727921284717981055527956645255454565561955967361785758236297005759675046618025926025992872736684920432193266661811408534956450773154340741823273914621456279352393214681519927087167424759399854575172193884813539749690369402413729184279508894255748121938802100732663877759235121371435439363676103869686740599747771631061481434763361555727444010184741845789653878355410800445182701514214639092783696383586929247414544672217435105429319871888348837467230639809485105001898042612290803182052178875342957057308865582185161767765281475208134329558971474383726554712400337979769679280885048130715040434740909688747327942580248761402856486837029460254175607397588063177680250585610471878761570901109800321958867941095065097513213415806591573286901979351400593066463859171416831302971667596909320134885367876630521659826889034336988054279254150990268859194691287345446522742807202180406823212216442348997790064671903262438527034732165169928759831285849787181507025379600497174720614716096661019943880453100433722871242619906014344775199812282046273000178240555947973256469287807202381707768759429108429296668787127966860294303599477907414600037392315643050941819720311719994632710620502579426696018518033613995902168646491569968841231038793295608250068685079117519391414338316048144921321510455746956957756611188358898304572792197633427045912169980783459910942663521734792400811188640652817725685922659179787484909854133155719538161053088042173363513432588566760041211657478895695968172083661292165041010823185285084030251358612289697205996280136695919410984541609241159031318773531284864700063594996069696896787065669268772141068944699792591224018539010236857401548928613905081765575828613300989766341844254105765194756736147443509772221001930880490493576510384305624425969211052161462557859366923251311878520040507064951390211186345588551121614956124637286200584984552677778427232567827516436969716326499401273019437945438857739013573725090556014970680573787432967125025483263985874634385695536495547746836045829732484722417720295757102679948291393390468566188463793436691537857773427782324908186960425134073634310506628633018859848851303719267954654794808450604451066043188166967371382853571907169470101458549608494454901086897055127396260311341874593632140392844350843901188155914762331387790670904350240038351693536572850551493006199612447585324836820547109400157371792882318441459746200406028163609734912790988398198552399650324069702104661079039113977592840302837422703421986672210800140836453976857821824621230782457673545459863661038549520984721705464721649755092631617206471911174136605954754772615949207282046668402307594387724710147102552252504637915189824441494367350494386305844265245509445598875476676117114846005254696674962353391650128033679388193442721027874196387896189116873847369734607612571204679744474139298509312190485918541636112346583925440661730321876097931984773097541979913464700342669580063873422824201715709905444763093146574906096607439792770406407719657546751788105102681626279564889793863052873214730192035365158124066185725020175570484663625115528875022411892628260649397579298860108835081569304510539632689440974487040938469409997335057542810591620082452979019227890282271079811214091203651916205093104842256261695958788250016100478549008546633829335014191188393155277314950669419646178413847723035096754438356342428414112280199264300531047037110424793187559579599095610379772291032432268688484215261395035662715667039137400089923831421984297047100414585963239918549758726602082405947020042766074701533840595816943884832793689954728770617049943163200086261500286330819788262031383407409434567117380654840377869527553299989898301408448528292285273210773241666659418138684929009965457156659802825774299551505038163559163548348920914880519527352786053931936605764676879888836892320962158482215769819936460717059655810315341327178050545252446954938798569681390823719699168126297162403546753040730636495913754641139815471910844039837794440646596347486618451911479507962383087501101613003196440551611786477651357345482406194695733181577476171668600801906267268494188023271913362152951223037494330059410770409690433645273932605312385088914876740202831215896151968930282136406577065061539572913182854687697672051307902072028868993769551428310392446455899086090569314742177476911199354916101102927406971864837564764081004997203634113900110065445930795130253889611146545350191913477970318075905697502651994005527140659610920614934300532213470281645517824640284700941651129177894070235723408573839725032979008391348065467279032190831343431589271010417008123667938989864479853608808589506477039874220043123356729363405706054785790399793381274446555269629114794527183690748082249989746623219840676558495672344896119571388192049907972018103969220011548891295459805200574646068227738343841517757894857908747805124823949615779637941438407068790335800906433848404074360462002136230555383100254056488433161932543095041316992043793403677644599050131153920969809148339366126595813331362074932159463530859543238681283943276893275157363942446908017153799135465211575348624150752540692165119713117378202272227020700282766498309232464318942223899688680572235277044978570460032429975643450563797725952158117306748976237505287414078794954683551388647385379883866469316018067852564360097789022594079176215877450604325424222060520396067446435824779133075374743399549345439018664503227064553822258752144868500114970308439405854730379253512729230109752890441372723238538695625355126466959857250234461263441792773620515077754057656353736687739391940433526214477971074497853360429223367050924854053960706850674957572803970878075753618768421287409060429128753130232806804360775127267332589264746717300789111905098754700354670902184548377614431247254273319719687965321448235501494508694526447312794348368392574529913443803001665043828161731103563205342073176105930417782272053372499825161258053487220275748464420369564772944920690884159381922742484305683341051575821072613666343545260271633606204271632911383273388802114875638639170690948801305293489064588003180732206551436079416893012286752946036882579964394047891562569130466976317423531149523733843143434598746739512220110351270634582895505591420481844035464126441059380493256022575880375911860907251133192121520519911162115123279717228058233070185001993157203901649134544678219766637891199611967999111210266991045382003785931088223862631808321966639423670802171141389134740958134108033420418772840107270442331831046199553806941375171699729537932368006902142969172810630839206775561230324171591687205593988102473156726412571096815428796796832289094655588489818456846617062001543217429175744879357358469885915697386323804179622464546563330596314366855880204796139358801697621867122958896543409609335506903496069674854240843158021447593408618722932505259343642462450027066301524574016868081179504663653726025705026403988283369642230745961660510558271949683888595860388667028812465252709236938469903096686702534679251324531297217624623586148472301567948692480354982552903688560106941085500249268166930180831683408015625216795797232934133042760241974842715426234316514888692556601060632198319580162525007434753782837766718977204000598674215273269123129018403199861379572994537842199861443260401643821686324498324433110516265398076398367157942402426803672326462267513417978540044226447737282193891399928808897062462226578190361422582869140611227122936879070008301629347152789791422917510797714244781984990368747261282109021920118536909341416633497227285936475382888917579550302962394842895055258479685905389861097630833309100553476944814789408316335275569371935616855376270649117296051979874233535342431167639308955769781711638932996412606965280948575748826150200045237397988681329572801548027663604960942814776631192566997982242755346231145165938526450595533066266565594898188257290390737483472293268404732756865494966718385386269542489397871145418563288054481779351126679132388773266235119872081460893804729207400339864679563057067777119451133964551130085556338368592093044868670349378090482572507458568677880487552348980795793800595139106746953664037931138143286894907380211198513428272041723392480735883649725586419344274143528112588535566885905944230817891111212395800410026773415707071582502838330414306756781974571330340264081433708826442480851066000842407989061267446674819431435070425076054299081365980610950291183915193639507295163262196905083221115500589724058595407750588580333404582920012338513097914223893235446687812217613743042212135155496820759421029612995623407490066515471690169090233078576825800873372498028449127102098142053443447948265258865597646245910283529707248586953469789427837088620311381017149966344967446452415243195516241513429713179335842524868626910783040921550951258728978469412297185819021518756478898281135013753946433237787437648495662495038099558202774535124105404185114959848147246849864175739130174126211910303926250741565681300133764735908224135153942253956108277507973676785395250264975874801161618559000670029978028763240583423487160370401399396083547160976713935050733052982312244746172204106934718948500423208638486182638536064142261172234068192675619460022763629656761515499455999363139083204115464139259982588792127713478663206340575283222272475194070173542440002421932557520899339959763557492258988594980690587896973525491850191754172290761557210504084965390519045021925913728623494644229374444485933009836552140692453454605600417847575940161283439260988507203824271187984209591986632096643481315970686824613342382729019541756514892441983823483576362281776754161837229707540666277795233199422759075498808421100806119898984236817930110834129996366790886700461344463007563493564152813250251316397056886149473454019482896556538930600476157722733202382131689056456145045755468355556946959263142971839711926771843708272198024717642404296894864848583502812045117451586351782710182782788081794273731647783785929357837146508975405389977999047122780745707544963707667543271631793227689588161701791704631061693380324668981366797585784032627636560036911242689832025772185702483464622142833240432351334597977967390262524590716501914183056441702005793477397328643567155423615600483110308902381415574613872451352611195836841325929225775279190757858647803702083720752067793917546940930868001646024344525825649217616278609828478473032100588869397767909151026130804589978181832009925932729028632077541505276291630125386520077985387462791814726479697397028992626868212529565054238301705479075972961717174836326484015097210381103344223754832136563136773007292918674423391968728314888035834468023934821897922072802329108263395661885800717578616332345485502759882355943929983800659935843622294615290686982994663754181288902465901945491454659379529466558752849107325357733580475027954952248622636894216771387296191029100205056704873739012417105796766804571811008328883085194555778298042915540755067614849421099482910101809675853263015668584705264554804076923663719345621778191621158651413815434808289539244825862458269482352751903931948026577751109966072596976128760169490844075388401290961617660133079466634795156076671633394347029813819316289014969762448447323942046249496818407430953785991585228871259704396796982881265116262957976993352602522632923615531203579021777118655394137729424694765745514870141451958359705131831227101099114349016905249833316634607742950425697329259338268442996592020958395675832971449783173207044142654413966357423705388906352511380308575333237445119265253689928143853533857531499620036623626280870847826897674366513698533896759750430563302084796795005442369564128378545483019489602373174241286691078790232271365639438930084092672620769147219956193117184660041024785412402930916713613344261270213895237233090116184319527618468841565592068428035349711363315076892184671706306565677771882941342764640892256793672371699495415180494407179372640496996574987885110799595557606738511060848905240757104115440505433057825734873318203419385717362513345164865369822096665080492122819721871557837108391482669052975110409761502648893689959841108633508099801057150575446010025835404450047263716096810526892061265552803518848862885351861736195893447175692834283090338012145718572889986014513945696109990283897445823752898550141023535168367986890362523968883854870032797859161599413708692792431351236935201895318856524619893610965442731233420394836608513799377105455913342136306860903787406130171428227947131531509854738108279581557804110050388707924706497085134250335656700293932560315085492752930593683300241748307789555600296816632013456430019676594706472409933399930629424130750353847841349444919581020640501884026600175040651271536190439686537906105947871253266266039599237720318864868887974890116337719509199544942899565781799488289889205608431550986100541785974852970412622407042524204158413944616766080903458392767615582675624320717425412492919212042800410423263923731905095352472173242296972042199909301567601276636198605694883907350855470930774942130175469672153535608058543073207747364316445245188638390347422702349351086038490598924108054347986092271417065431284072274856937314273698534500892612608071665651187197182163727851501763415295932009168954615683990133237894191402854895106435576321283404568082454018104283844774584760604637378724195484596660085886362307408323586765247603678593514985410628881486248818626545336563684513205947761690185561092040807878308639666860357204764319826718146219425390824471463933584204414914793937952631295994028453134493515140571858643127717153431798095910218787084188511261841738196700318657088089420717388000735302862611697179853868128233033968719032660972165112992773031153025533405106128653069258576352167452674995211884927777196330255927239010498227592945393935050959672596979387743191294323579256545262696951510288039678900377501837446491149980913166109561721310111164519068475399965963131981919710766352043503887663706827985451755380682690177952922914571899265715133433507294221302323166529913797649433228895545763295824861710530353691723852299905641337457979790798894521052148765113676748300122867355946475879606554979682092552276050395204848139935102020399910794389306375529523806204018033746352650557780690947622415912391876969715493557107801719979668695692856403531243473140850826546133480838739268150548290625872579981175006619913384970772828540898367832663442452161978241027763731802298319542580246071008151562437704075951682453328615357539013074887182951526680861754756880616881028389834645607676101167827715595275080268162659561442277856964341142070864991350204251854993028975266292456099855903557731261170529354148640969504377456102152484835812125624747982579359079855767796553624073223849644159063698288664451107387996325024993969940236108667378063706869348085256407555429206131778951419599718091715599112901970111298662867437951866891055837270686985578714666093448181114929915856227726776109838609838486862209243427785312504823935917648822988272341828539033222151907325021716717662758607399197397529828038280035195323474151257182720047804938885623127529386340544001340600661385440158347521666020990812638487838742142311103767802390799694773482130865167897878617418286221807646875206203608210664166688698312043473310707779017809832593044335580046099722253519429301091183003928808875436057056477733127246186919684435437652053053900539116309303746226425116330616471975569686409808174079867277284628605206411096034542618497833123445342921933797329564881210009710781306503165321384886988234885768118866493653287418351689691159628405132195673397175363547993318532993315501481548906933157645217569105846513961023074892891043848935833485819833867880036811487086771691103583031359302417428275803589028969511900484736869133197573714887507220902264501749613278542407847834270125600828870376732230320988811637617398056017701555683740979763971165097858477910083116410609699273411405792110949240699038371985207671225133238038577777176066874480793676301672396697203664633368876299538161682654725160584231070939985771041607471170054720478218684439920824166945177480017905890196940419332021616203309663048865754104537132368945050147492047198680720153208714030737283700185193615893369076502143285597405340695518815096191463257447132234457003753011135378118640931984688322047669416133601366507670928418828034522859135254740965928344588060239160092464397998601402667688275143020855043777613799437607026836758817506493484298681915101432608497656579378056128257375351880780639192866168660599270054041417488554908974346218090802463441081847016766520517676698533515245979839144265638460452881971017666404289121553091102555705664064058018016766940742022640195864152959032049113519853796360472743278014885528076141920216436162684008289103215464073729413456512266220115767694622450441907031301170154496511513071620248705574801665697619036831590163588291303532321746072461639834487531157373640391352045960552915355437227338964142520702897053520297738978478895156861332126853203783181509366582048459448182399580053726906662438372954419681749425541188818687337329446407610951424393440070103508106826324317378282428813762188230778529441561284345690219397253547978727993078299713860536156332349288389766270356836812425242439493272351015807244929636080486303356862505387798663517429118718081591133030737135615684879329189585195294204082101663835630456678626462808884899108630043263067220500838545818322134200007930603964376287104906027275996730130865479213386114809636215604306761380766184635575539469165356857990766488775245730588037463858337628903858842618936851921130674896445884667958972585585755690065035730943244638165207199680862287840398391843795015227047933888750474540008970589602051295672995894542928737641002205860965387454351153706506198362807854284502531140091205419863303902525129133273512875852231382159036973431589443906912250540916197508123624196451759206373812412012570151646283334779943748947198852930450855590238766630969360746819215603844031267622602383368993486531219962313461324009607958783334918755339765805859554917645442624112131535717163145961959039226175882368287997142343954107314899428987016697445541786753643725294850819298247891156167831430151180749092290990146918288378057741808143919380211655927906243940418391391348345740800564086503418058026414438701802752878018376206657431998135670958059137434985279404384354462671938566051164166694245543419113763026456216030008431024081510489472062868626432254255020466325907323727641741082642473305799441392803065021631897674706236970136346665748072574281999433484289129685484748117025618156113906725210406641092710995113737533070280944215629797945590509674798731229950746955615081056148784173201291884067669192223091236059454443053685741453988990969774036420144935213813135533176028938251208469564906903759168058411132214392590482288317281500370537117463577889425338395664085410190777397453192862783272214628129151956680533809754018185089149165810698759377253469507690107764182063141716653754028221128641280379859087167710693642124474839161692990859817099788901361928315959081187596680633583128081138610477714609997580132773752498520445267948460047374440097040507445808010902810014395925890475201488352139940568824493526860062520788010536751628181015573988947914991300419418652279079351568921859313455130109571171409781348143388533274179676861898759104600924971438622036709400813977531976270939513568324390626009911915850411033932856169986448167392701103117127546997303647104129676936889756171620847300315901957501267943403276446072462763218896582695681695921827211938454090218833438827295447223032322662744940593740506567803079959043133660709579643944003763573954126661736893663569341715720925965897525482568701766077313452252035960827137399589742525638062408923490088379955116980901702173927756235670002012983359535945327673386059857855801207393331232959733197078243466807747901645416681363784490113637648294107340420052776000547244202152404789768934760326154665201792639781791470510922555038488905201888917163191286924675166395790649655231366385120679782209610217578798399103185807974194067212467368778794306563380252399970253681060931614992260089610782749888160091535968065851189031870768825428389226229542498958876423262368302663880025961455874332485922097285836982860541567789078029863999336345692965269591046713220938823476630084656560033037385578867572700561717021616957634839786157949394509788491898841137515739976393719898974700481957915585051364532732087409565687744037682865377425015744335847502211948774610811249606470872951509465146378236920057743811068549870695259498887624419850101499542392285698620653471394951871356629781744299828668963845636578694175974840070037328863500390031280881547033474100935878314480859784430469669786702654443631805511921420070341005820160177330721010784148845086566951447419323842501420204505798613932408456740140637848972072027441807092630416212870685856193802902685046722712311245355195570791492955292403865348561669077273329992223628854875422791172886637253057765544292440182319256277188418594678088958244493119640418334610836359103974592447305503319981820233646074603169228830286904917348692097149686571614305196434829354748647279510901308987857385997834552406877151317568080528800323851781431631285346802177938200347076778021316852111009233247815193205758174502010730625974582363165289548623057869238882079175172093318738118952421304986789968827711019044296909883480219743406990735197236255220870175027297752040405682625507035679226488112650623739844224414051501754240298009831445730525991359082991536727384626726628947354546915953310053656844285343698354359028067577567360034218487456034516227698793406790956780489034054272173435471564416614331732129338640516315421133774700794934752952653068629793387461848789609533692399953006847809740780146637350302161667670725523762993222941864362670896206580017003577195598762213072572381077221116662292741132655069015430114310152668515540028763223319720673132907833119289061996265901220166846457493452292627341268691227865359687767657974968921197201148212748983672053190625004269282257757866923945298670514073545695959733279680409862076658666645306255991872179482908163521099901870086026635073859086404977756892867994298159368111808315682604814269482917648310030915920780379188671987238087681334109926936408066827147956652155973791500330411704641586460842557972458009320064696501070575702054900844786457123467949998653997276984852631454471363315364969870607160085468565842646395179514379938523178320036128776853423326736766165378227616914987703833134374103708155326165835397055678837616953381306704704521145508429152366169118834891125356376179890348270091215434732180893544628318554820739598690764539570009808745769556082708458881260928521756226633711603146027026883476101256882639471643136676521365345986159687246557318943910461189368513969359497233580356202025603896277759216034088319459233495333483833639442687388937769323808542857201028809619232892889098101438564708016069352548233737926429305659471999449833137785293671106007149491396765601007758375960172570104894982351444717363334235367736719604583329360874620553364539602907052610267609270107892804298923846200442380219472883758127566909514351131452993292293792193641692764225061291541881941703840430501015317646913978548241224078714838166383421524392561004950395720984656520038089718431101677344947902555454891265688935362745900361729315261969021882501665982192603371156707624252270024885792370339988395044409330907460475948727082403609512019753160876802936469018198850434491813359057505840550950341856963992580486356029637666017781026148962146998989344383041131208552059868962608539448239160418646461977871863857581079693712486497329551864599701629296159187153443114436956524389027834697398805192075823001327755986467440634597624994409185521111055750214073114450374880554164994866836343189106693817281423149202259963942912293388443273131303357789306700324991746238018796273783709815609690007131776861914757374434512469358433894948495627483910769045966163266949978358251592173536799432046310414045320386987054603868493155174684438694961487712035669523661899607775890565114935354207123284628521991228310943483606358904744921631276823106014002671662616624922529802505643362407293776046878908791701259122528701360348410278552792906779536670958827564272217690843999373416465489807817029082561830878654155417485635352392643613964340641439700281240345738290079329503055440430261415083848458522743167858117582791022277842513172597651142965133792626968658090488513884676737395411172019116146683053520529288995871279289532943426093549916423329290716118145962826212919962622635287862893789168788882972108753712244869216360208411912509968690870470465778131401743770142830535322028706480546821266765964223876838747654253133473254300039689126921339622296539132040405175275006370671898242260797977196425187018295097700571672668881389260438343328199295381523929114203292629361760571012992470806435897486221311994242368513347561330117141252367400525871661481251134764857025422343918613320986875881480280495011888630217908869773483095287423618887483974504405507581445336906985207187828218805400428081686102489205277113940552318828968608756713082275696385077464200766320398786891539825333388162302717317392525032413749996212419379033144887048863118786326175504235496765602752364767270666975703206695381604794431442088045869285742802151658654512746099736237192323821099890232501900658466253080426547766167245929636442704913524340885908460437266367481020507650194909517285796939779289171419259418518522511972423274489126436486185042220388007201220603182454742426881213364088901100680961134338559102242000050158518264843098496842399695399319036611174235153237645774354122679312632921542340196750287293130780749541093119790695711073635478179645473490894305839710600988613966469535209181558915318736100945940817252368200830575945390416212634977211267330137481184888088206508879718313884175214287682391687262182791536498611151978184480937196870718255965228807452434827337901977685723011095322570538908792237187335990169870654323956513854232529280688206623936596434747728476650916678459681504888374319663232349618653457412848741094076920877365831713176621022485479428093567999797095008299160412521569423375956133301012473085525107407702979515911686830972041167415806933641407217107865959060387808697450127074647519385580204264632779442348248518966380961539488322020812609731040863103034714841298848537388539530840004066872147697521087459767169010245724689763056766935340428408134986944121647541332902663056814012076425201944982446400580701859337148072194675416809484987924885831803598904765774224294553449217114906882635465996966603940205163484564857024800571517002784347753151785388229506118290189734932360198550579676580914566607251000112934771903320692795348251151018325933374471436911188330734126848844892571774369496385813581060154451949121118562077454544309812741093636898705984537901679793022792664349976178852188707811937841350602304276319202615994181683828145117566152184257042047235139077615938339116105490513508126816252204302118179545724544255525607330626521550320805835160079160072805191476986919565154382135252983831661471656102835732940468970404319364207215174340799536511421253114343731106017851426710316850201384440024104753507020668416163210725652300754293421888365525538265172747693679244498406222313752752698736399074605292478283744237069381925425662497661261602551377938812081338410976728028898589673604123550702920100743004198069456595433526551852580107810955372099200998578285639267050919567187867219049894282756230807839761097178780596489297091086710080929141103574677051880032157691317076411678768191485506120074388901459441135143288223456936018915953018613200430835817332722953543051370111259826901185587686680781637746312109270015924371313622304559453421062403122612429341636509193021723975378515278563851403264156976051606879980865347869669054820330781973766822385477928414034628372530217067544400523458565432455536646314240279843527326009303633055302572349038779163233782034530255555128669255241092415545395657358029007404439135541506466625780588957687524786441239813824725838344772468688349405826006777355201347579834271183495097676676217461653549278893425389606471368033667043311030430799297995779410458552108168339671886376907690983366241780330219457974084239672337628352594770189771906574962747610072477639876186403528729538479826886787855485596114009744989358798803017678850380198496635131128262338121732960689923748608991507070306517950135946725122288372473828650347161175379983987653123372928818565319789437252264216210255738379721858619260376745799683154437111497258180771578952716210771836987073401991320798117863852677150393385604404816502678285863183572029037021175618798037169493417034948007778026363452900137937550706370178247423372028792912883367841152780357008546836235996552938292163057222583383314508585839093961172052635347449161083360391107430945247102079430520421607050798348212681143502515432090052117768655653693168285333173725031174432346093137893838402672514421234832794993304915139628449545885462940343042209887788738472000465275521816531519885812394237936453830273661757168355857843794611338392743951392704088979960001363374976572767005524636246902529404165506770303960075025295971418348809484839193784343209289138152180440596637749173534449980447661594387335375349735429961168397366924914258380073048481886415174285647562809069788207299872138895111915801562132089806798775232640092767452800419146676340006832067299819465671246757195387684400945706240138222480226651029344169901218929981475439370087784488968785994741263681082629299872787021102008762776683648000967286377633449813998438679082241108905747080973717887604003906012422369171481704141850917434271003395815909271455681801935215339341569331106636847132750907146431565959554723457533357535445122367441769552343754025542449710092453034313630877797028571902035309138871258100006446698699441876616964419717929427800019084811971335801672748824477177239825506044786385600774860847635270516231580067675803847688481407066229864207088717464827714446274912188857921511088527990820817627904406790800057057243480084163216577905155444786968571265624941434084095605995714180130055153423786610442856683933993213653027026678299169412677280136933268341844948244840789486422209701019203397785385990360809103822700471046256671835402154033894395813415398933153967245337487953595719769695332278493714779085232520319445311966178910991877786993260405801789464505406292828349689360112254965056666929582069574526230298745891900931138905061418718555980980941529890392938783940429431806567153628544713571202954599911324855747908779019006282810003248230601418569092460807972112871146677591736227738936048806444623204465385402757537380105942081145960982178640130061679402750819854384075586405193607141599444288038649094000048459307936059975531485763594754478818347830804189547747268141191691655232341219101385437147942956433578224618636867113562791560289815928021678467831981281501335389189713429531211295226343414613826561167186352835305580686752840130889561197373201319472428791104252535301861535970385891704122682663132821486451135040235925776056902477098462253935541817568017753880608938494971853444100554211247540894527818044559160748233450834594410776987493807651008745623742823457611374462060848856922282823145718629021337634213292286826252215816315400998777316058681868313332261716093172937146044834929813417358453656396270191555223929348822926698421565033540512482880286580450052169869709435970094937589690164182213769888079928118107077207499188722275178296585718307192663146650742297274038111994578330823408997730485983303708809447645124214930877850241686703734578182995256287507726473143383243841573503571924309428238225887296519078691291544198336201266258225739135954391459669214435772577640775657054953153952305078169727781876368160313582044336179049138787186160847962755012614256150348176577150394193521865732496475441007321990723200817511403747519344579438648931984015442481918152936016257039163709778014270129560127934883145873873975363329440574991186232171660758918631871973462086028264399731257274648523453395591327629454414044637670655660834931258990750583729172065802710751277971785382630798305568183501504820187863303034212081928166904152866065505719712200773510926381029821080597908856450379283010728937999616206842726324779711653754638897930112435059830560546285540798034726013234069423655884757278123261266026362095856654525782732451144191513955590589355400088685314830210165417565769392684698327415366320923121076397900975583742801108452907855709627634741301246610026996416606799419376374210992524341756041322539973806347370689736824104030388226740030750031382110051719790740175712996248102738552209858216311231371952546745249363562547981995213018541931199565382920821903869424401717265133926238772301713659041426691391685435567999662483978860824428018153398614272242750577471996492001918815806593129784730226481910991542641085786324858454258034495285555703734098658589748264592972293242986284763068559040459402089245585790945785886082963298226109539909132088327092366040829433129726854819983987692982580739047163489657845395207508674257667344445326004097079394923622095883518958784354248580835869234015728580444186331461495701533883561906748910459875636059277924289779275901217510499639026123569211506889754699262522121022985525253026388424253995040273169395481167011442568829828426869222232159364955024629289026540917528166720954835102860965836723632749682958061976977718293961194782915523782506372263549996575903524862260275755992571490527906491829199585694121694873556588024129201253306914578628318592509912434777942429425283927290952516718573903043532353869028934011451126595268289432958713585673476485687169226605285501022468689338064375000484338307703397590321189277244900737195552777177222009905305184346271859214473267041491192386562311225760133448644250915475873211840868104050933596579277823070661122310099356886368234798235586015580968702439297705457710985188287964937120188797184095051653409968485771766036480468246239803217957815983261708902691169717578984530436270165219470171133181268668628476153971257459113378690363559112376580475212758376971699740761743131220931089429867958718534555484057777923313664159956519147116139337229533950884008577079892691792382972122981346783237475394588369193894187883162327705813346860258863344752771466358519358202072168025048398178631490721080255946880439125028782928921691780124229750761112102961543949987677053696662772316279778136359774052543158597438264531622153716582592382117686250909544654093820880275045631572562193162003119762770244714559634213158436099774844906877721728289271940401358657500180106461707868776951283442487695459830286248271483447289116836762329044310828013256598836999515542394845654056210610196918937289453202452305543243777918169400964998914804048792359664503941142457319717239380712505209075295198942153116336967664296141085015611334821889169525289601752957218116728129999718554428004728055113819799749435823670739159724229775713464332499097341590703113941664772631623885635351376864155832211598209190783255773412511556184669904085515316077396335970766230309353308533086843761218374629009603542072108479805427456485638298172261273364210820658760923975976203930257167698251003250559580311053565260532584706137259854875794083741947678623478145599991663133715679436709691575439142559985825296638891604458764326370020799413822402500035928931498244380912316912063110245322265946134498855018181032759609803884323265662078756826386035426053404468816021376183231277133190556992589600779558754080551845281167115430047604331876504807480739449399444386591793499272460052825302194552359430904869625364768878340485756347432780292928556730293803963941359853947548735126252302122701138174719927916821248952976138378682633449222836490793621200429268963613380965752203025767496334300169742103891730825964555119642839934413538751568569344844027849229132911319130387267110490242246997327463286677828845451340935245637687656799411005887281467969542542833735792597680436833800170866232200326553499782810378392811426419287290643212742126699228212493763231912892674411813954225772654999816278256603078916841930457567770031387841173006974846460448016307072206022207403912905913691276449218329822482196937421098338778771465849996232849422355167537555206679802405022419132267003186685378934990403613162284095489644747613869726976563766533004660238753220457348953070071506154280866004926189343768955921942090831737512365899949713474608755646592096946097415826904394952511822784295624140567927810511580438349513241985164941496734291240248050047779445232129542902911645067334732204949892625927682173321704129106492453168041088808198373769538058078871264635900344185283893327090968027349759055400885933589410323503795664377233708284387049293713459302194743951699366701723385311967836997717105014697945272800704325895297624189692010834922586814563687994958668660253536308378198894906616337048469771090477309831291174717951967676074943727772647267416554133465961136293357018358931398751492319332510285992042159158415581125431832333502756116541925729701873860601102426703303208581518416589568823164585623593823467450669147102553107662299662464628747763701603732657266462567982049811769889898759685462237261532206293762724160514274441406641783320272304088963753209696361841894843844441579771267901154507557824881434236152276343830914193731740686106166080838120428228650852243580801297946734805742770629223829997342144419151915668979271642356777265542506861227603541864136930174310948944525407302706661307819301194637333599867791279894364208581713646440299065072173388857838012528648579673162356062890285007764094056888499351319973371124651973641028891250157233503033518696057029374404589350452783184011900145813977566164772785416136594986661846846025183057334850095100025046315978399423058879704130343156060358099345616434624699691771514801175827763841994764720832198981525931550773042995155256626543002858608256840960241089166738173905016498255486463625214631045766535113170495406846495397179173809641765173534404592086539830523514035711135983490503065293666768803325787025701544081401671079933677348827955333602023334285856337929416982059898400801979986914076576058885840918294864522215879746029880945347622921145420369927402074579570781701941948381593654846850938775377704815934035985761085479927207160861605144918988862509043957414042476548647270892581130657459864541256788918590666532441318131629701904223686356724772719049520449377429741259852766949780760197804675450984656580827485680060030850515638251028781240370038169833872139102183162600350841884614875028191542411028072188928374289565792308324251544659680995184851778206166713847834817848964778454423184237461194349303034089037176424044586908631062035453185123153553084929977206862621202301008074459259592227740434396734125058894741889105627829114783924607332517689455080305098308192689503385999332589930514369161652037382672802450598246662427470877677512451331071836775167518208326976354095353507057868476951191741495028250269539816817442437126853281286601546398657227064521312489535407639768643945297868405283286457666912178981601866941933644325740747897390181001442783049989348408977953438574104404632445121329844050285262782278142417897246940804665725767161922426403282587068682429953693089157141570846554885515955755505444162406547592651146594565530494646234454149598590462048114344284920220717801789899545173707050054639220675818211117703779303631423547714436849635614813779685282175212045910368471713164629765676509685443071826046111105799236901795045395207034184705565387799662537640521718458553833277471777229887203837661607066181521947610367378413587279634097337641984618477210325701621141544554218042095260146584333666623741251268574341232949192991897326875247139029994570790179585895100383383051246183254546507959451472639539866850908242469734086347271908725568484933698619981264640363559812371017523168482959050335111826333402587686361567515464422575961553739048256194329704304294544623954850057397468880464454236586720258552310129070973612944340097290449752907228462731675350269090914453275508208040393403713144597025945171274870935010377757031063548187993580608025750973767538573744130783070396411290855985446361095665384699555465087380184569383720744722519716928635077609584873078517971991971019870035498425822000900062647258324509935064754595739892052165884789244424881200756860217134230979056508245512613169756583053467648445103473254927639625476916620655818411703251337369749729550849175304283710111858240635199190715303193573393897282460212385500861801733967995571993379950358796890530495279539792310489354060266973468261484406537453949519100330927290795367926233384391802141458876646273918879693541331515185750202250429899440064588449846022205108886637978360764494050194378669528135988973730740960026188542090567160236468110648888527025621071600668305562348870429842700734900354575960053899445472104791761704979472096704011595813977243174278017811515064532930109478970946069934157721345405085444093023038085837402275266119201644077505744657899147365898959123922890820188686357591233814944634375200210559111915011145035248773275156083812733463214950195247171676358507077003490572818993169458200538538136291814134195741680447842033103885124405334213827571365636634659841989276476567179156367579755410365221664509377416950388349422599981713833575286650526880896760531211284432670715489084554111820109793235329967309297681402057105904312129855827674252102301452952115145909027885682273528815539096852651044257760426471340812403380009617323183983011626595653390463629392299355396052299375540948675444113797648728174604943707724754488364200685045898918622989847130839749285274102408118285799358596965224691959948874592561271557678863036505489700022415510627606562451108454008385627266550119905641613503521320858765224608441775612377722070319576559574713000840198217368434126058525817714349861203538954095687360733755987651221553210916528526362246541853982480768186647408609624361821216878478833383632328697858659239262065458009534367507934824892331274217073749597572118429046750878254684869382055426284313571421206641013685185303299185392705191135809585930940119620585631591014543293443403706921225882451752915468265498275418208111135099006308853274338455865304339179796907743881901055383768316569494116882267726410589143436867527981384089667096212932038981851894319785110945726721080447670394158372373167226358936034849955597854302325513048708417055749358246585930505770745908222203714112406885009144100785961768506598924157373430881317996860342966736501668201921012264018380379564536193435378443702487690720886467961961139060227340662561617750122772686111264249637212118515657434476330533670930618123193919042994060951007042444600922617667985355066604546742444411702916779485165568972442850212133552670164070616279183392134999655206310896631965829357156865558013970621638131206869058626552296909432105559412269319888428483494628602527570814930292300865274460327077154560405753704336177729061275599490935637115063950886002449622087207856444058855329978362799380259686353218622090344487886441757153102333419488155422585179748963642311526482788925608353754181210399717913153358868227390014582884372773229072754061332718075305594855651664754416909965705170837867498425062673359430087971292432541576640860253842332445610575632741457617886857380724576128631154219870680399872470565429909309827874968477034233148558959005307679555895126734577049677489541682833766852352890938879834067341014310936479951533027135974993721778018735356838994309931259519872870410862230680842270508954038139747543833790952548130073548627163548646948568078835324071367431341373011508405418703787788720879360154401937208684332162937952536963267359933855974911659876328837684250314459045397081149459508536509255155519196318218383457885316024340761546915449857331450515943159196087745081260190667533821005966261171932013585414256538708049704254854095143878411398826899254651324353368811588163471420071749366505603712499331517911153241197485234152247325457394656998481410568675650181301331407757727024350000032814359589376528471006028414421168455241192319051029278627507886283410213550749174459795581096718384275478080056576166896960885949377769886642879439725157341976936232693825720132331854070237594475232745958232187088548345713403645183274770034345588985359414536261880507300654409585686804096329475914997632713753216002516564066342257673584820859166922516340109312906650510429150185978972247045337432536885380658702743160069197718169925522522875848523203968368916222206441592363681220995612308259589087065875810915128205247731205968079067827476288261483759579766383565089729554331815624780682145743861890393986049743602952459205075387763978685444149765867049268173737955409742988845293441056897794844344891822492057646158724970568713226479989636381555401395569550887318056344743760877483350991024914586300947690907775236528181246934765439086536279671463242015250501685737795353597376379325251862843021501951360377500654731512257391036516039058153478948198319765604489560797107214131252479733575885332548194011039172422648220203202636796370777528523813106190964182712084642509669564180724296034026889022087722196755000640224166913841487920526804566777389093345488596059891585309056302230948886552933122571968594364273078359808295966935876750158446709862643916021426173621217263792189424540159361763151819061739393709557480984924215682613115965703607621249128538448820205686821587503654651083047189564524763025819490182116579662648932729882330450946554490412035392045875141524629095619120958597413375434482267992076383295594579813322939319964463734721258105999066046035345382633042962352775122960044696809454358765905216612719728126218670378855452357902787371391651674891501417955605589940442230790050216061470660362328233957330902632892098115204372171532746866453861604193086387267509156798460136625349573782112403316085846050960729521907719631500031322117783973426576319839686955262589918148353863817225387598850191671786932019545896102271604221558318855265229946604476186862600461964783194106076853515397238545426236995360536949204005507707883950153222993196701561418688441386611441369060147798146650424398078504032228519778633901223918019619195394884012456231631971601921405651145154452263614275919062721042553621236546427368014090875836864430367462803689187703657612997915148482916971505164365995208597055385604926896555381297407229913909945977296698464672388134866404044146149633141106594297413484801186990586027107565973634623183762786147052249436279096271841596055404322030259530684370603637663306866077208704302607733398514388647684218710922924187687211230689679100232614904251029189934778642433413890625152580661593854237580583601617558559725331983029919973889959296622655233166507930732852767353858079431206820994418944101923836703558328040499320861561400457337980507548062935583865242607811960521877218314952408534025063481305521259587062058556646737058359879723937135786235188620610491823914289722310028981632806639612848883121780228979439381795752374179446773813738634708409148140946285680776105782043092373233154198112553917090174437473738542589369863633077469317602760044720742057839425577125238430892887247344308543815621873120253072602538293976663043731867953592280355054612609586504505959663453776569543788055464132822497449705987545908724800364416151748051022049981658779873854786837493094762274033191437309501224824438656714810605376553130561172822064538275145552964683170510429539122497558101129937532643303770891366207988685721530438736455343549022060431544351883010858065489998344552463363781682226855788121044583998098757321263088368121012895840560791983576687486254305052337253896403729325061120839057555022442751771081970938421353689537734877388804524013789450938024467458842071545192527913868484515519446731820462537966344315271344065080239539451592092974208675840390335667501813996539659848111941975117366424165613895030442474201515190903428387220638963402943847436640292076132273721414173176168763003057978378150174933282011367260471305646240945733139569698398050007299959381484149788707839815005869634158016419661972180971893020886431267482664030559642233630431540367018148638723553178474410087696974566917035897368533169694563126695750125038321172367862492560942100661452717889027942984478660023497443172786975176007109886908857108371039449506047566802067198078463898539968888625885249025298635374330241780812925954972251728876941795792168133369783893688618053030119257896272618203620043441110563864522682282668916038333387050874917285449596037122444857739718382956989535535596618054560833132504319467712338938435784135695966011449863632908112412769213429079635752668500859285568457418504994817545236590341108976276679733516972918178506010407062705087654728034741748593727754276575481772933145593324943082128081638302286290712576891879862314893112645956860763240572339460409749551495997937260681354431328327886492271366845144966303421635487770576139318211501147425730525760030436752244546173952819364015248118332693289972089525183860625901296999476392218128106242802508545878002712069322439193997218184387999083830404807160115596509615878577000600777291746538707864352750731348562618213475962985534895238468602408545831324306646170850754033777785683913914593689815993238413250805348442858687793304706513680173906607033849034573601603598985309327136086977016603696535392834581898776000261452791615998518859087783766157640428062692324099923960733608425957279971331439486273025963036410840898787853641848238101188982067026343666400362830277488392128740479869028559551203998806776496222264761503614952445220826339735397232801529037002453102011905910143864045333829840696501027691698708033449106191286618317638196150442790609206830806808779090739303623146602767194894255443471878151814262830686793304814808438361740085543582493342598177268227621082378536382876376017225868020466108934326564141338356686056577374141022463020480782654661778672903454882596747167559072371541002940838690462063758838260920369732104967957875700875451147531152844925106571887493956057674182733301419948534117739604889416854700605132271234871311175202910339417694268099940849073807141067311108752996098395552320634960833606712572918958864595389765448182706541685994706172279250978417859249076063834166922466017420091476337088915800671823276444781823515812708693504903363480588917696801390185734719202671310593999414059752484182408104370088475060576494763766356903841555798588804502755188864192591166593596998215730368514310303761800134627266689336171296064472058726535623749367761153788170019981456590960819132414572468792761743097833972725796639639401752808159344061642986430857535172487614797071195080762259062951321439900520264275022169411634407136509444391502177835923966055044324017398049719801434073940866769364323121240745919667415823522465216288033641649008635198257817371562081729178174055741184528147303213378710829755752994612977922576174686893083461332737698038104715699674043991266013536046525847760008795206720032760744295703148549244342413444021456997846137422836793234285446190508338687597849322752622564735461559747761095459811365117885670495666067484291207334396645773488395923229867679861953748356772847671648456480433918795284440396886520294967210027131066750254283297619690080264281645207723771479529569630678650867746772941605789238691830839135929846564993456259966947350539747858356220633113903176112012721292426070980665252832835557345152437608228595097466448229265774387136849522304728359645591283685457674856859701263592060533376439143344336838703563803158615238909528012722806746893149404206003873149114908018134743357070029135173968712979041537525195084214259184795182786398798188279413282499237546670472563148280976043766459359427027746101700377571005430222697954850701711005764012409523597845036579990958562081440526875247789472098084543379591918741870329888569831301985777551841546381308905507956224146413046351468274583906694047465185153126179415753400195026839519247263772569046828020579054911602243639079736102510304265353001413730450487475189732816110764248400178514783213865104031650615372884458222630851170370097337395599185229784803878002341151853552436568819697104576150916130327642568654403527273817892450145445005650940829157703560919698359134176467412330758571407472818228824361549277352045906759129365023721392864840026715114126699683355144005118571819478390857460288930718875065896968992807367072144878790858030704813456106505140447227844851450066011947161873240481761775171735857132852290575190774226208518154440254087673568716631184207571509146740899638602767323028620685455481130913797696569550223633032873944123959338327626502599285325264174174508318981383789206785733131995549056434435888923823829203476711911297777715441110809700966558191970631804796354803733618881884642917071284880087789903444737493083447189709791824099050442212810463981033398693537457238939663713661013529009638145404758644900614797015297136366583528666994232458954779219988315187922863402713007365241421320850022644302235722673384681781908544219200188187379223771765587411475799558641306929956548391317352304562545945596712522244984195170059874802848422693696411949893641569864224443109828424406591717652353154540805999906539445861579874476936928973265680978251315583449544850934781469578659925075852688843713202372120823603197912741831613199730925702015491498084455494899033482380469496772993360381061488661364011665763426345087744331131107156262452905992645862806968896923154952170685153071653354414871408939357759366702202981103014411527045979737000495705509892932338675287634123143229945713730039545577231125610647385262927813058827229346813312995172337395976738190347273506043588186624864053911280297912335800870987172978275477184231513865426623536069891356758759547222073381944615536312251220534290311079416547915705541709134060552283279700452203602883812262119306481414156916528417428604053879253809811068421736953808485271595012997821195092855436818568836457352669095992380682039250047650318587510659155087072000267491353651222984726536955190863782382883783395969213027747639216450712845319474765034832133874474122164245654116752924911569067396573654551186135478617043163777170167604838065652444727811059978947595714072356627911667690010227602179895719860906556052675333953126269922428605236411823608482809587678509409340293399009518568088371915496390357025038812306600494961529914263787069274454810411824663446247092111513961219595491049814446709326288152924146467845236315435511671842799494974328763142119194178842734158347728098728941914583317818145429345743815728208902363757218314352983992603567639448825228093594786423778174302011785668331972750860082696304351383266318696352757879620267430538040163630610488821177679398581507958074446664279234123864018885057259349323350927601997316872851802179299969897542561141908228022151683973308597738066344022501189139803180593816184752146093307810101977538080154514101649224016598245183910915331734379032502795218427926530988948694660856344163726516162927171326084197781523352589365564912822068462064459166605361878838854747185973104152823152987057110513471157592134118414482418451016436948471734698377504309225077942640320999256892953742532932470864923470249076499433039888744373179518531945867661974576655407786819922490427464290733355937804566805606627943269804232112036074837447591290285770742550169647835602140498004201825984638951713799274932994779880575182485840250915707891041849202011326586764256304133242165092069050716492435118562585879032595517685854893205203335338884745930271490763249508555050709597366528950609936975083288312992983451838712179135339511246544858758180855314602658220026808319882757225891041923674721730607697186449557908321780776207199395578154097416582544673354047042892245472452112261078652726312805934301401112620856944458571254778879206802270923287615104279263447148511298749612411962894761402584423208092484779072281971583076679183177373663950150173608212911030837627036277555618556827076087584726298199172713196892899184429838365724723627297622661768315382724457731848751716651140378552742101508517398261270258317030360814836896920416584199247666817034124548546401738560846635102467631262927973692551548223882423259381078069392469461047456013472513779071115537364488256809368359379984688631347487065835564632101727170897667479025840951279382072728530744131375505521132492823377772509073548867541082681860517194303140789414453396607598184814109860534700740438709979133306876975025208010495647746053179460826431986490478012239229766887037851533739584348683229988960318339772784469137511588512957348437739809054344402420777695551018728908454616966329202972516430572505093273682357345828717992645636250293773385920188715044634432492281267962707159614520523742713882381248337777002288245133775699242446843799417091290553122370225892341813393531231536477795030160467391800534057707898952061686152161819784003186567049102218492833406936677609342809810447554681151574070678340933061113898560874634813412523261170639381105741964837098538706342789615600697759821735592627062587162477390166054219069742639420276159077066595020665494616130082722175380686939762330390441616495859926524537224654991028887677176000502060095566796997546085817778830625591462082379463950460927785744969544021650687294028926296489381299752742289061384527082599717203320447512938553200200888632555482094349616230348080530027665613702674596200139300025264359158239494973213376568836566856232531419071347974560869449608637529279690246065616260471225473931637480936978984420801441952883891565500523005255379551200895418058886599798041290489975389892025876985748265055038789647154790235721133153232341818938496677052856513337674079694341584926815591464654965825986716235846390210290463807786454488707092594344999035417176333431675319841752335632193645249936749548336641702284361201462908028545971151327282974406244149823748715978583901316708147061499081270508316953738108575191414579266149174715154261456993224560229611969708133100288386018296195614031686756365625418066359408890334069552959779129256748389311039795996088985164515003568556219517153704854179487963012276391726739098848377780111975385808794737016502427398567767544611755229297391808754040047893280102750778440370823880452422415800415240843535063695170917927675849689342514140743171992057330929512580530164751239568182300230113430566091313816355916696054602854799690661627146877276574894229396295400249201959504964470814937535225753320500899270016236690070190476994155727912300203362234147337785198840034883620176180696328808368130684791323453079664053238650905677001896373115111699465388967742147625800351608758530272272625975356287887816612895943184786274414622075529628493872344764899009148143968953493134145814442309356989466873126128244692209217021737087581135397865696410927365975645103623094096279454628016614575433838100204792727623162001567619118198638903825361145543678783972892502560440978405158042030261706073740059318286409888349797158855047193337571952108194700117757535049637624286442963789361303642052186204195061207646396325874023526368570345728763464780282302317733282587651511295392953841567536030028607659802082735320449830001201736203322266411761288163061640124104449330294188432459294911009661053093608609312597160198847826670152841294787519234037859021602807253441918766650256329261892105690758459593679030209340602165833236774580684487282674923694954810433969578033987793356292426125337859487875099955654534340135203250127890184018226317387299128351083663386828885363620280177439238037886047326870806768197089642762996314183925677721295365038593039439206762696549969758843160211821075274411576600904262125602540003360350504977075686988181670912387908100000589198626426842790117128549782540200436113313047979254522009666885877218442722011262458627995803206792822736827829400231084644364483673937547756791914384688213145215359416795373415725566004263146098547169608709904378396355231291892838548350436454437811723167173112563199295591676457454795124990496573526155441227606803786781353521453277262243407333526551823733845148162512851466875665495033930766892840705676054073146553694614270354223626913512871867045515517842820510812352536959135670770578849760850497375603531858923917612292925967225375983860716544249591161316773359304936521159047415072047838307364996489243399430845090984859409902779466806281379250057518237708721510319457182157207868775661747797617945826732874744642375988141579159233882258241425984001328302643197774385875240326174204259869752020413301345439416978287027400971265226922376973377347802680908254367134184073688858644093670833907103086068126435931532092404252726046523452301037047969058104311654242332706337534491177083648430178211832704470364654242124143406416146718012926045639550250390990009771219966668548713793882077084911822859791831030077193341848754398175029721379221483172875411750007791821603039137223536065711786432026244755098967531071861811440305802063302227141395514136740002090016325274664518632542762639475035885619115035969138963117855368816545482139810870924070400261788221007269254853206654839485149808807339659643361357485461285239308453215678555294250233753029823980164128387765489612943038213658667573218562955530960197219526284686131610872066249734155956313462930768307831939018138747237138304307620024496189845185480550771343163315851512951844992052019363155428804742824466203686196093556559349581945680476778425045118600492786685082187311385901295867523065922070645242876109026004760135477197570394175743126498602714579253594907147641292696036535572325073819509273693575985538351851989802685602930414511520555740460713268533506682139694910013271767824416129003859505101573151204011225715138393595222358389652146293136762415416722378987218270453706910059687630793389215080715235243266935136659256789788131907571251167470822947604014744209184509298995803792239990361084718376167101808862744553576757985727030899685719998462445732280680516723498309538459709284284212173592976016340979178263542917231769084684540091436004957988996805695566053034358115014317016909260989638499414032432238487155797772225255774573592734403416153963859078789083695930827350246041227483072834682239992292952506681423514154094758584700789865218893338499750434234096033152471160041015310684491940049891771816239790672430358320819856487714442814117934012196152340932031537611517059571612628441949557100972749668023311402656275389462923470503572537013575097665914081713412657841397033268284557133956763780932506256518064672433067390441007775618814639098426040799775760354680384674042626344302115370265790675121267420090556222583771573036791729771935761923730848782120802225844999771115368157583762929451549206549551907923902841607590294317515907868412664170991240423882283396857296415444380881228438910279695313621566159683941109281682855025988564289416568017498377227225849792779555141254261147049146836866367197204207609736047295076738579963642792126132396724383816861152641816712700435213043674685406797130160908811379213295061743179651943725859643542040840155793599656878020912826395912889546181560674844160306197180620411378664024241400217750852521940291225792770807597520410345604083609099262808418058457343424925715468876044203511461828925784745480822451537805781918885099728820913449948329557754342769858039765284224339690811925606961094726140601204181778848445501180641233576261009181475501553271205113885516322779370245199400713742200783692330353971611166858747458035012761440809869627688086298898928389495770092383360660396098959431047551047555716237131736760964295795111196332576677894211941401652488848023841298674997379862724116662156374126681519635826251331123456922137421794679058229963025994359240651707963398945854320439910293532915590183164533710031207058613308068628012905462817770290912369635641750961159332461774754025279772520483974158827496905332637911446117396014853520193244826467859361861865338690381130739597775651500190468162517378242993837015504174554962467191246079919788235805431687595799239513855981859539930140007641615778674962504190366641858342862501856680394643951523762314989133918657496806964278315140341017938850513565824101233426769035631546141498735116352685589651791230216324456113296206409935222240233550279352016623314158304871445103736817113491844087242958740505986600235056464313768686248305410843603553153051701595209529911128573684721989603632553838647208540044357954302369211957299545767329689515829268421181080020640570784092202158829804055404169487517443875579982998096710937415565988166565258891529759145668662717554375216472576232687947766848727719005266755362051797634616917624602266742639405546961383132709627221078476553467819391092434129670800465014896195065137663512918823206565982125682754906297557048853778220540988581731423766876565155222903172207266644146750288105979985822665552396863570011790728820700201506683771815702429081157950315621053365326833639526798431684944019796982163411420366344154671177286389055624048849842268670601679013589429486129773133976845566909165660174825899811670432981473780376477404381092932000089285080836635415898755495261566535817847860706232303559431247698638749108147141958048279103075087939864982690546588317221463717759653367049371322896136174498062022182314028651956909362102054752599387000260234574788735196565359527417496306761942366737572456661571983469620289911605928136048247531459876307963572747601992229343346815027935005887613076379651027532299663470649337291416019632194728359493347042392516301166810720751711709677064617330625714340871447319967370213403612993159776358932553484853177202362097009092915268646203029975155022969071491376221861856776503100424414995415601389678837487835426462992831975022787867407206466120715714808794315447520985031796184382873913137343014101508140499487471518498816075759988369162453607375195694709069578570345601658472140317570935969380771563552679635187036457344448503148759005605306753928691424248109246433013154709167064539889163938597077537779891063249356003430774191147209423103177174500900696359009298179709670737754532742283674096160838539331170768881140798555265686071050364876487025562557656623677888315532054964846161088174032737154014408107555829488389495503995728855898004687805356062294483519442769249544436174848940802372427214459207207740970302913734277282392472764048014794489106353162919087399512719829262896379612356839322831552372628391257001955613113438833911789067316040774565069455054948226662675152432008413209144328030874822324902069588391352336170004424497198542000870823349045117650234822818312307728730065130774300792367856389968682592127275258627190237992739429248523215697498956439167899950049015338548902883937295093216615232028821626296272916057104472317326222201139933684523586819673708940317872416692920831786173113917988407950829384972114194250285526061177018478567732257152937290745313002089915971780307757295081963031182017148725014172894678877475425372630857681136166083951377302070463083448394969729050158794493418876440894213935335956170084387827735010023452570113501122532523941494951908588858348784870325338584086617446539078601429828405400693130721214531656635246797433151566936474125165608125269505377177593368448400215586647534623988891805411516002826697417866129380600853188198571780521310005645206665030755873321730309767790913978913221646199949297765986133419435938990953398764480131574319053596215545117951181570186040948489867232817093794546258775411726889219381300178945671220136979825781744971147345925049419755107403154398102160578374659043764488601968010377253159136404447760964655188829674581786548098154818636618098842629331636660824178498353943497462648246638454117579725173366495148454992829478963128953501918821719743424615986588704280498964638294931550482210115550561348969615413040660221720534683937174197287788466225494072571077655444538292567324434623572064528851950211750985844330389608421885795137922895729393567108099560619316235511823359667496188328674132055977503989385191320312958553813533492293826512438300841198246074736735401932183949657217429984548673270401611998777806495261085698858378672116894159395315573854586580600317254837621676564456105738210696161385471165574020688869858506568658452684564156136789244715884062635924797926104464932868672696468508280955692186248562558762746239557856862082115554367204664506675648800108619273558217127327444194701994762529677340070592699569439599527051714821700453045957218193531452337621452894453762249717981876980316264391948597272573993931067493857775777530243966200339863923657101751718190533015598008218847370603231944762462878971332847117220907031234012564639731854392388758960636295063701647711227552723655370828524398618734283392842942574772938671706350828052706195709739059713167906929618070419380153903183085125219705146991986973950576436131026104556645406151250356866805009949600864910092622599574186676410695095437306334828782923898526800421958459518771544886901366777187574830785778446261968611715352043557716346197304619553547948084147668795410129139643486092223629346410677954311967716449871839284305242351968292764891688758435441999320649777176244358981106504739458266519929044980229439864541965419611607425357943061012152369313498746816317281990605355317096110963710979441864003612995094788849382178951193939222920607862609888413220209199936741702189128149981580624152057553117899093369420058867215271075798578675599396291405301576188878421085398203280132872892927894565749865869416872869445298599279838796995837108005278961295546547084393920195482844116161169548910045278666004703800293852804029858565648790770761021229038883726820479012746385034464917552241233168043434392496404657526504062414583627581114471009426201994644767528720452873415224503321728128296642112398734369837863078321146811146110670484993471917924453416397015809868258083962907935836043947479996180366014736675068869434345202326225119098045662467793850748063371135914794960990829008188125743970774109985571221619140330246407163890373036834645357228677817470986828672627461943327385511540289672123801780795870781719435302907062953378322088220958100748623607011375563035444738643914357260103923237117290253144594778821621805167087978648631842844390849337349941918211860523014524506118301009760702855312386775267445288508467464706272714199980253384156008497632490825475666547200878070010109216141817702570349131732660419178630363437067680944119800855931729650877987715841711122153510244374088553656601313016165462413959473593487621146351207981518753865104530990799503660486080447278737769372500279049880899175975871329038167053848148775191977323715336076724760001877741986497480471854132484332601819639393189653043481890151557410651443008618494942924404731360552040563132259194950176922617350571946403865895974037689017584296666924939026903168188560711353772615330531229511835763582374529846967120444614363884816151476985455415968285242294260172664307187261719711809403240143398582734652381267553733510662419625887986316077085085705473217514741403246726475685085064096390480307028503780768248579404395465410130209237141414724230163604892337708523162912700976076773823916785484567567901423354912834972605351785567342861457505576111725509655692776737984953676157840720059241155698056975601904652872611645253498334167337165017144134999337614986997175375875667937838506768044173739721367642674074007543304323081960666976467164768101484829034561910250753152568206430785950380493237766829906805508086461819322169484051832712105038460322870133887156532426714925922079711178044616980541873527342478460007282243895550939850221126966012188034918266930526889230589583916845751483368230879713249305507814400419069514144988859664898724417292911186636298988250517477412998957250544799530037602258531038498124692113287332052081858097887326692125352903594875946383006088806602806691583149026938159060505197658874913387078876934105244079812719426346863683253086025957249379799035340690157315244633793942636469099056605161527554479657138484969471787121112047467396848566409601961467717598900326242447181700594074171127906828947298242127388210534388323524977120603135102614509076629743637585615653134004087126859180326132607313261548562734799463869216756557661288546005990803403865246157708843947594817742017727466468101604493574316147899968799392884060271233294004857311038590130740591108786425255927086322902641827074231453425416099527657680495010209839830897547548007165814051074098650578189214385919384626120583762841078428600071492224234086742779846349828313558042700183822918165508462633052191617049322800813121804445329075061805371863157573359670436340282434608103098534620431804442052159372183040687622513901131510753921893660482062738807614350794278925901986213286781231709324446077980809114936583388746785930018565228145783258826920349245608259452696404465765350916223902343470733723915021351079101364387440552529646944261108058768446851106764587576429208123243525540068389453104620900203699562171462596521021434072394154455507038661233771990417944794868833926872210194551985558885495033381994228529660378510854046582587540186180908342682612734174023286873555815400443710317856269345733443785438095803535755854407984663600404614730186455491665891667771198692738954805907499135300775036097062136954680555931208494130388376770824591487858006758632662654753357448974590327131240277539981007763008066138511035561353548790794495046261938479048232211321134077748468183706802154145376708619602614375901353883572474181751904682358350105563308367614057964855829973455923585807482125454055315920199683501276981885273092798688985048774364987232884933192733108370037269795808863550437618418531273753028256734613448209340429211318114754749787758479965768807877050770503901131473757031612834372718093648368615947554339052312302365376533305850957680591985934147030037032983818286835437819058143450499240219141048097038859215815026977195249589344868850628930531714062967868200373468220548785867080985415049076588736749949839386233037279357058448307227685999016492200805072522255016933241096618627704676787648587174520527552709967104317044294623582429731097172611869586546946388531084151676710409780640580676423264194433061095637128457655651258826169733601785390470041086630281018686034282259149051312626039394105303092992385951323839128795572045687141505283117004561185677071943781925882110966074503667467058310764907734778623715061726061290426762489027125948680995290568281475619596206040289264646367935186854044558396567876988064965985051351165741477228307075617251289489777400375088433743148151653407785799994654413469559355827659080265495894701827595723074085631136570025406230256036261094882744449712002639583572444285496258919584121712913878633505998119040589271308931106296635874291646681183881690488048279586814427846459975789584020394231394558207881400438715542226978731215415165931327279711787762657735367799714732322162141844630159088639258243408497015283698151331677607837138306343679854398628898642373853114769561857842503890454083771183979390083295386812416359528940398955027686228977421910131275726928059692721742127173398562935513750843207957159348712320142448014493410045678312432517138767730956219434438199284139483459273420533059575600605493902634940694660629084895440730299273033921492835535011861235415203126309221348342268788371955090996887811421092947910637741916503260856798438688944129110848189556493510123304382246970360073996159968957817046576364211160241819309237202953501355916280570571109106372516598501017670350106795033877635450323473985993048992721865826892330925827289870365527197978921753194199317460285997122430718664588973616131886204002361437289904321563377024346482960211292930110869828388059842265937463820537560559188633738409053442354598163525922210555649488384793785608033078310174773789742323438250983189702522643297100860608333991809132621023931260595436854704358269405825649751473109842169457637214582941077822404296782947586038871990288017914499037274484635566592021589326469717860533118613929022975925020220143820918018389193542885495148332740324734394040572046793046369131976002019311460373076751195702036112071049256828203960946320850947399046218475339401908405914425828993215150407020051623139253041784136533685916716848376432668630905157086365716515494859235830449555459752299279297251580441138514022224309785675162981711224528527757587350919839474123570703245639536660249487293156589196496524170081590169397017312563935160796401775135916671806969889264198600179157471612431468583631056108466897741165565067396955435216525572363237266584642990890887065905195005112235819202948877529564985027158593906255240743952762712354965918453351993915811215176984561684917433464802784652024394315237416138069939804021312610759476628080918166524312155759536508496149597902515339584704034273722535033005580098065768899252056559619036203777021615255740949112279210793331778855444276421401634561081164980891670692388446968988156240590313632258520506646561732411773520002758632161892756622229041427438522931728617309393120899718450323971646327962337510711396745134587114504367439255967754831875147238402545775359409748649277476104857790721601793013247402233304775798022430959449244874698770570577902090598072955287684226879995769491063419081695745480777176958745100026536157466712741212600638969489827501130338256606794761998168820187326291132195069445311128963101792431273054072215646607921868956965120967252977122390181793408089789471719294509426776939102613869975519795323773680677344872681025012832239056813775796000988515911811989417105069636943458582476494796988735221062174221642851438248715683524846383318028321877943191481276580641611022223819201533299418630945791500690433122170489093016601450265260606800819742907214302516499068962463913367958216424576796784723827714673922771532843147286294654146772062325813226584703822595302365804139622176525203218027832113086691380791244281410806956849830329611286957181613649724437973897177846319064402068319663888950856496763152528232165208027426998909876517297359096420116791485303034206918148063477171017516548357939686606881504992814761689614022502425168987169698600143834202291248411814191452619330161673519175877687027102143584603801762046861155920898126748647476167977745046226917725060440933515429319496833166466988462454681795948727252432592896768217385333241971484847563871270381214896016862844705524654603716650734547023547858312086970558348674640425994414600216256942711933228106176943282300894357631447547782101609802256553934571575806466616077202592655670880658582735261466652409122272293710727433099175051973983761467769275664597055653159766417283254229206530101141258751608893429132933740602008453023333051430298069535151598434399870848727031387084025170141470546814308459450339051161546068387817699752167373137669262653498580697024984389355759005418123826329515197428587965605467200180461200829602411824561951987860880063554161950349514499406168632909143883911730278252534812508907450315301086966164650950415027356662831030314301169935084948612908003925440472448914608324999843740789638938044892777416494607867674203225299898847056142697711524335507334631170689246240320176512517436118660480030852329399340335885616037068143693714060052621100324506036942269028760318206637110008644323158340911361202017901123960091070041955878803157521200043160973668009576458222244366845890175986159458835594564300589603256538111156960318758969095170694407394120863640953342444042192940803572403975358335304564126358733754194570772978506930797754638269807509547407758344574082001887465843942180228856452744960178988865117008051773875865102408759491043834879642661499597959979854010665658727620092634871051612212321396863990700875360065454203592036154140677294033464063294810657843582037808715013483043377200028517272460153906283265884556697723974499986334821466848037703037172012073712227283320005570005645301306248956320414314810229210048284608272340154495080881592806878466872274075699119103602903830604584272563908166695030357087244944817053044787351465451724778793274180171832728715086777325032875779310600173472145157180970491139190959192039823114237746819625628558677763147631372055952605585559832338796349017416174500467614490246579224451742541873056366177958395995925264169567006106776601560308653902592131088131896539581115175951371769045102718929568529881799985534231938218762668508423090839795312720885448449165003542273040210426799608965626682991747316250121875149818273058517638096388692726035504260247969149542647660912510292550598566663823624715234389163031353943561064811069661320649535975831105465729814040990072062120612100915006436480542978479912765136760642575887912498229767508870167304513440215024517381055373566789298915940427994324948566518226705077913200311687090135043781405666408137436705692845276316737081151894166524998341221944176811808126652575323022063364388083232273624932605321201944367293676094884820794423431731730236722561183831023362717667037138374333090084489750851345624192154957729873389951420659329991978101176039294958844720846326850395274411172756257541937523513051252400778756583808001709811178987144604648446027586413548569526875749352571460458003490805047525702670046332070510560579451108973102417073052126642547790690107449602831237754363400741338554777939523781660752567425878783187657930762155361501851395306493765732510823616591844384976012762098610706858258829972853389591324948254001312738514130911757346260480009403953928409345699002753880535850772408553020393152020689780659262223892099938037077403418133365618639006274580655412325380962117118305031949923305134005152501573844249769682099529944564140540036609203874979027474597700360327294115955759920886762932199776839890977843578561652302319648307840778322133701014365872138698035707885586497177773309810123434475167674550306802089816039419015457194196102144227646939209789406871640602072737536212300374030137040900300603840664914119435207315638950039971955963070752052070137068378617854806737296695819861089574243744628646339924277816000369893523712398253943995565968363468737326470608315038286188877075652722792931375016720408418656627478837814099097020082864728476810886409067077109262564001871277059706108367313589321615748138854508456535247580012126390788873947489117807594382598700187692624447536527523728355449816279090461996460628420331839194768111568748572596786640711524420741796425424440609856732032380904704425816175977279394285531511071351768055627222780741524899709443475460651698783954839631841375597401131908407971816072471117922299238459534673326218536985387495933675701786111453710937877707823006865049145951499219894121978923496799109379071705911576324331489626095579563652821340522966149819056074267178864846872599916133419088023379176993077394846399368967225218323075122872594655961747701939252515726052715856874234515596362441448553926714743354783418730772484061452356529335366668048242349191448419248449992026137540316219915168540151424682238103062772176534011222684408517082389513452170792332898818245239814334558972990968188422331763347543251154313363248665565701102488553655261027779188336420264514537829481621421608193300722650777087944225858367157354416210632258690882649828418026955026308346462751795247477833183358546968240917635108902510532118514710746934200929736736756948809513029471816012598209802595689484580402291938560284846096139082411195196198012938410168024656189103234387617901530823120246217531560143665139128114997824611702835359774266235886936563050128378973390082416625925729708966592296387628678220577729454939430685885260523298992226450980810923462962147184810744283497982418884478893630809677513996133891065574063206359602026693492193089061999631344031385352134274910482816983866343192568222404428011230197335442182534484257380505026803413678847906926754428873236748821158688927064185878690303142981490850236377547426467799392408883902499996797121601546144184837751764797058492277053761475743574297357737973106225368163377068126284983429925608595113289955409929191730095216401982328514992631242275559930189225444607659254214066262054471837249419350571667472013960432373298421447106617876442788944935340298988137764716530753431591954907316490967738840842707314213346980721224336186627585190268534648836741998011706637132173492317787345687859212880009668268326768649809135906784157938750442729695305582010593163145868525167967012710532518757616436695275388418484160221183147786703718368704530557139420734449829558119590916095120610219332932947251407961348484911422314453197025175751219161251601632838981402987577202794170367885709936814220447447149224395691420030135860729051808088848039537953267689038503656748870815990803863827800080235928576806601776823481301132468420439135180150839502910385908587488314258413987886301069659344518337639530055205375381354213204050809152840588286788241381988634576439342137212946131823891748620818306995988040699682161322464703345059163620186872459755481617288393495037330469220753774231283633006001686105627344209681607889688529531022936637341732358797563437686969427642363786296535787454032274435049022352351533020639810084431214033640715184810481199304478625883996768284332302754770986679221527683432716163087855899110987909622762951006403138017761935827701200303528796797366619137162472886205234336957413236164198751533511734152537153106478941691016506550392950516165038507510267214958371826252694446945236113898771139932821123179131316890020697618842244958195260677626238101501531562823553650861232702646396330942535898981543861006515688933483594601704846324603710373269904470518368955636793734595650875937355846991056257908741843208371966660477517745942524275750330577048356702436307111541510624294371525030912435276150198579353964378319385036160178885702348876590155801155373258678239234688478731324895166903262076927961396954337436849120110005131440947499868742345349090006758078444027388271543440947540460747184894333908966215514626050652928533596075427911173137067434400801289511379496969937904741163094965877756801190528183827958774251017965430743105194491565944761944073608542161571060611905583723431628772305908167703710678092522021567116471336551545574927307604529091320422850193603055351823782509407462448469392405535672309216823382582575152154241689706112057847966427250265146112673162853572749511293301314541294865379599701974812757739004324362567575385875734192136645918267171852847068899138769781717291547694159348977173877456840255839701796247622667383351135998200226547089061752235962038900291678680543244985894728447373617429014827426263365471157628307480496026307158925044794828001815442971728911748432626120171375443397522373942490656760641385307456702582536550868328315534571172879510771674414656283835240779032470887089224080887047227581267965233868823071492201224564712979114951246591669050422475614271032745009975182654436552527291821194219189128634400132484396538967566101583421259824591619830083564050424367683011341102229519006461563716954001005368741249706246820797600378670465672114266485981634685430493715073875837851739223244709453398014419391847608076024360296561746183235903370813349607163865771824450241295445439046803763879845435069344581087827765292777889907777472365008752246290677375465690454807346348429316064755515591512220467450629818426716493426812195858870123198372421540183987905197345760174192435439281115900706268106549252940151091232602293553488570080538390380162196938869099681966761819131856552764617326078523918697901503724625562396601337071295112662041217379125841217250676612099537963665344313689473968483969502119978524432205637195809711378231318263576816274674650318475052901936062036495821323977375143160375842713250046260106847934927611641929320055287561147452549040813490694302333335015365612091204111203508997989519600648369656371362921238150830110554262808431181211598555267567517222501780312182247299709309842780786340599221622810571153623396109350505696457083454057641222086835808648879627006964742907103717630741446116940431497905080645014235028776488930995908162380654395916942510069092630870254273793997341943186504605247752540206631661420647479151175261955897272745612076667770746276261659750387462727727989598043355499734840296314267309274528218909667086580554103515010936970380098031745379258948996955631773607208688867616573411708792612732003236182057121348543846181555863369767424174859112377666678339489431787812384116954994158916413968575463068503339698213721896586264507525836180117274437098819769589710012735205705711552572011350096994844586200882491126751678980339446028196896343816088208238820785058233294090620280075982408038257423738890985612000743905255010785930111547900470540945651314978968922576436940734213940681869036497400012298626699755396418283271366445752320307880593361050432082424198682026782225437998800055622755968174410805535763276633126214921749414668169175945558059764882032115942256323554435988712719841616666562561924863757000113891080675968839847553576058233481486963587803664206723762990453624903139925171385167364454931107172147574438847787095777271932351855375093381926556243431874573390499361661381073350457258099692211098045987207361053194247911890077683220346178788295143218184603555729556569562062717107845505189103148604706468016386566355531787383956903649638852308943033078579635875881500400493823954362114238290751493309723700120193056093264656875850212807490763877397741925100400858827388741345889972146996192449585308313200816354932899282370002223283106376806020203541436823607652127605980590386712467121600804752563522993177157303160578899068212353486506639387544890163513558270970254836836210228388632556456442155737757502384215084571216688787967805592150108968020268540033130068168490354826101070644779090623860218759557495997000383155228351564837784559026563449670594528391040558537912350463079569306335367720348749694421271527181944958615273556641752736696513134823378323920477155212373280563073100716120387969077566015305542233330933545234506307588348569952436048599877886116933558517510169940223863129286082246182720011875481515533258923376648183496863651169248029528969528409275210223936017391472172301530122454598908755232129123326463476804272546006971624063893060156603256309484825221802853488740166105158019213363496977122252497349009665517183253230495991330011505130280082191139516758140773041955687838537272728311766320321589105043466443696636770589905075838497958838267542804026500968111991789155812230080533715298152789927302367294260563907187603627393736737971028484939370408836175331512011513935946362638030187736930862522921604058462345413686215386680178837918453639763287240895986017721074650021435100155915932917719161916653037000362630573935640217862376200077161311293634216564623715804567823420264020052418475095834510708531533011128222768641632421139112399050987461180312174957936832954418776218750491566029840344142382098953085224519174192816482776329003437594633632760747312395853604068443232108717280645683055001943276424025919852050449595050631327288647761525145076028436401287006918755333397951649208572155376506852003347482245940792631595143507846102432445953976059425117784286926408892835713428510958874011308741926248851108509938608045815392937058998922517640263779651198003836845573051155825821736270539206354907753179422427211992084835044966748765716411790157606548696182033983295698549727697588987183350421993100091755077281611669740621866530555209011104473631699023449695666445643538765336614972911243366047194503330607245768552732369608536108103636356614243148167714422645879210191100058706534315762292091676461351104261747478864932705708967359481020272930358698662230006367496760418656788040869760349485529305912972869639248274358067958743316251494156802219100157417154271686203649042917467267375380653092247678601335318947062206688982540108817547516950830819260519970881071873937931648194928428512870821043637040619896830080154450684852618633991989346872269226956889730456008091045852188429686162096339675539959567546690199675284746272163898433750892285649790725061409239698661637355948054650577922806806948038959897081312041315368938206593837309620711740784485945373708298645158679301634557611069208689344710620276764751883094909893544887075279442512028190713531992529823258696720657972309989527403032362641373234622583528857911931749893463991511187664973186804729190556825939159073019952046117443670877981316902462556567401250382447206481747208862130999870475300885129557383893314003109381475243167586350707152476733045267900098068736220820986316845657747102794715407841896085516427473130423925781150790556839610935812351207867250475775785996481893848884384136090435812291433729397489761512776841351446079130349512316388305191766563982811645820057867658291869399963578629466409798577095284545909777964487962471654695675272397703916972356123881117669806181036808515615967032660464189545021424532056425730631957843453361842539909943522705006638638484589557219868957690582056068144175332131411045291796626071532132664571639884664095347838631734046819145516768842533683518983491274514432014600490706550664931710676330306461127357759772936895565205620464872137040143230763710475682080612832753828495004140150182020460950002080487592306372299996198025873263050126024249674241225468176088923661435144572430590852440382086824998498268078502123872574122636041243874669179255457767466707278165800438400717669938537365949855778299030672274752448657224344738078078399912030933792137641256463335811281373147145810740118111967240472048062384429874015582887027990378319065411775978949051426686492241858249498218453142816457264685866960614079925527832176498150827403103270720101850941783708458262453966040183814251851821296040569254459912852612971824784826400797018521346814854172840619649257324310822283396295713419327262735253507161010303849032980999771751416490816877631715093542865750726552545775361047006116701220809352440920097222428201296956727808900599871811755543338039026648251449245368288618253866564758865943315457693967776757360320511290072723620674981365878411746135037876472539914991024180666554820175294038660088641812926091947042428416400514442764250288907437421398879643905456701200944413492225088289914965499584596599178236617330607720775459085560278210914773983922829272799745706111479336496869719830653760608995813036538685802540984327395860835039549601804457586297936734751737412822902412766640152892188341491527049638929254257629844162411894717651008496147163934050685500693919606141445819803539431554255597715981483728945937499492695839982785350271044790722203073518312322073911660591175315824064086493293164916409606445288638231491043343158959120457160387364615742272529583912034902261473500695052488426895862113619960137501813511625640878732389936917915989356748648521990481899775276237515876475510074315999646210769383382091634164683384967142637488611353701252952382687529324820129995476110101345788056141447296258950082983909467762740225876207233205686952357012996279053861629852119936431201137401273044052028178500864901049592759062780084051373554589307198617477402567722767531485174803464287842963357479953781157964041225429199488559542547218823458873394846413637946650294964481664370849591363153778117874441069373873753925515567571091977875755688001774976843177070514069340262670662890133887686906191408659949564094790805940276229110878565089982704262679726790125550346833789970283479217388925384623602636507681899449884627796809637799206078823216563169308186395991177904304993733300576751843521583246577063238115287518255718909661601338906783713626720011898469737611236800610215363802784887964734012045356894200715343703769247563911418373588177700856628826636725474565571863205637168345000659503892519243710242829035758799609606227792946007419450793232926149567932571866828067391244187066650113562917839663943574815715392353109672409468672717023053193081329402396846310304826804094928158033967927812436922183943975098667127145830991941005116124970422845988623225048236472751227454505797905342785732865340209502894487782779123670502915142101441614533894388234749083633818576297088289025271972968463364847630971305980725825911651910064888346040574118794315026993620506395240226800900891118609858278373496205402570697176881683363571312179192924473038525419510913827901045129801371401138073822014391317191425561994933641300455047553926956785682276269152254989250716461754427262451695453939053661083117761680400008884546174790382621933751217025803560907634720296172436243504657056590715103423724488459715991072138803164915023205058442187601230821084533115022995664319159048607956851650058389997359173056999628962252804821777728091838287547085604064390779090382037914579123105275990850500417563830348143433762692544060321413007502340942712478857752605016645377824763030416605039909683282066743154068778556571267211842617979599422095438347925359465492634068391981924017503716179047551540596731006222288493952604313848790173688674429763207946317431655463779876930856352288539084009859405323423477358323326332257513042325673593420665793644505317824805304527898119389242863333933799220266118004965539445097157846475417666002983514379338153570112540545150876150582705789891255841774420956346815412066160186521103440253343103065393119158621457904594715447738705604284751507297235281750367199347193275972886290001472314675104157644421228179212886764906270486981498011410608794344840429022653130099971036621796236704870933447563483989235062829273699113721185363200798887227723597160556179945130807265431198816032326235962491434347076504476385285622201760557385741361658110514406684073823066676614514878274650986633403979355221231160812702162629187446196847788931762829213352391266376168051961907519016651216588740457463254981783157394797303521308957883059752882830389899670210666596506932029787843514576053407014322983340487003151798734168853783246819931387660973270853345265923588063477029511334766271879483849559959127105653604672154942696041913851170126760211861734889748771493939810403848967663219305786668162189616870569281472606869630361173560519717259795166369905975951671538319287043770995775602859953646873719999800296948461315007386415245370177593737034239703519613058413164749155782462091526900061626655649721883159520740456151826319785248577198752828121077157326572612686799404849285507475933934081317253326758136906751660595067864300359170658687463416416330783780882294919885023892477699414204850470281012146498095598375557214170052674328761994676258942111849654487377204717233651726887002196075128745807398314240956965366555276963818525926319970233672793262482837125102583188985151977475934012487272478738794995033265207828192918830557478066237300381900125960377625051438065617142478867083546713361306553068554817736456743808584219397961272889425647973802965563148979614344950780053167232352117254781294133298843777060614136465423949023398338654921613392138467765415579312969922782233305981947449627515649102198331047078995973551874897879935074995897273384780595768631870710323626473978502267525215028852975210486411059521650727524388652171887610679365759235030285441465643540481676835454637379696156137322375311763682256406631673127840941311003449700942845540110340375259621654621225233255500574664274175394205895351919874714091548257471803306180976133647576374432956767452706680041972849727747838136557577131438956911797273590639218976950986581672114819134771005439296533021745400129891047748549255643825455448380666792547054974154380366005878642439256101952986579788514976056034470193263452456874324738019756496358388438063680899460070038437470283932178039384101472793966958944030934097208586853410853955728067287956942622925807528216293459080754218112745955117599289044012485351848564023599886150143988646062044572979440099054508159155121153506460105785650072373227184428921491586616874784697084776119745881410950239047675000248769375659615668674343735296202568971400703843936145028726928042962220615202345368296174991066741290188021076347332122641645132449731481661174408356667465140696994518364278480606055625594981730400959629581415576515649012653324430398864697986827981668182258214791186706351157936294918668323085523827246856885421529965306204154505358879772289302527191718333028263044115717662036018363185621934849433875611302887357627429276514068819171563430163481168512333888114373249247851554856533827406976768361969885463720805077317530945386562001119371627926719761010850281317119986201684092966949828780925989000848873359813100426759490144460031873222304168421081582151202447944862784005875159202942063195775926488737570583215782905114000598627156361455299417916937557447172821851483663548796270615532101955906735089300481247078156090069832994747255783061662216032111687456772041050347207990929037012162650094442518915466415963717844359525012513009316082679893740604737112934683552880427236256465309418613636895615611552221987948626791750440734990548624553260384339240200837624723562717050452987619383404914536371277415660983125773210174940125863452336129188213863238104715772046330233070928423633844074906144324898161712661937970925006316338797576742958724293472582870083108104085340090890775812512151851975444521160292490273711690284738352180430910043073570729121620710763008159486430671540063218794489211168304668462282652340865632033228216155642116619401737595856519885514048978012669875559741781540719618017193401025123032968802954911304267034066808713444231350376062314214469554179824205230211669549840887307430408937270861269353296192137495993813172559184634461758794925447747163471200762588746855120749385613661313443124029789071331364268420514085044273817359277400164580811157320721267911269362699568985434309821722055792462193320561155953866019572804015617437337351755005513370049636875499761719325850629992650604356490625379655023003744490276095379765943227842430707301392322531645585838275531675703064115327258410612454717682691282519298282634334944178982827857630641007190798160086294998996028700498148430918070482058102012590045255140301232255843449067386451107562572696832133113644424189837681110641180480589501983047100939520968001018339461911794763279952373950036280677209097469190993019661210724024399263018732742515829420792103905763274067934474307617979269775902872035503760607820546262025096377263393711656657539110540181903978695965747099054716596911962413068121976768731038918339923816071801479338663386163403632305799549670659265954182565565579623888285442803213271272145580596533797082579449194612478830417117797176506115676498038357900774663117503225563278582873004627265865217513843709621030906836578849044723182531851271846870172739760611719891545376700446842894311043969639199404874722057452479505076969028093027326695670586992791998567471830342358337002334295053707690684916787416445962647689183960755855473298054140375463643982034385262065732274216788941683177433910773230408468828694481752302227899112270600805027956517579866814405914616964153628516750374670818730279296788800758116383968610128008051439686907097652014418574357683734336189845098645279022799108602504098737232934585846813931989156367216994456579165537900853316432454909305007198636379888223931045564190751026738819605390616367745636423762097100367913930132037579703814374329489061433944652764811025243957836658569458656868885197762983532941903533188409506673999621421796531024516245566497042297890454236167296438870399188290674274544199139327304629256931195024825484701328917654582536184881562957417002059785751121138285950502994101580254408101852961229000518470811784830340703457944246923461881784234681704440846440462504657440112899868154916208474891467508405893781082981961683020418929166981935305849746180970445555760785415322520891036585976153773716498700891963128356368539026279092518809130134598645526976477672179584519185452007889956292376640494859384752463109553813764866929609814952940904272928224160617985317430858122998229013998784538003686041099265250036509898543394868453180189725545454474430941417475088759189934717967846027305880527598855892872246370366228754963697848973019183818868838242672127150730582603855818450186816768103298046645484952107972771474811189503373288261435696916453595151382750782301064346255283328854584524045672156369945671126465205854695314330816518084961541478751277858189448171792838782773953626476143653450707933158547270206204313555058397155030816002757512597983206933641155565948757785476683455293433473257434375661018510478303337815729697898007992372673590225668978709509177682049609648720862681697017983028251439554700600536587468604090241477280534574588443381195238465871882680187984681931651976840046467595348090979190381904066373888220408999765838222412706232382867807005896953380453578956036680895286353084866857864173979668758156574623583154156902261075075975244547744074135605714030580576899575237795654390611122007567257649648835550941357438542947415122006159917446614189125212677004254786303483600088649574372817101408628972748783334988502782207826730224728530020455818951466461884437693256009781540363153875270375323489487655466774932790266446105436181273109065030562921776545458571891430729367006932878231409196655836784992690317235807279688750339140960463859903333577566336167648386116396804780838334742478937169110769447806621612290341237598165058999848282816064123803481986390383419524287663898599926956938904514874724280315287247777014196471055774273457315945851884952311623323631493178101507087641358529815077776263236749396299934092695016905226689162950540988001218530653709724510291303508467995215615092112833717456107170988492717874184380322447144496517961502526924354044659938943743432447697571925357444049131606343167194236994448719711477665819526111172221408820078683056058655863970945894860883899020702251679998911492326846129781860313750676618441892253186310357266767472951475494375047319746923213740839669301227923031782320602269239949668825929279195581096089378193821163954019833154515951682974615303645109740247569563536800564523888138264795155397566531538468595540008264679432756663048017058378881095030591463033664337473301913353280406017483143299756449776874023760313379994135988667339958754055676729997434026096518366243905069904446920386970711426688701890954469600679495696734184807884426600043500960843593369523065014565701835770462073244179058046888200828023371983664789916073602537484050516639782189363842914306324915005408699272625512861203044982211221229707671079024923372097894073790559595174221636465775591750579060538159350488694670862567393593564580650370302350666394524213013680863972403931306885255901129074546793429414018800089677937285304007814263143366862509605211654904166484814019903859652991519805059912699097435397056943637769253887279027001959587530868088933053361475825526706637643964755032217286001838010366847986701697494959273806941189541671874589831690124439997158001738293401637463262932901567364021572216842264097922993757566898099104061412343998130590595325521562338372650413491984547637944631754557734223575172002814588803934962601862142756510385772877820791336572949886151609642497488796172654783511306200149020697189344973306558567936651312615541895233411232609795106713012966114100510862345613017540991127951948541956766735092286540082035329555158861077317364342511174649904814559784422661955898939907283406420783605031321863814332622389315587170774503238639963408347314987704497535225723400627375265319115803846957965926506027650194242787543485220595062897716778639964328249125757481777297676585343881091742914171730070247639928419152058849429184078680598906350918692584152812474738579250264167151482069231380313879010528475689204747196810003784173634751916535096210186021051622769594443775701530552138712388680695516517035852981997997922399970855746463236460670527177627576290713215799691297071049141328025161259506424013079106782050222036953938222142122124502056590891627299518409658881592905225321691798110361736010258632974958880363887754320342901417014532332099056680573268315849293496564346575924393190650672384433267147599323443845169860357081516618082607275669067374115984744524627930143668412780362214438241590381832102134473187056619885005837686675153544383590681861212460806391551520306104679386366426561616764294911769105090895714253236441407402221435602517722634951456602581370124484308084793083229009203902886906536473877143275607148320190207503539846713272252598256110115273310530672859249008902648929434279285902994781837617085303567880677254406967327292881119529403073438934176331309161575479035815258017953949185848593427612137501811392383978642870008715828787020019273131589386019907107712114892999062451800332329626692847389055802692601687775072109920494675262902459796917998369281762356786340840773949645290266756034997848708629691180440027517005981602749634503749386644486505872636708332331002965577726345997357772886039168120781989499248364656914850836518684557704823383879002158433159853718709714389931564086938372783336309581206519352641751215875594831184424803176744429588762937265926857365828959919062307363952687732488686386270083972253294439745974785857584999855771234121550018700689672164341855337687502646886414665485397195131937372253923053554959147743505178189664966975452757355176562065128514592362239283418666976654714646139091462381915550477447228606821057589428516104986522576088271720069049771016378892932081344760903678929385567608821887843864275518702207959478619090513610849247545040794614865147072765822904217968165482235628536314504997000036448896164848657757906254036315159118178091155424306102203960487027449325644370741937805040438964399215512982184889632844013221671038693186535299527003909167662846806292758183370980519462386630349956852724937739436118304057045998866017706066066742338480665393472782379104960548903757006023893709078833878991740721570119025542170378273448233557318534039170243901142643692368433008450530292907468675150254994920489913970400467507157920271758733577047450395814301260048851130459536202584100733434433532975007394054136528251206000317003672445233365802641517435391032069781726593226909808273206294046134118390362254831337491914860451452295447530048356293535942764849333944807414142039256992899080106185564701391446260099043053263158305655433605105645095638568217650780673915611262729994907745109124995509538057513436367784839378926418635546421173926326670802062632409819017516930441501581235874570580831781627537431779970753156088248029431938233017928755790510896889746755002492772272581510336296395236430167908842758380610576607507420811327149402399734807077438645827174733747983229592837554538574527872437267353299828363839813010914944690765523453381928059823923394694585363212998773560092475608192382490018168316194442647219064943996834829975174907580817955936184930472694370728357977423820332500394429234040952614801051539728310693463772622285684703422234581541402496709581090397568388446242524468958300065371133261862395294021986247834127738679288725663027756226739418855096786689212046933196639369530072181155835573824657621947817441540547920162109934265366337364951064398072368846339601957156318740505878757524794908969777372840286587446969673803379898853720749231573731961262088692416881657751427366100033454729667549052453149674593312515176182129058607402605272092521330385753212024769002543374687536497281685457834862747236276255149532201009724423603230399963394576610857568181846870382262262822417910823290060772931573073648141998970134841724613145296611607734413822575552091240625266282412147184868601705406825373970960278191949900347619128245069752987650534315622816130462396577616663395934092612199897968914913339279038973751048477714467310740114482953537463361331820939128550271523762355922769538729127675421402184824230625919173853559927410715651714072869377219977212357526759972764166548795219674434566442107508168136475829478232520306726247162333316560215808259612968686029186392480471735363098077970005065177850726590347747673483545801325086928103510217541168318947411306598427633013488819715802312599494114770693491197622293134591747925881596367197303178377782092375936382049094213342225161203710728029185317006884290706612968043968677050588890722217354073580736124027987665281301330523251853451065020985044944200959070440383036921154615512666962478061575949332346902236420602571995988160740687080564011493097772133820192352549465001360097772973633454924316469910562757192490740250659041276285740247599913534701846230773156698518876887925917110988428904520242721047370098233296880392953164743176255092503267949678651126064111834709610024592948292710426566974652163095787198876443112544731289160918928376679690226096994075002692828210356624725119374370119758799634654980633923259234310521797180197800587497530755829959374774753949560362551619825367305602740696031473362898258616386593334407500022713745689727739426354172707496260639740088761695678968829945439079411106474074877596054481113777191179294362505454233199173106458355741134162001749456867996184889119137430911862264062006156553077692796064605905117147326464330059639767379106102003768524098458597342813932735468303072324908566574606652027634927440171557524135373856667564234246610600097494724180197886936196268256253875817269404725129348733312260654116928606238064689197585114656883746809371387149747979804508931302409887332400054039667014940450992630293176364360425692091271398384843431417661190140014227264832631448908648296196161561480204292883195541959977514762991997297848998032495369732346783465913432853613200755764843117201370025308820109027795079932571211065724821799291004857440978353097005280809795349684445529072378780211064122158848487444522686681326565577268506568512171801301777691565808684465855623252539148539522693488241489639234448993230952525996411209111933173994325112323053511333342056253449921758951990518863316794782508701176339874551453756393815902188793148599086644321133239269758090398928372124107168819774126098757749390700616406844114470350518082714791022606077553200887106815115970937972378497617480824254872453166103184547857112348732343753795107649630027972709263126469689769745271956295290352470129757230717839435127962397151761573143348190305113110281205866872142698873703870782187207196535338133528867522203005918716852142803200280427300005419349941053720359928602024443760270046651187260599060910271157167323612751643855806704634552881534075698770779198454052944206448328084233855144447290028682727616846713513262080274087137117859820600735100783015686089484570818958229790597932675984938405362276454321705341008989605762198286693159110099924991059920269192223819572728378961754627153911599471475467772633375823900669629029326737321167636403038208350675850322844436386296756109852010666817742139909122686785745665870677763805635849890706217049851757513699319123106930214940952948609541307042117259236859954033920107087461598042848451636491574427356180653696427855898422230061146117396134011693957125382676446119398794339356407651372276255043138605041667804254633636682024077660947633582022714313854634273372232120517052859040389879617573490916509367329073648556242028248000604137413247456726445421305703934864890294060861648957372480866737928666637624019416215117053167301332753438770381707953551697345353695229884242209881142262624305496893566031379867602108513323686888210638598684432304703522548980644153765670842061553207846428222601189864501365704560341021978167809673769303159359827108808523456502782339776453617641427202411052830566219588268172159919542841501358713446127092874927610065741641799812057791937136263326371543750267840673642902431246634911411116455316383524196410141939053137168341859431700131300027983888092503361585023167988141089304189509407586930628470950917870289922894864240389400944103441145055366456040963591247386134367451355533546921466540499603881600571176593458968052196187735805646227228752729072259955460525353759236840564183948721298217598577577300841462432176503860293524372449795859449847881960573206248721816802819466471034140159487051003829568951782735085922721614739367063391963053959794076039777049664271594350333322043473087640024846965438035608310265965109422510836658005752544526537327060816443957718297937235607325526092305106114875114473280158682102476395360201828449558609885881489725201682130330167036727580037706354117890961321111802013580880708792326297882700410566048529700713344098172734441034477429113635043366184237209649959792099982745502612950071258458009850691279832191522946026319061658053964758475823802066940128137787229807430015529286189563384394369931828020341905391087459595107286785689622969562106948747791641990289361298628079762564137033390632176982170003667551154440150211966887971588090176175762856736182645105894507176020098771590495308591048451980693230107842065404391605297792040977795767320486764316909798498920027226032336332906850719147007113340995318397847212191473004882319305096932713462571190891214346504256068282385426274180919638710338042184773228747988394032562845750709797245384510093213159964063347140918383187547453435720952865979327094638266322468324234821365728864475464876513275720616081880104444133404398178302357207425215509568012629488982849846770084196550923112120943013702241014982600829969820302674185640463374203628564387643094360059131131860583406106120310716919679978979191178477867490107066385018373486135341676037847664994929823597411433044523684548019827719922579879493067166748280550719019190065124353868395598031973031089387063843123102044783659606955304468603645548571122025358756665183779203345256848649896081718207706720757611148814692389298655072405609767640329897668639063523904182162051025880003977032978500919940104419864780514466663777101899141877854963880040080892564175448408861743467459343368502751757009509008563503561006219574458706756114408042372664862390589932681850985588668233964585328744433240407093831872675188973944663604136867623733966677098245252795157990255256896610983783497094436885187571218331159266044519220119139800165694087326523045724791142651834316184934813257687223124979512156796775165933768017863397701505075572288388929263827503542224078382873492154601162443227909298823292244673409980345730960308997907970772328839921025109337845500431320697179938570611401814953219892821404329939361758100320936899424981576499327586804355536147032908971624952157063574816923852113730302290261900370068932946854406434575486127299244404428429762713507010201178849444278369325301015418796094234338032420035450448448217405045966340494949510639766577516423367407233441752791815891891367310327006131475788448317482403610030123418435673942085404741611521412454619547203519427289647241960782095340551249803884447396787460546792223752174743888598498733628841227139217438630591322244183579559280298195319233610161909350841450771376480312663061697540813112843071807577595012053745838669037296926731354493829665938669823003649056897859109806954895912999814144913847458789281257533245463154986786358201581221008779727784828324081293327129869110085616407219879154050192443892069445526002863441779997474915846332405948670706619486117056922083645129192702482210709302742450134908784654819991183283746664550887470357529575590276252751050517585819206605454600570692194242181702910409726654227549172756040602097446224252910909649161973172813700904612462245746721494805293108860993059327514979754976470439518835257567966700302009757862102807286095385960186680497724480826063977610674242233811351282142756153096761701905104215841629596684155253013376411234272910153137723200223701221531421847407670166311543489214949130114950933026553711643449755568788133372667603533370090631117512147073736509715958940577625797604297138264796163505283733865390416580450437796819234933809440472010883942440504771055317837179951573005720481694512936588525198854071016398827712588056364281702285073609401415508413507873428513618400847629617478306040656237688586944561617003230698748804008177021445101903847881669329485442154365068198009601539614009052147506634890452974484820783337012019242355923162710775227872474837805429163180565041739113732658652828224466261416986722280748671036119902201913410925360453983941761881680880902926765892679822508908083095163105456969060835111579970338031224035988616092004106513282022467416062277342494746882226520848559800834021061852387947478072031344850665551721920596809025411917208107045737238686971077692138241216774487600799200245181191984304583059927349088652353735608097562675073111009584675298591473792814325857107997208935530218679616415711346743498296578709552887600391128788746876154546715163381833216458973302401007113864339973687609273270316895451223547694788517773452804169495822478348001072773452508915138440949593297804214047481726204118383713787267340201994639645572593593229885190161839593535219705212968212575930185226204891440179974249730024149175890164436683214737260276600990698114852034076602358320778182665260946334159454438393186712237455617728767066559226829476454603766150275722061368209500682134747197940964650529943912343178762896505925732844126067684892965565017588146397797695430138188644563193246376495521400367464599544641943339859058718203073018187873268532377954701844645982589654802154399369823842428029165424653359302494983571393016511728283741498245006095322773318817639396660820663865670938003845039363882950502257057084489652502127257351759505706427736269853039161076732845859903473162446962695091756222295647449744843027067050905121790095923165170730777654272086017133611191144079172443833838905583498107703268096415143027055702761600615700895849749283248173355702474643391659857525123843388921024541875400314630669523430333903302624920021828921805283210919125213887875096650210784848062077321902792569390691323249400148518916383612335543150211590677873769230698432238137400450316284096887709520854199908529559397517300528446949173460049593100592281528936902303627902532125945434454613395075090607135892339964451223424095935333356729168767687277726590050170466078303553341955271660581523811288817529398268581801487335244180913280175440742988163872048562068393939310518448247221466897504178781635906238226184043422650783796706592258886741301378295663369040194971900993342970934094005699829418183238687803963892871478105647296632660229809056697021636667361425996074946965410828441010271713226924978550989304835864682791965308383716155421981164932658958048852170617057366737376194394882406698921416714513230325793629002604438782697753977221642101144703049604767959489820456631244579058935075709704586936608066700974696715838534862209752741646926122674249895210790738506709814873478935645532477496314343920789132736821850873694755062019139862250136265681711023331564756217553291653123591353296327307026926565716456518049609436689967653030203701944582858809749399250539685173711991817973119722612492264164406536202957955105820628578927776804983576821139862073130874032101734176812568373226234495236965745940239942447513841528754864087075835873040275951804619067859459832178959178459547869722436664135665839155104557215605726374637249970563940538219860141140792184701402777311371833613619510635050493920463616141415648755176875545761618191976894079267766042686156128259708979742497573559342777359906811461981539060963908788465886944369321149056301828670267209659166198131686619425438140974783859598313431263935709036217758036585704297017724532345802344502737833933279448466044649273171212373407527640139494104040443737290491815182519515348933105358447716175167158545024583840794952324005271803312086123784390384998337372599212680425319317359701166552787883827230283319993065979899216684910118700993860693762778336761608507906293810485457402481589666067721392864611162479290783901265636893594339209442602610891219298564075658520729141052310102324535971025574066146240749067009371191312108072610086896497175616961695704065967759902763779387399840929250622613835727594603049473730131989125767662457850290243606936443339281422976482884136385168308449511612516710190284441758456684985148684859865326189724654097614401750271432150023210595424464415015873697405744938116663945988405893119198139739561844748979048531583824027551503756495016452136829379633800467957961124187516428670713461980783153751457517219693865854464152453353155078529615709349539567954529929767378059104359760510390521451061535613499678359534884272461006710409442654092216132566707109281057884468159281650311943582083475386645645621501504341008525029232186084283470540616993808581070315877604918226341404972539691312462752065744266915830274666020397265124836555666537644185475604883879525990223172077093679452193509435765959560370976726942675349158843251015635760892616789460891795887351758482138130383561960114189530311271990570501769092408391875660720717951319222582827634907840163199175012594502338869136965758501150576298895759930366103510338939523748182436639521050501631710114133541164050707808797660515902718868307764501681902942176449536712825066716193588101281130212548326716797656537585957187268015069186010559434775354282497769333346025045510721686195804334002997580315562056552592524027042796998916444324042635559695868640009665925384754729029593316526819109627875902225358918200903567528576538758384178902494843398737876784618754884770492009855231853247757344511275538432838238007556349939289605861476735098557638583782968929242623200676612257193260612372301776511810582108929227942359402684779997861543848816811828672582075840997464469478018028304289744696861162068212995449724055787660907568384480375155413973536915193058810358142302839778627218099338225124421922618431461210715338239627977692378189568390615745137530561535492554709500615232910487428913634177373907561421234747347009448403937772530667092124053431799724713689667525997524513610200843895141887045532039680087718648036068053031242514669877627851725306755526791586229227303006045853356631314515871430820706907840804249315802762929602769094408527123701138608418138916356802423443978776238641840853347978452999630293066638486713123696218045305682304722497779261549970804541512025154194709320429912414433814417670046148928630169808974223091278120464668311600399990660006280755436659927572023908953930844246615541249277106989245224333880191771253698895986699403439107403570048067190827192493339320871683987571552620476780952775933040685167494067609771117416456371129753024756607333308171192600402075132393105252838507144671483644160416937315913173390019209306556904038953770563373943214521736764936371593151242638227349478483898974201867895984876789407273478185949272502907473789759636117324860798288048275821245112846925285347171114386126040745852538993353625757354766122936015863431358739368462772908380350977329801569051050736587793430992232245078522125451044531644920063852129951316987535615104922048324185986663054065960247328514241822463235432271783123624645844089595070541644928980714176570091990021474132009148541862151730590746769642778038739268831812167185099453970687240219456449389649759678253051365655111718873711151661083518836820100710547030977034765767565737449348548877297667659133651818078717809774251332857715808574853955107623321190100829481851400403798035711794521224938406698556140797856538883498071937533053257221732952736346158533810877912621389215792298157811741569156565641749011842464679375765866228462087232509608863175886411082207799216009178216001359692739131346149575806441315036929973923890952756585107764188341587046842915915070599320914445996314907949746176687197298804023258056721495628557276391589492901375342045360905930433116193745040030457209532970052513975368192360936898149195321133874597046485634766164235408246256003373503464220799323038333662852868811132332803343640230635576900748932934016351949990681172812171861664094982264781568086597446258918191803524599801456063091572803491980922034276591790656810644612561881246056857465837146801707472134083059156561471358499529123391469060410009575180182873808163788555673249633247732561410722610291018284417029996411912788704004496678718285879341817037852106266427042092517582235157056475529591479761928877566690983234499938368654322583266593596655847499518025041748238448203192094148340190063617539149873587855153561716573474314631510872375728529897480762226331540039789276063551477885028628025534721157593680402625095805157386005351518213860250968343610488794244178435365018377423786373376552781759420642423823934902811591765663013352991158601834874805949907154904212109472565467423869503418581688147872195463005611069091603309563865127418617430014833598811420748749026800922233826294183389703706191715011176251427039890830917320161561567014057719012580199155536719991085219917538225507721578553439336450265697545683413246340489764637399402735999554399443462777504961886317051737429763888296689788362020559904806929104125854609376165276438664639655141020698834656151528344426654020778554327456605991942295148907632888032504363360851778936854597489987262139424284640418177038565932599955676794640825112997309252461481255536646843832615407779011990336832453244602525611318149544158935864817325015722446782693606794542453555729192818688351159687294282342274020130795813622664983865969043169544947426232907016011187262229098442359153840297363140533993098350168208728983123989645339727945694727486388372135553069791244018816625570726496205878756411727941136199725275253540999169886953755979048917010350621327736376354896379518082115907524896040759841152479078533829831992310372560114507117714892466896581284493185647695149495059153942516258454611019688931549654290546746094816402129897341114759605128263530752701836476449226601348195958411737293265987097436542929893616554132332926711773814868405696742512722560432964586882742865870957319007633081358245247319464735023952026178333194691049755654157272929013162893887563105773384523660884579298496349679811829053844560223741482514999005239157080412309861486347074125604257358916729753762324618043296610249973469037113270176989762215654617451974900113652820851265181309810732831414708965531425312416443217701087679598074243588361420756747439320424285461631437005991132182992136630959148106128256011315394150628677606807818707215270097080281911679739129654343964914647489529705345596329398374870800021585420097633900665258566945086162076089136796953469913219508685378934161184623947696133623027258359408004888980801264304493560378124328940163158534848519104449483695756832141070926911583627114651671170601531882833228029493670259818586390125723262128918952282242782284271689795454573039344918172535041429441108041647143351351216886496103179854883643846243783089215934923797907994272891384234413022953289252920990478792827671428866775733215073073865936634584360129947205444620989920275971316659305549350570132135087532819126483297495495885540683287995953672465007750724267548276596148992711195750952041197214090202473216190631578010278241961661291765257853893082141088480678242232727526694877716447456421081032521799879973026681429386266786174635295941934195862232327350016268542511772370941758750911583871067668389191476327007870057801104962911651620019783182600981249841174968980514911358024295474676633645519776107348312615881930444746590614336358041333969284339581715184479300910113547182298819200628662831475451784002125171841052341599584951829724314431303060211991872940992266601963121338471732691815892099899019528248534062477368435083225399491545445447263374777322675008995350918220550902346385436852995748684855207553500869417542662681363558305180802947712778138553701194391452524205371512818867597679720455006570757453852954577589871393375700997904781831795344529253106645564933918338069793725499687825040164709670766315115210594582232602719324896135157388331393032004373880574956392470013792737639047429278937426127316169619234566546230519443470089702256699745170623642971498890940276769496039793596022084180605318877198227834896498252870866325343559522024757954482744274089745708316197434247412924821540454482697271363551133980012028769086053606643944854365244780466377414469227595451926017188682562177597939002896319188081802814606756738561567720062088065222330873300380404586073923580313855419374152871113981914983596426426131344913399716106606743013849864115577203685613526254701078258851099475660323994347453883385751753741539567772602249028467739558810349014902846023960707274352245325596960472460050462379866695757193624517134787052587072156821540370595732357665498794743608105940880849564151989498681662777354775447866283996160952626852833705230822788185421628165375351731186422768905249056672652079287100250269990011682664660286468840598760318660851648170912958690557167571585927553028945039677550512058742314696948575963058345724524721880824033477746501804375660459347343109927090690933915991716938985939976157625118358437085961912038729035732448343152048557955579197271594038752073940111335674915240463346903730517955681963536372187957367592031708897921818714753521431506151616623553860747120560224077426193164535463600013393638908281926543255060794169549647700630430140357889424723398915936525007013751677260851844206115487598782312812311586626018505587773969885023590844598253341468733526037441949268134409322342830381488340048078195441840947465851080249334014565463160488645671375682731346513124065528926478760491370039658299978826946415291331433490172315471232255146518828575651630155659121950960088788785953950189623068678974298071294519452292749304367233170366126416828894364259780368222947112528862399839589908602099500203519179019598009036285652481461984348138181848177773156588882285503520631850321209353216898662254160355364956980887648070576095108095360583654157413562069371494428077037568207573257936357539791611312593088141445259221212739613990385497000871002858315258481109031954000154591713873793369654523454698608938413806849242679922511553052978832629941649053069800047537277093649909796083887573387847603829431752929496122324159715910354060829002270175482410082575254922360935466282530558542782608249716543416675249524589393443254570064118581158722458619751416471508894153712703741608084448899008489309544614636217036343251190789231105356206683512955177735573952965882192097853953674039814110122422458200500408110891279796156724637343996551431705073522780292372396215204149388654283585032108205930930907468403805057433287811646245133558014656222094145430040739860942969604547465533972727869350865158774814771719307324071424426412618773574571321759664973249716953338928216740018572025615145049735825683067196657314370913606291062791821563543627416989734866355543514026161561170847272409025389849215602005086204823649364942604184893335100231619033354356262544377876345670307960428257862677349711631503405331936958678421795325849774269446102254889871028435045422638043252558771335213120024270384256352568120532802048306857739361911264580859333005317177809139292869152023909729757998620040474124010448684565989413294440433173050427712784916026826482307671479248196017078847548142080842191810880825741250289869203646563813241382061565292805526818629007836066631168543152519638507028417643895942333860286967380455758143030469228675205991074043096140537774456428864406942861455042798417987732801567140722149274218356685517900259326692659792887312840183087754098405744332097124830226830980099855254962729462196952589997006568789082747785026322698521481235280153044389825738662832675828274381867168138826033707705543835272931797118316739976534152380431714684928417918024887980681458071727180676872116192571200518276417955986965809926477392617469518925685598781000277291420651104773487502077376996672257716230656672715069406779005791422470614771992287225013354230238650844402747436037524020631524987256663286740035559303671109832153289800822508714643368914953910765252559710058475659871317270693774338741835490452174573938874920481794790973949496579120280959885326908682993628438800506636556151919078267298984625851067943311431293608647946915537745940077007125550094702891516277651443592081109006713220557581333535665732405793315915324359020259384821307846356131131494118503815584268771973654097451628120569400344396505577441384405070794650523537440175352215230904848237696889721055748239692177384509398825724276557390290425276920182586604323395337242761472549326619981486519098653162602483787929410404044283368540228937615527012665414798647697775748048686334399703613094183001373108030093388580792481358967428704625043204696396849484926345529016388922605832935239587826516941850884358535082296261920813866791212536224244410287102878182034864340037206112247444370302586391557269950073324376684718342783486967303798957739709849984882002854161534501628854787577612482963739443042996581451255712085969055001038311948898913069657335493528805360891719685088381164851394481217149373315779093557410056218058793058433148647623192790019114846082338632510298871183427796765820419769401982406756993933790900866369952725301372126826560672471774964905259543098862923724643313623683107423478284625857409990869539949615477113618914583211159171531563327356034321275611700916011179861478178830445912668857443322714823421727246078715205839808447461914420184155397536246486246336152005622899152395829218965481224841213899705698510302795752786169681327898564418477105929641251632554594064911566185563518817276766633241171412693253785270911368740201772316337311562939516893560506417734671019937334798656104635815890975583799025528220189713473936029207330854737149301167554879175270185455762969696863553610996441752499964580364704398812639881167709388845998938226352785362143703646314729895944688863307070467834419085195038575878287857190792940683874453201266624756534292133427005493834230422988501316635722437353226311411573404780272862999658332136233764652687380181368634080997933698071011016570608707855950717508005311993299017552723126693060457488663400434991246814527753132635194102840566661717353738571650103400834836018119783061877695905413856227766071684850141915533154879607836955487632961841234559901493986835061528129786206335415847950423158429782749575077848684910984612810830559219306402757008432842756823815761330384222545827616503405433086566133811973128670339518323307937872645665876796184168728199457728597069211293874976062359932505466194736490388111948928027427501020479230259730372338865047229922418479066046516459758780653143295111554734548533008553622411389095032304745766883454443650253165376697605741034210733250068663178886898091695029065336192557245658976126872245336109342283144078810204907959718882060799689142202969859924998166743472053571185909189521864065866517529554087227408038441905909169227656975739694177403070688797066143166008866884185926702902843575899900461964005801644553990635915937821285044517555502951820212068757527285349320723756706709122181420870356724663471597449622106138951883602279206219848176389500916827521104326694378218392340056480199047754348895102602211364074381334813021514875019915691043803415183416364776586343034566757420532447193306045852174704015523883523780862968532436558538079513998291439489754379461352783068828792285582867736059913198313071502424882160262801525697690870767687254988904862052059239504410503940269503924899829160257118471188195204184988742131844080190482849007951341965074124926402874752404008414925782799254246397886779098925520861688817421087800874721386554404884404913780379120181842005283629655420085502536951125112692506889602397899976531459044310391378847011697098377021209243446374846370142638895024854921678411387232408342353060734918830164441599408599150574671652991332464557754094774929359726887343597747744508882647424272099287049837123446239197680382585854213495600394441094210709077905032004260534573008624162388590752601637572617100731068160633571925278249751454320100577927679368623392850873714616532290589718868340148475887673175617335359822258681940966952932209321218744141440510733635153698874058386876877741498887010060695491446864782151034773169668804526013093070536247823841739224376949589326805464176089703031206423621002476688322481170981370027825884222848202943916090728001865332665433111506550667401268406265472570982155910579333816833852571752131311695925296674688150231538395558807863395401877275103170551683588923122683734338450763109924897436245157506602430294087970733515453685071167445048879632410282964607403895252063395812458671877451132534215578659000604898880580701571969236414271203995198222378156701995081645588165438149283188367371075847288484321883007167013316059750023001503589123887002640130197695861908577829960760608421987949861815979169773408943479034891379591743645674677812754534011900995232935859996409898805884035070709105776139439372932199061145825661242429660739205454751350287075836368079471417068498274844367245990770136632538595410600672179903312738947376272880298188404256376923187758816021066516810499208134608689513090164021454620564534099583039519669337201833286086235469837025897067201704480770151561591542862658790030927421541962743125638950865196563382476349963152444226778333045943575702226395070497410031203097947247986978926528730295725317624019389359813421514590392881339777397432001701153162125234231503911266320914883557523881758755426011325126364511155850215185241723661044558295779382587814066721873934879925878068611722298768861004432637898942730901330913451995156968263196909745932140838556524487566454593813307834111042311025547129969725365701595952889156907472859267797368968954865820718551700870413004317835982320327141350260265516598951890453682073747983584507738057935175213124316409393148598269435647709062911005998774905704275336730335892348918968813764137888578245710972727586416255156167964310833423910570085643114163858789961772639615728948408315769622000171186956109628526947817338118964871328019513098009115934530477624537031351699221354578366050058100754429511681388103412006821867847849114374664617027371891351629250004330393592297311514428647509372848032006662652311990657393378767674743157929362918863003178968446906599075347935839002406614583815261576728144951244056269560920420629191419348831551904948916099887838234241532682444934483753946194611296537731526820783600757675303747388546262035704815724875274488944557861714771998869432634994987521663667711367647999542741836296106712799426876273194056799458480359064480239789062806703954501664165389332387832770686898434934200650025818631348714128206323840571940443656575340044170864568622891414075526422609825406361659428505364294994763567922798427971455546547522666788612472574025038781144558067562166858506455814249915846919569905756624385842361182023611986018447354018971239832144729904574671531385197556782457395029274193840217828117734149983366746671063708231273972021897940580513349397977466148539232977671446462624141497666541734883755261881857256354074312795027079643644887300279253173780079504343315899319323972805715128535182306540055862070589902521463211406637616573143775436369755596816199691970337423583043635041960265271790146535362309361429142836190607035378300122847656842496483799184323418069142376325993461944892868399517839212162752463199060591579706865199442507755702907384497539973984616584647660445601618388409591303462431861751124201182270970165254383039893131106011998967554140766144530641963355615302805174102602323889285487095228106011212880672305775105051364062799868114555442657796708170027115688579940948810625761352916695993902218487969417990165608559837551197845196193968483691800224649321507189395642238343585488117897856949156593240055995917246020788725620313990220681038349450952793901496138096219653712244926993131931341968654631286323629896875719429270950554133939000778085506898602900491514337634436587485088548484174316569830698674921570933753738712257114393748565135946635741705264472538284781042230758964869479928521365381801425871187518801582775223146410081142142292626378014803066583805271981032026808173514526905648802771189610867528844131350391246498113329815606974386253526271713795322803987732572996126205818131580947976022838684563985826112901087596549057572121356315297244078429997562430592835271975980727226236688005055981472012142685292979340836677571882907491382483847323597988367194696793153487324943519947505067788499453744118526767580177568246607254430289144634125324958062576409857813746764983808778466376406147021151370886001215626660433252935031190840927814797913071638099209882003117218385138790594817901400640696610044012360958977777591231727434853726603223700832382834602263051103302736918006281112620785003434465912014607014375544438387874044417013268383390208675710235037983537190312290576351191364303469814099486028537244821273393532869181017599126254118690189826219955428179967730451326902829034074545700783876042156998382985430426717653545579951047706580513125631099880255128662751984497155381927602450246137021175783460717724730032972077828030876486993615247554424525060818485455157646876486976881797135079509337880757143362518557036635999902117947851643494349032199515950956596036673448565306774041656815288001383426374900127391623284103110942771884243630878283062673679259232105001012028773665124381906061889772435619546218996673558647368943163696867424612392581497843573491801448800965324878115502837002320951166614023233568379333879551744070134646287184013298129219640228981616142305963718936857560473984475701673030384461474056767424325787428017894558608492112716311879064379826719884919429330018145957845607825197821561791400333354911685111221619574665674699800576725506212727102855629217806605273779581644883631551835974779720979009743205858286591211738391796382387662304936294877418348263436931204067499771329345821792890413779263205229765572378193028765181146106786826151419197057508865835781193634080779344844304009131733553103415080519285394663831100079301221355986953909613305659992501717759995081635426396504470804414954823812924093879828064180378857541382282962010186208342552576310568270791211875915287858273830302588174548863783360723916461098406513444402929681638068496736134990185321140950887152893554122355346671099638096245858169745071521335479665536238392659991082512518007546576994535768722072716344558175860287691128383028746628282120029837021379934769022223452720851825838675788954483550671783935934482237333329035636835929371529418215817712221053577946704395153447398338396998590249929386692064146470941748198657179352538306285590853941762417381903532132867774916109066812927048514686836683797860709298530808988312460539183750916201382631571450967281333241024955968909942388160889659085747159750744741849026610696576572625394536117539943248555993694202194503805675443174186033439911937789731036740345954897601274288668868124859196454944208635140302627806317052589690130840501080766209173889260466399078651269542567972618937175929806311504091137425010219905032534479887126892049371237802513204029269072790935810143605423002122096104257195724731670679994117790014648145316596231159096130766901011050429170615507989190576420879757515901034488921302694322859446112374222046129614755149038804319091961849903233653015627878325831698671636841251226704598205966383414375411850417568998378092840014299010436198366347634170996376082892313536527564780593149188226073962216695810161669591669917833592183737735276341423334724803651978252015211450502286312862575642638608294726131527666112149275112351162181550538346619275611337588442226117526706285025222551493496372973021020250912615883127822528963924271920742368939368679650345646976688398115846264656674144934172084910069138211461538808723256198144482484024360716570201120578485134201748702877131438339766029695662610257461062740190398222889948921558660386563271277771711876193504258920855852284582556915850456353392861836397285700157056760916799865974507742604062206331454692535869207168746297184706295103997854963792108607171981619688589668934375671967199544855823797500608995320883810782086505513206546567308441955463228438691578760641273535300924459210644025423839328157364237074897470013599353657430478658344164300705308146306780827836422030467053537149934319736352860844979768035985861774487902989833155036026448343485249223190174174702138287000858892486983775286063187447558364384633190147017317360171180376604936258444505035582964838835928061838005992132092520461768910007002347046638538099976320669860016813852750097033622984970322598489259265383846810666359437863618281238461605370345839870118075863166898675054390353702737663890802157968309041311031249157002117825153974880179824912265403726430316094372784932851044087139800636359114939438070183753213326400750127886025153760206652715550973648352838862566528974082590911033322449692162091648019979982564337667323531580191575358162235699684206663321535893780181298672486093840947873794454755687552672081596091814620268310796719851341367171653549240364807993179292708649106028973727666762487924113104574031284356240931311087145282459980389841733025129946605712653482201058947414764475582780350323948215050134974998633826817932177001730876412048268940336326151737759501632661271402231310518671469281056971508987306541888528554474146212806787776974747678789954544927495461911051610871088408916500700099127717440860137185202299406668664565642819802609602058216081363741218070602058494881269535152984659832664198220853120596950033089170403127327862371770168821803404606883569436998962541288319624010757284219856765658477564936724694274559204106381234697646713859215646150959236786473984537782817359762711966464996547542466919600263892739442699694437695233343051045044020524228680137144231601157021886006137582309670705139117481960867380104353381419666392676117660597466875119039399991592874655261988200322113736577175064916934674445499127774957542506192596661027153939124699434063333428201953820935770349141862683764593336890266322761334133233495016530660294550653821743051542561577162754294407491068057306078235974126532107900919380735257211332082635430166637198277691106955600377045071045043549362692368952534890769160675310081805222773719222691436256509855276720548172585453086140740467925297242653807033820768231955096012425412841585022830210164499884811395054223043071083008408252007516768389134717095311869375464267695152503473302164340067950527621100058165182268346929658830671020250893495366767185085720457196612851041469661651749260598406439398837861086258317378578952229639040807142130082832828786206791670491419373037853196641119330667282388828436389088480368319369983880964636713167762896553128686720712058455849727112749368133488832887344061205980412234784398848564295934584326327562223145668361320049575712111843065282661467548619585950500009306526885714412015141037639860354011646676462015620876123323845450971367151907150051459744108741651845315625145394196297837859731767631146172514658690981210225054908638522116994242881669849000923516279714317454081543621527129829166212500863240788358841633653529703704141735273326177769702408067389111382555534778080271612023487441061346866712267176698559940748543463667886903904025197742035372153586943901578065087764084825863736146490305244163318181787570405537667171286092998680184475663792638095709967095484513907538064837783212824122092760801734961796312327659927298607326531757304417552716878171875027374271040858861295181365147082073938411925431374119726480920934594806132021431525516992229709923809368466713613456204861144468819278776020893583098990316162042446063569028609072064579819105017841523319024682069688985805551384291382535961625931637227564262579407978896232329104434725932747101707014586277890681405403605294753669940377576618686783248678310325444894814319445134480360446947998817713848338282280679344161664532120596154628937147353163353045854487902262309909615912050442185726579243573128056484605171445971260825711829462413058095045338013116673477556916493215575202222138344837275668613295589368286029303619444859535364649585839743740732059382181129776034220837333846892019952814484480158535199755247871566243801039126444196260897239368735365440492354586767163358008089946277747107574636001407620889231740776678328530386746425856277546451682930999379860308021004169714668519552703114638800082853180163397631812750959765584247506509406082470680940297883028030352311998254100715003898914068225717492450156425701716642847557051395339369473723945644314546704709860295641785776674387577614589945241179728990404040422139937612865895220713793560010986827163227949002936732392266296539556698487663996803114078349600336451416327912238735881569884706237569392718775474653421038341117889858387052378112995283741578822509219708072092716163116829477794159881562274802581598671466739368396971081521638060397624131492611040503268176719197923558577631261591025963605510582330619715757050546782508720361574319270152152352028383222543757319402906178453801063071041219426390573630214577003978887950544661123186892068329335750401955856467925519069680304486693261016614391013061973135278290143529063375068970531751524808956621372959048893060693657192167755009610789441955655606356665226500453260775070702059782336705184475484315902051157485094820685513800556883304134842648630116434589351083285522229235945904074388808782588434010094877679176522239874361739082498169918556527479399089228515712401301941634889905608208791511605880246690774105912168515346227694071407660447341713031123561459340632752244992693167545398321972736752695702011800313112159145309490655869653156244899892231430612356553896815757273835874563149776443721930841508247924211915716398894510375875173364346477547296055401062980720381267513842026168049794241218898778772032436539660079778314913725047853983954511819542335748450246933738318875826425100201529769276987115341198293563017960701139562373695130596465113693022974451698125091767644509598823999128181580582238779951251737836435466288067293687234367270939700685077029462708597976833350572234135376438537090277461674997343858456322392362141844626094005272545747449209124088046665196566638661419636199924511519036568575549770135202764327256453777174985158443031398819552339269361514670812136930225646949259430574238945556395448427797443548890482743280898377945710169052526885585429487954732723218643030030604997049774624413694903903771526542015071907144763988527691776848294708146017135238529352007978734908908972991611334094964297453626569244763040279431921952233630077709549069666746891277087889457076801608860526591604233180007918002489709462185562985558892623384664237248165908851154024024545280614238185399518024162811421235051807862634086452472679648016167007866233819000777458436014575920871928420912293576135325950252874121161327859090170147336936422109075927176352737553992507812012341833821070524025033962671051711631359360228130804097410960702355674983762463721921183971924512577256970269527659102178827521662469829868508435110382511395424694574598010887934461134076948835268666917005521964791260715717065794901490591846318721358522293556308038426872132960114187410518593695801211055219412889159374957691189746415490713146535645258015164514017319574071007702090050383685396580602226481335846624146084064002699657968039442114844741188223205778014141445368268586287038523589363711411674359068592441554749456851658995638726384109786989258983130980022457654313952889188115336950825344718614501228478595900707493188953708818390688142439097465407855170621469524549543204972111999079352096822834567871801794801968983968413485652513868048846035961175065494693353211923093080977390935667056873842508795668078477189448916067628408826941842436991811188915840583588449964642717214274115021154848519858461055017532555967034663866159049769686188892757480112974085033652424081801667636095459401662304972078329738623592141671138911194502755346583293522836593625244422565267624128275628149780207983424544012857950164311959668239999790322988916640037051949765075049131111039361030693470257514419467827971362368397986743931927637562852198595989133960463904350586089808211103809593772964805976887898624103101949657572148917401263506414675480909288630996398692894822002482318193244711049495313178626253153261091504450330660846203318269551209874317250407622563596706360873738858667660140261683259921796902694323633655529764698241163782364770568805656398332222969226035096487538282471073607295089994908765182510441484575408316294554950879733086596160782680236532048980548824902830372265904737822882458307879367695207186532414737929220522882343251393839801233579902286909626416271874825043461096193947187284027907262831874368741587003662217118395101056751314812837485753685165697326873517139502854057990455203264971246813437539517289632781782552583575566079094854055914278050543387232202920051888924814878090199222934084520908918634470811207773782108545081678877527935500789456999587961901116372452588416453606947869699556507237085169391367289055444433748507194545646086227823725785256478547172543719387664489557501181997568869324204827987867002456676024321945620601102733476837175173599476747129571288356577371309287218975867706613484164467250851962755085624295269408357641523567716729615283367265198457952811718781793524664380442726560911533949351874280638571485053016231780150902466829646151085873704283894972654917679692497120454875648666554764735376980772702193097850324102102630609594791752295171851109818177265185474884102042037729484137071990488960439013302699564995302064559818023815903866709270383326212994506861937879539719599303949807915589753951728993146754630305045837159096930156121158959628566113414111618051621728879152457542832863777931042552993160087974323594842127480738871167679367226884681878995038198840417372029383551100656859139703636660327561829676289606387488973393602198547158310035415491049066264451906806294742246224801457067571795392291649422097349277183475072108042015688013912784962898485072027554812944052139530048593520064067378349547667433322142303620011319856845350407081073786590458549864697193350908100729411211423353550982647343065372718319121712022408556509804486276808839951683130283489353264212787563126809221901019019949394610116893424976380059460940467682122440346607173170756803678962140228586836973800566455546370377254664397040150598010636616926426349992388173015217587298130378482501635002359710181367089069985116528696699924238133030737358995524576665725753552677534967243711158257268087031456791120761245629430053067431024766733393728126385543476157716160831283093591181440328175495709331402280824354897910108055188620986346831347440804253136067740372367224243752688663062724905150503728835109678225294134766878417650827323130918173666898023758695181643611335746335135508959521056234842458954937898068168881894570567214665111287396580932028849630595257933623255601124323727318739352627061209166057896559994851207216745480732718467129487012676339084606969602803762850313324874292914396857075222031264026041051601140739827259825248205011374432830827781793126939227573738770468008669498792898563028354190196155706245674087267909035400570559557507148950957209263596067871176004204089146160730192843474188564336611721518113783247975015326211048980743133567763063252689772199813130852728935182380556286154030031659475588783265850463006667232051898516444543978350175327327665820401220588646691968585277778508063648557400173607870769527391072239167882525292023665503479564904086992048392768509480678469482111282274606767879633953881153223706852116755616897945660029502034287529227162747532103706610122860634222216078509748911168123179337381289643625420542429657786136338596486237227990194802214968732449136293214051241031695608222217020097232867831008054342826334717219211544550306745120936658057122563990626619986668302457030838322679918420620895654598394475907790102562752747172007961919744050532617143841445768305550955850755715061414110427445954699628541086084875890952101451639421272168930153326488347900749617260111553461003568223770460762497647079675781455980881502449665939316768039128816503115066450086030320019119875457333269371238811221880837633171087644023853458350350134322482508002775751286168662306653600201358861481348994441760465195557081909462567123250048260104305485691582258969761193070412914941636954999892483165571922672455545697633806053829350014687363820139847016681526533838981022853961549488846531053421225585175216133335760596590800590006322251561188999964186765159288826983173748121740566842296154409770989529387313898323415247414524207338616087519337949262665986276339869406420125582775731417640748175308805682659708897053703409358511570357583392991736537697739208586438804675894928277314037316099229314271435462016748068999087474412050585777495095101477052034935031961519666484531629640614410550336632402636383282426347510447712179849476055239337849667505936793353817022203440420465288712697359682774610808327857570137521540941567450240002564755534451102561648014575571854713938181031697596936147507919279744731604930435428726904949591118275028012812096668419826216764536450588212842050701039889223526962872231786581600380114409028193268744682913092334274099324780079598680965089863026178659131108125181906493716862440787550101341510531478349559096498990184958700260596965775459716044204644115845047697443292595820364795823621847841711842505711834305189692219389153827121425595676793338271725362630621012239435029996064118276324374911042135923904787647064958433627442276683516160751220969816321561944636110586638722269536748451920468407003562859340907708561215049836189963400780345634080750806725224217380751871463150184358197579383560861740131181150498287826213906584317904386652681603374661498960192223591805625770887209373517551786353617415291942876540640424791224224324279618734715921351992748877020543910840534284007251124587228036799449787991697895861583694774946591499951573593177771390125792826798954649608024495792759199960329749920414299862020031030489557340022711893161433402739779304833805962179490018702240248308313417615913394886922652200816820092727010514107881790634591103153995572130810335399276451092973202152149499668884445106689692511338105520754126330401893727384756215034940387712482273035713042884282656068945479001689495195784235480623742110363519168864739401523565324696230749521718017870602769195098195293828358916074193686696488618917177830766831463123543867612518707485604717206334126911437323081814102975114558169664814665480695666474834734053329921046611132319318364738593385980925479591607808411124080541766759745196645172585178717847587558822689973026317796642546392973671868620256276532226140112275107926968421258450756002801961125293723080791754187599646341462049261057523169911589848839642741674159651313905610481130887867540407990798610651135848992027253362700113127074842645445872063747121366354319407126704713801115381323328809439064780868740983812182818895225784572852648794242680237801385936056267737654750754012741129545773355856612879265766643924483677803536746504511739773050585770212639151468043070794610775286996109780007583442407615130557952089356655570743281703274725891613965839735877950113300733749978339330894845727673277205722453437250174853992315105444187438484246396731772675597116022937112673923054866162672521540058441881653944324547550039693108508152438949209012908127653928041641558112655088181478419331904727215523547743817669742523962068519030980867659987374773477080342160018784210163297865684228830051545517591554266143188002485750617949124272618140389849864524641652754523495950423476647259283383755085168075633299952074118786040393503252204535554191288561144399410142057036025842656896903510560988399427514989780479797295521750617774927325843801616474778811237073476433626839421412150462260228082364293188854089449467380869192061627013773764375881161337041971720082953543225519576001465924020258113478173109392054097634106854162781812889472014000368411304356756760658570212695085034718796050205940768113605018224069690591346855541573124701603545869968613663029293155735398543578788558571060935669839619075344826848197667089410220185339969266748109819376209091753237652413123170085206472891913061154747596273811839599735449215681950324257103859966607626179157605334863289199385405580273112108613130777911013757099745987300207882650320304384779723344095718599511547724749749990777525664866072769621495259185480068873623009350849781043719677101813978015558040058020737223047674204435232022341512758703476193567003879196162238768101477812011868775513254428300714307089916333637870839612454302663399464553886291936972989723528295976355181526691973130126873471798601599671135893079230833452555326582399847776197441593138354936185891461392092702076150038872917795031158652786255158150830845778654013980378056499514129120475398644839274889074354474377366211352455522145082386267075607213385717138693486615783736297813209728104228055491519344760539940223610713849269938028382626360997815321727617228900209034031879230340795913251689077761546779851113272259674186353352257073062170982177274583100260887952739549385426633822493306913988202465627434044232619837437074928645762526553500546554444466896798700430282713192185166461121063962151208234678079328264319155837349105668141771040892490574234993096087964846797145426504611010451985651222275046889352064661387909407847513414488459936940614557647182690918734589872552574827500896217734778066095928685704361352747966165844161818476624472993902522617473682987572551551573993368113616087745691489057691722656683752625753599768229641451504876767962590294169522011453734592399590550835591741571417110095456350088928993220287179368638901203587765227258800224476627102799325530424598004450425501172996008305213884965126775286134036123686078462558759589078711992954905080108961409601974903568140956753899970113785716033776440243872030719219003068410902074295719552439779539436031208425791300952206648167954606704776528500667966175709118204809425103639560139560182042929493387038224341519441303280886162809251757500107254158853320468098403250319868518652378511161134731589947690763833876613261470245038295127063749333260619539307954716499602456620785011431546419134640492888392233686279941150727452769120584595953313316532515229225002686861222473169568048137988113873325254058193243838665377379500276533800963919991965604955945205287900521412731780275199247518059243713970295373546002747976125593965074490230227071436690577123450315005588361507676870711395615238472239116510684487015436476320285052780706949972507345327374710218891459729687182734786686113743246640387151969292539476107359192412584276666756617028635662963612135001014579216285545895494706616217573466066767057529802036350206353886973174335660274944636952955568218907284931407957967052511768485281992086532807081832225002796659036824365455059290099617275068360972009557459180261618832277028898762318657093085790322393580759013636045788070299017739842853575624175487610038348834537816135556488444136284606135762518491078802503239025099306540626320114168394664743090239631190004140549444014595703656302469392504521745819164411342183449010906165586957293922126873591380685027040496300906203059521732316812768703764237574048880978054463838135063061094740786222577369579583552315984685429535292431206814633029921506250966858830805977438169197185781422192995410889087515953924319287468348251449175122335049152234710461319186125938093099268718025428063892750846851754085181649869147866097199194704328598462817545430368325509579101851509496534286857657512492796583361375059155253340501327980450790133700432411539148173064336504653389904506530338634280198097342833696081528329016970668467090498733236013321134763196099042477876233802239674314435495976613187803740477297337091808918650105039434770736387953504840781440707646144507598543061025753312118117057109895465651901717383370366787230031219908081916703285286546304514166189328279771902752392797009205796620090660669566950499551643702670631904809844139460658454492017183057097442415792322937338157739487019314844710306780073044389178512072994669907401804520095174032158881105439734971325902356896663377312400089632648902332944018526864605284617650990272110038994764739553047917838768511096995595322715071725882802814018166128395882823742161867356013833854488554483278286605670853482500908085829092921508987083906258305378792058062782111391264955185053876749930474434806229294054559531178938896493977626185220218380405841735035231355031175633838498447780281481704822360617692283585740756905740902846737535863744516813492257791288806713580768018372166303608136296017678657117006382233684907903037060983312159729145987516534764504935299460077036717013154719209069317105725394738971821857190606960055967264105263419579412319456218385777750059142806930082446004397997717779262880881985667977652057073090427650450912559056119012488968504037946543986200639243858559032737879117155567846993161639640250438229309736984082237065366852432375694649178604606820373715131932488000770326298312099366307753409743797703753963186884579649088241589405052991019733205264587666732372344013768757630661433366707230191289916076623995382025389141758175738164504194240962644788388823870396729065621843258905035743310309883165997742670812288345842330987813667588477997521855345318276227963137936001451659884071459008778191922219673311366621089376901693384109344459430075995002006866154391990818824849824722546015354866947510936270998444195382285727330536280804874111877187234960007520287035127419794322186920774542579359690039776617742740509690241870204010029423007860788797227238286105709085074493833555700549962397762259071362343635187663158624992914227120313905953085724080506574303365422696757762935596866446516065108328185420635076226951687325179587832712145296022271392042889796833990126024002647433685754882181026262195871882642880810389478626594037905826520095680939305268872589014177062647528709695671599225423261753429956874886971680082152017669355708143386431404590391195136432921952888510559952179152118422405409802431093032347607030930780191513317403919184085843535351905055810925270245495248870792541102838641427439371804695490320636016277444434423336486843673655741044364668132734352203856506516741387586522022313208977895782062013793191759605729022089526578467180665201610727285982406258338902954880328235640648165596824694470264360364189911915182426856294767188858504400680932986069915507124898265005689596747561162263837188179580358917196041029421799398458021880903011496161552245018551707853483913302548404533964870633098203446341187920796452754845569128535206091440915369664065149495703618062994227578346156615148701565045496281332430719015338715459721334729800114752747909340668530506912215836633866109808152764770517299891874099771108149292691930527493931292232507445678332682308197207400979187569665167631005900891440728253046357325282524858977702050160019684377432517857916047629021429531188015750037758847933319872027501758451720484388078703020260741938692209847818352869078157144779303619115715084581634282266350220712818677169736673369476156010714976775614101621810951734022002055449911378107511927328833084873665712154073303047958992455927632646345764857869620269310742642001973414763764399685595877800026619387326311406917537397101117536825084118426211618314627139935034708118391026330936231613548209557715501730990541907810726294026088342328851659601916416541681384006799155956957780530400993388288184862406417297770822090259438286530477753919207663082344608111692568805218180039674357976648600093492929626353521423764930985126133327298048387509865606309660845549199139101617731886574466868196849206247889861648836930070692587149921769033426965450683411244061093938764356159818011952603451536603556954214981006053769145283166809127212740279908388759132584020232118318037200442227968488296311118902288282796514864935935055071021201133702164061688515507808517517722601561135926419282270540580059211048247194223711129389140497882917254743208214310843273863511252413016158252615949063923108931786703766073709274910353886602693081146887240962576620910769936172989277840460403339367150177259208455846941642832998587727246908318967354792724384983283040624769007508859562687740304674245899547950874787760621044757013850863230277736083083625159873898650456902498014378529455434078556598806377822020801106151953639634381437395188935761431240258136441540806383780781826734411343016780266750665014083338046839097194346535045352483362315897626161305853385873931108679366110030532203769379465842622988518829849100690767332486507044490666953231308355221988063732660519074548137208700994824537522287744423026806428859264498232421988991416587557916874502784466749714351518229056060190518544918097753450285937045584651056425166536504729414127735075511589794730548762878422666874261093027889926776813389577133489677098287805466603376006449494953125611475834259735522390364247872734161309918546521833413098288183082745020623492937581190077728399366920692063121678503889162204064646590472281254071228526460876450492826529920351096221642090719250251253275396013699787694414224532226237593780531813570683987393140913914138817663879223220722026612095646795224696496111321673015652385370975731055679583207818272379007076468918785361183808326332548837702238433373018186394273397423159366873294681137412059294193935412125202973227116407446060641547871864756061644604030738589527487280262929758521904271588129487020284893402570499709563709550050960913529823731012119139639090247076793503122935785619544792268071240730989767868812972068126917655837062971520520261754861080153278141890981553844543683839616451885541346105058080861087290450812394040815891665444391125426334149170647713065534663008760899255609702549206049914829080188043658167509315407364712978731000302320441589879202969446210757671471217449512000188392938869709628797074112564241267031616175756677551822412882963808541722053541275716672644006579357785631944117857567207242403424698331782961079816461321117837323901936382259488080481684055888564575260636823089442995550484884674357221330235455404116552708957048196915624450648482305261684659190132940333168043156208296208581085484036584175719631267144520079419806627302517955339408253282384483290144990242054805070751473626927320988397107736973141108877345054852440849546427817689657797504817657371020793126906975865160659100524151450289344814724071508891146166136673421939521491232642159075607626603817191654784640590512968956502447124018823215142520980012931939198601876854719517636479211209127773221186033439399861105443018586223989947025231144466597139166501675575066660182096250731525832834437551447604787151385372915650407741334999671663275217576531763205654336187655798580562373704030453845309059671442920526188344555873450354427395158826081241173740800513939325902481119394181141903080413272758765967973020909730929299057109445122162587846611562047692510310794596725095139782357472124392826863979947971129283228645311782968537881812789217822434352704147610268099928239099355086453657510756626137427630723175581540037666562023519573145094779428870203241428731845902754666080986802105587857083060251356420364554048854942331760244824069754284235662960867777958042303632582537980064987969695591157334355558106516534175416469619251789600462349170933666229195602471259981623180444749566160887282629370484370446490324238347811844155306440439646188593282089533156495345476304225348116429508214519877280045798411128200309463979213033648299889411692747225047182151064445176404938865433977510553280787725257677424707315774010967808334400589604502326353503541394355399661684653943235513083862904935850414759835251363657455279112387756215324134990395182593223774998223639604599657288947354385861714322678339606492036659324053704944467661456348641859155587604358835682745663487798575251751150170179340819397749715791798927298553362161258852168847478578440328326748732255077873834961442296796161043499147505099487648669538516787672626473325807868903816566206754491679005035493522445403582745746645911653436107827654382044314111734963620086647271164456978239999306860929964610017259484232977994015403363900721657824698307855191831783301179259131492069486909954433440796270357512825657830292336099763591267319625008938013298353064830487943940476815944805743148976121605524749636835149739358398445639599278787826365622006334385684630735121218561946086450185170826294531973708678787355495763063322239836141822937826023805438201213585343467997813628027101983487873138183682785460142215686723665822836446822452902921083356967594381933578554319039313505822699691640225761384652713716667533538510854975166652069263665377520722554179985841786260235402143331453722570472010034521143194713037002974486611871790530774274985239353049382898416421153405292311901532240500159169466542967756460277658658271580414558022574262951778099310052931267903578585433877106806267331558944753462508604739177879538079321451175825055433396680330206277791061430019727687358669777809479093183621707696130660905515664330648022758060318188545622231954007613089107229258257840642283420578781914480928697697926045448606590195259718405025314051579427232438303915231885131388837105022660031710518014630811807405509260648631502551319792984593398209665034680298626671434182447877115111853919755065913426505275079099719116901939836401076102993847911798368482707603207034891830077280860349794055425126181402526004816761004417368247408696976508944345165678393680820617630236786029226737826043817429028540877450285900039290958712096469796318474935574736383179690831812982068126070835750722786740192517147399499438228569803575020426519994686813586380945665468843816786698384622267203619128837481166474320570632536951612022469522817535242300199351438681459806075552328494945693966774715076710507277250023628882446852034056446516092309770191422975680688671209078483380787881495554835462955161959024034452826020875121683143138956182231810093881711646139066944035452240894077446564801164434198007151185855342200677689430912829272188409953461386024602272652846480462779279840629102392032605365884556095975615575649675727211265822822918937690359102961949700612423453645441786343574424817119176990661810675810949813933868225691188704487249953270738078956742839497896738957970735128114547961122785189491051219383972541786440299259731084577965129076761933599218150195476698134343038334931039847236710646416999761202569693912285502032972880816581617419446819968973461393972338822599968088886609444714685392872030978997111934603512446990944881231808376168270846922866572071614267537033620480478300726962494089121846018346447407603544665109249782435345769470596451891182291281843464395814522382760954248034986289963836735516275138376666232628350087862922174118098521461430196164016560774655935410086636364046699056854999203146516857420515609652178521502701559017089419488161606692759852803048091566738601172062219341025923725513330099435293760967409742946411782408297522757692062752482145409832289994739953295144658528656744789952139020132446695559795881889561309945100535460094286407143531273684918027833571570281242081829371625164240784942030542505500188240810096671455263899091183115851361000293275305031918178719167165560614170349220692305820023515471979846110204514146615784959203609935854114119300015008135025018592382579194615537259196069321052676921258554802403281121529908981711410593572435659380869666919859804713186944895864583012445405734207247682160093933748168068754936927151963725827478503841129730844563250901642904316148189028128278889194867714017173130176520681413868064450397464272345975699565107117102719119249641589689766373962282588050214826986364922937735163266316116741458319869975282763863753517226835414751526149644419408878508130474147267346208843727697524728335165156651856950342775577033965686455189345944080089344770998799126792304188482868547969065192592903563299681989929262823692790433931907489810728515823087336679310869502205568673705918981827149339851955856298882479222086566856483292599588178719077769488532824179221012079936560419820678166221205633294421402734807112157489494406667292509056718004285094106043314226697941089352907167524919966568158429718742148528908427445415973861330753479552190254883269081149871397003244454938648879451652991318928223082971164175668979893427695079508160970787247624317847578290615810750595324786899361824317603861114175960367914165525750496527638070764625652354205726782107049243121255306701054527521294396634029108780540645399249759847000357534701381860760676856044313490661360251569570240841309595332646523851543551214062579154110737329586500435595996415233471605415825660942478904311876813480660782993881298927048669266447564142299693687621877281355681036979979067296924275754434017338296626223168292631090471768623502889855304805708591919638696751809777616800349006659512581873215039594297794830722390829770428790606346857150330162114026425663318356552972445551372978980927140570898178266185606790664683876411407751065660421669038148751606880870096691648560330615765787518685071053296602415684588393904405710036557941933184906482720394200196513029163623828065194425907123444175482306591708692414818495222833449544656918930945605092507113009469810926432422319714976587249345075583418591840883201049989779082336974626514332275400428657545278462487491317519261443871086143174229986495740384551499437438345635332252311166212665378176972434149905407210456246127790229771865118120505182887620668571322276009931835102286741280943456903934907661517983196304499670523782875405191793111558497628713359845016935096696537222862355872316674245637633809793064549849099776729703019419032283713028516384859473367231395651022436118027953836667710235359713404430896606437145899230833842843059027334243027658874606470985974034772454458073336577810378983833810733033831768790565835046028962563436173528800104509681921932329637214217586501168584708041664677810712580401025997876462499113869735621789898146080696180778677821966997795456484535926821931787191430411176848523880837776141440755538321095639745358826114065161597348417732769476116763827138192082643375216580979892765193052062662746410906775472747238138791533959145027938429759427618547003161624395557576793628663817501998021372765044390335474944627356381803986061842786357019311232380395315894051020820712921428608863584666144552216859782378218855904643625508271087243992486778058382570906131906553297101174710818601905506845975315711793967004954149362006395504112520668050722364158197698833186972809420663252023794353371594865015689110069814277704586033612166329088836668066451437936263239437353915333441938715903307573431099841019786128058696721431917345770677191593019698769444625431115408867291581152919646419948562226870210452582088816781020293402609489064213666011288495176248033058799170578496761818243494673645917034905374237533920856612569935965157443289023561074926706089142232382594100788289226912923548146883907892392477671522693999709363436635978659906174023322166574107584717293078681400241935910862319053440869321414128910736568822306169015356443229358111510362343141698840835315921436654289760287081174776311549986255417239220752457510961020525314034860379872396632376863358413544789007474958470070623798907627279585247745619708917300280880054189601898698169154778226666796796085834376010515464025970923582133130968907123027277098741824646389467122663128794458990348720652653390923651801742153188949481739610046616246206189448273867412231685665044772379679034850180724726831979680098738337025983698072770944402435399703017607798941506734837534719921955213684666684123649561433151739615951782019337155910075952712276458330371849888527807404159740577215680442869126808479531976103709728532150920398704626028531392074562327834107979396177909686291666622157999665699681148809454467278527278372190662709457639973400394575272583876161766338404043727212550280494104137711490450193594568481870048923249899980346112839863107334941952397097792457991754979096041907205988794169557775161660999159631312629772042020523791809003701281503336988275138960442667301308681301960609758174676341972703384132073348619041863739277513558939262436227019102868515327375834402428861774107865703853131401504057335684853124140966040468568150210851478593679116845164950492988712576078741815705111596685379782908830575638000945169344261349632222265665813454764206049281977317733148360436981526808070328595781649517723711871755288452994633597725594771894313715304451510272677896324562018729529363944187508818504794282020062786652450852463258907536703284347652925809871416375759925347639067459078465111254723295000407285330755807540870735006637902327928378404257252577689781357401286191226335676793495955850790342411854383599115104542680425399601136627797705844132806920121763470001640054533672884797626310497912222112287031168319376118781647289075860469241988546226212461468663201016574537630147718844573197930079424035484906077450663889645889405485378724633462192733260155595371162677867163827221864908727577017436621961058466088002173108769103327445748809653848262849764904232025361856647830335106461957440230552301233182496446687929750460443823868172808964987485587655048381220446415561597052402149349547764596048426180524269461327959160774340301216261852560004267230899117568798310492235399406806863882856580695002418895281796381102883756148579174361278840121847906825806158119256833477675839512153617742456321826653353103219094147688522848002493676968446795307963983894237543713170483914041644851754859422709608398377771050560571419450550861923412359869031569298515922812052576816518202403916445388308997683604764780458144337960673277312250680917097388562019789836881030268829171736929868127786880976429194833521479521568942035903422734799850922404495545013646373423605070350606413378136308172976781060316827576821608271864993188981402231981589813665088421656555914775474055614606673988979737975442209004897377589420250748106553069978016168258673195461016717339297369642851959603417198082798951248204563965527374732243868165267056993177392271738713147163001496546402900678984502671058261799997363378069482298655642474166863847058720559312966449787926057362383132838099980247770430482818740223394878319875729087022101032445299533649931442255213772094985444434133906943102175450662858320273918861821798584937954924018412353721436438915896669987378538698859643265510391179264919065361990512614753857430612378720075399647415922295188687887906038325918552481832942136173292418282822101855530549414325316947459787639406692780488094978407370459916742069294825090304148335067961326544949661668964118156920446994373615296732045136909025118467664855053245221400399475132790225798347912895914431873183171515703342443513103290815367637036111210344465093128378677911612238941330145242114350499502782702332368433782282519800411523658029581830449980861531257055223676741101628254549221240230102604162724469315907285372737963348045141538111069121197924669622138574125771623085576823683837772768698000187613554609616585917721544934853176071571181527442210732341724333596618634676242230562354811967810366834131513985118341534453351858514381707482549642799668106012303546489143528716807686482875282643063129414262601390040328442919029190265077854180596114826471471225744427696989749236972386904182655362975487652605246790724773066760946446611383084958307427766977132910958282234962726516152248819292262343236197821710726351004677134239801277539076938534437600254250317786406109437574228225553052709061629223498027088913586166849826047734258287139368634481502110562176646871884073009971922307690711142249442699201121325485028408691712264179032947636449095223217692964429793946270991948598041240490806920884472019482979427679675580674539403552468051440620929107820225427267911797694149819340624543023783073696872406195151925609955272062338682246351893609330811596309431864391460970228603640000066952218406418032393855876805402815798113985036273990828570359320857400175342010176649135454677383798875690097689632405054370950267364804645473285954726931092080498010092686690098453331356013328167471601833490693282996794932120776357823006422544108073174074567861201835455444516619668198097607226610145999673517397527852500276375147497060902467538803890050323991624126360978246224002829664462420167032043659094501481766152814302137744519873447951685334565595486670406513908770484711042673026337874489388430337304264681724532131729163034804987135038413408480634208501996067536933699571131637278667706494268073810227043011129179114279780575744903158210514013416103797826967519590794150740488305109887852868310524650390450958145321553959486451434207837169202152608328476772593121226097660045473670020215159823726157444381844065819507941129328435344788330473218749222475298385857092435940745073853437827892703250551877820336578071752429699604976315383673290090573594467191048450897931736326969089283327392328397470334524449021467857586917516113782289067326836496258143304384335073528722892162928362538247830853059433962729403009756358481751898957809719395585438673583253353906565938286552176781040334320859137787088093073837638014476553487546795117825834712022981843382481986766685629902287653476842140600480805112129979592475346807132281882561252697576339513830727253694067966298940376396589116005710385647707290291897461133056119013875968524358994968646331493828281033666640754349984191429306232790975865895545735170349141971332330306771330804043687313305263430942469515335501621427203228066125206418097128535488701030304781534650297454400603313643767985112958422122593954931960395997999372267319617109781741671124105766911834897756181108175220683789631926752655448483449840590070540134724379367048758961526685857348209695048840956760222148296873971222476262881419559143818963902186748031687849887102475205759022970892721768668846043659540969569883680045389707609024819538883816762803390836272224455624649243708657102254335754217503607520343159800850076095874236739289181275974199034346546790447286800575525098409870930774417004542121956235751926797587151072310086648506028626882041662347307016835260903619537966856558325337876162740550258655846333413504840952400208724959116889685951315295891256598454206560368768038227797342110101654370797931460105510320347034210168278024188747679343362033157514885163034221655577138453996302296328831999670303640599740590455246041645371314050406178168569065094088700065446696444021611032538514025575060079146334168009933743373937805954202707682633813416454122463102418111310458763480978398274381558569237519732843768413070188375696826415351815985010134489011064308869246807758405999590889072421926643663711649189961211874326625172302469231604584702904808545957184381770119741734575802228093872172739206777809659867666273060361250708937870719912794247908593079454263361971082193812883307959951975324906511199852375709955018862247233856935650482649151221829997830100996958735620416385973684858924044150774197894548479214664597684504644656812932196223673988628765311479604010027966417089513827859903602843431540857329505505920121236382440496012377415235690610784523885527631635934565560928214085079826020064422543502384450714324093156199072067642046836390156417632135715563014429269241336717677910319395420080655805171145008930547577016871386669709736565425914513757197918664919879233903588482658173668494842478609945796611800922490000003248585819989075346035464797321438789505545109499011097536134551412164892655882380057737257306771924151154820450430509695554116386062887322400014613920658828847088559070921274397412428570697039161400995264742618079627579887431216024739104748722156364420635980993428600190783452574951627914386684832175565038208599973866289695914906746261401788285159234857489832474499490371949000280779811799334951725773525403515235432237074064316282086372413470890239189174562017217821596378660512881102712194278022986868864386341380610776360228453149714860869031147924069378766465553266922628529537719674184611575801678100068808292890011403789787283442581802724176084445230721312078537922955087174379663121752228971529483681284133803093046389727277230171522176791286207506887402756005068279364668043537906471761067251724985886388273757179130694446527937667614506693467644919200269496503373103054359844518641707504393406248243849077379062412195866368813404652220907553119049460912478402864816700491184981805736616080636952635347856030850328440140196312946827403384965257261735406778875490961419999289602145254154286763373576107852391348328201353970610529488784480166024686295269195809910129750321399317053843258537120666977571062097516873104424337663380800854206061546520795143802855266429751823860785814407568401105826834173530475997333054981925439415249380916736079875063195600013400769286075989330686757303443078750269807786948684088817885375391618667724163139977053473436286112729373165479700486307080645463003161283967661559136401803065205449959645798302802323966385071234877395164935773432431937302839046918561526307401631372153271745204796424982415293196998657571349268109089379405007561911516827044249193855455255355497250521365661256922800132656865559050745193408495678589733181834236354144621349863102254240139308487744171769296980485328577649691573060859400213802232922719523972400394655903758345738065519022184545322040771133631869607929972781828673032649922880959575427572964934501988294884853230519118736040345395476262508729452670038116372656303726505263541169877976323733998354630670187527364453843389754701021059784125819134839548707987615892659477750346067552533103690967185033541867758470437959811486349062689252225616116179348671503012392424428539015526054557461155598579878048790270139158506338005659698350357957857144708900195921972775429252649190051589759056545828014286844821328465014761972741524422334579792369321872265463344470169227403203879330594042231717071109354099682382156886868405503962258931427096575847266092429545369693487114423026347393510452284357736224936564577627431661356493426544302614155393986814499451507651194891418801533328401517711086526528718451220763594115384745672408573837249581988386431635021430625771585236877978109420253377566029431130512705042979274462088023008839477559561697561639544106217690736054975785485257684938829899252782030348227858790198488894963426370774561082702219776542724477303753310220196048776256022928947515390093676798744763862300067719156136441028478790295597020136579632099026522330395373637455495401662170151720780265130290428017132270680522438355104844740468476563622360379771675844801796196217589084490092716672663418755858152759174077003508131963109983950949796820104010154586061822391220445895548107817852010623444688407253902326110608918349024095413640565704888264299971985013938700756564193718068416692151211618153921450488808235726982183405710066976618227437356541308793410687162498046693933409989909935745933876485763128272062979574966946547521681206068511653663073812223159239086130021343333616025188587365720239451397669775036089556797972759627415852984604823261696587177030924816239993870279067443471274890125791378557275943154284417898877232569486933336940833645776831761210436482951463200298198634171393545126492840504705514966649499096621487989914720739834758041302085710123455574174168676764685439806419916104065850805639501227927830832803272534476607189127581800620120637724741002486142148898173431537413755109701092319082262924328930708208041406071056173988650355100753420591717794568610681835788427964154138922129299635982365075146718868651467727020429285537386434532383387310259303111459920692702163979456774502074041977615904124962436629166772289495376140509045299782899979870656116073961541704183950136102684499833529749897847260304547088967245587990052986365844299583282506186515624064673632356828504597135807668560639601967295448787643029312752248470564590059684223741329859265517622028309746568747625629416108717996625184207760999597484359315102722702465275085586299668049095652244256673372744531402688249499412217284377008044801391881052856822914618902715259323983548681848227619592589155488655527683289775292792488517393607773998538147495420363171260359631559335632575374487930436999457099481382661513435425578012859957861213373757119350837174548315754556021337785526680324389754493278609187321528930968775427293225040916781098009963620163802053563742708299002598344593535576030462392424187390678272828567491504714911752964303444332682942860383751651664793396243508563951282728331602480521957699188440552561043374596443141552835090809558051058068367197301355337722057270538985779063877391887036353409119423979873898653398637181778572022773627057908550076556050224758975628545054347974163650162051511557210428138887960217699372057256498418367721394732651104683256260358258630374032831014690726846692667074061478210663139405249187463734597308110021795590296803252417216162604867979456710893307531280099147317123717160004933297138706297038589195884683183182457176991324985268692680125228040872794121495571584305997251702163774617777317409412150459465741946205115967523017478827554008562937858148950017800558322373764184290102164781931004975304518390187923330176668670113919484196336173656633746646351474737091992162531153867751388797814753801518491051543509598631568435350094359050393698439395787270058354643587774242513662954944422221195521455229460850459280126944537089417306581940270259914787283101217841578199777681606518755432017375255218531549921048482692102080392737345186334772525653453411902183453048784883578907342320196603475393929444935170920056216738671097487166112368209322077355595611684348439463439750390963143068628477869891377817531693470756531969467671221740421597625960257368906417200045495436934314030842748310968599417230286642428711574007660983879426444520819611957386255070560996403111168892854610760513279112847498306177319156964680377031120651158687280865473908540517457186977488304408600367721820754017835083287945366029530735281927000914590467877120756202618668682542748524987482105564897635565196204357216975333443479601937114591165858371240306310146386203176763475807287362527511004108729252041510391609629481714687350061677824556561591040358516962413070904186096175134539935657026156974258417215931283061198450845825433683794523004652804942815506260483952993155573609490526578054357661938829991461987234967017184574009141122054476497868465194169770855943986249749191535876723790328421198688061330537279418311608301707941037710951627283409496269093962627651703055101097043464633586541941486791125822221023380604873509254486123859431438898758690757442359866572949254340290600068609517692860358067439267531125681397046863694216605743473636011979496984773542581441539613201036676566105588465055422449039130714264235131883566567604429687147907859027672683112604440921805403620935898402140032995234330378002329170521468638470509929383223038321765313867438926723057842590623923927434291721196494813192927560390390605456369729066205209654115212512221402650023746379624685450613510571211633060211461581729062930622130299785738358226402873097975834415285915171370546998318090908706638044573382021979841017531224359050037959103016575222298408823596794182787792874556023674055985421446008827750217744165686310592121057082601428262807677919223734913043643336994865879948738567132742386319907192547405806041189488564654537321372808685923950928321727940145055861402816481329676739016611822968779729611926880423560281263431547449636860044088738137040015342912677929768555085101030265824871060763345151741080437962184934234746213880181069494545696511438487470567873635682991425681507178548139511686326846071749068019493789740549504924148216298782865769069362105776456440847122603079234899661410835745898732719379520323686439385588352713646508367275843499464890113844818736726243448029461498028556882244507685927834769101251268736499669697752105755418056011046640730740916459106699104895434211918810412385838347195588338666397363245880253392893555500551443051557782028806171842397060852023740669462220217395928036306630245012682471069904620661829728926077244599068991996809844352346802331935554773038652890763250620147879669684619361929468600732448187466056120037407000512132277689908981415474297371459775889056855657538772008975868130537700348513561151445907630150731703673201526555401804399430945604260102573285902363493209010733111008671574084235818791558834691706569636604201667688644984801346374055936561894054537999478215208018297608675257922779427710521069974342503330692578061641140458561476481363822893835896170830114703232410804399500089236138587859456970628629018199466477020072917593694759232609124416608127869069606132059251793313025147974492650360758660416144518737504861812387693482846968671489626107366159904092921689797789683163660360408765740134547342082902539300752101781413302190375378237331094188836320361221484826283358098758116736890175449291980886109335926866779239165391091343744039540359865879556199120038979421949260120739057647436961172216925132603575882565176825931692425302554853108275842238124253842966325094928181978066987617299736976341325324184396735825899846839364709849425676236778411879427960359148467038349368284093554698957615264433714413923428566053386507359069306699425002012777832790728433934998142557364055291979121641603452986845305240614284531207735198237348881192291984065718757656921621761804854485808271328717230478410269338803243256514333199324333090549570090026274280802781233173268267807482657367395173269846402538094197984945496395629822097810649102783701392245809300513194330580542690319177643731341547231129282733761508729289721328684233532547764557212641164834539543759885091112056824577111342355838053288515007769879878918734504491816088794607849234507174247515821701462966410454929874750831140038842224286698477312905308300032935042942523363096642654877359116700105317754417163786660598245841947203107337284109498469446255641610358169790934302726631843112939119728551645323879319694515420449983564304221854345273898384572399606132670701037691562235032248557493110469892632019102012992402229731710333173387508972497650235946149402120912416699652882864959886394724767619485902340259336542597338934965455203327020234753446507468436541492840259183003080455855210601001737653077453227406990801161689248001150780388484940336466557640535586703160862062904040084009997120641048095829284788684380747089518019581125985367822425459118214281633532781575080107727927232277601584603015081474305004661368130943149721785914802304920594709755420339321897342789146871510613593964047749057704819370238678316930597636338618090367372092943815771156169047826149807338272057976259466642208000390860006423535041594417868714664674076738514724352568168148425333981399241265289828795340026841455568005796831786107807029666424697205340036299296917061633682042380208008010647634184117097781137980910203106713194644519585629694592537354411577422849483599539969050270302975306353921035611839635190521237881874075525308689494624626738870628437931880063551416873398246306141208981980444122249775152925256623330886326089294370708564970994992914909913875308558156579587983151183964923848347969757308508182529106405539566778670711983794405418341032322058108170243859768418687441169408325536134373939179741451620823045805185867251120693061695576726391184344453588392505780199689440329263848228505935223175521105163469348054112704871928163360968464770421956010329550540583988285735271945551012771712718233249996383165272675706385564209682615617661126944257473498010019732572700005854939561112670668954117528180196064396964879615671780325642125660252172863770621109135273066074694189851307119931760528153551208962096741564165250377429936272297929619283266988291945957941323614182078923368085274662301728124657329869383952852755359975891878017237274305280294270570142272671850346036732536841407230075634816271227549127385339240362346333465391586263701207568390788275536317529583815954417521987721567977288905065202208086064623655747366468835585517937877394822829087547752073941761507924122286680846771489863023211995166129057871916530812601155957264370092119661036536460289165024405416650906210823459278524765959751154426703288140609107476850421856037232001189747660250315893941043089070801417863048808062287147701215089558128123784661114207002787773343139899885128252032406447181601226704263787009498919640541606783737330329728866038515825847985274651707362644690204850088760062671858564642259274092423138558306631742300218931614437654429793470478479797941688509930505367919067423999171833697918790540340666775444384533633791772688126592903051158065535108654494704315746089734444345503527395663856182873123699046759431492734582478077879097730780212892463283100338545120388030473374173931783386571156814838293876644753347962367773633243912858645100775916401130455524664478126173059704863676375156783756006624016959226916005120915086349791011676676669561180575677891596740542900482644566798793532606531794649888185785680494610815669157934605091447558679402592660834315979831261063078549135197611979508277301533703012325921252025571341313728425710076483601030472034415989593372377535330355996537848609805476616463747377014492848619845362811000194012042002267258823862389426147007902401605525101340640291853987234782454517712316289889313936048125613952094600739890604032728014102875463241090980035526939446239190376789539568011899851190459709790494610021192185910801734617478577237630449524287749524670428117016058687648197857254459564905562534525817536233734893443548277935979866258108886770317508857364071953004969687214361031598273154614652954546221185454689148208681424428479533577784241269917956318676685268925476174875044952641936724393573863614963749022243538596795725010649353502517673063830581675270642821917683542855765532152444648771253052687586635371748616108161304898449639088055906020683242503669575221182747370292988292436382569833770629428928580878381845973567341566145350370829360329030644133466507624976230286552599430680643366019834668139582698609333324581066893412079876813781084759474106684516923024648586776334815266071530305333681220746570748261904477176859406004652734160733896962720546459438112376675775168889240942954900421620472162229479680667918293972440712827554273004807750074280697901245593895200337019799595107952013716407666303347916350817254952823258630667449681364358177657222181749905483431843871185094621022471844685997532648959010525935671405803363711583099171577622238023635226294940914564631204218333021624469196631410066919917957864736406359460746123124812796739395211730246423205142431234915453808652643248298835982542430798618902280548726259827463974853745623604631665312632941711026878657220664382794259362275243686569588722571325004325449849787471313658724578014060892253049743462701942989726806937279195422693377661678305774733209833912764813439631358243626738057964501497296295310805462909507708149516275286902882526743537670784282808996497620618818462236459447725756205728493546437461508926502029525639211070974669872829460386861045295893091108366101248474660570788751416992826121519123785884372217295153264930399125234486823304010530236445114708765110025392729963227205169574132314595804524657252272653937234928600307690017424375172846917580825965746038727220424176061994738592191284981235841679148817940816370864861382594530940550519497829250418287594907992573008198962902069194183930059638606016860739698020247924891200897409515410321745944183680615225369374813754061082705786925023131219560858969239876463505413577390414326880390030977473835179717589769355406874343305163660678590955029082706860876733257737180716809366275877820998598455718460023627253498147407345792263386538907975558490297072159537476973444046433305537272190099442444912058937245508384533912222852848824522123308129937379549052768471256745271450064026694422144089811904999366854724966085838198196626364511931280498423515352861928962508017443731220977591877982146146450470382297079212258663054061101812601252432311454495770605057466313603254894838310598426293558176025780264619200784977076154359380664165498783109191656281856321519590202014515636976833262687087566488237901796966047985055491033063737956173108196271325276843552400450175453379504427741985897750715073610213658596492822991013095014428781480223774159250602818225211629072105263562820762771715342860392356977834895847392207301126037955163752948381435733935488209462713216824301427018874260464809130480505515278276679787564483663491158845187862603245697991803417011901867236786891958013947173098809109040168006415070668363379827974026839993313862683719134628103322110821177151169387069195575881734178729472364291780807335410421687423356359643412318664907798431484003557246464853779588892291297500857497250741886550212344795706320335531817721057804090973845329714397332262916068961284525352294313755744718017197049934551529705952751730405718249724805536122507118050052834870894257710306056546170947759170873579714967485778038613693113055639491136909722467692282180264909207625691682602975551888481100975118120039689627126925458177085949298755833857675279310412829189992216448877366720137525040421819395216231528591014776532222859743883204417475366613537448286353952077403069963269282133619311969063628510097967436477174817014347652038448561301355300683228042779805560797583043184627906179232429343348389908769982101758455791066994215644586398730902009529366424051837382476557683038730240446893892610764516264616085507379070810506622889628098655211613054628148482032741038289190783639555448263617406619912843578181323659495808963777708655846665382900836717314498315019958905236782566994219146512382506230029938271861192608897228166712906073744926118451967538531667811338795433073481784684322800912269137218485057466007120735725774361437357305939542476192613546244455840742537194599476259755658108376967871798968523722370118562664814799814399081305829978389454920986730426017866963823827614814776398552387207384208782567261149893804314702769796802230921233518549976464516754195240444645825549583059202432460040341463409343066514122278425262767607012648138896180673170755767648190974235598338964404886795657928937225138838802737638229253055076198053688699019618838459629747010231489781551034039477890570301535541294189966632737422814393157251983768282602632424812734486337853824812979601675002392157870802110311221295478004241483414604706517502564868391618772913394805394516599358754328042478446167790066826654567377721437574425820978370848830188601117069985404143597301464115198463434638101816510811330308201667829666870142928989520342717267769379358403834294361677378910596649381676501584063257933663062217744148049661551440450275494889088393020658112176977679836052381795728927911389472618786869916448595342136057234123125285705777950707787879968515151759477747507310858983369804935252104657944799757320168311730350788013180345384662378750991316001336275280880442691574031001252339300380458725772713133523107962758047861253392667123577367498296629279524929138284528408508199712333320970782998376124289119711304139982120718519100900086611387315325759880058543174135630319078438429237039262811977275452684504904807970968455597387511996675963753623644396962974052678246235494833603967942136674568136226257440285964557329092726946496656513408675813716979543571770881626495827307764386323292021975907605336510680940459139088013167729269523085079238384354284509934108246198259241596520082349756848508762085420106648187698203834244252578508384181570160430687002845704166990143971883900582450206035776858980961833419405288902130429305628318432389703838767448509282661531493006202599622524182265735587341544364227321591049483802197513644628441691757224630902758919090016962442776204215913951435657412682074187570549605710574071850576212623970831144177738346655357144406900352587368117185114434321332309819020358642022296075388805933070025175828593811056844600642024583525051358066356719098071124547091601083893785899785459226678011069985739006638306809686517310238336804088338757081359274178736543802886368317270446551184182870976989973805717707210323936280530365593863794816789149920337284464284525417419428612218994382404337022882061821991437574521870700340124474709078824794407408964780566168982576967466866160982691764712313431363200698076368786457991657896236195745936022220102535344654736840652903769026048961681547675448118880690540184478693075363237650351130543771061721007003493968824226886825104936980658298372381460832665338754079870104043574588359841517150924413857849481020636989877427034202418257885587164155194715625923531470307206511890222053098792046930349315875180090848089263972614227197743522412307584805921797407084027310827640311112530325503871574242693060062327119448336554357992321004926682144715758093705107175405409954997693446011128675286520888658877666190703222087854992737073936677448206489817746725281909931243915348989179626370569511515578036240285777613649588811526750477314599708662816301448311354132390928428718117452948116793106081647900309499153715515510218375145861602330546623681526168996588893528986495490839277887522527800930599253097923689065375288459543336586904472601973383547540124499806488983502789156335608308285562711132072493018773866914239227782924799296938018835255818779382001966400166922557921334523841877522222304788111413375287256306941370089915091596216860242666320595568771439395364037678401830774085784392299312724246716165097244982864068474153512197795668867957117640220858647420097170207056593666083745184143760644047274628075942198764210167477849300942914807818549103959758360991387814607257488245408846462014290170087085849444361986405620011926471754801443392946627098432693843974626340300199039456378705452466043002349259934586692233799546150817393746076366889131242171964536244602940741500229299967054245480806857874752954048407501279953225595324207409467046268798458781653292695719368785626783597890761828168232460339432755463696050910460069944379895777091396529392100021885626919527879356776175192115267876665557349300510662685431948607525717172776886451949633669461938566256574203173326388863129599784245413720348092711089196199684506097881245269917545945635622898833716709227958137086448978868613328269638823949851033068774597492488086941915873461529486435556289197929601913143800108505701369078489239617365651206659481567501554585056035887583225479886633533029761440101326583790856382770513088411961317818642856293105315309809020008211929551503105618988614800826073170441488153444213998319915011230794880016573701867571263394124920802271959861281784941362373635557585787149690762422876053611298273972316031779685108143369144362236880661937784120705045874014793502327974539819798522877887451823103782731314137990593993938347149181063019620200545743590382807134977002333665592773875307988822566652007873904118034147283193960781727447521370745885988610285863395990164192775530691886088064541191564473614392460803150973399280047529478189473377672924245236298144616032594289561130650764005293441737927404741987254308010018431540616021886974719070229598360291993933313730671392980294545698173338140836999462154000604766515302640206100038989262866631185100748535590193709580424553946620077651665106763049083546615605190720191204533167560339544589474178681107689941208805728494047242593482903148747312562645473417188502169470966889503013239839662642106367965020604756162881898400972626501150283850861681668625041105304819728760104607187156404615223148796478246944540353214868205945968031111055031490582163904058612926404306870347496495163433544856502392288108387259621763684070160970323883044995979344502336718692318892709851499031621873890985897802145727093650769483472824366208803876086468092202527860228874456286675265585959090580562132236829029475260271928252732775245371239537736867526298762975425985635958584910518015969038552975298083774994527737748405479537579744905086025184427410090033397219735768110956695398273362645369081507258492549502282377131103101337220625858504610311154022037553429486631722909398372075741618311934417173772908129755792276509605586808941314525251260747954733404221858980895060822881418516718174811074171507396412358760055303508898302526047556826453837487613265172012733311641447628121846008923271191284109065504683993804484703259094441479268373647610945694301532939342665865325167008695821055560841453853587842250243507012233664324728172838416727967875740118660939226113050741388767455948273757490457388588883925989787983348029012177112961232115931117014179281932746894826957780592008338369808628225880527638516963328237366832412988396952124608173923123102082291666864239453661320395514345380307194010388357788955106915378024512407992104269561300969172365171937733406299064742823448973807428095134749624420056501881181723847969044594984751814455436046888540157325196002519282257125470607006496186431911529842964582364489411611656300924083229415272047875068236201294433619031190389138388813983014923725861218119180952322276124322780174128044400888947132900033145018793693432483434986476107449767424263941910824216687166349507831253089728928383115241526865836914471713511044649750411178783788289589947977881109483685773319725117358908717327487022227395889093857298696538030459797842012555493127754100734029855204374484500848022219403822792468854114226907226828623030422816421991056776272067491677049396553394373801006442486559183404461153058267797174205067317396527452840757057252190458278708094918488998441012633083268975304016584163993380847207777658225049300899357090045491421018447504998397194465500855148057708673299870236930566605885666312740188217430843183541983593044038140138890738666149469838490026215586042347231599963211266026851472863792754326031168912881224632260378110189424453325409621681127629099262816102765348029224790863688615569142238662015987437587712646064341360183512229115395158454612932435085194285075779354172556040441578703722548352915597159080350915663382806794123928151183833750028959544658851309770191933164289952442960028378524780834342030005408233504307615320122188535951969522295068787396260483061853760944848422908162503016624584322354526127215018358637129667772722696180048037308068301124752887697467627217168022392463581831680806517401690628159212716030383789021639504190354608736233769920320911442301993651688658759252774260833218488958213979020470312266955915769812561670475968433639100087131923943245588457811734272784992940613858013349160759355836047527557961417659288121241417251353087279547743017473607764470995970943153207906304628364964070866409336174692196908955149686352993149977139706664860065465511793787187671592833415697730162170361169559108399697247735745889978076669634578802380973651554248012220845112947434615795622257202244982091396416865087250597208939577281789215279956772811188342177608809393937502510883886269414547578310012341749478279659048366076307757524243806460064771834569440004304097449757807464913457849983713774544687284215635473016405351762610173876646858055800427265535167692140921940136792094746194571942003555860880348817555681939264270002402422609709938417535056976082425198410323810435029733775144538214814176241296003000636515313570260842914820454280669718413649574880094465263826614156273524688144747262920488024522027601444432435333929494381391538154784515976928701453808746823534106070378336717411723378310467712610472808999082347272011263893329860895622228762963629841186540570051872226870715810005465408173126514091326679849437761816854991866468159618784818734872857490428986711234296450432404950560117022771210317935679277852564087933932903720311833757497357441989689143811604645776839072952697787010893122398765060686625494163492073480690181890189942829122343864057445811279153931356051526965072119592721117223659240335976843757996784287713987383134522771159699227431741595294161583001292649929880293002907809886146719428163054217304074408161308666812669373727912956780381923465849961827608536940494806796443470905681714820152624975665893254895250019173123918203849227723198507663142159229984823469107431791878537343961651394542085705178563346446444856595111074160564360163489497475684714079299102008703564191233849021323555766457861217186957279427267553557367610914136347092628256796057197679044466249151891329653949190860432868421139197003343505150941445299386548928349897857845244492266705103932314081061972802074461554249970373876262270848725528012233357519403567864794453451432667233480342997274850832982028157869741388458241172000516036805224214658105377116114949039697688449231859934884343919633010594144884912974124881619310944542738745768295926164710785687138555805233139190670101447014521257919943993336091142434455372380566985187871685499108853845443526236721261462220803769898716906631943997106632239434919583767960605209289849325005452601860500972858619885482624353637947847627146320232250143465662348432798491830024089290841079656461631459119736408900515247743425518251118172343658226191935093981487947724836371891660012652446108671698756448681755919050797054972827735533951557114489948351039939868910591629296804422669190958394186089661664650038263504580691816487354587989001248765147518906593134374415920847557159650257523700512667111488505802903085235111260823291148358854860142917544171459421467539325272376599868987185247827504935853692158078173992673832402506615920615809991634657889921115209906543535120415326155753788216355238185615924352480405114488789736411398299434157615082190869393745357296225571079066731823752988031173376679190550889677780805969177165754859758967013211720989119981927976402152498671331856122053225425320887633444408152920006444672810979913950272725867111804391793317494976175820229729698898357246608779836835715254134243729552421240689915306066809318594836700060117702890518153987021059438926750043784578213582882608253255438096602925213862666370854809070422695169438687071185818767944177740212350112725413639315787404616392500532534882522010870701713553763473503117328281317982517012578052042517620895452338480092995185403520759367883838136856247522266593887976851360569352189851542396443378438007831981530055197914685320237859564492790631027676577105431836925680361544856763452565182510753728616586147830999165650961390481314729793594226508971625175897568333784062037961233434135009332081925463682617204242552523817184921133896810785824679637210959373925570228380000203488097364446845057418710988354996883320256690590828886112878150384128461806430860665808685415102728683436936842722063733172478400665582377114078401253379792317482446877608787380098675968338165828877508661384058472420390901100299282603550141728031033389521120363900859998039696659991014154832521836959285376146216865020606282800346377377144033759357642066216130041570047251653919031499283903060865688170030638644430357352894564362062911891560903171785808803557164444296829991634785098662053874691812114752124070061825114392016341949820172470435004137123103572896045399221351763217193080811695138256367094111016748446633065611942806568376474909132937951478602729801532607861277598242042104447636943263332578309822560304183816463431634907639728277032464561172812197085309708194044873449935368181695992567642340051998079955516227946852536342071311151131401521692875001386132263129218893205970560713320427349364075647998524101737891406958998933624900343978827457790549199906685331166580896239916124398363289620144831462057148715419117294460356389805967462490715389041748815900785551433769251279941279125895210726723729715159736968742414753899501597413379961456886904522092301762276886319917672170869637321304633395768596974587811760641340049144555841093879770238971016177224426999994000397381613938243074951727196179961660357209911796773161240314908541105839832609020320260503483275066265287888359958555764535576562872998417566231195171877795884593801257054874639929878953312483897001997452057519730177738112445737305327803583660612333611333934701171793618833195737572998731692265331664193109459748654229652336906326882210330007321436898057907143490325967601750039288289952258418596820645790173681827684021275100070941988119340138743812839003750056774446980298636887988589578752664370600273050281536362603704226004627937873894958534517379583577467350005357204636021439661978229269168245350692193226828677473941156373382507122089885249947873949423316671666927922687394750844560046978293807368301874757629927628118302291401858348658814223450876031040278166973855825158328198694099499423730881508738510565731858976362829954059773333717444788976986030205560939996443100286550210136738223660726242358547615401671875953395840601116737903791830182173573710034649446090791226835476180452179663500647766283940556782562289668106764867366333571442108998690113189964308798097769748945769397596395611119569206327860199057092468967150363065214719372117067620052553753733057764568966596078357562969817186228140605283565119025686520070315021764430787524675952579210220908508137658229485317192622531630991618610812904579757847387580727179441122167211039055990008782622338855040077306559958649838860726788348266423048472088322435719781857712362434260495177048593289711423305696473215925251086593974404542587437094679597892461920597864416800463908648371821253927370975401300105134532827066437884233341391040188065420541049955412478296564738074278907537316088685082754007736950226551274322280282982994776966969183145545103486855501607706511737880328767219301903835581801350833285008118503056539697986438323739922510283732923854133939044857267983216024591227926960237485052091668204123120960104956769761524998899158073696645512344242520240876881800512115410317328721900997176319507110505309221163572779720021949353418522408730574781728871892916483257041954506075246218302737311795716700042310452061702333926049624833112126355306169736681909411826960910537769501542506131830034961290868612292574868607905807812863223502164960498303370543944156949786541054783617183483491712178937298334625617687878963890019747427363602984721596159959400782663478025679892547990357136991237596239724590069116487626781366261506448051626007941146915108622853305694289037726874928001662695190330995151944651334025689496956200446074939948979885753352390580480385604019851869707623857569693057121194341719426587713589750446326056644933773617052898275464380138411480416283277418340403498054715828802497130512676504758158406449127869817405739080686416379720476132498975224615650532367458288165804327337057888554772942060508890502575075310261027286152660868317961097266192052513105978199818152710767341049348474477068491631161205630912354917045211319215459649805392248732229910168875361936909970860626407956749799614140274166071470127206635160921519796844553742288550279025149388107865684788107635735265365408316760266201395463026307348159072786799018107625944978857335132686081448855436002779629328306885761623956292858268728428756518275344314257504764266279099157306460629829769331562588180943140636006314001125371547990381596278578549830724693577892402402278045526995712574171190417097974743425341792456207416185242488258985317909168520825650619576705772213389821759190027909285099921788352208627033012965684649589290773359384992216719149667312871925660175395251725127460542025427047105198526973669049498297828007275782678117496371886806272629860982198995847030786215533868267377593204731470049101225542445391279406271096618346562993982496826532577775972607506213292492280326843138429628661256537695388810813183324351334404202707914771572281446036545023424589366467021374447709734682360584635640109040331338971488174464513316762893055549802207153553244461615852276264442263781835014848151992851785963543666182627454785257572199152860315524953518141177675140066537204442386457556942220540101810616217445750199037650534403668742781952807299450394221901271546796394965435632347109986877158572732811953532242673327117820694367488588044896037208959906430412251810448175596076069398692302202177555926101834664661528744788659385131410116451874757149157609412845776194167286717199930807314830337539205264735378925358587754520282534883496475486127772191788241863669404387833681292576731714452516860069170466069286828421166221391043810496828668130942485167713936967454246920987834344668165812751043117224484651919031764742283698268789983179311843200959027634345963933487546959506867137216908267206207807285077080929300514531268427952037382705188985966862918745663763967608095787987426318279544635652979596059527677632029901380603078489824965624792965933177688292851330245278609815402118174839061136815220094974043251844209276900719189818010161064076164595321894067902871635943079213652291118826877215524258652816435474961331734453027838707091539351868039012946695498444777241340835598128081371845573556354906128661417944130375559098024623107943738153526740306136924837116411235612987562756330507688194944818665676964976267088053326382027919982238420772117558860597573463955473349204722263709268392421398368193215909674698863296677675538462227273849484168099932551746391524085826504456199922188141806750955075003123865651395421876638990208678560755088363685878676439095330980876989408325823529339784520769822350589685534290081610126410218185301316982821261730355540482349137076444825324852256782210776762251052560995401427405706270253627865348071523593893417000703303311441557174117953783851334108156726795250992863714203170423849276201763905718375244912315759520807656167925503560235960440538102854968848438730545724244713284469139556604466413366650131743273783290255693103868159850017074027570836370111082620474115927524723853573925951631203569287036694198015558979868764226632837520089494329987834541700442404875974908760942986260400590625855505270568918399475695792747980905210329624285448354452348160220101347555125309503994384869887312505855136359079289184386326399724858876597184768309356873401262565299201333422057524234765142671889320433004975060915374787955016362514191287318734825125146587508185100772031538269860414737654460339545121178463788020281215806418845297540758508099983970236707369687001169103685994174932122370759782128980532711638787328958916128695575681540847081398903922305120921800732943097190412810187402740809709673480650841358153113581505324632775491307882567976197029904435380635443500116220955327695735637397899192289192323261898520564300119976253401361466356034189930773702695676763808511146228689004731617691018533903097834710309792815514160703533331457728194190490251826749334808811164572907243492331439172199776250907791252343298299868558789797067194828598338974629256299356452127434385030318657105030604612125599186739640305396506861088721256179023871434699939273160063036004037653093066374106278847772234765422643433730755433536758710132922240236718191259251909019112651795394898037911963522238302881853817317296566780867409013868210963978831712521487634933865486488763002178692150002447556552204247891420315572846402248537847879037407323471319176060974822876542689267183128072536233528419203591800023039104680769452669191381291948126799116814451751756930838071150150921079746776345594766755434554851541450489839281251195455648246639009616868973811221295667672844883373434589074015466086856899513106274163014695538325249037497990927689003320849063081709449007699623162955976903347768400845992482404117889053466754983712994442697668799957497709895207069338330156562105916122089708747877736911754400071178109797958481174995050145496765325075173749349160573347483946193581959026961308624361379289420362322910199828336285774772545638460992510555947400838933923969523587066875331024977596860271115201541463580180378045367853441021869985842114591138853781113210376235701294401226472006785172405826952102129676257385420977227003699445071332867637069436021671624744259374692319255031108811167705931741891751814367647798203254400288288368705322938276916555437470355944742593606327908822551500686160917442795936684065849716847821759170686159563683084865733198081983280602344898061519146235553530382686433500405240078912367552757714452864895023277926728431104190786611644970273250188882600577282496838001585218224724205384489896207474489491568412317433476138820366088367889185675356693740589045243916856244197094307427894525901465260818348228859551176882549935615418465897679234203382113981996665003026720887301937568320364203986848019821697763140009667424828090349887921547910299907665934318367858593081018675652661359497705847110089964887305884577590802528573616110318474426406200511688561756492802942265887922098866984851598590026293343250309028180052420629702616216308051629190839710154987807698056877275978735817633747275087378459752480550214508250083161519532502810738625831993553243364910047297090947720315141446280477718557953940416887465329966995688739515365434063324172602261392780057958582797538951868766980753128474315159616941165011821612886043826926713859570331986096679192111966089295851141540986834693217903414776970106147905226370725438370745968090307221441876691455487736972268975067551771592294039991001341295400926017547723170645477089886626543971792792640430530979622457875493429402392646994352822602299897587071113513132833000339277407650073027010413202105494199021586653021021693833015913099323127893057923556896820991374306820568631331604118821013187656948353598028845093269922421194748088544208148541322446812305152125211390418884933766028982588826444499148208620069873372555901477624287682921933025288262811012887469697341584578619362246089458643812383637003330987487729213361375137803759374816995830885517949536938232946498635977566120382694204265293968310180405853651135246097419764413553435059510033305484555765926410452991987382036412424001349483711858711671878977918857994579878671844650182451595162587679165128932322206336563523882529546608460884390525062415448795894708934221433014070109623649924213283896312696544287574069739878516760599652168299032359228998483194378435124777846214639817871329010971689059880165291224368254857603186365045036890794339679340226975525263073624909191789131825820247712517773122825713465325100046065317747402283707412975078366438444971237671681988465314349248635545991734848206464912796101560073274364694935023216306944755951834180203508324313881926223664834779100596944491829107502590163179291376801469256147433063623812710759576250070207709422819426682034727956535997224857927941849802890128175563163157857527967113950717259253597892016103625563972534058975788785669984676528494879231047823485437549438368823556053619716954259189629784750844352261248072057571400513665091416255204417115037352614262987044680904851147695803147518386166601918976846966310091685259992789221208914827099579277049702708607526310885712225248692537950633716786039075371138799534829207813303146433082309764027898589380474592667554148023891188071143374526577485136140736965887529832413694088170752460483299652844234004812343466038714548556698724305205304735536354571319470573008177458829333452581658602989635092384421394868938944912344690568505653016607929749041372264737731701020984837416056234328632813801341824147549165333552252840718787377066352898082788777622104501625465818097932094013363290165925324499864264010746436909365747902129059242543420646989114379694094044838553323266299456220092048816974810161898801139130293837392482359174395308736351783231854971102203282480138397161898854472113261075681772648463284193392385092985796290487909617502767418509137534625938141118058658687037711413915922632950092258829863490858319982367437012259957607590353059987997094581083431744472144056865649458296399735526790835003948094359172574662319702358368369915928733659672567497253247325895283460357101127893740982094203787390503295566088726479903974389957633937205838100226213396999980851914193063024327017450674005749176636632986806441344222559824131651727597217811132610854613320144595446160009832178286271524985830545612911668572946082791473432032734036207055862255416227221627825215449105958545628289407041527983604304766183946138944683426658243623056623654186869860666189251764590810374111565936931727285151099161229202839024193735095313707075430356452400622472448175482143390443441444769789965417046935113087991283349248581840176160379336259329195429793611544458786550747841040232604380924372237972514998908301424408270518834934574802759490342981477620638167719484020491911849636658918751800269615162260511573972364034344356431164343659441574613847012239293318860819517136566336733918044348797385635209557031433049409751738785664778385038200706036038593581424252868771963014163360872002093186479004688851888242511126989551976312480638349163687512818031613311630902621399129795173285596393926498382805019828183262447014852953798149058589234014503414608770301697075531646314360963828443117867620417236770799409642340643697443444962265892830239100908272622953145329852029975385351300248418835511262667999359833457312816825398131848135975544294346330904536266076935075748990188221071017274235273880128934804756100181375498351640874477171561449979188436234500128437805245918902647376020631599651367066612467413134328202455159628426015856701564531524002546451453949671054540830460847876401537495916742538432729215434765288771142570272763102428594952913262983298336411381898322607082789607980620618997322810437056414882914853811299256128647195237988091576700116165831629919886831649004507259793089486044026290338321113493826456649731123432798693360032856612533595286048113555727848630898804548601671478259753974392132923330159941139700546356488166668468676662047478504078183656828698670441089805999935546855656738194787850021176184534870751623032731741612327124391996885573091690216016209493064185162010619295740699773448033799845037764032770408526781868766636747629511520116244358425428999887704862693223456409066046925945279034726685787052702985545109001601964448360609687143067383850067782805735208314975757141922476637572948703225826186427475929229496093646443153786526876725746149868138755369522982790069713142635548335038807036280751131825827203374861014155164249447582817139099688420336183706121156972116744602088850010415883695355081037979387017778305829590566795802363311435878148941960669580546750576345708499486155331212080761095938173376030883326180427117023832500200470965170545125579075734416145669332584270487010879729296484452623038209339300314364241071673712317495565401388557810552569479184205585051439041161768057469592218844427631305917325048966158557567289436694676272165283223169320890041195717922455200803521036201247984661984235618379076341706764954250665374435038894522723069729699524773675744619868631397284010334159610129583484020785884006198601502114999673758997571404006159624327034446798573648482900408068772326634057923281786673775934705197982183811842839268087562967135161579125214219191175485251768238364389304805886304720430766389312650153385904747279979452069701083066770488938593620669274328167426537706911278344648728421491038290217796916129540790477472146377613054959301505394771902085347775447429259738639962372820091818279874905333894041120372025740404215080986288257107402672236214162582693259095157593348451215175889918509377333499911753842304966943220614416323299452520747223046537787816385820357498540000208158290241978985343344766799173502657705518889263197882689383674070433455718827345287921286927322949233431074925422559379771535296643705631349235454587803437878088827007263410112833155244906474668662126735842150127280146082537306330561659715597813826027910503027708571575599092578761166484897540232126746795504464171599413908863740092068629651495727938768199132656725429991865777418943744568837815226746654654967144955358272047269079602923915508810734982241594726927511583511091561574160403545398067960995828060697017468075081781945188415372314804323740489025766813318275549991849604811138957308098506928390713171208629460866108831981847926010010993103345634273322073519140681987769416366518361712872314314619714309665630657854272069952798898490626605122930963101790479926775657084486889240510691765349236813324232064412716746087931857688440505509933771733539458637738284880717307565183683533834290669804157988615248852223685932757238617657877945396659367747236244770807755118964061003778921989638863448289565617599820897309472496387825218582263377531543028014393434481409161165025213868121986845452774870703029034353399171619462649042498846543394683064042111365112769633329439751266130667675870027215822934108556426805813183974435033403145330711384639181570920480786789715114685497666019494263230438209941013548384554135455627926733845044015039206433321463678898566551132369722076936059117619550600013809306499146471922936931923814781030601819929794502538083924599125281610481341182505370295471254209008539210008957499784566151683456453774079202771451056291756250144298629875106246260481585451617665863672483933506253755186468256080177609383689520543131474305459181992487667122477386686305918853536494261386452158710907909592622000342468428749520110496896927309619479611035541152489527674403388361693506077518501829906746352650624887940313234923131848259756382148258832612562824402204842109685656888273560050642745288963012695934807454801256196803671012567601359410171329614103687455057710017399761864423354644796637351404655545804589031199559345238669107583418154847917971876041419514710525085761209853897505911751865937509519771035466311239958201120276226874189447449589174696551274807035387010994740679826920933270102395329382841706529384304322580708300940395197079341356482459722780131454373728539962869101159022033738193222632518207067881670405851621140161523019412396370526566163403372185982141876497640931516876917951756873563483108708464104082699112462016449507391954828530464269367737036428136165408297736420526042553170389278299198006573218322870417586812889860565842049135923470978427662856927853409434946940385581108087824172801351568706658797864415907435262636529726427366505237152076866491879385188581745978427482612728936831681104757595736019099779286067959075194062960555168067791201016091255808975372567150032646946071889417455288500435058506707644427587411682405213446298237026706309290679729299047548460924429527361629316581792379492371101826444933647688557525346115643027788771832724258539980116544916773925355828299601355745610956693817009879842052417296285393583107515035982222264128286907552901811756837658646399424778418441119440150982776854234878096876089667715365286180747383358188778925441855902938892159533829711972746991216650008913859006783521976511695737949649293305981225709201251952167408940593841366135802240499471391569987242835486657811653370560812577243216257948436989120226045536013346017600797472366958021143185931345746741800205592160811084778597878869494758561859237886631847925519905356237391877586810698938194868060278584598324120670282846147299725162747201699856735155344654578227570840256064354212646941447375953370964633565114578323173670580794612153176864487642250570991602782089203743206175878135633452853940024957597095881615537008294620051360206309931137073825445572156392608973674611994170199699809406947996163524079538975337671840619365633722657836717933648854419209062672023062990558864350795344875429424488654847588259314029351575815244580745892958258301277448166662149613658874016557297751466243115600032083428474405666402058051538110235918206453172322283782372125497745580808303990066593248366824772876171932698242336149531137928435429657724312853229698190135668898114416489944490138287344145286361177029360209880747575357717519155503955174349696245430412508657353103104137862206592427338665938064663512315103393836260185449609415051237202897519032016323127923286263291242425785693471817117693842289626782139204776532837002982383488391716411786240352166583623494933783983528021280567821970632417953409048067709527708559514686384103748442410274159006666177855842541931072752648752456846531009287011836271172917792114863770568654917563688786022726717407601520371362580386740469723397149488477237638895943247968415763055882767374625862954536783407139574379190989353201891327491146708111048615011841572038012665404223673761657172493031551565622136789188265939652699804171489095966059138000006614877088706514842401111219362229185566117903582524611467825804884545881688844338576107675112476717572118411519038918923071597400387193153571764553440561535924741018341882708639954500749872449509809278044346621753955390171197088361456605579206099726527342626944512037629169883016756862328826393704026399172444915802749979844632920525169458962779461091487849365099522687102609034283999397382194698217568143097511963061550159136317354436512084571079065420293826772716892229473975509779898489882047942053781410910728277067516792184055907994518887276271098258056377788429190469145863377793696068096741898479471638192731113230531044454568703482442203113247521605167633709644028127326276887237375061812824631041022157750588498141361206772818442383859813550203783301107627829778979498472533109557801240429911789726360728627162453432953437398498376731503035096557970582105173339959327121848051004866166232289580352411935529441459611011357756628993466134088251983746080656012246390044397480030729446730496576192415507444164733522786384091218198269855275094918469464233845716472241915680114152890746730319310196647575834809512160214665963572741624936717065267896437532421734063399901756755696889194957177413003747510962702646244662103893984564487943612248768868831720097310020404307466667409963153355074288304886807873476702713360567668660587123196443349054034357570907241240767392744775070690974900882803736742320526355294853807139318039957030949714399377332774627889309784741575837042197877233922958258230537600669744887219984822311923132108611422888358573649025156278898384395540247846685827126000903489877868399611500167063325815899870268728799308336502105200998346286458132055929775466616882503964429799381022155049438410147884212231870565133122501514229990636415885299983360562124305873008840735910576172629016376783793562144522934768479637683696700107595001345622994162834895425896053258422782896899539148935757170245777029822136012243157926049151682935440519133558983041542262534431393519426567944271509538055898445059067711905683645424847077918896979320564006551575386185017129616112887858903148373517276266301656878267928615779695541218066718393076267318079874653243975581008360418895966777696149620600355983331014375408131663313380646376596195534810318529118139003495603820965541339248412913906373581132441321082443232194996427870623334898548377875651683921050693045225311637062815646631618375864586578920637822990110081573650921452464718894697032574915791889048441206581656672992653387078140436668344029467938052897692113968054234419090734365398510724094355157403983880729896335715411690601729711625685138920200721914224177638994810759036762649226179827823769123471927588895933026993622298268933904602405967012669210015065533388252927257462594477757749216633894864249333123903163297886597898892647479611825756268940280231689775910923312392321667024001826794667476768524887025695111078185700877442534619010405281735447568645308172822810571015198856358050465043950515163120601220735962080591114260750896934157614336854850105291087772639957711374468329082053893469659406852542883207498627307139518730914646900528161351675818388216239978285002076159183238973324191885795080975090102277926324220783885573262634751723376995692437319491472561946310346973968925174361697631157332718704754348303176256330635367558133513748036711898965059308020658867102439416529848162420787979071359652715596344695714961171313640480311613419190388733627353781542136301633115006232673164403947350307653929654981031053716778540431009475979075356751724365381053246159452741217570810652179055897451551320274498094694346574050514350380784269790141901423379251563117637344160941168714494674071244727963984879793112225854469663174621562603414008276818222125741400891121595438455730679729454432815520918864087654210143965097490445632141862658233772714852308412869989470989928129384381080783558990362815335411389990087368081311572896222500044398757606921038762997160582825921376061108617156306205073310375693536638593020156124426650705524040071082869670002037231925523116248584837725831316386848710894715234855926686366690487890420367269683392217960832917260889160996007063941899221056698455957180776635023516762558722044884298554381790858356561044291002399305450782796445709704881740233505776297699197382395247022767831807038655026732437980410942974090163492322329745280556486377258859235168164772756054686324728319232256343524153112295048523216339991306768490929373361976452264285584005681862647773954012704415439121439928315109631612649618253168712358808917091243105575809311545206333000565729758764992409171572692197295761173544043092030893622397103986260399063169814027260927103293794171146518990701717464870293310070616832438153508897404085124534127456079978500291214997009664768239786218398794532698019245947700322613654413195874113015372286498455240077159014775222770265799799404521542220230999294036805153424872440969879371906421660201353908893475814341129524100097744387751998411766381248420283116181501566715964700983495610830997514012817530880861107979171882421547851401645441614924479524386232367458340254863895356278145285816625767007001607500236794707315470012768356092843227280899960411430229548452561753846159727973896904155230023270192267085146541359636167853180272327936172281825660651412948939148836558033374218727431787954525615043528095050692152497886495077929090777642891749488421962469296455648252495474019675824888545100470346250098849317264199520249595902519190744458552181407286854921753568300702148899799960541748345782688874455848028614008100443643146348992687078292830252424633440059456787140922086812303805602075124872338204076536326966145706151671319008077343429795661469531602532331946528179819927208622223087533523842226756161919849251713744977267085729366613023604171714992439754024147037838086686582995425923225587538888997590713413019689191971744425553187689026509342247052350317710566742434480449511340664788552855230090214844638078902934849047338063394115451325698754685707769171754644458518538687548323748193511840921311281532005849989907746056890006708988711802969441295101361726096848477655451286702594764037244250291165888212431674660743626575513709784159649469293382129282355974008022851915194715088965008544323654391733296864321029737759922084663572588596551308718886407315295442233201965501058616022898899546286835311821502421130786688627811808742173754276688384259569661959905434710386050165965233007935411544503452290498767972183526249762309800279634442771753423239550360973827704960949687846219581057799874795632362342610604425716523704892956022802852623336122959086986530942443152896905448546514636129496438934286103010440560079412803965730132937022323700944754793009859784591852133596567821554933137005924467051012291414701951615625655376705080553644645727151715958375464978012647397161453474700009046964506641714945602365574101143402968019436550820099528635388607601929895749691540022293368422899189801538400637713640203894472649059635084153969375229861750688067159862973014580657956707286496576960808118551932860007957260552376132896292821392732914829949128657737791560692749655899290158144702207009854442475281819956254421552826085725538606051192477736438097137217077928055445032334829574793668881543463659500952514021000661629104782737106841775126795935444889435306337104599190967644075098768285226377806709237626128333078054722261984384613242717110078264779196971113280653576922623229576406815054257052328011687876518038626493004857815044018424369990502756074875448068904095147292071882921614244187801296958300714154673600219229649795761056344459127977205638729344909720541851083484884157372368993959898599349420608869963505754710127404774202656941740363839980913006153080674215126285046997150194753904280676162151477943479502647501283200291199075575146045338210255655481561639352684357674837591898844136552010635533940009563330846432193143114384565433515370422305689341841697132658615341264533666910923239097869105710035921597249018890808919913083725598806177901631282805005014444848275849053778032381654525546444916805480454224796092801706267879276238594989222732746804546281311286029083830940858283220274909539753316513971337064177939035563888154843156083638761084960881901886713090641657604866368809696307074397205110083535936628994162963870061721042672746883252621522657941747496326189673185606912319368021307348338506055788593096301955595074238917748417806882568195597496963580151945465216361459688344384385979932010082049076559230716985624646814064987853065965783769772098689310095473167724578579848286567647499045493558010442246534450968473964190466585642726040994194094442513599264064271902052025974994960408853707831099762446407266329686305249484155884710083909162159305550045735701747639661832978405980102524430042968142918324800451563339512852167924730532327076611685260646929717687977095946665247575755708832430250092972839248180201669744374265321290701471083812667156089885654532927951508965600606394663795336174265030362301163809911596319586053832164515176061094068231275818715049461422440927825683123532791700552114917584727023444847112059227025812625815445132814619992772837156839637109354165707929934934660005350214434642676416036458478052586296705210759432990050250174435821750780563003597752865506911794871558674816753859598286822783046242963271254938657858143821145066492675223453118473823419883142416363441292444604484893376328948090137251890869113871275130740944732463356546964845871892150008587582907275043755191222405300806113317427131740790995900029218959961388036366610812060788065560420882926674496754273693826224257662053417505409813839486610595795471880830334656877485858805909246333239996445919583449164544427446984448425904915196707788551537357348109191399153516757010770802633445370560351194801610256221714686471518458506304617278803547281305170207225373380078474202808836812141401356342833881008945571653626874085344846934375473088666725983728620053940014722410796667228943304659094473292990120043059894837161216539485647638436552695140085306634207324536394352592116105628877353824329745979968561735392436465251308580022948909500056969449747489855173908070868699946341508349561648578279723566815303097723933976362378763313105822427189008595640186918914574387142204168563483406783946805891685894660195253604744374767952321670736480083913628544957963954753415872587341156179692742831086261733311603131531462181112932784239864989486170848189897075805450212991766633712570312024580083096697901023053127049215681378278333921168043103501708780415131466677842069715409284543091501894855252437720681398658066190190140766915830032105875276009864755941967757432786991820035770800732010329429940913138794504309348894606659265202886489175944777232406892848453204065813443620603774427621123454662316088534673174802125495534704620603817640446951980819564183516693493457647840782786724565838051228383816478799937750761987685412456405297245763040064353922401302109237763414063131058257802812842423536209144234168682041657430722102435507190302416979433568316145969487585643720196469177272733136801479990988443611912627499971455013421486015913158411756352734522931536021148547031842242670253224699882566235713708400336462455712969046623802826906622008646442641652049739049444991108290883376253424608017300065912781649461730641230444166022849922000185654770467537822999621435026912838515987617670443926879174262377404390191812760144810864168706808147263955229845693765992646731681572869642783409046609479263819270325959453661527629978813386158933755988140471877393424774699799567066653826657638460405789822172437362271662323226064054411944170341873491343367460050599220780335292818099987086560049072681304559652856432764470615157255786450519056751215268673387753607040593580748027698533397355897528750557465196131474268554387615511393438361086039433754208726004205169388804029821182558329219623919957106663751157516820082279391082348431796128066218113611966220756484834291769899742665284278984120448782724449640488244375955111904207080496189443811144019835655771140460817991273844539691230667062061722389005558050914974536871215078366005513472408023972874194983119295382790799551328511391675775905290124348412733151198656217478266352094752972458000010331802683872284995107226276328751585740151058992791794760856772118104656987885581951929029159158983889432566375856861591449014814427054923992390437196092519128934243953917058614487689786775956299270555862927916442544463445776918761515076627881670023798080735928806806224543958056797452507300028130610140388463178872854624700451097835198530172921363624397234446595375246074850570148348347903361725468046103090862958081045768260206904232491036776570907775865396542217032957691131566613863891794283920598000508988249157196894257529763699841322248237206126170359273351164031941962260633878617520549929328594419570567312908031536971699678001720007870797213182824024490636721615932710530669436075560505352993629717575642586511829242086715297449378870288075930285269996155337563851448283030936645338129408039633317221833305927551974889764874872259517271669886942126046893407985901784321291820061224315409881401108379904153888791031420682011547981831464547154382770548840897616391837582530696226774143956768016263028910307786292367544075083762496112256943456864973876448219409155256150071592741338177386046275047972260434909089722611126396938759109958718629991854537400918029110730751595865218095086290689798715589563619165304210342810669313464177075769208892000956323424925112731939151941499114043270962713960364042596718303258350665704451224497873013300075535021300624666999018396476360219126090038083089373417037911209911223602306430394412942466567611512593163889467040580922640545411597235805282332830729219692093196862127949484512581870145141965340955121898922555500822452498083276821536735922359736942435325908129517322574928312216394534063010939920715361622245977255525998279373587604499466349227199799728886693128530350108808546859211868773290099710922607327237090991264341585736933428648639123855182597289256727322297031707760800327725853529465009016690737339446950394279267518699584286423684220874559532475274893121123932070264836214223391994329816494745923743462310977468581538248238085218013658988840684738323007582939387727114341354689144414731460868434176271644320428246117920810124737122099922041763653912576023535113083813356661520065766884840574775610819599469065348323608094713716461300648189896769849782383852574337157202534175836769302441353024747502066912329362313364370317240932260007447718171922287061958484214352479606210617941258522885832376652196302435647563284680993683983262215722843068127185955099300507628847159985430656353342703967595798109054500344915805050288547312458047728904536687252356142075148381631393094507114318476980807330904286374736259957649198095472425374368451954805068230119672218803265760027780889939321868740453961658305685405074373183448809662274582446473113615819370669436545061414512740120309466812603334001263143403899831973863644151336360690093336531890181699687113123562015018541985332493078998249022583912557207564106401500787532962308211533780330794449261070075283169558680396547999827425775742711150712826433458361807270235005443760544147343258361658419744033703087772873985897704028929512530079122163826851717074710125664073955951141512269160464861458585707107293176996326020212150231270758365004687265129223075831475070246816902128696113843043531083906250412242686307457418724069423961484069990510797566519170381982904681511296668217717050804669061080445728195239838881582452794088936072410379450914767984498789557307569447701990436364993375131739676672548385998867863200330576742635360680706630036564608754447387576566053636297529090166154946615009480786376632711235058604204020298490321366286419899534257090574140824433015355549333176016030772876650157214746487432768397944325136817716956076056405564879917960697837279806394640802908614790230829050622313848393469952619851052325719100785681919629343234424677456425469656718646428600105116452643211787644321807638041496277990227739715126106889990457126126181900801271232700807965618390941113853512643732594305750948543133366254414669587362557877642742705471892424267165340369563684296792903173621649997675907191959624706247790579168085647982312275399808434668192801254994755047790481785636654993562892163917456369851081074292107115102415638892154835905432332118580106738623007557522990838980920703709610237172483199325304745017270460312973455540523313267427037167143038495513501065512527894049543920049606994004451704913620872949503951003577085925691171496715868546055415681080159844655813452031658376434492908732340524917235601167042085978210167506082087080453577198479467336257942744745729108351996075890618490622070230678601518523734105443212487150825912802375071681168473864397955329431112887461454099570381842160696351398325323104740529765582637660995948890738852970076209327611618718692782841950922555640567926111873842958641836904846621441178966797845658852024341665590298742116274197387761987327189907758960472978788072741322670961361700509603932785849330449373426890669483118795040190212746622139024205125568878669597604749159363056588839270565744541607393053972395826144971808536370241720858570089449093288061475214390937543443635919352840287451731340262393199011823816302624306450241134693440121909752928580122243769629605789122345250598563741394293479739516917647048368484473777219187657399106497545946485259518440962347730226319521559496318405418109482222587632180129008108205954090972784798996911017861246890641491270762110088216467851373165886183548983724581730445487370076208675868511059298733633281926939290268530643801937247628937421663437506901873672295996489925514983570236129142484021611337517410798429704891499410536646736544597433138294103449913694485186550786106232670239436042196958574175011908562048740834482995409651015534371545294027450177519444817181865143019640914926302290935741529561740568272426356359754311231578891917461611035011430395834222485958917182747349832595893129635392536609696815551661769676803675907599786671244054411499099629384407969718215823692658224055990755207037695170346180132331240425891417981898060147485900549418343378512646323959990523009716197787299489843361612117933679306423524633724698439896514764832311307140370774147345075108985198876781441538354629754857983425628404205685009391655501818312257796111830857896427975942715280414449561956614052048997506522294951289775311717756233065621510108411293926240408773025368139703780952819957546513834071487014170421086670566712404050828542476959918778012391882829734589174018291453462194705925015492459013048231270503061881354274751800968122599464026240192219491340400925754037475243363363735200909242871045463340688955048253522444291422354957813014520177360867238334687810738106856486286280865636697061885756426440667851893808670600752063353521821264007369268432101407369240055350019262644222966613272393340573522447324953444785919854992547839749162732090339227454240198536380409526651287268379799143185053487258268811538420278722244838095925981666086808013126483690531166614158111502792118711697292987185195477058149156203976791977860948625181450969954779897178530479551918869922793549412314597845512227827227432054015168329496466521832690234981624465198303817962617266975847755639972049366958025402472617049974995461071459653403939975989860181959289926736519345500575126577869213896326936745161514867933907868672131028560752035674616579446083866890726683494174910436651389497813045491542314739239464910132068501711560984162160331199053613632545692678227944369836659473719257088681388503313622575410139002418878778339913480079173557837545949484861336741637860742028997624897959022000323567067846481026104308051066945151198345505841177039938124162328538442907432736462459174345333694045626064568791619605172921951584966249884243701770248631743278001498746281932128146101117868136788789310331295714536251719070351495563202435760122581867450386181332421793340218191100058357253595805300858967342036490178085295839623828728430303766874324898763842418671170843434776570668542361714301005103423981305021094568856847535897872831468993541214093493169443484469384101346812879063665500053099221292184141131376865104128119975288975823775183706300034170357101994839174587202546221168803568614936878775289920082805694542588359018958104053600710015918688561978726010733663476402126249631502313216766250571963378385377427832366719883980367312165506684601447635501815428170977464769976291696966319960621996450649865413912902449039197096804810658187116563350460749224310029954259049563409774595681723092754848160662673085506199959316746514434985844920333797490351034281708984833954289995869112181747691189740707293045236014069304321299322230739266395639041249810869919200201889785605427571210744223219018368968764290762786986978850205639252663633320165217038544852717066003680773274563818322148146070463332606431259340057644425276476348601436129557476434170284022094725249454546518640223233570667024382571801485885081470270373835270597500734647885071581686285656357289825570282927879276515112831349111156438174510256158831881977432894525596198145573946162823891377550072588972479436743282051364773144489514754041116981114396749423473340251700297369695548692358137820208194808569909509727001099258568622976654957696739374852086531176313659798474282038811135972316931908884076670577814473703399535654006637978547046409158667339974398302569158853169943786519639814530854039580567780966177852931891076772559815943777794669368320382456894646777757827720118605261402399132654595988234965116673276087636581215628505447291603692069078885769622584650426283854391168432800179702525133557089181981493495428632155835021913997518997852316703457478865619451573410379188844119776737259805991130188533496176065854222745301134186779846267205872086494062067053654643481995273592951450921115848173078344936495184817948084761649830348982788462791924292317635922472338279469882701891631882858856777136313239486353039704849322545404169886452765305270893726364707394792774339861076595967068329662694068320435749892660044774777267669374077844157105216878277549110914377288919250870001372507535198878168840591673597605064574479871324761591786484258342833512993564385587611287954743905130301366515204837968410290343647236837523578876948174454551546338788708762517841851095011431868108895588988416971447549491242195602914092892395408300525467006910925752694570743809595443969633241256049226528901177337799140856923814732482752362987312478856276243029336814502280530998488606679132937685136186408310262874548934168383148277405026948919341051536435843695774698491817387747897715226268785062415586639253624158665216755915826017525213732467001249614129848075734065788320097181274333533606551979222885321658789798177314637024193891034337965498949590189149139315899495629520993542028862747540921979966782695122947732143923268865970265434984065426799689618281574204245298526706532726708560454271748730244332539936467691643920205692663257764850829079612825475368047055776169212695043794218856605993163235945378795569418508444011206616411324796311224939013452025973091528012059061998452389524635134413426482556441724277256599569657117660079714662358183650702054540440440575100991500880583725721311397651092252809488526635229938703499525124350606546202105223334356908756261435678879427479202028358598284649056802749578537949684433066775598325053243020934200986660178145199637219639565747972407956688886656555993519763110552636897690478180150116658787542447105561625837079343305812669640348236139585977259826908223789202841787395324505694237410567395542567193392529047780215937827951073802662713071859352948979673611494633446402109719383263159725334409807468563105845835567284730775258632463730030528268282717268214048962550179121514952236486203032768397834418409797517068143913022957967855718185159808583420249561423887536751922879577468764555765871927183494858217246210814171182496573692032283376600583522640168962363722769498858110864954331489776322576892793393658362116906490080544956179353746307366368545227625914274527346782840076317851230111409220452676294194033805029196241467450767692219029408584315369610334496581493204038918455767835283845024085414093964023010302744758431438033188695891357548888945975643638072993042876503410071299989976088198158075398466293878160815325948535158186853297639480788658654427267247480203268139293997446386347138993104859892436159097304001276409461959189546219967172274339136484445713702066137741215645419452949306513852685068108661262947181666443348081899588304199404874708204799974678436120835966423592802291811525991117737430013912033244670486088949683758020844764914565607303307518950002756363545812411495930053500434437509586723424551943768702691554394733695839073724395285467831969269916498514538158201530248129531322323424936148366927221450997474853820258947036015220114385283063265901665112708120141313241054598377469918141270407376664217172642082639905921576249742046545439208381645465534305477729118462672557183604664002980234671635744781097214966544525029395528961178656534116605933031934957920522336241590360356689148803098806356754114039744019126007137899641246851904144219082312329192115124529291153334406356966316640142195756433194678939603050838783193228717999179209441553933508501876037513856321094116555046791887769783156006547654719349440736088803262656269842370396980771896159634115003022961684672510384146910310371014682543759247726922692648329909665914490527715615157453639284887842395903700536368952123911036475789720626212304293674692166084673511288039362377582617474614856898999721880484560924135331412169566191852129466225697159079313386852021566257303501169952036952521520203003352486225212233346700250757105090573619401906257786602928608482778858664529491113672768120841573009101031308365056197054645488905687728902605482438028803433068685664876716277006967521207497929312989075057356429332439622472527029444124869643145998108849143274198787844659260860298122775755746088213587061720753083562810105118660555340087595098371633639967308146409846214107754047834137220993020546494169262474867490279765163637220226842097269240382063609219061799352010531980209271695392784921649402085840264163632182611428018595717170981875852925803748246650516153971546677877893185911698737580914848539281966648290560552394460274727640623863526058997998101229644804070832439131243107021306579421483805838761043864983084286798438610430110808609321494081197504636837657848257902658790320489935003451956519300939022790379489817594999184563050782433064937900899503414995497827842063891430237356285388981359636871806879518964174690367539737252165615650315131118651271145039504635035695613021127446111697327181817873831403453761262740546544410225913292791241056286090699455639594656244730533623371612906545913652993982160630811035143514218016769640249015789127363876348964294200321756259168750812900187720595390004645748013989779984390020247710211238868239177938000138949746883975043070907571190458894570449883041929551149092884157995628879589086772705451044268350633544691969565365008541595067207582358496157634417776236744718508822530603280620064324897834054393080812881544224381165844103415579366401328576527656548075249729197123720330699152298847576728083991584206150397620117063860610520331359409136450277200680467882527777048769609050790992893477028953537858449847812328195923143677671582187470179684667374299738327994385349654458018492202213672377825023982013707245667602545131511408781154119321051931309968534489095646411786301890003015350872309525533411131651803855041164347451293190638844566933157183674265148266595089435135834807677553629872951959487998312791563309346154776113039102479288237341374568146353243361401069117239694268916556633970277926636616990373542521954951940794219152495522779850311029059788731938714076582648772475872043837221174356528095282948931582098815403791355095023663024750317540595581215147179554552469169551437975708182400076206078127025129982046796862511903217452493452833230762183998311935915802305761758003073842582993336833956964239467795054382824185090250991978005631940075967046956042843289655487818941706066053065546299485882652011436978676453911273957957659846732856013911122218556194809212836592307839638320081325219325083167548839504685076098431824983838401756883713159000080837263024198850066724575144395141775911390541304946345092151316013176237688941876698256163482095904239253228791968054384630341891477253568704104218392933098552840814385481694304227842957471288699676351143743253619520655993844961363096916179953825497585072480552630204695408389677403193574198617585897544800688553364352633147995215773606993002251477960937911005186772012008717677541606594640245376816197465789918902822662030427300126708763850936279739534353616498001896889844248746584143169220500956989155489488083410440050478234526947149413891413668187098730589123386031124444141270548970235025530131209480834324792120045800885258002818029620810985664052534257152737381875095486754305826391329552928350747785833899974613071110257578578940183782315902694632476836540984771157959364893322407173937249813325102199979578033568608103376541026205119725304203279822058602873834588494558051729506880747274618038628345741070604565025359228696240011338488079785574631259044297657017401448243669823670499932875570415327098130236407230796675872143513654201268047596541796896892280731645775117656566540250717521933185427802016690662712401586637119847539680977774279460508101730130106227529849845111236688005336177874726504336287557152738982065619233000565762352761882439525794001067194321930387446993422392849086536867107277053317797923896864277005620233887586542775221121208624228249272595300631368515389266954008896653985541105527360905159765353350371787691025829726006242562597650292550442877197831874103795792918247591900589393827069725937198476853692247780396604136738581723984762193402720129179316098896188826074825236349121802792633021257810607913829819919024561169356089240420273286137508180700395572789193029912372635617736452870546789851056881846507309299442798293903184345430683209905774839382026434274446802244788471767425470499505075775755374932331402872170073194916339715397853090104929583131731824904998712010424250605676746033917358412549704121459015051541510640620781359306929448307078775702430656807511772460932414866522763615740544400427014399179391723241572392656030968405893825574594385265123215691614990664654211253343598074639045648832188066920248891894140031814353942459238864502525163895830736274349691205387234087423941454890813682053865264102405678863759510908640319448241654779398426783093257420095562410654291341650132552149909101214488210054038113385028511425334256760721977159432632628372999502118780591957920406611245481376558462934462676422879099585137275674979064991050557099925255075018934564489869206870343920820051577973762887670911685611654355849728997559652471161783730073817999913594281550408673169138425353166001956279887731211991456995258827179639589295401245163278840496449253524606802040268506848837644951589867405074964491743447109359960266823812774888653287526522981758766140472298597492393631459950981119699592079333584843406385214156322901480394912186771924630375228100827787938305872356675942666329992605843387737581656043196882369442657314974866848288750591296417925127118803111118230826731016605130289344311626991225147424446778606865315039398638477238376712135435490872208201130845255953371827302262253161710522671425903263441983592187565231338310760854851710739553543350848898161965747553829307427665624700856575246184201251845825231277153511787516176978139353823845740730979388570333196850766855643442488923753807162462843305219387257186650191797676943795432432658364320551568121073011285275995172079936157399830990778141596073215328732701207692670795824761069253598599101377163538267957158202291138713163830493466592893085983485681181895507980930145296388646886088379671044225949265321505299821259190776261673491419467168840722162717800546013488820777382427808225927889306556584991798749251157014782046273811559318677577421903345242031687369664146748208263329088020438560710362945163719303982991710148888328212183444524986021734714950823633303829326592075218554024328363942824826449440981711080779397683210301944879688631993268217651226307302642241398648908408154480682837820481433112964521682057546147591221352666892267546900748930585576200018736472549233450669306505614681502498071139100052128573056039321874835744614853002429533973788232436194149572484033263784058931035476676341964140409441642467999905200509212229556524881089915986879228727904704518192547089142962526165803735576669779610796950769690392073099940272773186466982290406485662318421504135873618480545893441890435625589433335545890358036707755121666064961664873579549718783747355309132181518811294276767077328625800979600781788216046882926003115962939045599269220446032984720575262142560837425155304921113002366746045267223319398802700506173701444819123097116978533260700723437078795773105621347942863165936860083246142845780339632771873598503543965060252720462103968332141386999014748377363205779804089080205969719067774352801751949504832662203113134470051440196641928525779907609001326285727879701972216876207657602138853538048995601738659936102716977927292668303227516591883162829614256784602814023502586507799071496567582560567183433823312356129846585021941521921669156169491492552387000451323085276407034902815398375005520479773236636175602657670581077191170756716107272893989355083701622459861438548601317758274215904616574996670702198307543169699644466335326617879614734988105028112624172504514765745977003471056691900664949973077686656537879054698964382131296269832030993409380742199276946707573008813189042148216130258841970621522877984843806177799634503459817829262559203244750890617420141233981947237815621751866662476019880628527306610802228052617361505412786728813985513289467043642333029064154197394942423788570197402116469366809798736942969158031489089452183496903587806869848029574241115047321998883984835119477447119306729932711342162227841231439965209267920930919502899912826717817165228500775219957103370253789689466110934310981774196064242744549973827528732380081661714582896829063757498678026264568779893463495491235586894320833717431447841391843140870800554500959243764246838586584662206563188964308692277051117170929118757256671648704331858949692595663581473349429921453983829299395572181217402409757581292986222058671043339537080428327755923025067961386622986636116758143512855218303500020947210964131579372987587774220740598997421974961506490174840024407509567216531059707605384898333833048253622583302457546889238230568512282809775046963372388628817582084298054567919265721789835988765147981383189544361750072707229005583789897846587602567235134690283866080083723047138348455225973298606432683452911314030521078800514021611261022503877467046976483670193593960732552670823932457417436086867728108392616057299148120978785747909977351920921970192059704946280330008393826569131255876442672617683230794943917923516989755837124328560899065262355940553802778952609427172325766195776708703876978580148605018513236635426723893022035083455119435061033044116307820286937167155018208130541901083350344250793202709747208335656244199835555921213532122955375361935649469152233214040600045030871161310079629648336997113582295471132368990366689819559266135876861998864137066278227979431922020929580057243628972605336600623297958862661088094809698351863633556373122837517305654921344715865290670028362152365481160179548445713875173635070488666897560887165714726022165393005099819975813947862733072533843717075222294243403181403238656162382412567812612700018882347615710908884045849436609693080287109412980348914912522465749620471617226953701947361075738995791109766162572707359313371219861715120593777915165991820584386578655883926852197635994510126505175428123548915723017309479599837789017139463111696983351897166025758266829831881920215269091872548664693596582256843497551220497228799509756424599286435082758433390118261584587654213109121428599797583354426685126977342280416945079898972548753035307804354170079047703768010734918657885764128179226359255505171314519919672889807239434430201746991083891046359907592805410564286721024947771757384315398606254569712065077777565146831127720369596239271216555745952012174882475854736487861254286515523701263602917585520714531702382012871134642826296962937841026926605410859230321383288949768979054320800247729003729451729303943883339239324710359990160887847115208907236654706030637003087912678441954097602351144962859482228810913320770413990195297042069948660162064647461187000873539342224326794342133349201066367261169741806187330352954110698469763775424712409079277543328793034659590229693985155809440611638291652135735343712506686922899126043782046898875288500763203594381125467444542803416744565653293678847304764186917665841686007930644972670441959352626038500052930742422688848640073519000934920880973026319737810197613993867205956119136881196140655497813919117133229676692949735232297708495401434733955280023417085051999874612575614407167754381707029187720439308078674450184708243640064413214223513085800350418993791710768538718203440441600350899936741075021199314050094970595269927362629140791992020630206233772036958294202570437528978764936817102881265867079987957829584591403259268554368945656757896623049402506003714953642940948485960389733176948361132171141147456496730926342969026939321325644665577326811571499731937808791063342238588934626669416919506115507574276446888992746930122741425778549931345229161816409848233861403178529523354186515700302661497336225901781709658405641255267821489125098111469090039016460368127315865876766573243136984099857715529754318601555486343234768150658010885507539974056607262431393601882185341955553172550048021444714776721123955957116716604531842638837489800895920458616943501592882053355077554131229610663839256964260931742525912948813928804479299748514765608131263108242585738879878900422886299515171511194057169232284393907563732851081204664728620741202461504024471662772386215204779492920367784302855787431445257415354770180161372492951082502307937525410416964087694171946884461023315175837487612965720288558404184500884872975803462938050803261186966570584944755515152517957549793888168763823309896304200856753817809492850187699537287876629535585398921019484553918553596371835065730901501040935336667773976082746897825363049358203266380748130874417181031490727458831624560401785271770948799271455111449325181894126886706000418693832169081292106733317463121568584535499329067609840297532651578282744145854933262773121752907327162624403378182314911661804357634502470491912314928440198589198256699886677739700496166402222167783461710131671861564090411743161876062589911541517122803869624648632289513560440659024586074615432931603760949910952323947190719531593801573490400928920133907655040345110133330596035487578702543791102886917156911240679264214129754465950362887415055087153142559258251862354341064981166711035312033879514817633959177155974699537089102527186038007847991500148660447459847789904215867542503759350185903951620392584981111022804283265155948358081461158893859737167173780876557461453310695648881103977067273104558176670406355304530806562427583989213266603187649811634366447885718798431946460033474134383598192718488111308910192341727707368096917945469505261005880783901141270943491574561513110104774278513898755990252381823395730574518867376633449165158386318084382709241301541182848244825026877632265215233271140168628720137771481744228535127668561667251869153057510369063029330049776367722104489464702132668778767784783854084918690843172362212357712941923545852224476791812162877856240065087552157143443590771350016343855154915274113170525441277379964972938872849755988172004128928595045959325146537434551812110926167409059845824775225325339369137946322008927626948017948529301720182818825827462619175273096502534172559642873640317551530952183140800048345294675818425804164634731586869971836480892146985507258975359513829436853058676414469392591736262743636785111597365078362596107711336806383051097955681841642658077839998746807871786096941208611125371227975308380592714810428719330390767704600300261902286354844403912916811129645318848815717027792177856072545955042843273026898867628934131500280543774357655875615907423796699111671727276747926104206340876854380048079596389414257980791655846297525101519943408447698455269720020267427538462784264428070667946887426449801686912302398916508930775196207555715588196381228462060181203297514440948048480696754704154688473008146733593640626991021265249245150994809377732806438129104882053670449549605406057981423139042495309766563064651569764527842029051913191173933286665794059541179476973587944254310118134549163906146334830518767268098117580358030477955794971862756875034736300726178201500640310148987337602322127712578099946347838339308780346247529547615359504074706831957683056878059970131545353055614112165110889538851127175495734707787630458170034661981672749670184961401713714910911733803182607024558695031549790192216937100986279477860192721911166140565649078559196475945706329951358450351879183108766317836549467241287692376941862564218286767050239879514605479473049874973489877316044763924491038528028998201475712631825391203155574804241040651635205176413625083243381738144574603644403025827246174762106861956268779451492564790775389462298856634176194224191640917133610104783072811005563090047153878710358079594728003812632739154183427472784153543784331421887244271073736078871826028839843907659590857266676605522104399803222459954967641807159210195331633853584326821324470142416969092588216691259875850432759804118555687999294897932817732753007402747653785123594101648253737556289289750694806344546398425006352663170255968398556936257253383994446381088299005090448590757798692700277656204551896281154436900512614521400416231540451643229791597685490550890902988226580062744663397362520707076071416472108275766712234671851411925734677880837927069176243972869760120493169044754558722757982603604525720003995828279526218711540403769625040094495640541200452263852718581892963541791848072646594009934035482780572478907315005190634599641151877008519520944548893457855703236472661427337742303226861688692666124544191527913799816765724792220953050357790194633692095564715166933011755512572279152033520368670282468672459220723416783706828503298365820131197190590842340897922965261027896822657951427169150351678486417353358871443315907093956965122569194890761376784891791061385579380105989681297152149789584365829295656298717585051682987148853251604659661671508243341203799249460635835419652278069310813495674158427200633606627141780679246339845568673693370398281366380132876799164237492160350243402303560300511086152357698195930891378395914642166935357375063228367445495072702906747415391799123291747002536959105106043479648591454401011769273584384545891241663915319199353400832457904105896378007660656960795359721399123710947201438729797946325211091724513770912511015367464388228089599119936437905265706576326958589043282927010813935513628341083704797237341515547708946989333619460837318820657997906215025178562148836005943603548699487441973491056500484108574848670087244630747835429477078979667615945103975412712884698936202758669137670062125640172383758678767279621448293131767213979033526052788434970687526226677936914277583539852839916486676860179570063611445855711471799412527223640878422745877047498710775256882560209683887897584449434768488030290472806885040442516120962360447012731906624268839235736045362589490440439424651652573734166599157569138538455727767287641876251991712818949875511791483423389358110056293447399822002660358746159538930020435452005873696750368789481415081373503586716729272361444875635240248874213809513432470677048211636118250535399331323257074484400549092802047429001159610962673424369852418163624402393784890636568653660784752428503137769593074096847561374500805333023789820754092935769905424682167682363746927476694899978299320212160879342391408029502537823975623198690911084879580854136471680283896439635029525806340873886460971495532622595263801789576957889660196342860761094606955766152120018638107967219940292074686418907424819010331766940103834322559273813942783815967360202903328534420839865416519885916099010575525865217265046927514895296374378956855667783078375105285279988221949301649725209360508500585218889338820515701700455228088627700547613034957652162390454076079159793577395605634026394553515390022038917572919702841211591990338631523618080367567880346000544542598623414579143102346009845812987263509914037147976823355224648696437975502349983970707900112234112160036088823656485727066368334496422155663098631015597185405603636478674749959698746860056409603427257013296766103455130389701906635858459063431426833233457832621249651233898287247363615785600550211980151822576277746204561943439717519964545784922824759116133806612499148897709718113215439691327016820920753836653055851129415685977319446564292481839107289983644234478209554972602319159035810625775815318758952725598225849235930390112324016013226055376891798014019440106129495161175035638953962412833547884410364602295643085943127433398170728492666749828253623091414532772271443855078555732849074633150769135826869809152657653811299203914669381956678790297360339603710146514743925108369689488839273470138290679523609129535420276237371888210009799046323814688282678751069185571259559755208131036190575398042034341346081934898446426947269033071257103167964468500827582697840373065178678387530335348803360943942721983140426915486661093610713403221690028525866305946210350594093343993515514305365117609593439782555104671031338267163773018493659686819510021745639013152541996547594610415304466851379210391448896478991302420703366814282427274641339408456308261900988950482065149849663304249392978512946013243418181694201326893334046919886259815648415361944900027804664011876241459770544425064720907911271403783869232940313310221712273523060004889475674471936115411469951765262189406612380160699634397871435459958804754269247220626014763553240569778822196578499984168634751534008260000344615483756016795361086641433269796249641636545911833281257227189841607257598000459698146277170119295773249326193934731769459955237713925933852316127966775572507323036130405058027097196422843228057849341054369107950036349064611310670776872603576283728732001346888415660265984372887980450389175660552514662807843048457447053400733931262865803894807194926356951162160800490765750544380332993117569804989756892375009839211924802613419196789859739687524660945666179171430293917792116665505177609185422970634487860463382631054637032293287136820662938694678525428379709497529991023325116545794241211178776317154351639739847332758836304399445472909926954691140920239402366826971903094070809936071440069813248085637278546721690048022749724747586199411758342477397641999954452994540799994946820344444743616022358633742011230440658018630799585831144279431567737871803613645376739075132060404947511405912534236794166084398601927973995880487057651446626686544567022564985991610234355509815490067875952194056513715003640649722293581088837024082390547430156387057871803478241984127044494305690711515797372267795498328200725851867906499485518598680933162720310337971566358953698956623633387517062037719753411129206227714438046191546869272138750231310794544786689072850262915918850477012488015603545407922726406907825970767341876314638369688051703676015626362927297725564955161805334799163680189772943279909010598520328906317153341585423941272956250352431354755825512742578694006468262186603971173432216476138088939259223908621642261526536062562179964189434833355177010212196252315676880401902191342658219947903764968002021337374357985669619581438957559835417186216641778511109486510717421677876608079994552850803605795098736514805627307083248349728767067113821703602953771227962996856120734945633562090128117368543029943271292837696457341529058833446314902382574917754593714504579167213511921380275942727708427679765940359554949870346793620233582793828523665988258905684654410039260455765654009854763278993805428403450607380955592228737211211711243186056332733628965702260942707484920551699088957170507152762461544297087300830316689369471029439586161104485201794187865703780479834744366423586552093940755795709551904230413166081505156323795161987749999699933921392616582634289295915532753218013493722215765362263965545780412692296254524348030215918188190285237550151584814878123868443472422323836712122398266423714633863435445323726901064825217161319861663403084740751822999818207207824575470831657099703163225851047073397972716724057602386382512258540917782595245278847579281970399178304647969848263389982465364035484445073671556034495546487821852297630447661371172614619968206135698181949248563731365106612258289305490291797495186776023451876206881840936995161758053648050261140957969098651479590482282806747122774754203832643177054610721073531295175421226639549699114227218564543401467115345438199963343420425375825152176911686090237967307240045853569125502228491779491383988371662519344679478018675150679403622645650592699516379822095332889412824122784979942368328529804985443343137244844609957412795563034678531278058412654057470975803184273632155134805606070791923510712499780093946264415973594709439001039130413613777721895047586465554093846694933962129259642041061053885602736781524428997599883867944433459005587363319524820009333070722357898053184512909095963365538275642102930088965025046873728705978198610074756831196007830247765160522099575570698102268556881501096050807835475151893193676256071838036789177618247671568658484762533629835900413073167815089956510509541740940709086098437833245661539110633341489512370623207662546964510120616008709597645269775097724514767802128858394523891293142830403438089450282730627827415986664553779503814010788284891648484796294036479155361331858504856651601935083254253993244107468645939494617961740013343900311306294159275727571001325846270960835431789701026107049601944468530966071185252834763348396612249747283163573533842309302208342792998913136123806191806170219212674990814486807343514642604573908384417137593330176498311432629589960584387210367506340988127886263560321754482739294395217146960560216769432951316224079488752112804162048462082632086855442269250530785661619295549852889119453955993210130930486015955530310259305893085636914473852236956773059413915958754204087539139806491392994209452900297487406223678096887593520209989399865450688597495471097096306751064608496632343173344332856773979832872457884724278863527696430414104960876323977431680714711948692269014270471683913889949206028411453384882180755036475433733390035422909858194801669281981310913081779222507900997346981588096222718318465195735362821055845317408168281793599600780398723845116761824824847758078582996101698554485450055432396951886197512582624439355082928288892523359273886398509476059106367036752502478845153926420705932270164576251115829800783726737482588775928284833726357132761727585312378942177734952675003144492672239506236162185912766636809145663800376209608592292163196447375445794172184537663265704953009516218278952405922891708196765300671594425735387215889234803865526662959261044537045236861176724634022706183357239908685188359172330522493510405988082947316100488549697553600281715582761495524776236473252858880798552426952975425031727491597649328423550842021632104741325934367392623304399772605358548736356891641984703365936320701375188766897057228429572700512511911522852581623739325975758509850024904176215698509003228808953882659475959911038116593879068889627362999764826676202542319855393483257998129797845424029020440637572317583813679564955232862060581393545568574276036889370276433455058423215419954638325123020245994154471763563719191249079647919213151068914582464097525906115764699935502844880009154381574894179813056158074108648557954456420204740560244345444667275093770746629500234695084651138447559966458547982593722689806624349589270753029904817259361409928390262230365070619717374806665211302112679561888082943286725972103711161762968936772000966618821781879364510485237894995681377825059580139784789060029542300082357198789009431604411282860734730222017794968648291699972096001469247278392449949838486796228540264749515216312044246424306360079668914361105672551474691485899156625584786256567005412670910349569734417939145515488732385262701534998306248802617988791216025355123723946383100982352581785145678505823390943716081528596519086270684841126735574762085900270594200073679725552767620920602238499132356653289881685253776207978768710167218375738367724280070943388035629031934478182804089747669480741135447563675183850380442289136818357800457511284465153177741773414793500466085128800998758560333485921570272461754358413376490020148875384489145187719719663587771312187208525783077574038986075917312382611537253654137900676226576288620770347237547328990883912019894162092565447493733066572304006174045932142797515829577345051830748848163584730262430872709788450395371899437297482235368526333616236131331498465789653340129648522510686035772153131078099851106485906118923146969637246183404259217377804904180036376787675566168367297252309204409498342076462353428818953552524658023249890184644045840032732644841386581579420095583936001057028288918940955738763036615650362271387295252973693940216694279209727966954369148146720220919242302992386121433315263527842558218659908405161483720821966830479733426609908462638473317987868324572159902153236907374553966243065999691097479342994379279072689085892132429759150811126242240647783582260593547022727632672757480586682190071325908628742694099429670974726713643903734810774052366083443661711919013104940549776758098754500553561827874719117047775657103112918916869511300947149251709715019184965137048290506332341189720476350808728698647394180825707566995699410983208700520963664765308607904422837219453993613762634620466324028527042115093299320220813313694589736662180563816318915090870468987055160401028262095813528792476270908027153915587622687222224703408649242853231469003528654818661089180552629097115259696378070493414838571951331697792606133965350587231173336631310825721990553407740760756504339713430984588629638020597307394288030695290499872501454039477048719189694412854523139241347472621968001267777376140222415026794657201671267643698386076077963307688649355398617129716176213707603891645406432656483873753157292056439546013502823697280099736085004360821466451835768793888858001823507255979418136795410150939396239788150080025870671938778777570161618293372049631873022071160560262533652242699911757651578831174661831461605715886606306990947044532502530830645881773991321851412314230678802938362792256079187513158816471790269317985820218442471840119326801632804353640354028657158875793304428479903912772711817609730945552909468594536352796450511608679981382217091199748442922674077009395028615647009687676046381182326923409519056403726969061178344691375387976269114812098609651135604054117844349492211765310952183247465745182761310756648855551629139605704721855767193532274107317733856131998903848527459702917883878097765123417385729504640388299395469021775991079326424948020355309098326683076150194188557381262557467175702881205692037887342724015657994083429720430957069107758219828929945557040226612266306575517995479007929807956857638341292059399196273587717587232395102965863893895548520294696976507462763538624745626616525117377213503398684308304242660843149751781571664120692564362412980470644407064641366387177416148978122191085802170095092652871793600529434352766063213550508186698635588763476112417021619845074509710425731046539317276771622801178130146367895039354274555366624916776425457984453874105268998887807080812451831766918119056090853574379850742819793878946816585777375060629329932438802593033703029890631425761849194071159919574921375178008300049051959089178854206131491472781499846091311554741542701945926976837177375595253549547269102787478895231032680920629851625437578352766667244015644925583097547774833729927434428247849526022158225658216867878075745286473642683572699111062698315948400410666334788424461959097968084391837123089403426926996681300352301121441042918874757572302184265756557853685278324184876906578694122699623805990247901749334969832586846803431861276597274922926489766174713950899305722539678164216075718443535070982643499996729653247406330177326516795242689976697458980268818082289719921401285853554459380970988763980458987085230825537776168531014720019994352431577870395129551389468417608307487299513729796158419810120873541025778531397085804248100787245182425594635205269182044874450695125703367367434515013847827729888804285231173180340480173994250766014991513893440519186323869237914762036665214456438605807022429481033350241874558556671249899331784026701973797755009418970670852961320820689906335749568580998925151487712906606623151038768420704984148278530947382341447478341970005306573753077810081835929658396877781062850537262512132674966197187168560926237829125606833780628146187869943522649771726117205062663114100085093211467689639877033941114075844788178032589211631303146348076559005498558964680538566070479836765908644639663179862488506843926598886030083766136395275151079996494997552253483741225940696526269030178085276158918163165007584614541287453295237655069902074752591069143685536567206174553010430060506362286339736271266662262107721806824216529205618860602300799907478273610806568489077738480138794944200734515631540427108679348682011850328453144135912008783651144734521672634995907420205194447103916558193423242690081914777582933785319203309199574226048249716698812317169429914942685715369317945162422641295214988476783710996351188877893082529003702638388723272159074328830481575723392724440981475194982382309670469839850148717299156324518030810496374259839636852530629108298455603820627032635260643304077485766939257547127533965582991827181825981897177466549503630364978761250273388512789618424870819768982099778268748708938429141092693326881388893594552569916725692314218040606732812052807265942171143238984044936642709193780701454672261481220993911787025676384000078718335829865168804180101004833587403868047871339269105093195847462296503287987372361842691923429498011735253840772542698551630210698750340346855706051481719811973731912012713061300887378306129674281848958370036931123785074628796303517765179266257686938461308390841449376470048142973999480309199894636523873416538378731271940308603755490277708984087856618957658068817788175622956956823288766777651792688548438084713563487178514414980794543516428279737630990374059128529098224509246722522880885612421843155877524421618776381383696982288450631917034545676902449601896990914933685375904009351370286165934216932169970316051523184222918559177220540950479121089416812568660078869754613661428212656973295496256556394178306524677085810062178954557499436887534813112030173335921074456797320376631337318933256026728554085189578440548244894299460388758537559566198756683564507501443496629576520809072067798243540320676618637658208573273145155264005713545975376976241720978363747094511753612162754470739474670264281085420020956999501725927308578866737417519222705638404557556506800536421667763573829411802249843416218000541620334000113286407557073915635855413526614483093746603884025857125427730329752422321970983457137076335824577452678803239264534467760746790847129673566133872416141681608686677340787522613994180458103903928946359295521972725794328769093864124180460001202998205137734560715608644100661611385278572116866350923152546231430569894392375550318834673168279034465647888160262816560335417075624716859933478560946966610571084026178644086353136891812277496470579693439001858206195269215735472098814661006842152021551786992249473052141245398383532698828448186441792045788094334644712968959298694797949311585646725557519999166732988183913766295207733070720704751192412418515383159579876662900778927661513430207726353673651101437970481965827540705934618960015616819421209977910676887040641177598763664403626946960414223067281469141470065326187751228150757442949699744775343762128216559237460439975809724625763002181061947212212171454779287770945294938304784389140349023274682934561929415640940042430646296706020726529255890455766209924529129578446990284970636193922649367329439999346194149619927199973941026877897641178234856202907648742885442877226458863026200399271259034173440612128736015629183829254370054874003117672416410323490490540020963484408758886686999445391159610277083237954286851016900090401009491401228865212368897142328754632758025756921654560440447364529029898972166001689006834286049356671242890051462774189384798758273682362423354186915590992976922316157989074643929532153812506325953414433115552234121181764573706819511027010791537805342495792004432290717529100871024578282838804791016659843744444813141231615277174836039562348464501937889785953067944309372312909146079839286593083909220873036819137569804772308057460434400641661403366066650274232414908635566618589527356260645342770777270017853372667354181916680660371376146434805376708068400167030915741430205501868179560952852826767588320724293912222906660027343225342658410454439606639672060968852603240647301539384187986012323216371405669374649445006284293000745875134842662898198809132636835745517621406151087192143581475947748670853620940128399608851227394671184451458233001990083786698516821108367195569413701290376127518298630541950928229978605461024903778819091538429163998904879742796623225436212619342218974863355118774898345454265424058392375804491636064130581958384671286151790787984279603628596602747737900988562757804125809855759784132065484137077014644033337248913576780498612136452372432385188633172583841556320443968111402491148025475654871068552823466322418353155927961454391009858807300219719470441544208994228308829384362332981010820048321530009011500768845228397133680889400256447251462013332837345001077682511356919731052210936979817932621100445579320760799493121043518033346557817370016004471811214649781364444656675064933632620212267346481016554169784537457242055596868295909096534406146557708987602884086130160736439368359092603646241681901877297227945455183999398908310492163182520088695241385474452640068010369984909540521786542806889204923817591754822807781136847425273958318405981420581768784690906696023214155146567350534657404381857748126501342307920319294369638574211217682258949286084923044673044394820788542297100597992650414658421121268895020056835807750931714007342661060130970632323143303154084576267655728125134043805868446727870376476120882749099606962073868509281897778979871927855095189630012061882434088547762285685831928469869315059319781958251662505649303592912196601339191354189017701156951425758446421392449921596266490271918872547268048015447813112413844463098487978592077858568479773291462607206696714710708434841526322253946653879425215645891838271887960520344828546781788980036250147474003480203376807835020302995800894371315413292608829243411981365858864857474457975606453031923926191730278748709860113389156006033218880192577520319670596190800216999774247384658033038448953172408050230778421697408831617235741145237463325343318377253417354752886199123705788971988860678774966817314763742724697740341136597411429993847869166032374038154527260505722122686544180033273647661629047986986146095693689599262866699653232582661209469364352506136813628910241096015323239725993289532384240960134395070593818101681621199904835233530595584435893985460113586836166474998587801182904761428608894390461052329079109042386116347357039981428998802278815253606044818002441307551136933889490459837983469844325543568837166911357771212980806726006663366924648844521886269694133283059908096829688219593820883908083600596292069211711184230595148254896025263046461643234820716547719527022863097714652220198051842995933798868655506326991891664508760182328592535651694785706780659458764515595549824160399279479462890603242151966101080458199978248378347663845285067300540442864776524651539215729930551650316778120939132572310191163388041907201076698075934081350733310152511462358894606899406462065150706212379663388879100663115096392891573395619617495164631963015336069078635572160637708803414132938171970180991353487522794898279959458259861456285099538609422068111991548945135191333540279422235399300393176344671130403580956720525267285008296477642532100813300314087386606631576229807545446397879559323712660193201216825174636603482146005279327177082521005014755015456831633668432695656381167735845259634347466881738676447488559469361323095164156163693810930640499093659034166613967991693853345279261657258177859965936636555617066273465132188168193896314790272094374489271960248430065325637326944226964175284940442616634936847036786320532126694944764951860097704167937032683662206447359901151036534924716683848096724940443737027602011176083474399946415008392153171021512190756708040831510337912355225334397200547463757975357571111169604328985104659040123740749619028412833583398119995584038255879395355657409770456096192733641716894795512273040261906238198898691566262253941046631514617191858761519062509596987057234853869121505522144569753562340359093027941670938555110882759992607711735929339414455906681249285958717050991504506351058000903243317916590245871391547317632933736891117042729407951324411170887876203222662994181541446590014968976578206091427071174370222926414724147123534688153690484257262587859471899109332839165616250289993815847979445684605610579603556323143212359174430210382909844493195929193549467333738457590992130481850794145823064519418276584978964707174649811962704677649924026328037521756508872080449921116661212247936200528829315954863229119395954792791953246081644749597389666029333934301400973995629865307422841184012442150735553376521665812284381780241455215470576294347041227324365228309548488505665425584469031789375434062665759259129931536366123443466585202420385225583069668805502523438062709683863812358387216993241202288990392531850901176990216111070500028006450153158303720230986606591638327369697592264891641630669507065771269386895360325385412479424870706737159974764787280273890345518656138461511401872404042688793585270198684585796248811227754875578133396562008473107826970565693081115188365354809976366401932289565315475242759574725868602845370613673083678781224890571204897796297879760504509302205709001570955637290224769535993039262818039906845330487525185378473178333885273478417418784417530693025050314132455814966691765276713097394464749609261885654385573857470727112775902472223334467966945593954807711482659861209731927540418530370531869663809391421867430562333663153984238683079915759272729945724761788148012386544460811969995955556928882006773596508104321832150383637781971440407353881784945422881676266945513050965191705934525971368958628234610410490214199115824079347984852906549206204407307563225186202892451292394465967250189461695958584106389966668852864807302238180236984421214104094853434764992661394734691249937544043787423531515825878773945741881361776295820413348836567020810310692633554815999896655082651837153319499253495784687199170074168030222763610171344652749094110442734487965432771018699401001859341013028497790161479156903979983622084692501689046963697232757434386249051340194852970364960395087033364763537143234116860366233041508934788736358294631119211114155037509279145290235714508752486029898717281336275614808718720839826763133488414594252904619145767539345128664647179403385798273857517767509750359848006452268480314840739356468504872878911984351194051074925605596692188720017119847565877994311395941969605633290092900307224668034842879820192273221470530163118245567245333556485373595783705708167829844185724583074761334777856817298712545310555095637996686612921220753280048086546139539794028734430254575339100554410694699542258951799072132677107095996931544486439914439967277858433564177399814249300932162745797779422991859366126523323450568119664103309694880168466415892660416335732966753391615810952214593743008470912554925995850757496039080860918460554075347496991540805079791633949545592552585155105172805508626301503590201304343769716723071312605194388089794537666016393893078713279948080591282691577266510780103982050138697480881158734565368380692818091416654128801321118616023897979416580453674887999993253457257645699563624427436469990195226377322164585160911327166948708490117585075765367788793940397134839979237314807536013904402498572706527535671839114918668532213264743048688883811218781503324452838216537819731448053866869733505156350964956359309616699502465091547002555004759584867275422209311723868203154917691947289809306313608475320692795130432880583441897045990809996387797799227304147928809405400481333061118153487786122761123907514451026842314954649326666512429326837580952621993248522735657810125329581806716392194967215939190701187848715884165446078592373468294515866995166249948779515243338312503310849059667357405227604197163607808817479089543749240878512320765655770511361222862810625934173499769417294755918256365919325948154086311683850907766938667752481067874383792616513675822669767419565240893523064047170168988928245359191938660265663796350738357996376615594704238738553168994168980517077449303680459538389874816746706543025319942421865143866854909904550193081425901441027875140184008151341961281111866669595659884930348690301771806218486567724084246127704526277505359412353926010099180606686216568495607763191543898954258590158418001808699144043330878467450070102516614813024995315852330828311947085901030366136408715993183754967011681471421204235419963422443210210479181350388282893962623888307718235751909562523173685800597718168825779868794262166221724709362809297435719323646598468304912998384922534926871097555326906412002182485174466789069987823668853628211031412078101253827957486815671413948000277023075223606507068143959212468456957580125983259416896783966112680105715695223844159741207928681747950893346164120955256832186536639316337089436857193571856409217513402009021878673467058601768477054670054942667932780638552942595225992382740614556896969982552260317589614757009088515281761416460657332440494399491235141653401209413898318269519330100952914676064101966516417013727166833890983066563652099560819913276376634684743077032248614334330677916912031091554749500095804323767116808030012572437157645060272190034605272079298295186052853021367870616992699656167133630148159064346025679247847282545329716175121001119228398066151052098616964430410609538433798210476203117717696164983472003294981294273362256619766013239844887045918684322329223485102927555579567300575458768753789712382576419597127709405225919719240590178671587478954364313248424807904542033367406254389425966278992776489151020402532706832399693509511592706553291400104765001866877076516735034762220364934502213133451217448244025293249232711169195009534028628473845313535647713235255119504101282854533522924327291737852698381989613721452175482241715241921129529739445100724926488399840523140387847602015837981033682226863746205991006150719977305122841651011860083127196394688094285973928152394050698759300958819021893386338735060526294851926760305602334929467378770891239712492147285158101784975866784190548957769192757034511552717216571068512266111896770389028781565761749771748151150521298661879548562777624904365121787907976255882834166719162545075895119588543275006187338184480616103265323950360530244777471407378800937642872746405778715337526214443663646882424094319782793704536546767906284538074999652987600804669363199780142454532232957448958773870833592989889722622148664940502258879065923908064232809317874366614808537957929021446530212935750809102970879497990984713447865883453567105632513033451884472554736170609679788350390502832361055689411448413784439680980533243067884250043489980290473733648689036037848406203124652378307492583335840090925074710353721258925429568986318837257127802834260166375101897244702327331175279354644192151239259051767793113744882025313223702645820559884729140585718000036378656212223022367361777895973054250403220321547766262700796824320382535423086843194561269000900969851342712117995233516047434747657582621494165334012845091830674304890025742669037004524539431155423465620842748800695423927322042424610242952199542227540443194474648496355700886506665762292915839656562243137301817486895058375250078016154864024538625932338250600595786508779634149040695401065839355160171451345138122815439544598572023252702448538812504948982706924729648600923839179372619681581547544207897386101432748673671345668425293839036658266287542512087413223385966241971454547828767586405478172530451456132351344434632318546439256045199168795235216043638197616250282339027439767345542456564829410391406139893507596845936629048771639495572490772436128596504871105796646830954443704698760378418021491040532432571425858781850124210270605685143969533385085984485721425165403850256746771195840353032753664207210120981365106864361296649308954069044845474957689976566512645879907975021245770044863163055214183245496273924985178209106521118073824582378870399260371409750429681017737591972971827679495074290812319912125165838498837722999579528621018035200072018453853547766566351813745220157005501390296496382776584569720463263073361066565406070130095519728426700932415254024104865900553561541315480031133742937600373394015395255211751324311289493799349401170422179140526614211512616225836842707440292374877076072724275602385336593475574365607446083277784551553714022033623577989387289614729038128826747387660444390211144985309028104738413974113323879059970784936584040822145829395403865517094122601649984142717380426457694598666209892687051848191826513836927778647341771405496868824864163911219877710505956168925729903863766001673830008577131442075586671750749630858409730797237694675176445908260975852522714792706315223828188843546305272644938449231975734680276252344180306567923076898130496752268280069968908982786658665746520506853137119299350921965915260248989617694228600469902347998875126721123261575169127009359376795635542840919016932841436320770390672474735386508266168624628898930870611801123379546790867624222619257752505326403831190565020586587394170093852175831463650975710588429350147896669191052427606117134427079089077850051719298045893979522413566974377762928616944131780031834472001325056743071671699422383800155143519762871048919345369157014996188567227676684613229425553675466267557431596035710479459797881176426645315778404626701824273259982026870729099515021130227248753526915651335673943421910024699926306555737899006628554958652480481515823990212780278622035390487709147926103513233998314151301938565884889857128857533203499123107777982715567950787042026393446291106834673129874279808594417638400252010149365908741098025588082409758572386876592878302561847123129102730345858371082396972127257183447954104467138934334009809927003330547085979769856167189774228246399184598423295037305880804404975793931471532376066219659233283422668191164587702251635585234281159609251055356978099703376410409952125685576343644009791376403272283559895203436048102323855666032901342182375173324011635778729297858361743522591009798776028566700105322772429078879529949470853532761238754098762911880250631185854602619962612245552134422543430925380855160686604717985159051917356531656766392084249899160022134897777080638838197720936929069129183165278072775276926055515347845970688103520253066451034577818149924060953671746173266344603696731585720843786134481076771444875002534737724864788947977811539581973644848878180388173647298387377470321952448550089330567638198286588383666114625199113714426609500939901204257610335525348238691888871093489330682640070924954478113268300202699409103746416171580117527074757330395492452421407106423679450143175402921159730550878115177497522542007734925343633907399552823774177536950103291355474010664779808945364331515749720968130307394211678835904534870037985091904392873311478123206995474427258164745441893508617677755964385454865767382143914938265475179764061201078906760233285771853800966442422215609586697385724834772020281240923169864808284250682403223352286702129919563239553203790622270734321575945445736275467406949339900048975110877502140790460181410629375995122158971670395553696327980039473100904963836168117094487855686620618862176214344240932296690987674989044794135192126508761131559398387954364502591090520457599827060737387142948570304772987635813823463127881554526250456668029085829867762443022805539971150916426396272029041909551272177757659696202445860591834025726718236666128955259976031216267134880955769375184220277881291574192230024577359481952785405526625339298371972860973588177112353625129732319244488692395850590381131491065719393903206121311028607660557080699502850325555295845461049956731845187243043868155543496081309496798017679374122768191433249905711330284288598419238073015182464409684734574615001400071858193414950864447257034925730875501156575165495255536006684569982215144245686373607577301816489745809875921354540084639695284816054454844682102596630672017250762514226028999394102782591839720707026122467096261420748551068459442413354793515253601667208786388693651104187364859318822285163709546566709381853965550833213929201081968102333156723001043052546477179445695008390496584883950956945667192507785634919955507034889991804700807166194645709504357674035451295920228275227169441193800763758155991989597375125223793764867161236963977462996577215566218756547660001676137793996095371955414887651040271033171376024795765938993438638344608106130202012495417169412114575501531075545029184589675024013773142263183316414279618714907025273140332787571625013360487207385459879385860405237280133999838590535732133537535426568104076597378722433577948146497336625644754020713193693915500909187562211642331006952929723736177577749622360127492480791396899296064072711879803338831302180146184220465646753150877836364280438621243887994211275435587618388014497634307654035266173730681051233313528421750783970631471476866976403533825413479981597345662048253629808655087548141268360097416841610739315041299052334834636255038896353534668521934351799315806912171395336556635071124430608380223250326445386233477526248946198105220078887059485856105553816266154982615987452350886198318123629667365866615165773288835502965059585819778587818060075941516940320691955933078380476336793478614090287567196664832437726311193692964947438968039740458938232066542117807677971181701030398067869713177280165637694705015365706781245605317347468180946944376557363874231757255182378120394362602314513959996896579403980069998576324141392088389561328595652236843237780341954377730541499137738219119761900452008276353737189619879860797926256630955472742174904801161717036913582785239824763107350157569919193803257065099345911481124750219855171143911080921670394649147456450946520887398052110551544346578348827270289352081422111382973024841889488366812188792139565155038431791475847949718015898177859462234374777016819395700824769525981805391170759869571797812056842698952403128679698960702065046345815602902500130586970650662982637641967959770985203220090607399417219510239827533321226112212893287585655172011876353712600523693284954164013583112970344161982573805988209431357028186992080640073816451193943849428534045287803760457479355599604533335228599840901704476386488447274227963350005066963676332702145136776334885412877633224026026523540946662228598987750282971930429292903855873088354385959873984779977766386767187000435638198367559703905087936614391930954199737012149096983068761376289999142604439196943246534148442779071996207367116602300538728105934194741715501193251416281672073211782581078133151733516841953890470924745439351464892860621505520217919775872727919414747645410022547212068412604626304172579627422899040650559819058139583979299097760670181908107267165366892706371710899662979773045680265364547152509963272393294815612972236567919957355100419452665088380812916717747220460901560412289347812775936308310806213673370579310335052225171094469212343481018006590834121813023001659614482398282685082271260063748749000189598114012124659953781378694258852030552909329393345360392351251476207151227029026479770219210228924016251257409987960877617162127407173024323351316741251957765031553711185161590618455377152257620480070532109335428306066761750804663957991147680365706709659037307273095901797464503591378326860393611288942450900152497216735719958880757114756123271859912910614643717262602120008556888703225284414558219900226815937905145297340469292353474581203417078660588180496537567624223439918146969572559513566520190363184539963508456747106840718231628715281774024529553273331155844949596496497528220257054782722554554003027849889988020001535194990650653450395201178546361372234347444567188691956605097542025433585038111531393560333805574894853364631866089628416652172592158240453498830045619239872168299714017326190173647576126262533707113880521974348007543648369252701760241454302076322174239627597688674197349320300107284836378849865049084318247804824872273862886534559568538076226259975949893037823649571296717238376456388354490856119339496137662751734174817281044793943164866161900475320320641900995880035946166302670378913692291261544905732550475477407769896166858179642751576954790377814576449867226708199943671824110595845229040069295122032278843294463903416775202911797922072760842709932681679854153350655600965787388624544490564594942742014711527712460098695010209317881286881396647699283832795928059831731833384581813974257022541722346750086434746783336545941925823854997423023898377852867771497057292854859703647898267584700606387785671367038705001958327562178212562098481288539464840128616479549397856411474447966894352555085720353147791326957374768607888166373005891682775268357301736522344070898779345263152806121445421225634459289683030370870589439459586947671675044737330624242783691509326505052313122227711110432629983164485905698180573913728859285070122688121907202688016847609338470083704179211884674773966800155261487945208675741092613536742790293228197459259976325883972630462391983376514903046706141397456715061316584674104301352074343802645738199345122563838730686804622542226953147449506093068095704011999154810526623239528353820503419579287990080503921601119611489252367668656489930533170692904672569098431825351375999736578819934892928388140612529709129260724175048513606215240887040410137568131314316363882736949522393834613858326192458386135338176450839883356477532672433476717311204287550314721972878110036121293343224390380602122388759438892012839156931926507960012770761927242433661305226255473738040177562247170448118669389069014285834754632545012731275808377327032258821720067908722428928652545770824634913975903252082982657437359922940446634330982649990635352064632549329731696914111011970126729911317123973607976238242266456705856083257618641984223043418273107746788440459502094685227034629009339723679140938583103162414726062343872613565582904080643988549627504997670916093614609457964508083557334125270010384984204563629146473502345209502008638006421856254281278832254217333936911460494530335334871210367672832309899637409663541984740288547017684672879295093601717292490021815224758552844489026570543119721817034461097989594624585475635605072213115841645927390416484292108280933181414303452692392847280033314226181893782181250543774278801502071670371149123668486371583831342607500940479139519544082885339736046694253654619158642239636321878149136043597630623492252144645084273516191830982132000783862333149091303252515947605586615436931883504111491341361241317378921866595085763311343372769715496650757578828042957335013242552446037127628924426838209198092974318001482625341952313741953193238006811302071806791711762085229525908903368136639667842989594106766480117256187156229100813197663739771034112869434754491781632492241375469625089176024326248632547773927652266496881666721996903531722250877159373115380768933214424401962570219873808205858432720012177683585147927437584542478985781356190380530811575377676131153574712147867269085285331582946726219958357499564808678667862951271455152763602545527650675791726021604309850894063169391207199730116047854355476840005926940358010276387000294390142170313072974754263088173304769089012733024196706454235903575251762127916666612291123361819465928312987653455737536785537587739930369487147084543237962300597376942240127976838735533842407814537724598851091411165173620526856010805945540773009322580747654081329574237189804090191864407825402799573535978530067556939961989946974604465623401767641258184999838127978562667620466613967713532358479661727427103419110327430523729761713881708417991695530009305637333756654613079064179644505479205760569925697629495989203539019761498821547264824939898847452901677229676155372208520745340444175745725304451404950404251629673859793471201951145227557061570243464103960763137863475833946087675257873129819862891628596577792603414509559582009191391303756922521892022681660768699519117556814462726550470251315820210705255765428063312458902283199280288699493439589701638676869109662998272741141025008695443806500816516875581551116283216783964848204440673978356023532535532988374454310720280637240175497749852251446986224309076742042758591651589882845150560268048189574038502746193824590013587522543366876226046169953369646097697093310814072180461982185462388676919809633522970808582795451572061591675145515830382026953995467760744574820511173170046021508943567137113426762681781062440028280700686021556564156761498561898337502901980431244811977931469627417766681677999883772711102711519938676953755828094721878701326543936815299722863648154954836918713877073748594545514734034218486362331657661887209676875095550298959393921165265087343405632196415022805838631699258372475987423684118095323014258459211004809893638676958062311297655591241354873274360687028307940649530394331948515544368310055624811001436847658248390444225737571123388429138081939619513495076043323378051458532220520365812490267673283822338000994553926684864147515250301581392765249736432608330796336657616994451843871888947624412944891026361002267964806750507638643501314693653634210051708326583746874562067208857120527761362695377460124423093271154992573133416188051058323432851968930896785909695250238059904236380604411840451652018519177151149975172677801222866661070018455436314955831459477870175951496797241093082866515694373764391492615138888689195364525524152843165582556764775703613966211766848246009171561989163859339636708564809264286482798191159477465196561753227169633493422163464417635167877947541031086933186898252654214052342029582763440421854099383278410208989275821849557092976817442617450100967645486389517928881617819009605667330961849773119012081171936716328011095891788781595936539541360491747196806051985318218677553500613722987588656607699121800168267058087117402739160268845202485891809563825240184766856695097152697747743607867067434986205226646280274192669791161825598547628811413393834490470112376003475506917759241473814859885163456799015914992739356239087689858880796520104414773340040257019624921669048098411543544237640719798254654365540553373523834933046317484238183659111452494007411384784905078411931557880884658615707535197720225326180789552993069255079260814909135029145773644324694432288077728215067071744166134565625863676912631724669882238782922052273568176097789415433385712602033131536890313315539010708897344562469536357551008554011663525731181543315561723807446723158456570855675018152537686625770372618786276134746352300464691508496681999824091152127418040397724995431960475871367674153441769616852133946908302930707944582906449089872066041602028290149167606199649586529701463017086349635874053146837196868501499784238574003012603629344537940832013059636982150048706453956333682980563026963705513980267124576529406238862269412693310050941694214776829575589842958211611322955365877572208085150039953269554128569616432588174534598924165955135945538161523448210580232994426130816108666805588629854407103601636557944527083135701338127877433130549674134693504084411080635471530449231629987608070456702439214684816801071044683902768581505225829973825991083855046480518523953492238323179804570050749184332920888624828208972246103924950684843042248022544709764081734997938541946518700746376274792602457609884813777478752122919197597253395827465626625577976967586508795646342387217479025693320012404973997887619352314564797742264343570564001177050375569246388332909295865239964849791521381543855939282841854238248479462543056413261251624001932868707313277089109434747291624983086072904584666990437101663353945960967212473825766104957556555917238549264156251200575121552027618647967168162556471345220566733692309541910204763335071248567086803785810832892181845793750508628230240433041460423726435561909246791146526417503723753071159684247905907569198552686801814936693611237141782280181063596566643332637647920074502705952911879898298672000948727348321755792038739436917074240131359867241474974770950887741130767409547217955670175068007200655818790926351969666474399575889051298563323912623103846552253812939381308957805277722174524815619162200415083110969862601742016133175477593049271130912911916003640306613971028344651667309862617092484401108092915122267740478989538918544600600706605934521917317993523973497716489225640577462815307090524409424162902410981654508581590483341534403135080666541702415721817491979693244447594522466499424956847993163673047493630612287865170222840893551440444865346136175835669533671577839091325767407208350985214240398125745171112762264791189138854650272514955616570230014236532646884829408426991193535259966263760305898890527165157969869662891111823629123922617527121752666477976675892965536714601073647044251957173850188819822285715195366627751350124101083046828856769805240045401966757003935805523732252441286591781446040191117152104308735466787234639772670318983889097456456070135246836497254088364724145665475013115988867749856992221937947887818240668230423155102200305135477065196735581233545627110676272629479760764609936050817841859510383240516069277479477597031505173443614463476528513516476044966138719330445420099908134959466316477327598205158659482023969725989606769585815783989594319788951315416074547331127994830293576877514361615595772407450098177147977303080503519156855464353978210122934747607388937862969621378558014600694271007021684951076983814611973285716914719304655592185056475252175845664918543350717264870371491975354178752759987290890649504576689057945446930633775591961549147889503634214087274092610807272755805776508622207656190791722672070818920486403390539849260382478615935565263742937993983672470437628404683312154572526782812084311506497230434105251717510853835870608065029928215477625488646551301737609960412841543004757635723685596520789638388700686650066601612883708134286912222679234310995165264663597590505746751060085571913390517258230762293795995155570599323239538583496392732252818130886798210990540236860928569298922324171941690460563848609641096701636051897352072658915012598684877623605695025609139758196539941383008370189664238848628793584177100354273066818722696332586874733732767703106558148724756379634899109078205488748601772788270995975825160958222589075180920191199939268868107856343664087811448589373477115505187464291499267745172132384453688737724210140347885881098121021579110639751535426340176541025014082103127944585229923033436540116189261939769923539154113231633451460448180697310172581729600191450274737687476064297709510848392375796328810516860388371462868278986671121791875607405281030904273940129487343571335833626053202840071705173401662162840183512002020006564469057639594193803163393226770329007328573314106861848532724927196156425414424768490347580242277379789249050234689554991709010083594704249227366352503506145243740500089485230442230179735745855924858407945421075407316938080514989259939952592480141259501069495669473870224283005106958343853487685960900177546765961284780431273416384308510098530077796368480199701120619256028854979248062002736743228030464823582649233204121412823077782725560645826341165388277681350660478611640150625588668770394201700462846193119447289088584140140601148276525056000825648404860808839380499392556377222341716743656378116923465612151421094442593629485295233354980693214307127178324901310812580788778538889612840112198143584534819230437091271215805627762321135080494715749753684733184452547976912285572914319885738039483093164850436835134017796839058098807866186704151093255584541873910673185772218377538005251897188581661817772300213277018825214624154967287322614635536354452239354390065854159176331928273734261426251711093178789136988373863954195025676550673886801881791155854624260756604864156950934552116453087711817279129729308191919992171887499417175383508347779922441653539607402869406381763660453321277870251019247210497266071307194969266549653177367171955338310441305708733991391156074339017449695667043196072486266116637906322566585817542076185880426684302563155441065265062100713182991572845505598826883145958211653391093071906937605793550700508186802415889588032679446459216376162754114360059358892590864108231148391489013729266839170516055125547585450791363023514388221963744026215166735988050100971829116040189295718685560965428488327867411351611121101693743503566057477928211821090513645494468859757608886828291381775894808876094019744117126236896689314057393231460150827331709289531826307425659401849338881636314140206634869950709917541119859757967591925673834699896593812904088183026772760832909390896534102394555879695394030967809509428231515448923317812940862521529674553898272763901245986638796349430841007079045895500752187098535404536933781201508359007434140278920455055978370442051185898079621344294129986280923526337025367700794713719227358844012897971466182508307009226220765045148036450938597145458434263921672908539481941544005602150827277211843268711791350351797336873829452663691481184794510447502551411188931917284590896632693158355345068944859040931183002281583748044031913955621900786475718239644374545835008688403336700526669866650703690143129818636348329894108089964527170462424924315232780155411503283687449486896184241902237787531655447413476587701557129041703721953729033875332698353976448422780107512692800275381604287604826555516455506421830213115415839819865835645970987965433157023271151558525351034594507146442151566049701108842000826076660363193048717395067974304907292952019451426324305899109705109265502277148700795829201733076786781735031980428767616738105442548674360389317878782987503060061393025437264170298780603796842831036247060668714129796364412078239741629406838491999225083688213111623133782301293079202027748450194712000065678560615979804754461692162355683861336505245359129680663632439157612384768333153585319739001816965561920638755767986904406668871966141330855969820527570695004609951625192293170941877477375452832043071712405367533755194143341777403826986551108517855304169451569840298194940297182296431606573076285719937646224774942157240703825105326466081612600299205744921120262488616897765427825992775304356744470686741134737273120208182358021363498487140872405129442100415059087126884751199466035152682961031843446001201648773169549808000414581866071328624910900193497216539901042139193033209841043448848721877524607560774243666926938593439523811677087561732890091353115583569942431102462545668088559866802009539158032880449676180371699955494037430754223241318300272533910998281498960886808469267152434960993282803792589388996432603568959579985928124801476718914250502526496159602816131833723952638157689269336751839011208932324104341793077480497996144211375573770816293429111518903201884171738281175493500831235780840299789893002499255335109110891754761298921866339115183486610538202736718210210712162551353599196829570535247850149393859584635341264090685796255004926672788755141539381925455597668956038884029151289941862161172123501002274428699262281135048874133286983141379890044911832304420390751531466411758809252917292205103307952788451859772276742317160615006630954136480730709617670045779968463232880928004057557805255725977362961851601575292343697711635543216870691303569175048829079451743242140364486046237723121146582947482302853532790082965887697283205998454395318746575710110979606259083144416196276823418446935965962922116749954370390530292022025065338782865335514991541839486509586591293464368297898426900370234411144916014416683485200472358157759416314957602295680268194800929124138350214584922302067912073836125321590641483773198195738826728068094291958441270481685546060432367334220810736774414401818428459430645224307924237942604336396907955086095241184602019518815157458263475794422829684365955440385153352613233763336167539076430975940033986870326906960318370730509400043293486875179264028929982160377534097131662878121563165738688369299198821096877191739504584965783165908756671523415577936927778627079911929762061493253850304491642926145950043878193054739644408576138911225828778337178638446377379861947039238534219514559599945276052377085549032629123166986341863478607658792864994566463047102149278975441823364182926531364028717089557502466220065304764854515290753817722074024639405369721713986966281276167497841837552280002345203826061579139993734495119135721195818801291184169732208559233565343613440757992921378694611012409997164864508672818692591415506929045701432344776612898018027117742722521238219516321612871241314083333178132968481476883981464706826664683312458871996201592582296299840122123409231999618424752764762819926323105385324373235233117094402172644811502340306176806066505326851485663103407583271852177943550016805079752237171156756554976972054829389478228690096941261613583965653805155892530565159791060581944765609616540794617137329213614742443374092766327889722632876661864684868344590183186986728900162810576815760607095568010634989974565639495032555434529760699555145203938366873136081016576308697786413717044668334237556499128715804629075235620098221343889398350624596398029077030982550157136173505027603002479250982462992657861838743999518944127528467933004998537244143951588881245018272739009090544739445205823068384221147900060229381305089630295180927418386460583896798423596186224600747097529817971376875575787891766450480346997793122810298040430129197506625552691928951931523355208338702513271307960152401330677386772687746084524570179151078482460743373586492228708875851347990355414384152005294744640127182183298388443294193716178981336908667215713978796680487687327884537672477747170478773467817255947460207924648428460847470035146382963650884158500220749190162959245140743259399093431441868784803151921740037632653137524640766433629595084725816789782900351696166718927891675116321877902908377549929250256808524209050231874302736377777031360230522546999457172492454888794873895125974523504358164576576666948653823003481004761741783547482301197884796949852850633046082610477487405565488291630859228297941850931965774206135202843813108253766204600331916261384064549037320007037265413609000084398978055988844527527796055357978464895478400292972084152862844796654907628832691819625389913156946972797530657031304574486291912997126931275785668980712940621163894809333679174118065508580963561445249683863700373712312655360334051756376493478490284242490368326852077777645873121798147783388400690119809441600449691438044651088481698986677883899452908348653844725321810117270720043304100366687079016782495794747657369277703132085809922102396372966611175067507200868513408078899693793523048624890052988819764057637081960812266184248951907082512782825097056131363123079767790545873160748361494683232984233513811567225138413610657924756817132233697846734943210732798577151810244692876032217479817202298555549224039428947075068849816532542075064614624562511489156215553605536127231526323852436749160692903001768687659944853284053293181429353376023852924230359065240037938905111622597169978437060217229686953485885462876311629881324062763632606646721240392087677248617833269640258151123440062426051729886941480360580357032344818907592875624019135267911416815725026619961486231746253284826354541655235617413528954544995236813204001053024206173666046405794994113212154171862546989241913934925093712403103247126515660575758259092524199392089859758859207405061802863901779829228514815172037471387451836494743268729729426082612246434844854329516544908228342915104995529043966142141354862065017189930461833805832849117597099821260407606273758077999057424365553679928711325182987814593798677831310041459446844155813847287233774241454493676310599778722074658024397406430331812714816640354865757435472950943444281625669300366163896901407403112709322660024623861209424514318261896304858620236271493011422744850827132118875585466980690019824224127896961429970438077454098394603364231276645218511365790938081550899738863965674748832142565414241199348307836967270938219478672398859095631991037464135033288576866958551942211247925856892346425387622294653038714326056429891393349800992573529121312158969031567485495518752787600391286291212828731812187429984884178774181516023248755263293987337378985544576092176531733772764895210309420353267882121260919436499235557900497415641106209994410556233790889281606639452701370253645918492350096873956133813988057164329712052712369097698755928947804156954911528818977029400879568366626291169182824278618446818894706998875564756055900892153601724193745864262001115407035944097808570401824735362558554166594954613654449644318795596800550781286314650682251810346586958841951369333797009211958099498309796394964008187361676554398631212731098623918102884555437619524331265854347758712056323253651559286242641404726360026320668777616758437641053602389505336621331218872882878596618727074293751075308684955856443754815891702696183970799727423436134840171956387713217668533805891297558036738436147226003201371396024810925761277088277284111958650667967052123890288194060417871234555910247476429123490414145175610450452784857604659696466651719994983325483310678143278034123645571954944093416156161506817744791971739033984510482238254197538098193322896841304519381793324768830934111137429527014088747284524811487756172905831958799687933253937201870453943234337170174626705432906718614910380670199992325375415842416379297641534353703899227891498247324757269113136974295781033530989308965126755970811816873989404137935114862984941981854453964637706439803042048760067482519734436014136532781828775166312048407751583159199296813185922056197225756255142483785779102620622714058348806301356535696944902597848413276948427301580652648556133001328060902979347796736357917348575284951952138701313348019024198964311195713807561146381093600303706432657346995870526357073048186487251820989496666598045061692340255883159292979186673766375596867244810808883027767499584563318192527252814950296756722088057763999508371935506690823711965657134965084236429904968475235742312418377264489348044631235783558246138080766782749138236088404607268780410616711573003092378708474218436018311040390683828645167138938713051570849618224316470930753198539261800301416407665065860262572710749440109310713024949208109739496549077085456118502824740859274601884364260031404836775887006101770191662671432050809684339629497434023154347963609520754940065803548806745887449440789951951867441868256441752443420326635447052155543688129164787094195375847372648343035780713770100244659409290786816738842692228964519562037346983630059231683596437673756222846754253437913470844046035543923443843468565754274101895203383789941722722335467138553197123322165604779790328509067707921385225260327067500958042646909993376070730161260040726264775902875496969001931642230303621464765339448892472726758624224487460860955169441923302355889517502562897149728355924421990242096274819912863348096478090408063799067921185788666501234343651163637140053581468026039356873704708106753541134375632160424903965924207741649531033040555848705688703258150911318232207461043914807018637090682952370125613970580004962973682208755986490517261595247496858664894496750923805416135214392884569094564846015126917738744294462848085031388519156815627650151790093313652051803675359212520637662053596688572575032929021757914005297626616093490407099583095865404479866851074874024248758682318771004742023812116490878999305044391113099064239552668963645046331909093502969771108777522506136092895722741143436340747953116728092444310009664682563876621891969552200051502731776631905977332119957351178503750895470489100019962356729562711077423585051714763164321681048556357768862813251476180576485934581883205688110547451425467349418839518740344555339544651874876054643467258861875798271735456049677079713320424127330485056574944363999124036544263136963189770693966532134308845361233297304547101176650120879824625342762123206694751310541246790682446828227677792441931393333550096833566550232163418937362927815916265023887213127592920030508763321438202484347215168894382904108317670881186978318753716133844324061731671126491211683865901511749395427003255187072573705575332407130493769437245669778933999436244957806781697197642139374292716247646414526311436709677808710213788076374441037238157509709554384709240111525485660515088049249487858633397859264993822093647736098074542935000824857726808861673605732244417380847020666636968649132376936725020937608880692527987287309795121418104063854034799769637996219460123578315041698968772313660189901363497221362791225212187072420130816996621744233237791843235035912322982169593300724941948775785347992120946150456094569508459379038515847962107718575615786080211327473952894555981063091079401579812573940430165624258340305977007960131071279350987280843938415875797390240776517782982706605992129595266765908186272022448389630526282141728684690110260971798437088966455823486246560767735807223455428117664374469898403261414478029261446541868658621632131865320901804091222984028382134807502071134951294607326838437988340554350564877424155389263710445429879309526075335510039465702009375021789197611631923057593510773120278920124681205088288274398174959493527339585261748347263454987411260763948454847578126744374845239463281409266071340165747282498194243681795171203059103961081996088381020112580978577453941590682429107663929427907879639142200070684949268182860828860205893102068902198061569771432599297452549105104554842718651300554462281375747923014336192612847801318320242058155208490343608090662505313588006293045053496586863662412578372498214959074299473581792878953742052045269503623601945321814403792112121661499683982484050857875616074130204105893104548126932156558692126452200564876132928015048420905901931235540484305105939338702279858436980916170792747560676775206679771572388741894743244887810223774753327082013207392010195638415970297123490058634233507972008286326116791762462320066643522302927819880143374151395289511578378520099891404613745723860427017074302877581288713881858403152969524738763901808373874880329387912119253802014956464987648021312555789969677826285448850396972021345155357462340495175842175644351517357352662874334410697952256083494443685364607758711092626538845649191363161213769744366531686627830562117101517460161486581568106800730880193898422327924404511718713277106097060935557053994155206321580897192776787785496847911945294848155758751254917739842856851676322029519003318067423012960156077583215363508653132506204061586857909092178530419764823941912609415436142322489739981935214569503977643099606078053962412217176067610034632534906593520208231061479852028036177830271738980757824348290287112027060824266953266378579288996927768288553738846751290997721024864513169890836687746174109671496848673111722345069122981040427588438406106118962666107858172697015469896299218634359654227343378995566864768825796942888339259735813254325385548289410942383156218829884324468808010958662036527395793820306885727057951016702899510822019981394701514021014217639273543097296031686229997494228132671091880346216598157150014126251387923317910686077827703540648967239145056810468800867773178379140436044357954591320133353703962095497723757605714376862096019870855409985194344408098604270788345522979507949931730503571156241818237962749116970106628339515617244053069264735904892774007125089366049598045308458536744220011673780990074786271743537851821456374264840022845078297497981460460714648182086904814417275114717951199290928645944140094263214555070325826855627237183955272708462919454210827979586930151906553414530253371569140239938565399379603986622806671631365461576728875475677521552313921695446918844157025431492435111382348358637557984954224203930235968226150598988200007519752036174025213630656254852224119534261724750782107557837057543911054444750531196495379084963973634639229964786436712490238221239695539999906480501044576845743871833598008302530596191938911153404903637391694334753191866120837941584310189739428735976551489219241838583603195811880064916782284039748192350428604757308716739155815665778338611244020711736002635460000093502444747711426292447385524161450560489709662526451076336910381359295706055158230600236752356088261964544054684050368949750165912072850550514449695398823984338450066461459434314657449916700911849123771985872938622516668244122795853489204256837898732322721250942396158276797843643997159781858146892215447562803536552372274550139703465190496946401849684553484149908911791563742710794945427000202967524519991025777091551999811820500577441777872595822275182890400591045798300458700007306602544606793810561449617596708028055513033397323805756717106322430406352465677749086870415053279641584823293319203319694115023274644597029521595054876414544088687535431751938945239948452592085448099075469285202887432712184854239566073268780594359821667666090061217167567510878012769518431538907812321403010225516022492378745054354041838740167701563377330761408184775145142050211313674106733050938580351489973120627013486041888424941571381871785298190648522222215933011076117393167795838121102084773951425790375365282408351870696952171582536497900994596770151594582805107227232347617277626255077414493368494793657807107180066425473473598946438753197961571779037189950517214763704330428706503225516631366325035543895914429566722817099196916023675472296132311763980107030746339902687983654921305911763602777199244234380317099236510712062542068610758152123620817263139797361712781129830694847421573247148822338400325263726555508159395318066499991514156914662459548438076335651087064486288474821607974739926103057073473199811137799474841302656412428665821109851066114362094700753736685823523901395762257580034951854997030213701673514220764473430555626633028402645921641716661950899102599756073483372432813665087272598950839167857314877880126414977820735555935072651265977277374728069334704433499911243324389760992691151703953477870740172695419130420466560535085155537262833945903052803972208582822137459719566171224386408875248750579817717381805296885062318754273733349805487871434050986327352223111907396599330885694308703922501359868644060178416166915116544471457176645543908243616274820926174768899928765610446092088504464086748590855445717311736524875555528015578135774216799085682299675983145457022825388007182669327363174305577256330697918684222119773891312133294901306777826908301871597112363818945396454760994327953490605868480955429068432433224097788997198064258694652276303599862018772798981360560901455528884126979676628626304721063049442933656169937517046223293504727390474550966890692754497431572643682221992551203256080236427283700164819899069969480602782835945512094373624801031872201033968335965090655428184963171649350713917692980903898947361599615733580943351921700016736881749981262393679807371357032554084648252682834983823002275174750245539424669624815654544929811047910397073777074636485015262760642000246219514155823291233193070054249666449229821680145588310071084253016995530403107448172329386565219864656143780192753929816992950886785469541197500415637842529728132420682184126696228283196177882701176362244662444375252671824358756422455682951801747479288013230887341614748822798075524281050862960063039807271791258525809959348355258862813270978243445690003976224393884454293759420525740188247280953004904303492357289096525609494885719542585615744730080347480426679125682615014109011260755419681612318770140480292899543344335458249942055823886676539784216708494016899126573694655657586434484594421864636557222938767141192013527324437816998571081314302017004429913891064644165884893871691771973854712542287759525720545748387557720794043775362407349875701679083439012277946906269340444953295598761925896548438622543928284984086497953180818050003389041891190841389754029563378675857733646199222336405375714741074140553613537415941915898280109605472125277032674886198909488792839780019154208551271769481108680115756317087800766679892395082452859068636075028819264690604539923057254197808771373571411295894432004892659298823033201232126563319126870930047448601826849773819394594483526336427346815208228960404517710620433053195513706170578963289481650824186487045382873460382278928303987756308888064379206030439484595733100871672657377641256607265290629802273453654808577489746446911048238529727278274042176526958062213276493446370441722855002817670448981598798886677370881862353244311360539711426839829204228304860484150944944628800482591008218835208980880653627332611206786509224669032501087123471285368225257346128301710952011364075345464269033990615308881592681554692958323402022060148824176761889946036015009945638427372494771749467010645637971019050868847777886299490956047785381055450103755741564846380446147510992616402188371471175512537106864648946801492815825929603703474329902771680934458634961966201235439248557664225633698345747509440196947294566417980803517274401097729444189464564479792238443940583775272669095658213261493162091025443792980798206436285954312649304598262319019928727149487025120670562802833361068851613460496305592218246686081244256117477592831267112537930934566951171449408229315753497126350274578947425552130809752832573110446105918908108261221677705299244321258097025105199337169853113017336865761016694243150801499014053365771070230246003167957036091816081255127141683212544371606125354788656914598150708737177427451704863396904608065954605646920117956247496848185140024519425747330297675983898982219896834554030340933549652669693693896727453759638029774099134949866642611831247541572747284027139829597397768790474020817806789976415333241296645201431336800816977205295749700061490418137459221734489781806591526749883560041859024721089748780146591213719107233545941003865494096881227450780087003627990497293447314390664685432003830424928825513451525182482054845381307141661868219705359754971962891651879449798009112089767828050848732432437522951531831698208958934574314446973607330613016460005710523902116235796763385800866300667925954332200689327766516521190840266886033577604636860016545721584062936629588297097442280777159276786665438660959418224468576377910054228102184157086154050995944861606000021359988928190275556826101179629972293273021359923975386220986572131240824783704550728985746912139864095754633652305819509527032805009656891654560680547271653920220011348027641751632337843679472710943966619018528390715178814156644839008187830009393124999384945640012182552886656033957280544401791792191714893184283137887388337741113564559992530704899329179375011760227220515519248873427514242819910075456597965330512433440577934143270542161751507999725132113275309974905113402678592757552821343572538561148465280151124480297634908617696530357995792100125495010116562396601465729578131216922834049809094995823808867269246068383275368739546654817058827143298064625334754969204211736230728896741019663007197121574725345592522193690514586837021035023973119607467926291017982031351445788981260777974961294640856584305231928109083162049220879310337757456829006158676420199608026915042824937709078621980008491898652658499481709738517699380934482576513274847902785401792716587738524676811551244662017844576364594868590744556579000086165121064807297518061961630989779405870427235548737350349015100916263518171929229622976768197331140589217145708315186725631544135453111860511848881940337529567002864790254944773521771563819749802691553202510062095402060550541431238608538519385534806995060694221658566687088886661703521456613286053326780312241490326965208195419030343935638003801571204129993919622997230998732826582176399885172472640011645338633731328347355385544682195501783195663832770988839168840780928950012976243372980634496393638801490100319216408582975275221929355150761509713057652703027393131420714877693361971573910600191592911263602863794983001515495898029575527532527501214466532171048117995838950428585717407367435054032811732853989173505399591096012477214969363513899799615995431311213581359892562165937452683648654021013203198585690042378100910082460568943772957360268927825678283002820371552395703695470370385905510530863363819847738963743087451549109506621041425540995739616079593044702402056974442057102604828229938206197664908451888053922866285098369604130642044631327505453158639912411604942130147199297155347267444247533021829586887644122233338399715047381375025491892880428362749752691082212036428729283173113782770574451805621305300822589911452660780695028866008930688423165649652387572963302914967958644543698394167488066906050026006763165091299459047720189573729523023322294928676911336025710720539391338133431761772733642044005035600812903317276144648810184478172732135024561041421574910104864257531666707287448203494742307233139339200720764058719128368703623324343296979599254076780403151203131522720462812673561705404280934818858336031760273338726625463291738149294108913072687007562446581281870789225807485706991605526568555835344232533582802901330559425847723920053142155163388104829274749512591736486959488331157448728122274669974179245213579091524575638468924826345885481631516729970994102070113585132335951343019265158595511887901315532668014678111787571963700705776502981556286112913209539923850478685826836065410792760183036783051807563094057288480984970767991337543384795187892833626142605714663961505055925899906216282771476157553585669686263554102704014016694529302623004285029309892086586892291475139231593361958894232922819822049016141306896851082711518079065284415856065578575603317720849309423432251719719409840011759297896435834083578427553129509943299550770242857762842840244518054066163143194430457173769533986981454125966763460142317156176467580596352756118860450946533117507798394836344085330684915149170686743397102893956487770554514809448238612392777518156197165210622249842683949521574310984601555961984312076507150280220058880521569262822526400089812185660936985598174811669375418463016589386623986936782231658079533278078310750720113816646878325549482942094787482546830828877327765013691678073419662567631896321296938566473775741820464995003513068030800578085895847797222662796060059756929215308539298926195951425035342564178813500806032552802534447808389293535395320795381079544606027397370695743223283752426294959959897263147022863400535471272455413115392137094979010194455835326542467724752730615223205181106872249600469140994845043533746407026532207094739498791000100847681188955697679692152388011931950327697291770080140816955795430757698109006956732961336342531251572177223828301290296275833922390685925298818145621156558665949589094581066977854620416746898622184390464360485728920886160345661673560773920757595106191069855408819553241524437310664899055819413442340278318205569847520084749216404515532344472567163405830795921807371271925007843715965696626824728633720407719019533663166668897460653026500355551409435107433705410621696666116107424291103304283817574301383665424556470783314150418903493970537816186900312874486544682361007998951925170509056005023155266487015393943537961577520326631242095747850519125793283634012004928499870927393126664586389681407241752829014784791376165310744913799725382137799407976727515377820971101198376657208148512925039208646973498560454191295720390109850988071245951374009964226612349643975804466451008829139196179940221835422929839847024459494615478855673490975447652995530995758613555541351544020475693602758635925304236638355899336207164986477479678741917758994882662202410356569013447029706021178451262015198070497823253570661467469302035057892467158633116221613639573641697187609291161870342278611985173211097357604699023486505677402986599332179926345064229216103935050707038193405954824602751016884323032230829174922035623949167498105809546382017354173525850274705783795210766008502657782100209947525142463405538694860739843442067454468409855238152243683752518978470282972302444807811341338301869090860510434450217492347933796400959035706007354340001104933853088692021854971805194135607777769187913460044595911214733543731243436357716621748173451742048375860945077427149648523747309791327491203799980030692745458953876590324543359193382536165944126209865623706361038131421879588605411921561857481346676060986395715992499640401403164171392111890758319805018797110229507941707307849642973711131174398827675674217458870227626998488832004224835708276145152928932829263323412921229720598516780717228796321608098362157727005552141583398876025153903115853228822196255465423088413056645538491371872818929010458477448862070598734124353877670878273908344554202903954016355751994900241679775530764133211540157775342633350987755156128779351059072013859172543772532853241845712287548139157390474208067301457536021858451624673705384874584194657719924056369216109416259302844374610879994607074176496012588168139580224477629543650678963375676659963246500340509758786226077710132429230017839809888114054644146534921261218274077489336584011475192979970458826742664340822079496503805940296161640433138628545482142620316396642990893033764618298363815531269367968090048861764763237957905314375448478691366796804878498117353830156308843753650829655964548062358866493841195198753001807628896878359848089393497099533266016353731548986350695841391977715232151556127336332787432490073766345888996299887816223662738804969524582241705013586901320812973176713000863503377221941274633031140763637604624560204500030444838956194513664172996839363864975605075352655950277244433564941280472268202315629680609658265374415867931647717022334039199017307052189727498633868004057766435487823183936528006100985677439921947757358702330470997718829213724380123110227086341142896498285993533022242121558630546920513547759007202719619142660802581463156310186238714055448281282061572333867933319741674156085676909890942241916938623950488046188109850755787241183843153799690953280267480849889151005124945438021625952370004122569744335568752162181396829303537770445315708312195759616892791858161244430663081409653548805965522170180040336583943157677763382888051096544502452648340695776236027327542591985402791004884553859115496992300070179335763574209844114417478865579565000398922217906283096154809118221563593303316684652837645128859350732386874681634589161589609509296207425314987485531487870904489304776772531223302040923158980641238078397850465765683527471555205575199480921133632978550475283490018450180192593162945297045809660108940972687184119503334866332895600047985520224109139537735425317340515127118193762109738749484001298102721507790828068168622506241907874190952425439078842814913270508758500029811627771891227036999407195002238162770261672807390845420448504476980037391018910519821723198972374747330688098389734818919788421206534082105030425414744660517979980014829766078689607588160557758191015767091488723916271285774916134785030574745418526745337642672368926832560179206760854792825840661808305222411723675334224889411964832125949066341323036569641420815662809846801560554420853614962471633366842996680724285983048009861476915668220648004541496065710837357230016552538592137611482929457225560962615317691744398075430135930196895726888208420081255062432751869510395063027648015828960654019590610949476423797422227451762747805975970768777783222176824250223761155687061050553866633842930680652517402132843237808444913706488916147500661539266127135298512911538604528884192713419674250469575506147727828731321666087756198228066223825261547890740645156918168608451743529797237932034115852577582322504370283747906677630934897040684320275636967795447548644993728881968140392206820186474385434328075018120572725873769716287129703601811356961981108082941573370812274410785929402909529325713661277008567114556020247580353828384585931586087768363988522862488313702619153329906008106745266550043974639280557423752261030641245464796956760574517824554666874229068549405402944793118147787595486349030003033989656791393021413019478531611932104682017077764583602668100912803062759240468371169520220813395032835458790326531481963106979776687437281615893407718543835712470346611589320882423623116231540444041085244451053519780842539025058115227320195273634027922652747506564470194046168509390888533760491896139770923726108261387300443565513765075097280158431086418169215208807639457854543751745209530090740759092310740729488495214239129367496908240079463039579540343714678168560761860039455504321669896649412084325851708606068229031860430974882490545203124621195253441215438176581881760611275085868011670375268723499124297701664371387245650882832211611745057280252638032899912789716433979918196970275564559429691666671448274765680862769671917696232982226461171611851908655594438200386159958438297550860949411705151307648491578664028374723040968011340533073557980887472438707716536115672127250142853846496733327524807082269884237986787429676122977487347651933649319952050460170982329400618406696513998191617458855394355463759054300931465860964981363241889607048286371470492032025812576095053516436170869442388118022475685114660718001898905299685155307409806539512861581594990329648166636514404273779929862651032926185486518125855836658435713499799425510161374355695637296746661262565496703706894321030904562053583870559088368035084026667186966613920168667788312576486929897833795838895483935568802537938462175971560733631854734358585736546039237831204170193418773563774881828417744956374552322471330405359579571138157860498402584498384279021152991125986131775243000855951931430781716568110183557438739635565490052058828461633071930842177559130316437217808594802184011468372475665929210706783647105173201483368839860415606030300407330088906887912333804879225419072916274796180125041923681453848990292023030477031654922846498446031407315947640815221656913585381268210486731124841086108840285120648654937689052460314763142955742748516349730571949609198463329633564664282299577723630034256753994452174685888285472770100206274687322531136409303303733316914383587426953587304597569833637745504276417847796964739605268628538227027270804190293227835758790613041066001385067192272643316528687311700273137511908516529707978443892673478216880772959931934256684471734594980683327004584036381306367937076417324248823173113859263809129173008735713179906766175720165315406884293858918940387019268902373671513901882705143863965547337725831222959975927083305727429820690928969011167688849964008265485916660933935822421321839696658662444191932256365147788377342887969319131213288589801427488185838992427362443546662957853502555442066626115248445886339196875005139938980767044866690686905188545325139895482208900657220615126348319200536554103782003591554371516864075311660641914265852393353726866182110573251694347449210199320119963988623133406841572064820705882373677430007630974797457673331066090076640845249117637063344203573690100097523401841238360397548414980975343047774107165968257989839807756637102932612538486422298352341330217655316944039040734982331983798517509194752879791281321128975605895268727009490229280368747949859484818428556967103101972924260741320927780381959181538485349399326100243922437156184480939072877109332123127125845460147497062101631831945188532289112979156351018894629741367097232198443836780210374385196692749438482973588958607065634960433497756258474799487521845027738349231562257713054413688050956099909542905476529474486901264767331021997525922197818444712509975654674868383863418020630662017881187310743268285356494356050978613245984337371495431481068588633547010827967286742091699049616404760533112280372123349256344709471582094233468298431302970197320437581098634991790742814185309441601670957758155470232412234134171636411103082743096325055296353121027621030838093600250257649666935884063399016674617560354937196591321091378392676183101147140380234529518799524221444903001767817239369663017752473163335441631052068767983852571278974248681337385882208112702375177732368095610730285694296363920057436385646843495219835590021313628584146338471215336183335427033595363846826940045866735888242083347282848099968421220918184434857899561232708874653723264210545975531381514493466996165771348181682127905832802326307545808501638741936706362790268974197353773076642810990405694930129663017030102350023057277794702966672523501471112815699859569349919116596843200381607652872779296933782085750542119902227862066107582691884698513349413085038016034018980293761654238097259973046556218679594174124234623476819097065448619382159605514017841206231726116798968575825937167724673962018839518246530617316049192307352038235840499275517926905768003667581576828049301952822976846069089421611583975744736606319279110076010107165175028062376224315387198557167436383200485567652276919702592063231581579700493761920925029043117604976637685118363702687868277168564496377315218276968899178488242382579441771425144170947377236825965680167609572228860427904782435836899747194954188611090490031903082583839831029483745257040356125641413051592811533307644157184162988321586992607294160180804639015753065061186087788076150496810478750486318075072424955665528987816575546474197723408089482663237914865897007964118557034839684655453600438305526794419449142834365993986115032154207606160308429984532526411841225926360975803296140707643163465279789684653609406927887934421889599192659995082014845656957434204769657217858770072159551039909864298598958816840253492980586222136981742468538061902559203138340406069620581755822739092267223627498454853967579262102156992617074840081944018327352846183371573700181160055396128201394588075057786025673570361550555253618964468848028145815087777396317074057459393817903145735188731104073853081321141778083431368758735446180376373696675072199074684970340321418923417193594841579999545899063200541129222200215407545420924800341012144570163464997838785302899323717540002415074477832876229520991460339483390666858473565800831258565785738892415412375713392458130278726356367463223931811276979967806435539230089364773588742803231386578886622430649477964827781222872555691104879596494848549838267767680603728436317560666810996406667149999385902749623380641029313678663238765155522994191138662657851640547975466915382308454105463639535100801406186364402949633851777780403493313528558164241774489681752022769700387971756519525533710038746139244701261807517307398498064419937313272216712956923448201222092486255732168055541885967407938617127005468089804116141349227507984169229986067448338366539562696718384722705805135161502612223855900109778473529777779724841520924000397491408482444990325589229658748405678991848144156297483692225740596487840636597624464207417578600090184561710306815935693956433775022660048299283766062192068766388000714240206261174279964065394479318667955096426690904711574486711017732495899305019426544302811689437671164318023860918885321566948416103128564844369594407887484331180733112962858195952284142093140387209804957022427364110385195122070511400003561181427541296491422948289817364133877188483832577383986205372827864636871061957622814002166835466663023802513789899261498461414858731454884652359187349730753453437129484238637409872921686078930350390052702850748826484345768970107820164800639685103228733947914931352789308606436914951980642946109124117881487368877212813609769761130760339604184969599649987906531724531273487465185586735625218858641690183469870213248087100437316434323746210933577611383316728672194068314417251013310462800308860623135171757458883170043942557563682332474939887963540069908488401870036927051597500963853356569514611263504356798064091354552192343113715485640134991633321859607539750584341106425546630943080542398143028942645517212409915655360974798601490721719037018104541941349779288694134677962688997148936717427160766839638029855506963021034119993232657765875869986180092963414400498655267005780602228904865726556104125032008399447710197170024491031385342057809427582013522419469206609719413077314811931041164525012520586248134239998017784094592029627146181305662367330719808984559716992881134047278237975795296789889594242265687393182635037146914915250950191596026963584126557722448200328870497194808358024626931270796750940891496164216193716167924780265900430711260637736641564067553031363660760786523362873789512798088390748963580923980993842997012581207532879292989985602930083952880949071156885634812342996277405839876329517109968715475601478886120594974116826992830117124260954303956924363643779605082329685228658963029413732133170500637309378301786939912281391946658051762311122414844239080582712988215841187309801227519534692573807196880287935253473904229375595456746130493858387412231118115014894753916547909032420738422188605490810504422685240362566968417963799765063507880032350336942484464659942031496408947225165518066816148265882836058621165135635947802221040249173905149861198725548533172394682578722650456491916825930523189381629577433460759130403389124147108206621111568183254505534848044778571007793207055407604853555575089096147457088757608386967212314289191914644094433626661256885920600985470133091705704219062799447834330057475892989117879918269175615001589345616165483801189359433643655114285110468909997387360946555662892572013239024242661318519206408676363097970178671690928866952204941168699090012899296709405151996532112773695190555425769303626594234917030695673800100462763167964515838609620211967972527277945799270327160126486827288307648142132021423051897872827244854842139065365633028832685626985485273931152315610775989244175808360359701943887277392365706499521900032119943982090476509660356157776381939978130649329865495848936159493353084783705587894852987696894627506977169825577475794388090915345438714921357005044558338340928087497340452730642279404091420029517320072003667510449092849612086486694336511073359405991935946803259915553551097220987743035193716853972904826020718070160998982579193682938141583142191292148373758331595700697191929182582958263951839058265805014085929143292572630834962075537516139075656786855732814883095433573546192221375840112397797523303290745329037448784605491638759670079954002142005523465814503157912611298996593883260838346803177929710456910271869008870091300106764454627019426914847133458611175859347655689804826391951713079250165051214281908526471127653355586882142451597223403864257539299298916586449336955624712543588718540899397739073192864685752170726610816322176895751001406175562140828580818122880828098856729715496876950378708468585729436004010880056766916699979297861872928135345621608653385063326798399894968902031753191075281066154699828354691603542520388010407155913415903006267377275972922249308475407991114309738432577015945316672232376341934355627166966994577422950283870108885696404158210142681951608101801424934855349945411431240591403993405349507452618024448808533873000808729450773889359211896531508810110062783254129233560813364718087648957622364683150240263785281030298173516831981650962722080695398206982236882442241167777385821496712730465348331176198397658941768316622534881445912778316513904925583645732121250004810480632872298851325757250984923117022382317039671954529573926177220326217670099550714164247582085269288090896301196190107025820654037671254334737249542039064137389188445953248926064926964640958213801585601530028623738726155752799783420792284040772960109499805390317101344457853506640739135519027864684575278221523265140441175914590645138265904964218783851541630023574421240032809834824918048289991136487426255875600571908676636398968333657690152916976216368084575409889824702092233734483686298432394632182531761200679132858577653901498463089289642726868934616664675040327018384542054120719094588356118186295642965611623382320389357187732790002860364026643782529749506876094735731001671201171644551960164477107006022722754688946670346554224864796797187709803222918046672413465887147120993908049840496984566152906981772838634270057391938589728828844809855697675761874662802527457079850265021306465281804507128518073149635537997446924017375980467068085022892866863055120626118550280101130204636437532415768333856769644388382787798102701646207156405054190190990799762638729181976046525994073675886656579709112833638791377592234028717539960674040993807909142603177060531910971079358500090004124342129273411186021357570076163903795852371677954747037753100453623656442493675542161973367728332459061886789393876124595950312218754403758584573938756455432989881724147102156674266373439664551045258318647885125184172555477775701170961481874258568359871901120071957771963675743711910179748948630225319526909309293665424978327474960896307268275032024251837597441362314118880407409653622984152400611948818245281943655296301923800043863047995625161360436900951352243959005012737802384691652600318531260906816927552269885860291850409620579423817214391895887120881551663181036971759286695070240154611123177932985486947760347493019999431823561297274443379304137351645207795315267704263844050215053215619404571361635752927004711901840479933707876681778902122786569962409124694935931251038863113324661818622565023523963851480107329433452893164987953141947152564454923816622662130771468500867822335285017089906946325709300710616437083901867926651081224791716664605322610928773412172235513698762973205402735591418247981233642475601884828654360151387234314645274470819704881456556552786034049033203720812050812776678381837144624131695933014121697634697613558203205885588310034495973313556222560129960714102886576998823464349568658270178817038680837135048000363310453664201816993999672468068975617357980795368481547089458861056950898350362255660646822349241775054672343159722988166039468810652260220557547249853794011946487247531445207361313051621874068903578249034028406167048655337068386914337147574222450738900373659855306579978254786759224893640511468931513830448075842003400630105686012890924301496045380612766756827401410742867827185305462375735694406481978964883428830841204046792447323343151135608210886460096954380279986184713514779877345156343449598761540867062202677733059201719167508848009182949384243465131495178154342399630788848289525031466988738075032632312968922985528752228148194755879202749100714190964112172790347863330784351218659206124555324566492364129241863650621193533703413726488401739322105390645536883557264360418588834605738140235209748706420899263704830494839825055073903022126337428822505936125044188485178581797614432336834460004743828104003359496468379015106677995174486532092269518468540689209661674412099377722350882900330723927887694772744281425093904442558073138548548718633917162437214047234709266932155305895054617295851177791879828507763871681929858346182849549664352051430568491933423799286939024437785278366372071406896851078851383594666985913565276525535146442789693784244269245689852107154275223160432782725260518843182885867926535183510726133114889794761853515931582038532370223981586224727264209169221094641609975627480858122501234871684663515740922080216022470718699292168875565804448719638971021891623710951817555005614452708742976741081550418578274073239639737743763131530070313402292627745153729674396554341815907800247318422871468671850218439495604980184299175856338221331432475204842522239137674135496889070264200154900524731237636417581278390033535059907194110939663540805936474730383617343987511425043786439147667799483105212005396036437760683258331915566050602272502484859477018294292815873368482376428240912569550223582030510181073584983534204655265598068143339518729888962707345298873729150638453366235855339823663137185034048577864458937163077174631822701090313325917504375133799429280733314449575710297191867234723815267683620092621977615608698942039634646763030131351178015296883327005969613586833634218314287844998294365482940096790043915070739637968587626150311015740448430308265476893323563424680018747537430694476191719439235394014380247810421436881915029370345810523818936499755315602891071675349806437015728717553133705222011620222033762330065008117192163203291679680600572409805470572530191621330946328640990681479419721286139824479056573963726801789611567314886383306606761154898692397646873326322413363627672831137734954763603037165821336499238128963269500365361966149485084804845899225113476397189187108062143107564466407936885643287124416720694863525785548251958109168314512664987862852014742976637820940963105192462351827904390995150184636116609476873733471062479370586782786033121993626413484499865581384321002738748641692314500492344194075835051839893201331776925792296838332039322331970620889118789562877540241003153190355478966801617581963477368843460540680561978022311419388020114227753776499761160683106762476995542690010009785946331083836344839645183838186786093976805033479624053386191712357513383333014790479706111322167178519056476134052701178400070121057000919706390598363783307836562292161037784315326225423515664823902231969746541082613584180126888575190491912377061375267962967104802166688772326548436066068807246863256529143581934932404890363086162198807252243070193849594927080373921937352368925449076774356512372223878700662689426330712389397021695099966520212758525614399968594072720718059837079310786425509474335392962186596868813234421334314739060112601792133680971404701946625308431640185533987978801193226071599946339710195014535152020659002755628419261237009313606615135287912552242813632677907744369917732309516856008463366908869814914942099035677745509170570229084154137602245194749812383920093278567407217358257281644826046922922652928507006147208407002633660408198621457948706415528151200932766802857019028014914025086406465356850199211347307758226428582542108430162709232072311551992104480218082244672302682086249310267946204564174219944951191189718753682508449726449540453040297593426836930587858765406880389421927954447948010998327004508871317264036914976911839823945545207677866342016476986959209069762739922753423139848659003442474435506439689914795594390439257098565138030936115687844475801824777929226099401177582663372085019987904586136379854284160444873549505567007454193495307894233882744403869959000506639888084951876214588088426650676552847383367156776810670688536940311657809953246127869451321917077651216602055469515411655988561796233067057041796083646668924845678866492666073792678785839038231100379091048271031616198655159046692898274231067335895025869063869072867681149451708229702331030123848141608568706117558267161040504322523360355303603385607694779557413841789761820674066188714562847675330550783362223895144454087529924638251464973510324135723033105425051110475695394313326102495901744216248751930791884713118800078917097592191083494641778018557637292437031594575889411300097859469254838408991438256198608320796161791787190086649482262488646681410181113878166511541108447469844410972887978382018467044813530102238790419229788752812062617219839296963192139300405963919461586239379079914703841807469548952486914080310691673483871962558557932300918122530586833843148071183007542739326015577667133595016662606600474922351349803491714235671107460575328530030502168810154178608861115047706579526779909178812711784868375826012300981510032464443455494633908795550084487702684252316223342014581553638618703382476409867744123155851129287380967572663200544685885118886161341767252998332676074290016527598681213645229509617767678790800508764151991458537606080210842180647895155413427228482613767441947454151266964782931501380515883578747386743866377368815234696572264480513920825921639547112727628540161333603653698496283912234516189270667833531538495768542883887772663153278293154106712519184584009452269783288908405590445010904250245207063143977923123345882765541342731664197132415990106416319322886211359550540024180564915755612252614585275041220482582271420942674015876783263123903252801406415582845015535777837992086726869450993512176768795487999794969347514466608640582989441297445853842666819827963353377063944484610206609761618051373343417797627179902355029161117549099767416478623053237029925358445093531895721355558103089952919966380909889539703549272626486751052254843065668005207264231373681588933258933965029224386422164307350141034140854906679759594997519158469342544443269227916491400429258064303232195800689989905915081971552728600015933536974907125145921922209297022062967722904518981318664221007856950091357543509302945910516172343422221740400895503458098823171256311685785319151274885346048054804033158238217036415207180226940678696709514684079833336059132913484160089740812408503299053919416189840461143104402102307235973412655872328276652765450343881369187912164304866292208897932618340037076293518023735748851070259737714417331030119396124689893712044107179580789104958233894462352764229815267188253607336817046686007339238963809176012644113809396703294843761193107697051785720636088270945552242687394758910122371978240806173743543360213570343487413630754484335994994824539732971559768273135267440021657913418319215262940598503233010508632176370893889352893632313899209383076960512982715232276064875314243402253758462186892026638183900398049504480522618622533153910695258114393886539479685643456189166897127544796263821037347980595031590610734549869377263336529984981430190559971672994749593110280983204531207522323432553934359212189099973556536002785015787307226427759022594006581835125068523395175310953143882542118948692018018222508378970687305501628274670752394983692143104804998125451697796256114784070600225452633459836859201065229705191755359362274864078623835928267786521572337991226199307138292187012917555609767597230396619851048258406500348864003310681192294272073096422484877183828961823940362202177205042331037870101601178537631733828716254966713378883067872793309308724229285532874859862199161543394318378796130904449673942297739730562760477170773529441158039584877864492645757977638274380581816224900841796592736386043922281264909045724480877372314123158743815210013967119187959153392812743776940161120414949117209575383394958179592119178479270849938021849235126241215401246591117418189155565566535003520201383506824818405216556911758243243673672902843042618528134741364913690190239586432766714108342508978650536220626843904807855741176459027250821976737009971546018372857607141299972330749042064801366959207832511388404292821995612638327033022458566898066322472387398307799434837396876935793267946909217573799652888574826034565229478092617332992333687375918984215553347662712811319766720394943545813702208079537792207053545867667237778211729703321303307376735438434739588591179928006220050309972055048039915292208923534522866013378977253262026155093394690189463666864653668267737850251571488454140439911984307640001139303492237428198375404568202575255859679177700604771126723339693641528532234540150364532074075399885324682370707715600563169297776944360666960233860234009238399266874704615235138159038186777960307022431427217894351292571825076569215711806783668863167702122160293278000771084768589199607531038166042505532079619648518730525387280890566467047072736455296954862351965384179578164291526374915038711569861390111906511008915255368609734473734238834336564857112626868218808080294880659665443658531932334464760904805726883092720295951393641513071966807624329347784383154250172854179751037312531893899301096815322697919421835959520129896211001857484770037436844061765780462787185377849352262281829519741087139843523759278310300538420887465457158239712402029026429782164091109101577180034349124977379204981152347282637968065587409042446185691931421291767368461306960037841812977431985045786665736738212932977742174257703254899224458370431556302764761093318380743106817341115159257573388861805013278042604639940297012855796007027265725965536265368341609819779565574420593625929403515483784134834303148711353400859730345218478655805017715311171585192884079138889842640978796011417895565372635571831027436833850732872287954153075592057135481243336866475451477591000593492558765021534628687394984962996410596120662723603561766183490820749757374756103162922506637351832537339513658487272493390783098884484355460242714464829317843134165058195005702199019119966404121590472358513945920793944631552263525925512672869807551796032562744024581549933010644456828721263457970254199738635719081352089242197167635160794462568967154453610142978340810283000656659275945834064242811068863444474653741823136675244470719945959971149581637113573315440989873162265604921508167311708873080369405765223614335687084124875187061581010976765437781283189554066886582625434677390593874381112084695383176849605066770085522027173421172540057479369942580639709033694471140726104645172973401712168209012737393281426948199843862501054908718507278741565772331481505021808758552971089129744300385266264895043582349737654232520346934958891885119396033847641521228902885580888362539356415549361399292834769134321805138213788950921467347925215392520706336832240927668527906916484084955060014147483333956168154312704249179193032436808186199981223362340765804781889526707746790365263002051931035636958155437586524484986091100437741262184084341817010566719727821752049587073644434671348396526923556471677439763147707362915853780206567206328891751414101820432348332185096747684683588375143898194658600887684451885491321975704553241037560409980560837412737320451521295951484443833811979388861314865913475300448072604962288885576005780606160343355461259962457406724028838866961477544127813676050965535912488221967206124705909782211027495703859760073287350921117686242029583646991788212961021587246261119682189201071897257943987409196067169302130299154160914879926332907706095684028974339466099474998534687489023731613793807012062461503128007691620328973477541798451402638708266356657838439615699264677358442530916392933540810449562411929533941501298180368317478260446237319117045922343652773471963799245737423380147710161978607827482261035901224582708674931010046246409847416399281540638850232883834177946295748335792539259174748474527548117492527817511015628964936684103463608162258329648777326601640533474771559722601400458644951155811456689375641342666550680671439123193999670047148425957323390055747799332521825376472812660186740635168091759899305137054308665323443214970131806165956262245663842308255140266674157222553202708211877330726772796930919023599045516519131699246497362924684192359932911228004825309875130867612412732055632763107872460795040962376148826832262647580979218098433103736315547830518018694226316464840516454789837114497108068990145423223765535495357011438223930126909905799918552449902698771573497286884967523916159603314143196711323543398821237028303003271159333783041810305388781275439057515921475819451530802796127646184521441240851064060157298447842638147830797708486103468654525153718391108978053661201124288542072387817265572572218423853680309763125595457141961511146561078645771835821072278328239077033701087279905149521789900719004358754266292937703987016897024576479528731884586411125725170500439068110110806428426273555122663236952057019221114163971372723580734330673494040697214392389680709020305729349178000965339561154589163024281591910445386337428186591194146007618665470257031536802395284497264545929187920463331774876674605405315500401169369079387530373849619794383480558507133566384145712986030558803560282941470812065907803489758246683849682229409754554890217799190225260247168986608186035873154884750357226501222500895026534479279896497885742564245729024128445027992177514544514149107175918360968814757722967302256294398495958484988342691238272102958969178861266460186703350011686774243570758732914823531840063034669980920391226634713772382990150951294293586605225636507358450272216526419727696919890146400412380726472909026489625235022714197581112264643901349707039805100190979316516952949677579656649150312308961604205370734779356385852804379049335499627348720926671168747742289262610143973659492409134473955713800543556366471540284200835404696035391439526414669207634282905706075454081417007385444288387430530366908792733275896380028105917616731471037673986063767276722401879986010014954343561916950320812357569941369624251631549422499227876857176818138470959444907161620004357370585828469837823912340253241060139182990274573880134773583471519573418030262724881877882512440059474058697578527775756671660805196659065993098418340705986237952101132874806739045383034758676809166772995276017444705329980488278071528774193828271011686428818221369626114797843748895683235070087675049397146062203438728384336416294903174023626732165676820766378768303811697787110114359052015309606341822820305876165418242883233242101430527212029913564242063178417000090538930696668447485012570602330017119050021936288182336307663973528233914285199774976403844897790146819048836891338187206350790250661267711978542421470227754475577042574727739110398833890929659863287001089618510294403920558811061537081011973068027296481526361280221845848892797897650548129809500883676700598006224294426738096110232913326071897071850697251374123893994731578216948867787597738536260539132705483405929417286784268193393922224142678124061059333722745988294974536724680292262625811030172789829824913078731348195457404274413080015375587183550530680606076533553206345840160350995011347322606333748605556252849597451992615693730769183031875392656481907137184906934776764152432274746799117835483730219575671453793930582085285260539662323103625053241053425285102439636492219607851809732070089430370767147641842877000475312206039865870988220280151779911998811127996848362539233428893051306985342082687707667366561982570635229598406656225171055818151316778202840326130151026735774086348318527480886051140716025999152207959439216642023622443050688993912853440627830666041573705064492196590474807931394714415948845805030711274943273743620139277890747998499242527502435191988822233727770723188269476102214000748024395755897810429101493222243117793927558594330540727771049333095068758856276636745092366444467034130764548116114642647072643195116421171174465705762385044013279443738356371499153906595062290341946103959966747486174300564422864429896103866440269402843794580380576622288789326992577331346171439732383325183638511743704417483373201262339921648438243422534470589494483117658789261494254583195000990005523596687161234263627511441384416545205475538022398061228723460130104876025027944757694852802373381337240162429816025551972871783965943319673660929210609900398222659431157670084287365835560962348621729935999332603337032323402887187488839427205112568033683685466974654626860656016415982684998677991367829566382327251924154401258553874724438163313701567049181989005424524067097746075796124685362306504120120330206153298371911688731658575627604124438738071321530171892721798716663184426559085018724235886079002509190417640835479735603845234963594909800430700061971933898325627755219866240261451712954911838297232796035641943857169994310870942548011556861331752767778316865143092049099338460308299409861035073781921422557614908612468808409024726561241213077181713532578779535443551704415459730669627775479774122779896666008547762653814601289086043613618940395402842356478066647185912975567554898916194914452613079642927858405748836130103727181202069058152502860617724108838417573949832614215083423515394330157919766161497079044407074551069267484492496836445412599573847341321084907964966341760608092049014361742999294079503737845092620231980653384998441785224863526512692998376589157889723273524035697994258988272117379890091076761849875727197367592482625978141365271199871179932522350192583619212304425592149471221881177202583641036369799097535104470294425888666517013457314368298991701127780455836540401799816530303961299238069559919150776065713050746753332559452932769690375754557768682346945110533195602918024259240402560478594307205947533709261045970047214759161019667873191588638749620043957928276656309223812152487279586692538500584707186644110884237975510052951593771555489618031316219770692329903668770992734343859815952277440019276389706106523361921024413886151167155147117743192903206293614697423801870723283737716754379213890440397496690553280157562389941473252840032219224422603539038673468504900938328574498362609942187800041442381252419883834289789456467866109258984079457195290495542132754424193113583362018539483096131972166482250669173598372204627289787163065091682289091444715067971590578346051719107912006258373450307267159490951932576245636682948899871446561217614999926222126469558422299821355031414498412504528676021230165273211246830299453732925291414910720466033054135588103018746051202666735820730587473329287770202732041686256093552846633659579893197927349138209797457009422474041256262744963240938896986542533907013279429046069423717917018692249247537954094641580508478524539466332358959636156659987804874306479709163235143249193495889267157592448801246375266075183998412423538716896176147109625007686494005829033016878702661855549697534301459613944278145463351238106209716667896094993709061143448783629650319695045950148904137775565173570757232809407013018126023063306597095380646158947379840132905499432078626726862544584665535153402214689410855738141032765606586508893199649570808165178872149112119152999058821117725268969948310943505725746442293280932179860204622036606479960019066643049441764139682960342846907424170937733453362192554333333366796114565088050008887287753020768865681800817699474984390128272046672523950107654845876256523458993980679881676752661302105748440955958370050218205173110462149961244697558537489115210087002058039565386318098879658828991583782864636745917983418404736062858604022583759341941354651409798857028087948095013787334553437619414905155199638344419059803931928035469054180199909303651086815913364003961193373905434304406321613907897044515613296103662679214438627148750945106603879154124763642667984824224000470711381108977002866938644689945389534559664094723373822510058062245416626117796335369562617510625247580602293703855333205080107086568246107370241793880644428790097824990988949158165085138973505560142835391667638814326332270147276900941487381961262862809334550160720488757129573655262235289220027165627646865556509983906836494217873961974782181062081879336817334615590614538448054396441473660694956965688951416854921832712656230866138256764754745180220060919441247824966572260968871336706570400196773486308806775610574327303997538480905405142080114821116628985671262369884159168803566339494265243413709083681828790035474289682391830054026746534121050295794154779454116419234127875646596604927341757029001887913661386803885507436475755491894562494996852880115908462895565305666716491730174876938626239949288147677259794497438098061815089800642446910461889102522618444184471614573275605842194640657247618548509227581501255393523092713342625824907739546890977145656882128254630106805068855717074280768883409107986187757201603414587620094452349137737492305379013037634929613186922771360523534124939510989743014223996846853173662104264302534011538064412810610243741992607485281158676588902079293713706453702871918656233469670101010079217999352780974000330951610002014082016433690547809998620486708561389178061411362639952986250884003543372615964315514562608594807041315611387041500424560213816104885520800221424772246419029615270513925015110880637878649729803818352185478159628164807312729781897318788608443121173885999842183870615971322448361138790776853536130705144264715183427701225766871142570311663157761769144216438722488735551584451457027731176703758816074698567416753220146502855638121695809527155424782527391669169857200159074060158671913286160632912967266997171801082344770996600777312487987387096583033580370671037030425482772434009385849762565633226328297712339853943427141437282938895688554101366807329100895947998197721243226950596734315312062847816887129425570090753816839770205411511705261017900780461051606353476519808561075861708272840192810697989778277886530359027000378100652253907369637343863990982785842582264860757361436902053572687675160717336893115006121678729154048771929088183210734905622655198975641722873367995071219546366780775016939770561647916237590941604525721554839372041476936546326965683993667492290796126435616753811588311006707483029480920047715974448343950193969244205089254086814669189469401472907649002512354552041347582809409447232975271455588736755250810830613711069887361227899948540823349656012522191268902531220762808038303358235432243845757816553346327037979486996831146769893464478319287902473649797249768707927516990220240143122281339246656057339022491647528646862546876298660044502083830249935111042038190236578056235031409057201209654213425314854751285654654554715632538554238371451782316990571202126224345284617264183605416173056136552179842529871953770022411530306143403000941509721220999732143006028229317027828825956094320138433109129849612264028643510812446100215523796262024809286839901515746721678773966960821078793904895207965024503541756346119012438402801502324027549807773410275167321829703272039167056948193151383161983753756043011920495803440921360620795035733962059539986598944818980128789256754637824608809913965614721562825706567245241712598307187083898413115895153776364126223497264752761531561712782418876683974642191135602434548841467252526304150050457755383585629884991107799021766480891391338196397632372684847798009546046346533188277868557505217297887434555449710907942346039007776513369812342785297263986463671734191121831636255088385349120701585255982939153955982749600247563954105204175828784605478129736286799844986613554096855923590866357640773184863634881127196123015221410256402606531619974356203760533409926322871175969590453153187868105595051511828987441680108101781355756778972396660835279095830153533050871690440925924790057173724465443292947282313081685880342860395191462356491154588217497063855399210189363713448102165215667282419238426728307987782446489020533670124934304796105713032797909918372225849321441280798228257077505848388261856365836616251904703795825574024318295721428126533930551979987982994722589148765293881579473234399421418252883846620183609508267135867186003978022285939299583790901587425876411533193855681496776293943977117702736850619857888150598069683465455976943556294190746954957338377506412212814295365462142742786630689353284708053279956997681186948709843908000401222340713825547700357159019291419019518310120010973715429656074859597917344257983830188894693275145750034148241106527862681030346490496759686648137417524763392716131468784981015366818978098984428517763456173985848101118674262716469681692268170469461532702280777626429694654730465689728355214964740386685242921533499768540563196534255611280283793044002850141466647451389986136840570863334000501760996061540309987497165982727360154968056778670639950445704134276380862827571901654615320468027137429992261391594529882482431270381185550949117495004824868181118452929919704681249776114122900203340180125517536392568131131597277431841022981141149602451120355046310714415618910454334092989341039099361581261169072185289390765095747750568423894730188310796126066866279280005632858905939825403320148519979733772120375918501903332535296165138969904846912284685896712511167089000494151293242057656935485181207539139770521091148474760230446301700993491893967276432237461310359385728314630654743850099568042831650443413186205491253846067665759203698172390439218287982526014570773345289861996709540744764950080893047895578924615771575904102113867667463004181244699493344164626589353128986589090774523833072895917709352215929393145229799377945345441536449268773725934264971340093224583874955249981685400952560096334439200925688026137659535414268410561946069193039160841495183054088212702367573782215520376978716588633184458519270181783132420486802327725043375749282509496804756377384948270394760881622811063611359196050896284220844570604133580548602717255796311973002638215350062568869446794085905003504341331127559549628758743844175700633375245262472799523805573848566619765644324707628082381219110460877782246346613872170828514363166683408249308510992168834764249935386052210079527057560180531806535470103408696225597533411287996617067245312865150111836537511901545707324966629183485662834885837384378585745463329880152782675839517484472370502332145982612303870445605139696759223609277590069489468384030260089893414338271639355699701967988015747980500151967410906829079898902773084833781375464495515242533185667298042319036315859418079581769285658037491342570504498837370195245727952130702518485464768348296287928361146433175078384856478577146287759916565254269594869698188459634110904155894234413352185698975577703701580324713932366286870247226643904027330552184176829813148084176317630521085253455941020371069621043470983719668315140825437615941355127575423007613642091520817975505195108317067549643632096423092572610084808335844168795780677988368638896530935316076846189753910350007883591232553353890306248498911657162679418023645697375602998152484289013526241722551587612473962686811377373622774056778507222564779431593461566544909453014672118255960185277190784233602421113990063248492001357660423608942800353332487143756505820384811414802373935151152637965428104787814143368587047532998701356948193032665565691539690330921996150586372132961633736298647250588782207285145221981107188438702884404007079357485206415109159583701206150359667160709630177285562855591075920823007905962848588922591202541347343562970458137632317367812310700039674816179185832088049117226733128717662777175573822380312403826104643161760436806953068353955298616587629337165710679581485147011862422802038816151851715906401441372535310605110662861192448305936455302017384345708998379439118834641217653755055103074707595780316464871081517861979915029571828507783107548866395243863030483038191935551734635706161500643302501047101219320451557860484390505737879804539578529129801928564333849241957195306099857989694285901811509104281877953273033658032976446453763665484251331378882585557187882919674882319609525932899725359890519060978652401893879845911747268971547062851275261762659142711590419221493362384665872082660073241529565508995991163155948177566858232302387330968989059326280824425155088428321008966691784898352250022236867563739917539132220353356747395630057331000344911280124747153305557280939221547161421570528869130660531839680977100125972450367743772617736255314806365621841299097946524810736185133799703149985966085045417894040585057298783434106465729150068948460763484357922226244377417865907960840579898723603801901266821873412586880907196532198599310936992417094414045318075412469807274951350479356678569015693426514789593395117323489407329127409942535057467861157408901698639435745579152445873517577603140516230234062600130318967602924674715689768589933742083818095362047577707353639201721645390827558078288356814565022739528740787067215384964597352042955517895937394125039236265863726914739687995884445426031649100096479708854203517189156186116384575851807909868564230689144528178159199161411288883532986453720053410434255344748303556672485928950067699160109821725403971638487569583461238416898342299324858602148768066281895443694915874314565454055137887478032004581799218413685536433159720792353046807314049819357507971172991457303580408861945609783874921619829857954132349339340472832001985042402360485736791213871769570496326929697517407658872727091016631527788281294078015908330009302720599321960785077698978437679900587817636520472605792253379443741185493240265958599872541147570018897411083940236964536482200364136156833564020363575068923325720331553142206156056021834827944829406098475064826750397179096551623163789233341916511422780298895227337253627529053684138864137634116249241983725670936576382383269848155015458227856684851847987692093437179816162359170306797102797568190987036869510617354580057674120806237445169947409522565472673569061091759932580601006726865835301201424555718610800746902190368575256933669949733831430627099544198185615400706556177511749999307149640980693718942311114475342248992662185055509616990470531348380602832848186320231967577103921205437076645318486951007108068834345975640718500585312898242064291796372892692039645690650014869735497886156167542255879956752261819431739828018982775094429260072564195153773049342976499772916659827011384072759544514226710529365969363706766031995707012248620361650479077963291807913981420108240258821460368993021811300080943080402756092919558464169001684661013300971170059222090346385255661945994247788652855258722079499450827273731504340451377148371130091955489848697817893882161201127484724110514129448232021151730833178789720566022229620317208258489756643970824076534707236597227275054191073296971546631989902755550036099386877414272046399618644334741607252020519936321680252190470499918003547728355382017074654894814895896503984487577839593452811806319711034042769631464915653602231218552177652970148663098715479416827972637165893457357648242960238413075552037752139607372600849550974992844317965457430030060760684077806189019134323644235938809523250997272902890921547315501616744851224762607529252358026535787548260472211461482714344510212093217960851585168033122345211228867321664047739744195056311202375231755625315006711545403148859698098507322469480764221099206966052080080945667890243404605831996253518055377858148446553854642311636896287405900210950847406345633119843182276293056232662359165351582648486908940706446398723013502339459504959169039490550091996229554247418412381001376545709139168338245540413474419575461630697443899681002956625850519275209661870973553872057774984884754409503220721932046775817846579624178822527267959104680816576037661922554373889207945075867065263636526842030576323579757723260114988624260784622184820894218540418103175703708295986041711114153413805215428408485830355875930006625381910132218388518848447054190037828998790142485188273265613189584724723287260439244564160592597386378012603542796684683118224322215468811772811417292212197755636839146984354418892861340467698964504578637620242024650649576308104294086142431542075119902878238477242200887818975319066279461845985857713409100639559551904543150437993299158510247365713424927511998680544761415159463799811487602661356962398030269252140733567982198073323744285865602956956424865907292855216415940005003043534131563191665108029375393849887741865316636379516132566279249869469114485617147358190934115580412429765647195789822819284395160091583278044352641739297439600896568287692244587955317418991112286907869062568179166413234272602626744604183256984096324034427992581490995265201613022632944206540349208863625253373774761850893392272048430493088975221449609306587870364652989503097301559570566807066073987522345337161241381782124218891696281733444023843198948536294011006672149966599434952148857187575267864511724051066063997049557485269903215915323038864050304154259580339582091584051262797728377744302727950568377431644953290379033996291350537051087668367058175760060370725695309432048625950247377790638854561151050486897276487514156087383300535288332829914874015555555836547924765746450953886532463703274378776570938273081668351357425898077985116204885849504165667924615939211049773529611854017336230569545701587231306365061541278860114559001914976687017900030122536112817663843592898074662637108755072456686297305616109471883694064734779938195277747410057994480109806188246684737485412166525845222014945419277838817960231522498060634737844196936561468879493470596448976577656515750298482102465812174471553915396079778870425890031368707223996747583726050119634958742298966396226310033850486529289413467687625551062925263840002891422857110023208277423442281331127211883949343226594724423914742180695231456354454917213001890708614606063645998831027611522360198451668154660611844117867099889885338647767136345903363718327705350593597595041087207797442680898900040654453177526440445954015332044589171581683466358010417444199506644067171168583993937859205113235050418937079320041981097086987163756648963253438636579144983819914485401762532828031241122085827583674926992530815937261547597188563576241025361225202962538633744972499248208590407870297997078146991775647450624374612459265942500172080208854910307017214309976281696222261551105302821555761474420008869983001490694949468628216209808644344171856837902317296835689042946144913195993821401600904056643895644807518185116752089110352981184091610217005539874090927660988038900662347468150895196584073790873678780915921397296710476824812166034410791729122796575271614116619210018669063952309014004585065771518655126627219380529454834789362748007660087532813166578195395233335248165116184573931013149660842995497867996434937776719377527025529075034032738090045709459290059614346385711950210780668519887389492466285490866371726991707952200499078571258315109481720060844623143281147091487333712348109176994771637526199499635992423215361551308015332936334643649604381995147579396396675953616016008130565868772607524893444965806667126741963924461834517004082942781115767280212172967414303300053704823745393384408480993298783288727135984788298916807504621304513570687420777918750644851589555100012331922962120438688284459138371998154720639174858294238233191059094254414265687613357186522306901163815802508469275071021515120942204430131626892560279725494669040588082979438077437328623551382715589903866981131874097082745997279605421083372611148076078634917066563481052154930988823520777138258288886747962624896512218858623048103851625386662509823794166666045478161342239610480168444908995092433407197109159585552095417459662286481869674849616403569153490495702529730017926406551430425601418732438918706850455841407191439161516850094867672523617266527385279643988492251574444544376540280967559319208550593809676280419442737195064419355414821365759777050751201123579970756305245799741084980555145327931072258521985893650685437899378466385197077885425662242460005859738652473333857485210284387193596974899343602207217477762874765114651028312644430877959396740497183840501946460340940569691330039726327808904338362863099929654425612798233144736371363992207218829516684593425323998303137937352937982569412060897767687020061891922699084238061536863899203924681640261477272379821277994721112766247168255830805052486882338239830698959453261765376460638647221180007351450827609244121937028361565998648710625411556328446154557410050566860044907124453645824669349675288739404378232121491092704896406472264528578005242575970454772093049042484725754114394673742039610182648571937491330507113084890707251326861634816054832610594765190599982296074738957709406765845544627907374011285719895870180938724143903442576451934444167715574622982648699291882339157432430534827758177576582237877116827652770978609142164669221693778617721454043301524247179730811720732430339102298293599946504544016906877714601458007320211868582257845847571949561030467621050003218239250060900478729551038983027908780827711416691907436573176304665204562660640263391154543203138911677770115143776352294034167765262833456931129241170343865507614294581692333869151328614274345091150681694943917790141956341799852331971491024729429317124337336063186254148289321165301933912078048764664533862084801848090580783565053331998936169368529386518331763108705282902038744308471600724469033663036156999166280906389488463463210086265262803590523085288581657501154305176649786895085178382933435675437111380390261989681705427214295771910825675038818707779996338638241112787622882384404216389342190773133038095771145167850891717353159872223466104752357202509381844191292850604781917536962126788201248034911506606034097545899392081588888786493319096784213267088508487497950053915149320584019742279892787307640967377940956339879634372566048992540482288965188960898220965759440459325912443572365526591417109400419946016488932149201170461784437994746921050523070515154789431860043250109596578769139054685060571046301118858271464379669261767537925277457177267392580585983854048315896651872627693473952056053737450692056891328901420279099652670305683291245586733952919142706214571200525760101718949272553778505577433018311047289781663470474705668492596587264015484816597168629424111140979372354006172143115737341945251192937199281192984022707271223108908678013703719199552958190550998364820108136110415169637771486353578216998125452769015635335792559279444535720765920557546737596422197066197234741488350004660284596228636591558097933051432329192197269254469751724152324002897267143621477979430390655416046811999281806117873165793903935397029547981260359681080340501148695901949179727340210213228820241086737790029067344274601980309985494048438058889541766643333281492349885475419963114632636594721044514213695147779174658312329879216527292176255189547194081667793235800929481423189856613130016351806711259726095628129007902126292907172753020570268763850472368308524208112597676612814714441585283140215031746767794978707248289878983572738544325857748328998721034281841208509062730245882516626577098846600718551897137517986271621162913694446980716260412807153634256427613364881482018929959392742095597068962692380552899989057765623507688219320580517440287632804065235305178943983574441210984519323495153108036619260761069984712228829671434871670691855487656641285903703912941817592780325586602938068261001356833039154367935938512746509661844464325260655246241340797309447205983534104893475911543623292078745582271221053494571862710184780605931374451484299572771218647338905635853217691651431641463103722150024657289504239760104920863836171128773538439083412866299533780777219755773967175475533230178612874100717113156115456830370544470060059232338763652359565916607428740955417528317025827697871385975421568742639615809748305430768807913805163409268536281149851418848898268132052702984042674591187238629239777035884879820593279035095055505511684029513164661767178692411290086077753184906469550592937113194313107440406369604311169987542685947910173844878921014371496468952379785996184105936312825890323635526176441136765365753455931095458870828587803662690766954768581313597803945669004873759101704273231571069233476612038084659231390509977642939278504263585872708704013034388342039679435399549440595843269896614522609335196037389289400763348067320022821580557916839504246352661313209240628134796349321735115923751058734232390661309540524766148597190693359997489922047150722826042088648286571375515677323514619764684637421262643426148456988905600144555955892120755544141439944506641622935430095626060219262622139811251413152336309123568445988669712714340010474436993780182809445209057850554035731688878993567728645740333241031327651351110431100695152593012561632510876476179094846507291322639791928589727458093120538717588050185059330564847505123836330023786578582726408676351883946369976518932318553165263423446795907314998538528772038868023013574858023177888722377001010424047269639836375536804664286671273603110426547251705326637145900125639721787683853580354442466198674633358511826607302421217537134773352497229154533729535771921496765628001837568137198607067871370955677418881549125498279339251326499187164044998625108306276730583791937650327428569935119314588890365203288436159384969754588739326347396941405288163036644890912474074104444859570458722596767951181021542418995624988140591665198033964985434314581333745368795082138195030262988592738630790196490199102953660723222810152952566928450642863622132868132722284834959828477435883372952651573812583404258718127143356460193626807765201391505960068909324827236610836231745544643990872615404133417858806525052892044141134494497937721923355225730051703993672534639667947006673121269897643948419207147035865113779099701159053387149355636585439035392139109336645744754788933309555267256284556801579089582602225843040454677046798394411187178082421079950581521954060321906017660387077685620891107217511423555898166851551782668885125087694635537088755313364607356961986574835344206565578934914127834144829996854408316750605315652307879876913772269752446872565331789018628336845218845993456154226505276303359393704089916450366647316920537536892030719406848324856026066668831936549857271420593224577783486447329650412843828008921254059111208479813853159799153231491462010041869197110484292989820440535168328492720992745046037479209216294865999635135206724707878340818216186614322441334467139435261979282480555888932807843559227344023170100194810494632413238142376000946318192910938850718683142315385615936189756906624387801027669102061103936614980394118270532617622799997034022385703864836504012639761741197838197070265110620219530347315315654075341767886299696421785499262740210840144503050221030775568311914422622805545229170752222321842490923057311227592845684648498209413909149803252292529031813859866178574526418006147852256973868407251059157501973685171255929435118862967890576575574904890079013507492062598081401736354135292023945571840008827158138206489554806243860226939987809317706729917974147232460948947965013599661494467804708000727587621093117374179781176049498327147749155311941095885741573370963629361195373134857725210768338599944245377582719030620436503113052750284537515675362820573917828964155160774605973016584974293401709254784657135737836821223225583466116548458148279327568056798973923715671670834628222846845100513057503889634893937179703456863960807377541412695376941575054678179235124842609402850010535511251879487522886531173409151555989173594036936196369438029501896226661326747887547997933978429082797154013286281529223941205302970185744702544467417695163384412049361731659118121835416555048257216314329238987085410078005601791563440539182898680601082904715682801948211128246412419506739372045785906826118635647432102151985738304206719004271995032755300833463778604734020289152841034292473734860109728366945271521508832328929971287830299104573775157185618441051180592472562306676399137579697156017797861695505496074230242046942172996785321854917094535898975175789772152040699112823009428322386353627570419896728833682857074108783282392825233809375493529887153824250052944075242367668012300111870485982297783663931413762939005582283588790189278418908906852339286674689620789419073724499344600520311961169791109347999935597589550945993049927024684445898767685277501763196764061296416141419740485972290819526341314443973671366552666899750737632648556138605006767626885159811167133467876183183629040284338949852783688835368448078921684398826373832970661333391712133096398171404978183646738542332771438181741719887576687782898744773008298762566517909146969153481854338765824763099101898024354673139118762035064397413346935539725362311036781107353472763930620799589049810269614065712892627463594569235611591369232044614939493545411039607902986403383639821080906825749180623365920483115941085697716252083231145238434963935851462772493921111749460594936664153467247464746217441464561874489546305649350200138679964916665321198688994766734706442964706119428318197652152720148148633420792636283346001870989839487116718517070056312244983413977230087168644441177280190097548016008695222273585726422657193780459099113164335895160900412618351315363649876694243284454578043232678995422967809060027806212240664149646977835170628537927355898764248221086158903022896567174371211787427678699459113637056102285642114260881058163945894030623246361049304228832654148690627593904252822875451124905879035955761797062283405038016877387188155759215118207525857671437165913759951918392377486771165134951063851042648959142668003000556296196966133468680592671773583568321441345478231917790996539635548917429724804270432014855418968330229711530378665192956908014265726097087545561383144947718361317695788556642991650205971441673956588546120903363365230368180770398426993680280516321117477373684230952011837273254776726720517728141350602672543404426689291814789356424835968443309123733579252464275368673761542893751720846936617037079824493904504151042805886549186562116851621919497724288109204753037272706957931579012224148075767145852660297139890916877112448810800559052322238965531053359224674695852782837799588795137280435596100279769135790341851540128966815953493369243379642916889733903555545479084529595026805758431189409479832754480944170684756739870648548506174880483063904598118102069420191661898943041872756456647125986932465263043529742931124047396569791224177608675649544866934683799795016785834811013144491688206098295913071649649735446510077148816837176511386127272088556432839581585688649988101925365067658593682222282866870830297197467773696402496956375379181045888025675169418861078804032494615011416186145545720373900045249212569959610278102979733703471500962112989437709327278703047987746431306207215583104616749322246236506305327701040238925540918983762767621165011779338440000423840098225453843356919030172608281714273736930278222717357760874228733845437227124693152497327059145052461099804353693705033436495669612782830424022314385549233057012601989250770859519753679207533558470778092092752718127723523371921163182652991647340789313191321425834500274309758442380550023065307400235716218227397838578577226477338846652750030882178067917436273195239610535915864941504846465629061779222742454598668692705424176578924804114833437172118471734860614849301414648564632172114565861612645559921438255187407983357480910688235087443552277043691938858496227867185689397180523103329797979280647630550240376408590860074902282645416492298758039802852117147670909325278315247459313792650767481829571419039605875053794630283617331806403101726053388055215952303859554619591228193423232312496563175433172785097518240970405675898035693016450954469036687335181192750757022729408407650961607851990183746313421758594052622931889798042478413263619379419762558348325739768753700438351987581353990860645909346455778233410494290861432903631072578378593966375060521604506656793433664616051541587974659096654205907831127126688283617904622945472240297059898601405079759930391169424164798813106929687636494895183948444135504756426746490731185148152310460130378202196525519046846810821606192840646266482187213064686021180414984426750900356321483027251482629426809115030690111916621789087247020936551022342282723165896707710081195476850658466263857815481031627285525000276453147284016263629746843911942051566072265073819743505918275606481770155119258473346462269240882669147950804917723266345587763469733171971364292961241836497641819947572460498193276615128793359980009883423492226310853868991251044690959548554423955592410526966153166719647301741621244485833931336259500444474083508401176724407081085510000101692935339570806309780524026926780974136816042637618715998081458660336661441532792075919760376911634087883946370860961190036617857100129539142177037897241741067923980749176988627648087222321413576810409680563270542577730883941367900336882488476892191262327728003361232195828314109484981528015632998647372274362705543714494701420712890768187538518490444964666220596716709810067519252044863451652508431457262944460554188078533571088344630207222590019342818459931409063985147298527251314506571268332487330319920151730122230949016142380017735618168499165874036638233840954152986817408007325029446353875728993945127519868236989591105353723666690910315658838602128345458397857422755063182051153267320042005650905416830781738233979742379321710231470925030081734526274296925052010741875901001373801758599205839661882482495175176627645564921200536786511345534087327351646129724106935959638964557972264334200772315145295520967099615351722019778213404940089595364705848693369620981813840836062588757762059143246669323979571557513825485298656719311877690414404814119398681734851440232661621994528073013917369107213699364844514883458544911930613536624600919282735246688305540802247361739315741679678402286257875670857733790702509539374584235351293594553480921335612865637845141310915767365792072852239656740245281836614558794090125332268466842217666551419232082164782094999404001539704261777389797149076744714060274192075893398776706149342469906126743249320459032841273088947132770936784575112730186933762977501201140703633656799678851403601849006903916499273657673529155859396125950053227206696597831014785952571069453421780925488791071329313757430841854250824358138915910430858513571433647744444096116983122792338184168709256042556224364172926687301327979454757658732869890004094817954830812344943018994234205224204606342707415005828818661017214326807898929701611270260964662213747552792570548776501711209571439542788588578194702970661627245712381705690424735880155080749058050138235082027079042615092115737191453731003183692051147278908418731297044083739496906315335424934330003258717251618812182545355449009360925167766817037868105614919613078292585851194948750398781215697337812287995570914470335606188985329654361796788667295813148229920411026181794126906711640652923155476200391250667319250583998769829875402291305456666911539836778082314846469642507178536177685972287903798891036628786412488692802039510759802167374017917460733370917623702471701499453572289307440731932839828762197744635927470760052664384190474606239532921086173827282220884965341539324255558021613314328835366711326482751925988864923728949044114135429852647496397165388351766677649116349481288017303524782853865153847836478101449529309144978842865809990137402890358570648767801219296282041809729628064021672881436116719135874163688999664060037874826932390675070519669368053024164806864814732789935352415328291886244771616736564284567982742275719915617242935540638807145456860806123694069960137262237937854635183825015106578221979671607319174750190864578497424721807256480608884679126393150778719200530577497479800283280446545370449186165713972791120721284461694890434046534404889693596349484362337030221256770923258700615444098907664858486887705056365930296204432379919692211540741878951756910856705660700159225228239935327192118364980095540399179361653583125581568907536822024635537809200365438866515089303742078583911224001663795963192527519826132851865372347838807453366203163633134628716661695775382284929835950484486654207736932299165118742136464296457159674082715295678264989810217899777698906331215697784791399393752964818380230991648448337090795567643278550895928353084311349365518310921049660152020652044251599493661806647453005373728222197480565046370229653510986288941345781145397192273214410301081092777353923849345480061498977142127428843516224771030771208262343738530890106766346140394128573689036649161055407518538348069073455918343992673781600461194906860050668933959322869715124875597117029905416604510612480017304006737523079776287495009094696579867364474697279262049199677568658511329359001612851465309573275485581122034762680632937612468306283257442975855888190642989325037292982146692711943259783370618482005225833572124585343707198003166082566060119347963742799565109716850904245715112096429812697804097967149353809897012283322248671401209965173234147552885769042095228052976968906571455832320577606233317051680603693346696220465775508968946819322469290367021869011245162424097607398821306910832961670212411558834358820408965112577595479794798006861400653883212295567632842954294257504363623954649991978564592306439764684155531734585602184095709074113119318212765065393681375997634825994040405790430288138522419837440252080728702806950361855933047364755204759503818101931704597246886869003026240818060111640879076050469797227819125750092491683877690157408380456876931013224449873320383393272796196573456391121340034628342462240413988626460858519648862968628218175338219633379426671300672980462116785398940758447427121086123466553527848875889669239580151039741564915914819169614108346255406411061692913692469945658498555057840342310076680305308243006682768644607079818280837289636430474197729910413179192954160217392521914245946547683640260297132324494190054823042005608396089343326346874481285474228415143794608322789430193498584967042867857341997745663643861627278858430075852074176311558930069815961120681802850078549548089142087128963567803379238051897002799019661312566379054189486134811585834789176062605575989495502464750481050590287945301964114365392956678427882194932155839395054291739091107482406567260700021894955370768448003481679221616669234381556844799073191220887976616194082572219331347141242179236530872858856106761477740668352740279224476372482836611158724098860464469257119131185389694148428001609975489678904681231802087053230986016479164428345319201328396681616618849503377828150478852353210666538274779955779606381238795260547277497232595906298188415308790042362359239746415392086840611929985689226786240936494779032904581220312665384747987557428548499057638862391124098442336545662594010695375239320114854285322491696770357059644504865229190558234148234671198523262151934577493922720546477670085154244406581834181327029184952252048899118309587155887802611386619628198929168096945713012823564482584431953306738374980134960123972918181905080295298882232282316232093376839686263246706453661022285495679318414857299412637763252396684106133264793550327503415118023986571160836114514211813735466935732025866940090616605132725098722424884711873104819970990814453003148501620661695863279360803900032973433424289804376089612815598367368237755993029801778618474188891102019142348653683840703824199789235934647885868423379453626862111865947777748837845777735697708710739426263384895686048668700332729723005400860528097985732447712776003942555102703365899310585397589791195239536634529745850074223417696465988656819047225422941328406812015608649819290404250409567057899865482403345381920475487733464344922480822837781793957330840159641785159056985092394009238931861618974172922324188903677543605966549496484122003642672425036997706019225920161722211534205934380541319601765748782389767188491239789828625330700817344350446348557267590124803853493473963844951384129760454563732802064564050689128362102865315375476549393587925416278314064504440521836655784008672898080452254470299587387654710672248825583466357871915822529331137956780253768804394806162676536856251064240328453936496059430270562865543287402785567172335675116631533024104278605201743613242354089631583561270544371528598210737328539273338608327238201070734041723419199615255068494654307949393217784749951455664598582619184742156607502965559561970201578766134390018708732780942478434315205037733534844782262154712399214876858057486596421435319893610697040258943436176498130016714864815336494834277230401748128397440051309835382062548470052194037255246493762046510073928813579202436643152791671375484158698340347812635720358557247201846899482708214812187050150871246947154684770754897929437514758864538411975514339090296000118870346789315548827964460834531128996582119356438224006556915331531193025586821840414381454639474234808755868878518929281212654032315329277078653730960685817857718121589574335347299030709152316656123842117636009218763207523705105223626350417104623459250462677757794785391931517084998754568903134107884426336451274242925218714445369430315835039433640707874809022562130316855223690902285820753032318371910954505540958426617467554170642465267919223739227950918429856550074459303851916289428623146365925090543138420014040575705901386414910316892192296732608516642323781498884017735187822795157017652413284163260728126410130052826956833782531479271466238383987233652691995743319733406204839233737239386322065869187761274545191280578872843404596060028589438774387998457032051890794350279985032814050993909524205662638657454957731151016377444714216641532413395398020996918627275169614610300583556331723916265766110901036397413085198998621781903205903272012097042888780003659925622342736039895636731916023718838356744073978780521869437964788511296358153840511064847053708808365814291849872552950392930984365232159491241606553428228534726109490077074404090227608908406311321334880410300393406824206664135108173300238816089392538454768442360782775374047276076941012488553206959522273509005710738330017613024471670642801597266258106676550557817359536879422306522304351692794120529733012654126059970167070520487846041247921796036197458224718811644026978249729326147003655594950613762996595588352369941244288068683313777615129824041470842313666525301758817490734606933419637381914585440072423804496735531355834067372507205346512223729005864198732424282866838757392140410551632430449593846092525168366038549927863269994303201751316003039686817603299054611741074303898217876728557827690721532126680210312890398428917298959215325471432692587717922592694108152828647378327319791944161678640051654129211034572913590737846865501246089567179391821575654239388701032501273065046285727561017160717977709573298646884590973235969894132305669392349381043024055201531436215531935751454647266892444906054477098929534574289554262300252379608944596531531078575165570292375808454156810878118536215427883609302944980384247874596360979049494128751408334237179812754423536442277576637563111366357597654823842885105654161918427295722189666385447278250738413981745803216823756237648605839150459102252013740800479891735773668906831601068542741962224126323273498342331525311222072531731323691133735604455186386418655143409790770533273163660047852686768504971316474069656238374482793975698260438125743365369240822514679200954423425089860978180493612436217846164922293778699086544403702105586189790626896860295112084417904163015807217084226470421833741919171718136979422031303899590152281955700603877738864212969500368801021667996567923068921462600952868359854961244336433205206223076399087121087862131825383819285372999766304153043283046164396245288180408980542147865465280683177967348195569854226370324905193321753145211786250447872701003326947770207406284847162369633855254565796360653898537578275317040106388540951383066282260719395038713424526805190213456926253052823286317080536156801672888385668273171220657227452948363681935897874889459165645584196824987100836983048677818152275355306239684231805490022966416653455323679431915307814262415179098832452060262922091322773078936834088544020110032846388212330432697791714004811943084431360982304429863785802881068030659902303380088351416082699783481033817790273926712413414504935327463350047277598033046108825339145202680143487601227144276963393049997974632253096872017574952230679840140821448614385527926964204379841112243241560736246095288080558849739141452683347075530824043552596746525653048411720554525879004482135733209546635540105182618973390324761730342356725460419488605588021661411789934502844733882853736441423520053460623853357826878185398366880576284646249328412802668631311938487732567258061580092777804729368681609025941451329010559780196998497031491146429083338548643472301205201661767369097917176640479464351034644959375510907269798472286433460568325879902906280967152801645590414113801145067755532779720708866609744710845858386767347963124621362048921462240973622145375345796590280748876562297902235388241027131491241040342930511313460951565747864231766955768402090900519124943952569443670597140283212195751414061287520375766623388177834499015937830387520156352892741125570607510173565962091352723599954367998046651030263009671628131914988980520590877782602317166833687618877511308354436683270685422543586649112162212978056462770141730579846250933336832832877573317053883200494393322943354216268898273833414521249569491445110397216670856619658307846528741441067142730100047508999020384818722330320403613138411959564506074493319363475281977458372075060221754452351771888351241022469173690437171817624614573167176689120322583851639353088936299344531108058814478673731921921630943406738745691317776756801558970956760796207606254284459263986204318447559237118484950895107515515517583509951704706031393329910784369642869620086767788374081710529874426671201527491889970916381015408535521273944051544445358356247334052556691983293303917163124230854259097400304373125426356163451122370615849491116912591257338741189083420062167744428752987428938317448093429695206403387316213793816528629146086920843048061958149612141557130729604129569630722983204948152463113934512715967741764462575801780949337098787096073337551693333508132618498072002179713461308687526660573564624342028615575797533311842227239594298881436572291205689543504099429945401487893083052274394068888180095620024341208100795935844747089435875112933557742431553252930852297524495096512519662467692500723521297871905651777545946052525519152886873522966099530496875050532519776139744295266009884066899502004366365196772423819913218516178656721699763881074671332923610819009484923364625506817581455629281331675831710816934954349107902242137352688827263196940208693625470618128451273574544216328183396780865867938458344373292894980195920567991539857978864009367619730956402490486399027225102745444591715894319602050581038078580236164196974369588425339993140008844503873619969826786361144981664571568261621883115676016255117430544523412558948765537544050208458454310649055525138071404577389281945665874384510832863286346615155285356532750028001411045711447975768150790346442902022998285439461192766574590737761180742814410286031632626582690641359944470666681443623756593902516066758501511311075218678374122198186093808064461064729229259482103150502655733411402365018411830308115122658854374398814267253960145077601307728234033415889693503150022676349483227523815979431856327625826728538731739985668775292484451786511445644859843200429085508158889052813468765188928294493063154111545370137499156885496363776597558985841592364328033253837402480965877850203567800026917301441148334580621758699189878627790461989768770217392915900683071249911447597082246077907868110166510458901928737060369793929128317987450080547517122961543399730090828524276845886304218284795693764568548532423359771385724879578463489990856458096270642937321668501948452500949907695834711983286587980715011326813195595491717520361773547132485767820263239020472196665928348921410442731841316650306867864134471386069081898152935779693485560627775273355158715092603707044268686086159760800464450763397758131091067105089802499209876618188023893624038592907759672596823918187330429213375714800310877157082442904566322557085123555182857242980252366127133647650860305468335960862618309334633026523810578355482592320245893807338368654427951045783427077843741588295509537346231943369716736849385650198922405578347699593420991736774096569995646473875425952036230639802569973405261305026719822570493981870654980077666415630453064675953679212597142903150163911440738308495680701625930321359640215062078789875371292084629034975872393770204382485596084635027678657506317369300322646681480808693873641664204550379679959674461861091556646580108080729539262485011963153324925288284518012976205397593895257776302949828545132838731235459008446326854645764681709612630209327538696724374586434470772404740888864865641369896674723707987509298789552941320391338756686624865742556009218645261863494424384543902783467768737304395184991245767669088265181404137047320584905311501705393060831941516077663234500647127081714443321027036854335864906004119992237152147766298926911162677428193912476170832033778979775890645293065774602823804153889064521632737065153436255141945372700575906698231006032968114974849173650837108397767684218068354211780443911937811888616162628762286830838284617541181026436532179677328121955186498211519212283307427049265463053145521201750059711714984834587235111017476550037310187516359880484406266619979995500947978296210150898906815874110138542135481954863396356501000650892425902919166030489477845232487830629178449929616113271352480167765895700859393308691483937120959419722287721797050849446614829796045894586876722270354321981711564156414520941247437054097157446417309946340390005922435728612360035120349186475875228790433742962145234463578369691683105570656533952409202957482605931668068528982757186695842036425572474167089568274103261096826923637296065829513555317109590791574086968745878162200062614591166789920381957924582792371605827714212340926247200822576327857229149163213520582383300658311344808465311832738336943934503833816588649788863495670195265653736097448753309353570684298854405154348475165658549837072672240103825312157633489688274505329936529336724367355604041341282869048448773912152635714975090888236506843463271147917167531463474561574047427426252558703336809767644085470158902213867272273650241425673185078722388461713541894226027027644696530551980532374182649913567486646120240732615114443692043756496043818096618356145035008813150382336243448199620395002418480412131983003636658754488375923619326548280053830120057981353012143611440441927427573240100223843264685144511037812961748931418934330535040805938433305581179908655780543975983506192761298108748738341350696819268499865523712977854750967080862482261841468539832994070240974629677373062461705877876112153399409365968603699449278165971701392273717129222609841733706618367958007237201482888520524365683012051895442776917171934178885121002781495045173858084708632446828687460147202438037072738905657337715239432355603169447644259507002008521786395470901973115944783786782901067668487336344867738778039523937723128421543688675470580994584690709623174543364918420844425658304527719398607650534890683803263363897369192066070860250469960255982035417281291493439952385853946866592822829434067224582146965426437520640023622001273424056089687209108380168648824879875473923809449294931426657153953881802915277885562759824810998328374894243078493287634146485981811165814217667108599213204551246446221061017031395282423278029195633575686789664342110811455815863046487361081239120555941039541550794382452200020906612159758086276911560094858298399176588888307561984440162214734214635760273363885266304063504673189677319660028824911733370413971753177135619175024270127947334848030558035408418018408234136464377885142807150187206611709803611344631074067333855486311136228048916108494128202432330155043207783574100864072616403183917023311251149531054393598236497015650760799413073000859052377444004583813890662286316596153439921046728384327259102662126167972055987943544109051366708519188755206704520272323209377161538934756189687247627684902088598774992912515005807965053413161812477532823154766664099603002157030840772019647998098452430108614941358503022534535723642423480385434146071962383203908468275232465903396371449416253236908845195985924539407241570858513022036311277088705334627847535750212820494445203103927179842581700160526686095194105655847333715423906890931883228752821292785151862286423190051056895181603853551208140930891832166236503138068526518878718852277748481949899283587601061047893043204416370711194100109440184533723146187878190307106811703040596644699758645010837894500912204058558204183563515146324900870496457156903976886569901779514433257514564112463888122216821027037576382538526484553608181943406758416867687285270857061618922415160738392782976114884906250321775887181079636439345977135188410987565836878980524949012364192397823434853424948990067197570891418664717110114188780247325808966992999416243771212491608763977183076690389809698878331917839071291035422303444003381154012395822490170847909651017404829866438019678454847648121016243885924061361617596479753502240431298406283324237462489954987922579666040900972197116823088969031489326031951544281598976190228695582745294661925690258015453247303080998919571043489653275006240552198108400975559003011756501541876356801087015971528207501637126682773441605890087356893565901116510009705357496395963050747744806216324345858679360844287952552985605644757247557622165076492991652244223774480326154969607220251391484978415971564719274300557941735825297190244805066919915532628054315263668004552494579606013371077810998090991591942375511416190555868290399435165559821446469019148203984689622908335279850931885780953897472941104807287172023111687427677198004498832166137523907526280782598287841436284227063069830221211512359454820759165671804647460937106889668697990777547815933866960031354196609739206784546063750501415892495120591257575132699544587737807629973863403897211066662738852724949598933581551537503191858120620339330295077119952092158504986185228710354721365420039254120534385226498730185034081670522239086221959507262186015624916555464236274595557586104073880617595221193233154380789455144778421812860994388651828116848352630972965461537251168301606743060203655253140156008516710533061375218753135133399216977802215820798610989451430475971607368085241230954634916204565877119390971549639251315196292500524066607974535272822266889672868537532789313723423508697008512707559950633071670964474041595347410698627936765224912050972462534183055247395092191913921616243858613972004799787891034239037302361388891122589062074374657007660431284989610175866835090216400945307727915976482800780954256813988460135128577343308350579193055582877514702960175921271618837632857981742295748198887303508164223355792891855211081121948338683018580545805335274229459817391584109502188090419971815298334087021636019013070300900458163428748057970122347035694164908742322486204398476145810170929083404322785805994570925112239303109782407489889137408729530485717070803052240099661769907512322478904466672697846788280165431271607493629441177203329113751525932901122855727857450478510304460300185499073715710193928314026730718948854584345223994130569303621581752020133678659591387812350718518283824783082502753150522083191056010818424845725508729644534436911730245802239980759990366534999707819620921196237501021107654619639968432422352688937499491823697550083613341697631213290381825729772190397087218868890091509220448999820419081136614441890310991005001668455421150452251967587565653481150610141265688435859675342165883197916569960752717473208670423924532483223804362609100960468597394758602671153086594571622793403706160386899057566868056661783558155688395848070530605887390695838554652171563158086261706864576723238509745224547900297474612239177380392814018322233879637143625017304605991781755575285568405553459590216200772829573202807762120942142521153002291440079010557244203268419000851597152269642536273398107744862820531638534999522663497814952223352374404222155038180978290863733077750328171897635267484115615887985303140099104837022724194090885122361064588771574439080040407144503463074720043912034352943017427986218544021461429703503394487499567265363487992678247604939279129011527252816036361359033287833741838486673223339414910896005175184289754826505113131860515171464618454314099380014729739773711759721990375412473283381956733424913645032848540036182487728410700797924212584682841874082931887913403597656764860773084138072958373916449345659685315014130851509387401926631350758309074583695559743576724846987983063959545300793032516371450892661829380691909530436119551892182802367061318081666058902370527223093994761013659556594282291255824738717624947397672976961548678206186598333606809426265566540686590160694660064153341161255810173921284088700204187269012382513671016522662529932245602916839773415654210665402088994835782978775105814474723321921745421999831133045786485345326455534733823908588795779477276054027879903486551004853676860491896118617674627300979044865475316372758467300838220193624069191039334810557842541775321463275421308198823040173605359536510351867611027839433152780626084837690523205044569809796403385998398786712596233122916784912415830568025545314298728690080971185122221753772743937505573045475117247119862886301677401374925422442016606898421008441349441389844336939358313516476207263300298298515644708170390208710780044170191257886832283404817351483858205547090580633287181011561023004955018330089114881870017322099051531035266886691886853935012797934530148198303813386504586868058713795513336083913433484950860023463578677531245420163114896017069437093593133642766181858412323410941545038345085030119949302791313922990807055176565100566145595874309345613204433432123266370470051959114686195856352395585027385238262469206462981490734720356818351462744993022008899037980151015546046730426798093360070810655807842390229645910215443261443574265697616070180992478590586064055449665299987785063926124354271031585126383597549321842987530401688603187152556859606160135293972268966849300306229580289677638724493454858936742755256763988532809814678393206731134008275885466242219851760049545286389029772439883091138485807129535850923053096431804179598850150554132608687546980276203854715265495209186024801902893670537079682207737495213172938409864055158395005085781676721830316328474174595879894231226925700596637421944047122043508765111392753553683758398518735159831753966592913696661347514163407058293825154541230531867011738879340314857452365856582692073571252415408773270738113886326874488760063462164440068465988206086733645993868643442084016989601425539283260200017877135165980998274686155735619086068455400348397296432053133005585324515601132127021812735041738133140437600256851234478840519250246111704535644695489698447160135248876216837267724876256797962448938122770906819225735507864276494628856845532264109245798097285006667228654907065223087645630749339420685364993508067916310328747746867730222775721817693440438468117011526927333112941540608169554914552929211756766623655058777104308167265668355415935721847180607380464778411973574905841742847928993791107555084389367654638161343360893015200239399547271941260278758362689276832781761294490677543611065750854387741340395532212014055670772072987084140182658356315915833349039373797168494839476810894112263075443737570222204613917905854500246202699069197275401601564653817114810452937002203219976437779562244561040897397135109396050287580986145221528716720950601239137982091625845478290730898605747298731736471869230613787327354111972198084175931535269392150806647507458506883212946694099808338161760798162277233492064014598251184813142733600968091780792174564849065269932527619831072913016653680491356191852069850862126490037639076416882940299026521915845827063882294876081576379859857376800176885241499701975237499578314589386731471243834356953401137771003211889583464645109189549523383132849950527092065147551466380048849193790296890776691720118279556851948478084746990248643005639633980040197115675005166431313727849173096218371398590063755236974636011493438482832458824607971975459490812614706507162392830649765282829308324328993465486212579450951815858595720740904471123650761224008569887436592960881424300985413726766190627402878456767929494364443638392908116783470251446356772570535168455370746885603729874614535370246445295565253959565947276842546760043905652310438061726617794223067500463715068640590925872360944726944224945767134351569990023919469417112809822891691952781480447048637641374812005400665122156031263678611071299107873027374590146481766488854075788549662875764753750017538716768525441958755472676740706711369578092535205258653882779321503664387715924166832689056575408775388673335933721776970593659287234562077754293333031082240496595282848691461174532884341706658295969004613074677240169807825107100168413656709423331961659767172510356421006387745404453136863440178295242970553117485883857925409607536812564859321894832652865025709224572683322646470548860683385173652455482527546810023847990412556674105831062145776274549488855784605936230269425723810489685900100907825971233372397569634369004208825321225608598692786089996896296537967503809834421979270141658435457569698139581117011021640345023833053267952246509813144973839509908712970989672247459788921619580873958040196009738692517214871457216229141680652792125179316206731931973840022706618310306773647401854337399662392453094640680137097848682134011974446529463932309427060570487119371784297014020448254369843964205410632545570175170021387450829336104636760070871175108944612549167699926970712143191774025000881320980281476094248501937074557626347657489021490919634619621093136115613987621588524019238289410702058044702765811482284701903003470483382358427289452606013890092746424049112689990563884109945198269429689222199303782448280527104717295560976031872348304948411916040073327069707385595071603578921563180676268553167141362747977908850156643599348240952426271004384063893614092220657825831852404406349910567041501955401149232911735932051909945619916464387915856436339846764629907792389959980456095306984098563758381197731697501193741465709972397873305091302788750587781520110402194639368429398879355771396533798349920616469635830210013783591517028317684701655871590276447692104770437726556802944056779173183630297634233115315908612511799741701696159496157195869402889978226926218419064845206271480070346913431066735773123649963482668117068667301627628663534429544242704502493232961588176718996084008888475844084538942255087711058176315224030679814265809048668087391382354313143525609702969111798210770703825189527986596110862831148735509635755150015313036588187610545816102022574838590588506836415000074297138134016273029340487533898424104654272530149779735947884281407455291307660569400017105762114120974162044066887504131099613495966324001339361199261204730087700037685802701749676053911061384549982078021425497277867063130629441159644444397858629179452900258609624760970698214386859490153826929954006671139400810980418893156416100349860021592439087837809051869580519065462560033450383775195797590675999700772976190562464100835762358426285136885170107898946128509027662963666028541537168647395550180974790203763804733865073984240397198779669854933908648777944484208623892588922260506294247547044107664225325326173479589234829490406217550351184952368298558837070034569008456498831341286792568854244620180024894101042363268574600351234159298251768125296348070651133567072825302425407060424565109890853308672342405606500619278098611293919787040906503915569634473991540050967884857945528087030807480807066833406069460560813225689348976736708253246069756882734777073543104711012708715245696153749351544678958481780571393213687126293617363699262472863773406196757435700615477737671073548147901313803000332623139309533231694046312643886845237117137286642017664352005531432002237775996162052530446738114339444931811284133891442189379408254820463999430476675549098435309603482399132811415874172266192961497502946774505644472454592894744156456174174332602180201604429679405736470867597457224160320262775729827819018156180604474228163435518143296978434584350196029109086497721025296925053513400753781571646589092736189218017537843722310074683016328776651264242537088413597734540805073669624542368053851944304012230719673434136411826855139683106399082796635523986711793089012357856097165023035809745375256497854649730157442552120723053386948145353648396887000132991236031207100513798474414264008789688960142510921138206358700333719886607437895247075950350491899208207592743987229990305905054165738934578428407912888298601348372835368294611242517849919196039543028110708204651137219434290120854092714286502213741234672386292572975205096045688775619170181072145105679044811165237227288013348341498803913478884527030728638175481155318446944919184390837421729892085174081309091819406240676043294478027032836537080576828623236965814396994775068299699023058621208836256249175015960859146715309217480318750107953128403070614249945899842733422985510792077678224917055081380583236157581729114361694050441542888419526843811127349728217305107649146832918555304714062604625711845783655620319878323044768703672374184090389247497224161940625516242338259617935385450256836223889326100237217453795161060979307611232080016303037694354922294719518344859697329795630898043723271462813799224848402195048511656429825246535344115225789311128136757249500209591031245566937155802084807336814416856001495078610919700726472177927164693507919294015083131903056620959214142712557433405236852050117298506157833059372789146576655152736377076781689604535157353997885475015132374298793539751635490931029899539753328192025035509973705550177240625249743173381164378472084124501676969193976920782556266323900310617062183131176256473622003416934630186821283432410876131042001909312335990076679669517120104934503099844808677632606991048336752675756390447375990108117078832141105433909402105065220244799682215228552123324048046013082466716441104704250032633987264950040316224754869032482038899714892056062459094467572655338248694311107010019560155263150035607790381530923517310555093826174116743009017311015416624151391878002014126177820674611178833019810639869377061185710250635203171231028983413131473487711406914667356064354248600576901855689880457120528874865072157663907909744680679415752171135080666093399229820548183952701289565461936358194053430919766765912012163254873281429255175645105461454182504211251853118296686113195867015647149795337693170468953042697999475464737727729434179669246437244886132645872654573992390711992174790303097521096819044385979117121620333602150785558638164727481037745809903070854073495377858423749500406190012891608720092566031748471444069069822006197409596759788766402670287813926328341580757934333331236346329011122362689324659941059086022854942018211791432993283352363233778442640165626456279013664998356713093454794767430822580800248246743629067178514832307480409865361897620963034756438145838877448222397086614255502000109289125883473205189137314117043715762851293291969215268139817155691681142130465142276211557957394249399580960519837663463452652437855702430328673078043839656126747291960584516449359201962950631938961452144469577093321281461441729215070945342782487575069765909520988043772732659944999203821731521481499248767056363881738405836363156270515767675965886689020107319202225275791958671200456035916152852121401611569093027809891394683577039983468105833944241969489093122817085295189794603291971639158850787125143988667197501191844353943056177552136094102709940960092741356594155382659979666646527874831145349637403467504865579914871442271685788635146580000881433248797682456317836094512688887712946374600777365943749007896415925480691863787767744234447810321273707408325904907534484993257961682223717601031482662937938283073441699090181082818972997211402711531097953608228839218196907280086351956324755875501120639159282707953883124649737736726837117809714650658195180337550254862950554853672222128096797179954255216775848247016975001928568260321010687602967092133543264038591797340037572611553513852179802526909281182894793778644862609681675254225572854171523325823611153486120521618834717376623089980385587461638109760637122477609857482729474101074640834960081769556355872850963910650463266893865889329907507278249944025919596587126060664092150967773085194016985391171830257883052194265829779831084836115523239536126848808948104530233542179478771645573391248505134171546146024911998482920748079613627396518180188564356374961070680625086713883042717399673284938884509981848697843437744552692611393260118753586727123295730074610787929313249942915156288537170875836014484149874460036171978245786017784849032978368998043057470305391165453307415638893902688993720053451610083978068294913532796532193090760771742910668516702143816473822950953260448242604281831148946858782293606675598419423790362936297759848146208490587520957420803789230907789710405157377004930058016491543052522108094576721352805448169700515556967032426730799126241831060478265864662489376010482978114186324740502937131305643354384568255558020609750997487986945764240452069656840730277619252554055121435908397861692355214535034214310532383993029689347219032648151150893208953075818130253961646944408494673274611212583085586539777515119374141907526753187560389945571144752231314208174641425546488757478722004224141417998701422403335133998179878383695601828684729009804994535653072172290887666614792178956360493905684473416897500763375224853831121815919624413935700445442996424036189973410858974809903164765365295808505489764155803725190296111465973052191281726191125690027776540453127147145484212432381773381381045699079374175139883871749321516258023969957558996639988753502556386476309118781010405997652201021072612545013131410959265978100498871154895872250310818268745310320392173601353422327530210782401851927541902028694682879703087349107587983925684804465937666353237686142817699130185994399940993518162427560564646850060690581319557283493187115075822930798283040539790742466553849191040291162090537918010146418367702519253521410768147174842256563070791553638850035588032329709893321775816535292703265262355992878266393399639618934949300065053633609605114348159935650738703804321291760259641281529582427183863913643808239565431894315119780190515263946370359385405483966588329206266163778011291541387575973183586300006015119680978770257877180062092427525448911176986182191251540378205913856264612000435290817230767033752992865160772376283052024603031275527909947703564742438747692091190459144789396600247613326093536086463206569023584249802648637238006254195224639602030252152977360924699686273898358811480866192081397102276864509608320826512386899661002695899507113037362480387551948354459320947919594203842009354789462944420000250456837936045188372781695223955166690609060926578006972227514118038161377533533802436680230159506127104015591941469381944014369583469618444808032486478255407011967472926335594209615888142681147611000747767755706483822141512015640040154856019040308972644665208505157836771902550681573711294569514038522254434062251192418076390220795127541006026526903280910153117460406021494505388162876704104121656124762105740839145333593862081483991480178254286779770329130593684742922068378135686683587921434371633564512071145339456181544848444511665468265939548950890529104336946919219223245405937045409902974422385544405010079419459105795546983469715786275732792373227742136298722345772561478447585874495425924231657278079827851385168486049628711975481455845217036804028884977956391987570289773644448388717585178801107067838213820812709144776320667267333520667942746471441947203932007842617366426859257514127587255522464443036485997881873084540904433992993418536130262662159058336217612402739574149118554856727784078090264637858253469307249535495159898056433875741675519323409799098856507146842244565476182078851595452831384520429567800251495701819366951237988797269087210998211764973269619551873260905363824216566922434978621395575804650155098547011869001354603591066179601414826411461073749129795899838474116387987019355394153735954523401944567290260223343553293630632915844423884539896956578262844883322064978345804575450893562564859742076997597986549470685266087359613751294520922783038246644056052116684547941696080531472896676849610626507175237781928650130568330483375350602196968790791989933450181934067827007622778819913821066076061403306959355400940088976202871705966408569240475618753384267715166604321646736051857561269718304806923676103427379888326257507220012603263059705426194558184732083438619000430123072777127037073478547052476709835329851519995609385658105907539541625521996725651802511193436943191519604394574807482680187898297959865573497703899510051105158911899344664385107017189999836943268714031775529854109636814932408823803777097381064407810139907652425899626697683274168568030492180949465048924739146371625925652297654637016894146647262944340601590964956498357519423412866992682980063560821914256934278111000101596830073262027252149712020594225056899697250799207273400346875287167671020210214712784202201224379705448412444202616126200501818412290843646727520914889942406015563961535480409592831843705022800975372621932436727737105655101329850354559252308858611524157691512667144579771816504249811980064500124880888466967903929343372591096340742404402618853749128284376932596722315509757774864690124298798358944735691028448195036726622027168397553530109033213155193012052566519845158337432065255892077984518810398557892023345287265333009414609084349437992724908059139971589078562618709917698355836586504145346345115072771889115499733378502762955313144066257016754712376430031101872440508242980585693397826422224633744289694360045910922991762917069329702402926481490119916540352713529993196804677023111753604561183925276145265357815248913855737640238922219494020636662091130297117358167342354356738652320526329369684412471520543575267788726327333936999831084868301190293198933697517042807218255667897185567364230520050392673226797433923682720970361211528858513085453044700637010515573337533953434427237615913830246461654751668853755661050901245861593530934885373470526900492053364594026593657487855005043667547418400531058433664861133981660843933389968828356331036594025398855195240356033507076295154781512001719261372938323944820222706681906308628799869818610355725168094399013469860153584613822056732474959369670445978509099486249288532005845865981153813892158625731333401024660701296251971651042004694040846009401998200200321461386635290977301503137463733029187654027076458861997452166674604583740427898001356039450759128061311590127728743854877522647891661804193041169190137319306692239685403128066506857197687606987799408556269217460492265273941255729203206360600062412638503189612186727555257964027202400938796413204632490838872236059273711467070858336512816281873298425359212259825605467514741220995856192633363139339931962995098412412393223342777193577003751220448581846289419979201482731216908196422808727983759306477663435637057407894181396986013472468390488146358191733611219252628145468877761060774764235524870483017689443602857028278079054695137439969718459770571204764662788922008016734753857744226951091721518521640666508595062476913525937820457310053537097717832451508557690079260486191232165226279332839274422986724149199094560044269097542337699480309270170446247289317915295197662418841127200277070618418889686442056089900008657656152201309068477683142691167369833993912444567113158437330233688835985013910128552811622358913805398667374954090546706577827964997284502260690057579193294402044333406621981764298373844775802550215925533363042381386631291336023870801905670629339825812218607178226901392565808647068395689066194871863666451018966069436631928505530193869390606631745806352647352317961875566707501101808527826624130472626615902691303596006469838022484407820934284865909347059896505642684075365880372072869429058450831601728136438507081203414698317348667782510187786260187352792485211038165811236562688893438880207931481396110394694490230876977054251187958564134174504717569683646096805412480353909603343813794195285975687781897783959420115765586026062517837604403560302339116877859337674118601798363717640118948479187055513008950224588515549630586906039180972448583347283040365079114160551317769229848133493780885951077476837119792320608671788993800019967691332845129009638950664758324005471997774077249199543493103992301714285165940928516421200220923524839658348365696515233631365766393482013629521689451068559654373750247419102541239490667447504614628663234742528350523671860830942670900000645239167193234601765806571547140034077403811653523881609378007310482008086769127491889529735285337605624596834757406727599595706224028820037334137874588866380495352768868150278196758965159802422310276724840513835272448769701674100897948784403514908284359485686796115993957334680045330544399446727349548944519385408864869238416335976252493925149881531977460267673968360471406669267954592341623557432871710562364293855502631305007489111308572551418664940014087457215214410369141736454071942429575210202042176569907410411769635889574736879380061356636016067020214265162633778091412596908709589925282199094035868221427375257096063573745666960675499441277654917422323963809223536851197564958720877795155885458518219703650405670908418600454694706523854939489604320128549422588294904882408430115003297567908375935868020941870387241139035566785824025893626315131913111845632453742809917803931955552303705247789564487230646090077582128687579688414925990720535418466713771716771204510378585437596175097505824763129021830045012285999166017835224666985772866415531227237691123538219745530185664874392690656973302613785450168881203350103719654031094291799279140033644520220337963130826355069832459075083121885549927469123017921116230299510436544081950518458903119318816617025391569078501837318519478561689033968555817776233701394256402150028766251007245459579385105192106889172812261686074105809096345419411104242605397218568952183932976664120348761269654503806848991132728594022401181185396111008950921733572162864490585252188073157433747008705431166311103881160593298042351991127073238413614682910396814064852246193386770913596720969874924408640735050480394200774906339088011183496752864428695920721154357704932256371060557899432996011663686233215249423612207922533629485531431097807387511429684501831492505310117638284566131874993932712894941920668143248205037427224936250602068749971106566515795162058767630738030148780883282819485943303834465796880250748925413510302710049917434110168983916948774828455630891023296568966043193693831549775934172554203694726629389704118359372353503049639529260684026272893792271008675383618358604843779911753299266562331843104748575512710586066341529533576765029000710073759960089662498997404003108892433139947015074654643147740065468663350800474507583438779493825287165813976785590532029399260300069317449528728260341929798107191292910100891896430976168926124090484257590506051740121852059405843650409044506119096935027132704417471685262161779527987935444209083934094230805251401053839589818720830665921904116550734344797991635931329337026366732300784679089841159727139096173368212801846282455788408877203142181718059840023879909091564215265257892909355197761915993579456664371798444435724497151383695818659264706012621493611391218718002303526748645581275138216420369941616252859203307216681337868664201818012116744811027244663710015410223886135591140749913495068383946816197824758453987492080260096948612336148772268907819631898645909378305192485837653356533015280713719527158826915375658915052272820093818067383362060490841992673268817640904299408575099619377293434387900823253354021625417675158307007825252336657706387942229261463557074199995515031227646716592633641769276496224834823972171309902109145298543954629634962818332198519580743036397748947403795065498135515290242685628368260707867854961487769136948370610275564890200442173678124243020197596099280896302386410180764876206898916181398836750403474457711337679863620058097655664182760689516233128649649802399546080538857683789371079842626555362980127777081090279913887002245255775438748040177903821539716896097319878314104888497438482500219954973963637261580998770797671682512818502386041142804799436688163365255986122357750803776505754024030407080860965287732571096630135190070054858106444547358084748000354873624559791565914953668131864594789178099387555875781010348236752055831125521223736640904624081989131379875879286079314468733812895131393448604003300539350453836406747753723851192416526872516965737796343966012652819283481520585296389691334101307147884704467038489508752853125512695494278489749204301899787946521615782601683579505120182921722581272483351814026330564850893315344906631878806539224678273107092361464578664699381561831483453403650577504178957311414013185543018906795073058467956794466941339524520612881924008242842387834646256716523171785582888410232345399323364934606523050157614512498937119838904368312222574162864261391890106450052970744403748571014547839239237144557520613130866161535114687342392010642119459683338464001001827468114133254514431191138514769252900403068806456541441149487150266987913807382551982329767466080905066214345410651932407349059553027117401153122227811554528889770695552202659010987325670254678990146504811374286030487084689155602483301195962850900298329281590471811732253287432723857438024132958849564872565955265660432174504530757268277083850879805177219409024705944823059401788923983820971988435302888079042084331168753939911310567677390707430266472403604790562883267798908363984636345672108381604880235149783826425335985087061860539549307016622243454197429808514982685568581893983545283964265204318683529097442444605248832459919027856829332396472386382642627420771339713101908808831930786548999565215036793784231548964436793195617731930140833627358640122066729116645338934787873579940554625329952228813870283763857877166877544589750371849500076216872540037479680664826545082572596498672854663282423734702882419829031887579886779762914003191144579462519172179356838210910943094062455995092133682818384321927960990134803427877674790622253376031024537339434462526391297378796746633255062954386269531244247529392668474627667042085513320559529634704165027587743173647471698686587328411104134091152265987562727788492206640261452697425698435248810873641408140160705814475644615578545206373986489108544721585890296063355798889028375973812980174211608316812564961570220788175360810729679096256991976218246444193669619687476605369885309712212225171598126604048404422240345983507873657745071502919757842428654314129034529209131452415486662516206760167516219167655229354712424667489348881264529768120333383437544229878397549162847507800925074301692412983378056912116224288158760069250614192261072238033524759543149534150906213148881524687116385665999210415982804514769688792983314303540525688220284513681630182004945858332252001763918732571105348832652299361168137607868603428187812189554227791428542506960158177365205098255944517797106880472070093570039891318725365043423793431711545999640406573996820321592855769100649322997525055733437680668088952956536075833505254186748430502878901901292714143502856708178400513565510636271671375602540545428882063978176169618054244346230707261550976493961230964780197046888410890386771197531792423117269458451039076807322829658678170183493814248257492848834514475646351255526607119509056684527206363607482790276925090943481562422767321978534726018133649845880168092601127577044705424414477687038452176093235621535674142815535192507979392345522279322476949567965230821142389627007946508898188966888611214842514649598890707618404876866402784247184919382170890988299376120439867930356292731293590107115090343828616567031547488222887571860519350502828481861817097337829707925048394239177436773901540374383732576433080480281812106283260539314541923090876257166609311738821642421359840211536859815138995522947210625837497078669647996510692353036312633419296127021770329928462974002964296793777543421038876544184664184832943932191620935390203428193170147277745008252032707906858021074003581690500896570876923983816339628064304824825848931056372395590044783766403150432640116545754048989889934612703277833897228084693848513445799928600469674032513112110969654914170702091761354709327111102370458754081066229095958057486783318754479307870347473520531904127957483985703664516321837786295231282094432974966481094019196159697778583304822526585854276956332742741298239773636805542881001576911466537731608002979633866674224388452578785385089896248587723910236978314524880214068167775570966285077804398889366703612521600095511015930962161898674483522294442025740413139174415650927358631096147623973665851645243246937382045640554073934125555992705003266788978316605479486984900404430089877978953484495082540698247807983466835234502521217078498122853081322973349161583525473352778314152867272001681271491303464241118342753009699702431857933547212515534221823264282158708480181463400810173576637749119765928207843878113225092171083181635983654677419709633403597510808811432411046753150855703376114711884966477644318570283184926553267012736118030687495562659463970510847772775951512178940009532844981393850409056960591921062132401141794360667552155812729087952749841943919111637292089266151723148331825945305748406152732633459905447731502755013966156699765222489643860326103540123030227919430541039119740606655735122003218542824002934435178862912971200055959499838228840548659954150024605311452951962772970060462838511269869969270333144342492620628512675227574655580236182642200558553511964013424460507794057740286694031727102007787295208706823167189821718190701813269764686578106622049288208378513467808904797321115880196411856702441598295925033554017227230691182354506482301043059029671540548512465991864302998620984568433904188230342562645908569325976890883166094046367338295447283209478893455420337409548386893348766038236582249621210404432178443921287728715334334741873721215695349652501373524347402041692632783286050952730174248708646735566540156845156642180981149719899521916146361900670730853279151936190644277644554465469383765991042758482387137062547280057138732098394898658562275357132742853110899720013602363948561270138125936440960691299778409007929724528133127322237897698728782083376787266974912726090220734491898541448682037094599847271568606189945465424278417810086958110247484184117286268252893263599830263453216394883830702480307715915432942478147846201882881078282726867350047514010149126498396490995552336359302259751260687823746753338153460459001774922340387276499793301711723543486747657365285162257214807961377598425301975615975789117859595491866238986796668629688451332365035576888893904083797224994905460130398574968615405708726794008175474487432422151639860041842502650381540715103756762100136469124921739167861135618742872455306745487689172239659416426621091514580908832884864729008669313711161007703883361491875773730288969747353550821630843840396708805333133735689738766757375198362075235702291219704131487284437034979639090586253666493021718978036755505913693965162253104045256624446560548279127984740956420015122883129685341203090732606546073125400061193569126084615721978849658135312029900377978998961082672242369826079487548938133136568682784456306961439964277219280377887707044019277104282924646159730348850793245438585914593845764650313775116796214100546929426872165193160867676304273076855140690675948067487185762744689264379585358980257192957444381504269446916652843612406261385533951350698640555156443187595621752968191611707642893866869848480162321902594084018869847423244446032333488789490536543495947204744722003753408588475844489783948092203854904992505822209686428610222519270149132486639837162139584937140268919537277468362176021699464386032963437367088671610060498869532152810046261008220532197516572739932090202616425939414519678731953805308742794947809970665422197173222821435123995209412619664690713980208406232200836172948813908758871380541223402384103147250372042708128907260253419072828730858064057637205281057413012968677175037622294686091391037233881471610626014361154996008766847285148474990650508193008231341507120065610733839592053326123960355568623353485691200779116234668697582629675819173732001708177673729305692420977319440633983120206339148982834562805048311339780966878053787862947076109127428429303172377485555605358469914861314218290673599577844234413862181987034740123615806364592851919812747380978047682603131540137411748805204089718299392200530817427065745712347998200917211507454054109269981432844410864407696369285418882075938437192791639243559669719001384471634673976650970322222256974762542503062247781054992031123000855384395083435586641468035898307504965046526965830286553900979179978979558727721231863290210025685417551039585627843282075352992919373396554504087077848460431940176970194893259935046295726599805504299210815879234414126488067598160620361269347069502874153585770417606990966848685080468014620791611027917883366665770701410283517880258003178793124115869674698369896723276849409126148031101037781193026160903408477848556110844659946429017360632786314140666806297123708892595667584640259461889986695637930327497310614335269601736815979411882700252213027087652191526042893265822276954176787207689855889750246526702584164748485355091366733265709172324248777401063409644376005220284764552904606312267092472736759368784461450434215461048062417172032969618237909853027018909120166820458017835941268552750242609034106532313631290854488747500310812631149861159454810509817369938421634516709331041578113665477985083434887694147489268050767304118749269659195497101295807133839626094660359671055043947997296228437848354328369831102355351530663530944182198977870093946864063234471093294835485982558594585019284537293445331970855300854866840897862318276755936742414091416925904722513091008289209001829900163704100107586181201231431506255910341571751365263483060278405845558155315369768021590306467036331349269186625342036595904466563428874407351909281675234800179699730983249150526378391382465104394756321709029726784448144528435804750660578353812697310800521398469791509948704017132339538077144397472272606543542792045294318259411844022832639958960089259313687137386921863216275846650311131193921388999336136536497202917268192675861503433112803647027303941488628585733598307067362882672134587856106048795708125020007537028142735781099468890448549108024286607042656803796207565769071433602483108200726998751682169563299188006264433021185382198162490206499049056115339582716531574140329561329134747334796846622555360615049463724155869129528521295093480563754627745978339214833100245451541104973987082875930499793630435108419220797064253597013017821540633224421240486690312216521335134031112243281098489983870333076737058260858728698548438131206647720764577968471615498272614066748120348110054729275888753020060515272727163010023849425811117053777922860421234491976123486548124805028837543328312841623915042132340274937085946807910154312357442363810970604821681035528403908250080049050294388983580602890123402167879191754854092996284103756231620533814275572263580631604145234352020134324778825154268849079974758557439213834937291971477114458424492486821062256218089864822272698534399591378268621947269736294255410833439691153736338892858688759456795525237120704922773586400335074800791826393110619671151408834600920848584365949318162426810223082369715869932640008448387220702512800205564006727208874227327504667021020733700791461056455085063473174286654484698502479984629244297137000314314227825581527845296834002789804003629001423730863580503377890375434729386855698480858466653956068963442768429171159668553260350722909544722756678009217168939135363394641765129648834215698862571838207643758865326782147552995750491862630173507486211988688185074353531242098020071840082045445036350035049610318134599469298828750308061935348888721492498801813022518415258704676023913407908395828888382702539050512572042588606667341798484891435699148484404074785803326309669468938891675997534709116867936425121325164331952454633745907807806461712240297099252276999510302384944883334555554245965670677024952565745471134328674800957479675078148676000303635872072570465409046859099723843717031227536696618975169424094245279483037247504106199127283500803036574212789827893912835701081146400258499401406785396572887304986125964074675759663628427561711125802104666564177257917319747967474645338413326501376129543577561753642367239125137650122538295357462476374595709155187736041257726921672406582931911331634858460707611556000882358373783493456375308127641062247861192420484444839537554001737217846989986720099924395598835314174425494512991365732148595369117753546576655267648653205445562370299157022729542246332059928318761944030943521241944429987593381531627694199121334694320518329079208286595063509456070852479486762042676034065156283347274954874581651219695999809524913842901340134019532626012133848010058400290663866204627205152370588824860711463831768021253846758025415331874165466035796668276911518166661027752932356062550973857152242012905692546088958430546138852621588235362580003163090086512429573989328084226832241199267442471745769475647525670609738742771997589306035182936291033929385191602881397953093240071705404066624057274153832489511752566605293960129630452516319917240607484647838078253583002140913351797017735041097210710555067234905421930841243669721653346589595935686943290573546373792936026752192971169930901717685234948513346490424207342914148917489361925798405157306717230551965412734120639495687042634745076732188685955362848913331357676618843207903038632471208568820248541746449843988324142267620854082430469250035197498538063907370149314875067692305355750963577986373181271474632991052529947715566925751255323437799813672879695754463518231720427612659029840782222970379392668321964114336832985470783867222802674424679561067804627969695016878696396586839902349079228713413147654989545464382353430918676342521155785653460371539100771860220952877253521512079682868089811479667533473531100097773528668138503376859998410526886705220134244366667944578679410541687521939996338449009456376210300536763295086883623559135290059817205548817540884270305962976638390146626274441640371185523679714570242562573862087101238105159873743839846258843576588548580977400995030224531460091445013891594515807660568253500384149886081475764067980392982944819847132862812951736040359444322444737676976876565900522296334668126520584348870751573059792694737450506176836643668566074239954079307071497082978980983571812757554054156985176672577631946520611424652600444980918603369229782274993657628569737422033676492360082551314405472530354501057155554945290558382108165752087311155506370863970626342270678410062229331262140980752525449423427465093645723889417985495515777327922601285209455285809123535993046688311354334783450127644169402073438051228506187475151679466708624518668346549793511609562861603468843097601929378965733578023789146064764939986304335141900926204286819823401959077395447297533563379775825310387983323079321824199300093595324758178830898120815209563699542866581154375978366507515386311659194013179557051977336992672450702337715287713935426066388573010171345809773366296406591010545698824546155643558430545429150842417926654760647072380169763554829496570638034334762133502496886570660557560276666788954526955266547079918043256628567724320345910989501094507134576770042213048864988626793661391123706555153030178210815863853645014889462464179714968632626180396093626854329653056156280627511934090428464797423295502409716021972682201819789465015381755011611424847684134406910051800966354310477258299540496094387962511368823645930463198152891248230350225845024363267696950392660796240069569020683639577628200615090926492194880482612339040266339010714834753000821294236215822554183026671728078847821925483775826671382926573101323163993264368231959007924536084627261493823776242103068903989722207448814192084883423121158171689566343169970274951174657664093730531594847265831387352244638127975404631122542956657308519784583522729227953124235451063746949085536467176025639859859927478597575886968876272835895766860853847962549501901141968507409984811608637204463149066108728710548752467218356397633479215761320176458145620569011837293675081754027097860692218624781596452513764791708231430413478801842230305558707079688111653368454437331992021445191278084949048515120809478324792350679711724576911600479622514777882250629340436453369120928499070050925845273225310878636710905506308732745105902649486804734061285805551785111726330818070890851009440435156266021915444264668106370582566433866673757229505177293825182944092883065523971649394227562934795557581809883809131678395675332135007888704385338590289253550553845070681170967102612407106078487481476836265384909881785214185894877585508392833369661704009844823830251781501448075387363859676814216076297898874782206678036075842378029013212938324936956940898015076064490585649133143821788841199380671813769349881734855615341539149117175827992627339001874154920719377668553800348545899237252082707340419955145423363819793911687754859356441111175131580992245767976995196940713636860319809139286743989597152519050851033723862365007312515364788542501037708673293532725194544776819592834166463481469511155513027044553253874156657849584725936726443417105039945507479152640699254444109677319844822326104056791309561337829017467614309858595577392889920058228134836918923710840271537889585001259609481516397986404946740498757774084240941363979319145775864693191423196818077521116766484574648865996264549196424035199087633861544670445420145827481482335921049190253997649793404481724713175036102275199028190766368542845995416793815943668651533931631678214811229303291714902844793811276642927698629062555803544732153464107920008775332375470281983564585440752000439302316291997270738956098299484187534900743725113668277015451647074203229349288099165948515055528209795049747272440803777974736865149692615765568050225841145410341052005813910805337832352290026535072110571696329099260980638113180257190121215997086970524759665863863134911346150328513312959460561434026894654736577180506821377782590800234323876592180100496215305030127473368545085837165620778092684830244794822510827576147092126891971632107397069051408205014923528120107874372084665639538762315814530985379768102886629172887505422222026854097895740111888287126558495836129475542408022296632382484440512972918572241207280493951085071549654666414231695902189945601083916908112361542570340941723478263502008948853766007925930295576127570921359990595073856468977247002114962757152320578971339843294261787007746760423815057819836849695712571126404870080741496042309431678956057096763234193459318317764664246817355941040552849326228317486681811712551059291416548915003876604906183872879178645066424429221972894419560659169011605126731841642819664874882086345608018286944007401210791727011181290192852676302391022351571146337059482078350683478531825933486982812976522137440688940542483895798899009028814228295327741729612929551587702046281200363181116613997124189261112300814996773129898553644843360827104002775201449595225424027031360146510316247058028807042253274162896918587599138462964004992307416327840209548960683375248313577443174311626489852395904121422872834006885187781509316026441133529156352813163443856448112215275596006735223044394899416209217442996454723986801469615263774093359140355954317170699286137250288640315506666581733187029652326703441633281882055044771251076133565129560362449916989138441679528222008883880927969829507741471301318428687404358579701347138240730885936600193886337248697218923743901606610006340412643240566772248895478205701593342863045695426253653621230177601205117457707761783823638713086563058576407355723455202998282346753475763064462625278346918674643877394053735480872636461856403050286069918763129995288581511585030268566100459061291389867035958270460974651865206400405913908943952555139479024186285724956919494662009135684492681722360209181125542142687544289308151591135157466388212662951592172907503987561537031691646008631300113880304747658219367590507236364800837752350280780164643001910022475204881240483580672409553835288619013733677221367968419322526379606957109843096746049862707983184748609660905933228799571799764129673624772168332442656222196065421660573805204568634129326036230071968063819580514480104175729530854888880665205984348749179811689414009110399458309810108595634288319709713951989948173863612986808881294065966894863090238311893384110749769346545705529789794877422394091249282371550126157276159104034673151125655412250869437881121206356175036788149447383731663517758053964251217784276661222435897483038048365619658197299316656752042798926184246168204059350952755583811510570393244895040881244510611293228304321951477281955430330338679303947781418371417292554003176678258270735976387698890352494373729874526410687137320973556028325880069699385221375793867988839348624615231365183965681779906518908333223246020967458891432467520608812613629015500990699424549795416636762961354663041970966110545197867909353823159358513972380247937780103986881546230803331627340262885815059549809111811897304513555836777623223749591727424442249103755819994667800091548431928857440726359353839753196376888867553181175197765208026692176965967928598288884181435555117147106926164711127197389223117587967650824565882460693052591121732331358909438906443019666912560134276658085036000728046604991157481203389870297898207881966923272357745456477512964686063211610613395926911220599252202275510365850157414162483304179596345323884293407956138050825829185554499090979943074075116761834368862222380962641926671172673548942225608402292750066271245796331620310941645629784793817271316381685970820060895587952970638183683252057269888550363378059311007933036073229793084099444326331984836933943274564841364754670770416992550956971657986761499151546349432685684693847386811035081674011434488452356680778148780180934450316626422981536556335912218098156935602146179277524305650371853452906648440113771267529851832453130895529292662697757443939317915136154384480422130722713060286116728371566582115523880666259400352879350514957163322956527664283153043300905702378105244771051474653523576935567185572623295678288584815128815021455455028535506575534465580918006412349263297531948561541466358968867932256643804807358754796898090491499410401880812043448952872704396636785642657841445732496143234973037994690136807880937876915825664928855258388156637100234688895172126409818044533675807685650628641303278379254549825253848300113391723395975841376284358203578778472839399250429174739594673924353691710646527363353375523106378308933013963058008633236660710536454505643789506035225659669268618268387811100320279470492356713297314452823679282462917709197527073756835840321802054559795023334285720984052800166451380855137739331570934626056856161928865392650138295245120337534873464606079716784527626360207855230225993321787444866127628504955110777299334009334695101145671096579124787602537307602586275625984695391148027123666356713070407156268517143555774695608497452705108101064515667431273986309197009407195955395256189641168389151124944560499329441855927890617628865080108752623643820317341482919120187144304595597709581229158953474881472958380497655575700831247608450083873591441072256186350985700072913492907098760447505200828227877345351174450602744477966763191048216488377608328817229231364292867042928384138976927991252910841750781108738607083758504401425303984539468597352857953632933079151363457113618458829992632464112586771316787002917339967045751299253023085127720150017666198209611318929568828023349519698878451610900334999919752197905036816557195498378237612438405982451628955419391470431338600541952928546435614445250496174120009629915221929363332566244022701719349972016856480113033187300314410646803956853494968310844669785814567452480082179072452987163719885693243628438512545412675273618349758335246360572319487445818035681110311848955526539240589821334961409657160624764022252243090278940329075818548517529945706111548754301924429902067021981170913500492618392616598333006264002518241856339602910371978544887349020000811957825549556138935513931027071525036262456251746372162392080194986783815775108736959020267065119487715248628079991951856710864363897996576787336132660921674724177151122329465640892043483681486707822682314815478393113602717520904187779551908920203630048673878347188532369477754404881920709645267634787575833710751227272705167045027693418573155758839032181097472976042116439533804091432520375854088021899090099824418257712734521175900187286727805636645051130723687606059205979920197195420425233485870344376685212481452460502252480527156284331117720627307352227551714087075944318590236650321688807288813366317231996870583908027130041520786796091886260189840465248921465961779546086692764063460947797704338513113516173177537641435159147443633287535095890905243259667748148849336762712737016155983681847416943456036531075713197174067548500559669769500441383039523544189011578518996827271280102355242686848423407848945776876519626508478972435159518547835286622039633998177500794199910638413766466294984495523861375233591521690974868934759199958013325552438773577622389972186871463090170928110123292939588395282925389230901511661747378157551189331829190751697600413868916489436699448581244914223031007360596905804720038544306178835554686148083283995997090514951983185482950494187610271704291243749781521364644459834820184062350037773041825545514911157500901892421937571526437788205858949131956080776340017099543384828240069496780125003779123305001985098066209524130541150842334796922499810975161369827131995510200760393473702315287011336521597027891775086495606685913841335611108529792673857040961426774590812432900229517431887052225719496870120773407862195768027737362604587902937947162507265630188463864403474104979805159325159774052945305562132588272401116497170580324152699320283008425436150675859987414574633096787873305360480414777839243439588101882445874476281471397630786131012856285928538698397234557297960787998531720945714207946515631174955310941549803742099014575533420007808847349723551772377501438857451897965049624996015673646371215963615367351981408292871954731291402630953248299198219816902423004936021828878358151096578166686853037350790167353642705581709161412286522126272945318820246514372005215553141506837356119102615695927685741640447958055710908701644122187692005450801834276971888935178046558230357353278840808078068205989110112976240264626861587178130210797450971151060711733304543057462667851232812293049291670815696978528881919442439022414840470087973265584270731085686211201688677764678661939168466246669177214152969721492014094368059145628079518866176035699033633813632266790417667507791914203674413047538567439982772875670973073075406075160695435370752536082247685303606085683289307436543998770982455890994893027441004222918894592454202881155382802635534057872125040133039176986023432854383785992505789630432336478328604931029586296856293691553880074619275199937875760200556834723062245185248076379979792478953074660928712848816717125108744901091414811993417792368597183891470695159875824315622792543596003051177379581450353859597537251597540894248926834514900208449904847103322536673860425792253499493687918381688732209525563447474579360415872210264270420133604793731901112632525140015524544552668333697122142468597315433663097399030515268691534687319976116522961335639991975934109024848418040242474813353923437326992888931852424629441480923958876005575913096866200317068866634972826754972630253902723392725745914381520874582631843406408330028481184289073242382650228485277296801248708458830418513638468619634587336108785497263239715977631375944752158139411458336395954868083901190568394319447765679907058163254349168415155729641872814709898425836420119654699433128256890150863580695484411873608667357282277964021624662555019083975135846201561287996590695341242469795408143016921827747536666000105608193445418184621247402142201867449278312816701099902629636426848180237622321292842866061684020065616961461770541500524740951126462172464946672091886875812541101319705478174323093209217523671856217129636577368972360650358485943411068196882440690124570954931018853959033927660785134504278661813785934641922867010470284016741077104799950988129878284425343794540070451839944233196924431481007809446411184268593292382633582050126372867157339581173748327410241622126163578136648718210836304537749278704096061482193289711944814587654194187910620357951659824282558054390651213916664060669645694084094152905562043327900655961091689611664540566057273636620186791432307025080649599034104910121911116672588964729569583659729044469614363670124257302467799651391310846223403140158862535874791505655803619588426568668642571724308026089230560886973414375840323923305956399636059697919565922348655899284906216866229569431143248053270693112615554930614660064491359745551448508351858118054029339724507142812243311397601695014460651592116696235980470015496597566154466485804216441013051668721668749946208040768376293867321946983273862909388774437121534387022137497578878605638004506443409657555353338691112606993651597804700223371490981138971701859308940226087739573668517470198442090657332839011497130541664728143026481476572926676849541903224314180069070031838988910202369307189673213613363575532195310849259227221565651501831042470423763109253103939076566555883147976203810117570128308544245852415236298605264849932694094051246461859193777879961955522890395599973854005376977720561761230717972091234591826597859457771787969632878611432512936935708154851114000576445305790832768009351907580887118188290031692735840479425896812332332867559880446031537187044015448116675241617478857482623638880114199607036126110187349789287443182616549584276878291918794357385502325445119010582597074347455132699638249264947059538960211921413473741902032724456552179481592219794061049039651227964115178788826019298000753472835091387227772214988890836288077494346970274194983237431865327735812054897552845847003693463981686917887182744763469539085423287342936309386528427579634250308934018164082675793407427489667813437296579720709001917664189171677727050699828516038380670972983738351237671484031579165873164435802241667782766516417691610526247504975930977487628288122328241447601541847732507877175661993670154789776078781630704304607967615744061936082221158815875375046795881559834867031228227949137880262732330064904126751698414923235700635631898467048113573116932117079108152556167451247842783928953655280415041396847825365372160494065034009032619941816041202609863702144736342775308431608872905441084115289244135390685014827125112881880314976609764236268644606407330536810796782697782651927829327199604037170969081804130931065127631681823454705444742662765479823209392708283792030997544801454784322642768210406172406658638253433541337502750796599452285350906668847993798262658046596581504175737373926067610580215495412130958862547887631889036062810179793752155289553538123743090434300149228063373607368743449573974367425188807813807643284079051788571450468509832071446687368908719989981445745765842612394419219287867453350500614473832781610008272980405667009449995276421397657253310845964556847992887393267507061574376258456645773875564937782571046400908966087429786062707529283896130134745319413540043576437455342789671514071654675935319463252730825528162924716132541729872627674064059131673145054514549974865581338623704104327489436129521249286534528642332956340145608943339832348979442351241952239540718112193237162932209727292779531403107115595341204655769367007373049772582990769989177328324234279472722285788516350789379225926310288272389261510783942553164708446474908610584478489046515196808896978049627788294202970024513008786941638005180073671592019820283586773651317475043038873780183414456251373805204439434500141430100024068018771531917578510684142593126878732704921379027808608798122754113507221038085618089947607813309095276067062804219030008987293045201457430695068361196487568315134826156861591550861360548405247661125900049355452142231762304459815072508596874870116465413721929352971259665059120874229343569623901388688173269871785197207395762258499407418187939809633817505206362511055492293044632382561485656126651527944415108578102654586348555519729652942891711502372782026970245995073012983333538745069869906684325355663545304019344620495164705787824668077103028277961294545304021885170508798319351981369143578861628501971856909227450440808632370389972539038084559006318924637329518736953870519401457715132310447538478014530663880543616536313701184188904111341896688876859654287412168030721900876171209441337304629306640143249728761875980808499775233511868774331176346445698687338050311966505823314049216087679690558550177480190429650916457980332501116940032845267857364945130309526872522807985325813493518863449612508595203178360269396236431915380964305919388192787831507442552625526734357981637467659712431127985142807529742871870021482215498300394916767254786346961838397466576823454453503333737417187154083322726872250456921364930890170220367672784480963983622155580549707886320299218759584469829220722066409069334565280279394011547206000081712208166446225412322611079194368628629890071834971083302199641938154089226428812231120097314264637902370159934517285604547613561167242167442308694147984376217663883515597978688978401089362254185743454708467048935679656460568294981240213640974135649535898651653847985789111182991044838299576580153912394209272480226115392381259266345754363188281041439212010607396391319097972175277889987539570263344076734093056168079282716249968305027934675631865599858614086024746141172998141051497809432553881927656504526725544846618944196210147115986723089791237466502261161773820546885107732746200865683012366400267134547901598874254362599665422734260843829733223687199537764243764268628368034210685204030792597399963621194938011849137095645025211796827714495813276487444707725772389103008052457203167034142694126802025310607280888351258040358917321892377563371862938977539945879086343173531273749068121169378969230578064965235544750302251904810405340077321176349836976770583511190970592541920064269116405652098090925722153749354993917528338238609582146552389212568427192497283016699499438125089670527664503684767033919684233001079604771353745573603963519797283503867150165253471109386818005481317781985848050372665101437101661704884347531137824616446269043708949227380253737446716649513039786678757748250767171401897052974894522802536993149085503569845807169491588352097100384350617470233436443489164907560945524947596475463961774047602016134051879706744060272537918749357063776515967610342518291471591256606503047707989346312447209436796533028153912485518591312099876515555331297659867928149268201559853874973194942005676356009389393959186538583995293531414745009400586952760985883363519223517923246005258302573007011537083069604359834932669093933815885698926492985729451022045001475843778525646816279082486738834950886236773712006810697143591973260776281433668692149919363239356604158236855101220142510903365357016096433031486214874996763589705442701244216602315371965952596541793009915200571276015614325642140162525620314420295218360705256107102718928096474061744262521081871215822510568546219113174210397944565159657153074469015892978369235090649721145728732146825808247163076278473572158451497650909927444108540209235510196272638884484120597146274716423095966662455476055202133485382072528392484218615862357686792863827631298126273728477418324210385880709735548065341387658564244257269426196687960388112254233810679960419580000557151679515506692592331319716423838395290392201110419858396510313112807235740640307598676350183539496302854139264824793522801417500993119523038075583432755593981208275048996787272662395582225928950586398582690563350468243869248236054921602904851459660920192103628704042860606004352174169142395863691152690143074091550824656453757657561040692346346301449158158200842320778268687955146046203458306493606806060784689781879445238335359717743300131258945380667054100982668859561531566740232650937189638586307636000842712013465217692873992014699516006828473503395765929991733906557101816158336170269552900976914654960950104735083274738275081069592960259672672800110497550739130437746953879066141047855651459348555290180037374117869102942149684285912253359626991931317708666295442909720400165396444461022841344464843831579309253781762415487199083272735517760379694430801108092326875258417026534114739152573530317270764511939948732227197831320563142146240260030234747762212109300057865616898312347110280749646490119529554869079013358178978073180587976974641116752351056500379495988517191010688746397646762898622807574463911567308998658454157915025873815379042705909443078460973367517547006669913570964555815893007174450437200011731945017887701374769526716208764294961344595677315182240449654840755249428381771936598530616954972793219300356654094561027953913125517968436860436776941713301661829375162303300252131374955324383695229214348205668436198203966973494152989999263235822755305040502065792715239988016944110600880561930661365409665929823275023375445311449293469729176478521738927678305684298885201515278365071785796576959711298792082801121968330469649642869833218612267258319444512384109133375481377677069324918510033921523604715128090397504955141649255939172684401997463701053776880422099354797149404199916606781481232575866416516631846090254612509767827111108521136145546182486448813069101660427776610187071560547812424022040289619922856439024411090347196355578467104377483289635228018369208796746424804065138499836102923188839754453683878518914854968478951112938766728551315373011555101161010554183196094827359509474963338222827287262842376363279549724015244341762247163436455284057899680330162123427879327188700546788167214813558181350276972486370887930191854533778650199089639969662658050578170948077268911797165201306198743025476308856950399986675961513933736544092867646077638928004852605814927670499064050448636699437263998770687795426567416301848073179364372517065877990669804648883862481837516567040396727069909276520218143373702727086310680928346513168719592664081025719260966232486498811426578326396767491751953061127338625110024189779324575182301351530533426628509507640744906399475005226011655616664731534444178466868846833259731883560784673293721447201593028830422872681659671167074031407971407388731417445606967586528939225247204592627634640250631281305542177650099253524392074865683771185223412989676573481551212968466377638943943663140915002281773263439514411201592407502724715277166951896210128698453127530394978142802005496005215968734635394266258330058309006031761846721323884144277780860356220143193213850692778034534350572406894171288519227972178845707901672108577189043162893777990100790699725013275300678104850558447024132898622982735781205900351094818589004492132404674271046419346468124668434304253675381255182466708897427825793040156610774328011607002084114660545651310923660473801988182085090471337946595790302889874123663134673102232998182026687826001450650969772351703907732413673524138578376469862039221079892804664191231829343319778187089938280176539201633801794173118606165514884325234457666499656276107574537391448267599413618840413953771310740415358706839349531789074441750559195097101631514039768308599719918501722327250235316386833101413504785513010244999082341843161215464725312613998279534240398559527026356400142316876905256214382827376710157533806560063074462682554368243490275954998605562255239075949490319014147247192837016018394740921964023572373504725300586032922818560779432287126713563485508760125721984541779094879901995780926741276194641851727212803182679064910207898794043267626983959153232842902406278652397977434695604257920605510252303736056084019501771020220861012228924819102947456086583480313742368177107939924181122692460357455156549497906412747200270215414451369706694315895690921818446221723745513264512083622383638437687466172451091972867603411463846242751671534427353713741103527485412240946448326424908917431043352791140205731620988125860057387284288341985240093049042952688520940893260206818247632264825687046347174232085533654473943476637660980261021280841010988152617233929014381821665817572601129955550592661592525688460736999199039158467887373482337084046318765301774879062766053207571752781461678690268672896545139041132644665297762693867805522425557857229472900875189301774587557900638318468227307887105326802770780011546792820540400480516356662538556630568221169179290448231712191439370079883626841620868158546345145702368017475211190427559291645976415279990398879081651271741443884746536791625246489233533649724491717128120001316054297662692874013994794504380417637541646684034018005020934353217075963054102116462917137004639868361918198507331030867482977584581666394140661465775095951160232311865544126770197430675825196379841810865614303308422026491142591274348277305519322168832279025637748135331308430680608476898522991212755140777587223546247765685746961663035319922073343267626956220206875126759433525138117412877831270865787284876663762503462321305110633085529711403921834775853131647832274326149308772879967594316336191485029552486028459352030198649032110887864192703626111583793701523051083904909319429828002513604579385618579670269622558019548609519784326771263842557240789616382388855832383854335336624692704487273415796084560999080956908850053007328601622449599308623049615695993758331638966899201180802356931574602495597144090867850880659590187186982794785980319936154536229591132754947391181869661406434971321096842804040486155807123397533217411570796141003578991795232932611811156973455439343711896203203851803043315207351983122213515203605056187675883079313492120140765166192453635321036416684312561211217501256408160861792313480905514835314317272582495321409618775508439761484059962628001699011056642946097990964944564377082119529362736748575601092883570808102100736020595604518051401857100895607290671527965447756551714237504553348892666494380973629922864464539946417581187000690312635470865255772026398380823083764211175475333508586904857588422337569111303779196184133936068454707475475181219996316971485289580024628002612615771857151060321012225428422335832485931757008295919818041538927540763547996509443827757829755191756992075755293078383269205785409863845310964065535015412657380056657921326418930911431078883680040688409745187650338660603502648202262755606957397985240491900277585427704682545091939065119067389756935689897928330241021006474279272273919031252443731010028213925238646777123443451100299331715838660373561079782400088870730489558244071342824190745449866465864620892261189726009164832128679883141170584462346208250345101895453066914443230341842588362982326879408533778579066986359162989566132113107051151684940085998016576700568948069125172930060035788057030338985013397211507013184116445820785185768950584366650009444950479407806968649014530878948620021219988903280532455690578394544060645754573278332719183321099941476857513393063890509427357436314699529085558075117157132947593424486513066312379247430401763565554707199091312027687649374273630671107785885465509039049584627006963568779389782551885690359042788420223834031515100074702527143943559020158047981410346796470134758458059005602325753161386025819941334666213340889010151215079613789453296432793773417846878556056606988492152220910235533751461385603951545865261294116832313478406827355236265768747960149791378620830031485964036239198427471894684156364742552283307147228684514563796415125729365789901954970611990895210700906078252210619248404694367217627544275971430130007677453085299280059053393308530084077740984686781948813699824780510255176414869524695032909536061981449657562511838048202872488314149696514237712186497145421676273195977238099381601566949196578773376477874354638628208589710848279061201863353576246526041611765632377005071116086600299001074619164274458403966602957312982325522190427112459747028300781665086960657254658143373025546715588503023698869787468246319084585457600972127896721247175706152427749455110151118608175803478562176250391430249125072743466124891751689384687628791062706812398515954929235466239280540328357910247075141521257550487856872195313586882404720731216142198007507031712382199661164294971316074347987190856852871119651062906325226501020515293271150204737882831377862332003719163903302724970562554514449931708767123010624480893371851881042387010269077987145730595160511137723491596967544447615396287371367015966438945043491891668336733135456208597851633171088043392408598635340835240210746482712922812429544126022121229046610585707305654430142378069448179373009031917714384313244787634235964397582652410883933030025677427002067672926431556609792508967979990669131177718185791185733256601971702465280280205908458809649075632827127529049585728825978150623984767421359447073068602999390809250830565991721036564524093402147255639957222226153245325330933931418946158370595291278658690748798601816825183236793750318628513483405836605778456715019477981333579111721562064932339185705942622505283693914666601431351656372784897181962058418432528125989253281484260839960075007186262279825333351697029408173425113374163058228641886341237027581780953432161653857401720384667672527007318266731706120999655872364480282963299760011127936801011623252880971903211320734333892708056542618078277040940204269649463056237757681222167024065553617982182935043146553012053504149738550427528445995801725210938614124545139081401060425737198677701168826790878108604099846232472946208309712516227233054617770614502497128848956478655007101465538506136080826057686177691463618903237229708437661733240462461307276557563734199323981531450869494827183696731619842925116090018966521791273217243754801844821024122665687967683005546432197365956988557819659657086952509346971805626903731731639099901814583250082787662901883116482945387478107867489522409462584264367437293714041452584151143493118539133080203534149772759893613851143962224299468605945328452792481145108216677151519182325029064402507345691338259173393565837205068552351714605596351847909239266232271994036163665168543185208679559463503987855993291335721905765723627723189157944508639337139287142939640254230507299857687411580775479342228452537930837119059555502449947092991948931083069264877159482897797507492744368855945842606370950538251595891356248262853452685548308524367724054417816500873337638931227784006855758269157441509203156753519330254746433462159918862045136722417847040660930969002712529698076044513524116567155783286335747523036558881359407200183989235071532512010142446116231525996405171022936874683211521720265928471650482961765008373695570542980973086352104856684151098998219245517156090272667246946736891560955475513967844089712775460475385053203559632065088278867452712192161166213659519853563706601115411823801770456921003712639427530323469088266474353637161537990364721296217759339307090889858454996970556049604484529445124371839052518268415348295241508293575534935363634179538611449994503932015345538156172278950847885566737055479998249349745766104718762664380267923041838861728085168709186961836296022261673806180670523778134813387611828375025173013372866707935702515707811599881527531335035611692036728908542151429324866948855168032231111829284960437908496822734719145770628512192890528416035745539973179901469849129673555789880732555621041079450546129612511902102771874080296757246882575321840545565465634395314558975757211827131278861114605321162271697867365445821585799517249722206973026677096296088882949314623360566584001786419305508761672080524021322551947602610837968768438725642486934395262381762693649422654186012209197641279735201144886701298175850811214095264542321036967272892548489084656952851759751001390267807239991966298950460021125590318616850401111965242710581402090606252036047029894473174505037717642317205582999251822303298531685466156820432486528299856802437838486194493731798023532713305698329789924905587883495659760288104364721650792969519807730214191622090522291272796377041561172393047472229507822101918620464242620563631483578239797776201725621143572789260075364644478589637610846809032841490375732679915090966235625788170404390275716541724020577378598231425321056163547196857451918480052629453703945454579746370348807725582168921333587836515212777380460166903593700910238200524169508046978297376021833732739974232704205908721056820108718739462955153633135692590640328271099919332448251108431731862868515166735392423531599598143699947947246734551909311733402673826935838520935157192584725489960225860654984295917428859348177764579873170511438376907482983270485086716826485413935366069898450443240269221759774764389551275611233555306998327821855913538101986666168075287979740996242220547009773997816571535190194231214506725466980231877285269498124584837956331881893618406347828594229536934832495600684015885600630985113393780481333185297444224597180304253548883672208992499367394164989982893741498561004164638244233845750749263005120200063159029766794509807966345071795957447266305727096081940003932221624695570701674321211515089362207918542051585619141372421921072798304087483396120407669877023458588450760166929451360530158667962572749068018176596432537523575203194646982722267558270743735337142469044615065904250671243242956087973117421564914147276630444296818048787527645274636961598807563986663017363911521304974879659406078192354527766116032912500490791038146996996507601530299234918766488726860062131336256433989546988287413846776359896750281162426856891989489188026375060473888247953573923704313516395679565933986345081795306878607832022172547106119922935729502623792296561961208320521904461559152857368299004228019963862980041999179097848017969917627726714857155393529708440212034967687395970965534106151697647254196818887210539432561966984886056683627794332401623408597828347576333692589410002578719386738823721870760129087242625701872630596624772763573654047553182204248190754641228649605517743041406183275025414770134755033893610621934487069626404355740959447396110550284928927265607388773708726110149867845228269396155801031344268059325423768086658437357097857892543926579421126881343142696319072586809926402554721067961881758550689109685539808351201930479235883474245881678645320663602660607802529541702621725904119835278346935114116310438978836329505145217099636671138984163500659649790844916702103228744258530533902385856144482743615640000488959178913717245499566473625826048862040326586972532566435602256073988734034458319634527070215686262778661803442628536794123233034065257173300879258748520913475372388586192255526352515159555141410585513370400664988716045540257599092577438743930287820547298813450055340503620395973219410787694016945053096285985109095338234926511478639490231819996471073980942785275123785953269991220381475161577132318621655871513314189020648537447696795669887920906815843740697137604444385581212765100435608009302977531350093575071608924188465932981360814558821505852808760123422903543630241531897165461863253646364377284768434072230011988763986464335526925038838560112628933861498739947991783673239192129286042868890073963097976355448119610758870295194367593545395690485347429792756899307771935277230603021678829383869143867704730537233820953170057008314198404919401253462331764020723842788372379449046142466839436152465153546600976253360196408006508836503848971415916217723444946167178125605096174865244766958255195908115071654313323254006095385889705656035814824222556715330948695389560108982077059612938696196864843800537199248165690047421670502064622237083918991216300873008451582419519276832581424284760971285408419140521186579138173694752790381239437090923563056365216345152040888908444318489230746318083093140868579994560437776062695978775420827932663232162331561178605685293391967788590179999589919010620218380987207355599865385502707775995478466943463148884354526649570904537126646566321291913181214805955225989917545318300389054560679461362933721992541510190876851288176200923323607532984068640794964589398812011368097509665854199806457798515675135205343920311187779449938272999251003088464581692509380839903930339768304041419259346101329179747136908047956379078935324925269929777044115231136467661023719152846095562852454588710806237373341745207390076935269453126454423434684513398368810798607360635581175156925484874702773215810082895358402357702597243783028291605113457460715251030048575836871865404119905569703530003936863475281058783648539824839239424472522001320798671754379404283146231129445891926601505698709415016783103499550646459688345040951738483232959093536627560485883964362121801061442721646229172648401628639397359292168652976545221098276275420266991684108877875582049086121374199666805175618088047849095488541421307915345355347105053277718806027220561624755556971714386765061087746554234250848240033166928870662512091674234859052970451555746823665243431316582316154709513977264760881750072390536043688932953300836232341073706680246681495109956308438292013098812447790602286297880136626977300713039524513593805990900978548598835527736442868448699866419953355449685439244143482545632177525107745583363903235374812621307741165823906999489298417965050536195783520231351197167384975002624674833295542538105922843329212669987148702225070606053317227266460772849653210891357342931028762517157115921576020030887548511040364615899921108988904708503851232454822021497848354297474837329242056378214437771710052174224790591445631296721490799454634458653142067660561664269780713928491285778631101242987855768895926671915919260404278766065292164103609255277382789834045495047056941893678224309475564290285770190028009761581123890161792614171598953652520815951992431360003384002167693902887246403915087262818550279825903093969607395692320078513435653879724826781876400254214473712738166519719703925377266722469045824202779369493450415848132012562452646897774551251679097860052981167926848089305099030660611780395215250659162232662746628790400311428059675480357547340579481487700000096134803384090253953125396026175803367075587345070661611008786707443538260933303396169921130403088483060627125536561192815989892228138083697744833024979339702744707354106824862256858898759477205945894666799646478773269580462583380437032427115860223506347218094809985598262492369725204285204551891324580303732703628295640860892119595426109085479948074637212195027160007513629689946886091867345368772284627816321608330843740715292749650811757841799844043280741251411272945717261574230074662176838817658759398808922586967187294522393130000095563531716118102413795184338949558995634948833932765235557133799743233006759179212969372987094299269696783222259955440283948287819252374524680975327478271636547022080497105022571352612264654246409083133992910883598676954681954261255537170006764458469088937656984335283718400256750856472906230453162620215608040279669628842447128167760210597678432529084312755321451762596319177015822246027291499676200833906755461041340747945882525858173414657818907517887210617473650206770968299678563038486268077177636711603527955662516076165910428400779993254603410415919529340894777034399928846246293433388748112611157946221518331270143199831494387389572512623526941725174605504974053032657325941736164636952950319055757154008156344680722062369506208559836746348874067413969380482571846659120623946455008248445126337535827934148404874180300741297612548851384555686582794386516026431561792756000596399171259206167838040322329640668570215420009845771152686445982480328232048605909061959560634629360784002130151668538707657536935994410673481335850644902515337931263566890815444265141906120598631378869657913986881056257377494879489752297532375573648910616541359565399602547238198826909569518797002016948476720036938899148254236671544307019101847660783780116134097711090179366335060651022435130744958358146526035577579661090839377366012352873121072983790895797205884642300249568096565637788182738833448734208854512510408907076091022936407453077037746023843829942283422335688113361433371777372196406900065577467386221894602809203049633947682244319526687901801635792976355983624543253003058960269146113416018027043996549998550635782175413150774301190226358478913770119232220605025504211112384986453287043719531195761908565491506259064799826061432839177250576878703594431865859800383966559837400583094441179660495399591117226091493742707435582384918478399071123689083545938752891664569577634139845550761672303554204433758319880807609739158679413617009849051945812616480443441597368027739663495875266875442725184561717018175579634325900488746644528825935625427584007888852606299181062143006407015295303131589638286488283583369825981056773022564390982919119422201866267204783384005450668845962779415815510451344129978905238636013267538390761571182974621565532180135715216598052519793119314829424282319481851011945811438012984800319553039374163398132112691074196011386904514929310889195203706481365175062031421824351653503384391854626464864688690068722462902188828655465882797030324367216918152063514555863957718667341127108953865581396434574856302482317802874263960224816247866239420627690150561132595628922771817401102493378818259157028588710372845263223929706690309368377172111412661507300529353295171815901868257494040933681550173056544883057139543154598709575566662153708580720257544751671620613308133141583643866586142987616132522781090130534471335017385443420467777826251532876220507457180355634564724979978235030042413898052834955272017183965580685719057602610579146012448459045035896661590594881929216731075435123171071982362807370779293808195037399637874462523127050622263292302945322696623665435008126062757291687887218576119170943953495823929514378563199677752263492587656117578258775753222831484724679352205417410709024583924251207675117723529023919005024012046899055649439684896115742929479270951573852057488107037574579178654181727167772921027097603857543209296581764893800574612158885367604214973871779827184084032367983608375890899166372718929453852528507986708725355710596558073856961430633892454499521468428813015235017389084243208947235607523109582293774043935948054816166127891514082287141219829893226567173672732952606827873145686700769143406393980349756081348714041378355486734483027275512036820117424477868589002248027123607796922719551305801094588711365686961034460746150382735976361462154018985851084147182300178334646185112077521015940304134255319559820413231607635747108064220177662195481015228753737639279172642695215819440619993540789112853108616536839874732525283632257384136873163172815506255765780965049781505993986713195271010507914187637591750456379573021032741227714772632092735072468047570321556453975116723770590161670628937031139550519305647960792811015560708550918104614943449685643755056096821130475218288909524659053747339003438083894916411767495398547226629602440964749666322821064056762733211138925387173332858268925751135300559142831782100051435562291451815658039233191169044490490351676555230564905327437982201851981669771321990425453675297893482432967896683607907169323128673552554202279437163885394955436065265039248671178531204496824416684753587261733102180200006880978099096451095782352838126712398241512186382053839870414560894261550987874916987729811299967356160132998925152554871663251837866542264936809254497769327229516457574884980053292937982500822264458072372076818909362644606739754666947209812135380552671643649947234845752771360263662790569365106192322214129583754845909790899580157017610411608844586380208309897555405046151114869009731477884151293847272236708280575183134310748131928235187533899164147659376894747083523514228252140089010383652713942988727135951508151405744472844228248601949775567440714078801059822698950046053495559506175922587962996841356685762777789134037463632981985256594164750295566246899794248596384878653066506780608715362194389066452772581790593557873997005053650642310556690172123697039602899065930079013398691063060865008277289987476049302050895842049229111584556995914647984917277597861507100815951873367314149579187735065169044006533147401368342933578497615572971884390612548052985588459587728349481025784851376331545885257202705656966246340703121615458822319979151636837694618894523568950958142150794275404948994187387402366816228604007864712861628516747014948320071003794573890715236037918859666953916732819435036586628874165104950115946087159969933893430697449718291072924371980734038096893605397233699989878673439357916725330146697315003446053264938818187209450651196132269358852468541444113609762676337589927610594376325455440776008034175645568442106935491733773783207050576755894195798710568706939799315739488520284783780500330272563569120774128007239691919572496775150791162657296832973844404273334524200220333608745593796064784649137469529452992453960814057480377293630916221324028893643335954713756677529301376170102504512153139828762235744848249133395891400950757110640750944270249891547394873678169995977827352738272713833978212138891342432848789541320328762852832111071609509312504963453276021343039173244383006231937468773977491902939335771402864482662167126554995298238891948255026520714085219263225531830331015664018522618484241664559873016879060524526085521820280172626589046470264584472605840426194918764649635961908680472650185108271802645088969618200201594183119971661426364415524467720999307617421330095803350046557124066698023587296550967881644498860295182538185800526291120559837333615024994705932034288787624582708603238905507017565304700628880865776091510558795301256607515808853562161817838630863083080478008229093757626793600445077441644411416786735297211714242921330988840323513224450476858277438189243348187559299437400780081185797151452524489568296006462923956748948232282537123887166096901293540304480822978071969351502207096657304769876929295252964716985759107394549680774712531530102059516504772268099994665720036333949851139707660507535441456071412435200812297391656211523961841805139255260383912870109088476565078933911748530615331820041829728616906731803657162601942443235398800480646423440783441294180244355388097445075252868157505108940060433851675883783372732748649780489802272733308333320421393316108064602289342932556454477026076032586001626336137208218588629706785699603047060356178973315985925382120267261864826001997604889087389104908792806564613455287549147178284887428723103887563154654439332761818994254482340112514489239859277563296406434623299284599928849609959515054918901916223124166382484132071044101736855521761508438095704507605112320479155624897683920579813131712711155819238781921298841250588307907500193748916274772955205166619705759725787464762412648247554892948916498056499557617898597927037267360830043603567998023866824029748282296211716644474377565247732759796222867784752216781152914989712513138944469488412589424341550134990563901929293041397748434446649395910914792368780678973729359437124296056227537454275776721864559814277235853716824449274568455036713920525141932322028582302416891882347540586367197942574490843103639057896954591186205340305265235899182532185877807485991133164059802573074142355078661180690711431917656745985130694938333402227024221003002947788155331355552358981676683746246629372136423859265484317290374689644619436946107873507371683589030850796212226163108749984068367312951754463653314261517176062774902357601878871423466496587303380480050824074078038962333864564311751015067056524235292594263464057428875257798610389429601198022938674876324482823340591277919192886474221759517529647254458375052239562265389602465137130551990413720805452609958206515086520466456536297756377865223723877475092467886733201732138748173692743577761965160103808922594048684205634106933272262055696632474696986851906369335858463936999184405246912231353721866606789487777821534253367752244074634829136263979948406756755651358253579034180560396625994279923370539465839539352779089815754739732093638856920062299092420030839232057795864329022636802803701959245318581107124427329930073642402800480272455196948094983807854478281742371425416185901452487704314944895153779319796220140184352971152544289585354022493748745543524178550390868358529703271483579353452551083917553842617761131695184676199646424865913671331513243717174896209476660576615017624997487856144858890474970668359820334621457708124253144666182685027198306054924655090583865484976883603465502685915572848182991231766589133059413821414261380336220260020540011986966567940201398141924721916106908953536951926875192062782050162771906289334450414797046597588768764546386091707911669389431160814403574986834281626746992779648417933008752114084336357276439793901977319949538959289772557159763954418740056649103085724798110309316260092490819456459141299646976571732842123448474077106977674391331589410220886649088353401980542848010263925607588300298237740244248340866204919380050280391701515177902835656444020031011458052329899059944724584326225469291688981463239707378309188323417647040550199079869859661534067556302827465092844142788005964594554288389261030515535026947708293356925868301790637550294325091266763846929619749320842050675096466841318045544511456979279580904364624122208867580197892620701293939134727869021807165580742618945222293259675915118368732938446964580075437759810934489967761010953932808373637982367804908959824040087799337730048606960056169724325688403808054349694277007908906459183519226259266257521276962768251926320910502311370943494611255101608564135758090410668942874680309387257145401588507896674940624236345759679641649309811768183235085537033443220420408340832738545126231168516519652026787728509050893443864742673429708054602051512256797673180881839173879129003065957959150580666159912497713839452428376889132007428429877546660156187178720408927766928409995633930569591631046458507763356139720070118072339699609686301522200620108831939131649849550658285778276647825865705600023045647401629461820925890501795864555810880532415280034838813158351596305504423308278037013644369780015533721493874844904599130480411374343743046423668912060395230347155036976359452023934622791304552479993562961240420452207876601568829017670725734556346474406001276931038306747956705888523717623290845853131383140934586313941450095517952954794728877469365789172545962139777512375923846885703790209840756031760399821956445961633452000001055199124355547783295774674676411790187166533638928289083158307904969174064166119813434606931828105208455953068828686502784833016208108641331558108642001181257042769717802465165169247969456612879120837961894953020905889925707003716846638763053190410857476225458294168768525171179528428556559104125313037490785156898175281099558966815174130346742989352413572084146734947036061040709109945317523240364299584983034735334617692419205632629689292390462895085066119196681655511907526694682102915530156350662159363076394974319805730731964288524716882774532068766568201963976524494340749325045174608034809570923361898142610864230668618448544675374428451099873208981343926008112232322017082386075964891561383901469627955645021449660088631319624303410626381679877285472704443294759379699855357215020434273358315566289545082511596932918992114757475301787516442812232302451811403957584362450328750142971894539849307846965977131356614285518042581846649151741629780414796877335813177713687556411184481822455476043534055398138355786790107164584845080480379629884162325020574188398734640251122548982376314562592258396292864917743391696326058479525806342502006015459798337254074821058935367334793824248120123183495699999475723295560788501458490599417855538181932572963526377726821537215559393887920572554409023818663756657201675827693134512067003849362403437189624247360106490623927721518470488226914522295959495055154328753959981992441915119950598523135693164726374055752541844066283094715652395090851464111608609110061040635167256052046652430702571983580054473474720566553343502250195874050093850476904238164711691007476565153787979319673465210449367057863281137797774672633355569507258969307039162036862453995052756816487789616581771549784670268376728992646674673697952698288228705388548633604454698956126613749390444392310031614103970826068837649143612542026590306768611105081144015153363479829291721398425204494536221542418623639179091074230209678317349906441667683297073908246021151081345536168510672594768367411347658509029480058293444033174819943610791318261455799409004460690677897840605466842912103442158555473266591648173860853781786028706881980933213942379070147374675891496306076240134868427395990681527337352535272193260440955987574084398760498223638828144035563195035528965249526740491928897180124512485825584595273361096492204379661905519115233687317188880895988488104516826475474886113637692328981719284713476874194108335865661416317569861423028313423104379890199954433812678597112658053945804197173760073595058646292512162871951579356123051446435480725478372996161518303687463218008597264104493457039431152809664856530529756685379813744833022326450813502695605112423168593116923924251277182173182967595464929769472097062988062558848770024525208110317666428315274949809555500407489942681221064673943135769629289370801473024563602066397659458651382160903637127809395902926469799594884040956305679477369040863011100795927843661745461558936569685299530722943609865748925877969387894831897841774080541268703328538348243369835481832671636295574972844268060217694739531157788375489204684075648005155092938570492551598252242154466632316757952237380284755679805949649462805842152411522943463550381054761342694082689440143775462180433489116360694393305791191795086406706537892076167164787102398882270422738515339721320543455115968951223105349760408970696343777588449462802304004681431018042397271878911017687369478548586443359843033503326314568279570968202134451138773672593933542166794892562167675942923020106896527785863194942023282232731104340620695259865411630017645293735005505346240113542944727152302439156300995477323065290760528420182253701129715013178296387515310010056699889681101326945398858220072871034619693664096563537231768879201178364152032654082883633968598875887965618701710674331767777469799730212406824151754930332354642320190462094587106456955644708769861189804339575232239996402056568471770375048076857296745123822357443164026485100751037886228574503243109023844739137118916495836348618622598224621583163503474629178689172699120608614757393600565043090420470434157699902883587429276921814388716861792431306038264487442041347647443516012528754804816338435864782685747666585846559622545133443862475721408575465180335211436806536726551847431265697829863118682623563991147361294533596100548688913085162546831303964674580554061822611935214301628124507578217325481365078663613662355176896488862244315853940940822259487751939247768826395763985893463835513242004070605848330223036698114612767804349312712824686215473198817850741033857375222158245102759427335524121475487879485504487280524962373728993126576154900287559899236022781270342551213780162654869517639385186467288018579117206620482887676847423035482716601141403235361440135312912083136384318009227985686345779760537726385127029262032327679285233405158349518377559863202322751232831665215756422857910114985568202491929712338452108608857014142241892671038121109684286144299819006342623415327399891933341358853633087183063804135067444931803277849287501548960233593387149131120318073259627546238504520854837928422535535715382244313979505229511235694945871331438212352594469461418487279409663175800802776055398902422175247081124214924713334563680817326019978853834026329095317440238708339755790674119719873174324810480253641785492664206900178414413478946568859156823719150934778712547512430303315275611067728211727067634814106550573510070542172745372591401654297137941960771329394366801340387807412990661961233455669306511538208623453219891039275147890481127645839223334494105114425530129974025509612965406198756041123127558191734543262272500392320980869897536398749937741837370006249611952967157244376868873185709828381851355170731213961802361683730049350702305391477816124320380494551393894588589068824355645341532054760103702378631888276283078712467318738793645134042576368228060366702466270404772374899827363232542537141410955926561367737814721206338153050756734393203607721348034727958712058548848010170155411270669161476325777917536797361621653109491012186403721508342004304797793274010624465634957904192225544930819974437435831703251119515328097155987567257004183267986580400648738409948910789950874577082445259571551182409819584048168093234488410089501278551504641412835090529254786954939908971942950645174669348981903239826461268865582611873089602917271420724727891141038266399229976769448287562682725072451249093665352327033112545408095749598410855244599951242017971264224905388624976243956335181901427375532368032581566484484853583863658743152717284141200359995462140568662843532883423297441230063553083582389965165464674864057973271015105562325267389633206027121764801307864189376528019672189770137742145899681119216094737598644667165195121127339011360721310977020382379199933296206008465682649487332514009539305752295134873592182203581047881220108764798720860394210848079079603967240031389266561538903729960200574178618797699303926508410465899660701807249494200384682986242378467054387782439759830240064521041237103615036145461597905194743282795275245777188327928961222088310200032435135129610514631774742660607146839387851228149519822619741433263808523005161049940087457817289942563524988449435847118952372064908260509000619051538842971927104621707459186460212506363420815523403030113802500968038365810824304039531704411596781490999029974701416480163144722231069629770684986463816329360881368420833758520412301168488530780795500166240162546245496631732789315558937421013039076736315087990409531754687623425698345882876103100717669975776120411874937139341437512628279161592849187305825002439215312549206280583128779888528735964005736269037354437104758832182525015853454406327900514762512767233447676413303875877342043540005544348482080242988561009571145279884002276428891041715571472716831622326291731709373888351223595935655657055817790518633686893153699667804119621068829433283491146821384901636406567649713036630634675126525987957353790105044272827517758048015125591181553368050595227170066561162673545815614750752868057786059086839027130554524494657099240988671819297603016699228804600842529856106462268193846086647394128018876450024933201561550380739201386952445041679561295984889093206538940889026223828906582895664911695955414503915539093223679290018275129765548368824436395570192518058579502946304832307973749128408880021335734835602431082870859183182617568230353967692194399067494716165332937797984351975303358915450838993318326582909540564520787101219587396092432116868229725730297635127842505334621398266281318590382877169773258759339448660867123496378715385512591171128541844350338727668632315290406572589875804891740059784032810111879577985066197983281112805095412449408433958213410054292162178313014211663479733278748549712554237125379305794561556056889428539094107260138877368812440604393136659231228875384441817750618294166348421008689205770692420392982669650179322985639740810765250302253195543343593770192042501614416734328597429074998052076250633330438336289856644561833718089033914007042653063323129157126770876874435403430573037933566141179047445451973214223307005424111580845220964639113993280342963912965865053917442522696455483357647874257144308930421700752532919696097153633070897247056661422294667536295540154784337316158209869974179308240274953685682256053761693707771655499432421130190089609729478257280429613363779184939901799785005684311529291925123490185687357992726681674110189967317986379015428416773524437834953913385901747203327189901813798443363649514742730142340479690844524759841449378977071193818171990876665604451581694386060669364093797460187121217729320976886922324290860470170273152580785207249838276712310636915542063043605351881177049495430432776955622114050746814308127702549533719810355509548547896696041000131664452413296110610981553260878698780619571455372253524430636606617993451299608993452010331804539880911559488710061976127744637229656757718418741101712173195316905208663150247444556072345402925850464978857368531462336464116868846391892537551782214032106052112714595137000633476676993576723122318640446888666101866678150985746069633255128742989238493082974682776449279409232045895368750825279133332614290693970346428886953948857778394380138237900414964906514845731149795369154227584102060102034871563754044718681702973190907055785849781659629979036704950230323739622465069674290693737773137707933334404196997274589505121592756124627361017069777411923753803955270767559495550962101235230915083768889155067055056762437316647189534057822369845941380653461232393445827146127174998218497273397898596662590856478976719806947336544923301458008473923739138729459287554899060082740028186425637291292394030386472832813522423786028550242443537445670025491009008493840120585848744770724309441124509495160659785177640881575766301663108748915085236434914176026779404343381705891751365999626537569956815563430337057340558604380433508778742529970328252750789251684699194802238733898781214197770360294679874028808703798295346489185258052391261443128718258528194087618285470273989136421425610763128453853423989141167863920178644205912455122361901255781582820116966837462952277104692729983485087940908202593313963132797717150508009069414086944747334477156315380600948804989141235732559043678476032278632242461344185251995339690233301868098149837472704980356146196839567902725361412919294189445092604227489458066896935345350513650622072024313022132937728673851606187878905011477972864964077982493914218972493913125465637601611258498829304943493489370646933486503265170925781407659210477943328047797446813141189399428071288239558555750911697423388738431801653697955170165873934999979817026892120278637995571093633121401223490038948532745734333149028323709302043991827300101086291900252742481768065455739058321014399015554061950852729901207802768684190938569649735174507088952415555787404038605847460219081376868091858474260660311095998691789062196781951998973246015023021236780993680713288617983822459219215100621247540640287675371955869670861727042950023790281191642229769628665101004120833261032591861713520955563911837381392238186794481333914969409007499183241775515578738543131377635977596126255668057302467830236685706947034304473507847629379070718753903902572428835726865485078879223930074509107366584878027836199958000307053323535565208645317082680655802516731632138437415697195918873667766381857410906211293244018984313968732069215390258352884813478037048794516013921253272136089135074157585744644559811334643026963131331479521019802308529573808350473527656104864706558867092390902691702785911902140972170752267144451069000931024762186112361039138203198474437199898568305798750150214130227393134058261753303485346054260517522250895323352096353341490986602731381131480984131756855557418128405439034156692948384048969263651154758459279889806416461890919455377819358984774635178870680894314235353521144607765126892854859479651454350390306783111934440013012259761012034088595543640143815738430100214765681352589455940638129918836658686031537669125985347926230073229854470241273552790788519238367775266553524200656602456899017961165059989835720309287605342662015145218369336511384122452566736733869245591793183082882719514275484087469223773116916585640319818244302000615067268997743136091945157727487416644900611203602619564869810732333425545214841480568562731007229882014430967772051161064802871795065514353216864458020040033048461059605150450083181102201767068891533784504423152468433906865685503733835665236500795326298179869308646580509856123914243508280286795112566755050021456449993300479609086460310457197337905273001516656881045041038614622777660341173147712186929509861727899281115744431761172066841330812452137006171328819727155386146344064281276186611721796422370434892566464791133398853472055359776055830994646283988678772476837093002609748693553644795827513269213324445574016504486933727438194639026590402792204149226144398711682061572001289830131518818972580157831434090786763087746889818295571918514733590831913730506517971230630523491521414697643614769349702782327614270896073907367863982823033497208136273978465635081178805131599428244131558450175859385915188846501395425337690884994979826205702829717198928549986328343387626378121274600424462842919419320637436441614772254999760003197359192579765250128731146808403127633023143646569784974952694642518819017080451697752639594290225198172198246311151225126835216798073150392764759961130381907745673010758529103184123431315567538715997366133073625112602524774832651246093758178940981842684919971541171735504221108136474348226775410925121833123920564159297098260854608854384825824242528206535540538753503049797226881036904302881772066722851551656188623134539630886140503223391554983540787304069153102676160250742335250478907219789497745293113890471890588460815695405774102345957531139647691132217317978374558625515039578971543693406667475723168817135370417714280072868991182395901540594190365472542829378923283919749238387532679606008561291848473467297870646514822964086071771404614757370906904464164061260990605804587187552965163390243652768517541530738490776936207217281507956647238696716573528440093278470470569235790206282952094608007132345193775536196980456897553571351454398246453289662487901612679154718752171442870568963194396157496269572310353728195585913845915919499514703173961641779203822161593272614039260304085133149462014826517981983634097332923292258456922958862447292504187554807312228711892707261844265436406801794639478732357038757464794845795811660558627619185329525758840575100170605314524724118805408456522508570244711652957196520621326340436528802870050164684893490747008929237044709840962898286807197612724601705315517560075722226710799465919408608041018483253454923999569454114080318967526010690314121159211504242223421346110714425735103827423430276528890914093051487422209235241111724707522921306266670458825962001980555737505251032227630085729750592977760947403473276124677907389221827170365364126880504830421222164198901011489458564338152133297627739076034066242289041931215178351762261929861470414066342846842203485852898536066846994748431396447345905799782389280356754922864458650064257240745876111266654003468266094679103605727862369785623181884883273427923847087269381872847708286940838023879434635013115692466060022659479606793997747372215549809952550764054914420400054963289444630949624879651849187341634010783217587513121829310236039912627009718672193365077740452929160582324568498772245044509590931827975390715632911682579412379857193671546165326784480006055153479620672609301601782326556256037990091959434811249401374614285783739589646902533957341086243842850372182169438522140881492520873858408183091356956094741147141370657459576576429524181790107684478964192869475787955689192398936362615973568263973738979598167478518601702267897126906502395836005106905562812313544963406020371378184455482068445357068074435742857167659283280920114733878692026216617963959390319466741204992925622522327044941621104850296355279206393606404790470182265103239099806147919274433335126744011677882543745845996449964041639925310227809966387149525997206166141242242053239879126226202264376641261690501054737382118442403637999213534070324222268900992916487863128153977184514289323911495781849689426352127472964314240872644391047407369811851261574558929307462376532106167269417771594704125401758461706590036102889825149399603853909888029389029181834960177158884214038491047410061108881992357962549831497119377959910826639336594323388432971543920840877430879288647938434929376796193997407652152713775404285049936285523039241235504139472304148661111247099714863074156897048844957568369147577772450291120397951122390854835015158675731140580597108653125610801901268373968323268956888943073971531117454709254917113230501875956102762763546184522180901017496644582155933302233410811023433309397489743344075154642262959088588474671559256430927026214446009846844777200462192830484635568061588980855186703062740198423095551076754446441472597594056320554730816414206209586432648791688406500597137396776927824279691030149212577776593977898081828387499739853687941672856277391140794979784164196389931758066369713785717898164898986323064338935938689052027927011644754515146735684242696788328990909875488260172012571080307562900282123342592987681406520552610423514506433069324328009093996580800262127385135586723701984207997669096515461585641580054594964486074332868808070180273026854694283610180387955353994141405984354698541238222654937369690649805627189581107298131871189835418160463261152328668716153622718007731834856469610255521467422940673620744706668734103884385251142366224097157023833590523533686167307860925510540596791792980748749860900405869290780284901089424470188529731165351584321342357580179885789705322473312865251589795607840249158913056349610957902428242298534079861907685190599471869635884735110322349067381139648240326268603853144633210197862060150272167875402484472581498160265409403150631067347014087295066514475723769563267025040195497983845127687277356689105602256590172859661070599747655614816442146532994621102648886012748384484899217232592394830633290170481219363023265453575889935875599703453390914687338351111183490784945814153886200755114457397964380317712763258284555509864822014880736354192268793765116386852065800173460130141185652452549953459460226893651036067746289426532387446023115486694073562471139385350669894849008099066979128063840535522365506247546887666361405154455424036024255426242375454176831943296989884871346059278744055116852079276459650390331817930642588650224537935170597308660396226903337049038390767757630236891385483092776534754971509838778380364246247765240410003810332690487004408361908085763120798252400482428715304905300362908796074868752232183744022832169949351321592582916686045210602741167470201047780083332663623528491736832965318151761532295925439981454853400407992602284055094728039618752288890949065788762045182393737951064348667605288730069998964074355206636726488841707694172229823468292665463834218869901008677738979334067412675295877255909436803785266099496016622155510174666143063327504291198484661023177831738759851530807977581011401236772363310811400715702588598437913481000662076570467810568724377713801032779480513549122206875176819732001131770768329667873565381607821764713214022028632812542713010134914525984473913085318975969634966139531378979716790931250007407454343086487864039111706099275913530416416087988714029743612114822213904122230959833459773524813837332584549061856011650473060095999238493675655932790431789941455364423508390243039695662437679794593170856569557856841808560606894924675036026502486697269020639095612636810217867626583620177680036911266209839564037306451126490508432869336001345169611932646680044512153054001342595778775822408913948493654350749301376543187375880844657422976323358370361492905943172515092839551094164733155027380667814407165904562797216596836847246945095635352354223559149370589784109998188569793109537424638377646860030836634829441347392262157795732442615125196925094061398990881409011797830071843780945237831721716737177108352282204306272368195671835517348874329963027089385535100009912392170528324056388025132741055054492942147987900161267808585455810470705265296396958886135066230200824275930326869277185379977188101679768646076833848022269662516732644996402171983205890316186765946114123953242319405496100433566092095045765549915742794449838122414837736362034191436321331322596520006740605693024060360124872044016618171876576928375899468229458844027888619417734697004506104946835882004322225127561523388973825066073077043882442203931117740271567693553727025931183676104163801615617506381166535574718864527143055902204090276562554161693957212367536439683587441459735077963161377626232811102633027820918102940854505473572131872374473069026560313893435628431739275029549075638378112764641531335741380220990998739548977966399961527947578893496566155824498553297775976481364912903124944436088908761152649667247769743106372955129260054294115817810378934801346027418805802377884110768565880753793598832422238052664220642012934117703528903368723636291389860981461811284630854569885083182744088208575816408514445452652174870746517979407178318350267966486032626183519982204625489161669338573097372921607553941095041492343309701072846648652341103719932612643133471223764043095981855433753680628201167578355995399096264753973056330903517024746091752579307370620896551595455143446809984583771341089692907099882902575206514174320677720004743478049435282242731039817897878122320835432420365462694195784026610531362509422244178222060188367572452991807364605502273189631176786240477723163930020915157233853439367910676612817839326892407321961424473278292795125664261993746605224052073552080965517132164332335981216946047836370567205353785724251875611340180781457912157927041889787938113159096293454479959465348309301659182686773957565339605288715529528681252411370954837197834435802044555651020219219824861848285207348084401586147773325994214488145989239066817781361418355581828110844956180955856460727933527867612928204175047261070018327597168876922240937034384803089135739691561448698513430378699440828388684151516929997891078264007130865576602090240965820846313404062489819174614761600139897986949011939825608808464665105632248979014450358547728667252900558992516644266553077931910265404264922974922630134030210635611524838714787210963979178721148993523805314557579571205501328788588757074267161208306932218384247044168319142063426686506022476575143271237468235971721785031023834288392212914583375056797124767046738577431080629285624019596693711410574281050766128856300926677988840889338438736353974233180462927910135978550114697549013813179386142570724707557531165063452858917108617707094595112115607436568455160029883147652674205245495049357110635915519176453627948280516969274290840887895293352963068211682950761719719088555448532514438184539764886599437764083056892821500913704950771536467094818528639367743291884917650494378715552371860795768923698904314013160243319383768305867761022922233680420505235981665680345684016818842875473192358429952454577414572417976725338892974584525796391791896993084054358413306451264016968900938993171884668696906447446738084251815572656123882119123565959291872061785152619126845235628353265924526214374743875732944426631531785462367479921532407382999290699568268467978919346561925606554165553191420577561012735578960670109214123010309832444655484859221164831451183556839219713135046425466278123905620485088986781909301528458067597041424364591445082683415399980536506288336807086216720297049760522733635542450374300115449831215670415583143627240535169339875529565012652584483418281504368966387754126904390807012156453318238412470780287855184405958821388221960178070550682606026497127082454471367480301031871959009756898916778061667265178578488518409905609732131866400398685823409528514492610357713344752032256806916996499632191222424381626404073055503215948551107851654024022477903863628569146723545769047175351786832457206849096624239735451799372146563151314442592995376676475297685049227971740867129410140157504281873892984009450823373491894131111527791277027928019676526315238754645684848062552909803003800438481248849734131650234963757469392357862846845141589416125748331029366088714248561882494389028365598075520463089614744291522697459925231249330781677160972035321931470431855425409839581924243673959139341187891889237202399106566527614032235266170313407962868903686672449330429211623286123874402949632494655255086061444602441976893674025123158574433139561175451990738509592689866554748828019605345385986850526234106848524679818655174025445739170295514757035823983805699352713692091118293454356291295484509932587248255747723203730158458814881965835426946623363425256105670999762393262985648230805280994057775966253068616577093439825830096226202592395112832621775415812292511477256914110601538689708088667826563509349321167159062838910138608883652177587224383142565249778985533673802304632997686364152171599578946099659804411451309557171892578921109887834337009684853467802697098200626888731213357735932547990372441556057640328808078259682408327742630450883478250008376413663387175853183091043501441888162941656777288767901264223842518411013670432525865943048986304952273598519835972804116038318098486951298962575377217446505525645767226160777257350826428803645243274052339464833585935184450333541117999600998045886223533738469646467662424269483897576712494366800322086900004728834501534400521108829005065662302498645607885923824287761311147689866227764082824509265196255198729969361879831286876030239282894392958434471407309077458550633105807676047181202845648023176854819354057319192124637556575250241570472436090086297210585074510543444697567268207627275662676845994043847574779313082601329161420015303167814405364691531843548122542531084146519221940356841242469220103325709326004245354178234824854004841667508247795208614068201933864322455816817483245625173415316837331117646290932886956470034528061162586895000939686721776992967347570610717416104591114084734747665059751090294606103448579060113689122536670691477468803527697219764939990492533775502969558792761797806574185651166464768063814479628544622798180132644269039322969285746406205671531493510989988713169619087716459891243049781409734294579085997735170547610104973833190887702635879343269620771742509187474863241500769425281854447577541761576968641975821414825172215182331567765125985315774322217254539647185103115259716846295107538469493268595624522459014016603345105124638024669771029792817496938513659764607640515194630419940159312140912248015715396201825803182658322621871737770748361688366948216238804075676570393903438368127610099824530041337119902679745833569281989148303966294063835115500516898876448917416245398580164056345912871033416461139765947269690362312107315045538596085021004736399268704566829631158143054261421614357344981973722313232511170354118631988304708909259762649786474593375469833149236738994666898826697948996064837251437982459293017379862767144108484437093517835364358440665011434006671729932820409989625082913402687060429393365291101951853644241616044897151157256123443317851793875543298044421507545062440586737988344450989552815679953097658640032971083247271443811920332831171964546083339533855112792766400403929245950217113272872363090585065182091210526557332007322254719126461331083872326394382360515463889562902378095605396950143452537852503235513126116679909081155723615293827310194117426101268059242496272604730483264475283573798365972398288577562673381587693703810809209728379337689260806483090098844869283134052892334738771095353874770971267797720189572847719458859789470483262936993069625915340789823875740635587168001857774951976191740034414588269703911665476593843611519820800554403528865079916001579586373210106033515728332877448030827555895369938161401134332956102500867892853530196136921036795141956657248606949767468077283547277221221299940065788064547849901324762157029063163405876734493792965725005425366596871177334125889331207117185562785175137629626814580026777477044641229854203634251124409306796025812983014487066838908227155107350955597387932396938092059562970222896921359143748681645265618052062634984140893338281609585972983965906463978635599367800920615873272658583052287587365034663322572958772029063082099855681055658742300446492930891806203778046310619956308779748395498484364417151537647333258110847162216657644426715381618793513021976585902048770409527449490414450676411778041347651977836932761408725025882790058973749421384272896434276594596352835337579112413399064874404107783792057587041625710759049673420000121075476326350371338278323678215651208028815039331225613665558903600926521320448857640505310332567085590857103292964649010223050807041814519278925035995337093349089240818825814278981646636400888881365410392672059078099638166634700894607211343071085991446434530995381255452233370997193378252957948920933152128586301705777399770994136889423112395733764034996673650750064432210015972745465924412000979123033645634853721564669332712188676623630782825918466913163294632563737005375649544492626177141606598667009466701535440396212154398837829729895643365339022799263238337762286447197267677354229937890479132022471830443114807138714230897707385009769211093637857116923286638631024086438246277002403396553293577046911352674400370890557981753648260723669843651612663265255475504955693455884306447965830416649077722143679541488683330429003595324731811257396585964078275972797175325851061198251754017865974006295646201146664072599270529114343121827136880358827716207122126720851548444118161881594869741012020049855140583148488139534924119353770321066973605129540817271881820258269074987614044610249489101769781012712558428468919199492496774489052073638868706454197099550983919172152737452329150567438021543458154071614945957385163498353715828258886997266467589157923998873656859489984187866869701005752831077502241138248767589883007002081953620118619619162084501478994408340572784298498840936847470159064151417444534875604567658550609047275454768435346332724476998992769354498329802505354842961997429751231909054681025918140115657011431484965185670948804806009455837774693102140490797912799344827703810466875599853217119029767494319646986739266089876899228257734697328513344257265317049280116716115837975917888213814700239373955667722472714066944153133944744542795471164717797433095418967261378500157981952056109926432211367039822309752628157096028471921653152748255739994541859082365529622284805401127888541723749936335368607622086859529186476376779357054798520060947041152465299081054710355135140544814746882968018807435642052080784235910314087332043546288140822636264833398511877963016511241271699193154404904222028843284213820926916978278209137688246989044033978115411040121538336614969096505981547833660187700712197632699287900919943205429266342503125092035063343113608501074737885978096272392287702763064267475335719723123001130607073391851914915437433692345420268398529638617470786976138513277104984348463696065497299065571969314268669322496381904412998032159197292552355261348932423353166706707802634914475401170256182822224063505148073338706779174210739481966701561113787748231115005722099726521254288758144978735778395543685376758869792154145276940360434403644019108825338304116058667744811257646884328964425995411418711594266911556685190644427319151758089495944330412796549740130437200068645613048282441897846043079434922019990433686174344891637788210077501323620787392058433295559131943051300510580677603651283986451262928693888190743540402832847802186747528198571334137829273848561669522245489370755550279693125041192341186854755656478801829546843973817063456852913053566891762065240140451943477105445105591742906173277509279459420456486700302005778012618513491716369757114433966256454463306694076031202752168255106394023851402719598132936820314944897601392373031434795100748768900915117507657290545074561833711654557486375461687966095939547459788967721904871589589527504361087998728561527960133078098736943543708039923566573044199574469330982566274523164310130037348539407080137847197800135507761514683957719474042339150921738577118645746218975053751846867343513869040025670549449326721517045007336605008059702681970573317551833229806448207336076521100553504879438823403469697002146777150572589473160504212718069586359367565343924289035313815614502231584971790725463470473767076883245660479508968610863655899198251717911656754503985692584005206017755566876731861315614526729541225118528357475507532937464946284759943974325094781682173887848284752311233723591312291615546027024184276713243836857399926349770318418368122567693075450921772731200201202218752489118765739325429594254378520455335357098935051375904963779384742675812249661837300374429388655793506192512507353915441782874648492790891358146784566520007923985847918818419750115244670658449407919207599279752770615612435510013845506895199940321925668804283195044053534197766355841165246537571991756716145188754380483705994263204399063868336554557444839732608183192414792153846505321186781153743536408825497252171197374202136158894621583278670559976401668902788659742251871477791301979109586013415229510484957527490330181042112989601168683966965666692058147352753781478420212241896726383992920651958509430374321549415551860579896570129867376763097650885742685605990299048707059229734235930264104618010683204877719075065796578850862256732094041857692802280322322606344809892317811444223959408742414101133277012537442919129117099766344055960004706492386982839284966264041618837343779879209657281453988542349812563578472535944775457068749386472980365242919702272703610358814740366073718290722854496315127126329648979490049929077396224072290145805230178638830967293083228339964660750174472759529844590984216368234232443409984922076551779521406588568391378715990630812035883011517210060479501635363011659327090715170422105372783057320991825597422733922146790791239299615466752870423495576164336406490196232782489648058675030168003930289307262783705843022821580088452565592960043868698180112011832623892822613540136364738018515736952660041041267240429767210552268477624173449845540720815225413306546201276688686428304471163350432554734084682248207143729916988794581464142329260047372285093786238657379335839626245220595785306858884054965466941567202878439968748757786297599777344873517305813727144161461883487910353241777069658795915975344468128679348159683027803792374541995261182621283068505720288998390937263259203646676029432790006887537793861656065505636161663517580004789628922154162479145732046251093408250057977550000989671728445656134993488021181172043741364545308344786576920710644749446351620287718137702068488231293845726327405343065396764335662270906422224276355477358899626786850304747573397022763590455474245290000512600436491432007242338164145468338206539250766185932248072297617762035692846365003430552708689430145829871392586125769244582084051189615873218793239407884718611367499166525750474892475582368308646942039316252128064563677065830297373655013850524088741095962418952190746873217604597922112029552514190456888646959300205070897409583588869548297829319385752215674017264211097595997737490168522339747988519425722199932862585569715079677285480806171576426460837129664573686025560411128552525909363709436567095373467017637864718274062077502655461500031920008017843330851895242426062302373497673698183043027563866587875271704301983195756013214335848275674366834293581664730513692505874386423636592210565467694231673216032970393525651118193879629913320680597296957166650969514212726141793331857284445334986811014084956750818860917998047175837600231541444455573270913685778400698843069680657817265081584995291930924064714261427851396376077889680305850945269090779596183938909234735856483549990703210305175528329938601733073224375609582440233221033264410688391890229818159529721774540149096106850355705194088378629276358256319958988650548686571769783814576551337611467193396713771622351375621326857377601106251855344432752506096954982853840500718925055643608210791267097640018816355220421264887487702356912506382059247404591006842178542093899977504499591172398199700759377902666878985940251233793841758243579056093042904560129557961099429769215740089602943374285872767958401815303152586624094804990517705571128147219822776154485399975564383299921589965983121196853387569958896456238981678086064368584208078035784018940603502536668163244392338372533146634732225510979242676146228112345696201757399369445547949668066681479972299408685811706381791337379333862333449103113382689904035680617349765040991900013282418397461247974985715036080533093867016365274908335064945379106883007946817358016594584937876781822913964460561093979654228211388146764098286717112830551721165479952698288542988652718990537075105244063877156883686132345270486466709944310208239471576294129038201641201640902200131685307940441422972144082678336706228043394064427574006925418758486944333139924391905897123540129448707079533769689390264772154705894128938888802630394837107841141336682191560115853101020482032918981088989109948869714998535962540971332054140184759295266527816176837341137914092515679730156451094575288546736700097239154083821336896102410508112032628824805893920351438760733710592679135619360271268841858997655844373664030337851594174695743077149221416712328031338927341182264954560179133067506325453571752671343646934718771692441657491304203522461307366549630235941307339030536779923659926186959883182227444337098196821853941628517882824512725493834496646140972628882909589654727942613208045855487693864812866817873276673724928592109641020225932590283449943709153457193374199172366577832774930504478206053397971456475042612948723511626601783558292071465330317412789566400713671765168535334285157619491511585083884748448975073302420422743769446382766259929728997339263337750951134518085972717076076097279437174827499889080318702013332038746934790907519038405087362832014036856776330520501063249808793188295432343504664700462964518110762946728410996769811053998072999829021054150162334206984481408875073354822711506191897416247003800361489669597258720747119135786083994573311352401531397993543945117606450251772172363522052740259239491623642381138085791369706865007812725379140205853480921306181691817801941695599012203688256139380299815279233642152770840751041340009748067257999088548249795382943608351530188436183214794323244165479561781750243380007136595466075426560538674028373523341542880037053950337151217207299314512208697037046686432224562088243575562983861706935108986095262404893694205808297343200120065029671221952575379556901827367171353932717621983305220810572229001517082703469261581787272269462773938584071370613196859437755797828699921944048540380223788107049716629637735184965514783576090157940872726957457585240785025815857440738660482343552912860578041934166056413894301648409926329362497723157000508057016177850911503357355536890815061907148925180090985751273366454877572307869346067660598264670559804873672845843703437051951543693773128001039743964013455864857457706871553664762652777218750680911186581137899080553978137008385657470809176730061964982700505152835770930291625609538280026345305996993195218098174068720744532747075764026832215405882732498855581437421145896846302922561501229597088976071353518031841777448423501579361691711459136138714730865748825630158566276473674057060295760702311704775129010264863793601704508139564633141805828857999586509867657594956949586211590876423182837874311790177257452634734376970475535040938957006508602445303369097925693003702709225677400908539816509083192221873855809323373336718917543431523108600542158479346477561249095427134185411209519723209083082396477883328837991427277779302330312194247702666010353351979478868023609832581235053365965676517189760550534395745639635965602463912627835951004183459395789611021924322378159472529782967083947008216623994327984879822958646182940394134741545296519296270800257764493212955521028406414021658881745073276864713257621133590271221907853024253374626783585700130201043231637965753335086963331810560044580227898609556552413455500744660013496333756155778903122673089098933256637410602545875206321743179141289471526987266255640800067561071314810167490117529032087114906151732075930095409489553121220715705737744229576483911557026648473340814393098439978687142103674035743083949787078297577401860229011604546298241688620902028096911662022971602748516790929028426451656197110195892190726570416913951937303050901861201887108355223292775773172110972979915629600897506271202078119387718586226475443582787494939106322151470057719108930090479960188860394364727424542830686757515933327681573752057786909416155130931896905048564260018425582204083222748417499668814490496530301131164433711137330730131167158316712098945511073579781141273168080927101175602470111808127081919367350471865792887587008351182898563853881603703262656422352072504531018913760060890806983651132594643088962829020894860335329571035283622391591949196581117032492519623913427966911394379360912787172337248233919212665839070430390731049608781452604583028545683530746450923969640312597074741769593385345258426664596516713397999793391262133122005278723022513011988565253483083356767824575790688637369525662742475837237475598049541014957941337968253097209844680773938384334734485906918252314435497699419770599845471346500965776760733942788698722150485595169706223951233444539762479306320125761318247933703253497935760299714614846667909310397743683195763499072800234274212212177195556141445201310939458193106638048582490888749584063542238244561284838942471837888149676101391597178899348256998715359652632720136537851451630220657803935780301246896856404161463015424520384983523154869667624204956983759826195943415306887676748242766394760256525495777357429471784039599024504133707677362135808941548537608805305488257279148993407033905167907231635746034620847880999066680273680355061529536904784957504630581247417371712031201247667006628357368659720200476543816750644286208609033903060681794095097471375420638636513490407084624056075571355619712962778757564278726496184602179972710766610468099360364745407748804325784021890530096956047782840195672215537192733942816811380803992481485744048987141095506428470122349640506443790848568550950432550216141931241625153263177064757095106058528668086628992512137020248837717600617126270648637142723652890759140607152226736878412745807975023409404420251717809239020029081430281142314427673250107784616102127420478863199654476306319823392514377795618212251389523795768684704190396523646737112783362870826226368746980189445850520667862284753256569423107415721751105378282622725311207965396054890333800233071548578372995183630633713685108731593527530059759668000153375192351785826021039695746969832146597829788581955611011702874660706475061330740064340845186528545338563295499936861533621582975029580446924108503288344429139205950679169103315397188943752159785760702708079172125049741636926428708202112085145339235766567763906710325113059400178150835982935759606282357784521829095859060468897969921687445798031088092202841908355310557806290141953842454065778626101220648887012953914513365555673626843936422430899533017562013476500595531246180782023521265850499991347069502116069814616658289694219594786104352473495955875253277164562656010281856920825777616595311905111208117820051596882018629025728963510541491171186258488740235573651812548642732088832588289744764352361761993127502446244704673929937281693981450368123683237232395821014514853586045470112028575094230038658963021113029967792416818660462020719169891387955687751973004460939580780537615439197165924944078984937380403514785192991708493930718481007836830022761061900896153649284293739928778331294524890817073187326090627577020865864880274620465124940602015882210670092990019610180196973264875587807151623076555666973120639307647270930059362914024171022715254164670531513670606822018752330932768527369779795794667461270150672665556360976933346886185564620598405222527165387848303566637431119279643093079816979043190097956128407509633958564051082000299975088808736931537096257219917788439051113272883249806560605104987562501631597718958819799255666566278874807522324503204257833598101407144009722128627739914154765765283684257187929916068457166955128656391683847060244722022300442879309401464392363660704190999162451006696200614157349689491044622053082200789968395282945375819177287444406537927988719307587362930501382131009473032973514348533010631653161635064343532922883826137747568770103032281460332601332905735765364925992223470782362157347838103812449699503546379294241607896336983063349278216441136877195945602052516881494693764780845017252741124111576032310320696995953536436553752754712803929809277525354653819916452973759576775168702731400033801417752144339046709566352261146567635194265883992800050416941524743196930080525248767067815772480925472011062914712533278834415896145403983114299296366563933363301942243808033149982302099178874707744025377249394034957888895659707306195267787464021417148415852350064425607787281308415688786194754999547934310029006058829142034735387878958987478820074203716141929343036720556374769837766564507407185899057724269201306312847518934819842573418481485880337674383511265276631285680275996984895756100350213435076355973675313029986019997033786833950692703535768348753309313066830909549510751111034863013922336993942848065863380845477700388461030711468886862988950415991697892187245459182788543835598286279719947572605811806456240334748678264531789714800684182309874133989319831669201238497522871085102138398440460536675598179461185845857605236290503547897648357732394551025298425139732687793183400310283185133157996467583634363494624066276807121342708874146940536799529419230466006098288041193829912508841332786320839687317456646882173828029522698292006480644166982860362871383107895918525713813994909800425508982439144146544484064026252670226037580804833445239262381931131236569848505068343307676895615968547609331065145656098211827720593975975495526999916401226394173935117144335865858636261821793790324810784166904365196387680639127372633039112164954123878003851910267585276568919545857381242772422170724681323692958906848894843335448607606713130127747157351125043340105743818628167573615896902648115365290613552815488173151411704164503555592551146170194543202131583156380935384734629553146970235932198371292520666617612494442728451342890886924259586272770150262118085299260449768991134551210072984577926096636618692221909847606270154385671672266158472510979347097235820123724034701224310732749540778524838727364594714879672602885887089948684009026097078609387882218993373921965404591463947824950361262065865159563768364933589980042466813264649113362218093759739613370585163091394746650293917694248639556828886446087472774666090278814152013077219436628648618932092718299651654185976184261581434038747999153393388378051805450464459715596345845993495666988252829628761134268078178651727515652036794353994596113517837266227061984765992550013679174320308701956603440474154902336207515378277456951576034921245620652407276784985070690457158836774322694597993086090238944844645035071727576551876660631961294056203744371126188205244303345351261622726031103557786759793707211546317106003074193923484369540693212111850744548372355289533086595208026564562166147834869726440601937089181472693743963769166403101512983163390572102133880146769836972919344511704522863223883251699068275798672478240810469054463938434023539108614632027621286497804016841139017964297740899815791834529737717690194637359009294519925241062762755558651282684485531615999658639933130513680234322553833680861880192526072914188679117063456291539377256099139749299858773248637713524628603291149319439928001440208379898356591245662410606840642712141749612176885798295586247389839875323708773788316522750202179210998183438416837229139438201778668112683332173627362776167090289023428221802562412557128619640260502228097236120032105645984432981130830825185193980292989651111705186531770609524036472179091180374252273652548886944615828993813499583995346653797007505609111178171731142557637175312869337686411199545062681902572443273735832708333557307096497604834455766017998800381251145809982871839391955895915993046389199807459875914459387095586445307922867161587455331626558815578835404619638639191723859549863551548844275106040793811398831432599636754584839764808028117723363155797309748919867591265695712985030502903134976794047137988112471872807363701033956498563221766839893426130043018017575719964582867394001852693844041333290586402639432454269213468856463127184144962121728142633730210693876251278541276582747510855690906595899757762449342053212080659733780204982682490837907845847925831209647263169165073895152452548847096016257048110050988841160971907766380931935369826040608448617250209333537312652755220241717828148685530181122317900231809695044595818855778733053567710221059307051275072811139585901402156476300103260686013787444038161848133109909304822785841601474435284945757969018627301438975812031652133159767602364271233756610543116024700017623703000406032912141505347619615013248031835407051496823706182910730125634536125798777806166466934573429389681259748623289833493144313296218287165605214883497051902580936448683421825087112986459186047719316978575515389088129338535472549747044343348447159477060884391755877863781101868644247893540323894953622184780326997642659065705259069153440456613831262097175373086664233122000109821570644757401106747228191715775827636030588710523199324785041629357387614734229545824630640104179836406086866446747035597738905092638942604045274389208064289165963604570702935056926872962357946593737161708214042231472679202002740994327463209262778095497007186105601201250242449253179918642265341535371470318765768443105925088819403179059310390486799513934287600345020114289627353863499297548770281367875534093377573625206001515691804611324287470666583853173184285543601007721719738724548938157532527632185646404896271116079629016722390917180140176145482454078356544299519337189669723487084920827132383401176989719681332700291489652340785990116672725668973420211113772092774260741488606016509095074149282612643448040670978458276750690205000250040934514731571700250040052497081329459114275379306398370558429725106183137470978061620013691480908236627528163596246480073516388106043717269877665456330188599299773345291414955965041026528482943742909943073567511702769836004003432349056264325889802345881599484249698515246446505522599510541383302173339263764948304440666170109214494360144329700614674361106578470704868603727250641091469171391271556597218488194679218491334634353193408789078364968005792022165040457689043680091259844455891303711924617616717312226078577072565973161727979487747270623981112415175362599942475160237075757842587808337978749683802797629399568732086098061768664159207553975876595436698823847375994034464935659140263419759848937467885734681318138798674580468331678807794911127856676770292186599134136714249396430953029808670815585698421010774052402484444772295572678925637092070453822354806693678184404282607126419463082021910965456055717053213695062194097322702268464190130039778965482159388224067418021420320214524609331715557581583593708857865565621415137755999375734140950095108974000184208456917176949562147784778504766754052889298567981316514659902467854952827266452116164670986469578460793430980123556113003802462004047893683404091938183748226393605963870749851671847518006463378839245972593750919675190505270795921524560924099479602438688678599155585581936337711651465037727638253802566943176386394951445852644412194039865424931083105978379312929185292388744113071604691105201062492419441318116643888603038818931183568958537914626010311613997983670110548537611319635894039178794297311276927416736077812214088613849821406690259219787596541192534452524713924398857292000608302973168622891044742369237921647149630822611452760505692219791189046972602902952345281057226540117749466404115461034796261567850333374361877708212950401492381769947424737040198059659995278573624568805215468351911104117691594668987205161368583718683077137065159355301201426777276335172917023138962176153965317463352643943556078590687364160286993163462729617334715092179861278923639050709321054434895296865661374377669033909668046092272272642038225777349346647753997884164339999262715825002619883164668973416613599397460276678656547151129729443218808694988829837537893651916391331858592023232286080078598655753645914241090260804806385711250528230625958167159681825579524219378920083948198411258235258274873256048648160839759329843865867764085617345062440129729288467133300925245480319129216491942732019002351624419606495784720840012535396625796092529489494402631889936445004529543529362833538805789145133706425772214705713524560998677339202903113046467441840247479757195020855012760906534452571594645250761489924716122310347219463314246369312293122874953513189420353316501058262990876082123904630742535220826387785216000938008689267038411442655465921482880884456623347588605075936739303852410275756911019112010787821071586507871668244628855149947400470477110217826156274692280629721932017473906163060872655223469554066220036938352764922544418326471897674608799588640630407665944172936003947574504532824088314454153573851401124710877049446071248925692668921800076477827845163194852061651829079364848126225452971373939618797974518748114811776252564796799597911608592576479635090284335187099170538112590345625893123783972615302641368536006273504047312389166256149524578389274373246998070413714156839615033158864144573638086656884979379873117599195775594516732554058804290405119089124381301289347534430415167996779785076612300982676925394114568807164960247812692737125765684870958358465699402684108765412650710778097939870546882668937518166986445485304621775476642748874619716120227042448764682439465392265434899802439394790094953836567004229463141420297832119987604060300093464047348905979517202149175328661437817859728871035867851252885178667692210852077857539378937910236869427531444423197834257907423244008035662998827184334492961604484565018053709151615969506887670284638957911438620279845175187819075428391813332295170784018507280748114145343105042452733240073944945737193018755759936699076364997289285596861596797024044768196271401132755329172315544380343634815793179840725412666157015573560432365523688527362198181296156976680276158329135965640835619475750147083352973910932931667282709618892253762821386501660100489169121190793288787155272699105043216307810492879543499174183543146773276718224828094055793193514622430916604470385548851348928819390429609866874614911620535812148859885633892067021053357269649642855152037717664391862637142635968146078557656744576283464264057632166511120659677069670275633487240378030389166234131617768440060450958103525778231126213609343343541616074129707188081765364278839303718727023295441043362801818810834139817174359326034025859761470550896124249439818502057824874095689637259062705420711921615687554120582659879569706046768087708596374866618719264042563155846140914119868260987342397546844526720713933966537058801022349777173027232487473486151242265741871875211205426117415533821123977710977253826575890554825469031405861726877395222353019247994782363916207560263675448016423358853588183635911122328084466347452263743208812293017369516253633963650988374774307838675513858252216367001270901262459452307891730665460913310485430783476253531148533290475015521294030016957605041454494429410017766179483360419450295002971650715576082042203395918915755513986705070016253171846887202745900312832271509082715856860474511800445592156824401445337772997965580006114830730841098080225317957932274506320710314861044499286838967107960547360882319426730971355137562846401566639134952965500343249842389265216112037705438558144950130577617418248765867137946930661592519055398828975734433280531202838926068729209787659155673856161207446817223334036442936038880144996236560853744544794932566479584251923864211719458810031735898066259816600176783338983562353924429101879868394155324829668212379222166623228025652051410875856232328460364752265906249011869557282848759523691276851196221836580567556698764134231190333585842325746299694581369082345457531476163078261713907281414605859057041100082642295385228791667571442643840186793071469793235462081017273494849843855693908415043687641714095745209511090490179073373743823126423689540071147787142459220107764683519733694063675352580675110570969771212926817872048588001538560666424887075537040023002418044040206049533035493296025630486358191434667901919207533657943461823277725800231097260121347275278933810688407569037446419368596835768329984457517945180707947445542030465943743502914496050545084283212352098484810544565140662876981335977365162949362087972414052432496292332077649209003047566377665069370371456094063249301350945591013052291433005778399111653776884035163805250257723110188509424424360772027889552529626622778589223601362964882053376540666413846593322411489857835343134178248413775503086277615303180868548709209073144592322068284854728853746063757034417169625089323990861995305246530663923130252478249514507864770941968032256245915068607333859765073582782599509211110088964256363975117896194795809492527593647455523625040683064763392759255780603475876355887289546806967791463361696217977680177658629522769516521996422665526527303717726833130914536674674780684306633075955761009742864199157621118881644259615633782164334787810692400008507124182384815048821852770793938879576005718965211840091431127706143219442424750152744736735705630586412554805862419712648345706183533547118564963435592156608470235986676973932706118361064892379457171180097238923496581062075392161619243364380609367148867554698566179697711999267826593585035007245267727192566013451377348864303545785561815529171409252500448173015219037737536287645231027232175662056034549704127440944130933704349293096182818741210364387194240637111195995652509633304256362478937836560545456451679070631910692708316463907907037316893674640377489958158568688486620033882616674350919818523599220138504611976106061890707927650587065547187713972340634624006742414622813490281745208126033035883681270842142642562447206692213490660719829589672509313492217028623629289146172580437375104540943029164047578548645433528259968198396882543081841292063095872044786711235627266064741703319968511299751932793042742761108093540680666726369928862475506024330998344873042317311983262207917112524071727627579384708677231240933268333235037376221169018391113435610211218838887340418349107811434252949428244745663425975187405908838159447341451282343995398346476893447043928074196183185276423078111824204583497412778946673486608002191448796269129518415047631195773031672813874931609424757708711713871022927854096422105694113352362777024988540022584410104687493061755521678904989087950803399242314120873060454797815066412047741355451568177878876556180986403894670223765546066684601001517147649865103701458906122137184259377169830896174873844841212885109138236607618880932350828617649609237169255355744726332612886010192705993439674720056846581931315986650251147223469357884468526528152413587790288004017683060407199086084772601001484321911715593910146881101533821985247505646009153409747731988396584324174181274173488005883795882116925641208490726685715038131675315327617534119317785221041158832301937759175450606554791329012794047447530588162381843707715250751832372436780437276292598891532111432392673262098700420172032997219377050246812587953294484418177792260876516207112564957931218993173748407850924098164683101529260863612683640160096145545744388522903994376778193693339430795437815201201079831583183037717406377450067578632594943748786975780930523192518874228852066023760384510975346087162491906156556021697469902132858570262701094008685170054168141319793640853048400828846030745804261937730004575662426262088273630627370561686453208670490087176971732266945783571115488151206772311714100920888115925793856001870868184101017509119783529431469951514164580844973129397552110919014503114306024942613508108945537932625197140281510370734554846295427817797637246203969245505608999561684163973417852136257615102829466996826515872199339674978117008885495839306690056569528110815820423022237448558139744663659667598675311823186493734661396295999082483511750330577886937743619784032706793011634806493267989467109835346539138990522414823905574523748575425142819439356577356776276963257025886261471518164791739487362013422975159516947684394521917653588989019458448215668127266168425196982419270330468036588637265515800653941195531422624607588563479063668730026980324084943259327721501744707930874720025414162939637999103186973574074910468435873635999019579778699550597427052054894537007001966993195320719171801770300318786774889441743037826382210419526242137038277312168998489719874231275297274602384271526055288875264335878157292884855851710573080555051208671029789651016252964281492010205140133689806203704651349969125925256618489435832679576286618132402926864955874061862613612183791042273482944581289395663717404863292990439493520320098278702361679009040130525686455590052761933140627894099805038867047063369142459955297978420657455798118348164318769697135194461129200225768742815145201440396664361349177895521116595963851075386674822118615364396569119186505268299066463724013307519905574680594001882622067830423599042219767205085054904743184684764819442785352298454676482645870841629735289426589560706387004471104995672845596683695497245564090744542925401835523164562240624854158079284511348173205568219629485839685951753087965975197773323251052128497858691799114084658232974989165111432045620271914404692854577780243100428977760469224035593812636574940821880934316662520554535986936749108595743807775801005002415925307819254617612334731812247222710372600536584379929815538277499204241748087723399699778302702762153209868986429763657742935969543306055129813937535288760663526072317801988567807446947363982718056264085783591433583515286718340492232226407429491011979057598405554759405278700458627135323489803064289842890962768939469618383440292110405726124034048179875123068353512107258252580414432335800124269990327202386464094896198002272081947561813228291073132345725680757964772240448723447340939316732603665598655380973854955581043235358022478186549511097321082915800424371204949797766334891008417014496674163290914820731160084684396313334679533170519653743731231926274337845086648916441252254456609779145179527114298800433763961477229779617417210195986842472037953741977334866540593183519136741433427787487705283367185212070871167215813787472664810863012595224121640481288012527748322366013228725930187198770199887200724000188672656534211000851839279989220433880137435899264668784810838266293582401144139316528306312650602596707873700041786684708764100742850433420537387509517563852111862919527100875292985164210976958965930649232308848615171751421386151203732477682303385421892176047600522227450755780319520176773751047529632565542447024890768336823597081509192985134881837669387331548362914877140552412312738830413818603651974874335680124271554301883822876302809634389432662920045303532268727370457743794219006738331720822302490231217416525520842975933868365691503759004051309207211183215045186282587291552152354360645109249896126564860998552367643491232697953048601054408330533972308362395165835472638610931218419619449015010883364563907416685908717233795655126762733945713705281018248613599466225916021734336202056900440144014475192000715618742728977920903557127481276859108853943760026617436956353524536870118995572490201838367650912519208244235274351288385507920081086374669869171106709224720908521858490950427019952205105065572897966399069683678172787474361143664096156306318082309099425240997647833364636081313458241336152758603439983953187841534640535086924619139743847417679248398390967201917522807480938242512873188794808849138169026764684595553598593665473521792335401837188532091753747383722185991248393885963548599463641610652250980411311328728793364285278481161944564633807935056383683943076938951163378859784500317473164098419110896066948458230236338608513839554322073225538368624307157507198647657459428988878200427239488702775938030058716505933906980367278366737270581140461241261013921280576642792341873900110779828059524848183060392953548830339216276668274833929298398699500809837699369804210452335588499708531277830126448152674326298362662126359575798708786862545864852866836701038139291650477708983570666605437388611608645932359270075461603551083158843700243137368295358121166274450540819163112552647095139215356631689336229922144642514905633477469332060294488599030267735172514391922001488239538502698157069487603962078084217108102574333526106285198767159497960843279474672083811371908766198403464692708893983801702408413731411906898467909019099462342461985335888958614455921974964448246651511318876648826041107131642054431040513183556764159964600741043434531213717988560778408881561103333654085873457749164859225180345351933390962316778636118337810586309388582524366848825325250133924410891578327016896018065316382713846414813279702070346743727406221884750532283622949030744671673491672983652200662105059258388847209017921269922151774471904381704066680829994761456073682759506635399337660593918156746792066448346157097477317144478051937979537258683532617718639954797530909967053219478095897815763880885924390209394701504449131211275728275458311370617024965311470550474781759612404883343464828268254495655537557701230179940598930651630605602238211513026549616766273978182878731563406744370391665494740200525778628599361130714355487670524063386538485343717004908405555227855987682580849359414898264265504375697434324650737463351085179235588154465372133293155577019871571740036657926121570159011962727163070455660515451846346502849791803041165343034674192645205312477017077755254175281980437925845777179401092153722962963310739322180187461614409005624227429983849607169984937309455634062294229271565255624855073705637639640875685315551776592703099082617708371011616426534569371838974787774967809000410059070909826371266187644337839841133062554724295287730662536146524328230682951645034137860339241622734812952344771109685212721764935447978426350163863235337652058077653162397816524149234923479316107346365020857698101733098366705677222846391503937050201867108612339918106523316859099746850099827114387073514512443271809338633458724361386897571939690987750727597725077523786891035998546993319431383286809901035381187157518278543258578002992222771079835896757025629691725390317132202014672230158642469447332085496860707536764615655040995402278647978329493871027098984497220659622832595990815406437014564935922587044963545330166714683872621396653165518064745859562008838259729026691994419030062610578297606221364834765957498996829965045938854809303948770333953216858290448781344421746305233843811008703469363814168688848465451084975714319514367081651957888157751929634656820522753056600522198963160597286014930245878996632442870791598179991054649097664027194512808664798725414846692777006617974835961279141291232427586972677331924310015141087860020705271596338966066885921408667954055121426302196617127152251974221221141671056433170699408731683474928221035510027666722190787694840221144581397084733040037579233982210157417369733225037870108256270217944046596375989957290882837984860723234091610968541778613100915496867149101419146664349753623436688172904178884544514933975638683447518893202500911851200248673930839668065118271089744760011514530304811308041780515354843883969494847588204082779785737281847849997562868346162771127437396929317853311123572591723715822391870120071799675206306937317493050026334847105797445140737179167069659238130953951590798500418717149233384917222862175896461125418186601345903814722344329323130818440638706986830885038414806696836267429137725861729984007383840839702031818797946905876209677986604087565211813296669630013135586576156764826973789605291548896540244011210595866332964154745684234710396793567780543852186939112599954649877867887091065463727174254651586032640455972511318665529763648914367267874942107767066247087868682149698053251761846448845044702418495505473853671798454995075588223362426235165281917247504480283869988474317309718729047365536174375714933154268385440229522241799024853728811598200361532082480753828923583618439693417065148198322667653944924099431730121593723004564484184728352021651723334894892321016854966950538432239460636833496901891927549866613618254913002954577233572191517297456935374972438816791923103383246063234332876880116582002557950537865151691899504031595663801620523437319378630697954513965807094106386774254195606437383508832246147011664533892040661522766670085215583542161394618140048915045826416475557020817098058459495061755569330415465055816309900821181321120380808100943187091619353854783136453069953930079497805965654330331695783332043138168588696313153860400678173044989901490072390242819652751312759991396069945734848232658301495077868542525446901748111670038261798798380387431026923844747105487276071668091352260442195527953259365233267428539189662731180212717111848225119868232695762471572868943318017152830087359608830483652444562081770584483739018350982146301558338636065761319209686239209775450854623415132590204994017290444469747141671051828186174261487866277541348893536919205369814633667349737252236847875768014487182551062475016266352724692859017982173555500892574186706554399874450904121485120379424935916225304649832474546740277163714731549084032133151694250497497143790884468326275315297106962624239971646047302980934700502527151116021532186717840060762842853674253625931266166165707402637837751954846666222849362027550906016704556705506045411475851951900946362678169635604956414528322588087066405322188401447691869136167500585704195406223274968593547642705111073618643349849269049845293819017128771250536001788342891514790096437250865796516048684262039033862962209321165948718443676618192039389164676043611509419476191976826324446207937314387892618435747279334428513534961075665527094134987213114896855408202510362415026330249123811820770706819782942789652245419509144288650797191256839933219727116675592593596527219744618323369608818878715837504887169094879972114704276319729322011651074756028661200264618486950166933204933904343947732414156881714817308117416299615720800204269441234927704151188731852631595066663560943308666291787358841563746206338704602927544054570046064194847511199035488875604883692864794734682440785677235020827410889009181604035543140269615450093433593302126561698005246919603749827801400617393768575033113717252254511071148750565799240278952876626546109878020187327648530891023931175176516022552611193791620656813371154146342704801685125846953081048151994561526500778821445345832101098869096006848872776136345217442620134721826443441399920929426833572726601154061095542570035496039127066459123845004747739981485870925942103240018253032129150685903516644817855364900808001904079915894335273092097675812245572902704652196341954284987987151034074104642776592818368563376814263568428659431214532307622381075436923512686344197493645676012030809364445737083425871479579085320931425333766940492160492248908827796335221106994395423264898356698676507904959060758726352856056317046103615914444068233559656927551859296104283457465362586593271132553843424365746204248554655321482516197700985852811270246217503866956429889725895961713160611380334226337904570055002364975896570417505741446212054712079418567639546094246570700226082964856292137862654610847096470993473643955650108494552772677499738734046289045470651238361257365809311274318170952626116905720141740241365171138010496718850825226737952059600756155680290039600508478550829057498325716801218533747786547743065208076331518142161263007496562452355005346258162028473436855014366603185139152404140916378389157545553744876351614141904140853485553504033382255036633157248808230363211369893720824046580883627460902288458632832792795974381317653826149935505984439637110453116965686981714880429041442664449996576244362183630381966873143701234828730757332742384094955044526050986614883801228145629298971626703468977152020402936413862427034630032047256615899207539727956926736431138824572502706692522895290969670999209094874982579966725023298327736168621101001522688897316518470863357009909717215464329537977921951544956304632673817729797717593028555712763311695715971562082165632317965522502674008948962570126294397317143300652082484032106576443827619878378558495933384835422321810632023715821071154589592511461121650483528313786261941923865574895274944391660060063402877539649204712584636794035936279281310037076174704620700953464437853794078995129029494799982823716787867372862995177180537710004974467639689524614921055165796720333162127259156989921811711959672569484837110112540289849404268321457300472633694675137803827945180281031430565172028961045165815660477378415561999685199952398746625375210463954488015263389293946879598278074859219807974189758915581352753135231655773523812990205346513069442133803061552758609212264552414260250968866012174855234519287538682213608653798861687669774876081556275929181708770265167700657041826869995966376842971314825285019882919181506104344650268375870432796830265321680863074837742047087823437465187881204682230356416682089932774111153554734015455786012233624122528375537977604223281250399078753616961165121755333939964497848444718752750708812141696235499497345397101977541680717863406494851051805178926259697239793866405260095300936034844204867018487707950053466857838576941303229718256089243727969925635459406255488991563551820676765768779917690385307334782460770176296626366966568051847836954618032234845984346241533153563757045485157835415730114905435161274274465247632020314150817046005248360395074985498403261186656175948083071353983311753044716156125919556383198501209910265699887250333535503555537685418913910660426551023902849188286922071225762832820556516369127028510968181284315805249646072279752859225982768191801598351457231845375452524993926197944320141964466030945686818052891528292777164398532790489620599059994016917504722356112729654517855878449166376835757567607566430190997100061168530488477892711752745741363411598229753628434731201178921276915288302940063910565362717616377972018671364442636334226743750233682136337414625010257793959014888132242018671026939189355818563485008498483790133061666502870757039096916435256938214532789048724040004234758095635175836348848935386431610453022482085451727749120953803484049255224954287172257473341766503674593200406083231030826657281016012329455699268594095645111930680601170856378476632001338227157686655792695686814822009857652568082919172215246747761302109244717964780929226078864410968505771626330939429126900328400036179555218433736207263393331895298472431403169777491823877346675171630013748015567715315804253384826931120469680621346418340805515987751330110879079927174627298376163597541191891459468816682229131531201235837446760008398159511618335053060757965619878853334964581682813760206841302908961647959547349646096366047666696849556024735561795495776632153017077731636295040721265101350540901297828983611467724644795754674214505544361836393537985293243724611383429114863208904784556854818783526714103487165532773337289354136522501475123220899233616428064849728324356257673534637315582931885197556120293454265716125546978993282341825510108849956439494799717275736598710177181399163411644740116019768230002355442987486028502159342759288205598494870447313602055952269284231663299864856725256854603536415948555379944543179814828992961210140049006825487765387727240305150513482792750623808242574094288538327125505587201455175019653499119789630652284578414520577480277330724932147153268153605361404965675779339400697498735757595049519484068246056026339294899496545375238046776782542724780568653765401156939503742027838620107024011092616640411815422877988090856993796824535469250725039155177400868300394577893311192540745286189958873961959940360906353525504904185725310197154962038573319440409621945973942742296196790447759713111457611912066843052918062286539783971570207980618179144992837739592907988453856359900013393452310105604133697950274384214065154598579555469681798724990338741860684133799125620932283252472279949943011428994310912811775989705988961998088156075226663644913464688190667793830482867051281698050947740135692964881553740976795118793235732735603327416291566762347753266165659363932876885128253959831636644259810503161795600094194635282102830520715583255394534842395805694445852980373316846497947691640384158832483856801517137658734818952670472503856169641315647292786569333144244075436134773120902742768788736262829648214494726524743969522906021490471452237088885447304691898070854150769788459049789324612119524639726384181028060224586687479530996893309759743394343150054418396968946191058472383824965307285421897105665431114174470733416018992367375530276762134676059350003530825421504407639072234317199429713041822899949467711667806959238031442182273163099916436584647146631380969415122248905437148864518320220631688164194001767367727235479294105687992616688822162432958121076201809922608311202241418714296402132997372394851910183504819426183616305034007491984157928991589174878386764316305059706149894405881411759732628240850818278053882289328612710196954270507450956644754538130586697384701164201896420702998117475735983728284614553016504811213861986052666886236401643978565731438275436341447886155241012859274298580215906942101013310654598184777295241061686986124659194963154489666100092127741656294953745213833768658055165057332141068843997264788148936249869479702420652986260779075969947884390158692291609028833112763075165947393763911121965523303763143271622356703671497620991124993064671561949666445257072489944626266103238810890068662273793840965456404319455503585791181593036063770680919748010891638811812061184581865783146789638180007358913809216149272352503667565114966499372167552193001026422614358043233168139489225085759061441934926480978373245562836233892597115516935186664025748498358860414768417688488406839434586786616274828328170495591491709334478035643871809252829617868911188867766336535608233950606237860363619182595522150850380700041220753243200325825393784681353283771178069319414466819972483609310675403436981049160083219277874661492809844888871861667527547689773640870715711093986064183585903512431049553682970068763903966449724798813108187001117175784168125528504117325651258449182110610690093704648036233362473650338487188298245916696703432684833099143716003721211814357294910145352061131213795477112670737120762743490691253109232025288753589760355938728376525699436955688011416179033896850485368324111316305483715635885935493563393788639080274743142175691053564257488370445930015068929549737021252588599609783512656303563133177081221993779144144855053009864089656437776765659738201183719861050009115320761464745339893499751708790926294212691023734478906359765557008614090995993957268853215498881257651446854037632743064812720614157199975863683719905600659398107596194782100235576451379709477160086511576962118432150237504372712228585532195393034912158046191180119649239805578919236853431277423967505641591232298818637405603491813906843419595824021824571506238439848441288681682767257627902744536965889308174024175015843695979216590496097105551021803174338808558580867347099777176435544759652594674292505218775709584804546380926881762740357140724974930548612375519768680393404372624219233756975045233479083226217203715325960297640933954029141744318840883238134169223848067129621243992326033155927999681054612090154849060363730859659673353055742515149701428371962005240613441287527213212700826344934841461584648957402338391589426480559675669118771384969686204554921915330092141476559302900596380701229391083133642889987970646363833663308916936123509617804057113491125676724377223076202762524176657026219777718382810444321756095634469063306366074161536945650580016445469942533410031350489040391836238212751714078560485351450803344137333049721602673452226204568493310875841129330294915464631648546592020667758649529213377853442718678819907246546489765912601203384642163626152746150198020312005979764890297139566002446260150699269996732176469721660167281811977800493696159433964022972917149783097195543928392411228219673720324996779944682249074574364163901659061838101353967293085113289088062161650254412944425450267807962687258231757984691179572836313994713972306335240466019293480860659394232917215666635511702600006679905126803621421609628892137075723660286256320263344182735958355848988756155872646748330865594508297854311682670895546765090524728171661365427696343173566597971770814631615427296673293162867690495290394815844574774354135852141648510912781364745441152838732870430066136344415372287941553421944627143371207000778445665364603730995091367978466515180259974573946196571672237565667505117856599452142843380079127393626896690072020361717058421635149346539136994283997119696657814258348279569922916393750560051825199939504094735122556751293374445590445733468789440530390892436162243777298269223016676364072065872543977357100458995759371536070442411541198469262597465653487836965567148018696272340110850660768516687121024230587995929747618960464159822865052594253311983027320113706684624282455364577801766679432351343363502119783169161950371823324878221566337010898678598819301060957116849328257304888648586671247203699363785820724449178034018123362138883548399447481351120359454439797430016478486064153758317386905036772473598789996387760147486788474808344978569467349230655183739963612213234479243545217361256921352913427775801812481486406852409503125296024121898314136131909499157749634757117603418922973739400773375414003333765698860810643172794103047980853581150116449642360245311337375623162196080244687163797182967875219205688750774917313703831480144487964883886114788305471510512374495289519494263162326920596319250548192441627817958977438505933466509816440320025182747504830378447270019246039232135104645264804184290444364541525508576467863705644853886362648506319505804712437408768720359455086904350160145984854640091004085677869991974290624324738018496371023327331848478369729877657305629947629161032472972154466293520729233731687989887990717534142320784564227836448930643829874194961088858479562987872117370134997982096642086345080875427182789021177113351695433644379938732597200560448283688004222871987710846294562915060060411628167870606034167253862852397679703132602347101689270626587588263269666831351009027459209225474657135786932696808747085238604149025325002892516865128046396234566120736815260966859107991422515272101993659284590495004181160959071005752034615845924893339982914144231428297268098037470439193202429888305022266163670955268539699298075580522119585820634388716801872602511269741250085311279321943197057807922846042160572261961260931578858903695019259563290126312041830417497307962235950755418231080935784994553942472190669971191896625940369042038194319153894405668666142307487741122748349533319881193013755943337658621196512882676860089976741892312071678383784200145189819051388735895109527168498881603697703615047350671290509772364196935545011944929663359472025924469700678249800426412009108022274394573443028925523547766523476945142324362408363495420644055177121141463902458533513995351942067473908838286320069828941144506533642807331951899179254702184068373661395059039063053676365717862359840534788678318152731529402289850577029151322119224706697188985021335406366411105011250388251859008690612458268200792652503049739717799968609075782071788872084611169014090010078531357639380090436321727570418586855717565090575811807091030627248759952259299350189836291069042684003763607961438723448625947835921165566319943295523292450117194935360941670551900939937543172558652590202125990713530155966773521329054838828046890940209821649952722086966648113458980204428992498707570121452491519763012465536026653701662557632571622186190171596329690367384818635221267077033262012185816483340148649241894651938028338511629831695941036920580692757196055485386142043954301802475554413866780765940219470590820767748969369206622777769510774375322834639920444720573602784188329602022851231390154209810677904615129328424404088443235011506796461426261618665316550218367509955985480163309460407466377069708546096435175121643707161916983901424398437220260763974015311330548420126268105473653833231649648917604516428986829889508501219553467733747112787888940739252537089765066514363399437087793781157959842486724543473113933152213877901888478502212179946647619639102903704230689034170308777670804364283085771728242424791967644576629445213379143921544420602948992166815665124294232889863723445342621814767909940814042397178058832171974209298130051162190640792488504778022677083601665697967616757178659406316952859390112726574336819785769631413333898379708764616745057174612988991021445150304401224466174527653625910942545440360876671726260363233903782476073177585149293365468267350420461474187605681768385182399394119806838753050081701769257219074540279701225476052694762218573999982076498650122950454835147067162124363181591404469145612981809175033889463592205218475985897510881573324256147685318688614915004718121512739781852907774749598407700739555005969723237444128394856589327892862866356341039030423124742086218593816410140329751482174260132616615589292045336378219498428280788371771726106151405671227961298029220027188549709510864630098084589616343187368082037525442259105580339742612923955916963273744912738714968432288570600477363713029061848606526811592184230458122973832786136300872762592281779781619358178298264381616713788044421838614989988086516102473639350023352234211205041298896249571665058823019786046707637504804400959067955251375855558993752885259636906804090290032107905717128219920442148540611477074139045475528601877809559149551891268269124398895804756247907891332666633774061846052869134612627452909123924640652577583193592660604962960977394472168931567356955240078640300349184669798438004578921161180447717349496233030007561738834624350319651568736978285212767777741534902421456609303607029801304963016882646494461195889987437285377401678985576304621097091339255956828992041811542756614751310131740561775022162473157603496622605296588047397651604987950754208982487629120430356197522981141635262533281640805758667510768809826284603046177655795177556649416367358699450848362357798794994303843327614400373976189161939265893010093793759803060524466313081598813224850131148221716084411393507090059165407261385657697846677461582718376636076347680282732020391532573244808364583533200251385305074429581457718825263993967002257675866416792216845030420911349702151683042380644837391282792204636799557482445156861148684333085778873154061702234393689070799452405856881352232041292149801699434292912983716787214465999303699796574810055541576730091323302366512713333461696285956387520422832871349279511380403700042829323130663366876776284510871569219698043107272833512845632423280404812209189295918199641143721390905437549096903261990753926784074292114196496267165786518820601745712417154295011385328591834048617964395587344869178932101698711087286108376262487306860317469250218545467149041017231943093922293412831300163660920025498433054833971249280675573705871970176708970406050736957061852428909674167836328559908805329114281977173296918756034725052890346976974992927755778702490811090772559266691201375505317282443296842062192619926914243128760798524539084718482737185626693834191394622788355203712027456256712060499985639842930205811520434636232757425310910742480062487913965563463984147500352601621938759353789716979494410365925882676529120068773943828414019602860573499983791816790836708898635222321169272058603446751569140564264886075631461724647483346976691062568482906779704921857464900328060986769278393441749322874035635840762012948248229739887042602195559907397245227414444930393032987767977137081107862525502155687533636250525157524939056831312883956070995588240596885232153808743152796135790718691711559117438843638930966023268977774879886087262023132909281557958973229849759525110586883036669893386712818783068306779900935679960583607901295862456453319618769241433993709401807878959011942753120693953868792803025843793754866429019551693132518369902219374711923483674569383100378510546264950021772737809688776929698724870227221277918599406096386274550465341984253367608877926129933474636272051799292954634995766326185620804580997897339959269899668225162452860925905324829140701036397419174095936147982303641035761762588123666076304793873336198130621815487971556476006632564005685275076109034240662306771921893481420410481789412801112759621084806526011136946081919963364731728694955709984176421880898103560057136318887468490291865932654812234570166472552159905057198587892828486263693764833448553042034268439956069492959348951611278466063835204987873102106734343037823102750200838265898831030660277899161121855003737252331426243633639978248017611949665268192100779455465411005621227343900608887415631339509292656837688032166211794657852046534744520605069849677543333593500546696536232873644935692527794523205058867200690649313112847653121840802718728192917374169282519124727842141027419130926772740817177322524628712285853180121380750661709084820412689968074915535278224291568289746133908330506603647674299916993018925539782854436431823754173633173370537876157749622435318408162487298465706843898564946146784239851991025859889945978645530637351124277900182474713335024700504330785117607277724611105815194199052824277518597794200515012249340658528822578241818243094691004320485589305949108281312093527182709097341807940618391456323025958512984450632219608333936133664221167886691930804270033170400285038301332623953901781613868431851161249768426936917082195408444482870652071099027814432566626211676105746038472851467841346063373141342810509596866066684570686354828244959304421197214704794895953305061625057039867850137964699645633837628840650949701923250574625560834580439889345493707050559820149937298518676603046672227730346487308670082080422491050489643798713773741482135418186552548549772040364708450913163089698177996957492285470753324303442413877254501203079923952233961417746680898956848279246522424078959000934883939355636022424500427096278347790666323982947669167523640455695087321244040836658516455343320493202603234124183341042982957439456684199169220376908657435988007726520938696676901776628881876023987961750856714738889921745886718766321936117273890230247907412008145353900846122952603982851913508722962788794268626396213769363746224787283734873246424293249951175289257450455406553841661848486468697079138409332876377447347444888340441221147973600986946080789602021038091333694218608280020919114769593576466294818853231760756764509790081885197431318773654404000817370170021990535910016386243631659908177102158603146503372497098080288019855586905578955653827128079753730860993113253882404870860899803650264370359349666425025888222211393656397406878573936795485935121137149517742332307026874621709331942757329035249113197256613325693667416033636355451135382312840741361455264978488407347670208623268726863278468635158661077479478769515052254012120136658009532849662560724308649337787395757454527465089452812667686200218623246561732266153767194730031713288261325889581807959500909762846213648008607593618675143452341481977048623223844542277965231212873437785597420897033387603149576779787761231634473606343326637579267969040999880360107339328293261056192720000573575744379240545764419697494268092898909833349234917175822882423795449180475868278681351796913528262178849861308746051728160415896509910789600773465478619647427085541857903612413397229950155469580568176502313862015186293788353605306730723615317032018015987041996749144765319869454844099128972544390248213151073144266176466553442309664350162820327512019337325406656892930457121198629239714713314858489122423593375731701327334842133756188458816089758995521436268242533796652232204520635724371879823870629524797379536302251192904853143921792139646510894475613015862726013841556991848074968414158976306162206047307650607436484450093007274909066953224775755670469339969440548911536607706464007365174213918129581032013034772445888536341528529699093357711493239444319705412192925826625095892205232911239284615129585938154357680760117084118920942052728696104519353581950297833692254136354962676237298099285045650787981685327816128664221627191869898901015686536272753782366237928135689331910066870222762688528510905813513678099728882647785042976011543715881014564936546388125285930176146749088744279581772282116256463095309335028738612595144038567828884629726447406925031088401444488500611500866607125332313158001933474115500612741111964515155635814740549808785208418425331786426953668531221238628430153952771759094350578416076477600323991503514955188502706514283977011039213990918138270379404806391081539226696193113155498791847888151454086504936108201397904451689528990215700583995594807393464129339562068797140970361335231737677896897476747624202837997066469814036797679723152642314727290060430426603001697418889207485903567901259390672588474549748690886700512693317145931702164108066672328452004094855866032462859015553919256655492644550165058016942242177065180666095568062485891369267421382277343502219948216059122209539289330777045753269264809708870009214559340654781808329806635152821122417352532709027913986416421623277184673591855179039954236930541957048559074554833317058418571841464118606189862285168668251633611780031442278108154829314423641476558625982399810980242975444621699045794559117899764480430215324659513420426146687365240805804463966785851826689814391624781676408075554640120380605464558320375399231566513690042544062140955965177628714202176970645446491043986806584575608013665360262489633126911974799357817957261577175945116695040529460485781722278873277405477835937965577253043986431642168186707262195135421023944469045213314317404939284806729128609576793870282913315124484942536991291263054873642480937214177337691979896486520645924490865510085472143592494685718813049778984920635366023941540426695915743771469897308529692364298519860415378801682296070706886905050063761256920707976180195141005738817551606817624113678085015267380126237198697751820579559560176449330949632077014671547609727205130565891502308613755168613379164508625165338159703144078052808150732719468659838917231846215917949286728654791386602666969174685293419836386865657923582091485381519662011480539055683843038656595257909466413031347499679203948360275647275496600834741231698886865639376898254955282863556847037559818410209367972640466005300721874821733302779572620245728709302548826301794590876544112597034099186380378366744986159860777636089636082353657683702491840429639335309347607942987020078264636894700493892167085237759097166455120765286337830799019048491591021459191732049712623398932683498698290587472157255177892733355848653452893068887948232007664752445538616464595866195318061385365323296836321313250761192006711653204364106842632877397295926513875812923323332705807383377208466526677264551320255710463539326224438487205431481210783418484495648565658329566646346848976598046757794118432892535650622184638560672024166511511822085017652588350891348988210544142199651476226025990978432135812408640933778675633929279161099664687920857315228500604219090303545728398177499984388264214079393470304980609891519556691301710471024161925172818422356228276813980751929377612879083517621385932306997738795648017501492802667660159654583867466699019942102484859663069145008417340347333694007820746820390729663787421882354713037268767756299218730193107257829070857788535514661079574031703157912758731360301026927796398611675794311535234433835703775564499146943253780516495446204490340102112924703326654642651698710528115339050326515940049452954779640667472092196724153287318406420383891337796617816836667699047166147449172661752324968526920203151440122837288736849394261934738170027823796004558400578244915977702594176909530690837531577793606135091486819473786182186963630542187498023960371817494104881017504206844067162426803794375962840882967528071509021934880028653871677357546298124589153792651851022444618839037626228824512882449074582307096016935025584256879332770976442403086744775854853581492502876115409829017657603292115139041659717680180911868915923447529550416530788561230241155636882284980752949530401119231871698354755443808127633289964550805098395040538279114865303619911611706426672286406505344313670009185645104079502806927947359814953751039839356405636503386674693149848167283981901176281461909488623372820647071160270034577571054000617980871484049377819916117793461052774011211317754606009360012821020580191577559303257707971564081582677842694319950856456372343776942840108627607392010927142233726721828444836392090318313862099801334270725886424533621316738538677723600899671866357226179949004318608282698961795603778466592809950132349898871631807446932630915255310181133702942846579049311695055243410992299720098816670617122068210192860394303562222684008859842066502427488213371922298188702538513155568861583492234134425372807678990396483325786723293603363952228167102067609949010299007364560914017901470048807597349028279783448757364384224891659584863973198591790274143126562461699300140919065596355830289279442806290059490254428027312150863754013290873373348507650484908830870650554596255295726910467850880562728349765087560247213928745999963391046020698124078271257356558519918094192543472219521509982322402566502666441150417676262271187311485694195431437204740832847881086749713039339343170720421399561355974242677471864773354328166244719279038140071356352530760814310201770513899611363261010137856943547819965603674886645621202422209623016975236778694073520199372913777616927481245574087976095572178487855142595433926139553952321976752427670224050593800375060603433396466907118987584007174831819567382284899545439567715475670778615726458303730170188258505631047181160647417095911722585733929291534768204506771186478804561113319898037198399852792402748581794000744933856756346620357447357615419948354874910791385088229390306041585068860646346422181932222702014630622795135685043928242754891019174022998163761348018694426530621780455324359081273008430620299501513491837832794209387071558558220558002683258745855710298844199161751414169943441031241968938474983916885351593569635950833267524215223203385656671818479028205556807820294637131094295350963279287930188785855688253111382491135378721703177217827503835089587580904721436857201604706880782596750708255085872375575320567041932353459119039640351592593344914472216934573338258299222249335896121216108853222813455696009815328149731491826782584805464011837576955816255453506007425874896971112445677798631057841630208236330578230957049530936463807825228381127279881218560065650594306651772794776839157477691075701545458737694155850380111850849234524930451266591659964588347469989141680672749755872840155714302992119503770756456585918504477527603036465904726462707868745591519595623961186019398218311042295771788108537057940103595010555182281068224270014410346751991494410143119434069964690028266676198898931041755825276576693067528845820656565111580059004283967210340718005616645161841458091095464366651421349836347878037672983329845493917743062489985950827434793170845713725368206489261507569037493358049874802280523051780525955314171139353197287566558764998141621181901266634532937167056584213090210805323008211950466002606839634184266986493573960869227874207973361651221888485810773392023274756589983790936561264893645099309255045594303093098410888057984103506453288266546757209500530459109016606510874301392016616228009685396938994765805168524866733740124394368027259358241139243766778910500726022291403423229813021794469796919179926940057810053407082684411193434611279106794824801722503451765655814394405048136149628886519531834055503018540368473591552404154515334086456729622854183235251270131525404117915171263039970163967657054983424343643518531949805328831227063571616746648210152942827787868393261142257028282924055577605266863778133281948816638077732439160386221696471044259160534675914087864231472707987196615919918369194697082947261938211983319858008832988285677405187664417730422831346942318014263571444884751723753482449558148614261870749270782849888126804214369353596429229259363744129374576263885848706547376807151981246074624668274887958648555116989749507023165547263938644288276897308470148861425647722469049610918607254585830684031539119031110729162811022624936469078122128719720825206775043726791089538390643334602947874325390488574459256615913862010286602166856826439516936388713871794168805426236051773124370549822544802533019520117388067884701789595958583568485791199552746415623161117678480874383856012450189524684743253913377013677208252259292136299582165464560832560096695163087589589787418415456130921575645314045896878945404180198373147234649135888044356008870109028595512461646321861808777007832664765987033105023274544558102991426876567057114680810148962470052328655198632119626960917856091356265898026336754044725224664631388297199501630780891943476838770562304010812646662333853510700222341384338392383734573671267318798836913146041950464269858199667716444426036570195599738545290262604234629511545095253694699623036921885027329990259885724315188132501035971625231622170087661401545668338413229045190852999496439545517683059500749783548801292243029371198873588870866723390472225904081438302249203606995828394099987338878135890979268104001719862537228629262447933879775531525983525816834546778542052650683895289003974954751588395367496783894281052602941859535857489234662095229531177579125792551229301067762964258472704325252671988849104208486595210854980854379055159604187801990464419371736769319162069833787893678662926671954019270069449898990577859737494284074115662793879361182139721537982271471308608369464540071995637735439389976160181789155139257128016204234662879655848664847041413174477493146784746894857908166160505721147293044299671291946916786943688066033276683106312437424791348896444564346668410854648829678512364758963056607986292316684893352344317672219783857409513159097936159731178980348147757941644354261206953330620953818466284597052710121479937235427910872610016323971514270752572675441004180316062357348228568961928586351377023524848101267259322766468336886639810775532262278536534405410140350741306913385564753814431238115053558865931795848586903114161639740000119222782430318338121912199321261627946881428324169787874275411896334284832841006340734894907973085679743678836763575511059604926983290703533467435546040259725727822263837995505305083501726463293336253447703815653477010520190476039410349510112493057298860028270307048960207471968605039027795460597890543598382861045073260053647084977759656075674150738715409579546196074207430980702011965849249590934913533732829098973125516474815883590041439057859050625820072638656823421070296845309551116590224603701479192933966772139337674888569760049238627720305078443420479158827787481996502450095012035677595978227656680207077102272179629538784888305340170095976096078357594977557864846561337369168743783942707323133778736923880476740451297099361618153725424932306716458772273391207426576770307765405074272931525036503416031825275685923681809084016072885605972358142116745294927867544962429660343384912758839846577018092016659621226266603221955497447779850016574926370076524912742566410528270250942709451255282169242295102238219741294716451876748921432335908351977247284441130500461415116122975407239459325363069721760321091267555935550077543678715086757777851182469426490166221102179360683082546406110094137713326828406503975181510119176178189225314798170755512491291864459183700748351961048294685023321206372830240221322608860925408668273747123972661768954955940166154837221187520018128491884315329099007695870073952992894096790092302350241346934748710164831172189210825009889655570962710282437317974879491417753588635192306977458811306354718464243129427096955018226709311853607349751415410387108707731008007186707582164050346885023718132906110570618806048436175972377598464963224497965132817462234316601584308358631170817631015171876185635805431529044008568825529719152723662120074526530474036577892467532399397281429013902731252798603142406984574728967390392701672162936637989652356036932627188391480781664882088824336766013118751775517362172270610126878102055712840886724839867494220880156985529908620949739360231785053197611464576636894306357849986351917238260907823338067300293541361334702152527245567147075400712127632151420416768985982535916758079584070213423713377128854026917938720330940459327959368623874710190253306562475985005263339001109931888788170394115095347418703637776597949333317828303030385074996149030322860718066354628891795906247684320146877740073978135474613566965256547866980887766435127708589543145689183165197474699337748143590040111513224347380046123417042162888617087022095628767987275563409369905866694769618755135071278345535134363760665936503482011083578877280862033872250246019321313827406103167258978202901152800307693351672194490806718527391601039058758589402749109938676734698356265309363289872697911357387918606256640156568508731556959797462654625307706389422410044130661398289361057711723337705673650592679704047054219227062623440349435956926811164523760225373710932848191995975026905759897101511529553111284332622113155618132217875739234544519162546479749847969719178369008741632957895857878811896441320667297953451222865950068283239725593306404681582620808144227848533258489153984015292928639013951076714508424239223275550941791088577652671321388652476147340348733685072798454164776736299101027142191503975019374954146464317600453460349841460016400997408384706912742172835453765626574609624829225455137549748861638743897089933188878351995829347657519542910998022323012995368304557535742601795618239263182418551357448250498786698812242920108111580744740279916036280809593948377307930766414037054516142024830192907906936708542217081619569081844120216569459556122457160621554354590116299290989773612905325083465679718957290510434073532963575904456957139143218445103586553219431145424431813059620320500172373857024926896460787694763161230106920851779617020556529609466357351350852316774849532935397038908228074404153901706427735218113946838482069518147813275057025101969753512718648948814643037490835645738291206160380887089649186170815336600899304795917017143762136726156784982305518766784719932573833133436209840453160732997885245990156250042105311739539671126735321491753327180528851225214545573514427621932184931836191950596346614858853335264317505692871272942798639688287923043641489164583454833983012342971919770026714573848493185887685659021505153116283560103860289021912275911165593779682010232437793696676326241182883971299030756894596447599372205812901954087673907040916827125480723441035720397256152054684835950465461815941306597488729307628659800618189687862499681209024906883121235149672828524185880712992118690505113877805860857388523637315657282222657582314049254878282530091138703083355876956620792463185267764763335729247428332116264413136619041483572843212569265704333520065274307413312347216213224738192499419538756812306303192005249319642221979917668625786436387003909243778534284360676307504951433148319149003748731226701624110776584160077149185966285696536468493371601610010302181646619076036177812229779689308808095060568010848632211175752355622635425096143089412672760646329682576675591670744537041166178910829491978662626124875322200382953044080755099423598121363347770167806058940819455798110561080870605207873321701593775705820255881452947704883140629197174112972777149919930213802686996094533024542537271617437110298121800257890195888000894450890438558333482702179445354209527675211467761700510840631677078826517841441092002191841313092622890232267183269597257151364435641024185971067310827209970920975436797308688198562690018283290665122229468332913908353879212938270306886576293520805844187202586603811415619317285439365858423669106495499442363575322878644381988542080675040061861112167265721290852967756996729970826066095336225092809401018553181391538725935198402592200119341489409518051899451644566898414524574487470493740284279505943793221872077867722688066761071065733482991236158741974690584678598770877258320684943620212192809222903485824059911112095208874726911206061729996449251385267214914661584549380280708656703987157364337410768516577226665329305339664045269349400416904112872522283654442175948544900079428384132647726020907281320427275965639257938144691929086447135374140078761085713289873383288719868472071813897365648436040312084114130937049612871517719631021001401292476644799481273892778000698546388176350066249784221795375085920498688761601354202272353632736563317610500696993050426123649570985746747443729284441795274302478917859576968496655745709018784814477977499145611731571597004246444293602974313090597222964041370219622616872031754580079094014705680431517526474374859277929343347774064523481727079655819401242883171999170860265673891695141618683856058039166287953562230066048267765109319053831003205014000281105119913252602530492872093638130304200105325521141683584960030831396941861147487485392329492388212908373874027894923270516377472297260936726118401178198820452410930631430398590435203324547258389150085211857003506057104794229264246110917195337386633107439465972952232876370403227495696281833415276513077650022703569082599183682894715327865064816253800922797471861508294469987867918229454361518490093251993421286357921319900357619357520988774493406157015823352991020530373779351953086252885154734757188162259767160530490260153941376805575340440686724320886248495930794122611206424688884859543888650582669957562499623951390614210273674033464762665591305777803358858089358479370929014310263753025271745248112743719624868028818397926657838784751823325707824786057889167029509273745155514072007654630128745733379177201834280281047907027946100007300443779564093376092023727962300105894326780505331927955206324996356548534273601098369424569255236649600691207948404271553960085119273447288014745360701421242181965019206915140751146265009491738750854473613873131878899022983251940257829044436321988193460392871791635261239630683704214658417638432706974761826009679632886977112997250544224643391711060344054892273289922970082161174862947217692419923723516580721102164802626606711909421594714895411062661273428158960374446903850331431293870283487843972487574739767274759932443014089499521772975699457075448539572717383183834294676550806776428484912928563355367383127555922117063585094489345572723012494092811676933544074305275355796621813153867815511824700893256554488893090837626408999862602190965021620099013437326873458139487303595791235242882189173098527171728609830829800713448287483347431482122562644570929954974655578970223833452245612181480843771394157418489395799612095903940242297774440706880488399572730553664512010768005139217199494812641275176582692877192915049370932375676735962207864889606012981420841721759282868008942751256767446085818993049528209146812533005976216082636378176454163957852157341202132775409314362746436027197351133675649868166266958127275691841472971736281240978314550488807934314852221950366943768474700157415871564666016122347585132198236998474355840898625488954810109706973716019448640123177224079466956457279907141820656654508080677070247120676203262542399765382725668960899297097049784645469381160763456811310520377895154625450983674842252063432482046785440651750093321944568112177935647486625814328302152245663070893255646148553325789769879113652770335871526708899914442662885650213623140737357504838604204048646381141927445609218929288026829926416908557319727215274116794916618628543653199059257170087233572734621764423860486071720277212470877300029196970627317317995802539575297689200635966281435482073895386433100713657790684402653941287568599567323801017144707405896850528130271506449531647678532937132757351738028280742764133103851603168958925532106447935454966112137353751529603729083418273125101547295142661800734336693162113104920388489328656246301437971596054210194695166852430900827142428558699178172310025266328690034568430725897325744624392688148701956284668284906991674804392948655225039016936118359663313907167386035586287471157362112068267564036425289459584266458277916566889984802052629424499541185310589610717933681748248527155382833084155017179112187623722023250044221266388235104278060049717733858698922204840187682733421687172485080114664051973875120821143732029057210027691732718999523439596815908012432238665753992240094428409797670317589512266066950445276631725071084272030843427630830571373817778009588997592087591503925767852843665211676582117395025859681766682539386707886832323652361226792855213333311078023093624296467480538784836377045137407434713890610589893579775573740941561896851738820713774793705983091195900214931579862424972398016260970904654467982656455038423589215684885550970342710386917293638132970294899587895662340118054171143693824672122934332176309340895396570660164589394321431749785443836778348562816533830876605599799942115602256199308437367026520454305939110898724180693112749686340683832291647094330580356501480110902856651576608724857453940315641054970295391047969412977831251891351116304930011329539446530992203511394366135181856322985835034848392103882564591319513731021275631361642778248178751147643313476881632292812431677541780137116917278517378399941090303270731705175443470196183806561639605043372045271475721444466654765893663944966090033442210282395585595530648577869365083471726386475606973349686718389283969360247546085108475077644301230629972346321523921366673411017343341359904849883687622121290802925833633555573651567742892654371878551252630095504821143325040271258183372947311984334172179531206849164269584062903049154456212358009935566949389971056781365942562576575179410385848188559194380886258589084997284998865369901398771476339142172494249317984495856660242372567350986508103167061770374382436895640755023150692390949322706981129944718060747987691290380196395397628984310974228401213326095013941152764716616137627809999945870035171473922615960192342256571877421969401813747480354520203507633729920247233868824995019838463631087327709843011792515788288786157711525662904884654740391547991961702130887989724227626171712357418192170569222994899136906163834434482734370514247222891000809032650641620295442681793001693209394718756391826214622600215759958249797785046719652877122121865140873409204993514877342520679195914202208884973236552250649286777180764418605887557367688253116962822282150666592222141091079013377954362592657116390646159324053653213904782127588018456069851447590662858276241914356871855851086083624225925259161865760535705291868502239716090815608960628097131076074912503625693580377772229099667079454629754593057040494809157663843754430544164510896443117102481570797714231235933190790229229111987696262048956060968279152179391531831103304828863879457949139360952586775032178422102128687085072230519933832035659211460794520744495694050741925037046471635205449429561822304834066678732138990484160993672407807148445272945699167454619097000584840620234790193092941631701057917763095976577957213326272298572229427437163251415421529524055577207764471278609411879013853333871907749692611324145401629150406553253126298121395490523763690306848959967214109308061796390309922925011750701165155674883302162815860948101337009675827707721430894239689361608689493157619808806272903276582992418110776377642310244705319102002566793504783171899502714306751742134000355423136009698809029454248305664663909019610048120753218276897605373357488405945505962380964754877039435418318497739310765503390387313996635019374424477301183833826101900633824121289296924492319673068030434239893952581916400838075901011241863930715144324394288094997888338173580243520414052047141213798058571449388800740567400848408592723117746164988568054254095090658074946442899254435131419354249159778057528784692724094875419863389556123198881845150304684826914382580671501007171850387834325731789305694613396979008618798825375238028747321473893223993078956549960701880283022747045579171492656301875097118974246951963534724332876466433711378851917636945751777108351292273235701651078799173463406058574256817338061968317020980642164044974386393986766613177621381430508522162822485270492737563254745569429378647446317442610709053063292961837820363654678404614189559966906491934091305253101433136511229471521337502686059831372401647587006269161795056014012458349326380793369391767004796529073400283063911606771245411883454181116947290590993168580615674861976488709298259188894982080530347127124150475423792929272545925171094784205794471822295131978229120891371196885153102461219575644195703691236745531170328344994868424181328783774645750141997119002155579781591030382773145615474320624590268638560880005494281395092720086845709337664818622074144233688075672639555241679401842928432354690894485467679863683799183610050336362466294424679315048527475409047042069424511034580121124333434891655571020558396761757007068636611545261438382551329176347991642121060404996573184508772164109035347142205848548118616624998889589349613662176627131181297514878522413354890557673049059083442666357869259036966761829466653144335533097731864477008624201161986339002075570931664997219710299379688817997365584644637359018237469298639454956083878823202028006529029489108258004768391658056003601500647151265298633949568724745640931033233890030810430515300650408468269652504398541445882155616869781486643088780277682407586238958775454953637181439231679087399286128445032407200013019387618615536375206729478865291320045938379089945645781866936065880027489432441081325432207134241329428601608609648717726023420447539488977443699650837725628298491931295275226061538931040156557174628217449831883772915114041779975868153268074746913858824520638073304813090305534134110601733225370658043925568522853076572915076706413639761993783312946513512616481032170683849561631786023778108966073099224402442615178859291140217521800800523464545993725742327556660390594405396231825915160769625342603470703455807674543232689431626300653139325000286134899451685939900045315430257936860099846570800850708477190281708753664179714299383141006544904235469730174414933918403222072119060304627962578431799474234926665273741765442162973376586963625327615570608784444531647811520314489285319933521822353069334526692997527632069681712573303745229253094270593616780027485961420311827393846358959887876345021479893628559350372755239662557153475826380101479556846416087048022731728360482196388510133666178148131373777003646740508250690731271261279649822585812842894809031562511578286801205058891193029975119371433297644043502854096566722388920115815772122412029959198828692832726019564581382261557602758294263197985652689434758800852321544958589264239811477781207397748330038584366821062394257547087772503352361042721030218137752695237507101194730159734767902281013365358765962563178438556423668485041327344196872202450751850897552913291656334877338380127339371009733955650857397699927632852105689639832587348510997847545981782799891398022608364435844415000849071056298648656829464934559447647684287001086514949924506668216744344028918140371727062527193737383711297050135373603364515664632115737172617845339514455615343746675722911260192193686670002713736316895174494014419468200105968377334305885155884578742892415523539563427076124960247178999599126899806031627158003348238207862888147643334591417024201989910802821562152458817566199525581350835391301520450925122794081314263605456775437041188706402100686685148639138991429789653990904128300454299711887476896981403522243925622419801000569704139557930264727489790646114598713432106911610651573198239781744947465557184168365387056041014830180424908694379532449510848500418876607363709586924248737744119364857781066925616999591900198613041075916650894496970251629712082797793847025365602830393226279412686402238166436614842247046598450388237305290089614204247427545969103463168301471774668704925044657982164274084171389344154383087706668157656378509990164899796838586816177770357392156183904988473555942690343480302896625633961989374025293477063154466582574779555277869421761331772275336261776829472783282939738001238446333264689517387840074846410398420898046062041647476078331252592450594997353331431396550424538631508781385887867879992680881515455278704062400512335197319030019433891208007472891740350041749066717551561993319246673690914128923415180646588910858250425642693885544310296944184991230007925929508076302737649839216895685399774904365450796408126603971428303776944934887664323845291479316383983766474559605789753470758690484068447887358634578795284936444986858434103045424145882680623729414144196437501084806885230014141013438327416082534817573190746264445549735650124203394607021684838010982079748348647362934096433095572242733748638239432434578113426220127355889442028154168155546291644228327112460787095975654054016673011431059409179918856620375679110155040666027824118344063213831147299548647465525780799396082793528848387755886027139639221260971202652788781842867549890995625879168189227078623668201199876069909933712260576329671161684888742335894698162354887434774872803657242182558139835086020055998517285834206128856994712406945603091930748475097628391216445474046682078207392552531172914186602061654769022883222998123952866278990718433335263281673658889497684937351984694263200205524067985658214770631200949066846465301359852638432962729104400248059688193966326240880767790034227599867654959436996720885495850220097430903056173017958316389377098961667982200441916069122429024090356260398591088438333680534622709304947192668984275525986830291804083603769396638226782702221928067885904599320364846083459628943764499363536617419180604607012578322626782353227946768664360161137751968507061437664772543506713698775436135058541351904302272485873766492948166935503154362216871388762767123964425419265206402903509028617261449242158125590466252664752061387383466015138744096681467265505533074038521372939392724116533003810210538998924395456216808294307566210207760941399237574532009135964677489978093909195211955048510076912629158157538818238389668749092954161722032717191435800150307190876239822252812746431083461728204441285121258885312434603459762586406313357300837634067280242610358355801784588143760436951445456433347478551581346147790101271499383803704610755372852329561372022290019713814480654976082739804364955261436575325708504437132042989235876580316390158407440551366061790198655233785468716428204733422481464470387112097564934758007935363454499566448076130660780169524335955559224068451042518690080013999574293456918384534569766229818405492775281358506221015279113331477690363604988267292943269026987363691055739226201485733373641717547161503546594700330676488060574565138126262929682803552827800213360205005004406830868254205247840563614419980879719695835177369597874588812784869588326344059410834722624327760166994433711185122653504527005996247151840074665121602795219697132040372274658157199966529387252345114592062410555669552407087738866397317120956946056179850753736691289929219819394818914231804297407502318992677316148621703104815628445379521753376138460751702412538234340410970353162243779149517658857151172457511868354967103933247721622026992023680697818303138851090237024076516896544688338393899014847236628752678702286268573625390120368069929819564690893435254508200431444288843586405725451608036685135405756764222920976070391640751311182453006373436568935072826615941723005094600702083686076117607419856600377863190555727896922976344692574657711968769443738940156409217039996255803229163013949123423188653995670318756051475576821864005758749337401790647587914722900006513157277990319480417720616058420157341779025296133242976228262448186791255527069732671756918365210181724630900236599498804360124040379416565880130483101206873229008050717917883021019571906024086843727275091459859154937739064571251980673153134791928645032407062438994996092642557231093057728327243045180362447204879590304528685082604949195257025975095725088413084295768464047925529899005474494802206163792374452924671456600746319962856138012309366094582002741237050508166000155123835066114067416120546040033955042556865290583452985187668936334379662023185060003799201060801951361088200310241241419664419769549934096577088619675419309446196993055680703107519376698853370302172690060248761407558046032367608488296162500688977818408054705497715275587608847271958485330736022601713287956528459879313212022321756405178519931842779117267224571823572841941861160795511388196151505898200514889863229122124637988870543631253706228151689566298036196514674097371212768764635191786252820101201081439688346677798513358915119898894107987890262463029611361258840982532090476867459205724378358453715549410096446416439828989446659700534324329974008587164406936386003250601377734800284760964053706680574128985906271759621390113309098828690083410407846758457832156653196117691773920558426520441922577293429419933732705974833389495677440293431803945600233832059717228667786586085062686798871489473605534003389803656710970409767463590644170197999856105190380249822551632142296034592366116227556737806354361474433157511622953282382563121500129144886141291226891871294760629438037509751914309694631944818367457803952982121288046921059462303272563681000958833801430897677430339380265676619090076049274322838749767433728873081030350109201038872812385168890544156368643262099585343220905115153062554413458331728906150045029754526383373912390512765807213455688346266472703480612982365549196222602719440343482652337713381506306451258932069854872847078247820661591934996880332859964200268506276498214035183735118945086321761333556604730562020164972385575038540263495320862512970933809279502409917840048141912885063435457695978055287064170222679624253952276594190049458941634191744507816339238222721587441354087092761013394185289256772945094742433815959804368202285606624136694009751542830524604347948013416457960169880129428999002024776811210961446787782459639397966375732743020063527399187895128413370222462550788427982807123909259073144283581946193886002601367671032362666319051767475096416724094997406809081489692918508943154813684508523305643791332500131615194012758838714047740029067523305323685041604617523980711208516721050644138188916290829774098368726376205564206447661882564484396707515269071594904227493653688817571901454677554802851280400101287486167621106635880717100077711705927891955109753737689350425381933150153316995324241412893225842932327321750064832037528303528434931658390187287871181085708545638780544067728121717667698684154723650446591621235690354418265389734342292245642631163103231422284026445479642372104838468042213645259919002687902188198661398216604081099416415383437880958279049203963625056048304544362363156818436647461574164748732912941610596660418275960440947079230798677615904744838171337116146344365989960853273732821364304669521593318765331237426270438100099934785948072926342317640513771359951071120359208448368708305043275831771110786736083686344409800628809123979208006170103027873095071599924837794456446883994060012928605020537820721928926653869690540033191256520072335405476043668426575014289023231397601468597911759220146853988503649019263904167395160916032734898778646499495033903183876422349767228584552796568196521737686905785767320937706293084435572143920915743873540236734130394772558756976176278972640728704766173193486821752615352959305829781191838827568749291957365617380904452056038188776105117224586965951553911614328360810073758133841423066600607412586466813900971276107226396929145283696425027204160421905488704784669600562353888130467263389317955266420380275346321420057060702140753362371931930741220954469423048699993661042703523032820559524031961302532156116257473949315135995545111951900648018458079064094351928197221110381492543059888652372850755338926936909174867693398524432680191148450321926478768473038563245456833939946624483588007267329345605070872711633262452219690446788728756656352810134720248325137636889988034847361764833748120655731048646038687774891342950341487376705390924628455213946670711383358958345566252004274058093765988293957838683903556290153708681451307906161404882926931663446910419077622930268337468530895437403732072461882990789472682308095000573474512304713776903888990769492933590949767824962963002813049938653309765598324270958842359498724668307596399112104739820932081566674738417776697512085666200133847578956397592146127645890388063363804588047235203180987549811747124590309092178774824482636683524150641167159489922766789606546530985165826813088848042199126961019289219023676995422045196815394656751360801798635392000122206889430989960493304008625689545982828056260301216766496548246764100963927129318526711709476029277561616671649967253552464343643121782513005560534583383707370202732621755119703284604239429580729480196861951884478436178652829174649600786992088612982867704908175671067034602564215874275702886833313169831855948455065374666046149512429927803049007915513550689180457167909234385668256798041234843987797254924412614060639120598703856571911365042661695263000497663397717891893345928714608667279014964038723608947499768370043043869325553159713947081490660696400620562734571556593629089885532882034944103253792322541834771326529963323042380587605786183490111236798412681498922953185817025668779551782217912706895679287988633799551893677279690124372441581418427430779443512294893717210686847783407075450745311585169635466527765303265257591358160660965046570814883628057358288105193623799613483050770402311334636860664614571685008486360693406018503709105849334603975915993923572196976357850452272730606573211978359709502041906265647887430014825842672818777688847833027674584012178481885695358079061585494644644331218710979248407101388137346024791692898734868247276499185539658309854022971892558873101261432573514524699540854771795073755879071809059296684594557061733205381192211309648338332753865069033533375891646627902768782240183282919803630040079604245230116451226694841146832649472453201701247911113806121559464304971348675578434915071320836302199079116232092994973958469640438674878506168515713191126446836552152455703637243058441530616468708287651093017567256760246990539395063102240976345703964030648290865398126150177691051638299464440388618071802140221735961287473058004801001975398949536455536046202228728984257452646696678388547245019798136998146288013095441013905161762715587747412492879125690557428314962481530115656141483880895055890214301948712097266121837435791795711975787009026610520700424163880172451865924917990463654653823101028630152239838570280793789629429980032918486565225977426967801217601381232524690444176719678007124502126707892281663021471214022909167145421610317582176657226821276802079681685340872349956180686084193517902366265763007881890661916751433881959549092583469867643242166910688052994185704637798881092639221007353407218385858938064079827663235196382267224147715572219104700496322096596345670396972732894602527444088873270510837703684932063971046721257557753579583025635427230459027825252770038195093585654021668982381727889905900097913380801359031011541302549541896435781094986440251082603970080181894150541475157914677386299297389145496367574432412087254196529362122504235883897196325928921200192393841220268334520494464919848695846201828395330361130420632598055047583752331882361857869744670802698256356925238136093106425077693644583616434196292278410112695816554365463339898239080531830702772096330096204332925832542375681606988033532774960377994891272552006868028596459377806789099610409071870458770966962304403486430485382572575222144955370392387296325490147358493596131598777813908845600521536287250358700749424833715239439553844974748388433790143235266657310972447507338928691090407873547538015875517307557819009392124749180096495068384591211062620463171838389742263984539067099179860142184543935985391626177340766103509406800364985191061836073231445753036205912538316792783241128598627065479870379666814875487428868173512672693138524110409879604973923229182380597500774379156269438541951100336024770379818074957415972114068207479729500679783114256983138526110644642040986660488930106882073704923350385145903709157269994442877820602276681631839934121644567363314684710063748414117432139105421714598545997598841285844741337850907115978931919048487302495672915981967508213959930286706386074248782621450274083503150924609573455215277469112221156671163566983852895821903430868423426601172665871781200983309254836826181300136172926195538682972654341281637771400752647378997364175111060284947119276006935360519767720948114703620401907508158773310970644535591746978396944715289137296300261869078970699624787286763863921897911831309589218429913750026728535359814025346283859499677324824571147400453616533275760392281572825796294609306947355852582840147700927087339101465964259692123754343518135787198777671720596743448534133077126350724392567109881095006462288436179285676321680137954166763590584258763343756358915285977422824848307091890899593568806310368512192320316502227413360414433772202060097422453746053808575367079121939453400472827023697219237645033791577861056961872296174015787191218180844927113865578104282944815901491650182142126298220675769339842919593971997251356301969130249440751818322394320008408091824430252256503862360410181861598944986243227290244258876134558956043473729790055020942710481231604166622359629219892410873723374428490218886392112048363333698062612560740363484830275168059905152838785801520155516875450020314815332238019184581249092815943335916030989098912264804715979244163690589765549747363164960011375104385191784115709001626184437490795292300036325371345930078306992788636773960801553464015984071804734333263875581535691602730391500672612366412744983631057070075961601172690321411943109416899250224458360250463214638671986531893628657501533392670248164329148045403354426666285393775460480374054020192265749870845681250449456245056846633509790163888688694071219826806410057018062703673803046480883893866511114668783907146744676662044325115689057039016700745885083472861595568029285123274546123133623460733145550003519599566025074602112265195744769216587137738211259522429994113185704612622183703004131497611143848239791725660411411854866011801091221305196495889776090615068407630953052099068104246711254227351961231646671586873041934643190552036676130684255751047322628838851567703215904837314109615233098485871324415624487612221907973399327553787597159364228791425262145616200669154361433011361796352113840651966207412230973745802686701730886638332831771501484166624244427049792760774477657958239841933142252640433813540314787696917875554048721749000988945226278206779693799369687617012117512198647487086428954884630112511841177364321200434241416568422155687458700929222387677362357845299596862659327174236780062649376688916898323492324922311265874968622823168978870699290541005410830796140859581507479326254892589546381837685732043213367895913092398132160345796111658642616354985025051637246783130443443680025860430521010391389074399244271841225978190965001744964191196879829216758686130582053126518530537417553322063955902867240889661526406442854952297503142989038727007034415051400895386081726965649667109056773463899663729519392226079697839435257980380923920728354959734672675921021851822914130994643088283345184142288690174253490286665230182012471373335014811461404724124230898852848337289076281001555574308978023620521867809868885278551194063527797947260881678718511308813253982498320593089839158217917064780346669729713735981548580732762194244597585582368535305716342661575923781613073343820169577011864699040302347369466027554658238754991049867205661145824458375686613332228720199234913954460570205515502205594446042374301954498377168844338608265235256557165475957774030723678074496586552282361759180913133055773037845401695325420927464055600009818932018586957440423606346177696770994330255480037470052581034329742374244043085806260600574910904856170972290435643850176864022516242736706165246348971399189594604616877526908015164590274155977788325579038500466772228705467665031917204590606873450013526457348736147488425861880661799176755810063721252797016743616952950100705208273479268267668588622404524316467241405026207790363647295485202958371509454194419686860006748324280859916555219205855587478994147006749784495213939152935309514388289890497407607208397015885854335638855609754650768859809473947182912529110236074775239372368232825754720246141597749565055841065395765242795433604900818592478451327797824886812115839646124071082148312217959396670098578568265185072482554675007060126403922235587428939605850437809148552566918370997737934851255122214431660078320218006296439651811415992412841803342234280869297391716782181285647832110578001174284168606341680496658900763481872061836359552024471744850621662958396792717113445945906472453088992579583122821273714815127319921990140491413149440037006494954890372791120774757032159838609642468785707139692133988619908013757973427862333646939655958664097693713848878445329905806712036028105224220829628995720019696406087073350431610047948104792898180996669316630409594153298771187953383608635056626042265862111164853814953400185473002152435011273273071441190335678993741960771842726099090963800218924630787085523297040926182747877129846306173570183079589957506150356498078219012179361142883965238367748530728833527294540145937573626676597499938173224740002774753634433431338514254753353009637505621883466937469383823154532712384450221598789718240014806165499560308210227206958803557955050537806945738745198746983291825350984359122191996062707808549015651475636660759349216549557961674647300280932639050707015067757821756857113608608464272055967904957469985495130376286231768942005260951088191504144721755008892594881720352388514292667941933882320356766020064319977058434263870724931880448002014576363262075179453401238249158306433550500584450787733643340399710905571451322827768875622119457055178522191611470556193117742088696656840534498658944729322636011624477126484501883307359031360669258560543961708921602652903898895643850755647292429718922094773177154117536425480266744970756995565599014817886004752254605925702276807202040603502772494957922297999327395891724487835085471522711743612874684548268140135404482613633041433576747184908954252069430185767770801937869154026791521372265782626760828572807107385449361743993399825395710775037241741044709633614805813231165798590564680425077877761491145533570107975740058415410856234613229985568705722921979393063431464637646248878223960000236182890082392661744012264085536859659811943414455511792092477843270762618509864650463037156811962904285474597851599640803823800299504060157990176189864154116733482374992627357442383690814102366703692233780452291463883955311031110196516689734574174301111529614362731208695445034602343629158951562750632949583058586311338429884267905988709077964487364726247391972477864996001258791171342715073991233422751145283088009427216570089289798707809120174829792936545668180274652187779941087704020881639779698755592983379572785448548109944607424634193366301102035365821264818283356427304421691577690829972789262148893222951155354372034073570679696599854610398366105650299852052993498371480323353138101487695428622013006770990572617834258096311885587976280654747573665757816238884634584474637958136942689980057910421608065062917268627641188048344523238365160903870396486822456592828522400085185636723866838819821859648786763842245314947700954583393294245140432581677400142534957404247597140418080816118247405530560447352962354401113109367993153395646117042442439847682325410439823359186248730093511754339303328084251065948650021505167216018120545008717808558675286471468359169426182337111529885064116060729302103035520906635959678122174744647047320217697758228619665029073501356006437085474961384885106491966246651609188403114857167174882596628024513934718409188892585215564542668324445869452602566850354169159910057676405640444983193983295202912640925091154616045147514286277097524956694062608244451492695273612212958394881469104521373517579452027366054703232175808414759449566231169024656772441440464668413188156419690093475810602890524260466945685546342596395387449576273858878189894986473249902135514497723169703228127021011311858517486191411876756059335887134269290302701457582635796898741941874817360729990982201125440387851150864099137439835963150461467616666360366171636251459953339474730340533429733933510268542570944234271105242912806503392344802340203410496525967426802450409059800754368945223347199904569764985032684249931607826741204550409847058143922132228914095065101420491119315336065462341501659668343837851948801412287072296630283318658430895347782906174626629797852353163668850124910946136996768535951958819248740620758730686062334344191072988787510684515929333425136608027754230517431616263306694153002873779167585570277253423448177939635624486289318633469950694028833284498352713958661142403281341314617714837665310095233398913924229761428002691401744572596513296108566828501340573372337609890791094515079294423930520982565402167093510544652049872711627388419272351297620213683976066166599289642548000448224331649426278283245471238794806856174141364664842496877572232712659263016911679109356901830170325003682737503736092403739413546881641968684493807501490955824054106310912843822138288193973947117804343103306547756714696757436797009168166626770912565765320388114613622505130166735102583140200290593043331045324070461594792025623611021655287368880073783102803809310026183846294290790786248163267308070952632150860675743783206292417126522481074361094412184630114545289062654043969250465364880897917288695090452213862572948817276324093415950745512178706932154215092818093423102372215915212139065383428939768097970651670024778042202044264583557094716257946386033123902737736764406849443189363450137548419891801854713633512557342108020597736437351695670826819208029419595312739046590308776511123462055281046564732009930548426406760925146752051188043298595290897727443884024117354279632313407699137393383429670029125177935531109512338353565253992717093975856163570194149260857486647141957408941751808672497208053934447445762082412753305185278738486422486829364978397391900137348511338325121382031405655189319825334310696132751650639249109080135542962233383629019205133809705083976297413353855401892033020087220480681187518189673505823438489090042013165414827177231606020915163516128373452682652682985432410406859466285522020789604005300363219243059112558041142906543312342313626030406169258682444481917530130189428294115656064478655608169620761952071794017694303234911085846352702626968452484259879621460132355356642161119784696510135404957992920665879085313877033385073736622552480228606978068030927169945228084781328253099128747762148146814372318827371868355612866875724723177928891046147205619009039866592427936332883868411887190749942400981882808749606976594162722491463132109122701364438198785754442216631707337613251420472759684148776416840933676608197282261256880888836909402738207300296891038623284722802239615137564990091338215425516792264487373869820039091666675173856905624037961200687141600169881572618006468517161751956952410129337251703584482195720784438518248998277537147437722905458128655870271182668755223224710582045659392166323776395188184679032081324288544367986138785183134529585797322288372393057294841390267481124077518482357083171191755094967584339307530963115434042754950474886043157552691362310431209989435901723281116319269491519922954620302483843925009439721761313921306177674952963784686584478845594984938458548874556260407350526420701646525791710997441845357133851202029345395587113304855510943393520110086382464947684463046093781908242152416631684116843782580211288522872184278300379704609175198826756209118123113970919866415815386709203680292890696248944872963448756773014405095556933277983374391258632549681979925061049268309217403884323804619628383715848218168854240008267968743577199582769484162116099314101015812316494666402915805283635256688185221666665046039186389637842267577260619842750499767273125844156276726564985373044550289523208214478927262950143026043287713236560396362756551171485634041746659259624995756431977570502268751559711035154268191326816322876830958402917061063940229107259297203409433343236419913130319652988106821329009921552936256613451069432649877868027561175181315305994618893500067669353641573924880482269890357823607967789369154439246317408263727796383093198907607560497481106170220278494043249373653384112264126371076521265702860070762983467113997018966627651072867554519598548140898332815725863957268388028964837349201517795633600520863912560599885271694545786744667032489660926562119857196087980447639445451806686987589699259505508186449675833467993125764945075822193559891270370611444975095982371151666300246281830332777304002907303821680643357542388717093137050217835348129024191710899257231108722825941069533127281841645006505053737593193295559125033950285366827951933365355156692184761422836585296018604749948545287617176931513710231366945979148107406513068341068149027656154449791236034605354326136351337670624801413956503276700650739099134183494796448646328759827742610127837428129177026872240468556361882592539441051796460488903256088350250649613336953927779965305503131495407688230579884533738818834173095998557513618366237694637803306523244648683450153568795535013612737781642461430773017179895212515962098384156837733134657027734310053043403865654618643801749461406270626242146712701605107768049473190029099418367245728675686512395544809679430158327697320707784156550197573478242089322162767825861190312111041129903489463250363493940349793746484063750106255545518522487880668458160916183617763743808998807421751122093611650929764720201861236349710310567039091637654031914281836914781029388909279146966958575708358655052773588477450454992853838776449023740233950982263937301908831641593204625439894083107564828852384491466131326035846468963607017610105076476266570179243774588097424132632990540886729634429209193275523186548008066781158506475960739158114689467884360275981656072212524416658316806292256289029477934683139962313656931645078240936716884969341330837485221809690029400223529969772841702396869871886187610393611192251257170039709711339153853047387316891306174954360886621897401436445320232462204502728140814917343147843273579456982903251802925561062474091010086796582201724175509282741014580559504431307287073868335227807989016150245984779058118174416143244682556379866156107344940975575891694927101627471260785031066902416747200323553370646242544970193117503016007465489061387281273200977055662088168654433881482140704443741086731410911347365914358234194913062879696775720634256402823560065759972664429943986279280739449741434595244428712090332661480065498568334583685874015814464605150235811523912093957959372474472575095671278675812914766865999318671690118854448615069246156847242707861731492569274204424411586243264885591491404403759360719040959487690715460893670085869441594544358693189495308879362600922585784008194537636601796520480084446241272439715053894110669575131057112361469353834378014250555105954000910163848437574929684036806750368881467479031734231128729623497108563432717672082680028018567246837582418565110099569736954764419783479098520292509750585196257771835811260466940080999017985047781716190959819336563308915623058005136646237298646549959728388115752739668182620954658292523795042994119806808134153871367958137003834222196749571989572641747987060636069347874654473619565708965919166669667870602683303016142210380848527799351572934382094194406979713683601155315155697364113639571515866053900382548101045427446165354920688518519538319956227437269710593192441141854701218839806125332083772474915007876670358091722338750210396594576965869970701147193132768148463610260510681725720625168867784689768352760532511890921403714637056411284201059918637551322835047761633480976945066923571123017115348318032369209397207076561248622028591121643681415772230158340023668156137114877673438053372702499752908278303648400881594336194962198810890641218802783519719425442082696826713826514977596891304146173618593548504311472923978554262587171163313569017332831100999022689719621372602039248496881923687672920119610139600166490767747499045173756103360573453810266281357339891659526065056795923148630637421220973882230400913018760588503047153558958059366167557751562755517037567271628899263813590502013416431254639451811511868180241488845639362741238808643306476461319594730944225448546355099726495405771332553447985497958932238000099803720698965958984939817214289944835907017891770244033209392106121239424184909112460435882136633666457093260025439512764849816745814410816524923767760470176470412398071511869114065145745661308251896720058892624451420708567680554697084568031768019997037093404684359394035654804476578282244485358112770927878872673818421571968158556983365916453876584242116022978781978054623301931795269061626280723300024402187734104423762082530663663122800790564469570647085692394077242428232326276423500963157953940024902287810377649739811281484368927494606417992154275042183468285282897268752204101651546069786098415577768067957304712529758883239243145206039805397623291025050869521979148624646879329139765358983701140541144253122826862712745925023812414595270264988712614251018086342329677616310450260717602804666595525805022740833079270214188172236309912397623534577875032057234875430343276730138294508334819312695924005589473502393276276374375747911823476055556397518987212463360087804817518947703838036354442397359647395119858564162303221886511960599523778884188704971315589840726081448457897320433044721362192417072303329483653588190485113956982792032346053580067790708372011560642830383804001614243437271472251239339599751973403442991534062552739414559664318174116851885582809641924085728978414064959165353351247540753299241131648705157920039948637334390462859541988380868078794641156811400271455061995624199008152988182186461168897295929458601716265151139617847573336198075080069093854762662801668336113482674679555795390074944969910356650972199012055472243468619145791521872139880543574517263986965205311786502526051811936539939215921247084155421548489063337466254232872199990182121788618959527946721771660846891126974501102479075670326608595520084787565700113274560375852771641363429400252850359725048784519515372957374482380464141857907741322089888470134515305300743019033692083629662891824019121085114380577928131883599885797833253243691969373838628362094203699597691732425654291315982312973147712288017743322639289503900815751952410163902242970396565951389292724635911231950142530363980572043282320342651609662486326356088240917555843322666702498204564673502110740337514008619282504503269888011056127207971372462251813028243346333469875427905933717873336677534361536187799510791762819776475487542670819936187727270949377090574788461742307980937633215277081372572412597401384350791927013127241105426087308505114442041531266446936958215865086971133344050998671452063348732007930174284452033057035272359795091536056124211637597840122383503811299480263477931969181207859485623349956972657655041199751549100216179658309217822258759253646917775329249544969734991586745930459730112130444942049350526945258614329409131472949122198661870717243451683840950746492548638566263067645343509091422139523706982950326511432114936320412906499826269966602477487001978278148418416253113054737119320303795750463418091742874688996874297143786508620329093701788730300067603296230704278381627530866309724835159467797222614272231637786167186478514085398236450214248580228791070643328853172080095518926146575767615101415475233510129901316649253770099382884448455362193870948012800853354514468548297818772180047378096370011235700426807937600139446028081895453576259044748580280251925665692254032808655619410473305772568538410939443207228056267028229239240787735254829112964303421735615558357255257410643451240487181346608823897430431969091016567462911266325267198804693595996624430641789866078485720381398715841545903178543023875303652466096396548042477593945302120794010356768218805915764462739372046835005925403785650312419567065613126082271908951385856912694701097920650945781915411119622753516436698586184268078822846123724372217799361763511355754160808124763272540749120876034061097862753937340722499681636754574115878706946160458474928645121858560527968516936470114605682767543702660002941429683663770848284251417213191889500489108812710524031776120539439498548025260008868115985125606410208370585671936196334281583168356948079615870862544385349516382755017494548464869909264062779389225473690201292973467036149514425766416382294319588316801501615093549899742446443079083023240298962065565938157965046175837505761876101146205581054201007014555349868078614796541230300537173060882224501758501422274356858394615666050873533457547904077844393788194020720230166636621224447957419545804206605538934313954971365146828812207623781676271252241394914913938461417030979557583679047895863720262115223335190425118630350636053714028237379272170409082263904176982167520058349680025484614076073061800788100942952915217863307182431793628196093985938608480863823532367418985151923607693374051158787396718941269769652154451877443686453936875885931713053446328183736499281580412090126966200878944165926839933086538573945782313440752737557023841438260537591397856206941839133331100916397125133280807943290875776184272555187361442286364267793912628011666353446279192168591998879627196557434185738954839919532999297823600082611395269692065229801199321557937760473933449274292621582490373185415356004591243106737601560728410997519092795468278236059564493577542835719649678590901735678485836221189683905024958878544432763242360171216382775156697945837078559096999882259326590952575583967849284209906416438966636391136379628339917497798315474778874294814914992623919334251831396423301411649236773713105968075895490854829638641512983075511732049068402298657002514833967749304198514651532566361560940575582076018795079742160608295833628902233121208739415447327845877662642193425015853679652531785795179867668693647781671585355274678624341170284043264890349006660111253721374162025008753693918924498555732256535656656836120649726629951855242428346352873341562754665838006722619655806214637071908410915206598598897593868752446389473121099429037498503030878025242149072925685657323778310124747801651213266712665509192652814720051351419852283005108720599394732895846106071338677193783970478778262675142700071869925056789734437182898181673769039698701818914134017103778210118982722223786874240930675577311200624077587860833290911371287349134360031754186165187361965583768102025996222065305552807948983309648689536071112226738840522292266632263877858442678093457078231418934719405623715342569504494555395032414530765662721255035133930925466430438876728589437844799460195381045246654736879934673669482858640901863109916521212673069630349977080431979702177729284550961314635924851261045022311652296882706165566045800448905246204020830140850028289350645594797990643317895780193167668833014994068337174820991445057417309641942807498288738929773377165260804284450620120454272440544304153606670795995539658302422966574478023623611516234693102616285098562800126492073999953817461697775432575023336931582851517760899651732160619370362253705151220385755927555670726724208395866015196084826476078929310186227883851999584454969658707251312027670567722599112298774423204843377967204077092030989898358408426522985730744153408397701621317671604841197798303141499798009661129710324494691193345060009561089156664050353644647758590709445066055017351207323128054399854574366725322285475952670816147467350264251213762428896717642382763970278208224684512657277093260852449708326094849147575207665161713901290276266419403181018889085669871657858641736614660519721263909882901702532224820400900929694911852334814831663447972921222452288475561848967674461946399755668730944472289764311173537223954045315760885182107853819969244707234143297877838469309362449825543951085632200922718462311973826536109670629798676280870049536318260437337892237954332242753845239637947764904950510212171389296745065518807838887563712094404271089213654569527196709619707041677077956046209044619114694405593391743465291805242774819618227269866200486777976040430083161078667399108260130960844556363640976175040985296701180160699465767367022576728019862353234959433042996091781683049898526150053738471297336564360559713651932774254921123900716329543478517329870533651281316620913554493144716244166324394080545782353076857490622790325951288102668721833841501320054196473579163736869833493417592361015012317361296630621521760787348430209135713464255492347625565265396289413480462415080668971185558157876704299938999645886135149235128935080420053687042748757922253211432499592386031458440074061753903163681187015213663758682108782040439129734999759086083773363477159558526326539166255103898340400257537081526935088038500997114452478881790115537146298906206189995909976156764346518379652959270292358655410525335876356091691539600209897808725160655487797806867198890285229417560740483051932073783534733358044075997627453095155426561336813412204883238335067442304131089834182473919975550315682619080368464371037849256084619180394979726515702806143253264430606027637814047800649435085560709967542916825825500947942738496482207563286612835447103528375284694065216998246758567971650619932378516461446460269455259409390121022274744297686550929599688047217844714023397139911220406994430525567238261273174204019559138765949178788336959957347615138214321344856614203351049854628251588245569183819682548618781908184037637801993025561133130069579632642176417782132832406330915557626287471592765656927324772333053600112345123026656299653150975315704683582289593458712702173494750345544504967289439828937768060617532428845824564005549541923636838710156576963510978424997187966766790489022821364807916249514852042759775381323694969310159056053785182092062216019531485272314545366641509666289306446026415651416225550093326081225106998734567813447566600050335805373557032668155717062008415188393107357287014906816233431898526926731863731749094894569242369407120990813502803479929794200539708028278464964436140669637457165675363885692097122582543993242276172988183648038574692332917198808503935679024486823630971484161528345197613524215723525850358896760335405580352692669994044364205311020951048003498288048823190828904891268696071902092840485305863360877094047076800281625720403507084487476086155915593193342699379144406381468378079104177765163227378733338290311081534499756689844906749339121307728745971207071451068550394765867891915521316842292344318227664570181836619067132738691006708488343769068617527893296429283744512780882510091185779117581995117411188678664747416548969702809082011564168203247387550133835274571667085538600477106684713188873385408915306488778375330787170404211600542706246928369244128115967217571720527714686809560343058575893728342843514066280992039814663658361173717046997467251850362032947710280441855076268262110401927714238474569225399948035820560622685035409508161388885025702321315756401604559088859806381368365418648380432968788752404102164858932874526407216439353463509853857083014104201780211136452700361208871885618925107571408006016806957876470294751085767894470124226090250564151347070225465231009288935085112837214350106942028642196818663220173942846099255788718143921255418173332931228022425181159806449313661609118329602512928222767948748224354787506586007013191664734165395185480508458798760567330594484299459946850101678465701557154780708796310864465720702113049663281837851813829866775513888190917593926621231448019588541220707156974185034693902266384168047244091367709167996516742267454199408047377501577097473300778544554368480711704076047768304310363974329791575817708149721033457747484523149877468184160291465640745070232951175212587006614770686833589063333559558030233300198773582592387402650333444312403335805212610872807438791370879871687182916693928001914518307476917398789468386258543653578029920328151684799188844704918596942979728047314323150784735233598635829803496018996512474694329932709214082173705806195792808298740921980095334177600678387255034261284602599762490885955300101975915529872430306713181160490420000889331794262221862710877868972605545337396550548088824321518446620054434859391476880436716743910481459835570128871594700966933891893232518017451735033026300762494319800805541191960837051862793297840421033026733313709487297454020179495147408568892960788874162992729344921432579684498062637342888330675743052101209558587401772418048527493318906991806425420028298578204141403828490038892900781678129339012639884083331961450976020080297718426380768780527798344384608523318994770186550416906468966549230628914715461983739305266093142589264960756577124015146307163508107441232883001375811114342914140137976757377765270557959725348062120915308094883903082869927694692467714533206972558659137975817029716990634650414065120588548339711206434132528407853058673043569326604622178083588790699038783849814395092338870005441534109490078969540657450671545999968064283462273111247546886415864090608377393165243454120670665695574589805355709490406863397749585363006426613406563322329098087832311047393336766561225871953622194884862377151774036442290505445316844203557044176208399919911799225595061123322472708494933456051974169962143335559159961553127012220118858964393686309903771886113625033134785121794256248288343438223304082167409217360869971285268276869281136823435916131750440303496535371391957676104374033787218072268582915970056640693619999608654377244878994964690578542126928928639337898416981272212171905201535104720024595661130223052375094644183465344545443955606961143178987584689186295093110707128304397571525043595319372813366618859619088520539552195998579963777213640938481020338040269077016146314027982948892114314589307646819069518094658829163261046219472140050815717045568411714920381574314298435427320739283187701141735671571415569538508877537659714694763174781569361545550252629332633173866454930437449493398611320033430659302402206558942504193025216998743410266728941376525597193151066565818451166564721937249424814822721816358081263667811399143118271924831935401492958904002412733125138691037571806114148143067325310631807191338736534364479890114164294837138102520048059420113119482557423379781906120220374849336969140639560348862647096215569331584800913040032252743443226995374180601117069223481862914200174904155637217555472742042555997715439491280129484908113477262558890380099852432756072235085641536521450818814160116069647951735380333424630897084118704892050788316346750144628432248737194698528412484643139652593815379897661324503103141059160797309896181613911958001560663144241118160179043190082420145466140775899468381327424662033388525452365917350600427900927235341299882566032146097866023430416044391947132788027768689640851552560803214446117832309842690795239971071534191380679183365562583503509989503627395853482017296154910173218809417705854685792235298133478255800792596469883082812024790038523863559019048444740345682332659554760382655248852244285428683528048718030355102514219307424668475280679658056754970733966519832813061141694077578548223717755317009815666465496699817027532988394822864639006911134089844959109422129625767490260857970874095052730819244183505543398145835827581106051622227722883008672426475023706498023967586678028850368811958591427429733926040847884640082179853846696652235822326589437813806483464556795846748618076373522314427748169511674776424868931694182269336381192949964472174223661831718915312737124370475087370150873579994827340448738966771377797468702770822229957221121867147254862698415477078773873674505321591192910972891271743788694422593330173453160884855390680898851053334458954807086589984390045430275617687452918711578967246770613303092592437830784629588736955636480562276078918578353461855713897120668967795713685537426792486500152181549725297882285928400486206034186991768952551065826062506563431179530924479563391433266338783312702651025616475124393519518432692411265479872624712387318426409226509968531726087241802934606294444817405221344139396824777749140056382806647646176173501421910290965773669227862825126340060637191967549342118434470913737078896254790060873352904296218553130745181794125591254674353813061888533431624010920209466809627683817102680740456832101178131021435737408755493825418537728385215861260631344594787998194504758222950838827630659391506000981906627572012677572136672158453217697604250767806706010513900636409213361023694178207855835974896720443734780573186592984031537380297082964061264264188127394285237220751388343615158339730842544719255744751557073017667260368810988942213101453832843329282482836004157943892993193803450592102726912855728742838562463389873066714561542625720208154629565819497915610480876751236951993912651389749689095809474332317148916885418724144480498810583652251002123044938250501662009693514281632695335762515463175548583503176309500712549074232209169939615217336546549233390287267216634729627907093409320068083746581253430593117646544403591163572826390598084920615098154370787739784952677954278519532172542985221845618158381636404741475699321273113731685430990582286614540848404012230173984738869443404376943349816700068751176302840163984845250378685812483913678647914521593175002108951621473766628397575140698883132269829368465589808934938286478283607859925569681465368425703863571919298689540657241440934317069672568709947255698682067430284009506227297383625778068529879451667928626866477995640725564845634300981513181308389755936788737859689035469469722137631132492232929731354909768775343158054819307745279594708727505038188501840232864549767764125701089771293039619102275901602232534490827590122482519180298438276556280248105871437118773756329884365509148596548921613380936561144529832492698719211672922426857939675801142186754741160852793656466207000170661896347427787924341439451699165926705313499865786700403582468453986928229725841827687996354348705763275962377918736558906901331727185783388633151104789757647735164093337381966946786211632677210596396117912005917120540780922814686678506138592805099176382234932333554600072145644100685076624724631942716899824484775654376587142108137546032098178811185707261885342318789620973134958075697375542365807226245036153968194434728839767103923271576411318033308756315596634372898933242807868186975072319392195083103779572699074567757110424784764756874887381830898143032009174207091901910435718169356446999507236590344820187661315528086752872465250565871167779411706944127475791077854883183944815657863464821757040629357071005782359031089372908054813344895953722010129525929991124665987095442180135061464524008683849237517872766145778654242025120200111139167844924590472081491900611306148622553532514200473680108809739919428769359210155301841447296314589335261789117664706482033062640246287925373015648307636614761573498118881331809105943260018604585084314906748269752352961820131839260297640209501821323741301022323872346492970964556000062735915490999881585556250869098818242716956520885876801365916743932878155894821380515550650853684923880742812831439587352203409072247087326148079552720801531587040262485453049411397489544041981517595700589075305406987442465939784750495157638648267766871058209851924039750544602846789833512594647288442105521975702356121071907051304575789565330174367291057475392587801624561824004023201889851763759640382730440384260400063703027781662860049264539845048929991392063165579075061589198355043264236912856647586066080098455715100039665061360396108943437592428575201506012751129143626760308290538182308214293007155396403299616214204479070681386915128030525699830705796962832001797552254187621481216680421273735624301702983778077313046132845714275149544595575168053406349624801059526819701267282203284241254839010778248363564726467588982767958422189516226348372377636985402227633698855374870465521631693926658206702649997779674920727969847510212927356322967819341190804616463496596258758204941015205912286497199162359617563743361564467239382171301733313958757936359771714643368493230295446393097479643865300673257791115384814487637267943518620731116301663064054081021717268975065683358516864653335793047038868679895974699842599417525311058034088369773713850878135030091329774013905014168621768137429363706741773484867696248193437120286779465973556452826656954820768442011932670089941822365585640420607274155201797209039784801604050651342512254051938838654020812509436074616685893471414136759160038509830331004344580884979201365212837590590186587206808409193948424909765929554995163128000323451362661217411813024424298651286203215405912215667533638230514791917110234652136036077819967910449896043965327990678881612162517202495501293889651622838683439033668005606226755504856542817667908615368234760338003700818788425467986295515108508577849057939883254244040819824101569444835648183265490793911626271817350112941109169782036875403663706766071822298343549861916718967949890824737652326135886610335091234523994767572199639138428694368771573099840578358412540589454635021139016968627126044341831210628078122999429654685313899595704865490335598981641913893856668005681830068639604587381918380971494524061542536632463206041429621311228799277244985894535862397728065184034345193147599471113487222020448211705368550257614857409122483815042045353728875366742241938913041469338051324854349319106391856527040607188074137849621165294657600584716522375019524762199709125427969320009249177250442815077447308666935465548942296357692053420418476976510445293414920207637359322883141597015213595129578396041305403923156245267679105324947405687684582722198383486842550948628028683315712456877214027172686047768808318794474232747474190766442531391337844981377439920621501019023881319680666906998871167525989059763441435043655365783989175588345329392780512043414543408147002847509023965390082424260477730380385041790856119750907645548540549701877783424679591494793109917265287225715659238766794832520756184260630211720398287524911819235182605575364147348751061125691045875376576021582483106379662882997130568447948106739466503142246265760172011976455370025288855206611991661465042023257402052212441604874930189145274433930328687975734333427286005620094156588225546781795078864197360045774882176159322507358598497842070968293043331877970113039891345738921035700500116711233468298519898648346395548867221535216406422323100864824929232186132089920186638359817697007561903010131224719709564808740440882623084465794286226412310452420152135988566240400978677267956430887656256091363683685624460113961756514405840093395796509551087949869395235469816266666550093830533331833506511427844391441096361111265679154454051862920807354941333358946463287862988748736281049494219455064754573979322208059135213528435995326891162640385583443368965871635685583389385978912267508258048226191511613738831821939547101042951185280274206796316882229472834383724223457103774702869619948367639871970546141692879068936575320839835290048756683130453633395870736896397980298449426090246209024016708162875423810848841090002309950782947884230003109340636202527498685586638642617245235168157767175108474175922530757456561297377430256984256545667820500260141021105524112247915207652694058644052600520094996325615603903626368716575882843693498837991042041286245482383345855033136878617512826109601424004608157408267666056468370881456180098435601665022692472934360548894113885745305419693899252429438589697597361054995889208323242605475693423642337598751120161695091508103754851744271528307345345848983502844822181841124134823499688649103506370677790788505486706833960703039620310537225922746640274742977209196718697938474344477355423555999138858999316688461076952698478906360040431846916513189212787255647948905031949631216091965684304386379292654614786893037395885751362311958551832449153288475361015300819218185334400099203438695240225693209323721227003678866319282074904396361608324994488215040802095620370772364926453284542556886460606327784880579947617830799140042458284083272409305717368662605406646501694554827750135445548093593556508312707936048629225957881483639614100143941142090144282186531345693980503691835203598438807959951318788922523790507211871542635666399779620711695379900595956591323776012830007372595018563740757574401508037760731803982391595283167194847285994018141618877401107073929411456274748882175632573900633215041683543671089491957736064487003946712578555894408563161834622313673600550753523224695283255640146933372323575062162322584274199037901334907648580933312564501716510503689591576570469019881824711126335150077441258991995537006912153368854260577014185798095910145711763058755930394300646587003373329651655105505558468760779768929232402231041514485888910725797206938333923669014479557347278493705403565114195557947977928562715390772254581046168678118607531340494084862682670269978824190044977520897832937155491507742838424260620611809212672933683501008224139537216112573294944174522642642566252498584194242055032613687774134489191140247067434690452113093175675985963146161232468835763277831518366140712249821225401570109019291270968030064538324946842526033939789785140652429205348214170556045673516214653978917404804827478536665894563653989068098310881058728970267538908476912877706364516347489224197083465912869549916443223217232910889812838553081248380586739391818404468557847761887020532868674409566517144819593149660663214488698197122067644166378509803934577888484298798187344189012362013037595903842342852785323124813326524836914869883250661127646336340072069045970770972917792617701907789972971340007785851717359266759307830216137268571337210897262331847020079045854598137958037135477295068664598492538246676305764553138142320634102266101579262358090767866077375531428900598518463835872479402096842939640888045851148126988851535815364577712058851683752821386391751524723342967832280465046712911414332333437806781487353463506111009486950518066323365183188146785752559215110095668650103332710738261641371335486663923047089886297739687227668214773115361808162155896349938787451048057992009781897492117683735456218875997676770916890713201131579735268974330036319349940842187933865754198056366246005839316469648135016591625413440839480458039144016027991046347495699005647527425937185131105987714661358909108783407570854920033332802089233153796968521578147958502899527780555736327281258258001078345460633549295928692187259954342376899040431527576688247929288953329361240555797284989834232731768687545634432504526682318181795912334665401394609985983331034997227146307182159931116867012399388871651798726656842511648929856395975394843547665038011323205008062849877593583883751862523728805124660057894393329957790090850116793683081498908257827105428460396826800998470479157493455014934811680490772854379740609529825257952663597600201231667421532728202219264330429795490036608609591130303784485880547462148029724161225470290529562961016229950155151526818459920680980057932804362859991254164657290719901104829635989571958684873685375314075369844873066426914834202204920195173142409410782870883953395847071244414023092083312691064429603525363168309788747324727516637305287235578522894034747597511811271334653697832503014720474826264575032128198989203260115716338949125164757160837619147178447030656464470438796728847651715178352825085819667541543801701120328006960516742620145221721303238980140403208775100715658008271072282719477070118083423712140008077564979673758038838262463883582513959450952186437266818246609301489024013910263912158728359523355775031177977941643595250464724210289685907534048858636665391894965453135381265125172993121896642855125252789141219477816119344947966820764004101584432052034425662778207307471267798106170753267396801030711811508121678927738642462489088122089130362646249788987534104661996686910575439182938049428181236317907051981592676496973195978737901703149562319441436168811210197358446086378821264977932235057122091794706885627125336245908946778412176068502735026527237230211531631058802143036473109411411169092902572559085049451986330641329050550223949571863396620718556530066321957676205746606727589437858514724964282488345771576887741177757796928905321381187048024006709409489161655995172156423276249271758231459219870015358760380151987221516971733267507085100838252342156901972160140546879410371794148678997911418576381763897075944600804289340488100553502848432437472643998617830113874485549976756854344123894700531602766901553369265239122243933547584166519017416842824744548286983103263559276332713344610319184047265018703332961434385315221487278923127840172783104712765911064807962145978722873057146479104261209724146625074984151955393911225300224576912485295449072722394846818257162846881856004421684914574826127926602172214640239756028252577402461718124768054756680884884445412082470155457204089138837683884300967275387257642898433721492078393531591765245824256458469720390128043822309958186886310146422303874831016822735306678159558432419003779065353295962796649351393139771770311589856252536409014616084853340299859034358480280883959032445606650152072823268663809014837087186384782226962400994926683973417840061619920915416102316715450996422157520910314944570932444638681877988908835306178992371258356963681897005076925218514374063958092614943284334734276155234539596589311030245116002525879020468654178550963467589661713876609223597342095203725405651448825502500882498252278250782529736484008985662044672368455085940676321125704741154019751817290180543428284760266287410321456151450921729041546597109853976303818265353726858313760976872387615563784792723574395473652020172888306922703277812386605878556679544636208769627206016245723042526817380638109131296514938768583815334240884820181887794929756831642975835607330593842195817177589655977061862914512584159350723491971262761265067855632561595259929348535723594192946696308249203235459730569539916219022448989882742893400298297261963697879096739461189770735262225273247874429228594406776048328912984331012161419756343371384539878670063529186711867612657485765436348030202121680600448153125825674194658007280505063503246893388345103939497671493413709469751174850817988884634599885648581823345513024483233933686677207713280710837978524394902884666866633536021178772226390049602177667327011948568913929100722429079237747608980636391856084440213864540673186600874390413101723093001024632234233090272798146271144000968028328253469245622381628932138149405011183025907343205860481828599593977560038975086145615819350252688326385861815470367082342482043751229729747886204380992492334564309449433583760621537977288587694443609884121075466592032218895202024471671211408515320186468012486304965746034236724262686619794353287521018192255240600093553786431894071173287667999628806196746519408233466773290581971721661248071122918917792937580138183904311380342616303176429004561070932751004841687156485527867087341374475865398960235626364706748998846989796404364036770615658197257203622860197521364527993349186240950367736503457406208193361769004796440973335922003534448814726235632479630283669491094301196703017798376479748228803002829558630267647181293732747980114366774510743668684621942416997098002027299245212292836455948096569981045743037389868211918902719128539856835289403716221853813374923943588594354266736250827408743757117201846752327444182302302090634794029325939543327738328057933544949464885036406505780041686435203499783406080473358925266667377086889893434687666180334774191210918829612515194513469452305198063339098738998955422092651528784087569330361713977039791114999453697889932810348341748667165464033880942578411645745524232169553985392437620848800956734063891135086668118854854191071197073294293657021482344010933171754888425041540074795555370484427105612261926955918991778590791680273271019054250779754428765167336962914743555298467648249953071811582735291261363467238348782930467231794501061667564050375932136622925986511705948189116450612572057107185922450889149876028859959837024601734887479267765856443046709762905125823895150729325457826274608862541535236574530105710270113576175899971022543947056797355300137847380564660814772484155094771129748510492959884606564415952224808942835071809023714147674448320226304236987276696904485772885195302649065227034619269269190412557363578128112640885567626280591128846178313188649317618018373929704018780010725816488930931286549353837741856640268931125650950876777105190321502112971271218045930916640142236633155178875085969672276991828411548964066940829826562314522871002690279625899814929172094482107753655281459791422879833769867806829695821194408339122608850368668514229769226238909897805617150035585750201599284275456783683297430867493038797962979067634998160568777869001919314283565690336230281244572659525113944638241664964273330344929897086289607301572588984138163923061166192317848229618911916265659815888044575790804669587439622512742075568459595703832883828760042438443865001466200708373120645280387308140997216979835236861666201053693171960349794994728126416581806686998238152945736507552037995579098629939540642393716353007840014550694544904302832554054945204941097617491552209137307611365663318172516212897918421103466398227006845636160050198539073372863095150181086090209083717364762726841891207336804065261557078792976336960234944224200821824571507756715225312693447582818962186092204157345066252665083374088849189102125489878280699763299333994173921221250323172861783393162802375121669162895000106137770995266781795075411630059971924642154152445531049600935470436487237541620948914893521179775210663185732438238306751978651870831595433451473984277405048822429221421568464349531388718537731930038553034209056290169692042648532450897380517782538880599997486619536128880736236472185198748857004797872714328220196974931158460533623056134163299386710300951154031749105278955455730908568952663235141280337315795694864428986750215961091151501278763919806482107923087025860456632252794016735434480153433391982166548770849056057384475645261509062858351634010464594168286641634239763886622847606947137874833561570546023140676250326678919785158840344178122340480186046707653738104735837851483193965435656813875954466543222252180781149279866661239161086647376013436774461287737257997567897138940185443551308070409449941040969085412499565699978242120316822289998321935079173754358222930853770389390972374028836757104212148282369504918842584889390481959370760101843335649025145303363879578769742599018485409353669259184790099921641933975897114797531564479247180667618267118048365508879151252876438172541029872697877932823977700750770700548373569735437964463254317310950747085255376595886432069663371309358528834936254012319188550245868512587804314415667355377823183547469747957261528196369516682825635123392837518523257349010840939953828147269577642096903647261256347968158897859102287291826798653398875377537653717242249493707353710886190860845514780306241306590474364294597212036318248172379518468112802528765451729964735039177682672589634123119922413674898307334687842981922617698099756112537056717861040869150368524703242230879641930171794323556789643258233960230587810003663750867365817616986272541897492458962200656781633582309663848534813166857819845799368450067777007846182726993671160748937990087900564235366470854291743630517688454620262826227710395549561053511036418679706116736641796620047218327970281352869785255076898397159525945092568708787411306782430841785559505638130454174550225155774669587853181631773445894223408974645569093736600604383588830727528168964422139063235323694658343345324117137839091762899583872755003516976868209740202567187635752665516961586859244876735333024483783012495171942012958352029606929113990440076449406243833899775593805923680259333330056744514606657194526806616863365433177492832245156041942676200318504355089993577450325932149594172670132520492779324392364653675347025055147022513559870479774112561296457908046668319298335503983777078688965136856136121349114150589209004475634784408841247467718801711202958190282130403253029477069756455131748391878389011916536057302257602600731700948242286347039179964330055308129654705675139252401411904959607912891255008404564608152251331125293074800544441177087554812696535059198461606463511388150925869775000301318162990233894323370685602275381653552224551821311265137059285098685032774065336209562732880375271873102387720490601082388821496702524329440984300382811635474978846660706297457279135857861240401099304925977464941601734169178848458866454184285970802340669990001139394405635641595978602233003998588009256191780672251857612713676624410110706658631348599897117127878637700751106264123679289667715720394702914705277162436403405657153344477840050438157310611648979355979156840720583664448197833430071418176233841867478750271835792800936221944218542774583501971034912607969181515957718315794005664428265539759623432398301711090760942088136142092242079580625796118025922037638130293761737377188110450236235660783519530558545917170281260542723971849395954040790705743112462114983455710836489924851255347846792462689767791130202237058328512306633911138367948841587027744922321759297603431938030570381339951569701956648806930136441986261612863333533669574104308671436627215150807164153391003673415299173509873082661521096570781957734382127321424883515913941048100685835327575843102017977606830508253432552600502075954937232519197974213145722217216464645719515193332107935773974452315638137451036990999255679950423611299842370943906988118767260706920414674212908766844272456652741955469120936940721524636277398809316163204272434717419815479970911125897774430126956947812056773384120540534858850214149431239418204824280415763927460343588450695065736063798366055017991327073976040242982943309015493806488124457065299257801562626195371733127196987710458928507802042746097195472123270093522666341208128072577784233277284265168713254379190459165122050556045800718579108048046851999174325133618026721615115535264360361317431361933299299530346618724945857449968395592855635714387683080492763783619005499167415570878731969908919147744388733817766850177333284246664005216593092971258471784662320421328205796677555346074182847511430190218760219433257253352714079932267534708715731039068596704878970036527831584060339872362503821663193196234621832153848461457894643428041437328846051382060542982158643861160532740259715431647645183226219850186780584037799916101000846153007989373582844183984905783331158650017555124341167955702267644741641259874948360216467424721745644322396224543346289488125072862482643174214602212212267706964539021880344258339299426259544631880075169303574361282476555066528579332860734782593500901476684831111346316774222722364480832667472576538061830924320059512088722163511755900561954171811606932730255645004063991700292358526248532165318665571383080288538101816302821471246797531239250706056144981778738328479948469686390839212513139571529272341937848377854911735182902316955585681478905403663759285391023939301174085179850607716775891957459454805415284094951235726764667691175103927979825878389463034591569866258015253761593716739379269211977833716226240275990574646723191676506219853948535037161724385857127048694492387053632321407415203352896799526041684907532027665389602833620575582422252423105340005398460724078502991754507839640048639925192801940615268666322924945555930813091983022995264622458267089942460878159020421937846924114993687370992138922804088529545299076860499649808168310524054276305968858181782674916411487507855121291602500438975735030039097416323719162195247759547350973926174387006245766707428245670176570488739447892059901950877912802616122657908420868724014073945901633251717375342358135020511595488992255867831400070200310843245214848032023729196329037154934957214406298789135242514416554200650326365500674614439916984858353415147408378148098201994264245580271126943711247570618199445309930759778938915540338634511801452171046607557939158734169244710385397617430068559465715112690271241759612858202538245402558955831372454782901513590904325794483469494994388830091145493742998011820559243856839955909950461257824191102338245006636860083481346302073923729640862582172603468657653608552940107286386266747001762794018018302969164694577251425368700679476921842742714018710325375311412649703328250649520220104721934264240498861524998849184705833041511928541937572983890173923610609417691558752117944880542257812044513538480960475877232343594272355527243750289393652026819856379097868125093791705739643590473167987363461130532470970578279813827811838121738680513337516796697169499307728971777486121382737268786772158480897207455638757368380587499872744010719548380048989108575675452237431307077856746722215440967401823964341308073511315601468294380839649145963777965234936855923227058759502495827939229701304551085909968723549559259203849439960899572440869832529674771185473973183850467002798465902614755798938861536173462925119932446067987605256636808170850837860557136031037087487445287804233569112993340346101348525215034649891956372477154803885307862287187600126471635888644452159564643465605545422638447720229547561363865007917684029575714055289759287413730673482004580322040987767172868900575749428079955407959260485259619553749617068394446487819457904825268120811479004252087693045853386043602671197097635843862366867853444856437499186891227787503923321271608760866600676010088373328881037545286170867263581618485705066775475630862383225617184606302300161047946347749104496493789611462119955732152077580889252017147865554871608977655660185833315764120489606759300005749058435495477795851343869285048800300383855081477072271033780846169157004089210600380794552535637822290981204532539660498634746916410724963755723291044570354144173676468372840969003212666372041601485567349992222376042854986994069291917713582552037184322612379474100506465306452332992614437467808287716532726596933718750214367186893888464262245248297333613968607717305626091693317454408192314445231267408437518459458840871487774747971523535006439708946841594263132447442326173401675148218801287960789040093455896854876265720597245336282984503759236919734754443708913638510384164130737542568554996113212866022276560833107906042190704351445730365716564168577676659775427481145396789763005926725679108455017187739518159824164191053923655874437333454250437551697835097264543333357812601930822130762530783620994104135275453361103618448011883650325112833448922639563668730348988659531903512413918909847007060659056902744906460930241115982149627565756306583890617355387201614609563968254516451595106066239278640190738172143344090131548335652116135480980677550903924322945060445066709049861052785619950425907073370841819840774189658743857541652741988796607245962250187407378668679799774677115638351622305803100902876181598004631459845362287486261272283406990324241867369825326631925529439500443804649472741782607597739790821909579017535938096908144422895454311784807119151065909358313655653450263879306559057347491150966914291730343019194841491855317722294755032843209516525063239975210765311530293445714565678843982095292688567041129191233325424629086921647412832504523275134492859479630674260990642480827827071565202579057329449394331725013170366824676518364765137953907251679919819273071964605887122722607502066444125386708097414664495135691032236199229710013144987444799371732828893448945235958619521779084255737582231266613131240235436616281727933823821522371689488879107209756730741244653366464208755303853114624614478516201080771852066697925737186247656747732835611166012217340534682070881610003987758354524556204092365586861729082773677310001841844079089993951047640013037426273177551367118790309190387732165960814983999841267487242572408362986666053854574906502576180853775555269014756122522788211657555947239166778226136646560376980533644529045905399188504368892910205678485328000300521549818908691982890471736476649126415865884429333547478952311031700233271726945578347078330928167108877343253164974093600473274814407754813173810806070849205105430679916233110844293188361616464318203131674436148928953784239035338611168000480367648723443122127505572617971567540142569322172534204035251428306416425984721950754380737631503626913911565084912779843561653636179201510126205387046901664469905640953497459855133991982916550006584576409569685614704535539028787251374779508331955903079321366019302470277230536997167257990399218128199907551005250504903690700310523728501883855384560194262048047908149375462217952975838698938773268064509877292615061525059298396231669752435829591960334478546218613389721199387637797145328200261342844261542148199153150635861714422118343546291105631575453460376807051114706259849132056015476746632421958759717773221890957855100947759789229389765781722149761283161254391272456878285134752463656544524739051112430463778990909386538378466792310636239633544068967218207813215552445038899372596578644351288688004873596598179959518897441621335280884975923962790856093194049707944439714206386397758528150223171699924735923121279764002983580611650938898439952384604774597072373932978944657070709858730273042453829861273549000950496458866436821574301479945310287297243553398014427791122630725170194552702260993992012598999449409093160704984444987523587673212426072010235822156898608738417927659369599249695838985815982462510260108281762988205520011564775367222929693664246725117645064569945714310578468916194339766117576076862153752926158781051950640067755917730263503239954758560465498643284866215570900060139113916411588932782904605275330412771612318657276292557260680605661295976709954277168371877463474373018626000711738969712994181372541802948445531237459432435388822613404971618331527318769100451793985837780476768541648231989554724360323928113678698116411653918866472252945784399140956534605878560183790670581593925808336404566801987708915202760671466015389408759863954482498410809253235565538595300819579694517877196079416980931278312661127422402600646719945913583650615098698109374551296499424554894613874442505060815851225956216492714052858782894574883216591311750387361572461594650571115993768514391807022306109661591084645008176471063445261140266238105334586680408203316204361837861708005592279408990223578385460682614400617167066123449631578368869443444273531670610337654002545619143163492506007937723133919302285957977835029574188049047475931123518127920421009874935982949264528285556653573808948159102525079434720840487126558192865134816938388486393837382987740442656587987855734766958966925370473875310420275645726557331935762216500604876835187065362259673327454901440115634580890592022742581698667218833941320858436118666740170875659214391154073515653055443891505695533788508266311288486786371937181017601250772336631553355355718286586464572439011676110673819027789970009808704297380588776240878107325620807101393505910461791193802411272408614082097223627392247568352881478488719385066611433712384317311312915864554531849678051043784815494423485498633653686967959563998575773885360623382543900261564556249337024102326190117785770484020789488370455230490076744641959468098281675665219916173444279220904709424946209815558598262367835522474488766790636144423686951526754631206193747434012646942189148197940624003016091483291219989585806228443092135985203249296838517073423092037490669283854241234716338855488345512529895181966555306015138469694187437291491017029120005789204710649016982704582753732197499646487041297843325288610574601329245469370073639460463540861609653935441290653445678649630067108072029196124614626975863187077401861727595614066781210091733552561290791114708204769769437012869640405279532977268767667678192174690781688737069629728371317950816929766772697023094244083267833197337923709692257044052086742533785384347162624218893184850252582579635515386377906469945903629103038185687413095088893662247769818878331268291064396815290315607113876559277134353413220206333785070255647911497691238805974755453343917663339903963080420846313326865812608521967458688969599048711288557143011937218781351209030788590383797393190314961563595317805924559451083424895564499588581719296359321897868847879447470260495561854280675000228047798370342620628703495489437948184576099197426342570705579553332923065995091960624054426591179288307366751094445479023263447182801513537493907666280738318316202827248390677386230894128024345219573600970332361108352719852678301327010410466400095304573140591690006294432006814351123809672993471719380743657734961465337233121384467396440115190108661857607406001135761767432841589272350039754184189454514665668855340132256497636259621301745751519375990080598698683702597873238714392671305602181255042482155180339270225359106336462748705907050693320623217375838220374552217880409261873885078159350568140461152000185197763995667493608385682910808253959728774773350698729795844544238908339048731504898551619040367622414993088768431120761942836112655846727749220140502816975889817386494450136222874570176073992367760116306633181564955066950361667942925852921062721267426579371840415342716459744590147507164356720157211507872586199523467595558780726891856313755898304291205580267092304411166315914902250456588572774105028193133845914527878942275660812127745774208648700690125039701885607973408638634669249645570341930714773097938394796579153627449232469390024197795751712838469641003133120839546673430030408458391339818148796691712806032823379597581420950751999566265692601987538910747485784275202052127171542054845347648348540744101706768429201007736113336370154211270735443479863477549174805015706684368283465467988265570941289320467606626675264081980068704858090250186105452418680442994810902772244909979505528675520352348772892593782656599819258382582464669837072967059204243721750194798624558026270642261123154139573638731558832875555936983614151119629717007196948406919202921546108466183852482216382511113102559431884418172519361365922744918949871667852309958108372872402734465135914230278971144250073221742487376879638634956958584994780183710241227027341246686080166474670866704287100961346042162315354496429513984777554894723533653096979503083178606893089752342315188839713140094000652158882020342763869821644677648299190529609214986002575123758322406263700083761889168218451622850005280990894664239089321640817017117884430183265537617531587427818667823441294616235177766456211052327436700239429150474825375589491589416140638544717107497363166572373113693581105746816896450033983961181997176262681032538300023040171843157769464983279332433970196800144025100439974549271508043303210271991431639208999473952520370762844855286988877285506828595192047050238814759031888093742855879701706976377676956625228967293889976426961013003401913667347849157014091908736985793932575175779066902431365129371461819318444159914714843482361303313884860069282720500558141604299963395831823860075251048213790049498470502577199815484895027553225852961071717735295257944931040601941836738385440069632463142270307137910974693704568953701935878207292480413618066341640685288059189537295459153793758595620751913264181787436966776708640078228306846562488544657124844977670029923054271371320016928150431224035898286476424502571659493227522909340511542485247539422308309663151179865836601617635707603487357377541271382243653169367723834167541333891826952521923564265350188775256118507572107116350500394572121754082097021143857653710907114018052344123997460311064173894256897965480271210485670071795872240083076111111090067480396126548409755378055391476201563692054792742741694511107502287585813037635842805654023304744602658045169251695722978790726963056924044081554752077294683877669839971072255658986565999666297720745728560541718571937614581785543105642272599729009168421154566109324540356938665622484294601755785492921310984672205802319706986129886576047924525191586445797250246773849513180661115194746957037205959222509404731717932115235397420041926450077932556799016815079039263938050779198058206282829909160535219230202468741702817572408202499898922289008779279506054928835031311224358684799584891530932490819898145186095131204300523289120541887775654359971892388837737920488004739470489771731632680154211079011875375536068270811556282283203218103425905690197521656256365509490606564115767818658263941813522219044204435401972829302754346625905622582694896895935749535987231638150990262307679791913949801684322214397101166834254195581977910634791177108213930959696674912472112191868084836380347999922384614594664988814769253659688620131371993676090098763302437802448550126071579578700432603758847429167487648938338282470187851730235528157670158247482096193137493454346121278690370209165343130745925399232874243178502336729688526374358193264547920655678581296121519277035026587507434715231302975616590379224431933918917070435107984579581842188922853588184756621884349343094062423214542155387842063451410345854243622111957238916054740983159152597986482738926072730723389065717172991430913055819484096926360233892504610881905515531658080988785534549333035772713620722649431526046656098191945213214472493070684832015328424376667632819351900573522859266662835599301480583567886335187150810354728984640333270392759753601571424459543866439571591380089204390745734596242029194083596304626038386748550485108258548572891041244023307276949793213456245860965263694071541505188549168530709605876641426487089372672184496624446945288185768867297563195880107866121660891900803453953370896092359007670510216255632049061714273155617109884648706912842347472703518568143146651553492973275776569256344711834601160217338712263528634054595355652032086737475370142239610199295206447486911722190405280910995742763328551672703143578957860653182163470414954890613242360567706033183039796554711905878677680289565638068960113477123416523435054433429649761488613886121664765582188553260913481292047907649245616846077277891999654073021908431859939502598428424374088437281798402633281338123364669666117080609535644242648777132444372456390524276361201137004154214752739424640305759273360836245487571456543400395002455772897702500524938634186410034032943005547249452777829099809352186852940117057590290779557551096472187186324703619259740466997676588910920745503982942023937306381686835754478934059119506293632216846924451630689269125904443627089320287055119877225027599011324328629312037597884930058053913273390125918652158475137548252784036135553481896041582248032985402760768965751445355661723590092992464783389503352698732665500121991791499320664015368415630217527492610945004897275889378916203554284040394536204301075556713084975094600799151970337074650556437308904430142210810038998897886098976607761087742632645190165073384764157671855301367096652678061378362643805391818933351935594363759534185128989014148305244214505758378347034420682572803608562424817762780738582329794845338204077865816324539930738373064482266229470172493420816546565557066968188161383679290052366204778404992625086578980665840102014126842515110180813016650555638385054992966721743754338806251088444390077012719431016089808352749685603620553266801831372232988899055517047970481565122551210838603063460769549362732332821809263649294639954417681390662661189930456440526018565314081824990915287660648604931809561990322271015063852485343300645666242568950362405761144563425046534058267087160802006428697910764244816722433897067805756614290281209343649759468018218553284006920312667578735158909235494518840577136922173372179738593643738129205671920167576547560374130901196118942691518215544596616908789856641713602486257395153331576362379372346606924479423359938918274601011608795515589466832002549827684123334348658245676131326131369572978263331416574224585196099264795069568782293720882080736561439001738795170344396794699966665069980304995032452361276444745574281539274898164252852818741274964676165120668481975078338410234824054010667933188978582392058666977621555987841785777149732913551695289746770382985848600296916457274668915157408599788667363399344073154476691560705614368101281575766159435793188047541676956816645910504347892895816705413745177925278740927370464004410978117260243549480105281105770333833877843152267242869573605384738495215156526047081379427132090414830701612401058436711570321511466103216762755460062335866548165038570811960047633618588882755895424456747994060897651326046598084259090580729899609167523978633305934268508656023697217210063895455229299317705783973081656867822921794820741294289619164164688783887661122313575398643779125302900082523140009015395563081169010859832944704434811113212336268412844645547768869359605837261620285524782620898744283461866912481694950939155579161177019941076282340125777148172089066855789742410376384428389720896440284664049897890326287664392673773057221779586320442657560469061289224757164633269489491796702485198650386766837862220674468765416723130763534466444419867333700849924249438669951045234841707480451963864662820036451942101911652922115017035098058908820983397792179120104576890776489238658050195506218689975070810556820662792668809725229525713924785503072531129387036112418954988062902957701668397640627533197366742155717987679752914304923831510623174558673926635148189668453520376468659728165599227220195134049938161776576769510558760389307507716564789742859749130783934368250067458810869472622435979969226230619940637949021222597506153937353595378636952692894466283888743129633069755236883728763018541428211498477652041406971287157300046812900739703747375169838068358130624070726855971472647899371520377624196477373526662502814371302778522181221302196826355702426857466666245272281577666990265302561494597453912144887172766540630832048218804874359579265834028361620077589699259625644505690438296969728632750403304894040643668296281450860379097660094062786382392411754852374832699778865540814440479010062808209838478358858566721293991238462137694759140301782661137708692654363338530660270293726131012895070991282020441061405979225933291785479244374525017827805807623464551340184444806880536235504298005055762956047237340489570269332899398623168798784630787915182172071470845892056347141747429804684837765703507454480081884391208429805022429926749867180340077358687033232019564907129037397871885926264579197392255117864742062079878398200781840311051024804073935433463546140681287113014559467499366460436982449803636938846621125630157164326510897001160090036331599916121992829418579970999261249082826941759905864569532656169675081984116044449372315958398377133807429870629614586376949195142417328247490645447121668990959460340939184098113075632685198235722392412184589692563571048354062243521436320833764897373745324640026007072734334017734119295819216658669947836753029715729302247541999714944719761102176575219505152490882510627466171298581404351994348807606286425273755400454073394201929873777082705226532806574629993061938230267727829036578020851888493210045824618001730548990189373982317975202631976367678418873713876413169282068449332394890392523992305592544151566979728699432557254491641974347560734480559082761176305896861707336669773829338021814453061782894110574977017564584137845460269484345993196442445627894703347828789257310694936559600591252550277298083467934943861886845760419797808808465889971859780231008246730651943101534530165011332159398632810536289866344998956012970399262286749530833682883868079019597739870521755467943568913557508486426452718523694402363011085799928057110352898795729198590635600370887605498670736315701127915837128074796144796203353622000255514163991046255694767385047419423571509447362067733991092837204396671549732439700362842543142309255034787269545711304995840246395363436626630187986599807918089937363550125969490950456795037045892596084348261216040513568800185885076679967149180084716985387095998130115659879986277448459996914543910728484535425150591875168782724340603837469042157221052067050970190878217771899269149012194355428763032615019784874280468796454345469672381295901848359909293541260051052011083914580241460066519996506376808170198499369920493705914025465867068559045748062337637143410266730479186623630895408324780450907921034358117325600243744235394365270385224343923835754699559287290489420733087044607212744125090139304624900539685342281979615558532779005554099504191090591550540866023742092415988135724977932957962507267593521693380807504275384375407002620638155821880355860176968092977274100663323511200728104247477600501056345630757118299420778668934481158396311489686321634193347597602305914264500445035675800341638825299015832926478594721261360152212498287729480457796927307134706636946508038636596306578443443972900713780692989241353955677239890932893624408080471186336647349625162029256130812549204131870206646758613017195301986389880822147560862091103207248091233447187682393861289803313045046928564970212316668339198664150184118063841244309226048450522710059839525838402770975876143943619279438063806977954084335573976542332435107316799263007634036306319459861000216185834091156883410098914885709810167216963831409161076888494499060911186440711211024685594667931572464617180803403370883271662767035767029780798065823490225612269668617536688338981152999041852752981800056739540182216956204780149712532902760652487217404459844294897069125495314503495422399199583659521453778670465184141363199325272468567887353051659489545403241284049501308508308203774003980649267587601294019625006986301830698320029817015838531717915791595831215703234634311626442376769822882133507765373204818864418951293298236494028649477193833385218331283035504629599298032653665909203357163618407372557526688585576019806269649277454550352548445765710324208954236546114599353067996883130935088823690301066697321305211980007050036397139226943913502672398603518560900120643409279417622827386785285329994813562906241827353536291103893485739791041602723429960972520349824287723430158535264935184749630236667701996362551524469358021724954502479992328250337616102452303137525975861209774723863084094831023666459501659626843668026727019214899733960227726605768357044724565022786237795638647074325340930777613437538664131777700877127144473709719317174781838430469868257600740349619173948174327880933577036737960413549157315607202288753332605005848939188967124124070383272573432016631420084005807162544929010383624806876811952044809924315136447465944020421032745082544248641070309612945008394385551146203312020000024043793131456477950688108377200271315780456236609275357126431442251106931787359052122273161758878439471322685649306988303194102857505075114799273082064625303799390107929218618416484302913265088149300595392181285717522697523248604558819538636583778051878661364812309149173605806891912091181896538256186067613643591682154852088596082300370871865791254820416263820643693011692579865371498361601923143103920550109272707741782576844481526333487749201868968392775532404780477995002914816722971361612791873924187259799284331478382446506543230315012353426990304435263668594241750552438866948647386222070490057122226297420128544297043150642925952236121281151976555818297416035825587931266432849001547689755284893837739414171272047356193107599807927056538709246877739572985139664983869270898822423534711725561320432987223937605905641625066054793842561875845745861059008929208670414323465636206457949102222995618945800243469618828987794499785593500371514223204279219617436495401632614643954599373915847200955800172474252177921755812685286846948055450826394571960349439398691329349155817786070864714298125145707758504882056011133782856108643538670817572431831724009355217947427548275099137555311031750896595499942320630562284340491854894237218261202146632401203945173847590448705759167181055888176310804830406760267780762603007890820005029596394409231848781683131536607831538489988130309862031567098818978786857356482211870066345125583592507358641575439763356709862401538106451920888901070476636358487754951621932053374091869182614038695208713143283047115756083990977736519881715563191594865731063934149260584664987463041083088465319721574612861913634331628020516318391445372921240551779394347033847614984110597888756485534543821701622447587593627854597070036059110083123463255982487063950978080961813030447291049660268721260717210093369446915607530906877017279996394822206640760753877318664052749365529767440709083262156290460370319019887657999717899814929803735336708924845778721263114385240702805582867412023649800817100441782672378515544752952379690890624001692584679319149755875157133377785775274835463307726221004189203517684222832424162311798605688238925126689489965923434134383178117664280587792426106149312246575527065384950450844090951709447800628416334773065907007530230704900050255933251936966002122394826241168192493274890050842583612006650063883309361541997216512679982922622578153045540396794977141132199430393071423647350801542000853997673213359754728535665192006948507888059202046280993852164809870100934246887391887832675277855881074168009514320062478686670612365147240930327673348633089606992899923813999457885238769101858138980863337961352265391373697930283052582659265651229685806263867808788029381362199600787157408843747938877083292472459525893925077419835672559701697499556461514351046586200154657030610731287625715241632054603744626458255317504383524434504944644137588131719909558296693198826501570734855664991348877684434175655780265661118359049064166904593691295163881653285966451308604438781051436953344163144078504965566067954307796868744041931424404406672636661743283775365826825185107100079067515718400068139891947564253017023222550407207673137384363003747624112381628296906595063813646665981399005881548607494049770152318526547362415395801138803680369582733430992548252994108399043568610664848247914592336670454765583837729624078562081934900681832491129529063190374020581806431006918083825526475564576318266982742164547227356846443368781794900929791496021678690725198543727190444627737977156626391569518898347801764981150448077365457326936298037999250873056939074748863777131702859171551162143752550965197124538699330032452244990270188493138478886680606418262420749473129934511000028534357046986866552211086842991668235368529442130933847210507226336279315399449885941960254062822764862271138759486593828993294201853730825974467166245901103549542925359922371394910496358548026763291430367746551741783007232731457009305921468189702570688942512455306757938494709986887770659962765783204655685198750268901529532507367958227876794455191347475483226956838645225862490151540678773789684615351132113021121690854822422091993191212760953679340649903851494298852855529673379167560941564609782505162824511695455325262182831299783000379602273039791695285266939001071514909841271864735075543660666371220146171509377245581814129748776766062979851496177769275363378556004767912981970080008659085372336154530275261712066938596189804896294318027323304854414196053774643372880248422245154834893630459103835226795563908046391406377735313220661366973541299727891997765817815880782099717828406564635596624790973419317025613501237223706100063096360726716314835695178960213768480041384454690524432328834721890405149178851513303608703273739009092869349554728383620868427811782641969996148432095083363184153196076019271655412304529083919930249027713211935813963538472793918675318243727474429541344205873571027813072714848307191597842351401932165299842070553472572547166870371965929125638220495468009611440044154750247338786714986872521762410730882941156583510675763458228387204492773323848573758419256371826839603878774042750270955422944961566686850326870097638657389194250432801376735055385488584459876538645674846263176034824227988127211413474568809106590284367730825019076448542228452693432278589217908339121805976650837460968588090643084299419996430331578536163403120756063765673077024169591982141106388289230929138057151268682012160822869138357379297418049293940055245551345753004982421233019454073249648282116138064370312605870247539602822176394748585057712121619616655669529143864117587343773091323386414969313755501762946067358072138660087840783514459577556792964920029356345423448136136188602146803062461857357241276475556091255261364206546542843492613766284837191820673644498704125796579699758433224929659038400540565729524462954791583872452735555384005484994053490424444611653239516604122041836769700914747135135062376786402744031419715269453512090876406614052018189274766486482780219973284377447712285108319857146392266365477042735508639802384771550743435470630401988278456853784760631859419826021392501621217261226066015910376524880965889277959611753521733935315754343794756574932874264281773936806667238524079066263581734144781327673610903485620930165553202486838962281261533725611573099121340339223170418408029382108136952196030392870621770690812223766898378707694653444710390715530059140878577495806682157585611282183593821613740827808271483783947039999926808883959281336094210823794235690385544486857067754719740924953935320921585140354756457257011024817780378502450054482461778158463625216220468741089798570150980266193612754598852129958091261628056056033251440812933231012596843259090884917898480945739917796085244604437659068890084277804092556186796880109313636757716212684614498950562755625982000431000641090229307019377320799015975450266910722640176629926536899156808737919175212002221640292107937268823529945173825332138597826729125822147097615362195309069385449535654737164889754956620563609934958175661924875581827666904034354777747003065652050439032899013656369750233713708858188867913435456824469382470026980161725238467864379228263920629699384499203733490586545409017318794213726855439510068079623691676992201123844464873211975217686632195381731276425781636263101155662021749739906535742105596493733650481453714408447338352195698913876128211864251626657713166610734942789759811307342505013113795941605623141820446729458996306535000399291230200824370523634132237082952054342242226461290080190900548730831547158333324708988769005180790279384143033084878425616457760374670916061628340659965427025257672890911375472253736276188971520712085635620369577983137990994276292877535649611693019377366634646738797110588279605900597559525514151475352692870678220881092050176549666705668218063475064360161884153907987413673637298926883959862762484926476878589091477465947823088521225746940092256169748110655275699814801545802795670853734364338192630392363471697956490469456150081936453516243924006681053371052638984593698000704323715586144348520773388621801904852957349561673267391758157325997934850402404290108793964883797603509447617899488883243956247606442222729298608844813838415952565036992490860308230118034558715858099593372557964106233545652616441476833733014513587386867673192374849681448156765070495597810710634671200050206253960237376526058470794475179234597044005442911830773445478257112000619067300696967584415866963339498467153768261595049364583831433762814573097392530053385958780145055449649410887154298309518803046487780782875372738202294211619210081079404167454143619348781104225885152132348579529715329725348356721737110916771301650435290539239976306599992219915408099435742686918231840051425406739836466053964794609703834071882073609668418859367497667444412350661046913065384199656222055747201601023650283722272305914050701785481043429835320782175262583213280635433045717725284383795004948492079426916937097267039928558178768264923759451226348306073508364602933510826032629321176336470579434405321466655533353700036023648259939778605601672110998688462217496863945490015817773349012614069483530902390846681852509208172307090257903254514917434348093297371222141146699955186280239147194730726996561536153524071246265514900386766584455700058786415447927203849472227606992516139504616173261989020679900043803910009156126821491429143044995313978017986002513023734637320806615254486063011365765573153233110254394591688365337550982225630308436228831694576103950376489132571556090316064473564330690451536754526703246999857827610263616265076675696842019386230683787417156381272147135463523412171661980935413867508580833765044195239672726763530991903728070053463560948128718680770601029081029905464178644914637549615418590952304161000549134014271085568915614687050560872610901486575196561055874112298400123818571953039744461820752862605926584952504452005455900067337113580015003427530201476423243168025754079999263872128903958767502947383369497997338007916149081512406599624560075016628419330761110218322192304534343699658616081906115138854073834174490431331168658606684805557784962970508684107912494616335953051706989846783075083766017669861192443460317164530678994590645211966496996885304150849741697499351084206270408160951397867612633025356096357221073525101898272344363294034804824406454010384187499397620710602743692404536361676172483821161385855377325466470467416380755485429724375287163503830077716915951167679127020186829744457598843703698791322585527090856412663348493127938697677430547841386818297081112934065878490653251978875882788848750070662753722638274066150192041156643328470698709026899669133161357869664629717957377615136198701678409317695636877852398285373387303677758955766784240177343110980475724978453757072825276441911377726182146110096929053174230985570907511803979037700542911894351377421777253030378921915525463592110596501762226188949431053862143219195788773495551728147380599490726784617886437413631216256618129707877804776714530238665293323073965637490271493252417942888508646533691500240489170237999418640810396590348912427458459327441218541563741587204906321912966068434953441283840766528915143498286392537743230493202311731371698350235281114931364879039713229369881644665764596189953164200950372309843422962055635527155864459005792646168960857696197367288673482338815715864767599282740998482321857040849874653547938905263380156378050362919217092635804207490037094800021885388688896141708040493735151106450326861504353265754330543413772176427048757188950568895436340859818119796269376289629974195569186469737828631304723671382394153885639914293293733753898347593174480102072099233597243234804042151106563854109534817641720705001414968061294183386041754208185398308596843927074570867501006699757862169229150678081215351462528719823949683160104203675368718095541603262734613123725951207695965097053817807772439726592551010825524589362261227316593229257728270233823816015958197183559730725399612916431287086778433965578589539907900235119158495386652962431923850682339376349710428898709790902096717853061652590296197568430762567534785158097828481345119777213086581460813065331436035436242324175828600102938153033497386333565794474258861666942069045449532416146545363631490020649772291974693760753195297144030040568013890637812040477495995193973557832304750567137922845143420953108502191412121448979844117003134022521788737446632749372330911501640345172315950433912255162269518275657494288412382426047190700043469223001897546993250534567022780680491288363654191402016493280640835986378364307835319351565606032536391855137703538496776137978459402340270435864680289542305621174342411198487394816708336049237853389065134989112187324090330244483515286886103381144880452253458779524364062636034366461054743667336189669484833724482919184640622574204056495335955091743938583840542695484120028702481040049310954315097103576861836067958395403885147436625979115154723101020336178753148215931273563505900639537871498020564687011772563772320078117202876418983337605344178286842224840886748607792652565806131040301449447250181241375080043652400139254597089376302916776993057146561718771451759292362164184839615977262868402407424052018990452306595447345453335477857235056798422495208470331272355178042890827604846063242833573582262462039422141648575842078040655138142941289807392910208767439696050042512597159718902571419830687813020771072926186991671341020783144431643500723732294960722631518616230928642205804509592466344078588965831896436238486816869346250166478739059033288007557841628468320020248377046648542076207374327783285645674534055463860463590814333155783040293489555521556118703147932802415373039675307910274655734186346219207252585219193220162735239794322172973186580961774919447497801763953578366769365566618241898383297944251250695072705149708396123267453836838708123167047633548280151548705080588102293515091641880188409277922001098074579284955931172976467353633940074985954624625910668829000539994891659091549476326767151991507703806954788156701295599365769812906585481209449954364267648278447772975258185670747420679435419912212827906568566318927684644703422774483590847549500317595836138209907521733458971538134222726909150825206406588900716786099496619574431949785811623053554363413095053094772193583568777819099653718332201165070353900405943166332956633813323203706148474722980896466480960824040320371325069686367976215113115290956579425821433110566874079402326779565261768263967056544567558632798898986078138419560216214285407869728822593050646480393508240945886925012518690350466986840221573971267871720518741530915782999624534453706058614911546308845096797764132184219516238305125708465798543262925913674459834251368191117750759123344234484956437663712613467437068345758381312909984388447463938614887301069008342834888702801679067467993430602737776253539414289798253565392805180987355836230007224692467080803592492343031430140325350140359556143562868436593901280817478932567342105102716160156583003195846101593595050670159953180589945388436796659831225114372895682047659267221187366186589489645239319316991738361223477950907350328182978397179449822439684852463285767113401990768971826952625074923443971608069445334980381724313500495862053482409080031138653471781828901169840264214671797967056327006510483606223464890510583303268571263163270429459396785337089659187249442445153354638064281693683184337375596538471164758054249315411105679184875384765372144019095740518783359555821637647478222177749776058297103454974997419677918815338598337804376402258106405340197915669293782649054151217090520741417356905525204809691688039783601583320126938242475144112816738763166683552079756720593383045953620889863052352398851571796851666989026831295605593236827311757240461763896479549736381765193758535799203839986599094944247626752024743185818317122950126276369060269716462669956443932648257813574211264780840901304354965146237525503627178406698100351342259246146201538723135988526581641702000171566409003410191916776383942296299353543037112132468210134705449842662075216089910418010518373163403402023722577221660095722596108517549178024588978469897801465208265789226659346701794196964553585769363874749923377248068622987505196681168218233149640643396141583893269423295021518746272435437441362642458782231982855113327049334027605559988953904330427906505119344513140245348917119325695516479091787751612840795341598108962648268883467462791380557898275918081192809345293724376230642947236919168131227056232767794977133479212925514883176719154723864682481017932883439129276746595429837291067091539226833591425950558528496103177384920930101625754959247133086222468206462044506019097565941572472372418450949039288531481814624525685683108622159671880287934840253105131070872836195587968281964638632335007953231004280541218453136481427696557250222450930955958093372044403263389199518927923330612666655541436715501613132250135568497309147570159444614854334473425330626788778018043327744832433723306098685679902613450894695012090546993024890421991428811093097408124765315858240461396220313711904050748124349846295592522928653891566435187502012555113389189917899247263763217448025519361996756114012443771648288737607906794409280000693962957665689963408785944376878925091586873340584611021574051662364815310052626456858010895751001642293464049198829257317090577616829727195398516874779848123560677953461719305938946522524294015651269398778100826594362990984113522184411306239947785268120303930424012206918779823186391545748962498833962609926528242868225826835874918872203704713422591651814215319543466556782230268706146737095910635955748207863861414429515163409701867804178837258477070874664337848230570728947129262869624681202321908718176812277430855550722472190902113538077916132196248031717894734381046130427701365828983119754980515351330526989285429295689431199026215438267358107029412404986839620757484474664328168470667858611433235479807585683313698536031661423930974837222090381143207684223677438440142614916771413402877692120428831244599255602555738124304591624602376365702572815938500840817376039288990901702933857821439974093503574439686475019544390248159071799586404875354889489872013655915294698359450361108786743957745937084669731194025918976192577727373433821105036388544507576545693239074745957971787888614417120560446915048638696653078510409179700832619476651984730877832786540738963944265070798873799985849330415034053643570972966431798413692629388593409123355417363688646032023756682283785234686062845713939554675619828070772935965291064496583608950555386190123220525234658529338590347830868139107480943143318149703201080661908443230487419180084544979650869191465219114599952383726406867375114406847565401260439007843647924551298690724542804613146289779625591312867559234310841114841063358023530339812425305479450745586597459548517950376313758406093650941524638947177035475455405362226011557189776840515558609126896891762136450952987297408283031037059360677109627510976482227820674757771755646014898355208802940280927096569413360499466727475974020207575687387822834025212845405378024356624777224133646131458772659495111101393972080663173031422825506262412117401797986327619622256541770157781915231726572134023622475942989406505952136730324126427761508984627023154835573530669566748526111261170892452137728436398089536856545060837521306978803225648276724451250239972270992010255608758147579814235363631495181166207425248056054426371162706087797007879682555003587993356654213905341994276883988709987230767010021536467034818290196304901370483985059901637489444453149911851163469078200102865805671017697358095831957576140395514990188215203784697512705114753111085249723149416560049846155562321751209859306508638999520089582308890877998211859653338432583696376936007911428737352732561098581365408254831546590476069215979262474952441050292065472075785276160917046221801154611750791444911430573875964743090766859053007459202047184132717620067099329017526697098690567686056031232960898916469703432259165750414833300998091822820117949148379137623403247202751443406617283688586251089222802323246416746958101156592842460043907152933111802390291230565420994656864580631529135266858485373171749195486648952158319533610695570343056243940438092654982781041374310418621897788309621795520352769336794616592606551316767930246872399840040869463085076568279392224217738193850834980870195422218302818600499887721041805125063924536909487318502091039958323367985754729452263484359879051503191392240807390155577861582796828533889813355995969837556359229964127837018875134048931048479853970992511845176223956195898009603652058833841973557422946292435048795911869336476434391210464325329568474681249833996217817689704297337995807971466637762941522912143796249890026249718886924081698854457570204376034441244564765908210999663317681682859944383967224125777399648106909501180738441333878027767419966556230093958637954178757936008982818951502127182963158906950763795657814234982343225055324636890254391764230528262293922550638980491906124045948407620367620080620338831739279675883029434369123415328157564855381059723859396854954194153469359519705905985036063737940161010925187565707472985495415331754286697102083136426161797637554106252624034297765135323773755133405897010405794326325397252591633677393505933384136649425557770828862886104442266338080508135879184665283513664877218358092663381155074014562194267952527273291561470740409288587547441071504535751107492372550211961943522455732009932939783702647023460724223307185379453295903997735048649398535025379656752803592132505094420061360362310763389190845470986455445524487871559700727399235980585848590314034164367770643130143878844773272286181216132871517050799874624920217886793590228775183284687654010656467137669808194283727766081497643302556755543305080075867710774107366451614634124651867777693222233232172869177372738604919216701198905903359880551583555959151261928207557279779087073472941889484866274928747552578658456106225559176224015846207190610188023327464069831156217457064576612924949019560588102056829429386873239201836935070179529868382980623392117750261730903279671130737359201073735737144267706380179614299167212255071518254624155186774560603045255033577660967967241122278932879867956188021475963636811800387636938367861822620094496731478914245228572861486952648826169799313885702142178274256767706388188336012579166931572252008086931488162871600990126704248269808418332438566986928736923964197140788149045032733398435162449962499939640476509759951318208623126699764531767334237943514038265610562961016479751687841170937417853224901429313973855513534975244811520963236017908387224884004985463654830329130547068181780526130924336414140263194521371998471341712839980685966048106050543514457179034842532190956941604104000347410661104500679655531867820146566014598720634896250115090111708878862653569979336875607127047845994240479252132539849525005351565877663094115002765395562958208342383777552531927580610314654088520700182909935578235872966230008926202369133592566699453070813407258048394776562096246690573842319048181861219618250122457825800339956749352984705729808250579451376883014781088560598795876618865667823394189576349190496782581439629469818416859565404600617467195763260611497158377621829496224428447195335274627159529677976417091689968988416996424484644469065120319338513054940332683484539706348887762393668238592506620394261896107255940169940897974149108306367403833143553436874930920315083913657383753513153914142758141296242870033193856039765713700732884471307429493967512356909468780177633571173818187083613873489349654688489391176189269196015904394022962732845793034950480063928856727681961940301465996804912700981155139088901472491030683795237312047782391414568738525944186766368602158342864834724335134145297323434956806648272471285298485656411369219833931313711131798083731667658258621500773605906598184450549096599068806744996665414924392715082603624061201977545565150109219841340157810150775258703307017435439792722041767263000869730375328755878421605782091884807275823293060281871369102090388214833908308753089895007761967629578626561913145497560246886133822900052465988091911315730660398071847714998980002507099505589491846316357185139156375263993430123287169409035319645522260713662450497023270003751080769844033793485994515451367533080508728477298003807529231099753921869364177160632906863163925032954647381219247532362408889335598941841406677005101658586969947206986674488118162651580589875497554433577786036332929376122525827479936598376005030197712152781073332474925684032174900704973881701395496538425328175684854795962328478975751974312151388864169975857747360923008611926693751782258997998691223035270666361628043062550682527649711228698683288656715240505134105128344610448737487962016403896750075552053177358863085240643238501111135294816634378000109919222467778377223076835283871498883376865390086558509124864098898359430910637305660574433753697840593903022982406596967089683211185513609491090787518928382916565898701421194063441034468785826248030313573505142931650481643426099816311146920966363866808815862586302196505477775880274059988042960803214711860112331115285609333554744795475299113323727910572190904045907600298326633809189700940588170950547518367806973759427242341233106415299787124670647834004906543943437219912050916294946501335536598115737129685524910469844758478467137938086575660311170032869247254773894141155820612559513771399201054323867938341732597040027221876335264298809163640789418197582890181167095540953643358994741490197419540126884712983578620527634020435063424083481709936159877513911908564686826364032884873402036309496874464111454892525985527124002338884986900632224969066395575686316552483938786519393646525091935899342684265675583604953041896074375797075151399857764306104152223982033056141577234146890238918955940735926914312503077619702991442753825541121958573945481295290767756945586143519165707225406428850867233577869146662271908262851910834675485029204424397958997354173955162537841993617912644568957793343354540373531544193261608891197573040629772604821630671766787302661074914192867716686634231017890986584426090566221513401627275120534806456294534669088364291408809415802713231959582664991110153598281092853904984629069289094858311695727152644986095006525102503250156458740926964618273878767407039716367069113918890370502805084119230496246092194556202370144528028612491997952263128356677263482969359639880167524908793574340993449607245069567125414004772924150186422881951128479735085959105731328261078492235660034852264559599063555694593335222588422540119174053159281147923748490602095146828609666678692334639862757766976522253850543815996611460568852164538704711326301195064063484419407075042021330520460406509988176745774540514156246711864553442532981187807959053943281173542572666203086772693287976074234476506162304478104738177736132403134246408628817345008215532259308180085577178673100999728446718906727527351073287125534083634794887419580081794950280444087914252206118743197728833722412746325316673080871460480357371866576096521447454049552314284586894637110589099693623875267907189909824741870855711771852652647284316159804836949900724878204670906622801597294199381473994667973902954370227071869360867646112871374180002889207723015555971520942931137427877473953956368919909553172979413642904154490820861071923458620788648456703135536561848859568072556080535082282320429038797687124290683954515531907845494989032277014315087316166341605287800300951676686482436997671692989230978952967848667410897244345628719570868132582929816649836744905506566483033011783235443645579223098023450685105256269764909861665656123201120756670319614708209833487366577029008202047562831748137688607345779198286669533114737593624575468279403768629226881645101887245458689207401987830657364493223603229306840523535929170370505686614834194043506818517700580775648386550384947639050398639886678497726406231750477010218890537894532392574915890763550734279166958608588788234547032273745909922683930359262962830455734558374000831604001606966284789084467942026971929414891621157583425651135705896904262372123536223850238148672270896680664783519187222627507646737460295308622163571275531632733017165741565375124686790344481108292167689185546448438153989288789468410371716870762168118737684641951588367867964216677198455753041573186731440123653968625429031071306364605679721946823961468217169714106377792971310537325737929196474498860295874828904763461646232715190282648260389777407053007195591061120763989509926015306879764900784737755912776582920859219252478008911619423779339281117592586520754593022670870593463009356991830690926076580556226838411066814708371836615385346991196181262942565127891539246709198261660973544684239635501059687888261875465809590990598849238000459064087400530806845534196497741621656703452743901473371785562282122586005682080626573455518284368213338052804220714727398953771644088911291051874593848952346248783721814209051880229637467973279525581100087529390761722928907980633014784732388766772295407397666571552671931993018937620089980275650378690708742965426139812448522836181683412556972174411828742196576707098079490084230475166766015085707857741630132093219636299752921600943128033519961495713323548572047662471950993101917333322075003856244572816949287998277304443262408691443487572590728702853764837722801530995954343316309037684438366401651209958367764675077504776250178576665706322648424522712228087262269937001557534794754190901117923941670572225464722378049762300267090320513406918438312712788587162222541485446084283331504504759109624723270161247192724655834770142788071036638476527187868202349186005213942831423802771706107859434810547905682875327940701588779030243714425409888698548658658505600852774856910537296731817553830654982065574281599877736858891757337177278701078733819766827866310534234289671993828880669482615126922192703384304297855842858739062756761124293344396994229516827704661556836227222227847070620787940215464820323329383854114142440372352988728829486323485457202554880892224231293303763664527087204944988533743373649928569428328228729914814117112127280948406756689686081900207261971012270877002372627076402424867324712687748450759835296494864179389356001644273954424204299113684299863009829715172507842822284860838629799540174193466207634922687508803555272299752091730039462061364721217242133963912767961824552550462352603708035687623122044760816304256249308598616038258550509745473525886872511499099058635636216252977556272790529371435330779711160369491133544571341692222745603903069971224247449317223897934040529115028978369755730684811770046607528634484316276110304825733658719827148952621971626566893825784604456136723345323228120804810041861102204272710326118496142575615440627921768480288851372628317764059842233119924987071604305648531843003319880961586101604873168356860008441251936290794913457656762696493114319466454438629033466218934146670158696381684315735437154458309227079803438486116170041756844905564364887322357208002083292857216964492269686464992941414617513336817414098799491364911087147262961063029981810042813609206519771382826533380371361769379305696298513308523060543026461428224226768600530497249104306493834622042042006751015511273985051257158071012205644899564909878235631366558199973847406965137766019669977575739352089741342264792910138815438958667703892218687216605012051259812990618904459730978353861603893423348261955222402389917562793766332317202244180119127963886651204581936386156535808052495090116187408888042253952747921241815778389865487570150858950210383407536390367336416354786023551172803409709011797634489168545067324732376437664665533495862223563174224147725953699743391670995540447966044355725263611560115990690324199359830258817489221913971875337934096862545549638446306670884175040290422106231616535578629986037347425045430455713059836566444742975428600101206247071184359491223941990139330241184731895608428106920812626073724963030160656905555101131799669444455573672087411077806085130203154072338590611048201143589294968476240769901577208029163366411867378045704228888888407791518994226003389507615719140058632381541416781490166387803896339583723487582869461932246803779842874618610715338993643578584474247532964565524678803767262934796493593256547156474612972313737068786190100933406679121092900165445482822525465467924798606276553895989255973403428844909463395127721000557794697129656767183324183181339359585712646194790421185418317126097660530802877216039374301017883709613838311480675735675679598618802622328960914941172116793011732514910136831520993327240879328810653881676780286559720963282540548397911488147912799724641122496616375384380151584194173767810837139219980270092302493500526080175104236841207615680873699927682929220196458604260977758432020129522637072672666641147472190240805367185056312058849911205695683795833658168840110824609841219399021431134906857071654556740618244261918353630487014591181364309927311928688719620295996884676035906458508216367648786868676582893742766524702325766313766847602838851069728915451518434115788850755290651787394428036103053204300446102250512742655239724668896718419233870575345846403103824635245825958595128621131885678918828954046874234858918823086276493596611946577145311333043566206864100588251064705593636153186142838826764705765103836311180886815528780396165393805378289156683099902953428481980941000306659723341434915733406438386405068282468676572799803364074376316302283492485210957714262856312996291992971050073856523671535422792473054448723676163900402131120951178637958507509062829129252847879145032665472924022437424004360490418734531186876367117125686730221787605578894817769020143133068467896925048196535877764722357114907573246745308743609750847604038456269253455447105465793096763550166735916937998805990204864232080196256499615632509021256862522421736146460516535059543024607033346258910948821853120998290254557453533429746437755825976648147329755174525598059617294424588541687483204937985835324470078106221463048917558633518437857190560222967851521261090945172443334683709740719056272264844885174756824982201789323754224979818435978682435426269962466678207054162340852491453573978936875285615910231650264267796522035665251230350843571276294154113988141896293983382333487938084654558130915989877143424576655069493879983158324133028687136764504188084585182496159843687071610525913576032355629508266819403886891083262620553686597223209496486781575231060831304972449191218765782482343101660590182295413511687133146574166699856126755276716102105398437427498745002058220651106359297604549443474656527933767228395676577626572404393999161353882477541176292828793782928276102823161440722289410761367448193194911999758933503172981293003782007290371419819181938662901788238591068121033144648497228954873950095536241039346952594848866939030132582215709457935131824025780436540978314016743612792607074962929276075834878335047683211342975083143351541759240096628416870132603204601235600648651587632980832295920478149231591284539532844696529185910329998424332452065123494818439371094299113157458552190025044595242431661700720756465995841180577313915270326550603591904612794033354726006739999624390139253749071604973033930893473023065603988969913430494696078414995170461914540742214072535879291980232963349143926146314777944599195384029841048516816876832979264863487034041504536556280784909219826402310080624222298355898723510382959699758928957016865288434499956160069453370097610642629224064563285264290841195935634343254676638267552558166184084141102004648278181875734117610756713014824055112582441964602025662502999200501648508631203502409663928105287059918987199586560822338020218786393156903881553415847669285093463046817119148088640791370745706867631409805226954152960085751752521693692346652961650079889438948622153725724698409301071585186609115324603710147685987493330492859105058730310470827440309425808690200259336367543627001953391253875690124668463319535182998742697812681905564606537447736953704047643099396315151158623770963437217992980896326247745515107265952406186791018198378917841396292829622164579853061636269993858185657354098079332722202486100465471931693203109503702785183270637377788749457983640936918318179696905074258753497584942570051097596708191014472136838936667342306643491530690289237452591361429617197930297144276790776049475242947023189339723067979526339820418229157194740508608280321725989251576530268462580378833867511605777274316043631815599301932733294451305524262056894873556878001140281792816769044133674403723684553465211021709079125891550219055997773731994258050557635684286564929236565146026671890673082182863050821369032273965195433198492322283522071476779436393489605451651364236967399110800896535570649201106293806916748739175884628188142298489050884426582885231522795487546998730929907412474595669224845731393701182910710321645996660292327789990821552685580948266329694704185855947746458226415609723477914490818163394607297630188673851066080302534154261809086421725895267088402192085326911729865169768088185306276533612930174236282896460932360380053875213041409159927085644324842957387162921945919715242752257841933257464476721394787888360828193093588380623414846733401718518670200208670217502952483383974434084630108049767437653923864731361697777610598672143811722184494915571098884636360027397579861334301424086297464443138787020070121691659653314593829392511477408364453397269309401405586506659583017781484418264647361405949796211989812404752680675386650543741023137349312570358020525174335079237901484755367622492794927957767460924685439344150022391715839247942746361966534086743587787603847186708857678113466951732771809341221566278329711820162845373272482645845738103490910999135618911489966335489950636569000632639791374282467931469713827551199601325818726398302154331080358922481892456758553513162285791584215104271754840107191259679402782148108519890950310502557489180415961881776672005930599519807847053221079533354347263998478633541382935492469974982477793612750701099186233976210395732871674150426009793920047563886270169334225012546078872283411026979740450618095213954436392723387371213084315712601542186231376768198799156103449686776851784768263152999232779551854500585129185116274840541759571235378577590127596223537830322862512616428419432212180022447846080559598019636042783877202649209143599272396012416828225315089552356037401260903121039618363417675288195521370608329289561563763857934980204764110956977885309133315986336138441385320560681315138247594884860099809864893335928457990868622792174340943272699297626617156515004836748019387927744922114759870116543053292803833920528418525049700475146801146524531830551510627946331614037524000834697749017837675553718353793355678835343520911249111631429356691552278895890020767092147672687056180556324394566770576790292602579221199639907536138060242152733562633925307056046292653465592633999579053846742125858152459298687779994806245791354911312864321930164083168657920073515032393878543125214208883979219166079655019594164990990170565185328592943074708182263765730441621326262653901717025955774679729088437919579672356158106899080804736884886696503904484822239782066677229874841476135073998384796687504965417143762021760302651760626180085983044234089928064900041231013246690470100859097783896888374135533743421903262668738251984386648519963512629903449509766882767396762345609565399744034627061339065366354155321830244365872861242069313030586844519791011155375872477283567788735839298629342299954580560723679518620970668998110548305791169768973263488768892820453055875458519180049776731327800689639856300037081890263696005475111583456227470083898615056958499102030138451471532877633117269778390660836631720732472784246303329421461659397525135899639601487807577546512161577528906740117289640890095007660013488325875576399174798117738989932417312049925876247521579654597552484299003296548241394586526145912868068428300309936669017388981058449601863475110952375581306794648843630430261902899799766098410125301500692588406474372286048807886293506308344959210241809910022981751341064944050169995306483466798110825784248505141860064223594075214485797285287781993829986144233204461700672264126921415908572817324347194517357992115859991417923272940665592614553456793636656047490758508123401156516907175599045973604159063657261611785400292225310946441582959392712315359315924609955334425455572005721516210697080492882122224311266953027915987775705952639734022716003319261526362363405619799147128474017081049660193269360367510228367579051177702925763514264956168753285447272781882782109677549400530132726344899028469365988718686203040839800017958006693845038819569794251536201318992083867607357683213951207421266765781592799550017442451120825222773938947977471247625188173697238769228364668571781675662336384246740040891203391904529434085931671319338294333592433904521559369187235975434230416851667673114733248918906564236390479955607764606811315802525259429828691593571006889015534274014223279357411830562504429275447395660937316815326621337253375615526125346595627948833303525245098551776537980742253088061396057074712500916939561985652580433617607270683349543432301158198972313508669940073259729867750884887514594806282148789832675211941256257802571177304155123212332378469327817996818723313291127969190265796230776397458576458543249645531260097376761086590481416762799566618033166600245678501410786889272835595551010163810360986322425816546585385631911456639819485300949665095027353596817185573803615662466387684488815656907141912119899075426636083711105895837589437208613172245869657617933948430764410046343078305210752217363103624351471720928265228868610010723369267233686904266517336297037659018850562631046036424036282130346617236643968752385713432329449835000591545164327886024460469857647399781183295287836402351281101958276976917635598245119552346490499563687872021059784088120631707576261407702283720586053288323112122579973117464972080773979117454954139703232973083176793505549151856479510218708898925349118520370119778836077398280429754788869915581343843590056114870794352764351425017538488401833911810956801027272665526174125288200025336075613547887670712116877988757860166642912642209134270478339018826674450729785622851946767760591510103697075162811842117709019402773136475483892277835303900939939361900314823832782688368216611425157997917175919608090682403739606144707349335870509840683264721459783596525711385037625294077788397232096126597947133185177166451860758978295765703905595103856800075563858968969983948245033680746530422321229948693308883592575907044840622692993765791802104231172071186393257539059544649045018092949882227476921157145231934419375007377816970212014495736944031034236747977849361292234303866900090639365682958974205056457729786040284970923640774219126323864627097779569051481260463376324323280277774303472662173428343191824592468570007413765023347457502688918980953285852768877641038865712197257998506667193361759110606508136758392579471833945048511249452191125440236003588401390983023008186674275164796149095248070674274839056629692838755480269984599049378749284464337937523036791799605590600525939100442050304810890874773286681436019608448019593091686393831625303912015707544141472690069349760368797239694880919781467490061549324377944290781230265971772786730856459791344840922292577875821035937422742966777351465503885061909470530553617217461489045187448295387913971345775165943005062097482508812107765562026534293787389655075645668430715922369087102809693979852276450862526396789311353083896110752053391108216994073678464859636906142831050901695814786814415275451312365988374556873534028159579075942179526543112685508334752645515361945559323946500136123593797664158084709214423405032248436570139097676222261327383856249712770240187740684478058228502858187819753634403490650295434375582630370356067509513626863863309481975463144929595854043982320330387139068183437699649146027606095730067642885546620893965535388134798775040823560630325489505881115168744947760477278104139113918879456932136411370246296159549216652166625370841437905442627130386937472593360692858121354430978528719458588610281269281414888623295661666485314793737520919265648730973200588758061549045471448888387897087666607760262241735551126172311742705849835199257876854262084253375232910114515277734500890437305411016172948269033677843668575293086938939730975997472299283812780256949431232001071052962501814888761739073230048465979489549905844826639460017820650623369726669790268006487418268094093943069806976049926150167455148933262802033883317555897951186505544382693132817969988336979786928460007495596496293233073099333866412588380510381680749228342109538642146841292625730790366194600925745795897131595062796117775340102396414963510387651541383246047510442317648184859888564861073448653900186825825487379157245528363036314827454465521608671719066251622420031654685912615772511119887599398397564553653465546461720927516548830374808769272197696365214745192782012113009331004932637390399925506659661869118040969651470786808505052697396423542661550653504487752585701058309176264460023519919286581217047451847255628136171310137996461394826882872523839472172438635505571118259692393725071725714007640547243123262701423628738177210004883327634792095012426664402605465064020826082261822269989330825817540110221310059421799741227537968309080763772386172505359119729963226862098373562421059715677118127707307790732711445034235791152023901402023169657740320098938318695365057453715293939916050546160527308147119080084380021238133344134197767134107775134777760818882068757725015419889672744984278418578986094289165455869767073972633765705624482955180911132905297951685731813301196678461331393235710058077202109664059636380983834378991808110735935471581282549798606306508596945688136097110009444588644115488099276724017567425426350020790859367119478159608226573185523073345853121744670356956744278208718169748090909241425891063768049544132172345127575427539861006639811204977126977885112132718981609191087872800435037457850849482996429359111009267493064378540297036010370603090364886110319915489764698599097186563528170975122569672452785878466285659061633446162348119887441840393484555745216486230414832911291130339677788036714601500953352312157385407406963629093443934637757784083324769815909161296686289032978754240921456210035536208078659376635477902912292490630520611633875383322625286307631353510407791412989684680325554209279960842387781913644240668724537223618181684205294515883274322404016756846275303061007962107161393236895839187130546765240269182423792650527170588523525221376315989809304727336017540581526633132391610612815344469684113902219857889003600951588922094490006045135346438040804728997785743032655014761354460483471864800124149785816054148071809440752404358192578351033582083565556817719289713620938310627437672607456725102731833725326699440684772875542315982975988695877568729543557194971998469731671511189899705900469091906718408186142642175028558355570725662701056831297563274314833312898699103005780546279219133598044611820277230657887069444159642330496631262803479008129919023095108648652004402902655298972935092530284063570962097441241272283569685818598848588298892401254075597341318297957333440683130995297658949516596758069592446821982158198391697381918884628332002391511256908800773850877175525150844528023659032359212020332335856448382761402543520331648546040856409119319203427170774098465141168275901401060229542396949386656981089996186956290176724378457274232341287811063714494049052604830906298198720858233480186985856987457464663707725164519323140360920911193385856606355731217628219153345507531778316633339258070793639732313606113427020047716463977037476308158530083764638505881455608955278638995928074029320976380035778879625464992477364779255789547415031090893921264213562635679687858280496633541048114352545875435010269864610437226867799252838815307455774396941552319882103229714779916986249577021791996785933990829084601378842512955374409355728628661186889291712015621459910107190206058094153677586225774855570989059969523776204520343281371676475717716490770223782789149001580574918776534347455233279171446862178718561120005359740267130679541785304378125578877720411355039321910527282906112280849493589410199499995458971519571023228196051063840604482482763825913964631375309300429672443612093582391106678707845782203499046842018555396704000305707660156754071111894741492708914831852760808700014829900080740536019219811419147664549042559135073316410760934164701577479928178929387335770810457564682931737401625732948807831528827013882191036158649943975256984295356058880492527310189926189676743793654627038361321043657374663462862140967577843847464465624931689705125233392348929844102361657402035371526858886886563031606432077349297116384830860229119184325421702243731447718024284638820212985140216182961184511085855137647724962315001354835350149770357158046543533679973138806642666258950327715604438682372876308727292610278117333468953160339905335585339050495868210167899876465383334178053237851225996664645954711508726506513743050105966051620714475013150426686844008059664725465414349260722904884544465378133577477274624382704938034754871693743613104290645836780980017393195135867031248608688998895305129634639717976451137308207788458643909398139906704915859434640311946013667829066846102904602196378487779477468305634040128206318665417098569250478635579771552141661854487209371378642951559835119927140074931092615144930174632034084962516221317073892417347760100712337286929878152898264616344452101701502159311566750055675289626815485079225743491187175761694687144387597488170317307140076746396688396082470213763184341679702373502056289564248720935931087015218718367021953240538227398622391986885757318077653164272881102443822429638913895318769647168428093538373989565100111978550225954676417032601604233664530444260627496001432123562569629286062983579273671703104784211648106745299966038566327867757756356190252079522540040478255054114148420017889926370753379738051548704690204980535441531678476151478805077870074089237713191606507908460564801541686801730687540169893638949722955602977397476863048991148158041778075307844132765871829334630246881973150750267127387749568157837818404938122438707114987956948996922339513375198975231913371487542851801360434030188869619856442853242461945781874273358483065355015952553857265689184239972276163647427612891670581800720339162880259031050481073829837938087919085827422458132320128893139549429886895832438316384329756928018565071359433965480479447193036516617502577021944787099411880443394895905052968903272725913872103551980379117229880640344294981784092876801976838944855204747713554173493922651042409917195892072372007138384851544340335330960241138977956930432388700623231165161221829073471068904158337056646955356097086593355292626509711741284180223805402045189878283416969474795048188355567602214426648001881469609856162524292596764731596872711122873920349081213142583168599626936332463345622941927169727570062335875547096154095147362048839178656987688063650747793834720216780827008092991341288179073892879379959128412288238876258117630207197697546913704094951750277586818937116845923551618841283931657580425829333344079878930135869868829401549493788136720414363278756908504599948426134510499935032190307677456858797797369460859732314011140178837715990343582047673304953223854664531287373883395271149076610691443906279838677802039405423094746344925972640508924725366271157774901018100987716086858223538203890357420362768106001175659156681428056033834703606854061555656486541546307755846190308125938191087206971978072390877346861396794366966603546632874376363436196123699710555776245421470373621060592114622907448013642081097386961169082554168781737925103158471582140959807239270409868521222379878767539944073866532742250103484428133949680927306569387155802557445901632497571197685535737125892697023854482351881041024003178329830381356052077804629332646529544486050366216308988213790791737149081925202711575338456861384596316744580573856556058108923875869461957318429720597239522898663324908709331080507672969164779569088649492344485962211817350460047796282782789119328112102244120475310429784360983795071905676914889332277084846683828090103096271158051556220204843880159960367235312169328033267679314053007364486364041920237924638884217069666736954069763621963674552867431158089296280712634156188476604638630607559318723016390315206984733100307703113979561124430773543968888753602091249521407269800583005983518123934701218137898772206158040001499184772382099815078316628241489925058823935976455978924636880571845079945876395659487965734209036567580932534562704090082806927554518015004754943794149281263977281549745941173544682866089286776002157646408576700963542378552392314526262575788002408860113477290885920533145652791952945670640094881576548426764115286575032037901302593536734114834704523458721580291085131659338632496880237483773519628704800930803255338931734393170537076320226092021107502094624340018116661951652909666272755308461395811688098912798581764824857111742591733001338554785446085150224088550391290310013832926387365617814230074215612704929834795377918433368741532000001038905494029055233090636574067383950093766418608218028429668521701321319990606060739651803697959631755571059981143770234648430424832115004736096804982614508847948275739646350552035755581073771164538185753221304941375945577815455798870758671219211851129303637018161144825635418808069268335341729916177677038795311920522738168812398780824610327300879196813371829790751683340429910969637021982376624041804803819180438648089011873045169463640086635650557528562308223053777625208420529481038145183949692429949052053446220609759502366077658074484885914191716410170852260231005418107917784379511055988518347903593950225261086749791234123889183209358441325362949177833661282580414482995251390316767623608566138290177487502215428646434803877573720978646347487689524888509277574137012510397058631774223344338687182935194590361474336078447818067062091721026594462790825011639234962779171951123258487501745174123301604151465428547094576146692465613291453318954265915445576340733052499529273553477367371960881205726073139487843439139302949732449354762846916897884464019841795520994669947454043095161995168836659313062045062872719931833665399364225350990648071221199379454793385172539146816785297967174818667334791189530863391647394935480942114577037497529937006074225666698155773769231682418810471644261125911619861081446115666562654754681055544395397569878040552748805656166047139670656534809344756638268795662448336152639644339206970122444809532863502360455015147154224141860701642456311210539555206937690695541618976179866536289564482503280616532334345169841969217398749077882414249786628328914049770069140885468366495641038887212129623631893648516049799843108257834917019240356020452009615909481355349260409832311863093505799169432704620598136065498768370346254661730095355270685725572565097765237335514935866992161460065049933660335513609822030726484876369905020917563033617755370230304277363961349035564082574547265467513524774038086985556326964594009987645288005282490180473242653357876920580143921492893044833823056009397721798747089771291713820732177854163652365881838139325658955692879275514737217907704950189015961905920286474760697887147541025450695901665282350457782934233714510470927259377424353626648968473349333651694031719478283391602857132748980031983432649992099059021820991103850057187698311351927505797701805442250760304936603711610877221596943106439938106952665708107794235644309795384240817230928426567614367837732776147661278638118686080997908663455875008320831727206340214907003807857356342505039715715444031964779268360692490448961119733233865097388249422005219205416503922630446631769533131420333390874029528673332713943195858752696440597648982720710646325177500918946079823180903922506326572864479329731868232525018489138816634004272477496951528842497893090104575781163027438496977503215134195596072016936326781820193318170867473119326525672622048394742728310180126896592567033021883814781357701277883180825620922749692913014403054141215733479833325554022335952102074244092445071812690682363981027498254758246340175596624212495954960657402503547240942400641266260245474528178232039772804117392286645869059557916177886545579891858856153865848503818382093582395750258937298818641353453227026565295105123246686631224121691041487990087178386654227633454734770322662348087125128926436895124388057383962978323222218430854821244698843819742368814204129455420661631750665602721477499524042348071209640749563244045718984823933647414900271281847595873977467490292214993447473209686649463457957357825516894300877858651512757880407934109220189296768029847404208569651406486561473659477003367438076885054616314146854237042724722272112996723066796264057287993206693158345090474299044958413415279740835806234480059806483764901060462921834413390304303419185282472151504366730914645248509906040176506353734376042379909266224562538170596481574574332377761589186540970908150044409581340145063481727760189925157099661379872526399610213631643505248242667690363100784492752452539754493893203288619781111501678610978184426277906966805068828537508182221851522856502696470349137690473166419019222448903423899422755813234957374015892577951286126224817246277527194504967171368513926324241545623515656878012845671928121315686682187846011264221479465141733242646048503754064153067408705775498802107164447796645059513628586417142422941419126046662808149943183388748984660158233630938576325960377941451338941133999108244235561367028382160673455120296470219416145329505858069524250679837537224142318112286922364569244643448421481494161263697765365443192866810822750705828842233145166365356682925123221133097481624989256623002205356860927487120850700949094473058609713977704263636848097561667499649113109726348633093113293084204854944749679632432361092868451988843462500499228947131858365910492498733677195031116848858488630680923141965399547226519281615064241304815793436733873408828582276351809393838309888209924805465777075552784364537872688753494259618148275561726829896240260363734611153888791420429553008103985954751046040988941934764316364864059594931857097346769329601688554900199317017421436753205421027052959847497823726234120605026724235471112970460275778330768918423677161160029672414444425088736881608002074985827750344726935947167198080220021834217138349008432185691344137339167427380793988123046955246902565656662675513691473834947096145740111768594346942489334983777520735382748191503497885630234057606977710353530304166006800824222312182282524495739876747454626245533093996947040195460807260188062837887157923043019939194727821498947764096785569073526399300000747580522420509568362686024490689554644849451918629107393491818995315526734454800008501668436951989265860648580780682204739288884403193077362833194024856716411427672723994352301071007470625409495504039277863272211187490039584624900561318745979983090380010282710568457822095605083449263993015292827902803862142413686372825007320116380789011412142824038253968683539271609919252578946233779952775153915514274093183583135880067650017558002265984929260957664658294156723755827215351754214112213531185713812943126526195609058899193102906497316361120039495933496696021958219774636352358204878400790006824716322774096409887120528147581924423511629191667915623232821736427515824332321870631705819867782477075239282405734564107818775945694563473812829945579566154410377400139862851407031693268432134443610475824878027276224790963409267488867015945246689143714233995286055287264418080099305384670486290706022135698810323671725968892670058371881505552812069637451547684682201264329703366385809576697747346578911361766952313769885133223592525134219753735866913915447136165858759395352378662542854405963349893751082833190402433326648521576089937858994308106939921050739967342243407959309686840132817852647010657635450855945187682628888178372611291487776773713457940327458686056640374448828533138593989434832701065649235176130918368674774487303819815930600922696662282952147117870257940937663100874904721718799502141495885013446023117821263535227997225330586660339412511493567943982838813737469562537256300636714353676284250277134682237913005829987835881926654465205463763457622666522617635914515016048759605282862732359224905948416190736993753045948103934686474400563089606009876099334322036980247772308000046475083059073274578259625960501337687361884481335186312268712038292887286729721554760842086069407047842896273599269748463088360246380248550884150455422682357940833031877113118014953678562380055220891405538335488851510766062721908220155372296234595691745251242879816598164522040371591577087038873030464727443698968377556050067297053500258350439435417994567473854073364104056493429350272372245640341743111295466931313723425384816586589871755363563047358056562215468406465249593651406720907125299846609499064934895382585837504461846152477760895928382976100001631063241998035546475534082847917982065851688263099897718651711675424510507406598923289077578198089046021807705557698444844509446692274847705854030831570384562402864697604935192864894672213859112553496869357290546874337186166504933653581876432626681584947974974854067695209078425889725502735187442640515393906087871251764238236610376031624368275500431519380958830026847673782944322954205159586084830828308162197577469633057763738802181600818338320456804118827571609823544369010616335291365026078912073734873306092247339865355100667230981840502166555283287868273605441557056170130184496160460408007928031039957094243193584186190800425430611078676721546461098652618702733946121093950647472397365379035628255939525615571757750924035519995638871126872982617829007811195848373142722224621556579869666609710148467459921788753032683359752799965469723845375051540879512946482556363678187461919294413137765614168744776140303684219949810382821404412083660546042678357552771972198481173909078942476580720972831869956589697265888677957015757669773941602143325142129523894159117398526474546163137006714394370776014188784897089812364823888635580974829569606450022959403487000268595940764742455556968942828181320679981004041533892852461056703084856560815013380413892915069524689814676280427395051000775739038931067489938921691320082496419909081522981873949537744203301555016158907861456570233671904575531051851014936761802687115714292457346328643003270747918884871644979343561145990606881134627583489404418465120911164256566259000005122232532217058341106766598158501293363547424556087693256261821477299853364069403330193762045783100935077407843842349214541233723516858467510661626787972087814178546549495420796608218776165868144761471871506848439278998308010606460135568275701005854712579554993057236414367370749876199962236289068683222279691558071667689254552757987634007524462583698300745750912967663704636742004982467743199723237065559548402451730286040430646077177414734705267218463759342034800189785651734794951053546349106596089956761116679163228329901403039535054850821170138360285802942312057765065858023785479322097969380566181317194359945428088359501653144597219848295922449430162206464265309200900284054898255511227364231954841539382700031195061782203023066011467297159150329644930900278019840514619711377590582661913927791381672844019965412113072171879826773823071078969491839380257649646282371284129247190925613687846219969433419864381959331794739806552838399087495849140349695571601561432253750862406216782274859351375242950041761443815857255662337809392450383645034161028430157552957946800604299672688966193434908195484570373766082681667098516953071018782562587527287918225380190310032115213484564569940690343562002657733053877110581326312405029151641504449939706475891772778418299123889429812475211448719580456659109490884500005230002151901132180642391879330310886885178577386376132132331729559686338346641619591926665846704606483768572522892371174987920483271752263030235428749238280504561458448816485459365745282573913105567153475969072324366369635006212618162044477326108522841177796185136644861899848844382748049113428116093221460377764480678400370571495610010685774826871908270170582184961517179328681501634309331788891372016894914254989772709411979732414615375055644455021822163250579998554556638347142522667005804201971950174204487488501508440229384639636051478912778525726107798899488848226713276403065893613271816306565337295693559153858559564580628061466303025734289740429003075273687952346391125295069717556835475927530981361176082762466414108577241530743579491309772915509743717578647778261894922458799858618713699009166981735050433313159689533220075329230619552116410832237566442528112332235171745187562915244854084109111543662853629393663854204208417629605893711779966801273304478914009626556010052360476632133166665003090874688905958545753133099329793053921921238240654371216030455771879218602339763340864165292506515443708202056618889373249558163524242442680918056900520774197712888498020007176131638969274582819097735916141701747076448760953030492450971309970310698262803473568453187834715296298339734624764871840095621554708927665896489199975699674293907278705273135186317651076032270655877068931992597747193728122593140512264139475085352389020835839212802339773011009849221693118590189568565019099959777009431514004156257731925853247896193187934848111705115116325800986611482265173894113296374246623587395043918118021825846266752823649297557939379043398790596836082136049889458562820500034524155162712053524416913921367800759379575935607704765302294240918870265320927341661890328834874057147641781490487622672638755909950441289802611338493633859721785463247849661716706206574079869784337846163097281966090570430066341135302417691850010766568360587807950432264732275746124981224769682484495187864074704279205965195512237753978654656137950628462387915788197807932738504709824269715751591653675026897723868978379617859824077790438614824128177380760191305283868178407153785365927980169336483957528412492056252528173926319724926372224921658620860994191393582639365075483240036622714542172765288246910084195467929909927540849888931879698289188441190411832768094110574846790715055284490334386181174368930272826231450541145879704160571687310184590979294325346686603026926784201420608107798876134881214080388296576427009867447057588516628615186865289947535470267946768830926438005646313253947094985368633536726168843077209520979609449953684863207874474375527739757832642289143309039937552511103444219330254878428697372472725979351787477493389918896507136146822652647631756263052412182660415452471591377171863248962177117442103760663897132117644893532084252156712717811497450497655551275808965567675979128681592909409291142598569644616069143113472451330051582995146664403010762514248191192824210580250479688244848521648430869335164212271087280989568118353136580249235079042663430198789735927840195903204819632671779634086327263446147368709439246009564550765821847292490042013246679989348319631618582932696556228756906843190925679627588502060180647059325950798226062509100253319570666329931689802739721980296329563147767799854924439052158505592170843583924150393288882518689636135219449392535353983812529798048409316951108000917613073245063606151964889252838953503297469544661295159582405597642652935514784827337010038316381849661330309322250209402604789464313816736953767620890919211951762388791407590189203715207917723886217383442916776634919083979916457849103478812867711188433569551623143501502191171619075848438145479116262769267801053849559801250188343699658352396358752762184050296431164048424845737850160709736064262895916683173020611783303125776796912689429928983798606959317208040441404583693052060009576560519222041397095089032293046199160951715309927723410721580668532921013244064566114433069061674834075637579719582984126414496399808233347868208470488101175665541658953670244057920474079465460530181226861108468194286638138054027724548917653324736713681314797153486052883910596531735809230162845997818641230235171730075415059878921914089151482920804193438204420367195386359081639287671975457230904828820985682088860858672979094771444917466575430992980165979219879302490757141319596959682580991653520324649232215518084391512503913240582929535792529772138103324615416850136992953869915539869490471546618733955678270505196355672322273827090663289281757215919707422240952258047521160096703160739964254308010978189559276224734347573635650356684381393929938833238905971209032325448010046060911214348920730058294498942325700132037682405028925266777175301660164729182778358316798487516274740577904660934086412087477362582440105215253492601648415939585080574813785921338849178204197980784235634745542037032134092663078264326899702897079199965879709677053049668172374133860792874370577217060566643811111337401354125342009134591742858442147426393566018778342812704562096676780478352329889118227656629664222199691903976229566291771669584347999222218166809299536750339957134096515100951879502868933166917306068884800830690405662280959168518456356407492288018843139148986115521456696263902795777675082955223330988388178724411852588043446332519439753338543482835291947404086702397793198911918797006822209775129856356143754326953618280548895846655200298355098226630213858671628158921832219818404586155284406996784051743881119380633468618694267493367853265691129787366452411186495153550056534480067236112996063616330915964182364331176769131622088956831545767346145886284710768607517295800685410533107782343995813072446443311034943412069820565132319871301689969373403121999423251752594696093428655891478182068012918279841962314697729513209941570576860703890515232307534980136236951328447594286477119368270094814628134431295889622909734335771540289405406489074154456889108654017646980927703214068058843633748790989688290769783355996686593686301465212686114456720309005944830275949390615900395474942878789898531899016349584183939848051233909375935002193401963294113035673360553940459314101331032903265929016576178943829614176607145874699582357100118901906210758331130908748707748443149591132414023712186300187743321460119858583982616224853620490167923430706425926664688543709349347906770274103520088632177953710258836005729882970561153643576848602430662964368719226730317675043460890436588106649719176324963394272647415585989139477588441255690677148989261886271834882808753345968084613216868793256506707417367618441155831038508907857232921044936145877989104025713033142889291142766691833735586689340962247020165492111065900222726145732109932130883818213259729056994536953767994303197125228502387901744419218396863918532508352404454258895704970192654601933897856672491342644736563894495604570394821514008688079410061944771228877822773003249844832516219851045497640886779493749149608900824032387728633828300534900630459066218480064650550285730365680818155070544603212289521771058152253985852305961122732924271544540113076732155806530946441554484861810266762192934817595391563829280902258378870967091310941657275232155631608286006209686826469813693723277952232752393087552405615281678076678763786934520602010786175402568615327760773976737059163001676914230263458565347218485730576672690274720082411378514012769801182869676585422846175411746372654746995818861276509521890368688761486403163420368964288073696611833416753009837520611521783231168459791753879144854825382453872428020277668862006333612777921607635613895918831196302163259961494515751072767709696426312627198393076984379468795693476982118208193242416495702222678429252136942380067642745111701494472872847534685779943643733397426922628448166351521515684429436268245933743132500034913131520439172240231721113307713016249139212851808170437627258347267066801712281786887331897023426758864080613917193359468353901233725044640099170883009470412414164309635317179719159315916293126097881517420712233683263336494806603105070227778654741525154419766768650548342995847760517833651765911478610201274440177608699292607683227977052742489694108393700338812539330740908600123213520701104939273738297054446535925733714799923842720634127920432822503860366210573008218331344670347342536033440699487592113813577228533184257923914160072250765854030046210576448885976876539083315375840841626979820097785158215255815933166568869624917014711858049737749986694818287026541025510618687781240197467006321375729455701955042887421899732019859130068135171024604848742486791942054411801011010059569588208645646388467317665623096289348909237891550983165459493763511643672473946123300656791599484984218161435805022163790844855066172623970620979558834965857346407620383803245547062192835312938047821971426276404516479452456220699437227114088370837345032885038039896732210366024407330668231894400569259336627271160794898487390514301888993554225502089276276691307326397891671615895341784684854401370733511793318274909713462167364588667147454469790638115554486539388600486514280315087745603294501305871840835348057902684660487022928260249792527102230135324981676603618349749969667618981729163737888203172580962744956119667812217663882713520827183249766232693000215061336139915857386991674562331653005115555345797909460221811314688715350666541197351125910038458862338032278200382000557235809088697431122182272215878455014773922403702495898873289696857901999782866698319961496355458788580193233601641145484294140501488650489977397212751960808561979310431158820898830875661413348840789025972664234452857650540828530599278353684275833693400909931638709535994193550421336914840947311879337640022177412790156159497173685847923113555276076245734771172503217219536633162261430397953982453093222304831352493959074167821404576607631200033326076615809492271332154216244420862988696979410930104403461849725303254128760574206147651874282689751006972077316217767374600745055615235345022544773795062509569725118184775822049178243922029062374190402946663077155910230173558893319273967056581373705087534580573772034562275345384108084505601664772161918914586607246352566914210158898422899449025722427318290595731664559035466208227006962585186215722281138349098350533297806978257834510620027790968161519250563741664139230700651684006732833796000347919990135911603910884505411455755031798737265938978404435065301227128040148702655062131034092566246585020029823754772471398131193908874543061047009874633526671366483712599786830628270214512791759517279274806339803355297636219227285583657644751106314857933134096449936196848155329790038713532369673972265797804637068315709125062907635807213005790932471031483132509343333405686892911650932008908565039659798087968678934935693443728965512730118405024766917857000431852278158729996110573553170239365107762564773750904093911787519952490043082343002809606254051014109026490967082596017872966064718781310072289387330213647929290060904509996510996364050984889086099869558818274967932955718578754336510568618812834895638537230490230854974708841983912213292971414212521126538376941819913651305816847227470001617933081395765837679089970329485905889407638909455962777344084225789391360826171262079625913226160634518388301291668702671700098640433706866445004204772032543555400866634570535845110990207041189214727427672324288585701783787477182393961215101224064960708661729872508697974136046950259504806185818310221445743374843670995795762336312981784942367521063158456218146852256448191266939309965096848967972697982763019620166184697932473354292750444695599739332690213288090421447772400451722167205983302413201807858238077040523571709552320933512860572003963008180094582226406546616364201203942077487758893141853196318874405960487779797015702756431203793942902803556835953676809498472665180663228081164515633131739287451870997279023326767955482018251525659817096280480468203157468340778684042580014345012297354550423172570747006770850308976571779304257911967926608355770944625240702945849164688688409266983169882416130540299832122064688396024856488737361054448578604165005322741550755910989863859983654995849624198408127338512107195301775804214570706671878234234337362443386301487954818306706050941407833417956284467605503226781998178711817330737266803118663207971908880859353877139937349125584353760222107426661627268136701053469594555007171228086172769439342040176676111381070736979255077410024093448735768397777243929529904102883874859437779220844707245097694501203361583612300085581484119171880967813232945490998135455355819200368537967135845122244978731800981922281628536909732005239204031407032619058780350738301059044230461451391293300495545957810847072484532576141386141110885979446168359757986044626563700351129248706422615236549794258736062804847832131792694536292182206168458237517112072181438466064803802423798478428234155920279951533883840285047239660222512066018125933208700358304583660341447171183616888510682837229791692872933408045297450507991659839696447786468794571128441552314385736357944952539511924839271978548544196336831250052568592122382995052429431973031079252528995814807246563546528491587284525592133504664347526617417231019506106831479298113441853966194634946139395095730032772729952894364934735539398146519603309648233944468623911659696119830023725753020547718726112772997446013292445701260758423310778198124342281293789217213817970425030975521324882958111773061699490894584822574403569047722974434464873087061592416649593038589666357964269483786820514616964530098918948895240722779023093205521419998271000429339113969085490350422643842591149465534633526065932187921969643287773019024548578506506490719010418692949997329692069376987894233645167477579113817734408452676936682769035410508903893521578293504116948159157053355140254163681840372646342611885273138302450381954002906726667260881102951524668043703634276078538394256936309783199645784589779940242578444778209837883250393817166874022463516400360449371410117448773106543684675216455795219329640201704256591268973743268703936711572661854817778640968249262376768993299450919461100193606149145030248599528312130075682915909837496143835483845736252801398771757203996607410623376039309772995005955315632867320660253598261735226922577692619220355192082306065025456256240881901789883501546310191663898778523454840216589697030318525932546459817376325586085377366118488435410199948564704319770357604303387096759560892294712376629537853315717641678637509591023569049748092874922350867565410252513171090014610998894661677118394343817334367636056502846418101882479053703200467900915275102148299514173414252938428273456309881127764982857445715483690110959561893515865484940218267757510702105125425188572992288281813435170926372411248223226597507399533952733641680159121927638857055248019038503846400352527840665086941001992766211368351314636791939176833788391058687479335121589112001235780293800098056392968867872938321641721718813475722571261826771339119487374946944861647096989428154955407710011907202332202580032303103189118280149368066173266223642673076202706304893204181932199479132955215952276322733718220976500274615838613014589473236395968921753113297708185433621498270416551260327305254810598044059332933004291569307624496703988503226574972110337137485126942479100662774281739043652586461743581281491842077999559600466423628584531099602135930825844450936019468879984155817413979637861282019043302642398616784966530450389715744073997543446216952952447586783621516632789816454457423461713903069884660034210714709463714225893291592347998913956224649359332174267207682780754811253662479260823794124978999212869855615199414028974192653993024423171598986134669399421742337296432762043717330409383109512147537211335183901437615400421296314465655958082779306189973533265581858595944631631102605946319894001242591273840467953790551178610437315468541466160792975393518758277168919891680610398335492668932884607107399090753536419746379538048275022938804542551676736562725216417158855655874984846077453784653939840527736841599165635025605863297905669124547560009373975962044220582061715435829318013207813450389924710989399780425223313097272671328731818190551154769080178472598402000556428850288112425258415775118218747565370340420876162262747848844080592337858672681564812682211288016755829871552322939739123326336395815222470866340805036779974663543776738594510251708506456178137785654101884689918377623109052412132692696811830327021221699935153688699162858609356272647501141213116667822729870199563640957383179338934810602238317784930712394198147412379624999727110558943216813346247370059505387382282235528794978561573105123335812492337680146462984702730968161608725125626884016392944545969581968735451402124436603927343201115259320487540936975287922797395679079081616516459873487676847787966351994640672799669684227938364340016916387353208313567103726575876102716180419898364400881246796929063679711299293650139944169549783603806595270748927711320284199235861794440472880737690188629821235098804738036258316703233989071150876793679192319101728306747123020989080017062072303040804782709036902362743388671957050387557265195875868689111438535550536806042122606241898295460103324208204387213042126633959996397036020470367386576938987283665539243941047018613333649109772380170320130953794519375687683482001684205370139505470313845812680971108030084364690722440841656356887070347651736198691256172878777363417274780381231306355129999301872449151614302386732563954768000506257121531402440954086771162518322205316491856571256134580753215757879703746457527743538295390435986723203706932223207099939411876609692963580954545747402217222960415912754685242203795038665898820661970315868606344429231473581836291845628644061192403406789502179579085593294576478699733276106513919581680282550497724202463332858690102712929124870344380807619086637230015752895241026467534614057131370930157699518156131426649383211378520180504956532386026146447291653321817475165142180631882666362111967217884810423806021772273149256632002008372773840007111954463083272740401043445115912755740883948494484535388904191971030626047140692814938155871864597153514452143970503635133630476275285659953576641846890927237403586299425788459148260799272866090073995149449255993249701787053963258731187144161888395189281706645629677518487327069805325453659594435128345444734603739412944581680393923938393651580639987337306918950554453314844541783631319643698926780639096091445961797479973502828482943948201407078082305134294787867520769563779908903036234929195824044912940216907942851496262567719562839219220137502085385171368147101481207029555359424859883318757484187348522038843180947518866734994750599841640836058280335474400187364056229577376290778557843219142583762494539061705102414202318577665464973199832396060902906414709566030751685767959950646519001897004271416908116825354253735460713298909418431476630470226163801264682483666802143033974717149060407313180260897455483227259560026807469192946623864881006617004077653932787299621466831069928139590494733514666752914611056080896720965649577143830705145158942186958901439208476029753967728288752722098086540093483913244405471471532689643878763513893943486388215800893438744315523102025828289347218277091632191744675864522960069295743112524237110020228475877654193214902905820714813512453966952213350690205871303807000985023905950433418745223031628635451141773055243192530967615799399598885986859348987015680414652922624681276338887236616768681820461701106081448944475692020007213503480921485942693607075655946602147071135179404504410176161980187311372099634812483320152861728497456001969970759072883983476425262246069436997881526204591136181884421914805606155980482685602577018908990989777019679883388383627385856370099075133751289428498269786476045170218696700535870558683247282778638029452893623579668642918144253649166267595792939034771352427631638729062276278061129374260819579894998823150821356035337996300675132561746360409704616134073674501233790105767585745344854777828582814080683375352308437622407163552365170174823190288398914111700013038500814993953954088991342216461121904819082639741959673916799046062316608246282599301275531601960599883341963894448424376378293655688299192226164514491135801991369885925197897361993320354028937891979776162342436738630318074223192556424257642962538459116441984928094772662532474272789343551287069414602193795775331142805836070753609697501363174266332510791652507964389846221506698065851115013889478071576059334130544271786647591870905705023123774700346206800294972779264162589633203152342708281584722283087712546896155872094499318922448834122790071224086024871627001914439585906766537388820817923701180980829209580374224253259708840015337929526896068907323478296934672496542298479126988452054444517590111563761388372796657626158592321253167480658973837007743644970815525696146442123132838154811878042810266616755852520421217408366450195457238287633733274171751664323385080868875519281866743397646364022068063285544232299195314434019538748516106997766889266858799613506449076983026968215302088450124402086109473219143289817313745052994930483688021487232129305394386928750037678201673621258995229280410803093716265758121177047643096856468956933163893382266025170650129483901974903369112352349198736026727438227154005797040341313602327389782491940620622979320129278945977968761421041386589067922907093972045696394853302716010666967766509838982988270336001751741953729882131488520676378058576509081950705212091769110238296252092639572555521816634054001495370003853673948403488313478398772239981362521132198540845496010418963297598651165559601183051939611298710980590292700303816469256540468002314549588463121551591127435387473210130449343170971060238302505201550324217857937290513791003975809623603828478582282132510308667043325905162282866514305540383171654942356466584278358754780192772900710055634739498037993241703761588987514755125202135994338736395702701018317871259244658936074395041904148963191057683925636955842248333938651636933907679962240208570897427615350916359017359394486755718258553664330573117711182995153979501172255690017647388305287207390066142234982822890654154006489303225232507939314008468534354298885090202336459927706855694518045263549478321162530570908047184046306988625592401858204860661640905689104008382365692326589471204185638796454375447061021501370943865692037601810790823436679870637717454125244979241126234923471691548963601034558983240816493343241424359950845019024638605112808123369857185831275334955950517160813700601524664936489859956866999298103549504227345133674656676561958917658271414601409888605926641231639173045059750635266720308174892243231020229275006650705544414487293619497541076525812619641120653077941776086691414923099905841528977241799499977892337158589213381587629015436847140727072960604777098719332508202115867926824465392747042595326027889359342185386393977512107573563471590623381104213957408532025561144916165023468406142683913932831153681079926726865296096678258707651936864425300256726530967646141201271773644112717703213833843966212102120031685600559961191977740486119530684308965125805885717893366340064014685825238494637271553091696522043008891949909007853628255111837209107231585018863875877493654063812571141910197972681750214703382321440568321166096492934025743669666282611186124357431850550498188715339552364815853019786659755218337909725497226042399946952513213037168539001838913183119162114779411026370066366963733955207678890705675208995114002259844105675798747313347190332556648457076012144529013074078960990250933820593049511199360847319928954203094450448393437052597757506499242488568138679854827293396718781656397690259313188828292259622228207075420834660681223132932031976087972078720220458968092286397916493347673407524599073961665102299384795932126602071971249578977386765236373572717746557320890928595243055512142478088703890746977002411281645834443202898449061374069409122720799849287837804432997492355946603886257379993171199517299434202885890086425703865829181033896813717608901447941389859801119216984455627884251041606874726841349130738535131602178931801650999276894442634460089142099597845045335842926714824686063761762854401195323730861448674938425344880576017361094299118777836028510726566853548303376149340386138728881011196846197681221238526787781703842420898756439467360477249851125918411186086143994420097513655339777653026459824528731558315588110250597640233164594323774746194472280057192942340862063186312384283584141748145221174152274401399455550097585049033192109238987512007472508391491887362503352465491849455053472597506213266449064657914300552207188529146545626877995210505928632888971805008621886201862247260465879997629873801151860375155533122643075969879295866067746867248698821059430082880646442803446771107778338757023263188517014214898175379824719914568668813860212512496653319552350818737020913071095544472137892721012470831279364672476265861756261581360587723302212929636323129503264741605603682580317377257696259634526850824340044353973213186260963028575348347786975379260641951297256217996664721895424675180543613954164609345489964158625753394646744410332075591434748390030013117205878866881084544339416158235932339679082517403470314034066390553401715882971244309976878302980057612409120582892006702300136842691945568917920644796500498432004288311968597722397527625913115354393485054995951745669813776762352571664337853826402292542715195239440650791701576984497600496634157510445977281076151731411311369522493414259154676644089239118901642617788812556789251621498469534298173868397866530991386091288860013499029281070340198955850142516254284535843869296165088687439341537219131901698103868933838909030514646785975073705976124344048735185187361000476833861693341273872131499152035727611901545103818824090864729405115246704022699984611685578786009733518594424253691898948526126901843967122825292864838105791244145311990352598453757572612280376393701762545672362480690112438761794759457584188025808479660115396517555063393005644707651331663000497167999101503803042524132005091801216586783536385971765781886266560014150405502599185781318171024202083908534366370849504247378604184570078103227424205449631706195532741206810604032694285765062711529589067797784600473543242964255375046299353772506436411244337068399950479060502911580899118538996787893306846070687648192616914734659007867478338417259414815836237060698077683399443162324378343277116526517909228883636121602177610080868757582807183913050121900691273118102573700685437314926261275119510925219353369936207543016498432227027436979891710821967072797729335796169110459877286887077532792533253691511419034481213896930583931571601261748188072400976578098877509545469647125324042870502543328489759014990340132873147973966699806780418433749651870734179927434673901645980132604745074672946883318334878287472964774230747644666428198592316176402015429117446227772737153703556535216074420837181247731800969895813443318608350007403564895039855454991068854626825248087946207734295537181440714342968696556048501300028387726673617302882439118011040796250325530958294850602910027295678146395099939111980762355384260051007326949032947313943019064724702699504530624650719293469512191712497033790668396040396680370597773832423380053041248585249700746261529692607762899948712291739607649973451190342872886187551037905650345580905862294996502284846760875996695771065538713419655304000984996945909965723669450977457493225331420140593414536712322674907484694813966457967969849618715658095898714598406828371034209962448002842073787400515400735477704578827554402020763470454283672820924939041848566156732346346243710561690143938057851850798688020918161751417977818162065296357740878025746656675991671870569061546724691741812421686177352974247075384908618449861733779760956635150287320037049667930432922909392003368944158552844857166503983342676456634979344027070279033345043831235420566190045172371528656914751574962064949620366436963099691331681037823655785964771616070010243149765709845673922883609111640090669683074333232428004640503148279327017152839298331072612104661800761483111955519492016581879622902838091374596401442745638333165378774139506670049264001964431360515541933340574012705711860549362466068222275305024167689898658398604481872750705421185157906702808980205496223651054962011463085384722459068845353052698151462096344083327286037685714343320393400407738700640862064762699382327515043452187346973392498144117901173812945781923939482951103546208445226710059438402293582170742651876194869894641604050256333433737398439195191117868901831462870160726176809225941911521127754751927317981883153024523417191367943790915717913442171474683719073234518629115584653909599898103545334856766154963749353232542240696619643040317301028330774362371803661055896469717517662157059888254937094812458592265147747329601775874618762945243590128266133656059113357932490024835500048758821577354412311717091341933349241107031417908227735605887318506925568518818476161221616547792673267727105854493914441898566436673935653054506412944503495163954657646952103664686204347523474448275301246624989997357452677713559203373805389900009288478132100721925563199799950125658709359256758214658818075648029796471424067629049966103886539623848999375452779264239910352688476926984473575209841322708690102964467980236217785171903050193665535869799840667364011611694182115036628805276200817821608992998178477002293812642877804147998716609583396216658046221847477188986441810600834842558410104533596259168039594209871852843758030981680414030212945007039150189467952812347105267864547803234383559635739873346711816418134883589781812016085550411360834121547578312727420973076820357692887621851144584980103775888016474787083053442813292308517804425633052340980734935110760637961874586918251938413636918921297717832060363607161111942209901661983174060636423171779338577890635448235215533600046940586992111648596375021793291098507861580424619547576657949910787294534566997699828684094336983482618539061006997877344287866884648833638125517653493262856971314641223713900728111167484179253355915566350423481249914967407196586105520078791271090853877233853379282114236567257373514909314400412723085455342300050898464783126957024677662744306615240534136319984182397973797343295041199582464876260530340265641982920892130579975211299672673600497040326214675668745510937858737116629139625158407981989937149291642817244906642922307976303488497360220331676357855968729606393573813770657684388603851481444644212684894894572772405482170713665824564399441829106631443538728188831732829909435663747332732184361585276523090931972837665586507089814793374047889804455267762875553853273244515413270875171058092548763117421309867896079308508983911310528297546200422347831442603757846843116599578255701164948010723068690494813273533782785692780832057824800538113401097044996255590418433618783406078405399832249921595813168579043064558239384266016464211503997198208633826392098698037312795083631967829785480594237718475420334250582903947248014045407344760295180790825770350125181543398269333631290398599407082491134417244972642765594788435609311261194623876750503401832101041248304986476751777723970631308015825315009254966877522222207870752641206672162768232813003942807721785404776142207722834543037512174491174011474143764779705015443706936330294322799617873541167265951122322723414441470454876223323312789553147479779278960051870826183125677775435494215421136673224596112686500453267923484678379334099356351585637140871063381006517356852411417854262957657936705322434250398926812719328772574276327470573020003369662038148850118597016612246809257817867839073663079562606371141173951357925845541744109168801005332359307080771317226546074807995914108788494091945992353780305086256703592733548348139196272823242063241948163619797349144583384919254909309526849438964920285979836296318553179884390292029505051275829541876897270340712071852144291620586502036718610712415858559470102916346124118842817239512969072655382165665976088878180318539358786815922301306196607788658367006814954816790391491860742864645776871606470047655110337484157934911770307103696236577188171680548998048068360171578662899378554594327406805460064658088642443017272783115184397645364357454402419162064919304330175285431671722025765108130083075917402202895740917816933587888854839729705801965037573602768232096315881142640446626550758176267258645880566889466762902316250814696885514368974697078875473721173739702405673058328681605611659914180974544402373734788571174305486504420512721084993231987929979184851684430746983168532196414083972941089071321563564265282648579102366532167713440284086758365082862811208701080978559190494822438066039085642579211540745935580428250470209118520717834409252412463967215488164082401041178749784433469106762525509891542106807322913351721060149869898931975765589029292032523652652464764317930660358708707622891121331251035560313322266878947101593104692995375318731922323071230982806756313613707893638298957114405309065913550194694645075664106023000894817393858591459915013618688303628365071843840147015120197376244779317223745715985325416824239186155862120942495108549699617427856185073856300952218929667760102229626058240684279740622663067494168044561115824772951388237107701586521316989568847331349962628030753109231451488726056073080004404792502052217299127032577566525126796828692169314945371844994902241806728387374118954263776647630496896038833598814111759515767399232732563827508723417545634373772858606971897123890908850460083655520242926533069165909633806781426224535781868927798982056614375135708883842341707325172771635361780479429031717561587299195141729542928000835221510650545423170717149501495913808590389652076504840518972589319086870033015600452368812208369737339557427430201973683433131406774801988939954590764660822008154865558949468156942606851549081587945145425222035956082619506402314141480090272168075879382844759005924640024590822392816474913549782630657938300794560015245218450016051274083437658437609662656992261715870338445349086574794559527636820797194359508228408152978722526980713396418173983455285428610782588906405439455789723532416364945830435265838575837534542178048004399384709663757560997170467914531624652109332698239558309435278247337723653934998519285880256415009247849969603835884719438318382425749626511710568825100683931807164710181352111670973915531826350977129031367842983816920616260845624656453254448334502873327296171406003264290041742923667185020372263489188921131199584144284167990517072622087486913971748123357507218743123900161881514406803894642967056194875588520738269137710054070780297934301870806453003574381546329439888130823324273371655822333689712138369115051999783760638529890809865743888409541409480725675534771824545896572914320385237158029298658007599120304522945092002484735063450708172609883611542709546954460773294914691073383639936184885128702601619959009459534093566869905731550492616078791352533980352290950487213782890171954663607920839263446842697664321731847866744040116208817317946697758682032488015825028742390480983219309221286829777432372292744957017895035004977866531517368441817511836262445143529395556660956259222504966172660878006260355348387140415796955748159242129684545362986548405940678402219714011842205618000527370209136871893407434536862418046201205998712860398192304178491271561652138453348139520083295827478193657620387779252806363814812565743702041205221731795803061297681511159179185641231728775523652553774331391392778481861243978645410674274257404072351490695486445177497808480357933530113223344028550630829841649228499595146478307637379846368051458907196757425044634855283042963824730754288297277387490942168611799173194960262731858981366110131568579484655463190430370579518614363719441255436298951999124517816195889983099730344891841234077705184081857500394100455419262282715712136580520367084903237031635892581945608542000785632794809224898999185010084295523552846999943697182630041906442334933507950236209872412713975019492549104971755264539360795897098291916234024997994156365632041426795560220329185508694570580625150058798756697284809907340068804755922880304061404935271337975484236920870273067649192426707211506145029183711357271055827368475140877933248348214535553693394766212423954197615259014501094102303272342930880860248579917740738188115956335520122470856463614712707960102138647190826336312269815215764302071896832239717082899524296817650715708208979901775677480532669839375891938057858227432365746948145644982207336377158502858955686759003806458326301237564598814304306178020961184133055737619479063276943426047754634607359010760780073296490069839475050934470662203726658156458707768228760904731390578985534343518764540453710574347583063888967402395462955010236236239204283158176881876249089005423508392035072303582933675134901854188955295276281577653198957402041639845592714370423621161776810712289294375054256772475816075886446639402238100624473411908602640585516629670879482604391473508753840762974228627952660282986856124913779967536496045197503686322904480263156127305249396421669972514944761999066733308780519659150017271271470047545587224762418963189147867161835465602512820391434191265952304570346243183364505897031380818221095816747014036821515527732641025413943777471229304747778245642182255190055307404691344727201764892799963828618272788694831935992187472067748307904877306678065547060504789542556923727658274487546437730619745412306264231514109207862126888590334696344765579575032539522837214077271479356267640228369465998700311901249382451738268928908207568420842116060603802205943960762594587230173164519559268182799045154063337664248142590765907207159336786145772686540436497219882970823704494270248360875876729977791591050283108302934409533907404583512331922517798657724851994923217603694267176569038039043619317960699474088037640270019410591101313229400421596652764980359301388101834624277475759364900699901007642727725410715779293778029758189388188799218074913555279098598552545279912058567438297350764003482636850905474314158730758511519075455032649915478329010593412964960978073962970608754991059112898494334186857992564934447775398191264302246146283812510366734180087314431733762973308181140777035899921006338357999337158597324909250721118748430734745819612155667828384067504975171250427941640344292762797890701563196663052858027653730379318557801892669082528944037107710930194163247576421263992505371085457630510272541419687724146255280003098390352548376683965106529908740206660626855790150015853461271186341827012503653146227265984087814247647466416838848007014414861055983682379167446770334262180024355305819768868748800189712637204258378862034591406048766192876985477413517824266863281876613786169148484461552076466937371228769067323622860300855915682912237531937183191325910104883506111203070197156531712342582756346903991217826952381658158437353394367742316810521175988191486047166095382597592433467046035848440356773811155827760334324898443323306779670773784377739691075567604132221125598934118126698574020822873350447280576581210335791512964856371360387507198124213722884772361746762463728204519663184413163617120067239421110377552607545071781730568486973382695068753716459120144807866736325549319111136059550280120854643092381270782190825777462581789123550454104118382259139751626086262303815586757500330365035451043603266060204142996408174745312263015094954544551498965713889810394072315388587665029485188747931903194083728162434987920629550547339599216434636460957154486395698085410627411047874256011847133816403599505729287652766122057901763131724229320822171196336930049600344545137359656495261900000064170569760670610835096119562679130376902758449300328437727012100030442430675975862794490919903724298427031754073468814391665667074594117181285533361567400218327397302897765237640275280029707008225391396878786451267249644013967188397391211173937129336612312569396202880769079206172425200252569161573020311184840796531911000210102611311563103660430572796759578003321866857485383618215639440979069623921223919612063453987748115784947757094617023958195876019295565027091439397344577387819860313609989746798737593710488543939508517426726851597042837274558662512182427358980225190354922777880152853535530197832287401741795016113853733383086636504199090385733457252807682006062893412816690110968603491145418721636948596998276507182501554531397826634290129354358026416284260418612167063991200655658172642353326974809443984088936703730904089298872864022090801214568686112195673393919813408038345282550934938846006710815575765451265736816032569008199739730494202580932609657190728200039273265494312613215104115171463326174431408378830542128151318496130125210122923732648239435712986875930459784114426339085520172132713565228267353111905069920325481185006648345383983567395863111580941342247606694425935895778367144366687394562793314079824780685995271804299265154496737282696342781419429568616185059583521091712133015448018852092633508400438084105647672315497207818278892931503226197312402624367645398909127136766846825821036614821121511666501171187469393588802138769234500803502072042761656749380061808121015205506848997644571328604789584909925811625672474049054127482733341860088589461329106580360924418853263634446235674690584368269666225011126686703837459687061357630855807209933548831212832976431557610151622545187165518098730622900908748107716940030918168031571388993551475907884008781291490611275483118614199218807223683813118918692213835126803736785681762005633250581802368822759755117198598400945834166014380298034142071057368426555223857833128257227625821229242172047649344611554073151483535417955731994998092094449054428452119283168019058817684092040481583976763104658847944630677774909303559279054604773451148017895230824584862254722017046461546393007808724949489305584553475231565081458669041926020031599967085083124453734370022906115080750864392129703655447280390964109190842022067999241835206780205227327266694012148625394909297547264819001839001026769945861363561776717160581840174962716238952119494778056268329341228550026012457249392572169773124901074549720858109346067301550995561306986291334224205254407945962560666527634922416981616638548045136511379498377742091316434712477244591166167159154613641933679831942836152268616779077598825935675693224092568684819903634436340417539017596580975141151529239741181351346035330220581921011465757022209231592858795668318184295920811193540995316779549091066442144920212793600673848472764106379317690326135816406846265762440968944422486567940635682342478737010370363470352489773846226216954254360940835437728351192403095562307782609670386008112790499240717341026771795895133094322934710507459224841793240847480015765023301643734887993818633755850505640940021302098122083705426964701351060856763773072691423639532045367650534951499061009592038111999413942922383282662303970224627560200192932910575459490463842038201993745288052055317361175364123937103737289915293782784055323231204105091027765263688613604908878131774364094288210982191673863433428297484346505160347035996801925710193440479875811633270015773711559825707875654849337905554919100898823329865507209518217119451538189616193459851785672443823474408619596678883971964017637405591191831785926494154778933465314603213953597492021953544269973278368085670136463098344399599838104150827501385397764363682259784412743527802186906181875778654136363428765676522249950726006963637178895232045042869615457514897373649180867051877817865837562239371997048235257745695716947580882687775733046827234756674210085907492602402092662023765248429740664404467389847682437916491637765940868812140586511021531378414531684525713465828948688108282355113459522834182379483873413287157244097892880885129663226849530382240947520790907547719093069102041565592514000796647514101026658098427886772856791910013094201092633576689262722791456628572845612609786466448360095563446902036492249533213308871853189239848916842701356044523015609498702506238326617770050335260169983066969429415397635958722285590545606498742506260704703944748836002981678743688976341130590234731226453919613165147067820851063860920305123139861179979817066362400929772463569813408071522407917406800467055764143446675381044448167955016754037488870015306617768875335467400990849328627599187826371322345096685745959411792943052867265464834073956119754898836793814891716284751894305764220408416522185277951455095878465356504947976989454680875939359491053154920439349726914672046526763946632937467540625540147318935948185163267536117645530972088743487576405621326594528392746896395247192717371775015660032198301663392889373215132936853918115029879689034915118870996767967474472985569376831810546092934562689641642597517451811445118837353679693121672546048643127750749849550656123069389010712385932851375750771072522112560429025276041058324618053326982576383320262113888077757839182840047824759254537884285393775105345134025522419042023611357616172872628388569288266894223873501963644266041689167985279604985899585123669734275688256386679264726789644643872253416410540118884003060827939848197526034982086373445967340186333491604624322017093215031890200978057948975966403247242071400417234606777820920510020625961466932871372961282275841592843023590988473921796483118317818749981238238724064721701493165417826247286264608246635686991934347545723017095857357200928365807612900466660014950510305967323317838728429549270776150494352384372938885747622110737685938660829044719353052915464866632256587736501940283360985396077833369981163888374592851353497432635198287540930816631367150102702617062473323812576872308723064822551095071956241022911618268389843544022706376400707847042596388933513882456055944841247511019456724595603804156282922541802936473452412831245351084672347954913989383202588357974591649228396716168058570098560999668484806205511047651981163368069761142218333939981044566986023568143077687091365544925946469713430632666333348935257088259885983382360749066089331091321548096377231732276955447675745632051201879856594826410399353964277316780851885205004488310658908732599468861445189782467106464913450734152988821227237899799164822393282430945235857888523315557801625545569249839164302898036224381448482959257669998896194861952070760135093553809536310329269030652426659405238349316080246192101534864904937769410333872666006342390299094075684947638890020974073591118061453995543448519173856207816618416007961818040460078745388683448462260157779876127933886417063037202991611040549671010292189964623522059129136905925045248528763340165375994353449212664898481871590287596365817385993238062392262713718858944204225771410845095621688619429460120803203213615952617604673317899314939939165980593373115345270612048575201509893504752040680111105515948883939176763438661112940558113247013839698395508817083386698327582360140635389114429323487383542226643878063084633806226528256632055839720313031352730341470414116626450205679527533313254873904326134932137879409153175139170156387210325784443149713913328431653901370880848727673341409708793563688204120071005091815540477062285213813643762771815842636269133471672062583695987256420494820325054918990140980633337654900977936025637924989575943322129085520813338609298986532251966424978691321140090689710777290454024587900960472015135833488974711317973939821426468883111627223689197565583980747783801786292604322296371954671497789481509585473013596683635886049129559751018464562917001354514572538520552080458247951467653615900245425905334599286850447548154451123460359196982570397722967243072295961301672720651621042865854882887503444131008531587261705251042470376332193295948910138748151898727163326152860199080941280691489964183739593674396093368889992977558672285829326106023396761340821141754772678007664054504550592404259038052446812695258152937649487701838737206439251867086140953524064899710971088794181478434315130111253784105821891905058048432845125622722709432905098365338108432373237262534062387050270889193263103422054715851185236714867468808041871754710002205313769293417089673902659692821049513640499110201189228427041585293537363096646987757358119612539330620900982920818390859550225314824318240782399142225435775235653106106104603216574988939600342724744846323327042421053758475488583073173492772931588516985159495627182071096183329475905721289313195638816985716182134031820115095567119402294124605048560409462419522347455812473818678435954451546702545437623705711752602938555167121655589621570783230798718042783562923025006741835891099438217481527204256561547835537143543805239092567355144003876603574787984649249822791046634873367915151143780822879353495553006774108060350245129029285937502053225186631404902102836768481451623598401955018297822096627576178917554362477920220164363966389598243188246362170278275088351827313947457168587492999537802104123170962787709326160578524648151181767428153842365297691543528008628884380341293861421469203412230791727795296425713580835451981169002082936885918211219792597798780318310797042622724203012816553929190814241744370355239036565669836726597368521963251301208920490350075003456467662375796901270802207340527709892956710433531943954508845244365536585741153157489918434016861125397529651293740296348900268765952712539576650458042612815423276239965954068572854114970365533177465513951470128683609523907618602409785605227786180420326314192976337745541832106558901569525594222278907231178520121148397703960587107972413409048111971607421214452257466967915961803436376061922090871510162638556033947295674422244800285867830675165286065137613127511132292898849958549045858293325765508224582332752161183496027318115029751545707167278685133246509632694022420082609791459350136094399280357489301648665275910119031406820425171782006064939165460482455694535296694295687285811607949359079024429370006138506368512113925162182153151909684937541091624720347826936656593149359890952108585186614706355753872932275834604467462279553579640398553332899021683684889225873519800572800970398939731810380641510013331961566123163384169394182298066024008160030298700930218831344841001380745294668888744306482895036826633552077150356541878996994634348667475127561389476061505791500783697432595911219350305020257052483230264822557773166923356821659411666101494171032045312165415109658149750327273915755114538141609637668557721739994057496218972993432037928412654987446752767708112048966235243934496525429051919156303060551763243429049129119813582457088006756528403466485531955355500875784354055363201492871009964679132086715737524371846152049963775024120816110123840905111635136534930119875460651953787470433933505668215994736637514459594107890460326675809911225817735858725561127596127429036652864740723811824451982664973338823564930444946409217392038710364975391452901506200701329003885275905917976645018226729555584390586524083770577482666621571006476992227429251802061675075368939041573044102486333372138166908659497265800625089215718774607210326148746841989431008427596084559768537587455328869942189022462686158362551800287155665990876271501248597796555764466293763189137664918559697608657202245436623451299474899214382782330957055518861114498209705921260871259701429155907167169027925084708192241823623852476112952215769534671121022688962829105462264374270274514401930716367835679728830228769579633669108820698869782820908161508420618696953848888016340938650127141205951574932065307191979792415414070258190949225064528848375020705376216228246243196331397274463804946231969527662497315078768561512123158491063973578783233696945919252241745125951953150287055634264146214780734818299769849413880997186152294721981881844795987489733383332982051835361295855726512561126078714081780162608969451935806873722317470214261532111043821093837619751752161342306253036695301608449728925497760635772038463624749881743480348663352997428014178228154202729300357394820311296206967344897816518124712700084701983935902410033970954439325805862088065682148674795994011343662679997156139595289449601258311958147448601364681859001878971578288627333464011205957821867632138544036011556799018973822931248839048034073314707200333103585245339405532930689293265314458876579597986410769237397261986273305787533283693130888188484013366919907153574168844847253169711666492887520688884903125822348764859334835867066935279121779214745816802266919949467728705048710151245062750809689140464093488508040490482610711641950683628294703650986921106545094612427718520316768197256630589281119097145705696213539508823993253467627277330317126825495512722733097094755766545955916330845566402633674511098939871024257678111562201424859988198613832607610269750116402895609172482040902173572664231657736740018157510857808180327778045494690191374091940746836605817323031838901254195774290327167250016946893553561554829908631720220999607463578773318021515433437127481736130646920057871744269710050641525580432618484664499336506690226020534796113248062433770858368288642303773337131344587535320399729823391788051902625228566735896166096030655172272579840013110142518724404684590271867953114339959198234112045768195192339668046363609476449763696836530229636489592055965748935406768395049609650176075337978085315351151000839959485056376886463333176299363451051954077459641771275272522511093337024013294979692728567494186825543556264429269450241437482545838382232722668479203093766587649645649532206833595585144356250669093870194898500167716365734821582395969607055112776955388671610187125439480834671790714035617616213936812076235863886525362759653532292991539303333870317150561113213977045788777858073162778587044608451684473817993658485436024743042681203270120473575198576791065572625397817895797601947431814708975486971046117812333458067952135011540223993208692355445954326998637080576898336347114192313950619408233051745243388409662161917673593851500707292860217177933962199432519401700811889270218812922693980667823500593547779632946111866083203856631756598593947749414609725269189242415128124323666861355292131836963798842288114979684431963685977930165554255897769206983921892211161113900346907139034495411977485057992543960023864072575893334036241824112909931986240371248891121718479312880526115543317979715057227103284577678130926085915594785426426728372371237711141070185301877367363832054420277759787197462423033967941219803226098672011311769531237139544090192539084967614404374474223782399539889314129004485798212573835883101300229404562259700087532359333817612210779364658649010412276275126296130986578468393412046141524332024651233609011107460758577230229047940685371564511538893573475117697081449253614450708014704081440793301779400396495696528799986589459018635944863937836252641721461597479750646106547032755582795055044690739226050031057752703100971416892665963137988290824133001717840433476049609962452170204353934441792055526841608500399562090944622335424448089451715026092336216931371260276545802211516714637495266304969744912373658942063782990743369491339114073008406444909044978291716030068289346734084272204156217201591835408534749738758715402057784085976803474010529765630724564990196972875236191877412279295466108847079151566770843541532945773168002831457037839366808584236474729694621734364565914314999998295465083784479527531371314426370417156880731092974090878976663700988439159269569902283602287021709438565368850303252007541951101903114420741024542395589966144491280825491608682363898170853994932143881292690960095241337214564205136429666061567622585410609492939964225109890542963186475427227811433783082860313750630432029071763017346572522853134095011047828204370968972007781205280672631658658268830082048391925826279091128559779968345392337776935364345373094290961644953209268830751725051725211631076316141585530549444003913672920224540127127199003497489573352339611947871170705295616074154343821615959270167767765359836721560296612092930323430255671059162464639679868927777655276907434452781561412246558313865227419948159536022862627842934872773359114832177204079379966138519408796346422111001194159893026384749403733679021781864326091383724382348445400140216765936702972387137594249560561796584658997763658133032463170386678721272050982260469318378517328319377978013324550602138050237267997118503483996022857466851129622297550924736425216811438578325930036664780483439185172559617891115555008972487508878322655639218559014307537023907793102761551502813788213412021021216221225651065957145039029188106062024043680578125464666059439337644835070859530037381742757923922925483584688767365979006327937728783394927250091083490555589685921838513397021895952494905180547094322996078388557280349600143685712994108901561709758666853793097342383585626441929314181820164086978211824121567298016478376076802081067399449741949199789453083656703008819715649098598414584278077009154841245219504360121655832837120208414030879036529088207125068895799658620256103422796376752945072088624801711999034441802591976272111626764208032191046747691973225226603896811429237328469907732578003716720596392949234688738900716024004820778644075596471285439676398978986448509689677037867837939092333736616318790399955435529263345112786664403907825729170238498539642431952453843769164466940540485304249288929928658887453808655226458620969597482258456569206386372471333970710743167713721743019182504809809030836141922785774012208322699234143443145251192082850846995354616282559007110867899653861419273805813170628618848761992875235605197128778669795941542996925611783100713010808019694530345972875873166609679135107879276645464832796716403593878240463960155803866564939245051206892258910783337609528667516351455131754097021378516890369882775486005565114446717546902263021237244905029514639687965941407160274579463143862860081138684872112555141230219012830847758975197514554753539065631367100462233190863068937253210641108785424765820611729952416756859207897473225742623849136420863076983231525033467832789511435441379001987224840394856825727996334338090354091271420485200142473612908276614196873418845081972380183446601575164302058325467329783385824672337796332961531814471359406772540467879183664181640400431851841323246772475238406139988073055324592726270138244377357098957454729295194365824136262173387947183934249436877856076078931316092928604403904089220274727657682745744718448505295957436285657648255137119728364030305010052841923378130312120454524689894908604278233821811304522416800273730742529953037659067026098997983443551270579557023203342585845712309553495630437886179008018697703798906465089952475719464392013515035318524910598746254198787043110831000559772458275585907877672630667331698660123840218664114925244961806372972731239649359808007818482290984926305533831519027148710238291226170519901842261107074499827555185473437051601538277283421835607073843079238250003274067684366082769614472868370348671142320031150920628022556538923980305723691244079720549434520255584772773450722118358602008625026931210963695683734499081656262488656602575079526097864959529701789494900581601408106781875818760235772863195761772010216660473545240882455337377407653557208083766278172584323074208824163711305293444402213315582368816723195948528257132591651138123927065202292892995160670779628654906859136777051151364992959134043618166505253926286956431852058781570878598246183503661636332968997649051251152768441274388794056850601609022155092659244539194725289782531282042729287145646313535498982498572485085205878421700191369468875847646915832207392336221340887421163754912411846064714700860131746876446315475825652036677495840152641336021783761621426279536844815512130368029710146222769417705448127683207820715892768795617580655274020951732376844585544467508724473324775475442212563767941598690747143004472732575152178292244147375347877494655965821493709537475256129348018234553293094258451459775014263893969200561469984393413793329892534185630385991032625996123795209195974973218591160675135737685347240737320778720783069881274918163388227970151649232306204231923267738032912315976173712596555743885111309049697151862730921441973558932149135267754550884960149989184494658050642789959524549710602775289107184184252527615081516568999672645881239201533413091897355750971917333667330766935120959332400086476862371003911785733907734791975126335307193833351486003765653645617462278368386809703458379009509385153934356592871252616541741379532336931805567291913618545362900973164577814463542625664656257906996723309235218353663046706190272512654557226679565759446240183023023287186204367305186225257465430598217023862392858835425341352822792751215119300757366150381325856056938665718482884291599543075377695948755404874874565049316859367525375872242265001757204899373917123091003399613372252244942243371298286945131197587017282173315215305312394369046341668657548719788890588751493590634104223057302580606229037653243075957091195492736418879592707648315156483952406862266371160771788810843487797892939369638053302393646146610636018880900597604965952617458356017834556486609646268943810848376239283498145152956323046653362383986260254825392354381510151904826663624012758619030512343493404809936733630196667472653841031642169004085676057548260716414450700263135477487543140587873452411202143759142404803488721800621126448403287045318915195448008613830372182553190308278533352679981675043387555687822471960933084367191534022691046362161653019830017338130437580257360117320252899398169369024958763961387858882038444082944640609205190794387633717425187731772732696177174984921393522424538612857475225719449160993180207657257259566572746711189865860927485963830451551199013287156264554447677303395825715515308015249992058766508653703260290033795571344200549876785496033977117529989322047408339352407569205963769757154304651500876360184287634045961419657236850454972713517025779636517994553540074231384952274647739802473560740778832301247739171471512373363969320152243593791697879626500372054240404917690882333055932476150263733056528070127071707317422061909030582891565872715934706107761188955817647294416373159304314714632620169846664049979393661424526258484343608024895996840619656483260510391044601967516049196090877721038636150832196807050495567285818462358960308198252143229539810581980739134564236731077267867508909565785931464691113519205799011415999286567060899152029537362936041266894735671300323816449373972961343424590371098416871197644037367586487019454209600277269724700610196664230243804325395483073953480434631658521169663210040518670210357551051934818122179598488038658402734055410522668539204394319860123887488365476409125283491086258909244249491124247375787085548600620253956070015892466488203513758072640091175232550440804915622613761847994829694436281768413068033325805983144307990481774368960022690838501486356774348025535629850670380972540392792336079588431279139346159471785510302116410944590464314252222211955005911965455172471369085204746459041628379478112244703499643324088326403201501072211451118078878893212734243764916276673216549758205076242458490867412454326067992965180029490093060828505896987399284387416443085991795372627254983024552508862543491853304676767638151662268487495117537282097708138923083983642671891427352577643411852351864957763618066397910620480553147579196854289247129182651554377086474920990172593326093110355316214478995999260164823364099177578013578099633401553782756725680053799856871474814993622181373290488367736296421811002920707671151333268055217407347220119678095021973250426834100422905097464267159100312246755000845835500219237029976594522073751491170565999418486281589917142218856900292174627849440468896389782622187851267677680642009764077109404004858950814413469499221935454610386327682357764626482004143054081928820134962747509725207404724200644742577977122494444170678558197958189487732465035590291651140174373450013548206325586465659236895679744183107304338446755854213805783295622529174813726624481016493610078053932226379568712582680506428016917463388400476353528094806737596441981541818245407071029565681462984620907375159808973697524972129600708301845882819906886859721704976098169707313514553647284087508394748445905344389476438042833102070866854857622598673015704811348487589383004069166300147068513758476300492664539126623329685638550724352397123336760756557354279079913883724423765089559919222323146779815617122605433881388478695636830188697360275137554275807472892457047398148101532830585409149615283199662444495572482343448721029850512365934183907480153337189532176051713829301521569279065308285682728122257565719834119915358981762424306123108691428546020621145804175614496367386947310149614696110108441417042638498458996520550174226428780077855621048928879034213610055294135624094849493410919953782815398370821279614149728030724935083584201027395523477254187562891696464629716867934604103862223910723915461495143783109091727612768737298785135292653585982404217896055470977328658983544481822412310887407020153931099520810732506760832059565867058801536997199903027457768413709588629859177026515800031621875715618968016433402812889691488288281995306855846101037414427949454018842855124820616723749149574887245268221719966881281317857109049924699618491677567913075304858806998347998174358694936196540356951701948226971296221407839482457603107235665084539460347657096133925430176915018136007460379209314374101469550771593967678251110842649094515796214298699346551683172325772474916065385469624146387265892945013727213134808292832348702487898570036218110716356026384663448383258906808607533501457535306033527818527359194772909083371383918745709951219795479907207677284575649475617748839263886015922627289392969523114864681007936070411010661195306019626718292157418897467556843869959960904077864726394487528851074019521134980468796623078293893559181407497147530395791860408114740869031407512761785447651925186649822859089002592714257937898760851301261358648533898270019010984528022162149574503043416658034341766235375672812202098220435761038562322471658856403034228153291212913470054504809376737552375864848427034827816007176103955838022388801454826578032334620961099582500922281933720739479368335546862926666828134099502465748976877459604963015199219101412367288059002529557555744138496851769725140134936464076713814203819184922533727552644882392274280953317425966883949766663886406414890183654184780126111083276903352472070603936388268127274385691303440344296166547475960182071388214006932163241809012492937474860261595819111495856739774240200385554816748045543198394326942492598849300882682193514617359900696469394289831472446583634438150363560007698845896003671967145218982892369230602865293327185263865405084598888677442560824582518620868864688176207588304554058877116389730029981606416260118226178955886261052889724199043684556770419659749844420592592177703822527053707221483343671036196996921808800987400433148691853447427443150280406368588991981190172671332847834686804206042360626409885010309859417547851840913515814007425730798459318626238083785397594030688463287148651593574992196535282086235236452936913108405488641133933096701983687674184090100426647495730485677172307808887551966252031008060604896094266821230480879437368612555433372023593267452056387328043450666138583322578203174010785020264102373932928244857110255742708750449000256148172495254443681058111052530938673250780221632438535857533473605742655953659013932903614291142517308826117202981834559362787213399059335421102561990726225565734492235004558722347306422690381742821193011346466633380271942085664506862237433232865245487905665301994116502098628854803895028715393722611338760309721387737323670088307745443187802824562612025603559560972896716811540450995374836600713617714058442008943570726765969631200154513798196012873663290980624859525392389011134170683984172020550842451843623874742302775850202111466710828502314329232251044772189105515748249108132340541088059715650453273394283457762787029510323220299043957937653237032240098835511970054708337917586631101257562148115382123256174006339247773396521474199920556012762678319599768127536537806582552198968064145347721143799048445124308554846577698242283899927632394870700125783129562188633335723773030391790715698527769981132802642005587318750504248249935687116961038483926031642311851372327608351168411202960806536339917196109506563603791024663554069280909503859538533061527804352132360901783509949548045764107653568796815331812781961778659059701008108585727802206676115056166883153271681392503140793965182602289128977236700235286402092870142360296034273843103764790725544219327400382579007429186252926300992238537011329902710825880347830585201992869430164631550186237669471487396553308880588520542679913759902881482159254721287997112349744109067616431314860659148234904684072233430935329873168592722448411510272166814629242081861733802750908281731621421122026325239577207079672696923982307853574462065770781740702160609832349740610682019862187472359624620154286417879971821938939488476765945151188726828243798429718810475245052674138466444667758145952938523621089840472149162233623394527792534124763268477948433895043449177257951400675942543726202185930122531359545356942963796283840886408458416765960759991412444713316416219552874884323499086950251000916840737936036868630147134275636516534735018485532198681723515583821813773867215250397657540256463513399293131581401105506392382819609339326269936282189172056795119580401795014812994652813208544177400136527680440189750956323851116822001460197107984186930218057738254168701867220782012830258400649202742978480912435750402201993572763724361108610828456155161107337783098995427384733851962016078333529069225597502695614569881790225989084811304508789037277504783528592835657578657713209416306696214830267556788217464889029144555311038373835106654759873585112294840747640287639561711410782790349475010728806198335261379321829352020622854621631472330451110307879121580839068976014667029097660115100120484504727343921468244629266163784329155472005565215823834691847721708450501748982589077484192886434482201307731467223615550019044811680627372891182809369375550141463611489986893358426271701917622471589585700161265627928038938295682192772806053823987641871814461917430273008297479103604697587080099011398620012193677225209661797437115121038013829313344523042464248028131631658536317372369474796937864527621934946413616949074838666365754984351846132070962952455189416274687119015725322844838740108870870092677334002478582318177048512114741854845511056257861786232179761149680543145227015893804497678321599498737642645919959829559682886213984747338812319082145883922077339466519214100919100219971369884098492012458980352491560484355037964744805244237989347542558637496944097006535489128462154661336136016712855952304841355405016856480202195147856851751322493213326633233271367646036493956075790998926520960521139245367519105643232783353223079902704529366300701433571987854168986025592672691486146376781422130888839397768380135150929690856292191468938704568597162714050868620386524844223835104329719251294149491948603315398550894413259447485482422955740636556290296048257780288806409323826242559369720044038459595596744809500362879768886299407790984573873156845380083339071391320375867870710794175423098402556240627905496884970900358625355378884353813179115109685145203356719883503027157873983608276266399414711825142067201454765453798456355056050201669799081619428163107461369852755645266191167588522029004952061954366404666547676748395411479031766627054432749249467653784508301384421246675957578557871589158391614929205327503011137195881407174811420697006748307229787846049063384343385441178048399680938868170522576230698070663968748114103251427213245776148034955119466965494120098359042062409369569441643049443816706288568887641511367112316909609171364150904391542947054720233783297531650816627581367107435422200582880297667363326987215059815213654089610659399506986996061749988509841443010696825202070992199621515845434407783870434712569013150583682831181582532374046366506884244076658259102264858471727760428979870544770317401022020048435517910280311381518627296143207402777751218814301191115272901096789987076863891975185815329480900484001315439899441843913847948256756760522988336674814603344721353780832963298242483304226087054222817067350632771423307198228292013888250840627776446016763353420053223202212151963573219354782127579318357622745668228949095549643224051766212222987345066409221102539659922383186621665538995610714873915060204778171304491390416460915268953257388215291048160825280398731123024745029041845431925143324982060068348760474664802961932665692236896354823919451075272376441259807182695612898245520262476859927399850749523111402718205611365764158897503355784761601356939994808563226194139253894611054463911538492774382434150140708174943148584288210970744487438791260610220596481448387759582551359634830386552510471991870993464968207951443809722754522466629849752315381194026399883648482556480542830308472612080121118836364678783567318531195653283668506722374582019729322954834474134636327957494392349278491472407644154979907005763666734247162737508364348699635341539216284360484124349006593235098809346374276575043850100426145167659011412180517983322521752641245896548538615508925618335652815746441600551340789252747718905228691509512545867283669445156935580066954415511116308876411027740739459173589702548527327742917578713725482725114841210877790724584083656913711375386401657865650103638334702177896937565412871818904564032355330358465865032924611498829154551321669582693116949474724304494400714157961621909607657774710268329470978782211543521130865376468468854070837845029724593200491799104784549496865579480333833203535283834336444273348063171519878404124345403730667861342745033449276919405363511805189639382484575943910505291489269295962954981017764343914653565956113114411881162244398027954420598060661590429995605931911988369943290607142390881203463669396973035338551646973080175794775577203376547032854160507374778081426502953947915370392563458751541993225787616093850446069047773105872964126432259166070583641600518030294468887311616313171645568002715653406561430763365915135077597466940193113493997335737722496665707606339598056315547206116184896627295728892632733319639275309257965120093409187555476559219431535861878728868390246985840066587811174389024761801931717570040042649118685135924555958642216786300327281690220401385874406143255398530072246339427456507255355771652265603419637836065572703546328305929386806359939822345302780009226904339659397843453908459792493616990271115024823553135651057476947374515138170521926519961209120098566544074540416863523679680667300049783890235415531790186857675083635718815021832525904050395373110199786210218838692981922846887863420325231919475031036986030794517326710342961588916427679772101822105925226149381216041831461459482779165376016604949558882398331491896300045706694760258308499704881220752541689769513094424277054317938360345722564973478028583871776704880296861199664404971177112261525181941388783212443730653127620793021196325199487164770533394802546919161410880256607216915934131788778532129195993435034184350879541455567159156500051593213512046493167844531526730949840388038637890921548933585576977605684658894773560788000780877024397172691151353254093191462375142438064671796293683131066628381576875758494756393149969784073957558798118853714755958342667950344509557174210443110111555969694230971422758682415333250941083762845869088379459296484742164804081422691778551422077286040604206129807344341107170856138576896046148350146570853196099807725796492269221426001238698632920719815214572216538552667533163423902750884402017762411159592421229720549904860931330044385104081955672843881933762585067502227255493813372153593336748339043513911420936966028778361603039883054786450791533234888633097844865765330239637610995185108593689401645880531344138004560840487540645039036420171138459800157910398262645793045395108687242930427914051727058307484159523857205767563154331651120948884107483378154446253906914970973248249763621347677764095451563955103067331016976642029907306203740988323001758041979722061013604307724128765812299132874701204166910607277400428365291489710867141197672556951708184906028979112746219716088864494863270720922889607677541057554136335139463106469547218775899632262210882249971660778801824783288460564571664860137993786241643625959718946874363141751239833165247389625522575450673266678010356227130735329760081551601385586280612216277972843150774114194174350813076834636860375679022024684001618415805528730113993562002075597268044753914903852824085951554504040019286839621223139945782190985709485164760957461895084875510047695013519093934065312909677258919608138126724124411433414561846399394813179325523165486468836011249788867473091655764947715527329074542486666117644014792688150150085007816138607750987820179396219298166858727108461195506235526720125012636167857379091308603111163217326650703389053035618799917632749782480000382014564033148245875016587533513729178042570233747356176831921675132870626686381670744694924910060827494777174264983879637393833918005336629592087847986667496324092103169314907852374985795745358050997200967140906694445569952887165566928251032341941240143342498965905973309042518527797948547149482072125636233776467445566925700289525583707955683116471418139712055359632677864300368880268224450595317116620796418086266440031551121195521656603298006600425020770906693464929415114656871565197327977601624684680504226821168589749732664787833895875713975909412032697786104426171791633673286634364009470845449294878278524734908158511395246192970529844049851534154150475853940104787796612145475403398021617563018608977084468896744465349439250484373075080032358695604532011948426471471778220216769851207912123134309395499368003190150464640265698369529941316592320783788462347804477159613325835782500639443127437468371342851916061144475966597527577637556535883144705683067700107094374750713242819243793103130300084506562509859476971056879099438598236162500945888600601518475193908763675179602613338495030786850712442896663531676398597157169793437458638051754926804510635232255931781655220606251510726281193455446822554806786143040609286570374490810580323829039008552985694034221376633090793283477760509456237103042877113065558263615984445565177721934992025424006250829814388424885699165716209563743623250563272703386168451154795544110004861693939669817608605153585203566917451930541680685402827091640053856607938942032703155011783107226661336430915614325557428361314298211130574184307639805908014823308064240321356073730515201730589550766641123551466373316607058929857973255802713338149845480813823012719438826233095165624990149193812377347936739265612039247449478272197436481463550763585451957843819377063998181432079145294381720783575709890721019039054512101776375917504041711983291286945314634503867072375285498717859318651299573397602556001507778885458332349198092268297790251056379314232693055979500500465916894310488779361054630069897354582649485885672609485891695009451388168524017086173486983446337420262986549887055275893717547768064131512849669814583228262612108575858667086703856712234962059146377042996960678010510448882110846852918958777607819115350743731276213572281899157813290139629136095855795572863573895640874646948348064165310060063184066517155330486212354534522413821203247724024547180972994782553610306166786408227093943834105375120608202483885917906163031652638570569381693924647639629438818088748878621960886893919651069233043727766778376701206052238694760106908428395465603278377587338861179201791420365513065447139372388168417115464753692761870223706209173740797952961850559859069867732949067859754698280784385150220518000942156571369834702869420811163421416073638865130329392364133738391124057617664073522190063849445485596280872096174083689412194196841496438534917608591572100113465788339299661554794718123354187405855601143495241498964642595228067044217786497384485387586979519092909659419678043567636071871375075973735374191168912569271042315337390439030564580870450007911237764594684123768499667929138558594998413315448386244255856405501074158632856184267771341936413735397084305269503876051186287586635131086827200212984615273633280409258894397267399714538486964394891202411454451367793217186250280335157387559840345273485622937551475868728587512056390694134427881267368668526129970914692900397318622078903947380196882524861146385014975981214007302024930018756622529423974152870344887138635278954421887027364458709267002240443988870837036625113689129015544977825406385881665995891341491782575359667772920120135858006121965413756151613073534796516043047726249680166796983212968764999543897572103044148039560797521061101022496645354714839676614668835932299230386733753083191479267129037142028479721557395762418136187636820080428739354329619578189870587759002426047569615730777617879696471657414727167423131437814312938084466056485653231904359822363858209052894630558900437831197173874716537767738404620920294287856642596060136034824093305018077510697980984648562748112551572868756586917033142615104448629787936925851362495320710775089905899673978009848497631276231887938408487372805166892828885198396485564577501746308162627832457669612935156278088529871509907002287791313018742198581337091608285110734850467595146105747913488601479578185100963712022900434053804773717362261508040648808611391288999878172968458490984278156697136848536999472468337665208527175530522743253037768200615918474776228982473189333386256476625108424811147864405443397602545072893705035410310749259615193225963871587059714131193023388067627334223455941665485867492830505007793693347469837850184346337791253144037700616836640333259594285371634189407462462715742380280364701511706494320028983612047808821626264791526056485331399493964505233140960413284346146677170780117175256703144701964068991216011470196897068123360672348816453620326350361285450240775167945129477769187287064265269498729060053320195095614190473287888247152354392612541449872939889535059489931721422555728903169410679388948182866735943684710896974004774241663027842089176037948813664601037624905644391467105268075338619990479735165670380298800669760019432275862151184258115062612875903247724692239563995854271182343180667150768633667987052084271201810981415681939025017019654596184960867576628857953374255948046614705206533651805008577170771118714460733258577812298513527490414695729494093543077388475008502236194313729305532210096308866084678152948357077821954759225816981827975903937513773534108387048677853399889430740126301195872934231350052670136598539638293447380283172788644705848879281567371178085986085196758593564080542011020717610839871085285644463918408058367885598058676951787115826728455767410352706272228349696641162582575456920778151914221667254026058474312125386752230552077402785740212931159120415582057351974493175758154387815581100093541561858559320712448689865524884822436452824337576506147452341946054384287801184313359346475295001039083351325320724308177079505277796597195281171301391782571121915940944948411799070615150038421735162237543630126985492930406281930971375726592823401479579898169037394397297386863618824760565265344734585606327945593351761291085970217318493728960544308573200254018790643162734646694767049592606680311248689230875424251600112511280806261040902424735747602215947044968362776338072578375190125056482150342269022519883369571115422373299259471779053613417630389904388297795665299029485728026825559771109294530186989774904029489104810601424102492827072054637333751756951504103032187305488939587613182335185465712344234528572331576979886907570429793995547423111145525734977001851818564195563935120558814883023867883468888676089955684046142445318000160705323251962403773555207876880004946926783347004857773796114691433651320234868070366568694766085635590971018116677223001941605764019117381054088094415887404028202196882332665410293423491599845139262387151006732113065013329578581480452317739294959307542168092306936354763424244501145821700380978618741621058809317982391939084766340278204653708000289241504801300806397062814467263782609938073224242826041912932258412202882465217718661352472958827488408387022001659797469199702816485072261033478436349592405469313745181790453244117262382735536321359230167549126418226316630302272448389662752302396430357134015379811309382464148032109095638284974506087250623834757761626359745291287889796735803954174748403534717309331132122235599505802907164645445685726213050550264595601421104513754227875502268642723046126058384499489341993849182350384380121812270328869277940920899978101578828255422422863505886349373821241540045000940505072035491144184670903213050839265302109929075451852230334228927303929162801696323711940763165001737616281809158086963403653551317420917693601396134612278562724124262712650642645289394725374112068137115710346214195077827265537908123505663778095491402502965449302725365259329283454913865020194718325833836701545988613938068975254935752447943257864535201306235345587299616640913430987653920429078071686267483317713358548727640130602738856260243577704528900573238075376570248043518813313422074569290189620483000057452216933870715438683909123684207330774982394997955270897328326702309006759937775173162289375475999712892275143450848842884221207991033895711282689670954020678868443925294536584982472513409061938248816906081836990673074369972600511841801262418684374028604252248637058225026411717591897768057669671524509570630271018196274082507377858030362962288706404816486175957026961333800263728764467163278536724638417345256791423994580415344926829427525668555500473432853192299409442543795918123177627757150166149973597288040752869839052302450319973229050868280795650542349090104545413107283312406063513915134828488482043643025921548750385735845460094504020754896963449869201619082399507179825096281126904766937518155662890464680781665729944917693984771713345066583676901553781900262445851376025947844486411710656554311042983069230166454924804409968250717069123968685919562148144191159252045461417122278213657198287433175673313305282842499729151235188232371132698574265181343678441882639403744417763595130559175585631655001183383271357187034632526749179749255347069696152041860023676947663574179624888165400995556072495938826694838619553987630720210697499342943549839105394378900859627527096150555991334642918584791161602785994058509533592473861923695285356808405634647614843844606747102998009455393055536743552541792589422353880922496641598223099935960979172381268569561441954664812619777189456750513120869082164840915250187208883474414195015654590793694635882173963654782126836856988529009531950810256310837443814505024003716038502930061621761249416269548353908382985679931599780636313352040689651601183786116131987831727541526331090595150020116738465244537804898292195362374437285398915075966941053952501872474853770263035528010925184306037012143994636295509156764402344263082101846302058108454921798043633238617718895051143630861991107412771806636518861927919487107093990083100767638200981953005830965739825864214342755079318980786039665557175932027081045924535281693630738820246519520745835131509137544398015012668809930809708952347359521380867616295074644222423217045994460472763281461618856205528553534625617935489166369867052371498532364877706678012652128782875146973316145996468584942443123359024240396445057325482353119226886079667693806594325276788638181275963359606901505206873304829855162966399015113432609807035591535119466136709909712094444503839154798420721654255280329428227758658977167440916126084015143258220491697877433256551493658878444484064149423284830600560599913289673729240383135492935384327931476582587526428070428218550153418645573202191029142972648093339233977831763804549346234748738023590141943410407611840524220854066815816384722993112441248678336923915140591598552621104295372950565387843191370672940916748294144563738228312620217558459918310130644368475379136737235845445883631648305704210890358001439237941801518247829609543332936901766144347441526201069340879108990886358720689069371548494403510258878660880093829217574919590335596078330280490844098208493964831661377695361084016941364034987145688742584792289995752290237352855763642245509705488805294965086035185961423507936316810142139912249322305581077888919501245511570493911060575350122518813295290825250070926392811882157040633799605723643406157370650974140223819284031622921836276067310112366875670486926817646602159184969717273302190867137178574173314871689829718780091663716651263046688918273188255786789447939427605985789541852475828842893355836432818730835252105712695566392064047483528754274739591289965670418136024316132555815273078161963189635780388458768457017432617870102689238353679059921755289450222190774398799241431638556442962626857321382476796573447519404387800960427392716289499318057025586369028005719681981601551313993793610560359415511504871544980577650637423418354107673881687934464541151780069193641910177489961292888012383862068409228534316433502208464158869100756438960570771169201363185550453969749200613367015368530059617367684803537284438256365752878408922435815833097263199905806126982618509534981547979748024603035524577706308484015253102592556634543785090133346424220686802486109902892064093974567463198897479401361234425988983865689350100735265998931206212583630433169194985945893709349358592548871758824779922286416883199848306300946846165217500009209625271685961595444785501600733240550920164572347895704191432979177341628000684136215159002233346539612269059595105437519408489231227805795594987799226788874912525281858801425433680016655817960368969765419765049013789634468714982410827649947077515608021473425471418498949222828591681604713087985210444616972232855931897219069929107015563433587955807277458230617786120353589047913071953786333378692499823197677730635911753792383984789003296954524305438034437002716040199401130710545720685075409547737258462126892382202701903473053640866510896547752920066584961467202342661094932079352869542957690414171752132222081371633919714552249156543051754141180471089242929732286762696440883053677350344473098781360261699448644534597665808283005404305983764428735207693241315808884612565844185896422409953327509076457870871848120944872515036728719130277830688986871065319897875385287547480265744845814365546343921190219399210924599794061432501798910849165187891267834968457398856043047535456670274021991587941368201773825833396669031173339741640656302256307187531101809815323696371083674530684631656537108065489277974176339830586032296809096810633759500206892908292612124888227064179901033157429998373197749963368936143315381826615405388462513543819611628826844927786964528580810209431021826029009745052641342528462748537658588864821990573912080657929607501600935945949027662408825839188782783703493930967935294357612457479525609579810502975632304050142799239314552151559155586912113795374815349969036424323466891082106643024756976780657967424556869793418910168528006872302486373521753163449035976423045063645443857432452371451755042263683003951547154143350228243661336256859356646663688324624126025632651140117585868042927187463969660980273203091092277995738952371786171714773897221578575154064531419143363862992376416153443659804911848895285380775890503116109122796393429641288807773470474052448120748482908853246253985699754817044904362527791857474519960759790617777977704661156192916436164365740542356359433700977818431802989993139208075271291498827348378132923512628149187043509375581888026475066330769841100197431703199995003797018962586361976213070538100556733532032522200100750328415907412355389219440727780324334011999975006203796956180859894703136892630932402291056129585823419017662081570553376589145596150493756194790036180123218396138197448748581007853993580977449811735281464026140322845864787029093533771693979833927981505209293169420216227409001987861330008677264263695532576368574849966422669698056464173497375870134036117595219066471734724138913045026441322719481018024194172925789459121977495634382151551042384202977180928121651126332324226811833766383071472876635122925532187499418377094407261928064066554874345769978295645943811122324284519553093372178848116138944403380503571594362248331732114236912953753937344336917320716288152279146318744977062679495580359370178968806316573040349025693780340126866098716625775672329252700223466406684590700053201772508369575841374549193944643894041832579390428814712462863238134231972232287835356510197004919134003462852484439276262368942729041631306569124511310211710320248432718836321884782344012876182364974974951951770610213168066790614834612684620679216691199970199445357539475950363255413087464825724346118278677261126076579845907291752216007281444959349127397316827620564030019764898494873301958885842765432781025307572053884596047210871249744725139310330291526965493326901397466363479020451285745556032632564227376161359277018934190426434300515781856794246125918992695759339907849178608030243535318474975005983441967425523328440880089169843974252266680405779892567433153420094419992772058559058856020716658045095519159102687046526517161416534224320577469469152997509999874424237765454415885441240595746769716674914615189869921634811311814056124389521595287250102458858497519977559163246477633549000067518106989703837505783180030877048960386969689660570530833142895489393985796869836270203834314844175600161826640698426199025755360131307652608327177559227225801512939038515735211655987860267258101333242848917999632714860862713879866844797948460231465132754157230543575405854309428668100559348432016815180238221078524287976981192192996660269447821683717869028791476299407005362357011618745001757709059118605571032836411858104177766835771684027499211515097734783757200865859454669847294355005408130848468157138927355463025873844783909514983627820032239940630997824715676330967950681795787976712529220963179431285619541275261367727337690836857629636675943862826067660582193932095667940722673385466054996516063964939149995875344264284500285058823742313631182082672738975875087729224433749437118533845046713638058618142360471801385739450584211862723376133818354072114596528632734427967417689776759264588809684789655978624538287818040776911211124203964707324722049030992302523915953696077922347159656929027642130594679612155096524098193583432599145419765040263250861566091012213884609839305717984400640789073738512951612927709524840949550415880014606057166237014186284023115294992658805748148479923732268813162779607722335545462686868970958047898671878874673028443230243338328330217153512947884425464655900459443752923880723252089853605776047222468044553217705617093907201788549219061286830185216596950143638704028211749628154181253980404057555653220650079109425441966902038809344974270655375186537998847244350218053252699835854799509930359318673971115979106906030873704611848708968289500874479006514462409903986963022565086012305672352523243587533322523757126478820781404533203484616046363461192165449237219540734434185972063110518669118113255197229855925484114653813453392906559617284474025959033566989066752796531850387594902989815920315438941118055950365818638321280937297062370123730675270468917474681415990151572924054570512468862146689465697874945668467301648938430339007087842518430647501950246651744722099655832692291408283269199379267378696654989181357718927633853132473524413715296139636370096625493040654617556188007583542725716171536352394285721572861110177722975908134171046381378984572078881758920325734452010280347754194844574089725834503646855303099944907224248104540557237544773520323668308735107318659781046825388100080073529490674546908320513226579074334942595955028949363427006474807175966345145149380321516368683584025246740823317058369904912512381260429662935471954830018730520678052633505315116090038203409347272643398038489913286612402166118511901089993125408704445029591661139640997155772639434158725836564852131475562539950359644589170530333923030331496850086949713827151394400620593472401881751030860649336451626143965575487024157229868657010051699207209266106964426530474068855595573100596397538076926303622375522746908411832284863704606309257340574812952057831421465958412801090826932849824849750684581050204732569622298016650284582211341320354119480114486984535326988241252201551667093769303812356520209381947522946664856770291678855631023098738263120616604239480024317706635038867005789756833873709873789213797445697951621709192335228501538139005172718265217527775171197406477015286459020407341020252247208599990480050599452883774718670373680482664881917861827476714960835849223673109131111980671770451166005721113894556095469333030968606169195972672916412636381994812826666956251047820420193783103431905155977760693284839280607733413025352181105225209673066499329798078221090811010639287737712707467762547426471202786504932464937354567853047942710931522563399785925360470116914901941532947529003879616713687497657002108411643795702417062514073226072166438165677808463556276157873668034046563983962642878585915737215978964064685641203316058110377517445761995330679519252221863778785785315374133401754527685934229935329637620617015397781232686554066025796932153369566601869876067654082257648805193750699473751867564017526138008699169021857050906800596639784609713976288354212246806796928975348210845977120296389153116665743683917010971646964786126488519920325770041020035442747071085242218982719568869185676623715707703876849807063706439133532483142929562643485509687674870004662601719829772278022210569678160490562216741066848094061387243415145803932173617547158832375445072754721702621945865858631603703472024338581482311333264349310503420623645814667706091803352744499274044147084411583590570063301619013065622166194607482382638955069806823961813536348587889416468178248794183129072573096270209975266495332113623289200884156904310173951609657782602408117407785457819776185792337011195694838520229590104316601022604061565664134771048447325786022636337341456384501130661282932343144581291288716887323245772242915863720751047854822582462892811049650583149912868234123718125504851478806025763114922296384438291862616944121393407105251379777167364632259172703555223670430273438365471086186964490897288473007002097130619666962727312808463160859503700586278663753674558036594644745110511731533371164666502189240120770031504687315679018776490219687635041317776717076803784419212487048087166891384344014428173721884136730962169927712738165860005646312360017383467491642514086117653294949100865724879854584600492853708789116770981051485288479747447558811020556924455172148968694308574395900425181479470409436094411476643144266482301126855939727796503825822000238757101102388510901664352382390881566772305103056709832799777707697369722429826026338499180163380504902464971975683542364815253646793518185767334541278740973725830840964729510783107367335953595304531098188787772846173930218010627313209679044104563962141248778333863868761898107135520003490972911611850283179050327636656671531603446793620976529455623788166362763920865835749596654710687099088050925142645849294340051521624680906665966482653572577746034699456081450156907558682931480167423619341897482890199360828528156050328421823203986831668245878647588550191413144919627166983621557495914154592774426825047827874957201518000335619438339609013885795907014924516921384023180306060504340130750780847489067408429679041524880606968087350620522973106323151930650630402812252708886235622601910337808366808679058129274608084188673271149163465822080984303286433086594265746022382398895792246352257936578694417605971902255054268605634020019416585457203021208280392420894367861979982796197475912045520788710998585477001113700939950478024133039463477163017507465119384136209942840345167105328219693146473317402613844962732229805987757834872117609914241593970904392679339170141246790872372536338360298251764891966683990529148709184624942989733064002897138001950890075751561682643334907484004160539527687074004351308104496250137385313678118841213981713708783994943791469801900065367410930193188389688176086366256929007863059726113114713437295643329420343587357771132140911150960781785514478933255333942850136954171508984160678566065950245919968678441312004149047260911720467688282199133767144491473771567066040941454572796505627493088526448136737201932587552421789438001161111221652231768860642089688006920122551685363885188370311816596611634849492162968140898985164732000509009983355825952416465798825603196128891499305686823209465016154552820634179753236266295797276496712837841032522636580965427648226444866473626806878194173674770808165117562892673964897313200149698492826953238652180157350554747586256470333806651315194386281539944506586087189115451322095243518717064742713470034906288915160097470429261119958960969181361586043997133715189953676260602140010708352965382601865429911573280331496370589181702786774159253426312377393665745349029521357302216814509781837916670294045027542288568297090256022804347297236704803181244076018491978405296791560114464876929326479183589132644335642625698843018109413841564478304171539181498258224522498110128785624683863592540394416654561691103211277715637829149287311427349562334169577372860307402601687016284919610889839051174456606120144360448100404661968483944738189789104108155532876022612471613988564811583223299840103975885484806608584054948869917084232546891069034107986618974855221172701276289599529643174732746628088482620207163358737140489670119718702882390558796374529601037363390395933842932680398920878019832429225475724569139582804612629868618261941469912649075135147635580625426006949691835072285377975478228833885398153572996824199053786398884342454952025496539382431422764513498694527573365081802461210989191429822941121172493787024506635405140420321255424594962934239371830748586007202282316175778188519000307292580176124044061171543687296503859405076166844941052500065651942733213075777301616009142624431055684116725117706307120880766619477057228231174522741246306422277102021966761453955905267823915047040699866435266103783921779540321956480026217217448198710740825337902221827674456098020208909931143270514652623694728342764465459138220702256197317357749862290853478612281373628264012995854189404805898853842685373419412135748285734525683470127048151288965830055660043691349214012525450219986116660096548775549301276818635903529292900199947464752506889035455007368081714100769284484293532364945945215266588966630249975893694705975439452179589973964426235486589633112551408026225334099039533312931461654399935658661069201470486918163918256427625794647788140161419895781705323012411124490898362308477726042560137164437137852803074058795012992609749205647284827544772295451133340507230342755928506417167988857825342256398823518232754820073350823441855365807508182523636158267212719760002411676235440942566715137170220152520479241657801055298901054821321426337734677805397821983710103869971546322172911827843508467784213908447789629117441431722754062391581419865605882144846400238364785256187713216902039634196714283210972526267620408684975493491054585216099531594164440246828010006313709834428480836318215082961716967976324970775305111929383844766433523355619563405895505187206532721546017081140265398997737234694075181654115015366661173417925275107443560735947089870387198228806154320719476152174618920766549304962678953961179879944389011001116439285912031319861480451687168710711352075612507601633348085117832671706239730421883235841881534292194418148858878375266474463925109505477221589011927819108451993568668639808143030875540255065352587244110990562479399597852573305557496229230656730658862869318168862115349326355262492813971554207426995282509993120690518241160752314565271814718346754219813849466493170570194934262479577428469987363608876960013407099721228611911815228447419958869780115008100611830816697314484547533369328683716613418738620821464031907255442870550482347831932829010326332704943890716246415889369730914471399248687536771227533620452889479503382383939466303638113624632728074767159475140275763790482516436522370558977577528532001721496957235032298924227150438624448335714346524860305225926226835737007770765813402088956593936783638161138890407625496557749838981939405384724377469798135486268698255386391924874578647244127422607819020591022823988111304880840400855894959393869940250762256138999794755623488306014654364832926953152360009107908168389853208165677980264286215779778825250419170037738730858272020412609283823869950261463461040580223769711010635288360741670486197739982092400756620219384464810556447683749905741568947240401189845925659416168052373142629036219021191490941145846411454107202972350186606632513019222358579349613752108721167672248211423370404555594984263349482100553830132965548266889193166251290416261249010667160437756043089558288232397876272965477656352733750835180648543473506121729522663890113486896219543112805953857533159495255927520375645319130932308280063507497997916116330391662918014464691527630348126441477778222293829895715923992558917121559417381103061203300320553604218115114940612873091889249751118284043979510513943977023077848420903157840266264344985513649383517718823429298197115970041644324266747323423565603003285213334889968178361450067766973601630027226514453296369500010867006634966680216038817264311256879614267419459391079900018707962040051196911754529855103745658898663994283077385495573687992052880763382605938075461935512690523379641241263822207193500379890507802542477345178297029053615814678878166161339987240049646328601254079395969986992414276693854270920886444552643884683616710578465362543664947889974678122368817301075362461104049492187664074950793254561654984653765037340470033871366832985941527542611821414361711434341247561135095209100303489892706988108345045596429600062980351717567520254118399894904932923795195846801367524612681231965609646009421693155254533715667985273645900422263455577414509274902876485154744819218817291018398295949067248197699734167834715279615272089270209041318881543718823406825387375937033537809544198903863719891722164552640012779656789316869756115238545012754099390915117141074447611007647430762320262083931024806446911479952926374914247546265994483940111733630890555940659812414468612177284842115294205844139784555194009124259770857384043975299972589281520355398174599787219134537173629198770903235738132529016233522185715755630219460885602482524021102134585445810217238013573111532707788643362249743722378228476234551019330279762756322499187215138682518810146740135416637833607514239648339172475257098282049330417482641032982977081752465158621695467573101971583783849797766721314543934093904330175593498018575331891507661734780880780240595925551809749886228694981596792046114037253098102670998984846024245372442541362873738474364538153008874731684782522578626211653839593685856730954516427275407790583677983723909361529911806883258174051550698962072451188210444794967698442757916891086946367050379855826864772599232507614617557110350641098550691217005389384233874978861832312306456148780868653546750387932014299717224176388379647097138746773663305676461275448685501899594965009166728159123539819743888951919112720049876942724657045531437435247682061235422398266638470775808445221579534477071931905935325646218237607966712526062993938758369008675076632594455715250260687389317836031744326353334806352063487184987046145580656867879411044447257686364001187018234633587145655298142302247080046369775851768473413776439665024645407855554335423437451607412097040498589414943812788151076668104116158992519686012135749482723511867223813878784138808535260157026946270738173738040623238929909272649715296053689523902296164754599130768373795468064698735584197039851645329363443803065041695484909337479428662804864545131433039656117939011859961899378703576370067186988429124542600475906721534093390487095839056350882646308908597879498337810575768896329200447317958129577034844754032492810032006269929962249098532233347866499690177853315790743776320133758504842122208775731313462948654527383000505590288743727483438174884411970894844679941718718840817925464554570530045066834926584078194942744249086260124658363401643623885392415393770621705794512708002329731829290471063610014033839129133569038870764179031338703290169934336088175730988487221935856027255881016862050727330565352776414767189491588388077061359026759036587258717321582654189471187352523191209049788613777819979310872587627436699510877254595151984802960345590360361279501180947021522356744747805341803471672233151876381142383695754731029502526316812215374718260343122735786000521406787138515945126330174034625920826365681760276997728300948884540241561735284825846580093393366905889244689537674879281010512800984048829829802169012284167537547209651237492253479464380142936338035849582410751602220220108365068744341295920304593999773751150268619109080049647141089218627153789869284041294671549305628903613311234365650418798018546661883828216814246035853549840101937063817554325882545800308062292203045598480630584464524593075436055761848978891180641123871518589999016362725141644284173850392352082270377706663439252131903423635970389433175132621703234396807335643850474545304655297520084206740634676990245696841389349351553879210865667632955168591235331288763736062751514126356716920241724760447273943639416879562209678160253206230550066621550076545099913665233508020440165742481267495563917672561942973970279007531494372375558082597040166675699085245169361053513886976292103869572528087635654881764772611519300733021603741356552907889957869906281684521519276588096778394117263104460333397077538706201655084630494167707013446328142510435373910428938895093368063526434904562356676144140955873259357624569123997482646439546301337248091528572320901378421050487464621958881405590885938210364435490139315387031676960500450101058105466095746990171078513900738911019115463929117947182991503902708984203684678104967826024776955542338788232382724300170750927184241221466932789797326364051750059372788720491182664669792597195974383700014891047906279954871396728986958167316090333118382359445790303308986916368058196837820433653764990717437669951910259542921773546708121295281053205795630435662939420609132480255925626395509348210180260404235039984728960200073239299306291833143046668075745327048534652255131269168890173689560986700354856257139651441825929433888870102449239110444614500596504722692211634960185136408456486172690503847922202833715809980952636961617299147112504858487375264713877649351200122920705268304141173049555314554930895400392350772124731502627831779842768236496517061882508637468028568467729842360157992169663593850864079844551215480404928608818745188690587414761736139533344075453678421136662786141209097421225139831194285898066985093556370537504125255629331487030914007234163099788219775747154657330425483576847134810628073511104963780402356354481498190924426171651424187181249152208375038168580141647590334776393490423953108935498350927593473325484848265228244960300651927996758397773002735982317493320324620106045043716310406531862358151926196587415494635349673501335287698063325437127580683187505880670859211200849432282284063966709869953070136436579544436269472466195800570719893914114703322064809099272293550495894432049862175937859019250172725547752506529054185685084043963873400122148715358402638142743687283554913339486937921160709321344380383925930726962614161038118524872701759540438028392029591201765695192700219732508276225981367918527846541989185764154886993929467212532076169268987457735829574128311601596741130797843150924930330383952010027100281916977931410997406113641562777803296729205219269526355019782278469819761737165017005768002008044573311938043954770275655265728401399856952938309591078485701656967280838623134201757333225842338423950606451493371315580840459471300674579722309961092361313481212175946206442631798219567310706904693203867317280373475884199800849385076388998642130512929462994726527808100397804305735495232015855816547536650986885473209023750142627127642135044422864100749983406203131523938223167318181084505240815073471823131187861116756245392844347903248673537580087272217157019457620301232111725096973592636944952857477810327350761127374389545476702423067659105051473938300783655674986826233586689863991588263610410070116451150328659166468755454264363023618867693462468771026422018539639176822611011151769826459302285423021786677748063773775219179450987909521531956151374754558134067076094704364335261312208452814677311686910417263905022125790912766763783586768062140474478507063290672531316307872889997471950186128593747502424818980442683447777411622019497051886960300361052656933705397043260054919356324737731933043342634761335300809796722065027933957705262088571348184657379372367216584645299215589295981453292784608604234703145030413270376125874980796361170226468846047560983436601592804496309289992720531375949372175500698688866069009629815272570909048662929495248412207107407505355701116439083008210542436574692819100457140214051965680214842210520684756365484715387035649051888918425247821397176019012356016156575460445963155957549824679071323220067275264965941483361645158060236139969815727623588146769151104448602992918228362195244328095816505024941722842865574907013640550182525193163795004557349664717646221919870633230477190191806295794272061055614570917990078930046971882816959412514970460074449934493202347922377040605864163670011039817989360233236683455850086584191764727948607205060217577436619774110134064470061842037383006286935456403036197566862549259649811642475891501811844128181068767191633968992378034295464599672669374059413304995106662271690553613839156993305950279841455053146266985997560619358083592304513298462656370022742987566929273355765452273540444146211818691674675554361498755062725932324801431821076752835666501647557423824422421053813498930456475808460643164547510338946561744093133563747542840710991007477061340962349503773995685077494591047076752261678902090530709122409094741855298008775799736673756414046181524585483976527221546276506288282733693359249698978525518804734860348697156991465934010013775762397224446297219567772153220426931804896661825991618180915209093692187321316551062979779418512044382283422097095750853576472274125213728428709751905287230069303244891984581574813316478692130276798232490419483577737954983856155296473802768708883888980156658241378268875418659417997266872126018787927617919717901367499901629761189758084946828363560061175472741584404600756438251824190754491147506816175866465323726232377830283773761796301650444870390681098636482944748196296326408989057189214030585303412257084632143381774939458374951162556012026816894796478789641284912717947250676450609752288476624483323812606486380895654657841073923358672525628605671817228296425916793450663439138863041281100466014386455807441698130724329166830752663066633584726885663832699212536236218730615358179873924859968876062248182215374724300251305898226827130284265979920798408512591366629601609271809646043474662626638200299644716412193377870217774901231640143163409649512674797216078396333851276007945156714204449935842954057902231000346717959611490105063725713761693729438251615760592892144853874241564635519231390102275772624377098967231767906702097641326271943358660941244214020756470238136772206416415761212176182101613049504212153606901913531501210360640130162961675478489237822742794858461052293764644781208150186433056778556629058921453611548815593076310736850686409179149212489544840410500117343628550878281359582818812675831720008775386947290339425574135945632183524389928864337173549848739203348398669055608017800680704754544237250076338898182517926058246893559989450931377800187286002151510463505391275694219619046349527254156865647755745453880974834506322195832456225641773800612131475324701401055771577524344636948308030031334752823054606361696648337922473522306772947238706210556351723437138360266750563166761337915632538482228415060693545501625160059432120887142285883806383096812348438898390774424057727761463115476322002306297803452589098062133527347871732676882324501029886991743296961699196995503833192571022594506780307601724631468067007809413054286375623162402305415236208052256832592605346596258423001905983618551782783523940494506451619831735282223841038808129939392497254660847152815712168228488587707145291235984442830372949260679750512827049929729320860603334117355054321388869112695009932334158708469596843315609823171756163812573486096467415007329962944946903938929755635173679243998751278238923708494418882428035249613229049635781045964927394192065666947789614437091267968743150414760118823786035109750943513491225031335737771635732174398789787062307963433232270454696914148958765947391615799013255355855153380966329248086336971698077593610302105910672260027468211811852564670091958606325390486806211643871204875772335283705620418777374219811870813380255046565161415326514841852392390432949666449264888321722652028925321536311539142587265391552557780905918199290200003890849152519958236668480869916028465686720622275090686249228858634712514881541255785182649337135387904421794010970069223168755598678845668228550092156834903568672593843947374833705813697535122081373805603093458771916178282407751601435270113776845684586086227986862398089108917572888064157029512282872117481705733941519550210586020998638449173235410213077785818415470399688429689707873885974583858776480689228428372028617371566232716058848174820203682142365809929199662326863653331810129640310257268224982291821253514650145190721964601540691301150844490166190108777371370146023629560388296308413210562078589455951674137768496428268169848325275271103345224868509230192766969569813590277246727850068576454414466566586544562271369371258856531287413670280818001698192464639379926399719703000922783471496258043533084661150061577447405848146208334272715616097744222599437675773853841890261615764780644516358141431721550652011488628764628644016323797739402362509026149612783238364220517149848015741465861872569577918603218259422586948818393651708351108607808834357617291269188025366460579567303318142522601332517103061661114096810306289157625033255415783949756578838033954659835559882888007576959151539096291875589573916768542940292510354275973006390902057069750543941473297088905558816238672977617496081095517085940446064984808030678529623973032901961934214642290308768984475782216440527008230051440082481101825524498279466119281573975697802591274710026630574808682691000257563252068357893678396954354182693683194536919579765150532354673344331505667191078882197294942840304820711518289609078591858580754789839802426400344998071475265418192192219764914837712637638767796094069070965064999435139690628888743530826696856152214789216692471058506996551271894362077267025312592344488090502910402716152948213033213877872501812437836373182093324157111644954355178249476354664184966282856076435607201184552956332261432367492910348234550467201291434230983410593177349447255780754028398041113499229453078928519540372895719885811517318040616905896054581154838736041782962676933191393290339973718839170472838898169503478188743467451990352585592181069362267195775496305038136318228592854330938535022996297493063034544260497910204484577272545808755138451329372637807866639728313526953044483653561849356302941343528460391851710727702844572655919524976116902287720258608393956809141012331717995161909219706645323320510387070636604653756419041036797964976695152688023663540899310178762130818665595391894668645190784563347981118404302244134593260563844624036626850819573295733003663734813323228425515611048195938563704758843372895342747327344291937756149130939492989845421437278509839430644690460383132795190104032283034173562472599720912207690824903542846032266010454146524932116804152422806357141750265161200398468352179015755718082064085670778832563072970718457286555494999479835184372727065391262816180088188736918824954607914576706916777162966846595539557950319390743208775442556717215287425205095823625332298209137527132287429400081933565276859967259656432442605174497863689312562902972780963034197113638339179045709067463427030548000843683215047046641369038043371856605977140575662437900886355502427322594353385110097458986174362692733078799143271338463639709201443768853284107747095369142889916253881825941302849342339295546385134819969455523320429036983255302892688070484771138982807699323110388891057721817697945196218662462233170765564287969443142399641078144739825599698209854496192021332275174317017636618753213975977262665453756558575218857651559702464311174336895167964614666754029095987793572713781121415077714899487118430091442731846338512950053310693832584231244344001813343060685351507152532634101409450766108703967524135802288541291373523894674728308284053586400927020736956797829228834314944454850176390516341005283684575320795407310028778701227554127484708534512278575157373990807822595597640350797618542374693501818782662614238488974617226037607292882786457597228674737297502261475823228213876235880682292322211049638672161702624484991935176968484808293639554949270659912654701134493104260018047657951266765638539440270038652625617860689801158601464366237718863019713684811416356543298284232093390554394054662178860446177035402995014266718657567298860186050576925393273299310863857674200514810892464717106486023003488005674129524056478293805517030865880721722798272258427426968806902271818266225751353942806464775739218726183455524771867066150253091260429996125070868879076222710826098435795838535663449845009915510286346870941021408063524263926538946746902976252133438965016940728368140865853672238639028003613971992985926848976077535443283445851989705850360163613264028646869233736810394323802797315139027785666570208853271703989677798693869307570700092383886115109833538803501558144352149045507643283357669564609863598015699948317617934015715248294597488814124233119867725497104045032493001032156985993690513710095625811771918312984235615849375114579953430206261258686114887810535026730220589045994938556829330644938096058740976943453015578652549930999979251821010267404301097986333723833097900970530018671544254183875041492717780634353072756386394805129612686775145315153686980238303645983704928141073395851772674263343557776215594770070188203340982366286438363364302355506025882215592201397115325794140417599560584955105762355015140403996617502760607678771200959545983140677330810501442455213252758038202495566953351889681710290959722140505596330314667913755978758031192994825092845380830454716443403957803688819106730503376832297629570133952563121388931574752484007569074082218529466304743900844468601182715712752449997803213647747658409194464684843859000464411754546461883447812047117966971974056337679550776530762208068586418735439386791682057661042453605699962179500885904467089267228716917344889970092222679910117715656054493693386472745292082403732466712111481938717729514932420840382095231071760536028918519523929351837345250203683672202816892145086670789601932076536132562338494944395045367724065925547315346834279141824247594179400456867856432698928647180596593353549672962860718946824128893631843570847891003990004313291854498205178371213684229057005360716936586831102247371476228469244684287663978240999385987031000011205463792721106688814669614786464043747882226832021225473607767997852079589136143856486730075874917363640421576385085532384523085936887432753396116321013701663918400183901343243150668625087443955120767999423844153526942289191352771869932530137938344637422107989603025353500560127117132470549362775382855616160901393507020388336216758869008469435849640992886283566455776058570429837417110674583731927373723942203814376489396191600514666378542379033801003744245994256526169137797458393373345621556722531056380072708695549992614242315248185024201808221250961586416651567082645731735479134894208627422616625440926197316297521298361875666404789203343023017559768877153182184492827317708844466440362473708479437823706688080833492615415471575189878207267155038192395551814851933829203146425055135472993325127478745052907857913006508787718798449994746669471773001895222253021501821043598115435144192162272016231487271432506746522616237162955831151160827082233039278009808473859815052865642146195500893744047425280082024435902476558796269876018568458412049348500243345337113888570840201164571575486159804931369492260208669959401676777576703884468509063594550506033603686658977913187800512527772115185344577895616326776497723502378555304189148740290479401569025867322357407467123706104445414537693968066550774224712351515606921169636598305734056742291576971134409953361388544603963832828726467201225177915036197603896867254879634293734651747787820352700836247669947471214772459940666780708101000224228045412344367670006291324838369766784239251758654494221645136272082153829681801005500146505262648166045928625562961301215199693659282808229751308227299213317540286315668214697413042365932264958497874282176310549018530632720838408852436964025028584149567905163595113003060361132545274009483267190565958986026728347502366357049877457302791135751070378569812721653737370370783430704317694896599878581585201014424768932378666007080090937678638942701418866266673979786169767319395604032289656160338137084290595792805540368949767907235848492805971870448632710401105934570468137908472352155387540594675616979312798972834178990083064567997275463099496211091911526148224985773717817123710891210652537982456350767895604080405019735975412727989741197516608199770329647002917641266361905501708854653522246052888199766075668510632566530376930293895686909197382196970514304564818960296442913684793312007645705069109874081448839777429197818860272055462107787729875878548435865585750785079877128199911184939515985964145534990814930058815415967460084508491109843407145995657326169558070485002765962015789055053658232483646627587193365224519686306488167190780883721225924631514107097913646034644047230677702877577223620596999871103579710201083195949552943937172936422737568327157066204323100916600108169316986362129284897382377264987385670030935478970393417445588682017626589741059098468632076945859313757286499063820854896802191075508085520582455465776222072618732935506734931771541065477075770212040148172595505090134382241731612690476998074534346493264337964363836661149697072832640858792644444854916061539261382041731306955058258861081536263779559245172429107752732638184097045533972385929134891133422518762075264800466460491190623055979523491349949266303435961742893699720231119549856314794046060492994882896756947560592928390999264342111569968914413691617289707010199014426868901645511928795055345999304179563883902267719835200417153876270976028681789734370711200722156317846242763592913454255547647148978121128512313463361894079904660049084037857721413789092147910629823616744765833180301626603374406798651492638896651435262548525671020901365591557934641081552524412442146396444205064834994796611292073510339781482057704401578953604535091962231297447942744356071987565349693161941697231176230075410822060139438362915969228894594399473955104904842226484596028037086791642091893160957983237629079965607596005866952106194876806925247059480477718157167019872918225205543211819610226447290525921692979817750634363650399547308367687143372583047111581882489669762525828158157173569999104583508411675032568836260273636600700234658030736711141811283276841255799913491771513810974548924492934293225861930324558677904537576956245755768796934198494893104989305684719178613348952423672838019813276561473468495301022894802787301810831944313276411836760568818914841811536712862413084673647878728997980362512680349955629743159434280831887976821970624982912820047728240325176633736267452572089797829925545640664033535495242219109568242056734040367334741910821336740424153253611983935536069712498392600904514738143205752196099761548586557760366086968674663076713348751734290719505718979465241679025023759979471143219709040880703421054769680743908587223422963218332444463572652764751899715240886270775590203508639841680788824907217319546328820837635180681667836102629799516500894253762858423393857117336078701471137473792831119068282939986423201242094120733395364409416077198838860166362074529152592584031593306139847978660291342001937380538605259489621079048423418071683951441315478264373122922915583680969428657520094570169904784131782911848778393750291324840250496970692998830937843565536544392971010972765539739737192419640302584421615446063253753301733080570933945969116205072122461321464135762643684310134414051911639295258278221827235380928493128591460432492914495016659937980361511663123286757081964830728629408213035392427862662616140631421111738790944838834859042231053249817669364841141830923193271704078797872593589520119358463357640530865894072833125281850580491285600788587943799495135761046918831647074700068435193853229575352809729419358444831546347698572724370384556342310250304626357437475157834192060410075394677365934686602705491248143668702315291863765105260802557575306880416513192561052334926680834029133622818815413121815306408473885192271283234879706535412715629543560514692772845627929710960193321879113152353866045237953150560593483933380253837104736321902459912439466797313403096842711752777920266641030556848584917089715214130587583891889321879533336680616633329877110287773835935780812279694750010325444009496274323306145342415171009646895743588237033721467905832854637132569774595474976035115671466041426415126477375265001894139882751959705979915503305948447488113994054365401335592563123929006559598693270004351675013249454613582023506439785048006123524149154978005482083887998316440225098633656500453849183784999271822801470208365799464966241939106708825537414830922293670370285933112559324509501215518538327738790501937843531557498908530680587716002684294761494794600701123675986413673014427445750455050557798775003485383227483970543693606019731770751566571107698351718694445698392985014430691958184129468854572666479844567656421778965678482673472976952245394370506478163508233839816543254702032151884599661170541665692036832664035941253982571961905009851978698262430310136619263303646444681421821265218364212035150744465149517447151514677183503338232320754683491732775134769476257440525547396356198888854789415153145479475985254702446896860360108138397149755781402216120041323914027141382285048154615683825669449670570729623165508867374201020614873365944519760525674585635693663392002277989439714487065999741062023390971000779970817714779377071413029267065148878249558504045212297933822630019549849256988651108280360777545549463878019650224447496245441614312360469163779996843063300832639627119363284731086390472876487447692443429136134201305391018222161747379917305459870873817979310920732472937930517629605912606484487143380548589731304839199612407692908646675257929965150681392060711810570272279065546108320092798601045816239494839968940054910844975856845937895770306815471831314154227883150070829322751726400188606005568760251981843483382267728578179456402112739901356655828301652286304992716282240428625603849885526264784489696261274520250089630924743665025121208303170710627555956478336356848471137821808397991781973595498042488728584406654417732811698063113745315858678264267067636616937442469576876150013810705745846415652413528172249342492993330626329928342433147355259387796223944472506671161544505812357411747136277399009869329405446401523666468890093467691103186294283509051981550135919385760647024548043787199932070058456613030450786846597974963935969653620529320589836476542132449021943901933635563057704997296734111730149692724658172124983943595894407244292540254366291049892781947958077024983736081065770671771296381347764145607538035861132586336961090073437028355101986052874786466971310454543709656804222422866324753037087378786280304835938792838938220992048694677911104945722165541833691386185878999254150386936534854885466593894496414817388797393797151430778197188515154924364506228070929672014566261160900111964065689506875977282148078237761159968875409836840397730985684870355386569729989211969100316241412493269185328080869348034242886290070510954784498565128268494058651372670126992732996473717659698321048242501618353831591548550586482902837306134396182383777459260465288895777681979900676388793465206666013223838607296830621076542439480125870487277234169360976876607117318736324493861011448634572073420038704839071748587111510474886896442111568463029734738357788312555238745339717925783227512489471139198414823555622430531217823178582084076719084276681631147212714221579331739334137061921976071010749359265630562865778718714212222982577273094442794753190638635857449610698364222851539104185264356465817952834410878117227513703668823448260274556971828278488289267727950880626196967916257719804032340430964344726266085077307482553006970645416968622247185457324263248196487282261027988106944758497419030569315540383509083377197428871672658238101111038728179494920637329905297559087921364457819528161236794496515924964758190175108403391748184717537500105461770470998092413142274895324744502884491837199431284766773447525395084485439588340553848346229130056463453247402463791486331565355173336830403337884615100945705669593951019935602730848229532126672033449698109036041199549893497522438457244506867750524203396981371465550020493150800310703116803736845198785741544959736956037753380695815529585868472694888119816657395155105827764618619686730568080340143652922329657193907751507280797794333423694205727278098153852945762521273751199035916748090161334275509012645958272206638157988265282804967009728083261519471083281448715182299860860600010527543304513297173555527024555494680772600262999239420904281108079024960129666047115188539609225205585839194007496491357316349679952357933392056841674032162296297378550394960400347579215897648785949657195937044892867634459801217611525186513910473572585162077735601880036834879291800480924273337119735451557848129823982555418742883269306844306175925087388810410681823861435063762214402178819741409359179058178566881994777692911343454946311611001508182542299399270223922722088403798305299094331432942474689367701116847659633612133336336219975286273082938629694094200235732549603544790141424856206552973159725658249852294465679337036291928828004577331407453153642720246765800991412070774369712230847512595625833031609462273611587959127373573095045357664887989195671340708273528634075163453373481992666666766656345012755969253782977330882566328332181635712747708030796373100025375171076329126342902899067263766974541812501554519133318352603978885489193379757765701614845207941924834846821083059436043251206471694528462377561776885141547140469728350941447472602097005889770824956870332799986843197198755360590248150676862761908846279121589753368558152741203925890892189781452698106130631591130094631225832685875629643820436699424145048783913709210353699759962419462247916391010520407411624412566476643077464987396841867731126771825302331470260151154469854199936757758664262969493156048451906185597044390239788456431548278278832977897183027982832031221077716429645595767013075956303867018951799940746946957752273424042484199847473487833620737869893152027139837792554832061070571490317977429459295746117839158231941104268429332639282664678197342817941977186534942883494372431386146243025060328872831253926908546809932113985605127113737112173931863744718824768188864890202239713476410646996566807915924789633627201795953613817567191151881740393035267609367551070733765792864894023496131047393601286953176623879904705977768810042217724931093385972900879171688357180796476303030682594523058331600235227067575832367283227251913348535688152549995659906804665492240254463590484020186364033000441286121239003907705404696477663753336375059921887131939647557002803879613111636813752967785233097816888814427916031513087127991902292634786340153935767492850281766582130892492523774602720493921940084804586269297679081401580246604216293659345789622247454251651968862297090578539739124594120212353847070133405171236398363996636248004873703488386366614685444959705276314752832337986007432548610984812211327639393726907683399259375305914668164090139108995311109130966740508683444263364502850099554842641317749788487814366068201419760764087019783743425454123367609374048444585864652146486689850706657125883223087836757787551098222433653687937823857158193176464082666228771208216644656593274098294237024019076813474895255766695525213337919509980390037337584614419345611249369528213391319735202221277079180733559994318782399242479807697234206827778024755354321555421526556538467251029310804971408567382624808346889343212028489568389935949299465678774611801324960513810374416569969117074976362522644311536925410139352826365971487200736298762747029769934580353782875934518352891911661311286765782082416740033751102822645212818072211618779872533981193202473796048523262849282851590558635594674023007761533486813444860806787301991284080512410413212060936821951160334594883956308219385420720086082598919928568072840340825100601787842636700871781465570931085570797563041875330363005976364007623330862767749179674795459877898102111830174205843926504752049677266684643238289615613129142337339737212861169319939452470747967497159177286992353093286654115421196039974017886036261858517212415087546317893588084127236506942656078384943060601965577110002597397969162911043726845436017967474199393724963675992335075679266802523900458573244935718018403007474597552289099046204198658019212304242904684211817043148077243733386162796627276389216376227815557508094330372873097734542960188910269694077831392753752958023265757905597849454484057789401179045316809425519321805885040211087230651138257776306157488841863002778883731023157365601088802632951295706619715060523692870175371173294111937720476622387195500486500129108963611249222499362184316601322728372457761205823188886700418730403870281162138601789573020222549868491279506481927298516632201227986259051770570796571545549402105494719159910050936690571946477050551897182995858139502591348634186551996689132296635912220140574691515562616476608990679847677273441021729385641867071540567107335189553461720080487552466910428176161585667195441044845799567779315752709497736501795380080789139199186167054806598175346479406944003611870662711365717974025482911881882928486268674714992615207086238271969357902039582284117062927430532944481138344906060273939243485270820021903201244974608460646187786030719633866646162165815345621793430844449332483533335642132819601501652760907908609038094965618272980687150827987334726669238004051491464211226983570823889743642132209425118011973331501619403109763308884030125660624366509044536012393600024347378756893098464617851650919485106237622574469460007230834164174871402673400033257151097408511840017257754068469027634053072117198078939925550712896669803692737091197970436324464611033048863198240826491367780089659291443653864819179343640793286562045742137107747459911679058461273332780536307516565441887411719844700735341947562441548138488268318790906002847249684489274372493475077228547979645139677850840388321249955312888439033931493421485121335141270174924211997711399722483124942114107437044594149622166596490344242780733329701011179071848406422765803260323336408716536442932989148321852950192796561013572025393862365457143915418068622936565401293144991088390318667832556562134943416209247048412093141158355399807294297677532155287786073802729159814035338730069499606468455411232475521185405391204621485513595885853811104540958019613004609617697219196310839405030738242347384597723034378790775177207182040043875612705417127610906604861781657584044455968230507471439210629063641125543770696025693025097264363160852148344112652463253250611679634284822551870518632001707034915700507248314070238334916375468628370629922372946136389795542095235797460928488653522769785484090122720740133642295151139562499417318183509384472560013510987316858666792855505341860797300430335281092170039808711252229896252141123234939191706531806770361477691481368129474092391926736560616878719065076912283690390279953941452438557172861820662959346727290448593628950765629892329620527624823372895259173827071016282206005363756781205300945131814168619882152136178341587547949920183800585662168480995046634438934471068483978166484164481964632511620588114746820732573676659328456168118486757057702154605579181530785778132601438416643850876726142275409207821204148767442527705787636115980446687414424566267130995557008245547476394708783214323288461800346818155557091267555819542859721259863905242561960669692464743319100877870016016196627743242166785564444355770813882553340193283191590730490611965418425675470643754988080784900928821992711473890647629566562234517952287589600487363199476315213975960654692743581919524580965849981101418866551451401033980021240752868634759592146365785522991111865362553719216635861153677522156026308132286397324497398865575599411258657020708360831998934327445844330574409181880618306029908686270345428117513179822690930829011051913540551402383930351611196081220007625847426503182287116412528237179570235534732438716629986954044936463372659079010836374136337113526563935183701664348139803478194386650966340659321847737018772685192135836887510120125203634771343529334758242884778259213400497979608113715568551036406843355698956992923166807414740729438387104105631926724230880345825446939417310248184929008142909615643712042090785318718513238030606956014571042177796604678855584901607205878257604532431951832554867689666833072457579971346479422359299526661301114729875962144902546953925825003225736025692339995388118853660943924416604719048889373875172036676560409755318782882043511958476181618990279024175611467940250290868195992138800350545068790367423951839132682273471019837618474065597546345022630862488619649947725340326910759106242879227611925314177962551513942535997260419668670420408212897367549146384249570300464371018847839398837509584243591491630946783872642544575398429467685259143485355129389672854931477749248045324790694792991278402273285722681240217118818035973109317890853918575639851964036931940259177645931277012493270784334749055874100044188983510065787232565682796300896726426014287563282918355685481116472641491192736854182723805574132376637167200185878786126331047945656654387765195512149962370138235052263494016603858861652733559737191489451913693798355416455588861662557602571828558837965136085730944315867351904831918047867204209586136140397767042700048874325443825036258386055400463399067964925513503451416606900436023364177393697648030647894842673316180226069019179060837107296576037755256160082641868392299785712554338501487259969602242645422311291282886663656999977775734376072706165034972502436469608687872226103475804613274334096644304958360562452577588603893962410703445379127929100245011552901740764364877000609548951210356814782297843873925987624790749407769546307342195111249981619754296188138645118206029782290313506317335180149776367120220745652734874646776917013166841214856036976680853522691781620994802134197520564897894948056532233788356766054741359214242942199822421819876696288917333124970714815317504702223810510035997187874102007601537158987466744221880216601381052745829026944897529165917718947543898757906226752858411299927540669592017820382579962532637890582284080513373516550881794496785887068021845307884719261967483670101349497239811548705743817734229525439765099532250097824909211401661452633668933957934081329175998017928855879537955659269580664641413067513413671070303472527723814437181412753056171883326506963750595496558861769619645826976558644191835757701318875557961154586805320203225638781433211306247915498824497006398871471551496807215143995211144740973170656103285216019816746147290614066411932276256312463913369213997214115376138174281407510946532263034072366927962451333302532095199951480652031305264678199313740229751736017237464252581303459526697150028307347691440883896356911284774992956378793246501501047836858136688211116633144257571012532749033862918556437222265710263534151404482031241078696776209159031800510284685323294725040539781185519288058754306743657078962241265237187582913268627299482606304691126488225700949652338234729526355529812459147661371491718276616510852170223205639926554160661157012722693810569558838532880738679151180724740949721709754800909112551736758257868330592322278922854839793242745561621873711168263432242920283767685975720340625772911511806042657232508183469658192125174188133848210133381113766098001733673472479592710790541867793733817855783187152480759967459741843258462660266128974750112283243255458788386764708399217893484191074536196567668132352235642794450599410392006610064845622626362506062813484542887600854954110415503248038109617120543211704740456935517032365174412304946770648734326213884720602380010492929362045348603680836556866920822243398874146061179975747753268708591829840174062128452801979117328509458912790687403593071833045761610262064843492566825187762230843965894487340114989432358639212981806717702874072407267825707193264503906274678150991734502383917848043329402503691678227356735961414580585618298681007803868108773696925274165877360039691255989868796136302163202430322571446888649521754309959028234442595431798253269059700603733418687850397913242561122714181738638013411528546424675010453347600788435949069732174241235461682471804601454547710054594536145409583324674966943539168911210063055459994774402249126088271345904978458161583794877314026794857190124990440526561220319582538058153661464233016244141226821946481947408494332334767846572523099721223872192356057564735703038090339637462354322571685741596528775450121230032954806282303822620881545416541901964335277490876630787108918883275712528487353397281865481378933405795514999138685597213362038678094407406387210522812189176572247181661894221235754744588957038479734768207981058226393534488180547362063961336206561801604742526816239091634806486964031704106380595984542148542763668066894940924089377583247741644176380387077543851113635245504907725934629941862781005584769867033973918282971329126782726213635402971090704454123403470254851011181300832994701536965525059060191232328938612121609328713469772846201058469743139103365099868143060197682625994634883734913546074999907498613224501332264178292467388955246383225966393902358205404940633181482485728920873104273945145563133763942670289935715111528341206340889202488499216246140648869703308778334040302067375098277701145439674347669479874160921871842895227984599307336900787951797772010991119030814545909284830788712048356049292391199383149355502823368136489569000133347911817647495932290144492950635670058900879949265223736822772075011756187258971254901556110272515380465636026516381812317429043935574678462834778789969814500473982719853153634477014758455018093912796462852396202106350251507789762907775163191071215222369189575029950370513355408991082357148741799713402916282117078886697976176686460046309489053496208349725033244448768351271329323555737225762593357986272475002062671702045425559924471557415093624099370599540666511315871893855131372865348044956034721996495153838755876877028413876738372018316639300894099693734641062926631818211045673621636297961946255618826626156717100186482556664157825152045687345861255265614640575675827978462036914782467365092678856223554131830266137699655527568852720218265021252396170497822300844878561043453462786182801493585521747068336591114506114189804641106826158592671638797951516357669508644265902131780811382013020515725154714767188258185634266049098506743488710222075881384311795529977102880621742105721638711544542305121280152140199872663546113489704015405166623953244567044660921306288589420962489989721668445203571366180379243269337433554804397481818261775922074870045865596216178676328217156800905200474496135675554501182843830187339618366871510529430031498779872467757861586788497623568568504216651710560008205595300644879913023426548718451957768225880460350885437736710859517242180825322375820066352215933575854191919444109341106714648739777141214313634929746191854757005412487687344481885449007557313437900037964848062735855463054620701384012494116191128110805743145811612078141982960092574235106281628917007363213314980624667274445401082320323637392283253451759746376045595057067521302983004026797310829977092077027345811746960104226152874398542098222419272011135594205774291311561421927120882517492810322683241155223339179475719740412596589913099096481929233930299020846089205399707051931718339580708293651193637287831011924877727658304388067699397157358591551400478288734690438932972769815667769771674349988933738388010933134650513114346119529222161347447018891819420333334146985118815094301693690187457050530454630665636494777912783157878688144360723107971272108646226993049214237406302362002560798552358305266760402436391216237353627792313672873259886832013015340746603923151399496719466627171179581329135842921072323574489083273478707796125022812772016611589871368845216075075268990853543310295206375902687036883684882044668857207112737691624050846095059310813805396765952344153261840710103409458498218547951303132734505025051301306270093266037189412783723701511208855865908233130368423721655002933849636177651671383693749806582046870180182085106580385806789967006024727986584452618648792043906913686793046519971151533575044793635562925956245991166336916060256853664380185234896551531092744452406229778934911505678202708164451076743669114088143733078729764057421632575935896259431863730132255320985207410374623458002894059625490972926152016907292308283809605930611404574636991793460415820986262228109536975683029331318061996743110553071231111405912811941427312587908540853653802010378091056607692367831366806660945462163812446527205320038667066264863599782492183198695493586275297748381131470028540811823458990868795734032834169429839713249812598956818477371915713034266451003456736537906091587569070573594839956118266813653953052216848475363024681718645127718520823300139954026655457949909389489916079779670445135564892532794206961583682200651332708628444942568101773804137676355133923858808865193283538648868563184685914297182471073121635941691809360006041913596320337616603947623664947233305547206864004214323478880803464023760581519050764067496623554401676754683520344970437765429877729024619237482091896117882793319668466084397965565843666350058315452108989314855702962874220131958249529853028620856065986278168775980694604251978531808038341807195389607677628833073120182065750149306184266082066422115728339955138358317185266518197582078946465023207205921683183774645845129510082953238519744056257847875029396106029749718382542966257172700531411316545406110299525491770780170057838621635002965488338991211203331745996255428785531771021192737094735421220020086876448276085108279164415349549113893985773579739495732510615658961383908529174107917766068703438885128399975175919439154853309033904103084602465669473952109506958515094903498136045730839030637742006668198100115890659553404223122398135508662305702420121911458536759192032085083617950847496278830353615313596761871024091096840373580136177641167474532593998164661491408582723472460413653407627505291108108424211882614407437797481080170385677804645678985571289528377607899290695428147496010053777768908166075697412770038203032294698457906474145787107896119657892897600557763818026297242252401753773405116647664536973544808044571708081174495554995888884561927765819244246354144241862120063544050071769216823110938209183338026868566632916629488125230452339538312594942025663730588473179302620723958410077449467980170648455470614165999616634084008359065415574817529240289566547801952860742688132325025072124661492818511301619399706630397187754893484287278846464939595339123859265173274335354690147279509003879223530628340284239192968631613085510072723859705108875262149138723730396322262956394822279868800046851775168117620458633406970590664019919825740850406401312997769390939133007045648840215799457956790942984062901719719144990306863773259228721017248608350521201224141339462653729208708993032405648079038783262339952708352900639529958099391024631928110372558827037169201519032504345714563516300252340824437595830892088225898160430534755602027279805939187269484982241539135461419544895962330622811916209992655701659656698561443135360292395392095661884826489128246489886366161206595138295479600533217422970610905234668882734966132376578475012427932316303309928917566239525176112471765303270335440980471385794607596780753637351549661942436328166756580549925032706374031481103813363636523682187565338299408319389061090588669782382229246192384587045700401691963599240119104456031442939408021306343521303399659050328685588463513959229698234538052497137908193890095425204761660782619014944473986502042411244914776489837430521130562838585538714583547893841000890094145746211812806244702244097022425599785916042843503882619319307976058006737878656944582877690290894743583964305062597122193967138929038823919632050381722859052653279696482891404011395941754568549427447489563952685603876859445394624094098671582663795523519730730449821974212442179740472815426956732095921717044185561041382100934690398958049361927896502331571507141964571916957865195555938425771822355792350015804628299182162440912986813473555406447132539015255052542067172692225367258687152051815516699693035861362825751460755879109850899197349505675387811107698117487138038048030796437870895890866363430179027271872253870594155131468933230500717534245871843026384391499472429547664933866071987493108678237535595263826308423766267096772900194414159986130879797656158151834416370889463166280108349042313260543418483363359969977983070009135216552240140854180787854799170535364089407584106067451621125234853880770152608313793923756588360598987347552670839925675823100908339926212349505040133822715749499832993365123061632552159284455753890102530937347786667156946430285382621504827187413819155374570785493191468365365660127001137528406488113994875651330753242835629598590972857301996847617613393474861133302725651580907638543906283632946241108918333978540224926159519135258501703729134527470429569777809385757365670606848101017209648569880933230849049781830675959851992284994043591416286901777647540106086361082725234514590224439134562627801256585371713958191993016462557709623822868767810952308899282426625795370552128106057840104329103377652450029430211259580916832269143555632738356416268454542355039739015070703132379991320159614985904357816089093895514303322037730677594651019984394698135563662753233255487089352917718709011073460328445216258260021864315860137452651654634733155205006990941706995513825613804918316853110242070159522803762869714067495574326232203047866328541048165991267962727689567740420420046546093736362924633959711293463934035631534286259574089661904974499754961013771309568859026876963945125611111226161154336933468271181458888543789435679504011808123270275550903564593268338091469513209358286735415287994070647415333626339873009059075727154912148997169033053520413627168229029172185036033938363469929563194571999146438201922664826113342914621708417705215090853467385984024445013835068215854219907056836714800080823496224696280902802569932350359918744765555079434064373484626754324385766744158829690761127586585594414298448339274104501666493562693714691698449662977891113509574929343725178875119118062068583164252883089166593617284943587255172547893189638309691021671144449158985532071725167193691298919430840142748175553009968118279436476117702969297396858738426688194576400902218105154544076034367819207439836072623098797328979619687882678909908777358165044271179590162226269773619785144107721400406965962971126552602958150272883332425298196867776832511606043416765324040883681913569607527188806099531951342551153150144722340258063681094402065132669307180888669570975285208549411675372978029193315585695431466455381960538137538011914708090412976280524276691777229750665797679253423262622740930542365996382576962085138867260353862523165237878109632473692981206072162269193544784832449328017046799575399912875644133171580262043634073067406509647106246258225800071353827911326960083964359025095089333720912287152011698119484795226689896454643910712966525474521927132050426967758833698282432817691478378246552442191428273205295054181100915799474025502189779636102733691795609445050006679528466431160460298078756195015680217893062329105247450361157156021777122513396671913624767143542100327983780771995790818851530965127507089455674295706157952214724966720072046708218605837283355615031210357810274503577949232628730819626872400295668285501414032844555597403161823085290667469581901322577661105658085934736947221279141777131076622976494638512771699744436400383737398076594755245386713296073311245441663710301490550058654728648129580990681874263488374719014043198101288190176234138344985541897364361140206286084100447577634092082350047056444011968850887483167503391794768179901181183939428493730931910006323801416550789917595066096954043267230153403627987503935838821523017329878117964210181336971330698423992514852893728934029848538818813173286594371604410593514919098973370553964105117966739738426482680566767186172889822781004517051826705627685983007807297494484132684906565051181097551417396622668718774807261991687410305026089799396889016786407202653515836203388582722261191462890872281561395369770497628167763459447332472848330283371416989919653819525913526413436492116089752697189025537412469884854728320497271105509297118464614143684784692058755026236722331404751995732775115325892709482184658959242148853999206328007328899723317045189197660410924905113322482185268352750111541814146684210390973306453619967193832339227408084521130134500546796076064891891068236708629824604522903314420844517808100833866814301862737578478451818107481780752301179735392882074977196901266049950477368573654008642555251979238311964376642538522825250996702116615164373445868428732440856991668984530386101910917678315982192132380136995466705980862487651479807095868086462095178916948941639990480904551134574459897253388548947100934735017023686755895355174755020541434599271973015946275696951403543511551163216634167015873316709836378722762751331596058386238372866459087515473453325566611358186225280091067130731232477969801658057283180436070920465014522382129182238215330432885810346404552298239262410289294867090669802318821108102309526213992967580999573508314407941839025922748888085116556783993432374938922202728974028201612279057457709133481962921781548783407019101365063086544448137005659431510464157970489604683285759321878127562041648062074469370291595028380121818842576409153286772929123796549043724172473741289410599632904750400139467498486210777415501216097796007267642779432083474400077562012698357043869993392391511798705232646268969812449505964582423667359281497804286546872469114061276041476499613390045808584480174480285321230016017533455002757319983591054970999619261873672766710179322750049207936325275055155468500724510793492116828848530377845080053036163059517418570197272596024585721983635681743035049785126696273680777530647063921225158031706449044492389531851666248476067637173840966394916360635293252935081255979773948543042544673935673969228700342154900868773182040864598157175061879006751986987013128254115925358409513723916410407128574606657839023755080505103994457539950061010356319124785935931366742243322820333592003347552761972132953278272191502419920383766907504118874381744721484992003220977809490516907631705702602510443941813604972345395883020255590677518301134308958251072277207582829823257929267860031713928840395176924030315394974975052584952141441797919617556664360412993581315574608793938729662941017354817026137598173860361365531368807392686396042296576398681734325085627476678774493957027650027374150410534430608967598771998156606097538109931795203472933737783231191523048180914286655046262710056156695441690250142471864190662222395772059285450402634352904280154150694227411868570243439635869919381837495386026034764713234835587524517408335912421849739405834572217021899769739329176848323619484566775152863319378340538112534778585584116692326951973908599236700141919514187199346253211811894892215402618772937391568184239243078838798568820530661065771341283711396826130336376052458607502963633528774086403980060860083951942927742117769308741737609143698219897954751895964973465036004709913819579597904991300349626109519985913203140474019085968702572949727306331591587849335135797521041200285665374610528849713404940466014891879423921216974884406209567965982862871883460622368520609205639562676482325967952322458099705891800733761823449921659653479220900659605557121403065751313983281258582753170332043164667526403948401598183533877432852118995131024660057932022263167132847978327657559037913022802195513370325376626242210138375670717909320030340403476648306066924449288377647497352789827379096260217759652194765544659684145138616752079747210834051704108663584810753164538482375371430754063756473923628167985897902612300998334514485606580911045942902451716897441090736437219731963615979347634293937239754619946578100570248351020804069059968548957429354795062832237850839960204361830292585990078026939734592354398025653300070674955372774291610410838309517165673596016563765551704647089083623809445185998771771467559224506043914883551986489453672310828542339022922201773630437235987461664779209107396647654037698701998986191004599654460020862126489461299758800144119137808127020641490682878887751973653522640172651700975277448054564450278450510065753643379579297767867096717745324355508392183702568840999832382115282211880854096011772847630108134121650931064217718303345184131242999528008450196519054802235173543312159531861728338280698297501621543628125129340239001607634043518632552705889683648784728823405265454215719255411317642237949745934036116728000395505153191693341815973744749204269775825955489905547676456143876926022711489329094421335323586334039781549217835562230699660930160296549598535787664827302145813783957120423208749834105397363736160255758206605235358818031846335413676893042048562020020324601293016940843305365394942593213030581111886811657515732109087193984186793830304497328232829851928115276075554358232837734934647865185040476204352744401536971355139437337891899826290894057472894353815928067494281736342726007571520827818299053915659103111678221813551085595731938077322620818897378996594714020517437034209491358901197253623317807367867411916857555607129153076391565504356369267916978492789594845836946639194131738838274206074016364211606236784025865178491764647271480581956695655319594408411906508425397504515894088880221198669605119103218967856536688992742948162290026976714275006733279475461244467493451186929355279984757023971886264215455563844572591700811254736714706291700580663996714400193447056011011235906438400065541611157798523206064077881498315006207225488006452714422845025746813547846584847618327631695182038503242773585972530538584667923380959221260780290871358419453849703205006436729301063461255125794407218435020453016438268454815640800706016733835764445570475115355576487252433423969561237931338767215635725515956774402825032563820120134467305158289740971428208771989898578336280706526462255106791976288122625014535788386197215726676492315789849445752843894289748672239059684326052159726707411088087503347122740717897869522035209905257706061105092552811852566861153596685511964606190609579886826943099471135693791507095874027987139611184856535763322889594149979656859758888250213361860592462381284692908840283946240542556503902069740612681964206102287280538521597191750377836091192542509285361147058244564993813136753810007383024641720339854133548819900474439905454917165699395876642064290391163134082392047434171555848409964407806810175359365616485457788699492008823942991623437438307609310764313749489603237908721081755294913306722312311490101096608415564673872005307636294166354697303582180107834987970006583573878230104095480353141753296893450501173367485216795702681229939220142011723376873194966700283438927552671913986764051845950816591201235844109533192820413560150184959218909679492364812537929643563004872089878224992303909331081113056439096458675354601913028718972536265462201655624065652594285606357463148909561364484706514849711128548933450362501549128815065759823366846707077028918779963581375384539875221750134167623688794431426350775870496370044847279888201241996590056919298280735717774717677907089695353601132037555591081216149622526477692334932274421834242752157142158421141613369481284270602275053002417333012921479756571750416116594354259427130747443375566322555716373067456031275534012626093111068614498705483032561276799408313489765556599702286397090516234039065650502637289226762575879376689589745681911240332600369700842898847958296220468777857369378378727016763048802797784312312589407615147802333745998461540782477351001044714360395073108337954155942912154580834630431243787722678562192518105820590473404052916521680343776447508613423991015522574705392117296479776657829895805837249204997190998208982353137741655976856395500714940323573926773013829814843433166536193108927435071461918405107281087447243773815192340016646690235533388872730832259862705841189281223967178476594501467824169711249776367570569118740207791816910236582691849366591368278022330843795465562145121160749236178174431574519222424163925033961961423404820608027162713537808079640759336669911709118137031622339255537292430657772549483193438110902680090968578010315506604492327241165618105684137718617292355034088755381216035807214828678812196248871567187795016697698162279399925468096913527420937323303050112324297888386745061624727446005574116683201490005267148494099051134600345352200491382360365246094779097758563666337327100602970409500399971174917664172670709400417139830523554189931112142932948635182641299251625597993908490093558876587522046817136351969605542203035902755906379503274803164758827960491374500687238218036003850967028926656986129816880376917229046241670051783237831800739026743963647209592040494035126105119735087948396241452301203234588110572019557990925461748985682034007376612287461531208944220543878838803775463399792022182636540389490091383431199444038830144307660331589800349142846129814864692735004074500180107820410644886287461278261652833548713116891953856877740344027397906708150631635478888883518344438648564729463956702604216454322313415084427648519611781906357146787545728287866735466926598711258566683795652279908825167025823743205338604757325802654199321145809991936456636479229919245165530517940741268139388972712184682025145430502961621162678823618811369027289858824979373892659340400618660485697212305723788818784267609769476244645967647187919603819297501473109427024318453619495211885317087842530197449280739896887789566525263971278603245859588019553938634523950074465824098513975044357843853180141383390804694997516322436936731353550816514719674329176179697148314918778012847813227171334785566108369785872869729173012247695067033702040557555322792547500055577605548447567624746399858080263411042255163053337362085911392478872856162243789545350143964467115163001006192338978316582808936453193845626620845484894016474138008708073723417186396514600580026491987652640530387845511938341762277945655179486346977410430047075592424313561552671910530167483184452594256088322789063633191302598433301620798177368072757350722552021514715865882740183850800948434457554872981508447690456982742318500075001983656742343107054676400917894306342951145694509139062036102106738501362529290899838612903198641524445548847466956618175854686870508416710728773175138947094506782840864981104068086534261232956685344506929268363943264773281427451569422667007647114419996061988752079178925428896757051479955605586503025056827817323097789941291202059327794001843703148490600116557222199796688937942257132284313627685485306644029739106247133516692309858010548862600406885742569262716164722426473518051024964649914326985904933076806329855886744760129831734904482438911805037129988154848931798715274585964945573517216295120084855897221367502853929570495647678951699885583717272201489583106465538524547863977981586967582379674440253857638655635134466650465802887142642337884483287405935407581642582477509571947566859325463808198725156913914137603843405594863808623045534915942233746162783176532241267785649025830917149144595921912086498874938392772405761051004210696479781664312585078146068698423838470333558297876716779860137050603168058717254172322330090575203484355650393415217219821700575964092809743692724169516946846395128559057612895104525621918516575134251991301745840034326250136947572679479280433205895091006084697104201556196774517730144418381927075232296173578649016388139173822198656585914697277416584548982841666829052310724086610167655515860193099224950521968711289907152717411649333133835969352732251493244272447093397911752659006831295535879750749289184579814677393119678755203127728159751252989412915997763934293149044000670102857986153312298509445276797351711119330910205716983404702485983205709522484954574872133898688313914719748922975081736021059976313665144885987083999657360565660072955418633630466070504460188604859175425621456865427806334509145285821982525156377747200609931058070819262951444535400599682919982955465824775186238740198862392903767415844410816970596181849912517166484983444560004628592003983507351778938205616734748515983775352184579479963381383156386738653790735664927101195622401185785279359725071780595995733976028832226246258960977535839405038330166385916886564774342024611214957988111512812929204019140021895758725429915621931801725321696162908785775106295986885535022680317752533629941302631398444913858626475962854727137314643781332409635220066272652294770719791588267959696015651357183169805114196343807259350731966868540114385089551529992391991578497891836057250403754929501161254814653301152356355663265272688315219519643396447683910851552536591078350002908706616490822445864039502386564522327456805387687111319530432815594910299726165517505011137677361970117157399597599317009852646428959421875573163094950796441858510160957601187269585312250796291595691882166810567764242061795025069556048049396027181976322239096952335544514140352071525102713854844413315681395706276283914058914023550965238812432896204774130862369166698553274568794050323854508933641404692677551124730614370951119519105452664538287840331680539069600283372686991570795597895865672318041159174895982469744695807528475605774215210065687890349889371656526062557553640659638817676619534159230269944126343195993559183980379793572551794654009434690307266087692063720376266008312345924172619837048006741350621751011966545380151768946512814268835984139086258082133633686674289913300724983427067392613302830624875127649801134615946076973372010448474532747491798309860481066009980805569661205172576058019506776508383198115024452759377203443618415684558641706064885807433222230343677440954870570858708571385571842303617700044650515170610144017669992334504673897892923010441844601107874863091116676928218095052655944003296885404758247106879395934267395198304499798712124985593029257011739140949894508419138024660905781531629803002408361625415900706858757596495784439052494769850026377677050693661452525378963222618509997654891567817507259097692398827524665910711313532273493253671069495926282603141580451414523733485277872834146953610617250900064598770101063004639374544856058732475871107747392451168729405845007153588259003189222000664913201135025682943410414279155709730287106081697906267245341930093689505014027538005140786490519961806406549111461143054191782791735928797185590285978153296404499582419659228186836388657736983795458106515900508225797071019298216270171204392423077946064118284775490799419912025444637794570544942073129265524361259136084523974706482926530702439046365878535975917589757036193796384703655354757487857049164738514023658073748477040835078055602935459966680662906672804523510795471078391795087681680072424792056453906701183283760980847333371081919283253777897820164358528176491367645136525924682581751514109116002743431870096035295070307203876483679542280697746771091645042211202535782204873268155750319975998780979146078011631544498442619714184210466889656716528354262537417639104783703321297157857119994939524460668750562760350787303036391224150256260996140505822535628876255536541656777307584598796358169807810515735961913426889279270592492512805829399396361001042829385852224532126218915708786193759212616463446948898082449940524302081480455363901408711838421228403733531973854612873605282656414307857808652344849712859888943524886558299016866168396082585815085507760037639696245982321700951751372552941788953349610512223658524366771919698861418207553660828712607820107970696990478272034766781515627101294300301933648152868751366627198484324544016886211919565495162468305550043939777999309920110631094184402641249774764815730412201481698703426367640509918367540757885809435073100909480655115463595339980598985716907015375877151384595771377746234973235512723069634790166854229583935233319328099631457292328451545314855490410976018079971740278547620194326961402350157259236695934344039701703310590881627906448581071276202708783332573595662502311298190415915391526057697119741318802187316208434830566398855505904574996562311109734083254731030737061281535753152541701843455423273845754814474796210720839729694781249013810195871943002221705173668755424293169583042930522010547526370901043796328012787760949907440481814195611582113862970863263235095699418814504517644561968300302155834390992371930542316461273894804319340291572614406649713026770409506531850649406525377267608075349027884461187548394465782075986075780921393483253235380825232193946179205415245857743924311607860046858023999319910252821760240382487764230703592425312996534039120807128753554221585945835955629714109396478651499032518831023091829651336484328997561876157755187873608215482212882195146939855824031632877012705477666472304842737440723768659832223035746240879857041522141992260475345079417462595367179674075964378427409497968760904574001830554735143354566669888286511542319900051233171735693078643576980584994019768656642086383366904061825014475429153740643479199512716086993079389003462408710889774479792977907217273827709918360587555241498581048804747530178856143893030023380030363153002538096355132227372899294925789038509416765913959857798908699393477382914975777661844036389420870701710984813721387347673490563045367316676064395581480885021577052434092591493548922638616357929841694052778259086974770246670658372804888689215620691928487009037559881220213189857415195025829301015825978493355492702846069806213211253961288550259029831059289398182644219018565637233017117513686927502027056861739478917826216947301663405090290992732531532435715959029899259379394155144984112276082989402421613564410638863909423546452756741081956113762801110812655472624245733486975111106919989011778361663385494859252060986075823556554897852178753403842703594007409473592975916918900148723163828910571142675741249255552579370819758912517935897173043867337864939714035850582140885823488597274235485987479869632018309856032373518462222880152071805850899858184059662791974541492402586713923451502082889421218574014553587374676805756033785847327583208782185748231209349087950652967719459638069565636004576727863561130667268289230492208496996656986874333790271625372605088462888249400386738674741716764740350414907191199309156949506536311546992252864528023417956124500289437502599680966771484332370772166835832410312654002038386096746305188749647597273803428307870178936753758615324347252013055443427975705483708783961746603297676536124910224288748792012493660924705682254925431427693805913082731550917810204962647815802762637654811909308767322910620226676334057803634294247256270530624581366739486566902396091734818091706438621534601989415601363860226138828791389432548282237392023019824520924190730738838568605135881897720812221249102364182918532295665154380911316179496234783786076971078076251153298099793477632440954870859237130810243293504356728367757128318780521158539588133019981619687851664627480436979179189979267778388492817939559617898092190830743060211041906311419613479423419118237062386043947125943055219134004909767633757053242596369842653029252230233693830119501496095509462813947127445366082846817981147334654287163609234106948065220188710581869997966581036420584031004696504970378151495338212676883192869267176017872405664877899346238362539943967245226061607558544207268636556440852169197155755581631614217711682562488382960005286636719478524143334625343419375381951161183286280352088077880986000028890448061606107176400151484269102060737486924917082689769813565423701916862677193372975876915320089118814919507601114199823223386961130678032724321012332775962806352544087742389265519907447620143006383053432583646600021913280003507279696095044840605762920350897901001626290662850908247534974993429053971826091977903058068810025380078470068073268013490514236956460657671760765104227970008331368464273789287637195248614827904916929190935579314788802680546614931549594971319067296032888517495197199488215291483049559942620414683325218770382469853088303977130536554637775735271069155712394915241613241533173430505644471815459127912053629509157512237738505333955263846306492445535569339294525660821965015141960372343941079847911860758437142642805959169218016686000853759675062847975089850785506357756764468818800715692731547128134903167390538905681341177232726018688375683230635794447426938968123474585691095919706293830790681674992896514621472675311331886412482674058073250291064215420432777199946091410320357228768598386269350680117173639141492001633916241211256077688515785377212233731947969773387262421039772098306270264123305063956547553448679796020484365216376372451048924457610669121894887441208353792694343626947864562723004179108158605858488908685540835521083495102445267382924447434752296142213779854835173384916904735590578910512472146197897665231976937003908904810936445813301707542766348997413142503028499860596145686950659136830271171854490677107697475966117897588841098640621984315722061741299866523852790794850174115781417749786134459045272559464101503697929735320985223323119511092667758295340276531213728318425499691778974272677444837618737440022479005486506932135505249205448139556116668725129821350116222748624044028018043125172682221509903451324188776967431252407575639112476271087732496871320387503916028056620000143123677894782009565930185271850601144592871847022434119199996517201547991143415067260370961941483025816332154214406847460041827055459573328261107543064616030900292858821208811840836758073120842040851800955696718874121145022960940594172003463165769973953557246125257359127979275594601658117223933875168949583791432296480240686141540759072599127339175439449208212486421405718619592770254993015965800176750340268546805505390980536870314798334224253189817430966361205526617561262903865605967076270212414358981180629924257628930085744444821814749480433335477597685233716882257708795345148085666639407159945216816439981992456076837391965728121734342604917985546404037337013726198203214031610188823941459345876198340415472073955493853108587143055243214705467243038986310861013414782181121187813201020812391033605862559938791771300474639995376477244562423619138016313896971047931653208896067154023315709329457393276653028362750867348264133750202524938363377509222216627911951796115646376696550969157312184122082607996828577423719062120575271948358814135109999890773308461526169818875239865449165666795945374634255842777450245221683063277588457917355066961752527855663837725173360289336365240342847674915722315711896428690012794539860790594630278088184199183730809304387804109580251298668380195014341604079510402722183073486892444350022207326920358791836251744919392737372252238522546927818077519350789068093397628516704567021740173665200220825506745385197003088452389510749900416871005755092230980724997840785735880216761598147689805637080698788566764677093331115111835315615678524657503204141918290826247772632742484571146490807952195078331935048347150932707815445820816301156787352680474720271834071115490557203115422934945568085789505631099541350339602274046244416965767298944304367772902711872945244018449475359503758134686626800433215632774233586490254443196900101172430360349461710132262470386077883948457932145422929491629942813657572521405877914440579760119157899469161343283213386435913052581060350202709909560628215975748859983756480054016814678339772288265755846362537246397526170734905912725203043219073541340779547993582533053625999282600592697380461096412333178299392275915058755150719140632471255066370800981260889946621768842497192228815374880310642456852312866611452819492434000147685718685426493733101268332999888121589457587159785115161820043215714097261448994334922688070658672953023836565045393597426952184500875907654719051372587594007065267379035177882509114121385879250374307297004086779832117634474597827284418984671899177033695104990719849561749096125012486537007662121860824026236562310164157457141381537333380433433674186500897315813462836805557168845627177742736467389986765030633862543857488391202030003224344033600608914610047598155517299162021259616716328881817523004582390413844781561435621171137647448724437591027196932222170345019934672043994914108991936426637145966028065068437060665690693986007014686051501032611567185545481880946222882603622360424563286644153107916466381592122554736651834717292767947601980742245564278491471701019719776330330435590299461940227597533728517306939767473191107633609938374006428290226211670005720332008186082819555488211822294678804840646882469364101032706427879473572173764161083506211347257086915429388205999128834244305918112969708060911481081402472813192086305888241381242639285835589855252834955243769040114467815766319982659977845225875270035517717541475364751152591975870883689917292856980011703145379530756668332180307021863119771943481057513458808083603779240675550788579888806847935937275259719280413650288990083493683664033092460947131754676684087680888922604144507075953971918852154507733356064107202773887222313293933943469311749737728370994442163785749295494738307867328914845224571466973166577903170784799371263753697311638794258145724319580707499225507227700264251087267861698561182291474044730078275353698484662212121609781439117459939763050964670552382799251312391023825456013391163115142654029678821094900605238857464705243429230036414926016936339658060365062721837312978374588557505716972999272813940474918366065780130633733498540226151058733483656724607373572937737179987455477082411925178992993183830576239157646031973672813796323273237218406910447708960900077658055229722722581922629417795896182808356379796239154048940920627970232734141851192433273949831127938593611146903241853731678082362738393689442641883089982103711761732302212578306083083392524001569812720599847415441348626021937487606625780668986469459661334233866561357600661730813853615077266253793127679539601036271606003446445538254455107412024267948817754671853577626639193841054613489145665199173708523536539969187570337870220523349876343197945841306483186417680596325643484891119124830099939317751671617960673271595178097332156919620949260811927119517498785411517959284094816307303444923296678021645845134604203914249689249340305427149446404221071713544188301281299588206510860002329759481102187892716131498096364551033979743046059306920606065337880850484380629754713550032627702760859649959151701088057431234141617693629099619151209770174854854705412870248494697971006214464471326699672551671031279247812899432699597637960830453000789910886491954172171604971350094936491545510363281239096837809577209775088894948978242547046985322873288273915544223133618504123169570384266054275071250070330754922429238674618439328682480484529445666057283705704488199287444533513424967999981185726808995476489448769193442679491478056648551048333844486163782170722596389488495980033254203286052712137700900869859943963315680806025735081378644244603897853243861572001140679637385830040208016881479429239671551897561031118839505850845454069183571219206390604518127722756683432879719071257205231108403532249431527081830370481363677825080443840292562603579528748188262010847195655576850044545739469158901381592313488059908687290449711534017563324517693469815352794220978760313295640930756756564648053465121295026901027878807956357998478446897462971838957398290629650696824906781119363723037868750395165163551416837539564180458142594962538858702095507750119062090548486220473480119175802218976892181358421341327150282654371221165319226172677065784257258028588541745029595484030400893487707299296776778015573240967575433804102131082171324300856963858923691685294658843754390941014596542089348703363684826569525217091585751653772844160689259636056142870000943783561132990714421573356693966145981637795819228522658277858755862426033774178274718950762209857447948994638784089271496769108955449271940249536619324636221589187263871879326010712391541192320080166255302616742785456738165721151833045246740293487938030409129674827820934242712629901421059413845647304124098212376925191269525254307920057665874919456445562529343782704158240464764204368972289247087732364117588141896039919151645041503859917622690211187216157601080773438021338944470427022060112419191146420799625626633018640840083922244332426764857892451536333493725826929399478137044359810165491238374867447861541027223054994628913202361438516692556192126273685274626320020383376350796993293922147306339629026808158937432623152448081599254915617091985255265535720768981642657293917689953157953108060695007578101897733430272242014056615546695479581783858164886896314894015944575179502603473597961946623244866347643151606992988712281994939130732593038816376288129654550594301426961000974226034385101462651203175104134749773168492281401212575015019680887413109260958743936654001765536347060842107605173092091887739128734353429595555519737687847058800413214782424965668322656244399723771661804911404736016396287664184379583312188073215669064907232685574054988785663475127324582096598592848594134679068261286361664793171663062731928426767473512217480219441755163023264517375830050024881428656633698977112579524716805087622839910183400258520228831230513624540526920664656268423118136159280276120973712436752775026115111872012652993489467464210679715254393690278854139510013739541260775204152603577530516030260820220374948283983861293503443939993035788133919203568549447877834901962151609974711775349355022957107913341756984755308734951499544553409481418080599015929771262783917282194521376500070921589059926452058963155297782886240403158315957162187190934640362770393012758112569194305893147378986938582541428173651510057878757903391117686967712694691549651959960914632978298453318899200617134353938989231111067142906105250532714261560170727445904337311418174473503224644693629458382506916047328208424300096383499424113562455400450860994715595226701728248826469599776096111959233726840237324951382589268139662973244786366999067506787518489697430002383793279052895584953249575217619730252784660705186985852236007556648784641185460671301621908973531902280892231068057517084137275450405059109123145011328529924903089091310715754018034090900283937210746936143449827915660646459327542848209008447010717248259482148498789620414839037216251180725017927208857103240046466753282833295781254928274605995915338304927126070076001244634129506759993656068675235591796073649212509269855926942952063040116858787473212471940431675346208576137211660596216088571465469969147320006838791322225626340479287543416432809165492325581455332006319562117974953613291255371904880140903551979916755210567570735488567919267674120793930419190930194307984075570119487912324643248967331389822381992093515016269534917014497073789939209683915198257835263917905605050985216499850269132127246329655505814805474427632226926322212342014079077429064758181496173167491041282122587192518666839919031849702513070249254959605898493774672821282601778073575028367064557977786641452565446172276807314183599725040104548233264058281178368426292831522602892936718984442847609064334952365391788594410818693388617306297548441779477093600479274071296210228572250735808644498174460934848516910313340388058282087843538955620474087733313017504634229276237926193679793932706416453382840370518950084977989583837793027562261610974066120143868221291617566609558804555366598020964618278890022205234095749574667278152688619414454826812119229333352265441819717303658620583277946031164714543155120952871265071578513496844866664228141108374573496035055140377585181999250623898767759343967691540455851166670251099142862994015362843663829907743114044558252405279835276732242018118002096728048736692613968700406924491865300483630224087453041174488331101037002843701120620181571812842500415926558247175543538708952832149707546195426224007710156639964344280983176598175172885540996327943810122781503054836142752543484833070590270952352002904345245786332095910725837046697077553571245057886529249322616317364847807115828185475316891076519952607153816186718214692203814593387580272782835519491233864558462014363391822637021728920564280768386972549852994159979078690686387433850402675250059193538373544056703660812882530177453981497724180345453666419324532861906334286390979513171617429013945396934664963945459192673998551223750629116019225656513411007641529452657356400320549783532584185268405246184055747632888338143881463419192657174789062002356202723362003820263711928293544468893050797557421980108918794868780251184149086370142426058506787561067236472833589936602524992209407673034273786913606966992778479026771050577349458860176738621573866383636040408182350002754616627352868774765525585190151079137055758389177451478012089614570408366176217116450806299474568601365830890418073393290511124933379154336940534679000707231753094309767167236337772092296334609811231497863057085976415777043630611577001806672059613683596317486951623234321848353224852918161311934609740617410888062562268152889317611781443912473295145576223490341993632329973092714073480883770948340617569775053063898197064233762084598615289916679846207773587996680134210374087759340064654606561922020249014238911236756205807128944314314646335091291807625241665153559216821800343999458218043646447145166846216483506516666667859380508327312830820193761832057653943550918867234670603872023054096018466181435406821400226764001816604304256127025284511810870242531976028234134575381079180281183026122175047854969305447780648491772076235692823015371174151914107090094861985081244761513368509864866838635371954841752182896543086325732086990502096404876367400905606883869184386962281596316321260984040047360565311296566637989559297133819920564170406507179968120187727828033559365199182911026512037125027769689669535823310075020091615514794353398685701954511145062163905177047300609097112139520630125586506424297885395689082078640429832336289292287235467320772007670484695270371128279671359183027280035111447180622077157017994116685878527431403618488198423406827972401414917386361244733253753220559720334903048089828876440910750251006632276437862438694671180168552548361513950808558460819066853761911578145750261275725651019759462314858039961206805449788273929943929939131760869300920762362046097397341109385237460994579546299453415138557493807997922882653072876611146804890710925911370543747421780672199476008028895933292767978339169035315493309557254819989300516556113197765451833105609058697786597791641177723864399328602317850347211136399747704191649853779037648955080090762681576013293027635432719023105804275118451958576041116731443584723168731952800921938422930739510907707184966117928190855886884288216645198069655469138730039172768775155555937654663927540669154969829069240929453116124552681145215365947329801397791931647951076427336243463457358860428526416387987048962052562115559335911957006355572541343726618702221846004948403831206401365959072132756709345756623314346813670966395570300418199443513961556010827223869929680246292375241593413766131165541702840172843663278482954760099564505596738866423008883756615194838416003590815346396743933882177699397037546332502617815103558066962674116583057862293627218028641224833552467445549010337168684377247678683548149098349554358254727714942229549135797112591304745343872003262199813062126786222087590543276216954929773623218955781548347244037781990949532605211306897181621636853454373625335585116689660199848924427131031511665197505320403143048983512009630500877145311787730404250045815813706162590215268737183083015999315496145053225988283148097224118608498778860723248707803429243768090704539425238884322189388397494528542332916400595705798273686491047817029018311580542426273445012237784457873393338369208782581677494462389848647486168516684753230532685354125863802066773090286279344382036972212285696072377023102418751858483288182646902092866702411379892193053146151871037738625242232318887415530591913751098022481066628050265162327135202456948629891889189755900805591651473524461321735818233995206533416347588633030465576220231167072984908465769419411824188564444431753553805952056811112343967988860809554497559231976036533583837750796764073254017159930315683386166828679639523717520514099370918418292959436388934230264186733157717280307640158253610542282379002054766350755894964401991972198314081836244764521024715802790534887284266803032428396702801997064323851940293485138752423844240696758392256018826192606337653170964989750481664310633729628352399848478969427814169779095377036869305717633281283263476592252410663333416676633042574666524959521474658386320946101124535529651258949356080228762873300302926054457179656088500996510468175460211326508696071054523452988297431043015206304146348764551809290019980964241588858524663160696613731643797695430507846906478502671796128800215848937211376426455971517621787898344970725099442715260395941678668882710991298346460183931603755355543630400169740418791473510058195692110041282205326515938514550539630642734300306467464028039401250240183471896777366529840466695853763560695648835660405446607645041761643658626882411538761354951672743526945972174208913158225913038738675266999774060420486876153210040794341455728098356916087135812552266160611751832109729303911320543431987222094598082659122557929496584736795024825541454152544304228182451048919013753679659167751710160385872286034069814125298638474339567137727154464131790250231570672850595924602669753716545336696143516653359437582811504072220253186441512210087813589479245616993669291980934508378451532909943752890277248217493392442141636188414021277425416055795706603696137610346827442178246975611605038216770606997306219445991798815856860077280511738179904577415600755059146754749906144059528736643949815622338236639995428512653549452559076440335053065113173161561038747749655018577066125649815758465347169774083861930978456616313507960175684914207194081741646600438745569801380795535330168755464123360536323134305698450242939059488573157626876290200128638259417895621531278877835084038359713675763329582478731290703119602811850452878691453295927875429321848119408348990099816676581898121750388941974078321991756002692366566362316115704452826270102145548433227693710927376646001192485838509731533899402809706589147411707804960462597340368766791908124861690367984995353238038752405102413878601817816285664458370883089800215428762402268112121901661778177057021968011197408055705154775341015856175501965685099651395490311850566731433612488219498916544864561988526816304311833595846994303947747143780445775994187209489733841480141108064929670561681708199404877957673714931870727324290275902316664598009139753714139832312644309166534451565740180376221229266115215839894679200013958257284030833118355087409742528866829528869835402628504525095091417767387138572670538686370589207944770813251083227314703609853063149802995155955701342384226281062952241426189097318267994439378892620861652442592090041308887845114323643830484200029898060699029261869437376869609396132556772123459943464499101200801167440718912813383592874116558419668579071204156117581731397873617583166769685947853424992223132442077369229511063159744272242478012050001532008565217347146452286629303222496171647140733439916694836657470060212995293944850939031986653999589067813967928642477050120792126139967968833896507592550538192753915073628716489856389905795410278026923498100814338536074354628611787265969362731332242954035544773175454349229424086630921595198326152805127205498414227673293708954237292409288827285700838118810146144257224616247852980175545579291012297549126854403282995541593598385107649799711988004970910411653718640907136992241921883598332047146488645772444737971394838461434644484537738951203668205484000338879789609219701197293900352787236043611241119709009364501430105323292643805253692077296082535625232637407925099567893279440317158977742977112235290336696975184956455081806611139638497059920750580683384947306981491167152907644338285648013170756067691685143365295660434287929214026696179126105117460885649676282933450197694791978316372292544190956955276998203266557557262501947062730499094876339481905820350332453841877815623779475978097454155531231261537786707242988186693251420841392814334711963671468430201141907588358014052406010269381702337877640275274081061907603836858506861570239664348602241117649016794927845330979435623095739102630912327953394442024987877653792433775445341747630671189487032621088785424306316114107571052761022882864408508375681598377730397536147277535805554107686581038215983596025669278584568112141119473737018124812454438056674525545306428625344192650463126724391919245795929217742310329254715434211118169142399386348764186561946935981867186243221425489576388194775049820170382945730859464956692079151609993068575825358268115447244816176930053833270938158265498127444813825187647226990142649933390461883750733204815493770060874773394664746770842727856663789108672097455101620311943309276861670355718348889451903834415241986011543245202381525661693528618179935251951590088140403162644610077031293860012946320188728335777336769144685214793198341578544572661282107067380852150487484995315448382894964599934340981187856495646791468402951966253082632401621893667748665883623061423526325503649909443078652654297378646855452763005237775989699133315634819169664365024016655973462886414176234962478526567865201884091715930353471644242287039723459161520733899903389929868367744974765592393784431576166305667423935538465261372808460691060426943242723300282632200265679984042573640966436243954450144985109100677012513901212425463586501482459904515047994149225908386625552792291799231369935213510807200317380247042056642780061010627836203297441567732035457551783072915312739694772330750279135880599875247590974933584398334489345769938675775278914406838187093801107807807451171288427064742369335247354539831286661808794138325653554138335169594864813924289636819620658356013814123286781402604819190113202531485652161768414192238387496540472257171535113399310407120764896032214953697586317396362335007524255328182734088259840570519578472591859573985890705896998100169683055079924312438492321650758643020703947746348711811575051392600514769340197780942861186149419925032070242227182621348338647813497638289540241054768080050624288915511760020501349002543551814133459215470539900880069910511890013500356995099487933243810511146017646777210890936373967460708055115065510896332281884443660089377534131961315620132814648342426098245918228371130956484948164499512517236712889445371830139353330767459210283180701443804972438476682188823735822105682870143407039252797358516282417794730451766336296813060772322961470581638202788929734496434346861778206104803481606919067889134980654153338366488917413027678966543409549703749056510792327556216070977747105962748274218005406817469397199042723433217617019818475335444593419897830805565730592202256921321466539451792819316001036022949346448670808004226667631869414121598940134962671657573068546821732601705948554229257220656954594636278844685978239506186750063347170621865937498219619393708868957558122084267691888837809044936259789249068062010709996358857814523511830912764563959213886778603281313578351259978046108467996240717251895338845211256158992724678653591283107247727222241218738558201819670219028286376598497205672601578612845320225799315075187226104729744468233195127634324227188057735672955437561708322046684265889248886629048006999442166448287514604825632662275821850832762964004975554653444223283043652879883554208147663631037110411708713981325352098899617864702383180879565029915970233167224558504969199614619431086803772836199505518336179509536431301387242442413125384059969217357247690261761698591939231388420101445961796987411967263768970787347579408827491376139751971216392401180628797351111474982456189301551262181943912723535937056831722207963525707541548878335389867247809667651622140758241028463147541215066094398296024041888576281666189047613326443382571721368964405259891723368453131200442116538916697678186639044572199622806969762624492128633348483662320903185543050427030142074158342254325348314169575838549495404773634228327055379301095905764193016649735853303826619474952738499424323954684806765131868021856771439484620727254491734612311065159232786585246519407761149655767501283793653357213127592553579568350761509632952218414006907683344749599203031161605838809915510293418624078961342100083411765719363507115417630734659150509513180376721870943654803421861899679148305158096513306126997232651744005178945165770644820492333861734945454268451077197361800726763222420061229711501200095359785447141881616686964910077101521697188525723315191751028091956692434351758863872201410660401730026731108679950871896023650367912491429800045964424432363221642667550490128820422323064552696482694851520466000520295299524270044646899895147972519351189564498038291511628706325512796991225448442466166467952398858221521475029552566474875905794900518477497837473607316365112727610265887513452209595835753090394131193060806782846837861166850157470659249017302345910258592714716099813223699023415872066821177247961828585052345435308397741072488012312602320445528234992474642541265589824963637959405129514081018022824874643056626932350959949438057433917148868207515005481286741807036264895548891049927113001956664401010410857810395901474586523889761065357582855895785458587792869942234591951982908003436524841014271057959468933187622413982338968890814788400571813043667127433935038612795535118383250334495150628077834250298965266916153809571762814233933072721134130083783375170872188189877422794876448651748640395577529056067098229903556273249680256850337005142762863134646450501224794710552227788806283974486737452118544394068998733706509838289694947787121690428660756617514043771794091141992457404145362633034571829767408848924719038268792374951773403212428992422138622392290195820926270288859344783915395789413974815428462864115492249436246351293755577485161573887393078352678209481057810170166914956198219793687330308872406652503008700731065116134912871978221109301307709686744734391553777963947155814629690303181746027358084541699271387139762010200784732041120108961466122621153106025220309972222722783859821140605663326976225382054663734817584044855716540122543071586972765186122571842291724423104013568028506762664952690592850870178238876531826354784940383299752233864188791985989307497826210923239486775823253879565620490196608366373444766323073239703983299361839567187330665594786222177440714130294051556101707160438120783644672911197416766139739572472442592990082428065630294417383559989188280504400157772965688776442299792748935885011474643062749909333556252376562937547203007525027710305404194783472331510981679174761904838831586478542302345362425757738610262821778121907277111615275001927817623026419210688952094735147641176778355721895301937954669947006111712858215036294469250349245576308980733445426083761164335340671433074861609812068866139404610035072331235932286355947283855628383161970893198209072957445151509677204875616107604151563726063966614741014311650867893850400065157503357304997644446087065440100939562342061455673265775402168771106602148658802241552050854152102111317608472306831359476408998627735885099118521848737937026079298768924870748229064102786469328804276532055540468116255067384335884508091530392307867686810095076547285840318131957943848724959334746736489521930788269472252917315469522085754766990736234750774431450328713615597266182132887856768133045201124786669069140824293829499603393965943761344971953353687238992596878764889958480963377167427620384481544764198846391945609536384429271525977591128827558620749932516148810268503301265346305121444026763093299351792397733895872548009345249128799041436610441730089245710097940182142366036252954652666240993905001504184087821683411136767738813272663249181399785725251444110988965936298628667627074430565158299882896564255215358037758492334199911391555167827490470598737762355194699447369739663748872639353717802126777343032628759746662227137612470726431338630300003180312364752979629314122165777929580207224151200496610611443574708634891284772029505034956895214398542592950183955605667012704401504984866200843704247834248612681454747875481336745807061980822977578062252893395997385788324105979237884479395439309546779623713724790566773091142172282861540347750189847682735976564582367817106018627827794692668443614926794780144549282592058452679520662497919699487420914558794166525999898825489857394058548471367781948049585665788336256205991773118194201095380328393764688540426393043342249533304986037451177314534910064286937451696815172229986775734760759544498334176420552682284376784748586924219817816092327810540575821126558052830546552139138160836531886305971031501965189641438051558510110936803963405357279889340379508563048588919321938048356367123759856081230623635170400148642534707482026377431545056436913025073194227794544843048092532483135243328484351669730886828893193713130867710115113856036282745078727251930119923049971753193071391179948917588263502157887295634735475341574455370953688044566816014521608009722925810374840477804508699550110402168599275608922301339233390932775531809186300381456884510171524164114298316330485183094503083247381759117796297376976419298396648136630425690338390648422791096025068409193215402702187200850192260688724548312660499072550591780546914576501128840695185592676232436756371186732613699198362161424429497460569610709824676231755327997185202139286751366938547215339132386087014655593374306544440963466150269648884169559900444592189884054237057090447839766625448444604889160873637920755348590843842509182168947544636696661283577097961635012583570721594259440217125864746980931107850310026282253509978783546782557095079477051668603253410915109602364753060616360574982602539150569243510727360136959839533077395552155436502325117949704457915776991916869416398072078278827207209675702065301133888668223009724441494319552088855687083430767301960903025261102560851642684237342548002363510040703937096482250455286804525892919388689729123730468204731329946564508932279139284055655716248654043009144792810345722660538083273335755938614287442257892890300725106973388499845219472406132248825700986257359438309819674542739832884272359738036587101703059642879860862795323461834115309269372350300747852912114340609857862907122742966206158508149030719086711819875845199185837252627668693943301708821289374132815761863666030239061123070683599763725370998431513855221037448749150820731836012456667457167322534290714352226167181589518450764630516321180999747676820260228513705689846317253985121944129990279139338521121155398013507207556805755646854111577077098462638790765757375093490005609622401429266585788080257234596094592172189573952480874058431019794699155896667533509022210211605358175184023744272018363242560585884343168250114382740290898143786576100239576933584464637103197515619171655415175096091259885754042696655671521524857180266504859167460841856556164742493228678978105845079287485443306068273083536424666111241934457641260294204262811532904001082617835312557332468047146968150923420839803033366370739409557845602113649399426736417720630804311678638836871140253388986127150455880415500656246439374906207542227358517110252950923880112434194161623704965537173166571910799172396574059839459815320653291406103242292997204658861386478643225813153642155674780123281628807116076526332338595486366288767263367192455133842653257443713767324883118698455335831509377217515302717641961299602501281111282536419721710897314227043888443246095200949451891424256073355920457980398073190997310655278829818341558804788526930031527778508583931720179370838668946435121406219873153253870968944608460383111987381047180765642441481674816460166381132150803434581098691943799532842561206924719201843655766033814476502752028558913184172307831201966736111963276770878554531954651227743719803368763299829950689837781044166528395842944722633047844717175116862779753715094830758472652280217336334379977251876280197103204159141373454677445079591094626950999051840632379053095749828104929671273379021869284099230350849489433387718030071574199691211253213389815311168771685995643579678698746501281474379389168479865500218548824152018602690856791433344922344352966488520968259177402719807892518425882166717842365499714499298544667112768957612572368537159571322658703411334842223732914469363621783245806145902270858075985969646658560942955015195556904901115858400004910875883845685087663759379910842104060851030576507818493788182013587156351693849979636390477997113872449774307706714159661729650109818099005419457751458731285628779494228487647898796620744087898535553961343547857552280877492721357363501904520978927482764161106058808105014072154366841783441454951345757331871861834988380717019916898145227262698996031805752605621205542773736664538181902522139366104065664238524761600558691061066234112444564567447103536406019605120295011715737365275758466647598554200018859594086387147090471417844659148956414641273078219852991604980707456870592745592802740038870500741704372318854389178911750697782948471174709702073825226440989948677313534370728748157613107442863660284926352586082491342060574560163413687184838442786842063474230029247400382809597152758647053900985109224360157220607276542600166800913397075062521743019203537099567971695809684636344364401650129175847410456709291037244892415668444452111871279364586203027142057360513415224022123799805925788692249221786777584553175633091387380341986665155808535100496223155245013382096545705734144480301668917332802127902307174376295671047787669621984720549651630296459227171934312447657339528549689380034511944785708833712043604689689465835387384876410500241633679316795684925975796291741708171890820564971792306289082621754414601598891861007771035892932973775422169082252741676810307427057564028252372265846786488336940317076974594615282506559279887867166769150535907207408590673014779061775068013507548205444326260685423190655925145596966155688817581633964836057876625571508139571350087285666955072261035222650007309371824019814721855825463748144609320946165287364974858268542221192799056299893140592772812231396045464391843063684327052774432658244408057350440697411087799673015834139453990259255270723031148564180685632300925795001313886549036828541096177570456767112267605760886707899888626011680343099956041457737195953296817132963367570603980276215926769252638961719509783292361086058455718632437500888685763165814207105417380160600226203529697010957420428153234546067655552284975448642939972662882613859083049993035724446640210360502437185344464939944773983849847544853513061154797625933193943179966406978769344465997721522401436682967285206698599117347979607667087886128710327159928941798435123435146738133004046761875625488232718743404173966858687082291197013432869529519790874146599680658185953977853957319067030828918202862425579461265198634285686390304594917954165863705440389928438886308688945902584687997512302677414463819609746713943996542062089726940785657024886952906230592307269510169486909215659874391286570907882828405998495010616542609539557679338336059133689338411417285065901705811307366712992961934217707382245291760235709005152393854510499042559028195598888926913401442792498282857823927248446437134451777378721837413480810125607067666295793517608045620748452712427190862707999648741815028807611056610102091859692833763901453960584974796565453507965891619247672544885785220130390404934872051854767626053154183623548525805552823415428551847621018178052357345271958622180371833350991711794560564521903108311503440842265762816902743628962086414755827677939965380653320975777068748186275074691661993584901818897485509188868504758699708660540942471713430310027646502558651304533287635599493885776892043093568220807717111213387115803989838160269330126679392465607714095916611897562572061382268914999274452588996635887261895339183100657822577405085635575140606555973901309798343609500560450560483016013365348585873518549906081025938487668485850029504757290314768849475354076505544008690083491861331130316928760533268520767914882702670917090799915374263531853305506376696950578519979515650183456977519620117134453024803290158417998727443422484780651795652064080777070481455600492702419547270730957902375266671101468074109705131960399599067093311981885743853365496695303669213425636541516227665285692034828067943279115018183981404617005371416134611559611056345356557729932574914380839226921913200535831906631970462735726134924308050540783112627218469350488720150372321774550540125693027585506349204885229079347573263295522393114747081612800182395470040281677429977741684232396958507799304143759767122192534987305635437453159412730544493817714033814290699526793742174024445096599079934215147990716723207852353761961102234636817254889367085651245925198105977531760672640114921772782409383676224506413853618517682999890270650042960398755725053820140745637028813888169699819444853024662146067844198080272665130934452977088674625009126390953974179293938483182568742259034181924099784422192370678731551232414159221338317169363700427861423014749750422466641637945924433706200417817827153114691053333630966294014566227203317256984307935444136271823385103072608306804916794500304062546729835265663961409144304096568729569163450577196133024428542898442439676288350833601654514857776481869740729152128303590077900674213602581599792498839874699356942729690226469553548469577473900375301371774704806398950002194147688396339968008245148891180099449286170736230226596021449962011583023191213382664885428432519365321285468402497419220407492249719584674496901515133793551514549228649448005510888472643884912635086825195543042794872921810507150872460517279010136259237194667325375509749268310785148320737659327276309760858949653087623673580605442673149544855923197850442789970649849919246184257737506990407922003539611567815878617164668023444020845296034169854259438322179244841987910221583410405220891380052520901617274136057205831115418511526436908576331459854543716904232271214277156645936440644663955512643926411828222218294999600794277903967689664348238576000739635921853771504179747097433388714365160972553231722167798067459046788983838647262078305216777471713466456619717849146292509404462090810895190680554713845997871615427204927716815907291642522908618943344112322719906358435920049717935973019173235691185787408005848265687262653759155762679302907109264741703272475647760405757575596551497482014797182866642793879659010930048223901504014528600738231272925620241965874524368748329561219260242096827152405298417199109655849023162339942997229447107229100973299143271177965798784408538823164861168527091221756602184117819130511526196636691072460056465653992395853256287155478914519462054213919294656051568349411641639961152280968134559218279729345386042918771527150522796319943343376420196468072227865034974147387381909876019153079251557251815740700637796755726050122219885231868555297104963691506045135804202618566302258433391477496914283285611242068758934810642294379240459381963254908761820123075676854287477429539906108315145926107470884696111327986226882828013587935519801030190748521047943613031696259117503002783981442157268884889416311545193102209116585397998388990705733725910163967061061284924995484379027995802993995169160879188327515706697518561795828434705026793266968319424645216323382427979840487831110747329878360458612482810538120746890991025314204488460791435094244095734999321964747385768400877902880271117377355810707178805030164078804588060520892242564092681671028638709835700041055559073151683659805464360780984581973484024172533224940285334348227022292854861796641393549358773230319019548755888608271197941061899538408798953250274801844117759737019458496610087473624561083273997812341185026584675616934832000330567903515801285969744069157966110805030446490828701388362329830643014845277860926376301009203179502980760102051486304537711783628981223008529087775450982888773945805280616775947167282445132851432428780343572344477744632988016149891257574724789612506597020169447987639061935055588619479997119963789875265870067477697536108770290790175252376860941279166317752548106063484741256087006450163871109119178308868462069186255124479495369375570855422040374253213863900067126004227437164302259763785005328184297590694818765625188177768518434178441401585155353149581605039611650684482598584072585891709090878861653950202330595527013815754336563028838730237158472759521293838199424132841781062579821060137199222235780955941060663824611480841072608413659361360415454986889528156180773129104071790478639396663209187441166736461914674235379039922716720876514364607145372392007932780083397498830421394798503918452056574189781337792727878693385415528708012734029917522894841766060199500707698763785442402378081568777999116095314728573249502942694265538857087510177913421953466545551882579929729094685233564474461387266534613554003518831564507868394992322594191098418561427994053440968153765953405148192300908462227564196478800986802950868765834156720615008895562962114585663031582465869834507506369117193557362985197265839772058019695544522923671851649087913040046645194153168043319819381324932339128359163492989489908348180834863619984576664246499296342797938675738408359783780142560358645601429073961855584211884049097135018234941546541160168795523126383224626771975548247196636586159481472998220409717644034156144364050117862437729170287416121100009887060440200155608387075397459393696208772135914641678568896377859848463498874160882450598726569416831566693045863579074253955575135276273439733197122282872026257409902540355697507382096574945267145467556507703377213321591249516086166030304789416313202519053195334098037767736634251279112893404837035344865791678717133176774166234985250276052218402939859133147553833979714530318621660265686346076795914964560633113875976078392675180192836959618828296442177884997336708479168923411999265012971607851877682711460132015100280872168749878678806791429121869070317568981611866300079999400850798827792519149700100165865447528409858638369239940477190604730144578292816488975179697407294194007714463750135433703061458368647309144946540860937143228870895599010288207753159818715974645029594339737319949698564363866367801683027342049605497367415815535170090892032288209274674873491881707986876611995622203969413810790430660808606627718874060897436713221233058714401442013344670533155556966805533133503622730957444954864889418894841029961475011568324166201737989338739420200678063090540055626124395624952754647389345917492502876971507234300396543212066180885517155631319525025619503595302605379152271006646254220047234551976068217107494409583211124906013160524231386632287379679610753738409508311952893768184092935697693543231455944384981006478793688987338869840440420731896254704430445636347106532699892931267029909584868864701938241551080157842793514490030237967033412306487313387289858587316845321017851115607874267704557453855571836416408656615011257292412526614259577459555750356287170504117509255693904951769158601818424431350216204366089867553017625946928747279901560065213491204448713990530359328954977225835350505546275035059732728113400469541882417073546350453492752446138092202851868672083122688880457351562034619779784807383324789281402951146607471228784928519656718379211079359212332810206611298773518219802491709636927027010044960386150382712635228128260202966629845685620265237071023393636394503803870937772959286060388662380951181375677763240738472360476019163698878007096210133899363649265134301710500190485458066769940491425104253427997838800575396604761973688237227942415704475482972854368019049730475348480422729425436977793887822791922014853477918069774930279423648221271811354901150772795346286820914827253536124693955824631184708843796921538334376649189904256117176358574715486873381370642727303876945162717691263859927643807554563646431125248950679253021797903056968970929502722481919625805441298638385283825213272524906004117628819866818752857405725273196167237906383302295985757709721488997248699178661169050007487489498989952346138224299188937232903458567876479109640072620143558590144336839784768006580208656504278016632094171730415293946907294352021067481289645577410259142751964267915052755002450786444243008791962317066825410041522343915912895824735508231830575301871880772082831963093730842848060391707053273723541262451139368737398790206178217784272107515955494176386923997194155556112805413639061159414055498435942746165543712547923279397824117044081675840067034422283678658189973649311807872455479020614460010416631734685953874492428655673805394311964659591034461909980114379104161284056056472254478680901361665119681529357850114055439892381498819122362491385828071611476822303179618187136520197894619762470218006426637376029491681187416701336273762434385878881866529992110897657757447685908955051428266882381761003409854994430032387576015329132633172810594239698427657825006564774915384676030137613617684981250372077862813659223040627053537736457414505734322649171765339071990297767281361817388430310592595028102328461708515581667588773040147261675687093478014262345072918598309959035887018662184530845218806173654532976721820958671670355004709254949179119736745006844348228949314399594812214268259563841622008533760236643409887510357178002504332208759322453371669784786220901487641182691409480940140495354941192881042965050674341517110360036312174669156516271792198476932360416723547980634839481241178201707460991612694990368574386644746941963626701957570099042633886743055251403265382678116990351457617355027467803917830742551264909802087869320972943333330145038839964567927347301510141871034629897577125376376449732167852163679622576859723039795105189395777185903406803311978193361075875737699566157803831465940008892632549237986500929149691599091705132662566183817440010300892055763770501400999595272997319533861239814994298105767667149899111892245331388380019693912698836690606838714068663831397971483240314595763275407392859033991778318608372783447499872423592745289476537407275302843034803321278987111689709340267421461882033940280484605938900659320200462881529712908595455225195206292676655772223858050076241385586024586218037107742227365767454535951730854704406597841106908322717228768906047046986014165647448292200404156837964414759626382770798580646752631682035278278498768387064926545733162951168932545097037913469334429754857314486813808910541093853528642687702913170297671385513756803840734785388558689195126844294693983791472040320490955872420793461332686591758547927805823309955534711509706467794620786039167034171875667646175352841178356393130846646285055850824374777141342745816858353688140158259898660504816306171513536886762167201489422999311392410697715741158456470437526866763129291749952253284129904126174277618586521619247501089937615823038894980962725843405853673858132476582730331202976747554381726124673081204158847670512678523409432841397101392303491664207409082601141766190890975442777121003509280307249600305370270834641773448220540401643977521053247133917233430605928858284648848239831439225889662758372490438739095227415690156314617608517735162599829889186187199292254735786820243067408935963903691405772565039378543240528325086603593544660662123293314947608533875960591769095359070959587232753778261718337779787129417546383614088364801953591223815733792683709166632268202264163670002881920239606322758071530043752434693456636285656160514988495893433534261850245535872774816155065235838749564828785360321486363483678379193609215628856388253665000093672080924474724703186316896920878301953405761588309082913732742366724757107194642842957532628848038916372964381717549532396053345322710967652962374817742145366743673305467519530666117040084963869400548330389799107490997200369228980544317373115985379445803275636218076374060506876460436593941055057190533739154267809758183189292446712407013779018689873108399046542918832045882023900739494997288691394985603670992351400957555774032092700348441935445648338704661977444396608055290566763234775151727307043936391409559062592013890095757965528625428071809492018458238848407166063441072476561626072343680528468776809757962764548572365220912690112443255350045414306244704293988216551032794701235943012863942756326427279883934122558584597818455814285602963108272989687745269246201736855204851865739791190534997464659211006338375572631748293660913300557560177532188241197663498167608266736645995056317627631732113569009875343824727276225263400058848750862448493234234294402301757945585121078735065706907179117046829886795118978587240100896604729351568883935518253761527257784291302672990769508022810919015947854407554845972984135364857397032199541088797865596133827900640470909996536592649720146302879617914148420796019872462042531644642206711176627269446488248646515091897592469080588533372052976529166116581881718272230073993841320582814874746839821655487562673292818375247353428515929354049506317856292483234809440777339437143863273154405463822171277818777750712190670756049515637700724518497341175136411087371345085189769182705675727589414735239161177795008229796811224180325739951266430962287068374554210497442488420294429096159756341772469314046664041314327937572433043262716163801908334753125664048411818099518864979240194451955516423319045616242792507865071118045161726857141465188394532270083198757448291221423354448677391005827508323788595884608187648427308045053707402869317103992461818050797074437268928549384571075903273143563686371136722036878068308115457918008923497150889642269767972187931861452443597309120461916085603815179474615302743791413751105542791252079614241721713816222746893083156410995843278694385473303949797904852110459104814981458183223524221696894541058373275072762847312644483918524788798472503819539741638860955186872993656343842005679905320040561103524492608145707803216559440970465113579424220930110615868811371863028150950416480227554905291637438756776071187608048417178496478342394570486668878018709529466359772164766165757522597955515323428995767840243004060238124049116886756016605790511666606674576689127147876026928914729993077110769139668268870432978922239485893154619462013807757988600597872037194214635291953190852280158190440899619461607258285229712251130197473094144376366012178328896139410373077274432444941355478324274545753131574070353829104115677559463568654284247537150593482081709798018515807849134858314252723886548590834151191099731274483756045686582530602163281491324424625783660354623742878126819374195845662062715252324216057486203971904875512172330929388249002093162733274527819766524558138234592830073376759409528982873038239772884207708831703727077891834544582260891120351304390095606599479737040605994925370089884698322607817653083317525231905018625605162558849081321525049980630428781149079300198595912000615842954017944835707770569730849597835500555793888827247854371853926027848460884597842523627504355602415932107111174439246204950664703574409603706606121712566730763609226390509144046519456673270088317427086444717313607095892497756040102243484193653190888032367038244990178601747636804122511458533520491369917563089688321425980224588281328886338857625939610839333341787382431517382864918882209541560065041561853474885872587245082206164236771855214419504790795038854285047620145116063469635226215321353173107357369937048039499179874897254346421732906827849164841790693497733062643769065416566548308359061166150262105263606604136940628179168407490433879696183734314215364467742826149016324952885707465107800427322276948576082837883188930950434803113732623717672496223938994060309771532385378321210209859023901180994027902288697380301358898908647270482042104940821546691126824918115644023516750443937196405346241309699110529571478431566848197433062706658565057550326142627672304258548935662240801476495018844450799550584499324912459404225470450378101122028805440144130311494277284276305533029905827317366078458482462459481811275585934144285245980354039123288396068014635583830782391284757785576973847778507838162998178023100707986976246525890093540111655414604103782219860581641619696270428326744731153716375706950834985402409149591899483947890271490196290907172595305359982738767318259317414722576514581322778577595791410745766885999658304293275275997228542911484684579831382975790856279042775621949786770407004534588037172591312568402203881204371625278619022205355714156341574588055582187803411827527499966339087141988598436587850676274291408826831816893804299888361186166724770329124899045441421693639091660325682151983929438968170870414067376718811054508586748272169220786616267718048413071490051323157264825238498660208475176156578213930043292602217197271681678183862027663079439007426300537180178261869572067417418420218945533758724633711372955616306722443945243014116292023092689561264574388162140058683014084536557814872093550477587246683103042817555863013652278852822672751132373735217582091082598521231344995986741833680196485389824358897345661969242406652296029294305191166901805836879314366904704407919086871149516027431069163457866132832690502171589098493393118004992231811613515297977003203056213061003174827530838804361837018046363764153606987105980833169523469807758120942902080122579413537963791270936870060988436727312818920676272127545989641511883000595168891018234828617464122768188425895891240720692903061932335338983278969620002748750711235766194487047889419706878676775287622580039402130765813942776116676704409734034179440397932431484244740914773201468223509058154851599268989634912624166191467705807042599126855787648713648019908840774702282102122617325975889706318400583641988004673695946062792612033399441697263793850111259644934472033296521789776421338923774129646302325941927590170693055412999439143276068467749739531749151678233519857318443367536167160159210521307828692899191313223434066340356567064429549880515536647289168989381696348006036758221035881697326302786468864428566883804628872251145633013170339299397463257215703980786358974894637922588128766517381261859479842634167294402527099804050247385549254073370431971938349156322178098976787661364742275567787134533662322075302255765936126847075615244408077607013779336600765227983542123441776531628364010296446527740771366315664535887778127764689095763112877029059520824156920655591259529094147594386154233995645473437121694092507416471527685295386808020119131473920876167022012336860291627738113212522271941398253061895761327427104276331472010361907501834095050860272334554365461844355046436522215734610395650035862269302929082492828629272636984336814362411252054250148027265700144654647692497621217235714995832986610044435478252009911478178390461946812836499504739944024028990491078383477092552634708374654776960375748729904417099173386609939919554936003274472396099937817968524135182228657959973298091591233232393455266006516103148962021451467482536331062763500645703497719308960107733413114874962265189918626029947959218718246764651347619494048296480321246751519625511891858450970572424537532759570187532773770732869802072221147897408595975943631348161841808363561790797003002312982455696844086532137768293753273099141600527823615472529349837056987344788064258921972536571476107016578262345801959958347519821833130276220191100760850572890281364271001209492619500582552161484005241936419739918134890726584593715650337737469579346219403909749242614783161396068559913710245722299074852274908385277726122718374409396108654773537036795783235137176171306025245403860529472552344347497526291913918024130018631411166628494615286444101807019314515317632627184482918517924240779536750406258882106634107855613953878578506662378576688797854216302189862931034227323814448794761722296654606304224078078990786450584780195916221390702100150335343455649114697345036858703299655982141834175188756381446577102241590089928844536800685021064013814720774045488818080194898302722061092776113184094995156208951536003420467451146959929427301603633028494029026216598905303627749614208955550730951429334286442445963199115992997770000111727799518024437742850238297027541034658861930578020282914063675701626638874631266423008937563489822486726507229728098724078614436007137128301829197905887163258312259223894252583370843794950553706697941721064306122405723012553705628325695072082909903017445057694722135816728634898079794336003624585028097017362714047299076313861217374745043741829180314508733984569947578466235078067358006375239634232021166305671239920913127400971107552284639994646470370078628340878268804099786614630103999810406269775460635390617152455809332362396222407433860811926151581092270033631558303616221225187478899800103910249579527274747613089211158106157720547831114158092501635610323948564002005374254939804489797424728956558614419590576439986265980108903929993107070838449085415930063170961647737787658299905164110622297895744279963928711037798762564629682008351797203878253651400433568076704252425978024064593636913062650378590151997857491743104774963687148911633245470508099771014575115195682306806888464739380382499140489284354619761246879770737505175597298236902963607169726120249287748345614287975350570580430004840766538103779822474454938797547596797671247986708165401501898300728631060491349679060904316166277647469713559466302688518019467855477935754829011846111003775170353706626757768277428504789733023394458920174229590120525164733510824178393412718516875609311313500560058503383298085625106872093803861874204768410332490095320633076929962267886175071789643500909444516629571213486575407977121085563888850402900191254879171640473749719464427530876096128193157413897003805322726998238828317429936035159104960684752898777677491813913455052900655870061738060745260574927863146355006523848422736177663735136571109779476947223309044040270788881037220753652711662556063738136472780646820365704164739864320500917419772825496452319146733889511055036426579369164195921358249072320721488942507828270096310298030229857591776792755992093548592927589885938261743321710418270485808337519613667823311139969120205219029803785461606426922236015698278729855101731541133863791669752287359063660449990894190353181427903052472276648487614380043827182557624589586859725145745342226918860318722383828609984683183672392306899132595913914664465050170435508010793071047968444188926264677353454596757010391458374108723569887550174193474546629541565503325800192509144645636215451146582113386065679219049447776562556092851738309600411497089268393345402551225079729875480146410303022214777687215651383100218650450499337493605414525772489025664090900177252613079586760994706788473268066743691030790521860680996390753069271542846412596874301349547392700794510478592026948252875735743923917200846176397925202957563347413572697264101327586145754592881787685524845028921412102398558810706557919733826250536911647994815637096174937129333071262887339306294319314725173816473033040225245158712018970610918682065022600390882586149348005523118483854080018602797079244580716139088770490681894716412220861653376382700538362524227741764532929656515857572493334201039519145654467624154805581788043443322222617938663056112042714586070496845819983740458192667515012834217371424011785349906463764712658100055804994583812597242873702061678958559576156546196049263263273645274829528403179547181021884878207299731037780920205589890039834412525678602220785883933398248143585509711026782679624714755049596833685275221579243402251682064466160121049347652706400855676736788593641045590351489186681247556521523859950616354294941014257062831167426163900205386751134952098212704614320797995497787854600585498059841942188383293824335061365220533734633383516405864883546282733879552149753522384855096907146025871955487143975790108229642848469856889443641539267387611063800652317382464534128375193294927886196042364241376271234076788793939364247208387572014879781262680056604439242253452809667129015081898011517744512891103274084450968147355604595435745295549729078775468867795177121206264227454347669499867226202670880465734122843778360329256857432384540755949480944919304552017716610086501398470183913033634188924776029628678825713891716859687605797713013466537593121702464766399572061715203303149263862926260177996649080312706514675941682615210497264010415684063006799541766716760868618514593825406964455406517205420157479219499123000638972168890377389245454388918646710192034283615801127596617892425499303271470892522833739626549295514257150014939935794255941140930463047884937756044914857119341237850273429534099057113025294644414574871176523399990228251330133290371773989680217041173364107411053121439810763390387015271688938369549094417082196476432551443150900442808704111277407758208591410609684239168618344343858026259875033211056696773873050510814899832383141616223193694078086810259537700968234942884075212014913817519597642509126133360153654504247040986731692615566544050170118482794462466506447184071147439004929899607581015387786797735793639665548135749717730326639042674382195269683052733437364350181242859573700567577360829808891558688476248941470606496250176210683553083830721799269767040209238468295420706180235700782918368970269599274352658062717965575850036401470342165563351952129800862368167596124773561563254260881167368581362765962118668366564019692418209701758015570019251817737238303425142618519696450964560799377408243327260020265235015592466213100454449253866688972814970867497760708705960928479563351163678671266631730009180645780548370955809366481886389986599009111297185009405131255030596116909783758027973414611883103437080798212071083244727092890525915947765725066682401799165303701303514321122868694898639327004027079256702457421127660661328254657234337556240554075634849685742770530375166324695585884347955548853548857392949766500199961013602106151791790621717124016166821840951042476378956508446281285805561699945273406707938820738836169886158883009041549419175231741709655938498042258627255375072799348911708482209398697213626872535499690645181392140545345451120843611172432286461716471780644279795807759736696083383132346601896436127944315763092854288469844444515060647438376128813681659157308664493081233356116567132594404802892016118212863006765237578925385947612368250753279568040271503246084840076507322782185821537376975903660444036832654455047040767907090367914796760956478634047889749310408888086113800126369215106503274590663877214239294601609446639691284927921054006601433054089799689586533458318280795856881353314599920197197279172584453033469760838975521101981968573719762324919338491730067173741728749342543449672879249061132116852564099681676836401904387009463862097042612995781149932263195105141178654362506803604940799243413920217583439235841002279384396814398957816544006263070363365444153186593370467616969395922356986522402206803913154146409866131546681204270077067339511577422378768034350633854769186906921757408049379620944607920956066204513654104274800804511829888522587495953778400505022944347082272535698112432656520495605792186464374226070622035700056877147212000121348562769278821498356355541738303868811228172668715447429264507814186720727018401998992786796538057109509813242015003976299428905171137838638701666597825099904495978935266448466428805967476851008121759821361142685537318010130590086651661280710100729386635221881606924790847630441128340430547060219954257352940510391121470580045154023279923291096533391262278044700213671238546908028280047992265483177626623238096350213381009209216852888921887324833758887676481608865717311855121813976963248776692253902217384392228811720302753981893318935982335044230321725595304083403890495077139387078632259400370044039758120497349659782540283736670095010280729534561868161360949528709747470323086529501259440737744028326910053914473460361821944439423158554489667941289497801720795193019178709426941994054482444162311063608486175170221495939156997675960949641562176851701319200842599548522074243362160781745007540544558298102652303256702340226316518732381008954723307832080886675477591504436045720614888004521836224193433566383862648203185942593670415834808786833797917680489198098617216089277210498164363586617242837419001005186740532811799963570016479612637090201148451913345878278348288584004068951335074653311915043937940346806459902637308973874592242050254006441573217697540065537742587657804502508740873040695127507204367365424431145442123717217948160928799521913947016596008521772766049759003997593305997550496876647687226073592028055954143591957593303926209405864162400926310383783237240807303731046488216216957824332897133580720930514832909730165233593205189437632956628307001275567379694778088575265021306003410982292459890645702752429372847689309196413149156369669224753419696267147992147113913015974540150239869404688699056586293590236523885946365673797691606143205095111500797347654952387819652141449448988822423668675940892797726250786849491786688673319397579334766719114774954880118203778751406098212591269647845678868415882187668670825516636832062840327713482382277679228867650526460058354494632934004814495640707320212210418328999869682330708774002272559642033754035718938698906029853252680332181914620494560229567793913667437074248283239305952793102995455564668172158720971029548710000332883755665725114251068607889450326255798140196698105762925926206947937586947481568406436598248015179605457416895642078825266079327601383190003200148273016594777242253855383516381170567103589072667153386655015861166701960402134063900028937006843393310789227460767283422517078182873526966999184747346176949024449472499709202423208781968719495225442691226214384252651268014435951042022405885457334080183819802619829900989917748766817722417567984667746035228370300257568927448918568327574352992634964572188493060809370687958005551735678517003012270909301465490527613133330359637762246820390332812333213462270030809467743057120052505514927279341622532638950474973636685127521480751521861135838577923918486552481415667873347759629326638513431897542742845126572667957283341344644478061337347634092162361845157050718184920702531159245693334219586084048243960180950681671685232579672831921272242300923292740070129558940028735484517538273167876724776682109107496878522323612614267844623652166121206780189961156679137102770137405277316882187764063962769380350541356655740629175508600626014566112944283815716412251735085666644239772556724787651117809392737224540031476936539059198678930736732896411440088604879453937889865916004573612183555289744256266918851415098948624333277315407967102156002508979200803430078797565401947827965533034974851865361920585207500580012484895984859176908884431954999500510214313736026729972229591497889072007288303166500908781374530026115751731735225728246143359594058314710396075003204041631177093927624956856339689268675567341869483842032575524551512057125591077811710083142022184656892848042969459087887502418727884299831898457717271827769611255510766234328215957355020564260702011943912524275508278295016850579321194341286803017012279579650109250739486807296180036957471022333527902295937788132325610070898680560878408198266352744915046482326209130612521025669169084748242438478270690443565995902674448708410765956513302093423061044649791201722787790080929810295516167353178575097121699967400469616436496773796435265105030749983707843714276227097770365473082014007111028589140992590726183711965111303573603205041560223838883642278647210453862605011108689219812314792340065525459682208805174725522584160348856531122876602871790307101163934145563936395261056110983555526137655620301683243168159665318523437469223303067965265896634917795764300918603956687404917217800666464076510184075293741443081304088790190401582542109119525831374174815019260217979685686151675974720098584544486730664152040281545619176389050505046252992328120497920981516702040145680092229956643762819302981713152292282351692273903079737974973318140594013667393279263466559044638243912459492458256016833070489133627772086844038521466840260770004197550008345000302718516723590701773235927727238353687264938001577630670447588565469040199070922946234174632056351878907978188291167539311447774922366658041102880794579754887541622020454803715138243168086792178116050760396582818139162149725190647302928084797397826987830595289196955330180916587940747018597210652059495702003821782883464908979314425725661763560549694996011661046130126878701311400744060238325179607894509465026767575430299717166297801402613490945737572932868173405949826853801832472870890296599438816467288155880987234702675038445877717427115245823442658622926383294186043337560828375912123302323732298244429592189710598053496811342897301411428022227864829415418224607577459405830412616573970228853522989067599860579267175449867262058455704716461413591411472449110755145393785046240646061464679960151948543875255266656424605940942359640400458917679184112337777240607297114931558177770958754687954009140118092674715616490129244286673477351971125613571732416980908443978606785477636882592743600852302773056626560579439701579047047967745988698488201374567828051268053726196861776611553728220532251833288990299719771578700193176477090292009424819104614163469714376003859759997614194681113333943598149763334708153339786084426682885192111205905593525849444580225719412961303097628704944523344189576807684714243816119490944350468300697954421487671009962529786876324688494204504469819806374935448976944439772043483237636518280721865282165385409397376916820250428499101717584513741272063448350167358142406459437389973868042357235728493348936589154006757640640663160610414516922377084415906913874501985253241234722475079553227944867864263514274064729806801710835746071180903631353384075045955812923100771389049087123532997934103349678783945693518868677957648019600490385280265240111194030761300445541379245620649595389088790888785682002007654002892734788219353484536804602014099195289795651301807442482260004827360588142412059953191928613024590452896466252378280364496354992430488360058353205651053742339722528400399679048831125478804227276805395317182983162845944226013390873814000070973577896527985950259395253722687612415856821032030511105007847731669465754246033450462562154659638144751018053193653869780048861497781222145592197658375792277837988721415431256118918934574333934980646607005863340400522232365562658642043122828701554283685037388912275393730699441412546265817896302015555937163512989105025715224537249775737151845092929137665305462415159586167031791480975158548754082018182710409025207874034338054247026396739157224418626351423616331819613247871838846756459793669448476874713083488881157068082366779783183627330554631551699987256161921679288927340949376294304322389413208380439230479463303853213003615318885895545276803113532488282596004006972450700098542967665934208343777844276177272077238396133731339982427806136262778524685124919544776945938609213996463830551662869369285570140264799447461533711058531548506127236978911776184067348518436952979428451031304319437916993824379143684585352958547496702866665370339641046430045253829503809610325122561466112730732631344915712369242209666808889162016371098674150430574435697314058455773744722286014030004114175396401614000154721580424058715324966471124791906348328322049166204966156869054630292590649110270875302321710851491960630444633085519971563576156082190464018559571777615057063987226643456530666902143124381956413199452552870777942549038563909129916699676246226757971354842677303494372178856841760512471357927610273460872383587175371880168374974733453644430013641503625799073710846063601932834334460329701913301468150448010251945913818966269806061908747004643862031330973977089822677049621515603012416144065190205546962533473625595148111594399897551388171814771132268972124596628504521719039714137835139839505576843779539410427734460269087090927763292041748496963767735167783712859599167248979768729157344613464440316673076565888489686634698789731074455600119012571357555770297560758922324659053271206896468333025195374637520629908265113472019676905911243309368268594043827750412975567271812408063416860618799192302794547516513790030172095327152149649972904589583436776454363505701821408267638614049225891074094888727195492318690542424969017030987948576739892899207377477148750499284303539286274609997528114232178656629034507068239208614767593044268325065706462610391379660292127874900168649271259910514614376925333723854171272848650380227662876424308055584973756946322278636949995960478514141034881773438939148628059783083455378835798807128902791844400378557239156437072907903945543401053800164661603356507954820879907776641262103232444288918505943695837895144064261844694837843390446119216288021681283787415772818319673475106511905682509325053749823247832784299902977228892381062815178461163384140160469272976794838895385442315412307006224920550803497355783575274539155554065963336114488883246297887253087703838756077999020810093433334624376025871696435558751108750404282182373492493605311607014801175355835323887268881729065013668317038057059000294541503060676662287190825933017780101564543197903466178707624566513158563385850859187541268925881516233196757991737049613322826398338744446430115113871468280383467788275188070155954003699171918838955307881554197554455423758189925094725802698564354775692614557865740911068622219432582601709078888659771603389980267344924484277778650507965843283095459594794588828749598962412149528576950283625623299092062437725776930302902544586212521240680515951530544406504651111135440986345077560928785389701868511489238757757756047725379829597034279083427002592988795330840720253490437445862747876359883853737130852124958269162958996154042080877146257209880208537685531624733860832530052829574685335222631010566585289476411460388638197712260632938979001645297844193431915344249381814721920184292620953066221578809883397779886290859551315782356351000351550762530194331727273305132653096448771268365590856613151977162694074650781314083785481620792250491423981122720995183002920417960071816726275975108050475221460999883140954108359880506880816023761780523109373193102520951559835312982448527417223795484967540942569848440810424577225274118124203606857238071158331566553001509047715633153788557566576486466710672993982161699791036450705256471641159336219472315810942033408516224997650494904293065211575449451688641429150103423667909191612558177268103562009632273289077988282614943299584708239338936237849422060456357952692032628574908865525550239611189545265114441471119794650176491444092561111294461540543319573879179350675557465671387457173784387916897054880683108607227160772623368432198113560084718945389316013024767422225173409391777252426243041799458449948306413872304407556620845868631960832678789047952349543565233383274607124775518680026311868617868309218627650903429727926623289513806489097602515276347543029642907941608860046376023597058146407503763415700071128158531562821662254115776706553439295366578974889077152022798151538995445302158179993607394716939887628621544366703855672309098806139326111769186279909337671091798830025156686827973327468573961956114343017766728725039947194036771795504553913755723076845452346359659237359368416760743842849033522204970987126827762581661376613384233995409542470820720073663454673983516394266268906675867401293744777126397733520209777600836170916207207388664769708881209390878950152261398977526345684021824164109903886143959348560504534060760468938607182624212434956098107090971901758824095458809092927478196684044118923681288928028707314076556256735934366581823366544513101195169893032154408070939266231481998553657564503181022170907724792353745671543762999801444874179000445599347258197956574368653780465830952102798825727191943962702706502159667826158497529455800520204400961955998137443656654613566208443073663010929022492082057867273668077925268194217512290957772395911782410702731901000333108397941874980994259513569510189215270877715526765022974222579219871672809801894403460719438047147668145532425381881657584316021911706698143366177280118935172879056431056489040166121763579585180034460875557547660985987452780075041580795571823768353005823473711897561081958797915556775914839587408368303927818225980649831731229406101620541627510614831101734511204568084312302781946559108516312584158207212234072589020434791522280852492366157902075588040173989608593535627817771515461596255216910863092249510410622064723474710986966841045048829876939171573612594167282294686427670399841191884233252554554072143797587345730891306715636746139977702938016792491426685693225054038090504729195276254232071780488141493860331627773460952870920364410749420946380491252137438751602530140054254668602280624219855259408662976405759925854043438288705026977411448542088391146105895000391065917020933962071887892227132811227987371781704672052440453497778245292723216255784227415156765920487164113601958471277762196674500016774918307939599377026763501296681707218751459847127261462951902794064039157185870848584985248288158292945940535744175510378311766168490870721566389009870462138066580831889608497727350352949208013947621897201778757525229421046674125646967676234366235767717900967425734583785834497052168599354259023117661519613234195714454565621775816199822693768987160704457983379468656576410624650647878971887962718315540743188491041149397001627185234102705766092163410377785132903440444139919804873553600659786931482656857059332051942968884092996231053473040482849452291557400419371242269738071818292128849924297865767381178481047353684685801946649320920083778971542369210206222589868409816651279463113695556820297068760864848884649267046534040196656827264687198601132073832590940174413369026676702443604336870218656673753370833821409169870477199329560468048500860016156684500742410772001494509305820937233534445988126918967236991058522447970993207137540848233915251511265830343380434506252845859498725781353439620871858510896223944602744272768942803834856740407034951764759253033113798075807807537386130545098036619513316686425382311538958640458115822226665565165666854482521464943579668258798811695852366738684534427272777640478355789905976899985321901227773326804250190357146541056927339675978700031304137986011014572588411674548516981490965352802750452339977536755471321164959189891533155225053797078218238487402991749309269912416687610652198530159631431623306365313643114379373626691466140013218994006126062617177921563206410660007801330392591181554373213783757939039578460255694941918139020336322013120871177028368160685206050320723939378263029343197851686111733455501305200795410614256333831215571173587115333375985945584099405443762741355824831002013657067942665425751434721729575105112599664632855593632048249655112549876575349288629757779907745955498393953858143618482461450580606164851843332072423941452078962213903087215713276214551870161673778842832576679441576941840573447154267519898813172919882829924894228240599839743077955238552480221915969997807321516413324410552404434657363622805942560262102601738671462327696973120143429941110774490956183569516398458274413810900220890650609745678806911306616447992829976887794791228548917391565611442663857895401558264034806160239732719537760172233287571990220419711053300356346588717397516728716408148574366767802843481339515869532045540658418894638533190153935750480013728643115638466124391225759947187173673690794133855473664385263437114704414341037984191109928656747073177222713416544726060850436135018361927626890745293275254309701148642069711628276697177002080061546118735503865122757247015712406948770950371020679967063053027055258373163042440614622134305601807627146484007160277281843096274943687454045896572127025513623899131848468957773475492184952170760454870614117531588093405868467116537810887206587226606417428952969101586143568082559478750618049381684670783790049817236181429791225470008468600026881859764347235316521199471255004452166410260343956981431683699459514653753847376988881715003147683438351643304156010964384945649710174984859275186116589591169228064115520757834320152776448157081917117891032025532464276838075178208158041196524770672930795074676797016593945905506120627699188446393137164972613790171348822284688066256330192024019253589444647022721911430027890946817240318398428397868005639802821082224919210485033606490998791855578967022903570410913526010718892660017426788084293499592368306058704406412008049511677309457936449768282670551228063535915000515314912719230028411692348166182385075133467216817700753377228260999714858145688176886540554192867535526502588031845292634136592562286251426313562590117139229417135260874801189711487200437562718107948024661923878576633185895799179267155306017608742882047655650492348620061550258074071529876981536138508801399401201705682054771284640359394264020290120222124652301559660150656234961062957075770686554168198655009231537837992648741630077185821977159353242368442769824652492718195099753609612725769659160833967061123291843478652584910535937840471750483609288244198313913740071065788906571846658196261122110454838226848225328950050028519040025541762306590892174741354080469723812038730671976211171102595996693511416362849266237751747647798798735077701839106550026323873384687434189423073222095352687742327000209108484144307020093495462424238624086312449818276961527792377550198539834502354968678833334807070900880599480283675740286959395326789223238046385639483709503513632466430054102831737180717918852176433452046938739462727498397327076479683375895741185486786005584096593233356752978531861969852334208479257918774836708779270160920909980909280279142155055567163735792189403118222354861857108976645434324208109738783081465356653164385112672676690267937897006764877163933388503550165906997524194042869079856400619427830265364083733651679802269309363072900039140666313620758602414561039907751114229160042872492632758699113126919751931442912940096677205643591729681251646721694467479585839659720876990878083999671306082851166754972920988464755249266715778265584433574574514439895935128767328169216148575569544251281829766463993848112206357533764190358515859253556808563795077499806870365872866411904551523777185478137354615395641118929488037789240871486039017554432790302751432280769027467467755632957930701880701760910036828487253906263783095334884136456590621017018739609616753983425866341447882277402955102662800075083509300568702789503379217606698613085627369702131326672034496196782817892852678035708175879919247885837481070207067091911242779452881366859038875860455867852130447739810965371907599186347785157817835208265208633986465163634312751045351505546821975068457193735047330124158934447005280675167681539539007532443882840844201616053909019113882216386551280622328985814891184385094553498886472049083213151408756220543385304474294784359935519917267876532530323476705760732453210583820670702620443343364395883073206168135190167749110756626574950621529655764113454528694971091924633527902248380895689044056634419891508709013870526868632433735934737700845185363814512293375942154959513914460356134386228801663701155586099453253737461357886886683137734886723973199652827910501860095179344313904130448148567060030391135091051617869206727593540315189675875422562035527180538284737652576302767935010023157809529646065754953240506932685023116719604841397834597333746850837554146545011728680650139056625356645615190863513044702658600380211123203538828125235926820637405182341604893908291377854685961566892245994625030819025948895813525561188471811460527277883339983775601478818488401187897976642273988621403531291380116992898248815767361142542379547643736460356275330242154557823113707098678577892243402576762652553925843476400940078415938884334211338784814332136602949969951709301098873026188902198405832401679387098346072931040992024574063369161707625863070859713323525270813284216128115519123635878801767521296463412869039963647233648208615494759702980818974601901275286650081894082702281529939726231314961642812085616000908216883781087371331236164107079032896933555555053647596592923315095659028196023492707072855542767992095066620019511220025623114270659145954074047343819089979809347825076189663296325363948648191878426323003340077932880456411714973491253192318169595531324820098061135385848578061092716531945861357704835482283504066751426983120545298098495804779835070355009551871223821142510368712214068795336796571116653543494483936222405932198819116905220445271431626493193769064288861801059283207511413390077401517573893785196298106973529603948793646092286765131500005035033599132277824495813416014166693780037962590636939682106791019542784417524936044493893941340398063175296801544940329120592785477289939233779769939161442000568227412220623754077419632410036596195889082056776944083507296753446270761648286800721235058715527460616690349693531770360951598362005698703849507702570964341238305783344207945731227332139541123901076377883117350180853284573531068325171453673187217797684289842777607287976955237283639409343468345926624873550394084154002300292741050977011906976073347589239558080147545505614030486561339929148277842965651602400219854877700875763841235407967692656241990997969626981241160233689801426374345952282470314591270391680615248221454289472468806316391426472608977585102779586848715729241499088859219729904779166315953511634812087201886928987971440545072787708920941745594364293637665311152843794198591689900948171889722563120808126048680474634168433822812719894579640842666771253388953423290843889127028851802329338185541370450382421215290706014574147892031187186099697710719595879989048930077565912209170225035224893834402707573755666970113133084939631095294759027067960158128542576865841400759522272109834319226306187838026218494670600085688211707878704536659175334161456595671349825367832515747576822960905528564238442071264629502143618061389227514236978939644043997342795618836983283708255419491009321083768453668047078557620117456606857961845318508982361419334964950354260212178716812668650492764782366742556479497433850871001789627233611338430311454059873464723622683869782069584675795136551559666876020369004382164007366438141819440321548767224759265879169642178349091537400419131345522697341678502715781329296135997376285329221735038697135716558739287454435691426007414326645101360875318540479919252907055088701427988394452104239900745213951808492337431068630623334399268971073517807757427926899299663074127323416858948186018958304464077045826702844143583179524266985898706931276907978845908465682417887357516533632747840832938764702912097178078001236744665217574384749420013950397751964566034445860198971853872493970946637405348118677226121206426313466346343212391490208631447984404540570086445167518177357020324615437910513097332071659410401933638269095053989907562170346403133575332322740530920228896478637752857700530299924544455826836578716344185387505154205665769327708560345950589101116071515054662639685993549888633865615080741227619886313362761828455929538202952256417802054225416325514330903009625804449391202087644667099559629409524215195299763303712299031475966918175917710225602308922367917527514762459732432601793002079574491286627493960869006781935790113926409898904830820090045366546601602645371367045856366981099944867567813966239336694362590398627806912756552432032056868736535525179434134394111067717172353758339255749350607346246706092309545136030929507876387463329634105869221754135773530392246394264275073778905188079105762713787085259580745799473860543219733153643869820795515937092130012186175368600051441693649551131349734939677660732662819492326444044580976085541076199743374679461183180016670706196976795829132321866570808425118114625564258050247960466035150810366527979651547536288618321328890441215626224301131672877559796868189597721644277065433956208239911225780931747403215507479027369005198999244994028344647574777376871112735111374468462033924805716207346381450965123423296723063517957049564424318803142727802707795395916668047683408658936153357833066279558282459969810457357932971795126455331143285924123967628775806531978154921078424793292660352337833066057626966888935245818707790410925654949856003738855424632239482238743501024075558859223820380741847331028258083507235989618087147634730471698499655213886836118306782134030245570219201089931701973805442284660040447877122532138478294695068492634874187383766080253666712601324264410312971855359136325754552511443888540563359000431073544412998526947849681621092264878198445716709336117362837530534217406085119704915718967276608282366006498638134444330167403284099341437596037146648377174781949920142899478861521188705249501626178182882515004089459742361465977471587869446976279906392485177051567256000421118605968644615153568546775064789829567838527247644861046278428857192452601159438830979798566323535292137584927909633448481321951632462301728761231847264908711388499520359546667586532426800926318156684792027801523639479732673265949467617731545325305043249695210238801242034980621531095646946226372760030022846111154453830689165601740839707361752034126956533393246085538302047608702393920247058362218718101098848221938193870801960322378742000203489324676863796731568113301450896783500655575060747646924423042286521259655147289222326334620224259990373623348799846702707203799695381706496506115856041326167479206087946651526261143915084658026722700053443124441706122615384093284656044403891222923653968619155451550917784410005177987991690996766517829054721797699086313562072124458082406108273036814965921066533645532828976280025045996961915785689255984037185073466661441138986828791870195578484433565804203666308308400659984488924429928826125849224486907802607902920578667105071846157558244941717559197219941760067527976365350087572026947765854415624264312816843805075360871119292405527215634596777857928817108716525794037094169996808398781008605038343343672257399354343452571952653763684934379219993701982689207750550041871208686300001554635907989130455668096178347349001639571624517657396662402097510996450692830938105559022525288006482887853011822961968881930742446910493623237865839845540983610116231949873248411182975034396767717958793509757922465070956858905669816291847849359320430712147508069768895377080576840218795742320371421396506627422118740653388486402188237241480023075508347810932361195260803445867247498935082698602928899274583401574453360200174210779536034618335699535262701303909086752861652951508697723343235639634975088819503599308027956966893843484477854387873601545462464739103584694698744936805277753795635956392136381035868274500654801598601586762074081761939843332972601473287500316795974675203813746798220000906746497957428823903289738730091176450299543116885147217355662658121031424790667875721645574708433517950946551670969033834767270032941002127819570012127734890272701366861035714307084131428517836344243986376027221115455235944912872089535571132939157224455584956071411524694315241792434092331081161850985972191186174370307613477007769388590021703299488816143688742212942340557869744608864982200672969324259601200459737579951199085333981646589194606973529908363113735510991136505286908215432804753882440137781265139494893544601994310312071021978591016009194666501020725667447100486298090043297333550375906422347799081201867481066030763389923845406595046918503170579846822601432631557966776372163816509586909901367201839213915187430085919935394383060711443258455336950097435660259845388536598565253583808292710298328891718711572745258038161111226791904407616355826668683780757804365973646937243260540126230850053972151730227419519637690367808418081131694284261764028243437691708236798005697112995610691636977820128949746248766119471660043931655395980242941852152333932966803618548245825985588757406081452040438499212158091146637913773026011086916571354458515799012087510204239027448440094749766578775139403388042462186953474485296298849211487475089378397516816140770754770482444775121166204381166851051469712783511462117083448350500442152280222342730376148568331364189107468125479436983834140142006441577340451964764773340702528378169188583658063468967045215244214878110385249335452951268485329312625077854637377415953432167907528070404395903139810744935421540143399012366722427095089373216416837701366784286388183990311848650892490711688145447318934112814768419379403227103429420632579335800165815196540208758136082890791285992399623980898612311143628582937557443859262956115310665294802663266035994994978429377491723305578723015017525585687410105427525763421346128410834540005946905260439355505942938782209591810702358928214472745355646751695785887248983275247066022270296806192355590634599169039798856542431762540579980932969225185596577421415608732381833863179910375837807172623862032201631490979829193366773371157008925570097120446657796457088773263511460368794647527437336693362381816418528710356716453441682130890607947379359764890000170225858029013571797565742539047202115971011008398958528544405206025355414429739563184343791273046529386678717509303180704415052396388802190896085270917019881348208434288300275536536877583974711507097198748045176875708026806057955980535963980697864762703484180398042550232750537620728892127653345300602529341723922511294128650022440126997406151708628835523283697307745105195078364246144908704783256847058650446728516248125653035357441423044171470956299383719880079140229897554940223804221814083426928266210322553722774899980590233366649776418476862234339018660939910945212109546095538097021074680873530158273796924157686860157118210814670336128020101193883382478208818822953933127219241373493220040983696991199208877312953067706007251342451354437900223182081281410100872131577515466459253761436706791467860160714553100502723075377505301842433254020358995764342115236549054203197875200182422266251288148810215107434453662937847267347079817919421595379893036438571359477113638298005202884494157979925861936899067361570309219756024915619742261300816368223060707187805348443796221791654928880096377501762165252844957323880474014397051979093892964168267592134946972664956319535248170419095008807680492338002443200575870045856937459248771429164975407145920934731505523310286906675415141016583752794433221115763538993063048007856547546359845041183675994723029169397871626546393609784000204181214895213896644104858571583417754784532011646251395924066433629870332227688929744786988246183662413226677109690426465920279495616889177713581706950458910945393620024423321115845398232241043091488962129869828630708148699170727424390662402798694178480298974354355979479277094048009949851581953925599487882767614840013893775225887818332536762011086731413979543090055498592907087517596591229991532795504930709438678585666997214751471040103650989632380423604440103118277967360236883088715116907260710607516913807249222206843266417138823890048800302166982906981671988698431538934082174930281693509788666717468483504259442057762338611275545629543049928645690658521667820716942854829758010070373698864543212659531092697811112708135801878511483108542761130342413037379961824695584420045476351398480455938301457487387222152810162652287232531499528102176827807758757883040444861597265797172414513917359789594308342829527601291055521361007944263629691511944362987225002066759687655201088232227134366213161149721928311164234094136235029496582922900201565841032351217884967411322802766750044723211259400771828660018870932761389894748243514321717869367716125488042489886092846412677596151974609941689155053070044921999947330038869411312764686619896177414517207973743109880093013433792074579198287033184856395093686587847953806412940492547752967543460415377096221093347098778294920626683697221511895126258105621254834365510684368348124752618243765860134998304846203168857034567842089353440052723429613746322561875643057296959697059702325828667106712682265753228019711126900055112886191004157989356847036596202266491260256811497928377878360003780543286707165938464219692898643531738504154685896989392733867756100460730823175957485090819680604041460873785238311103152717578679425293774810913438935265996365289962281161479451232965944616530888579499346729867361655185666082104925907785731460912589336592442732158382303714902681458982470544502023340018187108699345974671731420709070035075506156447877520527743728812980244113391161512409457869260125946533849405668524412918228469803904160724537852302431313862262159815541896669791207740886184702922834847359723317667991503834170329139882349902418315908652264605011829563164379155451546297273225365059192545371429450692038173499432979749349023814779822593646383648205078968423567196463334385187241558625863711490762477804014701150492625561448250952174914976068200137908967368310967193471125449180148056019747359755009943146982902328671355734786634667062254892159434586151779917927682006641938363176223755155133247341441904143882611556784530590847506293296621551458733374387347535392287940061781535560443203398847573757451238682017958697443718685198950568670549306809618096335165531372914856864039128339044954683599198672259732137698929255806010717920127075497539194135701535841563796567530593441156792999727904364190982301756384430662814216281091094306757681457251048323465381047535681988955266453192209063125148600757136826227457824285985629917167076339589533865457492182291488957214323960202860181093950626756302042322830183029439276531928811020036669599577034103590797153526654767999610334487449445932420198155033261886076586354588392481725485629934124030783995050259115724375712522827461463259899176260911930245168081480130762469100954760908041043231495541153935292541422936488817659890466452340138419226917668862371954773183176321639816290624002129183094426901211304050822452136359930602806708018452679166898069480978015634428676271903393550633932821662368211159404744591088943133241389996626934166199141205388674635638320877523379552990132843141805075614992607203739220220555515668278057063593415326670130689378682227858296566576703558049038745900521630435204706069306345337913949490686089447310930283106727060102848976978599944339374944789146398558344994372868624301491204834942671652663010779575242573968196862493436554863410782516790370716527746180389363257062571483829654202513582556235130437531456516032008367728526537416360178693607849858795332776789434754284598036359340100137410582656827651152774950082165202730505346625736889539709582487519610898543569821413060178849741385630757640649434875617122942098075090490157624363914945793295112938079942356596996761785671036611507090889500325182251491290446320874700634727367973384061629887584474395616225519850049904336056659963079257602478248495169761547259592827498832108706637837083509684446242052619151542737359573247023637584164910738432090446330051157407344419798530348013547627437007349771545715164102753900018019905530653692865324685595617747498296021703115016438559377997343804433775492738715978887192192096250440582050742741321838988400997876135459667380580853336013846138665825027058461598643039229677705570781591424375677790070716302232541925025722689329080861171904462354282018594135649757598825915001534869615479293885272104565008690578235690832770527548589311116927867527110316837484836955149882548302663869905198257117921773005220274397853203110402130579601165793237277297701639792893861169376592092682171655832620497617228642824357308121606114851419217435257441148495109446729802877847855416851447098031447583859130645943917179746874473558921600025606034451743648930421273060280401360077495825445198429755972196943730040768832010784685883120502831522893222811467845162915887779694144815764565784075586232553812587312863674655279307321566895017872747044500015178565772736474758976848783021219307664592193872228037257531218965547921895471796012236858273017322942232566984105738064116256839875243166694931327516334777330873132760915394811630982032865138954018118943110365794718398124060956117994559566896956079740417877336435092978436746074708160937888633055907952040023862840454817775218955740562661569526229487636052999556461366350053908615450288377246014666729206597969063203679027437529286554317738293958079942110740298189196667553546313731591915938920981960613071836919522755105450989024275028592987431109278156889195457486690822899529139363740241223545219068461166675766290361429138277068152125660534872631572138750662448023266933104165604352737880276542053841069786370481407168776049860387900777156367976515986685786084937653611308178004023285500935603711443355096528891697525285945626859964122559155211710759430871038509187872930829422039884947517477964631334249317148980053170585167467843459218162397800771215685051497840507785230418563940487297415094269174099090691086601394247446936847007718479779966566472120623116970284139681972828032631458753576383428646541245241935821782842940968751457541152370270626465724952521462147766786541851984528901642528174906499370197414629737832652672656460265767046633219946871547564943018432170608047733500082794263287690435560582905213461930192881540847155343431326207822650648669238562192418405573304165136798807056757283785325800144734862173421818834104694894500254471024418472158297643140697168862589347682529973363589779162838782995756766507160269512460788202696032000593956264351685621015930752956082260042033911421514318823192373126951210539458633457926796459554520647178219032642502704139740152704728399968481540628622205098286821607651443748190859612495546808204441548444025262770859993887473959700165297348539631067550566783650516096270550837048878140568451707633268110017921239113748936200492954735799413958604074668209385990935787762024293569130559128550717032726530402131105216956988063158977771217158837336187078282532880833281774245130101059197771581092529608717210508264446038516950986815181959069875072603847145156001764968190519292939429295936214911042981202107300795642220475711879145677729082535712733742312872989331618404853148743330592252954812070947332342864508706876672091787767766857867063057415126757402693819559227254118653239559721665338790669535886018832864988361178393062780693730510894627295181782102858460558438051042088954100447333747987444125408407820137392975068219496621161178758169946351442773295615057036974858671777028459017690505460558003222347473477536908451742638971521141365456689595727503307406509354188673654420296856588269685427399110916175700993004915973271583901257993511330189412081959874496876246662619465746820993507174685656956269339528866840543260480244012316859625493147212378751345805914538003555919313970524376797680844778599478389793737680168654560611714615582560723871642344488443014783878866113778783577638464363644451959481899381528735786209885374855800383145178736249113102438332866478218168526815424847409715257745013187690272760153511286349320779871094597740501689511296780089841422106756968575351626127483967353035413135548486192122897721976060307050401708955996608207740831787700034391437837590211296305473395721253127265751645274924433088969046755914879006629496311222539537839342107350371263068084626990031795913546022500166802118409891925811966584845768412237494546267337313644202178282190351102020106742003276994542976771751061715251235571701686719522930656558635523420794592531218797481889981252403588070329258724556924013751984000183442525286322405742017031906488316984018954064379889600897091892838727896970624831485900870768191346855367029004124222621356249742584013699987637968452171910053438200660097218681898602210067438466128609786963636458953059623034823289612845412954938081034247755117795921984408324107692205056877511610375530811266997546032913966316774441788959679812969735960629588783329997830701303162419091294595407326204650976717836557791816526916133425413167568954577393900792624170530239014248464078381319240292996000975649578290120845623586618124467255073010839468921056309973830911508154997799678958279383481874782857336176758519427528099423773663655962674755812780014852967169838572537481368341451334319620402627772996192780470145517671090348646218081722103818903744899051478104749997349537586409218618114326367320984836766667928091994310376651720358891376313873324904414233999333902132857975570631646993662783833594995980599738874228673860552134337139279988233186608296094930132359014704471556234378573278335696695156542528598157964810202264076186596750833791395419888323032947028732341946250170205926932783142927253228380958677091357462172153548485639804634091104254223526569323136467647522103376230991937319686699388346819149334127774339858029624010761427579822970712397779841255360122771699701154143902275615819429211428860383095347426991076342723041480437616372078169597958546943178507739920101996995132181405486849721966028778532265858829417566799482398404859714127049622013640822235434430844294130408319581622765156339579326108353715468014568741648699873619352769455830642923985488240274545111541845335449703312675343996986583782299306015231310809827310924084220666396933952547165979127953733429855446030692149153318368482432242859877737554820636368896367014318396769057354202018520273814188047536855997210550488623291666502324981411377506347304720612677588078653522320564791742576671367175235972198617472300209687315681316507121102637010741450580807350631458659901946927727116288490409882297231930178945379128375216132189367996149197483034120438881590288117728932569259629886908169231523834504382440464548680965477810735674424091121717028751371819627330571667347068232914673312390935281641195217047313479262598181401960051291852455056717924177235483778330842470712639204601445622015286085037408271729473910922614903445491412622128307322061684854237294911996352736842130355345125649617596746558020994690955172423356346604545114031619499122043568751659291066211403048665771060852117670904293418342159821182521526964830890000034426607978824721998632336519197936271724883478826384728018016558778548106688959229352664816282725301511083378945709785902210850237658861843406765414240314163691803358255250838118193464429627117981806873073661859941189674282178984033686765922039952565946735701920143802719275652175803023732023297346514866023753035032224664043525858871020398204322147550560714616228625093056789247790532024152469036258768911573363617142190461495108044431209409891791721554037350652850595005737059158925654815781526069131597542506987568331313727382392114722380207904584661125362118350325296363224127533645442255913527031528511013799021256983321031455951377945807953447707512803598990941295954316298064222139832127558042250444624581504408889582683415263260370453501610879282562762689984047274400872626067998709423906192172409105846251695403699080156903215871793213359682947724787072447386951614680459478626210586515512027128837501067354628751928607706303888362773929597718736426122222945594581343711676473599053848452611974674250105825701271436459538478703261363816994445240825426949169825590738623372619504847536509486023728947494295588783349906894271160915109047826003253465652845637031167222785175158164105303239964648734324032870442279645730922979030818666957666157884075684064591551801278657725904798637166085007860388111081145400778630959774177639577114942633854530577706624890868579720357265986103847022176470372603198419697977398279972898262946397191808292091891365562513915585201341672818356908610292597668025976507257179790450973738744445047434722446437303715577310591782280155471192574913771401870241500127447367323765300488537930886785816940300518539223268060337042943211868105776273237371106137383096348829262819935511761872271838122141323070128334111518692522920058378577042841544740132640042479423495659879264578659118538156383475048995824419151458441807615026423641042933902959435307056436592771675436685522613231984678286566034244044783907975512044535592936508675153329787125986977530181168667379573383086900708832492391691969389229955369916668667613499418750432431771494066738782908351427300076407119602335753074221994088122878287667123980027204463089525385202284024338404579256621603827916975969361878242616954186815244603308905673486277652800311910824146770646304143449404581005700943012444479384298661252375400705539547566727377097207684488755723367375414204702084137377914746433933770160186864331019220091388103574070128517956991793957371475910259304817508075079165492171714470619671349271016253339479156023202511181828428251193403135268645367375835648233926601050171106028810805323640430600773474920572062821517812359143279413868647401154516609695950972160996788227215406586895375222676873445794740791178841423851629534998229926090175651664175717631482261116686726392650353154752280852000140587057370531809407915579351545161822934031840777131599983512583614893222126213897166313535567094458856222789028224877900622500797205583720868979353426252685451870844089452537587043568473201643402491202701700445823794283466930537445608479332396651494785844136056199513298989643548761580914429601416482581975060861937957772786103369917966350088621384333286552368348532918134533075230152436352733215397194025544580264268360563137064200274599085729083630041949249867489418741443897442697315787776500691167050021454868311773126541032216023680824721253844892556440726517493681437159243342842448583028722481015677839407114277007498596889562027927775357221567008771067337203803121063661971275580667983514575151537301533887712960608067529145156771504232288844691782376376687244116218119921319432482217263317386168801530686563573308477719485084572906180842598696791855302400821723237911329079395112716084119180521674097273898881027432786859271622660829590666315784813761041203940523342924838252145263796499645329010228304518479936921338597658094221503875438234448466614984926828872619219485979964114119785071910473430572861878138209419832106013599447832659452306550992463252083074128771610848969192505006411555075087637464166387224839413931839248330122746605584386693819172235341969426773566454328797336159458588047784478414917442986528839991476622053894694258309812824932660142718444340830271338001184305922910919706187212771563047719043724842784805848687218315794645955026806038408496727975333033068131813820955072498795183163748858134724792050291605588569497504978725329510498079012602802633558461591052043954592652418737751034122874587337088024181123058909633118172642859364319517923412708724649162463926114453454630758140087772941659459385045115218439191540060348382203373518254877443750949436844998118494666712734558834327477506151317290881886836557617440349228572302457105747862207960754647989036128530107851120583214524791804757333719448165203687343536830229343133812916158008716230217194676334369451607276407679701431586589746645273801119957879931124372207343866100480697315561959174104749303015538301948988511025678672836107147211222136139663401675283752696958838720335054614370642451287881598087052286533839738732272951051272571911070010654151492802462008970586638430981151524248034969547190179054534004540197751892395893014090483293923650850369090785052339976122155840815022226895451210664805115775610210088680419510855604690809941670148799068479172089135300121237525811806829773326408459684627636660696789959348247210135818572749477872268683531464574975378740850160720451884536708214196954731926024101018887986472624374562658429193170650644425878236787441938840949087810415109791214348110515093109019897316761618915401002911057684995387626112225937737229489512809125336664370764753822148506551051392387766665593829504608267484653975200767656777263791738784484865260293176417691655240903972925598624729751950334241720960610751102497426226496249720363564368930612827615600817799174416229022503089787411754253622697841988667964824783571865554874037726337374501114228968933588976144427306896040944899662518312177029036309410439885458070887743705512197643671810252152772027420364856671412505491162437333789251907944277320006771336994353213548882318313209332470638209040794743574179675345459452082387836847348430616976861919163747233861474572426133723538218899834655632860063950164937558724216514089682586065756816072114907189216417297203896739062711456147165469397032012646255761435909914216624552318438720057247575524685457704936525503464986734708733123046648727764944460211487892621583707416830045095107241725255879426249891378675536007844639931861753251026743270252731215738503318967324602097037831732369648205748997067586037357327276297004288176084165084929905519475802836698823480093865879913770045307083272801495906494015415933095158496761599594983318466895927780970731862905715176833104594430350047057264362606825074678630453069302088641292729880855812743333864715631450855410796164894708714881304310238715226759901680199932208338496129651902250656563645316288415132807626763089462275895355489526384544091455802958680469426580631734965463324698861137153668731616134037713808538910741131213226718888308226712185256052504948290340645384108202587968186136089669581870089119490275878798410599556815427457802826747180719996536346513118810816248487716899268799434742403305334262193826320761844880790693286457758656584717138117682465904197484873490326953832584576910140586619420225311586266759200425902436264041401081927392135475467534962073628845401137447168978519910043084994509211254700359980647027749969944757149864080854014273766752010834491229054551823784860749006003638103424694834971788125630008601595973722922892515773391976846148034090580910784064308070151283175879132281790248230193057717500959936832437873800925088478868772045880790636371557519316142870924143766347264233897317490012840411457096781708712712010352044059640494813667028578924741159091422211703695065986483300065444539176133647075835867356017759375256213700600093133009455041469940663918929599028874416857347748197022075780955503385304270441000004643972124972940067928555871243753583412429505519964884731238171453902583899226645091565351406108618563154210162808206622329799464840195728072179117081126674811540943460978371098177919354932153820696765156734873386355637567572402463524042930046416757859822347973075252681614381758112687380485382845005470563319209122712282867513610282673265369941978392698422202462126098231641441973052215804567393622975439746236433617577078538853956542806583333215730886423076174570090294063452435114037962234900105382811577353527778572899062107389861303107696345731509383970902255312843295576173492564221672735200689125255100838854742438798414349678881810825713835005768940988711945705866010083192048021659850464912343502894668633182901801565371016114970571374978039336737591408636793927941978420685492429174613518556850483589045742515113080746216312139059041773914345563232493204105898591565523271274509996641853800079827491251398436971408660988425295106604469414129927284772804989997248675090212926759733746734759023133379761534893605704161172286095549500359866324517980207065318789057989045564681291807711566273439301667411657017793097534282970833299554947233282589083140331217150363171816385738670888242434369055201292481876447785831477994746731053301439536674100998279226257535977369569424923130354142315855902063344947547356334104418701972099712027526135728047735184627097747976120939208564197317539833788058332947514060773102103447415734186148929301206258437860116407675812432521215875088261678819633650388535936290383683046552139565094908720196731824994085202951374016958894693151771440243367552114000102818029986203538252783467378743706740968849755793511128146091034718890200067537688327046447720077568066706310861712946462731393610916788960390010364966370357415345805493199513908500911540660220280817105086671518819520972658026637206677764614034175724886507633965337035956734577099862829405619642896336966794921206033102010758095885983830914930633171240544506940977315475756756076120815396652897126691019373722245483435028352573942700868527802288289462300958600541908237376252453382959966223881648851611234045437683377942209069539321778803131514209205857263980946246695174129612387886270682758598622552290223838218109051456762778580319231236388250134565934450021095776207438156342177315628939222494412909087996389022783664909753867715112544762400352516370111869550250333207007349560837146815655791991000076464077921533419907727438869788484240938036992258706686844385714609064860198663498321545497825906257215715711440379356737247779178964522273696326079841644983726432417756187469009578579214157462138760270743718375337674859546402691402391679252261483924328120022194808140685882387107027145525497043943612353398384905542464468106110089896218948732789007745783370109287118283459069734510595647205887043540703417749660035744549112467107931658327827904229960319124317150529337626020184877369739281716710940868071684499325904093986537166895092696963760678202960127568784869303481601908715489580069996416129061640198052002320604786027848456389404741680135889454206961109015598347216193547107738288100047484031471783859056428611936827429987651199759901204248296923504037898475938669661541124704181163153112799224281194241220406930623654128389169104642088273194940669632976086675201982283984983840551805182015343724108433299165444693450197070773056958413389342089283354165937457627530861495629271276569438400935297415580584102080561734955940848549428908875580596343617160542559943203284980327388308687817087789817565107743349981480385471291605927071085269369935859576569208766158047372425757495303485507430238077198525996889866359143721275859731741809866176576361916850160118032071314151991844069603588841221490121309559980244272811270197476884094003041540691127103405273951781108967972714278432964416746874681711186229555343289593171793953541017701870425563199161078402061748825309686471861662431334268029597509054444345273871474036158018760451656251457373259163339186632458554280272704238586676699471112621067466483430840147173760862360357286551153045684293469601146432217232779174981592636532867119864525576109279378279530314234792053560908223820782837337861180357354502154359577762854710701998101746428415253000673825430190351702502435778631789255860162475201366838319401089935555204427241945750485924252265216771902411213602422717693215290517915639616991898253861852403663846513723939304806929074929242710819990157008048832727458026811159959258957189490440157406908533393063022276835990402314946236963557775398296098715429676416785749203459454500580874683759371661459511631825714458731084485245691321579290148111885019289201112953597569744051220513726348368302569504850018211615665053707116134861055009938749691399675023980734461574953273807536310905898256075102945826072739994404741276855177843082403263949538633604956739159936034344355229349388209390591682069827764527660019722048855683128468348920649562534309965777950637283069619725510988225395174151300546555270363531518588385548205514251344608475140158362906605306488613801805299651810307715774483040673753431098092055735134109763808200464600506329660318304749944204643549540572856717757732440382645527781125272287978519839064823278639152061831254812929207623991000506785551951226872158809721255495052626973592441950962751702659782510947921301329489973100274122464905500944190450866428980955278365218741622319667110330644673493912614011575393032017294265514356288608549983588102709019254531628761882360669562236765983687854912741934999851522391353605827948115419543972365752992132584776585016107269952008314702964346670874552754350284657551970632973132403558906927689319684312593299901646404806028739983710281079533321488142072738536621598656663777666892656209304303142789813546832569725968166641718888945937593254175127132694492274196344463696341471644515315049405859317327331595610603435659812843772706726684355820781446194094682031066526042538447444208832924189236204421474633870183034442802176475256034039772585423763215762342222762747250369068082276952178507227199435341968431966697267027913919191302414506041688720420889870074827816280183584393603150413288472435149084436657229754703732448762878305729855045717330105759230832245873926655111622127402923822341923505012329038014003168665993286934991240832499370861689485013007399678500874751892391515870849016169477974108525150659820100666161792536487504103085429707125988390440067689978099024581418590279522621658402972325037860301921230018526143505096017117235789030687636420151069805341961194529486206635336020270419198634038533847605730016397641568056127144242643218454258843764037908782410595121287964043681110458791817522789325994388876895400189463742884156438103319631616651843369586930220901609779526531428006638770525161258556192460779555816351353587650012658847928967962400629984281675265081448027307111296730186368088415610597248431792945212968990397243544351199097067474020546828430069172823458504052556434571392575754020675339451585476417847158172950982080653065408996867934521388889338514436028971788114753204639962173524505053068362229151971178711350452700575780594982845110668513272474712656760591831474896614943385781093592821220471003328700674527731802179880939490627178790649226955495774273493832898876758393521981292767693214724475810484470486926310892671692884411304761344825280724300875999196003597124639331986895874242142469275229534888472713550613831052127626152004364580198921287573317783284761601513215317156259944067677444117297103248547574985321589151783850206830887046332982585410003376564243657195918429738429674623302477875944097693524293786676889596752340172548473430431047745645243425839777486698473968191643883972372197289432896403663650367401341948215636405664819336427837715569244879663361606039101351383180162942714058358550186758366424886941819490014418507038790616925544432682065596869137950303101630191179902943378023029305797922998689642889124507466984303377032643610257553917298811412165376196984428685371385896242162082725083021844816953918753952991132023576668550777170755228450616176429468166061383118054436022315716440618537529509649105627181044635126912025737802167367010185626124503080543391591895751247264245130572791792139904673365366481415650214638385111260995519268208218045610521738311485668677488049719506347839407244356864698479660866042147945065103292345155811085390080839243788417581198689705610849461611290455261760867283544533951217739222920075333988961161162704237660617650989328331167580303568188798465807853373991131032517893030113674896511594769962104264713657584161886152447068358756170431668557271785259385362837960972833757373448362633155823210811383642610004774757281343242280618333635521301586798904025616359210492285265282332500391013952500085169636605031295098350465241580841159890491756502270646680140787540692222742193434528771519567596604689116824879375373310575196530589988258343522820116835754320850984756415960954340532592332860159879132976753354747196340128323346164408585895176330858920179047510615222783583932653783356987623520096239769870075662536365042986468342944080985196951990293759447435559454985845766383029896671510479604510818501505106662602147811718359703195707294661887617658750279125201110743578088027883911017928626890302418889622137781648003668343784646722114891305387352903935816155613473187745964111125437425813527569656582431442754365371401574031109714033411386513211274898345297532305284755650363537624688022206545072596251142423136831170391008743513382736908902479297416990408313476074495815952168415964180531668428396594184008488548940402903293667592652658292939398166395568064190891361509100610165112860279836756696312654682599433251473707662329588256468487595653408996257738857269129360195099480629285700571647285084036000270126003790543060917238095929513554680163836516782234096079890341765487348364206010238798486905304477388555337496063603809527856264481319156077186430005246044851127284879145980171558737589965667027414125001486429150122921817042144368719914570410000110924219546349227990324067080933851846402842992095955817836975651186902523977575640709239163066678705368857995743095435621134621461548098116628882354835508192186394956636040193581451842348254936317380753231404156339453820752119611527028214101089653178707690088551247004189279841228842854858735754901568457050408832749683192439230414110377370429750850545851550993418139247793494779708170784780923995268843810863998712729447728429777218265423856575755007145177826347465397193965020870236621011929696595403797232932984191563904354138460427411933413018332325159170728351998923505182271950440593141981714363012613755340375799530354542598927904086205812306387557742867840018006757636758059680476952494792377962675675621499585993523615712433895082469474788922849797743427348988748334278422991243798049340302345863589290284195080676051029172128848852299415069538825412539427608141713363927253288034476891566392957523038609163504611548879816127737319280744896151445884147879417712396467570647742209475334271013360398727884519972240589907646287352366626155409900196865468432789886724781094329935895062041635790970300446725301038098026918669054282521973532800508350515363604347745849455089221981876405369629211535829837720553146728398156712432696801423765469494305818857631876983423646571866250655182048221453948884818969518540480317891253530603424765134779515306947961076861596420403277537802402431809850977395230858544403441145065082812856532167313302115337194659209141353021597879905402738800426702339021808242070227156944764071000866020592317039604594990679780232041243010642155760157139184490601329789235140270449699206687361341582513831811684607444254570958258709645943061140412753964281975939100384309987779940692753784955826704599227069691053691429018539948990609236108137220694211147475088675024922265163828431754852460314471737277204593324139928710195843830933711045729260116427521601432099537966373442562014263567470162479506015648843811130963592577281047817997918490082168404088910488439146402627051219680058240949431293339490436790106952941363620553262034712182471329809551716813595331773394351089845181979220426028860644024595649613031096320425631046567925615577356712609914072064128433380385470096408460738227424049327832659505561405357151307725561902576430607112216263484432576765754534177349053506590863051638217814820198836184375700297055950830145063491681979375237539185138526388285472492866693170902698130998206036970607138771590413868023360150095339281830520430457425807716883281830547597818039296414282336807702141578718954259685109637676254130693181194189661726737425927236007142096880438938049172665817479627872941634250494115170977657464298443853523156945571629392408323334110063664465225333691772191347978194602803020551140944081526050488548224587782070297168105255158378310606446501528998108566036139100618392983974548480732926736083948950930208943006557077122560215259304334416425497255987417121397514539409414478267207267471233184887677938581135144967266012326184115369110701882729586876033991932517756409244427209384858613430859773663917882051890436244868406114948336661174143068943843967391460083556635162098181004908679584155215740392284589140669134940625372598704573265760165933442478616330715701920282869445272108244164731172365912103944452542673583937227382390324669700883029381470499247513513748171246467347659273664233653297932340138303766488180992547774998906219211687815462820488073146608772696706642840162792649647237745608515577553411890522667416657371228187271716517444144872491028471060080615517589381239329055770403610566003949639019441502604527001157624596921462707682151729145059598547062352168418662134803336340923999817031761009110773664200465325682445878926563986297049069512935729543849561192898358404135623451051936841564471056540241704356189578687239950492061882835105767023861507345212583449713564363355950481107075042283695046972295405255104722398048312952716831139257307219768203858614428370261983662811819651031908771748923767204853802400413370985937716115038569920184920887436381743550312631373119489957607057380080298558052341384879687636457988090287864724075555133535090570402853499798500738963533027337592525201900792627487384440921662887494939852692609551160422921488346548291832662037037300465563317863143444639871817194382516491310185978201276969850255644223068914777858663926625486359812674491736836806851560243659056283666988437612491849871544471963491371352250847224194809537462540702896337800428760949557491047425502374135566589747154581123779289397967389663669255813176709856689638923540410127981420609404160893741811189056642745464222402570231712868881858093176363487759987022628004324488532214841317395734305156224607234223707859329295488331612145030295367593466242105699228902237918672758217567503569275341797164472157487086959731039013818737749759013964604174140625735483592316261261921466912994336890197889326908477605791729127564484366900122222800204779099536300669528210999711046154465970293857349159654887576726232440222842282274600483921332808805335775222179146889356112882491932607600045956720213775036970496700445330734537125547319883932700317633311669615800203700080753588106663068952231586820395013985905214056841559641883560661549459496010222977935056698937474728458990892653727021006633125394490390921038978634854880299693725851864841451869908130507322639500490421662584902992096208111963978013407260619994275243171087586833945412395632816734197991538763483530388570158025040712770254920466021377628011319874170897513892645509025949100781503411388255572018996949346269080898709139969541343609340773221648635380068341059016634143657438571411050043864246044838286178169307157596533165983708405533294893097625174861225293031091008019997124452784909606570932050174396792509308758074239642548335621513303482319522466252039645370550579055047601814063899103894139298662902231667452019318128651961954930877175537287245086423022292309847846396522692275337619445249696001791703510319534928473403433609750006533092558982013192428361104188130829837335004251217366674796320025162836942609997743078135037370703187073507962912960151758467990593356811283094621050390495695279917262370471208627611848679672235339149587569258237094225652671968367802068875231019551629171237472328966791239760494347642696206321870181683963627764473622591178351003254182928322850878166898299747673414388874562253689483146450968443677923824203111919038148400942735906751247919880265087699243282590816460812374146732010604871215778266783265110094091138284331853579619430354428786787926112747080425035352319511773803715972732235901908340162969260923937870099872231666516988655330756957339568391713010768959302905733684123812581867133141896752728547370884123505204992952763482213198342873053104601022919482049754366644220935907796678553204706991978831934745186540852043622367569477050129121824991846991671756681677294169185791206928747048892559730849603857815685705940595576100329079278518765185906723996343496467492029157857413480569820618141181911166853445193506260843021782469253780229131504718087585939089133411644435238408717360633572616377685205879191350285565859070470072204715674448557043228223147189016627302992481790855226333099583357547970687257003579438930165340297301641216464524594900539524457566052727626718614751262047082145015937476544036153939592177318398120375074744958351368453304299391047416137270099929757863941885054302915257346564075813659527197013857161511447854260241711336632356201384552962516121806356072366995393487785802967242282192930340803550079440664791845575411220030790115824686626896535475051042327911498122263203861455247803812791661872926675994010691959460917115723122213884044417935137225874721165374831942178945623305094798702499126877096102904193028463005151250197461338217961745333385089603975499914459128135740492876822447780883747803219766315990475469761729266815006270757251409709502058698084843980880546969283888227421619449503248104463402315028088688593473723245035740363365451270410572811724375436305600493498699466972004204105432742931584240880843724772908928350159488363003457793163662330870992766948641727839288261889358476839835356064016851179962791265287874836045615751711874989844291514787820870525596371075014293367984731362026301396107656216914662694960481972099863742144279415301626503808828969075283736142508817437566957050145021644229337304022357621256056025822958269338654839096882232834999955239066552913986185633868192235004474346609650855789222038593860889905401615697915720659800062314508402286845132321977784888957320604598532048872781887218255937947397271345716857764050956687277839092516390549359405150927563671289493928036649239768115545115584339061656831561142948722416025265148219062859242290307718022637954608999853638834259023681388978547150306155906713777599616851484378073251508896646175569883935980328752354198299216075178894148005383390316795420620985292780684825013445774975870019407507554558331929253896603568748080555234124066437985481378063615832753034051231322700605396217473803630131826520664030955350028574748839807629306132058181100519625533045859946754050211774452793721370178471333597171739408591533369068770578371659167661151813787372563420254863397784709068104314459671796488579957299012737836722363876485332072767232159691068558013244620450813946949751140096174532260579791233700951645926839561237037025106026173406249162560256238567043764715719374947172307263727937444717984286048872460215026569423152427135386820245932272435929238450897561250835085268477010636382129932969840557096887564419618202623151888011433326582250808152158902119062235792194668188937619217913388626279740898831699267817317528607205263451802957776313404792329872380400021446219096802211418074075318407877170189955342956414658594974306876591942929929865333600215684529109006381205018108264450123781862592740025016617745770500750223813334118359863244463157171645357289334019865861060125415112482018616043068253430955887016718645570787323574257871770950612204432547063151637489336575146133391458374632091237315283927765611091471139948412213596115137612709444652099322907163531382619461463608287708752852381604819804838314669654736179316264646483787490006208456523407598813118439104968283057574206190738713996590227790030144236018925675290460838500927733735697395969228722160894704804583608106035725000281200673456791197736445505974785526791094327623428150489970022031247933916636232074705664221656827893182450044381451592103987852245393746057274332870394744602497904639654293585176722080659875382062008953349666719837822899760487561873641425023379469660409077800677716380333214289103806346076502797656751887509595666490633853996050388555974858426372497660174389666818955986866154118358537494011645038621007137457139482040678791066106295865772190460449778138105355817524387951118760233883106828861741643112350905932108124620210160198843140179317311200623737805035053316935937010322842734481002915424792343238452964833648285971858329672870517957790434736314534736781808206032964244482699263834052453675295119038350642297580961497366066705399499754509194579076705648596408514282987716002678756440378973819092262596709935112163899419739217325155477748472400785920935347593635467591218607761707842409727658715788359529731038517503838182865362767682863907583486724934207382607350742551477881283090263709853370548817938262309560801280214620868153018212977797368820971933772403809912072083149416707634938039534828753228739547498667805607024784506882056025084287727352484363477010350625754919170679079148689528512596956760062723977488931765767251689052609945732406663315263343744607844192503012860576232611775116664912261710088426457427906192963832461300254075392082311982849329289072064955072387446412778717231627963232253191366412047387905322033072338893056430214728905676790727237064863068801751747371869427586701225497387774726219943299065988359179775354528521753362635752045671100129772556538536808526524088615646171409153870746934697873421880378964615193109364600390078709667965400649523999973635526876105822097392058702609653218886943302406880006065092039219425891214966438118216970020839161450413753805498699545038621088419347051549556509126060083620242563024649081647282330456786050898328939136257536176129435804992836453697590053421483077086682738023685912295716985746788135584919906244277056000372090988670540965938565495936547825134024358056289146421550148156637175487617744378684166617363944219929929087236336184214918065627480027163882846531518843545027759828605430821751552120037661913204558699753400187355512443499264894795326865931874480980504536459205472945327969139130135858657551201668900683155843076910877159927073471606708339514361077339005406934625249710266144460832413251363684272762728806822265573277218781201739533631801309173082123018938988873803471255451097296200619470945445596266090748294664813085501813486661032995223757269264294373032815771113741312557763667018855560803624357021087998707365580949335375234576389982944269145259565492201036221417532599309010320351597566530736056379199040911418362194027737198615014549574670348831998288651027789562247226558272631662478887971897935666472572356852097483391252103673672349362084728635666897181880763746536591294759973469459907910552239662330603545160381856079378244883186667498691176917506781991510341069006154014127817570746623457391034948879811112146557828875740367604012383582517362340417737332339267192786178524498559587046655772714936004582818968351518625405904838596403439569421875739208557284847759221904556092903360260708277285208947320030294642422779255177787264406193640764687399843658519622053686064935168699432696307870000712862202901303668589622927455150329509379180041655677877224315563304210729918498208676662097085475194019475328144667613290007247694897390827800538593829233126945750363618147461292160672642639092615278128915446856151705490102322809658662045186190014322521441990879649149196702976974267326178576901292305655222679986107467644436515674544205486373812883727950159925806818327760800222936670263923939238500536491790834373970716213431455699996689089227842972861978161181989832705175891466582610833680258157162105220229147236832338306575182402738348056836528047773305636535990541772703396435785247141183390024868119499395748080779586650804231225109416740462432407784758187928673371694122383661691072937040044207799603311142418529430825820075190543341900349458501691397772427353126752686619889975338575634371295210815689622828343985252616896917114748245583416734248864176460004543375600663222125543267854750093263273235196799365665458326300803612185127798467873962038324026090849475515960276963590586395641711905301085631199689974654979287532149514124350908046894004271995490949996204729641690518078781133413417656625545271378938546785234824791850784122566229042935819512709639312066574518077655363019182383016423966136078862199389204840250416186267347398524249496972948484499117048593085992564205703034248003425514383703365321564546560545030467114494993035678998789394113542920772765549572230493352340368362812879749930321772154329999077279494525937393757540629687170972444992462405457818954537842089958974090427571187755847218132635401442648965626513582521651287027573483115283732722059940777582842261578824584337986156343176308123180360650574223140091119797830250021652988255653557261122258235692114659281189643629001742696676457887375575439286725799700088682278498658364080954571359940132906884730846816804245268016091091241378270738623216391178432171000131280672900594454848634799373150897818345328796912341397853340305828358801369508800900689348642809552705053976714487799770161287574041509237982782874343685719076939680233527567228632801520382053004095372932564583555127845290835391931458889014047501853078009009483422149846555049135981089234750946414118984119548233975783176387416419114230994127296666674783700534342407832652764638416915790314303779478676327234273951361501388510568195931663772008832322750069225521864198096015951874924513615625232391284839054524226641405798660974828639554313465321453380396491096337226341366793359874450665146963552145411575282053619946333185465027362513292611068279386929969014509837235350524807542851778574486123169395058734169173257611306973847867627158737676000045043742604117506748578387189299360315822335760668406396647835324898807849806496796223249380424495925362595392799229175075963233434931359034068336134070255422250068871285439786046281136210552029668442512223142445587657739933003937046484533184997304216253491700528056003099057355995770511641558273644869614539004717816527537089251822019444315962523790637363727944851546519350870857473803278647953832533032814039343025158636025590664426892565275321166319780520078908640294820490877703401954679637942147077330104444738127181527009696559959600066581503190620014923598617179036275700740848891641043946351562414477464624136560500607398981030733901230976702316486187379602241710021098509542795563121693494978874544988318297048591142889623608700010709318490051620066760447306271973691040155957280530515818052739175888511576601229296196551685456170173532676053295883500311523550933751494086587012880161653527772134049615464661153488358777280470984796707303860478591651470884121003795442834352456444569394837313783513998759125370059582711692788180507401253492995444593299752639793623293518655936282996251015580999576341425697935491246450372598312769529162643792720635336437531347318251811726797720507007552967937779186931113139768735077430697465680950526458971884312744405665662765327761623995652100423508871812962099294884038078005727435459931728009728598809666873040696137129010259941304653069470330321851199760326012658870732696003010919644374743407737873446493273857716040533124985490274181463816393478037321028053641718306527962253741386549524054066384384320605152304275304330810220492376066845201378033605285372019115866985459221743796247624144770300570962293443465656948092404277746278533402475911919458505062202396738455003104431852098448579383707022258363921934101995165255020900383662527894734812179566339060784575618509451405016440271306336871419534371154179370654643435990578596951707591042677232364673613712158157080049158086776039250367711188756248391120455241883689214899228573445907675237448309347740100212546830141777566342428701557973726524019082886267729888452932059662096110755241898792989019688810682574592113757940886556360520909826221219266298715408920765090343107516402760317931709847806528455201175157295733139881065452939617574113754818033878108907405962142702323148059220041465415142030402072105874699181527998420057875468821648415110022059594366870052828562077387873445080182953837017407417613193770632116511876708932057051072085889956648067647801427174227879048097379559744662133892892381372726653857234768431478015866152478820716977509200345982283263332701913440226659134391184933869602453201302368475060056304528349573222155008948931554148376606536978961983628573275134027065015867610937682619870856834130787113212162478913150437721235286851789957949800343066765615427646874761645203429002035421708702398899485990679495632554579329982386570542445717251948641285461399847335873626714175599448153741407198005815277378723597133939582635294959068830363337490137809460825234003505315473829983352712876943869613132598105401290103646774521656032991632721792503849571388191389054073466230271788851143995629560176580656714024306200488292161062096693905924642558766379618812485911632494033249064743663227889326760101857545851920630861279802697072785522651097589062264848878219595132749498858253459718542609742126000967831018101992834049402595097039504872084445625108000257990536442946442905221405728561416978647153474358791585270669610531907014545870773346731417706105920121988968262332702336859239438864676725137151155728990424768953701275978627683456073889489462397938099004551499720014505816528942732709098858732214352874982442637768326174328790394383530594657839223815498232339053643183991245472506658518010301090784022671948018184764272723217235639214900032106954850466596452527808135593792738287383041018513451315696407881676442166565097715685943665413070057391768495101821873040746933752139810716233522852208823049263733830563585341522810752414394457919215907747577249647462629082324487913433743503064868034194176938225248466274492030940185744508047580318156812823166649354835761699736948089098903520157445930012749784136121655651311688662538572846831595436152394597144261184802360089168903823146418452492705017479730704649579840802586307011179071700689939409328953667997213316174322074904827649784208981175163512691420905249211654466634562695000553067591789427739434565186230057631589268991425798572829573117085108994544299496727265869366465303789385289015015969489529476849555266220919122370240752123961926825936314491465969759561539649591359765104588170129191815478433339320697934667070285509392991214913483801537994758326192039116625257336536865695572133336571171970452583729847116853322396925064772646939010835150807728750307358920699163451250522357498233279073312179173181561264976431643689913812053509513241908628494285950682462518756807722950767153418924940205813045820924927990009169172814514339668442930200916205825929190846539876831753305829259361701379558314158242243827231758185667542438034906558304669350225233175999074351453360641459164252823144448625135648025697189532895484755310902953064509993976536225459702722429282970854379076028283736094409960965675226330930940383163979809368951387948919171224694788384057708855944186130154738934322293349799203615789461126311164881260805989399770896094045128388813805991085647846752270655722709177461093139854378170282510890942248449223439871224821950511142825433932492401399575777011159956332369254495425746231128299534771996873525115555524600600998077332449720001199054387433435222523516857101794583021410650079120720000786274475370629197743083673718879316864693466111287083934949102780242609424385029460793152590748619126058366122252093963375107449060893474024348509659456236776969515841051555774181120747720642917183461915988129009000038144137718080747841777609646441143471941054086431817271736049748130219101780463093000218337602292953808418735122969055150303429463352892768944742083199905904080849003572997063152975477121478327181313305978334745260589343008235641289363229232350768335041117093236263282483891405620666592640007598716516893872611584459769215954642617320846618139846681419312845596132888468851591673895965022333309132370075238250690021820124888865803349632136374935349213622745964781110269369648007031803973775240088081621437908987358565332600795176388116185866521873103701999852544304487788339600897134304700967845230852805647694064369907234647264060177236410976892948130767124832547041847686506943609492075108128224911343339287481193498807748861706872266002331689993132200212363126783553873086135804927496030402146998556159944115751970948980194225008754878915982692694016301654725314965567023904245126500620773825599667373724376229817380558592178447939444187139716450464136702700591642609942820356901657638409567812525819877312036944213398641566328303753643831313947331087072754187630504130849313838853624797285162142947630581804458621444561051767026738887214967096218567523979419527437775993011441543168233750586932846953773357825140633399109351160443618993237003179548332203581867347309907954117500234905186248470692331977054374420977996782990622166665366880828574506024307750928939891393887134814376934014368587969245412515318940770533663984059003231391199436577387934331486691511766883812503480522672435340890454951625846936957143188055299711915357202301987970685776301093850519123802129422449853211754592740425353636749754266636940994989739232065653036204283700211911922312949666846492627933246345613824170192954044846170935125933161339074074377398690204778253394240684570561199468571703609357035456704605196963047005499010442723960638980163581126774161266854352896620224815837917886317489337504595391456776929678394963327726327388711064166211500482613197683291473673173100605580840409187337202047122726092292275966051730444451396643746016743307547540883934955715554550279692339451063895495398074524917120332101771983432890941474950561400733119094461665664931396087292521446648540030004386456747673062593083851970064477557469564186914874093285388541927798334664944787174870735266558945092326747335707179451685252904380842245738633981857662499819071169611248292469173951135356652562266767719606713910361623801787647459047061361952925311766664830543576948141892444131597872925583692105103418321154440478320926035434206447502949164093961285260039032199328736681365872565365746734306209815965757643130768232892934780134390047687805123107978504578429201633825198821415325925498185057329089747849047521793167127391163536048571492206269876800113560182676303468437879671499743550973909910021548464505046562637573465055287505304748258779210171202826933780520424420708447939363086307706270361579130994064354516247235124318374097318299773389060201969152493623201272204568415067423869037917571241487730438577733091325357167591213972482949986304778899426186877288918957070622626624513637090256703325130629422704121250270083353232513199572065163588213167974639275623486610771672178434505314840412561980251367754915839830434170777482827236910868176552486044054592442988618841495488378761805582435844136373094486247572979762230131815102070121089957385324566568826554077211310815207630445476140694401810024536606963889850866298368702957038493007429561180180774367120763543699792320339667163217326708860667650727549478698201988667819688774150126210146385393199428988553209212186477749698931230034900869645114874937917887175456489175787000676762152593027273901428815842844537644587032394509718527154517189403628419984251397131609888050065504017237540960558153514163328075736881316339266852991523118420684577446457492228725685736007707939876393798587937962972076748492131017054824482983663358996818872167427708331262387296149188509695000107993323215527322641646404639397109745193502055158539911632478174180900244299570631198655064971988831109606076626075917703687506276428583101829197560648824203130730520571332684461491068379507016238109718351432763966838008662344351147890755998410253980261697396255074788123657364930879809491264396629980853134904312591587568638706315991350269764374767604491798743194358327206012800174619842942636016523608157781207512903840317816998613317848747977451409646129527036453400361644088199853510717033107367823324988303609092577520260192677664568902176224040929505582084206910305588778773495866603500985212988235151454249748132790235684967225517347558412492432548391835982100013427383756708801296233001727366092401428806889712622709206708651849871228626303754769640771004497615318216583622327391710475455648727725683643613158980075793281014115173750848721754624332803307790968789872083889748698074202002061453382616821862815469006862378077493358737490318328600991948477131213787672886237733849627515741853610185376671106376225463773871002976309938594351533988016416409219599051625496371304838664413236943379268172156377261346298420139915346333909929840631153920198942168939424685708538043023712401960442745605934265475050773647960069334652474893958920277926352407024461294445934135475238018533935057098019721621488249783766131762907630364328618516244927077520918767936221208359558420235424393409964184626967180336274472998248778741033705798247575716356708436064942960493916821081585057620318882242360915650776945576956460802276387920983886169617133941727362150296200507058672519505632196710973515755569677539475241324292458885695629910281861313466595459796629508381329070882042043697734733339127003628406516114702939037792641494348469543521408424404149941458193935363239518171839396462135526328594873354876300749064667773093198127380610658739454662834716319389789420349308204361311506388351254741880071845713022330502074110119541878583357550613071214920220666845760954212973698706631314502244797896726345228064206953202049465058512228599577120974297907549877241231716898810404763361324321780705178793090335169239409761201002627992615650811493983710068616327450189419466936404763631834839804981766025204085484483715044013954596950429274944557095582829467354153557866397800812050276683637923987794792666149325155730147114757320227936885554668424958020204149066680043513265930595533629292044257316056587384032641607060057916733909248597628124509483552242149995118424737290334696814904350555200258413611554661443374097125613541001153511512161451880756897057094537196955812713876172179139322579747709274581795210391985843332129890692360528556086498883262700354581295857843101056467758366032137245791169497018942713439535184859001216168260383459309919855441989958191041456561328917084312836254720623732677645517167213096793804785708204820911314134855056966012698598072834532193546798450981856971988359693084894304923087934328908278828553209286474030533094229202578209962253612269183237295697973056271016098222419757501564924134220739351325014969133293319476501882668533520063087414141408470800549662550529070711111321017571902783200869112885926471710660596905373688783176075046822452818369068031514376527583192996287980207278625183469219045055237850792259223798672128232892166591089377758355287954744560181763989057945937347081136264854843402691067805992400299449575206955243661238076857325109946737265505394784476996097684973999298342459447995988105706653516487614523294460308508810670345288856969435950015180113143051689129962800042167265517025592013169589621997054241747841055315976533995354321999737239197063357289315019822308147265248710353506195553526609723097608470280499643962441653386737892442911751891134339001099976337992537791868778897068274105665379361127571729318108122549351265359265903815066424920655684468581598260816034212386776956900367427423462034633891931097119035563146252702942685979640312657179506722244019372432454935390077178591506780390572130392743435845070730366006156767956845017291713125774614731930266535775924009872656072252379196732417084714811388155132661130098358070824506995376788114933042803196745360636812409594488503940960832178758363038139953145037603546857138126808965359241541132681869719396445287875349316801866234656537242451571804329955342912768620695807282277221136639346836536504442088995834365827632185591562770464049818292437878498121843094300851229453203120051005113055195999748234315405303616819802451631952219146426849106857601815785624421490194542359749584094776718156587974325483846952785338174449023566845013702689053944395591442660460339394921021645677623400634734645169841961826518444805105120264952371536947877111007898889267522132131849480148812187422571379361538603608583542808200305021293933597460054834215369224688260869082029652328395323755629656937572386660426242322055367527585137337228790972724026928930169982548832456190350691335880280764438666578089065570587298999795143426142741928515916391683651462268281697460606810866108445691708567559763629514320836613684456223419799406807260675377439930227017258012884394395302191956751645670837026017253836184400780229424093932118023325848867252155158304626600734363998027639983420880333759927322071070910966277525357724424354368697567411968380534147622604066045112245144851201755402962386665510468551847537119140498091106330003340006170066232746135046652644250854422595295690538219900938969411602941840573658134232241836327569129988887607182749023936270197610613478963702178529135272978223830867330237335946850255843304921165924937455511301028384217162165621002003000601073347798855639649188861761115191245618357341020071460018433853387536459752681272515604901984964071971982460903780532878585642290456994197686129489714967187596091906626850161608964208669610190768369684695790421949896648825092761578750146131982073161060352822384152591526965357673890661368788751949259112583028580931587927768120938074903233313540560392002036476458304503098862234810054328955135450872336856235443094216485648566276164417599182540673294704934330846183558009884805741471151726876228949716473648210392152218288909645407347370334399679343899600396125541286197522985380912542241159357746059158373902520480077661786156091451285214146520333844640896967072156186460265678574262205902870362296945929760321981560894232638121044029541513368136161932292077504986637910839160730371627569517780223407484820004514340365518411858490410418795498037045830417190759281829817448294870726233496972022884768921619359634489702480597769170689682089967236725632775822695700737208782193320071341852995822991725161987573000904458182478767982803294635707481089274423365095204236581820267966791828082444445075803096164800531411037300201079852482940467418093590378519959538470782496363707853994409345888757904080029697246113291978293118247513951824897372746242237816312458337840275889192632341595833158335568264750689680394335411088318486912452128197407242104804347224496096327125541471858111659255651221319125377363324100046699847339834880616470938336634420452014229513575823131818715176744973468821766547735336390250391051673530245535841318888859552132378319495251293609433552267262160434503954101569842786113381154450193238097109097217309501044740109992279664003224307982564400322212933107463221601849179380414020258795151176483811530761365538892952571571873738201976257579366167321627414812979800824667780316885750281713065834386303048787542335943022666816685156526172090096649847684129157533531589715029886635523232630459119765468314280014740377794164471284716415552946610504162745917566810034734208920348900175534986627201714608745313374734568521185656240786357091072261225409288747573733942769933012977132616802675058673092583996312588981213737024199706248507043154032591923376611415065390740497217000414294441946029909599396581306541931140075701141131673968880783093472054745456298969272607162578557412228923036202910530903449678199175733185274807014649649837333716014112998433378239320893712309702089517469811772755569939869631029719813390665732871348753241543570089864557018430639220568220922636847706726900531454966504482521343383508168622309536660772048851487934545028177821650121225398254756199435046000018726829265854798353784412874669210945391250078836202125301638786898934514944346012598195954514134170920284392055744719176104320319436463575620790815135293020759033428747485963326962281420979348056446243159535160948784560989904023770857232132748943102042679025073582704875611152650580936848176545819062397345805391125538822859656657795035208108473183247613456234256069035602340429542502515839274193917976271390911272915830255294696603019607928905828690545135031114213233113924111940892455847616803976286812930830351294227257209895848494206317045205719800433402720892356996428612404956140189792300048328937031092150746949424439024391001827316931623766805154299632288878892449665037417108724484901670808054010491750457644960406011246262269171378161211290213468401579395866782311087534957139419854230582658964896686434233062897126560569324962446901252233851064048450808597430684787227631856205211908356809047041964568853503687734215607773256364124292405789267258996211459959862031816072561588349211612006446993627137729538812231804263333775413400480534393704280470761762332143994694186393579229691933757060512134534856951258591957865347403856460042581479153366738869788007039115878901320448733520506593317840647716060032720132793731138496910748326940965770999114305116545185140119624951280783702727085807346643293247079601587914822551829851769619188190362386911169344152686326134867407914431270930812117794129557182585084793372884702363460110448347012932656385116543635266077524942249792200507852866496849119590974400868097347032195911996281012073207971740437207632821823959346439275798118198207168652562567651101546473757602700511638362056334681025358038879475176958503496585759214995234446183808903515545923681785219615129803723527899544453984880516715492150337758275293248237966492293672855930629368582538627834467694070897139102669008873693566852001618945204032166918835339011549080306521070315364700763931192826932451447823433612722364122055148133881574486390851560220963315671635321553885947021057998198916063271717284189950206293576498402596852742296910891642982198691550507260983913657582746775854654100867159898447344534776751504834303594334587049554763196840122317708230013925267330084026354573214460018436305059435794128469338318645876064045195584873972990967030860212241784439020226445856722835879302018624119500246031539850995635739598668638193194916010044448642821900269714627134259877939959475797485714616123099418325432777283562635504767121158407861511552555773743714855260853806338678943274358998076281452869009896708583892394479798566816749040447485400718701676415231161298018312530979574535728006540196266597949310017541243632763537353261654256059261909360580247659147756129139986286707524155539211871046332374978287829521701188268330362431303181826010721224747883588779837763010972871262479190618264000318580176255368736835919409072335892685218154238770062384998970226916651911718360862285042631302184349313362059588356566233601798073307553679832389337518218541770548487724147853942193067428861676267473825252115973375147766447536358380442536222269738412019065663231821045216565054107275091112355114917790520806454746645810569039146743251662984289696782870399122310889395673023233810317346166489709594776869089274735866853351290653620661118865296323008746021791491076191685111221051319075737927706590617778790220207563666139759242415955905773604392361936686128495976165350239564464885850680356882250620296996125845859132288021645771960477238024836018282302995109975885371348920204425321596339679629893672354970223892781347162656338376209709964989746277028264744187170397598504574020369522940926592652457889326540749257209202506704088070172033253804376956839827453218415905341259994578451242768704046375599777148724115693915031721888786366122787632982549005773042255311932392349147309996324632482034431527787498114571238958955766230966799381706838638025583807516567260964692355869146646714600414387038908327120405759650443606804521114462053040852715880834625757463405641789873021135091732978739219204794553332530358300063917751028545578384673781232646432766190937112888422223517758942010023786892602023631072839785320722821023852139088977197204196748839118716011502445861594881609687681755881718015992268324973182057292606391206591189192115331267138784669215132353159028848740432905468537841789393632785196381066839170023962517881945366324627806777240117781415016809249547658812051088609419621746278904474992254939782832540886890148358184555026224775085574740758626838736630605405229623122787518485939044612499186220178583698706348644847633913554204898735643976878191880723564328640909525803205804096810723183199440574224816696498837558505750665289778149098598951081698784334825732261257255315324340889438311507918708147458395735588600091325410913169656297444012710186082430847035125335350008751803526938077227320364400335003066637181656839781739498925806450935561919269385742548119085891977639587589642781129473666179672987873742819253887034340609480281045086713489790207309510070510910229499607433614661603058330158589967277524346750310379499784594458113517580821713399964366885780581025225668235708976842097377620928407582010337627460956941063613384241836209453309587942583205848963065850660293413445252242748455836916486657798282232870575490740843779958773992799818488257103105420170162952229910870418533310019198498423505715340989745431400711710810721018242144417102777683368934456292715758659493898981781899050786027236590280274328662864565802356465147985602599177429479221415763422050228771577499976741715007942379767792097115919338674176382099434972541469065801183449793750947453918461659167777939916963108516912704166713503504732965830029252826994520400091032973721953768407416366335435060473571321280168138640461033052968672412276397176343895866043842063059264809821551254698914908914476885875532145171774425602158037938967864670746666633571696075488951780088150924699196548371198885671508752527310189494460509950225758025982185355474104733530839393531136710538842001231721168581715546411945190527545114019764512231116786724281306073816786283224962266971128258968693332932050128352417714420596423753159946763665237681632931728608926899538087155415383501389917837480812796290094625178583320631019991117970761797283679949400521814410563281906649510521221787281117199342200805096473144703257471558103728645895039214495372884666743612245797771410325014658116118565373623497828945401799514166025278335156196417096037456816558580750565389869138455187135359254660216804740513482875596378596949446911679882011476444403017181333104415740125095323809366461911025644903949443262495984229355950726707696556824630325499049069004392414476541312415545273268495268986171671675247074777020269483984569238948360758216422709394204524918049227979289839237315215546094609402368855978992626832988642793413787859096135542512367038938398888413509787087566883703787573278566640681195643866243042665630902941867795409344992775674947205418214046681070382107234761745402530439686341104613367887811825671326980241903692757468113908704558837096436807475275227028569795171071590563691270895348912393842767495181371795534227026376062780952712222674240584434716462886804141388954038636037528446845391077859742917081179324573638059446107304642389639821565251263842545605900031936204123331666833193453357091143662813606075769175360044886941007014963882548142437553845808953460850280253099907158715333788087301707138281649471155232430671348109478580364778990981743025777069367073265932290715751434708571974453825868273105631544307393922932038757193557161636809383291840085465117721296161555142126314713921103353355547228671295264816750788926209276622549845915361311457360135932919699310739017397375073408134893626630018835285030456924049562996647691592807390206952836427549452358566785974241825475499011030040830592962612960602904553344861924384867659271011673895858802864792570055354325156482900010046116879866370285590716694894509761577931506698322901521415807633139178667694130139296489114990268486720927270437744912472050475705279750771566857804482676134620527048991664802076726117392428153914685921250456234452858932232576418244343367147357692503539474124702945511169182407250106843118563939753152649431521648306499005825324198527271865025743310200742648106395408994812844819418395743239256567128329706625755016013926876725108565852694463215901662147673117952097366300662358302341510739204830062019941942033852239477431997067868340815487223025932763054535849788877107745324762525534820889735579736237172033939983487418086371054341229054367156132665784495026162760428660461146691625273010181779588503975055902646847277868073841081891106900524071346457964312586435645980481145234334693972387175839367791163646937241582878221087158396741128615294722566094947284358812511089038132903072335913615398971688502016220971613772818824921501898743840732169845961601042153086907003506637001505365266439032063451366674014154203605331732164069505259185748133548589179204784152967627064114489706153238725468319711568245008267870175302461957578351042952752293842889595048966217788647294794336583779560787062881378127534011201813014099962701680266307759509858067221628401246119065127035371336810033833220327650939951306079853091589541409284001785137781144932187543370614355515355308148734191188699311721275663635318825672663879211308627497057130474302084281577833968876599070599483586818668083431240499339495030323771958925090005222401088785385118579986228061652184282598776765775449048821083461446850715287362059493942197856641111485376176634620164363768012801593202839619263494875256135769675486724324258813435384249510581199212562009715158502903091909172677441028574411105741159990213850790670336637126515043745825770104327723272430710803305363101171798894393407397406856502715590391957764231033429587678368337516798650421397453266410199151190817619925412917062095271372499545444454631127419924884644090824119695717106713244872581888913126686608573379694226378922438571916871109456620726701691943243876678613064091971840139691374796112412538402619042628277962881065580696702241743020881423231357219174338115310144024703743199310095661843370655162564382895788420378875630504177424710366234238145395291151953724132970994642984650759101338783940456277356411352153402638008134290468524415704078937810725093190276948566663690798990119867588876554754662186463264363013372665253991614730437987947175330003023161279033779092074157134288810478756530754680114379380448860005008167106762443255275942817673304326033025234739600075517141083822522866146466114557978270186535791749733455644926718912207610673365463759878595545505393774951906692416393405304049183983387896605092972956401959509863993786752136426951314131350404393108287394965670741496403634902096355280100537077974496018263888940728552777970640201967168196197684124287472126815753916196636687306741574576342032666559613298802536633976202490028891528575549949683176899693391220977585212169887553690023897315412576523243533878549560291114557621586093289398061688068528278355421127193044037444475899187689034487020501713136174688330139069145825072380338623080883337569256258066657422608885192832973007371465258306827585868853965675807507076879024111043045622938837073027980673756399673359334417277577940961482362267708584603984324046645117807434189310243364772242177622279440861909923389970736180115686338310085178309699560098650051338608924871120471791933088499128087499050889872901009608849353923889568698513218280260066729398563412180958394232710112679136268964172174175154263403369618672800906804910536919789977136325944744925534717824746723143966379126432500210802055768473319668637995496838580070886617836630936927488733957911189965381611080274095694930646673952489040981552418258178424075548458189264077406642442023016510112894522647978497688700790284640148312486854093173516974249719594314844205406437290254483083459432834602323993756598424836387128369057348758054567843394684306073040644894565452827437763547848885119592064550053740383763499739298829381327896532817276437021818584406874958500073441132823423877182403213244795621055595095226565678792907408952102583126077842380663162451556468604649281930611343112586347944777857719861540385398558588241292297485714548078219427271792658980309644627501657794457313269399539408071867595186796902895007682165261986738639317392971467625719301800091674072572807822479678792898952472301543466753413142884175290908309782388283676227549662761948637187980826849419252955981531833791045875330924545905730606466731163934783396234781124880998621094223904808446892314555497558469715262048764955458999352247720368230668782147401937794439304302928382394556639409972346026767254501438381681109039300775558010372530580134970871592413035583371022784223150169558341493404447520003279357763528274250403982222148467362137530722998181735634551983681861075400455997666735308110832232148984873784951539546922278965958043309956373584972757781661585838561038719419462557522207493310491581487754406375953034178182689266004890198945544530604244536358861984517050248224832904792780495651592003415070527194828885531280223262142542196412027871633760193007323572679194934433183239928460027811794369984268893859515377328445272589842868847370342059220032581929127460644444118666679539171160651173705779508011804440704186534813230869583547533309597588919476325628994953895134280730342056538088480430631466062462193295232121875653613145674882718112215143408910749371094281496154521893041937325303529772390664697454395614733388193586972464143875880151129312130589201473504333722655888187659623666891370284130656020494631132614909530305623611724907169102681827481329800705422625946298701231407036190764966689349861284630547207767489606368542855069238372730840089995829129220828759171219715626978044489466348506849424322443700060314290419656584566976648568364892904870137117821880498066621389590758313215637029807305126826150251826180613261118851483893705058791366860068463349158899095859201975236855469299412426230147849449132144692410103591384563465827363092582385355827128052426004974669481311491027527920826318358822512304241849422952966743895635036504718300020093522190110144235362516505880875531137167459758917403341291680454245460267978105196079744206749191639399617068624707407166383554181917493311914304746149571300769705643501699778677489347577508712855434695750379543263434919786272174964558024040032332972760076793788846755331334885757969547427962849865012746700112168866633540269953199076847714952764080688219982492349156122463119513897624519441508059174711296789492881272250421166171009417036724628140554910232240785072773089578182662459963780621249215768774019768865209085384515186808707704037614558900389564290929514020570010568179502295244311413693113695238168506393998322453545899994005387348187333449317783214212759528731004329196953284398532805295891496333736024155716613606730103753883234696205270228646291045564821434757917941178196575034200226713261632465502121743628704967440214600801215185519363452470013338289343309023975066424405280464879996194754669754129384894774508037118273461861503559654438969614612644378893010555056111131827920525879585642062618161826707404731431889574982988252256340978213527351380800401475875758213735310799185452351196406616154039006896834701600377185226658601907730258765744861718998482228727657030750757711408924790535846613327210947173941074425777676033497290303081838270524081909660610469378438393228797074409544468868542083961930070236248518713129052507302874550689524610675643851092094524634495870233860760174988761464303185990472733004880348729240074249657870815981948380393827589768822993211728532639206940311193173813913322108632541138619035943448726332254345437563038913219069380841366883988430586448165554641402886200548847095414653740337772475353440111658253625298661897287053679628561723095791907839285930233876358512499263566906882905107500486405711370904820471447400551565134053086451338646822652084997513015265703751489663697553190541952536710647681634123752199067335597692912368867732725988934762341060384373042019884525836262708358118568052500348645658117299646555184284622631826553439559731520456475861161762964099495960820855860733219928638151858079997662497992279552430127018619357405471959766831192745557562458935580441327635215633967897993937241817657896037240268092255551348357502045894225898583473132909480658427968329641012005154343899973289883490186775769421220010874765038276097197521593224794049082935345337191588552077184076874009138474755802417629866760307656533979345546224871929024038690069822672719047904016835533345728184978820875557361565867069427951219370273582010249167497997452273511915287420441574641018485149142732774704806259459251583783609598973476168572623395371895984806439011639409318483064320266780205421961814182525964660453483421955916554495914299329337024977564553625686817800123670501595247446655539511431059114567294130826437431371959216553204892357219715851946830048424115998989951098156730080220215990402234159217518691642038182940815927306910713494465375206989056644196263268061142506877217017666807053262893142159210480090276646872241113827061237840059505886176677113577689654898382344698007533193336505065119168066293797064912021891675084022260918655327179818393077800366336300397120033837070406277666305850552131612565852224135299267785751038072992507375497430155741318704424573312231873841408522788358397401738518557758166909770847293470721933663306853407020065370098215040106695475421024710175367975074061494633512820823342189126480008962657077893915359407034447132398387783549206731448568915474158878074930400277701356410812323346894837398816139798277972959677626453107585986640207002169694576700685316317411738470382126238321815722079395535271558205302770240878030334033414931507098294182046107456306019947797170468971068201001001560418639044033813882629590522133224637445528194547008809619869666907807400332025074860757684703083966555811629238552682100501531172402699568594797870949336290710295767368671114115595638486100159396412210375404527969217102320949773505980798514172115074973559135796498096668260610417324600606755656868392167498501932689866712679416750465786321670043318730691592796310240510519829390058523101490246272198802870875919500577074521953667023800174051254289920923987165957989183053873883830103665371825431402497716320592946523612564953183952513741875311564859381614929261756173467792685309469835139282832351480636176971542206746581473220560188397578713163230979090975689988659165519523103206286094486934725610678635089695865434618209159240711741392098347171763937746624632188238715738689808297652215042377581788424297593808904351368611839437233235127528085710705487600829300362230301251444881011680766536732137096470412293610048599961403658438311169830442752809156357366820842699986988522559803301541857516137108628259375404560913778351455242099820047560543574076386940225433804654046262978558773667307764495744005062566586293760434581804587494076581560858034835207719105166555888908633157120719729271508570419306550157775533997336813108745113693419729507430160187702457537010429488701634433761955266653098543081268568339131572352574789389722564782426455083703419402397192100109129432207283873355859967647061649941918174771690556697803119533859692017565100142252207858194823170442648180000884461602441183832415496014662170814353042185138554677670358619966973629526521696735863224797269121340946309285129982682323566140462891842786239415340521199989077421006953565926109864560305282698514549488336118092184474989090853521777304771608418699331936609568882108659983380787250174511106476377443814979170168486973735165601766522779003891945157761925816224270835914804016597762082037197674578755451493886035064349821618613557757020041496424790668427224762050714283195587652413005727850418328636066289896876433087236693510720151351917122208118214430377547844934008276204923689935472522356077599812124566688150494736494091060724962078336393662410624719039509675946807791256369376828040215989991446226369605487994708291082087975485318296544534424295306187488672580749079415665510720802726411104974963660953349535936524051310764413472790832395254854260321212589215019242158508479960037649635727266603468712877848289348811077262165190053193123929467081266639454576594509940601754810708066821121186573486961153131736400665506394503773826201102191697699586894046656458459237768170283922628242995641665342816739457226210637902795351019039052763023217671951594374544522558637460417772149840947687667888971195058650402055474911529966774238848101937776236190568958614551369848529138837473540289317087615811578130844796816753154953656420013885309538983838279905614050145477063156586511125663978970884712932700749238450419123952809707039218193558129320902590919108653575899030966241254669501862457860036677358414967681813757349822749081444024847491240551046037716221726997635477289566341703934952333633096926719621755086517415966593257195980923504722051214131131666539150301982503284495177552477096047636937005261685221049695030469306543842322417281092164737032293390087388087235542535183694844831613261815007933455809969088793767852859600391780018313043777263380733048541905077101324170159499539595184146000022336661239230018768818153082413021418254108480064343574065479063198508222617411972879155384568887434957505055109977288613283034234056902294326468299171443656100621035828542578278380059130272188280380209605177797796560050383624508435971867065637372237425622044038879943771801423731208585765890122193508106637639344790311173072548580601544294811429381580913881734564927875031713982681318306840711650550528648640053035980103592263468309159936994112259073426965021426750215859019078344498970228770373870252276735436567033714447489622406600965382519116766112198172259889622988829464780721181077765740564071337775481199212603179088754663661384794895782467861935399408014386818052579483988346709592738484762361736938157958384328820400302796086842119625862122365632955088916312618709414030219590303934794501851881326739190295407565243645151342649667104337146319399370165843882796086512807748704791135540900774960630649617295909658436086615204552086409502375778533062633844591658344340744255962680921065929164596299327727396558174136597591318397887164739954592057436847086246772651038866689517300011587911841330301951500535485094859692911320527808536309732860489362482672728661099310878503260463579063606028844864125012103484662580538883711374480898256329113780804907089049551934298646615437462112245986628993814890606483638915795105997964122698808078378104689446141588889328333506769313009769490559506152254276632981461887887944451531400139462339771645187784458104256289453243847080769691095697609092039095974431648371562632907854484036176218023975356419309268842127034412561891194404709551567138116436507752209025378031936065261542918940688301255665665296314539312775579118158620226843932523606736606803831476796882262265898602894198773281959061486838815300059138716495854574404414752197695436531492710993269362208603517838267769710661157219859073658718713760529908814324491998045265591998727178000548015001497862060469348504724192161198075281976368568175027747216364945295789568446189079119136073233275113050519798258247864629427951784690382121137853821509633808621296774768418641479384390129845148687013592811499369691240501340911372092127265176765961741451109926270886583581371313377190611282884814590105201592332309858828231463141396152060626729926711785267725941682616952936078467480976454747494152766809525150438213748462949086600825059309817014020514031676852033695159029536298539291491143579487435127051542870492752915038119461085223079789559959286085075505381419506156276472115837335583117933438404568427969760371337656600576726607660556883451735785383378313287426984616043416877581025518342499167381536417743737049593374352933892458070424226208058053044231521647503223625039073687960862930029961119253342555663471749437883621076097973076982175772272553236800972738601695440544789068887788699647346005968459534778985425804167732570168190678166532745122416181713203922887185283751308188154641722275557326734002666886326860057520368015557097936255198639157434950396162894344413122114350170455870163724115532312073669776270912763504724515159413727122109732616628928423427799432782848500782607892091495968223246587151320306962175576369432536172441212962340519643148499240992706746487811149799596424716237283439603257867210886173965410014887793339592307967402693555547687444509328135690107716215765243352670423731792282918650999660752966300117732500650247328673813146926923048926087490118095476120777308625648887995599916875906216859712021576318528095832444625426687635486699281084244725068918560619265553678440589993402327335497105211766627129419418344608102431149617831509940665161255041418758140845246654638923410328469569813506476714256194260290844961397768916762881887747916906852758758457950407173645114381555445814948347116111321683397341506326677437587584491146508175160388239032817040713665388600944786898143686557832793783143159533782008114076031395964646472944368542881198024673753872420870997630371711466592035516368863606016857135427626836786220140311148495582517588372079758233332548850745541681396640947523462154074586094522674260104137731503127536111227611760010397326923486658888484836697370764370844524648513638543051561300082733207274303829883669051823028679283038523803257926257618993795148202114796986508686087150775626935789147396687088112222812890213375040107920860671021933330095158310039829787616412154314610002059932398005546408625804739774261338844583706761478523048754837906135224572657464342023355844857285509654865233871114244303147532557326191222536657799193479559838493398438419641549912073757614869457949829119253480459073425390765237500147547142224530278690920939484409829448185926956928841802240018980397753173726128173761039367974382076961207941729350069265002225800281269147899923530380677662068317192909883318666194193910802555075305941805102962303005553014041851275019860585474924910011566237273175887391440871438258324924105095169096804499831094850094009547168001882625834830616736523772819354192965837300804100246132556994473874804304234365655349583619249686229294510857982460377118206634030476609161015501276850609608598113176143278439831291838521616504156550370350340317349513509879156425224527076656354718725982131429507300608640214861323320053633310301545428578427731192473189840632883844180302679747137835379995610587385415538306081100611638871558468148660053922286746286730896818081508354333750217901279602273758757054110818229271755808621351892269730735817748879127323381563150328294718067286403180262015283071268749582725393105063283995492168466212973634354780177117450340287609042390656072223755999543624879041675692627271288092207486513929529850928626318526172927036218387927158302237900051644754034563475850561280973363932257073394858729459751925309080737786029512209349430000988187180703951972696564834487234049757542435762797724785868965567958505293127522321334107821502723275825921783599456503755534034441196016946826752416952509621041446291949255705514667078781146192464374928801122860331828949863160549409981786060273986188747159506857868514733002094743256737606309259532551730189119142111538396372858570812258493137408593361248857584625501474502270416385769165898447911289550655204647990738173875069229637893659577492630153624161993226357221752554828404116996694583184551721870228392155997857658749742312345504696959877925339005798933696844059129756627480341580194454085722052651639712822015825179158470033856003879796344575234058572979267962469642420509217929843274668655206293946031501497309280334170926054136010722593266365100900352627133169576516227294726538344424780084662548469190180858581246704197397108925359125577028390070802838177818939131031550211127263295728663141869472523275007507973782286017716180075082532578345506897300625762083872666161505596289862898238175980287161552354377825223330188603353971962814297993551630293967866544704086226931231548239021571428488563863629296686500449295900696873747375678322083221593813586085672482375872713527387456634073200771244424869293681892545744364637957472497314557196740028446092619111621453878925334240910770573718922087116812660686469191327528983499476078689943131032515977454049199554212099597237031637104005356002484440672517110220893447885383754950350566524850100226482190830024921391817215722446521493638238746932559604779352106657914569026484057433059023062838480920987294231569980078423505954697657557848333765415560067739973154168433220627740101967417000197592005697585324806598626998387818487563299102256328561755378812760536904082012289057895003192381257013509644863949828442229522947988314445954694745021816287218724048449141996746258706146927894802564859433916190635768674523699856504063440548235020854108867694648776613905576117458684638932615585342639378723799056701551892344878360364212427598374646996010201288056224264801660798574290204665192832341593152643959894020609248826015948814766972007658406001580817940092686235585830152124340646056606706280396920872646523060459980535295334634527615078281038710623828292762119819215430125759104732030585368108684246895473186206169025128032287613418303215136566708611804217878698421283725584139838490236351612825227699932854898044556773599032902351086865547339172168293306870484173126124576819280762866455272136519972352636206925362448825528976454731690261844008344857201280097137885727342965752512779420906164758851704632806841208352111882410473575104499476123496257585918585424994014976745239063256698936834524624593994866649596019167358344142931214594884884367806355785938020900927100862903149605533120136640596222238047526500750422606797545693266085247778372544977050608905042741874780952847876710552052741890075411574944098960592275672743942360763714241833893466944155035849167497609214044132823914143512957305441878136106439660062422476693620590534385181241076385693585146747293202317625499841025311035137418863618874669249690810365164439288877013863033855612279907696328422081061414364469063811532300095599682388122713869772068005755081488891526589903985082302772628718015914622029363253179748002416342856696856034080980330846094590867635467430110672236317780092991749789191551191117034730500134919352502753437607379707594981222217701543867466985542611678749519783437860434519196425966728463638203059285803705530649487591344101961146183242123161107050399337929773670996441233070052301441375745657141333288287291842876159886996564238194127442431086221057638746108249597929710399271832151208929785450314768699958054068020371705137394402944205118551834271552125586436208085837355433845131151469317382981237822901298562903595984265080769219308849248848989472486362334539366633526200272657414397955387454178583881859447245575793461166722891141103853761333678993002382782768537747447290886374662365162175047935842009624043225920933502737204025620101067227676394659565538850601806623551762314286211944145257527958481319241729820466251569136376671893347875100584321508441310838479430816139016359700745455763285627686262649639413623210507236316645834030259361782793458956093497550204278658409546921052015775275393095152484622517141005793152338300170074709790756981466388910655884429620897939647578487208829495691096086285426213483818655007496277603392990894798148375120293181323702638760328913538170635163853201745608694683130175394083371759878496734974845959922244025800431747104232578248953669520081238554730475141373456322197173560708944883220776038280645420213528945872343023505288791398763764827884514589673588285115137924855828060502035438351271388765352252201139428350608740894915521986397445345038098761717135960209801256875046336108153394198945283653940612713287940666913312445914303550962305122950574926078247536208234737813275087083916911371013175673250140536000339536661677767878266054687414857419047122804103876393002189415964025750099377379507479533961028055764532089329134353245272977589758964284871899175042621245348418032746884024901171141263667479908002917751743620067605712207242433781610842052630955505428233045824725209017929638988288541798373758464408150256006493036676752419664201641945057449649022979152076912578535546352286776815641225053768553326517709911435916631600693043887204434111267086706112147137359436925496459449099878401371395651080123155785251883365150120829910702473864173497248861104260252450348472814107839924253276820907023890123937812736380946438851776998527864806031461494313336813826482125728943743247472190674027058200867715064150174851749356354145456429209254463580965237999605648137359221354836900023196729080007790499278352253265327679487153366921291708810500374534435473978251995649017999716901174913035350031801813192652079514339572823875543840458579995398851063871804610747438381764744732934505799231219416852778264993651381850222087597967388412545582628435348753755453712889461465310097948901477051379389541168788854149904724633431529177188136781294605444258890215869612361301711585571078685510782377780926499791536474431405746490825313631810928670518316747084586433412566757648128465215173799831757209957967780075225263986136216637479180333936294573141308277780378906837510681540901752123829895723670059470298140601872148988007684009694223056584911635526242369746359573768682637619487146445349611093060876281391008393048099057172761218732308318566087928563879046038736855653583159651898174151205553758882700986016024063222996492977058110940174046844888270339391766611941609546466349954153556088197630040458123931353268603254600051829686152378666802935362515971253077366826338840451457528984496060031209155360348701345055300531970010322919674399185908801137284580555723881582057716238619815881764165231300137209548087862107062302405907974809303700473327289503443810462834242115629622933798676108494906749748497460257394285793489359088538311536400972136067374195726546038583679429471078572033770753266567606914859105844552249986195511822336494963359613504433857469584430321029714153010784181467648432217306703817068447659681278670980064565084352582648651313957118827102217185966954090082649174787195644025191453211848565450595503953249714443264420842883325866204643662381967389236179986443945036155074636254563369199276375671382570212727674712908731170495503544671429567591282899016276874762656687370735006494096811476262318189498637241748852733018308510029176947757698996436066058085389640959643855268163236832687355037990156289073218398196305199200580254455832867643534554857650286961555777362663946322280811897286277397807543565918559815879436992488579392593490411849658842757676498505431482819191529343047657630451100851598564378669386912271932084840165778882864143519951101824067497120949851419869430363439841159592284844243216537732440416424240435999428899763639255769293685197853740336238614549459116671881358377875027607116219049311740501924335720319099724677634573188943381347280236040190633604925792907448671309243043003042980069679194360520988666088996872225302910960739743036626715441048362141063254758896231044732192768775898553964206242803501595182617148732489220604061236762599538484870922495137817787053655679283550610463408450738831448089507936970341281848683010358926554548066182240003578255618410824407422923752357965267858396361254447910391468073587162419451431609283113160751190943247116065072191154386159779349950628057878030512754040500919503695427043148044147004427288733164647558941988474430177143344918236283210456371279914356857571755093731841565350810521339793000923267091099944907097700327774871006570039441375134773214693858897093689098924724524417309465834386788945552197504652182472446673400097353108798548386999629683027310122354800638663149496434610418703408086774019288664314551916490075078720847444646991916810337477054109158689339269860618648043775999191861708997988333359900399453058477006826808488849558690467558220500157574366133562047775364571058665815097704881440685684815660642737385789621345804917885353330055606449222004609755803699214937657815507136115909454246249407582612904638329176108488560947740050385163703460514361594782904591119034430268482350611489278235904675015745331912432214832656647701519544236293721665567933353314390900077020617315521935275763141181505338831843478323884047510974833702982439788377801475613881471101410166267333651974316710206715491544659342469773250610000339991997499461660757955628652115298726688217791582541219170856347247021674644952446210390452194899916000572696639591512733444112319439327043132926568795502375936161759257003719213092310242587174876314257408242884968609217411796192569073980216476897312282990088164467480225246778325175469340277302038896679393567812482768310105586097311485434484211333805290289464142940777194554439658908388912733811594943889546437641755765562979166279558333598243984812432057327942985050666482676796336023162176539838887519719898179631178146143414151165751672253514045446142505938205563174729602638929951699958198210922385289850122894771040806932583000664023154089133738692922582760131979154923390678545422353582942462849795226009726273768362042220763342532938632380157942931521165969701323329680751563147405715321623404486535851163474986916984321702395257346923690376041782645183125846155835911174169238097191977519636167748849213795948924001335167008320149736632164451729791255022354480214501900662837688133854887573291406594370197799075669350072073275690861021506740357285907679887197095601601734702088259148819143770844761321879919467876962594512827715824907346387091197397796273935787108212137046406949869944153868081148264056652564280347664130368687197309529704209531842541724074526900377767488513494033608337427068650317349576846351790971212094338459686690204864867731161495586362373321265374053539617545562652835658411372364051084106293931600866192945038870814478049227496399142891326298523837544842809428981373516398258493872528145284341069693163698548658665917144651788405740824023566973584900217089021847453129242730543259548096895659113132739166633659913224494398646039857233320709531075397546360663307263253040213100455061087826116351055929961491711670684475105026815146603793081975919209117327971987142619766967950578423219656097011488001469477909476131645005981939910113406605499225370044089376281283071347364960427420525385546272595834399779890607401543723715424569943116437102555540985122756400996533808367855207107635977196868393513056389050003030219265262426609635747778338111310990140253847301005915718383477772777530976356651570352840506840456017845769690228954873865480788570360634581491399686252775029576400681392783191772231581134858029018960676318122770059466281217135393645047588716310778737193564194855821733685012670411574589726076527286290274549083220220333080835680616155885207869702639032561186847674723304433008382498576561827956217943356639429764286649857031337487884606139767303104971045234881110588237997919144354953433163031121998695194574793175889284995313228775420815428965948562775466199125869867839647959342942907247958483442187923009959954583548400579852250909250794158320948338353150612862866891865633181327298988797758717050625181625128577985792164446994496656342771861900693908764593704364247310126836397197824455938621847789645722753555390507229278297329981020029267799145690969975506190893983410258694063931672847609207505739702234187367076678843739772688296950451431913234068582582440070942140947892051824787604425683175785397802207611553733034808302414964054094568557836057706805544583128659897355138615618020331016775561799363321569958825248583661004754637210928228015490531717541909946978162721286348917384078748511294024195285317030109709860905742559840970378260717952600990720301216001234192223214555412215568021222677960248017370138394107617660171729274304828099430126007964519769243431947828557620609676597743761775193894371249264477782472900593212077438656698939329238070336647652862242828788238942014727982224001630033904640983698143222252141131708703066543762533740876673802900044403701310393947323596127992134215741689628660249776727738108672535041098999120007600341277259684443748620974924804131227134807056199998429760888054400621442868145499516125687944970203771146641700071975925862500614887688579570399863656318868402043056151583539178371454188952164685972780901129943680595160067862669525770130939855139762982362958411868469591310542982473315183252942621058322630406144826724973539218579649950956707298356298192001375830760808060791782305457258331677013405929406930456887033530040464676441163756592836265401961904452491204352158090999520476280499367946931604533742920895995858330263221602135903160492613479610200918827488606468942340913432062794600707149172292419367568403350390026777684549820315516748509679404209570011131316547584660215442450598824822999796963128118311970691511192330131513410798241679783961885706597486642401043109671577049120751641115645167294586703984566192733516035793245763981453320432694103996128965715897262121074208527685679525728562542533736788235427201527278231522517616695339794508234550910194529674247086625701131950672006621824883295595496300915538718185025338846272331694481755554784472071887341304218253439867491419214886357795111013472088325655062101562097561050630281499125271849873074443432094276401949229624887578748549324772980820170495135498373905088951722134703087558759271321998584865399101556724906038544562116130028713145235207770214673652650544901515308147598449149665456092929079022168053881932498954697180006746213060720863543847368903514189914176163881243493677108377978492110063025815728447012137704153858325269593669029910980153648957455209654606381401432527291974185792006004456641132159285154839793918824827619922257581534199650994178135494652960499977954766575270193306646195875097710564820545501019260143359105491104218811856650127893146527455258428142926268203306927248708153343261308531083601205111002827522855280819603044890561021403029652936556107157687114052621129052540943071023303505942781618193694703660805544391449479431584078874838974518884647925360528383918391371634093606224051780610521014158594127599693965028440344003163965553618293364732591050140945706407326932839193359484795316148040563752089872407179013174136301616775619594567879682987185436415873170377202782250252753522827161544754570662908292209284075830301825367429392824847824573017974152315931560831923583148980206612533876893702606556822041642488342754567817833490438000940738725625978393762099141043553740260801986093518921183982533024941739514157828691932144261424235495914101539679443695953422793217854630241979303503701970078792497526014907905573602818922871894190940418004980786192599067324651404287885805587853120532206706657537892614158739965193245537033453088315786415129700324967627882375255934247206903817378323106337458749992516536681687313642504517322510016711672575771540719042492941995640450736894520930943902752986596728468398589903988130353264816277386022397760059969803657408005874228655902776388703570850533632061405163148026310160106873657655765069523803380836956265223482785931926750449726162033424671515890927274151440239007616475226436180692867996282414144016489492382634258336176344178775124407524176458078100495197394723417107900262599426524892363613182456797913808628671659726464620959287492119735564912151009974029357857286346342699858944559914628535764787858608373042429168705776816078740485072036780306252783560769367569417386047540521980084562678969167152781228353264111530214354552240781201550742405592558794776142048159889275611259604002953856268250882159800014646421273519533867038574772342782409537937137357866319365731843730833473353477721952439761184918603948384951464857229914612652084505017325347459174097213076025751197558206420904883451891945716201200299676889128060666528559983637983521723109126742932917310879961014481346448784986626993491491999613895682739263309203123696084334008825437223887222903646866433916949410487604223316354792438895844102089065817144960352526436428220197306417082546801747537851453400748741354590818192485962896987871203218873045203609922535603892720455633271432515893281727017754955883129802458073593032032791329023298180056960434219191383045948540898522549994618457832198113980377894375053133522503085010119074635255646834930328864483696683765387246770628297206312237823861069479304690279659536392851180970334578528170895568126861459737271258544862915957973764313114843603523231448710625610270563501491405613443117588209399071019724379975396746751681534056153725823280925921334281664653897998557259824057622948648607757511460208270793533366799188603945979016801768035709687277168867994432743629094158052109280339429098363858555204419448897686637986107483066765860271090564091016539852787497534644392536375886549500649045788817608664318305992422567380296049426192556830781126099968183606689572619593156650795779505249263249735419569003496477495462616024518794487353685932830307009466892729200919927201108949871841334893727611757604100850765371012228432358838262091980894206434865286793260260211203569019124854654539032293778443711899524461220324612366253132515339073355067341141175787729676508305443743822756412202969757657628337131709816536903642297824741727008894998429753169881835026023886759776451144682331215752501286368424237184710017917483002799581876422227244647450684602834891450127925197021278642998348238668273613651307616870313885321651057816588803319522901001221714420904739341115705657765464577810475653454257394986431230687368852564507240462364728254467103853638072157876323329856290154642399065025217758731260093080048687287839681422586285911990089983371210009580378821794507643436822748501756174837643083772573486931028166825184524391488571223663236476674247956786516273023082915362774272566865056144518827053985267639137341259185288914188848138771867958063135870845988949690349646370763199111821584602166276889104688914857191730332422958649836180441453685006443278919243273398306637752412069905594879456469311099803328622978693685411706628281831338673491678392086986980639951284715589236005916937705180292914338506794198728941833219619456405616944003716832348739157801635248583982440531969701964790848609850936904066501437617401442172736616995560987626183360150615989630533922404664297380940055566731174800207463794159116908142488364283881368639926652652929903493700515737339626865343047062718200881653106043847835526889566152601038072608432199890810274751185769870764868541667747435149782877117365716645410809105073152032269816491175050928291817365788972594451843716563976776358276820337310146861797003135578716676989581014141316365633375215665619734656081380832347626355034292601528387747466208398188624887968419229851439169612507315723115848756429447653287311342556555890611976343688428688059088652454775932660452980198121499755344333542374524797290009167446785203409313570639160907850444019627539343216559017257372797028529908420366069709484039108810636956142476943228049152084281265755599384960618413293434448705550212096660347561405474818625645551627644423270798239485406446695187811250333568369960306359509670476788292877176731956731901013156122460422183336937460868451124638204329568462540131984379701885813654940034982368963806842870065404854235698529122255313916183162997234224167951893146074747538733824319674594760716094523927991617748565862684444441150892990817460624715050926171589347997049319757549123757088107482243772694955554361876449803292077023727363040633658824512747776356350369078191242140431771891231135340265002450065211489625136646970298147276308629538889553891787848430381849057410111741033127503101780392503191787382509183595927925848798839245829721387207377445730467644665946951204279014303059274769755210801872427844375909944017216963046341027894865308742642577163608616764949277475229561465136567103074058583695746961659905951790184481618216810255011731531251650524590716426147479736873359968888285214897845197947151207261462875212676847546169178296629372597216518698756738708381078475409680602415972249743372144418123786257900776098384335138538100494507174905097933591624659747547762353028853857515415171102022346781735778871600265455128028046198749037707162948643752234764208431486130280732903807522412614931968245440012557684921211100026866746469230552106404298487690169143902900332222104901864458259865794039926599037296261312816289577990195313068107411020794207326248390631003668069334216388015992218824666547998033807272598888072448284014614260606937892704363322528317532514771865395557883553569091931883823832888238036572038445738731263519465983570393742814729754279175417615704305543029139340978393774314752080768015149698558126115864844267958643478873283610501208412340973655294247748986523897074183394852747863390124179675303045314380420557900631806244601740428571946897487265534656309778953632555921546301488741632565289742748368360134424367290726196189994585327790695651205903853137896420055129346459127823124277262432849969071388016588606071228964466443456351108861526795921538778378554963984474626585738909144764079164808007481704574655581201941901553489604210589385371629218552411160403789996976796995754185505342036581447621958481352829069722448200414927064694710125509661056218848049536949266913670027975926721012187930956148035275868154166481322087237624275208624060621753372940321036508486571516821098126070107783367179580028140691186188999968904995395481037080088375420348030910009634381208182993430436186808172824552810211550060171614077809382056308006667345871421935167049711400018620010673878853166393889310108249750080887071867157329104066303168813243900809013547901861465167444884597112757123955289734384173542121073342149421784108412382158356357890893700386564959331648918769448825476148387904658025465512782302891120768392944354986109026064873063226215634746803350792924482166924947108222485814989864438940720368312117347857724867034181075461310205818228701117368070671664838347037903313803090605124109623306472011866776373258112765901245173995776368228037097605214809358705696569424195944193701877252262731102511088423757158959135557932346652721799894780920297206801386930514316665564478954150007393758504976627263268167639919234144791475930145343639171967891786031103444281157705794804992395033901288480545090907400166905648621692749627980700602420665413670467210186658092994260681082803415821762726684691999437052250559370115852171863264202441593319002985127089193166876404808866426451855556842397014412350232392070926293969164225946284882140604873254305066227362316924112828841194777328427515576575908267183820555273652609162575858491668448318095738485044690212151191114693498960389803170877843482815261272198527080921206552188130181377309169676447396978444256730250184387649045341077822339209740390643422921511135808578686137642231005040135994124536157962097010075751402483233935741031895278856086700247209740825946817826564846101498028329077861894093139863206211823119595934617619204273029118080010304439821592911135491859666110395557005899325920330985801597024810248718901472930082849066303557774072690553202842065648454748741745213497700122006419522803987031491913454129062783626948760818475748375855524198899243316966391463952257228104517390307976771839532724430759762356878343949633262517946035894882395045165287246060290066223201348221951229111890509576717794266716458924525362121553297139134062869517990005311574253242305672832626496944326934774734307095829217724026324111858638732476048590463341246761847484933631555950535930436182972632022390551865731610829739962268599820340445501750748486676138639242053225529920397327103177153627991613128523354295106369803690738058077451916193289873387153711294598564863445846971421849768440878897903099253925997833931459035150459749468272511242610601059068954920883188581903540984897748295100601921116198144859985285912908656837364237053857892703492178137408798413163853604901286840888959030089743886800519088939922324218730131258705250267173652864505446121063678637975391316022807334398791054152122605660876890242477020414213249752806698943680940936308748863334059614670947265065733809026235679164277169138179756084398554167790280284068538779809982573363715495833072999674239839489611280746960556651793025171694984979371927890090259206900017604141960399032101887923889267257072781490196043965463242183366619054033363452341718315879777146478140522735690633598495770173224961115483964094035644145455540729267980005682933914793588052378240621015600976438632700457941579254691227604447325840954465488257639458529132362731280626824193017399817694343730584781190740707231029246777098826209697416468305798911460054244748088842730929853257754466499295748324717030860364199259600435968918615257588182885633142584372457393435047160135033548779763841251537832248507292826661603912642960435689058917709384744547664920934874083812557828355306919485752223605994310220630892563656441854589270469496363658834187101915301765757485394219213949263731248332695217627491491723541009518164290297154934435265270816722857317890443904877268276349776375300577314305522870075353379434875623438965385202131480988813739571800956676613352118906547236056839577829701899637659970148099102800911285911538798176291623099004630401954528079622263922968287621984411868774050820173948456356182704949985547282962049782702833711393894424898587819938781910570039135462837614114300133410262944188836151609568242465982485997400294757786711457386455517928078842839334490104327467739325875536208199853348437063031241652168700403792714322846084560006902166420984559048812377331851564550303955544331919497645730565493710604452303472265358168629093269760153158270456712018612800104484900104738901092494685078232215635615967441768879939955459109254079071410975116942417571158937683735406940029319868033599467829735627073210079970201064844881083496305261058463716346340518237042415246342288770272973984185520743518174593710994255938724616401545254407350304929328476965903193656459899105789745421965153928502373856928720124378506819873187920645279559087260966098913078514504842263718999307586460354880472322020465928325078853011656524856400417196760035109373720859261358105789915979282125627829442537535371098749903175509374389538742419420843937974056048362036639625858064988471330621467822940976867381058158822435504399050948773950960601313144953528362694145379103870728654577472619403204278476335824389527098158475372940259356651372848243203971779881118574804539765409763938591576357872781595706674838138269439308125362242098225920703932815721764555883758569457112589140040514779348154420392132837393371322167317065347126702137685429393613873858507573044092537047792687432018030548281909605723949221719067511995996541599493130365029572492829527530048885873447569136321341573075789960933998779369726381252234938960391090233330024870741273713078640328372628547357757447092781944451415954999357520228894426587304741040970490063998169176113032849011240915873339867830693396439507171816811813207401510059208630209437130831868451058014073192893819347512217122145472333645587236351994642648966330617684778857784095982707793820973941100002705944265088169039594420716874978372057331763056758515638939671696930052785565299902680648858132906978984841871198859383314692054842981759207107403495622150401811470048844153921518203554868943840477459503370466808775912138435311601708187873200567408277405778380050961800991632704174393330254364696906905121744380518306088084102502535718090199890056594967969662791395683304754948507715630812484249176470603558671889550085284400180430417437150998688688049388243354477865791907744713621918377982926513080663809472004085971016281456163786777000021318651975963956703098900907919570976392632602727203800539536413314931963879703657612381364255724460139956933271837072412630660237871498170061900501286890089261792140573155319076261848310217933076960537592218942446734391581985661980178635354739487077594058724660637489427481668770678943948190729421728712648447114613174102472847678740633665454185602790719247217919112751479188415088141702216350346369997755411112116048268278280937367160437583509210104432472557386556809491955234523547919809860920349872990139794432505595306115812445549823031051442851349991102709659080713909649663949930324298915645622195454715687727072488057073104005382155289028009629184241788922187530735668124193544132585935106284130241576416580443962056672620212180079969776029413343545132417677012280940444031700967635653446448349765736210232893213878186822203561574598154854872881821263868219812160523446276385746563161909708502732440418293613618155262556777533533966148131231441831498159014116648081850844982568640809853500627302116148686682916998834308346526751388981923179187570533058498481196773320969426016008890177435465721156755774960037578930344581190668344205564237298125076970007887498600644054871937534946869590924719339511968170649162124480937070741281319662509064198230327878350560512190325434268479756891633988544983958524116834836868257205547703787359700906048452067620374821568014937615660545198745459664815521072523867573996625637490454240086028419174670347791422412038630519009956718387599258085425110372623428544415511902410912476127006560461178600175550428114439816952760755832626821374173221194491432137754108031911671953728224854849521968857194477265216697476032708222264561171976414417670551390572900436857890607290949236906881083394388283365770764210614135880619529123835589512211279819223962208222651773440862339281978307770564283616580946981956188768798623162973156461912408290458212615355458365867433191611299306233260858933120557933986994384980994208850373093026251841459667188404226035780280631051105672784704337621179678654813889931403962932015943929716278373090367859026442397638704704048761422965862632738317675211469503482464614220568994733118567810055791573886066972208999961595873709000571336264920772236747434856754644186681323600149040962440367944033002732277378635464565683364431674132938911393639309689072456597692456667326081432240180461584030480991218200354026039988626344814741602090543753261083897056419579778363260144209665896640848460975539848197160111627896481575072763565194363824416000332270957594684235964152169573815826085128606519861632669343330150426732978675649705609335270175855817160656631878328351311711512825130984198606768703144744235674952148212665129440087523267523051840628826285108804309558480820408636515240335186979345789373874058065347419134739912476865380251321935024265564498751706784983662116980397516637392271077470346291885602182980779497280202910007207834039457842763891118283930084023500462510271041566179062440754690447151594388652030087943687798252772740595690278172777090659692152195991470252364149046462785373621126507513434583860686996859835855030627390803629317237228049594707157720234687649711440853926190404598746692568734938171163292354942926732631298639277384215136180728266215108946041124046270058124719352544145024632166355557741237446913020423469593561419033212787436753541661844305384400034731989746738200939354220157929426420276909463988654970628367543130678393114482998764100034653279271200009393984920764961539180057609152628991020271973123148980194071252225222686550518026593597018000280915713564371568849502598526206402487917924481461170788544110125416609392564136439633070072238684834518181564052151147800352699670837523716716685248549569273086487985400791741753216809382083506960861823913560455326598527363997203016186091493217174517111499774175763167819332866751715103019203822619963395641464941081068860097571961571311853545913830714920073017860577162352850063353286962816642891730601050964982517635060422437403492722878467620885872355258389610211691734066193887778567204280688316436939829946312452079997878652754235790931320500010823302291481207273462314738931781308739621319861588395648539509511180816004945891329784546023303414588067566318174463622652987391589181791244643454712828047077605289121232473197377555294311379020920632129622620173154782671017154177686353548952383844690299900302230901572701544052685791678674443869721283357970945941836168752527501005902537342609747838154762353640936114581275260509250256371777739465978013706835656351827935095291759076311673117080681343947481838149554100332695087877419977892021892388863522224145471643192447836321624183019830663186725479870333447585454988016305699415484522467704824095345728179515956941982014557515215149200884068073377456898609402072101915512850637318763563980312355302659934193776384796525506129242715541697079145514245309480214846974603547505859301715332378369036194125071448759878636570478247713886865874344980519288137068788773817896522646909381135505545865730524335075473535096936656795682743686185455045602002901316756918540080962602877803615146624392264551125380031025690841313558716810186495792117453383133006799835038069145310751445150083731382675330224864154350116957750551213837730942968764837256768893753032360930276567204286418032519441584264119381853437569708268627148568031837107111459588931649385867179929292519908039190061531247943622159153884069949835902045876741412898325342587145410030980267356156833224135015540921930690659301443163853116976058255482420975380979924517448711157077494099847657405412040675283681768992419499818837917529229587929229436427186900868570731238432671945878182274173811900082378402847753599355316154443837650857438737166673612924632904079327753176450538839793908473224605892894361318607987779902726145431668443438921783939010709969071938807600524125525049154069274391082839000097863838411324699015266357044764568488407460081605278909652927123279480709207450880868689826006927773005454714244069184315454757916776137365423504416735420591954209134952218166744054567753854577079483809150354062565081775802677936610247908661185907817821264707825199785321746663501448903051796413175624623140584713573896120766753528650699996192553962078343307996587163869401192749633261199179064394206273595012076638630770499153229752149224564166035501609351538211740005072041291127933823644502936902032529999976832737825291133903437128533133449913027843867080611187989228081468010078629608505302351993872692087253966458639568878691786331351791268894287507748181457257360338416602209079292083190498459647038674395082459930437493144222821099492974631482927726383977723446890693617963353802992922152574497670051741114574273736965445523012109906205660279535484189236605626646525800660708610694492376243090342079496740926170029792329438829809279853139561007368952103158214125084754330579733236209443458501939569880989607354640885620574275848256075853633349168496440379677909731225524334414334986810620599059407927005391713340047496094361180325729077768516332084243865161019351277531896400971518201104251649720032625536978002580564396240316801323094438765905771575998144123535958181738285914218578588815162132820181911560608173777888737733569998627269539209204533281091106719899204810619581439622492559433758395127924200565831286815854243052909115487837169196238387076450098400514330809869629896018627459870426176478753933683067881321508430930845407517481668218515851316001032929452025167748024603971529314875255117076610786904691940153215994680303942196538080835853377784359566925978271731015928917851088546151058176359752242930491747725739343159572427594184160008947458270313244822518591710459616154279141379563320850044210648931479801049205837768004100310936470390545066694847699235442248344256096342006806562061352714510288875899438839394539901836776530455529265898834019186412597807083426141551391139581976821739677444135825451114488521501858642137248917674718604335607871204949532159971009789969423216244691646714102541883889319909509982542258983836469200235682845531483033785083474844636068576667390955249622465663339234673580045787904659331028745127132296596546845164365415281570658354540244880247351517768385031828675178349147207721661782059246060688011373191493381626486800367503219012208864929532399808387502187325664840917759031966626222487779244610912318937306148299499627904372561950333224849644971663354444880629987626528500008691180490199112843652428704197110215118860770248943522800177899388425850869882379602650497505591019025286893858823658664790403984921115251958839782339553804893541018572310325190382989584557030118103394936412958589593568426696256800763408424792217629373938101136525935281540395393031645729001775373939734182845791873637788909074715210454262940941440924849933562609193803194334269443404326159939727221222923442755982951509801467317072157791293720898809254509568817274574725922682851639940110123557274857369432055303925667405202002212744716735142247398668875801951136149937536624618084861354524834764574384073319766371456434314596949367239016542723667484249595970079521630681695099676649255478209730955987662957426283750216728359683304262378313925226355249185807417632273991463360001568996755355963983180314105167604939555787013537767128618101140275001658260529296429126625307026733530915645087872234426834814665560082971773320627052810053948117042164122425819221520795584137125009694088513393613723405558403639123901129010961919469118840242386911631707430342584459753865572795516716029209397634860433381350203515056584192514811761873752730547892977409386638041296501398516849471196719753102001417236838823076386365009645109244752121906455428448841012823753571036268167341807449771175194771273015913043735674874635407014870477033416975229242215805211227630038056913379715117178442917252669164605550883761605287599221243145588344179604524489397359694454329603311843309268311022170333941664177295107844509020155105475083339770271193252585445965353033247247100725692692866259932275393360208709785801925079430507788760729526448731511908153485217986673586100549784820023619368726493962609063040634789038979239318153237168089022341991880545175108690075088388028172633602090702323731856121977657803287068475005477792455729022318421799762768903845116193763723639115259158125224996683494979003789728116953998823814199648005400580047480140018185157826402337319728667614835413866470512352254798791270911281370563512653158636083295821000997396016936339422773524447262785391989142424264991313053976299148934956057174445508053859738235088380195386882383554008648299207150720025507200412852699480720272371875470307094264800330770135865804609923021372307851832087806305739902676557494181079760335854424715807140471727807515454364259800861204444217964248533383534597819928780835209807552668260098886930752145583510094276828118322558756105156982654762722309232728417618318957240782552185939329433888443760720925096031380828501231068205954333833228236886528668966826208588052968195451411244657320330769954556536441997864862411774962384507414174301037228366796136645401118528720177014708561035006632859414565009253774154728559108909237808058551109909078787055084804298495437408063765915405243571892075759057245268161412463503637772626742356464929406138693417349034885451892878015096069031157103186506544364672933115335768672376339243629526601062415214256761325714506343307039171680821765698020743108934320574945083962970344832060666158358985883425857638611856497428907617765218368937411681608127383407041560685258469645370408944477010157027508360035939832003817595846132816868859801804604782990887622363497340971157985525622978209234967583965021927213919664039724550362300133192353740361289884570136160904487342564796524458030767997792687852041830947114451777638801454171218412755790978812219043495612152139031064931538239737726693351760479196773466507009931995669147560220594781552764950803501400340465567433295749049474924599634484621211329291430025297281292240583375329614588549066670532167609350804218345552983077216814758408406055565408494785379485269807864341614549949089128201696448065640591109936691973498091269407789181994068346258453424122550527999548348428716300851605582521923902365324478572839739257809345600972554609506891232657592878107622360254853532755954311972004528517790228245291359921569362880556279434820761481404740979250008761036089602027506138187860630514159198190541368948554922527694698052265774018944602758878282825219633880565234581921577079348389628184517029210869871917279825484651017640098924656606478753676803663256432563512374371125196077308014368107365859091171388445676991022383980529628468027089088952007068445965314002445609121158000181932367997901500701734089236433069017951539073888092002284106026234071207399350158601190349216957267099998455203894796478326994865036456943602719064171333252757022745774743540544194190306586505964246733443062480290041937641190620666971482166875332214614425389976742113003525211682745099739066384654366607653143469532853572005124653865581570198197034245349636577453382748976109671898411743811680133525895288072228709809848502200990471443400304534201422680286229697546017522111010728706373569043690389900515707292290788885921527313241375501221199565952090395288584306891259461329680915353497637781359116351374007120425533823769988150808546933914669710091810445577661073743380438958173012053025718920578385375467446656276327413005276871471303720932241438937082661302347340399472073201729185810034345404452547625307244276729685468487448823035582675193563088050744963499679116855515663563204559684127661795597677575280044071123256808183165709316268993136642275470910609572316917486102085039116012826223004608739521871060548904074360479745692834335016818590249990291858387803363432891401567474778929803741469150194986547197690180228298001979465008016538681222050069452645853111130421589890823093297355789768362468118704907911438034700192629011956327863660463296267389947012771136054646116354214464996509110465771871121963424182085655569037515857470019978125437516747118445449949990706717699931109785805898678018295265809127565728448987443547036499622466550583359636561695057724165567386096316318612848927742220842151713760668971317971509801235537347428098113252718083116174179561815949208931924126168258156285867930084638364041237467773125437937501345872826765651016855296683714028157094788114409988012338709178784409863219246310572721351874109862105083380284578841658140267207703948218866908717039839457954534669468550410286560713017611528908640330846128459144286984820155475022887374869074315079680284881844611726453347760737262129941486721875092588735439361404301872700425982817788347289615237735933285395783059685657218815438964429437023808409008591787109002814559029188995269288350563958617644483278160382149955774998741118819775106472327812209299380718515302949433288838298716849060609131250902817752708818064675351891466925166726092361349087565785875465870148044167192938701694168654206508083688741625232116514454223405603002508634794426367807905592725400790317467573386035633772740478577307749711658876853894211848330420791321992265891358132121098967502366146978219273372348501119379810270877213321280433258772135638530861007897034482213357963310066152870957044319832664982605892382398820710229943000441878982312190595153076483352412811515162868365141100158043489018538693656406723823124056557302903047366180073653633741859538799853397220840280015374285833904194551468601256483057328945284699836877154925293552149541296879473225743342805958089355633423330636837471092201858734623461596654597378085312114159569527278540312869290791499818078898196589921372405275923466492681363523573279755368680925935983328379871946824081444570111824931220386359237445265311955619630892115961102939222418400278939635360316816335145552232676341780853879450434524670495455760035635891485874500088401452153065386386111219874852969450410052594623893128541343388365263264352107351611540719853161602751046210364745403013588037992280327373348189634410824044592862341688924070646649179519682916494725150070994219531073044392475863503718698938163768514674418662755791217172407310425144255008996761501480072311612281121605966482309113529723274774040159782113733491817998977828821763520258434445553123356919945118059742659352063324522200426419563927009992131094007001278309182123236911318655272512673642020445429626850743519882840312802131070216193072224003705330796840010516810185208913613977931832461976424154602628995893169690233964733678408606258600322052052034276511875764849470273574386578301465934432156176439554523747249153506085409535580563323050671923384607340295680199608291685875184854027788805577984859036074085833478680621485332791476680078243599659344068921004013319658950393861335876634722004785829739539307929269376265396825778807418317390888632066628174006102645431255117886701472453885801081429686521900109576517858453344922589339989984759314201665115799218362255214130804476161511820078530654544769175277861170965560757325704643616388227310114617319333197586696798326784379097883456673750133060602767089510639198140474638536411411097734892883466021340023854389957410906649054968099646237062423160894669286393468239769940402422965105552116654651299189718472210536518321102402245687101633255146515030357679377502584771974200272110150749380844282233495890521621440148456550221653527028886323175852089776761250612348453837890168877170257782525647363960618030499903377804108761290278116090842074908550716674382463285390977234021762461635655903195389625476021000946349004256586417905432114833183592616014486422179646401190399295346889460615815569339765377018459223590463897658447978235687587890392029706308835692718118876993054202491677646955119977207337885898533052761013692257071516442841601947112384751219840209870177572845726066370961718576701629777355794740465165214424185539190790025807087036909203529433703654981283724910732685260802911625487112860347669148428282098416167319316369183680200841842224776789097546283679999426388235765567983809542953050877351203482609665234702698062979956554248870415238277243482333502598981107521622901372693710185317933197997131119719752889303495741338528923439529343452662862913369369308510165814316217387155371395669135261043543746612951410641453566597969043582110766703035457137839017189774938182824817600859000372809747508435935658687076687460554068721279680708564860645813704569782654923349776305321061812341660375962752274114681132821069616793770709658768862725198885666930096876094100325170194542975835712263426919714718531835944858833298272891905094190406315288620741950300162112839067775626575187198334419826682276346023137129826996732054723912080596612154834840308793964633546967515072976112370549886336294533504253597352941690677895960151018093605611604246898983101958161111186185773513134087039874000981522509959776831066680781699468186561400463335326440783123411334005719375479728000134175843855886384209607573554317052284103943825309663454292744561777790932581514337122218905772625393646435998772217500864186939128063571553918846415597473961309025011861981014317854355782410976482727431167650954869202007493367695332343687193231906206116293678938461659768635255484314986890632151028326281836449465106692257818254533385102428815128233466828924007786953128990697264008153182844852542424110013571430674792971211188663805189427673799936869100882405018448547660234120616624912285639604203569447533148474389088196349497402999637990876231323496846161897688340440994446154444513324503032890028633090480865318280590916834206366479116582084761015951198393578887389888750689574365144171220558846607792879457100449160409085309250366288264767788945920610809427859926442195457905863733225032740968110805630049395271885478640252843688228533205824543324913388874558670990382199185408308735874651814551394549680779336586856507574813112443063503727927255138101310327608814003954207951472542399620377557898822940340951189041307157806975104960248429843328175334253100224168187001668438758642713441484571892802478522328181969624748656990832857648718980889156976205150181069602935865917745765491108574583368876351523768552726264005569458421181869144759233954672110216532326688767667835738372474906884225305973173174844454594924911671045050761290556845184262650064173241976478839876892772889263540148734380912846418074399964343016232726658670526237674629727036156272983447391900907434931837115404173317732258602855775923771731018751176814671895627403261668943017140375814987353954251693999453606842416301272216381034627066472887348493701228120495442106634858836729735189950782142761578062808369152273377504832251873925578091977115188205090458016756618929834397833764306346146432267200993102436038233886222709153553587969451844362903323978985859374321977054089204478937520501950939335715347921950167228616448649120819584652900792185848144374608816076290565453748678494946381772929679596317969773213148157485058190637831753651794933986256924367271642002930033192196783387839771938117765048032878212606393109437148008015404855286172704556908228950372569667390962273896251270447163131017462573305266602866370300845292873876665341859193474235681412715686270693281785366709248325936463344241694442613290206252401216594442820780068896348257630450155062474050226917039708946450542248663526125592226770499403689058055752634719546503633213278869527685957480849624813659518416861458823767737338633379588160036151003466151697396072482790842862479403569651764391406721747229136152636673738356740694835473545764886509272397352390097785875630846169916952070792034959161755006148269609478721838321619829805754641208157879020974425723383386522452485905897496420125288348499391607161406802384716187394100652055870193441118440342919337810115321326384527833200158275653304055246099232515350849721027603977128185575956261936493487664311959646197974293779869442415172082598234813917610334000792332729157835049391734463515039949221333844534099023838500307514025939640863129405662989924214734419946307502443673703236794991230828583804104251918048101751392322122801326903769310454199773233431218337367579339440408564777272632247499194210759837213045469456935176174312039870530398778498877925193497047673489279924551461515733382207244665140253852943626791066403736661153506200564585685204447294732269228605053861402347367014163707426847969725257714759388791820540386142793504199484608511653548160046804044549235067395410233948941574360180533564063485897069262021065090244959757931379739061615127979930950637155184211961056542779497945043674792406849414734173640226294861166247332937198136278099050424484394460407757303392041705767877187813916256813822700582519429200924669059988507010098613481591024010441362312024745737574439039909900085959076278788081011971018194207500563069612682488469774372987758471132659213810373437137160076756758097000049952971784111209656024022203095220984842794332315432044308304946879368776925247719716177118535778411536949778224447998981422945752056323985506834270194621510963514143735884922338296585676124395829956318144479955757787226712072183674346365228578253253700015766693636653594938822679733898882130674068501234789414318146283439516857693898162832534387126829445787736575881587917991317488062660650625792025842973828540397102642482899933417015777155693178667730491725278779549713659731845913142382873251463247240303213951461865991483834506468058739924012116071063201416665758292909881403671363053592172502645083306739625137494085819358036813228429741804202981238727332661499183284094782915033439298056238387138253106675232941244025316703850428358861703776345690687471600564196405151097373705165757682771277594734101208454879280103417581383552120899042018934275198018645515692552410887644775076206767266837659572255647429591320329842795814013415321824860399751249929252375577338595078134305729010571187830702427612663630505675375286109468463601660506998230610517256273844411926998815140324505975970475153153342520810992131475854362949672097138308931166062362251176306816440110942547969039291385318035358404606914277900915427679174161844518681326422765764961033803389024763223106553647192521018395362717524556985584690639478968184942514048309588306195611447802793573528471772465922926684701171832506565551874183286340515965413750580840654838982853555437921332170528923020918456008585436408472615151034388621875653219242097205277230539611494195041445788608889916442063623806185535628870054151427849445883074807684276966240117666454811646829054803143747122734980484832278338329453285360849820414587632922462907331157143109604150873492853429969678777276178144629994175333614693187869425321482904779186876512627405369903861855100237721523811336198944569741017309303614772406930397903474506760113910470013929572723122972078485921312064850083699819129617378910358677588713545246956263722806902906677991615442067080721133222540650204337442108541243074444732655629722696269153365201820301390639232581782551513888337790165022138460675208605154524880345633297216938225109163529252260010791040204503203844258341257546653452965162471953523082308042944293181393777760914085757995149498245015129077968446021967858587334827798647641500001962409118538388214497531499193080588212442431317174299161650307031833814063417971246907613518821753660927774185374805994634624618298492377471781485537367111244292582959722363269886832339628583207908204426814449368463174499687860319555543655847405191629258311027372340774113570756919223433509534123188872977124052006471095192926857203377847063139387198598054924644403528409588489325465956317042480530859751975226840980235583180200966645722328138221239140180543740823958211461086557698654906818493025873985503529584842742983074344301752555830414261291679722113626731296300893889293623785495898798924218009636403149280617616159392645640539234978816139655186852064428284331275427430248286462902879810741099624322284563363027228214277985721543702349817183854068965569261384186032416820212268719398793171033690468703179441276681560892315598284883321273393722233144637742620554891934656688668842233133975535780970883126281444178455695184543197445355058440745742278935180721794735591162799431589296060854004361781085148941581670220535672109768206713170696195279280546322873169403250679510067940467172537752943164252601307455145596293647479925495769039961053509531438664734876375068178436954716991365268408039167931344293538276768490093040791989949398266247909718839557942247743557346442258109830929935140668219732728453039330631229855803639863792580261340515305422394885408748457008858562458321213105413448664429206083150436485929088985010543773765777629277832600004022827269652040716711806613153901834286402896329877579805984473795162205591092457464117463085700212768392116483535423196236449243901159189930676106856215870719582936999051024879147191737726848084291128292340467294288166068936606265292957629992690523331353807914894281242347059705190619812058366498109423506401444432934769583398928237289494483102900700660002337985846853685811688040087824243278620871507426049723422707571000762491302367826863478060101735591331021563796163755065915776866052440495688445186786785741612087740708756640629356143708377182507960789998894212184408412946184161493261706210928382103991334000362771227424935549748069936931426326850884469242123679587719797338182618833085053193613128565570735908676979969794841679459385432863574389868146503598150199817187590490564915236663876928774414466254246140443294086393776000095463010810451147740375268953264950189569336488300852809554159122604462097641427646966625805107026977247916975458324500496047829731895861146017106233964721083987860734418839873717133118399853299667113539356553866749245835714668631102097571798650280182750476203026029457542124318275344155913500765601626672469234658106783132694099767976427217772204260712455474595788357997002016202932080491525300262665799153880106859283181459207832202468875012845159321129899082607854349163264222242054473080152124371148218898231993113731139781234165651996045057322264200018238316465306711626012311680971517471222024283477002771192817364513230338210994026067734941696340328877443715439324500630289327199433494991466379711999052957857169027105937636821429409459783518658496670123953129681545776395152123527971206598984058805632574931035230334756429701415149465567428244624813888984889944191973295550797654382731835916360728811331321283222310764358730378605669367605539588458935062165747156326887064133659427782894445954195658681993558494931376258959600125184048259115653669554777369237530767304587529874961769524540518932200929633355121374802251928430641304323011341444503408088246655117388251020245281391453729567824190307085872324773092955660519317697422520452752765378862844900768011755358984499237782453429329619803573251325389750889505574931103134908917058974105489381157888930773147287655524926657776498037499133903037957125592776731238479906857293031399780756959019658309579634568782290853028042539421003817059040968959604021527337975396239799568817129698188307783800404395959495884010916298140527812597265131405864518490194423667197018110584347179779732772495093894231344107755368388539614188179306689338342443937613411403700776713287124129739737220452382256006253666257834136140756245287111573786944337682327722814386774705049399401446668787433165066322590451388506627685804764620447039019165953602207181728622384667997845559966451009074703920759331334771246884166722667519959446001384397220812805971499468281439350685822921373666077965411671723492369509187495284735794662245267209652821710806915579350749019764953919706507077273938032718382039971422952687437723490603844056918863315194606138027247157487574890284642978654437567928506305857617399150365901816952720154733915240714515404665330273089792540887739413905150699555495610026700332818051911593820631060860681167758202970388724112186986433263366240104171619003165815735026064372725425993361809399204121573036656888772765862864938309690250706193301021082324036294486625976992885981370706505971415507412385228445219868467392935132855125138020067018923548573477399304966306245824757772181173504216457493551984424244547663610318691392668628579463664430188585095272091958694605266351952178885687434522451613086570391898840825614207452710713405685194780868911940173539528209119271782653877740966921716732849902345292183132795373558225270192831551214308462666413414195678927189224775472772160611114630027304200163424006349606335705456848968504708502379608263823051972640602552629607613719111361901406918175044910009426642108898740968411962506498152151800004269242224354698585067406483014949838183251651240400217825993452001043487590995436702192793670585474158329760296096996355303086361216332673270810273466554537496457654765974799023947716660376509872948004876224725992413475780838928825486574724595905535310811524469585160781566667089976351179746926887473753219485659732517674144282203177782969561244504368481382519470073460378575557594208310368572120591928426026754804138655534501056951977418414321996658026908371693087700011986937100230675272666653505490629846961071490784858567117914355237484538421258996261318488244783831019601773727644634645155360954297204928186041858096371632138526380467187355506583371394923501018017878182473258978036185739006814782035976330333713958167038875369565201626058229048675927055231991411444528807813300316365305198289558996355885139938919614455906703200613571263264564007076691302869460838359493075802116794232150044288527353663837705902761132741622078236991574856726803474477120032595661195953829800152727811008692790023447910877900103579057081053413857210720992139587454911323804139012936308486443623005659131571721321775306279995208622655517231152371696867095780068584443574728243458848074201341625710986236285644193984653212288660821991470356219544923984199611294791066283365402514463959570990205976107992404076040479512709847909531598486014081508168109905619362700981319640816570514306195660661243400132156113529777173986204174894970020426865798101296539374976387199184525748846834985702292757340083090071985276617933037156107549541605616671076196032078280288471213647457132187522175910878121635869946017724578821505981207566175323039063560747900820406106860140304642605206525558489706579433270078099700797174609333544615917126189543905939391862168182542440257387787999828459149488352670768529715272564753571277167428662871399537952118919264638452222982771749934232929105196767882365456462086111022666267549783301238239957725278558707147898657162087593683834789519831113316740611736875795581747678715310161451862063329541928816175394173664475635109916960205171761384822640618812852100945998240293267229122066805190126407839158473983611061370000816407714811229986724880974453022740785789377155227701144187107591424191412452577021820099337292743764042026132692667631892185557796851604380922580311048542024098471387807104891279430621608711364538018781525371828134609940785326308500064997065121002661737511803421538349632242951196871525220081615308097323409819745488469508032050367056924947720723389974204509482943701254373473720164020726994163314049107308095823046382516922651993978639128125696946687165455173141118987132997263076989117964911457575796006094675848064139502014242618663237296612674588874359068736679187654472969177196335898850262373369099328821184045141227875501128044093247017482928699884950133460658207148947818417238769645032539897555992949825688259712717064403604226454049939482084053492973143671332955910372569781856538698275130052411467073714764540940042811145815836327871796307271815411704050350599136133762693102231355616962876833039941362318319083777729560482862962259186753801359852813294430563294858366287414541939877139732422781064214027184704280865869930815975490542494474168078041884213104950111546199912413962827358399828701415186904712437168787700374670643342098370565909942573138721118024047665128127544029109005095301712237680781322108831104895489645127096513792521848239087223848807157105537262065972745508428092963791723354047950409545804344962426869063641835568503705731226303136028994225649985116210908436001498466596533418319720913483305480751450669776520838194121792077560845765468186602795998908443129733833056247427849850663491471258803146742946609760219824608450315992775688534210688016958679788972718575588170922760760263979216173484056962173438321117421675775135811567174970641443051088083034946942284285946993558681374235614719464148601404445152598511671908349267185159515521861728149709670712945973796792379811423642950300682704398975901200253882732076940081823516034651529375683851777776189246922442599041783396797256300122069400552101106090067662872179687261114280929820520809783456074637016146566295891932319145487905167220094668527338155222066374966863891282459061192716879301748609921755849572857294700355345779047614606760009905471473582117259701360815310266438929209300875778483882185671382728509928661903741017656092899553546485572087827711129699394122503975309529482168809638838838096543259004614428267531311203765506009210516914824775819398334902162877928279272065616684232849108454179739902198183838564041373641454490288355752567976635332067792852799816026874667722396776399294518605208516215924764798344965535709603152623482850535657887139672913166142213685154728604184512306183892114978862218875280564885824620424930976983075073921237732597555273638874727772883116329182946409856192622355999638480670121591485233815355078393113409947027617379174147050920586409355833221403729786627657431881537427053233731278379329158460301115427112620570711132758235686065626029106850143262333947823541667082991076026599147558764376477303167492509605967172113586744135122116063758580310917766821982723848020217671439593571428379592767792218523661478871294096512274542847927967985734627940713694971570209550861241708211229183574920407548752738966544839487304336930814922198562979945491539324316022051555367309073358758791420682870849744574118008908856667771958220347554799177059559084396425818397150442031480590987114066087560466195242536839631928402750548346302912131506082925185530284019339814391044854207817647877008932531155452475668228231972171413480561843359761759654323975002215780202616339740605212027865247218450537225387255927545378554463954460825652534160499873125092671979934754933250979440218460891235054967558036541508184115316360895295538588559861559508600980407869589436768322439128410104211406092885599066003060672682060639184541956668629223183793525478587028563519795758020692011732531011439643237133483058568485826105452130739641245083854124468882569879982876867349651411391537141777448205325312173343819351527021083361437434016741389256043096094016198425167682101147013487694446629646368802043422171739939937470050709999498711031005917362276947120815642122603558963245118148369445308030938204626695914724998951226831382972717384779440545660003975392025641351996283592327261950411666480565689213611349002805551030337876940543998241316949145724151853700275285904265356864739507880114566061468945575299020690471765023272109380783809245941856698837524433938330234555705837546974195155748310832245715047922982343345968363969618380508286647514277897956902482951905046897577361668026883584436841440728880173566884579162535020761630311624690008782297526817679733877833759243340106521657708234733214069722093212891429103594200172153933125199166647784375498507256220531901738952566587094984877213009971055430581016115044993404343396179301967370598516855575349769424893274780167904250740230234819490158427281695384773794428496745591954879862629884133011664498327077655693552916916235690069027025990104162971471235016041989214010823595317279617480873528721380881480602794463075785714376571092183373562338225387230719397388444819319787647726591733434190799266265563196552355428587479645477917547696182725434825775434795105068848156614032083337437437698979324533537778002686095692907608871271245116820585187753050001191245786638752204700108402904789737296508593460585362508005582655450480006932230285232113141125755793295236026163094262720070276276603805381764309434504684715629921691130034450550868906036321489689703794278686681215727196264632844244951274720386898958743202185936729624976419277104764783384372242886457110373919822359316097847989210784930094970989415685356413543468104711737372845526275071504581476095854251054150942932729379011464073526764369017204619588794195527022308583227874788524547666092324201061762128020619618389418013585923909265679836657574175017999385364464618056292168418678128345993143829866807296560113890989655772727495878040291109148168050451889391236316748485865911582811727257914218343937659535698911306821375071706295507054789446331666909581935093674491635874435556843663204418639777320676400561018605151387797485914916123169281872505869905082094975904460737589792331012182424987239893260380165730010930599886067888218509665436111789218397603384244939688230696820488765843081423249543153130168698568609779276314796436163441434078609955093745301730965773212658901177730277601715841109889753833107969104427893701503483464628693496877300157386711918342196058018968682993177967038021037259590199770023302930892703267684741194291869790550593044731456986844201820512276312454119247811744351769908466456601015782266168994121367548557102557664663969700740327255504748571460067842942973272261061617022055975723593891839267365561951034721746154974162146524617852637220201976317606332797212596558042539960903760469462711945478823958041867405204338457781778303514610048428628178022660882086913433518136270922710916175237109787822664887011221635319256663067245640129266769283201632811535640348505449839047574427299274890201005212459022217477694799823524735469868568059540437414194064234951318133588061527418499835569315466662461214807216844645459217910152610037458342606611512251436259753010689379248025813101704940583609962915304667009365739478302261092593892609875772908256591108017260677158826949307638030804200999917474095776562035021242319254951216899806029641103278215029812539003703846953963026101722382332706459494165735422990427943655611134865084843286516664708618054377480210621237634985555014530695944960267231313057196711718828317152735649352076688122871187807170670868205553247878227322809604956554952528855222744213194471975001287721717492650620250092451075221929023301140064075913624988302273993841483615540875328762752324359802646816253478599103341168216521890047416982391764648351762179580574471056601454399170660434129637719070886973954656774211046919302506713625115499600560779195299506772829237912710903942837846606017134758609335145891305478907838732093832378118610568724303796745632810625830167065313627604800341342239357349831849435976752366879904245169087179507620620783757252324944961471624582388813899085387725455148515987162833328480215564361983649401159403883479868074284730696159591280566315295915996733925089471429121613954987254830243404938893584042772027497557952999829402692644410445815268473427323785550731710573815667156773727754960111919455758838461531791245516083010841425858557378045202367154767368140340834890330071652926695687199365626920839710284966587120012316079949005758143436244834666090763265117388278610447696109457349311898634137413491059477785856496169389714725204164086194939505491687348001243754010933382745629858571124049937059298598172440848114595004643084908959053297583326577260633574794153677352361617197304476904119964566649306021895974334919691555330040295620374223357980405011723840953477560813746511704229484872268772676398944308976856940546192341426435188842590025583345600275606785918984823736278041242813774938584865569777161105319114476942035125244775564196140338570136150461284918408023989098412752634252058088306995963910383430722193219375033373405451946073891128200677391165514983055804916548698269561241932755630208752787160580794234274484315384708784742177726976261743848498712164190764102445630182863246605352004872299128889820036360522739153469388089323294713834886886161072435371217272845365952405966673087107956604523311071660867285536780154397235262093382854310214757352640540053113637757687379263376897976840740922929184631701102211437814946882019187791209151850067490279178639991333263794752775376042939397984438103982229218864214429810846472469575509358567650055184233755321945133385000342705489612779884229075351922744706302358393143718027528962785081575611113806673131545566975795307679191862517531444612313320207599490075884341687817780604118297962364431688098241562176024333934903913308776859656786415912949648560787597088332626695672208667314222072311812954072095887880206750920563897075258632227106858273513284806900855222554477063742533787541992190566819902642260540535998365505732055552542458761337175528915128338358933178611753452954486548997717296396982376649989034751207919422504400910039505012831473059095031450376147987426290222891608797255575670839424411827095423378838554281203623470202334482298723239823595134948198886624439454822942160949134786692630327475846448616961927632309427870777220589464587794788679056962216007486762296641609337916988838388066600386614655529081859275884939774810172792298584292391387099743663248845612531790482661483284467687346911109011092603288154535708616063321467555941793198821064899448040285924729208513152241736439450225098341613723548082573132644361926304473934590453428234307445938574209789598831123728163581346797366046092312431909586503625319434980647198293115213777242511879567855787343649663365437320518616775356307964771880748123336753347689657881002527096711510180741968124262679404687429712724776958652351397232123852891458734147268240920949372861607736462344177485320870438415774930803565725478926279951426484623216691716106643828067772788604488318452231024251913725008861786757808847675561168164748777569543413751800471084116348200823493286223452029226180696716813012207078366221474316530053448519929856292243386640914763082924993223370263008123638897154526903360808352643079842833602499624433362620988353424578516308921381615463691139186731242126296479078187993542311421876741995850740963146588004813271410455672608517454082625965801697555495093850838702127214581616875619911980039300390788122335140948375449990229039898504156342875825814734849152124845947345897512719046926500684480441367419818840681227913245373501452893255959180958660974799168049557505641417125713565896992866097580222516455273966325132970491338558198663779284381804873628056014334880841718120774172774973960426194965005369315911549238226305425052693162616476906723952454188292213161648355561699403258216559577491354182701512848786307339871778440271113142660116168307943874391856236375111948697992646967348019839226201483434101302919073777044763509850153778556232232390120783778718458933887373614926952242841573279340221910444027994506413528062415509143058500901978097002376717844935414703843484608632486136030069749041198813813652107986027355018090232742583621921542608574603672507097199606284860122577623130538467333283647830746307525850478088207971050877273965793696470222198520436383893249188768805940545729786727031400346618159552341883819093218053517551860708417252810624709833108200699841115170285591872272005861296805495465236538849290204949334079660905827083340062282476314140183858888423498813495815291371763173437764362388979518971563251002224582281771397501599351158022394625574561275543385976343005176694418374307351353654475804881363381309135107123649360827419919290885887622648896686180352061662142712933346385500984628557706732478498518122353160518045944063171450403867119263772776687238179708500237990689442738971237471758020634516072983120456845730986764935967603683513006142564746471866585950361928077052930065967320910782844391934343579511966559268604107208235376282593384468630835582322421954805500064232082002890421605325780965615652816356664868936160430061110212670669086371524441411212380717898027149181665684757731087166927296960372233927433412519645459567155734521750444251636536589642050144379294123604159552132751473096588431459636593440277549405822682472401182506209469650575719739913916779664749293721550241342266482746420217235105982386728027510489828062724465448887207496988140854586982926862860306284397191577767239995780754139968422134057841583459241199769843573186976035622558342321817310498386035397840835936221651769418845742520938500543083660476015136462021600142496568008270041171055933808112845033957598332393085545743915912375029201597363756493992536419753775672056896127744628502218000289713732729200000458722012879161190813033731608092406501314222364415167458712884870686023284599678299058872192070591439778209798370492864744921613118067860722336917730611510307120515584728950753401052332566199108416551245377690104250181787515709402857315256389983649873353278990732924122415808206425664562057781715676168265525277668265608844606641797296921060424353564142420611701084650503163337846503261693562535366971828167678190926671731890598164504935179607539584050923868668487168045234799418772577834320977591172702082735885515431282537852024597762742906591169791599405724899629219984775689600266291261191398612271359647982488020055695063763427071108163643122659287664615785505499663091380367759740810309683375933392585391094143764743600313139834426216721633528850913611945406511652854153480830077869804855184153989254420008419252083687409242415986028234885675392011560196728721341066303450710124576460828994303395948507492202216761916139408347559657676272058010007895889622829270646037905778873638131739671329026150043116005441872150529056618440772890995881733914408831613453232943450205672725185540028676067369799365628881653727546707685999855497195954261800515976587873312143933148722626423246784374080115457836033398523612877620395687595624126582161534229736071860657269262270052291307652653347621556012203174682717622442213835578186727968949621559015791312409175646902371171588948046656680080174174237190269116366317021310159851324032892595664881071319443837418805384183546713492242892571465837035775345725270489195646588586045368797009407377050007328806833308286006259788890063346976617596756964623607908656897829421692180982444505214795397241702240446446741842172536804925452170087290872988038592120216649962424706879658301355182898515467794221144595582288606217473921487033266609104050843755048679169082813197452547309106667698879209698763903680720619716130595305225526688857190736600115303143191847500687543602824452539866275827120185299625982192017635831589971279785006961788583179351723353996777768914918321206017953690872852623340599388853450282062710847127479040951845455882188190548369582126232358651369849827163251993181881058694540653506438649970498510743083299899600077795960536824746849052924508084963233949810956449184030837226213459223006633464286539576095174600810699729286451765111100468711658265371612326797023191804426821598149303246844702762318237805597751261045001085235116815112779229068724902961222637925026864685932127639858197752702071317776958676670058358726412832937173266567296205166602424292565081053035337475102922506951912610375855645461980350671203297585086784983562358162719178974295113548320659034389068758267190139443815408984185509356566820266814129038809208801256426907654846126097139649320007726757790984498243936484983077469384223413683218481362419806632030163965328739212197574574795169565707004682248300106083604226111514890627279747916539458780911722381293261292746789295362051573375947366087381175903495274404184100422585519851688190282134451354754790376983247889211718006597709170842879475857655910531738882185280465731924496205703376374650403951067306083198839294660142590837897430477412994536581468114119647665917604421550391455953222689846993500740424496831074335068707762396274907647967407611881891993681072697212156232052462804937133439325403757702706405237147295642025237948161820971806616862481161219047994251109664111249002783991674516029847700397176640973761926617541041254451875593721775412559969055540816995368904607940452999455885090960045189682438828719486526597657205675811364634181332975222304996808335601748305269306576359827981495423349121516891938547228155116562500344219188452744087521067782913123069053685544730033749509816365353339012875431863856001327659946163012185345778773512532639399218189664943545372467574324738242083140754005976996661763382167497444778774901491294932408313850769715122661312129481101738003383815621739862014258344051954127491231842821060539036475016850727546611818861418728995978052192516612394073972666152458437279122994701728459329989647056522038302296775056013320985134290919600706429667316049721034940528403987982931080700284636807259191068860373414616740676745447676143110309061112562781298715265092088607027585649221403366137281366943775263142961526446120293029291412042050741373426661880626407141471042326240882843882139704621308824866707639621497416226785077810187886072811709848263836842859508275930711717411671250498009304242010990360251163287186281088437975977239504039897819488221029791753003105573151791676684958549873761616870966008291314294997238015330316719034803829890822909343538009159629126978458235282877861243122797426700877656726786002676164327537059998517767391142612925591792783252345981091984763214601299007671245502324405278704480918128619045403117324781344015643899505128145302685475684027478279303331675833815498207065584671169018035918421994077929654185498473353445145703172807724696301115075061975631666924318477903622657282813346668504161889178731861645632026704907997581117371478441550960665521929345872464701952743985600804380070021297642972049768267623803197001524009619279044610773425336716232309761191074963039822375349160656315597366661882168134612788370686605883433605427728056928402822448622552121369595892901448541692846285575953159483481994722316315478280655324927961129823396238276059682092506542075291721479157299067061880606983856810033956290806775195564357783037392183472813867671874213071569954427629829212359558462571544054315077152339967913930668115626919499191987670505566894182955921252992031332409906670176542495384245272971499502542160477613131605663049267006169851383173245751249525345434572372836120360533553115450281817046325665868775280969750305281843431399647265655977147278440538989073367016715169603663068967247583208642450724589438811834918983186065939208481432335302372443969275320608590248873468867954912772250249225067545762979363149299005748407735480851076506527846193477005910195946668672444469074295193068862468830818443565230581007047467849875688658758109309093192923340919903804507857718496719318022072988238323175189822225082487446663604820653918834092793692395922636316048662343183858359253835749625175663640791349200686678699898872756800508687382645178757941272840554700589107394007619905335607338680595729201449130544663937252286694515085389505874630679015512038460660771962356204391807985157790879209304178681260417981834030366128446116611488512945970772912043121803947636604336405895949128823089855574566176288506755880979051949350417954845904195889491696691428236853831857436559350055868101640165982525082703309480778202111546275628222983790468757696466225657400135934469583359495961305456923711855201235703855588797220555138844144220796451083276200910899269197226138718551949963599304007123295617670084290461143610186048868066296028144148376434629314064734591423720454392376561277348402289732456171292064421728557541314099670853414177538207097881222076030849326797744731093341330413345282692593759127783146774744011434675837884373516407772043144135024477814777864738444036656031612017406906914159193808556869928077291773756919955940509188326022904576770378868795239393483162864366654079629976888937926965871342119036507905119629407372562550053849091779134016361185546793757468839138380100768477062961713081565066765580689497648545770393601682708395330712893211234823406980743571354491557379326634263891384831049332305395718246559428208465046853218346956654825621457205971940986904296259915611378923178337397426479682074994319413740424211968124353141224570472060879301634980899594602717917868466832867883891530575064359334829596150169550554699697417454199632997575407982053059716565184338269627442011887518056002087341841151545263854891799683051688925920506583344599186268122835947224500413254200390767930477615595472572324612004536683256365201064446037229149274183544403636724010479215360351406917404282620589027711354622650684746510429920449708986023194917183773111865480898704366644496012896622007327257019121221169156552443525819639678369819502040513923157781433547047982657336743545102433406375286246503512906731666244184249548365265613685279246941501621366434253874237982887458848138324333655992456516640410737197596378440854240633258259536689965141404905626587284130079632507070190991610230581163719276101416667730771006098905791570511462869655477935001517505234078858703164963621133173323218034062468092078000143603790659947195112388931247883769036505251367482003240137641584106913167457834872375382570109158456207990834532790909060627964044655393216337510007687480532072629193724142152351721809837016376362613987706387833549597718705680210090697077373875817524621100889799191849218027749544625721037082304380061623701305226510625007481505045136542306642505089455730665134571013678940330337770092450718976160254928322717100137150556579552909834834748873991444238675983452204296234632730133035714030372973341037146288089322972718188984165269612751492592092170194420948089107875238738168241485665134151319258898356043891331594247122215170399274107405086831155350713166699087560661201195636652108420021703578092943772578026882194304962687746149873826785729914270455105589905726660178513739600894777691838070602588686044801885908889853652529935873520113396224454869742096590325019387624648777401529252477549484263620626874471190238381728845797527949809048368291332723162246559309616557169438727332839965568504763344119972542722944847856238863182652175455448890436753500997534464959617130048552967883319661327576856252447390470943844014105437611264416089020110506018319353988368481020894042127774672204008918484579071277122278699032431518643660706615177583249907448327532400101766786857225671536462879664560985116346687569390012734863859902759526879401371364543030600166566195320356407935820396519233584020898154334328865096279945928386892524932711131960955091994415280506685889482643596923840958450862371630346000261266522306564610558237465766433291862708363350480367646669820983088297516118144574813939110312575859512330211081731483405714418005984653151877975006137371635036096318851183491976699175762041854874624681800744306296791544730446933596246801042051955021084852282796255213387351091419336720624423716927336456136796444078938604261501389016313766868995318928420122347724477220773740445314003160967566185504540712744410728845349223020072249552389467548832132567561069375184064581777336490446279694689099324060251964947091633423447727926508344808064416773593110463652524526356258734671498976296732878487155531957307751355048067605623462172139374316114311226663878140647630285781733543478990105226547594269359563783924373717395467412147491421912193113028056235331364969939834565558939242838748473742617425451496195781572957669072760086541069508050989478634304007584430121589690703676691581943432809707750978457713163264146954557284464851836552346470872161953457245676513796621644221160183581624566658200424856300292001961087512032471051975408010009547863976639835119125501614582014165914172166586426910879186139621992594533237749642507594499635600328139655781917079912145949930087200999232042062085276830362117675758755347160423167923656268140393553194509220633921880641306623937139239995105472261679248031952136017823047373419023413377476656925303484191702084674328557729957624564116774972799923107938682508652852515549625016740029154814595810886840396334394113549608388407472657294150462353456871729882626386465925342339829793771358318624004301297521468658092888427448950900918285831965551842626209794128530197189422483354678595135236680911166685375049651286391913171852346884623241518073721956184526475133478178896813779983105325104392768313488017090574629807905341865517653007023344992765003380857389463042875300004110732679408858854105499920485665035936255789964283728617413993855569536036001068952585510246989808719458722540008371236322085619795869229968679659530320287088332613807680524976508875123488630972941520484365978423934626189169788968577791590213202939854655777617953010396012974657784280671905262210468579575469625285553416261150290590552637899675466276014442859277492252156523190373639036676497092745618741411110139018684423793482387567298256261793327578714284091466182748501750193311423349002452341784664701874994907669530330235338459931716982561605106697428681302966532428345932811875489047528746044897055979972976517023324166731777981984316373347704559681436128661888441135328778050426566177614237766555632789015638131193033158165164619588260780580217989296826514283348141511759706067695493637225166687555774330938407296360904369028199069037559793893871887598466977858688806221544667958013674229620111302344766447853471848685913183880518945204721430329637378639592593304237668404756192212775242653693097202395791065471342627641880578609538661182407052704014543975525601456698911372708969137881506347702147096291682690386601710499959391820672254046222395186742324836885491665986720472331885312552929271755687834850190607521403883899724224714090979570028291063546400122186574689497371444189306193546361778221861193584484450574261922319702316007208161240905894808836891628688304532553044925426830016495882835797242251804670544935740773708197471915266674869751754456395470597512764089792231002996834855038060240424197506438851424421009976055269684417646895343824194721048515596308736009789488359767686626322247475330104038259793376065780172715514407121453829567261839135008147551318134875376788838092016276408063680718072371757675220739314882895534881307113240093044027326049984944820930659992563668414616949508532028554008707759506286760736671360331571498895149347280195353451381132863440125508809130137404156481224514207434582285292732748201722616342037704606299261316445886907903334828802793683076976960039503331802947759993987266971529564201010450247381293171965243515617523584265943341764378887105679808381499636674349098549252375133589659277926899627810751020647210762694627536662863035977564914856219852298358644908335147370044017562928205312737039889743942346763207691127065507135925219513833930906360520566938270965142982816093766764337354196206380352309158336871067892908606161096092630468322140495715876734222340404557880379757075047791633199561939868941510673688021445369488854259222252485574179871749737051742549971611093865015481416651865462981937982584556064839442075208083689661219190922458932204667100958417189138361320236939893746256733609846145704043195958180266616392955453882329278969555969127698853105297783734717900384056063397476599358175054349019466935633033158293898088622656398191545102215867178619138322643553771381079296232132555083206878217270561348354749973241133099979783061608840350112358722797188135575401225177381876390333501877765613400857698039904557338651957859792692279357328645227649685271882019298216062774398561905789428194867744534670789187712373169679506741328248894064308209248618445839958688456965868893780809942286631446927504089902046223804477070028063392394829602204181385010947738133837246169213809470188718667323278768766475222511003427243898629616999957840254567117216759794750270055543178871656679018780289292064360557885617905927940497527120653476020721513095775140122919529359542272645389944090877587459757257312388211341117622912677756988232472358288051110095359222558201179215655695664586066176041907477740028779942326911422552236112850159474618449556531971626427782808339427600471620987936051200041752974126973958239882211922473898540152764895802270773630077526091506082629391714271555415710990533264991413494091562941558817008402155997494066603366546763426170513907808685529964195667856558381715394869751734260641077344171979181087484723142736928907005609041825937684227322496439181417467547567820693637188656829017813727796566522557887585271981388715173483518379587915508201835073933047990896018185471257777063034142708613559176191712807874614296553828914054843506960989696829829403467221443620140591324807841093469350958886542414323890854841607969035242390588962258423097839789446190497680216727442296060953325841300497262305099496260450918679223598320687136846911575402084580220273169870191329841626684324355738626948102787946914434603723121634664300358287042088069682890966671153518509939219585491786832122576574535521432328329903563777386976367000368532582352913639952768790472868647839979254684698985538161506374795485471358168176257249777159444800156794273320688647354938567497153162011471188454869757810380958207005406085246542957238276636546309881777408466612674190387591528458480885219673903203267185653791954746499304939137495945559918218587511064994737012285779539298875069242194656968310290967480657827059161997193444151632114427078039394448162963265036806113585655427617165246024345724718521396597635369624642930575907925633934537331315627959027572753350630599831403453175522153623138555315602624297267802499323779091513703387334129467484787963732083755522502306331614183828032628811494540898833794829977717198622414798566424817944207987498424796620269561620176618004851741281989899974857152989377125919173486211866754205555850579042600144578946020411752738079671149911472403146272087153565706113489606815750541518116405506128773594749081399619445184315963557617569512812395662516152040344601280104246412889436554261726486778501821448779170049350996712643385753248987121623280892317476820406043226212911948075046237928711853657729206517122677620644084385401180762500003867944005959863047718972988345204702926022765749992594864585532312060372402691069016467956693890714817302180690907972997252532116895788980121681140969238714555010447999906475637379987421523349682171834931904444738679428943752762273222233513473834585088271884820962128758726234822218807797171501859074480313672139700805971052193426934103591659528230231926991360573498205905961297940715617685032605573717808186211344545535133958205752674811619574771604491349474992586244455257813884107001148253899592564887585530200464945345497438309409187016552915139059258602897222995039299223803905500415586911391736414017161844216553479605549562317552688852577492196306135390098675419601299212789839909693154412498132885721870235174323625747298957653023227388999943427359579132492617457157955718809519693007986510922571791652609940561028423651759157732937243456338059518972866388013510589860636671837671090841384727898512832938876510525330958375250108975729036827818476609047743910864859738216094279734520165007160435743198645953634666563528624858976892645526589109480322097849608906021334338117027607018106145706087594898253091048954850545039807317310974594331173427945714203799520582565700929762540232779344134329936404460240034852536408833404795317999319709963705893043379338179701414448425134554575169132058190740383285104753003246068180989720773797814694728947364057379643111879594319216462285564049147176417971112876553262320910524929723400315672371774262034296261056124479912579219003115785293188281085148297110899010161510106741354279198585718677773433059723610692458363354602451027550438155046445641609283746774845401482182890633143941964751908794390709028449444183670161815407500662848269583883625991264348373247793346137120074870734552634865082645567006867906416905197031250778678427675185674059718719238090696276767408537469143375184109853801090915969495165013863188622305171516163240446786537591997102486965868874609482540077993529579666390067549081896076326524284636331732271924329629440146348465443958615660406310963923997570665067691328076702016135365296396045093514172467815260152103729998111678800222625909008982321735800467380015216729927451873964971787041266065892425987269113945537484290350095838887567640492285557998633194894453649861994295419622217755852724816726132998611208099105993664493412276182243987674453640528432722418294673485901623994870538896830938485799058508200172690907298041500043212399844559793629988463265439898636884534006387437249539260504409331947775745038378817483958138032310587746184829344593154042422325018887660609967025723493197683244106064355584784898262674154464733313996591555286441974399066948620289215986124022249605297272081293394261787733131475624987766794338415718817788625454633427672479771448122974331855662943126956544669799352376879997944680188536400278291051083691715338886867028574932969282846786972087859616905630890595072808987034413730768190137323240584181331793945168591903543830898837989106283795639815076553281959983212410849904928617466292412045046099312439824204763335493348424857602436964008425133211862764077062120865434917514185267361439676241513397301876030874156900436028664366622649575340600181182613857982255439178565591894991016264327719530000023263861152816141109918466295396974852353766375680820979201186223399026866534865512432433240412682220582579777424191423225450404510652834760807448611405864757286558244459835608557471471718846955218473613584856936606944786558795050031387132819353851466491037041498722942668181576871253286239494280951759415846734893106122586812350605343738570452487117110951702944660667563724865715128568136649413822061439239267282242376309070389136818757719336173025087365095590258652584348026332037747061520288553197827275067738033607630216192887982306489529230471854435218223542195218741584015289087606243274204725026174806781139827233863771134123934004784051384338886907365513916103742603617921668409627099799654726072943482699350151346902443216906966555721385699807596691631145116281379130472536748884862392146465495430920364939470417116251203321423226545712265695381669303466348985776198167648852538005634850160993533983586300619399899480004729677839993549671137938935581159996652747717912661762939759626422383700174849764687258261313632662928571548161285382029915564649424119092220376332731057865188437985312170210429135250367378366041450144023216226424416889831326811199613538945300191911655780702021779609292446320834625597142506661529579935506441211398359931860576111267554642356219374273875862089066761590102267645710302513634760797152149923189733957133973559884231045018490409019452944019334370307662542407801670892975284990627978549147401004235227663123864441810136025895417463719796454852682050995320804503665862947758821910151077274917875211053377890143528991368625785865901127170761578935268078645689347892603784342511627504393150746498461167330739846833746760482582007158258723331307728587198200684582488178278681253936226048244724384490689341109496286675591944691637274636259207457641345620619796887454443588220286024303408592617826124977019906370872547785598507890266751492414479296780723255534825454076642230576139205551540262450146901999539730750584381248748685188438310890982920749197985064136903382076439424769527119111349880127313579787379474751656915941480194352486843342911364220014872743573017909186218053174357352375061990920842431821814210951906724599156543374595626963197903394235283482046554239361122052116309089976785674248623574193041188805991465525022462815908150365856395035528535797458329426658074729557365455249423115498283901415407068275005073202686309952822152918500469812295078869221643462176381835784828410030949954885847762665108007915245569286876831983436112939084631835089388125941508323553777906294021613287092759909666303291354940655684011250603555640473929293225782658194561024535924070028360949041700651232451793852312766674609595945355263598335218854262563572213285022099778074766466912176724946525855999785750370877460819832307695034011666803250837722056682276359773301219099318880605142359019422644755923797852838969555968866684036902934701816190997406554961946664606514009818057162219002348342932120751135438894700183980212868466311252890080957784563578372411847369216381488744152891994627159426703758516750943272993175721959748209085628637984689218960386964600291227846066609920447093332426326949562787579823486230738101844493640532182999686518392695406307761393559100563231414896571885364778708878971172248245347945594264909296830565982014340215334852046312909979951414981072358347203095932283039068116604319820182590757930374789187012772522779124926621304900541828840484767539957982366295317516050984603786465057438933436380491448216619431810469175080590345120275934369850795738789153858679947881022057931840644088598008057598741044242378866417383418718924652296066533284710643998053732756016946844890550208041492694692118342380048987124881311874230854434973943152701883820647279158308223395376665952773965913306394634319220281060824497796362677471882109132549455643359285762375018947657416052228446105320672701317099444861697690017923658813161879720717368991084607203988937720491075428857288824080683892446134051067802796396141446556174465878871335840744984930949925391730144644224449558567631324044829227398211948477496806624299300943577361855371171594776146654742558236189433261507525096228662002535861564521827095384352642619849919584953119194427069135943220560245345538842444220997180559591163022347988866941420248812037991934468836312364730785669692465547735725540667750095826665517257654111086070538246140230331768018817217654729140337074301199352532007901732152635829973650388256993687581530866992465838058110738963204402196849255235765271560778605622952197631280578441780680256883655706880925593477925780900285080408102053582331264697661750911151757709680673220011421062435698178646652215086797575504999328281929322352262659908028695322228348310464810140519123055240701779780240366084938983733905654591258945547797219404460360519327273076959562369233931489756515794731573723164737115677724630073645281397069616222686356214565317632981650076035700977038637822502690331077706528036664774490465824819687466296888020052119459235950905790179245200324032137827058499328667746792003886767297875806042517289895009411105029930353457006846834046893034768777564626184618128369650591892212068766863373373279496181553281830813899496471467377308905706723927319702865989937650037469953610441250528200943759772519986342130106291311060656100060271085681198941494517700492707898795313283155592501742567488034955596200272757218273116525877479802611039263348197358199625281478336155583479823922545648381709356538661779435604561332297469555259433257234359589682506469275813978997758228657562512642684838182776271589159028428442961409566125226122805029560369908926014828135961606868542850853784588842288028014186934145099329879458487294073911036970789562661375269031453342677301392047245642183715664575627714342534151834945121557988991097266274609100186967783701132401170239680208453949895137265824230949232746476435585445843587435881104417520049862276296702941434721121989566994429298184751623885004010486184497691564262823826056171241482330844340149662932461722966963678118187704106286639772557959590094539336170544947667077566009915422061707762559584417951543014065492880397461411112861347261294635612400047650969482203963515128884812952937302192909492779402863041163641515401556375764009508546365630194135508374934400548331600225090889705559240139605648368961941811603025727488245689467048067283125787049704408948102294243954838834994879758705895319330170769423035720707364843587385764304830831834690394581668198309404274275771611189380107678941701934619980978214274203073602141057557220446019072972873365642377394881805727791315615342518358999739548158231020300511554170350395655172168514988982833783470246742196639057721159534317575124523573754521411626113659661739505790787623649004033301515590972657482037160587586818018120147635269478679106553065197092081006953209787784011278946751793898697808334826257611390066267969885184721316424091052751315401184679800965437393039154186893999943612657654048871152177867386381577108309874428115937775054825007536126589112023544138421610726767745945704027799713480390947787338472912154105996359444037976385512627052967506236643668354220951543454200885405284190204912145709198059227349038317918417096219694396803952108141629168342708865125024083302021844884854318011458090201269225633209194797970456362099255234705407233947699065689736471215038633481976268383424345717474053960908637675650527536842129765108313883377355239575135122121451322079982944997492087645456544715660924047367818267357129789244663354574850326132281147317234792913445483160531949060018920125671845748637500559496414624488995941139049578389164992202170689471027772903003739437610965793045656777977956634820977676176812675612835004006093016138832528947509014783688294783482817812972455854653558454418825924912485463125610870196614564083155402107521100194720572779793729687406399348329274153652567896728156760155614398425226681386004311051596601938856965854346035985661251065883524164575993950345053689775753988608503275304018857172648895865361607594663857851964084114095005198379801475485504599317059674213907389985698645350886474633630382207921653276695132997975314458786157175360470896797612958607585051627159340343126518655451171687670813539608624575848768444301199714388012689375146251262931462541392716910726453148981114797591999438050794014623450335199044910499496649778955202122596770810706176163845944061497320420274314486481029522392398283158864351451996502680382682507478283568160660750807417201325896740775957878518956645614990551659629218325833147897989584965295627499114994089289936128573925932952474582413025709499499001415098115661372136954685257250701703315015042114578931705315077847086713277964789377052481523103280468088068756002030170577854220219924742591416570783431245944386400797756259209159557676936470383173931169577101417107840338394877240807239444902648831965606939105513190281919959736581517464802231519363277260134285234474090096051390094064401892478570179888164724966803937722999821352880135190960098487774482346486313310458928011281401184496335747459812476220030524450830204497628985474706326038934850300149599188698170131405872160094739043500791206458680385942127275155482358859882874900942116826619419125685608272619985488427796980165616529930221543796154327322068865061065471958615770936151774243901102873378506256188483330898741340349400734920982416290862650321109255211652532053225065544524383401783935214037236912712250829105911426908884117535830214886611283097112820464771969914396808049867786253641032100432840936608874868883590369133898238114200107473230961841379518848192654989267099073001365210689606802994444348863869288108117525094791297631029305114292994653744703394976849278006784889396663802340834912617918630241848384631648129090551969874735097411721577848381353929789816898550729050612506740697135256577624060037107291439153509544438047685556873901038100774406965589019646887708383684883570952654885102708663644726466344392259862205551949029585504852642009920229590879365112961344188399756408115870814012666066200275787572903034219339220453061376480646524998168652033597104486434184303465007933934227146514109568402009978712983959000249511390861376488590114431868529351831271417676621622223670291438937976055761549500716648022647222202946269982536441894609321311809507749936560934557772041500193481424094748233821016440468926927082129198875580318866505485146539353341515737708196086396012737247664249212130775940780515132095735937546966397313812779470425664764492969740561036341565828177577660922931399728989369801694365245085421742993492577836720190246945201321123855560956346318156545164890287438213500926011667077286579011533687477479162895337423458229305360657321571383419491679571808639490126216789960823549033408080354088824251932927783137710261375336829864815659848309895631054276231172651794197684706301081689590065193565710726854816878049351374579523031764690222351474894321453650209717284966814602830720043826102165341754203614704908540504535982435147582500406619685251141125767063391580328043758945023642902713716943404990745970757532059403026604104826399599608846186802434135443748947753471658822397731756320472110958806897125373875955205534716473402145209415866282713015539725311458451472453063247126167712490230001590609337040049967455268329595502558410173959672658892508359519671647449963179281106981054582585377528558801444665298498157102132267711944602180769839209212380230395527562443413555564164489447393556911530712697820068883954253816418388439902307451670711043396484367100038572351803573084741565800100915806145012859046741800791996819292210074120602059110543009100427173552429962554772274142063363157850646627478485257200552058107416903833798332010534109047076111351452900369444135570091629435267940542190985465681710638462130648123437921633904420008902998452439166485327585979559437271919831985260048556630764471051150609988842552880426963458906590296526333776688153485352420672563469914833823131999434141066964102647723880398262970091833981745298351629402093380155741373547821019272302394736115770863265559412942965863906758720377093394410612664932637659234434075932232294243329577802146978182031047110032439437764367564930941937162726639227812990853194743469864759672931500248644374577505038575424356841579554408647571973687268853411959833023249860783796439731885096641124228051078151973057301359747282340183740500794926500468463467772558525863614555216216808526863859063325407021494133336979628448138191229807532843152217548133017499455779277132943265711028185417541193120806247818488283054576401907523200124405538170400231736409949887213259019420750974490911987729962865402808605582692772181635504348486151739596505734250968017208794076760657940416888065419185069768892919600492156864734090689879898999949041956314400712876098552301606598180156766551520490531125902908679002835618080879600838583661266153918991346897035703199480201679812736818811970061468848898647770709315505521440605146404142208003389684876011872627468198472213811484723566045257041486397254717426386548217725078252211276196456920765369563513643343494780408657175414031698211338799025610648859227487255242950635813399579509202435867764776204637539035784483437420463801418814306804861263779052763369649829408530767024926485925835617659751896149071539206029775157249093595903230368379753826157595869140684818889498065635610892183040731162395815680861657678710860069360862787268164044314452668886182347958744351428120774267961319509899821302867378293044264354144811813784063772237669685748080660850555904146664912356113476494310591356310667979469380097498137783424625346426855155279281952975496463391322726595917912661120940828008030931884185530129067090419417252864897739242523545967736459527976932002682200208591703163789204125629667322702004263416414674547747109215477777521260650050487386128650500819533198025630042602877335304763103282653165317642773644154431236933118765884651924660397752298989341300508362440128543562942212599792835850575836626177553838061854968621824756976487388447199028753723699206015357935378997890522458673088384841308291587681917626944015102904076330911237265537103647486214635684359469646656902952789556152296327302791214064421089451118169263079094166583643092681551107141153223457953625295484408177751573692731046181537102922975160454862158236481973648300144713433262440959580695229483866966121432688822150388052239760373684837879439832163929397973760272353157437702759893387946779542275088390825723999797201094791159042939422998472407399033891811524364892327954377414211257756942292751326146327632025323739190145428719640950909854376285970180243716780362747566974225329012908734069699168017025565788626800722187207217655566915219459080206626747817048283183073840580441236360542488599485911325477951517517258042078603620128138972767713870371448838144370229264462329278237834399811212597964330451332287192902882492288429840832962064630164494595726056473249399968446704183085315617438003663704564168129632108512162375138443834970210058799334288362178515540153070544163631166768420033944998460697326808675344339101458180443327517582710282172912987351761844798176747598154998927029827886668581172944259838955723734983633139279100555631940311344566320953673694010611092458171063140951689312382947165657817547082866501402218089964773407780328671990149322328566602016788654362321470043679458297500377406097862344800736733510859155963214776918520400180058045276002304791882415456359154188891839950579716950796787859199340643798583019915182701369887320073337594366892277279859992172782276982659222903877773007889360156542766987461594542897456953281844096621099868857487721146191674681904216489746026691751074236713829822382840033606321735158547847234261469070485260050967799596775699791398086031009109108121258582824260458274896024756806000997452224053637958513778594557560015333349478873347125084386190937559529047403488271944161970839586723181291470239761425226334771090613537069502933156059332936380825584336583879684558504893645010360085445959863493374967687445391956110034983665049745761506621066625937148916361694397069237979982831054968830264737712291495949594416691995112417084431370998950834920783795381270638588266922630130580832914647439466400863435568235129501987781894130592615278321701605808197600812038465109312899643001647771450762509726654624186696385265980731280295113881510204889079906897322528782472217145289288842619034435825968514250295326219272202023777868423028925264807991946682129953452411324181829610954201772094440006852141019767050335373706603774400525067872227393904382910321762664894716059551526982412608829443344964418757465159849315907841206369515091082074847190658613579565387581492544973648522590641043952381177167489171281557228599883110953629153296348272047920559448462460950800367712361183413577363599694694884606668177921732171452522260603482624895645976777308840717963804621426217884287349378946076526989545404457195182413922984628886296549494211662473579664446784838106249647482079037319069250333726529378875927062704496100918683422754873212970524982683051297845523831260442500998950906249368525780327371299738903360246087654318204369213645062531399780288050977980234717766816066579954765460882708520870000427288991559921400195049598510339760183009033705192055977109017375426682659632089169024747554039523823717756408461695563444924146755009799974050458681379308679899037976222412641878639230406777666731103373115561902249197550707799479942459830690639676039389031159445609354130802001770356190369752418901185676409604010509754811775991223797054327178701269827427269679152864151779912901892408734236265478194168882622521409217454921791915147644118672674461087865080357587938488295309093354104183399408932097814914279610331935971549986109110926200790447456095807274924540669032546065933567767841288963862362580662281114834179191629136501065457178193339196161255417208552190395577723268780248768599296165270767220614121032992781150937795565394609258548387074055642573234933766051873846581879135679845718245464670250312301525803996178260224405976964854749911700118980433840724221459194583748259845277714606982655760668744233895640789725639360247297886310893026670320375661924313100573260429467280556536848438592347303660890258909464283961117249084871212764181073360257394309590908439613719253496330150175528728401113648184424494447113532564002758179707258702030819915537683002555676125986614083928879705760417653220371159174487159280072285095702243621676446728284028465286632262774994948929296619146264388104555180256855403712470983847674792605079215402903547892315815980692775306729828260988971476431426893076652725807265814978669275249812807821206672161014195238232409318580568324922419647764359162171787884017341564612063209309655096130562405735008734423446424564135116298553060189194217630952382147860699980708134699620701816421450570482079206120841534141915495754508624295930638852667057963372626501745094500198477055035037414053933547201542553080044583991147573279088752890992227443547737698625475484925596327214002042672443407495451356199787506230122915942367203788204987219387099921373515189083167668622629213373426869726780872603899344761442770528799218432851074879549119812893906264371407217664455366756544520343195360650586194005442273207088397163449449407170931499071983534606027174194377564367627933709287886606659808448206055823109028132214518683269189338348122486099946758505405155916454378487102791640068935040189295680193849884042378932385041454482459705727222853597270282767639438822114263724169003586449461670668822708063008712267400600153574285426881855396833514027173603727878762773461277022890079933049694328549578850337415147468492066810600097731830022000915618536846359913267502959832400621988520213832636133047230511089690954880889988675595763114702389789005771684057909909112012908709033338878861831155862029524563382186448232247268683468325769572510743925337787886381618902363966872520248677127815495072617867182282877766142619345175625423774776902922746805833822815503194805648734830646378042510270825393423268931690083337488656873339399355976389560444009327112600354185516399831426071773514919652234397634846698146439781966623479342037892424371737371558317790751929218082432456302885847521535042902868035170704792832505553025605762460588156579743891086692821579790438593861233566710544405701193003884309085451407771083064654315401009859468552189150164403110050882980344784325705109900227638008662144239167603070282892766979986080609672853482861087706962560560780203083682747216509908760305930426180995665734653370484578772513790836060333873938382850064926367897869850948059645566013445997654065920606107514198041904781308841645158714788522324899847884751580381321273254470861874475305896671043461812880734788549163174840134256771769129635153118804671979756783860044985981935660714915041588463792192875148477366756556334074978805803094048851910582655268972162881597727206081952974113702931382425719624681942273170593350592984851034597220861211930479935478073342817393176086914985314155873192293818390688893058142878915873706016038990858951454466742519119440310172929809764508673844926679926445694454211911206582111446633003045327304336906101971920592692736644998840585822287545366395280649244650205824601205391660841628038737407905301094754898724406047666887716656822844925099011163808512355383481091869782783784082077680009108663982531492360284428822260219711915339908668698872396099457267187620688722801968515354218483829631977427515222540961020365156056709220837066477143155830920132263999668574051094436080710423455702808182620959950198569087368777368148930431686690730789408046633486247479653294473940279265597748151124746792278008485137165656911442463508789188630079931345072979362532591047002635571487448221408970574323991918954756772007463603171053116113296481918469975814411973336958683030976365537189941330612222441807616898879151301054562397770794867148997166671847834166803172084556619378745687943875357246529528980651860240312191304011423602272836632353775972881312763505120457011881158249329179651064187617799589735504884731846300973190627294811581535622814130014451242410556266211145075371492996231061413380455093840136860623425453454816599205300703689503948422808185789328350023941730373460598182997065310681621006281316823572406333432270951124548351450080247006340174279735905942634253529402664481086855625513184001637207632624184087861163605458794740775952010152601321471488696835157651458356121276241436055589257320786474722044688938277961433243046409574590077309314973887780419418981934773811973432951542390967054231246225988381386569103831593377428539692838532114863363975340670408671075021333469144403326288054905474964670539962187809184454317635469804725569262478569115187001437488883105875548642947157010867411277268669376669477831757333544750649618647575316939134240557006752950009062841297976443755822169075997197400794803411159280618529184141645075635553779101041978884402019509324582769822957998160122615904384119712841078784118426520525195500128990733645933871827199152364830582268605382662555114827361855972646688185883345759567430962208408897201165819694182536928649503833107905506799680919610100094823277555001279438024125117009640541146744401650853618302146352916580332430964998837721610350359336547410692688803055155390019928651344002539427781623838653116216317716950951368068247317955155821256886014829523571652155774080290962139893315106659968464504033079593012754232733375664661280860664433067370451591536166171000928537193175771934255984940526280760419739974530185415753090484250621931374000108076090089220668210744578461614972456275548413311000460697485025708030594236751657974767475940346688117404023683920063429662614989317212267549835077532184416088481587206160161081239039074804928717205903546361473966979362168941936302008088824276013686352011276432810995858069816734816047779765574781097110406157666450837366702339788364137571414689193159392518511957600131126700279219941713092900131863792564509814878603259820539300478912112164478660770863553510610971459877860203784089194388590317259953711926885243119332334407315543438791573301420261866573414352490384669245077245622030461503267364016605237566772631144827536120113849282987792488480959435477815823506848614070605541538927405737589713860563355191930941208999390939615321371581803135927361073146578465173002903083488490990497755678712790264622982548746713179557414314781997449685847365594062494984510526346519491395662079125730526358262959955062863033918396182597018172711317872779951136928749763630462578473156106981747015028087999704783812532090493436214442872533242848837293645955910307654166243717434735551652578656017853304047971653408428678615554355571261496053289373787831449596777124877970629922639147244682426443994000225062189878543570023164894678008663129339118191784361235118818737860526870555431504315316066574259371060590706027942848308616429565885874590569349189475387741765954709832456911621605000506482832118628040594541311161647370568400425730773859487883189618489965655818344989039158598850371702730593088296457132595217958989421187453602527250724203809626185760265528194483071282147791573290881927542726675980094853561672939583493526583139695183781834972614193396061157674072668913128342134227148409926884765596095385511892335032076717206698041506194529069031910501725900243172370408941414156220055178888054342286483787612672612509078232221094448850964260864541343652063470394894885192488924116004462173953213283108443733596393570938748240221999099225980011537445237724206514121710340053722988103109114096660444837372970888524540796895197038717617275645593168416186203526768430407826655259799272970782050722839484739717661835528058383871156485867863502940837369475390944409447893710882365639631804188505463202018633928169185987142340376373260416735850420919067811757741246790218995687676626220220138467016767153258982465942673989914676156740141134951819042516758584015718024711945539202019871122284416165838607084587609201859455928058327855905726855227794901367889983015027704771299965614259025056604972081880938538410682856883035623059164782292265304468500558013367992149368618461061552376183225813416225968353831816189528152511028876184685488290581220062474615592417909591169453500522115317340154672950141055092549175624626541772342583636886752435171906580026944600671738991710083991168937112321060087343354113558461109122665606848090030993788782170339486419229078195882233272780861605004454258154158611430419194507455989362225341026189646992295540484532311713747005134341413438554314832904567922669188166120964724064819448090227092765156260634490975965059943806670041649286841815072993257827298264396569220688887054481717712879723907053723202768925730537302603599200766814592751442363054420195240430682226430949968745566228471396175845948657937311633807570319779507436941972988907389545350238388669925949530760799228424574993433756567135893602620943269914583844150553965107915186154770466577034528232780045576637901638350836758752860053295988086859352995746919281895169743095718428740314934694542500472430395506793353051461763995892342892958803969841827615100300226679105993843611357242501239289175514768194897118372287144194751597841662617807347290301968561783157304837219772730407637412736555384455849099391002478752988515245751782087328710736642018868840346695564808076105608224094430961390917697755738350151351574091242086923923474225510168577828089359613096361373636727665277876278496354958186977740824841590544876246555149649331698439638752007680939322208518006126416107604110439113896346902066989862017489762519446782048662636035648281041551984759019809357333429815839969441133547256600057342994204609549443798979349950943331221010856466055315779612063296759297367309615470724822094004396751323599554914086015900132519599292961865643307076508236222330045153622160610264677115481179044495792566930749584132829382435653746296354402201111844733041275220110766804032000951735385548091849322002218698286179974894890360217654197427173677587752430161127591037204342909506310295584713437715971927834564040446718184625069803688322981238924073394129698494740262191736104192460203857965427350646128623771660184776536801879005292029551862209177882240062481480588006131114218199779886375377352716844618363536378876001963416847904779971507993861433437454416735532221789987882857217624704369544771732275180465553279647383736381562364571249704615590657766288153532529482935504578899148829290201395918158343559424664872609659082999638309390022456533662467747124454729107429251135844587970738092677949990620672528250161551240158564802169747116348768438224596802774127369671533091291297424921989219273736150472031139012880639862468137887429822397786281225441636371614623780978056287177074175796190141371125138464452499316376392275754938166071707466293080842753589581146031120753294942075501477109132711465920091961573690872869034083399977960919492221129303366145308791975877847907949028377274198564493894552497921369500427288769802645180881003387593721064711938427558078503059197900443118586481994606053789969604421777032211412203511151831991550244923766972633286098795893112951718897786952240769957590524253548213339615310993021618515631935030242925624301999376566752307325610914802633559585431185022144157756819606654063037659131218953757961269065536285172776938874473639819896777498951675353020215131938762930368185331432050214485575023502721572760805032313988328034312780701929847208673806332407956334906263310305233572216288741762531713920789301998458719997669963053771557329533283257427535881772455362490474759200609333527847506976257010737919097931551508206101561042496949731003552257700440224593314185766306264874633919161230726368649817730792118991381217342845669764502987696531480386204005008817429467195422535860143556002681154966713961576141722569092310687813636255479540581873252688891312477273294215803793187016161727318802611472659580837134372585654141483024493144852864548051281438692164417173337149102816831620299665017215511573199643761502829104440336356525354216637462296807201959849824744569084664325064864839113435870468266139845365167449673165765092893815049940879865475885341151233827034084033218925678425188397243282020605229039477016050457215949782084087372964171949978506097107588720885055806585930965396566250392066339033764708392103266848310901009914640744754542514136426658510053353981185433449817968500404698297565300903991501051222517409623945432128730732758928246340616190056446271571709008290382662492095548012332659463337224389170080834755202597868670687375678026954642561324318116883234325462008851433212831081097545657227274855425018115661856849763621474574213115298864808538457440526558592448113106398470920240947273341719100265810030608869185855517281008712807749390864147850635024481028805077782706064826018857377623687968142598707215708650856465635934512361026485947689985351019322898109451564955585909404896080789831042522698359073123839792753948729337382777491041658476081361228877302801236913951214983573202488534334256743421452333225162627030403507153064704826505738907803015173366693630706978942613388783725556276074779366314932653186545751206487614187731185551924295942299943419938061892176080038642700548635197046693795418185824651233904240223279945102550729222886036902577543126863191510701545224298238755376159245696043549507127362964987222993136094712914420661865719441573354075563019597660031595144305547446930508010659175026548887530578850362280636626318552517060007335776598962281833105936531457733800477169629058783357820951712756597529143039247763891774849988409703944408624954444306102094875319109615716657026664814580537175386567307452091673707182667442857118058640120402081029823032766430487996272513873553670687255845598819796037746067815281037536323434151539352697827761745751596528271252404720774827741514600436666871438438579651358511170126110882489718782506907778819943638161641080968753660685340678869129091597585414150810643254436923032353172882867384301746834923126163004449049667785370256080293889213040048899150383458112731211934907509498699110928895448054956767405291143725421610171080961773498989073181696068636649233595139007806304639245661012085596950697844606988909055608908735607537211698401511582637612866992974119533568547293283684121903466378416358265246028198782950570232243708428089043214293711391524664446858729693040338978038253048262207377324646039422174467671197026097490223270589027739416413484606942450179317548358454415377795421600777946367168766054382549785358559043850767174686238152838829590699118072037971006048005071568437932003810583218614155288287126354476521298386529313591479009750856757055406183200076431078814548428020489448084930402364949195570324184291856985901298903880302533351835927877690161290218180455863578837440424842300244109150758391413412275535417426142611825049752536269341632046125601059450548434626792995562659153768769476233877022270585836294790578401905106153974933964855051807904664825628966437687738041273399489323533427590163868443741533782052170815247580456797424709954525749780447806011607679478010461474605842963772509233396954593060448655073509709468979039929925322529594053067457981682655864614263479367526134430007169965663472224980839570667360593376033585278164597263472951464524104347635833630433616714707812452637625032290678889732638485895854455992485202744829438970908865237197729662414828953553581575095261578173334014898611199931803852382531699553188943016034981447387976653033024114175248040274502478917701774195724257235187612165737059586205870136781543172046272856921397607249532834138043922394535246753434050250387775026960039466284945900349319593650636522908457939689890942683560691188424551504602307548735326027524707719891968661024413630624054695075325506812198498179226478174513335552091259338709929781017923732206166816678632598820578075064886024661433866292601172761619309171789758400437373462380629975568700179899528377196885315065823621620526382225660702302142969867684946736462701984920115685835042019942621794645674316808827439593564583790484217268890814480631325598513066946350047713796436428293354882827540530445532498108463031777105443413304424841576995846325431593505262041228239671768290433089328152376900110351539793774656510882302377134618442819481057736351157342933803856182114495368152081777522844830681042668328619147409771484002537622697676285789748190128694639315350549165308079509417070330644789802789665935079514706743296072692049900475999149022313273239600728456710347486878003831194678608166079595597853694818679625085098360635684824412754446510254762095584406255613310462464583209717128963188836223453406570227951440652066553963155252535524151589278713963063426867273040462117236096925156393596901366795321590925248381965292990706989999917152206706250029709802119441078285075381053938275173938210387306961808638977031652995326055397114337454400769195731039137323237372533774627467237624145864750245992891445699583104207822872567692708034356939474591984496748824720000738852591947790163186764031422469487892673900087699868316144876910525123926401166393195529016248655386928763029609057273413134804220869287396022375337004891839636269305289769403020522057431160589448367044126514454732660803541813670071264803308125864985245294227383880427811378918646369718792385562572770647204956800633030363057030736700694487232829035373050401912627227269322574117587683218976852685252428718732145673041455372174405473331634376560052615034441738090429497578919303783481688859363247709317452028735586574205138444707048623632302890410824337150610157332080898178125700636510060203382347131696726177590604227847809647508703715317190564230004855947471277168929755236621372019455152973619345021338515124718202508560270272666302134791033188628635393875715627654458852743452534308681441412796026001975841354470369701987368610305052353013738007373564323146310818540610251493462840766041139381144341487839176153260486245838202340494468236915284667990896145419751310930931704193916821824793317809688538411544374100568787672937650943858249598183228720135667814964682448075897599989656618361732975698624238969719448094226446942657996163832365455268162135953462603673735898429067919755345419201061028777164124026754313808390597875192291055925879374374710663791161928410715217866215840580984808985438950839607161814054790799797574644273225870934332930971451821799543218047707437713502228515158979450540679120571934560788517413138984857363843411880096535326105536775403443964636170786058610283611408207928168728645749049197959308987638717523248447946039348623144557851620494255454312424132117474369431445008322098828025080567592311224204463194554397086559318310829747079948267779166893726327230797857175397539200007079942541485653582058869621614561079441074497169187885077811359981103341889066260326586905415412166973733444310817201722873862656541471442940086695870162014984125642649621629557636080138367511582369766699901792605955447882779437950172788728699391350902905884093836927774240854558543479909343250288583348472409901698893508403849846730177179006955159513221608082777928575915273474079547990619544357158378478246219359835172262501683874198059166567894218001038864556449365592135102605952934961642825182326770438654811983779973430595583155599769329720498498396367696017887856256453176726178604098113033118313010385412984531135409472764314993554594975559234170513809065740903628669950983236598425279868533091548600630691937006281538274279890314145469626195871670319419955855718333726504427236245236477218375772592481824216827071084614845763112584165572941609077863047296558540619494824000973671289671494662995705712400384912489940366071297479999011415797132437170387448044791075617927450982207173457508716760595387758528538296188938741459923600523056856339609909700446899182083062200495870973670083131003850111460610122366863001463354868219824792946491684948251502815335142532001331652929624780018911232380579313776610726323449485223995517485716461514195822934462105009540078970769968193652729148298209796048044747927226884730011246180589345026205430517250728935694395333651629439316887555361197032902421448668044067285778005887428324874784722921716408876014016232699001278102403965335705180979501594737868077583554384580754669937742506723802430953940228762279074561753516801392577054557547133807318532441366536790317938021563363548533900905929549041620987414475497881304017077624892526434273657967049520706841338765833434660450903932506048201196154980849632982426136608684954514825306344288120494004932760743379013720722836026924194731466246864680599183318954155063587354201181073668922489395964231788824615381668343801644818597538053553992416442972300150844096958498699294177951375231234076296882178818182086623631531869440764454405862997078987095424150937993331477102557153390202589810879625392865829409355889023067016600332138528484551567845655118568898410953451271608700108382890186809205226860139986625400943220636419101188107596315673826405891140439681893749287915112395637470796671208452286795880759119526539425928278614834598008063767517600101993051415031588410575292431280415342448772002382198749756327060725746579549319093539657115603458100259231726221570095200515032961945019046021805352693305247227854597140830677856752128744049523338574282990166795541538063393572037383548337105505090163192442359328205165798658675910632694066861198949390123766390461460940934042714553960124851847584891842579759102046772170724845381755176765681082191196547552965863365338306648714051849259626417364606304505345861133946563175009360526535780873972824578881281327209846478686102633588722912188382118931965911610677662209971180179580204024499522365425838072012206722936019071562630422909209822800729114181551975679980694455477573483822412820157092471207095556191583412527567795361932003679568730437523318473536534962444876593729217291146843426990095501350893880266680732039239401273206726560526878162515441348993633253102614509250341319202693092648429234991511416352516188123289373016274348434801787642765060351103770930019143269548995748876099176530680052084683675620056351184265736928860311661658486783952897165509816807573526881652924625803928971104892256072421653092316964238706168837707230130116164473663855993120839225764763089048076936286877900258888941469347119101957070383813088042894121284220592553525476751277106344845800770109873552246163376569841478248002674156220874569202701703336534537940262110775689160792986139043662748821595541052573817870565469751160223632377682080212850500948367969875482500329504037982992488115795322476096211463005734991431357407316045051533898817371494404833034220342418889135687442749499371267499296231140304025637661151230750734088984969642310341051282488189415948614750476307388249953442336320706292092685199925605860408690917252458383752247296314810792913465256905198734120913607254274441973337305625690123474118992535418651843420827209500102249429043795621715347548076934430989073039281163254387572965217988195934103171118555351171558530721159752137391537628839768946887940172826762780505599808090902274669276314477279098205792296865855877421713081666508376540375263040122434886232730941322115041962500352591962715820115961955002886348528982791770882715560506753905117193718934906505318988968199449197760296701870058925664329264468274580368469857814777268312075555503064171276896991952918722472425196754478961806065222925473044189966004786923041088789010636463304069931520704427542907154373584427518373038407280736355204408306525106150199502872460293282590079485801835493908411108524325800000336558963559967880064471512403647349332185786995376438948207096447301630584764557757240601346733609076046855836454619469590409831433969891472799874959062545990863793790809031709347881123297324743804180355628802716316625068096294629142295611589631085061923113954328259638742526116442849513965170565178801501999612722683861125203692228112051525376726875906541001687568048153550083717418217080058885087742470784845324016717873894981789654190211378922740773768459310389799656450305774899825130878597459830286062035274579602808704910219518804016405853294676928479986555407473863270093297098195617599541983890405992935788174327857193492906240580113761788106245730269505700294461448929696863316906534013391711203449531829566577550007520182074612320729497350351522249992476947604415541507317898234875281121973797014523200825035309645772642180243682654740354833863982000875339341004851738844884828163506022049805194001335904342698132663860441253849726450886442735265961508444772764190686633237987686279529532123890436155417237566157387957495989772065712536379791239350189914534193191283432901063171707599222109739340704562885370384004007899542234356394278845265169318878767608137610441105080327002581886152626677637175399795220460749696098223450543408045701061330789838392370981812734487407106815221136036484440436776875098059395675971865632061651098917165588199771348121562816504712321218799064793775655216117408807414074686601171532336005181436572351556450407341539434038831677039706235173751597819359027116735997161607258127152407456936426940092578189594063164777648233876877713854369075549923241027228201200303322362380515319461450921956644392237567051784940858104586179834408415040755448837341147443748224682614772666829374695345307204348428299863102656069143277434682956337009251491138614360489271667536131074320561496292835945633219785248129771880488664632036778790589338288019179720207877897551345221115256782842495339862362445870665263594128001719549233069165228284608415913992845478641788342297706303959321264654657044549352723555789438198407855586175780037173454386739395602941811165271879561691053694357172986136159069629995537717911244067527726791597363910016665095975851483815945874270464448483885826216564557398937633313307064427533343843279561040777276928986476093851059684205395802716885516888886476736551646086807404843840402683143773494783508760294674292060974031116889109097618472737810963080889554337122143728753858904390222711833534900873911517419469444990678405762829722523075022574372469961790089365652186540588070330071504086542913210663312486757847770591142370798450008473930784839123870357283798866542252263505864074044345317105219079147868986904469250989811262881553019257692711709665129948997690838201628609668763787156939764931893199464496412071464043710431474398137089481409097101501737161845753904989770367451449575156651818508907509056630056623868651262429937428449252274099289994118686283187203049996202013877987323306203974647026801594424167750657860979247976405175763444631520883953065866175236858962878522703924686577303280844634334430475294673095194379200840077526639334294961626821343906493876658944530526260555968706524407136366997707277069720164827643357915802251698545613335701587759700409656517777903574822425249911887946587890273768371176704240711441764783072219651892545401006539969471776228310524381300119368804322781560697830946970614881450426630917967553157702249201363296209003108717008678518235505882554154548634034244922887086063060762964190778471029661780414994481948841588534450341730512401531458791315057050802772929108731194861446969300824908611284613269501383015645990785396871685159232105079435740675732739745339615997986253196400808131806414244432020101042121223593826865337623800634529413867324987970701925838337514203408762108606065786966661202008219366124881301427448350018945147855790183406661632313844998525860007874583082967452115721384787549536568554100672364102071233549967642652276474086418686592304364201158403351244852277290492868111832794527900954742066396022682012145426955270422183572752747489869725887351757252414533489187478855748020279455633146342554054724760162175516210112717024284693393289141815668248863387005743415591073006296551127957774551042834332610216182687246055651160249774293200580360066607746723624964774122740657862097208128476481054630791898511131040242826048719626682527808738285144340547277538417204023498464342704841434658971641681414497639253949749886665056186821274326967876376421557377104211002655369577663220173765893747381293355567155410007543241911863545441105711802661613690463123520337990670484335837042184087947798148024854409171267707933489160754116902783107765299696711758218441822795411064946729818725211006513624106866213077414395422056955255649726267663466954331189404262576307032669038519880020669416017316599456081826141791296025183272320527874722593608259720886536572388569389140137003733617098779734268944266670480759652017389243628209003672930370124651580240557911039604013493320229498013273754488833151219217228033743914984917965428457986041339175541465834898650889823807949107884509148126266547100702269625894729634550252713740265237813361397307962979664683403872091407167945745594879988630090961376148516273945053145753335324966757565638026324954520300425187758127092028208803701738607830800213486958535464434433855220336177235819974562463096085264971504370848414030862444034606601738106472946898050444366476869314220073717463704614426231558187354222896386352423490518483512493494726361255462725361088680160738811220812123751611979473591003908109542223538012728100861973746286346872336511125123269740699511868143826328225723488319919837997582906900214435798805548226105004172165289039961131744425693012673763496828397638507532422975972069697138200950632094154580916911657506606483864915320326357437620225419945575555130464325535181065763197597987727797874493240238744414768448610860575056375009323385326985492624706693910162035247751106934346007361612366687103715408854454500961986302199018291008482942133474987711249907349681737370179635919158897951940984556408975802024671506806302868816429005799706826651732523364062644911282426016422340884104228180300595403204975506951026254375306758204745774061265389464352593875297923250288927413265217866769926120875554288258243409478280799920625392989902503485394290729843608799901300783415858514039023139041670098099661691114300106370804364686723882920433712057856806578083003896219347882839291629999378121974062366237025795175680242191053056386076826212649093360217198664606819366000221091078964898118598388730895864109263531850763388055331693087164993599029422375218094502872016693704156079883481128985937939314671625847327340097145738232109105339322397151466390467035266360885731986087217716983051321589496909185824157501857225526547472819276611109450067933511156518589460116212701311783637285127104411832661858110312009155226035809858442126594784352454587611674274614816717959652718262760058703965440287041041617353705007529593402344819399805871715637516353938570329402318723985890462496886586131691065628573074394072379272130470270180552710973985918097600480637174842873386091808334366882373625645635180914385289787169132430491290161461911257669961517526506143315846692848071159779425077559095158695036934188933495493147777638905308045081849138885549314748220981215439211556214598577269619278529198001358845619160057009219382808441072660256952041882460715222462916950017716705497189228151865931932186027123550301765026226479645969883906971597069960838649939414192013895883355132832315084328646781099795054678450590739333744104761445854461671113732039063433743693874655042092430029353924484339765537584111355050078798716901092239049006463731114577100141529277312259530139825232103779359517862224720502722368361611198534042997666003122020092981866395737836263820104350161753800659156304745736586024295194861175294065153854774578704986562902720484244948914370765093779515709463098966314447102716664647832705455532083122841970457279439988303859999715866186261638358204284526091246697594449206887041568509131973161352907000680770329666192410987282822344708663771166291803578057693441417370530216233080401413760621610736816204709652165886153627405648877206011850709476188111176895555561769733163476936457032309261822484782827713149796996287500960601284268937386968840555386553474862606959925904503071029155986908796918468655840832584920693436741629028174387280328373752528299297368791152763938827492889789734703859588111474540557183807931083428520458782585912256949471514564803077423980682600416759675227966045442380138244646906377583560812282649232162679524600785814677952695724081312023916425131816043195058387365337800715179039366909059457802545793102066453933056276677098987563165644043895606731779576958796802713523397251626866120932357048763229728557071955470739430116172526146119112688348078863235194422702596174495839950845652435587651477856630406364746901994056794737653130721883194739564456871286516692581827525750220081463114150750013812556331888233114843252717215202814151388817367896231705943435082508227026261967241413884395565355035108495865427639722535638045418581075527110323523247951531810414513032997046029321556042775002186060994528171049992483100564125199891685582721611329748695886550558273734615174951461950414478582903415028561217822041073953327550142746944570649437641927023927052172431226674279993190417431967960093995633264272018021139563802909636825038283450281224453796483218728879242784974431334297258274540953850720888689859584340185400275394708021055587344399349695382219385683650978932194873912329717645039237181205660188557849529937152323001322668893004518859805648385155130785082814494338306087253511390062619551313237315300492405145503603085732655613447492605499044113172724484490495981066950296363178604959713761136994869955269665093556653038581966442730357937566352512156558739701147504480251055605828912262853143081175547074942673857117208280881764766415529648977621550669266999901169138121044079973581906775404304001073026944908296113269665911520872537949660672578460935568414030133405918695478825731598263105323482733864431705439607238490678832839856296368796398717741015631741520468916156469196846381186374283367326743448566883024162682490980151576903762005745586015780696473516040369436678353436731871459054404411802871165006570922403488856665635468488350736080237982104998783039283089990559983952559263608355880953863870514907469670470739881502834527961030596172702263991200660495998622506917114768198846768584827122734139189671738093005464096480437654567840970472446792620707320234582355358378559156697384738911591180711156317590530102413630982279251334507802342533011571955316463003439158380880689262595149362228270536028791569619565791334437076433649285397441125567687726141487579283598493428411811296002699640905761800926138349880919435586211203276693703315849786468924615010033641251166100270937963101678944486754648240106652691695895867787199610496017952787052353028380207355462092577196089947915194023952813813590848498000112545725678611007377574174017185034572666542704520192285673349673984577781917974509414595766721313719407449019249639633416712554642426575395466441884833226120523664801644339692629814587680758635468560000816735308259476217822633820840833984432312410218036693505866641433431534973705513922241560566556962948698095161671757570681813041181692104919471811283472045651084769546157207773596520779738886148260148646411530875882931811221578690189632644726429109948496454210880837586787996497831727405543272631574604808046284737346515359493212763956101716403830225989148054207839190392704764735613422642111890081613994976038921289176582610752039104583158445879051527558361988778137666244901409409048014308253241621949360336035645081893396287637174047993061252391606699989138084261024055056005997942167652560296906775495085459623691450446384371231387980989515275324594735421852656754686022006312757364918372289843847502328614027118629973177737446312076240107034817187470269900720167225247134601419031529655513158437279746917958343551964769545003518437540566274304610169981458374176904007044265007185679305818207203625921026436532643011928780262435454158490310345187350108859895767663214223896329444431343506662731374130099629070587813431507264091383863720670257998423517538054947520399531263758027847805434413270372712676529559347628899262745013369875561154712166799520818720317123767621323066145285595302176592914969536351411113114574024656653821173348337592363574538103560499527021748150616946431905483944581072197208601465943380768391180832719394584974453303924416565054163422421407631111461725957904281998657832953353544088981206404570951020588174429374486664003918581990149431853238805745044119393153342312787361020640030580419329613049663183182927607776721723648541663342474127688603075605908989752178602755164535307629778609641439793305254629961539668058374495762371406188565354643942786107476758732475203155269954191041589159673480550147985569301190509844292649366459652206292363795568417248309212436268168741557226345470337292457702448627339248553833846224812626753248037837179060408394537377539882160340998601498795698389235266472793830150898466886654954459703473971524772492331289528538103519549596906838422306046435979309437637839259652301582034712485678437735690722788507201975478373123750693461117627254487477159653540787935252890657390444027052856872961530124916651869717856978304151310665331110022728773413616413590317335069463020765502433066362584811884920141111962941261588279678353180969802436870728455023134394574196618537182297084623308161381131031485201703087574408450632061299106882680575127438031490519425601153914044678190956545954731081428189169229298842863562457605912410667046925034386357383661100075924457112836610566649852746848701177430418782525969899927694845482121214280409535978133315866919347457926518828661779185202950821366898148745329202627691052524801237266703610710358602354378343317300734668524493165807916330693160820272511619209192181558125819054251810763612799772956655755914091309319352241754998354567891499203052784988603795187295542451207267443849814299032611078276778368990487609132225901636204117518491304263732740060423243187901374306546635321606910745715747621236133490476665974586585813562108871639848709657698629116001463972103436751997850169455158586035429848536625604909129401449283665626537955543518742940828037141436651204863158621666992765403116552491220963479361962026201252157432240727478876965158576928510013881943078424024705174346117047278698322679479937099568475243749384694538700055363137015684740120100693853217446107429099547152734862438345529701658910020524345295037195058571725374171717181227629658243374041823740445170561476964752157735949367010561262681425568032347188187514183611921587250153881000271423836395221192090764532541818238904257328186528872433718142406431632266934783646130744020503804276593605800445605280279468486758945646501634061439614421141987715149885474455696975697340556328482273523372901922783613034096650091730967149667054251675045218983866959925557984419850969130860294608358842341830930343120759874067125536703850841969728881657641439450938229647964351730440421845225262155567299584510787946262291905891577974853500571280204434248609018978766307131590917085263532505763090615970272330625426736684397827815415517439406888390629450882125208402668692824877413076529483108053816761937848338105401279278295322968445592481249603899609238888453139819880639426331104406176842621167334260710748424400372952647564043831724227822897953311875256018116158815504307790648297955712954392409807891538239882691376391855352213272304687854265568071273093179447294569242454632287913516868382947085052413993528535692805587838381707573303896435303139342689686969918289911455458734196911677766036160919064457026186733224224557994025827547875760325740935534454431367895307740514655715114338719893993114422056756746158992258347593094419462412665754327799566259287658901211070965421051293454315464013565858030945398331396986219414036341917934576304013788715695331177165357838208110280212242988838563539574430885695250943569736011691482301450897526080416930336451574474181140777832658895796762105205544165820917558463012300446240162807045414709018854388781400526954100194288837922512877260064425980166465292209656784852592887062007528585582358246408893374841166422744294567350681268785129668170817978585999685824375902157251748848638321972535711970802092314178954406586035024925489627021480451952527471532030622444641596162127423628828253380774953172495985404924021953648116992504441377064844016902619730788153491808744137501942676661742884024636896982941355408064918542013804519941277362018896641515444380277987675632187069878645375675019860887862553585573535577548866606227969831135484755267649119043551799458171158122965204837662855684339687968130797037425477136233243015475507564931748301037668656012684916928808507080642192519555851268855000881903801419558259842094303381337388573367516056424585802752588719978341643400587620222410047428283774532361611953320251905883429765516066713761872486488898706519316506708888011146303746095436151288324334180369808299698767637642051650647873675706688545655544301437555081739114503144863865850835655337827143609879333210332350726914037165941145704123231211661512279722621404646264881767900212466613313879283428041364909580860375636829996311456033206653975939886762972590878562032429332796790169388566057865849920011331587816900940165550178408847276913038827350251466577475860415810862299737717769478331693729530576762199243959139732869778818853704672115130242197855196906989303862249523992190741541575225310346314952928086357148405328195761709006543261274553139974288121811339198102984711086469184533339097848584544369715402112829882363282274262771398869592386376935875221895468710317197133867113395615345247340207490864619568724849648945431720055941518571955687288643919658306430389423651007177839230105226646362527226893751013221078262728393078835687201563192662309619044360402428758699439014400834152881867233177734497172649971415532338042597123396343521344579335229297243965249740039169150733414503238120869867078920817428923391872325152452622722781664335314368574082938631365723766240372365169179252511462770904669517540325378547406379669555640186800429469158259969495166159724537882175196237637985570656813812830723519031794156471242176538181044935867537445840943741801489622952396324621851053138503760098595371770013088033243238371377942182636964549978631754176370727553473091023182197318141871946225611363419830632902902708513515277158259716401705476284158680498215052239632523897913648832984661391432472775372831753113433412430981436440334057385225971651968523281577992888292663759155538366884406755891655169784267095745645756320471168790656560660486374734037967804604656906034382743335246407173283401330726613221425302580053749932798427392496845849236292260600126206728531732207569975179739588808278977623566903249676731798491413191993709576939481183566663977081033862089388790335783159973806286508120076856671382043284811532314717514223225080245984074993909165633893535947254780455530609476551666860973040606378322406526508205339051556295015853463977881927635072770470891670021913214524344108895391825469012258954263528913741114422773355653755900803624575135890679569005383399964430564522481338583005978300307886892475072938334048603678373316122865080538727507402987318179057797229392159213250017273539299113488925793437108963954902143870006325657081414319218740242122097024406453203831479530393177532471858665819361361259338916433182434368324696484997006632860979202702761481046731444818852485109314091607837851287102372725407095680053467712826262263543012449137724886770208957985675197315570088352451518405535007883046752410374941700962406966251448906127198603998346638949854722405325346349127110544961779628494644155845380778104007140423671102821996976263704304598379079173044162043019206167964936527832909028948514064347993958458730836020529385231472817046954814994010951890496854429139346272133046285528237376750150803074545544063390853837601304597907493888497971238965647808458581965746674098835276688256963256133799893446650469524120280861162837006357024001426352728092460007828351223515150627339448129451746719467430163083487605656430958540791065735419098212523505511725325320409463216856815725881492599157651830245733384107684889600684395138397317146163713539673443326026179349372414495625156336414928226469670138232144849927575386538312171574044983088315059602326947283122413138806753035427839752511258743662646793741865142165938009554812510105851131598855528508917878660528493561368678063453993274513580895163525983804665416542028624903215698473908408649081679166289656356553500664929934909717288214171560481013727441376109338642272173648237273678617682893031574354944821696571353978552513849181425496629048861783216505931388477059003097354777323404411953130232508393729139823525931699668103843952486963143607739967306499902916768849091200490333828586117296336081824379273643714817525897152794893922111894693176468039826964055884513541103468657855811970595096902547765407679207949825184639584832915691643643666804961507912141578934657436297495354286376161917668162732886712922760524667260591440960366060047015739442595107449918883595896019368366437807600466809428245337247572597143277778580571627877450346065764655552328043396326720641241486031787523222744337488536881643955796420609105625970147160505298957448968506683876815679725747767621365262906002001736341980092194852361171452048575826116858685364248553668934090668034006042017324734478777492380062309190374326789743928317620300425118486810171155604542740041501029130806610607585712044695647833108495948864242192060128375583313599635221339015809335021902940834137292000046014401442682002133654401595840297707325218608172315456572362164493820162832478016279326706198016778495841606463743758231049686810761966038762921773365818167827369838743508271916941988220378967699340809786868804221099993145692171585901340747481508730809281284434039547445882266182466534367877686113447515806949564843493346132467565774727402537345026325819304694224900197967214480889271676522298694959240001614379101797944387173335988028491186934093770369999394933666082227291595979758222605592112480866187519876441758401339836591166461441579656182902689395745029013201542787064286526831319975472602628871079631195301867593487549691768701885355168326264992154093407452781020741500114097360495123481112026635836898806745468788938122926096799769590776181706344801653023620310963456312224487609748979400570956709051088417286166680493497316593388462395157210460909877600415150841569506850828689211333957803635178476347400378449583616421712412003663715830595427875300325066357647389094519752544175059936429102647602233210316406703038910823142155619743300678582544829258804499273116437828748303351084014249005121092888797668492236137101436485894875072098917844764446979491359388302493508906123995703899189076950920492596012201044139432423116908320887754095138986476287966129239969288010792477097939062686956590839075039884202937964589049515604539151702108661310754210996586838481477394793289461102936914501793194396389061346154393758034929586206416601406014466222672428881773621648679895796191231840910801118079152017511200419197033114247355828980071426115033755112549681199952413134873168806629039740335400382295434311936397600176338212282068340703182174067075071162479525585580612105073300838038979191341164857499951150623287163602213700798406146876705357250241109628728136424932343930816901100032662746299481958295461699100194694466658928818678755374303850631108933536045264929682471605280891693066169759243841227255491155788918510027627513041701140516712067736237035896138211982965729210558977882628303181063358722862704221370438058061653671877842284650597410253308006565175005740526584646709615122714638629491918246967467333475700417513301430513716694443454792841525153186957935648191329795390781455995844505244578009411164823501681413699071975484692196548534393940669961297597172808947826208716562103956622624947640179491721324335759506506899565729087616888717282048030272665469425982380759479445385056158398189152416519375687627103356400912981542474582253616211452044235747965158074004620998481095958312260184644996092755707686117133518612440171544979796622190995810397257449702594784001255085461664736630878799035183552231496569936180307181876396589053797129105853617720193716816955737204504502464424173459372359510387798816773340680803969291418196737904698699645098064492273178654325910117091650328802072741047742368197244675470523556613555500692959801232492208421244520640461355718190468711644902193774184151115629339373911239531900203910128534438161230459984532928496756543337649325291874057502569784542211061658623644832662703548460038569612940026051210816216045147119422405256652521378874761664846844111062678571068082906021954400920759530335832372268392023205094500083716293265433712690490124419301602307801421208284274866515849716769657569279734232620746128270941544857327083049024322887538712267369160835513880042494642799190458230003542967394487188839015925201475393755932795278103551377480224764383659911167445524039689361601228987716552340985651321090959437210705295330229555719528874292775394990200102244173652563199938686914180267439351972429834863507424554468024238879939511946761676630913384171336172353596308499929031135694089614006611931839353779238686168429650880613254842744879337027102541562994946082808841284006649652834161333942047999376562531074059614601527222227705930642993651772237840930375539994196866037667516615633395427127320370048674884921971081024346747123756875058432762674996772762843144464460317093287341726463979284794031005940866217278312291495730643769519101999844418489459029283485502585808621479470554686474645156566022945692762398625298361550634736668077095823640757737540497988123002358390302573733739553308534188884449732489764202258572392755449703611132095254349289663745928321070995712050579521719027968187006018839841528806585338793171511237271921111013367513912308372762018607476116242288182295087320140424747839136889144404806256382301231870224946704071489655055866133855017906487987053645008131786261226257890036591298428193894040836822730279281382211286306186743769131520120242184198947264352980139640673370794378365106746515604688125725497250274244484747896368214388914597862743283309379531532066514376442212189472275154971283029116759157575566433023445447267003100935400265372855275592943601734152913123245884900459802766135167934916164663471804742112862213078157341269514152870721781473263598448720626834761842070904499846087347154246182314944962480531155268592136083700550942711830909006721849112167762782982869566237372595537408277532797309752093950209805998184837452501563195330514947845683902834969751501922906248005875046315301159147079599037843405236655129660329165727085624129461694563341171936760664563283671170040383818946666359082846258274450945942268727499517591405829658523828634598741964891808641560455719110464033516162643440897089509157154037921659257627751059592562624747374324213988487664145853304678083515379127607762013289442786291944852821747662245063227462194515336083131582282983871868469767234727212648859440967930129437979367788149816814113147856561525253836127279317395923949036825747061515502988504573104962505364054686334318390664267552837266782321667680923912128415591062495109874606999126334637065587445925853585072867580259369446838886800595265635290873845625981330077504983119079560625948844020470797357557613002612936105273574343255424132624493723524245298368164590129532594481939923078936063587890610439489080410551315852484002498919319304706731549565907166915348256085521436929768162535833047399604904870201152385935587981975103795037093191791782556937833635500235459166588527158061306435711775632024878018153541116850957853327772434725241196525155886661122376701664394368578363640061858209323496792422987135900529081458622815925463037768412898314403775592855574303555656692170809319093350994315829137090298819263758139589723182530808995823385127479714981333622815918798803164895733000652823125521875025497513827047948931611221122413373649129968690007955366394696398646734375368269836367408701029250532993892503812502969546315550694473752884851692682338027660748186875181388391627212576628690503520626993267926283873985319532069899968165104370570727824914620496533134217505129649167108512144233386080233296687837281621271759179447949366709438796967529610807185333373902927695408916775278590379407977513219072083704871279532862814131646913669586208520925777392351472703544899854595257693808645981095796524911943494001157070373086665124489206285310048955738584320004962834137902745477472000657260053793845232823761436940220075961525867616635335581857287749046598191572321762065858727806778221782247520005806939246073430179620524487799300695091231019820922036447701453304359721548008416985547522112474728898177772952816865868633144600929464002208040954591897772474192015727816091575977625852784088851060014236129849994939863313403728573702062297320799024191595280330507840731490920035982115195268967452163974894277512823203551896265413239368560763912542519881390835209110150259697595701291190552383895771113003632746209672653533119126203240237128125033177536472219695137044223914792092088761844507965177077548574780172006159869687595577699211489547309774146208587045658292345950007573291477146482165021099349552313595044916814374182639632001215076278155415442776801921448155847601093557834140746320138697219379006595594356532232577100695451386176504855492685909269842060130602018877303923449478802420406955645952608911618501919707793323346727427487862621280784949285082194931881636079649301326375676453406283907921511607718475741890704983597853623240842723213838593638126600811232956788593357088064275132009338982801959408296643268203670342546449971138163093785766844660082920680604946327195406828769412172581693461630827888432218196039051314571955717011654877436690204327644849355094395219666562634921909466826757949356549187429440602837790949807334188877013876857651019078361200246873340188065543968753621273408964698694618157798085844958583429905148286485664176292702238662668502012773643789749970384390359659319417672559117691008158456463206967447955334352575531778306913685883280047816166067154131402957206551056049941540332051252608104080597188968546629935465672377726365626658840594211976692267537168799240595961123133593389286755378377593678245225597955457573045669739238024149348003793645999775033141249954325556277876767467510095968519453744381477944721674593994542422617937396777608998448489923201576958303003734472418258500589028727946217057220888725015222212735597218133803559319995698866412545616826245988082784637665042327004133268516581442811641285140092383618499687169086997467645767745053270978445444746721047446295403331952174571043272665643387370865604077118090691760492912217726289991922426507569980227659373610584899894840309114471499897899648519030026599429637315115169986467090589937842379543886795245443849061520500419733528686066414467930461232914798066465913144766644469990997388030890109433882601676327899082511153162510099728683932879215343781393121469241447615912663755510701589776003853802526721965760472655961914084089132384728304157742795828883666732224646319453527242389978811986480582310268282059649709715700684328709331547224685045351826335687925812461106927626883157399525503790738830467317437107389247089390383249649226411570892767025771799989306468487422459922214011590153969636265590734288417301434015996302655266571050800600861683836587419736847384335094403239700824856225000456303318254096671806907188937548954544281275833062694551810427139105370872958201997335186109054621205119658314411152076174317418122224891844304569057052484702736171431184835304221654382563289706797780284522856308402595722233686506289692999066035226785635797730708530794409334372581243471963196927571197631702598092305321733318720627321570761101665624479111919434714153800173770856631901567247829446870341449255095427276972558138733687859516068376987815830271022184782959181054494924401764176488818519198152488745948474122591024791278050116456806277261959251523917082544324578244162070007091295894866429191765550888296909339474368515428985922050519650475389472110782497922789881420489998695230889301248862268167870407379013700654125720574337587223611944687608440696036828539914741557153590498678305789378832717968806617247801534211067639241496458687362088324574337142129992925163924498013125660204314862349521010559375563815386439130256555573544913890487348893931760234459571883034907428039399235409466744428310100329279610679224557283776804655736867332127625908985006192867237519832637477411631531270761711880151478370893702872957376731941787135908698443585080257608898953442257394392135899025398315469955698492611118375754568206966706724409828418030131402178193445920515349365463959286516869553220943870991480152576556842663588666414870252884285437156899876179623752975920344460469305197334248728493676245179075029712976883804874823576432652960406488926845819208220643230534812321631283224639164073005203721042460341706917330486985955702239723273060090517544999033868587872017382714306328300323982801248695147961962390138130970357989237445669253593023264728394029864053764134562712773055465136159322656872701995511282170689389994752890086497744567986894680177000462507191835427678152013075660212725439568703768505205184357332039116958637130985860335952577764444633338553254061461880009096140479325935651372569038336639765583661169654227680966919671357954322461691204579729740987813423357350094811541198520242919796043997114707402909217700959915801815649305878700856141204323379349856535216235305214245840855553516192847168243832276460000766028965945155853941322679929441790719819569122014354373711899626683150121073844523372300348667127443056686669385428289965826663016911851942263908555601132290631944273800837378725719900665976102568664690527605220707879807301602552126954264656326887147709893993284941743605955495152321157814052964887319340336261586669249087816964138572404147013839597508251312207871335985944403830850026047927022224123989128704085696400778265679708958567808655042190623294679040560978863542051472091684327563429633390752076109042103966949417586598255992879603552525147724400808864601903351988188798527800797802968422770473039872365505318603578071242286490671269740993586867078470730542088303333270107006488182471682433927750933140557184963998987325497660856020050542133125444938410684195783018347593073028309203548007536465820046472652796181378390804717412993150479976809577175418296992664505997523022809071770007587628666499718412304050082734713342709248201099807301753018212275645687279411561261304271518314400872771094915548141649829560069944626052365658719469395977512093768425351204816270789070765049832675551744394676936764533504171426359709204065927737837129790347958442400623422746930828133789951613611898727169052365876302970016348989694382497745102381156423107182816982453284835828366401212679113892377864576246444208629357003952159636104531560291862363321458042976831936008193064299153869308876940368393504388907607824881140531626903084927586256490473518077545399176463167956326864303226851762082028467527722025499749521503771811492963792570499374506175976407775861474248891449672016549133362370805711523534034075253122088678371350976787240677851533295018332620374597544752551291033665704198708743520963443135981215777653950058226888778108404637696565248021123927505584414645081677042597090417658844728160084663924973759240679419655249683565346969495377847338692392082780169176889485949360446843916250833461213476594429829797919259423925371601198240058848183041648829082492935855759124779821642185833849790416602216103456099530571341102264191237298229397591849257973170892735790735945911788623234551398163829503108379411828203738252516573388286864347029595514808505540104876400621544622905913061672582026394476634191009466021661186665299589027805086272712785443502932059374514025221338123744574732281050811493547710528809089023624367392334887456247641201092825979715801917168900114923675928344784164804962313316037757139549274900611566468874997318526043950241827526423004869324127206537767891254349970524372918863993081094755476841824200591738039074146803873186103854474926564667323254455003118272228596087127189635933869369596410218787160910300062111618999277883461664723792605780120780809210607757743788484119464187999701957131172679724188309639129729235289486264991235586348721503328626178421278296694234569421725657869572920154605598401068342411256348100438676516643549786521697253424492620833134920095184751389242860314956059607649541235216984232630813707105850311931026899585007309939982078662121264365073473889582198606221875095084235080293898903547776871847438675822759853673473012828835482324241198079361307604615415845722675677146314609116917988709246426609830464097125416813978857091824306894019993909170008684178581886980395610204814152698574007068548289800265552377495640208655258778986368663111180811270216170556401279749102500932561200982158650161682921473256370406941434822197915707853143785360542392392110116233095323206774192936618221135826714523450135879158479776925009314751290686420724788259411937312745223427463445124098776478602153286726735002853424205162864667595139608820673923376335835376341850379187049163780450100738235474036409686741729100818352619138593335969163740972468558653893947758218779829418943028179549852408874284802314572504557477076662334882439730022959756685132250139016481684153483080787466487766896193344685905145992727357731663958055640428994579465969297196524782212707776735036736989419879008952857840163474872384741717537101955148957016347637427048327143521501285343950225650732776294860806781803888404259480207656136326567442092477902051117341613185361414191920886218903672608708596067216201469454779379948089385857773138027139119687656744846225410188305223978414777253353698026238089060149265850649935321674303701001537217093712348063579608305655429004747393251770113262506551250863100836805430216145216620685660464057278204295804613829990227449905093497087953390832196533289625823587323673873065097932614457712193096768374204486868364969085169435325263693153819859747571774662413140039514846573699038483592963426315646127993298064260815962165108980167059543636492616084313955471512948074220967451385719121288323440043120064815729015079319554168882209097388934622583930748277373332412612963459250947106504382124095756275899862548938114742575781583438258042587196012313305288551440138250947104847621856898797172173596803465804989741144706033748392919973636569155017756851550012113199818306207044818769874265050134172050179838024214478418542200968295499779489739379549418822196667041390917340327448367593485784122975431644991283019319005352145459805621513767793634449930712943046210708536300862171636232453564170061137839637482492568707808346280449069424831763601810737637587139921435382032996659648342046921251008767006603003175416648559628537723059005526301391224557741923478952492780560645767320935070660244625072575682539384155509692424728044656834923456071416183930610270136916652011561573694005874433098935856595466300115364550958570736250607939299634940398378262928201536350194905808466492973017345947436142750151714222824106522184493517377926422874555658776812740915199622139455422571682058236514050318052308752750771160587248714999704922614154076150123393379822560116467191693974184516244586812457397826429573628956467044887348685071512922041610777060782244974829015063232259776419867096589312000277073490172527132141019069701115458720825547532303995670892208217328932353202840668783999979009892250138628502599356532799114292065125353318764896512483185587643499525994606391418984956457465445436574929431592051560922347615563088336330613445957976084615398819811301649144141756551510533458789161178545718093270225377553289905879970489741238010111803528158878023188945612034957301777969127111482548261370717327361960494175285527437279796660887553644927614010630996183997428251697005687015503249770568777097218127912369397295260734551588739390634525639802648822157178613808106050974890001113909290396317955584231714031645235907437318772270874164247021808674820773377295546276922646329282707991010012789088827980625286304064406067518827866536669820926746273326588997812812146257812183736925189372035878798124475504541532795719527751755594268236431076812750448693182130706241815673905272842492544043378300787564247962208743593035505245132617361865390224075451194908375090212396427248264323589268805914085769917148189920976859555659288412501546071542140807129324103614712080390749398665296546238603902999964357209499274547626052021523870748081326447135320494245863978202031300883275437299570847693038715700420166078153135595474009853951522107019584936432068875085736974068292651105411372465180081320558022065400498718353055212500148294124173226735256884923515795515021987209161085078809993083100024830583803145662562272627236067152657573129505427038136396879867551925785388738354371767265586039230823843365716149799827614575462033196295220645186539989510845276692167245851126633248591062708220876182978367024873039401708713893339252450048026941324194083564166763921897394628082400962868493566401083365085128270516104897453906340678795001872953324081135621971495090825598854766458810327728835315298661605132982414202948139572422561682058016292420503618223981794399454804156163302780439008332745489578396568694061791828324437749564211146447985010460315206744798461187887656323492470218704151603830646471896802356271956451229064733258909610385161632550218314917657039925415376090834585968490909202960280572867442854925677569310511067297827215855453020827141443464033989998801641929026022852401651089108674044929171182395158575795625083707759044447726859203830994049440589819784552732103424078523537440061245888962998523078150951285442962463732185918126391733053255983618036202930095953977702583022292503817074449041089402869616498185078930276495815812608054036333912146736099530139368211906029701907597240989924630985020094075868444118373869541045567493592153786929765031663062902419689721330840474073864655339817956793250652299357465004450531358416089626362538195916563097934459198680532965688853321805426593748392999757225078491029115194480144421320086851285327929449138917278752650143180377089971633493809622113437396684827730204903854510453898940800601451305568161455388545597121207500126219860963568683353229602170191922110628274585409684537695536177228162713160798958100767565227703537374528624380241744736945201555319461021757889594107352301210088478610111582152416051883208733192890592743851847026485568392805471478266110989389519554908478621525086292230872427142753440360404547928209858623228560531171095487392788900211422235261083536631864089510042926832692473321042503697783196243308674106848633950660654504772692738610931831663708243527901468076100403023688099821343321984916109606454023262288974243576343692936678397781632004373254059822273252847625232516511053717576531540052507690695293420136148028474648288388457588762305291874179608986371594050321257231327365171192587062815932978447309766675308789537468084294364111231515972496375858199806831606473629739028849954075989435914007021895881623970767201337226344330951082140102325435250293098755867997551289054719476826194961871619236581136726674904044906446490583251434918644569617010495881916793465062824632047301231164887063493439628116099435526831314136471692501997733488889560264033408006669184126826938166365574646789946962991073598177699352687320913381981157212125595719147846707586758826556699146045211322481323439071729877409498475853745876947434940334629433224836215602089714010277683733654708214475374088114512083381028618701890758684514512411151782941895809175632342321104550306672641766036279071628774774087606488115439895830512991392870057329290360377230523100751067647429022550398763679877699525721990632288247160821922665691522657533250416168988851709580551726839957842925660953156073007507998935546175781058105979083018820082429751501534409010684165082824702463222743446004327234523729386044380137727045183446750840045374325190201333412668929031694525242609025070916204517296674074006338775939314471795050921127388374127177252499656523326211881709231675258987420976975456570997362229839067147617487848510602066019507548625504151291706847685665276476451089080537882443560927017183115889021035226486661210317611880773809549392759036629487202665400710614841197383011130922971027915418884519358319521428406221515164335966425424857918089321080181634898601222356384317737429672997637049718137145663385632062656244419033042406315383699837080744958736253075385772831589586376810643871571561824420666652098182531701215338277551830480778267758103437195726270650114647023557748055085554748378488831086393048179794744251580138560639059876157990890403305675415081140951867263035064759907476663227732499942381066079779216768061732828704457800165117940929454277065242281047214762436708299735449606949308842732531925793562208598691607873412784275819746339499743817247528235427949567773143565500708691905886941561998856734831994980941779433775226087160844141898408821370390486359923252855923587474614671776351887843036458222446933041099929086111505551708796065034944081035318329220060309900321398537927066072155546615503621361974363855843740547172556150071788241810716677850536622193692609760187230719259973897933460187207060118276268354047999139001734113027040385158823036792307419068022873867732395736595916696257209826857909594281400333245326050332012072196692876420966724927923610799312174194351547661866200667019070113575272663594162497149059816204460942619539234189212588789772957411211763934617597128055384444643784392329437965785864833157216475616326504767739533357760351338376590107526675660289418543140128018473610956794263229656569031018791451525191299739565687005188016115634512725354764421146474983953319369559486924787904589084944640102131727820806864117976801451962163174160079787046636568455065071038265378592667339546604733948718589838660975348525356397055733315756515256036687026955815734193829896077705923612832293736510980407284605968511597824845442698292963316968393401378228861434510654018922772411644160565964810009126512600947848040358282642363255609343165537579023177225819355696021565813073279039250602448448204718906671494642847296799895196886953933987500086067818289417794611921060662423320609379919245670032557791701127869531066502380320636426228034536856981509952964549225797904943476920338626135190217567413524664428872407572772117149566894847895934895292672111993030153994734507148418356676881672140990236901148751733323142693893304501623855355540400510505104856796786978589291979480112035899096982538634063062708365709389738318039143051137299264507637941855740886238819641642473920368293617841009076323753473923305802724752993861910227739573365106697181191255884050327275679259002063212602606264453559747677973232155393432147270642505405549032238544745241234601356632936667022677026529761162665812379416502182451984079214013005347417941150309384350159917600974965264218413903538054299805928611146577941288823656225197080737971769562373793828915171296213313925962143242682917534544456695749903862738281552686019434386056506448064342864277518483584128143508554583114609228395620129562250292313007618310774282068175468058765123506632169599871470796554001675817179201490666310709834794009566256362881310993779286029205771622046983856710152335499720301727563174513947377049624715754543726611029367519166698636098816816611354824949902467922754698358527507277675272772516406472383996318090642005368159919256279494205932672383072264687416649430028327755555985231993439149965753464907356478581688054526108802518031137465111939572400612251292265934399483175562143528919221591577321312927382793034483769799671102740825005042427696894050047514968957080677317720671267736925486568115971229699185897465521188943623976480682122763013825724775224258437818150359819299874950540862834122320301100228194510032418518223833773478753076166298754185963124449314447214039738141121622070109481945791376352183259640094399632525025755378047457594540613358595247925875402423925049959571406068085883003265463770837095527057714946613618332345222886353586536006206820568638830894028814607747076558377980932093904792177646088506291301813711574064034522826950744723997836038328522651204213471264598932894360622217164181815474644279876521158679460597878780438851979762478122849208661000239335961320575036991166383201561534572567896751193145469753284381503767112533623901274182522682485439416988393291403812894816895135792456005104402046861992705766465876811667731231078065909052124456164973098845434204301399195061806043521638632839447624721426376364315916055759454891732701990126658666200172200638488598624503039106851721636712770885463348997865800963482891847631017002941146628767497719763466649779182550650905162725318202258280325173988861462318849404488924646411259096637450418200940616642067075847552774677143366818608902804645853882566947598912558729058640571103678259842307121710701169012862557224515792815166629471642922466817909143354040325516783738575737689280985537852600017894525358969063832153328079121701746991216920725512256675482362063007923293723595172827511274907431778081319160795205357291085423555914715958440205024811055162012536221399963771261548405064433333787831169475014614913948543652456775170456174980476013566564664920862888045367086321167823591787144435297386993175186427111115275342294339622785345083992349832405507669091433527796462777903163660611029930040723755991305798542158177181060139853425963998073828911771670236171955363344710001476646793398999717728320581169367718121622109526926884479102154920848844437666246396442174027370271018564425393556619293594303958394045800835972618067585132374443525277615954055257551427688350584153675879446020913383083747676363925000674180300740966229155388021820653874299536746447215789127180543744503087274052193558706811528148898433587379842298064113976571000184527456802007065639628489829789358999432010486426903326749858412347832981297457810887286686669531343308439081309203541198828356569041198724528539574930866821615262780439220235473216144200528029140219375051049208788739631609687829337436159729750550966181544649740618731923022532002588901086144546813868102580054490581891855934462109439148745733133477547205248571697668312478568498997158230133150651748912042339569347904920049901708118721791225572737856988066551433294868870254130251722607956464300239019708774489912966684779962724294527136974624133884811300418225206211973487219836983514086188406089683320830753598107475134468694635352160999553813478872062691206631647662681963815956784323011133617988010954420824560944259113442735026677571229707023406120140977381596795363608246619369340774876686008462195875536053450558450133150728278560528649223987562285452022353183685560848804849230612363153337255066553509797232513924727372082314339509405015871480747895743436247531037068929592077348373009378493995498432450008578395126196506151254309160429478370589265415508071286819828208999127545343974893135292425207085014855928805565009061419044475414793744157325577005432831552844325827762562493079864472099485314171940820031173336571782238377830038946661858861788395794196409077655093661450644330568918045163209328169943650077513767209774987177559487761669936176148037205572119629893631789175256926306912594640468997359160326311315478116840598027590375394189864483260000509075160019903720070728673360415540696623759553741888390120010704355945634763913011054367495382955178384142319787260701837387847515636191626525143471865732057455710290801924953444933745006429420966215944940373641436989367133412212011395164968453281885141854159537198194444414869238092978835856894955967738564126376995580830515806680420052481572998417506780601883233118421309559119622806689913352420269429550454997680015935234644815293947848345860701509059969337770433452736484864845105017532287076428008527339677836799384804693577717998110857788919814137986924466015551551966845475730018434016718354323688681491932139751494130668090645950066103977141245501576385785973830742131698529321860962227499203576084555392687898932508923493814685251310833849003130976442779983280226567301275477081412922078278830978219175583392083520452264561160894180285942341632851468111412441815336089109298706090578498549437145062350938237638381247878212736501290028319397852098065432047007167502546237978903627975321539567558699411336726859733109881549114425361707060807436210964498894660858462462588887906551083816591641003088852274961128171927455977063383206686843936525950666581775558387022186574437875200423173566068409974121957276867508220112465019319331445244711171301264584477410917009648394389000600948744762605656701497785177771620257208225591335591395431731675129670244973723232478608438279466301192608152911282196325481350728785391472117359638714072066697812711766610561607062242000131234135837761449374916233268423485970771818702776156884902229423053836599870622019999095999227183648869093568934618856693852664059539504849150499323981573410539801935549348329148959646919587667676666818107707101248198325357053732394228164489167715629551943764887165194345468549358493001321269164039516494999419044645463198099879789894073958800436094041625799502112060160761326608980974525616849799681274422135221065354502908358649503947669411004508876012818420456478946841610570660405080206513934362067944750128500653292861882320290772797351158261524546422272425443731167581025898115652507744302823434198584620831095103371691378276120399264243075964892383889788182085597148917003898560891427169749584207728168497440601835460074292595198438626033471492348121229746130484627445159571466021026312717324214431553961953408914782917261883661499447542791031696051588325220852342381534499625013481096012338524995719263187564455415605335556865263535933674948602721309170299702699674772324186224746047089493789143002390549979562244452177093145553774297923793057118893601744510669010607985990276994282829228690344353119881705523977903490169021775504272793312338324623447813623599484576884987448366086348665452754638909994664789434213295356915769804108144685883798155065605960862022111971728739731089477955016606111279112433632713117199800990529015998794580899790025159849452613380702028842050355732095526052608137066877668296182064195290186774902414358284675653507294009864929122975160219055350663695119356363759561859137997266103851248700436018767360893240422561342973532418170709484676705591652072080948341247967085733113327484736621707043338090414482255733437971595259772991575130493384580168317824129024058125136459212517177696472772727506116489326261431112579276626137748796856472355200520845207922307572777803084810431686731904366357567967690151422317367201516400723150232697923148987963309137781840208365337335193056902756833203503821746670915829538595392509630361975206995147764294850455895185368050343066034935200266489023210595185573726939659168717763190107521320033508443528478988258511140190644010931541247140148679462983804021018556340037972643514104244844243689630484818350289235264240359014756731943298861123145929433582225621217655231933180874851300743013709018858199387956572387677065159332219853792022795589190959594581034682416542332017569576843057095287114222989611077046605350919242129436556197994547418391294142836222957212381834895653462300557547985311513125082940512556074146587813027720267876745277608433346981880129177539885315423874775746537182289826866080363806673700032024756028035555655457475143912708627182390360095346679560087979475248269866140612127516619588254525725218506675347016012567126078146831514271194615749978491950297256310240413772071373625033551623272666634966561774279278718410988414927009095398592079181397559785408375287165343290103688284879643112414159324058125446335068031925418470976876715798124799211430030963461230223317154947380106431520128241656952321409679109416861323490157821328495502555900019711829202857293958955430381992656366110004667047785143427709720395045131970408166578869936894978514961303413545658543640553672385307673516174212565364505478022236422441939641710373081381578020542514747334771611971704576136919329409014565168801092190106929068272295231196524912915580760617065591927377921694184885753737721771949597450522255126877621592871335157434496738729640215901149218293016487019881494977621047055734008217873048562341422875473693590159980455189208786882273068838111721200671604499798423227078429191126240543715294885143407959174331717236988107208801069115822774473254381261188405885057981091755022075941524915794499838768446521697162106509097132491964531578188285768714564320868231182120067239034728868346633178145577900537990617835916943029592055571337108426928821934949410648240757684459316744916800751515497283933886979315276938517865925835978090818612266930069300924332206898561048559926596313935263245105508095727201723766935486437483760678684770355054016247449493083331005942890831674815525859924632986500600362327209534655638398243658008164071524768342007974733811840086707449359045342418511440949350910027299661727939841316463092726372277319838643175035049480616183193887862597964803097530839062800889060451680751526155411741950276015855535220300111217870277387890787542121300043903099078406253749349741177305862343301330867957044028720760237170852614605420159077811154759160346220081203266471834267571334285032328321560099048370133124828970320802675267704013582280693144220627658973895983796604624777183731690303735937196158461975319139152889390427294043326456610318654870576148441401806903983430207562565001977385521242887402229931708625564768125830838355024888227485409443123453096208070596164395831260431307451189940229804779700094653856291251099542587038766854692182036931769010085096932894541720184039216553318256143331380760934970915643158739832232196027824131506785267609350942464152440298893700107032652180206217804245650515363085633016940562351060751557835977901492553737329536506023422973494106871027337940600219105526919784944515074402217084000989421972690514051566091105751630219488572577508912839537138108248510984253949487518237002865496009296842805171188261062735675345876168914891226762500623670836939192603571417153277294300383599149316743112302899538332242307731013393706688267902356283914254935658769546612444253831169822885968054061753837346199357157649136107251749812736136293242347036094810690319015499601634577222913424938846409257477023414243199921150115346840877923548566349554157573389779755135011330034112620353158702271429208174419784139105927673088030820624482567412902971749915764278043211594217603202356306556124161781321873922570634546104419218597276921298924401516391082189671615757732012733462776852299738454537740875719863006017447213763638165444660724337604675003601868223800936197699737986520843610822422564814416579697772948645004345540493943467475766693900757262687768646691546635395576285754003080358790196933733776635884827799053307736091139946691483553612421066863737500259110277130602296137376459244552045076247839378171647046147592872258543522704496991454086910570134698486493624924627420865552925941128580348966065171739666321078428133922121632569480579518260489440981199672466859710043216598624652656696924828999850852603536439844064618847312958064823528537484694933385905827890117318742785701141265712602388833188712083385962745445334706411100766318469692857157485057878635472986954049258395719165816673076134202278085289244792237919760445001119416026632185257842429194056727690752332460633273559601503755873690469771593767020830474497182643967854957402609418512552095045494373145187716840040799448587946262122340481627096206963972633610361531551708740217012546118896882619604285223981122463367003271021541728558492025155595473463259111115623749800527937796438556459168072642846285031822750190671662845021059033309464427500259850775750303682213461617259980215341878634281155918933283008310261096799631092746246911694363004443434442096779262153206429660207934421579567580686150921330083144748311334483467082892586897857322989709793133449324627097270303324276867430262367673593579135280059643688207563095068450525510300353109512347884921286834367268675530821251971732790460161989464608074236676573680138357502827790033796997423376513077123551441195062744171919796529425888937098303039295741638635478108034751476132267876683448670584281819642155972022068148786453084399983992768692629066374195801945926602032081868566678783000877646015530175431247344438701577801054603769754393111396431894245120864956817558320451396428632600721518027270142079073839256952666991205917249536639910390806472849215194433999897758370617109789419108368419240547033875353784096428982281879451857194599748983886864094160136854252696294665732612335928280360039809783044602854095123723092768342852562033631329122188607575251798395356858476654570020798549239136395411156358450593610330232425846220013599771994164665408300914791531489704863709661587460943086944081353111813449977821162960659075939078063397874716963221138177935960440407647149791724448990138925431979915067515126604217713951642365777700208707582672448577456387051278146961785138123355874406686847593103203134585879789379437834211160334245521928194677238939239589022168898370407284965977341088206292935734974443576418941291482880612256633940316187670928061686813818721835741357039072262232822392043733899332796594212317158558129466384297297230978245734778136338490336913077942733895434108098456580716516040158087952741959644906674768215879929048241563308086393223369093677603417140173026668074221288099848025584995350452201875486089723497833833829612190889451454153727687348032116028401241615124096572366311874092199043867746008563506995514794974217861460062360904283800828915713112561838484331583703219973126645258251908879977964432244996450375544987381783343310566672186765479664545533937923545126755511288295345500704712456542497059018217022860663865100824048204551100662408281454718704710059915723354374667255737875817945180145902668699721238053093347743225153210344357970327320818640603088509991491573445604983163226151768378038049686173150455163009776041722248510938667511384807629422951880970325358126832492200146587003822436947278325244102942795821887911087159780256392586303385049559373804291290272753961868682760709998886823833576487814829799488113426152404866165783957133751600184776790564082579580596434366904255171828467107047987854577957399964573938619029081853202677493556147740105548899804606201752334430041060349391564432339633471145919068643754467900851242997699179933400777780156157578718756987716275930630858990680471434720388217183651868667649168032911401176047641763029973758115475390418705913606202678863716903588784835591652859439728035783953989547568876135988151682145622763621998890603343537368475281286822613808686849305582897563759062920363049317710763545524835652403842420925582133366216239994887070676388500389158055500458352833847056216672466047184160085295440474950133290159155922113311003213628319362561401435414305473375162104385868696023614933458235540387807086448748015765028828567717343149362258568361432628936923910583340401447551714669502844103600149415741422480140775935836260766962238258574982396753908557279126492145455351415132740382225327973352848812819141978585210592834986141166028962797890580430109459191146666281443089885114814670157633431605646227295589281350859982005826664165710181027280205794169308330462375898945893590342033528609183746358508231469257548586354489109144799456758828158843825675342039537226420541270717419215461720252274661529185459483990777543738382610219356812438051909270374874199845843672044366364040553441806032716543615030768535503837366847580483115002914539963129934413962032078501588644574980373002688073714985045315021218480730498135696654325282286609993251946844444627893333687643280418394460782791467648554346619817250396877944829570042765338937503269040690009828585257581880697022094962819496735515880169684604317928827966801663495578410010089981460564692089230624970352325675284645082206216952131775312774450017753439572593492203851496773102066174719894896834479581351138830964271708039743127907634609756816973119047144675200950300213734854080678676555703930795117153524696419310198575789803676731581733444539492973072375071089518062437300678338651760606857803927270818032386448076001287336005313966887194585239940253377469692803251165190969752751295973547234518792217035431018299508116108115081355322768471912751466027264037802628178819988954863313076400879825295655617944586035241944102604656513292804643420102979027669424134251695322773696583690885104683193255916655507083478047688648285250030441097204198166245744744738981143904061955629787534424092186496322271421309817438930429915151148126228526159408413445975454224830553946365370677016992247238266931434401650664696517079788484349367225291122337295237467401002478567612959993274125605496076606170340922397640245636756389195692478571081029012305119454062981712770458049301343763839189738934799885284137800336673287704030048537772618585148391691688092437781701266965281111231219617939416234843004415931585951945052672620863019292536099097805249583719077523470449459287726026543980292491904297567941503308005852255869340492509565183254841705508203072569391830426864246776229875433945582751898493861535551950575753354326837558227000518815131726931058862528053264190535423899758171768761347226249749071790152044397278180721767664569027866754740100742842335719190392147164495109971734990074777194375614920372553666488345619279976397575975949409485881389448628171780441565625100643117338881908886362533773005805383940365938761498876128833338176560872689962478753215995774358885342693789379824688859865094161467421116587869570197550479308135214725741259787423772689715975301315328523273730575944225889206967674643175650628353891030087731893756108817371214951770633938922983559953381336340201377881460023673601340506573889200652168511839634028062264008657155021591409601787447339709902231655759565028438676836204044714733496312129087009597042824853363983667529825328450620810371397370955000053656803929404519434689132712115051465959850563994154248757118185516475707623873204547847815101008826784063013683851269109842627801238581962877787946091221789994679166536690356654021432090300089203311240771817484921497968584679649554150607043362296790818448449526591135584606422646797891682722360376091099033581562929897812014011522633973076090494786686716834753530968310133446252643200510810111042862567584900779062950611059255631706718310370106228314403983904730265184113245599558558494373907277122207135130846610620000731765628904517739052703362864591180860328614644830581374801970499207121779248932571362487229801391273953970671396154892268207166111171486040406624841588823085926035309754151157381469700570648957447502120942257487940375207310237231183551432011762086483495463403673887256126444586449059393791434699851911289426376494546459005254427788790814211199326626396240546468219530587293522509255236352385875116412177546189659668993273655473618191828368300361411009961238928429117224897295029456354997358207362697982279936116704213741911545832943368152519980679204245353169908530437573951013664710810784604096329286262230921617855674976557937156590394699619669250594924838946586042830884120904961504406328269658755834983879301624264030002358993915534236779157719090950644142143689347575328271920864855416933417629525960419950912903824861755095900118444112433991600448705314378984157635713735963278833760416366713410784189478240814639632046469147417805747735796196308133526581765985004520843194713857200609719020276177945307736039643121994439824278766143022044349666506244804198530724115910614235060119387953226628131767688339817943288782467700359115639669509285784878916470087895786486870158762984159856565889092221772768079539716081702613826173093902522965851432429962737695373592686296456062214872353028901805369468609729399680669799877915979612419347255554016317448882610698801183207952876933818692766250052076717225126866424928740614249234256467670784639454993054137976188526672058228233053542330502670182652712506502967514193021662607089487265108664760532679625849159067963461718760272428757350241750298933475779714252824960126109824645162497018283318302636042188829681035229349235569457699822253242625105447017759917511875714977162497546685203981387993948677702723931393521889981979369945212351536214934547953859211434721681664881633375294072994703881076947350488446398341498985088179266348221189916779469930877701413232618497718206552368374106716271944506112348087068513126673265747377340730395140399622419901780594541458080379183199889790398754477803449556108948994420866751198934059069630384811447998657349790533700332513235797931791446850249941409491757707304045888686303662562485084268801915838562872218592648735053531501602541213692768203072515846083053302297009179728445116545946322953876581534210415487907209583140696164570642716194887650189967094273370269911049370059915071014723021878818139847209084623326412387757507910873594105544065525740664024701157782346700229634918593392426849195569165793194777635415604033982849677076789388819852890862574701444932520430359249879061685310960353841135496263701239248937551875682746846132272597191282382909653457638729631668522107610599230201807047069697554378575786385298389957415824820627508154545892616416106513261047122298190254699030601612217168759133570227794391590699786955408218280582557521419505341524582852425020021567701722083710344195325418466006930402849403136825558656881599389509629317670355526235528549089264228192805489305050071104992607199361990234982831956623813848813770524418335413193871968244944333891944172310792973659516200086090309524684837937830366233151824151959625978045165799000787088126834470394662319691112774549623619310089489768103703628433667917389917399624778020318690630733398185831565285279559872951214623976874846525038994195741518613967958396275452691332326048500474227681728524489990146435144881718745411379147831379371327234824069597705465487176741889730212320610228389738995678923970737424374180129784359132877806295105749238315644096080658084269014854299087821339371091147288314069743425900829674093451211008210864394215490918795477179075881143192589691486024902833584554916977420735559764881823557476343324736839872596197963843157812812449993368158999969407695380136512960134224936803952222463710295451993704153150403004247996482082595163980832317515489068613310935224847029404499028498811975132539698945964777465395392044408751046618205873588156575877183292709965739076725946122036211761526234624144837575968802630920382554476690000035400222633804607405606405602073497471800350932962705117844431355482175048366515898183174359945898637215322911411854864750805062430572427780552879720206117938925628120564195285915286063697456801111908847689141538362952852471959376712489315044911844269174374409334515036013023286386607003420991096654381618206659689335747045033506509907243633394663295597217371142159686378840410217284345313081873213962057507934637062409912756735966176267106203532503784709526035337070215789057878496942283346274531245969732274755610137363802110419188350243696087400314335662798980788118185897092134709760285272735461281525420424358997228388821136941876007626055579229254691145370994906837918461728060592059164672391208269869465621115652626686001993444522630000893833237636443990691579709076521239060634416823912044089832822821623489202638616134198616849984959888694122122312027598994785902370627862465154469530523794774700637983619918171243193306557603870768760457892116477287552061814976196594375839516403006028055425575014463832538878419475132382993613037075841497265310165925303561824155741498016786371525065018583314920064781425073460276582327638405476454167176636244721750255933163878274368729104232842389039534557652778333365380065251402412859449180658795474503530873309578338609941821659894032816140733019532677133473276712530448716915638106291591893042497959356776079934643831368549960338676551363550059133286526995540124790350632353426793335438421086892393575738171145298583587677693144090773702724181668194900415508180466988397171595838246383332685422732063872094643263413540781524405000518870110329225184041645002379657180398513608547465285756818730514267888878976489389835571254073973901560527311607674199814899106864871823079650946756973019954316114244151259664661309512163658969990076274279232009328458225399270224786697840660598691424811783436051601301549398426149259727222642860354973204298217597413359600857605894604579596978521761340541394713894190263548481742927571158742137681897744281899159149276156921496622301932871323476441418604501928832281426120355883659174861798838521016362065753532817748976624906939396293748570641501924928865789135589816472265244278700945834134669210962939809534003588698782482254836711003913890813713925464838482934293375396822085029243824119929069086059248809399446154969742637597485284956809660538344478181778838661029797719720373828892729637756870912905152396686250258738226257854412376910971533826222079122941647461201631271686698644279183938367719394438258338821044726385441844237161249565306403362240655192327718320133748824336836417203913258154220079628655343553252381230640687718111910637636855169205170279770153796260754869115038481227479493636962025792376598384063095267607664929392860709366443649018157872887913087003613695591100843596403058852040902760720463480300375131724078251123556200927221716266453962315484610510094625954091404744916473332403732768870028525993462243325964318356378119400020195812660138145876999350300997825986145907888646970935129281499100945784057503068126470900851075790797021912368937506252274545530648474748041757122103210375004894178380241246575803890695789776897086627002807593713901490457965245527589373640932692057910717510012601959778038186959557973167297177505611855658240273410527725892180211620048785085018060670946203455617060623800621768056033960472978410587692569108271049300207276827286119846821165733883781144402519800487575372837298594149895680318061602182145360035676194775445320624044400890082965643707498478447501499071809092360383844746395954709168155016581644541650253018012908092814071468501972430569022364609318417644572054899712217101938792994902395296440531183377247189539283933781070839723808246384126919289499129925099642094968325594927318018473525293319284934905441171010899590835928991923129376289141672132773773144611555816034206192146558961591546909881511237671614793150090437190580527509144218493307738730523659616784397521751201232533198132286405153797290122225509698175815431268166865003126784891777847938498087663793856192626284166464497501371346923730905812243876701163947156326607769139895503376350805396835136646784311632729991380940645228841819386541986268168097532827589246875265740004112972323200723779395012188185499927752719493142538568343105326957748039487462901649070886122322373569110563725726888655403074065303901898145573813003126096556152975848242416150493844523380165168312024952943199389232411765888229834297007099060685825113013923736092297923313530715090786696088626240618740025762046826827174725977110490300416103620046119790194393530866179109756214030435191313661800353199271857242517002333906612588954911957977502744671721173465016766219838427553330649683565209657295945096058381742152780977394332789431536603888929031054101709995002520171006929303719345479904585738282824987868220677258864947473713616573013540438979401568173736826636511096276901623392809432040796797647748735700909856974535525179044780040845764921232507899726280744946469258845098137705260922382041873220186962211502390087930429920572632090877414409211072308926400715326166310128135833250592922631532331507168276549062044633861453320940487866033294322790988382237231355514466017594958750755238260982847942772428456179088791962466012009968661076345841826373168656213206403508633449707549696802200307022287441476340022031988415966077406276574671712636896305858917098265306995301445478385427869210977531973488309095372798430118722557490850689124696282257269454302517546761911399634830394824995238357402888246836477265014884647019320792442433076163867481961823901209847235239350000949517859962653151798309207332048603477325760937248137308282067200459554522868502075230156533023557842010815148526511198778288788992561331550229926931578390226121739876831602621971876669493692945814541948556004279641584852145756187757264677114476218544585924619761578431209864251908207694163203220200813085781212394896641605750192253526717401786549319484950346083779370307149334572752894685775302659650590941185229245501278160215107722879526953667457831091287005015418858799528812280971993487089683081516259257099882687012044386116719567792507834327006907633122232285451762872377179507670608026803346845748934866936690525395831044100209475963050099184572489742537981287918932231327977913646495725229608627552183849766868718968278007764231211134528412798635073511434091108999751418514649097789083641939831576566211556790243559869803790878778402051736386896616807718966509163069456818482780966159508151619869427248102603320483054892184760420048497757085017534672090581634819799819352834934492567383896155214742914737255477326371157454193463590841998281983695857504311814789989927324893926532537823934762364586582473659986171691767571670472218650957281453343496994053864371995158169021743891614461371761191325912332218125210241617059473251548638455431483482731363685406998359404503459924016623000724109489601385013354943488977621187353951416427343204638357109939799227600808721429462751035712470245359595135438596358358722359712640335836573167675422159510217970272664471720779733855536498185997662662709337893971412455078333225222606743858991294361840682730271844406115496147844344222753083636204018333222745063899542946060280651818981117790172229680158710682733420454230262727994749447586107660498294618328753006035047587673898867622174430523260887457893778193490184670381855556600141896507963421535671015093904428317128330159188334888377311573146920893883244454884500634767857045744657703597627919634652834579072893717946067016629115618776736428519050227107743399419899819292645855849576054247798497873518017248299326719506534953862705649658689201928893970965709558958348341404197078285371672990711517998099910881465228929688260044838661753399852834865207856783005453865038964223046794280857625247918596220448089079519005519025738542941069708360172311407730833177947579034801080377106219671983502170832535726645737611511291136129319821639174279965404173603640783546308691559119075437431235102880724897837928204463420269880822915420123760134514857717926590938087158488947790843859478300601844437073081061314592783182831072228150589425971626904233891961071816762958576661246406034915755678147739726545876375016740799900269713736257083827089303423000332624356841854429519242398381186466895029149846812699171894072788705341850138093563459490735976665021583764539293775233519979495852047888622043193752455843728150886806741907493669006123615843437677707745304246360968225480727032110752317679881234229267869816345711948110798970022768585753074568119601633873683189093315959117041238933859662247852168550063908149281855845443743044738912863415160665927371372897544869697035453650652707102088463932412808767876813215181533844514879124805699022528546830922345973174464614572734094052892127716776093605352890153586721000198687442471108750678272821567496679077886174835355538352603201022662184463266649584795000681629091474892006223406143322005253754003650396024778967971017311015238720958314022225362614663790381905306246801856155500507898002449237659173063385066385000086787651388384981731811102498749760525833925923452508673121487375054431225427830830346157781074248342153294962387209745952602216267759298077944181473631021765736197783628719639247696305603878521815193010005359251629445385739443265424501344762527061807954972799284848250847521210803705662853536061574174047792173252116520496209051793684909315832856616138727185312879453370186308727634698983705476998987490962909545281492980847993465266392980552598202567100596791021362915032633449687956242605413673546427047777864697853568849045466932649745029630133653327433991242175410540485075274957338208952919374921931015335540394529860928431537127328229293669137201612617901270686896701752870986555424064070965584949237176450931362885405313199752150647062521668619125367934883296711925463282898391503291500134218772941773360420141358597222145151674925201840908234513987386438838243160639025152833309153812380134980116174413149815903103513360623952158561878967555913967703172010874796330804488882080774270967168690414808638995671786444337802290270716466036920071038535834665197702493997173865255572155449813393466594004490676386008012936329880093342034421954773759344364631962222349015686932866276971915564735742987263202051071845674192672022061303981286500638889394042131664941179920826681462473697116596538780537506277749776354455030086131908697197051534209313126484693137796049944235267840030230468470439194941358705827646495253855957985284050633053795438443542825242649519539720607534909168570411907696183227686588927615398577250942970179627922091062853437644332292857375647469944064962966338124978637653736469738315071074729533547357487039091582686379762694122069822841625530077458603941570958197058680861632486548257426932289912320643750310554783802727307177432762544493350891245516078357325467066145759300341044269424474968448670680979346318980804245817476899203640221849855903835249827835823754191528828067913217737723564207456712983474207343742933605762853865905960168411435927012122738328402245796452460119999122811225350622252309469757590608164442059651782136406811246402462443230474921502144577277666441356622634616433732061597917796338182824953680754657942496498242987366456806344030063899554026284623018520205740479198796601516488886484296261408790972656065909489305979483805830575414961676453982815996807521963456684335579395565956029940799172772651874913117172374446350705042115508860436602508570240102887704105881780055874335286785431161250893029437335572297638844636115204267424032143202827018215043254463783354087026603485063337505718484685365359909595821515097659487079049044070344549273886744907576760733833417712859308741799846756160525120493568635451030969845116233566892033121662485816616262989965318221037802910274977660149671094670244473875542267011824104785001259091232886823682911636792853371821990640523615632440245016182593234423983202600805479007086536330118768226881472529365148963539876262315362931955727742294039848322306872579797651703804054981219548746319270501860163955400100504985709463547693882146478906039738509921990722296067169788924252279437530213152378939778430858161397915173117036329951087972405299652814725613531174874194904103671892567009867083659791617618786998913824313721725625771127112736038032017358238404551046035798769005189038494905574593433213564577190913298083556679072372264018640648642675762067296894591081084096958566090202565744437266335322983757026529085858896028684048224140547411059764570437124987967825031919958848615086655637830108582933226917766479744316316946490633773884892024938692532957238303516901410942617937327840145498575533791169071183592154370217743175136461099275442551636287985984866726899803385712786342172934400444688857576280535542843141432084362921870419092056516248062268674861304055063906074740480817002601612671405714001287600142421241736680638862705310213251286991443323013889511479999236743265928349959604195623064667707086098491374086194774829289217870368578937399920217445823236840793892674019068346679581262888886535688357502216620471456666992087717623371420861431639268121814203093842987710628854406459421395603910653945311262051468364521507526475974365563090193407226081766761122119915665605956124739388321881054418837926324450653447186993376507616951705531209004826645430689596214105590013921004426161813503119626277770096868793126148571897333247379658282271712222689537106321235148582051273898729224855096887538285283695560554087096222411181633827638363349299263740629172533772778300934284310200316223114466039955795847229777175341012850565145740546258506518289482114563333486915377758899871915668165145017403382005947596294360950713064895504410538998183977992597728725329847384994534280006325023307184380898481152845313482255839483984305749439722936875512473821698667266425971261843427086478792583818568887968488230039057972591115831023539983979623176551023961245597086005154754904577217949129687918135894962573299536132681285627127995338706658970782100423488457250395837962927904531251841781755918842421446062015315365221089989857572656461508956195048253556291353748299177815565301595227737522076001896243241475591673564794415018595374420180041894827912728305101014844125067122879211369818998448460338364429094608915632936200059798631069177149099781857190057774342755408983961247823586315746741114286466114361948303431967110559502630462149611447457663544588427542268429358591376272306688432138298571173394878392051985770451970365349464456794989937423345476704808626969412546140304255865418135107015532836627376437413951543951742774263203664089803789954241937575509505391291150846956715948260539815501608081130004320826214703354529744748702097576600180159623592562830117273908148999379247560258595890226839200518134862328817099145891603412199668912498670679709140628393956763034091519647453244581437957468073428095229487676639177611231537197547301656945249566402103548567045080080513838151701339255788289166804047898946270994054308667841512770005155232022153832041098587568200303009906290846095343500544157576682645164166710306557784380866806448731122900142444299620323600851425503700279232296465227614433207539366113598460118735313664542327882280758989720259397468960918164114768333941321662909109352543616249885937675477406869027474519562075149217348452553841892622717150676261557520035104569061560985893570403367986018161532089678767359404717806018532931013984370019025430461325300567650458411557361758371025654328690639841703404766928406143065155825145157327949551768821044292295940031520630893194153791321159777422168318912462244071633279168268052293797484359712564932739779677703743799526921103956653706737505378359415760570577383980931570319986184330134002972812901544659300441841505948544577614210515499637814601884517066655447080475294489366488498792015695513184371408490225490779257886344999906820741729584280031610363860099307167171541106199343709959081676620260846038531782736171473437598340134120867613984291239246970621324116424283655303173411312136695778110084848629167405083242891284265161547556767503557503497077749683019492559348737914463397866440516548114176866329929885431296256813046218713401085744234276323637856884330782910909903966093837910203516560956650995088093608336609785182276644830387094335547143077862416735919122269787174669542071985243280616115369334029481953414330468492395235621192323293384780207821970394029672156042966815030544261707591829305242465160531469681772540975722519404051785609198558552672887827038212742458191293444437404193097887030202036220742844589604841568393182327643053702782885071480936922645058069869813671302268461068583334691829623934610642211754106358771150722620542105599156967728068289960523378120107737378410516456947222679756447986256404974427818050771433509259216329129223445327833995424303034201925870323275663688306878180159763574258409193539426184583694377682906011301190222468156587162983385531088545166559102483833173947634987929656187970656384879181875000157442938423179776729025203630882848942140002532123190612769524349326787503426840085871683015309384590075362437799687381204323129269669388300901069370498788139509692280145397776087522580271755848868242881972028067803752832155153985559684542380537072345649012503621951949063750046399798653420604647065825459536089485026181573963914141843310985406881777448856740996222367966728454492626082524877613001651597647885876796167260761550037138099177161732792703818448240357310629417308380712643494940474523174898393929224939206669799919421429284171706496822079439165387647136488300782884407375888351535008557110436754651576607191816236657815153523246728276299109770726012315004150931127705523502432035399872037499004385131486351352408503437063531399906628395637996729946215173599815850825251160393359471879795328006731896066827349657503823460037097145608470379283675937897855368337814380272256138647594516627726488585256679734209306702954723282362252179489009440667604415445351459339366190328780557619308026847750516251782228288609425293802269079716724774915002623749315609606568873971340997340474376732760752200125277335365976189965457659929772314558588481528925003405986688268296146108935095081264827965468637763700894747721178943314516466045216122821645243544443300942781896870467729858326201483153185872988916112509051959634546671320526388591030649956403579093129193666871521101535725000452737693782066155519630472569785991229033141825865599690048965427043462234703725406354554269113344530966093910481581993777760802522211870110835840969000196078692885813207773289330160006972676618322954923106638258378333981523922167771812236681154615629651621260346918022162327914287377705824392127993640869608367667043120176985325041133195651862866435204804741116862815250604028089403604392053853268585260125188806766047973054417315449949765436366864767204125853480405984366211353692554283662436750145389084080766244869731971476438215725904438475239034029347644583486073234928640579463206344056323943564311935912624844566451122748927243989129558157126130946418783005933280787772888189049564673424333673859206609005544049322817542328274358217616633006197132582448590998817611548169540856686926840772301771989386601022596625989318828732101129260570553674227933124797899602980034526358891720161989736115214623044230456141843923922040231357471541546361946640673470391041275652149074234292044101572375417602561474113965454969326178691132700344700558941559819274112598427777688973108019860744373098046658451727247854256332146472265719155734977876773835009924178625013736260067836586385831020829358889282966076149339240010655431530970709184466970294485107806855371274765125178334025267028764418798032938489264725429152566591541892218417661584200489859537489705020450113682529946896113610631703767336275069332555288906485033449246622258618893120129526941959505826385066654390796733409591001044841821385883945753692002455271910375962553720637625497143115471030642669922911628374609965313216742288339093313323466233718885839369053562797983689881878561511294678282550175097692504003404578959240660413624300094622501397478020885380473352892610395927251258750871754108742355169799035682856992123716110427426768795400111860213771016307788711929611411544150264084268473876185780307419857091919945875763091170516849038936932279061241823061407627380777522610217657149803004138254365111372604160309566038149342776373172866142195946156565240523882155755537820375901957849281524378381497849566597184096438965238997787903646350262891795911016479314877349477657160249941248343422672389425143538563016062522331085712083498360593024318872026536248597048383896635319121797313357829314648897142054225956143755248594887300051461326262902332323902565490243314486616411714460939887287103421565593308703345091631614734495221625278768047543755282630376440316687659269385284590442457465317188489204425402095483067587211608813871502642483416210747480441430242605931106114155882778259544045636835629906895957929229159544961885263321641984548334880388355256003626090533572716898298379272570681186007990941952223173736971309331178450045876944419952875296915820081623806482428938575507051872186833338667981788132887780251177685392448566042085649340108571200189308070873986329769755551889529837404000892332320491501915900516797957705690693649475492699141404111804609952096027177474513857839647422619475311459043553433798527905705176460518470295901124163398038357024565505421449262938888780767666725860679704541412514407139813746983505433267492845492227195269195391189550115915638268103376477512111716786682458402510268990126282395320259532732363904464761284850735217655706715828374197298974036405886715065090461000708522937333626839006263310917597760440572640275846118741486760379112083129702662429558867673094372377408357033428315075324762409730552167497119772047230461369231763950715426975787661878292328260417331354395687048271017279218785282624564864256892268085718870120683350353960835857511748467386195969127455778607600342494301893609156646259125740870448131285223729765424124190701311947924798313130845379799505989410409440054870919058512731890065434511457025593224981370429909761808117208835529497232821302395681026274143783620131891484342338816190281414513608448262760371163361603320045639859378838257389045651307261878785126305951581142818836295285036669357500818681408653880468657192002277843271080020149021462885943535330359780232076485314990002476633527430816255757121430219077222645064720691204171331401511000601663297786027873177749895616118498741778811661612680813193082266903902702352266788841603398761845525712213584171941081849481738556035873971693251219207057194657354248566263072444126387299046357621593339003454298443858132297757973990281301253050489752949511053863460064531094768857118715037055070617319946414376353871794661090207361942416191843492061113835666034717823164332771470084836094879641811584604853752388452908349784928476049628308977426556771239943103596508443578107520657633414381249468235122633965067948140378335858488417726006891729345322905222454335234332453695949845189309451703431454731828557126728369485735854244372670514252936709419197152047792200306705800089867075630805899060089299497544475246430278477175880073664139915884252867856968561382355683284928646655888116626955535016361820008001409382791729213178041773821270635898995863505160432996605908516872386448598467901477050959479416771850482472382136832922596222825140247959422275517564844233770169499325205528192121097982218566791694508252030491269057010029959116939192681495945039985113647055487505449358656725620327330772612031219256465788601123623112078893014322649381124721963491533367588549589158106844148309181952793141618004475099838318174455320032742139085968635529174587419474679269191884081742307406705186258579529921818488729249495331236770144393983260621728735227422769698281979408196761290225640706517517088534072875366409834104115034056856983804942137768582681547945383653280302635960136936474534818022971717247976538844771231828559464703468020665195589632612357900345689144297646237997436659899375028227276271662770578565139434465239030969113913345535819602325123344334589034159324688642673409866709943335871131841065050955923956146182137683209414132393566067812008995325959212123695603385019887812306035755810866126916959027047028017850893119606020099499224676209499448807449321517075525199282933258987323838835217938230284194278874280198322141625409099587391124951397388502514495367033450383913255107415874378758154256887307638433737356326546008599357103405430894069964685910308486101808475813390976988281031710919800298406813821830491002929863528213087953236707694512186388700860205925364217370163256295740110960112284883755083814245904979547636336544338062743476331270892605911807632517773280711060326508994745669474901706510598089112914353876231345987714851998842990614205537590075963172280021306466713076975403722583350988100855695362520928225042774312022572239525816322988471124088446214585929945977586320354856454621197716149134918750203363981526067535782550678324978330318497865813693729250900121494271822219110730614989934471716906595175728644803973537384902833166897735520228385573827364943257903541322270293532431885195415782617690511781726611128286666566614984842426068715151727532868628366983085243072632797713283176157056631233903781593571103653751661866394303607830936494761352513055157060683738052503448837421571244226243307936529335069038635164012688601191758810983860391323244544178955715167675799549735675426303604481053639147659890686364042478424165639479178151212450047418368221175901445167561949625559377112839885752595386959532244826836263374593150983010548391189055657420671558074160826803012973538217542909489058108465586947055360075293894708379373336146323461527393484747967601720970242669345445910772414743624058498984107154585184350424423089006980382264147346770785295316951835214208807219817941199887095560081564218023069545060341440876454355821181681733169074066109492881447129259008790252286469363399001811475022739689906231317368530375728175253783997815543315913902258811697281228817015959573858405331644327009363559719177092861376907571878668582637181289624026853409555713754482185396353374655626695376472462852121621745355842427063391773259174409542666161199793398753814506697013588069408526022409963502382508603647279250039503040227651289350296559966949211159189445945443014490185250659445524233552528477743898664972648696767061158644330629449190628355693707418225791220315856058464759086000223043931924437559502643483607672929691389612537889302500005939019928721437308824875110323068706341396375201848096299657882106056905466759671499412380103838039811019341982677005881762852804983696430268489844202598087281462895061141919243361311267997933379834463045703234346055872464817362321908421366149772029761718582428434597189589176307156025003134398091719146635290402185907118869972693845653524510917591072577278103371590538079689576937029661217375516509978286461507063678879247164846998159571869894243831154749207931534806458372754849172650567925373201384736819652529153598508475224002610637575171901366879413025163104324384415732907261288167103601716177472073482474622028740062998976432900005454884092461675914862533781751536355850170898388812774454680395658874569142019890830498478041399481264443815030769176517504245774734220556467939477042817789402516775160924250456778824573533755372706505230833019477545257577011278037892475698082198701510148041801001023992150029620108946580793310026144255895227917847918030192648307167615726436804904762812663720560758632224194489638957339273774390067290885280058608328303331303454434597973249436163192440277858028332091136815340365369599224020412359986063791344806505234265710744955691296098537555101435850847243564105341086333546679041556233039089370850196081824019266525987046097763589498574794587729479538038856996267276146015153312135219497157299557350042407836518728594404347883973838484591819388010803721464644253075863415547397743733309312342161087414950178233116580295418327977348683752220425718571916323730768197118204616623958890723426111054753720015192178604968180928644606873986447589772228557753132729808759521893008191196265834133478429693078629340145358267825557149561421622116884650862882686035775709009552957354665091455628092188543187122855267963989623859970356948679622442124032999899639665649973035813169293647845827546026549149685187939484370946279736449460279771591608342191035762229989057646987095538291936441377409401951449286623980896842536220156986907187219130769774781761653692885956037332899503292036705431883031160749965062812381217394264008443981869147273644610387379194281173127194053773983340850039434463418026118127960264102785891323659647684876420935166400824821730036887241386217738125720831630342449483176846696879398400966646730450250283445705653862198991631481630435587177456119126554583802511880363388905439568226575396505659688153272621418769479389336792717602138802900207786241362318181418020241394568648721174010872198715066115826714091487730619420200022501824112528017587201910058887189834203746354364219608647731012873477440438367875598873310068145236138661600364770883894741876272325997730902628194635405435017912637588034604699016893250472340915194297118343365816201070769251106723362352357194879953119198570830895405526218848485150821674197723464877778177840249850432470214564264775260041167301744926880924587591837776219777669701296605335781666796613678230410689720996787716939267575074028638695402376553131761411580966701876482724321145853966402365014231311245754849207971215305291413090843498691947012373617868362388142612452797947315824044340252163073122784581566933976561247638367044727455626789203122708919295083544909737383116555186568923940973228461080606420965537596412014831705781521803382066363674818937082103738658115392532545100459832066592843373124787514362076360664334591385993231007407910761152935452441901738889457502159203253306101242379115619970472859617313365849811089114279883137962357126555249365668103706708106288738705961885877100458556142434792040366129680072440105136472345700302666124650131296023454894690398310218876290024980434802064475373426224351131682582580445464324413273867939454077855290618068693713579226065021583455113577853291167177203082090436876677625888336866152945250150790163150553072503932031927982814846087419596212169071976757843523951437248302346526768417189752234295271332356561419629052885333667891410089397517907186024948936934710963659775104826485369512031143582584280241275771238511212173164378213310158503263530732299134823436976520530021300974543816266621395263137577022926376511448153734968014613925703093993234783301449769666442517280893187898487478989777090756405601780132790316699263151941383939854388110510715279843456271987638945179318867575345492654823595810282322696392760813545512675907234706055997493665358429858537628256962948032351156297479299841272459140525461600619035010052862238458753299220677484378486870063748862801608740630534186704948061918090718736040268896168132887925830064119187838610316170452256248444024292839259091793527713416129640923540534328699967663742190157479706315172881412277338199287506148410974632345825042423275400964465611304795393523118848615352137665063001668139417387592215808485382755134349421204556926590868546673732734168392723204736369284507031043829854420380570601618378539013918700762516854530937589728494014713082730865073460333500959306306944216800445047629671731794862144079369459294003565904930131443274623666041280288826742492876690439521808787333628480340537386905027081837690085206258556592806200818737816408541476431455871170663457676232786572339510942715226570495373238222890453771123819438885362740134713033455678000969488064644280003900847522393727312008500130972772761235240841672319059950993069807103105476680954565219719513072233929512671366636676234386899322422393658230359432005263245173559263669304856692796639825082195702820286251504734872507046521832493546808532868117107832982484199188748963569538078220351061991887158859387292052157119515953345270845606702952953619195158096006790478194359829259457395312824739313198530726609402129657662735133284277911470595349799691374521249527614066452104915134492174570970095554130850770281682164598636561194094163940458860639731637022933529926652244330926758282993867233546329221854672430147653757398957248729405899404501235306745529350533789623922363717001787496963920959648960742890226525812045638429291439202883725573641746569820675634751009468205867348944732783508297959377686503696756276430105655899021354712865687974802013228663656384911713824068737738305846257825772997145475951454345570295305044135229030796467659275230477140354323490615537752969510441081595461271982996454522197597948085686151053760735074762777236279149144233398358495569494728201059440455043440935590132935667925163659777449601301140960697382684384488953202199628981165037320419530817529578838666448910058038097191366449119510825290783345318130526179500456143097500116021776479561773055718286807249049957428053088260456270914023461545151281053003512599000094610827714356522569816592128381704576421792421303033294876498902531805217908662370793918598606685590070498137169947654668693991934623753360563343744366041729161197510277024277245259048797677536264724643390612849413119947490124233186731598418070950229181814438659721788086215907838281211431207170448152493031854845362387332368587445670075010494233007313857883757075511022439183619866272465232517509970800502826933406816500119554447281068757393405876622342590011080467508349504079047233451508194212453485927642569341690654996916637907094842975793580013793116446773141135591100723906016280271713831606205122472867134381150000678128499052717994428520487992548379801131782842775248844372278398124230432044952734130359313910177945182419401437981620329080599257707848659052897146724826958818165054214064286963498704960462499425811303769033820659896116145387718994921712114120744749909490914927387250406068026692195661640428852583822428334992176961819747058539980168287212052595865228663687914636811425041361433834021220776320143402030364811494811960321781120792063980010573608003750286423286328970988473137792614098684190148064610826643973972466221924996742473765951983627486392224687059051951490066391183680866484043838356310308119452922019555913755194016955087188899511097024081794706210374276281224962596948782438426698472069061197294382642970393679676234719143881751184067462549953164537212694832918063834703971055497791154200873814583453272816609728985951022497155811660871286543775231265398035266484677693499815113163062277172874442832605011269101218998161437111996566720616203468827342911069467042996472025011701578887338839314747460236727110166348741666600034425302063180331518089307591376392762594135679057033518884922959352101770442055676964223790261260706832462449845298504624859054063247749163939379887827826944264087726047045316567037555058493504977708383016681778012512790957022890013956291823260852806433637430037018362112995677461726906086559301816354972898505119570697727356846991543602325817564004778010070985578662283195411370325106030932619702425980277014768928605642117285193083615936348755660774953963268483807847412029761885343794707736958103758151875935386839557748999581758344667461751129126034847662976933485895344354891395192067673331017677104582642168904718921052975854479849204429241252682650867697733219180599052724614680555272553740453576151016424783939679781829717652417230052063449474973888218840066941179044635467676327354059886970090191795211701548528287739523122183053095122496034397557513937433040883277697810783345670106104909457611948555395073335329806021205350253275620959875237486571681836587184881571771207364843079445028761064342439739055518682097512537299669460457363336858322670431292156371261556021172589646269030365407930269817299027919580330691968464083638268089263319334578431965668388167796443126846864405137482857089215570537083198599024990604038793610593220362851217279896434239866922894184980332259360859407259728229850605448725500458430456421427730905669259513157326251957755587494829193725274994625268273001796392226988613079287619728734439934279274319404188924412742511374811455306861295738078562175027008453865145039773380611462681722747860199154790044799989995631282095374179358782368235391385227153319500282895955610854369529839747430313658925355441912924815774679660582971205268347459657831460883014454398799085943349040074501179367665642518063978686102530819452889879394044865483515242497881918478155831524655473801541540717346970953260095131507932323055224867158098332233059896999964025811947454799363803087296508555639090217686868830956786165429990604592006906744713868315569105311580885956928199358939556600061303935071691019359036266419643729497740214209376616259959073411084425019993245186683065222968271564963564473647781739600138753040648257260720193147493164681804400761146909354725306122956421687603237822478295850141702642070823738052292205829329198826591496670657965216915711712073119277152584880443628033646262876811770422153850348284244032842091482839649118890303888603861049399229248657094255370876425524545449800663015643889723938349737381235367017069604421636456018444891247852642472609075622867571130069335640834129112871524285144181915269158265866695603605719201902298595727163182431282081130555447174817491349650195668003979081428035780847064525750641585984897314508447056129957273881621052354598203479687015955803684897526820440975275937504684065119546342476820092514254843461640773937798659980606961235991122201953275014953649385481931913906817932487429395789682959825623431554959758579353726326188638776238878889906089174920389654962545928216664944880017461899754929987488504210291688498588083734191560396076832438152843298104680976842133764029080320928021501032747588716660299609485135226139289097459022363350718591362588843252167392514115347632006700527178976029505984142916667466384648012676971397827772400400985622398150987883775759115850821981834306446824127467333967479713742180999209525084630059690524292998052378920839940587028908470587928082850824955312965100040997405609915584506005481729335084066140644742393160496809014185675664458688143308959085140872280353162482826633448141630977321170952052979587878892841809640507290141708864202111839855634193089281009712344592543788058487836762462138322916427107752431784463144899864760461547209342857252541257537807193865693896305665124617146673261931324317592297088683532633594821669306941067536064495831475099552325845468270668274666370453779506620038496426893330482427104003166371062493226551724318299687588891659081770007434989541573934228372569312332233857374374756030101729720598512272936872928238540946163900295989276367740145961541200408644604123772197175810264725731032536419458986394786583866333735039530130258616430755636563421874117751144897596018488389245520499527763162571429625435710998999970483297454077196278512145152716334496673345952850518765659179004689434999980662136830536089035612354074700644558715032011320960701326560244284784102255309532241926984610089219846604559332918054245057869174051814742936844886228978219393235179473101338124258015049535184513230983351297614472590367960020947272800561801280952939102871862257311008697783027270495336388494974220476100799590071769454454165948853961764844633706871608673019440116350747203554364575981436248773096832999634481133013179376535976728711523797822519988569540582511862307056754117111018383844968950433196872025737151254390826903026907133693037243523615003473388421814301068081215613982220428534923494760705940860189663833427330473585937173528760364975228806106926409265684388341999089830476884249393019180219321410585124918858009492436642366215183125633801369537569937732644833901107646372379415453457278183848918500929362190330038854884750086778564555894718684874689426094759722558136057978348182037926593547471106046003734842630857468333356941271051405326904260799750737456070295199021414852856031549809503745224755638571107531527573457845384119552315357875369305478275885432833153429610966657918352068960384342713905169982656565863127176135537254786808262562807063098665085112368218502564872497293864710118789114546938743104653907014724406531768226220671510778133172758765513904230382425750916773658921606569178794488645435463845706291194697992490404317382447381269900647742210334996367205858382255282687697128004303095032271298436483350299479523134135941803976897591602708547214374172116480649919614150105941800062442919103407253231947146991398827509721380911789859624565748065899688389208780959500526407178368305438209550629484073772559769896113640243249704767350203777735322448643495270723735206149017610624666747319480769084170271813306287217850863866611498698315399152494480692096911603413088696154631392706268540200347479426199246481024148951247816128861097422095059315624937590750979193469776340864535614986212773679175290082475458413288354653917816670991610570720782221071675161078631940411213127681198089069570712510571424252571251305573303319210664581993255797660583030950316347522289440722970431692801853556018083267011070336937760285043381120745111878838863182718278638099835679881437091652440639556515553347926432850966610443603084391589027444932268606209959603312536779143558370088508709212692638011362723791937691177600266167699394469137049562929491830661555414831400375495106583264145571718536514442609060627671020533552070466160269089585491014705271899315852812779738876915419332455817769670202668032754276668568758348391019578441023754640357210954044230814614969812963472344824236362025517602116241121983826218428151344000411464973451477376240405465107967134755384956958601469648898493916336154443375398390732053944499583737874438061096122958417806039511369153079282712304441394828845566072643993188771977934995104916126600132113752446651180578785826687042579254090566771803332910583309809111497813100974783936027236530532623189820904610466295852998876207554168167006834849694486515884683853381358627373731361096752810618451643277728912250857066278535618866126145409981106293440356918068245194298230411455805483382954226513467673272943839800286528758097280939210378455142759543125758714428575102074214613214790881532181513620142556380215017873520113351759217815523543117883925372941450096434007025265185942384889815217871346837043815082581424799503162892192606584805726870117960500146940751580313425153401964743083948768757441462211011104889269658610151185063105010554750616779710570027775814649728754072049785182175497939613976532081128544835600882670063832589933291551938978869514037490645899169720035694607741356976638442942928368902862334984540936829766103908464267759117080004736680781477432940720773463878029800315921584113965016674002567390225349327211484308345631036390467092617789917649707389874223868028847629542775783713032819453681786996322599888783906118359443172365133440961579258399738461236008062305605542143363966040970769776737919803117343824391324035017471111744395384516584267824539115360878814453218734840657235730277769025503826814665493853700167159945693794792875036933190438522624024679927390671720893621347317696872367283848873163689590743493696231495089138239123182857486345232982218579362563092832973314679813646515056021379605628029737641538152594235755282872746065327616246754530452559497319305944331287518047823457904626494057548043408685197762775978190717992711696195949079675690374795427599041706397654607645472665238876950366936041352354267656243633544505114700787953850749807011782599027726026336575330122830032710361469288352065595178584691760551552356465364689500117479688280319022391586732325720874317818334829375441198527041979112072342800649591500158601159508535343068733233758929750049567226647128031472678428953216778954260583494185147682794687949791814691474627897576708799130828207828557233546919723368600375201716103674433288342451344267409062432405678503000252099394936445279729853401328455227677053448367751597930734274063860124448761099733397907898897222985271519220282136129030794926378697606772526422349625788092877374632792084806481072754593158526603000934993033355242171540752899581782086166784229127191603045518752171389818694027633759385188142050989652140276948385746530821865965051899894715705510802456363204142885057376313956484891547495818747009965185125003087458312829677181544629179336642283804374421129588247867141439013166644638093948323702099920389616588801304616569209040359928603161406343680992379497104873526257999334914744465011957003120751438359684360471195119610710402027405933920964785981609863308830940777537707488710024726714358869983179376955117794047719933439605942249064107976497423472581630937816529587002296509972142645705451617400142467938201322630173629279916320763881087252072743269741535581158174463776047113722951062467882555482970531036476366607132093006296864617812114433370641009087808592087495181430517495127413640670076681047379830528476879043564601846386982702458523142355290912320437982406685076484473918406213943706872590092858447959170047599331216537470176941942187423609314883104535360175625529876858775284912264216175573308484081940528674807133110638957324129890790175156064556484530240103567383256971631638383341957769496268737137430029832962840514474481264416600234398611249828949335907981462825853066479543668074766320753421057419461696080643175977884734175504356732271894186349555726802020622171157841728371315924982695942526782330054878617983477936441992528486032487387281551664015237960290342589976083830035983139105853511865561443155036503773872731130538659968973118855198598601316077920783955130867406755492619682991432114608845905393504032552421780841132453797059900360773582771280513122352489648738160345115117693440649793069500355828749340312016646721021423031270665214006850988124149941656526499420372048190603517353945886098347302790399295191964140076211479869905256274759230680247096684978020179407918384295533043634200061651823119604089558398814734752486836172772521817305810082552885345459998089958689905406682578400386908922682667373452067960898749209922731864108717068438325788631526072341064198900215818500814238253460371803932780044096347565321704517526376553436888444439867057685944920667106469239955476266869165908262105529687054397563711404319308804061423517691279422160129836207586502242937048066979231736174084334072449132337918512493060375806398578952032715460274452874189390592716459668861789416937195589337308949730810227613327556844887797266532912922794443432430003092844145012315128793628793733870616740375482428967172012078372987621517857246532883136176686730011491290359678460083619800843055528406085080653299237419456011295627717457536380308081925902711031921549448017322210806732459897462008673528386925498275868127445871632852202549278631972318157541860993484893053689928619796799492158106100819450940827473038622164867294984377637985374854162227347685899381618385570552061453810401324593959094123944698563408131081827008060679005916462260395020001267685570701431090317233376602695368177082323855858638863906526382389943275735357682778576433239266120062719764671977695183070122030008362793103121164009782874268345355838629978865906135019589315856746061658474805669066851717548513326206603961659536454440651758791344713554085338999897580741104072852095868291068029784651410522988686095566496696032481467029884531615795359661171763687488920274480535587898394913991625512818736477147503747723299508968103866809017547820443115574683062845548942301285818423165019198542291686697589968246051866685983008331844931187465996127085809546133040085584502978587673680670715914038417483265350111803109473204681078819501929280874171628558635651700005752970675696549538166849353469918044145061383607983833518935739642483485239579365793049610227446731875780146283516131421885954017630855445160094408130945025257827586873528175591616422457387811076152551486375084955570493141289351826805233738391283833399240222035854737198854674306416820114222445257229017853775770313065972520375489029764342689558293669176080144564294205043128566858109139761678755092719882470240211905820971028278735239981585894149708969200092730518796353626923086275003400251179913425137081102450847278830378284587541689319122370655164178992442976263557649475653855036641472013613769507951260741345030126434536103414900791354039521307199478292228460937710989955125599165625645839256582495802121664977671521808225694733736412360458346785876277039690383459003660062543744174323123122388517510714448673736594723287089566865113029166249674857198667781305209664013622640741555994857428591994601200367032344681569314732617499696417951752001365369324963677551504206005377908029977299431584929953485154579132840270601649944909131890872424914993808641454381178767580464283254801112800119319894480505086398698295457442468635459940470729085189799389191563703615505104514803708474831315318542769867060354771633691920291063647948675617979609301095814922528975106506124326754045823894400640438793810331931200435893578142163894821800412896259861560137532987199864714581853789608876280411624257292903126804062093484852397053540958400601226351580134822834627577813236566536975655753382253981701068832855232108235212483731405562934569154495631800410935928320829573583388146659452347792077816415056082677256149629852616196328486475704810100447894171641623041119524844971341627874613993228928761440306000090936851567376910511873764215542050429845060161835367997658797378099599402985928981617214259581366959672804421972616400449773944205021363478568262678022679659659077644092308870295542615002891253396928091934828408780308450671769185146651218410207739157347810236439355417477987321064816006860790797499128875325161812516645522135034325413812825175994284636279478448888836342849171025287946319870234165018645384228430773081815606044182197006211764026761051566378818442848958542305542747918910012049042335224627393560745225681907817843858337766152995566896121594590648824562068373745862771954851137285288469372704730978671959745047839296761034360765167751642994006160309161836833901936166357149415661942228373274645159100330882879428548937242902425808697900706504399668825760212517645191068577619569268583424883790388868188505511263915331315218987112687383399515001351713106051197464436024688158386180386458054922875771230685620409531709980712743755747251860042046232369573662473453795532348791760439179024340554737629469289405995740893376678958334767374995583905628718444321198492410711298705800463741486629228552111696734095739693111304248158338461730082097766042867181383210120686378154843826769173911204152536549629689859684573722890860338209772262755073199709687564732385601847472364425489367365037213203549701554308495610533275141371070020413238059728083963985547033312008291643953452245714028195102683800475677475655230915573687813464415221003056900080835326507387123116512150049342145471671420982360213934933338406401359343779975542052231369083681910147768274929127161974723515658152396408977121689640727441575162367739197465555012107707146637258675132116036357243357242649012195257837364292858127367199782854060005221129990386922661012467444985006311798747604390632197825286366415845774789125630190524401584950775927110292293113607841649540468540740053658839605062594519287288393257318017347174602611080870040340534106989524412638623784098860535033541311008352259780514164911247296847449733859463162441742890120311104529311830899665691343295033129551071743252550167682137472146438095273154469553669751088865968329635788025689874045131717724099820726020702218469632345036839433091279406234084829139933669218808063562818507468614998056125461508930531807075357254930193297453186092167995202032149886535856478046237682689704874614895765895302428451940857546342970303858665616886248521794389202821520308058377654393307995309065169182101461167836377181030495072872408374206734194988089179947284283450628272664001722565268278852182917162108429928640576381615874366553883556131041865286811529177491721142196846750953434079556139357186827740138331806583995225306934667504117778359951148136959636382707762745674528916793181645674996849213572571587698213401965724132377502927037470499439847562927686041151118992910519542173593997210693591784250222765646124164424699605746958786442737630028602033957722427599265525606994429586147955066778528888234308420659017483686502072772960109765182949408500463893186964355767751236132872844954887412238326330940272468276950908966713068609183771243761928349374230284937995421109337506215841139501169394408073609066015754258637182283795479603816753223533210025743827475265010260873943981258412522953867812260847087809503729080298746522698146983264637982303637499417583714775765067118230532199026137878344509032284538069984025005998943472023482850347333697633629411865205148637918093839708786694846902157725101973461853386690254768949896449717476650878980633998065998426982148925756776116969095743752466034648990189052626235871578621675327750087926139717313812848162187900652862429965754713067193491958431010469218414557147057049478585595663205976095390178743464207748152891216124105114711208925597840655565136551975434943108805352954830324942378747407403017556850011746200775134767028969482277023185525590376381650181609673019222573756607683287952722035966593432019889984277255545502214993272602871498736906669071240390029141222065270733374147421355657081623426299275104881658064617172074953783245524057258897287400206449588608801203725833846728470107787627669314914298703126939406673292714615222754320471406606322581024813109088581704827028345673016187901226613392133048217343696572141527944131086372364727932757379491387243466756251481264451213105465001476364082028925207373340557737245769088142418872406443252090912622855774761639311723020437093764035081267419486408307202321019508721121661592049858079064000672769864600338241627577507495800719399808381900598285470782717313205577780706620286301267910202890807842266879733272724953770667093685105058171061301723106643121020828532594886140836842606679460846096072571865533827753537535880502553998761348686584547609726815573690595191491620003813051853477719269766804018136353767757910085698082889973304305121888521434449755348339663215294085735016863185468687350049692952224169585011135786908965259366965302964335914642438621148378863032002430488540086541499118892546579943468445426757453316624443459627460286820989620890431757149394721074959532284956953927509841826286915933134461186854274493657241072954035871671868145820555025985821830638029400923455986327124179707078458051626642379625459221462067560045931348403221475243550553586718376748885362983706573688812937405215619767414370110173883668965758474866805422729459057719349548940288202421179080400793972265430895715432400248369517772809378888011070056619079231325105260486839476539075447898236621547671881785211897625536007125273831814026773649870800692345971936714638037465376687643831878325830458858740355372505830777870115471174026532779659208149431582820953894329338196330117337766933964239534890549851603941024087923225891668034923791482187655716136642580247359973827367506720882601001461712904102764815532753697738095106725585748381893530555494581721879552175376716461018378179106505931155718358243176025586589234762711590134264334752017432541006121213933930171275417775511307403076754877279122920383229673733218575248395146274437957642266479841922722074469059509186798642257506610427314352458045586409852342490480863968526843645438116832381456149619637926867640268451107184312406600377351841650274952492357939650546461550218143995656237482917956640460496568290693251892964156082619780558174124383347263947513084406901790879716026279576890440872493756924538437112306994476514299417883873688691633934626486964480190423364669913864942895924989342557110053766336432431513981978796166612078958480106955757891796973949561263886384714319420493625948873664626353887228215734358519864101277450289493221056053558326213043024353943597743101447758814344335544605179781036408249362306921717091070643255258818763830243034609058875003154362563677740394371112122905035559571766711757077068076945021502047684432837262607293054964903749075931939715299740857280505176580879814185107517359391517330293815907424175737419585608658583008832496991042532677444708290598605402468510383347816717952523957150051375724744719155175558360197555733462025188164624644255314828594398956673442225967192319925405356292530835875788197614310097665917703386655291247911299145221798919701764201969167997317239698166113846144413854255908335297550023353480655510928234309209265300856925957970619431815046276672836174284667345219033160826077592390290155962360065111689807602556492590668714680051231115915191245437370852705195997111731717804617597139219388313910461049268672702694056058864588315482957719900510627992868557687414972107934582674587685540294528321292314848095185646674825704970162229461890633957581335736279235173299228453411817243091537845825912575565779512736390784555969668707757418834123358700725922715092473924343989496461240232150702875043801088367810237258651588277211432112834660784662211576341949024398012066766610927075414749158320296458660419075908120490299875380902999355403138459226408867928588097609864368057859330582851806024403740372518801722531988695744837981053430914744519779423370967854631390646466729942336511136518275368771981360546933165704309183702929008202095805389090609036376034706519656515510639129892861514045103686737118543310696639596520111884506780874711469757958620736478924402942454391488035251694005789562107346547646483262493579780871424764266616533557629009013575348484858402881459506008749312485496622210907393281763807498348761714122907187319801808101337698448271876038643818682646155588178118047173967658449005509317487297226947304289375423177060509981105089457715373305814284173192938077015561780125672948853759153062597141581797472102566892261137542532168943669235056494943322916927050370851310143399475868221578359839397447388832947621237689438971363007295793668778296939146580014588706438530682716474709485558647591033730001167630143565953004787700241786358633939345572103049566033581704640986550004235557963597200346954606812900695824057969995010642414508146284354913572527866249701429284147992304477658327009523050671970676636273555701086370167789035753991994330456076298818139022385831196367562406722291109077183650276267783625085352006125761095400318875886353901099883852921822154340489672231640475202000639164672006875127683835659009347834404188554671679481255203640604634773684259059493751096410713316258966666232652537071670408771642927940541954975697270657986972937059687069398690029251340466736494894575494454765329510005560471099864750879214095613256998880387653763855675459706394504396454337701512800590544236223299171264567104003820999397054794201021530001770785558663868973575666031225773365735592201360451619605467120018858988117898771672968738907412490388582693915705322933548873244385623081437939916183373721111289907186423303897515371434992648206986010364709933005328085219204340911686172282521822946154035693624408100253951658080106876908650919245847040428311176599365434987586595188681672112795003093155500370968714066662576356050812167596924056731737565391971824172740934112113847490325592248378233308910944311878224510511592384313569357094405649852190720024951577717496010228132662100948443160252882668727444111999548763760947683426633485768219331380544756764126049936478070241559180789522641270152060116278554307675056436241659023809799873405693803185206692403552228222837507390820828166886811698793951823837667621310414356845099835537897405523399834302070869258583723355404926111036913408527934085885477053634269051730639139193356078740574496846513263504186646310599977902223888113847112607744687866600685706503094481463976048283836707045211498099154041123098809414426754819768401187129352716861554796022949030056502602969742132118546992069132270745051050147471845016961656866538653417979163850761918686916532826639720132961039824505280048413732855127327039457495158581338601384869980691440568935385367440838928318894957098023415531832857960086488360842469081412291272660916726294866619952742211203505644387656056029600784852255768312204512823033311124586369551255300157632656953013063170436511150222050801318719585842023900026847852267687066177319003231359724356032697874461233575315337647470336082431839315376040007437201203444997752514587593696646966204034160014827557981706279269208506101113239280333345697139555564428203900596376177053587835657902506473472852961260870918731342986422948512552534172165536157266460454722504257391891364242425727578576733067027715960846412045504640921679241688509783849021149779776101523105289940060615902631064513561109790693416407596929880009417048808900821137686739859368633927163419501689396170523184521981481853431583526995449396324581790715863997885743291775016330398405673530824398520577847704657801831053131056001747783782923457274014637504994516647770775234139618504834119079362436158147722783650540206627795695298465751109422004873273045875235644083254210901625573883935338454701806306691742201076414287761752582530561155736237412710074787092779251000839554120934566392869820084806450269330419040206861188923580454193337065717253939300623168050173923612680983831353403617037867648937938376208411621736862120003315878656285322622133932170092155988002534036176938003811774614928511308339078699007815967381296006974149666695825510833504365452625979553341498225761256712944723525742149680710410048740238994275042917752912598348545499823829131627265094298927916794475113709709069803507257814068041989809735423367796554828071094530943134920603658501103918778784832718926561382879070981658765248207836150715620144055096884249210533350023437570476858874667009630506783317647168924357235003030739666064291253576769279024325611794246853409029680922653272951414909344224366129401960462858789236801089167086164621872247802712403678459095084470833715357013497280026139214916061528344707761722228740161046496504911603393254997288164539908604580131861162525386264584223525107737812363073640998787070830296500046361773405238793563192783902365146189534168862244974232447385143288399360430176482707822880769018299941239032429279231078305542982721647231518476502288576586660682808920023262002411947512572727617797893162825757973217959836494575162010384033275336647833839887629163644503332421409871470272136839202496031353164817254533768275317441645595426311151022572280591949122413050995906323015356165709375248973425595834475300629680218951991716684371622670340590460380268797144639558250501783051922830344414551522319302648829776914657050896834618908039386794538823207690930978189580264799605921610802443529080815714627232785582337157687102043373042823433943081216632465931615060039513690216581954157230091202153963210578815695399714103720147572863300068481068247887501442133283544632093108936869357967450566744218252121133109461283113479064867247112074954697318573864791130164558896351325305387684789892134356815737383870316324659083945579079782688102054164011448095973365140305667479372193572708046199888894129777211699313026226517528216812440354284937830779582524076501217577541550145416441439761413098409976927895927239704898617343721098770478451816430539653543881026457204575920011637988890320600147262537057424711727725423710681130540171610040452253232071771501638255934779263095831154329198822512269639843904415528193723337473544342131086459283139458786826065936733779757549113983873950525486466687958956144665029578726458773912740187239194524504512320561865085924422499043400271378695400996435564274757575232651378837084036482576369249508701514350800296362149509999901176440605164938926918383088604548372337895206913044912724838109205979240350619394813058365065278477775751184109870908532862928475225467342380476234672529830501693807291241284675151332733449475751718820331283327797431380809201725142593313405561447947724032842500352815169867954926878645678171109208243572941205313255045213368441016406604697199393529619800003832922177892433692843590163121114354395669720904809327327058550662859550353660650679042474528401555660547602255238460233450782724537903928713223510180071095072155500955796218316635936899834068584361350499862770607458462986624431136735703306409069813944912304491418521632094767938862124241777331633415966060699733355759577985327097234585213046393866175896760085375522008357014744186521766583276244060654093586304918746660998668422816345998535457620344244024126389329696025921124052300368352684996071163243424942154012157056330945790354267613659067401677404567043904204196290821510322540119659466963074971154679736938072047228575767042580180796576140664058772155902246864410780680646973296746919896931756446664612541261902260851264736911261344232186791972760653900031939818963635764739126493048760542429461522915381905496852206066744764955476736147222524731796942549516925270990357450081010447582444979435461634626063584358521811752178703017432184397602684060769574363965632229078180173751610682028706741549078156201033356883357295628520013421163093149143961572216254184519687904632564219728130376951859290257533281733258011105201410458984134075694115333507526555704543439478309274336312221716837491587793500413068025648330966108814584065391713189800282393139533446131954810384546033169435753369476540110258260914418249160536051451736913315736216505119164131436545884628515048448812286342479750331703733541502158652284197305513902640285559900405472733266224112422184466966285785080080576022308158503663264861916781504429592721652748812586548132120299906947050549944100011818848602516418848556184589316859975007463354489535572239434448913648401201427241642963125793247276899308787300310509771089382614896991028087326623242512918139350542322792396071375647985648596340762933990144128117914314080797400323180285288276877321239675115228280333001881274146610592115435944687332440271332980435245529525146385587143478701234256272860152785399739573517015670036814331143851417961101181793775427612963235285181727579453757262558360267206770133003649065644475537596493847399729542272196709892255109044586581011259947251143956946823730418384664300090096344412600022259263305693060003051227068494967751643549589379761249244169827779335805620216231400535592823383272533651749000405053048462154752091177658891724738826003163763933884069771340862430636933142450235328830049943663973181089738936207717827956787000996313170332703189973064134253979890966411869300525615286789369476701599545008608523377137847084333928793957672742913561296730577299433251437083559474373292915304870097386045817898666993040022127618271099643044125819740928915114470062521692977953972788265599053667949278712720948992772729990576434386440549625663546975451518198026658452080966879878969539700183511980134896476033958261784996459936354387547355536599200355417781418612636481688977435737595370764727931932573749072385460972605140863229944894450744889249969545423987562131099950091948731493182218012322476152272586958360843063228622034272229430429258476573648494164690733594407553462522924346056076104607442445054136223955693881738891101021981021043500484785788955249650085304704495480309551298527617209511514883341881968181288092438504484347232113087664418380619496092473354283370080427229611761745880762076602336112645488219302364581024915915178133741984845509875743043852781991729569108635874741497717825567376399907384375086008020535395391950709631914800510659100455435971722887454167244879795452887753991310674388355831983154499093288545780073661757056130125115678283315432422153944572404729656870775570277442361895296131522776461238184587176200413364663396722291262161924692705742570420447156243014070783594763749561477289057880045680433455893509454546692867494396066585897378351589856775921462642263438255434224696259433703250017821567469498650077178173888690968272499913575921115918438512649605359462971547796106644000827822237852920118267695125053801446054435981258830918582038111685236443503443758084018011674257587700662835039660942945282227949099268443485619625008204014916243180970089680630415423946002633148053172990060910143937896938299633083390466272841479269709862250380620697973685065155402745557922365650900244589883268956862687178305206283958410636969648244719429384167208726040194565846829518618382620984127046830801051343397858253253627165676383875496664525496802368873533509068008041945600252660287000744980132615981434641039408839620202043916828560214290047603511747949690669989762076023409742477801305326632942854284532640690125967089544964569359127768075502002599686926376775584074388896306119143577250287458671204477944590842845693225950314462787498341106321032854526446059234322300213217197618839644631630270972491896346313039638789697254323339844235079297569716434293391431274177211356885293419037433855290443041104134562607182004959281977472117887679425696857153568876092932454094213223521180672981823508461456745345816680183368456448917473296872772224948714185765012174841011900494203067148139915825992017267904772367629835751044392045784633051792635718565451171802611988127978392374426921903850956874418742315883512878241419520537008077816330671023304645520395996288657474892847168503641759522714947529777434078721844947007548560340305393616103185152217541175752542234688299119615626425953064358747629577664894620153920335234106579757261070485366156628923496860787771120396489042783396857064478606038741590410674732053008402622806241433863499191572641037522042845450232186019819045727176967721118894111224457959652541642433687848028899083505224088299759911678595352912178177994244316332725757844265801857878089795781139868456293559504379600614815632395932741596460943170476813824831817118910288156993498575656793321642616597531548501245707397629809916921186895986350007747146279081899120993175393043296114980445547195354842877012511275711077899484697267996404502358637941853867796926747483286686255796928620674434221570935871971494736964063003161521422713800508644284003702230988332146112991161542305504495103593660303515399920057672472411440391877470000212928225492376130798919857227833376945345138979603152847638993878145634823621987134144798924593782231257556318255834955841986775666548920742167697432176547958514025375264471410039098307463090097595405879279941399603130373163766657899158109612833480154954484165588112649805888087442152272197649593650883991659305302588791970391485812030067112341110118564305448566204045154459049667429332430054477316426574803221336681447156145441509412920261675808961573967276837264974567127558940778059449811001737340298690193872185641440884723031978679107762595752647803223710375391811747815299223851999484691176279762240564622473273354044854200236449409165541086490110789948151667142670324374813359239048362349668199360390402505638020557756934483592486742212104711412108085284254146307049260850378712999930221370041422990863796351354272096464712312815706605379732209462313145363004209802607647957792299406847043895364781127094931555858050535731414130251932765593867182408276098669596820885677584341987360423956375580803446963306861545974316149743572441615986536503467245105447851252090096192445066574018497423102243885973792091665523481119391380534550918909561193406371431776605304001561129574259262559675687447383269454122611249069306260156552272901045217504812458395152361289294449053492471405191641803778214181429128088399239467547748845274452775179934089417960934598864278888680540869386322746403835789874029328170615800295784240981556736552825612825214719926892217573562824694759482683567677106948378010665052591321548370160675340450872196245174129698185261844568872074997294794697017509377995207728092313644177090157976029207848646321406993354652398708868538687450932538139702549770615024172240747269127311307525672465171869836794328059011547168563261626625639075061970844008557259340726836989597931645307831174564195832894352026005480364630771882237919593219767898222827307937485180567193231156395806409971688361258016209954985281565023208151882997380621357531767707113648994962714461401810532852736066004209838270996286394485025818057227713872623468715062160573745697153104660496278233053332179224311811234568653537698419795220517562425460311766823078822179039735593219820526884808537002441866381313326010888430392104112992295794943248448078496045132122586963612998765768900361060161833582514852019654599568872816863826540655430493699275313985708962114859489079504282887542381299872966500988265783084935012577524831298208834641601290172470636647493023610145397039494649015007703538969531911290939398323261869841249272020434300950382509809260212212499947597782159056625252308851157473737395026148203655145953063253257724918874659364416230140533635805998646418816838510300556975245274536398453201318936251537735549621165882003073942390388150417455387829146658715629466267823609911624177438026250249925876037899683938525648099343422135852879261007764732010790690195295879372123259881753850225460899292233030082652524737646227751397287304647931847492433297492856703309379087992956287216160116028173221522692281581482477230016075813373626532884594223287880513084479796667089703931275655941038835225874405138551499131374695601070632688244792179251941551346202236724819056800139269609892946984564519166643679235397590127814931781107376575162874049546601104758065093700225371565699378401255949474381764917301986362716173073739414710104377273743758988707977453237766354996795842397891529468547876093578179390740064374311257878405346406052031112028970559520115783681590963702626690589077018783638197981202776322683846793602855166527911991542520170960464007195046831218060071958463132975404383552409780362412401352104589018181381991597595702891766784274018451263027547147304396848559917843823898706961570954114776055679651218580159748237790331241217408919193171441080381818015708914682687507296943378710092023367357584900059382798556995315203199526339812384871485005004200589746815397691489210247445345125427908030533918913031812510844821338512028604900602658784513643703119013706301232566752507994613033891713987836376004204368705776075646787657882516638669310384017636626726190944612504575197872484054285700380431140923119255152820783767281880032283632592638958739958856998044164179698003974995274936829957815883801707026935599793522464681995955489505325160817560677672519826123779912173679921704636451002264978300200857656581256294506824822695363068135173081775804669651734080360441382719451679607510154075577864912541974408636682446462081466808245206223088495879496755654656206497019464951609673507109477642469964559731530649251997086525059629657758386063768849090409534713725710787836646121269187069661729529111837520990631928496059533141203342339622094041748745208988991242701526753598718146190838122707242923283267272444211160918090574552866741955173134986051954107025163047771550798330834184889852438968674425469383888098006518923311303634755181240436796419906583769638933569820940582024537314215810820097170474658260633855670013140052506714359308812197544226577440436341682012093537919888781039793920370025366293062614711816621126800629502725389013671517713542324933886180190728693379074012701110779135458486402588161909757217044113708423417349207123247545442321902610463663320856520284493072605304413491516924431732424828569238121781640733306093359812729774323928720901532967638518728356371532429792202101388936557227005630485337744023019001969116091511420367865128085382651057434259055184122893668422561883650097879062272073704158557214617177568497430001585219578914094899009256185749157906804651196033089008956423542153500751192046868339609206573083564226745168315359185351731786009973977509364313405407958407522078705198460651615201605630210815389990668451539792089316541966856837073597290387969729805009408166890392313313392667478021865962752462291712295238997038145311976860489129288665711023602829545498621109091543585809834723765793706547397438909550177425775568936144655320752238936599329431384863770514357090044298891415648491478138171013486861292992014837581347350397085315781724151499441626124670280413856843192116982959957479388415191662482288452765330834992917221883803493438829064506694974244531199536894916117947389068209788517202853248860193677392096534386338512227925962011900961916660301828694553161960379049152970849989739753235285582196310755995447748286701717503296556670445891945949605586615133677999291546882372626613597763094076317174194990616488370095302035497946599899128599210857284132034994746533506643604336008460754234959914544413817236090597621432490191789808743984480974185851251955855693136977896405422497511381802337359418424539801831281760945271912257135432217951152376764930941588393325970540240728046696717725425814118657890392658507003509818510870338709605879713150220124433379601853332118599771132025412957748019117685688710698748683224252165313887888387113615639063251077747939160409422421178577319717836548477016792335827509171403639896173160146316897758009447057627127342373865264376011405165945392888552578611995776676917510642735259341297499993577273024576373975791199336710927223346422278181664105879756766920318576999217057435037806281050183564169363288205707790997593763922882864005519788905030259783561095728001523759154783194702834349571345611476964401548995253933507238375893762967904610857253056082865637972906533313251332055860752914400536267436453533046848471209295659931786199657800932183264197459320680716193817341449590842320452905174814971239576601034717504970609398592012930271964002145664567412988024063376077190374983772846813834565156370352476541461260528059422717674641385205545657061949990586699569057343911393552996417826091275325613944796354987736023042453173581076039043121894341483801571910518268636299308782691186730360764554436901848429776687345464813805948465002423180420609546317686521721809077652106935439227882695461575967036086607089847088872765727300082827301403151909711569546975160004598543755208321467386112021102413886748797694114395993215542552672568742922076982488880646932359789742432691172530221986437395265458512789575835337044941744216267193449746421056592234498590388351639369861180035541989184999084074021441689869524235751550701769664923211810024133144751472955186794056042488831416197013527003317746573550879878976663044243320476647585721113565227081385577550849023855738775313276460880778072118227317017353033117106513434207608535626515776763654687393837405384078156944186822728322560224752846154880641216083366180168231745656506846745689144593413649627239661775562394509285418327293064265253161222988480472392115875517193850763051384385256641393522995789067142868562860019154720705286909571880055561117019400183878498531227050676939815904913336224780151709266135981113662203722771316941392123225727297332604569227242915113651284375172697968774240764177412340138881395303615603957076896373698969410452324442910631811705159920023655257934924891801539371665070336534404556795831649179719800809681277670802162133241688701142564149089963360739073006116043940165771390866127371364790586026667244024019669056051526722529229973308909378438909051353290119230483805464213674008138309255502454007235350861988341531083118315700560604939705604016093151890874623015246403080046859250288451539086189408708838582111738329352067658726777745321841900284338862450887008953009325250441951161547501408848630944280677971297419626170552888227091573703343057474920927057944262241628133097247681434051038089803380651167922082020212844396891173828049444382544434057734336877385477047727610838115246680633968405181226851085673552945758491696889949223196040672775772068629933252818776728700215837759117783261194347300894832200408977161351056251195331649405481133780057232567448430706801639938550491727278192961802831620821072574136420545413978185930983857270302968641966902406630375518432740622146678221982465306147056967876435981073934145678431066138395259898893577423603859858092303515726676089302254928036674855558657301386062784217432224871051026025835405213750286876691026462369438368753146279779407667784118461562278703174072229268392460093446575596731249691515589683091040537244651153728432972289660749355702490781270269720257581035266316945454474023323054014416961667033782995729130188064819113947286695722562166545278191464349989884589851993837243320998069957603825654324877722773225852266618373307408683415579919066658310153524592027865549127546148515389989448223758518150682123670234810727164211100221947626313276206449498419108587110538726205127865149261233145703704574778910972775178130089832602246681187118613646885552523464614570496235386600902992251172494501883551335015988673365575351095373918671594403757970660810012655078792746317880618986318426493523563516339628087210440434846733198561685329171786373001732142860033183308826332462095779882820129268438758209007388150920376596702155539878408125097671797550480007261163467857416086554597452350266934767750200842997262151910932704520488228338292753542684523304727516770932524734733545820855232341338445649568850975659496780186823253115896556943199264071255531571280760279063283113749235569583221966741495120212115279281756781417826527307966874010872217469666493681458224812312643189689762127981167336826406458530854295873944473463063489445284988200299569792321727537796643518125764703646443727436337596711018735516812728392416023314927234820406222470530157208176203514820055177161399948964478184095539846680579669222244189431012451533483211681784586782976254522087784027785328605743941982559035169648356260940850957032601996002776278954254589584019424430634795693436794112228963970696237289983845459476283843393168387398853498067585150017931102797624985827945657770959698779425004639071422582020258142297261594058308073527652440440783644700888496219932962035779972685982469517674999163330863614502154053926327870695953619162612788789206399324476371568593712561536652600833939760391403166073635490470381445880626505594474615329500898352049247223189759034351344597602073856541719667132263195350998549532641824597841278915052938887767677007696864217154787770189408433902448417764685858780697325150669270409497378745395661552026632795681219849786247452618716641097809256576985078232426596655809297905602669445369293918913397180370571814477526355461130479108246033965493282234155502650047394313805296352035093102709152775490064189893308046621167477419359990588386857254343722771260187886886073947749707416483435911674759097044487832642146012835062071533206174163809025696074797814937569266547507216127954798285436265878651707543579511084206267803661321287592161323168975502561694954368900860096808278160628673683726582239529604781281083230240611620546916308123590409663621887279975876077954230452099040024714135865674098049113424929020906976397832166147733736426924115816165199511145341636353664462405693845092827833663282827409555098998164231648649999219099088148630073291649715845689250591370102421470197551935778749152392380931712331740282247856589309919183570074022691047972171824069531037867366777580412064841678847805337372479818952539620915774061236721828895689465806660352797945144528292499793663585650440426277387807851814577989541805275629079907673232807391229864430522531019260549546837003182317188883522820317536737503023252083908506957746433188699884396641584905190119313330129068834907967521086302383888261995624706933629875597390903756952595131474291873445583135857580314615896472718362248364893442788742441015861175683437925462954117597556476868034679940279809300517567972172511875431628132321576956300192952523129915552020421418655748852628038991612312733775964967719013645078855728389915747232035482469028271505833720077784899346067059314034216852461545986955478480628879015006205416949417025222194277068907304495146598879999956941773687484518029538606519344875464765959444635817692956887559580299193497337567546813204037099414288737289119723106203396932227052974600405381813990218525542149374447577760642930949554795381557609593996033211832693620959232634694369658376814813230410923475323362595699787252329964201704716792573887527015790137008955056096740141197058361290408737065153633754771366454726896509872721148102943844048138196130965263812135023231304533477107606271973051262749207771460824299311800189445993724562918442424889716331700907969500860253110893252468744417964702151559856655566648084810067400491107444292709382091504727716218512993264318165947036615696025323201084665404593820377134886755679875223002578302507861139987377199877699487396033971239722414144705659756124031156829354297949314107273483435719397630273306870826440835600546627103380431004343212014086120342302455702315784090157444895574097502952158387906660085238698927787792723144518821163447936905499593624992871259731593073168432576984222089719868918981304512529255720245491614939654499403790537080948885139345483882604431178992367477243112895334354918891022285112710391594368994128833673560404631435918889766579485581699219265116744046505645436625347627505242601932019301017126851785589060219647345906104419152236412835806745227832067542636826423870868827835436356939877755678344480813389355895697064181252988528174002087847579763676457413086739716567306924856639424543582348272617668703998170688939568963832368703320991834511697545309128837784252469422061952799721065422457534345127223219616131976358884072265898664118055982134458125304886816356434752145842032808858194667498919549983734744663199250876790169410987439118407205402159686054192482907261469714089491475743224135508829295096432027958536968981040433002159285282888000686657149197969545093131587629568701387374269771520847056940403828620205869692932165130371117032992938134614922051558555020187713961864527167114510033358446930782529480769435803858067048762835383659937672954380311256399119837213145255194373463629537708731435134060082926710463341153421648545985944962791619151193317040722092785501148896341684430816445443813599080660782112928608033980962079102174959826965568238563736128016859131890297605187572921757482571299220499032503356424311843284510158457365748257762472226175935059366727180005270849856307730405646298170006124307279814597963595416013770464207116424829248523705040694224286217158549429940711459331700013592212368813394275439941953731010072073101365995048119077325364792097256792663797479755708608861453817650453253936895855724661944125487523046053523021990256152809657459925123622741930897702214088570810711034692694275028908000256126752239305915264617450955514405347290285819932814952146298615443656408221856432496787859326136731957263161944470792016117650642989588473368245660489712672622727789179947242531284302232293789197979805284769818420861319195108545914628767478827554894614588975815119201906693537114113915877574126801050659091494144804821493070733165972519146215535100594909519397099307072826259855336316173495333607081406882895759863893614540510046567379879016682900949337121633768438583631562876914347548164863652780983156033502154337478017286701924980925253310690121486524529627378683073157373410145822353160275525353925857184862718758561194480716559342421067099231638481868995715202695393433214059518202986624688979279149026901138261301971860753055713822174933667183654184138753912067633540617299405546725760931696178736888571232315653688530136699576547016264626997565504020996146927279140974629325538260086841863783300862133570795206835615343256031070700013019315440912949306600049207386310446445754639501296551067618752000441553103037206139361262135215810681366609912125879197474200205488929521229368291171633066099591971782946822377333608225103730924316503057397383530079135876447686995908698706852738539723844773722576825619526931578510519986630021599951430602833536999974102463992541716051704533563049949496145011123914233482149141272871264589794812519312548586685187277001669733123679094980488172315743983341736778814519518116420653604943713605153042549756979109831238583110485270046884915905434108598126861912177287298672637154718882245349624578593484087708102439324952400927797987026911916028757293285683723713548835240098855087497819906283310134722921575716847351433278101327601085404670370953059521085903828848254891033223009176789243466608155407594664082829229236664667694786193453984593832547732118019451450876793753812349386476589062791563091851581529927382728762186828548351646456341147898594323943978363244929722816862112522958101905199537840076764521418065086310252655159457984884510654079643074970538560269571718597576008044451254657731787593551175172157914510349048641775581709282226349335753039620992217762671805614265185952435809449527672994987856983451867027938827281127141051700339930298440742737078348289228105686579266761847783118882659668772107054616512930459914072986479766695517864732607853281908229620699486069816499754552165797143345305336476038132089648647666729842431878434664898667053824260968107630205645309857771566907866694762742794745067128315103919285718109707666654244092367982774857006503219693500505786810663167586072631670448562946620470297816249362868741293959521091467658514795226311527197979281041134833064534629127488694106025581496718481181971003113637802325875191991574104817174943158985691444472519883290371975315216645854464802279720346078168389670669817874577266821775838076556499906480282054945821172763070044545384186002062998276335030477226707525456453379761234645943438857590784306203994246392224368001072322101678659917825690715288482820105348457095648279730143497503627943382390353569154023376168295034510507645165619648496715668702708397975830868385663625802350725140138268222545579347429875735775473076337364891612496667607971891695518772173217360842789272308904041285669929667680316790580391761039072368520912395018330794002662725959021457049984848387916867909091481981871871897260733678995760544678921480252341447236835818872493838537135235425877697470600753552008631789589792171565317428940329210368735702142238949459512495309702473828329761995101107333576677439217783526394678112812595051777055458108875504033699167165447665224366299144260472442027972215259418796835934194003393219571001495024439811348902232494433593826257940086706204612807016643516386065905878448028177268397594435271396597370053493960827669645747494179011942345072138835898545948122524363148198200350415099074161887569706059626343596349300232929109303056853796999381736908639333356218331542394490601052038650008709598505660374564727655477255825667397708872885764331210377480664834913844076784381843103112567131087354147536825503934626548129475762819859586295849494665019305741770505145704558497982626402855567920552108462041036023104035541459573248838163198881878750151665402594674959512879049728374242220799742613105104824467266422493737826785751330661300998020981235621880369184304948118494017104038728042298324877372204173491060323132449560508816529668116907444652731202912619578542116685117430195938509038890232751383714834607584805483131717770282396686981641421506834100671008080036742073832844324335848952835480461026478063741506542316351475535150722172086762043137207639417218111109828233344993758559316874341463990806741333085064057328158964522577500227543253905490481963128920676292883355605982789135171385099373584586897991584974995844806144241863242447886932905989929673270736380930487989108524027059366800214926165918792064753256531759822527902938427272034470547472577398130496985693244718731335399511889072633253487414275517251464632202200726790856046275448575932238795120228132402794416306119031186204487803491078822284613687548608930831408930598561496013766316291365611241336682489617134941892077991479805131681738986412647121706082364113542188130694688625480846290957513064386132224660584445200513422219030597937739988091125424783980230426112647785111607144232900469593033275716377868340644766727061503482384010331529558796099362268897324393706678139274566038113828977237627419396306192954827450075481466502343748050163083869321676083935389237930786721301329512368699023517354144010556913978922097487518659990521040817622072724020386385634242441572182651822236300158207682485902837949583178898358615252663400009842231533362820689744382681490405103567116315941431605633501037229231556885257137840607425691688664315243823551776289127419511776526046124301932500084658873993322207382919836598245730395013425932705802069379774345784583345557796389410286976931090851672895393385384440098204676545205752952585690199652355576756987792131129101840728976222721941850106835840163524992244635248489367835799444248999996549055037321184056889968238885102059889374520978093095653481618787321553414189627832782132576043401214652285991252903637959142286340606673580907877358573820639252628659562454117737957759423652573195761016894089211230326523667665890050678710313064133321618573076483356744375432404569432257419416929672112038650607920278978340362086303883910532016592549736828429083290882354193182716831587184901685716615707990535056122219119118712723751947135098140936901639923558696411766144577174913919375760123420942312924573661532550623257931591446802585469193549611116957633032981426899807405973600859892175275398578392872976392752446033893370549938924067973384262478108048350277886657879443861533596940751123564576072146743652572321201556161776836703787444490467780840074660736650481592293407318233121680002431730412393163082807693168666358251683128990194828258662898508987986545557872049231039359819879705325594465132109003958446286646194499000042734331094157435460516381436811330955698848135744577434819162148280515519169699055337625809670100940640208434108120816034233335107548796752550849497472706262782749761551716830094414952343938635707652921145130932487561685223720280951246886592406763553868395094003771217042194271725523862821152771403963651969260372170765344257053056187009871632459257807143885818042815564570406703840791628763978371665954216408087136948463825264748444031625840838029402553160657625504402983070268766233485863188783805323236875237821671917950204308234109481318696612651820100582030338687159163752223099510708618851195790316286753208004695514981137614638773511007568714460051847109676923057502790311625503977395080479123990063800351776571486761235065863978560010043656933127442941693732894299918838817719964348927739933735015477446986314893586174718936597192977247193958201646224271395826687451035138064845177084842838318467967532720116436959314731757945680241822254047791951649061538904885296430076175450572720991614493630864225116581235349917879608563058517239270338386508052084855992882315128245031510135247766182762268186388091358976393671476933435285598086298817201037477421587286112216068228851937200283123149486223527268124748736315044521859186802509100966695937405999767714180210475566385775623047180661750747433173626284229003633522007680435333094012087660880157081607402821921132039041239281022397964029596881106070737145388272533908293905127815465195262163021105027546999356059625668118053816029813708471073999901416766447994151274547132936780749751898888927105810316366342138230083052659536569141164887605876268961864218047938954122138871539632252007351718307731652898569006514696895165906932868720452545133414079773136130050032175206623506279681155644809894045867030017053538570813671693733361540952943742877828494897178528886945384248780477766451392249320027364864697644045449230726284615223531830247052397067423328627020621213423038612582573284870532089386362076485296083215358440156336252663332749286396214475355669254552023982915995435960481400362950814364458136109470982686442528280547327374811721532477028733731433834434841179599320224144936217844520787409187076852763299348105116973020739526622747056389702593817350429555086082453622800110926821388766622441263534821458477615582749325062151897456392241023727319274957360838217621724886163797133575850526319137986477382634428241529219397984656886236333363053889899333426579773516739832741402096777865907994990051986422994100046327579348796975735808263430912905257272540676791486563540972092788657622641679141606694542611863425572949271240822099675244309978770921487473165421850454549348324991919338647400811119228043676185079989355681054452850601142068398541695289998749378601578160076613133562755813046906141476799434070140470892418326010131858792449499812834134024948447878625681326070220718285955431233501294278148870003199861238387252956196078050093270746692588342509037904665601472947827167442320540634922298116507546212382574155366874734064943651042184302782339334890911677779287663797276938224871344303944735956241569610133902788308390962483707941130454737531639658985087853092920236273915550751101255148427302614810265835577827175159813487274775692631625692660643065783123151686207242440993512585220895815159077164644074126062368274354741928054626329719414660716935093507267416554451940861187358824563393262211243827909655800263252148260598744815659530249819744821056833087508757587918383127394572973252323071691179187469599013131227237006270515550687567471192629113718324607018086857352685137020025689037553436307399228296981534259685435173958598887141586208897274396136123790362726399595192345693767451278768855738862172163896110989068375734840365886892629033479230485397757503677093980013566088385242647591474521831510861346458655036697621818915448872780955801406570243048283386685127551371923813123667009111142519375602121961626675981361579769475977630757243713573588671410684921559195665106769701432108176330674455949378946980618279386500038022709951131268328593955094840024282820047925410181466699471411834437361528384130576802941717041500899490512081063223221465834838746372381751346383657510636308470691624433151183369040020175655189727352461245356993746266437786590423170222335631218954139089277948301422531134587642783905588096467359674837773662064787030401560187717699782527684718708097284441050217966462999798364907293010855335186684848027458852572921907543469038118885368427838332138264244172206657823518744613165645910095352171873220857564167663382872607057096177610252408990328581714871254789587109873356618833583466605186322108087286394610343703884425645414583716820307609818838750663424339263619359957498651078872761590397353229414699485085293682937943972872487809994142326625558340504257259818178606494254763250606377238302899582882863331329919513611789343571392392925969256193740115428128804609504941224933150710176422118528954955015684473268519281824957844878461120011749332728854178474632277528981042112853178089211384528277347876094772134179767875440446046233878593486230507045648881117645303965352409487567695459938573335372668063602602690960712351725926213670590989984094997091359049603957871225585870596906254063253686296361917358933570665818891690609114756230159575236435785782062312439586582012657873694950411109536793202825398316025621259671505658152364410327044097874966520784198580117945556344308140452682950070688778730599201520104319155919253769458201682066693467928457507111047296843937846179323420523944399680865035287439334441102925605233381298435676562364654502699397974739731097949651101432945416164489228589217744531482211888644845650115271203400956283503779768348666308846731279069912590990606785465613083765965213138196427102752647083730513037250164651874735255474895211790613662902157736753163626407498459090404690219696922386702647646658245126110018789865960768859107265004320062651586682626960918901161493965874361701809966305401781895977490839722228467774647955651015290780479997004485525668060274702044047031945182815663784984131176912239016229653776224191355165084468009741732832545465815919454729974132367348817039000525800216723144059778641830889594455224497284349675008635524456076023680650483683198291313616431678360888287679685259955072805413582867696963690052646000643337678971151157874866324220196417491002365541534030874560607344129325999158287769297426706834890149296645929312597115233814135607096600406096851852234149043343940977134697127926885111717017031769664319266624008653292775470520078809415359959583151623381069815749938953926528897503270079115591601113267492696834509944452844511537954584238784226115419135166406006474963429304191669224706958366664008890845156106137432779655073540323422462415473565658806637413257826969627215005629752765912837060900720873904373601719228225883446461694723842162898126727501178447833546739554388918098535924442134872915024255964830657175865301680107240163712130986421832769115644349437193049542670277355191875887582903919953819944970230541501603199193330700384624079988899010966557867838720639422426051650542897424305960461224190529462044986425841618506373455439135241215461535527368473381731630611498195991821508187141842849931012684946717496212642595163001978682075797433733613123079474897157826474608576710920625716888020649571793455371362555940473921972903029906337089385996211380450321447041892224257555744985417419902906086043558187049763062386731872338212612298236406129453766394171827660718547492368050174185903367465640886450239432974704454935216135187214480385718167371741015271133885998901651388112352387137058963420231149582686501239992876750546216070325938992118437000704450311269198165762702922188569100440665734854339858367411592767469753303758607865082182681879019580777815129667093490798888502247476952259524968746071931612159802930448227085480034973900501770887390885425205911638707746100999639040050834746689673300431941378421389305468779874788771817156714418137635039035418131668609404347983182887853520596390572995409196677155095155829385924965129451297522443201436504716945303002621166974503885639924760639760874571550077003106855283235588466817519031238372733268080125329655280659404673599785535630471769247886695289405630653239303884417309399167143121362058964113826378964327526286826150468821999569597489685997328227772198822480736903673819123172544768923123011180573637759232735699547125750581379584505539675097472911642766984069854100971413665436838774655350717332341642124460670811953897145429861021195842559509454621264925157250041164612397858439344080500289743440620421668623341596658806864281180060805159553897175343072344319370049765123122580454985570528213460411452669281244697153822525916553053647228726574166520932382624852372788258862673737646784232911875631067616212345405026938088405170540736889575904291255862938350162988888796167401452245544924307400448989550628007949943120982258169299088518499434699816684628711588765807046644121182324968917406125111800588159013864127013303056371394797971710468089266789326341514107846187386156504565547988303403167963624469575563311706501865868363231594493388346158495243652358531515011979210003504440071479882144165216516111865205842929284689303973045700299668585617714755131888497262957614734383458701058638567732595992655865353783973547772824546574148994068554437253873311482543241690039397234520676688341177933743158079500885147122906591154767678361182459631176187843392755283982798447966007647757327589487887937646349148247303625576279935906896482689826812681572140604813849231099298468701053159857416747068961671191522408502200590124387588188160034590053820381788676767351122745115459105317455764701574841453499383634224152051732433419445854943662300089827568683596049907420172357977610373368884925826005696032312463331940362683374379002067099886377977365772921853167257699183407805587871382757682034470026281837174031501099716146187837405836478192275861849247629992140142206620395080643479646573023841388976279076834399846035656531051177301873305986413520653358733981130149003198803462058453956888964893117836233669971146793463859057015053523015013679355006250211066799240541687542230200311441454462325704894462907644649115146455293356225749925661825970960233851331702867347335042251746852850760129044506297252441176027662026495174538361672085538435061301529679689784088417267794997227615681483180582322079465515838031060795606616262933968404165960327540313300852885836726747614120773463072827334131339285621687507498546935263250157141676808861840014003679412791515293989246610408833246929625732573581536176081661188994640701460360565782453779895292434756255604865233269290986034029524986327106609388720454021010339046033057363561276429761289330137620504297498094250887594825820156123034691399913851271747860319506669970958393935354944867879212461752049304772911040071110690260751723957202115021717464885900293668841112662841757949253425030322534756188858888512810002911043397363289631905784903180484373717467877356895645923201268019495200049323279195881409396071161072729264877773604153716473135314414996023132982894364904047884253822370028502187319385723011220533723349325706617050232837989071876446721942950334584159245558390666604895214658470343190019540685271814693492170913722696192496275743946558346647804298127428013928854417529097665184090773203563981386753531242202462786803849191340599426169142671314538640552819743897904717262893043938264502139017163326462239700165881292620394573641232237929638362494457103571723517818242908819190343816870555399759832395272692305728314026662867350229842811707017624577004373027587950254191907036997013891604364014381110241116591397772864857842917876663320556920004144041089192426485991677255500947740125272519216417593269488810396611732710019654103451352649540709080299790001780589868052498400072738468175149356403557915644315603863297898428529461139814764172217594662037968827942128854279592523245111149141520381033245888639782203714477195806421674013774895923499402130991962943715142084794469366820551355917425829022440005345416199128722045692060683660316310540074397441560715745138149308662006973663964832763323154728994069505718849291065351532932465837476540261678752691047091675784328829718473888785193441680526043059467965570076494642115119271254858618201003184736844773260245996501068199157671076210809505930035276081586882890784960647968564196844017043385614661776507052781907685830005871621940634821576225785406309901744978064288546160106484404650295592210773523087269780684177111368537541112725841393618763851972617541227762739806790401220125775779919923524684902669177807717849176440725582547504357007259742717496393214981520560301882983082344643744479949743195727549571343425514122952057311039701249997149564882428093348240748705319595692552018977993534657753022406379680967615161589264542724094182616370684165049818296400817053974579651910384675371651614229035013486529831331925728465847902938770078062361296601525384332601858265768794497606472377652072025805198129742544751056450238096672486553416350949261060519815840014746013001859358977542826929896568272374020333868398681112952042056236093297402896556643411953142593732351098827147729581437677514663297249348354046412992042116689604552534309146724307072885953917996138530213056490632978870236840072776460270177443608165188965679809987336130079253343088974555044826289477050736101213592321210248234361710575877944371306142810867332757349126821843086495748300521554442792840668367870532793665370350084078015876649359608253902058420182152613633576521980615292852363671675325862430037758726711644511034310275707512841024098458780211574887825411880381499432792595236536486838409028488531920849380833114130055393458974721139720499779517003912780301722300783099060074795387179069099675195124720047402020172236448642533545520336357759111882627282205916222375679767415798127402131519462922178134331340168021378473240691830195820778128061164683603247157751829252800933995005315552207542064010411166148782969484232760684961388271369376465482216990495791037337764760492875729486786936678160474772667514146663907200619982156955661191699753422977310391703616916424705457838608304656739664247708697702137382903043834229743416582520732627835062583905670866518475019194785712471340512586798481283225018849397821882217881730629455232628077062399557401248705965345725082021749281406258036392178318397058651156679129490504963190496047000316633428728897252391491225722529952583170154856325220316106346174014259225237030735600212029506964335199406277428194551398075228295452188223356513847900763098819346322169978953515824503108709191338338827303231082182097023631819150458441526954839126285499783914177329349971316069788432517971761716616770972832917829273095859845682857648235478900894419195416650011987428390368777881497025551878512072911076067603680979898502733478179018361100619745425581062079137697162391034047742210728277887456602536646060911512852651543792693005355049925374923228270877357454792075572312900509897415147177745999308503433517623105851473781498005900429383758801486886161530724478776243312404941603016226183279628738035427596908763819109429647093283821769479215252260879898290133542309329068697060157461869193664242593179066322505643666822772768555491387491222495922725655035673693033252159902501599786869662172080275123322605510923838486123732310346343691481340687913689998739603238143642891376170963509910625418961020267205326949021293657192792567339017934642835140568852211061358394740531381050107185684222242254539484070079861848907187993032319335615648046375683767649780319157580944784828623799969242788717464895003278452465822505141289798717157610380068158861347524121781335703005135209479707490779638984576257850168150904801241874706190243039476657324841580625256190825786332398004304534341250749853435131423458576802233365301802790997649929157091800226933466503268201070616218779856062601444822074662323066118431300339179679931915716357997536480844105213166748889562745746931405604046372538531737160106543158022743556350006812717878597663357376191183381207494633246869755444311308915618364129271872843677892754683876418444093308970878748617591447132882854503977602348511728289680011840045567910355335636450568949683610945989295390091629192371614419474540169627862994620931242070851745319014813997813497524079772275897138801332728663002432821756008214892909019364604619462874725746623226700457773829934553458809687133313551947158103306756871735898229816734864623549668417548029998672660456013915116600978166472862064163130455285747133662030131267657895277164094747593542234116393234828159243392597366187374070467056155962027646901651573711254338717251085923472825449191331424688747447192514133481733279038090127438983062054255249170770916486259778297123472527418698377522839396003554821816297484637958116009556496209438391061194108635438906554873479085177711293224364836363588133674106856541429317522198828002541414407347101446431163913371059982695596525913025681369311789780798892068805039633916053204574833405567247668556636383254836175001354726363970623179429695700103739634656310364738435384974435925749249510473384356521176922542082837520875220052900710861220126998587480010006726633159300647684708459867833918133976237099075194814820923316876381670107102866177535492553078383328163737497787291734102627043173562882245087066435352574666694710745295085928268547835034469995923235895101696402836328071076935247747889301616476794947768395610713026397662013430669605800733748298089765153647503932241153617164317085173529679123658032510822306443461577907049479529888117798223228071080085113267285117806580991019919616546776560749822489813609742951130175736543636382830974552782796412168207879568237564169564832196741649583785648116455729165208196913795682486735147694775442182870501830198352138238111172866921671866976878850201189009947945617978384518953978210186778341380612212564601601948292154140086565180511047011953762676181097523801852157478148899479234308957054177787285657601040609286168232478839616118654440143584562943775225732491144894940736347242252246496631837895958437600290686799407382887229420037677328518062524886185011245159240203568550079849507179761143287062946255037633389058393565492401177738730067819032574366135227570846499894462051724124938162285227550669636194175261931202595926461281658644558017420013308038448275486090463561237663644363283247032034010921235991782418512795837411812164944125239458572948609395409243408605580188415249041070039636864774492154197282076809714048665678174992963944180862849548023467325652874810004573018480173440877916344913902889290511034692513783817617747336765488058368310325916322286490026927464647641481995936674797991264374083779350336802415593492402772138127029044368395537762670301613855803572534649965316931722275494167321402754081360566530095756404325883856353156374751815203155235118142458946202467910781801328439783980119553521954587288712684701453046323030059489402660158244853185198794446890444059965527505582178704046313002018911387085822635024825657980379170650196377710836116336486578768252090776710247380403804466896745480277068093307081927361250847136881392502485691170622887980402486938619843269926170826486272651055613903115362005407232086909293748849231703851267650826840849058466732462584847568685730143184798687852780441976753973083852682870293195911132517702488299744737674660977692876058490089049887366806632650327686224280013318630960243963041579423552562945496533929835536844402526370772834509640416152431381857635209930005196575669605167362466347747272808943322789027953739200211902021023425991203890256124473032816684196314331887683070290713301318058396149128768118616312039293846069743177855471002870361704623532324628286725026043060103744724258468525172779420234589319039589191166807917224854617483923061129247700424343222508876492171822357984898628729428720947692522824512542295004060050319694536855658436180165904010525437920687372366725269122455563078474595797310482491035704176950570337395760477488102545372027738552923408098476668403453463307103525608448149097970638893828230032065400709897078064157977747856150692629591111045203942356250711492283793773269155937084240675741322562025053783498306908309106685165237425029958538115559243519373915816223578408412624182595390051089715738621065455709711798130171303699139519831397720155820920497494665554235652504611919196030143373722048285098304204663501617938825752861455998641499477960171872442269550772298908945275164415545069373200946105528434277564837578992946112096275588274723263946934357642989090996317819932280118201384374608620595356788946864012540107067780479840905051669427427096463029453335505777268718461486878256900466681318118930583572590382756697610889962893281688000295305309264813187511406062326557817086757829425416215881786802112102604242199226204728505840765098743130083928565168168424007774147401306428485064507266069810990183898960651748556315530943609978786167810165816615439518411636913290136009381362368636760685033128043643770009970736028481094678888389582056082486960708644948279526964448265353587617091123877973454161042458712328296316917054909601129972904704747993797203892261089199977722762977318311692788153082989996603668151175405888021650937108684789340301031321538154337213594237571074758303690558471387263511937517089241146885115275854407403928586338268485319689511148966122394954725760471784031177508002230290140725672487120600546048743072782804710614858963929108089209124534302147003786319833630844886266095772736531003853374587064698977409354058969784285206949526504108858357217244688628009838791356633982530318398264726964864852228962236932311050364183361498191514856332382069485431816764843227088296628749456825817211723843708122033101311540123457037937149098465239145592019324788911650419858063751121229457471502976376851509229191780070607943996532998249552910786634562804978745482279518853228403644862852015778418973667327737037193744610315579428953992956868555896816873754904177407328944982684605875401293072686341239298372182612850219015178450656784025869741571768949963683110163818618209970442300026379794601004210981284223303987158827526684485404998167300242801397551738235823650016208976336049892602777102672616434049494642689407476250499958408689653667339370709012970323336523489571894271553224760962592322790654671452416714542853638133412932082742501211590505620320881040123493987224549207592067183519319724118027321488319530092699973344543666886301598777953624014260023267804861747374004503491517633202148619262562260243084657326829253302936916106189156581829801623435446681815779820049519414117551976983793329584770328591611755496955667985198191684861477382689962006775206408212644262587522458259863886041125487784498027872018463256480523566692588073954518162336577562461634616907433252082001559008284579121545481423924899923016352678736726112727969841903936542547541426814105352572292835368337631833043284952456143857552828039470444034372879352530848575927929969556162749438735292839815322037940653768787271022265348563478628677251927162469849675493198919161210532355963378037287025862261348356399073822922573925732824058907508795565504922671998786622365319293918040233199977316601448917759499959737841630297597856585911136938282282539853162676741738653886688675961665395048592768149152512852037264854162833751352902753955920830318769974052637889919130746818076655009990453578626864028517776716872550703094051743326816882231079005796265402330520261137499247240461930576106331209271583792337878303633553020568562069211521977769460017951651366915626179367108659537244130080244755239356329439893406936166255648760828114838088611450251764314192771965086580805532161009677845026527608914025636281577803332788677997676065751940113509839402027098657249808688815463519749487336430260003445163842009567487869831748301995565051417703616321576056254547773686898523163797512014779078278077614292826595724489125579299107463607480434420572704625207681632578150309411548204838839135680344577477603899895301446874304394499314507523135533546809107375364092904201543614478227785028753349575916228715838852490006694099092064582500793272757910436512825104455989848124543722886709068178659483880372727084768775957087014542892138185045485693821004150290009664835674824188670314044444209196007421225306358153760230273681215214916426651569755867138892424577390077405245112360222371711609671209251789175655195665114675105453260936044069039061103521642000374663596850195664279815331079723585278390798931553191588450109664856472394694216286189056526231934440529378092216570573471370807068491331761883622735515719202316057927174341130664616418060236932191210401270920019585618435354225598771331638644166791172555535523434243361834757203341775188412169441106297923794921244532983295107056439137341979753847450138802473191787105410000223693538382193111229245936368174487775283310732578388089025171304803090193210084677640108720705540885713996330643115576680803005276744664397359448642856282462528608637152644020401397179753714569350439242569259152076689573911244856422161434655841119113486594853194902207584500815984765494649508439962591296715707838948896212662359041479015028397594752238218847194219765858427256111952518145757538871865630430762255829256363937345462006734461162899768383122639254825603049199211906317179164944691125644732232466017517274066306617381301049700710587723621229968633051857495579258128024201776664364334181775319768051325932090997772100217221693710122303358016670738922001779021159393413328165041919117808634410675942218428484997765073846816630421389494369634178807648181515016558400012688674853887645050452550444552568400256193457632803498530298370927339677976208013317353574121162182676270824557207913796369392250634040963631778665032175276678420495210632025689162684982087569790231403281266412688148659581516088860685940047267852715198569067608926072981160023012009290127138713553255878285039778751884828928400173958265769346589464598601845585735946121525284894305497163182378113040978522849972567803412493350091411816306675226897015932281063820422657710220669244229607773350453418064427052559888091317191544936423094575619606766317541171077518914687307112330434202613861754164623257892151799311528867470079104443052502528867783913489268626351434407338743109713631373633584545034922516737386135282867338742116975322705322525437857014636140345105542029011976169754008172706594929933330940162488228956572004346615617288876934801751403240693391277342651849333225909116033780559786076426940905648010397748607931852480249244272872037942277124634038275715482453520478957657105663248722192046982874453577229883780729639031908096322180561853609657555218430594384763633749509100347203642098330120454284534007251661856001922875298399961413710590288358764274333767230941839382465483338530266814379913946591897017089406490200709035808532463472929430722628106151991879594227704791014794100980473836819514626032952699876287298679214607392582467525506611618189617237588582159072076809805779449950866029908882221552028503977386108592047580076035467319833973364944679052268389208844281548858397284491050901653095776697393124308497743867384566646618154911391741942119201651285724951526699401593310329218697572660071357246230153645080102788298544707222966206430048489402865500313771990450073875328021083669129025917188837230068389106294476906069282729731829692793945333175186118812049656527064387434131923682876680475800846179144187465137913115226657461869034344833096006262552675886909509545453032417261226286064941608997867476262213506949702701702902776397526972121710874823721216159499945139633993372530273341312663367129621999290476730865578725726182772017619806940366657261468016476773772821847648682096083103077245928455940252970347632392875529710596030490813164981849478668948692462329194237572473660245528505141414081088704847204261007579717533768075971028564671063197848752048532776767986913176819827200505738037591448732757188779676390771054758322026116483269992217414082677777618093764365531037998824765066486121923837563518268002957993555627215577228448450855856980789270044939124811421690938971920558327270908642373394281709657883341124820156351205856736772890639957383793115222634839139077625162103718608499166421658130845857017160440423923853822685295459402382925744186769344318083019882447294284546996617053478367543548353252899869114840185885446525318188907889293630569272970032898621736878437906616149645664573717768968861085480557223686105289796085592557643378378685560633005146101417338302670725536026217557972098441353618470830679474590013635744278041069714040128528230103112371620490298340075522316622834287107566949461470403253386090085550589718671689752632723402730766598651935848843594290850350256926831205313363895511144310687572389456044159603516455191382278851727607224745556115203530171120238475707579527500129628146369144761764155638053774669416754318680625406815105723089999459657456706505909782929554012945127612575687619424287435922375156526653083565720055670455424309047425485986289351627421855696331116520868095131583194407019144849696054716933277566963821576590627829352082804102942177564240044421546518277737185638529471130518455614987851632873663200145201134386349574975645217253049537300262688355705838215358195931646606839257479792265751243659982155410642627668379433120424266550809270199652887023571010950891627785483075056116398197285300497755321259835415284195012959083851399427110554740106598521775445216979165832559732918098037275376644981213509728077384032507077976529691599037403622191939497223109246024824203289766321842391061798364278592239006078694378414715677520378384811104004295065176991728486565723425175098248739165925809958041338563482253451264550871896475812404971876790217263295356872806279800470379443398987077512369106545533053807690544522675956725184408237550125790050813434518574979040661202713446592942281975512086463724251207106805467903056240978143527663033984841713093529432731861642486293470031609179359455663363750496643426332966372424480058980617185035294026728442990078267630117281532226310963390404014041791971155616638283519700221454158044471935864399269847028992651138594327765405437335017107901814868662853993216905710082270380696695232279591848726751929946310517876426818705446335311256044483601652136591686526641651220888440394985658357009315344985208182262046748898835792266833987065539163536466645711675827676638980404761842113716361323954058411071096900046127685185373730155165575661232989931575960299057091606238895765296715980677548978300825235500848970792298074923703658777753201389485300164681929529206128228908773947480077213339790387564482151790617082582130420102220929619736601036836388395976291492556632632849011454691554971751793934261983060460005390028619998941473699648889567208946391310167550363434728536631692077768722583483794758592112151451362819561716715466016894237082204281627671965357995596383080026873616069815337131007517819119571081126606225344953820116461207462722930101031499776044964432582834667452005287917284378099648622535372434236328687889646270980970382690637226214502069773771262654249288332333250367829867552029351938028575756781614986822652121498356270602709872512603882002491827857108316106672752768853284021868568883197092075950340096319424081839938079710969451523169633658273229326464858984111524459770352281423865453069136415660454807680571565710275746983410743341617352962518103869945082460337806591683716085289655213588911587568580085585017104081203555389840981544503146858620961249152496239550346196141276668277958362486139688626922164434476681522480124640109534152460074521870929373905365788304030561558901675616615755698411309267404025181271728815693059240648989979114746093388732786045606435289805944959293229942745725230903394995000273166234781535327652643930365850947679525129127839130398303366100204232188132945378276518268383997084444914653928285721574616527448076774755459061462972332292536466100401204947650212097660130891062037235036270216898448757048893803804140655802729172155428801939973210140036101894743210569494858714121265242916638927894910518305877575237169402186500823821880278446003060770579487198347968834843485030683787265600442468321296977014769817102503294228737531283861014787316011756917986947146404454067945543397232726333099485176408640028142996678727506712904348124986716992473444635687154102818188616391181149184948809468509704575306030724895850472068559240680156245980886663547595211137160287051821975237915185269682442625396602457621357821179882500353913629345920290835059968338026725164877259030122864302246910661294730182151663081071249597973208534178697914994143972401303839958145505022113911034175635769028472517921814852524078667868477719080265729589744212740367024313494889011076468454734558616377337468060974138445542121192655931652528387142742783803257747906626785670982371158442009524777052159990189741559281718466138468810880147189238754685302769879743198775744766212006389699271301114285783622454088364092556936843083792447615668535095212074134334323203740634442977442904077400003839316670671528800496145564684158714301569813490869377107639189261538523605825844276558093404037821602889276465621534610746159828267321738105688583628067896850760981841370568336445408126408533942465715609848101711561604825828286575015830986005930778195390925475732385857481915072800707848275994137996069546325173045978376191475958170878537544081689887395331411028457485642981036175122483325454049873439334533411890434485968549341577017051730972677756504510406400985600528613578167203480618220468730341776213230143565052978070233205606963054817118376741435128167072172951770014193381368721701678014135951536295577158939965013413630685946624342501894480277114421561348387878570934291781579525631335780271405948302691300027146515164052871566872331721428458352175661121382490828974023906817978402853824986116784571299527703664719718842252671729388790662689785365939035419261997863368717133531986051959456923408936725818396729000346315220101551612589248166143188080410984654578664336656905884907538449895796275819864203340243839520247144730119488778978890204555805024596234077647026335769459832798654597720267555525354995912793303539095407806044355710012170982604680723011091628513804020769745172961322377795483055508660747120148181706761728716504780432271608478021418480500010614282455809527962328419963805866988525620221739247114042559288421235950201917242110684175948845233006030329309460832053397894065810949845631815802102255518259917036255503262888432926012018400992692312126806907586762801761124410158287838139949743203934304711530803117860950684670543846717586993486025258807981250318718937351692141682659027904880688803136738426996088597793653130431279402067586684576002686391727745703248522697020190558359939470522008263475874094136166442900004103606819473404422011836613194482190912676386404343054263354579076987939430130512712902933831561480777752045137618694148422370033970888223758150510128181327273365830694169779100231533553328169430589503150285668138614473198108732758862834025684915999708300450499630158457345565835847062839687586218826086025594758653962189743437709477822239979193526231854164307449385098948513296594794055339579315846195331973849922363206704060517129903782234063570910929479171284813179607995906293619177282765360807156285437162289787864513855225940022933675682247725054841370056591546092125609927108730860167241912966669410307487050706523157153764518610627843584449253124437919627449171058609867843602350192822763230452722092596215894604638150769219004027541329266344565449255820784028140277827483973660348499517332178907422583323339760386118180887123647422189158610443804169892612802477816557032321936670842901800155676002645940848906326259427672741891053620716616119788889597545927551536131617306619410090544431264347657034457225455429883967109798450239513381260737254396790387761551921650720770911467897444369860945107988384953136113827125578727773241345099139623187522054801270977972297941968120915198178979800363656618368151709651467043455966753871348097205828834581764281388343324568189082233099620349906849241180471269570092135082028582756411496546400782455864313150353993085550946654638753265551643731867214919901889477773495677845079744241038446406793894011626269689828791436594587334128984189490285868409064044063773656723590502189844043510592287466385721694110802259315396386593232951816904931530849505874404870630866034252121697383657584142466671210343124475909596782912106718563186017691843223216209645461533050410707308340118591904320574857810014972673589845595417429388285659066798784292580129738034471660695852511520570970266906432020676130203103463143061548980037138275761002170389657408780275554919266353470130640517428672370561630716612221817311863832946893924886622718680063553598742361910053820272063759964633238449649711880920789015636806783066456447309673291158169484179346963055785722240217018853664692731517730658004188452506544786707979344477441379510197785045470067634675018743852297793519507641568855923365293130183491399860630866701547014920094649378766895724518370714969157339144537685789186659893611490207289881738135568100931618452121173732644135483360839561731940705432812661754772068412094598841811118336002613398615159178123999240116520314913749576638474546938151958224147216224268658394610056901719516127291545036200163008972444546897271437555016664658321064866077419631474479429029750875036876624005401450709623786780603809617199014477631564224392499948972834293584033759027783666908847929302158919968720985664882163081414126389844320094396272502683426628118648127216171700220756931665848623240223882740937114357815213173535886564568889927722239530312561769947560022441835174922919219639727084286979825818691313012466796775455797749195630670338828719666013919140150556013296149522990212561159301092348725675309741549837889182812931026953360431628461439678384536565105197327704619527669998669453352308917399871584129227601531206912344821939568871367621318423119817401564590210292314494722236931759930846851858113419891215967464431526847978610512829736090064277141353534812129792345101196838230645756493959696407079322537095630557386622123698797324236271820835814456013858270981836759255283100942895574076177910191323695535717864950569665656064391462671557323635422313416416199877081931233851496218151909614252837623282922345995889576664192730545302555426119261595976182316069564246589525440493727737461866801748457184871646866732468664291857168781395881444569956016831531187794987196967974325237720434164807178863968625708116412608797954356633462758053834079122296257789040995640774866852252654106370582326178889289631597519260476554891141545362226708503361995770926274135951106401182216178362154913632494788759313072954619052463194630598089852335019615527418196209916341839124468212684841650358222715830662854512319476061577723283516416238390664802621525343579291450009436313952038742792536618230995709852377810956129239943116133633780687432360284312628845483636527972900446016372674174032765878513514219275948832401124186564780884726890280637982330482479016240883793928784514513491143958565883426351793151851561696463079970168628514352312219279944045238729747532266604652877861942567119605335869797452739792946148687258122464357128340664444542590741011583029548323963634020529130176888838107369212777954193351324703225068457437663487080037552697327821360110450404419002861002515349911583567846432785983175448874868279672397182036402408844851349400408476773937743148764891740575911162473568791605995340836383601212282710436179431794331671441025718685144241980733656832140294068980237251180407982275731572996043839168235168207947218356926181124963218022268591989093272203217174595738221651024807644809072810365106210846903971854039873397175826775234539986886187213394519202067107619083248837936896880755510943835402651464303213779537185050279948860450937265238230260082280524134623621819014213409478182161018639684608755431882390888306087113420065653570863099935608794823487562870392604841182250049860763482602890659161972137511924025099076917396688609315144965202923350902293273359675732251903526434483839505951632009761588190456473078788632240185604480255742634501968709962468953392989899682579141710711461922985623793985644308821598232216584901400273774720194852813676416002723366671623742569324102561930336898783057419038051479909971278076251926860979634043354220387442078193960824890095704995395599890690157532028454280657020495600887131635358512911430957581800582452065534814131780505583211453501919844727749141809057584581010590619429392874071621931110697249694058719890524325751391962153667636183838320528726689121201825922621386916432226328749130087048674036330362820176684060688767669051340066620846299888854509753781554243343345290346528599847095477779549674816493798139669630577064827715146241406800355660189141543338551484249831230976157404313990036161176236996808777071546114871992852185175766443288552115218794604212576976317012919644413457318016409460604011147537126252246938767572157679059215906316607969444512096535193620636725783531855988638251735274900089589574965624981686162239950894793526820892144574345334858965272675302085301718756295517010477530441303821482918846167205501549819818095095576345015522836881322882802879969653737156525319931660284283997744555407863801036817438514975654385222879043289567338796055099826754494925787795912475211312264796387579972244750672535492515751919459731247745615155077486195254484732553098645376798980418928911126089735069771454244482945280876984499604659738105928845805441655701495165136079952774164100922346872476469826751880523818390278056037020075268261650843675331321020165720412837448565148192613406682967170574517022152191770962866029068200373463813852986143851289423594767050276745790509425460167531410534240877010352355736478965715039775738264024163198753565962778117352407442687781093154936829221061785526808384732089521784340150134884273359716726834348336588358329217726805092545339177142843816970472075560855852951931773569920984976905466573240911536748984168866046098423637942528917410721678988647600031565301052715205882834275359315899054691750920294929840668004471737706852954277474520227129320888384231242319567860675970178084805440868651944163077389939156688343588930525213551895979470625013723731481417032259515092307891735130689835852650813279270747046782434713510128525786569990256124048051193679017758754461513907883289073312856093710365170908682015468209338909136385394319986128668190224129704967790196929234381310672020757435212861240185763447645128944491889762519630826930170759473597753862966881353981264128443906902136712807947749729314892712814898586052622120150032495184457833802163337039878995282949498804322598120719692063022985378540785732530535231456152856238591278671180848428583484478312042695351567673413725760492320505813043469011909113999451958495692206969916332830418967895690507244495861687824807279455135958331262020820971508936682084592344973340057927006666123817588559079274187746313669581416920328284077683839108181332540942645565914709077463778556944684027216409681612032023865088874862171914420803123077133180602520652575806368396555784630648556569075385643702790037031495077767394876512290635588856979619511461046521473146309938337160636362106677109971515310225613460455258654100795035366386415691297856151026479997124755279688560034671654265346162481431165269819447825163199175239389337909005752723895535968388744954546422955138948820711213375813688166240045421222661912491346288945422372132021280089110632603803959651404754016955046510144561711045927091656942593811485543286666940231983677542807666171670703345280281270771290906610707161019776996443717984697528357986595211287586419623472740814806568371800252683161087618620736957879141775736590895448251714709063891925580868084120979223044632919499277920924636385367465229253600935928362551366152482208802768237435837162924195250224909108311610348554380086014747351948774581650155673073002020813011447707613365088930600380590285536264394164325051221171375192698833790488305746220085602308485617233008401558799267158426169083171308475985184424187152679338474047932726938203021364555691243646679257061843180697734553597450363044151771186681572325726349167106080759109803881451158077802214423538071797790350771464985048415894839298558739437048454727182073929673378283030584721830623965802663469830177718780293608879625482038001926717304107370815022339558992938320286848823820386342696832036541103706651361993464738954034790402236872215020369460509798542069942277737496817649377618659290701658788113292772514518108824216421674416318664068006614009596771430100008950546091689826184986451105951871538759406346398414378487189881234026947100554433107945096472261508531782536338621096482884377161453270303425197857824540408463544268900785853734437734238255972726360851614925157590846946518279710122813623298799262885260096357360024618174000155412999398231083542132669993186890073813825728367544205501166421493589203323141962045670454221285180577567011486415831212020433799014444536239421245000859009897343966382356439687326564596481652345033422441420776491866987595509040011342879199960786926136287105656130420395107563400907457019915945282957243888927239578501278177465033652439310601257714099310109088943658436505682152249928454840588266350047733423474236039657297570921302674461307710426171422427538555434070145965616355753594326571342791723502862780644644256681322060183507951690380885341442511829625120968572252819391535125833999139337246690059836199989405821562452742656606640008031459499143274484442034683856958994410284432335522153846786071674627098370435219347969276245141672087086137732864375425211905967292003132346671146989493085118157112991584777203779119117350377307405510306149283870047959580010051187779617069615471498569209195139353495744774445439722545428195492656276569104052644403209205053150909800160437290189326820651739618455152415013557198795159947192514572629544957707872947158286170006073377958791508039490109538982389482224388384071496459826885661558708300793083957623026321689162462100974601132785748207187184503771881129025496996274724085184246513721014042802240969117028553151756161055130408039110939858079546548284611402328757324562179969379850344493092073102336187577252450971587365745553149008661238809199459139772241011137429413897012090151027175286320476692664326318655765958651585884181868816432098968084439079086026023273779128374374561806875774384119301707883869070444303004982044098334861983496445774875358124522275035483680774443923693110111223609625019606488350708441214066250731222009597589684883629818576176549549929265439156421403940477454026740465667068243005567245470451422654319999749384235590347257272705459133372482597590669472934123178254620216712795409081075358923633522099087300549551119630945547073879085633128050067045290847756134695522525711247546960247385807480238649515125474223808852039846397484589515706517532835011874491291192698254481285983040022884806276272456011912112677485540354945346163715803608104633512810892374656172611625359720143297517788776269863391873253411618645796272227468359201950749769372803646867407101472151880659425428205629113963290857539372031952757626906511951490097507615387027300270926349306356900882726244402643695807066530501651546613787368572561603918453857817051424360216956657282573975830899948637955798000720542363182905037021061303227261756072966994791008317539576274374125169927989552839674222631116101006196998798327736391582901323127307245316336843892920033927925611515556859163268473265001146549520958051980333399970551511839141131683655504724442861114397067987619818230726282041752774248423963238390998331609401512695286157987091440240799181171611972286638858386354435063779433656251249229720771311768570215427427067108168892650100720986128951289112874433179154270388062128483014888695740567776050747713735999822691803097040635492764544675839427353809775448320015293947517332729947712766310646082651740766111869285758665027542494493728520256772129255232127163441061643483884465661381719745294422552472430802285568624809944793926850545589674213378834820124617500196518181716552218134611829916879723503142147929692107379016995034533745362766578922123832626437939486332803021238109565463278266442046744341023426714635242032187250542758378493560797792861951780134143929046426928701663455797224610880526575160555898338029467238120785841798190673133778764635923097524142929225723438847183010440236463032822096434071415118378392225489528009656546754395334893843619351338870444921719194785810314124757188389038778157435090701499202524315129688058793907664310964002238632525840480655801082393786157055987122936064535651987829106110055356795868726510367696440699861826701549874410683006687185597626309979045805294831023499764216148226291455444779393839403054855261638105567716419136826506634799722639308507716679409043989436917099000899084946973724790354359174670419780431465990933534042189053811494576334210197677765095085640516941462933114282252352017157841477655527374615739768300574878929302771196327810564283984025713442205804582024463662735598197758725156157068800680111781342098159185318629729266466330610830340179651979346920771608811918964298618101982584319265166336831605144125391855954935913240120502730355847128126304558401469442523865385723453962029341817763635564766100918408649348262254116745885254683646964905740458769568783625456974455792200174602561941694291464751290182601830937253520514257191999019900985184942611590834798468543933654761701576997066777179255098462116668860857616289520606928647424125338732509023841513273648978378992940458958327966145120872747069829961575880802945738905481404419614382818300134788859119765204759439152457201792520316615979101951380993685547345912994883554379549184560632235121200392759143212244291685890339076122170506076682547877152886432154170257061358921985138496608424085662678122023245121007474260704989388581296340251316210368117151260559899694059083477121995417019719840783330642556812252445732119817252424037558111170465858179792896876914056606897480431171767813810946190250794669658560608214596294076400544183952683165322996602772476782072014574349615987837227242426578335225381421986415496575534668916480632539119584103499384436049365866024906573680287082469609996092208408074275672886096149803404492515146868398654473715009428009056755655948972705466082534000421080461889585028007806520686677556183319629951843833506359878634696237161694295166941317760417780445317608746269599412542861715626209046342474090592946792693147790015817458956003364025673827470921035977017287332982002344538384620906809678387715697277017161313517865790410876094483240156060270460027662912328684119516622431851283524083204578654139996230893438460873018643113535325877978897469597886173090386414129903810313807451671468924395532112246878137799558769551257644344271155752535007316379182694058762880158893596422766971592137788396634402992158796954736048595942436512148361057264660094115061002803874262767058304229511676372015864505928874458862281302920748572811968003435402597072430878542590694960041140225194072041497355708567218795393846326424752504880839955439996373647763358785044046157576162023884196750260241481337155570617070265821854894211716097222628141518892946505482688777434124189389399265123223703566891573400531198227844793026025221912081331918879576707394288846680662300001912110385633361968041453714162303640121076134238303420943225844936010175377680316767593423807474858830536909941323633751040126029871302503272201685419326587221263912068060284424640288120978731868757861936088215357366474297663976104890856701986597709561585589762221136536994244702864443597087088165627640332555046002940463027017185327361653739327610810815101329944464000230706770634990528967335171865625835802368131224788306210228480005336369321626614728368641855211416052886907467499454871140033387213550384727956934043471687558129972586188291716038818366950056668956525948092937652797786150765118945289247310578714362318168793923535428078959763566624218407516590330955172330270552227304807680775580848994789762406652967954380496849186092373026190223354916620713779976164389874856979160090270422667877885517628910662852456607626851743248388479615782226070020858535617516018833835009814804413912988452513394178503094459649263343812914205203758225483106404616428061711923938761535098055508727053602635401684573323009852104792516457627232493427509091839205774143365053899299958065903201684324925899303350521873476790774183098632541082519250124407126154880540813794032420136280121206863404289318073635497738070424871089143376301641525425732151229839582655030396927815032529954742632601542035165769388097387950183789985291283469061407222046297874272833685519047416660842578009110525668959540812750136862926962987006924580045765752407180940323949956793143362587042911852536809677956599746227921946337255444503740467705966483517220218523467959165241318269968307409833626415652458806991944902084190402500987646490768853223205507220675513627376115329757542785489190486157270422655829452661465204532555242938105989327944902880071979919310414768848571617885820122323338527682818904885218307879587499100295193036269195036197944075126003042807094130706410052344324343723812584295325588239676875171175401387384482436702267876462792607029632511591795778740081709983730753477920047922271372792750033980521946758035465618831546435438103916186191175791679606270860222860975039882346179573279490477851266038873336755405658073664754936199608683845441769775223606812652797934743674186194644773603059096789777501944061130912523503816847929353407588732146259655370333472178309644872968697043865182781511498333047542541793284440365261633170796502965039058980289350041766808867111650172823546398610645660953169245522581773700158070097029569256612103427527166943055355133906689780742601532402225785768804282669226427776548282855872385200570989451271001403783891575616535707164265373735987815436991729588365164545414198059968501323224330880478837368493985925632464288503843841440457512213918935557920973034253378798661015493004261816768536179842301554130603823354091062513389348575591495121533156595572507522833105778632295465938237168343446655637331733003267347066896374585679688111608687427758951371508300064862614881713780815806551070363506879780116972920678916286871439233604840643961169087039338442213457014193163701929062964215890894877931394962770409439028447365557741888338628445875494202714268660689461548514445588789433406493108138921905704019171387382975444606246630938592801759894284605772781819336728706251541697468963552212858435338365798710383417994278106041778090856822415230094527728542055499097388604312751882244126003354160458527597340470886530946115823792702111212769430986847655731612338516937065631964001460913523757893946110109499137888955834810146063721493719195576905786898773865274859391548522265830917638232134370665017436070579071540497343752804132839551809582013199500328098012132427551316575423991417587509789331856365042160262809694313987417564262844349960644008594087676330968269520893945389450620794151326704730406033978227372420424417912718990103864293840845375671666110360010356983372242029736449191452414127530493883267452800924817608109896492499736023558820905701150349821860899316644230335754480458206156351174167017798723813951258973549134453016562047412400572661346155332082221961990615046672563883581479304849481956450520095407371397096363824202821535383550468303508860060311272885374924835119387217397569850982355459421994430575328327897612307550087291913924298147588709344775722634033730263360315375372846907023297229631155165520802559930285703590387998346419268181752715508748378409517078934518354456663899202755122303799380429536541767088491519354038234040832654006087116772550970492895116118490232306047819362441992144327858775917582042654648981720153574535350254111684977333927511073691521558059242536925117412395355486722614623502350199978149396936795026457133198452544168607634743554739665626304190619298082237318339047149290375786485111916028021795073450441510684932677238731000463558916110386817465595511483319279335348591845741309165623468056670482972691724659640272740642604699133295653146629615192901106861820495403085549760662468515933305794100131046049882055699025731995422158801224785544545123283103218497191963463061408907268027225918802422081237787410294809722425410074739951858971858868025838038647712795513918047962495297403364402643061700185189778193679623225137345793964590668783649819661931431947112945594588307274521480316747580070194686728342645766514651907380690468979523147033704767997995139222203714467952563123773904520449735766991990024071430916745213882759312109630182978934939018714359183098981707479999793427581837514923876486804087720634516906799577452343867612040588534007114573979163753682395061160531625691848335437274541925277968113126831040299406601333844378873887727315306349538179166729105677703941561147100734160661284435312508345624334066157785683486729137392244401049770910393929960347810620796862691015498496192172352107662545732122646980744721254856970190004379765876429869912583427065193024493736031065244824613241267819268612423059460969776316222211017130772650953589498891812182000272302669607655761707744181183811287168982039496387533933083242773192495790126641956847865204266669244345999452296389117517025718031104364512940660455143452217238042220166819499647462876634992900281770888667734974195338985573916658467684456583847990218625591706271942245205816282909841158770476149731897356052641139806420763557427405857917801212671584846910822341066855908239279354546144012375084494148045919225908618464967399042250393267824332659278962334128856959116296209138337768376664791089705324446972113509450505720147565476053159875729059799782835664340884288656249931908952078040344098698263660659032074489729002087820877571086292955147797850528344943260989788446130728806233982145925650568645919396584304778123343817076223889285432513080059517796590850102105696863556564990627133147122896296573650608530276373176095621248741212025092454630490893086509616154872351395224378602670101922652061359905404556850470291654571141576285341582692576788686471542922608588094663222981933106768409203504453156638408417955322678439118282382308775589060888473615636025312250545323480387410612525820991337539271323282970710148360658261028758756388539235253308141627004755921287499859773476320772572607036584516720728356301628948034855465342076639837386655140944520618179671288906544402403648761721207461344627504269498120866727003293899865460405205493383284962987061655939581928830013014981098348074385267768066728072193707503256631129205104669892035385838047863107322756227311413006002286993892870985510330274321335742439991656936299600372289696514852473655700516491227738429936810173221117695254290636503815559820203601855698217421659922387096684982290378282341093762644241750411329083124478467428192491619208629082492519272527645606491692935077764958727071940170858436983851889652950353904956233100707357649355273638593415279162860194286836449101583258874370114735201956928367699307294232897424962144320185965947486147340889864675214021621810712874357544680997096992186428792357226817993920296571657752483932638761817121755943820042506725915341069213645188637723497774097510395440430578887354247937956985142167578573345178531858007044513803422196230384233725843362401538112691355710423537125055752807712503785436469850739669798620631682524352494608057753471623477574393973618787458963914416168128898657073532242743241342110223251441656081004143352980970527371838252919923976933575805403171642646748593483754477547667500519523971754609916846085819355687321428059896857555769252155324636415264355623968766717479686620662984555749667671401144359865046488597771525199511310548810912395675833837557849752705101382942204925169725478753890382867323313496579615784687835115441765622331619545338494857169490533804831687925175600018999215116463680154351702195762828254132150844088928089041616853532268417629517436405426210010265870326280301112920244242401492337858934396231070341959196242220180811831211027142871934004826940167740697857367465954724993772749650742572764753311089377555996887521458091512583113067611775707849802280285538691735966256237175003415809082676386932577030685919672995189813687463730150803675054439227949908276708565005492447108001251388451129169017808601346351315586944938201372493416969393528574177471064658962114657180221704250596569883728770727037021180181680195681195257330496507984998530870580270659378902925395126350219505689092564052471109302516379115967158079737286491703409002158492595903978517122001364707813001684091262496276321593146272011467822259399098067194328681080743129662092817576249270947930371766623266273496608021095011805249144594753907959755072221169769821392852793660802073476197191625738721532462811186504772733140713914840850650855886820318614740758880087879731703833352440873701291093357556778880901516974183257049900105957816763065852838303512977231758883654815851196211515860079128103126377919947592305271701990093096019660604932061264403711185029412709904452894429344888300117113775856998422224648495794177525526029205905305852919604654554879651918973868488965914308250612289732424601974484511979908845444228612685615014864146109609466864956674411128348009764691296919182714797812006886865069735131505745902307898787740725806438530626777619764996733931054658575034385352312228389429516218428105547791886793820423598098941013032736339629732402221951836548895038660994582664064375808740595763901394705464633057015030191395875177156685118717811936122547732471094160664823206262750946940990120698163656605630938312526376477517689798178265275402734511809000628157193093622746058096569381747610744763904019599032887299640712414774520266474723090371254036516386345771240587615915822214922345915184978515273338272995844546229206034684895895087489710544433547557462361646313372553981166298938181788393775033695678645403542036935117154592153948626494443418541564951646296109289050334122996726897647615611081800185403320536570328799618771401774009044890789174866044703203890060582728113617766331057426866238304322747742208616396854963604525281616518122564497193419522056996318267334862037326430426093674777162423886972645240871747370806279491745398873432436214247791943777192622767441039906456110621685609639092618831015744452061924938705631463416110474799926791514508433627733410472970900664501738460711153202135121744576493192567753437192681978729334144980349237042698388479089868253383847825052960317198584516268027124067364256823212089366926965966365675035249962743711378904912944795019525195714924240662747827243655278344724152427808370391400379363484621858427782194921769685596726244484718380171542199292832655003234367036122761857234666582328245151424642577951973824522990616109954516001974512461513221326116815525875853159597269786509288629925374709076469766942746245105941217811809354431796115561284180046837659837110121503766266648568135117793652694844103097196029436099080293863377650756000145200714261589831128931493974467264412576313581594262308240387528479353271331575646997985378829817685146308867477718720594388732633545757317354608514917546283473414059240903569202435804011737346724510026861651121236996512694856042295546983986485888365072661928952255556106523515327144341219471230603460112051605059264661219635276199639047747418950646282393483905526036443685915114155069434622567479539291833198930638654395381930708786794405436750011797506749338995332059743985035433578078990213867899581869225523890978391936918167134989463494465511558955970633523848964614128306519140766990231821380771946511188575414376828070305695102876669503791461271973533432367783582087441561676119043561380532439010264805465370707563208944172692327838788441040098403967229098787342853208269257766125012711039541285588547913585306181440350156936132953729046375187698887229729402518252447922309457636120422374885549693191792516250372483887774684241685451151097323445990847567199316978556491829951075790877832818145207484408643467909247683469610484494182669641740370897257916237711438027044938329061301597751952201687103119440857014568775355959442040526318904521555921203745777169036129259603382137329908579662613211710410368991441952487423632018866119331378368348792708116416359620529922909151379399662475571975549457795891002234951836485105565410882453286598674857908484946723273167635081366383714369313605409070925912418977980617019375610688911505527074174772548052470122120152881309448735593288810618342159521284891984431994374597075482859470840129020033200608871824359724875229819301884078609527545082966755250154920118126428108370914487056556809992013561230163019485522439275116872219358600415619347356495469987838951264261631897056484440466299520184066145059120263483385310309651803451135107302211677763356080249574675715386035268484065230246344938335667447926408855368583264095452631643233874221016256611018233731557238238036595050581715037149471766883558600668924868099156993432187229536596545567104430604886474507735982091557979517952555092273800304513112060288171430681079140107559549535630413774986814147184544650828289687723610858921514625702241894975067171011466462735428778474055518491771526797268988456638563791308912524445164707947235717077124495037789544872893643530704821812141920731902801478235662492042533452351447237580078629056371454103850696606765497823432737273060442800445863832545967376319854229920080454422829694074672516595041000213172961460794928691565220747883773001396129970560633109619729964860812425824539084049839142635075968769855973847186045713099491671741820226735967990649040429068375519165486480660346504855897183699156706844403219006904887438200090829598598271776168582235500335299924422911383105763692985002489634278410037603441481092317800227905750256953826820997838637740273841500468285543295627931185113759885126178186403793081795973037931672910695785917406912550341782702069678010375256299970915950392912962997476427582681771866104268226846872491578764643133396876834853920926254336771148615082695416367908141257542532014804031200260992994863248990206797313169662167939719431830481799049696611860196818812762131101769351098096344692078181867334341650202800453699110480836766505181466860216846779434966064878749654813942852182020450322302728129229151094277471952513407151332015187687985868904567891177252812381012491901293212757651376066963152453976512444159374624041201975131017651913181752890924638794869814234631177694633143250119252597647591792863307467160450399765589142802674794474181095291106393163072499685967730653192812918270690333790868482168419811257624318567532029366578826082345368732240079390083230714607897461186678167862540294960184639513637193208169886460601353497718516254254444231256804715479378922774677226076413842942134896954980202619650819219833697765995463004585832309232237734478463219583368565465103633071067422987152171497259250587430777207489877540999328748394997630591678874233577019243251877673128575548274198201381063037877514564024708561283150914291162926715705886754047117882879473547764809249341869073706003080751969619365049742753802145026745169575319805937581717712625534267829225831916286653440176942793932143076895512597829036148006475731600336229877440012619541346049787863232893645164010932819345466500646100221992638947458693823158714548913877988266007823821428763114989327037556503892229887734901729644726091232262020401827498752586386028314459229485520327374665249454124607344522883146559778154171157170731541335489777872263747672930136897775502725630980400624375415925320412043718217468701721804708634731321576487130059989898623832874411065002018606530932591841475064204991379362815416632689385584023959070670867941388094433669644882094025610290494962883484851027678399402629723051849188135802222830946998199841992879695887711851676123235775676868896188210520251475934372152102640447624394931080742759114631018556997596081025070883276915075324285188959882807269264352564132305059554011175987755948977206786013198909009171894210091494656567199657565209632752993262081241727674279142994769864885329847007071623014152371732679232957330074438587566422718296606449793029593825395645339038368138291221835396841189268577096590350879261411319100223154654731304500332681358409424690309173330790360451639965774501771481682891017087839578627129175520909087328793038549617930618900683449579227506248545434670198122824576371683221132469304098583055353349618689334243374817857011713955420613712852716591487443830812888612767408018186766079567536200202210442441984754218026318070901819805189879355065552829867917020752607412873980276036916346369621648203383058880680030780227425815590927363945455831151881898370746907188378572838698030208603140110375022783659522679144196993915213248964338660282272776297024593361355260622557025023270645163064172775804719054668297431137081356889828960303956089658589306266270242906961748750745878227724770412796271855345429337320453531153958406398964694027103610752092562136708138706348826840941179724449793198278713079680809323396214835831018421343363268410376737371230850993103045545091112420532401357598152208474012556071472532597052256445293231297730994645363147009120840934782136886801755206909371282166873263702281875991014073150579588854676079601736857684419953782348671813238089441585851271914384907189819652702244612171842580724152896804295920373909750051080721531250389033284021785465271283315760872868921248489115119371091216423371216178092901230867673735054610391458306998016797366500562199723823932927572553556369082309756045351543226685724098653931212199700662816549403923282456124401785016490902170463335899872853408522869972142491294264278067745865606165200649349613564174089917674473799732636543378902042924874146537532871561099688672855485176920309094803730076542262037234915863922522964423117976782423398740735397176452777193137436859260369379919732981200506458803142294939286936617857320438104245657005037827016346703188782838912573660887449242085403601064410952159880832647812191140995642031424965164075832581215192106893775246105712930680325880919087924945085667430254428035669339556982708635651054714885652168594847979174925940391362558226370947897135799755118555166344654785463857700668571848204142755154051489843186357441417771015314658025143120491052603028852886321541184416209541667171458686459687192833458478529661580328601540149170641304479536934579254881572525903113085823298169368039805871477305906489658289543396362812649370799716025564735218889795716316469838014694294321223273548584144772262005053328202945588132612234588184729571510616194782421240961730843136399286267767727911594112781272872949042715807974198389907978448083992875743034044508878228956832094701907387287592902722711707443347867193499915041576404385449924633327640967967188674447810682731878354283540805571119549688858965486350519163978299952239416678377507870751942807232065506760941679120682515510507989058324651345297560152494528518433740334710999695177819943562323825638034806823047219831807900754939809381539119400677531915063579989355245779741869838417638519558155006304242412378842368945949617147654069226217604575554680372307249952112339048173043911040828991773717090922802349257051398309970425750938624266974803297448262598328771187280320847923254500879596936738502393162287762932636332047527760783418866132582583943741672422121681190375461785225553334235766241298518075627025031226498643536493991951494841112569890438264411267308459605254260156046671414097574676279608635811652211796771207857520189234743101304882345235596713581895271106302479907708216783594495395274095351629035865965960757996991761416760917206675830511476673455395215092030036121799533294267604538274948999840871538028141594248706683453287654241801492808300898033735490543923721654610523254175939499099237321886972773833353730912007911594978971627904838092595230323357157687606610096041313239466372507830124608672232222769837413849799063102859011241931130507890129563279676171050195417376278073444575881946740071486188152538020122536050396980209851821461934372194212343675864414990972306761677519139231685275945044500156566593740871774046936998058605410190702927801107753386260783596603717456036867628591072530558452412307855607351583859588764098332490700047100013656157640684189716643489739048273445150117463960944094853226731373766122171082259361153547684081018887797068424139749682745877575228864874623359534020166214606347483917613159286046290954076472554511031989002892497765991999735313210624703639368572347082046370893419384892195778178523357470163716120637229797379865995813496147870749719033627102222553722651724488548989571028776983796506761554796439106121315601965935777907098550201299540993504060377357514306531087761889163379617901315088297143901861577241159704963639331858823891303997997963451648929539151056562821681673762421490184010798431124767700480727613660681482964316123231305996306016265650402471526142020244663406510816617860308269329525055185373706235449880722557708241762370032293335360541472417200420490665415513753681954051139514253311828374493268079449428106481596330826459238025352224678760490104510000766988260403907491969280907083974037605954415820446723983883093194121189528355493074258556139057923801958749082292154364873540313885542977451880196772261908952219052575453572205877631219591728308119452248297831673672298309605317993591819136289614770558059103894648895224335337911128405268414421378182320579273554222842021036359098571803659005398560383949908312888259700741421695904715798773943489729007923070272267501726651512078356487800301662706654445533952052476375662155792588647501787027194081173079166041604533152680120677928607844313445849363601403318968896451909840143708837549574269381798121790323463827067614494652195454138296689770001862393586792138861294360421769134118214927198403387552495805390248772572607521267701439858254365350012735516878914036399799268969209259880213346937086032107197896721053921559859274979958022860433867345334099998182779479964306802023183425977852983051411522710810441992621114698270789648457990732218958711838373594683885629306527512473586613597955808084611731162477306837678432508200969656416272452387531885949605539942704002224933002403753469499618407881574093031526705952391328484706494064445378684673902113017119098604760742320468193115578871022976981757268671078953817553320940822951010860552425086939295544253429481027378911469854677860379792534136297427388797024650702149537180145001673822950785674134020154388127704115533778543724190711714368467209557485070674896617211525700682908762791691224073651188612209050141659755348607114152581024910505363699506683493711727569139488317267383636555252731395805252117038834976374659747151710630664079856333809417435391747897552250984457651654753684448275539896893340024410008512043154153692826624179649640563565620151477174130152657201684882003591900096120194844758306785613547944333989484254208523116194655454210937566727432361195062670114527525839912625659974031898681224299899598539317870814676332125054625012194351342561064635090669450933017021335403685550330103437619694612279227756016289431866659750527081996398717259841742110970411589633325882865765658119199723522842906012788271504782074715563606661481419129755285405189018093888704821313657170455263083752798922230058408134373418652176838591574107731952743077555581557912143649289680926836685661452440987400946533092790622557317585559826943760642687435079010948026791767578470677980525030804998253245856870200895314576692505112753565324371258668256193704178645621108810397939002073553917876568317626380543313081943613002584163598851961238605278499104086512998302562232396021750379153427645087775206277326970175305497229456311993849466862149689550745000043346959876278180339610139143237565615671998158282400708950732956362458789042155257765022178278123827220269347479815919647902377476511991160851997419739014809323858425825468441239708673321957801102754733364227171522301788512351233724784429343554205892457198191848281530290855887626245141287551672203319176288738808217772642953503050241013342410772146715256317326255890526848871458369529437639472275227270065656717727542124688252580880605942151573997137881138999226799926939146812863534188192344811115208089788263596177910976470414795620832622832127577964210874788797438623810246361994418791797401393097842146545079763987241213976008941206115409099395000715489843609953760845468149752112847859696107128140960662746993449138344831071762690297511095023265902458960253119595446061632009717047787486956610438980773603699717472273537613869289910866536416440206282588934984830113098743559634218449128844795272506532675494342999284803430146001372699408213503609334156542163045738620814977623345423970081606909229748719989167883208729637821122215058852999007331137623624116384377020986064959635600580505317557564483385620762802756312281045873451757289143688519319578848950787442505879998391529313906474430228214324845415736103384178890729757822021871639586704153857842462864869964707958306508160167470803320522008464610736572251117130362750786629734367582370242636426605920332552023736172420705523515848889242110523333072337914246837513823567512442387852982087532611345301629101237909963224692369893424576791320626328028865437757739583392431434668531499255085240696771400581149402957000807283246430807114417664120254278198919037236896720432027425769387407647560707872485216946665267521100469044992341811062179948415820299787120637250011226809678607593290368003168512020552444312772641091456087922349433874860433561347522238081272026162992936166622402291925153000675705238509967350289313040122032118974389937766370365821172353706830706982577607434476499531002090841585759646447344365060899048882366713464856990667956757066961845547979234196674734643472427405414034053295651292812826212138791942751561611849552183674075069175144075712883300016180322485586333475548358354678022502034873754805848616788474985243352923336471479770056622041774217749709579939774181368372326643761738383029041874995712332102638928449216466497805442563699047831214003145994992440813852806324357542644883747204866659327010747685418902358499596266399457890535532292602063529748788056099109372129949046753890295124474908522286153073390195534557683065877290585883364432701691085164594768700375832663070713458523804101006894154170720975161361698498328962274603082236465620535490788063237383377784343659849191431432106726781748362529724011144984476710977169776690827495941756714114536813078946788740720566824164363837057254208822788277515578824862778092052430338917230947707905209525499643165454980924770624200848610753703040042767764626991082644119450637183579276592437979733264717988305345550598926572202236501677154590485369579649353880215314932086929897440900483876780016687715478401856408073622820357299040761760369387787427934104862369045025763554745985996165782132522175912220721244075099887804374591207320132634724341927159855356101460363584342715620521537470915689365822590654514605030533829523833843432276551920639194723706894138716391653928766685247578339159124940796300550240078554945778728552697262899401137461727259014584398007259503880805505091708469112220012933473147585431964494649662995456429387757636031090750771643278129850074846054459959934060492833865973511307328368573111858179355330286951175113704766075439582600312932265905211224572378290195998452832292278002737203913808898097794357422169385420087527809230380237182971325604838784932020185863850568598216942394797699118857825510825564648373246947681405240802610632311519758189039869799970487880235098843265483975024391273243711748174171311484343843700604626706828345340822803015207665887864586031706742206049259989205677606986678178503482357705889779297446095487333890608768967073039594691783810847376249899079648854030916570566740301981560171847086570259036946401013367545518490318261560370920581124206131671408095224279963291223874343169137286515497176503665852300633509049058091506941817053745458495976008524766696644580615937340938859774830394640798430687321340314507740796620513507525593539606986020950051753678519632715462256727947754547324169918442805159729872471498828523719168371217793938040859962350268849691076248255930355214005380403515022610110320470257756121282608425515726183972328981761109278082190085320555032131209556927233373205676267733222019279512925462308326895771652491705641018705047265585599511050693107866097938514883077083771562321332526368554448121719153756353457201265079404730046462414320515262409547809914397351759506350439669662155512449037333674763640667605813041508498097203516445026304012437771004096248150183691975514186980802395886659873940526233509412669760385949299664714646102074556193257792288809214311626959565037727110192344038398299379601071712999682809012390676299248858861476710672012359785731992710387701644471054015381849080680185052700311957326350102591575945358925434935594583625980669850922977845068062553202592677361130122833845476435358833721775844397340047023559554207801483666164437501519366355000588380233299377120807659431777409481252996466922213535816453317418392235168926831378007722817299224920348788764796657326651444635724419053233772602435219847811449949296535592891393597855711609855888425558214525745259381242400389989116453516608873765773343397728465286417166479777954951464183298164639236302327977719023748600175989267477243185733245035050096541691593793957041014101947394177528755562572800468456014927150099265281627828569657112902325720671332496172610211563794900621558174979594957306483627878004328859075181800081237423769690748324316469592282560947609789182902290155522875639514126665509673910417565629330245416187521428808524743072986338522968446648197326846109256511205642047151861587727906442929185200300520358151321969554966095922537128121087037089230929960827677682348850981959613370827531340884621618490036650353985992488201443801406091393451561970500320210540209927281255415153023629307747318633062123504072529700035968240075616562481830790207922367323054672469801568301778893264388621519789798959871289035047735523614643137623470098615319977995460998506992951826157029852940951424690580893474020036349453666168586140899190838909926208993191588352239486087084198306537349821513181652589190028705698480969692913310827889427863459789136833599446697185167283534608648402200102020800225696560301657024888877599465608261978318451918351624718193048387156409094129276577276026414153315282410485954952292188092354540679608088269718155695999403242681588864729616779703830511023873978336933461413166121561479026680678255895348000943167038828600892997959649429834511206834293855808997777596953051127009235266380807889837528430715305552625485266142794967916113699231813183270814028520003805209717418059957527457854043599829217879076374834427671396427142015185014374338196963415574255191457381818699386518612817856338394925648508894928827442777916209107084813042725335587188518122894086260360644646424123177706545838185713368002547924512340743488374600177927204538964480458887866609577378840497694201829396544702577906118665175016973917872134324236287719836959291283364822106862560931029471493617415616562139376227162760678161379884753013824031965860013461082453841936781179822517313547812441225365221482951791312732155531447275322475245269534382586727485738387355621598960046770681354363991853316865089072553430987725511684627103485924019815093583063078643480274803310278708480887470370474402343559952244466816719679942646258128143562487803845319452791272468090299741747918467214246019523829655971424214053111540226976756155014469200425830853504921551125353758424733205710195606132056351853710596879411583212149085289756377432965910824788371354804319492373604191286884269140629604988908717127211744859764371187272915756287567863066567775642516915792596107118880088602800564347299154389510488302139974289080244307632370045759491425642109365138483515002471208040542927801857078698200335870670049576419953249928196413823291624219837355707822785236690534354838948614014197924182952659717310266416649517429101169823132192391110678206101362140503957186075439398183758706224157524854899052854120711216772562110022581737928371592670104706406479278313802780884206822016984190503375997496373636523710569824241698408385191012721886274509004039787581209233270118922389792410757982612677958160645178996829840614572901468413631356064328005870123060596955202261716924956510134520937825292860492283852349752553843638217399790282091153570005136992542404225404999056118677560824139069591941603429922906226071288921887438361173608637031567611544259108689590485608134868650092206673707675251789396474097126142675480793424723678792638551415605717545852523812796671705453872584352825536230838885049474244896088960151672796632793969311420494514504533443675031353028808302354808864863735650899303622823174313470814534598578267998430110685558797969359793659943730799254417928646158993080332571564610854989084886998858446029368326849765344993435344496379016080896760647429423175476372606387751300633567718732801388168252187139219182353120426010037451762340041305827056190142484873177116351640368396006491692573423857358826561903776289308993403731038985716967424302670296272299682805056858193638838374912002814279797617670562393903200963925777163713188224535406188840408311799241682551997044584843865348862704627256699642707021496219316291622092435763069372092121286463428684892994927909555996064163583561243735597489865679815112162315828647751967520436582930864922046764455208284118076533297845450309704315326636673714485398569795003181983811639389864614353218644948172715591030931134908182152055963199570084014868196229687517227111557729003068379310210574206126181007236557617160209076872528635591479809192915654168656100084374236912280252131044362119888855988921191451981748958032655299110596675758067886864226074172442558720269982427537166829970146428837440474664690929041986394514550848100688872353926297407856445883387187280704045346781965669475076822908562414863497565219168647069332960062880567639492138812736235674462301648867698097483859750116367046704217049691305345217482759279409666127554258222362368979433726213464338569433741034847913438993806709643260043591470643380178523930091069019320586801257517412795416730245367221137808375964020028085490648407193219324490958975537196978514503811948563741874387987515138392091029199376489466058914615368290162089222758529904335486624698572587905738639320679061395233983020989994401531816062806467598041181812890160122315821936468069286758035729952834996692721540221885024642501813525959014393327974284530427018443334769891475494251416182341062616036134594261394459096408620132973998994718932066556290219043951266845827914351350332537128071264881057279606641139388723599396701572813439182754328881517535948953919275956966071418184237578273832498477055193440175630750291835414275026281500380741110432082228927478579117298925298863258018536699511470881133543124006430868558613050738600705801694921609836954249421797564772216920293935394359020465884668902164386983997908770043891541851987303643630546548515402036453818349564477985900519167002611678204399927986219856268752489985479996368569594067747318019213719260669482300581173875939649989819519121691309639164964656765992011699081801453947355715946069433318124841470676701595427268963490764087868608695125036775435095033141841825433558705273436663354837996289015526647727159421667999534857904751089666249344635884866069263900723530067392746753022260728100444105667520958953468197311138867228847889180258734956054458527367607050405430017946130767091968185930890252707878518039202774251466820478185495145933653388111145450027385165188443243121042730318728781857338664644371225768217521951665087741872561024468054431230492382130059418902995340802819488599389231798100733782494249250956742260607628421585265311709568966188839685098322967614290714212274222051045928413660288442700497801789560753021643975123925648982891502064636312973373042435496015832724896184720828108529788896923119547094641631073943889487728604410352078903824299852430505409556595678009531922950917251988197894415325995819547309573117184965440229391115900703571951801753138615527946130049433314289245700122956019121470343544308771705019544368621396331725585091164141833282735382069019731685775262682320664064021459729466485519730304747926338334330952998726869100489015808441789428994104521825284798652657513495839923540696924043929602891624524497677141571995938900543607085233109808770878839102354995891205261673427204990809129185926846994041457238597988862691844134332984660571674085916001235775556167850089242082647999908620117837894038118852953791303670125161913911190956218612562016241319767733309516359970720242273803832495473620461623108154952861422481205901172552497763057574788924607233521294005573158687299857480307385904248227335051603107260283217721921682184621346776656680875452147322953191467414289058673954579988857076680446231738388406739374245812544026777553027125101155306039832871540436410730692572972065263433324049688093097262136599816322272312604944496391495334297697480795305272924667717262873450037112401660261511656898784065481380428525210111565611223636851717940747691268116609308692966229963829252084492104573284896541640728908191496856852642559905123596664808531199769745924045294494855468821300195757354943028591765990143567301476741793897403901591683453256344743635393836571669367159446415827359106533306938225551130281990618436806082558756185967234602695340451082893565838223543106401468932082095821471831679580981279005682234111461031932764922316055214038854304365644619363395272367823825770892243423451692702963901612807878800027449041875434813969080988687004290936464799623862871963039395820321936912444320441079691920312604529509279482084143423373016216488764971096341811423643205119050786082226804924892343347587511465025238846013161016959445447132133509619139255812580155603727174969894119418354848574236485274887484472469303324767174161375764255701514242960089147833641803353426591517349425500463776280684467123758375979137760053073335951851957795150931877601425780530340973459515929439462063932497530670879080065709837839588815298201608505770420485331441781397972578429066791010914525017266606074840866241860089513941516649504979434177742324286455728737292678514761892171093749004864169358012753958358871113122550592002974601023838388270374472962925911751388004210308699220757414188843247231701504797344837741979893613959150447128795122939096707839917705722584901290810812050208359367135355763658619472911507552889791162385473092646475380770522337154363645526742133022090199698783466280866949041431877448886057901177687780295613726399018447630181320417070757916462826372283176368350995077620867938909524119367758359465078593110558663687049753088527450937190799196049358703536717498702237099559733806981859516730149089405247352970833461272292452030508021456086126573778801434499026254879511799654983882118193980318361650568497412867866179997425112966030543099743878019693092795560239595231879256793780264679423124293772271757997213046389255402361695274868904111804258337017247318942031941530499596573283529880438005189501038456273088093691927171684007476640056734510448208564718184635170535862379673410249359121351679685234865374248776598406983137435349452167592781727133151032350518673942078668702049149996839496682052653034926514819956060393388233085307293682673626432561078101196604823115690699725994111148687690083361379243755730238545647350225219785246245783998509932621725124177590959963069663097888367424878041341843250919662076253559610747562473375453918613090431141159154951253781095364314648729117234058825162851933460134250311174730061339538787151157306368418447325901297397440050662726443747595548249191208724861057881555609930647960546133917562866592413190630916783905474087345736415342023413380339098820361478331926311663204486310745378990295179718297991999173188092709604393993091026039280975428554419934216328884676776701084631915354724956836443740062456036285860503520640759913419509377476465832667374235945296305587863548358031966586830636560948503773329639756044755272528470138660792211771837920408516120224279703780996586651740278069189056950023545363037637758513729939130561108627141833714962735985658151207176537399051789475156798003711343968969302580030355142001871770376206964782726740531508085501313789787625143887348531270428571967990290594926588955563170710681619526953957879385190770850396165125027385534576792271991215848644955701489436092616996591753469570239613229521945150994529105195853201580442276282175670689559949846197346582200545381793832123880164003466014556468082600673907997719933226795717010994929806056373923974784729243647007103389583015110612470219740060602709422022171391202236704777201932485975983600358018047973492804402612112344038691388846463543809404611799061540448211180828757506251728695000396288340020530259009660081285686127607321603930839920789854633118631687082604368736297732073256984335704559678781524365238465286750654797339601603167162511043883527010715202211392512666830583625926413866833466895365329549235224724787169981871109395264066983659994052108294169510437128545534255781789753839583126446233292167914661785475569383257681328920732921163573263707937542123197633220882455106221337717538674890579977291318675688434324361176499660143720800374199147691869331651341687664745443333478035417726972296611378370725510389153347747375638625305922818066215294281814214703365309752387416885653769639572417368305596292032118950087210379804884458952183441576978142494038072165846692512167350250759154481029721954858109401220115662405367086887950903667799366542323906259453752082907121933447783213756179424095775075755310894065580314274909215561687721574599605334819069068812201811746139794664000133206707622124551261216012486026497473228665131907944189435068892343705588505780580588129269331359397772065952614413572090825855463304743857625882271429654125579002284989726598850245729735026328981377588584544300891236152400122655720221774147788285637639625397924227879479819489666432645266118640836219691220543654976081138638136652624161973146323433604255996079356709053814485769736210201280883827867400669817350072412018292368986521255582246540019209595057057667268365122158763550326016301144076758242489055278008447920815624987981329566736904598195385053783824127716854482634125595735447326254777336586992448222376737009974754810349881771907208317883254948112029652006713790659046298744019410525687539656096042521373388875979489874582225319465771411986772666012202467424354630337791110076463384541661204756129079314999571517577166124472489679964658074563713647440395620737965808752476589706859572328622010396660791023742427176145927775944526474356931994759733339488466377626738495278112827841922103952292742761524086272925701515434404888035432838757642691463389714440609815717382737312420972586901254814040376195992087197061487736967810521033956243918386470993956277308286750201461397112412210035103936322316051980588974955603477174538372245827931312430779092062319482363031021300177109159284978549227291399124922004830800702165501199171637984764738773115172277493198544034468978670692064602124150841554561215196239454179716278226455667433014374282034884149365741532463946800383137427656483808647658738698835160232405378584147893135719323416315566499943166302168857467290722800695233281512090182155950399116796694045007275641504424570447375914685135334474428931247347175162563538660668254078166434867677468639530897135306353785325887264412455553428496456168551361361486355442224418658188463442418722913447774308016085912789682165598004797574783312805181920683443557539981000744314687880945031730936521982069041159954705867925046635553651129583016364602046578474756724156683485875979257404540978926477491149933433676929767707839570301940940097467220275765725723961810042491682902046374994537374273847388646227221727354184119691428430753674375562865795430129345643364641396232564021009559215517977280934909814296201137980186570266827917672198601153370810681943551542963101237516505807875719407566229431801504851520365405338222919126207101566274123528787962192640666257055401055417073251620388168669856189132293761402939965223340123234315711916474447218818109437071604785878139911619269781362307814345765566118008577788643444439920986788351484363879536511269503499384769179109681860518055926050864127557231257884097654537114042155631872040284347519366153017246069389405947890515050417816322344659757502266612078042759696592891239497151899938764684235322629957046624488209120897706273213453564460657333204659537548133630282188372290605045335065459870151368564608145167129136691743100061715761469835192483466593984749306481533537123390027486140012822455703094453296538272763566682834898536157604807029018448147489863096325798034391764328492533182135674328845991170925312048185518683191780305723659837070693632661293216731130664467036868656532913102995409014721193479509759599358652301195541066755968612162337082985152576149828752357931128674545190109683027196478822997934543388131640393559993821325027553343827156511881805756811898672340302179794162486148934587774119811926684115267666271964592290648630560373762651507005458148993980954132944811482744039678433290379815399830966293432710645032971500650562615523862108386852402543892268292452115661503406045084803777289857866603569935027584783342374015354822133231678068106438663826628306380758837379186379099951110026406830245049073933149794419772500654241172736953141773875530376975880491770251053099424590662323808026594854933977706898645765968680639247677260462396233004128788110713705795548477027462374668061208306279907342130752802679715962941092459136693126461997650290937259478618562409782729450953987130225080854854604183924110163727805664766683747996145835169504276089034266003123032153758892578567159011481827271269631153949413473650495980596241522869108086882093633072431781478832170555586109553149204889710499958209130660264316072631155287400801922386742745833526778214710910010459704471820428342954485480936683560108969112623999056984708264769390296181317478512467237933869087405086587910650179907379392957955736470910523892325746304886879523375448041288970522739735216551427471417997568608353410270926613333954428350796227271214515649476085132730234516097700654886898243057761957879543564798066589428784310818042428832025964200761848909766344534660525788017110885237270546696532651016793621662555101227565043378793037590605618729022324192309395675274133896804790787833008248638105147616660432218784400553017602159885415025723901193117145058780571395492707373729714201735235566453601631211755929259145157317236643535041827846866269426147715557124651680571017464516876740083995364444094555000984081670875243103315621052837045177477049989558056488902471473338928825192870428837588933508113496071925607831571428408156391559194255905417545583206992864742504547971314024822740358111180786702650981114897719043863665283145250792378576154663736459327219301977678670027574227356819249058498565570174377168626490742065736710833997280379725581030754151853114751593094550259293003452386127455410287453139892333178775963726027945790736281289609003785916866517222108527794281569952118081004187797272110237325987057770577349874757644837554561995396507677618886385744827531552432619169991612370468289086433600564511995002275091297983570076095721401331533630475192648644416821676665442238765288206027556952091692320179611184385258092725687522072433657688321898308219642073235672045396849888851539371738644030724468135615195901109967588448138622506113071872874705988977783137085530570005728731413426592936985939632511410825382894849232235551223564144152889258877721177727306252581858155305849736313766710193037016573955230844586666891501830845453279760075169034053368172462757972450246549899408739092896359373482230339462754279898418585187455581439408582361687521307981204765102679510428599728033396361403399084351853519151759075522878344674046846126260704826591336158857642145659959218091217217928822571503008699583335247000387774426536533197548217138987247845507763358582017253568667977118663810376062681978412629199340850804637028022618453651252183279809833043485590674960962380600598984462535350251880288317244031675427408240261228333694815239649413697463778021854263534335833311992344216092345557818194479805292563246541542566030346723530856718275286255609803682891606670254994878886026351636666014961814508648634677285884373960085848346179280405327910638575471938060115984466183387109523572876729722923841162521080911039877575271719092587696070192108893468940643588144616345112775589240586255873026768335377355489516149594983707492827138640101391650287126997624976392149945074602333970194923013662444564652254197526810358197461944841791094029496052214243855799781690431914439972114850782904896826757240068997486260882438481334259550517865385017697065574606812518795288133926760303100722070018065285650100722283168868387236630175946295155450702611891083085825599553980685806588282357224393412469524464630159251342155089644010498699908686730759723388811508333315217797519645178844816207227452199827772665385991340330873586099964017559157340889760587745978265045268594484839738909253000716076189362388246427834945244770634698792920321797850161478370597880182630819242078495811918963549614311727324639406096962048195893110719092509449757014391346249283864520170722539679906347067628980401594958145693415324712840769845575445688747900903423052144863088003881682915899766686883548764046131136050126340543694373920249582151421496469080541102177327515748652744673144798331724387402572203452933353741243770213922759893056981550797715502209133974614754244682684387163441971522272355507698690379224678755830390267634072412504141812953529443964392545764044994597538292337597426262415209188070053905947928979216316172106313529731256626826818865775497168671636703450941821741663303894931155478268880203904672598449912093839360629151979912706877529087701322887061890985936381800146407386274342917004038574115899486828315923927691140934827903963333250382049364799890818910944548724939903357765183326029904575222424239970574680178370068874224089642304500807043831131266602663794156060430443593060761138029783306938780293375072782798284641442646778758936749830403719456656185371339374463564502111262476927029867452535719357748432487005356848751652939016412735707127628360706804249380552067703360623370506671178295159171201248270407248327901771390909484777927877907604741908943564563690323925156821736287588166199392292868198259560442093670485347060949332956670514478593512757305747905436432695987704003853866557352900530594720918373974349950570121886671725178614230767109987192824008491820744148840957475492707091047709448860637125298918479996764688938848408710514458717807728557485243898417119781034898208929734922812501074061523402317627548087746143543145407499990499546418368527199085273611987388849602476989597089240002356643968967508904844837768266094889087478215265115843264897995376019959372681800050631899990920536903702286007515082994659267030458669948767242080837085209261238226105373864429874733837507433952969202720661046310269167006894078733190865554991954901568443195617660704357768097130710431756809021568972466567280362372510132902433091206283226750966907405719176932785065103126482957071014998464118505536675964988588251106197983485139928246363465235181778149320995875617917911564739946648084610746730729409449783093734819989830302392040577163445111355774486755322206025799454100143995882281194508342905666128686760351542761990168613376979004639461320951993616493425309794591666248694990335458271763228230109204715537097574148588555814011033472014423753809253272463209765350296354348467864389210180833506371808236463985549523398396664927792602684839106487426222913352904159601521137592657289002385719300764145730862949427739475598336087910117531555532522394988147494954440205048949013569774465835730995853143040622386599254327521847136025262289637139660845061713353410815702393013399924003085314649003910047034645552570048052241899674411059796298787110351513532164862357537644971085176092751681606987327463539227233090613101753546112071636095706103570179782849624880512676365987561146856534142937078610222313715939591570121013822159319130555526409241078840613220937976225528833874284274155359596909122852400847441917067063428558948739053847395187832352613690643315797772551279121803052698643007368537422506428517804541641493118613127745235491591416000834450785362551034301621465623542110487990579446259409892843015363936429191688507118476674051855551241567271213293418055940184441476764623069059864845063303921809029863878194044108559771059139359420583089687980279255219889669182548619054568524654811182302193252894402860743078713119084169046748843836568252802562173174445211070437493196447768795775483121961002823110676838337502591814677279245484150626718306876747941449504103273431851676200191542814236799882832663429467844247713601688734376334288872903730103278989061335769490527360490881929583288636088093450927681284072636652509115144896182322676342553418034545408048462182682424528742267169004612549478421442945306522431779162335214255841319466344239481096840058836404135779813623570545533185037521292591601344456962049213003828738963901747586623181971378569277968860563890309140471559638733847311419307883601909710447873594193747867403853794919798105820584941579842038439982198165255630617343039863112218624325516517297873883268516037587448867820858389971019810378731452482926546934896624057157312493851705894875230179209319411925553996064894980554705698014911874942682487586285887624323503435943536654036240971233022460256418929066506896301130699799330953411795732692303519672726654282702534272876838626169456345471509512840676023587422862297792181931690200267814825593422266128958798631566561844387913647108002177932229950648013261124138007083956725272485006161450284762428519137283342130468683243801769819720073288103499044690750466184776117468409441370377139156473900796949867737534102181870223271570502086944147531280548991036673897558834906690869545102210035076179661707659017408544248761300104238183682200946179868784998426821418375777237511340887027988941551551123805862780677628877835208797244411115658749727113180234110881076585447494185142755772090852730122192939489171378463325764339397252388543101450088804076300644472677426087050780226220023384412009044315887616862467128305156132939641246239796255259439662457462474388644504078266781561054548273560636927794966047702018530879749419117048866901962728058427912597095516778705723578861135573367268437231355266175020067957496203980000102227190381528350409170287410452747838531209845459823720609419888409366232495916505324365410001741923881893128174024691165946000500106206588359073554607506420520644418701163621689992430029209318483419386697844456425679687464612059893374946311565778010139467561365944018795522597177207705591517637629475131132118660899005687162218034748708420599284331239536629379230444912714451712180772426403125037541768042695965710974841134288225133919302757156811827470675213148050856977618170154595639541986772666624447479600881001005648664333359150250817599416017210091711285483788546289821116825981307159804771713020549829662765175878083166495449988986223305450822650594250477474366384507292237967586413846956739197047396847171917023926175422662343483688364476610979551144588815117083369822449202519181791859798764922247307124833997925450358764489082503497118993234052252099542543444373186283378996647576258499774132272584439833856529629391232932939083582512065694127573448867066647917409174894986007108738735376190604011854047902202398140885912200179854881954712036377687517120819327444919909330464880798053151640465068165493562311826984541832551802419987708609648991676559343134545320764796820909617792394107115239188370502478237209995731948239141026641101254359511340588404733753749671246613914857978467660872722691445619824575587045673911887213907706817736625594667586139823165440973110305107076662886397668008680634150399498748613437271366965697346627355693706272629971103013708336003646193534113414002933772594540610620111325713092031744919360813661948834168402113789720789400097482126949865597829131706274150603794427190678925654278110889284596083360383849387936333553931820407113313887776518849697395558812006436988663053593331989490208457732234090423960893085273987285064556375741061728108222264539877910315659011885502455533895211399464496458462994614841612799729801651876187897213126489929524243064732098856416865203983620092102397711607091379639766167359179293451911758309577529305068533266761803497682906422277227630320014487206804685288439027047789001974518727755757592211758112255176502945714310477056632081423857237934500661425766976255399717638933607036265322484817376034674515024032696277301066344248211454863934036839701532376167240531933254568525587280328393134446941639296131239008417049406080616352242762468952647261441638200909127334072894670501606311253456776643994699691261066459063252671456196098635998465645009650309938701356794316000785302390794981308819261546748098680791801278037001117225087517400590055313107053789383592588340530393469989818454421229317968815497524277406720363450878360962501384188789047411349281402926004035106958251663009694625519662451408279819110441854977660937004071827507112565406326887999934994792473361380740653152574574082108775306349201080096025345460809573623308027966563016940651101235637954094203568290234736105264499728742257859725401236392390411041121835898185350852122224707920115281972919443771507965795222912268841131598130918199409502559264587488378397653214401175277885962577667976917504489252764992486901477746848273850400827930612427806856573118123835182662439584774424560635455570984754463155007632194064829907049497796225767350714398209067658435959408354481228994983954226495163924159138640792652448188195254419817258527694613256055346664446252976288432392842609610448458509827689091855168205589391181964688195335640139809844538074330687925862998604444715514503461751669515424634910353775493969441953662400401943243254845311543157702793610179087379402257768682923974208846197322929278807232097501104219675821972312393863277311585099953961947802969166912610072512724020576071055409051213222864184791272082114034868541723243068091219637936970177727840571958341418252534319373042421441403773583802373328215660175193765862863957262316882618319358602184473996374794579498132932752486574295814185731929637704850842391045459772695132159018002809897944989876249921301094853908405537522935073063718441649861655061967802611739116050437320562314912612555113660966173586128149084283593221168044685886410697704372614113067354080861603508006682939868678371569081049735562667643164473296000171733285966869014061441717266545336147338329145465627608637475074513306414047243276889196444334237721172712112709351575820811713459287272518095948088978084436444422926868198244365627964957316763317917907554940912766608384775067796272899089652988956694633700374196928564876173107170251725624745468561868936016456874936213366179477742418425496819985005038159526557399067845899840119591688832966427550854206881255136254286769406589422762307581634279756115986498004474640461899024367639599753985825278642686826727753483455464026746974444110075991530469718255480189824636577738829401662268681282286800206504019063582129229206162584725403974096802970168146037444407804138891420275735365150525693354580683847372512895220652605490833727567973105744634895454231638796105265709439671100770472628697739475892709401362868944447043667442599383142516392035853759241058079014003719046238202470214860042843407888827707115077585652222625878807427711469303909361404144503993894282839670199927022976012107433015761161252358144616263023426948308852316601751498453298455616189231512525240070429618486776715086909969382732667751630619932710588209322635356931385131275108752549539296352455149140826216850064860684660866454814366511464960874100585627157707708987968958635673815316772012487848536947079544038310444003343016789552715074608197641649217163457445236607906155439941236044825798389354874081127771003647833864646776039366662345635592280118856418420609248137615590197674580389967171620837145707427670705337781504395986796761730295535673785132577602257867433346524418493039939686077878169138487914193003164603709641216256970843977223628313206078838568087233468539176254142754774268901770602384591570004132875859073492009546836590138032508677943989686345273658555547202855727739034067682666780182115963591617335032986453370736846179947930172927971575142877981264185691797081731335689557272681519445169953302875560938814539669029179925386512375433585069375373268138597370929794183197980225603495559092825477201767535495533913614383650651114351212520662306630460377762776111450775733678555191051184195433098382327266299516754287725800739634876087323423287149023663996916638987632833383731634989999176387922231567899057057066841162883708589606333451202649272037917478343636912854398088728051622240051484910496554803655891499612613269051653844792926757952633967144202249174384235868332580714868794317448143555195592292456763683191467976421388116180999307559991986763559058823801163960417885776211126408299120428853549929915491457471195876788797655625158661257476268982831603478813522886035239214585301882043099412164505203873874520986984091381692359478146272469479809154873540675007940671714727699600146307135140303601895360144468079544817776158976586496996612015212894054988363773445471050582359716335869515525500251841451687560711377033232070994086487726077481511984716404835145743306291146576198267748499002200729038031381383780739259554067542235224084210914963950686171343042511436838521765176990503535065849000576142367736635997819936951551703046283760380678319477071416011661306614374431315873179378960910333208187219166618647489533230025939114490345404330471449960575034128735224653152847757231450164448803637653482415227724897525233411937254757917002655145943181558167153091294818407407802880773042873647164292043364240868915080702267741680621977930812866129924986236855990321855681102691057505719514238141685602682103663812800628870508564402573065156797393269067590290012994515856216282248359553995865706430420668313282738314735468460185148444651656592460651362054472073466851628174649591379135957973275699096818845396941568576641908746298152554981493336796409135921885608149249799592577448564191443706667139098844934523877017163086815771577143371618911672141758367005212064411598380094134509364249437778009438812143224258067027040286096842839174968373277170166010571360334322636833525057210933569777342219048190609814916638470874552782418935438986103588994643973185223469753318860537327078626105518252897359999325275733196216055170395915679090642876707910064122327570529312144382732105070665785865186474949128613893615170474212323154492733318270724514024266840551840181419620942588467091084125178355144457267175253439143062584352966828922549812972171652618841200065602033645579529865932501250582220042488258795762735335303706085406798241940941363620431054186494499395194293950835903515459153534144388909471371687085453511023362990874065611375738753290468772864064089302625647962735069979634474719778221260592982399373237565761284119249389461552893531353144258467162729485988141996369571101538922260869193050083032997217563191097723414008309986074157646969896343384881160802864961234418585539928161340646724410713003814962591429514807361000218724621695926327878548677773523088001018840063903416613266567798353815062285259260550601885110572821534526699595794875008447635733809892879089786843750802072039444987016809305433099056675948771941700573948122160227431821063186148453939420935874504026012140921358162073036068272085185577193108579212068096062545285550969147442957194108389235666104220493591983665940434019643419480916801946517889847740269126195819154284595836736550613523846290696953786858534098567764760556709223627733582264916088629252831097203703530520348119133812111042034205489383610981557924434801833047414254619724436439480992863578646045226691172221956033457040445549277203543623578600899728087093195023513565073143383520917495448807640728626486290125075448506030847478674439022730842574781326252014092062577748910960329549694213161755523797061362375434062515329629061897957908301970745686251182487320226709002184875656362489240078512083364922632724273633905576577530422113098791688116809702988851898126909940416326184525671078286008628671461543603818394820722378481929026820563469111900561420735352029794041698529023753627261727285294009925960597156319800054478427082624734808998012102894555493066550275865513418682354026175986896133544333773874717724841349559846787664743929424169708406954358539598358420372951644825621929849549659133994730697036277791339820026551012110654153108825389164636423351723808227274738449072901585680096765792565725346117386119171091379112599310948079030339456950650016555293249930128224127661701251654464624626956069051953457754312856101624872065430548907885273648726632388787010773691720327520753497035127474300888942916785414704758160828115918963611031097518238465215050646721825152876813661760126754892009649110218147062827027958728419642129258240546020411295708884927701616816512247249527470583412467762444077840861557021079974274835617008164481413175896055722950835748952980711696545390838321881940198841443816961039825828411341954589930691675528032389989521651586392890250028510357220115109837632825340531028442476431828051033076325438615937181775004654516348986773519659502813326354259989045699307707916391318419167111897929644148878931727775182410117520043764187459285675980429326172246671592782357295523458319840558055876484806403464713260787291323739351184370091985643379785032830894414950882463285236185974750624779529541027755985370402599386223478544534599121275147360131465086556916678159235213227035316882901945832324149581926184863147107158725883760575920245469112090882042455483521479242647555380759073161024884763753910831046675056533763767277789962718819929628572485150160290478619814070439745602134977252249844891218382739703082665390533821723932957825136652138437093229776806486065178281573862967377630238295589038670660857594523837918141019970734712969926145629836145670583624735248518975028122613520439644436246943641254288044560198285287027948471295825660217009009684139848047927455755555101180963217234264343501197320049528650595177110526362132613429828147658571867183298046561171798200598988610596410989907842773107359444184723497907445476293569974557918156121791278970231781359496132876723460843957544154049095392727429057097814854018377020810683091645981391007816089040836982223060515530810290284799334663014978655202158697706367658039778972733366335976199949260323087979005855955421309983249440651989184044290080554069977217710470622308861587887772395810015165413506999874907017795485124243907364160426125829278566846796293048472553784921880234159454102146349563087954153098323087039583348150869373273674182748083282467811249977696591793181103842089809546651163966696226402506958658783153601136860195932797959537727334332246058429431042050303150064883574270180466105218582634201933341228427201730004119497969680091055290241011856346065188790980433777027950345691310586216847456850528763668083537627704179734509905984762524705338302388031926602239132829264183843788404834526515553213476824787836107198888607413383614944304701014565855725129059997827722188516739766384940431407409108680960673555461545666051604808929821782329552260356135698461848254219930298628297566826425117810223321694002311437494100528301288873233433270374724450557455366560719678621995873455425915672748474779634126204121782628403099058213847087316845594871272751483207923783911721660889431252890430271150085311858817763724034480624751276742864310986755070820699904561873414644155774188653774874896624079094525543215985645513658738955712872580971960197283320852936633244931660412020298405213950389869957532099798847740328887233948968243675989268339567695464826751162025664010200047470106141586153416064594077099533383907372818538560520518520666230775204403363118881473340494999586894370012614124783114343109727802356383511075046050036055194639839746370065899789720096222542337239167059262550980778779179485640492828099760994803209339036822320009906658140550446196305209480387598103965605354817512090907727836337914955419523248342682600670300178538351383753858847193309019623555773632108396941110327275324977585993286888854166135648466507900608002298935057044227698228714859779835752800010262461968275017371622442926165750764163534478699182362475665407789672017327406094116463128255336401501260434458262981154803453828875128559192723418760599790129085660096997882477226250138567396403785081007218677156520308527174829226446069837544785065469114949555275833770076561775569812427299904305764105580933049442193983973591473207703201562275110967434161085103056888081285647751265382434305440850248445982495842561344517541008851165190260464865392557652870784159113995444367866991357256795346387311175243056866332349402460782316855451607306373510180342521163462513784893857868107234746368442888011863687374771560349835534464650359747904621022516083987080859919813658740435906388686782646410509897424873564457852970156097491267992744475280326808253971244739973258932357862910146710003287716471955851055592410965528597629422734686649051347189689276199213635825441286069051657374776524885928880351142299782353461029075656117072932355853049215319257651859061108811811778048083850670035313356391867645931539746019569192853470718893361183330520651431623871863410924019027448266301308329969448397665170802627153548859814195056878276547111183443110911926658140857610454609603453965848705798296547338623175966528991809713347863710608077242371050070991014062200105280600174180747925627938302330093581895948643465835236001828500742544239031032808225310070988092917559210876569983834707913523485095413155880692320750730943358085729730515095900689111257337057477771373629398004089442868156262371627503762578008473764324283373130896602465620226210354803710583293150223027895604635557932206287568016158739336564915056460586013993033857338488472078160310938587882240941928623018815368325244526712511085182870829776667874514468885067587311835994154249904807385729739309996349288857303263900370720157429241224069749808282603470956648482177298866072013662233947778821846014530521648965148644784238530883357101571365932723222711558699066235514197940398246896882528480221400629532117811334091201066003182939106853813845156171439075943640465336607261674510557008782542866256845707735181143518470881941480666226974593025152197176818480521120395807922575175084711487691855375040687918133741923661716011465377962616776658218237864137031946237242790817134919151340714327424570359672707597438363436487406460873192361421776407440463965950013321536936073730085342522978259407522123499132273048574078015436011707768002591228047168974881946111914901940662906003664820626965749706802221788863268013735002471587671505306877858347162013002019533127166815697101623475217799080672463196871874408878740743928429764267817188367868322388754745270075205468670660208346427722817356162374219545741660142555229756025707467364107909446751334015533703988066617725804688959680507953822272158859783783218707875262041185000607024495170805469671347413737043715035120058604827055862580466654479110636731204395435781399088774569080625589090282678739237501126111264784799625990609491428149560403578736395742892038607394137870249189448612887451308903689220008641465023348548828867399186117889278878153616698134332321479550862580953883708321251609814883040482681559856196187777798184319777084006053183741129229546087034055318183720197623554604710880922661174591159108371246454501604511802309986611771683200803460564243527623263038115277180841705264643594137520889680960862158395257610752183778387576770284493167265243958358223752037982689991044191163783027418575966484708776942934374972783382103512218873348870558603238445238942343078154599612222495773780067697886565697182865343357490576702912159967553197484240685185276502856405973539387339074772245884369325116853148730940678427887349814050876398371251993566919955481801652518104234257718874241933832931638775031795835582254659714856286224730914391002921918100670887688728500283545819159246380587403559747750825303917613803654378192267199226591310346167573466627448555671588364703894422396940034252549934951049299344232256304438837420085722451984622900466711123322203624316153622597037486306742712910779384685401536672710519017766132309709028438438322562989239148783481501597952455571198250612222768326254624923558938295663638523508053437185270024617319607241660623093178947820616860299504163163307544934981868563141525330720731630805622585852620822400263347161446992074754786793248448645926545876736473000696362537468412356669829688510549357132373993546810669532242345943831547658742637284469296680261497054401807814607860641806233751178641260617600742546148748993264295761783102977132275405241267817758204521882168128907923727505576131576597447303924424283457089225440171701376913608797975010946804016788814401509398252246471398622473203259684211383542453409101986384670600641133967141821816183459696767070989219638794579695581230323403312683738342031923713388066403074840608334265496026537065909047178089966140502229097908928327568946986155788574520349574366706212219947974478816334775932630716524707603488107513120219635687501221651008180898324128349105074942008671450815889067496885342921254401570447901446890869834657262986488317522112277158037843691984134627832883623821083255743301827488449074560827579605614127289317755057070053291871737961482555420534541800445706348810764570809617844850611218424615882209107861864442655759506607506552159821462026501648173759475029887320764031412043942737549643304477178371933913783120094398371539651318594837135994338703192833542930632314420779803122746980837080280234836061474568808190119971081774679835192518858205762934589595335633880186893166451031249364994027233431845763015296697639607821468600037929801278795458032777279289763393029113596833461354125223389794824847123259907857786730070378956746816933204777035347378453725517025157974287911460596915476788308192088905128115228975236690988225312339801889359158047650931598890439285042287990727080990528658125989429059254290921540369939642762537318580722685453027445546581507729089744634616140129798427492090300258288171382398157679752074926802840857190210828412426606859749000096702496771861473402400723423366937453929679147709547554442900281755819533354345375665867660973945659677037018482558779309544387974796135394070639409715813630986745958234747489990432006805139849954310584415736187026862454524669435521589685600148725478047400400947648657842664386680948505177891584421181407375722991648114334951682248683789717760971247518268660310542565127850560026561319354505616570765242791741114362279206015728171083370965032546790207909810741884636911935504030277147980008237092336647710982342811252065857224527915897760601359378794772685698371553090324054727504169872285750508733726141725398562019919073796909619527154791937762159891052415265902607190254561479643030621314889155722384040979941876158075027513027365136305333755296787396151722889390167202923064336733304464012391573053289504159756367962066511401336371174945940361896006329786927752685321370736750332110940035251291507009165281799045488651644041157809936118912394233028643919016045537953711836249374262371610861358688875408891508006866939775492654849598361006304227131501901596781697371367546830174105209299329224249187434989158724405789584919830563694498970939281829489555400359169531871892468864636151362738193649522719642193483762823635723510471495707195317956602115443906655298157744793226880872979373293833150828213321130680061154522896395590814099040934262540529513804761674072449026533911233458509492181222467678603419642586391511859036963143532302393193082568991568232176102700965657574174867428480226988733480511379748623785249999577963998189444671729868702986802695710859529935552392017733701613247959500876128009026968162589520476897375101547221354543018271697814725572271856910034259517582992246108314387022441580485033766683135368730446960106601030118902072611540078899378458005345544163540243555280062106826294943184815990103946876612790839679944448562428973282464883649587828407471334375485878647373840219851364073797326817183008075059655675474733654838824441363095383578962500628686015553122866247295181524750200107740022185656717910538280601255397926669477669998628079298244303836490355196407967668399844928411362107423840336477551606422886309649728704672171227938086549742737538884921972580817763598552255097021993313522705734979407649585279099809229435204692536951174063789216404316424161730141272096810076530426957427033584354317807314066365165331565693091869804037836547344302385852184337282584236026215681107191912434930864387248004217565931775353393561824543748694121053652764080404224827832198740070225100307889513816636342250037268219232243046603267165097288803165665129312241402877550167110847206199023422562088443668752316283315787425768906222594898136236528269830883801846692716302367145787567535957271457088121683479271825677128643859393505124166146300609961370273131197659899455813362461973706437920809260943642612727678001217900523676299012890352264674468595604297015448055030267035037887843045456211359565180251188955135054371136116856957236756565649149600681852280668412909821865742763455951921455874762169611148245198028825561693067121988714432410308055141936522214501805756081809763110420023207595726841465749821124919640286188479913323924625457527781867125701368545080608861215566179731670052880844258475397210683254418143705385618740824271195726534757648106154227136354705070235206797750284785341625864322765587068374558830053524600671184402877508591280698353368355317876474353276723284712587306295637059412780239419893404140133584850174591360098023008597618594599449730725315851445479671383081250478893497199716518345138810125618335936840766886937948713721676532102404944857361756461995923448195465345300419810536977276304128901640073553516692057722360931780462570147904207989285213003868602326288362261024087282331235464517258836968834310521306048595582220453498743528104958138168563625488389189007445961586307654118862699803702564212302052539343493252421338639040250077314590503491671577771725005387897799190960483013119954698500127906458754708813105738535971705419962073304794006690379194023401902087575028284661812771840847370014668875369774849891885320536065008675034980391985820169935888137405743355948312997312890238548403793180629699275684477158205782702002067380574811647898795945781224360611267975898967587043136267737153004561260201875102950275020948156937025725912194164364400176304510832838246785318210777982068544768014527863398182770699576808120955050552169840527980282009492858987242138100077015945991039300368478045137388906019784681062483905983045770706468341345244080915034725485043978627629924432918376787501005232422966078089929607659036541227060009340424476384351016321688509186003935864119648978751267720915104268185473724128214696081525486834217571314913236357830681240761886686756478327967894882985006509502500841801843558137866284537033827594063653667969663153103531786087213714932161782626615876605608136139664397393550577256306790109567274230646048758015432978657049310743367338902044226775096344554699083138142792198744820915367508868265206556568692534563871597193453698579903028695782142344668199396001373009129057424824850710559008507382958609959338551497080801433318292197598259352177178184663441245568294035099342550951249845821913232196729454999451604997527933144608870985916995803730575310643861797168209567581894562762539957006498816450690567304671718908656113062394815929100528938285559170296768953977316808630271190139040887548458848438789003751866326389255855379446831657064182228835884631447417508936977713458686786273333924383967678759746837698593264204524681458832404257729671693268191718419619320308557926856544165734372969855572003919799049268348897455481797038164598067690347683267962127026609237319735933705889709305401863706582117561954218009797978368553904970290393468034170937751703266583852255910592677775185051839023644277967694239211300250932732480127901067836255723231462698562782640498017498626482402395696793618911947323653268948759202189175301677483209061971038393913852555396423551234488050663758579559478231928748924818410397155282395563068073363409225186955235134068907746688042458849559000901173239113501879655529723719369176469786493486003066606828416979533916795501249333979317804398299152758322029974391594352155685329289800002982938347653537179389233747956720999660556265371631786204492136783517240698769346503294486918315150404403509756808748707816601605497509635808436663577715016977684527904616638211404958838149708003193601143176763836989945325900365297353064404894567294516235637163308903738214912274845505235503249325532829591243918682305586403099319545691933701361483200598465644319550288824471302352917802906433176394587255706178850152311669866546509698414277546977591311301665691305448454623543135325969876505261064201003977149383673270778396732990038758997945563339799296889054729366983798962009308033829246330957146759396807455211413567366933794704767309326596593519750197634933499896828625167432058632576049423565928868318561939842994457013328177079176718050019596169241601392389480935441996293733649620028452639071544556687862967617205387233556656487587594260484587616707913961528251367367720967789331403872950011871760305347461990642915079055826595620527968831556428345263907600570176431268253353947042329795488253380656828899179266562032150384633221164069196226585738390198173729055263865665950875626207132813881290984056131148582874869286131486529726209058156829076802024088388579095002912382895982388996078532453127986368848876212359242666317665469824460585430359950417147956731241905568788827784124289111447359729067716961113597546180130114883680206295763176142438716208042826177080942401372437650872880443192681791923978157907941241837685763589001499964088947791662572061741073473272361378411939987498748970570943455772033798206609680504658106681594464823428077740140044049179881736626911488484448868743507395980595998847605526006331381265191485038615734956711299792385054504178644322524156784233342837019475313333642736533399144488600789884871605207234304586480216477538765644825517967575700004766196233733576330841271354148274823201441280009439099772784647068240758131774944971694577671022611046332228275095377794633312911203696443464296324508634210430078137603667122464950995073834761768947750067574124285018240917607880231350670750363725811238499086425524046279049822564197777932230711463990373476250922100528563783600656500733741673428179992444377327940748529034435318517310943362364319029456208603024595756447901951645331874755504234720800796463238970040811353333696353751388426732633523663347255932112536170502014868788163072905132429512561669993962759866510184467172709268387993702273296696099638111499712426428650259626698314114222790847611938239101032267945682523142935924316507391193752667415257889252776107048559125191230173341438973802384511557353172296965791159018140099429120723096088621355995463930866839666299846927162379319409789546337237584762958065232913596912844387107444663869016572672142060893501868081502362756403835906561148206086544586749481477858930085333836153221667948617774936667000664059806999452469688305386062098294373509930778689649715855754149126761132794513138407616319674362083054861352817723298746374983368213261317335785482456458348610582655970256478286699182954627248279366131088203463949237420551728463426318783601828665440203348236921215307768757518799743807786092968952460355072570040113254763135873035500955678592209016859218172804951070008662872130895417151142820117002213117387732520586424074935865564992324920537460914566222124843605444183588581745324378753297282895891589241545428218035160153114516621902531639446997110738986655017938825803607094475575856666977987860210058937268630809295908557057651856042748102007006578014941291108251011761962308866069714316244790377051555279825140479563775430024193070728824896784527128764816588100034736165734703712917633253994224125356456677078850233021394745168762694049235745921134788008729990921448583731972812152925354564176194375215978061365582506446415388391390708266304092485610707583980199614678200849912989974096789371969323939309792380999876609204014317772624223517558963879181563636136403292240540506239863098257782562991563164937856553547572487290209046146995227862939119328124038267822123570430564113036894668361000593861871620833523650063713937866378512852026336695399606245178476982898739107472020230163216310734006673849755697398271374017816346963879940395198984702836176172928501530468924115043882040521449064508541019987650638697085128268280207524009473514132158398703796451163663038593648918467186895754931409471281351562489331526884417697721667467123819219052103091905394413623078734671569839901173022743376389789005194251145316187060338413958613689086796617020182436905333297868644778276049477291030131227921531753265121522485242672756574766410322593421670216194948942391736596074612930843466361081769679559142323393295566195771018340814982712563955779167228507943066091454922588417297753478883647483948913839671147870648373362417074406645812600724977357441951745336096717544938670757341264550159967052514531730893747063239310819199284990875813498851107542844734401072686576929284191425782728127761963356533073982322074300051563827379279760424094095798549490210406540437420928732520644671077623983058094505854137915281207571294619003546429495591527318258370539528209708788619366305413540977747424219955603103695033998316269860291478578031665781812110437837674262499185489176262590191833033176728024121552341014218742810297717568436673774486776252833667902795606613307848265674005802746390642210796397217221980887377062032848380802647832398978045140411259365217693168342499051217727678577507935327973408523352631263443337535800853916545202268327075710972007803023801029183374530660171165820159914383702082236866394314148895367603016197783326262382771290201640091844541294715113745065231003258423371551943859413232046213353738546968783389123340075304112328269246851795969476874743737735450828362861008502567443390908946107416195704100568840344250628869773557328088596419689979491180440470418803541881049957098123474192460602109852252062132661890271074284598998056294005916721595042962467762509684934726623734990574477474460647301996406324103383659363510906775346340079386521913342823971061993200893035921005018157511769052964892176212929684661079445682052349047821016506005866123908862880362087497026175006738143167263844379921449305385686625925037500811806987631793409529441865790997394956750798468223480888547378487026518462254448394957104712907211381371631570281797368848616483058161467193761888200983649847676763007631515749375913404614047304084505258255317784537194311606276527232113931323387930070297404132993490412102376644744126980385674917000265707635530543610689270754262617580956557552485613637047956249169841882859532344125730526822990097898385592494170114846199291404289330841786444922303469076085481154334809664521253033481696801148708647084667409202591714950194204258980967888466259494396861655418198746584740686227318645286844016459431956554488950948807063397362088068667001934278395136671838927237819340430047802158563377627483213267745832076195888191816232230787998749906810512492260911837906955729952964216738884425909416724971815334331999839758148116523672244209442264618191656572296000108666386747101685422597022207622575288053246898642970534191056084144754798091399372842535806428696031611852571750342046962842635458480384034553821757080489106931472923708334901638668531612627722207366560655974553074049470023445541328862195989849817999543921265947981927193206999751397307881711256239165487995208430963237651775817897902664678267478632924526353570848984295117979243343694683548076842792423712569636311270700747535016826981991826440346453402212174083572086367136014901660537863885034347962785146950157874103168931616395273744120809346114058231856072520728109046331489103619579583106800638842431818715918715377561513639585619958968638615433691333867990337869948650898692511189251606198794208322974722802607751806600619066882253115878503116628259277914931619393340122791431013053411213211639974422422873750441386146228534537799104824016847252270268533062128646716434962936212102214892754073318017804209708027902886015815296376385061839786374703802188384352146687507876222248228867144111435025570984962327351501341807917998525389957163235497079730890589417295434304521216074149403208566498492293666294852679480400760473058575923130212557827169830492109771001678564058902568832222849060649302472606722111612367052958799398518463852189619057989155490986259729129262364926146258766050386202933290292587117124974347687595672610866182719903220825737376260920972755425060529881671257545002416435099661773032301983886174793435221706969962012087699610552888020256219854823662612627156585217822148250536747000096912442970279978789725364833418115207735873688546811531042802033662885996384196502365429885362131518530123323630277525047682051833129564440127749365188626452657747498983262028754869008760140905620949818347719094379110336977568884942303161331532234074959111768895042270579091624096238269435105983147294589570697083354762087859844196463912586261244613304636393469682587893157542103435457311730624363162188674771498846857522114159126452061981384091082652673318523936253699982812781487178540385321840216023003455022469362657306995838612783773967621748502327083542142180686174911580279853712092120889642363504834666730994704088766613672683163150217074853269053535160523591021209078457970697738611187662361621457607046522773026928901976056137632228942567619488193075613607703707883092485445868634387783166642382629697453491845246219849558205673393440381635530600740118211983766565773494117284459998540746893638204560783698371469244643758408686892509911528299259354488517426476439948645300809167652500621027763884835027961969587342555500586814655021313126581872629922128181243070433106090151761460346482208171434142380397976652746824113943080989549735431393563590354194706691999204230491102035834368520648962932404093775490314582701431965231549812063829261544021628202450990167908970287103952407147492470274712936427877208642200670108485393656043120541013715148877655324100299693494236850019856717699873310506483499737443252833789199762974678805413882334549125249343570541624147092033826856330845737239329352549205398358506830709643787849696080935530790845103742816605666641445177598487066128977011510273082310655462009608494233618566144434870696087016099926549480377864616683434110405498809217470587940895497611951465367626403558781047692720870304397753351524403068024598488969619510144626802145015366312234128689252566377742437543710925307919575482798826610934523530805752629704020139780610752629593852742249507656410032417104947288468123325453066323483342423615170305448088732155939429380943458355499212944047988280122012603117224935905369212265469938473456314530689064350761589529505892983414595109694800848951039328701913698524880730140950863276114674234967311935257964646361230960041758657821296390246059036494205740271709008725011411884254801487856025377083613959578375172407231973897348200650568138368729196568585519107334791677936545211835208248825313667130057843852575113148681795882204499652792446272387783724589763170328818688519771808850791366712357061064217842442840944375469952972635768382861242276955144667974594029302945091913911497698808178296246460422681737122880327285535527743391470455350584719748571929052127512290132685248191667424513133527317603965696959272554068065929114312768873627270233869980323109566805983337195073500568938500380957325319633788330361862408691320246330950079204367694341933672202631162244378252185902218762523467842235588023634613530887660015396307607471485670083902048950415826523332767875608120498560895035450847421162545620401304942387716024782021413483217646641832476937793375052775979037147660095525642864468786379299302383469531316918037395665566544871015668822209991918834027477178781520136563787979033779635592509812560017711636707854070251050654364796932191127808074460625706718057446657348430255184524696885901607322003306329672084723334549914912086212578230007524658748137020194180785711063141243737311524763309564854065411179807135847250470876611296381749458413262621960055458979346368464119409275027551114877332949661246052044587490964778385611096994883337954376879575653091375480884864219017093018374404893803396574852307440978345468827348745939624975345302562382877814008870809363419549219104686227426718307206034021741111387704544635004881969562624464350536400872740359235296286889550481323720407594792694017673704454185331843340912291301666714282097067308199385286770234462868200725947849109253123554302720056206540445584406203298736913387681675638005221806379975258619174656128052739343328748650745167836953360564239847144073394153506687589657749863042499051253014650115808281430789484910757788966809378763183156278938118845170619376826303073795353585912541740280257631390351852593166443670600796336723128688361669315355303775114288200809433970444617516746296564008798847235286777584905276572136249938296978989187213602539363404266023668622237932594314919611764271020317341974926001403300235984097902482208446337060069021643142581578374978394029887123239693023709799913148239962091452567025838089073741967738081009867859265946169315615834624544889827109273913137188092664340297160470657313571438153634242669006090214344923292627848118138093292438213430791689685273565523557726013154593368337440130838915104242528241528672078464202921845792782313308155661365748888128070051946258577436446039163010938619710710878311881077796501807334103632111033348866187500373380748532266652953824204418761289081906904923139313164755043550095531543874738398845396883320250628512872822120973125814576206841880915466290699111226154547427400031074764057764016070858663719948860969685407364870758693668869916358024859782179996514990723606006503518962878002356322985902278343425937913113785186443923703266939186740807656560411467032009315945586222758971069495659341225351811716612133859025577661414914821750061939558306997837223364767368699658750821449456019446380169442442146426457420476026162795457332352310474878252231749941045146138226669509830860778198706606511750333276604024272564909103089434905932130343608442841189207970806522093018416592424745244671646250241285897260736109119786907362383009642831870051533479025391018841362208489285907423964878726229760748678350534947771389688371134839201508243348019191949620265800341385351628981285220036900197569056031085076405989974887603465425427806793030510642576421358212289501145236248328280574724748975540056895265702287117316169382613098435224152202559794251446606380862044289354831516104412731721948155210550975770883149398382218264915959162552647829701604726716419370011096763812439496506442889786845198481173159988312920853740565780770217753438375547712613770817188407297059363601708516216147788605556309874644119476546093480640872662013175147102580715178730994724966260564005266173495153399626658788198480467050460971927023352978529308475860814520060276831016017036307670941903534705662756569515314369306495130589813341217040021572159365052070572909924764007816748806793896748271768611078102700578079632409790282803102239503558145790470379217400480156558510180597892781767934822982356079527214480381820679391601620521499237573614110572448220817880127212656436156866332246378762844587055182036687657343653158295571600320230444213783727090705912246325858307178973031063307210503668054760236080844030707506671295568372631938726358205014672221800626480708495800565859708452100400705325947711518813949002265790063436251607611859464888701949516742412073657798591237719102173120669723302667259493318426815222704071620949415312512310868550322979495447214878436173057776962025117453202823899390205496257150808113650199004677974904115760457110703556805292939769607602083055579647429124470669829668555792106969797274148557332798600492235264114306231615181152143321478776810150183693569606279286267664893634659097001996620025069158497392896307904632024946489085578575602816091157347090163564518197812127718570622238597461055135541906031740281755795110138715349322020525873023491340539671706726505210234556544230005843656091818066143986667608750437787639224115870555985327074259512874099834793841713002430534971150550716857200658642440681702755817574857098485233463351920778042516763701090762341096011099488871038868999993679818870648714700770622037501212572494294565946783503597758200015398476714947115105353283599876501981977704438316955656178860254125091813260878236664749531197349973938249386338606623443897572593411090686090836535176804660172058508922069400500982546105233048706383769784291519794159923874429797927724466511104528800405410666179113430296061893658023403834970833410223556496048365983970670825916035441022192035650227944425210234482078746117409639621630007123136460425636395427750284027828543569754101333391425983566249589737274109940039226319957978633412407817967742802930331620420653761458542375051100633712373166221382625884587834791397481279087919013166159958007329156405010889378228062682189750417789382547341371812654264462898512634088913354189771225847208557919873484874963959833164764011773514210221410179320026894972686972040077763227573345683850202580417366718491777208386748997985970394192911548015739282690862359103296083633649532901346720394945740181792227100727637958165338941463371185031044966097841540894266154693399038557904237911384014587300826307070767547909544153126524680622076600960135576480952614579538942262278962540039008893168017601652863494185807093809380526501127549772456009451995990321626952216830592341366059862153801076528147425739013315942637233416702508451671653851673927358913059367806545244774267333894007024357304531387502101154271400303142524199945563344677332160452807854934708665500541884700729717100809983462262318811390942642658196495965658636862433080232512790199196237337022956432110672734616222439532471196893415958642550011911435519316772776336055886995333100180448152765692334099218215105016076492971639621074002900243741067529457040889038356103719452093660104258535623606001522806312257101092681819197914919638078010826522932345839261522817537268720860059266645947898724719934647267975761142839645302578708239256680455429477363178023488587901094985635866798252790636491758583900381418369627007539962143207435133142204843287572035801292967725049168363939854915702885628880500009234421001793387316856660875233975194509650791677066435403143308261730757157051600494028305087916721767230557387919504648698554507218162540175971236120545181799141380170049328274595365379653458064941808919787598304072585211068905527480933860490228180529731440031624088501904600595509403870382719580071849027859406975580635387906521263967270023040559090157824693795536897586838622952869146430079875074755689550490315578866529123117249873157477758803536063817350696637039396662452972628121870535790801869443029505423074391387145853264143110209837094972599382619027653622579959006314276556496535404719540058897765924435191062438852660208083100835986730493434936087459566911735476688459239681724334057304482895218763506195835988183290153618357180371150024981244908354816422181496024224824836752431571925611625543779841621993677978854579559800716641219615347038507627241552315403402066194713675434269584180222169885272806025214266288770961509819540679778278554930531321636724908679373270528716473890006139082570611678182905394237744054179458013780461648627104026879201766689499066007437186920422345820387843619164193544431439444930938067920693370868893435648500363315221734399368346626244496013487599053282177977379771830939047464237001272878435223107629290014619292494976481546394329566618446577485662614178992263729258240091576365242043484801283705711596112884258697613811208455963424928233718617621408183339568085391808254954468981932858091416345685582371142979387599317587754131422865165558094271435051019862002483738028235365657361890304586018974111197884002920743595895926419439028417348244908528071636435335154137780838691235467854406432029190775659846177721744405750036657485040713532421595431190555525134526661735958023371743186491781384045179646173832765438846520770598583411636570617233916719307102006135304439417914723238406036909757540176601720047952901283668187184855056007535662468696820537752754089693944691472975232923424550601377513061497696368296809441813003467515625875245991949449679943011467824995004729767928883240339714276212087535780176158258294975611538561830470728367300653716538525101472677789550223957410436635124863380922546721453407076927590817079870344331350914534731343605366493817412871598310308967672147838420201473264441463007816536122482298340115180593333913062063026260290226200187924871353288490627913465440845139707421147238410018196176863435737246438176499749263207074449771893201163412742034345072481793501332963467313847054345423782109890858349347953491081668310575165290032198296310077133845613990693047537922840703055496174095085384220186863989434539681173463130167018222309326801791239638933031840388585917021686415783696237952990984190093474554743217570322281216234276124570053594456916831150046456603128141106130005428294139283678944964446323203873875263684882277517397583160808971973840321587455880864198047988815273221424776762655680046305917388082950056068208808839434603374954731330001484929514808852475636235898068147542003197591883680561664171241797673457311344877441023616573641453696686671202955234295984958966310192432815677923771046029315156970053920058504898502693179818838140564534765134853611784909506622233708873074956763365432955553434422210064636532745350953546874789160043995537790098617160272377407590195392974066249747617652404702236119445239685556695904173710136012512580221072293640883381857936921641143375667326624505015145853309941688221199258182436270660870337110899561997046059741323109566097673312050195715219861090689899410607519342802634447871377614359079095802991487800487807359471554855537562816364377154170871509494038139091669803190132144043989314108365884290383625522008130222733856015857808769354988671258168076564541482144408967034705700375827170870342296054772009754175442594634212783709794250562940887131573449283232342615010054599507496811545157561709046431349735698734598411330788798626091178211423205853918872830944862938447891767218480204132067701957507431762367445417728104839174973992770435290771790166793500425318674044714523360983960020040605026457121756933235350210286995407173314990002309902966019134047714011048044259249965164861545829713662462747710488937119210888588042858857796066546488791081591793503211469447510377164173625219183516462954272191710428977160213014566037984379049936603689839052923450736061079476393581398827115197696937716179680231438831348258053325895576351829036704203433081256709430048622941314039735733728763392552384436135930836017283452368219257402970297386156157870874060119034025301319051354306411596961271232706290959736131542437944720261453710648114552876971366650780391043760563533070487095876509641133186530980222186654248923247324871419239724357378575921269423885295288359571140079374838428503413586255050020247833299612744524169604347375221577668564842321865959974945746240678982792607920362976885736384131200573541120976028724706917561503573306395531761254336704345141662272190518692845305658755084158978776583919940576632832784018461271210945418895191725694346012637990716335223554064105055519509268295493143917767683905843688222957172331819224765631220755570678142936120020186673025602393542191899793463697111550406838357530130671741934855014578042273318956142206265911857169869265818648597609969792036762629234841405043017037785033006982064294587290096315781479449361436264156957931125039312967718961993200585968100724933859229199882520580612760463321434363729613146806928240716282682411163437078606699404695227033070533044282252876422909907221876009625287603203238793443974915790751229111286740765011847438704282670103188154547671798038325780896940458401814232410929698348013386495840378302744941887302152790692171261855353104661598059389241690343624103642213377723910675360477900551593273453405894221008267888675595144320220715563549277203132575643077648014326605602408646293063218423154600579630138833629498085400850313769449308512587823345084335278277893493341235949478348308653306712023694866423885940434763510793626120219143501372813865215957034326992820512219257535422077397956212742412393303184488689487942892345689278123918628866382444484731725483434480504729170052512217955380815615934919477268442792511090611571613858789732444697653219584175513279552841983560868500795528314466499493136949160403642205960191523206300313089396193413761929923003051590116708940632279275628815773605797664342425410970027420938468985201660235290683583828434433937706708697999909078177116173388415977467385548844160656589080962861710433661078402599968441520911050846451427206782275869218585688593107174772611861100738282797262644234081546809261901392008135315171787728455614226624012405068057877748702016600309226158680276435449448808729885475722868275919804033866561722006877173580043698689410448696153746233071375477717381209942896104615582983225479401206713204169407672176410856817845214149518974541199756572274574808574088586488474857557612352086181866119625442549105238518656427952641785960744947263857610279160858991704299268984162868478688783033634219945153457255687240469916961143292210940791398037861642411412980482364445057199294093236252618164905200085382031797759563959198642841922042609868103058574041852673853204893407089459045183948094226366709882672739636641331865208959814534557067299632869182608057426873357493712255011684586341560485460189882355323742307545741460525364515777732064473341025001688591060066405923724768282544522515991900057382280800563790773690953130367222436550046836673786110431033105428751400967405437735275737157379792783626920806051349049266223323496676454051267862563522518961224100112379337380153919442175766226021440814786918083191051250311929794083869042092939871261275135018963680844914885298274029989471852835566544075753704458803688253396795372613386948475385930221080906519791959674008612023754665136072834505912268230484988625369657181918992718983031713375393464524454825406916688978199826017914741772812491996420663829359203061036286306166305500793199974004863953933084868211485266110557541890751595717499996878348889506394690267194902013122091321454097685457754788088622265285438553393271648682108722457351271882603566107088344211417863767208033852223391860818864277607178909103021751836909255072247136064745330529328792002124333066374290207330234470486960633895923915959398743979755214912338298277452713508611322849521798228747299831697461186180968142959917784703708295150991225883169246265532102986532808324600979138258048171956796609531802929964651151664564647181961187461361502871195983276975084970453664476528111725784871048501925197149883025311543196806027373660444410231833189131043053614036494508110004430162156348806954568083932560247562832235335988277022812181246211287541547046308652706820811669276438893595656879674337037336800618534817516705083764713311983448984522949499503476908425689702665163959036725600594093042574279992757156586098834071229605754001798755467123952003578034411837230517123388458504184184662414226911628575219403042090786800213422304404327400504582422367561211047610601098556600048509137004422781362348366182570510291971114102264972698915641561659503825302312094126454911783158426063578240151654275646067865220417783171160708415609376603051681304266476920763597350237842071927689458922683864699522317331358780107106157908575927861252003907822636984457333073560681318452702467782590611789241541180240036896916325068510809375709861345977545153628571061864487846696662089125677068678204349050157277157340417469760735657680550589280216087980227021762688678050928425024282829071378641755907232730776085564616658762188482722387719568410612149177042972580509437533814524843231089207500738252508577326164893028699707948769635610700880710888564026013665577316709442378988345926830182131991227661706440015821817611580894993869112790080932680652391779583680518367473496195571268833312187607043314491190685373236446223771198843512294505382407230160083484059895245967102410950971481686513699189826841577053579634411928727987257542334045898779964183901563896584428094821219963149263176452325922488971051537237625186122972989914013917820286982193306012107581447234924812533235146780184469673486359949891615797957794832643792338587822483753047163169630313354421013585001193526431028673950310531294042980026709190217415841434169705796085935488640246344827747279156486467231329392216757272051300423772224497566723983128652134087931695271842812938644367054974993435395629456129454943204813286445934814347165699918713655073554703828315320164125498297897728247071100836288889161527553129434010870084559213310967675746197284371715550381035948002672344132684289639806837900667208369853853920445490162646983254536784514526702455455299501695018785171998318389496272260921292659866308487363939676004420596241127158889496249184550248089536214481722539037407136497424496725397336967167288846339437380336613018383030758770524324648568205369833292541430602328244254298068754402307865168654540515642655866656981772575914677228681385524543292871071836118991767336655748360123217635453467747849014775749995296199822190779441878990404410849814895157099343858164652079128388847146489704247440652763844095006673690746510491477658940349501486313655413865808335638437222574007406547094062013257891352260770645060402928190866216591866750267936240059247894682843225659437264266144687534524074631807136119017555358647388507974542310758556601773769020082971504627531890119301731299159428569218332137314961538543358990253851320849720363877470695562699124731440262356984944209962427109561402876972554061842196145396408228839463206156816645463868854826341220156624110659379848181609638054324351844945347211760237519814604675405868901916289082996120467798479664216378132353548514629147962102354493840513259743268880813756316737865773577457509895868924998423617038505471928528076578408845741091509614900257856372850395161943502772209731123636710680111259640779384899497741642842625265793654879579038467301378307725666024268474057777621190738234318313122139751439249759740356776330475267854267329153105719689588252894715434090499423633800483927714111998148305465497532335330938911258561211819426636701430632049007412191517622657543751629445594695417504790318069786215655175018151397610517774346772442156470508814421599549390137694049879127408167457436299118878832917160525728994451888394340460431752340966942243880444352942140730421925902261957407201009592032586051338122967414301525016161394557833243241739575529468341527393934416641263739388805380761373343397692814325268678962067579512532752211841004478752715253779064442716528440458447132826160669952696092380149897778699457216638778761296004935272059368412253778209170332623646381811608362901484574547715697475889862245486790828209146748965150783263180576986999935736750189701091741924173656892578851911388945663368393577789363808815338783357412351962602215319336741728959865806458310107539064785999816940792655067983915986427585271248912667433427254143631972654263557354058177136609211128031114274389407891804603257175718598147645331271782748084412232374519287205755615021171281803981254444618047679692112871134858746006370834305690012995872079693901494932931055005767781971236542866451109720592357217306276274005607932198830808256470933532437974344208746636777202697509001711158091852955388011120615307389707777606713783446125178698298027165738096676336636389274450011241674812890891032382959235403916909940036394566943502006006706209726672471663980933101875839851523457391582284808718819925550357161304910308601642731748240914156174201327029446590889526893743879866040170744482803128602678889787067259193745283616205406188822568665280785514181687245287413940774409304674950731834554784227668785662045883593970575816137654530496171208848187727941123082368319823485160449239830374652300071017270552816173576610403096427711306321153745921010024351245175122927026004020453763238847184005820438410811822574534442594049244271767476353336634418895075663340670292009023672382184569896182642641315608063810083697318941664116741510102666571526023990599654918346479800102891138797592393303584117310032751111076521611281314950566916087573293997581533366300597480536068707656524789758627132658748912145518213227590598501948049102448933213676334355444133591659172095293529883556109193977595664958294913768601236238209287623810055391146093282651753405799624255976979913365612400100709864537149507051121327888872240064237362805065428006156844595581040011050552431171427992303220855677787559102537111865822486373603980918025440694385945466730752285237183807978759819036186925890454382428195839925639750209874813330950860568162428320694013767562006780775081834167989301263445957333470106998440453119493975914240857126762052906938201854800356313809484360051987067540976042030346494954346184809703147679993424950797257750241126130563331136984168422950026563995864691089922163206781493580832978827124218150600549173936711448694120386402570116660212022174416628469346273264612930753612085805585591988710791472846778519576625839594687758713477906250433144748028676364494867366735020333237006844148923989083799150570389356134641743087693288603176607401333037557888746486809325323703796499846749469885938547954347297311626531260155333973706960393445241485519781417807834896421641764906604186662392200096152566349891613305125990419353084744467171709935839124012311049877570462270714559459485220246168695121322260067847712368631752427006036037164714249629630855896624562864834881589763050020654541809996504192248283561071994070859272798103015575442145059034976042185907829696979952081362191094703339070541026099170378537258260871757209016000410433434288907880106938867752623336193729902817736307043376269737288934879263681692555845377116716668387091774501973859695778225855498509836133458509977871066100858383139315757325514616477292831021802424258572681214055825773026410880719335823628463869417323110707461281585758091544607970506748489747639385859462334975487974152667075012980133313592256155675244510410223952120776728070780474727959823198856209925102560056337049462043584152500859910570777485668691792337696057628561403816406096002258750698327232116892942893939018898480823348019397511882665956645076519924685191208673017796442269454007424355529675148792993339539738482498115370709512692307909116103287768530698831101702990625235403028683778778072091022976058521543581219711834748698703145730398366919942573003989443886111753789842488797264025788135174347028109695833078286523488940420461632027413528429300745743917832610204752715226329913991930261349514116394265264611160243908192439676777983357966248317314376913253140747525550636516520446233237572978864281534099282954449681795090413003155930745191565956891009283387631261532084426562564266677946148320728285451925678366449571970886134498074827838191817424624202833816096480514668235295128324571318444820626244410858719664959830686688811833910511610045843693209060141059837299824047088406909479406918310105131274743933639928555610814959162363025581708870575112241709748379738760401072928183597224283184154125172898808492362987745146960676845431974970273528380057653300064550798334736779478573779297907316047489766007955285188094902705921999820383425448296514559514194962124816728724571716232316447136615139274032182430845987704145992087041220326051015839836623359681465459789938815205999976868127168396929833065226847885126051571776054127891171072305542014559029379623865192155347598029918858581192792840483652747468797190497905573676207321833388534525347562853008767747022183748756911991679518390802295931179513420749765092688801878026501448111066303746425780684634475250959554765164251778548286178391965128955765002621446503602290759512407393799991043841906636100750331019212699542058299191546869821565355703230304497363368580084511557694907887137311983072669690835734545631724876073722598764537602322460085905545783811811193665010331303073162479979956836513447840214858388399413701863052275146976314858642289337064475303500271919305110866655986133678479359238898984856640581563205642341368763989846625182389456718588822209368912669305562957531801256095823701942108511324762561869221921487957520434039467516421228679450291225914037698441382703665391877931554161102863410879303379571075202070183284393665394697863595984849202529572288081449065213610523990253544610374726183567586881567777520936717176519228391181750353664472444406595592725106013179776480358632404772685826703537877461138774646667457898994219878630314833975995958650410430592613114414708920477532915997847179673236928874694146919683715301928136638848452510882055825279508596587365520145735104466312276112767128770175038601582816428943621448948329613127348318203718796429377397202732679340605612872085018397671757207917333293757754275320541224364343278753108239026079944831610906883437160531001056658450764001723609916818360675374101351675688446837871663991076829191405252958425179656027488135206612800588441456614656535185310815113012515763493351363233642209409945004881512430740405036303794673219454153660588442452940847312344116826800260311753266370109487028266252943903519919106714606684340348653619685022732963511595227652019631847788595667982847850145422442266062431102575412371006579358831033404305675579119148325099286644759003009824022432387620977433693010375595561563063179499974688465300175969211104713266372106079037438583556796927390790805357051821840819972144573910437653223048308840279103828387573514136073579592449339634850557532873135504420878919733366446935936170813988085211977744389089117493608433665908240483169552693031252411421440052900911683432937688364258452309233273743623259099031846285120466570315885866264090340602447265577875449352821228827654492585569595591645336478988084882815767017693021451577014325361013720328748296076969910384022784798396893532790746223752382538510202149002123844074448536956648317612778255688990872960780976984542550478443273720501647214683896152600704829242640836747273185522290901258214341180849271157400368291349786668635661313463694796094147898298767859258119107166176145272341723827943125119655490857048239792245580996754621009566279488413213070902718852404089736355126624322521118098057572867874549350657573204915343590036861658110656107753242344688395558926496684309790813360807795709101533042560888458588125357993415092937663721545746503889776263240697244127983565341179616387021786372645190288618348937837460552277038710843926383974185479821317960593209204855792227011610307305957411419620795863298993438923744010803987644083389974509454050457046192996610266578755342326135207034694344866647058626644342181110818390288323154507224608186420813729661871646792533484886499807713850670354067950797346461746274629908339719564672684624958106052907053594591119646058471970592512355909542730489971980499062351190371739248401897661777241672624582092427864264857336546953605165940194029405802560140931817563441878971067108466605506882230595160242448945216174340575517436477914851853498990660459551498048082215997608147282860619223938002987822914201626973792487919700399493153193706079779822008215848158883018496896419930763182423879932966955218693131984865622545260540188230028065962373085073654452212038140386030262399073251170863025273648681200574784535852303113471881498795210616339928083097116417259157437175026511757738105469699590713907238143163540729902712005401048105308286952077905511926418479979498355897429966080992219230510544944847980841986609445367439919663034648282714906563452065866095263472500555416900005338817582805314385379081445872863765573029516076203821690069330031141371437736601167552945434013875085667168262050100788935915849485158946572001270152533377815720306696653595164285907542403525933082855964907075029186750578099036569306526640462076078905320799565955640356879366326835971753400223037547140330000570049245600534069853591722606251201784966814946668353773729557690215146243311664027958185985144226272594345097861708660713372920404271484046944248447300309919830454858538175085270599368780861959718709420299263377725535259049525192133148004650865773191609769832765298552248447394000069324653808437300523958706983183447171235988774975891731775104972848431751575127672156533327393757690423138482372724933769931976702751891138393755852533150725326408231062710545006304090439001850714926917097385543436802785829193550564211229209774642250808059578396499254843950204130123570379233242567250728313373779073417078692429935458443913033609459470194207177655213733295469903144898707992310500813261246694743731789675475433547907546358323051046388951883915611874158019236761655870082833950778049194991226409602272114537858277220924822531546594088033482144431343860426043578215194247201134425392314974786573067074531042516981425348614939073915814606527075688948574264758387009888175909419711848539969228405397365684626335083198055247469072666453088293794560083623210089749371236891024554579435916368427955340990036190571022717455796298677087300652940197331936615662412069089818622991756982222451634781248614183160633938185669846303583901369674295055011359857014277278870380235600166245990370303948952578873378420478305069631401436730994939842016517052658034935402626282013598262997537113697575383179611523862832244869127171006738440633619210166469519382968522392743017480572320127456113230405993956332333924747048169475155433906916758822388545536226436809354386638639603136752665614070967343105231632662378988586901091400007103777363257939041412726860630826581231362675049275203707229415117415025073966905842545130366361042765222933915242418462450849124278729291022862541836775871078114614925891338586344048239859740638290908310202169549744580872073122410372240170905077786474398829486040519256698602848572141764444016558489556545121505929521913231506563961210094196315369595491334018738205982827470593154181365870423677291953644775111201354074644902046940802936318039759520706491450403805698277133708226104915119983861536824935067069706215351373650529906177732643208676280425690899325156020369859090276962099945757047868197259578012267704937153526666432453832337160595355429287962093996437814176311257217991546620396677942656288152886833111395130027597724566261061903719564502308822552128656805727512292967032349123993964582010418612283585757826411125769119721170353173254692007261285372489475408883361723899605926143525440974212377852273414886119791681120018070125114831931095334507693804862419148083290450688983033603388661762918623292766576012517042845657990093097110438814984414950417556082042368397309214045795071717363534507977579527484408847525911057844015242338268829111083211904588339052647687814627335598910257563715058044727953030826742771659580755147388331483014396381142153595502812709058332892969378912353285156166284543070341838075337898210338158246291966462139433995734581991419465356983246362764671507338991837804963516079392939120159374981139834651766459749433671751030947726792381553885551078394902256367894413874855845075719031470259809656670627455762806499353587840683164883622749649544101423789458309786178643991192074317201156787444834229406805388846157891359114741655933147485350438618136709627310374289860469461438568267161782412972359304026882127064524032836517502989883194748365656251909140194570596431777534107725740444733854193440567520826089215540306269323559530191215860459943750002479343224838193124349460264540948774558076946661684777880501257671059619796513849984915033747645335814496649354626730098119279878536434967203195608749351278879492971338528268066808902374275209039480788263838734031389403836374818154610165831583064292912063268251573530485917965042029225098184146493031801475981550151229830909924473861460249641638111082657513215648614747750247600967742551077318013627458664324519054076600015603732005092537233960693395279062789249328626976510466906096931336432878868982246398029668015033006561278586412099036407043402945253532012360032462595456423816427786279734738377326279366733593153760358784670463956381885803678749982403586082468473019875550427345425902146897833977154200015761887931132713544514587170870162805977836592105775347023079696284300780558710491846426554021651099752496001777099614328579516665590405404859727997179053963348438623483650290179544907108833311478651324427403203472806322211688052802195285520840450336879969104349873240224341166463534872977606774207802346290016290665157188931897258690767207756067467608572353074822449117978052579573080054674607844292026398876071535780736231794694028468915496710518649590535232074606097870943993085571993990228694378156791041729204320593876888223816608027606508573413802900716595995057924961182887824263560653727702491145223118686165032099933598311154733908222583181720636740966573014938627100476181457209040789413698528019456072648728170555232811568876780813665922469181905277434278235311851193073516243606604357575031797510862293541870317551947723618218672873397453614739685193037018927711149318035674615345700002651097996687417625110891544596829579679097485369699544727971248420545908523005325234976941471157905713300934941802939384255374862866757593369623987018734883054808159422498111061705730118997834846269149129029450920369191214364115508443780682596687980600246670824008533890824044668062479286850124334153720153209218276878010419826427224979054988877982199681897081503529420161729998903547381157189674693099905534700668857449821763077572200153498896205336477804967068495746890010664602030931359012862550640713069178415611897123030776422340943170714081803102869882565228396549433133631347958666327923447971118491064869744481134532010820887295650643999811582251271428509750077820840102590214610153952415881191700761305108672580013079586083559281362985954029452654291494589764581988237974889959640492428280617235266504419170532998501327501030775392383348596144799328276717134231944959075657347867439127449374302084683477737119064672680156515029770640138465476842099736770054277415478082269241590405862908156492144604716069590251089820373149643272158564056106187365083140281710227821734818137328776788099891427004421466617698146256677242304410118668565257768999708113690203853570817633441584785106895607067026649450377799698285007173324296944019504710695290466180007621240261411263083907367614294770719944455067017159935837736379202957025896607898245735732188169702388276339235408522967165075634772636495438778933806996897892986433884158791183635745669756379437252104630057758202885758939106097974620250633807092561689379462715682737008476967665539811902484787158333470438891606514442665660473857992559025055242773809766719829323425302534987942954112600163515818096973730898099255891208146705431881357903459201808291525405467796545264996762766856090925499007677700030113458306859237586067838185446284530797003758419123641674044569053195289438733519077815206738018868822465675319355465650148279597575090619624925760232990798347130744714173716118399909170529734042360099005560654146650619482073911676333299269119084428352177714385354582393912054932759088433657433342787632929370209728884343720301353502771092249061789395907950949257219080046556122162514597167021053056980096399333416198717771534933093896329774243739597995338807440349643431237431191155783626952591203791504628535708156507491496416414859964997000087517337034572392872603304390035334204160828965088179978181603592957510821371787622307805665447243980638232366054393208297322256774601400267047932262997939915190929705976375892765930657529520253109222607700073467257935305503403365724486544753175751072646140336327761227734219037893545896428809889300912891375527111784520595709489286100901553430739977349191947090330604958956651220259188192704863043336831250471981025727930233158951620481541430526460090833093345437824110829995909515780502836171430062304996427212408926249441122292408812281160377851853404776134196685870279145887107407352191945414703013609190607512756733737078079431082677003166981345838479518236186188142549374269581706365993103004994267593622531712188295533375025344374287108216369862621608553662898267795243774502852321301346455521680357613916799394850930810882190834581176052937560011876238194308877661198437031740528470159039070750754850433748138194630550537757300136475693073549671073226144674933051686000991644403549211995777067651318909352887680811917782645482476246371803541137948144479368084929217396327109628463919989648151984719518841324327881214045232312500889758638506449344578542514044901428560056626418417344514939980259539709345412230378038358253071728969422584066218249460718791321905476887711798833639918837855101355129245173624809120167392334744417035656767692503522856667529465174530807971277167180183797189604743887356167991132030482229834914227974172937413002208192073218261100545885185480902457473985944679973409548612434663950148855488354410924142644099740428151893209540049632270383533258534339083094298751268474084881561872946385972764999974876002071513899643888724343287380950949094564821180453078612700995882372045938305587401958489879899014187421680302859232630895208018331336291357703584219183148833762078215177797884444283890107271204300276917238609831347340598039808140007054992797690683441967915640753774022391763912102405585667941136363164061119798520312140927962396627859036518520569184486407304723786270722223728376100401956574626097628070742809109527742541510084369125875612437828209231944055524553040506470294716964475377491033101926487744687005356739862016304895503460366752343866965505993060533699289800827476888471464448154154288390510178578531959397591006114646067554883698578603628452794763159247857985606142691724475221600170729392268501935647298389913643324723321826254536756052538036356811717239240467375428556637098215905570721635196307186208989150263453329768036672759487105701930992720852374116177726232513073282767961953190509209441933351096445293762123551767654140660061728830736284462585422817239087822677910626483013533101247385993539423899092203686898592948106540500701871717190340280657245630469949426936332824695276444833239601696834704799012245343995603785808362534389981336902013095201244814378182621819521992632075689495241931812500714238684996818965287148278563076927450397141686751237508471621615129825067041316395528236544680631480294865447420987414554382191117071813929432867948119812318413427142399082978364002885758391035786001051066168281431624673739748612943998564595291319653289443167261535097597463456495869621228640194533938317921051329079706661984083814887367934887692973800488267311729943810190358311948823173740788907291487911406744111337605222609053150935586507119165411942468927502318501617052415420310271824908863857107852416967070721230532146174400555172280380115930384181512072407119844737082741600556798656350426902273307738291518441823783108711532986301767622127910717347266242967127224909993951849346005443608206670732694773359462361836670664298248311336728164951653789632425331616121333192701033030230583125280790996100385146014577536676555668497273980514350459413017551710602967265710863384779172739604984057581753665436321870723987927073000320811477193301153337021750062820720807249568809820191155820142843697081907219765724242126749893673241958519415347846185518163507634288214155977283171781919672315042847437613155811245202598100322362199566320101067017921464544313553470465119257410968829064107439786534454085813221299306902212654171346240695484781587064786826242899760354236686463377079559151955679987557880013829827855469336155994449129341695867389774594800037958518351607646237950976758343520648212084289020871196259005131346966780029818491248734459726234647920367381714257068686666745420577048513905230450971907905390154361356858425878257810331980770814452963154457316954165192971421424578837222655011742308708982095383710304182750658528392026121374674455740973338009158318602653487675065917818403322098109862701975228419700861506988314799279122830281077754967237157405837517184162835798412964470475635355536241949113780413128889461310272243929676377678713000742184742921396732277135049149814669446970883762223755800438153640346372949241837850112632266595591198040394266732149845983752801622271781661568358739300374183905048450137705649239398649647444796757793225311882120582582187025668422949437160194632642315866612526900700198897907919289080218081675064340589161163625067514248925913241506716984310057579323692501312001794576771994266866340557657976106975703669326168739663026672933865848567434104986427751614114518079038923506905125295343262908733751125373348284999986536069918109456153909121348430943070952032441534411246522249471453865598613412092089312675710488067105850083023298799388417090528697702414462477075826083878016055852182025867843311562886278665264535992251176734802408680028401658707104992823727071938110735896706802566527886617120079757478783141458662636352864487553989168649365339642228115164446790377756012528728076405045965751587321224186509515303345609727608753187999128677115156246853211930333120825218325038779038476173257296875504108688579499787666710942255441077223198370443823710845495008972176851957332946488557618889201670673037212259194625616534157581394706632210279663180431727953745266405365783517934257383121811917248254955619219159708832925687077467409544947769319606299468789306137894781811940371871688593669487680941919483466861124627444436060904280051193430970399904216176131604513942628434460902479608355469544883866570260358345434324261043526248534116500735015770880973800726557150478090865298483868313845429122200328388475800688705871064458533067623854887065580748651607967049229195916100345520176817465433754534468259994792198392700935697181774185345908183465965810818205698554392087038818071332164569472233605441677866339294076168162589453771111668532979691917044578478849674628988034798337434817590087468882882967679300701827489884961274840802815768113427842117086284815254642289924309512543927671688098454479008989196737033986500456172823169342698965211510391975231435474666931115702601485307256262738581554751765889361109485230666861012287161082224151091079525686558826808751343025130180879961970751661481044043759531764247367576857515545650784212134984508463465883910636770184386758389516648888173151292892410886521214583800537026110643782475195804201592632160303534816584925578554757563812448272268880215341464281784164728600010943073511847940054165619221985051858427941683181183074032928175400900490869896327573920481980387886584757110725788027926069387784595652619876199456270135854775854059380453533099467459492818961532126722805681653665813046309824726090466828313755465774746109996844534094828008215627342450117089077913472343092275699008009164631449848172743248650256232664682407116347047365948627568825886988479281483366065867683566555051800636603567580572118763926999800000114855967130363108728351019370673907741679833777604684369301753019544547185882931212856769919746716474265903118608130577747439579514559401119985234992105255880252668672158915577483941531526646070981958478445071931291624500583423961906037046370494104524343595056740628503999342977047591235737987341072203356762546633336635235238619657134341626266629901184582801609474255957066539161342076119213964553921147528121554480298848027667575219744003287621286389599822623612036087288355308332476425761139657337327544700393236887779389731594474692644046458964031338083800917208348943881797441349586820887500133448193766333927495775830787202402842654596679627190581514183917462379012530893560725405729644157284776887638972342179486263407641062773039971495946292259965058958581861158262766017744730897943843869801258991269541235153383483209430832073655701944932524343125033512431178938577076286768665650113658832063619176128840984456778432227774002247449676695340753747729233890711411470560070429869305167444668679163828921188284586361232575223302709546384095081337738756015885685960614121278305331725448173633029255383220618490588245400652928193857540610159386435009874347313201176144816864120681079801683361855595537716137000771690627296553007711624551579656123277351511852294823012197447237000746302297187778481592383810482981438990389391909702124898794780817243951132837774515685005942498222456378131641899091156692963016783006088278031660699483569936201458067498259614546762028623415047169286403441128810197477837286710132120462550111137076864397125026564274987669542733505916694723691001514701623693864403352212200901280908577584874925526816739705502786921872298889606192251735655183019141639250793321525694934453613879240589299366610945610144511898970013089142639733639037566645501964133580148659107709038317291578980601051958973220176752549594289743131718457025848182636021158937933453625159409504569653189166868019837906618312659006183994512939309913298797668632780265863124571611277169874642000621659572077403031735152251227151137525270424740239250815648577961327240184170130345065966070003406091402534502581715638228400580933771127089843642053535278913135670113721689301104015254111556247951644617162771289428014225674702098759910781688886386791648206546404911728252995216721520702920612526419743740178819587834251552233291822600858310576685063556378248122791506561671457991952420139385237664290028505512937545417602379586175452916001341349622891348122480589185343470768037478366548788259253521712721591710660345884018297183210129864004523970283475863319409210340263085979193200400599656867169489321731690505253143126373703027561996677347611441449231983691840434195238194423788018216791029818703155325383216924995491702998239544931289630159040827142847964702288957594699910494875758570390464467509981682486257058967620804226649833467758634781008189275743215933763906748595580425249111768972282812530337105116139689537257928974138453564682725063574217649854653675609866509453925245372531375704975691168548574004964598615614361259331203611722194583999038876433139296584052862660402374188219645602823271693765868253121042921288465869709438734268868861452833081679160502130112484558161585479800549900432975468111535151980107761605817409058377217353268463969032678226848121708685969870794185671222711153061887239305407403206028652148244795157596334779362267591432835900588622865099548896140736436848129811864165918709578332071550013403320283281195953394060281337714761723155299713895600710548343842614225366443529508259382726778084440180078793643895730572826743886794569501456444873818734503776573722203727015346263792261343016428380786637742307036254974968260938442014167355938769668451111295376261564865267142129618592425552351767656158917849562486043667142892320497803019233721498918544080876087693645885331152140380262447835408312399062348538844481096715752629375855047107764831209676973990461535522256134572115177655071212243088699170527080967711405592359350633648591009095200170536196796808417174976977237711473260238473451871272635631053445832240419456239630164524464825909253170242613262388286842852312713616361718813787234130379021021605611208661240736245648654275857494936909275432366245539074856421699289759776455156778094195931025603323932337174929615078418093699561982680673449754042171957146666838333032368865386591264190970936243570617880666821370786669415079522910960678029181695017425104850727092989906337935797477139806844731421836436911148517811414587689667561863991702801204741685509821897556094760100935405766641754980103424285354862319410314633791608000136165010749781541215034809379137922859950857843478123107212668627246618265049548673634831441348187989988182550534992734160256334427240979278474241842222059988671213139614855756344632250647005839129272395865051773491301558323017398518274572215241628376823809899841187766169928626018856307626366299816547147127097929309680582316886381073279836981510997393489457695728738230220147827118757779674561581573055701214205055463837500514105262325257567146546363454461664818120299855919241082650202896348514216744974842296408476885085452123225592668681916811570541750554489301636571438686276702728418329003093092907553552764308820259712276271551041456972255251925295674073880453130460482111098322994679511333587591216081713830675109485407340535971857134951126261227124618776601265451691159346721906483284007283478777540044599193688204156879993939425619838066670790222791114738555723071054209620247412612704961499855667116707823826487599148623521585365004123820213843054518615502294784694857725026316809548102557422457274902596031311601322316327548399462132717688229339649096210828864104437875190791321844507435800348579951854713009184131663942151614461961303236687901951159469860509270034823703373232981032514700562328025939003711500599646565078676553719448684979429143966435804284600936624134421120740533286824376619657942414152194911395875410707907291427624638579902536942528108121080514426221361975947285614444967741884617550861206068120074815666137258702620292563280555975205226123034085524920267977996531553531870039325136175592349014413580761004062227724489999666219418882232254644584250666413047067688913531362702513372816843443944120897329103403678150373437330123508488323187414515972931020418801687277850503432806609425298503014162297310519849621426581327449931752585697021068187392076401354330051008382047455950581243659242704527979117251964344961422637989576994988673738068457242896122887764638303708687554084486860750255987029147625339976801610255926038732951073959654334509997718784759744788573563557839556123323099162463236628782539048451436944470791628495484342390660883617253112575682513959300568263675634401514317594296939127310425644267384110163864977367498892297268551952202460173270169236612068060465114163278817246528987686031713064079615893406555113550017135225252397467494734935797763193920827370578774700540700840060735207257230057073276449753122898961255907939602361200356266825174417373070854647876305605406307987759979075901990109239913112852468058429046909463314988828529323390085770863575234709725309544710312881692865136741992176634658220410753220693966047638589163874651041651003642380458107988433219268154654646317896153556606675351225514590120011494173674013846098464053605509968295978486153994347810464023260354498950086445247979836658770819624033452923534981915978735154319274204615856442208664338906285589238503337295741930390068263134580865341741408421911928092791163207358333660242950167012702232483755023011471850597985430244898410575538873616696085827035962154015683743962934792540293428755448827375935246322990008856246895797121127337356865961565340817015646512356987370217636012218141583077766703025179634524970020508958003935894673433615933791648253967671493123889509255697619772165192711494718258110216635892098654451559320284961301443835227437306324594073689061447973400413640500446914328243015520668136408868816631115415391362052794347602986843954066223336901666926498915092277221189981688129058104529051866409709478819876181333848783018031943282109856051610807673024537225091316152227500314805912527322616273218091499791795896112871724687990519513495840751814374226882061567196540990077621797290877831208112304257586717810602034197621708550400482758718762942030504597768233851388075612996770664905740581532760987497806532079542322626799821473841742703853971257921482385661538856289350785510721965221471064988768460082299723616123345392459511414406297803794036380741007197065236745839540931595413198675187682125135607531301766205142995348853619836827631373689709848662124196900499009863812733810766103983532288279006340007268181492169421149814184686916086874617106975909505354872594363031438263956690389075586928098911028936127247980672707269191418709168360053667801741559090676161160872739226647021781802503768892811137044373437968302113708746000282875123227611265555176254943368662678379265732163757302787656804775245668779943736403929724560253640742474508952258330046540733224157484154270943545810969016799342522413466758273731963425503957695915630268249643398677509187463111299152553735504117017616905403627355442544478908948568483823200227160831231758667591640113037369383261302408290914216090156412843177977092770319206226307765690320403675534375603123506612398602907938130256439911963525516376367498871551875067322146844324548480117945922371386350897984726811869672173874802913660336010588856511631926324852595760928954958071859860839687361242991454989733975175258905560260019594953719984048290418134041402962251017709847494589332605988946999394444987188967604394457111115888564952577939491604609932335788536083442682933270640608305421701931176058011424556918377107358238252822374876675586514058764985186920516634768812032855030672032121598230331581177446955176051338160576112323483900009154265749038134828324909737054197688760882055581046781146335708967926869841825823054493382935391842512207057789337233649280392306414334933230194753129166676249347991962514868127072254549418279499755110958366265323318797679411740548073527879975345463903047243135156753557826182680543760985566933296745905421699982259030351372670124872589880125858452179476964427976975449849036579374241982819083615709196349545652333764675340180219510503191791906713777172980583133120582217862013106696394232439582969000107934924958830931613968236343058862479453668479817550624606730666205226304301766355946461352421468977533854822650018342452414999426895293069366273171041918554552411802550055013226989830273288604685545687748071113992621721256379771234514013840699245034971816967165405416859234284769540894725176727314888003348686464697499557075794375158854468220940012334152501690724995778014540435803224846497977868446815432912807794508376343869117418568036738951461853472005356942532518409584545573300913441942978508155465534106282991302922985936957137398102299134177442733488635759677506444986041538818929461538168401825569771337901524875455688180788189391173054806942134129830302961821484376950884113065141925862359796837846488387332438307851045649848344620387830935199354915341889918087307514686961790919530715714299234002535689933584687849184216426789628972832485432814558988147571796034252160642250159607697942186272158979671818789202275364863783174019505636706478652027635004217850120513456576360041979381842869977204898693844719277851212744600198680476681766265943008565799095916442762964417886230947929991678209007374768054075924696852618893030225692615410720178672245315728756308606912516962614019603236250993858609122918918879059151564097027630454495873390945686323287982527874344690720612403579220022531379380700933440787261311760952964164908221935207905787924232780954559347892762133417887175671855833626706021995526511761698668261928080390529279686345225060554986036633717023170492399377563489136530921580339039685823492629863190771822278753644791959625233614426272838124346532686124772728226264587638070950351918020467322703700758963919485616519655928478165239366521951378815882690772408413155440190816384010328327634048735475669382948281251241727879379586475078316464996872490176051113184007882513776336521746044583517834418144584816061176314460884942049757967991691476718336841208384409452602082348617108828569027836730113497279590078024522796901323571827140173134030209352000744241550249243677634219842474271692910926206412501246042732300879833701410222527798130828773686969280896591673834838149386690713315463622236942827321489009254534112294050178259673455832433970837501297652491039199900785206142444550539926806467703911151938298507375552745856187108698403091577649941868981071626655582667228433194578720764708230403110988341118622424747846238662315490498446610436087421534509316361211605906144444942129212481046599125215674111051995761661662608525475847773532011935008625085899671276400932027426119969642707097303531552410856688104654849860829749948856991300508708912011031803368586392879973241061254892138891988944100951769671829480648488882284654351145088401376343971397385592145335503043128497141020416150356043328993101623709001509020782879661889321788425670441591803483167061651616887771164111256952346684691527269673943986644728249983689531341206326270332760204409877788082072603759132123955596800058984768564741881592197233217445928899440074796078652714502265905987755176205121834963499862568056922999466485680041349489844474600407821045453866606696509713027953453330240136515699950270655760253746953969461594003755598196944402414014234808472468498922181654324420355992655358354693731621951428141738481795329295033573464840921347864213389881081989664458145415052481688609454372512603780320894753322488584763942539833761417750126925728981867672625267150887316249001244631484419626473159966305444128989838692016368607190784535400598140093212561016790175453156520998210814657805940246286444659686523637002810789087381960409483362717561557163306033655226683489211792465805713276287185815747923858521035344906221508192302681082567328675091566175071537231804035423313959507142693094782995105380502455108025313701161878589593018909908648421983817150021965155922311818074586802261822945703309822566045470105716339831834683189862671243786145916592316113893133931383031604106400984696613044154820059349014452418011544136471254188836419412993988443912607692186032567366370551316513132073723726507241541848940880260646352586808347340310546096597899483922284345832491223610867171620194588553834137391522854401055605498560162356318935876928404567200250251512020951249867067102870936854587268318200128298947668560405085163009837547731618225463908542383017227223292213303893987401550186773818267839853454106139093954428747059831970573310860914906172231179951657250232496770711390119654326201678526107216105297676659425389347805775090234514864675462778315399940852419577945230981683325865911009253171967943451897309892898396323858337124328125964977633632234517397100074999261162749854743876189593355698065013219968839442794443597470240766052568777744726871390066778585921395986700098904136877725660760987929826869888105827310378008532800319465895821960422708265149875288332944514480917851932520348415798617089685504331045433632622852340732924113167029159325275345295746555730733553882446994731135240848226415180957069015050110181721053042753109071499821201277685847990160909881630632440409517575033681998419627444182550112380914962749655084011157432228076003261890166878121532845771772101027323810745434375352120314815675567288170075415618246133408217456364142438232560930031739870413266745263181875540609614923329559226914094516927452221361510243810405619077648725407933500875604689272091301896141594013621925342259905301494963813589935099777489834848070771992974759826897273641185999499910995895025343704250720343633204671371000495176295416637157433028400116289109934190034606543171137549687699739042771099743200911019152812876216088195289439052382029455539684433440745153088458758178663579476467662015506634343933668913025107529038374710437218885682616613126161992937044279414503109357498373754121041434208970639138700942935970406052355944207098309896572399316333510202838631623168847587338933375956077982452762402354953038867504527901387532896081060409153167669291712209177207927651848118663359483616436533575095836404234888021415731473801508676727882914585679944456697891304398525882430068023344836806354942793143757348929803099705335489111536100295571103134326050400621545437221149507660705651359498227382740873715725737020432891887116595295782150282278354349248114566531556407316811436162228715287259114213958116530245792511791634280442953470684208291793612435139499216061543172387673714560820328661267465113671999419441315054073498787320098703400579788625100505464179523991077195166716541753981241790785977675279638118636272336661039541940108874986530007613644218360360366184730724487626224805722387700070968979842400141360874879563074401434975583055813733859833554915448035219270499152417008393677063712765419168344871675580194144796356865960313468300316667222417049308102944132843441031084731238510311001677606868177115735722146185092418164304213232540997048139226912358400717544054241413689918262910482038103662768741716011870123685495112099935084596848618079576169613045627880528786675179554054922851911440220150041974011176944592654708319944252028930916394142092106328399455104479166637790817115979286976231570407998844687907433772109003685737863139516526752743658292401187521577344295488485458578983727423857538887740573913962353296375527500282709558048833691252420637116038566962138449303954691437508919781825837440323405923992071282428291947266638653304574097012439033722184856711391237323269847973602538421192960232157567846544977305244074841830190648416327546523456870524595066086932566138891046183666474373626739564076264240833949536123382629086492795429720888831510516352042501877827813872651696349082593318332959970197487547119431256620814138850561365632274777405494873937144169699708831305624260570635208108243108643167569457438942026271928877043964796492968482720171356595630119248524565804523975354221690370987719062188762075480252905943219817240855532352131845558540961418088993512748484230081708363792882512084871872892916560477554284706121167634622073312781234562720403356786406662606850274579353290394821704933651638463252003936809232886291255773487534234457505564428720647455945819197537312395723114759302798848421210366306489500449675773122220800374295774110699160925057950239047005464677535427976667393504033474663389911448842102478708546173203196052443832509881748092813025260731501190821300409723354828621557042397271461712392870988435732360972893308680961840299017361684455061690596782154611763154258177526172477773254500431793285206275844759078989935019307458993074862073753065278573975594943101052113505181797532814556512615520153284244509615656812355941381353679965390117883808330169419452869573339112856645473917492321016836788567198672708595170994474871012870757944402868029244580382406288654726965219246754965211272797711408632874296858649075466216418292311900444088057824895462958420233797519286765460882615667345466888440011977207318110934501275861497155083736679159427996072465635880684979969772636731057003896223952303532079618122794965323432625935924880147765101523612016758749616158009492164906468498014945179115362427355156085638099777294448564614302634507102380759093955772923500045780363231399562951593001033726740724007540610586445473747330090336909754263258350675449672831417597141839559540242479819250243770154056143551416184165558573725833854442565423941890178177178010422967548087433198498172098791546998800759556272613329382271609227186041418254772758700944864254480596930597629786713475454783618724693642824325387895789722087865980743799502193403176501410010266802759050049139378814199268173403798138432753178655557890426537699340464298320597788151444700380026187816299444787864058642208420416373456314015871737248892513734387627589291076481392003490421863353150279991075938172167352906638426606395741518862399484845775312256223934734502909228324975487729022331198250664406150943905313030882060977846681408257731226979921946039367416175351399736978992354976371907521734288255830686925369662291899516893440023877996439630100169072526684854656870692374348648452176905552028063672370549511644119789944610044778121619795144846620463386362027293282242123316801895927696385016020914550739707427725117590465008599335060317336614198215659117595534220290128442994176440971805031460584047006109517147522594466157836643086281412823089525434181825252879387568018735935227236069416198174483152612744175806622555833585253271153335502864535656294319936393803620843993536029116419649482976235128943026788569282955418407766466781137433781020525605306624528113778633249395970660798416331109237159998036922394705167203702723185695241431749024005532058137138029562491858754443458477438626906524317222475302116125289118189328147735241446561798585178859651241914505781573329377212675324281093784765804240662749355744795935253473558128701473624384383858888156534118026096839632771791147805044170242841568531336498807257152357349197615563245522067195164930764772509320841680863463227386005290809692124057999751102201566410613793178520131681995899976039900431449418014979556634069848095459932569221553416952807464097880148244073597200088519007268271442407399183425748751476718422243704913608670871428682254509871282389832897898882582220246334956794431375814448020760256186745659141184511080985067818548205037232359493505739713921313925526784892754679174372775218678197686954535543045678359091733270902738932077252523192410477889848958407923235943326748295658260562069968947839939358689260995657136617703204840825322772320069391451922132029228701467887448399594344355493099926508946936802665519733033710387655480833372632534002395123800438435274109568924253407983496472920126296741075201629502502374386572743408733896150026721325493735909984079750658165727483537892052622960561227056269879574539460923413943053960914875770112288794737679568649856773729171106135677460766797344326461176738221642054862369410910208612467802441765937426797145768885677333838532142711692455587085185564890508270467307237377240857597057846014749107941731285020789821224000621842603807746223295338823950736199874683102572000104655299696111207412007396441418823849498322560601284461049361249177510237867505342921394075388065457320839236074310443152053741200729992767200726093969998738810272490694845931704504617852832416728071293958523839853826245945010131372807955227018435249518333512363723145697989893261188698215646904861371347756422101139706117770183445709511966294566588718069276577089104634302034270578950047905555357477876221812476401544753471288589408125285791416838924909444606100104755738113027327135205082712996116521646796532500587169943777402760543588760919228186983974464529848520490172800273362924347599183770552977756971310006328242734367386012854725391610412640110199521751378685136457588891465689130420983470731326386072500518462192073524762338526270407141977312057716457701199410886478395832892597735821269998968648304547767429042978687029172600462757500545907478590561060249078203449073272203843386239706672623570861099742451657704678079181055633356840083672257925534886478899318711297306629406869673174207025167418281986529347272650920420490887425764974590706255534334234828736835867302421982932124935446254172396893690191228689629981044497423629071354157642836797484503624357902568414031754958424162678897475044421225706270718034631179637787435242443055251127687179626609510265641116706024070424970628678788839846144949624937421665957845443488150543206558418631929367193300037361860169628319353317930244608817243709470816433702727982882086181524037851628370328176236182021440367266623491623703438608933371481437053294969201933581116134690662273401252020921081079399709961543963450896352132255695225630580029925533430122544529558781614549450992664713906201159011618539982264285070826569359236244348695044821826471486407445945662518056974266710536258961621130038791766428542826297073702578287993093525005454904529370507197741728512044273144128229025113314334072813362016809358857483785745182960927100281589543083902417003699406808808511059966893851413124745784534621491948677832080357366705766222952379436431436687480944009061435512635633256809683424171997667659111123934687142044180785783735584136129762724326141065993995038595225497671715058753518553389780031347344961803046910585803807823921257287060078692308806618598779396838485731842940137919919504512036855265386387113672332094278020669896874431660810532047098995358817227161093605803759663250285382078311996035692209809695157094972627756159768810666715289517035070801197806623625242785248479643618552938862246228940027614222654752848424205053842029219382112425512040543001174396441755417689830988668150636063564651926631708112305129203478875081348817775137450457390789870885473199266600442360780958808658840216252543793344705282672557485311138997990939413886627342718367373283149680707232411929120951459770778939191619284951416143343384949899139067038307387158442751734557979280926535429916968045793064938245625421295032710932708344120475972141055610696848459043600854871541233752179477232826482351912180841295611762668899937063004106364151515977191902205366000589019536383001716572327039281765949851078366776329673256257472691968043866722392351624290493109733577303338468588111393979588169736390388526125089530997640529187999578212149030107228269753527031460036140896253281189423519005630989114272771611867021041493876588686565603118082667789940367394233640115422386642160767865050390536485424485645271715176863546209533014754706938051033009687179260061189253858735248800430937209245557136774826431005796752957327018090543368694415927854120125626561694710810711897946591762722456121447644512325255331778757452864023067237514081572637048435671688406651115545026427664073087645717903057984845835953518709479114248184894031434588811151887560276435575842351808955098736312711940666686894009146202105347118968477724024805852873633318723945315756403776849189518729438527642922031407050930188151408584634121304021717576073479547689268457358155284455875112433927513542805164441068549334176239775053186047467371736541651322291849272617555289614311745333715641349179942223091458081917476953917213640036431314632189032859527553079893399522863124582043884986814959131200766239021169009017159116189872717040491957906159387595861420243466828909305013633870307509060250751993469976592955486724383054084970303205578361937500372826349385148480202326990273157672292436586639574238568021610309246082290135220507259758084683751433874281266277415060157988299215761836439931949692371901038707807014407320689175614600165453457219630831929349234590444800007321852387207283711170575039018534966815045928079739514919832804321378112269231296537069290430914112573070865037573032999051792151070965927732359919151262962397437777921161885521988782278100589241033283314266029964318174516590164744065798648527041689932956241250582996970522762384344187236158336540000546740577093575258744898190095226011760439335793716525091369580534434339133231667495417392272405636178706151989077662659994982953569149089297554330423104039408595847954701439360441838491720322905921106408786547106626452837963281189097447073636869491287616167006193279917239628692667296487060684130547044639431937640273652362261789095276969246763823598033812788834624763806618178246168134886194407875457237423857463865606103450199117588127735441530987331156055704401736591162979794661703108250548805835048876841541931122484376521192820819956396663218282110505486602484549726377944177434422318758323826049204921571522890342611325765706241438686428043309563054117775619452648456245606460241070020167266456595035498777621415725471537223347950203653854712035360325772663698829387186537499087214927231182237401000683717782391909248578491179959989392883207726944747738532720238912774461957070966265323095290689455086830097195316691189942249892333557706167739343106572034804626444287369597554108324013184660592635861905622654946660830748588535057398752372903265101874556843129368284489876421919132853695810261399094456672492709956751652783405389455441648432358505455217700294458584062337638635692241297156055192231304280954970069441890657388941296178802328240394044656578140561381195063189354209917279546647762412750812504419076625670019930673913585492665039468930008055309233148755215123710007070185631257519263568686666306139576771465809706261092560493655485615798618938112803389152252211444781406808397130092240579141085125427234619300683765494549235345146977933707306210220638414896390456577744697586691135873814572864590166041082517423095279990535160707708744804829841383973445707720420870623949081520067851763008232099689745717631570857930841117865699330682208180753757124117298229926654042672034372315875701161101488644588989958715401706949687416220176144093998355015610940289045562981126798313439962714754348911043697355910544338249164882067233784206703540966518940291544239419964327775970394393676923084328348301085829800385678843544253159771078801535135022356348422192947719958686954875766694252579337719593712778386531784547609419897318346411481688169399893241315150169311048949919543935287649068651509368332980202496356258712519570334932209267213936868534520889834018047518554419106296779301653139846733027099180655515612410589054363282023034304706417237699834499808751568083517575123685009943290108436070236618283380668789993526455447832219223661842967484068425134573706949815033670643501289079273426713241292619159645217480390358088234692159571803720535813397225657240417172545319075189412359847919018842416110650150582252468890136992666036446603175670976910069151666016737018792666654593865802823440596121848669891363062912031640360549561665744486640815550541296454806099636811624492670851295010121035037260188402139698066287438844164284677047750406154143911918433099702796074498608205798974081521501373570046178938851752137829388568781033721660201586288097784099131653169438643190819808281817725266167003094503014446732666439411934783002860170158779828666519465572542070308837969171353985078652096836854827441999345716518188602222543247879808467257405150863076117115154851469388637191554620794110073695312880839875520613265512005489353929295616226740608902541818238489825611213867271512245786278553895329856140276237342166342872119531239429341915663535441436997354290904472795126859201285737922169053822158784826968323234936692190147440209094252089127376275607433691664691674996159622393576658208522484442699444013409880162163390714117433069011387769048696302028122834902968305065717984459373217538448712542906035774978505638484052706330948737628058323959255743750423952941275404791296496086941549423127790777184419898829968786380172667515554219830172321168552744804667337984370961990497673628158511773034961934928962627728052189654298418541877839531272076862133706604391047909459022800171075638478399187905187097746070707380620660485258067857146080320717316978385230127611159231684709133366722621428646585473791281441945240987292879906723387191832455620835931752189676598191281566167188046051699690679137423208961467033974314521900082629492915428341834746406019358538092080866234446842616941538188327434589149578890497183497067274554174749231300862793861224648815505705960112021530876622539549579695464132730808394316137167683686336571357083273670107729324265121763143176321714180458588884527961088851758734417858427871200491310889067423261909024363621329376897675043821456877132012806223624405801433237109620119640108105152546166237213637412474703399654589964171134777238752206049711964060573152808221833331537583139168366226856551608206930534912445369462866155945525923593739935085381697219205608135393336454435467674146283881141468246571133799529789726615663202847082472297929618753074267679959821592380428343734364016504423919381453199419889299375490732390817789010789808350418799838627059617357504772387303236297539050640832881058647004475855443408418472104318723507871818934560029905291119302629528371735463036552350285715800201520194795044317647589855292894532376912580955882821159923982578099714945904047805582770184155521085794337669359369698037230657137448522864297119311660121582267090731152335025616558129680825682149345555312726800438767838503634312620069826346841384862083384403473323670937630710916046284537707584757375746683052153970542876767706954790679548449409606260252340250641970654113984867385942891891363677655547078373088129653648807090717213623189460566813547645030054770486842561414127647390571780079531298874127009395552749248799082183825225210931721385147247138892796528578839976858693201308984923515203514446344599319676783187209973708434752346194847073929259903987087140259923801689869755765195312991803958918554256915736737997851235121271296029273524238422435323599190025676930019242998693593914306668702901708410377670664215512526001234875832660167942409984654154630645692450121571317847317067614762982171398940856693527454401364097100873047427192137432271855105244168183265626901869429135842236562305843952253539539180570467572998855148898914541591706012166187468693679070099007781510904247925676346075651089119012227047696761498388318763868260798906837689338410468120867343094278403095249508512286559044747062399470458795016132288087891583154818321234335031504561426941485482087575660573429048073193006389050038066253883613484809197307638245563855821917367950451121327095588900521649803296726651934165129016638278467133335106693782993454093948411186619052906804239478737846340593157878976034262837429533568893475334639978333111098545359477191099708072122982558456314172576820589564277489480432309653342801002282377608228853301223994074390555619228615117544470136588104270395964647383680687450322842606366290808817108342823121369350543800040344596110624289313079397531695497831789335144635175596555411778164774257944936763397277664322835234711433378212039721735959430531067264432898388449517516285497647873090252874907495215383764256007998700266412427853390585586912973147274840436051321214241679796363854234261851659737134645509164300930245465359113381990715793808301582286731130582467171517244335240676261247964568191967367088526566516249569358761572474277414399230920044927613236519535144876548848380889088542774244261124190463764700717977456023791611878245965151224092509967454800896575892501372109194286874950503319249448771385592840827743462856064267796270994947173571823291897156107128335122853852737604452628246901954230294024984275061985274772936830006658954077279755499063575293065907569094822158890951880811161168540992384065642460258735927964859078435791856918057925267056958008990331691102803884108846904342643612122904786606402145297611912802435469929188089913392556894131670459600955467891484919097569726797983728670915869480451693684419692291473276664458276009928212866469491315532449888456824415296134948230533941322776343541134586998369743989126009045505214635010918453774066650224220403860446224968134029870571116268206980791862348481028118532764775009178803673282085163108344113744577766580936917973711910148797946459863239069815171741138749803457854500376706757555164111681422824704249425486734142598772843910391082033521561500656804744281438509823681350071404985215692278780408423571122797437934934943874913047241844272243519433148158083298572788690143373557395986942163857636857400830171422286015651833324939503579433864781543131592386595774193088361668414484811971009203087405587594368720152566812836271638386121623822804963947061845936378448238862677108005879948509467668122786138797669617532625228599590199767222484849923230517793381730297600463071767889416300479815734241468293418087112565809061186189310949472107909600375495614751134058529908356524533371053516767801365002278023752240592009953759633989844527864739797118297768839007124495059008572930644191105266536329165558848959036261534975264724666221344512613617132651276992133502623136768660233842462456397860944145964117660497731457079045738995517688048417062151297113522387358125292434901136765133683717852888005647180476064997022788488452553128842579874714415256177246223001304290509762919047150571490864367335578252434168443587914156626605734693768996623803924596192341319738998690501524539074439841432802604815440862231561463088086781847529526252499427480636127043690473956769391122547274773694057416779993238974674219216366187106948626551909069529788828375634590774474652516448305887792924015180549634955986521211827846338668187910054221233017374643630151664000607725520333674777056289560971411222126920151207983471764781340510027007947147436266576582845313946048019073349243122921563332871031569841005291052156900329128011132429057649505132744278591904181392331500965609705852095078215231404186381553180025730902394971925497721573746039927811317121915507083493570054554060033792287855637572188340473810911702285486797366447998978018900322739669577555765100174931459516065562953072678376477490252180358491466283426513549452309183044210682475776202688655814960109617704282054703065192908226750627164540717558103920212494680724839267526501398539953977297121422733622442161711979531366678935394473041589039751596700748703083866454345812426528089112393227566589584861016848579056862383615416640815356033172834088836227006488977750825528659727137108575437373889405019239649968574604221083662456816223285139059242080459651042803038063324999602163419112358470985623129301377804062115931553814237914538226109232522087284900296329027297125115426880241115324875145874047183246673740329047681895180518152105621743686995439232135881581590792558733941222211950182474614965774587267101276056626948470424626682477441634337489213519058552305436232567421668752405389267549213541722949420055872146925577548494151659352362048655750966062859234702820675203569361081344244657026415563903827773607207302775537692484624726826976245542929951546797457165628484396319388006822882085852134842372812373566720016424951885974185608216250752736259931246101630289756181014813497019254767637689672462220117127247407851507584489877538746479269996855486715423331432041957695484468884804375832529567832202113971817860977781924500129560215263425866815275619342051779289095231180018404646396330843985744249155850617577632195814015194405610638431611231309778880764724542442697327999887785607128318082631972920395272925740610560506128425690473697959950729333902557940177964758446108859824332764927613192263100228282659183191508501981892435756228970154151234241073313451986637113036493054890151500183292807552918180862619655939151154684824133945025730775187040366248552542164920471450452916120321444606828781281057531605833370167069081649265777465889741864066525101233667584501595814645824954529512802292955655312030516057766522793146433574908672468278216586697215900051955473759477596007654477041804070180226811843849334389683590530706965942370674471652506917572725058277601466940798735573843274683184768537419586756505445759245426880691277857242911429999066961668459397288169675420987263702997579259974312782541437188980035634107268536482330004231331722392696227416692770558091110301436144448267229824638841027209475026748358470362841242735501288809257393333647408364815326890626101654403218473189866204047377902048875223169826401779576093159455480160457538489207088444759582935400217099690249606260900331310997951398274983343254497970418071477847425137703041353714004639100765623484284742113568570494535967399467836037824750055627900850362500796178357832753646800820079680494624705737229180604909275707612165286072711976227447520315764756339166545992611695930579890874833352411318429454811005315689140422415741055115975856049361460613459666230744715579756234655765134504774503925192710538873970857561676270855104498838701272679245697393307561527748077229168990914851399863053099028789973960001559253653122347762137385616080267355106164146325364290563304368518211006560480710515586112300789558179415568980325770504378780473559326478966163835466549710323123451274413177326890714243782839685069469484099106429014870642796015548985204310200331510169881473602661409402148752182465616618595663556357642687419813788398336205332168440765548225591448963860782183540864224912109273943121632720212091489541442709984769658972262437121494623143457939846420479265039710735195628581627884771932767392283410388869528134872180006989692039526362797292940768731496766687839106597590570306546442012803721178253821734906564047504250950963665245028883631395358485568024672668203142502181141066020010392650321908126656728649725374120494944759868484139835319709113244030421297743937939092470183104229890538960864184196598540435937444746354142400660959349925860816353167623016386203895107495158816529416872828999764171408589366956382952221530394015829694317543568910253456876072857760263980947990740814747858844724640604245388751237926471272366094241368140146085783628776948922781283516440045997997140735221411263823098321246519785545822647106487739779494663436897375934177409052318579005699260571223146713563520481610828788569985728031986933046076840357042238582387142348615156094631181494013859804039402192686513884626935920010860951251345151943830517982640206325187876712931861957514118224965366993740999832623935135243344587352682065406105001158299403774961995301760424143169752681575745387978090570249666817093322678185283630439357289073911066757521595553550869027766681009144554934553465100101936533206529901139711041129433249586026078103536895778759450639750562734016954037643540368253568840312610237692576793832097713699381220895107062289757544775086235108077446137167620518708701813172627134126572725367134793775082823758773548154490608892091087450608410195105025626574496602425794953751649206013610528750951731093613492459929969085410923047218855602899102518373040736037299807757041070910211920319292689769296962139585227737681172733471026337950990201255766433545402513908158021903998255466446284493806767335788840074350612523805118034287985259324203388048585166263903602817946419558712842710544783922999212044092190537406830466883364575140770728423305537541166837678148061941869388511981595512020901508456721448676024009313531741533548654972355874141568146131861766867177390916721523818060771548513971894203667361310203128627787093668099015968334288018865487945513037868547353286880989495658665977470284517249014447369875200700760371333703451040205360956714644861298706032349834306600878332292404215782472775834102778853855333736653835323912937789465389222154688080797847824336361182234518604769434280590009828179041807004463662260924809449513713809787190247504527291238732771976803037258398777451199409519393033483652960649793707475182520373329929727133438706248449253740445758922309456339109068913062246956876128696770651863368661529407637039531062827272361453520980771672413766377431041730870796333846535782955434142114123051840550316520299996260444155308995563398751725443892579561348564545551959374104081032824141825885676281622854731992465324598279242450446971878773286952967910230318042341573374056075664430071313237043077718879961893995817507762530374028772595685738031031260705485782698954485922835622694517932896058211890663164110730140293437346224995290881683569110146347992860307725716426333796970260785533114596870704414237800598426789388313741609256390957857247192525816812751739459718777900913055128389047820217367683734301134109300566356048529098759866740856104434412096637057899849294408956873251029960372865042924530343192517684660642721795893416193074524101008583588629558718866448580338074061622834905615061844877399269419145146064304650549332596089155570840960326871362178153547392580286069102800548550526994603451763644289934336797507375719529319957962080798208711017280506351315502374361827542128930813530457392236552202623672569936904615049859141354855365906672621521517521883956367666976185716387467413176510925252781892207933805568402580537089727364456045957377664066574950988858903900527530077912023466508529433325008896411045880438236361767361638719804629104397498439004061273234051042255136536840323285499152745865037951462179972489216763091996991273471923145354766403446283225573871950530806533194872794628619648506569222194314520766132099316197350899670611594212125123914728889318256880295214325826114902681363608114336236104951953122672969223506490059210890978517787383172224230755068388074150623278194097965276607164967878408564657914497749431909682051014914869949483458275104057135010624066602543445347074374475073120125648342417073437645294226252536144289220073805289213154723058354209226769751806110143962344162870427309028798286669198791408494864029381468351905563300990876916722932568079623819703546818466867671824719691374910402062909622301852660873625476109216905339935967837657478389126807763263510535079162283774871661812747357243206357541834513889856381488250001301520139374720048689709397360102139997491797060323211355943924381196930156756069163508538308849218401390206047851764469835642776379249480719399770941185881770453817257861802392860969884979724149453615787312250390845504693619246451415071442112751282829442050364448232921454172738877694271633752007625688171371521134413880657990241042764767705659901937001278714889649394243444240262788843948246628485986685261646998737788154711975052822161657938437797500102592740984310766331144174546618263452266966334392841156724869243241835915593410734826481468057356911136531214115006541426610122490145284212047062880540272014386202823438218450524339338422777431403926329908521521979158709588081732035930663471181034421568818586100166785593588157948016246910771900906622666578634094796263883834485391483275016285574087686310908980706812928088881310646486371974992135730072079892427880971730943358136344297378053942741735898782148644996843170512536824820961834407015924398879726613565574816162269334372339845311377179578832981105252076851919249183163858325376509140062529507926097728866193556135671543783913601984339661666959533359740397322431575135690141393092806201431924794377104583425683083621202555854954451995617835018056344905915570789973961069011366368273326763361343214100884480279614247092503968358558630124452673401890073107299694688964938469111283159244548069036202762532406771656171151330707900635962905688515264432029995777147751249961756517911495517059396533584769554773310536531827018245255621414456152758815634601993882232876080344229383496567799546691809361446528333658557430445758595320707062669047200671703297431051153907992202319831651982689941367050737906065676490608423566015138167839700712683718003638966438675010106855953688030237474518355250335048830502473719043288928278308108600327336504323915198731160366274301707896444131441523110165993627385469891949663107128280026121183095316891959251043062764570103018493139576933941270113398929338006630006196527638051805684844671006395174216412117039431934005126567943111971479324164742977942464006507941184602009810790291161427072582309008019555847237522772242158156382068598413545788536761445721340699588878159944415314819177871870972882598026060967707268343412052695777611625684472050753915276837720762882061520123409985895775076196759814578742954037247765876346475133675372919473324926964701780673029271709187271454356381274554472369982658658918523823574760435921708727318025848286579649447084228329782885619372593398947869899155635498991844497141532344550724889474294247799936112253672829235769089018263813358805628892705943387169728391194204688220170159125972430664027617718596564595571674903016693756760500324219867671778182131724921581348395424022579376613168675732946601475719858204983987988958246771211344297550693388163802484132921505279637032761919731221350241152538083528688440361207169437885759206093419496613490951973347715331241200515014897432023364785024190413911223565233842249181062351409250127736712490094894869203433683013803033673944724917852751586989187702257902942622087854962053556389569433711237292536073851122744154254156738912248843832458842957476272302749451755556816262412564782923249428704883988854917240699956592163332111193424485558333104431763801856585670828585172192733145485371897723850533813318300268885875404278514374734666027818686174893104401556280303875260933872307667422471916690629543397032312606953236248754595526285293317311202761951445117555163949194336588691669584192755989599801947771540590156422000187009350922609231950853689612962653688212892808988525461907033152828071755673069236999437577378038585832033315172615236301315710711689272413796123534423899197262488996523116550312324844917271289588845915295807681433845873069994046480824304161526696424885523667093255709698701526811256532053329961070214580356273044215228232141484114005847441886091321321412508436758736518822038458207758977987926152418795085785542472243831294652273751837051044690572602959562727014170989029668123077851990443019069789289081757993024103421707485793714702761970407062954378565716150664001486420844336752339756520496646261010010590375939686819624544033488851628191798844523379244420211752399451786606041653190551439567960094746948835456141923357139639981462566851086888624422857809305722688870963769384997702133306908772227476202063478087552762392299907329002491605186343299991046597351566103882646706518003358972502695822309279190005082698706015392263188091057134555236377041486534042146259386679822496671442544008677616645542957247340582409705610184488200659167493566266088969972000963933121809115651757967578700776771176309641250660175609933664657399702915466051493851865541412266364642414148766118502380370116252055235669982250726262727673647870863168650321625376781474803609867470887708565245528025512576263730386905565233692841982485994084055740641426245320022375978258825583586716977272261799630527747958992145519713684627944037103920706161768872107633060361775065542729890024844551494511452147786423168924744643840134557719045333008106314684186543099002108345469322330920711238202564888735442316526002146633900359450209505498462126903607762676160671184030796345509895746138090082761548762146040898533862906730361038037932959743392985333291867546289239288557642068559757281579071148561629056164877949253979969695917078925022289624099352925337365599632503316953643701020640940068927540189911291343085510808449484067806701459616809265550616904115049796407220739057160596979335962005179007807517122039721518233301100913083030041850449288538571843466458321569603834965199698871222053810186909396220609462645548443132520302111694351097671003936426671496928303039835916289268957168451032126290782883119863568649703877731826631465748112262212389161592773415931907368280089749154049052971709001469962275039144313380730422059334984960303304612961804196812141537770101108631717548878508972196996740037552233099534597527650556371646860310257567179026147147527202087886296576129831975045620069596043403759078268603605712081291957688523536950446785834563238988768477861751535234873407179745845428100611797280762499326997856428933366959095259434144845520798906990296360289356600580916113342542221580235335624317259862753924757497297792348057730948196199239286003287213157777692207375458229817399745993894143971820055273683155821451071778671733109252086044243887473421246258593376790827833144520565447366198850713949679801099282193435474462350781457495681976773377995759438481603536233755979556634916168844543489872461793499599126451498490169219444746171666804250289349816660464366312365250334344431798367646373743038535237879976933094783758069154896191542521715495379201192985164324694047894647415137508152843592916759064360333658118096900068685119605689671640644831240345757458327625314789951215615008739797353999919846673950540940989116070368228668279368157528992546004617101992545950490923282743514935323283544046166708044834534423826564089032347454459164523770981611728757994406404375650631841989846415824858694468313937097597018792674823141702046655385244127330348946428897422328624167470323934587232795318621408650856798574436622880365717179322999637026410083176409853614474903581233226568192068422407911695275197606530836734647968179613303052106092671858257909040624434742156472804893117554041359106761701423759750485448762412738266818496949217485370837266977900749581586523701622397628260217316772048524057436683381862821490714979081918724779477790545898042685311986150475591895629405049391375898373023202190357627235206261457425128245624365179024144935311977747573776929239978828535163280972890608562180789829624315101213213540957917287471637062094987901286673393060450506296036745802218474714576459005741104387965774451608654566993420089990322849059319252662583857700793442430360226924932810547819157940333629339094058556744791480360510421885623011879860276114323316603647514399290748976719889087339868593858812647955314133180410289802417418282341560611515349325378753236786565995812027424577602550041576896919038557254317479323278955261578453529978174025052207458469613225735810347338505389749627261204738268404438935570871370181497195146758621112845286797795021208827243815707227424273538403227266885916307099156534907314025226250500352689171044446688811803655368145995049750986658324524777773381222956776043443030037008703477106519842621365248036676612277764742717789637815649510046047582144399902290984959095776175493860153848233898302933778676543254825563125193587405402663591967189929706213210578968491982966090410127086438155714480187830619862845851135226236690121147496405866512694232744321658430480506431167328561160781306247469623116664920400210617504742503232193969622698159523686720188682924538088622980330013623582364665331933916407927919667743724402010976146770592711334950507918986729107742972589472615192521181708476563053826279784489736780083101230294077750952830007746917654167796539947133046013388764715704001146427665668658223963265625807274603414688967212028261731471464935900195418777894523753331796758288206798645186532091773729153657864088628574482113081817305444067608900411669036128582487254179056777654896520338133159304262958241176343354963856601476191100866605425578871457537485164386936523791863973282323361505928590489614020680644387905660399022111677179044450380163520730153467957626122810684638976345715220315293812053807765318009367743105680704297512043523236280706593970465782902950134500421124928589797047757246330819451412600767212309416575177741674878583252320379046239543041469339250603733680121190824295928829950387484838176410099858043116544160807220449369203206749838650493020500482697577065644106231410022638635823974020329827621524003829938549114965653279053171940180796566418021389389339699425786724894348833809345831140157341326424803949413394064293138848002129333199765887342792279245361388199192122886996152275521648531762885526335064232270005700975789153541085523981469341587552117695647437089481330997673259054502194865668912712522592689398047544869891595362076349676560835823147607290493795899431782855124016693949609730209293448932192577209170508231267476779359128688517364782174206180727726458398943238052213898400385199548895614268181644154709103089685836365304242754244758050630451508728270093557086799166552076051226475044380559480243426149973275268977322270948054878850177871086250098147579351380102606804663887216602951235646616478309198954915839174024074989366072363584536644744857317239630549874415036101753996264039611462486774449586604939599263881642613284852349301208035462522191937871867459064291818426477583606050411618418151221751696349045936938204798032417291195135150853368418076583188725530100788236892251725981357834780036351063277679435758394006585829745622557432243840071810342868779570409129699641844382844424110603826153720085514866746216046677622231206119063701049136740738416359877022866356640614900209063278638093588344088481239600594476778278073052217229062966037962929283985434901263021214468955722974386512291486957863897571008674989269402888269623240493916892790095654521655043703210408891299951043114506392157661523005207625467250923837113566127392049870231698472395512861692291526177718524561845854702270425261357843003741432757946619516963877438759738558119930172576728253801589930293009980263582414662805637733387702903678661972259670171415308731670997312073751590222242826347977761039029993885306181502469713893349055731473027753454254064289813865220539714064452640700763831175748641575382756298784904313094598142101435535453604365618039160839675359007847374396828703376038033772839925198229960894574719560166502730418539363731407797017667827380978998045099263524633974904189655506533160712098341032996177202696466797871758787290664853674533051745019194806411893567087768142614915728141096868886688014448125213094997086797610469809187412491799160582670774439505802292129373388107102749111122721672101482105188415368822804362418494788629092596811344940941693960174276008887751541610068956092515259758818607679276740958490293193317341592886620043041122620266452589301304434163772178105019603529766308184902571860002107075559414494219308807001126482473450331190295668515048142610963445055166680351600294760219408531206738512532744339984057714664042779175370327790877148643776275350213962950761901727166338516659011598967585946823181953231099957356538236493026207905241486892734486664562433737437086712896318994441615158963122314627954386967948073575857318559233331829843595800909360650460962351491149539261198026282605642866553273738840979091216951413999898436423789679490864270531368603775279832405653033167868087811028018238821449673659733036828668045743615518948397557125968209035092969900919516664186912056033252887972876101346866953626146928947244477968007702958928621116581698489486692262879413666031213245212974109825349884530814702978915440836391051261494283899452919701636707221858391444375068676898991643349333832915077857543480217334173507571978307463042717878562906286523666687288991172632251090076935528692541376919623621953839759615589520017961376170857832254650929374889848791360938480311988055298421606183496656697270490790243204528219011236068131177896904879871807704315917996092669402525785417835003747180876870625617854723248649492506368212689532704501644312896216521411427938599124351007218160615390786299071692248091628344103541852054638650780661971067274932823630806110358643315151023236751787002901335735194905954470402510130529971019514701987852289318147885076114923729782260132601545111854489507880037647694243459995848310723991252274299871482665191370490444768850591574297722531251143354791242037765583952434179208200102837643033857109950302366720070005379807681522020911910564744641443792478072560386046446336476888290498525523513284716632420238488642425817331084129205028195069530795474002490441904705548936314384661870601007058203493951015421537358350963031285091089529823297927407903093491441040080895836037372949042935913508762205502148183074030634991338366285512889386833641456767414886937358098351293458876812323398392232431785044671926995591174176694722466330027400833524218102149554615024903775909800382611206927256522559001909022067209210344835990437360444334775654396995803903446097954148201839274044246621051688131971769953683918194040345227493375807563323830673930151033086943837593491844844727961311991172129309557095612382765679739202108358782276380884087134782919596975217790539639032307167214437211742923726248133340034426226665327725114761056764903816802270725459169116776578649068101524819337086246836912955431113356132288000424790287932327005506978205774367093168509679319832815798626372600610305495219870510419673855886246150233284869268132527364175255933277383295011742494747452047842566633386068508906710294335546919187896119098242763836306622205771234997624539895482043504812146142427952734066022775071895399621712633998513668783927701427047720292928952587224534141379157270430807009747538400266774632640275197755333832479504947276627741383163329023175228366656307262581574389753838172342987773837586507935690389386966237115950451532391641564917549930091358179802321464556622738149316454295383460720458474661537709743938324124995656572985871149512324868354256122440355696344042779094171672429659533533752300524242700498349502564365539089489467096619655970125170687801413379869087091058597260079813545214257278042436099606915393635284883191819356137378891085068655107234488161707148885253181368732984707344090412807837386854738422940957133318103365204129264854678343888658712698761635622347288507524069556318233492752722098503565390469136118413776981637714477228635249281010434129595184263260055707332308522811029474587699252065474003862862808360508841024032035402693978516070542343391094490598991814956512067585954286120948716237931238617613856782328049943307695679960386100807711726976044154197876045899978828411631143073781540102058288736821786644087738663508319496145032866085105945387428469368796620004153493359173007816403577342880033922260152689537857303239861439393807121193596662949051217736834899251770813080602119362732245343918190189765509585659707683950912039866196949531540957813745930383877566024874848219935365117424973902310709813017214212010175099212253854390891807716707231752619218069407188374493588210707719951743300388136924646980134169567294131469110390600932651300241196319609768049499545674543218689118915995963045171098559655630607433106957782803194763200758334844123818244932566413013588579709860222808093867319125310792377213301995624759920131126487748601834845192632638754925367213359789878780338080201891491398349919079466240268831518049733685136675772535216083008492984815520769744483247237819978751862502834862971461536374381224425900964866438232939333092085941609855882461366792079636362532479236116626821424086172983211673442880445668350262680547400551594107434934481272521912686659256218549070654256382783507581055734462449102656057009365649687938371054982773972669813842207493088122490219733332181769907671815333253313344448009249784426679755032108154899635740608142756401251283561050388205694709391004461175120225949245419744369442494617623794146613012015786999117274432254463764885691231738750228026535430758440621380985533166987420093507405376793199399932092634697549774720688562832919437731102626932693273955198351357633866359296625105297763408635224078872053667296198975518557269999066109548767171679248590208250859839398746944013059025454749981463774667098553255079494911097411594806037463885376802566156093766850697558918957024532852558168437832605337817225697249932779901604307702019923952043425073809161959924357774782225150267408546432023677986475741191771241608194728059805062686014665335086276167144006242004599760979191423327971118041794624759745985496736973926278994311887956725976045125842730252083653891968778911943457066258681661319328836150717381091361629339960522400122565226957593482061744991831855768191363651864576463955100507501689714884907801802249779723933606107830195514747554964126267131328000423259112405780235550351878568827462652658022348961356005030270778500029567647155360900117523632424051257692787876093252107442080898611080439188672077143057713690049554106518045422588098510714829448313813297475533111525468931060007722035647975829094696691461212012981251499419470050371172175704748419474229260097700271056499429153681647955999282635105724247825178511816120098158244033108348349557473679564029738022608317431486628792979762431563062545369721534316874673297286007368027805868573907495947841512372015798762276209891355015465058055440412535269735452778460556796017586923950514459712859518684943120295873057329841225539130519128873776783029641052816266208029807959527332281838137085315607861395437999415379593733658263006202491667503465059012349025953886449566828328745407023723564308301611427050711314804904851731638723507736019216696751875552366305941799101000722061173861277589256149100358642810390483851244831352822952756679096618553047107232475958561842042300415605079432406181400289097026148231931821661287116287170911146791365769508838669251069928139566429970672630121272897698641080090681211946384990086570779815255417077367762200944762423689117677025228174410523221448319945805771485330563203538564638964379899322299670761945198582682858866529613708416263544030376744215041326242235557720550406299968703266844073736922300566670610158523662590843276756600435979247356477387950770731732839785110490196688053145234848110964891925004127837121371894454692579815484597409306762758023519061871091821900106076787884983518742628293567847280264054319622005831735728915969980053593187007269233318815145412128716001228898505633935526304269527867998451298137686273726587084056284313385581061936923269069974218626163799829448744784330724202239246419524146539280764743320656757675709070896406512577612710682742181888465422653429466105411807616016619182140634451561531259817763517086904689679535228473202821797380156667937335324857800616055587329131300844214768001547895743099801524349907213071353217420190109535812607259834817987876884056184744244949270778639728745310313579747763014415133406980260619994594515034473096244122785118286160328117601962881917689820894722491496868969756714767620699104647511975404087574343296183999959878527504976974368107487425706813761419838180647092864690255673769805074056575365243358469474371194786030945434108834664044669791988301124325150121745678901058354159107311711904151328772215795985194389883687072605281342450095057588863952523018602789567292813294830911847916131554891274757265380910793195521335349396298163936775372619230659126771617993542617541888220228132915252133175638600831151662627896325227038310359265856415071987752740999404538994731203513233432444064566214544090407364108418015457118738255771019454340898988985260028164905421543821871166307260904610569758255310755637146554375918750290237820649852992685913596904227340947486825771283297776034049855600866500711964330029230744584151799564221279481927141119285046697133182750542052017394287011698938512943869704777524959606323935035597164264548712135781028460895426675137338624553851748487858340776675395670193674348915819621854345078417761755558991408619943824241329095766120409263665163135375052615156574364744879308628426054235279020598433803795828930189206155205022851203941056057613841522423320576448305703357881162754117859257027167962255783877043603156624609436026205831684652622675408391612699047210739531837594770267847598934572804519648103130138993278379239068158802930837657746458383821778332611344998797628546064237376267528757790991303276117409006930953574598639893630439828345116929268648277570705140076828683874614096804662897094614983119178275175174617278484639007484613235638040766038823145342199225900453797697674802778203483311060596774375592040825744136016186047954328398200467234847707715702722714773872266303509819920995135034603094131146863674071064981306378007093934592286347800851574009906078168269239888256856417779278892989292654617026195980574715176930744009102133517256255896732556404831404770170592668603919998851886998201347839095331676712689576849995946358168585746729121279576780900948349893135634271528797295078495342085121861760472837917395187959427078983949666886401424401184318428396660216411164334395690204622475662998279313666232333735958901949730324223714627792387872017427796022264023049080337859414817008652985124060194688967015993184872419919961192598855313033744710782909959915055474913751044585944834463655857599965072844849995026241060170222608313142441787949562634342828142401354441201362743549031539530348761048046673171916730764210667200845035002649273977935578152016661026381867858017230730337387476574690643862260946140004554040967484943035973264461169251963853371787723935427682356911847923027125280560084347433667737054680535182869351444530365808563796167759145616892257128707399182151200449735453717530899357880077202606053905734401366293416497687689226139330063604518830824962634153902053121103719976030298727787212368878376717340309749028346092152350262155653251455826098386248398807778091870996150861615938910305168853963930502779211965297214358687710940900885627760429990050627074461507536563512988380523592811843327026779530425017182728191674598279511591226344452648037179848407990816238486068514065500811132704830119270334256660850919739860940693799441060881829221965180977533804767772317602167719803379129826578191503218061493111702764363281869358610423002255338894086595018257903548487608997929079461302667021429150127808887165136156512052699354929654096911377820611635402204961512468855363965702807781451038304642645926630527439756126709149910618185240019612864141273478974701872597752717727254373069131488205033846785435713885181490993518579733670255551621579021526643766677407243565616676995456822784792816686434993748960805077294108647275546176451964681167534455433929682557498238017760938858749915315273747102715486020129048133957180274783753591073243234238957702486970855387940780682650841542788506106715763123611213002971152343171795542394928373054947455735299352307045922918752008805861146550448510249348389414261751089900932027664350901272846870866872653840977298307978675460552099949927832316416354490279431899180589418715754679234481688972335167184901749752224091425262572287285092271945827014377684129095512636564735144743908099521649457939003189586759317130369653922393281952363517608653841227486423063309779018004616240510107219470544420204868903934405314173000271543208939887252830870017253515460730960382680719196282922017756285240412127786597213382313757549147713647464758413362031708344248263177938515490578247077797834529563744474382422901343484549359888024703032009183479049088617144533186759956735510703962357642085483992838651555368249096539021665021246690497754895203022562501239061596160753801700287625285976987490317732133435645918635802530122293312162774021482305852804300099595609538367711368560651833733976053041832760179686066305124151713996496267672949605329773093137453499317138185321561911770540875011331397386708354538304024048022266351703061384809429811641431441105921683355942524694995761176242591327231864684761285612271687153036219865073354057626591263505928998527577610904588024408532066472706205267800022584383751746035029876819812095195708271406519428142771680701312510632705963020923402550630953244707982984484948770359393553522926625108576098861769677951055976768074958611359187305541667793387181729235023590363342595120942829951582094643979023581483857957897071031385637749329224914269749620342803332193033205333479771582396439821524444287405565973960899928059018302735446131328703963375973827376872086086550787657960883868744906665481826402303926664161973709865521091630061257144908422398711189918495109148601170491468505902147373149667460326311126767493574458499820761796832748224679882554926909237508051410152139861992529086282458588766975534687777417259854739672085707648026981953943059342435997771047914539550572036090733191527595410482799790626001240580678004239913463719288710268169528211686740675158663574641642885379024707303143623051194995046723977587882115768006946000060120987332699960936652775217225372040397813796825764757277600139566520578953299879158646644308522858544532656537939911060627498867176697459266074198619233573215105882181558074897943558897670578017227854230474706627604229041850969604741426679050900842126565794033106650205985479995900400944614451599629886099641944899482123063284441983623864445524566749778776760722986779925450746956507497421695510343871305778331057173323893896317497766985417186158449184132711295863539154072487949434752097676712449828893294414519173210159990073391312530679523105013773379791122755123977397571467626076412183686283533911648324359524411531989538687274977527397751668251998610970109925628198750907565043646662042605164476227913814454224921091771566011745178987941379595703988461512960117668095145095281830336755541804749167328096257927824900072694253152557276802991511959036217681406028630249199096872252101305571877719252554742946579455415874788178496731173598709403286303482156272747434742994527169399985265933860956096460849609005744066494020878668099597783395782408270998650299811905929089741182140067984064365272098035888160595951381678386871120669302079660996739812952271420115697097720281968180158696225061897143052889759006998519618425256836270564302677438943117692047259192356187653241032491836782440259036149658293128752499610225062668431037500931709248968879171940618596969803849214477710859545577374628041554899846327338801146062205831273678085019010675338398531338470155071478778885491146026333911502607558248761963912408622875909648092316685328482489910465293821417011246163943542826473142000888951973392573286880103353963249712047277490279621025949938492160740614676752724366468777314372099062406359751398837968668473987827549923906808638480194011771649972553704736475566114499923790937981349447234593089442876656108019113013459505103782082846748176867528737989490207524577037103895885215600677292546304799296270034266556923254489133708701976207578611168466288459667547479100518705598343050430902728287527127642097587735526707921801825417570986911581823169000601079616398762536461454831396210917212866743095701122226507399607699541612731340090321599075982631285815975394925703719547556059828890001735532127544608934897575713015074234419229286137735564555884945419369197611903372443434968301493316096658823387016842820947316057655767103399752559882684947258192040685025636694152194528607454658015496164802155672339446819751379732330752260912477017681715991108268472614066159761099551640726908360171697621790881287416741495530899417840152476155465759978707270858869020729833162595157964705343612664878328568716991210772714619966895394322292829060732694859151203589734371571186501044675079481501348408313828438848649875787706359686037908883573833028154858243708930979054043139214440065287892222840422217856754459314714479749569632118143667399010896092805204109851307496157167288835302020993463919627845345963643564666089767541644921674115013682539524730737812780821643043329395006208115080564721993734529642678723258759453424551736301205214146974046166192354000789636540428531211671760271637887004906666634743023968343375939552824280834030537841373985105719909960166979851297477410555880185176454409214243354929785508753123608907295936433291552342806284822493067703369227407681005995213763097628317544158443326924455085290935790770320513468434366686202889425435579449232858407766562082822940217609085929697646039980219442158838894009006563296423794622616498780106804503691442116543270822087389154420087009185830883819716179834168214620003951072020152113787681360259443234981675962201477604360887460586673374232973006871829933368203261423894009343229960140679891509765391303125823256718997777005897229958003597028840653231008544809476178244062342312279792975806876222017679246269909368675997890836136188720073856350941761911247139843611562098436627440456099434416652625092586315962385329626297793884179904831431243989338310730814205869073145702002255090506224764971630414289314034112667186324304955279736390672223658456453383959721473361212522681644474309772651337767497624070635809577487335527962628746537742932032983336723170639305249781837793074342669185754231275575379423852338586240904263516448388536915612798815314519240829061194056788561602819312241731491095112746781766184297876196818576121119268538990158497080419891232900998876394479940930118171901715316448710622898140496849566002842507054095577148038509568605818451151896040843775078244923480496284663300270061271477138944057233071897210617375035315230652735212341451853107561501450768144570457811573585323594470827481281071120376761019222008136897229830669443740606219017091126035829497457946703735199017550775527213346097977957141917306220044368296398198637028315834660028053281058053504192658646641311484320467958831216192815241986961354400112793927839055890717817088580065840901153887037179081084701181041924100033743203576085383393440333034813845168496267186639751261150205925268694827382652917220492006255191984259954513695950415433438883854453342036098725976039452786588133393648870259477701066972646808561224745837283740643632614318299055874588326773021697238791203517516055318577728740637278185472319634357288655143682470544331774313963468709523982793676424025918136957791839741839692791719147764435590688227292283607855875706393494979399191930280939761735529649197741443145778145703775339473269492311403600667780215505593963741338829304496265255987063553763483075778890652312188012296845053531111411957152067942672760045451532360700838961553233744833788127309847347960584041613074330300373002017921297704137724543486810624642545352367335480973200496114487847337062147498480278757949867058027241488414608195208800989932879565901487651047960419361979906659154096141386368488797282969896356641376839890853107909727679670873199946721807223695181280835150144358783443342251915678375573425528540386430936976046580375125311493638377232925616767940619675223241345909869723487660650480997844637221842062712940949238717202992176676476619540769147849948618043960387966498065068443729072626534091452408083190600184429119785830501801039760650403306204732520438375137149328385867388789638583043701317976251677780567045155543309931432984122952802284250513346593007368196313490802309510163677165473044050064511014773027561285687221789984127359467473433280656637677999108795090708097664458251049159899616981162802069945591940039545108435313070049498484523507145322898938580420130827636662986975547194125109346180527284604144109636376075782362956307082304359576646926418464529003091333721667543029459676711674677216076883481093273743915532517305324903193983178169872645633990470861092321080987008182023715973110676677097512980583003818427346104338713120802991484098750581476532700049773526166779339614331882546825273870018819559180618582768212472452429050631518551019600115126288072059575448900318074344251009433068855484339724777332003529324185943046112542033668577861284865029428390268612937954049180979807914298111291232317807407318383562198152861104588130116350325173457437451467798715705060698075259374429447570762497204370328410171706823499838049510934908455864362138993887412604898478819283179313770083951802517257669153368156506754868974822130214967816089883197549970322931513415353795951662382028113098022984705287516533405050101726058281172507499572052006865477935968227982637656122060446942844372338667052732111409388842950272985805074747528303522502224593790705029699526062459229292283635328198824545522216182070700739532609495888655772956850236460556286446371956856274621889083274542938127737274964687831741536085765445988646580586116957831343278436403808687841830029623679198099319197159431300072635684681842053832944893519406277572235137624918386789937387828793074525109135870711280475878416557603544456695012129082570189540655539210037894915840956149769782831363435710028333379013642022954502953682464403590711828379419162225641020621452674731003788985071811045823530229264061641220236730817371239423992349636491865049026896178017637754252941796768572869110315973866925095774096860524092489167117601943494000467818366678123030053645367160117338277053529868610945725702774938411098894234562678877263017320496267128723851792964539762941356563003530511709275030032832485533993121712343180098839635491155831542036498169029053704859682791243849269142381695057521485038381340911389118383520103051743684701384027044216964363168391415596810542520679073003332827059654763771601760882673952476653405547677896851701672167498772522414492419128845006033373054640661963722118794530287460822549859693934884983759888274635412181497999723094185388265206881587396952758645645248124908311749170283254173363423872415792648706700908988126293849274565139896062412013444756441707140538233878563337369253087826407458250350934275619973001977828665290362347734648757081740256002329403680814663399501254907284417183494125197541816842543681245096379036934315639924605728404405052733524067551167729729657089647516599202228421056238253330697643414126165959099815333777427072943127763299425624480794979203719246422702338332827071912891951170683487659519137907849863333373311776795513002026291974413184816717850011709310050884880297350881905815260364606316029600529218730358510860023884580810398185943918237520549355034037768591819444265081604897651852110812552669621436010804084413344060733206172275860929159157259161220308055642485392635283522632982142315499088469470731392388625485727890009531736143012522211791711791996826794399180722618603008011088207809217960946490768255379224170383399540129542101121283416017930490369504426410554770031403900387949116233534280428658370183784282067832777663946502349838454952763007493953527268512899054853579238982762215886410319269742697357929726129619971861562297914206851823711839632538382931460046812286478272761886048612937645159600376648284870621535841432287335962307645601813511348186527524637397935184431912223735076032245313606815805597308926645393545129432098351630588203874916616348817835212154275312955892147405924566270685406469779046211543185534403592416640852192077789547470252484126658129680344174305990856375024049448493089679836503593269705163030535993532467140543741985672827560306366618242324791257197003850010397631805671647990544754777290640876817363129601838941273668828001105379234734491119249781428987724194409594084076766423014726864907142865057597598612430349929566675730789565696129445547545711088781470974356680921578303139588887979984924182455647237348564661645057065435506681781739622351296047732611113479845448386166972304787596190591134758277727151330902337233493965881459575834879826317784340643066896113734948758280557506159471477855718409506770651893020738281196247412712543170912720248637219867182199931593093895646399952110294883173009639670026509121196296708993369170066414822023846893684715086181577890289073604481271775042170403670734609224412782166783709193489613648232322901285976229851940641194360466792479254895339287284242204339709794978750676771795091278743204122793781791861382477287923065511152867070818419987768099916949722399191027649306792121487654630148622346802608188031501258487813589280537799702795508404438394742819254483963694308571330176670016612872367069604637328134744031796096735097199567882491634587596754554826061161363568677659970729972063471217015381609548702859854560523674324075229618820937605307699084577815759476472742110038283910192943907168657704754718131877075275591595553540163843842184274903720823416660399051554361209041462771795966873527241854650281715801690900074666955370122214428009545568098449975733115377083914822627043551779919680800548396292788602074478209604032513718995040183061487680743991876007760952271973331794219870474830864747880636244047055654825543981289735596153146709045285552395868775534956736198388849731058777532908718684354601927491981315081625256793319007449065254076887718348146701550154174080320035847563248090603639829587717014015798861409644463718777800808342079692613121951879038776452424729409219266011352858009808620807418491507459658388339713807486655051907546471496419593835188942332247395099698283324471748069501410152357140428181115142904372433652035770695164754976058921345051034240709997195192809193278432189521167258249708365936548129057854830157810646043345224184120819625970522361624818340193675719679695800388053071153248395227564868464234184169930186246656294929224724220734927275542752769152153692342174632741234637953402464823741559541068997286845212287619457995460665895868278325732751232407957159657941472762564081515273923293446018496359716202825409556739709730801702824549885384048981403153384204434400809854146873843253053076658701569119244559317253608223471477829584608342760336231876070315995123497004214492952146046647277183585566432682591927273734063931950427890026486799554736655456971545281466646065497985918197308215420458702727274161834882160282003806696672988258877255368164447385461997226325108432618373672853462793089149064471145078684405846628000601777584507539375048740662475448649862024389207067515713517712679469303597799239230551288530321397879576351188518981009015468166987478073331806259740093737415352604554046379447054788584533408519565865480388488493306573039993902443106384936787750586239123854194789003331814641115723765928834446146977038763820352413890152630674538643238308795849373085204766277379783649323557433385306476111929294051225297309121035412875337711417863398970804476900174383765639179843816665422390369120646320609317819719051275079638608361647309805427478200230000550495620813146815613646824523156159176699535512693704392368380547058409443887728739936825250665826695140410151729097220426395867457758782590599149804661400344670596610843076994060514209630556730680332167532946049846422725063516907562244805337209410621955217120221996668175579301551270418116257186256286566868022177714869352724723883287952281148130547108410291349025585159699519972775488735682489350454820103594504763114114812843480798309933383441997914101783613287221394084531302167407291209632337226445993901981089656934565330346383444537589303741764642486704609103103300807869221154082144193417934733531814719657530879197968019413749307781579393137206741890296901261755498534389659114648659876339352302689544664447304079358362160937840431861764043383610335146101031740496315000943624658412048115320781295285751344254983232942147240215084260582394709448257156083335259626282441574132448510637407081732144253930702461903750773567408091539732192553876064946976493586692373561029717427266680515316736412738799633703673911153829510834627636318392473250572647738484863581794081614051681999032266475353532442455381957090914542921651381090496136537763220343596031042458791350440942728322575013065765886104634496601346358291193882699557909398362566153412353176169881489926509062220568423183633703920789402906190723869437540062595846882379060081247262447827481024688955762277705829429666362153844072247691168990447068920412246640011869440222011050619303987072628348304487159357332817501769567201451738104427873676958062799941086358749211056304108313921725885308482351747014439084546731830411210394917796801369869763692750120473246517280372379871225225623382722753214866400767683808181202865048474039511263063285205587634955411122514308652919224140982951003858244628926442384680223733103792969865654356886201109629280075584537567961564911852137740211932006374695132318015976794205736058759730444887935620879902674650755482505413547849724230360518151677433681421739509394868984646358075309769898967240094714869603693953933331338596215563361457982084075864586421011752728909022928706380485559510828558690220938602037810671451023911513550290939982410268300510713445616058340524299831571496160959634105922702022206134994185361290606521649096141434088295597688488530935645911648363872796801926263368952090971968958851303537537454357707887269042854153224258395404819396443172178925248129659159163594245896327438931112192036041534518414716177384824432185030405680889299507336953807996053213972853955218553060306663893052959131298204380001550684970658438589765920251333167556774814753434045337489337256274782614088744153622706601181390508559695569253357492976070111374921232989044849702402258887709899026514424352365926044632229781748589398109447148894940473968879315321216277256589624827197783914723712551770235018819088027302542932521864737410621926558593629947841822167817460886437777491123128773615870083107946459835856473476924388179801904363160073841562581496111903255545992659694144987722840147927065096022384073794778062438886756995581083975110342647003139907149348455723236492136112098509329082030477398013014374527451306001067390654444721572377369229122745400921236440685356346765396388192940862159383349552506869208256957177145963119788406778020692712285872623257358123081267331665356645128551798385287290198898804005274711829849743894718259172280710939996161278119621822435395898405839869491395537111600832592155935993597110143094579239176151437311854691189211953719679996642940974478986165428946631602094254504210058560315894045963369513308471771300500792669477092681120654216845429288302444154614376547885043767606777398430246034291527432887703690992301935199408683724171309644286914690558240728516869707687558547241111586312737338910498566094855891643527538600604820005252862118307009059754432995961649125493097166233607539798432908547743932710955213315902108451068850679623855578467349366801487605891543247443412736487891445288782168273044189906781776397236587201634350333773448424480010501664994504138314854925916861418597585388111888999554035224903165617328764216396990873280771808339871602127169675630348501851789627861498858800207941744132799554847529557757254162021640960425256980612797242126649578912687907030269637573202348465995613842703563939007849702454838769152579184088565849376812059348214548846517160130548894824048111933675204806845184391267245185775840062541240951174930686167764276672246665148789913577942939783181507055534927769342091688825026099941564112667052771877255886828186778643611510350173651090447135748671946019526403378418167878440815822381465537745994817296748301044454912452199200251840349661493933119076258521144871723097015273657016276134937698647435090536523812830977904326077080408847886091311767718491407738808423638894984687068444086005308377658368686817449173196615114167533341581121257477181319697597600402239240825537385995364537271057942354825497701242226791808666231163952116340622704112279539298565549101594703611337024327832440704355772763681184629507187565060437240137817687820028423043299946864850368180488359717400598011400262277328229287592476475727374472666133343546780342353408981423554767881104744656248906424478487058583680563184035647550147420292325194667297796635925230965803480546989227019103361741717147822418245042645955164105366575377709885753681666844090328039527149394421599407939786655161103900109140170506386338247754192020604543014069031548231419350866982151734978968243656110158587608723000132010357778148902529598314644592393174242535026350520213845554822864586560698025352804704438657505979148645345702346009751714286962148516466346908578360010618373970159731037865155596567826408291077506969566002282594087041014420499872392862332219348375539156330219042599486496077847834321921046279494837328920287127747975862928692801262486849739234277527383069710730731520214140322886433935273125005782787264043148262021175362719492201314768953862651347258312696024024755146339778060980219107288334002517353704826369440752787910743697029757519820380442521821080927346162991595556129350937486287152573376572028796511239732601800845422927668480992075336402667702375413123723892025267902935331168731548497439837832150773632769027608403834160015941722512797554274231806413943146274641743626600862141116845869974956074765205886723242706533006595184893146024580072057627719436490227071829217241344887509648879238516758921183329152839483305870262406047088778390481542936217434477209849550074099553778993113062019576701032026639285816953939220820476949956412580746406887176731180640382122294021657789910684656089400943086443454030506533558368336933360435758499458734017367511262094012158841976435344589036442258371705762479643784010264843832620101133879900463162404909705945060049819818698983584687030220646466481507899727198065881790368496065907200092172605609712321585685376030247652834858215992357784639674219903635183525964953297634497491319138208365335196852161434006092151946980880093213392325181316340209625055387209187292313738130065124827696752447683485668414472843708780909666330991883920726744012602765633121358925169135779115725127667559581668472302442761311980828874367742736831287944465985335092625992672492267754241750716254827371638898986937851083346633096635821839803342047325242698004762167588888975368824321625182589188031595751294882102303263021669009565333793464998787562100584574048974985669116697746566228771017822019477635924565566773042674820121202549889563137436323043487720616273340653447998232321255264802207150681358917533594495859726249291745470612940558301948219946982291625317526179692616283938454451694927638359719640665664411597515414563748915751962693001174597567895975242934510114930062130271389999189123356482007831226040995285379655859952552366737404308551796548590273486124893478313169907297426449107913433984152963404346895275725918603005877499073240261008820002349336532372753788488894702672842015856759110266798389646263203331662644591221886797061015532559013796602168970845066427177256693325496687910754603322703929878138541172382257381940204427774572200350933350240623601993203299055919042401229257193164506061854583407223076686231205303866943684248437130089951852913461759559508427728594032111729097773510557809676325532172579944621054452688840396940403756283257085142645748048885050025262433320180907092346401302484963638529893046279031096094169782944360313000465149175662228008740118106974953184057270147348259328496690716959929625482987041055544961689088995751573003805897544599331213520230842267694345248914030285940556853422773099682744568141847380644522111932577625514779666314504978001288348767445493875995039435979148633491617705171194958980000667724641385460859887977533426722993014554578574013465380458635598228100630993823811028504969158149295276845979498693417572708841453349340109006865474146609220460575424899122803351320796461298650602349375551116308561006214093006526606901139246755433264228207429872288383083291490939343878682043245411784956268349656319217203673976899622699597863105007924891716142285149677953700392498619686258676606171315917421844852858928281964541152018319335991566362260935466991589240088998743337520431752910956832279412501357069261730664144028777805834847945573619769445013571683838384293752207445184926535462115195345970157688591214169685387741124042500879103958738698575241710232293548480070217169474051390900540616623118939053203545514122787611348186979616917012936538389372706668965569893854467293024179275289987142274070007174022895470940514061531689126018359608517620777766802819497889827188465812843030568220092346009696016961266144232820162213065017645992482909397723159780937442136287758634560075515029140286550830522778067445158414582026301112935040592055997157607822096729379992483268279504663015650218531773972106000087121818481154615809333494886296536539279822798209562427130576568464608862030800413179780897614710051414178464420672542117446412035332669519732681320191074424974519559628061491631916397353999676755932586208314623321092699436917297870228247344423770405564656407969004572250757628291542110103856663991600529593304559802377415071096891580449880276054640280291120638975193861387354182636516451388929370982360330504197822087419023044329758281163159922015499186304109823823470376960310061122408788283408946389961671785496957885511057227661079908437636791334668292290649188128593530720742527993567320984111415764190433168684783817023803025815858019065148838407071539379171068916234984478294811911179248926765270305251881768962110189216791653658175910121795479193524396568251600987004322107402640103819936337764285234959136965451705395162310162729398184506905391335955230422975545643744030882659386698266484168082921351179249701980189718318840228453457481299383945538708998869850027831180265936562813170098475852868788077193842434327925999920635190626567201878420884585810902800768860266983954813855056528493794633821568441692968077380848091068125609239326823268702015348755096525695114107601605755244979219309927340849506406747571081238742448645480601146354036930010397922439640565510764075756855312249195792785909355284375850761090878092179837633317826581038785383030306454204034329730729572961940778121829052158222072172880939833753162934925350130869626120506546768785189516146430582705565656137246348537402597779736985740805274542869463254681156694040408385004628325230679741173262091439699000673085789285616121365350864778632506135784469918655101509471337381779613984135152360360342293975703885569102897370639004088928368493351092561686201849288477911669036051176154183883599365754986723924004658947740548995596910159018437087413823005791733181289948224919974612708183611235860973747161114921384986230546691690654355299687906892254036068469383319263796954845562888778318540196398554657620299827857595503188585629049039613087901799891105995672495043464821179536515180863252934300207569502442903262703095880313198919676663095919859467345062484243626715891072983623776525051173006991485097558049238901311487670295314500983180359889260564059438128705464554237606672418798564266403127642956513053034999712742299523183681872438433754024439132958913081484235472108650093178846487923276833996912847757036234981054563026917592761241019200680366976775653891836960154896086581408798353710542831117874667389045674277193657047334660744765880016868499906004549901760380487939042742399795050796949170915414510564651640723444257476022467204862060073566033697992930275859612273239017165461187071859982087544723920131141511964844706336700347156843009095543002945014215853787254344629647148622284989146346942173428913913478242955939384896791238960279604698848540947754816199239071063957241660452614221796914187927527539581521898679319605796315365580148969697429391087503614626152411238951467232309431140353725123946300483456758298871728819362793152087342563240537769944343462846397325154909725327968146646221105334486120409476685856730269522427635126962653857975520041315351069601959543288111070687447124571402376280930617427102023854888042788897362024320144209659595580430956663579264193635053915092494310759753419089547786938742253465549517373678813686975412024057892056447186714691219367364857937629806737478618673657016613268078556707765621711402919093916441963539074155523981070449415137427558514233882139940781434148779306023497308409544790729574787104288065164461339391358058269132071954236592327748289712483927336513983208817232670561691017321955152195571622986428120209896351141726051248401559633674953107001928667521876939190366859245594478357618050309632303187733405346725528049734355593079475275656338346955476962106743320587012507397872981577129411569871239199219720203487489624731621746679384664329667249410400982122667004832231000905726323527428641031542562382581466367243468718758890104720278073731621519427300635986971310361471081716097342646765829331536953623275061106992997776801465269600967774316106395694379142592158510010812826776960408142074628346677372486087468467411772259260166342121860060929175216586474869123011853827938123580323186219887826879952823095606714976405295346053374845925736874854060537239265669982416465080281757743838693026985739590542170702086853351135740585823597206334971995493714422703875325538195516853033706550298512368652593059317227482060991900389417386804554844774221398102237312478273266707053633348739652934664097900570460866499470492915637569799241251475229796411438816618173092280058013405033334185237612594479303728086268633192150547525185346851437867384064837716132672504635620960871442514148246630422079312659368076467096845466254626905429219376184245045681389051800486285094462163630476977495901748224354564666065238784341096515500583631037077075874307169596809692500788258794059918838893685230803289391745820287758679715749400043772728447177616261220426783849354833646651137436832080781040839381703112953182221348184524968442465694054376567874532059189874770292294217671952399281681636779418488717555212413921449603900883690044411224880797871285573753464939332020923356060096376405180825543767458182528129223480149131632056846574003405757800806844431908983477882990075979012412818712630345107324634350952014081382069555359086183934857192768012070937951300842696041356580692393598054016026978721015677477072695786019338426662192001718432599829633403120305259397799559437610609323047622741225509095877789622719548960447532539520162499992171842235698281114768729652873040892239317562235517279152558288652055753952053712050533535569772150783554388353223460736802990925427698589397964922709294972126195202521454145125233672361731478904372824158891500736359206498499426658041419805924768100818907061761768510681007056416186880219617524771091258614256952596053658278072277418471648214983835871642099748699347994350378400422168427887952186480936682218148043808683634370231016259839368042589139391655078533238259246693563235664571741029429238072519792357779470128500475082074801471265057725386453921351577636409886495680186222749285603318423490439345732782146067549207991838244965623357475393592560941519156509766704444960419323788790934630652693619727147192159360642109259540989473184681915086406937231166553953731254148746619829243332195602503299052963580560288999098512797736643952883414185155225881207130166318262541508393789629713060617495963855116908296551133591508815919844305562010456111749720192987284746454954334557128495050420255871582486032074239612720778181726100405303989579657015208769924458654810257248746985790387861553610722524863178243934394282638084700708263837625137410385538118267259229101814352824120497932675056650686928945261367375451584845234154683214197506945838300434979815285558779695167534940791808626867395572563381192914689402102574136184450394200072285065225965974618873997076766226238940825269960373604243862361980059902865375769383827351704638339238170017131604953467407170436862137349055021699558409004563076857979286954783454596627144644518662493570817673555636902373170051299895834428221960893060826402830017754993070287392139656442401970863078922374265713444768496811329267892331429738110758738673146227717187526752570461555405643854745362481622746051819055794520970153524385730172193399531575061551828228260446855809155865273634103555807095184580293692920663892972828183188159852842125868639576173193678639171180926540101693162181798597095697688037775551654244685271434478285791965467787522075529856782008878377373203779697686700242333467562606187723702869114818598206895001688042254243547813543459005816457148623657443737299911070927960137613887463173221075945896763514385578174413176782517491573236491398073427212916891080770376138451492477779305832230418474098681436355219230168520805226840560766370557821338935417466953810247871673698165299483679486667792939160429181471001779734743408764628066826110742281155621934428883869883068290164354636272543359654113349371711410046021028790379200485979562096994988188533318205444948762242835687691759439067152848075182966915397387346375948392874088336892460756362517192345673502060625569095481014431859194938512360476241337726711516360391214751549119494948322716190891121362287329464657833652735855338050163617152128983687209194189122189851086540400548809267016472372647999388028193647587292944764311092178459578083427608741128176823929204952183266211925701402393408636413547139760965007649610527114468814879237470838192589061718820560501558494849467116549083959138934009636568645815372544262236865466948095704667233772252596960060050882342557988724021423148593483189022669541979487006840579140581342101023843006356713601127179399368913786548509552065126872778806902262015272595176208020836030989422930624877253822505833988849585956231355606117389613491622193213428287451067438941836686786600078927290373487230167555232840252946751269378716340223963352793751056763270676354217913745483307470516711568454859963161164606347383777848362623726234315510370037279879389014598036835209687992435702783624016530304488266655016499391547271445166087168036652878845434709639059232674588667001635266173311647481860669103950184131803151044209339152595432859580836353041569309889170225751078143500393396895108650748977486736733419046539967868713562024482160323629451481522072189871117179038186457422794614613941609375977748786059592357301992388840716867315886499890776329358141125248560824342934286991809801952813142745307553494469471883820329575355710493950145846688171896340716392953928220103074462828208147658337510323572365874618323768804942538543463557970281684128039066181905475124902665320076467931929180641510720566593228272589145906202469662513123886642161470696761399174639115842771729387333401573830204011641764596624314759973606900852432613783747698508780522185119414829515930115850103711258257131092473819675053884493104177485423833731008576157038176374775273320348503371386291290843881988143761854058107639805272292632604826275118639765039490542112306322947424412089235684636454672493811486275323949850618425040992470170366919262664296872391315774874199106762093017529525635807200446102295895619721189915190623501876296826098872438047083037089908853741403503848955753544091170192618906535900394846104815528766766934080698119674515720351675058759614559060362714058114654258129096949822053914543239933964535147115221032606983068075454318449774309711656394954335414086090086213833493745311041424698378797903995066321632526530735081697547025383275891641554091485757587063486204326047128391807942824228926166101132703207814005559953992786827588822765218969154276817332907138566677167650067926547240879844198194753728074430100903450676922522530059226587724005321606985346968023494668460179006300749832101896650090670318455499511908550196654388224593444448981011982574622943990922945786653301278212211847827534263758911398419968808894229278446336800500209695447287721969725136609231567084822362355029689084439341408175853235814359740728896332839090981857610287766008688901873062971772809993116978549183874083893474409549193027145064782269721823470124157721203692439937873018657626144518590388397799547629234712791868988470298455676563955264018481255733896820200819557121305697109431946766681364975729898197978710111063293007834956689095109307030839727997201458977645810356441650033378649596899391401966421614349635196225751763086899293616887893248021691343331816369139124208142929644797016156867449995961603617686182046090068240385279597376521257581032057926359560896607804651632176240320165269313699994561089094799582907071385960848650143535641695531814055682681260858961777942453267840271252379180906909576863336997299363876576855098100337409114713889399354140369752469671166777742958242516695659311975874030652968221339695703013226876986682196834837456529932060323345449581814324741064487118799930814291901905195423468950655564463740111601417620764126877620184284567490611671702467493714718455847716205639932549738014526246037691301855574159495607309478325609609230874006532990592401100367958074006042575280787377629771562399395479602143252212177589212588143409928773560539334507647626370194020622534071524810737750584710264850852719952138810917099318642896223598445210249639308538010565085795378669802717095559882854395216170979829010991670310930926165485656142797695367643531488999295237009058771886803128279142985428991069398715633683514667350911296641348170883142251677651037761028447656034598327156908973391170192150519133674558559217966893248214461683202710980610312041898409879597829262564977974331702191238430569669859241943112892649705497666183303240181188026704445360954392710995096696209449224948478116840881135527988393626313774381788878260752377241025353603426309267546588955510426464460303431989382647922210417829662102388065853514959805180113341681876282549615202429289228536165480436920860519653363458416911021947545206478096092671335121827417286604043527328238023560587467955587520288675805311693912194467056989603779637549133668594095042299101613169576456478314046907798604655833497056744991747404608445753551393756550182291517790764272631387776119603463177930146258444535793739139569201372192046506168141891496235083869552326045970449973748434245859844708925576269869031948545069712612337316665792642190820929195369436350062831986404979598906591270405831719480301440040881130562291290173442613009516034877425438474341828537571709557988980631550959063078664126732359753347506121240743672410975380580346564775841261505609468941104736546251565072849719026347620562754994190595018584731161528839053233053222127800110733879850170202951291131826135054161217970101801340932211382687043001631294563906146552286137375554033942978743476361483908958675296662591860599450885140373517607787090009881578821936001859277731106852505548511648254216131994857262951368209547817079790333649081473711314078298895033568354765729890035804814961580011804931022286871627258965867072083206716917780589818850722861818131292966341392472976749556403766375109389475529069340410724663971961184527181638973047003370921850544689062986862529439943632107681026243120798313040388036193236668449940762367004863135975932551230811471260947136995933938126264376866624015387860665123583766783795815690146264319174169132909533467051253562802441491724860731721541262598039617342173896992826487987131620737712539264522033701895808872675151725005310899028317923357677059308449261310470644958597897052768107091872102719256695833413341298571062212322985175309948630866242163348803360454780449304428492018469882921814319588976000488611489556347315960324709020833916978540568614015961803748686339124589712037394031678856050930789950840867604222531003516130040147704574663709805755745559540666976299133703459436208134255009673674264079392883923091427090811101288285462236176800685545391172516604613813340674017791569190404180189739131060875919004505632601162451222025465660546227877030635571020508001037003221975396873108713363673331319349482185012686167708742058020969306673608017073703197300543404711358692957655113553024782400272858188141005285126418147790390546416259026208076663734494622317396132650221688514277161439822342181484991130441029520011817973618998264275862188240994790674273342116602433473882281112607649992961854281968096726098523721799368757202631529406909353273711426482303344293503415010195706345593575983415055890789677910632015269425026727780985724590277513313360879708444681144613276371918373438089908557671510332345543970051197367134757657446843188646470659953868154794464331548006503230466578862489279769225983731660284392925189935038586026847071105661137227389296818540522719832246374758595154553542205748957805495000071259951621727551329629808508547909884530911358512285673773020012727713591950370031105250370291816385866062667607881984006859064455573137782898201545980027981989655553217282732250138075026628993840286253866261033076242567851305724549421318245315818844611367751238084571484061635988429487239060837654845989809343941718065171902891778455487720479784931733851400390956293924130652018206373377395525488972924523613553983719667509052509157996421312520123534718022365011239163081122300330534443703775664355181491418487386521694855379958548822506524021346802848689310236240356320709661573102528389584831216173270649058201946671111762697282844277218984353526648091055616350302221578961791729715904155737807417761434715934289252016131046271003404761946883419348079469396772864602019326551521574592408556390268674580804570729814496864378161260329089913094078146637297634188815610833801486972791165158852089857358219734787454759721765625357692827573251894320241579098732044822050657592116449722063706161322740365115836302464251952252920933269067285074673189380162337298712095716901556897148901294606288248972929704187378354006588656662889000127416842672194445473050302302694401737527385855403296719637732521764478789492233808690012884300591244642256259251153022728208749398217180360861324202204728532210426035034993715016115845008379656942763944323323122607865101431661255099185064476642312411821767932505600279642771020945590029130305883352705218975274244671355991293299107410721125447364669776318110027242195135574547992914970486747544753426753662813114849123429198831322375244867700949472392006889901553887112139081426547521287634741211077880008366897744006358480225744612565929819072690473639330032199042384779912247587231307655140347311357206880869583717633953767215514890782198759270430308441697150352282234482979650911911576357812582234876698578043157144963162895710125781294613349904143069890856766632923480369408082681721893842918138293375003500029956181467040510673802820839319064141427538383177548589738453960966979177945811119795202984568549856496811227188407986034857790623735448619281516718102054205016176436387988114009646201959834203285963326191174757206787226120029816593422530972277500063929722442472724748700672702907298869787176783114575273108422977744542461422181430336016465921053442806012658072117115982500136351675312057128518356229290528647492929211669300249655414020577807270999264740016162769489578354803798114627109906847034430338676558671800960482030791200674302867257463073842653321367041247010645490424546072857213314661494964678175418918828306677094177453241640334621313466807217174498430888165978012505036953387232423539392296657841725887243098839348072693664871464677946162160544649771581837286662961811226201645205984150495647899792827786435904355547162523588498061399108855909484835055297078118709489965429027916392313699154143550623589308082607256409701215564211076108921502411423705503771098964786550089473127167133646218207616107431039052282284085495674554992780741664857430223308951587035816151877195290359421692406618542047752823809463684724742521822352305084445192196985906679908889567912339319961978009196063094013036374237805348107739445477964963990622122172450297063066309326898668453052511175106558137329405566611509985657661738906542592438558386369068583722054665819205004612866638075602363052749127688380740260992352227278232920195874323982376824011204387544980297326174283851105056404165556380386688277813358516966977980720020368007975400472144153933167831278639419412869557241877322103251623890841726224884505933508801053874105143656377857826219767474601542680459254472421360936911303852517816012304802323485182608190968265530868604333751172143783779845546829431886149083467728855818135225679517275403950349920470625632926705665539075423226763953816242711286132186085048570302875390295404150650415963737491037212644133604897830865241872933765387364135282541912685611030698304784476029438261270352329547666948049657911935746192332892137758049017441994801627750793314459899998400229534537144500696489287764565961541126165508016414428457105677062762352818890758027421544623422808775366300108965264966971688975089063806473222433087825626434061488810674840242245227722027377298037972969746186267101382697130681447834619827683560173522983462014513382960750450708644855257421436932477026754753214710032627939866944726454583492327497130666716983307534304526837732792258552561482719984877943392730587826679086353578868313644398505724054314013497682761134717951883250514727887931812057245834031269208447897679461017269490565739005947063136895757433016417578406594803893120320295963979105216060048797055635912718835585269044598148560950711303852891962490715941694079401636043578159935966749671645108774209101718330475021018098775699558871017531077342894839198514377688229157548500670566131256809195804481656301971610284762290314107911861742482243032616323938658730359438566235523799808409614436047828436961810242227262696392622607149202211747963727409847513953880338476651171504097351979851980791404390344002571560499450109898869272336533500931126857857692148582347842291195794663721397763637843253269336983882376053605610136376948940240340088153963947576301579914227445006460549089858993363051341276034917710993125941945801206355171837979603373713316210466121497570731940040054172826212134987778744616149269590803194788575314354838216298278469613820158693636433563412520561195638076845610050097062921377974788018644060826573466247552787583441687169642321184674019026000017082820052815195491520126741022711609745928972860837599850096271262424862261080769461225171215284093246077920797761524977646318860169381320625620296581992582354559684020499507780191917775079540277293054298597609066114037652708659646449995010832228103415958018312089438308192177258327042640550556890520271158403025641482081231542126762403734140503020300653803857348003735177219616853451075061309037535182654057552994612517431825592613190838416421712578836194605014857491262120249132919856636454317594991453206710127501989434326441212774743100082734305613188714231783136088802654058155073103613261991386082484678655799678148824835488537637114947142818697471385348055616507502188077833901537457410648301260573860707831192503703262313546967792563558742206135095838718959720185404908871068742746432081446589929659065402827953522678958107483396398080900081760893036892840005551292404015045329026180479871086532788638314166331149123815923231684305645084252742120634789082734410598212890026561219255294950601350327274086105882308456038827179168313082327524397322566050122765762378707703123174139559068915080005236368142030144573672140778306804682398112657584325851093616393001608131175177786292788624624533219537786036363350148767255580090914438115777488959153247586081943688594006020119713976705850383556058973025074883837683868702821458056924774612239232367478800496920247650848176699979807655761348310300383634607669625578534388085113922068302645416793864009808555337473335554840913146721906982340213430825208145366193419904162991454516557880968757520186182915359363002596375397475104909207132504600927988206085127458175014542023647893901379666078734323143136562653025280296444045464305995343275134221288774767904561787278623396506283394955511189626974126180232692417110786277029536026021313093269509137251622148752985769603035034704852447526949673374774004595166008040601155903831489417263313897972518762101210147463337111947857213546691937320756312559699417328033541002580828165385607661715897057841185984452241591849831007411115343673380521987810912562232280499096751733224705033080821971893719504517998884663312747117278317628135871733875388076245921671624069347570575930756968336078215547216751816828857173656105603360577929618735031026859070847916049169630027415327637393000303601089707928063625313732735279681108277740976057386137057648543872344258825268520621254828476372523957165511652959442289930500844135276082600246574657924737011032448582611490262355015075236269976256105143985478130976156810358071998352404633789475960422735165229627979257870488122455199865682347433150009807979881651210745790185194168046173909818092355331842379967819610900159399022246554324636695240657802403417663786357095684159093445181060396367315010700715446145350063504302014570176133394739583905182636429330526877942767241683536815072666437976706560505498044242756353743527650217611659829656879823630455072913847813932369798342274884560380319121216009983440243378962913440787004393399905014503658148460826614547845613377951555691966591334686734900261641279135860866126898380659540613118076279659376627763250177853836288352675171752445851130073059624957498576013503540650933459027208007441511147909455341267428486196295634332881131647575621059022536598558529402240515138656865174913970834343680047805842597256098822925723084616819891006960207511393497297198190060562416260121655914396818505705077703828299187593751458488481161091838006857938382939456674485178920466034931471521697674370246362541540826801684213751578872130839138470455414184014644323077342815680815922737419902344452733803358078160749160947813412871415217576539209415155825759194346184454710462830100504580895872492775086727452686489417030102232828595944998619886800895442582205146472188016864391957420076553190904456951740625354773834677151928282302859901188439004740442630098794316387251545688229072752574804569398294236997860358734006189401971678067636360954183528113367747665272990112855345222432141637601026466022167429312247830436340964342044701807838496746301941178807202715990459630822416115840493422053316377306213019164123998621013307549565216523521938428164829825317802947266131378116279744746792101450615697712056230729224770354815040285946632105539536356189527185050637266362217659548704834299414433519057692006270123405103770937721420159131468387596029950963642236594192803092986919072234738376110624503869804036605907700244384001094614305299984076628361210272316075185844105870713249192622331262122017252409970541200142019908782371363073345748067087581742916649409513864954805390385689358475914880404134224677145018362043612546021456015579949260818895369226337932165370834219343022525514515625855280782013762784154967346713996641161858989612362446995558007705558836507022085229646505445193473204133680218557438197268542121272946584565386967592728145138277688943671632676915407640797269236384100994916473766794959172128980485650403678403900387627540210454473761225459963487539531269383163487808578212580242486957037308157614314347228934967168383512767989586542460585909194359555767333687244030774882682633397926736986167810518175068414745374887959109715401015536977823248711293811465040263235754148600122550495678668434241386065416892091687019924486438483130287234462163714718619704957589757847659614758702562734639492112129869434764615490212856248663007283620379156372795940110155179807188918752396843405461857443541834965176826609058174107978105431222774572164826828729994160213631760392825417272065133874196667093688060662384825183168922635893547595083308490088881466702552278974921369640031970549070514902419715073752591182547320009947421444400018876111490235025578758720868517679264865554331364391906884630431686775800080401280039462276810784612611980215706018664140577852804888549174780591607064469350742620291366511046297240286025073637013288930770227165945706194670809552175569899393726198909319909732709744637021055812391719230248231983623158400380579394326597746718524673886375324983317352613396061870771265591167464676580047224840785204970284026441125596723362399770780534182549045062242260460435631968190530470367411233102764346194548059613238196073706091174680017275175879034360045039073983029073334892510706791231722247085733402604262703511683164502982061078234455547578943320887396304814747584183489258628796326660546806927549218379356707580165031613401593990458330005873711988374066814733781620009490167267527189982369768639771479178167289441765889925472904739918293939508319941054403852830491021776676043844299101441938974218124272240458594432840264719048664725083781242130281484208202887890791753947969780087166034706131978958802603713911256844885526036701259108484478641885520174087754563517763815449201578532168278030644874066935508195561411682854983806334396102501785955423111612510370884894478212910038609742397765996887744738263880947524650035564866751191041360139901591173079970607119382203938223232973013203152854741754250050021217343968731912142727660327848011283208274628652738691060274492229063607167985955223943462427686642022266068395287799782206827406278919991023190157568165966716576783257349278735152112685357533748896254331462076394399114579708208130743646801600661637527026701297782762672165408915799038180188110488742825620907455896631705028144441307472125016556059300265906232508225207126972122400335661986540441614035247850433696078932037093359176716984880365166901463916774012844357344924999236606414807474146230658750009647124172224484431988496031935166679107541411638237029695693881584384273010051113598918281795414660649652606727181480846888850657496558819293827353031392568653784934001820160893412394906461020022466986491991707207986818387988040689114187038621982140912773370139031836681156390254250901610180391450455074482494196688886687173645458215383485527418664360806940874078120792839749918118537098242800108561088821703599884458803988308625206924593829047679076567998862612711365622268804036583016097342333639025284653077762686311226569793371047131204551239034659649603596605682748110675793232340446929237488107672593903416991858121666543808253703222821858765917127088876611703990904432596596869326026448394960772598218336210123097384418695463355343935897498757865786364718045570374027036373990074037376006970293228815323951941287233912814992760150992553565631313023385854426351682559894934308680683895062850087123632949453319875242128180666537239195922301275859526891316260251297739385928450546166378810053791160563453924986717598373711326645852187130267431190269736312410353345170518427312625838260224515150304043828710403512948216464018135872973625103761947077379806270619441043139686772774848881082736967353288567163436191525497186911740500960231592305148313500853521301386552306231803860316157396332216388288835333572419337575156357111648266271653900917527805188200550079400993062614482708124985064220760139429743945880150579206583543139381668826374237779726651789475341675142480611315462139611875019171537385126751941476440300075608590587204030053907498895559202567565018088652132595262396632225402731272319970832797202847406666684996989065568822720489220100883527538987541623746568575582049236812615303774652459745295484914087922391364112770201838489249796867964275878410500526487423525245648681673178021828091690326373887561416494396385887552957030574717419712377376278751295692756122383361848597358164371002587269128702506967729657425385118071065936647375105639279376290752047142522889063211588982632544226094191561018823162221346894562881193807063582927626307990246186523603764156629139295565657443511761011331993583999441583651819573375079986038474178014012760406125419712369341257515634500905579408203111109924073586010028550544577721899233583362303768352674578697145231233738211468447887209804133928960133015732095917338476745787769111452238638195604932677570226269348219804987155842079047322576661109326765757902024570296110014270894827840791323107308294231850141235997451046656172284873739673638855221654027216168356979114056682691845065139175913660184062947164385411231524400828542202149498348998298011939971779434847033807609737036182748904512041058455034453756073911011242149767145060664021410327381381873260133221952783895571842070905704429696888184534383962316079836255548292784968287800257864392980134248313785884681615125958016032587604942603163911360261255936813820035666637702780800186609840433661719495743078095968986692093388974663928571745228460623903083539688953942160061254821534969926713606316950669360535342328035494154584964882826080954161763463311228076590009955543590635766555850903589642738936767128857068229284306483948860781716212395704978281541970892970578953821651418923004674265525849106246715913910321526858360768538653009472185408775354867446587400498366170747097168860339754003927756108967655243896926913234172087313905861158760235213284328512387692233551679403424018170273854686684162579974309295677866848630382184219618630381843754762342972189315669742392716275159857795833140357822881853571549386042680190229166915522118049234698323371362003543619788154284832047478369454156802944406518218817785528451679915758092012975293582724918551766902379189174271503736282632622695851085927267630557751591166264129940443832171957242070912595569276235917053108461985347714474271971651038711341782048756494955771884327767993229050741838223252871711555816020894240785498039016933651504311123591715175807498127889544961920283237399008807104827122326879337661286135617443054566538747259330432425762231950267443554253379232338901737745429054697644621139733697794838052139953211589512000628718214978055776547469036352200464694333893225438655816293419853706759010575779953527239709061308907768653080515101852422019057023319118077251007498850251246561596108152543993427589635547156091157868647931359950198691884851059024223281905826702989170708603089739949445057073862577814138293612872878647052784201667206886181999237180878345100205974618333161217678649903445722547731584990395549865325236563285083573986199339105114013601058189944126160861518900843726348099626402901119030611925326600649710817930911010337526556258005105877890597878756740897273585181231771770906390876156441580557157819456123283781608889091802299034193232569368957206389627888238866863173452658248415508704855467793246593225099773378324202243351809606403521204729841279013822911378234375328372343339458364190911735399982968681367629076756719712676085072005738777358756844094849163553191115758149608160539895343584487278964909887675887152164639636199750176657461555196659872751821302646366412721078402829491052474592015291072080667442817904087612268226597112721373633108292259647200663534807206322509225862763653586414043086700520046765823969334646254404646142696705781487572713704866733032345406659339869213994730716346419019030074846410030945623093631786174152309736515927835636710585749947437070947390135328611166175374189908279317967689573650157346477082936149497256633138405073306047442370206701711580224669720666856559181146534674415560484406842604544376249581457531199567212220644854669671326263356328815834633573413827651938156716874362355739754335130940348622934204927263873500760274899527997431164947934493549598784514890723819875094306960388103879301986892200760639143070737483862361573540053114603285485143652158322803116227890299672188933596363333609563560186988694870451619216860060244173678467809016414299124243584310990988679473325799162085861307585794225724742583333492668652248817341189149282561444313162840431472189232403401990661877940646202277392353144366983493775318304491857271206036019192760101835257805266806058370443065748052135624752526899006796711505098814990622563580985405435311259429870326316663791443337770054360599706358744404773036039820956540713074935184878528560295878217996268422937389018441298081032006022950902107134576199488745352603969106610030991321276190511220387220588297173221210101496950727575305707116668670046585694481492867136078525559986104065939401250511102724018087833037586866138660503589874237768845215229899158380734254612955761324427646238892777311505178296533470178363802299364624678073162208808629557612884834837008586735821329380551415187327648148995429635176908256041954315937553339980262642617968311013584501955736261131479118690615338722933917482234271332471316347820851870247114512875921085758706564210200200577445680698450958806205731791528057979411714204006922516722181528760560290605562547948358613547764659432398854313100223560885561882716803826047601704816360049060923044514923913845690535783164575902602919669695409806890122420276801877503508340164664805028912415669278162661160733634190820432063480313273286840654680659262918236880877682022730809603982147026264766009692384996313887962026719002935383913642352346054735805491513579374033796991227909801963301331552468011583459543222081395521460008951252865377465312262208567420648646778512835299739241885807536801962479116051606681262467421180614272682371755973432935278952275785230134227594590838286085919807872828382465762994417196575844088544544557225225809724139277962956020960281463741849841108834937500399119090411465700491339905189127745503210841850940862753881032040925030846064402882357219342007405402224519325587262945243875868585497617036635700629617427347388602362375663239205551920164979162894920071407790767439843365117204142519125551847860167323838689434049314065034781045631467671987363171188876287726619341818401073372832719836103621724617949248561521226028323220116846427803127040163471291150268364852378375050872448972479153954447805759954162835828384861754116306002425818482425599086285806142148506540612825847286700699339794213671192924446124536467381609458156037270071665212311867358586960493245560625669972375467965300671919488119215527627447509450170240915953087420986055280193833011317960589289121179437744924749117715958221415448726458463816421517240685522711878381515205245784930774382627298262256201573881083145331445165194236438968626304702077509470295319421079071630279570268203100159826106307430873702622718087417924062753339190726334842341076902992334722681653767259904975465291268388606716458090227178228982885729774988306926165417587790174226828064994669583910925523954573460913858125734726774299289715340955989807042924906533942911815225546318600463835743280267374476701590495205342229809852461210140926611716796123880919155890065974601708274014195911627966787458401258264097664541727463996060515823561991506962742703072066598109481648706443937787839436323076499628331555220773045210633752552209094155715342877015157818031307203909715740921482211903000155707628639062954763956640330723524748577423942538022633019152119102443571778150039326771756141212809827005182167565572182883640533603570753738277484636623589869328420917337858662490704681443046942337298019506126348904563032361217746491965959602027188488048048767711590857395249609025663333886643407848892430724339262458766914235282265762695466738380954067210571344484963942943477307963438898616721151619078855598690667001331722714497036051399408932152402098828327705825443745617792442984280465930792666880123701294830557041761500678576090759277042723383236748391504687019031668492545895350211281952516146314150449738214362105950641549208091585342480214334799696023266877407695731092053801285944085959551524496770739648980066334642408030457386271634332709159030051357274034927894400520793523544466954588973830742531920008536852307369208159059911924454730106994473389501534909679423042771354059559463415768616664707294348816593787629505065982467039251170757043204792457559586549016602968966767989972361901166688453441135287432318885152232321148147968037217894327691881306991320326571346607689788298086630702375941689464476682754283674237681573796864778201427475221005324234915761484588557166405856109052751543899709861643940244169768898162466816874131784472015006017743778949637768362729265536325586102319438689648982183679338260390397860975489264767681629057609397757357871103518325630748810436324559726116670899529624386718772264136358146160344208923325639616313306263763379943880750743780909155433355871523434440823764087237286721991432896641970316681024894570774810259949397639862464095082198002774626418760800707589910853685742816815031087306812314111120951171429367793924446000722140375083595259552115876572308251529852962879944256441413730181594326785932498505702822828180650908218516614461086056256217992090972202226899099196483688547372861320100848059646347799609815951129902656926787316318000100259696657993089779549424088192847734078507351357157361064839440092703981268202421742868443735402446502760488295894476443479505148841993084055130430055880815030102852632837819735044859595664753511707647456334366257181768083787450512966557351237099418381033617842450205087093768271360564130831143116655564648297350951565609981962693337270949487905653655093732581654292814903107946527457766195346248634741975944955566987383203576226036004902949196697119200635001413279326978720055602388040029864605404857282005520162887314638782866014650702828980845845167859440817280530803098065688469275282482097036855452908658570021573132914384354481992936128775838491652468583665696676285604609606249340967816915225295336600584846697409492494282337334283276673572401015371750581601359841515859544016784256997382196031193131458730120228167602626266283805546576942945235206518785142032987484728069361709406164397790971171578297101969661842872044795980501674467490793777246910293660717813713279615263840812430183761194339223879230041631098613866163858418572688928837488099146899222903055151166953034556807399716680112852835130109481284267231153089526827480495873779582246653579539352507250661406011185313791534942569823711739387779729234712909100842205467376143795271028627868187365001902853792293265815821108486773378042374274188333210684145530100703841503436474969686593429626457482731863621929326836949719824781891008642904344262347742504692531245451681755856365148281816865735254672965224183968591400852638061843288171443132478094237761855013286547307734693267473931753437877459674133504459057532568798732603272036813318254207314493932631048782231832628355244884150292453259253836673482172206311268544114784078203638353618689656827185714212776171993746185954516040401814714654281061517561553719033856762726570607452538912484643390889996019561813614913931747549613164191036672715398897600278025993464314212742592902235558239971746121241280598760757562043076867043434405298467598758468604756730364313492120353563744929515098785502247516056143918718854358564943587603546496182359563949840368015860808427162693312972767820654898557417296195814223470290906868036860077632179866532749849085251518750337631029571579299941223222079738759550304761043167262104125954164088386363263277427012665721574130033751600684589194307005142259553498600450567532519922852829280511118373999466222303191259796469829941916715608984831551363574373086053663073286897182898805825928650731801397895639549119819763042737786760003660970756258658469993873844167991313332829415930745371943056224840108255130895058881071510803220354915393653137249816560796334249076194160657029744591126167330809228697960533443515887021554939354173065006111299136404902798386102065678345430821708061720029823926149475463689442655300006256699349525836313150430669397413431090705751969948464680256722680616148677467821870781267100862650211527342635411728165899472490091824723955830318032448232319911760427229737681697396541174246759809930115305563566740253206732691005735601906714145897234164714098467116267929968375541578656498583067660547425078161220705772261032959757132514223204195361063654044854654186039473340806547493135194325531862084263381536753910417960956630935728327687048590646153247573431845775920586357677596128982971653985193790366775051161201804982724963686641992248786867329903609364494509855635567374702987662844650275716663855559767285461083567858764798742668529248658028268306006940665919400166877295159358955421313823789255775561989855742505054706421315476191628808214113728862103560418781559857411354634575603520386012370329315132316910713728735387587981867109699083738250465366270194827314248012032426358229167196106641798012113907485641790536569541659733859217100980585114025175303359129658407213131666158126629707299195473078112554894788850579870790495743146640082368235073937769256615909160725593230290392811828367235982559659243750279934998916309511440376144713627371779959824699176220961033429040069020363088285734995154665810342664925080158934291208348175300051172266424486947421945775904476197312196645852956217720601975458984197588622140552599615508907773873844946867057572388832276023537671749113986823861964963500074349773976730462592528045643247420357838689393964381079565849436720199647539562254555152133482123261603296220861806481299562768082017741319085312144965462018269545291366436350901883159923206116201674500071435493351279505290579503364846769540357252532746305697373002071976323186198942959369490456434416177546125318821648767233870103562031715905956046543726796018570616992491181373653239833131858970668416635097792736510953112237402930951808894262648624204106707733850752100818125898064706685671800690907535375772594946344806915909773994907093367710834434026046088657902923135699448779629486811451218274301696521147150102634476808390338253062393503235462714947538132716009001172870819596602015685690742348603361798598226817693297452249790956400722305928571710617731918474602659823982416861054209087316196186607432315632683791953288588397706959990547119384908380345437408821393647122230789147671126827068735903246854034834159231218582403213420601612691074649377501840998870669744734475795318329956395674444241189354407013556561248990130670889004155653890050972869029143759246303732975354916806318163538560984669106704036214517729177677953523069581089638471101955066016408331177679252731908090367542181391827330529006867752329489092440552413957534655222972763480456794712959227423068581700555557391438095550627943566121388854392882205714963117537995917578436824806633362965393422139796937828911445437319106039548801547869229554167151998105964229230309726266219212428434599776313183511959688360453012190393679398002274196973544181963402657090873928128308217028402220099334281506132896031159970602606777660433351061635261230850064210229246334784362910707204994802652338082239221274169229114941877089222407412174888367709300537742789026280531786214775249060105522806262476680111779223334592929989414512838337431181820601718182124494124431659624124856554826573997216543481316162729674951029407953230822500666698531103764126011294975884737047868277666975792216038390409840937320613846746180619921573671816121807421389868444381770549219606715161011436348158665279325225136108698187507490726125696260350492963297612816959592858451625452831258111447206701318153233864402199187292220308147912538224034672439592715612842122738942645417553298268899931964627397694823996022367355108835922338755783225202838266803987070305679628885213355359938246558024348234530573912395578136227652856890485064863654115885394971554703124821968126223115713757429756220388433047804072829488369121020393276157387337615108902500107672177503743631682428903548957448123013610758172535341696415724603699467875722215214471382204886862859096262449092045345578732100833371368939038784470136775462559944340508485686785950865740557679632921455771909656651209608340918874223140774371532532052139993874394893958487476605120985226483166089624790503724719279074637160714988010136986342751954913707773442564911404236748405116518823957907611677085546620549247698566293766223856945999129428387379193801026863813435786198341537493856569830631747722420766559475811610462643469306968623129589355154617970535500797005272000722731811167839967105379931225366995401306665298736059346808296364358294920381873919707309284151888705658883508004760435882551336518158534959272333114948391495405258701160285107364322191311875810896351596638049109382275464038257143005196790726500123522886476448871336054437017710419219614769273271474067682683666300865346817509775333340678058123462840602649837148692286600478868743546560095352821218416519151500539844334147932041263166697931874431539134609191854293317302480690238735173564049859704191924508684130846495338428444529403966858366969208923449011761127577666513837222356563215544159936745998477337699450671157723997529763881177360265752518774149863536182534141755644878863848954430304886437926966107901631205734170939751072927977789393698152136008254220517936397022454335692713925978808705406122445949115737965407934651546780436479496987981523669986591043820874343433086038332177735200431756260690787898763662264714275595106836570354466218291646150620044968975645560017945345489960728774827349076587388277720075275614547924616161392427844130148918276074664670274939111219294331053394922000170517908953249189296255048099583847068893685659122105947291175307940044209602253155863846742988539050167332697951013602123394133402526950623990872163916592367727409379309246501876317374726353984999156627570594297916266660958011858179369927918512442297237483943506147036855219719071743027945073772321654628567324904503772702989295846233352132663135391397974678495099601596516867423969779951735003406395539383740768384241308826714751070176266801625436638936659357807172514556194975556719820198308924684256937071952453677408804605682999012745738363590024772928225004723919934977364613301656127756070133698706994234721475810585148304070396894067205873904451538613311764749742587425783902581199548855848609351474236229227715947001750927565922907119577529587425584773213846500525431076931121629272013359573907907103784448420974792170306963203556055477997831025355864233776066244763031692332518781198742514969894513993589809117858194525149445992414606843909494939883699374371689055280285112780904862270530725108138121605401065097934024622032184301069024696965344573716363223450115463807557066011688904463847743230753956763069275525125904923009158510612778446187311066779477797200421049234055012818820994279111119529765130729063260982188725103401827523343780259834275453248057138206510467541127112371416513559211885140440007306485610532264329900438951009311339418532466018839894001354090535206008955149036394535194488267345161834059835971863457726163555604274758094081099477604953492927979906185129481353584915528363165544374508646818085775569746158776735503396526817681825822112484849385384867440394073288813359444706545570633914184644137311310200008093775426110572168117526656730689142010811047986276445093355550253519806410271903558556274332533032929199014924119572114798024046450616576509573259437254955911309430672126989645566353428604533230424440926056557610215151425695553312388875184934477902823192857953705693342512019361767139150683157351347989004562427315103322024176914750373601714206132318603493358235591896717633217278074127020933247223950031465410674646356010578463906568292950290598064170010527295553052701112854477092827098786906552320979522603281394896146041088022025103457198859759583751094491821351092054182432626251258542395826717844574839874575218244450769519242933145248110874206716478042217827744183819962195042170448639998522093969395255682336190887123228890964277911831168681479583870274977846173614602032253683942954646212724826023375059841892065491805245170487401988456447429136134953541269744671495995347995130714606641113847675204630345723179272009480718917403374770876998394390385228769106391382308346820502600123557325923094102074503086372375365780950107158945109138407135418846680443153729711787692277409077781999276908285631160502635247042160627284819536649411880137041029501112635280027887509760914918386348751547146324304295601386658405739985514489174469267939028544104032685406231803706176099105658798113118222705987464678961999854245238751948712048114907525542113830976553337850226517468467877024590491752934229524448002393465040215587050377108789219955305509661080254408928667352576404139860254034821121047574525771222672509061587974428632322549884755796057912556810647242512328062576085148194862816770343109248083509152971634492332944804723689318546871634376555090335236244306791568604446786846431237030865236572435301714535497452502178766042072047982026701789348230091458070585535129109017003151560039979932012313309444306681060611364460376098786447173786056717550498845190569953987265859104871016659251114731968629786150684216623317154308675908917683848236114395573627038210333002419290088855667909975401529439908054331945168232392161343948819774251191658073517762243804509603702469386434870581006483397932297230260477186537758861546556101054503619888669775594307930893966981491927653925508630624249843582108701949835863487195700668435973336360616377571063621450397001987038161713730359741630814055505056486036720536716825022347871621536691371351754147698300048798733448249959461828607744115552465431323710354258529251194314309620573379624027976955436267790118396370077459491622774711066717359145323071560699593587855022304074303622040256624903052158307756446530229457975578323498965512613758335696521418837626978765492625539896518200380301993075292648412936783068208105180521852777103486664004581570478459128075212399979204625858362965114099275098967389822941023384836567318947218262221229629683774785582499525638256399401657948578779736725121350966370083431115605407796299183045530587918489860418304921346572182745878171212010185725616673982161899184803239145200875235333121795901435168799760719651082012694484586492293608630432039175265616634430157648765895294802613064728979954344228619808202804823825579189600165417618239169126417026607763608108696573033229245026783188696480330123468277624933638433578760160950513877984919813742605099421666637721920008716505887343512258328263133554300485426799980821822873335395202981957648095258598210474616878124402336335299346820490280988436340407291154889927774982660178278227880877977161396385395754821660156897803721581570054877884537658092632481409198021898316670128284784223384272983272871463354827550209926588856517416626930259853943882361950205553647981644981896096759465556935647098518079439185687814351123722567271016612285729564900181828213114156802529930810586207139917625220152257815463335278888243941524163835404770631115818208097844467297157442484617271177072737676284237694762254056708064230502760289288084591200782742217447984817986298233924645848786156287519282618221980778811761840531426231806529744655799447283174416057795396712689051756015450267862095353064413505936818624622184929404435658153102172191372779514419579786594937237334051406915038713979205313717153112182707558387664736374421913425008610164064311966291923896328941307142434481740791072572964617424838753077856245329043316245651231360361203841429714707636077819022465786901574628398566174422610812514119567164588190807181612097751310003901504655811514333320262492221494903356600200917959564435317304437326597628639424022037852086003988141652003102573863983390221669352056451372940060034383007089034704352252811355139022267524398055916303140991831368155492682455905571311644326435833644531424325308027686545279789569460468509152369030975462411516833787504359444810707116289784438419914097244175465950281695949460235322547707351557636457887162203277081383678286438892380677374916856141832091904091328377112776304609428421968251861357490497415873380398637181081949676464308508997627892777007331646271461577829797170120455535863719292942596342366934514683309278264500843692626127162471055250210791069603401007113924462634330278940190672672001170491513123794975332707059150322661168278718631750228003574810883308878062930949647979454591939682046481983369317994192683188989690749639406514774126097031641172724401173168404354103596573875064418579851372992409295222037083166022477075776048672329556768942443728550553811303490644834916506222686562353954780705186669145678753620144440644824788780601082996963363118689021268108464319474426875253620018468133262234935922076234814727998552328263465870748701631429051626372575524466732242497270934031849891081352788714921867025836972337796548157216769823122190490770522286115609689011736032156792625165097459501629464889454299320432049674740170859665067691026837566439238032806950817320895997144439812217748222593959122102504527978105591211251188026201182220243091781296860331522788892365043479073777401572289601297023159806527717603334100974785587609125960376183459318285427503631260580234063185354854322755171506415863609006142791416240041115992880442284802919398253833356476103426912731226371200160927743705048991477772621337561453044039193010769747480718373862505040272383624031111100359203035998821820553198539296064839320275252012014871846605740466442636858083372389742571659952121004271847314223184033935396766560317402934226865925208439100378266651415582553600202338163077427892573033024108726989634727396869311234603509131512045451151110560042896480977600306989029179883911781620230436005972053947778563987065082510602071419242786037423136115139935183488385679511608811627998442427364186415014793319527474983128675262275384463075001433058395349512426032674429872720655550103409668100214786099253743703645877845120429316311893825964348438957325100033438922624377189232094839606259094512787110847908952971044553443627572819759069886101338559816968143909696120172840241168242769120818406063134311707086352515144895411637337698507748848687389746740531765763278538560195491010757682248656000847940463473921090244197630886697922612423901609766427833397663906405697809090052547684075364846987700871161769171302660502519780972884127114557213914192526952040912538979950745722082045786358492484776684248694182289720427259934505377909302525650915718222167007032771426771762681015305278806324587397346607782021261984166747129789242535427357908995938628872994512679188757465891457980686706073764099451555053139576338843167362588558236157631712469420168443923859025039841363750507867178491140657995685430519016575303830227362366051195065078363219537380457726540444255518778215746072424342470048392270920398295601187955623874111242181412448687289681298764094392795613888447752250261539926479448536325586365866372634393798069104303316170551971944675148760706741343323651356400515440630486145901534631183444043827473797742548969806277638289292005321585020282735072285419296507991089063842479087137780621938681218604729365132014538090957445327396342201703596084413470683413967172511141279442992694205656951946762943013399691366978577596153275241142065376749303422272307338208927183682619983883140489630990962987750358151602503332776253474166466137633796936362496078735257124767411879529022005530234752766485983886982439041337144383266236121022005263948510116317428091632711076258421261434957581158596234729933825420125234686888860843569652545960254665892873617292815078158995394821637434186584343298078359558006033685041424642783755244248747096603001997760284363227289528431289140283008077485955486578898830104986807751367747385039982964232344872537183664750266983849832042434995552523396380900209369163313509147223871956500202471892160830731949923100458977606164108944693881509296968424338154583944948482142396582525480019282535927712227464710356498245151825853771069992881462630316903330809156004255146305713405060165636674744746416578092735127329884435274817270305136160744609823843906191316533189829621050364150966330105685367208773458993165338109936869827664156682621590384738334918359898536437194634617066958660425449623783635300392353840409437589616925850173247280366743252004460789785209080151239858319396607835551831215715219860899342928596179344890068867276799367653609878660410002222465407287624560827565369567513607075934569777698928145882259197005087148042944089918926484791686941416836642933721121071482422131526436174864485930369792632472262305053180187102734840850937169254460216473628231666446518040275667103722425931972793406944828892149209659527860091678880832385307200207528589185984933298602977173380223280623614585405772101495245611222772826421082483312934511254631517025388978692600721654069654141760783737442071670070892313395059331212696816863368498839968612398937526197399312505080895448682261895820729908013401438635380728898571000736897469150560519457283440747813962278192529793130764190531907305488637748427233725068398525272114729702893771407370042751726214193600418011913766333341806148523503031268352331742304352401792393738947283061223804962820663439966062193832671476558858254892043637013899647645009873895377424450667909560042053528217264183772720379496408204724185110932132956981097167203946236883596659966437005238131687988257696062290151828804557904443674325516884127458436070567036164055370041272612941717160565832480400136146647998949066646960266621408501652211736412538917456588525388867490348478545297206305170824233045428265514430688357495240472644252992159013247472751614216801142473668479514854909990836204002249787428953107793751389896761455593872193013460327021175700359684119034895141056919735775483215040453075710531081930442064571888373198750180538288024941937987087991420712938127068700327717101917078040172631945626127507466821138011262728924455680430643164671712746833202782252597768493494182130105068383199269268333998033097940260498557235798379215564709021249154600399310061127284074753369348197482408385918636148031826584357127184861343852868981879124328787369367890530190700883367168346798328046837654282711379536852984328871667746837925720046484469307540742698281343057755890775437680256096118176842214654756986709558001220546381497724476892187852964453851108011213988191821950209952196880975590360198084830161442479132508042532656949927248536917639290105029444181697607525481149696006309227452565406972356862698317957810746789308505325895846622900237688680940643211204152738432086900839171935972011807244986845033420436920301633632286284914677466978463240214585925464982278956927373659809771358443591464098576575058656876298277938503836798385311380800433825033280757462736627835227978245519491636663047559628021383290514734302402447296757138251892440655046810250483741878940985480159557261856320807472904464589295230857424477385744734214147763511628185564507898959553643460643953082266968249132026452739071878381624920767410184894772801937315319968293529499411306216955162530034302518433385248989549544790215485363501439027977788270055348708838962609042983128605139053125796529957218909022643089122011461126795978917557715605994265902720153783621613788515740060400420974344136918733927012474923770073625702924464496394699150107440792855021555900062628531504270364812181403570024734265555835593323324616873530861040612719419927571938573463031465237546457070109022360584049406227816884388016984363802249477285346681193389637681378229315377599106402376145381571603442367869713115509911035182665472601669365695256725955216885021059618328088638710696515278958137843447739696764195155813514234894327554054730220942288213149265010562731723147917698736451187574844606177996839467420812400093127867083300640815324837880933756925820142878035280186286829146839938496239170191437544057238383051260557704253128705803772449717914375341301693803252833631307849328873691648748342379269769514792934844646228767540847007441313629922903517925630060077523839401006001360176956147462289911701055180152306731720604248207528217462119596385040737575253950749805666610931703039942419109220486899852801766193694240166780661133265271510488695546493767655037897558408295252331543479235740166393135408221329830360378808513091194759900523571212101714738560191678012717180929969831536147173922314551096602970159596955600584888517291276624966201769071717013691449668590301384271257543943668881908744624101987361724527126911467681579185419888836759970771958186714803619822027522267046110772034271295194559762544445772834897318422322546842971426588501933924911067718864206363884595158572768768338740481640042208075609881061642522932330353179287602400146057322929138367662218377443593085698834590175773311375650964861252603513909714880054099906099505864090067333620461598728774920523093899690349723459006532322468541188246172712234599685152887277120153715547868782182706454451763306345580801745729272058021762858221191447751588510434686935306474592679849458101680898760693761436437449935677609514878064009229003794417443550012454560693603010273105802367873452170821417357818325239366534128592195501444514838614477825864762961196740564165098467503512802736569803486956161094082131986451457877540429361924102730421243741919007041145376200713464557420278764323978094031417521054881071639324247712498332166973031076649005382504656895004622214449324711395334254953364291530126779824254680185489133033306863997174943296577931782529816235960530755478590240935333082833221845427282739236979873765338557683279656679216937051217792597402162200213605613754166199126871046523324860830729157923748214601257061832186038697890203735464724948337614807780145506102455268051254616056407386145701377832575321350670578915240204885417569697003363029724402375652358283089529257549422838651459889724586273258213183499223997736864979461571542881430674562433234829742052505525816686953416861740401608306598446765380445630201027827887172097249194422048887209166876420444571741483383433856553863188331626902274896785174012527958842021584627269572621799519869052022466326236426162952809968897551704731106678120158044498312884144270901189245155589009939680866262389223479999494869867484926624871289408990667299739350070801294028370409737984022137209386539895032682728889815477575932730341561577384603522181667110987329505392018983404687310088782687004138178088993361943723573779353563893188072844340718113965406032511408943640384508949406879097097500688558376230408620222215252913811886927707290396401566686882890707984659133847719299450253297218290114335298931518006434988036075748277255435935965858593356077131717150488092024870446446670821938385482499863074793911735205231337523848631207656074436475770767369411621111521563989593229070922615969028311669488956733534956553528684446713627581916556679121375464793792878781686785961246735392575101886725055594029349653124575656046654026967221793371495894228996772828868928446841404179710352780028312179307952343486469454023404378413280191487028739015741437676550827228776808379403911971209010449929754395553732164454726384662383354927902637428370977462900969122117074364961405923236501029347731390744997970323138748290018380336545272560861439448580736464646335307327047673135428572548837401646627666260449435578542803794815510293852908506877721601301196243368518757000626089597131219989829693537773927898082920098603907563843156216040661526503678285356303808116127206783510657441916416754651884210649122018168481858181086080644898957135272633342665578821833230458823261553777620741329413752184995848899768264019804309752131917034444817772599717824279670788027885704045560825746161171082470434633018928578566155114062496359140779168145473984705656986373480753614597061553235150329265328272113722828669455065704085916858574298116956536606765089339018264881921829573379521910851069825917048389542254938712800102202302447373680614899740674449269458302512534900709678762543816115027049911599199750056861694121326960445088854726224155041377476971232027671274212474208183257283774637947646223197394844525547498954461703226395278834167230951795527010053119302742075627951537288045401065473274276895435990254196089812972295536195647243404901957400953060160479718984390119236741264557407137571313740146971379802198324329809532995830782355726324605675358648152499139083200260607610599239398247325080169006245085244929568754416218072575769032884238099693453845791969305452098608534863588028037621930825273181008515253246478519172024414718819599451606425745821140312489352451182683671064007509780357116735066706721740737157024376041819638227167737436562332683024427340593292700648217628129714606576051271194850158543965762423687756363711793328447725416303011972564478657608193284550893110569860993383571143947886022489804809130232115386775495198060833482486627855488425742452545305016905411483488517531218466875388460528978596386067753561806750100358822166573567654511104506930692782869406022217181009127820292619133527462677041517203230146410687874788075425749021215450568780252133545857521002013620746334092565520814887616969345487722197538745730482387275534107942435311013751514036928271296303853660445981537874842888176612419345129403659250557191580035916437200859398662381388176982754426035516736613678142610341767668697998454581873469242901523705472694600184946295352159652387828667035619558192325981408719570641834692513450435502619616926155538664671825936928326960398016079431714585259149383784487160071764534508919761022224092687434252811497423126048684904738426775476180326714859348990478071413673843391911536141094986132038821755423626135897028066664151684178804771445459391865540433566238875789813419050352215536607963271923203965719503368466187447883739338966911428631200771271644903067889739880220622480324935857970370370796393962491199049844939803195604043189535947310125743131797320087408183154050801223564510428469740880401017727013078997413274665438903592790097058880623500791103477790831427470248345445095597861825802777607247798454105775786376518851335279993971495053516038541883228832810421918026489143896036734161353776856252197491739959843194056870114152987957685277843638326924882950606246980496988602093762119091123773877247096719209467366084975365211700279201591678967700093847847713968355890713415436900784672075939691735479923533137016122151226519267594138346501755386800266503573654361391683613143062095921818525437347852953127785146304511728885325705634340739459259300713910683471623311443962449166052672752620280467930830654931273614223742490375422163722201216320052370212714006201178851839562301693750273096574418164170021529982987666043611200332428504118299474617292591834290458985996967483323027374274040087009270726196530411561166194069558553927805110870940768909465788898454486106596619964526961202871983875684453553957773745184947346678993944407337354595227075553526763035396561165711696355191370356019362610243211778562751157378769653501204997197699500317802986445139000329677421266724863568216932239541271146736504199369255666577454838688371924211921917016133275733765503810063509081412238700029276682220118620590214034230423031395424604306052876109000128023475051326691387636175233475658623726924589823050857968790807109343352024084788799484614020600596950269013036167783993484131389375864586815597815981041576644690321689466700862286393494440523319592228614501327708212371579681399358099745343811558460487082223357689686645110169606761152447254483903643676915694459264910664511062077620637139360662718909539822803460050223187529640385135881639117150168389666249588382883769963930133028310651993360364843116725237403481001786470209111574465268150618175345767554949224821997346744394973041380176582075181917775506250572709668174164661479773868058898437952250452948173614340037585942744716875475844032892049958370214883725724539216811059135771478435974234560111064459734634996660958744982864754371876241618154597688350108084056108178797640613275922795997707352808338791009710759071951876224202424389631157241623100906158587021603707646700065429930345343778986274036000834648202532401484232982864675662614758112300911552668151648261682243834466352267225486250915307275648279945084979313600241613894006367095169050751783330083670470261333237583919229493551684938516753641704399071015030391633038229024185566515493283173862717007650762309415211656301982503601112950857843711825530591874043097884917179058297946877256367084163575296946737253252590102046681314451844555566618836854415748119249720953913709742023227375466153783625929696714860828928935276804540485786126408817158271253025950560834416736593763651524029677113970242121774476224631008514393431155697952959883326283355421834546524359947274537797848947209067103453186464072616401398625339625229113628881546683783810315679583168538545947383539648427420208410680418830189648219639389423689857350472260812918564569981538708220815679273839416550896728230178338258805398941184789555523811076631762090291706491633075057047325520562063066590884306249582026412660581044601482707643733814936742905680092862343602477645801176337943233554604157664592416674988503966596414672186580118870916155083709367698048417971659721373918064700585082655256458404405672836994214961243395651601652235920945690974677818045220282514436827579248108908828960941218712973601163633970103276321818226952379280898031539417517428542295967426627169636430924488482151092726107327870405820969357759064164224832979428651643720087543697159935055678747419693141052804805604650446848558662675181961303229708931449140993148044585004750231944710702752591797098211766945328030374468890991795246140608445162756897851291153593110722055203738086146709141979249806319601321094345346079939821541445521230442362045606742999528201274698480259169855343382473811688539667820175013571801310037297424551320434649963819661699536034368307111883000972453521857578248940475653247391845717725780131993734569603454237593729000180474244436023516787352886027186390041794641600430893884432580949367925108785960700737048475905192820865515061743182395588636416297042585673723925323147007585701400151310720644348537829502094649203227397958089562891253001403991293632197475277769377729422593440123479965688890954055319391305992655666295731390719291111979145400801765434709621035755814259926974988546690832264193300432868490342708956528986725272886657821754466308425388061363482259482763803262882031533103790535559980651377797562881586095805906990028526342862329137534394858622451802629902843468151456063133820621472135201898480374817051945875399803013625698896403936703253981466674946902405172599889656549709146539078009149178845182906125560967096306045903194530195722902637282097566813628826267680382718888286077216193101784852155573441663332985320155840776245920429874565433546038749410954078459173594015071568292781961266391606748500476321572797890780714046119594214151525315952169118501562115251305543737096297726566602847189393978151799499260720804984252424512746895418340801623924563836616406594092497969036373412281349640035195132596296057719077138510534271303252598584957709575372945523399802174813100100229468740515630821518385113638169975771507035785034284365088891600370956386146063124576013274096657953079261873888997522383159873790468782066103644758189530038822996049004162685002470550602561489531113655606224208664297481099400924810558291425921973512065768910508582923313945136578985628679385313911378999190332744126074369992521760290754966959819642647461499053070450893217521699700102397734360954310135216388865303272715572633679870465982630865374632307007690228987743986498754412708374945710479825359704243124759987216279785696832657180421061605285852738053592091704499812174813454086718296461022476021862250283813431707126675313163975241295836729879666354247096244357831290748815257367242675393865806210468344785503063764834748976349699257781410576259161489912502409509322560566648885612120999022113186384720624124419928194960916611732892912972409363213508433258432036391679756452414231416915866635392367672394191625744499632800712674258125230779159355647713106118728643993245085927519477818727647499285891522773290921310669977156628041658049181346922865142852428511628480223474294877589068623458026308038234277468357022466202897590815051939990213096416999553545460780069938301036139749033935736445675700710085886131141526450254142467838482395723652626994332036204060286478962448009385213159378234903864003889869707876416820315639049876271739336786233817772853413249898045949479963527705064769353247815224266614300903309423381827493130026843087233950377364002758595325428011224040039616917766672278418700654217418056898865677906810975964764906323935620739383991919428393180911767134608927687522663926966463748358096972992370645061318027081581678780546518785738860012644047464967521506704807484643706458395870072028005803968496540420115039212352361761697249491724554812216196897212705239840208807168718428082410907747996531935646204908594448153516283197062996962772967853418873038425611627994569755029440021150566379192315427480224121623037385205224339403519037227584124824666593780944157575496627749750067638643122585420005988515502127347350853822863384560523478634289842931911804882555331447825544631988164849215483839828821709642391161907488810689267558320339051956407002155839344361647553328985046365369053752419218083300060124561770336801457354174370645614620722757198827650466105284903922434946981866864690021842694455902042061158566506152984474876432928485570012207422801951784548273212029207564904623476514168724220043804435705103787933473329718636831005468581950870624581181537801416920556280234986778668759493148372064150636066132082446546431532220755751025442025775236295321715319555465767908170996627932305174631912328202448762937320468665523654038043324220696146956808028345666736364886441153974524493881934505594664138302785228930509776969101993065012633871476815087707337337954350984054972199266226750486095784168496816314982628215646075299958170748769524919186284025098880835204984130432676604716812111349402154357807069432832457854843693662231718630023656192234257211677373601730193045078482807819273994387870272689285812901278649138877474277372968648176541919171950239233418861045882691314853521579750652508130777501496663307279669388184504581379337446790832649647547559910924500172929959510292897279677811797507344798614552855377878757265326717259046082260471148022721818218001828950141113348701117454004100130891729217105044718737479617174588005739896983467372297147442565300808008485572155538725335374904533406288330906366978784966486974627652275655214733748993097740832202225627447362955809649514981204321285914030848697333944439066528551754645080478388367173413774305475262779861495993798259537816123405398074063305406281469436829472493773178668140286071878350145976416020764063628329060666322050785497397651999372522415817358892061461717568593345477211981761964722055430382419543727681946270226224236686800515219941749601519271158765349767424497402108897790404357798930340016449369813364714371232951635713062285986165703765175760046804646866635175917384346263255787549701050687607035844419031920799156596940840742493741786348088527220064249633794100824181198234297885261737186783842440764094556426915098251339225862771250280553840982137269740127380287130940167865423910553763156473321434186763052746071269093279096927532514203756525033168365080766587782450198673572499272096313985894181447292192503865676302028133156182576509228406379571171864266433499275457675942556619668415181096510222156107786740815938934597831267039405820649298625558399304129608290245588873396006918696322509096816593725172053899297041370061276414469133414274903340367388892567805554822298267441814287556593297278583746828017789334234583971252981473735916959525486132647859583540502677403673841132362489633845723769902071829535428586741418371029585163876128416777387657188944047279269671283012770390167507272751742488075376219603268139507038971684677263308193862618294280317153652766744597788758345521572104429351417566183317584450359139385421117676446799038509144880209412516830929679260818303581830631886284219280609115354845244741185989155906474389057668088780324747828374272525477579743293348156863820678447280391349282043404469693799339028407496046079188150258843857070051946941795301280908221624093235367431088933070896317332681554447732523922255192058138008803011709803983604162378914229455188107412184633236130007389613996795710164182186988725662804063867319662022461351051112075350748795552076815082023265435669269351394896164297888711381708510198464412451790167029221360889171628473783933132999455996640959427591076308289685016110906813606220326100250607069155031484696595975059056601863501458539464972480297360177095728678462921838561852816803466574875219443832963002721955695872568353267142212146589213627985989428931310361040537133135850047322486499642960343600590526356356044940705529525737889823011703969588871869528664258152434405093669835717488280806968405958549552130565128540294939825747749053909431141351007141896758071723389311365246212136437194055018851670720408207758662353065390815980266207384441837060825093129706559662124167884096223363787477880414065978417342522614683278270863366095533518590323922168429757105416519530648388168648684336822248351853006006103186520735977964462880087976682583795094095524293895625881862970041885540688294005972331242754143133300465733679406122765055842995286017129297457256978245926332096285029840736289442725615864426533019353451098044076912582488109855052534958193782448822324184520709749892266442645081514957251930463516970285953814051428798890256919036745328812817597476796786024400282364797513087661018592897760176566830753673471416381340482634716292544101982651176985265978411423476362962871031301531677056799215149834142586890877508624740372905512282933216536779654610829864194044164463720456936351461088228789700603432854632977985767517032350367494752861702928427054449974779582100372760456379398160958552005325809920279817228850190129570227924699790720773575434148054800581920285261239761022857014119478383112878011356876241673442678750050193170298681683529919078982430494256833279204286297344543348466846333512108525708465097172350821250753595209824588629149507075332621755010822173634689987802900722429569012832460868153736657787512296626232954274340030891069915578704046917956049552716564414199777726698905024967758150059743650712700128574426387424830592131272233309400898202138641535649914671396969386098603279291820016397891477706844841714986378436707936755712378913829223507580912014185322699039704586888091074568306760203729721995257727411045062282673723661675490936937773835845469318271986915817603128482025331597985874631718298422462301288128209505915872860522851186622351633590013591789968535006930858345071599521948619809763220791653127059474752677813130869094646011801300431724324910734056452890957742471767480198523276266697442906156068605553343744856493433173438279351391971158212205853387899540305399975616232587250061653522230108726259298810741869620969097778373995128230314481784880484940785724389739166585991009098017020311291719356557807972189624107204599446547628716614513665032854047000808894990913644292137557547214855867349087784052740786206355773892597669493087734964639800350708480400038417816125031948545649455557380458099630585190125176714192832551145825396749273706630102360496006970947031116054221544856354918023377508197358843481392071134659439001372694509861348615704213719347931497861214003630255685324362151914773246032055137297851582220635940799914538122632809890726804195767207509159392360496585589056120799185357497761764330046672809431525930538249750752446123317664118945475794678656027121496765886905176891112099289386562066375095736002981047184543990163139706526296393485229083920464180381714110051543082185984806390095139301424646691435345014593009701692469178357557892457057898362493391386344527965196494185554728323375193441772012921318691931236751638666804553561933950044772398018933957469277342602937836139841909309264405538675860985303979602283837411415668056550860457427531598667277274135516827645240378805851494241272197730803091925681255003674929873588184248236298902181779656087370944786159793876383443625471290106896196372274940772057164667009364825144509600530309553951675590371330920261076313165806859997791213939524032486051529482881988576706129490774180655907255595369839595228626905582395339832095009765569063162331592439806979087519593567943497477708598228943576832764772016822649575763702014269464877418521895290619781408560461990552535113992931671445025248233781376047525420192285589630731665951907365339402273581847347658981308974944683274603874677900852412625554772101500549892697859645436729494413081066669398856529527998974327818624440758133153418942317017726451141556193539428879357119577365267467314094634740364406559643184193626362644406884577108528351789776464043131130246215363468786444934763711522125470318660109943930828408751431759219786385290672538537870281860186446999449559053752121056947072250721356124102750816153428906224675206826323216007582698459218879035639123999998194891486864270468038302669612589513363826525218370978536532736295826333138023955092078028787103379645818008842565905055149715073830159574933588736548104576882073338656742579918239532002703751925769500373409200323965103992141839954201227469272392150232751280843206263659126385741299879587390813508239161356955834037017705286317031695174132313762626174055434416080411135149270814435151644287349459238335485064838012455360924950216682874449228635617854278211813797615196700540323985535968038063552922931343095114495660961398004784249059967584286169078348527331209781329200854481980698080319197682641590489329300118454736913811083687662141769353569694836514765090236725925961673491771391630171266559920850883860068223212612346297434437394848131952439467276875075088987721481395062155608940859190085104106878855827313863582002104471241513525994854200669803409515769396689200584964163513884588855226291095134691247927893908788502555147345060989534691857892351683638627997376299660517472955838716094929365540880642020362523586885142214013436828201242391098801158309377432367266762891128091681421899048307798344347735013245932707343908799678883921479528053284011787172414602511944188146962274423736941169255402013740729525367425792005349328330900234795642130310614226895733155947646581568116757972232723936888163525044405476802524244591353205046339600335841796161381107497542014506766913236522871118007430202022066379460537070621942059071558743266840649690997684397332973361306676996123445007958613282545995298583327547916854315483059620832955581726227087917771804987411620019126206631492540284062125518107410302320390651600070233615558309598011852302914631131331445963173900050677616907802398329634666278012502156881597584642770109239781088315979300512064689399855388972248017789069341023595099955539394730475155976109536264967395401931664684022007402932176104476743492619701522399591501373117017466399831539538941400555554139545093655792742499622873631076587524313010639527598606659209857938953911444526831400362381318702657285807253448619333203852797134467541966143907879933362489715907434882872061829097692216268188432197802059072206180645839733052122498919838391605112169677944313935621357575211071719447815922952042952147163935593690509354845309337501321280738225935345906110919007212609831815714197748428041685376351438072956422063831375617708371940612030571825066383094973194549562244977057897002459216078665433915372791379334863573373324564532434562026917664640010264503801554617173942055066969686166843146639730582503398477272621485977838652242092951364479347101406215416880851520147997559177234234470765464760714958130160085751746921936302127262532472115369456999774261257939187167190577388728245158181791613311892615595164764049354148181113722810734943139670798242544556615260629517103289020709759216648281670015062768754964187822492794847974662224829857299439812180051495605009535092777835322276724963258272675920273505567593075984076821103679854762033426142526013915921473472949050845101686973748242458874602672321249307505370960894863454234224751070463405686492427383807262564365051410975377424241909310949517915460294163419900113444984525035065444333002761759150178760759786428002637581183892330090259058215451319352622408318227744739849458211055181333893538820148347146024904182792668056986232228530310035581070471167862655758796309042755346181024252442534908999539519504107706510317378067525869966414911292922214443607879793296660840290864253869019260998231763513672266991518375865675045593915048323955787356331025973224122146057689873149137793074461508923378794871876016027847297635633770841873153783259774416219844473526491553913613177069920536217855728451638101355655245234045966318432585810559908577002831752058144644754877825683370774128384380132354539810600677467168976890268009185689803904681600054994686862126236764834858334521030962684671074446878412169749164686968717608750965449888962890196092504792706114201633205720325568876981324608880779544320222293063462397419103706689533541961441851943566963392168036022056252694904339564947098677969347418812362101585403017593708970836082537349496968703537031168849040601636075875160923849154454351446066762283697239596093401149908556179700113182843332243318255149085489679610229746627175662156758395421680577981135517428705473386658115774733768128354426841572301705927427927671952294570436620105102518284461684638815947315579881408659399993020706299752172229223312700284176250614571010793078644044544699697127829971772041082227354594861372329583085020548449656086260315084980400766486155580441638565721042695512193782661991473371807987387804602121481618228624999117999169087892719007549493755209790043190932658016324425160891887958241236653867742272790225394129607971495589961590372000013855949731485356428954906333033807486710267097877796737263913859215268293050863594226411917743148163692233019941563253596145000855605598810500484975463107988462988847946874232178346933527119304909109373929019388898417628608671840659915484566641380273073712507629932383625486494972989498664890079622741936491694130061727824098609302891051237673993742909419946737865639615825353507303045584568354932486909872285312983433472932474005547428468604493300892321435617391583090483396161582245133055873826351980431832992695449974805506514257305329357359047977438501295934176137860980824995788086416234684496826800287761344138431115852519037415560883250274127745110475286224879204119829229130301914940340413881066438442398172224269063762629094202116423726334087224482769286442552794151916706330191517472395664448316597984883280212934574198501611635365401837271204123991906576726166807843870359664548121716341582280853694492474111053850427178541969520517354604482529117006320847851214824625183604664186175734364821118952510329144989302836872386234551367534374535516577024812699767747196967159389761351799179512735546878687907021100834181393320053436427294399217303521121215444518761080123613375852280516017479400101876226561684988172420000494956019735890063799421384810245464951366381404811337921474932475144910626083111444368013267319593468169209467499757235237483320302938438402652456903063620993575857404479123410308907811324408706288924158397983504964841591574099055577915982277403835995887680991788306704716875580897412967824323813509239225942887281280606887309504216104218835602686282091328954711150475567924190296322806074739085931393363815989920692050420510375753723867260365856000612748087242545301905966773855374251661493412518309325750523848778797409490025035851765188357827004414917738101196137253360216983919454484171617051970453671727136507429460325492796911190621334738456522928544209738530620075969223613761160667355577837223980259960005677692767705138319561563828141758135619195179777692733863468228105335040154690981855470972390849631046091434169557203261233610138962653679228694489232938685394761792354832970947784979463363568500785051510163082080225961222416651346128469983975337418576543556444167114752540405386359221243935664655083321297361953961148780739257966812085237763854137314657303396463031892410025643380580993506797538180297394754149235445474031493832430971803924508607176906725721968097976388991759023560528702936453461749584869399595500781683844234874865466095798886161753650737845952952804872098542480555537669204663581710498626598951610235861612050293026139112899582017046767925485145967375972217408827636092794920994416109663082014949646930718400224470756667987762395062961013773121484764332621143002909257051753441203824070004620406733814074390912514555528177971801911947554728826334121204932470105873689211976513412619557178575756240816347997609822499210748428062864979929878624705647762791463740727397469512587207243738135588993074957869113948839372010017333726095110400595119862827441285240549812908823996983475610835636427210549292350175218305860340852261524641393535169284928126175542164106949173881425526178758073170521273594193337448862324324011791519623506945079545543213937187081240086864049096818969692150842974368346792492045936595857708341872030742662853471160633173831018051492704304429946203474826932196346806417542678109779117699030456447290331488995456033736652236431167227822276065940303000189923495539242244626127203311182909566689240406052169071121689751184435420145698696235030330987705300226756996226484104773819983140803924419272725254737837647375860513283446595211905232855870681868217135994514765619569101792336345333927914847082961432984411255454965465074723568212582126444885030485889003161618656025417948628477931247737218827052489664616783595950162087959281257682485349685488417310161467691522558470403812749140791743373685518577250160023599297520724851336238608633165932804433652252877633969152480863424207467475191063094787967200098672169121037524863755901247546733134324684356976380647792203716889019477907989145276536308473901707555802712444627401244337582371417361440368341935560192405557769875534673882807582678205491228707259886188437676042631048851147467109338757651473537967525857011369306359844398018850304884171213306043158238019623857727588432718736519633297587122619981068153077554480624092983088245467176468314081678838965753012666999595827166334950442815662362346992239206782040438538192185429515027710964201878320137453552585752988955041447328658313859725714215639536255539256462089142760872137133456499251825128470353695368379045585408765294946985530679341901908566196153645646408310400128888728659709669285655680222142357479042901662729403506253837602224381646150052650766474246938724262591057752672117222574128604858733733156955752459823710303430542581077868921311126631364215049761584679891106006438384573476939712537368110745497329856517886092782998622261541235131376278301151885431794097040184154214544772687193513024326553335905250712075924624037194295209780142472845363816104515106467263379090892080235930673831872237791665014603639343099846109033608064385322443923565256809183396293689936584037210748335703811869992228052535105005948041499219181873275784398571304127762804266777930135685741538659081057087546633332203939667328799513757643024993730662948208409464868680989953893789282923524288206863593674793582480964367462605499511419630313182209239521228920128543007529362763018066400944386781213071783530977473365919991849180045191823051835876622997528086617233607504927433520419845621402838617216063731649890421907187382448368338996959977646025245839771941915227618399584225525381170228532053194193794488687489964018019812155411329740197490027460953703286058934196541952747281529856454832280451390431049431526684386713402177474099367410444519991297364946996588186576827139794210941769186211392413764460754254781376777530500571997035192273593370596469313155931814215661776176166434064355241066573155130170662037525180295630538460690471848583773985035530162410041068363880741151181962500977661939599296592665864597369787806249873534957446874367650726554711910722609274188993648344365532929950453347136903179071791607335626101154853465347313918288670665713570055316750164297920349461847584482594336426631134795353168806153174476389391679059230496501507296373770948216190779294815942725222750303070532957071488997468203608754705550767616922227116948283351346190904770890879850689521235345719420052514349514608684012449918766568460133595225091509811243372611400880442810810710425433244574266108061472269156134550981272364200514509519351127294992335982001774625892861159013759704209192061422961360770407565911164637404827002914873519215004641814596548505694304529331937385610248776130209763515926751699931412066789185633303232742965831335354192207384727731037529246817080551808492217424105453804128927742289707271625662439730159340242252678920579371174732744318355336269935663299571336956947820388326612340698041623897662492822397811719957387357465647163151592280057579503909257230604407377328622078894463316534175446623736536410273042353608413030811104165172723122194894878505940465848810699411379131429139219700994344444678746519030742231709486370720319478899381736095416057999489844731647997383695608899352591770027365641367606894180053867494285680239154281748926475255231829822265772988943751258146603212180154949492416722068174984319498216862558514641190691625017793428897680951381618685587986201103858944531397532807155200445068122277696730988070582076441183263879157250264538639218820932865215778716371847480213190428478052178456014696627994281391894123914652760619606881636600904326656414570010026453615646945210803361796321323364830816251727673718046391771743058747955289425065917204000051197974835885852225365153810695652402069387401665873301549248263094241445741073683318785906953986559157444113477785863796644667959187199714548532315261767954489764422877621529495377770626376069531430288193237482192224198667159995735387085452414768107064079107979398984160697092004547665179814180461444678511575717889952853727468213280660633792477245391880181551546466680743241520373602036094398520237435165482895982992557009455973067240543955526246317120413754519479900805123735185081030382082465873312180046647284770521809509667278179800398190614235179168531872296482223234637549912662318703321157793028178156662441988269425715054509774009932493992702936983084302978364653690703056710615787289656855443797462422167850618600220620266764336136972218085910844366581275878728825300500223672018016068091329271067779706459081954193493731297664733121928179234430217207447238491570574520706142367929272472882742654734047186795601701628503313680117477429373364032894384018741236120972532453372784439378941660223803763006180905998343956594144386941751796178973714053946066564869358931635296058067181799340738079508428893138775488559714866543523786343305088398249258941930710673918677642997204023555378872945570112278215606322785934495080790105059438816376209766330779950432728270007454691592297013275921471222778669365125697769754996749107791177474139744395285467185857192969511981461785525873747326834904408346430645907668709284656203645982700380682475100731301040058936152310293125586640429353789666372614812202458387255294213276378844158433086517899847864464823157090533118767137709115101660791419449369788676362196825772661413732447576453745768174158197139903261768778182668113424448457779262053346230772279510679244793516162627020001242927422867283092200327154934623535788596907954131938369842930314024997082855710341905679853907318441856485161544663924339103671370356118169961103605092733249875903876667999842105824453945447199628036844375235037334627039776357719027239580986887140353686560312739216971167264185890363556792279088047231540280237324074560800248784456695724690280972700128840388166141072885705496025374888910854492345938101943605579940609675559738690401997168813560172276754546071986001443067423879415430800519208437960133064176817538268316714562755129304042909962260372608276912296464895747453270328830006171290638301602553563805507368687459597471642786965878534843682913265954141867310960352652114278081315795543401105201337020304558314044545273460803804301375455562959197010857954470071264903344782243924684123287487554376747825553694802547459469197223820336388212237350539268059921822303282687213419497333853586891528684238196285546381881257138115769038391030581273012818902650553755291891651581640132516667041064293630694483922011292460179485058158044932393693677545872971859606677112120028702858079635287092683742150791140877772465434551388206796021144432471616141727772339532681341254189286480758853184641177764841618174620700002090540593156225578690472338473609134578330306070253397260213031558289131780498707663672182207829924919094171569776356121059685862419676396852175903588036269895316993035827369053401100969931550744224191494880166761236782833468055436145970738469989327247115853950786033353529961211609599783322945601507627405526934648660539356267634776414068641652089031760010605593346521126206284341043848851902535965269249010331971355860222110345278817401237172060659285020754092918128500536936504799767709671092427855904941422006182996311389589331863224385377789781330491622808175401637169020926780016372574944445591258737385630722530228402791556553138563638746776513470264376696972548702249589502193696998192319515178456588333746122552672564887643324653694335541661250556144534027682190782475420047050299552313395631793505984530797949040607533225146285849695272849545615715266957117677955782986095019358549038121956224884547492748265039341733986727576179699940087000487455722676862666818791028098084958432269269941289931510002613112815770398254127102994185586071731555688177040399617588443890441630444926134241829067050540314444385703220949739718119019598726798447567631316356121801846296743967647801137013343831756239847753606796001713623994541819340687714697187583972923227542023735265747589221366943367952383065997144027420150067145755130906901888696591501006328132949790281488455377277894387428557122202492643569622067199569999077846708257749858225029222314483305048911648771329633766537643283622996582079434165752866134091159433113303648294308931868212732394228047778835244965628151179403905489251310145716322125387846255694584913310835909553504609144789271076380403173138163359680512949590334768078953293084845305795603961152651654269295081705202551826458961171684268399290591670898183706128534384232390999850840454074599048857082450296119903288189142136659102558487176934038697711781904072309074093205145107457069460523583538064873867387795882760763516118928752047822384702403133646966184889402730797238194946987014739819760231492782630446550293763100328104233361965461011351654094270479483617929126895143323033725860570013385833682075240032096714075165973028597464783618002593425209009556228128542670818210066352360623875033133469726294674990101998562148486718055095805960542974171615413583275701783401499365037387540968106161322091840357607366056407587832009067485868358015757735080561842543638088982213778706636387516719310484494502708257036884400629936983437106030730125712966069318091791790559516735350419093362335937171133533584329237102384152479895403623220342638709540246469094710880052472420907531733995293740952138123589880784774286704931280996640072823783513213543946991286228491955544495328552133539191250159564614983735771086578823861601814945746584795063525993235808308608192433440209968119596997562775802298712680950528826272546050806749117570353782677552965349585864138964946869305029233714419888467311013651235741342687316166059767888827721113844250257908658992905475585813265501223500342373520013788073249162820974563237276038323757383902877822836583703676001966288815208132149902652157595692682871839765369116334947563935345201886566308931189938935889680062189856090256603971026324134174150073323053837579723570886791693202417344588254826895404843861616421640596010952072750473760047607649786854016505922108673006723878220436027060324540476435142772844709738106956958525160650036080930664584646714812496070218009358462170452492570687961356557545452199997895804840871109233423495353473701359531663825474294285180098222175656778507186297593857019561748716333362195029615013954157970434318121952403142696087579018825814274510550262348971671573154433285361457774715906049419766068852436626723783591247409876689041290431510383549277653442203026916006585973534647093076204536199483521684823789056334031542774788068138519446504267132560610419753372894627728743568213930861419150811780853249691793597178908116473659803619092007785382751385081006754551171095862712529560213685614142270525576554277531962792925244248871927894170998171128525759580410653695392121488140624701035627414564238243040920212293195480993198413048803736635207330036212208791076574975412561701665969157645240248115077190643580576226252367286120156384317102122799643058342611853212450985740453683568521498863049769723441975380347652109587453243229006002175220621292831856188010699976937976358749871365304354688393561251888385095292063040500431949297099138706986788234611890122153927414182803305645897559225778675015372279331451477822054716117251760519355022370402023662275947747188531017266521172804300603213190409516238490017511412459288649876523544337477616651624435584850979596967526916943277681250230363916995881177848312163001306475285517085576690478500546070943880626272911143684099407486167047636048771759712173717478267856887787016455902642930010217193175105413335707922743222235702028235101669223801972671335873417479302495317533865842264181639736306492450347640215613383276988180800556314072182365156457046551389820637887300970950324776260734509221744771308467478079166177054722470962245069690197575089127435137149566130794346642773144081363379315138867177046505903385986648122604875195400921122576252442538668347110535656459726972403201090839464100004721712076697499341739963828825149983532681449701967036556568509441160138763438059657287542498360947258765699176225027367559845194071150649543211393207432581701153191378683145536799337354927692255735034009956061873496930895586192185039504494802225873828744192589668030883425485016350418562517108518854103145673645063506985256796550972416826267430992521804902266960588503434783653801850322247751280836016060350284484102296662963532315756191240884149732057522687070976684009276666233061944275727068982277847089105149061351080461584163496155557179412811729481240098884746534568792973198231706879960429504690794310584498989203583400607252138123155233843989357288631779502335280023742663409065089859797529533312942798778621750571294942526153014288249662829626027390616890432814642351405779785606038143450820090505047916788804525293925195695704799086222498344049031468829791637509980577902515869404153723846288195010282220414133058015688850180792967533954351462204593094572776450980455553540188983129649499470122841070757341204651690884079534059882997908133774346064470468444840358568747409603273752404857986091147622079263482696677661612292829039951307438690870324147168307749836535191660931627927181497177812984948294318547152905668270777311613914578439493435078758719731177859860640974479300660678151859090395965066774560354096911562231066549151210402737925392152462132877298352903775753704643401228734113047117125301117302198083800774049852287590775751401889583454965591203863561138431825779598779082398859348770265952438857652234242676848262839135644227668102129246487136443667464157932214940675314018414861786150372495293444634548263746783897890412199378840634350964207610078634748234691828312693440120269507559979984752843450640129183334168254768370950831083853283663517286054100826605186992382514406498786201197821998158839825082845413371225930080154060591519713347470144163193016014093372452607554086936857256744991607007366291946810615751531818775694741972675031213162738423744474914022458833653252208901791732675151979181074756641800752743546845998508987345253127784838407090541748781332940804968736361661642543916977382429369568766233979744495912206498030925545978154068631038432060199073808287600225355082620407575877021122831271147592098428274359197285147741426529539656117960679261842897838715844045528101697215268015415364907686222107516537020725879141659548913901124852605542233487207099768619163678866057547661942126676944703769525317682438719601326544715142836701892235867369549299977228993999964314371350036680798057301991799916674248582801730950584707916780339181721991955973281665092670220418442431957537677756958050746678908024753778627445194593385161340382506786711589911703439132645733243561262524844804886764315080998798857063609435702900660162650474758853766498841120128178809303922148355832925980206550904131265723996937442347788031941519919364757388197600594413572479960477822871142730956877919366092186566329909261778863525875162629948145755541315130852082709521491987525653369240911963483534953842996469082123123016712025757980317737135913979780314921677507022622632624437803523738345677076069330775190328357889619781942443795572645729937654723744611888132858501391088053999977647132541406250012418332106428999914207231103241378008761760486892970181062352829289614812064881642248449899102779258466226399204394276104787850313597688739644082942541077616418747320172315258785722461077653700083774965902728344612855128296683446938875349975319226186658462205809246819888383194133022017486858715465873424127012038083304328140075050395114862489350240085512891564811910148191777385020292602033083203390129118805641673535141982599254139225210714780070299614788024849809295568700777623806467997336782923761884933092723459469291826861839139264857469960645218700767399187306196469674341461294842850885749586838667131644645895627460367513075292779521795485676584237622263362927282925170369664372057490875216310088965647950676504234289940719963039049689835512728361408365252803830966451008742033051494661115460493011688898659183042593393275551555589701799412083661536226632579574106021160215617244339123484402299344039530717323116798039905143242672637385746773347223541747710149409096195598554315349237483252624246555711797223812527077629473924551648860270528201244221711666666325664964693292729260637619196088810616819797189508606204164154847924242575055236074444259711103362190924089289688018910386823201588363540873615358049822533762569756576664826292614921854694061570084370114064906881645063490828207466567285344343587123187892082164154271160398809553438434733845588774294639731001135942430021033199502103416659620259433121882268155446052013018800250581372595506252435098561277412385292256006159767411321893449132658192318317080346749970790377702621091221564888098674005582777448226487865858746080857096338625081560599401648417846071655626546877765827828890727950257931077749648702437824446540588981905519127280725235686837158590656834652750338766541812548905120226121824060626175429016558373444089491528995244240804923611658594970452812595193568141689073660629075324537683615243675613174634522702870648104847665824878655167618823239111131362841625075060997941623232324774258863409343217111718335952385004262238679034599580506198204800416330106819291978057555332163066876807548189368353304984531104295338946480068040194524357286896072137538641085796947912633104695570721389390680070566381269138832039639759903330347970658966376339444652952091505379796723041249969420065112668201686048857586810310982630466004795284818852941739414359527011064729286402335567796350466474187379630947616567671680627322425822903544672586764248536688787454215843365066518762919448119420093894258664780266539843232467453066526013810209174023987822276748050000425245470218512577902800555604501204910113289194841452488773266978701787758283177236649011009267935279968564152025655055970903840453359605793212271384822881010728241385474362468064379483474570690214659379589819610051402302653880659243985771326151774038336091738536349409397472395974251971781184389802686295822217322217044980359936748493605475431848701504729709448980050581195159964425781489930420211123835332832966546159924661305067580313270641580010601586757371144329010378046978589444927553988990035797313584600043991592526042094187061473484499067782798309815464991035985253942072088606569735320709878164199818153092348504074193985724447687124784916218278034439303089859948302526260825329997920719393977964939723521257465047008031524679130665087098180899452392950576664562436007087283184681630329476952059668324029048907070355588927776844077782017618053200940298892928440219279267817082868663312711175597522887608950701593415760479205968973132424861535294316798533259419506207459649863498709859978428442097083486396814258618254756879373418849721975573683782206954865758605801619744981802234195494916404030624784556992495295205288078849286507934380380677447589771965243827010264838127283141860861303214198837913990293446704627452984147674051196705617132767870560164706796586540653254305567838178665617245002318284322890718299186574048503288974882490331150072710359259645771966516092011929084927129165527256260792733073546800259857851891549695306911202068692249666089470342611265416661455593668732294971410163141232461587090516243201587485716596170182596499249599410302299531057659978501808589190566059739809374573744745558990766564593519098749696547134705362051153301981134010998993541994628753069874855731163562319231679823855797876035136022515540637339854257266819591159756180095627454222586270696668841501625264635797064689719382952848653343584720847115335697860227480550749013327801120546207661718554461961122631873002208226964046750232207836273194122372226588594116926824252038625067779320093753389095301294567958076910179552738951680161268737335365711576482770200882933685171354267530193001354217720674748795680288901941398068427882242962555746923131890590345142133112349636172372524101199497245414071689082039130439207476989353099847101928733472971151710745193069024093950717405039614343666419530018478085742684255452774543552593727710791659420938869719508705376038743106071958475201960945691144471659774301183205262233225013236090246151233941411927107418870999577727036997891765285463746534218627026718065712772851283858808047144305664343975032292870034048746886620042848824290216597411860456710094425052012757879759554921172138866305406975467814774944492409723579377981590676791943639252676274814157588041635542443876824807206995788516995810922036336497976672812908490416851903172734829063960302663334483010288634658434684412903991175721059494638418254534321677650677317171732580488713791308118653025549008342569997885742578025140441943482460615761186827988425952507709935211435653616069911741546394062938600532697163147854911915190798154034337801638578945038794685326855238918691362502450016452524018214751644772866541043441622459307920458122292401958044868072231183535706087741192618408898004407161962299669017644624636131679803225501589001798390805675904403695576826655426173221990538282129463193203290588592208861283375754133215237628271695581355134245048515043627561351419333834013044374832315473607975449023178812554735173010959394838462790819265315399712552470633507882403413534713670274410996789769718732598270490795699079698724878118250890023014158491886139246123516311044455275457563572037701994002551052526567487677228947961430937463301940358946081988099909321878778607341955450341355203537232250511009671316260363597477353201841967479974276869085504865910520674973281037654088362616677064840647144867145546637414678461261541095088761082215527097675711950353812262331132723714237748392264365608137154627546060490218399458646423505743623302193127385374690056030376444631255404603533077939942348762088877094098621839935669333741968935634553708539207867009429398837088201086425225583569016755166199403735505895205748073181660741065948412186485518879799970459130864420504001526100907342100861882593379431909504341514486271248512645743335504417144693520005801197554084727061981045367584773839828676319586924114632635322465877489806377891400629283628653480152629901097907773605617699115878522481606240055849040890781538365253514030429904794783464341335070829567229515175831299830744063918266741745523091626572400388263840020424822413191834025988390818997500963963201249080338757443671186436224097809234227719987878702839726777334259000044878035267509372906336728584507004174414622840819495612903881598883619602248650944222517599618110200530878143309026510262388406324652028508959088078034031337859821086490051695217395012758850116948427683474550256610639984085832682473437947737028055512542296112340363843665910743827668374573632420906004890824463325475527065178335623086095387669583009921654854788222799642823491850895403491927773901515328457017183047845860008145802190923971202665689683130749265701116783131070791961395118099972889484493804342081880147541644522475331556765869266054016343566779682181135911672279480260415788671681889731695998253011664873268122413145891841498877100089763476896398940435800718944613511160724820311009630649789124066899010313840631378208227674512757350482398692886890909478377154239837359184680164790045843359764177319985574484987293161534446547939290400507293446229356006052251613882096613612289718519953630610281290329192262296050896467650232887451374117695121721014982513321830194116671288530706499734981138734089767931720005515573527131639358958019246433011385064108038844348829187092391901317591396833049397196388041257080592507129540446226717840940111365836286138494676187306342274346141391920521861665936618547773991581816822132477527228871884016883187160986446323034537142946440425305975278848736996125528203167033806659945296609936518600475002660652037589587346376991744763172748451918963652849814486432863115719357748020037492046327057714788077259617797328515917519593354564756142366795649710568029699819472123477654500666918228466181016249586821856061565341201203865535214855886904845358284813064198393451347453211279195361121010000179103769529484977818370834507229551426348537723571647998994542466028999152900642036913713793522322747203542049994711826537864740959107532238227905859256654364733141389275271654745801127613198106610773652558364131401421499460407851726502877504123582180288605176053846042907989151183423106844296728546797324763338292231118811780855621043036588465066869787708485826811082487385110167435380373364833887983951397258188241505854175629484356999141083631293849466568895617834686369868428719110570883074136817619389750859459688775757912726623974731331474876981015043045843924082052930213294332300245066102463137965339382111125681035640496075868078004607022726269120059701587723310616160402488316485684978448465215074890995785185513380401523770175688610239090519405682553824915645748057593696854816606254962904564310925330889475320538357664054592851363135688524170649353083916575878297994077959026311496983116289679201535066886205075785789381310457576609194403262314762103925992559193060861615851308477381092895771627790016572456529108125262192005911229291211226088911032138618532869548865745103929019303990759145257629742860181977365281208825151049710056102373026871425253130016577844902754218494602409796057581721503442389014398659329538862360728893223924828468961358567508522676942098973267265267600749774720728145229445347630684663073672833625829666469914473700397022162102644678665321902333073482779556170784220650989137782580246464687436626231445062357373265203350693047242662237763351732815208050337046605738262361169479513585324474709838135012478457190035268912841110812460230642624650598804554224424176125752986315798516470190686264440564756092624873438846863941880860817613735651702662138190783777913317918123341939499872225149194998112483240458912241916364840810813106948665177342077380458184219137265698801154983635626011538970236715797666878430920634830033625807583997377591096376250142726169132795568817394329917871085558907977162102728650617016254356972742853101968053979487666901261259768614589526038762938472785208345121150464185604961301571373232046021488593009964387788076137235750339219591364667595081414799485967058734781170085553288154005466752852056584772537383148936510484004221541284975183715762597417209069839353372101811718957327656427932975872460533289624525505684361667292894746889363550219431970084915022341259002665876035457177879267562144862911298383171032553904127482262812280631121121796366600548563045458171244888844823931149595324723734104446130673814772497573942405565638754831778034826662376064808855875044872809896719475580693127176669252098877186413595563793390111036795397177807103745331732011482493896512006183922931732637546708246915970954615757565147580130345053333071049129409645412496980866223186870982284328361136758422516756094278809712688049989062867579345336664414319072624125130230558988438362641393966748804918824161900592292563136039547967473249446967259757702157245628809816593256546349386714836663293735328986733328124294309458038985971361758852139743368777331917598146376797202145085322007670831421291566206497602640590306042852266682731435204573507650040002819719198661073784006984550905243449208047196695927873124452048450929232161220919204384187642369345171087021003724812567066416577670677180108113902295184277559259755183779481509188131964915241876083607883115680090076621523146056365107878546818235330544438600422830960343266429521969190720058240759171849876316802710858024234464656552722448034864771267187132991685278293354715182509293847882128056487422274236847930567756741046752515419467331823326509073655863666205548333838657112389011367440486964186045179065600383372954652568913192337786051734227206167465909042383312372947095736284878559937603440927187404962053723524685834095044953177446427836511664742235013979377109532139534716092003009764662841850511704371323036707139661628017828102011757203499025210494040398126143568395984549870050408095371955199863133179626816595800300519049673075849474731514126377196681148573215486944205331867613852018827666954531811127919706462021553466055357788728807180568404990212399791045801532437396810729550718924536559967762502180177288585649580159062850646825487420268843571585351680968531216752610831832124388336430600626527998717724190554721328291331765637322533099429649555692214613978402020973296059599662580510873960096944055928279770292508658089544417830890588203081528474450910429865244810754416409676917973833761773733887714264778793833079562046299629010007085911067166785520064188973188623822807002860094753138908218102259727052935676956211283319422820846188856900755967617956739839269191948546571591619939040468516168896124829012210346450909927829360805165381436072025509317421712161181898897991040771993693911565534174177028462241483535904739758035344860243975238659132822859493666622667395916955389114561490661594285545790790889772844898121905724633835971233343539080505347174268386505149288203967623082752012479754357797676064537563273788589735533735565319033575298921543203786611169861875721178384715439918468725974818523431372335419007319944545222468298264689848631117118624844761601194495460010643626916689743613247148376606433891223905171201013726528008474903078010280125822128876761920016143527693234151407268058922677537906852912872336817221894296354071368943747717074929637520359414451005163823735863370630855642033018041733213213434360974544732409120803622193665698094534472629473968907146182696649091939821531753999271971096201517763615687510672793777900177625897091864106767153205703934702733104864557454929574577553676493141695791695798868342772348439533760230516661314286591695148189584123136660116691686267140046681268857111374267753147493403103430349481935359585779447880503850005570022167108023672559022027251610728250161038869984881036201209211982944875255695584507376069147527536155362796113300405360189302752902092725900241518198237417218407121473276584189984407060677492722632498505878012529817166734377924599588092954106882166103310954303255210232067051455985186767988394527878729204799844361754641811099629460837198173687531872735080021997656270259759705482103777905897535556044374391561572701686860260779034591460699168855660099898113003862074098411394560200898554977029565777935941339474512018532837069266772410387110313569917719310493283477287032698962775717696316323302755916863414379826827549525822864595356535491646365210653393511100575628784580889613623300624593368109675816741621352249173546060643299547957957487560275913375920638199792339333620765996454365552911902180317057211585776006729757828607443404598318123594831733940485132968214744860516337371320677368712316562430966804536105715973772751700230866924993923002603123272362119636245072236749112969822739059808060041633743360258408060028346877076139215130223548679727057776977527387561210025184554103143866600158263986479166885035575262377073925530766304872737013769988655295274031809581764572280732611959586383236251211575811463642168339872973437830418381364887302767701822557686686961113835938265091935767520875264535293572615261902035145802474763564695179004134508400710713348094665211170265042354135924884242008605661659806235912254940252840787806222186519155525976478870672348915226702561247693265751907232264071382153939379451483157987814721428651615030635374586496970316616720154436649184286694734215432866509253773889121172109039720154287577845541580513055763415462896111245937638486133842769462349712823225289340507305853914234632036265009498682243686664363740810070225327800034991313323942420187086568199208458384022768292087574605894974288738370521037160786972312659716244174291879429225689789464266189863606465925279580014303680629217624792982304309549062982898744634316201185047318029531209929999284815741383318203138166599299468720483400767066485421151264761447227525918532765438556974734416177722824337885026812390605506481009725535341708865757900857849475252106015208602175382301980382552254773732215123728250154154317848956606933838403392172640789721405766446451976686682285104346650997674433853763221411524394389593081431779838270911355615767773012244659868424716365939711633883240594343910592870312492341477797869477126894503220465723296247468121582217871330364593268029339913659217259609713380562163242775318405025643362386961630615863505971140346745957477842212254673305274613199337237840525714401201148606472797170662975311367451490177351883494078665794231636401479936628668252412246741999832724103557090715529869877581026583897527734871515706056559090949472511422789360745118899737191016177096011911339422275960309622699098789059142834355589628484172229708222962927460868359092710742906968501796244373575190646974923365756454324941648690545734335041038195244908184230116267106963020704670314189996975878925692281714269245968905651749809065163522442421471295153065620405347621988731594632206775494198873262253085977313496638017199208100081035319342008648446469147806177395279948226357347637148417478400678222873609464471393083133736973964977953432224466128689079638764948918429528390107316168351530946756766161607950238412756304817911305685408258125472046539296649346586540707915479109497434591706851653993513169438328039463719442144876949038267112367234579356847143615065952506103298628266693274509852996381771858933841347937517849906633318285517388044328759520631430980927182422862546679740507142368208731846326003598704826009668669642134379236744304666346496067266106267525655130040590437616175115141074865274011391829308599652360802757839058783197709109152941455492679857864274638696097484717357910137049283731989447142921138522216108970907645094553128689178947856219185323094353326906419157557085416032385589465883008520560305443198855908846710118711276198111348573832085936763360907749182928135454609339505794724565332050102239121064959085805473813421660797824027563718141018357575478208533474834540684949539910232796434130992805032033698147536001230249460514041075396737783537016307935218790714007597627711464615832458842802145580667047660969466772220371835896159104185871910433984836148834763391019928856935848708369185429809311808034291732700450593227877703909561373557021502912032431552564569794569292922655896744673421559786591768942938936964411842455159675156880074694680143847281946425469411435836424191445694841188197122463093759190083720153020510662363587027076690318458005083636251519392589263438262484737993151789472900602629572925637485427540188168828924174689492998625275249585462317037316146814375182609343174839994879078379120883402740601894773885375959226524657434956993579184453283074525852116730370306057125698509870114599727014595248836400182812848484145121085042383995966444719678516471994938153349347074175998297724109327682675743267667064104412028983481022072490199697989623955367783730421804718165627522340078671306472097609657451782384250074357460452256532426992390084334631664128861174587048846765362819621331619916681763665031247418732876975448357435451855664400822962511823315006299222496728880220645266441553277389972352794338576962650873055745500148616317988446628891746913174699639139517320868182955596878625265529536619796272203759159756510674727814315384776919647896767413111292184975049060042667430242273579028536090081482850315824883776590876123022788421719331606784616470665977690651091031359127554166109800670471183901126912772862232187974177031695176941280354755132243386238606646221031973346358963050932103480469814926372731169486901293762081156136049747017156132234805176580799712297485700938152194866204475984491199060943742919569876560821224645717578913502656498471992901433407779694590580932915850645844347584412178684093171569045212094679649888358957435244456904080362108080297801260613864854964142397622788621025580316011263558180375378425120986458703091300325952585827404166224774493638982885622311253311418012142602562306314686313315871547243890897837236718568019313174121771599307497118080663697020490689837924799750452535013832140845323489855139475637765368245990182596611812304230148222876318365308519168539042273701785039917001699029382024369123757711290853979284404100177774756524074454261585207636451992948127001115457728003892118927086998544445447031575897494210745131046799686465871888882302508655434960738896246166114632563249570936358455268628710027601528177270865702935869225354989321467311771947365060117720791300076194360757165055551262822750438613421174966633834632532552242007294262796285885846081320378005345643322765567453638586663201984686110831860652227239447823856547936460863962748556541623357876810293549375120132977731506470344891919285062620893029337635148379661070226224904927665091523067111209973499086908078029700442669371498783126480751019986173727206136932698710467062301683517651128625537370129591561655555009814866373906209406401145147687519889338123502375456663227093823628976087162971319204202392006831803748206441587128504989108591208922024158999501426122136265649150196392371017370379529323799310738817824416427885679671034752807182588473907808615229345911186839896135644913170434711996741965193815377148955104652009676286254777596954992824941492639122088824869728350914893102059585330423278189703643922094799410709880047549990959547078582146092264445871757020348678584572414230733513345194231791067917537778901587139679276956587759238713953684631574882218918039339194909652211480463633262090001439059422116277736560404261021186348149688572042874550392729663292518343411381743738320093166850310757552522430868497232982055759915035100941982852172715044162698269483874538431303759278639128585715486088598956928766597376329415938078893358539071408343786703984677653316193486870635796579071375783460988381980313737334753026109326813631239544157966311239768310140799431466390033371833347251632500242294504744020979236168240943621606423732474670732224494921416309725711761777536455059730940367717374193034127119773418593476184463781489416021083834905590286707042268295583303340205722629038947787063056851804441342814788841030957877962046240251617989979807236175604867430136797613404863401443522274438253419961804733649800427137107401812658975242563447908521576405733726019579964070175404056918694573925835228960599175181737930852104796417471126685907298628465143600956566893167005105099047881394689462098055864141115107340961599345085421236645317861130873607644291077268392458311380537833286465622874432930410146753326091629790476387724222797153431692825215525171958019027679260807622351731157115043978084699029328000135413072324170773356713324632185444875467055124251974444541116825160007306631303298559152703936156412446526190571937062475157909709398312512046115266696844466172951839195652095862778443822806065232714996931114673195776373190550780134768999115674307934355290266873779964259775135837300459497997991733271785792700759073285146128745461655095016153683833643824408663532969263471037237721256339941123116510802113825926871033940585548988223595927882238572075225619261917398901996896310467936154719193144465230430751914912147896453907863549659991052383798973627125204025650951111887314299743920088879635061317878370171229528329209818878406910419283912915025918825274795237593165875144066271229560499378259955848570552355812486534147981897450759585075966124370178919587197847939251735170137722721851098296870506558519270226220209927500468687921177852246550680804559235814997625279485003187151020421229715981234625535648068705549607096612383035408834173826394492907710406941383458317218241881617552068405879131820125197687748417807425616249114149118721000545871185423628456614930786004993959755342784251227560463077465100985633358477761900478454964155713204420324356778080109345919544549081225663773025023324073808968509255449673934864646407286889505992980897177036585983284611140679049306830000085048743946308912772114219950870060770798854622182349444175780770231557426356279225817007587881897188816412646643721800912699022128543175310055816481033939725548179109338041097774450360062157234406788200965027155529464757120918058261467851177268294398564562390304856282780117839887128120204878367085002435625499274830872322195490739109274881935309117183697384454671974994673266824896616148317384349638198713410784905621054814051820560611524400177830215162137937018493317639170789398041076023804789335702033187728572533211582572254324170471018143356179704173558231474535641042286001828062238967460518091780971229693854540032238158586063804953291219041032023502248249190675344833168739982566080472540068536918940000984152178459110577818024755602003011524655827630005703341085297412029063121365250276705001252872976918609022982073919715326427157918863816893073626199147658130113865895520940718505155241494900061759588744698483264877878975608437461499701293515040698143783593338831111428874061060201921538303717653565878561869603310646145175318796798689144763250666998994416865655568971843351941952376452226407997014801913658696700207410100088893828454013597252432464954439931734472868704038278294051950869990310854054309252081961055522419549512517939554271341855707999059962775737167548571846028259648630233308225003537975127141412227088066436379639613860194438831066929673302025448464908423879070060958570023796255898955929570169142272601769378743149207061584066309986026561714092806586446544601666903377029618236753509871276975492821576414280381743822603658565164936783665415797954573627300792831871779518363904403173416307962771208496351932699498789571345807205541549789614991607727477760817512701372648330337851004261947890456761083707413946557615606612418202321352465899791113165676604391228066123598876244149994335900457548430615503693874160067701496230840973682131115273131539143450435945356731337198111105653454548447529932784100028369522209627320721332094228600091993025683835167387454297679155732244527954100224331105561527408051934378104540223672296799024265230447170223300781586894250220882525555755285240401426637677646442065375675406140110438901484724400341020930624381016795015121478547243756228261690739842423757318097486472740153025063871335738503606939664932564293793331667400865791278565978898747471488290551711096533047151207187766850379059982661225911696254775818629251569285743128730729012477361570503460953760544918337633110139793675882357860705207387531913639295722980223127554567690945489297838521266591018255028777457487980116825938983438896420611211060901328988883266036914534647084762158389962384099845969642381129084290936856260319263405425779178153058338726874962718421069362006891730971190702608255395472530270286990841292526964204322354384738976362928945668940418746195206348832369165871731357158377074579230616854691059019885333813041320583964578578551518081246793236347963705800613869524543120275960032854070020860292484238464210993609535738951604719524033886205810176166086752292790010068563997571245026478133113577262773936802003484858512808458569365016596203435067376564508426389516121563639237573723925193750776336024188141755744617386565643407910738384515238665138940334975705484343186229481478618152382334291053945752021000995029703171285255149201592841373007542164076323595464437230591922898008746016821817116070685593711571990834096764759715514060737239470357819575051858807931810047437655157646351980336380691325922626629451575357436772009505249459789198693538258718952062461133435105632074834224339587370025442687933420900827602505407045514536594149812499200990094889986089302670691873433243862148856556641456202396146380710949373029270899742019176187900959852056877063814399987405630462612149497057359690219934439945879007010349734971958785673405611917204322129087796572968429391108663344752634331209011186223195219056652175487856027010739253491896376427678837930689206515109108129562597077361328261066031932321631251532559954087094209263594743276052315193487437104635444163074751581191441211160904528914459296820758360791351135866864132628572262577831752394207486017270385693379390567163259879787930929967207465719670946757280033102186839021847316948248922588435126876691143165868796658913833461229283077240959728688124814886187692285441727033007798847008605153952573344346123559752147442462648949636961238374828746855379495450208866556349109603016275753899018276662024826563937733288811834746890950815425657673929760077958817975680224430466651730846059958717052747023194953370953850798099950521753114049534542367447290065813366389753708607132523234416766432725759906473505958021520256695026424945305945266007750289760289778801418653388492453633710912957308510073172751168032103479571275557181175585067112216860230034509241296157379679591812432636747954064280631491153215354998747992253115562641703571312477747826523852149358196692197023880700468507295900894654982735365577087605926681340429640511624782402688980885937470382340333615469868518862769359637458789621184259822477651653909784243627249502500984486832294872643777643680905037136513545180037840882948553584198692016124689021232624657956699455221670854894593311488107276264528287833603156018935082068144413866914568465328471994384535207655170497450388170743818036100574284576925717074618592006852688242565022738342941974686927077146000181118293057011458172863073705623677033758914253133319397567444317796066737821605358844667665266298134034065990819401048245482643517823617987608629773788587698695258386598092744324763375472375095744607987326316456637393593299889454802001745161537893861093056911720731965243156325862114282429010294741363348692105961395528907103018030941222615023371036414622221745682527540522580604595286544422998122223252979055505672374162036108197558644192833999019041307374069376264596630794618435375916698049231892208466694451614103313019034817339442712753213641578022325426260156793245253221783778940753539526770720300046251741942363544063996099186742663366301290253710088750580475739313021154750662166280403863918409806803026666324629654074894876350829595488234446842062820955681736605961098422062979043955635002447765241390361278541059840034957628057208984472003578505961597538830112828478291422678481888589050205936910524169734727553524403434107834730006544413133959260400601696854080295014557558766901595078748341206089324367385994699774032603489488203259992774626830972681464624646523031351260486506677300922426020700292287915005212580361184256291708237785255040033006492598732463737124719371121319355792892347062692661360616785828319458863631088855663688881611776357587886992348851812987629665972471369654939576195234862085970272404775146727973447869174969931192681258720713189559866595052700214820269900523443697929157613591308573810407689557749179457262183659690276698656081490925859213453756921314694940835777207556613375390702384888354168525598355790795738485966998203681317843938965058315758463371301658728464390091011200183181220393712795830460989246587204624852874438918700508616683440189947461900937343525724357989359069643246094841965144379285509101206843306312986166578890443590454294844018490178256245733282222917514315469958297351147269813700809378754933857542100789029742491683339143512855401289504280844968760338910703141648256899176448825283530083825488647213731057896523779226826920827272691098534563935012521302155845365325955741543326390792838123971425287578445070423506369850556615925971403514543398005824132021481122024858406031504683826916279681816686275781578036242377027247355663528292623391711167684136020589139030376914240211508431695774138292582865337361028832907317632946272780178435074958838890965818301746839451597052832039453356983263916788809585348546464215126725480236543912008109515473245165249128399530571929688586522623380661982638192591664893808162146624993242488247475671630905924776611805517076247563172760491672745198276614598218692537012073779292860989513784585476194957778701673498511288153627450464408448162816940528088962513227039719800740132194278085894691438493930215177035624787691242402555115661668133528140723753837825691442548849497609206413198325320090988844564170950423576580198594650025167039437017660465603287164437348203233606204869533931920630801765836542920279876811468335809886424335487516419047213102199333104002120281188899454659901023602639303249231706453547293982702788243357567906619816206589530172687809493805431779122885036149735416765112135086254615806547390423131528237526527446516936330201953035866373903938533250066513728688228042752448786009600937358655033827763738292765435839542970933686986956846384757199707322651798869515222022420876060944773290136999587607710189268228261782412699654133468954758946677900660067201328679058359447557018029140132926541957745133882501637151465371891168138275601476478591458282141316171531273340310614192671573972990428261709774066805684593223314515454970451848478937507483927662873821918635328250185903602693369813270404980301165438398698507742941691486953066692619782544695066725127776962277059798395206295476641627235050552595563657678303608344410359939634821061421339611525224226514910685244814081133628115701275683883180367326819830979273366300177805343043174365614533550932112852709344235399791570502655032945205529555511256109068113754304436984117380652401498084442826758131179945099937359831479477344883800971391576350495836556753784417325057205404796092106800972185232116653742903898197634820701016679636016779873195852311063586960631971861615827026960681882162610766730638878011605473697639604801544776527269775832862729750648072443772264712197856996195604578108437866817465968863579985442399997312360383721611122803429931827103134661938028724946157469924116910464742157140108322814356771386975523372826215269413707105989465716584214069303156160092095623094609133728531211928087894998290113173463266264833995873151915862470098420586668159762380662356836153462100304413801294659278576751821001228080127523678464380457903713455148262945473465749546349757658988736319992089024205829770183294734394747819447536562386137045107468537368135211829416957122147568320746193029191595988102897575088123598656678989586143213556973111508312818125814472464516383509439847160976913628655731216839119136408286807396918302647297388258498618260098692600786922549624460564501353032780045666416768136595991232734681309786514526023964831111659934635713514727468164326481535250388690067383102346100087213831039267631997860164962854409423526749418407885858140401387252489857753375176485093979681113264349606411845425892220714082269379179254666192634316277241462158843884730695652468012046909156458108003699230023583119927242168316999466732960133925076619387829409852329322261428627259462115363586495093135848876678227346157228122022837979489177081976076183609344683960305143543807158590770313988742410791453323441368006040716754432208065939599817706580846601771727283353550305713186621734594880131751245186263882299343543828647961756642816357904500415222012452571805709066932917084786595492489827723818651312508300753636579855716830526966390798835102018695160723056843460104758722649058170233546216253918732255664839742427495038900632158514745769796638312838134242006042334661992887807170966912159429587207473327395746342604224964662755130273681614762192377824162694524971616675155839799837722636483271981998481740444361332055582532786430423519413544116993082100574823927442755549873995103928558347622151342561048142960534409291220933969651352525909032619600576097593935416912698176837698730406744063881990947442078183899416357982951464928458958809630839440630097997610186791501739222070017524034147662128267448294123792757597031266128721792502799207879365952330307732922204223094863099128238860239174101890769392028166787392319809268718790538207157944733630479019119817124446471271183530808750940410912740209771776183263346920847900436569796045444606182170226026357552269226892095664726162542350397572532831676379302395940351838360272300622581198697183279492579041771550232604526582953460342312415849091338750887335358163967221142203489829502706177405429789835284140798770193595502203405638580103755502625757759190050905683688817712731941257403871323932545560668133414733749165318097428282028368347272245708148143827185105222663101739365807313561922916637009778040715772284130879722585985188072937494257133160940724424929222289516186330673262199810558407520659580815292468287674175802425139000056653652229537134176227792817024610224503971309675560789057793438835828785537238420038650319856856538091432987380115697399950226632982081449549438557580988856620452780161574842518955196006642920979685831173519351078557323147627476458250106502630742735367122039807717356252103745572457572938166900594985132041732265068856133260080802889590372489946856881476372652810950115744838729109456573626238221813034777634289124320885338214358996405766932335362193521941861173331715446031091606923466003387235865090941951169643345187030728377414065767101976710397575605872769576009558268710626802011585692602803968164480435642660748647801952741904118964732541454825593980401259313365872152256172073893678713042808350245253251615764731636568009750057403901878164152048360763460467232905510053475703055516680798304818193535226257488580800204697347401581265917931544760849868191879858457055051254127742180646675422338550900711502646691575120589256834351425312320387642071230323494472536956563194303386101369399632993829510788815104748714897020837208669151772664103464304269407545971649580275005120828928415204303830956447741151727982975935327655953221507077186357353220057773785951569035125636767483018126393015449396510400149618773863223722572788002705197936453162498321849289711996248939138208524539959029135874662087884943089091539953356082588519637062547190981265343846861239502722028909375847728180999855269746636865214464364727035593899766554273832495574963261586761318751010542215374269470899386349381059506885075534871134732829301357606256375646305153694021996497821583658273674577971614265312568249558330542697628464188885017311987848616475478373761303857602868962154640196933543514274963166567096676994201996786412731120868072521921514533415177138467633251893256268861173056630813372773853984939356419512132407550475408500451753985989426281389286826577605813795000518896365602863745898046524450713888580746195424546775033589324845178382017849911336486267141700463909767061913094517020698988692634595965796541019539468563695282018777781422655925988928431698499095360256085185525319319812270322595046746242992595277268380385185812765749345267637846439338845028426636334152312997779112179329087552564582692654001368520287592312130618565998847155877677853254231849034038237670881758482010423361990636168268987920642025951151341543058056222541109427413821214138597461296925995488181916532837781167308324304219535689455540121999129535758544576613703030131131120159713245795808633001335470162564895795752374400765799394941687562476681688385993411363530397386856613604604743216144695962933458732705672794633276029080966855018488290275407117252787997541159428303125963774548574300205703187051078859442306015157169272783683679634247308078444837176098478131452147411219011266389325370165092559902389791043769992128863307689213464390417267313356861365184471031799494870911000221004111558770166446436484588052723090668955074611636495401952178600721951734855858688631298133130079646782422746502641434122613558043862269253408416844052205124099462663494730065745465176375018077492039044156519163117657977953675499913672743846575847955029731980570940205110698188749750554031260084024034009266905598096460704628038994984693565596865155135649404071464159361043916362399896928484692114910768132448109151821730698247070642522504848203815881651031745130010968518274923346481420406832233300242647403487388565221862469734530066814366073825328193120579433195437680675677882186966395769673058857544493052825504310329433324541593228184733514192998699985612123747354975654601962555437703455670735559179248556787793482151728676209268359386612292118186159696299062973913835095334205307878566940090132949747035007190421626307085611742916332338822880884610350241730608674485424546424240900761253316275782338632608739876677216348325588519939952346092104803711706193926953686456298607458694435587668601783410397663804102804374553632684970218237533638749735179018480136872169681652608826917421205290294483501005579636706695075746159917112762514668370332459564781587953726167292710661617506104432406463873950728720847873396898716922217243963606700326863619197662515847549150957246600357388103149313099800267950113893519711722925846028092967347492311848502883474732440531139408755359426310881467910536355311327003367379676201125918405315895075159751346901468694834123105300113722884226982589418037567069826484919278725137193290036192499938235194648188841434975569125263957184024681852340943351466892695233279161768162688094294683966240895288757534005713537695899514893852382627215260958560805927546632034296709128585816578715957255787812536176826059328169911855111550300986356405729510182226017748222146450584595576801198911452293138400914105028035368112069316264856218785816935307037717929098845653693898085501734758385390768940225708829009884300705997762318112541288731597748013970042745374502338883346761011455845163573998070555443301169111812802121698734833916941998026793750089690945118630844715487193211270935237362249965223400280958585740168066978653484335639444552056278746765914618318724685832184231346245995291835160916921598340648614956918509993381236546949074939095642293480409140623499034184580281999389936660375526526901747123549630943141117122464670874493829343696862224693574505735799439905018775905604545793564025661858010914126066247022729775124036658839836966454262054545825506145282493471039637036446911749459557418595261012138106715616839383475886819370956591306573586896251855819307413140101800554079955122797604856442463225712351255509407603508482407956040758204522811525845682507008908443117462419591469820657028580844120684205288270285642356591211829942590418258469673832588254945063625615188390112869814135974429704017133111800549071895841055718914497916110828548385311976594482762736067291288519123371612293504125679017361387841537422206766896510137684564731223456129795801489580894080181777528753254049769061979925743328181685401214384213955421522613754559527712615050547706396433978577264926652674701117421077110474146437683867506865864775581156032422078864046097916098140583271418514292469507014487553973374952540641479415772856490549059711665176773214213192405899431239429562452710704306723301229259982657438619473773755562981897647016272752474699860032594332131410012982934007111302733938990670610198023973758920906390968516253045839619756668635332629243757764984011408865914931634366762274429381019491332203155792701091095808966535047672063110894720800369068136123137284795603458556865389039694211972739030932475768964442603635045701793396948670917905493650395423766029263031452009036951342365498391473952677060788981387935224269036012891093949457334961334911269479104811876287090410166119131073396751280405990020995562423107915261531980813206106931304135391115469723059179275316248342430132600136833542185840060495312005738751974960270702416374436535425744172032675957537136127437705187294314272141390536171025877073937394238955700356529254260334943962219159393756190796352991102168464062625876798750598501947399813513203785025743819794530723752984370803493728210932839411480421115774790179761589678834195222598503031444809615780463669790644388528519018356129506066703099172625939255452837712970951568414113533804360638733786856788608786422151853048208550174764740221431490562694642550557603348686703474403975241282390963475882704681091496907886972611619899202374199944614661208938864608147718532660390716435352325638749341689079708782735783119794829798680921877775492374076318774406672572505587198952622932081049968386790343062713706197190099617031916362327566897642671499411371910742436337555172420515722156298521021149636413685202825341712129194049306375565150786608485494860670388077527376719770151420547908776216928641243381688867603521906671352709891646548302293752389426072206466316776930428332357387987373470814828282135189011750229806128409431492958127303324321018669484960076245531818155322006967495864580892866752939044458827551918509334988415810777631227376079685482236285778383293044377288444733718523496199491350603571042488124666670620770759600433233457069133018987033441645509802966022817019051754679303699637400406897578979927541281281862264259627814041165767273025069987431465449005552290962156985339930657267026881762728183872005797442081014164389486330396240855535122678842664178652017484966703046997371878644134380398249895824631410674128380490590979223692044737646005431811047602281680557729054141197152562155548764073943944588530057508049456775736704703222529955820602803116873953085262855613588648933394355897053468113010240465572925690796972414410827002481610278873133029216387377576725272409277345782714046006630749141365794825619122245992012984869703056956966943695459909330183765036372393969287867227524221698099290927182125108654509908493084700240864022170554456373883717739174866273608625017239108492666083420926417861165238111207138719544363229532316999627254911136079695571100425497017353404912636011755070041068449055825813099711968201996318396878914287121258624819301271566046940798258162983641991012012420251267498161517141374070467119323047566199610416032991112572064210494959061785001003589529916276364389211715497893202229817609707820387541623648812890182129951190097396555413387493025090007851217418918572618906922063827495956866843506367313581481113472979679232108618412933056676013455220988347329664761783915145951586765035086191277527232876420866294149469557023792385185839757962714840380809053115752070186328364805752385488434314840336438598954269186267544694194147638490182111640082860300303147902398083119070051141510304224697610886093088188286601314387359051314533150697669006345005017166920077622604563208229001546586131321530505744716725361346302693571193278910527102890651139223268702197738831725857741587449146683319414140441435375591198213181528556287700915976406952184432554395140979755103023452629429579376499232927706388626041518820739095252865962146370153257559188873169781527448233501761245230582005831183656886726482991798178500329675426038028449098278028625860227459651774560018576303353263896536767543413387277621530521935986603354559437820940323628150998693529656841995697359085080863040948213707935357918532442725417069218977367572309636886645213245309355471177705672927305856736299275081164925454262078371050658120974725854796625694921402134614830105491406798625416365011064190202152109777488129699580760610029310940980855550669605920712482561266885279064959858421532561545327968975961143019087377140829734728560650897076804650813686163855573633456520254886112329009978897613972106260293428520933627013641943173928730646884400834145333326754307384341017141624109651506869491982327533038853471296598135391329113312586847117780233379435389825692334268740683104997394134540890128821920903980847261911650020804290803332629735690699855549191390920536499561641627852995310559288929298904028000223102709355742123625468412750879769111648209577195765889540325148501639331672147211513139832246702392860926938069331846915428469854155018394578206734843600199240450445853995382688356496650483848891755887192422206071733066381760704229221908749008188548454568577147193698022029919919897883527456704749371810685403461016120734363642586451325816916390341492617982699710102575881530569261646723601594699384559579845045888131630068294924786373460625618112484750911976589483049650425945661610374747039817137028062111504749816235311941195215934176282129710570725819789007850846572972629053326065811775007922480219593688784858918652673025859579410530599877973322081751593684914934278624692359423531246167589753117490680983661851431513632613070246376354379445685132440402333639388402579725138997739631943959059471183830446027451713641042430753188188500525753874192642882717363167519255344351463106755968513627813040830212846490275458701726819934940258545253783057095295432913516157463134536058685766690104300535920722791808645633455057152293059923927145861772450315024337431643554480559760316405729584967779255649008349489022764231699408403982941631143265517327732858036312740216049074892663914163664313555901649533528924362368160507391089395772459652490926667230036802899924720254719248717998360079474822647692852754518517760080445324497986657477280811079983124915011341919003518566410385100897606529122101972055214125092476718716704496591637242136038982237735487060785154886539871566057224217381921976209543192540209213283054196667875711198437093747677309920375849639600812183283412419754406659195400966139379839461419867467098460750792890525944309085041474651530554543890097851316027703215775278190146622653859178165126470571304621846063989282383225415354727813147097979143004942036325982315666213139602352285548499722440329851485554356387987590367817969215489084183607587223077757493612949445400030043527777677980556113633315893648568908642493011751725488538237723882735543441677935621424792802968974060893112801039407322702908065184534178377829357751924528528567806424942170736812855648199286390419184824840500076690827053684686655421070822445089161214740625649849241802721560224103220388663223060494738457210120888508941527830951409373562912082712835653101969576793609753098727835430548001030870222408076803049384139647655544156246764345300082239191083569537506908837447433722993508540621001633820705869411610491870607995889019181793267121099649771821570600347975048975607670335959796951397749072178269590092124451850867151862662975335698597831063621564847646453620239101268921216958871690752883965676865246202040955216364052187372178193653221344820384629233425244911393321076664168624534434699022666083210415205641253228957437707386975756508099003628548182497968988293973326936506085855868983459216683502076726951877090849413518145768719165815532846647256727628253668177732082302550439595573364079332098452443824740130504148891954258418565812541389276802193931046262219807261439014136341252225451659209082634079072950294298813271221328845711575080575171407309562485035003499186113611252312557237058674578366556684037933728621722484041727008610973883172361708403833828164329518074766855618515212365602204618939802567025644299375001919583728190865726988292700991639008125075573362759605250771103202425073256333504683366115421836154714070637654797386474586485250868965228358169009422404847675892422189699935297657665018820919781903419867577171948588163676031070179504341507271369410648755222467309004657384929660851376834273902798728801551224371349426369083773058066674499181836293914924308040136626421422736529969324075802150996568982249133092813133743788673525750804354489178407731852383924893867235409048721322025150503538787220250930656759318591902218218581174778407307615507515665972082025716670455212068062469185782607381498879321054036583681624178973716726343892264514411175277620928262101282826431349902153102989811141774750093563345453454295444468854113808354129700297075596125245737008427751004556645229931355245834021643090564402748342741061953763292226740215936028832874644727343218280868516294592347424618695047869779728828209038448354356283435635405820604440558617125755615649894495107861679480395685536443125333200289728060188079131114723258527932861137609258784762617803184238145855100613965134273070856743291605903970192636017474175808549489913796737826866793777582628618095633421962519913431843782023447130842847746479342694599924783001079231726155941137612288825086652331132391064454252862268999457711803963798455786304368078521601448679434880907572079532523627744834610665231621373947126872367723064261540728083534704286820568806103566576549991139662630895988548162702764223905942542406334807431742811281791064865408619614132716063391277329415242347194440230929951281653500373321964078990690565770750830190158872818626266955767334050903002899979950398916318555296210579874084657672226667722369493222318470438472591298392294110805923725464349953481082533602930780644132839094772793825956896515647482649113327954957713684916434736497040674252869721670685295408772096109629317129333842409217589399494306666833701721722737143405664796241969240160942785371573774422284603739295233560958786619711024411299782843404520343792033539218590377871851649635571022182496027097575615245038322126664540767170238805245023685669924682583445133289173988414645005440972200117850619732787138551830154415971141780242110007086772848532286637174931346918914718829709228482343362202225067241299683570961598210421102853689950640195395070990824470802507039366688302820467814840771366353553531916722456842707295623167996717204829467759422835500704404917421752034246390321132152714910683531971479296172212972411600066238106989330349584953656022273211582727435229212524426616659554538861034807970815166781125170093621408107536538737439350819741233560725831807351213979268837930773818062095608641249594863974876618190741523116635519887691297316433904894308345936140619703752616968963439545000766698358022423219417580541989435895807066450520278074533080598592533260786884997805360918756339842724955876313883000056953699026071017962686771554432072846904797211147848474078853088956700767738594753399515318005071411765144318347630372945992738753816957862264026391189853721229174754685741746175011228736078674106560707496001371801641532947535420090405512157243933877099405587281498219511891321126638173009958600432966091497099075186617442635778295247264759474821349553801886209114187095596701275804150929207044999911545508047846382601422066113745999014841867939961028248559389170457034780339461310804462174823544600526345951309287396295432806366804976549483849243493004184353469253987263278520153239330293666250053396883987382652241298237202584777292877628310725495820816125027479809684761982526450274882093976786437729744156146694357482667887901004938356842398257768090909458042551542250237149893258235676856446183835517534673309180753338439904886981251857930856007486816104231478856028721807877457613286949341768395910239491269397832695099528390963608548634370472606952243033257466486498374836949044034136490889353588176914082124367589636864595166905057380805232632281198297518829335886733710422543189013796466260649931934732112030346558319012750050383709140647083416228499198247440493587521041481478814226503168843886311932149573522355725469611409560400301203539338648273383816255755286456405413420115756787444197581140504524718450927230943415623702195936484250185757433254922374097096849426863561562965226116682758946253111592360372717809116103513786000940268146319900720647160048387250294944422411746234140183212806477732911764581356118373231485083634687290372527643813976245370356924580231914470817930025085272670023619487503995696827015060601226286318689557191357583098972249295585112657432345655384957081682817711411374797893815458103131433502241146320780952325063228911989014017176386697856115755716448560658818708289555855486565830410547328404851682174003610469762187898247934950968372179571576380584370862657086923431461868873120742606937532704080609369276888208602604968660607086765699421209032165035972220977309160810600734037652317033946691692607575570525322422646239497780452408226336406257950628039723857210822495922583785015068684221056726962270074280835644410218990080539229553757771791653589617908914332541546818920909899483278836668946254523511244508740094249087011374049490651696353606347646497881123594278124014074964444630014432698350564985118799848931517807887179365318163253494476402495653155591913294243244140821166479183601190642150426319061494783341081111584606342550497524927248214250681346839194081000866507831264696979519339351210572681215022419205539277838652638116014309095076511201581910373681036745463301369038489492235155305462420467883475650097910253328621381107006050687613568842999793611920890580982616459002662828421862926520120779194133021501784550535585222990659838042852061950028167720385876674940737980717564917496285252934441221463379791085472713197807749512771632445444268548636559499843966383064287399601528484799813650306526908410466660774950445301657652702064121459178524144772626227365396304351596380342477520995808625595365261408090580523421266234507346477591273422787524957498265658068833809111711011903964669222312721571256222477035599500169568750668608696559890656837140516857943402047431949998008853545455988925993904440301760785000261512274993496715011769623622268745112088601069774663379034191294795791882597057554091721205628453749018894080353441052865620148792203442348910623851044057866945845664636077317878973518906144273460046128749585973052964227450399407519335864573413419129626307158612805449023921749350082115505541557725236902843049054230403315893184637436839947529652351264581207893881169409353961685047799750988682617460364699736263050329076465628901353599259392386411294840337863687847816244361732625831352859891211228818707050114066399729649258433770841465117220333136382201034285058905962578021981183477183427582534884481272358318393040397464533944956762700712221311089026220239945834815614793817621641308226522706712364254823391531762537749739856891956573499153590956498990999402249086445497910854137138169218665682552934509169988433923947820594474145276886084959891779938427643628729581473300525849502384520009475163106375502468774859463596933764755950334632669913303472787454665043525342811530891664866589333466333308679030718714702206471148996500393626312455698445394569843950013462591154583138563767501945727396141661859389558106382863327641287195027280085323904646119888264315662114594471902587049853091017349961422943613542049940400580387157623626281122793140332974785084316064380157482527792022040657995751259935973392168460922385925998541684805752653414869700108465078774297242056966677286056018645085604594278822953459408081247837444789105923490908038574912261720394163234819459481440444366587246154305081499518337415572328680904317895507290374073988584103444757525721168793876089546920165395332369214220759838098787182628513200927792611589537106789238984780308669537498674842629480486211591228555283511114707673019277269987623915128999355466861495957543918448904295444012669658385658866797697478531353323478076917455290179922628252954249468630436164531000027080988963240814902588065572279564198293868207149643324436430957214504792163658374165195063728317908249337356944382274945631034450257078520788213652257000262335155612103500932004396544643230136949852441844547545446612975171183543934734466480944008496070065169715501266538108706575370695286587741966694997733625170387763410927553615362465323016327899070693033947128415297561770247158446059428806644413454193286494188835000427825189223178573923216246071743293041130075068785655530485126804468847125543462290635218201925804789371568297936812480694435407264919698386403731486220951829948562588771701480989064724585544211484490778024379556448811356700182175263182922325664577067809242575777035582541077160270721069610730000157365890120499070557008356676856358428300675578144553743232791958010821163150531531028694462363388380216712195361784189276073075498760596485059579533292582056628027015480617145533925984080941916112359923390022765263390416703470243893898576086873543146099981078359241606875787610689144489099713317587617165551955222203948121466409404794837332112357518276910110703833824348098795110974797910479878687897792415385732729004698998111314240951434488384912525497366070973494250402865698466616795510874402025273013051203113565636831966434977410410053530446384524022237869088803517623696662067503839042967061124265887508113194365297485883984597611613511938327560035213120457837767542269600114837860762871975364916770097226167785000059720383013746212089490896401512621461960516091200066290511983020139105794920097302420495390554676979621631135601129363587499083680034859081562854358288277367598618894114140090421945506823262274112315550911458825140585268857027146280957128286213059387167123813023380379052490423435958653807810853689358931194602580890656191214204217557002689915553998382364490860106046403729509715670009595398365205316788547093398258971898957104830757168598457321801860541782300420151182158688806638225059441748697417328950759391669344333985148840916831821410331901674874574924044557723817123612899006164000077039921661677649667069130781389986702048957447823812607729505633131365817519131128532875677156468128212411384840089086170809008401979300045056669945779539416471612760430945473638623956767707118609830873348361029672709705352235314960391130378053192513149471252133149525635035543940052922297216821388534132815653457706280380110136839461750633788231758640286897456024644815407148138191648380975034079299500927499841342402592133550981396843386181317751811952884255958686266731226772367268265935299299523502393580771111825301321433946720683071343297137798869865902905289048114324210501310841678494357392838054962679390601514044897096970310993557019026843963000219939721869371926983631782699560528698728239160357055842898091594589091035307617848262098732053577765470129519258557435086398843315867913479598550508240798436675182393259764218505551162492927911384246860155131816318644438447210051184451525373249142421825689393869096485270765809611353103381152262036805529037698092346028134503158096177948035131717615509908390913219702010296555353421300160233723805453048216234244764344820362122910031956610428076934953989766850020720505641686829535175137384403446464365375592263063707197605011530855778275154170353022236973437578834777437951603850452642933083572031164292884182391574609087360188808066060218966498793771925715649556662758089888770223085781877095338987766226141229441540532446395720273449297520387515320082931034706755664386139969534462053476566497714785670523552389130395257476669140046882898090123417450257557161772377403492374471490362669784523802198651232682343969592025622516070554337176041224232470598338979415877682585508146879971299785726899720782190957067561379646268838032768160700514493165678899955549058501357127435111774800183144238073055900948589627984979194070944019619767517386469329781792438860530556631883025207810436587726943131489384576023858805907477010982201709188865223185759605769612493802650412622046430974802086284167620043171518532323364484704613827552828261145234551485464204924019956301073224327400669045026725560107629310512566898254251354556159247537984354378783789080645330685421818137237013731489268780273298765294563108025047579403165993535019286194736099000192452981052405670731153035497274733579142234657473566288440808313602721739202977329255528547500844248436564510510460089490396316267383928100988641228180689454410905454665478332296918617500235530476622460391803369119343529815227870051630132819503104962886626862920305424471913572377440477816804792378518793231670748757128231036763275132465941697659664932511615094954101372314192189100426254525333488029097610099143223799606411688121274855473102769302933470478909088155976879875031090764909661016710748954553720785998594210351628354846587716842112855644950353092333464363611352348918775963471368142518923684720271277011962949475850827763049408428838386408880908921352077714678941973540041072243686486149512221356509895249428671615791436516450701067387861959951403215771817908712862008369399749733780816308682549681203061117258048690752976445761271325534222926469679921217423132970540952573600492788087519399545577622361901129304994496738150227227415900453668143335385851160635803217643672794520261618787865913837786029028658286869058201352549133423652170926365841866192407866128982038741098690916444447366550890723525213613365576031733857118522545659946899100660058949764031357556468396066223440967146428060571308988682631286522504987981157063333832088878473296506862681485524279151166669548333676132008142375099347123105686822129810486836124507532450797139706915725090027715730619684142197116196672652923929254947848043264209037698854818075179145280898481017101097783286931287004599871600172951621536970501042263184928651400821980888915195916858873488601794841614486870009591539078186228148311879921754305247384487112846409263702003972444033595039342271026151714948023149260639190431629131553842165580289567605954640661887629060915910433875677122083900329240072368063661021473705627068584628909587652053024037597663308464074105842795705591499915760379824911093650811941240859498443869197550649552104932747073679380828709951580344837012229860490263157648713578982296658294489185844946361050576153021590882931992545114722049696300402568040665541197381028974297305437443558848205800233634045814653614559446631360166212532694888671134569299193464602947103757784178467890586732006812658294833856748533718089447099307711704653032087155387399400534544300231091392542964215653035428595896227393554699705753126590994613762853302941914961643168800045935278554217169806945809720834000578502254332266819650607229038038404801512545166251335318070402964814818687202720649047834105133114351608468464778839027510251236825267924463034129879996159337781977759291079406869026362044685378986982703895372894507078455510245118066659106284027400590620589843662448208495459347850945024873557654919093544728022742527543165820873651170908278862595625893745353261925088661601938109923072421133399642737630954086514468558246336068523906000174005101026625010993076040015009087223920844825222713344790373992768869772364154698478632305495687059331531552911817599762701471479931553200945292089388577227305810283879001851530213175250396095372732253111543590170818954356378713869850088151248103293323198188884919805833381753137748953107178588152827709645900246846910630496430122404751033703522666569557667551884836540257750736940264127441197648468200967346087127505459352204144608970200040727364415954606888560545136684725805778268278282770936923687102167079221287828162008042333988154655235475634995569093563076254615086530802119984840353185688225305726192580653848525899315764198510069390401607026164155482755688803172811289501352255592255356900071635437843325096110733109566442465359337613335620595393715314578440093757502918634670106706418369110443703898604272826364663459391485653549352227922656461560695820239370880387038948638360452750109103168475050366322802364401556261331345701723216553161763496316975253419990733665126132095363123907006465940064157075952903768427695001512287751547371194714278723042962743741850802836342438963199056597045597700883700769947059734250637498806477173492523443315368584236866145835073326753277626266931317601441108627029115794717324169190945869737601403099975185596119209991590765879359550170893751522299210453974789511958689703834669845553902473606864351242000992926295049721341176721823843626171441540750270095834426840599282239612555118363998583539803751823287843761335425640567433582693482670715895449812643747897131513491261237934530241726243726157517479114954319331076439004219951447966732527127199258647756087581064500282052978771565335645607904600420932363275289390716941625843229020234291359915686762077885805201291650651408136754155043398493076313018043235272006527614753293638474952471363785701782954545693402016803909373579466164910200767652286638471032421515105630121653112191329708902797977666147575137269760568339507080303962749597454514622087791308647890375239975548810085208948473204405038501986669435758775613375972209126766777972328410021445582359082143172489123083903394864907430044594839515178330582426421612321096803393629258211874617688982234905878385793742673576016825523961036605184688779565153777239766546912972487880674652642259083851040274260404369966101819314414901430200300460246278179529690704129691486843070768509335028118012888521956394156880138817057046173755859886004321213811500600947788814083887141560949095034410114051612836940475529103144382962349329545900373023440449631547135221442125438708100675708156806619014648466682393307360634282266477900243328478151745891124095231398119387892978581736967461148553668749363035455492778969124480511484087697017525077884894722585175620519136939022246055617621138397023523338894067254771307659749186194886022457123464160680722766081756674145833453153457725199831277487329961798709919806614678841104320772846710866817554702738105138932048935445746939048691275132984982116989237844499682313478434383884132580601761945430975015939245807402029307773636930883668359113409349878024344860520767600557173576944233621537161057661929470391133960169410823142746160227123781925639621552130131894691063293736211146510196032465595968999183115982857329190913393210791202444612005035310373505959908836887253197079180806568472870871365883987475917581915984009417379143751533279569858716439268191283414050838534616844679439311116468917457633732613027160173367541754303162397111605733107665797703869355825131566112191749940913657075994743569655334720664512411588761912277556326894871921516041442577590305725614058393760899703277603465333178474199099224344738833013885999808171981261129779647221980841677463175241687827357040157177034495542462959683649627448205194301459125989978916206125839089343893366647074751806766270648227979479774032976825325301233753449464118759592689282710146533181955826705030728989527863389882791408623767429611555069061217535143285590569875198189269608996789133826908143860542087769828882868280431185736855544542778963052280465147278816901601964698264412149104023457239201640764338689419193382506005309425751245945232982585061640851136144147785029365632882208529059906337732753848643049226589324702660017779116772014699287987149609364496069745785959823651231342822115190404302233077040237498949361837647338675735058698141954641162452253225637612631253261455002427690232762162986969259376726159521616551863631678957721299892144108014690580107833369590908165502780140670350191199698157918486841456267882118060063530149364830017550456640991302822277710908112409759308734530820815861216294887576308934695899435279221534597163599223007737496062790379573540964730290522550772534484794065530294343034428867398019131185930832663394735583158797829822916767054081364712206337267485856496582235003352670486857125197468820986721056983390759030190066802608550678861189082914056113635758591327592961435032550245603074927767179198192039591104382186140072933685282189663140495181910684083693764424980681718926236293588518159510773722809418101037152128624950426878631886816450741593915742621730417671448163364231010517399402636528410446759536173461021933345426990889474146181234782676020726649698743619021330112881138613949793933330517662728257161266333320759756261197518569466332600998919105615994783558974920072093240067155883705472473893185191157463647244629377520362399168097025190950219153063351460631115794670435355653293739739163545112607980617682331614646418932834848658725677695657699867608111433245133420652192909838481912846424532175222627761117597472558839863418776638170277381239539025275400236730139506556462110268013563999953353971888856292399397497388165271556454671213143554088395677671646240675799118175001349607299913633192152771403375847453050864941291539506529815910639764619743934321177525848415082945405698379996609280100325154252538954407777101253180343258923479687557167585762043022958867552470813447589173557600307258035924758669557798022148962516273152875678310475153783653591530432629509013229693177186840433688032615378052522220845174574808788349220857876007057701272663800900863126246638384327328266831071844621431577406124026762244861125048386541201859507665559691899218267927010493140840174782472846820313225283983151336081302322999662069953728172248455914997375076510621424448127316629815537259715552191775608833999770068813563876777886691125073998709174796763020407290594287519568790830308163119852586938973833072768912266000604757943445356899110688284973024353957177386762219198274476997655483931645477352441942702957317653699522661878187174658632387214278297402984965185588993710437021290051787178815827852195430616759399939168837960016201948803800746782308300589387972115115505378456522486745300294379937481806564505080911380603904381131179271436079964249659839351436442493999550934713342344831910151204650942959584857308095431851190783202976508642653269503772658196881069389266159173837798513670380666258610403156248908978617126663434973942154561353343991081792492934100323270480581109753315140739642462851236316139776289043484929618333291678381864604259848371087467304618655504833283670006118914208839651052847828584954493595575582558170740353135173214385124003518867852980497845673490918805454497976375398823415956303685558527405634541621443200792547910320435726165530631433372981229388253857074070408774924565740638017706581476967810515999249962825457385730645777450463604643568241241059550802548169217179560766445849485084418363368513341517852917533795112942964125095993090757404979797331120732626182656437583760979265174170494898821575967353503877474726936471793532533734624210551316911649520146903646816160873492525532795002933783056674362563561638896964272401667759549523319338778302960764765366449212472127087076718737979257992753738044421589859849309533127348316424395296621374899066860351872629246632238578005230928191047264234323811751347920205558745658545382378704650224815662823296792495323364037265089825323620576860139096681474112039423701664864507858478888179969602155644227939480052472822694195401871957438112823339615056552967974941484008242116563900807379170992823526748205047248350726768522332740856934858393045181855128288960947118055531920360791825259046507692976257369474656777157936576227773738334395743090632918656592530383136819511795144019477228601677341853414993315702264433551031777970559139156597197166171356633360488512239440595162325641975224937726262310543751835928272836758225940011621831112255831309104195885880498917442602245723287824224246680963040504904128691924804337961740031447341606887492188836371668171689652671631343827473570679627754971753942733900857098676617459398399604146263196650561918112706544810872958379312916388415937033631186874483252853009190801746331473651490855133845389683193451894574927977828685477671629394766614199647292163088869767403920068984163438352151581081104096393305027180016016126439124945202691231867170329854389856546499808631602157039740378541402824699882853080591046811508509555726665042355296324501215493788315142270255871379120200990827345724258428801168512193509807309470162341661300946358380151521406440950216540895099824263655894174261061538990633662734074199892761237467986300623635111101893614433866890797643872351751563043019702886221165920468836750474532939546181657674376729525082077529408075948492511710375351657624251646221915280318246193887148820431479354702429657455967833040607621493183513052789028680985764157938427814273388308052015893229368428743691205337785958603270031916853498641065431568933903542783374135713007819514266715473340352569263284477928840831610768324026176257468505903638952713718604124965727801260919915501643730406105831804155738479008454853590663367388892675279449389381150758134346269077520797919089163154262297078118729789334983734509590290272058179348825072696549641121868456365802624614722572502578144986003383022373579879026543920785464342471898751752921418792624566773224666586552969921479144417180964484120351060775857021188459222605803249403981338091017131750631748203395160461729691176953310329314018766536656694872958812443122654023471283704676226043219268150546928152893055427577487218230239857437637491833103541684608791409506327258281709989290902699010462874695228511061166255765502069733832418299492448575193674242627604018465415501584921795149286350868516632422325689467143828843151223602470688790291738776007833129895615982518674808197154452932484823053074961228676039710417187356040707790137982881718244674217182278548832578909937468638358033055985359748265107060756963849676838045077174376776864947516605320065896590565606812953324377344255016248639763718513461951309467840283455462276458191339192019354044514852721944059306666051061449465781678830213631281614022491268835574300761641053783106022067515547044036741260702155007334154544769240795954049969556242331855016731586280194085250377176611381221416179898771011083820166188948729776525562033239211107908661547219599977246974763519448992278093532218254401729330868193397904986732441087548656048560205248861749365064037825626449115963189136167052055024128352245251639524812973007478120075192082842570147887169580076966253149024887460733990985890303690868238839646044267324499067329901389500892809080196042979898368406153580302249691403526889273069176782792284616065788277157952995938754571892686128934475390849951375160866512997093393941630452871168856257801965788813983110807188424099130916043608451250488023657876492296299731463803624795435295288343676411159529822429339503052358162186142176702575088526616697278475011298231657956094236946920065074141812743794069678277511578853773117832495994459009824775140433416060546030886825510625770242108791409897799255186178508556703704623409719884353348383564504773813996606396884051031968969637413934175892806817690107023324668265769730833005986350794006613059233500865428040669667109279650539714970891297325634962127305321980087515534030233055362116209168317503197300703916580124371826648722776912461063206756359369975423085361616864336503140684089927985410343770448717843065408904886267583524141661201469213628406402539355773588935604446528487915490143620222519872613536788676301858189360426853081290141861933697877252328037657473911880788542116447178053435559066258823097824459442275611725795410116861686742017126355486913422557764716500548533457731084349930244749116430408509440037891194832245244926172757325412213482545078419836474856984302392865322225915372481687108746963752482610885993918652376242865315563421876237026102910800281269224954824460426884970192283080112175864244994953528647199754154758318740774930291670661320599272387537430884898847942104486230082967217800595460905281038714953987719657716503619416507720831698896297542709091954234466998009560192832745285709574226979530282299486777740729898206212881960365713464317565107801165614429441379971493133861863808524809596711864306773378825933827698208360015075678637223701499033266320007567863773473316073120842248620404247355865703475740274400163352002365373832110144451767368137338563891522089196076197944929236026947614944296318868191350933087017569193631610580506646207356199897644666743378331668138156168692015939107603492462485174131908921693119815583264201623594352001114702700236352335577475169560751790493665557300115541184031681637303839683979384882657038100248294014811918871242487768729133607762304570754072702077730083441846372217584984563055639856769425677282768232800869737600247739709897487111807573853093106816956409055314865175303554165246045651684153438297140982992298125721507548910799405072952749855825462540813151388854641501820526626880000194426109343012706425357954160649199307400962417836309979718648497487355761785719359357816998910195324294570248908058323589822961241103569260996370395033478889668690921565852886435547172224786498126087064392964678704634815596232788271878371382530638228353409326792274108213570414868860250116227574663960493796583949793693567970825059297717800809140939506289962847503498885317219046094536549870285119038943736773143965805468755149104309031051819513704883472894952435562390102972611227218031061328083457615574734956154640303399153721488624625278319966428636832489407001245357108171975195901125954035029779232981408797852701658952740641079995446360267812095298976665038236189745439134036968306755492943876548700263877592405786327864803953800422141185797399609099095370346413675815334345930249190945055940890674627479451476082771187277603624595518088091594601821170986572264688391183471558058821917816399383754150477184156570615859402911244962574925436187829964989980870722584683929064166334482709550808618238968177057289475001857246222391073252613254483106771361564882226996411917842028007317905350475103016184382561959003933804329015882870929243813583345884385121470056243522220888758845682858509457365700186285811004549900936293115493669687335384467701467281615242607240866398361942498717924935990216476003988658134190493978998710463196245265342469622304063935539993909126812903573252503264618540343514687125507270268995351036431530854863363904231307866491992831548211914728538173430692589739009931527127512810713847680804292163816228043603031414092545651405798503833081454419444795406884223376323618238820297925735780557065082514888830909632761724033717497001375349651245233002644699025564902721972215357644969350886786178085806690224444831622212051079583760653901212426584576976303068189214910097142709207356562256372658095674140217670682201662387382310450510678751037179572011575409528222531912966398985676378537514170100189766799127826797935855565243481869672165349159219638322834402424911099856757953996913072539197542206058655975829739251563953326903279719845452241493578779623399036592114171549376380512209905854886823340421290444833938841465841245933234780565940576377556959275032317591574428378679866381434995341403268025421953776032050301237721425305095603067845434438750999971213414440524342663000121704261591103299877271596966420652337754837306001670016921799739705416510881208122772870717740918839633369871871122052937893769644798568319736933100211378169065875157938072215553160215642413259621001558633160648786254149558168665418239548029770455751045725391182112482105014713921668650119525400361845355439458600871627257944281803822490379318270855457894363458040275828495682993873236670270530471556316129336439183131260294311627930628098695736610753820536365429393184006750932360893751018667215469721068335336140709316780894630473544040207256672854319907852346818108396446427405269968794007646463346574448475162774007788059105748087068322227182370833790897418637630347435468620948050360552167100488436003277066977362685540164622659093912078100896639651013962094448604239284392588414910339757791058365659832848820859368578744301783125729131251731788212576200744537163379748321627231959190777426668561890478975976670033546158088920335397658154722921559192996718441910526190660439433965382514758129458206718413957364093544839184182088662439573137957858316645985584807225265862661076705564000375709726069980175572107518333538837276754441346117763407946563992583408794719184853203192444043469841333997460647860133378016136662979159455265095989940170783733445673283553857685302839942646645506039644367768546895930351308104542155591767615559211044090774182923812247226902876051268975412167403097142369830799519557874160627817321072393166285996976933857120376488524670341526386225658134020278866212607696006186061989156143092448757089986458829118020213155674589420102418086912507034850976148354668781975049212319257497015278586246023761793902564044799787655070885677681013266675767334167968760684981825768405608377939063908287189192039101774824942377860251468170001350031375045646511075270380889589770585769353400021285521723139702435301555517942685324395731976755228158644353976379953919320305018698144429789679233050350671144775474020675831895599930356768186511123066134010999357239323826274422131851355951396803336193897149227670194617925956261539209591033015988346760561253918730315489344217654194691378046215490306707958928864935434970973135579776201162423226534588002160895278926231095343628662681671526431669839100505546568540896817760930415398316045706137531125290241981448571100706211500074437962383123836594892847964364947655648061431432381366630415383578736100631947720361339252520428660790344977091152257246080810017490234970819127826934214491946220796892985399892107818504756602901694769547443331380478178966570952031540403877583421555667924714489437794787937569555089220172355614264422817399163853581345274431605074438661249297709696736505976199725043320356803285421284903450721448029134725685860971063175984773870804568185978554513967152550089804009700143396019739537974130583552331397343645059447917519053181188582956958413203146847073110413313611373855965260932762136629340372501263921709049980680957131495883927611846035762636587402848589630314120864778763407373875022131784149111343236512988208598088232839968303560635259449672906502364127472002479935995114435204300114172593947314693823905375727717207168367844264763795996208300084704167066974031062848508395660030149320694257365931596598504690606499272313569581982918106651495015748276460325069433644885605806674133898273645361549645097979934568278125907113354284559826940573278992654808225687814626435671732888195424087803950311775983239278912893714373435462110403573524113635121276013579879538248800525494931676048891409422873220487134222722855547185688458177854023753867918699483957424429783893749938005197668322372746479603256613325805488873205203551906239079087884735170069077535988682207347133262469500022883386334244412944985095912211943746019591237045695977635511847774957246440718782519736601839663725430707381225236838145210539968696755148207418770410657881148748490713408448256584847205142776966152723220136813233879161935125396702880379056411590157749090383652586609869303780776679742785878159071067032166409548089638113206143254554229976522924886066338060187345427196888491041060638512887666311308767321794761079883303605328692197130417544424797249318611499538593530521583180270971809147657795211175739698712038708673520631629978448474503273853745603333333610322151516403130172045493772915164805794812463097789417995191587757972671940578765008824359220382150486321994163542128597806117669005723204954802906442284650267953077180699392953997497441127056880353673912098020165574232569746863850759085030553515866936558927610145733316737340596824164288852822065430543322751881838281867178252058030556265468107137515068516220386987729800672824673994208671310206412443201269828998575233593676262175208719143561358062017239829768346092855858569929918866345306686513135999085206295623626201367709563031698849773439722529301163148945467743323487970028361786173538735092034952912345958661234786626916611618381936071669194797473015256808639863016257617733275971329165787715225855004964838280026430660642559081620541877866963689168056329348349167742818543368593535519288755069833174544611218228920830192627437938712074229474685653780637864266461342168020467335229720701269524929300129051404970758066273742593789340625649647552617550435501711805488556940546271241250296018388945600073146055589881932748280555992753644353958190280879526374821075328373747958448454975857185591643732186277890130466637917519213064118184662676071177362159875125830132093499950604618771832896979543134234208056324546377441904797685755417929000184981038327867619214131280755591573516494325949165024428928112763439706253790805297614825136879196979866846407708145088049323530604849959613248794592217772509556584567359411951042691444368780255205221750377022451371893346921476353163801171455266388978124541908553348740667967873611218364847244948912553676227536827876409566549163586434144342212398716863396768091782305521656634952300718703828752661239764681519481497780281415845312658775413889443435446282987989940618097436745082615353524343521932186078279206674113448009216524505660770535835817851518141399118418793552851821814922606672628141708274137754908739151283831626210499433288898371093791843492217796690443927687615752522168331711658563634941443440686085413769801414027931251975035302649287261505924644544542791083570465794484448722622882731158700588117452811553735327294352743758527573401768463904749873186534247263949523206431449391575069150110310464289635435782857943390823377376220800714271364759227237667769590002826351644893058552962933432406193652350335139424292557451234991982166768365965290979691160892125927620625959194100321715994797308592576054091841140206173464302030998214646458475562559891607580222936445936557926175704994162592812907992281522435090041841068188209103775782403717128165590895458369281161986297682026539512079504054700495217358552913617418369149570843091965077367630318567327953891474006700156314109001236191668431725751386622957422901381831332670325224799120167408399679644632737938720197360158239009067080372845182303294186688152299375592256681557823890257896180648388693015362861543387418621022546013960450156422421675588534966803383242284130047791153307196310250549884538086897683614055760559767389696570631910060171289975194755547687946276558500105351905757617596315766887768744975131831316999091025103067663803413306025966215572850699713561857980936578706146766910181884250710706214971181608757554537119236538478944141507028163819074382127120132461564149474433410186441992794692842406070726219778528372717454281126885383489489170415121950125211408306147976540949583631659269935310273224495869208462081949663034376006558207459696968519379813666448482500177600782741147173247992161065477722279543422464040840950966361836936764678752581242365538565217536550172990053836110571394641703468971888968379868721265712857249839143383541105928284133020454914170619910194112532117374835594188163256859266738228586578793558612835377392786732421592848812577629342896498700498433851069793582303724007452688373027023282959709320275943144822800617222418509184475397932010366981758753745657678794274103350677228267313153683737506010467554930118611080490036650294240942372804950663902585389395726957081338111830185921476756778445426111236315843714303386845301248328722413809817662894154698383962504835332203783997927207121869508055152896218660559488104514639977844734054535330852540225969303844396370841380430741032162471748475765332267367105400682514304549820412196002486946354922134343699137257805935002965341114479664091783572229743709195804631125217001693580074536125189142756802420548957371405736115980673168718253030896615141378805192090916174014252001946897235532049387900023886170388696632597380480277130392309873865062863241493620065192716269544334688969359841722601909825090338179581397734083992409043438750088866545668810143484465335075298030732529209210197337086448528071487322267853987341496651934511089258112869787088682718848770784301744184210958200802753678011684158298551118297341177084941182812626233048347636489981823249269683024580355704739007755558558039366621682501312847525427487606344154405007471174007706616060202482186062215212174515175660648155370948950673965136386196059276701547717203722787259320485339232103689378386341115535535242754039834932214832751844675662358858682282393849304778695567907552247993322724364440904719401260290756017025457382020001086633933937880880648235941316995677521741420982065051933776473377131456736916454056875857650470933426021097134616673166660700330189456883745021435249198891373680135401407016338927742055308770120374674263242817915291774606509554370806774898059165726411352537421582780542101964481225661702212615339377539354165359280252002248436164205410846744256925164150670580250520037156471113894071753199934050091722212285356092724251887438250408498177309209927279049899021866574830577972198972588678186125279285169818838720015229489491273085204227847619460848745390454478796705570410180531968500748439276284617221140815628185482006140639624489888903741627101075228099403827448117974638798382949966334536299206446024048269505303806605755165748467346743793474592218537115303757920453996276566231270919483093351697380630565451357776929666391477113277285672560070480388496709897425824996848991677822318681772545248298461732415455434208844973382108177780627184561484525352576543506771198512719405586976393229867021130292241549857105875202863652031185560097765072790403211097493012676800389653528374382899835148127281101655320141749788685422154922408170921143461311280466391146591533123797932006636108764081666665186904029147218571004729534873921798473620335594400633586174858426269057484351479793807276905975690214576682083252885887694634756362319087432091699332847444554607883885394536474403613135693626836155651236455090486936424592795593049682867552343179124499616861965830076429996914149753663531930629112448178362985373029659726006241587988041190215379747301499373147849693226818260754002999847846984057509955068037429038201368828357321892954604467269442937691898455295164018575056356704881682442941782781901346236219324268709747976795994659687668458461190081599673634350046666904805691671896861660649704252628530610946455908693725191157117124997767592053571640936856988798795611631188797435455478186960299724753773246067845583293299766934609741969707541657545909119209705413455903337795704576381889901241428418802573690200558577451925759772413995971714494707601100698629365180990447184763772783101086963005782315871780243568933781163600000477268308138718913671279469572289906341918320643879342377185936263522887365316553023259398029113808083215292521861988377863342881814453680419432650421752897386446909862088909680469090805942783758326524904375618834595990627927080537949597815990096119458823814745802135889843024920683319330735588661833545137797328202673939256614766234483375935862746955286066361414819564478935636708504079717062393046981431272275321024761022531261387150931953162644882785460069984453115774550607598078076620300891665507223322752621334523237425556713170836084629441596083353220347988419855255665009359800842436329590489223083531751565907454521170347241960709443094381565502084178250145864481287961899629393467907500114330870916240130700708378215798254536278236285779515239007262362446816569120514789878509293966937338099389647467587793672455204127090072429725682018046590364062045390805219059410093484583742369242745277956735037650278189835619586054449889112114734319058160321133027258738897445772935542720364088464510314932615929637698359235240322603305994980422449585966582378982043332130973339434001140454272595007343683833224308059619641939123020202156016047831072305123891505322351629066625414913335152453622538748331185990852907092124128845105593792448491205934696021988452975105087943680159026032963716515883304283848513772959898810064623220653289545843542118959936114727650294251770663706999897178701780293205008605443508093202801649037430671308538714131054181656912738993257137408691373421150986729942291414000214601328218254894591538690457584304690062618701628808000290560369832746436313043787926628107893239840884568185809423660566941081881876565200558390377318603540071854859636231315524038097852564331481321852546726804672723113198692672874164312537494430548787001971238882013135188034452403745946173170107640053844956154815084516472653455773060877964194566524271640523328217200538478633105681980841900578970191093446010380408112809083682121077665355376893905123243766576734149026498594542939962515238131879152677055032378593258050192837746143393546858256801353545914602252081008908143992466643074612982895566935384470115099338301069299394198300760079983033982543850619890505899417859586844090156675291920746004292122630630955371576413151697329173424863745168143422647778358505124469430935060165340551358933339286196880115170351172141463680722360390471962712002517847019123536770149391125791217375621212227971944290169041285313401662591032532589820150741494241836735759845346460197876180930594703836453802669663831489463097974149546006988177113621840008547653474693024049185718878899163609800734919947407282741740682299736984731438520828334606553632827919049787201639332597795367455044707944043449505800013666423762957313320293394363169066109488824099927592502074248222542653442871193932675103890767362148973599555561557979394791817320760568368488425273975617282847805286527970365261487423047602371320795029762158776801697919605057298171356918289064957483940566632327546885249032668296480877176290530404343801459575096185874620989744936475164479844482256167202430679604060311986296662146237875148445343888135587993986596270068859792787669938422478605577811793861791269602430273466598457535194174370417501242948110523392068220955393864663409042759766354523550834652230283581934407790133038304088450378803821422822514713094434634917019429769601086298673522294988992066222275860966666649108693810030802766476618946811749723508549282368892786695112164985358446716867297928062744663536449065691823742127494019205726090795375676062474745325318153272608723738474107243351609219763860423180875031494952931180205739225376559837920909061261116318274111224124886802192207982047945870210612014544806048224241080792421913266075376897275591739235807150634697542127909851375664457405943041809580277458226981050214627760341883170786347179993307124626325781915723752321862920566819185639674569273405856298865225848563178883335197591601438621986060625941304949390682167492648117840367279476156283471705801417239664734219000211925006435571118344096252793440248447578902002193665159178188938933689741681808149563150290765398540688972012451243477848626867203579689157121109938232845188138925416127230630661269140835222662865134586062109539112035519233652623196402247114978490262911753188272973983709812654095359616116030231389095055916514560725364455588873113384886902400529270151972603650764328217413436210221981095505268636242166983315608536409945114005708491217564172336894615331323238830036261377493457359639695677808830129789079011416514546516234457609204127269331217227985670278680084290428288220121046881754382102605765973209559761617940206358386594046432448057247237469215326290115080026249410979156142539063710274866045209995606715554359062404643187659940065036656781162108667412677130307564519960115317253888695792098989127308185492471241118170058404417595807596561588418142909088563982151779728290320385595156035585534764015426747680983663099928645485611518499241386886881904674677237880443841096790361367782356820413334747009527414946957847843553262018716669095699808228769867385150186574875483619708790119014296970052992914634090613024953426837314892959356730216173707759479378340596709072004886480485641473188779304479127676754610090032139897751973686258158005800870542108437315295485837319958097799963062955225204450238443867070136546635284232101804468288399657160818768180335085171378110726812092154739788198773217958775962954491217064482900566451626400475725763870448369046927579696292092254372442944921235906776413089787605847645572990983597584853891370794114988811544731329045607319300567630714884404975705269049440216261820141811848521660621161720652241237261296078338990313536769872269518275623897164467571050208461157114298897195655143951075326374611758631481520135891919561959618855406351035793114609008840041443497748169819872264225668346256179353779553612177614654336723304408951789149689076800848486121048995735134091826375908077838630195986021252583823104752968763186989995518936981727671036540638910106112471557221090604020971804222709674824191939727338219780227278785302496219202026518692216576853782563785823559815483107497323855971657705738818145210851994071178742949984232765899979332093072780507196207971804029282314264610355775549482220150198556708417369649885875165029060513466487429131793367619150798464437075212615393942167890873737046381882790993211713424478147855952257592376303220191454595672243073698047584429075568968605592630372899010691170867787329687192963750483143623493039590566582113289868527746876219235193261003934487308635790594920648522303537941685959931416191257441754268479267127095253686020521069243140112151699612292087473181088587969277456668019091005762897475635462242598037588560186219725926940323773921021655542929612662134438149893231056423746658073939475466736455957625721532753987883236334141301567113713643476965797626922617843882971410067584357874850407969695490640991449419816034707866840294061050490073495788125239727132344267930039838552498284483650382559771620658976622866093038556268511730986679492271450917083097533752116960910950130267202317502016158106028991858768466021936013947957073103458990539110908264151080808972060317692736623466724912449105435760832820415491659972527017524466267900669939681136375482870702309819303733765176302419185498494382813586535516022587321820111951205475868052438711493611954946517804433277236994805329563033523335885396431985670563641122730939963828967688571030270068925428985626886451527059435127235818136413457733553232447241305401113004976952172182545112901967955517877497743474357024990024673429597668683825665984679681152697348108923458459267874756943531652345452462033373969677182232960412349743989237717841558297379304125672469084624598036724433593004009536680524541961344888203240287591324764542562339845890645756279138332665452619491221422059935831564725758326540882065443606868593957977469689980430886670603270052192606770099110055058932874171220818704364152209331696658829292111822171058651585019017446699740689917450831261767081094077912619359817975450176567503236910728475568556295383341430813746663542757108092026927000854660178795215779535348699833848189791314611683382542722264742433121570490600115421303811905075345942563389609504870978783198316995938638734200110938113826649333237270125900438369868252032461042215695568032919274989304780009167249657701162251847702160003491197482713762526932204853529214127423618609177062895601883938778433684894165781438000182843382277034394517982256321070702701825158722850901214944152358477287910530130189185746039041900166378431275466645031898674315984253338937366258673954485395743249337913116983144272850356931397883633524206241885511514490040584296022737029782072813143215412814315142489756075402532474207128893262053252519217243447854811723962474451777764711700780207335819364278214485807563765202028994993438164177777303087602431458882014649205498936563482318234394519916955132872313799170135004977078631612428227967361758654969407607683339629991116066530658889722430935304244388175632526389489748913956354286175181863609739481930099014108022120767628728821014118558682671223226275330361829849281020730024132372871551763899242121506503100104949407824897888119195090639833388684931712308796758423624453775688446796791134174802877676778705740183039140956460938769984581977486442721959199901435277489188198191069305909909286945436930714575013183711475190355962777943889120941265526417159424335636615825740956285538743342909639947984320410470613140048064562287860595343218125097730456377559919244164651572863127365674109822336575414419099016899711300103721004649117599859222850828313857553844952328599776893480409833475646023271943769439497409774311601255980776395028217885925192624754048525220403225640266652458571237534766280123325825300884204608641960293334362463103134866551870378108858047223608300647423728223622867747259253028958609464996804143029295787105310804918339635135098350109494109975178699240393379248335268911911875330955431512315406695713811139587866619955125854966955860105172463837774348363022687449995412373790598445891887797481530095090499173897170053653658361379138833160631188438054115096322951444307310604406541970112728452997201966966028957127907257140660560679267828579929428305920322712083893236961288874122515209708895259444154437237393227950544371800210345547004565629067412719515824776097627911420184770137593658526177954158793863953351157819702007410646722063793378681590049708302927736999618344834358613882241815992897005356778470693509757926111950445193055731056666229260067632168672343301367938794656644050640500077247609936905489380363643572727987353342355015668090466277277363452090729527686790775853411946249568005967647460484509504491658113925561543722443586042653644296759622971488201773782974587541016255181426655671554060889273473089924429211923676039438646858361013476726206167315344318763142801429216788490481158895287387760183747174547237188522617272214770096354203392743760135303171406217590783655620685575215645499056278106308266588248998910760214896328731719232858090684420634193641324133221547204641685238939978915004150242707990114047967282666371206108802122110452027367387519630268930357111874360462556338118424535070975444422527956585610546745148334977991459014407640286368608801264123635989107353807304272022919239497759102806145495457789489801080680537225332070977177758383469530966741332470124022535554624325024096852347956792283404673018981747660031907947833046020682726954878892344374243557365768858587417596290076390089773869812423090778730465244710727582908974184891508317988419901923004663291564375352335724634571854425003969497518675153564599731500163143715199578428054428407236664498470270695328597304932890400840747868020681775952206852645167403363137053115857658798519979163822154464267347924877803906262847202721167706969549934625067279462690080391726353167583924872526023313167327610770598718996260330866507535800431440949801132173186256059062980914538838581817926406693378099628200909889230988074316994789101131315554038636569398045728713228282535554934320798284934303604363339204807321862311344360485362813898058845934247760245981894498650930455691713068470129586156676486502371676532866752817865385165443480867795668390570093504615935724097325537700162638576289888530830523313375405624632239611454147909244437351532902884410786617199881225583664235055152315271768560197488583372363312318943728961443620704165523733731173557331312726579318390736908916390164041190251139886340468267914479289197110871688253009487139740352741363038998936416135493884090793151446608221383894976085705357622795448259590446898177302059671655832094839310044340435213468969465728158984174843994773367096091443101582928883795283082810829539106536986440652317184286759320533386113993223238752702255684278455786602010650208846484841495155243171378592835853187093322434110665913969261314492393869880535038472840759784507939699960247561769100237581692054762747881924456131186998810776734213842086049950499716415991126511939103945029753926143699986858741443721782904988483497851609994504061923611093799335631563452387408353919717353438105727359236822733934180172637303689417255813946829303571762179369034879309364326987048405836250278611422817299491817183418563388575404113885414087538698455480760739359671371734554286949176113955877124991388805378659779274160704446296811120955465184659103444112056726053761081560992920957072315376191408633623131152048867585324094967470523346759683755890805698109527863869567593091485352061597306791288923667565646314600931289031390327169236713648833221033029836882680568811315480326781937588343287256582524252985828328634734902462596391102596117088751073204808708026464063726943704286939597128578371344045952122655430265352617994148892717376975641679322861317798601185822484262512807333399384639644547528640220280206300252097315256487228579244857355601359236761060294751993465647933618049719759681594660128037685876198182093692590557682643953983551488590528695917945131589639228787655068621757005181719261588598502166058976667484069711501215408674085010236320335717186489244817822584403115326122835747376111871074505571000578360614242822920083845129895938824351145099284252455142998201914279282294559029573926725609642943881500002522697326284983134034954576726490645229320404551585291804730076145771608936992916479195419855207084263144672933071764163278570269943531067098485007148099232658332976978037248184709883058806614153988538231483597667040673505922822066070933717204600421565309398969959611605848642434247300347570146233694576677634068812869957597280054424889709452303265914019674315456218677135527553721746623020605027068764154539422278984958553027002589283731420251666304383351526936507978998774256238312259640224432534497472697589327853871161963443032562073083209877840616844705120862795121866506016231950890909229645793135398214326293467092676695021931488946463558627699405139507697345855988931802400798956405102498708652218492921915983369445160261628534835299583055775148587419392420023256896586750424800197809450043590785329985638665924605884864735718030064613998548763946667716719314181264238540777571501649492188013618077225585355001132819092015549157618017298551180308259830814036791744659211245239780581638905599626680217849830195309221431179673445179753687406170203471986360008465505456959717545177988641100831014113604656141854729062313588023697303574367105375496963223867930091856290590508370337696809548631065768672301134572142938768963970608976370555293641497818843207069876646690658584790845078214055194694504627993112316530160136928929580906584126522787616054224012402996740924325409756290832252755718846871868771698357367376731643883104151543187260358431819360389714557813533024742901181649552927410961795794224159591217540034074508240896546355617607142636555459255612254117906168784719363191070350342423579213901106523131132449223919077312957261237969776423837588155983999208676197700819481605752841404519966064020248747855206968473054545323608495493706437516762617481176280129849540712937284132513562257861350512013495508060807779147748286234337039288961548180200520421721484066584339979021287869702044251037897251062696055539915792161535833952320751336866976313304169144498932167308202951121475078602568430307604941059286530459553038470701032688520115530579670582097811896240004852857896492876950804956108888215418365445205937318695802136831768807397212919474215360132878882917154784079783079385058489603302702121789624894288137293241450761353378831030820372554799469678724642148694487552151276375033758337267423807146264451318493134911907046317442415672954868885227591141211482208257571822705834031332351709870389615777968579720034811045466977266929856308409405827704949941006129111960530854473743534780322313176419829636259774013501742652812226050647549768854214197937219933196801945542815687600722792062427857093735755806112364980730575289020888620353258828195017438042886589656712863382036912051253698022092492392335041096242002434414396621296601473921954772538568078114077153952377663050063490740758483634711283829374951643243085798609156709730287668785132467924779345321306294844309036174170670252647208118919494959150234261994282027686288163375165223957082178322223607381491381706740026901098514967366237302515698555063686900254411541442211134362714669378474864787287881495656777230280301500241861426757870968510239510162260377338239791192079133616709174315370976368367881423752617610685508552359633084840188538042933607467935573846393829791582164635552996469204336840750408087956282797573262804177313996753862312523006000168638484814221536688235695016504572946694424027056566151486575307183009553892614706110423356571200626182073055003244918611901536869600095550116163234761825482448342440419407675076795432295170896351776444596523553852628002137662658447514745629374302793150584412421436434561099527610649645539468310966836775280685832667066913528510808562455908500922374662242601965296506499718535492065598190582230994838182474857645990556441298094475034236755836505348117617101793098379224077121967689138765697066343388625931193615512889711276409549083423377634293128910348564703024069068752547935986756160359936202594651937362497617281365738283196634665147565957469425630801867708653745657075566941809864523417895040610340231672873539975790273720180630648241668503949197977219923950622767172132093584280165331813944224536272320549056005140625023185357318325570104586802255403615772624200747889198779047266299970967121674107583426756362217612572146475161125149265555497923161888858308358588580890120012316640912513185952380958099366187551110757133831383221590997133677718650434062770395979478350041900767105643646986680629522005090931163894547844330406686841158339745964639633432806928180816713416709086409431920136642522916561769624959035196559951230997637874378607013693453423506004296020134625553528727139532224304058834506073382722883153084765571585204430000741743020521968287730271164051242008087408315759353872919547752534058537467407562409038648516725062005874536233661417358728995467330168127664476667834026465137063193939825875932409200803452447236904471909762821967873341010219251497601385448148907469447588749820362756854695083837160168826119094857445824473684767277199595287475785229924619589184153858258819925456600445555246718114794729534599801652098172235840562351508490150481018645981199945339842459448697190187914518184954445248139258444367776325935216471962961706286662945399227982553505669503710970949624458849426240608515606450413142367645567392404281626962865073319094799344631790474864879840644628692995213553747924769097821330772374909238209240943915592722020643098138895311252597446265560647076384212012054879947746933115704688657627488816871926936339545570277646180370071004107802209934281513485804086963186176701977900080826174558804565655498597071920847605499921838528781600378675528499649182108831437363554154420283041290891849636587695173335836686006217725709555258806358404281588289262316433229504114672577252143836157065116067322551162834266952634978994890099131584694767686258852098922367047560801984940851635959426721635686520811162275714942619844866013284668928035267913276665822644170544836616850059754015084229446890461929672641877243847140088662343999363695311649102406774550706452880280195607112600020037868951883053999027800913696234322876872356818325536328880583796707025016651868085226782962482280074403151157338088715576275056991056087385807489021386719369026020187763640767646935074507817161251883533530926695867020687798762393010513706143508241767355697394863778808827163930712603543947900407848464797723292390630907227429985595524365659391006476237056579325819754172348171230551420598473994409289226723549166966924927315224702849432553072874594218115582186049292119317523124354684232684423306974375808037356193554774092336521628501675381110060029340511922291217208066499975067449869728156435441975827627409695452548777467116873128424149267826222325729905441430466266042634810448621659732353719710349719727371742940894466525127424731079999289573617112156909841817031152201663796007554299514908383899680306220559440754859365149829314421719313770439449454143545810278161331104289378373889324560786071278202040463562548401489443805693374718490779314927380796254615075680855335525869555939755186509778042615006675839174944826111161007384713381536543024206954074130722821194149962052639427514886904387932150246885885107335258325305210635257010903741131718227484457313244695551595568260090806687795301469060058698174064637797666840975888695631663136078621579569237343430166899281845193600804393889017926587130543773306529229840443255670039055331367177693152598136606358070822275306622414136029431507635664718978466511157533835878302226893914192663713692217136171790235806489920587602409638843262080559902277620454880116830736969581504483356515613566573190216668992390933452306467885613225489679333532040324224161039644798967268149499413701779671714383160062319296463734232733587437981465323830767119802696479613048160880435326149137536917290514478067203155317241881559910630095518675463208195050642124573543489900933159748418026154548123896222649358690285193008451889983559117424076485206513622466817892255583933662188832234743264720627554840633143906328418565191899627779731782807896439925695697239130575329604507624815050244795737173279823871166333349770132174886062992088545623948978817050519632924648893942004564831287670478024730925040460458588839208107603295043546852713842458612765612333546969803118064576470293945878819101248293786154904380222005224736490795567987948127898537252822091612620915182653483145862084558627189274933010900901510462191932365820651173865140468962676773437777428913678473336802134449451536494942610567001213476912050206326836577726729212598974128697935837071744686310145418656245119117061688143117741682013506630209035782032090444546339218644732366371160305635356275856713838637345999802720626480039390756899541913258894340496198074198068921676468258145473041384052841870106484004093242528798154681506103549333545415153047486639247733927163585001347997551915442586500428638241579191548153016357744060328979321676592616731522502348304157604067380906223946561085465942903450398222933510177061311314153684812791314202545787927487919457273768607672071208518807081038061116979582678192285763263618577318372563782554220460074222864233785795446441409866372515215794995390047915849662609552096263626086691968368918881386831470988164114099639468044563800195518403404897085548326731408022777418397822866184732894268373696661814898084798248689693298515349265834623454811300830173353003494115665562124129134994741493960478655415776353703746977202481701375615576898597265517193010267427479964050273690263472466458958550581928299527340610445332443252112578859583715487413845807348387366822536889856768670151426278513797327127564826027021239586613002282503129152214322393278394264255612575675723116060004070837442068435867993445584805137413487465513675875972127392863297333638678889494697742841204416347375667548253413783260315029944549007075488758639404660368503457820014519005125211393242915057964851814946288763363673864797366061899880974628710202862073376783113291059101953251670318314964276253297278605531944270728585390700168252287942382702504350798789487631100597705523645413898125880063176376846389539460658199923244306259175013169689789095467320725742105163652054348985416306648701904593763976658301721234864783062935906523790857954394835132068317210564576464367128202803613349623539139642319740872002527913862203951415536156209072560758765800136904249043795531360007155609957423975963864312395767263440915493084097933703411563286468092929240815683086767092655742180990910965627432977840289768790214343301079671316303637287202758091865764255004446606681142926107287821498052871175066513069091363641816752014851882795218871998512048784862416857128265287109146197611348496623162321833914990404251426159594200752707563901792475536783822943780139250524858539093972378888935728036202359320239186467312427688043699627841522719837041272608296327883981875477140389431985249840120449842598011281026556465302772316504541358745622116899233416557167339154179794920135474770522294507879592840005062606706160829113200611624100738183947654614912677033712340976711696565281411173790721256010745606613448680556075850329120938521579963878847915781041202836009363288438116087704317706658058705750347731391306409276869258868080832645838647562549628045901187397072615565298868969885767297700468733382061726182481856185847665644658184493570253185685194712421839924522396828952329338176068013794337046155029920099660813627944868380612870568670233344720548338134344117779466161804455696886885009615455695921262132218408504522927684834543360220402452302561585842749118363122314034873570847171026750881523184900138245312625683513004703379411376517897442040380051993367906457425007604757284506896369260191907873271120596906473182027965059598185985263072901196020338757913022515951955080872098508676244839701417300015289883073874163459397382752753576119311330179020667088751371323950393279987440708118458751313324275086596567501496378993043316105274454719867749352623783588128948605479083493275498724723352750813599335134470727749750188366898034290857761853952366682569085895533751164601897407472855178508290658497443171895183102290476320745878328288584364860416998673093660355508358602258551424880112238835867374514717016355521047756062399560103126896526011813803787253718567265327012830766330024469439256023569907710196791431957989885785357924853523602712007264504034454119728057139900238734584782233388795453740827797494268863041982770225623808526470305342341126116813448604470817002107671177812190512493801694221088176964073992770950030590672819074416885272063063258832329619476705409314723283512824752241253255324678827124169659098657978399178163094223363713905497675752900697105337096987004886978933501047430906594644030357499822230564587533424662267676783775546207814098221317942201917487615527817844088727592322898911760654804868906394251326606571248486591170337082975256144162346544698445270084113257223420647601660868082384803273116448584804050539468059973731234832243023906869110174109799098308894593002113829255229898312211802269798140300894105513331944238761709784866481700423076436646323581354365431519613560374827372773888874256387621961890137975095123641487770627502647919193535985246319957246773806890622712723089758478176578567772329258666866516180161224862974186646154797996218442634447249418761957200931015668986530250358907914392843997453687356557585487460292930830227229767393661549025676214314199961677164614284940436903779998853793750850284079028992698027853581240934161736597124634504545764110262562352078318082887573641357572285646360405226949566891325066875888189874489439058412768983842807013903234826353724316935139038713552829922849529634715978923056842170220435779265661307268337112957828266772018658283493733167301491079949349939698293257172357191945464489665514473896464935856454015216988825648717900229463651061410468744010844172893822966277254167703458717190212886406146804394092900363649407150628512807170332915285265382625856380633068900134971692697529888009072096191759493072466090360451879477950477459445663433796756948454433982260296567926545496928318961217359518826160799661270212407855597437082947193805967030742337526751176404340128639507251854855755211784428510693815902370556704078077140119077552566892922367935705845887867789391402250715262665170540510936982548056376348330021472348284354658409499335147896050906282476004737190289838088464255779295037678042684073938165851776645398412567955136497339919406433909532415022937888431092281358326626153599376030458721930860824967344946217655058796804619878475825901892421108961806705961485812741797895082776405419992085904415092234885629070919694230809523313748556408700424687196642825936227116723153615430482497363690538831425280112459357605372718717535299898741238593329514842068601686983669716553643720552337466543626030888075619234916807974130101075970114154007464492148450675682669033424424790381205847306392232834047044029214922362079473180600817999620608433427003770674145431244538133382141946738218330804333213173036729985241262741786696311688031765752839692317439414721715446815884726841695955193227706140068515245419832919078382538136669069972895245696533609271464832259674415756752036037171120247641493079334015051320419409061543123569119840976299982426457155232334504841406048855871939118589084331689223098302999269205610129045570856807710776226147415613843544508651416672320107521390535647580422767723404178646372506925778950407320800295389867575420377102175103798313163426386796078697974292261294879192191586851298609644682487461512162446649307549964743269239856191357450103417786499128683744938888830540580259138658889419392852525587622410306108589112461956474129678240540476454399593327060712331369248215173787248880065791055095622831270151983216860012487169086485919567221134470651554037420998629072984239244724992727540643686250763747828082370830096002843454860253428706174136407119654223313601943382879733584913649008705095870739440527397719372318798429191785978606787944937999733965065374298064082082032644539580692626356898727174458122671568465764128082466798002862403676158193802812632107637633241752424841165353326319346649711760658907505066607135136301173274402349405743542646149804882312188494365952403131952828073767241438985066041965155714418766651242303258260165016200046396537160994219414238796792402779157684257350502904913560277199860047763454772385656680700895397148407308353437936267601807454548958330357192576593052416418806224674536181612089471900221565544749212642762932866142931824778008200297271283199762812836066313898854187263844658195370140891203324685101350695274435207771941015263823126409987467706847774991269293567730266071576768510698339629922805364920442509325279212686529926601088903889693654703511464935614984882592086007747483843278805849356762326750224073165553531791156795529314621807478965773403401794462336303807755748260496812266403001673059865541092940316797278683332971338635562069768033423927354679114902199314694476719600791101473149826551313875070848496095347720574839990816252388510970391972453026601519617678315891486315659742115636399808255534977347246446196404954716158730786066538986872835208445327025598867041549610472843388200428172870998173872793942165125807941580653172796992573709570912339877151462738924632979339607825884848289221710948445222497614598599680286044815955378678353791113145631930313378056226919656909327545753271043465985250031304725355163618013136742811513921682209832791881391507769055397884151546122987876544699014019944889428019468059871580920464541186300114299151460026535506109400677781178902509496020469040154219751882600593967496583248203422986463874336147846912674979434803397982597096144217124512246779387424451354943194572580652671450081895989393687689264891489275974461392213783654918529488670472668243455499745218958332468451507909291710332007988822623729982499565572145921740877305478345014032939950119268215578491093132208015016018633107744457017763182539665827921664170005550795084834891790019557823464833273349214997824179478356367087326263765136654124007049598134984393396204652375632579050008560577635862742540690684418003535297617630130184299622799252692290306429576472436669652268622607593626445946878359034125914194602411745356869626019995956960755042973353284506625914394857775064327130948060694369860669375229277871648472184578745057908220081030141543575233611291345424487126776431415484820001375120045972335327356713506537114238498548023321468341259974005762142683982988695525719772150543549905755071666891279680658473839968022273304619674963655915795476023885721920984542420952409421480654700712661641558204677446333748255583758592888215376504943166914466746497319168236703820247184324839971576965285613560386306797372131433857519473653162295931108002575023998896749262430685852698705035718220484725508470443956337758667772490916591499240968730111773770926651355117228228709337886508613380699852180869049812311921440284084473394809670126625986051750832166863314743378759903191334989203285988260091444444011258395712013138531653333099422510897752660371418047012637928860970381136218692605975573101749472765203958909206149912659901620764301011366659887891136893549448311688063288534877663090750378457740746154470432057635511241035548465128672169532224375680346750182228839294187598158005102466187800399164207065463258571795208068108515972459879021683168410793949477498020772881560992469807990119605427392851651303914024616219818641011057125051295296871909690774609774254254223437893664552874691336603148029444466362137510141291133522345933438597706848593535847350940633222828958444312559809521568267009408858885747375276036990712616460437159512467295663081753056717920835447309724196289925397515354538060926919221360191083548764340392374583624534487881677153603465405371909232498818200011672766282420279244626182045746053099650905512058552101583245746245940074403144212859411352386686409547842338681900222725416869503105208883456692187180317673718949224167910078824722046360831385489756016448154538439701164611773031620243518399305685252418394354295417747370378312931082992998011417030554116880541102603973130422184393519475686369411089173460746234016090280374660188905117948312538257364759864375471223436471719492678819126410901070735307171303086899498964568178402058072387758890857268438812656667151652481766809931396426818139907013965866567189177696317399108406693423613143018965776908629189234638489382980638470610985628604676282129556452767199140927904509264527163062688337942036995429975052482910094786394722310448870325579682784069818226321519381126411010018827458162791128321369335073013538397055646570982548554229345942885635811078026473508212133274093323994559597953711922396351454054069675497756385632539286274584250116262240745333219436801975504320547108707379431264159747372100033978613572143092695868405246669787697737245672245820948682708342501590348813467039451476299703831257937696104680341079381978422848354377419680787225781781234189825697289864721453149630590936575240242692693438117606791833052527243314412615954185115368918315343176211228540068456615850395195763283584997950215891147202570931351691431905239962466659012971013946838705506708436627925052336058356877532115473044155894961389485670389730137959438818558154005224061638119686109635114447314600793336563725816700129885793990493609563068374451340452701897963683186311703139319244038503935239890817654903311317089404399148612722466311815027498506033429550235879166786364121542084393301583846285929548741066136927069590773756767234813390903686473815825487100130645951832050273590873823236472814138447077215823155714189251040583604655287346256466321599505541859791533519279224444849693958145663094115084264520545696280642540788394234074694884725311856102238683174631709680380407220341305925567611524383929532798322311974557539387787289187101714585855163346010369492951910069200544653678937423754604598299143485672462176619051226930817190583477241352128453884166229397287439739268214215508678649309375280240875286466157732720809082375901585359380185376072603739840086366476385117915950409756329386613310288774390470586499699106158259467753446476067133111216182163322153059106283070353395539319672816671012515378996409902142384153549288833328069198361822966755081640417531812572760339688475263470042487053520762747679725726630053811730171250287505206421547118847554802727057093986425658330334255585195457767920776790851966030140524248418534443846515900497551053643992160950147672955392055161887231915815790951849088222949868090592814038803100940049453322069994058026354236056601981885662617305165600007346762111295064503395710955729534404226652037557851258920107102941886118396281092539326128661937809808119601575293326226703143206760564118140302737405332590976795465165073702868117303144371248719412968494755136170259491573129711391318016797246826068050883440421872350506760612264732059875944789270510958120476211515868164076889123294551468865883103355030195268451508984507852019317652789230008193470933779504562993419819348756384374081647241589600768450298299085682361157275912277667897186422113939671432670388330192757220860276462489891287405627533861924533111386010124198826693198684686920812235243383812177311038111605471187205773399414554644992620772713474632843666928645622032557301599276933917358281104626140815055993876948680946089413139742765279143206704542829103668441651871823560601793605012049206045452204227895144612316228534068641321854674011544022202298024639461775511199538603188448707467350318269229096405154939039096957467642155203073305309104676404305924761072693327868947287065926409842986507086761550106150159347947449587394834293174215657293980346562077327867077676373616587633955912026698173781582616877103066664175142858822918644945877941380952757777738502622513292771218376806878183066817846768122971500463896764482762045593200863754842950132782834276877440381487865835898194490778026390315115279646790212231020061703919276577055592456625396783948952064221872962751795742829303365267879645085071914361832589752980225439540653726111602252319541503497164934832252451665473402267303221550524539912973761293982399620706362588317781844129575307987083420842961587343749255966342787484683977924655574546991825888696678908406541555597261714402116439113098475413454654363508167077169948244877216302527875475131406935689975113341770080191896345705312766462552760175030541732190649416329451957675357713775114901821327240287608766027754998267560892599713162334506353276222129430167788372713234552455963005078255151699217025075395512156185605048602818447502847831164093024014241609351096524451988668684513062702915255805852018318721469732942231740366942203542869906480113995728101644668837363157784580019870561496449980328739106403959664897414337774342449214623321457558784002478318945648873184061607022119315156152265008988375982832179186768767932012813207945398770966835101648712818054476972961822879110253640325295558505764949692144094764668186753683696715785210298218291169166047843292796364300928833070473167729157985233241115368678361070497710286674468570942165855657215262976425241166672756763285039297352673786342190971402358517961629894468698333924521740385826920249848504773865101736166069178778687386871242744153811622396760587250215719104383363409174407263766769521062489656836475900862420477601327601693023024784101237365420722535995201732857550996409993774525674058507561940961540497730102255386382068377248254187530254466789672226037322414253547623688322562232642863201954699219587395033196294038844859435028425088278061862600795576928813035086347917200953218057108875196421589999778739625681847599134159537884563670706363630636156005810111126984481325456389783180261896927476023497902553296411987031416114749390756295691748609328658202604938449392047914522803630928435997842109513709797585877533405215329011634521967901476923666631095542604366368084353746526469875539652395687400223547462665719388898221169658502595746207066811858793490899712911187635763060613367792883666020481188519756894131352515769849262900262390709301623722415152460017598752532778288613287413811073333304399046756750150641459301505313619670595170335843342704969905250468225099755365792763209866403570358335599520135087679012307243941769385316267213977537528682075041994574368839207120950685687614683063774878918081723053892748426538124465034336827092232889188579559065523848644061118371213204800582718830764128443401532261758288061537868645743235199518863797313367977738292771716315232834289380847734866726941443631056005221666533514058863805558335839358086454598918779840791437527259002924705958131163920924672765149909813227923027652753595385795523589648185560902324184075636232873908749898619802089502054872169512505445249934178805090271515010584842927376414156710872664925777402317381748290176707651714862577989572545048663623166136378274407791383638350857801433743379364369591164800306756135117620189277100944684658252278989897394104626396427414610276480825326166231613860740767909281455909542469450525370593090893279475219630760208368273091881097308367646152487922392993456315373687163648728339172567049853550854949697443112611148918365354888485902419954816221865030255410086113060040073981329195154915976267183321488101853668764139623496157797933502225835367026333189037525193920925211920646951798106369400752693947149487295630742318710628777814491076851053333342792910637837298184678053303200142507331420259505354835964871334419406016261398203384285385255192046519588057138593309007327989785332681602238793791476371984395412394404103975606773848222944349001857668772745643644197326251620952940443442246893520095918785146601047311195073867674981668712408419037053975296671233575272116042196357222976792967893701085632783765525294492983656062349276961119185800171373138259339162755040619540932790997705660690181932500071485182356069707201601122706726733277379051426737839656161302416718253840171865640797990253640423538959003662530025186937487647052572287325713790512338558190518173395996245921540211768146228321549911067001403281683445762444431442518234819688431573188114888100955413743451439924554556208345266029117275051174736125970270147468274515509687304677066104698097709773114051214262077749335903674325877020911237577099604248535906728648549160599621383514301950861078998572162087833178236887760992749145438536329505952840082289960446568321835580964712943397854404534338774153487670376980334978796642979074447803711182083574291112662724241421680809329519072129200819758993360149864541711223562233442422963239011817143319947519017271985222983976401382284300330407309186271200805724883622115210976759030776382298872012364519672273616866759569966963117762612488628462731281536087084340621983182887543579822876180455850563610611667997377083880577377059975318662638226237327927868354168193299503847803695104543331053161772523154541402865219852110052009080717021219971288961973802817065211460235002792813024385812965843417516830527087499541725173566728838029088168086010973230631251125832814665513446957099247583515909625734650878500152278111861425463943767855094417686053878666582695382017424759252399922419502304082795019884711919406954925817664912889643492696903228654174935334043849378809084717836605178410422056679757369820973001935597915165400964856319389410065636026260305163443251051202278401100100441164673222157860674353720318057976778770689979326477896041172423943600369002609493627551450205182130226842062314035329299895427831345829040561228182679042278457511200038769432915778665649399610353562306822243903938859951030841192214456487955580361546580857208278874274266016906365069623835517059194985161109004751852473456689308652347030868417479676977118038858044431398309351010190779387137684384622141587937287086146347995043230078648710577111307120076912475697479942594426628783159693109141871349263385020923556488601069644726029788219201699579665231457207521632798442810326200848316426267219846280163955076103168786281226734499705355927795004335123651073374012640367439586642807994887359042306750150385339682988887758920461050780897136836533674990222700680567727189222815528150497550473633077603956521946637636556598105299042511195953085249623233684195393504216688300240468465237742088755539630725954736447660008043789290458148224617269488342244549320831209869125136553245415383850695548945670261860224715474556893129165725656695267061001460704730354469026336191930728566608751966822691235550424962913148276655494454906211914701822935017651685004695163178115212281236062772066659388550716726651500249821311952972158902583862306725838235182958206015124679736667900777032705815711231591706400389136598616519826688025085747729788622865059957865193688621663474768998726101499630085570206375657748465073295595249334548143857057261123828541618718864410722572954442285402169915104042857302191135501918352270077671793950758769863448047615817687759930977604955373022257888036221172922838473321653507838545513350432973151447938217725898309988638694487675344199469861288863001912276938069162559628711347170759240004567876822230218806376815766676808078878791190249582319919198450502685056807944876962041623456965113451406326279495312408224333849324143775811296647983636564183411624428488867297874057180673938152799062596390303834287409916746062879867423406030119477068850716389643436339579258009901650038380847768504635819807313647263146035849355711236081907314455500772108715959924289455632415828322814641563235878420888205603872480063170735122118304253875349053758132627452057860167113834765640668208409350760715853616930135194739376942554669792487356151099346701864383742332085036832599620729965692017888467001165395417672586574666494757056393079122704787942279245751411007921735713142218546429839155128064789718533526650117700783344211492806223411570061569516052488434097621284731215267684009175756117480085345272412055145507812159545981937483238783827156839412362148078217396416229430457324718338513192859660901178725565325190411591952989231879992603280239699287033878847953639838942527880329547784012250209174027499491400579885104935323574370848057642735320236022012298606515745560549216258861716544165126738122254444332989198053777486282439850179538340418108096755883462452790971796980105204529031633509865308771726541710042996884542683808443860938009401100668092165029149031545532742888539209512630965893086142924556127752830540238536299562822779847696841756331034044898556436659455798003711879047254728582191765363437636729160727701741062665400872525835789893873886540280376304187711568302955340344432296895280010342274065523548480179652728202365475379184384602632566663557027530947364990396777995373287108261265690899064710224636126984305457693324540864302019200750249701250523377773065675823922089603734790233461236279191086656359370216796633076766448843327334547443415339472558212798553301920629396681386266530407665014970830523651587155599575501781154442220509905933909919064181039932005611426812427432111665522020473690573982538317117103719091570404525433684858601224814453437274527244773211687645150327183986437350167697403016741658973102740207026446000598760902924521427744315190588006943758323575747521431088426849656559745786686975322128230073285654161855117637987626068084533998344966750792275375650816080769796239900319879693164656539816718509296495446647730608581725217055417107615865925573407748834910761141616465320286376852280997371051348344602162051297638420877668255647025666213798331286140730774938985140186208756963285923685182478932041630830576326006085770565613268013773777376934534970584540532830967232820458271514110982340558033388733438115744143168522875257352758644487335640522284408906211124998468808077200475788186758532313953315195921928653685452244385032362282081842612892140164328561855287396464422170557414506131225706189850999440451294992973048990536355276987416633505274064144044461544519203975558344963347540713744370007833663036627667788112572333913364586927531971262862584736333561737963798171721810363143226567353996945917097402375459802203815525793407108706509185645644612543385164711244476773865023610255906316413556109210161651866839906669274492716535545815988765532455994409274557449121887023323503829969396508339914020555625757881763558558830981788820311147326569701934578724398038424279154163113736514223375653512568389130059322680556041413319416477639386430261963730150119978795993783060738840918404465690400133807106267716934003075725654847510378889064154773841914163381535715245754525056828538709999038211080740124420603340677602435058035891976685254077245408492887094340823481468156355155711561037300882959812084490428428360118873677340531046690281699541295048754238937139916457816888833297026965684336484735081583483166138089449717574906003728372082933035575855204307073708180760696963011681044672705851104555020068921755843744407430921775606918127632618850645855029501608883073104432796650920790901779872288605229002677218835110117683847457232474663210491295714231237166213462731505569171471263216577459681269601903683505254072138351873803416868417701887129807080343655591331434515091518065741807388479813213560368162460480593503068002112445515681850900847781656614432195149280029421499363775266175597071800719894345943630860698703925746851020375001493605126495115976301916212022967524196090665407777964808819432293709573823269680508459420925787381418239439624887730506319264015268800890382055025900357622722528598476934836326843370319265289858621285999984946287727594953057711241677767403392137805740118962890336313112628722466446329992587971619515555892411178364929399656175659084084790969192906683048887148873367252709410613087197463369426631471824138808435307489010171832499454492889526687553743373872601942409019657076893705053869287424933361648182650986924455495323044760186431252209810344008075671819642232480731149274405753033063193353273166893146001448295259042710771979560484866646431532008690184904675489235617424928790903141571418583380250538508490117776639316973477887517162892669490223057862764687533754440306010055379318944728347894859678638935696073765451096540948818945548873944120623999682445012595881430951809371445489544648517992713133541160309360249147416409698993219879346452452898814850165029506130811404893266797683922042126903240636574196610931039360920872030608338478784307917144627578682332281413426267221531692958136486952213872025523649305663964237786140582098007765840376287202454376299656386180626410190411526542249573387538097192315516644067274474992649451207758148445797640270035413801514547992957340124933144674733700378591371137827521242580497205420631811545081419402264685354730275891619497618420854432963179219284053295532568763344100074731031130282379905574477743472022916780270392163640258018366232542891756619815317342053097702352381230199712359707399631072793790462808440177117035616682258433775126549208198455572966439479676971706739909839857448267749237908045373026740266812829711766992217231300410039111892947912134689599049400536913438385821734574290055385985920350105212541687124629311427283215413549180957585493139944485067366902629209036189877896848644275012398593890689816008613437994050229621783492622735316942721426993112590571512595525719284552956643419384942083525834495795843860660554266277219993692983667763117259099049311843770937132260367647995602241500100468039265329253004275849480805446124226060623687887403838683376589896127902057206772374594463323845780023189301141320702668594108236359440748631982250124768535894526711299783289827853240883527298049425271321506148056132091812611946869768407879892689222647541693208622174309488050101306232927478273752186899360728553569261172044402465046637554612075928739013467523116502957724655183475855074287079445526629424535415575339646244707818334542493283157385586703627118440845854195265966876935272945761024924022521593867781385912633122007930717281588425646576872824697519930586369576987557625198175142142331233346381559558378744554023081105064885452270107778997973810786282336728911737332803871753938403567606668786219428199247895404027709114165714947164324842729016829904260644302438626087528172405098361242976819279655636647171452958658138217468980192345039863644091222010698166804847772558957480755092932678432735367327730109242857556197890242541285162059464066239924036822905156449716894535182719516568403375905293423593409054441908769490783504827076652946348390351555451285104090313529858907313405413256208798894517240140511319960646973110707918998845765123411893615327370740661364049537316905417322761301352783223132329489874844047462980806868028318317231210372544916674244744683696209155138671371394895575482600419627877818334872502626865244611505056826549406042155459541204024586156131508437286590683249508792617835895738769119561986267783996721104244184610499365333212066999410992329476683597589530483977005038088233143147107247540530253388813662196100570368977997029972897263141359796632486160908091795360189262834308909117446779670649362128824726401607861043505509938800909523419555361473782046812490666949795786771051115023786379078346561362675490560967983742572818923889243982488228046881475251842677512867467434506623325677210055379673979477124588140526674832705735672960899193221490140842390145882062147228661175316444685446672008879147214279230567811210217891878512501763160795729039055235103456225407542035750867963008227804460780428864442863479782137863467215257173129023633802790773085618137638178658451390627124499513219003588507736626123210901118218439210980782535302854286386918653605775803459107027212574352075942366383061156059370129270848121903945259563270239316267562340121801607494596054842410916224826244642399662841828995741421227993012420038867581755508728175504614218010031132785541826856167795197930283965583448468968273624870676855174696930763431252757039434934807406853235527452542496528309482775544890174480360016381303443160742677487231557193842687122353794367423774181585451307020444185218124978405088999829925181946735020259769602844447631401918309571777673592742643954562242798847339881862083981436311044170229220349485437981316574662956972386973541711126062592704929042976121283383334022848199999969291081201542902624238027217993044436914834666077617084241352346948538782354951114430752982720698435346753485670977805445754918384913629922316316163998697233025771186147490872515555315331053609404180578765747042168507503017869318900329544205673943387020021594374037356431424669743919367562804196237500988976411653219329250127316103492661320383770799268549137704135978380317279639570550275852704879636843098069408334729886357962660474579191188186526348376613625398354233370183804118437324900925583829199056207909280777178100115644297588172107956171003089249256912820303664683779084081102904933504428379701501296596384423477970560708874565391050918808296014020555141001794170091482612023282645075043919335406754884790767738140552628629031913071948037215741212332092835394706661060250016006392174881149789607032971988865688093224509883771395542604754086517251627001433455326066438909631479281835752911451119030802808987050229435278917813984234553178258505119929088881981316942015383737987176339373619577270115002260683454348166360958575486706031947732546656161330621764426036027764742926474816260556432961830620491548533759664370424021295387681364252016195274423667426694360069122358102178449568699881960456025328860295152246899476847454049768462030600740311337045135143309832451957788163381282627761241149887554743894042374014258121377584296948003093152805978964116993598924207354038765137972459099823250004601016922706658177242252557780722535272602645698672772839239708602121863361114901586047097770265181188396503188799540985214787033147752185779234785117492346580717811719164972598780515236358522236021148704513123811245371345681232212900659989310810970123578055841673363686874468860886832322989659913992500193986054397445054376024286695753296273074187238390759430438106441976571149951137879117243326663434735146836040713880140542595021215628578157124228070067899375366907797450355383267237092648205390687359376409537859570186310414641056966196161535217108718266169741250502418120768276255897320066393749345482813089640128335811055228061572350507898666010224601152593751642195510159429296603522770204741935944999312762031998498119304683106754641392894013066215340263950296120991115256596136483788166975126981347602332685954058941371416427971478619191606790808750799217081269611101481505351311103534090927690894158425260586633803165011254528740206714780746548104166249920442666903432435788110282418515933678415666583249405715501122740089606785420709063246490667071717000496579067837904622403875046280820470782064646954721567067700787181103585912051641071821926427192431201144745865286837396444740258730911627840700169901048008301503163375925632870365497403693859827487619224430385164466012500144954611505049821362819131739461490342190283450359816890774238330569858886697382004581565529642536122446787866940825807908486906626889960845600244608525099551557942649102069204412689700008943885050072328690921401082712411906171073143851782277018429380710518196835274340675315341281945668198004726039099508495187793120408572421103224476074914776351000167030512327787932627455331628038108602833844277237840753174558322517504693722845306621912785264450779765744493429118440496008925562544192594092456017836628592487758421335950667883759639495984361347373734521840624882650712714404423221094744361602248608785926179919966334112415640235406611711027875972340782003885464479289672426303929876288610628634998582902381108009685854090526787776365729365654852162713702067216844484671338335482560029663136969189577084649863810489329170004100275041765970534717436233965132304627001784345385578910449770335247525656653365586640089056550596349709090626364894012121456200293239299380881996765526777419947343677303757388901890851667450487311046095709810386631388260018304340445777345966669456104648583038260235311884482185973357398909230760176942688655102570498499210720570866802486213390128783005646578593209254248050296894050050927603122123279920838677275592729306628844902893516658388612722637129148294482117545332867243252500710301254851767373581073428675118707221633184560137793622913874946138695487200670996533403303327620777619525999872337216590348479170093847026875440530721556929978801631980637270562806662160015069509474668050574538240558602150711462421124238882806333231316852896556137599276511902676259616846000037416192666649481229228866620796756357294968987000657900019166402556433047523797704826278632667998649079106089348064944142057381681087758803787074841351507377857113308664835119978178053918104532979779200996797989429671203013169428815966425350203508866489124749708763224047228301977702357482330789974838699417780612633830998598363111862086945651765673909965934302410645322825627049462984658429828156019933478780884884681881221004173083511838829722286685384347355422788501720864277624518168026198407394647320057725858685009896878654823341274056744098578823507677936624104949309023172484393137615555098855857766707094750414583991315024918769856651232483887896128316127750026258900840256143015737117431177238348718456226978433921884314545485920625073858561279087044547039590582660760847513745201826772824357308095086213312854468651642382085531031323374776096915404707835710012249943758989779542942202088390755125027701101570097341690311441269201917310898989424088347149396576200742394680806025903681270369868839810624903525711457973295142666111190928750042871470982143603233738475163249199438356640015047888238428520915079618849287834971803491684646997168585159536243250511217290162823335704328921190087844761201381796951306589772517696362837159913005758129904533869987560745671168695763938407595358037797854360352417533741937875494729102110153230447486992401506252749155564117179652794997678246427555588841562956601227568958280678225161190708889428772269200538000815110267268950638870202756814733387070173517320023215938758077854172862555700977043628962593825447526695794818128434415966733651045846908061470659123978389465560890217511646176184495509007491539792321523810210404600561206899968551110308620549408764717940022146646705193738444114936333444892009720164932229727046021567977233502964868715123634324232655942260544744399417232336330855741397144973616375906941952690001952859485372915507687492330049627605957158647816377416278098130863172834703673164168886896562867482422017735835546781561942701017908246006450018280535261164797855655799226922141657271046853313573821337752266834416590146920007325411721184650027305932403126331729706812415853805744460848236218636945838112974857782053650576971422866612485259982847932392664355923978680059778064454080238050019997266952334883841847550465574731649953046864922513250437560378261808471235194705297038378317101815795669999723837091548875997788962904692634380669298161883995270913582815980116602522979911280419032004570026717292108005997052053856248724977429549958210907871984011849351574741490665417324775090850706210453747607315535811441288713306167506593370757739945471986347594190151867945863342839300407669276298238615524470439714907465612088898688864855105852270971529643567663014837352392354742564110279564409832117629632503640686581197926945811531208749810739081681093050080570400528807928097237848698819857572953228836563868204117889350280578807532164894004297712879420039990307495811237992605930885129922052819951186958405138457595817809159387020070060938387531430463234276728489524433526773381699457717942473201778876110075192949228546688643606142428146121941881195891397280240819957386297350618557462996152223779164659677907299049573993682709465282143362112136878644898482260368737696323969088133934908579972349983644148092894225302513281413464757045760314599250192989025366800168366844508399666348971204752065086628147237995626589753666339612690870542433411318660445500573717527610452067833607917560853683137002173182441274764697925045519546816651432301832416021634051990316899854615609533080951601709346811837988224928564909254227733081600506193325633186938916701021358484589678490674944572959091447286132957804165850603769263317316959414123878707613740959537641484412214799319942769114222970002833436000601185650179757627163192124347743448303708795360974870405858692525263801275935122178865901812710236546712216536492135086916877326915974617153092032052061281555773349160259294164958752896983109900814151395706701228405879893946288009924812152960183980433067064504855149484191478036063341328478891012550321936619433251398767848199587761090980804260984589172264040761221420962759199539447646920780850806370005228093622818521988384686518393198558022735113569380400902384057776244359039927083118176962634381151226477427225783858039334974269633218852946829846292169900621496982952415338570308270616039948283619451201855731052238902352857485546327060510739631322109113921918871239490427356779193905967233211508900048115742748656728248788673222417379458362279324583685537351597856771051144837061686244637120219340309905392427597772735137833526311255529122497340211872000514839015220696655911111307777009700297690970831666330268591068426777651003109831535253587122445328022925805742808783409894771755867749112133471857684199543134802846172635987397907564894019000958681358127089934276069625112431305238585912594321665818416199807358352165273940100258459217889406574947233539073163381305758148209313572021178893068410832612670114341868923510648560683145588296970539180057997003768699805709634540570891478563793138430266253755141546580269162366511009890788929163135763829540046022087467250891578380446121877012212316660434153605908623162539674721667659671681555701990311589493111297231202951385537693664162509173653404968261283431290065626509411684013776997691549254021086082602537065884378422942727299164311904266133213422688906069337972714708083496248235664728894910493688933837051961129165851099949282456206650831039585258807448310838912779153455988965360478477842845820313260960472717367496929796314950749195573509834761652934664357154001159317817163347738965404037588304559891773443475965033054227727383171147701721466411959769699998873993755363040256199904073512663615450279138201487274654162853292261166920987030879922831975169611444562575480365927581518553744840826474397627614551323394123922793794042486678782872644109524649230261585833009066990442281203052039530813032164687411293407556449253490814832903242112120760958568095679299832092805139617521395192517362767636640484083522357927598774029941212535611695098092680346800440980629560074799108681067339656179537662200792214813358598936788402248315016383796832223647783741118963323722427519681425408938548071702568528853070580389091519970037269573179087908728503320809960105399068262114527919263817457344492515278910070752457607485960385140323081363903314225814230538318870961059569268117916768506936514942573295698312192277991598636250571806104689886365793091355697964307243010909939851106270625422628867544392928598589027929534729686114632430904593572459071653329381894453939141157882298174315557078741708091198420976740124655749402757869349585682221322151608127578767146958571910449974197090799522866775774898080826160490876679142360534741582219011774938780768383660344190506421939757251957178363488472362453710190439448791185226480101221664391116584337226512813347960126945524651733322152873899383634101164880478909007864892706707299842372188656182041612708896007161827737339573568356906973657579922979357975270388078738125731686731401430137010043399580863124345513536331773555360536774509715177884656565423747657354159452835337849329479046330767245380924895714749173641740504084927516128050135772413028867917587212718606342547278883294078770280327007539489616017642937573147862593565341895427753026111089210741433349012201541152509809845793908772372541726137410186548936417449756463197162406391309025976690639331058831733824025018431091193676428854082701233869254041874717740515451800594865825753902508524448014723271893048465980071699228789059966268966303155854020588193107388592540889916177256644681178292304242752191416467752687163089325811952415543175582038372080737435452917799215108986298826278729579236565652974506262576497916902806876543933551479258361421851374672449291704827666049861938609966622291036303642187870834144013280046619018086779783071787917705994392793962196364531933162350498959834775105205468968196438831174955719185383333136522766109610913788882886463157329284171760696696220770136567671476552702313428225068161734887528365370322263909249416602094187550730243414237911596883618716825674430948867007124717412112744851316814598994805780107325772685583586312647498944629232409307134060023342881538807487054721360949453736285038513771649243418227259266304892236617542996290895350040429267241029890404268197170515517824407264391801317508762188365690144715912450984721079944709031772632345887769511704756775963751581357114543399684718251074812268187127683729856662419559387294695948115950939928948979142994824021631905544150612603408045968216750328706865309509904608084535927527604104027478444776986523788164231994420848901760723435326154600196039457583448635686078345773026649512621079441004818795212084551916371554110845189462129492007221918775490874868865234776911550851680879667734900295683476977741534171434687437098580998997020708917690706852536071711292043027488198775310838672573210107931717463472053046749059874910433923013269654822897226953638652937320450198604461683340590540787903115940428049688514787712348539602173115942098070672319278200753644943804969802818650015838840468193617309237340238462151910339569415150189524638990953759269293227644936752759077492809992945845878929961327325845679587366356996754695016049734117935792141449681218569656600404980893241636047597788894601496527048162404784609270672317915649999354680665559752829515239355799824749812834276416821800406899434097430630321557045347515303565850442643046658226385352728643832052490533879924513850698055680391578472669015490107333191117742521546281043603456956819996401548066200989816866349506178198109880613063585530035261545494565699870277838255539006378635327559207491249519582506385293531570931811036811191137489791893260161613659471857452383090675300767963450811372120558511094913359747748021857010636006444510784153424715355306367531721506247599025117510249854597688562224875021686803860578518777578919370574224279603126787126359302563677459466736953758461865729205259908668706478169564981963986288901418254442598634587502294457038634153734617964970177470675923071389393971661370403200898177949356878428864400139865258102058598653608799795638735384022451868165333864402341195997131233501523791496395235344180765185492745836395337591660197137764525923463806975060662488809356546266205064853283730903689367570160615700858459843185066037741834088365027999785304192304904724130732879543867367520891338632433318999700817989234462781692581469930098230166291456875920202537514402032213208006989267391616708267030453049243527237251398326198818099954374957640055772640400669893608159553792351282023854676104222107430728691298579536825640608113889900448234812790700961064554064396213062574907076339460483748993242212723971449852985731514464805867024891633524739629379505926025768250585354399758616318306811568885264300762232975610543536162040014689062792375159398803411854637011207255460870983190977759607315818461054109311294925627608327236536126324549883500632634377652314060608761993428458489746244321165377338711618115995920423874158109058609474542108390185754471396936656470700004222563117181903384023307025213250502182775297163243099119752996181656537360731522109056665383444733993578017988511992214434601433462585560299305423321085595055894575947090944745275856099335291212056362891082311997331728114773463408391835842723446260606281049971764699975281415565552711415160298744955092170667629375667635584488568602482241754915197219269657827821489594504502377685314159287005481984318579025303793542986179343469803291049936235384399062467552884481747270656618763260423273959116592901341811069480425646489322320216041841471611722071242217799490728812547463196418272593007261384537426604505350222924788629913544858696301858119699459036714501525527364924119510400021406748647152797736580768681431885201307346355242848662123767112406451759416738177165746057023910845093464590127373323431310670764527937310156592776470731997100905275723435689314854750314509965316308245503673955349130012889324789552029116400740335959184555563244395659985633701074320166617851202596645119749194513826622198766043050637633234950025528384767988032737494947010131937994588247524804597610268093477743679703053843415210743523309358484273252019597580012295233144982040011128705467620600134806267778243539868667619027553706759935276616865674538385512942976017746469420526199110401231167117296583269654256266828724315258398984957773276654564361784317605775890060587657357930101543293755749243729011885360305942585598066987999107209204390511827288407393636678797519426612241481153543094881865222304418271081107779987287934502861724240010547935603300063164418982783156700701941524520733145130549964577386195710361075611254674330180073135781510512311266938035113974827898069865637528375792510775189392721413278665758918814975946804605771166365199148647185550609930508248292980428584546748924937248469151701940834005311548848998002713780019623861263429709221627286469950850521665115359782827924005853932144711406380342096741203672565673653744867699856535560782938904416669603984434774892110614118077141113317798794441154784294904624898995521315514709770536364271089367299575233815658697497130036350927292659602721739099090956909387105673877333780950767038005445558939840633110322507921600800317458962394723279978470437913252745257484625734575471411601477130276626506602256094507589975490391311642649915503462174195387088461749922332970078052651861241019618756461407348973946270832405863967915070271744444810752757056805066337017569368224779675200423989916339459628186394507918997363269146279524894356316148373813751942095385263056789781176550548600566329863841069124363060442980766057553594722143557612360373850158330120714954793187383451567192458235574380477218039283939438610541446040792887650842328756805013797719209794535391912451771130317558275414948693869313249002137589022550467493587928554424883806436840559316761751149620160550039669706208751087761449746316980837035416714029243952858116140630978683809614000969527610334865683954487738293628723829229529053256327334229869317671952474004260428964815368147399624548609840008739708621159562156852550600161766518654716409881253775622645519656041767143388407861160751773659266565419594725195724330201682080710223993856395491197049118905248162073764492514726568369333348002818575321919737730456058685146247647238759668809305181823865034967388701842270462588967590709287552801701676118569158218697073355969013365272405765862429078039381047903312579926850675347234003262160764335111992034427729314152318731865856191324910139589897532377437481203082515842532185187843822660866786766203328876292828187354642230207812620502434951938358126723960024228301341850470279182581814629735096167425650128672332354731067186704047907895367643913208694649663721943683743389576285665737617472599149343816715889970121035726766686345231865955459612853467315246564033807374145299253354549130638946851716563055069183095754769651072706510006865752643188563456961015384238919758604736237800190206276028273421032177966408631463092050556736851002919781408270099286900057552793347931988367499975784723815920494407994658944108136608105578607174403143822585355442214657405027907188874150903990218701520947232099028892272883833019885232778694961072593520716572311814550846375282813313587268888106796929516338569008026573429013660706460743996034571351413531265210199730026239387819152669032719524611319484473778269670102052012647249161083076580994763383266214984136279179216980581064673653160481340788695542638235791817539962031476068633439320908466672762259941615077803644100754798634492716185524891553879399842208825974695245767762003420601108779932596440859509546677857198724794531436555845145526881537712896668865622727596476135093770245329947537753750420991828186237240395633037500542006774500893728811246630636882302603934715743529013857850984327423130844952328424996058693703997805756985366062903276442321467659635493464943794356041182460573410715793465309276581150900391814232769224740693067811322528295537944689560978433666791141836845616151233686410999353273550773526481686757923409310160169296699025087414484317338565729834733294066013705457075221436415644817198510702561811813473390449760994848180230637738784707297776823064431615240361956174258319853182233615413462155162829140749323210736308243896004500457551582628690224545351962359285756698479529074960145661357788894909565651056712020397438480155542869874707699136228547125400558651569549590460871570032698579623219112705778903108741654486543113413459441771753312125227275330275903374896402408622610866060803180724291680266526800208093562733398718982280496072605974146792545774774083247062800847264435395597803955647852080188531446017488919422607573683832590328887425164397480335960464064138308894777473532046655325393288025833186345409747906277590857323643357624195665012520229168877326636551028936805716261313200983209196515666551678859835370387235391874348649589409048054569901886386053564251445311525543194257166924357168928653997939442537680356834569658186326255833543332869665538086205620718431691311824827709410061832190402468470442050837440588944296062875089428118673894515617833306256021651980114990287820382336529193095926849066311821837877773244916625740326875854366091479084213613147868291155613926738606690191256919721515475212999083227861250774791009681225069469191060085437033547094031460574545261575343577726348913017582078257912466462356407725260077982184047053040226203929621800551649189547192394611154880027874200980311856786722176453880121007651846914880202578898180784073019590687904893193419854790261582054085348163434668012947703150733692116033211261017140785771980046791315506729089892047169337445415824406579367157197638135067133086450226625298692373793390155660173929734989663068045779077107544631542878249410135595177793733631461137166241432897327190310867237853195316233452945984234378872614734619158423982566758573193173811075115225839904941976689312488407515415762675289833947622070811136513530744541698992960523202637176710388725143807726712628036387387612673135643584628140168184718987578993241770965134019465483781775986381578742975819969720713068905960622239475349825772093927309971400475196927600960268144963873573482736819521832824878233209310703323319843750951690234823894109116484230527788423602735716367927656055060224084046248694318551504604700676541868515189688094131724510256140354721196612638709165605540521602779021777356560963672456983536966683047841067903344562610130145505294726573861845658210896479677241857857228547350139700260332353122584545306360781381489455053344669942794945819823271071443873746381959286305215332996721297915037392635493021601065770073949305726872381106367574850580439284860128477147445069155026125897445813028577533373641632240380888465217399650845173975074969569251020410825295217869736258808000432444974962530909519176054150886052648030797094577286436046990550650994381194419179384747004983139125868150436289492132461004122886348761622798319468823228757425152938862599248038511971324018594732442058820900875231785014163214004379838467257559843923452173110817680549996789688648501654337443043665970724630100997547048765227946892986330952399583108665807287749088115930544669638884301315499365235851202632784347433958156028166373469547465534627090055657835740787280730331616714279050168112829197213884656524191489119812549596641444628828639926480168835839221861956017085690069108737567256741229570997911162430005374943702762166036556291476078261074139093197843800216162359321827865349915559514716568463218989744269096267879589664481175483450514849301140327847809933669561068725140001042106809054337029063345712649366922808941453596586702652534399933295909551402330189324994266917594222715346334283630166919943791939426368204093943492799137288220191671367715600273761698467611795328089657552191837766647776312324757894114132854862491209657388668931528154339137864850040861078518490637165367092107202869117876038092966578122626125432062901252569989208943257373378771535068760064643499188035716929055615302413900427389999867567241370446532403712728026709179243850184902427634225818763421497982749815819578110332337964529981210159682531028872501955904430975561290845788383375753430008564762627042269849892800591524303770572901753039221931505182371826320609336730577666431992954809476533713035410376509881983981766525575477492742453522113143294744261832459672104459298288932457906455820628647641828903356524134723246019662486937964442975046658746163719964816865517948308946641548577501984449943761608444235322976894380105940130010890380255786269117233631183521426895192198411875149718838438963043573518423376156852893562808367062036307240679746086009825852886451179374848703088156560819347164909988228543058320544838489919767633896802523165285970904664985545637046113224337724139083734330693703019341728411811511489885623047747141903919202334189119017965929551171897032658378829658032218159577228014992567121722438936806386828068694921137427053575529473669823284288585456999754209865272819165086046039227283485894749290801539957941314986511839894700970841819429403793139553583552290588081329707609743525961718624661544201337381716570519522018509908228374761070982146385845933354522494407271136196056742698505098583137688016937144492044924872444861557417456766665755995241163732853138296868801977168926335623189630983985465210429635243986560282627220437532108566183136742629288178356234405080967267906507705881924314831543754043338958387120447571541277952891539406103170558653760943958614917668337953363810959260521744923605057779802057704312044778373801122953974078028437924648938269338041327587541779327817861554332477103239548053600387053320385800553213438252589918964482573078566523605198251853083939481159441557443404706346453025129131470086899100076601348351043872102826970554318347025590279238786216177617493199164625833500034518164904948987377869579335579952388999937081472109693675405886224155547326494246570498727986696183040663240772418039758510781002403783205899524867599571470670604252163837126515159299245967573863160935021708597191138483100113254646112283102807125921322920999196725361930533907410304262307045825492990501329931756008934855000828885735787782616392066059568679598815905255786321002968459636266209045937753348839130052724393288217407806776411148717018572644662772132001896054268880886018343577190853927536151392833097121450694306609454076077307972345475752563198287636272307638401449968142331266010567459955085852294287091372861112837420456306020747724942269496196629651855471023374542922109042834423182609256981927129654371016578698690045781368616284314719440955247065171764006191892335212860515845730278220504653366797589459681094835728258683551870000579795702638211676494761070460543582718151283992104593882397984193929967030894576301447137692335996951672937496855782465310468389747615128509732875265225676240868951997276618383911531814902507104948258257893104157340865332958582289357530168380399449922569863091784390991545035044692909494707945637555932620026500185679171542591836385398970241583986457057058514002209842396317988995757011900072229685224253983103826513895670502725021628333868692333474463596158089369106491819899800644399575706020889223283713161273030838766105041615826850336323471450392545565309717976485858712588412503969909964607297854309301217690217847252710290038625025871044337485781966209329408322822533818596426467160569029979570042010328295410810272275843066151544600260970154858521343524453113883302472325009836853776307772828172132071480673273262005440338281966699240616329926849325557235744192944455765619067250362895666813904076261077096234591878142231830292763838890162775191105250037676904806212041845009539268120730048595277753207192139316760975404391514006130133583634798276178153648651976563747088960789091688447679415445671352085152790534043742789294356895551726620568971414413643105951361908940843106840756157944710553159101391815561803107875213368653189469282193768314151549883461193327549070664193727888748313147727408848741478467046097888390835676685031137322974168156020279164903759502813733090959262238491513658038219475946251726524033476599506765035121181402674182488017155156270537133525357734856212468245449149633801423670855759870834238693099575078820235745807649543456394824160659387560035008133857881041606732996836360540806091726231874478911692968236995751738612128610928199402054643877247500292806965337049414321940738064579092963294402000803936824702745106948084542118814573259323338605506449970475354518593288288632833466322549903483733966131908364123129344359047091086738614541733328593184468866729274064436260435986667604823536661781784312992181391952208437628525320708865021438523948084461767030457453029185125200995857158521861934271935815998595121126196494869824064778602174486005955596889993289423402213748913748895346635276358833754025894588719255226596864447009096939661410152754537299275627362490337295225332653044919181410974390467175254150288560449681438490986592881499377618801501087700146084148792926797966118591549465073410881684591297612231077183276387438753800862919083709510223419872238378785824113865132627635721382717918572297036791932526285917495116331193748018602182690282971439631912028088530424164098813023797227797548377329033575465536762262798036594363035229275835395791891133838992325363543939560377856173720787649747806994233762359532453503530668166941405626027450758941670065693242270966209941889786894395694174165673745999328325490667690653472166948448949067471445918553588989371819877453875083793312660421763712631571322937093954829644401802373198244756978362712920038772120285498383961592617119111977570678568082819921432415018717662237466722731147029908550531680348783773581709667715802048319607056599154017383375769228260739401102902218131855481102938088751475838112337700625340291094585215407426835366255378801513389006271407504536233643865504704359453042850012389839597942959387799377448906458284129663150678028752617238028312897899375939806832417082575450791158829749437946922519021308153285087039189630616044668850183269983372671856608659328779710246636460485596714872774391154551207054096521076649983264182619853526283126726351375890576169391428102841110949123991194874602846476178041578567122980787265196898819534551030486422691463455752212275071581677192160332334924488016183586810694610520325072443742947497390993026128332922768001311033694783018631842628452722635677683394907303484487792964643460410115816604595092499498221893097366787664774950577083746807350396990452397175003996793097808474342440856817821449193689757644423522493031897996119902553935534163857989462653936877606256405357245887667447284009445508403094255462414349937028252687473600071958951119900506251597503885941237471412951208565012983631038477668098672556000417518188997259842052188653736484440338445230329464541697500526230755958091793546635261964614777407267263904172229170755739022298826228835006070456769107017340567535526442293908288853594820301323262731618706115600061163419012622413560315715414297389571699925311662280053058579820329198908385576255085562030130509747067111960720758878397895437178111612604462676636640079378560086610806143682427217580621346956154058319274394838113160625450680100952611981960512303282634276524174827236209079831633981376529144807222430419862063048615013992958223143807113462570112798703928526542223527903233568871903514145353651857325353823892543120188924217135666138912159270889392032240313989160762248600709712259760925339489577420259215815358162487245903800535885980928448457118139145381305748769363877828975014781898727091778520243216505174754424228130356827173726270700993615634814923129981099940937055829928879032420937866663611599158623913754217654913508651565085257808373684959768491480579974795954224784072945433164918996851590031234470279347679792423007048897357422052422514488278702866965496704068280153814094638670084917963451420841166915707725825407418494290115994906625054715417069345161824318439346079667292600571747841689937156348091386624778481950983088262992588693097521621672964381684545246695680609416051442696611410916008858961873878505633311129541282636269031270966744369001579952675319356935099047448575899299356196612810235362351753149995298030357784115281691826939349496501947003226012830646584652414963254259477874457943188541133095038423407283433744345577363867617611281066775419462676289043978261292042873719900453508223974572148913427270184827370913417595682249899438829402110721746046460778729482371795788745907411714359978379578214305309091396297166445046179609672667886445343196195026023143999395362841558166169618267877917574008037415443100173198206138786825416874757514408813953722840707547359785761190325791239708022488772494543811975047956024970629078845815601877051539362603518204761093329289346747423332509542083876313766845301694368607623367449389983078025993665063130170271913701360274953187052436374551527388822441601636168841883478316128460303156308495334761251554707592445264304357912659808107894301089123174425057354207849435264988912350199238661537528273002036655238548169075145139961515211446305060966083151658893464130532799275488958706713996470347789342437279659721859075431660077572660187930667956516583157551328906449907317462228685352306484678278378834250211415273998072959369985322147722176082453680898749612292001860458338702060474746779423958799048686958930190212124688429810609046515218921752928379191432056417308638278122370455391683734935541639620058490686175480432736723506187962807893567635468025238487717995314811891621098378191058794621266924603816307685113854999875449863219990458578137095610565206961747718531449773950753963607583204933472727282922617960036320434295736033426279396268326318655589022093150153528975909947332540420572057290315648707534066450720349889131451196866121977717974516906005455795921741471580663118033496527175943910874673693091666108241272253941352570920093320630404481852362704248982234989818855223784146807410352133997286618610566997694957571624562267667110495106648820460836394838601050766651382254019518807983900486553624319844461845932185212559873585821469146772493150082289614990496845523940913352885203958089199786264807921558992541162236709074566762095134434384238998960214954829450061770780363790082843775363852712950415830607010278208407138813083839302609457594657075950183998133813456048226970107284307134045824821494120687318977849619221354700059024498681260831537313557530638725511369231458844958715084362902789430373591246419413666055630932392254433451462227745392827060018499061542189397248467097867992686812524205113883486872737833006740532583452048909467442627609664767627140706574132345461477083995048068739223999703226922417299688098024141046180096043221557680253506147669421884771843316682751678096870363532131651135074359335613423661233491701786322177320026792057939552342054063146590092426717968883392073308484672260486418598195110548273841820139167316929684528042118527798619750726307726861863954941969119235707956033500734944286942879516428690314146307814031911294533928502112451871743798738274458412942467036619599449616485738474009569575299886324283524368328735104503019770833894942425856615606202628899194855381797384040728979359668947197153860244375241363488646115385535587571097813924425839864642866418530951842458189103137989362816172249237127049013766412612196594674361523400269074825765137500952050879843406746129446191530716529028287463443150237012641194159963029953556377212917158677501769104114718078584226526815538590396714907979772073224495927346369270359615271613101481093637144785323435863201184405420543192698804629762774752402917746134644518958247592284344503797838766915139262884872418737153659110096491681646732340144359856886204670821076806492175212063931235087139332354876900314885651254010708436947398010804745513771474297299540477276684417327752065103074162704212825970277907084144902080321762283775474007009938326449849024281978018106436932986360541722773324949247000583208112113613569241304202562545731967418336917050784046115140413294554029085421914567694099668020361509414138275372719326033278308134127914698208325366795295816495149927520951862382646580312155875598536934353101905299228087633841954518917602754592578860330956164200391859832986073574161800657712828016116792161669298282813343510215938165039152305084812143289124740360871747193799129378964934239616987198520224612283054233947860018819561534061725070199971552110448849020653714260181552930752072095486242628396911592849953584275687454292779451971524664281136295962801784119833664306757455614111003446683529508084977300657504499728304981444525769428751805115198997272215347822536410830008884908829002085602474719530710378802613098314714217957321028179191945503540389569879892303043570709222139328581031167751840714568890883222337532853123544221869304030958159649261355365914968729023089297369051387434830012841771677001554434003531868485561363073080427411395351062459537994037565684690634402779343239938178133356580927444927028395669340818975094583052446556990234834781186537353919043989770746248406560806015384271260136530321792751623109017545407269575626449639689266775263699192582895593906073368138489938693359376553728017280304628380276617051849560730530049927164732031141847947006741093459881306714860192814420821850871501582964167247609272391086216835031672014742534463060341271384398611190626886511575793369854833842311849957222369388363880514897491603914805009894805681329335394104806061279250222689492164427821338040292622843160599853996368926803434133233225003552961247409057198284409016986476634675682209537035555249411036468367558919163880450791410072864920896391522820464547920368050507442615588211209161594261320185341223150245581324909953806195289732105074667466600456017290409719237587966779534151153485649688339195613389534521296230741618824615945404548127098662420759016689087517871277879420716662712057503517868594605712501204991218427276584445173665232000028175331920077982171196298553076782832543857065127397845005902082453759521732612386161752440241067527988024893021453364195229366959251480345680764442850033712490855917744455463670137164369244068273656393397744371507827457229917360668023096130988516692340222965141495562933882606870010779717893621859238069786482146933845738334517766866634414127296655048345438443741806180294639871865478329453616501007846504468605191720291370438796307660216667781631526400195524031145629142323251297923659707525064534230733699736267794193459568027720098005170010627196977502867267946023851116150786164599130859993254922438709850653816241022755304486764113445732903197519589221505384556954645970566197725379377555969023647895293741012245225630380368150831256408806977296368424875123417767208715545203421520646921320543233034287139262460824506497595915454113960698767357987762396860210019008848614379179852115040458247157227810612996717948508688738000064822930049426343695607589322428460508122094912300384293191131111188097508639725462515419485939659080234468071958627256326337968792042460988204563038134473845984149274507748412445121838582617875425349000778162909935056999204222972272002937652463385668646727780555714468052991454004874332092770535832620221326368897668271764481945074070308718627107679856107155936305009302843902169700892374633805165636482012418251304504557785074283977848970358591650336842500085611337130137523049570371116250326414663072106222986213423725825764474705963023621792768159691027295745195163367557842450205193725925611067326860788660394609719731634841918981194332767138608384473124436542633059140054060395401210655505029376304021503949359832812251327579754784936927881916939736302338329591882388538533655483222411226317539302782767076430687554889516699023453653533925502287663158217788235020261647446244849118745220932755022432070800327692573308416973311792624909436499623039791705130599133141366841194650888694315820838421613898983241534647747354199424289636655541054096180279969276601720640319317368840723513684056737583260145869948356950565113281960989728696903813307285548974711957206469993314913070615588892764806330707621299481011358277050550400172057882239053684856169984391686447553638029852581120681095157073158391953035473304842396641548024079098210463418037864631680327458782509758482098172907755546019574243959662565246453050485489797911926912690920403165022522247984852390219254481124774030179009721544959967763970816269838040036550508732876857476265053846769697544250296432633868419905925428031364532899012063902587670194510689981207665838843456365403819701687013938934993802036316191110476352121637039254789221015274089697455955049446997968335117622936957202943238734222207907365264984839765150843784873716585446755820296823814353957636923364205968731729768335111675590474198360367401589436552589850601466064879659108495304012449357713446459304005161848705751350793913974896126128111356623886228768097533131141037806477955185792501025756939679829438078712880084017785695536900746632628584584359846515227415122639889089490863456979619240958393710616493626798460145582110950778574125752681067750427085453462770455097614872221683900571127981937093071515711887374041057599557796620932107671238216156906474949452342117437375248492786055129140148752199928724725810337962723415169526162570041218721960489393434664025590080178487926962778283630624302770332247813261984282468522352324894148256886303846069970773298122578377289860606503325142600758362624569022128601870264518956179467423013536396809579376539287685019547292282397922702599391938700960052884695999431587508317446504976424508409547476100992189235807783623449978524083807907785382417088310310957730049098011217566623333791528358822336140021943091797740259666704832674357045713004552321899876918114270014711698260024017025586920341010209772272593413223028414698345879721776893716277088022948177668119502575265843893779805989548346546473915664315384590629423837448869481369686129904411419042092509502827539119754760836848505457680641149991762299288928332790846913239797511915547572465861639902654962970499777838194289672677839333208545307563478594785423683860646099478598290015550735197348540679630884410246656055855022014218683616894612796395951327379093582670915865367693407285019004332272046866906572376780290818265206422970261382283976789847284641742887067033194425429478831758929850683586851952471084515930963506812928145978336126567461797437026823093612644037371808040292868656309806813576662526094224625498111433799630034109552133238939158889268228195895036643017227996202274777935934556432412392717709350876381675771710502283037842412831897839226224743786919272347118749895426094216175892129947462657221643701548696613398902269087839266782249451833794851800819662322134361520589087597761176390031402801215513211412130357669288827408812438560806549259361572054986509226702735648989746164210632406554247993053683946125479665036809643793794239155044740089055023544764441568625987634492461415402632451603941094423745868042625321510780831574364535689140194067823551874927517964319143309027659234428054063435022101119915134052529590932237035911117309475680551715355728562018645033611326317544814960794395818497116577159028402052299471188513085386988120625437938623842723271039693522518598001643633345889424290839620363001528233859135508330473545948867669079837892374704098559491300949928165273137127805273691753755635783057324335588112595335529584618627619386788049565678787262993959592852413493066774499597569821411079154739718630774613802252165697346833425028520779915992600641459995489311737894677010378940714332198505625927618745536189573311557882123095204961483545832303336608041863310229944403246749488007222161149107865590211607951670090073738490662040578604669656562679599550564637349447152136487035832993835483457250600463942098745725557856178082887679234186944890774085124551023799032580260243142011525996536835021935449192989996407529589227101724555616712817116822762475615787043720285373570984385457731294197653383449043137083227709704334944050263179830036269934217520114064158519865022873732753990881936780076229793800093411289353451829362914505485696394405144821817857711129803276204091573382513405814264941424786199014255293250449398405761868544302568589993709597204926862225194579113108534197824755179769285401662872858468951269485360210641207601353901523201065959563215055709071659642054040661647301803102360974754755583324381038068125705496285638938072494451574958384480173519474175508657601090915256517319534501068418886260261440968139879452483556479460782825013622504790003064010590887996770699195964197777745774622479109610876726951039908723679063802653895259584107648328038226785917207474161630778186405506386530224079546141566896526281618968770281917111256690373795735215281178679957002557326988701605102877766495035178321454509633863619437100039214639814117471657784253329821248987972470221619080674409238348410552047781270746708821730686365954903812644648342212664416084160636673395308326000449276298867839347336220081994803615480266958473089833237894522314472190581427218682515122126667004219014596980189050225308478624452092601531493228727269385282613643944772430984121789353691870031341438320675156164428012385951252565274062617783945896902783717413516282527716792473799844342630191450502912716994234985658218001403388661934994764176050418825261564460244315409861861409647019761224379295078425597264140180865357193174740830730845774754753806671492623443196077487891493415907267119470183758700433439111165056398154349955476387542667323361310049655257205584624696395199966018091887918765559194031951312378054060236287973791331551714850769800295169775754503248733583051876100317439776212534797482370002715826316399523144252836519395089727698042325879319949762934166883425940911450569411493423524584774370292845570679602469829893707977492695394906361475908185963290379325503060328792915805041652592386380641743503462329905169002753851217779792778671258913422172469425063076265538582504714825337327736100510356614278806554439579883346788017060228229634290496077309750049299161090424367905052565766721553860942838714509453122857371448985746114387488814134334757350404386591454956232471900369549157900168053825207136499084524892918748784577513311121310785608843579278094681798184476504741527781116358103670368658336535159457566344185921614415517180639067999075436461889671317709704822757177767817848484659249931426503118006167582821891893475506218971914438996288589726053427346856232065217776449612959673115053713175505871680474913187343038024451382462201270101005266972009418673298668065141247977128301615474297042004331721297568046525572002101322197129226863253680789607679113390989827442248403613894631700423020424847780224198984821771269386600894323580030594297115889069370592546576047421442286863626383627056826309078067855440839631742241033417150010445031790413524120129126534940694002936880070737088084987113756344933172758480911628888309688179337969385324454633976696524398084811532289113218768320260617993540142544913650474355878247519105770871119274239135544263676640319756858941296353578002852063356709556097832195183334752411992790757818433416309883047161893799246002624549514965730291722285918180642000367155597138228641982403293554828142048792653516548000532816934135862831577860414331006886675421264669836425687627836797459171655357175623211481876511739005584453082275622838241484696021812178023522345045706737959710795208812971911078464615640628779302311422087982128238072549594874434282386492145746670045236913585682052730144750226706913631058321375017881064454872541563001347942059076098128938470845581976644956630789971584361411413653694011414235067335082832280815795370128413560751919498972870727710226054238661459776993112985704199913096428134254668472934156579598212203813630593779370862925703846881212145059161947540881550226353437350471485168460899810541084060350060003473777938614973100555874032181057444608468003947522168945677822359475748620962490537386201572793614979892658321602448237086761962123670827309969550881306715985547956412479990004421717130861828361753328151496858008002070391539467185243042923081290075276464871147417165182155232440155071172011994507033677115989048111294537436988571670385044091240697050716118765759532952739154158572292207093565406811622296543279500252229468726131152540959672886846048014505179069512181008842194343071505242688234014491685255936013925631023181203560426472394598103312077944344786428998131471561420947856686881498748300545183911982576069475715023298115068006216634904366696407575874351479348891563354949729743179518620502435820149893706126143807112290184474039670598269198962336543065964412617147158369156720846625992868859601004612234646325112886504645219833378044495887421773603718964028612258050562911497928730634205664672136008357144866506254455933562509762333100967016312417626326939799790144863661322037138354306778603807437434178460216696904829704145679855086945381679856702266064663531598589922875125563397710905929984769187028124622132740240794089168868886200892775367375106363641501885539051967810413599011829077571380403892879652043380488740239713056749348314655063528327724641581068500340702660940044437433643720698934020607905739477547733526342358830882831232432657696356722275590761130242121757769511482148468805705229497146883136801613940820374563303524084987257480841895943147675008898307456042070392194255300251910872983104880815772356968529133736456234885039624501333916969612912087656100319862728079240567964778756086935212998884062350661015305561722841613770084802796593824848318359516125005686233474529575026991975671402795834977847875719464625179624860595432468229489370478279805759852651358130552017504046614560585947233652634509412356056597448594615689606614894712395140659427168218523204170172420980195134532647862672512555030226561461460504233342160461362254297355496727359643406976054165031614627413072944221424350746499328980265424887239769583472420965520509059173663531478443449868289239610953138771650497975220998032052932101118830724158102887255302347119342160417724581096568042787868947904483672659243843967917025641512434052404014061813935404366692843996327657363777957523773671143516491224309357517528022002769272515607920470503258783277820941140305093441131484779875068792625767073388113482811516753102629124810445060761440828460766441852321848683522056183050659778072211826017905061219645361765136700690736624098536411578707503524182117364493076893947790715338587990199056911432551348258379794126612129352323057248183838114962214942454558109813951983556628232928836027899733225265508397813801888533721597923812410281841569665239429955150097410615119561565297707591065414329790703731734291618685222082490948232552716291631028309954243043535020114341415859631274556256085583793224891980919511261194766061904330189953746967957982532349060547597274509802908561980315827452463164061544713032550429336808989112840236170098009767293388845692540853799692093351278619770884721839102267222619708872274284852976924241372166248849460552923478730628296856047613900465546346584573711421468941793165191973391099240788935146055311540160855213998095301504417644274460764811056404261670148490390878947815800070182850512918599187069483451249501183180643161065213197380598609933756736050127567660112377542248987759217949486705920793158561107138979551730213966846378281205313242312291883498295567823818207021866039778718116392122113470237723297909867621405905047690894386265285959250309710626894101214734467334765372642804466599412143436544993865780914998749624115308987446584463710445896656638450003171710463838642697679168517912280904628235884175694312648733756947505283427798828585601074570765158045782467087020853852315416597351681013139347550261474312703881816205561940215693983814677705591031204547826267526706844839305321276362396868834526759718830493478014068386033881351399679094105682320264931614132888526031677946415978284547508531566782915833271842456806752261460276011131663551340068239754295952025990668151094701817299422974905950932457890782444129214356881246938251093208783475389261652930077460280290462374022879840279363192317974767710498614557611161454945741720327016513967566010040262518391367215156879361434907518917528331211254046145997173479281835713328762930762262743780694512599179561066017243138201666227272369352065708144318993845102947585702562423445810613336645170441253861302525450017122222955008522620612679217094785708327822164771926793772606328294964651267400946463693820516159464200969638978612314671684242819724105637752878125364018215992671715950198505643732952492721888191134424274902100683702742172947933396814901644515128556953329864575324645296583617994262512282577382108642816411585098625038911084829806430850724690057284960404098700526389034267509995911717444424768974766698369548799322869743517984409471616741664404625346794262364821748224558410211475823672899349637925228240421182786783083354331425895087177295013749372351514398383478612084625530156166914211660186467311928968871170932586458222871187190795312710311938988046334524660607965906130522576651759091388296175840277501329100527945520781147480688447944350129320228572466576091767126456528286186422622041112867083452304161727521964416774490487236165149150136848992285114232408468356343816181419218738023816355892199784262369189140194027877461679601321646194832166276498355911776842236538880056427605647070462733745934266093575349000905155817010381969577027205837866837673943951428281346724210689449660956187218873924618163371370424618831579568889556223279009897448103264489964402893377240798612416102531076726522391466185133914675986782253326995791687767362422633566232102870841350779326872176945727172563172890300667852221780753570925061305600597473634894085596122765876935620050265858761843823019188374742712501486214426882683081081986031389369313601653792156134720902810950052578282230718237019996177591366213711558112494907108257977575385446532776714682279402022937715102838810792748062177194896346414985506437417057019828825795841476451741019244431117103492746225391347045700400715202231007500878185908948518929709791038746809092996675278321015922614450396982872192328502770701258833909091129860309029864571844129449119490484727925333823209441344488332813087289335212857791727583006280489584174922424050437534536638137723866932909928191447073127171803869801927236947928046624743559785565102413093733658399631093500684251342180989502475243595539645225887178457820900269249975678288268213549260294866588340827514586565894337934943481807183556706161929315985604883889795852092348985124551339466099649008680001599409939663042956747423068746727245622663687408373164388734838979343048936655130332001624954615186036902984992234872080328805644583096120195661195312366651371200248813028964555307001764225514301659002343723752604165576202038255457814340099079048665495312320878529441750351921890122780076124051552041082940617073551540109047040700826273954481753088319612143002257456182066117853710658437009039023241146734608270732651667618670775136749163267279072635008669320968271084495147827420576798833562777183172711519113118913060438518972222886471146653994848042438994823656684845146938669692359893246852569711263976944640780364875120418099844855127054276891402846974091773219129910661424683157981392997625672903820089269725448064111857924222732382405574580976849115129415638240914577921714493938703452936624712988876685006512906982631228470148648369861650959501310148089718991690361992740577849463307132828854239364037855064287924777949054119043687104587815046095845061296268310935673301988842212623549214247721387760350738155850631551331812939866584811382504571833488368147974799384117514371678916127732995319271583797628460827490006358357656980932696861344303211717377754884515191351724422081732835089788363623143241893961545847447548320296662924298458115953895325659721150999506570756149750208662560962908365144718832699304925721867893032787045874004812704473379582584085085834176995242860191053054026893629044777721742567206971243897244435553288261757735188149887580732494830498202696335365015029137623650103916672952338984302979967887155104355397464380396631590319454675295714033350189849387462828804771631178424845973100015741194153865555773620978060745514281301619489262160941209778628825078398431159952608084838560937081492741027031195898933751865860063057518016951017463200579166982292046475087891501915136475761019677116050996063105499739692261970240645623619181333111416182223730301791425437330130531283305438535641274141186510848081183134870736906979781686474868635980765014351024352239051458984076959062581699698808477491427864851942657765927429337981147976303352330799092459597402499582273488851777483642261295674829401772313191495643851359439138940046363762804866825282293860137849111232713083046988291948896040310224605892791928985608859548371361825012522268702991435721037134572214893023279515803720978925202501933865227271338293529637874501396324346858906274205777936658246777481551983055350014862819166704646627835055861728194899979926596880791661481926077182503512135733446746859872624896338992080841115821304986640868417082748999912506402181671053525517744645756643057577670505370089407255267669211884744803505061324230210919007172176611932440193896948825006514150071795373526773569756041568275794172949634061280398168263693787663241316432498227341594214915213415840381965568745100487905615813604937055070101364381092843733658758683499058059276707220156839447327056562947508441636276824240855464288416920554346486122978106679825176875318541561005448304262049109121254751797269337377641379740520940066327791347916687144969508629027181027151724386490015949130212148467425887107942727037431589183435845465564661231823543577320658810389624955964620193219507454840222474770944611234803109733114252321103822502262991542066985951415849086188407954639612433233257566152752806479972542711494269729867738756446441037240170804603425392162398292480226709702000311205762167529470989057520260232195536669844668150407735368989812546340264978653822012501823619433714322840577498193197199024068992085311732572430264241466696260275983660471987335176962003639569416579474388587907059761398022008126505044258407320808913473996958720281789722140969038421509650785518182598691792307970480583568333618385789121756265182209275669619449705060130008275827443880238153760356090488934955160271509264271188344747029626072373775834917212600487554130146892918791354277769558259105519345837931054832160351406620120670297273837872924194579997205981187028928763263590970158315491166235272483122282135180055524238950135310269568393431791459545221477985288813466656497589239912115626919008031754285969415283006040315313931611287788850580495293294868169682941056968726136959104203100278109405680962363227366350531795302552836885323467231450137143548775745274761179119333056043587674357228699063541977059619863260334244674514446806680766534386532608221668921606362535478797172121128944814301960514255800351896474187642202547948151754589256897438170597990912012627877524847568719571310754904145315681283865834072325028180457523511569136720745961877916854022181313040995265404347700548889939300830822971088168036054354967835976287977679882046908182127683538971488484791970321786504162439203134390116854171514950381190768750164455851631847232519089507417915401536306658368439811156841722359814471995354415760062887893363296952869652882325919762346202406680871930466819440175511357162906577579052001933594961053278346837837163386253895201146189939442606383667365228927640945403554308928660937324979584853490316539335571211706606999892662173078345302151017785671950488032868830025929411438040639078517946735624817416232372176506846151360879175062937510501331159095967219761225888706253170993153359988382453618189302661518794190770533229320768491031436208361515855633898153754676037883416208704939563985087759411954001333573437486757354590504886422035923337606294431501553493130207578845472848163428662179489193815413477367011332341783938431102349190919034518320778941707318598980127677410395705506270818984972450357383962663226517679124046749740990763009618936082254949299368720252334514879510861856771933740298438441067574659670391271857639169536494062829251274658284407114597876440372623942856199072975121244700092090714243863685978944384739714110745583899407970049168821790206699520138652663642987595925273871744083391612772595055057565744380455330502873759499702350467320095918486661144840728260007725871270002300983963359969733206629953872413104440669654363582293893604763455066636932488904141094374683466702414382657328415166860380167793928377120241422842953842910976796898115122632375291287405498497909914954100725877883844395269526651171507049776383744097739199868135179404721951666992297141942123566392771224906445324491384360871956511633244247172726446147242799365611953305923142647322517634977221754399679480775594494090325735026488958538343250118111376523301616115212751807743616275361731690530313014226723786821137783520775735682875252492091895704074502408673480807421700999030583883710356053816641698862557747404930499722751496813861387283769988237619197584477120411693295717394170480974705421090586165459269457992734077335509425315372467668022105817940757902382776524862902509764104687868750171933760927097133582428776951004121680344450377509655182319044100899006994633859795080203228170439717543575845461692020663552257491315914893185387464157414002776461479763018479728007745954468691544668499119386360332992618353229046329151284413028164220985996061735891387726229458197044884344869787087786979442801279199521536010014437867607061553394213545762499661057499511851086062677791781085142306230803652410798667367471411044657131658922068901775943583326247373876088104971294793229692871534041177249525956830959726078662408669949057783797102342789744905361886559133259544156810599261344116544329881373895057055052534766865733726711950119587239566686587454813244646649165585620626927106227101745569194860273389452539149315148257359736804244807640717822869875850408034307774094877596519908589799779126655824117729667892633593703834577257693494004700660725242997145655390968461507517205234053237478193561431750385512881762115622778541706893971229781560312574500473149475178484075032322194247095523075840042995343818760369275432489791396204003349350457762594478673653014806206942131281931584729572193631608589431434299397160209739874774727617817270839074970143291219239926969244460203701106970312546906387638900924254309772808295472403563647284647260791888447759953860259034081252829440450032256463858424198704643224500567279023134446649685249312920969279027100798082179362399650819115455720639055320816214873865799438781219920712808668227697153347706661007382377878278820170214300373342144779918466931495496375820761145011788800074498709843893534433940888452089465027328855996187354076910277083295310401675814782816515412173857452830835820806965727390135578749010081864930116831079018501102185508514274179210285552494283105474785023016369200030834228542489304851048665369440015096776566291184686390444675524716484020520620115186707787604777819872665810578619941380695013400118167518042803081295055311178813814251007477801264039512342445659270991602066285140200295563234155486930029751551016914514759849069337812275384006028842783225348385741453112643005525324363953761768131251786499188666188907728473058212829654980794936945932616887868603882578576366372767436186825328652330338117891454570366001821425535945559318084267230339841603258568147618950845885051607001803720356742378438892792603225286632574104894777630633685873822617646646740492309736687894569937913520307163925183810478239546155582265827512959829623253814924854101870958012147218446786575672311830209154692826725938614888919548237304779680317654012429184056497436376136263979173814770675541110372118375819749563926240235654035096537185860374020776452670007710992277743100070743328087679362155613304569891602742772804331044448691839973682033040932970790009676582070576226193084827761193901907528870294505512948655313144667754644626448089976340565821382203037758496240286941775403271724070569197146494132276886337700943101074466831019287915778407071451843683069591098066075575571178656472600429395394174855044800727042224040957188208297162622017730459223970924212193661730012263310254817171419032694540062931623987083677209389973692248384684709911137506418766262097209517074389490350804030468647620272097212801937563478682199831762970685463437444819936440181269727380368298373028275145654548489160984765207265993831577985590897232423034677658906987535215943395050870306621856902487161767639810131398524775139835711655888227362279756684506515717884552326457251672098152727560836857113029328779033338950553933217822431202585778063863946547324406698493677556530379999791416984360668028376084190024383546690470080388184964394715835077274144591178157674087380734050995505672375692715514638115208071713177532896438423268754280228042902999662348917057901512302685493430310681365067635538975256249224082535220584992466341469908547084826784567560689758262881024003850806672721015375159263033356794859183892442369815575217452750946377973038533246332002313791838548002489999045589051647381990393084475569339602611097395227425099146594905273976345434994375556494626990154819848568807133915727853925469390670160299554662178710031187415109157992040483868152158692658307465581035730063443695455520081058851547906439842423284998293000782771022864227417446167010930950571141495681805380219487963387817906748634884676707200940208395804604873886807355458537238342330707483674374309277668667408051434264300032365804634339622991368483335298952314525844338128209603161002782021521757617362205326790013553187772433111335770276621223502817573715152803343392134527421652195286193913918071578658225179854661241214741139856326307786426399777465841619743717820033448655000058055462844040413015460956678968519271752680794806662497795589652756140182257241813634294865577235670594445424361328007818051733410150236325877736530364633421908008772386698216764952394254726090829036131338131578577871567395070732860865599729786338451311152660884707310190213010617048190341986815746250571724459108392739148192984890466180472664678402500941888452071182389035316305422932381342644193129193697866477709524952801718555008136353728781755663761703806465124050054021780892303688353943922387747502289047239059397886715527404692526420916173645826623724457400094469674591797830632906743124524103249845473034963659772057967605405885320170808284864816921528170297484017643258497828082720244544438754669464525008859217446552647789578837909288955206927839416464954598962276006711456886169873831602045965588381930355462058828058675522407796493527606569027644897380222850511730738312022101690401264973837557518184296860249759764968649897088270610522411648699149294284202353823983901628502731665243936676111521032836114461144974182787404097237340321856296492422407576806104698440431840631804346863512366491751986265989671328452059792606320255555433862010597173630167864701903177713529044866588963792856887819330119860821709654421667485120098915621846125796628097551625889900988659837747970961535492787101992406514213742991201111801832347012326819145665835888586862430734929851852118725694554154580567740644253775782796576741002313886113854640299499425786474051395049530679964579623144801468328518723220740979367550542071132173446851748030467891390211069671128746085818178442251734777743252791759961768176241959210832106799455927400245116787065576957756822283610235843573173260575478531304117003475788093091391858984513558949337926995345510484911255474540142026562380899910033914602185063383679613316181222005381593682207155829797040231103809699065182420555657208825561406807876543773553912195600492029343395931253880065001220942682494446318874629179855868051437228316956982053240387365794631891316040608805651557837440048589618656452470348020716057136656261910851366688065443725692460706969249581983090137717782857434546047913914003740116063920750033741108433612243785900402834378712728967704446765102733121714388493390786958751814119026894128568734203362163175299705370193708684117383401071004025314219628072648519190213673942872702670258456905168378590785095476955840790765446503336632647216425926736938591101822153500115430557864104078623315276002572255731417296944089560273869019426522397450092004511655946331290467359532907251698819973620292199454810439918598443504721780133248623928506050297050461193156503747859564581727344850158836729260234564235391974418234268265094131303580997175454967482085623294748195351577543723816868494270319254570465736685255651625453035490557860455616937399496997075489543990662542423871688859436642978801265071505714904163541769233464649623114106192514342330283386909065266255518523106234076228879924501623751555559910243897327275590039115269655068515231153246331740047743532437275724716854691979044298104064015433501851979579027553197753728285018071241033558887959976999233194930078898334525055544994429857497048578018173220368323531285556310018685791401050191393690024117748179865297492675879349844664182313821566632856099832319126594404761527545501519239611995690937610887769257157299870213590862930592076386310522774714627499380242053129173501001675096913870432277588808185341664706263761843657088648094749598259411187686674816459752861834431544013817482291486848326932416524712773991603726684419408911681182624854979412593288435481377264271089830835894186249715879199994991523992966833640703471578796700356033861339122687430774862391461311920207392173664851054813509558984758406591209660822066726202231483991954764103544841876344019951491994163474134288433981683547384179986584039851743890479265826114779089346517071348064456884179312646510035614140743725381097587913827177000605315024426932384299435710868510193551197369224195580102783088350627234448888278661014319734621071999160012852170270629944734134761976527434401103913739649319329406698804068435465695762134376972412133457286907691735282490437453396892743785866874106804674943271431694880427235032879146079275945469500252657293016172596324996075589384499242699185087066691444424006821846322386985600715905138904356014242747313039591351536096556369539772465011678759082807926042405947289187636460946298933085978974899751471747691947420492251484903489950101847026349906156658932558515767766065816555600354023877107312516332314538801508053043335627084161604322392364798894946449715154255751521621847975554070785925248944243560402159904601600444627053140156310221222970817626862906245736573259745079792723183959594635771031962960122007935095356911248650186933019143043773520917530015276872149875737934226545440278568311926475739065806231002101577134242901892999251199316086532517257163670934461723718270623788845450592808906247548171654623045071108885158398061357563483859682501210315259830437239139249610851652026354911090820184810654359982523508147655225320366789391582501132922625294326176716687511059088112153036355604653248791187633127629255933866424287244775111037529751321088526813188066369440570245812133017538448402497443849746193849233582242198426450125924228594931752803371286993055324465907293995523049048460734571912968897956742441442070567387688822001725688480728012573017867663411504295302798227203258669371842040906062710304530528330192585625889848068536471702913978663232771934416000210845258561016727438355233632400991436174164997847836938936374204746384322868340119476399959336748385853392982589816660239748319649697057782068821890594352671174765706789670704229404090387094188473921623155074884284397341679812167061242445834361352847029213720028470007826214720717585062605696368415508238406785822990778297379306876307258644673053622244102301325402663409587289824336793696701689849710215286886016556134446029493226750966650548016196947442979773552687360973848082084301441927185775007000007777421288112342788980407994696877241549627291628114481992998992117133756617235420203949016918577552169598678992500323812933628666110074798647060663009991644718110804949973331809549628987579402214881164570349259860755246625524745609489031505246659535612828650628234691459825053509493334279196212601744484459856904699899223601898225595046045318401995952575255310493466308982815224267777637007930961595698750996607382608900625547355878300699637354691466493089357250586371800332473528662026447775275986553863233544009902746435655828536116538848723616248926640302349686364166682385535674592432642384485413595897947851479045167281607494816194031765381014847773321279416145214914094909409400437274549728322045818529978783136747929476380397571424942068229656055518112715845948645247282893482542624633768939278528314055965554290189699212294883863654568250357686535713705624143692336219074561518483793233080454743895891948067014040858507158724588311290691728043568134778419673639136993150016258824855976336982336780200640927148996716454087682821298988954654061791080182909983851032822191750256256772417007223040442014632629194844298468536830321995359756929494528985812938670049815946659181923110968987035134448576639057559205026838124468409329575259744158988172975672522651339612193828706893478630848100908622956968172567698364022646513163412937326701533038736847490773836704367363455826775932728761007998434509077006200381984516243518066775629894179074943442155232506870741898224650590079942754178952126964712799377338769810378109260997158134954815496287702235783753609339932425860269319797760893283975992742676868431094467604489942109216734827426680626624550223539674636650733770115176634183444971374118662081415303207412629197601726690368661233331481619886024392443430460821100590198150915638221788921600299342136055558290118929662140632408866179666933519288375480072628054436802971409132186649205769265652873597873296933929568397975108902682822444012399949516595213488631798420686348516422220956925015645871077574450047370750069271035979990803098709921206820919387110699820279945125520517251712577241906070068978634465587116593775788286656585559897398819253275162346896279851756076652915591430815667927173429817473526730182686512654831480753051508400613363820847827802883343837349027526582329643686688380523248206003872545694636960941107935053045296052826445722806976841117475595887733335345740417965103358574373027816130705814578593289430531171518833240729479390041363332953421561369164719505350282494184284122863703760510433208365345110971908865132629310954173849099855619693885975820197146507723118221657948371391155506143918185866365912696491062332068515342633687962829889949990321603331329481057342865992681472949918013012801471849381823009028395347976634204385546953864584106327072873026363616147810145438653192240699255139764957665568972333981241366883837184247363219035729855708708607410682650231587793991662232989952094665263435266246405503197535046542836801867719846155300630226431497818041546843469156649290800302296164270124314800467709285308434595466256677545612654914529168010643724665346936436256585774278557996232260724853250086937234706505917344494941772393383434427132035873975169425895919682512100723545967037316376319925796748721743977788168986145417342607816056443955906111656697368577223849015695708661448967738830277436412234856753465408130694823621012362432940058443779237536071730967798263530721601298432172862897670710135988788532319311379321878460047220016187453296570770329872826028165401404602902856204598991527053310099350454188725715457146353121027056196251007591403137958433853683466454314706757282954224138027723655362760006564164390624702392806114436639673223391644864076844402192663372234379862053707809930570197879503903861000100723928334579696990610670521723983063211123104634914071344249476750219496082086226817407625573367223646750494515858298224659229807088968507858514679204382738724293478984077452041207282701757222144079272551930059646700710517023503614012539968977521059976697507014579300051191690430225181162474607282708981825773951327084360490094750098573839130789553391938748079936634352781144028294333453122713066414358549530331177213758481269933753085681893157066831339016100337771354009694377181876252991291660423422730205263907522652962997273803815286949500772069316003019827241348695321647079500242700275857855320627217161441789072774845072959949585352772174613200935644169240223702313957942171167098189304040900048905502960133137578583722219124277493536409270927558262375072617304713185754845238461047015958540381378915399120478653336944142190604714565183382218646290470149375308944275766738857115438496522684430122767538538050543980680136707490274438314299559401107956906018762792276021120711979378844504559006871054513773561846175594422696562226627090674111018990465468784790679531284146270145251732548201056890622993612632975746831480091825037824231627696156657809033090717913717417993576555523614775900577786531505414609609135034325508692360951698053646424993714505080525399850039612653266100693022097370032803367317869198299113325141902123876168473315470800284852667231327109623080234295349369013768938230801484519835312372268660443739664876897138472659851170194575903394436194954830797509286730177276916910711459341182248235422469487864570528534342740495319876045332290707793734791568694799609797019591446040705447268342011802908094275837354369851544402794772793659290643490974808527403710256649480348107439413281359434626170483162129894936942785433511390698041980691328567247312272579316751908589959184171003175006684641846915433230981097964850470495906284913566985643417392514787344438170729173927281826368916272188973355648885730905070888025704892054453927458171128104361720135037236664085557645659260295858270124164248769748697951273803869994188548906187996214100990900711573949450130213727249227771595825287236737874756859019836770469355435050865071525325717776680902002776694595074138348932898547310306199948415297098178342027108360981878131929345089207724160806698193571050843980709032574720347617472599646942765430169211801554798749555049057185655557140483153843017431236715950640860282793602087550258413460163731590178717437969165233078175852527660474379023438563350973454812870042560591436077188943048381256757832483801822470010364294350156869310818905873555538519010560888686607358279150004860759030615198058685361337385900547631656007605578293185337176680292544247756533160261068527876562320573266270583117024541789970598164642913653223846077425955861348077988464105533998792598074893655961311718034476591751206220198391214772398181339978018919447648558419430150344673273115615630559317918020658507492918126430480464656639844238213810900287518101261793289679468877928880527116025521588070683246854792379635965289114356373886521297452713780663257861355849226452685935196305712791399214468948607345838567522838918510601736218361241119504222587141096945893277573410536465617734951955571584247016357584312795772316967478158125817030010369363665091153301856874222629289009385655099129965274648419741875901672142260133206588644032099046961707694232000605853307842317136078729965408728004353524359315892982649816406569499223620803267828010485752829471494542705289554074818204939835142506648799790975710916805412950435637026379004713727665767795378492775978202717757911039848197556405892275978172132042455882302227845378294584216007986226645067250736797128496208879627714625429374178801598958010006661871491129697261013421740952754333701339514680753091393339963428449068675529763486564304566625810735836091673713897110940993892124056082422943875752006250507114682349588244408188709080295586108420823805934568200446158036568884604147532530344311718441127568359849236791156190042943375535026949966073679500639788622880364133880893365406739208631597524921228918926397807801475295618617755799770154064320936599962053487013436063371707502136133249822378292372898561300933354514452368213459287214950063482790982724683042431250971267477094046818121194432838521128169645677741334894524965566087037121813632763903236643691417285529507321229201016740787232721083901642980158808233301489692241382742644903903754776571029886328158992868304999124775516768135437342487752990473922988847704493399920182746212183250992150887942099183399527000111265193174334406264656733243057134171184434189273680850010713592557535244088099386037660469586326951795362173256880407386097612009525313685439544624868081571074520876851348060298407015906398389794586365916031829557816299114403598726242130287091852749481287098713814545253932811709264124038810039693115664784034713212702172459199912465109287604668002204401339724152162426668884973261106839362087298186160608708520145723404847536147098489722815711645581570678523196923005631256693093608139604462146605339878484892791258733733401666658236570400832639025864025878829258027874736755934531919474098750148571988197323329922820186366722308182658411853143825793436365076668011299219563923799623907091314611462570102221155909802766976377286854676506624499744032223217121636197475305625396778276679941679234855209038688036332203344303866285987812841948302275450988257738135493936857673604176462610949693104159613778168882869168250372252575827513746069447495041041708461048022889566002203871254085678417979167825024126227565037858521849891758584300401601463335137839950223274841932109259665609358691942385025136956296280865096179928791869122876968692246197184594966528861528635967589138966933712419527119550181072737148873151925602978793142589341469206357540057852619507690440051923054458411979990224592415637798293561247608114030250739416366268122431275345610474572702001976500277996163630828943980761642757274508834673775098189277140341497891670161483259252110943523276926199287703767858258960165868344955065106920786188712548630768876700857779570471779243246831332747866309684171472941183000009940251464590067959744381305780096012855414682567007710157329162213781176714491662311494436309087810408322237109946713889801336480526978533720640201497229033229324483782323767214731714536204488693814127413331046538934586481114543713431567316343890925193549012298912954178562797116445748300700896983566358743582420423622115880217939747294111039474053162546216269933131238138605117037624503586593148055725551774545558819946736008732704417509341528280918569219597605841376302473620624109766355993898644943445555863223263341133711759095257276023254302042914503411424606978803908790298158949664742470471064376586539603201310197872928981402613610953517243542614814767707740131131081695534005110593626326591728108013023489416514990294796026059400510794600844989640548502589790753440121602150037229960645277693610092158731615169316273765542598139099069699696441832262875009462864899196969289897971547032691042228935223171962918537381964548483911707332034590833998561103089023900902242642155174579665391877204717188511711796894146999841184156820153466402509184325853997954120971080449687865392095188008473311930555632813485219170839787096628968233576863492791328733504153541099459174228923735881618875573869393411693446773289242568548158441903155081929798242469883442628983620720333236470971478426726598516736849549140319403191717709582216993015053896240168240845789055650570061449125605238922303575638071602282607155408244988133964467546045284154988753107587897855772228530404242407254678887543194418606088554037526152877041850980503960230313739760047233158739896108227717656268896820127585416316557463775899537105229934274236550841196126242588781504249456362928169114095783720855749699986647460636730399827036888383661333094262125739245117963430318654027094326315559558555671243867397355861195765890221893359607347890258371906726580726827351267580085086156097729618748158728513521512447733273564967081486556079968015038019941326845219646777660071626719382310645855568152578767511758178901490516670735827574578143002248317846614449306532861755109162857338217995499808630407717191103645334318230569661811600909913732896073000171317186663725637865958270227696062038496651326020016348429555301480193241915977024353424301456033074599081346323860877644044333983344070411363621575807162403159356297653350494012686363359449759473596386751841257653307275954274095737829869595806942914863466762212969355717999032565490225381372951503950903214470324359067944614377416464559376687804082094685146916062216541718760462992762946111859053707200285452630584953892013927805090566610406991885487817753746556800982136532701091451445783589974018850909248201483829854304072712751819636657913887139012700395326093986024676460555105130760035012275186898697459303763731462676047805415537030937276699455925998826025245915278834569711485094873793488712179596872179100617901917478550297119204096186967788284819391764511994779628440136026053866775130138980237128435841882785325400012937904615994034827318832884782624422739137713580778250487097913473316648934605434126911466976389472094652318583273888207300166484265351702500454940024081964286495015816420122888595502154178274312761170069272216401914856259502666845074313954098243206180430646376664162223009904711583146297159369936129507803209471152378908446980094201229917564335029317305329207719671613313185935076125767413807558293040452970595302255543388180716133139324964637956433308240109790285786030877791602880875937180600322991107001624158717899598147718707094681518698694770040162913851698563375807437618982944336938714126479785347994825790709441174596322558812971686507847919255186724714208989504974939402352353733798669279423495732239634686299522684416377783166039814810004342347707054593348814259619695604308031835456948639230506111204957354359384217647850900558077129110803223586056030822574189186409316906262463966858572277682602820459919502117856798683652501668295549401942345770906307333758915880250078197251205194475935652816371292235569743141067764250954068857094974291759576391085399657395188274327117250392868969709600422788983326184811645371253902848522836981077890984043079236940276365431425680244520069120032562224963063140687547981811889696697634933110934057936812512286280031262335787295016004943114391736134333405686333682055148004420888322547303012003834167397846633679417442699706748850491896958891237225904451208202280869453683921981178070078777198045786646950947073446930251661236440847826542240472617571285566053071154828853295851342644359537621279461904676678793149741693935379760238609236696553207675170766863941258729817796256022670075271350147121123193174652417775376540248675165277516525236990835119736348374481996215228094953490131021260480269553731865392877068502659198934187082439360006033679442063546785889317306602819414902101324903703732416262422215490229407000919528366318566183752429611596794787564534108484382956229309708113845448396485060414674468093412894065924801241643254051759547786425492157261741616043022728396131505707746459094303199382865192912074872847529778565373861039382491708250081609812799943055092691276590215801676882196513072350659252037226673762819391402362351192481704678575095324959639574722594841253710465873189060208078963874356900573989336302753817203375994841509449801565322078688421774045829249478614409343186268259114716087740090586064901752025110475055832498913300862810328870838057735984419948600905998638202079111742419360013565789006223291576930617292935267741136880683805556651865076288790883695700764972628952150304131917491370571433558358500532201595570835356888941369609497498674430471017558629712689412610727916958977911409819611751767943547931629884512456937530843174725265011655253149483592033037115156833614366863645208428654795266951535311552389669003936434021233271054694272037699029549191415066031864892555289533799922881145673784986864663424602546968654071910420417715253244615763597550235811416454555330151121617709834114018151081034102398303791223260612802883721488895617800691329397830296491349126672565452938471630910853048667464245227633476108199085144463716202714379274297605634698120335596377500836139379473749641073238179249100801360937536034630462434897967812745879454898629569133498795190438978044900701915290095728262414609543002321429841691044892957437632390962663533058920399366476843176907770484905003474443345617551992567419347015229856497097566429073712627763962472951123571620147527383848530710965560544407712363917843242462541166501033106417675667795766625318887371941227697646939827577209576406475982059493728559832436018800503616091870668305264407918494076826222383717406699858639332187507529461388976721551351173484596613890987001721810120215343967355976186226411758237796934334233791622294872316422173637606821300191609230850542259581505156316647310902452972593040638377797665384250730408855762212341412553458989043679016325945892326008766271667533452611804933279900145659417526919069260094663500715122218195147419527479586165145006787200357585843676850431404592212702961084799569355837309765137939053850149621019287207612678720752190505313860985433519662576321239332232413897520069635245903420026882434432496523959673387602819277360762607388736583745792255665768997511600481840515709887726638093421738608329705596056637947010303027307464411001256002155669903582085593108493842714552497682784826973667467837559380702328173899136597184106095233313519152857178321322833431074361632412676924921541926920046272864806290125802787390692969272020440068656357079342224493186364735642976188374850697005175790598535649068922247203321985910217531903353183359531584128167455743442027693962882084960849325695279116569560853062013033934971547014725202936921206166415147198030575631814888655274617785563980274735804323399861684853947247489654454229546099211024934185404822447283493054177322114241100936676539268277756597777191258284989831363691069232248499820642317426480387968534743666072912268497277334846988465722752058988485402329511345106668777434629985774938119029870153375518349794814540614271813827318557376161641278164904832502140784925769274676364415532290230416390725536824749885257074872219019909390564240840752575914794541573767048210478387623412615249550784587787599718582571055934862119759821163887417455888328599935770079279792388792868784133836001751914455902558822937966439460614375242016072838113971879048339386511702270082389182107065923104142355669358356277300548167309317695183688588311666881438434778967759497601254704477190591264077681088519458253240194060922704859042227451314917646079671260509401673666486117519256091681179933488880362679558042228430585544736193946548001617385409892215923875345361460560747540905180825976777793821396248965163851277995887105576139338051804941969287175366151115341278439176714635883362690788648729845458201878261941532892197354979392068716697118405547558960962250678664442837893386803512497732603967166592036678065362673651381164132474554510490689438941407733444979233393760046070988640667428041127689639008394648041812702806264388373709630633026587388423435458065987982812668802336544798637387104848669113980798630448122183119858554846512612906219811737781946131882481095038127018585854580675770149045967500074237222067074788913719459462144543507928278811607298277559986086932602726611787399434368837821354640298791798511645956712795137697126061671214178200464004457866256027720332198066258087179811776956214872087568475131010352628800882910433525219938138855607369907697315367072347952280249849761236499174004621653063993872008572440070622689467985577284869746596975038405287333333176274131663764450166373792178896182695175337700122738984890917848610728555761369393204502235583684032075133581224197269874475276614738109342831343342477729253108756136916477742609571133532814472690638553631785063155286203369357819920851920700995866511892072834526372094284728480901932969004653405925278678503107455028840099632970454151331032259165297801865079530119625541538266451392119828758907532942375056048862651597187491900632499793314762201350983737938311955004330543094283126243537728432780158976571113950107342346999207527475061709641018156837358643100511120196426921862356520313405162001807560573493691394565010790666505534238202532135740517980828276645794486278676892378067234611513560891696504793436491513190574903199516641673004370143073938702462643714242330783896522818119807969588172330593308837943475739928161147597171372779730476302408589669827797159243296059320138433223574759296686556148411904579326005007393618433984947215003125065923007573092209538612935281362451138590382755676080599794274323378458005296660156177607212758444973425819658975773127222875372589893337858064402646293404609325295047206943105588804538425228012251775015473316985241182826002618123278063776650078394141822515724708603356308769364636313612220537262687148622263216004439353656122315441899633957852042731204990836177346353844080893262840966450323495705372994528852800279610135543396939541283205313273575520041991660242219996935813606731700932610534623162519539784616455346381844606778878935624755781570214291980497111930598596589305482171036281868239419480874960872564970349849402032034829387018744450619028019401152400017023775923741190000639226229978653239471216434960894794011090069176016834361335893321585798804240707559350939718363846761158164669635779166010268113000923643530016472827649327210294805533152295295764759548106469837182489532693263463230188872881050635144778394243334196871585913700823993520264257046588836673430402029016388654296483318514728441074724106810651530435865599864508448079066494415129104600605509194685461037884655727211794967083694791363823210612806103523271890054604887961968846005882559115965905414076917592412412763489095838748131113466973936064307669329918845939247512904271937064152405242088485906996965586920961750900407127962910625720493401278993438227489955632614910508787366558519042805186305817824508991450721885046426958804740596023134121426588354667115451848959806345462589804495499730528716655087765192831172533116220336843036877591886882656764796237730672493317805461952681726097802263325185696419966598207977918547317968258644810774089431386794828589855061339316317047655123063083394913029293348138240452325037176836992724767860276577668743704188979083883018344505177884568945549608633141686742344317239295009253035138353468834144665682877804156682809641243639941795702734872724649819465373081632389423288578915118439376789614671644160264747270531817854694079364598227242359639224479167456531683511615252543831948741439992449338580554332106249328597160892780221113604622295265217541493630420352760916324043003111288603972391433347211131019422167909673464219536550266608209112399085801539572448239406874703621081901324770725173296695574295691244060532221702883663893985254365574421831173572421614484094858584800001012660061532103668017191465941827465682189140319467964375626232791965979489554172441342102490923660500911990425824792122002922121981184333712974235559916855332884802358159783971164351012869390607818768286603473028538014787772789391369844863903369068099697611880577342056210278467621710691899163250194445507721063353828766698597102341903311706732007158897018828467045490363850198840835768074522938207230430354519726911159769502864159704203896917630993459117375339888179670150715047948274248883945519245664314205714905583993306416159733790727242243213488234124889234824497349818471810011068333219608677167701899775517324421934106256178979149422095820461089189525801930387080067363867370985860184102982837247122517585768504297888744422032389382242767379977985140579482943522807645198185129182554472421539158952088275409828266873723100566953828275494118859479157820277092084004872928835892927428533515542614692789253007329176416940521008559804383649067948847735317158737643703147693189186463563470950003292555849115593939597571314292108116227475010222471705526593925013494292960394857964574517560733089854355493362140913262272733525679070812982646509713007543789287979884920986729001438156206248260346495661552783107636674555535690736797286598067461685569163018997400423461792010283060592544903127938025678468361478786059092534925718072385064594129092898755901814394042181493985120284521450271873935299561807490429540388726582538352695975328442088115855053635012282044245562059645220512603371664364320803183566160060050606527930626374248224312908906536861662155825467398928746583394208201954854707568409987790525098070292715698679598366382274491376981291712878184454971127940180366744515140270724436547698842255781310785041742101559387046318838890943229060841039992859061430835967699874535458107090495337744837625036819604366029153872950228022285201416231746971490786926433890225016833911639615975045911239009187837151656836570911230497876555509737786739895842172359817136558522749868780462690313498132549881681617745261053793724002317646257662085423946069446707715667110980666341600031560873812284411580791305241321907359272655685606116026912145122672073605605830930419907528235283385297769487372913422376222625653487322928431380924182729944991746229802113504224336124265932955173846987021443188657343987810384425715284196708110977458674874011298568629438191243388709075421075012105305278438553073771548981733209331199390767436940551897285208089739116539855755886169332241389638620541642008272604593349716321643986879268218838136743239434054314844672602431309483126423434256805580481561069731487791609038602194284167086415670442491869546161649744613791082337092145604387037676687433980890168289710338386890407371960723599430619275322557812086727772158795419894584291364733906809128144709489323418017408461222121289375349459732066417114103826993122749567646853886509565786953219009686161089151601545909115935728224017567345186397955529419490984616206221396935871858706437741950352748664697141211663202195149555700965345697553421409808912879355632858395037535972370381054443177240314098309576123429136555169926464546715510697144357020159953745768290999831311286948876601218165528748915738492263664019600874100440918718761533284278921039414564254295157495843117592575600210158257312445670849308412568340699502707259442296795719292676627993986423649628787798935814205956703275921229978896501273517680273894995303038866659100629136596523491619293827229634740930826672992254980468340218101038914897071189294184626712878310543987758865085710206311461730802349257547924081216052458283287112491998234971337501144938865889239852313791460571803060233787293470185080194107601049844506683504003296088264135466515095483115857631542315477705768392232745953838439113779659588235748219168011643634018570246979898532464013185476111899004999753469080031468314437198332735113125088980135911895845871526835453504649635359943531784367611262834766952190499050337170923939807909496905786023545502002507048884067264264502428647948205117435138600945814282950931554927071372809551453117515802607497918937301018799016573508963082758794808986581257989380983180723990890244286110878385650846767726524804952075488870859039250840492181411461357780724264726955453869066026298134305392442563659231253833661026035949202887851355003624148530573339219130348703646508751724905745171815108224377494039074639810078606032329303479802527196585785140068122812458715310077562990908016490069605473937973631576276232652689491500565193080712105103655039406596289209812168346865871592698970020613938718380814915749512594167644841456819363223559181945920168408236189722514097108507301800749231682717853917659144949405245328573952133503895677097439074742779727726117799154759777634196186807529618683452783223358118730302420921286395807725682342953641704809044870034870494940283085356877316201287238483354716349975987555614547910059128009351942259751640314427941847845430683044608542178726539666642452443167903583423423296050973954846086889251374269898178397030703836177868944986586902789453189136276635760348295314589549787046896287985211194875607108288490769593650252778491442351427197566401524848331712170493510997720807966169847566185383245177912671580231712791599807372299464401068371613384324551649594303470153417607115494811257481321797142435586237867122038399669446158641870498211911038584350600263576438625989825075367513626225026636605236166065203558977016273628078596089742924056545622769641454791825535074119403055829780494694691233312861256877487464059641149723565573858715087834389147842929623976485542769574921729016930915898541413612558215619228846160643888428757947390929623945876713199739219111473715512743784664545236782992296020708610689865287307320719898598834634878948312764786447879774876209349245910736244154153073725638153325657031867206478256277370911872024011602325030146976891884291493669493684251967946603442524592913168958700093576885657677513685105043707476871603796595272782266838087561321718553982893637303974121433895420584540734882658008203069993526064138427012669727992881774330182934540494501058349186388878675912259963801728268409580283194545663256253730658952952734412057552808548260419554853110713157708611486278539781973511209019922817977329499697323422903903201258403415913111283347773758233245218701637266710428019565818880882086964624929710643238051077939774337112204746417175414891205612769915074317235788474942067185601726041586182503290503836286926449570822264469901631877518336349337915894044835833444516888896807295250983893633290573979736770387615931617054638865471041469443023719713510500279028782432231386442854290330768199392459582073127862436019477069996860034722686400874078300801603130569239997494817753243211330729801852061688944460673586818424091092677579598981326141867948750022986808496968959338504219850577358384949669620843261561516055799472008070088012929792663017794085990480608909588844797367388189360945521503492762988038691899284987196648373053593520692435861816547650321110503302983230872961427622106520078591809229900551227143140171479263717052673562042516563759077915118883822725458328589764650643605257169400268790512193251897380180219054860802411667827952737867283077309109958889045384832787728740989916171190417171223508758777033503146887552391230863569224525422315539564943363299979667713775896772484607543505688219349770361251669553646790275967980118526074989825885584398828850704837464427830318343344089253384548352889578985046000498701098270738364151715265590504984648334988649359155998155676356674272039558429634446767364011392873857673349457842197204856953134077720888219048332859331354270003217850126868333306060983326653653376585364511437708452597382117044897522754394932107281726805256058360418728901944408529037410288741624456835547086531948505976002076032906647149169154183418993090898256567468262277263122684492772878296031471849267208703498062838027594676604030213446569080625029703116093693739708592995878068148758669559247240836637094584380717241316331063049378729681207063173988053461126910734337142364063920053717943773261185050373225694708654327604072651831513553438649058410111663002965617163143409700810472936030511670941219909111989368773363291068938836558740502692098295936513794568853145299587745068209696897386613880672765938491187200565766010444574677309576424407446127714230433295958850581306941304701089827810321727343531456013696991924999831037748903040333696012702370225499338209347907798972314885660995303394028721066187462679900992837388377004804610772411168496147901559991776566035743129448084898324347679408363922825659503003716961092075408960969836993951384845513242189570928372663103956591844491455528719147794507506747851401985105060842547100829074464137146649391815691578113610364266856779804810268918146727933525988285231666526653965769157521809108372086696513217493218275369190123999943566180569429847791329702900295690955048664400044220701526644763155488374598014238071242843032002529341094258502335547003117001972287297927147068185939813497024233386655553622038280084823352902052469565130710025740794849814099555872495567726900470152307877523458854924177232011148668921198472529792235436100051957281788973662285604267757564912147676030220337696960777816969297914648824757939927201025520206075999991102450119216707383581327033951035729705470743503692568172734437670204610315980988414672377794091279359755487369007719741643320711182564682789074674511968315552469855705462966825732277314443220405163420622039252197030749886314169909529716128426707449797562159230225099815236785040762790875112432246946853591217152137563399815871113491609569152248363639046840283366229324565712767200794503031843949658779697269559293534949881790327807723207750454391670003103472094792636655645339001811712826827607736246718473782866385758350949943978451519655804882558396623316626635682547741101025824015834674838878270460063829145992126017147401365611935210568282390062205338390472202003817636423379296933562833895539871605905263509510131644189289166227102804061634344044836887192385984173231465151150002554517805700507121732726781109913860145338681269258828330207801042391705273124483998856679836475109178344867971485260612895303345453058740874093897691119497023907949355505057550709832302089301840354897073294639720173865487512244353133121218413326672985851994224021121103005132728281022453266528774343601289454980607204528724846007032293831644500501879825861852655742450778498310540298996412046502379805056569198764732554912256842011019199295342396830129594432417658671258918683419674167501858919955232549448032666115649108804239011115018226229531108996644317202123557882701379686492107666856947505534935829841688795852280118790772416786098005578416766344420242557885270761783703090341327774738809744503366947877914453795032676111968758207571515378130054364719105622049867304307353444031503547537083948733690938351622648964130084998765916808607588148660903851231131643862211473193765289828147542769457246537838063563755083192942724004927148389755089952458885863474737082507567812742810184287663853476676590739367482728652013299822654387779535043399600990662463388804266414617398982404837379858748554368553808236408263625080093289339274604684008584233657309415271059748351017439944105233768306894914609667800878685850794156023050292350722865204680979211095008346778777360116731129606069231037740320097640288321946940044825141449579367729352936277633469486458090761840580428195699461973486771977883274642769433797070606574099023661485275978314143350704066446030995405269932709259236841347933457337954415374319589190079026800227995370512893595445100340779891883453042019280335389547937587341125391821021992065747620531085082519513330779560604509143302899080157873203675620221128907651194139746560416208174312957437299017631666771428463229730358978777887632842343180443920807687345959074815640407003242539681361866294373677197851203508290901873066346122245832692293016621769560453630019504961926909409515302476871266214413139110954330683244475730007055582995506644094066031351925877950757909903493497027149770374225605897478676590935707499858361043891128569885814496051312319093864049651828199124892960643014407826493128396542513124947052322788751374028173589692011490840109780485979694118840258335101953697113067386421561365677324818684180710844185313194151890398264586079599976334793983723912892120174415660567906124315835705474926806947443347215623155026306291151307327401132138818346428654265074077887708086850703592292425675958350343709330123252866376034650555461800775357554185398782250232910699924730731232016878760282307056641053253259084446376219820389218410598798486355497380359150275397775003816976394509666086767571115389967376331763587539405355913434462651534040665218866045041663038825526189298316005057028339618100785512144945601527362293400955861131776300408142590289972082817718971202447928842327368864273030189321099805855681649905597251609261830997861634760344405033103509769187306549460722200188902871962908465818707285121383858278178576129192895248604485765200833068113409412093679475682824602726273207829884535746822646094857780294635460378842323435565548616137359807030220917389261615403822958167037206281250688110554696388577835233106584038128417120057324731434977887994071788875804148299192115380070876297286773260962852401173493859984116793022262459410581619485657784225801055413407800133081309324246408371471322820457523441238574751089783476316012739387955261425742559357803582623193744656741750943757228556161078726350287695260811040781871258217111096928247379481131762091138668532242050759833906104937409481179499404037660636783991168192950385962612138697098657748818133184620816974640415387156608672318501934762735343335963207610385574229923520288498050975093840621318429363526317163347208081274507990623377324266412827293234046800724361424825570686666816470877486662589524833620257363254392907024190239118009558587544933569920588071348891486850522998626092808940052232776677913448332553723072376752546860693193143062022082162340049463798046539043243829812311639232346186023366347715397687870651004208361068233618937828942475709236201098320121203626549518705994726394722267190825200377657399939533801343938689696295656133597458540343505435021503324145544104745235131106831230676987144240998251009772361127504600533898907633424437410326826542062988229457439876161764620735117314210060546943137337743167153010521211474376744304248679097018386125991639662865581091248265951745338208618915049248771522425400130625105379684046997450946709228334676226144454868101173547085633296187823809034673836869902501375951555378784964566563242316532162798442518313274781551216745181793216978871494044810897686038663415905385808923517892536931256067788333773924712562514419421792182319263027799015568649349344739046787165280000684394927158085373377666648653141275928000207364306649130850014629606294717034660624226117050541833586094642443169850135283070415882643459349734738035658981031872289073364495171864595831666960551735108281264851063373289079592827160068696641457527035635206902468223717538101718981523885955779058542608306413410239406665292356431938931001049902165579098441757606678806954907975408294291252432380158169890180882008996284919903523529389960794398779152838818343172188352440732426687408154317329911808534340000842753149601809268197724175813858387181701422721011920505354357965306914816461079425783852562181609022121770747560551203133550993148585761289010198462604137871406121178675827104884043091427903991008991272089624432937148861539889608556231941632398902294972940175079727716885863468558706832320861993553132467768265812261395323808642858485214268725345186369383147142312921038534637738416602622050814075536630382399831222014149879950264518283291661295609128185869144136500428467078200126794204408555156381353896214105856291542401168906947416999019812813013907249482579208579922567185360017872507795997561483080676236013188343689961363679910958239658160934405813766479642319053069760470357266552959231505536814393514822312640493987521036899946303239882028327646559906208137598612356930729943864813607647661874652526925478240446654495150529260381978902128331231902236985238879242483347548932126420577218595308532303119787298143741305965739729391676957010238567025565418186278633141454265918934960923092169005186073070304730601582009339767352123837726813300858898964711853942229322756174491308328644709885187123071208666380834680615665839533785260374606831435148446599238001679391024264074745278201215291581669986016048388945296307428764120087280136620852529347132746953357316255309411523113000052567128694639376637949103949494377202229690797487146885377584446179064457936291450307515512136536023144555609978114102261395247099561743691612685198464761751388844660246740176889333651994151529992784900764948080602971335732817656846034261580115337508605165362650437231182814103235474683528615922941932516605690199099169317756973345478100313680489364975801205482069175741854341444867175134810432951610980777703950797605049473961816547855582573979226036639973502904742714225103931075778938571625126069311328803939358124459689878807090102600347081317404719999888124795654717509684490103904759183819754649965695997186875517630421135820806335922145587038524666937956196626603638331616650861049325295439591418359511644283411009376352475600981443173646539791221763761766512054739098143501745306833656072918796148164497664010406763807892002133432225972071434585540726758506426850333957735749600313757802538849143876841607001576647703325185066207605840708532067885118866172430866060191483578688382592468999481423724063782222696118310733622453595023397590554150464016181413931246354787966394973626271542333467444822508436649577121588019712436180817189273208266800210241151807638137782326701611888485772016676522914269661752338176945446609446326904168560726305620588887258689106844314703387217392449393893754419949533680434354671312044262364300944601213806516889129932410321207259020067387072624955787622316755264995550691798290543804283226994805628864957076646192438278991532894461281393768281718117102994474193870795646926103904111232699938888335396902273051728596726677335952789419529056324629672537677400867834405989014583614074743672091110161009146742290861648397950730434905916913146681652621826505703827527187896858099455421622003374102090106996042131672206087363319398759153838530450442358869224387665154380978758899382206499454829218421066059191980790059274158374003733479901657678917715959650306184040016034444272371495017294474481566616781326277392141994509335122456140153814916761740168828602920135785067049338385275189160541702793248454587776850372655605849504404299429145363833179213183105017952200468804009578474511659793398641454292481250347516710174381801483735971747275806921682999640065468926845966111980735536215827971895951154541724307315961765127520580016335224120987902436856567758575191274450729228890985166944688991422798760844514460799022241094405916320526782604673102040056297587888589173790665575501469582998407623748742478375587053761944221513925320264664173311615616962482215940354984264112666804186122244702136695061337303620398193913176769937180043339300595284203984769846505994061374216137305709695684340989125551925776579724301301406598244449466322598298266906290756410970835797548246924914783741518880412969782004645608247764916966853238686269306752798416116577477932240729135750733240757995049151194358024219658918611810131540233617811029880439932600732852566290121992671328212459261426164019284000422165196369094353457881664942207369959472726974914280746623447867811627181427453664779223400018752427392489695719563026171979697982742719499503367006970199047971059316533193338703989200237314458008387763245853238503803229492740451820188266054982865101749275192668060280973385731914220812445219982934305202644883471924445297883111683414489260243578913553600728506266787066886898718838590830857754328851102603147140631329882758411759987869613532347417004992450557116216140259380774665552772555215995316041901567117530375454604828632999525059474706642546386660863982276202372284685901302957474857200715390788668337363110939271294994982156871514927620201448723623597366984145557797399710131114491614908276512542776501367169620514417554091192048775912563555561999406393501813823788431113996034500754258473695758894140496842935490239116139776707355675372004235491357617600041934863705190930945245718189770026326281486541479466158734095046535536135356086813132087449855986113624287134058346377904988045061350997782107479547498975349475191727446507641776270211838835923603553385694633226237602135774677358276488006113472428095534235946517932411441349457516360119078347537245746743357940252459459151278743779431991380029389828509367627164389220231821825634699820331024253015059593581353574982535324259508352373474328771660236623334359141258800138212683345734845520621753118628131229027095950231117039099209004006237643742753644569003804503338462828167101717355302453687897655231973041621454432006242795683675649958033625554352572577349490691926780729505160616293432962941826640123323978798699738358689233066359548490611652135304752362633088326995403780906550378352228416129993089915079023438631442901829288665528327530545197578358387835111979065402434421345623248885753250118861914102550606706240702700158642588770715224950761863829199218794839671350305949846915278115019701396359948140142723099863222640584024767772544889401891699400600097470347197891979280087521550311497847563700438239618746364142919249830583938773078728611577573785788122317288362644506454584736877927175544624311743761895712087051116095433130184576788612168510259158926810073176024506240690779402865744678489597601122780622957921908616692972757405940250944709149232308703688817723724219750407936653307699114039981296200327265566452822200270247437061653996565761588897755069644324508066707466197543760193598526019760800389152443065245421089716722922382058571842592900274108036111690247201055172563872072485600153224386544804350513573140581200218350886582814030600153139405616248589597004871081704552452456498215304949664164887746583324793226572584394562553796316065972255611018166869402885630001119920868351644855260928767070775869053214784812604070328353367848676210992661126973476417766115432667321507247954254755372113542332907291482737688790688341594087332072477632827918392489102467486009684685433542072885286488578352200150108479859832174276927027469482555236452644867250515477188016314052860325317674411292939864102799359670122705098965121261200656025300058074530437963254337169905860159909228604785221963831003268715942836440418593851458214885012459404184065369870073612587334560078613429056297083203536435830431344645119101563930239005715315747760992019220507410121776343301934021194284888950221553132304018795366958840832143081921381087238348702741296038936657536818592434446209291874012544693900290849854401623227821431056903434775321326535966087859282955460498175334722443636864263084716071979689299226539571325627919100092497463456496512975568564349585871030743016642008499125010122062288911318752488284023162671257317870672133002759670976474775174624376936975701699546684856152426881346731386597459985202320510390125840484418021901610728745163011296550983583634973554184169884573656361581628451101874559828322788415689312915433353765675304803785566251226932067264778549769055094373019823465092198522188189518289025696090411513386719300912889165682585422136258989520826500682131679738511871560220806007136650797484006053108351546407295794521724178736965164247616074084451466825462376373669418105985726583955846940140579447720521325104804364747485132562298918052297688960295049869908593977500337224848956608687461031246354558049680872267088785595798546095532866429305518620952840681307948629318878215715383625441750503529460292615924517083336817024200175120665345366854649267547744507712536106953398337538338755283915780454613191207091412223112965666411133716552576157807956930072406960806814995408912804702799847761070549578388109091727584054674089579323278692504866711383063026572744946626337783480333046985966506801399661588621912026429465172212416405045480491184086893462751364918375757797180617148465262086448154121248712119728890448478049451309277492948643129422529854360210987451559904702237354238259812021842722060052715103305935834929829075807567721824624526760212401520465901564373240902396166062152040836260523056360921802874967900458637755039727610282861826963698644555382256870665276091448372522976056930429809107327351082102168142944249986448336110476465896995199366954507355843888555256109529155557055076788127726089500336014102130818534840813585770745692947382880567066843193737740382944250477583422361720428052979058948981066983468305993555555229573659709754527618241553356647638687579475826727549646919479851622418357385314465964794811538247664490265627399760343201743355344982106090547540561307855549602435620490339499505333434631551221442488416504644080263306038447694133651146154204788826766765398083483248884739777477753481363726419183891428693633100856554335397943847731158260901903579695251247730512564125128797172506747233620195994519286788932510910452732710731947318600240925858143424934212869577455215414570757080615230241947638041791021070890650650525002481935911510840130814130988898777222646200285691916090638718303064206228853083097468785195284357814775648691930118911194703661490178531763298917803660872998780795249953633254328266164099923316027041837169354430034960248641023440707885740497294872324643438980799042551533576207041506404568159071731973473445795678386972312778119817305103317870576276238667028271308971716336977189531535764124846535049637153471977051773819981899106210313710648845334938611115368268477086767885065975178605610360978427301317020903125765324189746322998787480369543037820433949219603188682193874989034442955639987833858326691879729289125920479768946873275827578393889091858823597836551449455964859436394903392764114156676352652484022468031929870428322555129299341772755588663997530843421493497556182598328773917336252263628806444049799638129099313380665361482050111176500028316887374095221841582452204484505161241841195452194833894161702363172742841395824437305137101837946260068554641194855536901834805827708989658635994701239627151001098522054829718124805221541416291922707972349828525597657382965487423834906737322451531958694105424481824706495753890068451021258745588307831579405442309576908928541799359632848467949407276813991924717936638529699190613043331765539409505878363593383361507739649617577925568195646603543604270905634232694308245327557936563031724985418873203122547642152780712197666204074757272779594279911620514902546291831554374941476450072795813462191194877392162433872154163905426089317451166080152580879995941288471840463931563166600441911574885080751572876897686265333912034803426502731255230622060273807625694750653994335841980201642540714514869490876037034039635518728329270360919329309014045700665397722310645578722337706745222210156463518261771940996827739956614355697773297950068303863953105364225774021663829593106421788383114043098773476875047019153425895762878269471424983566729128319742339186981740104991855696513943423795245973185111864256540144772571399465517546213193779283198879535177707569717683087852684765833604594519970875428575221415315004443438772548762920017546118038941882658606570499337017906863235764576672502643588973178393325757495428970050668419295775147688626650569850387472852336175538301635123516381833934952660389946043249751904689843894086961922512112715210490038386085515520213433108060590942355517070674655526803729411387471945501124705282790600204081636529109806858565724116726957727540009145488083636888821638667192298742868704456883035150811849236786311163979881778153590018327466318213701156036240517946532010103044854597088993139637958788886319720602196843235483872356926517033371146390981805192395200130172691889868932241998527088827045769578447313349276951623935282480315088280595234842444327367570009881631552901115532956037199206321494823277952059489283859372483876186106585050972640844628915865450761412135430488768974474581396564757961205011490505588941721029225990696359866497848810901866107660454593568036788002020191121515649511142140629109873929763806543672151647088859156198638821653522699011835162222310309615256420852363713228718861586060707523547848349256269972976153922955115869746782522768993670547221395068988183763946839583416869659710394195481573789372321273905472519185159899281196348594527316972279574054871522786173611985050325393054940113999987883174557225729077268959510897488777076304450086260585808192355113296793625522597794406257327271686975100469678225276819557656386378605108514716049519453498634834773921143305189144463233594934163167244300855084072063660212309360555962509931564124591079119291854230872473860618900718488616257205271507335716295791435400351748186667832328050186551478158757027186974745133593859715311668915818604708367265370947940116122374080057111663812628747868844428778373141841953346365231936382835994949483655985508182577907872852011794762818861215655355417208315444595712256498904516469039922541772217155572674135021656704351860693269853360740742310249152922480907162801557214109014778510028570424520303681359432467685736529993940903121959562994150422431815063978675813106317853844029359281313622553856475459222298013277709905543697176687872854925639623790860499923393632595799183740851511950488286608420041121400367703255447823762727324243856797062347464104901785569020384727370051109575396987848325998421422633562655334393632728740411851108836149875758713389280651728161900181837193996637151708619397241790377325076463632364209543698274519928208834654293653539683406759861542401142699116243636795500247065341664387561445239893570665689887378546733405752367578663671533495564218666049356338000048114146002477263162699157228557188098082853898359979067077754258457595104283083423486830704251879718692873947069656035523695752848604477390629210668345833720629742755235398891196805267862020637652767498637622783362016211394471328941847298755395608802841610432792701009325022144794375939687926743421201567935361138301424766625608320769494156596462325953857970941112098013665278865992542440287080366691038147645086710508060482081222900154505558561633166926667160859316898209794918005010862247402722128774578555542027555761319772180218291463117218421455236870808830812609024155786177753236893286105171638058334008023990321410024121190845462292024105128705572134507449194943033952510111508316623734509403513739129686584297861964451495204970843124053324166155893258912802691736461538820368159228137698779473549996144817135597527087049484844515660501881933063171824035545070243697624175950400602631823613364333364643256169958740913782014787680974954074069292742864931959475129429317858058648266179039078031430333740279279285474648506619668958557907391097586625260632221943175779402356467382495087533166337904608673271197809578870873511357034128560673801936353988006680199221933872832422167625553154409952232846755902618500803576602022400103290663301196020757398900576153974709509534180479566562979748072082168777699680816130166894701987423803760038842954241444146156677729280106262968741212489813620697886906570903607750170680559323232268547768161645240129666210333881264430591634649457847135683786412305394011242567297792061500447106836718627255263701128012610240117054875576764233035908948233681035515050893700467534608037176013592132899184415255811276310277491730928177772419715705955251941132196361894637941559958017593605737391443983617902255398786430070456245104669244601156093275471354528469060331312223406603505365033149176042150138771190426169271633534190175830228529055762664308256443973604474788342004405343049056230610594726052391627288960953401068838175108272290523193575803104635569320435819225754760970362436318357131939285805900038452614693244521175032299134886423180806849125002100810550163815559474821577116469095821070949323888778692440417615426104537673740633713637159564792241309769014585263757226923297486618940080951018233831826686633653092619771123717422084626845601979430617913716170893425100027126760252332325715454052786019207381353959229963874973385196402734694296695971242302886805156544807940372924831862088750865869769761826329992408317971410013534093481650706971016600387454571462303387234740188933123556647339789264882665250865179978576491057569907071161220217361370231573188317034710218189906993502535457947898858272475097703150415620812354521939514648559268970756449438445105199206158009662562115754588832992361221761233399159317458375855995351862277361632610197505779219437831954190095436397224993491373913793797344225614324125218037924942727072243936006611920218646758664196112155499902625361981953690876137702560836858572172155568558214782904232801022227094687599581097568544810197963201273376210293130580968015446694872206273067173601902925948664229054293266584100473097240322789406274939398013857496376723685214875399055940237339980072956972994524724025820457155646016422230707016339589672578738922482577669822308680412107900970949516042155217333300406171687513427978905887010544072707805530605416913745596403640208394141267964100197904017261417025934867421940705071338090141215820118857717264737485354632993467381914162588340157504720048821238274533093069956051532615711003292984516715120368453050918031654495211145812811116436334961268166709121935657109006989784332067945482561427496705868985237809916152455325634266113166613648728329169637214292099118092705921941285248285894519551308756939266542914080584572018615696492430101579538316463488026717847174781368866823445318155632365537474371227791552635002525279654323009987087098143536010684918405344504155726390423828041651366839781153844472680865326568604280937021332413695187945327904908434114077044787062155208334572867529041949069186108188885840830280859875996506576101675741394967063014453298366994367418139083435499228211470244539445928304599350075142416075100995946520733044308714322820376710403334515436049956521573506767290039132786330429089700034355535977950985398484749626268776175266129972391196495650398036661516694322639965181669417712472255986216172700801024360296867017486439496075740976408976489843906290036195681532788881564410873092005944868913360307528662163124975989188653162726834725171921237610455670769826892763776973074659623314763268197447784224320366886148958180013277187225061024829260469022718656899820767396358862605056002712405046513908142357463817470287677497661196850158854462785999946797961872610107120292671537782664380248410665948357714865151628161746934760189820312546074988390710780119451819275208250032334281915483388805215873856052291623722333550946017967887070362777372689421452640806890184343643459869289487852551935586675824839029028151785306962526525589920625021588149721661570569619611799083225741260650933751380603218654269823721043441216496090065441386221730181173290921950718043904713291464459134933777932925728676798054661030646997551888517549395207700390730307045504476742783320670336521052178154594853969212016317910276782541830462654835507948528299150731252783828599561780295146131738190994775786849425046340398124215840414968608558200568687187153523511925019742458143801891535696508420517199782975647166568627133853082053939330095836552991827929862776878041365875072965361463344455609631241422720694379212280624509654634483300764757241248098781137499318993312297971112485056111111928586038756394960011556974478363135196596449158467349253198681578543782646228457879490575009647251922237687310643273406479308255249489652021730638660806105612873018678589459263694021844105173781013956745683158056013126608442119283606478899086976687297063864024234458268540279008026048122842694530363387699914949784180605794800096638813013028102810327419401582594673544603355505434073825628438549483507637368703050211286244567387380989113529533245630513038996386994694949295329822168750887183687186351537451006819137596024758959262440950172386944763399607805459409822759804764899425910988593691867074782178601711455437310386580111794593191627489535883497779915498502400888192071430750031752923682327394788522317803973064621131367407807401224599946098943147696622357647364123745895935979143057983546943928567845345994116888602795207743323096276786165094004046270559127523391516035557706624990782180105106986503811150820776937839588432627302996914883133640833303439238212024862184650101931513933474055269232496958844066058268915875544803563321125705997623998791354856920726118414076643315028672384725920283381805357597393829130399130333795805845936579162469676359116806832836825225140624477273329850396085633045814942206177636786869336570520031962768698033933325731884432280522021691659723077896422506126500234094281595444543225375924697815858692777078318559723276171697852588049636722239929282636809341340247370618109358672434952863100758298249949765441394064168613137023866552555030209072024148524603023723435368841525241490583482250595443560330137393996321469247765554247942731176469978522762238737831058424194229941555297470839120100726479678297827096354937391898847173764680906699360261042600992682849198592311123489680710140442063710597618503525711865587473900041244472715833471585282520426574589775907601516068526775028100156553906606996776226019622436542065048934860145911937306419242672993310503930434962420477929615271468366392910720026884959054346626120605556936093401860022619728618214746718420147033892263633400076947478190627105162228769738373594702903060338430804243087571429448197581712118639615118176064769061249499535466722112840860701282354533704032820375545215088993364044851187530689184617696479076142049971656289029146921437294681284783872720388684629740106200082612482813836145765913199737532811179204288248353527985525754028412825232821864631089328373747773447890195985203961077436228208533952935928497714402935462322295646365552928383509987892724774185433092254748959748070908314115260238797226761424305643271175191354587068229355704540413539855842950214400399903085939443095585634584752225072077136808975084257970481368727728888560478336752687579246678029770031434453095530239030330927270330678770321839422935482838089111897218956331413782594862587114334696387061301492229582998406790280458106499665580246722556921589898994839523054707678421052701208895929643432751156936112930827377733169440258348515755951714166000334538129483593956861292212563482456936100463122787047453313475458515650096129710261304534909623300055570825661014796801829019539379784011382207103217700837056563066172913165323264839123920745266783429760440062651139918528546028227782055786352245532241802131526095019637175849018089896467780027191519631748949371117075511272250049883968009438137985127810027896401608494060431717746374854049233017018023672772149069287059226586280899018815368282757957788071243045845024071989146746638346868387042489808673118399953424468305528981859449500814116410368595164689751356124005568298272964655270480206711962581654997567866024087515807020335304557372734321688493495276775700067675439570845980729833513058634519853780827424592097445569092118593095343310660411146335344693378523515692514692286893072140723748177991230525195050094997049111350433984750818216483470093093524026922594814520050088691677354931675088855522466573442437871039316069501735234676499114195105041987623136356474495380224561716565700026083768275885292211599490024512194603594554689806152733735890679618668816342622846859718033568329498064795274828099699499668563829713446417092643578194654130347810692708778033536865192502189362479516555210056204543000613093246116216732021032965085731284423076354699449793144923836292756723137414109567985037208758020622826125818028967092779758244160164397329002096925899811805408925823316091017323112376868993804247484760768810524852278031901167216926165046039277642950120762724232292386613078777123821497606322990386378661023117941175346961857965884482114070938446234074165429499140149554730408752667954056833925541377825998238888453761480418395399057206591862271706074618152705257716848195477938497924659788915890018051038848231671152512557648785188904957671189999089774447781150788237039062088325952411236468191725877675922962934740249206606526643131136317253269026527252629101251814295513011408864983834833841651699872590095088080062163000450794525474012248672300481523474657657217552374541433922634470506668028270901751944194961083537945042131641211094879228613975004467059917910624226728850838162532467931637945081408174430196125161481909166548118480644752035362926874439531032092784709659484188642003462504649345448906986620592685233178967728727175062784527147373278794475490845408734321912060053404886750302623610761167048435115636238007509041597190409435957647158137103125228099896380828317458716475989732760978523795622400207782287868857516095080694564571190969749524592642609495817613791091175040992157494345092399256012197536165517240753996333696685893861210094698360478334498858868928648643068779084124118593714337000382235928379094525423247910299965618620587699012443192560483905403897194953821547458843771562101164582827649001198240562588965378842885087865712680667017685879208407359528512766032366220704243411737553609750409437702113269410778130513290433847336634689073594328717058886674076132515917128475156470451356513638416088722048545619885208058985256223065807323719958989224943023534180384963006451497523808395327351091036656992102540655457035780769058697303102956565107568955631752774176963709310971124818214089487534315169105041723920111873439065368723996914863118927501316672425830861563334176766952876743748433009774267976664390799345789100663811184829305072730203414670926138298097795843774179313687926477283188063650800421468768015000051002557272970340051990924164238533188190372349479604254885214493834414671205055045784974445766138492668359912205229389485820597343871507157413645229663193049522658775833352485941397840559252961656964206075854064682569760513355979376019631543786371792586916000229502389187190282175065700100765300237678822275065523325372365065261775010525551832047619259888047713276491662041741200606314839525262322111389229307083998178109913609328273358859009912629813790320569562243733482665346260930227021670580038729294771862326886051712655226480863301133645013281552808792355019622880786662262300287587937337323976786209219754080946821314080143769851407452599690185668801976354088379201618515396815603032871491541080884379370671745646964864250802003054154950494169283201539505943527957183974381265002684301622692467454879602891262220128833205106768947702274315901711954744584143815927929687553003760456789440749528057651072535921191490755650487212831014814114055563253387524850459819214980385097246557599014082165274474359611426017220028671232100587893552354172361290328781548584073537810066265457576713880849744455205064776024226648499804808648978550597511955338982491039381410138103743267885958690607471745301546238619699519851274526533707307903451181302861785925836918619559773266067739844345936885577411112628408757003812846563178509094942597514738255205752717667359020851771605516782512224431268794564467570251416001967312519484296902009310538703196413478348376884299633574979940539511657355098252335828255091552183399160676881371846644142958761296637125546534405466799300871701530940503196476325341533672397038856164409219365540573385867904459946913662402113614980094357835145089236697717757683083500863228770964155909848394991944716425466612573904426812759832301882104045801781061635342991906761697182388760327700020442752030142460512539819193455525123205334932601895132490400513304162119299786140342056397206166007113447391883736622522924068985860891580832094483581111559876418302500791897288094521368061572688868560718718463022317016091853840429558067078818800904988917027774757245971008514207025481829984635787990844032540225055027168203170581945560367286382181090774954626955092995560587164289808678022255179181902646213949928143615375993972206780508556984670890319856503794300092505890882099237197522115676913092702691203850004588071676268126413622423202337914638571281085762981986967995196041277055892565172194148896297116462921585824643388033303991477388364828140160548385003089371813816506567531629198692618606577004079522975723052187452468773743066083695842572953107073844530828049200834064259892046027290510388214959469271425655354718151601278150652915430368047396335542401508542946030311810832827409647622064311878867437177749314387526011255569601124056450696605367226929644953388187477709743967059529315901115650788939758382274819518921331060456808060496883795103153332535503553385351164009644543352011120407856134604777194564441308449788481005290355982686661679464498930297273540449017527246814134248285541099823058109247984375464799610285667243468916679435294209126390517014864266718269706461067248790108929598046771064936216070272766421643249181737945315133250478337482362698583052946900109904457839986125296237413901582871903208737972664692482606537297068936968661326327001457070451231200960047219512847284018404130610408634106023222011537123950369052126555121860302335287168027876229652717921038085367586577549178492850843305152759168912044761883827829182508640711061254784250142894679026264966314264789553628912029187881991168568938555908605589658125091155785967541601860527109494805460893450260009837442559664719416183161473283309179558878498004590486949551935247685137710138457165945048068390486547837656170113936854812481347374985856129760904240318975970229806850811107021927223388969263013096809780002740439406469415470876906377653525770514731505074812691858179200075501670928159770516827805599857932327276634259138330666512561020977764115593743932527134584200993571503769513517227726775331654186141312289111795779679479752725781298006916790964896992849514106029333423459213852654063666381886296162622254990883441390798206479272246246899438326751646856859823621813675044783347818856467946455077902818814612565161175245769578277680290805689448423317479442517495848413776332737347161694365343812407777526596411357078832774047465493597083224449622902186312583623464245380334507670024350790109206754535567131196662418887773127726145881575787028351965238923367371336404238795214485916273688890170478912976083306566342830104043864932299519072816020519726752771499302301384185589768770833733315034601494790468356141511265351965749859593799677674034081506828354457024331372619363388815795369948692170893940768823566596310701481060258932984704704273062596324681112844965985482701938091560562826939060805452574656820766988647778182003042935894904052685327883207537115975212158478464121119490683957216790137401345998732342357907354871044373139806737866609237916225168621823658740813099804212465253200847010544126173801210117916814558316987348762211706404941202361396268183954052595353502667103142547534055003272788742380324295628949702350155171894199046815994538383282628643401540078553830498616775266647612252164075623530763748511719749949171166090584834992423257079141672403626728334481643872144730034834535373164077250025708276646855684391440026523258159088153079542944054643154604708014300362902119328431383667794273915146583501480343022620810900021091825544525025096373776959942540305349679160037938795127284707892975405657411306938450068929679722503650803232110425571003917911384532266317903426432624770339257639866836863669136503831639632831112274159217584515781589641645663050132293818547642828190606799066802432979208402587624675127952374134819427920806586778073948301036933240616977130274407929307997695606734751378073285357651824943210907628574586569412338945984513663101853373395481390362593571358811182190533451995991519939084401985870496426236593326466122956191469261724884006866041041188249345709842533855129743606521421269353033823180330199069281775208028897370755556261323081486429283310587520049512437094331975867218785079467425847717123398163717112865100686686761605803005629767122031279354512435949454738722399179844985344077902305173795748526526626299940439628698664497514748665186630162626981638087121375104273138261130145411040944781568354207939768863902349916175206919038337616792230417820480263323222773455425586500759933296541116363044927928647347463816832714233074970035625852413710755341451539668179447846710830304907490024479815001230541535522945456307132616681387390802837888457745851561363748814224959743332329572268660765152211045014287628396437526162918496593031132664772289420899740425695023055648802749965548938810220866650299136020487318379777693294653970484039265044495862582445120577776590725376396933729481857769594006746589373681654113628234341229093488491649847382995792444196596675893096062921290158250765628524480537542648434001211864376439629219133016892701595080841068995275809178432829150491220045457623876933821213112980127177052981401025096091177051682215007202726648818425994456283738192938939884697677556971732411831172581808159034858564613776477439385117932084763503055013625733233615098007474662130638501931586515082711886703129893384714247278946200342379662007166810650948280647090985300892520292955793771272347850467397203537658947297314677291622649663192925074903837782471306405388077034062358677948578301430137028727286945621675499536345435408350552809849594171234261727271099054351038328252207536454935390165109431241835953370562031252952138329902820139362406513618292942976443837882113555946996104021614606893232580815695811987866321589447190265070151075220921257912193672492253280918626352281371224311553795349980168958712158274171030862103041365516207614647760559349679978604086912804785876924791517928644729048352714057076476492429076824477416198151320537135563086845016281976774301324099035260553145240465820851434281613816391803113385863686598515247669670534233966944910094056642651077751253620922013315964992763104310575703541376625644941133643043572506429203303958093462555344750629251595745262737328446325150663757513513613343263387596331793952979091141422165312739418962170178122128940923052030456965833905306985691728157505744680980214344808286863240297074914557128143544711102651123349606261328228571705736174938084956662145236079851681254920589345658894586911046605720333123013989853874257329506508972393225284113314716921272335051917867216302363418114293579149853190439277569279213079619452751517960859764237319957681730505711070342476098479680817148745594587688599354024284958337796718380646950373004205373323785568687769571196638463985188056854188643254983466580358263645804300391848467304871820085882643383790716766318743692060078544992839316631967329738956782765103748444416656942101396973333056581629392649956777927029402329104179832482932984605370468224767455550569531541155160810763555502257432588180259667093263956533059730658769515983367243934255033753433880954447217296723248639062633824754046697734518966777775800234476010829910413048251831931445565918541307368988443975264437377307034338356719069975307134531975789972729873773283964859200947090985777902662375899133342299643542119052278639515188525506454579299164467862693632981900996063716624791432877423261727575303118288590954586919237633114015103240957531350012860679449052490251384702050820838679367380387452683627884277625219090108446719741884267056387377890437743159631300262975591853110356992984754811707973013197741300571267708466804377208991719153305423186598456671852651847070819025262159357782470530216181194108001651470084061167597736000392971790708014154433620914259070234946826569622445174719744722747333042359170916606047264367262500056072648099088744175770324888522873772138202931288159106708081648970669434950747237903974099618219435840552844764043110341512505659627035007341809524984777732421435113213042552750981471258993910903290175468881820027897245934030784904703242304279941396809894243277020601411878661409231189914066595902955399234480830657168870775669413908632404823617177093060897779444827082304804291792867430096849431016049841378059009912029354416716076115793620142908476460531283958130855959414777998024436226637921323649958968129932982014088338662136837099564894777139783859551033402024568620064997333811282055155243855806996713798661850888089624970360888584393246701979449098814369437690022696592979174962462555986807473302591147559521466671613761094322883229061946536349696542710208050623695540474644972790238783844525323034053186392802888233339844027398482091487851238128912442489352437157898111954208339256695384471663323772306321586947415668439645664209512672973709731892486818207405771209032816044343286333859249584370129483988639518451037239289758454397576493844236114811279204037506834578368813720238814050068715272423890322299677105199583495707213884822686270997722509327353763862055030685657174356784845710115982563723891515730659069192337941933055350809821410798481004346557725740627975236530082042638398254057827061410564143106363705066128980842323786959071532719312382799083580733998983739000195309576575625240676413289914615715921511551071425138590826295016459173533660178616523415386483950044969692633333631564287002370933143018342524515750039531289614871977045746429095019287148562852127855146862360895192511525274839382256773343164223138651141639374266576289210630891255362879598986559809177490286847938096249314330131016530023710362574366213714767477019897560885739732123211857457551610439184004321499465012131279633899302290386773678211079292140157014929880120292560195219636410329936499985253447338120199568824088566094070341715956860666105862015232341255535594502775300816485965883820613163134351177739509358970861453746699755182476875574976050220364180964413276177243620656503571358913049511630425882943514237526026435469530824790794862417751774842795821364412883474966341609590246367498534471232616033920235104657672548181852482495232404721837364050001618896089915378174891064713363678898159946636580375898393163983681955173660982810537587072713966763181857080789918158151663150528978525002029234281625058521560925117423077980404801427440111386038220247909620710971931029461703143903745254768505037123326649048537590667781736631871200707147705318783774672584727923535178692072487989286182390568334859421413138828623753978207505216943412319426797685013727378411512056139466886525192484500832844814561041618864040402047882461100734393431529739608554479591342231276198382954678965647209463156918894800882835286502930657641784289881757148788118698351950006818029373610033016017895387391816071574292401897151638234182343692857855437222883193084273575342939912433255043746627665381758664389459888389153467730544553489714239443220609809681423682190899832502379522255942723574992131084306846149926958745196791965741242083866936006112970712847376060846789199762392013534920266262266592530066386119465304593010819319382922208834930621606768101321164929125050444870376790787529261520299664121823247069208673577755937831284936873197502816144225230772750751227661887112324172465616727857507957693569001700333163404924047557719790317418179065742006206481648515940432960157188977035701442165089118434432628962426632557370879889962163575112366338780249158479513953845601386141180860925797716449265680691442009547715758476689075108848804277003201094544663036962396166590960591507862531390452255785530959844001104891870115473938584436848961762983041043645518783892561815315595475399289576160559351413402692836078912443080832214544716735178941279421103530754656666112474525385680104133893293769596498335830494013173765912769134186492966778705843009832585268677328440600816641801124317794161674527482401595137842358911595913095275098467369213148435984283378879553504309137346626526144297146663836123401581925117788135679856371959366379073808149286346398695644440686425045850639330544703544151120631064580218313359904871965518117338884173292943409396801463694867873647602282420553069418282680262575209688220561999232660633741096003215769085032680271781380997823344227058111678497542380426657169192107280667960284598470540187490170303126595269640512024705963663712593118004203046216052167287343321969201133451207992021817599380107605919280880695510997632589078090834885006103682434023300405858380079703791987818390610598425763664427012664771235930941193444089744489692974960481124900830992732548832865905975976830309795849871831527480982974052527113831939804747847414519190800212086193957100366452727174792038837051965386565689622696311973232930942030989341694847237870545586969752993169182430298665944563858957487337553931073808439547069676904733461449759322441506281100531592892509350811191289769672340715047081509226075491971449355356349174009946255277195715945904868622307566962425883591158784306483629196618143180638204080324664466414208327093998491603260089713087966782518260078792877136877070861661775098413931394328740227865245928503988240653698636581669220928425160814217927623245687718306811359944025569619485782960506737938271016865654104199610514158639917584282415567028619823024981013875903578593468445611055926404871377046008959724027513141290151561542887186594950986222136585273362492700941951497208368496509593316904116975229225696897373387719611768207128293470356091873415958848999459684353399980492029887919917543544969120007614425167435395768098248008771834333620658966539320613899471118072344949912472966112059781105935473171985199041706296217616081278109113466315651966322710832914572502068928067182201938083689108120690701534903555043490297638462163175128513043797616368610938947854531645945084733076890920144466665199771540598166311122786449759202387348156210505589718624335719226156963409119243964773354457873502300120939827789583200639088197894318334557995441309229430393811537488584100830025778538127842907065011106997102216583114268468143749982802698134136023348896694394231001388293310299170103703112643357818367662051494320042183839484971649640579315042726613172563586079166987893221652027187873630850949193029581156710529389518022269169833046892280657076458547146755710094684276452897706444212687797643045191246447554379887786293661533051936649858798772515312901663060540900155056041603366881071524543594532630021916415227663646849585607248915458689074750125196588790839642194120578318694793704697008480218627201193476581464457469574519223646651463945304801939410667114888871096760127782059002762285487594398507778544006031527478991088561561845465228229869947651928075359305496445583879698771946624911478500373248328950753241165552309651106983257482448244904480625400714576711556102036833593837663051853623820252051507292738193540356507028798714904273041607288824722615223845314827389075404603855190458852194514908441430085270915909284450663748768751264033469922274687624339242266003074266324715104295441966994795718189022580957987451876750830398309880220370258645606465528208812734914541881488592845428808948211044568758835393515030600127314242598934262408979580925326477919601653034050560743962490524350553225071194607608956948252358411985946017620786880499839003626458137546362924886702875834059677835748621185488765868050520413718768237167622760959613000467217040399566844987490260619655772762714063056721361060285487610487477596883976845963704173634819417044968294732103698188937028342088588218355287819842657221853598929063445038024237376881449825768239958672813869770101481357380303267406825509635292411372916134091558853155714619388752704196660618765071848860467686481496400856013059319780147346041241966103119341514694044690235444238017219965201631734271095047186792174079437454688844017943271992486362349053522423561311496962243058454387267343453178010810524795929919616048620779870546935703241042974842449570238636122437347903011073520418679930467373014202028456338946113623117026443311391508448874963276303720095385654581917962689370225770657690568075784181215819210777906061157767989951153321364220120963976111200496456860989218379136894473987538438574651474527154142737717231373261798648297083506371460170369201882121442140976542014262094249132115421991901486608144125201018203156789743483560005330932859543176220134776131708086337701499078293289014495496972469551815750795594323616861779698672365086813961233787619174091150345766490240765138131443455585670680977719208631693907022276199266655166548681449005753119709612745656282877631916571082000386029645554434317697363675997581911416933916457752133214681637971871568136964817728418462648390042655927795081642634728189531658987050212367428470930436612853912286048984524113597483266270998160718887470197385774920943793899797698404440452654367734403540598019684501654007671618732109644280076103434249012803067957794573753903356860019164906692943469170961673243919961118161779726305928343057448947881957805703476198016629210770395248889892759947083080018872752633529796591490101158138357018687182757410858123667429644452017795890815969297492595621054980832661679976571079619661852269565068034231510991737831237839145718605509561595063356986021823582480909902506160043883840088032529876911665332046298987824643066603369225230208963936386583398224368262715357123350933137461311396795161357532625254129761554744812835173785257064676275807309647806924825034483506715588039873141656929922573527102385436466839855353138430176996831223322692375086010688043063013574221372194146899714482741280741227302394274649707750428750676426412179081221600282716055457799023473114646441035383843384609579184502986160737070889561224529829642571468079967991144060860565838790567941847689732515788280272482630112435267011045396296537361703745478935989254664754894126870124203657792170764187460080829255959478479002576512159629043059394378039932151107883204190108354208494358528033701034750690720852558549580690819929863152740185931274049632325999328411828067782469959982049185882074106122184319718149469250637987405289173782475280016625120285543445393320939377846204104234737212998620609953611908316383553333810342462450377260712508701417854568534278380948275265016196851195385112568877598693227453806020434839854280647687490443821317332818950809257270326421227892832762708183912685864745478634999122885850187356827626611743982724153899252441777528120752160214194388091474552652539590146218341049164718156551522226684327793532767554745038711403419728894238403309642736659230362050814073512225270610240262291535263053747679001849146757819555040239108025821572081749356229804666879556141367646950102499159430350305369475396930417571626299743972165942896433187136109663877054836369413678966524936458139988093875710785735488552894346439890527958307824221542160632684941956128128379113500329099572004268414140249573873422119745247489388531044237550193794681378828710738916811853295862593701316905062126521735335475207595438497370277001384246439144200159602999365134430485359677317346434609156932635534506762493067877901511584024002792661627538914849537827580812737471250207350302350854295265121822395649755296462917610619954925547118275788319659208873818016599397724986281174791762446800933034029488522595756166136493163182052074478965619518201573874187620827214112523133087181971417323823914426765822355716885170137118624023895391165626907757325959878852850159196160420203233956795025311746771419476489577275405074737663202820435182570414768123151145141300447464400087843379182525164768077545629373190712223048345551822463834457239713126582532539322561378610631216012228693288461441425973472099931048245699942511557795089079479966273244287243983785252245875562534485090281097571865906623000604967613326858394895859637222337655797127474063668715031637497683835174673533143290326402165539767333018906448477604280799007534545926989303681282813428906323555995381959056653048966687997143428141670727788006882359091792375547465887781819396360119690122338253170386038304240759103102781574914734824657223260250171597910914488098375326319200408778295816127872707931582804698513756467199471061910783367230488421378462176731195862318114886696931481923973616320342953618514657811245631513754610597454420454224229247098407482112993685379205938240029577210759577127751099090575081213665870422464144801129886344633184238129627545217503814048288568940266528468486205725193976676004554030296857731952265903763747892991974264404526556948106108552383842500884995085024898211848453120042795209137613467856650398675243518028050894041237510737056371303668396249985841866132296121277748957534345099229561778933632116753219874515128304476554024320412267078713421039081936704938398040502904547728505054824227508863125938598343483801991530662873686789950715907867548641258866451745485929424805097912535095005679684220062379417106359094421622684805672040325854407116286929674233764031979962775651855414839600659300942299671364365898118504370149517368922603768816195709845760957817561368646604572237903204200590319834315924370843621799778865388350310955569404729178829594477812329047699905822648708594943082349634558139434705751765749766541081154684555090308565069724257154060552873679648380825028581922329592061915698278237453124224647367580021141387918119652850984083156574639893242698080661841602341402922067360107709069128922943037097976241533463863642611599244618227696138915925369047946165450920928262096890144326679776233402779292209630718483544002051669926660149442459330991089776840932636237096560937600717549529240844925525195293379691955484882995840340462068490477484244472621592399459589999807475236857221389847718898256211113724430438754331683549202224730356640135746716377123588991067838404996377218033847071596411217049625507542818127266330814217178922819117281223709508932601646083110914141993326424817635641181776008412859528259632526422043161858081846700550959694965016879797319708943539258347355311360404426970450843525796659958463510247023642292566930715226582954909877495029521304124649805868103174219435125657980876411563501762243903908382375117948942363252244919794590130597900379433919598484698584723437673921600349920066570430085338669565844165167695437124874397747341066409019709932252783387763429753124469389232942567463721945598900244191847088285252270417933473113323661109855505581059239311433527795222356720408198799118078355359337730252155575694467785253758779014856733812429045302717208101521564196218798231171997665836899586242800636527500560559990736726468706863176641838906446529672986140172542056208106455320097408558797062319113705696847148313370238036601538925737627912018557401817897074637519676756310830798528814542180085511220705327988159648347070224619169437387088920166703767223140926492221551375402849141177662757810291667996740524784291015668933326295500935461183985868817698982308860302668360812793782118345107444077876605773594777523711384749037420706901150677295180204553298760612543589504529597103652117049778521501451171739188180886719950908194667604956154304659869337791843189028915575023467816765554313465746585609037424342164222496247076447695500109107394878072135153592617140367867021598488792429799759352197142423254134500226541819073976573036013563469687842538484991370771347371597897353382863553558652401610956027252793166018920715166203420888354925084851978298348688663792296766061379442470103939334379119711224341255468607197302515321169283844764004446372886673003751909718314197381125119720467059173288685349612013790746680789435280130864128152319016969757908304857578958918431036307249025360135011255926712758890040165171968907785207696823430775383444736176019807105527722940585052500227033263126720664414045188382014083924213758514806406786380274159988869401080012791714960830036939968394071993580081962067780978110011095531639769161153779058283662023242678052497806575745428865558526414145073597386536773173828078012873379755886438712708895457320601804084210828830844707919120093745694942282153433872679141096320813992323381145531296610699092006465442778459962052265474219877107585471176533549999849595228020509397202120986575399221808931136241343252343283616658899053749970659486673040848761015396813594896668079953453600677366817821361012398935211143791352904718871357851254575463757830587415940307190643249361258287761454794235300732927884285129846758160271474876714016876602434206422826067863940954653219495181921250346713511845336680904007395189669413951238377396982123705215149359093196042431149208116493399932153506523795644862878182728528472952656104243534908137454310703265898151624348743876834541556160023177720092250423345743107425810267095187720798487138512843876509252302798844741650831721386615090644007388963811563076592870904728624310582930155123048811561549877537344074322432287854327896063879649143429024938551294687007893512820628310078978751199156028467331561247984233630558123653901201845952672130575148430450385835164195723533408933704048994464615243338852493449659163522807048680577804607014177621876845767365986348904199424058535496256381207221540528266991913521889079832322948302133931258215896111140769524192120246178841515661045624537526540404168915009793675675135182458069485673353862618539512785621073224780018483262163835032654028732276599520399491507161363724361194547476147943283881845992945872863637204701930332293776018688789745487765565008488816365871210147917550063492963976050441570499553251632315669197162572155365534863209567146641610384570618088952297604522655973673669275683770435792251737536404809442633958061070936437625597450314563140530719236468743630538664065853196768244328549705239171787302272095169076231599484787626280987374271504901370705602127445756914212364704320268431353314511275984617982767301231187512481472890560443647227002431834545097262685432223198159760881453726308047233981354334581169580664111999351670505669190159081070166218005618616488031743140860227455311678490283087423404847810925620755954654978712880565018718472900858176719907868652282082494830595267203333100201227451372233260196132183349649544077425379375782244563619379195171884889942630170400512513599305806304989981446385840469263216740810665067517542680748443511646134666093571535289513491347680465643352846716453820303348400089466483245630919577539110104223136009140635955104057244919173883746183769769018278781581819835539789248539511954639221389780421271300232849070168174924479807408722562447002663732569814179680875848454001594986026037928532049680897759724306049949710626717218772870078749350631505251899352892803017374473729092300122979877288524627054756743341156935823541268853709943486779099257904721470646645289819680466515257204589289551942860776722203116115000999487251381422784794681459215929545578261620164346756168626620739461792307089615908288195330473969374090364285941701288511798959538160906879664858636369913277809591522586233336334571744735538419529221465987136890712524247793699252925934304547952743695411746718825500752670908654311799895698575804116278381299493802808208131207688726329504085500340642049414019465098161955757751040749169762123697558577128294288859691022386081110596224726449245093708548406666043535622469744839373398605535601281945746857771617228493976300375163235967955099497386651197087662801744938138972797798443957228333389081566831911930557797335182432325678643660799603143827317600824497684861499938114958809761595569390128727722379479761389593555197595657015590442700788229690670501956986754651815012622736519751834637118489040816851336216569197582846434919967532201041154357560328065533258281189841297019794126295821582835357161100003314435999604555206055483377669217535943540696369383437430204915548501904521877174622509752911720274141894284621405397135607099822510228534240275583977603154624139963738738267857034635005695120496694070042623583343894140914187380298686995627046521824752062864880784104712654324118259023474567351735417625383522761803268810983342646501620762355315746964142458884145550942810634258417072438687694626448478920380936751765173124698368238916268888188796934036592577671906771806572614184688009944545373888601775168183740462966029551967366162911240788610321203439293845962467921746233981243932540899653244727183272392826121292402100321371855343161017893462823219359707024099398114652915929281076014447133230760005280618883649272883396857870782151799361979027575502804636526737026579874793765761142465466358978006255027700816698161817905895013903874872146470622075428337189940231133836090046063086405116987885762196553705822999165756655193169557611908454362286556359138621807163050334875145930182886247461428778213853248407449247429654085471506496734006068584803819013277500438571376816045106343421637100329070143540641699893516314139166525288411617450718803804434298020132800250457732512086875399420234931092444315305036468595185832699291758103116968784837642884036792516184203014409323518426396950801211217086111189091925070954248457898583711901075595539442516652231318227603874487469314097798621488472999413814276994718238760235700166677539587249023672626021768247564191524663819232119167145718380536594727347372920437873084307247476052100714673436376024533082508830161516332009579408930443518566273734612389544709830872834286606211954738878366421470211742564973212823319462458446929775127333853472946476463966111504028853745579271334904409540028651670066722502440781961928497688770419677077086333670301614790910677152733368220548704661991163403342237612988747660581000680974708094673919775400000721256270662644954026335909364733963235274209877681738801387480235639870028219163525787267042277181388941544216868180199767025551857564814644838213656451407814893617605201789743820068883133629694037266898212090037790412900699761103098207182371281229818544417051552129494373775585380858898015900666723347436518687031215795530142200181581815121613035992970061002431468691542186152414435024279287611999959458361527807266209345712232795788111061456808596718334795906659512645328878639602085029150120245832765005218868014679527257795158829118104018834590229428780287135000567930428337641478450642236663216807642580930190344608572812418810519658838666063217114790168431646684876078172458255507872536314306913615423616308588178723704485119571637503508998634610588327216271078804821629844405854065605219503051206666844860805889666486758310331061102532615641209625275405390262788176418247758627120385988463695427537260624268111667532436485471963225166640652289045115667046094612664182223477999092632875927596535052853454536483055879007416722176107455255873289600298900205966415632903070864799349511539968718630409070304763334103718251617619122849868444841629919547632442911184257169440884403378461026167719314325940398053160594291071287282536128379926851804658648900491190523038221639689457208319682133172495278958168192211148636081258215732874137284642281956373513421292897752515049728477499687066940659476256790979465431642293056515828795466186715916480103435995665037406855056232469313899413219485253871745062445014317561798409632152853492157192242506308557080954055536033888105453995773429993114665466403792587853753925985082538650383293680403501059215957375075131769591868766597120086501627631074799471033771050178572263174305821100424381681005666348834953435299225466323880726621305109485638031551467608182076244232207687670303839066729687794689575396751199848078275382809549214281511130466814531793128463954045231888009818855016374784478140284804111639290671239734247379698041889768131505317465722024491305458638345203908089748944019260340166283750658544900079717122751404438003147371158485600836313867995293074129669155508249365586299080892958367708544260384296274733437058588041648002186276497699587281035401933638421256267734834624495372967325245593695955199648252576199181471589922828195579027295357869892463167651336764729478387750011620568313643530734585679880288060108607352605556162959454641830598193832664985374544049322729617077091129786238372855047478246814531713742150870798543354637840928226562508579590402406757461857246654112150209239066024779344043313784523387287503979658687429260409133819284726856958479717036189239430309001675842666908476897055588403523382659242190264253972511012996719379504907219806235467348787810276731310721093998925402650055330602465499510108544673605333691855117302872543145489799808107565672385931449763433912942506369998609764513936442271727278902830981306326906811691617303016284385893786046950834628269381950200752112359182738622003318068712123859785791577272363381891830441449413557822750065374608194844855448394038106263265330681647938800538726554672390987853229409449873996879416615927079739314130737411327304530540407834779862637419070589548768207760307515122669766841014094895795248427980905195579821324206975983565304336717607106924183163429173950016802025497811838718586706655771777769245712487206686019198282987238440713741389777577845417328388337290218763140892735064878607873351808452399841325399211359362522501307982311737420156286522913105903926444750856990086567518650334354423094422354247055467533375445703869236354520006864680879847717552942486596146300453699057343567412867175941719028349618511766666566993144162317217733063298508572565662791287309266779569166709036175885115726853947809931399851834612215336767035225081504675541759137318615468984110423185055327244772772447305988563931309953484983824327993673133843831196169951613105783170981009154646914137202425044934432526548992329155545277988257336666394798463667502890921834311615165861188365548957341983177132778374262219121074176288377912125684911025570748047809754066274190162311487454741144088129614070103316286297991442132947746259222835847503269370602770481965901415067571547612238297974161353713562870130728323765548182950275703207730701169268523752260559887473741720383969604585074402881425880731185562515289215711406416978617685505389867791134036176329923979992910327314083041771372911070430727107138633800704110719841055846925068290246166972050213631431457630936442273201447284061952653057989834324904956273280149293578844123044175490734688043618198067924762122505332319025251086914878070730551789728968699710679425754881904122260364154990783273787341268711550294311889825901744108081844706342913215241874166166498927770224426591140326941551990066033671140457544006931982831508152389022874802009577975600984757314572532477158918097878229280931736684698275903719145416789573902763768965666621052501923067647521525915559253907903112468131809554260555355585722711810034686306954702517888881068998517192931374739507960685422107887593997481631480038690251249065417639315570141321650952968917203397742636321398365367033354890588643030080327436907127996977580668767307546658963750208457188601648278681314107605652294235603325875285807465471818098371818531696740870101277402966435828161278817927917938021891098879998322945427382850282687956434374851707319391728687285000681946712272373037439503452245250717533635727862825602205157948464213718485137701316403215908710321588180793307697464055478472566233651830813969761014910034327544700450063050095636412346328157143296846788784847644608008795167554497522871279516745071196333366432436011379750432793645399489068806492721578706949770414047762480607121955617081576574884174266200680530209356249111425632619634538104259500386608139943026598601826849423229784534314237428699888910022227504921104339393811571271705852640041693940206879387657218433497769195497383194506165406489504654846065108129542194837289765956973448296483063069850779819024691174476002287688856218099387792257125105263202117077712575399580102905391975872096159472815916720163556180084211439826527739631806874814220457814640274008700896047476904703279649813946681817416823154313938100190912433908340383064091059694129149129405267034745310918085819565846884447841362933613640578166347668586589826198945105832298754728342153264551014557484842042357891374089667406739341060832137202714756800041779897461713968840719903429680994924681906881569018102217301875631725537879724144862150036005012399488035786401226574895987486297302265486172242978717969112135099643401686712719700852926920200351056845131800216704247947190604447791207243453833834195741976368314932554681663076559173028081624049419081389784437261131992210342635949548251447601205526902082803497474451168082694923682127360320805385003594345341234460434726686143513796592623668003808166077056639916933940134887671931294884795531974236204968409825381636946770367690818932535131329994292321868285953864817366159540265789844761792195255966494093712870540924777144330805938370264591904726988961536802091135404906931979538127973278712042830215486998806176352545660026595120281996727871379815433199456315960939327135474894721929108051663962340545299133239567768632112743825115420129666179187451788225921750208602947308065187295684364233944433139032223926232809211732579313645295444046104107460872145853916859997398026656063838696846435659956668081833059669378340573610146820178402866536081275204284710279131270491663261649700600348037482757683330345747909403347067286308388702872408357646847805519389667467289445702243226566435696292656657866284518098455768937950112850692053322566356723771239309174039543252200747862854955483185732173608850014169206592094693092179490172065691481641073287442904888274142284724989907538236625029460487792691563103106919629227938622715507082990597893396480642190539400799970897451872309867294139639953469681891880017194931069357379628234880873302461291114721278715457658664145156252500686232834041497986642003745046226879658746408120246646928131343945323649321752022421283465103874977354781870145734290579933949410501586127510116356054680880573354701668376815071899630693467205407522049236660811504649224312825849897467699756696592293933729742723505209164361843394653328609768172532764270817010450700579977134282659636329155713088642978265163030742311459762860407813884667138524428158568925995222606903505256019330389974997618243179976455935683023343848541021346658949923311780651679375451812191698945358851906259954672370144127085015239460585415040619042729998694585203295180404742803457745420772473119318518826201627536566618303811832395239252001618324331643634347387523316940236953605260160325565790525853897424097856737395918012982757996350384658263132828113414016093517776768189739989068355377337233373338565274628045829527902832036602460454548555260198481603344338197466905204567944829490590443081323843820505477679246730991775720824131880485213465773873284967281272107157741883858272932840107686035248042342604567305716173954263032991055456271798569316843780596820093772021262144494552717908984118303738026728623224169969764546560053345236977169228196082573209534472985428207832623651226512078550676620272833037246117778709287719138772437056089810322616112356751682248984779677511221278524525916810139797344937541431137839074595807350048740819612881638979889937827164021900717725690402447497614844761172883782879700600442683695051798075105498173062587436380193609029379815486514464167996678601752416888358915286553795888698334042688767504585276288716462022793369458226460769223768165785393785118296191355864981600917253389656735920223602320208317972399753861066866153050338383234932943454463222535613503568013100340297877347325964003804873294833865515221966224550729030629919039591731728374687814868512598801309679522985771299904920041008348881395801914141286974271739355527628199642573693152738684334818411751628733185353706386713197356722977074032564979035551282304558362513898344186340059437033752837891412940665561009601485078846106685757245269970534953136451433607451534453000237905122283363864553639006577764784957843888925042458711173748011987685379129169969699329962195776830229370042861726064030327134489970860351990700041922663872187425664630487569354435835947827972971978778366770293516661979893897913875634189608736456760809199295151469817237954298347207545163233520160361717032244486737123923218132384335771410970680831233028617238857441711349760498823262722760353862324444781369361827364882631334576566755802403066219117867208143088502741900395800284496661078501528721888899975816492817733582953532732457277573749519418709827973042009338667760276641689287826499070304660709867181288879803951152825906493041959259930065823332994140577343433712694443408550710020875032890350684724744437736512459615784755404759008982253972465715876015545317243575685067885773058067896211103303783435173199890941619304396365261761303516312472007386054958682872966270947959435838450517401804208449027966600211418809606318873264325079224104775134927644025009098856026805669173297442464901233892804824871620625041547669509470364048406899387676650734839516574794336339852533668290132569473118037585369585336874511981071269134806091857715667195325913519099751393744158823142402982146979337888627423040040323828285199831482990318214554513311186449213366599358225410765821729082737329751894215940779254139275178024910953013543955393303571523999204081358986896710038367305876884154206836824699726508492275643725286402433532771968184593442945810054286473300027260293378736210188773662186779713287062341176554434366154914285385559747796006043432096169469802654080468923631455864029834195986590353512533324043835661098127094305034446453495926211024772477967652717486237372505233537271950354295446710186636484301403269553504411429476215548859088506665735263352098218935713532487765401788759769707579111938148721160631515665657294885582589188581421155093314687626051173718257157566869683108797724752993936893376602996256539752407145464953102401370521946365326119185810622811469813318738784411526374643393368000422950779441661015478916126957162795279150538129392266510247714848865109297766065304813254345575442169558968900732334354239832929261311947060987722513338024547047710051924341750551287415159983675484284794066949938152001289724320568884516452261292906769518491750365434344049138605856120587436575420732109844093126334193157144068469939194847310367425774975505794165265405676275614546524934294698063937991249368416508550139624627819763751415408883538906100252464912064414186473818376095714027924605182080219161598154360496180836120666162886502278138543013076429752202827524316859173358294877119993673832790807063246625566365163430460686186316589587831325893634736547352579436860447811960138938222130134073796616292822716096766049716097921173212841698471233420463515886886373893724693457897515410843819281828220355307488219281852337655275798227607298236315844258888825695644880613568830540995087012312968933692414138887473934934644277536496929181844704522764340414232489277443076046053057806590357223242359831773200512705513620940105191485678360468313693225778227920191261347875334722445873888540326526771719988033472529817534684845428517230398575123148495414803933277601025515714734927144787746636419980144699458695009986706665392705699345937331481101868938697945849373241057993635775744624197052970183830986393985582962161326593939796921924456750882715544966325999345544554652798097919065253696035280957341872872674662787734177595707181655543733241939343031578182536896604387987147810319361191478707670369363860923171457952837109843728677480985091674981507929995552344041570956095543816002568372442214404758287838162164541430257422478559418395118079567765063892202074731523454056963811679021527661097712091074991658565814010606521736083940765238562599904721869918028944905463095626915727488623440080755197249379041863946559526777714592241015004874591479066908693668667126271038381077539131934815551262521149514592918080937896232718529453820142912956217583609809393009088953953654924194147922422963412923070877778137095361494465312512147658599162989492465535972912560183151498668334212722827727478824297330459557148838770405108740245238836699138002233606415983190731941634559798934189517738735526183666660720696114028174409332793895352899306038399311186931347185811607056389748353108549712210627741557560934984854226695446992154090601553565195439748140685347650511542585983940122958836198784446475273713357194584374823466192730811407975749267117126529761714316425363217315864374053272384568557976343983941509586154216677017497729105309046270096905281187485836471887263281874030358136073367540464559970482924278307363435296452065728845036818294467249750621456273086259440962922634239595865738317376710797766338332487839211220425394456870098933899488684680106417953153766290132738360165180462522845465021597637771426475619654132731524708771602341684454580959305990171035431557533783498179900906785556409160318316999067045060787553100531145048482154719044121298374476508804388713650613865746853440861215074789453829449033583029579754980753033520256095750463435707008644079431341587434508350036270403839551734658472457670434079262686024028027590593735695425302993390531478967622014228820714555110922100753706618063864135811640542688209114961199252950286507912691436446929640689204981225822309411987525793822085174502414699927192266596516993128097578754265965680660583063303611899904356620545156211862993456968374589867199790319161914080545258242558541363450017436782006137444584144200684073274706525134608011069044425102332260781090600274044483851113327143819890051062400076656986025132180739962232711471043145339669268973309704115780596213667151193566392406204796538078065443623275697888944402138359183004499722921965410279431400696271023847552345147237819860943308630911787173139434126894760254434568350863119696451219256167518733943438360888143599660714387371050282981096187427719966740789203304450037793132106441644589851202692021612965445364540876700157304270027092738083575746509160909768262086542602669130117873562073893026984815574142828113991874800931814946848119447772572946833614386639538536437343231208144505087868232061728579579263734354571003201737557690799123286679507129860990763559345616723545394125937517935089915296720407994447392207800920212088891237229689896720294510851527438038716024472929760677610362373734866023385664368723140523705772756980655553106934129651835427344264058545517848622128799759693815181709594480122859678767082209953209734156186380982793550462218002991276721944528007425055699958285195926589085959150260762767685890204974985154235361799052221553651601751773175061749069539348062406189963878061817766377844123251577071957576065430114252656264861240999726968017570332473834949978355259538955224190854492326802023419365747039886176543699145508635531096356079839176260721604667112163503755273249272501157932102596838542822660229997501031251684987471642192282973207473076085534472369060614671008417132768533943096534356374750368305603715297501182559974957125832877607151380685040459393946374283503001847691099143052585820802143244856292994965903340346465753315369332114415083599137534371527358746887947507563869515524783178080957879807594386817884612660528884557999397787123923184205014888753398326875433961463725419098666794134152780418808806700601847406057382583860648113123899638362173279546447288459220702294643732536195705048006440936154652902710521764839757944880737074350965923879042495918053774328850737557670497536404379917591020832283563450730466987138291218883296943765747994813707460987286496908354722416618193370664600191061845597741472052265386398949129282265305558540195518415298342571651581757485567727677928701260137421456964962790053079635161072996651386578281610021874768598186829333667819398187152599007078921959282400693493336549506795354474775974650756576560805974468010428878044857604296848579814244347313216018060211800543003842699121856624267416388276168757529979119748696580853135202612941907158761911692673772730524563409973803184850646371559750690007082858507780272204156873303354329946639373027007061173029039700795635492291379301009880600692637490003464746477873154699677394661098771656425273630582826360101976126326095676536589738984159456126190919270729140735501954466887107555955329777757599470060656992386202529279068394723346148929933918374360303860102670070457788960855832407295628993130477630203287807979274772228607560766340505569525917510532876123443787121303541527202885146640301769652925007634905591476483851917774174751823926458878208288922848705125923631254069324087493461462708825726392923011850809572497339290784231144070736281681941520057170120960310119949322546238327337547373858901351315564537661533726144720050946111888283589171117628615855433589535523299809388876273767126732933555903729668309911208811276710649040500435696472053133649496980956831913167901539676844988654698906732170541307884210145637300255836000591530024047718564895057587340230943665760185743413819609944424133752667149121391237535437977874776246672291877304338315405077434979081292845545621852438261515800223292646537493018858843142790769465517301538150825010220757835419981995184583506547290781662845524831827539661376102320477387055696346585641245690310881573445896560270822666915843861468402979874746698633237831179544723975136452198600148020457171706848337533762515040193749513754023278091591324937385952436826839160476574776231667539015082051893034854059887517372747239933564144416806544606823148805046882586791150155940312462882813953988324609490440039912193838039061846203447554070262887630085327662552526076965493403406775554353627900360044725398910160130776387885915996556919610026997576280863822061927930509266656199700870072137715738992388250781699929164733762675845929124146587129698454686746770155258806196490674010451115049259457562995994374430220649229194521437787135796629920862137284017488190005493964021722869235232062470015056754808994517599114155483537677273328298356004112027224581475301881971170562957520447242728277765365806262293105834704204697608884942455433235280641867514153715599691057725164604031929521938700466796290938531507746773786555407184458086140592203101669689131411238034453997148805985905040952748547409483605435706475958140220536511966504737513154462509016033355923012591574907961029819404643970913362843572621128551918464183834986688712708367852249205408011130315277975913430726371354951123320761469858187958860418841635845258864812778321293492639042879120191390062520385382746400630321237567088895812884833475978619986197432922279738658258612924875050220194547702630503610271573452435307269519129902663874194573553297122557001404894229611039487634722916514825702546743478663117504269909878367673552128604028998248015868244913093932442659454852055946942605123097286251107980568975710030851331595500475021343163663630280186494783194416613427272953485310889683999081629844204640358517470278142308178304804459828466462791815549354221498037317059080087891568944174709334853018103233765376026029867561803858215261094428896353175007176888566724272225215155750439475175266262908952263645303875809615834884775460755251375615501388760392947908764068657657025591061527430564529725210759252371001541960511824123955612184026227957471042435398643675366088665996881043897903344528725996527267675190387084139593130888276494452024931025929476698583951685540104743797853078380192305647490300644502005728595483915889654230007262285610689591667935470326951408365174657728077664617240657929010789965025368363382166029641817315006101532388074263869948986610899876589620139784574183736877115256811431028802975956341168626803610717222286569385063878432566311484793652708861581672305034078410333618853873782261881027279656240080350030820511028631613809143195789349221876820842184956967712462540926212423625903440946738311481718886411548444257027582922572433857013824310713885502815570661393350434123118721737602595512711446480218123399308812086404386893198251966409591195289111036077753062558071361013115069652571702538194612713034558640159743163144982170749905059415230224715234462473859237135449166072086917842309196118147379738185862381222676064494069039701468869576483008222669389701608189048178019997204854182015524414099525341709127942768907083505729600752193032534602555677317671079715280303095808320794381033951230398877298459012747552579139257469863272457501815899531470770960318900318745511668845059936328109405283578173192533492799473880159661784954846033496276328905274240817005585088835982262593086514110943850345352677607603873214079586601696255021715739873120899865908097011663247686180769261363157767378981706344007121795657294509129307384406880777452855043534766715466640824431345803265755876667583887103543399192599311333535840462204823839126859682323103016930759869845822203038920954289327034074805077159211743998572170386269772400930072812487228450028935956457613284718220136556757243589812181166622155400000781201168161337080085531078954462441243521948276851493738988138233575190797221639483290686489808098661630482248553503389753645377285187024790516365319946602804785430328146048936443386476169362983034226483553452365111233351050929578624224011577437698268741057972195124568248968332366666845177251823706950353940514974371618437372643206624364808363659827399338753817807685520689624579269376181911588870480238170730986391040127325905262561129759079587493929328181994586618154322492389908574409955724805726392409629618046956961254954866366931410661704997013487030375496638117521448156629345569401646033251522098243095365331697247862715493684650720912933417098200361239044226797569279194753601265260777935023107134265562048449622335769174220376660834589910756954742942856078960606533781349285530674139344026150060408890509452881175364113185477692841765946809389671341674172448169215621083954103150226242416054052714089592424109352667793908569638301752546341913769058970361948940249224299713509896324071349023595174712872655020840805920028359549942684271868605459261529598067262191835335678730290259549863774436612848437266771202430381057396688750818839355519750413936338189101668141343059001418896273621506645455998427344324911727864181131018174206597431267063541857673983301601686356508014070907962191512107956924907437680326795572762573078645723087606205154169453775761047047562441325149896915532161385663167940324562073754565470069623290574455742592319535158592610835499994016643380525414664206072469586565998692245521475525086286098692758992533082919556607907115996573246750390727241587514389461923445111753146265985380706191121737900099703543545961253480389711361964131602736026256124637073075703928540725024582751807204032620811020331679974715530041842215641075711522638386658651127022469066593264115976111461031644095982453014374005019484696547518128521033374029726173627602020846279824937297322415940758296605518444213273626832260674872511842368376120850247021609698554395434083063880581563898076703160826024067799961783160923638761371476122944951928788657552479442741825193051754323308753095976520325556924192461330789669266003524522225228953400471375005889713978391861924451734040127187393164224427630738491304473319808627277999576983417603750595325612607571997579547980655326284575106331932524504667619109207357190953107089145679083666550769275897955830458819054168039236600578569652161655543724945229184424881998519226254108225010422810036575642015965816468302595526450186027134613511555157655426954764859150994307928932618156040935501849644119843663238985488487995678209930746794282801817647041747526607122789180996018824549350595702181728298204972962565494591691415013483289816096439926192257243907237332585996863195464470849002556967046211365891197424665967413929956219542869317696395623328924314345374637839410669557755887889403261800932690031832400531709290092537891829560391120667109743250976105400764455457498961166350276946202577589802850083084760081877210727187380171104747185310217480933214612977431121493585086557116825722055725416319026700306054741197809609010158603928962913839009762135706314669646985311119994985868959888251534820741884705904417011106755260340818664815335980781275908112361760554903181240681097891087667977494855964232089111557590277273847948467845150293058928293043708290844371037497131063608392233428631623442308089256191125678533977481828431071563069781243083454192134013356109024406571710317061064087244530261980524959541124980117876044309573593677665800048701445102842426844934480948539794772760544027246579327172811924623801025300377097792084515258374182121551420575801953239211257653789177393725139388145826966550748130835714542113619129249725589722998636788463466181916289063455922618274634009473287380116804092538929303004488782361764979782746492906199688178237715173020591252001344141878326943204061367383016702252451021744695043505270636208220757549260703588512151442466934202454139031370437342428527357161478666550215249088626169085149060879543499036588147510753603687780435162921012176358658885684377614005695139835908451575547270644180879995016162785671426147539658949054473055728462958816943351892069115060859334960467468294716472026372764294204594743550315830521557950966250792388046201011491114512334456220336922490121319160168901839877127915388445637631499021388403362663267291437561815978183293098809017931758325724233848079360197901319935601001265925455523638818839275831181111451829295670482545063753018211468391991070686329410413352995822571040994477531632956596852378190958134520819454702727894020564490276445370219602586670493313909207163864674570622749700982538043278801181021962469496667420042076413288580931269108916892513104296294405597079769570384511492263237857717511307048551611835118356639833767285138092455189094032750146042941553091065345674204197259440005838325593291623959096764792060441767177685454798722833031509836075213601545159359658591220177081065262329980388297621993550282303361029684624348806751935461727976344247771821818461476229957079131108201599706459478445421603655927739202857137791508928282104986783907939007495881961437817081913619067901813284723578767126835792326402724424695493468468642938908849066916126899736888291285019516478469748426840668674461362330292811448153673373433358668824546913943571605664331369371753501443801628845621860300205428396293418581989099018275741302882054688597575292363835957041599605754140938479727119966661978580375718050253153824238969321940953717788846248807050795856873032281939645597451962590276825146505713958211388407167769029354070199481723925574424294396056986942390779645876513376089328087513509453436149630807926622752746871798653019157901938567461382703263680706668707895704849951412569003021259788577026435153285924151588037515184730808989481934863727528337049771567750899204492974912759962499682850504674208705160591630555681226840975414635074398749293359764947743363697235423844176827213569457372812647578477862298515591709776362379183078379995206940904094796999676576960397556640604653601839341062941190668746820499987012984938846041827223111274449918147716205796007179621850372945670949397389963120440409581851809595807076093676723798688397623165740207153343962656998989149637482752424234477959251166590834218140178204491865841834305700102045239602237951516522243411942448349481112570730151498943908686815762714495286670623817710143234203172647451305110266247812942253253774012997616632897392765638319562259033959449282337691287676936266751612307023199827822090751474375334801829597276185727175732312737813455296590718717456568193284310971833042770592374101922886959814306208915440989651412595181949571822034113121619919737240068691911703472997263502517915337781617238024295756919742470807963149901636590905852633478694363122330493213069724605922031491536917329107088764942124311772998190803147911219871344971945422411098515905911413272951782958199601212576934234577475965952629386253930922711443185616407539065755272650323080537266507455097328930262634441904758852373079325662312455326578531628863403476734499333106497986090821685548925574793113138540671725522039699423207944828707001276586927132091125107872796109460658563395574526848104361016189582590455355638091856050888061168469697990865463250907817864233168313675923595338183095399209749252711169659892552699839787928412656539193662104748875127027123466698120577827643316581756730614128228882166505129734761490894990864100429901921856510202012749258170821637669605366643273202345514706202991998832927868339721070486098053026304218477249248118511404462212753279732095587673061503318998606119592701778224611839088829252851746596689688358974729850582921333810310630764989039120742056241369280614374915222404137533466199272552938799351255218517620233570431964790679557286963648518632279157095633422134398776419474363930471126458471949034964067511506047303718897845591126215534538402736471134635346938592192101739576273297948815146295821976406977675810199938738711238967638037925298223303368919362137375564588000255721828066621255496238565271451618909009814764654401936971357888582817462123411081196733791072497198037639747830886078938402342851058770178901448939197681471280074220902003160708387059907314175969181877259167988198461727427085919856920357247343503451446827789106914169839089480896193617751247744114530821701135701962805854485822954788485788738798688798951329017528869081097742305318610858665653671769785409344320649156008336908935421569032389053307279379404973932433248066351642167691611404712504843789448264019481746118975865673041848421418073009539373069385264884495858642598713010267362602495217236176985595420780727684793976862476934729580150180405737309869671277964347747363724045078367895455164029532691935294799267510714797056636847803752777563300989051100425268855827955720965278289873968099854395212188754470189876102072744890832756468646044057106853351286431817980702818896986643143199732639009992058590968570782002595765597237755816303585888567816683738389653761747459174018411520098594434915841798767318033931234505968618659201001075848490598354130768912164906885568133683615898466735770027626618728863815088685990609047745405739205816182100795130295138776730870775472693818711140655129337634744596069633648905237888063989214579285744491291632934283326100338734630917413108506206829062039999861439922494190589137241776454754928351181907753799914405949633062133249110921040523417191783911824655777781592232024432227037185490728375135967081264683020490398641887012712303163265380984413924039677186808875759266120024248610388971032795085207505383174126401434261477027207318448520849731601902433946007495213130393812435455247451652760337462113826300649896143300579614854909680335171025402018674032552276428900954647125389654477654504523357749537721387736319656638192948952639819304456937801464691075166102560678880139886347475841245095654149812044017649597370125275623302860853466551869706501819626120460325794317678660134618960473198467398503799277392446311570747620274726233963051631289296221323042957577391320630307836214669603650150744587597797035049925934533577698419625629358714901382051897511837388403485438173539561167918631617619976182278586435369575630988866633878576584453168261755633946706482563467021753780629875084313698817197328741496969643718364885798460271992495760112595040403218070866343101436718726453581464693531439684009803680237631212030137822838939908644189276827902861283951873809650756868864889439371195625606626851401863170418343794622392219085170610009789666628002434527309602398178742838620393317748282573568588625718368598767186759600890654379386632279785756425576931308526389470858274787260757956808565315538669646311696485135650865366669979808457275886715991733750251962778784661947983332069095289770164052791527433653958475987515325500907020700437274543140457529065396690887835841217107803460709974352591576383747650333874497835265790893536051534568623765664506547656555964753870765724240980268615385205380121937533777415661418134702668845922403609688385549543798579355306989075144754679443556685571499267958798391153524744614516274846233660166611393949402430729838996001540553691997816777919330550662624044021601434176088023709536510528581589102900974361859351044026728197915951061845981451092542219415672542697665832840452241141404524644358294175576841998440600240742549258690356556754589958265940873835600265353136238358605102612294076395151405999770530679108505389803552839147633291304656732139188794157232499880338748893991866439712497576958884917461384644048081232205040517532633257632658093460600007996023984848650414035624929761661139513424276081032589678496359914860921304108900951130069344854041455339837588403302961345985855570833494011156594549524337184592196402781610568101662038378855075641335208844058179763575398303023294141018465685641214325479471165514429261086986079053065011056515136745981988146908379202108113855084776710588794693510637912212241458721399822616447989605789514218313635262265359699634606852759335347742937117838465036999135470758343691912572338115364415120448133868434774644159831541120696358236031449375012939875660714172535439768826717199571742107856805323221176134868894395590389782098314810574248265838854508887145951711088351827064136290299289814348701325440875183391946988446678957928190461899216561057982068005520508781307729751979658677531592529508367400861091698755329463012735270806456091065511568076711474152140380192819047025334922614808329033720346079724641474372542037093315308645374298746351192541737815849662783752229366908409089553362291847389814493898289557096051792129490733202247469253612523247161081280457757808132309839965036737042894725850319017636276048250357536703037771101175945601114946694450180605129359126937033104541766881579172869315048148507790119873174262227494845667635096846198207325962244360481505072077071530993637611806442288126760012001231910249503738566027329691041631679406531923028672292482585820737878312357963453419340777139557827453822074827527104212996501245773730907642773764432428845821271248832472842633623523459163018713408028250442086236553944063752136553194432789686925851629166406547280638130451261947785429111197734550560402701744192324992083226039177234744850404149967031655649139658383961590599032299256629263319187118140203656521614007140714036217094106445023487598685894118750731624955191012926791360729153126676690769873841882834016088774588878034554535768955391284789929280864655910794029358956744770654088471871262498295140950750954840556033263492537959000872987271495771260184370626518387951483905767107701933827072896995895130483251658716821086025061463771017676507595616285645752221198523823410909301079969461254365814277415010707396563983897361736376402142305637728153602046621638114419854740684649849688389593608501740846489804300554262183221233741808108613451879750243267762205109773751712183478620245041008179779575376649370116275737222490074567104539679353637682145976090612587493821935173959773273099976912678741537230529856222802372306826982811513192219732657146216117085806650089416036815122606785649930648745820582644470109351216328684765545126273717419774975016910305870476504536022324260775734633686167638622459026514325578666982265421824087272367914579872906711394962675957336826609187645078640102904771643919510255803007452214074510467317335642251598809517848166298301544541945817150022552860186539822633532734239683462368807485083216139505139063771410424002747915709284965102412621459809731330476473318427661709537454458097341421752940840998631446580127831670256824946670038978948715491409893267766987029144816243757278079417116334709634937501635969015512905027325772250073261529695335954551715317260848129910488828332263776779975015305479692947194386856948864059495588131775188740190964196099589715114541488716974506737976705970317449711098274892480900675918669894720699781433754266172180619778652759046492661015539238220295211290512492676033798612004017661801149471119468098261280020642311404153539508612857765282014294943859638689100900812480454586800596545470444777268151384863358435877975932849470947150533598249638241362187019170896892084684125600579979900905053650008062287630095580929566966036885628498344400351652135661374322505394748678827819678172825377801102268997763024993881230313235786759079638282414298672074308259800291895781692046028750843247958000606424872493591200612281098017076902796157025881601448708938058775679378796250829461693651972760924385010801289221655367079200601971744738173627223175520108167171491398318687324691114829122668708434379872518227464514706823312882098128222578701570787158351934593350376950282891367665863605283044697273523754416739811621712808161068226745631659954767067753169989333019226316573879137995176033122731856959811736759951947698775758607234134723383873420677009077260251112271117736917377426963752505184023828579658484346831838424210874048525898479557637741035057511126243787427650823751860865677591093848713756909970239785702024788630102620138456926650701090587093258690538198465451841968247181691880094927596641454368279266161064832844536386086062595894005819129418329451679391334354276398234936361029861394104408387912397262471936277088030605575746819985681972602165464745660579833090665731593017559768411374600798358391158342073854977972638143329467854575137734435712020291452282887480331175104603117307492497918356303971525087932531178386748665296382292742333554846132217838199069647745106720252329691289516711024205267087952548559176990124384299989271673542068620055890733890140487094128610500699107463788643227852740015262084987082928117017316225684597423169776539987247914991260756827291685129353537781813933694377479351181323814068561261398734119213477566556531797689249689928337422721994645843274908903816121690122984542563734404920311197395771355454817063244831552619301303809048896775889853407852329652650684093050508882996679274416835113348094881668380563077928648445687412464386402652487576466180858373411143478740152663467628027893950080038801345855967843445606134857706324524286513009987800594685388818344455705194939566460451231235932471188721122775561878668094950110234271664550695012268666971031784415687864778090105504500639733742062401472973776997793199669940964418858074241272828594914121838935426407887779073991238167037728514241622787050559061942624021668841738280651625283231090215822004090555670739627272686309561482441085697053376110622807999367592005519769862772218820168591777449701642560657536053403843235394509972898138602887197051875791751694931363801841851584727425440103581579996088331052611515501699098820530750993067444085180513773599189226209974484390201846363570747712011445363896890804457943885181923806026539485557884102002258224379694031594210890448662270946037012497154194201949831952113260394641034833819569618327634633470997014771445313836928638297352426971189786599799024877127247653428353823069111993392174884737382515507380536319100170350390459260616557809298666664036093201617624163535068026029890312196675835843280287066604259817491669125836945302083729020441757664020558285315519724728610555292847580354545753248677241319439173305188096094206937591570947163716827179504210589578141638995046100322979172270935415736261750509932715251304231455562483877463656336582724911495096737825068025096447835125209632770071075305495324309288038506682980141400586161708069691393448124642976499074658175744103799436682829602763794456516807217706926697426793701880910536862195291532476866763790943073828719091797525496889825109972359091812995830079677160265001493880606029663200655628002987471822300386908866459668792004637302546400846305144292094075532330077111655208086322719866239327436396939044202257676978314586765046186926833230395658487652156805039009924031850057857964421668342889081069876895640217726196721898299967648634872239901897263225930159664510611114440098175389499561672544857686884525445655194315941955588429427214725933152990341472030417199092505563700003590729519216281566180629720412600783924853407616771214203531095967710489188062196955805468460059345949007087093361602513078521652523455375928319736107298821880007721432555266944644388960280102081717424683545322139529730650648930525276206695748175676754470658533368342656327383314932111018158253287901853294874040790597817267328212203952265875865218866777728710187513201337137323667119954291248775040699334323027786194834194531797800013471887152937602758752504095060157188615326302382905679786193153870769089139251814139958143455140234469822690775639234038470835836709433697521445777103084721740678599349032709747199382207751651551133438965669163942870823202218757359465485875182924303798884518400971764494011486824957743685237312334136707715268070343207588649499179640426209844856786900034181610378990861123060304529168885655907840788904125595484966818838647179614077699119163937423998731424977663338037924860046243851366663390084104694267728166494994177193722815457289633484831454254416981848754740028660135279554777271066183595427989393001002625494315963607015084050804175972687402032157065481750528909546028859690958608836208423028922359063704755755028439189469240984462626178812704103651057727225114131754319924245740571209372412838677795122527710041069272632129756210321446277567795276456965418425720390023304812161374508759410647201398983607145625747045245921702571686788682815065770715358654862665961281007662047375004382909075261722470686314116988490165466331324663774267178116392550999113253018341550824287864544619180422287445299181354279577430588674548573675232871394064493734594062213485118661583552868069522566649899288160384057787597344110254704064589239785557397849392650572339597341866601459441784684686489053924416536613344522670527470928983959672607808254885710207076733064945908119377082186716588459770864245547771798305080172554579255966135304705631872420514937968189048725875236625048302150892340354997318017453174070071317586896505236530107114800746888925557100725919580167810131339900558679569851320402168942879827870925691464764940833213789859429780628164171782382751674369374815327403444225983843601541158197143506770163205314633034764143872411943719065232534894400615045840766631605801489183982493769379519362734840318559894598057453406309063070253306351829065641987840611084014311693653229355274291440376734452214237943084212168565687460859752087682944865302830465387115525018772280118926438820496535469549252526551705010781982977672266961793693231362677531388528507954832610099692811198453720338287127007387032543830367877069988577436110610619019489921239223357793749763525535260136005734297415106138700794174013037847800109511295353695044866210989737546080681144314698179910227907304732295153365567165524697285359332945729647571020429617571888208027490573559109302640552493345129262024043305448795334615636840986691070683969231087954498426508033676846991861436056502294104890757976376711373205681630172216334077774449758564263707878770704721322452156120222059034162526067640460366539998609217764758223794518851447366012902162566566869771590531907254328923395044368908208559048082043964724085972221079841421695247654666592137327822709059342307775480280498926335631550673369692609245455509037056532342837503533231580922415063059593448827454640382735927866676723358660467471943881435645224797112576439588874095589295601768018950609026160272014706445712660001730533727429069154293265051141742550504835151046202424524538671302891294358980136347167078055605345211433418529909159109613477702408455985971696910119829020345725926376780770941351662664417490887675998869488821985287946632081957590616235217283414119312422731052685461590546307472353904118427848672826336701137169346352022380939619062676998293349447422714841900152386184910977687939760027758512534565016031817051094124926355944868142787659489494908448426216459506237698262684509121878386090391290922601943208407433160969883915235088030512250097795353015089432262088741760079123877900965332787292216603285399702499575609805112877377245464016726170724310828241579343781549101584522166044854571532559267153515557260302219703739540226000991624836789451639581254808855561170501135022368876068849450829903419416007180774081776241334632055141152502305983100839005288287457233339493880044746604589064126188733413347616752171147089684575052013706137625585730880545036711126252278799810354063790104333405634999900323096759454139716984594126306234955933505854646210526256297299219116505644981781438231217012624997493137896832436966335829412489473725524763687946769881293901205885167719701634249747984340434254445688027644972070490765827307251141860499294204158259493275526271586001613724117931648376749096241080361926094243410143640311296251352747586071812285591404543566263759747389332983392480499789868525424019016616087895911546625269582086479731494182474323275030158486140282613881167007840904006851537476399064081491997462408935951799006531654112545604246844265577336177218586459628537760753514115937353617767124706238837141218592657734129268498193812561166510011975290124102008603265936464442866007787350775962287759884947255587722591332184797200330290901022289025221638170583157544766815563886907885194721708125632193658130568889578891672908558425191336594200287050611772102693724368549199769314235843713305634100166732564556495717373023446692337706169658128772152501212845633341655911709699747007317648312976674375198992035249557603356715876447377234326505034285920620593812817892103494556920057154946027594119621160109465964599491198326686601231754522673232751386339111138331403186551699309605801347097342345963204240047750412849078898721304123099752997953270544190667535698022720596717131879488451073963203353386126128735121204448477573705247738122261986147625240811225712412709548351946626129398701697217401097043062746190792515274837782230741682933089808342998095597958756481604772981998504246175772584958234669284155930675754232775828418326325342000088109416940596940419059683129653498467937294569367760123252573392157269242053793206374194065586073296268903462943451700310677447625843410387775836149325880665693911926921545648031596977539933114122356595164438247407712295376329632904701517005945772562435291952829509920085219604190187401289055867757166649036750577615379135082032964072123863995159108843732685779185986259849836477589339618784755570582941088017702587280349575260869338011518479799308837139793190568473303675726469640252706922680663346534838833788814369937837736306977794014311245247651925317827332521887209920741320913397184256864779983884459139508019961099147248867225078166393343168313706790613882639395834064957280998655150955962966643913617188475730099252288473761365441643313161795524516992239835637324752183454516654418061067686129394974233101485195303792430632137745943671980674061756034678711403624170291685950295360935404538032333606034600978544877841550871707375144296581035082501609425161997887231869019622783235766616576647378944289871502045833907561119674789208106979380548825991995224963162072191683946358642473921611213580578282883505874672077737546561057027238473243928604492062125094754333796247146286257144865196555595310364659314170125631639570454191423201199766072942920333414235118111046400499719560885059782392970113220222556365301525671141611271901600092272713920998357707147020840682091149182371206729432772250993800302639716583952944159629885567284195831061101107186994486067181211354338169399912251930096154222960621529586599307824080388196012293212209831774670327833453317057932810987842257149488364682967019391969054504519113478948473941411739451462100687946057328201208304298508827935170807055660558635739249591159117697683502191973184719489061618782791195036497174670189881120305845851258749918601401630490424060651046042333106937915803739401690733227061755890912526483418785684025368457670782872439233580628791442899154227958591538303710547205780971780562910819160073253394656058878865400925924638962459421856589787428804549352492237430231701456435933661910085316470560593801077018168175189930025783961445803364286926808898295822663118830006127875888818614634688380314844789694981706918382487273080231043230715703699902451422835782935051616738661819333012658675740589780483587102172717277694577109144566787264089985103374186114672773723832458180613475238779799749603507011234748690707082469976554489754785606448323961097030894108615769410574993913919472551900272263139059183979743030317532513191395328969064525438214064274502103802155182327380389023450031584799195196663460212150417246072088626783161860847915299839784003419873751986016154545869943623322216401390912961147204959456636728640372242280825908130229597747079015310158212554712225021102148683885483172993319643816810529176568288243490468733971473629632058948844697810794733039257715361004451081253621974610346477579705265070176649803093390409429340520003240800089272329577184526296241048538918720870276939110154105631064536540493516729198667853898242906365099043041590608499674739650847581891834685312123937473308664682820146964233728018721590306043831699865712271244429730162393563691207046210884338914408804772599247017622208358926403164857738075474063122449204104405814364581896435626989560536378081095736968977366360209907480671417824326008974275914135738545131687828603437163385607077353694242798993903637045897566704576881040801763533464227403382648182787114346508755471053356310013124276657455966411953664944986674385814025471688920891918967682461368548872268241003670888903239319347626943027096269577608973806619197105364486205951417830551344846501617635150129116494511576068829680063115491759230007774884595465264559979024222621151084273331431955228255288621505414317340535095151179667858333502632337872195643323365044519664014661405351166156990493804660287825883745477340907841491500847965673698654214840459231287322443470174631251106288010522963240348640884023283356365451560307355823325282568987924630842787572183070404512001235402395088048740187927117114612032523302461607629962708014798034710891188044587478399776820752777356720380496576109819648561949370365104194107852658801109171707940628504869616171317360200796902926562698871834304442699148042071153568263446915730531431554073283734506985214562898889099094616007972384263353626642178252855726636379740603169092377712692135902154896229682853745355727460509220595983570967989649675443536500584948733482724928129460748110754218219688504049814993380038745817411343095721722156953610725898261945265947652988467120891611220958502350410453066506555392888874407544872610082886896719184379276234233713879244715723669007356557751957625214362847724238669826530338020577850748278410597344377355896302035697568945694326529240083942706588284955964545763859621898416470657855347270242931949929684383548988560971003968847262616562191203541477209984013483443274942554913292181666056720484241351528383853630164470744748618860682297777845825671003608547445110420689900873666173969426290472449226493788710412238690313939847354173536942524713928113076403819816467803265705569396052780582913861097920075011257891974728969736864177098469840722453617766362362025715842658260885261773196424888767469307101042429939491347376391901168436905623621915163802598457090752519947448540595966680423396098191213424192383716460399143417437082951793049969272435893458977542056334244058389374987154385879644557090180504689597540331642637339237221726151517668487677375362118205211806854876721194808311135604428213160988631832961854539144928852231517260279260868157674727848260084109158375149726140894266580231365427875432066387794498772284455439407771811484226625486021843055282988368587871357561879388878381657539798075160912115119453821686751497430170714661136750417228169489321901442696706454834485870671010078915648776482933753079358002648291974094009474024793750214990389022608678916085759790762014237475080434671011272159737397366078300825847203734555287198827987055685282789556014651507217303186178504021374502822680584418611213328112089780652020923265821671786170364243616986808636492805304587546611740969106149593779081560120051016040553070554262063913418785301069587311798980077415909105040164372479819110575645321963206814460046139484653194706392631746058819463430046053488520029542104024971535114198041237155299585751177446412270284205491694640896678756428360642278452125675290662430509505993509368628397992419614496477960522304858799226414771603280342280813258180568902165491865085256182646341183830349397357960999961171908595794974653302853757269278101996051643676453366407422155839722112024357518737321024360949637478231267489663961541058728270515797406348199902425993662600717913276476872256039960229019680930247992907089926459794837176347595906706282236280528226031012586138588550622652097885818112774040932767360173150974188914625749999174956231101721867052334376873518391960155782614917868570336513983708464712893738198938658810431763847115724191379022574336620454108098006447822879096673176351663159773689513627346041965328340413302594043162073058395871684778394252914484679807920255122197987821440124537169921974519066505922586445033227930075499129452547975287612458772923369817272184181411474988150767812004533905080932053419635101634383943433830205337012138746623857815841996292553718347252888734767476706106362642773572571269201019046458654137481010735069982356135428267430909069438523004199928238880198172726038096850224326673711276615164475847758027688889548260453898502928109893246953047073868169495898049213917169328879864506042416607668876264011409598547878555067313484822661129780503369157758099464148350136390962127133064542059831821620519073613663550912643893047169803741884640017264398776841498777192780336605882357591841477971144222403065723355881344742864051536380336027660238451506454340117598591032800859805716104621632552787742724701015560859689658463009280091209134335342213772352569196960920412365256264300394337054341220642128695276251872209453755184845144488912272712823726211150030363912734327029903901803428550602612888094806405291841083144785490975040848703735735542688509248797372061492206279071066710635791085411401958038362013792002349269337020400165078479560101349749147110682784248977239285062731316444081732095171223034967841107590778258985085346771524584305476580269021317070209770378266352197387846229138836247724214028183872191426895595399155117271938368389558851646167448560886214630233232800680137272731537887925014132319610085250717792402967179681243635540340843695983415858348279898748700060771380402517104041651527040003616886142326306989146877711171017631918760495797284830188650134385773715972797375037083467302075269906992947001268661085555758692661366247540445870406782147547036474514864941988980115667968905615468751447204282747879167048264092659338062243391008177480502410700380109950469217131547123701651258517404574061740643265209753937286342515171768753040486049647712625096450574352183033301485825253162554991435678981203448645377558712041168112764077644214112837363471241584277738550812830401748670446211090761667275643156129415755050586600731748345621656022062056707173402818481617983706314576584660241315093976412281302354341886408706262007535743524552817419045221154929421116826819951712954197453294263957715004310046369096288817770638684874842952098658831450988072665816272607808337091946120151445347757515073202408352708468460426455480282038305818743715140397249792332235273765217624201050316684571763867032817723462740595769150784897150760670639971014965969728994199122018052430074178019788459887345120074256135904148165999155993612182706024087225649374477526240245933667178317154096220148617704399543454757888767313754694165650803907681554561149725871774615292854970439041567132476037523981847541747605788937417828528811462535792031503656827939725157213354963878339187192077182639948919056527432136061337270928198702283140667208569676664766863444577777923042918688811791756846724711629116945063752505063143553616448978172311134033889286758135681054025111755420983391253112409085224089520904303657872680296396168602185325615187610969047871464271749688975566994010584524790838709095734407063585967013586046635285707746767881889096289072962495311499025559261262587273263020108844106838006728884705105122697439887264513160027972065439603268452245445433020299545401363584043669537419229996531339078253340129636689493032287758662730887120694425825484530288192839671379944518656599521969946141199919062284476991784128547693928382104333890908005531373322532449142877465775522991236014344114251728420355659876747224952233280361748508187258645187903298693810093319531896918911861263690768711507877564849341833931660261775392653587482516597039695246950741081784451015918817363649538069743222489654754051407875600588868558386542874446650298596676953160354006138282968857553030836454587192497107423459588422983315595207070320936080982888096123630311890890341309558213159160219090466865198704023471189527421874449266510208889249137177980820492089499239556916476025403815975380726199221804911114001527648233653411705358933942930566934952041788844122919144259172025189538632438494829963197206395552799766236734860970078141628351148928339131760772956927852698223481846591273644636850807041130449930190757827974785336100456079935353816986551516954821176394420292237134823311976088701934382556209513517917129677164681918508735557622846319837531639050867489217057331565004919093847221000541177229230356889237191290892807070769741264826798549295651200863637213662421554428954884398307979517721660438433081339590050378562634945562974230263075876284099744645176603478677126749973334622350316194977071507808039679926970669490326195996496108687392186416895202265557924076887056948733115014015704640005282217423113087098261267078526726957757541671782876758398339050273815427137375087068875231618568742102038780653078756926628761305520875850383946510057309309009163045183938897061367904483602824149098161389539474347097544276627117329614770887563432865857858335640139720397675566711244227849474538602815287162759678236563160983035413456658433830538622753517257911908101028457378578074851616576013069345952445973478303030362430687360410489884337489897299125120680912638977613751033442618164816899552828662770251323231022280139793572163204603945310713032249034500205512409429994381345591874905570612886510251047766262122800090602468888465723396532616759373212108127526974699271000712443718067701998547989999555688732183455138135132339852203073423519825410526543705183639980890702975358987553481832301812801810546404157226986838509590870927718418971593377842202012965649598358257563985305047431273475624665264259182620022000604930088523132859777326461711084578520788377942723641925051633005120212422544753063852030317874013368785779335095035788212595602280635638915088727231974062799402629899372006820077745521243917954042532120402995881593238233810675968964854772285681830952380199101109687721578568265819600544942155013260486414045069015671780600375662788187727202397429887694613840601519585614270711062778950681125265262390437134809967509898439642940656813345323743961046551470976296154360304042249417711118697884610421287165197290792026632590753415458223990354520623102466485261064590736014601649353549187017809709291875448198623957384982359974260479212742510918696081102739693539080755419746753539965602273723077064549214808352446255909573716885581492959543104779285115858655407703301945863487111376617511017807954010853555851385404665074928810847421071470608390294211789925761935281516720550719671831451185980057650899309325990799613988478603949361336611688775859918722841835947291880488531936851013976293288805722325313140215835905835231878382073536160938706116331929164465111385504659699714866643954055496212675771565354132037099680003576977635105415890339500223319517866319877058524028645132336274840149535274565488483136372693957830026057788291915444022475639674468665113091979219180343791944499616846261505315632154477046984454891238624327824715817095645576021144809806746399088705643159618677749412536770592444618015517670581000704787235913017393370971325838733359450054665913895528435193350187033975206405940445239356840923853602458176012914564664249197608639565128620364296718465141782162631184513518430206716461878836620348665492174305370451634430964299969271610873939758864059177952020397339883505126460483606172413233227621533217922394124770072077870898317823045925022814697858180260134608097917179878331873597914402640503183751217364037680619515856665342732326743530594070691052916944136017449257350789712484875558231604543773068756360119495278695846813019697162088671915629148390571458984040972015556690826778507335193584495951016619935518641248121168390217257100604891315808104529077384664517153457045575504918186439292745623149557773231089861834463656393500857111962937836500013137566730078035755744621775086902549720478155026797238939918820585130614496219291626670536642550216655378551527444378985335547946005313131130343905206652486919148352769420128590575406777679062845096610669922190732113366529378139555608821704848420708652082856645983602443858547952855332974034447898311210968154279683814606823744010457183669168413749568315268571115995433286026440246237101872598323896370518075048785289603995615023870986633654096990836649647108178836675616240380235454221878683139227427074748907901520909902572992383030580413790745702942713200144592292979523615522947913151910247282418776449746346833946857621939494662959960310331920421891943663024805877840166360395768183293455876627247826011526765305588718426261214550079868676134519088434691086965837232683086973692883298493840328969599220461401498184026501651425945716456436797910299427688737236339462883970144443899052221335199931803901542698983252007627328307861297931537474592072994459603753517502721569751826176552873768570949971040282559996352179661252632300841873317609475721952377358694194727960990241171677822304384847939378790810348050828820685159016487666918773971379008195115256940307751879106448490301094176986946400722385856138544640387215548444088589523028727737441074985217074713579723266407399333677777243290607885041826839031348378103917900159898475082360554213076552918683369961361613665629961548777185133107230756291715882820124617446672263368366854571269510913120291922315648151787795488125466836886821421755211678241335760843588469736591945324146081683143077678972207373835991850880147068108543496091576383132941995092259711873531603576445658779610960146050045999495741536629015248328311409808108685597690464393091974840915672880855812086511963999696516618733784498653613624772612686628813766752705136539839463129816427500593024226193533110961379660829971550288334605300169739275787965622128933565874914683051708564831103317267194028147691492126802478816238119139490178226826112448163889612484098471497238123407617253130960646657463985853585672914003635707779518623295700355081662878896710537695073564668794261830712332565679819179728202594234459824543841616698851142664522256662394135620319775749002905737302245262010806607257879577429878056249632446557152015724453119943415155208020754935673791894254595365958208226297155884948633198676386910247575555728856301247545306670316536715643826075043675946936979508491170970746898385750548629653662524673697296936181238204715828524737887341719370305771932280306367753274070755706128759590677873485153808480110252078984906948110002650626954685877081957693582347751828015010299434617188177992430881490781966776676684567077082277676928352934075285959034661627452789417590428900991779831832502696076805463466603583408198736301529941800873017166416419031812839984927586556315581689661730918804097161304947637495567873652284837507860157906206513504283497821186045321276385324684554911619592682130815067476748291201918789977809577891165420925289508827768243728889188210635012021657271250276613156828698431466395455175080238936684623041467463848404196440602213077994970302671118956488885790332097179669719179573157397059858583483509697569855361898107904347685919019449775458471069876705330991490356053560750830473233547430068478855520412621674502680741662170225125344050356018772127434085318445490555113418046005874583562954008519182774312045847295920474765113799366502577412576310910970036636860509607649839824827578959716356774479908150118543251240516515957874138720866836333425809944865096705084569854898413879595370692755360965775230736695379077200346657145541547616542961013197950597058110375040320730746512567704811534571276711296517117813809596149294205539431070131136212914272826272252526811592610053933081131942332743767444555009683475771304292632405790800297260633790604539440009679165978407857488019748701834288699597105447716023149024723812562349484121906885646010589293956209925523890525838933647976711489441545365704584076751371659966048451734277903968756918521418148577989665885374658118432255110476887114402664336450778805358540697879784302219087395071540533590710055087964031321828103054917136902554602407019838643609245611777487567426592908407193373284876654416042217078084608137572334261142975305283774737375566736214618842558212880070857424876437551042027089393594239674512116375992027084424435499053621573775962958680608664335742399192159497515859293848344207853806628160432871686273258321115663519300718264804755699154889282406574454320830980080351643134739007631957555896319308891927917566306608425016185866933324397712810254289981006749375605273706774263651836924227767489950897529232116856920858824351269615416542322917053856539661436992188974915119955149729755599735223787818206451178978743586702820785462828442918968146587192418480531606793438042958518337473639674960129205075818619667505096555845966554457776538907410368493913056336410747296745901201974847496572699424518906602763908938526247997672013487328438925868955248481498470552292169914902292354998459994714084132388797575669637737081391342819892578262596566641743747761699892099840320962906878372743083244692805542699070673160193896257757358877097665394747569348110100484352932709602106949509970884594579944378254750481929580832519634108940846808461523400788575760192062040138931949333160794957553882404180817582180779690425107291994855383534381088967009510551736773199319814443894463276574726807524036441042498922938640581468354723165901811318477143652193179749336364997221164196461775793013688889476928626954888331237742100665103297950141670710821321002664859609002966816378116811733100257390926489509105139576268156691345168704039663501887530419040917319218716501916884248714069224823522733822112944113274960124746490924294429949506868368783060219759668834691019561079560618577812003150430541649009875959856776912291588261909927903745218420308419006540210207919366824636898556624848140854494031310853901482273688825376115457995320895626851106870332711845078511108038096962313343425367368168368187725705670385487334007943869337742713520216885012603371739085918195607416724530318671573639487893788607727405467793163910299118990095079273915364386117683596803768841181279799144744153199913337900862269253556640420951568559680976363756042000596450231912728252582696060990784497482906450061074767940478215834935887653987664273984706422741422152510220890969195308250352593138611934050630312763712074842396458792873398449062969959496092526498824211475903460202029893572248175581377961557709555772867515219991051149966972818996129166002296269456601850647178601725150594819827290352089281729628055178899943402387158590980589848697639303467764271887745718114821282914596086941133371035254913295019112284919600414214053092322199021155560513661946895757901456770882586889558991046636868620535362605562038263814652954780107789771754343717127431614402403915249955685528351111057570633783045570918179154175289328494058428072202919847681292985407824638057055382108175831813250128139220879961476692382132274990313229707376650406304719821597420596193770936389946506073767830393967639303223950927288282093930909710138396792845483260479221790502117613728822881724920619517150524752231586955054950617920808771146773911184768347855194078379507833179276216476972867780809104527774020125598068946767427704568148063594881534854813776523795520535607695684612120851291174217234703970869834389538269720352804491879582045092920549559146827166090644021416743812126298642642024091154783810202454373141911827096776328733047946451442144050097422627952788752134383106573439515891289916125399446148752718379633109277493144962516601235264930121284914921080823908455407089826709394834810894876562337104022276630853947584803733630487129018246583468810947838696758775508840790142288069258212952479073778385376667048239255828769273150744401648352977057064000856488858637388358139510047203673327008206059540277779630113365413796503678278205683707044538231200761405741270063700772485446662874428110785934834783703332866577732408409224353349532310583816791605722869976250221127899992338157011869542515751679680535076640455231669832093562496628257148368050290079343848067242974010264341489793568098283670760442041582302659227410651362184059930683874517393858997779294710061954692327443524701826612023100348788854479561827101948396963177599591627172068813058595045860883459869394473820119401681860586097619231761741183376752339140310547369941663457671782795267356788141491919454496920365892803444163179303794588833484011694800572552894380590260937248489756066536799447348272657952203645725518185148756605391296609683533493075759949875499979213334967085993542639396955142035645799184248515147509889819901019659069134566295458436350897165878884455952416638273445696137897130678854848512703628343044857374126170044177475563513193324638051908610345209755941834717387004082520989911782985079738336135063488925865655335634307677386596772200285824656592363017813056260080616965489200258637638502249376651547791001434806907023012250932211990658208573181867643852396493610047096415610237918145721186406747234736922626972670654071320216026536048342194275583633220314261197823551951674653983814806921279451827706857727558102195568356512472618041403783553689307840720966626449796398139430736136756917100467908039374938365864058984819491776584669972876447131199034672659055902653377192285458440761825525075112993977562080631067426086030193604388700537222401093453608134743427596753945766925809223609869286856611261269058175797192342676324458919582067095407941271231710621747462538341991872386199951355936540738967975658518930112127225080956302819093511847953909919984676491307264225162609907919021466460622866987472250712547362760027462319594564262238192620246769049960720663152247521447646130970458232755522138589302376933633500049754834801210085953608418476319423264888164666108364011787459268074381195075967140565603858627514560240472328655313249652317542894252221674693842027060626598472942249514955407682750442322611372502118485192383562715067437960471900178728164989863964758733503909229658817092442776210243617643391590078764745690901387674005401882034689014599182344689575302676607034737572017119706604441680912670517240198274874253978879886553483677567112063505269391111902335062205719616972473496684819591714907307875319827753609796623990288861508672355790100732406073743747906517682410166110354969706389830662321843340665108591510475907151433531231385054575777789162573062982970022441761161549736762497961334418035410756476019963443212352076839541614235227948561667772859663121721559432333129440121629341357366524235219542896045307687572138829317720412430318572613308840000986409072765319390883877048116979728090842321294087189465003587755257355982781960665920182529074203629821150916630411990136909978808801355489609668761137955565590057971637555316295951076883466730371512007088376371780259222775243404660356604934788496078721531571730986898131711591145209173393099540261111829131698126577858889989816867669140726558592148007556251827932493898802678993553772862605295584521838835367257780223592824918997231290464893545631726354081232044054901659501062634882229331467157707013883524719956599553188157140572907759140459927652094500471109149724721537604966925576505856663160304950381633282654041054618732980288840395372251285590912227261679786699969575645770307277696475618124974054406240410574438130188508879665023525999452524419081507471946811803853413650073726004224532913735910545420647130935202948362575067089835503792341939324924702454782659632303737893345806037653642003300924858164934774259067874680034242271687587976354839882573122744582241412058918494068301844145870028855140519744386518048105268035985009184702166664447450421150101610163750971233872726670047745927681536276733960609577147755393887452151210942416582615387805389738452398428719402604605166623214171401270057324145232072687960208039172226284887572045628492676627733339520760012343641332528730410594288096388160639840656586834199173557889565301365252030777708785967009150017532817659766110101015713745759294448082264499280909025287781499403669911161566030415885797777927487829566093541752600129263125908114371851409518725532674941323224486970795148142808636743393526712436619972172600163762184477708524696622124634702632875900738820884841846034164015853287269618853576474720319142232683763055860431674259677094000484772727441534326292800055968681177339675731360731072422481687400743066583545677152228681308222386220525912634725724191493194360110992345360142493560894698977624839043808611157761726455905818596836086954927840783787627456730914899678438939265782986970673373305697867617766431678176944821813358730268037798354920793903498200783102111855036524378878754494055932623521557256308352919422316981983664640727923675081713964806003507894720396377788801995971670130887936642370606609319168836644266273386281035174277130833105576946017818517835036613851220540955494183300653942074840369917246836546967302148579543916854760836891816094697663544116817533644383273150132868000153417076860517179978061397691698536243370943397118597266483726414125534460551620852381667283181462902537680258953547664333282015194729082332958979940693380512843977414570904960240412334387879085937374061280082523807790084252983150215140398876185247174153476336812861566539288625895283704933753037006460637104665609861370434094933720139058722315118231462568131738810168233069782080959440531648816829659325030475872061849263554981561140723368438245798426328767004678670237276290532869495627185074228108650972819132966313995993517177814540356335766188549801832011305021052076490978853363171031692899997992093556544063001759133443768648063266214153353676373997705973521086282094718316739230578836127473558887832946635597876635473275675654604850836135004530625748285564467423441690533464561953399346886853348315645091339219094777189552093734585571511401193249799818913567621788092725097505930005557197982718240526570624804976773352977845344744826078929423542344987317706598248247118033954396622081300045128268596829455061069678942845753645185913006345932761753308217173462280752641741679921294549609411742662908132914198387093788481729556323385386683398380243892852150544627765838085367266252164923625227144671700665153369293045216839605618470278304948179040634109541806110258685423240828109982868874874585096324842331593693842468199979028335329421190512066974769410982082154395054925095129499992090628611360271781014802025198620185243316098779906695343313109340727064853531629530241341800076691366040799875706165025739094423139512455678925497281983259415031807506567682988104097949398296998214108449733762174886114485650843986492386334294347244370975446839330569560603138642013727294313196560934389036834443199508562168306885918607107534071604072257490584350669367043853319451026261691363487722219800059727886755402437510088580917972261988893101119045229727219333465042571714336214640090398115928722506655940887472423930808493079028676891335387874332088142841235968255264424388225066658920624370206181404197551191779403863482568890717474574131905442761876425266457874673573519435483124002525957245457633370373004543658490039525653916223344103304628997380844308892478485159384730224463817240762159891267459574908596989117530039805135627279507728882001035682745075741575556169223767308076912675945038613156410321753598682797113815712782914061453419021521610025793438618792768102769364910224371471238211642652382066053432507430487558272595617323410893974173108662190259063224738932041030468796890910038957880540379475542327309948042814240832040205481703662742068838714311236407311437812497384527475660247721844407051083169461978362981051146408146059896620662075725955434351931042165595311261070717694943039382817297270280781568982460606277852542646040332648204548162850880068302282836227938472175708157663790548585314042814219911643237658133281136182988169522661266536513791402989199931146326073155451235447572502559851066107502609539550800896623777837464367083914132831629709223492723009402560768604304397516119637553853823859042001922190198106823444498732427824448738244181918534135261740864288082342367383799397985525137231435202132722564182705614519231541792150920739570936230864898808986530117361256364449106453252476524836409930177530741303702970157608732072467501239147343749477743095348764769669421941191295120490776644014071311538425601490623837058802332281481399327163704269572573101937796055631984466722613615228079728177957171818664492124331202704762978961430916239440875630139174128400239667276926960111605137617048194293071582468000416733737562646825456402975191790284845536472185442543319382881034701347581022055945501206028227674987904810405443117286978885527699450153948557880207586076400299404261408687635932608149538677408631490731528207281823766945555465483567292881250701138411248078517312595467529809254203863988996407118914874634347650268035351737835382930980150660708643686050030429851081963200577749527819456568605495574358406365347892429234091801325892797229729635793657769015073033060036616901718996521954187116132214319703984909451121105079902637508026907347986167129193839084615412986994623563089161982358738035280610859199153961164669126068492080779732325165548939473441349758393499580927632628459910562145491088101888369707941493221073424264754105202334463292898059693409140612577209922341888413652648994339684246283354489367080258378931747181406949584733079438645882213595754897482655711029507145556541535477351871257341796993931220099601020513874127313070849565124016651792255159804889144316885117292140257364836446731141053679689398697210632976438533911353164884911473323949912818344867905014456769378949217313635841039831680058796616928468689928096197248539244667766129163176952099359339145346423033923585909228624088140486105225192048320694864350516410758737789318883333475164820459597123867223194769005605018544103592136561467197944893822605137426356519100207084178009804844342412322850401869601665960760586813385153411633220696000590549148921737433738101917484164196201677233331132762375656628022012823841816626524835780728882581033843336914820477268476191715469294523649690794435623766190397222794672738488842582478120918916993582145345785487108013465466388309803283623422655550387262099210302246224970158062364719775287510861256320571667480858281858723477305628409974110958953218825000273878641662615627882870341717866862551309231023890520048368015348563034848833183767965633659815451499322961619421217393124507055117986035816075276717206710226144807448816619596381050162185759109555616652110220734440268825299951998720705062897587390967007196870729117645395101539855328900101735879458570245359184012118448505563363332007260153168681599482258013683613948137580178628284188751182619196536597172455752571316088288301049441693851530261925211419810082825597563229857781844257248477424537178495466194716797890529846118646322227870831657685045666408113565147299662263757702143793746571574942137156084553959407277687267002019692551011268615805274975151158578120994753721412229848841428106854034866455998363955354456299996796990459214914514202622239005917283542013086115976490693035694407258185590941840459261992533215897282173095559043286218692436187803428832000088862016262386756447199575334237032823867781614622573958498547670407839748127698480548532239410726667396289625306926497156153572101667453808442538140630440913621807697069960273001958727780741321691878975121888132678078619480718004228916877711245972114860354442757822455168516550722718047910186365588578364784482999179267887136053159942370010235909550525828402768127387697738974755936839689938071293416554826747983464144435154294212297492256713441467056490626417653821765381587589409042906201317591725019164435176126030494745422982405063380928654748980172496446333691354091592138675905639186413436674338388833038458392165628255295633706731199532655715147276949027919220413788027220392176321772001469202592480062644839780829839224153332619915935138936916109266021688846937416203177537026966459453332094474117005465400370107570142425455665623099182745474447551894038859206393376039732490378121508553765528538010022559914790550872890250125679216842440566653771074836970458829272078371549808446000616939202990792360999869231129355886166135392651662796329783470342895809242097870015997719090008535906468367033778287406581646567653820337242264130982736944228112773993802420471360683647490609790057343719369506609877506787338124494114351543822675798587787284284181762526478568207032888892958494424442746601182593448513099193876334394679603386273434861177290004826615852259879823424828510436024473881621047013869366567456309812785722989903316151465955172459702931916266615140462251514546149502960085200982413269171776430794231530366206111498586150958480809880774417292757690476777715650302130279092637312451026714954496311655702983610277866881015667315426503746056993544361692337354696030057685942838713808887887118879369857078025104105060778491221754775000574303562181733810087069434125474806866947422927194117135952795876380127373707494655983754671734767301833363280277511717262877956794597029629011972655367484477668124285809543421461436354040358974061432191934983328620465756415907294168719706203724182317203707570466020652756096593429072005135664391618825555696224251483279914642556774258143448610576298033583380276092200629669783196414957079265125160904452085847090648288562080517329585620397289233648050350691700822114734283943826951485700642063183624371481096920905893183670808255943068842730950434041063053192044408015621730419674478076845243345337640949218213792933857828027499580403947331807204720226632536332842285037953952069745467789039020199829867049378078550993361864417426499776595298393931461568920161256177572198651911924077992997135079000764400466459732831738932505975733449831825501584760554736857131983031011417020261070709762286316496414569109607888351110195391920303728426681565736593147102265955260828691087167066677060446205343225952848702130770334110919995614746296047297001394311873398490478208109053681789103598579537653628765270663320154964743308816460121203826733134729774189665447739830057483658449416857349168109491407323171624757237615805402878822692451969321196864888372608232031796051851706183295805729848340787508064699998654006926497928624087422967326481192259504941835170373094580340891356673009248649068186186340803997299047337282635213687371550874376697705986155813724099518925602767907059801313173583477510686112709114319201900690829322168588589789163807906819320626728278934832279858854933945978501217193252467022919024229352596382538602799767187846355571640261387026720706387349839454547943402645793757011967815413117840650736524682187439982673236031731080788483891745828665788889320130577941214772174152368110774027575431048032182083482536844913271832874221837628390718791823450376655469566365367325667948122308710831115398311558356630814865886930230445380988790798053853473487113836611857372695460243168673601683718216706308305897480347622539421638611730381987491672383837030817727352425325430522538492568568903048598694529401147645051309692974141522452945606508949750731018967756038922825822343070986693996083854393332630389229705043310599164808100060996036825618833070325375646091620672492832704002323710511908242409926245765072017768243940611724346569743355317726858558430930487482004820894630561924659968188611629854435703006159826463634857594151517320534134301522420374542011570206272500457907048107660321236401019679339689156600512103512499058738639728693001493393681266653723162104640721234544638062130289766113125948164456418301453003649464386783038705006390354874687306403142421413446357710772326679587763782831571507806022232551018009005783480890980602408049483060777102287855754190817330775314907411179848514632441031439240490266423090443532557252882600991748356502582224155617837146249733559257128426828486422800872399424078025552450293378321236823473294007020717975165105405736000655065926522097877148951026609430938176295347819705891176592639344807481964094204611441566586085250309686276254042056788875625838628059891886243978890533648026535441724259979634738635037698426335449681555086265079503031468873370915230176425936586747264745199436514093171542450756218994588775883942674842557676713095636036339868171794015783844456497959485744531669292619094583656967324590275940686416365868730715443455950932828774828819128561841301030366360097097042690146475248795801280151861387537607239545829110493946117972215628068496186753945672696820241684978329927503980976223133050435427351501013463353562515098567059634640431439996098815872583157665831737848709320887760834156488969151210267578285239263084932233686018475251533372599256209465692985712171116509100465961101431817758245078146511082697848520769082740937206431821645277112868756534095300888369254758814636827466230253260308163048829042446149543837698021480149226858963947165595466876791720022938688905952091956335833167980017025533873268923249051905929560629704267454661124549825758516929993043690788341291391118837621713732405416927036143811023745168879155143822983384932857223505926998408444113170229552703696488803498449720419144960902408970735123170139910106645754745443698300273778350148575932899577572086075988943907830732244256390889354047933910196216788222110280625110341898934795876705887546783293797193997868816006842265758654901501261419939732107142537923634149109551188725276658861763098691179938902378792442732140998248009073060003876473523204974491040109158833434075755231741468852614490675053191359717531110753240603484867668610954950625721103838663205342352312439263172531181785028857643689650404186624094725200474109578085610708650012771043495655294268253521977956013078360883973968565937885222356490803876934452336412932955098032296194842866248381919497613145806434282634138396762450481311664730005193241442007818777798438935985462685396680828599912849124624448008066243737238116616246105275169297909130509004476275946350329394232497457778144500520422177608864292355265797509210047847899934127554236473466849137706840642253083753940153642217618615163376334219446505339347533683198434122964332424387584959774452380774619233100419281871386946733141078004130685977085561229189811393760433398612755113382181302279987967075547421349907608695973183638378094655861649622058919511938945956640247896272121542423121756288676638072469351022651158088377604152120807960812879991002887925165251187278146197639167624947698851307565868855695081985450940499351510647173011559695388937259836320662290586039657338958005827784511301780297711509425015463893189492591958397685877474307628711663591502179722189252886797683925518462383631251029433593331124758360911962021208615458883746108500852084508433135696578150998212560539590217287207751777319712992613191288651379003774339202085659808574172836040610268233205916510530440378830682358829183049296840596860380415540325344211025871846936091481586618832491253212260532267773907334606870278432180545519432732256158198380484843835680306251570283350280462049439526667140129393091979058278991243829406484036651603338311767658131413866499168355674613655492463835244481697074380537137674259972760872138510128822872790849030896189413125603732071375913733185637887831096487681903258171862716725753219218534071764032081910025828992074701883245113331855531716753031427525307212039785574229068249894251285820321203389299717300097140481531315028790919977662020520227935779771165258309013059704022483605427321880914657658118097219816022136566408345427001635152197288888754085012365496671483452294008254860344527297115818556987901796814158967664326684980319721967526829090874115401287154991347205737669173427565443635720600114463134425770340221615953415020631573808464869220266505525980280623103243824937261692142813104332698835476150364651926462984753567520102072643403783974137232835465982252433880864367646790180506108453849996605384625088999506330237079384920681562884071201578167462636477795186778526139316864090978073056514503151767456604783318325536404922893787917980419534893279280273127338081379268594329729943993370281772756107360544367918210468680864344617486393399650340743474921581328230524091400230635173516304045376855260660604442314912323234457852617946711551530452353046419963910653870281607346494774270912437659036171990739235197075609457126122779140144066771108451801004690331771276563510581966218740673597347540833754453215956986872292777360106538960826372785970505567154882848972639748506979314807479065681372445806841379847605378916309597991732348051782619040730163548466648674061915332425126307693438686608711387700536902629134725006536012683629066622897152048522116998620089745012487213333338390433771151061278729376195264064158686204434883502889292197141721574521998354281936310725186800372280715437607766708922206364072199542694372382975293815437928767617975464904969381118367574780691433210390704464576382848502487244485759591705804289116565522193042985018046778726435664518963737556177954647696334739490673113571189561713592649728737751009198629112791021967279063486674231710164170971267584393590221632750298061198380793425819675792410905629260309846833531735462379546573489598757216276817694003178327116653156984558904918472311110395072875037086557879792358931871687217467576509920152441204823036851368014003007490282211494710241829232721230437275140747041104560778483477273574043030072627853672885192716374627529611088433375741282708392414804728620420806823050056906599308163952797355760576554559804761900656048872518266648651551569401840390721047707045409578960501412893177415378410298200062683400909518917985873333600232238173440259604871589292562948115390455749508819946037072539720094809747527862915528905910142994653948001905876574474300070542608949195297243604405389716899355114088648940607109880416662951074205832219867857708800956540128209948101900217773022351344845965312405505541692293949018737940278063783071845667757094402448844660199057236557944314111297293749501510393147058658549148611384683464202065870948407427983455777719766786535184656949030210634473406238958245678080358076041405991512677056758241990086212607868380207520631573972811672898316893252492435771825545949899556764456485109024089013318884580236270853496952300398411558852163965308681111157465686778733096891815936755325535349850642866635879678784906864962996764660411385642946768812453739542674266969057116447944189209026776586668779744240351746644119653424895093417775952284807521450285522468803483406613704338268874835230330034014550495118736758539401827440633019076363350279885429292218044109914357642456771153798631980023942762840659881928288358156311935725060207876817477780334488636859807632829572701515394145324616538085956218354180136722360172758325539337114026108062332292509029313804369957355834800923981166737330888796287545867227350526615861823542306672154640994555564720571908775154230633164100825081311373699451110005802060732196525408720522414931318313953983931542569175988691695007434312920642488303604869046322485815742709846185803560912923194216035345170022608129593706849510174630361292600030153568892204730038276801542545949265531127780087899792132578813683649798426548715423193582282333012039989921413523818905777613685870149478054728118477225353795411440675852886230139362310332248845959429734594577513095168605440755777371527713400817946209097390180132899582196570200622935488241436993930751936899068575596793723862405122557108354576258193718642607635716139583567786762797106598620034844743948645935753899383078001304979525409698784772496936001963690057500820402844830912320371961084947753612295558805630557862064434012572961424279851636514851616440501166383010498937084916067986866394794550473635744294563800295461138259582507723288554816540511236428075580791012485348814773335432283409193505859054125279101836276423386699972921328742488832944884523060605181578948716988546793153185387928013100371104252321812115601781412088937552610379046588447527200411719797647574240250941136198768830473498625852423004153189726053517727412729616738172438937444455533508003892222267294690814181311900396774458758097920806215492670748594464578697564751931040809214413902131724785367419722587445317359819709512046088913605939540288850821437836743724668668739654138706649887386627408810069674322066373868565862386278898941493266174710628570630160345785086730525942362943067663068969616047693653986337474055563779514583393987240900504680223835903032170157031118274555053531140736315078653855438579368390362913718174495947629452264831842771800589738854141577773586895012082149204396386874980836748633436298278037954596285214734093424021508840099003506765639647496492769984916607054936796239585118308508251913458823003098714154289190979772247806226404489983512622736289578244199127219495410042453741937951866577563809609677370731452924270914405951744824757074910162876088823825880243297960507656028320746168456117425363643031307703781210614659426550274371395888148453097003195391139636770536460280174096808789216800813043693808653476022344775196975023728939695608937141556742417807652238023508703062978185703639854718499124382951793404401455771135251347618205180396017503135660651058611083883051784340173311975986267088440398917143945898954097318069785782501342351598912524819331413638049879415516240857299144528967663008477111644013623476727465287291822631327113788293771635872894936973973378325294656501857266873700345760824582121695316845907108962801876837276808102633947474238462200528568928344768973005752485131380191923590754921729867111882407649318164652204287706393450251574934207804027996126932306720235946186450094229844470794178011091127123601945612608621224862514336621994163912675052275325890998296813518686593563782103180821671459270187025689393303404656161526404863922017714604498790850326725037900781194973086570027196948011191287639175153327721600360616590247991815259165884647405209411868546452652667498373049439257875051405517395823758946949738300557132973138043153195704243611070517708433604797745829728014609040250780285795433490957583057278967337769596747983285369879108003352845860319650311995634647665723667227413646864398621877699382967812858499305411909868084887942155338222703199307095607164454392267132854293980184210990047166086623702416519884823671542358473313093383158184348276134974094986346583252175344213556009507660815594755272816841081018912229764273986857886867074515124731008191953744061393336357954688249143877331875912372053406040575449626756768317487089693587398281570826883313615629556830924742303220810669729016634276912096532332199311279611794388441768767145558910765533001300088411852937523401536420118731044447825784830756008244675609734719080159291640228060831828584355012395551091603911786252830868913206270341418938841935550629944223406825717905339592871212892485728166712448141793571409804763618855217047534753589882367520662067821892066103211735833833128832128508651848031184417828251791305879248293050408446837215528387740751982043582699297776114416266041673552309172974191340101657003079894750027550701782379611259071547662533465976900237872641938179168492094069809067894950259118982049246727360749969151790630308316117720785611660952174796650345603154303207084780170198649887891980914973114047931387676128054744771052996591997497452395458423299188429295542393507193960882566297745249729001420260546740607796716996298555264595110506021608041662872874176413238523919794624506872825087843139182296338957059973592548333622858605990141913036308872599078068383984244865103003216757701444304941842517328199390907963782900945462625458531770130025638719941167160642910740737965070569458949780646879023898391209707940953567257525863821980121589532596860931912111169889341108474867703252479544358723245319461501008055582843165754267679104629846649154274701688721724793657509130712657328089544269786156902957410020752787447806183986449963450587304816856752507280162707477928857946777106118987977492193608214636231918151175347191463955691889886478126376351832285682902612575369934599485139588114505006247793667286739438009737634579763374044750999311113190156310528951210070360564949101846255967357406050431094838227657596748733225132742955752788639524319020579681510693664141825407735502765265286211285718633798235082661020848706711457054960229156158011446290531777793355026323771817245415856536706179596015147965958520162782403590465267830752422511060421622464955438828333987559968098284202662479595226363389984275710521422919262301067336206726023374295910351571380139600500890397485320995739402877576093325848548025050451912702921563109531558115397401632592613032772157374969853514869144196681715262999131783537146466914962758063332545610206258144497839168631320780597797134091131183676744055984666622013572080840420166861463823683760090160080545068068369458132433597380020642265375507642617961332241900353663681716637251215801497668405945042019217308951325124672642120247466633243392116290776565835090199368790921044377177725056795943010650222564926946789536598367943391728592725269921941726422392941424514427481535540446215890664416967402811686879539601518775841168759750769125725462151979128054154512539606152270016655490366509139728296405576097023833881294758551198096843689567992465928580714719275297728532462689230141533939824176367281190760832423113341068188175597449100866086542687545099050753484165351019499306019541651856571872645939174698878874371502535346649998202707247834137994355702738293810337707028778744946491842019150526087001231711060409165949425063091474493418922495022012416011935357093971958791040181676005129537065964656689258022228437522311330708638977523322993704691324227865867279368275268170220150301818941455761047724095884357697629295283691641493427576870806060081632820908899496438632800128468815802554773167124037203623580042767536734763274472646252309520836962366507866080334534114415232850175715632048206221386195239980328757680189380231743202510843085226570059023357245664711745725372129070661049859700951948032579823926387148484159785778585086524499028466896308736485705586176978894580212360945585444144797735863385775801849127411803375340256783622527509315357827187645664045825103560154978853463734463257554326449822301695245746438049696239730718368099097492354998835933182071525681384002537864513068410834341555979347503320589648688621699227519765440892174409003409367219612576812842784228274349972557191007526502553779307884137610838428841541602676728000930123334236828631545836434097059290597912545897293426649880197016085760893276185364713620916495209799851508346219323436220995576946787751240200558745633270390938861478142606213071976706222404953429744269814553037096670616082112294752416187433617381673195613242543006257682015910172720613475880070337719497901292791937126948616733221318099621525689980495975344751023050998261266300869916161333591186492535279611946104103468905494377153724232774247542269649305616635380671518834007574721779727479953878514669769870822046645992796438045898142023420785105583068233512547512595247561273276060575733256897646560920369468819310825947843959176508240102339175740102391268626689574885749523550636450369477780080336942540133562456531200813503735718316139502978867670124718423675261420138935227772769820252484538127319614026478761365960567291403062856963775620795698446488445258137855122970311493714426298430653456506369601680140795707401090021800812487851117182461480999332926888811595060291634586283971678135235689190382983421880226565291955794525931838251356493346456881818368781256335938399944198037842864722405068775228194112483520876056694595662706269527010023902043282359192596398926082024098496422312388664615213681324776969557524965721770011110454563394430101037761961939431629005478757473097604359747452931491595057527760589659644214027984463273733918793212601341573282572873022352707297858271533146199614063509601314133662620348207772596779991880005205336706543529220739134264454395082020369999451230888097249795284975207819505464595881576618089255180225970812862164239150068820082862201321566508695856952867979485168722687196734796492187220364030300305647964047952235390346625843511575495148217603363947210672808929610078533706417798600780309189891490640870351188322515951372441466856339800509044915208788954489183234705523250019852641468256875151857158945942709955177067573878784914403990816882623233782179366867835404605862914877472747460879905695442773972167778390753411844172478267441487396485772956583777505986770697816010689056028101069213862932161357205526810967195040955070428006211754344381383044904150526416590544807639621196498275188062026826558780713330361708000263744092225422800477290988803602945221880625149003210202365638476077735626037156767166531114090625640617847806690852200525815011597566200388613347889947822875619288012580247789841981590164482935575695978907554991995833576407115152931583225151579381628551488082367756903015910434429710186259179034522348150655299280811982438603665646310376961484305921566481958480502859059004918903556778308812881815267676970911302506141705883560736790039047998387689786475807253037567835561617387794638216950153551798895130655105111436426175123006323680543739534027412319347234363427737142676658177301049861477300203659874994806988746716029962328616813393111139805538122002434491325465325814482347736162226336187973861967698685886259158885510418161634595769088543241742693971703705200257595092376081885014978502929121019579509411727605056024468602231095426349076352059847452360089200696253820357856717007866001777395230665231745913287520836359170980413212246457879392740393871004679085981614072563375324175828106796191936733257602175908086667714486357779730917076351575067952619082821162498896375473675916351884639367207205622856833760986825432154417328706669833958887507413087632581690733144412650988176438651219532251020118782696269374296647261722814824925891715877448000333928401227155234047757015735787443194218254315401881232721934220858667121573324903752625005040658590493659144299208879539101242181018484600878906481031475276553461894667089154005385245245495514458487501046463237795273199453623083456635057620950244204510859402860816140635101238299694808484219245520687992680236900244243899853548479449364788498960868041527841233141871722727470735916914594833407093953590474531722582068680282050302282572810337141262814732950293333634726185168995962266104314636398082844718275489348307541779821043136633652468445621436895197472406003355257184243628385838834248049072020756926481993099797764323579119179019582274078892670027076825581076656264756934722402278743645975408907330845082597166904618864249902428937847049682013647751851179674431103500050370413539359749642393531912089211401941668636521315323553934954059020203109611044165983415466699747267821761052102564896376942068978956954855849758308777787680044855355148104093191934441142978132459115230856702414109515850020450660683582736012080621545270231979771307664349808995640384241376894055547544661524640210553916326350254891117703061175147640712919216780415626540638059468325560807250418101000751805886842137442591688071664888263684603703637138596607721334963809232697675736144743288475071536994953757141281035715239557927580147332496207381010357467047031583897754012781270473507113637847675701685232571538391243839866483014801349922164724442464869308984368442465095818795186530892680827786566167733664125605854491023350097732696838050730313348712157001709989386009177515248356867140325493416682631637456770578201505721102735159772855212339201881875559377951393708262366807560970515891233377767424011285255073649185589473632746170317493365782656694664028532299901396207074737843054241568184709070520472342408970622603960153266806033726630645824968753193599422375955174406458511223435187563438531890208310372352657752202057735655812634325121257061750856886571250481750141583241811361350526493330569802503257678938226875793246094401245135925309203942208525451428331156072107419964873099852199721887525204047674830464211372660820833205998432348191931939247494366659463800480065710127896277064313011989199566446830573735346915151768604960380202689230792293110802235038568773876095317318448584297745334292442546727791255657873436561534312361164839044918117792529521095611163939683102183451586803927833851159956595554118216767648458045202235417394083910757969608996783529100404903612547826261649622462317351604569216587850028756491753294261658647008523770361337694998809780038288676993787834171110862598526960988108145874660703993222518443094650896443703261523538358461799686989458741323036469283198926949233979917972293354674272061616668283970885855804161435088957228287635020107633230519002463239503387997974222275206543522620178678518378799210637158558798173487875749033286119984356543969026794661330746703973751971348278345915890374593959991417706497715828273804924688898166729993234793099499372059443629208398032940789859256665326677627093252002489433729467820475957922467555514288082806629879208961894333829899568562978151490314123932429986817299764670810598754447730355374107148579321373815879089584718164125259059875958884461689615759135639109121563556697991185230932950255056407794541414706808003249898531273591926489826625041649360692626577883615865200682154351206860314567432859684636753860728557444023934866944660897966622349983235387888087914998012844959667102529742222234395029249539850536485571361768294472882672090522519827688535391080376008972017148429327089760534836602114537792839607954258222748526978080000170402330595008475155615988093258255931726097681039945900062521194827123885146210135523573735758931757954540294395770038223280460157768404862094568646694295436122202101734412744057566180684457770496359016810246573719082141368403737806445234732240420232263031013771335809249878295900520030843452543042940528978862743787043598153085392918776084103155186472710190652406917357070645725926748195973521439787189243737346942319511553119837789717447280211119012677720835540091543648303181774237830666399862189453381158021921611410428270359400097572951196222517737785474827135679730073377027406693755920461623006496654098461435862332970339085907442836044953159642960343117738654026116317130482214436106057329530647481646489872007041955947413568015346268561958140984414420844533545362077916540442203336041798788477522089171513455628143622427715474194507515314192238428298133514247678737701675281036762224794746522191438452355190752064326258490533412538381177982777814033414039490320029373935472629378127205161953203816451168758844284679877065844012059731288386164465403150792177647654936672097086374363612482949978529711596268974051748218022842772070866718669048458588420961536749943547840799468986550477037497584275280578218184454218576652139897026518285231025084578025240658523205836591651327925125416847776434522034561362394375912616411774453595158154483823800275086729644522683839436967229093246501924935158399644968471425884366579422975434001235417389463237245741249349427301786720592719748687123607809028750415195151173591518164757101470096453478666042385968875050959550740387960222328236953193138910942703557880479491460180020426281438032598777881585980136564163712070157623727419490316652497152812260214918451329819691350364781848357003109759884484412767191070728510509266258410993562298902768112502560759085707707354209651149722267305405307374517770599778721941933775627966636406395975800830824509395052056198587584839766959541059542166270588848224965530141094563987143656570224165789199561114864008424548632125861912986349729037202936179061164242682971583071442457339132208565082696986919324741838349515470481295574359657823651617315184621327020129436779947799938925963873281467276562959746471433153709992423115924596187321325102342626119814655259831189579990902649488904088812623277089340292610004759852897932402544369802081388470839830557198371718151604928643994558302585879271080518561093674875350184622429938052225598001681047663801201971464848784086628300487280177223064498707384976308336151270610225840541795780998680252147986657014897359574710209789717514369128033282397531542644663868568585862391505410665308967084300119617468196137888677156234730155398539723337834678032722487462533323208229495570962180097102006640500779234333866747840856908480778585521906569511208883207577882614637654988832687932352713381814870248056380082113060054975710793691910278673053508042837178555021235820616535028782671201715082549150866740488964906604201719140425246273240573993865707533247744051554704168996835507932786950969034976901212160097493976843732921018412071293909580841653853830243668883880923973470694773067972519236078817148321385781802886927113285070247891501133046271639627127930128253739408522211534293461869800871868525678712090805515787955571542381945984012145941572890521355891642889739748151148624106934369919901561698218070026516265956485579377703829234965320988415642562657455797915888145065963978203598612948859190241800178093257857376523262363789699159239959200866993203472803280290260775372613921431106735029394217055038355513877271653880157014527827553473753081970864509373454024479317978115577905659767587128843981331621946490899074952096088966911956820301246299607867722732926140277849571588272098745589600829182720897690753412002699123774046093301466668408928122458538093987085210165175975528176013789162281231243390996696053739946036429636864820491271882667579503659768169734045589806003569374688641261835747006679936389816881327578851673848749600259006663937246739683925752908145710738573570184678185813361936450988345269673069954355444637677283230432253214176647686816834487588302893403619969703122356073659434411259236190512703125693501156998248712380518302194574172129909244053471094926701695049316661880386046006211185705464874666374695686059311185318749424176354274911992349302914633113069974671626170308010221036325947880391550181028841950367234466733029472826655391881725435050296279931481280776787188382657490873158034309889974734760912082910650270537846352834890436336168142511646542955009831528766300409863454279830795472149425455034769777741135309729646048559156908667451648253688521598115561401212857328261496523797238450994574905970903756426342060927173810106646336205780309565740285057353733277697098013216388954781388420952126953810886339053978428202275496487530077667883399744904892333358062022593745589237663554380530391336364107572109591070624844546515849289900325286543539636682582895680891865198042256614995854738766041212507682548688094914911232525722683240592836510546051340136477332102622083257193313578576343472736354944997090976304153642731461636472506815922931144900675937311383910790946506665633404003476051752265365582468367742962246977815085887161945787216057024980359753599455838873494687613446027477532705872269163239727746790585584211753643764541890782008529744001738007059127663072578146372864534323250834718026721378717624605730576207885551128025643120415098807995678010497414486747230642903221575581973940512607758938659688171513552145371128833028200935315218665841296083141550997039493688458820023670020524563791116901273620580904683327046605490038079434883853821963680542296606784593673021731947040407630468303866472166471408516073128295331608436650178272926058914940295224908683354885571899574838536978195748707675253785143706145613354942845343343881911792358907482232022904662267181812794008788600943259868391495442655249429359876137319217306333035959043973281462784930580012278877617468524360828711896234453674728728471714241195823889850814993982145616001770626715385817237773031611111554639681950814944576940474383836287670192156369522784758600189177657701194535088036239244403899265866549742303770312973532700649053791504448332594982466478942889181158932267211997575137372856963375672947781138527128183772186904199387384798514935790958568993563147817488128541303751603209207648550958261275841663067510342379662392781056038949100784111183200482388728260302091023532439203753186650361554927478631600011838709329448905362462921862530931828955383367335278817767387443480458676501327614914284855228319138904394028367710650984363264282847152980961410952726848499694948370084076378316600768107685669271383139845516520260441441253254020460175398007043632300149176456285362301061440356450338084279728488474524152080350548573286099761286680834737656299584160691111359565474071626554434369731750092027884643349574999180063679995680465201201397852472543653113212483612870531661762125461431365405124138984570138907808106454776622627742225138323590648371244362819463981854586917550544206286871492551960234755419290293620851487372451263798605005561524998940463926831323249625440803312243084831719884329646183243557054846340755657172364560068268461279060838685180268295980106756298648557107720484205188970033797329286920683848802192504531291631486927813492865461352280418163341635969581487986860215827270798507679396225600648210576224583032660138568368791546376530186240629380837423887344109266589119475065175034751820023944988058956532336724545082349016599223730696250581147731466665805453707874618340027641654146851444626511694830150183008268126770838052614990546647536169276727825469935814594790204747270126710861829326714088579512353085825409035201689306075346147178376706107803829070673221158656699709709449799134919760689905984399286659699254549349493081852454590036501767869746853986437141851202035839843692131969359102709109190681807963750120569196081630056649220416059762414712484351357640466426577596580140517564403084212416992889635179682933868279395494639666672637979798327853950286556228141957039127097659901743592694603904491631174465104575208410343916736504190054054049132613563234706981312262063379488426135658992396873832585798767175535962219552746349943868691838397597628822546905645271230590555623567135341364956123593380342355240645114687172479317367066078243842592253743287088587879362512872918591866710901557522496187682249092974615393661616323134330794592740470827568784048051310986868926960186189509514020743460152517644968315271789094974505495188580647195753792219383059221330521112622483405358192408109594806743503937326101357313436319925079262819922319792966779963280502622984945056779882429783302578609432151965754301175057448747119162106095811211928674329083151092543550097166908649930441020449368048831832639425637125187373855118551917649459114385526315349540935601787489394097982075934310357964463368656221542053167562203743205916053233826682617576848815941005512020479862993587159262551982009060980220460289165306828449701035955429137830880626301716583886957126139741309029492798161808134298775472444638144489504542799014166710432844219840939153001388476219301791546186908658152736109780727130558305440658715606049079400177458938672440176960118965044096664728326127453978814144238855732797104225861951128487108140471853440011913398929474391946037054834002532759488944501551636642306966271332768705373800291913825580037391913289277502683142037592886602887777466647168416157496958092753145183307891873848258294080346881041678459981515833485180924953349088975224567472327580424028041567765096790380661364627762296261483267933789558055427327074487825935102905476105886090642498314443786754639435904156261871886989666927517533074769208096920251573963612538549644223124087878352947537374406037515200471223914742005745218747167836936696393371080564739721729576087581436785548275285997553381692911232038930068009437158742482594716214496331444841885324437810504596298089206718934593788068040836356296218538052103089920228742580436226845037709028688352509418145051435482205587034253115282051444356888763137220189221204734452414297727396997259063818573005173138238048219870912361871913775738552471285503083166841339934544870402227091013965768902399348175153104708873324485323815329160718771136689861600331552129399590275605825176606414077653496183317415822947774038097276270532606156947449069639769739456922893086952960096927967623361700013053648320715517528403856256592647172566579810924411464530121134481757015899703559399729088987724976720941140679802272878203783359216312904281991162125253623243934450604362998816516635644622664917575050277588450151052629261202187266333470800054883704560673772416306125156515403922262714717034820170923129010013201313070750485341541448775044406416652657580426303391277729122335957343870059732672262313926232622031629393708921531077642547391478117083948305124256877821160527817320513449573516801239566435767892837599737553966583471788674675169428279111141064508051475819218317185968702199471645956883549687003050913990201198456799004207042211517003251196438045068246955807385291112494290195804108212315828242089132821996494760479517193047858777464159352578272276398169705947094795482775562615340361902436398088144158744203700154647534971456053319637656320855580968240900835255200282951374119828386771632284286343400897039774687743636588592729198485526917214360043994990206321712721620892574189471561770538101799827403811637047526342269244383708101751958632065085530015200272876538405571356860610854157321441282254773307256958207821298696906222047292747859091756288572411295455048490541178662556922681401787449648050562647756707120799968757796424501935366764563529966559615366395967209429482940685435934118334583561269312760128612902895402979338202784853429380849053324806661995441091823870597902784044433264245017769710215842453590283596154725079507557352496886279864507250365229007629497179743775715929480185552219911877857937106828068941194959710265451981600692812649401067606487793226965567155721212666741480773511960821358186979355672525384823312969950887356202246438911415133895595329660530443557827092569165467411372520065700560174540064269093518061344139331886341932898470783030904154500518106185652044209470480748621322029496422728820756200123692501660809565654935410253192483710571774376013159951746606896348255257687851880175931822522543247249052999332841050610882653202469071966288296973550131524132445740866002090529516341908789446813666942207205103449425928853936881796624445154665369053104418411742633204963122051476871967248136981976138925457337082242095910575714691015228162299341629831477738365871028051618011836529069414809204032582580440581215058525040718822414286842921740674581093496758778298982836081996843626888240142631175972489309718480439106342183759370261448477727473395219076905669818623725753660109329341842148174724824074953151882132721661615077934441276572158587265746471659579592530970846174092798689292353848975947712325363856947906755849903031766965134110074102846217868349635736882320662956293257446765497117014544354244535908343674673044898275316160896291508905878842505059498433917353837175466758872001584573260143128834407825943542892681684575933912162357486091535072677230349022189884650954445891594384511707590237947144764026507211794399421913406091142079364688305118022536403604424073255159379176270898143177033777226531688308540240551378963398267566241620875256126009335969300932762980303643504531405021384361836466666206810062985733829278472184868807571627339220743757763577860585810120703303729108770432250367402683999069052800661640781289815441858064865221482486064189474170325444122769888641151677883993322040130727173273879598197084119705158787345494318551509077025918066533419450877547620736897660037837739452297469432204720942294623275371504522932085935951583769158361450722536239789018677235803494592610034983670762132483643364975570002513209344860979094064610421294002601258280289379228366586935165717905719938164095422662358521194699052976477499371044782703842571626726328384877477342648109124092014190798148188135481206408901398835151986954743935381185772528084070629286512501911979330795906450176367651680058733333165234687748356025973242656157311619550514293625776402005091692216880568840453776428350331388143760482522491143496053399088802124700943878119985130825862180310747900788260693677637035069278748910320024220000339417529516647669634169158580184398142436858064431317158860752465262646789450965100796598027460670969638531762834332829708997790800840223789861726827206065481257970676909359750236359516018756617686349236092388039847078507808561106412475712400813297879723348312867818502732790565056538884978617262303543616039145096790772725736090296838502532513773590466989230639226723523922400258579450529368252915141848026820107503200156373633519058410197667104762708398030619528450568161537418337779587801076851218454679742248779226039103765089500556861558788865780767187493706716787003358322748865282026278291834380519651379609496582968291539786893981869334250523525143007771708045937780796784344527850431781266639349718426367601096234994501542873454376097846137384773552523216755360859843022763917258881362094482889534422489187242711390719064383838302224779658815950958443808865856060805384687518772783426520667401319571377325786019055082855352974795951588419447120145158195670332433923012223201210601794213867007072430880565508344452062389513676186693115289323184082839868337655431794087643442452625921253115465250897560450687398165785459986867788897123194501613640165707398060173171250380642967248136187689647654661408595249568568789520896265464569672698107926780396879409309927644042697509873609247646958227717101558989173700016893736025186927687854852878586028829057029911685182239224999396665894180250485099514253185154132239752202210654409648763269624736550468630795899526825337373940834793350827960493675176833979772942541553793699252555985416105480480738378100138396442405282421502687339438828670926124055202913300257618743030040293188206345481724839717408545101844383103422545015683891462849955473362773041052452268188152919263481563023501844663387691865288511924512462365393790732310301668700360914198151535281033510844264989503525786351851631409039312805620257345986738656399773073239157295561165169484667174591855590165609950621198070311086844631042671355914002488168458247273186486083193737142102716708015395254148854086793144205594094289177308813425246918325607999482907933963272129286181694589709109714259898892656919168079571227226868626785152205898712168294491411080525293437049037846887521838051823079747013499974827373059931117691966835074743890798695377054705984532899091302781566438057011385954959433035014475592685625787344754752986452728033034922925080464225527883272907767365690531447135377921556471068888057153170052757412210625972231428839190634033197832506961412404687990014447731516920762847117128349907372791988355630528046138754904521901724206158127228629069434364018675768622974199229816324920477729378897267903028103836107744366843490967215880993015379550307510290660664429523534860550764547686206210301563084022514434064020054494679353041034984349978235922139618547434775230175994511484953032491531246546395881110145291576711590632650229816649460905040928755441352471394549079013929850094340604689909869578609333511848180117608953802291448927305801301478490645236789709036132153231243884458035019708498144783748482804252773035218059518566767758942170706965125133112093938941235198743504834700894306516578950574490720147636089095637238363745218167807537458548066488661605434099338212812046973578419590884871207596052204213609913695960358797168917640586970243368957601059225359702129345175337014199117482402013395481358603406014197557862763138122237635963132625213411377398253361312467245843699083660761584361671610616678466737300365702153885322308335859200286685611895187525834309177720264589104645101749977193492740589249287922369200164481863440521033671557234511787802488389288928235630875894366946469082183301909687402566643577735544604631244244891236559391988671905029760662625623112649086634621659016383564205393949842999590961521009734475068230905768430902642145897570580777749504249957944191286583561481199829380066153049399732386255299642345388407836617040830610624733609292702411596132433907255065700104642358930675199946043028248867070366735649230785895901052487283503995369982458345855678628763868496084810842797390527475460104399361693303385889589993575792299840411798036151461627063429429087787583978421813857000525988002083606371346284422769451199892953633972965117549351389543243299495517684614143708683213324402785633044949775903948475924828850134433527144195090838872158476305904289377246092026907766897268466852758768964126008105539066766865273422872123635949357567036812107895904764077251846751311239339804334412596931169687765088526908168405673632886524056894881589293984507855627854604772840398197953091015514979106378256668241454534574082789447715995656193287622960193255250078337395515902626512125540511010087934509497860567519113105987530360110339612784328112287958260361885554262455096351962334397935719944689354374192699169055312829491843215629017718152476447131359353627951290918117401887461097224770079530174245847411839395787373907504794725605888592129869543536673504093025411459990766305268668419112660769695946960445739752316202385054236901863269148082930006795103095939570244088302630043340942755860487205714826781868194401396706848190769437557837215435282706573051209053593296759858424845685626934684649586986585170994782983798110933936926119043064581795656951206230120187738647059766325349558392346315566742569973802837880521468765134276802944470976806199665744359331571458949941640642473107083819680837765198577783606029673900106573338714251987607792064186612160771648623273733791309546909268659793867896455273387153290827144731385464989451050300145716551702557845434300230264286120564058179214381404971305377259863232852928998616942857009312474824702632930897218468587393799705715726908886439032400893490672252991224975401272808565300541614406652221223127232661371433390009129228073304285503000091787998646033924732753563793362971687546413865905633742904698840944327291099323745765952590819986095515573315204856147085929517633476633331507107895746732977338429467530162042383832796977104893764945562338429346420458950404572176644495627429949359782026746600634683908067049235258380857208680044584513104926279913867053980242679530324955646706772615338313620890334457829445260399110345234995919311570422765265373063212593769431824519561251581521294846187202209401444225050017821534954706469865819670702630533367047159490556844137391254000112987089034638518007728081203855068750415044861006200314161356936384831510571763072610850786261904321855599007406480086971897521800969373879408811117429133716331403149359045076158871752080233127531111126820258456694023887011033104331863130250175732404443890627258027514736089854529572791467413499932771070662998901148236882647530220783495021972984656674197178724622338543415223127369262191123314383622846974503394904630445979548169260305678053733842059882725050594594735237396634840518353659261914318136102505634287436980620216390061745572698895456049350581190958386135740443120324631645583897441057013848460930472301206673623601771044956884665934196374370299613729933645795366106601524144604859747348600645477736628933898761297668743911149152812661878053437824871539841546173223212719932804100231136036721773133359412271174649393245716072355651520102612535021833751342283645360185947662754154776235985650596235591035706037235971400038126651532188618488581130922353273873128078258762965055078796719094438888374654713026556228546619222914788538213773526368679888659433475714943998718306744692685968976559564585629870666329109403432302245987271805890015046416289986298168578061996357147873197684578598379287640273339540752919212546810862966903191696767749864069076736425877574916529881427304975183726403020081257616679092354921121962930453434062181961773886912935410819167976009005206208323755734479536426806632569341098080493977411321515126836595395257280170240148995689357414606429590250656569043511381454257020226475115619248289894533634381341611119837581122626598842792526140646598687959246096905814994321333699220985278459615447248748086644864315578638816028090154048852615612941891187624348338765340803288388203068038820534172125922161867191245318854603595918320938103920916764851125345755830473971519042274259468164332824370874418237204878690658280771172739173295948481450965574253723590624600811032589359722805071478206563852885359813968308212475514985977993870754160972614546787796796369512804657209533069254819246173626658335676017946107244419543734040301861952432411107473493327754819704100299677716389746643870102836304113232268144964357774953186235752805027603408160508785272239949419542436296907878952516050134627008193430417221329143528782758982265882680757278255363054905485011895680768674531009386401480421428943968013212371815001264852448318620969136066856214212333727890812801183756681765778086468517583344863313680675372465000624328764477925959689693228078469229782853078117264914111154402578093753348256089774684386328365905550566347721065622282779606673052351518130614972436014082032916650693763007510694867127653722821015626289200668868047673253570992113089573708398799297894625734119276882617269515486848827300462094555067365486780123649940668416423990743205920296661481922276402908033043734743567469056256162559972670414546075963722410170768270276255654188039307702060053647468870106152249278446381618137376433918816883553935695141861411990059013292545121243729532072939552394231411627117434639316616346336094601940896297411795780363347178646656157400839398852687467207504839696045797318371178570920891855971273872500761737582821155444666514198714114567785178504665377469308719263271755609594177034092902014629671753596234339445845813901911042909387127043357234099353501931421840585408807845903597824222351372296337385310841471751020275513774051098931417462168586759797518628894653539028251148205319092970884429145121411470919422789632698683898036286224559510069318360174371579871388007067623703105387367134537506464262911607740820735353125731834697742177468605781537002184486676792964626439594635795684905994316446950701354473875573381029063659475904479529035695082681229478116649377155255640818536719233876043491932740004515629017705230167786438558566469894814297778185046337989137719524827128364122869542323544604222838928615474146400847359408050800831553865778707386097035320915339428290374223894878413004099801789613284559058171314071183540261216463655103476232620509253270177882466220235935820379048520372478849559511026870459884824228953514251562392448462398725255020654160440844092759561646962828657974773753802800574986976262807625368744935233084438451426168463771238948571010453211472250148155456999381745144159890308888762136559610533855227147718353742419488890896486427268145160079766484704506211891558413173989334185821056092316669304902413120267076082803071269901467909843424955109665428763964387388022071548402032806366796487082003522485175767135668166430508469450702440968966803637760032647836437644877587056933051593203946641163192390450334615634675750395567451794819784781484877088174926966940604604720537613543287050783514155523685325204951025436905382967455905487637919932724876065480172332254847688680698792341331205573379134863878531254847358470979494679105873059438540700606320353737950333805530454613556892433249815965673607804547984255867586734241262850746421423014535251333614746091520553967800753763651934307411011965510794699589398968656446690394645037359369128364563721897361050598906124273674720784984215652914727332874595180936355401301880782610719489338486946084458775161636010939144584443367379073408678511778377030877589477964167576581950072540974582173093761471726692032196928046851660613579684687020263647053278549555297984857921883143407002923346170761194402597317354232497693217645752245374888957559415687023509568005073390478843156394549533652081109867421126732586483399076721072074039169917307922898956042051143742970530899276078784358592252272243340455777543202116354059387825953906423750428919147471390284618044254569831644986214632036641281283349800207745291330874338071958780436188524019744772456875510293813492293941142081415209762146527858305984122709211885690576391445497682654396148208492055897353223962213964333773718756124442432956936055003471082869583379184851643537937415452083505573408653585360981756660592554570953261308869909377848719667187279198180603954980251904032173292651005193361997580836446413246913283253306479957868459552224085935979641520789356262055222935395448827483959932080176157974505386863149156781163840999131680062478352378298170863084146355043522909799537416972340141969425773409323069202036522521030145257261409136520306492706056499710692705885671901609749725519985449536526066972489876877287843858906828333148618115567313581684709561570622130867980720591015365132604671165307716088343657941293950347025196104170870301706229601204741969797133006191148927894838047547178511012383077537522194877856963634970982496393130019667261088269456401978737225228258835171453010782365219876645323928364887050087443711216483990074017580192240203482348374876080798472713196738850480241373451613331951978865151167240206136807218272476464620160171190764155737804080823978584058942352254025604606541943913828240792553080363098533627899895229374910032776251954800627594284771146538568275993970817103610464968449922664517255341990483541553489239112791123113937803490138606809014278706037403898351447397252354880344519485188757338530177456110775661027981856365049419115883155856514803990736477893095711667795707866806959379636971931522473044303022782223402021761665061218446194661949725813186258510196824143009909183412371103367436151359058677662919113239766383048894618166003569595024423611188536000912456111908094501483764761370906286475571974775827237073238062968648014531960657572288089459973382042744968065066443254063657408849846872172676970155853179386009563617653276240342934915888327655649799191592588236190892104576602474168393536242725741998703807608530172314461078496710304495911234517244291741886888793277044937174621777317108689835161050347284620560172875351641280837356373793557482127033210921237377568139256992678003438489751128770679898036370785004674559721243172713514134438484080606483194628312598261624916644736265805976600117137764143242265925763103365668022156577699817019193818002945863437540993756663879115247684584283585431520979395083786962371725526518282426205217149473925326871220198133501214074930860793940661794794997211418229442311546161250591946141302593998202192952508856802875492757457643585162771561638188241204922197290481872726010190497693303600351043808860273208515022076080317201642117215904790747935671227956278383744369313129323512260558841010353839605072500636045478980087166663360121341611588644312204857410968239445789771562232917781625150702885640049485239413683098626108094620629707307159505035762662744941971217650990508461980548840986413739731225088949035103704445858748052963048434113736227178621067322165485561595242973352516601132878852090829556007542492367485472836552081714751850665034577734238609322966919807335040014403581497794255783861219443643157436354479009775275891186215546055415029590122975224912351873555519720378706780242049994621110801168172775917967936569242205460664819467031915702742776277981400233274815865754280709939982393880313103629392509364952753813895499155593750051963806988442079671294708209314783354905915973212552465799992481686290858375099959145714347849048830153103062550405012603050563651370187866621286073974215907835036429484528617477202899633947936135348481823568848166942070913636810017147435297139783015629520835632960393934774076716223099250381245494439756608387063711081379795832654313646352530330507520269857700628935277992394341364180226073126125041570633679517900068886260868406557343361853915162395689656145137280214108045873499414070933377107907937793940330703209151014024239057837107794240126868435493915484833020726458118226286216598822608881735248804844348470514212335952001744066932541912689608332152562431080757152411401377795934524707346542342190925317229195450469615096782385291944548200627687511602320374754038923752390265335486393305588974392911856969447869975992962730887037788519977080484500451350358765317496720282166491134193032794746982249219453010282208177773522031898372144664977520571598464196534350521588635451209449022260882605125269639706006511925669746565186329927296181081084009636784230192874701778302581042455171995415928337834527959142160340850196438178922687746355409103073525175117059601620828701914167202628027755690146497468631233608039565340802036999255439768007324119606400926501126066084333416768532688820287550687775207037597756513646267782981145249642887867560798446109391536170149225780051667974141627267467515238136050455761049906944124079548210908697450534235231388649372750685455407259572271764019577957902744375861309214457744279934513904043708753974979056762444600537091701202522510501569599727034321626220087278004066496729679694757992761903979935249051205677432086261995727267962620982327506394731729770946444908430798517160117751835748617590886227337238849643683791443818990201062344830581747083307574242399503905255708415771871802105658469083754785192331909627186312075189435329061524949152134091276343672110006306011445290148928069488877066267467256164306984055131021690494316415876934108320954914704268130640830942320025352406262420839586348658626673849348507390388448011195688437445374754938474421271434524461823520019493283968479362046945111642266748584863090927854552187825663888890013791543472000420452642070618844525156970052745415016685681061869889086890185681601089705659581834079044644580597855860545362944702827797165985962152186322270016070693557423843199408585606636006823330354999844808576313623680143218646129272151275084424154184018539900622305040344726997200844602060030794282387510143296634049513285941496107980446836917535499431826006253662645260721930019357265120173254485475045087803250783854577423212132657994748174775267432230428496380094225227557333312844067214863985895607448939619308296427292505757493520539058470677298294665370176012854861257438954433810550637722202306103670861901423207096460404274408016263758514874462020278883001655908093996738705841779461882809736400632660130790250715004511295969396961541102521374825672715417705391121617927161934253673264657739576897515856952444097457112228694572513086126944675302961156303003421105685989396119094132910291501113582487041742621797457666400852585253377169584239334057179810698033565318780171970281887354459925785019680267405666071528435448252650874323856257868452804316877193559354070295431566341641070371985794432097028040075115030605096247177749607391488575639697174284262914435346443327623470617336194638433362202543408137430114633516510587784299405022641178071002708499866507641309128433185422841538856209667426452086584236739451645223183598177224902327897238959476832061157495686410183987999014378263081314198748299100608313693233063393897449432822561061932080837064323977714807142573755724309421526905782088691892188198665930815368184318109267814718554020735010711965990004312885614013533495982180666664806707249224414056916635916472763063708756379569321902766711106036586114872093643246109881041605892114779102379849462005998850839094909127606094638184554868801340124416008538928354365415183595444287736683922611399764033467881151322866634928421436808417669936298626903585335303577482142195103536081609102048277278117636351813639081061939257702747056753415279358482656798018805233444563742588779542239669222625576609628994716053931238846268251785365459876390961724392187290935932031133476647958479368017107287334296100478916899375847325850096163477154527071400596965707071340363839175160625102599271914246512903515871319591637369127772560641694623661062776376594485915691644150949251563919769494422211366576686007814690161360771548704731442074915538747936434311496232641023546499593210841379107474451928045929934389544492543863936826574910100427795926441132330767458681579785009121918358005216074892359710436588357469840728034458648131291497780867458304005543526829923859663530954303611559696816915430493785047086101440155824479523034206817891971584108278375677231556835607880531571895086492561515552414791548784328101776455699014603421003176963226547106843432444540095177285924700054865267708583805578181107624487793709287038408028765265005082796960113634657042771549617595500695706175635461427492730221115023559682498580971387815844118917746257262854957527836548827396427457731233078302489422215356651535342230277540441071146404948623780799006125871899108920333176208667908883458860687636932095209855255764126979519049267341676211804023169767475570534531074162891922070228851706670809275430155592567348827193547398068916336884390391375152481294905787086258442799675108221637236284994926481981653344277993830441867998584752555037840662223782683374486149155437573749814826358638014397289023730056153695932993583208348886705770398661233009360111933293612488258459165690036572048919169210494697245759880986396511582011499424846769509211693204333023746137802923579156958695580195072776891435369713875124848529836794689926496939097414566684369251983398514308617752660888758184692571594628115986314138005756777698276238984043009041563776176822512797180955105733186564175983098886909149143284227286151731293254061990355186936802810255756702610442684874738295414540281481833781140283305079311481431684781705950998494072515849379648611866428042661328609774372681520546649262430627341639436662474457228574607323896062258183179680709205986751040309568458978588335628857948837060786061556730996526982002438786892661470997254532431848344509417911879591033046509807577798716515701406205071804512183177733316813620763969002006950943741587397607882469205105637945703180649731569273585983221584567130191865390168835525416313540188676977308495325936567102630313083396356803961166267777841466347191565816683992738491786891682727208900803270252209434168085537658505023702357607861557934190887137864140655333046757744384787647812107385824673215081200478486278466646117879270039262479213363391811614952304461912919103904091064102473967774050795351851775303305750257790237371155463811069322594741645803541433569436357806195310131830373089469362672835779473581497503796607820740932587654638405218983341308532067962525850013154057585306588713041946594365394617410833970223043350098531800824939453574123357566841933374919641655369071006639471502374587467147243273005442518955336133941924765769907497483456873549747409413661875196214036535409588217571846130155962926853378319498160655772556310351112055023448959808201547288532915202355921689818801670608257288746706904958401865195215797865250464441636520278412311294260467304360174479079090467494593939465518542859492034038795610787755426274672433009509900138547684424378457900813437256010441287765533512398586245198121928536843357509893126332166977794832854405551555410505634972169423368212088160474714279413106488804495163568357446762182443057521814759117591467296580860284692988606459027788879272314821182602474068088200027930100535747026209595525564443232495958331468884934555792858457467874497392032248575703239266744372594814077218542697378882462987147054563021761282079177694539697146499055621560821165597662825012759723053946170998053648433054531847724862236501435426048612128819840102785980527291774807114533819380664351846923575510403431409944299088694977071849301361477946654146167494875858504197009891495830299290356701135516957879612995305044716102919303942394407543840239163531830550375126724765578525087739134583004792043171126424093887659352103050647732416180089376418250274317870372243803386899415193861497008533351163175940190539065005302490127870729909991787722151357345519090810283974654309979364452218463330529791289658518733149662665095414221443484991775727941265942489635797468192721054096672852866231912649737084972933823869985561661602886882003917253760268511257765799117190491999018536845128996094084141488013112452048383441802569225457904898592157523725458710881248172982824495475566556224534429785727309937884482871034847286182235488512993500600409426870349128723845879628037082213880686663038911743509206154614335321671854799367747139262988785782983249398600902383902513648831837081108779781675361374236814033775784922619458618094003270838234407046891054639796571976005687529372344560101625607329689259570445318590185599742675389982889635746182580821699364357493670655139373441369349638517638042192933639151752988741275400370908437401765390360155951431750054944836390359960380259122209400083204487778479468302012622157652137871564861524311606561538274160605128979127038879471379590673288061628056582428606036275589104607202179788991523985893979739737663241772174067028676669882547481142934719452972608905938017201614281410378083754732208453552411273140132800776031476782819266615218327582662817887195261386220833461435486693616957194274601118071142580561190233987636499556059332871281558482711765138577318220890441852857574004011198838650101501121963038792053883091178204014324541091818960233559226673631148005513492784517544375941290941830125184657269772644722727493534773666310120064992719783935137607056234633660268871644362103014610802505661267940958602056089269641982312849194292389731850423583939603824033152004684555397729000589944147277076344907459021094635538534830744251091366405720772447541985709421612336464706729257786080207894852811054825116848760526133498724121659514657647205911186396739308230912084157681412060392162647906002941803140392797110172677801597851759898815200270720718212932125122242903531364193372381850405674494314329337084381344009644479794772757765994298831111909951118436946562366102276391556461684804662372187450882866340018467091325443669218376261296288042083287409958830067683124163134829323883689334132279449109054298206774626443087134529982591767218448817361681074139320943694115231647784831984558329523473544925595723950177450906146628876144114934714766207292326976978135102740367104366250377841758956838416182157831777410844031025267317737991030382390375796336970368326881421321447395128987554994749729654063347577307838118265820711275039957555903810018270903373405222089603127268526839627134024116090446599979835387202350006390341326328755223109166739668524013743676326178187843882472726942452895554481252343820590706463559786341628628669860103291444676038770165377219833124982316321801836550180443504529264569649573205302511141939520169814067596099053888687349200202707146042353513235771722522066646984518145229517734036093484351045242281657496534863700037926921846695994048552158622648678066905982962497254697428504769216099553060498338146297969302154802579457220376178134150689757881167681575482817839591851855001148582774299306815699608077571913989799666369985152592739811258450878267270860428671181118674609294526359915860794570266912558410833119063621460598221330533334329916525758939358491442555075773024207040000438638554695897919757168655347904916537683034951883070285625404790762860860750072881681723681794024038919516930930692103863201919175946055869757538950629871467352442711331251266817407580795723421431263526858992460042376333406409843240206189050763688783817113122839242168168273842790922429680003501603818614643253825208843589894460052934868896180809147550133819455729816515776015950274684210757926308225855924794206080575106103099377377814583201539731451927947079175947271839425124743701363299997301595348639683557149798567321241784962542708497497678414127911203874038283571944516456928804090566759165841277568733267687970456742962485728569624210213475374978986616996846320596043814497808516509932573693684338528102084640869080534675265240715072058468656811731732512237337093158798676199160797031843126738596080815324469461880856527923025522970015098001475149481932149043326910677357203366136458113785495964852337761195823198482415647355584676349106727743205388197796051886589481834617226537576135170802070339536459814914135334895579047281948789284130116261803091088790355717690523217519928259731327924619894314812723678456970583906640597566165938538995240817583950984786437937260607953525963553603287061224370433376237850485028361521266200854672313469522401686383349516581925980489014962070556163112875538462098444291628900912167816043759338813377821029184445334250041341448016257482240493191970419351974666170181873082765106556172357546052936243559908257044174853820256381591057135792312593759387473855399944145117798632029446281505899328543912164447489144265587850326006178669531022360718037661842238617985147987320748191207884556828954278894946135597147015143313758045936967484142408296937089445349467365736246766390577193406777603066853220235052210508652580439958095662932000954273781616062974327329244192490736896729341974304426881275642095776770668833423804459621271816418770697421122172409117601827182285784644308545878923873378374705288285078393456521798733559777546593809582204182071745636313881709918025823752588727179268939098537992364717004513128768690204581341724700724521148536363477397384507989696793283434845697093666513015562635760538170800112900581542395800262382377512977558685425604112801778244969032496929053533389174743821472223133182168205549022078988015333019175141159301293388567142605691476053068632895258695927424781334353338290052174667721315488444469211418958532965125086369284009499136826925658307607208200459423043182731858883184945308600359279221569180974558106069401889382354635054767723480846141064287228302699805415084601304140665525898443772616512139367149242417520771594655266538319618022788796839403024473146067553654595904119107088964947361639469821126737988576583371330708368465896733477542296244047099534940215949278850210276378489979677749261129226137382720204170745225163258924048532062001420567052167361989633768498044831119140726796319949276969041550060953357430970688432847596261337975498064583032295184443567317664966687700319700843620108558940684078600047301501573504377826320343139325555890572864777643148008122181975338805519059803559791473857777423081646987425571400274855849556445524692804376350912867105594828475044773917547435564685102576887074097981237871923276680728385493180662563816650859573289636943513584885120605319429302402821085638593976914939783521410854589349894606165555431819291851946021749855860793630233095455215672434632059203403800713055267197323463067026692816079495738860966154840333715990560548448272257776289101336879334601277408935077956672017595252854419084555767426423564014561461398745386726013590018176475158894021935348708887996458145367939598887704145664337471451112517739065779130897304741070564462990849740775312268779553276021397600687750615758145666975637242457850949580176883443068320051197405119274840555298314216974526398056497667043841421672277030517098048420544508492975805394897543524587564306617941706881275477176060636939258926543175380405253960313502607331795491241022131936323782119105565566628287329112008451847312920673721993370768468634078660378681850134702260476734099407090925015379702747390285849060390490252094160260354176459047581435395218440666982415788922692238747091633372514240197404917154923206962734241100906246251083414802849997646196858515463070025124739880907023048427412993648719020070250581468904997147043591111247252309865570939383230293739377182750087295518779883844160560383308862848858071911703331988313689809306355276645965805093286863093756999714799182934208136660096885079921361681857261380525883367299495950444622760607855015968677818599460836319928283538005121519742800445068409804560866479847954885595551066481077203965031113450740592116315094036799904245176078183452500539505216520853694316542802916325207198066799378027691491905597725915608867907470032480894919735879645659647773371626228781275892030951879713151098646496924417235818916335902353363048106138490646605741503525024679202170176513400894752492266506805031259855086106315704944250341193494888384875933907650616919957771421185196976200955710653606841363600685477918976299905569233041299846418192503548612708344922415303505100965724063110899400422822442571599820361347170790918266480341859067160370236040598729401185796711234013442868694806731615137634275413881925395751306613752941556473510207148005530286690071624058472806692707713203966859881430116764745819208312440400702396492380526613221916784131602345416658830930670009071116906087386945923098330653829716773024530252316606766140047143758412143497229861430162343676410794519794260263712420786685975502154434625685970837182267054412306272021593106580183014838001805436523667705544079726482910993909930461493103787835807909735276217889352479789000645277985006965852916811677256812135072413770926443615373751368568198353482168480555255044263920769985997949008458557175260360903939140818807118289881609209901986735637630441385696310146934528562833890632589916008431772680910318060763817996232641867802735322463681313470872433651140447397682116838647472643189788525558258323258254715777171496175942079876754591376765786794260286462786915234916679234022595683110342687957008622487481726207438857374300833495997165973893963271973759658730646109690964826233998588228598397329949402391253357006466057953277569976553236213951867397499009524946789512115837815386732270396695432786514414998528665970390920426105414699967926017320452813463917391829778040194777390862808253104883896431970208469386084152620070231329816412903532411031788311081385651292489513623840341958630139413515404543347244597631836328800671744531928889484452997113285946797052077372338772290347776941647691868194583849352725540177416919718846284692699148249326310026389918610471939788184031449278073683605899966063756850283427219598423369338375724543851228292979977626222220678000607307856759605956124134472224180201308353185673847816481068518531040354864195177550704176471484976522566816854701332649608706511969976922295994036581471313755732420206629156510021772846709797376632082562646434322540562283946208453625832116989248849377138023224747358050256434392996663603616178840493412451731141848438339570510537640310065164809374292648777556360787245754279319366886035497831591302843623163190990530965662626567946468250031585760335307786693080640588917096193689108765116437354773484165270750426416136731622299999238045090919671666193808732934032203608473729161868019769936184343355839894489710627507309255438237567631791491509320811493270688308599781830475411189098746573907152339280931517056727510368991854725373982236253296992602941765177086199905156078138932552017294907495958279939353419533244538458546246726428033443859795377044726855522863194832794385477671806315465968022741212687946433674718003580435121530201132295956480035748156323283273104357199299753589197065324008586985308376394858347048324501566192341410337786862268581340714544048830573877074634834465886029054938812843608099403025761694647029287708159462044144361649065639559373055736778711181586880426490690556362035399696906799128332021046687282375238486491568657907960227691018800707580380265537030714788912403668816322607388718026168930229985070576122213703305661076346685029940102169976294337067337305292720860656513014579578374376307532773806825183540375182065376902322321546935908143502760422822254097751829179067443583740305749185710255320636562204628504867095389214877081611729117726353299860746679472729326480948757003457496297100028192288202747503083578498044914237751050860457791411285085909931339905803545050414959410922111457542147159528190893598066681597240831120638661280694074273031452074840239610121778911804654040800910195818480778121557759316298826264719453444549014330182198690194060433703809151841205829326619161653289337779811878454923181057265082102829367319749601176527739281519053444351882783275816507890842617465403427503219833136575408180546775790232597138567634217277842610532479047380952800071192266193993008097664730621290911154190050590652814128206429162381477346383945499066848435756748304167298686091722013652449348104613805083705780462188757301345927488672701673290531919547993472863833499009734318455110471676037456235495681099283511402580259509070772270290377144339013804008781100101727770850566147921324779883491534638392924370103496038860689307799481381771482262530844876193174998259954211289042171962956784715794711710203345045971712623656266753358095138183837331018735522405967962425534414860692371056307377605560076195816256924277175410225576435793378504184045610842526016538267311950224422968216041953933949289690086356477034302437848876181592863954067644670551110486588179402321099307553439724461669295106427402639416906741975515385159997576568560711502176727054931720214742890118223592547635904436150927241650255982684049952183000959863971819059790101781350354662884176909859134986459169173621627270802468706218493812414753797509625687186509233316161100359589912187842515044423730477466429110656574912943995495760782077404557100708385907872942320820848816169134605551986993404406030872856370012580054770112744834637638536399365253233727838213696948072477342823007047378490218536381186036137417710003511405688767336983541076487955578243126548671049683996617967173602282173953273466335313698091169045486198986278419091211695130248709408388808430466109825993152526228383493156142233027964035147606147074103982961492404270180948526492400025412238284490576891187330236130303254618404852886374642640890023402331560708212129755419467915645905175248836072860221284508912535336820318715387211861610147409192596816872428006402214451167698037817455474396330810459484621052491107883467782194037353748158207619902099379887596878557634682837173972146398487021869647853513437297633402898846042477448296219321499596619798100843217591219753759628058560688416340616957153658136955070454426650038817474304302470853920476644363258833768731361855341055222133628793855087395982624727432556611867751165749417261944610426760610600236869770969254669472448137026656867934829860477039734592660871288311389734405417104720187996346373978730164072020201862521042426603277103958425622810617825360868979584326403865849666696922871858492640514624271416617748942217719047072361564479284497434894386735067169307198477110015376834394177171560346352782985414105352148359914241825764410277320396804815287983761008328471464819184779987562816943627029201179766205826837742758745543890526460598366220068394496228892248751270762963973310403195468226338566851070132059086546876287850803751076679628421664324616971883680785462216023216613217957167731961371729841839664514136596918414074561321920738616381159046405904637552262585195979669366548394185981922923647670645513162901643356359257551914925284948195212160097009474186011743792228134438683927868951087277108380826863460727579339363120101254128608472260227189054831084275241763613781111929046648445987933448960661637588530919625413871919373636937633048735917900558835748278001595494809992132239441079755814973868019735711829785846138067654527855475364284352841876431465358002152770119435623612841627558312160555696840589109799117041486866029178921630017845179843517253855560374712294686538502696264525484492961127605252422103443021254819069437588116526366451883526428240492635801152126774688150212771175594805997108176748212786868580736655486019340726294431507532020391027320562522192655665436201572020310629266837300394336014255484514256335398700752078743031898338895690620132912140021713750528695205605386564526014111544208189999031253277820658404631184526112187460985924754351111197695799630318414741593145247304825096439312573941741658041682488377946722590098940447372304938836786023560995514514399872651138151413370417964699517095237011500597535702342804819526467847144498623594029467893601900988564526803961079776156449532699080399554613222827526487146229437718157064160274402255674850176735800925979879708482180506048446721326142752798203996323840790799217285702926732044520979881205977680416991331095364861761474270227540233473531087813329054956461530944754930379694151698029457203320549286516696531398405747663758245390897815651408329241842343407265826141770349758514873921307424416948974221894628806702200870128800255767296999160460848523002297165998726733488314091548265228824052722735241112429315992329320611005156399849865156775617533004480654976765238789007106938000874361221394801361597222177109343083655030134113465567956818205652133011799187257543363595246023737710088171890168316026775947909352853678281522095884306293539880075853944746242735552504012408647309053061174998237268558709880748585901174608113706295725218592529549051483591497382990048456444975011417515494086385382760411781498639413829025323811703484443040259450560656851940968768905082471562718745880211185188846665883847780723079465473508349495676651721634766884349333148385510124613493834167267386634450301215710979861911080720452975412419507080209423349372175676649323745099007170462303758415753527735916619248585144340619483190988127775030624024049276927768219414860063607145419181822978907968749512042660512670928538956442872912192685951054991844317528707775340426035606039757181261648318199302437928680218122259367707540178752823389699142022458869190203008440658799603907257559162033356315787962064523615928183734352806362299736715625635285361679846958868575546551331040432906220410234341414697197007061107176789772586966247026683637589487235950537433164570785743365739014941932904440710457049516830861125311612433457950625758924292307260018626230335823436305464764537411575506804093473242805648894941540869326893241579462954373734655615249247753826710364020079516353493918766516181980806464184210845645004625859938452097712857698370107696990342042648869570358604823396764761044235802899226592193486337044079400474077184991860136044488757338221417053650662627999450957346711992632702061920731760131192381569969623514311585124988208559877094890328601629303859067456266931584274519369514767906508409815830241083307993116116147940391921189785926550543732125420880595962852696425460167569034364174615170287187354166420465648180281701505925668287700715297956404900667485743024849143931348633246945503132014430829836233965011587200693863923206571601248235620365114163731911976910072753750680143667726285414069404268891050395574617284405947854413857782115045174008740536504980610705114373608903047106762018126180240739606421581162946894164360643310405708682724440664117312985816344535182793837991955270579524491044787449754174105209446930066722025311721219155739157154658429651973312147222222726601586141331094330290405178381515461210906423891283424918792809418799074618749508661864476703498341481891746941134711006040664183443020797219232086015347156422212977104385888262683251832554461468938994171714559540750161980262226642201912898635647668169570502913307355308088498113890588145359015978713418807751466256467731088555265484111923931814324278795065115313534455650808034238004972419312992830016792707967310206764870409141581048481919901979286806948254238884794229188741656679849592780026068170755429510862956609593872390317774997589866223399987731772732127596801692200616541974133708753473415741095176630770139939031654390467865027968991564576198111989662441107227343494024573272231679705400340285610506637887060762729049607278923082509575780140307209425628650639647091002837958002973602960828932056947167273865409478300206395953993886202364381157253891312486816629942768518906709023138954187340974974445631728109467870683011957834435346031302358387705724207521962238458131672708241617231747395307554178820826936725249371580989963128522072947603576321346874383569022061619342268541778101632122067215003006775270669955676330516745550381818104924583140159850533729924212382156799586191283990716720774454105096786411601331037271607334103965607505512970004675031138998291366018230875793039757655973334391176944747360468773555165771694651498203986747320483454002425871371467442698387364974584686976454576377701098377727029574363910171630697290992735238777488826521831280538134351718752180259477175494216376898554807549098455048210434860188128177377492662585467981519160858746120906697908512368959899299185716580725792695029845081472892283165075791992096406012387599720442578624361477379249522109473188036975338897703731415788071286842357221452051236296391217527346526107487812014958250280251819450262409165371143301722114740846578663186701716513845729906715273498232410022731155124683710705983154376986689109730233950860333444348812347337995848464056569681630510582755153227043157276394555574225736565942409027105058816404706988307460649996763927058599673892380539809244784434314985274662242999058082925682615882166940562478434898599318152926119292492386513569421661873780242925837747718170304975737827269628783733233244119943847655036950159454350643528068188709346566601544899581707435946114537559582518601232670187593455241714720789900147883914428443709644554622679238196633188236953765387464401552663009742480672807798082071786522040190825958775631028807285192801974606435049508195004618039189741159844053793577895761747132209557647826627173828960282761958719509865802077225385751915208935908865012952339521336820035217101618792389643841167760167000417760514603150747869042139973124453350071642025427441283005391396432981007672155049926680403894026456074113531109610647996022366392168487353520879334164722060355372313159879848978133247504082599709578012044423868066025597600982223665701343046591598627788644579478729765794491228318075387441440810607347149689552978216409907494637666604005963063935167544829618854528066659284880863144212611347931901106416410669084579931689624751885455983065936136884908251016212293033873279521132653774041954693606025871040360390436027926926394268379641183370199651706289316607641304239261643032067428820617844003352292681257090742740551467983600685798037036632626059425072090160335460847438961313574469397675625252216120467739162544626954638685500327031195023120396510833429760881803152334122433935802303457892305697565561594721517375748248197582398660863380119357900085204860809761565283435976995736937046499075013207836181467345461126801742548302047336755319561122176518220029011107137639837213233194422317985706163556895126842762146647356202722418874413414745573935053732508485495331102050588136720727958138745266799959622002584905622049568172330195241771650891409686247561748406882085262051823798741235567494572650819918264332488269690951937548642105093629401374690453118392358012360385922072232647104744506469269317760676568341803824870656957003970932470542175137941424738941100405688555391815373857197976351190133113732264227103556287366052480103530234784578529788237908164768721377713730755709792940677583070062849065222248284412324609154806628306914597562610848795043490963343670512467672816987106579803093035722878489619889723690152271988008339870612569078740122816541302019965299204661010990364437298246745732990642016168528462341613240082750596905431486489647368280500187903870490471062787528035702663506942372276559371478266666181861228358622353171284828680751562678361444282132201076860936614035320352294392987539801130113971585762512011818882637336581247400655259129104018601804892037673979523743135406196879319554774886553235813989717900284165409707147619794674949004086465159012557842025939556978132518328910241453386707975424816516573717834275053285401601466361741082058329240113284467978201214932529404973942751715232930831938895374081516364671336751649267198837349110594274237334722408032563884834277085409497066280496862067370798850102111783719497215214991129225213264505256255855437554611636022033154671463912740012303712741450294819206004780271737397237052029992754249543072678927846439018237248505667823761757008597064064701123665060531873173874779732047118563116170874201851090396115651973443468922114307053778189263098441739947650685517626800289607054517322641941873671263769151697065835799070464497586746898937231254289374286668534482282979224758345044530464779262160779537369740411634257253828400991220208242675022801060207751342666971143290765746694167806607147072583957575425741705439591149480334861968648077601133679813692271661500348729669073855571354234067640578909613250727632818642741212955765782139756580749946233047750217511747345440735220457749703212910271541951849882771622865718062423764401832909178816352543335797238491475890942780047698363114629723381031941142730876625000186245110839125828007667723738320672786134230217834549645064138021934989291224694935773120915507269206832925303112981486611379022558530347464621628785966032181355486516119375077589183784047164441683511120560475024262532736994923172752657805808819537075170680062780024597855669892121007057519496955524122517028137154255750300914153751485050166094632389069133494673994339394517507021757286303352307647339748371582907611855676703325105032829670597460307072060583260847302703212482335896809592146514736060588217846196821331273357254527274358190472545630981933625841107997826031196696777660220296448177153444901596796022865815546569614524909428454210016115503432355022601704880691831550177734059501567334182337466838577644449187323148023321847306984416255404496567582479418502536513095566707394184128779443653238089927174887641772484201023182733113539029874376350192630628252195788506109884593879618467463995112313254165386311936946764244787853519836227610730323824368349110874601703933568346286545322087499758423883568570571554714551498355829713404834151790451143746963027024274231915336152295629381144495525718734874643498386017950295436168783263476792534464932324231320011355208868363341295809560341241691829440733317900098097202069720349254841086581704004232325260566525302972141820688242234494724383560324283237443315995661296110453971968838633405010571508487186377333299826214601633134033797941312121716640927698123630996603611208813946793114429063276479038568246352793646389846638250258602205858866020869204646945006929928988566868022752069603624099444901687523013293082442053815819839822800393006545398132430248404312122785798456695971075912040887172346172566407261871632942216232613969983212070559287862167911375468925866841579130966766237420407171619561177149409007952375161143833609818636644824576891755862521297730842508335171140022252090386771630766238966231002091286947239255713184383184164554165629548630163937681393874061588772822992743458692293405193835516792530164250245509609725728765999590445442513273876209252370252160335047835153566374665464756149149684008503876973451346987534628481974984834849178652242814162727089645723538606441124333254875892714939350747053399351415898228088545283222595077065701442706751912797082834029582383777640106149406011281015094305721974660519041141449481216813823062648797712246878400347193505060930950849417141167849391004100821775376804828061458294626398115121164180687920707325782077318313476904661668831508435779536889544560784300308845493454471870651774404405058759751420366884831427694077036816052026354571991866016147307807009629705648624319267795571376655241137518167934791613934643653928646558451250860096090175413746159409989768317969697106582174437778881377791888327290336120821678028446817603818093993351629204390238865041860429867764985081717395655248914060119524455320048753960908269565070978261301432780633817416195209112232144667932245013675116762167585432841964630593758709657683140706631892347933878149864209601713480316349732312398763089034946507104481565504303601685713140721275008295878571970006476406213070524238920790795194924471244368008624420997140128141321926505365326582522803639922087164507063830111307059419794554533324085437200162125269952534515050700016595206437568834716018795623101925822197318458868140674765555371820077893246610229580541521784324315339771718821076356403827090886059299206120750828466395658813010751939108446604870905420904925702269079447184739439683610960129980470784598325636064784688378513337111984759309268406987784942316428888172094485402688122776881083391354773075395716744119172924784331302394199940012679744175178836497587613293234167339255977994748786328464013284112104648264261340805674153464974962443186364816110746728671219159344167922213798423779192235847477639808583734459017155060801891441211523639548995304325987332965633064675425497999684206025896351456582935717878856601473712411008223666079828284028474049067462021681372541273217141639618031068826066833582555017986231120999798209899413967176468893210529222119346968479069886682412819337219812972715677737450266869460834496380902115946557430579702465859313431339465677220024638070630644168775322317012104960940723765688458744733034415660153138098466558644644758273825760640818850172117444488306301182083863015562974072025425972083663312918951594595236381016670589489569426490072787298439123953608419007314819843747030944413904267008371439973487153575100571294584747444121468630739930170335919350385687318880970304089248506644238354783412572864418521755381041696896189012910858768952661601934780134437961405778635428914312619660014069463512300884283222138172157840097406526291455153806444813736802843364074636181947848969513051424090112242273921396919467082296342820063105463608812376330660466088023980793007706808402162820394692484561895617619492991605720270693975941165426581612447617252668445711550178012509615370429852556753405705816332858621364297395377140329526850075913399956381703849434979157049594396513089345212386454241374568966379740090450257504307733175572596439781147576102584126400089363648788821950542995113951091643940784670341784966732253466567160640015342173916559896933054318956707560044501030928513652255400239478310191208621434348229825602593668054135354259131158509299443498922100125475686816738170063470439290265114442619788237222496115932321528331032353124068919221977792234929551714949153279723485617165686275192468286143435755722620673844062686833375950522036006993139828279791898806878809434696770548199269014670827849728310609377650296870885077870268664110529931640620950009289356214949471433761829006311339573635549713962533652559844947091188346429627838988992120634322287063287120366087682463824783361330937685446165546264609996587505655808378743230036038792262112450864516167091921042508638710406975570509157327127804646106657545783641742748208400971307841876751550461560445032158854215700282527416883741686227937580418489455024117065918819584452720443259324352374873492290674838169868147157539327332158558846452122865903878908264842727997437963738225252335704950091760500302117120168093672193871643425918204194010793745415289714750401874046006291926993992501040284161436172754905357312888832260083344090512454143140519405967768235072395692467705345447269095945191964397957273295471711848795087016053552921232388107389915878944778983831209125550531997290504066181777193823482674142229534342206543774260418423296913572199172019345648073355934389688232014255496011273463971686162914043135100463899650038395125706030695939021554848969630514893363682111278266833187510983164043398314576849064192446602629096384147402115975664737012894057063141707604756460445852798355508450476887224590300800954445772558706995559302572258419860824516198915643273659756604197534095871684199564923209183745996303318044908830821549955764828469687475075054220036341799495355917228381261624126002075391901363185912533371074434925598591502892561905474468456131084685585776479878666846358630657873958089321876883207350790493776477374979801896989503037529246238330642732057816807397340880000266150407952603173076141063253082343725989910461113339530327374216039104621685916600078875575984250933095671032056249954245287182955567659237157406754090602652854319074148553899576578776526760230688650615416978213956684546254992474987064799266193474656196894700556534353038016275284874344358590708689896410962354066937550422565282406640123848388413733865633784790923323411211769988304210168823901386564878652898509852858594078020012158417692756841300634150727737999983856781718901957441026424789681774742655394499946857983614630568959923336883265452370559977295553917380758752572290548401529641919253822334186184556770530932039830909955507042536681379534318417289289705648909998562559233302339761164640808719538763216557970038552102724136451764093634199887030377505986457907801832640047396919146818550580643746347206289760981829373329198578579549907287215038985727068943793995290281872889840698900573071307874678110221213588948893005950538655069255631523946124394465837290607224946318221930805161148893207972964047643052401974622417110896705566202897339256827852575536617967337247165484135924682731185766198581085818022377466562994318474793252952690730255328929320708240372306628181490718640750962402652681840419268929447975572730028306410708563591184342500107765845028016387868440416217806206085490463474432668116277193401939660301530911842324602892496098943968867181954215057055658042620039477282513132448454541764576005765818032574673415946218098180201542340406535206094652673234683667594403420956950005952418617015965169856515787938515359719257407901924486788324414785847273656951836021826791829361867413665355180905575743335101693755379832284318061110271399877882670843486374351477189624826044238335825956582015168063545905173127664702423678562633970741324253614374444500543713172866549153458176342623854471400065838566589378324636394453917983953661834108211891785192941789700103465657217363374306217661623178659169196624744285381623444284848254606181129009805082650345150698836701038779892601855749147859496650560976955863104630004377580788445490824086240568149183671762683736062156910728987732620656334078637880756606350291511385630688173852329764481503890037080816906891678883144461599413436460342869068439923600707891036340905301523826548868075990889146573961247415193289222016146840100080970849884551001459447533008574567721700491799975444566958877430533105465386122656551180075598128251890561956281902654951740302072880811409125685340185467133330466135399770362118157185882256632067496251889018824445988866203204064060770694073667833478757199017099727232776408524051012176797525281378407772885973609717349470040021064727596683523146603908101929862835357393144470129789974862465341137160609454952619751465351082500410056022966143136324883841121433890004952209772604636082922545418908641926163109199443250487295356372027915179203924355084650897867059143806271656218168743834933952230910255939238429204890643618565744285368314330527304481166028647693336626277765332144357349028681417939748961695839694945719095137545321588032602070768845769774011115262962746569958406911869087884421198010959535190381797897246397236589762673668565745427862531286188389479747969905267633151257705437990503639332585531099715928868823938631665791527890068467569142854099054530513557535212462733403917199708549739735103800501580353518906229441096854951447264566097462647583417758134999148505882515573960796368521431414565013874229239245904355064319149581697847857374122907347083365887972086722497008905809918803519013642532306949304452851900048562168959915070670991945125172502214507046283398780220614428639068893276890797343515116536327917936383940702515010869712001087751629890204905971279217548952270655676041089135012971573401290190225791087740544009915540047043136010659382204935130771215339613139671641703670690587509120850725117632026953398052371201640436682844699535499091724720855337032694264276804279089665391904620042816825309318335558836660550297132600745203527713818488257795885925036140492552185104084573757119621877089474332301956522015904556280991053310994824832180417338201991082933808709825979884355141958071988166718125031672592688060359532327488978305598999698927703839602679560027972505509611796487482454480155092051946074787109934736674226816672664219888035515911591767516279001700637042773311982360431833874997810357482996562409162957467309190313181699113760228941955173365999801811902910912264377084738316674604722970910319265294435520772726400995540857416185583260010186288011727731491510415405099018822322572685534308718459937456676055548582697086989088476304248240007017362633505811658924896045563102800794884131267166414454351962035131799727660959439860688017047601429113543774046050236975701366230154813367081620325041647198228729235733823870332798673846827942190882536509419855825055961655715001068619458738119478462253961810444472707012877012098282325432451811358742307399375638121641363361310985109942138959559215689236309964140388033297475788518828971618037638261326330500632553368549618806389351855854911783529474514565039765787670060337601335242562528007476607447690898924546944193695218665414478864162703909676541635428521256747332892068116332829203759336063670929007257543849538597049437005252133291073387465832650009920011903630062125227593706142804418195743626057948797421105146191046383048511972249831966341202850350355903511180943368700903941701628574663744831646193468546439028844346812675295527986024650235960543222701985257892853820093787406219205759286661214328447212657594559729820272517804151994203925029142112560178007003146491346924089244280369052910401565592231142248856243199536059230578330078377111419190824994183577232814878374963527489659888813007441886139013983966201690213435948373189846780321751220864425638516580055742289579723564386988702232219133749877106109258197510667247648926735174152453417915427505043401370892407810656721234218756186173024663869260271691720399471146401553322510279317277157695598135628934058267688624009422951904837533414252708108595103562399831582408987009505958653898296668649306568737921783539312338358536516841941575712767165846597116854673546938298320926510263244728094213391699723337470502181539664729659360471020357777323482609091908814579023139045759583934485376272888454422149166485535875404245944834982355820039616750611819618413535850393460053121128867689352792400257050742078819517056924572233589487030876777120070614966174444448769554026535020568356985925147407083534146330345679661697144463472610000691346122860010610629662691969542696483095571452556123700442972673962463515422723215480048040892509407937201805171789863367979708470779897542756404691915217626898149206421817814013194319339563080799998685390072566194410503708598798025341302291989936734055801253456247998830855586241724252383099465411394770918859975874854722217566814041827844728757869135359626735347290784791715263011312311910851926375960260108676041715610163830138260244004164490796849888394351130655638980770116360404424635861257769907852943761818893276170403023810163768618629856751369846909364215136007420209329356137709104984574576566192110554794593387419119479349004787618247258402267269472032293837023307940794513325635003575180282163349785080197574443946067842695057323832823935538534508818140487725490434248132180428276962971760420488423934339398053269730783411274210012335345011216069017610269021211779208159544681658813350042391751695492590010366222884455102891604985667587083792483123983556411659683219919400663712762688926547625785778619827711382445710891139252779474337131789278827927568008179386860170485435885856918897602634434017780261768905769812497419768107357677192449580874635039215676336021581877463998353535506955538933431161016961609706061260192472061480664592132077768507498706789894145393124489918460356889596518778933486834761222333464277758077677326070708614212610977310722569230721055161953622081528300539195107901690422506019422331022303931386931682599088498298931322841989913275739190299041184892300359439437025690564583544860835070410679176570857063940316053021724511876453458339062652628015037577124049653082609171026344330506324931322654509462834535090367436233289939792257415023171261672953726974846736904187331173921682540763635302001559036306218350614691656862169690550696449503837649177222531654884125736337012758258107321970001633813934810367596428588423600648126604797262361384855233692751279554047721364855787383974026864591205338455878210923055623704562678974932288677499710262169353594013858852065474577212633327569536361590164566082444534745526685887880667657972665882787097962194913134954683647937711182037631378043411545572742358259133514508405396081593068365322839790185271594293477778235961147255601056401549152350360287498478534273742394323209984193469619439380916030438104832710263775503122822404623527831452889007039467935091800171403085006824566300981845974559930363525935121578928548475162464180692082862666116232357627049769457318541342730406498539368877604122583407842753429425597747265962819924858974000404224853681299201495309128334727658715532544554728199880001000922019550016008677043711959838187740837660889347993754202551437376424902184889268061915796425947669296475845883247549893971374864201337711237424244735183939996309064886940825846087804269395522597195623969979983149791569264971994698538218400897027112530473178649826221423079380934991596387825327072056743182202094480634122926300369697780380215379265352476923080623602176913984158696194299146297623599025018153923530530943123040603797413628059154170041638907385447724527417963244104276866850847762448793826583059638846154996122428080352481255311343925690516738233350750574078739929740638595320801682671488480196996009076049666327352264538276218127667524433858356850453630251416561049480399368108102863460768069557373091235478952168178367253819214247425019706252633099924154556059793533552213243353287304615060830172383696392397006568161507156897772307058887717278904933116353522384913305343185044337248773180708841898597990442103071043303661116597602350287035837096399888349080236247659789629951300199591898520262297000240324160721695128345096767049429269829572672672289974384841976175692518978261157818577060199481405852937292195058657797233123807691087500642421915475419184136570202517608066901249774845912315683212747196356303002738481587250798944492353946093179556931887865149770920608411996949964270537494749191819602989889184499262855734993175526363812568356347088321127989665631637237965535898418046608487845797183516580101728787203865186248282932759897360266291662014611993619819032918026341287097127308888849913074431866928685675230515814080344022766051396893970844843918491799756514203776275535959569816322653531890442065598121166561464914399465223431598184398913706091915323285682969115049249173236592935338160867746764633822470531834981189545261796865632908192007508760122464169685639048420638969913129444805680117939500314717258757754775884246464301413813579533420777622368910051851821398165494897122763683743409881317067505209619340527550258017332797063064866642529954909679837470589928404745576496349354713985933223813832298954361654452183301350651931208060830079788100817054593801891419373356879219759531112661612261560285950567049992809751989983040441363153738292498787020337753247104397570913956169078958818955368056346434553129056116536768272391449882571655576583887294614351476565871860037608233312216225706465047852299459801787303771854188958214468779239231791752928130274640036593780306335072669951300002055491514117704595793364631134569250000884221920444055260012349641407039153138220047432030130321801428265580369279725764629654266050366413438793896001251509813813532156133616094598895399362888106893754620507140409858445867122517402216464999574461801902236778909512110039445635876823180176629777305811868307225254759720143282459722592476815479333577294434902090929449541260521319584834271721916030357107922338851575915580385271754741907929095287747682637858715024165812013904253515569745663653088205159829260753514642181024975950440958001839079916687173390009941773961885026914990698216059306178969431037974317250888041061096770666131846032544225135771963393300476994485239220892722667944849995665024219473152869585636150066136375198147027409223155822764100824810188387174604900623396555633251179185283379741470835376485698469108332299260272662064193201850045884345149832512047109992775793014025942189680157867235639239938277167823521083701615394624935165104244598986527685715861670344132652632552514263283959544124270908090157853005484783076040242007552966596272292962553434810724871276073301119509054482818792035732916793734098952653655784876279073364765694359929941411297610227256600629954452282054130469885164705728257082720642704753964336508792761134732343327146755563346111923668965180666929458553357657390605690506081445400272115728236966030604914772917062274917430251964976609396331646594861382440752339715865053845287925547897406246955207525617160145870308230976538918340459248900383879738565398640701552133930275035697289010453786650419083357585918001565486277471651252031156424718802650927062370282472676124958842791332318406596027410077489275784385631048383974648506279974322483021861262595939586912425005050079557669355176074650715890935126689459450038761943661331645369822504387369065203216693632134572010227820974359230143700244451795644433568380316429259498325116691807732304155394680955813719910479393227296137649143455831736380740453276963851593419236826361630806852539314340759326517935601435949190546280920852190457691416556645857642210542144233387041920473659116880667324708184855508277966288827978219494501110950830364575472345916432622436192111219669924457124199587866781240853121073071113788787622546311636719565627535611135864269426426951786754085285086862223246354066472316130614257851328228486702407094285762265539873559234309701708470979082949072086494712857648401222462929093979996262701776557025513806502914846032618291457843795337063351775126705644105556873343963737505180462266217435652858900592921232114120573208284102646199272635992470909378699754738194895216852783149711246438830926059538470073008192020063405766897771772762016407525554191993424237702144416512532965270746611871424541391584814781929852359669694161309586694419455713429284098915694518494622045215459345474385648096633726860856736147387385115461253570994276173636973342704220851286910246698824144183605052763504735644514886139697196762243291697307104665737047881884834052322324248457049176067552389478149423464018413320189006874083093383499805538789050413471216355492014950678664410824568917191120397402343161859674057387671825131326973368171104485648502555486956959674942152487403095599995522955468790417931407809783674850390194212956416102216515666855031885275880571792394665464285932173136165074777491578629363965492220609118650999616661058667836240950938698033513725843342078228765412993167782575906595654587619922895381600055497092421306249616027095488851894025110765780753372651311848298970349820417309578941618776696728558002684007693299254731621003575247566414303699824997247062703487298222474774798714750838666791002479627319311478870912986260940832844964373240443285697226361634017292845254853925588383053817451573473364403117644179219647280598724722102223221779959582246568609280587442484015077001566355214082108078234013067022172588585636327410520705241781820155217311749414045281775450582855527130648771823774347536867997176177408689122861029904338209630217492286640328361312527369884628043714094169459277351586156851403965313680177493025656198964574974652377104658376783932690719820282858202249558652535939078763117218814498310221105845703386678507758211984140220359235927283011830146067356526503202414430508749914775182860858948647942802754366077168067187132256461804496121354206775152709612738994069079226721139555585023375968570968421597755539004261163835302268253694890484399731178356216565174530538932758384319400959706198582677423710549199941422263960525646605538717549225312235857208501982592412948870876262140811760643602358314648270907170058336246223551095051606850899210690458547259778705197534709124830354735395577263841245286409006999435149431838232998631963363733351359853666072593427145664544930111759854899421058144835751341119013037121442880724357942095603547951541556033136809439794393431987413244728994972981992502234615057209515675195913705264087554141634489064176357861868619786267877380881089193490198545381012980123258920788767039696889242698602657355048187288831689253077017292874167855136563962386534181593979976765224424439612929429899250077182410263234614223722737308750852267228921023898028211855966459203576459360826325802036890943946715058485142043261181780898968706666738787729692032862654821705568974080212962989080297855920980105686196778396360010839277404560357901838082968980538751076336445962889902773278546403162839609444724860738445619632950111116467584507273001451139592437838340676447218068065799687025011201217557402403753304832042021545828060539705896018979389470581151540406147818434044350437227081562125489370206078416105553008800468174314895002865551759594883708353426687822670410109497390080984402190571702930991668784449644632450838986772715055169915606175505746806919625744792627968105370605355652598685483853194931189074887528383701659464304376945356248726614013915756166945932929534069910433251195504723774542315284234847470326755161554762255501401208108374390232820682822477106852026094756732054289028750809549458994937806873140652955773098532550839001917315426663603761785206504688582357239271689179704726830241658834828585783225719649940879817413052405793374518349870588285689739768391778630002928990832862946645772679098824951505688558612246439229628288613810950947128910534687522506221401602025078490148080762977476603708718969361536268331323088560171356447394151637227688929506569306121224437633739692257878694987107110792955225395147169867515212598947316671890676171845649286568394820206376512627162534607954788069128105390217865753625787407842241274202509073849715063123221493389510494211670617408921633505162309127468571930320894560796136634957307416847517976875648198134385546071528439811423442351774228961053328015670192874171866885396959935745789294156083437548614716203762655740339408821148454379860792802878048886296165567832821474275103295467496823028728368169960190913999545468753312950289561377187298561791222179823908644681053143054270767019209738664839872253166425502705495528518143611575936949562799977761331213057467534761237673953098357824068142478542686913556902105932810461797720418484635616063237132465751796143390227539852273644612942176145710650686965967415396393309292625150989707790660053330030807433092057633821141595973505886787867894142177329521954480416995420289739676268219503078478739378010128664900258693221705276461995974170415446161667501412500377569703997582274062069973552031575864491744855975322414042115438326835342391007923189043175148744941451413609402875833251982526678872836427615689213093555581719751226966047528288430549799611145690186083229708349425651230545237816560192864907066268140279388310253804657427939618262987838336639244341976342079073555394735719068358294600731375115580588597371344521359330899847623726290009706606692529038296617845501541971618568791606461246630610465666871298734949036592024828323906754788814794414651339400243743821985629673306051719956010391967925825959909814027824511296551625237690112673001597128656897933944802314287069496262562565466283408355056795086931478960181027308798501639012672423362416066570784022663462018066681857380066433331810401156515873450159481663600835231862971248154944426508989839120295805518708422712263127035987209516840865252030418191715911865337519443760774410436874302737337058359744240933492551095613660991106746571097885437319615798614572362699709972154207541115868582104566743666723911159917861333821974827630285265622478205369560975883858948208733937959780037142890143755945493437716127598569187193408903415215672487964949280159057143275806017928111498157188766662158349732877490041739492331352376169791072597125648387582745536436150793888566978346249583219909822731530355816141100442549297251445946399959742741752011674984113038472402836426472659008811896402625679222631765319342718980747913064934877435423758188588293404791231743320234059442860090158775475575859600471970088382942116373631954667650204809216023985984111943478193102820698745928743788192302802425989105323117759868179734429822564632319306698635778468382074613359542523831505226536010839762083868315592695572352600095654183450113238943458390141644251951473592475319323589887217648397779932954746746159751532039659531644778591217019828620341939257693128847115030998679183705711816568072341421954377181743293671560864632026492551640452016678191206485353850970104003598410567560414488566058101917877479436563582715870754966912477457249048672438722006066732111663392331959387290579130982228419119263249360191932091411786090653236657156147187730414821959831718795770378652726902829579242486990834467134906862021879170934995747754234999671292565764130169980026315498815399363256328411270538129624483871207558876062964759428805245032990775654085336443061795941644741712714224967264014587363331538493352025652951709950676225719738668942379305417170039831634081638716007869181928881879998689978700142069590430506928841741195561529404506256978463855723744828428799622692536896390268497847474781012398988928351452189565895857734492437362849141095500226157918250029333295393279105031807227822973211123440916146329010171951945554908121575476272097345097367490342180718799867052654096566468592840089167042614794211826044123787790261286067489413950007557618882226114384822631396867363926078381341110614723664950690506719671867507228483925417501470868236436924038202135097753951169950249063564706117557815974711840118861541024333375140178906490973932722499316221257976922629607436257666656763881890315202093403419023436371593041667094305600240509881205075531862279454243030855328040533733211816131556014988016052060855296428553223718697031712741423816358941415630397929629940098723083522488748346920016440780919387576709747481781561117189947638142178431398340160095120426944949675798633808539371702138852128531730502207492551468610740913374869017814872031240189606789359878632049554949764302108380011023683374369956949566717399506757834598093586826134974847067180591997108004619327434464432917281123314535927931988175625518711878822080031745285864297464810445160783726962165964759568610923146852984008549315754880756466561344141577095772631288403683487219098883314285372808542587546818640294903758981398428413541165487908881353629998050052238763229536243994340253530470741975965516005583887483508348381255978775161038454160617926327311324316163506318674487734753234960927576617460132123122525460193015340543567518622435684809351746780135487050462540865768475848738607714887533364957052787988776039825775007646617707579291050528700495483535053384396494416150971812527607704266953051985662674265927921686231980844419765850334704486462946687714336917246502763427589991340703650802033482431508088590487503767296871101220003019654161694582802102928369451402623475757680281082433554840839291310333776613762826587577205766278967337106254873078174194732619127374748914374734802423129479512460142216146252971634529136394474849198595411217605130817897966029685735451501683565390405210439526176455449928253352222799769755821784076053506707743633289941774363829624856781219480368681672294652255478484162929850488903197944066410471017437331959130859120886491774412358917753912951700801547667033690278260834474459881241323864992653143275299433080485302747591498940936215956074168853279435500937307375049078224853207205734336964913937387790745892848328082920550083185213699108165387362315332059766478540734841376908027449761020408648375683706439443311785420924957546848486966689807584213026180354991757132939140355185065323303153979013759304654279544162637327266904790984640199710903368130039743473531392514556675557712360832367336790006408226821820545539385300881493698311008352395840271520598040511007913596584086024015512518447620468892736218859392487062395130027523268149675734672829414337282755041574965504437117528387131454566178157540630418424048748750013049403270296602489559347751044339152071331867272974659748504319882933738388922538719912009752727130646502769473730535665212157423419377282390197982235862855793559065543113216610328497247146908915882148086252070888858143168592905803026841703223401849522438726098778017933556343406128388403041415570002942728168148367157153345584520921993382230473572597895953532203192528582991342746790286355473019803056473344130505875626864443361163608445251950623164850720086703799396076476188903816112886401987923372527827614475272601001502885778747337829730264190324986881418187298647231854307289192400168072917795540343102706364333458324372819345985261972925862857085616152191755122406991854557695003873058862274406772737322862821657848463316638750942658675129619750622693950414064200955599677336712895502509105819044864676029588877650301613888490620889058638491521891488758422707544348055999626412489389662557126363133556572937447703603182925334263267658829675299882928256957061255696411337223609743023713994843986503336620820390233243028586535383472517544493622970873872675819870050382187081515082065470283054521334872451714199333980032254068038416208896459548039272005754321061634520650833168969237141565694833007997762258041260135450159551156079939907154775799333527050560024850069616805099482883129561118137841181231076057142619254231059246340688703316607193208464211245560622280867022254496699449607077541089908698583697972271917146524359392647605674561505920991115874198061714573998050293784400929765819494114478826334176995382888042740954633913867490859426489747857198537244723069228790976351007386019583599921240942231349020138006309794180895417269588291164597569939522505274344337691414388112356781096148956367733464842054344015007729910054224477939385841383108826669099576006844558574063426474856587237114728069963244807423915319107689753013014932375604406637373138287620838525092014793133854480086913146922900444895738824414066107534750217520917475603934245761714267995900152260271800254031970978416710624566928122658472850487656649947994804912398974132638823030786796270098066940426695802162031092540590730149511822891904561663508519530447639977611121678968848605638730659203177212070681197293171704078600318985287160226166640462958430808996043325630693022689555017937096316947780059437180106552492857948816008202510162592366198146869578807365471836243040108741736816938786729232108794575349432189319008442003358117233883981494472741627518822472192512044798332029828659584467574116941702772553539713992020064637721269808193565561317155214311925625059977904179993359471309037384810414054863153830000396248012850121501211782508772758520491231191289906591629365017075406696183259976436437114483208444775202501302246612549184564507454206322826966439603139331329041210066248487264861768265525369721610168960446104364685325941884201013530655537518569264689431472683301925082418137144275136075697254636846240622856687464141007891771950913567280188495236383816178452252740036382126856946750101280637102518783152730831645138495670738158835433828258656342416343951265212431014000906757513386956690071690702247827114599248454283503198798527969504004012161015741083786122892736520060795853496359800460086500855762741350901858031562771141587577464701416369124961722556293819020753528529090352579856877331290198485021603314756066291155393802786494571868154080731963340793633378200844052378609909751014661729522024289336190271441571347340855965261327036794141987460445681561671015232305660620135744185089152227598925541135679950366927438009328181738057665730128671967481945791020277717692311703537242596292137045306116370956723310993739558470634212629141434948809777077459242454685580193944504000726554963501816916174510816581053367752532194823267031873813609565670027963060261947778122581041688426997047981447103109988781275658662817595230208020644993960761934140155831031517166005730317578134216695309735926318752265159909356473080561352640643496872469005726124513283295552218667716934102807636842440964152397489618886780476427583637890533658913163699024583820502908219825232275223411603390297708247682605923942371057854772397432261803653296485019116404778592376519628240261256147214527830298014131210514701441786805881180170345718734092952627063101041646618377154930513235426323205108233375925807947222774490169361984177455969712735137640144777360986209709133432468981962398640262391911692219127288396602747546980339320573970646691706650702522592682035949209671892802822077940873428143354033190566694543548659157343823491035799873971008000947443285586225554200766088892017490820097352123696964086777808835535890838635299835098094417916235987600100221595009476399177305478186400032561235642653983144444406414525158147741031912317225543853460765429578114900144318810830277001236463659220531366616946046699647798189889128923153188827048814249607581275999020435398970747697861999262887643802143233111065203762757168307243191431554019526064647528151887785666482023689267687226602131919650624142734056038763256983153752187820912439057037855913716584922331618318565524261415827916530477631965154267148875204750971189891831446562519545664487423579113637913132648024170729832447459803088608478754483393616401363246565610199662637427934562990516213334612231540299493252142452665171405741185050006933585019193159089899038488289081075704545932660085118206121561107567948688905615869790553119565274249046320466311581627158568521332485957238910905115065139547624718772453998915193505004647340238991620559706401000728219924072645971362618568385768052005898596456070866948496377524274965534054196793858629741307993346372812831500028590761718811831134168598326605148515233508888842047272380359334559291333798597121755804369489892076353920352647400435688527886743502684561710976662807645291956778165407437972450615097760999745682671256435142785279188081200268726141768964488963082629964534390959110363858359735158071154322520779149571521286251141606100791032348873757249447082759845867202350995413883317921861712277601179172151006859796547134362674090990973227704661637412220542930094836109506038808739222191326600362034345390224511547204875338499842087911143480167188925402640385282853148663794464391353984952767837826124241754591738698807486763576323429990913407116021479107657606773705463039518710695019984124532737294863582856052999852770233084376277214780794761960647191162725496584699648286806797756399266833964238076871671399098545389980221557973624017373261597149136852220596269378306046511957620093127559214114833362231271125256097551488863482645571444805192675330468160154094820245323221519450721706083661096742457161560223383849110644329529245716152052492139189093296066894142190106922671644281833212023432256170354118895599272792348531292449939281880959658397366112148683489986412518165411858457420271071966930700457636018773233110091534272683037439459457501211840264806269724536292942571642156626473158995948635089330185722346337270867660625380974955245367779312848713277125805566980015951674839452366767730787194422262490177763473934822097215768555767064810207724899016352566373622571852666880966248267987515854915785640095994265390887400285535363062989556314233054607989667909234428631306047614338764006362652434628065097295513383264538120078983239778886169291519261635983755866651602517752206973929760514333767412181691643245288263771292650026915257353744411875963719330369256699177987125633324324372250395846131222037860636532879252189673992209824017410313949363636770128379630028260265761342312049041887921559307658933903711974142349193387788639595982372337258896891326030058803646940360998719432685936336754796208584596619073035933816507200029168392623888873601038149484959776864459240816566225325949072045170350228997757776024413683424006236397142066327238651282649604414909110356160156232984595815493174434088440833169628251138806237383914588771750785003448485392326348699574108370529693228461364675666531619580358525263130502187329107670052933795565230413171141099633747332038913628807793589029985346841780207556753719850860357067260895587905107901471095302686812594793381487434201521445467953675136166062698575721308853522596470682581508645036060396643462450763300979248334412260531850116865864197985853740321226556270418402460040809945198790423756596093937434915881498685642681485489960696023811838525613729048665734398849642355766892175956306261650544290277834311934722170895931153345172932048517561696702565242215362599221023374921646949914594892127133942770220782935635386183470857341228418338273343138805189206695155058186538589958701203659069876880497305522015249998058815544099006568376272736468242216422375463578440409437060437157299802827359232350948819001940033311493730541487354630855341202779563343419363240804024492647792316799748020083275920057112454937421582206719992678761281398958245128133985440624868212394439723507715586316029055695341843185519855558038541979409275583024582197165015339399074648166637155897206349065155702731823028522635828781309591068236860212867695312374360164031942539457031235328435235971615679750267081915189016581908268464116743324006501765435547918022640829750874754476933681121618282171025149311370353914560563414921772527898835396138829773344236567636873788975620629986702649938035805844073433899746726342504365411238008437340897812016555458181871275981785821935063015824190012311931470301513918129388400037766655446829870622193682982974446496795944156082006286601049906767442023220311654974978428384754899069272863414940575766731981768764445396199109707870939072761310880070855619327722937014700078595473082023233231262652831429490551471717108351570097449728415312819145831758645947544939365403932602848003913302252986013050084272884677945874590669689057712152415537723310062616008390513863252030889219213653894528430218663508293131840260096062016171019567530308073914999846190935771301362114558049466056590433224915430644675545530505157286153248136635151791108644198804587792720659824568075739151468226825749069631722877195886478358173244310244070664679072415703252647748020360571836828387555911687959414457941876337573771958436093367920217480765431149754816687381013950236773552359942748113684763229024779384852638009655225625396566144965400177472559585486389732615168118484460805108911186401187050633971225779699626191828503686006938132268471666270006981691669939611441870801624341221342372070300158807827728720820629187620093471290674466328310141732986552526367249774705094551039527242732271247225801465114756780974361051108585681845145088138394350275288492177305932027985878820869833338536610292869730918748025851807276188691169535097467434145731294140267819677580754023175201357316863093064138736546988299629924161951798571771565083088125005140107552133402455012115639025054611173276296100522367504902385498318654085491907070942849595839104741181378541176850879818077562927258594698220225810120394559937375173544964733136971273317304272160506808241657334054526305166660246750360450087207895674908110774391133235867234144161834629467159950932749252175052150851762883492696947637144379594284460076036859149601520364923255347792978094545994314484086023123618324914329568768877607086056284497934687837179857299329431406464809987855221423880328524821664486795631632008163963748293808430224206579355952655528856306481762411133149429756112497273649178379083269992289150423873041557024445121103483329661545373985529168055721726083749914670786519392410562379109768734400563155810686695370680355720789881273696758305917076946738245172677870316272755073046557215362220157151305005177558111984464227350286050822316173697775003648226602122877228185243065063885548239737704824657839033680948585008137011341262211395523408701025071811141465795116735632370712234591798953852363172547602024026507363368046943764291002745089248376029973310866698357485512084136330646517436191275143393506778830919649740722528008952063407758480503059541025893552653712533487267518849569416290649917836965562619689220427972397493613715273066606583137405218231815831896002208055100644747895500951688833572221414474205055950692890172957410283526487413573181936015749181158905260521668569460794572804272116686955495639890717076091516465609157250101826678783922156952316799760370504799657833870616296170295959269000433219787514107380106343901259846608192594998623878702412268759479622672286944891452768458757350628836795322184153660428633600913528865131867937428232533982071819861566424312693390733648904664309350523698648298872940673468000714530507951489574293944613834677070370876541650653863275427346108126883129032237552423657232866202545954452763970634940400933529133685612025281424209911158041964248183877580339637639716339626887010772321330732632714081259551813430895708572794738284603378818658891833884681590888555547452469124009504037134347416188479609800942498066072049027727817500866969083988440894495383523261968756584071960363439578833751852589086082011871936237017841888899809356933267624930846582578667387120395594213009945227504621150325946993752615075713956461219001838278532921226343065664038564253352533007313558179929414583318628577879821000886857992108813360729718604014277292663719541934339160377238816761886600376435473186397690266676924166584770372809786126411581920502994517960976668803892984038470800718112863653533223471235474644415604523147662768241280834685141916343911314546126273666582946975851697179420406327651601542999257472592957918220480234112447295003755900653291227472714657090140242266577414728815138420391821928715758415896595013562738937805557780040635939801408640974325390156313910735078326858588759324231760820224678172305294172396998837142157937166022488224238417835698730711041101893414658763631298801869525588535633181238419285207675487470472553340725253818594326118918139835727563390630391841138816013923933333503389126645658908532788691988221549625452259004559513413005736599247022185918694101332284351938599828532863296585965371288127653091160063623676309100989995212641832880234873012749731658941738006815882546321712701485097775811596179596434215915258685020537982438401165677700539894844169337391114492013367783336365967555706809734629339838691930806012234178919520600323196109153187405683629185588395705544982641374109314600018641451610867047779960953647764674569156170115754529175572052297076742514352832517855921749868788283262353424348499433632997988238952292570178677297817059257895407320938550305127099731578303660238351283321505868781120248500522326506537115635745441955503413758323583958287920937582482789249606881678847568685155486400501312058756311379415979287244593518785620393140128074765129789981414028941460425334744321972188697987889553533868322636358222163113653688318037855379238150801239392602364889696312275478606510875615803070838070525781187278894409818078080261929240241821774375273660975803533307545142960010467497902728622423879919741863972465257061852190210813984783611186088649213166101805435857594381724780573502915124981095458925534994578412782739284327189743266148719422207797590435691168374083807053564533536898015688844405835083391104260954369709670982574609242212586483723538505088420421010079677931630755927868267282507865128479164483748224926275766886961699491244483234241641949202868978229155919381466883563877369777147437984841782287422516758885924283717346136695870151586819008120552469569296336645584503028735038025805859926877309390379075090507454756791029253635785117663548834778253586101903874683325384127929863470906597539493701675287838546066123784637094381238898391377965658045978640000919361022219277410491218345561664509355532335072633919636945899364771229308908117640746960774560033557731578431322566729821112826429919851995981008051011698269509488013315084814301859799842308496945914108163478413563741737252269112136342570918820413254205481994311789789274692029591161169905404119306128438788359165276718351860958328239132116277634283755899322493955788881329988011262618809837247127393800084710763082771945080646996467132419296110873894233799923777660205720455990518970773142171923850989834114689854610674954716012675254137719994840708758626417604549644950305957382084060082266907129601952836652746795942910308206017185728372768258142652963602723534220282466476727599073990554169862145093484225212348815914825810637089793473757594485930057513445144774680576746666279309384496291094108316386494010340606903160452552168549136852802009817008430326022583126804626868494543406618659405760615737120687933031567307930225092037935693666841221733176844753185019631222343224650337853311122785312032996977571726985405745352136777430756820862428312461655735528827974209186360445142827535174323493030509358923206344609957107722014705520419416112392414266770722478292358265188524405809349348010405077156235125112104993526868479976300101515758640908504651428030237902071850777815869310692409471070101353072224892427058139356934668545460878640481084130133872891673073501248580898729772735219037514569656290405455652504826269935394399246289711578363824030609924437442363517758958938428157431126475924566007976855479983641316848066547474108679448123742812919398277229656832351032327604371477365065514633370683820937137748133359517125746711351284205635745585640491951514098366708452351565685400988326980903814202414557298997156724506319041163011890125304193214726394857693846641740217190623089819028487261811180225539985829072292280040484357284447605472305962674027558801415501570722798277981414988296953959209383780049341170282825115947766796038781425570926342613829118953304208028586350517690630093547812392820908787112971941675614993462074550573161032652629634593233658098691968385951480206580601686935089339013983956459786420183883318281620979258699359091157990769238862050530688571266474991837979077566127821270145033916246659998216531423586533317890472958919791365635250399908101777916872865145230964029964245061895952355321072078534884939247565420306629931524746644989547288185201952678403933704076337374937214579361704999103237606571184209854899389851788096007882327966885517317654001341902494340336432151317200214844751963982412010660986863439781740816587680627150284448107510686720656635360829607343223447066105798367248948717708057117160624228306868632860570781306175524875415160782547893184076674930035386216660503790944213819584271977949764033956721378793223272101273578786546629407511797886445330455832897383721564152299541612201278548164179423128705327330243533696561546365276416490511458183996502067288662077826509006742035747456719599501069032899545266823789944789956845269014053256148493524387682501926565672268717016108224666316500035271712257253503754281435946776779792485747056127783168075637929525977170289188533880724668502828925392407087321871902643264554807897482920346712318793886036292392120750574163212955524416557499162634022047857636806873884214666991493378824232464515536389939469832007067383448713370398842343714843993866227850165577497784813057382306601692317318424680765133700940362739808245647230006845358337488154914443329065513346993805087999338713676470602245653462384566050177946392555319448448643653147178958385743735732223980978824230303461361575107075491215585212126310630211049358301341410492791562139668637144952159680803192741045053508486685587406357172542845493649631070035068154029607454530787151618786739906203417667193397000776592050905341797434622812726313610212406690285990138476160729090825409875652998283512165509773193959978199408678686092681054159573497651576688239970400982027742360086652376183484174714094663126432399178656904045743161362371806321059511246656871749378846516540304615349776553799034645389910053315149203645119517867906714016317696908552163995073484780256050234081521826576329092097039975242259608684214875118249805381207011035580245679228866585891326857334104141906504870685469940186438466933868033765041581784647282025702191189511673460208686101473996626691974533980787171137337001226201731466445923640581919636667644666145706064538883790558751601781404430330793980146104050961881232276175005579400292841021672259091984508424056834836998523341236383617280379423653993407749660460220870720409911668477873844083824147767312634812795883210115049508831374699113953008800921167454051187731362260901742339714048400403448779924781874979197996409706553319985443124917554155568522519640407263411176723116376315913228741908441872955443623887406033137848879777063505845834681735810859948733816354150306777383521841766917204541701241078705218252141858865548620218301922023351265526428496997756366712126608245421211996649907843304554360314966209680599141375092580995679000108429286340640790544663833352346016332534242740134173583447124396650371526990146473180611129115933154963274293774281366026527232596823979698734320470303606775754953284418309335214272372690425032193735425795818148436379325071512087004308067836348613171015354705933978186872411952772938865971267917570838422794532827151131972571254410892966989686501202231832390651986469658535950358207306451222438477051361006043588351755832612130306709062829948620827838125539705568932860225979640382271551502045071310143652277997630922691333064789382141784049606464634300820037263509981701777615320896058717125970661206106390967206049786733708466767361030290565312368559406973182643392150859850295865562702396534923165002267950085991827548917465853283523076448721153425220461113093144229304228815762478442918059578383815873537072780793896836492251061322866064929471986741901684648037326542192842148230398223760667166990074252158861512663274348990563377032393291684864456362140890897883499876774112983815957394815130143330212909443795454217067038050367249029230061883619679659762072310275058000492500109763712357235367394730223188173013548856610796765193147958872977770126200121403813487741163790213448149613968053328222935973485300158388881850205668959818733134205049870126868430435331509858640163542517205141844702274732223285586011745551543048770611783129124158611356037593659704222110302641815760328607078957779229227094685618835316556422180262662801765164834062615609491253933493296782815244442964275595263433593861294983092154274683660895959109840701919404685273638948806773852129194037859926931742278168150889158478616674659875229983529205500515481961518039881321000333940241570643124074697637674069540011708149256083194849246322552624394626332802901664230595567012976591942977096668966096047177975163087332653121992400291762662045124641462725282346551865702328465100986816237731293860800008814584313995155719992636006750410665394521997697484114448051926747668356565664727190404131411456923527305534036899079548299027952417813589192127140722455319797686065416700086594159178832029176270301502315359648166478429766453455776481101731560891619824613889493846768923086596814937326126818919438961369842673570683781427689510064027165337864018770265187893615362748085341851639699337865252688929228096566326577925690258554312013318682385197360330523143570470258301121278698644013664157615827222643183783076880848548440770291367119401149492721688634999187196999289246225952461132811772877251920697883612852032503436672714429807662285879262521968844952952269567011573524075848396360515154337757016674444220697385395600088023171965066988912615250426830684732649197186663225480523622409616364689161953485831675087984221134189167094850837320494894026912887038932362845714504503800351635327447897697122052448725590019972525676605360943851794004488633301137280221097379537754496539382351177961024751460736763193167892746870314112672512395050723566230470317149975609437729824004392893805788810822889664394901607535643402142878548300071517644416917619200368481215438040457887765006404963743144313678056803326207466166897587773885050124899073501037564440828963157999369076299101177940231152746191315940655802349427713649203719488444049613457459629633259876589385630404159752686517781683012365318564842569787943496156955527308410791596218654978882289937567316356609930496893504135930073388527338186866712942440548858777333239507902587278789404551978220205190727089166965425685211214708697717787445212622974501311285009430548699512257515373060285809249716888491110727298994489524479774330353248494824876330931385425353909508163324678051982466455337645924071500302556812072176082914268585718656995324277846577103064515826653562288920858221668116866759931055813634042951180213989365891106144166022649502029032693214811287858084426775340632797877321572645536901468289838480683555749694332299118354151586510501511448989958410059396965846580288780263575184106100827917603324950386078890038771124815846686887628587760663490781581198725294172871939308450198591595100707516649088716951528915749754155433016918498619597673033427715718117851328119702217550296237276097401049131569935793463476095295990015371913911567679568505391333259320594425497593865163008402556637733022833820149679498195149562065959737775725018901030808687511812491418463904235739112411015476341696058145273358985975787853391429964444612390172643825134497046305315465820816430263812702556605676561109276792853090027006768968743950092556238863363312503383024824664094537074194742612356698846828279763802055563343050981108434195627173119424084167280769141804392573608887971162807771301943845334892032461248813074774575542765161824456922199957433793054957767825803425911951631105874044143999680350583633334457258707969590691447417448558152241787725442308437356499374162192289895179385950631099627980464829885616296771311831280447394451020801100944160798944815485455745842828957220480766924866847512140582095786909608793863255145838253777614332578337389671339661581318852278375477937407901989661264892171344867519956153487021860717384050793636580139602353427616017226348422272055784416138133374649667719224039521627664222146488236888405020597287848170944847005341369972036336213646209718758781372089537024757039117828053458345385763424869380921284189154990110606259553966232472166194794230962706528766432909113522702989368332963835808876116122413842159525428975390678405367082195142316997451917907505954172621196127588395029297453058424550540637399967535311508725466437147651542333987617225571729410921794125029721390838953884086230991390394178173644452238799176293408783928354178082614127370157749227800241026422143880078039614464609140798514835247785603037003997781257384631853954315306429377204782940618868293006510693577304226642793448684471255798455583453778039589067539832054318309736371586511137553958445753140061930760345611124470435948986736545457517888336752955536064178461619493612706479744117299250224647451829374184470549837162954168347590456362702277253484632624970508337861811214722038198032841404719941907917786758900414748311082479154370359405295845870202552497900713770248948728649276070708173472281608947533501406475359655822073925635746578663412253942840433661505486066295243528228170438299536265650631803564182773503079954723491482165752854132950749174688523956584307878315299235397920307752113129510736621082894809513226898146840956047547800261890285539415314659013033268288438071070371654392480409330147459862033652531660396389867635746909897787837206140729529888681230628716803511677439176074942635560286978326074255053841953676298170106222955306181441654249689562182125340713122367612107573654076424022444978633046099838841944467169969292174064557530316119963185618809687422469896232166384842511836779299271956983343363125964771158996926597818613563093882723095284083497706462186285158790007302547329526173456498527833530521423281844914316264947567635051083931062149021403818085290821286968749852482035240791043264676716845125465610343355579969810629208707866607425254892145515043406652846202286435696574405412200651681783990898743183523662208901967291230268828605732853463018665593092228829685100976385592565414269243654792158104460382022845741490945485659531793112055610359036109916519308493468823737836026078280388138589596838982044778259989505410304559207596665036450610027696415385710552177580220806919888884792956302853705942027926387548154198628373855808045142938093144076704733152888610251957462673017630303683872315013610907057611892831187092823222890059589292714906994490371895116493471686020592655064803843005320890440159854862905012014436248200948516160160185357440259880443033263321409133391751923710561653299284225095025753284279784075594547248572576533657744726971289274403427991732303498426224222291962667373863815431675830438694433709355565621851222164349586749716693796787853289141699648845387413308867294022470644448844095241850318842512809975542529565368848909421088254470745486926683875780147614707746262752519356156621294801257640305132631635952864821574993757564564567244077650013141334646942413782849295168690203389735955374945444233158401761011069086313033958287445754572573468219236472699082317289073621405048545654817091014887726368642513731693719969824203274105542930911399849270966234723335102704806546313595933822684753522142559069829649417319219292483428001848007921859436699648697065034354871059480370077825177890291495969910484255076202164187835148005093419929472596788340592901471564874555559057216113995107590956257150233447703347663303037928467479977020120228326054818035625917178182764218415986031929176312735339125899697629316326352449540867225656461534023697480685249111042146444164163018515530195051840614732439307391620286848505963552458324193139897094453516650938924961508736458677824454865550441478638209525970616677737615745842521047492141813896083919545145897050813982802548225822280087025516379360500315012773366318646482265592426244421127214155098249879497707395507741051664990362054561434241716147708535994702334907101358248479085985225069739467702252536410952562904441173234497596603367594467719632956709447415415796331551450970106113505976316971798095669662750400914328070024889647722172880907194783828158707395992336522927260517119038613816221327739319858010914595285701955847649758381917558567250809346407953421652382581821739044743395569580237749800950587585521588266635228892826482983991459477949591458547759997171183025645105690427535490151914839421178523833970481623939591808599078372185514030192729926680041036791728462738911325322244371411606191802123077089161874810576062711585999162527106918464289274901895276451148020836296543750952230928625971606647429541431910659676640887805713705426691268417674098281410241974555503996156900698961207650248433328520862618102277546761296618361235027132391627809250544139148356610945588134583992169367857942116129269763276407996301630572428507621491729283803056791327186697417287185776305911903569999137630259657634636472677152951331653383117561436352944377031247145380312659451167791970022740100875432361840385563205724518257838592702552433652301894889551427501973125621207203984246767811344733769998917419410707780812123482397069263053971867522254812705409134888045859345965879028532704488555669295646825543106126981055005278673718689903383302960043041475892771974003080763021436620662640732932755197802123661865659321687030107535492278948405929238472255596505817830100791712044022305010564450138809698590914330262449620889982565594830105814838782028440751127014981655310144161676336393822282299991022762502609109920573950746586308447251306148719651667737418782039974284101961442568647775413048464716327167607762023446832632368998293804576277212888285238435604288860771422945725708506707966585451562269580376572682103823627953541518422322700095947972225912047051060568616913221424294295654895131314667001064035084820428412834138565804150221088703820535212721887201767516726001551109950326198723416648258015260693752002406769086636680566143289266053563984044914626953781153974610410437818857477085446287996273976148898340971905641779499427589502239802273837956646111933542631643749001483936093894775631263083234366062724427022005672594127693214207967134188888510044430972934100459680301896299677284087385255165937331259892141207724472701685851307696120249409766748577408467180339427020747950749477040103365681874174501841093541069585933660111514669655506238682672120273595770190765901849200782906885779017973534398158719091637927815838489111002942707344987900275685876684357783173007547174939650294677320855734458333728522383254508523746980180577354557110610750547172881942947933176591772326788942681671810634341356580338146374934675227387444871327647230767569777515323216115129495568731517980316695984242686328360650720618486892192730052036166468727722427581197055046897839137767277215606408799031180050057044502625379246483490688749979941365952220159031794633120157704928857891767770601834222027608440852371589346177902313967119215175688141835503860795063820178684667917378917340086435414051643282401451970028665842100203779481551429554020412739280160996081247504503114388685475789240661705425667870011705703944541885019275025527272689141396816607081167001960460889833643165949130970630762876938810844191931989484051735583579553188300554188575029035025020145169761206483083373534664650110757662242067079133860683187314092482216481475812122292392846197070186662990532260760098422635628690645610609824893259556317776688055616346881956750873394276980750857866022967676262262391779282472143178154516650239046443381485562354999262570502034862091860818689785191924110798386186301411336447466432694215798124520457965323100536742472915379314929003093103088526677209847942987567153239177854660835544964238783427664556018115668646087410860828482521048131485507858417120094626034703349827216285138967274345889316976008474521361097232908404575122111942625476805006951274818431905654646499149195672084722996128189431778369109908942010691823860946497224508921722775837754962697394020263928256207960664472246758020239404229396772022340044777964242290227536492132116178105259065547565580636483132960818493382739541513601647363403399922516976626592584350510207255729865846992986534577476128730897740403753026420942996353007260042051815993353152427304780729910995072768335170553054845195303996244325402181237658808499033001848144476598127078704859110661328198005873697795803790580428289658233833996626230714138813685141002141242257109815678257425323684932131392203140947616653796479774369094556572086445885423844581318304371338704881458114944263646258557016754437231002516409435645011237119683752747871741587085512363541265640957449434770712080566810118604436018270714047980035623450848505093705519392025249713047682228178708388699275075927823406273099100515381926693562212518466747092023461360149935339835091234563475760340180746528189266306294159530498278845623740244587241019700681605826223894190860849044253246240582431293389517513681960001457691206952667877964961635535181310576072351481018498715580197257189393839664941519689398677593302623503094348010205554287606698133086965314932626887480958832070831912905281749065052045940800848921051750073005529610642841411082008196771307630938795609913182100926564187275721071753326872710771958494318599663785380269207088128486411988483648540758931112195729243153603160400997200304066440001460189539000782591517443688193749094782609343669920003547208784591451593056280431288753639842558788158050992527804105197959746850409360008696999630620981288815752974845873084341446553721061791841376524707819594696422236963392784921152531433782270666618120114498578282597113823317471648320581294960434443823280764583436000898501304125862540030740965719269536491931144024626096243203325268119322074952965119676202237246723543063760098643437805784006708146998358492972345590495416627910555198481341674741854559468097429555619938530520297893053885404827124239704962567285678154623691381808384019083273764232458448932672033357554179279176839877059087271730119147729824142038063966962017467996397686928191841007272840742745487219822045779481296273037285223406881629700492939626384619047706763000143796189707956454222699550374120952922200045407876691112498850815396771009621171826190845302644130901054137348632170336313994710051835884317276185621559996212736835057597530129591286978699209733473592202651994993764626826493229581161327940680824682877397112853993073322853868457799865008586327607100210260709906137159969675577754472871781940877461600680661227817679545085990443436365915584649788444724772734091787273813564944815299580140170804261974379086996877250877973897788867578512048310106060933845022163318362355762487883091665718956684872806704144623608159434728263536714928736055562444018405592966182362011520071832634477566304445745173585631118852171130998037473759520508338837079657545600297706949695639922446049129116134274551409202088403577867777821954354488156521897290296914601585292770420460833870308904948026090273298873959221167585564336690138749545487311207944661046166816977265273375398255756470697260672560112341966788397449696597964169922904936709242072687198798276245142420482670648642641736513521728280108395122212157963447566899399438096115544430368246402679861085206980150840357840916925271258590263333302912140287227291658817390482389090673965299485387824130587739194158949760682828629842800555772148853406103425237967650537743863292690743112154581335160350275618393440864986100262590950043077467185916942326156775648849564225358639820956257373425163866231328817670154932299702831902702615682840851869908182314001054620850574348135826825321836622102588676176706812400507880944502163445267281007621280939454908863814318198297835536396422383677222956673265416234480898236401423983792028329991267532283013786758591757013285568035953732755808231224775750797165001578885288708771604781520989153798965786078565378636083973217288222098599054376204349191920551660102511744968905440626340226849072080469696985254663360933668524293181597638025326422958544427762318552210813057993244824219811223121487171975401141982774226582310837532246866830747027931636804706910789968919417165832624446477468514943282570403664521704599675558865453797895600163804263207919704450662050802148433053562050216295447288601044074885472899826113128353118558061230485862525850753474330065532255455456079751016530936913337003787938614765341456235878063422340802037174434278839462391810128108037197609154411340201434348732343343490281237132484254099877030879420982033594743479563258846525814082116386372269140783410649666626354294183509061578101010671106207802248021358859415785316627067435039719034664298513319227530990168569746256814367031122908287938460873945782826159731952205821524501135244821009210201234259144643245425134759079026478892931952310559839134603118028081925213169775388471846573573136663420449783684048638547834563765319686366950770869522316992967871514134173490990191503799610663806957378500144507975435128214154199193250076167907594742168076570048322304759434242069872899983896073617349887247692366322693281662719003960534913730530238831125408291168716645783445557825888426529533285965818741643149872776575277859095781523975141636923081831728290686424367742221907822596443314759754122860060523535304467455733193311634657328954611348174079827074936154018581660254999483197979701723313772245202464733068805258552607556056795713261781039359687146706633882255791189859470284180328639407579566194993501583524635684023960091511321786781099567842553258229244811438944322915028389515371276732443069111501006384125185383393266234818024126854834843299872997857872339126996591846262334677331605507104905401680272617704934447560706074216719186631745048668751488538156830589488104204613310056454979220727871942108446819618116586690549085216947114216593360457291211141183226127384697391798550144855125622424975490501629651109328862004795505597754559497894671071304055686937752373629537669736171993065811978353679938681382951147900773819023531225750360560738970098580165763639342807108654853939661153624880354783279839574205814822943505982418963527802075506602844180698758642694586570228457915692881385955675936473487679466832843300596875047609715825502781446518647566928084805721626731018269287160375604128575362976437031174060590484812651589562547812904097396889109410495487667714100420682368409923370564669150052725394741128663931802543267039654921478457443456309353280811037550100439398819988235582705618603508009048119573489949237849919606879948211793279546747485695098426732793754391809261189302120720836940460245418612247713205929027235251922892525201879191467792999698564739666818660082008378364844831169160336298970772834801831694993050069942974892569582277529095872952944745486959385116182547607946061661137622503624288465766408623393688630479350084293355746405364906300530320827541376199440059499522792349784730715771846261796287069363663151199074682967911425132999351920850805146280632789925749295820744671277028606478981964878964071077790474930022827067721671001246768427076842149814837085236889744467017211823285137109950577543612652333501542596553822739538267018345054490519297968647858484814190575014634701079169503444695189828703667584689899431805346528623257421739023036061131271019636516149653618768021512701091323429603168448833604512848312518230721207738193892155785679669640580639810944772066367997884049631883020065222137165048580554655464014135901092918600562346941286183078254899212923398701100460218587022303476112784449349909299243731696728331031580334578194009622289075845798573476179125765637242920249710780154041641699678866239387917114850341613051616255911218840904623168477438297671139545250144207958325815913049882883336013847455228735353550070407589261932236901632507667355438204503700152881868226850009036216214040605763857642177116088653599341820044909850084830965551389092992272286974429884148830032925031028236994217275035653675537717365390251182326313212861201483818989819648247908680429615244261107748295819872337756650076295682914916064059058408530673045400017294508705115432876870216811549418603641950967808442488345563166251068284728877747454652317936611785513644834519801677563502707793433969776833956701928770042749858026464644428235779126621071195436515772301028806874127042046507198135433362129238053176899216307748140853472316907002628755803823599941405253940169140107544349440093729551865389772452356497822974004037738567737171647027087114545383767488404026110267628494059309241777634025377231639591219526686467422634112435503822475560038318173945950595014549817185883062434741359015805280518666655574864827890036043124633788517372482921934164770775963712603130186311398181035686606337879923914447058993535309295546459417714627294248954812174768217776316091456306692378130696756419324605718349004689370527086515569024616655396617886995521857400153165105563762568957059388733959010274091229220275267593977999325357585949626944482394632445085564592848690119143081655389415572097737599803837585878532803831849820683345220774969034944654627238968020195816782574586286640806367083373096109554994965782331148726827520556151179782790573267857855876308200568804803136313116033302710114409008772848857598428953504808524462606157146903130243031259929980176180541945037773993355896484192568886465375239236552685708052407201103280097933186932763577169570753874008945581988051898435934290130846939847079103409049151922461710954583449226898046044948819980336012450447956465939482999970533662388638637795828896664486461799646078262479136610661361690496930242632826461772618289503925065227891848450011503140806988210531372576921189875267476015713119552038878514151335751665769032688043831927231250280302515075365364392631758770192918882836173826628254039422674886679014011286275598604946125708509583917959741853348305621729406052310467041060059956848934073725824920703914104717624821182872881924095336274521999175846521232870487761199092836419082185496616930862532876385967558149556571195708107170772900393587635625622180803620347361240979254399394790249979044997273230895106714802301168278017291907110729910489054592235681192915469880010419112900017909712384539001033577374092814441956209424933910781949723249419178499137607135985822511294459736224784557978489196140224028411551360740623679024213442193015856776463273603468134838846561988323751913391019994841516951893266844005160672713121796595017402660180484897802216574371656508596051257669819529690703961544229564438791807569889645209231230070247658466258841367746111657944742853717478040353532033483621993509103742226000229875875581091958341299480645939128239298898782733315825315812305314882234341488668966672305623179266079034636884541821020062879871319756121492677856379613955873937949240866676947618788137056063972927086880833945839650438378787017636563270202461512518494927390930799614290937548677012022014993009552867623622956068581480464323627256162828161673438908628898747836252873211163394842305718474563354159437127741012752523985351319285705441353364766732449623512496065409739085523247643203566031862631191060551365305812525833690368239936535061972545011100768841497285690797237550517949723815412519947514481061483080921253723806558285607013214003296220806415114829178801902095384931715239114131065965643259553402158774760383319477361256132076875124162883070879995138830485215027139119236981418214123510132551695504134426210894613492402888348515743981197770534569477382506820762679478968906203590962190271887424920050640659308281738988883321155606072268752648208492682364038420756526497732968661436410356785092899933365877063944601971933188448669445314561999155876141434911411949687396247989811057728169032842285942325311851246632167388554869794061316347323785331018262678345600438760584659277582600909258787502469347295956013526958158826194615508842736585730506617213672598288273223527890690990680488049555864346882375537312754631291450214799412650813825504369724419535311084069534329360643814301834974799391030224976369822279098346196752268937564130462345718158955136949529602652310819747452547321588700288265578189445192743345961636945259996872924432378527916886707625758008874646452103033307403017884642669357941457148268501472716409872214112696283936863874428898088822609528537305220255704288670351731196090685400893956794092643933527366458830668387984133247519614544050490595262437786383658569936867691654549332429936542646997834298831739184938131954206066282108240872687152185576136043555219572656760025030698168030994294156624299265042631905395082617044774469993498990151711126739720577951957661899581063102632423253393881156354277284367705643378681345502063125030642002125504027438538893067315163624217593964697592354842956695461146098329181649205367579371415011275765379035373070134188136362543593336268510750601741508988396097156393471519342214697137545651434885136301484142263070654359681025160056044500183672090135788481811156482846156014092142275898471814037988458183934150116639306073570677347903076121390240377829163844193193037754345984285574675194895855362875530259080102280499104199570864315160175601484985692133797753391324595176888585919983980881084916316419105843622282346978369163099869412614419154421554022100676301041968309983089183953901029013147075173354522063255770841432375599463814185988908570287854547635296688129004641799586263607753202399517162472807881133418956918625630416884241164184686243244732239050111771641530254778788159531324825500734433315923588497979424072064372829600028208678525625940146586172411053467582383152095844512179182067124748419355835586292016912360133479426188831586082280384297549790493244170157360415912331915559357491158660310110286264226020435183039061277419824502107063057454027430172236733088129812478400635403148018487586842625979724415990395512957572404138398851141126495251362318248878736697179136676881397302364599716313835681031475250269381901292541217717905854145132799052066637878478473654683220880135466616027113267524727152420271232504829113132253103697812041836696072910250098083064670252653921472625454209183879884677450056258250279981457020888559318117080742392756458295908829765355377959176854448499297714817003711809020483467387284770847971660709872361927347993824899286406448140997170873292585084898803351508797939484162456006956567020081385973867240751422647632899864077688306783877113321908125545768566053014774905920819361927020223361666859418417022047083802954831385265816281662536307729825763128402986001043455525249492486001004775846833776208818691604618311040785590631303527929289588275934923838364620634970905614190804421388714775701442388761263257919898028241826970294002715950336795154251004378160994791913997579460762733696348070136642636674270641854321582078411393974391291417405058904280347804869424898604140189998865173345858596262101149120800128985305142661023760802860399491796594268434608742238588576182487451950497590735963375862260456564459077609611913550224351222956354090466523560804576523868768834085197698732782824025243955122207768730922864484772041156041855375803115470883393450176926609803969920932358637506510422574979024222343337293799201805135152061102224649560807591728503948050795484158947438203594194742693441013181963714341420742184089589627481017584193296316340436331783829492487895018328307485300987866330265471672592687568324079747269811440253751337904587379040885989278098549383554842344305069039478421093710852169407350486950590993152282917974120535550795801612712589523664017569530589959673033928312483455076796097287156226101312343935319927386225449386701965538330174917457076087775720358939116385083338033330293351226490992403115368600310896842073833426791350096439476510803923446139030036930093419176535575258464443275595094802391391681453246643310087602576176204846911245417210720243583571668265224564949735125460185538672402598045694685902347199884089986156835910809386454070013719926768000105268442959702322516699862093330471740673150667138110211590742218068855291990797230338043456119232024766231051260152216555144726346790829905064478731425914758545041688055438274046338615748700846607326813536353545111890919487042288104972001411311955033430869275270093333821362734839505130909255631360100325203180418649286713251470961772453870771710439037193311366920665394020188009015451440600468977717285932491404443932660967065815823727776329762459400502829921105228201681022296266865425286161460210478531427898733355004824820568451129577644618808067844457072359134026131860203736653333840960187518873045395204907556697171213887816964489354388326963583381346933548524278455680240754566195618338928813539832389098046052129081729850904623901499680285258362784097502310009775467363861018293860896896658806643860673814190915673088484607128191253009711998842451070332094916529238484443796250058134853723958651149591138184651849588647708893642995803829161564505320179349640473788619272952489161461399207222803105113752497973724147481246171030233117783022348303318055018735135694542866253003110608778678567968866146288111123467365006503891548004111400049454191518829270329292339882248564594821454129109300974099990866386589766103327197399146629215395320825522601154365315087745628471758805122054855672801628424912780822652953376706082947898959148156698452603274322965364539865912703071761813941093154403713310942116041875786022587507173979907789616165299605975793281533111849961690890740587612137082996164363347784487434187627217885954418534805632422886086218631200639442453579892666701060484879946766522885296798300619044177384186153915279885795208137933424365611318801108957139689870757625149653868708355706402442693797052734992935667300654110015730598499093679965189335917971695438064677260837440503924503204113922833778650040772232518455919124464752623033076633510763378713887366251292693249114060981896717300698905986365154154810162619145163726012097898770906337510759110341099796174914677248543155619820572555646846215149656401732592451043426401967357261569337565334563349559984124055839443486352778197161140170509678594346453192254673703027171980834624245798312334260130542173146013495640539786422229235320458083655811462025639777002302986810646605034792350336322137569196501156883842848164025909208120324953842985478339446091163012367128358090844375104982312159329343119695291159006546452516343671236364929591299426227680963208101971503915368257829170503044107493987069786843530552157814979072651846461116639995160187297822615303830752579362839121705613787920786838958408618042961453165241615060142584316113978712912019111224887143665302861750111188981872850689665125534597158353484136655055080017138050783676314463787857228482591005889107754959342022386621793584804176376658296415225586684805184345045541323216538163132154329692445836899444665080555226678141873006604463010298491588101206838960496440648230940767003108354945723229980541337858594064790237446644478332984369315498997847837229876556087056078879465900466893473237338160566577879539184176125841087267197618714371429282609551320312644588432700032356585550732975532358551128746500694697656960021705532182870942096754634938479354000541155284632476454163805115604144904345342397843308746776459627466998473012115136030443643645674309563713815912315998378167780930583704367264351923371676567791359541059691543525213579786029750894980664175342595479543569077383653442333801810856775757562464063967894944677795488432457515882291038940475682395421088712594714063483535439108589928334199072054343284244204374678837591099544572732359528143134131488893843467770329873659426729992116004274754555702427417413073944148645874664678824933186055755266779204639718193737378702033833102867141113477119599238521153284864055236480951118303715342103073620514804541453069293718001350611662939948000236686219003839885409689667947083477199925903328522970864391413036999764731843072442347328920863285231672680266217612841538806473952717273704242946860008460523342543398818635637795203959743240523108215026315769589041525901685201363971810472864292819705451650419256985329722846563047624182742473695115432723835248711705843193076622155225019409815799708544765495410759752537725045471397913504242743460009823808150725664096859433995906961228814257638029921525220626092823575925391730294975882079792276173320547540847461666354779772746482273030415187882255418764955120650644733374965616299690860136627584351653846412377144633275821254984943501738267534337496065176687109668716898740042860615068033843988230648216761127398737718199644103544302242733635210685589488588468378109460611262192667319315862147612827454049106853188581137271164140017728574520310738686871020170131410120040018517482834650827348093757450109529354303678393210042506638302384476030386004270782470177797924876130232257950070027893581032610500524005827937927557121665998838684666140411126200013918216088476877794387214192154972170143238005966957096565152133760784675425891891301226999157004741164589711529273440825212442975184470063439234638840047412777936393831289321543968148677077278616171572067569352099791152727152356057926079674541589822602710542145950996952232249521395805367653236660647334415282450108596181408023056280557821228901006529887672158494334592366637009191261399840353038276379594890993324649144153631420050438357679295839294268705856775813392344294074216968784017563879997067617028150580445367374446411608444244834004029615370530210677962921313192039392162128786679640842741019652188739246871294884692268482500959513885275083093676444632755309643647523904897005518716873520074162060565194406283630228869431928558164338104564903189492846613405071512609641581730899809793217256139899284753843665436035629563275076358071595447591998092013224389415358334342064816914025099484100208946699991523939259136414502326049315281062604036997858325393201429885616399321145264643914470135853290942551879170034574360771741488267214864063228630644632743070721730537029714069070181541689663143766129182171233303091646301439612479647708349795943928064638869108883658416194066832862197427610596087503512132467727408194702294992451616368004178725893160461096647854173618230605592718598519069365586912966677477468411022153084436922325510311237632586993980046382375348144168713800186297568855736120907612012283399414956719904011008346540416586014567827770007516221928885930714555557602495070459668165448341349026481788617486848763198294417979242800013157431324912661988777642112367944278895517703388650999872628870853846815749356194181256763481223598969046337109365767544682508087299092141834859011800384466347204832489213461328853470828490308133887007448153920950971940219777302740058936702474207194307478682507485994825421520593710085654470652811484150789423920429314163111169955428928130946278395645678100320602416616568180286042916981155620970039272536551515402894431304380327306402472278095103848009278933835596644603079604813019732068637617717668588068661263278619030951332318556433773030545782836229763518396943327249118877468456188241532865907358334113725114197087035415666972316224664877530119079924863088733015873805114179267140350387008370611048118989061807442564954483273001424732983312846177144887965171851087332286983221626641696183487975044131912413425325833940431325837442715489884093366048634884570530269207989904863474139071818387773115338746346624938221373871860943826077503189368440563325196163800097051414681104425711898316668000213204046414424202861588162844990102112564756693907816118756122023027747379164124164033298073617208043949261521936017359029492622679114832619173926050141645120148927586554553582263343738352231172303912111563365097497815485131544121408586730706098325689208114908697034196061802986795161100439807240743481421560043654361336847021661180356806176270363254358027589298125163868162485592243867031322307101184095973498301176491766671415904325530197399787500755510984636044428541149485088917189091079258424181146940312859506950127578262030189065397777172494523238493322251636543178945634723515301308532536842577256367085184252183219092537472774953674653551995564778800979133864156609903818111232990605018187950078955871916776311557212075438694544812847320871318773078915047753745426670181261541054037610519764125540396822450745413370667194517858358747558019420632092340592630715006768611030880115521954097916641553765139658098605206266169811403670943088683420585000076756998153679933137227289052374127334742166630485722032678364144797251505132867387099601530571470212442788792291230289565972958561568585776645998611847246326591510455965519955023990329824153293153298881882097234518182702203185770721962771774379048912676352791549888339123664871803858826450355079919135260481122345650660464495794527196467145866993979206694890718333249185999620751196907780769328759590057261845726340833446375382617651866937528525188572150328891621042213806213151037949488444496648963727601377124123861340683443876344309222260668601476344543457145367663079862246316409480225588013994342309479303025221206891506129703283580506808727428267410692622401991134878591179077518553776371408434266633433198876269862572930511378106966268469961271799104447092711010732997281637149868038888365399133483954080360306996763799774479163847163999602584906898206850352794772357576777160212329599117935130270392574294039122734279973415517600225177830247436622917440487778636806540485079861253266004540598744527316511024544865800789807039997457655944559406086550818720466787489989558336445829190693038289116900487151399663041562649026211272471350401562362748254011512692815090965736652507379610955420107882760984785908370310539032322407936825225972451453939973191567080492450153076511050786659906941317537001713330501794742604835942222434389058016468789247023086747878519089605895410332794738994745299847365209776002532761746832504587979580115776529318876575718664979407833103442040002775405427481639774747645978035474145365720655772700313711448694199233179265689703082984785559569505078765819432542198608215549012784884047084358443851931566469188216875295115378314336840701870920998637902824839930110453227980685761929768519902715216009522125856579193843398299364511746157413836325943923887831855824031513629368709696478177350777283184122011021121720776790747082917161021944246553786239062686476360859744056878560878431032305901984186538736056485210707508497923650104722632799812602118283942918764776734914522680476681333358537719388291851873214164789631606231165654400282177354614812140987798043128891778441496867156348853128416516341476628391111389141833792818105327255686396451400490091845685010645949873879327861956637312469667260377711493888417823571346966272578075984200008501468800877798278192491829107055307191894054586462425003511628040969714082786179994871861070895370285150179045782087752109938261724963556971585523117757308781441762586982754878182509505585689857861581323728413314812976529686592024416085932754361030159465667583900261170491390237421217299326272826175641533522654308791887524537077947306621722438770114651104568348087700175847018140867438243187269292880929325365072957857544834037085915097008849017942559874277362612538819841555716203788648456425189084230665103447572986799307628488514849400255562827501928873401904303260754828313515781558785915605815449647624141851471864582380244179493903272149267515089300791580165718653827914751411155484039945782610712085205598331399590484808625659111246314851153985197255854122798948484110855261634946252541849331022278827286634181838650440054588610589414521037796026710871922931914862627692441376069210750157991101074866272084441179766460859792273768680556544653690885631206435278976468756679475491944000500417711794298000644342209664808314441127601543408117676034715857003513955244281418017536808939590270239562557732469615554902821774583572719353494343255430902138865543809911871258762802282673289614326397360116349034081751164893102377486637937831381471394050999799981947463457513816000428767957986688236411565632305362637020306726883488065809692039022041070168011733293244291149590548471966711891160849327417478075901759561114018558681219058885739291664298328312707900744301765786323392088497912493891168478898347327737856618833274101742366625345081276011240683222900436091313178213015892256884620794621335526981218442069059045779131056061316853914025662355230386800880604431022194187003933909075516347261991622436177397308437275456549764215867693088333539236750887374029199642614661720167494226379105011845198394949717421824846765185991239240808442408797973754723217167200168034424253138945048145786607906708730059189957929208778845031429142849665365019849296588095307755882260039796583939123591279764687564573108665570668878483276795913014562500167163083235372975710350532760397515195427661244756458481577841982891032908839028005462092960146572850072985492501123181980512598846012440692528797648187248487285363355385896966635700054261663278008664350562807157560575583123131767364005402359434272160352287450815360737716521845022989452747196517322839885325074874529333649984939343837273846553024750478276317543544473314120204501517943183454086653334736279578989719735845448185832921374032834160315364773373270762283817765558143079503574818439904393372832270730048863920895224205087310672689835565547860580086123549886105500574799132355713537137562115850911588760073638546175997957560428511555466654319151253858520059558978153089176685462021336353122817994031838703517372666158842567980428455620231660233796226616777050455706742843231563244818568441472186758719566189909091573915482868913510190416028721581427246752219793514345682124501110610491743210367120089998329859927470920145100771764366633490807658859594046147891925406914736035714164991813570600626768230220101205947774879436021378587369706665617358151743434835104562718712816291402095611433691892757284482981464098889647003050627721593551381612364869730665166637812987582791427302602536341766183646544981691002997844163598919279956617634343322842829547706289580025043840261150099366922819124707809546216211041430176121945310915153434783941551755958523251076241711619712517014955187026595163409689288035736910586641579766358176621643724310041370989024657807857745897921520380363815547616278734488035993776198126224027804825401533938055287488329345655092525910658173390355762396628292561429539096643705833811157926158336705007482755795033534216705374459653228159149001686435459623444970372090509325662364560599775337894683260954846098338936358528374359816541015280519137838601737931195921052798280506116588673922341831271603623428154983129736333050396754039881719130865029081680701490122050719604303173145044098216920739673531546003352311172555324562979096148817739638627084642379665656035511487102484737672519780774085987457525225715377087600125096184972534702206634022659446477861890176235639876901768061873129485096388816385712501784657214934163463933148914979771225486437340814814159938849459299658044013928118066506503774460555528783810690549571610867811054067235121390315488410935832078629128023145224175590384610127465842283244836038770743206042676117700376755205315133558832384352584718785705127203796197534719162810059160133077184312512030233917530737584104353440905017210625731715589846413879720193298272037194479913385895148737887523742783499698862763713861143228586897481189243328171401563080273949776177995411722138122550992312423162537880203661650514480816967846760218932055850632589680754759429886674547295801001520819243966159312436032622014279738793344663469969130903665972217273402314873496235073375931203861487415921748221749796956242177742383865013274133146488328577393672360732542692883332085736113210726316067433515274554750774625238953934827233026006495792944553198162151923760315673067232996677333983354229580364325449617638110829035637732486360224016853417393671047301455636034799586617566417925632543722866784409375003915501526418243844362187376020026617584322230427116151895515847847030521324521320940984471134953414171847073018027427259295531994490236912157841978720013524302488536603168967915221478624170630987057049988536956392459727198978263131045985786559670189511609584294510499944099280194962571923213060131967202875763793079895231138484603352638411443748299607134272904987955592824143640871737085444230458959733486130308140141496917990419885460698965647163253921960810548671218893152163406283548524201148627967593834136865173022195102871872311078048672760844845767987357811479903191226167736556697881827814019577342578239382953539985217163886968290012371458676354098582652701105554612612560946783983940734958710679782545868805940665376185061712792022131652707314591637409633537268040336431111595508391298126742359182055908111012656585874885552308455881241599095122209186121756797246351977836158428320985483848019300077158692090100183861443494097441894109689458504383291738141507880849396576083357609546038455003868931085398205616835530752048566385019829407696581559585099508150618958992287164594473102096569661047547154805564231271405896579294569897146736114431979642150343795384270674676848308821048380296070561114044985296377230700150292516433894272299534812425032275984960865763599092301881751950058419405532640449538857849366671537930714814388389470354041738196001188414373140244887289590663463837768225049969335774414871322789029428960238596712674196579258645719768736415955888975340925335422226596284664208009091436825075082036158821569304490889096910022088157010323659079145370121232315888800292887215450004625782810709744573121649889556691289167792198667654277128856076294969945820449242464839636688857878844631628243311516838603246380673392364370249882048515349814166908974277280247071629220769389553503200903025774379607481851136987847405957424918476353733162584975309024923721216552546120797818403717879829062542233881067484789927785737429920300065898737710243264071677128629112929109970475402920066536949727893686205175571003715476673289891522555515190197463063039168246685663229539264571048279627914507881615894018263854851481038987746226405687932774557634121990472333350306786799964237600293253826566416777716710068928781535195106316355466641029060931663650490176300168639645121355028144880091768066615221435794465121437264824777541782629916620958009871104016121729129922694254473174846019347144359826073712770707226978745002764087274913238594797540153533798387296030782286823649703494527742744862466201263343963397477836519883134271211123082948595151401173401045391913283051538352325711502094609861893396746063273259394223494326835626578848713965498048966506245212282691442365069054054972900123120716126775419763249195638252899216386326074200999410405419998749916852933688743489223010307267799705597492921645703986189450937911042893804317828307086379011562273693578643989093424054193043735159033849440312822368792459559638484809426466734215111727979620152711848106124449610073999677214672645596293935530457173512955653557350926666443334623852846808553436225438906863781971927109059284740260219696057342550817178225440131223859404517653779011256895398800009212196738585989962888741634671685254886135297052179316531236361097286168161581201941654932189196348161767319673059322195428514536318284024925352194112447243007888867256148251574252420086168561550848495208882025612630913516211951922020470421429160812949705066809501850385364291889778524378358096231522737314415785093147172448431105140172550312712161473235456918316337160472301862441633401068117599741644777303563218108895578403333613577965957554214093061208674181956550479095122335847536485869634433070843841580060955037869373740053716964779991765546114274725813239382016736765849564153937247346831492205758246011418343372599613846299643931723154986073423550914310142437675810085603741919753481074923803824402277928082873229008720304509492064735820432110952528925069497446730061158437007685385427785518126008920296864228300412661100176665224467941384887739971601433257252349218961710266104310132596685855600556420096395151664943153249385411301777152854044154902962755689456782917842630487411006507498460174399799914938365721871509731082139105812350278943588059014094470050602913355606350594876696946179967566127831666747212237729480873274926248766099045364447777772698242488689724795454772406992962175428092575157626200096206266319117601869128295010267212164295239049168257480298792104542846629951481651216641256839445973330313283835184120639721637335348070465770306746944214593969917391067811550852657725678299015261110323263725718570073342073805871998533395212803456307166756331141492583000159520769407116756740541014464457616827739677463503591387200290350530115863329971356429695601218122600350976976513829303503961096070829154247111412810288833785917354666464166982155471630617735111248870282594143413142747223606877999699892425842888162586681137015201298412037850271402459477435820239070263802273285668218554687033401660586292074399994919023814313441154125060053219554642409530505743316953619141713401327732038949513889161010425709616463160843591104356706580641772163705951767495127605017748797074963238042026913483323100007427094052429781581568467809161848276100865296078231237099878199082818698373352249467108371043131755818807598924910479062888552871758139860885976258935653117362272452180296620818335167948911558255029045683151670696338162356570920970210699923050903942303730487985590233606189084527070073791063572314661872135143338939322687063623918966382661606524922597973768058169311648581025824143770900175042926268870518274984241842477750413172468325498822850190718573414359655189834202240905673267938520775871985719195685642958098208258153984867472251747640423243881140062986928951189016808337659329133208851621654411131532350845185351703324899496657027136029260046717505608011275375617334234321166434414011657689951624677324172873908784094353265850035421071721816353799169078367948751245881989559908660015326949693600049307398030869562094401601920185762560613093873190465550068356302441886888242230709180160362117153113550960616571747562763218453311961038522504964155151737882865212685379788876319258008469950413141091122263549920063662178856849612699717326320131131830856346077260724472957320095003780397731636381842543666395042224929538274013488323556099869690699257166178941827419231244294290877112203253255793764913951607371262225773226815673620040711039795851713193361826006909100572260096413752072739973964923286842023554093881470629628604321477910635065169031279645806554985316257695258277138311371021692418829055253212985944381506121459673587647401376947551976217806545249872092624349140625044722403452917396176262201408293499371897963693702435885598816192048957244429754976557970314899060110661200689447457266799827316691225650227539672959353397696437541547258517352119779143933641327916596119692466734475835252263854903072415407832572236249632013313785480642877631719567911054340909302937590351811174384359378614574906527496426747102237972071314761500400827833227874088931296249374899990399975982800157372108183225614311354326063878056540037782464605141722402334198088473273810151335156208673177946262728431264240919653925642579347801308836524491190363790549142248077134566100708718942038548721476561416773219746759886706265546043230623345477049615645534672137271327615964760337548250726833043976210962552227300891535812789524574725486716586184758170315593091141153998914486228274240095764047549639539069898714929697552488741443379164684620013051919780852961735707905867462675541419344454863235418908083310200100637365859574220612677189973884109643241854457028622732914327105434664440614052369618407003499264914559242921781580120677247727851237331954825932341921873181584273140344258847036699589646224924343052451512244978884914581533711414468829749813111685596606029881571231385407446865518024785199388013129424324846465517000167432888516080137309761239412501831835329053210809784267674795025883427898446167138699120788773589042783749454068123861265404478872454723919281718233990284885078880700376351320496062371052664720624089581715159026471965168803032474709812740556898092762883196289884386297467438423310285373601911481220698401407432812885542584241996647707454216524279767620749354865612418348306001642033919663111153820935692063920693265346159895660974973056396384955182805288493950063492951619198734309691032227661239350233024147161914229065963584834506315343687550871472623066022043711969282914905103754872174434332907382636912176452077973028379652979134603940932103563759810219054225686077119589990697899099387345096893415229727741996135080410430363355696356757131919459204530389294566967807886884679240128475968570289897404808889518774562268343418235818592849244311864918924575791315397162844648266655405714233816228735761185521022735034029912449082586687695008258829863392149320605689107072940800729189036346725177999165738959796923973825276101704063339909886138903219109537783744982691622156894235823394548257459901074577931167829569712967337325983359632177590226856783130268436419889357914677006023514859336298664887268416021920365201456813649907309488044180566375330875761936460426594006432759144946427993403994229695410615974581393024940967685224519215760897801079186263880167523795037605765917673133596260485524613163866987404142448562911444398613843564873031237356553571563868830735139359346891936593569305565737889974525853954272158930072588452516413437843256059782486921712582908890155167104078907354109320300548173534566312107800985576184927553424874208784190401679136710863319619188612171126150957548705250160464515657527342522750785740926521050748184836841247844193761510307349383964187234151774643815898391762805902255713293720599979696047797360140426800997619041089885680018344255827602441123170739606434122291213201204429757355383275550954888051549739158579634170983960606524365851541240433143224796765389449476075923940698565506407316950574940122082592872769402763045899125525634464850036014732784221204691723557757146751122847916338458248573126714614191505725778880859493114034498691506089658733758615309493019169858175594164549699134276882767913606648288606774493573280035790578091600279171343341452724532158070042854768445236799379033711868566795056943099073606866275829452712786408808689212115699990946386516464920091310584617753983738341193318414797016270186213674862866169551239742364362699394290149559150611457001212456919995573484991468682280856736969882161869572480366343040599370699725740893510005408754186720938898491027177567249165308435016467697799202688834318106715451685888081084589985614580352386858347472226855263757033276916836102404600169511273615974028520896077481291313267512897637140134081483416931946678579164762039600884002586505874953687345922550245757844959461932958541028497339342144053001910712508445157470528820622585258850850384238070973356257088264449682566750908698563924867354377983540782284095755558055595959522594583085701935824482407809120325840135877947198378852927505973435228044310682170729253583750810273516740227790551952558839405258526609090816730170316033245052713233330843266881645283140366885911603257602345932496884286451379519596335863083513230326817013662465147820406767119434951938123756594639326380828122025159725298775934950466705583345182809625922936121934644144307120832367623938205091433461968988547495210882402692997561017263227401526946896465090930280729333679648636712318852471232825571896825393011174482376990139079070510492148046626530123864895946796084690310344798375842433636618808846192042685969854407717707225932325581446388471459585434337089796739738230446000672012136492756476459454361429070056507572399433152583732553868144555603454365596662004946512159751993962433487772878732267310643816540092523065170507458795383622630435459143014306216910868479302254069250648885859792300019808434667963825456872295287225397641386121136919239967958674154923353547832250289853519136383932459287290163332679858635576725853690018733473947087571268260999784818598526569026372279510238188850796283367609948442905033351733625168455844067874582967089543410005896655671298230796550477535486286851784538017634998240581921722035320191387983780174588852569224909488250257612787232592976132790770418895003018755584171501264549070123511978611210926078991831425341452977052084004316620877118511937768784862433589137001617189564884824435267025696104997259318319860164659765298432052964192534115348749505309950631326923146854588663724795577947104122651060381859947685738278360815700360088522827309888525331367148399414968698594694286261365060938658169076263951215170184722174913614583375134370855010428034712499591399415703155754779712525543294959535035747116602534654022528346542284289470264744668049323463408510338218552199224946742157427329830831740340837853297944192892896318035300944684674876278701153002909945044699616801122505985246219101705815574937662984213414223386626914367060987971878027969690946333783220261937159516579443922075765628084195670500418654219582442214757485949707310020846520430445684256998512951302077342690931608779775177327181338652495508555258946740381819139136412222895658858937549751487343266811882440285890005046352103266749901464229130081749360267718343447024355852888417006025065534348075736549836321655561720335012652097039986493354020871905375895272236900609226464913411106310235428499384196666170845843369986584143042025338721822715493720818846915836616533539210680514244307470196789122711484662260091987576104955120609267443329900101593027444325140877927679773581678304711014823944420544276165253435349962093711804238200891905074324030142545472565454285554800010588246083451954013420200767312047843650258258248232730315946612762417034310774532407949495507415894553977326838606209239699974494933660147987430832448230401876522468241960920653366212459693396421160079534223164954561042106385664687675109858414997654627698804396486550178638605865026057594667636241064016330363634257762538560311565009446048431723042630061639134035049192325496313381631011543412089457377729847539482773245380283539929857476890577282175269047126494720153264483421765427378942547449163346072379424106289667916012466596405273761553561638464955767202641666666369146867513867334617183836252070227634861676766044714019529747184425420249739030920749955803868022277409743776613071316890768713262718978067092391221981345211694412185129239372010238802847600248523631488744522726667129701134941647873081644788325888716067769033779839586698159332307839328629260759574380063137880488185323327444299454115539292558508025406902595188711366916802045777707979745040673486681307721051239639706718130562718046537111958833414006584448449008295748664265632615779648566513147801623490749688574212658481723669598823694859967221072766541605844259863557871650489268996574239562632801718682867083382903115868680943056537312770167669970810242979673104074981688788214979490286136406766424501458464802121353521506139877296049118639908254642123770684691261045836997917778548910341258250173628399627468954428647960213912376812629177268539837659297404161363676570329363101150483786761355462944413605898442444812237639846456379383713767224948181635423084596233643486934710694533806172176612053039144052909572935573655136924283866659712755251151440552964943320826269720056639922293113948277280544009914478759555146854246933633807873240870808880734120085680956821168836701087301156783038569827789270708607798005354781411566958029304050461401319480423605744163349129100798458711788936568546969051184531792741794536498464528095501665927126844877794842314440901607335848817127035850969151454120099544789035338088913306682061695917182558915706755152071558949784279027766613517703966953661207195142451800136877024924543897870546235424718021575635073848960539091295018829208202657761723832946684069475413970106624074656525922040921324444045007169613123896565640696833684277314560511986188487511480733613498208530747348336140856536553146371249685889817161420515915470666175387788689997392616718576997041484735389549674238703597131511286549233647544291598592850470930687234422132130792996766277720471160854544284870244084014874953519444610825545816499393956430106860130640361898667943093499026605659737101287907280517965562264897549748635207637670635622225429647836939442808272967747505046495887937150758644491473125872749856653071292706579580949778859703174514659669111618615963025288535020082663320992214010686419693871628521820600814756463925290996636410833224467596327835251815677462366269152606952659444552452833817315415035062677995332637475889918989319454713322458464334292079412111326207592165850682990649446003153431065224545363790853409523615659727421993155855573657729705401028550818032410948719625583504806414243754887947022346117324019791704543571570370257816811322339232682541266019699364140402567417154157775494251824045785976056157373733932536217565782065627230730092506026872372027523266435940726791964353010839735884957140061962122123881080395154879844753601237056416098493819632789512780704149233947722864875769607848239335919229532161391847572431120637896608250988587076016200496252340327131664396684147220242763960678354364388446244092295460733272489437282698744580926684374219072782503597515058523357127685889908186763249851145604420842733966222931827866270671330571305330105972255226300488110409760897166648091361696695075319382007990280389938114954404872276061784843686072936410516990472961794682613327861843545052440721187069597868550087777877048050724791573277802923579740355869528767832639416973193237040160177409722882246357982515229858294221177428315882958356902628939188759539513914228105904622113525863873965524112875774521934806599514048014246374223060009198515525139313829557862427080189020980954262821161415866382741953657962874369943068987571131222881975913830045553037093342127208891981383975158322515038820154485648048801505571342585618657437676287137997853034688250706726932433861098578509719487619376176454093467569942945087001298380121875446079291909088423409737509888698058112964213414919558371157288717387615237499089120365819706504792060295603269082114907980161980748524816114746761404586788311676231688277757777775493767915475199361312319275046309620494149102092069921644552644169719241542294276762425153657192380795563434500924838466014208633340209902781407851757508917667659269469717561563823863539683469010848054380081470222682792406917819986335451568946683313549932142245544410557090723164646820731878296171545385598273225336308206585619723635598223530892342842066478335944155552695872694100499159443210691239073059759894625834771713602690282136197181005975773186244912564737188247698505529895573740506073842028077943147475985234891435469779265948672540791902247590238629070082073505225557986445874814056995733420412508283287220886201898854900668019791754957615167577788630253782006088215060921187673845233293759806407980395560871730780306127541867564961035478265510760903105317932975502290492034128244380169248555366481348746804207229094166535531210527191485229770342652369986637687505650464619943558427970686019817812984418835870622681980970392930262495107634338998101786896976403254317670387870797928101929716934818396095406919646757186127099900002598695047227565200623631783947907946850008738016758667600046186574456386951831532600405552448500070455389624823274920150761981625685867395352831627160341126522110012811045678618875139369395881442169136991793966164382703208033500017052883890698281598219107558146590385687033619789066945529177069339027794265905802725458241022317404566495718678767430265221785786082206989196333001106746143232478895689277138509883545029580801464940851935308947403096416244855758299441448273603551266953246575029069745856234039364540769019783336111101552021800561436861493763612413954890596534818418151799566951476819485901960405248872249034142573422919433577109523870412135599384033446250394415480780044942014526661242420461503508969953114487133656720236028000084507250238306828389510757252367942058413901410986125494634757726807765593247729099029620423396372193394924457597648162231512416320913345683828700017546041578658042820647900524931706846318954223663934388985770465267052174618960412251969008019125678592483267203970716629981047519313541894696983423897006058534088278387356967584240374894857904952589440945538660941246836579834400073897239032566596522925347857676238150954627997981481785454368305505640672443774457032084449561798099194139384303235341979376066875142509702965434701061734462275475819691888765656208277608409487724945700616633631421700746676903215789716347432122663652660039791474937226538298178033069694629763821582301954019927057890826596758911543647071976489861427096079799315515128084771187383064309115462045792739149009309861162417620259153888081285526829524670368189000565947830845779298775133975556586233281291723758015464363727926897646058473107516593470137727993637678468781446357191047064061422251098728237812308497593922203378550478943985937477576820673051844455523689558703479103931279565315623978381608535599537033159416466465260933674032574872200357763286164224798550103844873472244537341532238410825078140009627062021203441142155387573342744675685188296476058084636459124724576122994876637760284070680776262989748137563608642627354533588431502574670791399239946550508616614688886505705233244857573946157104125884739827364285589127689507627636701375962013627117297960666401189520881185118701251473954889694819374406617039705540427686257371674378322724262669062775294427113512555627631379108095561096461159353786468849234349424576295004809154373413379758012551491375145544790822425495231390532650202720856272355740796582963336513978075649214208464295116860215371771774049947029612054481680645023277756900799132190163649660044071994896532937135127199656681703360375439865743330470133962240469283162752645179446657425209988404665844654548577694502155565458216833245962351127911373464151698158015342204997937360301316935067367922778762882029178684211773028502328387588947380992483109778682196047569764839698565937968031524562682243632336136422168324995138960596213058659846816774528706056143314759914693822430553703610191528687265673104681977260303023695942673082024617207139429951664406956968804849422205090934416699716866160567712534658459717888190245396287362410752919520851458898050242491501952355610196064643723022111415432061915724924265506523417999005480917924891474952227586021067955416622600056943433486446188581618505119055643710966062266970859360227503325972275859815866201942685188750671406385633205128021762269121454016957752480754673356049792535702374147339867094647373212702441912744172064403606502492068850841423876229433284069969172460037722547567301308549659411712491118833272071612491889720585431617014090617281759215245807138029839599457581495444816652231273707049677825258336491594269019839226444724023459232002199943629516112230810304025400686527550103949228332919702969959980110747377869048393576092139627748122014533928454907228286553529612736692711188485898050906068592555719871718647688002272830478130280908690575331588220826279295372695793643806628293554755507370325832444928914660980892047244246987537778746418770856939809356661253160713064449556687299569019758527573631190725382848194529549953904958857855310089654030223005251229367162858454692272194799385280179957135846521091090840412170891556384410020736103598363868528206554432191466687224883523888266957175786075680437423692495859176135875903493176353900629177497734811513152098559195905267756203432189354617383125083947802034571037589380658438466444812765003113568734784412670445740967508257643358576673171982920727332283607534836160053924728056367347802528632337360543127300530300928697836884603867605235461899839035159718507589740338055604995069223820088428460782170364957220762722159168301383324820344867729047555974029604276023537773859850152103023344793925302545307748045469051344411828510599143457707039173665096873747244059620554535933982090004750788460983775455107302097221081207773527170632572228556710581864335349095785851562683404645709665835662351692783892444898116843792785714330265797444957094121432887381153830587715463641604493609061926653934746454289425596575693119101828171786451486011386655420910228430774295208948776620758857279581853097647692019458048001127234121381057211905364741595617900027365738181588075194025092200478221773422051275108426525146421105640967161109399103524246927275276997373130687103931261545791326096838759347551799354933840185526271559986487805832109350896261050781594568737388867011794684884910925181806347318061994115316467953795367602424378416860686522152163644483479474608878185011161656257557873058281946366267131838511078856469057441149734847607754679633559929036368045162776179982621323744314964432008220364726841362724168774290947905607875405373999138637632985204977895043144260774526419754371389886139899692771171285562489247136866929904268871912428039001299695703974211077392785118937881963352324594840928205293120708262532541803806127160646934585157337450687287972735234150208330757553266510003712328324065311858628921963452906960473550486441700284125761816043789937251363560152893311249679236493146680237042505063462946438777644561418420927937620595753079382116547882798759700369961531331529059213277232360565338767984740012608035633466443739799528550975731458126240100060591268195760634683845027527058354674362270392579483559128568793642288677059352656110977782656256275000394913408424783721458290338789712044011300936846774420382964249733093598524326638282960373049099115145939292616790696589353399064950936300938316889432952762328545595968982218601114072615441507677414372285892978497930627913807137420033514580336917813742050905641672890681447388121347013931396400886452697691777707421167448257148298208624079292133473376758888819193402581339635333988862311851921225659915206314599157402363720838697804276709022234582754387416175414299820326288728049743451858802564714916413369038752857725600887882724580104723512049574822190776287353723333528421011229780562999194999784390552893056241994989234930120026859285597856645024084188849682979315308551109797244678642879028622278451613150882455932758142181673007318636359410657275133488151307209140782122787935261196481906243553868182068057599922720176055129365040777408648660980483736011068309714183379279899794259706968371795421631974316290451622810403343103015033829802985302526621409380007625095116776250220318428177188779193412077262260302196668745271895564754767958253629940319809387036783496704390619470294412798633013684941318914349011398526060446722270038707308654508607194276056425272927264168407340506419983117816907918446872595646012301771072442776188608625725625515970207454597008946754316409399804574648952467286640386001946693489455807398312701868978150582292790283177814506475470988938677975106967487172272021976165986800989497687385299892065057148799212042074679827172833796716422869831783845710345897336932926484091187278394900858867918477664061759165925784483605514241138270122926708639376975389569225723643811286756912190326868995619803325414166390086609942352517315298694649376454953733275345528190081381757715123443946999715118156787625122127738813875779666239878881988271316402098546035754282162011360939784806041033947722084639952311721309826511908183185315881545747190799471159424754668183469561037722600487108701573860700927246500110632732966129588954173296441871949349305303667947241447881793347657615597345758337464211412028202694403092543941299108535150348968316587148940674856188417678492414018025645063203983020105420564529799747244983029760876280894468476179829010035743729440111762195539447120082618239592641248150369128323750274219645675504126466318297057412886434093542952773671247401483097182890035615642999472316948782531162978870121885462725281021687980399971022888068238219875069883771522024092925389737147158982044672162965749002587574530608243861820606878192339478581801508209295524339967410829737059132041411266292458347687323242942327946853072184206415317430405815862362673112190150915424939170812100899476279669563749549032020211746486765597702749123009724854675720612660752958358137438138270332432675220031024634637641262676607717829409192548967766387632833296414863283512444881590400855985275656922988638659417572259165016857824761829633260438497647322383468466821553605058476284885755070971606529021519888382094760685097726583783744152090473712210860943233724165574423153642561059430501938498183599729157912907134884893906755747025281587221652346645207470693734410576606882146489030462598995657934554439954253882199231903834261860848608365738768628518993761165587582298928857835836259951773615743495185805360653037569984979957310051223530222583342079185422582436433719318232621284280741171320708646270716604200355266735017945947448573059093748579226447459614690900701088910717036243506960444663317986607529160239403801325338677828015692728569329610896862722356895402365005697627498258685921882747336483027912688467715957706953183547882787709982419639098251020637307536576352144144986934938671952878898661536921542295600132099561911191953509483852046845240462470793663153501079353014684852327075762397879965727169328140452329294201458763947393725708520447098581681431608652647051651052292430681396066246491196064813784845650838818483369441179014645369983799735924049007204496485521601682444942689528605746600281100418013077268996243242680564669938110252001276316389710383016784927120609208223850163441257742890500897218831956152822335509509002384346561604721848290868228230518782288377725804584436464835131241817021961055540904970486780945633558401531768565154651542630852055440008284378672818616849813167281294538186593299438528937323263976876575178680850749213046421157644619892767606474038947814796200677292063073528883740593162834394965438389351777037477867697189063393379534034338027834969101187939844671687323710197291683132166695086218001858653957732798338930875898486723767949644086652383590038917228309212835681425699609667535195092836889513403968851873234866295081554963176572741725132518772507819570609751754391231841781857701580590923449548804650691667841424711042239106940393157911305830413512639460756352752511407782948272784408308192190530793184802173221104808736741880242859972942955404039144701983459094557153574484081760282416343944954959451979622068282251290402799322868417520153183931857950902973674400527003455245881653215466921669228568658231616973108746364671720146189734750753940709545756513889970494639464836402060167834994545254006222442404076053669550324564860463672255061372483870788367733221189952971536104195687357446326747331451705494128105624433064179608166777247951039006767060441237873292018312941404213141655608329625250562854135716032569806932349172655220896232098123200266724850925652547624468153269212657638853435008979320590539612936834400896456008914881402293948778766998057709059809076606366987103033995197835680245638095515756068815443706198666667879922755518139010318779763160545319775921673947719190236684736035594757017807166504729915571228802899026476767183962975375218016089363428416122412355405073449648300348051748122640491580084968836181062283041550143877103070386428836642466595436117417313625992325534778720245459681894624965433228815915860904643891141573974064055337356264376288495474461776594612449689753598860039310293309011774382261831674131481668665063347968151434984550388466402443923987618855891992412117255899437472765434025682216042859586645679403869319213685136471580048331119655023125603715707837370301588013258344370837573774090001055722084973783870858052522224406689154100227177924144224704226446637895004417217692405284374911847245456446902435043352679449197929539029074113607168068572105611517897468691770029986798933264065527855138855648359062042642000513565733853717065922283563719106004753765813167410097590478407078330116179684911574992352271068403031317455866748856022548269717746625545452389177026557577885290083644215101968529545506161110552118854298371912286841149435676013086674975575792875185996323678674927299127784657030120976056601924212808343803209945177350213864741555708475357113140309960952794689585262308080885376812931363777885190849450266163960237933655344322569424589813507710549601523263758416176606037193993270111882593636202296849883036684606587473003652993480453444815300902060985859293339354993940089892690807612757706106488753811431358792833102279860803283636858698565721955698855374391580903206979831755164281752846648399314956943514460389461265481898261789202702453556195413850118541813563142808423525559019142878204987282677404352474415998644640520250224972677979581180980595101301186636538939671469454503567407227576247762596913419318818614752772084768256635079366736962184058244465703619207180480402707131568900589952270297734035484878887353907023069218902452706247406792274274982061895446121681698983180096726811870053936409754504515279861207520858141627574792401086617319775404408440135213182556793819607522312310370467809618203317121537596811708144998950740371871514418953332522867543871027861604536880780173059012206321304422851524853398571017971110196582453202391891282574079535108755325639516675653178119957660432849370737801393731490732003643510781764374424614533791833031624466016027806932258043598824642500921875698355058732191043500105107989116195704089657755476309328454303432432964380203538722185029207837077490340023426491439494313953655478611487138831305938307770513065560234190259996986901434918174862413679249313250963735409530047618968273671816141392846783107223051693673948683571604490846302052924657938397378464487505896552376019695087591714405684214233038603795318653438342143626687635735314821109694623334368158784788444219284157336370125293030995598768208090644788911452206577036771495071949022331998910496118065218003301031271481727601414394066203304591744740680491679069459507327880180132476320498906418197761751851402291878800403722524094932789751287651923998974156791740364509934499858648517320403395596236685167716485130136652711901093063482702914173260696117150624785403238974850474489001843584849198660468443878842777385919590381716754897197971172448144013682762218872114026803239141364639123678424307732960493615695755535261398797001831784782672887389938208952250759302716612256609152216488151383204641776102067673020693877125752248382180921447192163514262128041436977613014731983302733821152536765032409372095206887711687158861424486810768131990986879637096217122598519024391752025839296691923574169247018821818835600510369860360684728963880703985541065411800170613007461914248740487626730957465792059584280952500429795631555505524584446606726090892748357614188673948558316946584700674033559621214059348820902467642258898847762535763971236284602385039707654669947841410897216746707929676402384410206493459575979103484238878578416806402595923009932918217243881818063627971614919613275992628077056200100645451360289537295559636102439736880338055579047574249774550533121356900403551493406802232435587572665371234090349249681600925898695152555340785488135761375117703080121211464942610380369908421183723570828716567316522451414466885853646974514353781927896650059566113240315572247542591996793963377021869381024851231972781488317681366175260366543247923242470891127868442266048410696217695678537174139375455524662095947067018774895966472987644503498311469383803168896092670714667909509402478771646180826131226132644098743732772649206943280788060872882443950480761457162929485972437269549885676786411924087043867291576786926397643713471503314402878495828443578665330917244019715694034409024350612475417783252416017404996656661964899316068949365052344227484612947325284353054105448210505135044522130108180395608092327528672448863112288938211227169983601505132323696995611042097032786297447339323117269107313936249138946440535847788358873986181353467597128275456867188553630397992500406939928342213206931245991243049526667241289847635056631577099001924426166417856680681417195372901955768588324700875362841041870051376363329469188612909820999709315802773790344056825580207750332318790616132962749684449160722759940283276989759778211670930139643497847221201350990028766129539436253033961290072563672501595260951865108942276556808855460849364759454553944081585940708726650818428274980231715771744713818397397643268947092583434517801884070910325055012996303697638603800504604077295457885492670418310141319241414456120506034763805845687301247676414207076812605189386279064707639500031850402829675936348744559112454254381026955046018873300942426850474977350185333985574877737512292075188167250558504994781065829634266947440021810006734647359403775822271223660064964108033272463345567808492637062138852601750239263696590863959612306918735474012481626154369768666462859392946456405545823162990227717126856567217568246788032687967519812441650447838399498844329502287380661954025392438029059230453871282260936668998968424205914197872476739266291522114628458277112917407910622802436311258303198671084738277883939907042058986985241214860470000631687243899869696474656870707419501426713999543583780688449750700171625422905753252368701770505349727742234406539346345168604979817020931620963960919608342467893195938031746139232004463284739260522276488975983777038276638338851537337358308227975452784089638748087532441714055132689906543566563573168205012048786247005970253293439847343097718434098908218837714089571728895512675090885759519092720895902664189725254630899205914721628325164272223043024091399736676112846864812376945121924491701206441408434441343930122049685055783593569021476407021879315003984846749293499161742661612688165894980945805459480487450473062255286669873435714576725869174759502485808846591087606449600428670458572810254023942261356799497149594387023596655296222779368899543060109920194058288704484984688411584462832338846540559525248155486092699283198931169482776892718233312798490419757186344562991938015492509149278722731383427193635566198382691341015125654006367244835606895039659664552700273279882312152086687393536426144048901101311429752649456826598684197617157902392693059406684099385275800667350492042982098296859694280291316497436755553988449511073203220213075923285664147170529866516559425561709577741607433262535664940561731447235846249318105252538161537597932813671225091644727037885746986862207847648788294105962369375906265632013814307404273258449695231440086208386382332431881640907301527605194121366780145720767638320751102312711823123032011054874171316826804915909561962294471947185959195108173499586366576684473814252590202301973148364376889198881866957757734676476786477008448360535043415525439853950891779391630063563927600260533310984152213129865637109963743557931072017114025987565172569685929764027649096514112394700859148858827097079964584999149491360793123618703071005940681976000637249738462599107281713294043627629289161236187211690765551409613535246215163607302279199406087191783393695366847331939478952359501381130671777425017664012649413700588911101547738833488209589142478033677353054242245097385078284628523406507990315598783558819401281164897448839671599471598089813761943363691741567507154227285024577157592577759954214943370039286432112390656465565193735715180540015118591359338236732234468530779600079543058019523903014575767408395046610375749645349399191931361999042517556458156675993894608448171569991686742478066001791593614984832186992219097001266136824250407397817085869806792969958306845122930776477398993218916657400357675510067046627386437850542297945586610194483917549268011911127607110815831182927614082710418416442832065583580974906943310977208605036344264937807753620231054621912819919378861933839967475576352148530684784234146826629838742942360616687524261595047189958217037463761508799350733018148640900718041843948363878045125485054443402092749692867926445543293056573872742338358911615856501766126540866499690515785647749428457394052625688151053284124600032026208412108054734056034422930801427886881579540134209149430910594789614759235486701370155361473538518516814677053605442360068615428474094056863087895090187245785538007061582005116943723939505586868666145350624976116383153273842276547256290418670244803395335443690366376774849459016014516769458721754758767456222229580630206754394258128175837275267915989761083924743579123261961121370174501056537834091809541018492805699860943244306293340540754284715055018179619896784707922520926243672214122787702998887802227269150904888236435784182740755537815123317711390178851859285070250343214238778674606797468112081849005201736557852687541995150397015160091493006115050886520710675597000616664362961552158188524120828130013153434519319697482911358829546715787277735228103109632708283231688940617187099550070928447960423050547746422847913558749355186122598225400323664784235129313488457217011749255026739603551382044584526738927160167094522202052749883378491193868626946036468182400064661801657298155560141256397407950875670121965817387802568367380589526690086258946208193096344206169819520451680165775203507060298057765777798221356927006245465257216094286531709158520588792917427306793275292793990154522593828193900676171942192354100109648917924393397987092045888851933595368354910581762574317559895481506029852503342516026572418933822256997485072077399825050343177626994367424202359179380386204933935176948912594594306561617161877077198226805092204564399543273204339303535874932976212735553636087725718697667354184524861027517503751259819545811686397283430801020931129758172554479954872271574777169327221676496785493523768198698313798977995476036084949792527914823815357097054927259757488360369327255971806291655604244747444180655632120690432066105917299136395305172699392170405099269767776104648892936506115105797509755287071062606786421953402660660554371990542659055399019635467401777219253145851205161624353694783270657605660352391130824163824739716913429735545205272669505913536043405374284082426582478875621977036963311279343440992907690347168951466750707890339129528938850115618429294519462464735607401185462502454216069253656854958006696609970136214269071393551941750731517250268558111186772570497197891154483716912013606164885085466376754827411234277295805369175247766945715430508041259844386504386249416722550124541119683723960635751028010660318856398895550451564035224048533761545876910378222785127311523304949556526170994244184268283708676334170593661922762368366668029546839931960291566709884145701162455232979990321792650507177033448998575279893966216387948581141370266449879607983825820598959857950982118249336022822350744559826721501784809539806674073790384552369672452411524946877719179134961289090597797092329999815524373684242923033767490086634124363136360442286318549676026772999913368222288087446019122906958504753576183376757988935444119273501980648276452695755673500453495665409754159000326071257344958748006000359581512004431622807019761824149299014694342118511077090680261971362882046142135957275205289435028494916997397906100895412357476028869426494024785228544667660438325531275666805697793147679521171331631755876320569061069668504570377721600422862728301116373661905161370180781938104513115904514094734945221748773191851486327585042007528818761702348275105620379099695295610125344044119959543460195059366388951813860185596341039832251905688357772851231597822838518938644503270285461724363678154885193714114147087470271345694376264703839160643135287405050324846276402449474502145877439490622012170711496506140149724093702272523677040184048242540286127450896061223658231249687546471921513597235587257539629445922312214778920364145293379344839767186331849611530285777041319883411062587649587909915091763008026298095482969663127042081049651258010923717602219365645047123886195564357171277133938422011476126713977765647837251547730924308101503877387000969661096885983236104106310505017943890512746666835514719306341942237896431533648227064525775105547869817060949898596506220353882067059488111895735572640960516696759640465233932096618218011456930922358905698456167648562041713134990733709784899708401788476234259090060949662851905113799249924054487473654393940116364730336404842906660108066045352143124479126043962158019280297301816013322184291293446693653329329129136570686690845987182526592184805168350269926987398343247990094923769565196683788319077272437904500709255502209251388433109511614784172824717506082809718954142305851685721176849588775441891240895115483067286706205188580298750905932433138185433091715040525344606435301364422496160801923857931469076121417641873625393964229878022729826733054266956749177374706837016232516298701587403134955192909720047893240377323411406578541432335210145269174187250784171376433417089625155994624475504269686608862246713239098629655825132519102753647408489183681531768953622386684295847536341360060019368296553199260187778517815422654598526864913026611877967379148233741036722536729198236860134647785435028569339075975039015563388606723894373569013599204215701856924675969518316521577383603127265964340480892214220957371893595367496451294896733257158985545854240810849197054704226792881881527563528741335740865558108061012226883734097529371724397153884161935407819083565084505822960565065607286977286676823584116751165604040527912487808375246697328272100287871372429013625281962425519787998593747495737326649794491868615358465382498192742553786477614704916652528045786421119216883791791868987710745870518775089744886412502133822479199875358831540942832934149825585386777033709472876106387512829482730116381659251453303899521167350309174579141918632495234655647059979075336309325845507963562909377890542129728053115774638100751810159123785277491564924307888281236425227373880956066005321826277932841096303165425798076905172509263543182926092041923396980904375409432661052145779718048247089981129501186628419698403026106453772979906586192008684247263973565081051064910813448119849581011302595214613916364109501533259165562863895912903468269098896167069677327945861881330597455930603807582705222569520217165660014269973822146110234210715575998161965355592893334652744248090902861184286711472835516919280831596301609074897787067982989183075193605097889105080914820894969080200482217473795243364412871613942323087672258593336413831075469252903462171890428876732634431096365345098203581825341154513130906543294747847177938857675565386090778903020918835719942740783599297215153519637146909333520170344552918900634695821132713648386395133942892735115209589773058703265005772448935961909381399244208010211782735911525560236028933607031074130279031705620382302453082344575196588864622851375521184916834200221890511129788764267232382633840659788325043452779963388080844675163582153878134661650252496590767078043122481778515936994790998023117769349101538173966636022868726377860587451993075072898384899961175220523127533716693414810578828664063359637614221841846942489007224945644453191950233047070225602923730354152870432592937061155767454590827010738116205333537698775050994624177365754956744791625167918507926856980470496596618000263755408587817033325607585671224388852650368862579965720902109872087809203733647107070115890387829104432798714355045411912219346368336194946738247828072524795211379347151382731643257675935545589285701023532043322831623453025598775357036239854976737070752590135782449892570302518289414335843933675895887360502432204321763577400200558720642714756509317422727863154177497756740707120690418852815119277441365749445836640118654969985900776062987930149157555771889932278016709816771168134749766876635730849953542864981318696537027769946629782806050414135472246207850479555053407842967864233396880815223917860234765674973470694589823726510360751622967964617069284741999393116893000617154306159895659496480815447061006602864390977563250532032976596203395989542603253074421454272071613921560089869730612945816113221850581634609843274658653067692882051387627600326695229925821983294376105842303014303630645698244837369985149548728061767641878806863470026619762027184591307513832692670923431342182138286375201714420141105470586178956695530864466208664440742626428120760881878381173520104588118072138343913040359260632533623167477929395190877970962001351403880962204081289852569385044563619054386770522068349325255910312691178797616678513857225608376522110924144389485616316486898893880453411751347468022704727752783534634978840529731316412676514190792258730333496222445093773152739259850584138232803593547794990281484715637210785997951093771662618973252872535919891059052616610609587090175175367086970286530398956422812084543399286881339496928997069186397982042003930011736298078262168227050842873263720254804361058492502367510562928575888350481364140653600708964119544810376492599109711711992850672338692309579804393302594764446463937662670918948757254588603203613810333934538813236762358578601661883471829815177161288782090270957130175777751227815740969336051558809506250458630757493403554001798274748724098374948198756939640111983010938487532830964025818684774824584867840940479833049844548294050201332419195112610343772835234565951825946505180459716918087545622371932140112730967588665513030765496754487211635067486492199934584083299097620250741811504626160264734717193627582256271040532949743956875935008873698030195722574712041459310017339776301506493358904093901800437434419704559484980257520049484496702783398775540841288900072118473932075988861347327918137267918999903242980813169014771017494529365557260067583359931252305969233835640353529639176543845000022104286694837654578901191835136338948890645384675839131847349839203621422775141009267474103031467767934719998968855159593499535092521557615826386730954344714387666141712196256098248714347517726590990906371469690350960913377047769395566247003478027915123499269265648615591201023627172436467917844703757938288623674889152555931789067031650070773965356730081610707084537220593583865506697006400969677302158011758957742673798499743496062763925592625494149240942607915250061426972172452400950565914616203777778210399717503712899423257358416073818038190425387628495300719189184114172278687830603474008597093347365139853404690503395604820046990133394783324443560812015494973806337889633348125470461169600886798591816544288412604466876370492481190809408211495935249550694423839409886579926833089036315044773009056941582184788464934702087555664928821880025160420116999330654547938402727958494006049141405009280195661572849156616251105736758170382929662108172372236456308508346115095299222734329606892361690372105585736637260036050694048246089742698635740881733329523788072626289875786565293725895572778147155681369510787010174260846441942454266031051221391848839899679441015906711934729326345632590402338017294415691393536306636029103150178803475964686067248163810607596330545456292331593343643371142595338728835322971404783346535154278966453313331798949937309747558939302504211440284872975611126321688436215177050390294695607761016532941058020188221620448169148436233214653789391278217305167007898446962672061314166746304266047396334610833501388591548865297559861576467510844837787533053383001083763177010506880111495431275047465243708396977421624924660293433551792784626374129289824081875522818099980937353474569293575208664671402734173806968335976118345295717855311740319344944037561421106598636244510840627918162557996659989972639105828643251891190836190594523351708571423700280696962439671171564924550600282108223427761908394299073560938925042698722553170219777836458959904602908180539383998561923947686286727355113414135562520759507147905218438610125365752334488986859854554618185570114928624830298189894664860985421543289312104278158985823643659259455430572099689727671710530504329188772026027898410806993220927870015406391396252413368417299414574944232281974754770975595595941711564344243409475558276040578722919774638210150059733326911257733429843625736513414177141318874269405255033372003880882602611329638323512355800130237736582189509694950209486866780053198439565271360303377991757212061181838841375740303253020702283180070995541797321895012957326778996075650824950528394857429747473406167470841605453434188542171470450587810415386031831354846317951278175431505178339545249652229553079191567127472698118243537652118737720364243638817445673434899335036319683799255959118989848395756368858763135552170352474868070292487333119753585399553124579941515426571341817937024725574638384592623399812149680493521517297787219420163646306490778221214241152041719300594134034751913419736728443273838493458120210931142593723652177459951909492101031571043303132059288770089712760365042561456387939035719060931353206195978537057150254822625073883898935393142758242006421820554995199809812168081443366302625933156939907429364157781273785716220187691052171127072752023988582694856963164731883407734599226177453070343965670506915575795563328989827524841532024036469768458165477680008300408896439495285305937031529882344408024678077300926362246210468036354128288653062415097884668979594457759824200719947140049831874647377403057979948456054613594003322644896530706175354866471108711944661108417962609450285470810691720326243143463651473477698465836420641350041232743015690127960695274451624828391599448355015433329996422931521206351344702156574293481840329547011494216026739894208940415215763772731592160580482511411248780998510736977046006709838545595055611136004031992196322417631065992789343563719934678382505283930728846954813625860343895395234004911565168943707549324138990390890923495435829691880485160080672656710134305303954950149197690962301697562947324910424050533176133141331431710237468472964886701638521523401657231117245737643069443793735804668960260807221131058549396106958899632084532560544002812333679424586347162850608302742256201882131589003725554022516609320186324355479003330458419223901817691272160981244005597745576775934809090668103712946933398734838176571874429381933909061522852495926518331500024856920510549151198384811362023091151923056735235970414339942613019679880679618525584649552174021045833376647500767219173387716568131422933323747323848025470756668122559439868235897797543614342000306264140189261602241016332381271552987533459003850343875793931260807471353299597249211753278623225904678315289037702945304869763653807282833248352245833384188510052505439494751265449847989824817744402002131692556574664714173354490287582856290078863345120807684253995348089059016078700334527009675449441245045857219992739344946994635464789808637240126670427029291180789113114042961458070975629728388607405697389554231333604274313772369169380660459666101332925181025193963980941452207961496367789426391706688651924751603811545908916304851348440962070289717263701607785167952332443397040547265214279004249477662054235758854265534099181113930235569374283768067013146258531037655525307887970160219800373636251453667431160325233238783508752495593112133087343504373024373600769479826361689424119537938737647927135070127437775258822668637386504054409087755019392055826100003999503718979023353156446555699603492536613166965068851982024329143557147049942999467520041290007181153514800160823430196437405457583779634541898473243079213010412164806064062708035999668069667763392331030813105806779542855305051699670028930597549376097682692913912988422099793114299020355669561585623632967593676579137623341161189067038382055968119659582404798132586302008132433058149192565604197279127223020585055149533919068437881788176991584722832063248081857763493315285808499347042213388539880557943825031072751746217624449712160495031435699922412078028681929279896612219316081856414620318914300878270457574300635941729444173267554067777201591192825465845331863415779199644895110187849305164123877071235380049630064669452381280504860604466665002966589525038491457435418429382408708160225597940955104072444266456906071791627661180253553246670132481674515232133195939267449187336090010266222386428132641331716702155698555342326614873705336617660384892273928261382086435421200468345435496512226388871918660436853817623725939945873006988176092829887184454825360448520586522069788973513082561073938683906433586480189260361305716304170691773160998301729753744556687196670503037231038628903813735576797585453020636570734346452342345688685804733613045111309598413028467202043329315332974400063793803871663652840057035473736018316654955905317764227991504507025238049908337046494897672594249670413999756176012657122471322516098110177518678833750197976462769487829238392299486332032215269276149758265711566215341653628393633384158271405637267678424389320929901714993756798590580597208739595417428442187342297568685867686666413914060220539848877864984630613253134330149778014657601852213261283138230490630722262020890978664874242999388012234182096081905455757682983635995435693354784681395449273738812443318811102437550010641630704810820854239483747567663953258240665168957467796264421370510521057023246140243955589392422008668792827121902937952191730761687414229075472244275270824321602034263822677150779396620520956463043841101263063454947333362000741683284152249897143185915380453799731133462234903380469846485306299372272108767862223485428414252117718136979630040369102466006224489374251724882149264326819747144624646154469245288626254349698608804846092684540522138960802208777920859686202144157932667476942364745964483063374452562293356761182720324375667461818170821838473599636163513196480892220271113566266181009074982626587704883453430394290220415536465671199865451199114263046304114494752153044881514361682491761643807264205143842153148676174859892414137693701946780488057301266893003689697289393601138184171841431905317292920871066749788468627145114761181350764803922920741717230101714359530913919464923367176631892364958492615576061705604843413756539727192955531875116272704274199889808329262322884929519320750573766867810270883581645157018044556361654350711822122716157151536150428761636815917535249351432972881525880152492681519612061517491375116058851140392475988316014836981536945689120380481374967466162108865767005606202468940717916537379405393907180047235931759263750123993769009702578594056018610919942632204368625053318784774768666778299075190299808852130263680940444903811983150180269286602313941764943056955579912205826310142419124236785548379974474832701173381977054150159224306585800502558680370055691185027123015247184590465359697052741342561329989379458899574833865097359418621752121601532574051551404995975594926975199901668826254229633705276962869277602558376470038763356239414362806361706541304102255731861788037229594322949268460923202789185860239413889573102460943523889596409456176862385254265605322448911480662143520972697265843306954316307969810523606637122163216119324918052046574010721111555163663282023960805408178048360719473421107624540669594867077680642782730629310942709536514436106363504358045410710476457954966454565780255637612480613149781601673550937241106765090505390584996626331275230747176645512841801541264247789507110485378948350717245816766173706657788538449371504755432729386093876903244991324945123978439836941957353134560037546221672220720388449919120525192044969730012917458915892022203777933687252527574954851283198402778081973513118498420221031258310485889609779686514123641949429661007623850577529393722725426135519149285220764718014370355458045245851188372089232913178380277638388256766561728485382209542556216659426959069784464490238555495101350396788920204856676448893919761989755620284840451867452546780993420344185506709882150964020484121111756878254465287401950062054972789909265275033111346716145228727058376061652303652985572145516464220364600434641429018121119895202009949494921953705986264173886929223594185823179906458414609188654765049690949810091875451188947550041268784517969207297292848658255893685806321873062535500939293516240834830174344131217433389198521804158740541005406915972279636082050777022814271162188503719000453464112737923515380103690693741012692094784978454720338370865438822411774470485398963819377219445777124943387838297899064233209863379758238715642762970424383238718440356672096181845989514557273331865171960895326237660787380105363779847974961980976459190300905193692864266238652849580440238110825877335720574851400402427089433706993269941287359732334278846526086492869307943615222697979950278649088049840174067053666015015133270878622478643170027057581248925961514589986217261910555780241982360509693378269316543232954508662760677627133647065319120942038363088321386163043224988271507304110225068210666327242758275829817173466242967145748527421023319824163579311901623872057255681788921403708553203673901747606760066073398680514401443392072522173846054668350778485837384351696196915626965157295053026300991812980486943754952516609620897239583615555542986706174388766727861402137235692184361570480182174591597266087778297087592422102494527743382671607861454461806841158548565235007565473984027980711288602089594308056635701328725668098484395062518457330336301452060784725173626843911619207360752497592590835825856598879530366614631321288474642903615220475467239949746213618178000965429553281838870887665857819190969036214354641560046752780502873236984047142905074136341737389339176402757210110435884250083566069713766066660166006459540656178141629646841348606395089938586809155903465698771819213194593511815393267417010549642352951406189677569130144826193347232121732447225329537848057298658983376552186122446398339365699510961886641298104983888776762630369077249249721205398539130442856443218142191176601929967984186224283094375834695786697710174944112639911248037870548267955312405613634156168685438793571248920701337386469540806103891051136148643518039454480460138845668781922223248732792714429968629504901941064476561429294364503892141157886801201731099505937718978471885186266295424338870383560786044896779289989870584860433231330562276170025258917026438693783962140752486044828524054003120852226700954839228989367053917039423078501742793114329192799927090485670953002931106566868225195675870866724660994647771316496895775798180710842668966092546350339482747672639742976514151596782904462743467240725314113865100686160663437157169455284173727650751270832576009259013640778540669524851563938377297186137965862713369335264648025600392706769214422870683307210048471582941018013178298828375321432964234239878310500326877745414293437399746099130272135085818566069410200568059064299208560434951499496916668035193261672625342193654257701946164923922238808869429442115450758955403226082967589894180399918796665248896716412900054359171316821440976070168343518466228693476659963606482463452384122752751969674105981375993076260998689665189269301503984896266777468557157765302087451038063743223995444715999299941348020356602603773282300479235248514170711616492486277602266099063383120235180340383762982979985368731335624770448849824791924930671726202498657569528038521223332324218999197029062212452276861887576097992498187977368491138800512733473423078573427121071231774175361789806840540255508457196171756918066142947115541212002194787164596132578201656720826103662402755084376243864327118538080725232100884684660837126940502344696224874633737035908919392158621237687316889523422053887853100854794687420518875105424407878275750351957330001583424503854287509138938860110968052871102811638361074609913630623335901707819787007096623217465734822937668019576728322671458227046507808281045023118165534423788117554076977719163687809019463993470743909459864503561612828512224930316136745601911742063238279319353711978070335573180311391420285655762107606855217504784919395548727647822278464358738435958126486070323066297333776573518755333843943077431093451004331745159093591315524698867715755779681643738440315018126982511050004312074474035435807769857905066859227721231407414602385540511065689073581989441803889393602877604962336422515157192583056601759618375114309112100225564374992278602042378104528690039455457207882830263580396983097284324746282912857901630461889331896328637092244689226454731406438500511131031748574677851786403040632868453441698968095971600899040077177329300200536966471677406346095614898333478851628317244601774820360243779067596634784691154982122838341346448586568958984665213698749393634410660502056745742802652286452519000661958672012516976661108852482987763150682946955185045446553987490153530715592790686387110850244169754350867710095600110558176375079653129216996353572741543976264652223612777628188403080706730994325147766786409221978731507629093682975874581310566476356149762307537158502873136142306234362980247084149109005885132559944112585178166759759007219654040526713270013245594466500087536448355663540752317168491717015053635882879367496794993362785607511134375046366848008164178265567856407682988373951866768119531620012811085578177773448099233823489726600719167611949505723552892974490505225859998176839512540840482050229773421496443239400589178056796712948029200260401185558867451956337078857722145928992854804465713556531062151107035683927745170020741316334886889034940499321762559084489384955069665603211676552985694108559821808480639248819007809980500264833633963278951725094796338449883850108975072720459400797849921327772561882649167865942221163537477556648115761959067415577006269355323977628884011805313024884331349384416764356812267577440821070522224516587350834192056610443582024648810457944417126539675556450637917309077266525928629937453317492807669844700690410201419642311506497977383692162307443404393277528709757744042930777280622986776987923585398375459548106451924064303622611554081473484087520724535848230650037837503671210993656946224887423129821190118328583025913579121089709532158107734282371368898347994966480224966351906373094409705234144924638780172825355680626245208502874654503509661715657958279086708961922757666859859806138975799796644993991922218790239009285748603263670809775253144697795954892774865767437993799957396534725368078596240064245867480463447802740509273960893636066554790559992357059108477740455356588126997667695231273446537000538425087445031737581460184639522491109399612172827299594988508170649395662424989122546869778903154651399079447779333486601979295015732031416257728236436986195013293499308882081721989334881155856313031534713748853003137863754103857864718880523734476081040241022543297307518519920058381695140316834633002403204118254050550269464582211749415348405974621030069299561210721268392299910321405421138866458366804234693257529751672893347730994596511928230322149213420812234726859283565090472910451667908203004453414922384251113382170491196686148027782665972840632795621000659184224437156080870330841169962518572058857663687845046340446988989619714915059621686404816590858961173982193738260685589592310102644615736737464051480117546625468222908860985633329656974368926655221227280116022044471137686680421622554225199129282759354288282905856894687999086765618332652893332924819174712727696136679318426362260611609842942071905170618882441386220969560573320857465374778122725126691489295045666761494754923453385338912828070270113695091892552580115197184516118672569933638016064547779296649456295470710103164122811195351681119326448904397869055674701346753496511986554222769607849975984058357371508167026620095770259792276017544983573003401101320892258984815728997244349742383383526895535039957717361049444854277779499809916505387021830011000068910913180048659433026137212465668555222308607762423924949204355772735676695958657199444737403447781247764283748194312536373535298878419765860686202442900125807131834627149557605138846039638564061221247631339700054746267287267468017831834461280246684992720565014667601343439424984627772087400937444052415301924100366680312136650058223054475957496898774557902374808149621774040087778582911517306240913319757679587685038012638975019656869074362269785146720428828407483766840529703480141753491996028898384136683463570942451867040245548963619746796036589876778919532796551804942266046819431271477418978019264920941287334159982738011784033161375112063470951778964488866781311898566066115557404294073562527081412561037779266864962430586767511921535279296624720912077762084806977585941925377916891026607063262861835638871958319892118725848912261411823557888853307919347070502261846497583313631698984406584976018408033245269376358570971112986223292249156947926412388393326384548111070285266684255921129868343496952009809400352655234695650916620181347715711653148934984911007030212412800425708979724580189420731703933315297807856595267259211358083747807796136404752548299299888884098729597037408059306384245805141771421325838303199892468033924395996560251786349785236346245459730268497486707063797079465371793582518505572193092511584999778710863547064736789512209111161794104249429228067437922950918604841186307254662591289394689062148127801387304101716011113188810348400213570599785437293559772593774378545932354926541886548054334793866883759832325683258398245864674353688039146254565637815339614321114287278980330855864904474814838667084002723070769874630502460782655474043831589540120273399651072080581612034787392067320509619495395243185676820555307964738300231829739558583385787904278296934050705705815067638815706722606339736025963341161356322423695080357485913498148025678148095148722354889318616114255059472564156920180251472061605170910572370087490958772364980281117201243158605233575431037598241759575805345097020702504389718725529380791501408584819075382008325419086392305120388028110495405551453901999412936790481748779316815628385940028860467495906117855723562625527040998277208766905525887008432534741930704490383450030624207641737811188399660594609983509770926417164571080585341234566261108954175439546693942726974748205515171217327585615946244808305393088458533414658790285071292745286948863848478464731499294670564692675742918898787433312493994567834748123193359557858890639308133642725730506306148283759755256587498183370264709258248532189802737396751376943870001905151761937487153466210702019249215201814840517928990031782310816307319284659652050659785254882372978479018514377909805124566992659800258834437209299328826586457715091219225133000979257661745524819130839829409145683247256241976395778774375652073275111987349912793262513403121596136404750491425693483612352229479110640718979739965634518412381227048972604432665087971695481524536419129830047947798604885270360541327181606377465110871887887347368183064940052472073071752457473480128226073893803896183409558598414090819399930066252072037828187089115593600559918547791339906951795383593620905488446118433733026880956419325232765686300663305687119005720043878595789293150515683542449864816258438814980678366688284626243296617887149265807139003434260296404828361667740644137560882158233700727918236373943402255810031130410142553497637248923554152397812440180824222739329618072828531669222894079641139837423731527204512727387150226787498594632107632834804096473928740000202986603546027669015789852241975089101289287589352187678135197531967769007572535409007695497763953575277820616674706011489702648685289646474083750430966826971418589044119733095888814485563602327682319139614304334537393485313586745281329211107881166311869727534907356623423684808833031457247530650351069280155441702126224866720815827174974252661470695600215955788799101208556510719413872245344418058183221364328185993432366875168295925514427549286957961800230859592604027134519982287167743500222422937008753102303251163194078338302476936964276930924362296054105559952406911329138323030977450570751482313873644551006727523172324661322498123541747461539066346686763981461295423473146141444272686784453356568582396628369518083575848886861391991427389138566082271099924705630563462536155606439805516379351244739665702950067083906202890181339925033372288280327812198817556930742769086303545796324977636851229249762278580981529875225554826975235255688483225756902721231911814339097315679127217155746098614670799840406033978233506066217296268783728921045037006088667417106694593875349549996290138540313770850776203182499478133666745695814910244417743914348561654511266025761084506226109160095714592276587184720682883952673116535752482714237185075688157765387219780837009168658150931211116078301752581526452595110823781986002324749865500289638796783757863053885837144932992729631008505067898673064071342124544457781235520911182218886115551675352286351212373195637592238303024680832448944702620653976650825684162261768365229507900753379709128370614857132242676779712659196485155685575284846331407886269470361199337147337551325500003455263708631937430128757091445851823404522628963891101698086191188133100670129917358700614402582696859565641547253384914884159186846019129853911034874629455593225774929243538481141166438990565113489712815648789199433454338044679670024196895694620809347624626016385349916733004220642349780000932531541918738561238599158476144451256556884766369496706880964959026720044006894016671762519667322576828789903135757156987327983215176481285289175598240230087802685658359285808191601602412734098358321372545488372313735943408727401887126150469517061950675653581359839323103015576726483125780887332588982803705906663465171481486033299241227060473416898828399232033817552785954334335421241548892404022559580613646447907152193120127767744112848940880604095712476969877759985907966160960004778480190499895687805037188324415647485350455722040430268548145733116309836232423174295320667269765688956002156724755898198455150995528792948352769869954977989908560083977339718882758326610598406669229438813527831437715208731656562933145551743114331874039143915356714129090096785653188247620709615110197294734162456576559461794251949191615313967174621841961317450127105940125195314148819406565543419076954487188235023621451943848224880680903964899886894531897843482286291146045723990677362776138271216047413945008470713470077787860716050375737834630498163962092924449796327317522396949879258418414886616632009632108494097548102833798378096321053682152343278190355059436375801551890600166914002786049292178512687092083516235201283746145114376408429264973699079945088177225842163257135270502512125177408021875907729603601562767582714339020169297307862663278094681494178321384714085634634736090362350358473799498489300815931302501000067558918265431343406495603143237225043055850672479306411242600863595196151388420581121061781271814979521281587229692678579844749413107219186277950394512526518332892324310720879107595220658787854173202868219429224702102065461960083664352977881031902460047826667069990849080482431655537111629817754822337199183638506118254051797127319043352791804660378589245915978373126370663884183957160861390871674238479746792016100701142527003003572956282210115170742706969732877402477077837809022366152401145737212944869745295043354439366185521418774567426536523473156614474847404390318943894131565761783893854788044016861879132099762103782592040417173413033631442228568933813142615424542556974484631451076532121955922542975916083286617590857607931391441975093249604427308094444742251403595929446879070772916041324712243463824947234465810265537483536955909979244711081511525157110591118882946791595531394962211534923470014570549227670099186822149124641420262708974886011597155590489844481507442061972004066493409731589111628850461971592409556545215727154871207619318910667690496208667660472374479334146761668944027585247610027706715420582184014872380951506366495465541073146894379871336533822737190617889215684498130733771825491753710085148353511716053086254550149626679909324325467670118040589198908158632388999713979449835999037611390781784498608889795226060079470789482146159708179762383652924260175682971500378292903940093644123568815679662001101097130038505581303923762106755904444494914797376216045643244475307165985033351819745594335376932318117339010197839153912998000664131893276425205712577507336742382055727935227636185883391557799612185978048278688986043328598058039847873916654531685505983020338781191598875084941421665922078430482848610731115785769155450563314264587322839941832969219519780722911260142630458753259358466721640661597280368479208841086627956731593414981884493141825933668753520416963005828111584198615457920878567982430818606543770979495106747203235563327675214116319520249576237257916211731229624015038400592561632581775174520973092434476417721318860397679107308455597198885193409273822760316262442466437517973256815309393733691118379569799981998264956298003868908807544005488124008015467202681073616337666854179126998493948702757185810887377117563278193262235149020981028774473420280879315668372146720618650096925349586209371509824988305461667355954900955672088623346565732334285844569590529443274918109703141597634051645906245318638997976751782529697717909056091122603993969493925660857047887706493702950613474466409050597057318310127042832145307033836933124386956233613506973345538053339523925739377179898203227272471008037311534922363599571357935779546401403225503301621053124830389843985682600620794786269215401143227439216288765621821831524321477894564877799701424833259692616755587288104021825337475609519489915003710153658614304705307953061775297785717688437883260335761643183706925176886036840437535867984067646966271413675755244964158633070068700347214412733015086813624122457148865461164863821664654305834309643597045106568356807469217591281847454975673956701937327534673922467156813870863996035085441572842941420049729447511528850989176221738362445697825050950054461266466124395402753055265903885858100148757081400852474984718235131808641130566291850342281536055036902855453394765887177146240351265802606931065951709254619089616716295046017813447988134891001165006308827150795890811617833886080021721756846717403112946246235257299184618256028768643557647067570944117935815242639838740282991010489482644135477005813550757745907413683219616499049833109852308801891462533723298690705161007024603359876568585258848207718254751761173721760511842195978011113212910580737573538411862640860195714720190450176139928920271618168197665920923605534467986399170893405224857685143580657429582383338316465878183334700431435729234481335999222805054140004971823120819135101865810016336693947724531360907560255020168776756230340092527801665355836790456333267020518919462220403220828090013242563584331960541401734489962515616410867429500503248885659417112793878713472742003580422792874666176732660589387770714419018852947284615807578836258808136329725710495172674625660024365296552121435323483087432671958902613308552176544688257037017564131769262383111842869051177018015180697637549746186235676706910159271836392563581934658702156450436154203175871640672353718007227838273262429062535107372777282758985137958606770057926742324172408311504885270299584520125017540155458906587325301812185832586483728478624282514759111010869916173161414462535126358850859074204617066900587506255979892005563176061409296374116654981962543159353433998401755339377099362738610094900826217252198609357443622847306647962533065884254675087447840987098480885311792439197118771017120284988347097012254695015872980494095244184393147537721565689281125822330003311756593597020589995359009896056935183789211348400401247664246591386890733502416776384844263788323920236979797962679250900160730214184686101846610177551614033357372941853383953303351292909283835924837883422452127238608290253082643901171001147369227158810536011433786532986188056350795611982908765067452616473877027142914634813134315819218035367888024415467566706973356134363561064507687513905724788612438450349385989268993376026245776791746389434426544709385506974009523466167777663695628203606701150651439883560585502989429890722080002452193058690650989797027175120673002551358697323185803113222002937176616199707930786781330868967312864491371850458360636093897684569938060859505519636612008582334467962034699217292840888573373756023244982763894413476406344371061299144069923349858004825695511600017112150217115850368622232897085956316751734526089606576382237084871869022889878493015275620069923544254260370130847946153538361027496985475620033330019919339707217390432849232786059790698013928980268804388296503979653004452838504831192364553954376798142286079773760057319113428824461009903486734129729403006024980431414185080407361001036861600500929456453920549039781385105864132331201179250707052650507451372002477657226166044024622176490230791932356547360684918504388275783865943040028001261100238457946622146990407668047459522558585840224874650095265833091438646830523481504480898928842060325800945224518247882112195651603995787705301781183677018348329730700650272982137019332301654172656689837642098589766046161447316695821326063273927789583856983075571695850084556313219603252044273214703208433993628667564074550133620013268143857571520985062901285756313217601689356996904856388323229516661608970784356182798481537482633762123313845548669059905100081663099422910688197493729223393092965905616158146894935381650790475131080160827329973872194005005069190455615375012111984977863486638986124632236008547203903952557776730089794732939345475839709695316320892352917324163712258897416809611043434116877424742023654852498509137453941069794969798500893909629229491115440972936899872774249033131695144993994497994337884115919134874904814073128452359051329162034775781654938333947689780728821730279528223262782529299193280496577868003967221461747409845100052213117898535622632260874535036415692397917425378725245790345759960847865386083882684344423119707099218936510156158517555400765813976702693985036026587443927049879706570419112263158559613755114394443388606193933455055953549495555988677430678539428666081281879451372076074099184670755549479406899550012561067393248477221810558299355136339316759504852674643111032058889639304893619323618696427846989999225468788967952480735020348563602023637852167795186585812568747297893744104362723405387458389928097227924816705929849903505154177223223108051069681179766164044069252314756111594380298164051704425407169630471177679954511518537812323962764531310566882884427288913376460988466162799865220789104359739744146827480867588887009186505525842603556914670672748863133491957244861049173892784810120181343051278906556387584380274599576864753767896198607688260136696803673754259224176683154668156018587328955650628688299363639567801530059233292776317739070355594609309058100225544798664114921211303669638976393104778019281335656259495864028146472010500011868825818667039361530172584233744826899049933885695578185449744623050666897655784322389089654313945845466103916828710941489438074027281851707005909772320427656332601487745664523615247867561246631393906990500454564595467123227442387730758390726216277269497491620040785397674620471491805906941727131773553904907043585108266183679214423914621929640195225963569981980900756369418095245829957697656593395554497965110380247008424734906415329268710967113850767987588048881439279924403127636121754285149523605275273612476396530847407157542125405838337562929968908187849180284652871970229329646525153272947880139166279327769335409431365286951183665584326423282174351368792826415774648954782171196078698917545339816815723161480784591921755313986659069103060100991289830418043542740572757176345654878146387267050766569637972466631869739973273525760894744477861864580379283694958632515450738132928691208111020300738163779091360357690948846677931085070045491230246368523826797055700686966395043994523043371832091311479417056026604645524444450223676038516825529087455713083641309121971308633521404446031788554320705359357645613932205768893160853817008907402317641179024457222676636818589188084658187395634229860783185627756313904105386615395374143620885515801527475651446355332608358076431333965565805734565430040469167779514979098263330754104414813117809624121913122161741795780383356172072274488683918299286981750454235136363210363266938979066634044840415094328840944691936331732667081048101825509114373849765775293209067041705126049482690045912941278664384341700313715871102336639713261220930449854049101100948478277348880951043608118195814131454325606486303707631827870285693633153882913598326715389079700588244537544831562813416507994455996505859302308537353310012255293600561457328241567467779107862039594062949035414049727381124760588689373009296196239106837638822090812674609209850651527714468323665320843253824233410927903631166629173566147358369456923940626783222091277871742245799788591255253613211378470677935932018080552220338542980522288654511715810728160738031087183413779991076217359312106303059760779724319743024540552712546626339880220530133073725707780935598582126271170971064333464118275528289521757696579470825862901036018487249948433384849111034289639588313424801196797545448459056233873635778693468261515526466448903903438546001636116349647471056679999028964338268354812870544705827673443948775529995552419687272737247125536358775801743161006183311006959490441254911369665924923738837710480838482341670947679232910780498769042240060034764062882724238279758600949126175216392347335692700067320055184086907349314777718300219502986619187514991310987917758848032999731314051538980998156435472727709706787067374854906023972867703227069142080870262948761787187971651464036256951502954442616218065034402760037837841642209314696289387566490906099150338353438850087204467713993417026242990878042522044718253333586703604803678640633171173131681589999663730156839363449572121742286888369361160924041670646239169978004944627963045280812169906974457737971628680396863119026950568404122305268773979879194211461801779481468858841758197546689525753646507331030255594263838168515548462164119489324461188366532867473289409893575298735080302808651709081983610304477264377375898524678617063474795715951654807605408679465955350993811922001756296755301591154893641815402056770309730181328814246269527183196546247368869208398133624953000541291696976686563112209866250096863718530953468107713064487196487445421230351997519787004419241709323944991433560262336075159537397037071732700617021470046993350269079966770744076533591275768883200767856421036313604434218932046460205203549089877691463167907248245217901610516801222832150817365239964420711931795870679119618887408221290357996066733152781423755233568700169169708814379904926510140505101267112119183380963281555101473934512278206119431193880257441351893842847178800155049059804930290719358842674503250663214294694400351116861217845448602359650332966750463372906262783387763907575457805208125070761854651584788597552018420557261164038583007017831664039414742072547806015297071472484287634486572643641971877289472169458776902070010010084953201018127554007373788583889945762465579620419695606247822461298038182427172203530825865542412948435428963188264885076298890021449804784138340417648260864915021269369082338745836860254207267899709308284241235064324620189444417332562630830728456684507276438364555968703683799389038773790984172998212308098279474538828360625484138436493570583373555157808196133249734087830191358905476061720017598559939326404406348081226771561680498547057845321114295725782544211207368249042016736679720882546681609375882560328671571856593067109445614904499618953793700604329459562301283832378195375098526960459423925031496377580935251308768966978995390799945362102694745866397781956371844992375365187114644025296465310004157968973758442890939588253135875727384796206408707089291521955895747704868315309649214268911292529353226475944750018884100981787021576313459127440401256786120756185208268346671986117485660675843444541356950227397856527842128661684158245206886973657240411988468862012963971987209441419365895521094340189428471287279004426476302283757897964330223527703439764200442963487727256837587605502180026349111980458031500931176595574079764656595863094082540627601251418107346429958530031884060800518093692029356252051258698372837759833748345389142618243119515309630524869865566310993313166150190038851941482383698517185423254472264090573711816047540248664696462292061797119428159596212275581790087284160667299310373313067749587124821183050525463601623167179153159589197408953784346417246302207178241623716250900496009552132259228984006981436473618697204726165761638255482402294611962421573671689414420366608050905040798504862732266678845470333915162947266797327485216419665764345464091878893355841860929755998639965890690216322911605790498788426963940072696155141694816296741464948851440993808240702880768174193107993896441472661072475893718086969313926379299077534994219849793895235994277621635245209284218666857339427098589207886170004713928183177061906907904172493275130996339288787898599077357287837996561926185093232367322033727507280747833253956536604290976850630235328268680901665402546065514262098998712282219348004567958210951553437897507795346208891821178328922380451112217073830343033305280751869327156308638670891870230506435932279217510681367918851390913685324604720362939819696961415128076676831302406003118828145796132340129602459705101701248783818220948639576357136810188934125318846457779451073046286069489500725494040014305658946636585418567989654635184198060485788021256653569892403915498436837710172704354933987878172821223726300100472477959425219931212253454597629283460571132189902341847416051135847226287946361620030834548423442193998540648243911629050877603668159200160436910445079051281322470077182765563740391452831759392726194800116927009525191828248596138500562778342232187082879206590384472760785429420156007706353078994570709387433735718892323589077661041888070532435553728290133406134878617556430616711140677577720042198413381598119291237626510895428299489400449360916946080361084924979002602348915627706790139030204340776620348268196346741390286061254777603544917390860376579143660823127750107612983352361972086521608684805489426236609903817761875339792999573379749090524591866563754223723614850192794465820923017559640534516371667001997806777433993198681191281302551797136290505174390206522269400335602809363191006346110216220286315239999221151045180959747539202100927558249338899311556579813194290079809806158788793135736801419960083601382076463436030064301433116912575943783981455200981266053681758769500846909835566073117500034807553537370860444195816623735032192493800860622269078664504472900948189459177162637136348028691608143945692450958156393489977364441462366904829876080923188657779651713316907027030455011153351276820254453444861179832007702910694007952705269845949657369242118659552904862071585955275674040136802203237797937367702859021872979305651292409368082061410389307224068055654325644098518187321041422391882354683249696572060792932397782000528238170255369924481740672182273814224475729686880315954936725658565506136687818992507148956653549774523231166364810209479812778870808277688532982147462216273116296241242614632283290067774073727242987774499830353751400076191090653027641377526824838722008271487441769124235714859316614984532874280605347523288372861738816948981645324161968648439413393537354295658717864003594692746942155745739265779585485638756146668771026961251720646398999848060579833577578607036994304069588825369290669669897657402546468113727078241057640178699262829461837920610091878056814929074274343796342251582972124287828472171870434326330790868588862901834673501915693127152682453859912172048827558071817963930126394752145381941420175667473804577149231773652186051221328279420331492524809060917253462714007509587350626623114744188398385365441272977216863629611238289027306564998017557042874915965419539907738635252624657022631589506377307604989800696659342671075640004989232829299297276775415364696424921357903273836551130873151706739211643672068935670873580218863134543342187466734509498046005012591477970707798083439782169215452224308453981231682496840763521370169963564016718261111318318148711080080598706408016457309615941634702926532927841339266690895588812032776970703466773972474570237729063558767169823089233361413322929455562030268464778867415337333432112406102338906226116717439328628360991201022053983231630394083134218155610664117626812649919724268541598949598704346321831123880779566588598860059954809935205543169858060487434642546316550509407963641350783942398991577968569167913350257207521746864788552684968444208875894714456327903160442248245267003351279002478766855282472273950406224597676207459377200582081101934726906271429040067123312385919566802130679080545334665816800265463985831007215003523569696609965757541205591013720725760513904411873236786270462558539827898667846459029412897452411028768498716823258138424539643015734590199736287742513847066912843683964406494947814486914536765802963533174101126076191980489898112222849514092446864094437843799502753445526177997742133406310798453535719692375706362369229093758702547059281136599860746633660890844001490440925862765742288258843980486308063792151605780297748177458095901808017470492605249049629586505932876752723405888636083232278720277710511262314863944741938338634441453921981702259794739033264375760168184717396868883667468270422802765081741464712834522442491868435080680267558625358384928164146531148388241426093023323468057743923982707678174991808286235919232078737754499942834707129301409775417817427863429832375870759502076549826666843949966699744282946858182630647821983244922686916473680674991554119574960291306218934064247568196487451883722402798413565931842629908161457314485436206353405357846002203048316514442523902008621232083683815826439586699990504794093407394569782140138888794270163904748784201591317339612201100859644723301883184607714231856253158109570770244958534530909342817445537169640197943724865587989377908826175544906191953514002916747657961504963441687045724608535580225504008656996450279198375658242032340228607702927319296722639121218376581141301284751719089757343752559385331105269534208523373472011666342443585669072015768470345517828598450123941404912399663380883093012540960519803709363734157565414381670532891261167750338298687003727962868995955076292076361257297327992498739765593133479803197466434105381489505343795236222638708048855558220071284173665263902703333404147711303424291463959104545728737906225678284047739759551272954702674580571748614253978727332012279493252037843374149481009009360106063907062701182317972446805664886804847302210061842317403205168600420088401447662267945727792988372908384944206865711542556036630188845333701698073969482913146286157033010442436838653892793115864609598354653928921072955187431264308788381373746433187159306947688190755243471323081614205559330638590932928920868270455027143330673390288438256035861473978010911569399266806757717433780363674670973405035101023126625854442603978612815515489700705341338055572000286030206756048348595001992179217123339490045419565004305971723530841259462503482474008228193813138087087604889352361995380628044350786993404031979951135099624014867492596899076943548772528749318233336142390740120931749221092401286034096981692474354850660301032345376594229176160020232592020759456200176318440771609033428598813863431380159100412760757174003448137770855383163926129288352162480706154732094937894301843762490801540971216626124963375830658908065311659588009514240587761857972175418460539237283115099194470100792390352265445879697456171734201461529872446340418976232347276833356777224471985483881058691148820797360520304061639848122454692448280498715596874105355955050566834894469804102699065694549303149982175399607844785057326333275018797245427199823132950931866595575280234235690941731404546855901982882195364303269742828176752004343071210379425535998420819746476102936029505514607336523636367486948912144576246147804561293576765908163177371313718271031499057358118491177593912473602913374455565818408346671871336204322265973364306484833850251470576264547751289728110887570916242907050229165553257910424110565127469701502108947535134807502741801902621880008452979180426362762431127148900104719135025084605835915093708877436608831676846694448765224719362748225715787569249853662041764686325539206418804189417571782976182227573645940743553269800937413952348141784140676023132912044889991071587576408866470971960386563699266196912864922702513443035602464875290836754416057942635180384950964248967748682117525695272743120170847891914182415711283279997570500712153232120210371310542869804791561445128935907330269849419311247607067119652658509051242062427897477205836676102084080214340728177210677294028944086328992578810198842071214693028016346623470949793697155205037084211544323970290866430336755109849628803242748630919254468867098870158577876221123378398136479212759896563544498450362659856542189295942562082960485473696994140595912625114478261116521672895552639032705187890217887512751872776676549457679004475738339522093117581064359013231458106341378912499810221764817616655942160924762511255057793262586967627518728073238067197326693292515825158999038713727808557327172937893398061319413584894522535543472115581288939830898419066348127765223146348696957934673663525244435912594981520086749047291403641434282368336144294647585759954425342656838480397914453337486461991291392901926706312544945190677737756348551842808431429249482373290166994187129861379580118848111232406835404093675128273656086041221531557676809900461100071618717751046761075475057084084158354557208457421091241335820256296962021196231577650819512348266675054261661594591456498133354423393791236054121780422657829848330687863944057170318633426683059609083255021166002066772804273121855756726574242677678076005988119713157098734535983724676926559259832476658439268340951409582449819834914929004333431314837629598223271562925226973746794306434680377634783698115510416814615910007521742099397828174136744020944326666510546164893772524807056779608988424786549805319220522123457415466152081333334809180105118870823747639957034883549717238881832695512239439364215117139620733890404592801017635465086434803666396034677498282067109578570628253985356068496902323255822127442170712838258666008907091240941058212608990477071746586391761867934159291217652886855466503132710673339035858711447688852986987218458097817775171439130352232078972362553400710948376687873555873956798528626217472600484391837587873807807279846665014159359094674460979093484982993259579673446702053466705773756889861826911161655356203358371188492116890279240606863505932225907818106617009049775716634756010829422462040022452039142930296736175733273688889013007191503006353620454359357629588836587202884457388383284558966287298793183439404903795368299561234723363011372111942732723494440132286397792729750125038492258594097191926726830906030932991767950170831247754304382475076555686761235271089253908368527660601740926877319566769266297243531877955108772916863322120197236039690420227197398313462894834835543496062728285442103818232759126949201770199482737990194451139070236266608269877753454274067864534714028580670403541963120287383643657455140121225224517992796462815728215921206717843287434654544887076017633314008969859468338629826516277504601360713962243489970407046885624812968505964468993161447671458746284990424816757216431204805099268609957324141653511791989355613875475447986556280683012651965507126057349890901145157492044281284844298226322991252839532154027053027131450202930078929484401844642450057035057305522828894186361266900582904617937427871927239177735053274402123303834193278346381850079249641540091286611696581407728545310839967086985403130687225457990481873613519155367209261425953662407859801479163764879607512641297808128080541028641674930387107444222141701875437703454281802812125578337751099991145849255511947585135480187084894079053862418036019698208736941284557240160488833955187103231156777595825897074782219663715143477119016189970035856271869534261802188133067683331751379454389688676176109016083876993723974229562368155400780998973541061759407259067350012203668646945052099950337231645386381674744933059448226992936541286283804041616032306239611598022670853129958150470301561986979255250662675917353363837206512168229209457780330103688408511061078680754559659874245517907051251857481371587839161671862307782444410959401132175000359322926524046721421212278709489682689452657724675121147012655481713170511418640528014127322562257320176373086073683420627821509279567505008726410125768131030105842122106478029088934107572981030725866419455007810875201244074603799348191279581622548020824336706993235577020117397792522480852049942073973925716324538908101802457327929500421676535059280377475156336488953823763970618395103632147900092650142376262608889010615950393715795682669716552649799705172746329656490788725553737885603475672905044940336050457401209358395594759976212542333864669436525175673726731363676453250663787856050396976930253303647690041655614488396676208712792178007771196353406154969087379126319960931484434831417574784816038192278880817564172118385152405433927156541828494085734257103478267571066971986928919602952992546054632833014114521141397343755515070052997625529144780350581523752253257355302636334693369072531102617939031086297205378688469508735481469509853299213299156586147821232568201777053536063487154336823629624679782323373725941706223315626950255105166973890993016128250227566263417379626080114815338460032113128430299698335029671222416089029365565981805364580451028530718139384719194560284342131919616994750033506022084366539924820711144732591580587897377621396013306749660776130017146142368312051096435980629945000934526319292803533528377727711076151240768088764918724406481253320118982769658321651840885183427010645804714292203264358486987938558389466197515692718337263120992546602452528994565091712726868157233216946401104213752198348835628262764546910792016957146089713035306579660881577246147377352692149574462392295618420662379746153216571454325693349288442709132075845248521282441116059523421116844393318066261238955006040748029772219110835219233905730338330860848833118372401143129427737351377240520032000392189335857219049727181611886151946796930100731811853122858223852589853262161570069406473299985410600908875841059852155374947702708583737183384903777579568634083325140281293517664717505470451569400261037847597016800241728621040526953512462219316230723535803879956262717872025637789609790711302039787605441681001885291836529510312414069216213407487732109768840308281883111051234766020151953743930292046455301002554029206009793698507842330883758426077901948347179936873292342642523348523042534552996125447999623144401423981272067213319426399143443664625832511527009102789597639969361113756206718020287864462490006700599267861579619813719642198762732517653548716979730461802194840195039050853975347425610634129901318481566765638602823014895927374069520638470412712001563782337478147004908602390526196204305519903555997802821708450223946739074783971477949788443271201762989887469261499820278516553255119517555483640984913869466665088662311731907446099287905846502585757885126100231951953487820891144698218944792053680358936674638922145113557109613708483885759806539516338082967023119183176074247789490615433622216185514924199602887783690683223315989544041380236163246799758988826639883845321232068607612419811179537184344974554301935745793074356918366671968198282170443534148467655819374296053931540499900938458889167231890306037202092980945113088930557308017752904310446057696886361679118062306625349199798140301727051401103614675109667255939775010696134744062467553134123130486594325997893234716585157922440095367324865178575082141998510647028319152670388459661241000550627711679125191612459284956520283037630713073419931044442811054136523215198220272269118056500415693902724664372642224330002250294467093226264441612362994241209341985598239008701748894367193668293721548841724029006012322965205411755686747881333696929126957347447576714288094774140922876510804620733160562441199464583141624658925133270596488264297909445808182332686443180049515807740382903462399562255071210687490703341068521799375201411324063215213988729815748714921396668849317273447089104311418182092545522585099012771395231302060683300942525787293773237336123005807865231285577673514224693691426954572316617026127595540530543296867895206208206939396523326247437576542175588747740885219216262207477399506500575648331643196566030658674026539406463170079894573053068845622482842847934778369261112967237723381372002791999935248238937607773442304637719176393153344180631534590428828894327931973782025765476417522587087857470848691366969817181201768786110868060914303427263479957955361199448681330036835999880251368892778688629005757680605007983357030915648032796442523700623313857014076908735044934530530243842536966015831838885777194659736986806241520103133389417052380088146780047712887888654595194816119610251571032455228736402707251146264576732099437690041269105592460105936009387316430209576387113486449462169688915842679620532965026837141824545435687753912961810179878148243823626379166523406908235180459546568530322266526222510753873367225473869046353430675208298784870673417131865263376914544550939983600224205271680987815854520140932726388476479825988546174945243171690277744932194760856657042336026372173326584948205150464895627945264183107588981273368220928131743504734204526989454053196401924872447027816195378493962941322405757452403265757431173610101279503301133101198764291639530783655782414343130762615813267190056828963477598700147342276758572025165555349285213495163654245667652105498497021699552822402843348940446441857709727608392785919046321068760038528943826935498198055734003783339432641373851694204750339502721837877055778528037250925306703737822055669294068485379637849279725098618332240033696646492766279190513887063041528623009134121228789326447348139651255072357354994479164849946873201601833398328346498951892707638255684965513784055661653751782076269334600331029569399674616171660169750066539021499825725778634837419077783962755930557506857068515087246330800741185990133325113880094593452734350258435990601663949324257636522184422574678066654810263928349466401770340832168179771106390395054840095650061676698196237297788429036553648404249480650626151522116877673199695771883804805638056332002481857969461727789293927145890350026120408064147616890250997088109960685139865527152550730663505778484337015620819097390607916926916040401715740236482791310367602764589038390007490965270937955364944862423982753386665698038270991513507513180593185091318508493304759078555901870453027800869425257231693349331734921163218283244383819651336350419483220016535761682451915418864067284687579085509691671792286143987935661319862887001458150431601490589463414107280375826352258909210734738354165141951425254441643828286543425350306637185956059411109937497247288164497306836841606488672572733872148221441763792752680130733038531677750072020266786247947773013771176891439637982327746966523139799738535901449559850244051995072304193181629554922248206999637528830240406059772140284501547399843153049718010740642039390702079640198943440609015397303391058604354027723448560027252227123961009320753138693694161885631962110028954557399914955206867865688344658887034562212085975589270170333227841450197952373811355473633686233583629471181357272865162632800485930002020331010880981200104949435772708220557726167499644300943167634847361982007093380520404646478672140208995773402644422277052026949357154816557574771100677850496863175152658145440598951386349332276126593046432420732838469221041519564733131741996953209422308681025115169035685323961713884821623987287628516784330507752606160298196451128141330046297702374392223188437848443633154487156516646445931621180178986040457864835690651434737097807259285130784640846031141582035160152831567037919321083843651394837254407256752776176633097849661994833726930998985594066402887046871666968194118531968479725079652515921718808425522296132211657053830204078849148538630676662740143378610685975994442411899786806324441761751021170420468194846419263204265874659792796192091949793727865124583442793556939989994998603141414648792349470499225809813719810154479727756234176659039769623201244032047669807474443090344497432165877540561435788459875047400095041894978335718753037517808242652396630650520429311129182550515619101318234083826275539892570537585998590929679957142566225598925579343904897118230120857301683749694006110093258286058040229372570916470541480103334012208692016445342658229173806487801812510672710690150002860650419860914268119561021042893809928386707000758288663107331253417165909504237472466411983711394655721923246425351479311074195249829502163077505669815152290101153740234660459106400386220108765839673482323822032413469585436317662655033054357016705712013441670747051164307954248862339913558129576718847343794801935961855356490464830439994209023361406828077330257320165950988160217418638000478233592832842336674474270052265202566281405956495704483872549232083970817429338582489933080825114329265840136555984763445581882788480668285750581271613533312598197411000590591558675524758189610187669721038151813717362910992124871915323190398267418615374115386075136929491687524330371451524050094832407169751486245961842560241082073934574139499911100805764027419192073686622952274444682600395186772261426659277405350575464782821899693956528327673353353808232852443101175065157192545487992686783370172694877853868332098794361682365323258449736298767755266734430591153085276781942455743361630642684290785554603367367167448206014176389920374793423865145693641470113248692721328955507531197103900028163706680123737607998940894596929349768925428691128554261988029218524108400267971074585819189444910304775400735049206984683249169711239671030338566217461134398163246787437144554994171684334703542260140815193268634841706146221250679349956564337567422076666415306826888529499504651974815622086740997688711018445924312675254669892137281858961285503553999654192169101036802122132492806728407446897947888648284831427203424378831648565481584421067829290805080525183739573403254671404092362104230631053941940667655278520925672229243892128131796745019823103799423386033114292693025434945709085043840695591973484420746453739863307888860737376388149842490710862117393093654890155192194001985841132236053812233423481886801912868207553975600765902918370139395267762368594742791250079910679490147444270842022077543349963964230137567762466907884545725463206126817841988665114048293330427516322803809929963140701334099331946555432107061885828806121062289140207329589438441170046472751174557379723745407459992008600781427901715645993416751520996528278916638321312055553867341808327455510402611938765794437448120472552855148505273214466793019502492717415261415576537829514903157296095178658213142467096286574506807226360084893128422907140082531420752774738547910215551436350132270754402453481999130570644480414002279989723036774374326191944652810916893239956444463480662100185988574029850692916602181395855496082183239651722718520144500251446513367474852618050431103626156505691628886731216114723471616847381814517141559712492394553624966432258881973020061487280051467675923555920387540105310686046666903965345185911482320693732297029549208210655126054663645797235098799980046803789070900137350823019613371604258019666788672128740068280611180703410381655488041899838446325612524783058773556398274905641214592809661631247106723821029484689525152766821299079114287233692447090789541897020679926525256599014748307868194178129067233038911909156875179460435513872226444585068159356049099774349268204239884608966082153395068859848127480659982713500414553230901271412732132653918872989493064238327848833514787758628111124205638667902038284355859440517422243117310634838777892196759584878368450640297804232521130718606275900937053885554182945800512313165904060420476234863115839663582282208144713392861037803204444987705922874817847402532082510627918422012876884592404450545823233117041828715427366999611275807340437173450932375685948151053126129616428949877839395721980678189737603818870950647688600090045371122631739783418943288825828134945630782133945024791357017946631116592429958867640655286544494413827017201253145927126306209327749750415260417289911749439163142319823324562198859566823784753416258987208163179813312936134174759608396013893844271918070242994120900463388293508079130460487413942737615185411119344647120319398782969795804699670818242689385917105833262478906759278705206279838188984800281647779432310131729837595723442191667314473264881383737655470541382797840508417733530492321649424616529590765514190782131729900012628912765457522502969461580752497629596797182431349994211020802899192243111919972680929593025643317276100337274700521945332290217770121429440302759100688611527919145332147514357802100542513291118119939126968914078323910830008140530982923105894191033244786172999005180798917713791297381838194608816922334526330586854633725622374256544579797764502352552624166631473844394589541774247977616977862010670169933485167284281680513423336478427523410440014589673457902761489789595461509082914708467221817749985753833213374593494112159095993979316668086970445892189873110577432929209093011571736031383712622979622399475198535219484994132950870767736490084958419239645175367864706950880018893225337900326198287091213171444212015707316783451887589607374133019034569654079068849324960231033748547454933029151757699310829695533765579966120871209581642958456672221064464589033712133006459662107961109591514650073353368724769788906179285936154066641778990839692074066758221537078548735383375444388111792142665865832051596659586505490260228496366514009434755678388740218997129186029612574290949127533055350707250043671560497323277758126983073734398586205861188127162954062409498901809899834275596624073610933868530502056492147150422554253701393747752716414017529929595451274191729319320696724866214245288338857862686727802336886862951293707086423431021469806641803076553795851182545559208700490644312142712426150483821395765650052267677423058317050239402718691459125832853573299626798053816878845614819431870504921159446810660897635639899651698479732079261687351953821681104799310082951701500544247175715951370718662445080719411995159966496739290157605213159663457843929169124439190957231424696023374873689550782384479516658638651701437120186733748590260140020478075790069998656778630703083608767270306762821113699431141756929541352661182243433187926085100306503170032970801660833805595239682364749758364754013751827636125268504595742261636349514369300656619624089085866235082089234508147478054385742285595387746816648856007688843546187081584601241382926880273536012207119419733909442635820685378660631348538502314536901284863327349562829962546084231686488568160430996110277012369019068424548332603774787565992491746391109396041226254315082578040457984152247701728722840066231625106003342803045908963156342390615463284839880697303165189171761529769421087522019149156530359188812651351253282560223041453986126507991955270261098893614679764801052434063453639980187390075459736640025700816671890981388267609886216097808640345160446346709487874548673037276407622803276019951761141661643087808660297805912183846966688634872118827990206784001397919125217349128139395834455898425278967275580220062689363152616275321932240727174551663616291658418725635607224556956688616272273326411698315264949780363142852638322916420980784786866918406060552029966768762344908291219552416619276169708711179416912238057625539328778136083787020585671576033661784855229804907413631534816413746656245943605149301891353469942147364290855044366186119459937212424682318394500393947034566008919014786411891357885702675850356771996377120355906598867431743390734179804920498758378789455792450058743631184803746655754088976079898676039432015483389199908523124367642096903910751323882819682554977584874791463140277204885394079743496847222726742789967758292853490450420947107032359504215802214328779183072629380608291092158026929035393262991068904055883757210642590811518430627592278711502575768774594506475690584307197150916148438409670363134043742361041427446697391360445872840556853376970893427736446823120362306755289300305824275405932673821834499751616735255111851414604232862264554613362935348526486879391157015104585545022711956649090434820048712355333452629418988491060453522051747283580261409092006396303041632620712372184736320671713251467683501077341471228632486372382665657770394149624207084077387523688037451936336094832823459483431151183981442741049258247056077083201253975384212129619596920568331428625312022555272294450647164246380111818313358868402226523677944029817724904436766001701215745136640208260603899501209677229494392983803346028348786645714599898761957283860788789516107878222592812282802168301380793395042520958339348199408095835008197531950599561074963153648679175692644275499558480422084482156352266166899013400564886535988864565934618786145773775933138427044148219271094938979083943378982343429886576498844986212663150789064507347700009876842491160381124986651531716777080333254482779830527888696172663173955368449935588357080530543891888200366345869821537612586887777815799639209012537602006187194333110420614186237807657318007306358190023780525439823754746214671529442161495722072741197675354614578653026375180281543883126452597089137045712835824537205423829591943097587877814347477481470304956745050701700509115392741499526238240013334093096804232632292983800743167906670136176287188627810957438489125724717594294530592480579398707502809463843959502234079587053142701012698886550732485801466477307814141453743322522214134254290298745726384345436407472674038068550169556413466739014657918055420398219269759941498857596207021121971568495297706920221428926313893571126898343063284581377294891958194467571700452392689653997299250409048718089424493082121110551559920337482827475334042274759346144970552604441338921604269243533838736717473912522678259315509641845205600178142121839970215554893315017474188845986522066278153480204800096161715400132238680460153556309830210087999685048804051456347656003927462753869352780587152347721756165777999323638992720825913674603867296689842743416520742224857183589043180351497804904975907276435463839540351160963926591563080998627469806428818368945082959875588825591340611625326469878714294423415648509680009421908331984148738691084925689318301956786483153264628193279666757120297283124361425048394569760583287095328878982488618400077791908005928054301323332483475631807021579974609776622534747700832931286478429475556590345081123549583232539935221058445235908908379836315442992418168520465025220483248375514530397206541650890137325710445108461572688252430594193300010607877919492939638899127110654172562318542239572961359185121358427726553387169187346126952199304843586226016584391432858974222522594734915194456485621363071261966719025535351651555537957385586458739658059189968015663077610263353281306411761380685434906819654435870864920725342738171812415510927057501472894582327316857122442974543749952953876947119876711606477865826752234499308413893513837383639883429199176849179779316017170738587130646242551690358858536370078487286328138807058046720356759987481971389083210973153523871432893211983263938967867439862249578339699601348325326249634341466142320495477650968670380643807955912737856155184454893444829889941926683114675828739457706656281747132793389206506856270725216747013725787870035262326668662062962292480731402916965579358413663427357475381987968351112400405936271716220598108936742424312436397113937222697274719386326342425003896774770595983756044577145458923306486030861561202655483334382995742957966443838978228579508474857488537973172665302624812124335087551370751711355118836560551971086430823054223628368685708979578047418604007418116494047579647237908631253333027067590059108429643257561447064006663451013489904196214839935112007020583330019534973287528193984796366119492657373177250812326571249106723135213768987099578003147771338815433011763224597813468472652368396594736537004139010619001692588698665524050988378278434823285177799417181084898595225153542638451246758249686472765672523403599122328176652377714243026154879405842465641759630584343916541451733124370483926959950800836417651226127887668982989713322103703244624345654868463156645445358965055534488737222651463666753992115022230530063887252345061373466868998843121447226680944143568841229949434860849815317633700021431896238115785648153842064224302840044143967787840356959435873040419056333028361703019212433076202793237621358410434300657585151800612918539387024217641618811558779046533932719205763402417185411731579151532857846599803353196706214527754136830396048462472045351899598827902085939215946152037791888661747363684418731230655811906941786459653457618289627264495054122904092690606474060240083129424013487930768486139021257837017844556534565212852453897108481402369001076105728847197815538155492510743401059458802296094053419221501652388723177863192361482064773535698399255834861955847148620626572533820026959545840097347805041992558720840741556914433535617395213569444528674085396515791528159667894447768281921630659174624179809048345100766099645462306976850753534186015199856912509877945440809287759429395748214904775057584091309698893600297794697078258764132080049946817795154142155800725123410516431907197781178354695732005330867441958718062118745322950919737857724189971761985352729660753265727608497814916204675439471826321050691677119026218991948147067060437036136444430677078257285774865079253210150083480561171340629367033196730780662841689767826214641440682440810128567860232198164456915593450120718160746018514664397720763409969395480038338645926564001234035527597507868945697558162826176220698535216356783347590000537971039273351586577436596289974438323944564545663661981557421443288159448575297409677498807236306036060504172582373050180037608341225407927704901497007250542727796775462421174326377209597961470630613547775090998773392461577459728015346307407263942028205977709783685439287958625247388025742376699840491883559175089275645807089380040998294182482592817473222995679444454694133321318386540646400001669816015007683969006832951588215754803434538290416814905435909134718445739989277050371503629042431852351863328152456737358942730576251037199388250415244134449006345074149548809737861888221829246581047866317309112064356585251919477900183997783062851270644244028383377740626275432904882264304450467056297224465114600979212302061756479470058444185257304764057844347233182421912744706325085998027939445733545811370088489729828701821806034391635399529289278823912434609533694668744816395445517390869742988098113153087383648298022866480674663819517281054128142689597638775500008702022729812825489557638494981911791393165513749959273010841305131381004893312833162333627857698853475616364732834316429957892803804077052694481879795351799608494950356689632911410551110134430405054058055163186396015341168430412004382594041475514886963033764290225453064201000027385076549815099828534394700681294685411016787218165176320482621795791569000224657217319472909073587127803184887543571340099694880923684932190621733091349207592604721352586773700477333738157189407926660359555540688669073449070635837418626817651221878807577904394642504517739673001404227787751529692780350068483501494281547149745637658828009605779499535601486189971328346559249966834612911365250208256885384661204423399590105757985737335363727303827201871787896980844743035477141241264529892907135422081902558055976048364494368028425761544825700049206105058733509708296987202345527196044921607235099815498429283887399866514250965496531949785822325380937126772152291347713496343311323376272177377587959172171881017542970568543387519843581247601247770382553688703025857628209480564456294554168837521269843393676459621535040448233130792229650266386381317708412193308660131937484730138751863509229519473381345990819436809481588111214000347982823781130668775261045166547288844373622871604216189686784674491179550645314901153524282484294982568244164956304837325036303909826436056913019119283505267768620255923820264513251325559599817556042527459576758484456391788178598776233124685541405456000281498086854441153597762923045157940248689627813318082493969002583734806354486674199196563956068525504822957662609953243155193790850465925959840292800391133456310848904874169256308083683102678529394385644854006632362262546084007948355743119387783898646777655833865424445666421047704522524732042421894600471941404070213974436879380158616662986881514355118963939488120730833220645745056534149867129764862006819916308950667887414035866276145632264794857048101278645725394833464020153859826539654458347674802832773283566297186860017460291631309958218907038963215892289533153269732510154984716294379408241816482932183399424153352212498851169708813888053780601511371703971603878194487234249140488277955758416779641342704876445480830197956415246851792428257326064952736313939652682237884388728171305234244921240657559739935476373339393291760140104518352044443924813982156687845280702601391576932888672814268528470650660409360565061107122260940067549943881397009085691463661189301551505567374049877948837934022185707868053154981640735685936508693333938583869653706436387515990430495765916837654957939215170493216554505310005899803977170451560809418957601894188168435503504761948126022515403034867598290897118841946118793709004481395576196637173238996533023641311007453249520080835663286921982717100291270502649236848717317550243768343048902035631150486264925743382038763948854778233257912316567514001042408230546432540706535404596311958227914940589407765480331026594227503208953592714479702167700402030372102748658879814904473534628249888444892337032538190095810964847041407441679609304113039624792114325711988048922334296223186065479878619043216706461034177715159353143604660132997660689729463487672885818661980287002364976144302682827685474921192922969585242649489762987814112080942191925317947359528844140755630690189325060049459878322925758997421778592465839947207348260849620594481132331315305929778262122185298840051533378022490059887757090466582109859963531557276238523325654963954947632440653057877234786479822246136556264703297610016423113078294895372150729165430032349495619985082807269757698503032846979920521163455493192554168125025837560494222780776244864797324325703053309764493847576111421772426296610805678915036266361871569836505308988220008046032357655140390237057947638659334658309539581175372847019704552112552049162738265061861420643024691509158265283482638527429279765518924027964257210197487248970191184193105466140819625766256186729382436800667913930326660492257584352023625642865531196554266920684832471904127025975414572805868458800658274587478738452590182445370846389734394038276422967168177265530947305316110673558989179559668580162429860140851431479674229431167852885201740465426461647222852293889407095600937376526717431303245742290371431873990964460839272072153945420233255806190641309724952639425672148018500596905133445211967213706869962404208828300126272982900869484825165501192436729557488328026580778493655498616024548595953300933955390959943821476076576701981322502883444411346892723358500308681361409493093363972244454328245753989390001604631025874604904598345192277722875843514276053210390346298493256091122514101746490372244825954191799715908211975864650742063134734737305876208010757862685499121694250670123271127759916447526890468387877855718667429133553837141172092956769036614211084447118162510074063184440926546218145061516957182251299857913338550421820641470197930352675975346866703041714857155069208532261986819231622762364099079388919657574198278442457699256385421641031487498344363531110616008311238653184156936851902900834894376018522141329713039166283562316472751732926544663476063271913211222324164012366215116294532755013795886809956715187926140916925318440662352308506040231238871033695145868735563119501707027476361927812436669532383366193736322932450300092422690888501123649103729763880709779803161705938094189606331341172638161236606533460589843243154448248477468886571230681685923212096209723363755246428773186608995363877330366642516881962023321491075953484903018889348057700970679107649384652338545624473614463718695070885670064958246467560637846642666178135066459865695469875418650990782684234269713079964321552170232717643362372653290209437484200089710241103778112758817673695175744023937680686223646399833033041674872005404731932365913124499596846481482624277975132203591548114400695846549066781169374946430759232298228971293675299797334347549594894893844346502776778941376895153473870973171579310912531468892871264508772603780986007242164946614961863686132124888869379969873496677985643010068478454083407094390554195124827474635028070310445958947852998376618289586628902275278089552985319008160319388795723885137125021500379721281959408132365546118786032191063901425575654515368793861169991525983597366969376859307702227599349133422766912842416401960393198594105766903408102624770219490887225584148401090574460078580391794361000269930517489898457253558187156476394555446324059808262659956327379961583558848416423350021607110309927826314365027439372114091824138693869189510944942732246227139930409907896093798579976234928078270423430768053460320535069148197743939674263271850031147866637491671468681779479989072055061672639283783237089441056020032383515772372132105246406772313794935885641785004947342146241694402123430977408444015350480063160947143573555582520486555467870034519561683032929674666299282065158244564795090341209615132758954936844665833637594909886305118686458117470336158871626649407210710236227502576956145115468567769138672438842393099725931826637587390569184994005567391062703322378261081996076058754159129026974304990519439382282831419301957934938824444183314777643677476195233030673869208769566238071325857862723443116186387180483226154300902030354763925846752752945408060713503534362202653974091678894453166311002241989753156563148796046117449797314082118985782395125284262787864433048953985040375053881141261224798185458385106145553690930432122964155923362669111837377581627099516867375618322513062501379172438013424710298329210649947746335420540843923596456923905978205239383855721589168592652971565192770463446304217727204642935068651052627569885605024631239055636993615015142549367001010053691990928515039532128590700575478929668567484499709949586048877872919779650344600620602983292998220504333313549139948416029078363817423235358789212205744532778432079925484978222329995697553145400106253112991336765078529814702299973913537640939687082571961309635389949552852479582733591770011794566692231818416098530819842877884756039156461942323223442380329856432714358207065660292153302868885769975014848900965372150587504323893958590997052391522062119030372885395792793552302328332603167484538151860826947404767882445110249817464607242385314454478343895844250359703491503003056576182503631970903207228007770389096225298085230737969263751046106879062854527544593041798109219514308142400451573051872716669361034789378256999416409997701630556565572301440219221210782795117954717447381784758155030576653332683071809892218210566279526993987168280507278493139280987149250287595336970269726097062674863481657822735006345538861441654208998326405240599621321415913649868130803389192210506478425119922386111151989198070832452955522011514431398250868119588007256804202769642953157139315980591758176274770030577394139617594859358594633430826579498579434484293381132766012143317903109570635541869558185415066772871618785458402432284564023111477274361718719349063259685143240573778581520442335255330362109459049718264772197150294743486969526635023879176477650620940526940643815216556065153299421999579851235467951552625435152145286098034014289609945031531755557417091643653387422497339090481413122664332531610662348497010876807426890784765804158357731336644701377226252310273807743141489551377805675367231345659268235219262573023029025381505703502828443741670881330586785621462174839618113360024455580760866314747372516356341397349897539926149814219999275587060743754965334635101379630205331472118979607567266655568653815835418682968250709995182427364072498052720246593820877849892161991275142253632723039989082601511723958931085700243099098830908779419527798583124526968090539738268201999537952183736017205622346413452585671362278783717432523746074042409530025506034272427980800532900350013414865241452501016158505928371640681021941764493526992870008132768012332408977024107859542549891636641195327467177245169402728803542154502790655441124776641993832183603892365454807809231684151844172753500257670798814870753365189663446666510564311943751003007336748497198075169159996998159184469419578062289457523722935952264506959424183978941471463472948894779349251660868193757464725503682429189187755340078379569088124082996373822881826287828039559085145980033391248878376984485196957296005979042427454631365302242851628956094702081911754068547910318011555881467041558613936895346485381549276109401910349169248034719292518257114996317385202590858504843283099644953440590732288047336855831384643474822428499270203840405049049056260230102343264658902083407494808652324942607506322074789717876070041043113635812181830501661955916927153106632233667464785367417250677282293358567151284098268863225039470557922955339709237296655190446076102583708863685202183537721201111820873650336860934081299365631546634202732062429705418321464361535695650453424623869382735636705588340696566983052903439382772704238120538194279703277855062630258727628571606266239182098290088284922711397844753263484913220993480272191720402710802185319256246922224857138377584105451499844043587340931122606877392437029715154645575777466765907226261408564859235663853652006336588900243983959290229933609343795455520656377123972219387321413406207639135151083651056003991245963064803567543483019886213098672467748656392780315677591204579085372210659325679683836489978694922187931220147904400638885782910830864305219182076452159149534741688487530227764245153824909825864157660348959348024587878133423525971501536580318876682864013953355181288616055942663229771672176518433009134984671455600947337294410703045479769404289362157203539846468975716110534480916924497711875345529912420398144185445994041863366747233920469476564970902576466287545232501444480133298374961590397343001716158013471362943350049905180154512876218466265127947075732750350626815542651596321654455814809782466836929870509378137898052254765596315847505228955374033676793228288207402873562157620505164243405959018182004863202453487895589235926317771917103114001153880927565973823071788234634531484277066494479401335937502395605081808767946234197472307430687554789502371527352021215153085186598727630279657791733254707530419592080929820289438789745774868142025301166619704171947323146686993199393891054929832090929371653048478197258245202010941150869111311633283419383964192841053081398688274308774752423803306544828132826222020164333005444033990097203653817045884651065651895806174401368139075951828604996174446294479458989753955782966100091886440846950199833247461160263401653095271722862690003513723557007573750693070645626239227946968057549221089401245558455163733258135304673595814714007858806452979164251758244161602753664212514454270244874572301902502005414004855628230773173346869029452922691563271328551425449772489999737805378151138193563451689265861216353359895798533588238109071180056501624547091289821934484774294189963077611217305245421266525417548066557519360802092974612608920278181021262692118844520207222603779775150308785850193604219233916169598098948683937817030613197977720413771668864695932263267610906368237729275536804369043841906971025271863283883658228100255565641387961382911648413672948415641057311592140023487729608646143624293820016821329458037880736546940970482588655197028826584690337043960547282652783970049514398995845632143626047780694474349919395519066069695197805792418898509362900408309818471036053027052375820506551913399914780862050587929297711582437991517217232181226021968614838301006262663143096603119439202116461524120280995181684649283930903513598703745002029731710748042033668005030473652775095644220900238944330304080869461713399654024185007014455434071612474786390786411765762490777383738407950715377588339302246900789471382551003469174168268268395830737008478726194811601361419956875679674905969622135590354126414719854300250124418111408416390568400309092240540143825800347841118611650587917833577949897422855842489487336539032511994577276546073046639485680254417141591926980783861495740275595046596876838123525037138796698413382246049153266276295331647012081685775106782560424449186018298363863447000550044108359145829561707267743423961924478621936146145840955786721709266419183148526659447953397763590233071633614831368907580398897575214358567953583645007893162562518038333918943649335305064145681420848419207158715757905815836642223247936174328805359110329533487089319040265360813947871158080222989899380627619626712466443452055211945589870081948948776471122558112339525458034316272296103116530198829833255441270601933852898911995708451296105341670261009056985932850254152306674187791453780393117615584694506094604751949736256565253434293656325541215273191747484366888039592868399391668113701506857435333333836630979376734530567765335096873222818325877493117989353052310868717123459202891004509759357039808828864274193086985007435667618852263933793187322482781388511685395496573245914084689221970755110064290929122327208819952485855484112793015841214773483568172166186577029132747263143692385568729938308195063487987581274741489577848388202016873058830771587491932620213174900996811484427674443905467941079561757456458348451989862178655076887201376368520827390825468470482482678745544009347792677887067339284048029367846902209386533440872938463719578786797279789633739571455789496227850202585148871107220514544759561431329196841006372200832213051548070800838720918745151798331118224655846323618727876078189577903920837947208392940031369741934261657647023751669783075812581162677744254756097176427284819146892476449203946057974054384490949099436496050332426706798043502805322209821305363799002013939400291283011541791816374023594473861750255381661730454503219827482654032957002706874961126660772006265423614867032438930216313786939763944805198938131952763933436707822187496838616388988784037116702012158701951860311408421647548279105794421851940574596287119220617217133110604283382160249212419064534561944194891110307733470025313013538244973437071453423852277884673252316053745905433115417833733161024149241619247045255373219386177571255866551265153936487636525321255860304906738203529626439828884805654891454269939128706564854179926294873562259448313506883275503195124846164789144039978081509516234069077346236741204472883326794065376822537277459484306648510972938709781745457030077004471791211905914559538152054520118848645480438364983142896960696100820033266209077769423057649505681385164046574899312146712499986262686574924110096396830667890705843978760647466754437829614747212644484169080846237446407041759089729092084617640684641605638913720842770033614420784845969986587613249924403593969547216026049315668945149495725567396912598068968243041242509510829734664095592199426337227084539680410027675508863245707329297734222977520921590285724028845631936731062026155827298218949838832266377894684462406586832099965792093599674324346839687609911574001884258028322200278784338726941359377819787765544358480923873953205444209372697422573490976825342821429888978706038301106668910366019913160828815754898199963201746137277310181242945286880347379829073347027722201220218292874229336068705243759860172053154098973651023151233037563028847897847353384221850335205193654027545749526112306286897565020239829348105580166681531510151830124977524545002924893288689963139295529182438650549640936045001605325302042933330370740134685736597209643414261691881689176521335244004799253870213094811856688343050744097186163492473983712277261691925125743995860216497097064288836915273368803337107583891641228638839919307049255491939055876052786238238925405979064289347835430885945335824562052178701615088914597822640747082570461246822792100955707198372304896416086741349412813614384400471515489933943088708795519596118066316767386387699775891111390028818616587048965854266927079039013388383353609966033267633946958863996107481510185272968960321635904716368809353983558648186672504835604890286267608216196379587525116949097907580387056575254719603655352951125208536806353286529114370882742848505048299206684333345737746015320445981612731245634841219766078570619967028137679682516666407072699727510421186659703083338466971607304452284736512549499481104664675696795488444002909815043596168211271624111724569652951616524966995399583896947059706588172924805595887836675151219557322727952522921505943161656266944869186424044922224414445315924811020709458529855919686285878682052721354306729314770579231734445859571599011714565711441263488422567321226240796385609192506308529491240644472512797406448323365852401702463603992527662295322494131485794253192318690456041012555581630495814697039508585822374650296283001466114433779505136933539060392858298372239165169956849916222055271423237017412328987469404230169238600989110247817750041906298264477886921854321489581413168506752132546408708556680335815978254073987906797542983361892635540304673546952200847561424337247815922474195114628427864603642748825556461539651927184674937012069826111635295952132685319904586155470270624544019433082001424180514388330156228273158593711074408985537918917444687122163230548440399873444739723093011873854744608885511210541995156682912658343218425047713230234443547504864251018083319898666740985923592149839017513663638738819999872025511700191010065125017767647606961587796054276867004408888309340769556584824757076701669570222558146340683848550236146853381804900379556693518267520850577709105526885340623531964829442872428645190671017799092646419194860658247285161000793275305182786388929110697969503143008773485420838262216001902524351345389958516013158979581425365650077246608723813285213775765379528262624129023800919268152545168925998059719059629797351983281967401157902450324825626051143449074788147983332169408652877684415641793455887273658289920988618994459913676088180245701478865671055323194420206028899955786563325661713346375694178740973091003518367377086293343052450923766802629423265276214703845348611624962786780939810300121101098089647199278787864725210575999126987622611537465308854842528912489171475407912880167790561384972611566317721935972684046462236175915482077247146436124817005076359662788631454777252006671528463089395075792334453001525520430525653307576423186329044346658454634060172902892251659583266051998486599393035655634114497310954594158721314334009347041580082680268380148942655016133821683563019458476816291274434459641839912524099585198645432770666564034804626337585086020879857238021564274497877602803831797405788660887826044551314535089671222566971314408123292275527695077985252998522956673221247692331548187543487014520231124164180697073216166171701418532290230542585176541910784283861822190723527548669615686784695375101402376369024875308574421360424374754404366454662931149239373625796074208720536861231333337347130914009161343468680492805053188446286449559068548392359936695895210513006784338093701821796230025792113604319783878455747082742560243245022224931126402256512302577466418000999530170865471573849137938367409717399033183615641498116300667609291381907702308661558958464493134511789251291682411171162038667890922965004530630545444606383742293860518793215045513990519930413756524002359347776106452528875663170067096736869838080287407483977853979618537590701765333788549052740695463745926955250933253346947094567955658413990069322097092047701710179762118276180965917823882602592380683922828957664726492710737871793263685697863307449092321292997126537840841788071839153824796956819780997205408847306128739888273357829222426550174790934161024631179646062941923982429935971763598282011846386264214920677127789875937139834093554762890696538235376303385731281388362380508454830242087376613251991324306711650571925931834028358637226592177505549816694802311103600424537941036718708762151896335126655389730502034157810631731303243006063443323479279028863585883381894359322300836104919155205052082474880043650435700696231792657990381815062632900939039632510422727445489293040520593862113280612241747492087069018651376857669288314044125252239590192039616949652001386378264823470472608005027661223657655575365591479836307016515998031271626601573935732956446926112659020034683652944222099949732118914244579967373973013914263036338650640059811387816156411176468901153785776248529782421925348337966818900188184413536583342632234764693368167250066741965505079639799981651867535749512502403674061609973937312423082357378404093872037612926388059948166631294055564298810608121415237177106734912592183364494682633453954520198198339482426861461461127338612795451880417613618507851395471562172494683470191291583798479662255507404858207825016204518332127472165527839052512461523330010104266401713761160100147518704662605184139575705892811304804558730153152674436105986435243402762259712968812922902698312899439510305451149188535548721900706491031176203931753423278301121845166758859828290572987776197812497065341553540625264615088566028552225910394439148342601302701416845588242885483557297354263231909188022856421567593477988093953598761764676418123176291921564323327286437883644885121845721211280904167472629414196386632949633788642177396275424325613487701905438537875240943354903227641995210249335336531509105067584757465193453092901547093481836167512125233842690357423993758754731825056658165772773516770358412478289697071340785836737185333628265142463057220984164401471488179216901290517815386604362822877994083724790987416411316348440768352371753034215436297979754755614078450915266777405347921956905130075503971789317511352786880445328343379285592278791934838431684208684452570039348150783581932404307624587643086635854584684048218507444447719890296474665557312313086354827247728936949371129000397636472634348251982781490477764599460350355323145791653704600021611092560656570482230427386324783436870346328041352257559402929672857071214099260939830482118843525463756162061961637654204439028627126375893915068638908808701604762038773012311625437321896653559182405301729600618691059054098470919210361697528115948962231871857584251781153426363416279917989915715105161485549848119775652617799815201832412095651074582237984870626899958369385890427527601262018429444386347510017332333613192953532312995166891972857077463569014458010408665091206988104648728269361007874764820029794810477527456503846358750451556059778144250342956174543377439549577841214237464717964611832088462607185166323639273813840567167113301395751684520616328885926409802228661816608770853904380594374045718364852470886777404811185947839203450228457828556381865230450244562541792634178119616484090230362191615746062168229898082401353382338156651282757932372533512588445551219790231708722380512330072580156576443766716379590858852771008884922850051167174880449380754073468924651642214705764216077330932022746974032885172839238292171095827127612495891695239677866875418465201791912993656282841735104769720757984937441543272500659065964080424515692114166051846950166971539763682272648760290504407500150916104794733314260859343226582448029489591540405103495811148632293324878928884867978883390972869387537788107685788494571807085711964441752025614820731841568710728293867433917531017016110446113333857871692520920661741191475874221446087341546389356904518396706981495067185815670288706207254042160908411714165759292341245560553749213163185730058097918130493671941597684231994154284877705408950302842020115676940866190732920042556768687503621037630596335922624714268321285727429952171115926994395381043918149514033212210808889254111696876968742661005176016317556963445520495896229983621133374298900326245410190691156697884787519843813139228420118923128608517696357521718428623824508948540137899107229421349759438695212045083490312453412036165982434493096783074218459145918646179221165445134552444913206494541441508358434525662027045325787955059839533002017529259232630325710328934635147900070091755815689371156405420220315678143346291847284757093348621809228831139814310068745352942087576881360683054053443194578522666318428689088616340891667351423280510236571891958397170035990727732178121156871872928467818663440994034756984479120510224041052300680664444616474242318979149115123656880686790527568738078701118071238674072167060471094592830569588037081610191174841901297737620502354420937276396894620809987904848463423833435457700375090526551292178083505450797638911704189809947811168409487500311485933751650620440478985813548600291373013837847209779183318178146912647683560178658878324282108184060603637937955910745225894502899017725642464862592015622671746279671054451601601487357167781975779146567439754711039958029730104932438555156748435490062332062296422476696043380434524842714192934437203850692360052414012674205139119012604872153403094185289384724133294920667467645904597449981483368404915205324934426461571954061458931533986204848163788152932318942261452690894061738357820908273131356900718812624426049913903454806738764125181093189951491345572319600879243437843743995521586551538517352191265344578168635786302510939644835404039583608322524672296606238464639632403319385392683220361189739587950047084248015755669576770921960288123923045419545147957539547454380353134479062927463728829905079941196756583019154619500289153404343388308697312354294580161217599052569661743544456274702729372466149392336995640937461985063757605462842743727865127373803316973035226411648813848375398081475877812204803703140069750003119184768226725592720026907902924702211346371912817952037106324432577176675466806050709427516889371571991705279197952998269777523246462724474835755838750818267499634861627659341746251021743072326199562695352264196715785101971859016743397340531634815534476081160445857133372048709924520337735804793641528821467018406776955371327477131757894901411915420015824970121116934440769597121955595753509981281719001400888368268046649494255381724475110941591027335997234162223815881029295159328946102813593280695079258344625499409540611585791840223354624866898609061672685012048830271820032863743958702822466025529473952410849492675330721885049711354514128674832694669163753558132105328111034214042767599040685306997749235890315704138237037041467473608347330032219131836763709379510226457241326230592228054979065411715807212761064550928373144030665899889287521571636640048110781465271179848222747225320898981487956020791245661242292669232292849396545592477498791776528898462658719956593096891118366261836396446113841398811970758438421187748496258107597935048993870848280653432394840538279463778627662594969214464353607548451084204268339699804088996000813458355808603075596740912554251136165600657409459436895402434614454315044912844867280623836033273014605167112203123081194744683422736794383316459546192432670967031918296932976975353293283655359080403970684309004474220527414778433921652622933971507829899507517911848649058098168453499278989273603647869980531615998077771643727989129984495882644684872363762309376206152294056239684281741890936585648322928841183644617202203015847937068013552594866139721359534151078720896925231387524617712041479107026889805126547293115491035557589627413391596688520480806303740812741150166016075873203934681250558812152193770746719262714532545958609178372635555571470736806779451300944039696521385948398680627639369412718692125216629523526504401067712815939827337870700522619045152754481664190968469868759258913602167810240120475278039524745763498132970208682021041281261051587027706441192449920746332391701054695425843587650432835646355882782339675672858833701295941673108197679289578308595149190103557009901886571315026388795279966563809117038599982063837331889560365961748743057384263330365864180636708832911898168985248571236440770266365651702595205482159671084050517453134805572343920441490535799593399380927323394073230718777469446736222053687060691967112567826216887719810556865855611691723528738346340101564446424727202093350845983472190792700582975801824433371674310126115974633774846239341163006856956788518193201894570089783403139795159534640513755378233273669327914860058857644994690897942807655898967558410684311700845115349753297731453180475461550177164196060750871268241689880480701710381727681449086130786852540820045164680705128878148161628684194255345454864339936820695630747630801486389026533418852013838198603361146793826490318295511030646955857897641264598816538480946102442019569327399233571301713919113470801185490988918136774407863064815130142346849155190187808590443562693559822264148019384198763349060482955921344428399680452723229183723924976731839561013928164634150023338276640561947600866811170376389361709292948201349722788781535555354472377003740729480751488987517774174968702577770929793582746667705875801936298059904787855571122596144327313830255730731352703237974269194792024926677413243085507992335507759845376779266663126383170621402844805943390171102972811549041408292373642619863219262827873292104995948422784924470891712060103814780314978525064508164093794053159945667690415332490725366986336505613819177585150039749573674684134080439562365436092896166420547646606423941445115109861373811664031388091218775433728731537318872388316632015828923134019335198512768658692429590455896661971458124214609336905535793182407899150827619238835185598496140132487554784785426629948601581612075786404225986369988159042008974427360647323729944845193336754361332433227320665861299859092837119182046380197503452384967660626813885901193615513385274479722612309455487065767069655757138834760260541054536626593850212872139836259868346381996060988144008530396447467566241609459652903133453847850820015557455952731408688129240178985180483356940285946258050234439478292269491296747904538655184066549404079592407588971762348977502271554183976411050686314624935599616724414129750458494650803203687993424877609164087594055574685742150458756065976955551524511586402049602788294477983123119307176004681158337639925319686047765532552946850474281333761855134115703938082421845588891503425280919931260788392005387806365918076349683587881977679814697907858220316135260574410925514460171071181319648436967032056704360695061989021950051880028429822920517820849099919606483321598899093530020753747896612455060393321861907287015134663471796729036715421070798724156136020924448827376786917355701669969783225946896603945411650904875921830893917850619095604108420564702089532826687276491045111452332852616516915569491422740078078121256086485769411682127907834493593841111782897067078661638628995767512109458525171865315592047000017205177532121522397954540339045074241738623125778726492055201798147283023136027353638754825639309951365738336433410042801205427102347284144049728536936482204921724292817041458234544664425927277547131651312834295423488372956128617423631339078076248209409403444890308465240764530020848425509098971337537869779212284668987890196726607850839792134557522505196494299541122337850988347266361228899835934600923408008410662910502999399130310341410962663205206344425213808434089149492284819559452394884518995951296416295363674307440065775572410280803539016112246616764144319937077823153690501806442585791948525788354244649128275813239949543831328105740103542321609874739107437085548321791166505806233955338121885691360651435454697918638372401161429792071416970248903959574217923563625277127893038574767156459889649464666455041618514363981039725609065215804072740056255711977467727426005652297560473120217002971877189703554498088516524655947552989109682416384730907521575191082521679929257760651443831304590227886248278976612727451560328365040651563024944489910209290281528132386035335891304011411116508423326793463694478499226176446917927518735966380210593267253170245936225015185157788701732578911027923115813017976979889601356672802302377528750906891603158638446547346105559459826408861594622207647084709418256585332260358448164883188346794763671285490622858662821307825022635807295303004286157488180989722623466313655376653943615517033576481014502385845844600310396917980830193094433687936405302059572474420919339273957668450381995541318795437349347114104060410803314273623803144561267626316704297953628789093648595965996067570839232522664267903672021748104446258143780225060631319151727585345750596247037097575865580626474969703277492620054530230275364021592292653625619270404159468895280503250935553540388824471027032355515322407003537581394211171903800847935054136707534031934126880919832275786989607758452267291410079471067771303912904939256660743164731116445101688866259117329321085953176415998514071693837489941990239865419645975132023779129512246358346464780355026723209868276517905484799593138315701575734838460017536457189624796170696634837900808357803608536141188171334557055745691815617519604984807922577253108511862249961276764586263598370891757428835248293992833856606947352905518580947674192443002389218330081250879533964992651711794606289910555797058005309122651390582636560311756615373057803482048518718772197506398535491839481454964472276227431513113825002989874443721346223362199191100349756268981293357722008811442183405699176506268475765399928106129186388256523530984012059213694584397005116070611249524162873276395079776412963886619106478198514719267431327520975139175796249147407466854881192365292524431444146503804154335765369348888496593846311988710733228118439691297333017552821773930899136280543638524546640769404406955962441023524457754672738651926947306514956456789414559595012639350397690647844810306291643314835944804395016125382033812506526767695681396738421074131263008338577090895096817140235432937828809019634250629119965374328996813723997149127372504558201159818528381138083098914125346665937838745957403297167562787778272149872728016423360311667299918800143832706596684567782776525967959089913478000730740929031754940324821680673883440508321968743270355551184142523802698805963578735004074443431028313378561403632664099262139525445528930034066856716096201707757811814742683678429130317110172596574292192369051006309683234388419224190869117728260177334611781759642234374240967005724203912273730065957334446015299722330730106808539844954475942123990173414108863542070119508135558865666769822706581863185103387325679979962600102684730768517470559831512219832459288168770028707288955543411314045047785247679719377639566775519785139292613250019076226823566855924422626885455440635122832775901776261484341057459879860600186387836324850376652488544638513667148208448131224326573835452462608027940391897598581197801347775240916585025945727811910837638570585038385088938788891337794328577663611346293928284670673623215476126772566681646290411266010383164428451378218326190916203334530602027720992622391836534563471088197982387039497413310441033367081932649223313420100923287057466253978040283201965410980146305194135187102153562980642268416393221599532910197149533876787872795378983018843403107837749652856758422667940535100234137524870030556317308858954160470469444601509433417030640758478927662977070691550785493977381527096113926863414858931050739341340735410862714418423137305207710160627967062302192368287176304436664989041785906992709934579265429067196386359946532400022846691912094616999315332220014190580458019639055941079859980925543406252032875363148003025700252289242952788902217663505173155719995612800272052410718297686173236967269817186697371110595225965090577103899772458201750499403390542707334279365142908083300483902026621194755122484614183574413532668593338467413468011255027600341333449385696560485285825236701665856424507009588494482540091154987735304494520875000732652398420361249053371309401842298174818968833503960430372148692674565366770484120860803307193788407874404737203171643585824907469467746593782755004599525742215901332301113267377728909947244610622948774320940219252748956612818283612115478685064608672037985650479640782864768350169791751824837749466939648804380213418238436017300993612628812750301081004669057550417699439771105621445471762162429264701445210622329630027435848365760707478290072796578772920888096474701942806249682209266374660218433649239993263405805600321623433575149098814982260445065789588490371323067635600218404748945272844931827190137502551071611676290344894814399018409814389035770371568713246435903525608447601987107964611356134746014279757551647493582892555466968558990209697567834410900632109341360962805606790336246155927224316278160672134170681740005325488596624455760104076909781256896903452032335606561369549983936797598386196751671091753081874668650948322596449529060203319872124698282875942220512893365438794931898487787302159803935688319126450089576176343246726226961500199547502576493962314469755635396737514194769406648053784561434549329318637703296938502605697096321625078325360777974363725685658123684102112617709467741228664175857758635336294894953569288148054924828630387980451347218214260167620629097944543275921924548975419529473921763436308580704386901713423095183925824112217850143165188769257869788035310971369647621147372997330702177816085108253698242003775168850064713522253142218535173166104431500542752839424170345425748324275455111909531046173759365614715205056763118211083134543685021149932402519564337694393660922224751149974047167270294823986631078939616346189688595081849843968529952374784412380368068940074929781437761861023797352384917626123037272047181430251576399827040723218374070038264080324042518266999793100849964419702929989786503119253375549701172806644321209184152125057963773943071546337985852049363111038169289360566644788979833588192793772105407022848271790727781764682305272732289077537094440616471069469501543076491497139291882662956472250995298529123129519238523570152382491832880565892377652291687825166847593780236067269335847694216979052379317464337668937655216127946176374814785126947284559736263735515945570969071050156987319835267809293322772846092269035714066723231168058160508144370768505530598235784163221806473990372565001759238091795862267221122086477885382313075038596639340732444814126495143747298450604932622700138593511254548044130710402140133383222020688554857762722140957916931790799200923106480419854928337319101538259680117195603812225018701044964181141250304394267707052724309311274877502322963782388465185051673280541835674637507914269019050934446805195178179412057907374813402536190691204979323700057238381377918568497690841136506011338639291247002199475210644256555542930475135123016581492957958010655185552526038286599247458071490828861660868511519074660127361975711706950333189111512136649464947499579818235206174023799483839038512316853917187247611413651716041100550746370964051780128780800276611460431232572527818857443422273311667569926026842187923467408492938574816210121024322924011822030075690207790122193275489907804114880947957478698529362381439355643819219183465122159507019842769792148990325553480614093476235549794224810114360136727374799400948032212088694774213530371023258795340814757565249615895705385120237797694301715708209322401896829987547055836751703111634850569342564582824932143730242629364428352428081434139127170630949632229581796013606419635552004856268485949195568630692279345723915802381545090605775329644407793481304536765372590148117403751003943039189432515787267135160298813337645314137259741340268088104022507438962063813400390842603855951108740820209312012803604064041030854900890466226456514576158521676734161006253498517143105146159186779687819928456845970525135450779280985830971951159342606072725367181263946124439351999409753837751901659900870367666460411600898561123085614601479404597605861538541387854579978328068888984651580103946527144188817050162041835965201564000373719469312113638122091929310273953742640307633760448831904645488129681828497495036711610057681545487825021121303120493022140891249312363269812526635917512170185727431710918640996935940319099001476853128392107825068179357344221569275900968443594026699749888450785955633292627936010689722221620181720019275714968392609415002454082533159463515552439740952982301809460433444624488745409802746123661713741752119896801984533969931842631770652409999907605155043735418691857964504269861912251449452040906677381682042410642025821488050831883550400230970899521517795191804183186704914839518436453558222053553229478824996519894546766190534981598159864154906414852866050296028712268937861040716999081762497667384195198104156562017099994378602856579596607745479114365022823884027438199197737792612971054204310603965688632126504189544613425885809059841653551922830113420491243645179544791782558509344248453098963069997271548226960012250078100655405390407546630206265836500683085056634204971035207936497664689421124298634759966726705379523642941058574491872058382231491013224306139101361244930894981081203002708763836217856942713285943396696063536905948215153978501578267833477742465940038367372086834646530992412265551401978794505620708172638754286074433196381327249545799036594786334549883331086239584140677949158299995568655341247413728667175439717772284204352299198391624268693480860586465972483986685226551416629239517396212102983001367142763018168762519162740862014827822259505878329598343450549048692553322347842283454745488455453676922462857605621519812773096372825771439134541401925827431627789647066191523781343126481912610757466127423991124438667699355638448611754036625842567085860682208326967683672713268069770295631537691286088737201027454585962074426111354929956185492899455629238145124376265261726492806214727309919941282814354058920216296029357015071093023548957634817351137715138546360861239681595743880567952359597002613946331701206364559158057071756891259556441640941220476241001554617020692448089732113394207784485776273328907662486805756249395525408046987754566579593764962131394169952861788315924306897847973367714150792301035421469203427793202018291874780404411865815967379950808589442558285042705412426858229045958277746721113224792592495999684061803010571831950514689587091251389953861194586213910491206796476002752403995512086454628075378998372388485800995176480313418800031485715110488588198586626576030870268419775242800724070816426088940112730780560635066413045748219104020236554649424585343187011267225047613593100729094577858911151060675360773823304650873303956373764465171772373656670653433067006860471509433077356625106446548282299680697323118818831591621084989786623021729508067596062848042016653376521737916453443840370773055645733918715826885961004397273469317248027214774612063518037123231950751323353274099206068652281538930391485566360945699921487247535298808449080338197611188303706346106785041257389481504410597168817419121376332530863948123152441056439210930636267546902069964982710203324325062676554941554259059242633469192712101880351775935810359289322177781951467543528559323034510795632461837010210433323928195111135140484329063690126796778525759350783744553704493854035535769424734244036832133848267652896248735054238387080069088993152690091822594547875588828522309436186462198235103989434812483972900848794329301219591431943650808025502242256191089889922575676229918200418601205945011323843972196139998927089091228919377041027670451742655657232701244172655647185236135537519439033787623712907401163195456486358705557678860744397317049019674594403670437700344775886541336399430446665450139490760335066077154009377183094647612437929042251608133413299428264012798301265439944822684979664516483497393384729946677209209292677035102303095351335676799549205412439342110730847396926814923673344155598736768887505830323744962929451791720781219037568987033672495621592982225754081292921126341939548272367372124124924315007272770477764458283918501540828121427013488110491399070345091296838174547961191416222261938768232108322039810472467293473849747325483820712771515874217422559451705840210769334003951620984579804110327536976437514025589699787856417620781130166617388938400428097878602879794927389333197683340687967641019514827415321508069655201267245536706175273845763562607867910229673142758900543852258297854379608437922567308448151185824001340456032442937525260086651117321049344789714314901431397202844460195410066943582895167370119167688470849429400176679611219728187794453743183063064190789129212068422558964228595741347962549314316392416497436263664090818067035527827792554505269223448605659391771023335048506334014010569137667222536155207413798645168625862253050297477111994967587371407543042105423332768660828628435071368533217583778399226486517033248616446993528914273810239942105132036654978978065233750234429404909153425702973820585460621693776593603663361089409695299577321091402227387727097150527574093509374818208499259142014600678646324184356067057002172848157891274879802537918168559835046698806905314794739943947381461610471971938674229719601176190398043741752827364060853831003003460948111520878824800901238154164187552582950883814527167840262622303254771309493554042274587929439169559925099552332780834694714266523333514932769404306556589821715438858763530359414129003324086689893605930972407169717579003723214967026076826337334242243351549918129982656967519579910858174039493327713668600773781854010293480223555397409136981116504313291164450843797628409188348424876128224270075537502889668298790058237105162468352117929270864094298324676954224152821270363548237564081004869980962557427647469516493957209144943972922788637083778610270874245690538884225589534090637130417779837665778042767118192222232757074457675189753410451344123725289137612493348675482038191173470887752087888072640642097131091379330393501602730705098034797867863996247726075793378519530300359689716604659407348456688381722875734777724617880611637243170349636072696234699178296979480195982778553144400554930316802687272703251146062071670404068789054683011909925819041069509385432717454934003800522147133884621934161424464000977802870818725579280966699050080545280795024262550780311321141972262188337185600185002924922718464702966385664298695211379305026940220299628236070211953970931708200199638713634823948233981662448500320853363938748181413574198066671770743142925814534206317985332288139829214242084943020061995795406752264143598034777408342387204964532597220350865176203378308987402844105281270000834322172140989658200256191008052621330067193244880877821154709227828012359226502403881361684707251751881352216173120772979561758823525845063240236143792478499802981962820749037819508605330181305175084844824995674641462221500524906706956601277585503654135507329698987763380532164119897326808190635460554986608838584856520864567585427270390359780428107792451074159885896113141984692979116567772958386760904758627070586909914710394249765871211515740792366735448748275048281422657623108876710610192226500914606425579633412963688971340173551575258528665163597219158162677182502120166611923877981768448415362057715710216168331485327259972722197562453972276115814300569501104454846622225782165695620150342743467258096853233573475531472238687279800473577175578567824116219983714264067688292484798999524714397197334297311783091372135191467562095685796628283958148760546189713747671569256544009455884252323598506267411500531805447688254452747481052127273445379521189527713570838567566745455019405871962860379008135590890938458401678895757973479598990873356022699829963129849287989494327570296679409932849129063960402921938710532030005639014391504219693346921586759800811497947225136605736518712379269939936647933050319893306753697286555825905184349254926582435041672737613173154326447939471244625464061918859317380985344489616640099993989714977741266317877427453365436934112160720971864384769907931094543892431663972241140431105053406296808126521891556663185478737876542484493111322960352169387058144653852272977443323686062088706479030065112859113856721120114916409633441533009171322754290083381113462483447280269240279947020637371673395617723966057033820599391771511396095996300715476338798740596623277870556631212627902842171343205261868284823659862326084895887060972118631547357210257676513728589084083491065296030012874017519299108182053840789029424244269965764000914392874963733229623885081793403173811579426931055663186296171702538487740074437647700156454983298499773623478831514423602359069070575816366988463351748937239420447394783109802624790140818807185107314428450296029354179311284042732407865235072788990713016746008917260891457348717197671028760740192773517591969084946575577247004238871217181663682786517089613249886185734038697108380435357757519638689109285312858130849652611530521697742907517560531116414489505969459482953594896832819407309450574707858316410406903084486723583356776527408392543714854996532191645559452768063104887452992255680473482306126455820258082291570595270520367109145648528787420266395082981734527899854107107972194656061809439638412151062018889884888845503680585648784108249399788863203545728887580684471115574154513327933410672032263430137527920431638369140572406838309197283500936758276312621121790253808793655887175673973751388906221447984993510028695986692331063578653630399119556257033276951752752572183769963371990956137233365078681799921332697162247686636535399351147421625776156726419658540109440141029940511339515995640779501612460931080460171008124902171899666320652757423405996570686636321832407077011197166815609769328358308163809612066122536464237424148155466872527223797289795420941290805715928744541555794664260361465464017102117855549019848672469329249795998209744736387178074543078414322841396121610487072143759054082025926117065776813321591524052152718576058943512360990938760030426680585852041593810269841799203083579858283076102602112259269773991503213762445357365018276594733051181955700876149808510043551181679769186785796454853121926351948029217361750147927802228010720434337699604518663606340594382351803906146233390508599909635171907320424272374895079124227870632342117582422143470287327310857004517635838968509333695569577586563085108586793078649163904127790323369659538171580012102721957856527335985681604564773748253877655976334174853259470513718664091860756249153112905043510458606677123488062576071623601127241420133372607858896594511009469531120791728757453926409995288560949474345232386685452875612474228540957162331168695809679493259740781567977153635776365489727643346136391776499655978734741978171121653852250104033145441442948262501528986206304248724012838195443163884763685732803800794386570211403855527025210716451861382880919321886199575639200106093919774438010983047491589383064779279185313423696669018776637182062960410407422659980338032995599648524046516529879345033595781190087217315036341957864750786585340006422430028690324105801036485041749580045604469975194733859449648560379723063016457584878816418950780953208608400724591101780509681815526235524881955197743633962624294875415677572462373992785174601734474573134824020397357864699230067765810092551534745738955314201444318408530741225780709493021667960142115591879726011506653599664699920899677885895798100096280445902775738008428153694119502171506610395841944261992474324590722595149664375274291404926376134744617843954011063589515712638359305233812184733391347453904025677587209068012784135081613944475389523705014318500746424388061839856123576804883331473900695898191844904330742802780775683848216377093776706274442644912706958970687501874038057947882183669494442954769202441020605915057840539715680272420597917072082189957678911060991586270008083176771379664220289335890644802131280886648461915831988973040322169160098857757576081472259916179412546426790062687717832932616845918589088957849557378150150817649406238110183640662636164867497566464045860406400841130608196610049608780315712846927413517769692533498129933771179042721327254531269917043357848725279547398354482834193514413334219308652497474175895351312797144423442860331539440271495793196762439433310084251827150439197077773653994731992583498339008055161507447863942925131403279555443766471849983296524528120365168063064175327814045744414623511288800527465126281027611948208328955150365113414584084821045359809748592206737087224250793110405650820684276919539990796076113574952718924503266024663990587671532682515260911683345483475652501978909274946277860518676271201212135070281743570432115967549191947253015566678000938623700683410367500943246529756391562187540100007443815159891740342645481390013914514819711569321239014792524967269386421728165414968657796733783927793651287758409657137030048903274962947951365587230770081065215027626788873611757465668360422959031455831034337032670916889582973846156949846616102378229153161994302272135084569410788958326931976702764043855607747477863778550915673914193536667920192716956761447588484369367461961111740623619276667035727532929781382044925302487606754714553354108474486485649046745677095000285204302136390822984522010876827986321560183172692564326690157154258124149928253037546119431943075695031056140539690974438790139936390469719127801109084273613623172570465545375998308198848003905436668624296605854833881801242339672171865002261362414530747515214298699807811123176154084414067521605135110913067628390433791126024369329804815624997131220283621450321789984343095585669181072406673481221776845314308287967623265470716155844971255765363156352683270266353325661069332341865571137050571823965418034345715442119389593582368868304167271022567359483554301562257130927266386737068870866697580356307977402449021408569394919887503808565689424548019289602316970981424737462554080873321078527290164191379127847451587640983039271548950057995014505729475259709605355307546806999902086428945360542237347259286903234929827657470854936398405950683743286412787412082861606219078437245018525154509382638419840513070196902366856057527785219989350573664191187520963008320421081276775167552870215126399571795256653207316407561784373144261881805932659170183987566530525362099911668854119266120164824347629106137052092606488575120135153772358925136896769529573181795892486718706760382594956936650589771215190780190823176789865128842286523007808328331691619025973335296013807211345364614582181706861307393885883665746112471365600881733307810875037178083008336511487816034791853523062594502697351366543579639581192268976600304556653377059460497860169548622083574073398805636795445820504975282468614775905308322426345645834056359821180609848541896977861459209478585775380465521647478102828273154763387617307086149618680392554574400499390717433043600477759438184042376417243271335932645778918876390914520964717246697139401646610412235804895465700713858570623691985524730998108333360072995410602616600548967325855450592708811769375723329604166697425427253850211667554565896841811667862706372391036115902020044356350662232392002835273032226784668172911832568421987664358681055620654390339006952827107110254381255406855061351678998681046953079793438927426026093720293126009597375682489419180574430372155071244863745405424918387238763822380499804336925254695696549467620260843893926364781211068433566782865581474241058233696070641086306208448208654553964882312239744898290815186001114493087340068570822548360615918526721511242569583362735844188943984847256974699447546782035685057923939270472464769544669904888146892281417191840827423883155524796620275001605308255149322253471712127317660762542740627186096347039344106198259019898943201831703349659481807459747358912507159670471274274413799597291556084404371006038816628467104602962626939938716202956715399188366549745255315156881267019003666394461516173822329362483068750698350977425050190892886142771767153711668242530752643392921491042543912747470375647325900064465907566849661073247673672822901173812066350688403282838533750002731361899692021420131181462086275398146921547357067397613984038989703240836624886953087634360503476481212843375584114998308800144497619188372373270306496313442067049514385318124863385457424869547211088365782712080688446688837312320048913722021536385044265126357642061336750170311723243227818291526799994795197575062453851197529944710084426087057369036122657932195026115180016887373624569869907100045084015427938220941586376090995678708944819552744639171098809385797302379058822757522149267540861273327603310315498858398676793716954145718074062078570422823638523616785221415311488598630066260408726143537010773570119342118784838797194284655816022717836689000114264384827544667581447991327448647781938717043360715106998709113950892286153009171105255355760209673680985345116807498340138401938590482235596796495651994029171177029336374540913684026756299994491864000172988275602283472291810712353049397872154460900830597307260326451048765069956968320606974359755063340646851656364398531656892091592613344960040049684042134324477346820825317263883970502843773601189594075183692369896749598367376558204090037443561891147442568602667349777861021894654303174744877524966072262039494630030623774923915325058325871346553026588563338582293503848314889492122973583713129091664975808336695856921317211992617586891735719250884128206578655102335256767928624287751457916118776046544461727566600466426693990783944200403075900094481769176263113542640825991471583503429852191642834660578482591168187756975499450017441657999699269130062475279624562028780362404971215373807056019672456757952403968763084292145668453656758502150263345053211057326469129672363978953840287020096965793529960850804251760287628606394273463055699353209742649628554942649978554845752598792314738972563895094498957730714527273847463974908885252412018142878974063613187910777202616254545768558780088864440004274526960986173158013135614997834170682736671417576707885779176288201131605499199252888162079717018050833312260904905109771629990095333431943436198931893497178759809885394064855880373858395120999143000652594369373697394977321658393192135143615127002858775462903105381308512330237549718853189838672747914115727959294437292808827364316359414925671882652475667680007554384039025617092816552276168776009217014161821981969986427257026117778882311496111438061078688012610589656253446740494015746351334503122937469373968650480521693922345659902247061009155405323285839237747733117963239186995199174888795442518345715323437834236160854558857201590726671276977010123063090978470989259480565773700718128902978978115715208321911036193307293352543477084923496943052388318717861927194308818457321891379415608605408592117846761294530025496215638766774235608971767113602003404300907536973075316283873483168476060193246184177300945721592836682409089904012728845341407315575695594168216126030543348856788742543738061722442048216641881923099430902095806802765666761583187232562587258724250339330554586758126900187844344095361517383076532929177539140569780306037505919852919001095126897645945211314469145214765503071038016941326196883094019869688921738319617696371432377711016688642989655638683534882298150083710781452968113090261886743038276642256585766094175016351093131957342738092544993627930803697874391035355574427712509283098194838827811097130443049998453221299483386202627172438200406446206441416998773688600316775111304748407214100868187072379245359478720327239062984712848819120532349082622852211657703294524779363318552479503817200511867539102051544199402425726207334183178442061762262205822309534363400047767504954233169285918885754960823249564129809804635404999208911057064975076509599037389916873302862929704941208835487203874702165875415537204471213418231589277051813371125122736692990610726559835719236896693047797746034611185681694319524551958972431739487862697183783010750829955918825841655019526329683133251427031585150655670033855083464222713267974332135709796323552532633271009457420789184273940931408094296076471225800646039250642452098439641979967323794418450670244095805795220422633815465225773721364659459809705897670423700207361522633742746456118673215580283717620633027459786346730239643049361501102095706862269057774889017696942820139655168148433536031544146295677990243989084055238254290875866146019050640316413273471103428416617120908459638564422707147246832984141071641633386711553297897382718016030000350018212465384876861675074856926710152955342389444440926940335044590799048483619157363670589490409244044150332964914124665514544242824641265858892142706052524364075889057178194832486911262289546017266427682646623516940596523160348912669549932293496576394046703718773809030426436607089311259362722410845649258442315582045261514665939397582998876934817048298565484625893192941105777068619149024106766892293856118159622473151194472575096834407988386021263184391822761667760720727518720198396247385619222080868229808557418391251048272044289898804283705539209888027687463900232091661917174594403890058373820572272249023081366913853489400280397028888179448094113882967218453420317501534076134055867223340670174660991240967278640587244037251371235279915465206559569926856940929042569844746039454232001733852853218536464437001051595548882623577080641760462964573203446823808329881208007739657335683611649606630854718354035645321887323911317737396962269678208843929601195669739496633100883986792864145600131409560664275279172586250490799099208677956476897250931790840006242704447882983064922448837688027555607720208752659564786276733430570670992341707861093486560044875950293817535629641125318689870512048594908044943613601312131558341190997903996003227535470316628036362742140210545635826600999043353311429567790937449812619231599890888071198120396230534428561611936644889644425789179414401263793611481710161363779154368619966614859422668397525003254322389545146897460049150659212662192395101924202317229974212579397984100780703193654622358303759190452235673120650128946020676898399645646063159896683313668292715501472605679897303336596654884110055044496118925134582595224205020019623266435903355577805466551603837259892893609540443081017736549183117285844407908475206273411787926249979180899286301504302557594055615965943459079657088911630747724841650591243168378889283618244744302315667227228605378680223705521357384042800959402016448189505123926273247905286690758947758602773763951258993343315512959904183445546153945922981966537420172110955368941586377545787209797098097778740068278755486902798989614177783893256259144709006630638099237533896103019600768446278727282542225991781319660982779982796071525671081389485417100598250837336979353417550396890524703348784533066464601033927487488655613007544366843143762114608899883469281375099106636877620593056975243300723640001032872580112131208509754583674820443609386130374401494023373393764470039408008369754407958221560974392689798923831336019965980441781290366564988959815378694518461849381623943439336568672633932008194516355220416465956646155900827230760184234024510916171704775159701822115090566481034624992087324503938034302679461284010295483634155701120262364351290860614939388133537080414944010600447220874755990901258787528380731391699184988628184877691077538279192227369947611303428279768050311588796678814548010426632445935089443316311832615976639367486944860536873632905803646250981047869088913979362335720467052272855019230850974616378737806395655054114339085327039398647698822778515661761876725128434243575848075812008185860823009784799055158178442662381726584293637422937680395160065905085798465942541803433634730480539190585766332561074046730611392284931986943318296271709612182893259890002534948365803649579158497843689375661155036845599473741258131852074660076728252237415147872014372646303327025066057380697762131608326365418933844539196845109172742778753058458294611754873501288310036935004679373497585529271923382492996267407708824845503780587432371926180802791673741870035831920377450414869803199461706353679194666585503584178388258689559232013791324615492706495704263164663775768246200817559031288686305073885183177105598466676689452798466732480201719039993489123205473443378073702180941545254723513168339867543889273479084654239898873142355194774905385364333313968351342120898894608913855793444011971170494608257349854136396645964407010022875221395404185353862501314919843299804837907459199434348872993532759708224661058109129147229709172849756848851338545716400315174281335178339266102638408592343000344751210539822090726235102556864186283976841770428474464698103092005422271618336187290055085072940776590416809872689271353098327552958048525049234015250603365811795231797359603950324139801775736035884482235414321046795587904767187430332447578438151516608743747099969960004149190327418565341769849640102885573474801253685186299265618687920372143194863833290562344452206025599932474599200924983035488187974454441583791301735858038608291092638243161453699910188167206195463382150902595703164302434898097499013920786911709958317319893725962985652869175241095262190285327762066791262582919342731030184956775724369037578355395671336273137497403675209660389764122468249485868907282780446896246722291295926529599518745701026304056065689609201849766986513918847910888265464235274841611068144018352943674460213903875643121624883421682099534110076505399793329143018862451155574424487398329523262207222664525703056234164575929195350510948362961509718915857485459669279236798338939944091670133569413228734933248319372785997643149962252284813816657926963240622002101957091039109924756179626038131918754844469606150354453825040252710609380159932486079656142425938193184846845948341123690927947084624751053134141807684543890915940724711212001967769038369820183609710575087097042954175969339420367290896587198477464655398056498514903301225038188939000431131052106873138549113166229719810543248944813281463565213354601839778092482829023647649015433586303312711221221935107129880420931780995218044225471359084450443116402720674896844926879211090183430313436720007664353672085049651483908880394306186453117236042197851423470164168183613906311619183520508795904063665056975625297982137640242193212394398154166672981233337875924157148444853706485143528253220326628779490911137429374443786383304195517715365278076945561997904608456752373042215697223621708733090212067302410256868186707242033617619897414973430515356916193894520654450685799668640218800898578765528221235756820864386359114343850976915411371513467122757302054176281069777297873943573774280841354614062927461560417685337871117236947437254195298009340855962674433777500801311456118716315312251568507531257152495113860456448812615819081123659794859649104731890396183805240137099323655031909049868338650848333446964770888416844977145690023741274223696829693413969490671227144141032900802356980924079196318814376352290587008272324895437239324597553090479949384595207647410335206379180729345490894461358834007811070164455709693637784853030022137552050573828810952699514122645901500502267112898162181388063375889388593127430242902554061239778890881725817588889766891051113634208343690958854639976155736303907960606297330008292204740777403151552167316776686387709248006712250603968106955697197371129638319876717739058630644878111620239642112326730537190958597165790171792826656193652905703766356409533899236163281861078494967199403085043961208226767978478472671339945481622120726242916629658988875679378744501225106969522642043263586547534103467375646851229611964479765466130107826602599206573745000474743081192171854724383727504843275350467484639965879453713060692131751385287376574293329418262340337812127988135266275340098526462021502528745632728429094685856143636323841482814102783057659250784536265581876759146311266590489243134436314751652559520830923668564730501534261607273597080407549614734023733082915096522222468133522211119502122073092608439507398628498377048693380927000831422353450919097150221720105984431256296624851261018115832291855894336865588848141127713012311511626601154847979587592317256820493535193032755804273899561907348246353563080070853287961278512347202743071541043331136582282075942815428595472590412006275626315350909965540803669849101620185833614321727635128989272321502368105339101340333700454768743696834795903068662123218010766570492630112012537324870932089723685941260932010165710805121823339973754257046146951658792803025482112136657799326699378284826821204550320975516348487958338463787532895908846922349464219709445434894408384721828225655480237990145885567625527535121746476593765503472419079571186180538271832233027057754236698327886676390596246061344011604307130214732191124133696849845412268030390309476870111471070036197196580026411312028635164143090125464746785436128806022720526325349423894587235099906308891542460381724013157199846664122220416747579820280837355321968933130974274843533497655724071492456380184762088712099931556546557262981047140900269277202532333318070915451766248953657501848782364618960747591419770515035453072804875075945956510261188365941990378561719531526990171862409464560456121775485196338701501922320825401533982170095045900251303363276633451175953445770797941705199745160459323227810685856526965862140652934435208461309738654510497503543336528066716757939725570420675133892268033087801857686310069146428589297860566436580723741844091408777105466399036630945595795608079882872911758034161275489527090302483888014217712845130026437600636491294831370284513110326919013732332948195276712136345912246429257428799478697068408595941859028820527100589376595283712624079392676392422162007517491418748645766207022931621430391927586725161517150567276556333800924697146531918918452990507574307408017703121380286412174383167129385548076188062119866852213849641771554288549611931139027164048109665140120739350601704737574464498278774833752254813737975526939376455966962046983343787938497291581655356517572548057118116713122120407288237663746586496476498958483527606380288984086649539406481019867026809660835361181193199122981598334341387480797925734003268704683178109943697401198998108595865214693176086553918511531964673168765348690323183888891843385137222699369830841958299086550684915602153666689002794370091080705126105911116505100143095431306360624187915615291460738901643168141301449111339418129030339290516667913553865355749572971553917980420695184127252952175117404434759323230070841306878584742667958036283516646214666944825718184206337270357562658977748200089838221788385518726779966229611539759517474719538901691621404490878114918951772211280868184806266916291882984566412318135367752444315254433067626837080202347448973974509847608508561116483481790527205847834839087536016859952388534294438074319510309696685086344123069411983223088887782456847932305708504058440071996272683075930994869666582018175466844342632709925684294856316699902718646845704481439348412094929071961016020331911511680159809534502186846154724106326105077860871543278631444660813167707297459054007513378233948661272258629018889259281144583254128596352182588336635836003034309122306286390989602291801387074544178777681250539812277178506850281223153715610315838133493577253257794572180441761488146169589073146697853448213665884960954651626929429441514531193554499813532919168006772206683576132862806436082077675450350343560548848291585333570426582467378484064007893194591726909706530731479710450338701098507303777163979900115295780558406844169697144000887876599008658604618808155535008189350365874539064556076334336472993395282656958719198422205727976742893596469756416576068191124514600856899920847144293905988282262190098602499668903975012965120591549667605658739476526153574014934314766465450267519531957206277071303887455497548745518408387875039071879907843512778922857706656018876474593972246475807936809469372468715309979199360565045387970708500344369634014325997086496731883650153470604325264302384540310954097332346965304615426068486300225278393024742912487000290038853467630140530536435166544865576289580311996873194142567858466418833002230847415016684763454465919280606964108627379980666118076466432418943303122462890498338429243689245497773393418705095908092154293766998104275940915772378551897587520655149491622305346172313647296253712656443240453332409288147613698639855004719584115256162957300931626281484082745927418166689083390021781197151379792997696926878142680618364954644067461317030997933429670333765136800873347579418570589929200185858709499274476842972540528034442683885302448352895465043655014394971034216898107540982194309707215454275540719481568942074476144267936988777266669831486390426875633114406226756373654158624576676325530995021957041135084398081219824932049726880138489604030158770074293947746587988340065138321484239167950811582539651624763926123892407334931413264393262649770449353240389810175731025292756005110817256169281350733790813141174024616291348885367102963701768831576580402028559327431488510749626335056486180706829279339141073761508218232808808254480063540253032444624625019117306802078010859084884869037399642415863604121713966826697402659160978199168394760231239972598946955141204044025099443334874047650585060332325621593436273535685066892400498775909768003771305123138031477091736875284746221292558623925029903585604030809298030017230537462535765032153823318788621487037706347919064067322306894864240208997144981064602540934176315893656223957140177505431459289857095679955039339138155273246601030008154610421389917925975080696552351542026794935736040139663281084938366034649232066781240544612567145204972421703009344488410427271082030490925875448482799947180193896322635646430322117094855134962232663033662452504890110132018530147388657477694907683608436491398006649768947130473580247007656388305141397155427543189920266599585335208870633555233485750334635415844969172399057361727507497380222775581168524762349366229213957976694876342884476083771500796029726347268132640861505948785463811021633794940197981365030975662119366903983399335072593619064170934589797168204840842312708952677073813144962895166989911234697626633524970819400323868051355395176506685988534035676717347409865825498049546602201606799798823882413517657103233340694784321814483677996488220083097076058772409833460624430297387269443176546736837416714816793723756877315995682094674544860873296394672136039122709746713833926736465637063025564791374508514871268733795104116719124572841491438438613048556821957119985958194914770480948896653241799840117367991892131867169230122089573251046383554774869618821582282361649720930737941630899884167615943769672656580760501069046770837554307890323556305890231726899001416838502641485539846485582684731325192092359476527782202576687539034500067718055238217574557010272035625268911225854270789927526532732796230660073327102902624184734980546916503105398029474856437687492785046485996749899966396789322016283917544299999463890982747515669332632748617007011058359383683194801689652433846469494232743356664881453367812621492239999439266950796486383027930292892750041131771171515721829393185732553961247129619287727203328463774902159451677617388997012070752708260493250062419200120341862647424425273350242333688722809246509124583259540318395623327960827557317442311287791307813759291371275509102879359880515731834923236130646536163905389815376993555982586673127086942989010898620963894969771558192681948510410692145265739411162593666789915208765314765626598542011068786259863523306975091127776497063483000575945495971059968170650075399313620739302024915036486483311116016582710336481089713479822877773150473324590363913527460483935441376525282292576109100178145971801667165010170845914688468666661952553698457846386021229879783696743436015971605924735076894330235570256324397913261370374892054211684374261685246564645947017466549721685918273613968419719096697720969465755640482575115587619958571336398189458039647565970933619485382694892348360828701594519596067921576190014998883741272041408108349327829296765528987597879036455862073773166906627730605318436515334043020538296691277226267482829545022411221078529080404321869656110262709640234108044505571078701033831912006608698391202678505276628943189648347518866081028828014796480955906036904388823982219412550171585211156437501157044299028295580747987382283147800516317605511589768109642548627662729279921731919709554139943630117955213975837326026897970154529189885503041749744950986143847474986685818948150095584470569373216301944627703004702327977426715711676233993155566765933710297055257176630968065679667686562902934518366224043503715827607774849078528946128535293999512791344989590490457676782587321452767944120181556661217638950441734962390143358370625749845950138391427810382906396754220721445542619386143015571443383849950605702314869469036541735030161996169731651849576003071793987045223707401459068171341005277600362974256842774155844051881078279868977668630744792505965653040601413669743739913569805736674938977517551172905954650975288564040764411822905564779663970934036707195037185748745505751025457158511418976314596928471470633659056920209464156314354789621167686031692245904382819404018224218641435542212214118083856855606693976913590483778276274420364142405321526000083917686404650940160754410920128301000268901797200080142532196556066493972965996913759739183555147683494691480827902614025795388635427976045283467690555709787556544836167680246377002936751133775168705110723243073215706504727223116588669617080307729081001317430486355378904191234937726159087638283018938819162855444908537546047129083792292184038690308075630575780311266834226942082677618063628324742800014088100410292488615780855058993563637243261908292821200940611551504198200802228116257575003657660389727762313782996709644782682005379750721272724661162637277337033369920624024213068950441918570762012407460761004751459947364387603221934497126083771945896265476976559433539716414749700071816072947289650671637252632848733841862725051440025686218025197601969463162906165610414466859310221406804065509207021747837811824605318162019870210460125909661738621405044378401551410879645662707421013260420000952233078945945638861880984610742801306507121435770901094425508959124353468962104279682045960354976369909550096359249521644618201646593903498716322568769455675597048601243623253997344475474195601617387394142573546634653970647985559398671953025672473897987572945879294317580500014822095210169394259134974148533433289720521693483812625650922767461013075358409303340862303262094140311054070650904747834476024863893240889505904301369130898823655062791201080939064793945653878975325463709715859505570188902106598191410399681191925365038352993852961955337210871358337133517357177242399857099542335307215703269010054292408441565092369634082141862261680179616135488429238954500113519312614212614999463849511037170375389919883121757887646357068530523071291728109035631600668303227936678251654292147444495382029629713844117712895531897408157199687068690681033024473076918184150762860239350201878133843131382902422846674210732752158388262124826337275108174264095842385265057622733794947320517730931988871399195515468517335937760623826532640692677118762134910746176704731920992869283541077148151168739887741200441830817649577658386073450061240413115484017554012739146165390505266509011859956471796831059354898521985006493154949275306969062798685220537691383277241948579141285702029123406635967513353507988988931868585213377696944577594993707652232179817769743120658593863653248059061350497451349342612047083617771277973779726995294486165883567664447785842951783032058582167115321253636387924327519992267882642630900993653664931952118440136677062780175095763688200329105113903716240814726934031413637449590426673201819540081767924877301544272833143436205184371889778758696629404601128208834569803849129261015586310505826024069142262891568334813637455342967665609324861100455816090960868704528400740682140939599658448405514220008114153040244754116725169835186850399225511025490753906312496058522529420391728948380904541621478774188908250970542802042679738808083900097838768142806912474051819320535883768212270733524252667621551324116101606580901720810318168094087742530306420823228176067248317718179944046522849147800608910295712517854490934586360454634887870347249329058069335953577185767717301755059196828755083390310866401887251772032056149835494233953643946892543593413789954804232980506374587856896335555615768458923988262947233622285631161525729632324191078073864719017418280946954340675638829135694486459090568496668078335422822909714687861282155081626758289468470156840098373209720052380772015610118828762533544842544069023986855677929546374140893170023915767719295894435834572783874718254593563390174736249609025062134876137309821317340843709518129847381610416103798018151856716248223005044737461307196324947087852863620492923580224965805356077600645816724976094989927255170740052600985392145151459402714544545544052660283251850596806063112641418778038432924824252042135561144312122005613941947808824809606620570585749274965151259574050001668701521773034655197610214665337189983463570907530121359469658946795546659613208409857502514798765662467028036591275983386050226501015870787595152596340466846985895481885123866087323545925805884294295554162675346551509884116106020626383117908607066723857285400418910488853854701840193486307582010738527962996379966754681119179580138617982182736915706177092160500796377631063596698015462411135163281886040307526643518932303869729881551547933703462919546158374228583955982102905127340335082207757156329356633696159276149942889257471848937873617237692379691413516082218434712183693509952625619499825619765971050302626018372661028244695445071806654527435682463107523080805782520767047793728178408094565310527860003420504683013173822409495916216030980923877290462187562498093765138282397983096885046716791149909379329656333802446112477311837544030018176968925386546572412189833649418216156732961904932210460903206534715703295718248851395922521397808808419875670326890657726947825959726394096777438748032777260246009510651752084173624907670797489974235385357193468972710811070304771481390783395721612313409588712449906646951576400841242362372603434965242045057236222149377159566280603886350443642927541920827457129698428248113225400729930945453513575355799126977201182396070787915814562706729779144186039296717222008703787668055337507855408309423305952541652078439107748365531216936675366256387848916164103168555204484490929541018455748303113037568303097907695240586192953788184372370322345508512977458562853926337902313929052751383312834229147376755879003330259335777133060348512452509036205202714096143933629456032353913814664169221055513273813534991294373185184784666652733914914830936456151259737448237837028037815263064750922491176046483184189597818018508992859503157863029305366889420965539710665732674499448974049937985565185501636068398967070830999219128211023806160991085889716694917399441227088484015522827015266608261215172410821075750781118435369551728563631047916243075015147479698131793730401279986275481526496902770186440243324258315356940135628011687948971700295257895801068871216086255923462081033265402658115872730060808005272665041544896643317694757237429424856302035969057274226595187837471667590209207784741746357794444980302197937282849191234777401955970206269325519600081881135420160611203948064654657188817100732924555094671318500820070621434161686733390501485134425003110398725716278861454533414082161508032630490870644955491208994185820427989973788243813446603948028735976570321336978172416349959321954107726065300744497148336038261614012983041305036710062251799626954601165935819395916672429884412723948062514735904941212908203825805577899972113510264318160111429159870950561076575571728000001512663730973592045815837944700344053521184688224586690797850161893968252249310945074254973380485920263149646215172647303689694241336995283757063725212212586210667705407017550597166900516703908447511089485680542470826882838546615837626503523953120536739824527272860584296132698981841980449593622480606944503156334034523025706992406361263937274716418445310665138542918416959635387259153114613231567594412210469837313645395015535237725223115191154049591583260455564769325430360240340534561923585634530300855423111708664893768403908236271479209380365466814187005335830573576899053769531462745460581459540772669356498745503260859259455955414672186956824621576017887389306637315175755678485322997595105908167848738271768055449808117749329621262006682091648206936125209592777108384197157626729927540585121215713757159807607669786919215936741834497740672368241638244818981745995334983177125386790708276180628235884153352681689983864140721375858801328165744514998485866532051076727721852564302200625874243125910637929384098824301168930368241881607593505228645361316904057234057406041822399746347311868649023486382248434473060180996709900536052158492613469053865204889205065963822552522492308826696793004561363331514083141395181145215476982589743734873090884324695504847061498730720568608064582510009340167037437020727512087710567709771404502512947798192953342894518892880108120618717626307489886803518159633901362416801405934410244546001394487500394667753709315567981019076346961506792138592706757667522878297392741023101065650136353829132454479495780220804730235373181801766618730659080541273336924803418264589628400146371481542382659176775771744637968252132598440227416076782306183793755544674222405780713647441140509071958456177584090681091267809613638103819245321678973658224396229066297139431375275287904252122706337005361021738017821673447771456195159440966691078847372688679567873631086617016719594436115726284114584334408789450427513728762577238243928709283572525922220321339340898662915723294461808963235268725862287884890710893431982208002080795302248496642145136971770229182477197395185327497441935393205674212988765936809781865516742778941275623527996277017507059089618250806659915172725420167708255121477754990939236039856073014056396375955710521036732682168127351793623607226200693110668863943495953938196259412235963818455878521796582525153111567003721359054660763926901069047890250559808662352494242274787765032276284049448686121400329412228147447571232828252262460675717133244712423191360896053091173795056278581156329320778519168205872510441190283750906449155063724433297493563121729505652754677202481792276399611140213631702004017184683924391127471524802536371097443771634386056778112604299955166869716640546094296647088341881647573183450532083600183554923758888449320975656285985278990244116278805295691849828173316697217675514809681109758140404439979773992096842468489778911797523347144133364510894385675760933440117019111367084290793671865925111241949676440633635362901292109253026550497634161084191400674520926804714906088702126206079277699176496196931134524271942789229623081383816487486744093905403503335431842212672543566326669425970376200394694271730244387164002024138286877797833297093939228168476025446169755260484713146983891603116766374607779046979878843873259506365079563987914341467658255802173990847259672019319401316575935331693766516983579711171328376919444146815202269723035528500230744547099310923322362216140215573516378358961816638597532287368210209711809109961078887632377804267130165884014709122893214198855514530700525923817047793343912632090307650520110746837341281093837333024967194826611107518022750022288561452366810145814211648544281120479095127525187723992726697224608069256929567260959550400977122594035313853724727255050160072037075866275731989954177882282292996414883555489270088362035345223006931953717501788145300433599928220865878669782143587846791834094780872932715113847072504367352922889241750027807075126290413353880774024970275894390738219599540503836201001192224031721445660316221603940766293709311317259325910622074764658671812856382210776111110449223131176788278742259987425652832824108185716312741679835399052869904471601940839783551225756933856765773905953807552813204111527695383536446914264644189584361638388221678599667008724921259155401789636071061072064431997323313126939524952229483275492777384815045018946796245634452809871233419106242250329830359908830273142408564949164439828546365536329286377209439957845517734267556165822368164835681100964962645319094431105283306251847344057994885033907135240099140490999376888286159161581868331730746443835720916398315347968769997889211111873675543959832725302851273749322710562491298608985504713971005845157815665772443304283788141030197148624302387802806132623802266898620901819808916046851995227335369810740393359813915715464767484048185118070719320688965342586050862689646883159952829435205875540656699517662054586512067727506634048818385153104302944179141868743041224580656297409085200998781602596019439608550007394106877614245878169851412788874201803326288718019753646377561581296436166318944691831631657706777224821277390423171019453034680087247976097593758780013161272480331795466490441926366733414203360537884474910581669798076056593393699186854097818963809670705400647656712377131467382100435474982997469339215123391645480219516699605482589961092109704401197686179918250351637061112676101309022786702516869923700936842675241220380487571328032928009982727274792694700026264877654008095162487991729019136603015506112948425684038410373713164789739811426771002578057655941471359765217871162538468922456204657562191350240241722517540193158219947108419717342227452782464712863597376704195384215461420331241557491076336714898623132051857624789278668204868724333841364128197529519252783678398397010044437667204758219962593677681468508048052152515409555966134445459180620828912389583074297988225226604401925640919211136941046828735586447280587940549775281486078208266287644966257543778214329162961736728498104632034101262252620490464198111872954422808377362879256957361627057672209601831576521880590151375619452389677167635054373239622764822935011293099991097759465248918572158846896361777200885417537402360036726516071525983102671228152380590731475209094768749538634031463215944200602383535052430791755782500234202596539553772471566647787671999906472944936373963658696088825944263632529183895564556567491593131487189482303316667224434293594671912629622728587090252656754280452850463704632772328542013790765490161442577545365079046425567946387368223161296929901023978980459651266511144924095089001332031783661474684343102085655318580551171281925538092435655665952072144199789787662928942027931959859841878765492042767113016555409080767053023214943426163361070750525174847131000711211719780810063568349673083022944518476173693584773057409497337609742677726153622840234713123252284630254066328963416384230404533982715524456602327394278827183848743691471105640148371257875113309006887558133256745426688687801963334467370874286786479856061687567561251724246866800450800063991660352855099808087402665079072119995433527341952447642601732153371354886208878129055963561650545561350380999663484980328067678474840289518504235068596052827524313632454809576928705374064251432318770493804524894193841119243390362517904419574893031894751337598514627486975674400473633798376802342873733631520586948039428213076374108789240191691013742953460608703810818279894247237836191797431193516494557634589342802680994049415588643095341109888530329951436286791970305856610971058170595317721906701326024150298812439334874680413802438969578228006664759292191771285175353290653558552446290965632921827112984363780124891958282264531350003738539686463429773206027812004531010216927294732586024857181121718371298973020843992393232493727949304826947099106624578591712098242834761216776019404973178316567373471115109227262419966173623021429892223512194965511655673278024090869146806121985473817831201645790892970556467201329684133867538040140034675541513100672441370729337236370999584694965048246143041364051412896576255134397806807566648609884393398878194224723044518712009419885950304552559711112741770363726045296909501144903702209797051437982903106894219351162387555710239302696702194247923821173200433201464867099789249838692471474781241983766229669364411121476228757147139212512985739705210533826262669216751965442995953648571543423049162701508096827078738206994467173596310369032370288425710536073022879704815867518986519836188223649054441726020629996684139288121593940463576919743800491504225637672126363679814460256524585622098684230120361131737755385236682236280984111090060503803210674917170751837572671554210343170989390753504238508582326866983158975649749486443641880188984236847967550107682746928968021066857900996067293098207199264553566912622724553298726565468688923553948218341847793306674853618654976867550838916921454140309505392352969765305816262207447524757679822258754631682918315793342277780791071894090359453602424280641914655743214862172810523380425614291551944168045574521423337012637446410425752584450144235144613015731137137852768346744086422703488898871886008077860762700467952363965629311692645119183809280919053707249227064792590151116979007249831267000339911853497848233331951415785232182869651089839174998332545601647199924644361723491912562011741356041756251702882601686349384467347128936498292469754963190653801215889705711064251573818811339741966406209453605019077531114336641282348384609140408602652173742076871487128075756452934681947889648715999438102704225681031378384785029777507141263099602630561743077497442605735965226390654454308778428322405624971742240546708186575747249577097841028097498548971472369391599024052971068071876109392214224281746000541292612221404844090607828749373145504256817006532194793934086169446143665672243661707617323493158538567447984463943829344300727536400675488269570954088050930059756438411032312663813256241470008844071492357210905351702646498636977766829468175970903474820898499887803256177583140284627897760987474029452607383398206971337720282627382202169595190853452497069431719210733549639197142980393518151277503898219434697536903334410080274772292747289014701548880175621463087319461840366450859742913867070641261057484663140299479564000512997161726625606399460637422186125388764863128189915108175250083431594876042895196407539828819071172692723498891274499943898031445725427400085441407959488794614014205109678023872254475615820536114621623460680569207097828452549243352193030399329172959769204019406996773596485029550427004774531189109497222904195797346920192290865115894577252743066045048469344900249256832886023986741756463443683688324691314411835575936548060783592507763554562196119421500912112583000741264547149577411886678819636286225543065160893682705032754501213546548756404619578642162476938556183694078204118911669810031431685231539856952470031939971750827648602645538419758913923548482404151301983398089025613130133713620779657687091007858235248098964431579232364309759712695427603395563372036704950599981624129798631244683587683462169225720529710123653124475651499555413442895051406289664598568292168222335125274847367928519999963836658043694923283782021073748485320307209364517047062627450060343151845230127532045493465399286552863318434031782549074262623591755296688864042670957447548625872611983029545643303623244727204535253253287573280527719495228572390222554620924698191902784233796471011623123209505982275573998061431398099710360806766091005817738150477829062003915122018218791138459354916214361807935960083487592606086816672163491905047544706341755372315577536242537607070968652036917335021669286037156380634839223809643803177325488236340526905625224694919453733399203053464263992554832234715356443792045716852731132184726943810623299377814172430687138192222456234458067101212211819022846592711365725504741470899077431206333030960056840820356470084232864051551835229820971365548610854408956935525270980899568122331549583812729159141826077535963684577908920736170065584730280412827141836833594713641132204839142331798769883237176986402197452051724799816719707124235906184049357469971061146561902925593874392440833263861269821571629463142099973153495233324009312380796358787541068821176852685398065196985993440068169710031499172891974931142835472310314473264271180002827451806977800129508708025877266958120765597707764807520301731068104844073332880415732998005105548007075935094317797118261185302118683890492184869963202314351012364096482648823966995442102593258616940026283454870736241701580357191123262734964992863440332788825709685801845753384036370035588398654468806759789819741809282365818094483485823018904436237440443895230274624555054586542062241788553786438776889325404873708793332080970146478866498605025406178386353620179527440336670574125208390330527478133579612881952724266788296946899344834938898028256972653138848442021598849279990508868213206397837260850065076478501470108318235633547334350372820439792548621026680637477297062254249650971299478746701507196867877012252678040379554793915373690773764816222458450776071254155953023720441887659095579513246600923140844630973449235266936155923579873102066473102567393447665539334279606556720545203316191783543621299278152765637380328142869614128190525733446172908534831815830554716900475563384370987202332804869172601093527714446535649845717344713016811495795377373519615903563026746324418321813505397596346318420806283241501003965933707642374482327161600153430542039994111344847649412381477076988678405054712939082276638238482848395508362793617991452642381426159965185321632992281912028290209097337016494453223255950236010874337876056706436440501341043913264460297179123953144782264873328191125633528600150391162290977301433040977277201030181775769238474011981259387531914368991836225040125827462043435950415613655433578746214840676084067292502044983549610270795691927638258521434627669316834434833243649460571018643484511110919682019845655231598573325657984265111370550699646835647325636655221726764119365176685509362595479543665914869653691699245856002124531463701835120748001216351998766498629647185536463559485647737408251739918142447291591197392010699504504505400228303502602605420017266538874735054206584102760496429198419591810176131250369086670063236175903669809606138158298421455489119399374116500754563083971484540563444518572782321130485971398793053959234543246857283582428406661157434358220235137385394156231575192512703103733867992557614365004755044078151485568651035394685387516400479895736739144501034381119801129299595507932577775726224159066878066013440323378825300842590376715544413047633388808421404682853673711832285284773483207898012611174072344351080683005824417783947731228063006802221171114247493000124666494405985984790302457391773522401999050842290442817543196720015261841564890429987221402953621152174366300292376230492736650645376770303011631018186063704151477490852021190127610797226041179929243410001150753504903271376969215640239764538924677836870781777124499922386158368748927454437178393487446935383016777088043425797594336605032399417282804961187001793249740330117690029940279848158536388170224797768701226754704782422901715019824679178750588594404828815804974544611241552193702724216822695748300066731375549361340064488174677113608716554379619787267323173983340189648498801345570226850357842283648990991910334794818562613345920610144531946545215065072535609930381406942656834871383776566933537286143182053169995539908390701296588576126905351585102706437431993448019195576224686576226984007553715889201561773935143050339002339091499352826602258267543855371840693030036655185617780811194114697006546483150808605520439990708494153421331735788364578759639491447098800348576040391133848930118394201963574732434586014292520671467979107020792625104704494542718604858037959709246689816975490865015996147657866675740922817487130493815140742051633648915168033550792001789737614991393195883547991214799700422979359387933164327100696532794603812593672180884381482926797831984741930666779984493505570622803317048464203399482111863667353424376728601302541559368195453540798127854648933451763328657975577226302534045992295863547515771863056663767613577041778083484949338626071300114910420038972418259213420229529665229510632563394955632450775640363055987977557633106115559894930321196795115193571258716320455043009946014983159777296031930854329215265741863573999144776831542029126013288477104317838187582819616195864219645329526014028793033117477943619705214173596171139839218933167427390303378224371931650684715384442526554040883592627744841573803319868620612830879210507529006966232249492300182260751098319560629594620359101473413587933465793135169351166375935807827282749557205680969534955569782990458334040589190184280285589312693850612051052038992889881210061047552523583840620523150296909002344254896245556851949118116212031008995845366660689041610243129822940599909072030536195764503476804237910628208606545647888395435000517960534582139460230911120708266165462078003085550065562344750381418605533639000962030470534663851927713554268630338058339605101551700919678052322008537758281998646102383331527754657217703360544690074263434429148486026948096686905549520188405912902993116706081042075425721072811949794228808654027712746221626819458857092069720624765518967047288041061333157357343198198271062210620115689092687556694560087703309955439001816221471376344493182068476568684221819385086175020113990688314050166756884921110294367645654444702549352754389877949020935335124121829104130320833789395905513599118207467513458165365981394651482591273583899568208374476184620136857090508090860513278778218711977576920083311968175632446998878949822368335886216201521209963970753807126739965226313719615145345078431245250795431047568279991157911557195836021468191671170205357903076315474758781927297930765635596148756010476949867458676918751825833898965999599025737572996150042588959659352671210393816008857895527305240426671343861748399262544180454847946981021066823786428871842188736543976841358299514410688619004046989104211546547999980164261999848795331990947230587775763441766591530095696442784821183425079659866977544308820829134498049559378455122081177870172684358535413690066183813533875176223844133614200791893430498470407341714625502164591646185943723996378197598731279934890363012264673448667723261102215193669680734062477948490751971194873075814436368004287315346027355034250119593354628924772273824557421408803783257093662712936633162918438504141075345554184187919640189234503291137646912071396625734478437766074225667658387348853695725697831096780135736288845909446745142423866302047226089126123053223929684646019857593308532394795704667350076039785579139276745592979910005433053384511285597738270102600833638828183966654293905068142772938535401994686078379232869170615324356966012257319649239832456588283517932747568868832686372495161437188537804566731835203112726278933710210627782866435849383701027660475840138042313473340104121677680100448861693894525483361563199968709502326072546338561384216772615343098638501264646062229767681296738556032673720103318505501721569860873612445639055551392693024995805439315117789972847681415431051282926676420000504746604745838346588680670160244686307938151063049413968668241520711675289928169786619861957916516746656019667360960484424732139231728622953558108965390067183636095076513410603756786175761154898111429778621847224248125587025850615372204411264731764969411332541940906896667230003635608529432009309150977217155750292244337125765516527825111646761373985976377824299680492235689028385439893437303585028864505854857938652495267597872300503483993208580577494549166544541240299377688700175917336182814544614914520766058696767910578868696660206408662545127616648386307631642794903155390717767353848322066214778537734871216525614246933350472904763339698509723868051457638058589771244097259409840726832188186980479069483497832494495343360065454417100292974904810402273958734193694618983125576835431931018132160530621996235769468252652382708364700459428547501173004865078579745714800120198529728219077831764290719732597401366433390860201070526201191840235945811273412003105678279470699639959395504843096829688878778207974895946925773856247959740723745784501778210972189053740305348174244535460140604696542600668899500803046900487674254183728341607867921794816004290864951577270639449374886254819781043308475863242046078781950233183253204348482038369009097726362309897229952595756315662084367509070371052734723134604941087959910230143293889995336160401433176003674663825607263615061724853984609173539496776132017505968922275127669503871372246277481532060526564244605498579992353238286449019888244031941152144627960223605577944422198965935007680422028272487798185876661053432338701879658545293596892282057056879836300595810978449034781898400924263285273339451519230768999382088928532821041753627184382024448890926665961295976250268436305913047989618045207841865658133490619896210045546840598845142604740688347654389206544222724018921450621772526123002114718247354743068990006796349367462725262065180898125686768898673162463137049959748003992448240804628886451976113397980806983786154789174928562733108760443175543672868037809869832776940289144530503619702694746591323190137707115114014666650974307571519055463752591915118867417598332498035775103270953222704276477702700923326980283066747016053086403863879379296783652024477304842891717477800820498493170162785716834333273693024575012937605463387718227473099773017868162067787545857105556818754040559970512227534323949783411590554601973962234413883331725173427874111566426034394035186237367642961732202166771607227922512456625288888064820915536672966355972591984606559352483735907445338883295914590498510737948247018722781627506706909371294721141041620964414897749613421882830019132869249710435291052731493684686049698045409403990368878789284256970712121414138679726908403039277333861345953192758688844104500584786100537437808196267020293113292841566640999828477877046684130520219731069760909428206527274574528715715897712013746263143197339110273273579717907903036564862849688970640766153566474305941715415843581538905227153795597626032232878713724986127987169672852148970890286821482334932082901631568610004433627873700572521185018993059812147435817060207412242603011010757668481168824083188053190068718038778528619950330991062077342665090611064546828899231622344479627848156021121680151178866766611138827658307379799272483013056361819393605153733530721429873942375355810532840329473281996040768573564706406650445703918017571765181660365036806296802281875735171057834908098950574477723094552261378775117366077676731459364424664424548055069919171213411083386031434939307870941415902203067358777222861954635943495398282160974179511733510414601360092888240959307593346712003448553986146050663623248392429075199629636191778260344649655599520335468249939043101266262882666043641184844167635107849597962024216851975379360526931006489560283107724935787293401464305226727161356475472989761060386666184929624869508355391550930022090372150481972355030118913863433514110336326939578407278467536127040954840159117217959636081823380021431325427511055531640155584700891062128166680296883842051260383026108804846559905831691155784359366351555802043691641676611390828196318355323588512729603613199731725039586558650143518053956831727656309077264364702344459563587966426831392897182906059355653509092168360915294138676624987108688947422998300799988401390714608971784901552251040155144563339868608943547885572434892809531259528861636710267447274414334994156604338665642137988272529121936690550270439649959362933051121890651932094145184535514209103298487431645286224446721266441912592236250982727401799228325543394473376974794347527054830452920575962254967431845130195622361713167990656669271050980512683811404805206952890181474257281959180354171762777783830362046804995770012200654403729101783029574802940744009699250121652020455967302306847381086501630226397207087347558345405794663060104056662213787692341739878228335514008432181947160397581904090743573848540208692552294877436149677798479799804748701468329523509481585899824152012618184908406185411607119065509892122105993311741843963208564711534299356795200258798352449196928606379249500102279009689212833473607964393813512219052773163029332746664980247429409274257750763892461464176048425460644434062777055113369259849939310463875129122845350053711084960202949570371459842400331757883164315485640988693518229107347198063465357710937732192350319387453521311596649431730913580106619167489676360805150444108969351354642523681643628775517291750105838456923808624305014867231984155049187481433843070235367610905789229538241287027644195563481387730702505326761912540564637802411608689885236705988006949900878592795317505823915298421966410033551302808728210932352701249091168496407970294986681287095189673652760026037800962768800612967136726967888227308681198167504685240740979581644995051811095058732459206659702325071994715505341576968555369242264194383905566965874786499582297676822911062528586573313404516234134902260791864042203217140543272578260088973995515764317901900604689820339529225929501702930882998098472663101464103851366932494865489857799028028479283324280861031542715352959252678279993745666261905131819596135193485116264388984503105877794292623759205200852725712942685319466814074311851662803293221498730398760848518788395295274216510465961004762607112061558090551423824538359609924359141575680862163756194039071043759561794431192603530676499702970970159794483973095340944283699584897520077546243496837452036190328388088213541164415346249090237540167067809341275944845372096311808819828184164208603142234464191082081740426919028393950302963756949676688720119015375196563825537010811938318407681311090097741412698246457787482445866617941852864600335165921240690538623384286623840822738491137468115237686189212879850240108984899071456960007006237873927222326813057717008930054203635603597818000599697464281477578474714565700110656168031339576348032951163314818188340484987252785219345576950916757549913958624201068662202995946330556130087310986940971584294332643281356892417749820294145382126337452471785704751163517079997241255082729405032136884348370494192144057424784969193912674965857885496653328482796538324845107226752268956755860258784363145928625184381036280587559764079689764224963420989000106234936262206477315605979375757902197770724238189305782027095988917929749630477224246593456535532423264496663470701689539486472168686694137007226083249446596520250058120900651794345604450830996586176353068768190304312584595550052362978808607829202864646694977740377161131032085119192072392761829935875598455363974993937786757394415400112893440673075448709868530669215624845719156017328893652897924727890416279566824857846149814756141069067080975424185461055842964082152819251808700984047284065810792627433752358219627969751452063578715519404523429839901533319546777673695719605666492768343064175414461143801425033121749086575685502863918904659070917980411728594524483505956023750963249267727625126137951178934393171946386898592768027430069204093441946873174418317692008063716857589653896250982053047309144226394498137074630530173664313656122946357421369593353509729286031658685846114164932702573053465593611528223588845073971243348068886936875809229522987427089660224019605069735306114876857401049175793116643732398381612318103921972797023395517074404948443120235955234258668183707780466614629766816826640514631583628639495887887155499032197322176902072220240260949536004273769896584092463894846594959776706377921189157333981622282168243140089229665183873128645011643606555677413923436149246853841003348233049681979507486204090630425922673964864741099422996084034343676286475999476093513059241198277023026589955928111861232177471192960846926071930620146248906240028414075491801131162636200206221014529339046500365258997407452733440188117093462616280555622904819990467151217244568601741004129480041169181750033249053060711581437134237526586598734295649578220738295760574633596933422385127404000220032006005153199019095269067841925254941541747935774611613656057018379382335059289920839360694227092382223619880468659399523055066822027066774102040778584101914785181767141583470860928366566448760604061246912255435062390828250076880920255112812254302218352800016723927329583861533177608914985393071193093651324437367234039503271180671321621309146050955899080988864464356058857453580867061584855154970972260666477360932548117519419868663167750927464730166987873310618221377112228840891335518374455655967914097082647621444127472256228365348291111670328122775569603120156895656316299099989440619098571341851839905167420426286465794416280969636295826738984349038153064437999169296611776728578258511910518149326638667131264210469166092559782970935700583017607912091333290537601988477869997762014381725492560463403515692127607222005928903474702821996612706915393937429198963062653190950978580465897291457833934838419570215683020743303729217455863875084109344156025535140222128294121153103652371785591824555356303505255881441057775517463052568054362619342942550859595579057345747781875417231536402499751905822264736192167229874681412538607236457610198713340328359552655785704063450217009369478349506703947016572040397698253932751645344878114035722788571363516471888425422359802022592958519545536462850884645805339383464879585462711098807725635200191782059052519810786037191789561473039362686318814151412021697186953738506954718863439747717204787675128233572172330354892547618525450267226777680648326275162791431605344372825441263587801141333250906594938598229198538498018905433378300341350203226497829201280217044983711966131829400695561478366774669842447879589739729483461732314764204620392800468933771340453829869101421420087669250961671127722611939111517507470698697591737924562624614432735015488908303988849004390063285325426143508872793050002107567179381621068747441849029766212197619237161282930598611904789020653144588610232230742194647274889334679793785564181332161875419051717412642764006025002159650031956554663820004574284594652272020542352391943628820682889627234889820918259647548748753614650566554606982673268992106880525209689515592074994149920363132858617011751998760600064693227766603397326197317247065975028978194498440709672016394155791533138608282270621896981695690127415285054566246148248521822380438779605462295139858519974415427743108238427802043519641555017347960613785827518149783744358987651324473045140565918425793177078539744386392202470720530992597113028950789370212071358408701614827008994864133421740066716477397342044580853899028814083368430965020023293862306035574850553171818236797249224404623390603766397812746227513360893193649599064474393618167627902693993333582661046054326218733399477988041176766148607208901271971989372705968380671290374026330532924380604103638360625986734118915674706694264852002359102743032865801413035340409580119668393097704341919403054434340567952480974089085585396914275111628360481439434012436833654707360158374536013050970263952786297412839844202576724703381128606387978762210723417278938835384491154915615335839178447527426637059280700620359344255590297732811957359691533157340416769829496518007610754896457481349082009526852724657704695251780412724305774935849154909337812360309081558030455265022495338528083380120106855386404902605219126751670489754268608537281831666240410275491528370338398745744416350482742291754124794105127744979904036115579831567455306031649796503049554724246055854253308477983426359564864816268829817320475794655616233528617960521102877848962549417982682908709387388176766117276298364296938321868176364427244010117359421923371205560836997337020735883385136373688110414393438441558094755640837952763157792205979091228932730886766226942270758391241436693678256456723062680970770960425971277940591893966632942396988236890588990205602051466022791469905501480115934501933655743366846586760278543015646687663712649343189469054659394345954302599810640877778837348992587202090400501869818424114897581405770486947789939746393496986188794224990883282660429083435510397047036532546589360966102732575259083212012386470927365956797661295286528414918014905613660763056956605407708543047843957392998623967094338642919862226573657071447159860750805608683132468383906833077729666240854504800018928164528949702185272910222209051453890830934579757186906659103953991883717335663361208980861235643940056214160142458850597502457698016294525446400999366984480660527566054246620947909783464770781819600998980772925537420172503970695287754448157136909875276290510014163405564152079053048490726492634825299471347838225142909430065251289730830354809028399344547094922948066660665944096941272851521374744538848034954068968870745091883099842712242390926270721413999231018067949885423540831252290906274007579332071953393271377804786402513624832369526471778069197990060803123204190827753270586644976642478466606174903046207487964530507209867087276778890929099417753907582280729877955608413291586127283470517172491775684898535248769774158313304027700409453881801990809580491772517573061728721603040174283293785752363306824376384393071057704460725828513501980214619785650846202474514460969177123870188809356667282543595066897956080897957415344378570596364191484609977945775881177674425844629819802170732544624976237121456749945440564454366085648983055888749292496605253524088088214446439076888014692905573609185697225961904078208926348928432256007679983565716332769326867209766717788776920597856867282442318082678813495639321383357645455960421864369644482389756975741215801444444678873093498025815087377517474990812266657861314012084462834107500582916662220773413700977719625690033605661624258618650643045450679745092466718972070061419077631423297994882214001100400704428314047015294580750331346687899932956837852639704788004345939419936122023168163831802461611865688079882949433952113024898085961624003745935210607934445252824414420921855880741364845959616043458249698549877803518764396250486630288665726202010556911192321151146623034211888215941818999451189385328415160968770062270721895893727052612313323263802752386545878762252755151146530562214987292893038641395912301159565569742330983609638907740447770175352102062806775147107877204944721724905599596841527208844236008188743976482638592570564753263282985983963605712046196934438348440882460762248216644536554103262902333566776379805303461004215010066770515520795765125971340551456000380116910642757994487865393524823055744357142627310745822726395141824501495980777776248628460017246732628993196162707660968162651055593446485210305582956695703866120027650531824387875728836775339855734708773181683354745859235664978623323593587823136747778032364722257477825410622498832788661393219466522675168861943441133442748921351427229407257320191455806291005888915796214023855620468102199291502922490350951458241418737499820408313798227636096505248689672600545832823332220203900215205307206880952908556988922047558150082138497930098008872582392811245037515520771453994572691692418520661827128470516006493315609673712287904246472779722400378008694872545161280988063992846130639097023850444289506199018830826668160978047668230977157213472061788463634125220840671230420475282917686151897103426690567292438059701576931778763083092132538319541570237961383957581360504512421701120929011832191597631603152344495633550540803988443528117269417395949323158301879472118806887133553991314596066563305321606716215224332893538541821946051007967900880575238233482101504770199364598312961803464276987335952611161875583193168342948518930401110328891566171251745859617600634408169140352961760340552362792593431517628357406770556709515974794236491808642949217133318846345590324150681153811313496365900938533017634542663970161761604113939411184638048676510627859201085461092268900973532484354070102754357445013113723689749779617305172016603792080445341444703100419450662948733038874881322355582628938556911581530284923939182106894580325894859487946589008751005817214147715756199677279967481315379608336742092619086188006800446154593823321759218775476243775925055681890177037761576441880289814618387520325799994091392182793347515983657309123507972315775110117920701461003957206064713346683957973644709297134351677702038300206372155983685808676644851750385161427324769889072674727934226510267815205264021150575362158432979265200533687959415853418525926134917277265018884160018203509674302264931657679285655474153372451974095083116766379946866697106822062188208665755687839501157270216847952261437686403983745009492398707241789638185098547604101074817261656153128592939188758828526027536019796240780097759154870493787398249608594402965147933510088920597110887864561707720523734916145523474234747889157073177900629412327473077904344807107046788461302733143948610584813761764074061536214709891115331953171039718228885668260181199796583750274581315558491775074984431213611393651123599462584905802383885725501559872875917381176671579296231950234708799520088270923851338634679438804876418561001214160796167707258058840575483581399393272723153951953816898034106619892674218653784620828001252216408447957203191106656644970172173180016514434865492457934298334444675754616897319623343041643971059861899389775868337817737019214887101253314558239917219769733715145458777858695243444276417775995774239439554624460496781342688007787346268537407971829385764410331835059167411678140522404410146065168300038542439771184967413033848943160528458510033569334938873226429809190401076090197281723103899530116715376507084687803236428543008015518904469511502541316033820835762352964937267076416675995278716173299849791484959841840671265391996359249804019902226771180114766379604126696822395544501512209310428513637946487480731455281217341414151127196879550115668810167817855359375742481040371306186923473462435922452657589300064218475347891553199231428173787423083202694246998819766498405378596143073294496042783245410067046211140611924080981216763618463127173399003261087077828890991429863084599012475869673514489126419040268732235654363846851833229692761926928639662461504418259293790019467518031989923676810683984399832912539383422930122146847965430302460868912572070821727221487359653918959560393729163353872500439584459666444302147713451218324149375741343142051653665528615345052672608066995897455783913744178112896563698499014947653855601099158580677845949952894351501188264028408578114326955785041651535713763704280892336880498755251029077690898581329871961933266698655508071177596359040141473861416596169601544153965919089541937467484560446597056922425165890440941929984245979663411647712648930225460783550427456887206047046864137977645983978335050926201788714805420048098267706435528680390935538594340316083047969723280797841387784588683269886354601650950775510579281542763264042002359791215784464293750579640071748855560006507499729190795296274015066241256260413880218970203665166128082662888745592367170159874669266354340986419809411849740454855510300846315883147887312826825031744947607739915827853499228831513673477568490381536841794391713905218646282885561726155757385273364705962740982805528979111673680253171772306064632314200016694957520168148589674119200835827359179304964583753097370137828841044693162912116630707426055463477309532030654998044869187200598297183391083759067111700010018801196348407444279409546352478894621679379657601089156277555005656227593834543336573391581206619982941797589268436079464529100454379160992268201852484363017617888978301856007073687173657382753616654691033845890610097943436221336971058921296441835994058049768509271869093284073841827973573711329344345903552354543256962592142089472088148581150709784553568947042201608630243728821962290166540285735328537253764258248864168792387712975779154370619353372109442798789197587439676783119183047079999701561385510121417993579579929135869244579778892457273004195542654447999679856377735315093419624145223117801624695518887796491963595218656906069115149977244733361910126505315117886046879125789481703780411546283034877458701676521254216524898409878500073594895856319199586770843759886471853314290786381313110319360761244899790835392144297977814870404991890643774572213977723374509836495290094580359530281681724826892721200892596954588237928009694286600640431286611065128510360818439534676812227707641582655141610726812563625840525660888465037654736232842839423307024802453115646469283301006938228541593497894658069399161387623794083842289783331678196924222982496474503480815319901308884237280546564103363145735935199887270950819167558064998214415253463175940275630625500471707127956361248697961560477836971895204112874428901034104088384170117716905828850425135171356067418169600297094924618951615429368768410653907378055452827695331209781389465254926310632947526555269436897097696446663698891610739254821924734641260209184872945937133002491889463914265973943026745779464018374009446214419169116893823567744556012051116705618700017674816054824531074507010020078296144723530016804643040405531122494061208535863170867309514928391119399176402581693584196693485710114153056124216473960712203554718703896275685744901808932219959233365373293389138287815823634126103979753838782332751987977758446338664700872507533345707429201686420970380201686276713122537268653526263595023278066402394167179401438648882451014331929540154489767797600086528710055336607587466857534115759239685164516827901875462176159500382444047860791215804354262569738940086312820512964825321526071968528362235962531547851618602794126232880537622799191439191978306045630780935734801547703022027067639798299454095902625386396518644522034835022099364900285042129575915598867783859371963373762709457577460817232886843614934167741758001926956814667494315018766934036150249098288954057247115856567961401307383730248068670233833350238967156346755653913640748901017022067713247332126510919879230154581833053545769303348820778512131889420609768253085400297729222724935538826893837948529130364749512827339701584586278513741519074914876225773531685268908069345305743923405688890579789713108076218684767683414624967166007092876738735344005424088411183979843355662688095487527659782304353916336222712822090560646160834197873255002379064598562080116945796459962377061357239718259059338279413836767671416904629425189538483110866346847122850630304048402236282787464778236057617418290688782341105239673209394533863880646845510815491048920671904029372432712270891392483650119457769398797379567029935195087069188717791777881685705862874473969669159602206155209937935327947374059512342270289849849093409664521488227949763029469961012635475414765929040760178454244075210002638904939688100519275788732968390845917796103482927148020672822302882611152729490710642831030346400439185277468062885566073795712215356719917457772170045920511513434894605847303034291354177964206194310154144000706132490172601251758797550540475442992621760651421094218771805057861349037498064980929200468358225125687608367700276110317038883962696932526957668270091174215635586581499380422942803022498027212355964297223122155609881536188891838195768164907502693182270213837076867063288405646896753095202513117457784327729748918157425717140264565770241970435912135209167628656675454475609419658915331313518781333031437995133852993008677447533451216755190895329373329109518008592658506253576726263505338740403406030752845063965599109087959359790733382703467049256690154661661486440514354306164834880813024662903785344652702783688029250735178012498065286271650678998584036029515090566127182664728815065674512641775961679138065933081494559730869494193813044321499256839039700259546021377545386066638054566803168030285207707401145664039704870217188926088162606084529677039246320531825869869397877017027597785443746290011760258370225225209343053747420237321975640845069245322991472160990110897116688203456249673445402357235667518057505259205819184595784715388592484709642387639009332447877810808424601201510244040101590193822651503321546994352918518646899696409609885055769645056237957080799668555118529485858471618431576860866996122532144471807584602005802857387917651748036157297231063430560293795492617012778401826759983399056895370695066453680333115181723699634362072199161829126404568864635885609990982826040916793009041599788151703389749687660469577259994204351924786235600712587336072657515019239835273462805497863794419417574297924910960052257245873303930921940732601279460307948933458725606166335671998946194400531103673567758151126758622718515073459067062565103145779848773386518497834144628496020150411721931966607494127516926906763458636622711027238317402186467391550442161558414911479400122114569453635540957358273523067946633199429688996647228660423815991684745046384053159338536269618990336603708034782830195459639298023003639037826218679528291066423798177822686158691396321363118498562784523665450530373883269016878776770157446757238685511156400831639236197073046978966622910417154090270030259630984281712223685575722347117244732937670041710076123836538465643876228252724091495281094453529900042994088907936142544214557843476903925665232407858053020016761406255359250462679802680103606140264497503017687572013210664969198908398610851527480734700231500218319212003199364108449234882669403065857713691585264413592793191644221187076335388364140674423887597893845741430812318524384017999523900298283504720158093630387221944081363617691937638956918822444028424248408227043397911004229134537992109396299880794832284148410402717570448116344316197953687202881378670763012246811342967235580724131236597093703686277001731791344163492964915748166940617761413908311090380046916711382056963781145546938417291944471234119649493743352230896452492956414031324481643314788933143033963247587954908345194888013593061672719096089096729546532001709932010876739395227016660774799544528023842106232531697211976132024277197989996472011074360142203075599876318136630945862845700968540896085755505859541685926730177332236783081870368421458496374102586326270821884423111803749128358811166800112362409845201370611147330089289434898978969824196119552496181209879728161910567802201541661683544272966344006211412789090061232251231605506497946151747532125085814091714475501165271359038617259906482990226451694941688644838401631030969598576101944502345423832304155875805080453295782629189352820027337269381347385761893090646109914357052085752248825372277521985649784988315571106791646224121200938465958649881044159108693611729842359972518429654540890906318846850208397158892184578635653004420112000848761958435725932881454339402155130912171303790193159890776185317533655919001604983655564148471099880603446307655277179820209338662972072035201401080165083987656463812370257866435963072306540970911433769327370745103937853451116088582565955343589782609158920429914643038694578678011852746185126978123902573353407864410906835263818097396104588787088454282315228835789077944275738340139717960246820926773821333508418157991624939202227302820810314504242551902903394438521260143903872851739883918470119232652521573746449954253614416896071996715156527702855285510463571762361262755594045023019774268828402034125182324490599945471851305683287940430535042651660696076485314211885982923059601815370296787734270675889453041345895192865495043925092279518817880350185461516423596869518294017195286121466193122658407967032538100880158711262522468767461177346731224034667084430850864175923113354982648850258041313711835634549310677304385500913079632053210743433996794974326749892720430874067369613777031368408185050350694878599332085354147462230199375021755884255498582470031846844200619715045022511148658573125312597261759354809816154077116634781822406139463335476339172299694336584090736879724834449159807986112682445995473809286846713048458635791604013530929057160208733057708088446212896632882226726990183921168798143236777449794505924278946734526973498905839126582642897139946711049766483281201390688616488944128052156351410248504677335999741720714529942780961954515893627457533783589550090875042635938727869598982309767228104341191835999334737115579349824397763752223010152132756075782827757309389595694702166289832028828495845705073169863672134997016555493700224609016990179703545233610206257833038065467430474738944828115101500403857842092535831148885938997530062604324664702977693583656933219073113428912227342404057673785303637917751396814893126094297336879294226917957910706230632232151190502558908787938194116354711972697715383948584222327226362304048459021577338790767205005828122434690751718588027965495430323538923982962515921434567111910482449375041843273491838087555454534429177781992745031931463506748068135896892811115161463045409653036889208771084105218593155549326395331584879710732419093757658775869808015945889570331400456333609310317159968723930123080457216048724136030336864633491701749912080064968934506994431048533174386906568680132722552180339269385256273857184060828700804974520620944028972781612772592174146756861113422485583748979572426563154391785588587060988766559944104757289444729756229594591807457015611521122063755583753179643387053700153877587268679446463157335909985952903211577609990811849859030026867289224825106379770632704725238989661809902651986329274185528228411437406917656983122499859484568632447473895683449758963789981525128431051481593812654616547792998105526344025080247044304740328531761718941590692170925848638634149100539588799727838303465655439588406871781254683214531891076138723135412297082075148679693602426248769070493187417676961255159484777835236663432620007186433733913704226133800471064401469139495923674502738028448267873838216922342077309499522286566491168625587085999080068258178780131470232048444591153408051250345644283983629012403374435237011179130431619265278955383492618210781410606477813003303867974310577284593631887102124672652615586645767554768546987929375770777303692781842919546758367079997987981882013216910361086654206998038840553060539321837010561606660051146864803629563087851569713114254325745691731578920204415547854813148044667341195266674151087197419288218031310021985260499788975649123370879316959127893890539113463769328322901030604788020611902558650581626248344373989094544200073406650012269757151024433755829602960205760272870320227387479369183285714993310187213738760372116085986328709875107118143722055702609583864331335639792407484614208341848752484225759819475494044745844835900829482969933346326332407364396196066983148846427979546618785143972388226564038035449249133997556087579642386405033665379105910730177056770670163889734975966939312725033421782776653276207880465416814248721795087419921305757812457344575881488926990888995162641156331827997913064764672676900780469527573298784235608491482519878280959911682978915073181185875337213766455360989094170676910684986296992477985217000679967848329040811406068365352648722705902771175036214974386011248253867773524425990093037614515811064092218847939191528959445710700967491033093304982510294292149803549548928018122877532891324482001226286951131559449317793512966770408012958786219827417076820965941718858022522119334665421462318412695615900654322858731070689398595247699215312960070662671070656399255263006935169556973870994463382599184181851306703933145873370133267865672649813585607219687480493707152428809839725683963017952604410127969473675819208182215873229511929427581017180834396706966487848955975705010761149519189618295782283679368642462274640007676786824396491204032967997618633662370847432359530886275381702825464260171538006287574723258036173901946809674131075822943141925260168744975947891575705759520309946890139587991152966049540821893856043937890597034683506187090525050607327731286366480657308776369014879002758770308790997511735936432574921629090267010652445041670730240178957883058742846811524761327148963862081567535300419542121273919566379980828387076189410006407606480106793398104097503043265903132975773045789752354923006915394205244793793635378688482262470240415868371712324752823096365461185581794839842750426260954382828562363875736116166066774302599877100682780320514621083937267470448044915277788696344865949218674368789134414163558791544477758244375523591299920918436110798426533339405454561067020413747661522518173817670148853122704315496153786775960096648724205755398100956991006355447753840681687117357417728935910256096943681846062436485832880144908763357709370770963744307064575427315076439570343580542878050231299742411770892824855463389557077053383224987435621553690647328215795277236468128023811624022996519760589980375164956394344649459916928939280003137514888367621846666744324375212135702643722596405668362710705211797693352819209754169206478954385394151198404834461781083812889468893024881595832272097149053385850853152888102082865057120453185069482759002322913471810441346108365941030842923380407520356341991198682797321984698731293744158808555268052776508313310150635786714322001274983998010191720061298934685626811755681123178208726656946490080516068889905437807185910825466405586461439454313055982061275308010362323405596680416219217263510841233147031765349224268518020921775750171542008395978161456697180953953003362739104824427713944884037130225960208241022333259414454482632163969943287612285061820915469144183067980423950887490224488347581084525182321921106642490761818258959075742337326308958092387598908025887758068881317976807365376609944290099710375149591466923345201551082948805988711094120944812300967896764863982263394257085069337622131836647852756945131014929828544660171194984660120756760808675669664994592265390858765577762790059289498709410191003098172704926031587162632933582396956088704575887591762988407079829670667283944831628033471879788701931400730570341977481200951164712362624316961478388563065852341865527861038488360386425573387135852186469294136183929562618145867415777170685193343290204346793902213487803237544696918428308027779812304142849712576971036432247007548607489499950427090069477042774479582216092554866842394701161876255279702480244843388174238668417041763243583861367541270458100808867411350345663905737530349821718562226989531460789783648168390359249437787101219124625330802212937767165248331591963936718870706166634137073119937852042437994419531235929832526624020451928530787201524936137380957272603471478210348381034362434544359445432538398705668570830193586591213361083180653631316395728621637467179468229075583915318851700401794962146821256924096764473628178071535218766014842154557492339622371068478992060572947937321424527763234891589182399214166257645036783916612436293213988527128451647959912890668076142598200714006250725458134293123163734025666958465228926730308401741008459813693081421839126201064948824663015345196553914533778375655064150706205828544753885784489734500722253185145441689917723199857035906861087741995356090004599285181497625896980417787499698986807460840860117793243392601848373151147675971827264518787369676717155305965999291354507290171963776840263293179642867843624378854171989017211172190984871736494054548964140962892378928254730202873445972723830203632879801671057987436690146880429328093938051653992269638992752295453347947130870709254348929825885630670185221295714688087406963094571394729037043166802515842603518232144704745271929168539516467996549550841477594514109167255150232106169054091959548399812728245002865649540294058092614205962428678260513449984148598832789921894170703117094958824150012284917125567033854866312622910261932263150379417886610486284551109858049093144568797509020276395170594841835926081003378973277501619053319636370321305896025183115473610615050830293808862937427943534231501684562506252298648612411533977811951845448700950790597860837203332169838931730755716429213989992112451433394264188216631282170222245152856976663406871610275521713301709225000286242389441605988509279905961669913879124824606471818567528820284821721768027959362596004135128987338546678849410442568798439207379056826832024150563264064712167562033597834632898021205651363807480349360406640362898861877273923037469527428193661417961048881544382794784236903824478429947244668435181416570465030789973259776560676808854526543898684063357456514237579881974205918180789799784540790378592929872755778878718244944519206807761848520646254862917513785592977059116437354967902583798757060406273658613170391044459889050340365086760220631455565480373380492621870468301449228097161925213246592914042097630004461891862750661766302529205536773708782889658238384199737738341320704865496454545616648461915815146825741261724045499985060144880397721780815103558423454646797668753256868863147851937482201899563321373657845474558238060533698121489759561598297251212118003748790882456867454881616198536376457663780931907750678882248230103491456425599903465912359664458418596579194829405698726418531066545375102817568459569804587735818107666126679841576998387271065247223072377682236815905740053482417945442822055498778294806328531133045996015585728013878261099741100494383086267518201879197824346575016732634406990307074203513232488092532045679980847106851189420775073886960685029850227241372220649196867905055271472733835983488095568077340163475224885753979666595808464203627002591771571634351905552018405546347314896286030005113704603726995627071686242636647546978584199074394350035612883675737151214797761055917498999192820247549964318727244626948416300065723927511400508072518906398077567346285044329281595585640739206352623910571439207351489801201907425578106779645303526345431684153207126814940771065073310655581254138375623777164095784911461074304126873371098301902877159365833313207271785215176801416475985715181274326182051859490305638059548412207182275112354457440729469726753351977271737945505238976049666136098181142415849792236536229183550746219183593084779951199380921674033920316395365021173019106524177452383455076514418753641796555989748807415502927518471603849481271564785560067763909234208481679010526790105894715573178332841191643894399021416216466200660746087339485637718976782318886789297514319829072056570132077957869405730874251560770613451042331461535720488468875746289145068546769142974651467880209879410090647907978958394239133853836147155026430952266128094513155714472836908071749538402584671396536453716449420304758529239769879937809107246084625751968292756535841543000888952294772345186757902123059227415714924170075031920360124840058598939279246008344846582644235627661462949751012784424101692491407349133987539210907907620646943299049737932758102377441963722347431632797895476728886810244467481970990842332672767698696567472958867619812821102933785220945918113168949085400164357852599756343938305806448499541070445899048128534933878379000441998271350441639949268221403410065540972524044249193089384963585809629608154480300908740905447183212159226642667761421145163829018424442635567269697929257095905486415793200253997135675090532686762209541554736333231579363860444107519457545582071492316295594694405105631356873577086779023494924264485765852674438179453923041273208565716026502468315061148372457657978459685790723079047126893136010950695779128584757331808625677338280536816603678258732417101475373008556208360480859876055333299126400397205328415474306177117020478033887783522437299928943808103886356477986025685694704608121689009108773867684297117670899728803743576891769502159480244345077866750527905335967214940377079272391686880890265927652775452619355339998936413654914730961562663597641778641561829923982807428043190085477992578055666462759265274151189824131052065174946684781464573998852868343110542704020432189397685338860874545643134390661452430631572922759778547199902517325675212029796448747683604191481560119958653879289382282065526992015481287553482435444012986157680098760408849130905136527199352345272913317280252335090885837016718832205843354632218399898196354834445424956227849812207725749435358191490473137571591091681839758740506176795219770606168943372069566611780168075784936059865207834372565905062253637970964099362739516947714201045434253605317389935154820113516490537735247261174048927834449484466957638558716183434686340307406131855373294011508240693655224645900135364813653049708017550504745945976020183006258430735579736174197557520521625999017760491113203395758654653790617038489514732675010023014980831364122681302014934012245396743645464434260604831346044395406480484657122306227979179464127445755222361659052503131634736722682142603861632923676788664405780757902841819172115789308609014438263115963689954065876402573337327133304423140580785917273253673572386165360019078988923720723371988629755801776496985968638229217633980241631801545335062507969130690663772592992522481596370594892136932388764166257233812670971387608730067227732148713149577069311537764452239625331303033206226804966905580762118887556959395602148925930658917139830699278578265977892908946282140329331072702753189217670583922593420808327703218535287315317349872497119648656872716834456925839748996316758559681955534951792738320103806437406042512088475415020735030348985857260495671878725305343654177672975716116851671222040702687703299982731072314407309609609477290593871462365163039576199134934329588259337737108184875228260806986155180832373335079301114118727422386487038011757649387965199378077379194578707645356962185055208219408171674483806570137662451177787236640422122356039596776798372791069066909727861250988129364085741159747793299200379104395325093130570199225285016285710312608780916905093212336853625718209633036028044592769907527927362849046313216947876437510108178038105490025819432681484579142741579688192895205544831335484201012896693608079187250103522913690537040611722040153001779792035185957877462143416326578407471294385195372922428031801011652189289753329517400767690108282082867701298490083629770074871359980618091844686643521399285520570347465006234531816928204636659019233756226458068463332285446258561310992636691513814806603534777241905844229981520101022825066713081544288175392555226342130618693304044957831023022118444285032378979290464800808485717124719893785625636499085807228527474508265194161759368585254865470603088658463770870769881367264376160629764845673941530581496542371702697683922197656415433245412821252492978436930001907406357367346169711191526583889236324378623150062608237804644181600758441702926686891237527839879315613406342948455087772862472481898527181226429964068345516392634961536727968091303672332766999479791785071768455094486406399224319760279942308114810005907763290121623009992267873184318202601798549919961787202243726269951529445491648914834393557631624325451809698284071066050785080645110225160496550482798416322021457346245306753624375671097459543341226630778491086310928284793701930581843212384809575807910892146982171233418740381156389680792732692218949290422671012966855642205849828824696891221277825556556739411451871284853765007364682922973941883639929908429273193952822319578561607521899595380964377984933433922811485675280686156179621350665768894881514123147341569150216759355489532450559762091311392442071429937608928434851382149750735850639256282776020643554765727027915899335097123933305468247960482798085605190523093912113756016599658863916727110955331497997521731177915387063940343611766396128482235377893927488399308270104302001434422198849881272003214702495555148221737319992415135253720552451436427474975469724811040606318861259982276175656494866487374545810467954401568042365567749623656392086907786797037548852076239603956629359877656858769839105594067420996356987634726556961784759262336159695187977812040451727424657465766331492968075901276650565868457608065978313035041186408046997861233719657080294216580944743802650890055849580136923355980693176059643477094127158366893238537165876032758758236198799495615568257260312554323974822571286357587935166795638048401610469638663005399092706895644162834083158148830007397275418643812579573705497129707593853157938490338155589534805966896827287339423101407108157859882461629248316643894348169620351103928620175081844662037590768318521419374268675836597938036156199774766424999847827284296733769281650946258427012167655724675160115943884869510074961022926395272772256760912185661676946560521197689957397273011222790341976025130228215491510039920559601354137350747876799898567633987836988288460590326834813071295629108929596649139526323376170438963162137898433459750316701140178828073106976547591578105311876796681172617204201761690275837481236812780631290543800686901820266801843752778329427580327811506762761122310931136453876149047573629022037375073168097496756335523197334818538728404665664425504223594818333310051473664908428002052531100986025371574963451875060897134263722710341262137396163515844999747405668201150703594753037884516463146195091897025667963288569268667501437689931818601521476143672334215305783323374231898962379274201599031379924523831605938695871843464809142527797485849718158732368382485538659663040172876397416309081694549146843676639851013739185797408245621737481326310157802560344908952859936883467661625094336825072945210028575396349807423506558545580132857254341965805247472604007894908858476774311888701396358495495766800533689746820104884598098891696622882790086486147930748143550460597789746870216787318950819220094559223848118683752103931190708164340868664103779723596848784631569362655969589218122712336794845405992907492599903040261106929533412154199588538378375258833093706405677784782037523275570273154385863995701549441958632919550155272870737764381113201447150819405936817250094081883007033878314676247249223827308966130437769353852311436854555506141053003117734146234670548921164414248864534734084165115213696292168537166803128039963713905348596879324067215640439942926842831350783449505503270295591534084952332052162264139479113539038044135084074734916528901781082253082770833516532002848800886346914994810807493045494657351890329106364453869423079848505672438394438349637686124700241116797024118000137381318973879454922485086851496186140969694560977627820707632379698428527012732298056782685943055228517838273679878838385332538482617170321453910142661846842931213322226988543375392467318861849796372437554501543279726670593923238336136935384920234688948605224223237127783179722260435045579283690598461383208286638143968364461593925495717750342944020477701730403238343809926685220382324520138624135772050696389586594859055501798661438649048388896148781391275251543210949226874096140726806975265477395057734823792977414610980841249764184517589124186973908832341324780271857692914371282736066844276143861660164654084029505562317167209292837821517273755490973947218565651868128576189275726065510483277778654796560248348390907179177066102221266191253201566006910309713620684699509183275828049564996075398392917088438974575652711431389752254685452016307249468702333176434174688729614755173681663338702487437189811687599165595726183917744102511380207636777361815775624012158592317058845403951700649380449862981677039167925280665076551322651030379840996670417309169014494307146635587916627709641760896348470404527128685474685066329965957746087095319540665350603484814717852251447782656218678029809687321016603570638840618012683583120538225412442184571220080579178551486126184632114280435400819447287644920095417636564135832556173749250486834568694701425503878296408253576064498379312464707413663587257935067781572364259500389906942669324216378873590138139009191461148436373473048988075327139321077781204257673072626393602629932492851213241681750328517687514654907690797995317156569469973525446726633043918686396842321030511367964283553663806849976692908778641205471885306787728573058951193877996638442278956986896458536407442491848007659391031625323657573174319755981569679034451920091517154909752668535146769918327990986144215166216595835247431142626478871692627729656404398802256913460135782270192548582427968978973069536480629506940745642836273730192681282711322300050670686618209602988666317094260052790511912014465199908745087841871049917793822647790647673911194387942686428578808786434001184033129658847308907143655034715019511397917646246392833830460798678459735703617317982361261519113371647784268178905999480828033607262336405785542328991170663573036428664003435517063221020394510751683529350270716855647373393656977903998462018790815141013981904232108760704450565542232590817538612272483353168588099532162254883401599390316316435253591681982870551399868303179949018512418764834569272486925289949229405107811378340394932336448092544908546957060061306690891817915693648709145955757695791210823445465234717650108947604457427041876334059254554662759068412937824896052433576340593396990416200316396695402936191713623131867101368446943595685340041354501137508592029017894545619759876173646971184954757007115207554882976440151704938501167423213380838641357584066189331090134098162154860207139593501840878962095051600081590423290096825346802594023058712020450734547209422665678172771976263603117108782505072108795166986845661149199274698997160829154184486334579818923527463933083056259318426612350258842079006924933197784272047139740692703895385606498744938370199237221308734547471530133088778235071941874798432345359276603969516976467460281389717417618531575177512223528676943254247275299117704710400173691833083298777950074164735405926276276901929867356508622810329498159440464524122211259829373835381219241889108975436062402914250173202803424479898729574768181840462709494951582642697864509930647350693371330672813914136648384282761857119665900394067327376792190394644405441465125388085424426642943348776377090685880642087659235946549955219899211361141510216560809911937159329400125294551797766086602793783528116617682275610954855839039183396174485394638061993446111443349631643307134381006118482583059860863565268683119766837226939352395310721685317923693433231243303810579393941956637317260855408934250809374369959861950887795424510117683269760332889293556020671223300805007271236283406629219537039456648289866472889171500434782087207107499875757400983187654049099346097912387591830849968589025805480609832340151272572560969746783490902555679672313250673571565630362605030336917550524945252886025671595514739975646308750023622167947527225439513534229287184396007835120506950381067979779175757556880264031463373290755789697390252252283051182401329231274457652350594992721384815147483770433766344020629029680302822731689207440612281888830907028156088500851115781598049187921355294295184380869448595096273787469083290071827075417780410515793805861599162146098031886336561455316025832926151027798084286112879962486555539736052688014377757286043811214457716071945254441987220396765140702530474642079260615814563933646027060185045776714400087686748490296794160743739627427622605858926747796704647459204858888183215875927913020281321442992442349062203159629292464470814339998036002328970483803268592970470167959754551301792816783477891563974965907711464332638777148415314336202627832263732798095474104866945281166865840944031578116233925577546188774395712453780853775886338729366334949197346364357573369013840512845083311039418963738222203092189866860933240515113705798461682134285633862512549309056924567249581725542876835929576512496601025244623244798772847952413740585755140073497045113907977703982938226411069284620980352455138183652625604149601527358987460157036883292012987563548056714072525048289691550222090168265605229591077538827754879355349392905657860172097119478185964374012722145398927232681085347602472781239764506095138455284093226271581844597710134233078292171676194382179280840891792973081369104493129446154156668319132402579389267290159329661678008208487729701282560872917695622177281507266853501408314366046109151264677326220214892528166371587861343314122469988048436075117827402053175944258105913943072175391715605722866673453781009035135367137249118426494916888743021740304052495138705818180970703338963141739444482910202909534490858525871282470776088333775817305621521722117086032794364732037329907123410368729163376853120535617902318368601804964129074570246230867061046006900928266482054596887381348435187664997177344891991899595915451532051647789719845360873888966790517781848044368356556004729190461539693471385880063683126346211060349724203843729064644448885844399999784760227158000883627905306801926503245255543658637502546657563168140198974910817401686996573110180185046446911458771089482750305122266838504377343840489501049679730718105199672139500785992351104267576864792455078681710403853688211033224318474535124463937213016733113434003026864091670416905146987553682029181197600136620131167855129682871782118203646053734496920025373299423028043324005015568151828689567458706032228977225037839867521141999629670459235213041037161408946776714722480421307362601565650640110001254499998567623773035793572929534028536772241660856131620934160733408265720651091124973389523197854142143909601891589575387399194478198535267339560047357367656898895758544353670817680686636217132078421331431293547207546259863617296694236867962848305061785686615615554446441701806155602584481915985382925259808085056373363415754721668129074415111849473786381583758198329303653687478988292380112272993213321000803937956684583315319550784764931167793577560178813488360845096436036700439194104814395799566973376611016200718372303252181526089944881316865623270277419847692436410369755280142092499930374357132282219198774311999913698475575777033333655227794282083526586114120499449145056360277601745602679022942275554367310070082554552627212582964986250914107275621648480763008140225526456883014686635059435656841530798111772611795537495421561169712486961095371072808715745625638560099139546644261453696502633272466985521334291235213927021436737727344927941052532168949854316949578405428385737546858855027246533130324632975635214104150696897603178404252596598124630464977790642666594976684069307587694104319313858113326633904122359199820677141804491890208156385223219271712841025674782150170343600881040385965206302052016054211355506539129610699279013511041508742461159099544949517542534953275050510797431739364792876407792657709408299866056581829019442850774956569943554120916373320292084472399050800798357242840296924555542518525020124480026023403720937054860108932737913498459749252778333597504963007007244487803907134693010252559433914189792085085763192362575313784658508461968327855877724913752402935675336952301677029641280780465527740035575192583675879039484361995500904196079157611378385544751511574502281812252595686721188517149356821977435119935673888660130202096420117368465813024734754495027373393423744264577258952566097099950173232063858874533567745143816243311032405176484967905343464007965583200357368182000783143185696314730644290635300186191270774767784900946238579454552118296016763493726318849790566880279575099971103641392237189589796930886360561633257987149042903999444370212307851892532591912850976793792753255946130914601943117886133366012288421444758534022483296850989213916991095587639249801631622546254819039762596832584827839096484530658147363147861476164963969880499516298384646729864085623871484368762598877250994457656597746547690921704759495244346018113967557440752587689414489319357328772151699767276343087111609375594350217461156185944455650210285554254342591861376974352674023891690577208564952318609274164262554572662483585728684107338421476721810462055030629136796082362102161818221742989480869523818157746861339331978433608785174086843790171938144836352641440630428000490248301447022038380009826191907948967830161023989087645971400550352077523285859875665888522426089316040596050692667142055950894331544544533732267322824067761250969230638593892841698878439960354108742062966396629608880921828045870260473681927577256013549112250974396227080928871298064541803550635778970135520067388022640626871093684164180201420279772058786047566950331696326373989968562693250607384136347907970644610707515214389774777487812018704160740265775029587643753179356615191794635528559840760059588531744442296958649788761506753063100435812762225549821827581035999279226077490132235689755091566065311482998148345423375005496947892841082811118722665273951308390540584309944572327706568888281720032852914957209810478850397105760665709938256306712138210069544729222993401051693664945280635345127985983593459632432057004157003948660667220056949199937490388193424922952351036473646087217137782427836343717033999345892575455692840908702637321599298293745200222682489756829532771475941833170619202833404741121158319114794849337872800999867466487320216057188988469483211252118900460778245132972292164769663466229446040628009031244056665928626135284730860082390444160269277558825345305676253697897760962837629257727410444533044982422074223647624606145178322770092437621013465933609765568095002732281784328624432609188566941607745606813341694835534488479094290900131482719399572707532811892990485623539151510799857155292902176228944718855014545622596248130802030954573916033332526851481550978955081805419872475807930818061138128133477636287958875146064717977948438737843018799762922070370784448525980577160140199793240070180602139427052333703615447857865987197621618573354782847033578856013299487275634771565215089959247715302266337018851161282482737439718657840794745288284419581877950261645370261305674410958565123720982477372495710148153639508637947804886511614131377326129544402445097311008603420942772047402557258384886673822130103289350954365760569979031652070178952470009709002048435806954952940008611053024738055150919690153927887577990909198067764500976691875884575784438730951789167221623104895294230393489482069792999611840791657432294503195074788116563323520911861493676008303308670619128694486660520705963853387052957537910334535639728146478245897460843001224205890051667540663262343777119120861292732448099897285300420027853457978829447248160077309079556470538047221406700220698580440952542997206848107841053282696563350187890511804552376822887645694014086118452942330599840311996982953241381799971164934808802436622349575922847206863501089820007925221456006993946029639894590937157322074125496440441647682391686500655093403582972497836397841778178519899651267273073784470720918216046474952036509241953319641951002202402599143238855948681352021081709644329795386565683535538488050201470889228140032430557427440682398291617760412727045352408449698053266286985616774553149929954934985898791441763706797223563570120096642121729085845773645766544253072089093882007666399242434071744573989748135054338263297160460356399816378876406507285610025262544543995153501981558632157923985415548784009153037327924487408472412891662916556635085120618194717037338950905223412163666639197029794706915894268376248974890848016064234974012545792744546557306398075417090100819872083780779024973057840005476365491851716175869416055856709970759801442877412820744440808036301045445869251704417111685918934259440641945252435907859052069311992844946656811430798977684037080904845179360633798170613642796820459699469575443527244575136089547378662134771645873051085284612904864408092366190800660203099995264693440552576274143004293155318547335248024467370986036255570170723879248072527892626454694485986542137126930376338794323969623331570109035582137800900537092052772174557206872027743120746364241855833532764252553419851058753082111009822557743504816563553175566901023399028984936351740608359995412591762289864362641662620091227482445458629936910506498565410896214131786877191107104383832958534544689141698257081384270702864884847068319668613200862075763197408078386191791490668731122074709710522956416406380087496413738357915436242627902343711897160506828817912161773887741453909328286717416715406864398132402013868217158745507979764585316839193852270701145611435626245488574926028154846394021797720681326473274042376719750099102751541240962060566313175671719687819305866106983343644899099090259042124852982533201074198992769382336980227466370367115358781040022789405191935811498546747536658846127823994181400211926150512165664560448925357202342117466980807709911471460396981952127546310785064775446878450679535251884569320930782060803911426594210372932452625673050967533544826579438271377100659560445626244920587910413878132660685002632197230205707289319572003980644645511416852062092453078785301719504851803296561170629858316567265321022959092549120449705074084208594162650243187209650735050865710415593384899906993571133879330551493054129239191781342779541676913307537645139263207877781748227153457203368224308392571509231857083158638691910255773501866437545996530666802575900493326151452490028661818649818378554596962364097472225264830070986730993340213239640443902848079504166244815763398164862638443207265677891319328341052602593524238427014988513823803077724109592763507380844148560587111929277177727014994414888303958548785778655372668179219323145919224143757518552644469087881364693398797123006651452599842686080285979954636904272688672616556509073799216448823879662195557833715946679470868630687495549023665943269513515637121486339527944256078392609880547197106384778342895117729072500945555381523988393680611812698173464564699470607416481849216105642941168200460794694915403320199343668884958922463561303883733636987963292058523043680585692269690460726608304184212489644811707295512786170675892821678884685851065303154860607851786341690771225510696547943453158363652022322505431662906608089476036972695323915477565363727667543086679592504383669799123236160783674339672263686265836415560688695499826775905457709164351348852642234969123971136153430463819894868421019136696958591374069012172599177175404575712960880815922201225406678272931197954126476458114455773239732114099922737105515597899459571779099767192861364582875260678780700492103133566714592450720177354928500068711579241180562382711457950195912016427079095273723601247052000654707744229993785826851053203869620682217430720611756689485393673165982942101840323656440120130955373586770734017782637594770421343856457094912121007502117089845685112448180939212559531849979558980148707244197081050855580036009052987719793767045350227797981804474006008938989650200477564274168942496761898530189609110620749092877418013451063526044070080559970660054712896714908321482124433789199733668128814210118763829606335110686111355399009644163613826714610729630048766438731581164204860348279099942943037391870502215909883143224386063453221166727433846958753790162087345445419350769808638138004611779674621584898820793876987460111425892572526154820217851397373852151337548383564193459699554675667474717034915965430436825407531430784331663945004991458833391205960384073522402631799377002952381509543420629576742341213377412877421362370981971180628153711287769411058215393154650245290141784582066297363530904956662477818614997546715067745123935400633624194504022569541784013746867012717084242753293232025768154298094555724637163039004610322431618786423404964945735382055405066588182353312454554197486059567666838058213584801396319452437585494697625722821752059761335383072985295376610227764883020392562044853721161350348281043836710546668014328821454108906331181977025179508202622928495348665030359561719237277315435099573342427017750079657161434698243573924621023806486050656621698202386768580681078411928278632075866771249686455219230783457476040613992844331789293088770510687721965799378209574219526653336006715344744828109915352392003412315704998834448886534493091284656170857963253632739584861420455469521795648691185529384782699362374483535584215358582031374442951062549422304866185532486875972431609916654384357581705475426678025466294783456971051967612544177162970257462698824052125728808514279773172248415872584365788910922444996128764450674485078279538743059139975024234703222253085027262561371198502066615674867363018046546174117907887623315958772130033467483901220231119666848041384929634317494271106910731118488382109362863075141686144564318057787529524285154395661510533007750635090576462629042478477520654515756958808688593454530539906960514669141597595886806222057712642573468719567387757388617063617197326881295424569539059142001969377603873407619853551987924341870658803540022411724752919723788819609355337836955936030629177767655504236823154895733326193805884865251433052205442103808223887058398549595201218559063182235882858600342137282766271085994036388172617363978195005390163082484368801862744372036476896212164815536980383386179662106654957240159593475954714929045716346011536789755415028196609230413305672342500431307056179058289133953004750216421884452000015244747900089736515361556224454215865867913357458031802560386625795834043862066434208554648800057730446430247732087958532899674899610205475695818229087441693089250490977887979766268685292657301495927221463856624881703168073072311685093281928031988365437096040784271687545596653942070049763069247745901413269347788379010352857216045805316858637395687575181505758209987692433760562929014130351474593157244870443817993362623684046887481791271271752815497800587409183076084754730959148349454205738263019413804297707990465921399397040534853088860764576490343024559160369535635735852232481758605744269460479487424669296396892386631845490021369847877338062631296411968581007859065238578344873833659428799319294785719747646790808053549027378373246033082728444064133510908774281692826483144096684349528369031534159909251445803089535651256015902825162958589458205856009950866940731148877946907231711281092478861318681778378492551051961837019032862397744675517649834938977263702824226827380852743960709754550656258633822730957081752277294143442097071763923608321929585797789295093326202873175564604744799349161602477430046673826459574323090353916637082715794387102030161199221858326886572244286443255141450723502312268300350875049353558687651289238678191947360818795564139509798115013500216842439510229101295936309375910978688154288011136635227465299947075424117058579816301905009788428731280991497691839069418975244452345858209284597562192634156476124536449901951297762187429757894671993481809936572254139866617811327981661951015781406976538236182534016505002018752562271448472211705112411035629503680756537429042164065255822336751636408798624862647495559418983999817699311759080309791146310374354555484965619270531168138086653211314264405567532647781038045505418921491927464373318041119176491864495033943383781681258005550199028633507269079544951727851370223946084229420340757879005026218242668342273972166251388863678093534380802858339314192464845457738578285679732255514896870367831818724077916931554067635479817760029692895291459029680509781167860536045932287965415391246293782677908138521818725661316026331896798160959285668433544846284027989588062839058345696645546899219150222928234833448331182202053860951766488052797975172065655434531864488467138029089498609862849754227548905572300896895003134023315866691608073459812322676057369360122932651461179701965379727953919713547373251853015644871026480468133603022230989001371461760735571727417405714221599837981992865599876619597535685280467252113309216028936810682082494033833969335250510039555538823374344723061867741466953008071462571861304294025242020544653243574134465949932644470373123647568624874408311179505108450500578181987251619628369233673434218873355803564720607703294604008738184969345773356405619793369758209296396911285457096767586459216230221615574698086296008837742442637515367675997747306303442773930434271174502339464166744905555986182677519775156176286855424410310077569522548553383683531198188711496309058900437171640877239415833933635968939760197476338774132221221792094551711826097223789535941448361776243576352169423592685404842344448434160440236621514161120511973473771164381711084744718449019449138309086677100073054635316772098214375358766867665696066945206883211776105869350254901808494005588898326476431041936855673879073962439200529485418666432548434293115325464388957602130029015343151055789634715134313000681585966249500028872682791075856188231317359620041971998676095814312295178700356680829697058775461176853167721550501674763609413635707524122303671255663366721301656142953372426793367313106899566641383722800140722312062542758908312618074758381444487098233531149345163962068870153899163482254244854725219240542946429345573495666190082273985969859431061870578481296078725482589392586093983798095948812679830219260860822590419057174506263482649262981937772992657611112652874957590293727841778413728940001006422466856070662351918445936586874120496715167568064838079350238382247953942722594453241160294030676423294039193234356725243754493093490929427824631123175327792508115585370742283849030278689550987532728141529514157233455950925713829419051396575441861357150254721663359904139293584914197841991433977228415313131403127872812118326563636242540109849005143239571387458789048860334395498681567137027869761437473105335369615826060603447047031809862325014672389077030955493772100377988028992256238276057441644033610086561357654105463295889969817472497003812789585939056758965958977744485089793584455071489512447978119493795819807652572822884334850499029294568857069377539161214782947858649968475471977647183170203006850408547686951591413642946803014993393978014965343110900772965798009202646993214836593409328570461427978102522380053785899130104103158670502907980854425450624465676272673893753725807128942316069113544083603429416837813217889090425758975858194384490310173908799612905880413085507071607503933950819174367684833752523823915279703774328053041200774850168335440844070978289538332906064565999258539618795233240364464933947753992866301141432926264005507594695792166104007380345468822086970355489531788743835239623202167233954457412228448724935812243145948124793259525343613198614734911155844241423160821079024549135509728927411739951410987132508783479126070331525836446527357944674321345760566191138373567285788813391840105676549022020483356117170471774702449601552739464841218717810071486454774457712458767825202781523670605657357766371246799513004002881821651978383524738977932990301359486272607541439091503702413948973798495696877464405840718678556867886958200719275343495189287342963892312903634033514191575399855767261246217598504350148558179317071805166374161095139657841412069687534199321510704060566277312073164685388146216791543302585522299038419942904587330495153486536013209573963301904856586278731834796785494462645440048369654262830255818538312698778495161268348951548202542992896718741645595585434751024318090169050237958616487495065284340039516511856216896504224629487894695696837768997555051932619155489507970318772150241283903909621449822475711415106898824168824977180982962966101230401933175668088160195138962029197881401802381584485829413131719902454178850641394497259489023788151759648164721173345737775001122668789189976999526072868495924037109919329893255671227244514985887089493458284449439701578752408209329963157719716440858472576069041437865080169081773188806180082187480622146765195475020545747376091283173186570667347154135731117524416211888781584378156114705827118718616778890356833663500222318276676296361601624120352599255547408647158119519571530180077042242257697224366108255248290202256149421889127331576608308644195777913752266302689973389491272743884069999525593226740715554981934133810258766821391504867411847399981962515420040997767684911232963173521173182718284252698165611982011703096585830118986383837156109540868420377494684040967210535206476820259840262337772974452615870948819347775624486010553043210731130167527644879621907249589646269087000188566477957722871050004636172383859954836682373793961186518097733711679521496743350443313430001884274024020872380418630059783184438431607145173837969465014016360652234943839644300905222566023544565781539705236237545887349406678877014610889806131809072112896107318752792265454969144870247301807938441540888650663455924247075392054765729707351951837452901555578857111057165230071112246063573025507817954899289900941821247653858048672328579932177830313577905121614883456186917980791643754646308369807596384524634958311841635450889382562566975428047766451810493415792539776561003865777018097601161666615339162046319769720948988983085645262803328801585309373719223499523323579399721365106827722989552721586775313708884073443547570019946732380323947632891768513883367778770535092914283393231817755266713977896072965939475782810901946118539647956041956616896310942447780665265124176998833284467917426862413203242556992003527598508286517312715803936599373097672381123586279481011132960043456215880183610610070858218418594541778725246855163334347603085496953236243579513566423408447430032257283842319059132364078017662908653471101946351566971721320464664719588481610965185518729799008373652769096322115230100826392871389507258418177057595325054024818467815915474351935307787537388217893535019408336663427318549330564193928091191918069774147244088358552836940405042131206537835603111567006130921137445118431197740041180110851303853965793975143288753925871204085842298225858196970637558741567186379841670782961934858114853496251062124564563153437863310246713228090351753993266521183603020168463995693813402321636158270215161415682666900498912666914436964495940824053526987316646825429044675932215527014179437685271101808658609790720578442671256591612714828094575652912030720115235701389572252513110780667880185839683424574265536728045502729828415873269922658016114042071050757436769699651750460880637622142322054721331496787597370308664003278474082171197007480837573820003264177179425106295797810215885777270261324666445614398923168574823189555973208869132216775518665956199499671560061037883942428929534626588084089264369751115652045883436469859991504912657745278038782195238299640408349614540247399034949889108172392928908828356670281169150935856649961588863878367136308040295861954323132738978644231240121499953891350550968035197697322944276162628741502478033600214968124895601106341527129405123856165951947574917024814940197459708006582004878840748114971198846891534101440029432118803570835450119763689888413546689570948971228130813185481844107827866556455279986155962403062501930777079816990044899691236247174747947566824737318475330832354205439522569553774996942378003423460376225243372739697061085570587861795421282551929829048660639162533917235036806127448496248153477251390176009122284293357106171031255284042774806856110447702400973884769527973789155265506277851594420512344990389591742800260178683961110086528100517388600809367822007341151862856766218180102220886980114883713194692033256382863216966171123507275613230959473342216324730699053501817741254899642744563335240066855596863611848220350612144255478699059472043312015350654937589730656526645585595279687080172565238333670817198149106673242831132177786120515111545447725144080937383448724475762743172085965151247948713995398854297345174662707732582182557815452492865582703822262218581632347330212279717719691382100745665145477611823504332032848803714115302098583334930190005060193309824182920449513015925492391910374201657934320902045776932716095065908016799941912145173109053519541853293424514247629283017678681598115365545911814451861436046888080387104527588239660643074063781434334043377861381354080622819544686896602253608691147863502300854566202233796222566135619094424534812951856527272374636711040284327333943739594363729116772065593612944067414284798922201176887381813482560194667790399309636638005276630516968382591834284211985402049003269308890550132731088929754575749926289806410709094951182587487686146157834687121560264786351060223975115525887774324722406060895979856227051648138815240752435999319845754289978825567079854540301186087797041424181241734455546770485242681836216402251335941161373300699307121152806782208171451934966619104909900538296184013356032592702274172442954503071950327227126320242910659087226775204670737140520170722023709204348645034013854587814683692884542774322015532650461239942883143296259048732555792122249333988075511042573412291891886676698805556337874765199974276976077589972368497712140367004368220718476129834552502996714663309490027612742119712613591364501148396628098971163748644901359911011639890864708058377939293036329309843050508994993039067888802017161320880336921452163401299537849780637766811085852786439453210008887268825610418370536757545435141081409656057481199336751957725928944084375051573644614279217865553150913923403214475357903379633059388525329650882239375108934139376919355083282834635498630649024587006902819751770786706569634923331891398801638330412661604232722643596061349273083921546530864122626764199351527844495645789681445552763038974532767851450326897949921729410672294500389676581323029196045512622700718250175318704875164928103651819350492804312531036058844376578984568020614850668885060768060771834698774051341609599494383438814317548132011924491911434910495767103764942326638233138439988584031855154491311449733701748478637371316669855397296927251020919846480768629952218565664836156548821068690353681838684673223764297359560083068658736228217385256612040790130945136330226296993990747461464581125808140171402039697941899853818396368573445903533887678579955577979357092066108048840531212298684540593912636447567618923736460929877612348046851930926134514592389754183798984663763959872230972864614399953163290204843488637284098396732808662873049746101950028753824020946273135729622404225699393263876335179365028032700435025375176799006085466550329212501319737713381616991244871044630978091810311420952772471312337225300726790674272339998198256766746087583152419158802861799386540422421515756997687851563359745214621950970734929058826633520985405467540423739725372406980246012681174462904834738158210433095426467343373779548734351878722085749847373111025470535809112104732942645769368199343867026858124447960166180761167933915714056427735214029437134996787656306075483463457050107599285785058226543942113422175019991140167263694705798783636678454953204476291555725361401745544127112843944534376980254845904197730259048823106114881109954803690801859107038290695763345622546698449708677444545156842034407826076335584390992382713823009115178822736437604324435249120312133887876421831506621650594932186534539143666019570008755914153703143214829365198865955167104509062386567393896676191714022050550868342425465255793984436839612115522037827829731480008234631138729733495822886831056052861419553724779294462580905342415855895320090742023577592779924943118692345613849297535930082354651156010710803959994209173440014805076466548255143373944073492775329345782964337005425431022437745732585726039869283288166726938446447179829076511007763024607215954697748009589773816638778139923118532510896780309986792183846196769521462396369384464459527034335499849051738997117411433115483333470884875076346643280826558047494681638802956491849570312496977269035272488115856692106486016309739388680897962948075563979729252382726488281242640321534676438786705222283363150895746945859411056654557507784222855475014575312589943654606271703810383649582470093369910943421799713845606937278343916332553777064213276579084417763331724388698107900056188442624240126295028823820100367989034699429229513433357780458434889292242342092151473130482491481153436093090149378528725248467010317137170539234144610737335640406844047804930382540244532697809863707730647874804396222584920613476762920055892442607371030940405878698384592058133361820455049520217592334243361946899531645203073829531102851418263367400601586434123050801217207398176175237127973381482206584807817223700893455837034481549988256831589860158694261780469265217868265040970518184556273945955072613309304649734085792709474388796773450782605037543251586600821665231509243544700833777277928823542631254701172161665638343790487764249292775809685584151734821135969388519109649419470478285145250710601060592202550372473650278928306705062238213147061333326899682065964518887528034620296881670237848773918328037856588627645864190251365928649753745531256401375455853587597123979086901312605892429963134204038362339043710201430417159723883183869735875131222834950157592601741455141843701037386291521782149851251821033175658765386769679731309148854516436032883140005195834340634649612590177752026327475607271877184968795727925549477119370882829300864419899245236502362518828990444994544618476869427021143619929969610253235460408019692754824818142815183886122880319845036117746690970215976256978092276796750145616073122289609756598847742200085546918897015530410570194433424303905565212001467946327955975784863742453396172333702816023172614072975904357126811305485102599381906076342998173285847408055001236280540811005365127828326858292121481703196211970042245350073659974765126453300532213028807012340997188021972422527030817304243302942650266856425784734398411617048168082239700434651970670260336798623705752597754315926048525560982752550180697372193799089195653092420274797663332966592633351258430119385241318089674189800045081672260827357887411157409535165933561244681226440135398041585595614014317677943010756101955223835937428842645894697099597810163986093430036071587680273872406893782645615981312010668878474210484936218555978592805331770066833588757298187739577784711072862321043024088851299104845675911949686811276355592629186299805509178269211019779399977522669098762866943640186610476116230312608987470366820049312022568746989586952303944824402395561307380358954558957318150477588272676849454823280421054478172147761822488488909981942529208941323139557706584928835122971477921175254278777818636625469589341381961923290024884305199975023962404816709942388396356428091979830098361395181991354945357347473119283649422554553574930430536898753343576854418843481983492220309795397086542660022236613978216843652313269897971460590730907656237628816909687190475025136787512539399572787976736933675678329601235428587703208813694838708244692174688838090732309096781722487174384229031786022734759691472192158365130395292083180371518651904019531760248108302281429880346579179032238404054900008991092773949692856474480962335917195587453414799261273312891838592340235640068668521539723163783188025908879421810043449013231817730667580090079999904537946524404065008388220418705422668821055351986859059807712817916858031263517210368102174077702996477441196497206501684376781535495996443813094137783342344946056542326933228308542996363135535165819015533840207831971622655904957549230135755351765106369715463891934146546855703540301141367560073838304064189772007469069887117744490163050260513724374474399413863865987359085823918386933554229379581485844053823896675214239299879382431983125590403428390316437702228021107990640412923395420085670422558579112595897010023379497785560086500237551921496602995939819403615566872276933436322815850340545296991989153858769708877532417451498101207572740166570632570357472202872569651926838952369173634907741656908254310198869522143435563340515751903802917258427490086390154766872789791195250638912719682478515795040390011836977002907696914779705130604534531557090611340379750879192532747605031702486980774246136082188093485180664904457446439098011431874755148636861995762443492071900321018556944420287424100410118741025073247828740716465404947521655345296587878174506929577646482247392941131233925511298493769158348706414138027879362617217204136810148650609171022446557273783146108155195901791449940106507847187566172505345947291225132657186112310676354957106163565230826710659693950229856377082686181066136439256587014521650816760866867638172129855956691210341116087608676266793450401846573591414194541840996665122164031840269118238686640575047314858425458736378066718410092963126427888986266613119739099140201407529324810101587652898189935605065668581761201537982288209687247734081943750065396250739301619476891711501051819917462533873990366854789112014006062005919038319456376979438040126344327395671140168937442534592155821798532109519558518881185437468211408008072044069082919399450830536018921733594775154890230118621802787496897765094839911301264824176272700750759261178845883028547349015311188709024218347357197121463058035620427061054836723197402287991956334714429646692403331393997372542063546586521183378244524774452844527068325065274909475626737533674467991669663478065242677223185688961207232527747948648050711977567816413796815701814196334400382767507760911853861583426305796920272350636936085022433098816137081227052999450387167450073289471606633663159310145544342252113340609804934188699320784450630959731551354671101678969043745666489488384215393717161092977585402014486403344487453798629483410185706387474573301152194627807433991688267811904255963550186116871818480551946387005027999710841150329584231549388146299646041552669941093032490683186653782651760421116566980862316050892390395973591034279939207255948280382319882810928822794384662755859368992476370063512162413047894222191128948906544137128428832048818578124426918594093069053826576122497213853409222738785659919434435044861569463993282614664758674018316157155876115847752775020505523916015686140644819229670541733381009975991903246888828353351658361873792874334488440733942411319050332500995561082256573806704806479895953608513774516146631872223301290971010152862504643493816348340079948689926500448201664202267173846964072261911538045390573644813400821895464783701109770017776583789507895243816942461908772817343644607976152275164290930530634636454305295158605313653492291248608243922032746832501648904377468364449841741745792668426461816093422351735090419839911993381896605331067895439333481169822464082655678398691435959223273165930609456469090989215772823637098918161207629134839473884769497078799957578809308117564026177655667610365830561337227273574598500107603459855301013824650577582615191741790452214452781094050347929288135789752653872120555383462626631085680641129340992426595274170828120323731563434674307174915225570143000012247667385749219256922626604750754621499711629016885205345112464386770558818608503029544580591055996167126617795271954436611230595380988368147237850802314552736071294346514205594626720366454149917286848255701012164052559680099554242923644550757543986144676434102277969502636187554285885807686217712855057715959601126930564803370846019635032396546004544518729627710032182623502139174629044432532813589802520358806018890952957653473116135074947684155035060837639822141577146060661730126497865110015740284273645265620700196651382573614322311834855295117123236917802129632745352958258352056408480141419052214416654557869659401815657866402397051724968841002537617777596198558022005214833103088139618836437697250139009255327468120786903261204348721859416435995196320711965240080644119227288542808661570355407793587928388380356058734222015286859879380452013674222798477296627664052477105468241722723570569382936196433391757864627535131275066335327258024613883173487489955881272438486471299551564766855428959224996624672381578121137782505275559404915881630912963917781449458447154814343575855024862769231422762697347244492819440235129549627897032979563112897248480721835388681233651991234282994573099777198844583915992211794780836069738497389175101203073682567669162986287579921576179680881646122135675129340771518391326112276704109830264050338644905512314679491049655352034091624318576961494179458605075117076068139454521001987377386919690898312924230988011371201035021317245208722445704510477882149007174835595127306582515328563036216753496867690420839705620115851100466088848599817769344451854842954540836611633642343553347283625427807796583163996490280469257009906076259632223513969637492374904089770720351814879414148358855932980324421139602794440486541155504057887758003929577061698741975775277231689177409259186543212618007178672711231595918829097352411347813604741942809003401223395058903926128824999735641102641238766126725605483890105425040259439658964896501187118448542100839513791918865270932636697512609697599824467379862540745316813872363011902700567917605658539296083184644043699681875824753715996872043491655053545080900858564023783969393917893717705289752821331253481603711447354727509051929023991929243126668131274993038151201890546762684639793975719542730500114385038422976904978323947021978061014027162202917804287845685715543048476280544338784576161442550479461934786319869161241269548099244043985667882156637046405734681853655724168802566955461628177323721488495951607284414199765626376930857168196816065308422435293716389032680109297657443909377325258393290467854448675149955850201498379887549578204225137276290672650116548153428991998652206471950946944510204695585616397533878706384294329061593064332231954669328769895471124565657894312951713898323370353993797169293334159166524136183127337917289122633780325050494771782776567542960182118883826801920740218164977304458257543918461279431930831076985660446621777599344723026290697814796335433361201310121416676581169027379147562403151412749386198469829976905159453940288218056798076462014090911626831053063135937500413243179655286207370365242967746993571156768351624273416014409043169028016770440809819970015347146760773618358329902527303801248396299692734866674294103740822013682768585484619997244642985899808494462275845143411018078163202027004563728754898010585644897968668944148705379269664031888489786353115842831122007523067803531799708463361845394727000289759968103223185969329548547894620446692263310883096046843358168253015079831752716481822336923102452345757880179579982741740327884436947499339020818753885915346959174508428464733394148897404830795945403211842995587392259743544207169948680767220721370249529744471459765703939839464204568725215154880913600787410467880540900925005123529218818766567404344868912809668301583805842518365596157006630206525839871966063264810986822917655675584542291908783582855609057661699453799280780251389835316900132876914460956007083515284045714978283012979511549537492451572673095187316257397310866513322370193952413582123644263912999016843603125790158331945005783420350725208575000226302495318389218964213294168410992726462336641957961601098479894910003289048787167325148236309684789848130819412280166718955653587065270870071475993216825311022729858018494180014017733893054656440595208266203358548803102043794231150744018518728982732889736257940002877992844698726274238011600449517972379864641846049807784912438671010625109040919423011957709014000240894138686719653100658318878606942033489115293220337655119971362452364069167503460525687509038055566599852877583778048949387724167117098048811528044028801029132912603755824163428049764469931164423880156453196412219330430286481067675004608870133357111915330598656092149589882344757411066107039511270775595716221330733924558955499941463497667724039920301900793613360182822507751966910248482136540517065564807871493575496219841645489821373892069055011372800763601333589963369823395730041102363550087635518080966258692939382623505356388190712863676347852121963652839942783435627670038359219736006173962906385055734579225136659747554809114057112635418019606161626467618757820092066676787643252189819710787565092250782694270678853692950692286796309210500659589373211589809416218369103384417542045964024548758719856335166666675562038150187502722948414533286407318901283282901449458334509256216541784411455334151332727990756186666816529362745429785183249195872481660800336431329444865771572105650590385703872273357419349137183046801502523772685718600345845092471610640928647069527973881859116117619603014043548656515521923164063815863069575617777092927117100088941281232104366226730715362367646080710489403552119162315566414853634335627026926755910265109021174344190030568634467281833461186725978791385420132518558700345947776077693672619121598037067974718955051681132253469668641303048345186847309521441344809816078401395582173659135262361587682591029078485078244841598166524749687138363783580847551510318272478852481709759020015881878319150148055046294908454544435890825534338515589797013658865912041907073128000248536956449792582125010523007824672750221662643023132782462084746835513064285827167335585447509313996458704482269064583430362887777202963926986635442684879422296574622753555075320457872454588295167167225620390987837062040194586014029925267264664961372708945140578386983236323597575443512445671417550510290240531510573015794452676831905581839356397657682427573744876566938421939527683957492225918747083220200470891003704122769157842228674228273058718563540761367680680952749814038729916550303958324007102380754635890030692597537263166588812638691002157405758231444145229072488585110586840059564029716051381105847268369725694249830806359695427703202983790045411863921096804421574278573558636507745992275825724286843532588010100232186749180437108942820688486411368889900303105247038329435662505109005707605605380928417660489741328922458064487215278925564432841790189838227077298977752525684869703539295090844908312679316077321119638051867924848288424822749596609003396956107430924730753817539256117492371373363820431223097533384653969881637522273728396736435524215731958222623311909141274705238778546167573348307314278451328574699382882932594583168171596206053984032137423890548950149739739506688119713898730707419013884616589632628319215953607510219651076809089503397673150730893630446107950316252319442824030094369494305710399942042027438204253039881627265818546452886476036656171146580071199556794142730566027867937547604721846764652690871944480704686205188186708646563620389238808133335517108385912971971630267035790795533301774014392234014746073779877098328812993971510657820237372399261589793160041242230029401959530461607252238420804567733500461600476232334088393589320221831653135908608772529391892234421346809437525753264078397612397016627554453726721417888596981433360422985746939463393171767399725798696299681298628055590680955949901636078215522628055480602301411292951748452668977513082672539617739569351222021251392637205166007082411536668631950351753464056122061548259109479472251943182701724612068133480778988433759871115639207500377047593528388093055981657562038293608380088052384489548085060861025216463855512092633353048276978978068788364408463184334372471861719419539337896619927522522294893933128094833752889329122790105265747469779112731628861998198707511617722515375115114947600739521705113517515072153204457231792549113547523164785352405179764570968245366571804671308450221839503563610435086351951544879305098486342405464600928648397328666599234200574541364815583307654365986763241726852073349760283059674793746468852466517112389821329381376626824229345595976924594733327346548969770685183650321204012817101345115726436821899651681218292024497230664264825808510573150248910873972091003300936800695513171725175445759956923985512671708816182737491085091517870926680338565762006706709141042027048760989990247828270053906376011180250106014419233489023378431543793197806003654362211150919626902499440332436368033023287228099500855975269937259800380891085196480004548859766403488184735204652229882631800359526835089930215550522854778862540508443856854210605170353107164275647633423048279884284263618433461213607145931534748688339152830495795657320380888922594248981946425145839194363234001447589261895981812586027744794815216676329233342079934556142324832984345952104642186961622139414777602017762618504686871548974148990789703099412835667977900079938087662247214933767128318354107528184784830559673681002114848185860929880329403496574301554809781242074544952548179668834780891435721882885574535318931611538470617788714104324334473432228019412231752594587527546880136556667515930653299542350037754126764822748995423006231413102697790808264189798576300397578545107788364631321112646061176077832508235998948775088871955640429563436868396879842320515998417742417711995502718428337429746813726087088506284810324177406701634591346674293236994859815572140870722084369420939588518861962803325060019753010023149341083863287285955867100063938192356919832352028129697411247075493490258758549969836145387728061799707120262960332047106980777933026497763261339049111821645492082154805098520999505743540707507883436923387580463136276645679748762982367056411954440329243999980485306587998891810961046468557491804494382567060501296434821703796759835050338104950933293183887249816691689559602174376765694341531116235507257876162235158663620782824697033575463394788409840995933967522975709316445218373615623640776502372566939566581806581085357281376721062652384656997882694756615528303147404926232378381868269639948835685682172148982309903547535881292965119901347356330028016989017492757004936537891636863065746825392906622262526362330366448576950489759218273356153324049961447601143418796087171738889987647257683258711254435705533500747607540232267911850333175665908622116477267198622057645178621741371367669367368618779785198789061435635455385959629197180271073294452576365459416131145954851698984997832187972808428750868771281744449339159759755388014997404167345681805530371125919868199467215963941228235075323640584351181852009305952379498378407570416429107431544278023432577670306731013082303499146196700705405167349999319545937239160165157063625178274356828119661779615489640878712748404937455956520880615969943311531982148603869727775468242438080403561372991942712696655865379963568172368166153404294061503470437094309169926176078438451534147371510944915319941938957464636679267101423157593831151747564651291197329003545262831108764035181982415985636499540702966295646118658989910281053649014539953339000664240219740256516219076824459282372689159459135220222145772130232002150306851959234555757595853818977095127421171188151822729947569507206598813375828490304881943256556783531492821130265707341133223754476377518927005573867246406944522545289810560826013540701681142055776526059635591683512046833524625590565964043199873220009243297182984524708984693341172197886048947243993215148256561592887082697791180324961410445960183908722180179000207871669776909814417501813743011445617768831763593253861266906892784413898408083938538220615405705434879155122950179133686481455932701316309501647943207874227859013992904927416003682888728469021498693033438471220077091551916481282935217594933308192164058402172141898890587852447099520113529834126952911379040760597356255688839757267137424332841652384970700915476939501350576657738963352232586112096959269922177358158152987359994196340356337764585305226452974858890936410443557255071833449797343447381898839088346084560324349383497649422938984854740247881353458840197668225661335082406452440881331133168711523404217654829521900452050532975070944678000979194171133696008419663249838036587141493334300280357428752223466344468095709923115592469044726835172230696711332717537078854909625497625860661721124976754610024608313548886149719005394138295680765208541563052214936730602191781570053962975847681941349672986634263871868454142796839001427573428237261500377517583959687764248257682075770253481604674698941428822951163579811836638465065477926248238328587528601301216016959087981100527539512313234724076137246081722222078177195127881684091329570216684760553744616572515184839885109043615800903884287660874176801364497403067360848117669093928269208226134296621579446385417182468152543639332030311002813505551015026666960357727619664656451990441473639134820395927454595488150537615263783820439597324461186467202393528676753720857358639806582942403275552787316117798995781291118418807569842055508330257039637697713157129759120548315150991922468966038545310942684845656528203386347875009510881816177288352984685942512663854153412878374481790593655873655580958739402925701963788206815563681050971686177719051871040191050603042291011640356715573408033358207044103086576787696044444800869371646634412900348753407296269119660486976848021356861357367516944561543289169137427794543983269551867794624183970773208574367045867341228515702266312266400381912975219917348734279551483830789372652922126779570340992910818296591853144506587114831329453658618707511582509962496508367805889583169808664499051866808894214967564000932552269513837329555780210712918310586890028957251925551454417288385545714032877691135054292185625683349357895740009610363195371919229905802864868971532216506547688939319546538848215021334501788001429769802751978569287156443313692807830096530803021079070296993939916322596747830693767724061441725958841811014691317296624795871574685600332436988320621916150665325434922114513244265364235933290519207529183146419285598516985186118289155683953151139674961123969939046054946074495547300294536922947290953943493063282582012211373480126142616487444686756749431250809117637642413744375494805027452205231015744745496226547567325716170061037058237372129450851597344502538509796016306479167471889089839305348327395335039536983099186343395351053532212786890630700369394561007530136546890764259026271641294409019987171832984670232829944725880085082250928127461246470875992392582929703863507972327749688325665637156573043663876336359751525569731096013293350815175878324491289425521783439674446225359154840300283120173410449237487166497735099112916211755858041135470671566844796562050067033398512686949998792901510216973263320174542279404747522682656554089526832171405073788263597324619704999397284310628935576499409788913174323843659339563669670852074831443825395951655973140913050381390213771007053042828700563020765202696665323334831377680240566803980603243503525811021038606676770354277361399228689710114243753997025175708575074228951734466523194548782228711393082237563525866139179109568516641680256986272477354337686149121143024187092027095759941706160258427235546108659260337466718411315608406837841114372557947056652466778957885533640500563349500320848205290184860017985188322298548384713637955017216403905822643641580054505043407752138922324359155835527301031353681024391376711540903544964689431956313694031444698161023075100274282795511570209404983849070241637068043846754473149584486684670023507184190666985435645313045522500905041479980795642884047496171058979004063826291585415212012069410969168045222834754571443848298545480661696017824824170771463595656426134539540867468175215093089393987323956369417799037286128291221855737951690524595910771992663465427183916250393632772233580223348762248695195268156095671497458333223909802320023070199656714966212378674087598991929795396542067005572127066874322903454501148592869477913078462332831582297290252735235861388089071129580152601787621690429697781956609877099606660640061695976205677993275890596042255747095339604476574974008877638107269817247704615151335558443125115325718327416950483737585841614211098490555301944562991796466562273267751829205493847834959298465486443532427482576376188913787542955657305251342710278611991709657907201665951990502940654909685775523636716024581995734251137134985718219857901199174553817244209627906036119066408967342553340592999544576817046223650581877502151901241985201193540102010460395119110798322873798786231448764664450677209318829147104611955463431497880863256961564702602329429562338746088225226484988763447788908249000464798875794295157212034255230082305169199257709104598308018315308725014333123548855973712807081689359034339665250776579801306498192562316003498043754172646244321271800014986340355741974185858274815159186907232211515007288481053552008294572779815814356387609596941474275069638325466852749735751224256399629159976662198887521519643344271812620599986863701499537701337696083306992423221470748824894248626724581001047077251944637783459459374784839538798228775377501638270136328759425360308667890109213336783222777746995543941699770382546728359755491937535605156509049854224843478122321713867969733037297881569897217034120299540982595854082147086268875673051064576447520069375063969080915994489977295503619621055576776994043712484969063202819555052936605804299292805979279520975053582785841550726888927729225064106049776276739687106458729033169468490162729302434345477179163920224596222195281093498232511493269581833339964800418047022160821171618453834259984839615094597394271632915184119453310956216393188655802772859530257703945508238283635999575453263060608355200370014765881325769957405004313356658524573168804315951292567766411072790270768232973449314568667949821446399620691408233843888351722628521251055453068094824216438962135373330751363305078238985115941417637743378245557919289736246569411953041742727509884468424494126569449401766701161082226083590672448791449018907497067371479545251768377637696010897215986970285897222098885602306569895266321601504400703166707017313957280297578859131796252957748031565401907361214401816539699368266075899831722886236774971655465299816091855038129656441094241028106741220228291626451031282045005009668735747272563316700097923072124641400840652970119524031739670563169161179118116109039683765762944867376989302401200978627956602780717451885999674809995680833560261655222590691131678808299994250482588527476872687565107762117883776945801727962238333924999545904401892509815387972800620650545983054848085544859166602429002857996089911058406578413265024059610165063601961555529182255980186662335160500104268930697659503602754690666482903857517720943286229164439210251694341374413477649213233459112407039012441942225684115603368545178165845501798153007815471561529131552993165188210864349366165979840919859508710728994151804130580651445817889201734436108683704464827550455144061011845217778321022733231633542351364878007557638428194935557312715732271743018239094955325667829940757260624346405012221859588810552416687096216575674202553505127318207111976754725895467328423237633526800072778616550232455650914754211693157300577815562427884659521151620012089241105750424867350699621823698622451053736609101879416676634409150682337503783996200956184271543704716523383020755850797631837635092122840702160822140736751973300205762387224542878901492737338204920246625744607121225194117911797063487707954472354217674013284587201473040772353115459396865477740443681597130712307980515455610134557302796538196715591377917102993383892193385607031938038873151165335011399377153887621703734667537439330563409627078884038251983863404923021923391824593543668993936733150753922703241218398700587770908450299716065139847998508101913459582452413368722045544820301593383374401029135876703908074063901225114778218024106613603878630660519078258391198217262482945140438169642344409286994553613730426133341134925987620742583727156094863568000727226806653842009542289744544468239197991187815580331255332878263291155874259023057972299950609092684269188087748457529701542574776843819284256608210486944590123125780500259918884157866012531911492552169251287139979160499796192620706332650841913260375372624624767425299086729344668143105658675755042775185309308177683774579906388999082822338801949746060409522440145347716573284678851248092402205444691234851676449040679130325400243305355539763513603292623137619137899592441338894865256427041308377877150042377190119737161684170059358563579685087781730144580376557378649496852267638694083602944674484349871626329634497845151904672171985154375633957848876830749623144617814634914633593661982655025502047836517192137116406273925371651464669407543452774416800002939109682229087546754620670309008015933859115945330820245424034983350681528334440495944348579310291883613997012263536996766815080580312830277844564636827913731079457762352343560730172247846805817695351346253291010761349497901058949451126688269888632231848835199490867849156595594708027521391845262857170819157429574586164905349377161679111002293254170388897245794831668592475359264621061913570294114491535893018495847782569334733101622018768116748817382818179259764630953092578153661537103114107800686997592183123923200511873825897013064568232934216929113807853046640805457283939818437591718825986481101132284998105933468698612205465475144668302874296674212979457154917039002135376549342021096846287080625399644869325738382060621457208614873210990365561165296122236227164571802950303247232694712765313642930235711125905916230508906214038625580216235633658793426540625525679709134008362565794286840447283114386739884309465708366550224212677102280639670570554376088107203561612274455279486367348297544992400442212906654048264832762144718978399875419061267946979971301668848401839996962818084228131695282448379091622649626034090629054900676610732178402018782929565499284919089850456882514297077133693439905627413106359003639155797423759848006428912751819693408389644825595353164686172190975837779689700953662200401586634246759082288070588648376577391989461904583208452663417281862594471504154669702259135423891818105817856897816113989334892903790256487165655289566084141462752350187767721417598313290322612203548056466562526306492998267967821951854504885746714799098901578162463711816284852964191726978390794831542319517607741347082510845145569500603931400812856375483585919911508698399343411327156722687070416690777640900924567364823326470562094660570358568841369017994096396849999475712946706765278961501625674485241877143854852652405124776466165389229849547808206190266280353214635228860033228767985798728068362994064899564129363587399998487977631830306254922495796105152981758744599182847598664983449307328460841813691445866381738700815686690464077813923302280720334070960336833238741955300495260910351894922143823330191201578958223212109121965797980555103189194538973207091311704329752720190611872885112874061920940013972128878813481382098491919929816419035903017983209185991853573925715115025324820086115725071539880581114620685971281354450854497793163530852399556096730758354980826193034180333127116398705968794908028659005296546897160923264050041654053818987759822229125104860229339912393226636183920210182638697522207775088010999146056079979017790745767135675550391903954056467721000840332159883016721428799666692423789681674411507884516791213473861701972721836591780204957630556673137989812505742727596957792836129402654878273012364228026208433628140304182525163016686677879185284743798505185712515588615326483773833468853570764210357995382194031428637370445260201080512362844841931834234330095243374372049778571492580552036951559502870167819578962138369277104228275501312623610434027579486391221674619626488720661630143052550436508498131459779658179130024494887443962253961325857383273290043907496497540108765443076446290562808790414727802314678736447504401534324904416287603839630538519618348789310187196693681567810789543334920702761160177935874338179766643828843969266799049477228166005846290816170590478555484204122169671539485072575725614626625496572737325359658928304576124386982069446269329725001467737820859907676634919756356156322659122006981222916354409621004298937067080218311519748122435810733775681511075552661519514435321986771816227613529676602019684486060272635517154543462748712937028474036406430378354912205241892109577133973118074327951576436787171228171583192626883664351716286040539851501732338384300692184686416087733105369724143225895887886976719692258853399953595888028573088232265725956068265466827191135870577488169745972963347719955541521695736747208666197360250527084851073574135952179246453720983610616792366570990342913129015859899372600581648533069814224768048619662341005898695977026897056679978859243881330372476048194486609816498554780791288380521532308159023679001283721009677321476608167852144196671077730209426347536906703970538163217571363321278482295593752024762511201824169191547505670998331330936590292995356344006045178557945009536405075208919857817231265867055994071483936950792306227201994549431637072257232854504815908345523705588371018543533862924999095498072192876569386396978109909436294062862941318830147093600602021861804075384487299087024346150057841221459001543320435516950356754207562756979620456977998145619291602388369906102624658014424978539007930636009039443806136944773570548448958613788926434647226716070073055571650530469287188939723137120949263843998564201523317791468820010052356183888623325303906502317460719674758562171087052827958118407348903863947531541033809814517189062189703396379521574899337424627199951574798004725399885912202691672480472339607682054558140766476601239649378064129938440101318856353023978396384424307475252404473657667444986505464306376668311491073269631190994353413186443509378257156855729229140397152156639018755256618358061083979769306466103461460413786219530682934137088334456784829695042570835946705332255902721179662667083339695126122846583332807373604598052717335053852865319010203344442300204612443558561657496850720787069456476747508786776448360560257028611860268365244988652720234731497088476075633236605196812738550029507592716829371510192643221611120075574466006802166057399977297501884487360759894364183985155591959440994429999596049929500177405842945989868916172480058652302832555190747000970723256644622756612815304459356983399223146931682341834072888981899190409978527918079737836913315395988114052535815073485334454783690320089017489856961707626868188510906295088613195898018271804662490326728116362116602219421621722448541921097536189054517825008011365355620178597723651604302189655663704440390277453440217942498480206842764473325967105523474349979065946016860809577357492811281485619657379950759179728415926418155283110200755916478355873947280840029641647661942679173299743473937033471766791612300308604586686245532326974258466632381391514765436098784210013196743802849733531768886352844478594328763719381596659802637906351687412469740553641715313048983299296371592807645792538016016317748545432789853667585028531770909053119931553813555160640427683915494019994116543234254550819980780247551415790904894390757794501577005620852058923102492347099644707842572542455862612971548310392622399936093032245446775738595399534569650356018891015690374758531897383079161676158460981425447762782700797073734356999187325071266256463361982297925154320706064252822308234153829762327694502840382993155279323165484584345286516001764974450799227643744968388194960047621547890475826099682349217736288775256461125620390416021862587245104499260506560476341983793227299787568706318719145552431721740122612850085469452759692526099997816184648991334441550684589428051995214467943946831276731579394283332959628498805142553057036095876974957325714700080665939279233895709805461733182329268955564648110574334966262982468075091682434406640537818823693359714498644095901136749094742082258019916850758768598051175326423480989334372330497393053709182440278708376126478559310808987603147428267848097615254229783339133410179997320465284836094699422511695433458716990830108616913170358587705609507661816496051949299755168287679499307544492516320366554682694165019019689559241149176932025693847992253078330258046291542119367831436649221935509844832622976297031471956248272430811781286354026821866806622714488707017174355068381504640163698983303579413110507438978482110596412657860759437841156446914518460790863909814753469919344207384404153717913365690899561392450745529139023536400384787813374552925827586701432962476949882669317079968737258027706735429945269357524836994562876609807732312488083457902738107610075250990761911858765026871557322042300380575364849004658246017477907558557051269390363422514241510316943221165663091067419392440170421323836053508139757983552389970057488614093272719370814716571048370967369254742465527567006063319115278613476333967186232940632881789560716460000498774840826434724675926036810511877084054687786391420021250521242714120530396172086682154450372869066743331393087815690651077592685910369781224284869202253361762935916571545033038567661055965117227621793486162898493642608666214052077909946935662487810170097050652762508728321300746294491730628091983137126889466464899899470531181387053713257607602019011165374187827194032092666389942785128351749170350847560846840900444858173427142727824745454084496739413124004221659228727134136199892144781669051063352361485907245458767160700625772834576199813479236638469832235467281921501140240980444141629203573564896885441350408748731382929974546876352661976503444429201373661155434199851641429576679277885707329357151001484144491681170501302751422782273820532109620268413653468738135898871679976637980959098559839976397729165063925909582628648156109017553944348412558695798853596129274378100479708768775272331525268289736718247821272833263462233064025738778297776554544427919821151867012467202080078811419073793608633927057951532222616001828099907817570070844803602053051307311723401893906547652697400986678033592984868811836907354294510904343363553231412663992921326797238386642988078926989859101985871023958366630385124198580494002553528956286068058275797324892147686848512346498316563959141517894717976600672802762358802082654691155877609496457451444536411567369890812143417418647916654592489047999257174292750894552784489894738747276186363316252056426662677576637005510336118000577976954776880798042044452223163026973990702163845134969323807143872750335543091458073107092326200969534416478150779013974495390398911163045849464640673532746629069182161704308428180841881656382350388870811319706613462302424030060467382130735614881177912828984201074346424874474484006299078350824489335308610220380912124107952978355598501862938610059435617122936189787045382928076300497273142909032408488970596231783731443247021722945416790830529405731238894630576152907592417854980635163985785668132983984065093340351157724999463384859190896764401583485810851409922857516178601755329634151861641271845377532922448774596850120958988512834278786494448060901568299162107292804395888188036049093605617663049488079440976961229721931747643452605979531488902420492935299993516595924119679549462615037524770045360411443833970133452357757956989712915524778568671987232539641884782673434856954479477515809029221219512761530238374799174547223562303570762257084385621089064959867339180171895211264550784572886250646557363999570680649917867909185128212061725997477582516057205009560050253813061107130138283242728588109615422025283157741010961516968214725215027973185918964217379819375419439238604942187889768712917990270125218575705807340599350126159284494147534911876286567816437492782758852160389462308322727193815837830242737509307551756890968204365288765288880647021105669467343469482964271099577059894959085414676464379740046062783829073803705915511137808810682964880347568113206202707433307424565661090179296716546925277518023229840820075225702687117935708463148782453167208409035057775455477232105783923248785481891226584323964152239598552562037785785759568529744196986571352822496904097271302538507260694509004975344099870559594152838870172125562758237301704774021017082836648184428270547421619937896308464646218962260136178275548890032441294617562358120175767401399129977222996202972652189215081230292712170043638956259033269033060814136609031614152323810891074981537957888265261513923789988360888884623892839612054634756741528738116258102782715652622702930479297852100959310143728241711679094859436526327871678102062468922106959341484297647593722747606335332431706510586238921983241675843670066070750837959235548967907084122084161313371764419618200989903342462719575237036524912239792426901015379661384950873565500602619941930145803549450911226506734817415050264884752266574521205797086755482777465003478957821725243637192621277412806277649450011589434265885092202366716601102269429538907872588657298580206728684689528404046068443465364656240683231717521568239334040517579210423881521729195830198217160960650678379154709423961175699175477665857881172787589002032860412722603239423241421701528594281515069329125640641386688631053612439630136915169286832239157718936324210239818349341759738356749521270446995746055169263289596539513166184109808550915809182140467423269522874020435045774661645517704743392781223877787499541282170763889994788643155390078232916276510944239113687574306088717042801507159905709477599727059589147201327972624285097137020015885307209720862725865601835589345870535916236936728167568192477247766907060812966056199790558315956578982795989781634074592511669485475334998286213813511707739913076762464548389824212198917042017032254416507155819236908393769981394868297195089561599772467188452167412362867897187826600739865381446526743182516280422574799420020160922320954893862764316794339197900485823774846388281529588459178537957868264447569206637953936538776982741156079448797646290944229256231496257243740951862710521173223113625940111202258082552670683350324550189922030740396318917184488063013180630788722518776196687380642805631919888485876913639400142478447457324428195958221716407553192856329844288693498942036628881877656611875289372821972450055428152654234766019105047616678975972188950106845677530090565814328908006244783276579177348429952038948592771378578258449262664471170755427291913101757207192594825964381182873502664092182715933527348986991413571758919744504349963493070341252849825243716044437935650505647400919344493501621420718260695209716742024644157799936047776953155790039743741161330590613256135726169428159238737980879516891867565437056474511941507267627820662713028796530711566696871022097460780554268765954714608396813779079325684673708180423670667325367474608675761735279890415733659333772074651782821219119312163526309749619856018357127301068398898392182252147385834386445317352584684109096411705613518738764328706639609040404417420054286408395417328436951081650516173368018310027024464857929646849478479094394713612933233661793553319599684159811676353971748112088559704595740777161233056791584146123470520259931439995654532237436695775397214196124984196753370641190871276841335700139184073389977010703448241390634345953802149744860965431736865389294273792135138855095281148501323307035111332056329018494568609527914212608873946095663489213849191187226845425206707908047541395018632576190610154200876779280317064146192351717488667943228296929813635171996664686951461133091178732123105122370331655583552309624226273774041593244094472201657610618443998632777741945026225658837104351624028338978319133301473603301481949153849784722956060229456232804618805333970830857339772045605568191086331688925453884709980779069699770455494337535920118244614889077805828581283136486393440152369616645287283785327797026267532806358053329263256874147220983300405838985556719601646501125979172443141953952000655768642373865604468619177891078976059963199835836996683790472960395303622540038738650047887531305699710525431876720910523832691502291062484421101934199711381540470453052546126499337550047749594001903170253779817055206679618605081125519770866397632454925885397250337865590669477873173860324311384152109426226447504329091235742121074656519578601034473661049942450173047863858310200595766336688258560284616005434183685116226902867916151232961525472943344710784273730692886618362693404701716807663910381221668321630416849925905345427400746817223229916453129354986554899498785414395146618348567018235913016137110985355431931189246450557538506793608442517289258438441265393062941128745878751986616070348208128947314842301566120403918543354423562604055093902091472014427705168113084284880043406224093502603152130631441909373295818983238327412247966551121076819611005416646740595547820838174726617765435172600637494611930294212495986086852904721877635724009663937926431482250324410531838772609001815369021773857744904608191320486630618113276647858916429806006524652995994432883574703430479106830504590977962771451314655195845174924585215307869279335328403404752190178148280882538891580573731200633011504310265911279753330547162038482106694664311858972054034482886147258937873216365359750003053106062644893511378983244042554444537569907184690394524898039504286915416956883417550420204458568537920693040633723863693244320507576015658954446475656932592058906778758004759468704247574978226973633900944157974769710197654132929055538064790168788984343954726209946129627421578933196555206759349273446939030263675234463152773598954208867602327324853661624856615018221093760592433830850741404381182622116145761403576209563489308414945704136830504812639970995698775707870860137982096854927824816559485035878895527440394690325594697263990104076607954194429347084594447661602818595405510095452013963188701061947956844316101762658330760394848627490262085342003328015888968771263024083892183560200223169370934412029603261673868985342171145434139276244424219003201287258402191818871328149124011013133129513406586197608615176935297873844462626259108325369660937990613281214679440787437460312370047645087290056836759260064558444435179830896131089511884884375222496422966868849277328636922009181028522234962273861095540574140035710822688095561735145372689862457071073842497090334756994288517414410194200250971413595639961958162017452226680020265022982675850556072906748696061494682913214792095510866875234188176731077918033187196712082107066603325640247364639412882869501282867379844954287545465548745301589933909337035580980277855724844759685070662336649796411556564154244568560639444025848152816845363371369169301211448604007835376229278260621392683114657894612306595505349135321652435234996629263899835169982871713566153594428851466205193457650296741230108246909659264696145417606259267195031942843979081015372237908577063627626436374908300132879507568543408500613624093757453243422492776338235666933001179260283192960824069304346440437054059077185816283426815286814473593928918334281948402430666100270886387304367472680061446926889375720583096585803243421703255787315917814544497103362139483325358794802883818243598540256367896081493123022108627173923423608947940997397267184572863484038350004924504682563282819291297178795155080773804298344689228490262761074876365097844996041609459310999685626418294328812144254594961012161384329314282512985755382174870856310818483963743967461495630042003455411524456700618452310273401489789244999710361273489206674843191976295656422164667700106739111906884781517638316043513937740111051075876806293141835833927608509561245329663560154197865589429274537089667203058231196151562775137443280434637114677143483543932404565459580288382954950757788952204434674531320263165575564033028683879373580344061881668705607859038091380540354631092434703329601992866291397897667273093773006280326571059748937120818712718769144899281176099748903054974999345635423871700138031447511805741283143933255106102624285032471948968585499673413145078090449644813665172857564395803231383739269155670477606389352013789913094731707223247829795876560343367570458179240772758477007416955741955066917900777899844077986113374154215820454445369865184502337646468693573083607048437046232150195911327634781104161478211204131778672469983508737680666663779438492445495829944677735275985580863184811241320934792673451048475954818099578702876784797920280032115243202704633094979946270147893459882215520492292579237762305799575903990707084483059296918156877251210430496207866668746396257561113708421273112977841689211588030418792358969919159302416231901564073761253514864889859462637377765781259429612209164728392746100079664314234041042968136187853981720953187493359081069459603498287521344568877831554179162686886533274879529395110100088806062078196979899572930168194076761935786688709633237081188664121458649308886028915745231857738913060232061255780772950695066225131146044143186395786680446880586402284646288997013482898744611423275792968972678046712373779585446946254434114732778699542977038899166781257293972379055000088712723122415669686849362484644149814667170167862054912976138433598157864160638844695166063403816714716744567795044808185062260195956265515954244260320148454039049629236361015861656707829647002866650083793352916575883866101776496600154644874468951443241431526893492341779043924752761605888326669617450130460281025643478123970851501192290533655276978583655912165078909409294164308360535109654769415376377532969809642085185783487847266891697661565915597122158283092279983808607863452275977006939798980402830721096508494526857386711382061498317349692539577620608174316397370485039972897562137959133815855685526150952078729236587244174524413814291122518236599368993829313965860552698901477101732342668101771406452984561503059364267937401990690222640715095034388641270097552738001150281183453050639489749731751490259989606442114344448370709526045185769005062101173977760483210340662871705182568991848383671094198033661936835705658368378223028577833894044634690253341619791535917202752131309458658006671410517572822276315740139754396187188584354991079064004801579108124678125006152036068495850034262302563303579842876711746175230976844661658063468739578396467385478966097082805092149991433551045161659812828620813114545650337850719654576042028967367873207073015736467858180899763349811695283478670186901525938642572561399036567779171048621545309577097176163103184170425020125550050392975058004265693594947533280466115698808702816386479951983339643004646574458062875739772308635612974771571832161410825503206911189919795132262213630433592783525779722623356164414454841077653052989945593833715847631944538580476043342534555583981356042168108239169815200195384746226917011493658109518172290456807661638375280071723243512166860646379648069128739568480417852245825474093328621768501974952234698987670922321778758728445580738200180589155068874086288811995839409802540901957133058655488351540710790986709898275764277577014590326867545543063096074983638321259534557904067023772412238485674510941313619926309762976119645757441909267192808221942995145678632459374613767625553886140620863741184731431155037791598060502931674271505366189936350045075013009503620348985216277836417548161262291787256007873099386951662704190270284072720933787998881760656620705999670345951674655433204835282725864669066108915556587805749162473261660818164245037233525562162592155732100205131709871681211139785993020104888029210655210044662211336668744621685503135890854940373786551614045623587816444289750896789751929192022269247558378795727350004004026769193874283959696519029463834294078674277714255420215233282244432132453179831525478744087532319109246438464263933136996237992813269356286257302888139638241916629941055094063938034304682032815165329645888029136294879139428164562511748008996601071877558979877574278550843420097513043655126746883232723473503840788273552285622417968096889196046677094046941008653413417743290182795063816252096605077404063659099927565730361715888427275058549587188149649619509489612603450654994504129677705139644696157759331844272612240379702806061481909271232358378445121070505095385451239058418696438687542471071874300247975271028578358634657399009118921270516062567146537059584960996339098045509400360139918095122187452666055436784443389223515868793230796081330562485438321984807505151213541865721127702723183766082376766200243626074351473340160245128743560155953658246652709439862749452941297665624421105769225761880612049221824775646050564449487836727032294795383246004166219859379722086745109498434910533291936800640180184518580285316310340929693201428163066770891347294207234825996247097651547823184507347596671970455518053491120149049247580816005151958737472119436947365578965023148303072720752824205831013873255404260798007854958493402165633108532092992813907945752579267618117234107391582186814008084147399174534528079124036609316253926745844821741962230843998477865807097760192230063045286292287887576331563058210212438102395266486601715186246536139100627685502271313444023532745920573338533398199198523134460764747633308204334024491265203187804463902173188972526372640933714150743927636784454024830219806944112880457304276818774243674127567276625477592043560919441790819763065695380592281761419601525420949440429874788616644928303881058139321671187193254665048670373877791332184648001611557670261630756953363402074314340801239873789451496313848806258729905408176062457900873211659286559473003507692127503063934989140543468726861267668244040139460738140285600887809177955230360480469179562643798715753807528376188250145825935448511138598431640761837167833228460222359130978575598617300559390044002980459445498607091322821296127918664757681277638212803660639462349544538107593870781583409209080750988004642913407432343237675666817908737693319196912775221223333358884162110601273031073272543610218119849530411531307879729850428213782376120663441810007042682595165968801894120994792192338719029915273128980211408515849331138735144817228541905070358275078545387592858523971770397849626906878914961829486821066067080597384388191994212570256047769404064982705298886514398202087891375174180120020270079380721371231108182051708887522155123943214386224275409624597286013254198793195431629818114139772063899109436300126734582560124293128557638386780080829698264010006141556678240334136349916208546786275284596476231846788530964467591077134095438939425828366425794683391011292513476046098265864439928324761995922347110569346873334823109834371219935827823439818372379882568017668825290859501189863878301998624644417037882594490968719390148516538328144540967821170345637832171222670654062399957498132737054591870032705373753488934227532256248474752895336578271197398198771793563180059834576389143787040543680346652127403177253098458270082616266658326466080906649330325591416434050269917201597661468336695526925560064380170850196544814202797036248204204533044607996951102255071403525872150307983877243060616888907022224927112274301575179360706663732878306136492926405392049283726708004126004693283202066855714373291619591453735661166932509537785060515446886880327514622145821018472964499051639199484226461191241349225471509441271627025062509637243834669279105423390690857197676669650534022702674427664650557817450544610496195547451027068154308592392035293666702751126235665646581171109797751647548105243443819829365658655131998418962130549368961979562877901234787120149129876062679114910291341858018230579229409900599585174534041662267010395182277085341623877106354567231801095760933570269902749610112047538303454779456765200038850772747554975654165387591378092188603755868335868929138146154739864991078115051673892646286903084782848256433445684348107582888581297136348791392017824756983465678742068296040039137024950305419806732994231659860536667288677834725020191179798452790465474288940984526282251595318341049507571544102539130291266501063755560298111498131656049476381304924747832808583287150782049387022172416481109933947912965080389966794129279380364924664650887159823476379929263962356588792285301338230246943281224930458091430899389467765137984996280830416943574051910171805634190485539360991685488967326928413751602174052413496237443712060060031213432483075397088208367439292202263337932755547865691060287314762433156193844223028202402797261556260163909875602282394325192717215246211141842608345032557965818933970114646239132102183076771628113297813874413820812678640846056959789603561975946312384500580023853803871235448437383515843028643376968248866546077628461237490727691428490913543188534340593837935075442925217541086563354169209683575412225616543626155754135036737028680163680655292246767292820690324680040676665597362132040386817673223546621487496399443606931735904680209517906235962306572412027900046653668131858981310792366879849302007599867765259380991401551912358685512700880086546262211460680581277965083129029131994692047983364480175525057444506310014218970618426760170772910116504639196952384062888615834027267357755902353081613443749177938595985621782621178664451880347408392367306161357146674416137211944273804040169479153102671128233719253331673876377663349127764817926083579813943432292219242543492816864891000892102657056089159567633292239315573572964306837858197071986646171611236265762101757011623752505833133296037826633881787875734354486346991497295026672643628145276638704754252551731089813612320347840841975878957873836607146510022402153328866956812603608390132760891474196933229487788106690241851178193762644325783246717821586075199335339150474569715048242129537462123405029885757386265696415759362130020085195783383733304773723539460525188164225769282096478504321748247096600404204159719506375585521158426992232485466709940292050176342348208847624414596445796317528289845518838542343933447849816746783348019279328865162936426678337733878118514367767113804089275941388060538984394307884660215274195338752714776983504649534614579128222658384065087074374776171670432280138707216111433327029416241236259563162399195721833541115695884411018362021317932749823714034150950355126102475476537142158011475638531245807389994197260462930659550101286805693064658682374675478474543627112371702382129314711949078550398849180869018134796057363823891283125105052252202497625333207357986633331369108562741108649835407210356137991451194570112012354427032340419068804445252240008233040892283023832010972242679260433260129366082604153782496999465619807270703843335145081731405545647059369810970180889886361978871141948356817863302391476427663045072711416312071881879189500815584301185134774411353865112889721942108514432747670944890511941239042347280378645615558663414247698622415672794796096938890181911194302337251090177429132610504604949888103665135021929176179298964516619029037707102245230822255079255334459821700005621336994027762328119671377644410832836368653513073377469548325980159432662420870370758629241679363012451326557207469282244097173425792778151545912828563857431870886191702243267205391819677724813017287036848649538060253610780893026739924929805417732164034526894014860391078639661868024793861909088153261965668813045886437521950783155481928957708888973777284886035253647742156739854545145663236159978543156737758978033496985185670281727034937259543639479174215419085065436620886190340416663390739987194069309144528396227123045102320583242317765742135426254685002659501777975450344144068800336232861751484141126175072253179904411764295344194236667948037302708201711017271483435845525062457378505940786418881302581548182762004671229150181751050597245676875796003586803519085183602764081332092655165115202708487535063222614040723305860384761954417960701980553749130069536716388295634648084607982318385200300062001779146805816118512031997200456207258382350559470279896936097455472010841326874488150472422183696669128664044300470154029989778146733594425264559798422385355074295285340721385732711783065132106986931020036547472488595990110008869384055220531849021189306703415291361964431121226117054808024682388237443776326373432554212505393308223422501633970466931444746527023503820923658649819211217653011091606609783504477764303479026545481594538831386331741453699960720775701100121528944395094943998055983252034319806972281609124737735712427736226189754183649828398952664901974915927823947138633707774236104172997615687823773532381462270426494424137560577834382229394641313656261000419314396887196212306179770752126319300871379535728018174426633329194523138737969343493734749794838288286331215008482588275101919507598495261969196524087425620100014595750893469387973466962078756272224020993817193181004003391372137155154701719330960745878847142550655340477821408667605342628078309250235529006423450782305894214589462531678080318266258565290442443963876665338853612391301822644852988011052065724922158579147359531577754205302857061971701498613767279748642571773936241774057079715590425452700537339119651903321961414617742016685567888554909392215175694842669899823147267321544835854232489778565250094431588806576079385933887663811455349537782253265137129760028148705931935749366257400871570314889857789446188982280478332322856905838455448951246603173521927733460420452083844122942919036327207414524337400220095822042075348020160618800845240973660655317898878343454212462091780741319499647882750633757168203618903598457603352797740668179768279795250104404356845166324264661808837108444957807023082176722343560103627665024686135336390967446464361314579847103512683636159842195809640577283475874239273582199458313013557591432715317995027367239468913408838914248142700052872152702340843253627573634199363451833475604955159274454327091780575517097820990269774733893350289354094951173204113930427732896230826790770667766808769592537857024057717835718364030225345853625646168047100692892042102751833421630532879021415866702141800548188727374240346757843986761322115399486162164769882469454592117152181992738850218156675387273019300317810641910832416331794836489457394401770584408954103960222575556812385031485340796752866019717813416918310934636570900501512380120301839454891982661235561979374112850384705314097116216733194785735430985823462523852208809047171955697628922155718908587565088473129138921105528662773167116821402741543941422238109228033840779549648692240618655767950539436705825626703538526220345553331419208630771953039273943347982312043990832661408193743549607099022360002630542076997774899957834343722462317428070350037911481808713078830026621088930532891943235831640724048503528068508134220438806231307221410860849263746834083848849691243845545743648778887794069731104009409240053313912566627021955693202459599718977063179321128409917677385017842908201952584919796312554178722822349944085576912620985762441247869629281724615547138687899267617739370042822841937585898460470607769248866182146201840471941718131010192965833747400754544816727512041486897781122265439450683973994080400238477499024508409789247728764707130743388643781083428762951188693115685127407120265989678515089482943957913303671602546530992068580276481228779965943670449789119559218021052245888981396462355949963424414959803369536341655584129939191784185532858482019909483064405312108827607788566509582097148910619182361619442561350625194365072865373804465196014399111065914656374020288358341843234910648003397961521861012223908216986838145979906777691750604374314114120747595435030775790519511533586983890810474290647423711584854408725440926604373517374241283004744812685562273403292259076636302471197941839108587299436673320361990038091869706419654660847332339082552314820837592345407838619808667779123018250305966217885172850811598934095114721444935652028424994216152860132804732201837689860377900354699014731624487321541306010579638659372962163558636206493064960535292689906230674887742041015258359181016381305205629564852907559560392347161904504425132674014082440903914389778911749093148798615380626791751038515870940523602419256501867639623336403085484263555350425215276748117865641092762786988047177452431818368652140265857073696926449526947981579012921897940217929208077962588416802792926315477534574768960943465457689979493595801344302455230836665155072134353899014000613457918248108896344374070939214564989362951631438565119816525552640239047559957699133865194814343474380845695763853137883583784520567928491160364568557795093425970959314369114162465054079822503198831556213791944286750688931329226155009142725621229965253767715401361955149586792297968229634082137630100208186307636496640022152266644288827017481831226784626877301648689695934775662620790565753162061699322987811973297900650674568504429461266593102562582654640527486629576205059422825834216099196439212096425608678394355866982260856132176944704991243988563151425448765824313604295412736396622259272343907344602369515404380542387359167845858093236654356579929455784381702423758197824139280524096056875868548898676598597400448389381740689829201339087329683387569811618901679309656879274279282748676896545326617561465054212403926804691471803673865103047548374935104418050059414733126375925538333881362706007001811772999878494319857097646984887487980711784689086510055341289992690084644482630492468512206361820181759065375566331279175589666546167625590499757021437107646747258039239926595687356292979824127113229386446536408696626244439128116617419174393172793691242691181838069024793494950300486092050556880179838359141136470237396472545468062746593288471782469311129149087975953027884844734729000657229052286536665813292468292029000143327119330718369371200195436096714011747674131493274537592099042502094124662718077441041790705700035340745792091912965961094931105881758831527729088786279678729139542555790704137105473209043299942487117133930712524302567430347633607204633365464793729652862930352450230885202358566839507651818919142269353771241345177287445916135727994901953227341790431497853564108174843218503690294657027698144857900543519244492857129967364351481234026300890182467534053111905601133612217299904623313277234855724185055201110325146203932105738440228016640854775253026451048023549318825257371197653629233061467282331972955668985504408574243645642110581826187359293571882804863205304452948202136894094691164819862300056044273074471359978354822921751909637257680303550758710017758666699720158826087449556636255143358860046492305548593570193762745792024258020321405467642149243916874472019913843471120632568966974599913316231592280234543454530074500734320751279771510714209013216881250211233733805789982449649387307522863033638841265810849182032467933079617083021834277868863858789038092339821941214264726160740598083964951418954325274401540982771354374862552192234864256586095750803122350038008907781857385717312984659435106177594880249032208981867517431163642120554768030035505788865531495760566853405995466842371390638683405398696379294808994596017719655807799144002304978608517783749662033547183324037308946134939179202311791008099864107363057918007658419543357502381450810122221604019775488121164257939948388700127020860813275655502170273721458220967545578806156904486936234487026853619832364913943594030899099855396915804701014661555452080269324154455162328320578843808281798242583458502212825090988512471172932904840521071794511728297328260945799241386831092789490092649657721614998717448675864209508143353276382492383125640813604529747660195770998406973307288533801273130530515116657768127540693780225968333941693454127935064243718297710785533388097118771235506491387595803873151199573943982540836619472843941594411271614242438060045212376150951617366728394342200797122307760444983654644589899433703760842806046172477645699637262925060826831420055992037544130500078338590506436685107083269075168576902605199601683709773532494858926558561394978197613828190879074091593074054507461787044410953252178917626075509882493605890321698865621681959190972766537196725671762353976987668612776249661088739662132811096612798051580005007684045882343786667763323439518257730674540676813077155137698731767093135901730825486139503375027566555927946063676094106375898498470937119055749920880828224782507959661119836001990002485608820997451948990754100233597566079198772237114405993166501953086567186609578958904988770573899719697867291129465394036842496079989188619095181599166459055181283673953039362645101580583568126286029007506665347970810366531674326431801885577904411595922102422144476129788832707098411561145292473790872717722025994145733648916713174347509284273642613767633937724985320586454920082277551754672098373360076543446845200716433797050138559947169501988394072246034936957676565151185701732777278566572439067164306744060417690788755165801834811190140365508030276214025997638822109164269514040957380467621594379728064227878438366481334851985138239855268677726678337450553532876884480306989188233580596616795358944534428290714369327750064460861678753990781322465782787370488395927399877304766626210630403381379945468055712211215980560380717854400198191219260105990210586128439104795512870360370585332439851491747859512442626988412097571642210330164431628753862060704764083551389351012701061272588601439200989889643134996640956044200157044563753097243822012535645687883486703470776821017919857445859792696616157039417261918866990162535652322127178039948713508406982183683436433673501414235162667469918628642544457942689050381916633453604908260358840115704546108162628744145781060528216343242441659750235567244935312497787080397121829304977819341016280679712920799619193470146954682379454660213806900369398564518789797023235117147328439097046697192409315341156599464327596872220689901652418910920221969827308277116827213536186373253104149224537594482508049522594755048656560092600714567764429463021804586632970063968069650882276867593070989135128523922977052983546074852783670676380369671643146591746577942117287871023385098804647662503071151294937332277058323034205553001909592928365477299809573537603781526544285431146059168144936656117483378114145990562825855595685307102018810168315142551593902427814014320463305118501108777146986663130538227821322890639200356505383552570005487141125434479318328649370866861981188708430569828479773315806010740948337240776255787508570431269805654043277202831073936706029375769175098779449574365173292210415735626184027697815979283553429177965444465359413239953506007892679515763412912937505367075068883170911577081542764312008762928547088635436422540484725657359545751846655217993570216682636058632769002835586186473687595270190997342141766441531972420134632356862558172265732408353560360108958926090927964631224552537584296040093964167652938952136328621053726726364795328750527452049754299008192491908413338851507367773415375154097862020005837986557443307962920467503910404097739531158496065989604600039553463285757446774962891503867954577509367547850640871200369072251834900875950112469354315735280499150522582031903462381186753127117812338085635135517243780248003355282166686510190463611068559838281349521096517990066732697352258138615901173195101439807224118489658065998361550083295027583542230972038643306181125565438969458031994500141226481175642968235745254520614007181203692419484268058130681073454358029954123751948450678846920214524485522958616532154358670052907609797346281036293979349011609303101179926428704852756265911202287765768613097609122993749938174338694223231883388788660202730535445672650099965281968171745682519790064450475848178109026460420434368611115240233074262024986812720160818330182950426684786803071993965092007637676911070520172281539474528377518816471414278968433018150733341422737422123539567863878028640734105933103480999638806984503743145761345816808048692924369364057994606917660424597992798439096710852898591390301904315770002507483851328506861558031792547749589810965188531258535179608314249293033713241697317102493500985772244659870959910296273826044186447431059774120996146255986911885613550563576645129963172787495803929860658953622436176493566511826957832782966394525725657021752159638163590750360823105274110089749095086852987604458385619208163122549381094397902663734564065473377995648074212903980702961564611134250805993010781697773807857806809697891816630426156780091253319607931245338986799954638617734549194781875000082326068686796680430900474716732010065469838823212338190771866753893640025443995726670340642527026623922228852517718161761977907877178990418037133835806090659206139946062229504406181037963125773224336264640422749676659900210869435269721914738564641225716844710654591811029576820393810900467527142231004905140534731416558528777239402154919133045220492681728666893691672850607622391824717150458500756425058858326014091210423112641564452384028705256790022511045105982444560313083126864116700501948508040450635372715228482544350417538294373530626361908160093401880440433145797824600622827926227616620927337487033810593309653756582576233604164355155161961026282623567847471825074413933118512023332566571971846248726151853941697395188625103949311136573831881042044337244078319451020498360483138371323805038806266714834213975233829322073290489850437293565850640950532788250172321943744847601450934281354085327866142117571764694847686049740242081698446739937821769499006157430920241243025467454305622162482855294888716998261608162907494764362016470270678513199407334216848919302722489057101715324710648182278899932821797251011327452428598538729769392583517787406455435130634770472770613185124708489978320406336223494303384613785415557947136728335708382783703102543135809569395110427375994774172546586563285972155531511148144099839450086765958064782094534759611432752787553590329014423996862566222397737478448724120095800579356885377809196301898051464836101930047155970896219746368596009456114156222685812288686933255416759277331949043408176404660198309531799646365676994670191815301787879693538571775847009265713153889200703096117691980541802618272694231120879128981558168598837678246181326063577337630725337711937473718924504095304767100843891734998181620704369324514076011175470743923501896669992413096474975638532769304113132610635493283650834236586492382768091062703467347168812580658400393551543316881435619836604043161814155850248547902794080450887114129262863715410823799980698695655636865265207237555887233470989330670360729176575846527545039762484393438156028708008877636121373114531707903294759627192518008284428289541966958951955538593675073039888226031983770423466843180456540913252017484522173335197097755791227808277697888605325891902304996400977870811455350681421140464330735416364526704535711671125122031965616965292610653280957099698442293824394654684224017461714552335210344987512015649477747482524630643632329758931589445617440622396913281335862967324762632995679749144478060369095958214884648269897198180227076046862829430835647000443294149595369267905679278227927192806889517580031877316242614955031325021246046561955605852367091560984813736068614288809629711373784105407019986251989537668158329062035296538546187717777291840350400285322708043534326179721552198969917124006208515485885515047756790085798368194026990659183581378872288225917567713906741675184066490234769492114802188387989082309831008855510538752809882476012102627827745196261624796369661559064540193312123466917253262507009235121065822078868473791445707065457798018599646567681744134473664527590296878626550845171635959164257606308856923718604364214911575212602259020800223980129185859057826256668801030713770511058218873526802851196347905076637888095528421560248961366642614704062936037650166542387838518689226948207442283771255096147572389606455993709940720623367374458751793936238758633843674394117017405687385691419490751861330228312481916544068520179055876543056202556477808221987818657306668517940664585729803286440351639304014828981084108164300487855785459848683992136995471548189354324141741841458023982737003246343797535664841120190181506425545574756777450511563677167887929368397607088179302321861559684270732120737931951425897661144313190873488026184854957481090585206927979792378134285026810333098402759986882148293359103176511547628867558172145833307828709734636618792559113969605958699975604945938671126817485186963877526789587108739516100984674288017831037409664898535184177959928608983240230848491257318821234875468062239070833168151504522571575340698379902519933082142994281294223909498556394826700672442810683528749891068862338562335807975324313309861262063497951172610846626649461245129561793166172177049497866239574774185808449525978294559692033670407344653728092342124557295732085828672521588220078421427217019317053612941600535187285161735312857760720231115916595301643713926859028415114766859236974010224815278950485283324412794998941941506334915807107832868449666432885966462713015219759128699838895115744389558673229009720490032721120126604146805264741320469321371830663540035073769657142292571885533939265349257245848626973741733276515686439132190104623144670522985786140926422608493268797684746133887204690300505773416501034463292863943578535071537128546236306399951456496847454675203724180754215778034602135368544585533100647075330850162049416836724335798606542823900063956164740234286409964056766024854357938011029746963264257353931348604850902648936847355269841522126343842144101102044852288560369695709805440622388963440994268846173743038612652308286480020772296988774308153173990428298281499381365287576284943989870480971485186357819198114792718039847479293125695182216490809918080291325010659775816787790437623441300498939966446873057719205622138916718036556385320384753159441902833890664276238109200748598879262852990422139650104109419754745138234349124977703056578086151190376211982842551599921294922822636130274329350705569140873608245700249505644650409579285225033806735078430522381107101761546969217319098229824620978570297298626986098863363341526319257401595198285934540670866774729910317123334619949236045507618806716146869289716708318205672101332176631298451102184831156790026103393155581454986854168988869552651273105009878795469670138536559656345274246690725227669526322527128803381330736329342984013192377150120794181509359623126251359441693387138742851892683017369792281503157758448430099043029297846083300839781782070031331230587211337629418335466689883210102471850053726845043427134061739341640060719897855934813351129535791902524339701291222718716941528444308442969510177767227928603206321725561560131768521319555269511901861818613535453710574876112069678876535826823160376282120724310007816102178209468821019734659473184267394993325129613772839378566212177764304500796184269870536035089426936531252736055075204688115770746485949001247473872047652266914810050659546971341250507150777047171163836930313099450996726364292316133750955812983743031520363582584567346592809867932175355792578635598370513917277114579150944580904227051494501466999840762557431669241739006375776113379455221169868444032925843062230364375664662341381634224843195238531607302993949463311112447385725897152353120534436458994945370297632505836342962934306464737416511809557249769076983196584991935779588608191713028794213731477038123956008299595409659040911770758316046128830753425913057930404043978562776581988228665428430738030022703379982850819099526823783059359665281384708854125407461021461501682555824998879468789832635383980656749863001516820495461336128994064095175219452651009137974162977194051187954380557109528628214969700021974041121884925872806633679379408667990057486421024382797528456361772466459436499071311575397397358035545208158081030082979759191748974401290729960766835960439589060120822488805892483196501593686133649993173376956023764007937831929007109474318688383788911333998153071215326522716385531894549384574101551264744316465884273882556343225423273627624583427215988696606077919238063932006477783773567742246858792397344277567461905284506810926125547329275087829698596285815634393394817833499843182293243716413772968194739466206805621620275209410703173005651465934737532448705521670141747322792602775652277843829038766921015602647812020040109225234324988862248045090610028773645295995061605740103186906147936120944581910029376745470596546610448085734276820713087348672585363051904261155977199562968437762676878056112190014232659827660359779909196636854850075450432295517625167252927058771416650543569592061221293140635432578814679709799864309116513433683359022672703642138510857781060636544127544559203660229547508009019113117600342931869662031910949581249906436815837759915590790874138404674649289011821040624365053284246834060909524840758046624956353908267489100934022347298532728503233992168876735593715300579417696146259136523333986989982320732752178127882823875927106325007921686545111616757384202695265641481296233980996987407773280634756249424273513885398231320121820719173942711949544597860745109939580901868605524111872426261092435249490742620996516857535188337736344672256458217667405734030234467328616290876464218632990488332249905750158902979860128261474518146348229320559879671071908727602694654689586918569602010588579308316447194094968420996779707316030429622683271606233936405853833928036423555286124325337233064329420428465738052910408665471205556242398872764283526971014980282793913951930915648427101632664998290766199315398968798680274413893540219409710424882423195805575939904071381664499244856917020691642579821233029559127442406225713675650983028700512911914227589523250183905276321376876343740454944294557716566467950933462644916802184976214539436000419483420150538138378764748415697849559668100322129225566479248975267333421032254763259656578869882625937723395916775567483133819916543215925386383188950680478414218237557340353209943839508734359111217818400964312615525321468986183028331716650106649883757737056993762702769816171675280835254077144645059200483627322712484088722517101207143491923852154866067128020772895821815359953457004505113449658648438794888871602412545513226119253115259282346054473036480452337014936801203385495576768625079099846173228306720824683094367467287364434451312117658586148185845253438930037242535261785781440913614382459063296364485517174297872931950374714167551281293709925532915612622121688976893499933416093194517667014715504996403375449733557890986536802488226246188281920178120431671013549732505214948957271726270927519601401804445568984302104208676393579840566867459655894406770302619505133660211079907732590387727234340673580383795810356081949479938068380682812920911463845698891824261469582575337092812821498445837849779972485983126788083572988869963496335071874004989265128173959648182368826832453098524796305384224346341275191843476545015904532502223853164486571802428611197613568049243484432523905657427142536103634208803622000845939867601014911830940999714021974650349757212956796832706331322270384202787557408961291065674759806801737433340902619574519659495678958402555161420959697130304159174184376848982951409541808543691785029672018361046480973685815119179815152507044464403425954535363592468709028187476958201253807228161935757775978475827864621763932951022282006377218113753824521370716860918461821746736275187689780399650298096072127754631797814060557378758310132219567244740435772623120985904165466156312937441409709068707889469173045544223876104779128603147346239010389271773236159433108120750365595802341773758406465673783791537804944853972539882608021691660878367064098684521793443562388868627700903192454236287621460863895375700190003676730997944274396788947740257307583469639602094897935811796111652089041538295048619858612406007441483036794440394117815170679205450577896255105266484993092851734504200587377328897961259882397563571489508945065554151734271732303611360064623012610013751368738380658226859888616708132987155466830195585178846250460584418368949556602377781616415305437059962387276279371046754622505313000667583994370843380259021500754417771790343770987200065529605268811864148172355008790238688052533340864939242987190957391040404962565063279143650416122745456761380876850199157330592091472894563526255997428172656653068895076407069565108607806282475696152096151449583512859112333692215845540585390873631655659879728422082944341617692607884871883391868963237339595895137292869595755521925343487733807374680664916149693544540922609611002220335134524582950912972386182949744952932750664038768976995406348572174563129042098181163893071899170892499099759796404851300176378954019906534986937595365542161437420693667282252812247550148388043126867916377988997981227831675849114614352129917410851999148794465252204109529208672598475821806233775659948025739828686132025387455931886183740702466244340086312740653789405887670301716506827588551558921111490833904702179722844701004244602934377971156931338647266621868380150732847855766257500591345510648050798302817884117443733068990328843976836749550066220083804345125451396771515831787447131577685807927632307243913732883413483218258699072788360629226611217015214195080566055102624492109592212739696928578892019259873398697311078845595677602532184084423712273418795794865442806116905204395220604934080039563836499854289346444088770749060534789998352009042199068131364898626091625603798861524035043425485952314257849690445503785836113205088972108835748246431673112219811867997116629927314115184543794414773212448152720560153854023154262829747217561879830615901413342407619413098202507847276274465649183147765438957636774731359930788431815563031542765919131275260818695445640836681535074798718067149350368515907007600894093703311989516157918473457546514565846625193220965772758447617828706908076592296924218941657743048850314240646859381536403787158303841591041821766180780921195446962928376335205814065553110113699884686637481004434694036030118851312418053238138026311497463833682280803785033863591050403827032665337499434132668744995376607548515316357184259203532332606747083178924596878002220249356499753576207784484401558851568298667176159143905501726492253224640714019853189104727694178694710151501138767098762818187171356028184623114081627192883176307066911540680392855626937829865469534041744414771096920501474551306159505822897491793959768687052706632643763055248961404480754110457372849660425227632158299937838293315787451231401715200120018252558371978869167208780962188849582954375402895283907550959937091509871306867357001230839733801384317359703052633291450935604136009126041811263222096963929329265083984385778908141805027544456378341009582504668303686650680565861846362846198301528244369899005232919018584297676797494518021468106720548380501811760542289250083052044963633071120896902171329972973662063998155356053862663125236291455792359250184479795035759260637092958180995101229168700217717792325363561802824410972281540999882121465948123387933810303334702699374631291015926268050690053433861310134329635924427178441327711218295161672628798219147940556803360494514493826606372340585270969900896656478145491276755243758072947719942354929403424868877012185741952927835886664462481995235720232009137901821714961312948833049120384604394887131227535572788665409670471772579527595865065217763103925265822279185540292935468736357338107807999226620575507515304922502032121936738558905589485065980849076406581881834812975505420415673021861580790095285366750011357966034183428060334147799989882372498590001370047918717744425520408006600003324795381969511143545877729247459989370101356105023859575685908777287973116011898457313170442799951317323382376497767220070127847793160786606957218154503547000023416206943498818343603003249581893557700362441527928706804306367593700000888141952069529669067024496950050214739855730718886085471237215729828500415526370145181146789209663243798390580522940208653615130492740019463632805554975738265342762038946645574303350123290280644300109852480108671386270026954316388659968926365850487262082318993555609416604607795834605365631471823002208557179761400576077739579642646023147951223514929945199227141664809231172925825569827058493230886661821744215715207624146215403288004304925235359867192735860204639492189304268671439121725815582676418980823192131551239895077534315104297084522811242351118384368521771702960741046540823205428544227937637992834455258823587948034161437684459025818574876933166822721388413321800839250557025673347836864357384202951261234021932580908446262479452532520825451851605112335724272355330377996391498693598287939461278724775446443664840376660343319003015541057908663579417322839674977282702761998314219565696567438228911463132595111141600370317980840129058076800342009613367549727579212290588260336970423372500931249889998101028715665170685198354907760022325770492633080415345443347354837757002779121809559892945478197728394074400030429764957419709461288693278204679221861915490020256629261006975380588520499799091267492972888263300222724410165592084723575429870919681514365648538896490715086089807304204923592237892570938888358474489067334522053042236172383967980383099048645308114258575411735383787739068005110349387878638365271579235881535740127034442924495112091311934791458347876015640884990837116538438761569872850970868316865249933980125369645722743659099523420629870555392241373561755361674239661685123247126198782789117472132704067928109690264141172118312835399512390847911117937188151525626161781176449277810878258975055979300342839905936950428732419448934731389052254505547502522611278089146429620982334086391453060306330570099155621596693151853281684300051330351301416375828660431949133429016567110349112256211283920710053624877322668344619729407517044332550458985609773809997423166278362314411258942092380861088351322022981389320272813085271917325015565374669359818752060893971841440557427328692559736350213250357046608185010528347713585347857414075356380646350891935407934525070793103795203673686142635413961766126858797054780754504171366087762110890977544789731734483665152683104216991069589251689879372534175705658514129241627419369488823571513364297001976038188277873179793752654281112545366701204406257589593122478942301566976412229427443508946407288719965146804081875033998193170986985136337689107788827774608946617104411368485638151744036962962089544204083853797949825701854029327778974372978295650829383164561932398740700506964627044321500430558894973706159214806440596544153108617162780581118502881757824043350996045767072202507220917323222858213113263809490184389501993885339430625901975713701910965124170285851680542830126160042829829080633639187608787367663277957195517860398500812171015091998489080064607103289691321879388006859818579438723935826146487903908946973347582373632132775872881872262245610338163647051902370136279562554373891349914059332013446175413475035455308409125089444280706439674786705045502388212465765478664392697834729620281509047943301347708618665411456817511809070146748254202692353398780303980470534130073313390882648753882186304364356672720832611297054235018466759189766263645655975125552307192908376341868485331945530537485648761328065307826249118236469014813976488328546606199997503268549992473950085095222079740651558204667786467396160761519438322383339384584946582270505784699767523003989483251646247815974551425506839009013631132693959567029192209932402167268115020931826984313580371373940407256296028537560682927928498312668064694760509961096277204665634098843024792010248380291558466533029259978501193953292977244743050857386024752296113970090588320066938644598760708368815459123826820029913468746626246012746413891770332477151855245040034775872145150162080369379364518897665987288998433213153886050419405466710342484807659387574949820132225493137267959422513990799723244141141191299060378756575726336064342623030250613463659848687318176961781289115434998557686145569747806414384406408832473983393330480726792185488814551927345272786670838747475087977736608070303271514991097307921262315416399623679272641011230586905895489851002050500286421472493507187999058285389610171500402411759221462725885038607651316989315006856334159858522670206977074027434866183397267701826272565631961567200470555040303917221050917740656960497400838627538082702784412713390550862232364486148039628671595538645482486689422511986939666455390163893709697705786010309398619678115881660573935954725900116973023095331448461908759665891444639845365121385014988095441204438648319775209426961321010250836997363266388631710391564061100595956264027053187858542166234149380772492554564054452169108905746969931095353422125842211380041192260353679083076412572113709373048591954009911074251325198398307428343108382363715223514633028921709433470162651604703329766877991697533298974232520722151953754205396020818724878576128016770703656112795830576590814097644541683254796450140054151043452303479428183150454601806587248828092804647502675539249448944090284480446378284138229160417020536324667000214687832949999793214761701448365076590112206138192452972816657838478496456714583709596260348510836971544585794747078226946203345202570281952657266263077707953379147640681684733416467168210942906930133131816817705018551319175260699975263591221377235140828253081674127218834522965974278081064330248802462455799891379720056511207573047142826924408182035838792161001381769728956098898604356151533957255986033364181229620251203134014879205824336732380769312596038292758440038018174750863468739540074204339456845504152792551288847010099440105778399410933776327991292015958530737834303993686907951730105270329204109885020573557633569424964644268784690206215473542809655282761348373106794979140473009477912858976880513919726271496004158311868875317400396244847472020454375323688273409627207882744681804696037734117652118111891425840209713101121599556156121959133111752396428939923490029845664997661340074023091072097154450653302788173856349338444831226956977256091918391222067600300963738817733149167421234902327401586479310158374426306237513589968420413354064983493604760190214212413984538306053610367904446918974570221647492615708264116612399403008130402097356673622172618389441217397289277105823508063857626770820353386024333166656966655639942005266395483362951613653015604221552878794309950781306184902603769138723464323240515766419772958089175978726857385773670843631058756785459625603005149284373188314478200593916186696480002586671629662721543158582014914998169196297195610460495148052047566815177565994184026759067430013662619032956804487949839424899410905219228569659256593002434519536486146497721199501177153336547923582765667641936991894344212820519461047340241271064408378004758914127844782432963561864140154558936800046427374343066455585533543347795385398613697011053629043373361362659161080526990590929397006868808472995812075220945804185047243107850448929224388303495277929235190995041605796784093850135183620714493553843427473157380608397579689627249983589459706254813055428633558068930174070525716355244010192696636228394425871596622768684397839992427888735626987230622037819262431068244853634628481008626550553059772419329610470287009242547275242253823920451303640733797805253013312240798882789804821967531039425894801983491865333348636316737621096989318481148347710319299134283665317543564587106855294654477779714381440572129283500302026277322377292875811796358338324463426512479456408584368910879880426188449943145972869463510324334098780415292232144403877405370190600889353849965980039007554664323378959715206240975244246301930342997459226013721172840744293654230298691051208474587961680624065099541792791466635759834495165310059791423790897721020326287465572584725323317450838390972114026060543968484987040564989081814769454498103349572525620277639187800919960427505594691070923380519872201921362845486544240980828780929706233326935513381712144385181760342470564812996279272579315073242789805670269820834522951784741549117496790984077957459428534273877189585551181179548664837611940069455175945661328735515352430008083717817137235283047887106891984687549194651895622054068731190213782891129885932478947616148907490166874230675042110356509801698528156243957766820721866776781453278580539793132799928527877848447175469851017347268675744523648084815226049730457418570352110682684266553798864389121032229489048574030387429348380629416988379189986016691593107167141097985807606815968278910498288061544392793118757323544815498367421630053734874030686485617860301396356136093962910937812287478696056967393923051454599427399280175734208619898345456453744548125118413981765671422431970147033094387399565176392303427252811492729084501823790183914346674747868434126631669766910343833654157445004156589505338267953246510471859740567693324574965612600672768109906315005867466686271327194598414533132616683889940731444592103624948496241694461991759488577384885405593516089639598953768889686178483761290059599422084618137377780005266520928863117513824798387560025911478999921360647094728712843080296255222493763157396105533863089172772829408767104928158321420446715560551889998196378792417172077146579397948710542617888936169469101646979866257754983123145146869421722981090358693439147510248404882118495363199712214021060826885346805950740616655681780692135340734422347875977982386267829112742682188408598181847960015917598974203877610023173673102552872622281016650041572856295156099730194803780988602943148057279872086466343340439038983070948339862828931328731128014778589770789274306825682107534011316898435154449343167106998500358870611829489265967943278438808521285986943668350132844021496427273604771725822492229287726381009505757771209830815468944694003936653136498769935367094915444684865180170156453281583484972495352163789123909063224254772113861235155672805170123652905514778661746859923165656159491017488785626556887220395821447583345262078569653441830664313915232537493053614094742014390877143998285522844631443943855938321921454738000422079050610459160136395337505151715787068971087582300785849723411792503265622888253667821419705890409154660982403622341986139622768134900083636391987332612935548275994710049598798406920686584228401879439143145059309867067301974091646529057227517007896025510464237497670958684805571241157109751220422339479941376341525398098610449750782061878182782356666596058255652224511278713396835246610096047829033920023490344497022376685078419031159839446125880914368471760068577804296006176578347492377319654118297143555696431417697526173448066387955559211452421476592455642338202121203190508139852999872597820278653457157618535286264984645354188610689125912727198965322176776862850041332091613997041558584023876479449362151777556625614094492548975549106460228201473474048989499994556582702009524551260785224925850909131777370405715823168918406082432143808425803424570380646226901538554725255461829195351106228936078015346379323771509122815081492497774464447931212976970795973411467640507325754332819044229171756032466424396895027186421632845325146617459129910034647436377773078968516637916457157711563420774630206764560575581902277838437210216746934276160789702181303623984631497782412316912818337516936365692609864563834246684088076895814278619181350209180763598820032776118607083539371861832223816786358924058936525102739963893199112144833538389740907694988772096772947310748500053081607331508155664108462831473556074225750144674844076629699794052820918333318295891269402613094140167989638418136406448593023006834935798064994887752259626133295046349574230305890631482550405543100664281718726375777030100931749538323536637829751235927914981340162753673369484907108757793243052558442836294609503735170602017037398629413034051545936787377090861031869452961694164300578570434951356718784336059585859505084416098226910982949816449065177004656428182881554904717531568348823384668517706929700662217522249616081844356668591024591041159629506419887250142840286185827961571873985909574844665723856445887409908846733122697742716279861159146621754559054559194018280235171141108116107444648719704366690642239928888091583850235285838165837876008663402917335301812436721701539826901339424179406473277131535855313299717191947834243640640631682747422177512151397754884513032142342331019813524039821827473869717843493957534035841036027271620562309978491813012619138348977209584118560677563600596829222339570492386136840818209873889136427119787680172375591287731839052254742107676949518526926452424659413693715649275208211658987670099951821144788595363081949832069545186857365808369928553298019148670348151181452406282272884247853111156367354045964410946996449797694518604657589099464816356027863788520087618131420326814555433361421288916324339316128714901981740121545264546585464100740840260522651969269291478190029183467724046713328667846393285476903832471265432417880836451104922172687392860753338292346290607594743345175762639191095448581413617475392849730106965494566281770562888159643645206245746113159271204348312869294769562630341882303294717647328293415632257889493627063933911477336689596949295400811060616759487214935624494775080807345307675953984279954162315310199239235836416591257421642958654238594567160158079096557138175885631199341818508143674989578010426660856134573954416114820214646412809781387964090667708666107056334392462338340877810998722730459280500297396769236612688002030050000530604682441168721127304030463228071620516294234817601004990169542856551112155232922968185306736003297460003135861254344336544399482855257013404939836013640122468568313994533377523210863317698264052132452834304090406944515767599320715769179595290677427928436970476899475828124783832857247160497942026153053803066869136852610425807709530899135594691158986012855813865641389671275342187333046753741621146434433486744282990509624779841687863822651702288275293727577457966777115364737467838844186005120658784933433279931469710696003088886171158379118996358415074886499552307042794490826912055163939625056593048552812471527731784864651782033211746896724042964522712160727446664547443552087191143674130826395535928657386395212674363786739071306686500571355416774878028123095820383673387003112904187127108691456092466052784025440897447948649576066201019795626559514674958669548467482814321391513735440408639733928793085617391118828062989106594842400834202690092123980765403220670446682824718999953354251494980822839017441251939077580941435044057963102540092557407606448030385584145076660034643958868051220437440759677488821909909332427370606937512219299633798870540783270606862607360310947851602753732573027026578782862200542597917062278866016901691890483048457976933951925576425035048590705813513296866136487200059374663597946738399440688158406713408752923568207716582037795930379492142882187297184211341116100815716246768457753610102727994404985322214528657869534108679989406498342279786272950990861890194588572684915712384383526118760501754064181276656060964846456439027859391736913635088583220635338555463324659496247000576141448809981603694281439371484040910419037486140473033869207625858104342885671236940639554236203870393813132948409927015079621423704262461591267142248424668816551813523588552201715932852137463559578953022661335907418055399291186604175219209798571226096448544510808295311668930360751471717747863471295799383604433304325758270451865520213433638674732758828094126602492520882697198735448599625380494899733999978131858115793768670851280218989467691435438068931546303845642070532304159240171352253365992735708099429516423036193573275834948977629199456622044910393225144427553837693637798787686296395613590605307434696183827894358225938472528622701310532178393233156894508336013426843329994193036753098704063060089318551372811293765823802202389882211007446588128966983686725122350101049861736356178843145199337817133312336146225345049557822867925683088498099892231032454446331564215797756564050474324335848833944942901428255052882480131390624350599111113695885359274309511946166536220471379371809560847560059383086397512179536278326315454723355765944384257428324732140731047886834089183407665773272022426304171243622041968154505037462582822138133946952126521802493381361325647040202887752689754164978070108737740332240312747872170394575513178981670492292869801099169709083724842097487187967702170417457440684954754765259310534750606683232279666471193734471491932633639442729520028106213876777947505574242188156399014211775418220614438969435461364473304005233856730698342945282483669040389266470507444161780952704661190123054313922372231253666543257652836589347182302376144866028577196231846857059110566018581817656326018989328695555615177521396490841783160080595002113271507553934763615510217320439713417204973643104614780025586574183319502328935335206244316512736137146034684232158535051952349662844591795060515929584607544893942710387779835818196892249906042629013833420714973287936667081685777778449668737825282379688189527541369449007278975265051897642571827627139518870501543995181789012146476387785708300671921916881831687762253919479695825089646925855777522600006292015419513524447004674209227951280598305345339622106220227873197717009471184968076579258608891785532732915953651808951739900595534749383353161910073376181614243408058845809157076556017716240650508108000311155664497071903495661610324181002497017204405970837573256866522378645644037566347296927487926270852087376307580804412514712859436544771810204276317927533193931611734594220007898124152695671196412226339708951344731853284593131178236845332086956920804481923580582565116970556072783329048124059937197476415524244212474943141266090703828523408801701327110029714174675834275782786554623498760998149787900861185362173034437058005084516579574258672557724412020052064833902778667907009004497197306692955583678886638693955857697826550023855467700764499847811129141773664245285340435408611826101874266246524333637276235554964858481276796363632649736409947074665071081599074506223055007374904026838415677641048797844145791957740553724534735344979663137723304475445951031758904132818313127178279996160856569794680098461967884205223176582162714081315250260640423969414234240584404789235989268290525560733613726142100033007031076673547824500075347556424600383989400281202642862977896339833538171964194681748333242646678974703021444299849726736465532588492120977855163782048371527108584285797000976969657521951496022509477903676586612445446599302012207864979210719628908290768553943268671024916165810972287593549833046245590943326362988896639037019333851815062615216442056803976797461167930483227576776798409918083375372087647342830957804533033218651485178805453148105686167647584446795270020869868103366430559816298230666621580549540273083701527674088649499689163325363683685213137682153734561675269287714311069794853369166104521479557918477424015969336724267904269762353199047613132849375239202713903460505868934897996608129971581140854497971777959409454241857185779456959138872247414080770009780705640622370765378076753876245972730115481880327900353116525078588077697547767720130300132780818833104710107567818978963062140623047903203863339111465937085228149862510500974420321373875459560646439202390344120625182103173385093487114276368503757512349906900041694587911149462241706334995674572779336780973036444826901684610953555248402379966482824365720902506544240108281528519879351967243983402769690142979919165153057887662811490114520836739530457190144725914809441340125199715793621911533223321296783449599168855224073462644247900512266024634570688149648592209431704466685266935379074252356149272859170003605527108584618362079284434848058992733080206779401398195050478720980342732438769865883159247874308873868608223817930509006935294336748111302282081112713126830476275289591559717825922012322817485079016642760849803570028873108328248582357558101189456982738726909951246726444485104432205672780530698989344658654306417258128254351098902894825752957024941933718207573552899706169459815765357102830332155543108694346333982510776387312703562290963735917956840822099191908996180804240153744448504493542368483287735582908116218125740172766748116225596671918405579073109624897302090306924228057538642904052953258073251752459783392295182135788019764944759465406567926306646112339493533099742108349800879463934797939288365219587316999871561790291752210687518613329943069328608467359653987740162458313414810690265930631049539139502772714804544697093198632116532335148929123881645392877082994628932867126557600707306418033203534228054860694078221934200497089693347624338475382868676824776915689447298129113307989026140045375401245551140241244110756756071665796726693021908340063653446965600951326735183069071486398684448576332854007701684749115608023158474323906791378510871119075187464843290094076947665576331008334482615749246202000566652925988563741021384580304635708953231960833614384490661526502967907583331679776603132434377616812886060866062239199727608663091243822995088100448620902059423008296084713845139757878729828667734400621414772415811437100774705193574147233912512117377653254650580863690220459187167718791279340852376011100402974924445799228765849156627182588771386586728319833555126452998908210938200713114101334567689539758469342289170079867200231565102988530350934528813364941002327765430063255723913122175649415029772549560562309772574649054468861678697144280340913239193958224597388024152909722023744707030740369041282911786501845178245141280058942144042826193652516107924887236274298788575704406304901991439478337702203775284764788425668652774427716014709474724189516801653006104748850508842429885098101732532241314709115789603283300466181846212686376387765697138390983593884303486395453154784950469552085237880537774246885623717667367531301113539834609812337192248376884980361434920077599658917499888941287582188557946085669076700942153650853539216654765427509098619049652139149130280318500528627642523373824994938149053783378388939755553197171800717979652531974786083496418011617491701565988616926338576991200651944974969027810670986031932559011943658445948705261255275266813512463778125319203107295891372008148361560665862306028083453024188983023267686715672177135423588540261702548323874702704163828535963833401823871732170258887242095911969503179714025470574089365097635573420046877915037694367734684676360910341075903883378487035406041970810463642432609086007671410078746725653224207293680988378511176286681618317617338967589515690948024000122299469076687774892726567202772145290697934607749450679363608983027043985237066312339598557870268940315193514348670804638462845683012695197621209460411021287158680291329410096816778182690196273012890821759335312055432480008143036741141489073660446410818221066055022925976264836687142300234567210975821993073374129554201412814664312122889633256766920749166879909071236115830018568230419515428953066655086769651510611924030164967074019720772591371096155162736617593670503403957121714899381666552293820161859453725752530644343220407341300855090935915246426139986304851878604574023634731647203918160289160273795974427536910156192858344217711224567598014107737157791426823327911078017144105980082652746797343400336092470691286878466422803352333202030164719819594001811650273000437651546125440218733616355464833723982426876853647270956717523084378181165909384277844410977978044174491593693741996574542213966165358461687757955411673677550282320803909198323454601673163723344691485077463103218443658905754361733893928827031760131864064088629646086353355936018327082208033990988353283936504174541102255184292729658099295623170575006242350665985237016140081984933550837542640035043898116164642814540862356907708091806107594651642447354587265952616708467192191581270184133468444528511199009367590970145201677999058810377006111125465914376870577376469317429483575397042987077202711480758069519454256016154301018521037962112519968999387114640477089752330543570953642810035557677394336054643180943806625312246717721774797911022857568812490285517596057211382588871373301768608363775498946709968806767340718721834096079242761678139983057760061789815023706997429064301845586604856100539542118462296951572661460024072314155565578608205935398304877673583010966004649562886936176704642917337610905108698747349215103471830586184446129318573760737440867158052200714249227147377067650754884130511214247325314124670570615542912789628618756045678549614237365270765605087186923122670371533377542930874439190673835762651295958257380188799389152977498819552028710941867894392247789561006104151678126650196288215358609392666737081868274197904971886854158242469397843781077610152579564126522287404128334160892785683932285253223428600865693312091885757528984288862684477576420260904837853840595763649139228622021101668398066212937589085804910954092922095130974600624511698323994120549547639665801503689576885289191014064987732840203376968375497729995596559454915865742381177379970796656251359814154023457857308750376761151784300584083301076647263432806281604050071037967359101223605926928629933807173795642664170614861448017668481625119285424561562291270008966254776600101251929397344927481437611332532997903206731843106871868636357506640010095246878743762003947252759611383642633843639669107729666616104604938726107046843123106773720033635390340945286538460603475833907287499113145727212837798248997683229193757493301759305869912096186781585735022606865838897356066449623117599899174204397046185262190457689045753326375563408329146739280776431443178935056054832530840221053215532662878716666455178044447797291944096642193651082881897085088937689331608609354392509297643178530530194257421501819480739516373846677507298075229932639093050945813587039067115763516900074295514981267011939661717895512729790821913406226094270042743486927979647062687089627593104944492979397142439005620901843274897296899823536198315496955761280287369721813938771806216627545803110564655835894292642921845176190451877561712613525845020167342997909248654339153468826027354201578428124353299071973129552339848894773359751445948237729646969924303387485415286130939753244427419906772827026123802749285205121340331173414837565079691794558311794374842656929782740635041234516541831146539201245765006036343961724153854040926813106996043343465991108531041496613834248989046756945482022592334156594529996054140145593850434603194539963567696830374757360098316848072050333469617014454913456593692170802930189166112164982383597513797803197175673242042509034960338438282187455396213157914450569671130785410370693934675824035032442913627097452787340943120969934921290854790636529284464179101763727361625565787664647891027429902895345068343660033410105626323258296197731219076838190868690082841594810582925520158020153611048898396872455390659862769769961456070995989682392997725882675465173577306683670059473815998601766994958966753999544276159376335323122403137061277368497797210724491560853945127556523501651555412638237414042555802479546367514595213334793209554577617576568986431313243498618072292973840174086791682383685509821149200464055188497344531533390098855593476176824072031944869512816927901600202577586491221930842559616674566420379019010265886602925235303228318926446686800950467922416108412303349832319270929324058630074807293882851919867506503371271618138667677280390500654727401449105984845020183269054347656199238346340102721543952926218534779290669730731491217392623598622403236411598053711205038530586610772094863234008142637102731193534330595946086151569766754149611441357344229290379567777249449626217932600763029375535872227620167510357252212632355188101524962508802881689901909242675835125439558908817933679905447593992618572550790303414487242577595051338202535499256176646695682287179579279409183748407090711780633249851842171470850561678425201729011348451454375309037385206713976076054498719925342979929162208870486672286329569095138695523516109918586301539489908949296729348895946251765010865262523238386671116942105806552192335685901945805471379489874250506723986210204444486699548323290340737454141965717559608771924622536029417529876609112255381271681939537624663177129799526147904185884229365646663106213514725438675506652011388266656326633493046136823373149046615436999216041225531414677574661031322884787458224452462615767597281120064926140735894146986783540523909884669312179931546676201692978373576751599448515178012923681499171200608316831762217535638311098811567659644127394562544985530544082628179152269667726702726994209210188066805253164655306725026951334143994643433829953222464312723368266853596360840259635543401653525621323110047257605612238992066158037949581389960649395226939693484557764120673141361882762905050133278775992408162013890598053890059549171973464437116939678712047721803044046218097599380101476669215711388140535573773368610148174100655250146455942018921985649533313325715194221683311515718772158049367249366525516773601925253253345630086485322554633975819143040617026232362599178358940050563825808721303152261927284438786866932355206833839158758362307872482962524115087028864895048478739596429306282212068598172114182568165880041311812438626658860613136770443509098337254504716779871880355175443572712465221773864575034755043575146584915517912852425225376704772302635572841153039186285760711443650305126574036914996871186406837528415282029749592763960960251094276233968011041498004152370361304287060692792487721505073788376047974663494380931581506260167735323222369745928730472412336554386270045377464147563513593850940525858088556423088680047050950258116318172670578466917902327258272178841994542410418180626157980565017044648449732244325539225773383192298579870094685369622223231090296644686534320469560939192987150783777969556089788773008653783011944722219890963402443522854214980756420727423868954707375365320713049373027688672073810279221539936457607213569519854182254321952831579368874376387635603630643072417531546817526509580521253239513740744783502864029028416920101869563391502493350591981427472142257211842364280621883188309319083206209628170777918929396444003474752712331181276398030581920761990739166166354245666084064129748068638408620691947296381518396464170684088809335137269093536927806884111374440123854543770952035910395595607176815026471191148642562004226170098758258559796901161471010576593564433916014425702641464801320815522224815082384608814922989518887944738728914090117290086086172128659733738648752471189078632042661197012867132170938591135972988857144390477021420078565279808714317249042559119571276088555759355093117329530541360623193156874404978379554426832640718563580434802637186520187543414214763041852135385361387347486847779499563463618883559189010521896609681647184162033416582323893091310387117857011968351315066284953043236401961015372368846633140591551681008580483876020554384224905013823125312734817750351129523361088062099149794040769663534836374142620857684077607876298387460532053968784746480674561953406263390515978650103985885606331346836274274095901251481206856578937879409975552903304077195928429257399005040015828412679028795050565451257441239445489065990031639893340266000336434730694409093312000650468906583542595691456996819891499895526737796519059089233108386949645052089780882325363015412121516193106464366149781030980077370619034599538262219183880502314449492803423157650261839881305284711058838856322516939047736832932727980338094123659847824968224471091963457533538288710068620265949233007716321829904913087206699896956206081692616576923757483555369572379103109704970580734760200969445598759226497581257002995529891047311530436544550964836875659559421068998153753581528295813897646343621742344096779669567723878379743339678477976518666597153007096821148738864683009342992786190372657983108714451437954318604323943684063758260931093848914861755914568099828166887243347121830228122982048181232013066725873720767502718581095580831150029076617424213783545783317258654595968402883633289452880965835039705816185616091311378982836922640162357577373110666822273731681915144487094402839848005473021096011336762017277018423494495797905951061441797024802973842108181704342046062760500154122705221113256162505617005101546103512800068793240753689868593114853948560388120490114338042188155314764833987031172332740379823364261579032766521562485404211625130250668467440333265175054070633047965932975978119998829239234431988871952448962659945469049089834699285776455096989108218342842967772153006607042038636604846903204358338078567464570420612166608561211785888050143238887425901284565156281962001125094450818427627691470969295515147202868969431168390277779382404793629862805896666091660696068894277885721904691999698980183352273473213313565703049047887321017427181989182099761881478455588275468997803710627831717892806855226103694104060737322511640241078661829997905864624463321814608574774019651421130743001916318694698787641350181286125793421499207339020135382436140274986815532109854626668125716840184068770773896173231623441176201219831551545590966861867147455785925091394254119408001276549778073023988171522951805537403298697124247743911389746590215440312382749211633847684672483612669326758273185031903958066987748499155749228147927908452772446436696927260906021752451092305709239759005197593924898054924185766503474416186305749153937983894741380334741364288175180175083856394339380907089469838269883887131252373160270603073324814038210804360469566149656414343002867461275981112827468976571359054721290118154459085605948467559367348776042943938909056435056387229140810732639375540726183484223648058580842175939382041260838724084943352187720814937677957383030864830696881812561597574486069908533542211598422342527707412754246375198461928715083827954842329661507471202218375093887998215067123448142476205471143653741389845424875840169466031845502883314570435610152926746983495690946267299732590528435922248614811124030049694001769062567397446711349819771839826689209948591158991206214442883036107955901125443847731011775613224964921179994975029227707166559995693850657655213148776560104790478589978270729600151673637354100549839451096886236318954396428083075754696286831406393595267375516496174505690158737024642779553991180707237433575248571424499490751297643129868107653672214596883287941111287984206432516795756348483174810485674190403032144399834795315192827081710038505078420588610793680012028530228914962748080271735451133305362332989642535592566132904606422157002748358067890732367949156945541674054010379493232467927041926577338840530108054245803404191238623676260768450646356707353816694231329699200515941333372828703998142184613141613210178408058732545960865975427010080841674684240049374475350801780313453522889254217126360537319503232051486087207066795216716940155515948795160939907704856448436010471481528744310690162361871866595280408934254040252971801943455888223918145416292795656385716534483297539260715221053454912687746590957226580423233480197809283129807170486942262177878327175671238827565135245051094212170225280360499389518003265041155683487066586202175339581434693780236117043288109068796505289345613199858627260836963035858775064050043295388638319728793344505518990138524566259208942307112974380458063033005428958859638562031538062927227932673389742285389056489041561084981301799362368102520610998731567956319526776229643385965169171522601653997639779703520718252485862023938952748912142094673848134837594997037851418192011519491102055758704636622678673459499650201695288498894085705852881624104601135697099322938000030619448115712548846608447260543498534087679177401950995731855530251818456806083667087522781740689614435575686264624564840130158872328886011459413546660974334209757669352800275721888006140603968282664842791986666470347152316271794841188282274518526942985602728474550950284704582090280092230409973532456783786717888374564704618456771914476378482297978263886009296182837764519730159345743148733783154046967812661142321233633631147126873426606917455879623598390001371882486755220275596455655202368212536718706081128591663235708111986206039175931775562673742715832840145162561457253998939935631668726664632924570016836139136243378810102077516112892729657078755916197356480565321662356308701913506428992033890563691014900199936374660084430661858411375251646773620547008534296038507071747339523462835884548523349015976000284614897531663785012456971801500840269540279467731673230679774503040585235850781620788941290147867933618694860645445532540730551461596250079901900420455978610718037151254382784176150822455215495592779460379516905423550138359500288558409279476570597879037598873073851363719139743648704133396286448741702982344060174336170125245669359604427056848213761651474730931132342887897452728651364154853687938404428770263485811093657730947308510195565917593597990374995790512817031995639023384720373809737071725430863095299779481859330850734611198709302028896241098520332051729101680603806206907343623333317521877982216085713032928870905580267441162747112215818891767120486489889613613048640766823375472385073741732334024491132451231341804500636436565233566368649769455862648728691882578448236267701579065566214002839442841702163377721303445033138133610842595124528393518619242287564222127008810414541668704421598394828152047573459603760241441438807461732412620100493669723332911975986285673000007410086296740209643933292478263065078477933633100555813107505951882266185821587532327862391341212872210621170215999080551832595616966485209346032588924640331924341369242302046102587062671236792428359942719618082099401797981713688397962920162955794815377170780816850133106070751139391906349636233145140645536363062350105139224445590769092646763069881799025034737113589397965974297351383401298004754541233395630468676140166436852370907201614363107041431378634572367321382360353152802776381757961800238647132665546720820937416206680800077391554230269129104484444881177321240213544256228845280237876655156826846679053442857803505253257330560464557214447625414304587952362607853758187003926326593724817557185688437450598928038661675886570078725045954493841062134559255039768283303060309194958560762887194158137323343277571182595722930786144549599368306712808464975536498810269664082682089735817641171274278623762627278871365225261658678586652233914729227137512434293011432583747803340638831049671257170269644540521311756006671801316272129809196989166819237280370997013735666446979049553534411263438775709199142592047169720884051058317320125138680159519157683475426697682036929500128922531790591585835210190016225394833187292945675274446317508464500349980611923799439054683976046048826359579631605173221793449319194181258547722006059498234862386931168521428236405491921927852661291077167641426977624361386332132666955123937042359288119394874746065731599699130503114718156880373223980416044058006964339346959991830619089354207771859241575995924455995868649962997993084376824127513120995382172526303325317000253646521540753707936560901498799086641949537436580030219165702916687284354721864764776761973927406043548426711938345692140922157590815979663687380486557768991411027145204982103464078955280701168690173773662001967784505952913956762640731799396800990908626523166440120467598002892837561223397890827395462644564910348671726431458368143955479000874355442310546346732726924585542634974840831784863496283006688524017235090101981558089256831192565480317084577633811967352460506050474553174050549585275078517154618359973613252884498710226025373372644470856046753541112696175234461110330377752165868925646658262336913223308883967663869172897300240486439235370005140759229744066640556557060115255900629411733735525035893333582536389286584943900356564343386388523028118349803425826214158156395603783521820109225484902759944774430767067060658003171398538950900275871437426295573078585257577564584096945082623866704005903568158673241760479600554803319726319170799747968775293770812620350264119336993014727486967046687160736530061876414759094041672003575988654581540606048511089246037448386534264325116413810127220921919443676668911835337931394765352185727599061332899962171257324801012583327840165141953126924068373019160341104991114840823576240782175400922424345366277663172691253460381737619053142483546633753659321764816113525042968803422708387267978618320042475267528953557057219340452834499949579189615630970126877713322673756303833273992216256176645840704390179262043877604255291518499762394529824588593629950420195820562654320684385472691162881526394313414531574187610837032004587319090805774333959640226175848487299354569485907690189773535079405295592590326030027366242741296052137895243293779119480008354660141613869909850401454365798600737872715508439221942847382903149224377894956398138131408610604791056616131848481897274196291412043198268377011462476206612135704703637305193611956353710105174924788430180306256982014258144644143152015417972435655791094945006524802117146045911302926940780630396001253537780230732891918345926557451318268854341873986057384286515282733554655218168673520972463740312243794034857483507909201542979889145104602681709360698872831821855472398157646509732246848581783749740883102468974691493560383749531745545611147391836791920241289458512916289723321929380278852869809096706344621522372499694701140854814185464425911880072395593243734084604828232307865641744120527998631941589865042609464997544276668598578815972177323274467526939897200489682753658077815669798365015641114020466479920337355098117122852340998833597197778704367531820939181046728481980406478719881099361932790105057903483859631090925719287071263431534632022281764034155436492984212849371707402590835204101717127653733194365760682545662581526305184989119421021666346152946569763064594902478537838359768056689769161089703477410333510300373320765547270371427536974989161093860090689284271935560893819482331567887084598765171288552341680079817057068484739229152119181193526959145310166551973473216683301434966809058301734231085547459010251076468888505089070840974275398028660792330763258163912928596865857566748553330242520243350219694918472217662338541914288673655545348386109548544148564607790641524155698426613065586995678488136581904615213844830413434792473813653420393266279204668421437436290016435841028829047547467605504645311859531469683834616841216588540551247048177546010284445618381466609498760198128143541929518588508390638244697428076894460676505272523903961002666600246646992182752820955558227594266098488379022746758661366553121178674867256453350395783163535039752613460694531256351586060298171989666023895706060909448761789602016816801494318240350099762656072865935261820715079962433426993519896133193777407112480780441682162888949312291340261215758228277228033380370545206876045996495592467903279891139704402383357103025990248767679471254350099475144072907934360920071516370845891715616070925326370437379865673685715964961288611488125390855788430966894851946414851326605341579814605617705489738326492330086167328492640269680374172780744580125918768391517378568169710132044334613280596588777658685775174153484982003906626175444443479372640620074013465965321228829357475764767855841918298818156924331029153272935658131843895674753065280529663906754845259575345731843753775130025099654755314683064912111871391167022078774260740570784580342218882068946607818575536940981501005902882852981223573572039919484315066546381585258509546222936430146244775132462802527146628332677129598153036403042221516939933004401671255068006442455941904195264870068341679490278490644481399109552922813403953109888393289387163665279088751521574842599301011054069755322973311958710196052935440587822216108787186451583370036809825925901679530826492289832318819879112258124552546816118144470732916833029352414017549991584598930019504408383110054560506569398113943195656946727371177600371760535428704664061556895722702469390320656261940292840344522598298649911903081282873395474504521425273411596799697488530494500740562178904952176184887110085922308958963419721666130831188582279803484840303134937392084026877361641489946338288104349905599911068288772775489316755301018630886032527963811638076191695394670820756107250431889286678533416779451440623206469628742437443404597923278852662642513831990653166743199401862659868234905619383213816157630938969498212150161008242738777636886779846882461551914356767607585800243500820567575712763693257446251242711294476180659172149109783529962133915472849875817428811969676822672945232077877708624140808260975450867517005772362385133342690368189104774725373877039605936177920041508241671663902009231128716430256337128612691781930178940296682841394499324122277713886718518434566087958559463923472252807744254610971703684879195453127006788909624890273045595734096935907526070027748326512435486505888671564928523756392845312815609946697890370121364272908605589703824469209375338216700804741113126585790975493110656979058127525323427004399360637394571912102809970636193242050215592338204064128186011390297623853679602833505479233880849107207359816996916743899695831073777536181408424769570479908959588377489546396153131494173369615739278323686661391411420026997879370740248176693091896333888322325701198509221005873236630031956329754625496857975839290140056763785562897222529958934089852987409116456483747639622141572045212514323353539336995389964136879195595340490350835564288137977314692487394954060727143542187536381768555773398414829611583415002851472794511126775407534435126848406513836295643540358606069985916316981230398472356047836065780063966038978542755265945411006384895588202962374932378088849227329831027281055188261263537590884256260539177711679035998387999828921705435712848851765330108922242834388763543711510581684205191954775295888247839722010258231144455887048081787600610041582149655256727176889368537312002575537208427267016027387997710035593312985035216465956023646418113562473134897504336951285589942642293577472739968562965047304513088560794703476159994799731214501039784861763978832902828721895837134775356588945252344557989848938669816890137369818061964788262331936692554612135233110446794109264470550373414190931722197740132555632717299419577611250446295617663545336607637057058984272129943903673133378303842227457061642945491457652772918354473784715957998122576335598359737638272791532169663491161232817229340192704543844343821789940206823044747083536314607849186183516737991902190464645283170665816503907371229178865608101913700932381429811345494675246107242562896773907465892028534656652259210083245330278474306933149200556542705888635023965401798771205270942103145765233467921670661787230841922142567312407837642587578212274510700346397177175847809687223555481534090595254627117704767406641113080146185942601410780028667025167280306190483007981444831576398737035017158565397345833542521505268585025767861684841142208514103374830237666925215845561619734875993938828897020535654996209613768426530480583690184340858194488827805733244764571868221013280563493318162948559453228624997374938551819285091198527919333373827167596371361133043218395728831091490383994547791848022151154088458773088043800803357304356204358433893646191049827360529777513259719080272776348821317488937978430250621753979189372545944805316792579481466628433310218820204887248668601940671372153729467572900575893784345696293245650120933178748709322928288460651101146380283838582169589766937060996796886704388088821153711739416723830463522013003420538898337720302871413988162566996709841218503757988301713384203411579572044212941779518706348564967447109718927209337449688542478809835341736502681544447377125497172943093311066076133956187964720745685052973478201645848043787619469652381571298341896918609127076239614433340547625979953917750896929332465074131225774940714024870508873912656147062262332758877125505648130762855418367471704054754034007291501265439993945564410016098312709495978577759601851381492608066526343288447282747016772697804486092077207522562241057245576700740226291617724526765075995486214591959855096813946641631565471265710383860956221360365620730366385101578176967266942614226275212117483215662537877836265927182717265557012748733648078176319024863687915237442162117442828561083339528844781386841140082590213917254975720273538900973267572494825082022317237220789399564448809685314743725460190123831827520421134304461676604007024485831307923132114886114648975682162013398416039188062406020929734047934696631758629903173957292935334097992706251608526984502240256000353273333466047117673139542390328593241267616609042510663851473009589565385180463807068485311903163436422493615752599879302844732027009675925238449003350304264930991120247955655666094028313160582501598924827523150135017510732258073931036352763119616979090357422294033404457873367166359506137937939472760793549220194528393430368320979558965606230375807376689767341166234342081241153067184675725385894163987338628755264127267098492243539834097943825570019154053737101786956620366285339667584580603307512485546367658985344637581606020098586687386004637001191559247475942296928018679448833896530822686641847763114459274970644010862614009981001176042700970735560185468083579887358127897814149392152070745139450463447672799491142678662409004415262351621119280498777137274524966390512731064878695329184295543036290759552208796564673723206344582894456079963296135532246382545706218320271152422135523093499876153382834248023955260590184236735928328608772297900539685189054096029730304861557842118853868091715812376241995042860947586580295060490009132641035968607173430201886150669706381002822970892702608826889789342977603457852492829684527246308343667378390724931803664747032854159460232915321884806988446474871482261813988561582094099375493535177154159556553299222783680781173605078950877064144055650111131115428311277720375423531950927969334030309242405400074298644524631828527148325709214305544925741173608980057333783726155328354614285808037034338122167937758199166018171087592719840201333432200351864064246497478609661475797779356115038419463847384474630111565946948314041736086630599333118625627539647430917903586627433787385813114796053552431449311334208779678258980261556625328165791119032431480792448046689673843958611772828637818320424263248487836256909286705381938417640190969520463812512695628627740608480170263227872433484457194255159309120421407294643803919540080409557844735335015706562687652732848958841139076476374573884362828628202644560379162937322497677226337930397794657617996171300176851858060885039982800191794362711953816455241555096037493819355129261430687460541130559613022383562531488718154384708826923884301639661464201517699740027947130186923849174763248008113625658431279925547724302937724097788958297065800256268558470438733714818361984225455056055077501097139152883791181608566997135527049158726650378943710525034686165358452923475710271723856994874326498010563056605175890558524546144284154735930637090537435264707386371514146484952468666153761707593530282077461679818054565789109267933305836227142750000649697449673702995209338389791437629098548163773715336644798266791851336250357538668852710273923852189252969226980821918776968574466503328225305959203150459033618360907798758594833621733159100060568202487527776412989212099101994641963204249442435845613766920325841789667370481342766325780577374753576696394292503385682884615704720359059682361292536604656298134275597661200431925240205779321307742357945558469254337583425979508528509456998611848625421712062448419930471379618713986542482571159058473036829923262342856511342913268962712300802598408531623362038379970470141650947977139863778569182423809282474954069750748785706184722120442714982749514754222667798086332595093950515957944171038162309325108413494092964037912809698243735447167041130056387579761858699282982812806922051355831290085761155570315478385031282869117405434988138897821030770125762558938402981438060465150261138542346718700786777520845926275096464417366648596166824487218600867589663950539664265827565059720691979858593802155513349271259436783146815492130263049012629291359164635905476479594892889984216657935500152145715269114234452811397745782887852981566345123207771268326779913278395388294337603332256626419289935414803498621116121049076479181330349467214647553351579492810697581900262811828988522960695931964978060857956444579229452735843334052669935606814694579977838496194858814566808749866548105631890918674406309294994565641948682474096708128175336454937830778790609876927748167572178361609225152352465473434194469031056527505575927247723193642721646905343246419610218571135836024021653437336290143970156416956616015228993340633352360595416152905383864108791917103692231272502838679891040356386115884844420753241391843255186679724368486114048288440687939793249577441448821434126885998901248785338731438508388932294737496775233415302188338778869176382875104010432373024116810436571438061659778469731543363800554959620922389986451385147964903673995542801346191851919457002505802375125709340478002054503189515649382428466752868816533391968039065530494153045714669327542369279649421133773613519113344601955056838253033565061903210110468597944249735410407708813536644161217554352105881751050678568000018013069201063040577147077743121463832881630982173256079620484560376446265625702731169764665056475168331774798508441693583663149676305257737390087186544729301205684217191173439647423815103177144506866440499377312722998803008093715184199513239905085299033769912364293677961489068807403254789605047991605170403407467232091975668096924190736177064492669112288670628740348949908146079915658517180528897861066878703829757786197542334419958271535463789894792741885182130161470756997748154306175655174284402238335525268121420031749680345199484655351326705540643651938072777030208279762431274170965929373100806853194998122047504643202436600167855810595618371582182978160076583971998555942730327355275718270056979249534864701235746030439914929656609421790490478507012120568360397561046988174576755768730494439023499755077293377671998638973724513051017334940542241934733594683153508097506104331662155772009126075426260299783251809477472980764413857027836370634613999979606354721989314700257911640903774672442649829198771809866228796819929601795612272393934215669516668577944898755432291532894987359594282893193665647519034956128359137056150304966171785241695757708681557160128203355439215936464064638117123438943538554951693930974801999819880524643219629289073358408278092660686609342218809418864472333524253658211205861667596399605830752292539015149870843149888635238914189178006121460346244315064521974885229600723180670067395966983525330666864772712412124916421232934576355240679439978095222293560207394507657933107771813505251438847885724393552400547242552535852252205351264164775025050100169930428282805315706343915893840362804296293848495506981132493975253723079672399831131358487712430203276480163934940294665042205186071031467518476594565152148008330983364061346135508067877876972883881470940476929527011723822421220516196505794983731071350773285052554467677305892006326623495624800157562548393520977880387835204189242982347482568338686570252132956580467421333366621253408088575397035317592519235694353984104559762891378856279669318160810625659165301426742716370578258870751300712113396422709498670508855609581403182939658273426731253671703721456507871101999275238524546576910226949799139389017951564631291982917882193043174360418032077773754895036175920904326848563404011369919486451454191786422079203223174982423433567078020698108965169105245824266220122595100964088684969164952187072585429306277956317324741901264461518824097159076162510985145221072516199202088010342315076438612840788964291813232390619146666515350386746044389234120942586527191771014268243485977515637886381669891442656100859990809701812245936880650338081777335442933751880301512364599302770162411821278493117699701002832861419792023782401822032138136648249399816060308479460786902587044443360287288337984538927420842094512247056208713580094599143996418472428646288576638141229784013834407373806605932759555921138267063203557427832471369257631243157575599492430610974436323119406081063931724005640497508566398366107747849128767212097911409615125515239649481529706148482034144915139852128398804596951219934210656486433649277641438491148934498849275612878819497794957934496850883273329448740958451199749646534768667741038711543881264306006718159465362508467252602530177923806474959412298440012480876222662569350717998697212455147489956211383886625228510683164625537653759082869725938861100737328895166695239187047783691140167419092006692395994288657020089079424123395294514595349303670028406213389336317089980913548893137523157217114448517535363501445879173328910749303524284303636070603410958608741652901974831899741335256749802980659954934459981557315332591380094059468683697624709008106887432499998016156966844396332454890126436397454952175156826684037908040752447985004021984812938176167079388488844034311200235806953290209992244020552370708677880588331405346579041962524667976870054743876937789040221580197265355222073433170883444525292731734685989204623772456878138369408252278318791020156585720285141624776056087273696974934967446343196849569364512724226718103511591932853585481731150775842501249628262433391958064479397311436289173922556797815100100408518293454363679772866055497828386092193334719394471412003801405014039244451161714245568751135514671062195007867203921789226304089292271818933782246189248587132546970409775256880176380509408604982446824058287363498794128973951575098790625975843847272217325199112717179691328000716184124016128439411751639261940752064530579935393054955876156891436135160701571045812424718858967899013742006474850426936890093551762844445326875303895954756161738875827325329023149847911079137903621254024445509829987516530492603045008399192844124341133864072177861273696820982955605703586666911366546670180748495951124812034792913059476063720571626352841425510260611217071068288150135519269739119895239022118153674552609373093415813141002220403320132198556483703764371135802554529414636382752821747032193551779686046678591700097392298873150664490063915603280788738421477191291530613923141142411875817674936682432892099326694048932979914790681590208530266701057651590913518355432664125977012810255758029806047375756366177084554620970569320385067006878836443455811009603542761850040243255276339505972093033512772063658628734582444685080982345568345019047187538176658911460718422196528981460438785213505533102106893697974833534043939486020125892187958486803323609680913296006351672591583276503044427818621541123211246766677766958976610819192257329520681602826687799115061623955524820606687125091773106599309756718282054159151779422997443806907803657049311874777262836529033586525856644854482932328006948709641739624776927485440983398585782473129247097515570819668109899261850990493789096927759464614913315395903500073411391141095101016239713829909133316969719504990934539379017133891516018392857305848462191058504380688538255236443632300698491705694722253254501817846671050912142090197086045805650723262481731783342351525394218193034607279475969346473891738625718299745956370056296057214853231464969111707205092737088096600396746346804042261982075230800500703802593133089992078863977897622668297133733726709296392100478997404384001755298662416966368414487126355600953894539005598092186695325801845978185207278162473482310760357295524164778504271245978246097747338954652939961787844520958855522422254633369129451446544032442457236097946590503962558118630251208938934146425060302169093573792028276309401154288620329976804355775995282450757727124853597951634651079526529322185508491923852390635655223306331164920930452130644054202106555455316606327496746422737063519818725690090602554637168769766810422051523382855470312580133849194077102667128781092221524897601961530135332064705558274714208337038958296414314326915920330135652062115692919574170140209115870438992344233547234396506711586333116442930489529799731211509029430560982933775106450492528229840734476470242895478507539654770550245649384643599732419093099100290791441792864238117928793845993918881655925938824101500501700865243725863277432213901406120483700984581742411222690743651811555491681247824351643541506932138313565918088223040726482944660705697703151658081939837842824508166578764451790592325018447925032649041927253115391368113226742548615858642106348702857361709388544122544077447329228838956378182251053907967619210626997351943469864035691866631291130193804780361127879582782859391181235492880874774923648844865446737050945312285127134299312606652656434931705027422287597835513703046118134694481906232676699629149236057936812046513329187638475381743843194896507621658989647290317351285133506074241401832742360497875791601589958789616695712273233716505735749357869693490131896872430437387245505137019543139432366664453782194568909708740151362797451557374049846636375943572226113690861677674430806481435830093748685916308394607562886168992828105758674636415806522670823479646752054874847253554991087505162373464113456020791779096775827488249229098296404646027981636632572417358987426267836584671733708289301290318021153824847207517253201284796105330679478749568104733958138846292037169863291981358952046460974253133389317945801442526152170670157885854437526957301301536137373941781001969359922946729920051171672016042947294306768146034553257029698228844761946182180610624269450346930281234043479744488512535660160047140561345910266550562022791087833850658042189840120276746895934799376832608300319988950607933098484186403800031575257229947660109439943087097466871080966317047955946241030121036001556410512305780996351595156548162390670719860325520730041789207117872646971119993973115901248079810760539042023721694080064685430294796213842055499284673141884331539584617266829157019488384381494871990127702947488380074506559552993281255143296646218000816619441596705782036797471442269602984476187163676748542583571792968333509564809479328757532812323906878316342304011353890939714230166562373140756020979217026630707506906763332701106601238598911151194463493359915023424326641070486937429497841434132863134633683049427083227028567089770909919355452276099668883378296721552708156774453157612580890380651183564656281458742048659565769182466400179509225431498402846300613173857133698151808773657619579319696258600274384230489308893903406717061485278991106345539518021441240479929712106271669781276308995439569741283512854686953251908965688851799720119134681377351300402083810001843849274205118702665880820278666029928834024486068987963233945435069555197111754469077724857788428414256931247936045029510984221308685942945774824406417882482278762922903434438785396404099141142067730764713569967037820325134661366206527256628999733812883510921349842554918869899875251601567244057304288045989113621846797103307842364098776591410384803255437694990648698751089389272713481213704117548208560724158171908539967113868976812787340153553064481619470761678114084387868086262155325482616198482916316923822022009545912462115753569025222320292672814998367557820986655584241942368430484231586407974191005039177494819977936068068835439778805379139708150399467755924907338759053604150242914267439268640753548288739619370705811877943830689341957482901915555941442958279799087489010847140696471972545483966238713982063943155812347985146993309026409262352910078955400721993148977633673929154797842319436853790520943700203103301358221686459645286496746539276280337206993235373098019858695061743145949884369444006593189430717682246878506031483237812751119183875470863707003884232581238854348358187761102022036943514235602188664886423040920309756126654249936815601163993126514549141611193965278071920393665190246350092584405750574682579062167235232745914780378197239614675326768771349443209459872963732404015610549121627858979190157104320785700506793120096446306415962377927904233129839381585660752567099040501047996976946606486928498901506225805103457487582393895412461823569518504143296888189134479515823552892927687397787929486089359284943913235275459137293964381564070448394336988146090214037226262188533903129509556620772097432906205346850080402036481155694167925962049222197474382520206288356736956341091463483440002485169801333046312245244532456582472747418259339309174520880777252747979350349384090508404824258029922554345059799656438945687415058199189524227234702993145806257245463817394564777741347183957654790709400443995307945267262117510008772366012570833901951553219670182307449063319050523480356995142579431084576755966035544218472494465751382868348121908066971621768725907345313029799939890474002500963197751847273463359001830410445443791252313571260202813553184284375989354862254027320922157411029524692420227220574301439807833939117667527515930104810922213905891828239797475215606776695772043285479098198252428500306402335501490291083445731150187942633619821597041692225864255330678954379656414355459413607377310809923492907559049871721477756021851235429865817864062618840970677358205589838097361936465931812985184017100941235779062803900621512719259341623359342930523414575561592994333919609519336196953670826096908913617521523610956471249492213033397561911140830738213182922805322776571443439186748877593787039374120004988236998751794348193017167773910866424604494184486410420394570543245718589175022960327844591243270102819268180003472689899121993606395648428493289963510899822065895376177438347733263474470640990066491917945870936318475336400159967620421818551312676458083268251416832926478038617053564064343363365377314255283919191992942997479572215530418894663009960357261709615233719517675829157588270384099530495843094476559281000401936330322034117909663464878105024814129304041211411242121456138008809075996939217665093931553458287468846756391338024440910129937633324786411216497179011297889803277815052071099002103201324089126577486042397782101321932600041180897537776224076230556960503176914270276219773480111020435317198434149001301908946000450233621203751881749983982140187826156170669412521903907848735181146102645036200879341970928513107495124204686287749443147774241302547254117289234989288648353911732578048851405730248458222317539771727793280775318217989937379950609841775693733969596385523801383839868062629990156251154204397925501208393671437459603461334250179770768653746527891115835776035867113152873205913007667824495000454368330843892712587108344623788017874141296946577753500863246888978657559578236289966824795758443267746480961625136831046372753754346353263861279528669956154940282572190525895475613451604273926735861959949927346860065078576696037751038402341150868393396778898347676014181843314052644578241761733321592727215028276147810498551545109851245217738559795109884144041542709396019508810222884489264594879197754775317524031326910979864346971788756044887128532868795250517825119397906410884437647864228448500513738632767998493793441171978471841974013211455513955326105149787967156467882931739652153005973560521675269168135613401206718696058079677259722031036890699252734359964900803226517096244409677967604046222189123068517794405315931436141951513185807502436935327001683843649246570054969129718986088445887383597305980320163357716327253969832388657862459564902771036765701491845888671903265155312159028726972652227596362161241835208743204316357316337447660353523374191064656296732318445078190951371368190177917778528975330518275760260397513773108926322164718003098196949957804978245922079771172714816210286628533294400492556790509380067888987966050730307825423809854294983024080071286369808550617579421766220855938171900581271733344226437458383782720250357880674250018955387083468288774198001083755853747512934074038372858073245249502516843817342528333396625173190010529897472498986222338401825101923339141980857986455768104859955648415133900905166206258947498669952012928768295195523894009954282675668770658165996689081008589983347847231821025788918959111797300536011264007791111643521441816969102271596021624831256200875776777712683512027877523653634544783528395683147193471592883523510624162333014167855685427793186365289768933509746078957496468588576069248682352665561379666077280732854504406414155458569637511889102334987212565354793393208601116168949005916020837797174316079426548095679706355923831374672860781159208696776982425900691537907505720182853542549416942943754375832359556229749746469079660172661024471132683384576593957076318777063291897387964111172030731431757896605171524970128129036393533368989982539325771877552082625434245540707548429137526848147707303415113136424614477181181893286949734164369484530283191075868806263497731587012003884507033569912898754021779553644125340831724805989949475135888787655521926165550704761703049061550542829390027857224056109545188340926536458629693582720255971071430594081607364290030287325153596934232514385411179797056662370965225989961229162047782916489854718363409406559118027830978185945167323328316833007999733263538375119327655609556217549207598589295985620058413387893680216814767892249026706352868107865386196426554990267378645036537598906853423139157369622074849094054807670264922918651844493987836895907696040288052740578800650833899611863629012130624308106358301935925848567263639418445117700226701812239643224008252882954574564091361966966343704773682707693958221359152636643248316703296090960280981896143726521643798623318374368935504309717819568375799851376846067322462412290532659667398385437681618561516122893984295386122221046983881407417283619351216043304348349425021059420054189243733936713858907779013067434424263466655152824470174514701655076455338219580697106036073196174032283692614640983773358190558374833662972598020948769850657416074998190819780471735388903583717870787105592646333526999128607679933673130634443791920196786004666346660518552544074116105147713247297894003835316694548025072156020359357878238855299243531332711709079793260835583945726908598881006551842380709541549704047279812217875379643513653323557068137188025772573969980576766108456036664916065974298737874694166779096715741610771672031480894968074158607604260497502523022148225710782149159668399491804421546516710529578537784272651833570571245686932646670174526229272558987265221404018341302239300587596121818684860606349482239191231944043667503426782267058055525191892039732923902865138310537316453369992080729718961877699529789000492018937663541463443517486144148581644231472268468596246701594993870070792340809617087987031280708264975982784650570064027726794972043056427271822412638052840685200481329513461971567530657844754652417095854080491803524957962449064999189046798821001103425745578110505952535178069558852704568776786325234439448603968944452078468710583041374677436246589924926738278715427031040980119581997649703391135432838693391745896440525626337293311552054040723199686700006380265224694850286276136327252399186776050524196420558406893734968451900937706484685567977118484524499149391536446367712909989153823296916888072402171299271741853749356313021201981219265931513963782199731437215510959645313466829340556282299845809258305065255564472614208367965060400228803475121052458712753614353211848389328484367737151310198672482770975911262589933835247647334049201004105946399521662415473889636694215612476513927175949932891231962202022787116671573473831662461094347076153786870951406007673799994240539186756666818989883595737896024303459707058571417181057860561119849181140324966116355330694694616431498258004867100151672545208564417709406195087542552435514290603283918433150948883561888122964051259882101872805072069869030961132726233735635501324632521028465248248171213279284716043505484279305226786482182874897113452311939411263724635905068057892173901135658361057246821558022837851047421440564655798503698938034317500477526662567717552762542215798318189234943311093034451255975185965536609070757018579046870273774221761216926752674438939173344900353407902262340311263781154686562593413077921071029008218332242464779152565822616990813279084989608338050711816797240499130585471569393745666844308234783846758264993848967265814966393539120896628991056724936281065407512802795724903651741859619030650267680927462833619967297651077157558983343661712773094898690150278932718110921062807052526371179140421614560034519952755542148665777539054920254476839873505499589528873250554487574376402359252597306053285717184679460673404858428616904159889657998833283997096607699489644033872090780761356985321329227268356977015342377021514547487561402935106486274654527959204964241248422620655275443181899596977096288707973329379474015228529308133624336382259422117503486385648094341908803599162342120611898262422829151333131600668143059729505857341273955204330110944408145733617816358136416261970821663470555220096145413526248367724686289770973092448527151526859296532939269704392709196151842034940817860078302026679708997800022066873775332308728977869277007772864233521405000410371844186859183207872471986312423918286505539174111289252896273897534567905223416489566965603381081290633729567232774810416484237247865128075514780244822435827477344672308556160290544757267705428155566096193570004918202939497498860687713620965104989030614297771427416712460649072297203017983591931575586156788177012710529373188077991054969265610303075718743262584910728431438927813961804081845508937478371616340022323856424267995786824545419976472335115953420354774351784263110411041477855975060292648951051904262694279936422554806385659893458277804928589470800772657721824693987345578865180763930177340546444399423126626900796952888695961683282663615007298717079250975249824901987271463759300941773690064326964696651324380824281096938002519883608626284773414447481274123374442818687573049239403700143007964355974472027842733027795838699025618752492796668725586549557589339529913471245342580459825160530155776787887388925115862395689895371646644340018926109220165224370235988141236901760123263070066552578060967243392943564418561975514600966839202337381792680755588888027299439684207224290568402157772609378507014778175863124656219501742963138194658602368396898587684206172342295773528261837753170116227421632024137243774317333387212497079702834591760367120806113579358132639620570173956391813542810101817164512403558213695770322910571198793843427786427490644761762591555218322135495000819656702523355469451800740129829588872622219611623838215452577734946503515295084477836945320916839960881498043938036672145939039849011927822997054909632165048718770147725825657190958121720500314652689922604900253435486614201256988860855847491246684938352490920296480559068870870062201839187505447974759790616599311036414441336029976952603529137864471585473860451225072420218689984576513487640061363911845913310610722206151971826081625153667307164793257400683341256569431402538215296095279140228095626871753114145126248031040655465589930439900888176044040726445480551249202503373905239588139671305906660978695258159802603537009539752806396817204635247990550722277170590188734213552397870356969042209694174637740232951209502378616820660342342631957913221772620274107754451708206366582139388792711249131568342979012907306037977189115358419812270094441835994385381789612432052698872545254528451004752377423852135696273745839166189029265770808139466599752372386448577939723231114183690088350183815232394466359614785682243289041901462471044887867192613409858683047651995255114590506894467145167510939558292610777475193833959410922245632700003154067834554080281122835828275586737767045267537611866059018991357123277798468864840770627805122211995420655342304466306585693915075159700211711299917569966011883238073847534980439239528299489094932146378377164337537743866093300116209300902547432624264686109638968650618768645343949087747777645597088518861064315436225058704518019543143433899939141802991759772804803694193767978111076053700565326510867750075928855814631981383788830416383535327008294757196063336178290804927887055184468183715704204297199566642600685859313675976571099610079671207644572741256777820039609751102635446186712178971244240144759977419357528911183207804541308725530030486567637189355561149417820256739778673188086277840659148841261980776331819331804562443137940811804205415011997790605226940976443580089301957667661629993552092915715289579314464784146447272194078929885590361668887738455273059938899657289322323478010297407488134952749921769428134471403648685214262492807483240180814175695212202103768733323863378303702245549216357374082741438107917217737078542732631715492881219623839420111120410261995060048853398990293358142451569486809868563190572132934262692485779920691365673731200986309153061151055206676310528393393109135732102596076491244981170056364208601424077010384084649657068104700948856419693120410777857916240185620940520622909989158143993053425377854523977781886401146675451759646456486450413459279243165763014412992008556040718017357356772125862954446678293027686553870546302403487702539859786722250191121277555279952008418716658015075739088271041337791416683660254377582295269281244593766288943870910702937543252051330672551569049111369358531922250485297362810763958538550786488064726570378640320594671985965637042004568891730061604919954597607370236523367227531061844896143802196750679587780197454504066266640609349378423063663102854709131905536183198125968720372752606598655511991486830672062677284686691773958530455312711016566014509411955699802147400662912690235875415126381691760330937413955697374954146246156677734906716214580876505241819390270053182826160128910051231097168280391785823420932345471298516586298946597252078345515722138316939297270216354214517211023006964592055224525826870605474326681952160699963242446888001752637957928687302257522261371108471130700124893191357605783950435961128988443679914527113197159744394538100479311744232205478775158187542686777195244851286152411943778104879071273042351239556419960538433496702466498879468993007002672928616312368870149374465884411927008347027695717999336280336069752528245710091607335668875579640946190931771742422252193239673887961906121457397412956831077410149363356360561190904662716026345300883576553832574734463438892778962571053822703741876620335065159239988784810757003742125623455292990573887470159673346716557686773547572981398637096345672555739547573828214163061616059654704921705585720380269661469909259793909475305802214527952019704580014241314819249655300507050966341598803407432279585415867983810530866990795460817985536885575560327289626479592451529454574776475665730865890599601520519230083875185178564590316045338088330544686456663014657872236442095768189467530197860095812754856899403429074819866380495566956952344512727011474802976813542085334961053515347953984630233459908279620949568468119904191185328798592482248456893479209166941244632048226853804970228469580681603135832021851422451721599347032103441181579132920839376217967722712538821318837653048944463204442506510942001868374634743570563314420838070727214017865327529807956593779854901025544861873252422985618409070340332961610637148719674262697632325881947004168495388003281134908979560831756890227612565337926285859766019980716401168815859457673082213599365463922860932984726609447480475921370595306591548903152447958610054624507974935590688276046858668159421296881964342259035737635769106910889111704214142823987847858728418729359109483615531154191112604525012037570794615283135245618535463417657450994107534605795039946513811374746166864029807041356571653046739775049729140121390547492649439772667260147265565658897875056685344178645049964211128989667406013445466222638745843060630830237506572672846020151029210462620669977158405041745292760875038353728039478616531775746142803482898686136993025989427455494285864566592408692394998498618569234523282884821911214419436030560737220181308293027412766919515506663109729731399100467125774755010437512476416518620386008266286689000382467462616288391191644173428036148571260050332655957452653927328691069014145245195511751560708788117478671333240787921760322924943861234647114490997043605227735006017235231960180462918192894723898396957937426876455848949445643423115071801847108544195428741545191403143226556677766178772049015195931419909743449617381988203984429531521085342144845019498482304271697925028785667635331242773570660256569391906619073920727012481647495063742568361112113109122587828750218849564039801781941850409574359450021716206765973988127980887868233383981375264765085615898352482496947327401140686978933226307013134547147275742382028914071183605782207255171527594815092083607427668028144274211347797891289853955579809139876029962421884015800549624663872074626269806869887353004650878553458658333112126312398089550903817317767318233997907753914830474196444359629324258113635816411375881280018225402811759005275043009869419987969666785241992303320112276550304755024615281706890880453819055500044986102111703324411863735275693568392289251695281190009279504717136254832310913553784533010643575841756227987722040792621402397275825085050128201290268128571485906563963708685285031401987821095166533773546117049876653883610733991236972549249082521429182970190204057949309605043454056898576674566646593953931693222120658040606028173258140619106301975854783948029468243402914277961619986835746899802932629810251317053280151370118833941221779117953279730279069806337149953096609264697240395021973182948313736446065630843046118793179178417773019281955495944622521894582119927332984457837517158813269330634939693850015795317740329998030946520684879525545647981468868631818391707826981199080736792448746388463753118039770365635771432294632141044626429112823331793273495849002304030967433424646280745458092978257652242533351740234304404810449257291664955244136691892688866391862121944202677687535749962859777393129427974030722415008863733533945330570364572900340100788178253285414167507161890404326061288701714531954763388637068951733285546731682489692745693314676326858335296996408698836365448178105909463805825236881571102518844340167057621535679628875614614559541681597886018682091819059001885723560702226737024649767748807854883326923374744436474786125723247051894942890948221040440355849624927378570810762663542404079704228727002365495058055236776687490233588513318694069139479778942024082330549561064637723422395492834731065143967737019103932033342689315371661595794016400853312583759137438149480957112250480839788640220777384085218377296897769786681383400883285162941203458132643696911375563504482504139387114506218471762956877274411388068438963532217343334141844262766057708542918909354629039302145378586578136498362803622564130412403834998961056339573480775847740520642859843343041419031215651517757298864605203401388803597871307598263307909637168939615151412296266145580758929164428229191344244869653207320579505133364740551328408218358422318575491023842470484211513151143329655006953031048462377801664869400543211201773323759039259802916878260228499510844644216886410786132543052944344228252336915882461801725462722210399897639593668605407271072201563214743929847436793753571887781079372002956130397422858737696387186337704395709482028024869129903694382685078300621911426927922426067092032339066560514865062134107480836660782021802721748882691496783147302186994420182683934178566996843637251519938505280012647742630370538110732844686415597161727736342059156981085004378946573545863581221545621640010289497536752062167770161164456341920035487163173752938373593671489591339240958501760049242937693870495969243507595694088849645097905232450185807658022591581326922297446364035791484356090493811552746352047405906765775234702161549886494239067456470495467309892466034707446917293290505670363442987822043628599478691872701714959392252732773589070443389777335739428547896140211701542788388359314304560974563801852390580786455458052653095849612707770870436513742755707879183297618239829834053225827461015433969294263233973921146624657868957217026064039740312178599159455826889456489757483480603013769706804649979126210219516224578755336978363409775424576435623196806870565830337830721307999851358636068791191901308621548036431271842068451614978879054510630299484918175924511300569951890870782988435982453929541704564062383414653740654885542502840740673875200890376212053002028722971924799894204664820338779011731569778937760756518943810916131262873628721644661929336897950311854189364627014642027577568106247434174187368087174548634208220385143681162284987426274375588476188402828661109308139919713015309724079786879456393609728899583330008872850536863110655087459338530434020035261733020503285892561086828571831503590025381572575610493880624325973515976780813040105669440313881466792181188874896260150765158404740443597781082482687807555909780677555829201267043426101501897831412529041191835689646037928492453501422341493290647771792766506799340898227693225604124573037112928367503709682053015962425710836489794500367661584435076049643224703774079736732723622231972163749260694063072036696421166012775874932175845616572167139979975339395314155014657894491716939512138144589345061830975777260586855039787412005253612018729278716058228667670438157400737771482757880603232470715006302388066064956024309513319035334734950413013659559665735109853075031201786758710439677549660667532144324326851409354663556377456441075585235360783167422966691330083356683925704579259683707835658067155560406808505481676652193885453510420588840189549262675842811442612958815660139178997135760303082814228512785908948406212113336006359961193917943078876558296283585038889868499578489879761420975491371075331004991835258315087973727168660318694445230715900450241064274104932120242675303092891252722630637502141589016369115480213881636496303930633833408384798282352348033428716511278979466315831473902644909264621154584429288242270267217803701248001705936007612930683323411591484972304805405254980960760800237911400995719663342356856383632974890722432173146573567881039853156686179882724329413137353795156770274667816847539006828442690764975026503564608400593131346923250217026573376932299312630464269350978260511752067847808784927264262613605569829184515704184573624762413385223512317018770618462025061182486074689244291525466969679191362442659652641605446154525536357454201954355272494690127736323684435572052918460954605605669480297115657728070782895341831209895936105331781101904227738278920284249005316175858109914568504820690432325673489149418149157903768094570997731126439553435916713346460079507345789420610845936019265192048107952087687405445828227528828506220361429429634300184263884228185511109723936299812691166280659650845135380112900162294862546053789691282580025761780732665756573460785387455436219766401372617253110476919082380477222884803528700257738992591139944880118442842376345707176165954730503109298266282758874690601366081521665935114555384186335988437538590747719643006864854030236441367024423666120236677976827070031798883247892105841796466890581529718581932599320924012877670865355050369211789306690383284313255890656417545333318585690807591940031176439433013550610740533608932042309571142266800423400461888360732365876088251305553812717413417609066262558927836550072643358576032613442803797268625452956212218040856900853327097050572275407891981708165091879202337783593639645685799134010573171295892349605168595315185857687307530728093871728595233112706596135418221759161292592723212691379224948356775350197997440241244520960264799283247851419636753082196879323023454616813171243663499205475521186743879046300838505441522084971532445053539695125670098272094363968786458346009681786505534337188497083271423163873137936099157216714547594835147694469177215486232502694434632769394423261546292338840332128669393254321944798829049844412598637890514618053197334167509205327044115355500242392314759971496233175416400173210164988553652744790223652494353730143773178226230081394248204446042247028099351519238152462545413754644785604980451032209100022323784795617624653486859695382276276236223906276850954722936673968700664285390001123917060872531380802976446054237426929326748644225399552633782031599190216404565248607283647415800695695011072859562229378243151908942768063873802695505471009639805131608176669563112018009205556064655661272817946886626266625021802901492439073442472333104320916349861193611969263927251107637608418549107659767031116572876324339970777361489765726713334014438376826600052114570205246932297385059703736166604161619266069156671343239227531969309864341187553201742708775109726201163053244688485481745236269074628642327685010726362292030767416270238108441936580311366304908972443514842674553412611102269180191336425944648686266577915478778281414011386780033090107165648014333233446054789610728863913699932852340144948523569695235984578707132774972955550435205423366328372721819376747517330595918292242756248349119494165026619243630511897695172354754423221258642570018696428443597816705388244472261262173414048965919401291150661637465327996155309912235516766267134942790595559322296611840978778864228762838324694446653543156788190218803122767024416459971872275710112758963092191098712007233212107619180660174356999182765325611310288965872273323228026991874582030921760856415953214915546076723998844613694154597382312785664237130557554973597069496306736934399706380608255962471785902292144780911436224270562518245662325658374324808006543226041072525563615797111838606835788396828452807333651912828558469119467598479853736465815674077206116017662014577089497961577046287759427915732632333941749005912130323290198834574487499858498362537377300349760082837062184386163263998865920143660986066578991272261511547735355298968987240084297562979186572101732802464027784801965972233915071516364627531907350277980717141916552485407834596314805106397682059951738483101172680491233131901037622211387890825491241111737552065347955815668873114784586256962303298435429082665494651309598601057228552276722488714215111172872138736385098273926580426586769370211325732856734490826173497362576223613640550218445194779569516580934005103033648103501869444032594835317099085578569173282677735667030608085582857877327224870482140847900217295283451898649717583103459368580230416755853594175867261038248577604320907463764241286064507435614870216204064757010715298259625977663139454468743994908355795954818578924818229016241244483886439196987948686192450611247449670978269454843708844862475477359379116514252148098605135169194254532149939672440369725226070782922854582312339389245723328978430287827027529107106243252442325467216440546026417461971915647685226890675718783276205721549461770116507492077850676860487268403037198934459584446298073407272682270592844476086799862908329456428947406483021382600884526452184159255875365971624057725823528965125795789446212390366252227640964375332565195334328971107675284465017255133970314023041957804927845550493470254609890817702171199472351668473424284159003182777841099388664676487455046993627381016117392257273367003227681935860687726805806318717668206679273266218078056332008195037685151316215368924120403148077080332288417948030075359706453480229276354749856780412752129060556866390084223044762399764284848645025943426629935567751953283370618837793829043738614575121797845042575204483572569869170357516722827099473392843716482247105433045832038308062221620750986955952888445484255519525960800037881015704614583004810024306512557636747669259971007373056802800582912247547296384125060540801053414855710270633301004766205381855764957510786704360575586047848584388588216707258055227546147405290994628444816346771294623397913854772492816954855972055176421243884621343291242576816355562978122741335219663682307768218437278343816663797222624780202165804818910474803813829034732004312477985345804763945355225035433811959584401526896317955579773252289068661509773021596192227234049269119432848052741098816522024486780461153206235163612469229472477579741894871091100558123081895513015505904268248537356294552493520867460043285145212418138963157688171831736956515292254238202847312056641712393922662062155184685562257116487610118126732860141389527529206796202776269798140939937112835554787787287465545001183963719434130801351809752367046808741920758329195090795834990591958906468831150002099369858898476277200222984165045159387420199845556872265597721390035432549966794589082856325693293649467073064186532989132192410234393027590530079870959124764477680263395167706534288628277121005720554974363601654039675373217725631797077962812408828128725978955449525338463831083035468259506748328877479640581783965235046410645902167250824132569664851352717073335207733486107070446366171950474050041433404795028665873529799331304289974528643387102020838634150436223848169951219890151948916260997994002540050027210203910808488021804774853328477944976840971864050920829145637143398840527699272431209097243771357200641077463393771455392366211165067038868760893879215889489070791050312751007473604962041831209444531034160547166695352842369802485113986983707186662308331139114205207503913874514700388025506646631767625132879893788825219223580128491443736190968558761190629960982351484275058760711775750668088482661069541547682463267281480567920839399842556065935106958762991467937813522974966934801608008182340267297593335764876900986682706541356758669980106769641397224834449139251028882917524754995177395505898083225348259052806275543760584945621376207301657234034040934977906250501949373911050140866336314021057481952246353121256776012751692206716663580866420950235715272842882214240827532012255549686862488509741926112543814214382939356948964685010953548629404003455874347678538719398586683658864622185472771332544924621361089239837196538614890198517667440447989189294972634573174149675958190584228736864228986846666886078963576104393702771792412443637686913610790232964995176052568254266590488619685174705814391191216827472618444024389673480458955506562357177632532971045649006266315567452277163376215545121601910264420578726803139945453045807216874361706732755268811815305491740780357342953579086536919427668309214423635751036950079713476931014039875428960829155238935299985935202356460586981088050935571575649132136298386779986002707924261233354874210578071628610392911769704128911393449868565230344330191946175665058758359978688407134833201564517075826897943413557256560810552372633806003617353162657142869942622508008873219529322642692267921008361161124853672149719971052930125956613709366441864452959473499658999162452269175803834139657860844902455011135783865058635912807223238196577198667321070030527094438703620618023018175440024915548610736528923582508557118160761355581840123595845147873966246230106136848469766271241959891000933242040328190496272588980948580817391861100774943028012753127598665021503458788738672171538799702872977500129523855783757310115589388927414819821767249614677975110290970682710859499971314028230460496690741205828502265892499939214999995984326728331962387536021954558528199656516769260249222788742574499694529861508275992654819528623156485451829862050132985335565713051436456075582490421642135797596453060131269019881306952002158719390990070313989114982488987667290578444963237496879850981965465906947786560258478822197364317233658736938364941092022086950103691925595001702184720471215446808001273392529866630512258029439890167087626922742726044649138886802144252845551560333063113712985206000355088538270865944271034366057520474690866113353138149620370460224577986137949828398873203021834612630439948200603552734785475012932068319407844280107445172458860327757478296276352920453179501639375106671815833989727424124701299290190797510902763641094395198078142801068180488817593277397878962969093876785723790508442296311195007816475727362149412873079293319922979636461699132603627177289711559359306170309071902827118001178063065851763793159090650629498813960168008498489963531464606281719005549162961579449001430139359921635403963112506708959767912205197077327247645521803835127577456637324175346829057236404904177865431541079478207028371694584640341554373327871482161598008168348347666252782443432209806814058896468660973544713002095905473127021262641338334177873525021779769596656834232540131888146340469874000163793252329049974788401346903682298486064343492820435996118514098608362242052647680953915774781881555562666469096158753088021660879288709206324710653178251321913125310567800180516028282868095590774707761342650739161772888582391551922643317674795301425709529583344747404558626443858849027074415206798886963353687193078628019506285397806885844534802837915772425308761120061739217763697948225200354585429885772883647585586642784344806021311175905654766379272735578703601985572527994495450054647699550351968993583162762763143706291130668038697582286355585342312304036245341991317477860051783413140715930288172514164744048488752977245370208636358982184906877896565619145155951105564481322554772834818827090233915253082630724495951971692954530920000160464070892865558845745337082267770100930298426151656240852474132527253692443698193906254387910672769533765339949336585315584267510271974974899383948790737454646765484309118563327884095961950044524122344670338345698835676321350565604617732173953118824693081182845839299508453564145147699518212257003804596968381796743990646647731751187218172367902070872646897725996993864062608308896911121893853799528883570662650374467566496306640860594694624905934088684279651183966070564320376343061579304109233352416459549227921389127836764284445850286270287527392320081019122901846339313544702918244596094371779803939293366207466891750739965193822867867803248284082023208873657953379026456491656240002679034131860096697215404245343302514183205242389863210573866134622644326831283172983141978099681163749188055676496270462327704785023197150226964296120535940708692254548550294639497128754390456769983165464767736514085187476974308653678036216689529795490271532314439627229572973556233512622788974520510404059396228690970186272218793340579385475946328579290323720508390139644154272563482096516298776039194575330054255580871741790761833880048447825854241225571579566508593476162674130164604493295762872119844043257958264952448710589616828067043296631326470309871389962975875112035750264594159202338884603035961014202215819015540899719280538705809721078241271907891216698051305365801009276052168082712997287128540885810751665924427430740156694353414404111428987307400197828359799764046350260888638270129452585238516904034177870525619033222088697682390611354069457340478374847764926724248500231318821459790996564339704070289475246115060677507029702476399315628607145532189113890322804523147677544811190161021394460628884557739337977469961290424301717681600045762236984398004818479430144492489710387142407715252006617375115113115980363492524755519013304673216347775914853876129710804872330583218779407065201290993002308290775300071219653296221926636233159993413996524011345492022180351805953966546184996589163968428139060990516233175917744858794091114613634527388010148334167023613576088709965029204162765439305350798271717709820837782255676753859583693757871866608996457352573371535790270306367487157596263596921989474647372334552696457646507805229141375433183887116625310119947517707374224979452807050086433787889939378382188495194730715398279293607590871370063872019918911019584539397163917050279486020038863089655286461694325852601948753714455433053543556575787099154781372270646221418071558554864002710508832691969695272156110270843547360569895605380721203635973337930982057568126386138067362522432310615955699287373301152972516167502016643604206817155630238888937601505235892237820780931631824588581451855723218890535232478016928258257359285920447023243026607387287064819200196299689506681795989873582336331521343408047376617089921200661680680483699896283823344773496933803377351063706550594982022041926862157594676488149989685081592190014401994687188329852661913629467341059593932778246757834935101270165368649073970876266942159919762492232470736990290532853432237070713929664454059914075158773126687184017927710233209074835559482057854061067143827297175953662631293795397119892392224579217368599985262991675116752058863187352506473238563474951146563364706775935987014186917121254181462549795078040139035814025141546327081133653451038063067213489564071118296281334665166778028997801050466182633143788750082804389173623584892887048638471150223033889029652659400771544899973895794094680876068029066345169244638042477686644452981780540943942627484792965509711700157196752077805820567957514460149950947120921354681156864354278793222702134998135201247919764388338033720911053499754509513421710171240345206829087943949663377274991288015356237575422941141747395079425838665912089018410638135006206227848220611202103125706240775844021628476455403063973676541143901801820839216948447758924759840416016354100230440254370656781069618336051260528552820819994069564162052650137336887821438992167835388747367710109243562395595485108471773963937870525907285690864281178251345578370568012662633568820307791761097169264037038206149055585652536868001559028883748895676116024395327572436239920374911467222164114284202790267205181499687849855204284358378027226869674232086100325996929262032784487082324113323436355475968535286458798892663562169238908138646517745115859350384293788973465655175654951263599201483078452269273549070035212055826962542150148876560426887833437231361639975769060687438360975153508843047277482216874135902902098642196341963568781406094609439598984628262354533231425249746015066796180723542965578720582404028919906517308814806718536209423712203134119334597520801150080834157892073329718747496449516731033843278394739990521090935771752996600366638354924894375104722331797252509827556062053341676588325792076541844195379045280210622280567495508955846683787982701792842323925331825401191146403375642489280563604170284867593932574238474669438975770873937239363271417114626317526663095781115118843308957093225936472096833628598304356666017312904826817146443402290221793817888092211940303613773463662525886678769711750751736967544953928638516890075135277027172579846001844141277697264949591112399873554922173545051719146152963912379767040259102258274490549513773020156124361100685626891598439314098266913123197202279708176633895101700239290620845202037504702962570496392872255036822070248366796575685121254990840736324922473434267878319770394146518298800002465979672831685459283326529842381649122510441743675683723510877190371266806126927560246157579438952754460628648295823195944248724560310780451379550276305784072651571128646921131725678555325069047561283644207493896518696078651339032719803239136560368816036502717356549142256218776700344143056435844401786177709260647922277681153814750449597585224951776884203190376092001936015258846212769237721533822553001555517028899148466031032966331810385007219158151378496592103401315679570009811299230036985897092222303502687128763024906641086402031542909773055775506879561821684508552990777765386879441290803398860115394009505492923674373510464541671427553651557556388761508466704179837537947369074984918353088483548305037785860387240846911457279887297572121669576812342582828550681770473766623748784008049647842993359755502698297923913980497874982330552059244410627577866616325793865006103963124288766359890283687045867619950934040732696685743008276095311629988618567584617220374253481260259576470223342290807984420050609319601195536877296050617504572156546589979794234070164183154229333912767982077796012435665121010643337331128712063664383260744319156992153970146638454785831586232781921968271489183674237935020366328148483919762067204191392658776775533491722727151984156956134182391311287231155006562889339832706444301088364316885151423946207691446455661765253280242808962841942893395513181281985821782817820770546324190620897026989294913906148496250896912210934697576593416088946376993855093225628861287523798511096198499491910088276465583291958932748018033093196046781387389812930644079593472860069097133379027570789268659867952144214309114065783542858668571269333580471083581311525323637315238053039121855325630885460226097452421166293686960922224525565632203570989132335843661154607265704549397375429322205503521536620012428144918100439529324475147989992224386576812870047771229332495432022015065930843812327491024667583812580894774002027823201904480119463153990697665597197846180810167513871427844811185267023859686090194472267052156214608435827821844435304540137436971803483844936592522755713708760723259352541541027817008002156820989368897712974593139018270767547829335467512648668491980932084003169715391216106465823576611979180951418265998753724680305119086603918936091875129486328643678425689796443849792989297899348648709370168311047767640092257504786990705683033993498207789074954635783768273167323968338193303792452770321607502100188498630150659563967773673028161570150441524390845753384381171908131599596841232906160400646072035884824702806660247786854380037829781129518155836391660476505000482661723811569475106195775743497026684005615480121989199769617746582708414289491957176793553981794732600718503595441993879548074702398141715444079091427726183643401241467399644996036070170845948740162476158385418568050003692300323420435396808335973952859019572789193713018857763963118171775434691116897006129325794352275590347201984369282817093180512267391508279217197871486202551208709984014516025203268162675510466553952495766377983380347547804400498733031937687942974251033852887691235478801186130851552037409936643981841275120546545362761850838381451750449043825613628540434728911315535769933105001616334641377362398946687820804795438484716843690468766688319689206907105895544785743462402319678696403691244934879725467602156281662906586138815228299206245802693143244899825558047325978462878152507604704491164278242098744824070814337856717942896969840143053998602446264255837522601808105085040854365193297539866438604398092841691438748686610235253590413232107121896067457855505231506231678927665407729782090921680871610538559069619509599930421856259039602769129940617352292573991592871644313415359115223124760071673879199879224763596623168683812556228600851853087612608321781522461968699328623558713530488726182434110128854564387305987844223802035343687807841287739852165679940417049891208084358318641361994500797164799451127774564322605707223278505445476272390752185639269013544760083261726350174474594240398817847148819211831454315256667028448788793701757050455145100330335500782412674476169399605661784037187227661113369066362451262192020490532916002478553349915885544769890787152589413236857701543723334930186080754718184807486582309052762778587891109323639519431184458007852680013586177901122308210016689333148844094149198806051192653567966941938500306339654838862284459886706492661236855547749395723482649203476004008894388761394286674734859654385215503631347385330498612211358163859970939274348170260964476369973939782159574299413516249951539079548079247734334041072810861614812611880488791194993588761695143498747167680414694227758449922425035348140366733668616676167407422048695094639206810809198857259308806548998861183112012103632096923499087608651917133210028529704010522609409567239667937119438257049297561726373793624178120511795703793857347263454896677294373729664154544832601826324354964984817776169030685329247130977670505934934363818486675133545418207809756738858338539635934873989203884201449576841760571428719914303461150210664510186573180337121835881002607365916626538747102696764494477279986506353946086105555254185757485376627810217099227567791996032834358464093356961570655763822150743110414203891930506144848822684565804840344990600761308520631250458758540304291288449615280607562807221690760675236451032368168043369617207414725188772044802725279614413332774609015558648720998421425375388288300576477645717991447322862746106545943338746854933118925388087048392073192655471547543206924987771658157064791072908906848863435928901254484073547041753548295352467408561286234639151092396691787418449772917040151040959369597619248534638898764042993627305714126898315630599494613454856647146818000283446189234455103538887576774711262614721341826433881989047875009390245430203431749189525463553087353938550264223630644405516504248194790548506264900704287546388896255502628634606325116000391721069823462764507072507819578548972250882246242153712504834175068419989502709319502283571518634984767707106080277155210259226925913073169332618682930882542807055151228387531394764756416717779095571289931890241314160807755629770788778052008706883295874093412698432907068507922148170425836550468842813182958103387528617918047708071638403399283336756062983029786829491527713381768955940904075108188830860679593467759683658856934579724922963070647000685626544617581532473241006119548631727193397082276961006466578125523952728548877028766452752087676667082114222187475378077165251502896630633853731764924682542403818249355637615877587439814938529366282925864881022436582896951245357461179736805986272120047657623979932003269613311738034738483379818204866242328455604844310296996844082794665514696796206695648872217357600758762484969142913385001152740509933335010709658241787106472729129454746744851183374509095162579201921426280916965528979050544283919715857278182018654929893026634303814477750703510175331720883132585399262261535507270797782888988611228413104772480156885133679425918374711907405359556447544676654370682643744273493466502130611172477326294500179273407252999344484038159881616943648928343730283451242916617277414942754724285161426722408201629595957561380028731267931179015313345403878689065476072945201399388538882381697062428323625145822893515325210958363917357238741942836515052331701011109453538420541884193551914952490788358868762127889861422615993321080430477888127077957601279662398245951575936455528032275869307251188616328346768173237707577715857747559976985476259618248492830202694349420980816932851832478633412958492674171585467121273988927001841379134120087917060857114986539223754874811519927575978992856666422019120187091886174587488658698040275273138158437483356487123875209697265610261908252014191574171816661541146436548152012820053984974081558080409906768674932032726145820673378404416921113235571277197371135736525213131179849451133773720725275916187547174520004029764865492535259012879805616886578759389674601833527794755968045813157596525872064459808545320312203794717336422946991750539506715363964767403169484607744015634126209425892974255323318980894464473849059852889517202549059584302013154314536958977867633041163115328878301803286207321467276820675809458101221435866826920803119962455301334302111933273814795467272130824067798364907019675276759175059043176846905349267925387524600920511083483120582959313412154080740831737371137101674191795777519649733604209483641740747188693303832185998970664802543150433958208674693421094156574857500664805901062164407126652351284870829229846350172344688021709950427579961199799224423895959075967079120029537616687621093095242001995821034624734429608777389250628976834144169647427917421619028161475808996171039677613932107903130734271204202769515776861122670336809383336138158594531468805490227112018163878274439625274457586671350467006339887129244842603005281887250265946209374791016921434932786570118640205433038379095184402342288517980244573520557382501788749846789727094301148595923390322095568766936886478169211689179929634471552675687542512497557476728596832424261630843346193058422678834227310668023630366072015682907544789172117435813983945775392145905350500116581793366434447316092288888043372311348209473252254688722531141606234980442152582610612562335512334243521875111745296773890028825040848716114217074929624819929587797637824325638607630604365524668602452274546797607295755907393191880785819800308287673916141401862373890453207043695353222013767727757313416578856324244845616742741630013045776994278740568853461455548185018198374233825871602910582110113671362372883854999782783124788147006730853320138382564054078804373321863766532072662419390317491599364578343576819449737544258469151115610584742997288944454060100034860942780802489355878509765143890075566134885531641861635677875279129380274382472863977667794287476671409681674232663023731027869631771852409314057515435920886859197496455926211676184230943112494052251568060610379659089926639787592124226951159172112721991526643374465034657911899124127269513570237472389643693925005215604029925492686141357471361846135927767014953651331105095173966939239482129330866238915810086418082664768259805006654179000907658946732719669017105110841963208203424158326453978847656448063924867368434727247770958806149724889654833942676303995363838636919311720674062799989035835125154275640718338789484471639327817516882801075293433261342904084009639287930282824912098761115466638838574017553575697212854126991452765239399246301243354185767234923773218208720219844350273838736391256082816538357405254660070211866996427072872518553517344597307406154041964107043382797513525090104061928063897890832702517121297674140387475227288609963120932927775838666008934230953019334005681384719618692787445169160979376397434528402381825377022474392986429007640212465625588683916685601370498667016764750303935827957505699494441430992561697597776661306038577772134621563586743268534017557657075335486913039321776703775874652907799026268816255168225116328512465677177435693016975745196678940956263580312402101636105317308698962586977514471436511934141313057968457453201825154145342038119328888883653176825266845231312763737405728645536573918908843325054073102794628740352368797582278651993021003995615509166712838628645136113929415317503160202083506833306321221942540915812523007953750232674907705136105538622503845098002117571899273616254312729287289804707757549184142346134974675182905227119332783336203356333008764778399437636232680036446504903440841393032093075778753893167873287024170981091655806233679305616683884001588172097215665775120842746555178991839848202239051697942763073878725111515264728995878588562941994738526179997429726943559502209083714286679575555575442472333314423113360084968406156840251235760129054254730634618647314132261490311703450392896181443481360119296706040781226776935425845199230560624503529868437740364066890766234199231569884311761158987363888221975182025967126307041750388068145192715614993971267941033176611693501125522436528858441492279941764712386026626903185585924506975227343938110524362703428164625841815549641774990347871289910693160553877322926625900623667809694462293260380608733427812321574212221084758002757690641510346256773937356967002573035655603541428856599756536939096902180966457505994238108993126485721843740732491613813278077383178941023906591651929932291247665197862804736663292213068835351909895520431940619743069501429976132496474050643566641743579655875355112786737497454695789625509201846848808889259369636908549164274122491923805732394651630768722887786862675918238686238175895191419859610206459961699619043212362677398847628640356742661447552628732959632853304429839817300926333895952657546131929704925969731708667458654533458148335695636896210328263644781265778747043788584088360571458997453453422807080540762835217165358387881222455647043013888151991721504047247340544690798730423735799327803601772627220754120424472834503764290473284096754830792941640708714421486411152754832849126253875905393853099697349000003708123443349802962077171997255640388415077416661602801097782391528965557857334780403792102397467733567483011810941755161304705460292560835021247189018324321112943749215937612338645140891003633132972772198830670244659155951030045285671260722154276144214062148470266053886344805911997121606553214339071292961518069319300534975851104074245593118849451487454576852894110126525172425365468382356231407533694550147091347391903235384282772426655206932244323865625700351342051978930263137242978030113268580397749982220676015010590162957533647625646064274317154117994172723778776108333153001495270848482194281114846029734075443373096413367493946739319645752997499257751356511786359136401960208011510232276490488947377744764405011613686049086315052137410452451541643662908341963359099217486906691918166329046640370653998820506879170780607888594223669605367284653852310511348217087668449607327042740044588603523019503949711500809547584679819636704897879601118067873938399901329997426588965133074442615003207624594136761208258905980935455054138897335335035631607095280251094035974917910311592044718190523160456612861306422129095181092193257858292957041003600235415676982512318413373773929363788842316245442399842275306047050639203880239698632697801160046511996982883103000259288669317951375656809113472749902887645748851862163978236256260510038433474846502149861361170996211086391264889739854677350687408723526037798716186410558153673684300480105532175886087405607316762711806785385535657235286580921056475680045951020348918799600091991768064782991953415239384122617591058346230000952412738335608843541648224999593935499824673088212719111533237831727383834475398342181909278094678649253074840619541451017708808005197144562300227510688633915051441247422468578277777049554892869419852154774324205869655574585123583462833096884378754850358428209698435878995670077238287853125531425697801808519675636073619888278443521979858533804304548185734940755760621852872016117485413765243907776799632564782161743692045109119199889379588530621616883565427704431611804346179157696927871404592070129102223925143721474524614589482460022981515826081218900866737894875603810430383780941570945509440219420622388584564366716541384910176697511163733915663502880145303530880198407937800328679036733716269168718845238486072300600177728656529416723999973561479806310211309007847914886757190591115885329412222213562599097115560281174992925860707222103736817657467230862365069444447044849718733748266414622505225461803731815475759637731796191965352870144094089843701092858231214662082400424336312257475639873097170282644421933853079342860314930770220276428898181132155811670754709816452811542118270812554199305966067333868260073353279403934829922691546920097723975418529639868304420673154995606454426739882850416310898089132138528448727402010237829441790655138816403696202526682160434269637167294507426205651474086526525387042644160245709141155852560643358075131920483369063874369441650750509677545955004741885015330377760541135198930098995118198707519446134559992240838904786495687055254595569824092929792906059286276742975595606454185042999725642389147966717289060976066671769055306902023951485201637409369105488761940396408904764765591338144734908819826905105687001677888315689673735920672850903556113496482931743863352593971768041860900829109683135797360522417064115711746592796647394575408446667095566120954651198104570701539596546986192132436043109685757897015553582872972733536341496639962321398608229366611256872559735438499093699933035407710277874404958446353139924314842513819389502816298011199723895877790010600541576713449362225814902288569626945913050483917354682683887320309596723890479227149168026828296138778267051628464635540002352517114326044036992532272850999859231758634718724025762271911669376046570528409400979085826472009913908285405546024332817512913220843008011770817909636395585542737226627745897883402977004369177657389968733113039651364736249453329720301278508346270564615335973773583833510050760564278695368376617898473291395225948611290285843773993998427868591270226416455254656859624556011335635616792080028675824942382479197172085673659264598242570935436833382978736279579606035468772149072567020756936913957728303846206832537804657629688816925265405240377122080903806949897047859055564103728712118772964196752065976478843461224068331197031808857234136560253622725610202254540067426924072999725183445911717957827354285650381926419967484664607603179620594154353767474933722047456690303117449409832716575109180646792162183908517130782273504834108861717656933846429671521170805567684986654179717813491930839789633080045944055539073206057127988701613815236417923783498649951675079325148556006999893701415159762265185616357270704279452977786986362705538301470309995387425371024880609554303691242584921235595919248648213264593179985620992495506047214886307284853273096059154129809929799297748811489218810738032952368717004925866774928348229121667355840700850144892640441006175648376830920939042976079601346702615132597799996793061512485431132212575884325810165478418545219928904302661470476140164732749290449367397840844677147164166748903421455222574560073625313454257315435168283155184860416387289513322255710671899445523753794961276414510167722738905829752951204306639017905940453339611823760625607992624450596181469421384823294234598445759098701084773415883269329808592726909080826299229991914519158168402063774305883417446049786282358525675812399009574691325962748317277189412734791568737944035251875750235012529948994854619666963098516155181602614239697625959423581316931578030531213943530557778898637113786007595170200918509666086067002961843518034015232735009686150213735505816159975418133974990979640536291374236688650479269814710717699972843909092526247732362248447150677375348035800799553197712794661596926437625172841304628274360484243374809615957404162472907780581579947778935273590622697666552925894422359643743680957394807404861992754323171022229912140746880623393622842126380988690074345622761392316806110134021262911302534406899175162658999037530376261944611896040579544085574864742344882164674232374194301283260646757039295719728346484603126644240196887529406239529629117495013123909532815776688929168442649442055723012049884795664035754617162059036889411781914783643321097146298124499494568381749985458100202389295830915185072647116797621268984872399417565085025852588057345760399697173466653732489817609319196933296674769957915773992809996220263765179834108495050163037061633560463696629434555095143807333858299086383149022354636253757207444823064813675648064800804849338223324890358127360976052994369068817869595501561741599249028811020358794567396911465471208564764881092079898100169948450828721778143499742297889670803380095325699605328610885028351124086481036407307503377865280393214985069816308354711726668894356018067610123159072810847966854641975117864025527597306320494022142069932293055740242662282801248732870565526956162315957677009544678380702718291034077737018400477607621942199150924814652572256643043148125901439160659424729210086095735989982109908907774033566793036540540133208638296638392451497103791436125890201570547034710112643977935759618958703980246828385823871698181271993600717247144609621374481969458989824195023834936870124028164618769765109460386797993941402512092797088836983125310829250359648008653264306757136472331613534482564402981398032405558178233837133152899004150049868620663914439132709349835205433932092126803176275039780870574122534200929737853823629906862921025532088691818753398920371977515567304034294022211001047721547755912428123523850444018427930436926366261788432211823450274688976382412975127202207022460957235365909403967645964562811765300404028502087983647681725087252338269773396597698129740411851929565943894540631978340971770690842612600151264112560071116323969903420429660480538450306647130631564318730889071054468862740012317314898571023334145940222281510345270997495272905534740922341181440360410079250143882661647670582910982832879785760161420449909735661556890507427811523848683162902773354770811949219873869479783067626352397286782131229938191086051706300465973670841552250380258167141067483642026130509033447907006531716277387584797456904193895194556474441943119467230286310146774193168762107320073562136273631634477361824631934834137416231943846031769904432767751369368050368842214724348382128922687588661620800818649744117750712840716243735132884906728831488607088119743471102205478406835201094042026796511930000426329966838196677402250002173034921647371557798303160202152104002455568819164306993616473963182403514958185937243791846215079954831434520299044571315316506567104601861185235484146184091703597729120638575703176394792104805578958780133494194752251689816706190835498160913681518971375490764272480235117447138905813886029641736142389179741890304721005077347191702214991171675812392828029159501236723186417083294624642572530145823721026249795220112664998507797524575633672373293546047682953965485625102397243776989387678225326101668216815056898314781044298725821236935261676176772952241855523757222127816886652691879155692127238624545814517624651763512202677282158769512813033700721394657711380055762939455791154830612121117741452690619836794053808370126889638071702949555360238721049614856679556474006672457941307043930316444525468704090961515884577828921076761267640628504065003301348923667578503239667058414550968790451759416675258350723519143162287085668477409309383367092440961939887201808110689275591930533325469095443835618722159978537431752505006121339014483695961369304662799009679197203741454507008788782701551642160136217436918575033689130736876654139437523560271343309531246684000824554770346472753043863912688260953127056690376836898502441525845731977019833585241069691318946182776951897916683487752951355167206120218777387364327322588621982791586023767089469100657239064139669781073933924978215985903547500753538311523337656454333115969346996133254847194839964161700597143431528576455209333979322735652110820551010067857899475008348419663161490067199600919931469403809107626407339068507583758855982472782302715445362977331876276030968243930282491111747139519218380056201761594124671336354172554498202446918779945129447965086066772909275494313433971781624812018128096561216278825094900462536916398830675514563465909657237119659330809259333451937089994310146255408133516871200337763892811653147535462044248029902830394564727646990174130273611031126688496691665890936484546307084412303652510803106158855424515764500848645605098623316372612839364561459131916742389824006303652492292673158724733849541276868332067014459609697946142583528031902032714864538377077335352150895983380423112880946060615028599249910957873764320200462615113731718407589537038929146776892921866945271716996455136201574410600524471696905467473871327468581707198421753992427770426395262671666075307511634808470740349243941444449879281242851594587259834793373174713142561564544995659372709645888182309087913368014188599937646918712157041392182659851580711349715020763343608684330400483099442151769697468003092692378008053790587236949717709619602067895705558639788301733340111720733670070116247094703700878846489794229497470597320414562104887646144489062888669988953525804305982527665032331190271321195315437365153865641482659840127782171860039438796116113045674604440411834193663754100327736360177643681372742752576997304828443321538259017350325720468757902977570376900511817959261926198975702665277574530713316431157425806319739507504304143228624096326584433028727511873860702749032479505002500083907214625373184160864242999410341960625803605175048277415140150799196617255678631656306557138920497812267162896465170082625222867640941102416411960021695772578406804004973083188406444240304515703021410398685802974634652907165940271005717136273968559017997122922703182428072154568238625795760184493983705240559820198866265409587786671586304815757456472851690554372158121303117545972235438236166909872475393644912752021810899660209242146488590376503646172940569514461833277191985848029687702971699868519809917215746931197051357817465471143336770435362116723325504856692178073834291296203389530225045011711225074686509105260167379236607116047233476555211786890323025780082298343815796496841604292026122046542602118227185816949724572437701968016153465515745338220207521801092376759048554180283484268996266632933631482888304709386888010273438518237348194149181088686400287330280517132509233206197559859074521303453203995901266278305456420095049615033028304157301268855399557063519911575513368204926801407561058720807643361372744260048154831554204227236693998136791274852528967981715111134760661461415608482094691921182074022574378967836170083181370168668754283489595783206152708893571607634735967482147780364374210991594573988960001373083905389311122521350081359591315783829620045928434444065103586766588747175664447428548792167022519677327644515366733189120298899813096333788135372389234555749494517229170147199241897833350439551854794552424619893528376164583534951180342980130389421344581282257598184610905298961205946048961777888901483811249714060072014821993843591081380841375121517770100540440083357771988636589034507312382745774956090605647348644096247376381986388739931974129633685681865206694883609135865067444758908400579025451205230266216881805665661311365269687164298172120195767984779183979314244404027103062446114587629748962632858667595681503898565213252727381675748030831182234604556587319279646988514398103843854778005634008188676631023871020922098362510905000005734743899751535678560467858711584732216122573844819332199272208867043834760140316122135192640880628760297356296133717322862992016893190021849607142951507335912424037182375713767659834442321725841594357469946871531408846086891552476401844981139895246719969877102560462974796047540921245655019927950576331682745884494048619175789797732932319562547698711991012288197853378732962699463107440203173293051628738648758586547020684211745055950360634679060256022693065834480638445786425308433687516293839644905161921359052630571836877866416599458087807935587013084978233534579953016076351000247360094820090411789294922416637258907058242375920662326721733579071089944015538816842187754272173233462585772150741004492185136106344345022740894779009571098032762991402231090745785683086115489126573387549942987968237590419908411465701364035680913178312735455906974067397228955195195330702472795240256032731399113403829241189551824427946256332495246779042467322570199761382973133764367503349041172890782680187682657904194947357240402312717667697961019032845192342324266159022374351034674564299114221663423343581048378046509810736127965117202427860118973022964529159597263778845207306599944366194977506293238118749622464761746109530768248878955601755029787431587488986064124740168779094105779216483760739498409183003502543741078852767547530287598858746554861183561486017964990960417222881795613877661001959612485049164492290347075054376997986220161485513214180525467368426413358992588190366777527083006514625456256417319928576258196392481308580251547349405789172597980722362107200587653641223346659397986479038782019811250515508854791735239627728742768044337149147298622446946653242749886264673392664913292546780512592917404887114973759661896550864056894798969434399397444666461058036113266374292711237586854173211071016039387996473077852719161525541745783306112692694249274155572417680714946337562713263939395563256957034305183228970535465191155391255632054571102945220383028488603922675436865833884012270450612383135251906740984686952490274413294669336392393177239792790304913634912361195721154557091502502091193128035428194466094130826138212223717179301564414435400258079333719719468006619992606161238230481610516904668908511186147294242712964543277452887004226915497564887964700972717944480136591406768319702143771809720145811302399605261119865315678830247864220820847074368427179066228982996965558403916202146691348619743670030794235375782924350814920471435026884901985837916133458324298307779326048101872785730905240297459062482645675322136361051804021761048235899914312219497153265571779725206865441709618251986240082584220289274737214215837508786435777726674735826414950800329767098126479474455769034734138287276599332100884102000868377344437874509292773446310298899251493405178018538411031104583312745742681740810955494283690932201891610636498980863654595435354982001591081858879268534918614389364972990863369779246749404903450578148794547286606813051726445316282600976071873562688053186542234663953649047128283408511172000984724861098685058539397018762771841134227720780742622280042015135994961952325458117863262448792121445606142923360365759123735256662427184256621568840888886024345087471416114389770927836675278566191002285904756632617910231871603121848848745697632941864777136173746120006150915705720623101846167542281221881563110750525526344247328732933232932012541683856092172988674143906000363172174904634837644166939175352553510160824078233840785456926241316391297304462930490326829428104035693258275718611825165826222922609729571883842014479862453977735466004808873091737003467007186945959980094507771141774721962746217012109818639020870028911101467934474658713249967696291239905283699182554061318130240576380438757936290745068977771725621455716228188035888740826051027189778608676836730853225862901262130458572751744829633727598184258123122390399514669105757463814944803428550486540451824079767593312866830871726181790300117546051005196933683196334891304513078594488083588392568442778892221136914595256995116447013800722926026340672497833418914752366557061255012201760112617809486561722355423164082149781722641884594982167606356173772383163914276757425191108185502640354878878165132883081622392455941486369920131420922359046304043691966224140558499490037266633801135914239267428494085409412039484303020688586546317904714235909974269091755186221664960667703985165446213968774397302508674583805453306884713149307728765621997684773613291033698421462318553987512079533844370906534844322524181966529432581100588316210226920464980803322047492321860328073868287398388047645474929514278730176363053260663012337635615078598997467223187001613251970382370198083327221922234867260539338913019343381028476234959225443283731273733940346804501663289027370112525454846460783299924742006811924977184193844548720757385328607315990173519544642552308399150488164850975565756451442201439163173026892779821202597573196730086857138505337258839962698239270398614662853069601525756228761156152065236294066865814566549436031097363813083387830245386545739555900031684167664174414484604819846915212400761219901098289948424040414374205502605834743630747837619023373373054983485959758348289585258214885542470807280596516554227552806155260154872446816275774176166915300363328666129155604531695981207053016313669070779728049095792410580541362347987311751488161218758923106146676477117204495387629135192290330981771656820657994353447866831000076219776980345160638548880734248701489248546337803489915996989915848279541567567362486212791881991146956853502778789941064996114567679092994713369578423352402799972201521727118800189790800989214605107278721608713484322246517701547357722895406124238482292387070526247089378873540868182740108847915330251852287872938739480521808332947910918325738929278466010654160517700679286273617214868037039423319775985580905707910484841357622341479113376129373626818027188821901597960014980928624134732876364145639001357993895272275180530474574580599769734459408789001604310295714774118632854097913504485799955816566317927361328963182341072116962482649862500269245884364761418661513016296183287451133666046842320509066115304856854590946477526613927388948597367646244909286862986273114820264598337917124332050661106843126279215681234690756881786918691957447193741756093395588074254421751440792220618225210210410774280719096281130562736611276104930078032756655069471279608969326279452988307112023130469817968438253114045872932016612806213685316343998259096461097087250274302410731701655074014334452995735639634146177384096268946414742633207647723841338465194115259138143405004952612367244456790278443727038732884577083538640863897105945170248549040105956232987454112975033797251861177890727853732347521528998953836139175133890418724016281316128183105608759477973901068371327802074213353503747286339482321708764233332909324875469090230705802573659766628128042147214208375070577078093893496964444707789900818711950975404244222105128222165387051373576410986716129716476537666793250564536320972775810520413475769816259142370027032798074228437641370513274974139129369547231787214597937007215488607775927688281223203565154690448963628083418346492619320293952866259529202644559851051536087736520566548242170187951236937671831503255661505929672793883337413234072835467798412348653050066645077987446472717137009184285269499741503662114493071770618846320616439951204319150251490457364331506399303217257049142696718079089272615850649340842907862606081641516772169223047300430206303005850613042212033884579373899275970932623394954003858209465851699953812298004907105523941295099149177492739103451886732706276549089403041624366177022005424244057944270222469338787507530470173031517042655414627959098497813965268582863596817612768213015372240502583525034796514410323908282096913577288174628784821274045008019612448551341519563190102957993000859512274641841423829369623800978975935255468707115085492334848340876745142245353492311964839966037636023997948775643326403907231996329629024472971112840408618299755051826292255230094860452291024689093054029383593832981656473455463427952160417721245408495520836365918858701561231033640389395859487000615678915261933504232211323723790201147393203688244786630894131479637722668924653870117696961194513000150181987843349811329308157597344551121145511381493470279090960839536333450465619562565829184207895337351207040116439036853318058708785420201869021764001171004578854355572743881959086857665221859090847877151437771556691508747892381992560202853179166963686403336863170072668611038698818777576730324709749615372748525353251018900445330876462865585011039683502012311871593384394974534499628215209841737399352307540059172214073757325396017328554940396084571640535115583458912476250901429503705944749136498869191464818545677871203740477540577034479901443921390689043490388492910322311604401952810614823814849689837434137917102546391168752086838852512674684539391168812897211350069851007941988332135494516184744221580557129148308710491084987325615714262210901613994047351204105689056807941741115100397830020281035222921574626132298143353259622555673602215606867105154806064588450811400132147001147118734162463810595626515152489255131242408010339478271074054942249434064095058135458433896567882038010211969121126905675192232165268482005410595069017600914682156730588957109348481945900349797344576646381347323302758000236816747287952300195853011751755114152429369860616335525860055977675913644980689748666542655772833787757433006127902629092897499919868241906106380184848698926917390619675553893468465087078849984938625175032592916539818688426269887406170379288161914444106859335016319048123957334779148162818273848231962549645306906406703965415066767164202548006660524772583645549292525240334318270674092113121343603121622909889589696935370184617153539020282412957700410378630052989553956294850254001341300306140147140740481953934758621380242454159399000329708834230251614217831591178535613865613645225125188560659867800506448045808060644653373317610560884490822125471395890611501793977132087386600240266453475796417499809958735261182625654150271186843443680695293323310443558061090762227728856823157069454442850269450853292967028935011549600080557733268669987405747895954046055830862041098133445193736846529553101552426903155522245208395189982612760189412185792029875368340540240842427457697399371209137994664467349674190050305575405770788400864764595865698642601794258304899247700448918677658509918759747943415158459645332525927847818832201950926880421576859620477683040587629774310767430302682684137344121268370435255750411034891163971389596231602171681164555707225890210197429834240129009024189205430149196894724724174573960455247494327325246294021890026183847693712059190131624375472103690808701628195930045048651614673948541461257702183772795044522940199113390282333424466579153684721528597936805880593206629513495632117804744735611914547181191653429193604700590053874837482167189956496319531171211134609081634943737386945963772952740955521801210728250795949385730744909132671241446472597432572597139615281542434157521245544472459281172775408489865706128204120799760556477027517370175629176079488465901666071259801102597966963312159555658852372527253979600337523097004764049531837798541570206715432452676763627152788639316857348432491150434019824811236905684905962726685790601357420499723944366234643183894945714875968828127268318506852400267159372562251798194981327574933784011410642941436093109344872050571997935348497296219784854258759278672575854653387158641987606534211222232631696835322861526966390527982486013596895246723953863808382925391536836773382362541068078490663328963828112896494909503533712641542039492535280001236866851110300370723519818148875935431348934060294323844348679254836869251988512782964529577378264514541407417383743846988064567852869381643562788254363425962725360631936552104165423542766434205751546206532820377750536803162106189316209800165152653291483763484405653953484013187618872196949095889609519348953156043744240086515054947271435955255772434223673420558695056127985665527536623873832659013488774200775249539477671172987400192220710815368403353254942526253239049713205501861720502673332624290940083276828962965848772826022038123958358893674232525044568411497724883001589407090086625963847053627781544165063688828682922333330858605121980595794708964030644862000767456145158048909613086962380157798029297317867228172736137379875439777991755859627927664088552650357633332767894788096516834945613075455621055448185606108203557249896546229522277093254584567456874007736429616830235114463548910046187609179604839117373484114365722082193484855486214714656106990170506415902939643928001663809666095593393040753289778689152311111370735080529938301252212402034765054805965472901200648327450325284990138452998360090564213445958455527680441705034331159713238378169347283840375949467902602378173227106438784891108056672375363409207725471512072036364913426526180196197792266520090229435855036048299732965606037564201828394649719611388368345887625285684219749457374710538092376851736984354585425730282288571301906827149205455521923282892101982327595005023144271065907062355615489007897690638737475434403522936008395889010724298166930042884139436233256107214466212398232872726280191122410968230475934214350885287208615274526539828591877798256556354168307980569304870300490819063612981920890668095307793212124955376928535108453656144394720577865637082172092472165617467785559449945111610131855678466248342377109743439746900623823568615382582095043425247604437024960911865081505263652058446059568901100253018073916453892027117508638464203120081657059080140679535938734143805745710373577013747892155246457348837168269370598361421781520366022499223696962892734771588424104857551097314888253495658237037971483043110057777708913532320260499052180598587498757416607132532033302105390624133703258893415955762353681774543862125457312343936962344252692349651283542615654444889675622807009802360339110640065695009764563753102186735224357493658813684182006945427803836135014770597847635717211987459007066595096565183683064534007853177336754308749948600868307944882022988220396435298531576620412750801439606368818528697239771284150739413706948266858554020722857505231319964879707457552094972147291364810875018695296895382883563853704252480575197752280821429542551457140872647644856439874575498071178651736434940057787142200812973547105442835735986584201998215466927465247582336570135910227275313802695820243777021068782241237562133737548422520782956208220578420975697505764524520693080177390728817474835550657257110420113547972961539380731464399288968998231509138950548376169231834104963945530261375545670215387454144957664390878470032600494549614748932446644486631084268605857444142831545645342575337664210763638299157194198930393980130299096692761593618962116511960134222709181857191262691885923633583129713611490155343139985857495821056269413382718545168902819950216964193722465023199273148219154988033884924883164751163835946399382818392550323087650949673567275598310982782282140668038744302610929375450360055850393253167901145532490310601022398966449966952073818890822435030403814260399091099964882885361012689089339329394990595444719539725971973948205102763722096061089833956278313849902133943344615297357650579925760659898341975477686055788119154541165057250108200607066115774544398701876225444906655568311704302439138623248852164432474420471856982890673892658582028400402653290429228175305993835140712136629145571227145519438196981170414738859922015995664537154634916895219315591255356528658990706614776454007982853057371330103381289118808568601483547543993260793980100623996998064130615101381217212555285733647184010868712400352674537897158030886232329403902387969841222981186426126558558895183448647304813885195649666763373714232953631883306128672134074964392765081285208351828058249638098287321153544785174733221517698578791424821711247496602158184062892164454269410359383846261117045107613537529238087303297201128221242726675870647198938570582018813517659262466304558632905195985833879158206697901103907845144929412640395356395810167849309091619690194212895481420086344395664594164202175093944462628248725178201133439992348051796896688757988744396843286450438846293196304328100128718089199587063564998635898386200108428462425209531142439614709885739025533009317952874415014807175670437386791661735350063519512036049769569480412447676729405226184980406907449078838782147411804280010584709979175279609467465822705430472301271887733449022551966251706644632529406770483848840242457676285890300499162971991788030227591749696160983017576393421262382865493270055850961559715197698119458520890195943556917751819744937644265868643862386939029176621784560359479251230491172501934600348019826090443760408968402058512361963469827887449403373120124783956833312752545185634549806131029410159342167260260970134439852414177474829997745482516212549462616808391461534680972991219473986489276792664661230790844037509030775802481968286013580463750866835600069368191136401481540261686934093863272202433617269599492552080141984920816810333109582970370951456879690694745114232279050775994304768484344832030881243995608175587753983268548001153422347987105665623062478015936847250435796894568424683708291024680661460331076888213886740776928194459938844766093674685890553384348178154596862925219488854803758235572442478806981395991953452580358437179092361111463101768440318665517125377937826681005890589197163179060545226146947430695169264152833702568189494978772401249538721285034654017765097138706688515673112702781429963740222931013175766486425931514164833888189308361748687642593513575211528853731512583579506632982779683847568653269017741847412015747193790298780816715095710766042319391035340360690908641349224560173750032622647944346122492466414449476733619756761374478552312740288932885814454665805111793420882701265925376325408735146247640664645008765679932868103959071470851156855772245858813084473753271562483314477106707638409805018031101953459337569385711478068411229304438341418633066847635244613393174287563322871490163423266374634404124064791642242308081130393962288643985523458003657348499261801649891272379764540034840650647686213099584441220116181785315745643769805965529640408323921783226727870926968088242584451192951743638385784714758529435194178496971508268201922616257900136546032406860708461474155388539618158796346820934813934745562294287794350683683650558484211890703213441518049751898810900184298881801369646171723455446334241588693494859480608493543263611579635040627666057530357043599645884769898245590220105148239553370197538946190007412723531216659930730390860136378195561952602645163687282318686904688792632504053907575021721957337833270180155912989476183267046916454490717061041738606102853752871283295053100243661706037183356216115271073574357590955661297186755347989421572379533543662506260610543969130987890766300760345884892200868102699088708462524158145700819614667120470864266025369275227406906903847257172603066725715927857527703064853334476682230648418529242992508545897354300655458062874563469341270097534734122069083745799887765619841339491585665719692351252506891004068039318165637964418180477747440933304717483537692468402688473615203917622702998881891521237318260940368754204120134375347524512865596840013481475183774304965517294818567093101504575973018181726596800175541107240988803363592326196865686208083223895981691568157569156199622760182186279167697306821648559358880171459115928293683418255541544014595048941860323603788076963581193590262360369036475460263141307061673135098271335909710674598723407293377522337824212287699908393170434141377963135257912481427079553292923191373160619449959859057575026715728236914897980490605209653739970550076163870390928448840100055009428580882074917733267720150880868038481359318350826553277411630056553535698491031356053157559183798124504103345035202250611256655928422370504618191845449147465738976219554187925669122284536389389847434371478035623699415285607327036127658160067450366089385951763476916055968171809624761734150365132122882913819298194038877016673552843709723340790376457679150676724281011153911700058999705026581679913622359968157621100777156541584639096842055601830071982963254122619324830615897617218683508761628177949625566289151622664262900542078805586166448247220347063804514049798991968257245556852108668112804479190588698267764212094820270553792528476774585006429973301739906452720075137387420974492363372422068700243619309147974266768594951688763175405487293051763545068954792211284511270133578647575928618491962578904890423316158019816639630303981266824274264988724424992676527601742375010637990203715097071405083412967123328590230633735133003231164696755125410133429814220294602445227739008345016374363034228389821620920879990163668933378390021506635322784111685638129377018423858685385546113607595236800708863564552699226261688453262568578993985894206517555874168397663442691987818016297891727971579827794733715626795919387847464233297295135076417019520622011836707489946504013038405396204746338753154456564453848647357439504721294704246081140156393456292060252453319254899067737095788595555148373285410461570265288651540289259777354934345157349651175623041649416587684808304072716388992352245090661758456223649560008897873084205144577763951405063094972427228794992144833934635087253599933912464228136964809861931321731516408531336045571168854557155077489554340241752911164751575931796065289655834732438837991322583301572446870578898838662820547438810816857114857687303205627697564167092523242045907592783342157759370102498727713179125943908215130649173924039754435298105085087781564326452440799156481215633030657989241411319962948620709255791834501871821994210809374936375507682718362348985065578681334707431339941208912281107140377784938754788326517968408700210463407721323586310198734953712944635151054846108942776900313331732143557754776127300590517131198998763118309781057707189982755074525633739830713125920416610838488643735623880715832940770723154627263316033918945958477138339130725157619781044215764172214348512614346010296127316030806566577371416913141728238210040217721150014557483368593509678950451918620252574079745749656291877971213656517575391795198946699207234890751951531150254776942572395993364884830280289674587763764412753636856712385939799032508553215028638135147108357438832898978184969949879934645514174913348873221469857976748811146339623162316026950642595377560422484549656263562011323187496198355872395323139142880228757465452502638266438084388519093704581873031776606416048059666976489170037128572826471573419989706658568547161098966554051073104406921423424623944296787746280862121596110407274685173049253802464505161331767073288503986177726335234680092963482703989143300899684101999999255067414362405781331160622923475446169177756201463066344325362568054995063513148505816466764514886238537271912760694979155067873443227158853520952987809714524003195354764075018307681749327096169999200977829342154487672300050110802392760341332801719251842886218187892023180458123474755937255241971720977032200539181909982132460878141725900445107176081690609439209658791081888709702743668820373487147577863213866193059421110864569038623315080450080116411997891052083703427341005408671766805536138712399074492594595442022163251169353963178159085166565066855008138180294145404188058033163528001222553390907269078881281290702163717381054912605886023130862536153199035962993935094078918685072743496714269729249771943433476110663159121020199709599783519221682938824381312238331463159965769595475287166227887106928745556066634761369362386698947038996510671149859244236006289445997541184077757919462391532018818906606235034554494185807805646180528768708049946113690195703713312524888253734225925487855432180776374087391264933766818051596754650944858175601936914133308850221242211249145137406237422806915598203976461337920113786127839665954586550046955474482509798553720861087735685417202189629974179349715226819330679582325960636322846735982460840695243551203765382358392210761969347172942732444420056882038658497355466166209642249211277832636602258023708014114214608382873873696120731244195229019143984526045558032213037899140992186320155064626582691569704216702038536615473543348311211364809364693596611135525815554877143651752953054564635349628895672335618009933500710468263479525485929638355276465500624221509027938347365972908847683240574741409616630552658775680040364849851885227058026444443532453072538644099095963737958474574785260541988544828228967256997499641685648352788183823731415552758507139227580196528176563641663516744029091771646211208252665888826895772977315938330637093914034653711958417607359029438987614893263824741306888258756653442407934188208627566279602732415480217309842776224621084009777650713110787738084692741503207339800938135707958766748710257688175147440543452237725413623638732884700883027363798144121005286366323893914099424945301716105501665757129499124652491076559459834099139808406471784732648888503631718512388323690550585697141119906698589775442624570870418060435529251287870818184791051983334562239819904656676602768297483288668173729919518218622647518222662904573798601947462251901502386385021118173658940955956148539669057755790206584303638083212555567642188602639174715729895535462291387894228988922742775810166712078792375212806238385940682571103154761213102422413955768845707239276099048563738158930751354141400104840861011162996649895802703198893649670181554061750556036172530707067542199538733210937680217838064927849169761233085700647953321793293128345294990528277524961925136506441951490037300353166633414434343974269312538248654126972897791057956934240999794003764273253130522674266524625777547032554836444756089028047310376570657200875969476094920839098140442428737810155359342201932753249082446276042920047299507357209150789820755414824676334598842262308655492190879644301350177488672271500630279939291120225774712935457402295940666684252619785327387828991206975604743996034480011870424925200711523489377001531686477154700385235647341624185399671587592136638353038517616331442774918423885649072143614651552116539632123202815499721023030267380825509058528310119463120773385914542814634593923118713277058651202928248019889856995512510910335369498464938079086906059096178997373600952896505189247422131096176000446524177387637679931905067314816764376731404218288376456688396629938594522285761700300903830597534532181510475260313154908026227015284906653860771835519148090208024560191391901787440763586078652801941898472518948305925728202605556350998858581363418270034327161593649051512931550938422690042754294652624599722761660251282389495817092186539314647171777800500179379998206870889756724652271001492479229561275941630933186182191588564771391211410876732323792731384476450016575445954172651795245810932048018029156948792161920776782734148360668948740208797489625008355799313103189792177083661170275773688546533703489193788520449048020310994107700416516377354216416539846164276871427512893627257580405052794564692271725849419423662999896485692502392506515144358568284503911070213260456330834528679123191732932108736698949504613286683989231270322526963723293060426187909261391918447861813470224844121505672815848690432318103364216065669391142880542156222046958904413260173048710487807699154414274179634227961399914101397528786504221806944074751486496041437345063289026147947779348594068354794800434183296628267506618621604010205446151787325376659561278403359575360378847129250088786018618214473879819745525256733099755922040181179601445244114405057147853320301104425164881201162575428117484523527396693909910395486769822965899837949374563043172943707655216014101131611087177558340347880411241622717504338934470449488966150981343861483503067023749689608380448540383274925579809972737066657164699527675048641001359907902759418981205642724695710163197014742148306751726350944526326609495077707281048522384170668951656807953739703204115568390553730147834922195806871959451621187309135332340879523832711243978079958994165436350186578385031570898885931852286602853567179112793491338070548465771765091340241147296596522132414171613969850929800206420487595625053520724454974447214118025493968784463978103759060504887722846804662604428589627569938706073393881616801084247749753807154527947456623085330153326525850133339421497122673168378141019301040195134745570601215454716147013855258248453788578269549416809972900968892736192002895933515010340349304995623441194403653207136852492442915978136185612596379074699598904906558849961416478738484155771009770897232227171445603646820026159423232880126627487726621369840606858526899830603373096542651856227159863610703602705772362374226161399707863957799063307822182181934202531049016651482900486562040226409304565698777582234109784851293515338344022945387257658314052177633719533073241879812600821580914983381387630523293322011978916395186185767847030266486177079501562317948604600059655683331477695611805020113350378073710955690469757703886829743980136135674453342668674760577060095409585494262730537617190898475193555570837103358398152425274540562590232024471271677310683208713027141506865820849985455719762430477818942110912162938492317337993640861208933012011087058566915981009322664757159310602703393331330651430005459550173396863517990517678078236574039164843584468163274309874223772053180736500307620619651391875137554428786088130374275350707843976779442651996649163112257974046608274981023384553163417012952574269763629527609038907340717691037077854520414089263831857588544794869836333171178615730587715938230718499770110832108208848598803588821146522543382140392726875894321284042412706093843275901813000144359449112400781635087571702307768937182452959053121858019875716015709439827394851682803956429815544203585973697092893526605873332788129276609732892935294390584684320592315182058294064049579461883281891975430011314897075538418995861208768960802015153731418043609553494130924981005232395728102740646271728241207058642430954937580278371824316716992029226342351807714241247405752335037660024603649285457358617985691652437415520075889556407793088505023182347033929136666085988405519520050087287340144804433613566075716273124993934117846811399558728526359738335489307216417968696391937430683657149304864241126463407818735573650367064709362712465908674088836344385712475387259570574091262047043935174331740025888368348712367816775255821243792771630741447983310729022145050861029966712823378847052588139661384181304365385949671199368590056316282324380084361524990978154781003697697385873004132543561033362440862638367559484478777651290165860843967758136930386986364235228259621008344625743397106542979634931922198374812932919056414183328859518381629433142705094354330626291709483420341125953437419022899271657533993828010404622597879383531154552720146621757629079505143623872694719458656421629607125990119144999944262977335340928573579039028119262007842890862982753180110764696780868667493732714102710844009308653244292340475368673822508228505199440591743083094605139506901874710636262804509455667415749849225543124741909483592089986127178553486612291658825879413349295232530887532370718536436016764766196461161594202458728884931183259927245820955799448169462759702850659587400790259358679391650219589765414659707551041771995579146664494290245899028617649461494149888642538256047034737201917900059345276088446943378651178454908065183803105137445595915384483473150340313663583179510849144521767190220434918791863612385383619489417198970420622480273610439252383883497765623209882312454696389327121923295101488938694358026824733157786085896907373743055055118142137912338172496918064740184002994649633265856748929001699498411337445400525038933183174579103523114238047314458885290307354187693710938085727643468796145481787161006697441475116686133529614596806363710354277934772512095974240175292788691465596590726259037470900322681566599660756841182468081534758405909274771004401716635048381572405739126891414469213942454390121509970583320254647861076507361661265880395469547558214577844443236966827662592253564932006228160003708623569381652028254812301414003884444785940674585873225581496196847630657929634071409611118789914461856440390136543903709085994487325678572566940613824778036405842098325882447803364680681558272106537812651489058708454705060361797697684140586994653639409793740315985746518864868958102330284732955298347564784390171518913832597446005114483812354627373478157377728527360050934821991761962088033548950764921179775126874712769806027846493119376384841789709414500398845349895267697669400208691863511185042684353554977650195610278488447480722899525288812457482432889348010967703769002313353025307915379737364290664943601846896959666912807212995315951072674284177670996096285055913202426610158403963409427761456311793001459000379527457899441931457679464395353593882814129666189679822387090822958713586177712152324795827231962513407137818753841122898642533435099633860474065032370824230349253222679820062462451144674865696722429968602727200803941014712897636254453677043831902771853744916683903827220740621389489940901343181333065297257315549145305730823548142572218803757795844043884927489260148861972522216900874859187194187576459833805357739558354385725748970809649323581710192050250646959122565904720267239138121731826057047231220769729127846262903429840160545815504404484622317474912261073824760042013173825960823795861049051708878341627133030865991196472938590297405200428972988814051293188413997477727170835360433715705902322868612491195111098872583834512975921147808515756296114215491024812916347065497679283722222458213788175441952095308673690597173981891720874255220432112475075495188855160250453285682575894808774614241858152078433306358753847939950218493041110994887486407766685910622174334396445496482071819693204886953206340695009052390450130519187458316442644194816946507211665256582954068772733361153105851411835749924500864106930755936525143782930796083613024211328654081968064368320117795582487987127016437983810445199551358597413859876073518110218190623731679339495697513938345905123910821199810019143422762279163962566576704609365687160326309902697091082291760721216308993983951942745447932097901863272517470171422140224874497462325642657062618583599341280716001644455200441611570433841887705691372782467816318931334335058159927841693332295686721490897598748143421431752044054345901508697775699624253748794199205507332950026262064201993621548123421018851833563597931866504011396641414782977818504350882822905478458264750078957820082333950962700193556799887486504750991371160391768847591926843712852052292103547981663239783439676937108904111718323136135433646585684799815324979796508875647296809026529443223617782757867680162522171308794948389909100502041956142884945870148668000215343562084381268776479432945549644556739990602047298140590471164298204426022539284596582161494076974945550841913710801320279941395848578064242738648271621380136762879632919494347855526001932197454048915244122295984972949832390338738460829751349818686085344568826911477294795939980924316281159969479248062964668832626074861493618467114819217634283173300142098957459835859944683680516909200172329024061001425684628177931212782134489150828653845636142517219319710523112833673563150904494430861150846784871836221402403510941240693782254943411190633594096334557811589489482607662166793895046600768561738141264270769493223952484409552880590195283569608630504399140962225310828532789237631237326853902879243359199975911778112761434024907683950030541772004560423374207562419618151704521869186274248302067497552901119619839907255907571213369819022231436903809904983416344581702451806656275887155271353206705962479011445635477305179409099682293038840683381866374122490186263355751498024237572946704907347869583839040133940291129258522858971562044144409722904929401401992311596104236314114028629611883225951447436177777299632349680966931732562295742704836375288011389762914145244203366926719184271999399649349459450450077575616989604245696988055607459075257153084472097305519520527380123351550164455746934380682981688754964146038098263203235560252053079714896808547998457077293290001091261849966392709237226035868043247492545109774609429608885997421459134646322127146065031840033495945958022660463370680783226483158915463422295840227602670612432378218940018108029710308599500697005933701607785456196596009221230813974822226561493259302299187058471359628466752776278115344494894276906267166642005457631181296243332742770315567804329950646525251269303694514674966624915777608876320058844364237526300417930150376147575271962545596332513236005748118592001244554071293145309303277324098759812599346685204480363612262318590954123933686387404467310806544111439518072217107417888994199637593343978705984923001248605618972447733637903741429800361215722894895287371991259520912698970445130691389126855081921914314491978614629111443115891636927309710035019789846850885415137345575558019555913624308453808866762972764214836334635051968660532606872202206939171853373476681517978184600581877687354392620222696550642775436199950488879475086082845721384191956271796962816722391799196882926126947213515123475532369672580448969239800932990475794835948120672266860342920338466594503706885617023253999299543911289417247694740340516938135061482400769022827750787770506317383423053800169872126345319655179473244437128756588578832910100270719943277403052549759104030541668204262756716207453693429518299729338730483606963343608508958287650191560900693740751471862967732805351970288681835541674569676723619377456239321794453327292448225356698145126754044463672110050145375115326381704124182342366663085487898411266012204621613137270208658953965907537826075380837492413661065902695067208567248226561248592713215668566155959137599017704524682370689905199168593585949764311479077201080813360911853698211064106575433676841397182652509821510066257252027483220924280457338331822216962473939127515343767046229171665265519289540883882625562596399527006685227220171425053985111610667825401921089561363354096241476967737570997933190836632023455283306868549140673956854752229362221676100788736544052182785720570930848664973647734085942283501068289283925116340419927059790542738602514120731014129663360007662331411519265190934054259090943938193171401049382532501533062745328696857297478986494949747959171790706968727863331839613101204744866353709311449138880624452588482305783517406309028879409908561105120353597667644839244523150307087888469881399479068409180400264965941053190441888073351581599211714093720821345834947667132615906647659391766050970692322960223980442914326099494259559180373584951956523846963496477609230148144115974336956438973179816192220768148126941200876514228920357540448610590779813383018276125418339564797047325138700552164772159404557119637264954405931218462584873431559794102493476269778467649052799881777460268170522351417910973953272086920940073181229205212518492575022019272018839152781745234368488437986677658843069780036713902539518632378943644667068549272176894026320153858514696214133119366059625764860913394755607729572611304409378455571718876181261620588529958362484203402229435615886292167207782056159504603326775054958691958337287367320277628244564391913237986359253943322494248700689920412487104400699206363627518464699911556822172356768984530950906218980496185554419167541338846248558391206368138050499817105845943303275589218089809098571853362378771946675669797445952408039580028227897179727682813731918749619475994486682724004062145390481247352309361568652528398615858380837859991610954094856114104060548382612478373950438129269230750444452655446975414251255264523369034211293423792924110714511273885867561767860742046993799105065059265886687044295698197444456104702477573752650845900689565459856095276567476057655205931984815827731374766209794204625021105532732010957268160554825070376931128556318571207561620960032326873745410385049271191750368216193952610625538194577913232815883136892734102998707754982488463268661078939928956540050743058509368476369423157234447932984808295427242464320700088141177063005107364509994340892363162550989447004823025737587374210716459917130514288393119262903730467892682100282700051732074626859921904870378303497965076338563736858393609646512256875813982457624442287497708189840377273456369610032640814309001736833061124844580473230693210019834093910126565347721902827712229243810394545743331228496617227349721156071377689036731929273821670505024612734064897808631027348611169544394206150623895047019364524139384479976367724807962835647574607721735035308925726677309926393196275344081546557705836657140417177008440642770279206457116828675691744473714987878797356047284972377208602957074323953963497340091924875982836841323436624539851086280026795035356783185061478358446783170486719261999240255227993797614215227582563976819310012871516352317175503294513750444371150852276320661751503344581983390570186677603514088022707487360125077376357770368817470751113438518240927179704064655187565611596169501501417963932650565311563497996835063947417358459422083881117162075885180113431059935857439306024126186367357111964682397775168772763355558308656947531594098415179758593521421330131107958999261561092570366910046868766606315231351138442408832783772738208289300004145835461302266066502351332336614488771055274084162852509646773132071900974809156125202031799012566289520368221482858953819911844281016238533481501845375304684222222221745119740588119280131139425519046094554518000917352540664005192066234263222275104567095231801515680659767434035730507319958529284845312483828331277630117140404496705827066253665673650854132424567920681624093208373095807700123557356109892345516306391927885499292804683942603203900432184028045565734728607197560847598311384549804107797222963184068854203819529505001795507483496257903132421226226137186080399157609635212329795502478193216893867788879267673103605677445818805736781366488666932009709705730711286782236789170919732552987484226310480926789491850033958960611557429571477590889641617764963154451797482773347122451772924271982567991731718427246476385804848541651665836926124625600558129598900397873117005502455031573526369294978138019481036852598180773717215780022565663386208570290091831716017661445815915442716649933855842230445014808536884011809821331281778361596309525657513969832349628059990457423039797405834302043356372938564393769194679391724590941155182714104735141006675461138831096287368469541980355490058376003916512279577993625985334623824021226008221757938203563029182658670361829687588731690775288729378384966959221130302365622445750947400693344029017758099571896589482391335922154855330492597282969215175385298092474919942550494075170598653054911112807936751412592694833137503093195026733010069462525755850769590262020290262880868449530124136771806818182917541217108255935387865365559059430381678448694162794723833461058676594977668884467473827867725627465121771340093321989103655936551931415561119965830994296887567058520698688610177289952627082765219923839139434224719592250704431480823628218006492618044743421208373316686408035291621409341248317902475633150329168100145445371370233287507071975953300993461722176021979876058231613756178072235799177278851600145935053375378165111382333490475343470877293565336400098271391684820488190491650812695813425859492240067534379366209235740685279579435355948289545593941354856956010652187865522537376173276097848835186461248472252825208199039058971229958499891301558224320016197583735210828360329679640886770053717992025745778126457394253945512164622801804387551186945622808951860769193321334525808833433695011724101432839178867427280520269978090779703563640619795026444796417239622620656534371568160011790922939198663423617537388366835657094105093300284918302978877077367744933445757485862087938593004013078261945642193803725814728576198860175951304190600735769625353802918652855663545710614683270907256741261234087080977030331269117602267305947623679825117338522149476801864930640576209896220974925166693209288840177904660902942688611515253362337046873651454197884112653458789029590991684608748128184370064648163889414661051484184228519146596748855499575920939534841908851961129874975943101990048612798750194617339192292250996509826739964641548929430823930526434848994572488227726316027641876442016977730670543126446953176494791197331292627723852741360066356965836642692809398138174243927233910336629814967904022274046332898185519926205025479610787726077684268022969830304399881652556074606552948451150839373408559390361050508617050393178567915365186848877087439726564012027869885937221356758235583678955917071662475280881583657162697568066085386326023855329256005108559523918376723669953286503526126744375134322216508719680897540429770279556783448985145046311165096708285919078467492034321284607349316185179943493847886335721953689865096612566558228812004269485548427211197326135222657593490352376702973761238669644013032997438474686212818378690568173023062410480507029626957706052003587773955280973499538476144044051131520832298979257011499365108574787857610706714748797713655735813547031707470161861018151782804482734651124268226625296078891173920058234198892202994233948340055095222932270376588288501029910748326476154391743861978675975819720544005182706664888049492438731642417806025750167602516226510871905033460015183640964213094883165962518534871008081756941148128999807810272815899752807161200488832226669600655440024063561885270608681964132878768460722768332170829176679699152736192150950806095951167019519413379774561385517976306329741023746281675744617219529987700021615678374398732216064278063802814108225905782581416014245605297561549272450984301158711892567546817092352018101306818104122240952784205769104391219431525616172270299236777142471152892131570884378475266587493932172323603178510132917774353053388672098495222575557604901731900282353843169363459583396203629889202000022040836229943401319246673827761697148493358763255577419108435229983963630238546471301110231248218680255989335112582863448131592664308787745203641341770422002788077418211999254148226267930931422539342235372573072680642630611076303172373458664407688613405767245730697037780427328404848106241206037280978703134587014685444747589771457693340791445811656250570114870045638885010155271891905623932259544051300681934933624664095033489394593497781880424055469259218120218811666687182793216852428341545113888968931944657541820663931017072260189942755203425305499433390908472362708422729633059620416320565765968536063564771680761779841947190741133664307508517594059021837614135431461700279411800898815299677685215851374603498884282940992565200761908242567990723391740203946864121502916165432327173202291789916200531339143354948276965800774981663868778490232144633518773205779752685332017447726131874690554012074249037911170174677226199074127210400338074186662028310411490202564576623334887069337577668428653762575646877042542101688810966452877771003687881796682436309319056956455155838159503074049624603843493796007046221779523665313489054853188797653834517676816008686730576187284146643117512401527101949067010100488285514720216658215634876336791136925496851423090755170641566693874411150227609702940882128254674163292539619664674856410132582051632399640692364085908938273315098100088353006916442142727636189040459272385439772357744779191590418922386955842642158327340178436793734682525974899808832513833690304548825717332373918070298466515600974811768592506158339984379268485193116097261205072391526592513770346559971252196228920587903881888295490684750761534690653366267283914972953787162590252401783963127966820427592354423649071728149438742389710093833596642193842117482530194724570524784059706778425903073620617252645225338047758395522113185541108656085059679099340327279252495066666988499292402069810669279510205151983785935895234989532149298180369932601417780725399084737895330208127326983973115552646981318844696942797354379518225514684766130705276372799256809452767612688755602066215085149053834049178770782231617625881880919090538406169161269234408723890910347560220714063955601912695498158834983749326980923243922400970017085445513317413564393651904763074064625929818815873713033647368709347246572553786998810103505879233386769830259387249460110112008205517735822179983188971674659344578160677483149983669211408616889140285065778205691981374976230504734884325199092355028332084819169016239217449996025347640384438737251059673379186613968151284447836413268247941885045244906780997235715710690749649034361815585164723369767101078050190713393093670478537448049068863204723724543991803318127006540637982095188619425614127598216233678208021582990422107558726788667514322405060508292424567671226557973751148962230533176997769203682205339168607022705282428131012474093525420374340670800978843854873423322713933340348383556229117851347567326584143122408024222298811062678079514008934498357663976859685817410242869172862429501807619503622431651788122353246416830904148775979477335034888088847989788356682931472295093653864183143943527516026090566757950963971369045119156327006280468635870915957445137404587233117079767943399394265892267244791248049283702892651965929850815049690937197987421172972926775162370260595645128236221833943813916899934749400283558745097387008713391324121394626885319454403910768540934312075248675486771700978536834022302293454435581876416752929389138233742659593439727627593446953444905812548168094578777993699856430599065834225421372234969834388953302377987835683113482574229656350852763268753450097075736467969806779292204220530650935272866856188645773689710474430764599868983938873441519129390094064140439537058947900579197640685911287760452217964007975275312216228376254301891631681062225814971678353626274059474534372988094892359850719675560667233238758711393480720325077435335469974412714603541200669890677086489265325265617662462980098890667594537138844308097915888690924420906632147936287090881606390189152081342605183853372908881480165015977833597410189311236562799058555108506416225469386093192526665581983127227916987381036083404538554236854206124266210461334371781032827237428480478963917574274727025875373865159581229167365702927597710323244896451996166878330262251956583452072770728714489892827868095487424856495144934115052808555373240253740030850289481713660985859989918776610434261980412606373057139380655641198219125167934220265235948432761043319605124691793605059410405799608603103839084773864133238061985896158768276536979461251869692768705693256737119433297404830606769188993146178584118609596543350642933170189026326624628698808110702342181247011322665857511330709260943940955977006958795357759136953471713584616304590550568221494298836001587532333431305730113823494235050164844017771264252073633396078006803660156076186802158918927668781135748209397582636449402387265183923878478935751586134199319929062549040205096656747576625811879782061564885848995830681144777404580647944842739802536633248424844293565976092791164808177839910031964370761097778651226215381169179027643121615768589793922867687374163282420109054410846760208071002610418490943406046525746759535984195759986474991546071928214359621786346265394348179719899858206622733039953233239647715253521743520444397548741237079432731041235879397258931769666702875294392099227187621351862257576814357330882583071286322630657862352424655432961231754705996800235445266144518257145901927939068558825321620586027411724019322157571331811100647386466506088611829994367077153988808349773429789485819933498981325938594493318705874692826366562261887359081006717715478009615445779889181217167392297228384943835877843191279731725261718455889725480318945899848934739347156404439273401734802975692070950390981611771210028261802644607670629410864384832811350188555044829286317879372218120834278069929946214401316175878036200370307036540168611436777545733382661936806508894951663979037314898294854016841595203266761287534646945019232032759084387986823008599719393292901078404564945003102775697178075901988983854377566275496879335048835638264312715838914698556295029722468782406461616705044530508786186049805612903801307566406475043998041124162455677535370634180183481190717237625623266543409426904735696508135454949428203874580226465919040486960246295321867515406013277928308074901182591294970421786235267993834835243319512860887132337356109794838383630188211620510075262872274914362833653470619939967931033405879371328980911455151766125378622429871978423899756261127550064376560974517922907905348220825554512324085396106323826957137437600227218756974901210126944098772677699403017307059668854657367011670929076558046113213036630941407251041129222162689098458551248211431433903421003744322989546059792945551772016410011379936177596496843616190765491526984833898266658234702485190095588097038823267089736554984632832387066455010109107585662661502178118805589321745640334755907314048932515175731391472608318587374881376785335774190349590275453334365650598703694534023424429772637848586878893807663410404992095479432257512710160800766614826718528818909729403909484350555923962140724482418280332867648155657719116480744414106107809086104863140409084396849657509409459170597002344323826714605032281384449619306895802573717638414587557923076950709609687270148818235518476352915391874714043406596422244891070849221451410958977026114858592533466247335962437630915333336250598863242178122436571861206234099796174650452569814058594783737563862861274617179098243179868793830621984448263614884878761949675723907294316919645288113718154615740519590674560172582851566356746860584504438202233751157859189364641958908305487098443785739888287978264263855419101062054907357021168223889232222426397219542081097293517559075462975000461381861430427251911487613432011178459446910026402945783861960400481152244628566091681645718546824033131088520366845495823552437381449100073715201840223991191845533335073186083562495766948176989523081878017232333495473015560964049252673419576543308779227779904275412686270445098353991177367820657001433721747738755542955997181527332600009576722608418161034212114769818508780307995778396390485436133382038673396774715328648347967641498677223477387432603214694804198446691199387556609839563751661284096410308386928688214639180445727621842973788813274344725929915881937160322964341744092124136183025182804408912961140851132904661496369527055689399297393565795219744588319627582907989046418245555622330185860661625480166406435063186194653753613093389761641966552623311398571019452793547034897128357430730016160995222289933164634265944136471642017822394547825410452920745282904933280483607795490426292789525967113376368563434013720986301439845667784038264611211058646943222501639750738681099356457241515925956020317187140362221175902849791323225382291832674729406234863835162591221523359709870513023421080848525553003371693959011652987634925058412627551716811950509184139655363250339671522142819229572537458284039824150518288820631592030507830631929396305528983619910726837962932655912407336260036236243216502584118798748399531736768766445451815352044383922970817633744001320214869943562409856915522496987092737700154362368283840300934359346799769265056931453839834565095132019063340686552294267809160987798640412495069463756736046048055289739655743056942667518916703085956312164738265219430681743551509691335794443392337959009860619132218517971069622031815086646788494784539776619430485307063374934823317198811067033725815934121623898100520300092667353700683388523568618881119654982113286897418882252656106271011000522914660868224415320756435375854680441423724363927136002559230976495950746321400885753245833129405419224590665258410997214575697606999894594897815226255196776698266213369915207480773975746692315881057046973760992116811521407689726971862799291511266671300110084071845320689012481888313900256162465683382528806591685008324736312418509040065688645690737369033178488762430018589919842837682443164745533844033260469289035748375214716203869494742875349474269651948938218586148874232730530504517428085399201363795864441256292783519393465178476741748699881211366615817850211139407970136938188053298758150987468416560764098397602107730201656338930337798862643342726327152289133866266243918237020118273266872323038411892284549423471489248318813252524594761564455750441416458588329575825183234213984054129944725058628734154165691481001036805425270712390557555275915398556761256083089116798753765151509443380103537403004215504030053446625302017426411184461409513887349037756223645344508895386205951237142513707172400713410655994894501569276671675523601905522501333519079653116595008063024720790256308303953900303766252682506463269746191104395693542404726673540776481363589425462699172031191194830741414962589738685504877430299189536556474127901618406382376508124869352595793573834310868471784431355264346762610986428940575068205434013698617911412802959705838346777067850012722826885074141571731971757836529428519299839193924944664668367450104330803932704936157279259739768779329589584369399823994854529389750336580467947837954895291063653968112028219620036976564035734639145780799244504387295126689386988951971325914947769948762468183200954985329288244882317508840728781201314540358318353956916033280010189542715610918104411706916839972713709147906149782107289797656606438279839483302447763820067308353569088766212616722440254594462444430510780027693832085831845947100166759761322575700442135068379805401276959529854874862513456913799679632731288579843377319975621532363671752068145926631229250569576729454286204642609777547900770334532289018312679720271792542125790968269906672479163837533300795021115219243004296283890558529020427793918169088185378886291841233518253660231040594843774538448501596864473226789931759124627511725962615228644856633314736234205172958132025872553091935161147370852912799185951582033750784006414045679226463539051040417646508206274999405930333605859094500949316144268794520646499778822916908531453119606470622470783204820138009825994329023120100790146734246830536447980383622178582515632266578045603913293087993856125905216104243751802426395898655375023431911818144192544877398423952416706666658534808524721414550378886407783049678764814258275512507500058681680148835035702419150047065625535199248207407206264679604505428577748085411877850168937785571401445477485523036261704063549145465590606599210885724425111566527194303894417534686737956581338082113564628502914449846417583877400589935044089290684671606521589443317557451051048399659156492345760028879312511790048386092837533395661897225253214300729869567021039040010640583303978318165622963545736631097453913592348968917602473813937487225867685815482297078077953684835150607823405752765015443745217251526746664811381180059065602249028388072885676429711467773645042981771648295939827513346560951381489306758391270471603246183380316114724452064620197152842917909588382869455333183712039615415552393763965953303318623017995080083062077949322094004382638354429695581795356298018073839512250759641513431142744298085690642547216677554356735848276546758896508790091935912106472675054922368075313385862511206987395718756915959446261733028007074622619867632051168228501687013504769492418428601479797198788556901181559570898876440368108446143063655540349787879572355398936495223243921050800262122142062161908946365041258884942790201477947412767508136639506290442480130569790493004837832250133054976832350254442262718481878730727620443594597730333879026309831880741133963740663981323467956350386000620797983780508222177273551539188274622765489846366209401782500294188449021877593570407880699636563403294805832246007873010072811595618173116508569715238379114586073204366209668322190327329678577010354755929307334043401753651787946927774611568894543635909613687269800658888885634276522357064093920521424970412800137421923008946425039869236745361286608135169009048383774010200624495821555751409290847608979275097668197170600540580919664681750048809956428841220753287068461616447057411637983867642838127472472500310200932409136471654908841576306839134313592975512176209472479554069894693753735429886572338570726080822743040462026623074550136665420186955429127729540058134327614150990311123996956037308785081998249210127342273861594599671177839855691708348621023900848327929614558510507735114979812900830364429103165264026738039357494249981543106281457981722619219574290535850198828920686453137171249248894481722209101325330010124248281156960002930672460197731551158121072891657623835681068822039987233582205888810044518699705048372532489590161805356552588578193722937695456008451705226160817947370302500103925810438433967482201557554613792425050517337927510123998503087097298450847644406778888244179268677477327976956765897213807553384367524368074793249553184238458037442646415971450271861764324400578997446996917381815527896115408432125903889477582377452178564713473273135093381024505820277473763924915963073917284984284081500910273840916366729372168663584896071506222424422182369158053772843090248407319800329388082159209239730174231429596492327055536855364669786836988678627318138742639010323431639738860832254602184530441215612138450600239321311411252320788583951237013879078143070998360713438147886313442471541402827776066417264807567696590610275461095138712646760159343754767920620892674254466241090869572312960800782959355494817787599381453260841948953246382753871452487500092248918303472998120115470376956061983478021772161687665968797248128941455732408956027555103038562239094851031517823228095740679834228026248576764795118464314996760029619852285729820612863690708123360261219246132158294998790957640922470596741619318288145056268077912608582210116367243250247573356787188648866195752082147178928373758022445188613604487111456546652863252222293828702883378061777328458854726320551227329908731791540580236040013772122678767220697666692922921502417368653023384978040137870913231659044755879069888223654715397476002508141096574171051305406998985808054081911537162965420611567190545843734053342802793648834677694481284821018188282564467398857192660497524380052360144976080448010300306530332452845915699483045981434938638500387250925706099928119427178038686795955933364697369778251007425965857523732210375870529561512145004544569692062978288339193398686531176586758588174006280307282520284922055575537359581198447197729719800026248074361848327549898597198173207123362857508124713338523900841137596439350778958466611633669164229608313917276427196279169266035351180912238290798987390472503120496018056248789452173549645415285382579947295429884715884877733629853351378020276136315031879394996344838999637004417346288953917725029136152594254962228966707875998603686426463015919402709739143234793005614827268041258793264517744202294870971436244226757555314036581598665874839570611086653347172628737108710700795235761017939020222025750180551260743668209719530887703385806644737670176486448551121674039331812382739529843153505864788261519125943687477419221277722509790796095826448134792553740745180672610916647139902008050029516848562965120999082455069830874309094939802201919525704900638763208717032495144851195860797519892063665334197511282598141447246308106709439292639943180338289439054871907314057209570033634633943407097742940608194756959194192205738002025820345581741206181838675819411594198667463475006372705647005301279392867093701206631590153039311914429754168987678633062648689696679065499249573164369198268397159753558465383732459734157793352088075686595929566629698601409591143948392771568588913146389247885437503416186461274009042660177863754348078441910293261680967305232712713335460052843599367768394862107161119708773063740083513746864410466182311392960872845980825763323795413818437275818497135353790642329005217613343705636938208203104285338912655427243807495191913425707126676988183955439440642958192360879765694654270840540113727465132847827620176071305015983042055299181217618161448632796736263268859934581340188948982872187381459451561961001321911870836708396021435951996937733168599552099324020722560576998512417009848479951199864643521011945502609449285996229658130733105759362585074926984340455049419063299093344980324357147241982406823289189186810913311236416660044846733350584437207296457507180229881178752885783888601359153817869236286181589922112305908547412074012709356158578031360100405459909507183370412924066035506768506232897945880193163428583891316802152676638911517366633765779088383838209040004409935354164643388323148361698531472120302793662844130077012354808548742332383657869580457856383865367036518115839215538509395396782564244391682612183348784330365209569239461927437633068205808568027445901120368375981291376699249624224925236448586240518083240041309156499371092952787649636704474891929311954929806624163197338753313314469940869551756315295184773117656731836852704469620517429509577793826112357661551163368705611660726079025016955043822519599460010141507330026289178438013464029746042617357616314687882989472413163291915948215646520031414924649807095121307417627375208260772933189781495171517949360779580509447626382756812094267581371878518312507154395317603633803129097693020523692476613375072767135451610036441050053584835699110958384528172069188810091105491351159569128535985071722556763489400002431925513855802617628696665721381992970075377249984738951646978273144752535227759644815473503525929358109987280149603946545128709854318045005225253424306212332077030409235242119176953327505923811059387876590121881269493747623010278915869278691671267485019419123639546013810362030062325289346506331074780803878336678704306965531778983835564860769621071611453381227674832602392412110638276281525549309484788490560641765984706088000749227928703841073266868575707645575776576061761593110266490135348763917001120845754938523185330914861627229674675552496665645813080907347953760123779877466902847318078784658927595362131676688517865345922256741258200390235115517822251432700490341516045309442354876450553295373800265939681094909938750974891759338854655939358819517012678855190758560664681950132811220446994581966286066469728271254655980364893487134708391846023762341610636580865921182778942863018633928709265108416118914214707073672031329226536352644537559289162175226584197966106595859522384337279595159741436178799899615742054197013615942944157261186090247928846534923032395815400074326995815946623176940420703835320489192562872671058851544369064240612820527455264388617428099230907761499638378244038937289553723682287579479183002124498541369376928389471767524182273916850864953627191947643917809937543591708882211973645560911005457779713371921988555205889401691771314060195778250837874097503382257437876199973941974096760190753636598986120623452988346509305391293452707372659796440762138033131836350607604821988798893337065377291081240468637609286108919759077137110099296248824612053789829906609396504015261533172373734350680942582613750282063164329075814480113565689208315112690568737193667253762905183516713788498743032701167441697481233817569063388037607913446026268257721311864696356627874206007009686537796253075439029619198338104320257722279113605860940333203738853385031197787301002109109994453255417357537485051745699846128221385643928318767269576558418394416623379168552136021132339985387619918793608510845806487977846235368812439454206030945748269957304174353914053526301726314656143079134506991426209639154178947965757680155634775512104627982426472142834141185122343966433673608551142210624136870617755223858405440552565436272878505276115338018221370867450765378358673710658171919353917973534953648755644759867102321008495896674263045072524226240901865737385043269068938573470650059781839034861538235473986843968848130525893074561370697963723051631166270665334915912037881668857300572165530846620730180994865895232709477406729595792399743906499841084335908086896977824664557381015512018772919601684063472404027370173856250654622374399333664043363513583090410239152755699919972520114881515068619131386516700767711363489120690016666647817066449570839206288793640718408035656420393852051878603651138291382661178807096707907301637205084576095981457358597451457215496395454981707276631750324886434334317193215406881224405422206668284413327954977488757414844642241414863549077744464814092476098603266916453890491567277499004441646078314559974582671066601286843356016967200556715857338508846652588885828375753772742325934277306626368935401379731924179616038990638691980355550215463653501683315204922055576485012405267620442082002418073481363620430601667451026346659630823545380825823131935361831208985257193169120247315593559187387120573798212176112781829636174320178208805014365718580717490408720922475677387012194770402193177063536208325776716037575303899624018848245406643043154563454357846271173817882887439394645923604777029525196880702106121625212854436727623812006350742909312073960509233373571518387898797344785548526559983143407454597107967108669482273923309649838154712011032085121680314543900353449566717922436391717865369572668913379884454675473745991316058880913654137349677842193495242486551269650660560740142563979499665185858056171580667387431863315780110927113581135249277852209646219101474064915705635742359590115709911917785606943117117724955987920821339608368043256801507355630417623592222378828682220598125493112372411400428741380570010850040060685696184238526122932468894910057946277001236628349614156255183229001066848037171709400660830247819281371539946334824931643719745180460620109073305488787545867372586874407695804759115690738495114249490104656576444676894235689033859676460967075105094318068581144391461983909834377422242226511535604830397193320039640841117218692823068816849636162745263131854486165608281179861277080597815473753808633111669514750163517982588390026700579595838811060708853482198766905913474023227925315874398283028794189782491297735183826229851791903928278781352256203581127214848309495494293204473548592605955699838841151064750119799098549682711757042460954522070132398608535771312770426909975063246208459021271796620887031238910193702140400846726022723326071972251684317514650824213822658639039841895922673900489170435353201109938888498737544061147539122486044895846746664748920395864082802599142030608384143415519828827350280723932963354091790904524076815964901237454572557921270817645743118178515857531239257710705421878529892397842129432364306063394105183105442307237786204514633950859121338431552347560610384307809879852032135937654019029081669434782316789570197804508890151242474848388139852940641301433099863017673009358659215958188202437221661216748260269461341275266746361856099485719720615504682131338655093220168339866745787697758444244669303185077625215277464322745871101600246775095628219948204205550354437122171235630503648026408806649103793909675892772966017109994297892847609338006986544698014257713269578231078952347127132065755305980166563421289581539488083861366186614332883972438120569412733563681818955493941365678817456022163524266012611189334769207026313604232608798284792178241977802102903111989750322481959956120713824389938335771459406219333457201865220041040790405234815455479232788948851904120320415513002910153267114090819477743800152437817402595609305955384861767774126990549851316925294800631230620525929909627540234322997851899633358161774478916625112487221542008384170713236994008104720370874881600047372297634189796949357146994833044116694183088461150752195544623269103216770997455316258742553581286701884913501040689523953122569711649283161317339648368797816221167687974612539071158945277070193540793332110774789367609028491924777023644713721642735539864636951259019850376707875446632347816074979144407185632251813572322986679248003339344143296139430408717574058842582127452229799594833614602164209186392079587050067905305896059350205265854030204709620344180300527207812464153873505725518510413595334496935274930207738237918441577491882061981099826487977249237808446555945864616624934162263489166205581257166835193255839765451666982036676203137345461134267945176395723716068250178881194145341619321968815660071040320901702707899172703442497085007241335493398796014865750496883811709902883704535408633545810766470901392239172807441521486405296618625834057516698961658236516645584779661891498440166100030990728143319958085625738655247646646830209112253579009028716188381097474246228238165769082245973440960480810433548110411620899244805271667327024736430510747449345466991823673666857144599035245752265712930980366353322719415752166101804128162903560765352851892836608309684571368456921937731619870364658769520698689079851959435252090627713003474494863153437266850966197351442382512167510789121905655579719649864750698460307819879395928015481217557149644919481783889299051478351403876236572178945999540987291228850971287996365794921055638296655443106713767503395222542718901001113350360569382324632063453887445792895526838874673325248119690199639836570493760741566181377803902257871375693230136291801891263165786350284950023732338732762477080507047274472041602450370462310713869241532927954101875880097086884026302058589384960086342334809076949617240324599442148515702590621159345037247962711612961235258289151011226851124803113636164314377015862841160080774018481672395015948968209650830960073598075225070186258753499250687325142887596957362841267014807473632828471109902605365532794739783720497103553503067777415634432822289443699734673795449657481980291450270866628219110591071730651550278374642447988619952596771660231906556128373202066700840549136675037669569862384985419568977252811318724644918860037065209969776047856983431620625779296018487357683062430333750714411778703335433133931134791712957556860521373204420596805449124524544565404091446402359658310191853518323601747786927875043453664800755942491418527784232946417313010084756569495665406902196069018781931055603975296604078663751619150342636940806092358443441279917299533844308142596213211715698292668629873602162176315219912816491834640984846944407769351054171633602743649416623989327313380412792410616738822163397956524753492094625058098309019455416771819930652435903988279254728884104531979849842638808324421762000792258005744510125258889899263546289475357941481625265979005995453913468537055062858399122012841089096327607011298687678801182607387021494226432251625574464337498281191791157435986540692263076151979561342559625041314501311010561713642966016417141258484798258339237790382665706323276848580116746825920796761787331692893528913051288552743119379653815009389447259996184920106512438896659502144083530137437330715962591200662153203265407565257975469409893576477373646776274586481772122862263282888131957549948057888702248882912627922468566412387646145452015531653026380398075301590525539452931180656119986667862442423426056369924831316530274123529073159015498794347563452871948829973615615642368523226375360140127953222587721321980048088916594081087540346765139145500894290758866056391438185768998855294362586265842796114475972276069211297428925224076074988942422946713989850347504293827555315655371820360546427087002361936710281981037181785833664156578103182368776672012048984537059401503858170705993910688878362201269294892589693359937168755620142261796562799872918554498928578689652212846728274332321314035304018916102296913021890946629990404542589589951807620429913509845457506922382200757704949067362789653232928957349090159008554608108002389810215748392313233171251137588929089360271683941976994547456828854346286282725887666070043950476135995990409379667238447519618788112003974896340833696784480324868714478285659911445993726328177227079425438547313857875288271093645189778685384953174939925742826027743369673656845634451492832936127654791314944080512372211197117769562322116532579731535560224085066947652961848904960635657347150586520242141265244621138115076767927823549637393979558375323945162276660501351606500238420286035160555793937477515126260137560743823893312801773263274341116685423810847018531850940277367138170799406502167105674392229337790062930013293849781192320847150340394194051860708252502862700218289632588914784310149090125072284362060493644758206652567119555103554100782165626174702570220270579017200287597952383707922331479008668140409095204599719190813724720516046998995586453057517155094739887095208164526107385386726904405453900475163259662866767064223814854528364928060511600793649661619017733662685036359728892369674693953896561413893939000676563297692131424740106804915596559808062286897362532725832302354054381805322121982568356876152688941114022517187607123615031293174482191448896047700392273110520627783879399483821690052922982212234707714364191365879476825894388707249128802197373832734065703362395578581814850452452641147892154861632469420093111001298492934054758484747893010396342565446960720908397942644471867202265436742246464706872636129170228648437008007566848065976564194867640024464857285669200075961018630692027775217695094668059655492868038079448809617986693011979300612790972696091467226011004313301905430716738272329766605877603273880610201965085598857750040876767495650243906556640420018915341168764383586043018702106947179187143951575488020861507322439555245109703878238526260834313143295023877728155006588660311070714186675223843657214758884947942097189626237454450307466680047754202962489460549705158068878975215938135054175319366321161646471731720712918711569763978288734283444203185590115314341302507944480345083675212050410694488344986610592710035567842249402218260657190658358540814074450398502026865715562635243499848824186431008451744594431484778777261014186377680324735840503112438162536778083094568299373032325750647989483061027482257621776233283139881933660360732320637349311214444841737836161593556201116498568090404773229036280965841559740545972599934156168747819842105109388862937032914383435398627418722661366309044642917243106138146246926142086939254542551958396888020755268728653466157988536982921436453122395609391860465590424749451500196715891777967205999624260133209250032524669435320948692444500984107481150286981827665627712866014617600178011028460106277106078986426412319291206286327360222957437176619851901694069861149257314138769818368123245913808358309575814679377163739718198223587215097465643325682777228287739031180746844786318155385689148688757414102078311030492361318304556751907584283903412239856795710709108922363315944035246678175056526895070936033549047547167784369093503837024034686896579247049629817573483138889427482763529276999462755654924055933233891999679353187809141058387474278419669202454344263349397946414359783724982878434946705608841150456403127975626185564154430213387880652672375992257150494633152815547838494792280286208601845109990543481902176952976609899705932088355028043041206107562768080676638069243096620516663402589662304422073797790908322908760918919285001156322345106492728468165179572043850282733670305259352585976784954550607704567000746017514933660966944168922719395249021765545403155959129152211367275803792447320472065602792869526297651613936729902305677151745782376590993266823518769521352432452503701913334613832522295966717964473102306588644694913359737806186447174978958051583022412027303737292215441429571574550274992670240167382634047800679453888020909743696469835793065757438225061815329374046091196065133874901535375410312489110714347529803463230823489704594577306607955663607288031061549832151875125865943481881810796165000908907992213075536675806854749819384807695384679628944537851306995600098280318447522706255749539391364131683720664423930503622493467404550568306406921580481998983978227392301805645280760908017371362362550844578582498753624656818478891036692973042340240664516958399448083098653596778396556640979653809516354279967511806525877843780961615078660471675274243259429854609263641073668074469071141902074991291836834564282134050679553928270526881436022286618965097741856349075836778314010007903556530237876728229963453454439074717520918919554383895427783368979431410464522535500562543820428266326036592307592341743979065343649260803130017729614885093320257816673835274053062984905284263605740170151165751963130110755972236706072209226511997061368979803620270499312688368913492967822632034027020007044212947399080837036901758787793088560544314976271214310475999432691775029307338434793057916367544258453838725608629036748900640458563353304608895307971746758265568955137069996611627285181182727624088374648260420367233719208776332911624886682223803987854599218161204099175208685510477367529488846065578122052545620790007949292004694787690368023132731693371771229912754777111269605871038549693004604982847120192528111812756367183216120008148881617970616055694630568980637929323685164560904244002184576052627863050303350906956228589489827024735864525081165878261776659294391440555407774090738560445361005502327047022841752005542587897295396528170537140970556029007550532017292881012367799892017193511332805127699675384854529825683894597298167802851664902319305286772407510090272012910812214612405520313554096901326793686036612143763792260954693693748583744911990829676082730643047898794395726517620151692857125122593220244545830734001057171384900897094064063464515543038862424332425945225889598490515564514276629724516113406500603841728071215779528619237621305307421103555173043405542154107812894689383323077555579272372440732875434789482694448607314959505752393889002274267797084847236146229861474445272831266920520913888700792253445949827935188173331411238546364376536028731469460154456173318658431583618131068110344528569761861423020885061211076909715256897831119459665774695028620618468781653376950961876903809755770307053931064582367750301702175492022218624720189671258266918933814045429372140517502936460951066848131356725758460898193204810751957948415956392846293242234671761311874349893010861633599667222726524878588816181343161516589198163796983159934923268398443724611955814815139043554445851144556148824499920819446679457827163278268644285394073871044217910263555757151675255939841016528666479866932751906107379792479917520019033846273087193220273220339127079976538016993758232761570477921619397963075081661434187324624284535374724793578137531751033340107074582709568515045370040151231336481854778232626157270181567746645834213315342000141108886948382824220858734630437309703987777930536911668943634133269166668009077933075148039956273745677846896675558977499810361328773755068335025209871493332221362045566054603228276287088876807205841077392800524666548824390274981507617053896707896737445616193970078419866338074193392486881746946721765537929314092417330662026449308293987035655565796121021103299584170832081442984817585279477857137825741781891313786283851311982036740942998867947255777264086633896407702550515381012938693911508041362140533152704354864448378843661301285162449202873838501500913623720964408794732216531492539317929743399044071359765874085441497991958045569280730451641407132238146399609392927683891050814962920099574052444993516838183639281639644526406195795133298263015426196925157031765323166002301866822268540194714299293153095269895504885733608899197415539173003383164064581140378146683835060244345001309723380035445478033389550000258177892065795750634170005500089099308338596988276323960563664716173943303053748051534819698942203387339023128241230423864534096994230300513463334794788705259125224220789444922235115042601217288697369169292763057018050989161246839540409512468582762516931211482815389377361300302593245457198723107979513138528172819865897295096663441560163168999066658319502933699949508858318503055326636252363177244285273131175696355375416657332621634478914262112480473179850104112302454617544299127683677540407191847332934561743540472464983981493628027896269680234645030867275955908001783279176750665332645630703174337953003658215818402047009045759478036027971439943320944038530990546576942120475935783147360844516003304800018771217070619946509764376130461992167446835210496178502131787410716011387300588547532201720869656877881585627543556499423877265422923834913237572712325163330944609120521440306814200308892080286028435062770581167643403010511676941460036691496374402621046136140548360314973420902857341748486086204259790076985859090379251445452261351288058333632396551840809228644592438499061976407686239392397440344664188290388529330398171796635454705219114848682672056118787519022897871774089423680705715163258917428482536664350018217061368063612905294110412208515314992994146363589365670465974536092532992303640543248749485379738010557669471724560892217954477242506630316896656536610679674882482292103994734234449878679012171153704138776287323519730664000158750821619449192114861874652050318028603196037908726366452489428935446423129557702645676002971563383658428493589570111423272418344572816636899072415245472493278517680542113670686027521462387597940344828625026548578079110882641457025267671847676020342478550077166355807428228232474179625608269215842219288390439748874766936027443178107192600293022513991277624632987628622035740572093187258021466362982241879041417730852664558033171695714947472855554753418428065787364106213622583541068981545416878012205457539457616381475593807702683177524506390465766395683390140206224925709013415499886966122184638476587548752129580686769142095555425955967359074466532946520008703094859355806609919717866214870537741719795242656049456525971742159627431047167177639417554588018071335736297675227503269826872143509454135038582196339391530294098509319103303227751080736501363729328808891556425113245775869818777263191287139750631314516290486643500169115333204494729834990168813611896763534214065688966612343429712196632801183291679594464958922901559862320221021448108155053952734201777718897699610857149022679190234811216907171035050832909678735432073807333835965277626462919441600959358207833392003774588598498365749954373860793213838443332592503814083037326568729449227674095731461672339686263117803806227822324818399537678437941669966939230199932198813909999695483402076139582544269986880590978542370436210963127234563493601096803046147685922094981330787578582233552173382804633352565039197288063717235539639495961790284455390236914528828386498338933608670707335638188070451468267162886897695453811792267352197715486900460279143738642737834918474911461406889192315092484808936585340990738676025541384511149542849294762133417850489325408647733726550759175232056904353449823312015466782706464374963310168336195153661731136280992495263223660635785453588015517076584508605736538572599289147653879438336789172051960058455290189300452425738371057840723302909802639850153990976139645542625920137121402641864877972779520002201994375385181202484087006273912122148623116122589357941154296325018823737734070913710209777289521023398800080072492575673219942932328521916592256125324850431306472724683346331908263539441017364069578934462593875528479658688959536359259878954781269959215199401013595411755816272639708526814168175297773005401736121439756979423482406219994676130689477920425864455772179986475223795965580949411740125517768001116820752014582883531783755281515079690585251150090066293278858837510597379756873741306345657919618192133845244565848871636043764557834054873008195898178317363170338105939549191736843632733325273282687282459286191324452503317351608562463246464164251457903562115288618845308940539388110721581912570681591845245936174095873924118882521355952016438384631405746767334638259708935303813023074433926387045000823930313004969849615358671537457237533602807489064944419494431132228955283880840693168897044581425072658504595460413121338213231668495038846720583014507448041854992154196369409875003201546196789114564815289024606233323533273402568519604802048082564798697101515923661504261417927707754811024092160597049738249535938923974599097627177586335874556030792154417934196431545913511947468279271165982647223749075606997610906432079492473930788022001217859416571173898036404518037099154470518046413142060370659947885155409946590837381053803119845947063249118416040592375399776562518571153745679749007309434192564465195388153002065534423992035182786917097482849594855948445851286627839537623059179586426600889685834294412896116350996863986572635401674494719439289518002063098513444759331369001119307912895839919338240806189355675145559995945936717330468903706242011966343938353274759641689329250486582547305468169120183371027973066655681661003901063494124114365959348278806678212203487201658194369564887870717515404272728727506396630478351522823550914862812467458560055266412471445949452279014745407903774159883495258199430231786163507260297694076691493416526216824374421774893956266833057698233183070785299202093415387595773659162969017784402076873926048557216683638218077917213488604772069542596275536033633402050254194757141350917737679716929433656390599920750954036903784279663648848293795516700275591943326154238388712625081275762189015885382107971347806531483036931891793194481598702526283954523654377849659962528372566961998542515761868386398806893098448458452424292907349531850470278759460308375503263560271469235756317389813370948727346712527583556097128211384011686046454619966570060441009559871896233520347243497865851347430905080200968151209310536590904885556954323064804189877408686425824356586497349358077125062996605226378615587718520426165891673647248409627488708255739036629059606074518117389296552693513349833547006971502175558909806290730178527392684268837439520807974365781194801575197300581678671248887730693141578791309511255188027412344533365773339533156345840078644576899660453779485357141326323085166100757847482119353399115997469936664940421201731498019976072961219705234811307356440662358763059863481871639581930830764078870987268748557066859767809275020182463963669645649083501195554140089941794103520773745389646633532673354264642701403188486357260437330937123843537701818379319994101572349977676847360439690009288979972439294667016321408199265895551975901200969467847241755638740726304921185766941759475022450447224143794115989674457773637279653310972369530503139035134416689406710829630541077267220075645516018768275173850882155450517843717236294867896873698873682964557287313126710648433453938838893525356414626921915470922839249164845036867650976628722612168922266743794823916887905449174408001361551584607818469195169738587810674124405138024847164000189139349209005159494893526755625734849550267547749396414512852929285195468817417294000570628913840725538866827911375625852462490355106399029850605975707379499541650845216208553374421461470893771027794393683770196670920331905938051574153693747870924720118495218691261941058686005016890680636803805511747561110415167857224052523904405610636895242946172154227308399280517511059072309726168481609003285966473024796728355421822822866102809392702815574920057748391284079205486741526076920773843344103961138815434859649887118457944440937698440301889535828593356342888799187108826105145906150760890076320879092377239206669857705401544658288298302578618487066604527455821241055956674579968426096079779231467008925926386419741986763444812167393743883380497712476694965576392929676663649249781954262964913802576518316577565084385092363396221395229208818362815198417069362122440660603933884060387663568083598164036903639842857406193882981885972667275646600081384547443627173836977178374741841810762725260643687603409868491991510883095934918531262490524689645853788073689860349401412342482337290434093708483720362986915316532655564741853013253480278334398211799738928034297896946361562466302367855378602327746510282764682257647402874420175289957364067107803903238279711389393325003941123175632407370775300757017042433851780857861936674169520597206378797649859952820203847661050553135685353401895161394899814792869660334614970103729211898229672044076417104937814235561060824229423322217337597706120258952731995604333029342873503207068295206844440460160119054545616060750749889793533351581878550466304725223098161303941163149576076303197104995045941014618790989774586418881562019448301071264092259949740748944214430362381568826805197252822898986040727869737821278272681487036202182982668459882560961779252077705753489455107288637312296279823260989726755451927430575135538363945487648609770094475415151081333893066320703223784369017981998111564946525169681006995374389313832786719803718147523483301050209453769462036646834615395292305893166343733800780272677207543860414796531905999278125239295064640357734549213838944761870921681582372969562803118885828030431176720770797454395897996913177482214826822030229480345449780677375766900288873553994024419572956501715273746137762584157918602666928344328970977755621712074308002761154771233617797616621044543535129710094460399352924309004181280315621244965878930835549254165417642136532019348073829150470402372077113303816759472678262980285037597893502513390863648266939268123038816214204088963341207339837850665577334599946571719786563106908599821876520469205058374095142700588547486952740684894623300236184027983482038613079056390583915744952932749915597060867804173072859381958551893466608521707840474967124560674353566407122882656777141742212582984167212472728418881527041115714886109555874864225493853929419299951328317750896463299417110710103046865776483909986792890786509295532259319538625591813458342685605514115615351816560381310974621426326217684021582212551803486468893176222992136970042149757454544075711574263531096330458635560413925043596543031967369109216347573964320179896095915776355709648156133613974698972558613118878001720589903498586120718101694804528802439408520248066099317494400979544636963613460984717174281331448882331681804358569404402909995381646212899410517984688664729050819007292428434750798658410554211310487313794679311101233610067755721852843031469909422489052777865081514689834256548756665218183053464662084605811609376042679011206798095203247401078298305458822296236786219365474355409349414886603253449172299868361214552678996330655884864096763140720744691488783359042996268602538267359807711536104941138876199820679697557364445782149654862049823756949402487984231064524666904254610411388327299370833992716649143127112549011894537077495063277466244878025290548520130289089621159148463212372984365860868730696566266149686149518374387933148633545838191676969696186874091956106311723695832264857741362648058079532234633546418003074768752636179971424492196821517367180621553600670768121912140865039193261009005437224247112978141770259541923262584550386702589231525957569214563418319832443735866842323851631946992234577617238117576119708676618078542060085413299241151859314608046412789478435876442250266562114195702720245060750698630448910769607447056557616669486100204176056012213443900181343960944497348865385302380326673443654275734448676278171978999653872239130595587118155108652683288489319510172383701890818101009979774486304186169099896584629656981770237948434403419155697117819329471858362772738096383956067005540776223782027084065607870035583295653331550006143929354297761888793418012344615614335211896978233465305471474884938886896169308021237333563980386212739604886769237859913182346640870340100844576642985171300472310401053078682779237902317862593445412999142254461583049462761762222436224522172426145744415375052937013244470034167850945178620901234929244082471100204441044113449697828655990251705851543468592742804861093684194491520048106476072586629350353187126315033537182583043865905374941566307641561460743491486773141985456510041500156383635869868951574781574419087082854592502603822734140227490973996285903352961528085926836767766258024755822642520656005612492318193253658703010834117999428414569406381918083387809371699184057148269966891768179733953784373202613896847208388909786309548404733531319113485248180271986473419910161095619590033052019194801494792947923690523175986715607116538490482862804391065646437190617833979781450717986749135025780763090120201975373889406660131729849489260510891710397900128300912996104648899854574092919827512860259771391813907548095352886250985028852115389271707388671857945918909765904764056587665498891974274101137133968533320788950696098153118950854688561249569724231398416909021807055845460165657753622865777664034674170210954465575857917372894948192176410642567674682379238651262139676109474713195400072123047003538147171317488142001255977369127439360725645687009715192016935295348291872093941783897710604113606289573253418378584908576173239185633880615108553319707455403880921547577341601749255739424352351652836813374024078544588599679748425632783698001440252080179177298838947017597024110905502636086973470325414410290788692683039685747241121364847047513579996550548219651119511320531451242397300858332184993647407776622464466464980441329812876993693010821433872316063457708051112175469189980470066329563029750197207579500713845975615646909712705513694960242433627740288675583287808113915286058460463882031495520680522772528692322307834335783389777954036131214078336956654162012295302793714865060336462167074406867947166314118535228316429557099278864908815982809241270695603446758550926554472024772599007099496268732862391002604415942758076113808231332381869360883773576857607167394831055088696406416748298746703392460475388493396085201442692496371686081224805339980860217360121636976531422689180541751274955850944675244084835977379943167066139087468906995724802327363973649354005232970240553447692500143979395579458848656227125667630870016334892471863155811170508943453446032191921533150293285325371710509253501006268262975098602242956549387847157158546935264423965100184906960797039105553335573227827821641452677134602505264676756876363190661127272673250593787936545451008109702643697692428798722441846725458124439396124128291150003188235659646780479034527380116858979554778683886199541716546692018575979938800687349076873171379381085475875169949276011476376869939116310648127263096130160634981851004916643060882717320417012228062546416211269779545078968637637910778121395017430093200491086813375172298118363576918661910346422918466458996884986174964429701888607261405361427306609879702743174155179149674700440266622362269276274111660171747211881156328327024601368863268647483276608047178307756860976238510600236117191096843068347781929015910449326670797675006559041425570782726903661909882787481216822220652898193084944223122573666592610499750874919331764462645361447403026440025777928775148955253307311180446761447891267604865922641700440026907346845530782533421541880701781294814529986638521711473256104400886867345967127321984859258303962895161185268572643977924148975246334929079431819662339324941821850963611017954430305321007914744085890002678495578435008506959413099476471309132832380721173374087694637376241182233430412651699330791553998299265641976015682507690567387711894608748182890063125301655131577516309030138845384672535438186043411649841006553333392780558092263579321243038058822053940326719952216700356783395445240778848994842623014915569952399863751917108797518148101342200842560165227517564333834181164729283365045316663197642739057461180822125367563865697133562063509218639105337482626123947218259940141383015841190182506012539171352877196107713832223414630177151642660791468476626193081186853347910164932076896488562881609065060529971342138009061135671096408097166581000827691314095989060276425582517627650226931437971257014555805336066541826782976782244214523734556729716865660806804853231534163337804827428270109486324474960537755427708691572389663959194940456719890011599022946167949353560827738922773610176154579870281488133809025771286016937807709192758689532633962013264459312697720413803353111202332225215986652810487164952355523085248705517937918527001643296992097950483893558885930168280891374616398934700511192838499454246278110262380062288961869573626822732657817381839644985925956973358273452835589674788334029644053662984503593029624659929558783314351072106130019135115354950467173606744666222928820122118323863699811973328350405074962821891160135587680080788490138471410026161627424012617666240603116059829462481086990447352381830930039539545373556020358013850738245747394360049093096124520393532559536457772510552720128005634742927865484991039666668978575467571725293883851755501024747664703243848868048987782344494458636178332869360216506707774111125684334041187837742265303903659330029685209319060346075077484532866701647153522088933180983663159718731109459624390426659705370110849285621294016592420339077795340578697753811891979946343456542644753225509048830833834626333367376122139454722416733708330575042048242634844134325351567290424739334193965020567631202981045024293734407663133463671533656987980413426596830969061734250919713211288768894623813998998599641968026807978563917365383675640551287450650678281657814722424309602984943988205774671810153850269833341012248713533275583086149337117864052221069438435169088597227393990892937213432251038933985338629147077156208206921942548601199878555562269073532719692341633465238304121058792792649309929004336178145103207896794730415876086272518597861066693916606713119164773344527279693696483724802001714969299215158713391764780029004007206908908961524082625968120820461881045035097238113689345315266041796637804055842309524404725201570897920901234204144546583314273025798083170266042096977692114167529375849931577594612790876147932460796223711826173202467203897757687863026249343811391503841604521601494218026618491017160371700305151890153652510593221351291501123738053828626083693695696070195482797292994365234432581608477457488176447082273289187117976709761457122296049451517310137718652516489511059604512345419978884260982502540342113298104944571440177323869838042812977138478476138044052665333909306950450630525050889288824798137331922312882066225290658550555434289924826402936577903212046370418797186672310553874856822278868955980071126885842351382963922163083314774049956236220950889830818149524607514276011589683716371004316860011755662041881796211914648643731985011980342298593247132142501373620996268075132205300136753629023420707130026217966808659650084968109126697423404190604781627220862246497866109548749994003591341473502428266359897919760787986081422938671753329632581574895801848164863604683340314789098821296128500857922098557643420153795066924445016539028330575582192758648076404262834723274224905870480428488943409815843970923817921701519717465365376548028310426157643459127418300450131647055107736507874252189508849308480157565898401060287108626638312501558466302018560947023843183957183872337693803647099853088675337871280192130528287447449828235956902362464742290658233804441799282494777418434942470645307588705331556318515712240509224891751013068266413190966218326363040278317415873400042318699670929669278731860375811454546068119952200657787672065481177541982311234922077796166743832701872445687954862958231577131747036400773449265609386802074381519840029472573928532568437697335033858991559362925713311088213937074867156997944680330019657001561010048204473977441993097437873317416728714924165707330711738583088926946125939703202710036954853488347999631934502995295542532948970587284374265111154999494943515941924027726566008270479832578274311896973012690677581043469427670704691428135715196818639698108909890832103027362832470984587824050318998106638429121447997970765043173616805629510465613637220643761804157987568787368641506638525324492404094609007573006632996152541561790664695751636801380794689813664258072399305371644321152477596008689480103123592493787141267929477752646413906526933295785978784381921647411201303375937091222251439255204182274466658231144637743671875547111038599751439209705715163977603625831751930848640125168570070552709131055866455217289367241123358453354313259058951945741361746825158960452249003622595114290247789689980497978347464333017060319086816581525174708973552358049162770838124959617525024698417661410602954031136053507162260138351043193194686365266958129174077722544803900974165517693212598394260160242739189384424691062209838547283372044293023446554013328658279820556282415721639985334901115613026537987138034806271694025821585717257175830152451304327936229918470363370579150695740456060169934431730843210362408918129031351402730210620136143532513171163764792169591408817481085722139511599809239922399739914096741642591668027510246413079299233325156631088552836432141113474631488904684583770199896952094692374378025991626204090316984671197931721988710370863752331129084577480878382084583838528669666282436801845729692516577663435997749665458106905046672380380975104265481069777046398880967342685388589009176785580953562930964257766918370409565423848238138609079802569901595683556581129423442530878008440330650185436517199119492803732933254222256841602427885870011020445956421057463492787682078870853926230102629183207271720085688593529166169701518607423379310442131865497100508354211024573489411873357875259127336763153683475945828979682667230792398160445334018136169236532081286635470412060515977355873453798770521520329260847636610897826861061842527316757464322606724371081389515319091338044086588790915276832567279956289420796945236668168371521590875947151431278382833463352433506567625277379169697571549203754653505457225194251605790820295761086807775421713786865612680691052415721828220757757776639538452190644081689035895587551612410804141862565901787182857250220130980915114322329771919840432440899741412214387701424968043238157075387652587954487039129172998308014942328917834750249923972806652443569531723715899032297505756283708474361043761388319371064777545381926053123670245219425250315718882594208884705285344074332149062559854471894021506252041579625712951737571892715160149838592263322105381478089199027704169398696304139458183705318971670289527496618986865312157094939407179175303603428209810643799160965095743561146178281940699292700234287930802345611553326562117322995118628763423664534577925969138464053243875926311610991995306640167961300252395977058845486105199097287605867674735369862336199612293807959723498237764822435652678218249911108835366186079977630141089853522577027850831593822187174855031129281324804840611692968251545471291371011886559673427972237969215576554466539542211830996191040059488707314996340669388304303238056862431711846137804775746629952484746569801248916807459772550527447039919267005664180187110912634175328214694713877345717004781389932082635969473791413885346838062409381934083514851247156465761309858687493653104586971592276457049133271221079185340692023993415623562311348758340437406224129793277083829591306992811286477028703824426913157828221234654672145480762664450648129663431701143680876543917468332604618958619007979148804145680073709688050885264555327300956675202921075489072134045496251986578851190575419424701770120962598585302867651057068479190608692867769097384274159349327152338483942685802063026776480070553119187396683830939212030271162795114269158697097477798133495265891430936500650859792232373162499198601527559130090339149473115667412475050688796298210799953974781701473806969036738934191739854843394882496258657001112080878729439193043943825342063289806557370412461402521213666054136108569178912672392943333193390547993256517860339511087412567364690414278489128004954424033644782286062511419780751542835439344544992144040355857510239293890165129229603114427190080938090436124096583418696896499273806321620937279447672980269886030456559734336814366244195080470974999942956329883400782696675513584712155934302693070490804176905997467810352351930589652317108496415011051254722495697284365620926069488551394545362136091528909423226729217303535066785458398532405547544810523859809230159934068564929665502081318417242092830966804457583596744675853958259535133981542010287381641463214337274703635985192013561975303268371767120373001385769389217275703435025798283820345157485045191457399838072385137204905551105819866390741364708188416997978073195989558059754997089951175060540329798295122346020440700143042785943733739643246522838928391737742428873977766181330376145821331508724317507177421387213192782427942991807078496247320571736414933459402377133619442806060390361630506864575787518787168299457649484407151403670479860577702983970114192790523824388611377142911156622850066538428262565447908133908249120338422055218625665549912703160460010232836450486945492945904888141557125789946182539840347990846280007262313094981069663727133636213712937741467908916191897593628814476092114678400653895594319958190934232769743241278991615062427909146185599033454508668635954210449611182667339142568066968230982473621494784247142333155693780270238866245301534313366984935697798959611362237609817358473535269793487916292029491575329798387898996897743791581834376630133491765784624400276261971438567131050557704261261976818992304748691863304519314952364199099358159164842034700582985544318459893793550019343056196522067934064296134162821605872763767766025608783769610373449665611351174609123581480163888386262213631506674236539548295328028042337371391862933943547204188394138552508405488465315019893770586998478118431722693329347863935420722443740194727131205210159661379471731227379221967159370626440254288883643603275404964390895364135157437464440331246902274409076670020908817942632454621537429494705614980309072652275930761531935718638362260246681856466331850163279137448432617909141657938946784665203604606793582834707039771842117600910952301901504502112418715094812832663807701867119053326945908106325556014512260199402792586055587133909094728017859071392377724428211445224354581326979745096974161170041318331432168195651098758402381436167308190653981560301668553012005544821587083712073632069028909264240457110043521840120558618236468244075809706237340488210713027691554816820423671186445244714576529307280687843341181397068188533481058118784190936405103860118585127020771282453179270334690863730820598482266489823498003787132400514164726733984800550093404326079764879218028875940810720179655530917520470710121401043841037771506084815637502589832863494298265584673100114311852689623320618150838547370371553085777094615524230841143648743278222477277546904321460142252047259901702313447174735099707611867965869660262214995639828422937005967532636259227229961923421591561912845036260284752265996239806118349683167297567657491238460423944943326226323931542992236057778995021959556390837796939349188938188760710753456078444113251807056360527778249113809130922424446080310588735746162878892406533121020166304527012854589804028011699875465200897504715858918942053819767330747257386494450557809072492459411133489659590967466478162486132421817850156837483036950914831144892796801308948905734517086443160467703174476700163868814342548063718732288408180313627713577672411819867019696391502141291319808086859219500868799763474657027338081263814129369032859332293079255463283630447110480596533800059995776544990945799987314429961396934912247971649406017488520773265493444094863177378921878818304036729213212365126820674491586630158668182214154009853889963235286514984552828691348729073576666736825013276085877397144600250163364316810700257966685072591483527791574537225653495200220444699798574092280307900924397997949744907599945544575467786300029125130829988996306928204462964045145628305592788991061154300823461371442309143359088538289869471290468919940687719341768843643403172594681282714368066672208791051462032111491670950358390096486231792097804499520130038838425224747348674344302167267246623024760273910373871939248613740389261313885809940040426396144268751650369124910817371450728106312024364037830066189839942688141245981477981834408459315646254149247900992368375792064055821385559401299098075195676959458526853336063631282117629714770155815292163530879150732794054876438048967736915089019617726007608234979207200285185826075116831321568450755824273091808613493199914077297570025311159152186811329951145461765297885855269015719231818974579995398103110658121760973009564077886297536112240488375753616334194891079617892428670442627818457148769684309189503386811288092734654512266918206154975045823480965273648933851245788874168467157936217869836145224321547289953213025224671906766181539073234294504223878337988376051009494511667270232426937491885935448481539645108503787489852120977325024081568928843188976080426481143413078070671024896769723637814171105815869704240191855940538488586512127932703259671024192923198038636267637742455028264872593332019378305872581537986693181478683356115123279685324887571140678259243407640840308898931574412841682611570739843523578968493683388345240380721984359356868382141602300678088644224039776513062501717671262132124876710825555468767569742529824568973878287983353996449409642788365796331100999876640963623775389325806210143759988447768155137991967639459082754363089990207723435628865868383933557234865955995346334962402319340196183324840200414566301731151344034152834055346659105700693904260153887169416381532029598054622475901549259139370150622661043065024122212235271592847352507853854699325805828587839813628284740460824750193502136971678431370650332159476738387074242249290707966413819896711154271192937453312054244670734044742007657824566993516314534175756703308677515350724952237542446875689522325401260315460573645177313351604559268946264371942541927039214791262504677049572945227170747970373239643360182934670602149720213076794322130573147211606323477068040005824265703411157564606534949822582978162947812802490070513296881076736127614156068341469166657786043351328589603788165384012211863738626810638344995306593136573525445314279021608846138194858818979033521512520690754792943683848812578132252331164077320132596882888536394669316394276554803518707484139909443834146319749916553873729374099799308790969651173598359623631583227126991921207944360108926526338215586403097430157807389924730175051897299412132159595878213185641401689628090028323876663478328667606576904093651631683802736518979517167897600304153731768933229260618343515090026096312707239399462819290054003221639168095242477901991714461899825696499187206209259424212567985980211851875075485244477951757901096039240952058593261701194671005480709898492822682675750916502542921588598963072607479728274154304043546056844952718692435138763870584063880790861435169356437987226778577842457497269764103318962734011367925827898725550650076424810842822780228543353854347347578543252254009271807783893785344072614724310602544660051144806777645388418048022516563563571847227763115813832063164792837156863377708093540684901296522387649295129660036756627484436643933756047981510115384950813870372475647947146055936150991004544069119116983100798469703523676216574485827297156256824245745213851826832013062520518667459615846378648455675320690046962167224180801213930778456675632687670718942789398759296917828643678693382118470405209796728616175554785837507872449212121457136412230894302508434858223592503897662937480981066512278079394047198210389052438803373510522575266494273391345220339275636458892389906202411807321424397573051319233092424791535179110298475221666766027498689363798718562781403819256706539344433428845940342919304536672601563809254928434839289756545944365372440582915364177568344047868940356256306679290680280252494466380063662117657707286569320819932228139498466303997399192874000994345628173611686384875951044634776443785650631440657866155186163765338409668287547536562180124322586730623530935414067361885729678240593421038352004354002403215291318889981187670775484763970939168866493931384353758039288339469052624898957974733920988993170001301549464422513937103188601319406313506512211896630941059979299270233309935192360038789137031012074561075904923217267581890696694514183484500392640199366191828128259670964415828790369774750961413854257067617897689539553609607819930313608434989759816684272379761646924492080350145345531388133937006683885016830439542228589788378332425339511404959429459325107672315193225520936772939410765560907603487450712598047706926812455370153339400584823666202772477778170375737124641499954348210374531310976234615283046096163127308442378553934919654661295242734374559931983949016340506374846333309756022086869898349487467557682813995152752724470469646791397200834266270272138315485058624720997152937042151686797458842185033726259953436418149578331626490061972834407713695948498778257289204681637420658651329035439214889049682408362995729269704851704164492404956950920428178044234626960088610853815654613798096237263241596230117536227160929102563489383715817118781923425901663112026032564757305819784516839224188958352689160760062045809849014434093134795877427468739508610519704174007466836067070248889404872997437381712731236000038298211132807600400541822822037838368967353070715774832240170267932243268549912376593129429753422878953490027791695978677807619505850768403470126259386435432642947732279317781855481481329493816835934920653909338805603917763162551072133271069046409180221551120171926564112763822122698575075539582371911988765781014555722209089772576546154646072662267740068617791810300673497304747591103009588097435112975511877207042830462921746892062292519811784094822375417913479535169962271479671013079956815938981209151264495271371601222800153960653231647587508061975309341546521636944670491591084370374117258065613678440221093852622103358987575637276086760730482698681598500342053101437788466056924475516472306367420431607481279952629294450980818915134061673842612544179646955704665941542849925754697706477367194819244512729694591017179522096485921418930760136468751305207652177618669224840696958163578390072242824518217442371778732355483348352776778595929023846613888477675753569398974907635993401925935980692860640934168888821508814935161075562397054517163983243424936030902314060310441793544602019427681810974895944369055222821898485165492254257332667252016396202784449111897969527282395102616669622921609374198020141218403018100182825450961854747759958484721398600295862805218298976765084519627076537127801706108982692878932597988280340113819635751602808203195278704504813550583860482408189472361566324763769082553434239791020397403205281746463496966650579135916723682667430761177663169743321049342184857845562704834683441200298466991465328994331639411675924100756724642274765397203769431542609348428621672279114903270478774574110258492175019957294100593533126061185652381753819941745405116570744832405551620340307852474468834345879971443089356766874384607862067305332108857525774880717282979098886874123240160149436995758902987447826536398517903250076555666588853466181111287036171300159497151525896862780911284701360630035991448249422507843295270917325219213600227656231908718480961201290361847324643705242324244504798970408143886152651522161039610015983832463554888253797453051638161998635302247453512146735614922077168298178916748168060945752981518767957504750027501739802809653765380477605302388057127328271738755429202648854368688305482648826790133322615654653322056674119545815772614114064775867792844790384244980397419102038619704521793723311181725681714909216898772282081384069288271435729845863407305610926870904589101950415678652972796781967799530784905588063976037460846429756078250163521578844547875965911789910099717673445633830230600214814543127618266889585347556278155424436460843294750748059039561912606003630905644216275454805288180609516864230061730500874344076726640482775860647002413642772645196758755704194675904675528755392549210321630182454975407696529819456404337802464281599230769777257667768730917923027602651932338044114998613224170082337418149414746488238779809236880074284464324017258167819918872304204467057305521695134677334537519019009453959281747475594398867808461457350518686188431558251428303544675497261320178472580050330954049745280875427754217763032408087303492314618546618468079789077355515080941806061265056893827794193308147461646342783788407043205981513503628754146775351437798098300331540679284403274071185547635805214539876787994893299186308312282194666673829575122901298924998306664806842048276912416797604347294151822714083894012806128634153361667574053349889739606312912319473751904720286314458711379899798680416742659539291122877533924135102337338797258745875569859970494159168656598879724702560313955665024282419522729010816841906292310026453329420110957434868786579516929092418402539030219865998740168817532481381792926055218346197781197284212148328040849411535155465336663108687947704873813791051743179046799019966004021849415123694850089212424926338280677999630600619408011314926237027267061875550041545056849433960537691123794336521458074036471863049713908493254167934863540898324868492382420202756380882116693753077349612488655446990045977929580060584235279377180547030669192759350153490977359378825346277917627167567079267324951307212252848612061266987974852175190713096460428642955277282353867893757269833202022377529211030185022231976250212899433301864988317358167506072296644480129763922862951016133514501572653545888549896424977796968217958897647428090883535511762565571745369234328987438134846335105827442200415016948972925816119338357144254653658841552022024089690805154856931158672964358473627606482820672913829903837012515067896279218200552975788963590110134382262276782299579663625256144327563873071156538712082239805806695887175539673006397405404987597729687946993132949338696885813229170599972999688525831772040981138915399486253285890605395180678449364128821286175061732811228411242813656315497764696587670045644332026801805398364706850047996449651297712032333157210167009441800745081232618935928859465105541779233996678913385731995364342657364183437696620168414937322709944079647771820005422206875519271036450257858757000700955400498025756702762817479001915321571071674066464849823158798163717488401173030609200418695188597928335824060609953851527886885801834922413242479043926471449253749784812948649844993755671323126383006761683970354731141713947682480385301038454963812286661192611576663689202123568147562852406504127491168896377880862305358399117975668621844928809028228113473012151161257121421266574393217737258152954046069229459269532633006028392904192568888184203392338740291473812679296112854509316253999838710533080071334013500740965500810767583038288160293384980207928103863309186254309326619593817867580106212632695671069043170146475775391326060532616870878033559122868909613923533534538764077135716770860159445123704839098259518574436724732047370669520740671522917472822127387423025482009429392420296583985222053389925551460179110429632373721430194926231454285992737261866860879438250398035019025974668681750468763011354914248884186490406617015772267393161586290500139465899052451598406465745868989798294100305262452862623417185538048357657615164828830063192389417320866258590162084785080915040004765035833617703063452203988063161965455143746868041411400828530237044462469409496770342594761184077998970532546324096478677286833975073351240768780185568314368803320893561939470285940224578451621061191864149326562317317442475250852583258992612177283511435657478624726381629779120048982765278560098576029172527487962181976410286507957146479265321314546933539475715436245940081599158219742535536247893027394435719431746718401014241673318229920176098664079876271283626660868049038224636251310279424249172531362207305064604464971484947250456958290107738077983758131392405347082988653561631374466492084891702967599932824097279660033839252618199394263979273055654301344428516182578980522436748588075820886308015072186953029441487722113445409277790125780490402038972514463433538862673181162434895159883545319061096389582464290567784056969652939223795048987838426364996795085628791977566861524055580786719020296631272957002701651189711719725951705226642416557448246151778404340730365529584937995274051934725278988991160431510422223484592748030496978889913939682751517285800039570085386720002665097753284589371810938046795450125211151909013150505080898051615599948715596443888725331130132595077220062100543611993302097927117081775006785230796654223490798945755729811478664807933226093537647807441087434774279845612220350327681443716565083120698793138284280193454011348591623269846352988364485121152154825015413036386180625852012211488099910507500977180099661563687233887810490965857355713412658099027421593288911363201126605668913786300463902235594373786655386033408752863027191089902832240254833588968170763977581854835457064801255643105871757925413554307719876778292967706412201468387967023453200752143006308405974262874962322899396632831094763586528178596023649647612272885616836146850165865302552150344987106079090493538156715044897311722872854413219746590110558080889713357652482836449144235242504960327179957044018892144579745676827539984751535413225896692708171283278087955988203554393105715978059561187142719027785595269909382988248314909154856278191055686315716939463582339196777880884676456469677339711991709390467560495871827954075573384956413050471156067531786602540991096434833212725735044832107064992166124630658758556118740194073014465121126677019923957999148697862977001089705928162060920437162721097407247499968297748252006025850225110151179420858898449191731260772679418203959021033217876381473478854246186236429227464127865194783335348495048203376404425437140826337447636070501031576602276744306006568655050064631257692418544831903595019949829792390586572883346240517693746519504216065930807115730598977691539784576851658464934231711691979635563787970171677801282934010176810975792152070536410775575686892252128925025575146258452976446921711847548535505202362232312254359921607008869880816144872515540897259372829394675756225123359511096275517799676967960525382117277575580253945129796624058861678300503845788304656313499491770009873324016358647874501921563680073086213254526663912952358281932167487144061188814967507491187153676611460547875074919461807615807947187531125307749402841034155855919390503578000771836087560130962236314758737007425033587845797816193973121058141485119279619254954947435404055436213187228727535182710349170923623363470449103715770232188598550355837600449493913855796238019165751863467381762188245286348865882257430489947370981445056045148616781171877972270986454524425874618675893694670253303058521645642887233963533445113487091207451863808829363778366970156230177433017017068980541285892480054998691454965447489066659125508089554568069734658744862384706849381565724207601336509930629338887205569497936765019074145731698655777328913905467406684944634832545223781623695257390516579378920821459022792754540989767878365266528963788480611178046404896653014955999884935936938656670449914637058871899995489297091020256217514942891942787457415736160842164746038464913091267896533698034497188254919670914768392876860918319684307648596588871698207597177044269565990346677420969602784800704817686997588948372980327313592280142689498851795019534160029849534440520532642216337772731147191302900964392518862200920727415265497421020171138479251262079627799991565541978341277011927898741776626812624503806388804514547600696834576390535694262831051013075448266411919347789811276582202689613803228705867095295576505782102012878002685963680897374517530324363084335339880497771317294917224071565349665370110317853837072394386727470250269327220410382946690718976293993081773633041199888378645385266985462076652581608821488201949227254524718941205080412601802421622586675351623870708158185886092115774473845207710780851700349450425906100006950655955456640107012801084615364170611907535623759008474373797756416901909138857741990624510923550923935852246850579447842823369867963828505536752106848955138148058174739756926959989928172893690147944118566907464990457244476032061592551978062672239716250973519808604393816311988449653468001006789727096856302325526930097642329996422602631185396614141466426360729702901316485707593234796264175021866800500365374330663136450288917616460127631061963311927025894763385392855407945257652218504782205992616525993786525370691877573036245792952550667299356947468560037854089898270319538976168209463461377816061782579295994376833145926538783321849813330029825089503694555747322343716799792006994422246295875500194213987591033994696306704658168115674129420989957458301221751439184641272452536844019430730260657573365718631792494395974922418381849286072723880564031955605964361988939096098221854547365209486004756252365579980988658909769942728874237553862606381324810704013017959035506531114563569516814022406688903509788685385995896860969989339650924695879124729805106604849645016332402083133039990052970903021006126076259190153840668379790741140816539681569879871951808677655875117025837221296129033556994677577384675879719953451681954949253431469049658851678986322097288353341624992311066439558799164072036611901632832847379070888863776794253160933143954557231475287126662553245061117995051045629142736264058386609249247109564471893584859100755077738353573059719043234149481989017813077640428610230088642575257296745827694432782859324046126000824217111376165201557404313424564154333597431414130086456052298680036708603364210235506302588664542482554036652768587921130908986726468422428723579973753799166337511581815652772694275352575221986471818333836703861285845728574749491228017389002379724198706042346415778998081785089745404775636829258618591135579125995834933971521961600984183032868078173358517787167158472333107223474660809542039063475329998006395768130799946717842769247786170824300612584374819602338221815268533322828636940980355132370472678692286447552090635889375948730460175231325434568415977494076104627571055229333931987771083397483086683974880738206823286842947917038852648305619732026594963017360646621144884309198991535665445687803424172934110002022566545702998899365629734589416947172519948268842979781741688594363251679793977831364563878426521748512926588696832436441556545106622949970650116032975220188909016560096817784740614629428742123922507135017017654993978552053326689723201774956306694937485100360039946870822063636090093368882605099135167741719039948558090350038645469642370166689952102863641028412087970894299029172857159408314722278087502219723118541101762828807288071263222818073228604775461962429080019486753099589433326215514703540688387627747085789777613009046042149972856970413506674220709129037607790938636809352774398861856846803532976661103952445963877407879787997557542423006984877409779683689894667158934420719455724624944418853872827607607920832164009226701421324662535133538784683267210661357184150705607544525034608285936149226363432037374710094887221161436658788081094614042837496253011394955337469137848599637155651805895562151400674899837865320285589235893528272267650290971554647589254594385841622107838532214762907179558817457697161655697731948550775494264508461902000812149791559401223585194723713168015927401518251562319096782349149733387943547575073827210710423956464346235656619727749164059882987601521581358987852259298464373971064876176422865430041677857499575569675785909088733788659440872348598345977790158723730578693901713970804268106746217320835979088790524357041289600101672326695694425986365256964156606866823089271475487982662610273996691724019261533732350496158365370705596853396967456060450406270090636082815742428647895199219560962554056193865052608803960470082422058095666745080183826515877547423005137044115776760891256135570016126996853964393228101812018710998901712381627560133083491662834179964890074006303381157422664100065854802019468539811095322939222965723785560459640330218498926277925961457035524770279397658480344571899436118285001111264746974110834719937082726851370115629350582632841399615387020308390906467309404756262939754200902755079844133287632101085610573629687752927252988822576219998692952650351920877783728865756041709199124074627056215929745243120466570265551715461701387295467862760849274386028846487327140616570348641174570864623981422112273701326078638853966490446033351164739381221675796410087946487164315935389641171214329504544043348455901315201251552048941024154835556761130936361970763886772969407985456217632617015306837620307830117424227563058303526609836185101088678152755333278775798538806060973791396271871566374106748877554119793258707086070072597909949102236332471274753411394628382416912534297890726185891263805840809169488941140362321360439201404424966345836241103835534939849355587980984336175726610496690362821952983841981484661148305994105884432244401569525706437991368176448938066474733290142200784319391502625310217942174374805156095297011854658891253909972677430606553884262891801622852102570408787071513418632404810870091639478332496237159139681603601655689642017413579913210997498866526044429939682308490963633962078189413287982780450406850158813338804950379870725393381480943040792101203005051771298727842624043200844790383924230496992294151843551100052412963151455874834974708113370692027168062836051009057687710703872455217509761174716039367592445565295178803570339219184745349319516657506766423895810078772375518214880692539238066890673348071015222411355360998293848706507871008842666982109767221996086079582421456277000016839159363728621301006546383840377669003213266499598821163377286171760670783974896877414757012862331334353060540087171884209423904019425051270778230613731168154241533307406702888581208148448405796472302341760820191538834531873561494824133014931386656759635973710547018049019397063213738790865891533968016092882580599125921511296162130731457681735576980389793953486157391320806391733221699370634741349807449630253150366786731822741751885834363526486822444562205223942468225476756670007213734307477899613979585253004718856018778606579355443050853878835962532617017363938048148518174181038991910726647806499121408191143969631063718840295680377358510901991751280701169276627267164699416749505621900364144120965831469741461833271525645633542218288707872849030926430579087410020651007422523530678096081039318868721430156445737984663265661624813827874143132716289309149351690628789544715467686968488747944224930144062856980759782259074572501672595907160292320086825353446028387446481184336679446978883311824054285185272374344014737181226649588766973680448414427326315662024872275821124676472762855890336968746214183421271913571650879621030836885353029742676930798971987604732783988659246958459230189210448529554552340485107571884040405240646599492644016322204470667735379807771535924875398654873306143018905422714673849138168256297427010999841047147226976964828302430869303107327216172138358326871723991392158348581538016070803363252344476354117322283176125665624008171334131088635461119581876206125174398893566781676150079628445463042198058850779170345951359401659147180578545217186058555475297841526273635684205009420697816124953554243656303263301372013957258424638257772936265526185770225660593287133453271800793412239741313401690541631883006517569468793081230578074649375878655494164348337557674352900836173582067125700304109101853872241622843729452158976465193217373951911955054536805550189584701899483190646962731565269549306034470141577052495064778324083296018314617617821029328988488335701570896846181565814335201722000566588354279189815014369147168063721757048443192545407045435507704159617422423921146582274256309759487932881758652758754842930999872334622107514630118154848300462774447333236542775995329581065581126475272127049088281308013070202922078261430183299093169636677417363336687447467237265804925350210971623892666266631851024253270960346765952578443539995017184539690818742033753344691837089839071815459266882186570582744914506390110136239358343033749228596321012338111421222139558497501218006842977828716402149490029840422652569605441761910829351414855391196357419873257248248236599677988640256346817072255412064729720624617406600432548519753466011285953020600987031752279299857003439282110661904818468300771566288019616544610692053457642141927033531682327398145875568260226326294528167380134152490164852331558938865372648454019367145316789308350192190850230729611962141664212866861320360781872249649880515632916191176637412657499458514938771552514893176555458203705496493408101252433513345777170845147168739665673561790901813918294294388363616408157672328211510770044828345777741593687269287797448750085430287856177875367177900334169618036178585225821151983036073413435500263108892882028270785648927966903346806885679423327696478236843206643426454702043894837946330435470999983254009131266956351017029289283242260697482999254087837892815071759059480770396328766646597128055706778141581868387675507164947255080278331548800028437999133249784271575502795195848940479502309013212160752013279588197380939016975848507485972116250674740597315832134772575898647438358959450013093366506520690222485365877920286340964347750180286062450259066140241690675161161954995796273222809605900676662094174875642069895352357753490560313221590071624323562062768058095628691547470592090377742093455377895844327181678651000325826660864945324315122139061945621571980134186925783710804123417284561901096378133327456375090148052654016090683538976752836296147754155476005862638533428229620019483344131187157097980397494279426790896313816143357260950279391816907886448686467327297504205809165923012629243943560690889649675089768917822279931752956040548576910706041314303770030167642892552349016456602722087520808212349051385245982587296017412758400886454342298414348723204701599621054490284808611664894438831874425144294788322553565652084610085193674965881260179187377589015219778853708150843042730567771965946834548554155709430351921754119879179506158794488605543427499668097821900348731602067739261445382739411995392106085455401662223277680146489898757005781446100396546376509857810844187822120829443131854763452400632649287300658856239001636661017296042346234653276566769856300365063710311258174303433721396669151530161286524250957232060810922051492305860365108851179046596624107142398187309843250961317007817871553369282157333613227213255778240115540871203242585930868358552253939697442381228428497443912731281648318167205948488174184296268120999835864846656135265825010658137779489687244577634034453773894231460288338869036101236135511486431635098508907892479650625498710796594920988249545868572670190787871168788545679752228458660251534068880074966814339901329576152224537758131056078198038385070140553904024721886690468365477441011940756234836803890402168874631939575712820378440277884371587594428588609577357060897104720127637714527402133690269176704889143114541496769097346884188739353518252793473669829710202516193886530279349685708406253886370364784552635035084313966154885866285027550412923040464672945540140984594947527086961232028204118538541526168848039350402276657473505431046462515886304158872806176817213224490413304079728176535893287254876211125850497904762091637813856576248502255376442210558286771441152419245191720755917378263019991807090660367216036122159738467131228318585218137956403525488627538040218161184116599913527147935980794621739336901830481823633846581208638795619801034263139930610019622178250059923375709286953745212281258682205669929540856884778301505128192761563117435398317559353980572717891353855411730782910641812834778283922064897192919822315160876669966649608041606580323286259115366660107888518208115104473362299630818201330612860063215654549324548352388183108678304276165021428036804378931298805489413755185568980167469981035396339233256833080743646986507723536098049638582974478640115254745371759793854361701170023801128439352992062878863460137253474931292723709626850306744956420066401937955763080345373820610122820879831855535451240432447922446719643283034348263188256944906254993455285284858503092285701711625066877708975604158962342576655974640138285635442915850999510743773925547349641854376712002297997706096705488300624793774230174692506242374847575714765646219158264864013560540917994649997461592183041568519174913614180654604747190406068393928924026347138288486941936407984034374982402864516328461759487499345080502822179777624877160241536344418762768726201091679650236971966853759787284338700065541287707166679859615720836159492218222361709100549064053312856301339378788394609025321208395630916834490164164601434606089214533255168342457775557097107859363684909242519587363470649494783863980259918011662855845814594243545402836183441362993963714726933880438182154686105837366873838985596972984755435452015578193542502335496649078089587711936448788762392851569052339030307227105175660696456574203889179639630741617490946155014044813256176757397067091800767505976129978901531897426299638617109931168891458556183832059158642001630908270205817516634458930702678058990123160247561951274154390190296926889216892758688225771710022585222973964332143705539089000760438110087833586027184015653931410697664082362864079863836225906134465530565165054040792978869346120003487663962377444485100780818864562850969369276277903875073690671750068892168224218666095016994532544178083488430404475073685946089710868004780796694638707308120360001882441741587821820531010170520095697356258964843078708596158593992966246264542752484065345184442542913948754552345960497679624049648130746821891172432783197979452123991141769660559049180531900076810345751718165162041109292483480885151057645647706264273580330887950116056808134203216315128818624485264712070140273154990714699730765603276756711941012526714897270583662697362836707275538940091600509332688434498886650955519245170674362767996528408104634296541485201513402555456079112831314766176823069599900244631690642549933919432589313166225383939750164706076734523861287224138669101315593702174757790226363205096127453895819173763736362286138422153268919817440141394220880264677242415737197435662815326136818207226140279361708165359892326920695712927770869369226610666120724692521783188067009768907541494861271201849608231711256611526456868549432092592543033499033111667378807390501688966266086934968698188232845166565058904492184029241008821247555536240123765520988928786633200658344534821811615005947087504065677134879212481445013639686566536688699812066698341486753289653629915094683514941812870941048581315446721157293960085511177256601322715759204736977066615024970355841155518657495756852540756967313429724480260244944160636544309296199951848257821951101342925078124455207975514447852987740169295482038582957399905167611558965616369757281159838844970866055752774548312755012119144783582567930367744215030135963618503534580311063826040980221673776607941712435430226983953461557735095974038210961012703879789422629487376910856459491571970482286306049526455832726498412780367939744197352255836825547290146336915585052187380437503721138597401730494839679140079284244381682010524875581309292565035498055095811152389869869329054943885030329201738560218723069705036499063335911850922018904209485531317744123857031915547139916078083852391829644876891934169276058090728987752686011579770668970435843022951329734017323800103949650957145559425565104095997830375938603758728205706947513451198142551991701008003688006140581131284253647567494775671099182498365938826453088703581890252087215070532420272290174700772175577193964628610354923645294526160936936903103584469676829166644999178743066867371603794059726728847263516291191538629149225053097277946122676682161818652405381847464205990839648859981578814457620636843615834582743808628858510669211777185330460191439904389721000194411659811513472223861663373736186065369068871390526475561439318196262427833073158668055257199295077891371677513808337605927831550673407760174464637719796488928932350280722401720385573305590185054557633041689032852454818009999651751831397665290831074485781943753179204294089695705584087825423179378808526760007200342430809496654548982927944246510068592406885340766160602630296573953811949804877048578920734973007910610893026713684491325853316604191094793227374169323697894248366140127441282038239107840914158530063066236387556370656649266156494745704812391249611250832137135166127517218097880427594148412563962043004899231238013220031066451142066797407104513045064678474867834419709074436905811646244957089850866240697149731084080476248676540516514727735776233578689008488581820202577347525752206301400435416482234978478281754215046249463678683220529584123419669976125572186992782790697214104291408429687086468560433798555905465252262037052130275608293311289571483650503123206468305310225270676466180592690923388472075338049900753451048885870740275023005475392349793804616479429015878309248499426171564199829088421580164111818328714085714644259299896125429132601328025292545049578349860302360471791355782046739094458404644048578555939944826985267089768958690071268163841051246328703037563128940268089629466246240114102058387417403809288255199817768167400994564767746990723551968654376785470196316618546862031761131944433141097873608368605695051912578569883430795105642077753105171497555604567599956402811538538456856225626771883226907960651657142145354426821044867334182555979812348684367983872187859013894257809149436770803026943186641883619951603572563591592478846120990118236701601722409201501855740691891733482964633505610357204626603687850958254805105892740994795635730180420301676107915217218533794402798912102082320095210017285253078320476201856377595150569303783605649469514346021681955304315960237025142588669587192678163951968552432235463368726945386027927872213297343671080953698404512928621032919948806385980235672270192776315389376149201771430114245956486105368641201859995970863058395633152503606044724747428997682168749777872315022927803543435482351581241027188287175231924025609753624929770425441303527876659308426715418484367138378436394121724383316206932970621730411939746943407162008690582398788590911945805090402343906919083761976688059554915585181514177663902688128298464206918382349412181220222109190821647307096313667474537611308994567438012902140336506797411294819170809680240084421888995572925449133410978011938418951826934013813893308920981524254662827528572569711545941075294617554532353238255688223610397326650340487756617142181524020916571795897485933998093696933214642558799271236921122523448973142194648223378948760724717782534324876741105554425471820303800671734438534251738221903538666318135569256508633041437619344576637357906453026046005320664762192180425245529815872666890267674445966301814622342861424696415383161065573383077854604603356940000563906260108668340312875525992581010192251942576123180010427137262712020293118546756262303294660831050249034193709584335296951366090683276395783069358943101965382354150583934057122064614721931041627319059579513389911226189025288249389081930372234813117120734185723648859682398601381441746494960409834520668273475421407135668449416182629066897592291255813803934652629021025987810799014427219400453374206503262101819009246672314072170933756874584874388333539351893178321368412746229182270525933531324942058589882137686791495187828513770130494747301661945507105312170919391988123466843887371560776460239856568570859563157821845698166707928214974104561307670853262115978092880445006111144609438706535827527716525234073017748178006551397354225578283988601245062839366547743668364558340115466654907167746303209837138715282879569246441688036496212853361892240910085670099271371081089122734652041987902940634387100924182618886446820885049338965974059223217928388519199639635780394432493435065318614032093961857428075965047657248187311408708440791324995805266509423184767784859234536933062627768561174181677474883314636923190722086498687901909480483760793163646698780032053825109330495712974060905487833922621615842707225761799228018710433048984032731723321191397709777211836182604537287395530212967808872149458964601979092930387353436568583797748014734244532637559969366269921161708600753607989318909940307098417134902026365848391355030125992356290944491052474326720305684883288974048600290040166541909654675017691682505096246136221287274432561023712609423340105398408418868587829100430074847083475178582851315177231645056728688466194449078007105549821813291958395172029568608551184372190848436288040862934956707339394698654519896370759941097277079720213151540323008976974479965218793323690029334760705819705130972316596208342133117816599840772031610691791244231669534959463422184978456203655647554045922205609294230762881073740237323430977533203936722586032701954549101332318803950013010487978954334903939317357033994232289641134981090644298953015104013935778822786721990359552673519248849495681765446860584272861161773549905777606820442915355172408025331965292780364924194231529472961730386303772089318963803446588544404224523222475569078223856178150290758085556707868253035527507397323082978164972609587996338213306481812363674852789662434417376965881691120546750936769177004349223573171831988148413359759725020742869488290295424620686286277533214290011661764728200468825483286871295025288888539926926559890832834795314909227409241156024267618470821735997889820840667602092389890385044908359063351787075497534494183734522428417613257012242642856220154142795728792302967292087869577077354152492685134950643358887768855519891824013195807203791354292096359006006255014622732585142039308192053587773896979159032076278526858664822462023434097239821628121172313576018186424963320809866174106768061847853941421692982389599389095053302297439139153080856490075007366620556367264557063781720418936591217730332510770430359895742641247702689305572050148393879985463315604036659479431876453906707089056527092163909274268388901854440528187089865684816924583885109311483456256081691672280581677410198230225440471157584879267687480109563526698497093236377142607328428901505267836695808382445328463244217134344509374495561455777460880499949068258168740348999510368291950530988274023271995553348968634076485464483978079779520598195379677702581215638817919797537049932147566008603615177435970923396346316832316579022298251598074384553249358872733974287428817910457234543676409886078210094828693331060699277243949896049677882706732553726548591739408315510247476662189811163592528970117727824848534877791417621353082732967314887987043539925704509099515434416259037385814818211672312578831428382465325458917047378294269995405545182372449668607519345628639377466397300376051666395714262912385666824678026403399356756864624053533207642029400626791633239170565544246077346135874101706642904005884397663977840766039112438435778352347925698336795146925971370698985324516373835931199450155496904362691906868147063072557770705853622165251076193538627856441567082276436699274245617645462678844776356428083502036406239537622784141268878784112822993440603012416559255597646506280879836082695088833240285972293236945375861433792494700534988354687373194064777254080362008041213322151676666913134969586570554194214125805488332545093545311779853302562148132037123467796665864241512992827909907986532199965023480092691429859164123198034634042898111436641869550240503408670082060460900564259147220282160343993262840020539587532198122780018523589182712727416793761825900693522352880868840846849492889133875965053539270762169500857079512423617485831878860023088017822861426327458377030979591696716340795201980202724192695939918823975948845888460438563819548722746741686198858676674271842016566231755435480349455146496078971676158589727262283251858740108688740769784674068911985771042703067934612889400888345930960344484429876031537951307465783918755210064991620655609565798691183725321055171778052340145360378705256943441751412426708749376538166958414583666221401391882692680169130667112631352584567027671901649851208993066744705365970256651968451950076747359689150329182704332171444564638206767059154340360941540966506240185040175453777815850647521922792995783376678377267280238639704379927680451920355355943018156199553694208801414776855716067874080091556127652851023876338239803993172390411069354589544917323723881321909790322802415691202908381272056726329504905403075009280255936906462790636734014500361473506563223589739766780263683672916050809559926974142763055431181241821780017850349307226351334995383203942299112702040911236954645784385506940829185037462934416452458780312198523415763597300010087176935226418486990639158810805846278805962300724664254768189977403058165957077274247943813070967911627302525209907506189838312095781899428404591370370575034283526023516198450730202976786947229176871781710502371563385245812970997851971477866269907774539741950952727017103037424268647167640073638647607034862762899359837727422185931992538723560475900978315024661526022570450926703546007258023914363714995983879465593527786389350667614824967457330740707639509802221569433325330810164345910024031744849660760800958706468283517880652760631089848476360823634109157264536804048965166953943792190162566922186419609940168878675250636027013679911180342172199923308354819201281549517863074751192445747134920054772504754796886774480911545072370698847858755694316769088089664942552109053590416045417549547150613851025178403440259220852248004745233161758939115113504001094501340372167333752712940112378307052208259912820880088223355246378015062866075257220418134059366281357030953350258573868785289392485768255509985877768760539408824807902371560251234149161771430222507686984997479153823673582528595096436351076582390329329844332761534704460622534845014962117257662945761112089572391613839030119188192499639087787341297761585207570374884549448077657856681800400643253986929060839850055767120667437625009323403414191139695263558966862838246232368203757740810813098623824892040447752327794765286624882857403637187482582566180898855048905673823211840945127491761148235688376510418925889031316075736491620301714384644683519158907042786288627813564024012149893910117354135739474903470041621664718539190698352573723708386539185508985450661878559643242241915853702133128428663602253056801021423023673336791744107753072374048746747103552435014921025449905999371325825834383459323767660758190605003296233266326871704573180363810328975979191648855177071916250897427134003596488221943630451512577629618706401063172163607746793530158068362044109556421339555648411235006628804636312066106721664369381716890473203468980676908236309986990938367122002759761506163834454661471627383149258467470580524449599837334163770861785787949577688353314625307743702907194954959621644718775729576192754111223836355223103651952030880776880713325102402526788833244406045956803640800159957475653448941427475143585394256241385973898982778679962515568129421320306833971988032795001316397595381802332227815330583833842204421108849714148340363046745395765462597586052775565197668011863655682071918369014045135463579969533367589728539208966721776937601099527085914663438874737696183484206108364801551815214927188676509187246081468874878188338443854673931678344802109905775440837346207064071796007073483882038800280748575386323472017725659855730191051199628557871644249999600966198153771305388819768487799813782172872224672086598427883237505540973461782203901558419617366987157524830301886937233375135032790162378077592933093045246801309938906569350084234242615437334602489883597488085176598479630330122855217107282150044607971923533938106444721243822541098336158532559836939444291680972701474967464107290359192676358115933377205649175947967443442889577836930671769409361858690548355295615436128878312208864710183113567667064306723264653379791958705403792757753409364104161004403098751942504644239931121368172147379239199449776694488441805766020044727165052242950821548861728164031325829170254772424344208922598481895036882817293041703051432533737939886561153250587518318148703317280514626717544256352369050295378335472023535958761855822280073791759898379327798935690871641333273970869590373852333771840969020583662858758573350040753286149041035682607175214220112971779319163744203623050925664489071809097816371787008307693902397382428917012896280310213205923278251759221647551099285489201132285352924985134032661089094745225045773744306143311288697270352814599056411700992604245508766428315039835101896525742861854484895054512213991704060777575271389637196454938323302056878627993007890111706053229954882972281313599598502633764073272127077443576126316508109379498667118171044017695501377704274500258690528761067965662731684396649369787592231101814935393341811066739962022155756251397557383963877755235695562162290220880097451612883867543610790827414291358963745664448957649572232369418690474902227544363875184642554902567775190558432073048903577394933148935349194242239498176216463252492885313641168421421960505122415648560270691169347309813838247803154079596201727713480116979339322599177209648069124489980311183176373190317469885963289797272369405097843505859506864365533593104515938586723993321909918775559167801668093405170897571216863070963472455281307193099994178708654675958135899622520726488561782855113931595697219279260811720932963874561890754288227662457384611241305958926682521546112487996315477849894569117543493191985680862056704685622831962712409184429801871925548364338089498686425174572459646450720990974903649326458164492812026935816996402922224114232207439619172228321973789320706937713748831209324135645489342094450704553677999534190550242321458113299889890844007196637514035209675470409938042872003003345361378000609794642209957527369020794620000149087033446117842779895964084381526093215198677919526511192938912843747415805663869643390046888746170056891857584486603013573304531920156798888475618580974032766026652296686491258339803364945361454059533238601656504795084318712601971532692813190285008352590095658200133358029382535856127096850533357425246249887076514519958560224522126149584742392496080268350317733910627494241973375529905462403823135677127075740725758939508598547838919434171066106226833753016345346280879055637872950497548238071133445925203704122792384377834302809814796558513514201101836587550343137174409019435947780604516300288078301119548295173529584709566844966909660331752635363433790971711084439421186125217481218105524252061559790880312715441286438858663470737284864537648137424348275882663448477406192749452497315326243230854771181938240600053086646761184325660016856704952205579954228167796413833462420685963227441356197442372673959956707227822674159309551159002329019030241406255205716120901240325891558540069646966987684785633307789189546695045535019257501282928084795657523587914810928534690363857856881160652464851997388321610960114562828679801953771614099037391891080096754827475301834942569240353116875093140713405103034177442459145773073485865552093718172190427269812332555417660499451212761130529021189718827101236146444333558539268931986095202632857070683430688858531893557284607997183171197088237872095134639026495783799224092825935892587943426020840893597279178511495942700380053838097100407154343494323580989392206747310436623739514533503715174341574588236442359969814205588953027747055555924554775798462480050668108970889937974433385966051863312086392905126927749414079526537961436662061963369594895344888127751040060804485696213447540228634621972526605433112396679172964838648717257990663710212120159232018634810068710081103581839836005038495504830633482533618664667394165805045294989998799384888184035440796088903160050819579467910255997783591660828257788439536069886461110907612186354467568994802872322887973921196515002383994710674424972469466914833487176826912343877354516182426247873443456861217101831250247194709544224389743535656764274905917332950686375246703960518553109162241006333817037607050810549671213550397393190362188484605809628915421057627207223901004127605599510808366471001186938815957648155214241712480725821657947024808916311518616676206230930609835920324227938349300076743884737888565167192913168836528176180632773563793296864475120055493708662390397308447657557837617540738358373894445793400858296468740943698296746310434974208419236851732405429927516253827424593138157850735213125051659996040755496002336781618673961474146866004619880914280330256154869223457519405928547381598233274120888145142581245771672416118393712455138566806102687026091273759136903228664481750054944840792019870748048108094735288218044179689586118520610349414271702637089846263358358498896720382279437060632044257870500126941507088861321775429237291497986889806597566109344593201426113360502115444051424477764873343687323438306801076332518843386331585593218392632581999125720219440028651624054345808526273865159889030104207338173829784086186833229680583636426329821373539583282603896733250396776247777809185262919775715368104310681431886472009124416118855860155394260282723637095349651629477887318229857179500716563183372190436094153650002788836646465965056567550927245113079606878303165492604003217375739614813757249756695142059930085723162611623270918073317644506032420781089971004163065303862939067315282786189447936985270358085324321389545786557767942830203788510692983593830432929367665715444794689432916380840915708386771409546679104075530963796804446154476859972605077537413703144433119423819163584897736187340726942158602829272048669349929142810125425899709320397320416095584362583605994264189127372062244577173927348132866912316152464625997890272863100425292876695512884979517324291516840657437365520623143406491881456753537702972322234933562729048654361954084013730903607376172889238686158842800108203524511774717521425964464165661763117812458876097777520856796654105906297881801092730886519395330976817457204909853950667529131744006184482396790554895895239753909672545422898080937740431562121243781034766393214538300837808294013561395427549295489356837539508943749367094847059081726001198360070840243331000760347171920386781587643419322174891014207441568826862579991207460545907942314157070459880032023809010092498867533592504672615042155373688502514001627618845422479755668289898136013463286649577716144777157049767634023457374225703008706295009011857159423321347963246887260698926957987922050168313820382683605035658601560165852450262642382169610512840305115711226654614133035177259340691163137918167574980609148548685983034554690630737539808655056589967895427409816680885676863308665868094570307674538023424965159733404681647174564238846016490743873321224937903319519123040912000180604616916252466846353084362922450770721877494169306696966526550032824541891232442035837050977642092435817381550860964295689300425497747032077379344585500537074108466303551832643809895876056965200796067382919915069545141077032330691040645196474930054121545885268234745636574669778152618519023162250536077012819803006604097125645586751999481306213676174270618076219312256028719458315406979550859909579286948666954157899863043428304995137594584884373177971221862989906784524938383497873848375431545849645409191811143912780075432359765864784892620872795316671238038085889231992217173576115729814146327407417031440110756671633692471261092797713340700777700972633544714104981495554581499710010694136244608522632177240187146150021901937930938063516674946468547933561832290383481383391843906140822151024954739313327281195642053200237591513171859451154070432439451086271323035936845980871201100754343275002797206414418863750556295262491304378469726753480634411112398564880453334582098753568675868699643767207206930177990100915252891415341796266957638128826763999086657703106339027482211138160226206209966921234711992912618630095742949957655109976846926732986306457376443769597660555831547693661422793211884492220446994176604851805168612068950801367689260708171379649961198866560885938407918465752405084902071561187266057357757396299475807180508361617575034504548657460783199711247036591193233515464990912516060853277019207164422357626169674909017303771017044288129365863371794939911799519413960892696618147597949604382504847725240937900846314785128924862236914344419917134361937736142777247650393644708822472288060101134400340940355388806889465003559203295655051289979430970263964268957287690322358576704398755326074771594818752647325872661866055820074857323171007395248435731397044338948879562732716560535883636766953135502232728865655203885483659339315087519721367500234875232864446552121843097233860490629838967328766643017949703393402478927730789507096537289798090525844705521792310726073392579741600348195121459892915054833676847789354012171665597115606909639213042605296759004235137294458575480236369121489432439841802528242556565707194537478400320290656696536080651294543996325094768486333024385616155418639250600819036616073530956627852098689513935465558550485767875981925314495769613452534159291517162587462466944652491451023270054530111729513871326815959878136427261008602889345303614702130657378545788165911558820988786100321639043769693871354769846197440849619292236691829550947528407440513749918735809226076078156320052063413081226792769829967064885609309546612047898253241385144994266253912398991176449827391008410492362354783216797907286841927389048949927194354138165711409839981315855457004394894085549725422666570035691265819578055863211221921760497587219578204133805558807809667440404379479809067028695461306966996192780713388529763360978376936931128573382625210570437139738481487720803613619691612368357026353697956851530177635164101232316239505561591113217139863401956827473563237023123615182505139568402031527270985695546244839450078008268048861943586513769911260432651340869391271163545644115839697240382492760902498551204275771212435738662789156369311993180189167776086224463779974926118596253754816835901948725864837494995916826528555803347807220246901369426879476990778976177707878081388810623072498245732960824026571027381651080700600239861075492193266218847830178095011379801436670654357606227477730343933172836715043278312354978736060203529765400982300464871475401243354124967646150397505517757229146064624495758096394044357725492893464758957560843105563718369981718454302640434221589220027984383025880638116919749524932519338331339702273536885030913709208089287192055859801792772214009164963266261602691861477856255160483041162828342981986572268857725069610029869171110377283943229877422614511191918578838212978515325219758902785930980010356249273458320345102714484567970453290978947909997164944239172784103923359246762984643891967360280242845379776842086837035623019777443902136531713107990612254856133153966892717429660892474266626612008154590072592647277570454873769955572852732244179656739545208282557918380377911239842242616601381867093944420094935061654141752904519799262469274893812004590419791449291813813868343868119841426402216195276429966818983563330014736544758274525119247527501726391806101168886950693392284161956002424787355127881871818686704696416593384943557073870332633304571383264085074828221941873709251263384059744123636259428411539074108875393842299731215160705398187797898136144997570433606881121730760821841193454400765573259284458716036340058448908099749399513562464851131623825806668354890480523241346400037250262634180713684573967282033181575380791881858475232040315008890586012860795967823197030476531265898257606632997355382681654311982618949318490587108480432564701886787568318681654704504664830393775468222605310154091486411696770673813260308889438603983856487955356256254963146815336551252558693406920054536430731936086570583051322425055546974720573615814495474168623383007680994515702407166237010420008425529660452711390058755600568974582324448208505688915642144871607939979439091803178596420865793381727052791329799716930948517997735863439723871228790541919091808820428363776344830332702311116497911053994467741717632845291531494394070480980289508051398568453018663297370570730833856719400423120486540134714565262042552299284873082944419355309122651735051798108715340576394198658788551813434355040243957364000049242121555681242971016208737868376403393240016177002268212836300344933646507865081534160238882058199205653554141880495148939329503801036586368319055261991161942800436325655331670959543994428772107953016020329966439341144090708098123861581774334008053622128822801808736897345819946439876902530770771230536486841786742150965504406502881434700484428246507436528155878918600854997840690530343847309333835980469869823935254843266144367757526245797121873236943225148405526166684330752093819833366071767157221816304953786831747757794932245158000025965536756071295807762795456482489744204554432475016137548730140513779408931124919769661091562831865693590322905829229044094834379266818324940399988516253628730596125400180380553619751327389946222212819827746382846280228979700216099107775221055332777094256266653957664412404369720898679236218459342726252669510403646956853105872774979474424502902852511407198918794231636097691520637215691705677138068012891406240737527735289619822183074142191985714461120322847108146895414128008147810512669779815787808032043526250903273567824237690506797523603295521227377449600153811016749330669714544969220984658627779108934209432825642633688650229445019940429954569032747551267301743884132358400613184514534261342090023517985672905687021019613187027193186579468845150591898192639522773539074385861178484017462374169589732138482113356045510709761926777176516918529923002920808146632966108780222491804786041478047031561121699215429504401296192707713090571901410367458996264249287431780750078798664172542982880797015389474908478397904061471163668586195657181405974025348247222835014291581373077437872495370572902890782254074600267620536833289483602818595418340681420948887745704181871653791429284712738241920496611872128572035378273374043379089317422145973919848328969743762236294111692689412934900661252053458241850939400114275307279587390122672315438726364175376131379336467962086136634710807144653134528624771553187291986460919800301600011603508543209314419703224694807398857677541898611671021108321049053683472550940838582923563784692497069993461324493203230663414401389706254893789144676165799223520066118685708907371218049413518892974440508441432947538317618749875966603357891387991728776757942416095310571232057751788965664520455459714815121899040522040091818096769734087935788805686971182737945184048468023813178868806787268336934091597931171838162014139971668725041576588520821505633600902324912123038416321230247380299339135416166419280215982365502648240071604506984511848944235265667521153986264741749877133779227847608389164707917431063892479587796296708317812344941848985251332856913872973869081403025118114385564614084874715015062669459296620790634167951436347916588672617816924230921996223985670653301458553829253746916646060163866894098723789750036818846091731215491483565051636286388224610103500353587009987099032555324369655289724082444798473654673858400977686914635169942359441803232361697809250863019237049743405728017813805424070895898334460673880352326188522208802289510514548119428382609878319449733301969639911134584024142570543441637536414977520824674036596384865999099207605964908238073846986699915641518734950080887399299503700882139965421931538930302091884075544433662555107876885121812851386769195282609647638246705185993370912806181859590269137777280289856370269607658072694211860299845718367229366197031351586647795264571863623607234380472304335026542166231856667213610029015609044274818790232677544625838674651352401604838820795029812799512531995326104524698185212439185626819115144601619502499971558490249662063407265434183999846913935423392633961825352317985899343586929002533759599796648598462745432458643068044195502486801675826961017312305291065261919668503766729345908486577032333525885527945982154880655578712636244587302204312753177779955739166479689975770942760351826900655480092987518604187659916021052546594149735733922407093737284072075356169786356571703328787759617110977102636539783731978420376743932876015111794739511258042744801069637748347737951391924181472249419169440094355635184679917468941042883225978561259747434924726471176999838887317227020705466580188138904812419560901114860199927815009808646806238326738756790662591857334021392808260340071111028368118330779426721851166181040966684788092973560648738859144701982903515826526927703109843876475786369025476952044563443939268928194070773260778082992831148827114001102380364805645187707763052836188295967509507031038362410072842680253139926479274171547944433744620599369937414431854343531366914301703346324462873554083578223338765009816239456408795641953784971819864594482501947002538865980137868022269251419858498978730786346733468700809144012056646119319365049916799536218785250738928186374693714031390739931898693443087907644546032265865916741847881157122616226239269870167482847142423289286954939588197369242962241183027349068199342867853676199209480423634370869687511523925616503024900946032934740842283046903578961836921980227417812291253625741526939415432732809185250728374926945243837541989496455729629358242833212289484554575897973914888154683574739340098408184274438197932615793911101237664204391556968387174210858060681258216891541282578257956809905730764769892504163567307503302797889065083792305054586812047329985344308664642438173569922667195898861354782625474996078762331468741171426958366883826954593546677619973188383215553480806873366837881407010303190758420081182280108088135796289226172138896314614118434603396508056739837111083485464606749906234957127687749074017714341785644848861013537631825726434728857845911313368941924886025145028518479898481372047915624125336598786731944518318812186407410008609545589123525750873805647140908755256587009136478951219942085729315408441691083253956109846580297092377583683535339313532413330705313069551108667627934688002707273900395392137407366710637393958544901568486851190254486014907791841556347285425947558978811744941710155445680978513796750703257879824073245978985890074600472721616949997066949759283240850970331517835585223877915422840373160229998094382432070567904672586819502175782136411287220961967901509160630198372292751877483038352606227877900788139453123222721922435115298526405237717595328973725103552012358595055821940620685722600497869171425046105417998502052568051117252000135673124131155652539150830691753760463666824462835526753869989693163604363806849732523010798686507769443067782417151817420940752569277915664668633858357319062691655060004852671568313314541619639525936033779997135755640458166081114183084162535999475412348420812640260052363415670896371728341900764364793788603675370375415540290856221844603885038945083251949834474870359475937165261983492633052831212592819135288951845090840837328519760045715765745165877379622958364499741539614239175736862727393834366460143236751029960940488072458664924238582554023721123810149579925787759416634431850349391398277579484940139878380683087432067519893940941649672177296289027651109681252827910321323694747261099004899894655768108674193118720129459839844277862005672304853768429562609792617484085499345797897298909962307498856317880455247412323792028584789295956262824937066532971785092598920760919610416038167996447337644200631510570030103897301165863346263681774749722517245192238443154828821989208954734832706051687190885470772520844464087259553505354471578460923790238021776476427614245317571806244031563678762335735855937099286147453769843187239535528868127087984554879043756652805142879874788364988183094422984287799042533235460575327061775921066231597023840937692382061837500611428839658682212971997228699378734854835593669767021213257388136444761834668728844708516329648833665714429474388079249485659945606212805455607662757455649363569799971750141886656242044520841494553409293524556742228841281164807670189103630355073246429564300113662416127244384853501437475399360100034504755857359293537442408168989851040017443778771919383186711553038228876404891449629396766249943976142593342104126255508493307385298453794789075139187211568737334044527891380148386189862140355448464451322102649695848539043202117936711916799904715091362775329177123957900630651891147450264346925107467866748257084840952891453344985635514222057617748403170464442989670012796346734582901112042687826403542200936931614674385182841262928275082670910970717992084129815921041492077091675713757465466053525830507985632718222460496913055057942085606764532536222714637729275337322754841776793705788756354727951680018703312731037218241206655284539782176935770756946360839565380740991395894825550476139755902101520079044394176416219361321153855994835223022918394970833963628091519737795704335579526140734903060741479938114162808700988864846688790755622288439887512367066496202660844180478853257998360124302975403871961679098544225772573383810159721385499635890243878970362884690280370007659529029757189899843431472200470332283201188607987504857555497815231621007791227294976582760846049782693095575357947944143954507837144191724417630550622953042777591929867930383950351631957952379313879583348896116574986668343723618285837478988370093251360680279578230894418487067256130371914960215356235779851250947375439729448113405749121393145840496780195504162931477820909389453611484870613767973969766098992556335014632595371649117318878416227047726267994797540989271553179917172171511186599956377726552542557382991576920944036783534973039182665811584564230006887110101319473767205901135797406382895860127209823034342912137497729822628089092890514801520906312846503880695519271865476629500130086417384686365652653401854206296238693264452683591438364823562396096774940696453667681644130334770784186021077060196277700852282748599689491629427425647583997487407739309545524907803735429821828693953889515400764880064248308299068600344613374282624204072126474436408405565110237422052633099437001559905393800052680142297245739109941455597346581428946320228606247604308538258070265589098965564633613423670925721611580970693899423997718735918551176469932783703092887733585714752839075837122600258590539847614445760863154459982048734942128468824569046660113855627351618987010827014745393573141933715790369098670726806214180026553263301215030230437754018720607484997070853785603732755156241578091402072630055701130657130871766112624645362355774967084865399200805338652654550508629241343615934305274240940797217153992792260548120462566586170236642025454187004031534243754409486219882409034238668505435745635647814599942477311275870930486336805906155616984271722081279121273756836421523923035240780029656578052533324999218028400063533475866715400938926945702382779666509791703433215065138451429063625187526460799506951322891180439736691904707363110408467745448392036809381482041665038532975223275278861415577669968443918418493476427990040519745490820166361390276139997820459870405882159098689098894166387288931614383986393242344653609821685078812130128061358555171616811184187525512510554533635783723501265697700386916980534231692624403565532347218527440953456013975916296949252281383689554198159850958434313751277268549728283191687436058553505421568553599052451912150694791189669342618151516418216632297638588851607348413384855429753308803946091144581827016118012992131875100752264285931709345935415162797547384083792960366005267725369340063022006093332304405167958575723059906353351372100582438913823950093486332353249073645247504401865958779254438116805850072624933395468387001634923699496570215900890553361307638595341120819212307938375597102904009368694846383710917119968042549923454618267746122547885128785127019897303166815604022436401729749739018539952596341349821490976412811678595149566461151083139835576119827249562039073576667851534691971094832038571007563827430346088158450600336268440856104228141869143078522070491456853963721391639163744994509151907084993224767955896659032212409442444348511002808941652170502919562714864146262108399929718619296340759069004218115463879453645048076862492890776173614917102094556214880752906462982955323160519502338080162533889778159142842200194652284091818285955975101299427862384108500230373234310299050374146792676956974133883875436366331804993318387527146856863289822859493726981354279865769283248079486686032497351513755470642296099275642860346005621923623686291348590492018166435314026712650925013257168135380445994974399495641789900378297962473548628564588822281806549525379464373761334945325968990625238996402496296216626399623844420740995977250272856200796677046774712004037760233163422276454686530149376278078094650823954181832521323523666546011555803908942392900780179133579142839672408665264377568599514224905658081573244373615246857013299132463460869864118673109254859300214619209027564555350592646054685957705004856919358723037880937962419229914992146757237717282069672392907375314855309924758597500689780860784311002093872500610894756270148813054615829891700345035281279480845318988264126551911333538059146798306096133218602364750919138429539030157518011234668993924683519292909179567874273002895582108663383434570416385111587358525529484125861327705151262464856516448577165534738477773088892888034879569931244909481465702194182856726744541898597329469402695083728308897563938721153093450066444054489581944042617148273784658038074317617517943588430193667916749484953117481897282106440336892823747548967810802820489347859388886023276159511083126066686574685914398165235378982062368097159308204079478982695414208795187419918655609649806899279396459320438475798620112743709159550587171774265560125211642090585076497939044231746593733866063347340814605869451245332194124472511208007832544309429127789921365037839421612186793102341064918921564877625450584226872558820396036426464796830732466316177662961503949277465909873682574039848811207809935053495484550548474425655377215706304769118986809774451197042762972709804305883677143433440017228304922102833259715176695402485699765333828434564352780825066676809960502299398290000368502700839228410659938908909228176799525071981039574986125558526828248255230703890495590356665688842897970371443781859633268793924382595825124403758046633945071299030198289693156733647223024322395295243327701050281942640369800143723814956873579510221055334566764076017188151766416792259855058331870210039287721798612231230667697157917394874015083171396343066034300101303901376563419165344595856786705303830173888869118077529371714186467936116002852969151696911721289726463379165344778040452870028616723724394411184778732590222426141122620723726897007082744055783136884933507519739367848023117326231215649337510081859916216709163574918136723734024734659217600555110090823371505367387681233067687834058094522203968364047749928853918809643670021291441207968603952726736437786884770871165470241165839261642130292154386746046505969076136123753013676781900582043886078539549408902383242134444460862301057775624446263815204517436010433723774625314836191204930211555423828976426418076441343855185235738000273759654916759601517638684389973946861626961727463971842237804903407880874512432678620405794848556358829346807166923792918896994571382541861931277166478046820104496376014692262948373282976568094134768368088521998038787986286125772795869521480797159752036533966286701902385539823339938409411424339003059686844720181206679424238483106785213876735821680468841977080502366832487700382933542438248372484258858274025626589319927782789588424111913517769598608984920710473344997231602668382111811702872862589384116082131111377254980103208004197159094108193657415295109424240938735021143374847367541199644847759607551554310515812768510732221771251955018213204040970854804439774761203630540949598426814501100500642441040152937278296804621836437234887431540156180557766070408515326793133951769965664315160981461600963629178112988099666712473363138270092582794974960764136002067290059620253110210572267346884805224197007621934219598413989037713667141485056683948499726199806972454670897625502980707604014539272768046781911639986697502125249718294201032162095374470088603860701736581052881490569953171616129067188295650835616582022987424858284406142514679881412716116622355259960313280028310418251283613316311383719674487387732090068957985460806641195732133522324242554843233657158518968673976522101294510994236110679501605852593637307626813284697257202389590077801802169340675248129179804695096315593433200394358561511443800386397288392436392818058510381226240222429378668156133197833903362139927339656160168604793608218921375943625555270896208755745543849908541596279705743945663146781210059557573840821249998732245331371673281790078610362222073952520482102776958239359754586506654492582945012632974636925935826474764121769261987107367244577837429592529738214210293508223813462839963066854884083407991732355009660509492865049475789138431623223111466764969514713855249095849745321026617246151126330720682260418446017947961126751711246231186524788572316232160523814714779919197023612370131239181300000137130370842316771650692406489351509715344545067513961563239965298505386723054431718664872504038958948525118567755807088126633648183371615023329549338824005568661147896644938296184416628723979140030091405610278218389935222988717056489518093848444416689730850207036528477196684820026185003412653292933696844136405852805879606131166188372670564276161075964179893012265896085626145761117611724484633143356639277399584358399275018824996694142532035611025900608084447543572897070440733956282539697259078864345985184349899459986710048076800531710716083986838896815438921073772163044439405535635924114427398669201092807684082866315703512285332985377125348346075749419786913574666996594577932353536053935246755339112525448849749747474483824479689190939893238176758942268410691479539594256677209709347568847183201277973053790219364220623882318829813531510799863768966217947371239247532636165878069029531534255462199527247012015208286795784268965630594186676312457595106849216594288297856791929529997181774418982900026774209379322170402279980373973400127333405535816118744409933204769388244302646349866271830226150344366436010081450300010007979398601814188456510184177334090896145306877786887903088208127201322032517570622622856907331929137714365080026982743936341609365583200657931366054155363910998339350550581633693734542267832668298454993489642557098098251609267750196376266604489984188814919452172619172823461924210881065340967549875908475372777270424696086846260304418853650338888418853413649380544035834770992333210440710777256656065022217084226912796534188911050600431747919229941541124384374533358616298616779930921185514997459462421067748479970823521089474363955328674354750631762011416862027489603607650465135565866803129096288700159533464465473727411295598477318966760023480216640439632946190847248509075827620461261756847851585441397672364239680738143631707605715365033933051492471115692908451458698477260553718149494370942145972890870370122926671041766001407954278447181581149691831058432775390503286275574749576277183299571089241546311877421829663689781847737152757629687156066059178697206643357276148715735995041647051725874346554624828346470480602658882072107758479007727273405926560721500581650329403206639171193876048366501318474249549364692011972318515534802772287165759164852317315726448353237457117429857078346494771738594212024751251136997026286369987323312594239311094563670782822473555916495394724726237069528781397115183122940810431048256133116008540213309212750924108718177249762250686377262661088215614215229807520204320474352804108407149912155350369375222198877626492740012149038763571475614156790343007869175642317352027381467230044978060370617129221519013727508017576609664895250656388001471769813329584822463512594137331519188726388701210260371883933790997223496494774282828841738201980152643753682656737328654577061537547648834390344854790956532342197082553612055973282804556562345892872021783576580112043862753798000069575704832192787407638894272253902377548025419793373675294589728815113047425511528783022287510158474857556134553539438986669745301149887562714113149563631782852026951309365601135432617705342655798294630808195780230825861037212991260535588485054875754678193564616511416627833805644368546851835829496944061611315560691193760706125091916294821522147338017448309098029112559848825630158942885253851476045233869905949510233517937848780350950037306998119896656143767681507053516105783866461843947791738510420402608090393402860131987296491490115365815224670020017307001865640622127143130907664390701429542641672107513357034622783765511729262847125211444853230965751981192229018255464849793481478588001854575792713765303068371982683082726652529390278838231621106394103616161201940520222676735881388635313789150842923514393316086471524443896408848096386422301803756187554625465574798992938393499489187248547207318814371368860762907897879044120047573007989202017431812613352449969169673546058657552114996118665256120299288181820042745558528544966883654317736932811173934732720641901396487743030875209817785319015903381064136152872251327811337456630030454623384663253575794135773055096355606353596330142875414331379258256239244919195026168996629340669956884063171938554995681526100851121564790455422455195403307363700926736365772239862749746209721852197112567360788757850140892386905975906737826817875612859215364742526136661141164597856692259099448656023744022634182999345206035464935700750282696876300157463634602045655623074955807700748450126187140378349390997473785581606509817800831601369667511182987474261429768970516908111735346327266012632731013565294147017282474389840477561208077601011215777079084768442098961695157746918754437772309249372544107547823693879435494270989689449966197411232000923272356571556001873013323149652741568873849939733845892645083155195682136188885562044454181452014234995937040897058176965338617429031285796964461833849631102545205078534889348493834531001076563933019340071259331599358886839730521130627930140932408033172019609060756765312047521874396844327106713961609320740402212486164428836821523848365694282422053892672861109641495395023731862636214644571836724754082979996561600000888179068809158297445732796599685160789963073277471719485488773901508250718748618630616806704146120303573628585056611613256432205792273304179537274652105164369048986852620320224379773954219510022075486250995663617998047656822122529515106470433949610280213559578584340659425589182281275197403112657088520946423232012541690382408794476691657525524665950646212972914678329219433253894993571274372135629431439018842043291116369711712497670674825013717493189944583235223562273557851244957546210915258261945841013928488364228232306305982096722706481232603273412197985587586179144242845568984134627016520949307169140926623715780221912476830210001662393946870156254604526314863692122030782684810328772607955622131183937941494228052761778468881768559922124816003470285002364533546344133646945507921332158212022805446135797170745742705127927874798050770540023971166984582156681205266701751834813769006381907144959654940181212742395581567217329204198358162398488446778459420286033931598488861653525043964099392323247575385498312034470056984010019069974600640766252124119936573269270887668171313300412088381267802074260146211920123020045388899477406675976759393621479434337209381698756167073497447960619032190164285051953701378475695463003322403495920500375753974820452068573837665066271247171396170209798923829443464243954952806531407014611150995791321664716095656744210145679257037777040138558459821859105580128106581068577386898597261333128743725973994590692195359641893007983122553607883000959397834059345762784948885864737343678552533797027105468675751156131276989651045492354337577284050386283814437078130784540683298712540469574446023105134079776441778412604866297089130823508507464045880597998409025093148822826603154394510487639663083867047311339008996730590114019936123353921908398558350162352118464797485235521835688872534529660655857531031799126858580031536625384889549937389074782236109517221941054718117098451420530367927554314437660165104539129051513290870904753140763499436907250955257041790563717081448315622630411513062798424411622507522591491578192283272804873426853836372338413918816644883991154196508316412232445329293024287165664898791180039032600411153289550750082358752670410861691264257852526982804132324035819108632678721211960024163224490615008434005147047582394115870269480538292775004597101507395701511964090807597408355710011036503806428401043763705542043142559353834482596928492725814090821835040632410199105097551012602407613721568976241920728472141501277006940701634356625289720184194036324261110011738053433116564468587752337365794187664992982089232061832758667044833216002717864139912707227955169376918724213814812315180502123827813205852452586183064881883245791275217519187532397960287884984665001533120592236446397906620681209198244606960760387459411834646032856247440263027758952906358847168319929142219317434736104967069498209310062636526945723480153863624258663972639128856326826655823201215882089293650858706043346306509807555973469852755627793954345817843723747480566847604848717512470977332381471171078375480236128020924908514379665859592534946452804195660764611828686941459954658453209691272822373419437941719385113390644004239624426965088290444243201421424716544653165422138821508635604793569310434338672530897486036047729591981679604865065951524046813485383670028311026105358286793459915767209699455379759799291814158542911370853083900567520000666944177884349821342947208221861004531219618228391933335099318519762664217770955831962467404751801308384878098170189668907683642804282503800614507598508196258498397103127525670301862172710136036171096796500955592604404311813919417218976981834666031187107980667000763563524994358294020949871154831408800385424454921594995825010463304031610805106804210190391052981269318397055683612944231028683862713394413070183414408371340333247411932164919306243445083098631960418016567625224558370673154477856155143821734089386218979949612203764000332995822762753431608982475530074879120453069009939808598594390972167318066620756935880267153221045507517756200459935466016156536633812812890277667493370950969804737643929487582874487026338212023116229788978927029363393247666710652829835619618127909223029686210014100906350647059398131795392839985791237274672618813263032593061102490114891460287015914297873621491657178963103633993393711385468206014301869707274969959274935362481242991147308827296571244489623286590406520287922850567118710368035528280874057269784375444588709118902114455505784020926295785164769659278398268143800534925261963635789262690730058355132854301195355722889926601273726335667320941386304842256898968088417886984219774555254920761747483126412132308907075621220509702642756329272950543234876968776918067292510126614620111110569342791334173166046171994291840290661402855880039157209215333288531792276323599149185112756208607621169040948403421033204827443868204488278871764103067434915354763206668678259889431125114594011833437060961339338158876099317357975436019581636241466832561930207720259537046823734445612606288955677317748492476006520496539957026982350172160566294534508891383420368304566039865961458999474607809966806758322128195535447147837042731905518186503704016493627384725829477418436647448738201802581622384481153975440655432975627416063861186620491411068251132869966378840336769610227605828113931308131018870063776400632942961730212582180171560337373227385262737604490808431850993890320226147843179792303114652493167486627802146765445856286585986327018973404761112837739511325236116285070974092972438911942603478059476563698770377104480972432367648997732791038153897487788999324570540458847771301744733430338629264437325702329959227966352872204636312303839612141881398054447785240440751644476814734619563186416149440470402597389766405881927753807688289197080498046639040769714279096755283231540680111682601733176998815455247974073841619560231343695823244120054993134709272147905792124456456317678900919777377951815734370794335962010881269973857018072222084585659314667722481931521250650568958721441035013844519273984976136551319450441349713998836105434492821425912851156331608839266881449223035115503999297488070866258970460299805797583608088121573044002473832577896829294520035971123364240086034133277637466503713832877061138347453129060465459554015312209292110306311777953924592513805000687442611057087134157500894493278784502776140593758346318653874740841871796140944144736557400314803905324894802863575999624258938018207920733079197094030217707569554808586983282122831970042698769969392061045704707428542656241772123431377983258616443719609101784394592206668214061549076336569950031017928796141428532504380640951143829147292437634708075651146425612108351124769419020702308563434779960988737407704735234526509913501170453562641236583088935813969711065007072259572048680864269071857555214272139120440748731439272695087673220085901596485107341482437206188075473839043096373119463433318012890154338977685194494499175798200017985119208785984029361302035143074255082079566408477410977058682663197928454026219920691823683609629150309590274960986119490945101518541808834745167137882095580653217967622113994187030257575878276426742245520387876569800934881889820465558605964149114335862655579330751116802221022269808243095297898730539336547461026742405229511605446672160380462971443752280459570155679552845374798956876393088167079110255916300413798681223101783374054955954677439605441282350822572067055293076102791178610926793665822114995477886497860849937941735688057077927208472883245585776077751866058522595726111995182504297869666581941045939675053633554878830270286580377935426050323305831959030103347840242104908105355034750788758734317155841728831054014594282639801696451933874254706146314957798678592023890385744920282609171495383213977017491551139263252188171804790402320097091322864420501977985789178611187414647900197947384161382006506397572604260192414906067259682408608866668769743734534200988084316941674815875397508921371108521444779836843194335770326706317265724733717303772734472291567228936077201261807746661813851778338676944509043405292421864566307300885325049087966766742941732319973884379648934834999655602384273995082608089936853043974260548301325533111375477653678732760924757793141214458756988031590693860938935795050269840600089357456935576449932244339908139056774898360091686320020064960730206291984755309503166268725417347336420146309775525022659524728508071986411419404631270790296058398199118662684954527292582881703177825476958982736287207585578265015583048218931381928712921117416843867782904540846847791542728494103569368082192302026247214113128650121313284836359384846846253543091380862013378246867850591660487902343518740854798601119186424253971600408810699022729397372150097146777110526135353573018161637609138507474048633063254545641766433081246609494801611731992974336838573163939034257116549170880417702374950230351038192124600277825343186011731195125625105443228317559850428703003294240241662176669693565456844536799172565680361404959926842037467940911294687003593601357766287429690208243871971347879061025148677094013095317355381126576543220892704623495787014114527336124069789674545796866525114917881541281687974768814181521931274590697605359941255308584613675897518089277951243631619866359849387929482668681486761275411555660091578539444330355169650906985486260318808586611756713968839091844705670280441875688158297358039262827714658319735963280874327212012516818668934306738246215520734049025243423064609933971740417968977819935603756416065169185436300204431506087246865285021196738614144411974480514917052303746403740482771854946440462436601027249806830705941522478237438170507007629467368848044746426103220181390241673902840728524727110085267202009174058550551278663897406053735837986486502543670223457063341955706401591985970452858826727517684072997808893629319129683222059940712619963067834309895325835817486699051732172318760554178852257976319186713398473993635807292332478960308562041261690023712322547334064375223318110717502363099379476986620941559464800622608576360313812212570522093794335901028407884887507697623016238586624112211891755583994714009473353808477639052252524941532157540561685645354953546090417209953614048476162694496723011646157961739521909813773420583080939107552568969110925320158167524180301864763354762392507129511851555796798220436404939268446420498156114532232423727493211614012539872135813424019354343699409668042381704260208204709473467889550584224920357444191645804787840571026312846441610545391307079758740218341724933261432426977945922828785412405500059414713065680841560616963068934704043518948696370259937510665939303445491028173005966326860150306955670718757214090010614591406277535430235955302024929934608423559438747961080446529493975877889344804930769200898727453716293540689167095693308381499829472353513141265091295202231093719023763411227130984567481655092469475238445100347137645961780116285424854790068947282335624609071760371571011872669172259882526001117737568981484265116579168911954092832136039857471635832396177580909810255918817926274854909435455445413308961051241572643627051079773586479857914825515505185916563341348490596466350995443067609047546271654631181523242889867323732532963512691024995053260903541007764293176674839985644396683411729040598445224417861530863866965365748434157149802235236912229221991979859637372210332539149928159896064041736442109085313778049204096964947208744115498913749947845081068979827094576554239046158530759492109956800197236149789621278851480933840213709468671543216440907977387667629989932266174246807671280439087231347493872161307211539902800470175541571796710218576607711651063098712386193416449681708139000296691304434274196639536273716861224937596635125701908612393429092350536130253189269701855774957515419974833252439585030893144478823871559714137320482811328053371186093776837855970318761556986092652225489317769397390734712823763643367820386068976845574177864309999409638824391357489091619010958023952394822121092902364840570176376358742181319340759345701083747455950234690239522832851001519904158735720243340149354000375928516897912509807304364745789903460717452205223043395778804455907144422284229998153442924107290607054222119069801906933653458902301030008474967862426618047818916725597078494357498401000801472601810934634873148451622511574231715810231099364951916289873053837973584508312503254878110768900422428200799446432619104123367281779506459779336871167483833287986404418779814236219732064864773607418635236211071228552104608873443869228145060567653264028554872991124565134665367912892438446564454831018973491180865895540158263384235725900735262424351397431313657960948001494421093244810740169807816315517870305509130417854903366108238232699633918436558103774294066204123835307076816317014255803602371617291308282816319049472002887159527837449957864088832766814349211108127263329350792957735900152935459072507807624248225405680902408890366748042461577367255577397084424427854443755395852928257478850642523652443977078733453422073870268428234100591651459681428834547407527911152592982641687961223694444457422070238196770569632719204936495750879336226006113225627329502838791530387719712537468143892994349713520848646099340329329942253014551296461791367178258316342332168592293096018672171729185009880739592539833908676700913050391199671141854093211010955536168574209743351191058952576900601964547659846473526915611129465804005514111195141714584881605073262707160207962721597931201698245204697856733119241923251727955371363097475588334334316150352901333510037279191697117634914238818959481574069002521227436153375694877100285148718787752243246956654883602579073654822514143248260866532606914949641432354293349168114068822104276708267978497148349668956323377078541913055156354555423417085509392206914988713054079685745451156254481379600323521097426154747306887242089423478210934880700113430078847607903159025775098894048176790220612002801361062540309155126516074901344578960118888817678000712397683392914219032986531523831605362088142778568136502826138889350792676849660358313521631638096298972691406886651136744569679934412110598910764281748845853157513568652631464368859478486260902015076763666229712343903499334347982888438688409044140641797347099468407709024313415509784249695056742471894696366430465357157480374994056227666434140301099784598239892084594021187081433591964199710974904598833657311237484945817882092810297523664310277075648040187341016190347339861144911299047327700960952704612321259507821579130201454634955330757178584750057451112508373506198135234684139578853557171608398756398007595510116677886345846107833532078419925402375614211906566692109420157063646769639091176343312934259994344874596273375245956133149757055722684654916266923079319177073438309633291948953271481562140190560523114041225297054675042492797449824781346063828041534853011205725670600452935144271762089050699713222861178708217195601884128046105751739552249694093641333332972158822552836400055535156465020288685011650224515150830515051213416408631821982210483058064484320169054144530220255773054353267998038094015044505688178373017720243082564377699995551242350882957742147789265401504752212711701428627019819536952370848303325753122088662208054823144530287484145501460437952880145900841858467550531619663810904346450918289229510451789212966913670930155324085429896462623792927033842472098818177728608985212007193424841971977665494592360422008199322230959939130744538885400611124579724695664260951079908046665794301761741379809598570263065214376882898373392995849879232781709789626934288979931842411507913217993563616840221342964211152884192397227964761204151389721158509933948429063445836800901103018197864391414424325333859691038722710557927905253531155775602688441503333801268963851703660535856434310226982843872856451180462788178909456383778161241165998810318734268442546238755184564834056978818760702546590036593752494143462224077783946646757956962625365372296317697017721551151249556394109987536488502297593653009244471066624433363073851003029376641159111702957915720305407664720108551722685457202850460193964873072491957730334648034487308172245645503868621169867074163049252561951142254545884273762429832601229047623905297153516261725848294184093512472382753111258274229724756645416900329877814094087073744084156436150496664522235601967294009946386113663975498828290203249948345978910575426503307245927951143282681626443638401465365695614336056009996229855831193380104076379809114876123737047300344045170226131846711771940896440997567939602855790550752685682051175891151765138566418236526072572186363518684771801846172045092533062399534842778052062287711409032379982594468218494132999809828906984083539766979796107560599532661134237525911723822977731262690055164155727733531272647445681799473303434768291363461095707114801170019842129721099195010555231826976796116745949131721020486063863465660979296566280955704387732402436031216461489492119704317317182397945400586089147030801358873227676399198199299089927374044048782365442565924776983169301137281404870467086860301101864963670355788883163226005078000694653838652511517550521856849502080374734864660997265266356260000524896195928523445852038363339364270061926561665301765443936915949215834692328113943599409330694718486046934505646285793183393240649356717042244996259815971164088824597746217795511505136173253434518453822069794203314749528030784774059896033325814501631516349509504497771058083737273699544896760461674087027416656506423336942263253743985009765512623971929506917897515683800009989500150153088146937246563133831531491173212637715725033931351723730829800573681874668265122740413026737718794357439339072024950940966766649132309629244999743983494632205946678861424012500838868890342064824991944069658357900398374651554907840641687302850940287678618628293963961800269575861396166766922016765295304053766509489430444207661122685056419991855214602889324166491223731152503801811558374664192151902038835876669348062180104945907372075360332758503294511481222278497138382884986093223612598543834790773353877427253934879404178123908334160486815348471181917406052146116761846649359793686714214399260879424558606236646327944128437056051527368901695576164301157016814886946531417650669226296630275548266963208437760976472073819382968946219329909571293292615763632226414805865142711703162045031381162748755377528623165807209145745246420553356066875959657378749859939587192502206648028681440196363535780105798188252788596735646880429113103919343756976699943834388400361361169243624349661380562068821468754915995876991377134708968466612467076689360697354343357233137204602644633714591909505088146267739769727481805430645048164842387885999725528181610927728961526181466806669439579050949287027971303414840415816648190607658117642466451008093235630755698526070430800826651791708708652150994147613779780465942850366860328744793548042571210749892976909119700183434425758271774372280005145674481688811032952002266938336152314652918684349053022562314267508544333768155513779974870214565375986308277249906388929333094635964652151694428953381317221014559942313691254917575500397775013854148649814147784959556391586017399161952951102508441151972522801949751291022804098565345934770208929819138515921781518889260575421445583169098596223676341881452098875929660114637343577619724223150497373436345268256536575671121846712321229518131559466511660647582817596148487838712358884268806141342992306691978974750984771389139416688147494904640144489997659429029886167715925868646059841565191151844220547525817287212853970563130301937195056590567975209224251144725491033398512357462875791839369317194338346518736037743642321276604880018320640788901326562057853469887851999906278790038739648852766353863348586082160511614809528317967345623040352507349653093124868854790612514728638656961912243426064206437589648826618355832675793972042694728236284930774310244303223596058891895564040906860478182982297988726184903378549979822136382411642994480925480287462756734359972434192581228621063321328786346090587547747734771057972689479504033754381056395078684251426757146606439939213979881165497691058811279314377986844300188187134871769482266723592753531962930360456814277613298280615810380952359730592993252732717158964332301067810784472172532542169071971257152971583520270014408464979644824870240005538194285576637614207593137750031388568363352246311981792155144132190987957003320623668108676077720991615605348443727893630917764458104384602468788814478128990494956158880373635077960639842357932661469867228333444848046902568573020655181544943885502085225633516270033132730992339270279489204101856647433068714490705906410358195846052038867998486961194343968371365707264862632528534489316827845252229302674548779083880137548150932821152697866974934531369666261398449064835473211359465217920643347617710669613780873457929114778243420875911285394022073974317334073569790929745426074994863831976669926263169331520690961348521500910159585822727950497216508598942254165269944265649796711129249945433224550413797610723117930828172368162328356083594604307438589513487153623116552184696851777436015748556710851626040657970546415724075378145002023257609821108292217581753693616325953705903101986643779490786256329688164704663999108707459633505379338560727262666871457925855858472471688871631931300355658785425514222929625012504561718988862300776266769333530792574285139637581293477659336543086739573181860548520160372734146397324603230219207413988717091430511746466378003189586153331992179957254591021416498149586328241661724853335393184789121499982052278266309271290440253340156600757979443181520123077986898141975482457868696208973510622676871484883103768437216138927530657236320475947609249780649004817749728480030343583070727657071112150096691329449121344241931963149458840167840972183254176910638179400113912763020317388028587363475748652357210728230197292382231572030273974093613858508151319016445551545883997610426975562712726232452519056235161209784804181358904514841610097569640928811829129807399145653056530884931685818741264010404812481290498007516880353068257175181879258015506292663335400973089666318855859849741810781445160738242980971783228435526360545227141331928887235928012029439405641940594083366831713077975386019464900544123004103906952942161738269164850917520782581010372138323151741216892835574447605723557677532506673501093797375918106715549274171550533381808165125000544381815760606766196888613643684210287649255436702921173761373585092570505900744944121526460419804374803115725102910512427147881110292262770049649175086319691691562300734703027748908978273457276158019739020710243440457429656111657776879239815808316311833604800925169307896259303395839564515886678619327729307779550195758798768753012499269057361869527845657163580838040130033755593531552964410881765840389279033792576990241320495237818609955817503131765397613583144416569385213173557482939010550112535237303883851648960088697665708724449131410664355673530115825110986504384388241054215925046752332662078925288368671118216422743157881359032758773158509730313988550748063798072574130443443134551910146468067192179346564216098317825442824221929772310324801431426712907016235354542930143471303567479236686216985511456000400244027891161204672922705993765470620428032472126218943962992329944218758400020445871135021370824291197046335250907930525036499176111614416471091348770854999678220999142197233112928133625848333123545988460524669092739046871086836414702887821649985176881089522802851842953502979730279407439904779491300304002038089311900791556810031844223674407639138134644102806618396914783550628477088382416312674601494206785666502188522338866555819670802136327454338965443030650544694270924247763669204390081087164320090165603665562962433677726587782927508375411177456819123897336897203891276827812105144557709455256694443517713412500421656348979657745797253063899555709198985774351198970314072759101276311037870704051853727481037139643115493653397043177143544995297020506606576266801108182750324523369310581479781044696127406300086763571167246074779663668976880063917512428312928364700933838876458800744318368100227805110786501836649990117477379423974539813634873739296747230825563744600098200618783281290131864912092595034898470299515955827447020897833109684860758476280778938997517411924404921700224712131148355936583751424021659221757327502688024523141870849673427536573833983415139462765095815234639944248615938043682353284036211199895914577900126347403712599617211968282367038354552741198570811146441805047615628491202551003369698603528516551427679112893442159174111975054743997358201735609847626767333423489465789520957976698779304726843671616301496550405067332240553124765571213641491987413449567809912938230830289941584768966576688066299524173248432094527371187524024244728821201581028069361105936820051578696320382373942537263801960352803542443358598455171742351232277594550858870183224040571191815410047813057986809823255670405713975333445834111872532722814730728567271786472799463031007982922076782033213075795844118933794424661351759612567583783852779874343655732463011870697210713469027637284369627588394028795162529964359823919238363659445853044759224851263978914155523611886427935839148360132479119403511791430631255444987557954676684841928732459842922409558826342709433087241801103503108421028931903936488082885951103490549956069779004628650032840136519983050288761494495330711093959897564424669253377108502174215079797433222856161462086239581212453136866604814149403854998627179783838133679615172070604945811376614037299907264157822234994209609650860585047446799333853983248118804582157255750536173475324868143646907200892749737196019674165651272701716263366505815785831453158626421321699681907551549306163095143864390579071417156553942131680048788405884707656944283986977195464100518394204111805660856208252235210578638422738757931836673088635537701121452950662827702602747219509817050665918313452743446347371166054185676870403916221161501527056186420120140491103999916174247474127158151442374707948714028385742754884410738718625862050088429145177944824226283464849815086182828349200934935597856121393863414500291886880528706850376468744626991917784701483500916459656203967445482058662806809422674985285901776336514631945697000229193317584627483655296959114001815757745802041989437805257572264624081030667195469127310947986744967004827150148766645611322518965208703571442143191703724862728501777155390425509068174409538689641877220249147489277767166723704380074720983001968205598326059615902730335219808589728987076120284793493240922498255840982246582836345483499520438515353007724955098811829395252352903158845974543004265176442241922411648874535297635821538896591191556739561261082856671626704385651629918164825201137564311776340785809227880587631544064211943859782297882889844643567357494957283983634910245041279068686751155990365257564446450755442995931826018052241477130424184975305010370637962402975792386248270840083060341834982111125777374663508882405518028246517275069703258843419361672525070004790252818826572585430964892201691368731481511267341350626754392916527089107910699583744193516747360245163942785625500305411103866140180024753951409798280438193871312621554223889173323718307098844494699888242638737396740386743128464767978258569932825095032917212870910501987023848987846845545374659432565994888867149951395712067576287203988787748551367950101355404442607885657104247233405047015739224160044312261985607276017991379624120922154682170059206838289957041941708622330880226043961491002557345893565319435127224550659369241211763024280989959432773562197256543451418167908926964655408363751972240365895448078601884681126268848665898609283603840876703524797606192931317012727258004170682655612634967528766213080255791206290581296816996921518232039507947309693491638904717410424943723367043622104605819273760373140642608647130277982918466410559712120540719669921843617163914124610424929300523371919355402516717781782110166611493971623133684241708137395980103699349041036105716421543769349431906172050571501121071567991519743881854803540375355032005733843683113009407847090898181747941029563001664688187828235729757573425672266056485115043687880388920268938867359271470504969020268762468154129406028712559707806234865203766193524639763993795370185288402560825542741817032397538913313048529152376348993276041998119920075021457221797648220211303755277405058043218895076444687833867101470001685976314176063179663771168508486552280512144084706509946660832909709823465939608815326798556436294149679404022380435421518368349168609347478659424770005687229195115173182657887147529420464673135749704644653825065388642852826963818039817403224625180322122734064229399934159201306689206234229751521072259414263492564826752375691908599487946764859182686715374350973991084090780397142097917362737688916801179866273343638491912831001568229675396288609461586666555074920777940935661643338061430958418838447114475369089975867597477967123763879269703411409199065795070676763055894212247087373256076406414090096999554869049556721252917951537290216965747847546206301241115015354476261253336679450679251686862598376849280838209097250839515171372194903661382878231125668719184654078339974606265676921047708395765612209249388794221604486551003824173121702198661698035075014004243112098331854063327928367302215424568265289298644172259783932048678195033227951046206166616661235691904990710005541436578773581891521406961643309515971164876043238880464088265494218468668735092096976906436048019591406678127628119320284297299232894018714465853301899620751232284627560324626535025558132283487784905210277556359340250580939762216547474841641384034637417406214262198552548739119957418376892165219002203253728856200403207714010420328012005654242657556632414498651847050284407796552019757083955134381558304851117044111004458946134559431783659355329559573932554029791104675162068493962474627246983788966614048712691813856361576802100456577009182859203163816957477178310562677081193072696050993330035142242104294156690783087579283172400768524502036151450726379725097566988884543893089122902932868559678452688188183588692373172286475891892515285449091422788353492257388872509726974985205361579445034165992272007753725685545506651161781643080675136887667430463075108660292222032457911282206577054405826384079665672541705296658626729266735435648621491948519542580333904370976299685581293424853544851522280306449242466426130895879117431872869435616766505344061659479734582333809907502224489736179276396903985390965751223488811653220958762587035842130786110408504502264053115732034705852508327771858814622286521476018361816755762021533755391738889425773539663604836257050183732027160450063678717559317971216513664830214936180444135234823604473340379249072422140391795930618791791773258173138033663893292029132667612209698446592011050945448602532634316513703565227042306485834101790032952442937407359180264890764361851067941891193255348273382753985421450341343861977716326424734215531875994401975580783235715324627037376682587366905557010057126464104751613044638752086490995473870525122269766177799823310724618276436604274074389656331511719727072525914825000241716188425573734958831033049277083173491326833095634617339453559617899440641793810420396592854849735141772515401075240528957401037033673886878601783630028859788355444423786081964280636903625874921936864356105116508002342045953874637399586566843564632797498796273789563931848079634795520577298021355479118498860453623944880355369394278365542060870356569555830744358421260101848506327652086512803104249656052525751580509919794180095461799125455533316018241650275998494638221440806006140720681723280421743003645205188139695640090062097641081233939423211216222974186096758920766466182221189504653415246261823867584022537614579111945430593176124369938551498737537561990682260345743690463419139721600094751202485206590712234094756851002021452956602935324325383824343250341586922695920244991671704957955122416967548064667455058752068562127352385100289999008699579781587470651878661080223680852519309727871442095953500403736500522647745513118641396481321887811699135977383455137912030175481851146632434786559572009042114444403673314005097880282326145532206671510980656968365202683524646892989226399495538357755780673771477238999720283021959043790506631165391085846033166686154281772069826304230281307157409528470339552348541960348392677494533908108551780009455581947515441830159652972053500641362354990627797582269205039880628242285365823327592744399122759828800903488437569664359071767386180045819964104420915651727691698854091590253512672381457092547819592779023321350390461452680223746037166961006266089198862468967731366577807659207340087367366604090891706528380307105388399221753300035401905554980468682562096266592981618141557987151383392492233458746204157979539369355093178185851370369696396763464784284236194086765033399586114098796887907744874420006102829076866553400342344017335580238062705415755088853307510029546940318249597655004942738422726859420505719612613115173275161866219354077338195889878590969911576202935975860090033092734489389505720782000483764576872913837711288636444292391107555518493892630445062763550978007096506308172559914919799917072845317768212480402305568320455220581160705602221212066774581545554364649308413267542080656668947208207098651866076095923287638483264227769464070408481296428430734545436161369731340890320536559438920051156477192577395074355190577307599588503393661609501071978965261422952721912577302919146220967361092028440251222307495618014638208848824226912281829231511914055619337729420259462771883557048878877622761333640858868759727578399988572742834391379785708489226588413337426352146608416555843744685755851520936753025803008351712587379290379518547480632821904454410930294543780143437901176568972452595119497475644599544436804946834682648153443223597328598238740474887832386128649916991433423054568750511421577992520398714112979088639313272366579986220297427003449921732685216164686483713241670351083328075487818896249784068941262557517157096318926779163353592559175792787326062776776991611131889862673317058297450640411663585975133857553179930467908568796780896090334863283968206171971361216141329196161942645568631706882446083295262870071532087006835986268185429826695290924540408980838489918696815910914594211912982912315222349394858180097954696958017196824162040701233529601509394962842668092229589217928376914650099834208594736846783963538681291647421784169845158726413868462143818075555854259981201069341950048786061238245765310803157036389026688376089848034030322650456801818880083629810060305187392096695417792689205001628841822398224405081786984237192227116189958619161041581034380822062740856198121911302358842837093745220944863391140108509408001660640528305817875244150459723197562358349377800597279073805968822496406105971503630008409342658612475692022294631748287775305207228044213224339330900648253208714854616812179555601683272046038465899400017188562564001455819545844809652880225171858237031784743875070775949485594192718979061994179258953560079348895973135757130194068883487062052188561492735552449485400512868257863188018250379934887665608295736445261387595087088251999386805819307021049755046127700016220727267551684541532639037027049807743843465109194066011768786212235890864004882638935965300511869297214473994363605649832723390083816817167548585593777053032222931792218228866661284484009514807176503649846442481811969881339601411988553892076444898338177546278735840403112455284156230979442685161433646913525670249163695197716153717154953542229604704361765012214893351832041714150475893429966474039647559538068527531393470585836401054831426418824624336405184913775697888645288733627583876662324092170674449204656074546256393864666722847914054202736633566437899585674574612367926225329599584698043505886561264249044321741923713618637217648939614478103180842276081860763882717926665585338692397816333521070490422101630136822251567758557719893266085073483120565224273641257575422392336034940074936673896589468574331418651587817385038393931817257783729755642633302624005043693932004381823568938839456843123149992191851625736058865469115989992278971848415555295255217772138470428464498243401809660905134178835305754511569424928441557184052172837710820055222915939228917161762721366885401450592632027797420866214765135737020416049778181306138635878646976368982883905573401587871656258279881346652387696352032116002742144286737774025245578799506918458907297590077927175386955660831629140777056127211195282047664514286704135562231885388413937942011693791470144208420909390115227078507167507254384176093126742032750021770544165688119525523796915185550592005197894336041996272547368537137935157813306978830464253305193840006921155769393874871418383698078996203972392039813457192450233194181975142480604733125818977638207966365680129510182471541615045797870934358649477241200879554702223354250319842388340193036072466543042236639187131519740246685812336203690034051066840804545054849022159550781551780201770916534184669950742017160068912614003248513357321158490522166734016444354207783551308803520232508009414246815492688229159749696942258185410439162691669724199009059428560808967514487824986065366893734146237102796280328417463664509892467066076051629880953408743279860963937215566721688029102035620054565350252054199366908938045299502764556514460674138463671288412286451207698164088374784161536677929853862409068270749188209720472266881977484946896972046333304822204734925342369678752798807855609835303452775441000057057330638847633488899048838423734445740072699631186511830660126599816610272255052537581960013433333234985161970897935195421509742311008565459891714927512371099021983720941537221286426581952989527876694376156182067147721914181381841515420367385982452903229086394381013859100480225831940771368080198503498446763149466539903088693854544117214029630043872036290379847367668142852436472209453745902074657360962352461930931530971982999518065536770890509059785292732694768158975989042677615716628994671080708769374975100741004007176418059194585189988993861182545798705885859765080169303125641343584321650404687078177551022694303911326376963678498875286527372832646084282016185123357253185326259602843948011378174277338465218147076987898471515008356042216509206237005154807323926516080679485552708381180637861580427708575018078625282932504037676228479767395310556629881934695268791872768202257863515971524578029054810114123085380191019304026831264810819963756247156430558991742363384228811706143875115380324055184184019074648956686830301165230863079129101369608324030127159719104353853407533922137485419313277493017491945215298410416631594790209287726841507774494731390012481582849615381055305640346522278446555440631334456832516833656436838352860090353135134225452576739754922322159948988836996418471929004373962537292188328393716581083743977607477453361658694468401355086331763049812987299411847295834400606140233681952651910906801063068644711270573472858918539690510332638601332442299468758127047249876889360683510581613437122398622154052639603864425529152889706275484825805619770222996380915492902666434691020144066847748036160938491142345447315527222130435634462177596874098439084083732057731252111645361839526767090512688934335161227110418725428913463528609848573847176641800495993455363245031818726906207030436279244241213312308681464113333294386317117149807316542265554333231641083945043529642190248204682065940037217412122819840662517813884341246444834680245549026413092137799021080697896694058185527214858405616878481498966770043348349613794772092916817890473507213571639137813066946112103568540064505623714219095958332823339018918647680783244850110170803383464616228122646458662053967160875582113224861184286793414356315036136167807807473800331239682183252776481458360085652903287377468513340726624916640693824715019840504140919949445545728372658186087097795814172301930954558828228230294873247916666486101161501906435812894422301968268324739680844348542872004322751507920777735009461526103340601167298354090580202593318742621477888599502262024373470912227597646509902550302009268221031525592515913110070079501792325055304379855383803799499262516431918942680674593542996440934614787904028245482049648965853970266542611775172958213413821538665479970960091569930691035098719913379715771890833809390306465482681249159094626707860770948466926649784287868125938340307524427300979002376095653087208148676086288178788638607358955531809294108095929179426862052420340501038712498588933435100309879325684365032854584014766971808756810999707830702713615333863103588345736406684769914447518062199571227087648979412406583618720136307403165846367836866565951729411298759520462813724792230533522579702894311315355706538536048142503929623449234145587090736671685160695549915906398020262479589599020283678613955489101996246648206823478664096002837170614449573376940068585140606612436599698153145814642837640284239714983100787758316365619590911041428396587167521955704276881460562572353240229766921583936620304940657058782766221899688321712965070464869773936910985144711782381266775323046113123215078621482957720793264645901657007592702497795167923711466527537981301871819951974515905466547093921270731194158934096925432070094093630732634045819096087520456778607571004278279649374626941908782409265834593492503588569174935743131528412724395353827973991069354903449186260335341341865188815154688673844807216390523093071109455408938376623157698977191682601279053458130435660062652824209268815519553047942668008978140385951236025644316072069417168032515383444605386193267695655928979069499939564311312342547058882359731615238749092353130932415301802049290802548921711177461935620105956363769449126631786700027888445751255442108904406068894836929020011942479487290502124044883910228261786036477887883342424555597050956713373799850975755897294633575917181601668337358580149726389890608611741121443368942489842066246699751770406771925905561530952667340435696780819367024287514880838447729700736067315252860488187559387582103316064196624442218094717586418624016169514895323447116745132170229312991444478905336920418705204759878520682557795188885062743435667726131941009813380404642096048980901218101481020276562595699978061267674143783953678060765881099846504634188576332364495338534167074016531539596491675480131454099457121596659191839847353345327228785853156921872672196091631236319998115116775926099958001191535088812086765704765709983915445074252070676718821211444901932194951992413058044545458942253815086834112646406342078401690062936816067346029288388686974859856420791606991075773735614816014420884347039774457885915410224239385059705919892877712626430245342669538470103709348574615135019306779355036899998856621298163946231780631853508073409650144523229846004752542862718996135812397588913207192047196518140064214858845233366054698597486331992834445689384519077772127956678420448938016768126497788866959918463291597554617665731682661579006874212376667977630085016647245990570463308691037237291596310492518659031043647152764586639684128587233189553047604197045876552886531882725330799902045314122725511386109453439445427328668776682728440725386995958123735502075628900524760085807901303678459067767250460026212957307754036051766279817094699640153524418617392111920899074593836633228870477216883234506729891669856335720392352839620327091355626955704341257381017812117111536336089684992540851882779682433899258326323518354764873499590246345248543014737142830572829226654888419023719006435549629685838068279496837357205700961019459370614296137823533897168760317972536976977846567239645310266246539543946978177979504766152237412475762009005332035330584947446558279780426927815277630512624138753819788141397338840052918932241605345450936088596128512231819228529463330563826040118761548908809632697176579696040817062824080882493921715987139006281589510677487320183786205222524023993231489832884581602610025224135217879847085423022606605985447403887057297734897829935473345447234893889651598388549718534306102189194809222824464487490494884854760024327582319218209125478385445309664696333001167085901859605379982496265488828970245763165938575248304210868105497923399982517851934632849866162972785635252400406260083717383250197425790317821009451361807459172780149848490601521146883854006334645795600644407583111564113578482338172140959051520548060853488012650800215332268894845044985385067273571565267844523139335029250469331927041401928038155158037988763127825552306303017667675021024928972862213632190813510730215820371511543163745725309545641898670328995087800376915438788142316694728479153480533217072976036618236572651946612596588815991296192011474997396941596005684005350362759955297606825487272780523701413488306519410869104949503991221840517890047634477035756354984844374464331509825551344270889955628357095376180992559851008860661310416274576896659617257833188475612669210832748179593279037795160891932967126764913037536332158544839507243074284120574996908873134628546580325513844546035047044717957777609087411058598149178155821801889487372381907208619130182580895571011212322725031867810437416953783489906210340312360982772878116073062629390253395509355409717820278515877860257515633620271281168469552448502933970800977589641426402358655901138527437873404296026512115475564077980828191628513893505512428853515270429273949162753382710001134212098704506529508091048534907467541140405756766663874613989259102745938584541581541025266430616913363597030329903807267250865654477284744180186826743456886015672873032299288429736324784160955153165003190168959371403845861559324229787850403803196038314182312365128530687268008075166384289804379655149041315162042970608702429794887417062171741331254099602894623178205936988104483829074559872539660640010086081726576502360721190277955045936174219624645765221201440255503783601180422592515346407084657235143734374330938944699707587348941769131822373238790952315867993476177517029342042365767461250912511603604366351165727170822519152229439720093066395909409433523192594808298250453050509991666641568193337742993466253128269638906718607480598440227501615570944804059984779945455625012645586343807847063098665715642656432154719249481715069711802240861114100031330334584830326641739033230890507475274722800967763847148863014785156637966493090153501235431748280718449505033757247983414304079084063394731714028267402051810031192905032850942953200331279098382531818334931567964807866353708734515721595507094450143227169052136301624650729708237553199121338755684292818703028615556352255893031267397571024579075482800787229740230407567635742951430767961553594264452640070524087874513080773699238578836241180470013745826339362051065494158130846074224738527668904080418307937844300390095092128144058543441901841488166051785627163328330661866252334336424518871492595206926154633129346835847748909401801595179751288078854619567575617516931425584153042065460057933748485208059178427721341139878006748614430221712045077595774714703094786976015846779460869091271377806307306457024545020568158654707549797419819925556227702483626966208260381431772002087937508747168601229452704168906044434315459433609736709526201213118441229090715609542647493618094678620698247124049274624973438604214798825820931469650477645975780988035249298195286220008208233169975781114137157037195519899161571917177123809167868286458600838261632826395739057147605620401505513561649778846405308708544726112877674182100274751213597796913338360597338480388964550674981176212567134557696356147742351588358375743713644104890003633734875499116735934996490364474220526734008783005997850577487576357072744461386255251625471386250571413621920904294663351316567457217362252700868128536201364182497376420267900984698195953567680707629618383452536950095040214614337174280676508154173442771998438742786458847630918415653374613975416570347638014367534077569841365772963424645457601521927886680480018694202239410369811048042425504192149127731377961541907282058788508795666716184053227366624020786075802803063551275510569111632003536774689000565807231241806094962961908120485456075931705667379243910902018969962109400294952995058816700763736146887686674389962551926447325738933646615512102259759402240327271098644144271993396521079667859038507748003650396090554293383770001757060538180396033907977534284479328579492971511370304450051848747343341957675069984027388036783651546717510109188446161562428675632013007438688839285818969014595487524901272674467147459502978924935483413520843853347602248534377457759178603620828863793522551778319436159176662282202829126947581726403542755860100547896444202717632424600617019990787002904971788082855161966363525719969248669768886519022471370523359493773410151903811575332847055265584196209692360368087898858060908131106063957401187216507538346931869899503241867242240776357146606600633243576919190619327541439212121481471307666504835118894991231544042856083700234588030013918467730435950508503529138607102871139762727629114354076759739730741478752130048292497263572366574768106767160375841595912888145116602965310131410172456302798415175879487434601753139967559823283236923532906424074659393139426798217878208131757929452567468719097189807506727933122526957145908184071705998343323620462407618532022427099640401268027594820321807233913461506077335685048436859816345737773466307065293017372979829615068777503277578717957770262649660490806145022453983639946424072575164455674530262178529890768576097306786004546582959843271058049322795167000772271101116369909593069820003615815862171177720574220162971288850557238732283430616540296650739072046458551125206076879884455480317823949359239564376404319348805572776508964955891181769269289069736993933490615381995064533211023738768400810191186797002477212681313277167107274494866595178066503341178502688225995291598177270355728167289402153758864694350028728960745032927972777149839181631309841367833755780725388482654551125665328887170983842391234426493606100949796812754548290919819489695089056999830352609656975331692630130156996914179018720569294646538687187653225351308421796679038972987702250918275989582827923256976167029999953992195302288730874765472734359139198448043461302766496383273187793205493265213550753777593152473790979338137610080770281814577544991707551634156157387418278975088581371944508291681371604282832581611188838309977416729752921124357787257606242544693441486240800982720472152417579310023760961020738445320705607419991540127086861732818543940479387396913532262157430112757916099608254226205836139955995952223343716361708936253043260271092289824698762471624423349199813405613043831094762091884362675137900356417164824769137993708082535665508266293802071449922253983977487655264907554143707328032300634719734904300297847952818190656348446310518214117167249659521841059710796675718768736903635503237555766917258940482081349160514642930604088404538270313244841617001697615400674887732490508395054480688169065233132461615166203164812399862892178784741968148186797840614307530844935474128838316684564231924406724978398113347203008444731531862723416840331503631623309104271986863408405949131417589654994159593413779137080670053541633760391970341070168516540254013325394421458013840026031503012633677173379509919963402756965868298592927532194489023496578597811900792731629169647897877349369786941071869499871691661397654042697704905890754879787843494970920869213731481001288617824707198701167096852454355759557679971423387799522372684705698314948012709998220244319718649993754805454024300902201124880042472084270727548494843753929690456592846228005909523969543724033372842645814402709618567368485666598586261500149424833065171198604164906477521955308912705217727153936269260508660519036004383917637308159021087379113314334615657976158523740532746527114564299734874236262007825900363137432644089514212018029304315978375286225457184912885438646440399778054938794067642658432516928329796292080569689524709989515716518475774071748206147256593252626104391527563566569907474350139061990693399413904177693142735923081014448809513889421301022677248903309650037395835174278857297164109701905934251816899107071522231447853392757337707435468237498225945857160075181223134749934073334829830408341557387587538836257237944959669041994765207681300695101346052710503305933766373950416882383531461091029164127674909295935368162006575388143780925091182629280231396601654108477724237969131805915671143505954857466248655980168645630332426846599881372671696245978251900986101680300242165591486972666391843662407098503948406112018396037971787949133089275833134604420891608483456361240750760385048643198088085804538213718022537692399041709209542433567493912878509950868959263970995384930073749716335750275494771981811400147677863793997864347747810535554741121995446483141298602837248835055384445764689180174003330143710600178749150078183281657812156059932507627036004891400945159078186087872504739262098439617829475033776864864296249830868664052407228013478613715003498103938413111550799278408127173066538561306672409763229164389899270362461722094904180909646877456952363234462895022654317519520735085433121192557807372624462909008995865524996787146125370453042921849943140845200732069775248423586241217087088327874393971875983136997042288853410008892571715879114416715602424286792210346611130186201859770509613143858479085666222922740829183647583687972029943647998620350972436424600171658267942425748238935894444663290009649759460597398950987354584946055266998527718787550679145329104490830791146577406784275486816167103631354372390040956106192897354021622801743926223280298139661629280781490817351127796998743732314930213826376082630738232574226347967670909697461776536718529247938557466547856774140503253359823293741500990550429107966747607605249398611950490423259722315574960297404246977470439386293926244363258135543004133962554489667031670888789707657922344107628882119111796089632312939922372789697568314999514773036134630308000290217158967865512781597506576358246513210429739607895889864832777406294852083688244743634601208292173875143946005683797328824969070789722118433473133617449941038335691307040443278165065485814756303292026225686439947585300757676588974527846926140180623420936628649767202024450433629663742161526214565746394627769085768827699855682573045681511760326073892214862555304235505831783941003064479735442511050705540637353397783008086039263336755812378280945197503229851794601600563055521871721896746957040498545834151444853752495948577432261276065838618292306529051102744698679953802779618375235228319057108028980265064658252685444242282043087253661753650879958383625640387697601394653140711736164810183213407027093471664235210896143436073811862336955814250899404984058760020861760373733199732375521371555756384149789981553545384141600044233019512712018184508419396950374500759523498899853110988191112104719665216923262825785511031541950855295350216814101720378424897619235868078330081923720484272417799280507371236933568849168938816876445815313231383193165462777587186576972442760055192156264961784547070929562680814273134910155751492482330915631947437413284194672851629972623617203320293030020074786964571631404839473768607506620124165519952409001560078614517295689754431234885548681840481187539187671813855748837582180352156810932349684100264192039706555388672372275462947276187774676956897019517508340049380537890845944292350746762147113030279568978351838461127286858139688299664758749696231682789084309385062601556845817493029371098073046723711396643610656534496474425727121854723329164070736127543394688564746343215789368897610212211764519746467618399914759960893717254877027825807773499457683249457247790454736362856120316630661778375238113755278637007002116301595971090636006756647410654466800876051357371294137565336669332977008547599869712202628869393570204774143925747186167240325988175896286787179523948951044075917391687460635810022529862660847163167213621542529309018264164281854047751863410429944437069944806285265668575674165432391093148482477025466967929856131598151889668834232279898505659229273564931689921710645475445261242899488579399190005144208749618631672200123561000106322221154356805359627404877101870009141205470847268768233692025044142088029670211667023513752685597148259579831994594742346605781618111094210742986227906778160989469121215723176666095866511058793655587758720311244396061089922082358146731418369077049547591206407060109318104077217461342714988546263037491142607918806990400239699650896318321791250319981419518711314139795950372524814256318514619443232870157758650169646068156292669003518943567783388567266672201316663904020114663092145429028374872319676868454363161404825428571709577287518875597413970331638391581869897282093674089561239940435279162502564277541549226123788160307279887397933371842984657616874494526033190030464248712872373300658797037357437071215272099321238951236182340180161074153995300200935137444827544086428519234407991186603240937165602173999332897232540972138576220582051464754939769288224655094658800094438014224106376135710923328126937782520651098401226395837624491011743282923388965979835388774888555120815134817609718294888309497192423697036422309951178994849722842915897522639448871341605704676584778790814836624122954652936197366455354507806908562361689296087773649410808292744472517159370381893455195177721294966064702052086032201458159376998194582349783871491706124745866919011508795045573058362908175877069299055119418989395111492379904695817090184798619221536363345318766103972883365346193887272770622681298145717239422545755153472154084912439372564690108380905624649654696745581171340995596243512868827557485942237370657476220062386805052821508771573834111909611269631367866751664879840165365298193055948138275074274963522998834111693352422355699112810059244517156115649331346441446029339591905957879724017677802544288188922514970975501846077922375728061060778025282957704614701365699306264189656727798759443226865414141570299899970821389775314080148933675299115053348914190409445786396017782422728384506607970181931587876420948445049390260597487494985644955011139419807927090509089151172800180325670942849094868102256577060747072268348230333671885418575995100132933294328215545610678661308967207394166705287929416763581241244905949980229591272913485329742376202757416037641848168995400909932702881380116983859206303481285015524289148039299435863301938457965740652513510359994264308286863453673916993176368691624651725074892665662538791048046749229682891937361982813476281254587278427639875084401118795368475670861824174128970080336575957355232130455554455891079650036706224071689686447923326673766955691276304946048483674692470892829334555533090602304479335048970564170730126300145735006186144560159147980241499195591071842390373366114667132461750048201617155395496774696089868674420096665194985619373033541880063588318187619267184585757242082876921095893252089621554296568193645962196508380427676364518731567673182516516824595003225297370060895846832121170076960593215169953078256812396607389075519484027968946821069476032307991605020519456597569984150957000765530721259640620175016071243588542671965075174064542931526531476677719124709004263497790434546164338341190571891235034975866356071170243989458848304864742686544430681062122121173009049624146113951675932834244624252090610493173467188963507844602715865029335202211851124808828040006483908847561374796826306976389133533616811455577279731320447361664962353938620379891484027187861569786692217753885545891725814379890085462023873826396220332539510257821480396611388017861647931431864057461454034983903010536336750358800174961899967340847091703633893569397018407292610229864835890478198472222210831482155244894985137232886177304620021950698399933321707456022485939092309937366393572066485238055389653457958554332898709893458792783099271588796800531800754432864353748336677913407292271894801572322761313632521941203808841731862588749976642736938105731239209032295971951613717143049871187732119878223255322309122708503593300636007020537015920594466454281528521334242003664359080904248736992863619381451180746657849356694943347215121184476535925750134368393505930454577526051287236318942122599670303383212777602567202431127117742235583959962498878670565700409237737660985259552235853073584471325253344654792575074458808447043831355267267427124295588882822641296986592087271617216907589766804826448332311362399260378702948504872110561250009201056426074495728678191151380532762871380445733145783071181410104067203103972877360854556836797818204145609535136110111694203599233767618563625284215960806135424082457775015651571274481474648080014066477784393931491470281913980172360243904247202797170657317208793190989307582368094501989376370080003343892293756655526568561189390605079392257558922294352277184695823554348357664428579097919921889714819340597453324057640473117281414596650437997226373870884426070783128361155021253011989665794280379789221589320757768770810587549775613960419143081583204359036704822536960947719694200368268194911787987623928978136762541749832464670448606287392051615827675213081863047170240750156354594404310491539403973858866863934004318759363429987624794622273457693996952901648999960962039693961016052561925781050281161886999240768785884937340650583895458966762011371011204824643121253690087227692741659010962069635153138656848708709454532484586395291081746564324135104583822267112076639750180381476580426885753747679703862410246427840401840923442992064101086860178678963332309138851094981221159547253378371255250516031113542416799545798667689577597920653354807910182105769235025410279321404917086847054775535729411530013792387994931252746342837167323919164966641387649409162222836399577467895746780565141360708171871040970590324053705903867189490669896747544786626901584282682169904728393270836700503061822480885355840159974724979317001214405107316630288892640030626425938078390125848447962577212838080402576726458127312874564968376821664446598651887065528024080917690416284804638711677561792136417912738146305703680207614913804319168374457540461932413719117974930083058072629007984160363153863494164569920413968328299263869579733958535192936349260299398138375439798369053245330987760582613133082355487406952053579124450670703253024105574797823624448337315537394341651155444668050427748782666276086796996126098677521882886598310333301642295664931709309382717270788650785654369894136217673625926395292969732911118618839072625314196529361225270880450416245230083833468884320818661883311535079246585780167897242998718701140922096961361848218711477542279551516843656750777339904734158865519500191662961775890511574355139985184796141746296621717883343916949731683972593866923436358289109681004566882558916548041309045874788793012664064918247650117943803559312944898262439276555139910094045264789767854447148693909547786100216888513394442285842063478500303320504509287024903234126925654968686530427062174121443231827846015571868300779761276726331999121479886497249556310740547477136576745590447021628614986664014267786904276603739210328970563688375341967618330983317182218223579671442159111748065401346934846853692934424340192098711353588391647657213717915074776731015174433607914352055334220333331820798256597524568492611975237100635153415656065368342273339916069992863998411821627999598217538514749782273737045989769442756214143759401511740149284635872844444566274208343120583570047921208588611776997578996207106185083418646561319858313059556973247267382772923115827765217201249367278615484976817852304292925410396346322228730737144801980634273064164438950878993547859859960248825549476191991260037931235079822184854985518404918957751442498383228803245915187892760914598233433214254757903740052840615248767286701597497572115986627852415088312002563106536673772453573577289270978433360231398094048757201621794354486034619587637090528760811697201160824212908618679097701796567520118768729046201892461755202965398796828862677384495296719895327083780504466963345371199567319106755596294356969507851125343757974366228735875247833997889508268595349535954171744522232136192166733775296965246470640093401954284964188008286349890207943096490997126846336866266135948395137490493169697113669710032100881354996577283963949351878292396969903913150514122809387769175197446313200942138297846166696726416723555793828300898268690152403006241227304582080777752282914890763849762191156068839064789671882269767317622548874827666515542002025982409886141711492325797124577213048312239383159481759739709012206404733407268076653267750500034331498036707597032763186050099912637752716704846860856259152693131661070294504682557327008463763752259865363005992276828596823144823430306592559822651150940588569880519921895634372751725043431394967104939566854103871383411790988312707155099199986213062052065086108618643983815210159991589022521067464438610067860021311026499594318216421990546483623231716791842312837268646679689389708427122453233842072371300877102916305005633984732743600934937636410837270480654579637744519032460544396321258898720073310016620356856055161578119313466429489276011386539325578466958328554958729588975785244546272921959636733502899662206645287040230926058098439288219828541278354036988819378981560503993614978530605659804641256017472159817250342614317192511163892424953115279582924722098701013128577907063636260809082380844099436420723279330434274234168623723303026778400684105112143236147348750753299135638248615843040030841890962487657729563196815880241624934601603670816991908175375168274304063615116357618883628568940021923172366110971793068158572181407292131850778907089476650069905069319674766362707994098547376236725354419242320037677494964951609717377721930787024405665065351705238770332657091270520299224716630097775121471056278379882669744116899603737874841880011695047672340442364303070482520826711366805003151835237248748242948821629790639423196145540148989243794379326851387960196676500932225784652191297410647994933890788198753033765894152415057545321082374755128127527266559250169907698353311978837845162940937950911321338110678825765997516059033453534203580430177842619283553798593738626550139033435391777455174798049038270254899548152333900592910516355222672343711112916198724353200980701411368466805610095377307430970515925398036579981347148288030733209359859758563458500633614610867527551906644913000525645635032784253156741639288249568668680728611967582748968181673751978987247898242049314639185150045248886456223008350479875279159784337765030983749143774914278168973805832203819586878005495990415752134831355894945031259575420197797465136759993912883029743146563618291520246720546828841049439295990820489329878619510594897655727831406266160387379007047509979530832505535382010108113591788916722289612624939961342647731356431008442251825985447769345919042139982312372940247195468360109203765843252074508801907799636601964501079412110132091156171554698263712015814386014568780625510915943292098787473759728139292578390470889474173736223924698937933625598296861257435817299064158721456364251484755085874706134399809422099838076481041769572108678276413385605130803677162539555888167037425280916168580367449739841215838381879256515678071030036177985683536598699666991498215504555590607294461983190494050603782414382725122966124557286194094651689639031011863786518610475118925505450264484117486686318226975571404363413319717403321867438798398578649020413787281838023962002387554846713853563791154234170756113232782460329121017788070976359406701656394370057484068321280804276575880120277474129056196700945056302825894514155023628781063810935039194351147715910748904637548578708765752605097975781427449646753738410249327950317982013610430108050999972807595045515883000073793484237494924330949270613721304903239779300452036167506658767220230666845451194887638438695169312389096596533504344932375187987251342566684387365614161083171690329212182285283570529884802001435964145864746846839741395467427140216170471328964892045158718682608991970988245034268565037594071485622865946310956722908136116181157250969680333155927791394147456838067964671842333534445923220434512706224256494268681285244557425839956297171521732570109235909858247955663863968961444001706380661759178372090836977525778292004869629793017731780429963150584048858438276661262654564799312028335136035691846528239368915917820396150898933514722581798945687120205846266713831603766597135476365837219921565161370547814743466088750373060767034294548006458314040239965048915445856492677286098962035775074883502287721751750671063040260473148393267766062264833905451406573068211616891429467619092420165128719254142916093823435679902646877604820980114744622448458780766268183511342270908804789571210117382824226396741787719313846643952992020136879377013259326010623140705223270875090162980760858337304824499324587930682293359248856414056196282769163494650417905906887182367003599836647620143407923967830065356787328895907081030920398450260078512351486259759990145691325880967374409647493600166578550927027289601069106782513153034130669738154566372893370649901549762235366985995314648255483118004055962156850039116257624840066419257210467774072418797595413957033489016645168417083555278742993842081316965647533319677914674970656555118767746195518739146520772032423403948850948664768015033529755610897775948651636382973590482355975645606236444480604135455237600744431010020295296134484896681168017939472003766371492480482288611574876623735153154571481358245099836145213424966179092767350616187832072601678285093109241894149261426135991646733680320619434206679378166856861054813487489702846791593814337421788275453229322554604121776780130311629845649263834848602589187425131583538279185801756970969434419227348775773674894843619108643087825511626363911530527841073163828439292576044913474414148594066933671746289160525744235007083424564933234081474863842262089582844562554601332783668497017570566010447139899591042450362123632261426669871905308151847322294227687662955075083289519786160766690017728157245998551643391582611039556182509105364208873449836164654725206537236736430214728968777942722824744555791360416159918207879820170377936760962098793982969302443992472465036350004625272135700575895970450030658855604946059063119394184561663652178382622955146560257035169929218024512130362649444746797795559508837254244791483863796975253357003921087225353371493734414795263583435196319743288770588264578504976600989266531405849840250553148972422177977088465959927622975427325003573627896125512032985451271817506600748412321441256156388637727192616345568864616110224969647972375724250094869910777354378356590427977477065331862224332296947200381901791625049228305840405529409521903926795085270098891799202149904492766402399068773179875208028898958968680927155728411263674446531587975109271214775000224861607513038072405488239919838753224909915747376373755326997003512582773926420846107506681071007434141961787185357609450659756136920931749038065762411227038044192213916771357604613140810213502658098252432121882375193980940008463448575644167352807376751066373672085657778373951973159848908704822058886052786935699534476857983240826833365098329523291885196106411718889226502397342531647403512270786279533249998481590976385499094903377787422627536702019679359646042322136297008569109161313345300008553679892567936561805290105503065768672571941289364949565621287213495479931221619697683252428623581949566980565544451985995374677929769752665954019387457135015567937972454443282562335787995633353933522096382888303599382440417668732742886941446271224718857737644227336708143721958935897035304676053580067799891657952978083990674075180067309845890500573446428526464274427455220222880385706034709732335909472501461201021450539129349874137222368057706161613210446768718652244353149134465137322396368594884856588046451437922818539540080639442004975614695091447526495919326010242495790098619772046520379916226368929653473517104653253749953116549875080744664572652985790244731106454453637243408831010268798856127058327711095095778360134315870883004988930815359352979276364182748481058770502241774892428810496127442622078055342330108773174897998262085312992985092190771099392108279217298849909433894194202987913800067794893820062879166863873315817380651002514148591044071544028076623790638383980282461952261099165745893981115579820085097400615355167542847575622807018691389395298944125523680654073732067575647519575144559786681291974124230369099724331596254253893182467055839107481431584209629011773030714573774394002625522594853661095816653947926987328913432482530854385776741410668011032960099817078157072321643580278617408926060096460724696042731778051201629955955571683737340161389611664977044046924751955851545722371340267017584721937348348364932087038872667329742394782491812555888523408520893565235339897686493508447632602370011618667989193985077923225424223673251702415799589574552913431628247429727897080090357886527070396905888861776487450045218603068482678444979725871940380684578636828756687430858396552207158704598227054627107254775008068740086013812074413474117112165605485744651535332317091836913107846441987865531441196397711381030306350627039455197937376120788300428889376288603917253133199905315646359684929742203225249668492383300187068962095417337443687423582079910619315100444897459154233462883638360583987034544749523182607902365227699201039424181031708179600156120772022669558027142130927263851797375642928047862368826123101071417398169552734339131534887918663342292157914539103731141756056496701443266065489763689692745104564746664583775693425273979408452286349220823732765672437683238113662475195367682670587434834635041683872408322366680890218545303766348589942278174397932735106694566654960535171015460922333618604773879623836241767932271150731698096581663335858728486846330838770384033938129139774224065537363522100217163119498978801327618879208563226293745895085397216619485236837029413423678073940307088904877634608696315691913606812584935521472384283256356978006062728547865823072993901323449312311232825096132809617095477038295632140402080602511764339795603194763708196042110056879670323058412172617931559147743581860179643834112707673367234432792584692027751679988333782028144319580788008732443354974210093020445893976431436729684906573345531058164856079160824165116704407224893809196306545291210114200498278058675870526553982849775695391200354759910589827000730671154017134407315227152861089984021594738964364568323038505219420588731703371265960591913733128287089813019045282443097502502438674503993934058122538168423159768632943269553035410497489291088852550035831327630569881169855907739537422083513010391681392822643299047246467466264478697491629044528785088239963617321133405802933960100992318461182559182822069251590960392831265654670419335750972705480309523448071851317398095435748165567363478104672058146660660019945699468577146830853496123304024650832300343339358037227303853570134719423056818532966776777354616862691938859891620503977768537495524919368635645406061183178336383621218251902662564735074582318438614275362525951200314281797685592383952443580605406085762358711764592400216816005499969364932164291707108818237011961277667231127340647708581480444390713687145969248859830369721865211545260487196138161086185358267306178757611293587569386434617531106708052792639135822795433557432258670065864387138532732222501726238540734725382085445983240770795200199075850417762774302823630212891462195201744243586177615224883559067939744373547258670108739633906727395768881490157954788808155367625678947154367999015025080038286230383857007175081303770443746297263145412755562652851297289216507507617720387292041520933034586556778849962785602281560434376511428071566970705269692184167653495238792778649774228787797915544246527118750106075373387400357238639484388953244735235323422567696462352351463808379996093122948600046260530121281167681919946329809684463892626548652612024921790650540060953553548726784440952708094336849007957963551544995809755121388660095996028145216279558075770440780372717942002696230759763498616638796075734604660941232579332838813530303744821386678456576008265468079699162950534856900080195121768516343810006916584743135591347012978837973991738971084044083676630361085273693303012305881196547123955643345411733099341337927913927208186180917925911857631998308626735258020229260901633131096991135026496186093177404063371751346104875546786749573453906941810806390645839763368198823845370442518416450854336449375072473567569595839759937971609200813076072355021982741261982809032558029757321698192599650758058128249839799186584777598365032435759056709979433468358450107779710266706186714802702818122255714772521158592494024413325057254626721166584392279407876310158549271390038714168627409840194901868937719341950499208462519819968930274272807188329885699751706586739811805466165068407982580263977079048551293202334216894012292312027989639844459582052635378321882714866174156641799397575344947471491999394380927319563096048256693610143915198886777057040936107312160528310628989609323409908628994585721910059558487221013601088500224359536289465107843100110301345724542858977647599421144212752687108360105871393313526917651279737248278104586535344446985968452169636060855906126209232351499433434339086679100606829681168333265179481900561808417211368558533433816866742212531657758393188362493215815225800811678530966335852245619852550809886781500188461964218392847297198803149572709932781589338182293199414683718980287867366503554632752004092995389590395708865907374389564023982220763116970365969577220090615742968015128728450008233894815032930085456825717411847493988515158674105118804555511702757774656024066356707254925705208379527672319096917475574297523202989111410322693728363194824101123270136699763036100832034662764513895594368277173354821909917288967129256404909399979981147489214520270296458098532421806649630111371766856562884690359111091238819797183116075678030418035910337353942501932374640029938406899761308531796345638139607420501336312278953514859410149561549440799673269659983606240747581914772505755002701944301234897003728333872183363720297874294693198309582799250811855869969932082370872397598766036572758922206191323108819416958760700882119899705249398752865754279776930764518673427577638401984004281051896209697434471504861347188550126319225000932960705471222165523194968818151370606159494380050021365245948597787832037092740033349990568312276101459755424860439373139099261076843857639004933434891713237774653137267550879780549816561660643996665122125615659849211489160668377532255498054047787060503406045837907642435610252118048561817955603317689421438836088928261311320589160613855483254423340085756384078186941481090867804023876167864571162706973071873858889513598408531075198082001841742200616942852636021457861116168704524502704940678017569813702018165024851095730198105322108457892085742322210537917590650264628759325969329984711145170532689803234045253819347387790528780902488264891556251706626265024243208827698023881598066291547816420147462234470686494719184399311921114699306019108728374083126807588923551684929311391807210991320006737898057700339449754295142832229504237225506438112747247325303455760498226560994127973823486542684060771114170007921615325017880999391019660930844483899527309460597401965298713744398929308514790849871845750230393240952772661145533977273825800326565366418524843634548125228213284623387128840158933871536894410742128051142243880212319770776668349458950070023674504554041919887588348226741878840768245954151028033494808058641024184810422009528136764896765356272092231236026485840892382935061269492861320516936152571234450025575307760679739166240725090233844100352486506613678402317184862889590876719273586935183382881855112690847564851356568651351862566274746624317155383558671627163281549009619864441791319726034720583708434097949026334772670720396579288894107352114696097303499090865009968799136046312843657179714189533882778006053956207671484608168295044938982610490132172803197426808518118294401345981679419364154894104071311518878018483186764387381052666304003607034694671457720202033457677892222169888308702994582037408142503799919727697219594000401044875712057944819304595263163649966114229354025403159815791418628524437964380912444261343385573484268232760468189537253886685344148781587518819671192922883636342612726980266916274158305311274501464636656418358594079352950015499071708112648439863358865721231948210599923340722818783470772159795143977413516899290539506284245637406842121117669918776711917662630670546025027593966193652141563529864775080391442221040369898152899075822322729990258018219292464309800662972070480893406736628293271623807599745830693348545094057023814625360271851967622103070218883021132263535178328074309323217284570606921611698652563053651297058730035210229011626823542797698048647601295690691362020915610551921425130852168743390049729810893831336825236807169999217462577550848468762098472460231473259342063594352469550189373394828022090333535911811604672437090789459739363912385188486184314834762552316710726890986095932886408664201529714237208354137789408912458404348280021216161063334774308297400795014870401623446843145257575070813415260502389839077534671455405310325484753723223930244281223033293275360261766001179626884709145918317530644929701677961072597592843695083984526853915251979271753677725716571519048141038840270492606576419003947992211526965297658995994954051449437199759250193860030726477737006177031000060125843026001005973936648779182308971130429977376673761342843718075872375320863348238083701593308011355588890224590057245478906414195695154943484173534794363400391099972733590865090775592702438867782361248000228366388291810822901211067252281269281875891374515868288630207199945994711642163872975684774002111334160882374670246964944500135104817124869950568205896855517801750751226439036359942512786927827109343103733232479272850439385809464010385156231637432127275536850615604206322599131426287906816036453198520725476078720549710743590597964575325436696688409837810961089824230943140514953662640371477947596720983504068625186951019315399595857004748117765434487844919282181980080987977201921716376837158678663896981387445262737059195462914194557148623763374456319669007014717576759023873819869662150144525596170681209180068720417981832191023151163771769451220327476153420309630471217038780761771678309323499386712819778275543767900550394477838634226958267993602359161823880021978998138151144918931954601400335657409392813734708130208797829442773633077764284852761195524339621444486562272147023567520772466400010985475194012507303510842324080131642460670862738314490602682601110556664224712640371838210480445239633831096318131927561066542517570665688845728835830909757169285947032842167394663242819090442583195721421401573369824332196184597733893006262973852335940784923549860354710941025299418856235064305053669998742020168333172621744836869384364946583622078136330187388485159655674207072950989892063432785781348911426927993722861993419117657640443780107958483104000844733632942502911146573260989857761505586168771521437744297159066003578540387543714407092203099325961551249226947870676049616672116505911140842577149696839928544572784303583728047703874823829980502992877685819877451434965672867235401607874615811063045205677186565762776409612912069223963500592661628339187983162427947204838041071555649847774232435691975942159071206215959062857384020644343437077199233409168059427902650764090658009709280300823365163997183822752515996207664723876360176822842175196104533310801324334386998817413428299792461511212006104782976003028195009352307928345749327395589027368597216662280499250306472055471965484228279632071215107680542565383813136823234030939719567104349628764002420147106080039675357128003567403300277432723311454993401198034303313032394384500223604617272703917153235623040335240218970333228727767067952780972543734396233426164497088047402564334298135275747682110570376863818558240287041303215360794552579569199274266067004194148886226061593342170355011736636357434123779712255307211027901047529515101885719772510230266345912687039163005912234288683088287203332909460044624949305437890093733275705998294206534966337460858773147547792498456831004558461041106279817828088455872818805351356740575182864975237891331727925427074898544347264558499678317351866155825815041438968371397282368582772148628793533981819222356785569447466606060305448695756280470901143261970561796004055901614941744090193100406357729409336970048823745720148000659698101241454640328448207016185316731446049404786670973170688899261426417160513135150179504281575941358489474743219345461773024874344348931308356553020673100569491247741513411909497650878409322959727890913544171310479909505129410544049791397602228108131748119194101715853400417178925159255693382186580084349668684865749932250888521881351601365629803034606702101778660288566265826511416645046039850436516210913037604019449098053716819859692173618874398514023844457777761690116715557298671721993272870480119270745769357583209140525514857653836482487328687770479226630440680409009904056089683250437158880314818716308464744742564911617154628913151024980062693221872487399091476564966780395734007397372631381836316953752721008088868825452150326531725522021805694937714594302912600432340263766396657019942731008074418570502662112664735283495837613519244824547743218774709481149047203789218474969413116307825513382842114458017593831794271505699139920445311173458857076105192584041875594825972168846774523389822761701975522068224543419142701648240408227281106646599323184887466609966682025176717129075745643294674415838659525637838907932492475530718330709895051026689561142697139208037855115326138560330794698600080655871003602484314082877297554377951360034894556503773620309862991307391741424687424569187583189842589674823718666435697520763334394446497468748025578293642024014556737951448968847517836627245440293516124208410384149143013496849679922644122630837381726845027380835044641133465235698603366832166877421765466636400687772187501615879730109647919421150677042878200038901616125338568396516949876942375373688808204533741542249517136527654352207361571156858573719467542991519123951099360486968145627260981257058326262762094833689217561754304843784218564716297000600797114822161211031496231300012714092213069117312835483755305867426754626824668346395523959269627301507947921064454892984511937507846435267392672887275993373733988995909525336803790233098132410066506310844584737824844073448950555098126581149745505458058160830509777681387154190841897219666150440995099295497509961999803775837413114150508741675229251849434006432967509627095596420218479232013893880986061113606564062609613441169357410661694936612039172069687093803989178129058772620362843745211614678469310159887918640966709349084846724927132060385159793559232030007483562399139121760689308872469596586024917893627061912639706508899408810544269505977806381491459209667480920695953631324940779774524737151509798477267935582668210886481492474606119752083270104822377420243461924166254081731812325521641021723441233748440399409523036964302470562573220900713929464701181030044453781761934550929795011212972265467137024265850759698495520402136226252639700715420115167546848097542247385791945106784762915752387665808492572266682660269711967750123726810081609757150181610836294703718291579165620990460674404569158481643260801218980627648340490541367043551365119140944607299436222054934022218639746392595714287907586965248714585513999673041058769313599825532704186368284430469549623157810417136170689852537978688299930749125952563861699577582605395057870030975317319200518630152298209290148110560356379920470528115270440149085797749100581223254293467992412370939913545535870807647203817222946662802800136472650970021478933574617826656656547332168814981080614550429512204587425977367466919638344593178208203124119783281385084829536685604940761496965854041650942353215554575151796412602801973777166981287150181528252898869014825213815282642588310915946233131994147229535102375571864147145302644789195058145367289693518832167367695221529058829103918107348648207725253330041422466577568413434355473046327340562576324473794396434384061021342437344021552183458201701911677435788533313312115489070261435761900802713126497351084658519310660582684536816280572473753995997079065367872662304472695545639296303036927821768097670702092563798128628348034870842526429667495159442213120803245152785671323331356235484108956677411012605458195847353733858253326460059697228695373249284764480142015412974688987224247799565478672216267715076097824692317723893893029747228240540398368067533395194195575431632951240960383167275108125198635533156369770971693370320670523868883952677491321224234754816522677315717079422828432165750911026296590407026411551283238351848043935207993130488973977542886099230937303153893400416901422862493882859645018605400880817377112086712398377672869614208973258282300750563029493777216255782232658586366391898098983903035231311638696640138967675796150291089967166090333536863530879323743890350032027781997195617742406206651502519118620836798669251680638529005126026563603643659839680562490911211954338238235408660447334175546510472312164199337115275173996597611221106463448476187355612767005835195090547884290631710373735137197861782905939490676030135194844364123850109883190202329337241733292889713392745414997435453537776726863619297796360264008051320346192298423155166045244683083350507196081262694087552445957179067814965686931985961256795889359661507253591097056241836897817720244734843334529884738687141475114743189726116598471358800696622934071709851189612646915334958400348905543780448941714411576183626687993225872553342051568728371287937607809573801643286957930829615658697825524918602828970497832369175202647870538019706328294892850793428519571108816823813061555245831066473638493959845342736528706259388768658235637957961309539868265391598476175112831775171479804808743837445609526959629271489666889828438156088039066207928372197762827524449138445079623304635661043556972202802300582364463277372202557403177166445792415387081266122530681502230322965020800746862798695193746832340505638663768289569657632643259712396952284688673105240674892684792904865103223076563005855139516697123851807129061790747264348575653114158560742523762351616058759600145591601017613204705685536066650783984638257984895780734541742635026871236234194671491533477003723862399557786148638331593839004179828052172790273959683936090674617716449736784620357318134538629204081642432872328990883906388308389211214575458017038102860295011921624006607830277946141738898339599794070889440053359673512129422772089194362919317817316697091053430848983613374188232509786982953792073008920258669829162996847961213203394875995862788999671741052274611141973805110368145463247894274011434662751085619061141132306955535714924698251100587630704684182129864824796848905885507375143181798706018491235267552470417046439443506495307145986621025835557582861456650979262893267157668602276891221281337653739092821614210572400806792965218237847648415094392829914656726064081913702948543390319264299397812368829704429232229680855890127593889735438920849302177232414813416957814887860229170382010543449733790346629600216818329964801976972714169058152021955676697771180420924873595157217118581561258699314038540771783749784706762316928043708065151608937271939881016136899883785201852964340271935019414197437504290852718469347642926489046397844930672141467069029195650475520537740643146771972071050603822245436051283373115368128447838468839528996789261194481418487843832356304709567292634977433506583613724486075017452580804604527708519029901974215752077134780497599643012138395700153613611662033468316249586001204457741628525429298382973934055190634818145825517143519131982240036822531836134284736956155779387918959477346890178247850124563174550715819620931133460024935964215851243857436848133742587373498046030140136265246457893294423282727514274823194554220789927378930308503849883727007122060407734313797070416463277189941990612344703572091411446383023969545578668536579649375943997841621277577319601578186104100057714882372028705265713601266682441843738517073197677698545350714648659018983075510041939563305735466001016851248368440183267412590541874690692166843617488736544984247259700081485938743783806857364629046313318369852684363443929523002407327381909839477138649449919639033575912975146033311216444648321134019265905539980111172440293862784736855464881855839566211865839300790480039965317637083122645650460137396642249898356877262256667585194133171474304963132147822381310428448184063720640998774514222673071151309670914045759057803983597059938688525027476040986103476454851973707972185023843627968454417825719876971644966676679667837797992958743390535673484750376844118689106398940827253099804833883428460178681964930549982720736678348893168404132748626782426464282908293075011197361901875329693500189698934196784587281953015744784594258322356800857886243477064586645370955330161692921802440197018146609159567548966676946621338507723235771329073533435667558211982013491523176769676300602719084397794462984100577055075408543382499870248637247416725948691823262386656597430621049514681648640580566024255781990444926315034245509674286436334706642733924353099801364013176424241234542840954501100299418555788464207027659390845814243650477602388036154573895598956111426575536711748246071976212890490271054750905787026491600447117654638667799919172476067245514211978436818115032236634101147262010776536400678337353773315139837317823849661169712188809842346239624101618327778617191444339788719174870232998807877898444047056602316012223404259528491576844110220760494427656601614099319872756373676616507443255585689445467453873886444595584741886476655738280923769248280323013408442472419119190284083661857953054779843046032548278475978652779130273373217561758033255750731857958931691936388360795307291116330752388761845218130187650032222068744361002899248298986299267283948444519832503856568763214773514186186124875280475932278438665063511694231251120953793606875301223061125844130927246925187426341359887677196045869395643895589045668201938997084560651348116484315243550791273879797779387781102313444862098642033515348729670089632519234515228158514400544131459407586035984237279989535558554227749289727003221730052327826863085878380415375064978883550027109711608828538668066283100002474463200388451416174252568434049192583789362020830997435906691086988743472083965030543320879851235628784785736510647977615689135658203594180187870293057974074073957297853371935145932106319435573422296999180569182652652982531659182707272183721225026220736440918578062755190932766327134050974786679053070279984210384661880691514690888760380991673754612664636638836402987669339548835893828926260441862456124315166747133856210200834976973131426133477507980709162664077376983459642092375726112531297189558329482953492863107763433436238256557141692734700989376227816274424201385548520209021969808011818748529338624053874096041046339438834685366533992431797101803797959860081779349509242820206755638260864168478318902184346736159120176967310117128646590379787636100458973739462587120256171645591889537491683083239428355511981315887308941517532207003303394749690788359887544458041886802259597084732714664617332936514756692520400741849391904980786138076727700595039820108805030695015367465948940061669644173619790242848523365907070615974513593949191521227528455526089218370210832628429501529822281027589558717321170399083921437163157040275365067937150694632352758471592332516735301166599544710659250670545259070124822460651746161682207571538835606567871328192546315175990731767891140592513861997781381331515457584932254135957650764389979773676161479165116691346710815598525053389331839087139480467907083794400088138724962769658857209206445379135240013349932922861131576212611521284252560413271508936644642017712982910116411171184907654704037323670147102297049846622866672765645522970644410863389518451342820304292649341900787299276996944116108229889950952556365170014719445852113694262370374059080359839886344649331188136113600927713638814067797246643641104422624509353159674655844367863891082092736602563517076708640318752807175827150928140141399157973058198267749809789337140673854018583138223838593614417526264485993979937485989000076961474374964524142137330027984346362890346067489834370283677512691917919169330368566204590909550830531052614789225414083580281488288495706602976987776598589056125953653629866933524547725508746832781322503366564519710493807659407179707342958943436277785960944231379947043345943879549221503508264494517389237296691257522566010742617679610218597921348144350101848433214740057468410923278637303055223502342442791976165990413629684034370719487651754700408674190247902674238136389712613885022335911028782576322240176712183333675299149682466149160826550427352741101943683551339482855998060195371434786378303160251864516793032359388814276526391614644940386770102006999255194538860884388381063258951522415247705241778547657006435412926432800240320327856363459243875755859360670902475893830969962267616345322176837685950276864803276740717012909747310214626390328313888968061872097488537586171132092238283132189254791925902037304264071232682267937292820667661957072259810747915102382539065477893040121041359160959533901715746214068130110135929358508588018322553218779811148720738981661007907216376373175313013207186569865010064258859106694815794360259414708100274862578174274162890484763392763694724991508125531601263748977583591433831289095792703234161446941628713012454219727478646507347586238241633177798246836680231070164583244585324215076958087467405844713234710935308016550201093649684525366274805772053275838926139300014158474409003102604741434130483202538457328770247803042209029449770239039072633987274285871129684919850451404210016990374679352360414492899706644526894560404587182192639227110990429929572964560577755320516280938025109899649703910790783337663190821477029858035002902982124946539171199836047652400324043886931507554532729892512822495463618059227614632382418351096908044738617791899821784311650196378828247659495245635285410827481314058492308669443144159521321313026894151021733176372192533598571210533959188499542444808553437887464180055796840525485277314603955666647269350501965641999916338170625697233686509428640115628713211214729477272415943645930285963493199232047764342015756488965965159115639783010327507811254288915926876769190472377972442536790804387237883846248311898770062541565511885226388481664758555763581013794584473876847082636456832572246143781452757848316705386409686875991249967336296910761745647571329892973539979723055978004041085283812597634163203925853308455779832065103558301145526901470291867290308373051017996168014191045312190584213437824312984156982727666657657954150399692944454596190010835742305774824269735213712578832146993511108108665965730429643910114962149331898110633131221017593450841915940562869584862264508556588469176429287305412643842989165770219509541723283931232924118672039361392130868740317289726987794789719994567505630645264468967120677014987461235613354253640721477012885708175454624207112055639461547101882096710804207329320926357168697243666133513939945921210308600220900572603054436585681653675838955868879941418978210269345177000957341776686176613769873251871419559017119660602453348761818192286073970654231993995132849907003705872773218021183015922978033938302952702961440682900500792119410998196860229971129377609778938932607060480075209611965632125041729718530613172017252876513709365869816829113338656362665257880624539485602046654348019855664397476856212419605588781916085543835405954285682046487033831652582332768725681441741223017582783181057697514633285255332196285631793197894611820839398483169333213740270519340279183547517112232156770580039514079655845302593246543101677346727150506778460620559385965082628053114588430282675585165849090844307181940799091654789625119572914127251377223427088735344245654136182159340014533953484131160407156135517268536128651259569774146472021126352479448579089571824094795049078715453673448134940267876956387834614152043456038675024460308110634443387654709895425587077213813501359995288350679913926058291970915563561195911140694498514625667786648367727304949235285269072684462869422932560533576309275581197570437739974983245651307135136818998704154560248234421018492715551364037837192183336767216806533822206627958448605851909232235735768550530847449751466565921939154346934680006314046542780803245247447063410810969066839212002908252311685604743848911023192831848877069774929944130117011850710317043364172043681604975073817297976361882998834060513424802494835049118793950313846895828068756730878392389796293714757706064315852953289367066495789005792028673237079844663536054709491511097536551979758715924318675357651487966205345756610195909059648843308484507599826936685835926789691291721666105551031372278767340409484563992271439397527804781914046795760466852439129983932576218560282930396145095236923390847625780146245005092571032549713125041447444961306241412323311105991513464476839796739175396991501917217946038947443490506523783760409720528930010308864388971692058265576959050922412461278603358121542535038796195233290256348628141571019826049505777908747714420452409698972418468339010005029869787855602079487715837902446938463920262344943135404762104906082324453540539182950006148811106177013005507416553512458946118668276312830188305646394223554776285617621362528876684349076630515289922051438790744923388823794355053897135455745117684884102282636970920525311183444170776076998011623190038696735903033787632371932235684866655688420744435123093399924328684166689041833849618879595882173262435768941502535343873457969288819384379422492956118649436529638569203397837028183020289951983102250108510878409277851101046307238130442581515033309455894539352097595595082460126206841921903193330466314440489268075687221808292360441667117055440835881175767950752788659214299306966245242902331742858767720036721356917638159321906457376724583307318229597834346864644939259821426739752484839804485859330811084498039117793219248003743634600068504328330939887681953503626443310783355674379937985136067809532519721272570740287849018979701855583233857618026365965184048428239044909358353041221325111080160438651226352958587050448273727929637496478620310417852670894613294115282443940079691322560376545975632673153456400585576854398391363570010090765533010019983127812183950478727431247339641267955086016460360217204655520059440678134156314884659366023543475914386816404905736139866990671887607986958714025075903379348159334408553625806070889869109633026186494083253437512561756775389680499435040070555994371597137033272643942946494218627972352669081689390165323493956479651186754910205103300263163177645723259358598436963609999437915002713726428149222138638335215849833839459043339065031106272729263823091390996450306080323886921506882189782450245446969293385045076048608907395924058613181571544583554523640209643566323460919724807578594292070806620979052522980669644459959818364569034005165062635524846334534545558774160861145186350855194902877461455963942589157897080540371680083326471332506697122518014235494165563351889860195357645271912838879604937671638168905654802417228723463553739885932071895417535855682628073211616684850994032145387831300961752019816947140310975117514201956968324040254274177117831780515396635113419338326312222004327659314276516587955047731515315876587470917175036133943355065742646002386000947592259463889153941283271608317716882146325444916545895301764002314329060436526131553361224076320049370420081053802738566656579625742773832027265996150148541794687349616727472115526886019690381841874502450396831291639752723074048529971709637002318596590381796788184311385320216898119356076903240826395365686847615404305653465192057479446557141056038798546835132832651165801985640165798791840814973896072373469192735765701429686404465405363875433858530584263013511575332373803914967335767812939858826855351649309125563486391236588352476395726242990492004297436599779114414268521091420674123377524996251571158849451934701088727683066431022227525592822971089887281040158373350079716215517831444904525655832465849441052269269113011215973530094168723370926719939202832917235021025034365514683075739553764013081549620359722907903756561573831761471308271187072221316471717695907528377980289259998689648089179647366011454196628331610199344483453002949788833096673748973304466338267654688453291166206251077114882277736538094909576141980769508973118671587235564730745612163839332643031249918065071277549046010138928276000019565547544198857096701814340132241633647905655306782213925417761028532932766765944473070216890702435478816911115578926826010252580950383127830034777038335678186467446708565173170050312692507560425357739128432873206060475967756392488120789381132227549016996804338508194381612077820407981100559505433811352010215359979286411044001646716669591431592409566955674774164093430514133779788864963408288703047416470880598833297362172123449248880639264096501166852029660597507496829295928680720785636716913737153184574737684126509898609918023319630428524276603672305003337422855002413534358051567670720601667727565059695577621270619515353082297744291158197163570786029777078012209518882812585691798861802786772296680426615263320721902383073658448297719691590027919347181124445596125323699754855933567711635191841627973142316123410080847407837885895553449496465472131107216641897865351930271265011147241645388454832477513768563556202373689075365518640783586552131833371593948833885318657752875571137392673107027341752880076109239451520296573811296792832015946959169923858625143521563216021876156597403838254343876500346378700907186050442066060603666037742651600454755331276395151006926483017985522357236687273010499475106120140191291461671181793313377909718616039925986903384689179420560271927279293375392753307448745371710523778033128786292881625966720528319492946235123303164172965175832201939700731032249750350588777584212427307705869395617434239171493052981635207649275314213334678218203411977046121840189928989202539236604725684051375109987574252255505462903895892261159683274771010856310343280610016535187427562656908269408070112698586871236506539438083995334747216785418833610893562580147366901236192125289393636820187021693971532383058658930063996090775220037107856061038268334661585141656643411364653285391858845864684960672500195792913373547497473049309614829093787758210020772728995423836245532626741407592648523346896343686754937512494684478176165387888039146594602411461182273710154120825909327423572381738013717221830340508244358256655168495278984955602151891755220768124856675969906681994778001403373433172898370618644243438614517880766935177854738037986721406472845103827286214098709226875561743638728328345023537456049068271580174921314631844290510260163543571110990707671865719761435956062138725162932901477085969575217007625458095319300644867718341731595547312998272549220573574533107456544981465215497185802658021276307264151781423037959526127538892217425307930771075546316201830065294359694049078297651721101080584929382609120414654405152400863963227615166963227032295439286245719654423760468393186411448918439343602096747006514392321470802933051872207645423645758430973678967240878784971190361231804169133939119250453480706979357723520857171234654976605671862045165656086017356435071921804687938735585021124432989669042563231518990133312465024661716887335431279309495415295972300766629921177514786462475801235158482074987467231151811877600872223889380804713824997872632444368272381771718534956877252151285158247549742956810885373243152555317853380525099889267421540598084364961949569322205989599277659913940581879426093606041530358887480359074760616367348451371646968242058141915890980433430886909095173554171621592539205720865665311512909366803098616835887127344919235801038316421860118425318617368836595281166919447203084979524377577700047211866497265512158177488718053783822933833261380956024846068081417013988563858377173594786303589172127794720934080451697554617280382038526129519675257240977534633152094315485526094164806354192149070594385693798498144158291317508407314747786254696514696228633432064499486432740020235822089726588581304204098680402580276551823858490916031863542603593877814863351881997740543214390833301464502156389379131481702013467109727099943125206350464743702070594238585675978748132204126104844208629110466996173461394685904016744049368946923746514746652511793434203559832266087892371511892850127319355952710875202445781489468813687667273803020066423201717962375124569855599079262233591584009433338529750104135630328248280164165563315559480433936448802740952174866162472767832632562664929425689532493715153773774321206235424451730207316453340226067013622156373268172968939202590495095642172047427362671356298819592395639772939241104821922927712654450574956489927010941682345318063229094798985545421150686450700244550237072127845211546323077127385400299946827070026402587161023250884227938781930380784912390977739216016648929329168267689555887274416607152665853488050045490882870260446369411142268488462848689150066203896680676659722533234978432506976536285386885255921949276826690911684568410371720319776696947063290544958845696649203992006360955484148657431650403814740579059291309997609360386127976601181799425309921938064396476735548160361483790424838033621784665757503796646614818639901391559718563585416689411496596259221089443567880363006668400078901169344579813165570803135218964873407938588156749373704693684054652709733878645895440259395846847859275851926079091076663314902310442177155041053602915553878147181033551362871940312242015567555491586532026162154973690677992676129299596113203289479424989438951409416152443383816024278518515593797421049488921148106373544970081007212580274010128928346059355897924460381562129700796873433403079995017435268936917900664042292662571332547531917026834969314295069904335844346806060865548491778415314010810464361412532715272971492645601009409629474773815948582611870790124635418741343962702033060120620789919637635649821065067434273653530053989579612971306910698199081638334046940412379217492401071451703879443107991122205670447472733918279923328342978700264017863365216898009928311730558266164546783150955591847261977982766306221243597290042794618629587059667843465355736734342043014020866574716365648465218204764758541623149799774750151774775930415597192810729340530034646000362187953580654843823816609424128701663915131129760394071450245930678884071428266901779171572939768724530077808138296110419050858437073767759179365658639957543059947516386456689576561534674377137661204337026412292938260532188312429969019925825758015470341586745318185785186242655770864381063752715599954445910075307977076712483955456566038724538666024216843204188884761662627576552443345058414667871152197361473906214140365229011406512940902779935607918661833992999268618404925372005244253305094024859524153968652532182578015094529664889940744127684293015124180113724800615717666186234120126040465015578986062434674712584011504923991499089460724429546381660868535704741469247821188917165059427875083093064605393262100981922530407533022364781709812979860015242439335091047630225490408231411764796126178787520205863255075355457868998970614617866109643088783595713407800376087022695161283322904426617376480414145225867669394478289602919081292309106589265022483748071732781873789034786951756704357953291953986580985701789700244747474092623305676176436316252162906691087309351202346364790068802980887648302890055762090041463541993196538139306317570512789977188669287660031554396906923876479186857145379004409894550120010759761472367676305752055027848154123721407697995197142036537730590444254432488972624484295114058827008179529695104247618188256885475970988505836062922647151923133569167280406422310913164687325731870770724362152525442589049491759899555283978678081183426196146243687535360629611099161558257808628929118595859699828620073645434578079743173754894298230255602130204532319593919684686442637488673307528835155761283245145328127889123052758787593502943941692947237722415855936365243977593108640997098711713677411092128514098466833560305388884214318558433643039111186471178851048276961365060575242055959662974147476111117836522318785568796130039726012997437042827616091540345643576691146585538666175279559713470930346181274336482503515039861243167773840118679993306735146246950942171672062445085351636392990362372988016201555455921909731738156785261450160009502797220558748878227382065328099126193152263180324791127452705766156306350452788596439431695068310746383572945606650859452679495783222551123237817396755291600225168519655878033173896277336686866787180866021013125608213070427486898658797283858706499534544013080836472853392125194487052559949208804405385442573895341033426307832765606448990847211716321959046866283526788056556295907716109391255282205535889822224083060307933881599783073807704534699841330731046282674252778972604732355290306200072283937975403851065932909938980131062862780287669953065970811461454994043855525556040830863765366819236037204850993198559304502962808696784944482455208378306350889965301181533160220428335397032016776134800625028284987106655914851604940906825272738601368867236984556846509098182670060223014839744012333681469444066190452434797189138493026528674249902643930618106991981626921960220539685409239609000182596266282291883750813552865947543441479097311625679637117350525233408636628678462686828612225485227214208861753568827914384227301084666649993836021175007563789286909470095151738936489689774863205932314305406429230099189784420076058574128567111974760575979813397486244597800328228560068305986850228941176440428581488838947308453114933553608399770439813755857826786099132428757319354776622088174626116405271461061490166953460944508727028851212891180519040136333431252588051181461186399275593339572989880715672161723213998166539036022799553581463318765318868714763910689672824203684278390812615953029110729336402797129410931625766650983358300798846396362621274266792553477744155624343122103703060858308953526880746183965731223355858436551894349338477167829410014716891680668783471680411816302491538884882869906762464621154168207286565184021672879939027494665688074352057668582829027059432741191846693328131910694747596493971781298902890956738438626186130841914153049032853553692206680676636084194417098504369202149932407275720790969449621071117238721954018286273912347615731907300338820745230157511762727461908445827577641631660152273892602517530702327279824583071255597919234790053995973937264656620623874788823985951045098066757517461468165054298713399839697163720926832715462074311427784797953585735815326259432550047718542624784563198450328963470911623812045782933123656405256091650211962535472694899402432854880880187661404458119462333320557424884859831341624638560988012063134074829828383840861915618350970103241640753201770888779063705789749121240375839343055100670895413655561950769776261873717191016284255851418706125507983315853366757091287617178838831645061674617804263603865080987575299334762003761298104454406180737835157156427223411408473286443656591090229373341559517444132204589723366445660704269048052399933990493602458406465359256604895264681998662143668115378454457563165878288862834924114470577831468265209739218205997995925132331841135130044154231215973215024301779710921919170541339698196471359500971650509034161033544989887080697519652245729443048731791719056668410953971186487894459005541702133911743047548733738892990759217554511209981187430012109938860586672200224731840048175578629468363813773392226180215985978409151170067132965267292978149761752075293120336187314916679150032885789438877373985413270355832009793587344661987339521181878712646851908191051827670005352921434046497303031375948897589853983978462162006292346425046956874962783931303138404963961888333976899125843427968153706528200592826735197567331955422142236468338767360030389539797211647654635696483583727868215390013473522306970469185743086959660997496309340274868318538701337044754132497776714426045767997343998361400565266635338786991457220405892983604855037849394564374636475643991528031156897536939454645358123998553963273328309136127476937021959190651196165734060998687644472946816001068882833517861142548478514401637468986774744405169248389760244685554892723019963693926283045727344484105769227976757876046603264371850845373913021211100502523424289869414735536904408115941916105937565475716625343088335374829537675930108872729390535678691477076281896196950482006721693558215021534976778553048277741139901242189401103015777188176589723620241895908887711411674707683878277135077421686240360689476176099831499759378941013017444456220247409672920564024163716777822365928600170613947319449459513094376789387082845831800136084063562527125952586778436987503502253534786726386421157261865523963048979772748826636480145352473004773604968230220121514642690297982905887631652978365367324730825293046413928646103739776295838324017807203770888885447947997394160270837590436753653624521826785214202617800711468503292390139948267079009784903537349078100731772483903216499338836674513325062520215511199746029830802292630442420871223625882954733336719323335074339276600271013619537492878441440771584183892341079541950854882191483828927066190650376119481464678583842790825653167997084456887862578310587765976737575414136638146089891323432132264828277763908629570748481850447037920859338498717234824611212200804508573284383659424574563618616104764208614187646302609492265161126512618635217779069470943242498537860050488098955038149551905511131166161378449359280860282958063116230853248726606169637112730759021052110271039139704011230440299392459701358509199823876138425029288753668884800164911518255489667747354772997166970484677547230246434065790479360539396150213286736898126054137688725026628627197068847000976153058440349382675056601748697895149900793880832844192729683456151762899729535213566293775609825067966145242378834327792569972967025666329167989738843818349407002368757352890144379568092513416032247567358868479614851111170116785820952653270376398895690620730320402247842455798808786084160382329433031907273404493985815869436456696559369338721052166201044594905086554352623464575274776140924277744878094214546516417202787037485564620411210110030251718077942335436917335585409368153555112073846603083293702012541135197857328509341155146846130588854927495065318180591867458809190623603462528880570038883775170023550339409096185350500454664714599494215347327069545808995340847880475921970365458383705074919378315496800031729632440118519206405240961019788404917154865512198064760378561215656569400582417530112950286498615124507299703328949287290248287345231480670647930084950961008922152552228623896540976967345725559149046287176587575764430597128000131484817958238272522635284948222504128567125098567491761280082682902654638536383119012961436313164824748710261099921978771268420977604277255011775070400956962489394089080493703209089258708534634408236770743820333605237875721551984812284581637222262332009872559385887275673247786423072449553737789092689013256457100473804482567019210945624701079206246358776481449557384889731934774079230595053078169711159720237338760087203099616469499090718391988803570137980742676116164864052581873378297674344586290027649097337276985879309514824172081533985941531872427993833570419244724663864680753377195858062435459187327425039816195382148912445760923480007775077320957593142682718554274064899780283239375559306726840362476463379867341019069746345063019806761711292784375190097444483137637960541858495714775293246589481279001939959944734580053184658714194531658545287401583243248487667949917191659350765499022802510917378922721742591282905122846347325865025396978261795884730561292000803409505778099209378774827057176898650509374010254729873046445975306704124770707989004011087510367092342719704393658396331597922539438978752754174296497765217711822344425855150456848067474407643207451133895417949965465098659860806502128086257638551847125533583936199251502524803929785779359032045845023015204514814244091824694484251536486939594401952439636306642438314516559210055951094299371036861181747637664699899644863042078364891370543715287307880013871644247111758943382166332680547398120741117179895014096824001663808516313447422842684925748053269222152308251428448759497621856350732362675424728162218594259204885471017428672408147645309023425820544495313467021040305940371307065052700002042873200571721431891838547775797335641343908597559070238422470549518761417311461535368550903239051536024577801052256514902795270694427754419544186291662783437982702040138597887523943111391348998244058694061470112160065061889403425865248486914972249282184514962806404433033664841656364299079584117433703687197747245243324436699209173672659743150443805804249013576089253390396635446212342565697967792826583613699000555656848675616155921085910436869161209804641221209157633919074305486110910148101301985553990341484210945701950652365022756083276147224871379129971843441929976794044004884754539368634045794478381619010408523559968853697114719256580865712975258999374465758102105777285916237221143463761128893359396495138643202430182007134764780122001801999645292599720733423429404969399804672077486757880314780546764801167375148250521321368084543376737460323975178827050065762058448907962715362013097932309613532387741368228686552501887757606802416111596805391494527400790419604752920719812737239130971251864092979676755519900247682146640901692855579211109108804650345825319577044950588326460756637188824881758344353210161692647779193911904172848728007156248868451160471661285663136027307473890115819679876599767796484190763365273637049485470992111097911277901846770777796658392923078079878917371977980300577181964368774374178919123279777114205001660312537862975587524218140969867731626138982683553382818585014160498907971940226335339437731277536481178770184269042632270046946920176508911818839606796840087634246528583223935975617229056519933785361543472870338038978298350981031578549002857762115918942700166226290274925207876921088005930936496065808443412541124692309357497862884176814597742843293299889885912125243678120562318653341727971672570786088774661125785868842244954326485702395822573598443018708199648076613510776946501580702334265153615773568873455692720073152403681739025611101299138011554219616607458449528081513381746146614477744290253211015695870821693498357240599255724098769807992538094990365884213010486436591225561140632865248775992750556122937748507594075495440583608627419032282512298204965702447320418150768037359453087797269189904628165730660585770060543295898262353981102758661364189090340657423071085579543390275883427651087702547843900842836015025645189288889971613857866338186365901025855124576037830567729919882386330849120987023088577926815440107045193552073870768651522998685755526909785973201970254712661046875311528424406367981730678861813324948426376576309072020620336721093391324726716390609224490401115549068483189294576232712065946268563042187393830782081661149361081398689088071659060348320723330802113019913549403495601162483960634395943167066039406689878385660613686182659227463957651101211220090478716043074620579033933673767776049681704830996605780642758199296065579733151800214660906430286871163954699100749888881852217364939618091719915630058704584712075900039951059041447193932168463908819528183234051675752413118944397917122818262354184220856657742894903728917163426363343004867469355926575777846051304635619790666746785563201168956953507556651334493173858782090705902319228106101451177621848256119702678633667305199375703076193210296154125137693370902283208833800419656524040023777359809282695525026048354061042962345130971607757934332908136452231897003044693098126396906934227351647790719007821395157800402572636050189161331655079085124161871516043951031721111395611950989533044319461731815604311813194464220991020539024717043007659676149899966529886675737117397861674474527121942455194066919425159255935286895740617480625334826327145396321053729685339257011331215651772134354030605282804531327685873361993060668744013968080898689036251291708467811117279278458892580329804306621916274563229287227365414656814773277757323666945855738690468181376404995448690481108371774438508976815972721034505995391410988379152031203871268372128412514806046011257350475561159407031426786632313021733601964700401321324111044081864174769502475186468813303788738714027940862214375530970314196197002839422659348674037164400415894651231551714341052982017081830129691158482145469725600369221312511517079206461897023958222210114327266306840777501634388773012766350831861868745723130958510666017737730573184899724104842185341136916458128380946952485704569941810961336991398433329897720713578944333305754129179926850281834422519413678813236757845185507146558701864526341977679927346090871918236614178124531292811627268215671833765425056133852946285274097118088857073954105521592714051021469555742807971272514252025745264584282859911772020689627735275599143063245463732495846831554891751673864460276526367844033398420564024814538024126203217546070393845099606726471451744758100827063311323246319777567116271111557474287895727782177322118198070348852834452514141602803437953001846110210184897991022863881622871021515127702723564640303373911207039827643225366972680067121077960163973263923884360128032622436273275520363296968436131980514675537492595411298710985614985531758526738549442210045385559844804848800756073371513404903578509217742219204971475385729360481018732521232147696283787343871097058468261585991737179673769968879411729327657108568939934279537939727301279229013981105215456922105966432599388442953710648727160709846617352372469710435646177597751487338957817326248832051624940299441813881188356653572204202490796278425529052817922486559571992323298651574813710785777390243355158225183356143139850677746609762100225092376525121791445684678629148509251237349815175397896412526070190014906197969767704990054862629969378283162367026537734870706632848366779531350796844534211259370169739167216735021594977348387653735620810578870071022761451276260280066686430605927869113595309503372890502630196683566517200149958759176655530485143196382615463696422215224435451814049944924138773226045905071083949985706417229665491695609969651472295658669017758825960168025276930829478839026586514279194778748714021581330512721506337824800977765963094289345509031798834674508002808714221980086425504242118048003879528047691305682317974892314259213447439559884402621221510661658099890110517619438340512353070135104862815975966645804524220769281815996708153497818241953071532957453481589795961190739661614003640276517177646495659358785040209459134427845119669082639545955757717040849738537336194578251173030135854984568472237187970336226744865711022965623598083307033640749431755614207342901751499023586006378590555762180356489809253358631949819886077107508539955109880969116076027666355597757997494974029149127381956892046105072432033574679030994835867235210136846608546109369377850884127080847600816295417868420881739710557612320153614968333847475100961811386500828593414583238837518789200199861444286619871792597291649146768332443094873468254406723223410046645711712842599288083782738362357039700825642006761358058335594048329570127793803321969189906137104046050775572128491128127055903433892233228558106793776591760810960222429024540088364219538627596015135500905751062107560199341427956798752720334488152706783302633762719066521851867485441744350922882852767579523151482639407852441512239877655108175718280737506479217519149707359059363294146751992076030228799555418891369444632653226569908983223892001692705222469881884524078732356314398932370623171978897120961559920657047745958701286837635958642197231722085158085875624278354568129542028350599014640428388822997000435958873179513798719882324593442040342466720526042023171655634863274987196519971124218465462026413044872346354394719259078774844483991469163688718625832463507592631394395948517042374857276779931026540121557666012862914141276541114682821171326349018742334825950482230055235658150437051180706622963036828376944168194790846676516620012572903178431267746526939867509512288105180516166562675798548274775496482822682774304025586671283890612679852794493169989138218580902263506551633898347517504487314341427334978308401518104155346579737296305617989730281375115805746158560293830418432818866563682315875776375155964912206051158767779652793008173224179841694047005440613788755030579411411875408610065656309235758787444396171466994507381501814115511971970387110344154497758645773965003813877554667569973032379390026976594087985687911987693817133176399208758671719760931835061667363295553012878913494997764908069164466191514788144878954716784293726267455919588531942049918826597999337963120510081949434486905397150395548294315909220701944652638337875591984888000126341530728818464972034785751901306890991294817543733199522717413686559399428598660011432335223113946126456097385513788568215163020643569787933429926490750737400363945072185983451730034429575291271658776512253663694069668179596918695552576727964290871855583781139596450236719329463872786071195871901177658017741728800892860691447607210215722423332096254772072044588143113213528731110168414335733747332827883209981271460450836888250758376155899122240141004881972262533856729184153481721875989653074831191456375749026405054744009681987236251332531471077075733921066121098764608312857665557693008233040194295779570960993729794126317073271546997662636575910234729252816406530202378795472424619805935728713775558707319202966733188240369657757312340540871328802280083917167601982894015282678117094811243810076670050029918710114461967941281522143274214658940204826836533572061109122684697963160631059947850677095318695157480276281587252707534633040723234331642169608952871672558573040655548154239027630689565662539851366375707359328072429647033153726047872664626445269790726833575735850183325560227555731458221129830298002252559259673393095443705238360882292728461209969950749965365311466159399233439309477456033932726839153596472297484469522038158249790777122721759546960755782400418078403428082403203674917166120370254767136802662006223758482217059892502992278242333240511921472553381325978047468577612059110473205728856475236737600916612647451303893270046432165599187590201795226799222830378155734760680179762069222974528776671086228731816032336635974190651202541451365020223899900596465087121521082168264265462369485303229230242975739854810808691837220153931814498399819921720939071952611453088858345694277862272474867447338392621613540340962030387930404180621440787844803486801134407849919378159271517540648400245786515075611973871346488663721092901175791304793754043677663467184741729453598648993847328130257063266694398601218522612363278535275566404455100271593456241625475199494664231023924678047332186762720533412181029679596338996746700892234824686341895688881273566409638937081538216885420964838424952199280997260582665964668243584981788066153105282817429372594699747524129359495541311750168786353451823089086496367362356053597455153389290037595998097067888835888357916551103031962832485163776202454971065951494722620721750019714224094636764977932572469716015665890622035759353909553846195661133302893648079761735465666242919129829571175214492879092349595059898949754816911444056700187754098008609496883582036629318289506948810174188054432527315018121004043224459582506847468141136243855820605372089603464757055864103145569220263141008429836415866680884782159493137861981288620808974617020812635689744119408099873793381865540311959923534829272923740023158009973988952006537826341014707919957303056706886256150362945699759437102564509770163492514818269737670307291907065120949722832839240164067296458693087628155370450529606937466690650248394107650575905764495807626564397875633463821052672602711535715005556010737765715588437259620425608293058443564734349701573365542655379106638120132886698774823802037369861614423035531879384004595837590720519179537073679362132411788963742375262330593377344046819421152194323582054308236721388267392090288179294245985686111799368088144976053794630151106628801113381762098080370280108389908458916953166514410809516703158221398590118986558750096970121865790773482821682446406256877108617212584019751929898963191334484691034641121739760235028665386507704674890584950986671458681175817286585203833125350071960124680727625830757324513888800214735146874565326781654959266970363487188683852270257331810328603338644237558904346319038738259000405872036902029005067755573796438071768276299134626342327961793957967486536450890621321405894726152696424459210433486071128497925877957645065026720736274202297774062091449669440972955729359498129045284171890029284748723435466140511995727123216091823043009433912397644390667721362743321657239978142346109728106851542013961535948802875360539219619766346709071859701711420292818740451907268565176843352885191417158367500759300224577062669023674888392855806984253892774736294727587879437413563967741261797044255565816069793747917721234042108664731495710194513143924352435106664686837815163590365443892870406639618448504528791240034975341763230594569920804063905315697245121894772545186201811802629229023951842206210692846059101025874741002740276140600825741879712987210772889383948763417182368399343485708232106586230062458069139352521101737402184233840447075533159574876930560493589840487285398087277313087566929377362433331253888156174580397527492517191257638361866120481923602718263509065133658827252333670013879703852047222645848428142710588180652797688005492501272214844616804228608816598547204143387077651509335437056104825557600334281841819734931325397717451808303544408457312586652821240233882974283233125917819146124748859823565355000085636762440908646517248925304988240047764542910833028950726432755726271117550509603590228901397877407209061333921173115452870605299677442081864202749783262939567452770972746657953374727405222972295838702152067706911361746891328336930815982030227175786682222334149194961389233191891584757011218271207499178542236116741720328038933990720822341574241782957670434423947195432864981040690210042634209257087275600900716143457613160915817862259912002647772417751857966081508639383541717035180113368791660997620987337955023701274431351789775478130327972431962759948772722585548423874612564793428804047905284794163764105340622331629638946277620409338057440254588362567172411980437580752494140957130387308747627264877785003990020158484781658399170460823487864516200131167963947690665393685256884136593723563942784538907093915809032598351053624832010731669525718636014005768363299467157328489671751714071259722553675771802477489674127408491529562234214796634439992291102101241677260585234387609542257792268439520888612085248261070385317455770689192987357502545928092355656802317002254315365787775395710337414757468775390306710027772937247116434685186339844942195142966362970002516040673358035070066283579324777547766737967942789123028719518648491429281906487134995744306502397309327682099972975093394323611929937459920727061473997228795901480283097068919294533615093282390521379570177998615941493864481428176903437069181695231703349470202652767419582332545273740134279533001163760408200606517130494013482058068991790657109814556522322456409532158967540217928789013515489677961687834526012103970604498202821797188006372649893552516605254683868100616150720771546769488074850835117320306874413799555608486454796594274225818189893315025609190294060117604341233932316635857469069625473985415382732022457194265188363325775476532363099143900085199108398150670284205414662303004518239327487235375915069472102647169912978254193111397302733833325265907134464720555664168480650693889247697233536028026608838941596463536189157872953244414664390062321778673896344807492438208498002534468031436092363201952211966331537059799099362449015382145858213061947100308862371669239989593590600653299835252351108481632294794888111208607727736179969126572278256374892389772729975074013775932806524021907607508863812156332372245580092215627919645893840282517888645073224649775707827118194208286564303046000626499582979445429632222741581798780081882620552407399420429623803269476681840645075467890079444830932415286195464004882060812472640011191956408962556656972551260174973066539908327625828839165952007279489154393888286069911979585461188148125375786749161080471919530434269206072100854028239411833317357874970372192667708239319007578011149003894815230241020492700721799780786225341318728772115496924291961993876604753240071296398419760646055887834432046941592077012571858977403966619183962065725394705458574201713826481487995514656968206851365271172408217739316200356160493767547526777460190840155506901478413096854711245365488731201101803558764464068538246221015612690080102621018853561206866067467598249702306133765718451720108904803009046969497133007866033468387645348949041248730518736062800757663492991762353448480711797331475817724287832517598099658846637065583111916384615394619541328148353755514485821276764895686919443913102847227715413615150833552074984798208430574064615362990120772896367449814643248282561608974397878883161294091124302288420744134186555088076360613057346155878910916308540053896455260346702006746504866371816200112372193907028909637860784008015254696558599914699099163564973558892667776358957467123477425494881881200354254942341307267541272172752687590915983949839131449836632644531289885966132925229450364958311680060164508904351589249378225824058740883386175858561615440577333288202558707442137255939183251145674453714777289301968308622265550338619453740048006162413973474898231789826302968545850236552960110336098808294500189010334331452483080041573308401644627578228146537992711004990765053109429206830702531930098498424691375568238187862162807244278071796486893396574757618397444711640340736918909323044316201011005531544256324093335786944054782985218995619783076346006221532863623681425885407037086699788596717797042483261386279524783877977345039284710842155797448176152397907770883615516135270337478159609403807049268166981007383476843929379704807158314395926277510867270476997308189741360990325889768223927977195092866568154534729778574298135826862795651764109445783264050124086619355394927846755992022639793596010189838601484277057364482383860823964455278424848888510711911826522229999266292099463184475121002387765705499520041105298641882346976359437500869360643193362692172131899944443703105787260120337186071924666693614176649185886242293597511540988805040989027107313449461862638347036785113400102011312515190399921467331969006366059325685965241401731986096674599018357671113938633210524151314557305439112029000782445398672118246636307118546524381632252728052789201940216897187428823967348672223775620861432845514172389768588678227561058506616208237945072964985882657724700635731680501279504424974757018166060076826992371064030749426124571184741336214811913756341400868245666206687684791895212601492125708071996984495684974349464322927268990536623492235490085319042691443951486772214948579300390258190809567331767700236895180227948352621896438881103299445995266447794874352726694995253542482162217411095946880730659277654358419454732798052742093321036994442506797758396880743936210881411662438709534631401784464522224033942302631923957164597365723615208529298389293025960138513424630231208223273730619914525024699387542543649086900553358964732224918206691397368641950772460162963328130413404201587176902149867919329314614801158916380225542292606979483680034011972979313042073901158648789083989741507696806626391517593896260874178736196937281249720976262901410101183826590187745848475966459273020763873841428970117918169575070234296463768093827707983874267600728690559367490793986046040061933471869303181345774803744877290317526513781827226921216072454466568589022035625581554387905024151440439503461500354004781249106108630617088335819996083938341831923182619093742908197059963919171463688238501348481652927856934496539408422226041778694690889802668124800467341392796585589465147349155585414713120511695812668475203297280803054919497779701955912807546712959045395763687390611941105827211502131365609852045847816363247344703495458285273158310251100654420827442134461591235178906958955590048920666698398151053966645814609682183848126780506110951542873317109469265983102814852515478361525628888947817993965879881421503570452926530336913996784449643655694166990509871978171097209580270916594041969368027104715076908006470246986822952732687756361937477590188780640294191748872640991722281063904847696098438861984461780727481435849161718721884225566670604352539953205507571825086596260588841595692581112959385247159767876286353695887551490951032305589335997114271635146704085524592370477997667127089276277531401510601071413320274208235780436266907434662224250349315661545716932085047708570446103477574445399772145084801895997832661048403296517772875563207800802629387497025002194289792004794922786258574274125569662507724581087281413405755900216490466753563404175748179124553001590211283133884600676075482838571592319685137764168678397612842175070450591337249866308709531361571661632442314430548252466145445683342185550678439325740064247510523497654242244527586025919619968439207170456243098232520606909897642569724716874430293013639007307885069836162937721890389419307163492235979928158298349573174706468090372421185671704004776587869580549863334936956756798569042125616669584785287232665662567126433861916031323833859376012466127868948058586810508355855323320726747527061112729589100902357402827885109439000656699791897197617918340177498527255334693536301269091116053923610980415762269712164932103819001917637660509744081576266128147257702937337299678077610965418881900823780458417069949736881191172243209148400557182290973713613921646125762415391141190151385782086190001644394352363841604108057498878692974635920934148863616338483382192726616667048420486750265592209145155663356010848566953454969886010054105164652030875124285355226085383728217309011652418834717647258551223370627377379741473077388615292298802493214968972742835164329528232127893385816045113819761944742552038179195532459674423092004228795727122696775512351045066354826065855194948541559997905010369206351988075185734643274972059851737748097519271545896008389333568199893594547549385419988928299860605807005060731881823875402496595673287865171381924830015715959327250852364112375950813907521873460783291287285126680799857452806696088854075223690298144111486978799838874362002227547826446366420329216867209989681316625333045736476350288987279903761826613142997662066616119327009589417751210434960920013678633912825685966806498097601750984990017081996121884349989798910551538686256798068756612966974398040555343474955104014206908824251940055103134134881886318374377161607532325561610684866788691187822142582061780794309192075246038728114308023500478073270196926077190820137083248716949426395140931948942615581260295219401689746358361013172608877202078725415716245992489089200886276308708305279335375021520816934882395548655284522461648172562967474165287180751235930802668350288508458292153098421463997542921694346777604848410582041041569058555600863574465125549852074787350894323837376707584724268720021830521201009970671409085467530805326561940829859664942772439534927037343761217636527054417676390839246610187193029665952335127903803658733402028103399503090898615326571502256667871567484904829389449889784782658952645989139559063296916948538936933516408535056294997827836196772239768748097836152475350591757887657327056725503556312843771553094880896038962075338787794492966364482051919876942161652560854169423315548367266114820480080841731248185689761605389299972433379907697310171358404643207477327706565095232859973554943616110759142370402536025264666123957057403431943607206331268101107487174849400666877673667644208679056713957674449699999960473873610119811467080049711656449396387046417740704339226395104263698367942557984027039951244598978894152918801601276114919927031836967320497238561418223077258117456229650431232752377879338427949794872480468520949837477453721742124164042750015150744265133007038161825245703201290934123070985711428300956117204419710967952246979945434478331500889280091569798895945418523509649575609144015065177137654977434947051719687506162702623342531687023173758556127676358964605621980933070664147838526744763117141447813703062581867839531627731467414784291809795316393611531878865079123228409068717871460592195197676079489350508291441562089538139964256172623929514933077990084748011302326327162317498259257186862068026887417602180110550651683890875013071858413009095626185985366337045305106633241699218298766082316646602526629312950320089112318099343308493767979449006526364724342321209697966763768447330749832104375977299311049726455697788930108555005595862554409822129619362837520885725334733473930150563293126970625718432909652070146144076626104839528127425074549993528570957597516169368609633046465782049237622029728421155968879967355332339019970072638026299094737808966472095433476793496996145215560577290608649861229333581791185383176056696663201450329001039020622973493063344183865814237648010675164283988558584198613457643158756246303663223493963051994329734920127793808285010474260850634837963382561540459091360744525666123172694331743892454680415999811550078378488422468366153318583527057967465887654123594767780743302121472476592443410677537409304879331781976806525835905953123653915276688317399550521859167001035156693041446875890469449722325206501239641615654485658114554641318245402609091721027356589215714969314331524084182007271090019252126739107540513305099291870714702517447867857547875911449908037981468054185259009450639104573524512746610582090743524953189316025372813007789344563239887756105962962928538256804589394545352069704605129462324086799448302078803275186339579922954409702860237244527968210309385795563308220202980836832043048612112743853692519782239341964545300388885221821665546461919222281092381358017935175374435960408196833550297425972102100682391577301651557562483896044041806209035556742641390780977515916898813477309856309409278177914966562032363119704275618517436778821219150308298412662699680259649370857801173513413611310795996134178164448493030875894637412809458494753112740439933155545800914924748545030640419558113358888128061729023359081930767096241787469813738318275955453923952741680586842455765608265789005977551040291797303729409386472195484248877132380156351273686426588285517204782675140853916327554044414714389380067557477948157493381248462817826707700847446724360944904517729613358294328929806239443246230347887883503196649574702710912171915566907200391044216062087509169293108088983035034262797446828839354674701286737407723321631057420016677808135144872622887801891050075140318837878947244945367915839187786422939984476758188989621577075766488663472960875560465640339112603842526489758394111788850694566207912002026977081667115760123612493092315127170005133452661951573574192945548731795207299514352133116511491287906529733094747135767210634017386918022578324177311603154387689071627672536355547438333242758113334659520937487922468734814012968427442480452516773640319306940150164610104401109079858062284450746267507242837611573582142728588770152253483462599048683255624586278871404893215503760589341996600920994635680111413586496831952477401742527174664496534979512129700752202477473585787245249905799882377375094138509985363060398240307456570712948435857290562294006251826588565038125158971953704310585496017785892371693835060190900177879048565813110208437273553593244554172737774880210412416622493285219392277526033175809397709319135927681829401511336163148311693808615582467306324598474478933084522407691602516235158138179747395113405433984456182381272425104386860570913843863927252042203991032247064175831108979830056604200909250191676308653573212724349860134168506107657054751410471235900287573943850162771238087212274767473745362645170866043183014865554135827508254694117595517169470368068564663103161009226259212142408749116361137459837045223515518188040233139052267964628752842311258561383408776054188334229291595041089291621047958917493811788823963990242589397234293784336327245654818457029079305370414769743911834144522525214515419803909419443916794246640347795251270012837984155666665248853845034333031147338620479995033029263248985061253210923014563597507338041923702983656928885139226207992653369021350936806472058349890247178209528758104057630918436381232818361605927698230146610517032868133853961880151990171813144944668173925325196704208488912600752208160310038017311573909271509576829019177037735338453207428675615527035822533986785224687791699495560462538761015423949420106311686573332414005901563995988111106839048824747559418313055452798426979514339112998619849773842286350142878971987741898338703389879402920069172611310794310830737351971430048740321945168246809270738253098119763706608984088276117851373442184117359132747151171023134307238875366123313318408304655271457242851028874346778044268162347848405718469978242736823076750200259585955155350294346428126571685087696140183862187610268939682685920601996774038424996763887266071136270121325877604357469939307874185946917617920863507583603447666565773657754438348050465259890114580688143965109437007221541992302850881762601088884132511192130353564274155638233733968103411319591404889619961286789743179300835247820987675939351706662651576043013711419257709017016867473472722964186284329749495084275078282598141840063102180264752326173322050019831597231126379028890412390631278713527645535306453899021541044759755830387667078013738352185782705925496227684379130209355280150175661934711122882982237342496629841007565754096215968783050199796964410118131622686835593375209221737394247025488138376995297888652964913343577701536877276992643862753508159484673675978104891503877501189976595812816465223455275513290483645274541976301832831490363310918869208823679864605120382300224501873687813871936399660598163625744401073048741640263438925823201898892814998881982103085075909079458893858956933137660032586630025708853233088797587348176641927138760506657533396958386455969916723787582258173243477549045200249719859504445901330066884355574234076049453389914969749745003982515409136068722720433439749280937926940785390869589560276591382798908819279126928447741474145477528956048983298767069594042206140725584549699960775638447123408469372474580012975126231399910045726512239908811973963378661537508584316133378152850271669642019233935405270085440313779893479208912131137636558959273057146802800016124815249016250221190596002482377994692510404706101677013574190685272985658652908375360395509887951999196681680753430487766854009615676815518187849983139431741419609743255506076555257121332825143314207531444138340686557870874308851547025276089219027357086507614794069705504648754662484726633277181502873878132311047037480287843906846311548433209057484727846664573003989621807711711541999849906869238576204902414444448553377555125640753925556368556190001620243447386886939517384151915928111642328475154691394859050775469601340630003619258812973895564084919091377264466673713617276230455465738185335564831042575969686676610921829373040663728125778484891537617183077644219644368737470101613062909898740299430447235719494484984849917231679197575649293687305128234662412902409037787557942778238102608672842364636012910102668133695146819059329317226730173134040084090846217986701938201078696941707914042164231465061331488757536993790032036686888594601018087903512451546553566984524500914415953948864440588157526321933161011035139730364596409682359722782298088792331638895383355292649252870541415799287064417169087707978674009584858478622701501461621077919459681826620704661455072423838552045076906491880284625213924335539727678346831551219435974580995737236007930015023284300854272916341199391551664914035093967409666833944246918786053775228961220131171006634072026354621939279221836330734388206993411995075508500149677935510479145553994688342950409756710649425415230612203685048931340753079135508513459630306657604117986712226412747086211668165703294916707353663883643109659966972174134865083863270641835579047786744244785092639213965031916208088126163511197266062283649404211884950414102262742877677465405369654937342123839085287078403989726884087918956794102315739979636440153326256140831383723713311971979530508956302740781563682308880813874334501966660110663818950221342638371452010925495870917898415876887232516663708605923074733058612059576800015904682904895759621634247990738422959879905566621657284872953039807844192824885378813333601598535159570497163742547702314921851337785738243369958106201636911103136006632817569430363399061424011345241102608970944576429568134774146371986106231175790833223601452146084096904754937291636885346551035108469779282131953068023562939135235148262074367181709297052259940303691198478247189543908342866286272717289871314524721211838179337522689837915584720415240145446663314211748303074163828821070200604049985959082742516841877936393918153237573648460053725089471669813251273050915355882847573013799437710348270055371947493196100848345191909452232692671078149072094063399736301400222916551310901776276603039244561527585283208435738221832834772979732288706643548600279455448552340548367238329878303398656766922398105313935527100121122178197110659894713738143576773623952340328505227322231180054323458094755032552569530401698333401469319197585900615519741213351249290630955674747066720362806073484723918617511746835740364470197132674682679898468779994614126329867614369328929027450256366562133669282246715206352847454661191825015545396717840914179459156775327711896551878913425302095232111913731089934940507972540031152641426827458161365436332535429032476580359381162048646974933901429467107701776034875074179099685697262926070498683684018094487684483100629423543536714460231096647129634899775173540447874532374950982919441362850477259587894721192790874635215516364995622531836184015202474582351445967320991512319974548155928737961719102675973690845754215261680127212169993545684028195172881765309046086592035815287064605674006837115429881513306840574504092385359832192627246570239376369051717383566314550015186323617732285410806236755698237204118191598575431504468784868385827681941296070621295720534432807086017019950192494588033361710078451783929767267754724807924938919271052812150088441491574288373923895918700254926115346141983024382852731171079840676494907620785740489873909639624130141062657296924451459633453083108560777411200415456526881674856086760551772685603098046566192986971400096000408145712378907281866735974227287850173354541697122135638052001879783307169462338121784792697130768364067646062283956318790820592313108912734715115432092222010454978595803616077888106595873032144389304282313121700549855942854814027715038929855284849111275945510731093937075554182811230270411288563157783571587820405878869810396459220130620066197041725775409961208089149237345545546142686572841796118765958239702884927548835800604138176027225728187653007767257598635146202444716604143141248803876872795286036314425746545965756354457181274183307290767384531442442336041794801444965564354457742815720087561229320568678835352351277189468885727988876982495639806858962566046163779613120982046690366685551073188434766382614894634445711703186141137634593623654702342774289300393860931643171490335569271566337958473044666082258312320705115365618888280185645396294987454835915221147086388515249777117342890189960982039521307169143125152405655150306461759341677219785802923506672197745247378955405168866399872775024964715798922144231236653720108196140709249992134257870105483037707245862664293859050252128689388228219650706467242700092732675673686743776848330024382496182445326022106580414107514903649328718370150322264988857171040806308829588371083810555926270555851227337278709526558634407741074781853032655617088018595917834752563072129454938878927120544511071999244505581978125283246196242272798822939514261408140474502180144907483334134748840232809044114221779352989668538512175350801156413300135443635974066555968962479358163810458085050061442175267880678982801079624846495388192962669422551560479455178870555062614748785341295544110269299973590900161644495731829313356989765607613805447724589169732182460686767546415790317687314323722927281835363034339786948986394092812147065754445727578071444224795261131240210767306973476616313936288454749097995798357581288949524760034002201380635771953182020361229481697972668345832479252560131526310609016247393433618953988572778322316914830860243588537379724699014910019663846990772654376158159320944427029680630512432972017227206795503464362543721351565646371237958199883327503464025957615511032501841363739446129283004759773429191294996486403461171843725099509228314408700036368926936731904611648822266328096762303987624838297505231456652842885358385117338367728440339758589944883532030656032196314128074726417990938384908563345121278081739268670735172380575659902345719390216140496538037646901723874999766202332272889826830540792194980525885690397177708523579506189102199869597935422882734749397689040849213609109363587661634465187324192220693480357806152756814834616734274387743954236709948641679629180226314073589165339541630889349168857267007619588013422234040232280169733712358133278360781452417922572382468140862062475515268939340614816390990149177631347181665407127504096591085800512419773794331377262508785119658376033150981497389925162263763474503087606064629862088568790043736216252215122887896322654322884027525998506430467476697969195386639980853383243508942732457923098700420238004815611130787291044102825024356030943744097844810338306211358868801097179407830555274926432203024655729228662825587253275849333315703213758700961368130948707001495920518454617574136735989906369956596594403893289766916056576738472918189773429066654339594162573433676716828247713606591279317844443380537869574955845305985413619504546489288797380433224668359189621348479242721157760420029592736187799514555477002264725330028773022315205945108125791651997145828342173244559502601780455586982645522406383949954451273722883473316727963174713843427812548029660215058629781366548503386747571956288371188265621944921766385906200781402701294313141807300471404468794169848896529615660385919762170867117528543077084496742134261654499150629353643838262462940359974946083638852222842233456557918641452100444079370451040988652531693910789058650169969046197319630892043099153519172087178276129272240764156475467384003987814769251052764701084132218109239937638481389312924815512030591272883751382272772733764935944098187878162227405399370633497059270467555976976295785971473417214899545335737705598682856566271947300142835018806019540075715841931886320429671993290942821157816431947832087518755068775660974488873686793802934898934639655765708144992706746087354569590618809584292353753065204661229373409381098583985644074895780619459903514232196040293327454571730823194385111722547274818683871761069614418106649347269935351248688486250891590338662711930456928332438531633636164310690148281449277081377914483080932755440189882811162097335626907016168293239722097524838041850307879156310439077502403248491974347003701383950014425219415015586211761779458456321723184502079727883608264447509665997802613110654515673263091801335589608661475953964807267265511214743806653327403457037231598930629781070985286667739446765588229579496513654189563257297521069931033333779843791432845059494095794448766914989184154358933323807167014947418920664019523279980589883752686054040958381774569604902465312336633349954627916217113392277008950772829420073158715808931488719496219136742102083789047679841310964691135129469723262759033094489308121686251369055411516032709732999010257769055615013457365722440029685771613496316893961435482974099773617076591735120977343416371563253101069865406512897439212414862735890558130713072340350301870371523822887145296563484110717528852076605274948543047597711117301950605339755183543154754108574290531576558620919576067063305014735208627194675323024351050968748854623553339731172552038137935009411341690143803928630954923385429640610318401478582897916411926132441096514138167532051717922971390951161725622713082725402408587208776930223056927439573071184992990341718745127224240528161739275399125785944772957075857292824271337359820058616864071612769873009983655779786096457441225557687034147422132662681886575636899776593069619837061340093639801310646560815844805352831318693342118929361432976086405412273888339410445106248896140336866854703599174149281542448903348364013755501614239662067077999827903391062027374529302765439080350167256595042667067754679166536499394254846224000886573027472558879445024567950833287634593414058001759835682034745334394498522761680560443096229883845575845141918889992684280409757336884163878836254890179805833192967546044683135860598571699652318241456649974434607009062135520251400694089892930432293245237243255271681425982559522485753765163282729497470317787454538604087123380334982406368363726523022279395021417640493559774264507996531712214323711994607322699402036900198670835824317539217879358536355750514427546990257484353476318879061530626646770538033854287940531250579225223511260676010702209663316677077592352152412834642379139800651208813340044389239145753277075925761522315538398811221082346375855808378141865520570525552665465515737177801837732693972418463077321423076047741690126867620265136035830076678757880354031163013689493870847253461216261254865947869226080615145397111950089049697228238718458326649996886414850817481591690388204522509103507469653921468765215641971056562590484809173480417533254130052813205964867292545905027467350193545328294251221782822633309315977399838473502608580281571474390990304296145135770337398947531163448166529327061769520534756902080925606266466252732661265470099558502270650573497856910678826219277211938821533706559741549420765900934633029068391184211411007726070024553173110867777510436921302074035737105452834619645474305192239690768957685625290221395801399564389743874406133433081217290098982295234189230627156191902508663150589813181551011688434053983863169729798354979660278347531683037695543429197516359829439255368385659280553717671084024548862381988473786470570912516967998864033669683249549662354480068294054907092783767815554581333408994726085299742388766036760737366572512152455338319414534625168033953179439814208012288382618118160641930248367175025725712591246783304711455971384769678534110216446680365388698580079497189890298576311328712523574494943143388448635461379049583178133886646818604478218212580162162653829195623226337506542740443107024058562979080894789473891827569670898131657984279626939204966031172927607751980414649458448469497532633265287090244053908967373166192282394818830674188338883979550774008279193616631401592753959685746559995831854037975413811472579378986209748016761850259209557863994695661702189752009152704970804902504698669319774467892869548710022474999748038748396018971283430431250152809623799110477327881791603753211983795045240840403113697515312467868411150690789817522858228045962728512110515512442772367305768247275374565055948991606015586681915306948046519682334561630261911410005583176242200901838342263017657579440834871333578087335884395845291102952737967001273541075652830181519571890326223047302048656326825651015779202665494522587519971928093190917765659294779909398625527383138363531335524533258729758586265685823851489274211043705832678731905024437628112025722445404517084689418987704811194097112112626814867039462705601636422458599157326830519297715571381967691112547231074562062493756764421760560621160935587170645620016313930282244350875516719066550824702333568112198543430719199815062985548254033712795046281759838581344153240049801698595975796647827128715961952277047771864368441567233051861740821366740585918725358341459821794086174624536025812784105962087339361649880444733579718653084570364273048000834304086083859809828762906927812833530949812642083640573689374913105603764911383870943991370186136394607423711675088102068322554399597242148704347389622721062347053311695987364945373915840506451940622844484267364295837936732161935332810725209989450427490222313390390036321341348133258654005418064079564453172287403583644630938534896731020942099454794319734712438603975672781634964485242850159137886377803661992618972112390440071215214641373641556782305740497604103584504370203844346667023804851208093571586528930826188749679754852307790962276165318620598456306690621580310115232594373503151139670976394882005419034523895827785098205504002091384158505602012728332626595123942060290972467190480439944045728646134766596415329853345837061944851826539142083275996811022048932749533700302176277339197693265153560506006653618896571265056689649572535293011155273013164409052348346141904735911506779943634319500994469713775037886049583141375435290120772272685006965560745169515445975128719454536138955473181491092948424559432890824665547908619356670727690010195938466905286023406669998708261903201822629941099373152556562148384276339693639281303026451693083260549334990838477882378897634552611921576697012550423231335187931496602531106657852028041015864695489965715871912789849800627052249968597202891072712037666757040063097381688004077504615023114123611076057998667773455251749042988012558378349923329285894680056176058745083107588453691764232415996613462542035926057784737724637349447357635612637653609956566796640852933244323456046353592499669222327065885152384411025010204592317612734137776909567522143251574532683542782851819165609979221978833585867967213832751663871061743870927058949238198400252307371970890886846004562135569910243541109953204450636364800591436635109870018937787653681208313820934524978350451629195810408556689264295609141667377107889306394610656546785147354598126175345662198924071205731618741490570335302531572480588113285223546120179206317829269452443587253198295438060364399291729167583972450478393484590503281619447965475816449020028305278048453758887230763862367320835636814465789881542839577406895338177565937320859178373911141653618445048565229253863391427910134813969194362714811095417126580105186416319967438160052303617565649485706577701872979270267668059278651919971143219643377621006952238182434362275664192545182835122102059531854645573754770497990080855650397914895226124083355776778521988016642209855802945564796223939895327647693968093669517161757032007965909313028532868131187868419153460313520715754376638851811847755026769601939083170654320456722433984502510031293954368997594758916959232454187082890544576266399262254770875699624037303486294825017435142676569404462944266246810408904362299636980132043166369191700558226109343020853206324128998879389362840917893742880325993795990477503623285269864816573836297973942255752496763755515846711894243671762113307849996340657631039472879658501986236566260357710648143560549585538262400455269161030353162081408123313552465377951270458437327993467978430580858281329198846705618043449631064715501560083326052347379264554051748534590058971538965340205352608276512685944860157472993418125325340438139862755702153704522701133509406419961642613054327672809895108129056993788424818062523904364168591469741599181271803274704455593836510422674530157997036335988183420131405007490169736969125812262386512488451051185553746631087973527362134124709480144735236481305276057794006853469345992595874633983310650250334922291472540974750482732930085492465215019454995784987121654905593576791595352139327053043700130198716330420460052420146103790901757796773453496481924895647032655517990575237156446444807084633907534172918389197794320299550035497814767039193950493090434843388070213045569751770160199564954673538527113418899246256279524524428279177994482508016658045556886711875604669620587755566255179034256760496838256662238903190156214074357944665635301236552536269551781446707662799167793509183597845749977028261268322332759348618738346881140155171566749370886117548167146913262204217629121418662956506026690244592307255553842582441958304893610115343988639830888644149810048035388192377673187538303863701433412976820345879700344562616574206880865262652609936765634595984388749885184124130738816505744259595598244231699129792002567920029599090762777292401970197290695560315735596221383586047373921892521689711681489645929148080541481200052407183181554002348881937623008287614998738013094096498925827763147009091577359985788840403202446157509900347173504988750669693235438613705281247184862428201456518535908767671916302729962919505598940374826285621101452693724575328988456729485075360722919731676495324022337050990023936694712926417643784677688793380257764309289850921225997943165666226391368289809023810958106868846425629230923474011863408879616252738246483410180420351596354534076492716447646039942633486001772726353840931148585506062365932615732676570642005597939928804133012531999653297770606985317010801745169215776222503234919371234415580942589964952607672364788542751049939122938784798850009669992108314055701910656520601112088028816985979852200646361686078902378597308132377652540571183202194574882015387670498538809517520773364491419045552412142101224174728657632471552533807748192316850609959825505960974601444280272915173729349790734852162895018544016294070345499842207913355866806168951690583356588857699756305838402502664362154286220939351746396294750742594432310268403908961445437632897476148031248730336655937307258242605447849547710551529690146189039600143108903205399993437302562975762841397390705463696803913262972538616346583229551888858308378514055962036520645427010156341459914767916865729510605074154904789256016784231465134574638587681074362788341408010178906232516550597841570156545139283527740236002388822559368330951482101041769798348352116975441167954657005721686939273260812162709206031108716238177509012682750998320440365943392328723705615617749381316985863988751574726536409330312384513649474288357927112067938034214257560914331784644073995421784216839070323452092300013334841700819535779245503380426153939708818806318971804304670011846849274742092483117010557008682654443220150899515611491725180413890092569293260368246958660973720947176527906427210736489272247363430918388099383505720659084248672765877151782325866352100131259206015384103744046453991739719550529568592594658873693331959958184185215982183639548653705448257899905295608788037090183474201286174712925781004752257655972649309495703332890728343008530205585496318193212934784927599521860645092346240814810069295470368623409232341397055084575036210082482641245405921619451074805689931633023410696609370013746510199941077008852557974727538366796493299972483015768483302902019461225274045092641517017213614512416624336764511713692741988387677587491580373109592264669003960252834532828607706658690617750346090386236066158819190069160086692837853158185415345662579805432036639455816828774801643685674256701694596920134445535552621417293491310393449331679189194228179210640113971396529099338755250331485647780920277511008499612020376848803324315691847141178153784946336737642132603468914357347062287000067070111265734649881471032989151052130225394220120338880249500158577709170594586025655571339713710615688712959554176864612831611279771158697469992237335623392341741490207967103471250929980207779995687334123404055294575604971342869302185505417910008927538805662859088863589994722874076311805330553509785559778193695396055399462554455023557126925252311821879874243528723503051540458781768393351014897362916000062630956451066225443766255301843724158593784877056470801129559805735353997246508201758818639322403726831596197988651640734907254833748737696616958880914878306118338551252521321594608239421075640734818383524315473548721974658366630386863660764438092833246468879056919342980236846582954375510489769991403325507977075219194066663126099924435038296541423921371288744007395658473001365344010215739291419483373110731848380579538455633921422378123185848903791045772915730362036784048844647885435453248731839700449631467223667077377018070918575385013802777246154943008520707424078030240375870757555620243702595287393102811919831218885221673976014526951594448135687770328835063130190910007878700237846333416224099197390798802192465160178311759579601985228302492678445351911013840669379989691389629668109001365575395527124740221618506768106607644733965367358643800774951109635012703394356972499816724920808973939164796604608173625254611437326890536090672268856840719081135574718619730989851623180085711615757829931296590669497836037308068749550545650718283751884572289228497964244013430119245734398443823789364139505439078871386644377301271658298779028585996663123750858062994789539176749660784048227419658358217535660423337538094584827275001644002942668023165620841632065123919898921497600967028121539543600844168736687559999106059726686628219872990423768393040522041651146184901109823172602003843304429624003805130146119188155633830328611958799621535455640947770669915683180246442200112713635043532274363850670024012886257453384830684495345009817377093013194747242318525123139711608270861996900101599522876844539825879766089578680158564061558158338422371409402504896563876682680233590591865925572725472876037466583824232794227804168040039992334963235988542521627735964387764040021382377902281170426555485901320286731069925419994258649331439192968415978556014428435709401082609024468145630646505152768715749613674427195312299791542092957282891802692678659066972704750120345236059927611212224017374353248034347359252140007464469600046608692732799985647673108250006776396779307676623585216379893681339371672119782188663368933551636827151246107468799229816995175325024687191430969169248771055543964362829616329694774823280041199597929605626070434959375705629879435113461366069675698180714189007161894973201823095048504212985594974138780160715018295006007337220705120470478573975960679168219028964812861323466385890088650284646146456188982029582431573146205954521989644432834055410982053171214337442756819157675877828128552787609899149039210727281205419775983130987440500754138996201096974188421168251903913665671324650464500886414185524884975544812945224903219559163829727404052754245613711195694230643634662954315189373969069196336507248417593373887646059692175824038841064859288523194566094173998186241546356601816638836408693840716926273424726377072363398131909907470971845577614071442422800147229714904964948332297874932421097060236760433172314402430852727330920937509723634286894672873651409813256851313002681230228332949657780436784223353027044997594194807042971496858720638769513046798670458066554813133095299253531978716574462330256339571267023772060141677205265417948221028545765820057110440736734350549269611058281259102325732144429132139943561594552502812520599396583206256988359756314114038654132083862553509948977069204319159275481794157875314864188536376281854487140282899394191887333300515618114960757138119558532716650363967737881276470580419847772049892763733148943372411662995733974134334599737195895798969967778406417203956366702791351130673231990175306988729277077321620408491501559049929038751348490735279781052665143081892702460140251391098512635650604947568298594136829598480791734245374988310217966076475946409038686603461046206106483060301101120845291439367390173755569866821697080964517320537535579454359217996340751773510756128793309180784735650854721005816075838907769591608825096544024130127467774250309462729344920103511333812042712002467779916724552703491097580820071596397883583659947777678572529700699994770404216576021692277849056734700846161353508352799637859905986686338327712930827881412302689102409602964907295643317868568007333395781936840631002850278329479213774680254377351557502530351548050828034316799220350053325329679892903505487939257071346322733013749733378300703746959843533436941010937163695738974825072300410139300338096438340211254044339625016895792925823043328212107575411475312328379849827818457483292905403819654102889611996279848988844822326359549156416531107429931846024258247198328450869064712395351180162329643918677880290550183813560684616583627573476405581646983530328601366470392419102152010741718062248808161681226110805135161935548569896222018269098849092164094163309575420488994700444316496106054580797551794871105934445397448155490663443562112583982357420284926705512962623539422834587611217822765536644050239503353233705033757887792104151734863773328999660668866711441308599198654830975455274267958452111503960943246611673917669553148242911591676729669093724840141836703960943085358128000182232259441065023270918633336251175056322192448557220845517492488031599966621758393630906600853810543223981712701724002470343629997888330162466305652698895100958400489494847989526930977674596723703850160133533303870885188420785400475255244592804403920030959222840903623042275608100974586331066581205059923697559299708766958952179413195131903984876817727171014454898202619307262066981539472213074340744664044188854280270645953998722951688426470077764396506040054778420583726137167809837813695168181949077183704495890269103974016070714054367278370418141792493128236453540177495650070814136022074995228013533361184177202320555767446842275366220291743126365072816255789361037354267523642411500859506263122749718394677098784879204779957006869788379899330349164875412375913505568492086283434866183326842581089146532957585451972103263368073693275018732918276250803666902944354383280332435184846295768285769112636160893759646395424628954676458193683925579958461416993692588958215652999201180941851872480418197590367349790917267137157143040549002262461204294339873311602208852031127706890216860829846262092804862815809023033046687391920518086291537553232337074857071443905987955233366053606493844674707813663937793751608200736477730528812311909762271622388699972337472974366717416779718206027078162354105448196836863274860427997627564021334994344178927051047981148508112044053475500688794013535306953327370083075211750887931097961610428522786835951279076884225049088932567279473269352887667297615911942213056995662764914000659435897654802870108191638612314197647819134290677295447554083944240541702681100067145802492549427598161747273735793425668050519208211684429365854155695950892913948912957580117787320281832492161497312218437567853091928188540207789437769288443912751706522166889417287566402835970340077134929099223594191689510509594323495774541462577832327596803067544525766218764019056923094951512969719092823906188942013794144432806823711259199641818436407499265260750604485788915615897906673439378191341899130201113754197021426114506989378593459961154103118397981655191030862494212133771170155460684667326290928844225129836822415401924014615638896292817553260754113242949430849062796093912561020474369536697454059304140376438975353180845989317939046863911481718179964162553723411342681498556126088185971033986450165837726398448856355431068111082973631883599631319529464702787601939956909523943245240855805467759385144167825905659683568209558043313803583286605033356863471023722604278387724834653439317796210791984668978652357782547742942648739167788849176681934672991683632017934989726568540973954387572046990850737074406723919047546050764369732002442930902592664685419830640448541377794393210130050230201276562059414174885859680346898827542825363827384912108696019436867221328446691578492530176915703713472558406232641091172203661189006955171797498626993747247447577230967041943196505085213302205541710021147194576096303187339247997216887541920573626558136280882206885600800972822480578877919028652055723860198289620562283503938961451629598951621361084766217082690429261437323095644621928658774173984694108487844044725591837559966604249544418913486442536826351387639811917159593564621281460058730549787648220547658249670834694288930644340617771148600612281414184354917158141865597234514788001367739358854234327728570066189391454612010104893654394686617636831382036480621740752813046864525810312897978494735785117579850405986841892222165253949414687637636424122981991912896358378281155057508269868960502665846994536718285580492915900872671662879164170653371443556035106613743637573337373978880125314380900270656946878127212171678957959518876376441845111036192065471992210152873702096141281056556645968567814051221156469014203394943961288778767511386013981207816767585514960719125350275260360968013301226257741770785525518630988112100687046556221682650381864260831254783468674899543988933501238117301572692802220376517342528577727242411504238341385329416337851571512673374390539313605775369124436266162964402027003363993885223831619804162681732856260001642795667806058566669428691670921435050496698875566325498762605685878481461212244607571989792913179858609528499999913565264421174284386909246657750100653685802635499538804180182028679618683044687522027832584703533557216240168653208263383892299410508537021223872512358985742847887518393452682668876014837385834095666030013079027584586175220655959045191835106037679703508999334960239896851811182125793449570847953666443028754600645144938883172160178412732317176475395110379966559943365154359762948238566393200015816011868271633736828868885357517424240357974880984953330606434300751749301700737369173447103036335652803276132348197375918092368635165732377636226554107447076750404703503458909662828955213669364784023039841627317156270591410707590492489946751205963847089144267781903144708031104713927538180636841737654175911147365141858657874784513349110729110739782795259483057893332370772090051961092396910408024674852275806155484477483309156476010941662241451153705291166213395337603442391393587214338932559639176383011954567500808074398397355086872849117897189805191468818243291149197569002127859359296995261625205024348640426273827276944677043295001919511104932135001235285631035391036376939683181833488884352644386664008700687338167230004906913452978798352901384529288439901649348348567177741738958070873415189514072982898931356870433887047720150114958988332732557033478331869281829353331368021933440247975554296761141743024894373067940158257617423853730724861071503754500752395519524976920267705800773425384317425089862488947357267174151150823726653004310298229787441951747043351322755548611336358168682946639929476352314093225215017703444594534525661445199331170662447122465399942462347450780765800793296874872479561327985422913454055148887953272410103519977573589630503998830013074484495956882564094801494104218567641507914545506954266280058994083626643983449524705694300997119675217327577766133874079906210603652208419918240762378011580063889287064514643825185218270012344181755332976427197808010578841825930265822594491598818555365610891120103177249422280260658686609755186506775796803045578817562126925208812239790054412098508331776568857055832175257731509691515728656534594620902122067062459071484849152705735374403760160452134392025989049400978310058048912861338344232684530953808410933474925043322936249954027066858234054646563691088984346970052672720021429814773945396038629609977647252094933699154735236984150843152791221147450896709827857167103486754898215842430704927222475766624388930157514512600633670764971798532432247430848764540308225272089905556074499714857405039609542543458309323274083646227284651604062244977910412400179201750571315173133160098318322131838461628523411706195340614393948636187974987607763720708674767239996288159718085020887233889731934622891678527509336337429537990253302299880014927819785512103379887459915676703232070460829223124531714110871568123883078014560188309423732637575216422860917153493556558235789958855238524098442851158317221724323403130913557031181104417786654898412041698497111605850085791349832725776716339981410833152371715809892375117076514729199421005074197247178234535579309954830206454747724185379324276300320653146305625865784779550965861319616660090928393109165855262851117666208158155838238774603970724480678812730760009143296935673782874572665988698783945918590534624399399510846366233928507222159437092524820988350775004285036012554654762925165289398935545047824964071853915922139607732417649258111462448017799924019223862910772504187318246187637126797220573495411373257197456499261860597371283207429715322307555967218909974853331532220371306212831726283289613594248814593440926339413417751717700693651754568643678535899810369976345376440109345539872048400139988618488344040202409366173364203405293763952167837132368281374312108342652880723697872844793024197992050731791076765806392813316232757544870753185697961358159352366031089982238612021857364216094519973240993562823047663117143686328941889990808646566994406559496768768230392257713604403642288100686666724931109951827011566909015854740815448055010007760815474591818761350318533517762365729731714139581681596586444249810062280996776713549062584176380138210444569171574831489915285292390733838788817952932644177209200477585269282136230633920974138451375428421060714721223336680852508135345723981200835131106060624895313499419067174124787788317338276071548764038967469268478517121764775906862162966656302715344647666962053882071873459359570562199395435652808955060920596504302977491686284530242360450439331101774732432529847542571836263893525010912212777421324922503636171767228491645402158760958331013408697280208344789265319218941705419134171705655829024274865638905392909660319308930101758358028490604971287562068078592418402216832866388323453289663626416291038825010589728866268874271285204600561412291308633034115963084427492095060765158482618248589879821588103227837520316475351423067773289100842028862357972137223370013121323856802335234825140299148199565852685220631847544746322421785681960786012499158165387292244889113662373693844032279405974689229255670767820208276531115397203530234789703063862776853839122699326951097275016764274820698927256996698084927808995347422886308232997717929982479541872503038571545484071646268912559638859091970342193811231142940043953379967434921109594141299485058821354681612022312608863376898767701427961939352762693268331457467180322285633144139284449667924130935879250476690812410056123562084183841127010419605123693184285058225982318455847983217522677839933973856680730111969856332193657374415758716502364952696012954264035460691439107752126963830578163798067534380104799842915691506281858300430691724387491798651210854581942647464131168122418414325885038629561969242311227679104202258428513719652736328900249365399852764324553252995289783592548849426601493916951250802806343170384155182852089353306704429283358871115298222333629732867075386720266126166262530475300222067753515167579144143153713594285839443609677817321731748265888652809948256103416133103828051799312497158375880017501736595599687427985980207648688384278041389056262241573321284238029269807925360962495229086399998920336721444728660303398538811695196342711542407126705681918928231817333986513699970362390784030513327782477052884521224502024990484659987176255491792902091069978502221230222637687969803889611483530525705555070125670677148247437803636885975611315978599837637588549913439024281640577461106697237528587464234145635383169296521864295933710940599571426628894250940661683646884547407775560412303203269833012084095447442259949085557371400836437425306767505448158779921866973935089739218374168289011620759805776748208966228993517663994942211395370783554246450287278314736634041337056277368035780175679654301610874665352046156514744308797787283625529085789666923856180560896600074438131958019463117439955894318888393426564974398980407509085660911308486648206506597085773666057271911645590110456908931317607350043669231259568843137302274294001810150069035765821267150951146244333990835438398930836017028194204603858263547101135857434876891022282339102796855849932864193234863479235668482145458035396520968083723980162966380978274832467971905895726038270788386550714580841201823390236947279810519022469218654344609246122154877887913487275344387802319243456991076932064586007463941485918791183344497216987685838859033149205245392721184716609863009978667899672324954482260291290716350940566517897387426538140080307863040244076659837256167475678614111314552275782904472104363094223694304830279540102172333088794913632641246162342660228425874931287962233859019371051768162957838979608082223805731654496262604696225921753445067807991715292737647447546109969458757622073892617238268856679897859344859508533957072151073888958773371627377084296787749739300875844420294033155201367877900193416651988124887676958434815149719510796604719081337517726615704446202995346315845962700198893112668855972568988173666649855335613991220466550675788371259805030093676305238440001271250437356973715110200265928682788029869236043860825580768685412157601881274778707924429675754806491835294684834732045748296960735292163898562412088421234335441078962955011448697192742897028443146172198826328345041870586813781421870845050941404111671724508367408223458006553733266495376849589740468761452654946954068961802322111277756185508367798254930820124832891069322092427107256701681787028629843886318178078637584945069324074009490112182717144661281130252228468144184841132051693976302772221432908070958634835912000907046741166732883510227746177981430844534038746964548266771358746577835230359833209313098430635051529336098960211237882895342788567693353466524202736112778351122145735057374238471389556157974165997364114050083556276417824790964546330924578824052794652009425143654053742471193874192704207886103879988513751383194545455966039203046560297122506140514929924257536162264346720203678472506776221553945667863332215079433086802119896028194369339112055717435299691492764833715122118490774329270265668260737990853942975482865257914386491233749128319699977333490154241751451322158610856002537139135343536740535298991019708241861499691849753867001271958657168872963935364658470941974742500951570507012881227646005935353840649149429760984726802615211477761793453243930822352375516793886879022831979313065106954245829561916052966260701906677841612990844444159287324841671347009500060077271445201406877480779102982844149522464338466711569443038815700347315499242258696174151664918118594415452336117661599782409279433872951068300324202521453918499946245796554056973292021643171583121069975342278834066536836970552780731837721638959185632346012324996772197932556060711095972110657671825185643622880087809587798840335157591409807384411285965142905228395847712885067002687664691478691175493280328623241432454428333313283805849278504420520614866564243710749587968898599216413776615726174651389853443523584729692653583774116671649498352932646901803984963310774640925278915677626842998987787365579582565858542281171936175926205437686555059490033966117829014572905567264099094560864397467428623677813457041817017528472836047142300104482533965386648451019886548638488808929709370298163893300381788989025983649951638578493935503878999736711510509228745343957391247227855484001586134145233435511159916410620980858981227070052550666142585538277137837983637398619429633799583453358993545428788627589478883645962785298952288406986301512569409320931499753262391102122208310753703469363365949173767371136838923518195548075168068075939199946218069850970531777834134535978763846261013971927332048973124924350647984694256896234548864126124435877736634027003847683347751062915889427521176808873230425006162580959871844195621763165268842592822386509039228128668459295025443251500617151753327170395017612408022298331498653024382073489260045113615442036041518088511315079261013843922648332273379605767793491207609944548348798010327884481868773286447453479575702653496303118491146212171484463342767033634673710444512597505102365723126508668330340051682661431281627552493331343951078467143248836055068312893521714158291497536614001903490709270960166504960032935685052732838051039383711877041073639886672310442660168362350386478526222264621737420837933392649073778273726144741040820088820933199981683886698031334447879290331711171839607843307912284344441576418145046619620257948207099274296151124905776878095229141824701198359048081066681349768734374877849970206497852359876547819228848543112932859504744971498958488566984491432838638376225669307863443217407836821922881812777236013028093694231775555612363236272808040882591706982956469282362421470424542578220181875190787639163782516044804315475739649163801102429267550755944165520250149852095489689214433811728292153214612856191375490394748781907576083424280350533404100074175074246282039374420329269665858627846501223987827155694771220850429705163916917099055258426487585085189899990003065466969376912551851550548408382788305367522432964123052790519705200316652424512506333066157779660881825060846998255981104701598407537565272616087904018821021423489238084624933828305552879746350205141430166373886312372892391858522328906262146509733251776544329697088567324634614660131827003329355900550005599112401396083934735579350060949785463485708042585454959769404465056878622312499449232953337468432118384205256247345744755054838362964970182482830058146296102042318245215174086650320480713223113522080753707474025393924738771422894396709025023681411274255299670602798937939828673353782101201333451413968835129830440535388205942506680720141013423547320718119653079065275506748613628591663827284557155354529299179318433099845282546142696560490876053775639984451741016888759423070165691200620889075737746926389467347630900024482302540715759792945906500219001973175213785069696715882406644112961814882492062429702516281019116151764146800971209845824771746747462981609100527189749128976619845397796966229023708227497570623773537626827131887817152410522529955975359376549885124668287228378090218309280883324359766298965552729169196387566053160263694362126278263028321307434569762952439497926227321021229095073440538695103506858144953694159142073742159035935774548982024233404622347546682989661727125880035461411109210362447965776123904236297661825734302351321930205444503443965629291772879724346237455777810648075747888046748822869438914276486131593967778403732585728733987771924496739848984113576029538449304356778416685842014853875718998344046425877661142188099586485698765314021769107513296128288918698321034235812872141406216194161717364827661697669179177338931613566805114299299093304038938067762943906668961886102597770499123870991670891262319157629258330657091902942749735411308539023030918072005020383773786616268278224993284181218504083866814833090096837709613462325637429949122856040892733958019399332118709549326064695195027698873273244065293386158608868793790644798056207806459283954613073918864044718003509058524609701123008168093872790865022018741420685437347555757802486767063358031679230968989814753692702582637653644877969097965541833811766285054718979900214499541107688781749674099473664340237186033990256503926843668670322036539922412957750073530750686149722315240467846352804492349470901790490094313310261047048742838377478797424449836319083435317795230903914268371170071821986142608232949878101529237836964832340605102025184914797783303360504791813977809377133581045743536099329840788135949249399503306868709574956115684105093383183608245987453542867217161028915776473213842832951262615693310116451850429784527047085087524429751152100038344144300918915299904707618451543308355369783699299034918047810259828321717680716873812253070599552285875172954672149075925967203404506757520453013521535745028283547512020973976360490438441421215792768712831891858624538651139084033651808944050644689138063989848210756804178613748622923039241671207339301414295749554839946740656818841240944594366502530360538540380089249226905507963939935738045983074474717591213209015715772588475986681449928341310216425907685667239832788869144544142553126557942785985591423564650221347878949680406352412351416340228876024058224118626379126408768066979716747112170617043671905974221874944728277256942859889099856085614028964791464196529347044623425727877693288727065874459207536431007752166527493322253321079629602707591244495286413140075311747577164984204194523778226135487322208286479028485739103435695388498538600836217366197579978114101714940034510283757444881591581527088486591112443554982931173337544390992953921552875890309547329260837427194201610052490101714461755727491188384292745453430497957079971418270147896581340883027388990071765397843067330007296123922348529008605630942399165973845140686391718741778409226404950019724656553159300240141102344599213270517102737907874339888908068938654218805346250189354297335141328805932403020412333731932830096978313951400488592813031388357427860776848611391403029521591729346683922480627248447845139523484505497941754471385888688414803562563019112449572418060846813718036043025981308425170323110937866371060095337687037668715241076308266180619306692522051894999814039941299659743904528437479524051113933789649541685445032208752951643970042698258338062860395363746528031857781445691906350160599411964873907947633559592613961967168321803564583188773808390492854544632243511976965410769061180292169062628104474942380839166858346407841416424606733472564832628806808422095347154806601355975152057446630405817119149254832219501121761560472299911815074354782364252620160805109109976888344369458679154111669100361591043001594945386720267851575969941102662209767938380316175771383482399591622212962204584693504911514084953574308546191264264229008523528651256234607011027117520884242344191947550518855263896364411179920183793715828615081610307389433105846506668291542811710124320719354219588115154608496097176538217382211570283141269628980552566168723494748735187329716286655010769381140895211217774545956118153048783890198208557095707378712094142783725271703751679828555550114982346450955502380384311221112072306207119053994608091607543850156413229424639681645866940864065941463410685837575934392536154895250723168055455022152557214431624089272115456200945565680247996454343417965977580298786985432997314185428924662060870453612988939551866400223223594569010871661778253937766858290131217829597951869869342840975914351961400171912934530261212206997447288832497542449739026228242694704387465649470331524577381003711357482913235058323655894242530736341057470624669331504585447810955986798114576163673198308027847834465149244976893915044639820382025540859532883783819123916086118485507908086223059033466301375537885042648523089567753148397342896488107072626706481186108178851969928153122788255635319137286798088022692470011462920207414140177110101265415201779655334214436236713456230279873837703153415090859074632453221719223267056463647812523759584223842795132047558622422558743556623797427847013935378095984681927054307822621238860141823474682903184036293072028402419145858467137797967073936340729304145299304992549832156804775397067188424514566679165614743848707167628571041208048306189465565454391629795773071606557244000671477408214698580325043389102569458173102833139554805267883540588039707248578821051083974285321179963333357442980185675367426520281660537533653939775624385421468578993332333613944210444123615987304951840808323975575062429916321616091163096456102337409798571793859881977268792008858031636172338858761027000263433265591481035537482381529126906171203827398176542137499602585203444561518815952915798107725194788357429824635872758657408090810082577033696926806344892092810726454852503639565743956887098493806109429364349939871253753069511486398313004527538665998345609082658346134413524497475120207551703406036422145623818456611507925182957633025650710964869951872047182487852284471524077675656475681624899396145453564713177239517954199329336402566885245793003380402987616537486488727768367743989850572316157887042858509723208101039840255030994309276976293519900567893013132690881769460217356121540981577399961053952454004445956081108952169653498155280660792610893631904376790182985691504415276576900277987139024139851439309281441084060972249223082459774120276007606383496689774472201624706170287363877956071524490891714954003172953768495435881753273152049589002939838029624892596305097370565667862341048031057983312564066720984421409077314841228023073422961223427833721602211837048599620556100115129337652089299742462099200462817179697910219455840242410300720825040906511352148402364727661250832808997091349300913481538792424099054078506677911023936082022786484599211945112478242815429165759414570535752988768820164902477690809542552800322226553869605088335301926633347948601492324323070841784989810486902578815803065690326536645419078133783482249816932241986091518244304563292400381640385917001222331271553625257801875639642034887829101317582356814207306135983032933205410632717163112735657573036666045559583181140812808337497402655890536357181119893153555423865218863263460458710002916118224309185555978107438825646722254108329120198104488259968095870315299622419180166262765738107841415490981868378723063101571757058025318398495058481571641908642479255365552724614183837810389003092905444933199764690555094410873969783119188016895712893536450082367684784803411368570643059290332036009078208609552320194665650128772604006970703496924145239249805723460840356969009542783396973832436322298492533687740395528169603910182782184559962717924053268284024112971984242668774124294638856369932748939895640963702291841074001021538025453405205564500499438820778167231149458150265864303755981551861918662088378734174786337913608228477695441576362179401075847037744854128621964611270152130065667755040094500682254122315479833688008729018665613008998343155881264174672509660239508276971838585346039600855787802326855527250644979131799988255689501209471211822075605185303900341201885642507471185421318191887990667716394277955901819826772353818803837513220851989413475484749736075472670166132122530230666540887711276684527301227461498355463452581296839364437706327267256560848871494831661091293478524574479192811926734450784792021401387166124618778711973472522018491701490143479229922874830073766698199276856319081902923022343874519466775228262682070549468397373883355354461291939013846932846253924761031977148456917706084847251914497583842293973937104867094131828926727282158869281830250718042777434632899992178123371394343578142398932599832780726720060835695276367523985328149661752586255798950273637722475742391629125553197210362473995980054551289270054171772904598228876432915729010541639676541604144839063921553475607670854905807686185804774447214713697469332527993834035997199944838320900779285119551497691448226620255288297357411483523301635076459020382761879404042579580665330393109538602839349302747684755550241805769167760446284430400759011138052749544124465151234000444893299190710724386638131510071392832813202142438832273045587667854418026624742423442177291153530535788752040733218957821834275980627115305929248366853422009188016631596687628263098329108887429803919791058008374913642055638692765346579486647547744082012974729577245557710964733782776623446458457450803122595121596719830236986511124100339899108626850993702199312783816398427251153966886191731803072833531921653107787398305376678932199483932898348960669166124586878488807954411229528476492406581443624024837106390115054685384565395382989477866752587124735156849697630396791749957859118806396415979203806056530053053297406025350862180754546183822652318411497651034208215325202312062767851785737790178603429093838389420286270182208885501085797483540167538994235951543439662877576325647126653856105715288909444878923079501413235982942158332734183166817914421045384631631842483369215958102842157259679874044598398179310606992823833935717806682383073455133381025620180990626229135750826082529411346379648268535985804274218836551140361188105473906458204328098779208141087319889849436764862360655052554217146327901871646998143867897963631176852633406978854197209644210009930122716961183956961953031145964537105250641504315588041214530547083759982164395212757480578904636993042737459707518759984898683301721754772104797444298519758361393502999393288755608705804722778689288839952952156048167614597596020577735847771045800647686943992758270069136241480272011081352375728880055201732717672765535598659218777528845934047880094906983314741418005039496597213429057381240054252117976906246062944057742322249225555473386828425149628161550145506267227525538644281007945037497716427635185109529212458165397812658994570505257874289110934238390545348074047117994987231359191413142193383904438944628582999648764637002778790359884252868016347699018382938527119246190404440799546152293004738416644709747651886349832722938770921817574800212622423961455030627909913672705931072184674060873290520259879715069595767221697995559646560327323001623631297311062542932528353275249347660791540362957312928927191413753936152775022524131278070586701573021992392212804096004099851837044710272837803759740940158269891269418594358615111437837856491232522046055471101031245601850131000900510856195778816991349524356851768364625738345442038910846074218681104744335498000314322545750220825056663779988433291184340725250669381759686671878379860070962350903404239248361109839113995493701941210088412694420467552585929664080713154829952589303360486716647615938038987527312552789645244392307962458760203078570407764652787431939984089308558521295100154879726506920010938997832127000636269430872951152063265913048764600380302203935842090673691947690003337117722319022275098410077888839313113834422336378206114355184809752440206372678344215529240557614960342005226259065453670358303617501218086694741842696100831323870653175194982261062670951637317458496499709149700966206841278235553592063491228638162202352028149602970369864406175105564796014931744247020318821811479824090630647501505530291035719685258010497278888721146780645080322794204352196440651211386669367890377801702420442216133208299382819698807377299118420112599023514169226831973078863589619147970427746553425903549584769077899276122059218777399285262107944430083932073995588472869579393160615630052007819210458059563462326400698387671130461265118391570619130736854355501282817770393380475696215899924407539372207252493731448983773954993550771339664871414260010318685749677686971272765463385045346278051512407669943649162334772361297902397630434267186882918691340926864451819135840136483602323248923802015977650035875961467738454366027228426062779537967570524874299848211159951009701260060099085622260999858387411727943308822453580390117104416424756046162218000374381377851643925581131465910970058129705633301117956974611192233219360960359127085280095601392389842333830847209084923896647922701636845740126200650217985703948612161940115239836581613089567741859464602627270074949024507178763382964082318607944630155285448168176495740940831921241634857018930715458437357316521702420434971649894250772923028599005122132046090714120385593773342148998640897810549958917860789258007982956743543753458640867241179466783517192145175784289129183410566224835686600115249384911161032763952974964774255989855865278315654890910600090673471503379269688704557168174225637273308246936699007095415682036766519612604545948085789642169801232114214096285799057108799013656712475065973386944774980382946802504118181946246908152875032944195763791248544357345379982482420758262170379602671166057205912237670938198182140471780503916679385747987823511346188335123848857397868354199302318242737931112696518272899129673434448066160940987864623584419827306494871107849750931883642232375783999218016842358847982645305647858217798787164038319742206863745055348989154289928535001304304356224044537202244741072522219675060589289512268090697559965201848484814799700455272041421607069926003987624688258177914115200200996458008252523794363928184566091342908534096474509448974005529622945854499208081985734657737565397197891729725366985039287950225222993916626364335637083226602731509104312148549181446282847271511992822508506438165665396297836136562783727282650982946314849219411958757535262650807229396288026004810764794454852342847698550270184542551044954409979848770575987589409589785730460257034854393548054125756770806347197379543528156768664726744920707823136504309118289450671099308698163710778882498211233763752467298057994012613413945592060660821626457758064601366940316014186013208717221604990342382360764720683781045558863595363771602299041996307055439394281155585882274196597235182226418516452821357832009827118171287413004893741930348921510138607398993906245019464188000199926233472981646169624639277217852287801689850537615331342907561426452808806411527468433246598163100281282667803817300861571999096251658720840810085810404662760489115770334148412210227104640503894509413891346495604440494370422646970349321385002188695596213515057560346488266085461802078438215010337625010891554979085067691290920171983941962985141646510582017224528485476543263057726377009827063163457807191010597156943581659133410586547123541793688697690733059695661282971932368164819472599774923910519583048662865780016931243642551853680019094148924081109252049239855522439788532745628232102744587734716700618710270246108801902563236126461567208270693570038959435734542413126238971072181524656494914305706482599401424961451141967258384572731697231419222800517530897547078659864600946771555604573699079260386276266333809892187862183781854482895433827845590966281063422611214767766360612309245115383884774976302960907382731906400257466797854399707680583298263670597013220000044330581802281258132392382100531060328052430784384662762989315661451232447491563466042445657944327577339296476458759700876106280299717015286039667146453518657531649736494762675012406718321216601228877954172243454110027402771187335382426915023867706740349852100837811584197709512851563949660739023126847019918986662642497656961613524232422552892338007799176596855217430833488442185806847227963699228145210149614167374765408955287517322389172953919540384462474067648591818232327060679435873411608739283611884233306098366372063613139917329914570281633025063624308919623671395807471985341226431345988742099090442966314920214229417104031768951001915047327112409613111396491813806554230702048482735650983069157939350120361268526494230313852557593818496454240830268707432903988711751526575926537185792801409578489301947759899302092164155131249438122863188320792038536183500113866856071895984115526569353099070405710395031852868727078126127002636997519433828417194934702418258346077531588450942448249132070135261081485576008521297067730068081172905755972332895037780079614320509951306161143167675862407612752224846292813464072627537173585168056267642560763531427751555102023824865455647658175670040471526762504066623685649574114947364370645384166130775966979721823886706353369281480242231024935759871576214459872649957293853756962322561346131301806692280130527182241688373340706819843333848600117759637745098624558893359874427152005917627794261555149953708841375567070697170397383298541900342652759799631121227315253462610850936121676614883509228933353972905247754228704153312173729012839229163363043263463221506048344211149477463049793651847696525376921249646039864691457742684024567774316276439854367898113402424512340245395119509135256365499359423741581667703694605203005464731135247131131679805018791575892616593886095348631722285192179899347439390855327470986145609919833352627634838149073256410670576939733284342884937750027549378064222568542601522866279319617387650826143880947478043238702716460763000041099240099493706561429578291459378130616244569233560809072720412767499421634747239142926677011060696553241615596130092653960238175824288348472523117388787480050162424252085573615926322676271078653434268674250036341435151821435017113695201704205979331592807024056316906621614795367243376285502147599255213238499021338236768406949973793894263434493068083665571884839287795097517796999705752971760769408761039971541412925171116847920910564262973840294018315117869957486560553084146373776279301013550872479630289667668727477150021304275595966249277291803938480557177962650365955371271180704654509344013056585601853386436441674408133927652127177336552667115725418028923333574598767843506246802050260435748962971718939177493171353154889808168738286039634271210007066162186324535696550309356699976771599874316788571941407631625715504883288635825633334687586598889583246127812814008859327197681368352522728068748224315422513121150927782310125970256760237467597635428903869089215263535714709221645771065129166764399187586339514565455992385874678714098019362596638562748892412348210923890249650908099394460078039231361973737083233650175786573433212025068393814707863998318211066879807172882875117539878984688178909524568038111059167097912478840091605290176303683852261944854359718007646641203511120029130926578273359439466574677930433724054722672297527967268518946863697748201075307567052049919577357476883484848830632250361695698119153398997314996340434769435847133235339496342714059443507698095433614000543150937751131736216934868784769239644827294533872921308530969508299461290394353500387642503711140453711624697371285886639940361849823272657831358670130180117514735127989706142829837131659023703759130195396379140567770206889805674074920168296089843119727225168837580834561953264667091618349955031611811290755910469800795056394014134949667925186336912458969918150187900859838010245876069128665570229143762217471971027949233131715600095029213034207187143144392652586512143957779949097759654109370372934242947883543211547313724262861828968945631478989893535748498881930476076618274549041823744842395255971124741683774036484834898483914885743487995473605512924588824959599788264784941212646041274865185386943758156479934340412211414543237774112573310952878713194724974705668223063534811186924951386490537966512814165258493982887780350831372024336510838659782052578275391626469492603342177437530902590326605142232068957319289313134718381746129717434599375218899029564641797768628499106219884877674325125931204879877868254696779572621896789027176106887135643976887924414401303517031959283813780652285633027222064495695898022496383100116742686124510864492703128157073422761563832529811069314620390641199817771915260406559330529790907020688768152626885975740709433274221801304799687787192640616025393895366255424897382191110967995431971720623470894393130539104769713433837508986180731695990113323789349660438585372098949549784346711611611747185435647945509323137493934372226372861508482329392246881130490642870416227865341849422810404715232510594588541665052429007654945145035198642718852639484174102111117209067178087160682858318526263376542060511362644997593264860218068777408423428035370781251991196217476713996456764381653453920699188155208076947202172752252534761861397031173997149686336637264756150301611676654491906134898908348551210789460056599954595123378932774246760627464905893484009064173008206948318749532884420825350441933532398497873186719695105906549226237632453579497110427628291402243576704624835953178049983095518202867251640384365694059593928391214868163328339452455745970468314559772990718029954287918852241405749872456937547209759057438658064908262617194515612420322807047874886903619794589380499409399421022807413736067732248299471508630897544498063443192706207077573682728610296740494475899019533613943935587798356645693314919382580361225638100977765015479824914628357680711163766501578295584591505461714492050346597516117146710166876135584469904484455215014516342872599198721375514117417352968578565064808235066953037487046755500807633870973051718475980888732721603401366119721644664599784874189407548542835028600126438893009357173602532813695595854639222339243222969628774474346224477084139681744842828996440478576370541561437876187608757419150549086473006166239809824775009875032064217265983897949738305279770601446998142837744834851864607427047251955095224966192041621604920978452180609467868767594103156780635360348865970792914483566664386380249972684774717783175330683079775932958694202424591210735593073027405220447316909934521204336041343134446302450087907948958479382062449405569369896241918686934909335794090094079221383343724074250021942051994684990351992011693831031367484569951891292899898756252177008122006804472596275610074652302136426736920221246447508559939199690542608159647415323754448621555908469280648792185943854656256141693720537281785662276130256722654246105264618568389874584308670778788677995589372330335353479461108841689318976594101025686100628867264218640978073644708747851905946481631561695708725616429942590070880931459916732138459139455517684036148259874220951584773820917551811314578187068009099905178427668655081127434825326388222996116428369646184239081756718552142911268965057126665221953067732053542958666152931234703659706910851367998373072087344637040704011003286438028592866605745692456561164350196895921997571072697934503605201361207206556215695230220455765194489751169436336595252374893158539212487670418756330399887495287850564908722089402143822007335769911537772295372868601890255443014715126800240783569968288545497451171487412832711731106114531178960380151509738848821696823691452462263760066020626947799746065138479953479776057673468983266810526719352392198968294184598637655406745107749033221002362234756611650176532833967637157472096050691066662421181939641408750916494492577987783368437648939661910402830954002970803921899005900726924042159244963596162081407791995670024426518626145192091229093813728081335241370444251783328196448402230074595365597715726218807926237761497168680529949228233501019931949558401920226361872451699507886366954333581468492368123658110387319804371107098599233771455135873281208317297115745873634042779491178800852026808146780693804557174641981160688250660255742178018797796996396676364636156763588484800653351731690275213881484979740378125995479884934589929548821088956343824739645281241038745981160319521524711695731573247352470143238145802872565477388418512114258502357503966194910994989793133705683095740978275398818003555995526734314638439116344665436280480726626115982302138715370671122473139712318772408022955037550585058530741540305219439689653378767541189566073722002686759390945227496659224987965958557906057153909517126904527773740483129920995965811870711821312020275125950400987503882175486725669257872760660608627248869473145138250234751887290586254726907299225977580331228092930313114621735781330697355758043974806356469349959466952678170655144452114291376967690236505793177143333538848452328125059654593698029138496168152412791623061438569417106799705970491373722173593621097887902464173422870109639344004022420975720759473788762808696023409829321378277202563448098252638607803091502892032983729087236997529461309811564032538428904075327138108043400770479366986129107870333967184375687688444489051168659797234013187836215299369954406380794698541620386195307510390781124449322778785274130962417421757256022985670176325174895271014069749908475524392119115326547616707146627013482488352650028784607379604791341337826859106794679604266183371978127585055676340310821107695424020019390097774291146573342177431165970791074835901049978620258781265821956780167534146522611950831254422392432837019385580159008606437543699875674213830338882488445054848868679792744103238013694345149233565215898430352730571493321267573530324009123693518461648592352003445636853021834880828719837369671172340863860217801290822764946812349810815769818071783951826991589460169143675718950343753608861689187342221509852795775981309686893506424370885005221214735618382526335274815973897665375832552569030099221147979661185820515316676104578838543514455655290321099610354991551899551397333045841060520469012318371621210001988321919933077089151196834544454369323980116649131655680125340635687685765483000565493963732511963787793158401434848878565111394838649693515751452044467273600682174302852708619941810263959745413595806805597490276175865785969486346014163356620758357619195589814530389488548761283695880614617511951644665527206269776340257408296797684536241895764927590364748482591723800771508534126129221260038347788527868148450678001046312980440227582433290522904822200578126701189751618810121646379691879816546561254861646431445800573539534779530565198378933174964668649465290920710415535089836260353708833219322900527895664212647767595599412741935548394504183312067305284844064013539804774166373769204886153112821900385476535935013506358572481702056205464890627185920686541340450590211687757704953591206664227964540801763170054725681582077354790581767186253793250476643256169419449169853507189572179211753117112776735136003401695457118016256246157869041932008720263431233784357191131574134931574348001329637714889667415109703626631813478258948030281829186003859913213386990128683577400541028695859157916631040631469903888684524824061698410743642668693871264318022615181574135341664408366021683325040921067830452152105507602662937800325516145205743578873140497012071509942396052390802959754593271259976899330116449058771964813079206573543726224611878218193559151919462620151454239500892836834425024160604562790046867845159057925550558957555567416654378349420448402944843649873157149019044072887889520556298413668469641065090962697152376995606370322995019360305144546291873838784785442763526332932359148842140139322421441506786823175091283111311360489070944787334596451881850285016636910384988370969929909075320117672623248761810501388675230470574798880721504028047242424562423816208945091085875396591108760568802488096817981103562385133142664975713132783489598666999085472580549309993415518904970369261107253304249737153652127356792066551949617524993435394902867814116640790185215857577577473384530126028219187309017270460951680181678920319115656728282047844547540820645705408641268498588588997891015357724507298233008626210744580635806585784606026616017698688995981809971762303774424057687905402110516042983414577930406231643043159722495206676046102401658075463475348024287249329212409984949524569929567302622211554803977156042000106509332974634947267357634803773829373285941498163510791883375438857657879530273343091923620575783343869901914308663356203399187583159140307849186931279600827176594012792631936638250613516248646616400346923531964333181476671770347614814793726148913745099329668624356357945180995477562900967313875872046224007189828208958692518880111400204151563439921905446325976725471024444452421495146462454713224890368364850793360151045015942245729431053728189603983846623982479804678507166264806557335227214376562437421505857973065451766010032480069361070872777226038447920991411736350983997748529838193234438994895439559359366513320780156077365419702041946660386511198642140519187775937750840610230205809528175957528128345504335394368819719367776533453818084482227687691432000827030207465025896928955735783258750826569674385556360416794566529076801926337505923958960227947963312796191798375179872594406522539155733250984913696134384531418221049269774478446928924737337288538719918542324903980007043572641377027022385160856751247735487703718715188370120838644703766168358571793066777327614297757608455017005026783060544908179640372927714204015393616364187427121109000419851543955036428839138681005551153603665534535144269054591427707779421365246353551014155392487064010698271875490886760914913130017486669387753683816819731531049944119556251637239420097911292362663724838007267072554992929760160671617611165902662603296985976509264810054732358048604143097060360540128822517545829517897065879610547664423387607126757520967851648396622382248751269312072396666672382767781667500237854576208012730168063339808341260581860052795514369287670805321167967629140492483873982149302089441312118061303846445861458816954587649229925919740655547950744491840068258423518770251365209184315896994522450507928209121795536821251665095913727658439975697890067012838574540138357015173783995948453936196192755066902928877749745418593290133762875918831170446376633955196268194746624533663294389282129431900332192428557119016132762534745145652702395421721609841022153599610523492695569136506163960315218730838261087758402485703121207660247969488427283070313468980647333977605359014617740944754248260574742586311359809235802531079463039639148477482599087465566297748562922878764872483800597515254222611988246703922340412730948230077900631571022559340538057698944624759292963870277019858388567975216004996358796573692077882785913859695172961107670911007015605687360240860981383902069603367475281963712512015810362818910743278906408236057364123817910833113233355911608939598223756840750474572758768360929645227358776471617027829177736304872838149147506470865036783983033926247044504939120089445738786342322177107200813488238672488594223374345531645113626612564302984892577428765314713150660357278830632156394401488187252266127439103466636868456510672465770628782754261864653546431823319386402985670282683995838809037190089064615828498466989906247999929529417536559355870123092581710154635957401819289547110196918380000115337843156833767300240746755005779531581713375417207560359954990240782872632039519426273626763461179583076594526232701773304461154178118222612587925549162612120875794222558621671620958879654791055048679714334976364031921588238442315492663456726139766693072117407716228359602782676435598378386223650013391792633326770880454542528422666410718830416878481912172777660262364380886901212363061141214313375141837144121667157453402782730304793397945634756099868895274220920439612439233157318500750170718297497239916708069277968702245941447922620348413994290005182073453206645801637920341659741115887783600560106587353773043768818557978138946726586532739679139728211441255640274341950751714423119575228935953763695164277597148654708467684423961474283994529190086471790874611652723085093823690341007934250474080279705305360506711917318424479103336556890914533565831561688202164792130295802538938565158497903180398098999606097942361904118118812705033070803980935512971911577354670814253647187525091545926762916675025326614443630616351282286143629827830614374138980151435808054389553103968448149908436397446071525642242297284319787465962755580695833613490161223304050686393135896595495102945823913366904577158312682440839490571965300445688763689104580789286274631138466547458452923958772439067290484780562350177588593381256352509201803331704020870972350396716298867735991355709732824257861501823942418597414711295743127468613701025802507695559259385490015861777478706750513437833450285190655833489224494618254291774465918374303954078292862191343287893394807105548898481648407981528761039441141005954125219816018291495173473871896758714620351736267701878937653642868976727809990208493567525201607419373661197846032881406620194026125907723025805449829838153540303813308272886117515261892108176480993772656317056795149972959733110041606833463623038006462232848865590202154454885502137190861031613926868543140004377875788937848534209039829410521542093052785809899341373069386013301162464995610648317392148940237523028001378952817516738765409262939910460981080720661320005777193247070226306937182029706529861567655622221752237594336389515007755757031155790094861487420783995875042440458342420920090404457381947763972801473456382412737746839503210541836988294426891079393172289865720746833136382684664384206215029926394607731528823335225795286701394588969577180430978866325664168009694685775704301133507327096437464861224102162963935543020828466068158657113126462614978079352618538443574054928330795742873978366718895284456175682668298237800415390835860517122288800873743176702544388626307070407784211098871524080455995105163474498806793486003184323467544098673774614846344302696382915655976282570008874401777513251896286413121998108241950913953838101127326586410780033853983441021097547715412816614098482921386455441940821958030860322850367906989202978331787439952814690509263848216454902820495257631458749807450495322721668594458717326045057003452673794913898231047249743861655707021787484035400897750157518848366896768998280195284919249794525073551964666279399582862524769542741902171956282582649437341430868207709978936450602616178829948113532318394796511843415401768896859388643009012546335719647280829500890531638727284408574505693779269413633282854933187134195271536099169201960503236941003834931689164021293761828218185282968890206043594644380835526086899895252416296437248671871224859337784932547484363781219148106267501391065828701872641529683978670431075742108856557136118649249993903627784141778501109922481726683873349927312174617918272804778260243009581932261466907655624636406000884831536133422554943644222633047229786084130278103478842617834703245829540371341681718468241582065522478234196761956881196154338889216151814454840219164367882862700971847779318398629542884985231747052133955753041462102911541167843317775099643241176631477427524718286936096156662184156018206660300887616811756169275520598070492849326426564928792581303494832065113325077027152668277643690993593067581647978684695486043236468209036833500077582182192401770972137890084357016727401023371728114208766318950393061994834718639974594304374022990698932294669749616863715804240286951517349617220775707279447488654265677696482418570842935419511394613751592446829187190132851541391088960296168667371579081580738944786980770821946090700869873406462570980419802801120212881662889148689546942239338444743956963511498079165848274905278138138407484963429518219252406417686997906381429558712981958153904403363395984132400471313000956233090459057191543758455253742647875164399190502762211520918712485906614227334355761073238439416028289793106612732948491127903216272469604747504522070612855782645968959418707700218555847717179465402411953840449679393318765371745953535749754558947632174930679371737942740375532989882188383640177731242246047316130402505868431368769885668560201386951320344926201527788927686875617778594734365457732812995098278388485119098220530997812440026049458920580185380087625649429597999284566132624323362590044481294843025887810989126006573402021593236806832262071965702487234869154959128593554645914174375480092937722668624318633313782003381386501260055163249711175307728073140364023867378525409189828404869545851345395524163095643592871796654960316040112519181776260087632293064768416299287630985052692282854301781896183920510993399352928655716286576142276476832700967650572982077685326213313961056644951898693666693559977152746014787292033463607036594267945224068000073203110602838318616643807807832639291599736732989980047188651947101152124076153289629172443597116351959621404522573171332221777755612313943379077084221342220540603664153913344356790650767948472524039321049273363281216426366539306416644250414031501213309679931565172610086000498713087843546809643501184234350438871988636063267054444362924346324991733184882800840406109585165332564108112560659099631855549890081967442927034286922935955656724322113477582791168837206372329723233819573344411582062668595959945287716078057327806052153508907281688974421114803852584108829202372950883307507581397226435825843913653420096278464940428726715488882735633488304007975518944456076392277102244704456194902531719917637678678175677772597360246214661188627202470449307177496117847976137102896183455319946950914098570389621524921229503295704671096528263070125447919560141570231826390782418685366238297391915460007175321786905060325283911201284320486242042266410995438643784770989365184895285867348062172494308126159459198667319824992583757102539233580729425599694296755530499487195980234268713397852532498179669720794527579692119550319544072020963678047490604441096669632447812442159941077114113417380339689709705661064986109809097893543505084855016544957180212785326346790407483550881814321055408683732636725162272713429572459446074049740245088024580494798910447883287207465583148595986853742196334007037064669405380481249862426731369407601154520363704493530716952218132331846899216653702830678070386660459032557873547761876325306233684241149697536292917809402714116076515863523379742985457446199687337524245209990181574274618897787790401883800336926721652864522017352357796656915760098860603420037300788324301806109506911930159667154157829308720010773006889563193227430028782154083256580569719934278953348332539172154605259957614250161980022712296162455579223397649705541623690795962015467417745768272305981902385269394960659206986846559093398235633589321190910142411550846193085891707480297802522697080126312974215801200295832068099082926353764885866957799023507004473997727379733870782784730192946663341158463377054840239728527508521721335372284295151808359431040743383069876104596750404159640966479904696268891125379622209948948592989692321771607571789564155672881324294990163773912494645732825524226220613668745715261614614588366616845010399355474732694447367192225194564987704510232934748524283131368557759836778498319897372650622335113473864678767575608359540442219007073242403686854276834566752125920151704707091482181453567080744657105769056917209062305914103139951542562704619781081167227024184056464931036542033291062750894164810880638703825956596018159366199338568420608758084820496684970347157843070111790941374937643838044699648456697016320063113601046194282441937206865229207752287102155489482537778891342846999008043534422665653380219382673836639181725613892064436284267550951394402373044106771538741810004766675673941610177721328998274341360251877442781931887266974758810402404352090495115110951956626277216582472388418239931475402118984047252435504371318756809894236999393172750534588505107060703794339348201738674351481335159511863650271679272237424283818192899653934169550620739884714735699636259200465833944229899098968990613603370032499453923352231620198094930786852339636562755872669388995793585492088247280262155588309967255296304244073390352178432196580209995307198588951994440334606389322422485147243092144329859821117900104781517427669562147619445633049274755683668267749735440570625487008783497953761004117163677441118677964396571424851065379659662380863400158564113020760369825003429645608157428015120200023170466110544399355806462635441520529764701453724025735841781583221809882885694440599072723080084373274229009547083434086945020397248528935357813497853270909546341476658092935421969200030622266198235942992808276196815940199086949085195733948611974813574216731700538375379593891536554186723464490409239988709098502153872588383892892680462803629422596881590893691610941787895807089892615117134646777244601215589281110458947436900313884856766198471115560733845574774434100312855019511201700053487509390809693383263004887436918459293324926213054562424494642930811977735468583951434760307547892271296597252028848535298735330219348007882509280814480619994127303126893298977654904296501676572096899212749728401795811847659038564624635754145338021910818265770301046038186031821210251996688243290846373275421273348615552589690316910641167091959067824227306117393055225804757196948438779580984102304269548878062226147144365873792006527513425180227569432448510826790308495051738896359355067376222152168854439780354388904092987716057879123583916445894506638537990299281249079125638343929425490953907315487635268310198220684430870524982062894452763215774093187339424969694137323822549210833083359652402915400812071751528466536372237064434372532739933577755692834839717970843840378437303765585313720236321473839375222186239652177276054157105464236075858207859690729754548242449913902923984645953858895837490935477559325478953496811603277086254511642111711314709947833652375063810750516932114220058975132117578822578525797533866101617673688160867899229602781189441404037724564131651117140515393399096682912464243326110490340028229632450293354818744281057789493516185742966465533137886444500004969906326152576175050658184654830052287947247234988985841703029325777985511505336952216534156159889717068889216123299967865313510846045910398373498720190379605794410450241104277016944093868664268754055264312264574313245785969380307984232340242928217611694309443826589084844809762986545387273653892177383342316114475090947576094007305777685741827983444255904341903805317338489166125596289236997322255764286353797428681752745000469129663048175555710514975601886785248921509964100076457031353206494697123473705766995527199336246035650028254437054531372533544536796721128824218608158242104464047430606479525695288794251979223826536898905174896337051624838411079087269406445660979488121181833220040635823747632491760636581591193277137221108303772735112184236816677717669333786735219674388220954576626827204783490545441246507986994516276124629973968616146723889594251253650577264560668823768326882127708619065130725672042691889391254168921302618625040076427615952471252848031708801621930241807453170098974975304779278619906067812101060007930626569465708613008435649272953707756015365362379523975798411397091845695640807892888703108818631437705912757039628681108615598567910332149484961182633036978942369252298208897372868818804021106284195904840864039537037649525562891079779697007499156529863882086307050241991014091061009526431693676190167146443870235083610504865311409709919604340471272421668834330733945653170439238677224538505655006867766577332495172766403783667337391222562232703942572486256439505862598668245035280393434557962514704483921367480488478497221151270220291794339333063968311847620488636114592704889983038169211887054886428885602601201753702991331756702895560656293034004221721309974006779848029672310244589246908981496744494128930944683634256687753220304396212731391726648167321329017826595645624861636355669124460971802173876106290135164697171230851534509931186383276186347637121112707794757210012966651331179135262960774771494965051287730032194762168301661625027997918477470069073036313562735054006121786926608500392345592676465793023790174969236963286769843172865412504472898357410137994463870611333308571788400253204120150736373434496282437901644133635894156440736889747674451598589790186511451538696385193265258054756836681002305420865013054591620458170206317418086022472250310165619102307451490488565146458463345533429887479968994497304921545598011786769519311078442254746085268780622828282619323786207500119287504119934718930169483844717514151904291183896920512979104803645795070495722954783562212036314991679384075665284423744790847945936774387796488837510969398904091604536317467879401541874838205806190875579652352670329021670588906082287641840254125998063713683493601713088534137773896163689526164535958923373211908100778947074973062533140948427261867971434284042594544008998435305586946564448401348829993112287965768550688728450917967467421596000978515880339227260857551130794969265418686963304316040297126523286125830595072435551236392076489899167106520594314560841634725203644924254622042811626486792854984686905572268425581577240558008664293497626856479827419103112067931885528023714447562074122246287805231197487628797558156251849230437432831135902670014252580836977584413236877685822876487543264038534964710343384699212359644079692330631817494827487544132918505352989561322709277619385912396691622617040006032088024694390583697832930363199007664542879113647651365315600549484978143166729439509825123105223316359838075328738262398144903404537500216854561013214536152159392180932133975959896133252843513417991996718940552916290201765692711448919562260351215422520466615718080657850599808039039280153293411083202670724390880375699631079928063804906785220296378536233732349365565726285816092815321953803046346277407397092019802693619501975307553326361994458569445971767942947136561326463165573228422188673285565816778315443853000811247781622927820532335652663258326024824490595249008833679572715758345194496845955664991576728712509246252437633684801408969275473841668055097039858987766653604799540369214678527345973386698701809473814739003633095578776125146652993873151288680569668891625528633315450646605803116195204335182556152218597705431957079750047831443343792025315198534638720681838212340950070127619883596159652938776650384215258874565849498627938631235328935002298162867150610389015075656209726720329897272393886314369439447698431980130572852893278808176516535034683476471791855239491232480685406301159972262794768971677820585141339806363721435867722751649159926890587432129464001998589993985591218425729000904742326549621359962452902241310616852567460132677920280842475593743518320170382798596185450312318926172789550967869492015797922553882431780270022379717048386245163780211504645047461227873338005414750766305884992089810531630101373656590616808840280752858408651295063619133387616022317837794764831215532704299986253651912910268544131037424417631577546410181516530348070719030672453555265010580749887361986818751714783416016094702225994696193118947076150483175810782516221893778396378676123486630580222838085907613369324985391797851200394469235229374111880257153170965996251816082577179665983268005381541244706738499269652299319839865310677928329449735658777435155650546422458079300708586170603317910395122156505547365776802453177594839448337405418258750598841092782748712746048222131664347395171071743443441213441674894455940210778053083807152180892509862150779802104945964707745871582636138499205947863399080273385052865178207208757212337495294403227304705250757942608858997300880190720086727913557271656292103963191754841931908376810723968893104897751390392047731702863659303790770030336617595358479895949982712802111766833010175032545346675709076506737438127185388027847914028796940203735960045922162572656658690020828116643638595054051615911084151958158032224090852761125183167552713826053749444454756823760269625171387243357871402386021436179905595725457559085939305267293600346337201609252477753419865038299203141490551757470003049718484261340600018790635495349440439077722604145694735361258175554580910273370986551081723153925391355277807541276098970591134383057247214679420414934102743911039277649313890748701579712069970984263167564905831709577231517444733259781092418797742007189938783681899111316754858700633576233336176729755942649612979999405431564763789869710392209089476527828562536086620093267581570080078974493921301027757650000765122528672385386210921300950213597584752549501279801720580226001544445321141414639753103401334558879444738669384079379734310581376812121762039403281145216638377425224926909791446981245781868197579768725672526959136631104538198443133751953553130988385246289289711483490416095443715511005602231768077689853492004590947669018476082005939489874461672314251440002312920884956783641244501590086947015159723339778502656424797744314065166646801076774204677083545452910169421601533863133830884376498588363966711777124744972150468200255183207852752145134044054959110574697554660315696257849719254791773071910784562143264601620891086835264156951957526667494292090600222467181551802220513855950333273459865872285588559033877914036573623044985150101557997698514332529316015103603092615589504883893935871675132535899528619847490487428517795541858699496802027225814866933570272446001027612749405901483051113717773826388610193407630927483128771898076166908157114386581700376435302491621854840578527616017566381041284592673413828976919230932628090620445549945458476247561785039495646047524766298454481934814803638387908215919557897253355760987604666141375263839864295639889804321102669978692626960060933336780854355671707244088684259357948172942521485270196097241058982109833828077679205099261102640183099961580308523072973196517662372637061430660861595885231561460513638085406355430606609915256418976248767980946742483184433857952357848871649716378298244012592584070002335157094682131974470711994972311209441606508489998779908150732696022113827526099444546263182406987146612914298383637657484344296341683505866592313948902727789452365003720100495652288683718689539267117468581067670565332790754125071088956206665765000481543134579854758541917162445661998340560827581165279626885109294392486131265475041641045191531593459022063170187531989404886314152839133938833367290149233716844595004396836464968052757401305880898549704556311721655576134284456665103193775178066745395223338113720128415646774892482746861298424278416008088355067920716265151895446075788206801760920878259207290435627905723338966366575539938666133175673291825477759718978807933536369158959984423481703078279034730762343879686833984752516479168247464608030715168905465766044242034179998050191083698456876439054198177794953317682112585849900278730157241679307637236334234462953539893266218949041905985937335027141798993987144929610587252093639027223031608372658341494283879718556064393433559807411817728391275191687124429243381568939765106214240131328065126512254993101899898285436080543520995799132553600025795645307185524831711633176083415567000865584352034611363501075899587157836047819974546986759604003328272323635924295266271618690543203074151535654011325150905776789751521206863261565784060245168999342561137040451736865618799612418473110578392466332486467832945786661852246349569546622368611307324050512546968991285128836547068139912046513650500106049145068540939279945729820954130693467223865517137452462537457672279887011264903558159795747097556546530617369772804901548542459393864945317367673470301955573581791862103279436461448051892267918811767079538796526843990751886665591418552535719654966552728207142228669950979666200178402987168987381283947595244569953361027598093181324272687888830324447001976035334427984586814364301927045719595816980076970568363390177954442961361954965342507450821173426877469206977450481562460271624555527401282200195169298850869001884941968357261876292641576456556010087062690140651496554912520280667361528966542283347827373156630440623565940566707966783381553962942897538362217535544606023067295816281134401804333004969546158923704128128200090262294805439088974967112566966016189171482524009048885726958999829083909858063865038282978125579024157405678599532225570356189799158522154815347927177808099812152584605962704387152220470125778990191731128033764931491275776124582838553537500609015510641370479970959820195836973120057220007993972123128003705430402991352041137686855332971450667028822922616960330707330665230736446968930643739162080545633324613288541828146549916685752544083591266934807650443931499694044896214199183996606714169734190223165003475089741420548147270847535374243228910657128144424664382729642878288563085125681789832192604315631175566668048188430240169024680856526819557641825658624340895914905115492989905285437301779722432854852731343521410655645936290283628408332099968015494960261507794139276819960624120308421059932867111389270251913325653139554733396143141114396323378311387591198636012893240972645303492069091409711747911372087963812229409327649914616178202944891207243079554128175813955880736966386254519707316698768229736253846782717904443634576517398714501566048039482650769366487553262143763465170222308543856279797790598602324094381226880983843999394040199750320551304130420200744403094638375315172894453732880778956810640009665526372324741285211931852470940945582679445465362636672280498577169115437253330234922028235324191350295226315451350686559505317995542958579469008408083094918345699736526293495682335239331568816554091292574563210103200926351307817868554601454141256504410074853534680699370895814715650787605433402625981092241039102053492464565328269623921985674794441768861047495214314864702266513186109716998080660400433588947245179647123556786960754655868966600041115759654788638120791222834661852326890445315989647113951296344738311717823950460534927246973614451339819145453155703898512007144254620305574609345420739262224235034475087308184245899648474425066271035966337662200948828559895056108268383436578830475169669959427072251764896785779252427840050709581052323770987744141706206599429083983080324318266220250305810758088187580246339986592909725744634595439835149844466984620209611141444527527508038581983897253900830252389462242716180002388659140023791123959387410132916000924909169630717504668676908375240308580279362110191238873867594361260199923849110523930946615061921820818526699536780842172012681568801426770824156862273123224452971604213920522732874073796641899947172794652050312480376030146049086884615116888384887849415496748928775001817099695982124918646018693511175594189778165145620158822588359195775016979018144929492678359090057064484003321089654637116026257901820271903025590902145926453230815040141593968275906000205291610575755559669327108061548329226666712109679060809281154416170799128080836945967962179736167673427422941465225747178162123678078220381555522272729255699034071711707211265868795665858560473840196074989237927911058985845398910746154369932265311181158366905510162994327023736608013696394311846181131507604779219778492143145010355775662171645782154582976434223061868839190819264380941187647478643811978673631337256022547053190233357770877200118539200736847170934144026186854755690969129228611753350803686887020793643240918674730005799361751354918657792293358702284112646918583912300383702032641834529737893403531247223345200770761954235562751269086847154381913995148105401168933231062131691729425770164381530003835639854414905212826975687509796596000663458965219798207779457946077320131770516723528027687565697695896744654537055866928391315946181993793846845821498245674464748337391941942167998673486147989921013889726206485400284055828343693912893950308666874344077887856404691071811785715621115637277303780391161956471027717572907135577964687965373174530557137492110068250218827417332250538383225682591784451057505881798938477067787221056769871065383587501571382378514858639119671422977510822620038048392964154265872520708835877632264645589098453152370255748800508066387846285589241037636478345530089299062974335739127250484961230884429421911674908635439389541254620604511782552747278834860903535577722879753637983275154627143058168704912812813892767061138294566995650928582039627058058928244570817289718613005325148076692485183128498468838045020369304452957366063025064580365459338526243687266650688793593437518987518778706190534861536730883322612050523217651324999047616511659518373387751871558076775694774887732192495835557649498117593050645156564650471840357018801134956028783216309972089993940036552312432979925074141418501945596940951281403970391991249165088163393135373267451386895538174414535974854785848388742337139393808282826691308208565494927767780367151652035825787928062074293926810827362527460162231981282582012409079889918808402621993239822242961283529175260969531454927493619352307469411423880306848653884761015050103034133034843171776827633037203517750408434601864896059373713948873872721188176069626746697125381322316264970254970435657325479633567421832820177881396080618274312065691926866551344561550753756721538424455304671592095031797917772240668714652583446986129330495052134728381590723847151116727969369633105616163297787516130196230016794671611733425404175344475412832603242416434061033977160417208852429470736946147792244395281226836724143800117112521672505224491416441270812383737109958200598351642165777653820541676885107192362196683180516539136584337752456806823045987579738253990321475293654822236157163396197906493000836575022932116955044843442786962449385416898125961812190836476341845642990140119366279798902549322018147884252342466009479142062952448761187624033755943257141747511119719033209706515111206316177434645248003439870497663868585695268972637551543259798909779486898115146621863105916140692370378479144832327307522696295382752337147854315625638876982556647916096203101628212029392424777844949297515127831378766491862503792385112267859280745829992423961820639925262481901384473045687730502782038836526970711352930042173115220851705265993998921520235887373973253686215710635447010290122311033058283174601617790881367197702605179395999724198756829325577825334516104855819563565173382501338593364557492612829358482702846134266451537749545107400342331067049914126721213174106378191147072497399423099722851119967509110766814621197694679032966253627629541212227054382915643634797216775885217714805039011121012156713522171623329513071558123844912977167554003970033339020560485390520909728530767531858973482603609422326545002582931317410500623090839104723837958073578640524549999065764920288989494166712078138516828256245399709034724514171282439296769300704909798781212103243032251275335948012930369864980130211058402638310968469156216509113705868255174217043873980335665664004772560905532224373873029945089701411349456981509537528029430784511354819041356121062404501962541648744068264470016853940427458336711365296629792209662954958836380806190359855948329530872334761528485703376144845997612870098996615823999837303860887726960542386232403327059776616304917706523295277245760690011859205776049776412153048700173080789964800464018865221512927518552796504428905525994429890823642858667974485934382519441631129828710120493573936106138634019027657106910297546216757951193971037762569691668290127578886735019143153220481202296016427489181111266693343520157082315832742081081639953509800619229401756465959023326698010128379761973681750152294560411802052727456041909721941427782228085627749805880193786531466065444899760524297967068163020044528959667303733286231788896129962712111537841983079368616535047617046421769699744412618042218662930333576514989778829051549155741786435196648615590764226706400488617198291431227770981251275044527455312243178428877894695889564126672303889995017777873550858521299898152216685508773483794587598197785086092773031354183257513722350201604392418094072554109181997403381761749948131030157189225269495152447033993597510041959905309963050915580621943786391957970155696633078374404836799061283355507857223048671853868813517159693534177119048842851454057418320054825988528046647012861014951245729365774949738391182925614866431356552595418793183690372116142923250471513391125802001647453416454814792366972342464234573271853943066341078965685740810850560423193991119852386762497556950192587451411792971565701878427893808117491814253662329153619790822785336987338931773756109063063944059609874414415275383808171931646360030272812001992487740509862208170861537955474583594769125846332955504333988584647837607198612899512220060118714833176172690243933155516871270662214456598247064258779995515963708831294570429738420415012339942090421218902390015182490352851006377836290019232145032204398705420923079739160596379100495818922955767093763259700111313296047650754156587931643060215296280758218251055362921923395607378455029190260373221455076589198886284683916204940431529559494202937709003426717031813638802659277271508058673035996425729355063304841700253466442598884973278861935870230605720064794143530531635409140602032868998744952188695359728705459284081310502085373769273157695299888475959626309125277769103289475160779919563392164372944526407982295210207417030280973389832200926820086852264200020113200314343964820808782328013328501273580170669204978401096376251015139257874569961168597958697615715517929466905166673158647455144619963929979047171383415238885093672511908048281153477626232507858853196192467495572947664739170328906765529838800673413575751046765797884680019089305418670519674032949021772525585568619872672639409484635142376499347802448150939274307753535700297794264344600890001840172609004295371456739850934611385972100705227443263365344298890000795464282944749512640675363335162641879202851758954056142819456693170772686555714483705331013726780133857459756330513518600185258094085315109065591494707924976778759956025537120867271290485689010747623632498508498241766118088504659371416445111924259887082690147032844555201552437113730857652182840211201319112501739565011198550531456874374587073101191680320443711470498125021559721630980572084763554146829359279821316587392032011209514203325561749213067174735424877751425005500595231238523533253859975261628513193767729436355997603590761189941248513825905876662212036537097063022719856932825040205073604532900584315505962906666287966413039540569148458642315255358243253744422883875103586042321619010488852782378176195016763617166724488102088378564457190560845681622742429409645759957649391962833320280647981643474155405615659948480221150671317525392217603133795167431248243907061179515773501974948836295228449425227137639261477483660288397768047096920006165656543295347816964040778545788340176785952402986303464608897206332472989858614986279072327330362434881410992466663491413912066488148310904129817921832834729274618941231585340564304768496030173236133612736901402090102188674200025721927359481173991072183597676944382884897770749591900467146325968279172907524419441027752449057028778146941011838234749258809982914009264137790898871853024240550019146988843511403571970719666254925277394556643592891140334976255915319619432201333063407312773426228224326959522204804804488543559653503285267569886875998026729331004114851310125045318967315439114202049514936274120800936182719299528184245151223870469713336256647030236997133284809123798476698005974343214060301198680783799850906961645537557005903948792124878800199832523207295370582721497546646193352563167800656102549661347860263487270573447761080743305463963325245073553384289711338483349615813627051709641138046672658954333262055617871484301052181440901321584107338507431574901884382287977312374474846443538319097665887155646030831976792570047375971598052979666814069291335039647960723419715943339605922105520508224713871912030619916175139846869738872721927531462816099554000977060967333988036414184982274596278761441117127254406666539597923771142679108053842805566139824763090586449610126365972597342227175087748955499744430686865249384038524376178545167322433273079991767323201961921665474755499074184401540830422406690939385847787016438112067351078431355510358373494276320386414688912785130124994053839243895847971974158380691952271580442642604107685288491712835758507857546614203581945214995955553968248657268316737556885915489928225370845713442902959741439273724016538641176700697834314745261763774649808334902579825618375671317487664159897468439956088330973572197249664922421844900321085756099777227330696990367617312365161959165575564647302182855502387308901999600789037478363888861874439401391685055419607939178884062109724890112225547057051981493963061023732845240514751006304195047700264326857033914639437481801927267998737023810608665093000581301323099209042157942755965504252073592917343096016209717370757293814158181973884047092668514690974424254362273583623266351207601610402714529701687104743192665621562725960360768543421258677649769885304674915589317318200837198085102127295762100280774880221260249720896939511656059901185526658932528604257244973731032089746897096709399165838857655310330110399272581415590700635458081787075348812981423684800772893234854862834397348761348899468033579567936966630303377997537259094064925155434802952161469767712310597798595756230924871170267450168788970609660304504213439214379002068597513640987994762774551686600392881967222709420085639522268545480379719516806714034567546101585355198481885231615183247844585653716288722380342820732012375927456797624004364390716393812939358211046533329238608195202293761830191471514165872745516743470650217260084466263256205217167585060238461952071203536417600747688925335561219625595313514984761439819662965872050891710889342084994151655369554547958010913166140116511371463305669024964465109917492791409954882900256341737749842193708273831157788330414332767239940220293902624135161749414289689679033032656133878205387187817486431528986226974841509497208928681432743549855918235559436123493808822483263753239868822823466856975433844299346148880360742862427252536882584450223460947777193525932772057529931811350374207971659919224840777676877065477535991119291515136667486419045635772394462920167752997327741708532963241251259794422230098404371043880150402902997254305550575282110260765138083461008304019352676296226495797811486649408157239917342726071235284134514208145814914666368733141678987793866303448837818877271700664304721715901670370878785480604638117706227618597990638956029418533616617110697358887257088492145186220787518328634561035830017428322374294448850246437905998346767759345154590407108902113232680177656082579159713909011342133278282860351832984068541191960367683409724000476630777773047543705012216320780014926599266395515188816875863074672092520047133920935892822167459845737381667095453908709354549181372128618500003188241227123943860538743204920386701532420206832258012835227826404521680584435006429693079510873485147600899924062230097400236377310260264973101525868817086466429162174891218152341066765519049647437678591433556397241096031718044070764100761243411041643113519534725478162924065685947422724454842602566676928546825449095121278539599823948033020053856235716273994527855326109738915644963649340423249645815407941662846272932301833716511939384874937405771522936298912025330450952802966404872909330592991346932835189584208428144549039639602447247714124944645924361748285139073987456873674348387413987872314438808058523141369550752045898271810893070182043178332218770918055274980479157693072750986815661520464161250695435774814532315499569151914234345804058440809651622362485479396063873300625774503660207655565800785684629595018281203326055445128131323557361808850973388924222561600089417269103797124788854782250712750210497355397235460055604764475770235002712009652231903487598579345002993503211666725049039658633893680031675016195111251108882354559348756087728494856253227103966874346783671438461594732424152315174823276388079484731956773064380175247152196474732099136675751434695769783472812874270346856999789950202974464672975964261194568574674792505542328946156232634354040998664128775251686547605175148714570390614847062234302353434069462133694038085564559955322690118656912482271202773773588660529046753642978393474131153546969426492353798951747590182871308067866840626428510196746498293587138216443325218535053654952458999113155614601973144362242898867279378019579509769243215638435882442009547311724497121449419164020546465314881188769535676282350154505218048811177996137297623265762865910528617092815278278059131554478628630422873030241967059995004332369444604293973331519078761009080698916115573899638948626753890907360932827830922977745279888609357330287988282615575939591612157788701053088914381274331474029575583201889345170920675553515042520315207225667832469192618750112107448390023573658982142069416969150049980814652836492950019352948383447237717513778324600686375003101577497601937621303230026095984872939285078591590389808763565198714527356588938553553576569082896176162067098913912175228391152343134509969264111457255078672344837161127536219453672886589491140278766383215855915866866531473868858993976786040462572634140702641800677503034445934066189172957472363626059544633575597562580652248048935408783637339901245620909871451751498707501003122029554188037522696596361716600928857801219201312696669193551682336874722701600043562516201012545155928051463105723130051281332502841243896348224935758535366973309887135797262100371287776065621990657625722028050675056516108260454501097188390447078833058164227032967956216251199233080560621274700493360382217877242745160503428199653727916246138433798823682876443082495280324050783166437384959954564291452327320600944125171709866157302009984780698343041772061725924439865607569222421808077949747290237161966335200422566446735793364702918514802728445590475526458807881766438366774125297175560995998983372233986675152127046615179591997400053598547977737668715529710345651911794286085899284708440382065267505999529458305210173184807768544979180509747333324306559523039307812515350486179795613917530941290558846319270284063304357837642324550813152569211651842627458778714231792805575111844456599186546787313350972415827967307913020558244148266418879668730689518520145719539157694321112229442772814197019588460363656264046262106369678467160855527396049558306310675681005395265624344008591218709703224806868123663871521505163679470146532560663063938633529724650002261136852037523257154297122845108686953679638814037617919225369503777247491816647109057846533171087655751610005871807991182159450098883068208090493871432108379225716550786566371438682442039300391427662520638782551853769544857205276456627828334906378119852683814875336185702235360322449796321479757616858495549897219704151203241431730824434245869540648263752108845995877194013719912641355350291428619647536247525702013645862317685467414447998308910729919318223303829465237556995612594819486919963478268237056021279434151573954630591783658082193106336163237598770647137558376102810323630760595356629211799555754838032598586824382895965792247363945993436175915166073685592825367399899820763740220019855622370659723755423853412379039720800300530553863003403511150791075631791918056190871952866698952813341311209745610778353162302565862315677261244309930748016123625951481603742938257680797861637816984542483567935197597538696281923339010630152039017803106790124977527865203026638029127488030019630178795467859482673480615751248957854369015043315131874349336497075571294247665728979149553774674775193274571547060633422051878016048080419328355101245663618910876938320214920938203812291074409477663894478943918512860560038926038563340734964879701642763774539406648556193057350552143206749093596823483117985775568930947679630194622596610766181759893945671853284891851786840921742920732665319262640442892086673807383734748545912708038543793661525655286937826713828208033044203701511975724565426179312097729534415003746636202954219193112849824928869510843549915139245496793447590125569287374498688876927173739076081744712849278756497343685726783530962250735804299216536437387769717205974120944620821553234528883778714635754044703340693881869339082096084509097137477388019174119468934365815062216695573410423786872735019220309123451488745629572007304721729263492238988067609191679123224318960062279892439869866013004957544620856807244269997786280733223339988873849513204650842719729829133535722551230832782678148933250722463911407568868080396287616477131766298582913575681997448049786145103353874399093984451711853510189231297729494939176982415804226747011123174657800587710361226785208747357316893382168082625924235144023073806033882368600395707425269124746752422827486563941736598642937143359909949950938229842809276739318740439467482162298573567919618884722673252216924597236402847246494503090480263535731354056352041901484280457423220880977658944386229372937854592084329803173717890316667917763335986150015867524812684171313983221325922179280598474557145283839860222851183183762154139686407733252996378220071010130763158197932780425733898260477958011481558619664662234954269798904201605875563916069354316135910723806654497373236797275494971694638710020836058035364428476808766131155224117804559508126151253871219962662118532311525577320727959865072143888000222914617210272190494443115044472661698599357150990120891011870505578768318106807135795570649962836478936013660088475415839264295854522204591943471446964135897608280194527341169895793348309369635611557908907681593930266844207269469102627168572684608288772521709014167715561971422622668780718220708334513207594218155032624585021642513707805189762652332048589543235441840664447925688467624049562995014593775435143541197015805359146333640094643336817460231246242042818883716418825379741257338646180233601009700591015457415972616922737318469285299032156648101918185157140074747040298101490092672938775331870248902883272840339011546557212753622700319759967829643938365096244948884703893963854024104960034462644604002484974280657268832298936353045185804532927716405163741526655201929444797208890992433108860461180628610314592423342085556903423481681006635604566251346733977028401201179140363427464619489426970268790566126911681092159298675654455188637426481229224171915319841260270943559676195283655746476034193209822616461279755296052123677209290194302349105076284144470573007913963211435171021154720483403283148451299233719335449070507160976492749400849446739701060484520068776967747955912884620256677221896670650928050498100772830455396857770189801042782403382265312791637184559985922751537446301451307643871629215342221757664888013020146301909121614718181547311761071334069869113949513762017971844142192004016109352646678369537947946178543085555736130630516592896083157036451921331808739134906009721142105263727179322513848792605398667064907589468945415672893477416615160329403196430879290110565630967476823357325223537552589747138118476302241962683159895504062014636309515013645574264221684984422989704855314660078840318430288656710636252887501311983171648299568044760242509416922123615629911531652134485238426219385137367087698105882743999847056033430698394498251809366893975643212042790934645376089481880279032521280828622831298861598440684960898751476288152924954290689044323585585412774497701491016598209703513168185952891164245903188540013832560570113171977664237240992267017969729906627045417634718862712451509492635413118289387079104715411964851306938264609112721932733152738534498508867616715831795059097608674614649448750862373627825231426430287942903637596548573906226045133724079728223049492608640761070127666675232666297995428620056482968691290929085963045233972697722256811444861919005248749565142406829033088502970323219149519150925115729380722117914619140825237433079035448361049849839047336414180934990869448936202059454275071138954678979538610430560685699556323689205736007152165917612386370516602539451321615740190468433427837903151261655572150428345569771630736461564326745541726002481469964579702552238265812881977165877570353547847958249074099378574401984685276005005375213388349238596937508119215070180638386831467321359268266329887861348073534385711537648232253607118535294922508091776099976113694535642489702376704857711190886971253598207265039810181035410912098339673177245531054407170238941767390182056495590236409430712729941557167213138680563065647486103395724273264457114455153901017063155656344831366705068863445979775395676356773580748178662478954250850359126250709747357436170595492135539142620283801360163855589492765066993711769671975986425965681001251713289095801956852833921626649674634337568269825057291914450767533394699265788148926787417135612914284479070447075002471760536474285010572551662247808841946007228861991987459939430770130024798298786619210785279999326728409719324237411315647581539376663172466293950274183381960842214199753340192500023531498667008275200602840048081733060734239419992257763153943978307038039231336902484601441889869033887788611723908866266725776111110525318478269844815238369828641126369681206168282687372554940216694141058320790455057954106573385821667513891066353402151923286067955508002270566834332288708792534582702300514902292956043679839437039134396598217913121118259326793112252839809515626656265181177709248276091834639903099821993632694018460649869458268460554886877251710032656587109854811768958148620723417153628033896966712627925150098932049052720471595328154301576674587239874273384081162983187949127064620807958837798197443663147875846665419284030180230168536848864640953220410188419358449867589148557298322115618337797666876278353988053552702756123588047728873770848472910375656098948556746667185099312591415086727264510033279339834860874793336991874199150976954306372632212029892940139150058497896433560070528130052023516000428620670278767236783308536094702534261842138912463924617764262985916814047935650598650273849674868590951129950903204523254127843330933000173863049100894424866585334940964454009869391680808958741380285030329583908472505949287163422270906988206336104463159407314020601706629478317088051429161818330406645501121481488444036433280099106963614493998991560184442239769701967489141567556598007347095674850465923030740724582665292815477627010710867316808411158543425560485951913553874349463834241326862738963705318587062161682053625758545442510128246942009171235314618198755544605706980749333877841845936742357266780137975778893779490524145498420241558493294509058529083593307401794912007521476332475046539025483973523093810995968508690037533880072683324335058937089781994254561531195693149979289437079726526885123916475972003655126020477856277439881585930580426397984894194522778222336250644481521441520049735475248093523975918242511127863339703636532162555340321992453158644908225357755717844260756373473910793068965750004550647429728766193426172965294658513122105829437576356127920540873362225765306713128783403808374802308998543143371804333129787290751366925317729448577471836777633537889300497126757082699779368502953213531615622592670302862546363784512792051435890941528093161970074960524824783283504381528502921840536499352027464549623286456683100349741606538095062761313665375116921986719044849119450060052535263036550323132763258337850811194107362072777653830207503725100096588298779794570400243853460354211934332206649654857353968129517339432464736499709625451197679075265198285642856474127869174137382712734282798997332547383839276198987175291426051681844112771597616625593192026160568658512959267175941521201232678461044270211497763162327914537824661199416995890694864903407505612101735600411268706640289010257333361680171853213325275631442912442879533116074387188196987493038365709468497973480115659053007426766249071587063377738793407806272310029548478283988020273052425535892574771843659434657665861792740477712738100823559691675402405135331135624910828871906070974186876934993148638866136653753299646118780132119169562403866019077952880159395301678048568742648676503661818688461955127469575558992251331762174157224732846419931063565460806118379889877143650088901471748504956228428595153386654723256506825986581842668060081923311995909593633312077796269562520440189604105166468427754457533766933113602426532667077513102067159849596720233562802232134273477204761640645899349047330871903318747771562051184026438113008825872024793848111460971014973548655697887214869524482635841176767410186296813888829931273154423342912615579664836669871003244728295541727127328439389050301829677920362636913902970326308239577816813177454469595741947129978955100579596457934071330505118325811412940817296922394057532780889722619855636721826527375382571309314928162533635932200270142964226180672819883297312873495625704876251565107623701436988301687663625814858891063907453242070681109571384907008616865079852588479901617270824372548936186358645712630615586658992235215781017007875129065199755210692226248672242415815753774962102117519886304154939085640353536475722486599866756748706901984241712157244101788418428487741619730814872943841020116166190760618632228197616303237257571737574948021156124078857654762175343040426937089779740825183808051974873349674342806182904679206680966049854317366032000713700457448771016224339117016985888576699486477297274500896263648718542765866709075083967011856331635717995536844619488282435744825694716835675917712172263035760757929546115678169511659083213256502826655639626587607697297361401754588088836524323936691993942548554167220879226162999475914333929222420452070084075175169717515957073741418945369577893570623975788577279254966707002002672152943901946911345769941386453825805237804311971330971674805716633918239789265247318481264905478270398896806786161198855070802444536247687556091275233106902630606259162396493212210734982002348305346458287493478291217734052338515159565934541146764721060647029916096672407207771030663563579167264946870215118198364597283257891865735044248362015502522803271821412455193006011615887716019702582519791736190922223293294036077426331878839131967633693727987140299021121190014380023074905196677082099253212946107071526820633104385775501696043350737338782569042805494773911275112837454216079560306358102220599759375576873829652350584227594881570412661800597654446945346368262247738730836602822560955910447874282744631068305160998474567662544830267994379881582369026185730027901127712489827873162099413229118865495386298243393933706947093373929299096357377758486729768328905626402121142909459411959681950642266504998447067487073265538852290963058639888330299160097971222580940468436053136066813218971753330178319211355592747770673158970087227351842329531608796445516778431509732261749042370878061431205155423823786921633835674270479546141992010424175588492263552605631487379832875722058278949068088482585599814456553263652658511652113251244107998634059167191555076370162549882255080126471008902283877924752536660693591212799946566864022297907485264109831675867470856397567142116227471342850203325798643629888957557815245621375001969804196510617033720834741594192093604833411397855421176211917029297196977696427013994147601124803109795117928030946636616218107858160634989094008699305394954153313345625800916530901093067250290657633306805667621163900577778556951711058493839246380561796451642050132128289461329694710584046479480651677345189709984977641995200380189062894289366041812060503236263226689306192549468063236497865782956156946749715558274893698482361084713676897024045723896025832295873253026498939203713038622605354446292725025118277448577063064729373171181251620833412730286184286862385385365792605292788118857640080270362572237417434209986699837988150586567912277718371644645527688030462693679010148575587809185849570616384739511725929901712697880646833292272018766819895646736340806005801723125523659115644923120314692309518413555002470702812793180919077936421608049238623994891019688574650556423711317848548884346105283614912854776600282922680176232450392406920900801425167630429955311144679908949319347816488509736179678227135297599960322925472402207268320342416880363210351318490642719068279660001903997826385935815510834983708046003294706498118509191860841193437318408297462072249117640670843042405011297625016030597805210879475178175535678876480475880553693055241099096873420568399384779667383044945455285777443423377931229932460978672748918323918912311769804221223661567259642537139229380196164982051400848429244854331892145832527203526682429550903989404525247555702137802774408287418804699105533344864161166733035085069701136978309170697127752804794263534979872483793507057879559393792368251738065302818717492815629133345198770914962621523991812787779084348424122111939029755874211307803781385816219109262081190294300727478654607065252026405764710530725277884667824640914892046897378110218531559434723746495540886649496749960244622371739144758204843840136416402011604997980065116458028534858690055497356494133348680321709674908585183274170253941805926246563792652577383385039605839928365378413967677871480155674171253036303730914964133315116091211452053205165009468644042914973177504998734407776418756708819367758870026869678215402181973216343580900911990745025819616457982866699171511663286166317322729637360010711987453621483305484914637900702846477815724634082088527597718861776690225523357924591917982089624651213467729781617078780377730812477214658500416800974783949405337703037766001619333226898437002908041230066374780111456548359369465426564536578566344405449131425454013312203297700007332815176192817929904515452952406508966358004078183585456181864498862592809823029352068498279581142369314132615754288804165702097001601584134562307470651029724313403465913512259024111299707857065484762499501191693779217685271072244701594040296367714319421661444870449516549254294119759830644055611322215537674390918203561698134255278864593404903505604630327838516469193555056202041063771880322689386539950116616592903236261662703448241485276294377219397892511532871619607751031495014461784588628116506932821233172979865421152586047839718365305259164481587003923612731917327696175955523378428039987281465391469601054826307387608158264900349875744228845163610813449587558600818412722449953631737935230702607563543397639994635624745722013814983412077621710956531516724660646344347083655179050887690472521233383367130253236445701507680825353239460380296873098903325111706830235407470637205505361841389869686078931040969116733523813303980589355544362147908946422427103374767766742144068298092057950694460344730954946526027616460627214037292755878822286158616908109098621730492033639977534377195707136550068514327865977167694311487258063366335634777765927196702422863745167317465121008583223323694657640399351729378612188550819013745851917936530690126589750867221051230797992075160576815814373655753598879353761784485337424653775485703773057663505329602009913114915667889217724172335128113727920761145264428723059884946635936873097754447757357808204920900928703522684805474705403008719261967263161724519739447881698016647318612509840622335765438008100140319060734984490132632035944599750238547716256672904199845197785144598481187045912414356397619830929472894811655065483720578937763919439298257836612159491444043951292728693669386557009399988328648214983303092664476210388431830075686656273978902351437575306392195274689918392471936422181758215452916408274391363153709491583133602457762543939752845566285333687318111685808398171659103018223807505345241638130166501822131690291233280785144462172978191070454221679600469411489912017153635999420001213984537096237124852120344596015501823606362363168755758169559062993821383442779491373787821278364271722965960898500993292031089096943145203487237806197506247450510095567077714611076934841845107758679664013994085814917295148618154736302397861460233958990778215331022360265107158936124080771072117962856360036162896734783244408441780006716787280800236516401932673964377226572058742022393065737514981862708215714521236180845262627973584141451741006100027385704505659228948622325438980548234072306459682858612624374405305395674705210925324958984437185985413539633898312230664431425688375073636135856287511304891838651844685491370562902079718551101671966016855765064022117399351658057050716874122602777346864886808194974409184106229416044491889267064586147649244458106044010376669614041899712131862680293235129098097074785775107953031243475072825506417726079571752136667295706026908642124342404350000484937920478860876880694467575469472140090994546812867208299840470107169792494796212545204850620371286408345652498975935550087444783803820619791630831156273949844673447276289300597135480836163858659382448316468247617793847037114813659840815668391505252737898641674334248652941878318306108380870867496093341715102517916461974733408182867030247532524821206009084426242653571314833566611763564210621502630369116017494563451836232317820641197799735928304467810351358759979248222794087562866774259396772013138580539639558666854899508063200069292527627602116993491955244729700469640892245402510326936929922362551632119769339049296762210256048494159959140583384171014510754128929806819880159569250244691343323308294438297479612983616599362160853084339288575838857717649658195533221584832325271955113354335301508548357708347042963594832847168372733550934901260538606015939963334599070076677304606017821913318195549764598673530401145548439562401474741621951072168331732498492699964834287170018970541302971584734788272340111185946820027059064549525319363389930373214361827570324737393672074441988644811761195841977948226639233333374636347550998328228055464769851329092760339299627547891012387472447993608780729445185408338977731966774337425420520272400332686033488474285120444622097988422717876093496652863290269163384492739762042980971916971087690643891398851384544491234034184860799777931358726136411057671722501077905301610555003075861152728350645251612200990129315570046528615519690731440028665247825042045252993075670362520244212668262797591305938563516621847738140688652628008434687389029465238223732632916424600303520234368704489355964220530798817849256795071931056379163985244958780217752975083214275442023729252361224960164133416919876335063487599007602953642767680390219217527790530756803394344597789060478600505512059085924182988359677375816876310245220179853804302447516564400307221516321517404187826978757514408534118114312163057846202723746893593998260671954101563106886457113691657580883574485976960171500345904166226881421360159429974157774153147140786011519973503028887379696620035308401491372878865695641977056253021409805261358465311051847094949129046549641415045341129391643309832329026104626035493780973448051801947717330030734686444552417856249896217388547899699917694282187815273581087393554157197406708954547257091890843873309276821685041982045419555097035929590592955713441893580395496267873079408730446859438138484755622188438860074308283116880493391747849032933425537681830773389735004081308378364638772183508280938682432802853867869941467447551591451045779112851047131542663280643264433886073007786797290246550102644852646747939333753020280000869460065209951307046775204574824756577953426296834393006247912945273485534954867156094599164084240949110649736909133961060986957434486603438311990293685694182144413317738903835942600827360087646298135795708032595673817130825651012362676389671303198781734249603525450145557725675203450030723798703999897970536703228059298107257212389823221569883445495319504724755330991514183556486976241943260688259648495121742371876542131971299571028323619206897999259131371079614260230129230950931058387660510523300344061460704497825602253605913555129865246140442034609264342857081615313546895787829044672311173945809756541914679034163693943867232666304199684564634425122056039553159902744030570864667789499395679562167535426139051964011731279235146567755141177761120878820228747864625358154513987504796945197289872580070423820737273200031369667574586940714369281795174704970654576282254238954396061173041049498954190164528480777354937267299461517312740361466789105696840196464391407682519015239114822101163592325182907133941676320122660157383689061061922358169918160225251751415716422790934518908589208824712636404682626955351819336202115039299135830546226288304952347996226145945627928453896527186571138863164508401657529122239046301520957894776513806597883130504729868779996281911799941896020520228157387276054153598675661632191043999402683070265034089478353466585102081567075704557329425243163494820299139810438305346245710163212373120990469882431455546351226687937429287901380444353775909947455369658136592681338173349545334729960477548650266647088905992441155784358834598831934367303707809955473026118505154260602909894059872604418229613349965649753348937520222011173062147328848129588845594689308026362491571850174176707232789508755725549067085905130032261341771044423042900036066021785600497988224532623882413583630329692510988695186935401968251820899851092707966079632310560306577014667158475831926453937040876355411631643975564530741025253360488170187985888654485704419686540461228092424164890869116760258350706001911573366823725646060322274843874062041518358615988291721889630073981239949310303006456533359261052964728984826489270204381547567261926697466842800219542511223185904389782606338786468232751714026994416634825067224620687816844826068274935708795051647676114311141125061464095889640420285766438848806093036706178158778467413046111415377789414715685208112288630285006260371860237527928806287203810052534728275477111175575941055235281765404618874070544089572265917360354767033701407702946252083602179560165392416249115622133511896722960596605689415831391980227940538698963877161422592940023151991256483450819679084271893265199104824579344383149857401032402243689196773795804457532900426045647064381379083014134395105965699875303666177748020656975977950030579196610062791795794237728959450573274119438651376104237523933956860374283606729420646267569029172519026024170365752569249287027024791836587144293448886247095526596501980265148826882118798453977530739170271680576591485271189986746580798859852945483434211620259567732234060026260272062586308294567584142524589871119868945268773670190261729534452215549204474894132310877432754276108802609411836055446335072208426306377134912579188732467745994744033150322184744236121439240492345977157287839643054636257685853345291585752561051792098406663431636791436807217794169794054232574221266880925034355631940284060811894318026370927178064825156414245095645650815470128565314466744889795396500773386561577169357615495127984029623430836102200498608190912710472948634120513360821038523560675730960243251703834563403425823174527050033712055575739970749938259976246201837979903746552018867811203885980952601637995304253332841630267819863725136262189838222024446418225181784704535086534526984587870517924141211367903332868922405305092033617983210895155037311973941746423175821888369978070261784234240680636290491740619814526966069309387520017662941558361407648722544371248573698233218182283861530596845504964045994310991737563363489531664313431608949130889537949300748369704515747343050898431618864743484987747766242770693808470173157624950980239671186908016327342147488864577601927473770490388537850352738670646970040028132072233768371814054879148366498842745426884091627863729933723306731800057164582251325539382153750023805238904727851508556044824639113620050129556784395893031928269374046025717300553165290306907141746284635550588506849554478226382477568804443448707562248735160714805081005601654264280189387689146269947388536729467696838309218796485663815378324244964278321213266234721743744803441374039712657535324418452023606618706952019078332865854806076035344224016432296840065048265068012566483439746180882437003801611943770757074290511829655585579456418308938182220818165506426416734061116572451867509473931838641832158529675495106825309263355145109831831151701106795403774222192095028534324354525612217049016025425423131213901901624504684146744596380680263080551661047317718054894156252957950514715879428254494177625609255841803055241002390288821054314352051517800090066502693936579913952383707347151703310909858691875045298265367660162568252969857347487680568281190616064240473878492877887106091829654119404703084550759120711512184260042263164867135979712617432418182567467141428785579468692834111129252456630222274974446760397980306553825748879960202276187098107055928327012006670463628225950467761693545723952414880401876273548108327758460332682829875046775687543420426765673005532585518931734409917379835931754527369096007254184621362694207207968603391800256353000729194751536060705443022313033448142135333026181417485281724538499506134166674253571114610929893615348379983038574712360405938061797447852976073785750662067518204343940378207237439532286540073581331646503789392117919606640402975498683475068920044001437818612303512015304185638893372605813974707872734790461757901213872113200179399604004178608965575803862736425629312811502382698945015730458598335429125357378298516409734850681817291110502357431608988684587842669180567789865476808821813214529007048460148528067210553773232010761967047459401975569769507615767519499655241490607873560952869625168889247587872429136961659762388808185393196852280370142940035500692982862265726925572733121491504021757234545497103841264897680793473539288928291657793908610314797746677620079723026029602271262518982670071957419828987767870543214852930105704500820679264328308744778535223307473956561396144726469415548807382713517339372750164894612346392010598456648330963142103211459450042776177245586263462105972858913089936127709671155708411561979263753047655433168317146457776257420900437923361670861656326401745392199641334366951876455185695340498580478484002361855668221396208652973705181558739901279957334100050163224236021993337550631196854039115435021314708694270503947879256103631938351229078166227137561672939599855858275928166246214433719821512132651690260984314246900332887656801217448008661613011559203288990560679552877337181160018979644526738022018114300673447151183320822016530958073034174180077729300710018630586441193647733876258597970361379196180915503653349866103842567195754666201983326016224309404303772951133829115289738557253943032785157279234650992380347165686705660529297268616032792269457673333351811918035697843636680891707851040552985003228495967120475817642581930384506136481514076927549817686030901921521803514866553519844414232183566608686723316766268555741257799770127615587786043432311741271278939217143129017684461439628428131976603969687541077167503576933704837460475620278040848206253822750052301059909176115703785806836784326054464677522513463681307804584932142584888968888318469778127655010378788667162180332699006693853165258700673605558580682976526023947101321602156567346178794859950573640151619813355345293926497376482945204627093277226165672382468598912161574895203896080375311288832904851910400704288193727451842471217336289571557605189525250999790052146935785308819095757801269498408899576719545295691279676208265466873803806813563743275157400166736103447061940538592219849892469707810639329518226869259800849950301745051401339006337565853778693466437753865396396891955003757452377947659118597314150626308524944559507712053674599317200506357827880090740214627349588890677677729827118011081861406399319110978581670301683933343654262760302072854973284831395680985693866161373685976503029506013333693363505618191989972065972330402579014154382112443610895977191170936507948054623854949395889671040512749903364043541517891014999434659526676035655385990327119184130926743670346585967578238623222471893934361259336905832474015700667019908994410556942842197943009994151304596078549613667939234559046135935248481956828778696071792393676110653768691482888401436957351866735436239752473328573594531206039277571704330414940140533009585649386564231555909928392760725733701443160033770857372205545128766759209878045622382476182374583779572540593977387043367457030859043786506969161151357301036374824941352248046090776980314296947704903777559564337378930259760540577731673236029658441799219998621101155826253312355572677034744351033966959312993328332266417435002789285699649470872822669650132752576689892926057983408024562850352129047001587659770816585085083259185043191254734825716151298841509618721404884098110061552235321116395335737581805252975775354153016745308949504413892728208452342887031517666076768840634018970333892821546378956020515534142836264042781151701925238660285734903890338731821352680794806709572882336227683252649280951171514246645639560861580119846631030192888821279237923471761709702063390682211024227181596491847716163983320154468148543231178594694370969203321525820200288311688902843981002771504474684366108219302303724117208008083827736779652656521653949250926976806769351759581854343916630831906402280480751086566377896958925099490840245946020306970278467670906934497854154178307007263379956653410367563929781727177293870003355092630009145824425649841203814393288087490117298073933814958182285876604812903026942371648665618366943030805064768084491228525499881838783008441230115638705061542977938390530766328032172230912970906335235902037442685646738458039845779445779084282457605800503295550564565149876779557262243611190790856777713148470201478274789749356692043110079527806880671570423511140816476406822069741843154058213969705260172911311210258504763098790723131424166787399494033163623931474901447126793159823414686109994266728809296906144235227314372430720426758797793970610308382673156889887795609361526369019199703750169342569693085248475872566862753763699101448298806040062474775730746024895943550359752045251115876125715486579099000173111891716342106773790519424599135337861599433571601771704863173007831098719429748600331686109161937890711828185305648344300651888649265838878379297610580515527854060038006471101198740821573780964062472396526301425568441745075106891143698017771905898030537403741467472437763112601316224787871119681878990478371324990559860270686007691274219056660849458430905447360332345464876203151664592627352751566396414961594383820204875978119171296648129190115448635954632979320227132433449111011036967703429350916644335114367602495311095552619791429660816294420769772806414113641287852969219055302380585848894005259352711146577046083062557154878430560909729939326308488843766012016788079427489674332172791364683438255250831626797650142032289174870835125273903652798821577922798457701599011123410233903234278480672897014858857593893209693004925309268871777390001530263131349531777113909189155280876872172771605073360537334145324669409912066613935123518713549960057318090353096111999982979489867796393449509478079725548738224098898774005924721595792878334703160612498553635195921613157786529087496473256026701912782081459954276892603265843417724214291159739447708683307814031151202992782365977319796965279694503547883066036187568371927483425755341537341549657724362964036885091692219343985038975196365255461098283165746964048710986782041229502049221717303366404697410176323852252413359524977438564729495832834388790415279545860695379578404116985673596562150756239997262757622381670442507011300721999623499246711255230632174318727209551923830492663398973079623874125585901092059045615880642675619426457753565076605687735456014089060659582842333627129679855166151626229133972541354966372967303699820732793003637113805424432124081534180002381020796362984532619001155905756584845616099278441374009846771545823242822156818368440053857342796494006106287874841235596374698405924066075658746408218089891478637744469222528571593381010050296462980062482001428699066426868560326325698903513027871234942611001830158676802915006489220294577923702875801653719992475034650965920535605532990709793987270646726597208955938375455619861716325941638698842271179112343266273456808225925639889780766406611773980150495323888962774314031965556209637394108995996932738587469680533429760159306445171103459060579775820153907725767642890407809348749362273995580614750066602599709025187360253225841504788314861734050159125168676520099094632951314256019701984993399646184041545875774344199025799473018325374816737615571343348676405291162858179234948299312250799260984033357730047409423810677880632199337272295389842501433169238970380948018055675323939274412531825392944999750312129865500443005037277348442629600936560231789292910434153256707338736384571779306874516328319669781399605218913163498552272462238413641230457128356622596755051377178671252646618199842181744612243273411994052578688536327998786948123373668979250436983615430360941231258806001237932707897437856076508798008413252844962350364738246392556642121391873507395166382455657113277840559364867922806332911564069420637720127111802085891486232660795158725427360542380823917907619359553089266447296259508363467852722954164410408298144175539653397449870712290955239879160673947375378380166066420776964053281324460835719753035143618358203159845471967689057817209200399642130336804047218170622586475813138464717968408535440169696234514099644053831327832259277845222199299051024012505695088498354462077839123989978157913209112230211344407022971194498165226193213641293014304666130171302152757901754520479431781007462039425638874128869738438424910320675181374495901471767721712275385942883150929120816473397777301532808398524896252396983943974579734877490601334323903119407491229221127846545271423735921645025332136323400738947561000558108833693766111871753314748494100357049455887578440182313582892408679436922420247257719627439986434258660832460684628004682912712585031848095501864474005669988984333583365598382882660916426360997914745480568748560526756669503624208518420030638354831611367212571593036104994152133046603318236329925342285210006224246442571007251696314543863029512732931208917186132146059828453134024995865295351405685379741941713550970551908081210123906758189878317837276760093436609997171073061512527113488748570289144259654671903361789381484288766375882208178584425637874073565193469914068278002742533324875661039759528679787930338498602945036482973204236675011304276739655868849993476878332402679693984838786055297440877829491242326047509297487177020261461698829932845800769321937119301725375243162342246837922864492557885008239543970464745001465530307594703958663899117739703197872106138369331280771198748968704566898111815846630182503286074283326675020997431530977788998045815615257794537634807057267431321472344100336515059319425895014579654191998598556733663978960896092162315856565567589261105237654503243545347480923711616915144717788838835243989268208120365131517693362559194135229587101742606441908565949775256284320916786824157027290139145652788112760614153911674588057155009442098339615500965263094763002553398975821757324349105641865684341078031417385680626484711380763863341174429742844034001544660381347953488607738992380150729095947556780345987643888376314041264558591081647999369157144443745981874752730988915181559812622759549588839744679193754161178223680837621328789280651500984221597748945019192251271923163266075566270429368217862106948416230364152644519705563815221564957825881806174714347432197090357101861180094707439425751944251196174246826807374574149963272880638153077186224033017056230413683224906166200670025027996458321041132453490926789704492635119626190898440111977091217776038373623521143799877755826795357683220837577619261223123180346540525386491864433941563990166871558156359558130302617723216961235883607365579604067491874674583219771083640241139305363363424742967197200221208673154566875036856455784898290312044974695994857082448947285844113678734666631773196695415870831002757839602805697042940118555685439225346838730575893940763195012766375520785507789960913009748324335143540035946465818064732278616281305410139546424114678063284636979636909521384735356663388131204302673044114444476127491119598552144284397452987808468567997911302139052837653233453049412024401534286936798173089693544632390336037356316352733820274600796050670138074290999903817549876239082924237831919503044607499178493393042076845337823349060762889268608272104759844252939563235961555841366207516859753851552959634875801206584909461642392626731858815733048128057984859234241736822457747237515330940773942270993505764324544121519640728323052598649379107977768379230458858721519978811243472292646106062892559968650307446196319028415053528065511130407360824466618329268200350620303525137470715967181996855230432127597680792444852588247141267986053071269807987142911361677175041390181775069954452627349503672370340345107909471361718938637130547287813821314781892122175909184942373863986132507123014165124215120814546950196037435227110745100650550939017735196087054790177871864424017052295655163955402385391640108537669863771243319524664304367890102086910510714052857973138511359813508974250714362067448899037191224005112933826054156266238293009550056767295018167488323590713003151778069056297425748717909212665391624113395767229693149911543931647512290276554751292368521623837590938243458996125765340749721148220500812977676550496362672706571991401543567397318401280303373459490534873610356426610894395165560179332849215738005038081473493000779461205145824904304886209063380169263162654005059103850088805158386929450670921645276896409530559751262665767925753281546339106004947029542910009017352820125128333796694825808183666163624388294613874140924478071177441969582720830726019291513023463881108444404061922116098075735655778738777208746608451295553255295028709126015615444400127962239927214921371541881944250417067694144863170570096520937042494346820885558519517960074603497902803644268972374576852562124193115752407823671329625538507410454444052070039451378443973452877504753255854460243286141402277870769110115224964293264362239268381807031481707738427854108936693570362566571015886643851350379411537223120507392584542920097921960228454723260191010828216971201285940959769056512154995092347982622821801296489227233339371729280081854448800439379021206382196978537386339439341343416187402231989621300974741270417440449691381533436778298924184909335109150012916995286450367305367942122760359167939800903405201368466286765455056363409599874547246269470198407166433206353728360377808416411209895944717874203271531951257853914016721701495005982501643769735366138091840849477391610489979994616669828927952523844957058113839974100959400005854971658973632748629183598320736448105245956044873110063705380415449163015356833331606908816040847989333877854770635727571953219463525555534221220990069620982201507274086874218457356944999729076702134762339736073330869053200009475314087699095852231820934676479391595896787734247828520161831016148266636749719577809066990298072985838885871163344713335733534064193990335523138221773796946373223831029321676296948623745924374268086149917272890513709550035827318624083240388520233464681812958330570754739570746962099057159171902433753847080746783436449574461419584482416595934022132796202677571538090040304449206965941971510957228876233662472057141778125034219985786296060739971220131083617611060218643919122964644521273103116179386020186829784754105272197226815935772373675398970080916348630701118358131345353034466650592547814949588574004653541778679641482253195543173155294675350819218902563590220632957759414495301245985578126578928395584565550762431393652431313706342529567701550362033221053566981341855143802772718221798027196045687798990501957822578384635316587358071120222933455404587449020574376867498226213630806481682253949455903163825940394068823772700177406702952969197142572034770519779790203933406658771868580814398959144772399358376106684259643597182768017315775150872852186374742820072381006022267867926985624095898817752121074175572543649963902228947618537714884913011580406080655901205025073437020559828784594724692549522518745471449750396839795184352947302539603530473983041924412313318883524766045490897920528872269048282962472036679943192746276538601467771978964441691220321318716972811754499434811087273738258607720334429042439521198850525775902986476084004529962292401863992917685547105237278019937070845526283547701548006734085925023151356007475390523257681441647792941888116214287489851784913144538822172380453463225812384076253477677635706355888396882801569483268907664368250930926920079098999932725321956734758718040856043069745304937730816514581176925170863763241504008889420106950731911331719316197196267780949427928882931222731204518876711232088984444322605894488524848039927206307783870280731159158234074551386695886616421521839317821575907014656918034432932554727099207539263605912330170617771571001025455354851077056813274999844425440415527240694812839097500372527013213196104448021952132297554039593694262630637586881995787485607453890571486004158458868417350444619581710483533880518258325744119148955307970927934507868018470189917186635540492850577613504055277174530579059148623898065437974855748478212864265639927715851401563612792313987209274352387964612143522592055666683905744852552340117887997924070992209927202062346808237914007488486006226349345625900383362286469794413787055447121543493422938439230900985069366791184422673670264354284183261906103933775851719360755785955161359137447036474814844939095116039799754855386760835691155494922700026137646342590848972054682427479820183129424299299857478003306745375942682650100657023142066910770834310057853699686822482169098503300947889327897136917898874823929229531697272576652576086058115612999871023125035934072607866136348126979693397218316282469535941674603308302116808076808468504261435575879310958025559573533303158052835974128034304912942824955972803304442078237699201113440418785508282614660380009753706818177225392300954733754785007497405337409254740142843913877677838309791340312767153073177187277310709328005465768407542936244268065211347665668043176772248722935023751044543955928879249013810480936563018831401036968924070275624930354109339492143796037612416705448508796306769234460964682336488314866740344522180455439015373631153233548053035331133643623188166979581376567402981993598559732258189546246600455903882301414475884821178464209521641735770144524341262868530121827275424749839857742185435671539235374070802391155924806238648781959498670722854604202018287672119510428840189851339182991501253392879198532585781119352890068097263196478991801761832002735539905715848110598250336274955174807193087325298025891642270430301792763271640647484615792126927627418681332006802241979013834315722509643522552981284005500080463762501334677612582257666983096285778746623444260960473106373041463689288347270883223959128879544568840802044944752947110880083025097487716038846675249927804684153280996898342469894664743702004275108453450495142627299892243822737748926283176729520146141856177969411360879568945234142647085364006756582971022434409661898078513373932492191301671688855121770065057991698558201091882959348986086637572759123793922013909259741578679485795346700255341013271241897897800425733113264589491535955195669598168960126674466142190883200088414781219706671490984467686729486287089536051461560071275776676210842233958184958272435636479982944443912145372842613337775783574805856616834458438935709533456332463198656801574333633311737419162284295970910416297950146579553102452156001410851186960234331814847403884698618364934799895045340138617397189407000229524937975294473660689043541218257019785105816403391037635666892684448243828165455604572562354200818529317321865677938076444682504046429834561998549669929187662169479565912895328923461252307224624352220155201848045060986645150744539423049423001142181997500037182314594529825010118581065162688105259321198477902098237779270112430988744267459004804364446087066230450367137354046032459631638157046038332995707937598942691732215284584489828847020823428616535325282949723743167242948292006366645609519061991941624916075260622458684390363337561234927314049057410549432116266497366773087330553294407867948286662893270891531890282687627952003580509613287354310056770327716783382014133066413582810168418649473099229000005770279863131997172656053095435342146767163044010662695594654611202297525596941058630665809778165282878432133013969853597301326647103020313239195794584553816857376809250842373115614646473034484132716683518657869701266546337836588431413032992913188809396953952831126946328229426558694771221017090932795241649915060156905666416835262031756587651706176263764535216553206940387719614083387173912443531032664032134655977945424643491076727054475063179803331730860915396414037609142210685874976012918779641714110863061698490652678440265503340306380430845261050530575688138824761642140613688947340746257589832211185779463281616660864455035732453056069177964424895841394341699183950358544260512585045018252294327800745888189983954309357376976117873937049463812255278000447764380414001587184976445573156588131523563011907856431338083496989168891115804301843762174319007383656486757983130544533814692634306761752833807196166831058352181068005008113056781154197531059398340680100470504572163764220033312864298248927012114070651935881401153932045711094894625694267123961059685672480992674245595814942506962522138752429670150428980527259108805417655804563206231415700792201720666127893566866325511465667280900475010137191374469926218639459409253177668068902372297379557804864628070929030060700666882470357337780326090271413302124894188286940806986086438918852135139052940183559762268560595673255445479709209227549562538949422057947023426468603864522252915074905040118379354710580200919701748494405945145304526049115251917623459593772390860934414671379615947033992171251224579608995220410574745848920959618169980580434866216426578319849476166671036309788127208771334701583486592643905841300567724500213884943536117256371691585527209128592529770684294153841341716599419868107940207250552389095729433815173769936045162031270226103055499275091091293573263792145030292239362711494823281514142232341554122188321795067034795242504294211724575312008266796184612281103300171176917638076929382967189106071856781051900328223966400235775377074217750994696954577139320265008585610905746184239057748175064700776997542183657214947681042769344471799999924605401994587152847678372567481797646909357769993145281963205849722711397545821102408897744129645233462033925340137721819496388963732029185225854129787504557268343366738267806010837127367398307374359186172587245454055030783480175105311971407914904037681678959159154022157332945186230752735587348211923799837097070144847911893160580327875537914631889063740065436822199310882422714316548731833807603340421854454061840175496175197440306734020234884626055343035900745064253695983479822866435313476833531458373861778731467286772255384093365864212603035648304471628522855407227106262837082526646547877338059895697212554101968311457216237704030146812986196358961214250756444671973759199892920046628619313387022947996131608073506710607177148261855541846302662700767956364086799124790540732853860826584418868505504867705044294336756195489090032334774155192307600659434228365554222678123216744965350946894472180655344144274588837779447522977693868405733110428898670204626488510787429045861799020588708986567806112963361518026331099696070107362453190328699606203509847768230539406940522594325703237114880553037903595906115825609041164152215993835351566716280316417891594564043495541662801531110436472707557918915034530078307330319140756681317648342933791404114528434974299158869731059314479842542189094427335648918878758546337585481598384997718855570150379844689432717047886937580110091902367327755677352487179459396376754184503895609293375372604743352244651216357918131405289989781883022491243507314542369170958018488596827159292223201425606098860166611104933991732964444935410789978836660368982562974736152791571704429266729595394361066458406440083400091017792859604413732468535370093960548179932678314751419771191670991633838753671107681833618668374870347542017625977213129223310962961261891140490462762433262271267358346438756314257003565974278866901306172283601391374458492306919576926308580839369548752750330847052710013653684219201315283292592281221952776717479241606220616536916145642702744396962471492573815726222958056119806967245214909766873969662507216145499399367385323041517840331109582829532420663040240497787682966706126710756531523950415905471209784615619749555832502214169091758555824344833549529866986080786078902995331311428885731541645726684180966021101230368669415880133943605123551977326753112257263917879019499342710460691213863907398851171180908350665055536532940598915927341782593069275422715523172467571446942851680139683703128264240530813053546135795503842813358707295472331772113940481356714451114737937044375134114174856264504531771641049210902174043448618657176203902684163736323056364121740637677751970516735833226125184477153359104395877856103519318798543911047173786081366621807461302073609796345556008797659771199133932037066070224467723205205663132890212765892464258431412407792032308902215133484324032890483036811413344367471708101549729624146815348604756343445095559996261364164230587885394859671321925163539357387544854137510576768189893582113139043832450656173418947918464101994779292113214717926370615617786303031005439815283435068352079477792149876884734954017717901288475674772724644930043233669053994680198165443522181908998656720157762082740195814861442397300403658297414504747687616316097381078941883473172418453968802831106504058783339273753385935652276127546296880783182984150258851329700606072552667496278960773682152157430509628359439050629407982188097373725400641631943535804344853267215421385199352185936053044135625786952618433351806671337638316889725198728385716137506076612040201531485096343219197129048385379382868917178716608387392986291043895719896097494301047412618692850835942613145413689160291238541938821397890650538020326575313041312164854918025485409403582041496778728207652739136998720988256167847946074133415734061007701105642494453197738072102506805131729028062738963687107607912969691640004454803983759654448522352708879587425474970945246556967158906862483679599496606718955755603095687744261689963468692410084060097908731816335754366799831956419423161630261160152640149382779983188851850826596354565532452230664274890686788198631416242186872427717098250611227557607847928327204303728312843002034163703953661936155814444257179484090580684303723814584859874001951185589288423745061803211480225200384451632691748590128912226475053074412865596104320754143155350332817121703155320862471008950120055088511633649539321188100332930117670709287544611399367052034272080573844608656310377252469677208875291563278679324865667252336069828734594602631416454701711587334313340895057374402548884374567631195336698527265883554833726564903078592150629919503308805365928850787972943318645118704364069602168645963962725696296539586064313233129086962825657987684393160558958606792925314159211071967586309791363932514214843305484545949229738935450068887147728848080003296764605340405540062088225693463883485530525814293329437735663420537119087076080911311301934909015033130553756815971362254158609875493776706584829989837280541910867744254261908085238397291594564177536660599448306937386328576479936215473597524480622616314413582944088730740312283378331217785079554626000634585812451668550560050811664149223456103884296945923449341345128130020483101935475662464053828205763683179658592451784166882425612240651670201963131019059882568329113496260196855526382453019402487698154803442575886005754912589442917031569364011238971956849876857465992805775524966454472413866053511964213213444420093305732498329003858824803566645827642660179597722102682836020955846389999926842168908621023696615880086162115475375890691408497302205523395265149983674600613365124561891743464097444210059106630328321984583676248559509008195476550323081369323873123310320211549068852196567001319987084123313271454947669480626201206951509549226916129074115685425730207678400171788933862956707097864991317758770829972718892995637359590846817876897794306684253966223267672240215967616830595076835483660469987227117504549407804692721762437453867019477848144305123695719104091156694448665525588890258271486563735558618951095910333458888452820069821731159292030110958822956875040922915178432891804626023656606032681463496861156800567143380667912314762022305124963043868252428601473446841218646402762159861028437781283153952986151991883624484321418872173409790926045023791227899173597471908533434130421826006551361212850569286290837991108002228965083025234431843336802608847142831855910000762201245328323482412699130937010497556149454550935112823883152986967308339563272082896759601575782143538995470078205604346440481265841713112121367773190837971745400126177348961955467875471451730215353195887705246695243358605352471980676835603975213764507521894952191055232890251751748165285261377832065448170547972027750402957486193692586774993238550537725411435526218703927794162379361580291742042672302297304059114876898740283259565490134360466279769125732938490883907468732156793755319127370266859226431722177115984678199337888231882256451309709247266641168256181504863040215496397332468842145287346143841384231317565934815362188523834733720976011631243222225328441961729583676955830209567340023408914119066807863633299234757945177359293179146480867100024518056825743967018829894452094399402039579367400635760468941235184114031564760686753250030241865617680354107553176258906621081914197328587997692336538724949788308910083534923074072983327820910043519021107713934653687052617703708038537379466625567525476619550301470878964813098485980889008410632957320331896877972082286875806803095465052103498350669859074324220062966671256873869736107497700754505067846196179638638546339646041868670760478407742167361120132965556815961432888994300740156202371965567365358014494282583979352035372636410549555600976436150235747676064674758553308972644975205688215236912555488528795689098043579755349189572738408296890976468615384504341495614664918881747031566053763039536071348882233806885837958781737551264140507920535672356165461739755055337166239202495265920858391974882193694054004505976227860539085461397360638234673260412760396879605329346124118548476539114393239415089563331244130889310241757535605194251084799786736704489912289993440995860586356740775464752376301733819514923357038256940267860065786299656744378008538809505536352718658637122667505279430065959264884745197164189821984655089329177068914816556505044818002445253584591120700879470953861171981146374542365560331949632053369724755348064956063904643118636201952302888996330374865023540777902909893680151075416894491555524266676212354989914166839950388343472543491089923348291595609879999235918214575623029611610404553501820665776593314395565133687898708609912659454810933029362524236669073469882337639762445964761464689055351259281510154334691118888547195826616192233472326407169987158263734796535907386829946456079108037250602477670990454767079909465372812839788978213698315028291809002671225451449557378673979703915630060992883717394522179654130508743880858408781453507801459322435707883054360907419246975711267443328863341660565239692762535674119237758724259543151123143297323441162715565382153565631853378645312501572875183462682622654369177112505551760114949464785242374075588696930009122601692590426988823560887796761749055959573333173307794306495468753853018326435331042648947770789003322968557422950184871355441230863401314542103748841172454137334811079408698582613490289553485699848230560407727838385579368847162730847892095515643303328460758486637649544119136218845841606476786085563749066499727988604712460067632334059050889252771297480912247830226940998986864560530492433077057421014572096798358915925030212375815351676736955709567801828078942328665632820161420461685900642539921394574938629360735145924033138105639282839857660727229264159131551750365808323745206606561953700395802037866314216824477462883904998694707564263041198090486296477508375030246075804727330349173294064210273381271270996876080636087852729641111928240057866434229488769015465470759901583004610138258459316392235947851710049382683582339588891137559245750955875184405231934247171215624434951873683002630620437073926407147807694843038288277624664876300901338100763375752623551993770619288135593981964433421162446696421663616614256510666355189681048441640052742334377186739169971670851667964186646540625763156777624263677736763803544696021166044752108977792630100498973920087286202109770580391432192586178682719746075367819798944911716125972526544709431706129027983369250012623651402225699515898593353749431980070675140347594048703835395203115585910888725428674952701952678334536057881893141353336712606127738316852983808308015053315191017947382395676880200136465172076778591067104081531438475413313887379190860048514645570412802278220470082996085694929546709740858251627530562555250913718325711758191419003148565612623960338076187387349541228908110673050853767951396363674878753879119497509025773243038540437658407293859457379882491299494094471983331947808256163896730057329622253713917755784631826732665362429513680176251829259443739596632979753577181384003678526891405647768705516358608125221217502883839682354282831052997267925381972433538201217968758199514554510987473264476182101803637321245407651247175106231274513965447123813376200431137466317881013876098875822774759035958321589383164008257100211767707691803166357475189003524771327050397355220696665967510610109851062245235965057959242917925097755905759577147425353521314544168311914227017354811159253216293712065798129381819952027243607365582503856630680548127046353694561698611421560643586630186016564479927564606203018523124023477121359688332812971113857696275988841600058645011638173748238849386440109082025075270426021389107323160690988754955944766947133584564029472886686406951873733202812697829642029349359797010966270313356478304505967932693196819227808039352321116634100464296333342644942915353987058387443789492488762784370369846326653905624180693776181798963368260775170386310817027317107738442771895025480027135411473119370876148698755876538151618755582052894687832157896198932797414959615137933356814714559339431724425298637546245305744267171946980899475346374929930454593244952142627673749170020485106313496308335283065691984841070970471038269572727488890084797605309788101528227593833892537232180283654378277396650271119280830545179775012231348123197994957764956710134543397245940326174113523892859088582053327500014753204130363493921743683740299284272335593768838021213393480968725443264313367581187758656000578483962924199893891021028991116723300146917266467152529880994429733044295720693614354860047277712132125785579897839796764169133256435389147812560681875010794916796168998542303624672807523676698526020046306408026409708087008485804448610743185685064485499095006007798841223570653705157470699972702035956805131099364588959573585058776389726675426832133358204773578634257609924620179837631975092291701954350414540813293708830699113629938763191578170870939422588503742168138642050219917242596054842536772003326701196687183266198646401826510794873339117876696703255031719592704603569204942072733282242368975949710606686798896391866957893447161113797541697478165698608721650365759820286225128259680677609029156769262981716081415451900820344672103866397050242785240036248647327099377229267882021591729398071624064471420418691341356740319125989393752746455049003341132310394001832147761879230539136597617804346377546479607372085258330088850048318204685222222596263368740340178505168926418764286313814038119581616062492026401082015177679093107096924081170402027916815458054960265072057757083518675037704523344261152304749924726523895295221676073099550864940208418380769289042435678624211018547567615127426977597381090134202683054691751618970632864374591976850163414834593135034221269326378876226679535057734660559529865237694348995122304223703783437073520650281363318277916849000623649810017882100427043005805083023650346649561718779542903692078548006250875113963827239615683396310958449696009529913474316324356097845484980694985377982230369153872981219758239498279614540344104102874718246353869810821764374473804175242753359321827405716425173615180297218963491225053459252450247530528007846238702272075173719947624467785464583939623193798727642848289613014370383506208612979927711664557444080937131436236467185236385853323992161789311890336046889001626012835108437452067059932532189751002176645925588125991351017498909378621484526837296666916421809707338368609585811690879898010358062335094836627928251383836900404926396914469227893168961334166390612759899266824707763187249294050518495317638699333096548149436483717446972240028103017365367756756445057407211932623492924445267420407195249134936879048648413980079659970811870790006688827251275391133436440337705461874295574355470938821358069203546013837877424478913589267635901805957924757593939077528778535292273712545337844613997778976245469284029111639809127775927879956323711769999719136994362711018225915363192136307511092595234172048246797925641247307129309288715220667068386263564689789710456636706616900154526875013647187712311694636642154219659632048038514134167670975577061440599353244130091920023162360242261917839130995730213062420394676031055510841035972339832547081615844465514637558421469291319200580709041449790757926466462513273691146859007859653193088308560729116177986864451399047220573083537738725249398184256520329161744304347120222149656529131063183413874390434175369690539441799362411712567253919484169588312794206678037378582839593749735786599095684917812404014918534830339148001086627898709679115446186745803174554137478880021398490912839401532289030234377327443398789601573003493801633078254920069404757028282893074482260320860458487894097050916776285505279370151486228457697559404929456666233190267461712551841792464954294816099697604433896485973935813507345572257072969520942193659969012515827914579639116083423021752185411645622226281834881300485514775736329373808134950651481056617393903737291857884078117677779452629824511437624059677193867101208200027664859741201768760829614663145685963871292217788172293474881297750255542245131383225993973248966268813008749588168689783114967708135616615185875196378712560524218351979860595415427671458495229182615941454972988213181071638883144064419682272098599721951190106564275840538434183298080426056543988458207873596462258582848167223899026397970859405116887385302913210865439444967542421017548051878215066165014997464874802202626865193012851076298073131346490174770531297430158206465913284392601581332907099957110584745400613120594762146149570669041660319219777934042421703740924620114327082526392952409717690579156518461213130215217583513324963362115281107968968332311317736070865253765060060698629996456862154231960360325290320598932798183476708354307856149600012430560521509866939568670761444378399078784760532176549669524866268526961119955561288794639939687609735840535048874776384423827605268411084949999709225103324332241739481378809827289881501458619951167782451319950644905035609466900403645116829844700938743967393282755296685005717741552797369483707239122071480162914581206816257897967019268703077585461108393532899898825233836750858245786301276818657393227569907362942060989909025338039407113973690859966023336845948314699154289905597466722507354387192582717623360852010901129856006329712978977830291833548177482621596947451529540063406464132829535149302635633602228610833659098159560372321587021876310984462070492064214989448461718345102632616783867497371584095911918506794088598412650699990917757781277297372494715520108722487207045252565335603400023957849504332274627155840878738416212054464929011683995057782137491145664930173554046844581247906769691347659936874406796217231485157254047502136612773191536621607675391311953458631836591518896835017911252031839678599388498326424577825370559777741637873513981459278661813055509500394858959965797266357595186616241075325946165229729270817238360065264952512617159829794267229377641487823888956871365509911801240874827743013160928274848668509662247611073109815342212834581009759271945819842421414834934161420880198944268891540581435247442730899493026445175837791557538573411513111504540406105944502415120474115298121608302769784349544649304913107308240025242683793736319571887672263804152284774173937307342944114598067102588720155687991298432691223334236839892586799511414866744164042105148300313454452725163620351250848569770105165904240530861662635810631313374999084793385799421490831181341318751526965754906054997459161313881150803395371566348961589354795888301103497129039546016658656791889751898743179508659008551428441331488314173900575522705739851900707181184459594318533924712863737450493628515226230949690975024064914363473430607965283269468545177545916188625684134239352754436278966189898962534538564901094578537339152682445592393864274994915177319855182701325661626467727116403871406083719304665990821176639984427023884517069131458573002083230097835505986115407323370270269389405559730589707296873792625319593779207763356363706035162848004087916456954118071835268366436194368922589499106067882272358907058569393265390511161192238233476620662205824550489833732901858462898577158061176020133053901615656907811969038088888611430351930216964582441068698824209326997165616777356392416186865766413500453708202904425937678308035089538828475647457464474725396935064459163915042313500789915604368905982053831027934836739963473594657011745874819310090252521644851823212491172604436246469506213570808537198217302095956791681796800590363276287407642382044216787505879430411245114193446717934585529672168963661238922296040484221135825811128179545033431603910703702640522523232667845770409151072541027556387963169854275031656077029057675247550041448318519049776095258897664223982216319147524241397496732781010289620342641875710821081160237180687989972085305297687845141980105502467535342521507868984888602936442920592766648126480659536980796787924501690239434017963496610544995772230355188035242526515305857109269520201395534700601024203535075048838977906169775379220277051104289269396475927080048703579372012413991081054722153705640490138042796407621410284833994090359273594933759982393036118188309569023735986616465782984903370869308047386528383608959099835366076580805994014602688837623734884027156501953215612716493515041486004845751693404153544164314257678836261217369614763238504727632465935575530946556652854995339616014515396089443747236855064220993577629725452774137168129256110071899430112682126158118585307157534998648453456736679109320968922006090104685913751453062759222868296747324956199597362814787821399990246605450013264509046362126761552807541797257948594653291001997355527609386575433174830398748067529637659384920211650334423184621179144412585880834853452268453418232464860607731220863173525989100183867665452182179072101380741437831249355895439081015758562048212366943031878923802634779964305351877500748666486490737501003222476830853369431870676428238045809867465501196212024271691898528420186058950245154254581408761439739628065492450674011637355646408434467236484326752671662333736121787768973454387632472273698698087146589972730021475307486842273006559634386731132398374719756538895170941832133728801228085621604693622076474950775889670021763403544952620999983727302325803478353001731690595945127596294017046079789675614006980677974765769731806841550135187441269962057862283816602810421485925071378844966335375877676651467007674093393147503443287786702836041988935475175759515966829494041254696508408610657995627759476963433396609767435200891027635104138327363849006989451397235219100557706736853630984151470391515199764653660774746407925541535038731455456077248623389317116946234703068616166317520450340156580745307937558490862129681897822032327531131097824173724501958133822619877727448573302816980087468492974013406421214365091964110895390333365630178112361577415753524168198540265540545950819026676506489261782596203654580588633958438894929812591840392264468834384538381063022375832145879508303991319309564210173531905821853143353821640882280932913756591376160468875975317463723491480608449883949876581909186479223173307336768363957676466389479106254337417818809519519363408858095098281385413538748310960327779296909718485870395086150678533093022103044685816022164788664758194171056174234476887293799963988294601344810503993139332725225979074088842795371104807796186719049862396613737977240145197008856008810183672114177250821869112643452892067489598777369527521726915888032608146176416124548107851188150462734879729794593977881074399603338501965643981169126084532473202757872480458103770584339353408133251765463223345419070640705275525537392091407305388399858684554517856072418566385002682031620410659552230187631559144828130899853479317825667498719057548005713877181849743823794599928516040658991227979785162275742567378268275423002040643111017489142432124361690685794902039386293575935917669528871844419568247691543389663953138572630795702301491402758858246885106038086118917303220144291752315656141125849361510491407562494960767501799441601467712858094743503096387598700669816884019906822306335056203782409715563479171201193874937856109791416868221880542077395367219430148589343430476851731249170590776536945621452944803294916137551468867592955706181153478878322319769250548780838941382545379770663058395334128537315946963151390949907391949807780580735108449073358499252311966322271032945655397552149421215256552929532760911635345988388770354162197562641551001350100266556679976606048439669314610122322368858192048538882018689364709666715365227009834388711280599233577701554993454910213783119164151636827736411126039175146813935127971259642585492595333744426669882479725131898269780268903372941231366862121839670714446500375192418822683893656311401491528612616798642489822405565358627539399948008840632526912319348684086452331455658120439107944946993008796836761507453292543825814901005069144822370637172380639408529169263852907408150754813604506099641742277656963442043088881805425044148421703220528133500026341561290626735778347249361990882044952997979738512397885437494706370150098987195911118935722130145571403593237150641647562032494141239478605180141709961675976701110352169495979902311176957699304443854035542123153664034511930682102925916889798179170974324255268981727595252602429029785510379235444981137995451169532070194819913406443134303968135859767851772528991986434856929483214734072044916089176312187649962603979896395661272689897465687468308620530443232108018527087499967430276468176718495271655626117758331244750792388425232764339042937429159322471375671644528372336193529137941510206125925470877439247877259129317506776132109853095499426070303292238473701659812156833499882962919565895215344868110419131420440062061787133147213085472404850005489052749747839230350931757554676208134181463498861073518729813119889293568692591015597255425466464597057200438729500682636673357557429084535678219711929988265872785360662350111462870748873492829767574405534838931769571754529174338871877560578018947711368637664652412315317020677170982012862134758945561410949462512304789011468005702786055736377009427530250842237424468795086397603833088052065621707551858981619742384800155321364810914626282776274543117210353091408576661449336112289791403757402118838637125930647107487632729767446741451664225915025741518427108922991943406102000656418756431268988790832268970538784046642522260961354654104902480443833431876610420509578199573442958989542543539330158604592525432826533169644508920818270654774081369316697905053705138072535999260106647838764675199456702062156036666989676432865987852423645692726145623589600332633685684136528318515072142330695114756464544575644629604847558844695252731023569857657410751252802232861467453081009876051014973071074015568968328314522056404551964898409600828898856307174334971218475272435406506350566666471696239796867935491208715113980101854679152608830818152540796916935898481412758554849486862077609441172908805087753948812302653886288619254367252433494884704460117746633596518534284747894473373362582792261311999397931485903035573369003820741519302797274606740715937269347719560413814767112689948389239303245974840543584751977945553748621587143420355623797692170594525905154660866057329665053565313248155042819008306621004352197407323851092547941041434899585521617107452083628932039596346993727530317375914318647411239236743717966333714572898959890447763775945287281144614076440099290463331019164422597220844814845666926302112968216047116070661386178576233202702034749077871315096352163010221855975229619575392170566845204323003165009211876603228593108731922288466562134922961022834510238627624844888947369150612001993820624628202004338305436440837333754012515264807994169701149643958850520720863295008317618440347860692517770386346050635332597146396648004379286687977353129422908403787342270548971734528677603646915557935507782242687342274843315177847816931163467774394997082030744846921843180959812326279189928503717017943932854674719795442588562453844609876926246317883244191294993833137274383201250711975484799397697643994535174153190432523069066916206115361767036214630100800493597484271006423184658771292686705877047378059753167953800282257665146568361129531184897875864017608011519016216677555470681905879249105503067130837232848146665158603878256589449657309051922350016540406485224405304232720530655593712445214708008063111316679039010954048769954560238172538658143716093960124063495444174747287646870454110440522144216757202923384808374953167723725197301273284865504364567520550690918128636985605978489727071037943826595670187373731506255827268554752404878567025409090778639675643882327805463158941841057272117595643481151847242113395985519555326583908237006652340885044116146016056210693257708804703193731942348343691684142831804983453304635364572230450022578466970849198380811210195265521862571534023735312056662503621166651379479133364030859194451841175608486988353629052912809354877179617649231553445051774720455437905984514202981496943045501311415996177915583414974055989631543096299024926779894437250401524637816632058942465278654638664641000994312066124612952728293114595704637290063530635956696943844314634393897695812958654144074037049073448452023608107929254388328424821655288212813887576732710346274456798619575703616366463335278360549190618917137190863844954822228285560505940677878957705890084909909416028429959298503447643696107100438313738549459707110792007165321658055345010293011750306377768729328871281587025913379069600346324568507961142868343131036170294810182213397180454094949897201010054529585752828034570180660971718907356954004909330209135922794623060860093436816827143672095880652788035383410315534050699257540310614259477558565159780900170524042483389508425855476643763982482601411909568957318169112280894947908916053410200326107347001038803296506099381328641390897039107842001039200058230057847444143294137326813438016106850959067791113409030687757513395283733005594678344418608093089540447568589060329394643062276764839625899438000238354238733032469954121812391319014090869807778965457100141770774258865574563710416381443886750777976307328819173296464705600415026611344820984797247417538371565803280197002024786530171256334789412115522487605266945470841559043706533157896326239796548626065094092314997179025380573201444337842198821079988480190703534085685964639694847291876781276623654722401044470900536415177124823194512152063026399024927070605619050783972693422904471058312156264676305215747920702387361315063913378455712360205335457887738760896052104116103439780676966488673844498378824765098704462091119780188918765683394587095862674572991402271941142527601815081463107571024028125025392261050924814381113843715419984664973948593784966704043565109266169712886748975242890894447102757087796491066607648270970181812224374294269296406825432722588022919720759855878724126141397072720128470692980756833909040080421409277997253941070063100675451336016893534778141505465980894304547966977631191627800503546714179262850686420924412383854231020835744587722199004323335016346500254235105954289031857980373910704940246257455172136840845167790756441120386921400906768178760601891108016546069786852218480712159836037985060733442350618673385406002810844111671296496153512121070958359429730791037560610792093558444481484087712457806681657252272250057443933500626384591599240580971775077921141304524373279349652690441187613031629286881604795386785974884475452669110707751729433528227542742928112632371129625611348612975833550162804193858907448947547848497454621949542151625568317634338541524017187002787224027659551170259780052023521567262977850718337720888457258849065136972643294799450562338303991300558514073669330651575687255567625986913959617059685345039479097640113865745222033196239186467595244655745985211990520502279028499790796054785077522863363920889618518677894090129591415832825334063868170661562427845512540554007484089616960831255653726281621097059126608126555216148823777974840475726224834422969049022379128188302145460477478749339551957226157361141238331382015348963533699217417694541426015068143810607262904400013956560841029362581717588551595667845741999599964313812098018568677871775318800949429650322597789618815367151114119373305078744531313948770608740988996460003063898099885027908559638603564208993825773733155670172419742727786457895897677377599816109848047787039037569752825174750229115686439097688418571635791402732718232719402197138757387451205567686752155380244433110187292462081642035728546413461674345508738845849595116303442916854618038664231053752937400352670572739247781920346761700793702896919353787136481696800387002345846536851702794822076050245705013095221159154828010690792513428101659684400380162759413835404789601839211091607252953251909971821538868060631782937634535989824539749251695696557106412298653194088730223588778700074105951227425718914409788519550421552247606957472263138338198024491803151086031557434006520502755475560733023328480240638146361230743608990576229892784481816104054188269630046447655492542285404111021285780658963083222666960338980911721881726648119408037289015280631538620687729949001280139121770624149628321217190349829572567952254465896380606862466761916573363216731847889162305372298719355909125537194063482021874350798399581596617402768242861411169973261187566316018337821845596516247417052513680371777831859344704712884173922749162367400329398774465396900854537832304936879098544904137259446009429224722026350035167594601906244032395784811614972425250946971674632450558658505287334702708798791380386003162961754618676058073383149200269545289579919851881995113723081255536610682384076227102705214221616520213739986679271949056579496650462216738853511865899553265558382147574070464274707857908857023557777239588854651725511497011181641322031149782415889085743256817982120970314191894428566985373679894744972586290584888866730152235535643857341264186212482129120935917348550452708702399291132569323393829097509124286259131920514583278058889519290966000561879504592182175249251593691050734343574788474274751932310510029866430214148828313970369346618911194295861655853137650361458009755197324783010165803257502422203582128892362504158359929908646659278709799592711314976190138671926719097323828080197395384979953134406949289135588384482608546802432542081463836550190425622531627481953629510144573488540048898744081570286729790458754967715093788893318593465893723433774920174502353225509008914142748884857122879851093968827581060052329017043135759338013625339563956806809875423053990798858804372998020622485909533366787135970929161376424530233232180404867167734911888684232811110491193199427560312180117189913695971104155171048294001538573040532390580785252999657348711404319508264050594885372912365116808674402818462222966573871048557287690657473601266279842305330275481605637749677853752106434410361519463837178865173723569711223469854913847911623736617503051440392626699110485275978749548222377766640390087748463347870321815231958122464323293579631945956524019770654483540940544694975125470198783212438134177614737731814307249701665143865345792099301846601577034739214234953232444111258627738855720954597209439465144692179563965039443784592851319256927751715029210444055907974092491825326764925993252593410425830213900307935367582492403897539355427839721732368537833538629977208652516499494737969984417738104244177332448228636080416438275551892711294677995935170447885624859879261209773514039501217749713075692816336256562729892775534799999681030072152126521484443228681306345636381476142119538095603610025097834650715226639938335073738459976542028192194840517666733583136033659457809426618418692499417445288638038031373661999214832517089721774170384893070369401550010663786202085172920378718343729835430914048771293214548252102576102119414494626588238500535754726724519041977240424875840496224737467501600086638047407288374333726039414851423063057662929717440401445320338424497907116132831788134188384296363023929580119285345842214369225415395700618767658183536934456572555466516177406310975276911064058583431936945169691418662425994230803776711270797882716885666943302194540930922584156806206060147212825315579190297895719034630591599247707029021648166244887902490740551406975303036450299875300004444459024440748738333345996994091542937896090872134502630642099127885065833084900904228538006566583788643604823203594621338659094689376789211296788263855916208119267453490457568956039599204737776213559993222093479286430324213816978786365589357247331450281167263245493404246386392315782540919591378022328743187005426443988158850854256646283217667275862533701798528620489668542318310259505762931421670610694861139946407258994307388278297803443665209007110510398452342200979833352541879708201962898623990241005983336828383415562651323709854393062669622556908197609084901196264247787861192862572527375367017457414194080594249346133760343902775778959053787243320102512297165829880420162085970653919491146211863593312039156465915893416375497345617976776121978339001871539525591674918494473278808766065960367178555682985728709254372948197168788223890932917359025353755009898534493387875617908950288265298689043585780320717144860031429844952998913330909056987533250622208754319587377883399467614181576567132874898116874041615928067513996770683112531858990983835947963073267386005447530950802356820275527930126685720360369625462859194214098707753455697013096029634573392484941255025720889997257824947528441640538438894912148505733094468499558760765917025332296744845422192766528906280344288966318519578802145585472128079158380223468869608981760419410304003385690218897006594746955358775297152581598217040472510106920283404428908443907924774651314470749817135470475710569754005723042047309873749641016446215829328526894871404398535511354309280468760649588121286599664158368546974870206133858020520006318143891374815092728270158972383650074131512962734521829474965153936148144646765720076318428075400607483949850979053855120034950855820869289926228390455393952192677003907688352365578379660831650709769138153578595548375151101383611569690622226500426786878977924303258532271132964776224435936368539832974103087322306790733941423923984867066170576195199906571726281715210589409585380470223343779137930268913262398267010263387926051542883940345484245649435001668479139451873319113684847570941019423792778233327428393765138615777929923807085491881838207211234707929278025158454686770290675439746779527334368465643051074965160394060759093003025783025717108745615343986412408041758161093527654522190619813997207180307923209358272595106457583388251203593551588609304750154778141404379303104205473945102516558705923328938753452611974242892935449763513414061858940070089222554732412458480857547460129147120676759850006271858419964562928855843335024616002983178292320654619784785795010151517298082239562279392973660022047760182165161908367460847804415209086422240711594409199191612553045158820554992193402140731349674564784436141012976214555112436937360422104958468573252517525819067059837885619438671035952662879971371737389037466557184984320823230398835448313784332722920056303923445564046130271163785044819237325116549252072833015947068461290542912470327772469953378987255287934286899162818983108035419285710350621650739216681812667149361172937784441729231830589546178781734751652559786032438073356112350878507072860658516620529816117684686236733839414575795436518556227696929196844268674411469228783735291508150674874032381444500683182180887576074086656187388579481107935493679213474374200819919505271520649558032933471943137980083262125088935482037348711091482017123719540864118932219637677845927484094339433864088003780125208421133628131355099344921286520525225101695667845420265665807251060389470187166311120905722305624354464842394840201622917789491513913794084092013205803792500643268464290488897056234469437077653174150743457133493346701652864866739622292476020872731893711991995855587350144252852535770014278172306773239955509546187399293370696569556263096853366049241088581531517914789961714544305005357721710719425929980770960614596006169568685848580609586800445321492435215682628196411174512491306549567929043528108779447785463977984486353635042263645293168631202428193862496509289188130058900377837774350295723121305521078294168621562090651245522287560903933793009738250393328343459914527071218402450568401088309266282295935239166222200323953656055169511338650348257783934216373580067757947790745635211322270566318585258051707215038255040117139535120799729327451218452907010529937152929585124442211432497484936132235459400599260808823929150041293410172615134683795955262077636540500486371169062705873616011176697214818861425134808561114346783486746654917327403588852137065490997160943427375498560760923647885383315216884865433463708597151437667352602037562183088350982772498472582548686768570813383786610118154502692298499573112676439450724327449606108224225521315771279406763036452575755893824933527464825283908689453850235409680750395604066345644858852589093367788808170124365282558270921128664043133747156460243485610461265276208461445957857903155714760935630085907571507202653656399063850356081605584389566493062865908416256044338338918100224506635017673204007543680018510455618692601968297418892871230476744203874042027209385874837651245166216817063686404762104083587243032229535489422051809660002236642337081683869825800858860793239391402591321934814947438091590105561981144443404241953104181769841027138019362346694463949092437388652176162342697519420555107992867250391675473941942310310244321824565556887839755734267198591957114483571417396579064573060791135302462143694858092536012878149075829473755494607316636415416511804810381560468955084696014386336411613990028250204245523489890503755411866614454290713249363154166540278885758846973340439413830883635019658075321872535560070250840480688304160950711306517613892072969772915146025755005441594554459507024205450083359089186056270893718919572498803002786032182984411828694790471130282649793096406000104248873298127544746920450660062409725574937098877678406053151167359466031005717948825506944842015342138282998525048274743743603861923583706659292449426201946323665689570380913111793125326427549991039532449300795806471905789698656021888241741476450004727221591995884011462562750304082500146324049035807950381982964383744864833554759005839145684536316362418781284523489884454012448988335781209189018834872093532129083794591191614253704225483923027343312409268564116625108239380811397303571663366655179227307022858577029103595964734622937625512353692023737085831581502255280983988720463718285373986683040529603970730971557576821302933906098043975181337320272533315778437469513070228096714392694134630156787401617956517065985387205199370403562311151759784472789227860475850563946100592391902349071090849208227171212092952519074610874620758224532564571858933845777677081765698617596311581688387774300252003618817512020890449846129139350730955746957025917748977706810721429901524706155893264607860550614939633025212859156433269741826763172579907306071613804178118762495995094220979322432923020639974868778074025320912770911844047819756672433870341196928996028887697224362688770836797453544542502961008362554170843616911782393568235223907070643577709000237521233429754719044201919934536029531496434406304208231816796584566300738265462176587119305292815191614080427346304931173985795404747694000581326093940994788130526284951053177549313532273451674383778575085825180860250319649639331197079523641229560612801064453467775964620959956753528153671200905662124524265663517704182729723368095211117869716362047702495534909559571708459257938642980830355559794959338688873374091552930994833003529663276736762777563627553340907756732176528585711538923232003002058710040423724562280762323203760098165158642462124127189188408072870157240766510561041596586215434358947438607759048890304703207892703523819609243427865081922250701963932467981496971125840604831607994100722395138035770915742424831966421243660902606710556887591390896127260183566040500704376858477778462063852282431732736960070598219458281467409046578142256153346024991743551817424003682332952255911385987873205261209819626208519851891087270806909459110071219535675961631640538195372131007174993079954060203414948996401291976959061093246766082936352679249148064706919363576973627479919072231902962288602437209365602550128784786662758511616339281019052690956065882066783934636760500392900549221163006556238151763302383048358202218937346842629618475723276499862971437480933910093267854179920400779222249619886483196766101077764371494507825617063013787123507557585362717926258213954124499716963365101418442109309168335614844816821975080139038185831600149080345608617835559578042192290947692161504395661032081390995663669182558957713526142522358614650394599985512383943879780342513811077809607509816438798219297496005047410840770783381219744500960380990224879489657834166017670594519193111905402660572996708556960660350562130308535951854308783467254384402735044290709159856063867234041399318301317786382653864818733431415095652338461909502382478740302601315951529978785003433192018272069873690168631246257051072825727398667974124746733363162691608462098553920379780219217541723058374991138520345213275787023207805534563760398940184336625133845640379483507524264281235699634849638418722541756419252999332024722615306955226684835987094820234127374058716121149350360773689847199561706281585856979446253096951603637317702329985920394905586303685051768872189330122514776945055048047084212802387961721436780036945826791800430710900715532951591935489413071880179764513549152572425477425154717664624508269004491161768813649055537929946757585152317132564166756865123065626564047677293150187600245701911515124523876972448195769688294860472157620540085439484804093649400924337762912795300110002177221510747735736747286509898179627993638617920650281983856118529467858086958736514863439782025395973862024683844137731500981560796890003430965334809694605786561626234628657059987873627605190415494486328686575734789997005609717543198157317004163535076362634054738715224589427307569898357966488117645082939355156644657288449023569894056464893031717774540206175150673359612623077395199492391819003210958811600559849721556128405801544497022009229920855111645378923071291066163600986401971292319492204227020970728955188348232001101903320628270732846309024120800765496931171578273754049671003774315607357468407835724653236569519207386402289351512042230317372189618446883817335293293570669776300786633776221573842400848791378819052653042744839121552942199513405444066276683332777374818088837190167659153164598866109905422713128598259137256637532339345350303287119493896534042805844385470010228008426789439183752172980204201488675254033321941256897896738913749583030780849290486007956873608051133940428159670074095232763647422170034345328007975191916948019524783173259673315794209191289523417303092021415330880960510491732193518990508942501412675692766066503444356343990996564627722476448167059463532135359245893540037951444434433005762933475978787945269846822211292706596393435419722658010490258775417619890639539663402574917914431771025748314849838123153950375792851934808442664363131214557096359352813473597692417996635363371294101800617859110139136627214901346812391386078366059297754602732604303809688416040714524640567020534604786676926531094242747284304533067317085141165292361297928534790907290152040633830521293158854478438624481778544535508905854914922280779637854212738190021708186256355834697772228533240875246461103337444815537503771395217448283598863185887209099290427364264244370737953243825918604753402921725574547483562145633519529550410410889713948326595934557523028818206603303399807850916887023037068270141360590691413481329627298044692928707056006906811986936138446416942879065039976501815114531037425163338921796826061538155822163493033928823764118310044016619039717923844946611533031426490252643226862947239307972253665522939787743004466750960144457687964550550370057078682248418887655659796579038478485863598558852036232815194775186564405109146387993737306681671152613067661069694284956130981798738758335730952644950908565384132805972015889105760910687831208115534499450524349776973661322917036734028170133759417732574401934298105831956887840933037731090605715492941173464843518251610676187353324315587775735352460088581142881854847456211083164531342575917018256916595386251567531324739634240520799182451856898850270712735553444070240828537314259318974803153081196493045766737383767241584242555403479195099500980902453059892827834719165344066801062080539725436125734686727764953450807849359455622944479211376251290671786100706262838310407143606247195646977670019828002233994448639952009436422326709596825959082933220730709636809934049256137157815049063289375038137774505475983513096018515759362541736530411327448227904125150627368089257351082415549944627338757055991909565428623929724456249147111068828939574727494104297251596944889421606793541794831237362549460211829937272718554124143101118789250024323408223849093140669165282151752601349789205846088657856281870243194192056044730297261333090356477595217255705289701752314825691815676988427549807283786051480676014367312110515860679490591653637420898611943251645320082661085533045346584019158314164035582099986057360852771049501786144906788464408299447971058112494967632562724831151472623864775820624827799669444866599570020704315348958520204887670631177730109909774338559174609137324070483132690587986740469195222067365170063172926483946143849960425056393317964439058787246261501142102751148417921734518055740649553310913758037551793037231868575694259001525149472940483933049779837582923145394491414092101874247152531576081996008317983603294549420101959690785586656918326431310503474213492323375895672936936294619238393666309329989992718126190761728365982452173339557751341722742277920752887638983107697945310847283684408555321308729173411873955417296048165990397161298032718937496014986498905512379392953301546718771922089793672893079146241714568161581604710912691587815350920928463848038834437109550319078364217831079342348227774607850342928442614608065736136021378682968538592393209156253795815452682810825809798556502766553637402306424990758049783468497661283810804773995837419543115791439268736122613849707280284321279219302644817161296173045112458483497054641096139159619292827309891922919202427604425571530616208357899034344094531413861111470385657131853667342863227392047292802295762542363161814077169973985319336187585298677941501083762720950968276034248721505095884396273212993382913403552162218299244810135628153033645438368232973204879530048144882120137179521454838973344354736832150367437041352219904198070851579628785913437216242313618172686553702683228795521593745226068012917208066880698953490912151243762266138416615231189496891873687634097359272062424169364705599710621968618820903996557435089415547966306769944098350795570123620311647513188532682281637386902973676802722340033445108057544070064372712015067755609840277825989911261641446593072209948217119005348299434216706291376028761174530485842588622488757955062132855693378087212248358790434054886405155420507870915191053421077901524543826380386686244022501052785582744493168603521322539246578402983698277931884646062802648164877026545322908837141400119758557399417816886958757737557563783348182769329722118922347280276308508744661519654676823263694088811457788048837561939838755595928550114683124482333078774953778755990097901330815753081711013351035077909005094172464137746971984163001356856954192671861983814586601257451729446762441514657304662704368456284086400383157486008320735611271428065294172585141539313644149437512263531310977026502821474181298054587972075791116852145128247396774044733450103917878240414955122421827253662029802168838896819440518151028652741378454788734973811124896108970990601148093742841500718324777097927035521120458293117425819333263785627027672144812679690981767201634612099611988989943811713308451849613844680673156234080016296042038541595512990184479878524913568825932545939118610955760483546279111039756351463531231211116594837864175973247281474730347011963623136449473107140114051310729749549663994712317782146550387322109319492836620588589678324623368523377589514131933633965711616681944870798011196318541171328058966061812556068163836678833831841017553645094493552697543724120918337676496863619883061833639872516005754339255831524054209725043356430624998639820168933529620705784403554905645583157580637231866914014345027707846132759936158866412359315096017038756352039113759274411616925544292974653190100020238352097755875160773011989297487620510883592509650106981002540833206278426211817907054044159750804696863152986854414595094294706995554669675568272537029524470656711643539181025506757802267058727543188766777154290409193124415880232426444603488348392890933134149474924427966656429078096013878393558732257176773557886886061960871612481269340156068191176916970001613159209868304862221718793977526323702322482758173410973538215798828472477496735790939458211684197699690554184551533625127675235504319706619272586283739850439426170819153932811239899710354481953162090218633735465228743573243854192796166600509592268724807330971563554224388091703770952243964979747466276340701792538183643794649364963033120483458869076982223932662759550112817217727670454471569565366622251760127419660179951220625080959086872045168411091970778842436743165944795736680068239371040788699262466877211208687700246262841481622989646556039773703057767802814063940904993635915146259006095596116095922877071024361938631215089301334499302788274635428796601605852135030660994978465641436232251992185845107487365706405068198383753331324736895636947832691822701617090437322197465982785634446052293746670610597638155736882602071405434628835338180320037260139408849254165316213122364686346447808769705818922364372249924440696665538217698850469187545789205098493635277501133404123719921933188025353139095355128580749555337130388735154988780819781425250174484888690686569908185208834053495742235175421227294241939529747565933833234159713798943895592827970594215377677028250866714956911852388108886312112114212541540775152878925840370756927353812234414664704222909097041976925103228902859987813003312376302975793806955818601265149030298200033691769346751430135430638422971256474650907492863617763602602703118196337787881092156503501291053584972904765207403550751181616940047517104860310629412452013129005361161209717435042092075164608716069534433084571271970065068956140993738853390971397485993645147448144542397700039418376775203526861249124053342265125714767798326633941907349198755251891826002831865331882707784880320833100328409226724192399813256250815625984080029651302523754429842894177043712239869703593235800440428962896715087656773892428616450761339133159638619684607185522218064183806214709724829100491841143557592309480091758676789192764803393059431827554844768407538070754763324539382324080969284919683635438544846502935644729619215541060321225569754954982185213168253794161069655706110805149299772885369634327664537722763031308942936718966198895710774471431231690738713015172901892792645099575990598623177423942181047666134995345984127992567788674638985052043913447052219234568720527245799507822402947164176030578640667924748585900650673855365032591469975401119824724863811423389156056376744950233634235600579943831240001624906109812424296438741246888701199646762426067158448666817050218073054449209979071381783013547133298562794594066600932254655735057471895514507451453496785460937879131488900983464190862752789111145892460263830878728218544613722916255149365882106653869622758284346915059736596272309697265260895957431422709850699566835735896232667259729520068999214940024609803173783196429154829454646216561643582684067603059148325951427608784879690308053863129614315845058231947265288614353206262675598691589756917149314908105584073941633151079210355705424725176104160794495850024470884759224004437819384076134422650560910124264531113388112398042178444919172799748451820612896486402670596521737467903508306669134091419926780613133299249995891287160018026227291746565820552896631448517385335216263677767298305090715830608104187313932931515556063737492209163510661684221642916854851957697074091611692639553096484396118471329563041852044343151706746946356853592000383914022825523468534325177785906028730420345823700655901795999373777690507004610426358253920384140196052351071409919639099664531847204871843602905306147131771125435099416539751921316078416878654703384055961092581873958378533390772614469218305567953409164501631403442670869645508292501474883793740999452001040603017144454526987074017013262125928600066081752514617986115281105604305219702400515459084518848439014894834194474764744570028947840339298552742832625903976939131859072419744383472063504517954707905193796713095109664299245872635891700814990857754563099485944480296927965498119316359423597067256135181457071845106160615385675066026056141708519556339746685356859262281167494231238958188922633093376135429812746407149556855391956540741062919647219192756949471368938567282736836164923066289174353836079217623803471334282103293094985462477586868788716552726716064792869175221902258988970039250336449553381935536958716203545456000558904167865722253054304240214671942815981404734708012675510429613095681008079630095682507827677300737540287926260314266678335586313542640795349722043942460866103264131742755059629450856671900472118586645051685985246746424855370949381281350056993976389202764906384237394981121856618905155012380242726645416540897031326497582388537477736492071692162630033014812884049085018852325195507238589075423162324891284122039094949563455373374848463905213235783277280595691014517367575776015749931734235095902552769697423515036900317537499661299849766500804602318815885502644018375420490450264539436945579413588647906747116544807508365797461984702344643950529291793212076347936172261805576352267510511220583741583198589227881614932980064479282343147374102479568291748957175764195851480514128797234696616332155229884927952814383515086026284374317454194943263692432942383972837424629294093950258156230338936897750799773489418914464888498940717730858064011913839185083744266422515150305645091242307190483597954924980950769195284707448732135664533619812264884970018983827922649392513131887372678880219973074663330646862395528431779188589804196878013923916985494994213023748391359221187202028905358181821381200523026225973404816660634109711377499580933124346358555147390147469412836348215814973597446073235381046890440478572522848910657823965204980416381397030256328793948988135577928826227706946891263990077747887351124462200593193776472615498816017385109444310552256476290623189499811994966728846282333114066796024419515359093189862067318091336618614940144796733194967023202223610082193612315820053063775817375488204359008339115549430345463479077531084332675102800986668093910838622705991269120469191912018197080807614224892537970992813462936630306113785916527598219793989691468211162766376646599626164381379340335065981310690053155650202817409830255078590718117806284881896561380499340207125836998370935992636892439200647068002368273012708802428680714840962294553989003046836412872921088891879121941349721844879776761940048032730189979937404095871282148086236250638896955306683634657535473115655569712254699454094446774875093050552143122808275415333511037627242057833122248715266260264132681967945441383173554123516562010122700183291804727342768919739729312790390687179950488973855524880562992800200481394793806553142244737410356998556466628052069598585851948551685678124341105645613501288091992238459676090504459127010174285983839673020187857888558118087782517777019747261654715570114777206959669460998863791974697226012164439054684742520099879112736790172595794030748430385219164449182256286942650613088679209462044886364867230532366256651412968021455924197305070030820596108629698105990115371140258138102849279665746459385094565624069514457825229892877098807225879806428148847969547535826127663540695359702707305502855415311630065233049165009162834181859036560271686853894065406066468372546312666608697734910029293572635367110820788698495619081874033518138078535144608989160529900627787085326865420378109535645961771415731706498095325873871380246493616375157353433077172889463579235927540774649377926043730603352129166149795530865230313135342246923872108101390237881355972635453703000048340995678724256151185728368446993589624693078292499647765706364597651407458426406430507942655322536099743442791902083733659715970486775803902529893568429213441272662545212959489356011270503006515884086227282055153049540288600970282748462793178327221103395919509986727802457271388004031423317307286936081231010951983089503947651280801778415302580549023081406306375988644412074616341316632450310416632712654691691461133427918402006820047572116627737761364117103873305455743826969318538056999401080359083079839042456816840941097559954083939826080543350431121576235062167921138949543891474617749930796541685103935689301922080795316744849045745593781175627816254813961371324930952793467827210610883105346840162056195632271639528395706365445864904597533040572180350861342046271951147201244814177254653602575213681919906240883113957485336949921404485627656148484370613897772658103792687129600355897663708219106992726852552641083335343413569170253038080623828143952474436242343382162552142271377188992166775428139052107072478514703938486080850500583367841911576676829962573520223582877944811093566266744093692458528561692270280187391825373629430866114952246366592943077130713450513123453474422000235561599142507070795660293596278854572656174540110730531087889384135601479690455649244883374203408453122453354585662014232978474988357922040406254837512880195767922805577938925906610754147592001451850209334889413793940087438913473720797566865769387671246031429424886175848981857222818080881978826751848949694840261288239615157550056337167533033978279249886186041079265800232168234886811821276411004644424678452258978467307172126663591875347977492218403399892870316958642771217410234708328634987226617803525723731605040555138455660060046251905149733232140114892100057238438084085388108391824250899044204314571860327672142595520546663287292432217814071260234512497386890022742647472858705338797284109906501501273471887395833422898433286988338517537003299737611222188988494988799297264581313159649220577096841849361947011361897125829544814283124030086340258414063068667937132015930606025461252765828466836167869038012585905240912535820764790704130156036532431952934073108704545801984497901093420943720410488865186534976171207307187127439210545602634022713466206840393403381723442899210508081733089472043059894325169646365514982139550629104812586945284122653176473929458017736495913565996083589715463336136792081378088171390594443891870588418697566605550732182024738130332178204107316323311153251987718794995213965765952832728352324293048705812934264192541098449004989173771249525460872109606856966956681340167182702673260555244016948866569489321575687449109801837714931104798616198524519760956794500095732633358583421954765573461911473992323913975727704078737460463716693280587875113782926831860375309596465957355062417328000747579452749448804083459116556451473082327516995691311496789895729373207563950497791557236950794093272170751006273873071076245325125916304466160556631413688491295401809237996661125701435528448204772437670878253242726200803034701928794222202401875178259537572795167004146338673896219037199131372630435214008890830880541742040136419204640583562140356146762392647096297728128596655394601661386444629349848185768235604955560624903118751455132127236833697483270530659044346046820654851917200111974961195299739773644183096608369762049934625785266343674124481111739294138619332729364985565104797152354287910539228268521432035025374543911724403487944231629044227242363198758210258441933773903975404780482410563373642475093050133988230323279272029393270359861793016802537679816941448107490171533544456335514307030757520276216544042375261838155441835099288651559684832764286793500934173411275387709299845898952147761495229324334674088277459388695913479090770982825955697424072179026200668224981423525991176165405898715592255304994956412320520277204510752510063500570464582290344667120991377384880920281093343643163182685533163960549776056412739851431206320356976051813860723527819349487233374821444686186727657414758718440981826015085290282315275404613632950584161877944224003727214536097826780098200808525726825537821209750662461245067372271478777966776081696643954937627378880221293919862796632786586019158438678356221405264276709731787425117940387100529820131428840387535056578094582058831626130453056822709352117536541572385328165208451898084244983903816654718762229248927091196062177104909430824795408603137682166192618726574113817836067750091928539107135342618693100668532752734174817292308182606801244686335377653027466415069439320688824176566932356417805035094634669767552123982858254602825272652393287513249092851118545409860059270987638664473976404159239198400345320876577217772363337184764313651774107878053992715875291213227951396757499670835298239002769879731428631035028695977890867096033994310795803548384499152438759248342451468463725640579681824170001268373128028075290278749458488556942449072178087235658110923407255308207730092133099013499251331683989556928537056986050024500847077520440469911006586405354212103693279197065018255385045300187117866235816272974702546300453934885606392033844544257030522095898535434299125357204816280281964368587654475904426474092297536245208643558293233204472664258742448331901807414850487234034332737661865206937114376688682221288598924409652811439812071926390141297684427053392893231231624449433169321887422084475180312123426913486430182704560644137081011598514921855993781510433789463599917566281933300650617952459728351891343231622231560257792056780012592620389912027325123368377542964639240535490316275514955535220132942357053234247313975894298398406948754594156562272855740606207128019754923749000110838598681524285167796854361659393126592129787251992508400455524506030219275751319447086297116347893384472629013208766020384805479488512232950237337948765929426220152973910169144192848677957511050623940475043778068491512496380718520126817677432914363530622379937931943731789476619278390273083790500544346212153062148972921570777417655070327011931116227739675758504732786819603296460212644815577405829142294577893964522358088345670168652056628514672689924481942680738396703609351551280422964565978067795747010759940257605195270248772980221881722909269677477574406911767114143815161352710028018703782802152755598123551919008551235544204064632884977556319901186110240303516708146868358647063889159222044404154809550308070725717663186443080184092875509890601757744132142306098567313750636961120378134929332690360997226231723691387798290142174435271083603723556946649291598507075472350207794295455459862167971098947919290277033769977353587822420785985161285328059009125047671081222641233767833629651598950710454506228459861221394912066541647589797224279279282662407062496707749694879322741721742589544631876935332317078474408185173560852340758884489765664851524169730204573081451589647512770813082127033083903643545426198871556175356287143718988127428809126886599702332606041091343272920046611916313543894380034883753345459665412655189785514849992933243141676255294825824503405553709811890846644371770022005596397333223797032297186053195841561902092935590444384532689437064510715088118906140643106834980090358232131770871162028338780124821038411675433416745015940118856147814021719744201019340071408002193217424179798299825303587364265107694953067271507189695507312701907445694510078946118477596108231648828264240974348081459500051910059438019965947184385258007324756441516910911441245022909882032437307871834082538152037131922074697036991134027191513371961138570485575956381025466202316084288128098214396241302853618101452944769334540071133034674620708232779757487863810596595312563696273914766822325086548039915039668139653495972780827787252470504485359268141132470751472458607861461774201115553710044625599766880869221887143320700349700421159696117478825238637697232566253680725328799366881006502602764282976235225206694918247435815726269161819135901877673418472209023676958821257681685036001338823268205730415587320783045865032497059241372915018532984536397715760120799490768919731507527919238198674319528040585352625793965348588274651794117509344654668587421799701826520537807717815041458495594341277513757930524162476188237333673486366303312391540899337358742052737393782339316313260641832072243978005283883592238191548714819447311833792180993482408562491383064791623084738648469473483999372048867576844848699084963381396374023561466623948047372703593489113504845778311090945112180328428537082960364033922984032056449410727131746218568337835976785035312385355091839345123632939771460257700954192489278328046256288948908546651684065793032790093950674363203873338413600137909034561815627637301587073706800667463144359925154816393389904834993396649238730984430510824611876453472497616610497927978396494091977083254337783636481768583792958206958957397996205577621480129375365730792126778020787365586190546162602485528318611038071807650679492545980507479614899953281252584247447131242918420824409295634315268760334522510698382330665820050920553641449483298918710492619708875643745361072641963426074493528278301566017828185466516187344524121256866301586262747245589264151244584647761633727848943300034868084560459994250960719195675017340867779753046840097987541776123737301904230055341021495085583278252472873738790174369302425493101502607428168802152273661563099510256592659374421197916969805539996123896888948239521272578187292752443300922443780295345195164964843227055934404415794935587326257977010086174791840115724489324203813707852524120326808600177637985189313824961402387995546239490109409888610018467351585947784395359214820069318800827031549189616956839734189723843465434189985275155571662779181930131716596293500863867362909486658779767107389315947294069825560479234174956108700490740093532859820094976688089104788603951475796732761837993339750505855766797371251088367109943392075353996457538032763483254742223568928768294095286493015983666032294063249489560322501185546254286300908963746297722689933431608435388942979618461651975900067286971207296859738285567562920966397430728650436066032443579731929591902792616899051064600479652424045617474005334234415307452486184159317038111536605851195016059715132583798729040341620527811826768804301951077506972234756169371325624556076012349666288225717434106837194368605859220014883958477833937434257102187435055589678274709593102502440210469759041526481612359254026968410959549285106102685995870725714376896083871277918231914331296051579704000308050012196445979681804362944243545369160832559935049231571997652192138979375588827884192999954929361938478692245561565228510831331117969836002866636077577886067331167449064530147241303799004387862180806640560501422495224501633379978252751627749516982349449425697868065808651349941353454670402013242694581259910368517702605137847874976848100865797679651600603704242851676238567238606220003634357108561282586129347962648412051293312570139873579937603095377459156178441530582364622293398590567656916397852567284793710476651781008294774857327262966778247649113206244637525245296116926910022686981150297390653710634022093381913354218937714981020541993857103941994841318990454525701089481920986123117912626900760378605988414024081248300145352035658947086369688828613419194918080229523354125817488070864345894296598689789367451368035892076684044144590386254679180724294996476450002885614672434087475405906483300182025211197466502966075741171666738325648706727301464687407635654417773747910303436927586701750974656381704700074793883073791452090231248551875214147650758227936658257600761463669505925035822153067325659159201884693999139154876692350273233956477295696039522089090701825070238993087078156124075181757878311698495286474721373065096420430002195181851363943264709082622739739074669020888749442056266547974583109103023581711729961748719319913495110439124767010414001043828062277522129368078406774140664929615854615793677986313473760100759148783300148773174341683135374403537277496376748845271649932862740267576826030709974780271350800177619873108118044544219229428743366021884096686530721308090745795621911593254143428027001646623510269139735544966733880703906015012938548626443851627621748641538498668110891376177486629984742664591520898567467542545853345322301914505584418673846616562424136941670646745018230716839981836416778671475314611365194975063728905880776125964065819114169987725274542260449242478953839398921435825576038884713050680916903168942603529117793595910847253925033467905044763951747344853316868530864825852095039242295709391044320943130205137304184336546768651847146765684574152142319906568457776666090394381132749733872766271463048226306449252247281595877279721995398533378052014887855877953336336966689091859045251962058572430908780901059096885368115858627148994591762418615952182220974129537238806490512865815169802217194635650241556591202695897122764201158458223854841602897723939421801292527631571114838150180182368583400545848862246760824719718615328663027673698689515166516130811194016467834418758889849980967935515857159979404385533461018768823195192459509743320841656730259832326232729918170687176020323013093427769551727205531946244170500315747386398937837897804895141607793720451935477792676470616351966114126002536528108927557925490048053567352261294594862609246299927622377478609970504700427207845088683049218296008900109936916783435089174436623804965713278849655805284239731327150078007445740859916664276439029166161583584155845709663295425233120595815848121559267221802400450698240100621291153906838534959757054604563250872102221456927422994102195235648140956227722941683396249138705082529672195977719880979456256495199857639130389315591546134992733093535426492698587749462499855887237590026356060119186636983238447295453523200963834137221277121172428887709080288380473318153458618134623291455626506026176749165906761148742754200897030742590558119799185527155644888376971545623018508452074645104449622005824976681602839759812401515005717786421924730997815374111900068946575100746223719889086845867971584299358963807264233470066425127167521713679013947954715316874991904571122038121877298827697028172854471293833041733338335991008533849334310712162984358868505361319792749164400144342400214724697511695182556488068731072171504233712100735587499057612000464969128292099093226120820186575176072724787477435309397008166127338071891549702165566506895633634109529208078744463555048554622868980662828960418788136048216424034909824909713365666392159988364583771390323697488335140785785554479469904444082207646879072274041397282830574684045447890853521352833383784095853567840973263736399346366881126316924299093768647688427412855910619119244718492829506052312932072148565754902094849446078554330695344148237410169581744900160025145587072800450302121850694760366223494636919314245774860914617635809407251479784595392572144304988716647109521125312907573571820681927875341104708791145140944874294418045605455227680144724232196643242156972943414291447811716987407077757848264977130418982079213233486466754645916283634139291721317758762103771082764465661394645180504592450766406911936618969819014282335022876660095435870716986276680535120167506644510427003571423950782189587486617998146209852832853672062242009795094302243130120371771508418723711855752572574027929126383368606723389075135987072604822480960520546120463629041457891886953874253198873753351857820258429849985993215025629466952591946208502918102446632240690431899249590646363446678379060273841762825132126114797684709595160804422628489204341827976741823498780520623522491642882553396147065877635070238765287690966874397858630571166115666372641143159133294168818405622953024871969876948370324412444065255880947767637775908606922095061506704445447122694736484425187456589188349060151534093731586392983356600674600469411475160171525678459908642421634560429490546725803097747865752248110368940728207068867876378296004736032241078270341785529262595655616156644482080848035373632281842191136904028642591592355927993678626328867664682756644261005232431525264816521079910350162296218687167667140116049534319975393914168828415523150528232390052925149569940509975934404801147628974220134854352626515402592812128330031894455177766100404782105448648495664309157124468134473729636381554039742002135778266440580571423399801772465560075321513539666518328047240547792958613706984191862894733427053185547857560866130344842369907418695710692292714959116242772306881558106501180099923983156887349469109503122323946859470113182259423377402132136812886002198040123478875360744670078373741322614246743151057686805322522971877004857010362540335353285208011964537814075137173487352170314307240327165162270620665081121655578026637771969407366766623880092809974621107373312273741316545050112692459224915026024534355078380870708686615122949543147618387442597742770185422789868724126904368319106411433155213023324955300723774218070433363916236055635884931464512528856766810320762088784272967230997019684248325280472711108720191770816220708565134365395453565517328728380308699382921136453234186405274284032940532203449946542293651573347841518028377221227842012474599325297942163312467509294333110550554547325300131593006897940717648293870806483102620942496345597029459062748745593556853336189398738779599125914067339782361035228113103595831022139879020873834416589710090300871585412061775141671372557887762507759355954141171886732766361787808484916724040119858292716178717270583893885428292889548732649175353678150794361056354012633846222989614804807848498575596778074830495983623000702906215919286642706881867533566279952790780348381139664986831580901198911529694021529360366617194817697521012630829644290856451538629255482124343267615743725683890304792796260059349072300869417782713563133197412432993510752150580115741168454839894686817780596190415476030955967142302290097907850337314372662621239212218471344147955148983532027351692615076312916775790810687538756262290079743992523760116417116703723230932291966853912882396049256800584039876005325023590394639841636465504666895056779409944877765570395925554647610306113166901122439533458677519127025703006780046470432541002697686931977785131465892609101568844989441697228184289250437490309129916754395305600972617437851285096543564416854690905642548567386654282345179923283483464192035536561340079266831099015333998261315034607072338255879714532938261244534587838399075428657913216052113938906353991517781155582165808547877920945126891537885728159501324166749747278813303567608430183840559206044406500462392936076524436259707583694253199134952673726321018441192226824944556502773473156173716948592987807407093240947099226755763209761660134399524288350538014103402604890311078715905355147427527849519179025301957421839736156104215026540500642239543438362136161416432628987691384036330681746933930905811855208273352933961005879031005644566368223640702909294398271117893536882138902263426402332050389240541962955271731406105532680398485016170547684649100966242794628716949916543761772338853372500028341872545862600767367667718796268688476371818266719638420292482182252094710831415608046642091928908997967274699127660348125345663410638658415654657211460084332015142439907535538869067876444615782579085967610296556728981513882079706658166437148459746948987091334607488962047515408145263993360551599800377713406291785095157006124825978100238019418444260578632894050348688594633329715970086985653882744350554290381556930481564905908816149731036322971619120678958438961169078154268392146778862821812315364178300717798847410970692604893326703620309818371644833391359821697317468689871059832154609726051005234647249437213236949244344226810836078224088296606737677479881097672657954973272851906252841147223383753187337821299662637462492995451528723971146629256943150774150835967270130815276674825040361802844064844379670585125407799755407866145615333168639612998189546411101079864214694308922254132842386765079770219167975950994996658115991310337178748530405273034236111115883644553481191356059711522270832761200818281397749027249308406357723198116657333339880882109742729763375591939303146258986030536464093061418986624970785505475906592259905925583838882797316546050872909100963802058054074089997173284620984198743093451645332190215226183996297372024231737986875386337872842778237241679739062742914156273922641796537221214558735257772316735166874479912773491037943502321645099748572906027030696287868132516199356968309421412907351056163767290219764006527632235091386574811275691171034044485661337689307843321659547659662243869548950239745487111641566042540052457951148599385696420500314486319754625230709920209026157453069810963293197328416017977341805564785816947784467304151114160603271838900760121698207076412130128196124733291579632974710642633993108157930682000258434374616822085561143452113343293064800625216282163383365455875519077543031055348400530950036225198005034422552643086665830969429277047185102954592811111526994654205958908435489068851662900972956825581271528315168633984748831465129189036673189821269246757833118706366386680782891010083144477356960027513192183272823102036466473180663972185754200068984091656763205564157348131000947905875798847424222071932953286644010282928794273874111233432234444550523414282136746997842181660132715740677436551920904524933074048626750112642532070302244392476116359141056045678715902484887667411811060320508802237070695390063073525342548332911086246069692004193784705389096022890001695308129811220691526942050237527290923930061160623534431090873165514576973225624898223795359555472773551789885671667623237939282180644824080153504885287386389270428054271443671413062880063215219640627824231411699600959438790582659589241350494485382973704739218147808754066898788343747097326869015653644104693532409422540329935865285562673738168504551620749047828811465058832729671536521090249540654042434921975576221025701978590714665070941624099218352707520493430735986390977357260415516210622781825262146005136018932240569913300424062482343772711362015905269644700891939124807271451619178409663720500840087921180183280653795713944334017290492056704506324263571403042507058295705666798903817528560091504241724333746998245023491229533580785681194731287820948292994824380379684671644514450511242500923337090826211055379459539626777327365149530130621679853184929342197332700946465885751471220482684492504507721060737072928797525944365267060803975009800654706624893578629217406440577346823992452361398741902535573795737344658971626101338476570843629011094959780242546527082106513968118928455155509804376858074965611945978854629003643737573615256914029575103398770373093027884928435348184091098055009687946455346201336191646805613336516425892680147803852590511435751451115154632487925216486979887023412277739532071222749005905832432294488084809976388842330645927928632839039177124011432912389417170443509423165714250807695871131462618250282024116291106831295807765789803420256131040622620633528683487563009464069440287894308600758655897506002998323583661426849525957679227774676676182014007987336329972366138455171933461300163803100634843699090159460367889333314677690969696641425622215002969955838470159832669649255602404774841861022798056132967350960493808805912849432668601777876799939265065489560923431119882251953162662135535098858018176295546678942942437707406052515340813686632549208934348112686670547103077355874131085861428603222331237495032000596986460467297063712038490311460981450879092503092102140399090873851642552033319377842208749722805504149951714827484391683829674168293655732433463156199067141259694009025767441854035513378187819916574004482236634484722794918671893222001326424276616550754427054280289250314790898629121873081777216629803601338974399750709368906065040501703909711736208930720670040736174204215854656824211530006373937558151305740035350887942851605960000862950733799075534339329029091042415216863452743775377997404510676148104687184206454040229227764517086244761005748435631003805009017602736572338017874824268095376708426427529584959184418102347036576514775628220934510776822228963083893421838711378459524649766652716277281286102890923523544711627131090643837199516347769611236671948937323086888984520525599116035251615218559711760859755667326586850475321023430599443388352492320600756782028824337272498322140734422436914546566199085727434000357918974859204247230271338768495420178720209593040941050979474499666963016361740474137896895625965476333516986420686066453004454401446432853887017221369468569608040169941230337681553720315936707517806813366200217457643368789689557843586175917266308113018284858951088622489754083308166414191365856325874989167751999432886665351101707176822956873179377368096643566699461744888522886548574541791889221685433318259140111464155171154326941039087935108959126862933735432206059476723656003982988497129533302801407967366136395651975024991498497316599310389950464550897773252257203466353897844291567062518910366455040955276612448657509376025188358780040876818463734259925087864751806631319335145467199768884764978758372648515063465694859296121434516943151165525709011126499129689874755696715499617280521776283867965882972433309390186631485622212097947306264416782722974630117519126292551192255774130710729790884175246125664810413253057413995993046953891225331916716518364699583446065364547182456584285198738239697396595343877036116822197248930444059326416385636973950034164322232765533590556944298090569259561210955477289407382795904479617429792589485341386195067769710193348239453029398801428108136996483241853141185037927375802832268972032628504605577300276882725246351539698697226874118871674213040393922951631013495107644073417593218646119721980405116431394557877786608227069522918207514267616122637000801651504711165314785244932395570840319190413261021637464113504508858508287801306062322882824132716281118591054596551659217765985231897825721075051848413463638369431415717190125757691152389188690612737285028761947757064078229765284497236394266666568532981530724334219324713053919046866083140260365987868035823482889788752667903913730399710878753394899657152484592009270960412091569248929618635375694442687623302493416362868115063830936612836068989605137413240300530204024788128154669409104665363134315743055437574080077227398041608651689586080435569422891474002545938771866337887574336074317437868597955677474736442664120004635795212200000665802986470460783991031468435458710470402595603713369529430487938073779907477890767101435664608914466220861998187803493571328425344718911366817511847470353500294734185112274853763617149884118478037588939958327057429187171382100707816968534419943256469067577996566518114595825229067411578385095833420056818293041618680693862795488988859933484375104482410975233527152717427581565204316348519063567011669429580665884853709755294709750768957610203793755878976453047347774003733199788004676292856539912888051161008766391934510595781487639485627841316718364035355253252136735268593996084569994374176441670890260242189526029157215499724845399904654157908639384717543312347850755938966654886800355754882404654479407282500681618355522780511379036312550673226086201179771102134041558468497490429054957899074646304630015631423990886450245949202856170165217152052547478823357164936635766003586526352063009210134627331721407726860912026134949471837099110694471671299260045489692635142279959434246285061840516672957960147153322314984475940218942926433437907703714356246014222186004687563341763143622247383979661073456677736736984426348322754333938661282891552471929789842573280667753460875385319309592524750766541293974804107482860616097954730975635495261014694824182361792674270487664452329895496936776419446043060377693461113085542696172951060876249234396692580089404837998521105864035540057260834716217055983505063811249854830615418049916755405431381802083906790286303792832623246138343092315702267447202771921620726009915574763304911145118771758400869690467132982782813242822950760700523998166601349991541775258916932875611287143762097609317442345162326133055753457666988794099069085603300146928538638908237219711381906997468381191057208326747899589227606422077344426598189241719433724983934056004127303763235473379597270588280587414398564697031560992655649641637245293576851719471854001496898566419261597722271626697047779983020791399831833350437517923563135573258127458885472234065808930549961967451427181154728589201141822168750437909758955361234604458134339746151596370555690846695838439056162423333480979044695622888075905146051913562931654716552989341402996183434831968120221015399619129023492429414612547562021017444112504439753174755079022024581996645619790848922855909426709268877476102032695854396064784457637763802676725162114897438696461556184950836524628394325532933534687367917757328865642225563037995998033913073261682464548076719509256437227436707232611434242190848517164927263799310323122126276302852864354666445142510265749860974031634365369402063253427443560879354620373553608379053767782266717481334673822717348339097586445832033298710403578709749351179361634614569729882421503293588581521864605111977668733327028005349752942423496626684079186885309899959592610190618180483423773458792775911352212507745394060952603444977382991866076983193737682502013782060841038982085799576271947668472642640365644790189462579303679076977771776386904111293922196218225629830127306680347917351772842729184126809084705359752884648294929618470041606858773441814122247517658864308208591977676820446290621208313752111972509158744250938694407245557317492968200768647878585985901191165568729226500956953639784175288868680387768856405989389641762424102118146200286024405859341430513549317581743846140556982561725374479180241875176279579820725801423702495418432483859666267705694078974487973241486333005686028067987447997333480196434828957038687844680187841527491133655873364114100960890526523426421490550763474325658533938998613375734171358818679832208481278834650457661875465868769820101079024288593628948192586792600184583854439211363950695248740422887682513221006588057148462662883095916540968230206330106879949038889436470237841961917896266342863366319899010103008020743105053657910752150159834978858833789224545253410737063055529832813310574710702384304607364454419226680387337482524998375095881705104104543890329194574864650641880202666863540919319857179241750605415084921296356729558218838119433629725647990165939148417440528452775120816854520616972675835024925732077198871342091558864360458182530163396811328835726657084992642930952345770175046334188813818410430031563575861882464748320486050218285877765304447417795416831309795209431704403719111775092745605896884941768106793605200631180092435035883865220223987685922765874915985817175054058562579332692098783646671372246725441963839386390661342184474802799848597907296273948713883638220341189752512989640458008956155703117548257544760651748100041388836337852220439855231397948512202483401357324906605564935455267378464581723871300240226507498694134486584677735756814708458460285607557089411293588251771894265525440963813876098197141362840492306848060783478698493320647026090059123501047727928301839320843755430538262539911544397697891182625955929840763257331531451756654951815565027454945890989940318861750766999095640979704354670238366030276290317231960315884569699557076098050199925710850016790933766668220869309109659126015868131022886826410697915465971362916125006448665992560628651995771734323550952209816821890048039667057399839966978575917827548789457137788810962154271377213432597145196727720177944237207532380321936488367697598978476827387510199100547944237717194982262189689706162465781467884423641881530953959708808264268473889818942726084287823187633914306189517913966573504101937238942873496788541521784669040445875866979874905591814345062319628230924338815806660746146114935127248985124910359879924954233321483787729328097072717796872194551646448165339488369510429074163667852752240337194343239151661352068516073322558657226556577384718785083255521376911003661016220684164601910611362825473120265206855060414432278500307901442049445543672328320236649648444556067252974204949664492474817172531116077890519188623498567431993591205510799591145488317287253024213431046094619711909718139937034371577553273387613718368600678011627822111708252850699153219236179142350641635498677373819188156542695448055985319512094250085561306353348680157718918453271312729851102464435307715213179248286428296213137635582949484483530630849773507834958295879722849368646870795258523223395442635088322379182124441161154895617532554883445102655482052193437465344138260143869768016200847556543946548223253090796543001722919974024865595586011842319893921859507483663346435613088056276366697374412054761430133990601247056298119120883516074862486418799647663154918395005670706160047831608955021529725825007351494933793590671427283200066760243105865120521718556439675879379076142570071428231678580297228882581600387621329646901651020121378152393068346868578015053996888943476492323331536108997201423189531794151776674699544566074374372258820717484627741336812702838706979632496714015447931700703751091326175636568375047029969080219059330519287246910170650127855364125112451867893317307752518850845899374541821300772764069480192595380055832352454954781181503662298261830333583525099641008804717066104071416211295051190651552924422636902276746532743642733208123237501974348810546288599965263750075134386863622398576900975621618379565108236612777294852927986761805043097617175430678044786152180723977596453570835488348356620675499791088434184579150428175954458348798961379558872416319877693723269115600380148199678722658870867010766482311763021192532818281316343006891686770762627021321889053636710017537802694537909631790426961182813284703062454007111067568207749009687792341640884751429631890032101114942627758775408079220396552461978323423198144423833142282329679515874237551241843794473716368438175855463926458581454022783546285281643876947067131274266111077990658744205614014311391152254393626122304721880912818865824971058127740394406344738846360347882121987649885767247848062137892444657238872847646622557936719803104451871704407980488323536240078812837945268232051055679258005462315417726771213698986342008066780513402865451110881292195616138574655500416746115434773481963172432374937678084215646986454957876053034673131731811513723842310940615943740643218937253700447123117690057735468845415644790054101688611762769234996549175725122807565078054981278099829589911653597941877806649159709575341618532076150418264988252936651815646178981528811843593053438195853949489187958571150741300800977270539304334953941464020361868165088415642050350333819426322833538248403646412588395026596870573026027303171999999059353786894816207454797113140904925464125848088489267679547021653122266164580745331864638281813029479962044426766653367760686433923428144492097058632240017186129517692595672538050483299235895515853925347463832707541076206826814600492046935117413444215910531033057212530004418871991769472666459096535646079720870888134678340575562084559935240084314153124424232660950549467553514703844244472846623064651695157953848396591780169091952826235258550962176208351186330597741786755293676005240602199625637985828629572195319427306362347822766221469539392399086872151078184736745115456619025330283587163845179517754806075775181589472227037944486877716552374356664363004414154705367605735661373680419259120297211571733211533716190332999135096852446630250183962875082406776027107467256512981734205786032986959761123051570418506735743280901782452527588104431269479155024995753523419179237072364588009987197561622241895231733197027545909668306266474971322261871297993477276684510338266523507471535873008085367051092389329058401577097741024473030486244236045938333753430144650481239415121892268275116020476747698148530240909847456786259751335457775950843275976580659865062676392106430891833106924243910253126951828059272458442101753354526292028842842272613000302230580900986894484484187555501136149485864337823196257506990257259020197550241953560012709077479212763457937316255102144063958650001205402861188989714713233616189232824465348617874198190210791318363956814783667285028953886052666786983874536032091758371244021454648316027614992742194884190937316732179606084268743283942092254474708833183860636127947591582741820473171761458138412456107352624159979799343859303343019337761210119600495141577233843594316004381808541864237247446792053649981693674372086540789143749253933048062446388884867238763191992333351952175334912693801475320965008960046701236964192191490016412658045963290400291598929499573984485542990676367989229910278631392969050615333743270869112337954893814662010614304177112354985951635832614132911605522300468492191169421332248510525621039192440834669310865458950780673786720628617692985420045578082652533942455481473666925347339503228901960386384658940884857785502411398144433930308527472086505650671869139299510787598230457368747672352658598128091705045759198208493115554514629027075835643982298867671970500877218462473210532295563139628210270361527471211564437824792667582102611338767406786079719962495541764034740051087022446886527448638236995819152098115497357273587420400020978987557954816565442761074044558314669964903663138881681906155633743150437839230723964375640175791547540306428610400277975305690404896213586489430353570206314674693004659661640984991105157745524940770167342340971413132721960240509756521039069435470466697053745349246968789658652767463758291964611458861107595149782637757078473671712770289042824025467770307172734208580669604685410579619532709096246099570905792821193871256622719858790893960332934590158830872851301719581646500827702229707520472711728476999795945263587398076662353571623551163238898283238346037431369294196862581807293543809218725401446288135847864586474073842963316837161910148275657205232299858662853880673791063712231114543124430898420674100264642774895176112075217597374871120048571730725814076222586465531825676593699327155101632211590658433068963508159037730974688037363230650583382761520710993593123225684047993834266871044607653400223267397842420218810581460962076731037711185385652337630934197695368671437160408814896630251252291799729542309809259284543437499113966161528668934827148877162734923959035039622806517876488814640941145678429314217326800406652338118859952455302606736021647578129673458935049860748614397677759625142864521468865759456505536320021640812307668381098062979303888005841781601987690748513199569137842201722004968377702030967887963222113428509528880658602759698434452017731999871339109865183795660854550859373658498543285249960066869237123628141051775334255012250144827685745249138730884447037861729815486415509910490032270818644170069087787430099084801316427996820800911127891963815383829514257805761194615636112236959706939022408477041361462128179400501284787771759538601809713025113193746180451562255699592949579368116313553991412176044380682911110241253608733982728448797922488764096632585224991931927328215312340665880055892235093818327721791238467751523751842282243738080673081206047722007798611197699416730577414525990996389863732315286311706222425397719383225493087254279426794139613828309379031150629470447168971527304708755841037242706459087738498143767994472386043865514953719224340912208481068956599116114751022849700774730830422723943523489052274865442155591173686511457250616264818895523578487904844596718976507607497806040351332407521044802304716584946217887013913629702548602766834364179125077452026360452909539265225550857518160184499287298490059095876161966053473845079569734631319451457222581585856797951097606419842762413039428092122104474202840484610673056519434867631520658917486814808322646762423337821669130249282799302800406300840719233302925870621997702444297416128661216317603376657663769858396894608726194824719975445372690126215403184010701174859531774632711522633970741541500001968388700234026806863900929452554226282096597599376286221916433418727927057585115491978841637702598645768032815009282067145745520671298587411051769181131252014481855903560108710021821643962709204387313511601204521717993015556550825882898677408261787183517346854604897306544496169601730317638787097303591057985719945654384633951704917475768078132620310656281210352354556704455505058206546040949486160526548051113754708183021965888846166135614072549208821854356552064853346895358681374297009852960278264206198821011373155957112472657968850191966831007539245120812324852020074567253931736686025520653799746100967677026151024343953999692128993282292655019374371665446603601862320375798572501062636207608600144063013068548103925800979431321441126987497678602886355141768213784925758544775382677158230073850438819968586983305076020990581515432565315008279760247875786933453858609849079121122113038718764105028879565837543653933952701108228684295199676837030212891392846571047409685103645964094782133235844900490247792380539511659652297112723168508028292414430854502894651887216499047866435091809236115524378427239179822978688982417178785284947607819863691107201126678742431409427319388720022248114849728056078766783720960584048329708020049402641057835845488777397752952091228690478283528520786795771834463049007298716077662792086539757891967252155499704607663893084597591944274683502002867870082840164674613635739651381309213529367331547871476692074864151273809314694238095042583889158837962071347377908907770239338836398136779510970922439033027048794946543381548862242976072129278634165976312613602369623256940506103151689296304653457237633686868817412370356862676553770436923914626962113995408766708739506286596544058918566131044810860201462019643143950567512150864759841490533737298877736363555327334507104782447950270854467831169441904638114407878270821547040518293443933960698181793718482617770476314124652847962673741580739753393274345174810559506437390478738998278710403623270151062935844585160650602903424967898749072553956950369416645814428079681931209734041053792627645574054205086514535848579987420278207878139310031788007706978970351881377888513457487802090568753914952517127072647732809103987631786591511294351636258404242055833644140952099484517173701492489493273552768946621110906294744698117313420524777454510088628756614826181235398571390450242387082924866572194590007162521099064611913747317218274259385415289152140910686586023150097669604713452284395544017983416616807552070495633890332878370661125797418353218538220111680526020403807741536937460576775235323702632458070801114781096647582991143433942546391401005566291775573044198931671770572778328680130093783623396534779988540133280460884766900753618707802059712367265088876207498409064615635719091224032228744349929120231300250074391387515173781802519201576820734411319156914763459755857161183578670218386133497655390048302663694372677214235927939093852450673074398193020307274065968947485633776639499103016721692278122275903045433327660106136900179201929936062393277311000108267603684679072069658624092743032202001993286672406089397211658406714613993871534606781646920943120647055620927331713094382334989758819579683980332247857296168668109333722781359824946428039798582971336109588232291506876188779428314880774396059991312004142198857580842504815379058963589691218693760685070166296179476475112797853123307234540318128791961845458999306887927524303857267101439961377225868501162800636788958102887055464542014620939435064854393136882810173758094117318196960043026044891255503074907939384825339045619175753157905014419128871746916034306364904378310050961431776019492646867514575086163611496577503166675767710013445485616670026021388505469572933476787650234180634118065486745573619915859316433029333823289207319832978550136224255351898682160276666160554657799739514371056802853426124633750281264422240578562103177931159295866256674160946993865132497424141070694514152507604765540269776806403583842370292239364184010885628082825128625320849893434535508460514118491038842102658651344780933084633133065575852533333319072990751163560326352595060179985724766230636480439170818735230951916030059362938147590828498672927466635563357893284692458685885784626687197325171603019089233201769890201119870030884966267038487393101061947059035671761788582624402167695976146271538466010656689875587182214697727866850129073024710834111932300061785156754840065626883926716239670578087413340818097389953084417532063714290990307018533407673425314462064441203649985487099031006605999703373736121799671660083456385040882790117300868904304546604006147165117719823584334495299486430912578809867607165927104465219471267563542549836229281738427382147463186531885780239344744661968147416882838536648440474934076876608362595233478196728210496572129509540684446716217538704614499056196015936875060593997448414226574516599700565938315612693686936543675997570377635683800611297906578036106267656359400470891365657767463228906134172228277885138035583993787372116974528396970153675789451226093451346230532096580029260408936443188924757048535742460027659441656564437928395230783986169310529985922133306740382849895686368342577494021811002156981027262921636565862861407142880419092129316014722033966344204315819799001148227180440204789239832974020817474158021177579853327252843684218398184389551118272185915947549713080016162217425826915113430225201160822508984168843944869262771530248046605760209782388493313037366612034105139943443082732395493321182663322513400923320631172084645310579364047671631994443132818285366935171431424164659391487889181606085093635705512947241975233435017876612937781264041147733816187033731414181316984600584075326525792959301966833697637610105981717654698444250138625692523236934166581133934397645612415498568121990690266593491272292947995131585851797542072442700660639477820509639638679784964542331334437886228650412097077310758099839501317752154390829640781580497231665983621344170579949456242057840494139055669659680111017371682614187459833635716990295537783441414694613139364839564541078512851598751529181682961673447354888967317025596071172727556731303830429760773815715782571973627792809175890817637247442132083967477768644167679474392665693894149135638489454537149261647558892934622288679053998923858927046837066459028994361746529936436508471622242687675228625169481290632469475920074735500212573288261531445290708764264153788072174567931275841812977500477012012626175947566773811589719771599718239773823241375785419403199365230386861240367699047376634873503348544599250317814353521561219431482299722921534169593994300733048074353459291018826785655742374667207834394129686685831597107961668284318996008802863810553876663148257363488694683095064703081466719839977131181726995685086273463743038637598047778092662908203724371337988027590525014839325113513041039651409163237216002858610537062440730247546716193077251035557549390835264939398772676732048932103253445349144215433075198786593412429180037572917198243272000284358887857824685619874788354329554652761781867033530302823313259236591182002312942744486181542439893655007361842984667602294426228043934106070273455040324961228087546456826363842575736245867031153029891913473006709689852218338715744289827905050892653902390867644404792806774253021423505742709214488406371417008237352030962277333710868945620150246216355609699054045322113301330595884882093567954169766095621554965736459337254352363817972148691232088040531388173429927561346354117909796338026371620061404020437796103993324371888031670155351814157146634604465960893181255912334421127074469524538609168366468780798906237588291267819928874042149965538098508517628485078637064522675787159142015386548545538492807840985761576939580672828598077495737235749331843517485837906687235964210504807053077483956818888877725671408769956950321391845529666520231635854211969559820236119647654782704150071275006096897334368297135769223390045625404466967857533916372701133097211074166152506355219313710240691621084608793355456825390212173471890316356954522557555381649024479951988660087388072762829829207112887444076814150419334042366159604717940809778584224213435959446243066954326308811181271078554700866671904833753266006599776730760854494548269381905716355401715729451220708603558605142750819239505701648221849613178915333069581014828048686387644996154975014049666078123443668346455577337367077717928421556640460327414350809544994313242347299855830941217218176395343915006263272224906125879649936588338993512410230056244330184813668207643976726693724668211266474909491911599465351039697350733231602456379763655159424696787248802828618783448047055884155142275857685857595308175901346443639374728302511204550262624127090514856526749547465474605920325574094803553075997069201204978773613677630602462618649455421165591133174604781119799783303993674021992337171072274255561560017168952178067645263977650495000621953425324995138441961766942394359754821948919437981787267376333281963465658493535714549733931930241111279220735589306791877209401957061322884768546219127908675600194858626372697383750379614141807793472790906654119742043888686898700928925894545039122487919778997551999634934492607524734614575210124199293275088552622063804344559979299841962179121720241216625700138859758833054844400706508894619107212510425434116007735261733903860328152761831239787341255000382185237693485466698418681441154459455405150555231178340710855729940515650805769761281603422039311532431723385195357652920022236573281706296364152297632888893182324650107450566469448678151445741816759759703498176307871126292793680833286350512283343390047460053289886113602168720076239379647738119846133584148076085804026261510662726084416159090986118752542612674255775585221691599551331093483137085377028057045046056388025509473636704963924856767246744747037984190027048379376050983592812112556626500381173796907223799699786676335742550835017605868910513441070934644348641695858593925485074674425886576244979248740193068697771615513110060276025765671036092072721464760960005257349224050651747322520801658184540833954863571502200116001885637686082089624839960304253878978756729648040247589914685246983806693189354714294512569538430695574347869469668136225834389367565938659305107344684672355185162844370345399892642624850765029973025939839323033677111912567600278101753306632351984142856703811844304735177930593240368845069410689252941477291024778403399998757872800717117962032366053902529759201785483640305816738807855464555378740070178082294448070417932987217877647064710057626717684244888816436149559197570242741794841829515855420187721546595180789192879108736121103503289656002710737808117158479163449408193682119413186939860303323771439496787855090911778424448941952865200455253979198179762722948499722474794861642768913136262742875790037686485315868102985692949263295345731582335529922378573186313073068584484734950343773171932738980437154335777600793275882784095449965726991717101888163249177050321710664503259250257300216586345672731634014359732413909286889996202412379638509851202313587792494468536988740403144580606222237996333688162184468688673294032884554743927794251205796383093856007645958160214106206770046176920545170203875377086209243532043953137210310740976386582993783673194941601976687563512891914304415581390722723934265801051698798370175164557642579825110831996126497459689937679716810104655628622910478980289366864068441343286070239047450920226656562639428933698968245377963070041644071315171560011249135420547537338828492726774374194932849423038666182045052595094615932862640697249229003425668015645469334217706169506598598463121633312511919990095831291852460406061923539181241908044767203026060186358768704983167074302737189424828226987291384706800731441423263525424338770686016828618474121072676655734853902870697208122757672055461281292982038646983880031754088065004957728837479492166437839568672458107086038341709346524384209242957296870956828755795243756066748864125547397291344775433177012031666170435446305659317559839405667647985491840814566214000916836842002092739870293453717425463756304192625427556746686360500852341591361705798536789929467411396196915898888717202353235328887327721926535958131231468386213724477440567239482089933804440333309507716298984686876353606936200856810072585100114436453090323316894288820928395005258517431621471810297140492756070996330307250268457219329772038244328522642101240462448048730528300456739668685026893414736296208732247339105820573707525827195339648065963739964817297751509312115177598158405463091722431223462853040134863758556646118341569978967903862160789738336651764471490925668757759844441411667463254410000390607008177181776873767004708974736671801443662158928864623191100841293327652700936065477798940592041911798819378018601760276982128749929799550036909753442354625140572419087715446889685874125879788942936333935231697373638069771513674130441016343195761887771143767687097562247143483839745386253104458981053552255951397390551036190258621123117120310173718912493086890410732123296647620899737114543018723440689945754468932857882143941276094936554488229487707954140253610856760921603948709222369421444145123272863948125164918646257314377882060672444006663526996468703667054016663759886226786439439314751360274735077191091950292864040643684671283055232668758193652635404337655731278794216358828760473322721991658273145097122330068851822592959409662404030426002411823883343085616419913815386843572451528051006092414446966681946441821894047269282852788620047217746358408427610111972052770846435295798867742113248496877343425381228130278287770989506952112535233618075994676804246747140239219577189665188755797825887474407984090408970880198080757841848335813629094591711565457672788528054368503022328801785988885152389433256228740139756242170100416460012070766700495903970265579705109928796734283634276944844768211901476978703710639605398501612216536397579550804671949210083974251827381969320952150436961537578402418922580231660959285079254644831872217174517544968701999483290101650381802364894110841425346400924720267474253219750125672024220182566776414793298392779065583507772998743858498177115978221415538216684021583939872770308646698939185323848331510349848606556041963377733674969891378726625736745768433980549024661189786933489452686633024391248771696453360887426212110465555292182423356662833286422306408505609286295453908927042852560497959001780581371646918910718028949855444197708731026334481352161325871566132063682861030619995557248983373540232428882409586254870643492087139554989156199042241051446455815070573497366956998677459701322094241578623445943155934804205277917466267354615598824037247748308015762468523462943265284583436695150176598094474206260443726639333681113707744679367888807051321784994644018982999577274977710876876146415325875005632929072448249585355687779200569300853069264290411083723666483018224334556144214685559985062045431374776130355961297264438309580603026691132350793059349285016191205530853116908099469603410734568496063197951822393409567685159664967809729697750721442209187684357104302823898032925270494249915108477923940247982137292582228883260440053416590722746650309734009005993442208290745281543543828247233909778960257124551841548491478342273755920144923360107111561895329185619253547043220087061893953964378887531499170125586240502519703725238157384954507502362281013062698141222453690494438806964009610491750981908353854071704147619741277949691903617611786337444445139082460056905190665606647139509714239994480085379117709705007945154742022190634217267131445920976303737363155902743998272535355365720679035590818640023588489366012323863757003705618483306059034763665686946888658885988169844442934628481473598503675340868848274437549743525571206689739175867641496223780805824423839162959703210006652656702514831712286266318001360811422791484657644586494571513044623861237158766787563450844358059990972272180992074234706592319770034316433388187331370781873693310247125983934114303093784658503903945146353864973947139133161570833451328919954274822702820170455228680613134638078651632999628200585179726705766251027285128434356544498582699958535995126385155357617838092060467607494141061634502255530111215528337804321216818064150311745583124347652044072911030158020598335477949518650978750356257587625114096361436924800578022945695580922827904138043058869922289803513694011293512855338870335672635521382544720957095510021701628598920311276843299379700033788498818126675686705210672415918182972239302347765289797767503387456750142281228439345929528896852593527414689545730384117692350080342299564485699811078335842422332622745839833517268250298012630211791093233304421317600087924877052768196367004007485246478524954370360674149541395847535346235935096490679358442773457430700793227573063667782690159038529869160088780429607795353922096838902235098947725244677578707786795074635020843204786293236395433481109948963162118214446657079461776985042417188074422045569616867386513332545732756665457187602501728465312087132172261832678168735662036044021472053233837538883360515384125020655227566829380172557437944626583301214775140568602615395066384413433315988578587725064413213764804871914596543884237732432881784259406781002439297868221151286290228832494006650630448276374177808283255664228071887291149261815715257036082950543444341244016411674565788296889960904328161742267518015728278171623625436370202875231806413145790137987247497626546920070679936029523357031672817208385913295373520056879062308541965892358133370360598669189613327333095644520933834403457658537260524681569893525287660419383326332533406220566615485445713597468591820832523382656408110122572372775376261746704804597608543258398538956550218210714866458733483161630647440044069640538029516850913732009639924662899196772044368884073225508762359753858231108283240531490764905989610731105314124820047612409740430307085887703487899024752656316091054889816555870801937425406635057041390048070510960986204700471834339625187368765088040986995782541165188572375426842153496933939194906034647829992431749274042351229426302971894911785387189376185423590357408900920047215887636830019129386642233900649150141078821568618322493476804771353393204636030816593136043656087955804515488375934441681819866786893270790579796233542571029469148379715101171591357740803960616299376636586582531061529626618539633220036143307414035296137630683134059644560575760849224774375215133996706736483088451637109854849429458687189314735718306555166689289906536467989562988551398876929401597852181752689123022023239528446818079101765586804955149022726524441364408047472968916542490182570270975591660779749319131065063535686886266040638690440495900300247542701136967981647783196784319587465776874062891472824506364829834295805437521192931684796617389106213112897281142716687887768354558874869051366235533076661959839821414859345168965771631334260119026678878525436105999929444908966320808012896962572307346352972288713345381177598291752217286807928294339879468001296471453740457282840318092238989086726871120481460477225115806494768642813707205137054009637221032793512413635016864763104447996572785083399266896771680483609189410775275646223913597308778274930570457131274614893142672743374400562538819074284238871336666717426468461173692137839803938332149604810654735051127444559198140310319827856454458673545186120812682270249372369850957113450372040044590159704908128535979494290522483212433113824309595992238695177440258049033208317264448394044102447292876687763757184987882149418415131915704671657022858914472203328816181114514577712352222617029786388229537806365882621197796167222411128118366638916376022489020615770642214662699937926283542439404403982088593594149360570266654889161416857158292373744448615671013484117739505166424173313011174190093002724964411842015860618544815635771748829113448045123761781416821655347599547227612653799129511773645562551254220602868178723939453397488172057083270103507179088568692427536001184273198775177069281538395633970943368384026944661634526857065149271956042546911093018284467775482636685912687598625829794586556702838712691689192837311113792353038304275060164149170610328904922178679914041463237876728293474981979263244709041745093478289332085906817519975017762371345103654531453522707025596071947793587609525934633151961055411021786414310509606641137928622569497103880095909687750336377667489730424899679442782111632261991372417343976347727367378688429707344680998687489357971002588672145418076624138634318168878780822124565487530829923768923553350951114868690268652106738587733858039827319809713885624190863856590610265377962045989959458502175646779186827878787186953270355089699562139733940652249412781107704109824478480475384171648130671642820550491839742256426085195093335678098995017192690881420426400293361645711326236403192863481085955107592083396073743327110646023588905106264016475685841574558319742143298539452911159320264717767366848086779524244352965444595662931214341272572854124171392274856925844739955957020055992366913732759665063606092532912784978606065166420646139160944271375415190896960134207121173731152952041023143261262985301505980845481241036390011155403855139407392573027127381691084056811000839921201126015809466093103947790501456650790466769492558158333135428162452916773427657634246798016554959208812643450092323514151256350226472467472057439601759810840526988628632851603911658740206616101136800645571373817457937340313122947250016386612004530097265787574993637715400974229950359189858080166800168513411671522033462234790087804411016055009527262877116708992494351105770971123104666409674034087899442631115802747377369182159695844158211393290571106611000471611638045517992486376191512653917471919984553315048444743359606161316099929794432888567209445869043143833771625327448974068062915549052127706216122907678781266319992319903567761065117270236746877780640178580191974867633351034342999769444237893615202361036798647038189381035519600765057380431859653418180257792554171041086741589832087360816401788511643884764654056453670971494540233080382497771386494137009845159508061275914810920254233011078873292127897872902466527720734428108618567364371282544693820807312299134014046572254584240428344658187099924553351172953758118380297316404440474798415390075488800178861752579534257535546985425877225500608263737282379234479874941622360113397578909019707940279551178063341956284629397679163812852722479672101738387833885900875534026119772652727423964434451944261627046775054063725244488513301236187218507908138878201001539748515246281585867212273660328349661902876845068663032721144096051786151419306317125438034476706797605270765789600707186320441385205936374756796080281798508205779889509237986110218314178926844520852138163991012813504398905711870165696309445962889880791902585025185656240242484411584073723343313587086637014244811155126268225839160628881970574982339369368653933208989407806087167095770622514679885876576624768963196647136054981567407741053532935762020885169423018994685462756622514240568759224415143119137631642795426517551494633770769843221871204537571359965951321456345816045697797103542441388723330874286597553728172124721579957871902988760235497265271711728462155092489444328311690294573043316672434900782025419970262710213857603743467937196123334042368358294926092122133650136199412375118027398025401234052019730356331213452816205021719247860032528665638426791846647544308305028060399117040857471307726865708728870803532053524872377118845235130876990427912561198843890678058140551191337657199889157045101647891535048845967578116253288993822595025381345966132288566168915754453083682234343427920572165384298222769129007720699822739372722041758666146168006018677544898994517740354291854308743818751552363568917347569935993916994956676889924180359759769417418187600160682933135557388257094921880221701609117576898445903741854198297251136648544164472735694188592485371146938675382545851595444146602844868479061525435550920846447494886091090159156828651455594017800145120854216438229668838450329483682455297573342299051251693634481316511110281362233649827565374572305997766986735469530893947190771086805042406017750584925276425409095704271367363682536837087503866747135960328525212550344979262514975503785346058901594702868923593530456488367069278317851725723847671714646538343132426268680715340572361337327579028918637232185940368756065653444875307347127574210294712381707750841598891673545206187452009842858307171742643377751238042832869582134113039134886639622467315983404464986971656220468211650015177648384860893086194447575699739058292806031010961542274268109396014136964543288424875084800209308644121584715864683221153496013310342272659534970465942380606987739974188262663903805313300483307292480665629820288572719032058407381748089040150180587454659657164343674490193778866671135772731892216375882001069470378478224557347648870608717732848898880135803873977708883823129280606555492656248920820125885278753812384293266446268747259479382039247799854246775759056353966334319851547914635291299919957993036225698409076680504389426460769736668740148122918306950891144753499909569585079387469502938231248253944309462124187637071907216310775331350415075946223463867899688410580290278047927317172053101814488721196963557315759290119072936378695357853664520761739678328116972923696950266800807391213307163365368212618176814685196822748433613111126823885079369784939633131001016672463290416746840108232807291333506531262462136776224820021768216393290153218318229741771530006291247591168244441347792874206402676231625689903971365470572551849226726234734878203347557153691065286790141921797567117426314470270189948719867622931522950534809147795045955744573329313732842376876219613181970482460177363916525855395051005850881476475443022155002432294244885572687027505305828544359603295616529023601010532639301287452282697127760393777180263843354536569884108014652708717205957088816661800913067119050266216441616168865370343743417383600541537507850615120211153698038578260737193371629183107573583848878573159960946442550738395313556804910838356154973719856765230882884553144024807644048314270840531061968912550440611273397385030235996004808821322272982217731058710254848610467046279206852091315601080100176364006451089915254703040213436120009980556543203850071679253370067294114645758360962411343097339076593343424450025261643756130582462173834737755710550867559085016017960815970936114081183540850803846956964252846992766821696581846803113921860106026026862848614503201214021090261025282143942062324234504634890321262710926505846942112248842845912149777988088188954406944931543938843457312261381347322934023643146958661440352141841044550023577603493690163879051639404068043629541954126171449987857005633440555726450247220953459371303409207804396476004084307050021513512847646174127224642100703190071588655282128881244456251280848964371023955119122564063399020927126636915876174844758606487863522562548290441765376004294686079540498843629429818546406986289355625251648301075148710031254654660422938080225495381107476197485034270568550903820753831677237009322301763426478641182105791908629250985281772363343953562459715892959581263642530313899989315728010853146603124768363412574705753512873171523469480860106448397155169079141283008518444809924433042402764599194904263853745109675135686396186724032233666752754009423892739854436175809761272005579040024466185307793863604584978927427024742206795120693214034960449280861349430674415901067368636793483622859608090568877847418304576886385451261330960196637236234707263756168250650129633144993997184864143096033765708656337776392674812187699178293044624082520242850461607323440099723879818745846064286720614342080619973626888719893320645762490329206088537552080925551390487641018401637646568441928262852250821640761710714556690730785918727710232598800999224659238582699768113150302439117672298086183289311917544940722523354380684097031391014557440847547315964559398366880390942054278345366917488023981119894215476473366017199976413303007093607672422278137953962574571970337309566322883625372677686708044887475500755661834467642931388976824714191113695473105206703244644253196142101508227227055214431899500348756894999625760250143003145081193961002535841781678625514760046045047011246429055871194772245534447807915668561428655055936653905988052614434589109915668870691723244044787229386993181551319700292699972348031520886282276681112522655598644696166052207379626110241337792508256955748956809501926676041920006100759076457168385061206573544605857453766454151113564950196214502290891124543322037295811260303342891416250922475647857092373008001289861643568333960029243151111639483394753372247531406478217332189357691150793321715491485291442467702384931456441063648560780871485186263460741137417334952222629132406541219714703780570911933134663622869665931137529904669302938672538491832728590608788659477603955078500653023010279454198891731798771360303160763149186851971169160323102667432478841523486562445426463511472049669861975694505412487763142860673589479009116270102402225683663332083787051837746511950222610021623163468473306168673538397856844511548965371626530537615774903771824155399017720959061243590530729843822339867899854219252917187326748067743789593722672191012245442758600372919572524896892140262036367868669237672144237545265929701403443628366278562096370709256302449228906038500218282223485417195942033945423136021505794227843586951430588495107955845489558889030424160439451280855979345998129673851423517208812523051899966598265301765363011577521657692037793592091625246249615249999294612706648576568051259549992554436940891918171751814111846269397042092592204650690131121042075800627628447524433281023212288303793566588880557481337703375423590534690486524847139592493731113536521766046985583530797069743682498465881638224824624515898886362010509217399125928275978867075321107472499487148916675168703397474770864212194672227594335781233729089166377822089024510943076891793500761357303837358527379898790344210434462261301381811462022759245910903984521434479096997130510063477491523371794408024756807732983569629556861754757417903374440096846256579789826046328135876016371574297867321763180897594485374265598087503703334340038572609105459450638388338294722563751712666784919471429175842392059799669692884735205655865359135689065543710260065193582984198584340052655795702595072550844272016327293493860291411286028198006838372483778840130637407056591781641847684225087853782039270040422226651731594496033364623392775003002881084262852103763305550261770023505480783127687281084006742429973038441108070092781008536876434367510477691658536677712892912069059386200249201328472756472563808757639025853569738900755034679643828688398099708844285940532718041118174235808563450371760718480178936899197122677728013849058173895260446937330986146182588135099837592264772643439529878891864751282644941178166397322994143316776711090246952104969537260268491974162230078367242061515618646968700378986040946206718056640169715560827037842015276584078949302274294881329047891163142757487532698205354181015356038420812043953748547664299578388381735475564564830864990717705151458491344615649985988040025830028855156430415885643917444173677827107374216262405984260402452316341324768557145940955997091868433934733801550496592968784004677291359164064902989978737432167112716027108514588292307224676033495535685867983988640943849501700762770823407554306164177410267078531187863065197010614585347112969550785599705957750133796775068195612259364461154179716503482995392902515837532284508732356800998925314823133606244726731791924458400337533237100900800048712662998541212397675257809903010714601624667779033733063784408176991653581156051113515425036321477444523509447380363728892709390635500475843939879235420814454488902617161497996876937775668912656391739319774180391895814758528335051354894516798429725889138971525626608052378593088780063018971508425159021976712973453469305868638808030195552379605888761659949367724052537838606984164506445583244921600205341677329493033787154781570145375162171302626597318404047369590128818530801114171205657960305304806596158216173451226412821804415027848348934269390392702014220416522219244702819369760565895017116737023230529896041473118945302304685618693341162132892591205922854421009534131507934096844923937141155540616134994430851835314751051616631185443440739547184005629752976311367249415431841522392018944983947082467766265840481702733522254528317892420904473134814194452951243995844542540293453906483519904106577659370370429669834724583571777183069966809450128412572389487334457707328451760442825594852299471593226764330232785569925342301336219931002287483874772768315215576471382208635287076036558528597629530850274923694034436134077377231269057046198209171234882045820347778236014746583681754578529076914384570765195339703854484280889548741521372228936813941023524433661692295864856647239136498544132289981610169882388615125009475101768125642461925930264899881465179278871208077326570806944380592692613154346103021572435866474620875229521491490588120460338677185933056594676453319617340620259560306103522171841188428636207654587847292887187732633965585105212654627679305865230129427878186456904192642028220196040559988156439429147588361013345750655120286884446201987002646565004947887811572938481753673459519188780519534958100272781258148311336774906834131049486769378842254042945561046272668815570962018350498585404870566418761951882648728319890012783175922668899161083387003298496424579784540569139246461738507073104862477213470608405092419098425277644462376941169234094127016053182197223313973330006469227806079666923745514480789784029756173537788995698875487895598076713337705930770878680644091500216066073508914173936441424736303439107627345076351324584839638521244235089298087091157815706823979403493849018243867259156378626348134478508102246863538783310970715933581038620018745477406527334778557673455484486245871003066542168936030189520295138863029504080613368775696236896383545444179154322276783690055231271423567584436743790073301960789625288825128211690334613024204063206259013162058743902992023883024032141568995204279875131856099951356619393585348002328261548701632234757435389805502586954784985452575738824322166869484989927765171697413998526277546950003359051397827086869416015865150631067915932345015057116980871310515901976511805535646072653262411839228054376725430649198538708954479452886937274683617672503209989004355965190820463174417746505610032166518792593776890456018093768452756841362265382080435309869097343174404147564297190079286870157101594331776375178240152340054247297195993261580501017049397366469032460058786421173197580783522562868145906118226311236971565202264379671446782006595710969771450332798524155059217403208176465474691919844379265067827811071703832292635547411440774751061150312455430206499288636129168780370405872337394505448077413329398410716577599858941528183039241018406146742367723231440048548169680328271572785083106472875149859210486408839121311103306667704976448864206363504580386591507566647046122528492440162622703888038547365248518631755087696625666025443258694794047812573371830335134089466060514626924914452455380974890394302967417151942311383599571285966795833064425166059067322309097219521250918210886134671218994988040928389912400684390280889616979791443583237197472628749173345880175835818257059070087063484691087889894134609791044254849485919545524670222539713540260471989744106079283536158684976729318600544218769192603562225549850000131389919356678418494228441197187864011694732022246589598396548409967399594432993192653693316577555288752514688902069943182744890734106406731828876248755802253660874004200236113395507278878514646571166743204100080955663440201421135190698977009519897741469576968093824732278823390617126614964275854850905565068530492229734180573001708713567781415434714575022539532467050427969944602240395841280104113861266989820518313809383952784478531686865450768108471801014124615736741840089217212777737052441413648441260924377080662805301626081993774209122688462564853111951709005382908231524030560378322305672942474064835182851569953665104337524885651348548309541765630019354839299869334284384633228183640635918269924045011562630808916351666616606602114209597750117595256942511432639057710578433529193431413141591724127717978835024345384112885001316336991057279235670525315553203030439911504210975110840998996338328146552047462246169784341350165690597963908249621132582835620595541423229700599303378605803445404109641213894090516157810762983409737682858131871154298802504104618363174029314443381480119218204175640239996644906950099892515599487493714238303263169312285256222713524618987085216196205041542731033127208619642539207654911405291185741340138954683178399596243855862405163680043759356200672534044010116280159829667392084290935369213123241481156070962586638946738803079128668524658801079368141084244115124993590188280762927344858917700257535955033615131154333138166435877168324914588424549750809792514673370118526921126600206539108401074720484842095065759488784720496321248940735331561393820445917567977054934377753389205607902340050677858988155113441360027734184572269552370789627038028759233640897269356036001739247987289198190424706336288813750267213785741458136070557057637143730835980370135841176126014197028040308457760496099793755611994017257790722443742414627908079088962514436304672996084411787637227812150804508934770974372188751646468957653523428388584391698086858557408838410308469225632417499540208057796965507013741711344121613214115016401128908066523095483267236381715757645525378987859702542766663878962434697855150585790207880230655831480524884377021347872608287497599817261150675408644580962526157391416508481721187235870858919738271523024070214859437555013839829667230260671364752119277501603824290250453070224767395272137822015426126273258971761282977326473455412170504019031243147980607162788955786492170988170556070773696334731169319726268570984184794228476895922415427767882118982432535943358895610463237954488770223923311119960813032938566611033566575540235527847953122315029092199095912977667809318827706361377883623620356632139505903654194494104837812808064506129296096457273314570868221675070594015589624095747521999957033301501996755836657791623186671509608375601752986115715526731242975708053153610540431587244392085935070590610839160186966137998503166876543195815808140526987897375858894672317327128874782659291959130311023162425836784347692140987568018683965544977789924984200601398087889754692506802998668566507991278680030162969468707224376476664124557869001628785981483983141667839030116058619916738836549428409890627757279705986895590499018357155931360004134084063598456590962513883883410449965498588510937579452703205602045380334173947997533908210124101122716913453512712927258450839956590965742614018134015492055629063481044761750925552537835213383960325507267912634450011379673315844632166631813842339752120074890723268985950009989156948043438629265104695932910663097221100565280935393642430274610169233504743135195006068617574685142262036765013010390641199311433834259227124416574101886100151656446802943457576648177305773070312213845504269755250250971273069733614200553173050141781812243396783369910443371130934262574948202374631205512262061333380853113267011078647234355688790586334175246010009938683355634829988432014195945479579303517886469741891771215499542333164086550523218875793359121228900362814285185939034244491127626909217171212927664921223752776711417750796472960745934359297663873613149621348527326102761885274894914007543172878550951264916272188512054391116799632052008772486756818108691960711604928988440246303476881308347554851619130034239441390369929613983300408612147484503513665278400876755254142390941018290197122418854963600242243841273090349897239268888590276238669393171122472432458880440799794753654102097916831700885306213997287841461284026490759633165094396172049309229365924483880084605757771420731599898005142990796979151557434308565277995962380037260923828093464994171735719528604967639219330161852411054974077014416108928617255422200127952693653027137741475245039480415085626084529939593838562541470072312501637164167573628798487759396761622598354834795686481808663163420248372644675151605862920446481238188325670783286641955989010029561136058411820861398143168365291898409954699499930311218407447742273738334057994464460434243329683834676620406491407852964936188488071404563906328395638309376191086766459934403188658732928848602464935916101507970896036307292607282736844947302340150981110491618689928709732524512962616238586767116152153671461560942464483706919807022075865010611157183878774756842136079029396477468042118337760223701530742349508701691286397582394254802426566613140561607706025200173165045230345274608228235609060044148728038145154582865096418122513158182394181472240348832848126234979971165600808290537525623118440646907505401766086801577771426641445310487663624603354914029271085652150709791701248245794989770492636235143870944224688613290885465935973209205320037765798754073408106419188828923762232853399532126444604120418424775797259476219057563685568064950569191827649068026828318723820049199732090150083525593072202259976449456022011654713782946229351602715685566599249957243119298190784353429118863496346162975144939775880623804250746272279778793206958914555553285672437078440418509556303458883825359847414601934112695656827273951276209250269630326168428081922714156578750616128387242185908037153129088283025831861925108815933947712957761197946005704972961149845055789860587836386539759566435699917897930903638487314915619084568824315327613380679528150387775038516889821360661621601909336059294600914970367405559236231966095572446486674306613374559829053161378865006203893130047268321821271715299063571782391840851711795227640712005158400387250261560580441416063382641740186832893181508266737720552794961735820102949469370294417450609392368725130020566496816500211068582828641817867779263101440173728232395386716775914460694764212216026898782037007767230746613796062529210244780608606439304047791714507986942599126497956778947183489075887848517303647791087630155294425583952613076898598433451589407542520540371729480020150421189215506681048676582676875606805786492504576966138099172771039840336341286325005876021440764901594458378618653379200014918564644296343761858011404173820818914769377813120816859578067886835547375001470066492589738709852316849984934297915479447448766792644302014812331803301316460378066603512723544150563525577205874841284949337087416748192602189349129586000768821577449080403675402645086510122490159291714901199980527195663666886189895400197468192509665587442232517964829700562896113272451422001608334303621601791924513402556817786269151336859456474980015744911693314657977271781850109867698821222589581047096642197231012113414475469638425620156387910168578656313801193770844208298036125172342548119685136059250527297864127342721628519769862249776446182251888329043507360166069533712451195677343126713734337237571017879587719066129077498648673466300863019388867486363428237480067030819910093470488338690102924339655509982400957046749791554932493041137562846756088138129821766984802308864261095651264508007550890558362774535167681465412292290591456747289544432423608712502274512674301160664066266574673150750997229565839169077442255829396456556468362231152677751143738031464533661266037870686584571155920803856938238060023011283315290741862214564126142655897311729506852919340792903417332334487890344971092525014369375585376062824830024888862948949424484907433675168016706933889934158598571642086907698900581359510007579385297350827698738750108268076970267682889571377638696436086531678144328487818037771446415307092959503459697151819692503197119254726536562916222245314695082960839262346996500472972349584159356395059601912110379766414285925617564243735142499148050360272535002805729208650458543828168549860598901427365694060325175569714075712418812501928555379316786558631143658055301515447637192290769052918052417292214551360229455033129062310259241423646625465996303025098314972097046297595826389616302130755811705706561902275235274238465992417101182896694323418043378673807827115314155797777633153963472657656590730276029990691468897142655148018110574014693438894675587874858940473690455929250203703559717630702862091123583102476679607284360402986308613442699650523377465755547837741141997190020431275452909730258346383467416039176981109437576787024753671025505808073305660474380858348747687337666655910079850411314977343674070081952611445704350086363069530296812840976279012997304852893124867524086290477736050288442928312744314081536957625512067259136478882237284801572300776053552710747460846691552226863974837947468233537402076118723936682008555309216024570172236923411708079456292668652520145070959369065140878688101017280204184824067752131598179808088943276671469102245997061308030661256504684838069577647259774190658417064247057638415265818487090468507911667593473126654569762691038271356640437255585741513640136567877257346303239814125228051939876762432295582612251682586761515340558497834532933887988087940366113356518500354345074276369567696861650822896786911887808304303045662904165886093033880662758464649993947567535735073035269166151812947605574537183841099715133693216292559675084024876133293124402544698643700142570872798220882722218070326668743934569449372520526009728068031618303436485523313171398930843480218859602634184191123190636680140938310496121237339731948666053403188123759332644980074696732659021747726961259278887442965947618553149778414188457665550340110801064566652843300767154007705027288357141977299573594287974508147966848124901850980733972642722671962829287316680042144203735977120466677987725915845535258979467337035984818638366310047802059639123626334072742572730021250007050768095283333922832582877422813575087505686417488303474982512709609504448096912413383519647713730017757552581767525721986494415263561302804904910935086292345808950261684227969425008231148882581683985816367989056212984774139972902106170883881523174717987213168081797719479575409996032990477366641133454717774085944127383814393514316423256291474194489109430570808338012401537580070624801695730169834796841011228916601698638017929613111201145318526780386710448690905929987130796547818885270831599666524761405649113642214637227905137430315791875268921575165813914782105233365322331117062839403576415248068523874636263007449476320759218955361539599249262901555465795313478922874509695081717154953540678152110592159378736242687895766259778393025093687964638533033184005857786670750358475073708383588351639348395737156771261226753946989624577303646245709374153613883875130069235209473813267589926951626575806896250382027480584859494094660432054676212111083840221500044324161492055333069959934135103513743818956760275713352607638829632685923053613850928663692502754714904600467734412974448530799980205272863305908145446107630829290030978042341791154709140456662599440025504478596226841230912539466864264367915518588225090156274612932039165743526732708460677654941424992779116216943837973832959698840101069944232939202009486892016025147531638228117940199946208838149598284972636421580212136338375620022371074757330687762208186201743687400458246765576561958718120297981388513906987522883093949306648933039958133372695759964879249821115547935452491206813622884662672310157420435629271951609300155034988962328156767284184315995806913687402314280354358120175856794921252317390998552144718654834002915871701742998483590377894875513862429902159318628909686807108382795528429245606430478712087618188226690368350815747828628332701902334815239675932986283121716137845319969648163438737907455493932948160308508268011025321945410259485376558073818501943453677546199490075902383318530725649964662100450129970079730433721362927843965650267989757546100747118443248861346090865156508159196279564505559551685879388978713742462108681389975854353222162312510522297673340020426139748277585423732216331364568824861448354898225086395917822724947807323188027131614381654531898301209679603475875195547983261203667925209691095970488154494319326510356654918678058915658734327814342077224613861688015617495618606416689652951683421821653817300924834813955797948632729953558050491375310859026679620934369593467565491393421657516494785477082657107097845428789835372021069374035413828622690942561947441377709558991364282817961975134608957350848660304109069456672887813217377934732971017465778334341907321410413530492670731660409943380373102283936454428629510291218272819991188454436045322571976153594842675485616111727715932952272824618212932875499319983223800845404472686772100734354175294368235821502530340245227443895786039642525079773769745363267775355211423183302525441326691837448901573023749159325884347524972804168785683223890720203603551902829276939948304814367892445264465102507082937632960582520143427359944668466114658215328191683837750097606548832500953602205603778516027205066800769852577623590851382998597045707057578535903463632561501846195794260718268048384456847149806120744376256949407917771548295919823476049265236881832326023071605282122859504096196106918456179533304976858979993044388346030699684452159799570620328207243765080466348918128310619628847927034663365625623039097275316656954241688501834823074999859669329705555975018066001960259616901996026861366127508203076351542487044228050568542013790833811195928347930861163648514456111014808890648633024295000542310299479124577155658937492915141818386598068306901943618053097048793694646347673169163922849301933435303050629937784539177854902963829187200367378860155125139634518867994578722363253088634153376422603465628235804573644282423137286323931894271663592372806749697248070496618581832067319464363085547557666327472537057486501966263309209372749847735823020025085687343537901410071579360068968612027976615020935432171839679041900758172817275378824550460976777978188512705984079714295985908850505635048867893348185542722099597767656026211538869889500819319548444900063259390255184716079041100802762987554059321656332094400322480049500887318930341388840509258907864813250337411070970800837322880586308133393594543038359272371461078023796719834569955842768703435123285389680473561720579882667539175457265149366873054663497841784766747424470838645766736047156298740420437924232061846637428398769709137079663552549105381242684726617405489503213296283485227548214036948948766965161580284189143343684067325982589306697707777531898581421674592383306201350204026495654997997423124782793178363365451473709660114797625772367312989590834166373189239745572681466742940681347541338120672066747780320414401993104589523098132167682151703391969183385477505078394348990754449849374598692759318859395402144426218908307985401260530561854650020492207232406401325711077251068275202569997294324135901017119790093864653603072459238018845010152189259541334615686496635359975622525479134806089608513823300069869974833256901576271798190891845885441594060475717083212317954706377981408521769231364421883837608937804400591289150883464622133740873790564130879136708390530800013993928879423358487141966639143909973198555575853880127282209459491929864139977454532834264838017864327174289950991602144795190372919918318444774011286731374823781969150362594436214798429188813784934379036453250839837348740728346300257564907075929197984341808374686089626758274780147274739856599493430986108288016250968933510390141399541435346995659047510533616877695247224360504572916813034364248734678114793496916477984731892862795640687190378363926513129570787199509826786846641141587821668158758981057368889582973010397981521157945002761192476110924545230256575649050590943445113689160857031298189234736117527573083848380132259217881376308810777556748501017051616988748886207420682186301589316632019193620408666436279850407819117220375695949707342598912873779321670633941044338954622635732861270873935601447721138216319112259736302209880438462734385536710344237642394102348399152718808054702052424844607355837520762178985278858272509806480632632784707664286915200040124274269450762864921493791888439748214608065607859269569254969754677623787986759042913021371351992362900977287503171791797863613555480325676950079961596801730049552508524725242004203393669409014280478557288545318708962726612396940602328946016219364768388430993828796205524776364663022950347356602011445968547743932874590105047455434489021577024288204827513404028464084646657560694273397889986036585136970413385536052584227423872829617098665120364838339466694022535470274690847523136978528000194338976432064326561460659348684854751448613156961237175986395289711475506917525820041997272952509820310903542459282929683162110627348075057935784639215622477509708419485882828015080061757348454726346212383357180112979187744066375188460765942687971421876523419444703095542450408182844814045396245667561038485684819309602321100782247283763926630760119768220468333622521720796939430637207010627643672199520963129051207601791984464704729886430800974646452119043642150008820889836633435860609064058952617801885807381923271655230451950309659030095495167895379616015174889068981397341025314234736895752449183002271765418222637599548301850582555921034491113712902325124187249791326831751777080480038443417040867406906829146321192308616367679243036205384280114192836280357509744791450499581618949357761030403004588326605257889806037325999274418986360940156180493947637009205045595156700161538405596125591014316743098752380023911768268416906770830866978550726546316672391266744002601160150657728555364707961299345833649480333172550931026946774537098756648416949389625011332266930595416089685748662292447894407387233170326703579627068062453839157338861857887519156159390086773347040843890844108042677961807273530163952318138007732723885863640346818876027660206353896454418159817258221327955859965927294106729256573955714529542339840533499436191700297735685963178897712455987904230358851554969329430645951702577164453052039012845082606864382261926571068989273283958816977209801014907735114729576997535197820485685405690751454858607240288221526464050970989439480604917820279920560584135933965603450792759761947813929515396561818531924644535655466095553482373839146227694347590468400716888647702710854041062515157186445411281593943823818247907558483508827138576048454832668366032511079604969719182441142170130972746961760717152021928623529155149055271254362709615580272685884968439951468642178163165176877280981055816629921584003877751724663511764628153241704961255177976325768342983471414838837067594551110986986620792947839962828238988003101040212481288420247815224341146344729041871347953137054982678849694135825320863199094480051906391655473746606096192607533505962160878975813850959324329655536632049470008693727613448117245308949890237122951709845318448791831870003478625902130169703899072438865052699262885408219680113346364690580420120850800710971728589818364102743288279267453436038392471112318837143345035634148199329293864404223174911331779745807655132802833859272894732141652059301711577892145837880333738357293486096069515341738302786878146131123682649824549635579827626004737687770870586339729717564600968778749379145523135448824983560573570885773190399167474358186621433549475063384335390719311118232351856690181694399646384553074763906775257933336608586671716883850719184542834230795043937785442477142426584571309935888959481974600050265268758614795932993353854846157954711641461986085884444670005824097404746760654390802329369852759500179455942085715929986983993268229186897361117622371219144954965931673195711041536736339827398267243275861272061821864519902175104215423409398462449967658274909590049013176811153934953651745671642348335759331953590159223102546634604309274527227393690322447584099646912265601285650018534697227585675610232762764974609946044816098458816979684949257730343734862855654093737235451129375253601224970543085069787433829418417450921764642526107110148453331418028885671136020796032782501823751111109360325104515134238455696358960384202034094868833401544843711670617859025235782690923498985870816038970721218027398292233817049057782017063288325782503561485155871282548336301557023501007850468343023084208046489741433594552934733039916701377635872178490389670128645902342271117136274030957752898014939320103816928884440780414268770553914125794900518327348414018819779537544700680580413200159435950052953977409951492115967942852573930483621952357632515860071936532207890324409915726211690422458852630616562931128973216810101224003344553042646418274726656434019402447010183355245399516641575467333320913146422628089476327008256509759629541273904952319404409117028861271246448986360961949734731673708241245571787976683986926514964019948071516505449155193520238443693490679324758105510534313912344987392508877251369826102247368217953188525573215799006083025186834344153263780458596058324042203286004631926810391717705616774090481060957739603253747060718665839191073315526901302986956967895975675365121866247905888163586400552401984587589077854800842284012113466624221709274313944369824174793949497896677895733992466491361384524703353077905937041627305727996013328010777496028314155284345439586121350285187631529741771111880159559980066087195324187766251695448045294210040648590909378033594881320932336324893195362937979320498208611638374855359869838812138917098385153248584403096995346600193484589022337721758579042402492856475887787397173782641600421558389646158057580903363105427681577624684825079544311460185383004470302730784294058969094921770065127905685378995701995005855142437053146386051782168579552847710654094248854419228407280649677438480003779356098378974877926266061779972978705895287209604883199942376807565370089801838648974190884195392308257759719537796135398828366559785162134059128807374212368408824179157397433111882246839151331199066732761541795863878292785259743479436789826127102693881274813850268179400468837218408272030036700862322612722794040335691984566571789083235631728505232758830285858037956307381530130150746636151741859991845620272514771944571043271309713152290521675454023914053554457513475942163794825554859028934128590188003771084345354381193847799204644987704072525073605856713930029995687872757308124764901518613282020142588011711452058506276791203142529662794230618156281033180792059343978712065919666707555433267290667491072087047497797857542654850244019038259088923998331073276727755225137549348611036299435516724448657207329596404725473121483228277131675480714764801186870532821703957511340629107084493490950565291192650983758484973487236544000752877610678608950234507633401112441696638230104135283808018575863421559304542247899511369906466866849971251118605626784943492066375877535851737376778477434151263946368322431189373314568021008468112468203607578594286756330729493533044550251060227176184391305816624427234484973415832525340901212185368616169475304519606964899284872478711570608505885968730648890426177197732448818334778115868663777423410859967283788224033081301009872421842540052562328477776951725404163271141672364468603337427810276807749047896570488698515801011765060708597587406998497524470266631750999578387569324402437138542996198134965827532324672426920227869310195899943120012615464111433674262776385557564286147983156672502955514121587717463149156393744188682062698215262900549061174403800435593998578983245624840793973320571349028897125139182976496399198281002013316556700603544197808849722050683813702153455608118377669638448854808871846645114646992869633249121535666831292548844465037480676104445677509794195494830928450580930641663954684595246811055783589858080899503350789004471843603758889829494617197867046865059428067090291527837857430214563312053870679448263305934809667027615403930216645468999561391701477070676457703230893884923100582762670216786882884274473213625831044887589135312358920488343537027765027948869960094030983254608930385882591457882029525949077378394154975881218623644122846414144124635645653827722542770660520317880380509274950022166282859534412600980855522156623354120889621283403783013453457221101119499002646158842186011210564866420786940153571091802449168756719335903451062839710929521665979999453463287253310064275846755255778409862873015632336860173793941071271597729489949641295229137411762697912881631628780010040895719068029779590894760773514876217239031466991002519034325000799253849219529520063356888365707897202821866590336577712953173766666647069040315590060354434825945037111916437594252830061973653027990380575314838777502336115298920591630386341179460558013246052361772058762918784944790574207142531896499426015312617626744055403801268160760417879925667977600930646678412906451772032861760070959042432206168589880357890609486149707422618146394286379524944928716824664826924332194373423429668104632127478344395497005870389368994291767673553737190884980421953502263363321347351643744620920845939291118291657107577556895928901322288538216539522270723442537608670345593278446071610689727497598223276764752240458383490775769507990439037374298905587608277881509873204764153539803277329814167095808462753597257524204730707303277155509250193103402209921890940138128055775103277174929385206540403210190259531167431823669058932029937159231110499606030643823025052707362590857012056076304569238748420117738690063627162559478148090601124694194267918891484838324124086633297935341163584742273025297786819307391261851858483439824128669747942103075854877112621210817979786670865878380305274173231675779836113856974592631373995828340934231583827472414132436712543299621363416798160147616246743187156543888931825594189525251334791904335594183773208892037220415168423811207714305161381181225440436538614007148704530357165498019668426207059688242218149973799657190833865255140234964159213098009554428877467524573515672704587684306261128717011733436352508445440089870408349323869560507550703863943882030085303657714261682455193701612164096237999898643142435719933913230880033975171849114428384280051411067355434335772319639205829945496425196143546001457245760336765202191143266901978181542167356957399273943508961196550516731787507615046333389271060701289808152203662391538870025596330314491405131695056754121083051321545781538219161375740318091097234787021045267826759370189354596770288735982925332536827317578702332989857076127920016882622560167606598241298446491511388842457084621253266375990890416322085998419846146363712865206727769600713273758852446119956966246010034432285076960126950816110182586641692343347044504419154146341801448578846786051940327289388771177242725104778090294777610215691457193558089537134074397602486267250694803407433490912184290856041925408770595743585659687587311331269859899886044198500461955034960215095115041655469230370658225820195773612658052138574349540483244823638366014509279566398563711355149515650817919789508730576624457932719607382799639715102766111849104070235507233171650082356847028124032202757796903084147225503989450547720071621938490919528705533229292949609468884063962231887195475489298859958279689517693051062851490294619865245820211265442654452258231826690976139377282879113577873828974318872196143872748134426161041294476373580105277797157476025284121429242280585148119359300926621973153464308921532737386062979737240942922809499255211946907721045692267071679522515339054409704043035706985254838084413305549731425516742674047190628834504582260367882785496225450105468965921922476165216416097033421882573001570176161155396779197274720293614354198206908628145250524087502759729093944364755880750093441221869465150308387816182714835901683188794524390666222196364215869487985996891084796586833538061648180257519800572151022317291891431033908898591537400565925180135564160972804293892988430239406881421183662781981349857508244361855231972717791975892724290141898077514431406282845298561400355504337823414920643750410824601121209971946428354556435708306764004835665960639208573999727551327674927468406991904829116703962510829361025506578739520080258970561974489285408489375034312042526042050909710836885282991119371454245118928984914943142620555576254784490125969571453928988091403209746716186419961787462445168877138416591501465813627077273136824354545247439427354772143792140632714850459204830342567429066140312358697794132502263785179121264097629949710111035066826808656557403403450629470572024364443751944935422514824571107146299751895771865396205564535557598333005028107085253325621740338169830195802746848900167786800893520699732248353045903637366672449175471781097674417098732438861741313569464440578583596610539613882887969978584184769648859450012157241015930713171750075793306007135959393329398587948098564842109699447328742874601520250818584578524374255688829856106841060169399261150261625914853545358877816179635045397741363271107039037672170208661530202471712045186076661608109949699523924610124771145543235352964797118444772927435994451489710238279707556741796894433520723848024850007386767510901050356991296000807073137676934477452893279740932474454976031916126367572662289250169114644187102124576915138088994808957610159645919895733411445852482465471948983381856245974312239804325474490470468631277918223714465182915069669784436928579520408173793303784501131329655098694134333809455799137380724056771488225985428523193495339424367612994330278642569056464300741983223235691088129592698015322990189459906642423028620970130414795691542233505195872513022097496104957233913706125135392677285153359178470085209640513551375816469628187446768549457425621881054666472109618205610491715875984936375493853534053403787479996626084781640029209548866109128020799537600926641806775635705817489759580129247194607485788704084045896378751966630796137114670978613289610138312421935846878459126896009439918220006217019265316181292181390641548208481860714381809974832804666501696236109649554012010728990657087129756469273090401790654206469551941722181983938051053706488930757514617956460771610244977570489668413428181070906470246018983302035189701624978476794928386924306706599883729119809345753192125288989992736154514671732270092244924608327649474731437816449100961326917140333323564071003014335422628366010256895675021103727678952804039526399737927132039042837150972595861382624206424079339194122572098371780880769897609836975318897237021387870815968332577165779963086579052879842385061040919061171818824656999418237199004178033473876964521678839985577577782845233865229332584234023871644705964707703925715699305026728121950048458435521296616839238213027739692672574434036472396265369895684377979362378812556718187348512649768743288159934211908528609780014242612762218178682702707988067918922293904579399225939369281197922215650933924559942274444254593408228199579093914049150038962499106919172813233027747633008110895834351503644253835533548569192646636979912023338124261082030270364896170079442403820656041268945700939330167495715984484502123679352447949755569675637707466970675867716529650820878162812422038761659927705112904139590513023037923038678350968361799312521243662228344169586134799166493720727850929366050107770322905557457528447168804303601333088010161469278350285375608732815192901923595043027599677490870128440217248330016739729079330673583825612260156880691958912322747250907750506996916932833957214180702394548807093123221152764571031643846832778240253686330535004564343092464598951258003318406246045641737439444099257338345631547262708797461488245121835166351302681410407803265431996354540041243373076785807140593694413169865256740950150943265619827232286924817314086726144641405712407625656467566106325641103022900653956059778330704058466996024071403398194470416762242269196425552406589472255051821757225126951862114198722586626961394251331233597713714391440261357664263489999279115106380422320115089457343707923404121123348867261562297813931678430768870091197592041845270336522395495479927851941923072169839490629065937518363617705330826365163828234984430203446239377592121110376473065270042621942657038717428100115201734124990553030360236842527847728990871344814037294525969574330476439632552477860786200429914528651214579687903590285427230506036750800340393111405908427489549517895449156127457322745481503024502205835647045425709162247194158046255934437205657513664378116213613112297025687764842942973133366663190092375914466708326752561892944976279532713746344737356469675471097379088981512443452458142899948392444833730155529632183228603662517003680119093342475608991987672748961531774550466557490735925846366280220788021844344129017589251520060264895156412481089086142070919962812734331551181879425669537221968259675833779317653462750543386999788244358574257887178758370383799080812216381662165526359283181678615516358797423732902265717887587078751405632685003927517605731629979438407715264305113682749667450629381873660591607672399193958324361603270679731937208476051173909014873653013213596362946084862398053096572057557950295557510703231725361057416423689757313768542160109385829189852368031434641377219774271312715672905017134133454899257779640833068733838307162567992981807889137065532289906868420209445693990359188103337911097582075335634548664755718611449520738775307430525489520817760496710544213776079825070833026800802608920812802234885884911915465096188597807673630580516088574948781296639470085542054519149159635245867898670371237137971491199335907649399577745527981201862571094103075825936880188560809179807628357476438609749398494245634491798588333294948300429454331374459101296738859162866016762466447258951828296857244172268037528617265587158832654961418479025559329386228508680306708236177798804290993917139360939230128073763798455803669077458881747775712689252491197799915391968228599751538795900394808707523330192845244710911617382093263952105952164972305315760130312692585771984138463939617571315728843789204757909413700601086016280776476498859175014500359319300181809679672765056093943824339519205689565245690829232524105865230441680374334272594998871899776121638370830162722942613222050731075559550767039777323296934801366141972495615450507694295113064268525300520238677492402745573141318680373667993401895558772845735439665913181801730331914994444876508778100527584954643895298786224249962242638345894477219098383016877427767218264358147281788644397929358453165452628029328625760272908337809564347936067498226780331769510487733749204013835457421394117174850282984307671614190407101799685809252902915715689951113188875303656404762254993648882655591724597831611355581412795892911291071212059281190971323064837746090099976605909366719161617404344771749135430092683629508639001260379735901595344715100132864915570941923500277547693742353223266681772573392154071563165917328448326364216740498486212526041684032396050715837623106241666464039173422978580849941311723812807394395604018057489794148062465251217788154483772984434094308561544083512263327918336011572103263050086976309842492958990466250588847942854504298918118068551082240725566550300894369380250659416067994802354198540310179686022619046235950830578005826784716042788876711320807906609616684960677508007017580839309680197295745318618811959556887234748587923336835104675840142985357233836063579465330814555034100457507037847800791245254266732594239867828386529756791016014259528855773061770092270589686364603165762726848025205417637125016573248468467682903308074204097301063621221846370061767065867190394725581518253027480082500153723685971433060840370100239123336786621708913137167989677557493198851702624443131361664987209776072660787659121224982183471616990109606037153002216885114380157907820717923384981561016225358771731665094806235402559506417366209479437088374014813935755847637489371523530538823481389277238897410391577569139297681977024232004554031140969751725748838211860743065224877959070636440006325221263699907986820535872062463990138569042243267297909065855972445656194004150817969028857454517320172416102189225811118675624495403631244887907636936795937116568876848069687933057754489012352447541980277069627650235665079077301277833101990374615469392414834765690350637374072357884111914849887220025026757388180994943036942655054273821378080992447682312772566039737651286966072711836636274239459579485430866478726782962252667125096017858125458413246844819096538265336518018282880203163303992430834976607946385121009150653283622226722800171350890988508491509218220312885579667063181419396572417905196722305191688513564832251479362893737099921522529006285520020000947416327162528073711524967146146920439630188765669236596966706406241485036989489110985486141823305618908721679546354508493935408176954094992096631006616930501894851508296508868766045394771421085034469940351225301326932445110734348861693639187085964444141773157764264792280956876202351743285694264287815639688872193948845075128222511342934014675152646838383325329359541479513717534250855917099630312328290594377744119223976901222754305382964234301627087004147990740360990963815937785896143255352894135396896708565099230577216081300436367928547691125991315457242396843086104737396712057172283290642342966750281609424948843487109318018751800077901557995504191984144698404320642405127870081193389035895460430154573781044714731792313611139737148562083953880208241997295242678526448240612927033153650196813341403154379722714010109488252503207030300753171012064964338497851443995424647674375539315298169728271074882259004208962659991035021852972012678880019939253750891561075479786704553366576880411424270853664125892724674018030316608594734294015336769830824295057914724817461874051871330176687294249228767650377708467592246075163916091630581018303974779843841310555303709721741988884843110612069719706231690790229621677567287322339102010667612451079509102499222782588544995016393855371172809819716649646092360511752812806274702023036413923931754948292765764912089191461308594234218760186721053436968888951854722268704462807091972670263800825214559776260754906091968290803994479646056359891729990980362553967810282861817016402888961628278012113310847825151167679455112049743231005630211105730323128041282952652167973059622942769739121073401907626747844299173141771875456701337900652648667717981765931267664666766506227655437547253595063030675237022157896165675822700559241794361035029081913761438770625188292914392286576265225977045205351317347202286572543905606899479325874724771683924709755661611631607901751471760113017880516611145512832175352037425145283494020057598250589301335266667824882334847651393226959496009544461365061892750518409807963644696464612034753307083279622580254601964254870411734002004682585979182793383641929059177471195178051192770274303261929155476027326463891493189787623425671841108910885509767201365477480574551551067564022063593976640076226851222628861850146576229477268569659396598680271271294887077606019462406154646017863845851040181793254931224279511092050242658010993210044371961120909183027275069001919252341304928387194483780368797516355289956978545867476594901944120857296596403068116851424779900068226131911895179118142220014440324001539367761784625078795799667741315692124978684046931836001562649456828048712212460412074774811785044555087627246447249784720179416351589379448023214837720616322233910039061090760075398255057191273146208893812775506628258516152537992370074328773892820788003394003799122737818500325930785103052922700276223329894096272617903588630887894478071425406441467110546294933739283845236933673606572406022002818869581338761170426854525701554113303632217361579813987872448758770391560585080625580771225908052558400532428765711890068208648557171827957230676810494083753094887071752137572585695453845777309027881836581214587387339643778089651164823193545845752252688496648624382432091644237517805866997142899852959706910799225560729296042867528859903502700070017996733930754973120783780502286889443262356610561896501540368653925332690549714035721437555490349738568987082546967114223276080758571071633879141943192860988359829248276204482962311385708471628350404189681030465979242652141650921720530432873454888983810437984987840355968692946755085078673080683273261098184036538282781860850028780137009110503253615968601334396353895548496102567912616316651154999121905986193468006549602108076722857506113445424809725752242116343591426953183976016474348861128334319122869086257975068969282001627182817771288096500347525076006236068277260384744798181139358513864598875521701439024006414805934304275121197115133057569408740109354965148969489567646724894008358166769951405402475710996172130719109377569026173485487333636158587221692367637944349571129030193032722630645728627457896249952400267842242044528063109815052492623389002798246620445976480632500563573938247906685490905792724389623553034981889642045171403029258668832724302089431157274995162228918438572137229264295440619228260795174945190832235239003653488896726416284675508995332125323299297092726703025092977489617291117481076753949446751037424555633353756131011615713448418661839285698095686756689662397795868196028293973711818061259909823985430118309678919658692769045730903465793236864047612086676121214875990379218338663235189571164867895329049529291240542672531945440568269558625406259091252792420276688142836732591125646406801284301213230193917721972895660085545229499499608225296217588304555969882079008630844386229223341595405140389402659967722725888153958418928114710792042837910510512606959580107269796162271732522013378530373999907272157143496394837010235919895515993085099718204194178900113950654945693588707481739938801080422174530209416659958562122858194475106610907186778156185417583323806223982997994620877944971075170524032877842418470612792586102522061416704471481904341192867520473687329074931721918430740207279558844108792478046348261366540975360106285445475043824804598573756982412956555660738629196775129583437363166757421542373244680451142068258924969910911362579635490996375668008210004361007079599602783891613779010283519216017329052675049763348153332754615383343955797407870984712241002318808067269879814409511210212265805855321846793131756617364559699882274788189314793784463090651774402412167376402183363686754385001224950403936493216842748841697763374991149540552337614244803876758186266287366928981420960347539242331818686708769969276203215329850648476375978720841676945239777830271295465259212147975363141142468412713745371847043784006439170846245805596523008265787553034316298580694570938962907800357299856139936401122818244496765499070330266265498012081684377055708848199273622111514908948353590444133701357670842087384079585282340130534788192252498323834627369720795500585483927304490920923226063976952812701741182965994449989784848122041826324324147397343763835242628411922038517204201700288573694399275754306880069375883487741097674458450619937392847279687225626726090686358428498810995718514608583808198460417771904043812667984753028473344296551801314623053820414382137214456459616242296757285689423138662343865164848069097863909132085372863325498183720304400867235905258997996943204347523936675699834772779756576114094307984818398593962830742536711990490111843133743018340941154708674070319550944259630652258648848444520058771123476147507855290463663847348553103499245175063907734549428355060867612825465589566723173677887455494092821842177104211821219959961163048772561723179926371169606976626234430874207083613732386865816720846120837129558156295553364500202895942698563593588733164025095414700706193300355357594995183770085979675419983761726382073647313528422565875047013824442095738120423796290229075688774530328178232405798738900561342762740428435485178057593388825874350386382314524473714381737656376367552439102970838261157110695975182965708008785389120035986797493869743066232607500226775842324065078537466950291923184894374639975158075468181941427350564220295515988051287893434958213065709234251691654830156300491404417149562247675491312048676401928950981035675710732552679456095292285691090412212296044694247468354354343327911565478242671553514331113273140247924778182660295733832433496780848571182069271747112333375385866391968946428197447540871331180418728530419113520076528496204472365783830681648351950143821726215495807366569598053388733269431665954676715902923326715597042593134049419487672054872051279392421644169408028162963828658419539710772155815958117657036081609147791821983743042350220371420951587937878688116999227898965101278639897697285767251265039765223235104489887445746163992686056216293276385995663380082634650033592482593820398392743276364778299298556113729666106831747345929449372654728279924292238110031337647661594905743390979818429333453633701812152589567978513431846790847085411821610049083682305456745915403322062230403700171304078526329586462094833624750500881595532473487822097269456558504239828374070697033829428831022774963589420649696770972904229175551752770079417964926944774851368570029943291530842931715196231767975937361340913536237165446231298475750776264734245576180552694563951632397019461885501221057694655907967640753333374570199428043973435453177973844767983208775643840720302850714596605140091509023079734022984345068379367731924330760975205327476380086235285242642601279603986209199159072454081518811644326270984760436587398513345768353037782184915195211016763466123957267164810961973904581557952728246324184606328344865789704668969939811401394392746897556183955152787346696900816079196452929542171150523420394300775797188662175509958276736752877176209973646494869427960225543909434569114279628250985162977068951045665784758900887467681592854368294664707587592569407702680865970584516774225336678679981720116226756191242152367042081289995200744219209801176438755938708683666419809076475135752325306706889233555088253011833909330936615636412761202253560424491380487581923601224333902735818528990493788119982372173775870119834846003358477521947018700340237815489803783847132470229125728908625657216682767748809187708944107055378688330996913955408090844940517145114225328984577501944093047303823485347401166438670921410316272230883094308515717291251866041152607838576052513696452357643559717073516747512647038118894069268039979135834551909750018493574573628965790550792751155574326794179187392397927382277031737171704153118927023159678533709857447986993183879328068019285334113357578569378485770739224121635903909047688694511676632748714963090539861268220433512656330766894825806045255872167393862082608408035061159543282395977745848572768098099249927825485632372020075839533389605316059622017681429674305340956001413764761891065784286757031572418805730638271015207219255532001780016727529965187173461147866569939597538630807373537467500141471386610356565355386850956932895890348356188419681185938235297869044908568721091355119953528131075253776482361680492206376839003226635146999342831285433016605615456628740626414821296447145997154664510302042488053563460029629178903346728953663290711770723256917617969171700208778127527382026653071446014496853991085807264627316550197151190169153421986579840974715545206031512325469003519076952120092264489400791811003189743887886203168319487779212622315465894622109488805244905589044714240987338913185943715829245896872009480994343360362524666645161903446156275625984580102054593551096714408325954443920975203598936958586308711791466437141314872968579215557548332704789060568984399169809466283769232405878530877169742899196830497505538550554816911441742154914449259101709369552477325090340728772306124241271805959436205202579068492320312035990781207357738117404215609388045420354435583335004223915176264900503469152316003630144308254566450666894962205731439886319468349411704415476147531747684905424346481104218877552105786050757157839823006308180874410712032024581631475436185906758881097709403658791702010330961681959197958328277912291334478136013262436854983948361861636209491535816927828278119823382801778000071328837686066288052772881279037563268814554002023227893699452339716371322477518765872410445360448059319597280703604177046030104695351768003037759578365489171096997229674425418878595604531620658324496855506317543283170842728051841082288637957677008137941588411379525769081037713542836562754844461215213321685933692363630355189096101607526912892193061374070878174677316561217084959028629050800603201993843423448667979742361041225859352322144296231038570312396488731890258984566450412300338846330119703835913230486264677710581688014245364728904451652811122777384032454401644876479099399182437139746210425482748315876835015075271963653490653803898796589876651547830648190244654803875715647029167906332762482048339624213976293857313693656067426382692943585252491372675459076502652528546831406000494093156119824022617621410688291667964114125214273611530285271075912327699489561508155273381569732551067266810380595920329358061881342710234418004770066280444061837974663501413080418781449716101596092765877129478873790275418876233568970978961601571839014311963874536090871816548813814510113434104984289294895187855749150767211550352068213785052745336919852137188384785078228198877342675024651114840478232052542268648892494664359208114907638688721135970001287050740051932281378415052392508022200120368514636920002476625133257844075480638634693131027996676587752364156942297551866373448462651036089865707352099563418304640604051185344818323253168994651679577127522695745591863558055937703141946417395843992939182526607780592969769372189942919469276481255758606269984271369420005256884748137302607882400456041113486914369253321930775201179882467237790950376051833059976499318897832407090816348837762092685304113334761729400784794692653159839901007919560249204709529692295388521708511248329958371009833211678423403682887319753124629518475713412059790891196394694347004261035530964823668620685806441534444086282313206241070092580283707250441376525602154027811713554370020344248197670262783362113762767754098710267790977793158513037622552090398969537384702612571170268177929030451719459000870233759950893202975301206706379772881919908371447542461793425467365218793104671594663736915963292696541977368200708908046475796309105675887918952190418249306715751366602758810635150414372026911991426684240024497244126371140505313783244421571564872882844324056451316121395629373452880845184903303644148707467897565029821430132545496139152676708453966821940487449885289348973306250926754503805972706325376266633800688919751568659489805063949864177387342378206157452582973285210579805600239109627968823204251135381098552743289722566835532934301008848395017883179291298756457694534980057221436486363545953931961459231932868574457171567678462761013835520690653793193960216512923794522606906853454034343085271791713882257230225135635417659205024643368143378824502086113621053543826303170341153582992841858905698236131423025505249343299006879609558990698229072394443904658255442843310830950280964143866085230918034852756164006140318862593573738474775076217768081768754198780115851228042477786427937432975922211754941256294688786234993268723275289309016227254179192275593713850995384470313093834417055099597158505960958579361036789372064654852099182768284664131681981394635636552103797805268101853499281910349218770627309920049044983514065278428129945190945367306657219291923496911827400881549489631890321198551988133241660155276256425500674962091622842131002148637726774554951641071533545965967346188262705640101204181920344799168038488607742100141098507697439426335363682450261391894227614723570282837688517979900777861037887956125178726233036953643382608604987026315728749683549809455749761970035439110537330190955166270801337242748467969914252633483406634131988862722823359831896529440387402956333245979648504452158035753278754392950758144962537117022090753007903686735249775901586019853137472418892894414386507752353492190438479878328310102947518063932492510903457618616819695730852001585942163957680708325124294997556778947543084279143161696481592513499924981418658369067323554588281785602221483334464397120390240550638771140706301463546482787483398195285325038864491074265350977356282834923243474540554638265670885337692471309762598977821961724720574552758932077384744702513624774831747492533224343122370621593858128539953009912447691248378732538545802790318982494824099059905485749777823498684888144648167598745196044976746646664618130734425574690631715973172164187492199893491523495331532204002637095331241297044919938117936267165464210505231575374212302026338160259810134842911317636012743396152308672935356134692759393541349115362738772232515265057107176425565012008810628089175751094198501626585794096387787186513878874547621932771660442840755623119305975752791414636524715897298249775082049391309597539513636111943159519584223793637956600627295629249921198336957976806731296926069691504998936817275945550707340279052042390020347586669348852880403647546757816528127122798460768071364646992718198834864970076708740800413701144499688026060348173844878099455877563414652140023049277160436674849188912487878421686776878721908904295326262928698298842664603146094459692089512038201628758478558649260249407744709854928185010525760433351265753494245421134072250003236440887246613268885664867775209258461105098178971786039746973028015665585052880732041405743220984619870257270265450553543610919174361102642090759672959486628608330422186475942849979178992490766189737660178169959470158072588921752090954299954013358650410712452522775172154879565411506527076743910322587763437322912771822100910295292422805715060514883898319327178763757990475975952552476185210908664653441149363445986857673423368426666195140667156895848286888066450246489448465637754429688047208297312112903851208902124155063383603761170430527360251988729949732051520400500463163444996776104718289351968599058077515705861058253456801187897128204491897084584063900414351708201569639817207019030382025153983153433338206283714901621492575042879033202627582643302918265442955331109240111215311225896458722564252894902654579862684861451287391781995838102368419009511157464492984090304927195744471577847623768994593095570118183064603149598342648121380467095220657046641396997939212859867955183199749182477808549173495543557090408529205621849287255113232656709286544748082754352534148812240842584226789090876714018636898447776109825606274845678728718514526693835765688475580011472674578968528656649407445916376917923507979920978042360026458388814146029518257107530104776257050888001256293626179890144280979215593356549798202355031395758611870251078490728963504497735795540100268933161668171532689241146463863316165434196580648342019589201119742706817848137880171425075274963556158921440220529283612751748868782475624346893584723694199670718506935538730262757587577711035572970002048856007491197198261344364218028710794809613161548875302609434559498578788956629727299697897041846932040800825786664469310608353542374215049122309329633870616622133837512424274518945274164634300091076007168172581399455276003521962196528369966525989000461389159448336536820518572434777048284385064595069143343741705596885706954609693584200192074444868664903436799705853744190225142061746041658034314589156349197481502348206436207821026658217761130473584267371980455262702343356488476167401391466279482995111457695969951532467590983134205235594344921099022040189750025532021984730245844641373776769085766761616707599031899989160453655247652531163588182997642775872448310109302748013000532759434901966736529500548919697788707613900825386638486029013959664343959381604415597808932107210490177261521890543767334896791171485306279851229470765580332113151153960611128615238944483870142887608819911717203328665885237762210265377214300524481559895174804715267463978878562906942796402343969031654229887275992544190729183982939250550233423066903485248551711214116231531554634976022920225251473523991799439742160008085746985873360837908618203754788634174715686908745354334832661193485386022516838417852891708271524205560090906933672376808094783787895007066901489656177667402399475646530268418216375119746145867377241033927228845158139710666859088451618612073241433931825826935171115628065193474349705131656073376597492620679700841519019184774374868333769200423513558786207935718345673448721649016571014110363209215353028447472428523949713510825885466849240217106429490147234128142037279668580453812616610271494535207554589520264918268714571310242887325628449183777773835367674135471831388411413379398613345383714845152853990314865452825412743268661475245075245780578091327101064143583613130729301233813789598122699645131237171242768727617574666546939431682022281325179146335395946683198585353609509240879226247407958574633268391567215751343980789470413478782682515950230302488318655884525192597371663982770489442233134900180925127026149722583236847626200730705663932410261582385894005259313986010821379827904956261921852152525187595088041381042183510933138059404737691134175244060603959293645440580302207857891739830134075923456215747099869801146754182208209317895775169345514310962387438362735337932937495627368881072966202464725603732518972759271494481938010832243722088923755788074725509738784256638323417053663594723948836253328927798492532260725188932773651862535313932457403505110000876809101254478825704591601754347257009073229261462511926448309782288269632839270674348556886621809654828260970276639617821395646109361106368229538277232159383613282559467940104297985673171838720077043091872604691842226105944099649861773180938190169939045282034647376629594402791620477836525151764718260208300380772072456399956991252102781360828145137226632177179198316767804380409470157072928954152640936304734149039763189415476410388736058367096730974051733077997640359026919054142036447763049693136747216762754181496203720605681989534117244156362326504270754655486085250325896133150617529019144747711201644012303208291370394967112503572547185451148203665437980472113342392227312859997784037697543382327163726031114627386374988994488518949666703357873188657444813030679616893501583614827242130753716690245365596892412353584888607030669339874052914580192059020470933290491018902294936180737575242971543113170837206094760687212839264081542098689614702739882081162228197243567884811803671868347074372042264758343102105449148507352681377041824549802314542535271178051799964266120153458443374196449638371966478230185710648786268202226618906417198560569569194300959704126175121257771455994347575036451552909249631089079284017903489757916059915702400253848922886563701251131486107589226803059163286490879674026537600107472313475166854142592832750116095389732891260941503987288973689277585669638541014926279080169092738826525268753508698632862971886276793721740046935174959700643332466519077143999874767714572819161182935496149646254552184400049204525680750342643580785876912530267380131070668548306454647857573568901548197811423183158871399309920165563362574278562891887758087482937068331810548135026310240152313488964140617274150207779954683401198757092112066610294213769111503906065794774666328857679560048923114068115521450595168395950694054216392347592035623535985830262001927741528355219239831121124732409021251870235167134135982127141594594796145994721220462693993226446984799845538955022467884139857231404721937092804008924439403581288340724538526844828244234012914520838891627047524566129665078018468479363938270884510285702373326702773448121140138372451233584512777789298169474415613003895880206997257799020106809228408421805900802200747372323100771239139170539576528207211328288468429624447554419421386309317876596773870644281429158485869674964033299759556349015475982177572816247609302369303728562552415790618865873221774292327202143696186406516671235377786098959677516948159534830239192371544645028236663735907651198503555252432024617073059926591321955673758368482809148291797640479209538199058752648673746661651079689777851083425855219791780078541284038928552718084570085687567740472961283348631422274987653752074078119247673054767255720826160578340011347419530133542002401184746112283275901751381772903400895734292678299800357387398934579717834179202812393728301689744356500027844321630261766666808079282949773343785522472266766761030783521406741055856203958865458675446656726778030163853286613710369099502805879118070470591042635719065774583814671458822369480171834706199063023505168856805947168856393088433468864054042003848742935411381220898118051621671649620179012924131727672029704357150954148249466827704345371649222997547626823794142024696718631376820795355326835878397322321883481422730134247643480317338354349335944923505565450256451604519109984081019775146521492765942065906573882111377344293504463804037315567768664526940783479625095890912339556237918019555283158143315967700453015258233659850275689439155625734891153262902667534510298125761078099412983951684291139455509569201703302652662904888466651942364835146170730956482282214702662115974920936010427271445136233753645898459137531681466095245825858720968828042359847293883519311545849544347525362646151514370399787063564218764620997797301249902167962840623579196629240672757404223584725551014850018247779466462091557643588060929895817378401924365727934653890253225145161259531610456717025064876609315480994091678069381590742103511607941906995279984646182817598475961972547682211003602332719932876916274622300119028238115190963179895167649553513832726798023834353790525728915877536907270902316865924581769884933484460490465537197621512340196337755393753806661313889548548760671492096794689942356331363801200387003170927982839519717614105659232916261344659868415549376689413082811200447441445545546776379569671373540188472378435423973812523888682673781427656026201054263056252510438217683570210910858538886632116445510891361154934894551369488446428010973152735203948126374722576440419676241609469453021124278625935300621343778906976940707587206718167581708189954302185762623817244124574049593546468160693973178817412227438597873700445320054950272445471905066877950169573484290354270116710569894258550306133857605954200847217185253486281467842676551407476425894981971466773705232255842852065057368813367498412242669556847666816739907736905459632209414217255364015466532755191922370382618155438700914119094344423885690111149348541497290936092978562872848308346672363964119913243152812571563522145256935026574091004010941775979628180356728376142284462477590373871297557296348861114387507912541491688785319701034833501845068743407698927923025556298492536437748980373535310524779484786851175843356247199116098147033330447667740937512734201559345232958269341456076432410363325802011526151433029338047208992994898509437438520544551933182041213964240584522756728845471714405602183510985479336350451983830597374368862985173350874378763836314271430853261437048975311246905619441116768904288198554716811485838649762146980974165093743396615915479902756761256674699917202501705531008562657104543271542497663442261175724886861920638510824902783394601208809319805117261095955342256450603039124272143514279583194226472695124976838390975368878090498786107449296626770935201806818854154161990395691858217175489517372519265363184554216442542920516565513981138657329210581366758408178051272640295519941075410148805408149234192207935614266372172336909824484874295161635540771344721018619433513561522840807601153529876846856815167026706956309602873253606139078682739546876328354928569742160108221961272910250786464984128492833938179058371426976378284798359350475437669502190812101320247727217347650637665093943416317918141986123302664004943954622300848054598623535550879425901841550624429140989689415453340780659891661466926690217054788721480199829924698877527675200092375218171028109927034487275412905895529048775918659150408386358719789173251014799546840023360103803182337295529783760617588384880746447498465986079918379763851295772567131822451015421479873756049698871483601050243650692925536244258022639463839143821017930615497755954738979136181841085781015168169120870289144312144287325487140637060882231843678583885769961081922731251021812578644941615919253398453159049573327901422541369301237789137071983811206542162681059681726844574348847061312455960370262041231222238420499029865064096118908105214724362872036011442476583447823152366580058782152185915987074703279564286920521844656114817802835944780471753037599479416076088261925420644897679053157884103124030929842304706798368442067941717730684487933207747960084920573377607400558932321010070023614919568454009953850367153708279594794122243806690712809022102559898501831441892654247007982067772422620565802245634257765513964013223058019625621305160748910405125012267068234091512643835758400642715011623676275850207318189530284333179596692575811073554525240319314344600919166786317660235619139537739876669316977709038173729795071047217947687668520809352961218677102510696554087020765453381381577184535573168776215801869028187970564873308298582320362737512246183210384495174843914708053058675764982526934073555606520914000300768034602094698049483045880010335476052920537883069369598116899553169280457335852597651194961492691147724227221778135199455411998545624110084647102232184742246974734640638313474542329108498547319284459500623643863226558581489555764039229633159482268366855576949702892107486319095954284729362275847865483435546319394949964628400952437539524750925087955215386863258471783676715190268412961555861178267449707373048430408959203517325899123319309055035478622291912048636705536489097606872473365498109975635639298825327823649991738732359167616207029395636766035988001622323565243712797808778026097491758973003027620324547759976587586728509564573017205987117274434565432258786452890853952460067420373355978050664896908516153918906530781813694378589422674805526706840155264575262825930779901575718112484558488192578427073920373354402462934884544297502841018269349621420643067580886706625844568426372462777337556900702215156742946444211784268692697949853172677849348492342037652495897800418112249579249519665437741600474397669649687057629909694685312459503565717263311349695975836157827759411034410015069084314834920898738220935182882594933466859861064956333477653330664003625682854370762888391194391634760009286195537744015765877058357205372608510771686504260164095722587135058647411589447067786695875363056911509586874058450676135132177965397457578059585661307751135209004434005673722418707873095593014751461691742791396959089526567706393905062337782367550150852828907808572232752629487020527550102086925345945262930995083527493844826379860374205717733516409433031372698379646354121886802724777003476987804144703468924815445979927683231822940060643720269281816831775055486595426260650284567916364548221768514968552306300167547849565241243644342926253752737538500374300927898972281256729362890626612486861757801746353782999029268387077507559091923967601107947003375833674013437028620368554769609572681592993418054617733585261916936886745218735698377374000722042674062852160362042123777107576402679589618924064721030662018967388438449937378057975651435493501352523788661907713703262055542003387973389273353540056322918419997550843095356157326397141933568098694255996550346906848176855903083839249883627078256886183568784442549187688153537046898186682921903588160301092782777914157518012309673169762575734257270600104564138484023641677797662263576477274811701138043876909404909189761516073965924132095381131795568175769607417685580379676801382153163696366473343088750960664297626262921594508175045346478996047482444778729949744376870801665767252585772367221968573363557349673127243612708623003875914135148183300590352219812063698526832101116138251299642962960702123464351841376494147361343432968464238480684916113935440833602855907004966998240172682714438848766292025996893241219465007464552252787124134772500239758678926566372777046510801013258799146391379592242304204796515830267056852947716319649363777678375293675707805966904034922575674399440936373613981358494679675084199030080346356882637479681512275539854437138818512308039186442312771562064567643986383279813878684109528441357498412976683024599141012526557660191099551397525153284258362713548419651104471219798170819407284547250553181698612660801407130813948581972252240087708801385941623453142084979630323520132465483772705763858902918399925168312338965788220112932332609915930432107079134590929880629762332939255318661223340309188019438311588728721857538506792694719000175200769166108137590831605374140778253814142554346794780207923431010896665392357311107169296316120180218800341343787648934983644772959538132023113809510473688627379765944364324136355435346382654994203422971293896682752234826818297466340108311815090435736276274956365213087014668409648794285586217588538064003927837655532345648809398934789913406621365421415643746845755673562565036032738372990792260296072519182074786024353830181117570869287251395502575458748317940621467185646318902221388978672589399006566773289626825297435622751918680933615984245499106777148921846278585053971493187715756293313029012289392869012361595714328722225073261180682596611536122929064928901000406097615319359130766745363596042841583363509937816261862128197110009114669608542619411050356768307558511016222777280986468991077172029481823935690375090342065925040816643196490173617317831741766307405494208273707683121696287438188181277660928753894894520810172948080669078756491402795071722004341965574955442140639575407775258402260710464616036023234480532105338595150884715686556198651002702872088206516631256162205519903400924462838325404748788872841292914627936822577290488489059428200492510057768407238380009205487707100430416318435515874419818448718588136753197432099439365049471808602334466344263615333884970540880279765897848920985802508109718770319118812580971225071840420351845685511569518824203632631122203866399321955482374491998430463896437442269995916664806175408721062356872290584137015158501619889797890495492536514923814921391015285850200557739100684757094941105489722623399329492136686663837995065110005525491418544307504953413273800235521747210032506143380187949381257967876920854979461331828147221276163865907606499605575926764934743388327610674697410064686750341054024244093151746123472929291145593614308548283051872414087901700313035390362244874609842834196144412194234755902161909967595203035339897445312895408788255313268153182984213170075847679782160116866339886265365712246097528929542014959706920901840498582280164917416913257388778549726142894834911007092183002330273798988309252540898237965329522070751670926877007438783640965118483551111522668410464506239520237579025732383291975239439236787935554566894568717874096213155969934383215433115029092027411663712340700110797530140455090954187999004134441476542438007742880198584671132840614013950332260173768618144737129041702511656388906161375981088844275818206998081276659358322151938884948402753084633233051482787264359477617865346386369698107067650321376249182563553093283895034069348065030753702040668113594686227838499246592585099111260894961026389110368522921890235830800466998478052491485430608848017127862021073770844962429729344168224184912992919575273814936179615195044616429032924658042238594391063547716591751840688368316260358598798297430966833817090503170194619748175719017992761042697425926720545430342638438128730342832438987069002916469587556583906430541604600467668673028737257744649034901671439251783838762046425989218203954416148646005786467050687680659938511959685976991594256132225737822314381260219454936891902303876750350517756558218368063290699535678357359031530701882828249970326979630341465779289254053140131295307951323156649074728100536676381767462312858874096670145213287595927355549688273317729758392896986728703014511260833910636199581740824010188358279755415332526522406716928331729233406653801318017976168616166420206954888803704426737388895931385660926012971089019643817223976382516278876598067953257513507192875519817628630306042055394744828805698810841927418299818757522767615467138448201682828832421643683650107312249592220074036263871640035778483889682977995769598804893259681969709356689585422003967167221787203534566952706537012392136451355621934995703197134693381259332379663675471444518666034312864618949596182804753814675803191609742680875964295339249152452861866737707218121246533017553098497642536541628071688522362653109689782536536512520723766771693182879378343882623857659819624441849378376254671155251375583323425327410991390984310286592949553888552138633304884340566705941877938968166235004985967086304681585622976780714111904682719519230883528162134371438978232202411026617829766059988210471851558523233144619633652355013101140366567772988883160506361304481285437343743506597433826978411514906958513389586165692507662465585400154675191286221505313802475792480644273089404778026626776941517480208017170357911280926662426192614299461491711034166039134716400397739340497605823353703779143481980232688368749883085579963221484984707888635342428156784215021667226578504490066691439176522176731063463549511226023732995349119237800468197566700733436770493820382793696537878098611742932662227495535024741520975318812191238727952261121120887892810817519002989017940034832206945333258105683970502677017549019400587919289808400871116945348250211819287231329248689847348256526768471083746558527971359446701172002938473595324058348901234653345190014720101256375814449599452707606560821033417165725704511562271630096643686614567196754316493892926477004050775311957448662568505562796784857253192926105063411461419987519545004464672505741249037159845391464764034808853932568386412595331429123528309120876257253719781030186299613903823242464061380622301461062207780424010558946586874454019802222796283426414937069433057496160059982045486093969336911850681448323028527404853461985113910863746140565825582141235461604327606476008767327721466106985803002379995401652280589526808174492599019931387673225467154125907485026085705969160839704621599086056100395157734345407344325390835816275552339146505048367333219308986258708948988375869293536653479630788359168647864591239245753370726947359601494227078131506694099753927404234090243485547467631630663908534617121980156704356792510211489802909008304002648658647117181385941947394731071619028474052769667953423862706722888224986427799518560121955643187970084134409957767422261663459385091102950901143115673855009864703528520345200361365137785176453051567176089808099225815260470771319680812083965291669631530286926009257001034239888600760379416329384773176873399798471920302368256314171362902437908710485030496902237484895899361612461186824609690044957869691312776769322972772778134925496188679807181171798085761444268428723604714710528941957585415607021008122568207749971984109393683791998235955481565823890241537421896110563645643528661907287116184403655566546793466149892455590801225313442528566394088817891729812100228935484329613638925836283411805701634459584541863755597520124384382129979399791506521970462043356043079955895040834654289850145781707221636590749999966463306639364822094794181520727269384746390034087169390233277016582117730800360683891681029257490287854547824418076380197524629396716161636572812905574188560201366097460792828695934008240760745902152684718652093017954120472470210661750463057192576723982832997307689022161334400008888122514834012760351649663258305597977543950291991498360074472444915095366509118562565362396853236811958076333902401707184546068477668434888036969400177512056604122671669823126447899832330503746161011641801697731370464520797171345499276147841599308620413196913202173786574683527684940973272659059007794551524222350386334904942205586212752812224611700283931618207955429216499651677027959639245977765946971493703845052541555301306685820704779579212237487287547805162096079384518931760209215381008589258077706186052312773596014849134785986427836868262196020350508627904278725455997612375695543791502809584795513043673953566719627830805797309427649606453194202693669982522155475675282711388422951327168059113425768690243080135900620599771085694975730676963338811716638719728675944986370549086829387119494909039410288944045799815561654135905443719055778136816877379455275971894623993163555589901279493618100479942849612084855663990642880365752965416582824345922396224128312155572676981851984022380572209904126845754067157208008677008773523739491649744635038547752801327802770047619135804509989238319256414704419528436204320862518353811896309741866912616524306772574441919897431029973137869834700593790010348863985861132992382999850892095652036330295286252426181548552598452455262893402808586298685852868019829734906784790193730595863439702032547114987839698287843903455277015954432704818145839906671149084079065281116452630257564284787177712282260888911224576887947115997091397766205256203932280782859454144669763484463148524999626255822560113044017172161158329043572168230750633710406805493689327183928929047658762010878735728214332587031939940061471013426189091406703825102516069811601389347704678100346019517282767438213573887525130369920259747742956206591637570202024804792963794689486548041212052401056117196112541095663546695178215843058145006320445435872062962088029048331739392208206240404194918990896691928076992024527988742858838724972054118930037312773152566200364728000470184160612766700529711308907603145633050270589640923306481301016695778840869287598797805216464951491812888428515407083088133003619022811152515277648470266994909616288410672930702170416484353690620100760318134433594438163859710194665738014966165126432356226141673923020765795398544965138555294377873433725837749799216416545066683602215006318491683482525623196059161118703006181547053424238056203387200787824317976069448423384982463672043633242629545712582681136297130956492980859145528218300476055285127839226966652905712548167164166924250643371178813016516803691114520473953017779373337040217222172876060756242450935532757045653103039077001528835693235102625995621317323563460703715590546904166535530833665823066043266015480669034718877959616151652175315135025011116723281478254173922716613280309256801336178636402696424906306477071291907049411216380920813796455027618606032001327247478104810481869072763136118319010805344070997941748068251516897371099888670326462795398180553169860688867959003191339727067072741769468459589228156605212002274542709260281811577314127894188177586026815004714757723937325555016857823186524877043914087459055016183350894305438327942176524644314536720097168045415981940855491709269668165531489120370472244113239678037993363545911942603832928254603255228943593209247884438014202302520359798388632646360051520687984626582054899553130590540065423566803119070543274838112197751948624366036354432841415990456192793845638999352575354376124327255374229362445100540207886817872998799243364258566146398102060858614816823562540533820691788516981072107585072321983963923627539405492594433222766828488793019231074815935390292180259597859865858727801669722484503211641781092342007648832522515801803123381190469011021337772614329549097013961160024944828171604549487624726700519229991496547684979440014187444646711428497865222006090140701191652980692613730526568002063865452665100399000167683681127971739367229821723041634716671265020978585114528791353923093881514785183794902659481158742937860951812108931994130968738239778647094298448675802995110903983490419401260182956826885825261249647515649569141371162638493669555440171860024721826556735836634548305235488596442060963734668634383641158323887802695623201687994011264317817312236727252923821379516584007200723813537276923911640097985822314907758008922639911846620738850342764440637349474335816132008844626870560940341003028609268141737353923794740201915189862643534464495345093440645090807254483421952252083118106420327871530317430840591732781354294341468339187126887801822220778553124873298340923464752845145371786254497346054780120423912728623189399502308360551270689351225108058492430783591058134406330146420921888578775555790285719975289234229898706624997179806013206765374376389772245286676902609768984042851159827862612077360103191626831822316474319787646615254558778705310616904322550913823752382639278664610054852649851457376252894666442274454765828695919856929813442834310573008201935736948091094582521028101364940500209448423319810325225223076593645374668963348576913808866088001054902441989673549676021344017996389267709535305668864209121730414905608844362556910621076414070997360243850577800024687453808918713771333506121244691960568995497988306899672724351693301678260355801052090772750819338305252106738162351545234373714876853689547236601877122475998317952478570395652418899118103871378221500695242598557601576965114990642032568172260784881454496123886450568523265418701320629093907370327725928857256686130480630658709896820459477566118551768745080044225071610108967334882964310571819672061049707849724996930245810562856857377455897992075292043953715834848284726237388302378046542351486454689397093544840056978003258555174215408520878443338129093425855732002555662989132354082104406029754983055352037564738751419256179039044829444606909647985914737779422610893159023175744405285168586781099151008138107569353751997607410053731324172860162164705165884419851084136774265392611411176790172358997030451172491066552606492260115260756731326429021560106468085507959962367255425087290290993015596702562943058699988181103368725452513594526531689199202998724500354436596623380230837789563930565520943463834383556909622008120449288083955972586276403803483728213533808328212135208290377846087327067109403348398736240975463646073593568398556808470309059486371994501510203616201959788657672857270083001534198792975510940595205178463870120409475752608536669456531329724532703363352468329449551620814096277597152892076740241474195685672286527417331008389437638312323726341003163096834384586071375559814515268329609806743693350857738218115359983834088433452323335361573984435934843510278165497239359683117862801390910958994421212754510841755816481704976968496701732966210918353432687002112764341583052713805561124700857404675486992285514456475370728686152841622912676972075755126958393838875168696190616475001245320964072355755076963998700100915422240739413084094549888964224619627281351268718724612806344498326067791117033144794826093667614377212275281571547684520386422478312963655534636093257846868672054998631292951319570485015814219958557516391317457217589117319822275344019002249836490449959235257251408723001091542859327293349911802007115651311226357807284369566048296627589641042739068536398114638520971844260230729760481591889564483830523233275468503562669317926002488516953344671630439594712124374855113109524274776125521338354975609317265527221290868635496645106363676036934701816004648712808189428502524529417968736498590887858148385777851027682770598324088383882773912645592608101254579174869814732289007190836188806431175691363179918238751144418768488050616317304513662477918213244010235417605111276222547930417780955810360464511395707622042412772414916560529740759807755395991784946644141011457102399238517379060070451461323518261344635453849510522263800954821482486806136520738637894709771051380345217274209434107925993762044460684601640591774551963772857970250960624814989569812070463661398366929809088137369808985539057444377003820308456592212771634067036397192775670753849970173346079846630815431500492080895046366608419839143347562367654846584673293339332700420800530922978606576923329342982604122419095456954629671607824394254364849295249799195835302446573919522536471689927296745380440082429152416668209454398379948805504514411234522125867504086201582985915722354774404777880647659336592142579579439833139183754650525132131024065070706390319887804265926012253497873974258283868322300203679027263207698867393974714389509757643266925463808104778653603079025149849905428054718314624144953281410716845404651652172550893423769872146971758477909489587246313075905500086436837494570203868620337783423388865190521522713003521742854771562648540470912954493209462244544517573949540462237133272169352338372364356188540725219734820094392033327991452289288261475097422568756554590727295861002099485916822751714877204247653474694412644862907332734109415566697640907832114895030512893348486871442252341181463680979596989212206386556507871327476154501038007425206981368816436809832582462992593520391510131624167821257516765114053670646240832264158157110426048654791820195265653464919781731244165263861658970357067721615509288410813654112461725513050873131163463169370972306888863756619824125756306734193676974553613906177409021335292356924562967447340473149573537205794546841399084886512840169556201132119676344419380578138982190430079151184782895973550527912890107117445170676248327037156893298661539450060747721229849890442854545803700951776171121559430109006491900979421734067312733193405586901816492102366719011309339912145547969415271953073083405669866055432048916324354745692106600144355203491916566199461384121555394474083310955293189557528240301276929533239218285817566797330002228400629639227848013682868858364221177105091711487079007436737743670257149449427777381636670627176390976983624594396116829411694585007396057350680281155132132347432306099032199359171560865840964492194709382394745652738367813752210145179242795573360150717819464577398491036856880917951465917360058692058559866219395587249413153577212858405686573866514907836857369512243286793369714525084369150793240944763777078789955284000677433638674256774953053334101616499881538926306796002710069524098444330975002550514689440894520873634889633444664635095104394984786831336425182136047683259326358511950100929904513801867923699911467835028652125896735047171641463965821559168381193972974279186306333525998001188310130643982757228386151812549079144308522520020483856619036827198958138453383348894226297992622412855448286869671161753623405817704986834629012494842155895038711485566726872938338880776740612546631205255415310608788446605792447573827503396440672990209207490586490593590407470951985342300671937783924750001003117544031407771433699597416945049498351232998764569092464634043230338406929422009112809942683413374044272157187647324762953577930000430580141609363858131866209090623708365857220767789149148453734489776832587243921891754935436815319185977102406099302519068402446616314193425238708982111271473736662306550918000711426875929722190354566485595855569933824156212158631927764824948532719373523063883057957130441224366737243879410713321753127480518028452334425597711974067174867386610033893343695751238897944784693972306837750710754785552807432496138047189912650994786849617196479742342180499134313228991468557048584783990151309212659919506422501765413083025037087451329827146750567498950238794501743426472173380346009653924904617728363474281311750426867996728999194719662606662885086488661772812796132037841945076116818072953585539152434678359589085112124717938439970224569966686678232053809993064823457862370565560377929407322851942583227021871329516402250491064596326490136884422078341328161968521907432805476281039832831259464994688333777460652194069869797130858837750510245233249610729818921250761914221907655117613912469446454390862883623118712227468188031743820128586479140953041671062481986507015875544238274479254837985752476693331069822570965432634706475406391977343246757157310295141118953120115461569195170371160135076609322864669728355839598481754244910480014674725479430572297974815689791784467862866290559046229757680525241195192165547716249868657448463634185193501395911416824346021307314778547832882424177168810207727582818989609268029646946266722803733437161504626496926872831908617036572141403887615767110927688797838266797779341851389565965209462431828665401669984841941826069297259878161648471848497288785524239128391524968499390176995218406526015281294140561575225658218526802183370433249920624512885211746890824587469693498323787030042315871458012903958526605543199331530639220898652368203956522956098769184879864814346271175192642521040257324119326621566401468037771776025275152115271184797776293669776799612729349005780962630242304098737351581538852269663914470370772380279625360333693525052665179881370290106405349997466409278266152537958371128013919689795451880644426996880881350089813009243015800914093634313123312368134509811040849961765096342468601834993632457893383816994039735242541760074510082197050105925765429324544953715735002856057085698825490564306181076766031016155535920758751908166359544422275598899616322401260269489348425699597129672593568256910399494798350690818873390506371004926860694140906427764854628924392564992186306250927239254488180143657897014866545892815441431774815109157068219936131289467579049573756494321719037213281771515182443732977803651808163218192517970914739389674093838119961644570327592574454356476651187534693226974675661899013757544111865889536984941527821388440923687597273495867129955135926198931951386158096954062252784400505661283914135612611423792148161718085054712747013851327932206252363511350376588559743511607508172066378930545480033129758494354882040741123852994832476676272564523160412565930797774500757051347954577398776777003397516642390522202727895716442194939771184443373749754957370000995693695296956699944955141913041331067707263329309221515680097675311214340578555703659310773956575342359812458389003355869859752468359802111105138549659169719327089875986986518947485378516551481838797128970316156719487167530414507622358612103037944120176418343950727833427961478792542971013017440424166774022530610280873414667940865756311666482529300435439231537922611333883534309613304262174924319848932969595529355767184366623852477817946525971788049098994661058643527066477922446363513651958026309042704648962922715321449555020079671332510220107809090957547617819694258757868892532378546948318751878650154276201487166865985423216580806690298464707788337321203886222845335246826032569945152765615356531730732312899789756279018509779818052339835155099927747491449749214434214183370676255787835534792536258935128056561805965519253826788242609814897085798182120747193775321488262967647417804888663617862379911494719733109562121161478882742966929973382875626985041608556901076305235693767123668886845018642622221768239960539063352483287891124540225359790868387681255524465773950147125428796009278549186723027017079672557918187344831884158374427470473789487699114818459722499408108774712223484280707425548382837091769122055367804786576954700127062313590067797014259038363429723205194783958729178485008284335029997339819262019993574406066558569295022769834917926261793260312567400751389047065144110995973587849556112361285319488733182191040787859287642527243773583514063829839657624397716913213839200776021193818024811418083933976597440168188772818215226837141387415125462797821240790320340310991615633979435411198986011997874761530870361943190245340446724960812312636690626579083718032624523660516031613052480872279000556024075590875909825483396922008440148065697610305207496422555795145419912593711210549016299640813467435428116354706565873649857981988968441455365849803036016832890886881918585085910131074401399756459855906387122352465828255044131382874753002386727427560936668593396703092227755968682600523494353692434665867845999972455496582975324266141028823579232070871339959258791868782327178591751333201710798604773653251434717245810998565770397246955461952894654460644601342194633954162447336900370997137475961621217151340888400841381437232228359250804573597203848260524081281971917746826654724778833534696580120087871698184471974671038129981864488575782619479159117427100217470267791323811830963570399657929884143173569515833751622342142299045475026164507485858793212936567711709110939367722927760117231813902615205808451315744682258607287008061222590491817996034687215194225728919555245253738068994421745325162266198518579387696735414206783563024682247356490673537956806346098151370537909684333556556615977888915827458461578791889257656450047000763360428319946975011130843157708062579978663178963292077820424000681613662507033573557363929559464399230292046760881353975672977856751620370719069083755189500498781879597828608767547644210682913283331448387737535130018696621378154474809398739510924593986328131109115930327949595980348582559337212688315281438196096312291395513301358446493534469386285538416109745897007507755549305074296907673618928405000785070699616103778711109110814613383831664275077581074919153617804338218688089778456289193052171139934689576725637914206230060348898928286948523539529328422140787602651592918021545336097950015121283575744509902393206799063329688543212839717202340677910767503115516049901998551954084962028567745923417447503128789990279901479702894805886534977990921324708630969839137054677997859502325446145954874405222444406739027368918902135342166205420086305053608446593530640666794291567080907645593896299465821546233961207815820251312310834629812524849818765975542310094289654118147128686883051302470252852595310069321475506478111867562841426684032596892276896032021700133146587639791737949883488588288961763035036379782108758529683843923193355415670073205148088079499341049662521457796946108141596463624019348477509662617552007350078063692486044158672392040457029886915423495536527668676962399622466621029011869653212184234046462150239586039989001314812675025719821618764141399120932614072752983609905869155885400150810053085564661641186574444118354181557117488918378993929938025933179210162811946196640282212545871197812287260901660162850713852095040464770925264270343068451295705251304268248648848552790113133017055465812159474699356312236690695833773609732571914583846682797800581955260808449337338709203135628679401759124444932720831054197640871797679922087453959856985419143183264657669523748587575933848564564324015377480553938119299698938088073227401040412716725663535954127057099404672266891913888061431003479347191019355207476836404427215771697314837709794672423624261083755257377551192733096309055817611633683366536401778078682476076966781773073337942581566750457191297647747574310624465869441426480342665618948204945939894938324223227753213490207548899138452007319270763909472415621122060073237317914941880017187957045662129169513827984463723881923921975850187953379567297430808983088908704096870863737765424338747629918698104514788416374843957719990216618607199146863095168498891505354160120438359083661614668832800033817954370362772417181760890158493552964381373905265084574851952439328908609415955589577675761447805054460253098099262398704046180471024707127863053908442853282470099952814087124986867248116728757307401327196458028669425755938879057211712768774326402550678838572966655177357811032676160523548709675190244857091978165611613531927779247743669034659099319315285260978847873680764128641602152686794512663940568106920754076743382891217358094023385441568326705449276459211800471754484475683282272621528109869403451554717858058794075613526886077441350440352628406231488178399066407787940649197163738301913051099668735039490077159247276616964530367322862156034289352744077779919416626909298918774894609277835853551089461368166400798514896067894524292069218930996979688880996323103535145047507394893777692944442920458146061408888691530162856959219572978498708690980798463852955613520190104398173164166840125972267675420213924681713085172496951302433749053291046088929467072504835689932801402861203038818589382921268757545386847270595335133173578592565558875992162894999495007181670324689816004772086252146281947607042014521203904247280981065400401115029802928391587595337277395393669324072388716477220508266221633435080110167955456954573145982550254173320731521789399877396129216141199074145323206097181890416888675941030996930252505667597150716899162898722964523429265491762042919498747806812709229777330440553518800395189322463622163905657716552014280634970358565435697747512448815721129792540413019709028591530782695515564362777306349842391690671937598451012456284570345009980571593454052224606924602276308161647863577770677023918494910834200911460264903773504208074639474311400392325552161158520055915104309760025798954017510267452660754826382282355810925434928616159330962044294862810281424351460056003932334666782451208812571733280211453473437239944195079070437820659314896457575502221680232914776846880114514077845436093778370434615977237185963189942033697614317267756734179617184802265010790918143830194821286005488601537217926457138671857886643050818466554632340541806560970006991350467539071598899233783320547104090907243624370412472714142575632056615563637117986859370227082056290234199493548414436003535924179671046874693928943644836211783559975461225751928129877750720187947909493758873428414242151452499368141686701656349599715091719779895071271686055689959081212761785777588374546808442477001670534525666089278488483426724253473736886721148040101585533119266195291773970634238854789860188565364749997019767726938958648774793289873711606329889747302340766010850541771764440162039561458202143220100064546012491299034577385315298517741284033480664040165344386320341513365879077998506973429579492421582111310056166439295809541748056545949733431012569396985051859813504871819243775990876910566927918580235607904436761037317781546756084894037498817497127218200224086159294821016298634393055578676016973447608807049399038006343842938751499667757220666506302224359463337402074528467385632520144183302955064339133813568883028712691330534524034368211261160723745824176485385231870326909026462348053850108249703232518445081786328273099470718958326558529242713903075274151976471442002467925573696618305522239287699530565980917382829916853035483469392156759556502894642790492078801233767728719356443453285706759702242550419093321165243189986085246523379703586691224989091471300584095348860385945657801684446699095679398695338193890795204382855796039259567324162437049893582319708735317004772759265099731541367372716419595517747917265330355705899045618344513575841916499433824874987283084533104995238803967642956863785083072534649284909665010013435621221422737642555893714863275483580132223056713080680144773989654676361962997672689686002550922909234422311516081464094267617225153367813899019235772852446145769493271452094561440570302290580933779442405490452582688472372806332102648296290603856615175231244268910454057006206439260899845994538863532117368348457539207467398361706093761796166462273078226518385448402545844964046582258936123524820854820555461143971568819898115932491814554737498114296553835549979096013204451755618250437126567082689096940002140626279818781333312429639550881492146813051349239424231212634645993450918444429544856750024267076287243887070087138562423719688650146251169829278642118441203722160020397961422223915396995906884139734154438394938138306347406494577433961995298362087872382023341496115309354615850320416721183276609873237312153867541260517435516501276254153366776862016325609726373391627426865618576398814938673890078621670495017693459828027566202644222342858412431414391991243634736119615890570850001130171694663504817628229105065722833030852788109093660015858910797440050561579565008406207374093995096522021507597204972543396978003579734005911154026232742757519943925938552098317852810543883016876141219892322278001736629538537798325500882436920891088599880318326306868058100878517094889386716707981954418063954056830221919136121371092233510492477889274484930898288185171487215075317994190182274410773925796712150049383050681861454185174091862619915190578640776244153033865253111399688807945888651169809462463255584833187630801833140209039407409386939071460773067003148565715483686412831166786781034140249943628825801084768012391763608868865937815170020842900851843908696190551671551403538716920198035573643343019123415598399796648685872514206199565680026598727246170726044999515947882790992627146601751539664469342251300409157021095275267599834945939541353900714899627236048946906780871312554244111190737029378287048397511392504317262481510923617698861767148272247220665590189531146033803701524027323353203330147930316905790735427053323819651024140423990153996687733591859552335211136171789083688211166832774678780132378801223967891963849987530062308657029380470234760554471091844544670941238734713600732981072581416869490034065531547104870885155489999433889509629408286837642168223693549950004093482090043574342154647100826869065751963815559465285356148227550575296930602243363868399690432114339083966710884204118856274388170927834651706586243448400566618147493836198653377079024242934878453503919829088614621703621232240506556446708068035008936596005203895133395325397975036663890983885138628974269463771618638866433348523791499542370468111852040416301045468380819351469005977710354292156728711577770971426698292317621379297793610221887074349448001315974119029672531278642061215324180458502325917900777632096335952956394404908994755870717583055049340954732391534566092997907160302124884682311302644226829021085526030506657711263453101194520330567927242742143103538349511385372308297864213995643863694640425347274091546701217242931550520499477406759358017452955946843502614875532482373507861466261980525754029802727894796166243100067763696794061727196445566521060526059997225759894801061183157999782833429831833188949450720359590806397413682836653978128377734086361393546414289616404073778373281696561643460173901355476690911252789522378528971064639662829113383138307292231491008667824408872144494242567590352477893619274644309786590621041030467293787886011738165563631963742184975713367042324404156284248431556711788608513339192129110426570583744526342764930530893374062345812650927682038258583679311725377973520336818985329016961321184038645976912646274681973848000622324999130308351169467382582558721995882984112596384468213233577557185841430741161660658153563310626845906327749388330810898972225240416799669371921600969196562658253800047884550322239230558820227098194031623160344928140551047083971480767424228506505006312323292424426529112518913199724919999280862970600510250145177398776197611892098321848962929412779404297219459269507502963779873166709843898805926231214995641886452919825053505747941501659869663497332221293362120941283084984026879834344645355436130071522339567255201481842398689808309973624086669351640619874850592274854564116044321951757386241337473022805290691670026714880024053270638262023936800175324032568389157652609910398469243680576371251372117230752803286452423495127626981053118278969789594638237314217270572762447807056495627601764749872914823557760649301831620924817246373219735424044011369723665901355314105740565071633189181599776640829946278995735745196045277391556226365472333571957342286207511426827739298088037529666628953133402349482800096414673227580699609332539665637760624869671014645845170039662246492604435376546214483879447084983571191931332266474538771217363586038489791027329861700967965025191808777208888145244530487680313432533195921791337572963970553774196832037671960548060820854513527916607343037861117260933341351751063760172005342024828145925565634193642631385005046836353812284590855698242930176383268885878701306783643538561785714207580142812917936376020042952815907921370408539708090097550168477126187687379094714484937557669235487421542039099537515392273587185019908439226815470308429464143169885942304840564032639265166319529842900695697284142607961006483027955434013072616480973442795387486567080167894159230887181097623360132887751664768119281442036747514007715562353152008295380985280064124779146762663911985992034870827648939848454430583940910629521838186021946995393163077749471697181121778999834156573800359519470664607323011852888993997831506380348896558130462287130854845379094973333185199552878348229783971614453986067874188610758906679804177652460611663995018695110087163545910803033259694411908811243920851462510378432283108721542731016098435997848373899524199076916690084555639103664040571183293641611787309213535359644798038284986380508928585322850519522754821306728345459536222068094992575048624143441566364653656719992147466438700192709141869542384406250462938212778494158556149837860615623127435432756707954126878514749108494697195713029592616113713608591866250704648482118866332247137913361281263220698548792245489789354504262975660698542865920826905401787605114495423743733917634513000072079677397674571750383838122189113982649843988395891546012348558106863711802554698494008055514903117535687754992261375172074857681949208576969935974027364476463940846419780602425096424986229542549064268756772019444194421091946770307702287219644321805261476101840629198543204649038510339435923661779362347285628198869947466768960356833610030462361346471229467512593439980757348868203827085532634321558892905161945981721060578882042394109032036716478910173351404346219996547666131563856962748601777143827292014824498179766475427457272301778336817669102916353395680618219890757522496577147878832907191482811840115813572905181763066489063620251089579787261285856788615314411374367299474184323665690476434650618513678000986614358230360769422654261498087667437073089285302897638180722635474730562302342017574768743572063942992653363152175293501892229622345882393606938634465323834620918743984357829664272752904934507336993228937388735094357538396542108379982395969572266516140900065687198687981139541172741589131580697866027757861110784477102906798761837489702730761625061335309425857204941322299344541609415480332704224403207076813768496163406119409698308760893143804822071250918470019186319370367570861682879246122515416809769899104672802546390736276343673600707446041733640838024393549410107148348057100058866701015742814017275764391507005052089551425543210739498983913359966618122974961710932533533156254338374580857969512329296975519284475865785750055544728668980115141819574115632936918567682266526662554892540239438600185306080163544277425551996550490387054263964285201805044153094942402124140204730993032176699009408014325259810095671885224014923068784012575448899304898915679145657857670145879839849213772679527762154517486194549115941759268539678988106195815836652209760044107711520381265545956537864500347738102424807620220587552996471065640392017982439089347907971002633763881178720760791419455261699457610391156566611098116075258760716826468830587537500410285100092432015721456142095314424358802730689426214911469856635185161507168465995271498832530523901424885537147724560840806902495967890849850460671993919098056429978353153818965436799082704594587623890786202295489579852761341860497690219056179002144424168606275008786580332439866434582543900193550217112160220960712801370640633174563341204164692486297942843805427051267521637091206550131053218324006167929838317514952922059085288848162361223599775119012617595265963111941099426552226327727122269206157979782523087791847583113202105250136587475054571190218355667864130596895525487438559041038203823273546372152060522005134171777180661762203366142864645958160164080746266853557897108999303608296796373773462331236935617777262775322067397384621918992425194460404184194392224949001155593405157294992386907608635762042012450878060370393720300454302610883487201054574435485583432320210582955313019752788848276598507919601699522321609632132548722730498937680646451315847963500344046202789519289483981649592412857364428824491166916392276162839712176196991666728953920565406056212441790381463557412628435351608878584924410059882132005720955796364345934680806682513676887380073782041319781876818351206735535459710127546203316452223415877302330760207888060802037533994268227761081476432989680388901687155355640938065348136175064935511241515866584827337597683186049165950358516040302813246349738076277865758387456075670217780815590657546247240766667524672237280572972020531204264217857025400283270051967375478580963936749063001007081168988942940007908453565854181543055953954063924648584312787269315348272462088508182558090978858619062864562955273616722350159997157139706057609201746125464380498420825621078323036739573122719149775383919393217602043555562072170468445553962742568619158343242757324381704210117075231161068094085084488755232546120415246598520681778748211277050612696957249956562501839439303917373590681691931862961919608234453991011055451131652700129130103963005854954322039905729111435331702628703886047332487721401643075884068392679558415629104352608682280891926993964249262001828230075984643783814065247942136566353440610670308774903729551912022871731995268364240226643428734904314950746820303386155573226781074393028944333541133854197367149281364031081641369023593063790961490296939492230359249150128040275971818961139181797016645799977850013653110379088709004809840364318239170909884525724035201092681005949209817297200878737775186478706513579248595240165359964087804025952993541451533307267181447750969701991081712755003426509330865931991588512588173673161580637245947061447140097789198483389030442037576769407142428462068321499428789109781127366910651200013282900519706636428574337362092133527917790899458292499478478271368202673338558537934248658038259541230207536699926920157085025717315012934833515417915220450267816575794412515600387394995952003036466894759512883636107869493178203970091704740856651945560143604527984484800638346680351464764888523445823946283112698463731397080008594637008447053895965112298937869398061748437488319268788116327028530049356643795413151787090533875277278308673427428922634441544688356314312714910421707941495079548349735366658248959738366854782829188876819776984371179236034456209773581057861448217033111025338376344566030871955480463141956380641754171663315456198422246345940522190332094519607002546393140077226343606939815212183333928365007969778679699355996711001078958160250457829067501169969454817639220971491394590434449789432366174432546509708164451265549285009478255610658770520605770677424625950074428079953883892812372223143680667036487905404506489569075946319972336146132407316251613970867238511535842731697290898456086856833029642475018334357279701892033943794360804135656618790258239272053648471049397472050337506254222792330110551071170919696848664593029943531782811034240587021645088167336527608285423934588372392130273757955498207073240126811364226219514536235486146092085363456557081921432714001741275977806656736711477137296298242636766730474575937077102812535191955757122670614032649348617836984784596651920471239643754656274950103588221051139143962689040920535881396045660092923142321456057189209518529940112691770980591630836846879671647098233972465470789502915278690803503161454898456338509094754405386885698715464202928899122730310701034925358131657249180591507479659993389442814032123217918515048278923839005398470412822092938587296704261520917198974392103249037684680120660116591769492866666638857940253711816402167610391573597476429636845224406982618875176293464388439921690611790967569598724756266688015403323687361425600462009654159845722653200458989196742161027205592263070932877322126477748604083486618636703096239963555819143363215614027015748575635620277967310713675537923433635389710114827270299435598127971519437521222237249230154304529837865272925168907434724575652191773543247862241099606269486228371858734260863830107128776493754549255671258738485418288125803440661490323202555797382323501823056732199174975705872072710503074066408058178399091740087026512000217242177094427968285785330589583441887461127298153768561790868223210149140464918110305288211077788394672079793397031691285519984961491811213318915027439970936035850871458815990619649327185314392914521109624565974673220302147905248462722464441675010800764774316291584588175013335322781185184133382111549022277129918453109868819001280730379046452168222967501518819490665094075403561312572931643360379574166247065000023594268837977681381297270470214478975148445922137194886252944362902636295457895080990628039088925579805479689015151202797502212012507151149858152778114047419288692529626598369483452586517514889649860219622209948141079489655995189597518821970787886398802220123107568941133533264791865842462336709122853259575805038234407259496032576892986020714665717114617668882705832999033077033134277447266532959964878612679857985324790066348286620150840596487540609217731531095148328418581494611351163462197091844997483418947531282917759829135307809326700985174944140405917701462230410006754194446210897576211355570012472322247568594405856371346927012135470219178161615155557500460484684631065496008617119324899416946202135972865434937744923038686500590883512590850895078072478279485965885123937395785695281484616447503778455863960992728857426302323543264990897727327954299613169373950016508475775187002498395386304535299123930541025315796751380141578516103914728060103003038151255634228550688365420330217905574151547531639729916575017650422595785575157823884657869738584649273191580763303581614725608102080195216357879567426010234499554988859000758732151948560068463927396407766739044278076719102876207382967779863487406525261336353640552566424160287068941644474805763220125362395364981615171977357408008521572889570656292721953917334849325646599309800098639899789540929059649172915049125194315485606935452058952451644913490824733264339189396647027723005419183066411400391879030920869382658166862643092215524385722706717909316880305412371225055703134016490644198272487262113415013926047588466104903225188568892108837421523857706187744785074661633653551339586495916483834533803530622088787296894554215426185930917415366412816408144328448073179654198160854657694951713237926380808431904938148517140181604989951931317412602763472056161884497810623738981329954156925705223783566024084987047771722700808328884975997967551449718446389703512219411563789249350389576529374491011620306971054053410791919936799298753259608182508350572187949835195920848848274384624562280716539173523141371037235416266406483819710850165779789779752622430960358916555995979441073687259857024234928623327356042514696305929221917113923036942317002445006620000285531418188834456480234931622959358297622205315830910995132060093651180836076781321704178277061414016346025828203042223492075498967472107835543174201905015893526795439413309084354028807502848361706412016151135280396980951684422204141798514977888837748557197398487419779662502714533310624996946698225677235252389637740207564244907847438464198764281778971295072654418431332960454432797261713761317779390278106698363608971395813383006610187318204440042477329149383571853053405677437192109943835932872638052176644081919025153373808633622715821698682592749022524654192925968005862471469460629382199986331667559964270491772466294421128040136424834313730677072922708535116917902384882964548597441129170996570020052029890095908203686946196072955653376393357643128027797447731520211046632953982965918329670209436609994679339517389753017180102702361923044150389128682656799904933986340118361828845834308889210210305166598758048833310128763724232288901416572655509304893813418859052148140590402431172314962467893696896761466010823340352390631209661731471989593404777282369093649433238490377256489065414671196774941134615712669718955889003830174469823991515185130160168191313638762370674541243505389823411210696829669423367894318214796925258652634260499689763190964600041624880891328367059304731168286699545583091659002004573430417358310566486084210251942798263086097319164714192639822047185217320141092235794594566755054361864132700541616293426106544473890197539352510790254673757017909303306620834172907832145679696820255575671229149902432721520416084860301098656788700861243975469632832109007279742764954956541373472012582070904509711600573014034612904491028985035775537595744741161203542091629377101333687695471147496608398585816183204900265712188879529571749826480374944344036890626425307887712441845775919958149215992874493340165439346629916131355763842766167125992189304752089445796748091620331438797226987871787889564447871614570537038668536453317060076687975870504331656199748298977352109380798245820566515463432326523192722613294065463095846961735274722635175095024504711167758109242036900518887213154595801442235814031095058895432131681666543924738740279145412845480568324313762769278392931376043289807171887420576244390491027917699403372703514079227467363840921180028028963134315258640204945502876115670440928612964287813122448155207525547856642289385791984602774635338444903218918478741096323860294107136196578061199883925443869897951020233570740348786457513706334675696294841652913956210131028845577366135044964405070851378438007461106612811671237215959238761571955354578370698245241124089379561712009603175485428457238511195525366374666000927046894694280590726836364393810728644707684303434981208691128605755915896515378903972317216778425755700938109393392102347110435613887229009973040963754063217315166728637769957129189719401243301718706498271575997172796499403854320279076418062503331004669589533770566183503959545268221391016771781413194784180831981339657374943017117341717083827856814529860196664558380848587756353651731459533532683077400307555465315264289253980112523138273591214878607205903626589376756107248973761044586024718225415242413032394359934717651029702116339848332353136760681398275486145297978532170573549782200891285060404378297912705605011178724407819271668792539296608308650366841746697264532010520265345903246988531541716252804086989183727460021488168570567685334902533154039886065445856761399210233313469665375476077410760126066492081740870792086203457814393869532045859955478707029746544668566036287968477499270490420677038122023246830512933890307082705334217005350235849499318149925285222901625197156706838357239801924284977079262853542492463896663963677379362322375393769568740214978567884265209495420404588943732932206356209218511216385488726757106200014086926975357880717240506474621134122072760899769111396710942426463781425089605416829237650521670969869123253229587472352826492617106702418339880856129824648209443563656393081563524353081358007123042793523895159798207961949328389527378531782569890539242234863268894672238369446930701064731183864271383729049172264788859713620677267285158859376030053358476227276893146116771338427345771782179508002932348497919923632414966099931312350977591676111879895525905983840608281856854420416196467677586768486577663501954801713350238533346268968436679156762904855622594160582261694275995880294818971682066516906284405171650370815859896841012476150364246223826097849064461040242056080833104626489087281729128420234756287411574490841331022882951657152059161992102637936301529566755060927885730550921920594340984162553754052276719251573380585339648893945211000987367824500884013861145608059781967248980707254420528886724892502089794398930971057409882292741832930691607305877265223678574290708971315291292434127249489318118048954629783936795309361019954279611518265699186517230023556060729570589244244976630830248231742368612579440005182314536210154160917591021039704639501340248479774634667624932837459262449162787337909915870287998185030460145076377148643883378855274149858309244218474645757621608333068625253906168043409796575741216940335157780339817570825364770634983005770379847337108038736576301537108985615654590269373214494135978318463421435816183934828122152694510851616891031817194778084368365140003702687924490567743142110897357199557734131996190657853418851033021370935368770542379086159580483219480577105164462144607515569254615753900120164079488869517271405458466305123700677854333776878779720652692877408602989650876043123107500601431555917859779799547136466691591418695878018165956878280190759336449784445113793511292720747716877272529981481868928621958150830807521047274972373897798489941161175940379989332846572108356095631182157765517424207776863007779226589509912206435268581704320664458298368822918458348019307356374312100465652378387221219788250976667080475619337674327377051467287366456495183537661450829671145825952867306020728855251771103556004665946913982569677626671121320731365633765962501917855259576742604298795449497917262161834050233828744359209042245798544351484066823332721966942186818667494601537485277435208804762831522293081809155465068169536278200571417559745086430630154530809006948935032315497688925959796076309746623070396358876029286061177725218925696581892598567690582425831639023140968015579794705067801606270071829431857335721878813796993907749049787587292133154590917304761938264401765073944691312956424308785467194469656333833321786942722325637241522076347071787534729794294750623351226509801966108638213035602894195046856519376961856296760769190265912139174147560666541727486379469792869634041897891582309927837852390508971584252595997438074875814214970265571212465036960920952819901196224275215483075049054783165392146421252894478578038900954139454906425112763488842932653560528077861560443317180513908370335284533457576825741125505205948763844632166165430536187821427461209501188860678269315383684964308007455301985079186666657479699016730526726237183600749010548610884746931874066642971206232354704025658077243819856755326602205675821012959483432452060522047337208425064515241581857661887296630599628437396244611664697008994968011969126187795683904755470461355397948852600846670815748936613864640559666944239557570752387739731416958026343242034955516089778090754754983755090357731665994131652421271514300037787576578185584972093538865042037176536067295905326391556211740695449316962350536096347061561522186740499908673696294300575572666717422350954629061250621112355543959668670286320659085492278475947689316002894671449717880739434390872263667917884871333146815442487100214578129302229861605768909868201777908029054768771336418873924396684781666982529350621076440578297845225728570634298095822100806378433204489983758596490411887736723548202031774494396628682697168689102978814377025303748414116548367414867184215645058583176759891949608226101125695214644519202128822003861930974713036777894369526479746855344815562045534896380232755581269068280979060889115017802310799681200298831974584396198429798032643923053615681516485382475263878901465798199848151746088711740241268308593957850574007939399730116275674664612325673559461708944385604014693807737421787399762226842177456625979124737364211827584972596422534012149617755019290192908509702341598759602485318952758503897275539811045168017065080156289524327652503084815891033184274106436983018380023230253026608721789364973243932197658350667136333095556368717591923433894278189807977749926905782758786881955882825845632255071229048579109568746195174472836849641694077954426198496839091460118697459093475223196064544047656978511345240999147752306086088772870782846907184961162797428010780438819368789198262783168727126477809287982432438549268928475254759967866291391548782858809878176267594916853945930151942077099841617762104227083406011266523825719361781801616501996668670558918763571666791820032452988760540026023588592001981801730583185793333431594109090977328245606770588828382902235535627380577821594414362677866105582311669655461409791652957704078548994206462320915298775222620214109371371137788515011042950629580728366731484225333399141954648273130968105672388911791625407866162979655436032386927040513461906997097710616531741319379654709198262042003231144946110342597205764956909048854849872995170972814670615647029262295257063306905574047313428932645932888991164611029473234356941549232616944232424196527399245718173680020750471459498710656503298244598256985446222865555663177581749114040547928446684421914369610134458620385552490658460932824100531638225994922887041451852338680212591814819531671769867734318913548624957614575481247862250458580788059215293515898089539629558149607850770476874147625298029233778329890708626353722868455707837878620870176988362448144953007914878962601016706167918294774215092895068789179702459930523744722109630384191551859590012525043737244944707305588425087944674870323018812777786699773929817883297038815251306947494351090277314240141593046015163225268002411328008651728551288326227242800136416553803941118047385450667449848250310388577145350532702479179161630688484810410606419187383490266525538922381416834372146837070188931733698266878254485758038796947486652094620348486627466081611409837181181720223744331980388470427522081345433387152370707532953540162132545858911623919992643138745278960640860803502218547012075470317662480268213154135755642283762198047594823081418173348129205327332229462552692218694986950931750536153723497815833731921409183997120137564133596812608692214631890991429522507924489943847112019577581216500159315017703114766607881673396893361875832999889290195195140316203629310695380525529294782838279120209980132789725697624280309620123240055543711615356091556795182795799119241944026497554015973925202268052278676290215507502005915047035847192537014404376652467485376293361165705486691870525403371978241844504425317370654538660187445467374431248097131758649525413420892106857817904191542540248467599799191866976420175310715284939722667300997973477969098078380597020624844338009799356594590866949433769377223826147655218083167606717630306745213202976734926957684975727070622728366044528919221419152275118671184808415734545302252226377150331762726567316353715523906364423983846040564568688701142245456924962513729378772666447894162930152249259972090029189261338854721508279900219521884244706569357800185075184538508464682513695880098264251418505676343582855747870081819496013358305626173049436735714518405468755901867084413291013430789620199633356098894680696815112117402374570261725864481092221663554281599142944622275921374007042476383347926587163178135420385386362083412065456870721812557689645948753645361953066393504658897820236392632991776276400131945220484310558844622456555807326413662070390440868961872470241511885398418597786022991413014627269310407774772957365806217023180428492999788193731613089193405432021934938628005799914262800135090402812501676209263306217959939191893459117445057663405875700749939239695568209655235752070089208299575088119826249962910241228743545610066434681891267314571352679893742383262571218392311153105449793374998206104383926162621867353296160951405953332824832989724333713234025995700938107063996275245459061239382863722461793715717817779612676047699448827248470515144183806204242739344774741184395652820001145400231800920164722293302497414898535674697756333229157445610059568984656281299536543098523310389629237237419024474769657457943171995154762075169302756015750066024902291350099810955243717227008013191167295706316015709611604381448514410090490965879449219162997671953741914737036482389683950241881914297337929703630446832535641288498514379542832617388714759475104502398622085243707034805455230026332900657888501919977821208567609974144524632939606872659769030416922734860913339485116049651998856999327628219916703209419309905524965609533365571328118504885468443858490964361518202155517021920363402751800256014092610840608562970826288255909349818060144086094192135534815263346151927502332013568339924608525150842034380908347529644949437214521014246487489539173952719532143485685773556666333492901138212688131746635774912252684356636879289482627665891798627700134676555223193812056162204350166265561064193259511142532570451376980366274891350594331135431290670761703341379956919915432550979771810667616407941930114938711890592619793340184182298125897270288236569068336493992538127064673243998841083363622022881603850238007583562096417922539615899087821246142375367268190031152935770091848721643934566584906629240360375702692155877711125661590034719614265748191482220050041194952880824241543981352587431403466740992070590272537193659582969466563834669371052048502814956471290952995005339601902876976834364917841059724743376555456598898708895548599343568152752544076885419444214842154430559855792174378603931583328062593107768960024933338869459285173301612624912840308159967417284070938254250181088920325990128770255333232919065189064343214645866947152261651621897853633516895953505108849747398456450750559759605816866478757387130654559909286947663551840430564659612548061783064036296983533710873741027504406886915327401550182192279303921243273989919939889589605980897908909808727212355952129941074337915950631723525493515475637795840673696404955754724305367731707343424924715727785305826679459988008332043715932100146035932534985411422774556625976526412390613644059595483953583176514365814295412665718324793329814183211889306889956617926566007233386430596881248000242289384183426152466992922025715941287180513266376901513339871281453634988348388051821000451655929592971709409393285625382933697397206317515132999362388673089022877541139351946573795903089777635839007146146848302357722562231919298458374178629786322923793725245844349365422295642602475010583990687725605970405717830485383296943131712089937520165168117579987547451585828928059566431012467341575517707007756993006931617163680601362137094912627685690338442863387405733626113290289687293599549184444927530649023597754053150040001327721211416974783603163198159028637809015626692927286228559068772628618996930148524439214553998124171612989031312055350427595656083292906652013936504891285805659651792110734356507863983350278237485098587849125584680202534789439100086474279052567415310463346259083477444781556202961282207984316874907057006008122994391289994797670252453394080749128875613378031784841603255198576287826597030712998695879364554935402264516376744461132142735028414020230608278338192714550629501018107363010725839419364526123422195573514391142637073679281608229004399634650974795045707263562278999711379067453936312437909476065169481875650522195478022857007156703940529053877253603906243321098775041130554923566666416544449948421176613565501261973978801246394715876947178877734074342158029071567159819845777553701713920029934116825473775048204103741860486318800234062759356802014269182208257541417185033617852052867755581847421880408925839919711890426875536770053375852528619735425085112265967565843879973581509014543752170170319582195350597721059579114456125096761024741196340502080753372060548078335400778617426480414631758628269237811904112644698801728248427099949767446442105676261184193446560135640703961856038121838925717268549977037209492877073250046555555617326197071567336130736750083456523905004286298953260782798144843775839565571657577372686849428352478762709061932832907428277078179166772004774318466066980571226725111924920746099704214689173620559437844424793173691971281040173217929670674285941935520032179457431634314214080391406702241488768400375500675002671124242258821403920661097864463407047052229807823738921755466498980497018709100723254168543147274603811781750455396578728700544924987502621819378687644583225883820998206963297245282395315155569702245515347283319702838045504937428317898532144941208749256948091753710700457385594193835725343998037091790696098890103203297681979578755144456353794449291808798951465814607173758093846733306545278895613192485435875483501709362816614834050746526758933205706434928737528037133788217672785623886044123064594184652645841020796878105492199054557438317499059605579668756372352857112049594600654531009935328774129255498081534304540434163204520481615774467337150313306274404053362753433676571070456195787393672637162094953786700203444047895966042289393786539446029556152399106760314934335570675749830515594256385582235972924605970908486860699164699358166610005164864123034379091681043737405152566761675005389426504267045087938137622525359095776593714752804964507609737190193965871728899387346687226231265616570187658175644941924623547608141734123445735990158370093174722362006805753316908041033397233503552392206068407743851381956586338517185032027618306580848286927425310780235190297646349857631415183438918577845730228877174735935106175463664076903503550778178972248456056452792981619113077804627883198721649853615349751813943024335076716895081852984486144052336691268652411253378236757613947764484560404304284461588329152568806597896142772510492313584399830749983129040097838351811702127286505124917008626393102319781332650662594573382939971324822599577844890431191477835802018173226961048425799704336657571026774447048601911649749512262832979426555025228658810460622713831950427743744586256116027330112474320890118373412246323248131286527357267372739248162020884071919071571616476541774826457888254772716053070895436062226178054523903124823136894186063542563305360671059128641961674661267677824267798078558092106522922233633915267068083555010632491358041629236432531037266718234071050896529738303383085478836725080097638464132098056101659718890656234637358741066843050987155285411756156708365434157707683468198690417380213450645165293402266036096009042653238294533419101230097435980718001659779584361359513047741610133780578165666015934971638321825234058849426407709115914656315398511061536028240117231387080312050401670930223331783485550449048499734686382836841359118477958275653860821125625250919566888514583738298938421558971482136251670279131867696430152425650889858769851216400110441417854505189287464167648157956796255763340604625466229271493917014746242005435774396381081310068939741098554928590163571134817196159866312380356895536466216784289502278511798506392029863461464895742739427866806061913106526343534353097899877092316847652805085535501200586889137658282100297838298997866038763152570546488894484730460415034884035030168176744964602951740466886932061851641795119583506221020859527305190759723724844805460237057541014330313118300062298841690248007978941150726525223538219779753571174157424020254482932303740526970865559358782648866956657264437522149233429993822407813670619083268953488217050225563766572650403037755763772099592292687528293909890645806012402602756547420634800612115764188647581814843041507329306874320128279165729596919206039017502554412720155095724164620021208919015163775936504039406648457626217189077323300190193761025009394270407083163299199593132944441200225739523684294363056708139598719282127077170233458354501729195848944857493074989450050872886301542063207324271719329920995896645581545819895293097890967363832783910881183879084053409618569907896933794816849438126215950002285905855273640291438383818787323530974679004460110344183848417931740087462144692870000855842804268085264162095519590893328451226781969853979023760338872440879949567057233393686055153834208025425121713651279270582141542860765996144229111185178699772802238060389212506935262344328075265125121674932328851344306763056642480771528311459621812623849098584479877000977508338748177438942109045127571260338762613094668148970597811416932115560507418831598156319457464055976875844153110976833828879902251145259732158467858309384629118675272439165092218469798924569403371042707426197811345905863310378824213817977320800578778714329425367420112071351084792118220781401312122165842239578613130175961328571812442018024032998464169018853117020424648522116553632251907602685748726573529819379455854957581234474900344507836485334555510610069259688068577992744029701423120341612744641574039961432893578772352408035510241881301771815193737532375059883823124984763068617263684559672493783680299451128049609039905838277829713547686033607924113288106790345769487945150092132898011395945458297883145627372734533428720869256121661927921752627944062691165275623865372969590708699559777810680268941381529069051741873307979505470183563666760328585121531575301438043652467807649977729985174677740033784384524166069289978924991273198186582775351988052177079938317973344912719601029846347131929848739129428237009783553748183314045373901511703337100731532867938617671371902689853891988392758192147032058972731224629270745385329516056521164252340769327917495659771475645902246929872400913098447595444202995267249943356292712253822858661079390674059570683711304940034492480454352694033062367841440584794819320650902472303282558037175998807046276263273976382695104954264049146671877595966493039845981208154190133141059173522162113322233214573110750610851797764249339461473403376915263761465300374516690174368335098796205563928921519041441034418939036689298017657818737617642662622094783205691393724958951093682524941030462022692325012919823630138095236747539900210142915029801649941664168224511157912196365453938837951609848780640104537076400738041584966529139038853978541085548519820318446839331300926249606497287644362891191971754507045992361418903173219604789507373025929816956217972848710708562193093877534098429636567992445790235363508559270519683871628613139632528019408763799667191349955254616775292291167727195762678089087809555623357109781261829657180521720929791458387715339468064893806336881527074091069049941437963337547876971033589881762223046563434859445866448838370199910313567199702227558479919932239549874489082829191615346237768869280998135620784859638078483679674184901579690051011685777568706548538921779445803667643521259818011386960861846650816887114948130847297565262111102127300126090548282154871840440225579002742843326151918014106587788729049028874278476945403702255467162918513379151358297572100281621044742417428125186769121768132193176320566108410279752825693877057812733901015934505926971848526754188747868936577521884375391133616672464458255769259596194517811420869975547875936229470689884883503883714534911512093526948440942882830942561963731498743227793228685431512684694514814530646266282748243497400698982766484014948657765556886951495028058083345785845494090303215657216644189563759730026807647290953436427846933695810918463977722749162463566697216767148546830226858080588448143082782474513395626074821646951796493641200781147939159289726742734861085798899560569239593414199903403451461965888946236466854963685884179865171909867203504244054623512148373208974589878777337334250088613163434263439961165411172030354456875363914897033133943033999525375869982507751281758353266886718846081800240091587422085217371651130423637748803944323074132507405405346824798866423779958633788191238128824564967072996094765681026981554640597857320677728698528343051668577608452109595900754663420429845178104186771442038159727691712667943664805252995727805610858323611898087901730956501171105506422973449633826168960715970112000389401096179013957156965791331569602597515296459794638389726397419312413799158211303656497785469019041554063363434394002200079846630410423245111041962190463456375728624960692867811584702264757309448610804629129801583720155343119171690093207578335808118757847193210116018637683811014076480398148809172198893197737553570566053370241288636085516151253767423802563049755766488829617161424364091361405716344651186292858532307143467667188966490480503603530117905332147294274600987581135437718254463942840024556341357054124215149828253354411802533542193522536359070093286618317351565205992521960901204035860291541084558422016546844000079558494191295314580486413777038556566937193206645059314938616704579199783608474166993671556598140224062797891771537393234898588387490252641839323134070503343104695725060752744500387248437299992052099943650317313397185400814707813866601537385946133632548892269474791453248043826306966765247890029774121298429842521168576417076290381367341911249294091960423277363748721907455696842380447825397799577742594254670382750162147229824861423307168588366385435963518064562921444425494004620562261741751204514469302772854132118036739713553778934747827996214889656943963035618246535599762316240560487002752337955141690746582538987826344764690449330447238312748188506573152960855075578177473869726940889655395199034380877983284527955613442941783243670238558220060294203228947409240646357563078972578720136092751821312348879487501049334115376281107506100619942569213916780034784642091224773247364484031045324521336998189964512214999812491354468434450514596739896421766880707110000260816390063164993180786051738487829515162756603018504811752006728842157283443039522403070170844758590033780795304362437444347414163653125220699829393118446209356861623582102201303803380270774521881037425155008933808108234980260735749818849601664626046570816159639922107455799576871858908394521836002195347017810305352407881792848293906518563946333577544204454088955772148175157655094180443955582544894591558962132411892327845274897922037243401242755190317640568204882850847380000410506736456995507112033120858471288979968151819444877866265035653864584915849098986543296126910664970266707389212235000851406743146706469145562340500044711116949528921148939008609470852040418361646295256745211484076091419329573277453208314635590304273384157348649706702652121132752324366791795571822760064977505971838396079028952164261388983509787047387424934059661417503989322155475888416926949024611450062527126582729791406133741586958494650319361914272870505913873327566201712337236078280170290640458753529523153335545121100113830406331837801682482793547359172515209393178157510876395873956877720527054552137116664807446325924181912275805274447677273807456174927294145714716698691123001081743418129489695979942012078423416753934612083728786912736583136207993643603336325834534441054251363423565860123637597194054713533587217319121360697035504946507817135519351855892486038627339236387166007663242153745041250095940156859300871412776767571968201475891553575204477572985059625244172243111344081235555705742426789812032996968586883466636628217561622889832084726019046973365259085924807626593656682585514624940512223736153464623326085185422984653210337889095683276883806339696055762254686298285079870871471614442638413567848793377882955763384640714421617409112110786949804092177863184321075093319877769562033055320694140656847676135653814052457397961815596929781686317431290097146917395880366561350317290532947332528314339296533507419468961432615605919306677276941665071032677336855338237075822018616555282423192004540597995273986924900767558199931124999061779481528582763861124937470121600484546419378107638156967122242549319255212852602243823050867660058752754423167139216221452105203706337642292920776070988444377378132407881049047402744945236233663358287357988771513169095237396255014940148355161215138241251729074648951372124211752937216858668343847646687625069333087796151803832759255520452532337499983524918853694166773971926326726854960195872165949607241549832029003587477762178781009171881990584673701065706173290536416386512805851503934224007825921937544718767457186988832506369127669083353831701447479482225419646589525088362908847545355706507487183146921871402011597331523931441367660511144319732139280534352439070727885087827501588527207638811633222039378976344909571687722434952319602655624778062932400721503817338092944828292671364005218806443914098134100848151685671133386613622520139573975242755678400658946208132928887903242252955370321278543303883796553500204270215458368994286471596537463275725729358713342453013255187989561509032468800949396804243370258016252156979407618749976629217355158668768378770925490145688708438705640352340854204230798192628989771513490156926579451003325621883107600523609807232954015049890286320467074737351727663741361083360481206278456515163919458149535086999308108639058689787185371224945791832266624851271373060045416204960482781914110616276670006768998872609088116421942537867243134781293417933584404619027440920642881310069470597822530022619997732998092847678379173558224076088040783666605154020089926814532241842993278722064396832120777107527233279662705516546094033769252599673293892074292284418750298332833923924563004413795874639141380986477593423119134318504996309156687519527743466078506770953505554741037978649258512054072672996262274247032581279197064662755966892044827614405156271459540686104270892117249915078171959151033030786979840038268460956326246440594211097145909347922433166979210278875419206161505787081025088077138954521892398640509669206116012718089407735800604048392433494738326282914530107424449396262167179049829711347483135387260783206072306799343685249337601706260656614347568753781757209364202933598030559758305199110953651361712928159635454538038684769725984016718681139067668819038963197292827959618981578583497344995679620400205116670344596436562805709698547116276668826675806878247129210881149920173028191305400109258254067473792892617274189446668258042349742433844013457098036787339631753365627216581763057721029670469042743614635691536689754545281301736647940034686406015053920203071142128442560923694746881480288912570515806306303340307423295073783575242894457025182745206122181508020461186744306510472373153326266287890727820244332027812272280265146002958300558793508803629668066204588004219220883071383743771242035695218074078404077036761371975381600318367617080390344756127574427161761452137399600059780382017611990512877883981645145567449235137448356102671122683707525284111478024423964917004074051035479186830394801832624503139726225420886936219846000099911929481997510799066175829035569385157477212759233493089186678956911656197932626194747127100831380238374250752706126724502099942572845128401623833818655431433586811078351478264741672816830898861883757533867424785536864549995575349550277499065035794346085497952969064379317930230273504989471058694324126795860149099693284151997809631956395268430683758816540262551786048962434256798818138554834824003449509341000456339681056616359988428911850640307348178557706940825957824488033473803562747593337528428672486265637285739624193011059148342996893575849334756845389335911649285009669912876239997832269736176426777365061975107078822029887169814570122703652610619280350471019871985806022453447606700779824003145616156741847523590898694185677584136087788397057963375689083191012119485874912870324472810161836360830869271145662605846279128794026463445746824220451074828369217276145385223381281822123222854627724645301693676982023016045538378399248216276211225133123000249972116505992434606367318844169155201716488206565446887611293061314522171596767709420481005612232592051509242322965663841015074412007625974627359189465625450184971395031956350982826992742987538612393783379383185867321742695659325668873922168178048953357679368062981024667963886660723791160216466935603743253238843193701708347847350794148707526847750796635214805852656840840864893485794296173661271819648288573113070547267385063374800178825639988709799175121331668228196344723830383440516158450020893371717049386693617343425281150056951062018518698395685653182573103584850206487555612247713751508852585808902925909379237007072740493025371675550887067052152661217677687658251899522570393112204930217429452743587394470675566323769128031973255069397820811207613412620652748490341868219761625478199563963774891735609130245751086525241112636237241362289549332551138195082206281595400910116876263724399714812718030398678448889075896843762458546199114423070174424498293518548519034846488178301257398940263852785007900591473012008698985112054959265526287937795510056290452128329650490934603817053768159726233961284030958571346478029077897725482243834553614303268622135953188741586112465203766202467081178804587485584738183776493282914588514568689909816011280768360604171329978915555637231227479572789030255188272207446377311342398165177187877954578625189738390221014575976580041610101622853705374700598237133387269857509925079698887107724614965913733129356159460138495169203661898617076937220000906736565976124753768607814251382836568418772151102814679119376413548595086168364755732149205557798308642091707448355235990184457663847951770814990249999269879023926339467627177669686780544324498268393382586843954274142045626137278326334359797791751169263841230859467811982257310940690294024700884033295784732383080918690985490101828991591718027342538144863656080037172895521719156086615951963201840643500578916017793979426232842904628715232000356496939479705703378171146848315181229029055598893420709491709380632332289765728607411729759757382824868722235196839301072778444148785315654284227224682314728232502819435995759312472430061774982194603036975740390299692926459631604280408212783810131357175876054956784336604122752394440636734898645150452459070980460878765849918998685405175311355927287944465928342237221674447131441438637645602478720958758774309659450751244710230486447011250058106924055933444911453974754494700706180053826057883748673357654127687161508096064326618858072292331142200469726166590709738267977086313270446817398626448942636295435764945323580699821271701513238598691116475409023213804337768276931869134797547766126796386154124992191956292150246154342720195332380753302552155778916962419039969518776151152883083460896498320189859119388572189624349090937001664648819315602021295082946793815301893057547514632461902665656837885923463525688873866528610231118434633292459346557799450116081449665657414636103086184816762480541731055254173444038492422949546861050904704013566531579424487824945612237508179896505611712310421794519808548327732161914076417974584879300840767165546822520261012200337207568785105615949021334141369893681392932368267151438471396392160715026958993668139189636907408939287697031805124779111795470486162605527296722171037749304531853247907544191706882183080616127508134992300976324458213891574703792425043906335254320466784168831040354576626781738806067453590529761481759075015847702782935965288153151400348513224768244428161097417178982987239042442780891553465184928665047240311598633903880723543095619070303372234127224028577874826378802921989177239975739673671627377819382312978466636132241007757290589600917547401888504094503880170879778556628546416919237715805846425906358586431328111855394983675470320139727771806280098812639890440933078301456210502781703539510969622707241865528747671146961922845745533234372972675415477561905674959058387384830192740682867426759536710283433837122414711452577724532492510583621098339645522951429339755977056528287939937578340518511784611608003013851341484376512324390417515685329693258843316373528656154295624680437644745765873821730988494768865626976081378230126780133047390465875383893366166713116505033076210622356956193134520706541348491199120263475002164763829338633288409534869885232417940200649073416635399381458544598785076943173338639049822150305865839278970399653218212291578529185746667160392306094805492152764388879226841882357764526467616172048381580826123340445501362997794548434171784674088599588124701885449257185039340775993048695884950224736078000006970724418052641019984136912880772296200351612927845985097321728273749528192463590872611978473815469972763119320670920271189822801016994090932077097159353375252364001749544140931542299480189614326098424418191569888278548340406618109305406130471117436500825413345307933420656657501065984724746459764739516430496187466498530186963833660317335079090090041259847926062068578578920696326867848760044137612618435367899022555204675859929347572386343379499679298639875104863402917618570250062013636814492555502248522330981420646544159978408408349015830888465651318055040133103918882894408367052725518529974904668305552775863324416959081844832501737795294905150270838697753070454879108897671652136430460155930443661349984727474174368441060646682975992256836919904257499532257584189297488851952863803776971385345252965397135869184393771824093033377673207596526093717480811779687682708125807624831262405178531632047419318865259044521848169540693352355581746491510614179204579188031104813373463188985576603499504829807582594631519823178720017061420722930845045744870567869723632726614030486601801609210142357605515149283192283834177691693330000570745899374246218713029915784229298524499923530388180741764474250758563184609529535373844761274984472232894153206867916695976004144000606981982440503159148682380743220964489595975931939996618274012514492547968156288296398230135734303695298762823560643684469140058572667873534881686050745450627460921734918903326605781679740800222810347727993339367362317909973778865747258839086558465805422748787060728669013037643145190743897191184429581514404374850692696630051334194121822339806324105570755405653367136323733689920933993700174299728433145487644196757509175286911010395925423051723834168984204047997171451516892564116521066542844923471799514559348813518924527878421179740295805760060431135924858016902161162651790750283359051745605962432411379465175699609675253503588845674811608589838841139796590817322599210101467187846462990490431769891729428920392890753016422786017276129220426839935207653712233453899037930049695838396005338824845955129598546103063473197165932741008180913519743232425030356483863423691488244335310936596158130936083149434967483262767262805201065709670788168906535699581145622991838611517998889126332604843274420100056928710005002953604976487155550329743115434132625295698244045904574299955635564148684025722472832051718771038365055469381108963774819813112665052727819883779857258775393261449762000783822983806614042334062468788354490968155281155668356053382320919655730312683795875794036235737423658436800738914204235837359830985097502988651425411603219201675724742077324826340137012511905036231541180746512577225493694975628849363604947620323355301644104525416252921326827067948573563912653028829352578802527932784464785690148353058276173986127524153218552375679907182106607721860959998454572768805697807440505541229344248982594529061411580575982790138092509048821585146426138026146472180263638633071979803068897501354909491901076841752722244790274874127307200670227031526516607110208584222167527426129723657499316202669733675200031419546128959801534236185255042188938166081908042102881963846359586357357789783062566049095993587894817547346973260811227017016034937926810847965278254914525687685257578537717888905162944574367534815810712495217576090999368657668275091553175161198398913511442553376241818163429789596579054952505934032246012925550356570452438906005205224611094525999097358761806120302101743963759289930201968299308759148891616129570013053734924079154534822271513336202567933254113468988838212791914988481702672715483998293789547878843275136782549012285246585373917912632183346276520253671282855145296448552193033627759373419203862964221043678183990017878291296924102794145834082194455063789327146556700552143159673497361838676398141893263358368796996757196338714733418043449856153576402600314528428876111895696666642846662050050817446219859466031769349968311118433859532663179116972434355273403902178853881529559470226719026105418972625820609108641111052768575280384694146290974119516856112635348391356407650171070630608838776740532116115999673386521249422376919208836429540280379048480637684231487608795326921720888305322296348467698797258771457289848690898746137762909050821114050215902098175199513572301061528677096614827473073430367344946472581700607152660078508685451763466644111354121653742159331170149956815979125650501595177003443171339788219253436961008434686437992451742817408529718748740612638944979743126117353073801214453949398016316235067916028788488640177322286238921396778341151359573666992388559944087911196495413220079179513277322533153515121970502911967018595472416899011937886741084986504771617221100548682367748619185931001032120995660550135026697572181047071568843905638413971679671132968480571443283928334115615709742070095001818806661018466936481509231513369738813396872958698392282590298769929050256560984838191538659310911674526882520393984316834646591750975073821832519402592796620379643697549987455719994034976224157444890924096284452297046712340166711787198785141735265170791391458130734851096823054748537964290243013040205740129669706618031753698826392759435085507939284162401228468635547251872721230209054139522261902692256163939142127443675046819099002079402943940819911383342560935586589361965320999813613080117474412308449406077948926641549746831383245690255402122732421745836691313138434357228599031213382582451314760812556097045645362328008507236692419009405163812414962114954210200770389003006573193747680993018170043668396984679628805899866600142089470088065100893867474142119679625938249722621738312882425314132688340103796316337566952719427268783430850294776298624757962655605528102653467341615725502045336520156329984123296075364224690426953065085904946223043236927667863955327792602185164045437810278519141949612927813301104909245854506060272289180872621482692329163983149668734170871236357695014827899400803616856413629094620653651302265241477673684759096807895834338975206884443304725471514240261877575039599548915367307734643507120705839059322001537494215587102013169900851554282554177337163126911388030797836076303221799872935894745747855825764706715983867385107100472317662349715636607992702496410520099972856853961779007186396351963860160088070175985697545572694083196415670302797207759876514283425170623524364257027218644397386536647103691109790706121776409948050858431860564537082573718664297765706109702303816637854997458949286259444775551295795049788151628827057122039309868297040123547513186054965445324149636307182679660547007201688462378529067074339339429380331176867672771239035712454133875430062930455230609090729672531037455269739520760028550715974274725803417080657455128667765181205286193843687338916460402197532753545103297583260082915725336268319519913897223046233695164863210185711067813994425192585543733418609369527638302983292181338807724744747516196534827256221418121605606342671870015308324363372587626958635020467987255790185331520815364493966931639744728666360204899426451040876716885230078094058317998457084078909860713031266450433434640338276680113733341209798633077006236513754380560036329941600400089088771798603067568210825089907275584941020763474980569002308232550755432878338736080400951952447050416588283439796237661355512568041879836411294551080733318990978380401353150276555276825405527162373703745157877272034867153235918752421805191412972597466107904866510060320478300655641889160108456060159473832909906498716683771654601608888824278428469677330945579742733755251830066151157971715709501676796884333194558883163920838303067065912700324624705527278735665242342604422262906873662336322326078137484376281597482628314010075957304627110290261418517062703244838661666339365714515964718498326302574283772985369509279839287362154828994078100700109547623753033726414855279388870687757930926154121109049730128021853819670125052379988039467789831038728862600449925212342662396499243611409909891939572690735184714257950503628689909957089424408545815143841997621006023221040614579364384850422387283802098740510012709653592015541193486647388245484214709909152786031102460577489178585281511264682734902767029874374788339120019750294014483470870625082330683421805631422953894069211518040593347522631857641372238301387606415342627444495557171596839895378004513024528536309637818688476140209368895018312204992078527706400150696882895532103415103117097802645650701248913216612900008080982069056744506713592304778066235018166190476573252737576316745527646637772971818278129344778464729431063104490196493715141810722377426320892712092263325342254745188788498805468356336670410856478243064293593302724055261447484656906791879728623571649855693662200459855545487228621293144937149683976544247332962019468494341615819245900853060993870783697102038923164863234167778628571967381333534399168227117500886570313247762232276323202792049165664725812124400513224204247450563835635383404645085368019542067114622010383773381981600189840311240878295103746948437194125125017451796779121304044018185120263825618361188465122670364647794686705650564061719742433642055196704485622665621429206321255392529288647924236655822614762025633912452749773822156018299325889803519748234505770843639928322695718613423380606506879293024708015096643086739728009440714694509345470848514766098388108185730077010668796339145017466914720346058566478609406068356767814599900700520270049894812664107491245673952923275000109685394494646953480701750201939380941146515532281563269578610190143965107941115479615704100205699897869970940460686451853899193250533363387338811929035470570645926763089181736276120668042450109239582602752023683500622635145491724017085631731068643505382297862708129860847097551492301021047642638358871180656554020053602644266432977732635996090229066996059269148862660215031487441238575489140396263934229727811985570580933255523021436457037318171848875672471690825242853932357766399979917767573138694994253180206303382713818305412188635624652447859722999430447241628526282787416948980884411771049446932912175536925527501827738682060483146106362379899372644695188740904410334320492443490582573537679439371552858859504080450733444545121533730131848189295604160893647599287301132373177223226987416493676288657892812934694730309672223371731196978606211301753964463665905861650729544950629821761576482292458357839099297011622173813046287307885299976291199166563307931262863793669329729940828277913373524505637827397778196459783967125444092953807218866720979470184723610135280805081825196403549183097353024492987537041464476602369349409836822169379746403636852283832253731892744787225106618308841882202958795093275663924823698371883391266798008102316991389021597231835014882120469845795884512664872362620553020117227058639431070000298636610285180315307216957449785458342896710176850573698710763084244880999198920981611881571987857249172203842841667783473771877033835839851953401428703169073464493335932413915615763687025172388045939141359032762364610651749968705512400450414577684836955095196664380551221936793196770427029018333445046443339304343252769389134623832906485844995099382815445977802945621361979397526551367182992513408660546383163342133261257469791599599556791118959675001572268021026678747088545938615803135648938992285815190614759842659776382825738640540344518024541170363707300118917444192323993898600799233644631280346924201122273383405722374276825053699305878537607552643083752277504773578805698006894801662962048599485747878869501443312170461926629313968649802832523299111476832047828857219972668039884107195255465542553998301958711811781663052916236986249321396893278347731313581269822527687803766713824627024618043080386309698916899961483210803731557329627317358441957847397167724953695173586555882744385600525901326213513791371213549116209964208245395024822443992089916939716471890172547696276669082129982707461140999149997326969312130851123218758240499920055772832538902917485296597082115884918298082411801860672948088522905473983047921091913342521873051646743659740806451901753509844562348666842499020974496577655586566686634095623367241671042454036830686867953806090833686146875921522612336871839281816670670248427827839705406006919233496825387323767147257668384461269162676646291419202108622826287976780957123698829700006114785646784899805922512306477466488054680363074318730085335788069590341574098828854548978577190451262132670223732140196315676055256997841808263746994066450647142428537807336064263929556817801269336711112693246019262044191988029594972167502042166952502263648722651972257989247910575261051433712388623418277953116900073252287154256351484502045894987577662746709469349391014995105000252991449531864745943446744456732737946039662864060903517537434915131692617124192825048223707807654829173321858595772321908575013022492443989300565425146871966513217581663382232251883824946325510861702538014780051264014092286623982103687240186296764178518380971680939600876740952792156858510975004803125284708260713722690688740417696716937738541940507986640555205155557005745720752045566042584654801130617721498325714952832002280249522181427656939332471399587000750219561398563843415398981313704235879152372190426221518199915106582365778259607144429968062448565153986992915752749197529122105047829698602263816525436393388221234725162444768996225951267674180362063250879323403586545180057137952536350817000542599477990832022169285052310420660180680513948427877304707320985358452407328723338616917639090166079950348893850704097442816108207605689365781202798545785981936036092997473407038227826541992770520973312898139550322348609712412370279961171411162649164092901097455563292400189822358433313556427008295540191324034572543242261812074824063711817605413825072027532456758180379726511166550656194761767788730704757750416886512695247448654965051731411014771899630463229677161649850216580316281712513154571329554724597634913515763148152353481038199634291375628977449271293980318894389271262567320646785282196230552428708199919946486755896526120526205563721953808048021129862620578641426732192089311379092388148505258803780578625482880541631517856718606480239160626745452596872849946450435240239652804522384183223163883086110866731377257615484128605557165379325195967922251822322103068409713171214952315308965584707176495660920849881115956736035127055834523687784553759568814331042546980742507838154810744915810847921443107673416181983346434561189244187250128174585658029178357997800950261290712572147564106827978738363041178418022219715436251780010394454660747638745641899319116816113523423401853506503963022615227170019666277019069776874180702023826795725503897594405003035978350615947907448015739696885609260466006925089030855892856047570708268333403904674449686002688659858863076962713529987259660367254678146780655134695568542741538452092475999002255442385385464404072393736286278327679730186373721466329971130505966248879223196497469631468988867971930431859827642473163769538005237527585097692828030153588492668475911683937677214058518904948428888566201025088288476653820365530065713410305670247558662283227202685521799064495432759522311098454224621424736479320473697869106069229783070424510098045277088734056583518012953444859637021923818474822069478444321430052399077221278697945923347606857487168528051515285472347033753697148853675697158836723758783012433235569879266700827326786558873978405640599965346052881068831739459014690543682983836440038994012012981141905492578210523859082239266746615712632071108205904913612951081539172596544805558262492396734420162012891099825229361745669285733077106505687459409222596205054172070348068584024125401621547403849193130163837171888863304620929193028352226557422764342559170728673896593661865891246660447030009814724577378735315623705691821235047676688663797399060962915126267304669281161521794655018840868509752995607301914467538044627758335977873086565603685974959952707005232555623550571639195368290930198164311865748110510813261813068458561116254458943475241517365717398275045789700294617891948606997364981980239636497604769932911713837759758832585873680506280518884072810688412207126906702976960345053268828422511749453059703636370067768239193476934633474627639439821361648734883983699341843542323450220200666184217579547836475956965320645392693527700218343666543846224741287541402182655778888533977346688885209644318614799059706509221751457692821101473801723756614657572186343861464450530322125651270533816500469363341337531122791398942589269007372393440669586129234655868938695443047896642458748014701563473714131938636875013159314363378587085111582497828803296876761224564703291768654167264651036107658066134155720690871017534773467112366770602651590113310841452753605537675341879339341433467990636749817673646227734838614530010468051162241362045460006871894907437958944373587611628856858977410306581533698009958384731749679228133374526157043808444148682791123252561212099620791130738478719958339084420993314304727226634571550212239330428569122225612702343054605538895196592414707100238211171879274983385654904319731486931520525986876967997411669452546465986930102302093960964610641050927660749918751987427039985258181314268706317947058418453731198833644725310651296322087129757558962207135636478167012424615726394641706453362213485842566878213766789918426166771111268407993181168860831072238068292688083753752746977813973441424726357579422522465150598860450378445152444962962074629762078719856074584650592179843719714794955484512596171099542124249388581312521849487374251921858755499697027639056359190155317357619202665894100592510179142411113268689766254267225727475422455888074592259434685538055863309534333637898032980680877906563820137621863284131608213215318122722049376725444691615769649050395313923159814850523247009733110992859111047141836066274271325782562271653678744970785768245371787801216546296977171503913219613545829606506287096243102736833285353310893525709258424754003534923625878423536210485543228952948291505225539312916729181828035604233178211704330569310244065251831820861094334965857202897790264144507682385478664870086683703676544050215301453981882687943330230967116704157429874510139067895046970465385143257992917272308127562994741992712194237323389891663746614068413799684791350494518017875443280256005390902402570988103509522394359883207407036161795108152388911539292036033955046052928213734077564739365849659842486230265998450824521908684014672438491938093348497481044837861054771196963969741403244641755637677029878317441838612546451120313797360688592800896961391066318652142424937914155022886383796128622297889545014323614941823371292011551474626412556765429765008243978932959739038661938304646603808417919730680356210398191191020103396396795638125760199488007591415379468395570675504463037407096141454234878101164485429534576561632277306342528713109757648883111402265031070737086709258020382803415202894065920562387949450971134758854511412496838958832256040464821627506290178175002132573360444358857078429713259822011043749714740714127647432947130312328189206030615596362960070231272773898708280972789349604492002824159920397192720529405552314802748600321220683107082528582169199678238366215893679685367927273604053605258774159684411858043359183125576941049097866950340307823425544114320372602349026352989290266794545419028068900055113627045839345373969957027264984435603801788398699942235347824846986135130810001365889955308685367375969657877154702563568346452155337161116336209221874869348156809922536227853472853096115223548026590084740159986952904245734219098825929611202479729554779573990298150909331808951590235286723604861311470219624999897987279769456333697382159000848978261432499417101490205671989861974001643578310879640692179130632731413361053701481435717779974804067741167631016202979200257990488655902026234335979791976941331035135842627916323681577745138962125926663675106113236142000046225264825341940720328034377318285532359438829127544460197266676880888529323396786196880312320613872117393157432362333791664989504453373685774218575969273889464751138747344245074708959437259755491751463624135373269130017693487055613076329241123620790160073405439080411382892428251305174977731131118653573075274030603668301539769168867352039401814563635314805800184088749489529166423970276472420967672605062387025206477211307134874508626357226981538703532908802505843114144466033132408474613993456200375203363539376899543960196509782952500975130864652713153217078139227227321132144854522125313539391447883845795454086306670092145355503879504912139529972431205795339551161360829296100130425035646822129688464269925208685006013937568519553180803649965817447225323486776730033403252300621874483054557946919845027362473978213601717469673683559576542304139836445439256440522395998478499808356287785059313577454190884947368126407858428362296569056681292977469668472295157252130978922225583440070897211169051054257217536755816385721719225120110331330075005042914092208463135757555096565924241338258816740086658628035591681355679698922605117650805701703811294217755954917991147196064563128898257748037549618886065552403446794103805897735010221690372390163234382541239896967938481577867153931237124095111430299958666885838782345678765956314155959659274056888443661529038932260558919519366691509902975704159510748794587571357110760072978831956098923116776843300309181811527085782852167546728629386824417036614985279565323164932330906550594085482620687162338813038172191120312484255641615859493291834646151556611135794376120020158336843494640728117923198537036735495440952660872816718527581505178473048572736145828992455515788763797555144546639495652368645479076663742158358953574369432605607452892672373525407531946710092999043548360818939972601969842769638543117193368412842084360205702573036105783393125850166014459060477428894658025440797591462889445671401417368165604878001764855185617927496934896607691150726458154909302573052444151735467483491265949138404595358945116187738913026775940125303293945158029034949085832519624608139580592676498496566827829199818598175481737897055815868001159340079173681681568380348324783066845962181224930862581908760609438342581126596286341804816548258732098517271757568238280302807962771603192523206363918107515476812572756318492949460300173215917577380737001647805717865078175647836554528448293613394305928977843870740415873329152871938565409636624484864282343469430377897821184532421568476789020484267989580392861377997743390794588107374222949070768739945897543364886594299163869520805815502255525710019521993270430061637698128825345694927784834233470318002335284036664602987603750910873961122446277946602469355598311983708162725831676466030550901873423432621870656200033912347739777939563066148423038915790383279080995061715666084007861783827004513230938302723251909065130463495967116383365964126126679457541711317603443876658480871040260532612664235168385385805872354418161983548204340984662493302652046641444316232615475445097310127350235641273843157962698646323385225637683060714644483131553683728625301126107207766179296063173155270273392148982030521955433870779277712946586738595216114737291368584471002298554372485589489884820202497362922237796924722286678574914373704423418677736744534031389474071971037290515124561579126288114875080884645945808167095437478386072807417639259050237051076581765877024036003229395103974542205424263934065909726835993894196621922969230885056747305964081418169838769146865081981345738600236698250469327330623183969215136381473211147742411506018141328148954265913081794396977446865401332892675725560903541874699200586835549724923770951918105175353825842051255151273857838810488711121029115827432751907760965824914490805720240758361007572556886726435220513789810736310069321604759705510078347301283716063768884211604329307822547364812590837781020210115838669555336406622318289914598455294101350250470929566466979449039079484449274480457794348897781483824450719946078442615591889972669232211148685052615739282165318147732214252995808702324925511889534985239786827593703887257269954151784650427420132280550965543549350160539911373618716034728067789213696843869079284191605037934529165675043290152730058806260177902729012543296494843244807000244811253583687219984122248835704568953893440421701803033928762246649444174718432345445597489544550252212971183863581432880146461250671161557210429338979479354090791160607698530912982866580326096339237848417418317494063521802127717456410184258786338977560921740076366730609031482822878840975185300267646770319066289076337291597568221040302295522168345936109359401542692992603137201328347683893404363664318352596844877172427075224547132842110144078168740894841851345139639647896128754645822264045343667459896999426644590926501820003954469636802841558917586418373729846400276194308852575631674185362717106805567010396588272925479493019042531133930702705188178585381670326195447883981504662208192939638398470296686143671690117000412331674867441867926203114899180804483729971329933766622543323893305357330940901858321601949569592450925359213874803495950249816662925883301047767310518719120871625323349348203949737576398405654702260553889765845501462132244610632149998615266562674819517846128212779883117909307054765590844582954647218006475444934251811770771104281781980636792185118569149547032283659859729490968360038353023287287169386101681056440978410217382953230944517514264910414953753106364259928916767432028549735443361404663472648583092771093984771536222947394215333025184238274154530672313946240167157548093987229509191411075796493801722766539120793701292887696189442936605177025701994678432260864684801630951005055502508284295120565192965286465270377458572646385856845099003320630367971300694920499574420544523365131705094415994533282434085998848709985911037451785283312531178229158000263560971493984719213808007290811451840783098607922795639882732723225527756547936082853601056771247972948051670546018703620331701288634695648493878801630734908913243956353923258521867955827155102037269409109833507435651233111248125524506403065035177493786690351123980778768815963441264984774959075593402090647857388528600240942525053205320949646784360293867439415137677544059461588434718525974930315286664558016558918712558080638152883550481260828155140005705496428863022136168111486152562389490373323307058571462900179238482386118691716943996092037850879229782259898370522676838573994400713459409269629733012315054399174651041036049006378032337295361047747598448622510199320875803885409752045630502148579994139349078372779739331590958108779783986912796636918714495916923818133610477910762433306505729162309960105493279437643264608190984528522365846026518233542906988903690543225402368571417969563679527276653937075534934368823120831041503769910141938975193507829178316329302467571276984233245146266401829643366076341273719798752439630584759977010994840260341993741698446454579250182472463515639221778309110477431045190223965137662921675889412861997059399885280520287299159916928154867722270393463635935621733161984087462894461009128172683014575578198887716128871925585720286972246643265516586996988771257005264412816207750896045807637321990277620176997474805986094266144269379895134168124979456770769924315073139052514345803383333559689159032244923595260096297572097921553508654922676132569066493536868444054473480308203236369682747702986676724203987182969324269424639298899447010793327223920461809823269424381959502297490888851083986807708911429046364574101030547415845668681187327243243715562045810582772154568515934658350069913425317307959961475729181089931932108855447736357092433204058921153031641195746467375497308535869211344669644536466419505724439401978491526976972623820428036632506820742181737045457428614577886014379530445583342422621258746152074626148812992906517127643962349299999601506350264645659679123047834362912527127257675969551913479609385800820329268319239257819582644099765384087080932125673589154702363780943867254476284949353343915818452569825978218284019485991889756635650353189444799286273777601746684641789768558192868163413275029811101652149680240245621415965999155398982387999236801228776922568099786875032080069029476037955687532597245940735179358086530658593491888384443050107102221093564470484618686763416946056333678108976578238990303086671449891268327514632847090951693406317481498803250095139259078044486362495412609146381954744813512674318589407814997926358318099085637856437919459999305590005048964465704560763945870706167473323718371687439022922125236328509583448488693203981456213737398104206712905827761255678060434207705491983701253035485332305272920952990733758580970000492675523024665547888974708952939829094163324663751994071408195993062951770478002918330670146262155256826443143612807451432893359491651853360449303706344075829697893310603539035664017410428976055352386845928860997222973453818170264849797997805665403877156445716731258518958984856465274882121549432967892136513814160802213829581371527912922028531576121132407227822867940692944567315658470161430937478327411046298722069171816060740500293069910961721522537482680598282329226948236347835635883403328917235256947956026762469608965794076014942735405997819546477593572255316606530126828473974011814026760050992973164855294419703716783316034629276231189954853572659952426570203175454834500886466610949582405187047004064301002070398375613545833998084665748150696590500847257751113558011464398690425496316512883857187535598810031978633199723510136515743888819660658859521123524527704384009298109836544281960000046540049560798931861082698790773701853752442608176771817992216057424039002547517490355132265956169427213109690113950009966269888439764071207046030171849544635052550549223630287617548065998240452696198480288547426931713356105707565611875137572120709801961758430917866558820271251322859462205365069618973825152150036355098192602507819269829317550080261110343986079484486733650553109071083023055463276764190791609477967741901454212313044274700948783542868865181206250038676349433097456518534928322876967097506290434379797698309272481631538733648881520019976721997311865241860290084840068995714128404576555743499200860345322620151283493136829073199672729361463392110479991322849780128753664601927633995249071315914459036521137092684266055362718043351114910277746445458893050186753893499609398883181798296780734687897894094202613452971678441828628461382411258248490975420454450014976573494221982301075098558160036799528118238003701082302867154814201061747071911111755870849486276508941512531461303078194784579216416882832179742267976287596934534638311931481706240363107341906212802419202902797020248031619068336114822649449941836644940971061577777454946117461892652123176213666380973958095817722337033538293482258892838795325787276664282040280515860071036134096191526209498310026567859233513968497328402219551020034476645305861668939935288033503298558307029614357896880792597958578380999506852345070353957205766138572557029362488514368696605132760182077020845932357866168507882309148407483912308148562745026577163827544039686354148456089474638067676815028206414784322493649667208216075336558362807450487510267876063636439538863080903533243442334907742362679445305085346040076493826236241291603499981654608021638517400118988773613552016624189987894191231009179283554626947569886162254575099426846589573039174931599727013131015717943196684905155080156772142645929521293501564388083055713864393603514508217892590215322320123317439107513408849214347307257450235203198601751212710269063047316782930903638758510221566562551022767002520769815302663229147120520144016648784501215447144027886651806003848274216714007952901266198016298735854024809682090321585070648912820502331502941171627903032715361635905240145536938145426009884631254442044841379214185210954231068214951926253755478644879485061682993799164619689595136656693925021876356003055024478153193959620474414686504964846229999439741473938266526791205003978250220871297391743535473419872608403572027706576529425080011131071613413087501688350898023090143411084788164027405966621139163920061598419581414802204738456207280097281976294220718143608676064540237484241689176772832529554275502311522973535586978366321095696582389662030533174018519295745748516211990152221099249715807403784529883184828853032744347107778229220637875834867929445697996733183732364403423356981142451093779849715779812637214334508190810448315626076739169884614880034987008497765384267788547366780765351795772232653029401176648423644554506941659000652862611962976169426531948733730309605125779192864004792407481925801034722902695409875746033354174748281477792827177617574016081894267366931638762501268509919332086680813426181107481708516942003512713773217755155819174140578255199868911222890293246574936688302832262621132451097292952162819423720852046279951428691541014540174171805440563804056229858871879812570655672773494606811773256183705898988513936701338465398313776155681456968431315528779485808837777408498516644148886523384226852307434851096658172312602466157618344356716969133293405531613502441961145327997000406381661754153438994127268554785458584324625425264833570305526079060643664609019562346244530578393678228453946960553595579236838494951170247256871758729985823892970639841689035424098213732869292288106497200507703372075784519361656179802290683603817818214222598427936815243614430137827734735783730224872384910393077644322383194751115764459391807158431637443239254992828651153636086493206137851037165263412908835560225325026499336555388817559333815323236413918489305579711604456562061147251540140635340500848473099895310542648369695310810351732143426542698045476683013601216862942515434853665435943596776645192432197107397609365985073599098232583966365178380715874895399016047208498638890528294003222718285135213938781299554978084814823925417141358774318486732841761929701586659373050793006710116201041306420075432818417106557826514773077676682344788578379530065112582294542265367692790264112938136303118052661973685067802791560555763901338728439783954287789156378109430050627822844432557850216746840551787440317335828891054169585707716211014819015664633033536508374365169312794322717597388880444567345504609327564282765194692888957728482472148371767687987258300671602980928266454034207539952541198897708896895440872895070409107560621863464950498656710837304630952295395421197719137190023825436191893301436610642404353906518484025820444923025826459027094803136482936607879838266938566910037421178837045741706986733677985314342067354179975401921504781340978285568439661884874333001107870840309235409297364704267977981636418432925792215350125575878198078545852838715225697732668453681222303943994635925126531121578028891362934565276086136359142680162549224970392272919016595628257596692666411447100314250889109558985224161406985593353841282850664962712791339047382338465686822213529132181324961689028624878044992210391446963487525541561970516686350103790125133645842489760045952218966902003438135721346407610984613478200931791519015317996208612297075242929323098690372687743498487816289245773789427207587512660583089601942218023049971399962544693726248713668280755243659216705361049856036066859532637538169898648760747067251259051027850765998358062267760046881417292368456209407170270212582617202969803650117622440694201106740792264366034644653165155067391033050535525673306439786680757752676177676422503147823787635636186370182245084177107896246185414536759702454587561390787746656136892033543461314406022935317428415210455080363398943996375698083495497682063622609994965775556014841963285442885304387520846394028888954617157399976325454693032472226238961311132946023156862106375667173053277742158124921245137832811521822079631789826547952913428972859778657772916275595727914816905407081759393787824754700119762232237819069171900688609383370947846122982171265891277952707720731195389121727877841232616320372260116573219356516480073790941509057980804387577985674194823834699199426266365098154780867815343126509451228913309141039064349151556908529827284138653023026366008489419134388755305439465211114055095967129345917402137912224866754406246563826393069269943724562274983189862408546644935255403214280926665906913372065788711671699917787775183242131581639880898531669891458631454352960110508929155620135952602626621956844964626102596115441252799184167390904446906698206013032838478996394308299591608206546276469757161965407888975706165546297796923657349697446802077148914598000183789555241964749936710486547310788891918640364191202299273861374630981852478528069760048204771118920138472276147555996807332883521838498434943381322536093335386299268792378826923917229810106397630146117193073516261352062892293833754800733994347605474513932996226259675847820231241253773715309507090650719244289292606480924299489596803182995475648397429167724911977289626475007572638198167840476626651939888575407160702425735268547384068465761283471996327482573451599299828607187456003765477692678080452447008639761320887464652547472222564553947129988165677440051707331850420507528725689181944767294834575708350293757792335758833774549532965368966663279542364283651401860146106614396122002217262800898494677340066886195452034508688156347053324415348273587888923444925322562154846137454497615922928170329152738314016077701580579244622204939911797761495254638841710731867726473382812691366065087327365890371679018218725552598097815399678275114062209093576784352774439006386056598723371370948338523838969473228759491461149356760769729286959011887231392228714871936713553111628504340028486017290333067550385972052133898381056266162859829903917250454633742679372408625214709291763738696190561406517282325082523680387856185108856077046633787495821443499871608886158076000169240212771486948554251452037651082402420311936643495586006687310717027895726228790280306974881114781969100502942884624646378368735610409582049372168056736041109610995681072683421347953715392764792145703182024999411660104689077238366024334965770061659745128122846015713295314458448503261782174715831368545336607037979454376498155648114345389783303262119139736523678055835793932329780497437167407091286130007290186328650507217312871564585862513096414408321956521545708640836598067451853063850959064117931644908071623650476928458672593744188594822487311851004164148458451475250265214177619477013098704800930266007437909899306224589973483182785140855561569671689763613017843820612252247998683583034712718809739827179099004346575863540118802486633493798410299562905591277757939564151749078220841781470864342642134676419372675743077604966037809463582009659709514035554795074678302473219600571164069314055270346369716472131163171827883086897299928333646120797298136684239540043342483099159259882195607024686159606016814560939262902961131542339863796374322142144332365704054342344601964120460627532332395662097627957490595190353436321730918403089663164535918725809817273897691461889553549814522091968143231844794500659631144273667162121920175840654014575120532121366990692158881692642852479011381045614908203572688506157945954992050225867169019647157285474993961559755172790362671614075813753534000913934820311023709037803659144587718284656515596566786692809259271215407514562664220197630036236132681829263435896546560774228566402361212056932041796607850356668588787483219697907006691072116096597996493370422277905257057451988507210350798485048057736686911959601897501560013222628352494425175841970426425673939894953708078943782074334880508001172729941308768085500927070127680829834893059527522141403445850522232530882737454118201007831478062981891930357691708651746823756475889057628278260716587268579210423235092263849427649681090933978223548306294687093256116362157412779789625250846166353975400965659025124006608822892839996803909866805707446742090101459609992570433283642342348870112314420391897507912678752781774433694046797648691034960762553486252899956396962010539175862679473807162629802023714024024658373085532325734951116231138719304899992306721631515508226117061506039824246093651529763902609721697542067296904261620904776021235810479140037326666283820063254510503466679194717395108113243662533712180579945713310577349980788996572802098431425344605522148745549888895123640056990205194125352743805182895160573681435011344184584343676091116780389694488018135321470440662775160636395365777448841407967378157063318296014657065370527006208733327999087556985465944846120865672722163582438777864608434286706529948161904033475979095223678297041912130076143382357380274497184516904822553955797674943599970448031405371939700036945136539477212518078992317272119345496872487565443859287464485696339590192065717447489727385534417053628074738889119771238810332659263118479786322132969744217264617418564672149296218553306115358777995915450125781361561942812871060102705068610421460201918603470789557946103188030566905230098074591778969255669427968457116643915239588758609244727317750215377898713347715186388087962668445783367188401859078501160457140295768394608349247455646975672916993266049692205195413813038442012153894337332228840422933604135880606957376127818236628894640228650479634636405763449133925970134104576680103027185242019850436837225493189938541465014614104010170380760704476784383684980323428941331396108394384867615594926536642157045488463245179571833971447748969107148412451123096592668373333402457794132916390392268375076812019852703848893263962143176981676873699167951030814986948411529042496685096825404429746174280896536917170880516851565159724743526609324052326907396681808071136268049223095547730011178595044394651938075734909502873518510871919907186413043125591600321430652193902461942101709233628059883311295481655719495519353039898908396136491696591181443865709406317453570135753900874092019486368418027023949379827549647880725959317568089886609773207227001450181161768341320241941880890495541209204451384770880196110579266554556126695199373772906318291050072936371915033513452383212432011182213475757099374695747546764477206253603925820934198307068818275022447884468811464177510230131739407024924504256420329216725396365269032715802569064548798533828703519033544311152699950957111135702143318816414436411650108993261231792372072775508673765099950197908862432009413202187973958559407403222569411275488439549682560726718993530653818188877668057446396564367327340089221999308128274004421418822658952192465194967310220936334355741314493717491018056629932068834898814333737223917676825365588438179043534568279539113185273476402003657086862397500564950421667799104723096863557828549787534319574262525504774909011973419714369350998808264473565455683067209049318946312724915695058373546755931940760498263586487359858281525007800113190800467052585972833519331485604845235100629050532396932004781275588947153761759552196185540433476597505164975231169534732490331185815736423688021231426934516066715262299845266667893143144560887511117948422693419748170707693310546065127059067984348636927929729572467396430983985179178030898254621971715730645100332848270040236443114936081278230938220477397215343260266261018385733581097909590980032253019159931536570333296955662975853156983439927023502936822108445071937156227830706754089117027995767553756973823712701078930318625543310336346172593115538487363635104631107305470405037311194307940622518797464810834876006675241952019489559603147917249473613825809345054604990041949314738567850283794954116489581655606029278932106705572807952306437951898203915240546304250931908942794586284964263385398650190238571300030303147633925142135560412960505185560236502828358535401394083807572404729937389863827972944043398512630958911334851822987148469206088655245398676204809827501405299189243198342232845502170189839727625184816430591992115135365117215598010511713164333704578448420331586790693963020975627662300713294342838879400565180204407693669044887625532494089214128574870220301926163469190154143855579795067751057393280362052703818124133245150360221638186506019320450900477713925931231643837314627554261651881379019298020450597692758948391678804264744835280480755604197973427510261083450103614451379689777767427102163911710644779386076492515747428311860454912090205748142999548255772207100544344951019054606045052895158631580688466757259139075340186089458416522659053939215014907847164981102209129535444394786535581555544049089371814179705686914027364152403034881056419768294253192193332718286352836120968782906274562449242785155624474431908500004252746874926243985876832127328728114705115070849847473175271278640008699941762552233217112765684205425988227433362413600074478176136402084770774466515343862740229026967883820392175702963175308464257023109853583172518755058745890670732099840673534560110585828886162306067637706702786237211343947699034026403142137615774215999931424648721260432607659558251609143593327441396639412565692698628233313524111755125892641774497453364067119201765128762811532383951168878075107601145861334838869652355680454504878392875435421707791583265128500071316786731705707026574396966302864935935225477031882006526344743349236629183256389699344611939230484974012338174833956266239131862062743874514421903729271967684405105463347560183575021946917277276747227066252579029454575281615854056045681163461445229177839761714359177349018597634890514046527797414512892866168951115581965939866695038614663411118704285653006570899337705791223046260240455622317668842589236018625346927426226419983484268239440649879403358249589172981113776364359056027215620601740193504889917034456586495521673608594068277841330103266867473686268982639186345106984710466023635829397725750810467245689865652813050975756761233370644393573197306105300091120139721635465813405114916303172890580041552001245183441033044827323564525661359771586822270267092891495651138874748399702716935348605711431754695455233970585974966963097416962926338183589027068282188450063987430835893285160187126148994492990879610010276691543930822988325365471958520842755275045895645989939580651931849045211855604950337885451345540348594792688764052142069176279436560343661487211114195014270850318025374825945463778624853079302756313301482306669409933551564135865513133249378459699108885842174166165466188916013474851222171130012997149976701456615113591330174045585002873131279250876415829845805300204287939820398427381853331023762967961171547236902201636168493271907993023619540128948061340365133181717929576904248537544346678668319883579697432933714237309770052770779601752577470128435433437753264936301251395715872612135134459881153348221294907955852185811312457225336671948888594771132634659880048236037299908491243106442877312788052736986140974046584827691455714291528583364968009005541036957753112977991342408749663240832786368291706375484949164960191902040799516818949107473697670693407011547524105076879607080630912978069906323929215023461045372523215706253305479855517805912765353644638998200129549907038625108980944678935061729436187854772375263514693199447995136085608907337501665598180430121426518910050985960211415328733700716435530865400805449283183207163196981016834810824616651149332887216400866858199544702014849366238229471965106547852882465268709523096068966745550899920373383949638975158652021134661728610261008154586066879982402718537900673862896081972058993386229831865753149317553798626086460698482743476720037957681791059611656579794764054541686529081727105570222007798230805153661296359399026402217492766577675646537585227621624874486494501648639693370956799755221933426767415457855621682055134776566617643394603294418365882409788394391240951199771111165275640308043830133943004437203624015034603018234971722004032817472637543207813726203308107509730220743336969246704671993731120899933433279930023672455016475514069555493789842929356310096214615472871106969247539279872650445435281850827311764830690502389275776964114821517219422119209711917719519857637115591750106136753300478587716893601249661037188023570900848431059172158846735494060371555811175782467048520481686006594116800695310088618456466669942990466616895038968254105536642530153537645209875718897498436618750967437238149896941478986939760380306034595292013388930621362175858286220266606447929508198851249121973196777848228398715994081482781226019016966616055719478611623557776641884722607029189834009596655608535510048519538984642504729737197489162147308347450616089214913631224154053748058725169107761672565478050322800709499550029924257181893677960606280050554785291602108079959638455267564810047739107962084394438592493414582104690871646315026591970056702496161506027676284012402645976256337945893684833702040435357926785685155369984902887022328301930738335611573204519579539553117543717843771168575919686265766275174326376665107439660112721489401810644209673661458074245534725824361790480822179974680185514269518315602124922582843547428697578936624097393969645596033193032007860068823169958421468392077354092330961245139779398131296557705351089375134833771822647608010501048458431726974790587213376047090114958683792572741722647735635881899425290394262897901524642920821064935570468661693784501562641968885166254028403597987720427086185181367664642180995107413892974918034427271015612244784251709935518325458521541452887981886195336607400884915891202506173856051942833507545764164774417231553211751530166877629397410945599810717774770522923625302900382907427093103985220414804115217918869164232520490576723672884357699873944724141962205517052038107806529779509725079699134387022693917748599927689680918597306271080986443986246178318409921480750875103562822097059360466389460069506061389663653111806562988444233061835784797702461786022559962385442198966518183095442617120541783434713549343045915777466164167778831261204480088708656666112138305921845755526479951327557008274285850315073249849752785586888510870968539328421967663313548364828815336520859942206525998299315692427751368357783868110798473375229800415425334401937032253222006280354093367114178387005435075669663683503415278591896812170020333897552615351519679958549264716494561674257939472913584528735502935382651717883435933765539408306046937713846768943871550040436665944513321986109415129595778469739651980792048853065240791221088681119862682706485745804010745869069478849963465080715463902965553783757204211526796850630735700686503268046884246888259411196274174801566087480225098678080120257773799177826759749631066671999764412011568438319331465455132075860394812012810514829114984267639588667966432192753066157349141885010633666409303565550465493690873260984743908687827868757712262010432487755418889029177594873036602010205101461504297352559535355599334518361216947289431722323913686600639381048562813504824246180279644372689190896245376095387202310031904242848899014761776692092818475745320348051171781289490271920111133198523511353255832307911792884537184335937236324151769754303430156555898605690762307158532896641636479072650427579573456666580664979109933701076561716972481204076337154219256108058406715988480950867899146113924358795595193505389373928565430658858372643416463300770262243717817734701888696458852670983147358732506305957898870915761202339528743458978112679801395793721320466714075489401662216121539310331145117222028610478225235381190006869421263402141677215299236255285500623868366993564082702097181980813252787496914805286866968582345682405531963476320357444869121223133712700827556156102169728848367829515250037483968445320706002416862293081538415177845511464758258934459054233261021139806239904650705634349475532160721585595235778050435216110460521836005785145433020332218889770290148806494440859538063084755048092855721309023748949603120245712763542328537705920948346279942346774498802728944430129264791190468672832561831833655277392697108531559065473821928660747551901898624457496518540168863520528245466458761874167057452034160345657270063970629635019179707780686327474031015103598456831423272862224761309980054913937372645472046320322766283423115665064156250515891840739529792488580349336489133876483658555830473658925092299249042888406747871676770064803815189932075498294840967067978549984933882669435308125566590630430227594451283371950375629345740061516703299133885922306595085643016147461475688515326174693190149188477328326148366850240414357213913115176356457399278188848042567854041801283149680675347238165632307592141942006314549793136975549101150207563203122000634033231854531877345562420851132403593656784973695706934285098600537523315961292066337108630083693130197609778810305630716518897528982989323577573837989401580645643575998079896754894040161303914135222189228907301770111252913087974320109887677358355917344462206996724115309150806439771144227453097973111369922609066701662576597229564677852282972020267729088728380587315306246191818864657282962368070963683780107499111463665674802604777645004778385164814327514294592300437406896158060839216761570617023422546025317188180405434138490991153948473409744232890012487053495094099418892429693385337484711925499499406303483682690048184483335950966480646699240269700691164139190590694060650470738849860250456922007851945381289006809326992446886183839878848839464748418087766628004594825460339049950867189463528769045312755097019833248970298827734135989387142071189596517048448865377682272059348943187142223265104904206289504878655088838731440772647169614925618271520544854306388924555911011068453857430311316441393998222872204522765578389299835325253222778122176200065720897893832811484068377775837624867039258201082155766175859852750146406901088053136304017937430494757088838693229843889462628189085791827388401047229452438275232884444513833556352276223889965199675223027837271717517640086963592231514402089795525698150598002505057493205338042679983851819649812565505641460233805131547898728054536443562537063380620416972526336490199976820306003848846434702402312232702792864342601869159865879063065468415400506482735019708635576347753999832424282977618428026104907429029196017164413187911769964337347342207262528383746517753224939478797397786364377603046361519477532665331316350248806456702492453354494388907027911784664178917736335436982692446367970891972632735928710690604528117284072499377035707866434311561858397635066895931840586875773235805202623476048458614141000229652012288823296315521144090690316828172582415169724593856061358809262570551278210923817976660658440929071293615431773878666699945970880878424657683420881738580280383800217552770659076596440197636856189491116940127455764365964862678356904047707676752234282686759495294259620477861620703059564382778699721484721845512972248610531047016125907766586351982595672439330881882605770281074656426534114437973265735035503879663783729782809578465599488844880257216326315260938269942480676542766010589194774314307624849780232922010859240932936347729903269129773508202281956944558959252230900189620183955576985940406822943665922663031060571126730844731436578036398433211077759307768242240132496844896155037318163797061335938497946213144943416519929132075019174357927081032784160948621747878695720324062417100052581762155057728938390919618294010053656328458616581905777812175060513954596021058162274946306217824666702958213699062953737838691250773906882348586734855975491834865955334963324352853146638798649786228758325154054973943623639992273315498562122928869653729554967301638318586566983404688110584798912125158228617697572840306881094272943822243185793173262264353230886279391027024976155421990069542640183544942521198708689659834041309436119789147073258435929284608965889826404960711954174560713789316491502895731957849363173427819525318018962369129409408691488824398062400387875662650224293498792203285293788755591637450022651835969816374025238315477930204531145871579537068081533354782904601284985898066640097598484442608164842389593171446741912406936447308666965765227937709560223462362679445342860076453681038321853615570424475060879087681967899125604614765601618065775722291883209799347663560979599429973369108195518539740424162233921490469772077009559333024160306112079334060578416220005350188430793886217420135251656025434702275890384501985786357544311685962710794824094344693655361905752133225706599083883392711741900112479004793311696797966597952390033352030300199840783127771875610809953547288611805764572686265967491964484909796064983248030486053878858134342994434214443805163556067991927694715689894844711105490853001439069126025010305445623590885056807564218883896329768528038150269524192174315622472669939559515322987145738650637949464835229175634534709477350186782380216286738569110945304816035246529272725753358640957765927131899589699321746938051226687475159519972085908547256822940369784307798174536969799927231711908652422585832525292415062335323828923630099222272572324814594477415592845397816391797395457006967083282760763502189019318678228635340139583706176381844333876721368089830780390045726304578919838333635720996640233298875753217442983573754612419632859632691367996205156405326196715581851907417378259610111883882118471381046955457316297379175074932336999312237072466346095870791306347800185873948657519157977528353748744735393853441042563540997680755434969609357787426242579607670837628146235101554125398587587981994602687829788526252964787455512132230336555051516579115825215097142663219618751659466522676592644286865451869660304216663380779994045461760738275222788223616614616747565883669445946161014837729230435974904552543920902586796628524177448666150216056172710164953185297061010951414075249024073974661072374007062658703768758307955801768129915915118298624512189423454380157281642731354872357338272652711575718845947361772460901144622127945760598193324775884440600133133059117919639813359212187823146231470924613482780660521461835644835265146316181147805902313341250546149270613624479441669054744660564578900150905571489557572139535761799055740176888877913603236949604432801407573770131112410600411440899830804887722729489953715810614877162942853276056892765180167690566200009274306529210246876517804137064943975562276751191828762133799980257101218335118759481945058331668402756896846162428906418119743124499703989632529662616661217078753164210830200219656641749376033133759623131322561813179813504218734240116826876632824628753914021328811142208725281763385972002450418663603145635470888639751889137719986452134557808727722542158983533136096745082685838911140886030948671607892223842170135888280648796240057528915293504907830181458482270262506184225059747314994880945161076365884608835856431972668949292248050948119085246535818604159396911616666756222425635014282686162081449711436930658167834400095738823508716237916480678299649721995816902637254863013807234142572514841395586088904190179037053251351225601885949948404075389830331460177593498492710228085439957591578363689660845976434188994322857650040564026200988988927387343928446303675435535767266903155497856398813313063467352428114803280031712531468910450991971373916879933901626753847338238236504894169773709619655103901487379181581764498267615342974110345915346423828980945634654937585608736668407644494601464341660254927342323032141003860745317156711459302958171094737692040854481561497741956998829328169740596995370689433636397466789142403652708874350513629838160120929869818818117722695450127656260687517280952273830728937874348932906464944197939257073769890863497825452784972134095017795386192588601991951884931505328521857174449090904447965602626509894054343557253563862540815727615805892850258335882520836958903248293429068622927272200953078725418178001387535636731486524444334853300259126031912131765339111457829276884455903408702556901679240786999053060743163227011429811602325138862581393475038931693771896464191440124245054981935568576658489944940558857474737294617351391035628469200424538872359850029368632100781149720055634595255906939228474549544556107706677898141586256226033388567743671713116234967507433515971014545627411955723542436240536116691416417695251969203189438318442122366491550647737255053358848800122816934709750805149749362853780566968093597171185742495762894729560274777434543799068237863698119016026977803974355156206139029714948318812206972962242107697174494595658316375142769785373239759312703495470202864773782824760945113840610251390374766006298247430854378402802598436802031842796384100730578032814852238329742792921755276452966142153124143238898554349923445207458744652866956140622091265379655122566067514203774854750570641793391528308992121077402714542320597632729082013130565898112263419993787260784585971355491345608381271197952542592650781538913863024366177338556978850731273569854790008467353440659854710831238113093727848035563522274106546653955764950793211470823654916068344943154607009310083466861985082203647391702736214019255677937498389227118189703882692593951721759705463160130435273227195963131222955005351259859962828032920699652836098677555364622986521159297427585961334984442357312103602247897177116778394105238955975839488261111249775264932801289589439606288745991433631843130365613203252497122435270599222821999614941979981964211158293589964132335882678193362847819704650588942551149477103207599640850524758290789624691851886779385690065937723453366919584922061129106617324510861595493112308763146704234815694568224721020008586381506206885675504406728626981333604133654494861226886544137200350513899974115019257946625563157607290198260897828391314294956408856728710876422881103907579966999081903815581447295462393453784869508409669663037461900451995966936755400166318925035780761639112039022259567539259923247375423404025792895162837689330114656147250790069165851205386333590787941758543547742474687049129773501905243203944584850511445726792053098444686694433097628923074089670434745723564813225615995164897268358191792308660520236216298276199660641892007559833290111018859298108387846980994906314099866902084193550193992834637115451298732757621364689026266751260258227738868462396153034823472943396612649433905835348090759637477324302913467449256424262561642787817486346309113373274728241310250228972166576666689242257273576088568755959508413818587075290883140416212457255569478724675790433809303285725806238658570128787920188872232640384671170280434094831386641268140903825532562395129578739369384863224664351467801682999083201788026987624349062252299860921375225711697065191101451112297490425181636603442755471013444317561565768869299123441133996392417018734898039306252701894896652510625220886717077797688558863503826883483667486141698330600751680928257949124273383687897358949943871079327156305078036629146813211011469103179357758772382350268796674054850376188759499285324559963593670643929856303264119977050541055307564105185232201499452742818670143037028029413206455041827414408920491358259424360472863145917605113540435725164869226400435267710476737890205822179407714845398877245195575304171342357284776988600288137628518504756221522887991137675951542255880163762505456576519692905137809789472182112966443521246882720110086005810102192807349606590932045704484458039682430955031433199594810483603303444915194044322309395450280714636006982857634577187479639565653901179145281502250162475692159855929692948796766117231467933379876579226682446297531947410691798582316900985078917036100857516661873828465841231093625571484494296500950138488008128070466636891234170680350112721324775608966917655103682268130318752962666159666929867965980416579138276934535401822323109604158924668463039744802352937793267971036612805964762375516015569862964801450615451019745002921901266017713482914288110043882362206584635372353930321446731307453230612037598230224373572972743829520639587477822960808426981364045821947527110088724423955401852398094887999064158322541851132512399336366533363589529945100691188881997517322974660277065335522039441745760816590648004408405561747165665851507140043554834037045294971887940619518116355298366333944361339493952679465936720942521440004583329403089974087907446578499969467398226797608978643208558469235680791572179841183007796853462052410829352864754884358035767298701279196518796690150771344800382216203545897599021229058259504259833373231794937338454711763802876468827401821114635491463834357096383228571401995136996339698527160314695820253643432975137674072126777809901666445161950205821777819826470983506238735775876581401059469752032156171926430096640615359549500825693633502053149558650072069431033757216683524352787784368596819088011398285999199135063457258933685585146907792056707412264195293214595452191535838875935254153809724609829673755780964785794774758345965351287715267229540389177745787559779071608139894944840810707292512600691357044315770578100834452804504417706522664307680874315570950527765830814880129030893896921215791199095065628364743367874316299887358624377044421241131562822651548522749306079362302365973084307166576756738400128043671545616139920431702952636573616192391341254416429723655452612251588186881459312383931537230090706140348695908451034581564548657455179955564641839553405278412822912608578534750085479355021367403474520077824948438688272598687384384930442079645367877288437606405809065471216686504548102958263487817721783612800260562117092855199380498022566456628321530300852891439987674931199188524917203193259601056554821477356098002607785265060914232835232684188102173381178283400068762892524715674857502021984937670066634127092311759386644063542280513142536923715148983143072163758315281713780299876365058551007058249985654533245705480185271445398918991928564262147946027339685618399555170206980902223172249095904938372768429859219469215307770543456480244163511314770868358449043078930573951232132461906247161175856346560943871230505007466584946781751709868321593022432334746533835488399042648336208007232452810704692633895643197491373227404632591930721823951874082375929098500511244697285123616474555077682486125226523893492528698251873034605613616600618588399689767267128773629320272911941653735789986123184136602570560883858613900451400609692858194104003328757132191463150396913745324471412478655438721606834748580089360207137591345412752010658051874232803291369873431305707793131409077918028301046009332214493704752741460082814793091056979463003192440922087232617889890662659993269513419847316089546089243622228956335478579194496054426026644077144636163001274909623556590868466350687948735191126118397950921245098208339905887449043017345748636897823075715800152896966572265042584110338483673423055584982346014355916889136448060091824723817566944432271940164713958765067161389834706701190651416483888624700341004062047948188255427665756632952478656359968863006189065837423330216511302390190238004107056843274152767768885818115510373195448298360065631679532974020332134392506167305072838492511351039876708335483370389736009085307674893379277445484529943193872882373713207723455183857729068843616195513862854219418581315770561764398426301396617921353174816739542461822264677544437723612563863115951133253960587844734312803391108121828451391497541898142904969140153478035396370478101134918237349312744606811185033606019166184118787475339475189755121549526962822898873977286343893051599045200999791854348048322088704798855219730924852942689879168371120303262782437157856724954283108828970878610742281339373501900012961589787625044384336770163059731823992811600268912970089568901396051962904342315967781212583389667826905667091260625113039962063788022368633311738848101864420067038418631709151238073309799764227702221062588358025031598477173655267260234767218399584572630561702082016589045314251434202302270703891999462037474317445251079846632024879281656557450108900790585813522243285612185891442020698964026202569758079853631658694456270625856082427534759016437792495581021350550367680840990481307130026816901221877586253069983404005383650967932152117107777102773654656838562676825791076113938169204673432482268905298089739703175770559937736016666033179837883291482328920478018386368315922150757303952100912414416377083198221625960140189907144176256941356869751077580087308600060022043799613907952507449362791630383126299610051113824607793413530617673330705990494198454867315957772567714758346160280819313200511056596138358667081981045231828942124362784444059352061427392899223232598376114120880338920431290687355153875211512470147842572253310960157952019561012864297186773192194883389229895374786743619961028262799821754722335859970907804877485121588794952909553473921654659430637448949601940447474337227657674252204693208091902197751099763067930951207646926141254544523745661606029314867695946782605695609251304328739551624742618726445544933435027506757150101019889530593434241867223713685245254020397826252137406313390655392972270164504765281489358041694175599905003287525794324303641096038373007538129513838416447262174753501720626083859490047131799844481739053242747304020013817303394605643789974933419543339950659608677016832056805463657291294295634127033637519285588552626960485040519989627130335278104106216608497582194151896432738192755567176673027012690164569676059533978483756095748051524605167757251552802969793729066870030562897081230900474907574581907767737383749209565847294803606569288069545378494769734126950580941056382100644472946715659634929597343664422299680669291885894362594882450579267620957779327592880574965252997761087030789689118120671141785313744091945969788572465679153555389388077423147961970799202918780921186069743654604400599734999660273718342019400306480281136423270378850526496188056352712838514122347547954621039020171252903674027712572012798154669840984641919603062478588211392374499615380721108075985315316109680446971993180265836030877013488028945516205735904506605984484311641980667526729538490769410794409129966473071435971763568218502997678776985209122878991008665085907845830857269488895107149476545810076692087083662790967561473712341846949447573768576126035355518079420090179380004587954992906136060155258136861428721722376313066770744924245917860475616077511456816157651650052171614128050621139551339092868593621899551122929365188248303602806560264804823063107565587203497657770656412076222352581977283410779650508061108060937094881714598751833587311731307212814543190036844067642034182293195338790912456117783060651139858074432443286888563437304305785915591497485648035518840144406268521726451497822537230485623834678851917089630195614063654130572203269005141398110948536543080576990111611413493936113884832924204129048325087479262030431865859430528619726342962988204210831636421216800637764281579849857329914066394284000710846860224726242928572525220701367393908212671158303372457560963848693695138721714424269709362371792852248328995458386667167311834823450698548043463927710379801970756329585112691544461705068586143607485183658639318580030857768082618109637674886322066207588565534047436167839188255182206266521754838116298305742298960810945356204697639982825358698578054334611187292612646568685604442678024643436318515500234422465417361501381496657137189972064876464795678438108247680523369599974056881385791703033490470461738248400332396527735413139049225741078505629674246301434906209751927559839528812528987042312074152322430742860876255008936073795599516688066707267782010933212660681342585966482259760695798254471587355093293266752068645124124748400492596830483858183812052001950743715682933055525870972274732323384685632015396888838417101211865848085088916203009220816773913867783158946817692937930976028821605156399562161495602369549987915242816837258375284367733534386577179452990722070575136768755245948237318729360942645342772819255527465946532643500449048043077548957721128462439217993270406355283846022465359221421826233554428853852351159562705337214851714838192998511213260975828963740905723619664499296695710767453354676902370697118191335846019990325366509546864488457232243041325239383711875650141844516627367348053278794265883262096254117717584059944106572368772138903140648493530829448419570186222277052641331657484672965480768762655778770594955802376001460902854102353371021736582210704186789448778698875338631013018947307945607428885280901814060420443640812811370242714916473242994338879055857278926111576137478005646222169656356670361240890606101223785891853208211667264330823502370236530141888640993956909631070021271363306640437588904285297980100575497209124835103546719354419979708264631793653397508238192799505621059356143631020084428922463166201969635145905888561666413370358404450431248566015178823506630031725775172467101984725111241155537685510966056870884432643343503267257104765789494563039780785269829084769592806090603627612919856028835310834503351452775830153521838274423219547716254348484845507497286419507437649471135921552224726271967400014848078535485850357508102491721492637329696652991952618696112292823193019332803845312034334906451487889851521319131678116179667646594415292651979050882883074277102761300617423623280154799555588859695781085557043368088415098781093487718420705908438847149780385356743575774569296182857392834428930933314799592035331077784884043589795309274546320054322464605697689199686161401810568367149039773913349060318227102870943277079747767959940940457344076528806976714333309743397046645172363788375095938801916882533190060171594461549696463209760419022058755197818966643172775973253728148930681138634048626104178047018659357653417500549870097538617258173078607695332675791916249252891413203621147622207599056143989188352231324583774452838808762492404205615409322486956357389789904710371220837068999430911654761422987206008432587084499348887872621905176215701783391183744304418128533540412669883146797352935211266139068236752100401443818067260907168361272669739320299880469161902703946047619826383186617414575182313461896934007066016893879589494229769605651655133165025869238056624535676478811704690021427218469180938489140171630185422668288165620337867849958249952211811514511339016593908222176743985179726327540350098801521131727514304041139427935019607550206604560060640390986650918096747687744213530221945939273893117996087220639124252659633125420898902705369107118363717246426499882705605705223726417664103066986465966048043714742450887848515687109846454398824074649835054918585604182014563436584238701953580793588010315058687201341727791530472111490880727568549766129847150893326341612199436640649571343434583828574654464689633373737779270031409768115017406887177572517122538736963721281431809147115897959539381604362593429700961067053311781068447991249568067857504639727973003446779894299330049747276726559626969730200519899472947343023794557791050055180783399063015240165123403854188105078315687476809442397141477913456731334389344011908355260242446523249419809312774757193553787509918736174416738496335894979881825965113998136825581205254868727374733736112122692186693551049483615495179767838605293910292163370687584989156560374031315105199078651782522092366710397893793801199455323841305535476278998826961634828687800801919187749946894969480755524203622639998692761242140291056608610257765412377229971241704560892030073244479272313647790914447073824204394611436883880622971181156219143425975057087147542654142037514900741481470781037276809551475437388294447643914120583103826563821513933435121957149096495019399609184276392359813203565910388428389433124795244824764059206879566070023556939008984223058740218982057260070522671563376843732182711513439179801992720238906737980156844097834554261181213564260335928324910735972493256628193875075924296685227808371970870288775812367304935562201631297002530865694125250863558599482218148650310879830823754275130293490811869735533690483205156825691745082762378957217222544769483997971333345015656286592363169365309583239926449756492573421030100346790380461645729719222112481860278442285283140981756666727136228472349501589040763761372089269579495565197067806538638210324263892695604880377947742805128225377126575353512945192535506396483515228470505896049894057977123117768358829999054944583576613120036619822060275922654366329068839433972136389016183421512699850363656825510934110232187670617397771454870891624996439385962372227914361018106287917818316792058658884761751183391841077034683237057402196575810109722086166382770816145334055003285809813281154680622736498362739362752190848119995501772142951014181533870504283665340271661946830499474747227813539879029948884834469644437390811198158976905936290801232359116724348741193008062432181224168247507475572529709622940291437016891410970794735748315417996551434201689729269391941794899997466757120287962449773129780564536995178505185766970485693798126527503114075246705417806510780630713975832197490241562562511383123751794763499324286808704163141033113477955130521252973940811357600041823304363953932909986929894880185800894258968108674100295159418913917716025202765168830675044369081397695388082380098935161811172052069324398515517283255290315617381014010371237189557125267001299611024319391921742749482612895464056936028810551102630790315822204175584003514442304065491178387256204934382045735125538012833527370168866411716200403648215996672085809886937475884730387465357102132662969242976455269378436070966824227213887131431322671302898687210464119920853886718972190037395895118136106607137035880091769418546404758056573806584961975025220696811164836001216480980268406888500148127306842153837856164486257979022255922500724450379944216572465228119536290782645032773748589469278651557136994658819747300571516817141619670485496661777678620236077229251515214465029523145909368098047036045131878327548010314474206688226921665239684331566200657230937101951912809409793935798555884422330696720973866558746905442181515620047831887710215339021959141668036237473820673797726751207028388001846181702637115084030742661817181889660477826325992988190702480053721181509133086577398733665305927753172754598022021584288883055168657457250570232927587574275772648006203083218167011590462658430768747318028566197580964297561211032453190552055322741291001582827530485801669618995315786578028303436908198908229165183221967732939365400899267710679555552313623083841823417772777251131276358377705911984812856685789836636728494238743185371810125984924321047851775314981664813679039190325885813400966953639202351540833719159681761706027150415848805911609366270585020536283546435533578606659468725827726525964389112187824563248046238083603563842556955720905216448107320283351522088414063919927370325614841801339784610001972169474370639704104964688541729828949670654572498058648808356404332790694476338944099031136416584036804824486248798367563337468642140249074448838001430453110691082068333895718579658548765076621385895263017042224221079409973889837157957124467108054951667348169565393472104167576713595446993753776748491470254338126119643631658551173149349751573553854417896279843721178531014859368859121627862590628457951769648379777902264818912388461609113064794579202449635280701544166330529423475593463480362901843984196799404354747581310226120740557775797692478219329211999374408252209261762503775895163973575091268882872970066331714483604377354432728156428293357912112534206517374256394778901934282114027090872443328380589873179022425425210467044245582367672944796451861607401579444919880233575517436020220603405573614160658317443640432025388164544570324202438233695474988460650983636336502250210813278296902516741525304930586824417574016055793220287856034405651402593465245609308265743748453608943559658847954934887060076936435239520709058115448913644773228788208097702233848775136663514845976673872339931383996450255891446779951284457344667002431125629097409634708599830735084301010366845877387206055142482457288621532648035906783840923914429645733206530765551200642672600903358162399668823393509357945273885872357567974605592853279598834179118001957605554178017827542885767116031329810193534287341548542346102547774154256659380058561336087152253138522453406102472333692375971332331194685106932420057161435883349944020290157019043178772791042683841168346249470325993960393934339360650108407753377974499809934984266642176519782901084024482513088079946709466554870946634626789351038294949398468603529688985440672220273749292620118145562219862920508819615899891750486394203335398789823906157402207287585573021708180808243368701173365264103153281828393651047694840789853651815151798485735415842082971039275606299275340159571083612946204067009288116079671336359699871888285285680968974825471975138627439031864623536677255143619823346402438109044394555296983989090076189906914385971136657422296616651019171571172071908765439506157148177566563369709491979368787456468901882755646718259747663829395768140912701700550192681382173739623136302318260621487198648582167762410608893478493071296732864883901188197133332536257014070098794712482493858047177772296212846700280607815821733086090566132443888774645497593632321698984501478718533296131251878342060741298092187432921854071397790920031581340810859936937214315024787203671773583442406897750717902529631092454734301263910765549881002833963284835709497926874532868654641179986167307808775571501294252071330615578400577625360813820846510718850162418166641383172168119422785678139580393830507278757736069315056837597378963911205943363772100348725292647792919951045512923401434155329159045150824211750132663786070732567727466147496413792699245876509812301358762784898090400172774368312682752591941889655429051668143790827873283837087559929762965610820676461902688170057434750837280198174169506353838432206093651367218140183324104319554825744906071084969707117284250805603301449229296828597715607436576400123235954644719128858902043193879235524682318498480661017734155918291804792709560524963334141472952255291104718847708557821837590596909553943166530782128431770441591985488340164818186231936639858688653234706439559346997109290968820531504732878872744733397895424770659997437515402876263706405995799836305683302993293043399331277874469004789042012727803904578912032154616280433106734779700103192403034427117286171350415432087279404768410693781939109224275574757875817224437131947544717416965318527384130603266683425640804104889825743358282040789919886142427287642726712728763177439152777093841038450392724902139554603866076719561711121434653937265626873501612284855358166816153217411096972355283994675675055351145665639104600222559279825392154202567498082762832825390752512514426596606100046926672094300682696050989133670639334394924706697318363977357022889474869690171780603098931378802655791404599874723188426446045863029754400859294698601319827441969183778294737104495986901693632661572366674448179483601018519894233086493574839318466932268035214803168229545321058395980996436961353987246773024878342869321993572555592313634252650511472044701819883540682986902022316218847105849052799007131483027631815046260476423329630214313037753504952610669053934030146704960122701311914137850927931975886583252055962542720029958127870411198623021089978601372883468157536644705041030360362159161695601678611037177760463996241805646651031015312376699150138044116279814442184469689251779430429222540186705910333851913179045228252951302862723175437670760746502106156100200550662848774604285586271381323899321412142714556977265457841537882404835395001482607400375055022694923820584113368461471400662709391807166852873854690240878996475201803810439539097473861918261014219468833444809701608445394218371073693826997049721142450203129943041893332539944192032425509403651930602151996758541966515346227540968565287893448332871149738257711440981931225118376589721526868066900737334549738203069843283404304504371001698320064630990876404947669212142519628015527810663560838529136318397671505619715881320561229536457399207193176959035925214990092637833616280652618255631276708790493706835454146101613442402125581734632927621161160482032638467295830936393221938444138189273282606756617742070014623315095687856111584612868757396082163116012191070468639381405903488677876522968577205407056251668191717115907649573377286556527428426596144539236076826472085308086029028194583367738575957774842650836733993164186402719017992263279582609925857173960108053805169322266832689127020136936716073258589584706989406991369139339386570983650728265738687085837454811115197509774905983988071828329133295997222025500268597056099340683671440453289275016504207198995894272540175661910680807438436810987678428501549771567816782479173907890459350583240291284931450382171373636963608478832533007399730465175424689442472443198149849623016383672584647879572119097192214236331003896788958245911790319360963603183849518285019794546108577859309833278225709288381283871105921606628401977119399763994180196610694976366806489792635438121908401290444928955011942383894358692901929233950966240043513914141580445323996271745254668156371507360408509064834181431276786315579546722623692607031428368669346071713359784337816247884523970258745583598689739706384882138761068208353463324315150710585518517344210812968066648487724877919316152205317339219357063595792900355304174057389107650709953670249456129484318785792890089924497360854444596713876723743360147325574237129789986912130553108832804899944521082692217997145348567980789756027731317670905657747966852473783551474023666735622354254952676905050721850735353786557358067167460955830182904696191625946672740802379762478222353733421529659224563077119010673502834192126712821881173102165455996274563289391208613899999350012125364822063819418964940558193895212877182673925718321982507286920162295680211709185167878421825435209710529037030101636047991347399111848770171566409867971157876556802909303476732121259591044306317519228130471943147977607238318742080861303248538334764666423009404328570319470298790264233442427939375981244306961292357953325783003231865788119076784321911251799294252617139847274158905275656679109794575547808540383821764844962137701782387996313948898964396641292053368670592287999496058868298486297308203518899144680977709799450294583435920605976002961225961785878244719249652517119077437302449142445967852142680123679038335326621726160506726578465787892145184368326118140125847785335234680019601256477818506397825084422085970949324794724432440441834438060320400118239507635447122356537303741733434191770421095618753443038788461788677615275403866354021468261947137684529170852056100829717451776165642112299631642921021577131849397940972218902619202733734651691777902200196722607239952207832005195885010815272052330184907877315985081608143992647213498398891977741894144252812937895260742359744689380664664448782075140329877819827129284778232688042380810797421655698829523628645778765401722142541508594673193135545521867657399435851224132580434114521153015716080442830039307058032653652356629510176439611984221451620872356762002742594219740950492586081548110175009562228005770391412068533243634700390497840617468611279141179154898635653899292092314322772933621873560484006162038848535495990431358781536767827617466964702073587457511219885188028968875832002996202124353904570237920450581101898107388568675789626906653333388284528332048492968501591796308481396985890916790823268542439713801643251941192552583825906757829658844880343709675297078053476769140451151722889680762529553500130941198186655505708752907327954635395113381617862131335113542078460010704590731673887824260944226450612389293013471912619491650128957737855082807362777999714025619251611961348807492037843906881150520541012204943185000792996199533377859641312160048806495934569739395029081589747909460020822676415102377784237032243095929203247748763163168239695210062159335871642171351962918502588452527989051840569721336958630417811213353897716987959263307896827272307596948616835012015283203242810112020818489069953948032566254469054271149394136823726182848821990610385651520127995964123779639119016213431389091527156526688189424621091590752065865608771163252688545440326819585472489996708021780592058918242132514987817872091371807681024053539520999324986352085650519600746607093056281752950864578825870513093615023753071192064319387816725240710438358414293919845015957166049245248415150694319937856946063642367963797934941250067932560140767826477604718694384888135710080788269747077571215988811438379430397911740601318727174761942341598595053798805559363625349848068143948444313208962867133140011507555337409402582364490683690949733254734163663177058918746722113440911285897310237818772885987602441059690354954014185312186102586900723685714371209682451526752546097928680065120650413560017986562253682262144050637424823254173444586108433913722145982118998376493787387049968330322355103284303909171452960478649890440899481052339433054853427532574655423308350364805719102881222123149974011071489516657486394058904927466577167778262382314125663548207198338104885688730062118178901526851128858236632905115985231628522660262953849840816932289437360822863338612880178309757326016194695681893070789105168284746335952247802809395817250056494356860889373016410070173079322442776787198446911595239569708221749483698041903764428853405455153803841843922009701635491067031596332337744759231028238905602986710100376753191589587751292097800245308896947293284260871056279528564985866721774751907228790585720668134945851806168981586179027608450058794577184918777277248067848362725677507050228351974953002471353606045888869145040563577516389908400077613291548402581813943651383203892162658459476986677133606545468313487787924061659133586708995750181402803148439348724347178329279234484064795844639250674324561801341812969806537732135914532945082998854289945125934313582973351824079740849162144467397760226019387205434524238997620920133428981478897487199807222391589350116212805812654855496896854546665734261247260936366113333368562649238098200888801420793935724426989104062499623459057398385345769219656107133804490377748850737099405852837748401563635428874071872729659253455695423259556527330434051045241088628401443284863310303414382067999467163011508126890167696285088531164232244978529795156795794248879495837775676262865686681700810986789393438911148916721377318778654642788497755028664306430637250346206588574899667054778224997672991959047439817931314796523565287751183193705013060389057194944552591290852985673444692141893432743771431888808206643208566365147570573888655094780815299033109994169518294849531750468000335626009458443048387548875601847066796130907350935300295123084170793446794956375030972204611526971625996145526221280374137194074649756697743731927156099520863135748434700668367285125138386702961228333046919828575156783955850592559388239808440493057906103558778637971198709551447293086659589516144291742672011102253683643378621658579476260156707857334323834803994404750944759950448276946049180142966266096965559714426756884829755717446575748632760318143043849441893819636674649707070808314014467806383632586893596053057927911622603797588993540237629667570900583816403512200800309772203843369222387705301438772278377839618944939534616579046385257943590116544078178070659790669665052199862685164696257746609385324645007261613711613340997709522063838991870130601443875612975117570863719351750705301569195891902103815774082210013299377847529046722273814128888961512984368658783986962928693001938522730572002738311370935769408183643343492149518910414987197599906228281372667901466233002359317412819231394600349685169601841630107938580677507687952716805865523156644450994831703927464993359873282028280951225422936221217179127459484714275662824452034376306622361550688572370654930890151673459358418487838162460103907698428691898771957440696262622914229826860419732792810324614230044739632078742112598465288276442086939853638445439454414602491521907003419498470763894162233885139241330094611453848301609844051468855585300377243028269573917585559603835632302611546308473884588366871515490016949369145065754666615884452962804279022686214417585864364581898639658164900364108483197230210194376830202399668787611638043098194843186090959558474224676654671836135320096087464886076056495282612949296353646274490163179767275852981277995484597539528724722993249558950513355013241525714677975171399282729366811792792963382000117168148839720782847787299380544270352955880258434134594698308223733463070143461325954850232357220540106497889228530405987244249002300407304272441147526819929913163284474869780698422790002049651265790828464620782482054479807302082125031905499502708993995052527452725462028245694847519429822379417886774369068804611168964143804459849624276202442800825538849057211845797171481216782738265992659863963403301962416420021893379574759594064319062070033050400905591232399452366482869152306000276972217237769890234209974296457434375581514679326812007193113928416888849143482674072542586428738978815328623220806031609295486715786897185246247249135961602552981043417391187485886934955670560611368408683655600958329124581437991371690452384783623304606748163500451618341804053902535958358830370681619485145147923743723222732701640467815008220946930846272199915765009277953521227379688751765670958209863621822391172108177475773516366226124306861866590837924684816146649136138905124226660566984242088663264954734884615792961628475483021497693287118407601319017625140186366930744894996244022778756027188676987993914338237259973862328069227713929827433185941595832189860847203993912146209067726091732616051559539457735856066298698392563888557828577564493499386957272136367936405318384587401393008814069128969598929643280378752613639438644037388532840544519614235705959423004760616735823766873191685902778590546171606536239015059675650072292090635742053431645342266104425931345941587315228501820035392858233525734053713438154330049173032833044221279632504449357101732702048020148817563222973221462221778592527151062598072731566067447875194291083338241142461534691252602104534989815865557751182031579030230172708873640622650245071242401071096555001441752641549704789217706015147253121833987753120855399506599407877357817941943608906396719363306626920274043670224514122723857976424820083559707677121083478615366901992782161015517224027469386036026044390251125418414109855129825323799541504444083255468860096163024643508185032317338745249244578526459186310238883076472437740124396105870515214531713008272186420362342082014587868657570481980935161510783166095454102304199532078522160625338038082620704384794410687319020457766686952118778312158590417404483787588781408551979907490873994231749170127070279893386733685220523043999418948172089543971551227653500806427914712965135600790514084699360530188366898680538868547004690557521873602248457379997995068650600933144333153319956589242074100065979078039503544580208988958558720787820075992090604618789432773029799250114462514015754987507381490548795686967463901517352182923050804648050745099523067761199320699590825392743775076222242413435140131336868882682420143866289450355454974355018611285273163630088061112175453093859847797168905880459674469783794932691624940202063966939930116997324289981986744937322507230888647210513079679668396086198420246598313061228951473239255110071074250372887235155853656811009364942905395186370520209883008480324469190462931547493470016063121613529453963905148837120451876734747142851036671446281896839830781073248799887768781813995222021022012579422752221243548262103861934345471624927045015909589071854937465439196962762580496566295281075672275424403807371635793095661606790813846925148123300280424511878707896598941402660547241257277453959414757403761140777920686204390714035092309938345885538864186414254419005274675210183113035891362806629521329887255556560598966306008190278728951017238170217085206074779456947176058965838959055459699240935527447587129090167886243999080375001404341617913001997909283683290386640561709550168337983086196502029531242812215350035685571977735031012258669417154871752884588322086356057174434984284044256468568112365240288847155462862651039143511888237173482880906244972918682989701967461610711762035081588974740605705216016032507690709678536764948228047867081492529582099986778043196578196398805744162826523506259747304401354052439364924332957502731183709521683791389194926315019759926631744207323789762560245448570914035941812388332803466040589759018954831090143263682830130125394016425402024471861347308518450799293265295704083876585675008935319965114102641903866398049803559255590091547085570509799641315649859068410307433684367934148321051307118219501288880609901230098089174011030385610062272722856237432768580876226265317590143349353578632271571878115519324722126728247232209348452450222468652952769517304761301342735718939679328324830911100152062501426129661292344393714134360595362599380072336512750784479465654654511306742846677752640651447740131499231791034869228504128221448789659424532228773410852001869944029505069567764472951396402281796735037633048469955168140870430522052774820761538673256842656751188665862413461366329953115333846618310924150447839104229418661161673858614861465835702168008203261438900197993228788122498400156074420062136065256165425888142644319901067287115302914006168742359148909955921818123910305718976161753598823075141226746497412633071763819888109006929056074775615077400158952307956045326591392448839181329002054495543281193634767347517891307849248266662853902962667429205024523168465733343853555643152150072756712634999075405642575436185303554026359567527667115799433629300467474611396900533765193251855738218795128296231547513652894709502470621695515844405436322521628272526018351257964668572405836752127934673270326284213619890259232964390839093569430037294392007011377132855680589957027450102914874666741648456810323919600427269481646774138210195121536374167137321254203063733055924556091429374198664899531303210655314891802076913320177800683300307263842001286891442773555949005941862458600252403067226123902445185226510981739298644381652139999219462640513396648336972295593087187599737991370851661993500824956699619397964761144977982485582387783189647170814172451639029114402600160110414997176005820967026218170318883753895100158145287459592660974391875040006929840504634201727342673431533751591061641540264479973831902430173526443839872984520385566289549268685415938970705282986708018514398490602165464417251824975646746341770670983316294476132000971667567250888949421481330291089693370268939114260497864778089702192925505611715099165885979348791041979078111492851375308579941327557912898863948751184534668733918308659442790685949251850906080999517428679769749492829317728005255998499118716460453190037620595068595185590112532589893126198067403271414806833945962891225517835029734332076036358218983226030750921320184899148085231327977995362476238494261389048174803769462470796503708109170487991319981847096478768949126571202734288235246240922275908704622349461934070314928920027649534015175557475316950376095469389729466796475018525562152900238501407260902650864725557409664976750861610864691309370772193128320272462525017056322771030736339956918888980893222826443603063634532181908369931104395506343885384784513577342738350140072490883608625757084742966141047847694483875523865698553005164305845102259312430270727384084725482660316036018152316811892038392235423973895754569174904509766716831568175218683078590873027223024078870634548937558941002603862272379172543291709747852100122360230230354990268131757992841809141216407140522752185371336031424180376914894019286111802121553254748613465849612426553028454071998202214216661369701201062141154289236765074232803695810286324013535324495710818179184237646103257859425177687201862388350806177484325782672301963842580726408802882640573662891866316207065716450564637575819540894634195822908406546167920923114689093199982255374121688642243510542499232377784905190382790404481870997374546366091235550048190723619718449718298053923965591022508537540287359090232744536389077908876199498587777737683268987053098897771645552176968033409959979957773924198002951451130213555804675199733157854285037990866162620525779554650393887848410808352715478050304055618315963509387705297519181436568153591217039646478322484183454065550542836590851440082247840094488001245608120800012836846827973050352699619660730164704552018975052628005039109715100289317465499179827085342538708279739869233835439699562799552893730113628985098732110420855847236525471536024402268109758230392568118320067278672617023597079865956717374759127249879908950893540386540249967390043612291336009128402282329067756464871144131916039576130084832601521410977922683748813808353479531254613339331200504475640045537462781443351443593990709287877591116888079638755837803663795533304567218637542955263115231626171584028499788028884333281570276429569558432812781859367940219847785601124949010787334128221755278209268745319910673105596097073730121133297992970068095416743592526971901406276550288566475690829252799107981744837190978271226643992129952315213955664472045906920520014505101649299965516813919746407858852904832337440641329739269111582107251589663878740209646424680991018791406029074272806775007939304837533678341281073148080333871113384872270634026102028860620805597080557389305931197860849524513886106781440126803844825175937313858047936236187503328776518917003111317183325408031257878059912390017478488662333620419412760982121287848471867063856982099794387887516472179021818856250677746250181183768650263808370975636558771618433078299610932232916416253567589853319407745066929178845962638082918208330605043428177510850366939282381851229949169082525819193276169443338070619346925169908392908761503144249046532418355451573702323476742021241469866147340533684856920765171480354219340959725887367072114488832806454809492723945101608210025466184583979573523853048039861593305031726000104397267197024016061250031588562624020976318016251269479210055421902704731860248081866314812275268768257975275221133777317096536518865985500205114778105647368088207991538686867858354042875447702199625732642723318436367639508430824315849634386254773963035751439274964748349072903967815257832205139925508081948368126977629117826448491538383171505467748717654272264466667347034985203185756620090883722719770529167744178270342297105798715950420874937074156043908806748540968598387608776240946282780925577620894936910608063093747272482859672022661316019516727358950033402103795699508423080068830549477726771665194817294411865910498399496580283614506580461999548564466834434006380399049085191441856837750240662645430075739186929537750933108137870265714783322691592814808482143664046296909182591598742654334424412213035582950317069800569364952719736142680667289172762438841500559307920537469304965168891730714183819457384025550735126452351537170887492732935742096294805423493266225186512806662555210218916739640972837164296473471295658379581639208574810902254988659824007008684890210279558070897141990037276290048428836245767392048152073994776455627663444272302196932883354257695321160319689883154079273937957769380526704255650425144292398503880682655226984578665519091076330000893222876088365195975281799967363002821568362601848663135963073406381525103906849421919402687524087517923281742059083539170097147608937830751280454284791362530998111793254754794556244164116368664308907404128854339992105177199327516299406214859136651366150128899537612781044677297451792105953344474967419390782114627829295222039805663232978991604923757502797951128257990962079254671460878485506414425217707375109051762359535229605933788244510169435821739396362447215865190861455458211155487849078551739055039448213149948751071635925799857863048370343964407852700337723754047530045911500409157300846886293348568669510792426461581921953431559804832626129229545085637665211600004621161875631931381324950425725160239022608501166757891788164820134218304650818217840332573035347277523746386469622261341828203704603733273827582982288427662204025498776885493635393801283337552974914825811090765823855779214995953603219065345563955433220245621207185992125080740657684234293002805023250498913002353864148192234654413894761381760261776760582965769316554234832908187502976499438584794486648047966894297872683240288264372962163411961768589458921980622848727996012374397124154639662829305056113648821979078946035216344689728579644789172035072054378914845175708554299884876087054134947070860466608916758135602643749695679584299287574969634826698778323416466313397003722953282624920522851092273727817312315348201782089564046720795399560874281081092508342228726995999204968158004473500891221982541177129376414874796646511940321255252135425262864965438000065215728698923658470912570406084382730351985239312079181369907911854046024072138506463732869697063996964961905899385136707177377336389493350574462125774842216769288725845332745479919320125965077700010584834843363295594506868854530563846490638897077950001007135900712554223810709844785531793936629334321007324505177653133559966843922306106735616333085581401724016787272033285129775393311976940143162127454895299693070268393214905943482785633455145152392542051620685487668942296475218605593184825038743103937553570384536941238501737415179057296917010575693910889956238491924267270518156985637821769577539144339246984841136670828565731141996397121989868010844958303591949151568357055086191518535852075380420891369142040033360168806569265338581420919699823454987786529390998838585670304762269414945612467057562069502353593259269474820457668016646270169527846138388471312192508101283321820370502576741858725968139816427932659203880162009233345989170136481576932645410707232154298833495446934045924464558951577210996187839652884245116549479771930984737436317730893754665813545761275508061252184609921448910449901434507027802740249847722439342261420469785672160005597220245036667146474776388510440449872464843666214169435192102983222849585017674574656151306580718714742215136950779191016351866315500306720078866311974258876041663785312177199309653645686109886927058437502032544167876822610179799412481618977468256555206756232986100577184963739101636223569191851029929386571502514418856944520432063392308765958088563191991662546361166739731603457543059088106557177573311008472662220729070017644187647243103613939430283392600713180404445623890687561914017334736819758112581574562718947034288413266277691456305531716440145921062834346389721115322399108417440928353588279179827571400567658170112767426277050417290805276078164237952435516650110357307549550430428192515892929068131816564443054917183191582661368853950125924986814670133513554968189827383979893205963873247900767504371738730262372726335320537206163498156289066478681758423567341706103638825323108854532192267509417731642979563997215201755183404582410074229890131999998373319343184083843486211065934552004884805242125144062693015244817048978213553950115669897622598219594905611650612299611239600997812635760380795862422336496775979205658254802924127074210382054692231160949066296528822797869997932635170587665570918662700522883388412493209161400259733051122840913645385468478223487526590798177253682805007846881483990772500622897129270764176449489246709825487244488732968016115280782713908636354341782656042478981525143677805960483929095729387950841272035619098003724289852152010823661567485390113400997345682871395384195752805145233828852826696566796569307364561074783706486531508581067060570899208398722861060063220979568359361010331718305725152854127751110216651247549675913293026424726520866082891717285024019913007143326681001506023659227729734583749251796394403913752839608251883481361355434405568064422048084654914875050721675497624011290617542299374750925930770320233260589874840942024920104056222850688607727124628089285341435026533191980182177765953407373543712115520309625689370255087312431877440743207413545413432498905932181468577465654499746970664920687252713138296451739856808713345627387896495859651740962010809361910728783680881611052931848332414106106487276466511914723697812791176615775077535318473278162118149315164555166551798157142836965599367746272139414845133446912558754264707869883842803751066636913844586410907523982490313541660420292754042531762273239626673664813733138794302873307738580604808748106793450856772601694275194346398220606882510568225731982998762250950993789749149199952653626730838529125366322613632035087109102052931036399835721601964015140917165721091578178437327545765947007648580228342984902430335451812662807461472775960223810167642728442998500960601250936024455496926342542480782212532514330471901784731842060996898486741866272904744833485884563908559925397699185337882260057786946470752238808736506417967993076454918082828177967307811782116947698155076912512010992620062425153179641069541723265318637500817531089758478929065449893316610492266664929739373864358235365168967391161906692200481077996384760963056112040925191801728118943137872527638880270535389667637284419280698393962046568110918783127979436292486671032174961397302862153625675457339792917052548283041178423553598514895512388649602330967916975314083871470768491352952989324740003114035280525403923088070802649335223278037721105716494430190190258291836159373498379493633038353123290530938406861338958626422434884578741181891385689004613902884640963513865288395357906283118504777863398248028324664238426353293147926473737080167206882858077268744055909838918545859767217945037316230860270931695025793238600741627565759823579098502289748289473918171754162678314016487308245974204813761817236266787983439445831874219986803361895224333501290399768099248076924382968201297791438464495946383297914836921389875261284534656490207659656034037525404103744987956920053555914798492434658515481136120263023701397914353035012736134172456927839915752202558789642350374912422047786677299026890780490595392178758602951719114238632028342782816675324250509319068261371158784500260201099636257399842975080265000504498216227451746358489751631556629669137875179710794484156112105645823854134201582473938674139971149703532877289584758730558932301764663304141659237514044855972857169077271508664636754273419003432041260836632245064011604920027210592119646394314123917578828342687271498917542264411774036386772095434832333945103112927345276329878040083993278271329904610738812815754909414265817881552841114089032875350868520559613655425439227094259528958658452554755666324358597994637173617701506917120880361805310118149132970208525187586128502045392188450976443163187155045826963006660932957743587970083378484965148201586718969219065066581412401466477905794158826173603273504482370856606466158447674151863129763832706454961787510817798327349770027229185987724050073720056707840749405847200700525038845573725596502898673932020465975619809041777216630695912146850310881976050508123774240099852827596763810848479857274296650904089260092778239976759515284558466854911207331574200945564460690666827755492477585290001153093783243054518695203203164195040998334385597365819793467100969366284120436599654526417913995855622038199133178267845706195419820197510709661192369613392654665231069410184132476199866040330187487916190052558018660309342549187447602181705984731569550535789884795304844323382842866425301566072394402211819137210975116479468158923694304468978744039297367247094335557534225282726834699495226596796570239782103334151518292303218396803244628133510176431330598428146323541697252699345680353408165617403142943626863438450738678248184997065649435229074210862901696343342866005152152823123641453653925682383932587593859427663022847780562545501896440563626757795846227139799820728325733284924233280786999198411642089801949469410562329559129503848721962300943805558039412154615406940361062052242291726658823944954514162877006458186282546856084311245984533880691284935523433504163752087969941912195750827357596987624716768798334301623406302729984982869005959225443933750146625371670917147416337782953995657213035431826949471666051562682175996295611010229931433165528644482113127581619872011426468584524389290673742595609096816369267483337444473982522044411186529477784106047213014589554388506624799790818065613129379952784684995608524218121260750312231957779309591091752609012630881998246393929725852844876825189687073643532789511807435213012871855134851834533720232019032416460549760696640318729672553960209480704569858175051446701749408554022885955290845115506596447603519046378673653494306601678854317284671102545059182791276408267529081090811038246421323243526117765427193918614751095160771709940586174999448773862892018319415790317645348860129107283932951410975244850814655178175466331017240127711883437287526500154473428423757284920158114304525972510465948720139365837112402070406684060887440191072016598848728059227780455215297637819871171714457893655236179777758691969566235568881768189472682154888345437130011601049142178452118214793846075170808705282773667587767314904447598483299380254995616441508748334534915995678395422009959912287285164063399940998195533748459773914997537271829426869403809967788504451582255560494895900081555944977853080081462974666065565361026972402557454391335891131424943076363081717181288038764263757719675221744791855098833987567997739249128886892606914527204780630595075228901388188845566010691337736018993434988716995957752235867591728143044557153351282207356940751838845603784008640831851548434653973575214152327611649309494265454823205456314218699722767955984069986128521986752600556059325817793808104820990236766362095924056826431930339701205836771880696675735721365653204864346838288289918755155910993553571910873837205222678559704643622795343221070375079334306826414851430745506702352177631394770984549902669020097046691840591238917738114673740138490848760605741152975500154865139601063035023193748863148347216625215732492813909448746531440834646923914652656905349345381518939743996846448357941989067584907187269808514757345383888627780299470416398615757356620231829115617893387609993037214097430305753455176003890183910438237836674888655583634828947868514057742780792279520871376253127208167439126300185722730843846385235997628922217056032224331200582793331352009135682690664155665758465115599144728209710841364199687194925593877678705686841431328338174400269566998983652031563293470297871397876139243671463807945344848606708439983285497341478687567006261445857293030592613112379658023198963648653840406064897242397862767171797112626099922013946827876171119473357499689295219281202992925302747685705765097643632720177500899261617032581238684123284909427879479784245646048681606094922462496691721610946125035329555249693983596771614437504866401672914731553839391335289598576509423460174451986862702560429335614406288766088966158256715097815203859430599556250196509636399788758244101583131716121290604414032660444342669250687435809433778434091280305382255962490347965728383533548866187542005674449966865864667979610836785965203876223628482686181805771694236733472251018890878628728238458343564515854041919191829460570492541517513211426451855647439915935012304783520756858722774451505842467790600447678672854790579808687503882774990022834537667619314296696446548516941265445222163242053144687369278603712004978868388657324876478989687947942700851072493340849844872195806436667078240474258107427216442674185539673399967278708519045568204748635174993549240430910481403852794646395028018673082795597078659834140019274954911233860650059980552878815351451286215604538591033286655804367702524042428166444690964819753417012973152924767487171288870350729876885279009329481488995001881354698055300603425858292580963502353573044044983510253418820913376065267261442232238176865447915400920463234920173548560747895411384402759488307636135069024429652545015624264411951979752401711076111210966445972566559968703246511235347774256428784555704322406089345813981014611955388800018918203126557352474139659394054099890146534323220213830072257686804180628622161246725643457199469181857479191291479359009336145118836915693100001332559046725043171879025537248056155188191047125388288370859293572488596960704492581405279271941605119031304863037535224117715578934307136810282929746658292443171786458914454555468021753435435994413118711336801480365884107664237766180775272023178682982800957045439220481796953843755420628014095113157781830483091122342310903913080415654092307150760915972593844984082097179101982568221731271059595613629731211867317195569484973885825455248300013120498762759320876938114029085378227127155384090727777693206593732373294730349710862746892736302911402809715584248352646892426424676833643403482922017628496036939891335764995009894007461971358263930994835615391225681142757454468752621565268358476726993148520155299741187761965395347838458409576865693739357633393435173406361240435025881025608298583911553872361039047791499664626503896258586250613018122017814612107922639193870889639534401616102917136490281257138795819867141730173420991466174418430539138749197366324456778286448251295265060046510626292705821702876682902894970920877279806670638396498205945270512340749564332741773735277599675984790838866770342070299021661648568819884380301097808796697787410820451882032472409510811763911531395604825237734359995682944524290093656565263846106797477863975293688162775817001849612003458082081093000918837634964921397099095975053863830859441381175481823963627107175113979347150175199537266683228325165544176254721256065546020477627818105871887225602958079726192377073915155717149845480696641609606824504484526612414882364494837645068971542296257088012113674226398786769700370281270082270961428576334385426781304187370338554145134400699332486488578926923117967960445534967583461963738790499678344333622652368968771948283661421057170259908469931533606104484236492890888562588411386245218242811534753507824501968379298238973727165023710041929874644672279566901305631131047038383559958175315350187730877775231688927653807005027190443725197032376613793558746280592798753924709411002837346288218005937600139071564979773806073502315366303372461456523990478955140931828301403165306585890134110744256150974363039991272991454423145476287381131198808374359652022139926762082366127458776487557618778366731681185080007445287825008824448902324609773208632493681401925748239151148969754480370135000921031033301229245588302683383383299524416536612220036577580680842101047174614918538053867785141471782433338944890018098681261604065834360701508153454413081284391214037071725652127546053860652276421070212916626744259319788867079520649421663016391481044300402450933502758923808956672670117276784520170750563955639260920425710645767281366325011929692977978343475631875870600770667041769494525918899107309313742456209331215225936969805248303167276936388810110645381935652483917785592229685834116748914821962698808454415542881915516961996871281153652876449200617489963190026837240852045764274008939566175713967496277213526064048363649050355378468205576233146425414627032158347996994061028325742908223723354621550103252051734609916161024869967752938900719959475319261084550157041660630757628912589284567820552347865192690033160418054872114353838745877475326981600488743614194646023825823070564498156426663157057663879454676028712197564015982226810498735821188839660000480846727871243556056658950702338566497383050449766704896938206893012406396818353024031912182717922844864810980989899396566214788183124583179516000793363106698686323035317219521762696647534945045737605025874737309684908207297891612938380629518199344800885868763341985015913848245460453396854538848138222134730959273907040303773060585479089160004054883300435655226359408294259145989339501482213343195821093642120733091265080625761322612330044994256131166071051991452560266806580603189158347947758816802928613971918603068728417959898738966445528706469376116322403643322734311757849376172390613033022380191454963209106506869696322383658362821622888087039146886583178671254235024466302785072874304636241189073585676694619738882636799810706344190747335760465439936606271146500309832888402305944264717401558271849866949329712635052105359892793021081617689115910930570251894549642454883860070611298825756210766596098862488727450974711465136571869829154328655929206869097668639716895586173765493033182756089447086765036484211225651791166946008627086355655774638505703425662055196213909481180186899310424622563156835560829794817042818574500849984673229130360366907061701623554423430816658811955255444613556539422158319160351161517359964550639948532650230742544792436774296082334752111440838996583639814152770748190105152915593748807676690222099135154870074665023835684173084159691159739367932585351945985632926288439804532442131093291189261425352668862286487427397128529993668083343937934877188340434431159796195276289182272734609392657089342132053633572734545031310635809148701153876481747044059826444873414639691523805215929817032997928154058138865685731881066500535423306602854795520718040266692879940269063909089443554132164718954140048169846162970935907232645004475383353500940375327246459353045944285173556486150332223066022800065653282251231426428421034657832898209462412780678133197417876433469550802864076651050475414919412827786614109265599793946951512355039467826849761396702955344687502452789229249270936098331222622472308592083323691481126523094202670690670995895981138296094473204167594806041871217928145179624627067746739442644492586480593604228767975584591085024070185435833731066763287312967231911872649224779776712647494305225437280556670837697811778284926992591940696431155298280743396322912382171323723811470944487563079667232443038196004113364423763330405062298342027554764521619745879941296753550801184340929773550599527390564785387876920608255314621328215169764377466069235590504117183970688405935395239905618761624141856785917163473319955831268488715055088242860599823471366333655612435073479197740989380092815995392499723783755132260603724282343166798762311950821901391908362708824565708451335581991672029624211831568784121691772307604600387525354489612028475567849527499443800097456276533022632375952358330684971470474273508398023540203636750108758610144443380338385120542598099806250180685064495922123256826619343293055387531697571111221600883311833373038183028098926105317334868517162192182506172666029816161254466355985476557662401436051664590137123640060010056111358087337914329399856209352205009947123932236047895695179081390226015419515190390195661358021587086993018934001694415787870732380034990761708103515797718083786303161150686863169523702657090046089593509355282690416675415287929443781367385936988964332648522656855585027335218861762671868562039606145140403194008183470589224370691362801149050241013567868071142065992662881545286562678532448666758311623456674608912335227756653493832332675951336469049752476503257605340912898908573901930602116184500029408102902105339767241396328871084924798922988518506725514708638124369468473443864569191801687544749661826926531599092378631687202879152019231322765808810713514365471099099360674327057312485864899930299722306271291917016456933914999721674308646003379532362706847159090905728729788749589685489563038702271805622448787894438652367505027026267487853882917044696711613181356491201401867186253176056408097390922492674956801469309268265085182178778067262596264592621715261153869346088816861959226095242449081326454244691432142844917573520495850716057714514885732882600233478163105044995024188259714887150238907225544238376345218332855956169960280622264681388630803297701235494628671569354276847899933649540643319829042622955937410205234764901655895293323544456731043317968702330286753771349505014734804753501073578260975215673511424875173077417863417353705370759239612384810644533030437077652559525250532571718529419834547108900231264269803766360108040937492595412547473737615408864990869936545666359580120034274057323283961884532634539217912019923892154918075990177688255392255810635074110567768266151284902969334340375245383250252151392460975218015241024954223396698341809464463164996578762122993471860874237737469833583988514943070607361606291026214546122545697902374272051962182767657307805748177521869172164345908680884337126586803672274647980824224976520386140736159794024049433470835338717578381071326459276567721371849129621089261566796630358316140808975543729111775043779726306661032756785222965910145214929512500224127032643920402937802048254509066010532198649708971586873455821396782645460771121431054990711013049794201620633791847112800790019375829025340005103361100431979022190436737493081306291463427018306240566131730636923063811368489431029609779066455435021615851549307028372037836394270903291846038969950357660022733632306916791680257713323259530400847539655102246556692078140305593341752171443354060864214124482021105267328536402556691219541042712740318479807441797294362488657785206836781828950570452536187406573865860862564776640363533208338135626729229536587267584779540748630740403823132436308220751654917210448806932429696317777034408257545716850909072469475944013064017531599432410074557605312063588616979126427740731133234224135020878781081020140097588986587662632964210910505478789178161678650804889262247056505336899281089919894410487735304627758042046144535404125777627542730865113806272797018947748080824339977814971969877881578267537114502034292912834704632847074044724704615970730647027350729794909927771618007202648332795533767373017063786057593114059185433109759942666120219379602911551960893559872354112138166140852023895933986718224846311077658409080848830790333425106270483071856301841393071755394264159568874155557977000086219957905177933528570447386802474931008830403571450454128374234909991357668351361026302956110316642636009763162960961891169867336492871480878570019969501453422759342928881454787559575884088474613219108971484786843849738251628819894803416831550526044834319413985847941316263362385642356952304471414015804613349881121007552990977005481697309067514922284156301389344663655811224144331529285881409728898582347230908205459871810553749786844426778215362681478562928103813319954750059792317896441570535753866244300143382860894413456334095054120532651898224286742645439063796067285708062213106188106523627060768679937161252002412563097961714583349812054617037597438442764511231499600771177251663157743086085541486137130698441852739030205632247338029689433942374892537455057889900683276841051501182525266308944744388163844757341630887084140332887140642254275312545131903849465277415491934180085499610893190704990745351640451602586814023401722810986546977774707414922909384777458514326610379366761308008486759577651884347973517506359874225552297512898626573432415429024589241718780218250036929058169590369335944171004723897324914746863424046153067968900829779229135291061066270970555817039958941225420861826769473672603893031532008567614160836198677732279320359894110717634607729172313335950781353299960003404306352513776116166312526292411135442035532914816515572458320428929992594928328611469278042196488470110350869184780370612624810401513996874505318938662812120275278829452610546632161534789534110476740706071448231781839534974371649358204143771048301261262368005351042336934479647225284398894935928794624037054390691272653914815784140288805531078350242448004871253593331057635607636015799498304478684992789781498525932976354822116473122347310113339355903147691619111637317107618976598637510042951563144607041228789615068425265121571948829233043984147862571434849247202391298705656229956972169687682416631661970705318113801186745466170495168738536572289124687027433853329606504518273702610907501212903915304387027068989717743443215053009701543978222054554555474353013218491164067002228743520705390851757588691817439580113261334641719213633010855377965630684295862516655897987366076038571440759863999005547371187423222699513302009935214065122412697525484496896059756624394828535437318657698493804416393083682028666225606427295874209391569585868030800203502922402948441810744162666563161514265874151526270142575937038510047220887469811409864940184511679139531505734832206230122291943851099070504944623354027116058809829064540272012010080304788657940086887664831495873633838428854717887772624465556650220622204036231166040158958117032770845017331822783260325229648332264704504388655162296408562080294028392800456918089264309862338950835156797006652037710444128029744443707438238595472235423241580834121540039978981329111945492845641605650669452800790010910318615891574529130062256441011740614151521915030679875248523474124835928422110346594925594513148849543702018140802492048321791707611705336239823827885598657703606507032304547157471718547314199163076336424608652688566236524586198646535648222181148323632042022493537039449299646442729858995989195906688095641024024426312039915156862703724728293086648384040241953363024330904790683606773640711095676174899948536054602530856922688437210129489074595977133078525495110075058805369389747900968655245095458763861471497268970972805322205585107646682770261065946793857189216874650016433668965974971960287354753558739760161680123573981516567787648562954412925594460443228109001767456681779404450289436925708782075908347133609554484755252658098841506389133175714559442973000106697541637231635232009429478769717301886831471751438102483567941750493774360202200574682487312724928249059056774602871023129839705841736161460586334330444624231263609998125173599188967264493509538986974683939062969794071572666690489390518207893078329648696292634861805904697929881072572354561113534174141105869555450133318658753979407833652681635926395266299983245731831074673849517746426778214499087804278605661202034803259816010860116219150724724806467377657077958009372509151065464403945794585797054131323202353018689317960681894278877901430085508285985305347583283803630893032410903878884211125300547793064772442810294293407902124829919430029446719204899878117543393604754532508439909642829973347554999150253815764328947051890970123279417969665215405008564593654965259405029320169188264361880511000857467761424666444268765908572919815304239243505492465678993712729144891403629727105178111398338809637335772421853040060411739858609355712185841759568745378785605908263242152239948337549753378756386493361763999139658534987771250395414692871740910354121192159682667091129259853884018069827115712713420213212726464991274791499794186111966200560196284361255902202105742956486063308459303326298603468028577648080594090336994670623274519929051737293340906195744183189298799661978874801953804768532153457323861238899670111243958786279420222335038281619901989525567475598662881523641839916120699166608975320128534982489229402503083210222399855923889696226672030229970879875599450364538118662953211423079268713469354061064418782225249217094339879821523850493034301402044363055268770702176017343111087395091089016431004537665646724512856145432356436802354861174774742320379345896389580585921310582065699947418569589119116684293278184969023568956454222333684907982840906029532745300840379700832524117491871484204831479814767302846588286022831990702497350547010958178235198204267819478233117521684541528675734949469114050184448419354851112160289243787568956736547022085448548006741359868680744015790361469814327880427969171109130304000022602997521348955766570910679592876893140946860167573910357978499701338175081176277153270140839542404885523563708782480537575322046041050105035543015060057648098741570625215623663640458125182305926779947537739909799669551029973291756835045375990525516671476927233670410453874627580433801322387265393024649904462749260330657549307642594110427530888858585978754955608962333960949200347340983791549350547091362546467111865424458351621251243773047041676029064873261265638178322976344615116623269673645819421649802014936969697811942136809317803134168984925870784504898686245572099874410428311701425344256754871973667246884759647413143566975830967329772647983781624988637584816277892040759614266016307674190272843463300208968505554654408202440543707878437805138022834866535027257645624007763676797518471926765528934450585970802028780017942218068516128830081013052837843241949023732540291293104134236125857901866939708791355529271984261443158415815818184715283606170162040788327581143115427801215149814516713019696236683081720758109172594946791473818313439437036360823260144186187405962673086132357655494500948218666820415706689785720195184352605606448842427439855745518202681992011836655226027674972443322797393641029899818467838092232172432845418094412631749534909563849801869038318722815302927931192637893602626006924544752275215426588494895380193284862080521721508038221312974732509247910451797058822154780217542425204441136223961537901790173208541728057090281781998350659040385377685471604514501558484235351558082285166247788081248191562423515013553948335826146236741536402196358892858367144403058876905058022888693114083420523538954543084370662895137143930868229093371095249166995631225838065680519951542049337015901448701453150179640892445630223291601904472706321488905553629077351506297069288770867123346538018127254492140761998069665241090845847918544295493554712091580215961298087434398098098935614868470933919534946922489660798047164558415364108647186332760243949229140395586703722160285721149915397618043249974867572915600866980509450165682315219955581058769841460737229379618608018729962712991168723873399737471381846545430483927334375880916315020836576085158571175012270665934922871487576866896398819575838361201096908738800804109763177092815018379496844989910591824396394314376258113703505388896380853811357989403948455736026439537365128397960291546528450354280485942446798053641331924800690833269766410599839552075198016161071294426200466803234482426821374082297848530657887980788421033647800291522342073046734971930224310407460048681315953650023702769732597511652242123412378725406467566272316509123639212084655939967155343025926595265089636567585285948399226369914922113597478654616591299058499693460852181266264362102881093025380514527410341058011035637489191535351433698092686730472948840994427171414903000671839913538624596379779189975493186296823041327366339627339976004642942170484358576428473355381362779920531975268687278995405324032218788407225793695154413347510394726071665958527327746124470248518136203746449970557027865472863369048085451920535297446179605135720818910105925779733723710718760367188374502623889330277890977011774370136648058634494246253827404313966491633182974462568517484368075724826213530019410653817667363462271323096749803551036497252470525417849675329605570670899337633010879030641525628728937619938202764270493588179767287835714813549826531850083440500692196366217610965794310850588704801489297090390449937698112189416560221460827396869733963604406133206782008891128965538408687692752607965765895818073112293208538763855536068324519239955279430457091350410506989577802813523652426774780280555959292661723056424436894896662879604087910773580638202146586080470877714642600477838631934019164291994287502116977062080686660630575735737267841290031561411206760994796931462633096107028594174092865698667002166721674290244636820579720426975795456780405299272444823780820137041870677206114769396736630844008753638027419151547998342021247705750765491086453401033017349957813701712507307785423666919550275399324470738904006461732241774764025716410308102265584652388436599892036107643435800719889641196437727457683349979226880069258585659563536869108275146099364233499575832693487963995275589073525488936380285242140299175143919703891106242310400338142123884030081626060576475921669646768433539608522026867826442835257793088140829762225915774541339709847043107469747182642957773159578450561455235587392666455160848656842840960781805625622900136333341370666637433250823769166941517917929922789096051549113016112312238365193728378475902476610658590504557056467228933335538348016811025061145054883810110654691694761385458337541847658099979272668138335852174282214459270412669976307141762075081144368340367139734653293649160110359453480928094444726593250032868883951361990004409020074708492125456176021919377670931347440420688968197804141293489883252284415592726524457691124295469025798929080423689375009270725646097428944245139149339507918160697733980813351285031172738273127932952577749972354540274909788348060925888302970939648745492816529350051076079011638935560764675140349509320367636304801363009790983709782212120474757930761764497209309850672430108403928240318627003667334303235584845842326421355273255764939922315296867309597737442916978603204974794718439134320893958630581624905553955810655027754071449296535361820597599832575898315352766990532097172621074670891131169464045027057781769035238294887418598887949573896979088677039701361264211942961443328235106485298175508957752587397604171346782788892421524361853147915060568995072793861851740287648764515275825890179377763897733571085948577877859042933863545042545990416390164284030394866824136234830800631361373908991902275982209057250835821099783363165317033676331677065883189402540507227518063517857919949130198149415619838635499994863880818006480599034284091197701097012842228573531756860739014019884009138809731709635265363348680139569586542579724077337584256827641838448376846900588690259340626200330528830590056190886861881657144082560096274718207469259703061489295302672199509096844998526800253050303609406365688080127946009791547776921501076319011374432945554599542081096197704373053321976065923352467911625790399764118570785116943507424445074895137647562093805561281815636441859641871588910198633859298668515203881163317490098613505673736574487735262952509496667773883358463488553456333558564658440879485721623790412987797405496629524240508266625261383549646681807120085267921641882889910974140687094717271573121301962612462573954542072150712985932731212823172758929079947460605529453500672127227628483964978648381734388450720877995827031665615366809451401081442514293925403298722658342762393150506915829601455095440489279277781887955437141346841833133274001474213134340655640053063801960203318600049323278609314871446218544400637534041244019394520800597022643031003052708091684848486510104984156351949621265757496800628132717770055466745674601464268897228318055676648665669449561509276218429845480688805532250275040826321113363012351027377496959448093837699633624272494529460105708661720360577046788390216300739071714706587507513628270563646169227587833305412198603855832661584638332711676974172104717668708655971129971062696676429854394283348784402391194112529612027355174998803607034112482116892710477780811839407983479286328414128071767354457736122170312091536356167086781561711742926036257703833305853825626603451931798384610560368768748942339615280303314299137087640440269885283305296732849419410142608760613521262876383823662600459195458933412899183288900623888768029532038422605516841340780678980264641541036243864255056513165569507292644225267468566731347271540225750290813748877059309802304856148667619723913088531369501035791545305262333887949900693976345145766104067629859578225529807112405041380200470361875249152890022751043474966864765387931029837099070653729923685121244966515212325953737502092877509282605813761941466548143681359974182835666159320420359795111072821715937083259174766156058876546301321852637525526299482912531772388989864282732009687364009986761300985985336122220653959012183320476979440349535828640674103518760463327040694483985905452956461407596879677945207389961413606043364280311700510534058600170879369852796018912582655859865467550641363086319983266461129063115940496877632910139031157395026284584155686514007160763156372730194175865912741750854112628081160776129085175506332930201085508785560752156230492163347262108191329854678082890149354754951511024340281154450399090045219670190780229356062537596987872380689501815482139442522410453684212702348932660066777395946041727354933614440268358363960725962925766136826622043620895851625502711825977728608395965387354520996232872316111774968434922876841205488998491933903426953306441645803844105006017664708595933650543351182655288076246574907875554198543083004057754408178288812499498448469650808765175762571014729921571026158435628373774242916024940199398573532891954607686029081473447757325266668549915996538355646436503498885383793220179311573569371742019107658611559839632836681866892097270355919739465740307730143107568333936564747742054534447408428380160710362025780138240014016258720924925264144114356639521980850948033905665686759963515295513655471580960759996945215684115053665560271959155394008586116699914424866603102490540721111897176647876045455950934303896924084752032978742451931995540329397265153949647307295918916999664346241924032831063689060001751617013056877346652151490712165356694589631078493935081677499616047925791674896872831332162126785657600713255691660341205364538003429258023159221017482198968017663936928724015152501318302945722531927103612693999216197749356595947646464261245111960738971156423718795037912309425216585466977598777387527004406667593113582015702775381306669599037327939392193092766147971677462843592968729813437633470681664343938657774500525998912753151207834926748133645768810104696545566275029665231055176085406654245066188055344181323193064146669795603786298433517411913377907476479567002043399257770383970633281492694934160315981545066783399645724815193862649981466357206874203338609168716306820420673060669693488227296286506434251215263746810776166667944665063874999549533913707387524092124073646592892095626220052149975153591904748934202763105010539188911308527490163689015992925425499768522874616850127902473954605913952873220347190424612080541787928516271781807370626526524276182968215806692393842271792001165724040980983430721334944825625646005425395405984744317230657772885198933874919810003704949797385248027555634152707367066834285954836455046610330152406691035108669782410856115774138727473249257034226553484418248229329034743893376321441173620874465929494488037569633225674423916704475266390630230218916515208459721502313551322304137270722115206851167800188972215295840777657288024225163591369150804552710536615811336838670305577484502116297794339404693424210902741222130455578243262337935855124913478811591994539279080759418165113872618586628057763502094884256813316340732353002033003484349169575039293790184023234174797793641338160728514628627491868767133357467438186224808819035335472198735632630616866742095161543314575530475489776805054528753319290634556339629688137225653527490081799415191521821005061840795999621388796937134097372102368932751091562668059088247492381707515666562029003087313967618105496064256919893040493472538973540020607169154016669120988625561315876823648234202636328752777032653702957559823963524689278235192368281387400098880551370530588125023497634103153914050949028549016491688937654651218377100780972242812362564340166387602895495290945290162955283246513684676221587516592178054865649206639390211080290560355247406393056584431034800921909715031107044141741531856709211180015606230241509556177678382970618396247105669499869231016773977055017088767383432127307838934522488886158863428847926569949142767353851273340598682691390738102333235746483264089245382101850033593508422801550128895864765535118597149630851941077063313762402838014042511079668566992489628460322033862664025711295078241682003888781271088294560169245245100742583562185788574964380317540061291734856629865035543496617503744731241823092349942628665891906627250105437484065117627679361608535155507076935516796980912808686514320241715503271113576544533774248256406324708563886874818785331570793610690791385257231026348809156758002952598368540034060018992536150179779367039236224181912320003695946495985146658292878576360331725312256736187304351224163514960081898143596474694680796728843326935855012209800243059176664718652759287132914534542471946606759566048137345762135142662953854829328467812218607069222807990076543710089939929209353943203003903079731945965316386987912110518373377761100915749403676773398723514554429570381806459032780262706995609899433503826976419967316559091463630364733587266078709649853824395823636667832017545583641938169297031641333307153672302550512459400731118141720179591581091361963226051155921061283078091582834878187861022017103470385985556045307744552674722848438629715990477511069276929564467253357102733070929054987465110157836368788734110021431071031278282293831598311611483826118574690399871751732886337599541868237476292443588299814783141130136545452430050214733734771456359810849165872463089583622167276661275169670208398911156416175556217905604450064187501345815434779510955324603186583154105517314454450158129844653463388008385784157399820257042991851394623458822071886214914022143254069844021232809879303962967422037650300433031690325243079873633559537813524975132008008424787125213794035642620119099169746618641222743833510328514607656610176494675428516217203947543835432249939690591737635977524863970929871926280287896797447980447612967489795103112394584043929096116196553310783800913244699001966086031925147898829803590938337078832706218931405139336444120221925043658076605966095082810390711368818618504163178387158732045679938940052742606764979134291004779826663688723007330598885786646707157863854990293694489102594605098801328969846621508639367814463609811636516152687634438007114681239752778241090866577386126463398794602008600625978633379535340637147295749598457935781028996884664692235561186555844154335821961897814210101295860324984742896550712766527246427084283561157531819327513957502080669654924154933050532612862985719248317155238376869050062074995701508505628664763652728640577148741897012024528902752197545283012570694342210480949297678500781070277606430457068672289129408692858979007526731148822357000993305558622757953546528671388180269276470823396763851670381500266555997842776433435652482069081216202912580353422438009316837709995287164192959803469446457824133976186071870336443378976148688438288133325469435855310245537055505219339559224530262093211659370073713493786280489005389842063308927185011063985422707059287841668723013117476873241760264078660901444325382667961639529701961776273333718095178146927379623389097302306539696720726246596243497145377881973340592916088776663674755980581777465511775205006619970709451260893215057132373902064080713210704077492506842928068996255297212776680213426202479132191026676151345527817614116269859129901832136381959800021921641064531846090212496541345836345587812019323991172273276233972521334922495540258209251929205405719144389775126830688260455895122849631865720208635736745836582615057657965899094014978478717460695449941531746457086066669800625692976088421123529877141731864876964032701956292655834371467530031281233600633924638579604988650033795951256316937103527412390934279540149044558727199341793049867277496108467009887446965413614910471278836868274837843541075382006076333562113679960564260021220670928846168667918357568917759602116005477698948093928838123331056482746291473918053659004036259933611251859537918950588703860961200109125473674983730913113793915271627678729661395159851925580206119664620697506762698160358392897302926415118174735067210951376283290872434844764387527050317015586069204364080006219220197030781382986785026379117977526754987272922814407991669090280246543326992460152829447541821289497321420214584890502939416265705519684691053513092514179360313540938478859960217929436055008450294343739582500482905240115382204286103411685558026027475541712823947394965417999773031371840586107536466753304326396316899779206928736057882361576853694582526287878455383256228316149072052036137585776475595720317778059811422095995762318521674986860220672509737550812400047027513499896134994406550942577778123399191297646607702067920633760381416595082737316412935925799759718759182647887347391767328838969272905435868442725304892321480560724633756448859575440687676871107719767014554155887305620032355683245652757611305183069268737396273764071081817496525128122828885656171333113143356684615232645100600861176528309986507482095201336615055147449529431329151881698094051037937882537873939620046394686386122600786083205011799495059114576306956688676249912894482303238461659265307341091417328350991131792057032740703206935645988248432402456971258745783152614869107655154829400895069016437322984734969557714800712988722154225964958288362686912535380894720859727416251734655764856616285203126638623996280319107396276695037504894238914430146386961768860251227865949803515125724641685802416736124716581046675271700207408966579111678051335648268373253492736436674997667060854278099686528485197255513212434054408595198489487511003479911819349736356714613642154350737173005476426356279514014404235568619332024341004708194255710113986035708940397291593841303643967063488037255542608638124413728897733174247616166270657311834028321193725587010691866476496628153615390014527641536079567071996304441005126781436517190688920048963685977262092955918622284649613679491443219728553888421687518404299038606296813664121701134448927541125477205454252080681556063222530649223914102971472904599791531505514562199014724438578734522510964206732342987002352778866431565910802545236530434632837177546997524072813305274744752037405145002707542817888336172331135766470431284134292216619385877314591027816733363685935984918480077997449735754699567639864653018342261975792345520545528748533367405680023018464375448021731135299820348810055564393754076955708370286211212593477757092559924986493775590194102469562183742223855634249569910995290125949216119660757407515616361786046168921011825250475930654268227890533159649829751892622980589326844855284976416524717140405418781876489673257984471062758697219541059278383025514169770450703502338092166546890990147429213827118174937141572319942599559312503299298453508069827314177902339023272690034825217761469317369688069218928424846925567760992602857804080671966781272081672057972886275024624519911588572982630745128219412076159890348451134245175025406018318800734705554826717739449890635049862882286068595096272024706487154562294667919313051991073212337067082086308897395002933816298995793149229140357800611091137106896417201284654126677671778030902170099708676823527133599760801345098629366709071885538188429617086567014385239511810470146301360849914489931948093643809233949300479488288742397405732466860069968600269125730715984842448301377103997184753504063252083940574423055525259814874170757068454955679347877948860102092430509904711344340397508589048790639306910342476695244663732220604876483680847557438733974799093864096566232443646033130984818557723624843620921925757915477057011883495719967632392839878790518502456820531248520459586444570358638756599975327168487872480474036630736094418234686975463717580850778841283945490551718120066963361484253220808346159785743193599399847699978970788812431121342817195490407734979722877809288461957459762815563583057987007959736328439458228347408732234022057610931900324783136429640510472089177909711514838853417672296681080189846711184000749948176025582651995731995478477059986157399716374869063584948677380990616947806877003407495522960703243426110688739160780148406560486581476467661474969641326267835886042286029043890918576570733594215961109165951521405050618930730749367640325594291738956757574107007635633750649434167146522657963552517579424064510140630106375370595006806082521993519734616857055191121013011700009286815264272995770585899087901339101708192834108195887139609125334235232976653252992482292492482314276178010162857462970786915913574515546390711984014116945553954472249393046716863781795879255016108058870617019651574956009863587202870226299539261258700316675171919393337766313456546523758111879820010651068426878596939958599213939650323042431004291205411476162666039667951633442074839430765521345151462416311738098212516921089022132352759618994556442315588256204231381722875343795213679303907883812062044846302813867672242899577507085020341052062423329687292541865957970478843260686602759662287827805596555588009390281947117844644431138807099340754453480003490085904283596446756560720178359973664556696383264661584474607336263551731148899951276418021093893270729724891369613112020261584835303442800360719683009309638978594509339704167803852855460282700377642303229156702119225266946063068537170739878907686033988659309872279394950652020906358609307827462924363965029766901914294305856807605724626199128003842288484659013003917633450423755790892477837735479894075452922674242441030403769985810050772373416367511789539422682248665986394046394195205836459919129032898762939999919130804102866455033870015413082890233173960243207232551298347647693001740904790554151344659021434623365794264893576617869423392883508380848636490482814077650059086272239651576771581316801422896990353492322819987391735656702814580061402555092644471698974155645162405517086416804897764912043545533187511164313601900500157718338817679646990783591345427736031997272579573904531307863376191547759768228727113303426086272435456784601361551246380479507821519063499274820422455122325901420512179123246079333681378861869823070640048485922318211297723546871928685016335609713492144338788289237742232141861227422153463907870141161743917371980708878385207657269842391887063914266999997340173989135144908416178432308417599199992164669710349151648634898939883324990878393617311460184385419002399274902659064579454576552266423717860526990699576253996265904445448552375125011857607261151031631438182539436048845998650047155241977735406820041426623375708467965703065095308183966483585117742320593769215421806792000138423619536687413566257672827537610047984722236182905106412031012973772102575874750383471132686204522124948761385115074067496186899498124741832460120223320304481979964387692867794712615903479101846739328641296830394809931699356252439913329362495340595059482987881035277343420446799607539753549597087781691914051941775771566875773421346471408406606908303928865655770045243314696684777481397783805332436312693479596706378526613950635851470244389616466720452998583272637317658480590025408804629495130420452548861912420793417284876603257413218695964496508844408587836976792709855882352831866922198577727833253937187470236519142973041986481394515332663855958834587754651328028188183266159513476372484224686354980147980732393070411460749291607156251669515881368227090927309535591841416904909755899951800410295616790319358005858528803511866088079606752351422807916057922969364335902954231574372304126459529046720627892551475531559879171013589914901658203563563082765631995190666678614572056803178185445041333397574990690820601134033309708385930577842440718233083094494519793880581562795586908331880871379850641403250052342842276544958793290230617619060318684448016436467046001429894093410309396063948651311073732462489667944591084639621819200131386984658924705568746203429379445593938470839161387240138468944139542956734345012692439631252296151887285460195538908812335061537751281734910716932715247580592949249928699070285350058563589554681129672303086352316509668869266407372594250438903271796131999441125593497507370803843619925088988816798534072897215665835670359341182074302098014471239557775695268748222333395761142522704198766459627360450632417618701392606080717536152040167827648400745734579299394874105769174862998603778796143025199646841973721899917119554794772509017736346483558995327178929743698230790641908445133175114546928963293835784465163161598861881437272769564127237943644975473014157918265633194312361931269363535148030980731911011862026654379910050291832326113237160214147783551341783804792072677290079514575457038954269390967405133975240770369711329752132209843838930808157017879260289290888630337915066265093298192057232396330185174430931955646688683859016148062528754800937149081192232341458857790903902512708907792697263293971722333394307023993223555731830902443235903229899746892150994350226117144477158610424621881542535824858100311197457446910059623729240520152467592527420774867282101310479813043140150200065283887937932674284373555894667092188282642852269209181227681519754867376010660354264332179786825912966471403589750266120262858270557194427984225165762362063631666385829081700508712319422207884301887165521231495128743249394394759743190549098919231371094071289215978908977155659159230666416975994715159666644335590045009280237870476072036129180742048327336846401144717487312190495487451488965414438908524447490964999020137688730646957157237921101842193816024433320892007924797266828583857656253170335659360430256594434569595676840844511606668201602253349594136283163790510031343005658498772958144666876062018920695623376723961660228337167753671140438545421033858038894029457430771291130653324006775879926769600257195022580982345518896377318689884675002012135767946756846195479351335314750211004941422382324902095918799589331710910991708857509293063172632628726529495993564568723354105428883511458268771105530255531208744284923027441459970298714610620977572338113575684101392597079586710273546926426752858967679932507889986096255143923635928166843885152128583643785786347913382780100192628628980802758596604885993161894144783681469192895428006444643828145475194278056297637966673978734038334131812404312156679700791265195578373439206426466756905353091811750542593846598002447879355878589303766490868402418478776575208890178197953855758832923938393662660348587609686280129410559718765561214811597235817033793021061141534205035441737172956854902611811158029547724302564400568476930094917918969183276770582186695686293283380949068643858195085332217204960770408273742550986151158971302100773107711297866543727604663600606384698402404868511150523009475511597128931836708660690754735032852278410882914760866160950672721877453530087966668824329429541449692913475002445106773980100140345330746185761567100803532428940348133412646413921218943511248321926712817493884020597872884420463603681656365996886354741116984800931266752093779571922417835420532336688394968113207420797014242761621787199933251811129762599319682377809129851444709437506376877196351978746438580327474050934233467790670742251800868739394689560460678994950976156293398408015539562291065483090877494007512799362946263004312159697810898749975127364771041673524046173959710335704141064964195327985373481685738715471328799782132958354733032358310305336101723425937012739594662742713975122275580807425117893411096123426305146259681949855605659808386000473211375247445135964526016498378945438085115164437271862962939832811406235632689498666403373980253667977907929035481734871559505018177053755446720049813548220956065768764173757366903117664723361395720929930342098959962500218066923720239110111564004031178866394183314438729998727339049150541067457339527239851979756074927380123919591189032422381216337753805238226336381133428101123135095363479130595186533111162443910272470856710176688641785710902354875633388212030688304968503416974834195241611936404166061943116194899173906822577666847475454345243816018884481405930113052234517185636208721268379932914543140343933972767557609420875885222159097348618566627489506787384754643586687571299392678840941915461442470901268159489677340266537978584760451690627233842847097525822355845218112174611143440527228589221252218742412490440701745366774513706375658946066512540342914734233862914603406229668009234027069732993841124654324979073035206027954325639462001187350163953046732746928519473442177215593556605068033937189057398700733239489701817488423343740499678072331418730822833806083845630991269474092315229145253935225598024675421768147685711821825288832037869884159920670087730761050729564814754967013638584947939789465716387838557075336027038118247192995410301915392670828253697657334949633005015345616896898821193616458157675090973467494817245290305744706006089598616179145837886049055800344990299425187388184476183184030596064307164996467584837576916254088861289655623390241485349473244102587209445158174211547120930530321796463269155904055123433962432147375334787152453336111973615959744362659423660180391793168464954554793132857334629025614527290714830567071037700412006133191857013359317137658111165111810768757277733229219325121489149366654837599198765717747407580012539874443242115622564273536708098180793174597274998886503814990422608120080435493668985063779055580320607388178149015090595493024399265471571095411526971941953757397753480547555697754325726354934992098910173888042999395036929086712231135054721773657656048267034794170243580067251594727785759044698679763600112077951676128710610933911452798876415982067623196271111032229289476254136335817550906958916225085925388749096755293494415152442596478211623699028816499821749365903011648042105564015836162076503140504415301787560570333017943078112161888344082637295250905698474241350932857851582946836103713000256395548360531897531762792388424712429943652940580436439231075911476733339125703262693250559688018495700688853692396313963829381108307415510388590670678709211503413846311292063968965072015259575220125196558243901010947343883369115589893375584682653025846783176185439389345368942252810903428522312939256275501366991795271008352092253903881904107034047199977833182878952159729378742866301931088325444680908869166879561051254253013787815067847469230772563868061338484477807828164063492736610011097922705296017839171817937953547766500970496894460111375307835250623706747810976665451717310837028004188961982709978232220506153482543462534364086732269095424836060024096400522523688158413483076131028420647718059942827721871894532524271214287588087526488344970570595075295197102371267937786269569940675982804230859179130889994917289971769001087411018937771337080251270868822951906604208632833610057067149967220875703237582790710822553472584682466815089113264743678197606744011016763476456423730807776396159197914397931373666175715447563745268939742715598628605716752152899733551415572257127738899125317279679211155054755138582592430994654809891763860130386032000086353873388725335308889309001123449970576159851299515132429322881012800729627239753921039579202358552113660111387588795421822380299025641739787274255127662624006126237619779360363207753412203955654813647187994668664036585996811797138516423891372123371149119754306142007405928211973253676722538213563074354843205586851324777025323176275724240016479636012467893459072519656857462614208671962953401078938547704130305676184918254012516840219150191275463380791507674641963631239387761656716953525301325006698454864650735944009208099212177834418390674993490449040452327874786431455361688686565398574582171168169423022262585295115568721593989397530432975381485880588378775264329385948606758759770689698229606151192859596968291196472370896060880512534367766946238474637829647487916426350928538392622764254144330338617290399848266779681474739025036897876844565332385055488505628014432779717937188208311271056975221788698514813127679829742043542014693842050543050013662429257591267342847520527738602335763600177751144654292917415913341615413248752822103705583438423627566821954052347113956092670443865574476227306577032184496077523789486765115028555994256446131516021225958984479000408670460078144375296811994027995840824397196039937635141838340974995936742218253628033059745341536396356470402809371590656498080194154682971525100864131186528759556816257319349169589843926423175154793352938896619706110016142448013589620488131275435835807759498240885496882427047923238068019170339964782118335377265198010995709750936265742483569755623395254157710001216362221900200997383098042422797808157666505288904168162229034694760661268632953651490346576302411398520823957851236175079359748592941707555278825951838395898753230041752199991592919911314682323713258106128445785070986372866368579670450868228520233210521816278098653945257243543729824286062419533855768061570582749528811720350327357899228885893736831681469222972770039471748813388721593604726784160128061721400001629851671075386731102945372537190757982749893457863713221879710039665441724527336922642334810438214196935166262827883535937240171822491574359802273006634359540916483537118958907885794543578328025979756504442794295081110033478484126209999800558418107671360552608029717767872473626564228059087417208695926851484780451831516617753169006141679384061607279523531047003434726907783236774032983623690992184021112637014994840884649375783586106791047573620647312822244990251460378671548173764672702472434302554107128782773988082650225846083943391775163282802176135434883284358142332318113658891404657063084907249240553314552284945193427154053853413697042554346554444127184928368536279556204014539844918975874115512209790277993409155251801182507919792340075502526853581099443193326544942398439917374454369113101500302151475178861674307681139738554398296635970546708274384644605918421650241880999091414283767421148327708132709302353117815683728668482827610628306314856989518184409328149519711267542501105322665991307305301027092300966583808021659728647028683085134817103110932142314152159943379392314456598247078596998444644044632733679382337412676682245972722072816970110919001170584005649559716471992883205858214917535308458192344950818786239455140220499086630952632671123330214529209133470108687274507046988191771046613554766778990062077104719697377133094066558074058724178181203268543170765617281418836042695532112105717209132171859869050005782975830411752490132717792858337230560517750796818782924940701021528768186322094912454287382110212128476129274920478008792397668986975537703257936450947282593027336764101986369130045127161653809721975823369666726962489093647209148903144026067329152869173872107540421037910120788743492085612481685388217068361174548842287799403605063889169831815018313847439134331235712477837438432160598393952152131374536750176829461385059557415980443904395691561336542834374416178898709345798360748134257010199734690559628126220314312223024676005074652368842807050758383036294206850467657416985672187974249162512714789022874254141314156263021623357986542843141967240138772641694277155242370544401124877883220380919927729858306723895450466006657567123947330898187519857498828355658475224868135277754114389260956016180834287958384948466818230725406450137240348319369081433764695708072013448834085531365109743255313768775923176751055320900123763198422112405798827548003100483723027711363429867237238583950118623408109022816226162028652123740513125514834243990725108976995632781733103095048132633981324281124536304505444225301007300707500651256515189268715135632574446118230190549828904831258322546471037249311612704190151283341809576290052577596081583972276389810530926932567945135927069527631583246042261564368110237219446699163622560052828579599088681089425762930913365632059313888893693882842593677873893600434344227312206959325210693916668261237040709410360667191530548269554882565499677560595126773832093846087965844429347064906366550462732137228701883372965994293644697751038759599347633165163473436134287845636488969385781906730242993349453385661498376496468590218441273959595242629111073769599219780190524634177752189182017201335877013913252882450384522899452536452103332788204876840285385331697183789487752170918526761797319581966938252979851969596927744014830753220250474765121137931854583567267741607267548159194686276813897523262251385576739672301392395788884993062969964244292907112417508146859451926426676029498064435338572846074840198454646713911474385829984766902735756053827706060323164109142109150137632625968971148999976010679942347084313745063583517900463007265154919699332811399118874339324470739090420711389749156372153508837156909280567360583530036407765163239222964424360938847521373908165333736421053991136098804921002334115426818631786983150968354750340189177550984016085535035848687899525449127502778741018390524504355244981334363371338047663760773795104986874659129609619479761034702708821081086067147323056117764041413569633210868372217888284065832797263423025749124686502729474268996363642876825017270249908329823733327002654098111084769358534298730127757929548584718378967833863166241717557823417699256443929727574877547991608150085171338368139060165479299711218795644457810894894354871977434842461851289399462719615838936485296277517313212106089342467141346160791929186071231195702124701173669655458466700992755221605830001052202982246295324684455465240632389502958387221936715729007268623802914130596087198008827529273389276303359777848597107439242114166228604423378621659669115440576044609136737533873554912020925862257678044517462795624291310016008010956041193317381415513866590063001986113199462455015718588276278247551260166450156269047116386331673222031057267234430337042010918042034197246090701965967175932175800298059918703832181092438880029722579606693442860516928422945378628226338436489182978875316393719105876314737031273419228657317176267382030475187884269140464996716337365897719387744555188838978571010020954156477339396314709479223531290901931366553155948361858261858220793871429888058150914364371903311165343910470570166048443771746568175213965971420210927903400829236662598786268336145930823087604617586034478181957077994083429362707245803579325368810129340471847428733306031219005656286663572352550171310907800947292213507281201078465221367769630461944020110416045445276180638083479932854697501828454135490828205377803636355584541299128739133517641476691467123153445037456169806671967678584521794203303189900682412300563165747376594245581404915525952891033005271819061191502745964122313511913532822842087093732827370026581222247656035298904730451583878801218283094955149130733720461198120525428731412757566157417111634165809490754433730525619036385820401886717770536807823208528232560994177519904752794389669365455015972547743217262003518370492510980964470045759933116127562145477313768255467001765255287781965755691541513393845034996136930451211879311727168477750851028391345011643287787399531812384156006550387850092018239157814047806192360171653750447181582728630828178659198207150295385131123095720048291763921535188841955665866830619940008510921530591980865318286657341108796263748173365147817738565554011622532498738666695832177644045884301502280645965461147001223428741153637166285216689152239237809403747243325170922332206910945739869749279798848050153973370508744674697223819614198604925292795547616690306848998642810746812706054154716241292936792179091784056581506719039276223801590668467269858796134317355639840077664205856526542768731072390139393303028869379302997508737780859919532608980309645880995955788159375081535683960944801399632105171393382528531191574274944118761359486300149521538960510036118240573348498643109265117908210395605800539523274727701030748059853179703733099021123454525027834823347964625322686095152544892385839036788888476613136597118194126036889620158433202207428499663053323707981248815583861017240512632156817439216550099141909780492373659960206636741442923555779330023683028816301378528657198505142726889414855066829752245404737414458215534251581938968914299297968038084036308394339727032088268296110813018117765993362775837086467074811297801184939867237465052990915082987094817572684986764976297917201370334550835245117498687182386836357774223578948850529642094660924911374225179316349561681317438281448940588317020250321843665839845274474885001431492673783282406939105594283848081578219095454972340681447090017414982071125424796998006465645691313886842460411052912163604897942072389971022462248612778747351932011561092671390263123118780243122281170475451146175197527209725153388936824518311166774284050915556704529320325461472237570690148803079510513593608499775104001295794501024645936929972891535962738908282670512674403886442710252481440791513630711868456600938385352158769576240291390903109825875421803857006089796047380866703309350889903621245039763835036436765946716240155876694180585485533949973098529547754124253464622171233009257079679025054130962678448872263001972610262481059762927079301041334196414988656380253155343672251460283985549184539651600510212367844405047869023449075487078130374717311037290655892457389761170177881880425175056160775160348427180799695805893608251943237437453279408081005908145072918272495843982673477655371846578640797795566478468810716247988437560165558395071215146181033274244632160407259514667726808779303203522041469262310340100938569564164583485044449873639846792435051747554573971068942301188619211491865802261513413956477056597579321396845877427593370837100731809781691209310257094434500359377050044823860929200302461237124435471796225103318415825154780062841245400099791327327981221340710520650575390812248726972356378155194195473667940526278619319206438120876447650022977449461719783922904811294167457610433873994747858444085210250367807772264363754266771807204744296186813414189541401536967098375109385524780618570525223593116130990847394270516124542784873299361674220011599628449385820029611543362632096217360464647975721360897004370671617283555151764547176778363811502290506330564791283960814361720520700246248691683637801781469918447174635041180963372370293362526376175248028321674493678278138072957708115810486512000102559681122045393705421120376140008106739379491446876446983620024759958956194533573954199799044749136698226105090487159197354717082123455242192536938568087877690944773261591303176555457295273949223234467497429359370603092324274502355912099213525648298615245705225815665307328490858899273243625352895798109455877775204477952514420441555780886403838580667926064324803848330488539930933057672211973297238189274853786595157421833202315164988614227449100612036373262978711376462143676814863590124101282056429520826292802833117558951037380656211112921015224429238654431189800697333095769840093283971305542269766212010407234885446983859112791425215445660754751741264200013475361747705024011880146239032287686878236020153253202815695141823593914530270835254645457872631312682468050460972348656152913460027068078665967372625859864249443839715607756869415438306687481021242809720784154222080028568237353406635035316239434689580474456793760434571657726408628517186450723504060346808525045416259465702568766332209331793883582095882433866424469960976076513844138310886669558965200336397178796507939830651723868863044384874655971144302705476401980541506091844775490517978468420767158749894431575853214160105245744446998732760963035856239558664695253269789257486540971142857164024643837120508214757083028559636892392328164312159796391147574574960494242684723198305394162913104547497673423508850275019523427985004486149141462377274446605446109069358238908392033407180027468181992143821248054486956464228272079847687550376838174529968424405492312947374838765707551659299043011494367833823444862322389177908121302920657479223347336441632574707839989698145438607348582852614851543933462537484669761428115533505045993153694256220727196392622593658286988663967645958306966143768949675579003431562940032876683475897597773081954263891573217627651212830740348860096645589206077730606390687080187412729866269592852024935654803808915837611200200766619619517747816499654794864269770814590497958579507220205824283294890426201218466083697274188601706123702039218848920490252601078160789341376580508660305222049903136764287600442665215589290083172921756991064856489477684218743053468362515547583711394381852439497598445876962126987341224563049421784008360954887019994616612962817692381778633467018648325439933253606314650341214164935703242486847355264927450832739961563053778872954849104233032193002574818412243028316105481082076799739481516986608376385974236168852882089739480005745210261930985580895129701766688436599729633862233808678754714061235464913491845476606304176197138689921128338264302613279904377511234699434676550870046212308003635827475326552712868487969083709334374339874018044623680380560826953916331376927666512669435964897224412489734627747866609375547041794639850882550557996081936399080044990348164512955763156587022527457963957154830405013623113322372606562487323289858676773001518793636664147340752549480169541938693164627363077363305657126308399171115660789356913774561622380016657791638096498969758070165422097437983319563282178604719231738964740513084537598387793798850660011805027475471925283635986937500214743949115879226487772479061194041907686082754980835720980349848094979883457708180664436570575839578706878099116907959921256668932453792591465058090764187895420193049547095642672314140972153614673154252454727186252993240712999172318023355476832979570142749896049405803137225846444335995247785275834817628208096875599436591616245104888563866142406295871028620485861261878675564012302294554843470283161449769823718857929434086465059050013191012699116014509083649767591772957744096756676774015661596560803633461354897222074730445921358120434943047684018902333930171702387573141575112387187061758717637244140217446631193103782024212932600898529653852237535171015874822917725238871603533294755390984761267437152003743926724683570418875333439788663590909004288642561706775886793736362381101647287998590966419659780952017061217549110483322358958511424060432411168149645719650948426898899175238826348471691006502357353727141923479038019979779108237123013261492541612898503938192751772979467244218300444810095552124692463790601773682669853221308599663716365722248073177343871738210401154974466793618981293011434998515002943333652003999187411376345973129276416647217932021241899784821030271314041744685074284928754752977972349388404047243165030159758868653137983406681524314057849961432530681349624483166079809872113146106430154362267221446495461271537630261277462816755247222375679299768014501904907210323820026722124879871488326498926095305578554535767354815935807567367845956916295144099579367378426117219087019490185806506014797422850446568318723881479153597889613769627399002312036149708603224274928736767073347988101995129645844783381503487038374453143589312984776095171208311513788114062075575028441503009552971908949073108827818640073817446333624181320427889675485950651046144847572287091685252886726955278797884803058125947777607009760879374732422018214050463482024154434820300533484419657389132538141479496033897155072176650832302904988890371868181968514462033721031360054625304766555371977960453066696681714085038495817199385626141912998695754274810148271629445115354274995539805615237129400059824403772458910273652729370853717689105313193139446001135852297747913185492326563648304572940370322344838693704232318728185966127821379145682969628118715087645100081341087546742821072887666291659449723797691579666322277415759502785278338566394240263331825949379179638434473168422164908210501764497413271735642212927513312394215137960426001691654596521101428594639538654536566130692961683401777811429205090931627730524901859820593678224465524338293673458834741989881824931185918742978242654499962494998247523294212242820927434542445802155774723627728377074703359458866234830199186430042277384380846695439049138029982238950449487294325338767873957584823978375877661555791698478947579078416484322567730274070661034693704128019713256424270605687291728707547930896668089860076267506741134341966996598186372190411819165546259150359926534661304137631210958782013579276312108717217514673332231564603968776503565625023160720637129502957794253071256629847442723656593043118552728210162139471783432180809001838924799315173499210716355517207052133153700468769426449627658118930831650701458631429021079387616448159183437591817627628619438533286847353073474656404548205885530122707837239611993694912969531033127101199153257881365643290442269253813933238481473615316938555868947362462642858463492241067508665112291526844594958771180280112187970574236428253306366000059896780711692196738805278149432344759908916946687707481149003724390662663946276459393379530310577203221100948104812409925421321584150095188344334937343055593820680016226330734513633425796034423168044067396326454277193234545584344831836016248885319433351293976343123658191393259575614572998257279295454782819694491023323888634146506533858862434456898653692651197470271534223594461007042127047649180823035009819447244017223055639830215099736000927458464435444653483766001768519065243213989379287230208826202001398253056677854467549996653452633537255763275144066071309657833691335705012993994679903223156355676842365030601975832912095244420504163514443514335278399842021204299438107172988518214954283744173738303586831655207477020825606977130747857252005302569304198885969207893487980361052011147354571351611473070512425606084522814178183878517971739171926453931270342386053878796793695601244050319766504257911757213776267118538615390015253097086017183565212432060997760884387861987775825963591339532398092019718988101839959238689986806077692138415767009579768229859600216737388921828973219413038682687751455696937570157733086380069768736245846800877656759123660524609871624351214759127342358215421921224138667140316433525678513074869535095296365443249502064136964378359903111298548367572085934960296784163344320566114235404744232823047883774177930350381690391089406285181420407357476511048309704789839050757953117800544838648684300798306103614361417453257409749302718838975097667915768450355281384601669888772951192308083145007562653648194059281653077109440062924400779160099772076486695059881448573629530160755028216345371417445981946916755267341353717732115352573276966924181808538344508660119776706425221555977502937442906376256781413121414867464676482028737224968076959432402118359014244834535115085890313064530621006176689289311386479674026717094539014876925032917906939094579817449194044194560970575112595695166052814517066601486155466707687239736805024741818647159950989824298573763171504253939927779538772299877949588257129895151632824136236436576088059637781845966150931948680964945894688113434492542534123751326168131004308540873334405558930464455794963159281758755102843832185170395730835404449298129160731061165263451464872945751616660483308592068666616605046769836326976412011367850979308877261684591429231936077720989796681318185291460539609188348377999902793909711018879916535187799298825282660024439554268079407948521914089815782097660541660889005763374210019552171798522899810848812100599484214428086583221178804194124799436824020608465588029897870554901673289131231661362637847989731957867426322571014450810932302801147632942856023089469737109490569784768719819531962193382821726171203766530686380941260282612852370390695290894949544077491439067719670761464538220003204550146453498494202243602575225242513817750349346417267630626816346541836166572208558053522087240571525292577327067084329835448924383755769574359514408699330773751680228035307386710781543826275205921641300607919957280913285599962265333012019346852939143184555602483788036374449897354756721885706530073239843126013222205070728175491263920653247658174764055966342955332176790618148866123447559799868731047300929758866147268258307806749563726469339580581271159091345147412653535855124053157054199958945263686758882431161430568002725831433583991557875072373102397784633578457847904199964481237577069231349046442278363156278351700980987160223957742683029482615020249569057202746173702785721841473832453513231200446838357552489454682497548206110743323602857153380260245434480435030190661161239920095681950258969856972508410625182227704686488267697908685101820580548928107535829212160004747755055821716220824971006290424559541553964172704416675594187379918302478789130898547688309122739408243167996425854803121079608444654526385616765419695792579568812291904811124708785651560090212677721688257073359282844377775862276869226734039818697104836091089092781942643236331871329870546951230427407547016275083008246124676790606137682929365023865631427899497474456879380872578661278922484892225608514633986761620075055995107792947246521547914766307471516118733079013984365591771728953403039573373805724734353198732919451014820824233745874445064444391622963153135188507354745706552242178903088918466923005703832073768171478589656118947810367233201088764891971804043619557043351828398263216004365437795006995269000609544337235624083203645064604964227201676116106387977125819379589350209258468558975855948338934649877395796418312800525080846878075423406471144385488405896840739698554483460561062787909167222894227930354481398151861852797376908005018650472268622403176980528738058654405079662703201366437759595777998340517079198309538609505865672322540778934799400853482227211079103887705641215792481261009223532641218957589249145386780045168289202385451321455961416617651804077504505583350725588618132563950961997970483023053448085230348622723310806126140651701859345840735794289065328409669534593483911628421654090344889936527218985805976105089123273634843161060351878617886041204141138037703036113188331706201466723253980341410751439593759555789776631559491451171263525847733460290654991634643498092385100681423481672719361423680494817280345477007000709853997520757249652247832947589272207125603783692654779161377132276998489704868001288467340328594522401879185967307202711204100643141341467514242985677273458315083735535670859402227391525249311113427711500834939081967384751875924114519443203828813180349663326914823734291401202975171039563496573279319842629694126230397754358711562157745332716285794631054750293514858162813023460023234968003609183426449248699787762244406823162563694465641580019841452142295109543762916808722780446865510174062456564506722313807058987365051525611403118594628875452963240639996155325873595668226918658833929779719381461218396378605153828751419605075613134434808763860940550414453632135118086563554072385331406949059531430693512088339261981034644320191177530153062402290224645992469896255870082245963329539218373170334936779728311519468122582960654080255287384381379870160184999515818547612765866231343918411072115471252320914412057212791944681522031346581134348992267157057809002383823474339020196917916323196698451693937640349275431935608743706153753788315068307260228765437008962385230718234103874051047907140758218443158541707016654269621314880744579466570205214276603961142865619625478105188721453838699294668709062591025893970825040113312511220996609682918207344240315135015499588907843904796086788955477801986414848128631740437221667669967994666584968457394739276061754486187979314380335525179486848319223591930197329794173331445413117257899177796117491096486275458353860282820842394686709282906591711403987150915186158873570708278914410280615995341794990011441275057152391549672325640361317525029735193952619550422965659344694183773774217141112384957113290856571075223905646831529980812102177918575862192893479460511088696245053696077851772816283352517723670315534071563977504789178994429478644018650294618587615316420469451180474370986452782783147072741069706894748657849875481673976319606654212968478764505480223196412603897125172248307161211800655039498698524588036886181735276890403800694944666822785558843161785726463887642145895834878584734001245544123735187215599271203976381058041180025660557491029501692594616116109639991826886692440200737224183303232022486395396580677342717866122158048904252736221695949436973159605174811251889924908530567755235604093566969386603287077955480101735939105515926911080674642030675860075803491975152465457078230154330669814561891451664394385297881714368080719528637696939438698175808080087677020179942358982770882461939677360136945305537023063383146510050680040423191533894835475744955288364132106222481824363085214244425428533407925850198620274505041579730321809133262707866468581521117918961571836967977089938603019442432247017702623462941347852184645089470374159877321952240767273893670645703560881725672682271721368253989011148624376547142868104814680895045771937574316332652947056156910927970958237071232889911403888193683917366556302184406206420743061742533122589449573857022734276050842111616700918470601098248291868539394630449557898814183271100848697796582798234525149255980342739662594754024532618369781672091805879584699071626040666102213692623899357619640078027388019021671095758386430842784240700229960540998086646125981278075620330558356409845942507577224191434666430270128621255953566219413947951465452140723951257283667107818104878810541764831464704739289714420193733710187672878689545412012259177185845535116119843690156933081122643509297404055209487957620822695736571691548628606644709078138513615669264822686686223627545352509745974726591516022477964616738209811552508114392785479572399730476815955212713834516632665246117194328129152118192417993113649614655188266404524087921173936102621730428456234812646229786877169670905694762479808862858650763340542993229949139572187445106361526048853633215353092471513874410163495588511975804761709795012567053927696407649936443410711521871294767955722380860791028172500270464165138807797740660520794866103211233921041061584414401659482079677309550316956022423229432538984983004232732425054986267572387744541194465932868058923365323769658599655467711124950097583047536664380770664785898747282727933509032434092164112721014994286014624637378188722227469564564214813624492520363352972838037910519914327543343801423569526473630385452520351999473483706589441885211481316016892812248247733203845385834245279544208807565408922900893296287907543030814562052482455202824077139691485156369621004015060955184618229492420602002577220630349175205225088862109059081830548558934624012967099344178121355632654984839741949302244244238842781132133212033916695719417831060813201379925740253117420599055643823428440610213833725522933224622271248060451739191849938069634113918171569161081931644427414578068959834799235981250011856916978529485015167378978745237588465237877053246225159813334171348229669084305806918525149524419248696012639800425760624827905197167492748880599994777647437781637485889227280725317575478790336873891817442698396691474265528099826584122736952556873977615276298978930105353511364954142514196695850663823542488232993767951870733437846442447429656512824014945119596047982410993774772944773798138115196469859445625788733194720625837154519522974901437443505887644318192077521501017749424454281076639576877501885496693635839787464132883154159202927303746114357817756530571359650937622011596963504632906306638216296289849412348138948024997849946035864147057904408888810893204859247918233677978536958538117117758879803965201849118871659000179993450514666068117627714513155244234477128992248515619193126961899214919673153545357006554941462554710245597657106074326613153567822343685678451579601963697926950103292258863240156608981168505435871227656421678568684200023987273030136500682504637588278310032556928816772376837532366526345496753928083746938829537198051521164947563604562528274458380396511130282699743990886012932765448147776481056789374638704151040444902113363458552374016982669260375029056535252400963121921898618613572624617082202345139396562212675373362290059742574660443519504441156169233532626147024673566737709972765406841192069307043121374454451049444011250377952412029424665025968465151477295084160958412493383615813031493245783440605223301693715017508450270293710784343990360168675337458071698487996030786489633158568790522931720539130288140830090875237149197068350639894526848650610285942944973179268817267370775603523052419937402828190930079137409060313966148696787614330645279509590238864682526907941275628172580248159255363489935203651670948582947499812223432722555778936903418571829878576163578545055034238796150914026984743285831263585941621232074784148796095353264697956798912476890110156134776551875419377459701421639907286237435240068828810062267955795388885412767735461103294293641724701031544845389320936736897907611997576671005207567950079337164939102663263173709991184835282657182021898569309872191710180480400212425744035688749745018683911436788549331601966397330783978145014757069494001334254663335268667199012424023981119695461600420207890895975305229852245849693969756440402237115408286382588625836527178324601727231047191731483774816013836422263341371371572051883302149622569220099783763691013918750669541528936246703012451534081301492702007652618127790359765486482236448490836000095804336402612362342831147276796085125915969737180440745405575684337149490851038339007274294137842833363127442817368933117292404376846457504157399243587569436053002900082962337773933435129580744970219003049082657473400854030908918692841442951900908569594070521886105194733423059396674473335205129455116438048126897717303153362959878297382373168059651321400377318416090018864254446010580302082754833050174872436611564446223837810837580532475347099205221631424632591442578946235794541592068702890491891081784026037347612063497675165142012511128893189411134151300087777252058985380594652247769225306953643628634049761169573250413886969238473642149120009888840129273172000706573362585585817072763946835630223354640139323659567942392707672336221829831768602834438700054176804119737632288869401007882594073465347925283531636862086128331341503762426211192545118165835166112147714150968253871397386527347792112739688645570578654561102762477098631012808145235080690751075332463729590256413075450466032066682064529892976546469952490107743541253304888016904123057218894183079557596306702529929258049494225263598299316375750414656123244311963354029442421105841133550517565056672543064732917974851806547238306713184352667870960468770144297455510009596399053668123737429504685167086353981683529395614871694666362041622047091914398654730647160392751955699194791530468607042697418251361543788700907538955812682686945126868382724525269820829375102972635804239825651501670940135249965425027605883754280485499748759899896509950396836085453198217842495280145891527744395659477024587968238519760702566106486972629456899145059823658439102512318900377071851706269106173206143434767516114396920134682075487338597100488049913999811599814388240390238474966023580374103371787102034077141573591183347108274248151926931189472181557296451075194618327432830966644857288087279058885632149144125818105001339422619095934053917871611760130748613161957137645324868059954228109131903617329662266806282209193841374713835421297161392187253235389616224205107026381496729980071703537048160573886663408948367914605991339929323428628660645970057275763854201262715473050010454548738761386456294103396622717383954458133641569820955361649533281360211620134144563911155817233476136964541712459459980553807380416878124871343315766194750574712239424429739697197510569432649550796278623214464881908402597378259999586807227477042652328405361120813130412946862663534069463904495447738188058608072289654448506319398622060239017284903443551822126927733192547056110918861953124581753000663422264347053424316527317411673345030847513298052934598512129190910717133225215794743541590243515393480649728384810870348282189337235213327000099216931107254978225754417588018065060428101731103067760492277600716003942952772841508121615705253592148680464539547327379435747165593349625661068649621702949356896292437090633870730615411873128297406948489720706998795161577041238917685339419136552789002337727756185726411760537357060697733472035203655699289692490870325680000040779187612834264314822858987804499833651653476114876082359508776877112602767608765541666325211848311254848493208507543606292485084692945056820292787580346988161721558884296334835228325870467352332929587963299488291791560841896569113351167006176346244268706207257237872303780530237565315310828354526598718512732479525415330373346682409446099902343483165816328079129929237057307655778107438515236278357948704955376824835042689651383886549861143614596336269511460903258648620301452774815889958657580977965912346129176107279455620184094292516803267556281631225654560319996238395393230378400499068620155905610844574155298765649742426555305398326725151685259079826665239855340014205455192074548090999865947792273759556482940084870297420697758183832331583573461006767251992802900548439090048949481611055382970051832239266033349452413610746434492859522534972302124399621004873663055448899148517529574849856878587350214638823723359178524382633141470546725438208617248175872575934514440879664222954330285926897337549848416574586613643227959821743484781325881653686842004576457053789633895946629491061666467468422358716502813011020639977462322714409618908944915763585474069528007666863027477457892179152350317565136956991380198466113613029923605556185658501010577296147848648601661256032525134548984368416235194324649329008123656151721676922600805258531350020721175510484423283910347033463221206769669727285544622528378988110029967854087844291350627916921578660102375569870445383108690745755683168955029713639762011804201367542788676062308822431134610992587265526487800324175630893787023470990616387704999506593890837047783021396078369038964754376464193311706834907028490761286896929012418190908728825683571542818554990961782423906390514952719094663809799510890098152215010513112147991990897014173036069490430455322700914105514034997553597641976533239958193205397869873031454567605258459176574079010639755884173891760784508129214757848755384951462926186327819427051705157144565350359500619688374935165180772515046881243835894104692945146873951844796776145814060499328247367530537124095870182545923631391276438082659337920311838135256704115480987303943495842548349166031931177970437000861294758604201424689960404612167024686296547068349620978082540154753762793606578872339021275199612249992666382985621838424722471550514575809174893936867309355873452092837320501985931477870648836600960374569210086381661618742330384527979271936814812167219296609109766999973129419383490780963495031700565955811489907579366104296895291332850955482119647485074815078196792798896059214520439857300555382521893118266972910726217284351530374534391712405440414172475308901279854914316316171952620633541706839840775657442868262838480518016564889243612821797245119978662894026553161886325667378272379348721987449188360956832320214514626869274534119941551264079876444650714730376360988202671314123912217488547917618977964044708575680137375662145075879817428649691773361510871289293144205061435785434412315993156404415930079075552408819453267717584361777336659646643701087229706177682160248872946698462522140005442681888085413123553292750025091395626679209372459349937895958268506410494511695717064361303460608691947513355744177962210639276561002243932264483720735275281667010055242717194815404446370919425143466069066415103860268610070658879529413539855833801599794526939455992320155241210952758230251165933398188001799261897318274897411254817306288417522620015572832111352573735418609974127318913850941125782331196001081960578537635727936998468994898419260319001516315451356621416345545340152970631902322425862664865329334964923402272503272769285792229219380540829622117278578000925824003511779619714605066178966836372602762045410148315860942735099576807369712426170120363778481888072907627041090787496824491173820233700411069302954144960685147955649367809494729950480510232405876347847452907037679935171556895861530610361773776410318750673539908177860743345007938581820736031529885206487164627943817089125812337733144583031871969844837648927558783459130290572846852068541164310801403774404329016023680142824580292965268665670272846444778630132173431229072336396559858147293140163377937172040211252598530728742976090460326479696816681950627254368435633137252917931797682854373458098906764991283617884640025198477265364297789471265257383839526128490688875996660603061153851163397477059894246766763938733788824369282635906382883208370267893002650750558150229369157092702881482519420637405413221524593198130329849779825031960818022014433302398107595995497263118148110212772724074743240616617971160947611561448908135641217308293853568111262885328191916198018700998905040097407736286830852002553514255851696585194200845589128317660795295552970660951885151945115466247258387625245206387609620984502138136507951600660145654129293050473270121171331917806491462216219032073950526615948946156424054178055486943723045245247868638663701439465342232992581329413338400025799462958816701397752112760293603026861117689418847860806104155933280356355969666236442084255910272668739599546461620234591780869213065955252374976307792625981381776022818207350595618668368682380557318100146499060459085095222671355981078918860524258641486661319927806919025663752414089690259606540089130915591690492928079111240885751618518550302684571326812839753473509114435211236838826395284416642842276225174871167821767317581313866190353496506058781574503300642323794928443471087817220273249090127406021348384526004377730307086614717557201748729597118909997061819492540660094641431396921190937184053666613815552871939722092369803212518407789590636937299656345314077402982498268642266922667694189715558173794332499843779028025232514269475466405728468454485445606279819225199931701956574030485144915245193542872526150167133765175705226544232563332491236527270821729713474361498273668988468898279693567226752632453954979287341697234484023038228469494985501886658929838352318573734652036855546581293914991355893734415427294959235569971696694535747719447172047284677191777543836138063224858141409822697690787931885351195181760852222003642036959920043149133668990939052593505706923353509118683602063810306852706688921117804160420182683481954206719858141921914721090777929828821353011661663204435225546088181130795805334939349532606012949687611786413287936568136258288837920210596092939747919436238745209014801182036855858327854657016802540214935963825199176787455756842049834818155867029457419748116281932836135676872405179979065469826095381435226566054869283499389647291042573313563555146734555162198419535981958099837796309290535513491025184365970545119053986760115778129031196743567494565165609652100846941280682389819976212391557344767150573216429036789765222145272067960188373775359524807785995863381563835919159339760125333679420068404684606730509635904209088461568573052587315811814742911003202804360383927436792328823518127188061989701536608244979400517161408373488396969542908926722208525396943008342447520670197162087175676545456607786934372612024571064847885187047475910394198158323559042868878035060903211476422679613056275609952520544679985211675427827565814654684175009877780408019018191124866087156423131258019646809941996756803644890239017613846573426481016504584633816470520544992898028959417054188578701026801176717190023076595224094141223817496350874750418427192127395192092735325217178530766203245325368669265488737943350818406553730063194991018151628423613673151900483751617032440138669067446795992020266427010903667188003937465821786362613210627688712990498968099499031639490136436109990599756511992070796324021023999244927296870064689233660476131663854416494126327702769740164190385838559201689586455532067043264769015623688639150865377457623113463805405754371832664195348010879650179690766344481490357281495286153084770263865608893286651639057157550439019961694823573482970694395086262326347951392349354364703636573146571980617295042150446187974649152906157353163644236326522254348318542530804101575483795366064003274383961664594200308154579262049514276275099504691539703809837720643734099635238796435115223583137714464809421573949883757758921049166850588296065431676718240301622542566339385029261155770593973132878169669560107127646738392003991019600325426480808162190848018942826264985124121886431915740847660143720116038039127745969243169894787276266638072526841193768922230677573541022517454748122647014122039297364355769772724513233393773514043760463955845485927244983425359558697275064875291460797394273643814236026778899549600929012020573050190486859354757511681962332516983607437745573599717939028588160179227028171132161384937077278871396624267116532712433750896539979935595342801942448481502978597315047143164902674526503089501729923593541057349304167790000049807850879560738182572532278867203213994959204956573771611615970502771137438208697628744332391085674405535917424399103811600440845752630730667940083765538436849290547352084480447233724021897588064247793428613166557306788452010712798006595109293644978791386919919747513128583710157170101613335688023444580348866393498245414778194948172784134256476666684051583043953122256653605317332633655370294954578689739562285661208984093720913491231888602157776175454180212550252429665561142774150259343457933722048897384811961118044946550472685577988533328545404899844182762898851801779479683368498473448414761396181869800155530191822065364487788699188244712771629800721029520060923220563520036254456045155703086388408399448373530347875676764278000055642843181461487381505494050483614151063690426155804598183622781471620901211238256629479198875600866705901398594230031963734090702528543933707260232593804183041452202183962953439399085845065652472132458225839949669175867655412062131955556821752105237776623406164823303979915843640290736231770427559301126295177638072409491110906029817673197344721686229198006024834445497327930442030322169164432160848248247339486784404907720549073845340768362257034963504099872573659415146897154416359205684470818234623812276367994394203409330352239287340892488691418495337892989369652271131996726547739582526937657975632637525600253919678475901524501850963826806895253696846811247836108803112637743026993718098046590794652978994323046783885702968521702651520605155811069220878420286692231513941842798158947061001801173870433886640763647750870888134612133609548419621360664022603169111920856789704276773866914750820331152724331528449678702034247061872589637495052242218843280411839577878793587323980312545168584768588599024147886550845265265149842557930546902155863560387326705215098525593080427830816307637035458536827533613081722533659604387164000221671545800755576357757906515739197119329954697220960896687302095875328717414028220127651121809546495348953857940984473572680474536295293090520671638513028643714766168836079945810055379237604436377547808988055784187896227337242090248215087447426076016563077245977314364633235216382199137001250901427729265236717992597664358039839041559810502689082411657221946429422510014996074501973218230553173031840886951127596256916662183744852445134580951785886468577491429099665459796046742773766697526829331292527372586723988892286155417346547024407852549082581626157175701630883502459568365336945709319587804121388911790721616692933564040367068461999661568131454712070595368764662393448232305435503051111781005285463833617447813357579973836814781957460462057806873373045023095661025314141408127999444998094251182600129072749504584792888452391111467799820590191592673657962841999590689176865581686689301849709799397616246005906096595966064918382216939852946435547907439910368650484116074644147039917877283067027450197290781811608791346167802928457462252552795953152308603992558614927163038599789544748952979016034861015764097438033059416213363173281659392275356114533682856744488386883548725223241222150653084659054118663678611710386382278353766879314642374280900995873647038787243626542725103481052373666033522233780970159988781875964229119946952164129984464102189325359034395308784760210594430107679010779864540634033679088247462668899917974141344908135877559583571649640988349752606978320501283681795306795709106140824793394160897991741067536912030975539046267833239834309065428470359282637590724390668032823326000766887397320512831681851824628721955895465793303551346583506860538575025030629898630509255396899878785792701931899071909872836042471327235767472443166405052773813426308981241485257169460177802542003709593965588149172938576053818366538547791556935623387820784042001285067138638541673619468465138054269563404429651342260886336705706962737161117655267824244671689004799916139675292397882292837631467691715899207822103680603322171945204938688861162194804875421344718400184762929563948655385353338404800891888834426226700482502369267419824662175585484639147665005703341427402090750134401780831041736999286392679435547776328779348575113155317398168365477919510485294973188455108153875237708394936004930925603071283356371369224429738346483147710059771587608006614069485675777246026548596211896238042802674077632664396706769200466516253898521550222243090009279016749690075634777866862890702172574449041030031473262902661735002931685199135739405247803370831752581493263523082816034856698941410363232093292409397504868990098384121825603166529212754081784628982642123792858169518251673587840693228998488274944829502158806449887037348810203654164386593894015603907771730131213870408002429675275303176474049188047020239772815338121013887014843869496761954072140624346533764371355091628344806451984051497049751888357007873712289931453716730924790337580814144732730356697931483435650112957982653669028831062995148699524797763702579822044179942569418995583850398122860083289191471481973204106818570367526164091102765063131883147758181218510136855775823839508273909754063790654482454798449831194013582017371492463569929161526023114275321563589802937778133694668551674417636629335867615028052689740394191469015257829526836868492344140295850756156846556597235954569418224705488257225164847126371736652878205494871730011932040748242883138708112216268793435196351047388510020433171579493331033160960090924075887318393075831013564614896952768489451740124011297510460757225626662186399957695513873843112441038030680448704900490662044974534793044762271043179974782851907788269790595216864808948309613490262986408039096992574794507934204848909727781147614381219749013629304601244487962924261584319917704155393920337440519760560851006319506381952992906176904498734176231044553001528306131092320078437077768608185966942968245760453994000038144882920400873931812209481043588007973818306402458018348946888553226640562948269048122761853708063496626369471010818078389213943014846105385472454822308584712607784372764300077071232547590808233839747973315692328776630641860951065980407324875352994401620265817160627561363450243820183357650085114064491572662978729953533783705191330381568975171919639595142946819844791478877290898624806211525014826857660138188825810380856866315981444027165895189250694998071863911411375645170539811383868217890469971765213451056164028149051538431176950101929465564930114002916644442139006828032346705813164596024521304501332426078935185852001153932559987909302913885707258732305937310413320126005494010150151127801973233619982017889888089136147572665417120858736306122578610616073356573029603426429427623480391488610606837676106580171583891062396147676139741767091564872327644152126829908107033781927379250915353915925507643592856563607224522596080627767453484674997843489505497253698182403644434345940499205399911317217973680917486729499589898716214381179016902691836689903853525303933792425372663366200367679552998853818909192131703532266354480266130927308395176956629068583088248957621066237292774137487651336652982691065572059814387029575885239849564716791516463388960886315316913346360025956907404613207731417692338689265424092664638329185601483254400838698989488015303125942120332659303291338510693492734464831849131843640703225214992375762233464193947875616482677938284443257398663761402559774730334698301061709208654426512815256418228743491407501185824336620733697533636375023769008872828570193272619321264424423470060451013913470350180183292240822167406332370640106951881195870590753045320512731266728040446529582662506887311508885884753757269425727731767557516146454914608610280654579738634705965071019730677774592478151634702872324313592918294422380611540462946652526410373209312604980049667295295674565966762157918361675379442334106495107240575749055189967405609721918533177286830977359473148741840086578324637882414220651612925788298211447164384832192048491923739582306038825505672400243659072015261147521668807212856723942613573400312878717049384729759745867146637566290922561559726623854241889566513813306347611164676804422171855926358328571764105434043088814362539744311060362136098562147219170683321340509046895071334669941634970429648205343335707982771716687104653752107679455188188035695067440919365520478694316177123473727664175254577360076347874522391355506203149290893281221231611751152350879724227898082273459660094646022349990708892496217349745969185663862711063150369152095034603563551660762337987805865732099433853432393610213723771815671241084169402174920034365955182857888303754603057437819699362799677862388887779959340455630953873493789105603913790159410494971047781084608438887166031720227383865692779275231141206847424647532725434642143307510059156713909696137547730485944966688431082805507861524423009896359310328634891835728270726396196497208159440011342014897959831251269298851462478905167121455224512501545350510338508060067938566528583486376369846021380663393543111153464609979195108067506437939140150713936351219898372311563690696542554369655479248562014897391877603974955097904040878965055299259458816586776960895348930445173877794848421061577176770594526267485753768573078596353327993023935238742894623724273425380056411869570935053417829474046763175672263375092385302124137472254070530670102946700687854104280287536929592368560025524674509501078037903473577344498648594571270887752930295061312368857330989101304598176298845738494435960403982414795894333636085950461302273501026349177362347710706154469058145889853922612751060815352689239381046081601463489322580092071133475152907553506660787253788155368840458220992295771906873007196149269089525862155743666939293961730013466456356015369158665975478567010093648497610746667964751441322904435602967028094242873256631919782789674529919429341715264998252596818049753145646489796561436591012359893857059929790480333454225666724133715872265601513580986662492168099497336031473200829132125125708284865775764341799963885732929726405442975686568355339540014341077624729488969749375525464000060023797927573429574432729594546386436979255807513522689485065778768274760406889906907208013166558818939178244062620903820284143782655745060409120343157826551922654245529249543626724821210999406642119040616852898866465769182239600143176970687607830754035407498269547505873081793643888455555302823286994135244567783797637118991023037778851528201239886351124937206181700495336613171491459057415268887352440686950149863236575295820797020149895466417172261704774296997295991947619232503241506305979783942701508448117859869774505880885984351796665969301745064013221667164976278524233349255778457175594612056394753276114244373030935820720207287885195869618482138164367524849371276803232009955230941251076988067138309688072391934644584726786248154046570027498430933953042412769858020859249503637848869962876208924489130527816486948119886040784462122146961211177533974675797506258298527778967079887672088689021598892880428824186774741734631902379004317610591723226985863269399858404171471043920728597623317834370397921755543518462850042801848608149217370722570346173666663553538548074462697867986755152408997518141958013246319205005705320468084196600390357406340046028883527175032824445507985578355751309278727565360796088704723594297036701877236463953211282936009426882841173203129830735841207398810842420218592328551576648041296091094517166600206315828072243027165964234228674485642899344665876943183421341435222864701452550863777474718013231365424980676285836836307757453363374059120234171166359929854317292917121075326438846636370524464383686045661248366011626891250949985440987128678140105371898232175681100806311481397039354374059312574369505628302988956129426667392672411261479820338631533857212714441231889394481092270452126170731398061533628975225815982621921727233358083217321900352349781199046713707473728203066244854280787675411422839080388484473135101586797414649706524480283079246129263624212516034968334914009937281152714879001064813696722831822557920331201430325898616213806873548928684973167765024753829614380666823678979938157028139083354428571449634252269864965262616492460791506801157475535351845203395620649734852052582555814290253361388274672555294815762077115127224932508820713644008696213539358126156946876947846962509334176625368246819913764655856054566047641218096777152353034880514640100877163270584936676678436116353413659788379039401187106383340445639342979613847391312053746059857188524364334571254084957078665346961466340782542464836339773233451913140152293912332495195658277242891450172134640859736734113785359056815519779156863392389907699880542112448448102510451922597955912840540033900195982802807889315998897005613247681456417280865692320095097354271316230137420814658939419457760889398879905678564800359318363646104818484097922269026659821559948022788416966791077273218994718731756424439692761682771187040199275807324388170267271367778455992583072205213163880275338678106012996509230226233860431332705508448225266069532318999077317362033631894152235025811293406693629845932490717309462152798810988305729897297218907181955394393790641445543968216251570654653042755069684336495442445331858191284201771282429434748568261177627029388355952432948994767938010010855212002742936809546442094009309680961599507462477148014788136959999347787159076917849145430412099198138045617281191973838858997493419199907918289271826506828173954569389878321721448960695907229962328712355788028338395996034602921604128600029404409818143992936560956441158920890657108042909079629318522668167996886270079156392089048627603040859480363751677399461302543874242256726947969473941614447236281831815361664566476928454090733906577194580338464215271296086899890051399556999749458823157726534770353358727797156336516718156722304185467051672130662914282274038726136918102837887144549941198865054923589743593558470788431028212122832055494514288740289015348261197826011506679980033733244045292188808486164936956789791250476426476891479221226340672796979025959006203481869398010061472878856775724828340342124957018999918707328087248600018948019984797946701277422817103183398492715772301873399707380904527428439598818686629366352757029475801975298468897248536922164147822671357027854132236608058790746180149349855314376069932253820987512179156428408857032216591848372036448471626426609403624375222172041974032924524924225031213544908860257806446622811928843954155962688073794840789309022983802591523861499996755094606338302320737608784477822044690917750642002520332498082163520200219875257824335979652613641179310937029495727959176940097568417633630975196760966345624992470877355998045832771662789395533515407528663204929161096248223642045390298662455967990566445341182234335124971840322339732499211388831154762239235100017756290906430770056124251414721965429707940808240157074279496089281941301112450416410575680865729283323709284024091509328989974558221841571984562627854705812027724905084533817941816325631904749234575414763063697820667130374780682511205630843001925676797301140457724152326689055925997340624653841760884833156419520598612202029549260873731908689010028462448178853810972474984514085228914868231814580749458838676246099719247065813748825759134710970156290275847455189864060558770409690611064641326529062764840053334479715634524300330256836344370254267345565360969988408432011991429051374642213718654094685907034574831419116661594501653187088054873020054840766077686707052229230034257618859718239622599054123173734890514800947761274464684292360310910197177483330095952043806030904685033241669317730324857978808873801122669973384009175227255591654943400701852296949996495971381601173619076977352983670171382801032031298375440482291888914078480468707419601030518942728957839530296510864141108059009831967207242999659754504770481580131324292005242559299188882561009114569946923098321213218418133631345515537228631756585307809806981641688246477890735542418875893252830804880887592820605289803359955824540573961411659113169714785368992703606210238314280447627589282998252522735591995049556126973542137434901437267139817800287916412140813526764531143097067359432873403181701686486576926689339564412057068306085088482065901189998114272260169456459885541989803585109047270100368157953142222918294698528113542407792957901186230999618158693136733667934657416914163884832741897173160189726788874767049141591200616075297898041625131274981436814298113599054165496657092152037911637321681351684338352232212976943223187005773136754853620787646389506741559111509890059814441684215062545423347619460813513473166559858761260189017842202812412728341617624544142956512348052503667321139380012498770961941409388328654915542675368381829677223900946362830970149227750977371988021732978327481970718385207428641608705330849378347438351683377156278021793564715920305487363645465271178649990318814624107872570656650727781418554548506403033890992793626077519689727615491851192296714076019118036519549095440492710427678145182844110506199700602437250295566731147873595565140899325900911570001875910942054008010616101556782258732161242203741705911847744705877712991962845968981580121907016744974380468583674773157052190286411682269144707182761719207604433704847054374596146885705754204424672895294189632868470995142299546722969240218890904702339217067369428760746694423381626605742742948875320455222950492747193141012307033733630861006875504337189030515087130378450015176533626532838522574544052099378668373451264742337946855931470724347564396638760066128656972866476361336548298056126548859071890086272047462081965384868731081332175931484856992341876306046229430868268793052365904923645176719904274399168304075965186255020638265658983107655448807946863007142737037032824394694503220786606519076119472864974250541181416967504382324335610501384723743199738920161448215914264627240464232601552892739541374694519627907731132570073742605759404534413583422410209602935422029386011240100179961196498001605963086078215225560357691619648189464970341824608842145222485269159728752005639989798894948730397067611553144485951256159181171502194413465374668264653340881887225390523333894039209779962516033335008235428134324904038511618836257895338338908484327229296866495140649132616584795388959073525983657531633361520015409742768323205758904855154083840831891288801364481728344737275028552305728539929399793688165741710855439217440812773754145565641879035576081447136798403124505684658280386359437329325212957375627208047144476658477258106759058813955627724176174227277929959036699274825933040560826314998275463459608273247244183673388663182359063852815805729971396131042017146774668792550355038064139964031101035203033192602470394911824613378126546280067438779513723998833488745502126523230669549347460518565583016509517816605914673384713795263898026836090447700740670751628636879927758918665640771839480599711503546804828604255421632387660098983455164428474453262578123042765478809971019484453563713366670454084773062922060657812577457408166201044562867421181236051068545161205376844593822978299617395472313543601744858880590385982759116285370415744530395639576775284531033575022458411037869552995264259943742146045195540114405023026439174007021586934793292453607659087277668766640015496165808768896085532352469520329123376026630567794612319420687324853573508040867677847249815898495760369878483249769041690514536149017501423470142991629583832938469794161713050347052886160224862835510084275874899989976516195385080685734639592394994646736792946678196119065077399514216724939338797519299767478422522876517367263363847455270829707130691971996224850462461203505859048540373071407267537905677667240103748464497410619517398028654675794122735166304753494211656022079448188818073484243797285218795295576608441252047805475722768476746724951307950195897352942763725121141921196911646315351743293417174553789374577663415670781263080413006687645167844239573453562580520443458091184599641040476574510787147289161834628934151104456378484080385531195752255082767347982275127711275138743791391242626007615503674131746051022282821743934745096683649034100644326571576104377092604732017293731168292926408161314267634767485264780703419632300026387195794215653702012987855789874085712051089300498395044621607906401334617254426108399682217662741674629757699136665963505185409832887114067495243396095112578897557319561813761192190392448777869549512123205778622318327833281633065820753381320000315723229178319410599553321431407368158081111661598818317936869459967992937884985680963118390361915059965079357004656607906277075580717430860219742321150258976909937044679109305742370616378942502928474747737534612701023277720102032389806611086922346668945997603430631241357667306021743340602372668559200232551061127835277862344115397659778073987800806956241811582093060039612363433618779566020675005717622159215430780831553113579446912364377231545056818097989173563002036962370397603746241339851072098804048662397011032104134725379763234895169487933220448148007734661270345365735548862732408733784331914562474334848319694888077413684645142552709861762390632283439309345727288146296205763923593720631895631525170134565150748642957599785557566337796380792497166956263265855893262840094675385127449653378168340895512123974399431135058304816549865212970840487095435658520574254461170237639967089405546486453991095726396105088831770134159659349445457260424972556701471604576371043129818454967506421112365604144623603230947279415388046552562214734200883068265594327690874073632260904232307254648136512245734570367465930813856884434028037992722174002903186601320821959895375420215273301525776866289171984509445514822335474372388718051227291383905399286447569642612746308886321247579193338750518699148202919947153206188823226908715488402485863193739991559476546908761088476728984328248414952682309737171010179761750998474492751933507329791430769588522777866912394540691049711481793007026033938786770128477562387437117547993201588065415147207028520497962425498866436098146643984489257848093424753402074868554449279038593166619326234724836559108802458081903905150363174840728118285943951608093113388222937601856600366273119248020435353296312186574920356193729537722424876725490400685571491520160028200110073045611351565745054194709781378658584676632218580435926598638679148387203649441544495944135149595934520483889179621176120973926718636160055285571005542658871857499545005311295313588971460466450126311843085668293388398321584513138222003110420173603737031015787009702381675865155338902825420108354871591414425150144239468278456122727483027207522817330387517636271051466130769352262751702634236641248770630109444787045767892478709933220118420556381784211590499960139959619843829034075920865529650842040613443299174873191915846965667668745564833745752519750192434311991429423167110364098155305126410746947807895828679432772597681480010163199312171181399545627238529663721329274353855950184843479804730769987379082468858039619956109931037143947652363443393311149791242969478904369877603180076758630649389571753157176412125835891871474248001373022242785685196258525569449279632195468749603237138804768698770265549642186549346862452097529964245200639782416787600976557902122942209569517046061965712388421762767316445121012252136868395291739004714329500114331206008809055940115023366788594783217868470499893916381833709166065702242476818761141186253164906848884305579315522517501703305276266551235230452654164614318632376900593308092693266276117771980017404548490898792165226833782014480955360705213344400169275471682654578918280032505381407123554042346988582365802945299584163082285548851174792293917762096053973038464171412633361950706693607495511867652042147001939160387826499372754635584365364597803322502265211487998832396917186306555354025794727665661501568896824243180867074742040403246397388293505778991539310415387168133038820660568433007066866635712353637602469348345631756997190424342852126937894949529512290263959717116732877390620507889913490427933528934966145368454816633944631903738340504851393266804640289526948617941513533244506129056776688117519905423423949261320188939708466662496783347572188891889413568359187315533881602808439957355675229833231548326441371360130794372468431767956157641265414662758107133959433732884491925405373473963627426109787319044164910018772139580803905027010836246946371398724955993961623058048272893279200195672749065416274372507206429428381258287915059352363126779931386402104217184029842227950425204778506684602594329490163843524971482530303507228931724643963456007936533555592176760649245111454185851755174535178111907029856097291954910713841508640841901872399037123568837623227043471385280125048993953128863765882067050212487403316050234757147868130663313695038194059852934304199347336747079705958978055453092453880829157122041483658291389701554137126763013455247365310958231183665260504568426711257817590056909656972107257400735738198709619180027183730820678538129830759384716994185672063401513354053252833979806219863248953882897609990864681767395987790658546788648410574864286738525435345236419371411495573891424252204916232867532142298593325107235501807844559803354800039291396214857372212709214793944711882895116012741025610160857795843830115727978066005309897590418341039655042751827741287829778092730786137273143258531881875424331417391166292834351901702248159319918802388391612112434275322291849722085585383700803454504938715221136497104051419721019273153066208165775112864112735823801827387822212078296965411683917029755466092541207668499972222895005660173329217093352756397734468050760813042152299921337190664774038366839199830185211416021806700845155487832691107856340226364134655074123730368506017482995862203148462032178184766821967766962570812409374125425976311293719609265169357475776843425421863548068437264438966675816658779794700081515549818023280818261461123777297853373165306102462477659399162241145705408774542643830044120391726493412652002605556376846038915407521539085411972533003719376234396371892842992438081041245723860431183426188371958197798280721670572604101378167805961502326891731648656381460158872248686808426582937006947452245141608685239988773180608741278935370340252766460314952211628309713983364603467244653300581061890615074914270879599584219508615333113935120328371805585409885183456041365586117965674192304707510954626607113605730445297876482464730088172940841442950016314559863334727953707887945952760638676280903210594842095990965140423250310769870996428611014147209701819028145312279353259941239553266732133335392803004850532467117218332786099214880829623639136943789732463103379804470926101435013967989313350177915640003752114642108236820380752127804395695054856436031336277948016285116232734097503041684300224439774202677512230788922343363188712474674919136118166646536924852480249810119539399566567144081781914180529613992284845954147522773054431441392043234753526972292744234832060353780126318133765840319340968458194003248949686675045695673216336606887174463404136391807673638487074983978042586394734492694479864139027216843395345190337445399460082945925482933538792647220684977387534250955841661649023730079964367412762708133877654847742887643662507230764769591713270245041352181869933557774037597602054058957484026520108319370590744733238010093869488274294960425295308592250557307958146902069523899261624457684770228795656030238964387046897521849672223041339089001608237604955723285790904099155133842335116311500815943283922934221038259976892729433372176291890215725714463086154201876650308714298325500975751974409370266103152870330005882508237464381387792903782829963060067302557058365640754120731725419132218486703026192442637995902051929564073761000670059581891479558958819801844459503598986363297297727922232078747485440372902369595962375995653284996147273342178195420182668086893803631658940212069104256563721552739053837488286081267633554386423018644808554626267992730329968863519879973140217817736181981148018294306032735582397503969445998552038413214016119387634858476457054373724793948219493967005973320592120316944244143700778092482425811177116540991396481104197300475866929081409839794538857170541932402868271485182662119905186325522134443196025990672379535696433157652388620583120321135324583736065993662843255970156242765034197533016771325356659770781993392666743165834351865771587529245590919739679196024969562059806565006978007332933817720656430425552699371301328980550159526359123293640513300432587638334750149130412446450591237922478645473550636594609406276520958548331181433957387740136804843835286302736618684632183254846786696228711558154662008214863016623565277341456173536241763451444367135958910420763910207436054499188791158081206081817886568798588783384137492072196244869787104961885488324735552728567927941788359972376842129279458008560327172317271608485508710989430433053838185961352899997031569198683431864321354603211346606979464826032725092268936703875814164916782651982449989898451591998576440365627961009421234749651656836158344429415074308769285413163289158154988284675653263992418630086695460080121595137641217574023174339928315785310142328347144834752354253119284066268142352137135058982293753657187658431959533294651812687176980524583774662541779981135148812285729278901399523308870441908852990161413968892370907200180099800881167788002275378743731075856827591161761955191683361143814700733571389488101222417472785740438250043106349880411939813136579664436956543698698024809934247127923717065715936948422650673440550011423736865050569088588248410617798612885922689210092274014492035201130446724001614183673886450789530979249035676934828540092222286745134122553475321526442226414781094465083408004573373894084603951364132531752706798665443439491057075648995443097192401642601595880359545059578275146677108550892259430808346739089695366628595161725183459415434108964393002759327456815181915577835859122385259219818683151912306001345029038220897067171909007264809933175730961299447460196934478730834450459016457761109803197788043075031516906363249307269357108040025445204521437061206610234034832752826193447611135717870752098202434916866731131527832229442864615190738673363935406806222189786210665405011093145500607908798808905628293248472135155320320563909911025289212859462317351304650855790622183327427317425822401959849158832933101274243664091151509073805293033841155291371068177116983800310577077094584522195161126595460602019757222504698309111026267498871147936768617969252990595142847009297210627750925294945377361713849626852196362380697207061267086906467252721975783610398190205259327666477571404794177820358445954675156170951059666077507221542660958470839110743416325073726605091392205286150041643830092618870503059581867459891283941249352189797268802078030660999002002368491518259275906903239902338304277140660184727332024595499868403203127748149871330897781291348698273307929971614097001022275078530346988783835145365573863000798266578638536274436841157790712109925993100497114236078995144755321853861770127293659964224780393884201811181048060987185982084288640490498653542198910293217599701135946498660356360402393057994969187137500875992237613652001113798839111771032719870487470012154163331213121478410750443975120313767357821024942836054883154965613847381792693344517866770220527790664084742834295638227010021738406330003133718104841284095164512666814086273420173701732220851117798254277515696530808674053907488932880751394373364422307596850987893957667708608757712833173127279187058409051956978115688461897787155536844565538595208067936820887038583579704635451810409303052524998178666447320686009967092210529464762457403615722447560230430807181929969426669762564645169877149781257921456287522859124547259844142088884617376923430535697656826959451368171107362304090784097362152328893499895245726192046201421299240053190778428477197906748817145861578497238391174656076975176836693719719832963402845877860871910325914522751378076138310067072073463535195493250438855896537588591438469890868127895233892044833770697009118931231648476402502125570098411143500884917210300747395913353494164510407376944489800039619762777983053341731211024997892092650817800517842574032391533690829604702648454115753082427155464293737714464038969820419964577159764620161544976068462973622970142311409922849337390413385182687932266373150669444133609698396800452817639647791096727404202019052576525816649466630555165858503494374152694492781300379590861134844949600064170345184386523352505134028696316216012089259071137021722307474781744470689376816547222463135897831937708249303567940211913049013907658662491827896820098557843123989135679070115090346787900856305093129116924714019251449294934017093793011423953482226201275427246436130046390152486926937847344687064993035691937290112608418437271675857099839790502566235981253936847395803431491518910479214690914726426951435735841453802063848405262269051901583479063197459804309458646069070281055794686671538945387628004217996510345732515244322285324167741096152983058912216578462602838838686388269432907536863126644616323584043705394617927819446008321970123546928926913477690543135503239769694172988654902778155914410367529323021729148619501253624424248889344356010131436524008106105738398586547967990017003074304393133315080606180130015561505359340228357135692220912136208907730858409109337864373145918007219431502624137748637689274162246793025245419743405200204050404632641635148006581041610636474365150921205202232010514684088856128622178164232674308944926662412140139917041109476780818410549216879456344362962056043863860535254091600746605355061032416872323325627232677930180237478040407691400308775925369173052323994078395247814785237059734985623587475593871054954927125060871359668817791743413005049383188276959083538728937118969173614275276431721071964758219993292414598693845888955448908554937631264789481518730016108330060790663273789850890230217660263254589565812717485950647230721735778017170565142639243999897851573168157116065006870256374633051369274193818847284094862497502257566510715780995613103162749682265991501822136515074203176993750014176339551545383080275153470174053645336829513680202622765004016370741802060358758856797622848833666107670128962517744424463519278462699626685235282754090640468949901998036156563497772036756566404810857348183045484516220954146411978993317407168482677401284066488904444835740822994351562573734805913121022820145379211862956622657896903015353102195697100522514163756055837043581006406403187639527471116652512083257503095417813906942172278412016318517832034355300623641176083104134495634184659769797656546131069520168767107261024443603137345493667110550642383078242714088186221655380907732752765336961410991289242875931732118000463338641416383234550905929546781670186272239495828589365524026404605202633851362949836058193484707214511768844125067827915266451557470812773200687728498993673180149772387221051916708467955714676876503908347358014986581628493529248295740938224751076742325065600729908170653411585098038131970897806674645658181287248144669002964064124168929086067679654631576367335977434106088004249743304985048339081037755616553969888752096971229737112519236540899292545198606591312856930572042649781161514078164305829962935658990482384868748053616718434469311108821482076008809819371499888241340762401319235411356367602955563427444841781466094030046937592968349718396106291819169182317835196022820410742229669789782289989089132447353800736092424725372261789783715867572358707730726083068094405623146979407009218739359885720865219738604282890556644289117806017590219619073755093564998350847208374180355232998229114287948484130527080747933065718742462475842899333420630812352349277081552939562079994759387159073536982481792761415556976532737569521758023538091898827089553131681885758386445021181632401140328565961402982141687624638329422504490399269367198874495489788096891415445290399282672917966583266688246999717054593700980220893712408699902296553865783016830850180489490238771137140469851148672351245352440996863466210450354600654428022601525138147387572425742327065292495024032825650158232901790879333849226324759171305595603540811016676851788504932494499082965749802508715890425249543179190572949524851276193132896867981042866241673558140911175468788151925688658070708309383265079674161330331053213296725441660923910225678932707599395860742909245154762427599256568626131619927207001323073078439178551740995702006270620428598074717679971142235943211371212320570943001836920665252062148986002591602884225256422377568893320390235576047990314548419316026101958543869764664664738327542123270309919704041960093026707484618563156116632212449392043368401730867657720742067535712201241414262513688120471384201378873705062319075618083242766893308290441257686554259012699580768143795387637464607312109068934405255628307504885721575221193899130533112154580544389341619886633990455661114953190019235842640234444140341028178195647087975739243164481983443102818311366661764759701144241461102969732199289066009653250440109631406704251307721900460351068016572349519192924382731794777075652784950250320742084346166845981394790714806458135991617499186857730547719977263782642251119559625674469221604937431917308617653595603826463861375003938880888417263518951630589657906772292279500623626735392909933861892248266163908149757535742639415011261716543762432222676765575795677732683606818544312752177420679975342885967431117863259580939478250421911617636623431342734103457676622988658430067545121621332518908375518450613184680743844051318654476191252491575077515727814142727481791140792484049012988829173917698085737567703394561570461334421223708981964188626094222829927804561227214088128408954317382568828396342742978994839346476717707851424754257472124658360891268763877438295089911471407243431724400893136402218856008915044502125685544412067868998039231596823287695699857763622191252584661778903826989478573338750164174304672611346774344703255206040912361333002924055366270417934251717051589503261295482010736203129015520782929390605046464792427718248072760965333122421038570944630975486544772138878000268026598903455771965408362461047970743628854660882296144030476127429682134976284989179279566620409935121400544110909819331155508868486092171024937704989931790082504004756931577390429292897929404506407425787216331273263354886130109575380363246884632083054059002213647944974097425370987476871039526983308683569793576924789827998184424458032898327928998443476904063022705012548375156709601250549991443950528451767469955021758383379893003872419769593504391464293736491297592851556318878674615130172762423647648288231593687934087687563533047946217675099652986117397523090363244300496573457750311223246048504027986034173847256447678106658385322335235768018046897021889663987654643215914435016837952887186308620247847873334436587839489214010766818600361887872851806660966224253831070760000844406940519826055171885591671714171790135740999963858562932472263831718030143685979987290355222395054893951821117619774435121315825335109610072182113538786986214367534324491554502827582053042771344849260115625173210891392505998332696832877756800030553200671452387055063855257305638082301983030853233509768601525937238339257938017143431392759862664682283140634826161307587580422113386808148161375523037722776343759086864743587125809803903823791177487897467471417844241338546205808015002613930446208991406731748844400630406745749485319196885731320436515197952329195980220075561631464073558713730766196562342794184667696736501062278810398411357091346287903736620059786924423874815473198798451929560708920702492352829490832660094988001331377797347504485719454641889695122839906389894846584517076600704101284111203518869532118800555578883359539787394923513437957018616655149341078734542371158750471877264572378557150052004132928314566612824176919964020320811131105852912165131337283216541581884062514671181217925627561902271200854603646635631437218446974035690419469783499234537340869126829754461101752922732595393397931788497061075459855463493379245798388268370685780889732158339402425538990026317962245152934247620476981819563348563156852965924649544929463658130495485870072331373223160826198683163728497925609363397081946649317912021431433884883058790543203719092886568665035740970664450975496173611242779071793359849574964073826105090678148383950325296541772747982058049469696483619068923790621070367268463942153822958783633149985522639946981331086568297725463186280910077747707860231917904471137275806084537333657652059944998574097429064393864404248788968957562708474251007479068676542238623019614606895258345318294130419460479771081933323602919864763761026483713251468214783753975764009870402647754658258665699680440463902186609715578621709729335057776166917938234413294599501156168807181184443384680376136144395153079867958240131088849898691433430941664786271110762119059482858121975941742686373862863392813733802887006257938299468447832132250751484359639443734467275426667583224571983974484857906559008297476612463726481064621888132344073465953979095316439227453818459152879778663805105036449117499130075043555987871905343654388303523951298731820971340449273558220364183600673712809311302385912976988167704757933184857591632781985192206832213815407785148809816586757317786533021998437372710082553616023000930114181676270259727943958742547287696884493788905528461670738782247521387805170477442549421656261647739537680600377517115051203654227614324886207670760877739527380345798596031770932656642705482092272125676623993023028335919037496535131352145607184262405541671917558424280352511804772243682782319471349045906906486870436776379472390308395078797087985888349388909974192592235954257811686218714749651202075125604558295583031265689814908033198691076103298287653633368634746193998897600473021325030987916814504688127262537930502658714752071341662166667878763187877605788667645042080981738392929268266409264915917385641338993014265922130934112012008078335742407585345355577093935650035586524190581601978623133160101390162956508466651828630443952459411932691264314451256261396520094039038260021472824399985228279169447363834310589018572488075021872637175378396195168871700107016236571868081442618753409597622480517504277685042250924234003253291384921686894026950687819548959464094876041435794001234704888738766850121562260129612482472058007044041986153838772378048110316116288940521913329232320374318481484119674103672061002583648986037756814196349773133424245949503767240781007690304182642986742657977247182346527899342942440922985425093964089466093748060806471666090249477827473658598812713120566774452286592165426260146795699135180568449816101433643117747690366299849840636669557620211903110720314911308038347983440292882774863454001298744648733460964150067191071645387369143931448798763545519779814645324198762828790257773894636952313172810216198720074763287601493861687063573249008510591057667048979997598286759288875182306050217268995638134072924641956436534696383294609106067488061500748082408628905084518339865398099723905549042560417305240685888457489615431564262696708018719097829236688885147968081838992611505354057452104164141503079939389567563311863181362742965512187801259460048788164563448722031617835364329841611998258805077292968710401902753882192564658624008815281334617765100685380727296611290074840035737281863002825918754936864455677230444804300877367649902310065939336525068300713184290360088410759362447181956670538356585333752296860377939922811169603572093099154615057213806548140929600851911820178506427062371560725551913789154617754905200154050668438385715265767377580422083358854283976772221398934619945942971290586377950401710251420593936380778019700774239077307703590037474002376448155537052758425274478423935665480280133874710762134917834202043519722507861414675718879221881637051036186684549272777438541413367979075148692079936906907445308980156145847723207470516720741809126362587737249042259173310004885640679602456582447308976289834436990178563358129679589124461057989292952798232503570879078906520311789722046036085333318601196674688563243827457038506616245066418261730108752568388521803980979161586095933200324268781523041117498139724497678654292156958751522116525806882324090083964246094909350328667169700394044115687264335715522705766803350332178250493690827216768864689468603679648838200729736138753552744985238571490722256012430182905129507597026810791408898857051805822498798494317895855841492309114060351393247151377568156579364415937555652581999782253304460372974792386006045241516344473076168109911252817113119783670987195910407575080500152391221009673737527142875868979493407212083527068812922733127222939697718864548210793873498507142324197768266673299228145033725232016752964515747712345355425702207672247715174164611857455390029855234336281285999710904715140082533048750678855731870068865835891445823797379069729136361406557476622457293712846980957533487700217445924738934404465314888114416065221264603316614289467416897362499311637960073569681167535050442731759400069905705701149460251518303150043678722388698656735666172573166198777472670919497339062589123347327805283746395437433608648988207242560370865611206450785619023897893145965903843082125377287356849411196529636528053034879185408170445527600532945434267837999809269410794241636482728315132566772558877858575103303533730348826689141542235084209959201386594679949449020791730707813110751525860437792531617496006930346083657608552423448042160490678626276172096284155939314990275124816686112419275515611940259206183890246308889021836877672563899018960708860948275881159270546550460621427481765548492701576873245625762361178643979350099560200662427684605709281599446433489048965228550292870988606703484071874829921837309064669004488061000719764954430307227249392459309471567845646892354906235716994861592734360479241989085381404739869214591632191211012734447290637246033555360432229801706941665415223029236222910361384547671179242178361908432193032589430833843154517556788108688384984462869934820478077606178769508478242392909127725850473203359688268165573500733810253991449198865843628841313747459278459368804708867276545553962446533102305888547353410637808890278172087658287639957507149510312547973928486802259612946910713574514441749978367598637828500283007301043660146329413785842922803160328775029932104001974281526658540120896357200282725547803233921229716031264405125440397132246779887249975590721107010169997096806583797463458127635250463139441729219305517457287400062836664222526499033277539810395246766300847723469185798099730201507384701373278717402817398174409864603497836645729977567785062766682450930743669885299040185987777986468034323602841973768040105003815535660354397772760523030491762568021109390622232533356140468653552321416696577340892835650107698410366104925051621995022259838966886969557473814391084931888360994925449373089032173006773905145082077796196541236083460067863712734256725045591693071978755104629327453799337091356782949704313341822778216891517789855221247123103572671028737189461989988791832373954963486912136898903751692206925645739584490979296008889434417330240262327547236043088865837887918196712517763457414341906332185952332813021937155043929342563832294179786433837922788177832944765016894637821689126663646837779441304264301240682795482412222616706753434154021681905842169516112255225177512607901001500759432207090363942836340956796526909519745317931305540416664632121197801697431545962110914447250989228569278230539421775616477607835392995984849217676971466972726386483732452210419258618849914497540740262641613376281799207239503822570722448719921911283564090733128300559837605169099693708495071431513401236673431742893996619716507164401596093493976264620658360543772796003646026189025036074878432794217544899009208464459710280867788303344958662902453173936091347367772762403742751369196435475696840067123265704770556440757038173610152458752241047896864223931873660215257893477175590934989143885838891602250485160232673457542013830614257714638159069553336416828422276998410172027821859203625339076952381689901537185745727549991568812832718948099314605457604757613318963255721011202872143211620962828442947984035485924056190490299503062789713221031631008724719712092693294527464248998811186172366041838048332351372958955192154915601368338392806687460882240084619969230563477343327194974380431415880277077509755209084183829644058637318240255387926468296131606368655265597861312983306219125220935142960673548805116656113933134044612838897011721468129050955347447097314055490770732652106284719727195354476338403843926973017731371191926261627324613264625675934027769336450750249016484907609694661903254784994114361926751870294810973988048875925770367635512334040877368843065427128706317961576327318532546941273435858679155791403914652594937696141714143923923660357813424478022741244012356914013759540358000998513965924556288100598430049377382405973188421943708737839262172571052895478658302039249662521020877418961440137171478321938572185182463221629704330425183317673191114436550507075770748012851544839729062313012207676848175953154126218909161481325795594609405990379210296538117671391685213561366475004423136657597564727113294758968458503554600969143629431212748087655680666828058368743086605143593289416640966979519702056413281420346423209983823427305237941465690602272804819683882879095765167644766588494818104447730016911639784890492282758960100537043277196225822765809189273710357026115859820063674067117044234166148635820321183894915574065621056287588044776057826117186474118861140285352984671539636779538691264885867357515521900969605365994445055107146879700170476092071376008107836429323044742055815192459378014617172539609935997699022983654766160357795446820038067636530348332323486729473745691183792887271879421437406790858624058318799559075990514240605969304920644916180911901732671123664772295588079963779642892325601703755104796185034307670961847115862914874232372386914663629606525007148719294275843963094654870166566293545744017037226363923038004693114679392377319210189185182505800099199981763217855613884437983494230390012681887350728812472122915134360331671839023052413929635706848763375067573285610481163459933784470136245753853265959162694084120242691570530250254468781714713200752762475846833093100130452868491491087733326167889459635153768147741613471583572063147431079991622833065379504740862582748317235690771155852997923628425630752097432559575794989911375837753026206807194832427107927390170871074246618486526179258144654579018439190502207084961772199079662263935271974412942388049415461261205821253708152094248744500245764983534907941050470740939394081688372339873501619626117754031183018811544681205726420451408441188095279117263659508244671880105870559614012643336146645501522614873720744722740143741214793020118286210770607261700827527698498471179343555808846524457026581334346060699471886773398536794324020561282407718390692075092830403774049131714073140088652336973404223577641751213449402717941947532444599936002416424479058780585318175749856568961984476362733714559442354429379320713180760961539303003925754418004665875645070201715974595449314206961952495525692495775778089237747966601934135055873203593335374370273851882048724960395650829106519848934625852863625787100826038657157508361151250767235168584477151907523215902214571451168571679476018685917244402449164775141876105659959652313172070172013325367032399985768797854258216067331081881037823548914446158402979777765959238373512197262190212242507956742363080117327610666706354409047316262027241836618511289673682860009827316466865193535110665778309027677901917360447970416699438000086861996490445108802968534029698952739261574993678005034396654508886467779052836259351665402440663330859449875518532060594072431877866101031029964919731102010144974219576845542190276986482272837394818491320120346367723229139263686263813421438635654541914299820270316520296768883022601156264742636217428701615398862610563438006972675469225294606814830428772213548339324041349036716708350300195736381512511033447993739056335001401290695552226600287079618436782609679124533057242094349707702514777307952320603214735108296769815650276890772587119365595045693556843712199899692094766466597702295398767985975964711701119175595666442554025837537315816434198607701402107941047060027892766972562633599779981025591918546531899199031350271262962680523192920512560205968363782779675953477658185966978986836904798725461527752365579949242676295921095685406197341720877191383472555449888186989967219482685476105338318173538766708956793693989663429206733804783503088412728500440505362562892588699121397967162198976803252504069901115978616677521587289437696892965060437073528961953698787070531259733692279425808500916814525047930362565311597342448583489561892214987406553659679578179559129969839546719360268740443606000266559387403313946059927730982557201964159241645496220681682937412126945610263273257026218240488787873740193126368182167007427381511889360098178840489568352641769470574881531892972144344030105250763586285307473818828531895807797394650849360805066262474084132021010564961617178793353946191979993284537036672480089774130470727245743220422664997740546767027927474076812526315729539859761903604410244657206977197486054750093282355214491174056096553981085057650767379051117499057713098555739965600786521024993634793378752711948072566618116898654095771767773486865345131849625934400600800842082657362839814232718198537576160625902807203694585704609142335199776349805771237978912146218641759566296498995891799178138323910243178309597093035878563280886478614958605376998338288695791635049447430926849041395748004624391262306584893452370473608694514707275054229270266420823563068076564456129663197990747729970748742663223183042977580233252071060474886665032643310263826674875886189537895167904330462307896624285441778923716774137732973812478897130795450148656287099168458653893275288099651040053717759386989141130066395105808585402496938258660530282611453273962686567343470884019284167490691455686220834624983027325392498302644138254798755184862299422905295770686627573917542359400538032704465568584957438657529449230365728111645617216155445101465112457861285521362213967171151052877870629898295865980991493062406925414015276707357092057963100728016257241849471413728360899144560485473587505049292737758810800989722718443097099304660863740492590103374373228496014510991689904847465035652365039104895409109019609188253702629694991213450547716045192799579223313519183161613811866449380465145512682989083088762621926210351315363660945984131511528571442143284309115696658094814838774940132934316502732885475448074478297089431443919644797585289296245411496850212976075336037825142196932929281291519406859413751873149827381030866121445169918210982078059797086727633072959350886182052884545700915364648853574043208459146936960174937918661305206517094592306216816790320329872221868264626050949223359454584176380767119092394519056080248089917757028177879099326408820033648588667551428657609646888047517381920352175261184956632453939125658810897057773420953322120650573899119633118149607780365341488833325123686944515052587217294642720862897859438292040606097325828124686291195529132490627543671969341558166223894497439734789876192202685804590081673280888327302982246686724997643491805407487315137296649360863594891923176453890329071632740072965713851908282952830403036687662853891651369869064780436792835084387995400730415697008102833017363693490153370743381442588629795864033763083145540070879970600834132256246813904844633298864521055774212179956819260892021671722438379256278843356097007365509196198803511392735326815002654975001130186026908379114408551603642441885879543376229028189096320598259604310114907471781689599685587332808905418325192026258104292971409888197600471462144158982763109583863998881355656979676810812108615427972448321707157790846480700964469782969862959964105327360902883812629626787473175544355161577625980863621600999736476378079168174166761560165140019339119340903319422408176003314529864575510696404562532397718497556128857937440713479577818392746948010311872313562070978057181799673748484163859028136021522284782881155413643622751882568707756261120393554535891688968022982571676834312180727569406449568147992321671676047451591203213824778831530433072430231070076090510139342827320686832572514084551361515650398679117555932938180850311142524623109413059913470055964353700828247312750425411058120547397177788620180050155477936754562069495092176377064889943846429514158980244055331801207956976922313591454590816918270071621190749098492125812014177661125775254892887599680465151934491789531024538867940990248756033269064740488184702549733122801010820372206617087386882372911283015693367030412236977742289818732753200937386860193600983037990790832743281556484520705335208569250323648933518879483502099839743626016457143648495425796929602672175614755487231712619970535387879258380769847208496125374401715080930945997862573426189320251793125583892979413783302964939289774618601793045483038448883494528719059202213152672921451490868889139025615541915922810513089022321150944859598580749431759200452911975312799280113801819319110845111679878725140955609339989131394608126880457798704933862924572148395862586524373082073847033835216491177765331945056603632720020938448424538335456519897870975621711308134067895894163935780475571889706972778028195944749471034692270951272542633919203535041795300218238916749737732012445131448795869916696032620324397220274106588379871695478305465743582914695783895757416850268966900942583882160803391176184357531659591398201480914219807465437854131811198164003314001974539861867623063276780027308671566461093753067991075419299807159939927162179251089675654052033235030124430950272211247110152754759475288980603003227685005825559475558046056509458610738877240757163238790287748958519248007656453409747427375948172873471586907584250510802740941550527409272076791863041757393305602593895905601010020730402663736973118467963483016655267564462405753633822883918450867737873569687731899953806294519159234200994419659171354541067551121119893538763200307336683804240592618501997004641313604849447605059802723332986381889990835857298190964849396650666356029941486013923717831657665997696372446855819287722160011181999986524842277094829607760797672777390674678304431489219508063332387672330040164121032418538678101077232500749453287015763592146125111101583287758376771559619452507429424669544643303879673392546785728873670582199763671197516774930174372440063205808142085349673485190476339610754641171383806247590558702560632098575328887300919464883650171948372148439756274999153357473415604917019754507377796918899700344339932446847052781453236603469841133471631543199342569789049607777268497889646512484218140896555228097444013178770982632267316829352251609424615521812939553126276425044274250525531848126700585275295350651324579468073737383563537175161060444892355801413611744597775151295920914983184359861718341858325612759630916316375131109573516497313188831697685005103496186140135267202378586172943568398210380886121231072292802793955161051141312605299391484423529958724808668116878048963535787706533465032783119637871704984487426522104806159059692235235001945167541913237439721171065745970268740562881028583126309482624529986613379300059813196044708978241577266393734442173807530012741288094264225199830524445245621965389705183974211143346320724186412691391302129960933683509481732076427786218579570390039744292796676270830575985889390863179937630476573957191811374611151692093366620928743908495952690941785954911133577799685633129244567417372857091899517533850596453793858300772120923114184920852682145471465942769815152233631445189398728995966212270511612291183584476406592006228772298568633711529356937255743885820485449154199524928527162149847826305258414830762505173025726897966595514021349929813702661249083694349270959376835308308282000621084361391727607099640919154625940763763003252574663476624491100042412288884605205607881930485766419988907198429153601110932275542581745376736692973825859497562622252149747265046793815415809773739274841078229493516485787828185060476875985975139537636629869914785196575627131046239854841826820595838149548849241987595091578865792998848972858332111050175270740194248041193469722670751079281933913180676541841756124308938994675343783669095969928024444297877855135795210257483652872927617130356188575124685674058001370817062666674403431841017780372757740566762833480169096961032007310597117144984770498547995781735375546731397021594909954537688747661571963843181363537270848465021072612479634652682516763400926695031709144525643927947746902178227558865538313779801148646406496317871493338470587060354342402516454537732049856419025442921138533453391806278647955869138544941692950030680837825232171703974527436534698818108420202114927193127829921791903383765980102603119616733153481266396696515123643622358949291031033937811185376275274690221861733054808504527602342919585056914655543889932119000057861883181565153562903227874597142642383293204637090889360650368976155602678648324650166539006000956036539274452837044152913998820950368277943611336684204042869246354278085658204822684872067252968524213851555996839691255144377214131527048611468326210354327847243986859248829163138914242071396693205407859485801513177881540997850171347830329286852376557487971707431937401995123807918700584591934092230720187628732203109391513977661297747471335721917036128603321696013965931595469379748049229391933191795488051336470485678162014089588220639800549940529369620095398963913781812824933752509265849002218897375305388790585584742643004575409672745259789021670802026707620564865945179003056128719712653353639092520363929653421129178020012754050355281282418329557438603981155737203163371026291083184304556803763431195698068486765071920980544934418388706041368677041737704590815028154118581970422105893729962471638468280763103502259747321086540429509268579036769929944848459572880154693327148703893713138736953330409483748692795727891031782584125066929110601275825171919108258667564473194013696482079265681301922527305236327303840805070851937678884128684619124093359178623596147669936724549219310969311158656712374146955560514441497964334216804021410466891510648526136665834802924467340824097188678243956977581726517076528119088292972002963674861308561182382830579388041089937361550273798564680449620575342712138107044171936651966428323953577912786473440195973644696879232799972711002142489464017960644570123095569552760650202692957308039273143808472501945121615090920194872497889842338565137661980496245752128300533471299186721854168876558953011017123924747225238550381030372781135224254745613738970373596121559989003999732840403056652793669064031088199503336912877113247751999293550860715484242597371534463517167185976480586479292505878739318474678215397981001941953607412777373634649137915003476035873916961148788341772253917238398002177440237186915859915713106322846732277222905805877798180222723333214143312254682409559073581213590358121833910993835761411977101004795332831094049103263559383159258872193664729849097368039660130724360709635749426352038982052170852379832013387704354245853878533017521698803561169461408282615286040582632273701419856896914114550865011724308568639620404761365046641233306885710616156428804195199119928043728041828155281062367292410483133140930858769239828265829056374566799746648441254141306432933962579383898244025723973118815553800963076301915209041601540313559808341040025843728674648931043705581855447620950918360987675919738666756247022103401207017966059077923115529157641187255789999018820277878981015083424996369524328701410211234616030451938276895038083405598604516808544146600064581498616077495189318783563020225372988053815816617549663908610760678048655594174290218921185777457649895823787578903407495094570678202460451987967637860451424752511543977040749099421367090017225905655860498094372976532980641962806640000003719775466162680615929578911396378985092942123967916078949149706072947657513274704542784800874824931464545304413109629262600909677406271623040936020274439553331788067796025563153283088267673108963839887683223810470708618755870502919426677300506611125769891019524611803205538223589856943635734687019762426973794653690063275393142494856232776920160842120894411102296942805722233788481833389076914896044019784097581440431160057957834906418203313630650379493395263570001429962105397516614061172656587750339275820553791134229273953720406817488352933986783855501027116651908286592421941414112203361359690375884632632795722830945588036009525722529948618466297774825823014279070187849363641377328177967888530623134310943242874024177515316567609214882754699460692346312424573950469881548775006889042250779943413536936996859029648640564140309830861673309915801188644306062848450657697998109152581581914148416954615772291538613431275735874123245241614545492182232953261558245337715630487163614250924830075764194757903685142292802665821648814662940890229677806427726528313219978320507252583783984201809932734990370330118845637935992526592527372033744223458736906996756189104822918348303823921425622080035328208486873717841533508500353264991173695641255785180628219133721641433799083325632438049995166495334068210256136370154104344551635900087301724426024376784783995114686178043197671455631377685216926902475426749943356977278229748104077936122668488604328676183133287899791118022399237662254513571098668896883814543374182289018880691722747464417146397652882005899248560085501785379719972083024111117557900635476149662174939949254056589629438727658597192092146894834281105024198966753290307512595119671514323420750274575414143526107234724644293440295554683015561780516156319657537293631571865626968498115325306527050967432007752407530265308776349676703057710606863618470870824434183343186817523297056667266752737995902608510642947890842542387440618382116358845889421575273768172605674645698273759798408876699866179620583570632131515103447171420672504067599866025153322829140400221961940490151892709573626090529093569201265508818391775196371191672050827549068260162327529228585472188470995020875130937321632578145284737685792648204524102384716633613700907319629918668155186483700722410757230939322587413196357222227861989166083138982094788695388508182377905188272910769066791799459373440920559756611115865798501431678103937287322506602170638358791446278042582029543582255292638675274259598638194067854713734689317417856076721350822716725608302417461618043008036000758460208082502888887704462621227590055598213478841207297171337512948718645640663937088189185172316648115753567794421742133846051666291972426374960881856000524485391510148190136238177480581634986092721717217750421644378043820989474924499931128993686055622917345078949293732300091246042263913263933607580560131731681453898162706506945657109493341418624038316632116207194901410324584349081262916560204971404419476183390787540412066643056557829792712775354515035040067875170509532246174205232869868383603911811898742845643044050567530401151916390144088424195869138020425260131410457962072552479811607328275113081787265771972951515197325708376683468661266673399706657383205682332064902640508172306120071186639301289082680972764258458372381134191243008919419084881251890437659265298379209704787592291891718235817074855933305988432689234132922035737212684962740964867600109740627809178472641330789965747363640668795489782410013393094352508197050500075116608147115176426293987635948407320864828245797497183923236677533509115323730810835378246565337537309430674318005696008493343276496923663622761186476567086805311924399724442060515591673153871283546910454680161910643679799109618492256170049628392325248167432422154545959711158866176942955085258051715948120502080763042472918009471110105862499420289073969322644807551058581369890108399029703949379584062153104944074055734228180609766607998123635143351926459631851455223422204305562815444206248707779100925690820014862699303131849251725525696970459516156297937930124407772856780852145276877304873488838998001713930433130139939848910718991305703720140807243131005301100799431453150370271821619629461808033002938451871353384324422096025890623925547910206582784061080100745826547815218801000100450360485004105178936948577730278285753936655899098115916495354063044609142051390074906466333759667849394663961957005793749059302549903857233866126449014542379166819904554189253910307584936909822590714088673704407433312855953894691259023543200010682270473861014975500326472148653298920706553028390667512425941128625925385877057041002236571317831768532481271790401674565341716478744985562816723435561306666164657678337860571033457972718641337607086846026411477569148114626259988359357124794942925045399843392630431979622692146478429460737929519566523961446913457261787523827015813353023164738006615369009723102288781950218779162270709892701651231127433336552027215946453760791598710518836257521279684143124259266687975424974134976079773227216010877733972284692241891613836368807715380795339595218962671788828485668727525598593290896887058099348272878430051755574868961571025357654530445794863328047345469194739640838214481241052519565432085589649289555230989290771933556407847389346736438789286316871556800822420781532631924035562628749179386261665243328438394432882828573110191763566512430444690294124331758959766920206808226376516593790047505857172385119222622327865876127368606897703375461578375934790811276262455282508781616948063990981536548586506857353439130962097384513256636237953117700215644048188899418862701528706023772084098180297470334336651323209298794719771710220477841169915588859494570776966646601465522472145012265080696824490571013131194408821588322214871959103674965249679482621376991323119072286358888138641528860152395326705257109038129596314095790599271778130125396386189979096709438736680893502431215739761061576602047809155510384496519048145231704071461924373207038930002377509219407166917063651629847450676181437308756824741847299139360623186013505805137046817968596288670060924018119061581470005952917406604153662667709494889149559291119068623723352089795446166860337729453094420994618935681794248787317632776823786030430305858728403728271148650227525742435809933364785676113785530448835871582388635328027466034181140022303690621952704226937766157191546218735280730196481280852938739416949479901632688764589606183758401120037161520100073930525492831581481069710710386294978026726145578511294803421184149532460031490395620587070253695805303349945572746867848642050198579930840883585856126678875626064237848481001986682494951603965986532024395834780109343464015652418956603149177606674358424067733556355278956769931003444820855965788021201823094517818256569907479159654649705798912721527911436202072458188772452616825397916503744318620394941556622082107490885267406045702825115514419424831609623529172544051994194761176069258584849187970692044977690487403627921398620733755546458551237611410508276785362123481306794211234146553050717072561143334210578519503016245566488742375915025390041220233644197179861888419360195182840794985283160187913291738144251273051366023525516178575960463599766011729585337613852454610712753546270575003398281442255899297193642728168109163250214728389661514463546713864431824289153486446250626533954024598674829358902940726224989904806856664492494198337199695169531250598244490867269798516459069900094467989190561945557188162268184112036126042439047524876620699689769004621680763237461874705102142253877376224611121973352901112331560841129940360477046721044838913077981737294164403114404417970267857242964306369509721254427152714118867503097635656560789856686950638286925548139433008540248421394396948735011162943722413024624797536880074663550708076999649690689926291041476213376867721982113236128759191027147168845281110840404602171249532445719549115360457715070527651119741574002196836448639388361529388212982216059308527015049128730747543784936494163915365528582445564560326034646574678133756084817737195384147944177289917382458550946015960490262427400173853218436162879559733323918284008899355357552370369013797575152164399451677807986467126220336324663796375824443582717644114109474038646899918077770629032080826054271335028608066724732373895012251575871374774629839321995260868893642200615382162522119237609704902057233012739480808032322791282833531126328929944455189077674993484864926395203430936415692733947420497712436612099600791059192136543693417825532949496076211836045516516293558605997219031197327957278357917803886539849263016087282161489757963559121332079629792259151529513473239158654272103785557649604467872505712017414007128129129320109791600122192339414496425524383829122233462370390312457622259254125115737699638895183698733235935584495096691028135964613341493720681557479104046432662263355849935727984412514921349378027512532200139186812439476237637949618764359106032659186441890235746019471462785024785435042544942631788091181687590115894261993473413482324999661678934972786195804147107013100475321149810142710227116451671643215914614938388621250107236824721573370044485822431745143926653744657329449100547102738949074014367132942936016237207250850578393232223470486213210277670034036354100514827424049098512294545680019321673387703081109649728009368202294660426731366161975676678757062626438131866465238501620305519375920830246694570513202274459616242955243621235973077215006036342078719427452225814427282732845078053320389066338470447289668842588138813357323761042468561837512227403617169575312592785911756851728153798733599399213014254265853294217885053139323143722767892899216403796535828660765364389372422046106342567454749975682756891803092741827561959515312192872234169943178381133176939041535779120585226324237369042023427106970889954123760388652557966011800727214614862207014233910522943881873365864471412289565393727171910228555519033105809925023319768863181300004872938469360340326195195530153492252399355880003160117484183953131314851238493047100738059744013980150964333126607301767054427346293665462305824432158104880568427389688308907381521690194845963661232436761958020607050670366815826872625040872671878969775997242999847216800576571468811482089424827789643922570697895158095534370297093197807444355581590448682762493634858865479061220919954670106503070259328217542089512434348183390087529956189323036073395932898207238879268065003709875492434418167182467451518831579915681569433027416364641687734571835620491529166545669762285524235803370919291959552324538970135622117195501151147631000360520200795099430438585405526256104744176015857625772004108315283796245463037271556574321585715029482013699468434307156749001909642025953042627680655341945018103967927239368292120355182660820415828390289756816645927194023769762884651816362477971717240561602050381781325669655924521353305018364998763356544853031181919984958985460271640545172939672031948370147905346652138628005593644000782029419458416202745463180389512326952563563083571088085881043081537966983891658316042534939304626975758396713318600222100151258671450866037786280528287335749754199170867314682937876181156218171835217843496265219191456433490884769374104222329380786201515902063293913501761555607002094143423149704233504529193168285573778941261911292869605267663915632499154868313239059173440221020412844587124900668757189669984642960487351664942088620338472348677782921827933010693253831071405817841757920766650495895484450602778745915076892630368053873600305328136587671568915642188509716331431358268805681511937311988939275802069078437954787482046391578383180545198307840612583636854245566223920526951487883588939255098945947561894765597935365846716781747272598262899596757688730980894685242451812264925625053507165850832077876351610888195987393587104490142215370594384724880392952514284743938504614942770019357381691286221051842344428526314749154751548846035671534452934034316305371191283577128157737086529907390593422534089524971864900236730171045169082890711150406973383954045330500078054058342527115222247129043203951134630835127605411735207431213465419763178362132354692194024863898538397552281543060187874372138610026557084528243150601667826736772939869591770905342225818485701272491267639828283156257612423959379800956300435830623136263511984161777069679622750520002024055047480069312957268242990109612735450817191321601847303338992530956435276868919692695849949695503787784040991572998153060017914705747554975500935958440293392365650897889820093088075538390753602155708569374555869210051971588074624042018917473348595402894512816875638091358255505118561497562446672006202118720872282881536979422058235070493682191615688526493804651015181003949041729087125502676948952710987266061731272694166411225808574574988306106583805166312139123314667679664239589390090383075425046447575973686090876624008565954124929197920744165533145889837478098187164839359206871708153555070150035897258473817564433925244040600289789323959725791880881137972580766624105051108928487612464856115885736508605112750633354888280933060348632743215068352308717492176178239879312363211409429995490770618895901098170274069668750329505828052740108512218221930783163084316754530944556465616535827830766303371256336182876826776809190534433969156404667820344241620642330953230929320892706348903892094509875615524576473773498255679950367939729965560568002927796853952293509449159436932545740441020443303869947229772639112339514553707002604699894982372490933130295334271861865765157686895183747825147215095419630303172116646731551996253941464333874633575822744139723114107768044384568773764765535853763350981022611727417017398024640165454199254828581181741650956237836910240826259370380736665754156651683735740756695814547350916866989346317873289575953245756382441656444814669345227190036637491344386013129956650531939376357434223212582504727998505120408276448516477242520508243729024969091242332284277557517388521888726786425584780444141590423632915803707276019414948921450555565672489203827899729037803086887089838484013422569502558320373290391991889513576650616530973746781192015469533441383232628557339506750306588444953748909561373999078851164435190219700615325749249737046750714828721129034169734413621386941366009967648525203253418042361137253290707324546411702172143856259211593733508698601122689002273283619387962230146411211004872710131621915404257780080894765860790439081875460401933717596834528905231139813356937161121519132109721488063390455059825718150183052968709447307264030859617842445031371251414964353750684890574007328566634515038168397355265856288477032105222351090206828763403076361615347743767734631814852459337697962159815736720280679179930934547440094627327586758438638833653047269013319521875478062965899627010172464317084952515954498489701008114995405981070753171460501201049411747853779783421356965853904855588317099591084040933419635937347178988420198139653667571224756676337374542670713836371419039035338255110190708454477289525947777252504227625830048270537401658335655631042366996210502177822764635742733825816389982399583480889426146216072303165695254094537898028135150172805559402530037687585055811241428187747239264965428450450566448743291471850534538889310119679163200302152104340545705787001104270462889580070951525666143577003185029733229789191578783465306771532065260177718433257834626594222294716201684010622072963593311865849463172165832982864424350050751205240728686882676214749371836337646151792423743191295202468470056220196174951496723787363827545857816164114239812438559188060510830348475330113112538936920104602233639331368990419637094384805560427380401610316487421403465972168292647082195463185533561458193165909585248657487272972718523026707174074938327493012397936322052310807345395973444408019961509761764662583145321815132983988694952461436368665881047390964423105356087469059010771022672113072651176970890379265925266842217015780527240211995883736260438055193270742828956676312657754047489075567048644338947573914523600815880510757735628137484811479750624899125901210621842644855300385501898814942550308299473493411841600913446154091909208498351014885249854835489690697273053905709420421997755407248604664619988410652829463919676384507156500122991389319701978814620799830819188367390453168791964197824068054799063545073319217583012059610830343337429490012368606827532399172172034713251288574269994368642333518002830725149974424915339769903154599636569511824497482230385305903435734806104451176199842384979888637932108093570034050419619474976234049896430739203165633636130464310444346590367799423571030686994252514450563158750003544010173446154671631156723887167134354312487203102201529584151631717229706615897706886627146746389199720796201063829751801656162288828891015910873632172384341928829058898471913437240909353288174256088178014571778293722203560298933020246222797774320384574644699566594295045076289283587966646758522028570352693484961849090530463486907566411831784594169093470307666575804879544049468772384818273049414965908328506094587954578437610152322500104165286910636636705416942330867708658344121650921191501930346641307254491926521393782093371888709761530856363346915293712605334607916768041263397441193903444599643764148507314078458194954853894429717274072814484842161861759358227224797192317876765103105755729105462007574014095074274951732044579113328057510213537790081509901790133763914892860035334822556330604710761819244980766393553430334702390436196820605464996121847962397872414604662663371694185043988009304867901524070583649184908228034316136379937780553963222162863834374929807227307346056499011487896448550173737369186426123479092465133999298569225748953056491485639059123530471176293907615404786480177518780860709711081508444414855504116631317020908362487214018186523211172706386510139137924510680079076176602459678651341447067788176022593179304622958814624169760397222544958060443939088670626525693026883802710663345660375666858942216832404571662462545534932179558536594912419749429017148767951767076140658697514953388526881653624327349273139688472196782090966728717401830371057599566748435962922565248796114630195394314502213791568100270359648648866564910487135611915361027066513214009983579947296195585935169476322868271222721648882461801128219153840539343880754208938257303976827444797820149717692969801379441567581308702734978380857855025495184442739434683709776126620504872430001799420635487342860020416424546647282406184467351778428623963818655588600107784823643700585283383983962733632623958895853996480932286584171078124371827588270217445881836977793837203305519673858323783858746419369902928941605427633026786475472608565515877686445782402427201580729587869156317128716937567091537622238766372256078773933968862945255484902388822206312357751436695960041604831636220718979490178401463260737777582209858094915915638664804473093596200614902688216110794550696791825559478521323915088580403830656228607641645604922846309037087728907342364637589346274324258082563181073538111505310542613617385114242305972036933444357798832546752920081798240726870424050755952872427205145128832751076589990443454164593388667534054590118252730827012405630404040056889755655956044214487871274169066059886299676311194992799793830047481675401517196804745742335818681127791934887347644083778668677597166032295568523678066552557377501386469200490170939191156765580502241701369096073806911331258629787061464979367756263530574122275792485903863758341579606936960443189104855415014017110493260053974975453984330257480754077147508082254398925430074600865638449785531024510109709204946971761121242106910405725061439010658241870914319478634976338802365148422650602308323836602030219302779195457692618468707599859863568229990743957123962973654243099689646962142639681438025135457621136317156717213066002592198311615431477970475036338674893056834804876436389862666797035667897704782924793860505202437704865322878509570121993344477156330914709537956026352918305145284318774014125753766046048284333512773768066468189302242778672823601932597279467029002788705531446709871791436074881981862038802136345087578816289097514800436221544997309259696677686931298703688195903652963933761297352360387982886158337130982957480632512319268017972348444734044655008372540659728398135308063166906312133094752057823839315821116133138302804724627083534635176360764805153677337599080081993039336828395594645672622612716409234206007514129480115586144176101804021818309438091742570761574784592256101009016962009963211548226105850399242672880659448882306766299635921589732463580544263357797965218752760656260469768393569357150253777198159588593427952123500740823642766209578106465934019569219025027616235655819725869387887766001852931494644434308306376403714646196148981672628817068428908120523424917905663476277150828185437029338350897471197111618536802638372033380731474076141318486202150466178101535119704333810455094045938697103349525485595871017037068642053347975425972204070811766616455961962267206364043242156716240084432536391060186748418704611973270389971133353953897311698531848288617094131331064946271745899682801116076620423625613523764607232010895704129186695194402356444312577904310416644935455069346886980426650285738309708662790235296537787174789424134347729352178634998461081096716536706376660923090971732403698929601669398029456498105723696202311016195155113787748795377481242007532735035380038896329281724929327357052221690848545114250084169675145581005657752157052553285981552994329922412356200599120206580532785384109794403718200561893786372895077163302120634520835959824994491615958252981515476671908901877026802200794265596943333373905086435579728221048440968233429655686042988892286318941492296857188160700670487875241283027540377763744736275303982088881483528435594459087843263544658910336844195643937376922314316845180928884412352983170532122291105612274451231895648968542342621805083963402371024661465312378210484961136999811851032352033530133847052879824942360639573300517701405806227166571998508431127705391197902822499885341176245714920130598959122873696596565757887301129530813516966402396791507478535829699091003202048954078520263267167803819229591152461740682227504852627086671113585715458804813715777277738851928508189187936554003976529787501555345947171891291470101569307225966042237721928545667112456345510392036487731595989743255076340330550531835839308097688012435757890194360536148011991862336182488053570845281951542638992885555124371371894487290203626119945755314916913903002116568922961691438862768137892369833147132050982248343581746974470391332147931516746978917329068414125144470428718296075084559120684761895885712274440549800598942756569420832269647215392516431397590342723773151518157862558510027180995400860805406656206534552447910472703653910202144015292944212787210992251921946918865670892318461382392145097310558584795225661816105497232105895605338207871911079635124291028652770191871135257304478308134963926900571777607998500720097970547554370149492926947620867118600097468087323215470878271647653354857302310266911026108671382964327692264178780503990363974275133417162519807975105410359122204376432606258861194548761947723538733286957857087583898737614304975603081313218618221086763328874198867324576812488452628934449828462482172757812280457069336426670880047814569796600700406172234217243350819238785876314723839965264698121762721969585989586302972925626818119866507886128750836263966763403428608496096481591910646571846715251026929092510410065101143876598443547690607951361540945587093751311562271107411422324624596871485965016452896720109642932278783715772748221965568449281991744274128213551465176110038405525518364162408764132954345217231375494376735003682407069544883124953875443785288418454927413853312454779137960951339500082464380468358638109934467238494628113554456691672937166138630782369585694722432010663700703875211216298600823467461848771099622130875420691836040516121392322343649242322126835813315783982148712439160253953446085461676223932062584544062486710737205658833146865949635390631380210741524293995790623521767601190218659715123423997604823456311951056013466717791188216852368542687023960767089338562699599662833984470427743424350417325278292257330894515601680333937168487803470855127617470655934532096568371844018431488430951673914912894545389193276887010487376125093994623041512486492976758062925411028038080297131238424353664846566263715080093518706050258360936839003714256113857437150094010632352414026982628312644530493263359266812195334891469583339720727860668465957891987075974593554228200575433068192065308883599268098391997715951832322097096370911791152537990183018085888687423850918626097596809409811090945841850126528934405083786925057029845321527338720225846551334428752329148079189678110491739387570487964923686049636890321682977094654475849024426703971758564824642776292879346443406841283865797992120742942141011024248547963531377417600417499921695399950606456439829523356395072686738172432759455619437605989511968918163658621425195215492009509472988387619412300490375617939977594252196338661492967852820306668516717797295216956648403382062678460059710688727217530261401122684208276706714145811766260766724702095978902013832843922614619021364879539106887319914737048968246679453475281552349285062886920395622320971506531800126935606359462977582224303980179409669683561259494502091459713931888878752330134008926497025552342641283731380688344537408237589002851663758669081515578237588137704076338974370555397420082672245174761258534999559644059865411686408974270035542468490215848287283022915874405084499083162847242027561967176059254649871925795041720791921926252859030504261394575953553195173731309407009623727590668141546184123236495286964744268955062649007138877276300166666173350676999532353159348019348050732669216981619492627710716512550994100235716359402724104463894933925304237336060719356472300982850884240287539301859535508432843594620638756055888237828586595929229289218337563147581086000460336547011411388454553792895474397166853221218135298576583523251391843940394654880100041727787759506998273047495313367654727832798355291719499602365902393337544685522128475816128166574876721061551478725716997103864118570206761607677299409036897001495195665923746708722189947750054925249755570272627007533180000575428006123685279490896111559958102097332620729084558735787278459159255405674215994039175741186869065888004130837200789661715259109475821008847997616465855926138023704333450904489305128416764621384489165757499608393833301682112776199171181609341228620521838241294246371575169880306849576641241366288871355288687651739196815765948758427493840268116662381610984540856392071764099498396464450778837720237645286743507326603557391563560825537984429202705536886870439940263000179061526632838495601601433594517802649940735599585481042915543125305934043304222475702796034033364611517592721255472184309418881830773446923531033526413956834353605229754962635185811797234704516551131581112752186817570881841527062808803015665154800504055364740740830844072013302545676491420878168686765258530500714194758797462542440595866968562556878949296195920370296229553916006298344624984109837820852223876059347489387578314272032294945644978383393092432720286300376520279650911247305130687767771719565984073840809817578318894069284895404811912443047760251941956701885269420705887978262738231297651745975481278884850430473376726335779556241817837302715146207831591798446162946042528918724743174562434069768275521055351805173294525939792086998638513190462222865731163294686265321147842676101517703904089240550804465308141206201208031725961599715681109976866735826943676261922425450136589038283648982755915833035785554918141293667613873538661695735649094845247883808666543670547435420302605775799125757500362538901704092657142056462940830957432872166668442335255974018619093274933527535268750184697092944432123773555022604676847535189080554450019521357161046258980028340274932270981728466547557457110234414305080161877696601551572294100707144923450391832340017058251307130483002732899461527658705574105156600349447909229051340161897087220149337509093608773611498829363561469382062969487272150427508873803118654974087586403730597812143166031764145384451177973792013873121561999829570777396006286549652460373385745261418059561975896993289321263198052614899074194077179791489620785411651984951264020307716466031724260061091794633224859282351215723962465038297998645358460827493042902241843395880797561396979507509283468216832163883155851150267865597076138500131168158103010555607188225393690115369127019131672969416388363749218844036617379932573635495500680526192156649239391117067519988346755900059490897393596440035963560991865742010448422368939445691526670550368493465470735516326170573241134206334545952012417285542148024354791028485120601822131095731574535707998902391451324848647445185222877418673736455330111846342530316470155226413408337726067749726178774594184239951803713413974836437672040259286153536665356580429002059278240178964733872212631696568954074007807547489814016296802623716315693312122652004673650828245523695736526461665817399563376646934448533652272084458071668539545451689815565091710405677772123097128899843855513649469998892192787638938140614306451077118817898608103983538600522359555333773947528826733668463614188708604301822222982624272511859123725422891129802232081984598498612430403680084143268513992063727588196649516654996954502601464023171202344282543515320709538976300803493767001348243733478315275009382594264162322125518854738155127145581242594891731444447810275190777572367537009284485790412094158756357296275647742824481413025051911709063813659671026431018802079655541243142154351680122974777993646067989244889552919263085427364700976236679958506604828690607419640457205771624520154809091974003962350438298155530915337174209709890740829001213065701998433121252998668194630057056790345170025769233939820326297338284267196930983666472706174591766995285072645649501564716939764654263382620991398151199484379846551150342851839169008915674662257117070295792273516118432727033938718218737529459339661337090132871653011367229320834970567287857412818408480158680905725123065619046685252683861988975085840303694956181283832407420745114490305609947158264965774359985108566132084321919853582365641442024912694468277522082369539953213046341366499491301301184014249705950561662944773193977510335931611661514461906156817783975884241514347577952089594314588903539481329342378288144327817608726473412597470209103416271905674489623309176699241504749222083660067394620912921955468518379585030872871607753188061045239905119756260946708468896395567062129013921889686183546270648775753301040999490712644473585881235061192228755041170463419726958606591355049889124897523117767455869202066774661735657981192037719701320011797694845918868473711404957818563962573830467531496215416831185648682775494555153682836837604411288133657998168714311693374612106534177444517937550607461220651723765315163207208565319138319567524078379973132957902469867180711153887380617079783690262076264572132828970571506881633295428435554753819342661447299925392235734113233226381580078441860526149064509309750084279430356523587978281324947805034125757919527228894596043395250309495537241036443289221219715291021640960595860148624140100168997328100952322868761631262566436578420538210928820851786811946543569317750575679927151051950289738099278258033715491422539340913562219056441378873842247417582337427858299433509830083678757907782263092258712040860742464680887456429409899503992474016706023128662594454454368785006820211949312312576511716169807931769273651826156976006203471177836929770550460987801263573228813029011732332292790613877778665404969884350345760852514383531403144332589532664236425875716907910091500173779211519040716627122234741177004785727514892230182829298297927526715541961909998545100385499119359028112187855656221808809290794167770764448685570768631514686520783705955662888414645881359029134495874058421363394285736127996714343415139506087447284131892419906418679045766645431767986041568059199994834179089635144649340290050011874395698842153172064065736886476317491838096204058756048914172938882609677742554379339152504566898787694687807792110881094017471197183415907727746123328332210148721016735705427617981544351122409173154092656457180768918438520615584291554057903667441570769610976091090917122992856530425297257171081646290712256486934143725495852189385843953893237012308752932548360277963230026580336261824795005380035124926595566510759824206105941771681396091399812651602085988302363374279127781690742985072583920352293354179651833505857908463915324477738339519016942729583113806930896847952176451008015013144870600995177485578086096957278305511141019261524735843878610843979464722398814011895491115334404809823413589065650362256517807736592115812958302835053228137803826222350975688927253593366530883630937537397327902564044600668712247913400467709724514569524304497127718415567918900731518866955491095654661735289170729111641020630762183061110592662623131340470230113085487335358492448021877905031720071947775706518522231195488069120964021891447125318906616598826437614785468221144315383147706897885244416378033765428859139592410750713108860593072097044488421194973809370097199644629959148683521942809996345850234291053781791579031918329008429119593351647440065260877156125944265210251285081982575596581378149685670792661770351184250178025512902834727813726388765454932721190460617172412232706478788454314151300760714054537220851937930517577233966926149322547515705171212863109669111197529312464548892042022444848573442248542595877729876547112470936559799104463029707824255329250563917800414347794789021314201623588700729288505162711471989210457835001003869289436557813699095411648193074951602796011615413245711637919755676005810680023185563668892070897029577305001022809522410323592034444184315265795803168996984085290738587098581665063491881169751446897527936017789154791565628281509176517032962951485279553114633144921410975200324041786661310110293404323684702187570524167249513197062735899942409234160408172696761508177895020852660173998098973010478001234130033758306880736358879621475553602364353003940689555055573265218127299485072232953311985924726262520965324262493763997866341595401815151085230796858012395037136554625861443166906408732796627369097955251381897789819303804015791087234543251303570536622347646211100166819597653204700935377340606225938259925211215207141063026146808778230153976780276354563740049014009946855685470364378476130673850122529123651934461341723000612573325549439590682312588145684245976855012950729245490696169055962453081903361065901014684911242908946987923175020316365678623772606760678793084198822057914446730111210423951322276784973384888428659274206187869873437350521755457635615248216935162449285215496329928360039570943515728540294918115144447365906115286330138063154253850403540167373418926786153779281177823930019219206007097804443220974558552100389688147044045691911627238759355393629410300239210547320298810783804305819674387939445214824548556779145110368487549656004104486438410494990976301424879077400837444315877377959454522589932171703343775673024061608338712095189052912953541837383596833944211617667018467277299642761768627838521578534044346779970187335688692468105230118920370808128383201014845513128841012029882779897650606645034822466656958157147350868263077977138528882349952061727554966071869687747081579245702525141529656397990062995811060338506831806707792106990135400102639323841582932039849951343499563584686537926190506983350794691455486081359302745038149661564138772709965781441417868606439367190264004155813504449092215071370066668972703355713441357715909652883810463825796863841180884614361238584351070662534838127684827855872498159086339273658200765190261064814864202587171065288365249224016730150123304026275998759209057974166720860534897211249309791466845104356926172805440858076178062955985059512300075350027306146737115823820445765479118042699862988280184689225665228240913946402476664658494921763383224194807660598666016460289062496628187577670339837312974839905416515077442033564545206901985355519661126404651364025726937733363190914772117217553398504215732832293789720568451999337346066454583740831280188907379087377340619020019562833699660676384945932710066504477158822157044500897151963051066408307276629697781614493025075820107731392111547365221436242161752831231534274995979198695504055685331343340667944448059955545849104940930856159430948170477723116701281319390963753479591962948040855238690372983172868563029716664557429269168366259164637964375855055140066604686946708279239682372557772264399212742948996007527707916043603145555852270329219694599678422433822579414189966566460574906873236573234723506177513700252229970533535001085520509716870317070744401778806536895612595793941161313470970622209400699518679151703166902667215894276872305038597559792387933876103752958749046300323979662624039415159826764663476176559078092661929922554331888370135957804039467264214135418391742632616551269900866712490171341767679404817424382156282996338537361436979346268393899578603708633987406757566031640313328748156635209105483481204583695718926778650478946052127852825682549105190829393680033770143737505576533335213507694820927333320776534837932239949171181337084489909793892248065634725642522352229024650049583514432050834293040807642978944153307318416251326982629947812485684033750141806094738646097162428159212663676656464776766112053435971632999918766740821936554209169544547003708715770097990759162901068450230677600268003319408848193877682268118112409351963500764009314209300013797977285246972265202224813574667993785623662112715499912735328537489543622604705057314849112151039415237502564183504783224486271748052486329037721313518890063359194939410325329051378594321121668769306054141472919549743212640594678985749172177124159315535339023141640027563062532249237328360756664351439340844859212260790784564096282746611174284324937424800347191829650223949803285222619803684466056637015552510970064235083268765351519852087808738409611651899035779609169514292768365813147206452581098309866635416832969827576095641151907527684972800705903342367154294524355042563667078478863538628527754802781300409194350369437930293223690811132063735387361109188550465925915128771285668384147278270841898289442359698968391797859548251924040143728183103382527357583143584388955819003944843566122833621286944395955586154889403877332378854221192924748638680835330971222750375019488410532754065085926153787603743572567234257703433415446663541745236200173139317258106270877203048504593634830255606030517967822378771413313888168626518380693493062355342911684812460447663024313961133631743792889701722325202397751269618500868049168689380491953029865346841987851097332735020542304247673889062781295978189159623294708635031403643244362936453785551915797353524879493275034006301242304502244153077259673150020672384850832965954904100918321289101880939327187001079302404755436564577788367166883031344223590325978951247843287520297209205808491113676386175383649876313051037882182696063608931866023692535941934710835666282600433545477826526819103210170557318239344867319795214967047405706609311465033472222773996585688045011235081488316885710449497732346621204702249809241772887625225591178382359456413434646530808741541387777562638452279725710355902814152366772528411083008971647923851052022174015099359685241684714163253601682926663427930129453542242719386819589506144328369117522042356521711848067554541967457253135193601353538286071610721957351732171713030226330807319271197163431184476121718866124264297733455417970807652389803401610416118459683394048480251876508580137568665193875929999506664175558591433069925814820966322294413438971560789187068110887631143145518639763266700256014214722287270372946737020926064831974240357576734195429335775440792750133787071964786301556532592651670431564104011755755212747547327491849865915555641156028330288419345906821681990453583601995682491719029626578942811740091078787299466000978723081071334855144487334624953069179970290193969927598762312204894053425994294305707859450379209598574579449303166242189635016551659537877006384707763045109151190443831865819540290956510950750871143561580162871037900349518759362293200880833309232426608336169689095190289594233679682846537901518548809702611359442225285675937900449613939409715388368151152480796910332909643687216354299725803069641348699528114450417347871047875216198546738252295306496101857487036460123355406332983620192063644406313959535868274111778118960562987094140360515648564926164306183576236178205552902118820013263246582323372056300246953660777869776418122157483289569218133687667627345631129264986495434125898027069599485656511756528550146621143485550891220434931195045130989638814439087743142883292340423427039878198697272743605125399737100223961144506338743633173243530176640719849644445382920185979394864037122827531307797117456775083325673698062406142066616001273374614593545176836520037819155884574191499021076468978565247665771186004647616655021576152006138456220939562911534627426581344212328160610299948150097950491845545772985267267075369257409994058311799617208403241462511737188541039827911763044317107236558574780251835965534865692798160593673011807432226220064808494953574047133925681934794319067843169136358732457668109058764003991990270755980700378124291043834720557607248268602234768377701910579092362954485836186505634999907505775764496859461044773638973702259307501181461601908741285164961733276761100392826526364622005672209613870367766202886925519992406774242662419930797071313797230976035078605704790467956780971947224108628449260081514466910259785721868252997109205910457432893764976639373844303475805782242254703256947433440493492733922402322299820695638064327127338173323212332229308998795765585799390036639733603007593648597138128932059979792658093873238015242759003706134404307257146884080720054910069032447917154156507839633453638667718838135346068069198869173526693116375828465977931943937150357184723404791906716372197322043104101276398382756893271123488022361378913002385517514455352184304732675457970586933115947557471198317555044847165609925552484478917710552261550268687295431290749795801752343866434125046562595592494652783079910884328074421216875376624815392697097184538643419933903351407249183003483228760292120323997582624779894333285587700235567699131294926903390827109711468300832990689792118272842439539333751441972995882536290518208741249934638050192701079371894481805091178311196453368949057401691662062721209235641173666444463652412149699050916454029068176929995021667337896433682389681294192599530711549617108813291244712238362348375865115426175344481101624544564337294724400524472602382367444382797126262231553381780797789599939854285354229217907529895934229256376131927895253837415227732753716322040782496923576145943637887728568694359792180299691662517017473158108088328600524182460187882780809966140518690340604712839648391281098160077188766164771230151086279935867805367540186840949865909678268692886060293050088315323990025041044271914768954078261178749174493146371365899135736163373741322414533076628199165321654797579276536426730213602184562822904085055322963611688156142921309561060475018191259267305208952893809296569503884926241084935552147633903692218941043596010771715601803642816602162130275159820844458059356116199836779969320789256201169455815914700220429288802481012573959806378265732808830801045097605144302362808473280983822584379768186883357687725479249194140789922562321592663165134835686749713466110451085788467721940075751264518099638858777670599715556025141440284416898842102842885963550650286139671637984084829482999014503591638826810265885406714411739595753350534895574817700557142791380517654065804949449506364452088688764419035473128068311338605918653654516896550907343971395537675297879503775274748483138228021086308840209625626264257596546577094169748444359663371764195579348234258270820473441636252397219063465897501053912276525203370115185588597331875580616952169986795766337716805235949120518537956260995996974224083893057522799164276642943499226443104787328704334295752700133018676844483527286185865476696477421818559492156025940170148296383057266160653340145364429093349510255561649874677292020051735622606781513891847268642815722730177957301199753065930265299240673685417076679538791156703185110803669870025831187682480954245511080704892204531971259801725894381580496433109232010826091882129094494133764635080275610304105747295655626776543895338669264135696068614261694948996779581028860728730837271686541720806172579322084411066896793252196631969336001279667307772171044589913542873412797485566613873766713341866151306611829258984133409781181779576519978028047077006163852922218396988147748965121034361151046583390552698134402709669000349633639680391693709838632525860002834531023300462851583385197270474424179624854631437061940756172546122064363526878916194136275429344791418758178774498798942995007063896471025618792285808585984572870477558949957946266843236121491206853323554670029365676278407704171841748671388357024228699778603403098818000821634135048567260829697862861010275060026191925092251754298521882922081553246564987733019579400625229943345236977948442081244076166185656577579502050207536505192442830389981677848927516586666581820245000032973748497503435080929894265838228812781239839080455076595480200394486130335090065663908923071527505202818118644109912660917648873671044927831986837398842709860046808241272511871748679532236270934092913519802624962238514480330300584978981575923412136302326073751144341514317046894572556160685503253538562735365836496258559618772028356731284673762653504627941431497511172423511131062509218691163000185141827675270139757814917320762382913452983012115299993586679827235793367383004799534956690183527303753364729302378793685559919262293944925628552976846682927549487623563758504125178876852966764574483743982254870548852707823113480401951503245472867509203970498569780254526747692458125847560933759071524371237939760204989319627658113318804350636269504481636887593319370398858732303858384513236068351941945948044105170343075900524501632474534093645987277019183626218639213122705353840323323685618490751889327478595095777044996354504434275260175019716386619489737581349703163467565146445557477113644885839486178287104553892897391342075677095092160155688210924651291308880951796375521573567647965681539515287557274871470348904570167846262918353130268376726036889237515050589852302679541642055604350129828278990399362110456549696372661695049281250507136932936084616511904457547571736731970639486464438629429083222489983619355657244040360714526635356133694658508075914784089139676960903131748673849298124916758739267853029516672447800426877510028827325694157846608527999556247445344742898510827884695888981550721027988281604744371493488845393283845017886579192277723819912101069762080973164519612108037939803140110412525783940436889003868868943727827287782022343990190300663311462977735888799411421018129466212391868954279063583221089163242212410497728103173843521258180728515021793204429814564418494414996120137561219131258198189201946542531608603123002716980520083158527010368301810149785721949632020413260347043656093875351022246433700787979154320400711324057531603111618960992514964669238633408797816751701097212641783517005846348365534880599396987920994932254856657544540640003388623013093758103883538355135592235416406448526899860964398204269879505314989630178882632314579827184454213683513490404747171563726248078532671969630476886458761686839382616317000830960530399632870151614793319377710728390823920200440651426816076437320399328401838929064511956813083656185228951822677546775658627264668719035251866617696486485012042864040189128392449531451163178657837852352076601322995685611756933822765222794766450313020058116528321618234793228863371855908301890346274957263422110710498970907208279330502921102367718884995477852240352524203199678148967721440140274302128782007777176631232668520211990674192010975282232512390036068458408665843534533527902578656078520608266681220971653793802457414612874838875095930961862438417168839789378739003637780658803782244452244610449502415711692273923703370955782414399638559006901969391147574926888407502401116260291239953509529801833259644379166620930915412515958840997727511318859730406191130696676347608322809895054869078361321978785455920258051479841699106640448915041667114328625714268253607355204237585164232896756123562941061657523584863664681961151227142141008668149986579492501655209067731090363383872583148167788413774135291326653086752029824651958359632794003825370568804079667502521920048648715345119081138424258232940870217340836681600513433643761341836863870452047491586541553728446303285013913860917018053400843554068780711997800485202972648333342368110016068837453478558530143325296908039853784189800803502675091548167521363509675821851076992091579490358137390314111165000935832531641811050791249645950512392116012155846017287807976284852092796981901959435240030828336792166217505282262422460304686173965853180500933117398421313569295934424479894759141474610207956726608317378445058005309265150558511610110156177087687007587870869087792185918975428289165323157601880262443056889180150471113463443636771763643875994962113834283586634187726638773507026848281633354103273857300072269193025993304377875102027433073833914875364355984171069514145086713532580280867979742508511630352386991242808014526750326897882642357874057197306092098988456566850216702343014838513046435092402561646493444744501610864255340583086807063711772039058682872598870490301485050628225820088992389451802398296359530754010295906960601893458291286050936966169290732694247480573092087540110541893850687494766621835228754758170640597721508745492446605464578734599683247981234732214840044377616268700589160929463104627854062051053203853102440971527329188741976228871753596126686431168542490189711221222422324859938460428945453769872664546409909503142850125598974813066962598718142379302562958489372250782616810187318908165256936082423143253300604666825852154015701619005793314810530264688643545900178121070411618064463067459275550077846622115148075335202406921165742727345840496257775613509074531578415126136712217523880687920386236547547566920245964317498244854449692365435694991484707237909281796340629391929463460097183759692863611892533477971477820629609454500912350730198373254314978051214785733594626376192062698579262340040303543870247378588431813222764750606876733878934232912744455006675496330332806659398819794476937813734039272110859419031147381946471563890068995150503048804837072246400960397479852443558524478974099341903613993316685742582206242347767245102056459598631664521311764807402311445164781095849874263745115582432908472330613350443395018321599161943820703170607049020157311449945534405942835319606572588608450960499279255353588990299907402562917116280861589191457454088106578239545458772480559742739538250352376050336452474507936957157292082307106092739953807247911384311585158412140333233195904031072107824216866632277501083638472403818272516830974788556618618048717946906346033408695440772083762401836671549993298345922585154002957921206570703735323395932275143360809414420519663495592151148939120225558832535293966367561993358640493534588447964746154400019242265445630987790401099419412314809597466942404520082943873111242576878622523330649003310579253830579661652123613962962255199323100772759807813631190439813638565208433730782716521139464701340325682572807381019365363845418274986976404625322036193021409979866746707598605539629681806363004107262473620862687029746320476150057883516379807552104127663868245257446257710164618896981560060735946014727688294083302735493438498130732151770240918446799136192996813471518723644734685295632691198019619438215174446030518611112551834420858979283404391788797734942753587502464421065635954432131961285709339123816277119641816032330330899385569163701314607692924158381118076421805840979887198004377329884467110491424801839844128515028146767038051664210758899955488380536980592516546800642891585578060872650427690000904868228073598245591704909871355480302730625597117157178948735604175789654838111035313334901421410362933337476133863073958888634721969859292214410655558887469327214023808579181479524064792209048363151688188099943409250197721883086422869495810107663537933392561955719630695020485727374079439732955922293301434581626571170012582810192208227336463283727236144903295873536703011028203820198971022787246027438810349358585349404313525017116996777049870293373404126260482065598745365610882893738311137283070020061269474335111175599306714830507083693567972377121701750698492331978973442465057668487313575761964354029664364674654683233893646287822647621955964699906553926202765991857592525607198698536031757349267909855530540035351370539816809561899100865507077839123342377355906587666646354232557087169771633263750088563221013307843863145768585032797863722210603672220344457022707655591967397082822056113838421600834645590794389694741097471708225110542132434937516611853681494735456460148534367091794781055666528747054415379819683128451560835220132968204425042050274557923147775023956833639652500469092942175088134176767994459228366525778677658924213955189556667429499165342734439463950939188202206693224776297762079190496193814521131677138191242936526546993912908345833844094481298956541636109597269115099645437035250367138058343445267914245783399469106716443380146670734939986417573486829725970264508698332933424366034896597413889784089269751233563053573474941084104749652983034889088639753459037796150603206393531693483786857203648776028602217597502004608475268703018930668822806596007017196237980220856432554170881517842427346538482580778023833103287092211342857060469891728546124621677587180242201538094733109985154765885805839289037404622748375996829643686804108165444679692871812978519061221898325867945799599300826267229528400711920285413980626219407520619624068401020295083177087936102214950785582083845081365778317425976784348618285461471616170005770157234910850000314788316072705830995325828744703663127589221533763765967024106148233724648754221438667934734410148469808689564154311578040015801414033146046222492533240785919466015749220354279358378587782840360086363749054468554437813669757840684887332219493766809321159521935568040513826728468731850287904900106224366032125661751381379754509105487482963329288312169128269665565455029712639968527812597894390578032197909992180372018054481959613695549818336528940276691603306811120513767472413692467568717283758301019643547138581140579815898912449419792547823469485583503364850451462603645623574246242356770598745492756359183066182013115214601524131672284910294748115484613768633757058337012695891279114642513539062364825980567784422406928375367276440784931539785080194402796761546507184995767598260311779265355827506255956853714814217128901129913317999759706259792798916024641159637330022283982359962598404553103700314573529668876882971798688553735716549774183440800135867339444589186237271594200214316613124131867198760457194730833859570011960393759218858106471285262664371124246538121528599877811128792096557923255717133319977604903621064361694924081179593279656820967369702120935790700112031448936563365085170834405068973167684126519223573682075260994199287714618813764804937020280829195449874360150851982236109323289386485363298397912759799335071789531262893356949657726738292201792993995289919256015278005609036756233536091858494033918972600895636013438636297661209128340209007339629975247654544179185007518567476562962256806843852586076663728085861268117545278913475767280436481380688056598071366899302610232846962348694301517049666296874039489163696330326508863737725989508830455367331232724297191072194271637116761769254739727101926887634539413804940138323200037457652590128394664542028931343257279015638663392883262585535761825579221990596531774888118843929742493575552322071050361959348773688772239709241654326176913030240709949519409874820990256998353811171647337310985653736858358102525605797604371008960973749551448132178970225316735611188002830740393941689825458127216736970339856697623008466129222655698335363049868025737528088214457052580484462214617772902167867205450022918903868605123251758833800388433124067698981577934648245295165208566329442090858217713611363977121727931376436326407854867609308120317136691471163109998420933785740879568529332070923360181855874409349349076417787757154379169189927339445482965979373091496388281968251681656877063736750393499911759930166461499853185136123030895481074504861814919916990205949363784815159975764298178243820209402565458287811920633611902525129179027868031136225641348651297237613265433941169471549878644610221327140127132370598249785286644141176747386546889602785822125161101324528591393325062768255584765485982136957250605670619861245568529739548321142663840672830242247037322966212476732316813175452396152437311521549420451358161150549082252051645988471160737363596130530605624212035029278750338003631428304164039670033847467433613638943653980496761545705698313966757539554520454964317017004780160557596191589835273828730758808381484458886763972149326318723328933919994604970254603444293260359438968764272681591240610393291613437099642109636734622212474150715197930292152615423318586341037015084857889313320035228939196469178516202148145756159355386337335148796977747722662851731854005989879649998955864135005135327628376727932475958603990748945098557719340076039106841565348744597224086131672596060821859505480887061139648411227658908338096034503996574176538685861471114337647093828058102273242738107373112658865736587379702729465435356310090647485554566712972854755342602642929048535023878414865579260744345949344058072509297446127762778775772390232655279338711723205206030507640125162643786009574488277456951512219474989246539694284045549008259005018924513740517609128713261091885345374536246310862399545760909061580246855816635500922825717253880168337251628028974394949880532691725313097801198960048469776209796275552133676654280783476018583880877344720040475961014108839631017399886560702202856433649046390434969437672034682464109688356180660677629188051615766857627924123753109784529958347430275039548564780937414138652481551463453789179234470189184445884118472300389754437599444584045021612211372679489193039013622995378060635035490787954902545288622477236876695017905989690384301833971954433003130034107113614901058262667030768475649639674064573693916052078818194034786133812800618461316221930488443451174572024660757216321042888640749511768340162345661321135226607231585617309401392289290489863573624890050263492986482763654669321269940184512806276515131832462589606452091800168060496496000766878107796112233811385498386489143449763272879040988486787932493603856652109395358174275102558396790079573291126163640271622481775373277506054304768480550847523683394133343895157077578392707259616949457525920096596056489102305414667477513071177650863382345450875816623235811952733504076029226785940994929604089784950511674697702933312487410833787702412404803949954512421720826249790499802780941066354036087906559664895234675865377089770816715900564728379307703539851702130186149519944628213731418322157464095143514864763151100379340772235374854884034476079289357964857802827149807768420776680298681278723162451028627845732150652207669808303978347529318977070313201947633632170947288397429699097705427267467582616809429057632830822341127282874216215773189153334212886889071999079700388149926358767568267243167323646201318392066558285261953584391729472859084981751175630855491885550965296167085614671038947211326693932365870341877177634206364343854494085503898083028409137845705957962856762152959777268511112905939328376415464341787321806093123700051499418691276711666997869799471550757664994772881365739212657342949078031927886330780624765136055176777213277688548247214448384301867364180665965306594704031160843617515917933748183441158207328058688622377841829405557555728678212296877242314271351706232461661350951250932823302836186919379991291886901933679444202326028737307802155233565830222938233785863218703705778883821672168093010848969664899359816636019464865475699845707854116000673916507930331787301796735203333727530720137769424136878140273662599076588208080788532795519574800954469341706119990948758405174256600460232979850538102894203182911370288952268126724169000207190621831784103394688500867085273963300298685604548867287607205632995304368031476619854657218679487505826575253569909402279121534892251190535503380410400655739536142009021251923184221454154023912114331167366055441584699955240092742051045744337035336649660089216563144559499835936239332630464006515815194900178761106626652290868559295327027735673897524477735818422516680067788857992165534546740133463079822181073433907283290414726275892737111617313340139911310230784869786559790133546541830460772152675214590805409245521696428484466784867041598703942130470291065915583160452042095993611254771463397825504337657697083355069916032343083637974766042636554952714783209171728454456101048644204040231129286273221095896260879182151674563542137661851667190790659485301567845543992815944825717133930845952096010691405717439404746483055508154220372599380290861464134784393878366637964478783341263854623494982684017037436184159867158951977699432934215759884923026311872680379225160057861191475710061399890791606476798103218520049976688664971275513977923643074997234370442297082331581852563582317863448647998981874818014613304666486506229610785875204280336827875103590918098986315450044778811465068759677230793735414523206991244156258675084436872006297052808014811457885520113905750092650809372845974149849015976024647882269926608216755975133591993540201150197770900962092291320179152643203295379789694267650804854675932784250289208264497504168118047755637444031619153136234043554196056832749751397080054461530028278676466179591014707939263247572873004470723470356611363663549016351299188480552741668031547183446541312700400481421797627419085201925533315011860882386935628387157699703550111963150962029969174136975848604679698920809917717264168677997262343368469813306040463027951626017329691942442475371661640395701378761950790950895689833925442514168455935229813868190614583509717448409661226601405130333394814883610328079819168574517225380985554491931993062753165929249653815860790487776638839816737670696556182650741719904776580337657989185307206079793968072295149029295045295705273091554590912478236147796966882125812329961070567493113635621860857182820666043387596005404488222773814112164833493798335258884419981552183368884207816552647740690742690553040416756177719817880620007680838419429468056042652409178099593951262856465497240906703631898909462501255702750062676230838424280666377882616805991053460504940664539638352983526898762207437887474113604559295366363483732394538055342292205159803943708264920205841511027351075848630397687715291188709820678429074980900838189593832100026612554712073182397322544797839375311521850454202257988107715648951075982517501549636664656219483265028931779602873629638976954214868825227096511155225307213640847589779268305441510668227949018898965462701454651751617457371093384292530854854781982427675077360240789959564478482185387023080863828753216293815817268688241601311931522647977817094936734727502262175389455092311240685694356301467521093700842690471090133762040378014356343006196736376707421043203098455114522881424868063120101412107659344670179418119293452937067625399298654333396461868783670693464065178386757965731088843911112106064339570111517691639639542582964308966625475962684082637394208961487259205597240272442683991907944943025489879746405809228118992830059416318332658112786530769421165815114517560488813939529902520151044390797616279280968162862881761504799423198895625759589642320581411323921413074052494549474886737773130947697218478933386488678403894542644738266465862027508406128892871325324745029737832406723180945591969937855066958096412922490222141939934549346105415480857300115382471335134794553677613433850080397612101050106397432640408377878637702759892558188460531002175608042635009165543878911120020637707467695369960647877322388757785983364543883783558786435302914041999900435268405644968709851915270110531260643537058326234700666820835922695546688559698747682848938230674623174033444258628506107296134728480127318649173252239722844387650308763137762260181290311049813538464971073609680530856236671536316146052245366123735920898777460135078810808724407205259848523673661731300190573769025294952985040002985538948723262453891529107517321437125431515925168538422712982123004279462468258582222206790405370753370607103366224617128844018072133397093721562502144010491726713142005977983978576834485585891228095400872209544369530232958583362053217019174678809147535930222211022868249227801023323727432331745326912939947431138453392390725762505086861912849746418580511574792677734127115829249769742307118379305109970743395818638650626850481899159677642253776630318665382125011748707830974845136824232269681918871046370892387876361914143383527970741569074442862926573058327636773252451481094791426687721222540461201809401475028450161674524212118132763879390564673254458254871013699912291303685691203051841913144298407941688584307742173290688945771292336260965717660361663298431615269583296414274074261277267074238500737584820798600465597478214120548352207270677649332106615707099414475311452408452476748997221453043543439537071450358328440398571860225003307253218140168388653348555084248817109081830164118075558835822049691279659881754270870484295965422023626920450674978382945446094307644910223442272508124725876440179071861693280709127021821250109108049077557232674222581786825132961916754755175027973367852226814180840667277056565814137692653542601849389415877500869832224310531822087339757543765977160764011112636237279259073713894158330805524359117271666178332647026070610939830064503234953940606944243549059712335401584976863513813832218287537961411551937498990250322362259297951017652431551277138695089736122510565585552335269933081398304245717555772813064696871641466157666262468955452137814692139010287409443386888228301730174203608322586145683980068255939496554594174329641502235271192884562881754311603064478327442397652491833886296846960214737297477940274969347919233914947929513537452979866431848929892349632163048692222545927617503838501773395509484583943396824125553933528505943517867620779666943479842963261104319090426493675100469094115246389776316453610689254158152825747329765140276242431227515293353879107350806570869755331518472622547377149212119975913191774447700889512332290978115994277232733073834165540221469387662464221669412894181633716201072802897002292655106289798272798525154427980603808897598587997513668333918772014275943282966096406545658490374034313885362342063212731110915660659553264472499318753057101537432150753461633066510425161655570169405426397670088121390849049980644745631070079846242528101487587373589626813416436708667611531246595225843488456619711810192823081477694306017324615405160489977321039629769870024807299287573465062492483932761268547601701848952370599748998298608613821941315680513459266060874072822703213427869260627081930513031399152167954914933738617726202268614281554805987690491666132824038878170905508182377542090661803947041231357345244532403205360049709962592224272458377959564267207065753108530188338211418773029963417099761927818192682862519973550868042765829029222801794863748536792634980980953779993554129630788469445737365105928536078974143620931450666629106780837564041726956285643348726231031692756564842036058440049114922489082775516824479253767494465543915649472244224077120866736250636133327744001266952837957955278567886590746792926092861913756185726643852145403314112739912025396143845208166723924018343217622565374563051892142981945671402112422862666342723164589656978661891737997633429712932770448576750767741989210731391884496243635272551502729013571554708621792538629235947444314945790458652599067917697897260401382578272737543808665717073075739621197604052599250450200532351739521667595776310925678911870731205827160382210578739075437694751883521888225103564749297970894873489681039838963279781396692918285835310287426884111986301424785695441776736254977467516253651618297038509416212237670271092041907932133218024130910329898652961675873157182721546417914326841228200028757397151150938426236762755208616053252844142837573619357103526257876815204740439517369110365460295285235387609685190371312953738350337081577880363054932667396662009903154390954456788200795147036033560203874701408294352704646211047245480677537751369036838199309425968284032908068330826586263137598760821728091039007585596519067705119679813195345693176758687733994888746520514475678932163412529343146578441798863959970678824854183310716591551357452242522736787394269250696300708624437925549749981100123875522392942218290574987881462835069166953614443187657997226884453730193112505768069766917519893431334367635031512052654788619062864770351066564097993219842061298173645432225849013965384538465364187465233269840311787833704238206033135121098875485035809886226124289660750204569284944317175831410776733000398673809695764785290496717336045125301545436771674050199781695668026464963226764522005052563006127740211238685608440985580304495451481349851919637859709952209644001339476449857981056164286316552516713573411091788427455620835084899447292248133737426290399557358155347590438058723414030990708227995455058895397613099501471685667845252315663801058326147925021109810708131555830496291707096753136834058380022565863618329866991665426018041231303866636250877827090391749352873084564985394250757072781533686716222883247550517171573852992364114308230255870105494271510295031524479308209854603633660074632614898854215194053381084491510885606969566193708708451491820267667219039123991935601784196758195144928336260641768006741459802019286238087038653417425827260327217243253010314473074493072986680607827339601135108254688257378855102616002225154641714014966282947664020758587630765648911116285619911260924901038767475665925038666460741253556591583257908991188000907029093354122036437119159140142831218780953028272849156481567137327470055230401281912861838273809356072034134893431340369619436970865275802722009962505925960996738884980213772670040791146230121589273501870034645131354064766121683355445421180940535958028506400984787893280249146672057145310780735450877780659717688780610714685039571004975666483845595391868308547751171781829362339073030573531830011390900454009098850842735402956310156523990381514543510412800736753244114171879199956226122185345032511598558987628716459232722577336518733070556514356695505100556098113405415942178948047424157959724076258425635722523882931062498814797288793780972462600436038383529052372150737033134908980020987176477513087967045770997670272478059226554633190126886123854603173288095779570689948779155705993936200299731549108167494873696690503839183737582054014048658299423083538201336588757587946898529338682658766814010622785171877031554656722451772701043868668985622818138139225348665429663989821890030671009736874129949594963620691610514147205487931150429199951988012808751351528055216120851929812027357160485832837541290121381327185314678593172239709699978392865326107710745885737299405290220482820951437070954890113571222460528214157325231685355095566063970685975163064358771818591027006083131362400806432162143409005536539910327993890845874553872238221614926287171573530456678512557463089818157422287072076290508107881247148923988697460369607766660490081308297749107016649224100048050408038960382731476740388358244547506758905840359795618347343396103336317629762794826633629467040876567045441026791844574895141858080960247370816090428289115949970499434970232575409606136134598489807161311818894340616094053083655499911922894882515550998133331574514376876263043670085648584647332613911423503756908119735705605881500224414422236811893636872542790798447242169801619556982250980464487723134905895194459787866459899276265451314157029008016400323611504109698358988388998314480458249544076342884411714244404773442699988796981731336324849171475093314601557514785724176789069546920517281678224776073837050624220816758160433106157526398487733026578692140324321319579009493206947886913031989127588455547586189682526783950932633514707990443591135465128562390335890572873550094765527713939259519865055266292783477195852751535690567069456860910051831606111782343124618646207493611583378866363174699824449090985384455267778968832304182965699204110913716169705276968860958299526650130950849661178181015330056012488496539033963988594951172744257724051134273363443842485462373193582104828650109239271300121183637537326371042181388387136475401709012761024677612806808277771980103085317347895047360300003977296414064281452068924542649577912642589246266289914608771005389545403434985922762503569322981092569014288464166234757376418257158748990399553351513130502281960088454265550837611881503412761685794613911168174454827265157328975119454008342570662982526754140451645780517278378011687429265378823937926319239962283305228263818318629629707512351325642145084983193233816849039503666993887001498871740668649797011755588060231447390655871960545621512261882414904645005979120696579493115850646041692473103525884788402872317030637334614326627676315185556728505420547299303777717224769956144065061735648496219464865528553784399843527899333387920783135191280740204029801324676575882939677151761823302567125327541807217407738565253630421716876081113351665808794035787580131055694849004193162673586033465612046802251081809970540041385463584551463957980437240845580527476945009636811875191106560052893030757255416331700097926694350801088874263844195173210695476695167737592225099878916651919921290830263456274266615001414617705876500025814333797339212441798360670223687376069513700677063394190315586627001244470576774983498120507143307516146556941652617114930319840781506231602297278147396804215047734554252389500176525765526008545572330096404373160130498721672454522299069071143037174215267108616213325820861458745432214921962924857127258425782000853356058216925906197613182610686837550477836674902167327493431925608755546901847560681099216228161218567491575281364458528268672981432893820011337400409417847827990130146090457610461047698026531104951479614257393568274571836905556406677625620016675334967775586282742394928757670711695789778094465117020992188230245072189761848038277657530984967857257305364470126057601333313523760432797744131746986334008258589373391663543727699630440943554818230639919136565973731460916644837347216313346190972241743696403702802443980644721042261272964774216411847309499850584421192159085079569437306963380499955092102555819567897772837260440273392451988275026089593824155781494822865680455806858949369918106856165553541799149277952937076356489594906591690133637876946114953403233373164392437135450904982076297143692011993525415116222349051348772573366323543529391740189276120604382052842780715267874175396439110755684804668967886621005949998592767791708278600827137280708530316723841586323485422417568208974784482264453035875789852477807672990043802817876928482135888595636148493660226211928857429099576648463400576793130716676797855846686191241591551498901322780968437483288946341022438094032133778742259730640273365717718076977162822269465770261493204488464319863181347607628998332873259768778565262589724174099178692235768659812485744684519089814199935083612344708567206176050017137791758482600037686159246445072981534273655685712961117182556346549144278198867845637447741230036069021643449859535868376246315390091938477404816642476090131625663474997562997069763253446864645872309413863255707328982027813088615977551292245157507469024178260542382326715548539065494939908989166540273911020564728625473344136201563535788959164039723550254932985113963708683034504264724482388037112335776804787850915463227807318102992109348895804080443757530852261431097732805291256342074259449261121898816900901864031556395210067763977821443115534977171038889328472879907278039516305679352603359841744970203331870165849858760420799568305071296744004729300488718693473551731475735655161003253759091532000276569770483154102860708901569175909989875777131634538768039481674208432374026035266031851278562554232067459273661838692803057118605348745075355077288690473545043786480083765851767081711961489604129660005788549459593173882420517194536516371569742364938492682127796337257438281875911495866778684110742022159049586759421483335428007257634476440464063702418846881109539457838388505011898855618563991255401616389904577359294361323604287544210921376174193439338036421248518783197663970236591533668851840558239824980888007306126760084212786236838899123568658308022208683427694468344828447030293751414251568213734103359717849629884334823954320764998650327600593968061832078696944154588040255225153152323900984609343238224302906997729420588175526782930841587819837411900463563019852121451025814379216752742756717494268809962376482746447241419767798979179169175449264068103490578769707958108079675094130466664855041272926865281765548509935578984607799405578207658419249198445721966640280644955928386340247438634447118319432058952974040268063273393061496445055966624504248980750705657216483477922862945131209630185061412012349658419708954522599707691911435225261874095172443373961873475424871940976199077058328539163956780377995527533826823727631702992900110363521567599392037301021514041907953092853831103104940297797477945531175362008778539536616438295160544763393359832952334402569623479944789776301221219142432155724266251082665355139730092099602385070075444995840275457690693294717997562120440355375389294420793656991178859297234648458212887707815422194377485661339258805434239726880067549901342298070380401962925009995523964786242090797436737582261066121776868351681357303041802543112228005780479509909666142040198596253732588932689632098560055902687508411464683849376424322843363314328350346998250453525162259192957409102174449888940632051518544704131789911925825401409750765145531499312969122287462995994500635014907950685788413380935640185918352241679628089385949196098321222691854419796760763179129786199714883293605246331126278089963107921798829095808461813449635106102682716594488468303410341321268504910855409778225382405275506421620556977027364058896450344900371507618292717225673099389011990203061519406759841022085407912318811923538995319316451193692227353936507844731868547034365704496833527528652183852024714693403476360192389380013290526235243311254283698483238275188677003623616263638362375533146688295129037497579686231475814240451023042751266622560757591250026276426104032526141610830169878787480664427632918862786686603411804430325867300158194169722590990598769350547361863697613394277105759648195905188245320443849154918421212394867166680209970613255942836379918300790363060009133457037569833894230799843240860483123079677047521494050728535990864468814475531526954478080882414376574968989792535016456969972003773874578681507668350089828614929087482330143066736950223306236412611180728040953215442039417960437122568114500172653440746032428619782865275072201830337293718726698199516068439041120754915703387387991204747432172235182569854154642593300461675594967998478897856606218868787611725040933665814728759636811503530855209591931943825243843969295444389798929159507557064805582222712296289161439964409663596848150199634221175239885684266859303198651578323304508914797365381799049917518611024135067281692778565226642127593657494098299597286270023594695964605599217411658016550044760533728542679033598011657746875176406000803292807059420310477727826817549002809348792868044522272992419774366205286121050656603331541273628431662647171757267968602623260129651973329307915797999213185584409502897044875246427625536636189783513491357258585353628957886687494065290731617712931587168037327063692919616006880066897701042882320748376152163100808167107042284260406157208104521263121235350885039922196061010485183685947740749836452355267438240806113559597444975029817455703351691593119064079385296500206886540322008417590240270864388547922469778747005384374136485373423241262247695223632908346765409928108976390662485676121707888792284988924528627322662954551766764815711271140377721319625320541233818813063051332998925770802044149735735727474083776541721682995238471463488098812333719056865787360274344138603707367387158962525072777554044033707083068340068084662355072543402714006448678147509204462061973393763957062531575729718271088704580500943459125740472440161103328021857898945227524021147438659462350189224948335334709254641585097145326715806818418827278002152906403333258373662338264053082957249216212142715788393583032084679884058239171420001355034994866649711588411701702332593688831866869673015089155201142855806845310307899514567384905203833364913629299558214193562324736399835088741311560288073550825698604639000275547235686997150201145806966795912451392996062210347922095771009677883590736521262746817123085049483100933104816759865043274347405651710698740149336795559629929874391892922039230770462174128925717027768965515556878652991371027869847663635195335955138721533117448664849520904565367235864113748654673631322133112370872421970435866650477004771853050398359897775042134198537507713016488440120876135042794525063094929473748327188915500379046434826678610290403813232823937950547365320469661121482030197220573703212053116544988285272823456846743443032724629300455906795789428660388235588088712784032533332954545633894496402485426107259502745116614167368191298466839648772631817711967172690607800317848698259884278020472019313983738177252459322657746495108132026884496784057517061308567074110845324651635977947577562372101009656657286118445851703323684756910769007063538329141082636768356934154800664539577003445718000690507392911693221531514402134948182460700374289225913977617696782597022875819026916949093037424386283158968626492289440875154081620722392730351111534396508212043962665565286995029245013314918193604023036420729600263060872537266539662163717193657346612001078068629368929897051143259499686543861546088552208025795746318921345205607122026572088820262374627731783541126057164300179894587674532770298219241272455856824921522784503426220547965683271609129009925156194000948834691926468219577924022978667144849822322754443348924373405307655150910259077710030471520111232978109132252498335221021715841294882301440525800499993525993104938401959364219768232903307611407115077492892070395414309409203586611744410388617615210103398837867428094256173300933953964715317328270563072922618128488964540256369040268866590173256258369718374229147373485102628444961936724201630383920947376551509266343681793145016482685814122662336287577139098692500556280599646101916880118749961882736577290120835207335877833907011315174532356081349336324908719383325991232705906764839502025612624503071898089162815215830482388757784278119321078492081171303347796248807565704642820633142476921986748050946303411994990097728846545812113610701945381655494490750255976879977879980910450173463118506073310638945509064779652835746006108927069297642332002928557986208424694955347156782970007362057832996471487834341482087418397014282983564870343941951578227836150013978884909513868294681671625299593600145627528877314692952545247902997075364382709037354821017002084127858389851435995418498374627406217611338445139900510506564786340989585542803154571945113344464627455206745184885265631822433134371047384388622665504118199078717769994432462122608070981844190754590796465992107991995516947218940710527611640756775103366729062252310164298785102291247316618993225656023798259695964370190264188475718556640659148677679108680632911299726838948327210227692339274637528837722030134891055748523159159253038895828837559125485354656195213993700321376177322680688778041138254555119215638883194030640727739126960207171569854680113480165818734912784032963212815366000707600053119197656332387625264466327275310663042085109819310352453217851122887192433524268261289171112865312863735813575530452696108413341991727769614714073657101158358667364334899865689933624972934907907094830786370762333667348608124757933343062445142314288643780984608730480702685321425835580253321880454402306194692023850021319533651603944309281638744331430963951525217142616945222151284147010251963520111632436857374222900172509931387851466902010780345166732164040343712338663965768133268738467589017293008775813750377981349440936099304024048842684716472314841382535076999103375824623552398296104419868360998093332920131151991921429372585374980067668981186327684340398121243727191048317668988043431456505173454804438949514673517593271927279994079447951162604909618992053519998176831203027787809725292838779186067716098729346673678622649789438373881625135566145168969695426600488362152985173470903782648618304126888618068254647383173749634166335392230623789283131548173002637735101065081454005310658147674093584288968759688853718032774443021475463578211848583630867502225507963694049925984676867647973267710211567919555276391984669458568187774846062069292873507602743713633857236911302005487328583545892159057872017016610795166118664437875295749691357708190259613085766345586872339839515561147251480000660777218686891084648007712501469191052621318014320252378771489684895849659145201896639812749417293083979573220138135069381263953726629450924412130512863691598213421192141131396909495004180947770480468264569250152311150383262759268152294095508823007159636672689210004962608403383000949472817572089167633629542308508566823708814601073903101623370718136978552330789723502424182495602164423612983810761318943817150414732847563048123561439623478220780701410891371540199705104132101531450879827508405393962443494923562428240321218556994181790264955451941336199001136310740510974663169891997460444862717101447506283818402718807305879079932040667873286424788797211328763544063973360579619660159384375350600087164500068258895614362770239207382509723817523836243139040004976196555038035897688466997666036449295304274296111104772669833115006880320726818561764495459479714502650304841648631621247736492873683496071705522079038981980862581371011488068463751968595218291001913232581710197971299546139926739965885008693621432793995973037317826609751725209157477696802488092990919179886784216191796059063531286191848485107011024516454679096692509864504757418947798391762788956738955420182505827326844337372564025501970477399257535921693790687596123539378341040089849469327089624071745506468201603116180792122399156671662854221184759313126690691836601029969944187237079951674854539620357198978738426821165134043108834385080936356064771161925474069350748569325712018383576271058742949419795162366502023361064224040177258253028844439157638295180546114254579128274725237436022116088934753186862413514956175419667663350599917034041451351647509299857623870843984181314953375075900918687272783959293562487208669972907631218113485023899822784930941127768747995413016302838721827169199787938578270885410783305979262343516611617941084124672103561884109049855464107225901425323888258883301050190087773628507387215830652397394876419780813618913312159163879282908716521241870328002069852357872377360889249896286279546172777473438908424035081903435279373986865312493257710379976085654857287491000404046207678507981882580537094559916802108661080227297021471615583906647379726155919980855808854659960078973583730154777795638917146128596166756156756015080118398677030395013463461223828489029236149439676800625181687226406894599863439816527122635990233175221677828966781631291218262813642172144063679343473649940826104973033889306908385572726311102632808998589527364144989041750704327670369329205395218147303747103033032161350473910691110708091262359696829461348470662305700553669788839642211943472333495408770989703655839949364611840405357115205489458246463383166694383029265957688673327618808465743042079023560010662538265900019874516516222138790225696913652565101429587916754963240001107451509079926955308978823376495113859074396052961178743133773850562857243845099300275517563143583844225425945793044908682167168335528135688194107238480818817429189292547417321830727151956720893295526206184189718491841669657537598079133291596059520857756549626147353758103787020287873484058179173991392690380598066745329425333103710141415031185158083878645865969801844772375683168873461289597490208950857191547975211425648446723000261114094388479048890668833125143377529711237092256941394025358141001737632245226328512680246844222795160617564640560106680992072853546128707354051769528753803362465161032427063976166365669741212143501176943242840939343938578831522555026649432444411458804893028189348182784601141303548028719877307478573994069246603296364825099347551043456480816409734955477056654385350363544064523974227729271366390814425233505028329052445759007936934163199292410153429138877296245810252150922625147797356441881595305998865126008026315610453154924641891603228509537470050880581493019574428515970783925761902209094856966740968269147043708086263525907685289561677325284994588917372940815587722872641225025941440021781785552415094962706433172691167164978403938347313466713707912146656072541351606767202255607589560832809838649718202466562643498785746113936339854023370935240561027466926754167573568818900427528447274613403005424318213090199248110191359940335383248791400294877526113124327697011450908771003867824862951185890023869199682181531953957501192073180692251035154826710924628293075778794086656103442558308881022856574075851258888812895664468868706186663679227843581343716091922115010337495473825442088638086208413121089497667131725385096238009194278145679936035887802344477226814811660371339833039520930903958205516974567126882164835154433284432132580064627756547341128969261837579321859304115979040706691602170613141431212005624261406811791570257068003498932063541909670797774897434086306773440503988103074915944758444728106755941710653935039982220217074739446341074883324820221996668648312300792064303579231074332399498058858738191159556568822063033517014670898385896349584291702389152961822826867823797914454763337888891098271046587220545818691430257400693239553616906127565354447658533563452885049458132109054463544042237491651430323399519351312934588611710834260049252502310075358302736271581945064334948043463211311072893648118625692531225483346409258198459509648112610525643787204270595441134624460155638368879244169831964228131532729094025078427538089860434986080874192517670638562824499175327184519485272162190822903345610910784462379097826689619748991535196337934652878273225166042072578809446887799232649988955768057543192753246634559815365966456267916243817496209182393868670405502990124154750389282805110231779369617080948209724693789135635261518401141883836179366208923675718275023860026649892202638472613433724895744106406305484807584838811394249304289238985084745948179588115085529272002787856190142097574670040651725575310592711863072282595980486791587465078758363400022911633440871644307898106449326974525548329381863449098258029978542808883734050241466219974501791382410568296015358462153056923262802770032613563049061651392604517118391118687428356934114230239811500921667559145626827451688361232113567999054447478409547956211314386902691490993471583993834162791441448525716163009210495958920153147958204800706847089389837934986140256142429289562615425934993668421449265950108298427605444272469184891296290480423540803989460317240162755161045924726870781298104979656461702871531777725325547209385073989493654809895700861471743996439259103282403459688295048119659896403098604866198004370614785578522928980385855287496579610321322167472540034174258657607489380591133741688923503173459126066521764549783127628926622939877672260810111876678199614772449286078125542399223714690608973315688553367448231129158713675571403522933187089795312194710613495869333328217556136229773772601645765300398479076772587011626868225121850619698360315258839402508902902705095753464219809100136266888238896976793310384383803932969883332262288620169063520030163212720108866518317257820164655495190272507287963687572789131789401083889510148688299777637911625302273735128804534466100114453776709446486894863753877994190394923914100332090491284746329774210942894817310911032834184749384508708213659305085646034800866792950191244784218020387188481586924517423549315230634219718655148627898419692136919790600365828936487185995267397662644648414198730380630212338566125777653277050276504409433789568927492754021892522949018501557493460675313501255538319863219756067985068969924036448964181022108803387365481967538627065244123757082101216918060702561661862425498092064374711726389796094836936388427514972542208933649317401733500899438858332720796848960083764927751918472532755417087827420215080034946464810043760965038665078661475711156229610041216724729572844095244600157404378931625725400016502580483609063916820301405843817120765925908467423570355756547682971795515479727949179525053003296238424196924900032227641345646491489710058930268784953242872833901401471455130596211176596889276475241576723953783841420013825009538126395483504309012608935118469960000366729560024234632450601878163342015199317119473614969799416656532674199933051674378253832470003533654310292054064030632692624983829407632739738155140184505794856939382415729253138819889559725184191250879777597449385940782978286659583066925009092095541143282313053564129991867260411555680312013036941099686728617424652602579397647856232443044642399328454348910056958378719060802163318367941379449532041869892476639188518545737026041928077268675137999230490081568360047966740284703268637164258009173558626232770646961369835480265073566032155646906068324113289681906320861473882884296064074054757680391569434105920138942443355233490158369333271694936969701805072790331424574615015718842660359299197335725034861681981637977443042498590728436111080444401863766756121003623489902828174992546198827335629877759088223748654551562660901526623464720015852603047962663674218311391599105663624760915169844926029818608411179400422506403522966093450550195457294077885295759176277365599323944197738723212057043449017233324095071979954141279301059374303732989231793306812468322758326022570660118283548773015181034226045804512371370068307193009579534777694385039501949658334962054568518502574609830528369051649670131446391734150682601885982347849097623919569864936782859883108525905118609429818442233132433939907803472737945682600093058794816109598578809006182827058597526717144602876337251679314426715547082376118544091411055196184171108869446007390323397679168303172137345612717888918371725283735419420364252451132893763972824655344348540574930489068301464887529446708445768329161176006096403932200604479344547311219690611009510717217713053327227980490135276403274765440350127388375224039331865282943311108544707565944139235729843948387626145302385442497144875752694068142570002219496016064748685301200354323533288064516116330910930812751269974887896356257507637093022772254269303545473833448905871029778648470477618607660528549218109723670206310786432442140021027109749900567262388320220141963985265295905209331064729092124577720132117726242717545635468050198013901514921654781673228071468584948995299283151669315925177045293609468886864058728348046410694499008812698405329286277063895981143357026794088617977425415835660413974731815365833538641150825823566683836367741907888440093896924782319282404976503429708554920018954964670263756895094152891928868874723435067875290260583171856452236697267070505688891975914368662048087828668663249577584346473765276908417666901241564252903302390053921539300720420028517337293817492562363370198312205429704762004535227086819113567995452704289663339942337643559471711500754133006392055986351535956603140456882762844741603171537557518399393086716856615095426012149572424111694917819808292363163254428535764554504246344783781497315805265100573665531582582613614421121908939298255833486794817914476265528294906781623518692808578677306467778146363665119976484660295860629325474730382247322656529361648848726880212039442395373404476676626386070360239893867866091074075830297270427192258448412030329653600879381731754303244933825873217050786884044736042873701019642649133926147816470202091492752217377026961560245804766554429316125984193549364948498236729670185182130884125354035013481706844488038054051234074391564961404468566449421300822085102644786739166538903333660561897598154983329210202373573296658110645779575576155949934484919392950278163898994813244229934305415257166508469505037029153620915447901690188454409324946825262087535553368853198636656352750531850173016179115132793711060036068583281622969567487847443841034333218187810524943610258318935277672877022314851925488496303933680552903088019043842908762508704368584677737648997921868172205073956240901126699097497492952742167119903721726024099638028749163688828491818127468267609985768167399068657951531526566139835137253385054906134908244021474484590094673872350935906186870185509082841979894150250978073753598902383932533494027735935715090181609496352153951469700320861728096885275220695953924968582384415296045069192499670025102268254489531762741219728263135463928929388679331456445131711507038434664742557605858977486018828806755113504429780933683327350086855290871973390111546335280957465287152560551982639827684751502391977897127359290661769648766627849836046080037738679671051880785044837720110383463376383963209317995144834619836035658330976935849939854967861257898272646710113194252385478680177520343778895482861659341657508464676705889819882707121536960765119830282858223001773832302253438494825707262925449391856017071286361175064805685447336504520327016880552168937658244645629566996774625604002665110080483301915531575030003166888898213362784604960536917832027965689841045859667910200089380906183433037223504185378689891822063124006999428340273522500725048631328574930152532194866499255198994905694281214892597022746227389976186867585215135173966190696256555626724370443526217722603029096887242538083497550904145607615433244195972575734339664407592709821367930479179257441698961110912940164390111279688274100222463542799507353225817238430166191704328535724808218753245801855873952293066234488943273216822114753334906426248515248416379521510067267259487252592327366194813086068025563912978658143891855122055581604224811800198520596956476093812410655155534742983244110401701226673787076122459386686482919678373198289932569193360804271504242284627115598504264021679567515294574057323194105109896041645258681267309974093525068712635843918356597908340047295158116602616756376810319851537938226393686179452544638648897967893597789861624859738492584959859077864020080352627380438011148216133850866863557452128799942070507255661477021063946404345770395466790151754371606036544660237189640105688099298703520445779055279694803930071997443581376604054042346564628158736644450326986449436612174717787080884294519355087420822527500472100689493971652931227010024019288218862263085203283190177227310666663007628722526454056696219853706374501732786127795943560328277504685278962910206037309572551743427502403539059339403629609104577433875970146346361533426927086770313253402053701697462693418505563401660715649760892332096060322170615447928900150510109632020531240145082601411157643539481873196725935805481893084744995378432143687036170209107730219230735226229314370709910667412922208622454693921165359783063443196810014098472072543064572372008985923887748781350265408284451933817613434350244192258910251981055995454871379738758127300758801338496244645055363556724785868844560977420001786213123552813961738015613215199923547768112340645339136685890117751605574301348395119443913341319874937525166271232657106598238840772352178795714299403079802029024686991484942028973732025905326735905366026157735742362773627470511807729694155125090150402067149106501335815530317111637012453114956294729614852768907652944132055511118867891181152710944678671087759661926688977512713429637896803166149452560433844039558895944728733932535376531958991919657129581727641008647381225572250643539246200438549316980802373131280417646692748232416643220140701318226639362489550825968149349627363086370692077001056755512185787379523698741393208058792887835438355850932012215701888133042708751624872730816822542066974864479452058832222766526750886480090434402773495795039044289081667147925032395447597351446827086613726625551680265549860007269228437277011229652228176441204147247419507124365171149016048828007281561202834456351198134635951845053541404587783148256918646543542370998417756991150630527090561802892750231340052469835368720675207453583829776242820432440677013048440985577280768549000216965022622595890217729540356466913415946596504051229411133775158796872536558601628319992341476399437733649825293809665878716097063670683356536929920950347447542293846834341105910917900051954760007483657474995658007422216441100782883585729026141354825418003805551987497098221866269762683054395105587103736900420075129197870643698523914323262273159662825443997817319440510877572135139033416571186398048437809713112717516931435948656007518004442459186142086046691469922422773491364538939485673957959630752240975731465986528965684521429625513549962593357477661939145117830408060362449014064264376421693273324718342270934204642006904723864454335341378467162798738808602837737420993552956829189296553972561656915870795885058559310033167914316702295008119129227594902741529544859344135890340732221944593090998411869156537800174526678161097565858790552482508419309168509399888837677010901527235106217719807723838462598566998417929448181084266560189466944542143390762541444539142649782024327775277556475852676828317154415800944364577277817527706857831202762574586029044683076499531371711779811988408410063695361157465407642021714351558877616238452131818771592817137858747551283655912007400105878560971074804986587518592970252244607237333264201544993146429220321418999325098201621730042725668893875707577602425780780015912535537261237577912517629955710234624822135075605996165673231107464955533406064078707807169675923944124869534868208493808206355443026690800929111432994541148881177479931182683562159540443603166761677519894191029610948202688129143938875648592970470537465527580913343067844928721722972698589788489378140946814691398370422024149830454179141164281192731764403577738605413858468276042698343344828907150598503614288204696837805747274762311707647127755825385725063609130912323942082185241249417400820721850853578170121596310383346228169516634345099971076152600605914523915858132332323362488385371891401835556918439624458214419232263617575805619740016850296400563014659161594364036787878547567917708557180953208170010366200194163471829124491653054728041796286342373484210095559323131708324908213327548966738982203973408734481113722412959307552643408876799625086338752620694125888943518650068151145162574242134834075564108956320326550226956696264435275346859712125431001581455901121322133788720926704790265660763254694138675856958425356501713801131858870714652329736423915178013884703736667434679723528275597328505996815910039283432491195926078382259644781561129978628471763287562477617979393722625524522635058899789002916081165411994633265098108530225318900502630656425556246642311027392535800794038230128498181573647964681785128799605495606058684147602936822949970600789522659904566573002823686432794229185643894377565033037159180655619727036561614623422869378483097536796683276125595146343214621957273487574945557924577548247766017737844764753150058380587298691655233280606491563552206576780508147977846768361498704479054748006506522486658878072742019772709800693985493900877631312892115531358891375274811596206150726867819293025991480125877846692203379828515755298503815678274893463751707518177893125104252176074841090290381736367596741993465358499159471853448352753233079165547522584187179214556992403598073866413345832974386382229080137538360882200904427123436269849013540291348131407954158519458619671013322777836319340320560011819698335384712085387696378171096935131994502684274727704715896378797211106585073990493195225007371855586935434455602454714801694476342363141835157005736829712935057093623067245116935467789138324940416727488595712763314403374959043711616223896456623384037808349864764296415659615065257327395253230322573281980366279729915556829297682336386100532391064473277592848184444331256809634125900590882377531905759735921617252762905953924589675398370636934302102699254818665613321043713087597947968934687026848503749692013854858206015781880448753934817583525049650235475875213302541406667620764809576298576905954708319357638686316930469447195770089645213898117185318657762893776407408529781764209044826084200698917739331249547609911299003309766550080501240377150071585072096530420791508016876285839755523459291138554725928746014397715381424042320412166234562432899640227393776059053212016040375483583669577185044864237135199272763244184248107895773229540458229041024625742903556909163237725103351022143040140787786873422589800694330264716596958842530725303498523756937406850979592093736703910073655237932584043903827375860184605210468254556203277778355464477630386782565562039902119637474191148437741835889164893205577839414360660538186667533474350734093213340094230459259983606905537056581598528420161263272958725358598721983141693583210696915475916720752358110482135694821950923889596511531374333847926712012090137636611745449398231029787226324948394325532670786223421742337566391456256913146022527043878039398685213007667126918126854564637741111995620461835734158733634815138236167112268242322147237432523444131056288750319480307697243852010039458066508068582922286747111650162602431235513431325442704589961849318101692091263645219516940645421588304719802437854697264848253096409397868801385317154126810412760851044986371064411078518680102355328356351982169509134480921130392221294874034971781603012091373775948006233186321507197287964779277208148269986466844598320355266601800331891639523684548982693898196917085513339759224510694401933356592018071553571525282602487474206725247430625025221080674159995386300649339459668298092333596806126436234158358450326120316287136056093473815797975683055082986901321515732771363709263338003449884788804496921898035024186821544455502804389203298915496239236571490028055269578383196130128882756954547938874879780514790557142320064874952318817422978739410065289116660855236466633891193039864683323764933278334860551831304154681291424128441693548030716941699390892213539849039034253499719821211621415857352005512474346356884298184303825689585425911529880602179839848192475751562594054323860256670575497710471144720558550199626276341493957015825796741101804639480363394346272033504475444269038257261270150939603855117795629608961557032795894888346258911511001046130257663467647462534858363810913490509752113717254464820138913703813925417029651141890990705383797243350332252952528376294604228767946932408200112144498890082740362277583491848755956558446425515252885412862334029447271638852237001828032463445671414948047382571403766923511567843595504444870787322669416281237138559653978733698771460437470878281283807803090903553408291153760712098017752336842334930201164637550659097377605847788640286812343746382921427703513040365896218194339634049661283306138300774104650646314957529425639980262548254109431943080403732776848709709464955173253385049352939171400274562012394421063874040108555870048076285485702060372115904799012545508398663426139364216607526235602090840586845843275253054975804154149347453613601596327514339769507270240209225850981453116248944509169345824584057954502360861011488026491672875633532791832124558988166816744672526252658296969977656342254559289522302807892305242427223075373750480007537245340442810362501808083874498999002151654067026217099587857534211352526882315005707372160956668670568755910750147758529515945533172288892419234416272919694705475543222754145054109511850638127133294186834390027924076570009089509832574157892013297033644831829937983405548839314761669800893328001743844323517559249736248518989639685746943401442293876680145221551391989258102345471964454740200730745774378534511888541535559608799675665467392049647834398426679030559946539995136999944525259700614952710342802163997081486478635842099722246075427758688372356092285326607841621221158763476376287910188477937059490037560337476622767939868872102930156522004882322030187359059190170840816083044516287312473282923221174536384006476338854564525682852861450374161100636430155662373228770549883273962685996390167692746676757346679871837879746003544847563414459420891968470756854454022333031166031482395290476761325921550408703834650783695032506846567712282532518569227040495854140451506967934309335792221018028748481123580686631034763480331613922614193187612088055506164586972420345275520296000488815521110521446250652818377955534001360516504970029463066240282702588975689339597097086406185478044333274315715592399410433438563944582798631697608247040819361630439931608989255237747104131019127552821098716337343559350696498562541903795521260238332585718965108298644676189900193904961020652925079791682729067835053549583754802737016035455752107715391768967375944425625514037940342972491732269916766221021255057503773935154413195115845053975192101381308791007289528585657014509594882232513154191987322988528837181136103666073014190591881174036977603448005520992381860894024096794680562580727069859496172567805757818969747898437842984620099771547144997298159422915010306911845529445492903899718719872676282574739695206564689154537398337131644869828115074764084174743714825689280942223017247056792167125451945134660152266313947122825342884933482734555218902043987516551749452636246628706681288124041136226809102779853783764711627275602359458488452198099904667713226135833532713480087261055764159859027952667578669985821952886339405939005952861636297662331014993497779668515661485551441894957241802495467733605792006678065703380563486730613658396352480067096833429389942072642094213351945263584190610713449309020130089551289185264678169446281811636345464505717594451208332878439691104407602048305629146790646825403432876339552717114699009614413769231501156551698358251381050623478912746755064895274362212246987458239129505246929817002546253139637298483003413281062176467442912028447462176919176226042867826820567395893894136300769886935325673128225368297125805741489514578020850626508982639816454781476131677665598893211691480119637097877073468088919224534369060132468507710576150807665198396641073025888826854946503361516595118522340040719842314754955439042728538180037146857439149669875552997671018140642315083189019283807633933376785918317258863337141839396225774559976880778283728101460112201505695138320555426489807607819227398598709383616387514829337982033038961064318462822221560710614209319319270855119151504156770619277466468032651777954595839413821029443477352342514357558591845296042663827519948455448632378209687373098337288557828560808267238582407126878783134356745270055540900206576264270752133316438680235000545419782449154741362592337723185960451960238620905571331361573752265522016036861167641058222349012867450094596357407706107750951300791596244045929784538033423558717345056169495648031379423849562093701322702334705872970957153974355666475415760381230470905076400023163612134049062268442660656727151466161982276516484445554389425384306455850057962176146848828458911802410525867841088123763785163992309449794817084141308686105726016708363242958044863224645346779853789495881879334986369239386685972660105913089299604979086795081305876139864962701001884420148883072002575627896311517916154437093284238238828752798831668534453836168477281468588727440560349077099486615183211736719789862379223874660523381913497498633192710493017564409197377891388553400396539339665497646066718516951721954955677597180340153621257201014716978471674369192754014495285374320978206191294699877915058989475296329401505436238488474060160872725321037175638835676176336131424105430584280903408364744221189858860930449173077897600131732150676792190414296432615085462226784615114272002260311078684976076875185822009870577329864139572880618611626127915107936271165270958784008252736943019710813497262208796890502873394044814416638140833727444718905693980646547349140226734054358092058811402035575212234301944633168606996563659313996907174317592261854354649806323030054514391176250787906428612217885980337366604676101656132787441521437077998587078501323865596563970837796024159553792235665448295862481171625965602061756029524900833257366680287429025336390021323852245005953491735488506766189068902069095336941552723787540835714976214266839418255085007130600608991498889826832203519404418599245839031694186648227007714508538062142751491773645432932963845637455770523892169704615494156184860992848068093428967601899801937305996273578883905300348305379195179517438564052237765886200699508060619327914986517008594280151797202039345736798675432813157282338044714539885317413025542603196795976989062629458022032658611733127206521242773821235976602390297965535298014537751548144039289017598235924849087711019376665252074279707154514119735354345759200718118268772056905007389548995860948396604651163717916451057810956157200988582562576965992691840481668877622079018757598435606529969905917046533128108665202729825349941032031855851668997293342798466259138496606556404050896713746433556218475091780316980273663327995669726257732208565963295999517884105966185367016084144654915976373875349285825768863702142234295499614274933988430699314870675059836334987094946745061041658231086455495353075509431483557949899783387106371452403651944348380609399342508830433163275291888329369068535467570398920763090194815739191383944722308187430711000961678335001987004770444607771226861932911801584734762538801472488452379177754540535485915892256485373564543423558865036011725945779780517270001082362184654687339153606582214131195503669146203336265237581254931713681737802968695753164050587025139098095872444220749050604254879382413774051056610157408013219341230556261251560540661277067949577839436205447459103474460394674616148173419336270977831305392031778948282016077993266035618949483212302667032399475079285766976668160017107087369125472772581380758070630549716400326744756492017796334740516123294332107417666503363755131876227789321880077011313152476680142568513787790142643236137672930391147212668887696695897671024657049531840161839005456359407181064658177954817955589566875250879925312902207492652521575475772864482606176037895751452437044683577426892723969399440177437502590681353730647579810450802766420721248513917227982531272879425610055904790379556640761136458198916985112227868372560169981901704606073446871576712412436366228925412542429792632580062584506245677683552420333867418078042403309451135481237720894918249752096032997238318946807922130112108147317037040437813587299820467901588170752418248675144291131490225739642697790628160084109868566321769968797374153056185750217522497612481096861067863079571329139420960007405877035623991599744041300681987268075404229745190089422799833968168894282869546552098720312031981936054063762172307604697566865933180666410282736044383788132516615614584873423889040038555003282376106731010157428295384959128030520536566010089294292912050234544497300608852568810573114594535753095009302962705661618840743158193729387050355066912632772361025476838231093613228631557124909867340931711872802132649537111783170678268529397392737628963981733412531104002550641325809154194474842213938974902253589321805671214538904033901217978918239800516285148221504135407107934944124189069898886861442140099047010204452923370994452624960323573626572821955504618039775600555233816798880045987381259180481254880440277620803588185287775447918479876838620170588152899200275074287805278341132756045285055843632901892186947942020570026090573540261086525569051576727486118972578144813499405805142965693868476982819228486022905571939515110996955741521686844455503474408333669740254933191091558017549279701361019331707279950347083810673749426899077477125441475091983933452715900666881910396959198320655139596547002460625053531600048399511534503372273885387440537226882508706299246005097614664602907268909780767196323927608356271896963296105716251202983882349902103414687308914984706033757793154507549384015069652407300768545437436292934306954512534376229302004953914880434942747026870409628405994893395693825338411587740497021399036297802416884730728094093157873998520795080508707114773234610510272406888504623017025277841759271835119428052168153018622045025639552659399861822779142732877815001739599101643899646936867070715238890115402875323456881306533544536622428063526191999973365624898029547361109378419361987021282477331860224655044046843554935788535534242484639863621935692692304181610487974653101507258272536814018567755202149866584110402342760083954914509177143065756175563669310236679889338470330923470459002858436067711404158084305535192136357067901900870432050403082031076149184334570791115965383360776084532017850381257221850080177486453399093347353757284661844417888425943351019100227355603071110458917625933089195310075422793719979734444258746070682580689130872083014304380511680128119261505344527393682386667991212177684930523789794136565280997345270916873770236730870949270329992137720089675019035481892572967191786737754478137800776019571454140622679886009629665262765434573047230683472960134865696658784233035175467584334503034182198922309608346448442960795374578666461495045319679285057149901087004474307768226614806897550486115477786029071077696188103632077738095780211489528790242610253965469665937221770464581622240673547163736505246762553643929182700767310207571118297582513363154160351731534926443867715903202111059624401405904809521384972392458085094507354351569149669510085823403191949960076732412878857064801940293226992207483296453782051286047167479446794644526497558107179383706345426681637977969721002063188048698082726551865770422124730591425229724687400056271322471426180552589078249841021174656598005902398692565434981166329548316878955439940721943322774496987138455225664428204122890637856979183862277366311546788438173498399442294872749721899493870242261754484114508412594431320372341072520997015536397714323254509374931261683587532299003746673425698198648982410676918843451865568564611693672412485289004515196318551120611953888538406496382184639650625104925314167598272278844511671724934984700901469854138322836217242725448195526713399999874940912897575704357780124554030706565167402719613325720700416116348898237322643725127475857565361733691933530689539366947966724411809626733559709612671197948458307172849047351799058561181469899173146522870152684731141080385918887324927532933716224086653987185052446425470569297249460447076375464958684836015488888252952920684710350962987321805911694403226527521727172996198309000705679441636024314712969752542827844334138783920401965935118136433332473651728349738943673281667806504052778746697216401105692464252542902226604318031649030023481553825582615432026204847904823461599950850981042931135644088753236048619386550613165725945690001102869950132915142237040162069976844626801355108723536440945213490358459541183737039847949253865724255210878015784846168165673696750867475229403178852007768105833960145257608331547757286273966380370879282610855121552392536687091785740436206937632065628854003062108889177927640835364063495049936656000928038747880490152631633809375831875965382400415006565533643605275402198770680476693840039176250249938676745907933293842560965796155678226232253133151524307625854001581566796322714871539043061132136856943399948459073397928883539124247417437937188381774627504786482056555032267265226165661651288080903754900440133003566530991829438228237603004995445597407473402107316019416020080860083740286632251715153482798723142017249852479553813891480982858460099817368086052895057623380112992051908489039310995285894902840542256116612463551258534340318890864449984620209393738431358180687474009716767787828289170975773035674499660985649826728154049089604851065987767000377985143407124355755577367368007153337717855079921123578666784430521167302143164815415600400679613984874426751864499640212795229648721346826202876479106902353343646273924144032882960734887258000325309045801940175548723795036602466347312018749815973829832105748115856957111021734338947790254265468488631192776551619335961461301781687324849450224822631428587950321859610183651697557177283838901902755910870560492330301052381765929768211975052721111758250028834824937656940656872332948030446349097529456969302920529466708871667859717756125966028159076522366501133705581413637547881348956126576686260525485657858440365503688373459108125953540366765024281494539751470598698035094202365067235078135952514475871083164525467032709357585248391130517066319265698694787624529201023448444124875299482429193661928919309233569440935237628438635139598925563942342802074821139300525302123235860997711331242822273838915493443380775206346523141641354921273759653998505915149539161014866852318328137026591899435461927721329174681971709717788155127101686464479827112581652522514079750786903948854143777351742170618756620589954970403424435235933878969391843136305884671724758597743603936460054971955531090200624971226206215255356551475861841501069240916319371102569609694822361295974827212682124739205076978428283715248042765887644759455015302916218396139803902287707303398451968072602200006886211147880617838446777253357036881855155319189329735796837529147594758321294760649646832150527393678472174277684968555963965487100959191618393315226638698168318423747589468140059746248864324606147912548240142147584615344821085600165641539383665557865308939082110112488140974416139933900690045233916445781907489398151474865138766380510319257410002106272937682560026052974284065745322429993101404052232833792471728180772996781296456917651033355043606765852550057657121085651722966881228549014191506300948859013565568678724310723090141671511898747129126741519334974661326267452820960768321386304411069741413602422646827700834294838033264272990176199160884625722213245591051924693092442662255296943577861116415778516548647141214709339168614587788956619032498732124868298857760495987275240539744422027901402195369805729418757103606022241912212892173035879436672449065350984333991422808656647119676939383675295869171167584761479249681032784673860527079768032928373605549142248870188561894083254368622095506651448907970600520180068324054121516329668938743213049228101545942723288720980506834107181937707816333694312439373120160314875429825118742059207172357251737413953173180283039627629078779580029050599779135677062176140012524002082473770722930203008542766141998578520864224820222577275514512934300754795793586839964629607157755318425200766984959908280588648647513878872604698271647534998364400267499999091556790080906302296864058796369263113415766708167074651407617032243431145151435021916930131438703205922842834748389348190357267727643618740855136581148799442715613435381792967495125794693015533052415725226245979088172860286250883074643858420046778585901353676658238403215826199165946065997203208662680231537375226954895802621207588172921488951582612772218151632298472226778933675779470035309248285593631933092334842260416231538750268040053390715233097731427460581872738166924481632228954212397598163742858365120129805939421305753081514122759982479593120008106126732752444520261685826593732217304790147906698387947233405267875950526229950855624063855840603180438197715139659902753399140567938603790725861037519363227271898299623821380577411067072231464217276544187416451567206650788246307678216473039537727732415461827299613358298714258432548357436091976994033897230509480754575723863401232186259797571970267680548801587891982162155109429288986966313514440093731112610336366883049316904894924798455582464791481283594534286812354237090496686362714054877422710300118635108268640065275349674594644615281039248293478818394779110352680697030377262333960124308806537527814462850093909387229869243800204830091172018227497941950850691635198994608385929040144923269355979726653319803667801529294007939461475442495400944363955649848206210787506760936397086106804276313016385934076325350292227344630273464354737185482204188704756194704028222949597748666729912328804604301583902305945003456631606013879488464396416539655563662678028281905526848682530383817332218460990670117852988442453902597315107716561118499859500692295558629135886735630694402689432846932112177450267771393151582260643853914022543064333360220606087039589022547523322075244708401615148949279134975664433628694714021841545189642536468623604325905873700552786118799708135088264813456240741587946929075135918733655386495949488449584297883726298029344457183151861724143773034331643055444199344763464190853565816463765237858199944141411457272844659817502314273793422579556401059149989402315697260296592802875127589817353567219309914012207643479529684854739645735205150219092627441898217581622695553141809910741158316990314194408677243854670598961553387511017039905016706811315661560917193430125892649310283599795502515457899211581430090875132377064994523570614117460609772431011732957840851037826257644360475387935282329897139294849963407348760479304593304143426988735348767698565259015056433485314424034687011554777469567894955868345568151596186227283922999712238853489169801735421036738802307752380941269882932664172911567704434612522902637489981100452435741314853217214116210110808534057758371943907252939786936825884833191831424806796537564597855248433477451743230471163140494392044970747474690535141620992039505354848838476029319662874194561500356780663654397848911970769785069582460303886175933124275823100548290539998092864401112623200679193317255552833937079355900620046142549234945616337531233117891138423977657697363958867196986148398645369620748383013030054107704621291148884307228357875827776556383909688485959025133344671751098098126329380572888799561791180327436942420600036426226535678029709564118449935438177217154693519073407085466778201680292070463713254000567431562929296478727720214699138120691943669703336882890922646019216155059576155949413793148229832923793125042412098747640955800227682877900306848549319833937524895969730279587771000720603772487501613105223536953715328580571057927830552769040787223505339446052742649237343903057940923534383007437100261265972620255597609709636573521389946035359098399656890537321373303951259186963076162155457843202691952248648869409085442331489883003686676921278897696850073683698536851587428997686355609562124763878632010138458336381831454248811548424220791362572572919424765060813415168003521073872263206057303742082813210803950146318504783359001393353532525830041833359989289875728860263471102321802344066294512257660833594826261880563296612794849361908131419549065804686839138389294398404447123125674118461346634097857585760591886950999152786887791307248528329743404230074564165958666700906216527483202050670026629001108735550437490911411253925866932080595066133606453040303496539767021751750781545095651432459054047601097727903181116496722504910864849170205121082588333224897280082096242778258464317957279450720606082593094094109337062251534126161013065990463884172877367309717876682192344903746708102856536136656453285071002500089300836068972647219331555709376149725675482975728891624714979971943157564025800999844782946603744146731101203266075511634757671735327010395048775756644213922370927038956505214918284147942040277109472789079419343894235922368664706995761272247844817159810902432143382563374499770617321728096084199457327224220907770967957660930605343959794507256920841826316104273489935285768113381697067911904673141338890935905748983035912755667041835235092910869247111652746341902945299718777341073623184785653997553178930603525285355919820019532693155122414469160331891458295059489389174362994404390281546686304140810084656099833337926048886933911897958272239368347746670945354265652526011141964556351749187623077160949221367092444768368589163281579439786990608668896261777448282925919984386603881670535221846622381212180335615402356314638892232577600858418649503976064221459493133054624673472669341153712564966250066709464639046833645267958292692498379028475589628515559761487740255107839960811094997864630761180753023947422831627721726070112445962315920966806711715287225310070894693938021855204852217019290365858976261839842084950705767513316545117547792812855043999977199398555487490202299600340404880112955578859570799376795780209292687962647436812228999463836272372632966284110943249891627646155337143516292808440611302469072109246210256633083548931474108339989396319264366659853328634877805548465534057923583354383013865584039972234840917242999721101386028451970631233109164492436647290531772393414936848653222382730687492161412722206987307514713649682964080033169023676559123355062208914362519629688886798009214607419319336108186852855233003375325924209158460485758986154992086797719246854579543298376407802002882300376694315843258278950020928684925948824138435310665432513682971609345614385048839926661643084466783183106780111247901827215287491640000128954071215164893379670073914851914720736287484299423361718284967269787216978293370351615915207285202125380832547496938584186753974540063286001651787070852824167848089271525572131822715374343580816663353570510014004943328734899209664460195056130194675770042809734169146715015811306755779710827706513034494940817757100647016604235763131048404013877682534913731031644641862767760794093577003930401249730341427062488680667445363501428402034108093549435861721204648538297782532733359447502339061646306880678074053263439039166093353735919233466362266473591655058420147094633462771276924771422440358847503005426829616817799005178718730100875916753917981915432963574974603572445013733012951075958771073070894373560068357358729158015407973003706259308171711362894469969766851883627372208561332629413924797050416195943579659952696475789891770997741738394682307295075083516673558422389792142528757046332146850924939219421432110540751969383469759028697130453738278592252412253666237635108876523477374689214568349063828290208808493325803142098996672249652198744572943242146652022917747954236451142930789656145124609014096072929579939339237700960787935689658144807958239614095719873260553163897092224929471310398010081925700670582991030289729957888845868449324509882788142730600702199451153136502905206239825082279566342879674561330551384051733514517275511665068657884043352448771192804826171681748229682479855111838758635844813205071394786369068235801581388877011199673426029325709755196315039871878023827042832682432468794496498459762684311267235948143010136579785480173546348323797920048826244767151898261503606824189728424854717896773476990114280739362424318665870575809292863389395728717352047423616767154856089561530153006675974909033177189401552731778309206998930377935261587331611428045304607579923429500730490415663524432155055711091487003279850803306244339242001730988349281562825402435613671859491586188440876230255807169841102061771569345224889107675921234223287425927579886860708445785308881786210929768002042193670420599189012221845883153561686065539747896537078297189412462667505109759262763608907575303677680383363786256265645534970895616568878346127639417266923893696843350128055648961760566627837352959572051258501287559405771686241911782496153981608595124401118228538428921686775911050891644956673359006572573601493335640648645676193253495994202377610888085276090200584887242367232831663384335866495202345702970441899950454709306154210664236938431177845999672741560514237166729337833846541165692980643489774294257212961867877551837244258479693177743638335097450123493033225807294199261720187905518063841193681862812435281552628361167458470154866664594546480656363210670665999846412706222068701584856805064126962416391083614035704974561795677300710961412891663961544507651884169370133628575467911930325429080261728942772511735404607420935095960576776071774346385224846331991238024781248907591617205010812713053271733724785014330913979834262216262653185415493964490055163467888269003878771638526516363617641151688006730314671380466818678363680905203064329569749377121813596868394295078134907521397055648436821610830134448101173032844957512190013831781757911447748621798497307121463442091747875176898790545762594426493692311082248467226168691965876046849905493263595858139173890334271530751572461502303807936417179373879204013168659640204401223686582429832594957570182780665986190550469131271820859554885492494307660047610821267710541834631933379398504309350521903929845227179642856473394062932335348944251187131422470591345921479782693087087873797123276952338104523030127930620063822160812103025873758652124242345903801120379345167325138439957711942239678870731221570546752496695186066464869187538199135241065932239289305868872295832145177957007737719606282054390250544292864348411764132374984305414732091806409295949434749539989416821327208613039547484237129914215782905684810423954261340384886085699214566126098568299671072560855450126849671832629920276031041447510545846283768470105607040536628860345533131666005683463184631570633988559921264387967935788087330274600207230502598077888278774214384255366840178604504481272579885705467892993840714095353257686047212611167191023559790019814728150419289038861473520565982582963999452127354425020349663229874433860557572710490441517231268447741551623933625449215339419477804730281546774288684405230474666156492460557624777478430519142854103391428695985174773088693254890614995300427372247517607044499596610064398637629194158547772866840138557248618026009956838857915692232653304299502237897806709014768903778941776441907679597407413684476620615756067087262172001083342421946593395332186868064187142819451674873943096212199492555729881977303561392843367839533726970020356309390058499222064873692144129631430441889164501040284698692238308592651539815093665680267042286011217926852829235342967844184173135155990613928466838419569668174882169107268011502852595712471698831605247632987100648696366970034762801405637091549332850170206067319106246409630786073431620080040826758352284927725930350729568503887524601275671301705482872810373038709776821045734474758859149676821612929160886575443469560147580685723300406103244582870505947245019664638181351511937158904495048635523873057003942798600138829661480570189209725454024274839369125561075095606701237922753515713524379701750804811051628345440405522222032629463858139010284731759967098419227144965797698467289957733997812727688275196531899642997271187858581548797113547126074235969989283059377215621583928976643521261249221367324309325979619213703939752940302117817590280363781050015608950983200062258158401832457832628106346499917562171132482346853951899358347732360471896315716417554755736365379359739884258883603876540299023503998545365271770332383365897349171962824974196416490533268844599983645268035010876889104995584868931868926353990563011195775914935723943774965908093395979299548477192690012229328076806732397333722345568480887701537268203186153471296803853536852039644641801774125063064584043187504161481246809917355400610309198431920976165204164787281882195788587993997514303916043110834500979799834127762698123826649941882463021401616487382384983848439558623659672820760412170393771121502396609237581787233019348647595184646380786792785503456806169690973986811590548513285064992719692505143089414839367600236855762628748301784839750296178951326156160162540119479970563000183766889572166143815137370651690839692793671358758261509942988903657722775374463747281160656574227701545787408862480990662182565312495907782315597599040567390307104963839645324304500414775681743565861187106200949879990130577514244423747002260909382481106494440152338386896411894618734953846688432541038151623551959327017615249866166721408025751902032074574669193556498159129896312130672834215883710166661052352201204375235885473721756379684163820507407228164705364437297922581785197431424851188951465632710612287338342768923129961740741084160814089460174726954159829140274934602362512958346474959885239852982177766904807920127961018556075702116269014633769898090755856441081210053018169003826791393352333485596328861662830910861996849028117250552153599419550849483855262048503742313827576630553145162370198446488745379724120937205171461848904806180178021173095409223216588446698737228272242242515121211558291114273502462399385056818631808170070534028671029724089359914240403078402714702502244906855225242519585578406011516310299639830494454634365230568879468926035633444759845082359307566513308571319953261901107407890663753282917999359226693072988686062816152923142726815858749859415178954704235862254691398390670348939831790008754606988623161937536170711387705492960895842859490107211534090545867597328281847579159722108683105290384248411068644703818353703552072438182158330458840041865751832509527730609287124383618952741889634355755860117466069488022953145460946061577021124378782750376172613038112515144154900241207155771335636672394004337903026176700216339985684423834565367310171600920879064932268883149804670180178994993033976516370445263070130926448057735601516561122609857080334351103930016507327777232589547680537457999770026398178935071679859368581867887245051407518637848480793864547575187290918261502659909606642456447660211073920683776955577044232265762275853009027214240786514569384417690704258197995026103049451911505127502432168740984073580765687850353755306700590865764740727924994021651942747128923841822269699861326140545263322084124212293013239735134165895301873935202752241439526812840992390567218523904100531973337214142665874796758550506094978237430613078838542379680507057622296447957995622959613920121175148073161045114639467127447729059101801934103313662835287951451030656802475062990348710352783377005722601683819818663555782078699294329219941179061787567617593901335170706763078126346031616107828422214615594958559502046764611868323900535034269048602195370372551567535662355152432885636373983912891187401404856059155193576565429756283157742915054325972612889716754914482010909920941988695626392694504147474262160483495150511224393460559392328896101246439393520911852762221354921848572958599547855609226102614106520899116052974880114035504396911853625510993463881357240943992761545251465993191649628881844398163218160935004644736744222628046302240244464387244779968855225907899037059092230572668493446525472070150676629014795459846359694290606339155352296157912183380113043584424667330447915678223310396053431715355013270009972479788322283871578043416941409089225822217054883490564151176238263944424421311217394995804294118209916044176351082397039869949868137044437937160932678503128535105198380514364766484924847632857447938292270987721632026352750940000022308506798900066914331976856748700487906337816186748214443581682494442113044793605248783375752160647466795864459005416232826911973632717141366480027247354663205398801635060107950738563276453241128249290184402788336278069519130460437447285985607600684098131499057954356496043920764772503679448699433540406556174043420513031061167951812033261578090128744025541113332609397266332649512835696013719848440692127626267906115550241608191092581185189224389859280591259496686821822631506951355647049081021997567650044679204172100856696187202632999290385351067226400772757873418266066524251253165156564319392407528182917440248271551250050772408321510408556804666018675059175720982908380002502790909097565366982987167716891015607194865011732033438987673071510984838006113573991384378780533922545794807507364691070218428923348271630986984341443576559658057436199842730891632101040906722931680698788500403323762906746789892256115735248971426606368588962540092645310740326472614642540110305002846122660263746234003536503695820422365853899569610105743584602754401433097401426877568877847927654763394967644740229010230001965990127010057596035305433475810702484064134509795728345316395298731479644691436861658444858836181809661176040723031932745612222771651007668027477695465664265109555379839726869361998462176529892403583540285527789712044930906096735193354131712388976150762933960428174718638029635192299556273790860657940063161492410666343641815970202401443043787641012819719625713284334903019401996599570593521859244029679338659025183966177954547516038078452712070355829078400311970056207564717632686074654283772251850516841872895489742881661657672340264918525327968362805549518551056601621636758078475593835396982823505072118189681338292860239679763822934342370886470285216714141734866470067698508131551225953754672246412878806445050484136269790765154125233388436432110026047662571826690612042272339399988347162831450329944677901031031341116465497515039804782454858825974644940099802657612641588173905512699586416938317579148597159064878936824055642984778218829134487024516336173395748924257049369206967004123558284466890695193666637890553025630122546837371232369437188332177907925062371618255242016532443278055743312872032135045940918010088934696086655061921384137640799512295664832738773251758457091131192561134089483748515624876536397428665691381211997436412455480001561708827031953688954490632224059866391647749126080221468313115640596561448321473351321469477537242035687618799465658295018559293027147247428820865018107706389141165128297626732069979892028719725568761719968409852356438337634653605855798180535246331069523901634419997176889366441704905349652121162787089787035096362198490793247006857623998920530551702295295771754964208735444745531690131568268680001176439561530660761910212078970664316531614356706728303715078990703278727942037408868095100201992634746742995013982976769217743682306997986164636292424140129297595813529476862798343178125007223065135262949352338288687122541446814823871657808848816179746823720953664001305287022352312613184841556356452793680987133646121222919117448784878647894182820505735573884672713986195291244491095892182988754226153939267442308953118860722370290714357222103202755564336825510391250385994425735862843616702219077559669542240103644790747252136003059380521711502613404120954139888409532282296182085547441145787760579886812125886546893836288676599740607126528718129099038408328053971822740178724124330750974321523981158823155948815514262551160801127199352017150576243644652742864312854970226601028222640594099477046831551284383669031615437901948443752951200065160731456196605514888701187687402605936922760801903913074544584575636240380111368752802016312327273254322376590531638613266149486818583497469385882873082748155316607339013704647644186211157907514844047138345829995030940000570851295223982157495008580516604366286720082703211011297693620627238067158307721406276281884869739912233287075925416799089987172922230608386712458137008104617256940060896915215952882073844926750979108556857925822196996289476872398155999700312867690039554467708482080384274934896239297568574587047933398473507828466890203390247840566742462070019552923723330160427444428049847859468179473947701478994963631942480230239006936153073556165249595341902873819360706334397786337987769313554885746183754973023351406966669934576002645047196669521322477344131262188190640358486065993693704858795808971775317685092850427784886198416326484678399764096833208671879957308759472965661157817475595747497583078708718018472390495750034087889811707013000781312438330685190987965524260307902200551610576225393484685727915664023897885071750644602273237997685887454106376121759188775029368114709239140226332760465358323618266981177974580114002860651174688686754835370774911389355420410397213792927459421605980273197346059176056354627508465464091950484290790036825976688212993395085734344367725384916447812925389749288232963188562788850725340704827463012490243420858484484849896907299616447954122895255094754688013197087388432514681863317163334639839070411174578916115593986535585094401128939720895198166157133085686921169150089015604359691418466173479912804400007655154296258880388016224728147111723403698559665550203310301813077373939103396470864935529491419132586623136975903643238070130424773874385064635730821827013276175662402296383708521706479727396463419677682608556586112930846348379587204940117275890934653883108771396621344371421650417882766814743262258002740913289616389413330855212180774189487198666822966257984430449187928845033067634585788372309850796718148096173288094711540884545479571612833686238819091484497720717998090625566996619696341697940772365667324179743475004468061676951021619953648062208558272058506379758816062909469259106627004837101556083088019995126221627100000917574906256751676983985682619040488976844122309339629085106144391889390058111653928635442019222383917218612323542725463508851911606390722508003841532664892602913741360554693735118103302171024379676020506128678673036026173451373921495203313658493389464884357051822227847934358108768886674291518518538149456617952428905576730061723986227821798968639532689940962142887068856498330892554909767877432879365050450560653640651016742979298900257865769484235914084779235548036821575406636611399311892368074849479167625915024847491072880871255390891662187247804034148714793133232026403156546954816025013322774661859153125483145914522109505166186944605451309667388540455897028787215040121632379710100215598809016091170788392010277132240308478503345913738705323687888879364346126124753851948713895976504942951463118530658074062822771527216746974702967790812331005460650813964339545248335800113812563462651395017438331803398957055377625037421482544960558203768663605774745248766584885475417707732827781687587542005022914712716253527229248175575617727200298724617001670494152690684061049939454646775088563538673594218074131796010788990983122145803161918816471549039482650749810880751344458134435345064329159969932269857796940259668644517478548600222865791117784185530866229800344225923364352653191790235496993734629147052765367444563758888383317108666107615374315620966642786662730581753399007202365614364021029551186101241155929563829451436003940661380394729850396635346348560251072988388164683810782161748710796868549906626030291603437903224642883222168705435104004438868603166565177177560893052323022502815636618634392940327529001154436334707466097928031743548659260086617010443082735154840213314245600547814506182908353768650335658458340322167334668412931294099306429325582380771129332526532760294173643726336125007169621970175823832416518949797913225281123977536084564719349143224011620758344534140367030478459505128190993573831394979929411450642591334011386778937473735571330673517194409832023771189152357047562219586087442150512819872463200856721234881856981781405433236002190315506419980822825302235055062632670808874522218080191106713407705340971002709393056784770900831114600725423978985874235091657301195373097017268104637022327020926554164620246728463567155894599928312923958566085358280343021558974104288254248214419367855886767323378099777331832614659242075948905698677075918585154162657903453414006400753920064099710339709552921016270313977140310473407642224261816864711197735887180199833323038948576363658748895623402789873642977665625590592735755462054650316251254914359154035215245244187284248978013838462078081735386640853611032297929405119735259049268156393083515045295757369364731983634773108703457458535942387738177094427225962916134065570549439865355356160592434001034345343615858311688309894333143032159965248556316348298873313365439468020148257313444818950548295843509624910709414905238715088729515500517988607269055506804728117003941405146423971848543801369349863945457519724474774049077861670833590718150289055556539448735726921480554947567259926376150907379605879318448474094853747285133322380847375139489474170211364002846929268677554199159336547265240285611495696332892309794872176543233710278093633229585727996357724672980237363345829663396364761807958414168119891338667001947105120044642661752382570513476003739295540893810532276670996286258552708706899984979511064452969998600779274873835916046912334616826449422168421698219053433420838589688653178285211451250824291566448117251285799072990132176079603377948419543644960738644956505427416318432250334135573545078183342367176519103828214359380599018610424873648898641613404288114684221155622141003158574322123950394791118061835438720322040677534970504140067377279690209979984289102949894447395440840403505728592416912566430202428840859678107179883796855375807479619881039859688075542646391673286720431747015239997134854654950774509029591391117840758187693627423083714051991788618771044808618399740683506966200243702330340777755581376973558553090065071656669096485918736430997771379770890913996000297070331813672269773270877552389985161616008021787857206433950394075558692354905331383345022446146371055880297932462883003327534451123406305022164249987888413223039872296649930239696744425157108552278970212329568008275181934980879215218192026251637690261767098642120947324217565212345247700161900545048886878841511409420970263187221589134481566544330340153062680005001980111828795054337596684544697800254744166778387049124625457296283375093591354117516815020528587647885632522745808368764317249303050065538084341029616298727986077705489128064417992260890050530814132401954484016590430627346957434262202244197471252263204889511012966191035517753859602248519036282660163598015998898582365760146802704934254006499321296139272019602132603846469084577352089558329329844113856064474147931075017258961299662595020994310640880344624562703951345517955922995682979981118258647039666672424529863334290910372308218694351324131237883035316348700034755535657410061152886675800030765667537805306753561112810499548410931766625865615942426685293703388925752165901037396095954050354645810069732448222083214304347289252487620517815818513756802159075307612312428396837919415362754577234398630445184202000469451324256862846589133340135069748801305873710292423056075571115626789422406485423446395192934971496868215035954036814443976995501026888834507975237020690082395621730112875006464180303859119725879627231417347166762815024413292196738713671580889239426365462968779797197992534330931522693795448656063659811165549813118809884522257903541265634767619558830044504126225990354322900409824202384720350138819045160899038063223621730103394834155384877696211419115193479966975038825132077008919277015064768016632871108630126144902430359060634485724114683659351710722351368611241761342722554841091079387341594041922364164794840226367181440006825491506239620245033034189533966383322530383267114848089918425563010746110041884605809483053272868868673287792144086441562577879585854897359435209503706733798548378441590521185877269034259609714052809898932629451263739698287554272516738333909598280448711270841046487830135165756326855898072204479901331878595822633200308861119386803516228382832869415349114180863914935279404306830456435666036398229709707962940465814705612060642871756888277217621963609148946866128381323387558961323858077788152669342921171953174586194312324591952480193276368850221446314843519428810236172136814827381485452075444830092632523451652918067055092163237993958673889859380110223297938568652534075868056048617675386487015341827802652387154283036372728072445749294806528608807285410154110626842386088195262091773636383324022923801141367860573256448261651064225290590012705517481963977109439422655398469257002444861673986726163694566134009841517767264035046365983303062232373023197944035188634816632013625435473313504980018563550814738755394445300513770736987669432350591933296390787337993761091020804948328061977239830497184829813289027600129585226719154250788615557235155468849288938553264759735046255136345628594822435324909828669581729354115631062677739130311891130567287383484176717643074276209129453363830744101459094744311646439922138810900696893027519466178714460265787034316066722604214772353216175810278800976466293332395597060978357140361846028696942181907098079051411595305782023876930410607724771794495149887000880166403708593529131644614779784375346745432392022762218279388871773181262179835936383765257948886391559638255465293875853388835816865710931527219580755742495046861693189374761453189449211740380334375365231511077248098144880417131385750308730142253368116391632718190742245293731981265799635466519440624127921493727851935254807639742950038179587165955515096761629829907963752325731829395937869701284282903063016925427553899887320026305002931454379140795974509177828576166911695622321852078144851032922111538546702407116292880867841601204380429595384542344582388624158293553475078201829380299027824864765498192915110277756306211589978547929992999772055521020941119150566387042612877983151647428689586944924923391413126696937008207279089645083088371463703320698572812586696069290922377631879714226029206141319767372922694960149289536489415873043020534516172234808233824641251341457537310464291055705789169468529550885631283445620056284269976731325388014650544665050056761251602615340968091580217806171811614422532072870526612780388881557839860638589627339888482316185683136156296990628617297400933504120382748069745316758424074341178580538547570655933229015352835075098052501876077485764511709260679788172716301592247188627980880334189728183738739046689255141452979595120609504253606749650163743842722589998499236461638415314652885877602376745963082774278762193200672293924068704269136263870769348066485540655243781478884367554585427742790048905537489617959265244456148222134746769689726487049057686230417411053974354792297913364985571302029845467884324000436242534488381129591320136241198682774327547646082777366584652694063482777486755480037499884097100896779768650889295683908130834965490616218892897496748576838479734178883062465809250708090046372227868191069855642153856750827162946807716009498035910372024815167332584722423905324057268870888920885769384237603235998530982008107474826283660883627398528590464819299979613483825937596287699483197476851479758323460652575608571226435527048667325187139314294169842003791012339741890211182908164569192882572233698767368644525052751210933055568459724241116775107120471448666802665176235692937167871419957397973079634207711981504668750226266015297960453898773030970880838575778238086662237329811943507037735972966527765136291285721776227339572506750747647432254534649763277288352561514535823608162894798804122996633421577270779069987642226462025992942219790744280911235927261396632002313995854242476755584616673201453739174398224891318640176529057744745815506316213618160830898372593284030346576563372449971856809405024496152308784399205126421691886184862596696724114101433871889431954171024251418104619222595346567948889604881057233610001526770845807980318462436024425031705669607856953389758016293537205152734545610307946557251637561307488461612895938315723222723068461320525933395145935266752504802811444325847949722262071756037047314354657916608858296711032922205882153629836172799705649563580455613277095096445801674660781178234864292069561477027416078990604878639446151250907639048872282204777364426126798725815681277479137427779257208061530347554710529899542155619465424709454966674315032503803111284743175082654453600334650930052263244097464180289138283067901437477844937543615464548446394281424672362739818230988527884279612720112453471690097872035159024883996249759541597704840030072615824411914334992024632424538245349753956756172824256336313122998001168415963714025063642728752560351487679961368593657017932136738459004558101736773941834634901238236623619780960272400879586307691700442574241458968051279093005886441505070823772791027705293518307808154245558669140768581782949016571806020416175275993946182045521945028382752839959465646572230177167243029910900482994965530587683679804138487763607148499597397023190403306832216004554334693798474042526145191433896189912803933272868925802593911971093583963743252841036314668701151240544762552238598235933934519203400650944844503014736102711116796140912010706978428867078689096315960032022551860375146424244234687925726520966093263128683888299996546181776599286736564983544161348386852551921004014810863584284301213023234152025637860382492890120745686231775273270656185301359796788642557054829962778564198062641800970426321240048053147458117074700889723637805351927761884326171127767806175594040005581451586604826878172284330018660755729765820465812012402479459100789233971252691608458203673415826618151632791111736391484340286829944303487754052458411197870041100066858397723397696498767565475303577849130770841439072527588925054724177261162591074740467423436023101235617356741504274224014051371852243564747896956099623707679657744458496227965649749934393839221231533091091653794134041603749657119724412144422410065343863857707260582874693676028462589133568622785526581460231630721779803564716586706968724970689999954105160109354012578387622198126230656627572654186673627986432229215291147904839127233984424419893942656610140158991484284154795873955113809563141986704083917086719156545267951163762723448933651473089491495928116872755977060688413295296209303181334912252974542704108284501225327355084200213845577695211282626764513109007336432822325797065957724158063631767165697833465584387564690621945999568327949723750357347821009255532431385972614510026186698914268891706444327515906369278153821746627569925692246357559342922019334129824981908565932667843777534111213813967766796275169249745744034385016584689502925667491197111566060661075626328386042999148497505490077338581200966224705485253603064470018727458763318434150056328737318866651904450917265454308544658010361169328434452687496885527647741502616561189535929260710463691891621668383275504387586499589546583937641896490454899672961100780614518423563585840948182317713545043684541691668480871995877255085163464464360481626562201019675363156009494328415379562599257329637310133565686560625178279224395907771079958674536722566223636419366990639670202136880884647878423350530818693522433097004710033299308261379750789241767232469240615078386214486818136449893654311438200428278701306814694628856020771616825115295155689514355981637735038829425560035586313162007510901709196593179039010551467111432865262220025870638234310053148314858661748459652073608554523390532236321294556828968394782900771845723488355809528115261850193090647408238338891511758810797459779225153031869867829198606822305949620083888857258122746620590953567968459416006316992453362004993300219805809669700305125551358557026397476572119494888539352515652469605450060919791170204899305241109245728789959616972960775779110960776445303874410826865946008983554982405707375270905073718026968458099971987884720056257847777601839493467806257389207301634058242002461856925471685533185939573483887408899356288696846681011985552303561774525732141953448533021248670793943511269216629232625886521075190004976556591100537913346877879774580378238469430028013424512120746981156171911209842569745147976031193508895833055215911619865940084901775254474763721196276727062225371430400614293548778997153723433724754874511918282155521375797303870552132673300174733449932405532999425354548709928601859975178947062002640686548251157111864375864157464380664623896561481987350127776760391788517121557782979044392970687185036461761291826427285299260563668237708257140207627482040198373701507691181698484016209342189298218079127506528887175104054591947623170105585995259661059179603920529403969623993714824225955803614948757928845591907309816050021529166473360010114340686527970233902075752980311799117559715306435938784502111119510394579522669524888414463581419104269111877568245235383916938791284655796067305781320958532469605265891419036532456202220124591370262292460168464190937245439283621894158267075212473826070097153793464490345673989425487234200652585633255421523364111848597535945471775026073595168971293361720336379399563170893101816241421935261682439378113932624871005715900251560746213640429065496166243471201759132433120880406198008248504629482679056008390747743986296654439222885896641035911924957157392782589141298183543601893793491276167022619232726791045150850648982970636607451464681354504898894212968219947229868539798915395582935902826148225063063519942068151009898947641283575642163541847600450904922829627493834284777485875294513783055433844713555323732936327820123588816189631018262002549853137631242644043087467025232565531911652178963359111434610007587919237144877514501009109348500186147021922252032304728910708944873831976880091223422718336436562869150939000049733012780333231684721165479911622118801116191498483577042993973954062645538297749609678006792495801066923708702903027126500718681276506331539177432469155164252019477480140115165365441996765650304472392577940443796911028244706119390983974401782017511616315094806390338608365930191558359286360488556747057967387170525657137022273004487513837983875917274575530063876221857994964381502167517966402642608785852696831838285058119622861475240390279869254941688693518217246700018768875660891111962393049266881156201661829280029522200638415000954359472624884784882150130612964488494215777674349830430761254874145138255587830874112074219444688330505349875824402269712576493528212361809462653547924132286376460828402529899888552766816253654502286620429573613349117219577647875952446176923914576646010146477531705074716534030121235057218910973464867513954976665747021664514582922329773387941460991983326133458761724301254743249457618290929367473978695045573827743565013235458616617640660847020225793795973773219380512095762008720471024873829543612854968936121734492386524059846901175089367443867728994911234102576913465441017110780147291298987880790369444104307104675055905849419489719155747992788688627208177089034099089111860143534822548143845990925559420457619700596084364017174148023107941074062937742688887890152843258078546355078832133305805504979689764326916701300059584304682946032184195913114533399507664533606586389451080722897006438494518465950360894907946212201473037318229243475905466711022436429984536116328265262353043212576053329682402504266781889649065058161228581085539018934870931345619501788496521285124338419267762208752226665063658785920217795387484673943460459180973588808892183382981707342924670931509098046628837235671232626497474295618350377468840085056086963271334021419606943147343625922370317569552736350893981390997695697594552476305928255832827356079698433591295369637088869891764544250662369329247630100204423209730295852787897475665110856145212578065426748412333512566579268771266394601450146148863889667196281962311580917294390896731907845358365215083400987143676706242908185386329853807718554012137609534582761453444447131573202498324957784378644055257982074701959856593810244877475317433882413321434013508057210414675289913785764830223338118192898607305122577346825201657232588358017814891323601693056256337906708373034026547470998709109050703963270788965919016766838666504081183285665487442243508172636984337738072433738489829056559616106442326665065164390634243747308241726666179410905897036431460094547327490738273974330873443389566622524421231596446164567490423132073999224776411999344194289433182574555658728569736110175003219896729946209907174244807652004670365746140912196192370493492478923652855901535407359349646730624136022698889424845794812039126378581691198747196872216093309387697965693676935389830292911228684205843454173455624390015677005708606183920322849303344504876251078993066793072096207774627231966361526183666291586491110614584970521691020699400089004534070207322108091754269583763473264395058042242515540226386385148380626456586275313583649202217463316593823420586277346863012284418494373919219968044306111095594695139781109022634280997783602261943622586149667328244815974428640537731718904219920205055707978241262819102209602938516878609628988635665617148615502394136067465194263540311871988074320641173926297980637101036556282218143791570507628862612408724787400437711064196806330659218363873254364608522353896091344561911342596229229839976267946900688224024570596454347180769437482333099284900916500970252825273623139182129146086045099839566145054230466853634937742785713499527756848149636808876293629033423927266965918602177673892370065775459072365138399458198305671714757255980580124773044342161166838857338830144503398962339384573859909122719533683836142061229787522885398337984008483785390452368862344443556797871200405965917908830268065417726963591641528911771503593581287297414793508329498415188782867453090713041166616098890040092953286077904468573553579977094383818299711888378440803458464069206686380551252454663171519085788323237334694036562827744831433209933579999747069599272394267342179461875984520683227395643137418273335978045167782144303935068765062368796749445291861965419198760147179156728769549227691623176186109106188849275774850303011987395365871449166041690037949753895624936321379811874981902011458187740257333642244209780125301193890978588506002616950440826102034360956684503104964157268848943017248556005628447697094030773927354276002077384621499385678326669190208471212819862591677827565406722861804138472689154520783480247214453305033726746104822845193579729997869112112149515384857196104895631459622562122848095157624842829217873905896438224366343585420213723345714917463940866805446403921627145440115101007745021152317552171588923246092269680532540262178353179022087520606278204735774977282383430137396673021499837271607074048286224569320462240837091876058923140429526228505455977311875727873806001460267164654223118150159352266144327326748073987277939806002717074601188913580717148137508441947462465659942462777957848439608820459014446997116226598496472973897900187781689056116594771573989101830145704905201160867361963916455440703009074601971530805826193913898488285185830285652623862193631915630154448651251753534277012642636460531186961998917866336187825323207149024521743343699996217388828752506126681476999773776896712411600457860617402105747854927489337541748275604251738038475217586689342395660711946716278176096365580052171766058752730114262958601141804324127539713862608405770096634630804635037055038579270051125402326176451268281641343291139996407692429283776053863852966139439297127806530699654385672898945969733858957994062905589562762091722588920921498100323134622834889438415248634813421033279020366806665755472384647891538351183572193012238264245451894814335331991346538297005357618051870421031635699906479189233103649658072245806739076397205019836615803068895577509588591256885994767944433874253581674936635807814680386382181307302378412989215778975768370581263643206331000533959762857060162627865139935022310389958283368351256426119600454070623824409373044134582465462166140882375245369051573662020194153095557246463317524271397686437533717726629934911354800849618429388856089793370365759762433832607412670490264374506576089691632933254804181762389591373715139011239593320657031823300889488441335979592260952456108800653811308796381636551122221189981549216002130085461009444525297158409795303016761650552428823128003088807698959537620331427779519318817674948062549576640479311765902947866133138465583742041888869056614781107947403405909342658213609578322409366575473006128100651022926449961377804081067933072513485341962863412428563010168741305233389804519938371728122819468309871540651278395736764913795646680367532284179790351391091763319283715415043575546548047721210542848324889595490228610347775324687734119146124062079365303753524664960896425757270362546632497025342160375134643698651987550439780194454328129303851839832242771995345180962199770185964258027285211478456153990224010483258739317160643482446489809538114311515656558252287535468209129133771267200465181303161921075208201984235890980406871636046082143171142056259720590232452146724296889281392189635461708729938859188147395295752486559857689330376711153304989984708402693072108367511555781260977743805389737748583423243900924116564350863014368168086468605675537786334461793392507506581925679745515263741075606506758928218013768557261741362464458892818867915773184565796349423257813850643666924344256630136053013089036989060965441997675485674294171386726631275897744221731609377286394735713151546533727315140420785559120806414754644085388602005074192137530230664494959695196050964893724912915375239112172944911187100763269012386050037136095054162767077760148808464864584475626469718895320364941806576844344298904169710810477875239276739279005075563519088538299245958643574730889000589951843564615444944359088090309774352709112116942385647516393227404704801922021361411366690086348064964761928629982200283623322347333883616347760542207487684088634428280830500977069957174320351569855564997809506345263527382343014274608916361291754933455830385243571136921349480562247018887755926948997317940007416566581443733122868752195673089336358171251963091627541718690654169274007762439268638005293481044043845606649741314719444259196975232513532007198708631755887706439407626655998275343613360203117776983416608181778514249274604339760705269259196269286456390623754288260813548694372436756445555279028903839721806777724440684591506206562114005551728645079082354437816107106670019172299817698939423325360506200002402730714711486435515294185175757738756733984627316153406141474508550986185090116373412682433440477712108998396243450672633110394950000863263549468815008503620638388277161395677594444485159007465376618212793072007027656678405727712138917117631909215698874358325473893641910215271656894790301515621128725768867099630809265236258102204783653701635900180852233126777519830228006186381889032316513267575954077964631852871659367164951382516615034638560781706786402464695184869786870522357368818370845934857831275283057773659750045769744417509535021085555852427537400554699778464709970910086651036050653816835507353604963147740895481548364942628938236375100935053213860027331902742262216137824239065689806654957790423528975668312832523386126899194898831883806476479537128975828913640200799276436600637355899865520676437997386356301075074802129652074727791351466714891611251731112930137678329348551565071114308619305067440592629845268219199688907558000911353803737415603218287771876531540361043573542198541423648887456730474227928769081400791618351174918759250539164458686023722668133950063002226059533277484054070312215340852796763963615994113886832070220855871066048200663283824232835649133354873978675025823484422887042606802569776462848687762153854093521235706632635385469562781478876565390828482921176401454141255048868817431864700962086873050551659960211729280072325365011711912548929791921701314293675278806047334813303197959483518608322724094388828792832520864616898671466119707233950400187157012562103775519359295031691109650007326505174639478760945627911506730062259919463481246251414386705478925235113308882790405405128074376674857214263687925372059679140409589677996336925431538882941548205702673003589190883983212577409642553408753637998473735094946969211785914818354182261571007892568911321724961572825623635804562253530104907627659583537406488429222616068690839747246488585739259254055713786170041364697658609027806176105163809918488232002531618086631533972185288754337244618203870284693252736135740563856816425307553877458028277762867527298506112310652675107269617789316660267875413876648345106858440393656715065402856295757620303882503184096060362158104589851997770374465951169511797036724632487656118029922012847521780967485425102635418756110948289653925574754416716770498659828693823345867060673410827229769506766666215089466728935518847399769311008394056669409208991343926658149059554725301723378991453885779171722614128678826708269087153895340335320365036783787172635904799794810655875625264253791900958486864153117697246267478959636693382483873194795650871606431240565470863048525939784136807688402802969221324645784738648344828336255769090900910966127467486980057438492385517541162420543424892499641497597459665191135538363230514459139792529764224121376319544374311273986133285047959879093828031754819409849104098039006315990540286228965023858416481783093004477478471089832807470857551284566171188467365064128624670547026994153241444576253988700136600852616215596496837877666843456042558567867966398903896827312619576142544607809227066266171558565467410450541979321246178583925661203135314052672573796678522676715972113094350292007326987398453786546304500220876587011996958968049100027812961706031461812861870393845089766509969482203868083846680105056330786041331618111469005014501291898569539079047091610406538511147090332548837606505860648630580248552805736281235147920089004879269589185971237467532631908928297362672894065907448011376402116414718009853969905230941401175039908822928884746359455449157120486079564973324324808548987081584334002317516800573567037733408998730786357316359911067203225363584914058763855256735028075391514275575748955931412215896595686392291113976505225724707959779757095794913981627694013583546174724721601149133993392304308685088964507112991672104438882475134992967835449669262299641754152622467105671461854519605041358247474482843825956608109791242671187988711691251655518646429574288957903272310493575746569514641291585985877248439853764212145660779890980994818623040237017615379056593191405259167994425041343479531045671699706842579665464510748432649287827829801916574140853785797870175755845094061297633697929500780383680579221906961542111064904490897805689216677857205225365883489879763940144962077791321181493531746108696718888039420833152778282703168750881374624533303674386688881826995857815054984468375702596547511774053005564074685780410600566616310967268553166670867752051604432401337304692649926587499121324797036819796104863896593588060760825305729320230876362508654963827682889961917201639316534176138911579029786071161079440334764463330867156172824996609074596017839383364356283119618729133399261178809063969408097082295734095522896871857004890479989378170323667451474085313645184660493848995654872926090011313965970505164802138807374387944579444947143155422544779424754495564689192116019692261947938475237668502061630158779145088203452017012892129889081299256299476535828960797282192513581718053487384929007269070249362345027525741987511128771446437585561050800646898363994609670384655706975741490589871971761000269003342724117697998620683166595175580474443871631698112798508481800644326248697414698735751140416544702627761368159805511233780001293210375188720636341564518705119965054088582245632913077575600937139578280547912010019647399734056570953350327073977647828530776890542651926956795122140918582043205088908407446137952093139125774899900717590287155454521982015120785493042567192426152611154293098057851183729568205453493756061884078026854680577426155138198819875907826850404205278505389735705579054046883544307377787604031809907927445067572587062270299691953679124858665524016187368286539094060001710236879689606332571372967527073052287104383625949700335835815683506040435557891405472495643918931281763863891039040583859555244768890055263793073984006514426696348584995577964555409045458642431884734348067695360276650085458956300356381926231676665846139825223803571538778352962491758549696587159961826383619966471957209628869005665326645393349575751049886939759614383684551982556805791614631455251906015826272105362041486465626252505542317511095409576564958703558328147095098403500509833036715530455419088601290345917892069882032032269964925403657565765851005461327199728476488052972091309580763362308366864419308937361421870717252319724374935866497935080624962551762654377504134604719326341992645577393669652172927862741126767220600150977376607254249827592861555937940240514169004495786646129537559657748069552045807531252489388768665069150992095385344869049746726430188104870253099681118970955448195979065106408063247741328461667619300698359108487414108788177939411290240337711193440981259627664086733924979347263526955690816747178964447441157244535165725487949666733148499293097829432826538322196064854794081950879295543379300183395770025282240168603995839054697192979076044324850769073832005137232438660183209011613334632661623635263923977243217558597493797239144152457203605117931366132849326225802524780480273723591843739138095114337528790916049451603937258477463759167930873571431823299148859373633121932262879303144825093046922778251278433730248608068383698554503562849172410555892186255445098880512983276993052323992308309676708469179295099436236349565836865214564392966522007052305078607286826696295203506485215614700766591410805141298819848303175004372927058043234591482582880206796976891848177679151093403425843376183036029131544510227590165244763710532887789179482659019574442540108936076873663043928731796899380735594464680709438369891771625152132478690508911559367752023695927539476434391577992168035587844340689751185464104024090009413589798257899163866458209473518763475693511781137119995790499790646937239483582325379935626201134318328507392550824447925548439499769986462830817334868489117625801561887222860744769860748769554832923535602632086490623891946191721012516474180829897060124689709184048671755480451692048618460910420084613036044871440751009069079756696243291729486373385078252716611772767089458122412410510185538927211164700795088956567237544481831801174203040308226472619608026985077275490829360633937923925442708103721425507192583896759107023935825979293116614886154751492369945450701858901186445429641551488913997932701532997265289032039746359666633744587183409060181369236560032919144868809659628160551936284342711964460245550805045262117684155411075607294112542893420476742162859722590499123810583377513890527282639646849493837977486970801971019314964240853548249237499831097867980785261578847430869948565287162572182916831038986032497681745063142454848916810535473150408992531183932362836878301632357589494092607555290389828768470339287885877856359337822974259753348023427203255853885268064311296019441900316838285349749238047435819814055372537816621792933691084565932148104683177519842046285561297718711580539270404475630518919663704018679115880542103255106680507498038897824796556530982305638396152663471192698760482121708746836063536380179110202299759806336667091618625865723341818089201893511213772402815658865025849321469096901820285019507764909489151222350174480987133154270575445933387963051900215520185304002555244355914508040588426149423898264043165484164907542819449159587310241732291876779869759837092356936515891911967460282396565934709037023505034728520386258023561910772583680878080083353490822510553752277691873135926471269551260836689721359294002140235045641684259832717170900255030683762352727818731290561351491339173951095532054640255459977291191706628671725993911881086377878808800376704061992331347262790442041412761605713779807846825787546146180489413245617263730734370971419449318473349052591452565123591518727935877488539898386010405079981573412260408305128094048020248785836856158941076914521765793295502059043004726429735069358662232011916971860873918533494308673997878645970501021221362254555823547071474507074926649439167533726188768638165344739510887446947612319508983965983964516831527201256138282137236670872626227025706449707261689915511313528070431761719384532745362426826307014818576758599621364618566639020111490988876767565818818348570138285967793698411136470236324658302725987613124475078591848630123066519718092587820912329566375384895200265197976952198291380609151787625360257388238123335530073717296765247262940667150600021030934518507206788678531417741100876173732227652271862880526253410240085213217535669150540290917471690602479847993435812340312965683579814218778376630812718343090677007740193901923529432055260383739463836077815044596325678081186530890408089489588073329977380118530143648715950308368117121566034066634550271139007197462910885887598282002947138538762319651300507679858317308830310965605696050995794007955130930704418102331484986580836379474400689717945888813204216820436017640812665730427634871508655957740681388266417803392229061638071810438489766500162373835515883478562479113338127439626150053045530292148624399811012142801216539843914119268361585534969306920387284776921194426738384727531406410877745585308685289187777885426456239291331879453287550156796712851523083170244985859467632790521483071245010919337676638060722207060637655185863217862269557113747475563386591488725260630178879435804502648828670795187928925459918100520046565131804765075314168085575614360579580880653214061936491544273188999765644478269763882508758122567438455361532626068858378650324011104981974134542544968488624619431368630705956706827007446682936945811174216272622932792882441175049746964812541939235080896455969104211678763347408629030311657294094615060110493252770160269504594634458131614587952044397572902113120874550274204912457943643885148784008946433428897428617706486848823207043535536204207938400510810307746285154347237380042519195693246690221420179972697088433401380995670106058785609339879732962626938925816350052977703994526203143584319650737309299664881390038643396455783828685354160628448394286194188083957755529593890047153931274066211455203798286832461356256713971069982546751638906398337833929613356242502458325200139709082538604170073621378905210917664289452699833468846854549951654389812702632962377679923667259479890015245170386692475391989245173587865204195977098650641195648165517406860331211195421793525100071635588912150056440430654654237636495656867739788050202127286900703546527504586918039807670467616584903180397531710653394975080589185775458815922201770305965936749894726290302936150532313155176091155513171214432324359389926198902990734221454210543372380715769847797866583025923021575440779713191509345187031874733116862698033848751471532726584936801363635000136333988743109959998125680800044478049446094234080221738419672372354567225608282234855969138891756865941600882076648281265875624133134411994721807145193192594908845152688109730844792039160877008844501521182283792959814526393003573199097424534473751677978275211589543005885256137091082248269380673206795155268312758367459986269712656589475531603268804353007945821353418546775838319347937454739913376585178749791015553078221954099164288290357843221880247506913806831404291964926028384045671109171839970425364078177122665535605983330361912636784734202423897008928467359574801704092563327754155019641321257714669783148119881221058620753445184552123308425022367003415929778536862648236294561659346983399056401164943217724109732350602092341902367460088314574004118384194595364856411023353094463885470734507061792596576101157309980359506238049541956732531482805095527204387781860301361808651639419783862146407700120284779504110203079161209438606389596727087738087393902361883352556174702576880822842655865227441174384829273182426411752806812281487606078529940547543973462397442990413840094004682865883746112662539240201687274153201435043106740094591722381139602587765034622951250618715892810657074909093133315771017459224099747749247103373652580485246644340071871831158986618949499333078263301640278141191188724716051247997245320506154133052916436118915930110649394334415410451765635657390251698435618173956402628455612390933495526551757039471959510507326272503875119800701330838068857561394005307065198383580406674554560664511634482010348258117820784794630053314182948348066362543616394571193359584624685719001139697808686835781703534993544592213496752269636326874072813862160106742329891310716447884119563405459119850357047801328506201771718707519355602640583488718740322446113874543854029604235243548592622091462064305381247685967227930323767531898543646368481143530859991534611254417650545641295124701947828796181202461078141780683289501969711739076374199977363900711607091510489357179583937664616266611880258774532659155288862583001352842767562902972734144832372872874936563198988228793269546639425527303606481964005366174600304036792725658838772699993597891231768692038960258465282510960214444436509927425570813536128332806675275011717978243469879591774123693764932180531571350790588404971641099259785042824418035092702573964814016169057695405032419599435585378154763894373556418792678343763240539819543336559329455435075227356509440238180104491199621238466632027679797305967144218626065419194236961211303854003636301347493366317526559015002770062782791874086480492197567857261882707473257629219874389456603821587185260801380072754102369662876717359671341009356087887258370603649946680473486632604575830925828299984161783362538608673737540578878183733100861541057340586336150454184277537578548978969266906037345995473216299911576022493774841244226724887203119711047687986335986953930814952358360607620971731856038954032480000605522681086866885722588749328433419487502444676499095868638346243512211017679861810045974228484999888106869192321551422506221398981882360981264864775706573959029027632729881908857126316112110243499043794377535977468374183499826599223982569574022766019251778893509998087525570841144307939747975712459830126221533342361538295801927022068794713409929187255818888016141076790453787080625196831218909871288241027973711034364990308962231420867586105442631872208466197247117919862109922076216932833347315521599477763496864915118049487533911321860397277804516250664343552751240417812850764579456589507672319309138691161560769790005696675790265990218037549583403381802333435714020246223545672507895239286024650926728871083393713546896753411027240306243586310812158706966587402912016338965101606584334720135830416972981765592320040146037524461981243802206119595049796975002395752524976597832577238415398687055347865458239753142824633066256251207710599852052317632222425140584879260955079613312245681014191185410938517560404028365543056204918672534150621018236328755533953967156309002415354898662115578852434819820558437116545136102041572300426585416692969152647444159247167295989873356630298034596875324921313626866489110582853413707922602560909606068674460033877054798947920647284510866606264773829921056886753516574669674769489117457363313027990247987676711218125065314737038668220645402929381355962083069157048617211810438545132538109377404758181723841554510997340945192030304888550914370508748724263925919681087634307599075313414035990843502671196270598097412993652770822678813859689930452289071828234995564830054853279252224283818914263546442533348053033643161605550436352003966255795904456617849428534928462796741605548547805348115051171255224833301623680639727572781672122977225070496228321766290774373595539338322346021142209081025277862574957004388124483525853717610579043099902585356908258376980954505115352727564138212201110811072118204900771711095684274756690136612952253030753659624645195776956583214208467035365128725862786291059352299317926844926294419798936933387560975692995012641605701781016507819533360289595212004953487670101190703139308824163353999344394977445626717488707722610790166854780563000931386352510285627841763149610227065252914713102607247494948965797536664906023613891618421144770794262014107745861107459069756935584243639693020997673225008281516011880299065700593749551978357068897374982572140946644844245687760117594502620510217576244368110250852920084977659809701170069713546879557994350107388780737231037331998294935420983108435838664012094314650587922411933522999685298900952205734933075125272349639222464000802932831306812679959109856399742484600372752574481167524416209174944059850243366498133564558846960672622379494715958210079835280490396690824344409382679314456942961707967014739623833995313924930095852993174933679563766475081446829712193439531362922354748645140439058157614173370766663494194701148298318630449193106502508461594312918461021457515062010108419581215525726345847841110931581108160240485677103213711594229202692442595772339677973920892934169795192573402749804761879253467562283732137146562356807333497864572684471507908728347245359526171222660860652684915648744303935097266253613525352709100944632443762445918685796528674354604316529655102029902814631156823594492728357255524030824259966072436088532448397241255728362568472246183729511052704397005145765443563501406193957328088910844714191827492825052927140101401192920550947350722993183254630084750836953356682882304864870877740076329231381531074752205226035108151301417086463824569554846351866137184666154521439410199762918368499165510544414779693440167596831866036173550280430468022777524628060577918021721280230926121305928490753165936934911577291057975143549672032778359390559724124347725744576711779616442653345552518983015727998012562009373269693147505349187718852725630181930376043830724848471061599120551909958055904935981439955509206123456130786440624552866547140615624505569558812657356527045662757542023910336590386037712302687722984507624270066574735921578706039511106056035911934220970265198224375506742633407994634319037372729544927221288045722124892733659527569948213497578361489347817274288681148171911578597581190066047740120795927199584538153377656179361132294474607200030609669286423490029347264293570861249772523815537503006137641134236577510420652753352784544281573075309208729645417714937684746239748488261041820569680649182602535585659328479161934370341509453458371684010632169902117151684849145353966496178775991272710810639180641200636602019639574244701420206946198517592163721804434346606785230743280028425302851771860205623903065570112719924919594817654528629306394978017547354308102012823556506281801025696685680648630199528318995558262104544783528348446875021673989717692504322908117791195009676995176106430965106028330663479268816767750540323033617099265780333335630064818239791412382028371105088913444266311761628802143139191685349238666571907296060764749689889536136389284298096459035840256097597297041818220764551793224644331793885353496539351094921051803549518491260573879492101077189583298976453150600322308402003555897384329955249391433969384542603904248450745005362331168972440521164648219736269801312709108346901022683955483499411011290432813282154467549627434728351569157999363733847340288336767049492068009037078233941236842451099429982509493489428510315703346483136673487812377522563806890977778870552163352748029913198634653373338013696016864423309105605253914003392527103462634864522356427137600655794159247938625519532476283746925960201041352376875106209684721289747632574431677580553892867410001371927566051544201530978022085894147140607523081554216429798117602628643870972381105643279188848807133838472595741884784785318035486742785759049252575838589604636371956472101447394819914229428813035604452760008750689414123743625363567977105400354502042913278730788976182149344527480554340294767628995149145761845479255498021387635933071545722693838198084979409660761669461580707529514995971260738796288230132627953268661714469861181056163894193452168663684891156723609126898858999531998639219253732479244167085544181199663189139273381242365985190146590808753372794040641545375309947521092130459056389980012195297004273805856150109344599593207135107890288991942817103431868813199625822908455950760040563039703484105863915122026816704182758296733323709638575001997311741638318208654097426117375251410390690529615014469589483535603159501494626662663941877031786857649538383630528107855317857745474214143963812563418647204259792320565484051412916017428979699957385781457614973699280410365798310285038547682779718405635604685887829610006765045378338585631811865327705392472738661366242543325126557662036695463183525294076603441294248884522893875465697144824522064762063457810578799793379706890561479016541490228745088417812482907335445515527491220462122526233361099632874657187993179582320427454541965221809927373256824574636918203876222389914735316521175888398509887407973529153475968736868129213658390083372616581043415450943691449682097573234216331679253093330601078127950712878703775586514493389119867753616067939127075333435960259822127549785885562309430635680253989602343999091497162845269857838366028610151473170211962004602009783541652521056576838496107241671438228616105013463764807746573624690184617543166869006838262138545209966319821815292661840107002497515390387759696084572420208400644143424773805299498141027731467889205066112505543523433669368918986330117219340258930833347836330351263844157899878107063229710303268907271382455541872677542133520041771714265071350715168704896987149341305605944620928406516543770689746445243479151599997099119499130789719580222670179345453054062699863778847559286585733983670379593626920635679926039345635083872852600078498246839807123083916138570985251507715258470122060076657805828288284896909420308825091111831731408302722294144376013254065946549274179118501307904645800528706101896072029213153024678912761058276107994046159203631479193253528736596451265502523610730688142575719109501787647304629792335062747247777192316327943831602729771478803474192259710947023305529732159626926680458289891620855088052614183209091816762990510626953722523205424842165289687761091376832147220373153526978328093983468407366116223301058568742843348841704261931807887418736317487364029694531408404811184165897185106114175607846572058796108306340415630387326465044465351075038259096996715290834525223036352879123711242471287828478663174772995389368481107738382966152732445579424468943162789718881778344907604163369981281470531028667852895539759020601373441654437799503756335897328769630052054932680639117858121101647375549367661319044312156908768141945315191639144061778681813967990422817022858702310361380828172095065441567237523755556244905974606148166520730163357216232843867832235808326553138975885497817743243403219968220649134632198868179154674581031654511323742741520405381240747435333152713846787158749531982520253548699163638703099795217881684240466052986000836057211671641283177350631893530880786057406066513244282354277143163390807982442148007504228838210092578970291943884341871291352339918673551671037635116313025396644999099889542042638731825984073661448463782444513440979163937117001960303903155321271865574794329737071199054751739953787911598571862301977667496494259036140326630259184895086887250233958546224125991778703448769180757813602692015473719355914491290659009049154015734070970717408075348031646750216441030347473845999801861992793104311509662679652812622185021551882405944516646286018003046166029678215216220734559050759522097991390285882045234306640348882727391838378156811515444984749665253329111808623726711127832867682594611425236018805197519741747110123386052862629084298686473451397470481113576500306449930615033503305662396003383295473315245254203326074722323302040837962850045959568680992793571365815348824660607237513449249211325045899087148768378069017995314953169539199834831614165719338247155993073396115951215795775109857587874861056232437212211831162084778536915904563150972716674641946226218754973722217092150777025658264351980307906886440069939611820376123624892445761352822040229504841551464127483527946190696093842374827053964067847219715227957057734308775239379697963084269658318969677417466373954920848226321944206082532089370096459154411814153095674351358022255518832061521161153831524952125858934123898824718033044168513937159869043626772304812037523921959406514423451889720217095756968639559817009240879844485003382654798225022561538547726988773496807862035504559711578899705311415200662094958417792544901859969996561142089244240854579883288707711090208182331645369466958869952492614154759538627155828038293067041407371167847494908480255592515843968388226250697062574913978693985126861382604895661907020280723797270618035548506625180191659927808600453788882448564435252081630110078855629130873683971558573459571270975313217838418565425880276733433625315820412959033139775357794912110336300013721558535860633768553802769159245580145761237749008797833369777011240937622768430490038633972037082624742357999363690744976765654476949320629360673493106835404323889565001018474063227188059775063576861453931538518314493953666539353356292192609973196736112111831701622027299546928494557525457875064994212692726000558286722479705621498891100043631400908863009385408406707901651186894578773211025661988117394522786742588604682883548741034323363295867335823317005036547293266667406751975398961603190585672329926890418843279677927758330553414319343409634583659874551154652219958380277413631369795967954539521347823828442856999222355829550637867715549793229232666681134119449144894521699934734094878325913096224806666620142578945624115302701998021592468337833005113708494786183353640742160121685256066950253822541992176111799577778352204397506983437731475551002598938133116947810171850936788945728585628845210438024132980982246424298635509868760352267897804366626095710781647139461544573486488402641292680621911180677367621961483299514812094371157795630553651265317570424279655554817414830847465894142278127152694314156400574383102037774692286234595431684780411045173736342384425488229052903640421775240108370607248927231631260899888491837444822503265832630903405609758875821502675004290532640029014235966238412663672394951990705358233111844213378527065807193637073572859657271900953339470174238897418005825894346084845110645809288704158126270500738084402227155077120309892604688219364290491129007686498796873948837238978387721049056953333180640495526847093816107372898564512924862334430194915405520748040484660878923125927138382316373734467104921725977050708102991799105911007815985884463362001091872862679542968551868182181865726212598603659339392854569466092437586943295464339221429215309070212007174447147207170098233698434575333804923504839418916811465527582301022408617441481969582459266297496988786494714955182190805283950014182509984825827196548711585951040899875327312180942855896769814416885794530719247145114081193266196142913526888032561506960552002338098429034913400888628358597858940959577805600873043047247165224141556946599290040025044872201993767234497514407988987529303679261363254613884015536975173244675857168658476334871311195676990529092202856068739262420940197343815164501202351206631367934776489970068351036183591535785081908114585877879947050743392633754024725229471211193794007554388932482493313573203555235012800942065635154993424326531467571834289816103289504216948477949022790512555550560952634440949629108610098698055350919039166278619226997577880128548953547374546298336472480923302123573037405071428024928696137075452417760129696928915256685325958389823730815694026050018761766332261946730172708771611479920627173761668538737396986853338668354910946594258446556096150435724597623837522232631662596356726047466793569299833496387971029949678823492271964389248031443634049035174416919204553477647867833327227357756225129249850613321370732456635067472360944702583874229013222858340352579041004708072863849947966671499520991002371162882641414759672858431670591903158351989563744834531609957088139044328018225064460982957425672655437041758093450348535113778214113619229796039394334749444680285094493043655274739509545577319664330766168421392978826656301513820193277385459488696432613824681164477253412572443670099753487287943311049879003623072646500454358050963583605983580099952572207898084056647471592367013600460754159904485794639382599621548537133588136112334787128935484521812129714796344757826625330058447717526581812380042587188913970791202166906093959956737140355347758888411090268286160389721363031653315723212451985322356654137505230769072095722269284674579943441675304555569579557328673443147336228818730149872553294955337093210415397082966014666189626206000609311838541887398672969240494121413198938354598060515924744388187256773864150397169460055438050396798775168042803213675401387234207895877452390858733882168564219900092945878587097579244811854315576359310576527002516206593547616095120482223327185616670416526835448571327815068493685642883561090476871342696349209888553581703351239704594871106161988496068951886283824333744205767543590029818824974577792520681581246382516205545207148942072827015469213910809241904215000115526892962151119840834731716940636926901459601139417562521835016242547270541421464931247749705472773844103430379087409522858499162550424412926793653882011703964246466408925841655052126651707619873885317100834956468673479638574894787271113845649035817668053024922601052182301929846624061400474445930658111287292685828053921923210451044005320153714992379109442993637624267252347607585861130914932365853291496419104622506860215201839512991351011094352615274884963392275217412338577090803518469321572580050923041631497981410982803645129353930389387913045368825151878458915129795210815539478312590261943580888050385495826047551330760706038979907440380994465459796255047214665287306480603256600964033655635077645430522192171636699780210782285276068910633938108813322228983880071328171962729834126295147819260922182826180652235082638845404970397215756517797815158952516035804946662445048595589478591217777398400129731779285152907713876331854418406307102042926040178538318256475971575181291596565133228877516402350134367809318953070840038501668516596199245630646095977120336522772168228991608242027056022315182257587009008843387159051551918877004699598860148368613780552151142630470448050194130502233399341607633229553692836427393928727733176371965251306562388087650642778505367103694763745679239784423653028325920258005477243953806201403102938088037394261044554175552445879752049196900483032491732999933251746667574870344755980051017801952996165929593509496927345313506483688308860389351658017208468978210427233386781908880152704835267173319878440310268717636048657560890456757500137133489465488095723307169401472774483978977690002584645921778684053000621786148284148458144717253261599903046671932708978793058145025253346099162444675077868871691793696308191528686318297964146553590011720089488188581517989661077781787405534331552575774089215116423992467928005308982916091489838780061725897152476558423860012444792479341004107139848917985090755774655582419946094022502001548389354744884354188670546442797273779660698185065418413252399517886473746676057377042090325322077281198784469025418827129371632526147034948666707915937323043932923364798327813797457821972702473182617800928239644320770975767563208134477403626727010711494175731627063365635419071566736006741350063476643804701681411603056935557000206529981364038766070166779204588279989065886449884588489848099723387686034989778988894475308902560847542199713986167776418100053576309997185103873161496769416075540550549796450357920932306808986536959170402896461193646109378677914066975422516445916631895760071894187764759989160030183490886116321011993997503871482738507214933815905665915163887341230633780739501606691684194861675699219822767946803858060805617012563589916824972762945965669036496295611992750876983314181273948557251223290493530818142164062244026179593432965931637273426010942897874401687648230577380744327232119255619058798894932850157420786300602808804157292629629335698884619792476960921333238996575132033241345815035658811659117970137972650974229687134859134037725617763091646239764522663823112051900553272850316272835060846963521572778775608389398526557513666332229288973742094003517443610525381267734127240628034007151513396205672667695519134741160483793745006437475255944055855596378201596411322157492915723298412208090445074188976523627527466897741959637035583883067697284387276261450950539126354898982962594210517934584262065100853949558943372968580261002884740592171871855671603250725692079031949281151821335024313002656785396238578760646944710507832258868582756935099061415788036864626184026869431134666321002105482122789894175657605991184956985090018765209737770894303557018467024230732382142032942504456700622195167592659505573783541821602832104118107691407622233230921635660470755460882770349360840243388175398329134073469564824304637375438223706303447005452724992189905985832714069442818185967496028675463948729433621348898398375261021499542291534822847323599997303752195177476506921962472103995467376344283367970140078388165182435374553372075614865904952863599561913372860270753287649405373423114016227825766901633293182867662239114619044119000688028922694453644866324965461793657223935994848360421714441696020754250178302553610918747625940922669797372717924092259834030551754535572801978685491643173634985256863985308029674680703760152864979610647282118810384111260568247193801822493585192470255925660241993025583593356414819593447317680134729193491322044836969491377780142793804550404846023453947012272562297231724336568986674496940896231450210198748782215423841258493404004482085932674857424269046415778217845997993636589251056195728440996205796337154207911754438887862486944058211929945526438214511102050946160724401172036568172132732321434847526914729832194240808125987617897614923448452876236567750438358989266836153836660875912330882534753193110323859774722264701490339326574720752474272756485039969871433860970140099375081242891589892084856403322231784621185039248627809610343203054230419289934242798030957838308719415944696925161215358497709601529613945688966068987902663746877581514646471989392142453892161518479509544076230368615067646440639900174655944529768735685207739077457739422921560568087833634638953370148848063382369139328098801597464640153594763096268621647106995473529266165840259089415522977749915406153537117096103895745617799040783615372993790967903818453175084563774917574660191277422927962655640400695863385879270101346866948085281999861147400596267009784086618033121353833180934529753720143654536438144417879454782151707889498809901824544937748629492214127217780661626436727532753509466460801025959828255053311833015190890824683580373980824275273046069170307655192286092424704221998670521827576095409005058669125050526796151896545501833233459149954364196352040401276171609561411512059755134372074485283868613071007623458441802010758368491475493449174699915950578953659995334365965955634502178393755669735731043908200101768511035178137000252370123224336635347882371842423758948482702313506924751076844498017658181448487044109061841080002845376071452731962620977820019092281274747798626414061987390068312272996166918578771844616814107180249435184350961562263226120018425404482032208826530128752382374543435518277657145461069489122994366947429920419819087536942758526595051211636405614769281002144707918523470509367806319625660179771659353135681934843672288127149420227730204401824236159203884508543791695378123163812645469677503788789624934436741801704925556299807551291181954608337729267863222539943395326562588359877286821344387560052799909324312584932155907213997889275286429491063965696545209778294630668468249637995196358488349938397126332770263358110382781964506768197524035883862240542211366655141876767649035159019712036253962054515521018275969358585221139146563203558956933898268376420432993303244557233372761882870377859186839538442580945581695900434431705226140050445327151604767029478987372618031007014699145759150244526093966771768088816627522156510990878357131617620464514700463640447946781495386826211396742045657318031550199675145027374384521974465246131959115994485107055720195254990191396981035748806181086662654887233149685507837083247009370986676738528895734076362163119018637992752894361344795601800744652797469395545491849873420235555325443658991430917172146002798920368720669706196848620898924763281340422375208243389641034904391343051227132364371133100189927727500961971426641189992532409405520680745078816663388571176060747945124865036742583727888222433573477642628919556792082929598436371476066351921864652256670744174374144321191496676187098025104192712759657329678408601184721938372152268259599915534996150694567560622113999576556284584621465468406634326670789758675761690160814717739550861591797034632744993461358180389930580351604056436459534130232853844556045737469846767514208681930699962175767462898595151157007152882232172939997799137026758969179109600583564488869973143797737871660574208397371622814771690261722744908790246050535457531652815096176227272762847620957694161969802038222423876614692163146980279717166641005689715646021624474801962839980276231254149822755043312608698949123685733896192800674024709921294794576703976856398552350199832936555636383933977865568631790647553729843039770431830442144213199517240416153080468954019878047090705506013611588542429951197677003067245208761668152465683293540558571432992633432550328407422908927981259538273647472628252439861023267831936697493189694231685680961986226948523103736184488559992556790928824263529355731114128573595064569436175181593333549628083341021906862258352087681538257769244245685247139768197314429899684816936415985581885137734117930272167138219846011892896056699236117245967936147425840622897911149826830198314619019952073616884026523634083180174311691670374291088972467593188646921761984498503237193887992918379747961906682974947694737076686762652864390364293341905122053203029193620308264556702558704349865820626184992458799371402064576268391256225462567120515722478236144400732613998665601117964339379398405174736894848915760730270909601317209681335550076340382028466935534249807029851323992928836251428046560693247717293929426082877722324792761200645336323103840793635247620073329634904265049198699051240318257655672941597486323205853054728533209666087825942816138335831370830191907031557580185019837368400723466650354586157509765741179990273346757081625251678442190820701303429011422313793783891420668732047939822654450164538145703985270788173410512525191038395638498461900283179113997099601323878117034002883508913359747172363730028845715941817745997184000396795288021117849739875369090262994003488321537768769411543546132016610065228773309448233255830817566738463255508388869318275386189350301791522478314419529525738022820018070365516120512080913728211724902363211167247188262321590424690296495839269722460452151115570504228594686247905109920786960707935652638329383316284725378947673649583350099856746111513008663441830381288258422167229943087293770892373788724023663689688092881598586064877586871085370822181908883331830629435177524582704865763740120737450416681247739332050566117664968240227356979801096944291985378972829513786348340320645344060136073375724587831341727316394936329659883345511139550976690323631866228371299630850496603962689573783324829669955448719968743552439709480258637311078085262490466131926517893889377337154524531413176793127217339761700703949286448107623750536621265747877864356085816838485978976548455430422631791265855673401071678854982387919404287467503617673514244403947553707180103931104076642241653344083584823060706550004788565819358210452526258825533314258641138250349716123599995457711768036576417270032058107207067885958889001698095726580206854368049038591579225754303476432273499900888960506816013164331691174916923767673999731535240548606844666049862546858495332390988208057492979617339166033169548727904631980702538881010856847243291710069696949478157907651462085525630667572081175714780295995436567027132739393346578369124814199733850087054469792268117568996083219231963021645714445667362313152168679244714764632218836461031831282538170318074460738129580962389692902126091399026561070970189119316347531217396689491723090805672362586446428367428912162932118113661038772182466793126650493045709909398030751979577265557018247313927050933157641141233762871643178241176623369019763441674682367311290644649940202365263614440641902834228472482370528125904572573437046000639737045343683170648860867982410780192553028747698579529661190307150983957080908566974333837078638218063046120552638946509044931491152873072907746999985840497797867748920023460759006365915954794877691882397714250547528754363890832697718094101402203792431703308586012964954252759818145107769937934323614802782315080062494240082095345147897021802088744079311559154204815656982377063857102241133313534078088435856902564257801535786236816332677079003164716785043384491666703421783251296466371158974352941912045030408652544359977712087755282637583765597874399049714301514311657529108682553520699864715016541652428157268772861677070489408452588906759339690148391170569133390898751055914465025461327227264686913737456919292047155647296214854709843993665140963984397235358924880979266183648166402673048020266016302209983724130866239872609284787641813912609334157417218018871850086844705641496394378145307189454459473256822249965607075951173952192665042891536293051153792244681871373097154470792218814867831296324183218409484870464300338568441879189029711166129389361004643740268522373057273368889622753980612342937065103750146352144894998880015802587149933977171157095523619323311807661512776520206730785827223451325768059658341191828029167078244718359510347920366315627039058662391952759389155529881157513027626945803141233221446031993992262932463354765108482204753780541601816944334201164829162983038984469380490390278363554227363540690175351648918871268462264203567618394765362340628008529144555133076988032722546956157837683428038950591017138271579799300908580787522619014691228277082076519060265185948656715003069675353919224103015160509661252166287273693227206970610029105145255527258239809192402415379094767650624778018781340105443258467448108886176601290872082601370154768447310774749221060908264947132653617299053779098302149533239213323386066990334028602445216970656234250813502390829504040336439471632849082257291228662594262857518239665523461507042965978196804784795189162646476519444676087530791759744392124499115335925566506867396002145109154503854558661193257559946588947863073760498926769372064171117741474014146951353312461249942208972500221183366860838131989213580003054175412670953903015451419669478209655205306000112713222269206107569236682769864037266893715502800887773827145118905263207728850457296919306346320326144818728794792374925679948157322969368273091991860351858384196270602290336752891778149493116229264334715916187353409736275310987285311401286918756761693005931541649311629784519178819942497797150706585651161529598523879567024299908904071217475968937044291384219884419275821193031734926572066929587034663206747616277781807961780776089094197638947266387336292692899361971235796179813044480752858804081756543716638459851668572133079353359500160973187421656102975230902942066362094936507508749437005438115254530208557356130350144356360241042245551402140251380146734533313562868639595670431955235646567313852823707432805597858881256024494041300027265434240064199880601252524961398423247923745274990273233179148061788679992707335562583175819545974232297917213576854750909327428619456135013771170058975825500979663518599506587239127258644662389905318005239062592710121136085548557772787131846661745588276495617711000970210413353969042032160028267079102019212701350651520078946136291376328223904879728998660870664429902081411138761841698829218367163292581928015695736624744723669105928031925994605632177116215732349154553568834587908385057668240546758234755381205098989958034637874197856789555237885455990405221791436515962957934322363251661455695816102935133626162616277096741597102253808321436067819698349461728312325261997622277132470151901570071870021964169595841974337186228506316160909369917602480925853730464361881202310013147892628531709452869706260053621325377175492515843313424391899229350342141121325681283735272175450956224396446516351537493084773133259653504654731722830625230272234964379697978765324975429042848185393201527236346961497411222201458078897526271854101916591247702982328176805184277395950734116194090257197370668775044793705299010305924874742593022780849248577255911948030874322784244864327393527730237751149950062871513227928718797866220099288927266246968010308010957153545829871849902880659695000321071848484990819678845269632767458596671042585335914852519313029222915263402945895574563199039444617124012505145949792943272915983875213116346626132031152365911955939532593220645409091486842722120871061335825099478613692293780151176718906774089656283481059943023466971711774113660757420501155651229740618302187881248847148005740354078925669640530146435128947250004439412806728567525731206212814710434134572080829000952819232317340005799562613235255884509974019076545490604001319835133946588288677845616777339371927073359263542050771698573086501953870615045805746753014340431906438553087424678871191864839543437686354590108638432217337948313064656041470465978941349219884106285412662823945675871264474349378743009498483789233466515648098010179549862606642528324660383555089653251410038463213623438439477010544703410429934829297386291631448956498631772445418878139312651049751013618837763052438343323287381114714415794738833944851453345979625856960106890548649073408633689619763058514004258817866850576150159541986712876887332706657045852821088599767115756904254299741871621617886348698924455341679213553537815454565926206506005161304167860007545388222832204022348628460697387625366704775662428575358924540171145552303822416373556084602210982930864204952930262693431944522704264475484083531007526137927871023295949387146703115677773086028341464443304987889499559716019490658605691236096211778410177007714541526248643413238270803668347114162087367911466110223804299883527873758022649503137817908294261111169574764517165573059320993682210727274747842249874518822618872123687794636260211662685312172936889763697016564333056969789331467905644400552318404748612274541291175066605550489446602168274558812079122244649468983658881959487502745682961120449820713588898632518469395541602550342224556640783092009979237267185367851743401586042187483368811824231781551522839550343500370655487567997541394217647178586202958347716645133167880933839410427657377018468399339068186775470663752505931936827390587474773066985242820346258214189535051272316362409492401844189491210083132636427903629059289315862177601874692688904821987165247525128812249738834745276438676682222330349541903341882690277058942559638483314271691314670510150086885153055786103267529934216373830773230576155110877403383529379148543176510756206302430532715648178754547802965338016134072891747671230853699850890389408617666294996179930947200740732782612907376846646331304462630659870465017971282689132631320328805580693087833557430715043984549865337898938553035884896540131236488499908266099275504368663740273921885437672113164929885279320049388656311961816368277589027292021201648619825233829343240574415716527550512427413843439537286995173408977736838621491967245060585530364664184061702158170472070870796151754987100739606235107314840478216239667226185976183565298270261929753957780053398782500358294408641452679457320670594689333326714154810008773143708471962726853807417259349921854314092017021456543649704855243243137591873179391003681922799468760300485173459176911134476962459795846696466506048487376564027611187072675529256322470883390118917718942050211285752567862509039697574476931886905711201876581869465561918309036246123386822839550299992597906207425750742647842274810212073086790229804386284892454634026892400793611934823291155257446700488652857023096949047815937422831211166139518066230805804676280696500556190914651423886403766331984789704305593081855857383052615420156063147748367878364875559850753611218896360381137884291212786423948055843258522446989042102252667460780231848732429960147964435435004133308956522973625319527376806785555088435526991678269507077940923090638685782249749217482728439108357625651105980410877161006348984449977085709812096054297479610148352822195856479962139874963800985967287184280731540974190866527808593475156062194081289029914781374526624602705765914788889451008054361913575245729460785682909299606507319941420428216495344180781215150368493224374113388997834673889017205566727969529024724806850909910058656967508426560711806368535572027804136133806177409468434639075470752682220098920348185150835319755489340528389648284420845704616822128927253649514244416610783750819679733165162694824573407729804672568795422013521271534734158518771851771568218140153464015606619072365145040391018278208578116999788766827940407159703451329594338162080888184691017171622292035202927163167425698882372999864480150768741813694229286463831486278839634411788326733336218049918995528240279512818564051019518778907896155105010233436780877439654990206609322137969974179592602395326611698985648280171873884598657147633134848563219424727143676237722534800214883459955840192110616880691917538174568652669864442489687866960953720378212775168448121937415262888925079197124300276136749172368803479846300310978111107631885134448788625067133067961198775869692865880962630535490820299293255951334971811281937607849142576773913186082095990242790514260685955224564663692707846730641985662830867557453946901081413560628117974592219762214758832997144786871664334745610368079918613531271305794549747108391417892523293435574496808769270858899258352150598670278129154246133289742663580054310729812562659937278763372994564669731100122265045757443374238975383416043092551277308451188676740336207897427857311133534594698395759068631211942246658242018940828723451869434587290662126382709760714721271376768346264080404095451084942532900573428274924058408336563870733924089902747899150534957641998164078164614314810826740811902532850219566345219926430624974555945637557306405081392319007278624696591190670031276260914857387538113115693838090052380239778178332654060279027320860618735501226864118095391505830048135658462754869606791239162983342636980428551228748220781202885515505495218157710748197148011133742298104589842021928463685430562132214882304330529005087712389163991796462820385556373367884692504394140523349097818909401181687202895489903365788878165857313155844390558379537649117490009713844675071482127562242265849745627123637846626273499826113870243455797777684483306877844777915751584865032718022369330452135596231657301526717013681980233395277517943456451533184491757358202761817005359504864915084804826035601662338521770517948628712782546110825983497368180109385166993126044558456963314915591901070393568276964551395177295792537895927953417527653354869547136414370612040607786849234301818937355541247156081712479189482333457042117563428821912331998105338170143284525545794409408313874945618824942461908218973126611097630327294165167571568067376836410231087920833783165425538687595790314153387917317943990172973293956354763895690295509201628921878875003449400340827599204048838669106089530328252012669553997852494304958237926702692665329216706378961552774145401396566593913060307096212883042436882775517634682564894276505559741254470173126461501646839445043561274365384080656187888738303011982872137894404913507923931038781327131870675579598813231176096237377078476584570873167172690285906179650145404318757356121953284376626317985662020046523385687135312021277116185834306649713141020661231998515144276252398269498903038294397240495763075760201660794455278590606823722732827743730704998771712983148672970954291601625441559306930851803610380430456853354642697237805286373958879205578352440424664808945502721803886094322182931729781198709010705433988468764345392141332597442405497904385255316151272001309849129370001850175589066005980176708853221672223019866949059473673413461224093517320026359517911090619163298950379237488804866946270861124518367827183115482530613821658818017439440001797686031235774956462069250609198121651404779089905992984082758291124114445973124026609585600736028599737523775433420222664389461635643333029814056541008279375062669514325167793084013794710115836064676005699398656550558282412367963736870858858985322986738410799406209931432505987195804839831668730930767748178105740961057555915062412593292055084570336141336759357622310884777250292399835343862742262218557727425893787790745793760262552854487797421436417309681494129065101345139378049290999892478118808322913242847126911297606217089730327247756702418388677343489295910817958915309640540333420808953118913705740229189309734550515913279372802325842469355394504960694667985206951244828247878376009231564282250844595133560447529728508067306152147982687768855518064944014945642880873578896787080576240809003171991787999605775571245294629301740879536816828975496937024084667258269423531483144219568216035048813681891846072620890012023680763210469877677220931830939125344737429517550324260138416784433691502625446869869110285681641559194638910124400514430213214796107805020436177192274969429343742633937160144002480137801517451540646417202774864278605510403449025123566915644493376614106867393545497631671940819719496853783724747726926269156617638497967111616589634538321785210683549429989907656081806524491997985692534560833513621087578354396171483127965872720659785130031854160043454530567903731264406038713823044984136585895244129195050590645061324032423165526088645438070640181591164501907207388171602394311522113184901506310910212064273803623119509148879780210867769866174970183833497600113475089202180489393201229616188249522422705471189486267625678643833246919685421254800019716567368428732304703904924836254271696322579408841825817062861971790549428988581849631351692209089269099280174342833613491261532263181554996627382428130109350016993887521124381519974372850004991669264908834891602467688053514703213482328010013807292131354919043689160282133394880892960356681758460876926132047189368503406595027949401742415294638054059288945752604892230837302149990062905821663670239796900713908395765000909417456424101361124195160391294198273212658925038268333150956839325032864886583549887845018424110466441843329729793264637582759827929135057989289722841909070249585200056299321974730131191851524418943251556911285752776340056751604178518247130291566210661999413537573893629082927533503795072271779644306523525158839732833717515524471216781854106125022813443963436751479985913546197273077368263269627522054520644075128109835827147937491047261837629362909694950058340877913203388898528918173339185116473926526438009576748753001499036498544390866176795604431183696495483210417437840723220807250140382832393749326721169555522076272037575261801587219000919590532078125906737580509890120984459108425317329668790154991484182737298816998072091586561336153602730719194087967119581833079339687849016813211177505834546572198053503419289003624564347786558109490822710408147346834680992052537324893673341274040045657759017654445099538506339272687580832023868086679039015154231314092453175408826525182918395139075539421373316588159054548690526398709621767461072246443498156040678739841042894339938783714807155276561813120555276415162294560864629198078514212178772687633470387641960104090599179452861924944465220546941444957145167681913309501015484088054694290465998726261281411601923884800224981285960514859153048831793572569080444227269394607410910114796353513312674219168388488091799253529610331385692438353930882619538487321462588650431817261647456349396651813669297758682584512176672866314722785479340362325972478851827338209568318853029173664322714812791811466318344436542208528345567227322171983933407863331968099188383599518000184107395479269844304619394140201550620664973515281611760582599424402674895245351052509740413392650973110426903382596978752143701041460816053635897536639532462725417419820358669701576758585285612084307425072547849705196841159106474793950235361232088408856097403211906162596609250171499168728734273545861354992932746744257563760056961930738174324373410384361535637346496357050173003433269755778189732366338609206637910543668565299065248401850941561902878479275248271379692626858421558862075955328930007904220286412229398905802549669293191263298672492852755364998267044436719748279869845408645388676897087926990750256773549633286064372942029815126050252903526384842675170668088862559371142986976457017944433640422343196979704719251800493136943735246121408405078509872213906694083129532925501139644159288590255136202770935662238894936082756032450751666508490090846698346504283671357259989004766441980094309093741204537570270852785413910555198198182243263124890156429439268933451177019529867828375996761629138587208407336856412053242480483329721690295701184953452278950379932502258587755310309139350083834928782171037211994199719408458682960476790247873814439035596019787026514587768601464004563437142980670506850561623633538122430161625875574577115749178509009939772643530058810167224230855676861905804773905820926756203966902075327791657791424314665606589385213020436174337071625774320680932081972519673181659090068957858054871409521366969869120632170798780688141242221332122665527055027831324708414236593485633149627946399052684288541823799239678124984629669604534261719845839740865227078069996358041180504316028626206314237637438558076095771431084710223408286410885139113960753691559148641681064275228696430706651630954916268666962054739015766451648610094691728067566640915345790320426779735888884362273017405824985437003039855672699786203325238828085323392898276478332254476378517827409609327589466267406650785472048162228730186006021890947311276709613650915849674783227357393965536658303671198062262901870446125880785720485245842531753143164557248730558650751338471666173395828460342981705344484729737263809121433144246264391186519826502780146994309889503402927518275437253655312910754693519683362266211574580615867394792543072365127080049141072919603671091705148376841177284913082312675535176729193093921810698680003453657004808949701351095516551016483402367581412918643998551380519117253321793313121594993734897332814826959752016716618920261798082867876906047166784466846709656581977635384276858889620640904784911509991515463695107009158495305515901358403010671385917234643950543544871785271122091618391584721206189126069482945869157930752069046655782607826131317438829211866955927310229808404702714893195267192244343274013169394045134234766491932032611899852741983777503804426162487453680705556886749331666660937907027940644719184005560494281333421782879721426579899288171391304923002731567559228476429340918650031434611006926679510227951163578865163318261937414656966202237766420006639438272085930596926176322611978603327188657087550978980105260634648673987162544731798227396667954351721112241206725351876129834570431221712852203191953388495165937103168449978098800486265996796519032020141615141160022342376186845267544652849687769302137702188725049850037705868937116570494250734376580183907309140673574958980612226098689577535710008316143361860969446550739148631915646542004993413990177691815857970560484804301173717224649171379474537374036295389563069180360954315910984902288044889517319131132930478709776257254892411362051829122276283217120973844062351284069868723519291980487786436936362861891990177425081004736864669163356839173133505344839910340285956643294892690830380058108109316083348773715249291351037568437735555487176118124463950917132413453824535422069230446849459482433972324241961205231100791148606274514499515674364730956456638622277507480352043074311444600616390128224663698866487874534483880763889475138404963320700593672747757423785124149474884755622828465118795868211524612683333406372001134513905699455293694316095338189040003106729634174441338850576407844255957944917376520091632271201098011860231768336833934068181543318412476334666361216755311863570958382637056461176890804965631596253820150044771862181451119690203123054879906476882377356428157364171137502892988378641028293693673990531509513101152472295082063719556947913243880311903788157683086117033184397414899014344670780498241116343178671440638954772344648710654980728686370545856380989164359282975243545493187051786735738663800023975989575368561241299055215051935366276954582760582915454615809834092217566177146416905013333278905831058275455790534606184306113326479313466060010525209128025350077714740839231715810462858434505669087772377869621760749453700421601875613521939496491188694899063276706495917913881206992876443975067158049034923728370460718165065155127993610002227178151820609677965326011964525711692610176350366653691761189689807867391671669903733365468948067578588817887425011386553427934890899262131884967467380268794896711872773697193441642071839214736460482169010991679722685004918099508640178690557425522954258781210440589157666132303283083860034051094961438090891244856134547883108017340176730052579121016709554460233369893273021454554573059361784834745492637417073762446474986721828218589315807390647697735298593750038314736219871881309534928472654328860414365828816658027521161447567612921711121039811140876565597042330893738049040593746512251046567937993218988223683549288891906652433420126147139693939990204389351935566071945655256101020541670255246130109217709742745244348594258239357662322916062137997655501607728285481657187496274896852381862306253639247017053588996641446653519075633442761360549817744606827703286631698771378004495339829386750900114458589711765552159165641504506019065629727313945005169471631656356516801111637946366730911730467893850889013736752731091434337502559962139453034659654774571436483169839940999891350403720920126697264971626079011916991910197946139193320054282789235481623232842146018721883086237681432012070303844470278708726802461192131250562238914708967105041274054957161706609080851028483456169094977855766807899642798784586797859147136488992889815717639383620280392741951825725508041399096308712569582164105709282588187358848431036250588644443925615908154378704017002720680618013803956714809691348095384018335316570667157906453109059664776672805348472436694034748418741538733979231152825110413977717559747930767769878365753681638203709498999420295471171272047453626856417831803254993814618743912325016716791716560783381382621672592231841614682138092519993978772991669702642595409898019504197385029053798495347413063428820399529747824791896134675248686376006014073738097027046955490235636141729589143307880029886705203886482912478269550433534872169420199382429000128432907171512472775296283908618722777069765414081497674914393996842704798660954371774978786124577836385300398607526582754278122081163151301256458990808384009706658673250852241460629999700293106032926504656910118700594207455498176181433079450080201420505031966526261155092484995366417669595747220077622550961143256204604605199256070583987949305381066518408293137848623725174562051433778693862350676304774950695451220717397380178168396643190959156505322502719214987072935686975561664036512344847462915145528597696659826372970497518489772174316163933834590622862121633892492214064032899111844609956578198973122949286766409803279833141422656775682725410544172610750243427081440730839148222680498060429017799504171596341851559862693040192651738732922422465438506921997000874673607972912704066753899248756556205232280354818822336960118573490524413416871992333210815860455462617358702145724553672512601759804749686491644470637005061139951666080760455895072268853383464866663657391528569745893792819613058527760861768552310890940785134709867463021641674911134455901160782689705996585989905058168178276890881037741040316675893141149063417708505849501604216275106113490302105218467491479196096749387192826749710540325316125249963330531839430251484942304478569464135602249650910152092507240278967773938754063501849469371043007398990445330722630339263529603243323736012475534090788920748419868260445390824597330094859346795807685462217730933435777200340855480003500208307625849282036622676656609902790121201721093078575705985410192575879139745098375756742450996174843064587591662565350355156167582022771062881233922777295138437922946921157219840175928298386326641171537718884761922401156774462771530360133578301368790633761441180059232518730744425596527811835712162873835261936637159906396555113327466999616257995591169253892096576786310558003693974656068902887647908503181214208687052313592873498515878734246623815155598876095052757635059127975942330470034917816078561313218752760231636653356080623597507013891155298750242696522320111928633972154680667759323766717788541307976717197271508972150820257770965804466810427533491851688502681695962016224835932029551938550918693462636423163252263612411020660215200732764953676259220937305918170404896580223820882300332381092842767058116842369306600962377280545399603694119256933749308310573186218255011445498253091912333195032151742767074041346639272082431678848301655595548632109454028094073844644562211466932165818262758923414576163176374555575561257647177567317340708775780719788091350785344567506208588792673729413259975601839052720110026353809554935274209997827690952135406504864238236060010309722344173995232646513154625134719428941432681480183225473543526620928764286821858374169685693270086345782003639158103459042164524499336012983842477246409663734184697816057908487369767563792791418382834759667565576161894988371178957385284748396376818758670081839582325429960521583220718013039398006429037055420138092454586654765633971010404945482823160029010500232148807103726118134969875911981297213283366786798230264902930632290272181444907165400851477753201381449769777800242750275866108791694263784449785970703279158421411666582471718619516160363088347365524131872273201366344895482284199472497970607905036908312502734840289625427142644320105717357042316372082773061149960625350658092320378801342958029784814001807613796847235603985905458296893187069640642019227433118307941264010313894519392867857910497969809196565955930646887315460256758620256548607834543658291650376849045251939781611040826189773044663030997255138193450768531470297370551827984997128640777534296136527009295126955385204335796668651582299406585857180771265976473103512375642937336980159331710001000715229987187355081538457904746716085243727848832807512404442111489035174973396673857196790041147457851072604303508009905689137591841641795306130246447994320943147997457204624986462094523793197835547110508565045456032108955650732064065379738971896278404877938924918464003321293371818231837351041321346329225340287924029548891186738630480541858571916895280629209863367601970180698858279235397638545698246846739346659848379821312586776742625221181347217789880124670962380204116871951935237971002816074624925219699643846817207829988683312244580522629299510763334551306017113279458432157913424186582392902619814403844779528278765030393385602939488141229306535911817246428117126227528165476326002289386968449972697153122513513975506240948813315406814530847316885056765723962315834331845755803901854644393979376148377427282080198446695394723361525107573546507955016457277404534545014164250942886656251478211493411589152937260186997288292030018274181400613712798230551979530156592206142872932943684188965446120243319380898660052735198796219285093083937423714785341622717254299407728743268043797899318199107276684996282589182839407509937041162863129634784797783960275521927483441317151150843622590718251965921574367817794476471194644947381172187296251635286871368983236082799743184205852845260575374267267057644645824456857508588078032759238973855419723927637759371353955371064321068480794471734818433150448044691686911070993436468387175089077244004172411625979574631268927027489267779478289425332129798718335813350106869982872962976975294132460285131737724046627158135843684714935521116973268634841393799436183433953714293234483474939462005069806895031616280080815121227811138376509508426985180123559274717538648398571333194602312825377534266993676434364909338301429690363010798086877926571110053531278659067200924269890702079963575673259026367661881950140871722845616361874654168331853023292637891541050799386268459180975585178088403216414566358854015547938393848125693060251683166112084506198219033481120298529948995378805369222584716139140288589499729180449675755936129934207084029036673469025014570818190582009593598414386524278228421312983882086716665898022927072962020828469305788807617747355263603294414806783389194925542545008648638149549756303531345306635244823784168777868857210073517431401439988782173660073971236111130632823907556170332300087208672540681435413272413944743233718144916912125615885564302844726548872873790753179523258480725651190292183818588543878004086919814360905258903748869287937049908107484026519502553811661257232536538856487755899977837523659333316771763263754376798662582436580755739398975302996440490761264615609535310847364870349726540551916909780666533395283572968981876750193458277957244410746166512857851576914410896164189213843760104727829216278023609426633825459568132119431832140317383839393976260905356395804779441331384705752155054178264690972804750846217262362668096248739980331196630473261629752638681325747005836549184098685532605387904404757519086944967430811217851094380029632192419840560654057689402145428350212002687660214893884103022146256710462305973937336519892990880944536470389278714918748986095539181336769583242375271089931799937755709017292327450188608675803635957602416462057122930247368586004121529099248376410423062723592163540031878057401730905853722787225751891072927833588057826803029983181866818065809035108080747642778001604814512452538865523101655863079663638025845902339861380023891393710658940531740500988599483792988312655779943838258603034213113394560865348307908372513173711702896238793663815804715042057445297068206528481809066040721370530050136663666211755842784082411643966727969486664540797233646382528146965042079722824822012975194297789672606533762323070404029065102210219643181291984422678538289387016607600537322174709756337523277039488108186083775058937816633989162403385655847921887377660759107813168100682275807849858123923079866782370917989070349958627884586266152534268682445037487572988289555915661819801437321166077777357013168920163333694108059016238085892599394568196251540234720304715454420296612554856318301345958694699327399776111033637323309615024904739165701541399399468322891604456111229984746118808227203945618882609665887913009893210781774779379598042470783859575488117585326901397060503272586976829068793815834358863533788001738753582276335731273960997359508587624427504597240267991956148432432728140359402935806894426186093738166198790635394721932817686552577726826836577461705488027457791104403817381324890078157328043454237807635136707203140344959128949474385566627271224518797494089675057110097129067533836070800745802992854791923460750594509390995330786285697437162890846573483757660894506983977864598163499600818866413334124945550438054679861225831090401235297828609982203064875872928419819325498537197288441462519419647612661049553331893042907082647705507608911402733845868622151865982260351739563654115303084098651141473719303201854328603284554059563622802881623750100683393084237290020027828905829283902348042251624467101211536550566831329782201056379580311898921461487104657001184368581631119101955503513549473137042139608607596043408127727204644056868323949113585043997566350918116925448445752102627530645932688355690806291387398239457724505860498866999772189751822016160610954246981824842225322496187999083615182232828734872818793709944477213862481166703124711466753902222914262460290267556963778189119894085352724239674218796032547062735556968136019227599617837729775836263409358756394164136198504613447891248643968791566850167281586057737045308603337521117196673265189013810930441565363845153008134264819534652741440268780733853272595366366743665426782762623699104330566866202187736816924530886488101225833554785132695683204644777910441501018836733278989114869832248955803386504481921902868277119192656851214835636520219314499554058587759380493786312147853429702519949530784512411897183865311605102732576361602791858382521137540077970725371507821905696203353725707006139635004548350669105157765415920619096015185047381039248047827457338994859564213891441691798241638320439758860050538898568188194985898169789688154985891218831037343379501614649108279742715947785328432942337546953651891266562235992347240696208769332076141289267422937403196359681985658924424144811059188245055314246990389228454666902773151145589415449167574988358232452015797239360152931689541278544232941083454193211636354042445918800234398087954483734240198417965357003502225861627993715184191119915523523319690581152845739311243475742347992392985939176172997715665199526144823963386978391232828986076276456083995902480815723636519838999910156640349856419795021519441799967619278621930800575647019068071046391404640734687985215104119763331223756758984872009013881157959282736806016047530795545049294904204548459061905631810106214742015517476764329622785265075094780487457895229696356795049834598277083646595725830889642286301829556325193953525832784068901105499945999829213886416938300050386793318721385271592118584669600858912671910670806907922413433680944053202603364602948359275507485535171389125532777240936348297224892869858020065808814766639630003509819275163087150218737294698088632653937816037712942436007535844115049781632568299720858514970365842583763793129239883070085916831510649581386871776506542056057790061438996297313814850129456773089309431740433573075871418300177921577380236088846300612942976315476318746877251361432088921108632221758373957179031464117353399049166195802497342667156838213262153173821964807251969655154444136766771614050156784289114459828958885903160101151543303992669852129669166042172662865151414072954811554652450369787733917108106161846034923026126045244582823834842128553775328541150608979155113643068615291420674579178749993573526601863127638593071572667163784546957131479354191829700939922066551533891353597614240625074559000654168745149001525618647673730447802823190541778078920509933237702026229985490240537995981708010660351704811166833919124581262535962831600194072587106600251837181015929238818296239596083316422077724129532407027253011949025680320940371550927342292899216389537011232050049239616944529903898921933739798353735505794698941700756393173036772341524958975987827678257152279697817836606256108953270922674743086323275400458646406005720154939782554827633123766202011067197675692480406384474823185937281576545565433763246041875377089582829231908623060819588511971504352577552931455388248196197684205424921029672619754938236195104785804600857670300642376798008943640938225421882603949588292904456098095336532558282165873764165416821459171047534499694484976286975648921409088567508658651150653789499748759797381052659697052395120135190100374932538480062985620827851994670929754422588938448687987406269768539723499302358767657119602606509310477981051715735979327296115207909720905521070045087731310142867109841617583985408005338350391792952588228279116751513797499175398073955737914387646646526009180133578171217103231823612399733777977231043513966259973389707675617009959966013304614719237377482169617648816727663440381477880127985777474154026211082892026551086882373819630345270815646365106860809109446610072876366887377382172956093290337137637295103987527955590718750418308574773884872516724676478218548993013924920133483490339185073944511268298640387224459903589748096687136304783771582009490618810153275988254693571714806809503430895440709980223959805247887270077605602811743164811065774316720769738502116753101358329897898049136998599982613491219291290721814882181520475502219760298150289595269004161761755632299971067318913644576550029568268271069801314500972395810066659625100352755647592532899435941638969751753405475707252754763275389213623348865252986669628623256365526042979419042324491110011002989150663842264303620993683766159246951448458701197005167548974999519393993817153190361942075418418772279380191683592758750412797228188440846269061388312845788324338408044629786584076875586536730931545439921470039082072184200033443380732855320560033864940005220470905282698718301424879375033679066597021401279373162841848861981385566266900854330409350231297703413637875820311559171562544940532773106668007455562710407224863517620647075467137847333092974279217033143507641952329177115200912416532603509426632743119718099848690182893542555331040095452784502522302869312637878550465139161056484964750547818138430978856258189661736848924846804579640064036621234061339772922891262530887537693581001991291079934339568740665754224590299355109452178035590027925784555000198534575622869532149126298801882298502561319728554932996003056389862744693074946613194964936262803575226183508786578346079286668620893736884143819351070403556225952024937958058269526465714804342424521996404339296418166080193803207142896862241499386583024444798168771087966653401173237803910355796671353497158173203557007173276276215479918636633392704345376403424823398300270644013917752547515084029213867621582247101613623863410976531946370514310834616513172684545479623707191979354908386237603799907534941353069383479437621691454834167585249539907233853917677419126011500889693743351344867621656667970274403344872597046727351840056105122448421222872079976511388745241568002712808356321884146327247055372832130505171390445649109738931338797972493931550880552856523448473643277596877770249251342163062594827649675189237758390393276515177431162724423295092293345133058226387807847993019281569206009394047405042502512088519999889996238980743346248665744775783374876921054715179001690012208047747079459396008603221871433402803383379070682809985510595942897224732650266717316655409598738341783827619640418686634297171003018269569761856944988922307637617016509432555957965744780749384644513362967841681555473002785276002299039680423877103443057808077189510129873641257533740683639905713778189336371894003908213892482023463439825058539890252804321614004352191165104870102634989645254617694504442249718062626055100279259115218143241419563063855180349202017615916608822713308193086940489879050916152780297544245273446892991304110458730658354546934899395989596843023173642585878892237871584812824126665187245206567146204989787323502088721387713213403026209001384529963601279669858793562424831288039550124516067782632723636063177723180542666024585557173237679725025296062441523596638422309254897930329119227702511589898400553385426361340797151018958795188661817473547100776358283774605476422575057820828495874923148291676826404210176586602145760272787277706527267301270725093598042448926978233914975611634942852884692990250307835828031701930281310895498167378996828369975719031108409825180049883664892185534122739505024682150789314568634763955935694892271844065064381952200159748734498091099928672810385544199561657951945933058835764972657797880030661031873258131112098813824137173385871475175484484873411439998859546685797885784193155318009018264103108859257725565296239654811269943511599712735159704904909427275162960687192884064193162073502988595222648022016215310883954517837371645369821456405956858634236256100228198839274597330406000618132455180441324379141090916197787169994227476658128101874578101048933650955745806830351112198293788208666103055491403073211598403399399616392298650709101543419427476997266716236684473381424860895409618061911222615863854397846743171312782711151663902996986072145958646946837652615743639221338001563790867350607141841754142979272875107566524592222451048663470202273933319305670888430308617744275086184009693298682513895130806337101758556842926717561219888391185415902195945694568886920875637450034905447984776995164893530635366340947407442595285216803585013942274396795067436303845195736319365022337193629410499989297859516778054408544011246353519636802997507265855846608260662913562936646450006667520274591162610779166357452143057835616254537576060389729351658178820484699235925447690494216095606582422923812113018736990675925608522886191489761434850479861264325856931382084163737385255589699586395445312766409177417139148124560463250787999104626350042353980595582182534926979960116906984757486592554658427635059583689075597471763775423603082961013907985660143659099715358089446431341683712921033096676987148175185840290555105749996151159228682687545637490166383445252829166551100075058012583621960456207290636787932341744803226801308778678367372599556151310176899480484717885237702403106928337669621381243157698100809904323221068682585261857878268605627247090922046553356513313888506864598392382653447154608763314659784604768609560734880672784663172050184165358009745517949116686138667486206991608173640313619030067133959051785927671686799109933506411029993463324828732096889175056533135818476030393856038187750360548535230818913171785331363160720329455745122613582068679695755657157627312100271516179433636495413785126289050337865338986381945251737673886508056644024029243449781065085853930237501116425789224670772894313063711503376763399314235417419998188377002898202192187110154873273565045688074104205821784826901883397752605825233843291870456480422971940734190076255892364876565309825402219018065475351134947416230716007730950146523122522477724708635881379906082791444779996901357428630356354099149111903159078337020002813285885490310777340134142205530732779706627846438195066288985911596244730311544685678168903874274521161195124868335821132602594659030838237538533785224923067475102781375353002260121238908964858170180123586949668129287011669821022649757393342165001911405419458002693361987588016041291461287651847257893798251552190357871293999945819749551105350168526487344062166799216287448637541873374063892292053938860517279570639392062211214443780707492403505299810553515625669312868948412102936042504177245563289247350491148569807515761320332370080396850729421551689720311842465914750311696843382657748089228904410340111525004929967150930868850984405331102432456213015750075073013807654850380585131901799532575582671137684629769582003588785044350841020779814854214831237561358463527212011385480880888085710338303191713205113718185601125088089926270921208464582428630274586764909530768361021724689385613985158995900953511905727780008227808722235203201149643835070539276272410628231891165318905548886024352080215621574157070144326835751144183246740440065579331182064896224016788333461533921374932461934587758071225723565114818384238710871541768658236991356526983102013510816218667631750869458420550441371809703409256673592751219990723194874364241451644760188238674608087627981039752299343896326088782585022895964896738947682029363952181864062487063755665780241835263037567631585261508689881560391323026382558803411783842755045941740173784956408361748720529887194755179219552988255892092970357604973988273549485857575504011605561141968442452696147288777078524250091152506273968086928573683392190068147500795265139808945652398315598491814672754372476648570093488688205092524524732849671943634677040270318610685645645203537619297266597097458961942715241823422200455491927338534489853756797241931623457591550978892309687297454389354382630383290058943725682968017837256766211219681467922783622036166540340699861711891061582768128705290881278982925919156380306274152427646091535890124997279985115202237429841825823611874223629332373164382020001908029494969946872190116864279861499553954506469974606922713649254291680069998069716628879382422013936515296329516546774600681364039940537142786826837680300492558166460159354150381976312757245770953135380374226209633541877200107766807794213260545234564464589248904131623878016741537412261590741116919212367496035947027502727337195522896303295263748046203660799411843142474320577580667497746866299725098699599422394825800140504499257124119237174234509925280547626505931317987855015537067573252351050094316968754405766430179548496965150663826818290315178805914649395501764947055876914048208941050999242372351235521314620807804489675723455992698003327096486756102518886893459514907249233324750989661325845205579614900417031567617161544391159844284965870432071734283765153817310420540222477168689400434330397914593470740170839457828576682503980229517546658144496845061430617115636290600679798253927370198669388394384260215820297173806458917911325650808956910699598419215236484272969799184445018212816534045990200732174058765829510295402210030668021804631099250882888993284642916816349942757894586337404725401139781888732763577814211995277304167357838189954509048084327854430276729694260551498632597927554767868401326974872459795181245328808689004187408813085900663673204066139827806160540959095217094754265746068181171430343232153983457898427332552217257178681817496229482250126031955154789990144744191254793780969481048087746253849724823688738818111450841965638126082521726308597443073143794360528060885564307782325534772050021756389713337000426730755746408961649931832374580236879601057392678545570079415048761397982446671027190147897446404496625587227528905223467702651186501960322939285183734625971675135538350656214223057286347251933189456859955549777708389768254833287636576394358206865853285170094832588932582868160265313595029492852500215925281289418557489194000796061846890167089272180729181931432879780607380034320225178018609662396930183811036760909147385883703566582336935710063472822928819694783944367798724188374050574999845183132525567094779621487041038503414274556687964288636513713436610517565134983275826363418381309026126168790581137157482695816702685379586465920919293962747721593018219443168267758140403581034620077886908416968877160597496425696248770237526386254590829050006596792927412640118196944018816377014895335063613001258066608194962403948220562408062622686039130737217012081454373975597805749641337501305954856505741328744816279742393380101328510602564221125168558378790017969573827138268165701838814830349283244626347911577370771925695986726619635067342571604551798302778888989979762652760998795131325626211184396966630646303613516317031422315813297480463661789264925449914520362228365286594555083064233555003326682049298482438375065219246064314097386078352966961824174550194264265681666346800103140257830787706646582823017754491004184668733099594421529621006145627643486416849932898094060157908090112072484310227690249400283538088303245908367041171236490021280877158151146386315143818089406664442522601825197793168274065920518187972728193068444748769005424464501302883531512509402957821543428773224062467292981861319986896509843905564950618225356331168640487432915525292695448070974681486161434753411463498011655050130712624815245886426049570812314520195536089600982626179485260738573623133000517868372197496356130226911964618994293707496535197659334825181617202629466892102092881428739871967777346167288025885995188260028978978887594401606168432762443558455508007666051452177838865059046990845527680273117060982730007584165888214250591934509178915962534753690561307257680913175533330227393214794566092834768305487952315066736669038451020075969386263599476318302570634944035638854835722421588573818758607543517057794281575778945540003266809542497147733461747725748822013906811911948267163448405995896729781017451194486805827298609107612570202459617459472013120170936913581525980258662603467651142878300142794312850106412981518517358509984019618638252944866021466785958060888025717984125762417787566757894896097280176302850756940922010976610365884174440226919767964018885619819034923187100793402394230661242282637233231458893403820127776316490247209884853968274329157711932144271426904089280480111311734015139821349209420421919408566398210087991966217192349071792417967338316173519095148445507158913832675997726552465756897048310848220654331574608991423104107371551651195099073286482184897749010319030634758461907728266328084427985071969559175194947341479692058749551075825462847952444402258239854063855063005965147404702395848571161484095564879765985995639886896673402545468513863079424618529139646024002761505839562255868483787881393476430596547081198700716678762991894976841936175133124022162882540285467342658504038611283001881200290216361127991829056394264553686080013987571497203375930657457520066382148381515811719816529141008818105123150322406739877759811429294549174395568910760453717334599508410364971518933997354283211935657457244905662559678045039131392021118101236731555264094401498515063075809355242198132105984669629300267298233475489978339621562196436731950826445565654580823632309838003722607442706150938544540240347753362873115153693369376895068645965790795369983533654423788226133618913090966835260279186787757422193571007473282670949597076465708146443586551024293794959232331397778001602890981480159184352497145414354299235557198066029978713744965343657240403700517661044602872384591753348922541914742593339535643172214101603956267655007536152768990742711274330919214586503509401624211479855661382422212318498161148773605534300574618740075336543266717846217211622702703196318124924394304709591967926795913247978789684095240687867616604390385076510805866460156461218256561736124387142794001413990620358811579949860080417681509738566555584792409723561273580829377076485842045379642310961514631565053315720749051195202140852104262849500685171211114087035921681149044507035338180647879794736091578376191104654779227574752236284519825572153273808242329331718388134437502187404328360030663266962073049040130158080958075629357193488829533034351282381880611421212521045614666768339703748979550029243523825217774952004448417657923456140745201293463518160284720343747068097711887580306245327360121925328067894413066694125441234188828583090509138991702294883649970556937976917484436398830842919465129323707123340618837413600739917060334377350390557258979412487119434033959799398939816848155047380039511344235877522184539852655709348740560108812273460720458993860016915699521579578507947986279063057276382158254264318638223732261451997666383616201232985559247104000337647491931497400340555607958937850134408937391808294995465126763781402333741293776443370359555045438609700387194979298868173015231108514735876336812093553672462054756488664655850435985200990067830145927208217763792346064362711751750176583016695909682718716579975718136138538755551721810053893447990014358037937672430819782654867060445509297921268359025426608975283595623629370987700714537421898350068412160824584837846554949478825400794029566003955023472802765126323073346354778839449163300116782322048970235734608948236130302234895766205818786454891528980379688354204775625269139843616296486052307068135594985835550500309745510514488795764523067014383890447858515216446216787433525990124932325608755723324337391433042415783710462079029717275157295207359823699961140433573786190437743484182946349318262590967203632086448959076906291468416535657161777777841506188080145277430550725623948041362248236752790554923343206807699623221142355276307495399684184813416662079646286929890507686625549527462342608343750776452275900565490045486817530733618127913328584201074077166119194121626852909070692890444618595629711017001438128973361926023951376441528272329862919503144790187451356526731464270208427401800209211278731005022675555906009745830239695386435935660725342759045565532025481771334404654098775894076908487796840892854846945232897279163432115012580183457207170510248759922746077837680396556299557895609554813620884996870085234006481462177556043054038395078487779071766355466848558655093143014127663126666162357470196885223935651651685750497099713231064644298184536611082334054897892848850892806331137345110286423713439101445883947274776035624788061755657935850370401161654419796110016671638783413028466944985462246397891791346450422202377000611959787781163336286650486435335154082631877634706261127074825644598829104823337465629064227979353473674927087256368919156742836641596664429367206548625366676252236504958482735107245041876674761416089176777207894979856062870033055569688122457604863077276805628098593523203625921818068947263014349604255968240555803067314808689214023312368619326080535957154055928121574641918001100093009440562716620648714534039478385817926758033578987993412495283826171169662039220021038260823865204374827774701044326782588022230157665384816234694344006869238379920655788442949562680805284452596420083539122520456513377974005497650319614886022061770205632191928805026316207518539686937148789125156795497677665263034510830227001935951502946841111478626614581837946533968385944865222933198801069491470263107004005249066728609293874790640006151344616433782271767778955829808717321256566226734941603571704075893681534749771924841817366518839282264017098059395274431309935988494876438143225755003129213530948509798428483958767529147033317362024764064808740060173356474210927478779972959583751169072681772695149904982365351364520347739991535765693864091890488199119923397906293754346356012437660933599213132108787592402894719533043332510713120198806648642161473164195792338857827319893224566689031896935522884039234071645941930203224538616092333669997909360541243903394717775840174519907484211455072453395392686146298534623641832912234014426907598834351867448917776251391245731368931353952421404854241424260760150234993160732682394031891093732336626957635364043291586998823513984441818495724940508996948029728514969169251212002499527624984984884386770273185462840267465894886969403596968090971318665801614157889673814004413160923874866632938612790834788535391311007719129730394253359226533124653055640801181263347825147463851053274122422112384613507092260326909209440854932321269505468239985669104364155231269187973485852308987084548276514878019192325929516924809564697573269566238457542752000833437038441710985501229037675377237556007425454938134768975227651645299548264217435661248333718035606353083179683068799852330413100920460696403549581085810010681968949534588601236372425307090807261011544810049641521400071449588787564388320681584579131322856435410318388684823131842599600802410426560250416560933600764988462756290217534516588440877335306303309089248421370917199751112895000616793585125190107351264349540204785637977563013652341782208605135664590561010138075382680796166973706032115043872949141700382896259383649734455044712757072243007595966050089791575035867448899475813265743774055285220119705507420630553539231659720242829200610973226573097731619738942722138582661796161090021615064515650478667147931549680841492483039476725794823814601029438624597293747289904238629315534427001798324882078501435656333562540209423509711585301214700005196708304407242788193685426344023841640528113973536913321157177778566572048670898992069961900624685967258017269115878928875681450077604443159538558269204323306566195280308493525515939631144586466176102137464612320450913504358025549207861072555468866842593719379213250745386474743958774978784966791317858582272991580788682574120030425006222039288647421648685238586337865633723043953129345354533049205346687550680645714588218491444489190703271185893045108437900722501450578146488852785022804242534086325501857210188113220630808383917664409632932887941029325034330672260692862831940202604049855661429804369172980045391856974153084660957511538976065446928769494800324112575796469476117014225314483235842176751264909388530854572268667571634965258796527052104736702760727210160176141453931202088681058698967671203172183455759513566378127442134145068421015232221348092829211097013632565198204813871667391622838120530700850827426945722405515971026013074624604549611466460755149334996925758541180020567444807278116408476344553922452405051597690095493398037642323073167211953287858562671237338604397473316107547159261671007783450055640320770838202133970059781883630365236363927730785569209559333293005485281531764453693069168673064554695082444701149347094579649225399678293928266446550773424337991448525102288097810758287293162689831853494489909042895526020326066746036153847994196609439422021078615188720003689594281178452917383475930845632045921491018612071340384442351516952783403664559505695439550275597792782041729830638850262760181616252514851927859028252383077866418233609285829625825551052623900666239375915720539950725418607582209515159226375379027027459200451057412314455504333990340716557338077884574049162438848219401475424456083903027266931803345186393106682385725045842351218443706542843459595073122449627354822925658666446825850328732048236820540915587067089343277280424637815444284952736529436132196511658245057304145503670897959013826521783723828310540888937246757085746056551238041763948359794658592673312430228418842561164743991669169166105856577400611661881776832389117465288921154171532273736680159760913015028048798973010829936242409569007081824128933869401940636271510389868786089908500581369860504190483584378246856122656938090377434273880745153379589033770066037245503541328870549487600625870042447876188660101871745567786562646932345776938440704990400654137656535545376294115298845979811393067819528774935539720969852031664876327084820502999667190911546911767153261944673217868997347118257115643410399472675843901069031908657297524078174470423911965716335996877400504801677552264577080940529603013032893258865058277232309282349888877753086323718499683858264361140966962314731930712307775539340280286411979610380877788348123172194966512274732940518404406623346025992535238301431155868386609712200588051787366421944984953818028049858429410680362592305248067233810730330542101270624657111743233061960841676545949672921552460966914199150191279712698715794577270892886135932360775833580619823020060049304409077123414337643531259298088606471912593303663795293830678486583068064758490966871425547824701989949285738939990105777614590024033749444960800228301003693901915932085401694838606066350770787724012562872642600515556813094342898278550979776886783149433918558806160623781722915441605772232034430595896560089056192714890122701357026344239067096481298463665192681265322549508235887276597526651171787598647420271820881987547599110304307526204166128960975745855859520525748556495265068135870050264236497908473313151978636707663625982835803528822476506777608906462059842187861598960326654961760158714479713863153066930348645807466658786666564694202318319442938562807906339270138676237668288182864163000493501122588370110951270622910558764152457748430598411491489599997288333199716624257745379377493756239235789699585253841047767648406212099845678817761429610936790381999320420618599834279310711644307613077592528831645049681607750814201632408219041105269492816003330818927483166328359192962611390450938790125585553434307916764262543231512823362991771001770515736100017926669693630014732978113446595847667741946788127989732091911685187059748354461457634328741667672744864804052129574887802093183234191448767675578216163317192045710514606030646756675899548506362466405547030163049324564280930730704898636429833913491316440831939075202852574500791400096289980582345395333825484820355100501698557288329611218631540285733105223698515807807294791994675928044055511410173717693592426958632466118836285658197696977692936847754148005448178426928093455297653810560042898817567590418463788751507569362980259136092935322767685079241468959883102375857601395161841728803098244874402778132745658927189062237300686266036850157929724198672992287415117998016448522998103069765784095028539709375446899973047655494439345328763102020626794652694442722336199525907914878199487181333581046814138424669696791271747734140962804005545187886869760420743867932142699600621143544348029129466501369361148560569307764175004991522971076057245345551120641225695484780927957247034276780241209501432498975741077805188989731840748987762997676143811226352638210689751201485345638157306685524919668774627961351016978436192808525541544708655648119761091229333071531042059059491314625742451780643912371860223046791393239689742377569056096680305965518417957026498881762452559810163261777035293603363472277977101002360877376838548095066419217803930035454044705838231991941037216313792397380030183410502572768317714555243505681334701904978407636458393132799715450608639966019084096136985866301223834021506521731942065445578604985787218386145108481942961715943579603454976426935321476727729411340820085521478225789175159620289883096064588179258775516611003742126509945593091343049438120092961569258308382630612498577756089647197469250277174757680611792485166640776155991050921870906989793892553105028317917961276216420122701166015945324033978123791830484179274650407505278978356678122461324155715419911690522047332764755976876851421846728245895606838219589816796339799319444538773842785183699515220422917793933492569096888145073838566884863880095552464089481051803084913984196872058301667075111358443152119860021104203234044853202149275391218313472902222799144919673118183151892110863337386131084090084286395259169778608237182752503092359310604010567834527433809683930158858916014665343437644185701151056888088020310516207446881639956531045549385797516355681321070408376493340778708120764280399264002060089926871052470269900871550037900395263987488369694873089766552280507050169052164343505518182474753861856697412170534561166499216435166690235950807119277202795117173201426656931807959992170419339047042477147664830207104011186552476074676550312295776796698470271591420406270472731699631220622564070002966825428083245847517453345122332110655991547065201261914012005408282012955616442953563232329834053029448234859751782292797578459030927666078407711562853322100547864802057264368244283165355118053718727893065057100064639693215796805447086025552021193499365712072350458436791551871843835976422371736264751642206994983729838449447952483804666930358810284608151993861577396257774577308199542303938559755152830212462349239011916190697839582394672985025360956356329004324317441138150416345918546882656689728734914290636680788784336897623349615821404219646113383483138313377880218541777813161203657158135273393258027608447448187757819147031178602747234037519196850480255213150018525436775964761991827132714692880645907758363754847933179615614608646736573033585207200522017119362553194775925783511067971995804763043057018086007286261809554734216490542054019193657264128253856735013028065485097302156628953016208362752972868483891047390398450299547285293899287825464833854496834243793086704435558086052553904552712408166683018905577622123253047417744776571636034549020414377855230933748049830285219410548785064224289484220890694694032802697037112184269035955851462297380820782652523833856508033066529292012068671702075189678612746758065232148139260587749010704673681220560968305505779797809619901134957967924502805628615066479400601979053673958297123893317273199091687030769952700455936349800704147069853493142514670584941916530268469939831154154804501604497764686641720300236104987819595084259656762948184384047995834977449023500103612470716171677155721552652897820241607485200661186759347917518195256460145108626966249457496064206391817952159951582671896463015709814463530525040420014146114761364382843228555614087405591663753601552235954595707585829179146533722219668643874291173525456818635885011433870346422518377058497203198941295541222342709041721719881999062490342078194268955940794828152505997501400847588577643264399095406700444884412832507092313139816056380074820287162768857281945371726931835597737439960407951090769945673783278016385991050822417121337102071590144588404579895831299169433151413344255715061679509254213477469655285732745536974239763440773142033045313132904110690845047960543470140961230658011226036372397630396519159332432470985585468975661063897814788777339579422947101271842857656417366234288494523711506941550730591337549631963268813360050333206747930564998854418326975797424636242748270887883465049686755409887141660455719631424217008855099004418689984803265755677862098623591095484586418647648057742697831751714809844653546940555067504328574215648915382167423676495392999686266574437084520601265850582047873545051053517773937209359323109765235720687069916413840730471108360896955100207820279347980738137713364031171434278018489471029328291597764450041809411773416660802486734545906715757314974234640229786717992250234709643696192407959787272054538932153049135213707382203285488792713429691771923470338352426896835070238107056049011500392662087540191998519131962611977477693161220172246265619356542441810306273992893124875416481330863336297442990112921030620126475884268282174537569387207509968145957692325790985321362769769399385555234817035895026150808444572067014765555795135749579394253656150618324450542939798443172790613287994097481896669696182886637438212143369732402161394134549937066213934575960772156925913668680554781569200540204845237689322620402140427792422460127660426180820735985776126176750079997838061385905402843956272326033330639164090622936731534397083816110755646947917918677506688649841323453022933698984955604942870922722289090678553682911035715050079114045066302150382264403824918375393165054034468410003417888178341149002236657345975482124321615948395088718118699376595629188855234982933235144250642985050899637273307733118346470562371119724486508629812969977010628373804839375948307192791971904255976406049809197312049965197142327982491100898480052309414894661473126057869366897264755555209935325316638233540938985804134396865845468788771882271198031609093176276799776410621062861938476280033379514085255110226710892037276937112808030627987317851638976105220385797227200264324314416017979332347967093841291482213245123546641511023119279731652104477724170438248642788706596351244069572435998183291861103458916945090917403626836385114971475534425511125335922541642130231372539758089725064175789936778071141955020732007010291276558150668656371762687006057931870401051472808334960319255100337347759204421797136471435348185034757618262130399102084014689667646811269157018926871390904465392466684146830182763787751386327796099017519455772998442420171350377701193934337136165031036438384555479838619481763277909337885186739397951560722484866027020760764600476728635078350400885248562441627290326145034323388431061728038455521867751739619955321741810181990730274921934719369101436462484510628119028359960556834743066849885220130870155713007945098878623389727059047308616956204270750173451457109517405515339794610729781585335342718536357968957635144410917249712029939600762032886618671795169228318347364475692811289113066473097042757960765041672181749600165441692904623424893538858419518094902671358355644423843418997367591179446231651787172919123842745157775525663638630549656263533046567574004689737011504415800795398223039825613663487052291253428394519303830546168502200036266529051380726816455668528041209238348272347561332312978512519630909023472834827542833500102422537653612838305318781041689205864154694991415215417485718718167936914793388662095413082435119257277141861053508187962753507547675748450061539606685360460731047858395790244840091453214550977033032310782370989730027201716582155076569774735207153269638300118338508271519117712327022397138638031088812201938464035221140930004310210989854183068475191495801800117670834955069595011917858021799968702029203525985493356285497186866683992618349393538194073669394866472773759672237271408704130174949066907563042295229785243398740193343989917157134644484278732926411367106463474356713514191924073637273638225749413425856437476968359905023823878872205144346528568999641083219550671597534002350864420649584715564875421561149861195935161014895431504281020734267251825785360061899363970817101591030469353157115233473890106225918340626340699920767837418420569359426291680061331863858577229472457384634996958237636952180527935975457667180837182057398982455492031725117865657815361594218255337767115215985443919408486562944734503867512202731072379561897290464717573737682433393279199956621781236530324357793353009335374895741545932540606105478013358370816410847236668090125727168309875084007144645352759628820743309426367424461411234155400048629706344496312453815648423643187679025254108489275632383297029618088131266380984978788393968474371062895936640685054587588256316434524850754598789266920253624481682207976139466374395582109180841090667876229275457435917726533085703222284270276837287954826341508388972903684543713023402632934045965221844580576365214790352247786310889928197652818273999866492722794523884191370117761740980006654137347231085310633421458064321168999773877205819068288118450712703299470347996823973512850165013584871734015638129771850988566985123724928296675485531927145586666269445981965425727585600497877333519024992332741004222956847164213714163934706434341626277515523497186614092317978547475581611382078679277625649555284438826203069755904035995863609719265803851590899518941763935989382935564570317538617248948392801501145847744923514436516761744588003421541374707671818046447338272524304617167687183868325343727799684922819727667791830122931271278974145437028444174382569742870892513619964046106531712957067720210642599147035424384446194088863640150831459145501402587274606195719031173766023016225811688345340906566747327448914279512275768693178369318281804727150481724324353770807821022281291463801664587339862392759712824019276614992020403836729866083381536353459483356840797545734562905631968302299423246088225516543194086422089021151178659157609542185964073594074361103935732401402985088229078332751257363668708644949864104389107169311845039541788809978082578908403470875014340030930031224635035142325888739346526418271567736110873611351510878602656404811328138101249195960002392493627791245041705188178667209919228942054218746897798589328613284081850997168118743813932662830681073736067658928477264059949386106976083582834928808981007707520470428349134635396053027525846790107775617252570212549877213136564022866681440928661190642965307129696443379046826857051896781413287701972234223491926488927341897613550884547771595028461038702408525917974089760933809052350655631594273120168236506333568829939379115353301099683538089059892274483753832206122612099726086173608826442539922117950561649985778851187625042566607472428138158234474614094957664000358532453611990601235180179161778338268265224051344221789361508335800961385629043647035684939761191701922318276730122886146215806732131262795372029509567509339228560993372157224549135513028420312523739718549698294880283556100310951883429362931414032836896915489012903822922471431237539423153967759215803382243437048254710674386836016603891797760261955315772992926838184719119006506866048669401840443473655428103427031185100051058291422635502319517694200221734307523192696732603610448727469069075487086787542536884837625221112590722741589616384931630567701422033933043604156789699056613969122493472303465157761578300446835415294107502716602150703249655531932259899686119395458290028060429058452703600290637950930351022104720130954170925301853553687857675717548939417664400403336376326803962543931230017146451815709344489971389289328750243698649559113147163444144964232408579643269868595967312360544790535544775050076153085724196751846804564202582912764157782199033425576578705470388462159872025868518038189910774730212627128786144869587908899222194588323768821256855870850724257084538713755882989254432344703355079345597546536341272848998530949030870030602615966442913120788360875824684354644872300309597948239072091380360589279560618442456944128624002020581986964576157408530435234756368837437811158680659420435941225808808961955403715409935752676086832765189518604657082663833205806460051113236075689370983118675526546863570128242383993100918892183416215612600702831899590781337888244964810043338319497953375306777904286582429666464625264440756885840195959956075100429951713754409165119815534526855402552381984623215152915591609120142638702483608649164590325123389935978989725178403472552964054183426129371612781634996119533971668804282097640699552380134598040170653827341450693351835431533139488649161824378451236098576543905077624375725845900307365104781089600153273061310111387900055666973896341250733148748362522548677865651508964676088972778934369916745745275087564134724132131405757390254340259871309198146596337592591014994037678858664934383144797603026959826616794036527146206456409941401925578504216757939073139233480306025330553918033582573405454816152604331313973515373719328347724727775188772462994888884553978533112970511935813985722357299709254173119830056595811736006053121528097636416840571839241259410651076866662600074702629539628541188537954699476225221486708330558873761511803337932526093014607089449910793170380396780619162575142325753636461017916469697600101415959523782778087493460850074976107109947488905989972613382677592121809797106158347810491094884602368619361240252577032388103804598462864180852997261102789711049538060960504619725815971399165672566010440708042651881264026910865471210425221050205770326259758468689585634721022072677646140275552889227029837034648480456197961399519274593051220075236428828323097131278364357934601902075550643091719405354717365145883009171105756873962064013344174063275035962095223316903100474983459152111530404817891182192909968366440744636083883116984090634828138197479515469484511392488951880664851270515914178419960422246635928394097515561186964990435212433829817469535623855679065837221011538446524352146996815835176008645283472968744597588892911552008302142614079119414092208827747690261680533368668926070872946610469456604365711131808151827784203371191117138551083874978726746489244781502187214255368038679331524252650957738157075658156409039832950356222789465070849033771693339673650783544648368128191598460938736798346100531952149545378922546553982392854545880544584663901664580500473836791248468244257880572507475906206713896360195143076610772632763596680067904259567718982693534757006108756624250414822982987373799040736253030913731802620654726769519397735231731256322861409773986798105468005665668273409495668647832924366521420354903372272494655372348274280067752217561258555042153932747579551062165790950368292343004504298698730982448244078253200453511069533939063242656359519438051480905708339610644788902455573565748528439501007867168473312942673090169604916756836448570118489587132188044704540152454426545322330723142569605865727299159896634058264034248677012302613744505644117523709641439922857892177446682140272781704044690889945071204126773005694689067390497408836265093568580678624916167760742656199251112834917046573039701313621789872430826362592272078229055161179060118258810325240115609123041951407459465343346272129793569332033290859717364115650692362523609159256851409272747384199042040838682375900080774430090075381440669546252563410672190322917383509958438541031514590896228602241484655145842274350336525214102054700755023594350220798749726863546315700555643002357771231004194843227410168089003717817756636400260282169604402764941461491745200618812861701573866230892316121312765178120941822442119650806418234443571481656142237709229327072860331490651662984905039742572851921959100673754072353239793768396011054770104314955554292252619248929150265034241735011820094225575154355283615823300516298741298718212550161473033326989923267985215378382949547345111087100860189931132025096124522695282589045011939457704162388546982556499880305181980168480995838604079726228729731733319629566234022826132586171572895803567217670920182756599306121832611747885242864423411294206227400749688616152532172314821893801390589396754398179612953735275867372036749935268905575834141935853898959599592992069933821904974968263337215432771301103033770707239365703667744790638772988321292939697583775371673493267413253022861645476713657753144933283051712676131572569622403712127786372061877696052105396737831272023184821972762798961189524666227128275167460750312939538230836990375902705177532489516295767403567908485721407710710910648071182257171424650618720643776861281439652196177859238928736494684462012877108673493029755252476943524934533632834018562809758318394971046498728333598621259716564102987989599329306844607807716690817493475447980484133708350157862015702525369462568602301655296184120479478727450536552439312095394967491211865710886220139852157398198400316601334785058778286094506199925691640166565330522747814170276156430038221512250059070080962999216375334074005221838490213678701742710437005121623609910146607564082345570060238541003996542046892710576591797763654908807932509956936665019791221566356988957660501274544203187945429320408873922699507097880081162118491163568775025756551926988488775248982808877180449833660918413504500740572345675356593521993110254466005665852548152955965532189885076743422817655934858112345605215335531223293680748768934122316897131474230148351438875045349405620893513647916656003339018984374059757814972893482259328502932279251792242012959259554502640852948000464664150982373912555124618192158439574781938021500318211273810701856164946435778226744137128323987848483841307297479991351149250871072161979850451896299628286930600200841107867590589540324062641043585839047374831004921945056852451587236072873814860355356779467470793888216553350716468726746603975933336291779812489090181718446164046243941777236549017314209971773333918034724725610769346366119873830427156526992906995255026621685942018622474144189307287786012869906438976806227136359279387558088544120432532434304503032597538776559547035082193201369038548062808853418292937821983968078840034958952862805656215089168971598312747063817148125491503359181363065287579329696083774882563867652001140878763835101049673834600746235532079828049060165028860097856972427524698512333261560674490175362685699206396244603801085091130784786056733824040857463823040870737437299394899013082830947402932111706060532206074881212007290476234124180743742176734846710112001935087680309030956972986734880495675268227852837351644779011758696145407384509884116790002529026444557234212964897011551221734894408615003539713627148654469393226453300210121206812713215340742785419581407730369835267460506701032820496942714272391160609907951792532727032360581552166958488218479820628766156305970244903761545754907872608946389570836130919602483545531093297348587903739208892148784686528870772645988662803814063809819958088554287454153376346329250301333832284783111550102003639183196968097979951964461208475929621301319480769398848140380184839781813469053280031893299125070476448113639754871126081684148993822140186524007683419796947266798447979450773617576334902533835953845141915721026299855631184209140386802115917111280974299777531030348908475222931416256305495991370055474657624390084792225745173324961759139220913034375555526343467672952574162697150775085772300225792277262093337600286853670427932897185907305440488631639384976994327790086256936187653913014062583404536151535341295035383617688147779765019291990063752245307271531431703171831831232587958083685028043346945562902267184430656479609428957719283964395158331480291027590184269353696018318272581056388602088477719920528496983628042563567466869168241388251052350431308048616540158804173363443853802449565654185611821161582929727786639349687968017712283752114816574639891441246905401241742863166075538293356664145522606526126917457215908130531311331259459128741377869389164889393845736191450538915458115359942460940312835084311432970489367206545504972821446944658139355478183797317056306470374102608227019100793057427043166580018430378554093453186970507467031491765934932175090751129454500154993294158473492699744613451702692858158796359410005303309844463592760822398463706196159659372337431034060498983072185770483807640335715194340035965108002132032211225865584504521116621036313712573479192385125455537222244681059285490473024112574904681365683913946543245895635200138699799671493933176358334105876503704245675946346911575532682894258003495023702896173570120009616840797442341310476016475186635446809399032566857792380131877322663356776623835698087114983396142748073283804634838638759281046233825118615619291664877461580879787976039353963959816847014000129676636127668358391071633895442158446883913015383353271944224829481442741601018153236192316993353852554288856998707363822315609593423400997160692333838878039347388429478439088547518858598154574710136110569438190649399596316427297487652045285014962166695386794164682451453549044941477791161395307102894300225864285671074980109414318550898239658850729156971060568547166204472316286479935838698844507121882456599435741827132873037131738000916995455808128008435339355473941361602329707934116361536474537959193500833642416919356036482485511213413543088951939826962024691328957619110466568301171743786020815610424352747478062831791073354098936229294015225534417266501902825232186677394016927638188479259475590800353311412189475209705312623477617604735359130004444343736108695383411494925297558812970817743630316826450752777388206717113590230650740689454872396267305123272837224004320156254936520573325835745416405520642739220674379443984718084969406442927418063401960584948989356451935583976672845200708482514953311291693623268786129763276337996655236949962450862160294978066652881150137165392037580304255818589951096356514871755878116641356062024599056058847057906338731851686621878372935930416606834965385537953935341676197910079979024403337672529923816739361589934515583999437751938524016270107148358745611983097426310329341971667114654191686362364007485186659013209372467709745619410155862638546424505888783453611740935464374957614397218736054403006627449329878243998552109684576383787588616568815061479520062011946838210734015107079532077430742002509086288488662718452578885029446318987759687480393260717242633002206652269614765701720847854079193006037211080900922166316929505102258975891746694084785763922186124843082534585741269990248856755720150343303169245760423265841066004445979592548985996604780399166778382427741164429417123259469036904225073854663182828086536221803180044900780617539181803267412591057069230649654258773047706719200984748154074047881177550155045379372922123775462575203627084342244053282801299188900842315607514609122987010891406044616579293253626437853518359882489056052892591978056228757057951120013302684802197578536828004169501593866932438357356273901704223912512677719944737955525192865403442838294187585453145393242598209372919728523007883814869993860780677730129044793131735359429109932228776639095770256669799865883534454411930983041524737517867307418820850344494814312862973467515177540249723272497220411810047928435360195300224041604023233918250528609643815958779165327932243299240595299842940185676766798051601815431877124372160520543665050983117407712985130865150991603145451554593272039927542977768042016255090487553536035867927059528853930806604775948552136181156572125394339080440886471192711813007435496044459985103246038249447828672567655556596053934268582508378739604093238057901573177733815771176466258892192560937469149202997956507033245743486821226227941949593798041673202443633932027848853333634983765090576339226728670372043653762805626656223543571076326555275296545771621254813316020024541129480898196057013931071313989108768392637068817758551319451119941724475514362497149109664304794755944538880884026779939497402694874011053615696578597809555642054572562889323203863779866079656746768866631173737024607752802738913958108755225179095725714343948109410646736026901865040589411668318605974529121250620671020619628611390422348169503414511442388617523460629978776487023358978966462200686802610190941189020955082607438740099121545526136077656273685830625666470019654935740403194552388515520199056055556139976092086110623270942170919118965311305248447583425850209247225588504929282382576301786673226694837672066493136277983920214438084417231611258308682181023669571593038879125641925638033643984156816272937877574839411819176221477270369789175369732003165546182201804314281877240496187172497054140041383044760644701655634220959596100382391508913303137118415242434821625027067407225614273111390424650962675963252462676618011746644997537955288188263632509205786802591222887999790693206086793768022158212622186109217324568388941347352206125291401053729293930260778274530220402334476860199699820224872747568447040523774210376315469715694896490047281725449831868810803668683461848253129227941135649668148515865653954710922221994446438178264301191381336539457613864710848747561781620870837692295362279911656241890207925249451749128045012569165902350750765260091030990106332973765368614761994434982040106300960058348938472792235770738876279192271487759639747596364943071141738652461055018817022422475863418440179804886983887579623188320813626913041668543991233221828119712980996337413400169926500503113948288554459952376142300582747380552157250458219117519531088408179629877838256210205124323506317961738520760741681606225943297314906400091526905274450605455517707187587040555466525137031791115145278026947010733459232332425148997729013521027032266579314863450040556642338668304275720386276256844694974962974272368472484345660255824246499528851472228005304217288249754506722100805951316204933329307385743814153324131232087950928469052144652672412995038465398270368601792801678078637152130638900267047786226008851647194546295631665839575944628190405602769802782448902416825813125036376312070918188165278557024412850547628970501660596834690033791259690529550074403386277894003893417095964515277144667967733780060424391759562696734820156168542123970457864959157081390713752105350091662041641811427357094868739766907000431406338203324699839177987019076945343424615429008711121780003282877426667107282574798412845080108622800023880691565521179137958839516048281185908674341207494442845006033274456123727348114206160271034307068909947425194214676138975316494738195351193839040834327168116806640576314018765304121236407463209525996150428571176835604010083540565984757231344395833820991734902483269277643845524200308435449113381372297055054742967578716779422111157118783553138328988724937974053135554527034614105456504693706212971070926209976016649178968919026134699445254413331680568952692675007908668947303321751097592324676532225840243725062645574139189952025767966013001850536365234476086459984670557732582241364763749164218658806067073943795568362027436887484999405200355901136277748462724638815234113110209265820742653360484659353428207516853555275969056253545689364015548852861063208670282981761438859877662203869133993880270204060977716421859292361554808323350885707586216052180472656532529776650680194240923664683274530859321769695180554569845307601636727085653319451673954877626557878562819667661621226508444571953505978762966716245807687939611289603146573355613321565147891237826558762520723888751670691757512368481807771331585798220525817896253579230073800585928983820951006326983801114347785148556583105903486129637233267680381132775035220709330507607012434426962453703874380299862545742113258983664656531178930338032889228671350181956981777730206707286677878433206619148825467197825553447945757392525251174228510169775003522392193167344313671690811861087099980466380442635832173595719430442572184947959632385950823281729365576441672499502588023406601716729690047999955790664849490254956886447833806964407325946578706477009294255378176083913109235661131284316844910212034275073751397230879488786600211625076103160397020985567141197335344838971811963166635712625652005355941992097692049800893360505589938014419244311449356601002603859221124402889698292894509938848516286670255265921487434225252447766855356520299347007834952791029472541113590848640909402830997107486826824075394312214849804438003995500636436522149251642108258460873934245700699398614911877665446370156983176248400411477937867099414782568699841937367201270671863831991460161365521546825339544237219501364088010818067228795241285090703166247551957983349412328484257225347162590492023477735077252357348012345335412709362363217567929435031616964765707833470929359460192422624211071490591085690422330427391984176952198237756131629296275435183543195609497235115274812010966326617323028405059256873380531513704747560828539513116501330495517873545469586773230302452192274173118569633828040526490243725799641035526663942604679106830532267768941490789393995880315438239430665147323321495267001976241903101117923125483953739722708075589459545349425525029067130288615565896723623217454667474404358149929360514980213133017135396929437310983763632592186304997015053097581296994330430809214291712991108564730304823284973171805113969663382415962134889606388642091436160037597563309048014483172803031113206271950474648564776352743738975603819335530584127778186930376359828252734409254287843210508566395502391219685868280039306619838019321221331630662513326645715916329703025696408705118270810359514904126764248007634646771399432452138702587223092682266881145614126262231568951027762581628758178694474364995878711747218362580556270661746465943089389248853211157608924384103963418613064156493785764296351365938852587524745500933603370235405734695362501740171152291675694352941906031937359097894036203974041167220578246311351974691927212397209598491032549260119562443774523741483505795098300020200748765532246133795663246173337484211666670059417732201804720571089673951813597156549818430250929512045108603735333948794679532568269054958113104970272519222297762771392469445208088415275277589697244238889311312006034681223952849618372511584494840978267562226204148845162149577259421723148595052794154891792360548357163779157175554012340468116468437240335825504685593031045346642361906116753942500811460234611764439912029641330703946449346245974081397122230193280987441759363953612070431035660283380613229147967207881570894555512551678013819710438625506030282923403309301696257823269649969665376722016713458727960807767709140433575727174870789747782560937482730587715040482108269477820026657684682376859643402539459532421547015167609230909634304236997394813230319436535937733416618710063297318177709890432189643614212022424134776436921544190698526305812412552785961307036411890257254483922112442508677342477056559066114316657327629564877481383611236036794123016468612461054452300732067214278499477610765446851016210989985857060215027205551252019673677020313894949592430954646688197361433460956930498632675823526747885082050948383000558349018425568791108207863288583064808765162679339696864317366134773821420079428743595512190549779039754000146793747592883460711086831580122776720395077837989505764432637282377265831107087352633106844132848784925698295988102096609489929613138076232771686684222797594881558814586993545190424822382022403257557533361804229588950739257437201834621263092357492070375808554379573672215297852688274088400582719976205726511953123064584317871009801836827046484342274146441278113590944063067263857861150994120830058259166218303740243057595786957338798479877498314850986539716193570799045760343524329437610634327259003625397114832941747461690007549603492892599433514066105013675499752239932169266191664386690429743825070922228332160274404269982785049484633626930240416089855346857765171563502015077501600411642353404396605294040544639395381128092045292377169369045946635448446724996142157623581259872019205351442683696362292746900429980696014449441623903070114516349692627555296878910132921026084125301727356517372857155029989288130511302076046174555001520521857696411275438272438831916879408819907998710129360177111213418926483557042176137641409588223680428815610683556095758479890284968941072358592607736328322741187701120011854095221722802534216655842055954360648451585290046738821530634293209288442747982737903114458850002185843486983130421459117132916111589764773201343820527820064070867400819515923469632687438116262371998265979465012917347349892328056035089382644014102135237408860014995823522637848587621972221196894212497480858725070647030658724146488325367318195998642003584087498957287046089567880954209225706880954777842875133501444485705618389485042898246389799860023968893336809683312880794507988655300747309277431499486694725406006446730953850851765828788977411409395020824056329897011063183994919897369058950264554959359134668668251827176628992190181218568147332356624312405399975517496397835878110358138206365516482974356902721274159189613695866890996084108654393353629434140647242839445152203761954516935280602173273745626411883583247194872375094506164388426923755633823366216837334667734431571294673857052136740710198130287954720680900585654799733896226941654785013748278738920601118416007038768563083237632735593094287223649686663547291201594932544324932269180417202966844349743350527432475811748344732237212211198108330616041041906539354793156953726085631711885722148762145824647584857939455178611923775350294623391737008905911354427737435163206378930044847901019614741897717071036709511701668569341750862377979630811491049228793160929885323430338044450584375915815350903502414585774862572759970618349620606236359649067093478829028982376652990393380601037818497002724153746203316893829844067932508753112515073835820335579514181847598850435323999815801126460799277373746319768136351442646688989076819174447735083263996401484536722350950120963940938446122241481073728691700962279746072472532348182182407680628538918603052133551255767380890629256572941399444789032155649196334115714758392062137996302291427175765729919669555645833159555006383939036503245448292749389740327475330021171863342439324716076785019120596236426595921153239484080431300634720242322263431741222692833653453630524148241697012168798688610275639546555347324064947478299177945051142439662794771657725294200329936554156728685722148886359782084392492846724961049830041475299835043055782639053278784111103528360097867597365910001319494783932248646034920196530311299610786107510842367036285282916938339176505293388119711001509886584038937082814896030443423626132094768962955254312765219066914935367689698455583798464732277332269313016073841123555055370695176677135080875036639728365264462296702261590273457059379041107437216941459320839277723127104468149911643512169019015664734744605197449536664884158020365806131614988037415740743695967045365195763724860685274159177291066033799795410201315905251224632582894056717022825241929139681559094277552893712148908520459626991553248986561538239128205918440397616545347636233924231878745381667314348429134145855806533162028420546999608096188430951103829625178752790982375950099296476055944195725392270076455606923898736623148660784014733476030919948881351061277473092740653203148026406988189058052951075051716759426478535109541091913481589423471308888175225177497256879832237625493595105884505460294742142484201136168283844788100613604566923918422233192245705380341768390512195348245444915071265949793003048826397378177394407850754062383306221218313107491236787335258188274379631499989925471516576974426815169190143129783876915510418758441813555790529665865834747513754507344124773294836841918078366596353191080116550278546721193467991698482630592657153181272720742299028715114567999011330534444987709485979721947845682458259848151096022261640464980568376605107219091585961552123056503096228268796483931428145350167692484820045176862233261332211942349711841276537924011678049736500714035691642063878175889814659993203722110815513076588454481656181413540456607728176819893471901883657258918637475082193052132758585982994740346786415655883375830624649740329361536832181341731698005221441350008728935730239658516264666226462743926567788198522739874195077554761849458926391562291136479484835072130149639493025730306595416367250472680277605836180251236601520371726263408221536032915068909395345873436666090393270597494254922157649805136775369916752228894890713131957284071892328493755414657061338156554151859913289614045843479113932126074011668355586475246012567090509976127826853435069646227181736394975448596200570441602979587425817852795444598792700086850636176235848651718100289683723637012282844887888401153750633764651836052309881190484815924010344642176149479269173085722768708357368784487439066140457615990530937572932285049567892964064038108672583735935343303839364343593887341722741716221755960295001278988190768096300660727357014175906628998491936282256149563802988159640159350855033219882993168633252807934784289791854446790111255605103007490148258775555273232828729635629594114236794525769251865471042828439652839708555812919800503608088163917381506338151684585799942428844120175424676647962314177930494025190589332589458424468572610778241576541478039197405326214477187326060523877425564336825572175209901074466907714597686310019205441325679910761057300766732990444845632438201739842628409565462916857925976899933636568717412577242908489718410701778760943762898299619314340614771050277676842717100371245673775839468203400314573220819399317556635691994799180298717526158387680942830879699403335981069378188118250163071584577246998185618941366093489788400713329289077583003343100216686431166616863383948783899323020670819606840804612250797233600311366036263201788957400145436488126907937939793933473911239183462655544982569322491037707423537133845411382617164551800939899307423103636806875352525606975220407571844897883981588662883192498393711730694111628195252325981345873797079478627224479008853252303089590984640965708101691645922698077720892245128413518747742212762948768914315382175444022811397716113648239199087290196000333042762433582559583820659274043642378995220952889418499045034596421686383020207235143544607627846851164228562750156495529208508030884301528675770389558711299092266864616039444025756678285378207958146017670742451854080188634516891965045677049803007928653371547200111015019384790338750971216530150778531105625081032383834652281960186929808633046818787415286851547628304476802812865986341848427977344981345828846339538391642356287661345147164338645194908563385433626846032641210073310668795490339729490950683418565879432598586998336394518140629702653003591247571825132048594378511708475439634499333744609548809241308130343523147716269327694836966378235380061816680108246548581407119957187421191836370715642917881998816218831912189017188557416020038411728479938758778075232277898871733681533312935664222657162128578280056223696305660785829477234439538448046748072506998203845687302089660917584979005888640393014840051628490224800097043290378565631598245551197094008917287849834674796048342940608780855326508430904623094627058832217347623998730420845483800028412365584825701831130543731390449527704882724003735150391696135135551019340944504617754085394987164915467585675171309170263567036858610281789008847975002890463496920198495078538750274933879893791308175289094745127798424245608158162525607552485314153599691158060728584153596762457227905743087721509429624479509881652538375015092465186386328035663202936762812118439518028025404197291004076575780366892539760091621468713739962971386607003040952944795428159632132221072646107281077921635585330231903800509740496676060360285032589343616348340411115587690378593729327768863349192697489896076141481200145163472695538366739633612786862416856294902151126467538876417195401623822624233914261441574544663799958581539357987492246705800636183244478298843421572349252354139945772459775462613604761622971198848436985578656636850177005213531962758509831837674948330483467226178348443133987706851124446947637125412092758417028552263223610465926788389266910065998618987059582719364351154506648760463476593700114809725409973292646013887082192755011962400810640400107575430303659337552137240941226475048833605186954221834673064307538862563202449440418049638424114854710642719704681108100165227856534268592061014943907544308413834234662116172004499146691484722174289263003002528287154802557828142031007088256095043188013030298419456507113126947789126038504422542252779465746512604450942311621751187596125511114996535223428445685909244706012189659486101088521341368806806645498677429810377352460227556030818724268101132348510742894967393003079274472125476066723700303729585699901634799843072759487093652848217770847076175866572133991801293936475445154861967636289669629131912062898929967909962433987604352883746100157847945175605138451366724061320150860522801105384971819215303691373681875076150243292584754445872154918736279505184665583358459222461998153435534106305367771396926597290607445410597664725196483379412040681385379793299366247338062550080984358242812874943927355744195442860971807223253455029207225742904023167058039482358566574924352425927615075488934237392307001909156398930876463550518442037755942414365386046326642517608506229551811566005970160904738703001314470766313366385237300030110731021393889799782276814367633650419087290930730459116883107025031363404451917823363380648108739025828230682136559245771620309498215559085316952743253302347025860001919820617683302887396381869930204036953497848034319609432013365036099133101578809567782280189010220336570114614314450603237273020913374157161046670819483133476782999534809847611567271672866375545878734781031873893499518013788875657081177521115342633281118942324098030092839420528993733386826273691316413926875865981352299010854921729968943546077709521800373708106061259780860932829218737032767606362604078897180800674325820838585217163272430973523213758157551886950793006723232515816578120307500620902475756180494203299967301059095559738328252377743801992476951413559385944919953016989282050312963018025621818299992756815368192847333922242337459862008698312003379748170445974166353585807932457179776241282823995773680705176831574562263127787766220987203569919227859727959760293607785986067887874968329474080827673527812528464320793112863625687450031843449720290558990025850851360252839402668590073815918113890582923637878531833848120982136016198763786022095592975518129727993124591730964523313248796076568948303397584897839891272520245939124298674685541907897870827505784778966545906766564187287505209867552406205309432988259155215546536500366775697923343829123129640372979177561922290676815872891397177476160907240508385350153996031742098963794482520562706709650486575672850252045683934071260691896596338567703308646008560360725655410089189620041831063850712483933031912362093666340754194202986096460631272013293668804652383337966157921355275068802021361438737949330173554673942606237634682627153099442528312827387763946461151820385484758672324021593728433828981422736107294993949509510275593781519777606053434622806959599519001757808001203852903954121448053790860424850369774676140024857081019590551202694677656453765084188475621295213181687593785852059482451147632975130006908235639173681599674963433191532895640020288643609823869214815223645368689132966468067220300058381126605995167353607587856677728736974690106621735308966479007883749284826287951350342634381730028156121725616355929816106331781472410072185957118868779613518869302722564621003755385796533752685387425276443190343147397625014568754960227628540576048505307738985843539418881255232447758983284261622958196630497721681230106870547435516688596177613622424718918250694990709746675052433643587908849493204244777314182425219573155762215633561332808843821177527681854093291581763538957555902457160057523418969067521849858716563132286101411441235320612142007246123323009378777143038201823934094453333110631143111514236973488021022950204751154391211975090206916964210174296980343194106133370397722256638593856329459862228330962614159544002834071120634317675982817695363373460858051461075238023989853652283522159999195973701997200734491048795991097447010557872480211766875354900193743934744504570795212696241724130050644979745832660874738565534211248774666292485165883912454756974350739888047809808776021156295703898637129332916880037713176683284441619732298951409715977794995018453074488175902479029153177837071727281768289744457705087441697642240520203282675866677085149443494776901931407964863603367841262231678517744522022464167276744565734075480204500964870202655205761318803385497875190326322719184544604467065101793144122617149037061743182427547140824264014023512936159181626619890148245204870878161468053932863212438751459785165735918417171886881633007620841604817312918879109905039752796611391914471623784440633683084111674201445627703212394577204240733965261442758143257472320629540660769115746462318348689121265654606550147824659849139257746603723895966186356686113329638078669817731527695070052278259559456935492523852258946046853473412428788713972391322609911331069872857729353910431426499136895895738851073745020643241536444175495165685910696179680108223968536939291772496285869320308376543783611747772315463168120566693943950412923964005928921644042458364102282043130765818757514122442047050105814735245991077899118480696653197083986124195123237395806211243513871841614686679319074936678992791523970597837449913914655624358412161576344088811662531073121085413150504610582851309979754232880010498954344748755037684940429672068174485823248592688626453082022186948808486321646550297258853348213411067394430696843166939461083512938541357737034133166891853486890075289531532860115278862527826760039932663818584316986292778423682453329591854004990978867342116127231274545403211768170685526591338569989895558103304722607055751036189857976686688147823798751400392283760554335540909582224804019045967554423741388197743049656822334227748774921657183758979547915981634095731850947558719704053649234178877783040091980666238633884083112527504431337965604082992504077257413486858220467827528536934681518388797750232419902031963157077457812651511576680510110510781815458045575527940722844456751986078933102945619172018172790727866961311996790189048981588113227599897480548022443082487698035266146153571176445266804779658080683442758222143897179005396978740944451520328053086484623915327895372317741424607519097158270337880747546728378536185372470188850551253194234996503593526713763471419010864268163704118625962308860515305551198534764643330108613911300058293343400627560555643053958216224076412814092458659578609090390233102765303608781096334685096106421249831942897136830392728919651415551295976500380842921148398979615211708215713439983895584040431793379479728550559611856880420474402153044585974572466174656569953208469981953002859375878597313191229228315772612970008008083295381609280026331234179676007092509518793262504988700745856840147509047405000473848323906210584314257149973640723137871365265966746594973177595442319028678993196283891752696913000123809247319498741355448471865676648543018896478214479088863614699389439030414132668123942227001661522387909713945363950233817458980171761074840440087667516074752992170144259976274376266426970685211531490289353466013102201687824057251635705881495690937385111338404854381151275904627477276740497785054165910864693174223588852872133486583955115005893379833323533386894221617167605176424571240224525900111575971912234840959699722096587859735071673056212679233781668072039918348858033125943011066112057987736644403618769993851377467898158668081112973260937848719090690884520792014913694989875511202006591828412367037849031094785971563724241427411083924367412748775296040749249315214798666624426642363747070547073102969999742731755500719774796615612844922626651735986274145360417130456466692127602472439731948784394731221002242049865543965104288928714412473950073567387832052452093844689051264031350385096970338694985427487702477007573093862701758087431990518792437641918342705569316879832075737659448887157632171241809784682014618859187349823061536835736041164936285506232324684970697871164796289802947789705760981621267324490511777205233905007710441761796648177658452493182515658548326124130617685674744216779224812077338753554020490552216036006526186254205590504032203961896084664381943830914474039321319358754152214710990594030945434060096988283903122494568258417161119188913952640296527533232941965001007978598943757985973944151629973637844975709848667450438124522616193754648102204315447812906851634366684302468262702903812639468267313361733885220650067722484459522343836257911136587164537442799513098634529404373727244115857430666127609308405332051086230233171954475266397752486040049334240792906337075735472423317039127446408162546320751083215010163413540711759484930643688191076627120105549304229740826828685183816547703885375172721744445054991358506691124132581394401100647393687908184056670301608796255229702772749395120627775961653383577051261542569944265422586167783200106383237414411164344345347711424424771132674470299556233451377810968533055445293947492536301154271136907328806702083960623814512508176748791025205704540967334514102162454996655528322452048791591938840539609681193977327296072988403264012360810230188648770745882831328465560823321030671897660517293060078663073223382278583903383691197744038173676222849164422846488753315146683616997684609668838337454691697952126897956093162687648331919948084112516607085206344914559635818655750977976257440598041323137208917839558129786544050667105178943168166127933613592764633534415413588520281769968974279873002358467122003888518255962914050523277015200893237108646178155740946097640886669567584760996314852320998360199683854700429633261954860927433256387226717629710340703992620607197817700625265202539101839469442977199645221870989964925426503168338451844492854059072601345986098214290270667351269318306982529884090892922208834918567469387707476494969692071423445918552867528749308017394608825970803021323252483171992870202082970479849353105410253954098256776074550395310392941555731671266628239296499410592219348441182000298037272416310615841722443439690246859758979041097480183193659089521215562513431161361926710686795163622104022447551867152804369464170645581513260611889912727687841589017086349375109743011521632875505567569309292423896177751290030975874542460960951932080327204443789429372176935135144693256508383854852079888982739990062056504125576724377620661425635786776497602625487233971433156612121105740531501632152107398899380347444673702139452276108427878363347436878365371101360450391450452889098603720195160825744859007281820771213707282217260075544837745390984213730516972171110698918937769983298491948136323062534454715370931032120160853458840430550517238282538607619725534111238985932944632646949248237185477851264228460615484062719070448430467737780791413355019686349335708084524776950891564649446162337758219097422653344959413602573132970522622566740473179273816096781789934685293852860701217881237561588747374397294013375149229797158753969834036607203953511816092951685930911302030785552148951942113678056014589627495792845920358377450994510790103893385012311056103680862948265891049745524309823203800811993889367818304773609207903424640927933933233011005791147364280584806342913513766952130983506809220468583197784450797071013593617356914789464903624484670410714449773181799018939529448395035146650802833435860631772494422862670544639299330490864862066250224683310533956257033503313578364032248205277556084030368582971990317166767983015780537285677322541958555189063759368383181354075076223296411005771821174502657388973633327005334492827184953473305059299720854155592484149677959613418583814026962722433546705250915732930529395216417718727911310604136860934574739078952962390076589533600632983124157389043178866369145184396125389521173111756568285671617333546999798850396840260280285719013858131263741696647883762183684977270349801370856403433994339887209667222423996539064913002419519870931265657278331220405788973051809358025063267279134062270534849336986031247139278389871170782728209539465002803590116784385320086141481566247639207186333795494265872098301490719040978690586547100446276377732633695805130310550880770785450565548543222895594861456556108716219908316382210495699121103465341717158703295990667630269695300747370986207322394981561808579834438549195307330891293678567682228879668443966559048376293130617998800655516068210084553208954195152869071957813209735284767353477322898760003965804045327108546242539061967303668555303752790431463633094149446152630422698603911924415626805792231459081488100291877749481541938404508939881235707215190283141928738563209292396627046884562399269768091737493574882090546955546387036430038133852726423682404182297437876726197371712854985564286299401659656478565048092969299069645210400754859084112519794532835844212728063694754855314051895464790000230878971351959398467810167096054851690111497093774958447267865950168091832354093751276472287689792595622824500279339609712256820893420309361808861874093124851414922358390896241403757746035405328679470809655212122946165843495703919428643039323886483376629546737240140072383432600729322817938910178156236444766233172661443794977758055955070635241930638471927197794155188510927668895966208346584205375333629042936858492435065126849714802117763822941558584042509554776621749779866940936575624100618001726714704219491311526398543094869506089789505799460486496660987789235346694774843631119664269998182202741171499774837327360795042578371140892562157479190252881924394988739041079964871928214625312723507068051120562069290490332030517612557439782717172704369459017406053128620286315550227508614467234828424122913213975753827010050806586840053409541809941608237591331733235878754264792360395591103996966396849453471292984848496067504014637483900710596535359622830572314834738907432374415246984971552852884020878637077087516334964693710575750693871239898255030375734252382465173857856034909428200090271658763020638889754792755623562466180533160783146518875208721640707031622585724766712948189897638756290706082716354826887833659405027812021737210147830108638531309642467298432165209151825001233460877296781720419667852659022145911626365332796182076133223789629623201691903762376336164010780861067155578029789025901630129718703063130616967025168039957517001176966499083454407714888664927624320562431481096605296991796349907584024336931043977593146310281472073227825997557401086982927047785408726185769195845920640938676547310355035617245369128011580099158428724981399037407581717632742982470919888509304596557594034765827996754505347916274014728301687507194291069945788405968576420439245146513851870468538423220983221000104151659097443331905111251276669679465062683132691280796065474880764562253723991277461572056131566269225465247574911341923316995901146886407170930581674231807497253862023960955415004103534350853455365642656261907305356770009744180801772371211465583659799240731927863089754981461306936654198599064240079350478135010191598295361121880464957207046841074066593240946086249033132840258570083585256139043261817574695093153271040198379244417650323261492151920424449616530950332728569436544381467825675398740589446520465301031059883259657274202371569683660948566350444374008015028384464314279597609535257164167824997015068187783384287056179469594698962009922610039090700031052650467596018625057338072965695945612123116302978640696263325165194036206577846484148191698657765119359530443589951164989302735160482951046230927958601647607141006790501024380372671477025011340391942792144897909459713539290126464172025798942106152519071660979855952101057917621993636562310140970829769163080788517344723412860523338879111605250258575313887813060100947251888114650040888640379709868477286893189775011374171849596240902254038174012502842942625298014973200120871444794640271659299252044531730727842502603035080369832234605477716324805261351486603968892388732567392853642595687373865560631460544821217511078011517954415514907066103700849550960186917937619923350838089531812818490831321356028546412609717023768218268018885516857341966080811808867686858252475560836918562164768674940472717434483397883082562076351911603961942002651267924527146612613123810140349014941750551062244090727490631332374740193421418225757081305700396622160548854770430705869215459260663425074023935855586342374813565575192582638392900618352935887607632065619838628460452441041363618135233283534455848637735769524857326879930023983903278751537391364405415925497220454220405574516111586912435928172769933462617240057556846699561918429556078217946794775785127581758618387818769369078582924948053591413684254121916545671849302976214762433164517322336022405391180005078609448401304900047153011652239945851272933934029504482012288823306357151729224898279286598136442618873841184221936076189415016112723811119489759701794599869607453375863761877322648822052221376979528032870992776294772194602520178956009155900572467829387235727999705784246779398320346195882461352658345845856445571974608849406155512898902893721922851170738413431798033752596946925506379523659869894018732440936631659680843238905318587070488534986929852212215353705303947746948184463072927041683548076508969911049615441629383968930177030384778672192575796556188224251464332282011818042169681014171188173979238452786960361708136402552859114152796268503987741156371479852460730415072792526042974978296109875397150894897513105213861992799482815511335082945947398632885957437781669447847634415168428099517886137723942734294367236681493399277558388649619680688202721304459393011666209509427646014282701502840526451441697486893874599029210815366781683148422040764469615617656559078338020097589348610031709851728283589048805959149471993107547287372074113732676031498816502605149775199403437886525698478134995754086858616350552786410597601375824346607154652229630349695025879953558843112992241115356088697034973672624735216024841094233367456894242746045343545766700305891893334090423714927900818154993968677478980605995891559955376278579685390407781302934866043967910330723100266405875227355254049072821207126438329788696713042367287472728813300752027924110414951853072840298399294982110714978709735966763112835554913067330823761326120560539259960398118007760341972461270937196777613267836357330180408801361362361914671365110547498375857113168582887464242565191900493240475634615799966589403459580925943533328078136618244534111223712938162847486397782578946533104971003848990352825782470132895051156651436442229718048399650345628453047301573581438033014764710190742229608379631568750325998764129713046875680850077099400941074322110003495698043164574315766593794700935226405789608399913589104818804529272641314730615098706433277303789248042402345504634414924836214045285071512639387699250997533818111938498603131856951177780481242458978143923814843986303470247198863854201279920231231365806857139545382609259677513890621856590035089878663513780514614657156094626163901755101403706733869329413259082882674503382181275059892177834630523655679277600896891460122849195276640599370745815595125067129249529958080804341761870210064122496991145616066693009166049590127355225363060529667625367535801087806293980182264454518776939327232772168406770092341880662396180410552974219933079012547574746679799026670890780191747335599077932298459033714900074597752812075792587988802288100145337615836264476531235210368006339016502541699503091224089183619314114332696032275134896096520041686367010961587472174802762456558628582608918679918335184357240458090351424107708464752455542194457107421898733964855208403787572002540729802049486970766487688578250900288810349082266169186943329974189144964565539570853355635644552236512126026458300274977624881837777432064625374911590288157317812607456665241487841685629154258178007973996156898547562879725433439509649227860348888174805929497005923538590348856596079114444974800879780416105889209083046700642342468073282854444191208248457117407632747352498948818794070682370499525214378532870241083226663101141035553119463056103509258073708726890670390585811547047660559813015138735827965841746618192997121402249470646325692199909611071502519234961032408539352872491052067367011496885032931617472439833374734321057303693577883382452742119459397692929090646232521961924766341718034166263093351985203710660126316381339109422932170120922771504315462110417197746996242179383375455221211190760358537767765164476185459044466900936582805174978474468421215139596140848851576104013666380375839778157958156317539275288071473880086760584972681875826945949872185891932248258045440107299109470304706512460567544062600255373005002744629149611590338994477261861145232301012439472704506135318105968453012235397641245164820909264898510570203246856061575096084959775833107785207566648055833722882808708440318336921088024304540328250230556475906288472678447427689570892059373765850003543925513191587586540301902056455780071288551125740020118599839256894846447388705302393255252664369864620055536666540956496361439043770381137006365221152643895677039530990044823295406656971012778320093740259858698920347264257640778359110679769656627704261257424821285449817851621246711159820388125299354776371678504267808713294250892413191832878136009020843369798806826972476472698220677919601135046402514857305217421712080199141468969530926822075273788613504615556072955864557883467341467954137367869322788888886156459455927796860915694108365331848441307178038505019641803087936401987650882384509664923658957191473094369010265323992605941865443280897714583255526713778471359535630851663079124907557837965865897368629921946120170521508359632717010429858931694608057551152404756937246974599994025233330623214167928012004281229794340000904383500074773660537265379043073592103370883533320919273286822845064777271450779842206144291170121760389609917935861748570262277208954386104163665034701840375799621155515791991351647447891241871267681567080786645133879358186313045291859353831852143204651763134501744715782048641604767129407743892146362572070259207142792052824266992434034503905224991740008609716376610420038292680949306786500978328550469094329950699875807194478213774487582001953773435597745753227439905632068918193793918032070420793739955234605279370915587046147312126126917988540730393158787398440286001692594267647992895055983432063171142863608501923026872887046538126860179639591154938307175950048049095406499773563443736269586148695723410885283995437487983113480398123133825829251197174934563355394494925017271019961254689418247288210890027977855427267964397602146125054097431857069683424083874196035901842687194699235632942208590608349547930132360417201035320144273901353894705434750272826443035476895709064882247799661578455265065578365876619188326699450702369723639724848965894304259745731490170744471248076562498610032747905388467898140820981306437335933349152638271523384932711996348470451965647709790081300047763361519138661052904183214020217407011747953570351452822538825990145423149370678616478027741701005757521767179050423849514126836517038233699156441003430334915661135214353404136542767701325649017135915474851739878872871915563285952294509993223446200450684435873244703662138857456541695003192830208722529565493635489574201212714914932625093559288270543737919028784317583366899205044804856826092803388461948852839286223605544423468788646001855320411523596620328653527029473065704276033057857568052094750379483966897854351147082404682281203345523311979615832744392027299033119963895761419658198802312331329066870892915741307019957067490729126961343755444635877212171519605017463268272239561795437482459712636258467482225247893668424141042796774286451120572895950423374157428763345109434204490146995364045243038830475471844535025732736255203698126797063017891192741750369646812884844970538421693148729036475338997086929686392865977917285606946658303216195386492649229470087848143271749561679337705113348022423878798818196287462444724505759371089553853039978061763012659813140320665458015053175754328966303012991909394042586829375333020395466227869931200407227794083229245741167998261587707647823486626830852051700685099113907974396033225783540646191450556604427322310233339527249370966866911758157125235848372827530828856312687166035478481524112187009426619179985740909316950966018584167208471330784047450675627616325050051930607720483724497447066155307257921612231303173064819908757873363438775488055460957708069088229671702065001910718343594220717816514158432658756912024524815164165372113450908047620003225682631487863022336469221599572161183278360329266809940122996505254177146605949227072065041401595334644190456730038275005034755149352880120568034402121769506935511122991539134443716218048498062174025378636728365029894893628911584988861292223488029768960515645910250451133415464115722546721329263702663980817323877656227184629107962532217511750426391020166659528601206975472995196906280372405751598852269297600315458727719442775739161040798772734873004610822021783227671018627085663627717240536488294780430460773260849597923254538057837278791039490647650849831384536927829432284558298267492566788773264041740010397136593670497860329572016073984208964338177457936181947753403443472049845414841277553109855736890010631897336285100860696630668074900166429874643649012904408302388235151150743166731606498908983452968784774615626718031722598455513230426821535708745893863835803426422625969730254386042073992784718362973531293260226146985383311694631932476893917345897454715982830700303887635387306985227798087772250103395031608424074025732907459124435206135508732280439506428022651507489411099329355210140604098932604944522793646756579121070340745963470180369214727153235698791810321388746544497156632965862558722483103938924892125725471132759697507423541458627129545020951883934268421220998560049486526973856995104776201699075488263208766647530138418484835416759168242811589495599105129903077866448751095756809732174097648107392682710594953898594905545348577439976074404790064626238631802440866353431820912656436789096266277526657328010433594528429370903239404409506745739395151563563308628326160577177376015329669454431023747318221317119296431337144598654427465228511580229384236133835795854836261093546698468633549085979826751061222556989156242410225191776072579796140321343915739784296587729905640453443321030093282677147003769105015146327889238468054454734244810423115735801198317565357631109087834380239353262616616838570949437985628443293375560685621876648081338389591913178117404788621922085186501085108010763004430796183530732320361006635670449185183381062240223321022480662038474158594241218566664843199852258506764182856590575982918071688008639000565220689303417609423525124997222956406020127380445674353401612068513163185707659942858995194843825161320238494013455587934936296490125909283165661067181701461038063342454315989910356890559553502305873974375774932741074949751010939158537116351268752287162751892584845512952178804071612504052501410411074623856669939218922747870899590978599338465439139413944535641354104435831115968405558530836614706217035314817265464151256386061189649185578733751788857807978972106351579675308237213907826499171238787142420511623257410503962978024595363797977898054241654043961361770408382849812745137027594552429887655068989834591765101682800281106842658001655134857354392453676835851252273192742845022059263895216755143367324261677050866149370721407707730643398935413436367613860107088936668204601038509664873218326565356764939694461081421459087744390911613615157059837206900314411175675384848014117827900635915178119237231971552713290145015385123319263619263662011523423985613129284706863461258156980372863406446789415004469447372880276563209198009219742861891958971343251865217579215822311033192082615019379686405579566214505816591486845497981405630625549331896549502821051946538115406658683974484781265963532717335078138385770750147488134930828900800138310326754092239152842826309950863852875216961728377725813796333452153200892589751263221482984494335161030183433312968775974493670922411803691210161085967779549686387299335951293681457708186631385034729310246531708031720286997755237173736831841040203017136929794003713167189820548517922137931843467041378274478207745075292269515438842654739888542937765702813104224919281066104223246772415375641179628039487180628905583177269924242286743253141434985176452200967564479415167391963626741655837891333686211059553902277371931189550530065948938897099598683253312810532018733375649162549339891289464132167925965024043151004823638075507793808367445031324196332773440124592353050312358306024489791677215675938921232537690910806725047863429934589278339417564054867320108948296369785988035868276865028734397116872995688202985179798769548175258478551084993905318834228873618990310699792016595547202946667345472691564013169627166155529724242949116358643485584316940778228052794649185024055794466814368737769003797727007747642757477989532083404306823153298957271944764049789222407092312252054874034339983085797082539385342820379161227359295037821798143232500062153886399381010365080952335567872329053317739712440174860779182469894824700624251623368390868977114951178896328218730356628904451805043004408561763682655128700378577391520898740565464721306970091754051568320739188310892055104194985779602336890020848673101385071451885930664307486939491569282789046063700977464795022231980213176080133719869578819840060331642864383092483876609472905388059339749791607147019624215343046343786070467991132722865684080305097985279792387884515741879203061069399655509189975989804431466787908290577434128221039503852171870991477150286352354160485651931538689693251826123292741979269381118392950592512296827645253040773991717935325663844681264509671928861923361112618661783452275028741574486088551286735070643635603874299674084925320664778714571211619804339142878768172799274973886237453536081978577586879926489555263561205180231468387606157883610528734684418702494123655089268209448732043927425954840390292100378187671186755047721097588514071913081159645771780758301981456731724867864457824906066112975375025593194514059354251032835161095194686635129549096201428262931979757200092385476228552658093540128468502164233268552560541946804538933975863387570803666206949898621936257553249022891599223667906445538013099844325310985665418145321872848425920932795840352271535570054688294319493604726985343734612201507854923670376644507213678279914330160994908903360751742508489572329693594183536718780522527059085597682457796252907907689048895504873336582069506774721683485571665575456380416037742232209197480302615867908906795186780354015201227683965232597214515434091389336640966889093659394199665294114668790728920049026387450623557883366823588410482211430249804439879958219018781934100939260526829966005267162255500672249230544912541469666582096440264318449951789542402131098422686220866273087544246062288333310483627964588930953306359051345599152738625662913062994035486318604786137678465406792612625746519296326831825138528519709802692527516843034593636188997841720680207798463147559244979492646155600144121831377722077536276565688443576625381255477484827606035507362123356835332214105903543518530858121419979181388855663096031160928039766876335380283183847391058621627096153669728730713772440263607862370214179441050545600905097278986358383156516854941083671355320217379830974925288143981651955678681646544115945051472769942505805355399059476358841008850724629187146238725811850430393540429197863068814113875104569073122599146171223982475036770340073073075394061293306325933609115041921495238519455686442567434589563665680750805095888515285688994858314021029819846603716371305754936087161638704390148259950948406128237390819647800633822963878674424124125046410306808471130346301949098880695918019074413123796690047702401869474060284628017090166438439593356925295917896646789598978021561784858641183456118053224072626816148139948579183460901272988756063748932420596261907115773006833146270912760895455418355394234079911280151034489732334582315467654811587851687860413240383530303850071376232507772330436569463616935427999784245386417476751445253278044967858512402568589093662294499098617454625586224198761900806088609815709741124826926877578692071735288716885704656493004730104319172405647052510096831501671797988554218390477764167977539498450743899220315965340466231542363425643811754031716236364490424092327031401712875437951674276264474933549887255702083681799207061570556149267591358486161891322196020403426001740172956491129937202904740576985825780297170977193357513806986846799160960540810660414681233150046103440602153753606621695603474295930098563652998606225638526684935739713708382145857053965318747952982981332894177701576380390290104378553998889337413517179232322688431565488033124125742945386451224950641092132629250727185663489654971801317287420240432339753123268134372905163267886623574002591983439361732211693648764842148338659531023785660064938308351171513663947481849997182974288669180355760973814249756783417014345505220426781231199267249531997456431862374322875809900143164745742477012052666933064949139686311989615306132228504938690834625608582120726675528415440509598716324858379004431871989965831461243912015199390653744513470654039228561866486187139451916890299487515810804634289508835961970264775889686045659331280557299514809254127956646415177160096712187689388936877677217693741338780900755538239973231543920677153530277951055119217144808640869169014303793618158258688464985369696721600600630066703014085783858440862015921133344788165689143793299892194910991425261686402370048889392112818246331136118500442436257166057058464706046276202529737102412230953706837146337300638335954432747700330930724217021227765562501607582156617873537704941522332604017780407400375737111016131880599150095561565141662652168042800180673222053303433543289822782770714527793374189416812960441894660533711832714123031193017647362289292747977043672045915320212265608973674128091267415221823070569048065263308335911809512006534517816089741267920938012120143548445186102376116395158594174553326821272127071243444396578681933848356205952667181612806622451158776045203692646170805049759946863317948025340476297779354772724487852018333081775614753130556946372830035659029716529009037526587767520268820076968396748303617926661768382858612397650642119869154564427746845517556743803979298754721806670575140706872949174713783506178333652083132185446274643751349040459368476681476442211367053465943503220793357313255362548435949058835556149249646504246232755319889171397218614347815111047867883622716463264967827863824840155327849525591579656443820898681680154803144710471779616576632549968172347787406522334232285258382025079462803566847150977237374883245925194177529138601816075391929802332067871861829517229783578473734134722651367436840392094063322999413511709699552570084768891836078003609412162434836791295833255357184373754311869474124223840963851220506293408979842596758987994239456180536870159036619268774647313108382142171584358466680751351914636407233688998026576916209941572795046026050429100048116954047433586243352421707242866776453072652137732649357262144100724871640013693336501223669936994936895024880997704671930034176436376483139152229298141968191710987993967531705467400944087664850524564214733372973201817825333770256067203388586955544088088649390057603228646074380343754289772828012015329892767945195161531979257609399410402361477164657131561013144131261846036810669914377716766629247084862159692585826778570323740571278319927152717696783827653134729292927106707518154127419487170263853988923009134428944330681217156707277022533912412279899497641472771792618752586048484098273482220232270173328378448149483202131170344698116946774006450026296837544012791755128982990203536396239160414153094207811877457975201509675359302798218556813558447379748449714343335545053403196787086211009595328859269407449138848428187700845358443848480613155090827698894776221427369039681019449623542415275022030283908093362052195655808823936608946233110366491708287983469280378548762335231779658305146235922266236625546351902318573180247486601792415990776074771314801341248019018957206113008691001349549520970075257435568738501986938810965230691355184567905972658975293034704050311296066817297467986496125661953847472437689158561402947473443787414013848539454257909633038372864789112704057352556666166220962298188928433160950973266955865573499329023809717603067865950976102793156087967492774223351056517600171207641785911925228702318609733993181564804922775551973674656609419140261609120137044736330771809328841402780300399740562317947321893319330344339367181683350577678463020756043534547802323064525275124532251846952057906692900766684924326214727045793306692890886776783038417185866959022102980036657951326133029244538838667955202810917726689612138678211086801183630702649199105252525181137323011607974314054778414519173780950151689405977210809957997938518508080563159945195683572934506334502836562488818298006565061491437444467975330397832668251908716007180110861044449286557260393529488581729600800678563930971860778251814268305130522798744176402221462807539518704109985976231423685331495197102680097570674407942484997795874280385349300493414357064029119333218480797635373046718890484346456379114407564014581308659383950549890873405532142108220263727831413337918507672374059159763466682057295621875417911647131290741272192866130571303943747694480466737202247293775789016448591668656102011299164957688152317553082323624703975869154984828775120476691941450307491755674236917190565245110036348797956006533232033379353600938649267344245374887958509309379990321488330423296857499029811340434815082758558044836875967915009709135495213956901190809532758285973102208175389649051299128931214845274736679360839281320656843972178574108301665596054280470485396506302016675478470238289889300571113330221504155890296971397773212001770276166140483506198024682876739902624544534431585923240692825454380147998369255838183390563710787309236827660303477913670646183483547613904315774115796260413536177909677594553747565299123149210396530091760181809695034409288663439967812267145663269264640703499923798442099234798667180520965007195297556922072742556936465076035088600103946948437391410595207514219586419091431220356961786621813599113222737029692618441293258654437196286370241318374321458057403574630623814928886900223677126834906868018007842933201220056779161030587325896612486593620215032231753367438827618687831812568060204347259141283869446971176408029744031892446955606859658389295801526592538985384204624420748347710124531399821316064068441634189491612822513763476977981979879490312882397290896985845255744175274915978113386177980945063424629219739905736289025308234224104302532526882554857406667824008332725484840908704219662413655708141330452100997527805386177466384158263232391865769417095367446314370816698444333746322430510567356363538059355275830438888910919944596792446155017413097150347986688640820212035907110583692935320175691326591970854750479976090508775531051957755727819078579273589265479503764844623540446005305000371055859454255751668708458781957062240088060473476080887491910821220151059793410162733947948362637087466677295407315325976700206493956333784357237559358171247844146485902217266610702041866720337090144135444772065660076023199079659426541826890270465429694407394025259005312726060035160558443132097862936460306961435369620627227317698847086680036994184912244392482012911152275819770149687440749943068530602205290663144641090414081312943039252736396158725588379042365666599420696492194926126589336722169647356083661168186808567286275454842528096890024463732482687588121675670097185908055730006512048155688277990329048333008353812641807060265358433757184960451810857254959963100082106543862834610981576974637032978658834211548100122500413866698457637233368272871254159107582290259144118694555302385256679932871853683447582663199767552052545216024559478028898541052734379075541767523889571700429584807490309351907183995465631974890970090873588876287649578840301699503109473304956809089259165858362993972057590301800082005804908502924026071494114973560717464280262815171809663030493932810898937973032330059645669452824317604632619486055021364628977103723139171400368210236116484808178483580356730020306829224235486126152091823191816198549251206177966735626209884360000502105129828766577058183644684373107970103508389362705547237942282749498691339278192530161424208421878899610423253752469860650099236874342746592237146786134881780346075175258026102958549984776715988998212233067018452297154819784023195656288709182691562818600936242281675754795937786929401331310076594985047476358068774424562875586349276455980376116628370028370225225351792207018436601064352874516669391303745960132605177948402591161746916909757887295828958165729996302128704889528552579368568676294844603461134997393715383166874991579719002519567076361675783772810891912863351360021624855714337321100298902795210560545968241410284677952800383067033812195953391255449318771656434904114750420034848007919241684122797277585059156927903357299432302978818119805686241829385637921018597443827243382863538508236630850553640442528846092996217228304448712723779190193290344763858362163641247963311946076219083492390676022605859695747044041724730235723751681090399924014810773687997325967236056078874559370751291672324357584906104483684572822182865461535192260146739650197087587533207761195452012296558558327662116542304342814354522674987315287888333529717321064460219713474368698809807449461117765862210796640035849427028585282451355556282723758341020325778100335077904126491908323695174269980344036647256970507127781590990744372949163770345137382308012115068007309843744651362042939871112877089090214239427519984185737131848308511692059215866420163741455162201649749569141495866198694543878528420114693513914018372425235621405978866574538158386720503465502699064197006264737367921830709797914030813999716142661169403347715620869202479585671902847098901024993866517238302413942543939950974875615084556513545914231669423058925138378555829108107988092026757626239864166239137708216393594094147665575802637503545531362252639718510678522054343653867019623348854912795592387040900607031603230154035589946407145630528073909175191555768705513452184286010997087370667019619310813899818254582483050234896458563622069744564908298776320335561622109391614884855004410370623576837219994426572818190048450563090011211402741950503520782489524988921612197790634730548269190995229075549259636839169820059288843664755422197724997753456933880940592216855864815024149303502867958211953717747504708162522098636466210985481725074790780580761569204596582054549421545710067061392963728850398986499166920330939389338059210814913865365230445636412846465664672702104391894673161927228054324902445292158570821558197110883988907605685087735188138055938662849324538708712492602785886512057325636507531450909872049057072040638918081683012884211200974953958247000984679092282295173586504114145802138882431036708987900256057147440701887745770181484515857409113675040827440133423392549593612207803751745969123334095370616094822019987974769879714684850156463657118311110618741085719501551733919539215752654078255065151287353109182181914858009085465785316721622190650764809560126666864035074188420987351990679724090120257989640805513142135578749218017162123212439090505020239066889987890865792954500495703193997352194307458054885672837965288143932284780596787757729159331220675963174942304543584561384328729396388934872005495104918672380006532505222827813300392208376814920400244835862827886487535966389027288131351387395613474914996101262767238852771240381810820080028674360199175834917313613859295901284783657619791905501136766063532531873219093205660228324243651533011123097643428500356731827081486431238689336839137616773792409798483376107109542454203538058264304884917527076006201601294475207081210013282105243363710964913151593033778258485598628376813548004086258108641480297150152924959948155615409283962395496876746357842448095157107606322713695208741885937838760711429671610080845900920172298736850239771246322906588874108740115737208765955960836312476042148748904502288707833033065204711915716722428696531005417848470928826985380450879594935815274617465278839494310907318865679425352712878511064366311782948714162352385031843056289387915378828302662769475680642318915620540215188686017370520084134275001050221692320695530380604851419137526068560199575692028256268859257038378525141524188641680272975759736332341102595671384985806874882704154287951079334588334190269460802633581277690884485181397168809456040165195402501729770813760120927030433313062909408543185668437431137481851070087145231691976203238309991795918751972704873692598047472267662135322151805013577410369253544679200240830100999114713104594214565014997370194592791873374190312739319903074114496709864750413111066612729303429373909568562647852310010767697934144774719643340624490659584887391882712176917106689736165190085464131402366034431077299108001751294357265540680559503842017503333678786673426611778272655426184306735512504495561402820483576203807799857406079739132032837396587839764504089333138222091562462387806661027204285985541009034293168875757823475862197085139546490799849200311924928500069921597796561456935828526074184216562446712235858183304760505007804526567696844954909375979925670133716300030722812398185007821223542872127355310746156872758396409015311094378756346789334436933978123623590311238022697662288266886987874989020475643128535895796300030103091576909930890273827815715158056975501025919347914175337590234526062905097595183364236534415469079188863313950397356334097360251347801757349389651053011085987230091932347154993071003999842010606566359511908578565415566031664653683001191859092543329591212465998100106074905770271471091742177662780200954397889418196929774041961860950459978729431960335516006654596796942876294542641850390418121379774672959645838921461460656859518496596437551403509075924010062035820277957056444159983976338350921210154836547101691727798571075274513818885202507242183807787786468996361094490387937557915336650591346025675536083746137028612592511635971749087411678442043234256660734550864559552498268796893205848557110054989330883942806528698583509380236544711881326760410194578275187821071502313756774752452493900329014913251943312262944092075965242076566152404674674425563629652859657869976030204834195554340500381590650713187438602010854000812593356129972492073551941557228002455766496138122261437988350901254146906603329643186470046863403369158377839166169676726830907978325170245978541779671296885039067902206297755803730955282342207869089170296494049986837094535023861327446849249250139442585500609893878144878405416608058668268797388651951360127818216027659408461726832934313425864547765191920132358114581808030139015515866437976306413534707702577894472715144974565146828001658073480244532059872384814258069373044281059445976815490402877110671329068514832370922550691813256970321879447593996280505813012386369741715043907973887573192767145626269103935194321266635253245601263470482571674114501802464553407791643495155996386248481376296470355033025201527109496134891525859256991524033198672488568568519618189669821713897711315051280371699070987275645044578771551122595928100533322389187088459106864382601575143788868042163071983827940609023557872252294284716168229272162890243208067480630504741396623418023631157169718849351176007394079945402606052691593383175434173457459909908725009104775226404643070362200211885654646377846054856486974127029982603859702769868692686776216093985826472814904337823570359225470081988437470746953522631668886832667373759774808960637674579997474565856066853272810829940926459877975063544737949276649785223319573070307738740854364239014316834975010422647121206171133603910772928789955100240709318386646613848583780587817520231190835768981729560106396353839838929628541024576586764214216970576889613433828404907862311660365582105259936896125980205609089581424706500397756026682579506166247029735707422649477396514963427720926333869034406097321055938999543203972610912106723359725917891679937971456446163585291089995184357513735136152756347839409663053579251101704143418272156250211762063661138490920046089522747908019405208644810388501148264297927844133416432008310860252749761415022507705182428309925491354568731936751425296482725263810853569643600938932735640737199749952844243406120968764688974912664038404534453172112502311994253950373295049852327587607011811631738032138052857852838413232974281923379692872197719308696656966477106431846472270386364889561231305797068949260149270700876001646480714258156145456356886118023196119295928323642820127320623206774191138617741404349250017249930741059445272874852107680202819218362258113565399561381410171507267676480493855945976817378947322798401489388551278705295039845640620002572412909161043413702196788621607845782557762300288035343209725184464443651227595552689145966784852730206006422234616219567216885734245511151172083937657035788656500078397621969942579557792673583336983939412273005555255062226477945725418660607969610691268609483747683606017774676807406366080302211301312350422491491889703300795104427771335254992913372446429508759685459512785212077286705698509564259718432016829982483703650306191231780064085130994371458638529637901212422508363901100325174035672583209225202555628169658564291481237717715139334926935991593028830440253831943065890114801505659161427718651649144642707854554733600323711790863424489150893991389267783919332299878006233369490397983598632424496874481684539324251647318030187720455499136333871100259342269389532562982535821605335615044121649942709037884181354840971305422099777932758043379642087569635910054645974014404374141790031211699891983949161345439248828928646431105952636747971433422515270970600041896905356714662090411674190797836707117641513321154436629324331672928861816597669272505547537470546544373356889418407593194026853359634103997849480789391106347225449479312967341769620141137092645465795833936084631546964417506785832467420874249346619458921755611145232121991553814829798960987126072175092152173514646748696800381292729115118882176295744492741555589541958116319494754844938155246862150133765732022014335967975047233159553137253115015236007637504978848800837218692839255822498665988770140512158895871162494710684466142911371120094916281619146204998545656666260577716256614425682021815478046935763158521433536847036136494668800471582841647024451754042089303177153552929891735541972615733081700897069363061381674672334708985138984144429890654521935612709719451409856703817264971544980882125996824698011017081645332308448140217914149965197362668533675661131680739265402239108034581840114005034717874981037609567690736453015302795768724835812109194479074082647415370702469746499565122000510562915162677320671416173481656443301373912616148662333296374195119781244730958336936886127993066913003319208704612634303701501324133023493681159558840331378253111263525457601383433380974847198121692244393932881224272435043592022999038467693826410170766371711688602790463513470731925632528122856873232804729919733615766718494270931049519552869199787139176616441143288181311754389341445359362703972391659641045841925153967423365040694714734051151854196853260094405136264343228708407160615551148844322534330269205452347794570238027721624393870957045678476580523913829902641884198814257593386594528214817663520352519968493006361746314868425434895295456288376660018756762678086982077655282826827776358283178762695668718320356966343923208210646486737723285291261705275425795601109393865707707412798682320392892929511155250850104827236641464215591252729257087565519609985989802168729076135869387747087927187340198274599457401846802337784589816247634017548954902079107242317691141184698900767890352755931260756460897290706758118758384557015420140995664659479307224925447461462568164754852779594267749687368911710683889359184198155118879234442600856860879309043203578090620711903579613660803570976256471609384974561664122343830550912022486980746887177034287158523322855674134350309595726464804521932475592744493506275979700889250706363078372569102605548873295592227718063426674539479314818619754173707732057217837199997294170232579239558184313626063671679142737081133752084642572973262702321220415544244708114746731824669005109370116035524264313529008541449849979996555359976119309218890513666689629894466146997054156653588705725223707543355750634288151720391001261730267638972380471382310539163230810050326715143393497317284271371064537636065428628968844381451619316106062377097399574412440119867703412266821161475395888523066515590761232386359371061142805223977121463305384538544713548065883260275173965028100389108787204297690591138414990501240339520577347277408500031916499917602592530874100076007518029817501261548474949078300727934536107185810235542618972521161283284023922304077083294718298607154508541948933472856725093420147270941717732028070300672087939776455334848511918395683670114624996628415548251524208830462220261007153269450190304408613539486923120735281292841546350658897239646924918500419960718687617456427799862957687991974626828011215472617981938091278715390858109689111530709161967143302977956898904900337056155074622512314638640939966505776323067148552578566888213275087548607433944991051034988462166248719982740270231254120718202951474205327807952590174914965339359820075574227909790918277118606246225795616304279202403369745530993726296075179620085836188762135076038728249764314591634188770799103631602977388774950360403487324588466771314070835064309197598548259893995687137204949319234462117694834798074590348517663523847319688090035316489547880608422089694824891363180967965208597010266135858270080057030717512466386963300680916670004356626908813534841612653573147128587546696363481496618428940840437820405136552983796045894869204439804429547278622418060134609109968758706608307950283885330317660979582595450262255477790710393226225688835467531451259942526923167952985386790832876684133924662287438072881931108517676521982791049973325891541355946577701384153816906185372439996725288902420800747337183085981632868111658055615979729937558486176848914308506135755099820456401865574384741495738655912927332394408819644443851131016221355530881240410210664944629152721615006583331937063744355012598021714285287726356784876923869555058330872244890771305513358290508513274749825017574186047354291637160421957197980749925917660799554147959265850310089959495424549931596122125579160274322575765031405714361256249692350251124235131709507103976967077413152530114273536959252766258031279312403123334912179886659832571192447902372670513587583858038527880506666092786380476841721351607874510274130388708631284088608471305387740708412371902374515679179052525971961505603861645679543826207820088386743564878598419413670906519976895526182209708109250276715845021710103842164672044122757913656660599405444398410437767475376103552276698805759627313378962123484523212143651527975461422256001451403917859994164341055814993970761559396451716423003260627564028423693540997196391434145124961941272246879719257878993192289637350319812564924239588883722159608607757604518946656744395941904140083010999267199874708516034314349070513436161990855378408425129162654295609776057896932152834873454581268509152993305447476369064274110522164103509930224296484384884440279845375342739643324933361449272839220100154834908939383870395105046510530003073304691082030369311778050283962908513198080313262624042589812147797119271207717207210698493876366257090581938418970497455076485211331157348158694811623377910801613124744681374621387925808971494032106783588255820622055870088000787342530685225472211127919748505388750076064719746901504318078441088225217447819317556623709765067836429182329707290923433259888122599984552143274323271792417224610371319270380437838201264174636088098367461995020294821609985029170394658866652940389369063568681752247673354827467598906789937848556729941839771141337667602418477393364886537763201787783062685644752698605262686574262996897008046098109215083335846884887157352686139201977529893941041267799789257115099007357886437243723879634065890777967227949536174330650216045307866256713578155173248609036517018375966429215739019440767924300330542273074618185796385407451137858752006145781889895992144979821014425856807609855941856824057767960266141377776413512523882620667597229147924528726652456483478733664961020150206686886030826814311482809616194991222761109390024169915598956906506498974980592984223237764494119452127267126673460004805643002962527152594856431383401847316864558052234205018095609325374318905171125533868058596053261412546108150068420081462865517816270977225388100141946022279722344551486520974972735771703505916335295517068076131881039372036768142140860589265073248946951160019814906177603239767605041570291591770630075114447533684178073615944090954083904746193716579959386741238093683668646442366599792974352458932840223730661319280532399087883147548807758216419050898662131303708797139981788368810672986865191470054238413098392641941073553681817450688467469524063115174603390118804819295348980796823585419511444454488078999356133393485596022436281151021794529138591753544609999347877135070914430556272995440315764377606437240096795664488618281859495684930605878664869112451513957634469611866141242638184684230874154906249615815708101883442333763922826167949726595108672414422659631801161665165317170859574209223161028053019005973789521747021305029133360889495410829159800007816338897774126933821953204270362810379171322684846095088256383754926981236530119678912266542206102132642951743682581138295421803741174025167415822831933394522457003186665731040659249693358654355910261164078484855015617318547013770609648578766608151919816974145490639686476837959739758292733108687175421153730034538460867392717181108353813295494497169125949254316134095311782805808961032809479764142615354790657348102362744838887904928601418940901396032787892929355003688687418870572789272296183316015238338058723836759583740698407476477079094528735310143592042041812875500618731371702947531455879308546439574573645327551351712894291065874374720899708631780374266043451821817992418330479574727627619186866650554018284399563049967668092302963457917443627998318826159436385753994025031554588946371027733650714639606059484495478606659309919846755739423519643161916079023820469689336726301945566257174575201492180535991651937484871770770114688304317699485638588269402145505390279320730332362339630396758462173053416159296050330557213173869657578162751290240311610521986736080598322311239124318282736844045276241416174000745934470554558502788036093802370010276606515166505718610397268376208875818879064333825306297043156724009978265201632800127421607486238449448480692079375122582865396826820257872841603799592839835040619928225802512509371420361984192847426773025270835756994111710971151221330503699284546724478747354622907844101395749168308275015252923622131495749920988155828892240585308873999592796255717115600172380535966476795671674222059000349990794603700748364862915886105220512504757662569065759182320038738368508008125386267386397753544689758833480715618949615481729853491988302362584278623128931005463281621300860140401883335511808137807087248243378434057694852892625163389462603860078364037939472186168623799494449261080719098637719307805245728556707150881266915727778491196487697068447347545326513431581617753760580664298706569451572300396801967168264506375931956026745847414164382223045247666845579896112001156695130933556190150255999288711868326071849395218339577457865073410527533043293684053414277114545978867687569907706280258144419098970515296091230689277572530752045582063825904188472467412817492630156771862823303004307452084978093730040584417950614300243543338844443886014667358272393709141118519300587520677527770570459360919437137272460181376004553344089077725928509402415448638004884442218876037585896061735620242719145649397095530185058081042713762631566082298443354235247616669503867487911195625951836344788309823893459068351138834419985099104463488524188047295567450448038253701910630056536414039060486787158860750905269054497282330107518308188324702186403140857564728871252901882127826373454875261188745834516916609582357985647333315539854100773417283909147576853374992634655476009809427839466896386877719612101823601783198199218329506032855632407806739171462588496946494718930286204722692986043679615851273084485490949580683833418498485768083985995238470246157286941834852951201700559950783422917973177724835008819528308214763335812556928985956567421857292290057185452562398701423690701078525666704626339191202099785277159474975943468577296240162135216474217224131319919141351217587714791974646195785178902215549146143644483552712499638078788151529764407031386618816606227306168836949965413791146780003777167296896141033700034934534184066534451069283034559565272518937113892858138815121727948646775960362945232649362118310847726407210379192109317434192641500118489003234781609956346078284221967006394036022950309437634143790937246839922997261487711494123155939656300642777348812073462030872237470414832248899077384001893835667497254086798388577242402512867911750344220013754296484893083163894605853405091659446080261524152795653180601305192843072681987829672786259902096842459536576454574957436135802234865528580849236665899850776050628115416723113252553356263471402838323843784240707616227641432128025782539423837381794074453231170241874079607979996489282528115651541958917590586522115013544687365425794216664777751854836257161820755828993967342838242759548758684579366623786997190310636247246005676585356464140719902095806513152723161562537022577566761143041744941887789833909209394946288270734788695517742526927429545213862975094552620909883172461872246782317849767246947414236912080121868602230276369952618335017594247312545740130091020288942110303563076947738040935106217223108996270649657792850492857069147523398003880070874690648347451668024771150747727420147302347374998749819840418572055274476698099323342872881539593284028824899857992424979245746789597523963405662788927008174480175051611665905074181558510612792053395839394425808797160661349357519894548238555740503831775528394875382889269915641706331084355216470317047327393795673732260083896772412064580252259828516585756241561560584428252561450287967163602260374104081870899353740082971506260639100703214372683739771666450553702728401936954890129236075288053950070383056975634652780922336189616716765551181020281866958117656023968262331291663174612596395530694673508508791501012158327938911259273958480351514061527078858374585660751408091744225025685858653796484101957020224422686262472841566899237692208192865150198371425455183689665876245704664320518962493704488140830979844472678291375165048983195175226008406208078713303483236157409049328688008884170333124037972795880243336373974873739960214807714390581174343576114406353492511691343435539929192929290949163777056840722284747707237598099613625004917823259254003439537826353164423298109335582889801960537161744393525959850373951500782746395895701141358668722669529160524365006098214407572280780701964489923576992835557376433571711182645568100511509500878870941982408650426506449005727867075550670144522672122482108781268745270299332354479400509994108627082638320697545840702828324061527789955854575203735858775543744673146357629141063322675450132438982248922257433846812085565609685398371482106314824838374656884838287969628244076830349285105146229344704400429310140568270790315758222027144014292258901450016787343279347254472606682393274070584625332291055001913306980361460633022823850349742923314562002234390750210592441087451076501400879740101825504721055722332182921917272715400317989880074625733116653058223817435854152548390378204940567513215336766276768199121998876248214329623227457145122495945310823067009789529221565073220226924366202007003937489911889346734227413586072485053814640021346472996881086946646882387006142238175085634784778447482002228762028514546683641719170908776264291197499974355212598625290585071021576000913303630199436194396024331944864167131119369087839115214759480529670470684123247559850936537673613365085825296235470720310194256273543954846350289988914828823480697986001490803523367934085921207413676406555381893967588860504639943346802259373442473171911711540328890937685802865292662071273215045966720600399389257369225579159539344867760727216343248532829389286467835912467127722700542677880440423472747633910916053605572490646380353577234685452517692916114180971865387973857382114003043804021225168368488095269923184826318268578943784841492571764553165351582873851902638593351457104452492998874902593857403795410352398817840027334726961609927443942100956544688298305807287167884446670125815534938774642903865285022557707472362579375406805116365667089709824730469653568751716576660911082579562528603015301317593744886798273296117160875071505893810634730037896022263413727318151492642152131788262562840975533379411601732553338202506218299420342968268554214118709008007684332096717649540732978103243855850409116475577119676018558874538197994541102796830035121826564974818277162800826103740713381397754642807125815370548129291814892329362548499832419003150192743119613595325255603720245394233193314429914894310810335643816052586402241658687991930559006285343199306871562092322053469487762568999058323146771757468979471487507247214082490812934223204985125898933869527555715048178684068175844495088542064049567765607415863087482285720389355144115370389668997042203171093895794493986777332961469459354517724762707310774446855924697563395471627419126843375290962783653246712427303702027281214111627711765977910822743855706817939150022523696713854104923833558292873639797842593416149709657177016377887871631829486428200493534041399152874467041120230603668382369278409748775038241599806868301174489525315982006792513081964982194709856856851898731831961414789770508538424686574866781113254321570743829188071414252359891030794367530074970212618908001724070136508928716906940253155975401622571014847103511731031351168888821394910314317004468006128789052569498989867648464172001614795018831152159822497297510771296229390860609866249475353795275312254116659757200880144392566755653571929573942885516207979277973618302641740823924616782372490929078004101155317086923239444619987732666109189608287727894511897627641274244926857843814668919045534521224639989630172739441542423288894930649024544858419900022139257814186409408215158435946739845030819501854438794647480311131302733827055260453384411919359967159291625384677479909779922633739928464652272682294575129623881272070359055488433562608698477228995974624787012492803263045402969569257492051811406627967073036877105895292714953312128524383342825456764169553616073594176381085921871701054033074475044494734459287416184474384977732370624200794301415185633788438896968392374431262496850749056113308973578612552264839299340987384404116500117298341001989489053401633941579328521262828788239989470425446920565619697212313254460513835107233872268265870768367435318250551577308660509218755560213798431988436444069174566429439254046609963919106893380179275979915280967305757184721875861698876706659389335287464449113476208303773734327680088772672711616044319325672311266468274744244757400343809943782760123471671314354623099657399366389489423316975188127205899956928960952964681610005298653200702405580708360627962561373357738272341544745123203808680055156907737124018477651261917920646109094650085516592976757402991931930478121648237655780680188910923298949835609071815640012758823365238253113400474206515117611448495489615676894528408517921972368413142247620853190824090424588847289367367489312867419408395989841072717450807397592322552548996436678837903317193583293552036350351231101486457410308424070199067698832440817465482319127751661483973025115776969070048842659126649897827677740499251311650398379608504236543152587682625364389269095814416948074340883154713816097832020485443677192966758913808939267413008698238385103164236209877467702872734958223071998077803414964452296698897518776513168577556145214104067795723739772046134032506286908323741802488078688810543552670984644131191385450685301475916896200221188075473028962769436051640985406305171263866264232774636931029637970886244719565010034073501503260286101596718180490252146820498781210039477210626367143860798854684647002841147710803993558912751529324528395087419255782659086895481776142817726779165403325996270392936352486210656636518547946005971568294092554929301057006325658091589252037314716989115517667642430276584104554924174445614670880100078501037833166855121963463820923502625128792681179313774862126367585672224892864488357426929763329543245554168375251672895880373541154952391272648307283417947490033749535804062638948089263148405673798799534229557575283941678976931816703717084455909428223467137686483032593397601787632956086434462330922754591525269502850142727007194083068148951066946930534057059300430283064548853663875472702765618923642649506024107512271248169573091640281925420414827468738554755803153563502702889587906246670305383091565565031524517434961370160314911913313425783273441381332633109471312181487750371001939447362754756028122263418993733448744869565973999343633219108495590591647018558630965466679381212842098751758970358768632865674176225462103073096659135740465152990647827971833092097938999189852424649789925100188295995882273764681931965981831034603770293293278419366965429125794649111446167856687348755063820600346508931106503516208748089589902647316158789717437691073000836555780668202436293831114864335181583382733550617198165426178764653911007075532288210941022726718234215577724888503224503235076975057456314620606121150893788458795545506655363765294933133080719832416865782233219059620924734970292698547078840019412637704654302651926347188441893662951376065812040348273744327813814692045644868755960658797547442776682235008639255853257564728492500802210626805200501714660623337580800628881768187063638589420542379708799146749882441332430033872143424473986541783591896295720698927493540257090787855099568352251888161102929702011645297798367048346466756393184071476784096191596049087882990628631747055587207570704500846693053227664038846359585051140741019118292561034192834328907511176978077626205226714609061695915949705616359672894900843429741176691428693986491562763871269726639441941314034609218185027924101528742030569580979169185405405294710549520572490350818343777803960690762731239553858058552165595104860576814544943537299831944000519853274403765625822752501585078443906865827281364095744413443180937179399614530164012459694205907859404652382363867566221488473240879561452852435640779815833100940087635179054242601473240135274303339343393371300459491540939199036873709422164848590734534970376748061839110907023201622911239931122271272240316683956355300937989752863641696726937430929487293141208095823844118714259260576359113684697092480120922770322831529765689428919577227208781454576696715915459678191454824697217409586797523205839335085864921695097791630760364960443500843774142355328454480795068354859447509400533185956675876403053423331976035225907823158310618991549395144919995936444391430187262055428352179389600468420923200803847944088817605076906105798504969287917441269127924858276352016220339081880703069055434576348265707370601529747735871020988126709237723278206782894761907638425388070736972264866006864640490587836382369769323050260914407737961855646472367088239543123564899791006268345133205785395571472549506398704926042004186240028710047171169517877201208487809844754171931839222258818618871028431667913786843880225614935813128355217092162243359184023131765269024775560092931233868799981831634685076633443118336458774951328372981464971516713398898573864368357614775167465092533900880245482923636587354936185021998920962568834177276385083233895093177286259508204574040561580177036692198862902187615319395898637440200402356789452349905628845591023701082308237509832849056894252306447254206899498089604111643275089316087488420252427874599910135572618891464536496265243361982079903301286506271000382471806490446901954769333814760184974885393932912606827785952659305818554534524690687947938800901059263080473812965892259886256637638097499619952244636241813179375154829118991677801937479831617476434709091304060880848019622890689667849900467318552527452561930453263470050932069682625640077998817410161609331450925853464486976879737443679573360595101953060007394846713329952648005608081648317735486870969486329885191339274959970882037496346313865450635650658263466798095400481999511389271302463857405227593580968406323410130107087762574183879566980346726442950932367913328065909407698958954499373785685526333285023981954087827296117780664784826875416575813949485279310210325629917278149579289891443476981345713574524513405004077590183964747320914400193397711789832549364256834016259905608977153447820685070297437118515811413925838878634040525277744111647484423380594211521049528179661620457717726832866991879333240818437088287733513996514267263140136403073191838080995416817131682161696055953781552092862653061080875014541271755850281402991056378414660366889894786018904835888863757732165059854853101364829800850377777345787856003394673217282242624230450029606582594988143728541628611821198605798276098326663753883697849997666689954741565412912366347057408625330042209932970024720244268086075302149341273385481027715347374908460051711551069193332555573552987798626625103770840796740732962344695625065259883074994197681606318209091480892611401310531877233328682157520909483576769097517103217035780263636405717446461914341816851759833596904778254666677590151667472097094817429264480147039945629376592361930728914341518437067829014967414762441218270343585509825566772011991169303292812609225021147293336112865120854676668779809094484714425700762940993765483892976151449646999703692581321230307507365797935564643063410136600105517851560334880792324769168359863779642745937470882887577030294938216228289962246683436222514365387155808662050429433401155048567898640618100736929703665755560861922716019195516885272625034124900355755951185034551400529987816284762950779025677207698513732077755246280571072522346615210952211321528120531265125118475090591070897107146178242309084750052188869130097046157621797139513148048413714627050970284644533705218041627128625602218478276276834268572420775370838355075092640518475731423980437649123735642463479348165123199321191171743500390463430161405492357300190460149121874813866050640507923238431596654106140030503892905842804556389308383529352334514829653836504091082577650118775980464266287683295405309942782500332968895995501594503866899358710055144657981289279544445410171036500629736870998731409168939331121725683375051118481717096571452444115557715735363767020123418726656666989769290589818117611476608123881950261833867136804322110871493265760373423886280457856455152320054987886186955498200176633153393342646497081254900504515757160836815267251770624497247972241228628023638354710190076393359778135039645539748233702804540916175432202521205490288543607690703334148803864007254218290987851521834318879497249566327347300935421499145937175208313220782212503075702362507835424967071069055050003121305537509556598173725929307499823208505707015356272349917403486892332094935368663034392637579294911768644399294331292948806177224874922769931274727036170766085759173760368996476353947824128375374664586771175027327679045319410190902753670778760333980385045074926160678278004399064315219252173954199100150032579991459438120204813124866695366829318389258918920947095555185154902571048418586798494079449244441120918240975519338761385483052245755173389192288320227526693534351338142489551986622260642694528814598637098151165737375427189558595579554818778105642730301082555038178535212952456601790004580919309316292577528480998966878221868702557803282225513861354907246685034580401949651939906193671771937537491654065559001174371036235125452267166521749405917075078559626701161372223981232932374654067505815652066411166690541692276692741060057047577041021839953555828682875174428096222586910115683448158978806990253562150121788177501883732624291230680939856723170277263305722914494613222446773026207339964457143861714396343111451322676941400361564718803196755937104222098803549086545627000797368222196640079527357314873122095654137678646683387861218875523876320803401891056021596139164098378342993768961468347536203649567804999873058379936854935263061292437845352367394950619329121448631111858323815351517414856608181737975238794842679427412062363144589006481841149724248588498199127031901868026255486980603827857160081353082809009201383874367316860067655536053226545985011657194687967770091752573262508449459352577363055495371770468385069409266612588102658126529785744401142660238680279977987217176246675860572717304583677105212608051181487502172942708923556056972955056510470393336344357101576584840052859119173500533645248112715955998863894116638126561155416270632252196857840403174649420657425521419113933398676438610215838667098923905258878660643396452138272499248263535832277406349092777287363137129933000268778592235198980761545529370799214537090974457641460932886159566566392858458961857176700979072567835042651422340434571111446027745971821445698067560603413064825552827029866678299288624473021674618148956544342616365133391450805971226501290843588623498702122484829234811684949411463122486324922405382942336748780681330408283492325065491893196157980707304855775088241170626706603849698083769869472029423647964501738134280360096610789960291650935853561868908091792836540776488763859949562007865799710557458008914464054569452893574146316712130889873722760861964485182335516754466233900211051802664716374393131353949774935385625901698360232207250394729551212689642790330608293165147427309378081973147971691215359480753929216123608310409193037874051912496219170872351797581746265924777110364717975871804980758273175965486428985202122955942187599312624881049791677740805096988487355153508603246824308161948986762384092516377130571971364463015082739902264151310214622239798443293839656809485018528028196620380003048043818631477615772823495792528709719946970442488001268677891483978997803345573035174721958513321749269303242245495119410263183587589498133889568126971228523936751230657091453762744962376762866888639866854307551885068572756347455338209876419240749814047394861707984926005955959147509556142959795039220682865156002928751017789437948496630895245202183815231551970753767400486885170476673973284644275477048466404775106230686930547081665502777982913817970366584134669106086917598523731915474631293443269357497535126195458323769620038097242600290324809116085619904809529914467184786656206219598727408715441238880771720466701956952782650211353662281343405177143131339476184939559515393118395922632192848917900076802450757008859134432201355371237588541357865235475495111007763045789214396784890342467033268910544667963801440881606412420974440496489585444755733246500385801046363434256215315024356953840614839652419174353197214919815051438235326962565878444034334113227679994655912182500850561255884395086310364328358502761453595042629249568897486990116774764726771361099613428886983698473274842542151069000102723314724265313825416956647808868053481694237670879123519977833879584608299516511212152209902222612307007658720877790301383375536038464226547659112746638725812312597138092891337169577235908541711949536023787065212265651346464857243322987798944864463028781294307033889587439397929340488367234822171012408542292453338574247277574752958044204728569002439948864202717617572564792494893893075893158598782508328088394259690622569555819122484636327112624123629769345783846792062325506801636155677051891833295860375991248743114113099825338555011852698894260838264990818249777020561066007943395899543319161997504723421957147003705979509467261752342016492280907433226226308176914325656287988443163780036664190109319268404309268187875236940626298668025844326844139833664579524639282373338237039726923363485914925042938976960017715082410400787467663290197368352146591745317814916801368047550898372794850281942377670817151855105302658629605225974608857082929872320635603528669521634017652913238228321290675496373332476719192946506282367411789548678617013612759041802930281951573440821859855815758594851796895881915796532231344581524098366287653064014447574782904200105375648425525795821484320838611391156739476840119544445516701809990682736572386906078840303803397972517499131491179843848158844929944594875520378579825866629997606052495126081721098264439675469077683058498590222905758582916785118980479768274831199895085043241074947418609082531724745656563556193763222789400582657818233411777910000586278459138772551422119708802643818630498297185545200032992078877985500918114405461423366509462393120748871612572970759326906204090981731802496598437068958058496840470782496066658812621524514220510562521064552134183085396057023268923616629367916166456283961583038656469729631802863628893713286296111604124812671218834933774222483328748765364060295271513049833979985152187836276995057522515551553951386688534293386234958019542268126408985641735693043153463745621889601237377766004186871517452922134276676900481771985488187629649693098229631233964702253189141047942198975292622774817363333447843384471704823358962167638877619370450282379515605758139961692061056306280274391479815695568424816549865101265393333485516321189655934539986548802377934106015311443646005082985746725476888836079629224979886288094783989547568179462832985091992385022087855583797952494659461102792915032211020647010665761680290717199084288185779301002368069468504324453530360376232889159235000654776443866352019511195562935818156715545930803035420828663077564484567724523136689666348770278598075529993985010509158107648740535783632977006005904718758591315685503622639377624839712258416252524742416846490573911873958879787651140238392576831067912466486469784973504893028001894215357742805250215184417927246648999234603380190529461641950861897756113096630048772750295634252617167480560177270128240605817767889046793434672254448787441641923462233885638985668392099437027772159712873345016630950512976471287130360946967615288539854862566597068050662919038033280257660281186773610847983580144949862133603034544847220212854871359634964854461173496510007133075258571730753835710347792693416178024485925794438432083392267904640123939910330584362548796914375238768076961056168314055906548858799402706518806729838417861796475641808482433158752992779430591264866634342766165455703928158962316168077132540978679324073175567723232384143141128707439008455014099403151582638227206655822563599129572943908180901914808522902754419924751257643163889534179812734162517129732461259188692552636554795999708601227679315836728676709413109311705458495333219089265532692590260210148296519548785914232524454543603282443521861076286594244145453113752964581764945929322182421133785670040930485365234245141698183164549554507653207098200701836322753404364016271109918045477884188774618056609311536219160269569690778388156413105781119366455112330860595514825665805774428278375492715866838632112351600930806083747407921728187145535870788396297230647694235404433524972197354312017374438419846626974383223930179443156691842408216688279815473779677927113174198861147192321127138443154750245696729380588777464105901252482775953014810580111018292818624508425956476199374121403158341446095970223124052513799721185292856758334330426197324366911765222613284323976754695319013158688100121328716868812183026861231241180384113532401290939153097880099481773508159399713488844792251416506850051495051952789949048505737591762072009851405236567164371935681262279297713788271981311483859010148985870798992894108350276188920507400969452239446542808139659583156033868575809672836359658919665984721571176289713503830026909903197351104285347826091921583322889340973599376932340547906860756630864401319348662264200034615082199806286185146494296746859930593738020323978647397111214151231910191695882589254680509439179241035055513034936749683184410281349494813698730959510082405169074688823393560852723642738309398874655808780584007015707980377801860149652519273641823675443170742866550929644922420008010481644206234898582024203028306763946451169168738668656563820032161166145357250465700284011815751829217138022155130864486958908065236065171355169224079303448161771241504139773900696854428573325965322924332091365602693209845684258056561090951820221417480935617304650561921228244984799320142971287182072172062631597876466089220000440228245993896213222514050573954290135864280297747836709346939375200778998812343722648511196790866689922961919034981215778198363390481896524324959789880706109339803694735072024633907779681210849761861857380360207235825435933309092446035000091679604536338078455744913741206697841313935661406518787607384219111201131235982678795257583159384036005242073136034607404805663769159474585254372478519277123137292411317029191934961345687945267895754109870246813210549631648250285232176674659201583729061136488116005121010197931039388347334597654376269915280183750457543789677070044462638348354650852178188782092320872756182124612853250777899637798181895023801308980752542803104703037491712264060867610190668207982141324651342701452707781738281675292727118863077035220255197408783729312429957204816900502724401166411053470044169876081206466543047293458371021511464344709567207127041567030548528090489221754007682693049345988842587075688622723615346461498256111750170716363522367788803429098187893978813877957629766119318094186496530393459567861544309976873841872990116853174853872554069459507539126390222324920577259908601282948761640030204907922704131037288571437033014442619456584047532736005004053996010196976813405442467210807799498813593533684239037505363421658163705732791614992015877636019208521040695246059615585140813162050023974364645951574952812765644409512401481043930787653036897932062586498760243023753585629939420645120352750947816010939657844042644434687916832458191241722586461177918688496768147441879543664954245584819806979486324750264400185191576945401749095321411152443027560524515258998020347349055220945667868507147392033950434993341681971707010737604781056261179903767442539129920019285908059936966846795485379718370324577308835524442378259165490498556751839625507737105156688951503347901770987745042577302075872072088353906363780098056657774657388623489269589093232366851189846621581936724004040199115340559453083517048015235922821696548255123859512866228254818906535321661239281418718552543679826159766501419235587858879832662954994871810679983441325301477942530404718348977682279270653387756766597790069894162514994504463418726953203658605351014342847916924094896392530484402076275835562297490157221754442999073481478755620863746975165738300746887354842958687940923025574126823799359499849559864349588689128677517043295073632326538483864231579994462828659115330710699550621110644365172732765795144575052089962094743878483901267597010436207487060023254854518615311186822835919148382526154750791657677283145263284007949233269279175164081588989217688296140558272432009123245350119646547998736537192536723252191253077140743959938219528237225827393742646722674047607470048875560893550943995218914325292844744109376807467946717327327078255398064077604927263774036242438551518740731482379653441910674093523053906324039819375320901552565977656645397680492999367924363481242106775853684904980344134386536973237472757898001363529526720626122623967936067037363303449427494161657897743212780913268565715934038279654142418946844243772058119681966419476626339485567498222083073904424829486974662956019482404119254137424205034846089301004117942622050403552667388049595696209755276271194623428733210387023565369049101707277228290569633779201508349453715301926206677696668954815376417108415508719979619871923444776296541103703602650446806665832862082999895269066784698468835166009400532640135804422088017330446268400158199667248516898956367555853312992497712978854507197632359494930145874088298479034672660984738469409766847771657405534709803795454894818051803202226236622220643009391938617737670162034300038836638420296520781205234867684869247408052211119762663022378548543434689931407754351504277031756763424054387812889023777633296557124764971766002890461869633040185273589902614606376438286601237541480551257585242986879800884866090355380665180221798769691907237987911951660739559699214238313407364407479634630509783121988674248666161830491792664022520992194833700068739070002254022000534640688687534286803401545147706549141311970710681498272035383544228255680262170190204069784970097397831586963769511737688133004497927223202845188098313445508161121381833296119317885753731101473764131333713674266634544927662916146719946430817357004135027592713638663584903199073507573666265835561334024496539360296329935903811078167706053163503892275923686104633392218825021268810987513970291721363273917589083775316367144958396300845288760073431377087353375998220497913802765176526277621679728922681610308676381398533302656650210017728903879268900867979610932210379918645991111776266949857021525930140654733206123816617775753158472945948349784121827500547993856895542279910114234580412471821163353056360975280116674212735568723660826401755216558523849326611593752277445263405457535566857155295384906506113774762732303342709727129343048923298230707917509310779335877584725547911912563309280921954886980388894745054164509483516894671062960419470776847699996091793937156646432684474349370759996918760894828604982927456803862373740403060027509926811843361499253257287198297356389112138352827590297947128881800759615559530237885828066483525977576774447824651394902631538725140214275677989647820628678868647732788702635434944945156958003017477640969484638361959844940487046416407563866995570756232417053961271695479052938329964150285415891825488931583264304938684242561240908322703283028699822306855466760800792040260862429645847566075102326737346783160730033948889451292617399118080146944920860315884332091604388947016468049907749318223066463566685653427803101854302069636913374558874543189798900002557051570401629361850895123308001608865231146069248566568792716336828113958571992410823966483495996535925944852279591092006149402378084496635518912032580995990777511975284861162439670598926524600938407391863021603493256219283863319444231291910677430496675236977730191622178599175555078002172567026835002398258728667912304181813031110203468165418574316094904130384862565566624138668294346182134456132850987765813875945168199597290458514687495303821643119215292350711062473125289349484610646741136826339184725035268626467438526132638679078892518260308998464608141772506540201620961783837009470375427276618276594674474152578884347647752837322867526355056202892722797240407925682831791019380645032917860576217910756137833688392058405771421877204475392949925357614045397291085704775842144180524971934859413967829658750661208980486878436033020846489348480509700750102490300972858124049324036960438466031560058233220399068706350886744510221718839110060299256881211756954266815074712952997316550298744095838315551739642651821542488379053958730311231986670025178969997379719133828542407409013822954213858448276097306064205165232956948821995603110747284253599186089825107132192330364107858089509706446835948569614033790342912711854560379528485017194367137732154068885661289133291337302322873982046106783076775345331882535342755465940560378105265150871095272600400693694107304628287943432967330421693065061400685837014716655820154847384594555575124305829852947994022440369259148956131054627143968313885181589051123966126798858036618521257611710196321402841066147121614132915297049175535917375977090234273845132035612272337003722771957782129967580591588582496543161639501057579111069365923648920769603225567063934269055562807471572186063107715086347818626450167019655194388952579130248179807406527654684063993040972915791895342647347683236531366180486810098739415174605131040722428396590094597393063214719132566883841023460935980409311745925780175410607257334414305282158773405484823050911665566358402245265689887465220031507640633228381918118777205953325206007916373792733563809136734941218541014116389593480655472518182555688305683879380668775482505391737493365538524328593058315998436206799652876534671566035708336427631673486137249025309713806143395727640324863220149786510557768558036097235935659834321351772561476450388666389419835577654973446455971695165947373270220549982484109692782265687937510094323763119839442968384995425880732032150816881503780865875500493894798882416952331377169027294707200948281607770434040909618903275373714698642979733340712144009405163436324715019633848538257693086475770051695399544408439910358844804279512092692111387371533090747084666502389747583446133554042342445812528670281218631936486387446286413696585675919904866597926904206977786655133339669705184386608848603940192227792943105374737430807685023799608192726535290121518616871105683656483269601258340742784082367680691260954451395738578795499273172493993676586744114393643849965184837957283173755763550860145617589404240861860696723167762816631122890263666491204118929993995120018084164218784900929970106127926975480678093792569271109056763456060010422262998504656821907695095725905165962406825423730502018031563415134772377348725656458493431291638830591617503017587414792886649029838176859438721576604250081532193993639718887142334649119210398736374958979871310503082334020562160646692472904098825469310293961093632638752560356696264414727686146570770667378677500981988659026307363835926336110083367167917191279117339297950416436099940878110829201505286499031937977844736953492219570146808246138863740149353699093875185335515138934644199079861452693139278900657179944453007345667547369977732477086928306600401520791741984022674674675144247451881427898724652169960754078206362468589417879450207624651974093319751584914509840903248499539811319171666297899947890051408245148176566037175438205488356272591684949034588892545623770909469865533899029253672133597794344505517555753015872204616658623108368632857990632594109399107200177722262365468971765814045555103091580641440683292205477125664927451435835849271511459804429425805455881277640676405905212657682965293638225238302251344873378436016793273539546148792650097139828821844089931818218252410080511117836504583027996631318955471757861996444895337399728645600753718178241128515384187162831324769246145085511611156565891747581212695967089655100189471681933000099395656631028359745092575424023680875610461435418283974561529435206440189544546483255131961107205958625150587372885325060071137423601069671816208767271521982038095302901451323769171476769276431265279919664541110078405661163973240579857060260063322091979785597421371800519386861112208202742759356147437158553523254791709943805359390941531665587830083659883127504649688868927077699805983923788499944467863354614549712518210921179268838004304603080301296222071204051271930623548503705674717945681842617588141980607920092107017919699817467976963840714005339689376567337302005157458821352051072369107125402394880414809099760395354459005535740736585103406933673086872629496315183177583937309641370540958056822951769527177733417246402360172021859838749741253667982807969281625799310609232865758228631232394320141191083734296801084969634346349442591169008860921368369917775852030897543738669783904817684549900167883458611658006198989951101007964178657288269714974245412543715566016985510310295838491895682216596887520833562425249562587643776073576129553909438135904159171208040849516636227871333575522061792019308574095540746226788829317079931325147826217893001256702063682103736527895814056325582102646427418902084149844280281996599431513142720562616509024853091712717552147335508905836245174091352756320158052212623281874247185090394215936036758482933521792774596424040204564486116382759359460362950073926868550827518122588242703934242096323981097114664149207348488584428926934592248310945514084497480082767361246493807487049921234850127318210833120700115134071873764218556867368918233454438734001154429744688440605422521880642765542366677212175212849444680133845927877333702911474137967817658767257960448964200160309217679075002231039782492718242392045482159994022722768192412772111975236884271256016188380495209393200270358987630983839268900870669483089678887675587101291071327474869724571858497413280345023870617190258646921225209966561353213758863641720348312666138942391378515218587342544286838757544783946600270378242144616189534528441093018558817099422162858280913067808063937836816164393997467965217503853128902627721284540506027487339781215822721477322472479755633548968043864221243905986551369709965780223623595315575776917669370500072561894109035626699796646207420949106077631429859368529664005288905689167157393773010366794644765531483563119089908431560033734732244359694849017214149230689567892592508310384371178176915231450366227020748071119314454195520652777608053716438716303901065679149713291665693107622276834245432340736606458078970569940588720638258029733251265079289248987442362391700014514307889999086130104006049096303799129019407904408593762435488195405056642794885237160086048320335584623505496928186894633032263445895214920103928972271749202814534556876128351243800425345530773660859743160228756047953877607258838573907841353295762527573301921575484901220997076668000716083543444156409730702965301772157364962976089164427967538501303739670454324459460741979315360940490158916023168355703497255367161396374342115194031119375768595078142109702530336561539172965701028853434043853623641194720144995087918365317164077417415038829383792335722194512546515132627657361408728508966654817183607035941594354489315693124995467024091068083404843990698154824045225289816200587167930429927078208281689623396746277997358451324214694877381841141056806399185934282775496745761892032335167240946809886709311656094752509853820365366123184022259435761260829942009773932016403252692852601299255933167345537279894389242516463532365605317239366864655935540403495066242623039581614298088415078940150408114720377731502364192127889635756258681853255756820381857810001795281436372623634368686974202002931271845494626738560040526710256398824631078843894630074371420698837216929586909524459809005946114455908823651584371975443299724813993294159526164174371543165914974863951561400918691778749404299785035633107561850513648041941634411738728170219368712949858363021902671288407491298039429268597940223425033406431658670888916800201885704190503599382179706311984458991147363760077692993852541611791705192805642903123990097130685583025528101837575955265494809757236486414040482817016144155500799199478073941477701767232905650600702271058626572513947807889434207348246087171138756222074694090689225097950792964182539167854344626635248833232685773045882928776428359804570153632212606494298374970066977719770890731401194332726436487961754407095017097354628778557739256113206479496716816062656776441143885363832416835300427076941351905338566882865548997117087536222277182920212215553524655371842638128253138657847054223271661684383648390082845236494192519396491217303885980117492339517471421461935392555214152604590575625214549808321871814357312807053033308548539610534801960270819361826615012767880376964933746574465299689772617664354151087985018049574589731604329178331270932031866460721695070749259997859689309449125460221081231727878804313934127006400842504583404202545154767806140060074512466359659733182726966258505893704691553525635329342426352365245661420411664855126623188083925209141620520880837908568695674558536314548254152033805415550697102018956416676666131229228019046186374932740830503720722815896950851550821775528308186241558339755138555312209355839632604631197613349620460519021391847773136280261369159097786548995750497554598349896274759484986453306822648207088639752193033472516367155441005734823392804852228911549129420019568073160377526674925056510698791632921346131276016399806031393102401602823758222388255362811196284387396608341222082209527543529286175932426497644795624621751907314887124608886971174961877836726757332342507821096694348427754109698865648051137192356336014431704095177116570096950918316749465418934330828612222840420853344328247488673300097360910274951998483401698199338364702730904967173353653909826483530734499060543912635656832559523982874006358335895387861631454803684940581571038727204040319468440047328886212748135554222759257137434667576923054465417677695659774120233560728401780648293855913307244665254563801284972336573485386119077984904923884564188638045311103069188062667922859531358792506040637345152001920120766831490443618741104986242851739995133667051230654456044833250916658626015669404421465315717697849159683130121253998781872842570219299335162052363337093429676653862380340836362517490908344717435487555089306029574436339700396121337359351641805294685950382606197599625367781323941692809530101268366077642489559339956909586073280240566576631189538269435713863347533496238943826780555093467528896890047132698055278289370495979850303541081580791840649519352371529456711671100390912579119620974397424733586703357560230586031135632056237155894212634511711984559252162156687762417391422629893684341857244095353917008129581085347660929130955783774272348740203458431807733834275799154608597312830425839744831804808139302106924759556641021057049005648078558403166874132388315340379995604030261062279302418596960750638896380826561983237360411298281027560167579538984977551263719457433864796225402929318326950847018253827028489108922610718879663844113561075746958086867928527804382378086293163909143466947172470712720724123667948052080652916569799914825626264482318099491099665174247263832186339498326261842938458899030997121822930597522404454779002088953120357507388144133230135283325165237038335905504800610056053362532344670549886001439841672955676477760616009378545744504238424537564622812894201806914051501026175382592120774745559088314604103385758755760524294236123793024464352834752830938475292218264940128260767531765721229494528799132189852541047054059132712272142838760068809348991921768510735039528673303992985125659437170021876049138246257853318508322587968352749835637845521870269425556166759078525425305890855510294122239050588779638756107981927123362029657372137975308929921626809339864931506298845227613205184532242106769154361270756974874481863212252180783144757437415905623148217426821754334190425924078829435432844508246402878896111730989236656533983590408797652668322717592613615557266832237962720541611390481587332150846893700017683384699614944170769629108332865444804617709429936455196952119316196499191064139585739560257853060085161488301846003355289562871518195995731048014275925143715107680341747244671598712330262651122539309975636764805930403560791045053893035616618576555406266206039799456756147466032195769993425045885230870971368763372415077078120359954970444241560277392287326839564149389420574562194101200142058786597848339590086624088236917996703155975518143187878538746745016997497669017563155613987840848229959611251037551838450320717231257916936770354452121529661264235162684141572096324693847546968424746971268658793367463808782751745573294256380515602594691835669448964081864071017051568138988599302366281738835329998642607017617276112215019550937927197106858170049407045732898283577544587822094543715946744962225739911265395691786583722386405447181226129811408154448366724882653658204047978038658213387678983764856784744790583936949673570754891199167461849751297472089277502533983531274154246978782842382917349214094465113742484204319292693037324417154422208654086177434333573097962310985161359954653500970910777580072192882426448044694272954658896023996956447069286889496295993519264055783587202392809694850159605492009912384540506031088287440612899972650653609511727637344847649886424409749652221875920038774957408142665346424324189731117166585332572639825887595215114083734546726764453449845104669349886299432331326095587355778774595565268081420546034514200889877090089016803681952161841932125084523875963217847104048576737140312539105196692699337111997156169433395705362403956393218232481465957867787152818995664016974454549792764078729697834110657784554298762047352522925117220453290857862883302845414784243191746591297569700971245493451404148357001418162690191801651331257798075051083601364356368131866428811941746287858064108737040097625489289220509068938262191784158635636196291183663416303166964885830199388737191679670094163217443636011140676738487421396335466367274488707260962604726515054758760995922602684659030538385739713481102959250116375141889528179287869183212008454033272478549647663699470735698007910880319614024604969636728964309048550417116415224677360964123363513221483910136059053892158124404636927880279957992290225471802579698559630429354949577799376623900299826966940749873807387361552156525627095547482806973765429028065338019560108323485899636539295100333479681106254017730248946102786674976419413542689693714572948145167099603563168986501570370763326440187859339710129056641523063795946967569788266152125408036704279127049564875984680959316170132890123840141642188839436646238721531036709740626612728445018359338049040371072814950217707798297449389978326170711800256458740210562330079430939962446370601361889219430795251421047099341291307718693443467981148388216111954403234065376430390097737041743730493520261562070297282460311562017150817232079132468898356589976097670926515371488771921006561107903562094197058547894497898351028273228864472589648460046244043015207235506387165383376531658804897204464041627140697578500356437707949038241122608200249498174179212350461370229528935277468258676502420774607442083688426123377130256941115068321668265008740895713899007842465884326091609861325537329802806303448587341674028841926975467338612825772707535638203560627218712131088698814597179046838337004235963343321706859373489435290538847607392386622064553635085243957511841584701726795886595434019526707499417037648235665390662530037937140163556304093336703738773112846165947339840643559153141840264161733791740278560241871357448037976736792721942193180706556143420735354709010128067487756225244859386731507841158104599479208244185166731147962917334679320597586790079516666352887850114246092784623727973509023324629733623693857770345453917720276696680668135571176018686665072652438654017318942555513376284448402998710675572789530876714544636092471059160892275590467530204824402251518652994264842456479593001683076800750284521299243784789736306202823975068388606158388066806033548292982220846702945950832248126236930331460101184323584592534529905362307029835907673902524469591736440105013155340515046070334331508582182580703489231813111454078729239955268800904225071624587112117519663482934523863297873041180695973433563006138254298135852066723762614029253400703019396413094750972256453599715431081852081588696279766965035876010647181988800657302330974157355591329528400013455132597463653517942054325472548239320730187257590321586323082446865854427964042662078396971443853249257581147689125332863067129146990506797841184638808120624105058097921517027249888982630404577959103948603079712449618592008549517959946683589700608479855135945016619452325796322992531160193488661139109558178944217658038351214175251994156516023574500123468034733053146863060527992709044247598077327465281733260534954720897040706788935869261434638672543122037044152641362098399108321455260750776283703743610260900379854625786405367643459921257790375646175303078485039944410204196723200360773868034765829413845311682190095119286172211012608698106112389815637315261365079150276176004682763390665906901414450905438782587496693842319006535984324936630549513390895744797198257986810542638035725285328350015602597599506316073018471592231841905235081465814092816371195789170806591847290424172920085346891643111340122882559662141438962161304130490009531301222300350323608250419522849368568425927735682897243174018527279406092638429959936030376574730386765347845186426422257690347942751249544105504626344594967112637469297896369157785860167883672623785868840938026540016902073699294555453469788261619680637513436294262689318363952065045623014190254707267445480507105193149587916719880569114480080193793659646280472454373182911339773897456654451803945844106609905080406571087035174815589604455156848456060495973204691832138647533107488616088977971535541989565732187270336959742528992568993989746901002178053698138593364942563369031631190546706444452014620971371559591786895542221984018884866485019428103367765610367865256837487445493278097795858032598843730164765775524320182250344577736899331065093220965060495680329375711493589963450368333732011691859524610355790715054752584112783903665901781033481916778485942805109857481665294313452318968101834451279562238925639539514424974597077278858007421830321042569417775213127177529536363937894169663722044025707845525767529062117915168149193150537648443269302282794269591315248670384628473323115952536764922211107578858099757558167610143478737059485573095880406349893223822283003459298921659536080729827176836552737143045474312349846007286583913805612034018224563687279453472249908666013736621417153004460761119851210189847515470119885868863934419841613605641108792362313682648251476030596026378859317017296540914911939456578992576643793629863543322373742828916561963444820467723633034811663859873473967951518366371233506256716439160788272186651178803627209552447995094897546203688243579999459648344979860906265171222786513121655918924871461170525090254155772350261934753517746098636614846267350416269426951993353557553665870036677580148102446975362662109888389515911836367295048064967949118678711303124827403372962304849746988018174095044002454103706758828769774564099362488773090095070283680947785584131740313416416421442567324524830827062734137902948148612423468846186551408751362711281716189654655429836480925550363150828238485547794016096562658633598075399115304502840994778740724224090820351923586494770809398264974366833492564247399527752625889542830305164329639835776919982452281763829910640724763974946200470677375473164334151297682179263833855172989796151688463823077409678037315535406135985503653530244995884445491331880497796487458374528679018556213035000187601941045906215847533118006332712280386904898154805047685186430782339676175799830162924407983163212421458084223713077130257812915184109976424453728811367215118500683021041607435971996555705825094387194635170629248013823554100408195703517686679794966053771069268718104576510208507243600254500354082762750059729689244760465223421715867287358530069929797692269052259169236244017626288259934524909160431829514986330318174707231366216361921581972095152472932837794702502707122141760710743181896725894922923258398862597936330934597512314285153383239348654016572888199720208804031834552595361101192866007348986240847390450893203582443482372258286983742673991476264475060372156228768858577196072338332076957193397733111134859585987274133288030295329049314581688561802460782946640112880366077250502807415074685980882716762439783415728341024601530189463688062954663185417264002098117407566208738433265057105062267286252124268060244346041777185042972491945803543528514464482850863917777565919648069345239134894556919492615681148050238986035359202719883015363728465604992554876071011521938036211684066907135697863351195179250210969431358724436726744928415205748479635312563461238993844984572516103690176961489058707715302770904027766646970620801606099535458449973479200921813406352713712392103425894967736791984908428386042646946700968206031458049948879124099205596469237380537565393369868132019130420852036575656235777849687212800245992248304646784254955469204203692143202523605594539006787829476063019436791046195662145323080790490043584179197138943422502730290267756195848204489158315023529050597204449545159980344256517931321527564619212843002377447827916481968343621524607056771174094983299893732428217829364403691502481575719736967515434607470713830785579665503887820793646189907509537421586094861206023540368005419315598471836206290523972900021434331631795332305215743774490397044528456595025882020433330972793186350375181783485857256068079761025209178762270397633842553395747721832387236312209203694086313027743174490406693070200099202025087204309337613461623459546771805825220959409951835270235895189171060977275222677886646437361658118102253028368751113636701018725718590423166751582290736127738012038731815872512454872236375529034714947945088248303692082489134142755552584886317108823876014799091955965756341903858975830648232219392971014015526022978868428806932735326508331062121742540587113921421861142091258425690951555411342291448725406184799025680923430355990068922387348269001441496486830769983810120259233518328018444688687918546811374671985733504942938076952671057649431649843723376322169469972819621665876521428585418870129726261775351084284459022294287087382705748619531290739535798175829290892110143085890544506811975273247008265346974147061227030256623825695562934098489929876470393492667518802341294854879046371295832532964572999418989581102141445179533117481816565924260592680348556888224767023898068015675213008276098440502728651748054559427476533444018472021862569477390505600258031525554032370646931449878009541982521674461789481243258401586315503658385218462494681011083221851335701752750512841570004904465099198498400789774325283840628068853860199159826044862549664240977782804831935174234672746322613024178863873293071773849044533931615177782611001154667976275789238492759485694460162279921207602717983528960852981073431769443376214019730694231093595698091605158358861033998801329756276449895285441046396346706750015267544538472704229457675760830131494667788297450755272065574680905585584377166457511352321147638858279708572511785448691777117012206207072123183320629644290098438416340754258737080869453199097882511194241644805023213555223511283016089599363269015805068662676978298740196170141312055978402391956097154022480469308163272114346027294038750327277925618941425830225400588357024958575692568096674487367423780827365366712291274960438668921823238998876727850057444169306539284541756482371554519818159550682776932543630504016680795832220576986367117903161284564625341508364040307291553710431054359607975709178657015796182413914817882466744939684478410071241905012926626097926466993361916855755950579069439748642267492579714469803163775144350125434397339868276941927552418476793750951284651099579068537794527447998935613331157990224646619989646617843094649301404489495371471828607312476826745874624916321738361260990780484165326744520737117080079331966530031740630599955715870446890064135554894541306535815086284237626478069530007564316784807656728227048902831277202678625056505671060723399927820401461118952998133008445126276254529170500185141449900188129191282937039293469461706513202587754575022290830224159947928526630094418956573339291278610886168160645885260310040489649550410438227340292650445658569098778742568802077746833001693592232803991071249698579264455464547269269203530393596754528086508545971255711713195258415496607498527768140984636122127543111834668211097237966028604116020844755912516584825354708641636115451597615717730987352233383095830445947684517068089332580739158782614837135861395114587174366212177098841369031580747982671816418091032325523128121298679531308197916704306727864282665998142833543506450357829845625883468606652165064917723083960435580683430799605302164844282779327115547935203623089525780545863886617499036354013079826194139091626247028689583485204614707696386757788170270892995490004203924047079798334694932324372573825186901677463890864605423296163574634064341060735739359377241262815676212075021479428908826183628334868908856375518069054954421643074168331332996682507865717631312287114902304590066040778420762915277955916706189342892751698174456386495859008883018252608194248172709646655808902658767163212792154404344417823186730060006792845617783624962400408695265033894589771543421508100126673657708421507004666658832993515974053664007744454278192280914179433827305906437003826753799170340725496691442752570608804141775782961091152723427114581769913473706904178723386775247960461935501154266773300807729424088683072113193858432331928340606727800802696186212661738158284299027526858694966127099308946396565457531159903447491142457014242454561319076714845246949347465798611893718179373887884184652151757191937749758871067174234834591053255156241813312933440577174545682758112324974783480175691407409581372572304658531689808580499999162011344554928889881195127556626596209265822323137690941316844814331416768887970089337511365878655806686922979027784538743416909419608671239773555337955958627200227963310672938947092433596000244454511319881869587039899299860600565990004018901236667200725613250165650019678997117044010295033042080298741185681194515362947014893796961056202377877204956654293459432606959089751919433858108146718598288797173346704376520942268937286344935567006783672408685388399640007107271372764749848550769153839666984393010652640903127760037297356973511078175149807050801441964060541182208921753970002573627524086532941013607127283410524601738294100359026649857409210515392404668411019731964592574343235720039930267533981022051320268041461627804928113304151703177870025444155647172208396430360411755408080505715838507707010351262844885338265474257459284949055402068793692820351461520036173034717733847201867231650532777472200282753312171397940266845870638528493750867240162784013097282146954628876380556766248966780615932257788986466173738885110511522776334157800091709557094455017082518787417464035853565537546437989797044887582919943432982667642303617651220987704703568641292794185403134322114288468139988976659299642794307399219783933830873486271150459565259046556737997743714705645102678981303436165840740363915587921997272033827235066994407586164998239723152491245132173412871899249075043814648631520613949265935491242795660843870179981656270856283104723509644566658788200599928386998262218047896270639641594849947554229482925664294694017513329971477167182127581748802181756694253118384950198216217825852877691032852291712114356634070079306485854271140233921215499258078298582804029864961225562346826984787289905908876260883656004044419665317176449318906140922873594754891540705761127840810555408527837091495613097667591646788162836772787793317465243079211973505731638320833990809500402096230203897746812663231652148908720112217734109621808062859900117243322838398468134574170335199412713283909992732383789037542461284712570034846413785637047789735321796911033973088187302924789959842289578834430295136047783687283216900055594976915904781290723407726793149791386317517481929006536725646797198138713685624694348870674093772472862351939637423745105095566543695312447534597980948648314142874880518424310904237745255739733842546447627745501103010724623357338433701595228473356739437324105021026276797603054830905337361483245974834786663760322693757379682674640591403114658076361010480466017064901062454579113342810186045609774778001068364226127751666739305811761391878176193983693627911268829376333977472389256650245197529989600983408503373491476471324382547055805275780287224732671576101973795969990528101273211125856462654526508230751327141960870547189886350933313542109498080787651503394158813368745513008634540963120051682510351901953867908583350428145741021724685167354707578619557877073030984361843618522003628578339614890860612594998494658170472004378239238393466544795543489174961908818584166769971866034243004936519271575403574866927900960580014762353355562472595521471148679051372634737322759960718493649279473376604764126515202988639064132260869877888027471351227973481020968929720334045823029254381528533221981304585564433601345390717351056807530505344448465795759184228922988147586302906878721416106447198444826721785523243762749786258415015322452651058780278116380121042356574034648876860790913785009401449389051006996109516786492789889930018309595330273906457342701457427006959897046736971588506108849318516713086912525182791574719920156715735408184766210694314688368557063671655384092196785451884963626982287382118778470720927699169362977459608680262334891939144534842757565064257841267669785418290524360481934014527284878625648128345232989620340454200189765787131684518492812701454419493954537570595353242118481054331797014810759740449445144700335121281715282784281635456685555603841832521782878795847536774489808726423281510923085790763166337525252760719297258517023731582961565987555234003229438358284034908377217223290070411034108822278946196414907109307588064648315865165732759505531984753223385604437384707641465995769158237197005102498045378998663980787188568456847179103964772834204018646084272466029066801561805723677022523209328533233123648652074842691074353345406997752667743758691254423568941863404207058704628773072053490649009709244162942105898533978166697230427488986862365865564230631293860498453804279543254779315871934694666563838637698503697970161711850944500584841956251493959073436506591944847612550229776765709644124703076191881299909523922533013046025201853754824613553024339475679038945350214841852495255943231431583316587622836709505297642741093549602783895489216704123837725008608065030630789834556010313954919452888653320516907201628163390518538823211541481606241900679288124670263785719191295022563538849996041947072619906391404691411784167811989924697765688698011863211378003231042392320855965576679720224934302816835073954248074958195750310940100647310476003976183630528445089326971037764283821871303453182148499192640736745637966400081694870894879097039161351363130323227154834618953356917352971373740251998362128699561641765319741750220876170313037809624740141057181257579804502067359947385363611677741119158964090890888033912313606697740805235936549917599476128323109580136649954908467119014489288632853318822603874802315719973109466926475373191135680311074944182031000678809230240958937847558705264361826878794810736978127268112096318074329992489494390428026191660234239129626214600157361146765964056289320916057366579523150960852534652872513896169752305383759867063812001128844924935578746303508688277507973159973414335108335301060725314939643297290158625044623317741615268529714380497136858000274209730370611826309890257432661621776242444432365578984534939767708734223307285304152005634305197473438561466260182150155948229776772521209176106846065712800668501106096359768144613621302586250251311703215731090558823259263853774384309957373599809112123051237921274115785232610412462933060840571421647753167833390123265949297126495334646478542867147554689465994857833224172976094868084596782165845663745757145817714240953668303401722059605812716947379577129779576282109990605205674645520427374295662180384775628877612493839008310233734175896310484194883697782572554390526836216674539129194557647436790854503825024145651548895541243968240834688481479688261439188684540085927409975472738572571737268125183929834791430072219174239975138120552948263368290182186664397294527079902954707411415230311942552122361332467994527059583949141424352261569280381820574837626108903261879794481902205287013720219759409627535011267985687739549270314938372391130525039427278898301178823702715535644400392931634300537523327886793046780345566474741464970750133349229674127152821242653291238148408551429208822904075174635859217284375883820330706622191002810082668017598680417574634329638118929550525952505668164543643536278317316569891744958457135368307861101533159154628812199165068245123407936873524808530224642192774307895534005201953633382660833353652033950936985802275890762614328785155144940643669797422778542301764456522350716511096611405135185575007577814981706004421527875033457572836548191125820073471325349332535986727149080195887631715188970154398253202989654466211557870095442386562938759365776813196425375135822158975835219609854967688059109238558981239700006814915073930604884307974604673337817537832287676349282096059005763508686867136018848751518871728258247326924033818399539671460677071747023268517930793628828759836366446052031111796057046845974429592396970045058164499215238607099900910432221638262183204156488951365889280079718993037977109202072364547564335737892969034679153622321949352179427858897379171352232144532773006349285274325247887181769858337316491943202753447445214917806272595103546990847936270459069014971539320701357407351490252608866549101442281734697054491866090467634143268890798887127233477043634873790701623866705145019954314387556277333780194719653338014820957003551799727449036359789027881205697769877072979448807027340126628317465891360680051374290451967937437617062809084971128132887912951210355706963419751807040975585445844662267545559136062556635660400490247838820722058923411024604664121450717320332642927011595275268932900943641366150900815267865862488028437591476518080225991176677384083459887924130179128598163089722954852880290607761331391401503494894475893400815357590359887903565886798877144212981655353290674897802448950964906923003293726397538630949557401726535491195436759401050372227444722580828248102871454930087045680938376008981454158903563477629860360790073228511879828591781363788693496818489890224963578248442657517721709349895206816041573388449059797495175152088514762088142230061061876545125895045129671408157600132142261317109698598671124641368464178530886296400464308562502105937427109580076661559298090897521793387062890112669590780627418723946315675853656294593507014993600538779255904237375503446761596984351156234190702743076679424016523483733685464369602953635772055707461077782399974731230640101533441539426110333834536243065590218796808736667200861734193923878140342819531990526780090005611853231266689861820800748506751009588780268279934931460719695800880165075964809801224300514474489113959642568108147543013795288908594275833476716292226942996621628254540359125643362423720675755097270998039802089440976130369875743625506911283819370219387446386085919026956337080309448597553980837737502283266944623157374742067428065288192697006417722051468006132089542843213080942848653970520736307678413498263925377491243281986256449035523902779871211610710613753680969186929925692203471912320199166655221747982745619938922866235203830391854668500731598881699941959770276982413638723271524643780496263958428391494971680695015649020117111535098282129619825672501439818248592521965285991275994682271388695674774057596313107115806271133367238851092692162583232853546580504843697610200147366515959568341018316788667727955532901483466538262581657227538334737263950787652411872292809046259898166237913802804601724650283380875778761671148836903774573335114691867665689247960077248845793706587052412952521773724001011428696584529466671705978356104314055050452808528481440297834233305782857584794606756902611843744492989962883458711324996936819433293839470068026993084814003292071233648947390416270863705001114057552041260228141531832889440727025616990829582287193675435167391999253723024480939358031417422596574395836303939262670735735793629004780135143075151207586610945834839926381040114826058569147503365832472224620137169349839129916483178213899870579325151505432156846554166445389590613765732492206490928735383079288360149312153371389281634823713987431938199159985624587633294597749092771820897378867965158215165089040498697650787164780694333933118626525550371545403964275572296530844606298598305749214355613841125980628445554756425080610353754422846926021937267324085774338937010055897226121443094946206207408422047961536159905207666421012696230722899641415464079864547156043045071538711414989495751713596739255190168896266873587744959662142170263541329457857616641327986320804547467726503283870045281461689247555677779829389963837578626167502023214242265425178263691351653102098512612237635492390346635738134247933922507528160139098222771671826854145477718836135445301174879270848412731198449355192081930159766702777352721793060955599211547483073562658621762426260955827774471602154332278357618239516935235216912222860791829780923987446681550881654444767919379381302701307135485599896463627819827782201179016018978899210492161495058374887634098182026380342177653620896064502117263121251760485762766921995448359954635399238834579882779022109129880191954650781140609096349001001032448249892196085822800646000113591536903764919374247839479000402311118338725219918045749929515444900748642399080356368473041818467875987164327920057588511049309298689226561381041410684733699087130313270798902717258237208341907282626174811714219435188403870852565286857641383307238205754975056589435972302678662031266094969406092506177206583969317208109627556124899520562840552992475361912430352726192662512121464854488383569588302817390834243344346130503350776109032776000327568970428948695751653452643653603401790530496832445427597310971122574986881631076222342578931598532228654168545498058229820270198663933687252910095296244057248908872534885159502908943855102793576365882196394747723151246400691677723759361438702084612747735151419630121092609850029141288506517955225530488908686279008791888994274664087228891003677827835928460710166836048579759550772036648738327366085270188863216885913646864694098505116236618210891457722734040869663124935428514021722843942432676247432260846941293291768644990261239132886784680263841309194505165453051314616950125744569164779864837340286443911922100889329192695033207087316450927202027102361930836098018513967215617365943177011841411152091313891874518316826159197348708415222390141072152969215943156153338151475367961571262743486491872776674020913708914342080238074246514473945996677177859440188846425136784160923815700340694812826364429282200796459357107526155731647325961219954731432517949955078915231896208899557154601338169404089185552994848355396513329754357841217218855305373859619325497986544836876149815851950585270666438606871325563164719305411468039319601700741963120820629435745166947672450088292716335738991517626038754418483839167784765053676998509211282822208679062415279479204078040633472636426865824392443315975447437696752153475027688660989948450751252568739692312545962888806333791671887556955417449096757574215636770136691003647548303533605834367165835092486417231400592851481445175964278308841489147001753960831264035123283498643227858969524795989060393056563472324762420721890350075537534319169293467042482431740183799604202707787911673445018684709983507544833550037782560404859275181299791056204517667630718372091850808785800111728891569030656287858929664156899827727808332603009046233967249296933148361909606793504302728634420571224201307689556434378056850503988164191470204930198725595659365110167225597049543911969314596823693076209809232996645706359896251269867849687912572863540127033560232296012329143913541312692393089773872281359036922909618435238992464396512083566476566677457886016230271689079345888413835158448576139398375389529024667223058536507472237874874724581654899401876254778778079193594999918088310836232784279143523405196687985590490190207367215592797201679535115406695311686630864148754275734385581534651200754073042617942353919178842246015028496373910224767562767438873326485715372597016001837355405823560043484771516666247603070877716518685786776607420514664334992181307512194458111055053629714596478039659440967336825043094833210169516640207105247676172055653483398872137718659766210567458259608706300918889828847907284560963148847653622494215655470606915689402101333081273814461464141666839111028454536115562528222388623899278872166894974560156041912973062460655839010605419600963904070808228952646541445683455912462643179692717579922138879836956407002069766829123090885021563316380357366239804880660955104339068148421553369284726887584936234666146713662763280173692269462505953165523201581183767985671608098337139452864947894390725145933875453324476618772688413529222390269079987921995717173509632923118287842536666875997430056643267936438531299470358666317868232978492505637598920921457063180224880942261086128061575029048849028528333922340415126593345291866854751550246687518898134201861449454246521649197701879595446379932632799978513603817155976418204538422433040870075647191332499488012249233239101777709235182488339246303030147488481169346184392067373315170235708737327362285381245852671721141691999254034459337663967332792084782347729953879223943423523647736019958047853805528008712436191643416444096125297364628375905869809426395334908770341569417577301271116930548141206622913589401887150703975786091410539342316086531524836925476318847524620359208061763800358404149233979410437858326431240660199752426460387591701654752713079465747899901310192902033852374848243400257472725183866650834596654781759350380840894522212306923274736021712072781029863550799666967367848487527005153049077623599384126015405002042892775524546011170339316642617655554945659210302681767927693512818005437997725703213348083180666420765900480616582641298327913222698998464922869655364399388758789036445575447959515583011727341607172732343322315732609118101580839209475911548067582708107591450793095332401711840689007799633639979715503770669204200672826688378173431847919807801398334212010063238367266237552901154022366391439859852552089796023889331435476788991166416815826846353448602679710478027268807403669714953434509366471702493734558948825762943031546106734940363876471373695420655425672851924576292426909050884547082722752900040781362914739365291944747270329248258476265427077765315443702895148976844402083849982226039923396840203908089273699230322606134313759310479874701673969037755214263673378429905404586402983457631540549026889567199191572619504711309378436320509801533866530852375075778990984571143715301961962617595171413681863265129018666067636200851933912900931393143933555082683742130385243085477017907245846664941723622444654740041591337377079238870708804946353293751978274045863925664760890966992147985981231900702588669556988325569918465029502751026353690952587153956456172033768701675076540120168045888853338683711800364357748877480208191117481567120191140088707954114472023047500876471317138757938549616613981342258800122090226036028365364641033104562703788553028525756232787562481493249011013066686711834006889878457450154150092086754801195747871984728585731781336565943754273791393522845559181471366002140394959006855634287544189181582760360792401616523199913631396320663679157004944086321477237187197385762356989694768980557000174489964652075548227400297454467237513052123191571091209434877750250199881572591878943648804290531839695539272076846670732848137998242545564790295275642800989829913495433055733653345695055111636754922626237073258074021511363130353058164420537220982137629437561834812240349617394157339649208499722247148733446471315938007788536866412521593809028142225591039956456829014618759813694935172035516393800286391018535502504654161130058275651695487871483626683277419353935762221548411477801435345383132510177913719642284352230605692557121979291020355876947871076055693482111088997727054354465204432724604107625566345235419086058475042960806063547076833406846946909105614558168531832036373906287188198867712266685573103792885336520948990275401746227410498892419795606235159423126747567426848280439192699061490133430581345504974093133261771162261069518142663134498654044984339209068603948083016651096715722350897626640361690071697316281791521446739618414704417557726982919769968926789311704971236063097983956676621680321203402861281626994699951711904128824430833843742643343789806465163808786683515870371132161754787857861646407533210045380766721652584898704820102692788390810717478188770953880742933998447589333429979251144048696565021714672003580275914527061404941975438377202627568188470785243850802059939456160433166854299928125195955458712830737355526269136434886028153636666968038883215375063941858819303552542734571712941084741746852802655697296697665525927010245335175622829115718667070186326054185576157934360705787444833681630003135026257661743145019047784566526102086902429824137676429583849771211274039061742120280654023213769856869038542975667589468640321476936705224902789405284600491275693858542925704087877062660053425716743988067194526955561084303790136990048248939036975968391587079604378851767891848532119270103190727196295457814258560838201302893507182384049360801352207417577814819652341931942797951874157478667904513643899417624302810241389238899812398495441006676716055865964529862164458134010046465992582441459398611358904767396757018000334363412566994582448647929988971023877479964027633244792366175023129982374836130780032787570419586496145688159922691171900257681827912963315434442949290277209257467464104007546033874885108797302561798851775651086339658515752146472598325034352472072962379688491683459109597216770920615079940098079923256748232248681935903040105871249987586482243732840917948455280966002377426004163433625016018066352532839505884069524524132787920314578644649481275042394173608496502730934586599899018340018122258366556029062231101283928387951609161094493948310539718017741146809757576719834695785918124195642663468822715807848187976837400751881369148532836040726841638857849373798028958587949694953560489890649547165076278936079506870180354132373955786740830638391272289775402373839117278728626452449999103098627897114444531283760567434973726892943915118631318384875992834505678497283016769003765848757277013339111152750460649575007005491324648895117909341768807837717519695598563010386216173778863621848283989106646446108332012807383478324253307630980617438043706724794953730776188894712497034589274678360000791375208169578359665281437606336328862192582706668963121027987739885190999102739043510827430798204195516812707221660342134125169744772902452514172502649474416462725753837660127257921680283639058866262045184270858008127007975286888243219467721624142727617563670502300682901136185862358002300075581705871997000771169955914745243252576669150555009208500477697291730215561547519561167839547006903729789147706941624592831010509985967476976923046292635009161058513498717943866995086462181853962843699639061839083474540019167683063173492949472976119161861240999192538965454686151844825567424865665909359450170668590594866867814541228463265747548539220405422936145870316144750146894463119741552041507280021100011859094002464063248394802577215485511726610719183392929062509275007311286447441409398023321541013518843252058495603162941821982854131571733704433057422077944071207076734803504884614809430222375207032872181067356051214775163339056061622693203435825062243411921916617168555021539068889036124498445147824009857838362046197524190717019292114572193701858860445154399570192054742354890502300197734322476923831389440941658489233937156049085617142434782661385133774399816661074721480039309926331418701589190849742596362987567953827776433056147277349998957594719079248934709118185214194195702607871993480681349377882653217916347921152481869594307800481092385613088886865262466090615858090934545141445048837048432098034471960330879772554735067287276931650971716555296481464884964113128651100904995580732137760098283682498474894605873614797345515826527728266794139443895919559518396422966961766872612432203594879890476382695403682576151909774509507438527780828840833154955897967680363311558635510161897705617161529414264175981136468383230747291561366120845887913380184033316766172343269891760506790079309518454191451000022587474923000695782839039950646297166936827882275041079723399725106106289365371606172620036239449021614128752695559576058122898147746415901163993330094391235011388747851960067668954170136462592601371323201995813456605303082378363047415121794461211295544124444344790261523721959025374256289484820465656144059896763356952242426049176985990555983403102306514429961431740755962249983609734406884673405764700960174411388440006195590130595509746788636583894569182918494277409117136802273450514049407537323499666682696235837548973862215080949126027283517731613108074843107145037343792189536134123475489022086400891034972450214548380262103774845605633453768945566924257976885431147197090587196699532896259629624086699338623936871411293147905132928905220567929812361547772129543052009726947956761145388217257522812779841533185318942487641901169685995298053781693809797316028035406755977406512413243644578596793850996544872374029275774613086782886451862709246391492229901458411505674269559882567281500059986516265822548229895897089904545754939344405623926751470233663272071635756590660795909457472878679680471818247091402212256120282382058903767517827634327574226681176588510043757668304254191194687410418791209090303810028123529244366118406248354892225252212681289906217690845031223907022404453355137060677671861776657902595393285937469304299459857116845083835526539099174148843139908679566592470991594207143502025063875876196742738764422170120643799741839525172790320696505568879116125596738357319104449943734038159770044848071029610755138053929688660015962866310380329321347740125682853920322872271053655953915091015023098356469620414090700709676937353931211793206989247585273791910665646615508368481438448751312070930291604208088027508465664585551978143029182107692035921540093569894336900051374301644623159433578659631283769339859021317602507801207649235577611846720207708971486429953194762358491892606929541675942928311192425594675976944349050486234153650949365490840288207971901846545102237494370113581063975848990536902959445446142098646054465018855389347911745929079803722739604695543696655712038474920895009993556038127191631706618031200610733556496504061620344224808458392143123001686402505123129528285113440348194759837240281763793201730303792771253144399249517910149365013596219228762664677382651724998022384177801031303167325428610121241275695851351305043503429036810992336474139454714244174015182225440605160797807270615833485205357067177003193224143463398083089773592994686689093899242481581804474202244799067882415539122400103970029361764542025817082280485466495547613662538826717152115268632644957541749410198961079523125191652730398565136901073979503963095854304107499515951788991042951321797189125792615134299892422191453067553490952776908180559060748255040730604176333235336660450891957968852561824971817226983763898679961323507935693173056686581132299156858731768112835511684343295028217488822032721385154438661081571417061743729315289709596885878367973809371044329866081300868835759449575785242819820730652494142431418796721833221460434217499211403400657208289545819667797615763238909442013119477740728701969537308539767874411062377547632817731355246205905313242199229008455838468520815255896105894997297672606019393177154120248162540894946253897586239544435959778972867525633666203156401156970214124909042824724546040720450501497608154987497966571408316896171393413313337710972920980284174482110728525585286221881129318661488849794036066818429104776036025805061705783894846146315990780656111688874890931283388983612516023057397218868390072714435425685250181111498009356380718419986221908262876083935110295015474486890556323870361786784169620852704832731024838172725874535532329892562074562019788702501542517230147617889441220455670307602442848167092329940305602033408031623918858265848906662795702358069600133387188160045779483517132989756936043444585642712587603504523085131543994439001166205297051267514176207144169420313182549021054220499201520777630875439404662903800948528225769596848884838532357572526607653193685834783138646185576309730197405499314749125041039660295152555847998788349951327224573226519643439359407749747954782683829225929970362678816185881924795844360265451481325154672095287708502820233379734303491199599003533522348777017686507774644146360465584580970297059184649144074577582327887834349073718491301104629369756148203485597815845219229537355441176443708453942677157666153426422439500443216306390788354420938087188268510242880434095929248559582050494778535736028942529470730325923409431286184461914070236868064396471845834258704993054874885562624778169303741429577645105887808727014637080873054120515249657322260458264725231143153941594987542924260083677840108380915302511953306869359164656322286713835530111994720480484448230916820813692778659270760719852421068666818743165109043410481428487739234878346095661604841077411188329688436185453729318769272647110120233956518077162593478872550235426906369788050017465831791718975358625495978671805013311786702254746277403589871133019281351514227293353258964682637352033062535417239440210704719703583938620910710311856416861097944158692503940617793633246454883489015745494372930851956175280841793701096044026425353553011125625041292548153822304773467954514131939463483510688473061059116559086226108776922589656709592478827748448594757565555748040663737891588285520783034922120735853156672569953058055592610482197230863928617543338908336318037691371747199513405984171036493649399590394630532546646159693398833238786133079198060553009422421987402562538794877540826562875649375507976487232762559829043180129254298291602138967803044646547926528193759178372485958727417231275401916090828065106621964664359140221722736676537643374047167065922894893798224483151632504964396077712914575562892740108544303641531460964828276104064807103386891889610559375157065230445374448400134103303332950527349206092466294994465965864880481124477071885749812185668077374561872807983230721057360854752402857238784576023746317560391027862086691676124630847007515746446597345285981488443106984758811274225086703129541470206505722486496442323104859248543281807884319284191868003506497655694710867581381486431582520542274737049759855435300354341715476390739919215082406963410331426680999275859392453939994796098536679772440292171350641617035407732785818706783368241998184518180006159600535522394882819082734438391485469828085573503578314569407227649570265410613008517344536499860605020842125662568398354730007774928541340926043986394340359773273255961827521601332905327726209857563346184402346706436859556316279379753895068046145316359145530055613822431912488085318803675071183514911839275660293293974330937685904771521597259066172382578233289596445638433937707726568153384792578811527518129603266434541836475138277826410191670761607222616516219293390955236594966099332642801947162051152879818164351585581092566958889981625506719357290393557068542620579982961679713751830041961138050525676557214047113220356098178286430155692691452224078276637721853613418527698666280149454119592451464518208103907752319703035840134201370254756029720112579987093012772172943707508393707213522443468715268030794135453791971406586871817150207581562749091656851646305087182939600673851664777099159406033193707321424818855324323598718746077030721045574655682713560858874311203523442310139954732410040594034803043467738614699325949551268419373088724229648961933629334488815199719094866619208569426251943170843798439439560209131828925160851116752868601475499366540013805314040582873927150141840144978662338300652503799268059124539051194703738721390638663651387139923566324852775108012621478601628748342926288080088808417302767935321350718634450277031547467024604582333823799441666693074265083874921808176718577090160109693630344221966475910405499638627885092300802676002126006007846962981029441573087688346698300473821587223184626897452416130688980240603306228131304901202383301067463464265158827428449883094934806063872424453660530104223576135231553225472854485441331192585891344881315584905735742962947527014949634625456360068108569292339181711429154774589166244245639064727259560126406749679500260371890639570926581805739246941437702088058344849507717563526708926999449764951922388165287486056395316358096829366478238709192872348979528758983596725647507887447172601046559863002953372926480892202851438521272333940888298388445186772504967094199644160333418449836049311093549053582139324594425023134287105661969091216649781361932795317792467555200742042926088210976640680909658143190477979271994513149777247785299354263938412036331718933768236067221472168313365019631956004742755401287427784120637931872596149534478916353238524564740633092832664624299936057528582885519293604204158590309858321299461935100278416401342018573873159784976718744510955951503817855187554199621171392576855410603588498724901599324955521362037618757985608498477471122292396297246477944827854404501533031734966283172328335535275831225891090813076918990207728575080773549931782118315418688832325514504034148458367523373183794566664194357645680790635828964683524947192854970885874607889972777220518649456776928348612459782244951316854585952631472182799687822025930386856190388076169668049688165466852740615934560628246149746208213390286562742395204073295563072504951810080840737817267800323021262515089704942154718068827272023039131227307804723696373389756312039485254538064006288584089745895840414155546522035352309839576553625775897225714137975000241532293429091951186305380506079764539480985020207906512076032082287877348205402448896095427081281638550245861059127973145636857660927319777493081012096238525502088320845833653221092788831249831462969189970835159268203630640296829847957589161928849178917505554348174459557716609824428461261837110304186688500917030986939759966249540564212528347653203062441656262111052378599455886006276197046343481286434153997614203700164112592578161093264815434683461157391892949783332893433051905857736929638390315487915011942903206552583950791884638446319088321946772504983959557095827396064575096433260787680693719657685437718585091784804043484650830531326822260419266819857500545187402276837500411953516077234630908684749828251170975787971534148590880186988673443703459995749541439586150920737769862760609411783254597432607768404141058664769530775504365948435723935664116601024750766357409446453542697679345533926776424789270732507567715092122467923745031126290765270319215143489990228427657193640348141523448539085390385433245717735790039515487325404308438248054925285410900205267401939748257479062536083332005094160977052530403122275226311265815157275479719913701912748956588492962010661817867671814644542706920997771698740612372603791919707623350149035765038702203888394227595857013539802589767083579930574625852653854406000244022660121662629086056370035635703225775727629196824881869993487620669010479339969345971011525265507299169930445281253617052500242755436688964555008413872130502884304617826404280209825231417678625593169301727153217682252271213480745656729920065994517588973471799020494636387276931465108012149102424425815216483656370986631119027745245705112213739934771567866018354284064714925590723049011917156845013290274504865631981250077278788015976758740930507504968214234865412278544690849574180156744394648919917992913864612716559826257910628100797986589578915572245985726542572148435352780425934882798312097478739141217263112140801536228968928215368425985125929270803013417545199061809496513122388527730483591917625801109938392340664319515022676223574108752638234416614777853285213784598230947343335709371094404545876265620115170146460810325252930016120037350085991498587126580765965062802368410623838658284624315718716868508649831592569210288941136193903639370923438872306523180039700392368227013303107576577503820611501405728706992317931228423039154586821246369533020904223441554444074562038878889869995036054144941945388937697386081550355893277207374156919081030594646753881370575418065234419068963299554018823579405320343701388861982954326740945789002907277631742074947482238320008516236379213608269981049753213962597556525731889079344966984840110233320259290153653983413802023921289146443702905527457562297391057549422089694264186934584506728040913715718759993876401819532267688301322548902686894672371260720434541128983545564633864702532798570403538303361037910683746640801088744701555999369144486282515698766254961712918780706055691072746788654869744149408900594372442433210108679840890425751863002777131451351247517726778911009141769508258904646383670648295388842030770416757315094878494486408015693080384891379277394754892662566941445996918232538010519401482702069801848465853592552222272075680877255415446118338130607761812660424684782311549073345889173454492727822642980228654284484841649763434536363227573916939999983346237982311246191350624679518121281336133639707887492158552983881205875171001243843618348826744824947563170176072533564981924561490876154401482443811279734254779381429158241974086711582239654196542457233650875096897905666844130107574678361221304583867558957903470275527184091607724236461220791127210713371644372591049363114007692159183090210333586873963227109033396329983386237612956171242418032554957589194672770024269260805116451755922162434543396112749537014103112211306334519687975406139235207776415261673097643363175240738983394964944848672934063873321829866851624292332914449890138808466062055251172887278578700491829755734300990750038130306074340461043887220885924677941799299575518092214425853347867698733502697549905415024193571551651440942418813078272525135276763357128234273930869491615232310426992084519886215975225859115126239291229856734770072390035685345647498067731368955619512397645330167848855968820591402801928000632714555396185301009020066310933861824263733577307461582326237344449311282560710517097532953312606964910983845975538584024710762206430083064544173342018725733303998246212519000548667246990541710294085347895223829065476568048082195984180821279171595084230894768702667590015057632804097903677334844967917469433607039358060959411955133100705633986065049863580524440094890532256813031825731173958335000365109186404004066741746404707818824962833211581284837538230197391723677311739644704900711642322743502493463535494293726074416684138674746246066274240522283963488991260111742033956470209759757138511607069455592960479874264133848132243473186542753006365552030668535598193193739206548798851776418466548701675695861864988026151415859305010106717346009343284711895402715664639200824754197587254552992588532817991640285309804063771952301360695675912454311264501526872390057955356936475447202661028045697717820236617151477440146347416365772034180844393939848640245334026861216202826669228174106803345141476968977338178735713080362227321031773335591258704529799221606798154721729189418264818495938990110000906533448722318909321677464716178255793189266426412559372749784741182703579017536167665957201814920037353587567068272686461286371946108808395951851230278443837789178565415916620075217815689289043229963987364236322166183897082053039629494604816869090840273314109827394249262541925005824004550805722253866667986890635693228535944029482412849156290997964727145318017901018014204154052401009839560502156187035312051213530560065147157645601329072952512423651200251963072455297914657558649833861309770353604678102613668912195966466408453511342669750850534526926735044456287615180738167580576918099399449174455918599707779566963649837658732895161414278935673426990929799551056468426922411007502038123712695205437945594434126888311704175498857354962191184079225826854610227623060740243069277287651701818277369859353667612717099530213718370234071834413584146566033421306158723010670818947007934366416871046820850027304856143558511397068569886103447274939589666012200071659897065739568055288386653041328260602798542696499732785925266778898219824299447252935692576717445293146480306196399794187573007498172877318219369284211344644438568999134811883631170551364484388574562142749294953893635105802609510304386658640546890155343198213651377883083248770280643249372487775106912867249804053971757809805687326221480230655525399642349053876307083263009734845880968120981970313458855491590851945554992961931063545982429106421018884533255778091340172951580728222089584776367089463746640279748632191161618540867870605350663150268309161796260860149699248404724698224999546444476832950717057552926262729386444961524867506082043041052271317921344687953559474732538856656795923192243599465852150007936038318402556598923241199005151265471288295661721314044098625101443816825952655112360803999818459192998408686417900054363706174756743164457179301402592760898017198846519017546609981596393732480031310080018510838287970518537612594335051187966110072237156182665572879993650509420233055826876364916141006073290199546314712189762720030092353424720326492343212340547468009807095144807030939410460104644946446186949174643147113123445988247358208277284004923732329531189094569294432578649654731325071370352662065471888002960181589415480289408234044286944666260267128388112396347335682731363504054500746754131338860795752146756999707494875811852262460296282951892583899102624450983111872135391151715183389197201400705586570428307793298865831648653412812348479123544749380451200349771935313616380001119987324251065906300970913096354442077003605803739418472890046072762263696395424357991548265835313309826496402998513914585543061983888157515916880529293810428102831127224917328496708509899369637221268355001820622292739091278632686344430075325088850365385999555151524320116081419686696159449498673112347751842929907764912545980280682758386797085303724887908340274521162713613336212397308992867727815591142104906324439897064868482281122808501539516264069221121406268774292511161894546007161204528607414292343705595048708934141043930569443284343144279648825755098689843322305239498657450377395107851954048042468775006191898314525420376775536321121255853922593905748261407617534642401378853221410370927966138078354097791201330961463989333409031037995757731888357884840794324692038436889352443939270590063294076861661889735388056298914814142449811898658356226750430002258033837493656972586748995572360854536634657280594019335901450219467633349560822018911706188773380477464167386608530792825476915409369145812974001597039212386418737250876842296977282169703088967706853825619206996711182279377579777890313752391928533993274124573077833083152505160822701780337283420295007447028930697708825427654299228951382281426148333272970930755550327525528307145816813539959577441091322280993309027789265388322439484920288447158084726199389709944042177619986887258070149862571873328667503896233394947529215665708430948216162649499856166041330287286909723110432983524991322021439696142135377709175563974810795297886625577473726155167440780463266736358602429553002899277964452150447730539212743112798487091995033424539405694623568421515428443136314184092870998875087919969936466404803411334953372735782074094320329849066275865117177449062866495213166884497048773816291167011449539049380346493628907583063262277492101666019979784556746426403961998458119229307806481919203541239703024853640029578523416322322592993269501704106736642628135576495906358571933304903187449431525581896568922604357833793726234821853918705362817773764286373792735553625719206547133173063751774052450726652089166480799721704479540546662111852165670924352856936397562135804268058235145235613612771495658907963783286715687113155203996262738789946282215136188634380400176006618509159217092884788267222244794262462575241927952160500421781678545067698793474476607579837470511454264189359961125966213186226509827036163428189535781259841386278215681123534286028568863131424526545698763650881431202073816905752785439304515055675777276684230814793600675831598162722376678591185989615736722269593599466339672481932726838070359902404689722525885467798927562820886472946243294766820252724490844849152872025342502098078504471382320697142804351963384359113982261780118690171355847261628665485823681487969044589569788283323160909362632630841516174583013098731493348237320232576163471472182743976173149999308483830733547769400074054634796805352451332917156342524961817277334717456748806676992506526268170046865379642820236447887880472595167138984820699028175344727375652609924355162549877732667563097226655465019994653140057202301207326067739145147262623320514364506882882210278558927966692637571056604340718723505814301921084266102215706245044545966449123798636138997892694465948614292023439111402918591126526896315974466688521637827862247726950176227090582493127467383805437526756198097676210017365986512207788164304917612525722965871245440516007627134298852979425818971094165786942378249454207898065146584001878014309940481437104385286325685993598053554652202831368491928290570626601094566781171937817053695403162036202361414545125970590569614827069972754891241897237088993325105833691893508559874789916165668487297793565768136571843960839990186010114422870891656220371580077632545024256796199934721400591499150111571807306761450994360787145152213075018669907662504414574542723625490421017609606155058176961652194670703749429654993426622656686340411641057278690623960280956921952689845736703543160911037462231535439518905334084712117134390933804524211427947924795348543789182917540570545969173175071516788807070243564363760613209564181308051297398859858409444796400973648157031378839000776239152009052961129519696375900961382300549519996401763902938614817078605357765685845371335181287868337906096249801454706938697412469530986614400548301834145993234760543899592834519266067400169835144892559066516389879101582287806863638901321263407086707281221177654910362391552948104025280555917480079123296682091253190060144223791066501524497878364709798093914833981677533754925508933415408093563200725184027188460227625164169050485475992803205420311114625756034547318309791595257589927179486133982942893261299586111230430166219853085066720162675860030023531549976771181221796548833174494174328651245545106541445389138979727388250374791678568002210056036796309738635811449547049186596156845886699838175064509891403271341933883093622516504442580753168840649049533043143474121902818391896651217994700525634480951690345068271759110628620106365147355310930178165405783058518937046806353522554171452021154591658226585044876740085940752473574637970465086859312380452733122900661450437915663538004247904646977338244279517465113504714420145902215242146463618537827770378597091449491594321027116476415958590502759590309221665798921813304154653996473791342979692192509546621294986903418691269989508845575851605531130657812742593960629061554533619097301042693982980832864919999819702155679629995784381589241836134105483294050580726892930622478061577873967814645511389776293196568925980630435484514551934805626296669857320915596600100040132120817012775682340043588036374914639217261454627319774838623421318629262802207398298614275363342237949402606782314531247049249608669478016167782575679262923801760863594188658951734761392118864585142778940142556751867766231379948991614364357254813221338031135102855699320412006847415271853291621498545069969306878708089058550611856893010112909051877737435166247781656788368855469362713203592983810852234882631259834392781124644726866421446322343756831898233986836677017638884785404799402322364747143198790890662196632237117230311056744858911734998908474722040087539397467556677128949984883261807778579752695635090250782578974879195549782545529332684707360715866899511547182637654856270420421258457489533705164199675875602047400182975924795495897334200748215888194490593699229917556980512679704098447516274939918596660065360794033603823913849795272443127406642533438756680161821667328427391899504116903834927543533694341895988992414731345813650794667122974545523698639906694823396522071129901597180476146072182527889881209607279528932252777827816570096877648860297933531282388255368565199880797177248805036736863184470108222286211177316322748191495351213204390583066619342761445337503008148660058943392195748254699133635511288459377845220844608767294285141490560763430197249379968352579276557453809091059308503832897807657398739220405394271827019895308546199194204175066852123837066380341158690210254119403337806677596952138814964757630272301617763295606546831490670743451197400114186250550365448649741439169349218562640172092519004117702479723064491176784102105685670848733106455316086459263423823876477828714248146248689025277460155516120717439303450060944814757998811453088183364652835596147580618105833085295401685534151638626889638920221540846449522105551163978431869919575116387498411085961669860412924699587338259474177355128093981414821536534876678898840266731594255655222875178327727069254281093908466607515733112889078135462843880539875763637328357081770642138552100563351583221241218052633833594161904128755935230872427222039308303114617812790619438558075842048193583394474333556653038300937853244952671685429348540487720923085562495435561279050237979001734029004738738763592181681680416323584166398814045478390830431462738865747772557169856561177294028684675383696989302027276820814118840470608758644738311790674105289384706598876343420410159411278612355080604574392674733722020288692642564551377979969326926342222842175626341123215568709342528888913944129818627756985686447814273232948891156749204961026045407669059334097799558292982707715596182486826143656049129690172879966097856007798011151456755612870744567857725433770162357955053267010090936134010209211658271995892379636688340570117052267163061766675044992079848121633585815891164080240694378656241224105554257366597382211716943970376859537968023574625429732086301041271599974620877086681171211669183264856917954767697867112541930969210559769581632145951400006495008280247413159403640445323224664306905312524223483333866441316299912125872875323213505303914508485929191100656200825071713957902601311550281191231581167291408877686068488429965472453776966022385814654071384713227771889383073942982870730832970018395933053768329543873168583632532567852692928961433715433099458989101477928742269639278044336862783794720316376062036077124453181233639276175482866610172242476142252360507765408516396197960378180835214756985007880983022386851837879324821885863857268040535622173918471988557277187410414694328172590041075929194142710708364374263384945612576581081345343815103351029912675201434302513145196157225922850282180304544456093344405742955687619012960455943918706046912776702029472033944171787535627872963502982806517652197371853236609789402872084743242372620894721021766268921154719935491041625937098132803080690441538782997805246852613264061415822830728439046675778613366681280846129242185631047004864650635336733200957830138655601337400065056179409798883427229411049630095213032838751829456130107951022670603123407864907455243394619103483769804485589326172402469152921560928527805101520575988389176034754002231547857938744555291655824314577754750983737616556477179899313269750096699205314505339258683141834281356182821569821421473137737793935778340779829096697412131279377983033352720932041186017164080720006294092673207275209395244762357035180169776809387421082093056465656751998695722885497261292207686061407945192349077623975165091119705628326145595350877536003122478888288774236429233444091277505668122119295318607048070244570575975222280929258944660758166726783817684433418403895462408413804093235525693923172723604151671583498781188377078825335295567099851463295125432855152401280018753613475284743341145038420872412731343995299698406090669601280278270905984415525151396933720347104608755195900552306555798310554648430474563654778943987579742226176502176547953065894675145262982635723882101632775194283450584743429354809613133930950673484764281818852308094649098921055489135566267097268894379947050933519451293213897481173209143182205002850480538088325983798966539785955654423198171256948707615994848656434005384561951696610709146968242379254481768404031839561304842439966915668875110526795295769529163455190055667211266578900706078538066174825543501694051267354435455648759944741048616484296087956788570266042590784490860379261047380574269595574168455247231450131929098203297149065620647793555832292693891898384835704057125959965584301395034299127171005696834937530069206589377060820236367953122485761200303668449616516769033467534579253970045840107326635815915860993282289387180340574614713925949229244374055302639586042712686060486221238995525885389554568215077843562658200577351886396570492949083682659972166982496662469052409219838216901051936931653401885182943656975445114085009235073288314505250364511190463033888239338404192083837242269537787326147087164390687963130042019830262775898284513021551122906540202606028327171716877075210770121442101627235002498629726069702606457663546526672401614265371500950266506813681478595578060722264447674893941786866245591930159167415282028541882032992534699857624950433720026428962902595805396892677063787686623493164486842509673528666258115877861166695829042623589933710067719082285835730067988321943143204494531627440630940259950987171070205918542156925160978051174510988421104511287524712255221782750099940005793227134416351219372007459998335250354839234700856200821667519056724496146886273308455235320753447863943150916205827016696384006908155842862965282045789996823047463251160757611502805146780933806202110883790876200262797834154764262115772220676008511149168005961630647280370683525564709547284575315768659726743898157175694884938393544450513637778219692796057298408671137585910636596783196511463682908280272276643628092373817533718198037319981529265107743481739959879361381242571522876700749785146271768335881737704836323414668089831258371501156562104003665145272214140790489026207673687080187580271249601334922397931514051883491013906001182772637853592008803796954190495842434114651575537863572326203585207050796125346882754299840985953425338910972796867376836626934722648070202492046691477625220434441595300380099006670865265341274425093071052046019340680958928970609010517404532619364362079467900668014461303532226063807607515410488421458439402176555064501980861703922938647270999535706137955150615331331369136387926530019833463202300789862908876185337931440752870061321694501945198452345917793059411321953164661023055738033437551844835816590033126214517313244404193857955253112355253900518839474316262653990165691569652333942982450939150381868818537468727521634160527046089617454536174515598957554424206600556545499531774402620532457013614036451030106062174563094233893723425609863283437239208879888370427405872761640058363715325555460840671673235512353168694212128931745561146071100309994300725735672492488919268863486832413178151485759878123488852888325845093415916589936459254877397607803371801402980226406817762877696939988058058910082469257427782773246815880790735306668305926684421772577849852215681130625007068693989680755245195189912995936760955700974134434594217833127652659384770495273189845344023502329160480653147033517759274836524964067394897780784069029952536243103208173122343642617596565525820747147719204740079802156861181180692645468152934347297087062081777876541073311853409910420751370429134597694919715022218431119875077833337823997005457708365728446161668577284496129697930921014131460329842220427706917027424325206556883993872928947086633048959999924961578981759584044132878922331191865390391407634301550486702716380022570746747941358512082656883986926494602053369519071581324353474488573522986627777058843540424205309166277277387751108405621584195513961148378397863054476235575070473962885590224476710698258751570261059277006040684977987682279241667234434713789940660584628997041816584228872005055743109566729180492128012124230613344440502513017945737244138867146208447709151117724466044100793933160429610018413675864249886728993846390662856846944203129168929159701971222241600046952080901392355837443395044376897522106432622129701470189308306786288035265787693237531304177576557389095444622618580340894158609311513078347219444063870346566621074279399113753609931137353835916921875397960833557405650342155435243120898995172533651327650864923404382533533436004693792048889736732839691288101391497403892822385886900547157637704323049278268981194913082399664269735780044326238123518264052620238315802463995495570171553549606312479916257740112578902999148807698891600086009159825377831970725266154685052975427516724923839495244189635397472768971453530900401555664190497709265934659099283177869266349754785040135208206790595990472902640211929124078037548862862604301799279961035337982735336091603256007476823257042523561434092956626914238190352524867757667281313695709060546805691483113798146448256405648334918280874037830048537926062217533024524525528763927923764876143136464158003325610173231721974214682207146368039364558634933279256843337757381754526517903611789579134239532420320468343094803380191211330215800970046593066054293366049628864400610444324887421435392435503842649510713501498379825857382577895222271194758958176840852288171467795711263608306337361795141959496363934129711773062461838211094795952380364943936537259893116996574738061804420865707860835980294271793675628575599166738057165281680287238335349233169478803599913200482464361393599856844539839407193817498647206424299593754018312179527554106131647924153753253782653000675309958101480569698243016338902050093472776994501265470006007608158870768106902028814524356641435101963215088146050742335029346054199561368316043452868902854082456009595954878129001788384297306938273317825543791958110740474804690125560146727289787413770564824864441816030173963984192952995347021920895207645071929280012010070685224026185296412331691282576141066935627938067426014752757914827621263715792559764637154261373217225915119515594854025389449366617646852818358409352328648631888832623913796575988107583687466926334264742076731241645582558568757316107818879863617799241384519436508395774855757613734370498587408961741953287347717209668712208944342913772240176939389185688969660245442136695396511998665649812294606182777119074566370391565300282812970440906611710287261080126354687871561040483833733264658381606334223837451094349312800621491424273300639003845178309377811706041428504213408679374647690038572217029962283322997776732824691308832616202735756177239352627554279517420944315346286740876065107536949245158121028408050402388142086829419153098379529352581994200654837594742222439545983368221502004363877288173108221849339854206002895316125158169216927366509358609080512772097270366857159713650816089717595787720174207438966554100605440871164766958726326016303794581564244102773512613707663169864983420027027931777727733706916490366211827829216402752238974041271452278211274783998613381065312802469838642311333353835118733973280836378633640669367854178883005313851276220498859882520341011245899915669727330264145491029831424340244345429792810533798361323676489813096893595508558160888278497141042565383709815064544598669296526118747064626674696020380369583328925015984912118821830552985258498831321001716191084248026771022929302714594551909461647326271652005263534995172127133611905470170836186517573686586208863084208372349645680003574645458604706220546085985471258087811346969064967582984067474184804019100988079731207077125101423215150006686156257779821742561781411339661652915960411964012256617368894741268715391771131122349302254337007965632806001287575574031967435515802978355587431554363877471660753063340593452306980653039475511181704379549257219144145906199125334988871606127721044962941201055165996110600943983420894741361710042821119441875684987279267906225055968783399023032341982242439388896269046477535375549393778844157950780723330886469120301354948030358582769029540383694857077629540814018632230624693231858678698449808158513699234448958856146325149748719940513565472623143492382276014685716070692048951162021206675562168360463384142952240059763167152094097864017745443262783717896101512219134248500928173776088723055043014985445598825008977867386082231932115828184292029387823422269771425351421481600720393126681604277055181525280972452736512376786390752523587717276945555983067775851920581012023872207637851642728886454634207144601775641117951589489428908655527760923239039117593457331204991053958138018993246351629767060495785185673361777977026272021775355798583922891290989734148680940070367444219538355438802034739644153982375452953715026287474689088014519851571666959935417433630510527383030280980071058017020494301951692429623022124185567203980251395132402706032732483177146347976448644963723296442772220034620785876916600254072734071512325809327078882462506584458505453509317762821081781080903535720422801860408545462038293045729947183637920918375675914014268009229883858913789290138088240045096328923086786746960601661574617503780504126779773348353115900496971448002358249138129715361827473598791371245980784590874874769033192198701470226218642021844124083705128532701004442868296362702234567449112058146407559786943221068840714357728488091250148275250218058669446743388477140685700358957769598426464854766580502689086515152763552547003678043754267135557312546093858736352823073226004801605235487405713977399952041286869520307591547174627381740671551987965238889058243926706194093172572430105461734320922212803174097011531500276848699829261012253024771404981513669877601129722798103091372497295987871350653787697299523711543189742298818281855442467756104106877495846941371328385649713580993368737562465072539171806036658330176762406583194877400571800030825423104754658005140542145067637616763960465658520820586186139471837925067960871594177150176803937011644787084525710205963777646542800819526115522158942413300843983413307295127496008172713740102418070932838132986186516443650058357601109651360085987884752441401650144340484697596971525731684168086435152950879726593628793127663304257354719471141051345649692814926598324678858162923713613493403903239151522401452078294042116669141374314190439079203506345038272985515020005899724532832423854915826270600450227468748774851335436369886498713856875817799593865703175003464574608789649687757484007327739547114495412142642247612069378972265635386056429833153416137354680157952092854438434258134847952621944742304195710728752116345131279874321812697862586947946177863037936772570567911184047607497708788038652460848044156838156777290821397807684227676165998190012586300236689576853931804318493431298172396149721952102288316130699080812106626281735853949633231585296758023776416222909723338146178346269341362378212524288372904655134917959830716577920713105444015931238453775496936918683298321173057573590748162205047990584433451198535914367736995420831638488767736335128542467887064267850797990659135271893964702900063330630975018685492287201904989552880262796972805901266042726185794395307532136854038271695763595486804901649179932924014514923697119536570743577239658364590803249656547842623189120850420633486870400887964779050258994011410531818270656723129144377901954145399060569530195490694350333219082811990220581779928045796128037931549426850456702701218601463308639054301857578702402689931910241144956134214695360703013523698997419283454585160782938861994513133155381081132522250048054795458256442255588650847358472081291046285879062360053082779001149179939249010340655998834208400137034625240092682189282901402432334442822482833827330415070073683575064913563230017508104919319229197556636564563594186486740821017576041081206015132693128363701990051668873753183005039149868237940680625745422836083615731069784004791602238968345526514605075637787991835190818259946179791683911084484636149636054272243400850472179878434227903464996759847175238473939003551009332491045023977082500483332726288532772629847227401556732672384664075602368015502347575462475587210072705573620094239659575057057933862277305723166809390923316199151273294176092708202790836152954568870461824782492175303021208212950190991493845345193890032188920315060217287636936019036512289688914963643921434964170664636916059636123372432442549234319772766427130410596655456766538924620030257625081196127781690247926801316829340039342536124360402517382943486998288203416821442591962769280725374913944340429124652430630229274052027311382510546184988424219991778600634353281365463128021509389317255700234317102190885040613186050588201476008191439833231657107708337302729248717573625886811708674528530760588787362073922692847387546951417739202981847542511862500192760662009257759643984611175474711539431465327846799367425685683188885693817759639538391299453125567054812244979220161282213365586457643860041431529552449146746308260471437288109914439983139159058421806413417688100416530004335362746968405894718044186309808761283141425664819172522320615610568338271145631216388005983530199760027432232516967551425821885794657425144264177546521918763828857169313903599488024570367489487646799594694787346991439749146272006243333072228880930280634400871178479317434570196051267294724106006529882948171953922611467355908788684478126830710969653196752145013404399436852204145642176018955463906781896260338987472326928668357810578936708709541951880692926294960724743350836258871330945853798499319163231116043172736126393322955316970930516653922904907975510534447330198768005314791412590657148714929682935304277281126642145348673745916479888545418689052101818567521562699348053865708746155673342747767748908111453370461812492798106181919976980641242326958538072958617428042303448276899873378021261911693974305960023450842922481878368223390319637223848435884079748736241516611486343052865149589170620139611839412125016553040136253744843164242508867449522130200794565999158573168870376053366888679714456710349368902865809208949944417908008602949545908468005216344057035422988997800632008058865213678220147597074337299949711293115717664671839182964582940602920422903281909216783255896912358367342092568179281052885831992408266837363414324946916757888506676740870546205361294712162009251499674103892448136273227064164124012782105870543926436891771227074994096737942613346738894281098795186163378250588187866022035823892677646689261073801374887542154184882785891765672418372126323634068941665855200157058404614587656539207540451138837213648955054195987562352726940305950051774500337256921399750268462285102618991769541320885620343632059302345916965592758188432488461805144722631312218774643376957058742021541542324454225041398110917762948103188789712528525292813770737293021730168159720223142349834765706238127352872395307026233994492080962713567295434584042195448427374912206548195229208996943864468177512525908479257391902988532707520209770209865618723818469924192714760779498818231530102057352474842543321295305670493892855494019431271686584613938990481005439419657377326280308337857918500700794589457547559694839251257924062922534855655603735077508324686515958634109658045716119896689683313040554912056978954234201035421573950952464972110447890448672636900794383231544595973647049132015890444309637791848049887660200117991823771626706366864749255865265011257855667946812764567766976507160611836799479556855769866943959881700252508413131138768950577931395686705735379833680304996331225204872660861561939842178026303483334290766060584732859874648344668635772526609896579543998921571433452185566572736852529304458911968899189402109450118788067071284937330371467381788158753744320298432786589383626583915698136684316190460149067441289603562178266707183282663993389815103220686626225951398651394979251316300979925616443921406684138714100740373717380308689725067048399180972751409392452663894735158902230187390588849448413604015988155399377354330680123086312731057036021876267619063466934085082097613781285306204409547170784020431401899763501367080555128261899952731554196780066056319601901031102364233880824167190750701882182011498790222943605963394326479185783703386381382184647750278598778665144576366666888786966386833965246143308986119969757026747786318066295924359623423091596683334165721074829387046092541636652924192030601442934096624239534647116750387370091115588855823046778107213569124153940451655001589990823261311098990591556736637951589736681328387981957178958449726497067449555886296698056700909238882635445004797562867146498288855672766018148905880641146022068142536502586283685457195459446698614501959409243585973678661069697978728182055467581284843614118983585416953733214813232121717932871377663194951357324130563482339596034070391037573260664356651404282863645715414039919157658018454041821885058168933440599288563783785369604977574509631342433953935232508583509373462454826161689080877381758375654249348934783058744723051830202487522455106597777752395548417727697665981998490215461667840213306111085158925750579088946419675083203730272930728670569917822793170764243763153346718588315091279159767081405654305654798719966916234593367722998450723956032386238102384881028200025516525897917052163735947732706119572235670002787878528371536747411211403303935504372879077554753016055135342142284965683209719566468545278936141191428612585586634526877144085329315429721282686360413498987721656255677678970791957316642105100320423769179179204092013610742647502463546857151854655170538781289555407919356938614662752061802579379923100760615136099340356121668254037019038254035516907997532757466746005869475325863537133846119319196611806374267668445799682293877706009263165107280487252046297983122959400408702102312378337913981631588786750577233544170728766348306638539048706554545524812749761348354887668218720822762324978923931264381311957003369682144386065789792311738992545912680983640066226957898948975371868303023562558913501099156865877055272956850785076662056803711138290641002673388570476950174296553456265964485479589013801179361201712561935938746552081840143643922447632386274731398710142483365859341474654108682218916310710481539414986928431154016151243319145199176956480291818464745277686990124128456628103238085838398419444406143611395755165588202774713244359362105107487157440557931213375725046007629677237669897344220976989944502502902154982653836306850973933014135882551236114253173425862866607436287538370312494029839794369412414124095329012866807828718176901993782033045708829156011704615918714217399001770291752888108140229425825881447281732282075532933371392552622949187030495064905623416335313837224508532654737799338371642041454081742398166394395465186657594898463017760657795296140890631663767806823982201428133080045655770388447581447439216285454163293248195603482646916677948380544845036919132032569371187708373457881129133936188523251553745174257873560952605447171051056706053112724707439836538090610748613330684633927715635804820614478039642055629411755433625320048214119688895566757156362282078084354021537331933517948017250158043112118557754146805739723480736013807336641915730361241198609310395774341068549337404431861546489252629003546329573612679078034840586333488205011876552390010314387416680008250106040149269740022280673016548104684406033792719588668953958020340052353779036013125972603317226263501719453366415672980509236734561638569036776789845220505353855239092161370588580031629625975803604787579053151093527984893155528573760746850732774227522628889190368558034434345570478217137284783829980957205926000239352868494914365851367900219500822185779679490437714991681646913750564740986829493428346840972552166923174909830101107743517903323272462351155673714999722855618197765631640596672882855043435196130142939136120370993007436669958481059444373080717263026036125066961926854982571142930779699247807160616623938596111711584346830055736830019796267259826983524531278618180998743660822700158456667736570236022051580780872470604806303389790291484302933593245199954872171469571405835906442301781973293336873651204886699812118321091205401106602438254034654229593215933901805424409946483566757858974351366563447692860719793308357917699433994402015889627335763844741056760311388335424083217058010810421517161524439911017400708597182103081031476520673017321737553554980214810127717106622879815451998524030733131739569932319994961090656720952892941294917889955127434175892732040078397443059601234845694566505899923608552893402213032486187345668758647709407912232165065449631519850436991619341829817861483003901616754373288770651798716067003853806786277003956409706654431278307134626973412388664913153020512247323971126277923658909006204142572201567075146857482523700858054526907703140525917075139327783604013128326276313342574754570106023267787702499366982461076418288517530978788175327923806005238974312430593749335793967893903809741175644593176960687696404739232388087210434018096668027512833190726805347065303432410139398882152951475210484439876608282992846108671232726129006071773405621789571538373708760880673673821568962006835708203662531579393441466620568267473211186130663784663551226026876171736965380986600237121737321350938654019990111812287540158599008647518809989443971949477117167622542426178990948230205394927611806656329687072514977555636277653890454934847953606155957695234642648167697372878418738193493134994356580248109760308262426263514501735155245766417064759646633904628317554242076898385623805899207007953687384046660654015814909774527457801811126452798856686503258906277961912853529835439007662233082979217425939288311102726414640337311609317970701450749475976778849342701204106383987260520483007047245195052709166428264059648448915963605334293430810553328489539905900787447717255455225807544562540885917122632421792062599515654778389167252775159287069387625770327265367722471335370617440660090119421702804033702187940252279259046452735212957223433555657710967652971206651208397556442229581328048389460602108399782947808503577769532097107560589624617697181076437438681580774954854058974904461697573828066650394032934458206255920235432471524797005800957941850160638843766412753977530616297188440362986897864817974268655116036823554154880830745367021836247580960033455948123415634187143159429398167491257655878255134606163066585770016792691659199039536125997866125355259783534287587143740631292645162560253972219684753182140748289638802189702213225496436301465125057087979066288570325004638061418857980352814711333254692534499533420801783579457081185976400741737602497000571147480199698261792469594494593140436175160286354294921730300685396434204035741779930940515420822920303220455966683354656784236361970814547734992557806624210472781181956067242386090156321199987922942288282149467082515671515103856155871638091159871704372797748282117952761963135317469559528931154011220885467020445411888232014295722612805833934524527734400622290410185133343641486876129214005278715485798340587273926205710252272726759320199307963043021666405174745582899991835617133588029037489582868415929330137539031710754811030500939653574554916098939120300009030346308170974417470761010492465835487458224181834350721406579911447803060721469467203249176597050452093055875218663416769293102351690132526467246643945650497680755643945326990073375319573867656803869757596893906640967406453620604113504059404271207138451667292920731152229911974644743783045176239771355751135706731744820295858626179763472536748529785175450994288021893490235527907433103141369546461992359668742602992349088454469798428246449397130057593460256302986160873023032327953226685669128271388618116919654592206356168794731876082286841595032568897215745210299370745690434115762808849706107170164051520327033792620815137563917800499568941515608341644398859190302015283807047113962297474248517446318421154190924642459582427890674892229693966032485347290226175647641707195738902002737498342729781404805661066171087049776309888566805489104345050298753424923800438553238357545760469104993359461158289976648091677329284701554796450602232393368204420917828008461738823645089776529989510929605463342237155061128017029077728633580663176271590031747515842469904317679589673593689783210603697578398099547097974320332252220324913398044440007945881420573176586864312061077267427107729222241208140090907466716304992299244644217571955376597579752503958260512666982584800209639718667809900485118007124849661473567060883803027985497745277394676456030575091251814010265785624306680928824802593913869371414379411225398252721077215433272544985168075554075985285456713778227081026554984624423817023938434811728304624242946318882689399203002877596305376445860209005935052664577663497903149677767663054195596060443468474305522844942194203232422499579077245911862537652817900241631990480948648880158940108202246259356618132080619051195512910695657794310951085359844144346460853439900617471304994785980506064389435383326423953799892653018345167589404591312242503115030186191043210474487240066106086387944439798969009003462986848784630371437019460473776299885949420440596279753940502479362992992561687529923820448645175954565058064721041758205214077050262175908273740720485298273739380046386024754571390300816063944775411903625524084921988674279118708202382856142004892572737021503492728215346808839000112118727392806696607187112417804639518548394054667445298185207497352454724423467328116530479342677400026765884750795166679686074815053632591635246761454396528253476836746452681064241108277087645075003833232324489958794842790283947771079571430447854672733671868983465563986303757290631112484539714751411269399648577202351281760770079385456068282027961846744679343227664938685887534702204119757746370080947167285085003349450524118311016728181356378707400557271736105398421782276533965214265361654326266855176641996891992210185183328321836441256671892953432632724654426075905131462142437047187804361678761193141631777404137197944975901323060020053568447785007061762232587574479487301119435920175645739312589345544755935777069154309374292128634573993238591184455851143735943593910640695018942048785885831103400617364447603234485740875914186484385739176355599431964461566196804196408250211136055269780634424499754157318117305716366315241455283100407920106863564795344919608551917645664565260104286344246210134197205322713140155624164962905776714030668485721989356843747651110415056663592950073380776193280359100503929397602594126640424025530938676779623483132208860227841149116436311688151226907554961458788989236395710501289563302927889447977180460210428868669186670513481534831842448619811442326701573416700606307476240965783163328982164469251385325696278729188859762273032768709471783443230356004932209977389962302180336378485040941029345256303967784873394152664287166593397971407959015154490422668849915255326941424127668170017915182365428054701783036296872161372698102438472540413425235477059738865598265121693328448134904518508753763089694683450594321821015393950394785456108428737221371786998643567662314784690235754958346199731507284427896342668311048422219445062647479685509595437024811294406697223744208362747575303774691331779844704490862205364279079975701730085254934287375350880119889747618202442867536119735735820122217609337963904704697680498618100179206380572362661499498750611417983201898339389896969578603089848214723083303716152486406310089518957723366634587715893324546004436558199907719678664824381959386805433957156463032170988150529703452689842323861264259213975748432237477688508639740105681096105902599744306700724151810219495318153097413950580516019268688030319885379068031656070997970869525582668028315756796501309495441121233860696774107253420415770144766996945054039337661369026218167536262578498559379782386811912829360896687789693677184930186000697341176480284278066308624967185748493293707756903982818903765644536847052805076926753457250886496908461191859250385877036501586627068496764963663772331685216699163958649978500669304962977421794796923549211132466072293257799007966617268824633981465069380325239064159265895580879040718793011986792201998928788057847620424068096526807436786964840421382217003670671172907162335462538954684268341780042074667037616334142452039279261870317553001665812894260665087472574255413353383736270624537353748457404730024276891626273663477309105860856221536447204381200689959051974597209720493798767729969986794218572112337798953739892063546693133689528370002290204591969310583109094174769046329121123828394695421468892906472368741319009991729775728710290003641706645301535788977900470612132742019531548798595059322744284606473335948293667573642248402596483938081961245112085915052026563180453308303682046679038725779704553953119243722017725019249421067132336768491212538504363977135720832344490356104243165733759559451575812882045035061797155066636664017870906097871429747705138631841019362717255996194373943700588351331747406224285514958320382519190884561621132237284396092326021234239538084840523370251370059406058525523379432825137432614940512174545671011098777410234624270169416673543377708706893526522416218200675706730101776938042965352031182357404970483499338086507688831387599221019565987708437065882568039355705286347153075721767381479286940690884235126352151146152056599172863168164315846893327871058665459987204628815691746518191461246592780424494371084213970844503158507693726007658615109433053742513329297021734669069044049866285526262163305394170147400028497675436254514996559121863842361637178055215825027473739388735357146916680035235405309355196889896962314857044820571075083925439990591522054658016955604084344875169698179726052009854986902803883391690655691834876941976414420296908184980773823628422043519388332796800902866811654452824471204991904208505093740450106833803881835935631961989989172241068216712117573300377480825148547163387736263566045068511784873341363076178290987367332304337124043092935964026234327990595804286300323971440974179332389778281427417151972674753777272160379415647797620649626874906466678267902597349005154777402821187771559036695119442656684891794364686286221831642601253979472600567754716705840243041829340264832019735829988647747318105755061960162626446982623389799764409108904996621391446943416292604945935240280619175042584885738827166945682714302148226136768661292887867787300116515746313401559938618182034931238733310370460747827457877467507203511831956114898905386369517709218688462087839048655891473718984029455687977509786129453966520430984513534276946026632210234652506277905840615093512549552212003928389940637731459724349965149668365911717665021363568760680561161942537962347058003307451107880294172171611062999531702001230710715115663162598032687216508369134357854551065836219882136006260066210808326025238025882442968456794481993218434624043328887517080671640714796256911821294977312188115482829303661385989120730481214188475526450617423630229436453050802721892874307544995359416640531142546475052815037029300964208443900581914750714723426428503750037823901017536074027798114340397148917793818300730243733251151857730308564948052048927155393922281959816314465717308620701786616001562713189757809730020233747885127044051141868874067410399138114428601578065920593997766116312375754758639047825894312990637207462971025318615473925586247606762373079436944976827711144622814523391554102550936845398921517487454573468267331998054230826677770962475305489628313939270745998970368442430263939029857825193550936754351695186895512308498230626828884118018908270909011400021802968570302018428467602157155177478441324942340768876620755029950934015033764715154535732571419140150566589370274377933027341314505619726478968020950237961639528935347937722140339737194937392853070944427789381054015019294958984273344270005204797491103575517823603463751716723252584305523326470633245969025494319270339013263288592566291164413991362138100240311038123744310103784624249745795222525741141734217535698206104292697070365982780802648048884846757856125762513073361968651051978764661450884425733864475972807650944976964452393994490908009847695847723735844424802619632497258332866665890716271362562383462855901277189611003478690100080869648918543118109271633395950491168455567369362257044919951937924596095342473336169096603994810615473708328813596316614113004591599865610315093903596321354770179799294188270884349301050217522246837761427639984847666774341543007824001297731676603337172016793260541026013725994722792434327462421394100226046853137043140711808652334055584731690157802310525383797930705297184963936342198561299476568788033389457125129538697096405126312405287101436444193905368237590166844422644241974000902666806535274020810350551363442393231179983925986305441804056805099321923465764717662231764187985091685419297533131233726951208379069466202990229190890596401021517417562564244696085411513036556500628646247977422083596487638330792991621720857768969768267723976114358863002125315147116165284847299307755095400833430241476060986134110770498620349146147949801113267435347822540401522264553771814156265989785972803762565871511047795741581085776294896783946432959087700430629671575757623572528947181773729629778788854293264030928566051382355796066006585204664456033745934242504591303874713237409045504479462328061827527721460167912749406505112766503198847869862880439527571122586509178220768640034820032729434213017047637985211485044425787789346077133881827387049646208366628123579693010882926728181303507459759868799193377597956306446812923027983857034824473837314549461906352021544237632363766308609281660714457888590309652946845072523021322362068929458865223480240325344117711895001451234164945104776396026636532335203781570207997589303238402949799888960633517729851615836157696560893903699109008430390651873226178116012984359686503363040954556870161321939906277901792940408851070011435105070060369174548128656834048314196087418198114754922316261265430113360583121938477400396800476326547045948436912842539390108044225517219846576106199253805603531311569636922439089417339455177958404785105009275067791575708811862144785903389846234295066421938040126109767051727076760478561098568319386127435618847661134481939603808327150262196288662631438125776121352472530227548409433336118717055301422696418208776081259575494278255828265777517680081779758452761510361642254196241935188043820495091966473088333177607699432470023052499807768012147904174559219672450745370209151145872610139997939356045071921003892689286859198021619757994263526255399888482648421289496493008212404996451498829401016055212422536021937765562868880715096302281407847577357983066558535166046638159602479393180472587092220631289574530968672597442751557289967406310194791588648514834666848527378953108724599566942716414722550195506762299538447424594797339125357615992624612764446155834576332158865534198789499457997899354207206571117934686819714420879524898433077894368369660800790226330891632124272367132436649198852409324252497150912938473681029024388246089842076582051414741102351352261564027249569468616084494728807856210502402893623339200148139860602157740376568739501253449777915663199154162861270618124777209729270837847076565789330453593742437016913120961535652331850424319559762339122940372014331090405803704989923915140279951196704505555579499824136339394466790702694676952167278777646171158221267613240929917639873330721663082409407775968108594832942709369707892599350125870135362794133023321686244979930948304221011039028913245445347468354257205430066862143545510281985663197314800584377306605055445185940136718606089857323883607890483911658149585876014108497490126536813597345902667380150258252386155706274041876674796139718549373885190690890867607452121833965721001871624700521288207556810395026039251641356729836869836644742850396751002496874779676794940188684054773057917000515004650508310565723657950937354966406374985240646488231990922979893118112416651155345281080778300733577034031671160015200989310741375532787779127766475256177348997396868550943437061639438082195389600193960052573054827622609760651881873722882656937429661725107354721657488874867529686302386511340070442635827339657136436797233293896944854911703410380522613761131540619522330078988872244967409130455446249628255554727065850315036019554739921990693006496605530101383357931506835804169430445016321595364128636147744066877965792454884196811608620682451971767301109133064101333041975433974321088182760384068846916185584294154880356834428529926090772802689540465902669269965439830271060404033047162870133961408072954634064008706233913134054116894164925723975978783443136175604796395725816506883073126202941865919790803103113910973268472589212368538486156381618233314007605042996461426768599496932410075322911026307285432165138318855572432333795890234832860503424327475375781578452250844326962609570158113884403645565880425973375232488565562308753094369262149154388755311200203953301424889624948048146517799296760305681981913435502217159564036875977784782463831741778095422684244782826929339692375143042994847020132743066963841517064398668910424551702040718211944420224221531212100122330931421305327047566237490777022671515238688703757353290794540802464309713385203551489518858945455911227328833895391145503209283267830950851571459456378190951806711721558367364269264656316625080117733696102046631537960919569963798261229309332684378526817285277424801404276989347592997483517568431444034674006477097579340559592838900916352668840368907721352295356656783955338542729240198195740535708379087650996439328324050086549584049307222605475204447260235828771474656388668622248846464973869095514188092098463974828271848848288757836189582883114799889631867520562807076857861865574975051612519493476236878126785377822949652504468770997595205208372010872013394567595847845648034869206276253705275850320200000918944608207629414818845264654622768254273519020520159209472328837562416614992181937868537624573160515360592955721531479209338178995167648016479728294236490489040404037415458290279483198262582692449553672323618426949136816242211179766579332553944282217535005588958413216352103845708602305906361958563961059188024314991171818086143640635033300964504247489574037803895557494748567560873598782531383523777616624994414628167513789613616330282134558056395046622127018460321746386748966631392326340784756975298703263315774152281851936196008123151176069699718559510268000211086604445383482573043882769004232399299976933116824132022803805718286745558980447930301165006419585555107204644309756086094326721978777962216707228429123384302696444370954689456586798188384390588801844611115063361801278037225609797621120023398572221396814200744511934806669949945723836043210596829919520021278119065807564905416892178451788720649813063012475882634610327743973438599166939752558443237863012646370733220432887522501504966091066593773745079385911802923178290436092756691390007912469521229961447531858862455605281870844593020348525117364973302864296301596184286721008562256612396477540741504624836108545464028447834788767394982001176017734025396604083001856463283241876518145580048349935965153047645526118227514069053031747522520548387233028025669305058772350935348738512326238978309758971742582102147841454111909796321742223396873867078810552981331739746131900114452505071728085320685592291302041696850333662512487571394046933239694448371573321435045138004560732740508873589936468410526272093996122425596074408420024423990671277121197899376060900482285625041027703207681775743129265037175042096665464426939989492755398311818991997004045358310247550628841085812422036624054205908042019676720127748388879936589143229149956662014369451269330819031873608452755534567722377034544931015308955449432756381641013947957136293140931291783835252615442013781496523078435256534347620799254110972337538981644683591547346676514293123798014012255025205557884347250294907244699317403745083101643123151972099245925936186660978519713833452819635876151319001183946093896121476804741464330753269326952311414563387902410551360450545241559617067701803367166568048992791219834205449755566509495219766554124350123701479933939387835586732955743265941471489330550140632124415960841315144217007366132725190376217011823418125344401918595684202821013484874266956955832300162505702853104585630918642463750931215725131691181723407218304741961660066237493415627864432408338148066557237437296366398823803458233894784336306530221844439132620471599196405155648092172068549686855837115926068526940004027339013021482852486119176684283233327975188662722531139105841779778891218155406496553334503711394497727748704011905167421871639295451029093561482910350051046388878688386597679763741072671842721826335332273269064395775816698210066660874647536741719546252980395066583463842086426110650641581412913624922173624091114094078338448689876991086178970498129781971208576798757600469463596173511306741328714627137563931948176541468867677715687392850923870699380307880046989073866783808181635447259631481314963350320703999518513697708485673295807220524736278985685781892263692255399079066453583500744341209882644347258552085645797223624311367249007239923023054658835680437857620106991666003385025188689703427373810560251548736520818811251609485354299354710730702568098139229877664800562826033161043782713904300378916057861665599668892400365864587480606574574296513375422877087256952193431874457868103652959582141734912358858289041275153979520346094655224546404915107927009965160858904546805425211679237033168557991456768958824000106475759712498977823783796696759756753702087815278973276796898217696336430637344740447702600558308453051528076938640011225792253317062412998963035316140079361102742503051197030751381492022521454589868344254079527935295611439365275678778725807392103892970993174202133139036079985563386104659010208398901576615049410483729578491138668112684315220754857840990063753299163741941409202717885395437325755609807553717754243905323430993887885119703953208834307818101818107218111273797722244144529991505348435375921941414959403453595810888788437644944935511302887754786110406898848965117662358753147177179997012714784642560074426501551325675901873249159715489409080931596713492982951140592558055440792703534108980363691970720221375681486657522776536987662430326112606988945186336180225807949402764456325040061800802228646528129505364596043250898552617439597019861122545140896016634282414796310562946953921986974110710294122765941299236371560469175510526727974496339272234412288159243700264171934351514769908834389345724568275961470890884352680693662064842672936964586447410996800937784571401373290976803935261268827765244559255857832140135450962839307784329334795025451390013917720135556477075192027192993397607725389730629597862387451348624150450937371473949517018133106954724976122057692986301178911621181961348205013083298199458813591300330347911470522360042014462483305114429495455118915122630063717009718276791712903836308556439974167751137044145406059523485049287711330179889507671298741997737914769003998833755794139305312893076695009443045417570675148632902587980942634652784590428901905928037290582873957374601525723456455215038922618081961036905627649268722467376390242775671602605716328830747422564241086887002626857770428021659125126324578482648716246024219883379065237772870636120348086733194369880582512587038634426643736143570865743641199840834559535846848044382259095296393127563518054015198528529607105099410950036904262358811102016250127092295277436974108174874178670580653175899410500631157357620090688996715698035270837573024425589501787599872813310305800344183239665838899862714704540036990875564482293005693404037567565643972225097770556458197206704158179503643844079056331673002723832510610683568964271299499059885350620868332401319730856474755355341364091417641261862391088805204178641899541851987192313572846663413386002708735406552340995862361156017260233195438396868656377358410819953294260059532481991755316895009060187908242860561328563412524475980548654281779406511373758300542921686678301582582035844407142111529775021668291991840651446942241621626791339292342784973022320393079095165890772949174070078319314376949792341274916726612006008531634114502354103831624531396374387716583698822469220723111041498731850664548135752012116029746815264127468811354077146751386880480659346688770461353463284519156448227406808814115141222495404365339029544949201659189430803686162870024440256820015916849306722208617634891693410744825303385458677684652604336652041287626260699258913761356879529611036358523766744214509038604744181230510870184231842004822356897854717411200248464647343964114379195604802589569783243338621245380373460741635576103685713406054839739989111196670941647892494772188278011665977520142141129692054895120324760622335105885710685266334275638697299887330294627692607398940369258862599684852956414311299848636690904492611022562974317359211213059984985655023271737552206273338054000631394450353341610031390833123509972788816866697466122396585176698933618254757641363306101024907720223261113149612987564059574267173699309043094476737359226543897437984744941870021513846147151873836682335572084396996550997011881301868973053866969036167163146867250931305200886108628990947891928970899765291619958895109412575414819050438875459197575567052763074872365002220272112524278087994104451656625376522880307812561644279971050618860621304324966904048205943488543708694744719533440320922267183488433898816718286734653790839571734883860562260579328378170249128123023009802847985158225236858143456532115678775147383974108688655419956013995319646797311894260322343376794660428211528216180000711551837646659910013571576406301608431234388197591366785712764773016200825602432359334426314707705263931604529722248116068784043898541011924115619064836343223671673995041561708383968894917160482825313392324079648784302499446343682734117843138494682720694766788475801353240147552087457823168796868440726233579335397713186212710868415225992890419752664212426760106257059394307283782889576003204182304316673034042712294989829720128163673280332698043133124864890687343295792106704348196455471425423951373560708613476980207256845742251640356242716354271982387172961424495231692850944947435852438201118786412444853048285058943837209771894164946955133791293726104509226407358167800528129305150226834077238727684198480673489415772943409766127948844164351730935091856226503459392482697822085041305034185554758540794102448521629977043429977938915707484476035657913675315086702743650251777595504304223500818441978068668715537738421032934647636905936418773236190156621436494667931249353725025758022963862173183867595207529599029101133780745451200760925927764275134162659885632505121382747110246719401266727076974749561150528027883407067283044538405827054306592629176720361129353456312891838635701015907868642503200287251939710631889134999325558609496731373977814400359207940172448335452135426615488225229788003480163595035562663835684237140790032455227099936738238968785343189650543092418238361288898627503473001536462171789004094831215376717723870104104020641190270913588567000685183432879241403449720190989748940698039657335239756681746919236168082629654949316769769593251187880162881742929215294248798304499676539206026425046780936677605543681622394539656563181660291360811307816320076185574033453912891002985460317387107375824757483004716442339560693648038191698976432220032591507347361660635511119006339157477938886093757596988397763956402776098197016113205786892754881760235759114654284733210587668813187331569025790835155146253926903212878283201243140628662056025304429250035834097488634907494835557999660518159391178590408846262081340448205368494736594416120015992780980437044027056506024754341172333580411753525577261000960935012287947089806833587147921409258893057909614964943921053996851855381863553804215930806099008467323473716287237784088246695028678054122189128345615101443738569783345991072425669191721719969399002731467131876560994969932393204508987589212462420579600987347714138211569954432531225439282802225540142357511384209365910181972287838643965180460385289304108470823435223052537028271513823381223642976553340975058855276477449652003956775480614711104911563661551184483878892127885685690231209976327766826834535982561325431417749257232126322328444795869576861431892191657982711691813640414851404566458596296090026934194454692852720573080376582178587279799086587052408950949838054506861780246998275052502925315298547012232107221516930357172247207017162736063201297025665948892444157864977188842879101053904953926960428383831695017782170960488830204577440196081106451264845696527296232847689217792860614656302743385193620954209754965339052610879933063796618810588180357004362505847984367713088653929698433480690689071792224398277128734204578312984858382069473455920803091182911170063273816719813651843032948059283834070344363134263560792726709529803435316182341997051074960450907476577574653773546486250076634517515106840972491209214803329284768583901153634657979165770791461073107445553321142975302699132080731693235063642272060898101220553280625661789355852382801490926309335844665156350529841580351596169120427644308256475830445725471802989059437478328361635742750722602910396014196701069687700505835299426011224827451990425569970518414691572826212730520628860160529053847145098506081112457466074405660413798682047290126585301432076444157326609774867495765552799985876581774731918830117425542053710284659402445518365753498229675464457532061333159615305091772801054990998114999696995372284521904286547700665406826795031469909553826179648878639583783841180088527375025268749399961551694127843863938826108310936514126788486902843564670787971737444222005525154315331069433405445941334131958703560620313831862246346769653223184047860404258596924659004896150576952342502758698839582088645167480044659188157454393909941114924012759918616345763363958312614461013269434311746809310792015796482303777735568511032060359354616627706623635813647064534774597626367677155699272344004586787603244163649414235845522315774526076016717186963452167586043749866401110430914776224641166201177617705090939762091473193123314320486063313139985530455426880051501080302033241857615775121875625126299822511045530846461999305070677176166278530137977060747472543089555456709429512343242281086348972450910683692232178647841525640661873133780088706333500037597932851039580541992267822144328764710553763052785836932231984429315129434230648498242613428990051176638116442613442165981848765625927072488805656068680623924073239854026046545381967952559532690315052823051025113057549554566579142033812592728316497503835892315628524967443712833192334737174752732849272472757005358358218788296766583156370791631568255680052577337898064978562354700662235435135641959161350979003653574253532220685239205997221004815168255887491054409673244610604388987807158856060381050386890624075225250965206221009713509908565625673068804530274499556502955766555616076842964377674132177179657803853213434234625555241259571488669300945977408380623230752707227888803712830710728878979243206263222754241527870791709601916171647514318349554097869007904986161104822707038514647756716594672856956991691036871352692135834737058232951139056028928440470799793982831511884075819914715349616963615306876983006163359914969483921689779135226313717208865804575482329044744975485167422398297326487278754789298430308225364864379643289746528064077093964475746943871321172861701317900115201407410408094722226039447963786494824703266810497131292784336338498855168940594666559170710615208059744707711942377503184380681142303813600072478919078601529603841189003017081553350865318183628307419904191332126229109450113821854786504417834946524362479072906300287160148098890485361952537103529188077821887907352420813532510446130513506346688125378243826476715286134815194729284016752929712648378020544819579131586355956475959172365175337500042615987397273498312501011772409156132405634383764721538115770552635812760844974757724760868657510889794128107825071350125522828581582446888461405497154023836708601288956983437358165027701307961989989426460404996758952964542655430301078161976907639684660496253197674893725378226416477951907277254875163478848759076808337580449929729114834714285113664343865527638531928195651907994856566769522536384058241733926638586357104325611684362154958869258100212195583500316998818733437824188443061877180182967735664082021295270131030000059280017836261021421542909719555616240206548487236316448081416490103500967933044118135044776261535357159053979257981844912902592013507789151864438419962239298999129446154163877210373277783120104484133934006497352918357004638103830388715912394212330820058072850733555011142669390492457559905849960573941534548833712226873002546125578819678170962257919687717680156229715060175441261232975845629271649012985790028913375185624325013324390298988039324716199600464933955786001171378396312219213039668470451333182323778458807101210127912157639283861505535813136832654004776386708456600537499906272504442735152478378953066396101189569764557613412699721262044789379516303720793638886384098037375494021864268277511126227431618170467833237779124502563085369468302208497059559270953133032258548192739219826738024683338351550443996018918658479862023741088067813332233222605500356438309596146211205823498796550377455863551120859582682321833611976468869384858359263791310052597576750471784784842927450480664401812079915750711537647550286020086034080627304950693926271220133386970094458090258747970552246726671085970395010630272708825403350153845133716055752843057975220586092054620555141019713107931484240585437671485557911280562215506352957898201548472664315651211438758042957811419438558404322661820663229311667467117791704328256947373150934904566843081508897941157838070503170594126282244594125866741922349951776887488268197391550087409094608975334851033888715678639032137077015206252018796128187071000267695994466337667515326215047996132136320533100517861673008479979830941761528328320010637015362870619417640773348892493055672219079460034118278276022332395752877187854189584980527120603250126256507987401284379603949630729432910773879748103331446454071341173036955756142511153568005337454830194010599765227665635971994405065435485948831182118734541949068822232039480659852872207092149619820805088335986187403129872537377575650882269446195717500150386231721174561981044700281465597390068645913430398967191148728386440707530902517177609484878885635938291553278820497036211368977952553538461669065985283903242505260008252412402504625362145688999761087451353152192626196976197387634552149604504560108743954041271334045056334189810352989638309363363617077637191023478140835902181264499058216984114719633747698232458303450390306633834328238680971795807703686548573590272298717695073645941957874128674518667719524346942967822990124467432775221804198205852433669135554961671882221959269841297178921360281282925291578129334182868891225283319823286094496716413444881139738538280414967564634033021657472024643824692464591870937165230206734456691940716825302404477875089435263043824701782767106076918670339956126909054369772173859274659510957132056462674665882154569818431812155378370994414860535195423171120587709716841975725029712828636674848072172599372953614798119757428807690275528680478156837327274660146065457100209115781835684838003175719816713117537198788239285687424025148409132682679624750005871857895107858758088934986864966104214436386667142915657069628578325075501195719914301019219381758623111898674167020463103637466460201491586806740811929695351901565308586740911256290201798580810224682040866512582315173546911318708667468080644281665147375163836652826814957960215729396329030581380325733664864461438382911820268914624473763267525269159484937837820534477841466806840858317043084012345581845049426381656282479689852646555222841772372349152082239147814945561501675174270230234228862699070258748139394616285332799978987078816031605089353029987069372673807502463731356258391920482335592610630287038558700086137268415518810398536110886356719272336615775369223373740646961998386342189878246816098001919901311740017636569720697113210257588597044805364002055941127673258604532869912805307299242325864463719586816241798428020191504211487174383892329212651870101030316948377785551187444407203048810533870820924077547202749041833083505835056320022651451159999077852611486843710888922908586870491792488885402883697345678159785486965210941826235366340311156976380283107453962090829931696735724888080783217821938658670165017062180641748561954810754205361188967869601517503657864737280570745203028693339073251002186612549634885481657785760609095661138087251333996606455328264306223068191124594468971883100984450146646100035439959642907280515384020279867412785746623363917530423116666345230767920143469750202468068987858033579155950857269784394049997731538001420734129520044842694144923736932467093701434834289763398557923403370523236465794883413503826010253871774996432479179662318870131698990362747342076333554054057077906062683434726695115772076769636814858760625085695206422122473792936811474403791699230283484513691496915794422443620125420151228619518892154482032787053836628061323548077639030744320475783497014524851690055285034422568980452708470826606166655152018317777638927502672773805869573126320988105315946853933554473930474195720547497912008521299732127450262201418831376124461538895100696702380604570181141197901151226713291914920439790435922636376123540681609815997755014542029504270226851223141342798796071998477577228321615883783894397822398823534853649655340900171483070443780722741400489346169251970036453832569534524418512101615519453392547320050917127598601499518847420817658730215446929884309101657351642465251720160478840201928502279385641581566890906067559717106062806585935562528456002066913956317215227266771878197115636018652388069848136958555013956209787718654935129198622105032932310055133368156648309534711445788291887947739059064780151644850871157996227315375426486103691585453211429809913669266155359898988397087445441693695213044358536874026699051846688910627843043296127535460779656073724651230280069803121414387306765644077173666087538804400551523483133904079863708498073566676181939019467262891232394323798103595508424149255139817983080261488856253650220749785068649961177485416498130697701625439553916643184430955445501536787475063899191412851331735532746134954706266984532031057829781922058234943400391990624979817145870775501202725970606522597957567262883245710918601599817000063414039102369530664991519401907976102472150258396629721606212195304264425395361913268715774361903487206591935663649126143584435611068051631315634441661849630281369446563185365616949775681533363216342109253148915177981756197104881188506884913559277327670891049542873666319197623026644997490794016711137865736813969206957329900496654717389676664962858153035056260483236301645987617694671604845384439817000635825739166763420836614325965297390084293845397475785657276834877786392154460467844211874936880632028561239520235565056436633869201148633697736016640598034698141206467561027978256329770319329851595675177361708803626343799029213987793069272517903467823608018783760614840805968614425512839447231673137517269795383394844504326021718893123211963368241126156210376938773427457380698554656208396865058459610197393567841895997938718086692434816227724831665111418166578955152283827283253717496424319487532130769259902901341481044346763609736168227289898084729747407249460367970511654979679716377368522632275821511432546550327257636395564275118030062810026405797855464338622000010141850928893101486121188894327044200752499078237363539844566996792706002160064072770091317166820502674182007957055422184700838012877925934658290356873052019151578322003696930113262245091388057676814525993810829666021994875036463582673126497088233451383738241652426711578856286259593161430307180536419975842586300815612356420693254787723869709940377568349119981528566787348095149858427811007838050520729889280119074901758790393787860626214211050275806825338311219380468435676990677170599971751694530014304128316243607222989608197111014550106724877188501062193743738166383601877692525176148424903030014804787445711528267353289676597119150853873923171435740180611346192946275131995182726391560384034935146906549130459069880143303225884220257567873122543825183078851459453810660658227944973170988984318159558427159986090361623758263000252288702991418193845581717404925895797664054268189438793956764375703511688521134370077788807068148076191583658660557286088329357108466575010931920447082016722434481849814541808190637467419241499822693083819140757124486718172035954483337523529926998449679172192043637177296928203801386899419628274607619888675946876661158157378799178603462583731503720732407195984279804105423037436181438445930625967682986716607395642638564564955038487181691973313721530421395577499265110150196084999794084513561046581817209853998789241787089666281049976827874210340854236561844861275293132426610233999189888263952868761697834870982083645799439370982827804922728097073200978905890035722026218242936187935990223025370045650373467330393600901135485596568668435646284043322429531699615410477553854773813026061934719636516386582523528161250079680444249310061764871044122582632870016437479266078777948438427414907082031331744696762580273377774659372938510800998292711549689237723649957622579176232598836489661364337465470549911054325439124054064756386970795473708944944588906419873700883820642540694817818335583989331200132025423239108528669871552284280184105191695907123946820345641609006341619570639915291480416683014939458823875809936660031627614784668095867052076525509152435593367711584777216289657440037170190654227485875389850095377935790683379528338859695077354675188188197033716743510223664039854138839490923862152769383271936079688215207677694755434202384423715943997511081682836490199227315595808251581127187148310122613284395571076084643016757607935845633686351786222926669786919876653701497272442642754057696084662228788833721851141180326754223782960959485904281405065835890319929755507076358918787170469230033680310377362505794123484365334303015521677734034170891554940185868936064374561428470410007399784364808820077051822813072615268547523724471139414605963144094240338665328140321690659393282098415345303729581640832966413193527975832062336285630549948853960568380708768254391541835789505703413479611393736298366126072325026847158440654965238497501700930778066214743239193215623975710228610769139631954885182019779117408483602155262554770588570704865258330190265216271252526546704709678633699394317523347204526581767956261585719689747899521284970802513427648449281525605528987948324412797448957392503867370645667520156538541039745096235606057963507464137997469559654386435221773655516127947629598257649254327391142689707895478258227248315349189445351441417214926280396657478001445390723260307888097256622788594917249153287930129323466380191207496676383868484920912110116986873358266734786408683674978682402616472840698913284445511157857255122135282139465662277924471509352576930722679005195147108845095310574585711816285171134259308617907243198611603325033154150677239532680258463495705521443357456644546741506320328349752381523199587847484361673096340949911752718558078114230812452864447503015842613145361368773912806803790925279759591075599071138019980776330716167791937066636918522435383400870675953265817488307161887264411089547128484546435743649982553951275791052476761625796583758608277699867434773351661721085389804932301428356481670535835623346881087982246735858853456904118623017276260772410861292364161548046709142647416546979027636767930715688513916017997574301784429874732682984764967250648401018999231506086022833224292516116885144930970179912258611382624361376983977249825815442940931454688544490855575918097996646433835300375383516773535865264129749378071764395059698486956152853806543117618884439232047757399575028202378736955423332242668526049747501903067588995222984109014341977235242153327138768658679287523868686285811939053805477595988049983933501862134433884146564661837578393317233504699744999881783732600594443551845314279515705006106824050154973884204962493048199284024586681168133746498746942350295306421958664070920272186962745420756895352981342422261178092676550461171909665324265255544553009850161583448917877415007236451981293587431677116205720551514118479377120934799626506202887761348541813497274497944880992768993863211744821479038481750418187633224064462612979142862639538993171705573630771109520411985177691450299466184390864415231239177575713393127514534054615551673687276505064063006781751208473836293611376491262261119076622404360370712863007411350670744735375890342294919485491176127517594662571033993415017189202872837516852335444310846938590868268413407963146995016551587489542910540949957203781254581005106515542915544812893908258645442727919979160611280787632262413733063635243549170166927686004572440742837836459453473678767101640062021897377089753440597476224055667365055030791554730081096638589401375667001621834084710861496924468885519709287729704886898099411773328785013917804783853691836304610922350458884219857187388966609969663524841840698136696587702935338157013182114366440362076560345837562736091478217823545615688877848246048173618787940772544746963606567864742412338431567660999740581531595145321286083829750668374057216398579759780731941084844968733740900683280207179213690410275587186127676045011789881960972125341519875270145327128428114458089790649760627630637434385697671307636893290367537809708107635990471661126542663281745370872083016721663366256321648430296508820431872727597118942077219095032758523269513302521654077571374640015063188938949118402477214897891922402513253745715843081528525685850809957243738076926184378595594582458108092770122890445852992162420709784703204400490779398073965107998001817387123077255649788554769958411836468339403271230073586788309966311208048270562976106031779308957749799995066930319786052694987016482163321538406235021275501819621465958587672139717868381215537231809388047547183711593941779480637946901366450018886398137459551340050194706439907362181542050999428033980360497332470341027295414444891926897451227310445868300234853827117326331925431754011454100559636728178960513015897748483294076145279710328366873636728549660333864001424660301804395413341030314239687023827625334680127555326742067866877357014518395799183430337826745857372083785081206906623599723874073131854841246020624955951334934379444883870928230983539071027488242057113033415335119497372234444766029998495680555613970180361412668215481161656087052152972301451095725862590463895249604792965046826749079375022767925132757685405375883346698407455400652693640461695439728486956726586388022157108433192189016887742508319761523207203931185504633963610478852096720970932604614008361523519169970016131099053530530285794381068738029110484889919012773740266262479489437034439028338637818650457951237621499958991705900809890150982427703457755355168896988649752188014101230560719398983318900036040297302033108167785001834286756998794164468051136183737585894486247940902504814650912310460161799114505392375238572970888733177955573075594891645009807770617416348887184804051701044678968405658558921547279387794051340878323781807164418622551005651990343141622984216039501249732185411005045659093942126541113781626057120111136114462697832786636981527436195378109544275590227210379250036417662956994084268909899311738938177133187252356202312236183955614820272089159716779067868246944112329494921541622079252701625604541208300814934489238849254943779925329739167775356362072603379337054647275337494513286840839404258334512352807090240746103982902055468767993243650586160646593666550135212741434608007755944621353450479150458044552754300332460379149081613016088442660131252073520149146250985139851795508491044444878482414248615826790403400256967852175289386541085839033697323168208748639468467708240064176659808911959335089926229935003765687632396885452713160595844362771279549939084581034408643014089643894570615354845493124543376246919720708191160867810813579854196750933775533778574658548599794162642540876019793824896168647377297246654178174505539553148449682868580409074802756714759716802527976522082903875639815559678469586661843410341297214981916322268539335872541206223487440705412712682781343696213660432323521498326297304203979651886210249074093871059122316795112556351112424777695565366331499264181275686683339802014332295969422889049767694751616894119085881717481427632705211349203286220649192556433103756342898360748494747385992796471431434756503422919059906976186096146502196639919458820610533275952542276499487804839223267140504884081452617044621928138536808421281518565174753634810126570156822131675951208186795863795406585169630025613583279162408792192610711415332241136813437333918063149376828018505342717442534595807422908904422309522624231315049534164645354059275010141669796710447875939147572016005409905933172571919346971033942628258250425386668518297960552758548597170052298015221488000691131473875592136238042314754028383953640033095137170101073657496869964229833569372362615570875987294043852366027758762146698038811155200189518920135908104143510427046397272136062746392934407326359459943497976603112978375498615849716917665320220837471699439214310673102486619888291994904707111472995128770065108933529840639826376664289000775061761382920368396042032602676145285707178262818683972506748153013439398370686550440370208635659994391714203564553655080568396065794457235664185567835819868729501912891890208219648198099535753946850664391885666991538629638517442014950097711965574235499571753928644885795769335358891813896333604793758260023180454280464286856320870881190510309022280980654004050598695813175825045822267155676251558933941902988684420513562009054272226959343231857658493836929599354548218124791820356714922064041744798623469084463657946260412273144023269672522805699348478012136269584065784691606611042369773790330841168377733472569203538381465993607474663969590985320418338496394762837090596576915033750386682396105976923408961826629939963639388921530494394274008040278645456117621003091715837160380265784210521446747746984799525144740121857689892716104341698730490615934190766995717796336794037407549254690330721994308321966495881223025023354107484098950543347215337876743587995932658504842458995138852906175153142121900355540486203289317440885778497950828767130944298748409695165977160500395521949111570622504008624402199918058051509774346790776757366488368398615822685084925596514195264932134848767822572385767338902377716880875139878706445425948499463074057587587621316677202835648444351742296845547359523879273995658429467545972888990809642440874239407717415475971817511257751918135427388626334966662733674797564280494564186762147632157410098713766374757439237268208238405836886718407770034596559976586749919999924995260784762678413629426698516188231897989011432648482605197259161503409693584969272093064667851106250618167241396152943760069107526085900426180955973466525273418924226484327474615944875048497835441847670714000926300825553925687570922554332974453292376663171741633875339092747334711194084380581450466359167062716027443596634376844935301799469955929694614634314301669093627942503638278428532246491136921603051682121361852039541355542724884622921455613793339364057675132424716221316638485353451813931792883343038199333685374016829936613934691049456477776325330567420094688127463626344107550226549890766773395276044780975693687810655741459309132742111757788807806886246557445347486354952010224102328440562415547027527225326458948771449647887663573930568039159393278207691172044966797769818793302411397833141451030517362816911483117452307650758130868548100156151137839039119298282542653038027567487701683113833972215238772175015364701291229549994287142842145503617065997411601561720871032358758420377772655440249876464517201069620815205245107325343229765787960585904464095318023877752677777796849091513762462892729214185630668590623464483476659574504768027639349448010660369929930853171640756938909428573407412852338683575068810884758727973888682050834248305548085978455687695084368760329324204906130136116768292770232385733044832145427083527256569611777266680466059296440915229254024392089458641338924008747018325505692758540931501217866118373018569192461140394740882260953847372410511424005548775618149537398329551323432069686916683066235116626124983276762707856964460507396030395330262620507355369578116005299600017105821609618165429647843026702040554505577233070952366093839074137635343271776379407037681019018712772375053840934866912852395339870061103864895251476191158251496808792609815860362515394967130041889254903645412161441425487749771207977865640680552099294067360016706422467593400232168802958542210430676579885443764503267005324155017645165746489104444993343838212450737451099031094464833709204700015159052079512369051172909149771184852785567245354926390491580517758047416022509679253432033192670718052256453530838208637048840980180290358243218849663042400500690937905105649478063885417342587441609984613871340845627504989991144972916609676707830432704422287014318870985121818471834247795038678955415621748867776774979138245690189019574790582158654797034071254033167966278253983101218860449336343561216901779420624518525866495071171900076067171007090014035228127529601995359591627447477172815746118750153899075956986321352665715130007178304283952426157471074828884563379089840930839945513274303108455717172723492196901594068745661924077162131689757370403914428168039650091013629267659333274657298279011463024385899906630405690836069383846094081367460821923707163031385749600959919660882455927154364682084067564184109872123406814227695251428943317138170646550393477956525091292157847210509041444466534392336983388374297259330479161014600907575216857198613785853697994380743610105490397831828962427291731069579057873569022424242726389739757825884275351446634481406613481832405038800977105537444261289234221991161591902184819606371315608243820427794337960056459730277812477918508213203725998155083622019575434289843268993553160599728785853170138220730419441398963109367215222640672817993316266721184051254349094122677549327621735387022363585637679842933487843944238045930998235417244814800658592856744177771916397648818873830439200460915600530410578317910917986188048095968758430365304258314819516648905610410288921616140803761401467018995536986715219549017797192501040950944262729961323220511442983307124275740436259821172761348231530630095657900428761902751747952769443539069296460482352975218349501636382632955542603709829306720724780037090210716247456432792321899509935004966782609833759109917614278413693502143386035095124108885267394908383566445283408552844744741678502349426272089665247045096589756013973250689771386183940762573819782139882226095004770597878224312610359560294435198437322103560371170846837798250570459247646985017801432794416437264630980059716696613483591181513267027997502363415164137746793033713500811955728846719918687958597312781684970483990996569468561999456123487978585262173924577776714071824570993808346115780877501946160319467201962083143868269915809223002158070993930108983086184484980810884461424504340126533642030860351625702533655726024294856225692559605670044043616044788217615562379936107940727553163549227766608749052175439519526275954592889877041338962961148524627527322195258250222745176002349473264542795713392135748070724078889842821023584482529015263148871911475126129955345870327672967145027154319324289122441129296585427615305535069279165267333671372996202121367860850708343324309857586988499902021542106302854909522241726399855486056545557069613392484136440729643467691189740329104550093932539274568184279703497515709922590572120252620140020846229180490328735943583124546976843587582956779314471797436712342886993009863146915176846432454121189820642844348056492607095628103288475866814802171837688641491576291390657936591745601134372422138132841920562946225563489200891839641974865335755999595649049970272306645979044425064990681152422452042826724975467517700545042167020622277269618804558420793717396260047670868248411597201970150415230081035632455753320701594779261184903654883781085913754036642045567039469696447660905820056963165852604168727522814996649597748215984970236337151381065785353750629772502384295492332787731133472336750796147523724738302795594870180156406476047312882236221493431950201558753628820754192456355288689890673432432555666488479988545753292767527491518877393464164003742697528669267818406528461583708606166594423165806207413523286329941772615616070300050546956444475036023731628916123405208930221634636919576893566534505653245818518904572307782468411360421553918488724863482625259298076724306166127430869633865590628605942349150201455299940385185172651336645556193692478285060613000291329097218663837867674523823432119730585684578202296835137558906659475591751163300479272962053303814409202554711041795604037183008058035929630905012594467366668509012504402793600169376999559618710199661577392355365645038284427515488273820665818671931787274802646011283062745805114996771810472438073879010935604013017341953852088681236094573507776756537697177404070808589968783469186734562883423695839825845119516846700940023552399628657090515807713698718089140687659368645439801727692439186133204396415051166615412357027897835240703525620826442227571030201902536467153236382810228266909183613494116475554416119867928773471168681617143142204432472647629986425965689699208984736209943664627629013137029210575422255148126092113283101488365971511409850062833909279502078063498150247629075903842619655033820670830956075170983543375434248678939933451885747209736173324654550057830532396441280615586806123807298432438141326811942184949186146852359491165770496133240808388133538726791714384081032835022062314917670768428597465769313188841545098373387922591506341810215789523312215896433014933552630312826923344229370766668956640791174481202050085372834653924150509520496043069194657196931817391227058979712057534431288454882559984340983475383601552233185046132383523527211752709815288814429777009994650721379777487096248393865779284888038809532812875630378528736229647406276823999515318649283427711482789489879968456299475046422184347757660937727069511683273322186956872317018406543707272889072991798660868118594054495380553950396125452715935796924378664097866273191475819639384054821583810904928527855507636028019444722680588986975280685972549497767226724145766541819252907171671715525231727087715211536238666052607063067599478939463204341357895153317198813328976008759700036427456424180818182272337478176102894258180201584034561666715082513111726581397115153382276536158433912845705324282937728110972249882525788826111922184978306314356218659175826975627020808687171041187621145464758154990368107621626537877578160284238384352505540435611511372281050559538811354338160800838198689731098469081796316065372368377864294203527654385615568575225861386624785052942754814810259356448719305483597445084684369267605589912853202671199907205586506878868478935786104970524615833683375827793420827976967579455417282669935576207062545195067681684451003016657271300938745291003244819918999194130952084527214195544732233255361299697121127372941025521046554112608490846729582001403493581162586078685356883459321653224109847174085330162062531996174081636355223103712802721479546000165157153721272916759983506922164021676948508221224229649935799619276574741343316440974214822838008344480117195440712765021713792971493951738422272536617401760266359526366626861883755233841018372063558008697331023071574743569571393892002527795561662706749660493841030339304023027884525780265060475676940157624790442933541816713278653046159683257273053400103228040799570498733702064859817746675190755420088958488774422633187548826083014358196531225905016525875898595909448104529442726677786057118661189965155602115856140937918564047033955990309603458920206905511142605973681883226222085082156247820568590867328148399175830408470190486814262343161500276913697831643973166801126636763381331227719970866171768828779991391305138891508975676892493968082286597064493907415738141473904205110680368103267107894276745537967542963240646230352516196837467313151079846692429931443797836374796336195293600627564877853558953166992765852468700861696629646789366349234159786026590864697534840831672589197665579664179741682531145113609015491054714769305904276587489516847165942078731970200370143701092050648747747552779881308724658160110450120970472517727543129245140030899277671458789638176988190656565301847566845692535558905952037180841238919365970029180483941138445923654018097466878168983740308071178683584429260006818159074185021348196102489646749386782415375263382553463269977903866647740895025890945487446815132057619312304067898348926712084569590224824637167978841960386417254290841167211813139551172916178804775136284072235985558804500104389218397795591776154976377528926488028466182699981963776490342804957552735629262152804050046262890717527148725685156003246106963833095984874150799310602459132418820682316109497796767122749746180440263268176563054313970667456573481748828539977217687429412781219140691574765795113050025263554369755954552629841406461950859070777412828543247182156219865131413975291051209549866852319847974817572962430484519318865114450614553477827808755999246020035662712246027640707475185389569348099657356663304760624972190391152300522233731193144695624187732340821248034672337232599927799968950901909675061129064343548867433710960888857925183087125120528707867075104050444813207763291811173388411666744401526242583763163012156571273020901997167788980730091422157493837066718562411833589363278160067271989967297792481359101920565845800673837721397339191007847235818904444194567997332876984659707089139167870907756703501178292559845473710326477635882403275862015946269862698701829903414062292866707164641969961721970344589477698037471471900057097466161717120974112240570873264354721333610240869811031335135739988764929412752284786615383837931247807455596374556039560245682585234885739896727099831496648699303663301082499631870385158064892673139007154052313443851424927503259548036058518776541642440098758528964939996571352845165942606962580596008383003630420002620687957375656437253119332036961554730268047397335178012308605795999501692831313099474946746701572580898203690836264068338359524300124565451074255548613514271337620184112810061496540899035487572453850417571869419805918281381907406888492403200634946171138232620163294331311944159583910707550659539688075540090825919461710252665979435385203130468930929100063770304030260766114640691415748318804601253682999413187301292903289112699983690622558624225983454165994921399742461196979415027930794506115030382771682668867379089771598713970114294251905768745884643815022691681133031358996113934291051731286363188231265518062389420966867720313690569134254289260291842647675298551095791240040551380949558810620288763620134105021400555219582990970555685098070723591230597804986335908591498599615866817777944923144581778081676854299451344347078569454607427234682973172543000710703104283685357540969365579992778270754246115910276979116005799538921421080968560609742124901703230280789225066456546144453293401344605044325738201551533650538252108004177663602266950011670183619316610483315574318084972516480293070400983549246834055180537855531839308394735069827931482129270575170721931001234636065438399229889114786568599225271738560936704204722981505149017647955630336610441067905644652735618763192382581805268987277213220926202950081316232175804818959863313000819135944927390863825324573354129361550446432137641336193269202153856016676864613533845725585347086309640250873171305611612780834396232831204472607712212349512622685607815385812447268913503882844244385932926279834830165487841636070929500332862182509304381046126038756653778753447793892755220301196339390224898851999479358557776217628861597973573040087971028125381714683413755149987503252581882837661938361651113925659138919645770266225791349305083393615271032419399808565480846782460815566115742219643908288477426608730899859728760861853720273354550482370899133214956479137220758753668140705773064506238274128505699641224277096023233202096272871383680332645057534395257224462043271255924167530779720894663449472697547365069289218739645254520520322863412673974847964396059233095811048908980073325069351595624741796027000294193816240586980175112858343107069223502697766092946706660233589255480827551665979053839495711387041704415563984621276389550733106930562025502813769304146755940016857257077989694032994587881163893351876056994850404436076875268578023204993254818419418470412297679221929614110014286909830015569111711252526397651209610811140952638031512631256798403318650219759392749239808871378893949999748532530942551257552054684132535065364194231952234534849765775254215712566688712204103475637007041260739082215119853272427729103204664902965958527087547136352915099844772767419137873924443391112460256394007366191777117126814174135503178341614795862562044410099918877481116231611614863956858575128485918002721623118138571395269810739161249008759246950915049800889767547765154611836281350051001031607009648170707479103819887453280965235826346058186040213480971741127477051063189946171893445553080147153022410142604968905853991603623469260628814899790549017796690559865743656390251819493697899354404726680104583791781466064947658462359235887578506371644713439926336671430173951017740234957965092943487546858252294413227417967766653170052116723096787142473497030180060761157637739808057511176118101079494782461480041639111884754812301969095412657095916033058622359562806972905275354865840103650737750720031575338277047985497901052438446061289887281276622546645704298684999669515755766091093429482813014909817666635600999864051545193139381261283111686996836398186709063560874341100001806105173087856239638420885557147734025766174192967775656537960468508564078741185743628978666199114286326639631478414580809255101959976231903038368548518344311663103676350453438267707159204704583433135498393029110366434601390624566385890981715314945162946411127368160691828235846330910009887015265409619023628392906240934012051901653201634012553478588123446713215340728638153083593297362386629987505984313776227532545248044684031118524847770749051956774568137511610249701794092630049082341057109530068527147742132183662894553081896662960877975051800014622369072160022500656281000539251545824514582678513605879356566096749387273601984440130275549045143476481195542378864866903438201440659032216091671824442665112890617011609616963264708620485665853787723664139811353019515062272815899590610181934899957690327682350995323171656166271845043238379483270602408318737210563235127345438484089457125484390439192927585289924208528660094064461990935198223067812678907874872397809027036997190538436256685608898357080563948347584446726164186190734289145360943829888471296210607557319795573598094316194628739060249223009343770795541562565098814683811002013368696242340762187035015007145048589198334324333709625203595601722904322568811839409957272559821609310841024762173071596933568865913628668267732326302430299292695879026423345415951326841446566678433084265457523226598907842177365494211592514295500371122398177524624958352830642320172732791355946457933758808979617135486755727618731108586964476989226226292084792530536072318067871212711153335377594539695087510063689840037725708318844689056700801695999242368496503478201022298319776672222102364753957672986987821852106076412432674145946429786088003882563937870393449768707055151877597367403690533630075258280235573536907669730773865456636550511677244446802675785617946006014113262515731612558739763946071113581583261893714315860419985781656391821631631732565201331471729829776577430017044521209839762233566543852181049802173235921415644408635618599462655363689251623712353965084903342625237100393257817342954306545401494162251546461726578026686510722495054236991857679263880775992746515237276272886653722498516272547110156356684376538477464526021711605680793492033255986130617760036562376511180341075458638106779607181517132350743555455677509781822519589204274026498962589498882343781675457809316323973368157696454349398727848136836106242263812368277663455733155519635792716050610945203691531723875786893418793903792839019734356011466429027360059779881077157396269859193109509945730460387634864682066859466294961345376656004751598016026585328691670035208163270075777327368855995235550913632850700333227342343192318667271272107940427403781908839445114543242017354186935093153790300907523769324919138818689483400731158856403144245674169061468604670632824126679324751368186960052211640312027443788357551995785746286515414362271261784044140250198238056035129903623862727523448145756978551345942651563733058168294388708953298873191834954696316308743203891549030587607070634912840653364377754628061194953451259101006587361424590236103417094682102352773857805414169802246865737629627384827434895084939023993014932412633637071402994310598194583978487152577318311988675925619746823096344012146238358565374000323398169745998380353565041896075667971716803831800387533919964755069697216734000843125683753207964680655520502128364805979962364973805469282795853212267262764683645856336337108893856211942670749774110507495260619191782526525710645653446815754481425367233370899458478528241846051535782188596049153265984214238977629649364386328762182218927714632936384355978891364223867645309140967669698891009350558640378531936141566484944138150231264716642583046015507219116735895527418931902486377835010881264852497020287791781541067056112492096483863850548001068551551925310855954809053622269865748770629052316754796023617130665556311844273496326206669925380093185280334540368332195049470658762025037040092273001441780966165630151681511148029394789518559586793350773888286459472080082828249048792953675471579438436718757071205039653516958599338241198755141805151683699093681769904844801266070437670176328213052652013499705080076151289596315490944464216169074126115116219737473707531637535183926768822781530411635634794562598969021072024787569144228427855345524892441565201391198735084215063594381837260217761070880097674218341227834210486631142191661514000756869734169174267802840447464252857032719744878922060580664726882719893807186993538044688881189042861882018979080364129847826704766627960853048624470389112607321297223262210318770647138229172691637358813908995277847203942273409962831378811712905209569726931662016640117922071614303975164427486472073537538716183009129491025584688524507392041372186797502759645866633656751916630309454355667003989264116188269662784258955149799556200748466318427581004517334875724670131824503506993203809533834128256185120681815523107300164055715924840086750062883690931547450974836315648596992447619521398764214162734973604669156977053106724737201417622170872112163049799549264971609575488636831674534315744761684764054394923232702120378477502636932799465904406056033275420151056860620985374359595797010281686236525608766542499377060876111241116919376444794867363892491147331582774188670978964365487207596901153013394492397992764880866340366856139323117705150947757291699518943042922594524089523999599136962509806173553278512685808927372876925320743846532143297544029687201908031247318667010979277163655821077513732998923095797006591534221418722518485971771612117515701696237279921873938262335740186861960777638189649448084834906249681205118058964672343438653958619761165908493885967378184929565601286124407279051060420580653795809778521693551379140660929693084475586532732792006481889663238732497601228298546194727699177553609740545564348248413662563397305396793984976734666489841477692769660499904242024521536779548190968706536648987270903240592171333420536543807416849852701087951758600340787086459692567372463744398657784514055107247658478836866834371813760601167880751380652435889466361582271370097931693862459537115126547804921772995369263410235539500288055826846481687353282180257579000453115910166275557246852263286783011612493984972120149071549937673312461471961907293530979111283010936146603259474285951077053508532557335810002322465518615063457290006926321685537043096189717100523659329235468598818505691110670039299701936024481450509717439051021487464576971083381539785964498239630130767255152589378171854280902593846884195997322493644871512190258429601835880796675145982319616417281176034130362395167310011532047658662543970317390139036758241628823665741086018193140940371247387020054660849706063143339376772714751313332020399803528117236067891888379263476200316153375317733514915765562626972592597383205019453111976892109216026619428589970271471984640864749711172954427375039022189815899283170245230074111466930362871441251495901121210786678740440489326790319930193679943463143012684201704011989146617957324572163047956491213813358660613232905521324129668733098622648898865986803146300776285316860387647685021423272097344630323322885867091256266594912030024710722214892095873378631040219737553822767674260843942529238552015719832035757217903180147955994064627299675050421306041707870340881044988372903802540644178824481869154674371350238754324076409356305591255652799955743216009640372835101363357507722434698295885815144820472131661434518850308291848238353857346612103750914498988926863201405125345697060030524014109409632386935771540589427803250912822226001518373941849823863578634832997787688857532638689738458278073387095828038370443006944311351840698527646661469489812155466488402243208145496974786767851074576546807563765310659142906671905264094865092124354836376713079265729238772669397755135652100863442077411723078615650676974163845901325924804109890672670369285460364751515029663254638847618533912798090744508380203409450187277422146618711954691337131223489068776069543697293512969716478617331914733211579079003454953005728366245602716927161829991722817450517023172124011708080098338481019233194904999196729570961563995882530960389618359930990776400630760422010690160498016221543017962057056481484196610190001599805521611634744272749215434689706400423894198365607413530584253459345096810661494751401570770588727088183683333013523406402434016989228818341570420096378130740328503151183973445571136795802523950775047991168739558386132026844998954465925690553178973109622357235548647538126214592054927727849325568151759224634022688925087165097209308211711077251728290676621793178126151908245391854250182640677986087368339589466013051296514793807400566957359598994807260799182854452203316709324390434750521074440079834314605844903132838050348639137661214663069537130857311332949000620392558046249192912273802767848103020912775985963581935618091755928553520577903147188681503056673903226596977914079254475695789436762878828981893996349801865002632684006617155319123747038463558965736359571613186707848449682169336227948498901919537117025370381998054327718797656913463267123553082468844031123395261164029466281797241641691851876790144167767370337387095745320785489133972041405399437311730469101379565791108571756179192626994945004818326058257004559574721653727035975216654289274677660211291818826918159152001162266691904465037247338953279484044077626969087551487950213370565338183471451121661451815665158693783542618282180895968045040063163938906009155293395033651089985751559696613408088166764081322924613630131094204023471203365664356767668632707201128112609200892984440513993015873995807012931693177953295222638785675764099995914077601008211622971845137387650525338715027972589635864129351609643921740064647534259600308359394098784240574350116054076569250802886601995577284660576159982215415577728016128097831942509056790362645793225793178444576051277796311778181018666848418571401096197013507449245644887250267758665217365726844355991943094618172201127330408121665718999249286054291261405497484774614414255621036285477234642360771167248324290213949998274256024426074040169513432739583768144082093449550381930876286335055778853134132329135094354860218477258072186333519358462458609091795901202385315962102165293803400549053231067043205353490499874328061738795708820053173518547107457099128769426212642845037145912655576717995725766753599993723137170137446144466685535627022565798595520325514930293722463876781568793405252705359974604671903200521917410251503695535696306805379063952678310550447314536343692660276328097628342184033115161240637285964504684406887128421484338378764310832872889700632507179381151641764111748451142606306615423529225214145986903169173944581655427323652674768458632118735126759028521845387544412669336271772888401928215646830256105127517301888271404644642102204918138882620379449107825200307988376203070074347975630259946860261332763015138474677952341166960699727629946316048701452987540832122959256419972757123693288683753212385987522476242067330141681310928826783697303341897463903712506545180968519262295177174366869979150602447005073562971153766986711864698634787100518700864646285688141654152808865825303405883153401450134772846538123747664548399251163065564771897327378812744010144420679753251609502429731083149715898797677997095002579290112836476639190997244603677942950873771360205728984148177534342781787315728927107953101984889209118236366951919677756751152895382093802733872146177393570573852489924972735983192716339059003555896619828488946895429379812646640764250025862702557178236469220481085355809268786155886149648510341134991929951232400628243832624155051814172693531782883672868468664299471679949684034299710057168153335562527689476048882259190149327258590916658838730778028822291748102685401469468255479317048601338679075735287969425247766523529564565484379121362871938301471309340107266686381365101681508405125633091777162863900024656330603043479571789391295141161521825725581672043038883965847329895472683271137526844420396704870520119833525971435066546105996125706688777151381383635381453525087794904572350341926824305693913016193732158308745790533538392986954885985583404173587659071577200888729097050330262536253495225522811938598166083153987035955339502601207220389713486215929438735498306362847850364320463331765594595794046898310961701585733554599419976889445488869600247193664618751099085441285349174565246477780723853569880387362446018003216329588044618640452218903772729563291358852680146213757387582870513023549140659395609042803928441540325283735457168985824934795754031932214429182191034226962578408020441799555282822361879770956321814351477646422607639397748288026171602822112488258926170715003088582291372530663861497532226242322834641283835472986253436696042544095860466343160080709562408781351190503322967484019394817055643688039380848151645580657892676606819846936962430497857819629000254669074264619387293877897595174334798668532950032675786955014684202529600826273687760283660263318289898608234954088113079108162243180182434405074049310306101011802307196281973716114320722257587858703002336431383526051722909293501226554476194430336311070415827938900451507215285194067387086498489592805477978442281497223179185931632398191914314843371582428660271860097649021974586844710940938717595951560515163264458015138483260326094330846174540389970973916762269850729324773463508211192041725441764915758225764629242820756819597106374709741829721124427937439036879198341651496252739869042315386535575640635233756390578174240009143239743129891805111212569056094089969323695680991095985008020132090659766466568095875101773962097937403517074402303495194609310534591406849325019176154441239552089216012779793707701791376741542657412327817328114355543675056550963404126334051709330084123674967653794691291055619126323353186532313732069057072920173471000227076800908351225304385019924080139189819257060933829892732152411981611010214601154020547865915505245960207268766284596124159325547898352166163015057328637290844746639470887632657381388788458623771082373057322554518808787497654969490676918708760287037067423919922029468635268050953044146990552967385372771529799002283069279852286153047790818901883642477905775762188205924925423619848117739623744722946616713937948707421281968192729976516433775533594061674289283154943146358561631088341618460227895745938187339767933880808612544335300151065363312609909860870420839295886016526691036539386848201719899405756413743685040637678325150702522439503166705296709898051381480312599099436708523049550190474400415021744809768360605097115639361416016362072575076131883466914646300347821134841867226466699205736298515546538459819075989238477572723014689183333469532258947879052473991565506868962138764746110422729960929742808870820654730200209364242635622046730436727745268810475907475986471231969047831895498198641101775037322802040928807730291598483316854168759390524083786457233003968432548083824527781907219774480841623291881286238475124516940507470569465356997981438894366288571888507829185801186201787785061851507750441554188932993625860149610752435147659638468834343303371449351725408614014329057579876441828312473773599174959591986545924125481115987940326133683329623538078520650501719406618351865499350382836084251661809655619102995854574827037604714296647718401977557783388436566718952025006792779260744336923877841739802080564038809787095482428115281035275338136152465457506652218053435507886044718542347245529049883242986471432637869745711632729302870239375512047989572008660351319462922050545327996139465933478029888644509534621850512827454172115377736898981424139237738478889373235191426546311021500301866121607551596322137431959248539361792363370690540339551261043121127030478552544290127536200340971075165937803294320364890195817670295802146566237682823351242074097062992751514065304292209842184864293106653069297914232456567120865598186833293028916321871453272158516240031057758120756301349406300400053515216335138932202768086304605011949110891554120570017023952463976312346150248113298155039608789547069368062282879648050614738795413715643689432443906367948590142904609608053803830214128026969409780164861707719336408613617844705118887008429641573259960271049080143895187758208611275171323156652300262118517429579486675671626628448600175770374301586027075629868016825557407802944211337209059555041046636406945457566761271740204628269946328424283296108671049525299855978150330508426774650114835542057721542843324642344279533825243113263629435668723810041714853330029780660945234625743513759021586587259022738651513913771837807675080606242422903416644584543394772136591479773898218595942088725119393668965201602462569360902587742294316249963694875441676582821244316754750352338485779696091238592610808046669250055194176751047758182302286520507156238356729582584804869066903800314655745410875233804864015360121087728129803612009343437219398948618569889546297446411620508512925816018978738381481652299108656120999655156613053198062283346773824429400340457110052713614519974439358543821020342347338639033617241252067005895221850390567906334928451135423755885875475643892527686550012375874236090381993922114678823240077222986005829258847360022597808369521660898271455200201783320485042204633029857444175862776198161399908775663873423166375002536838312503658963054621252003597551100228750653233861384864381391275564210537735847266852038101962240692998522771022232564562347709511059920628219528755243147240804835323662707241679679597028677511843000078461601053661937790167579593976617170549585387098536542576749082554891153571810372797890339501753184549042083934862989502355778871726727291512229048894183618976734008201802567013336953198223552706258011685378754165948642723275403458844891916067449218082954764238751162945541506598506613219190795292361839651583071306950364927831424839960153373410492151955516704831124405294421072078454939870915289804384476042310781424969547712241635768183386280936486574657347959222999401302709933138119666664448167124533106115994325875631451076112083535056161009130493189999222659776654001835085354961395251447173681086466169913625100145113924546333277186007497279090197209555151796576716149005130363097602078709424030214209128873032914262779272739996404960311118203876921743316381173620111554779769565704683402683412783763003021995818195498180845520708012552647030344037243926376461697813407583016939654612352458612194621283818627584427054080789237820151807208877954169294160871691182726621295171171157340956095970177116799953554044931699642761162127885189734780800826891763177619104488667190876295184222015892391207256355130476149562822883017464664197502529079260321551751534277329026508688325976712844244806888488960855665906187919198500694063325997440517810209898940053746943395054096931748867082639584678256020997632947793393999859954274267553508167711005065326214326797388902905107879266756706853245616891944338120078512609926299912669231500765974879324753606518717840431457868192027850675774460364916145159034286401004655613751286122348035818666863914646397805678239302954101459811940101515740835852728717207190197015787580605972363311079392390110605662066997665637847072456705535536133284841827599827973747701266765592382179344427245021057985142914420642339103905971417123747315063862042368136461504325829608927389130003438482648314483107810067066879143991883663654481259723626769656818199386806806429133199089150480884106672476335928357531542478879287864273347211091574465854757955320104696443227594282404002640174718734345902194286905174600837773046968682623730603548900474326246271590576766134133050406546063299369656442889671360327664391217698200126173043424116493021401954609347503746516817914691739861640602125709556287457681765106400156103894450359258378481616557154280280262333999566629813376127048671032769094683881464818954548448188927804687243712166407424661198932075697298142784430448231803284220580074205393566596844753256697123973665506441042780626062941646439309256207853295481060193928462109440547940444190624142183018824860720778689456757226250605957397973564033720763073007951417097459323964044184518855539699443178587141269325960405617568366866216452104920915548772380887585115601522407651139099116682304573734007442173475359153738706407786510127473215473043791638138611548229902153551264624892877165341092316810171673346999992931894527023103529550942585670019880686807841076468944715504756104353739223934361681411969419150611165598470498732919343982735267439396276729168857942537125267310119718381231088239141820272849066484957644167190726011990551953918201134013280359016343727904046607543855577845070078214905510052400523629792562366740411240811064364806872714928205655507415607173152653328192598321017818215832549718300540907277850609970997644946696240058268422035945146580490356160925721724419588266362099012967726420757289045117268012386576486096564335809491520159736436066557558071465212471271100037966628744704406038628380090335554113877642746403773695119812770678718623570186246292580654175282935477318535250791434178432254711443191732982501621707997304138174806462753597859295824787719445831319041566533357247133001369583056256758225272514714056384700363243725571538962039880982078392767826492784729726868313798800456635926962658050143942548734193829385319198499920678548427872186602319512836092179428089522866713883887177712372212335898511178285715682407739299976395111716490018243243828936252141440710534979719853070769225192639324147916472345922717856930536791911525556663027573524176431551552275323287206043647909525783834440852924808293118442596698137284042304626985372814873371430955493279116871868153378198045164404757071582939186736719291193530417407371809585261884129633885122588185086088502005803513488844147439880785867752436987953202331647862162251726328329086511582545635278388180048774752647383553456657603396201251319838809304504149486128311224647813696536155517476740610457082049349934790966245718578873570954003222637143416994265382384315800185890966760157088260345507423490184967893551863652801657616113182902092608460602328501341449255268221072389900348663984769621478164246528599619452374643484739125365862955626656375074293353062939548616701144236071215995448887340709527296545695855690714720465518451828549596897615362956257225475770102314297458113481099639460928843312064337962968098065912621625257505565062632552911935145588103698502070126944697385344088922925525889032307417618685839216898295437334081618002093571889111146900165670915973679743337448649791532872064640425745838397026208236001709138202353841404977417886501257194584426135073319206377660650855195042575585254902061228494714050142156361233183461360728668514752713086208509874550840653912681088417394812470552349419425369214457316317715535857226984572341160808411892026373774158354505795054275412306178831785055552084452812328834639264434553995261144020775362022862881303149700151840127831172867728897764363251211234931543470452607263255012905989086629903968771036678317840491502848263807797045423120881994668908003374371010263843140227386828836837221817342372696393106832522654132333041211436854208981586518237966542226349034436603146444630310858575510367053182229720902646164824677784111079843371287149553261930000259094639818302448956640488958342672901697706956028270209191740984768092324337536221561825154322753318564809625488430944017731871626619090026602120145726700024058183917682477576052198079596244572258000584600233545877750171339147307163385075724361016061208623830009380704015662990266631262573958007998105219399250252020302546802072295786319997460192556995289253324990951572387437091289283009011537682567336432950010400101660530850398004532911300418373825288274577589291005097982297609858376914285660723783080790068731874009470726810795005698037548541852783568429703874260413156008263426639466101672827351995920083824022309820358809584925021648330072017081468212603086801761385020181672022650625997160090848488479276271119940030218946567829351867933311108401207475943648898209634893362424546507833891648690504006969084556776269517138584033222308434398697403728072551683163399311285942672186045616108829279647520353382916665374258050021821812052038215955630417014412161356029314423240640328183483771024027633987709783167794122367497548121473705297795964680112007104605387114704464256240010479990703688283183474976654815928495903237339808749180544292920733460679051435380154662502073893921862289874916316332974519285081406028571923862776783432128994082758242439218576477415425416924108735091920874455101158447055951513110436506188830543492831295875099435306152055759527688372590522780294340851349659806944221944625391728669402612391493572228656896444390492759561156532869337791444414802175932049945475235033963335311559688595938808295212554296368376668336024423371652505052704355552606474786383472227266198746408143996706399907421212420094631266959827536733292489743854870118603667102721543977416119882762829133696965825551994704677873426973498135929140345234475416831401607272663739143063318292622734355896571870917936034569149342172856434140295108339479247335082982736928771355404999878196411223777497514832254030513871812799888232920813201369177934626269498788534314595985743536970986673239922146944429348451836229672033622529500137115486776279693260510190591794393698021554145837403613782841117991225768062881099189836237809188122111859716535532796505236616447154597283839992296841178538877973945239754264724001779399874110026930479288788526419033165732350405338792402008995515486807492350311802344508997909749816706453630222864244912213388819374009452888309105421991326199405992341675771152070839553594619534551818651423532219098390857648307521147206194495872554016561917662941843132167926795393567337614924277978566865295744365746904051092847833608314414729883411100211916700101693398711938044809053955273812630203117909752486157294792240216950772529142199975371088211653015933639934500366318501629521107838091187372738906525304049161196437135385081014050029103172091217421104947322598440152081156923886532197888342201260469085500901618792068501329926423796435299110063745308204865515854232309682842748315149998469008877399013595025494018288196014208674941009282170941260801916852865415612882805340217049300812231798920307617461714532995824765601754517658617185677497845427793915628697814648235956061561859358211014563943152717940564090419359118308548865521004411342395793066798663988091221277791197082663884279109909163342918017725465253263581102179641003988191663870479186317339578655019899200644356001974574011705856426289729623468696799866504093797589064060816493088954665924984431656477209632170262320145952951888265348863996243524394602041654671547231591854220110510349682217235897561262315757786088135540417660794922174824585819249144585103392617307280853055145461530910735230695417107354809714556518900463042311568242091409244316225292665431932984505372603999648139387189553402451919819667160453562554602945314862872368845744094815391681929073755007173178523030854054602088583746408213222076298371794979113792326573465699627900899900531603030902980637188111099821885053055091777077487564041302735528161196744926440949394468218094065435983235183625414913246034283834051414567431546990327823431428626430268497951116228854088040119513997706829923355674157538464556234888487470368329818555176856347702077978446358335887790193829877665086319338642659147778897755026750993382525284980561376474224949328021622334637942043150215487931753453183069676615507187601710556211908535905013845433779813566393509973494574298348549590093307612172339918572567471962555950979466277108797948696425287019879556050846963507784219471544885194937332296546895973424851696067077978468783107348683695826650754857309897427438257993971834947063354944684214096627192982166551054903875711659225639182425259217784951842157109455320514649778810624002289193975495150695874852628898626021182410992107763155271922751450443594407337678706663377884729907085327917120715877910866887462309681443885393820079248957696064297915434704610078569313175017904306737035509287866226436835324456383081544167836715999228942856207626383213082407224316765072868574602308186652242869941015001490669403763007359760055256611244306396784664337042317629242995709019356013235335317885271306347609538263439034975136899680626429160821928092593695516510652836613911722416138287876225444973230427436107607706320930245577564818557700387454389073474270545721370979986277793512564548150681030200059031001394469864789324818368062428131773945830062339246885363995992003332458982418044378682524045609398176374677755466559264256926084756729515758197949887966186680412454479537404773809268716762791165125076170663658230009960491284242343569193493929028923546748502947450663953030699351885056338843727290053443535985836523178225390336802172503503928449798003268960886343627220652719464060869596275452621246020137654102250420433839238629867633224291823921371945008922830594771692143084820821636337899843441274079790082747217874238080733405569092717559018802622090752568231951217370402356517870709006368789239134064624806688506016335832865291257857971428590311022283474192615285505392289166142544800385857428374608430704785298536602073083101263832124518139352328827377130742129980129872881931030200268158669775846832961744464236708638734616772189991857390921571173154170570321605368566758138051035306879333913176549236027292776472236804819081049505707930667317533713290485357020549890240840526770409803723253317195031746873646262916064967982541146610102890061666185568153462197597996795047478818206910501731884680998475137801800524706456508318261594077347231438624813023652469155312294602145858486633768810822653486539552494235376970223421485540203728151141953048742686255867966940228964474178010452752878380832947352654383559183843840416638655338821128048476318064730392623627620513745691889912139568774835413652884293253558268109110518852299028129537341566773854462361210711772408771624611429990757227314774744271067891582218957562515773178371028349808839326824241445695362519357834108131938852514541786443773828690584021303691840950553764575074214908105522749675616281049192780921753913125784126841620845386791666045627196232007887952692956769892258986373969390522926961541029442955347367362336497526042253791154664430196417422795584746246962017994630669263242705876092447509317932432035732125565374989472806187068692035201555164568846484072909238346044444959030608658634105307394254047798245106691104124446159367958816226754470854629738398423315329421234375442506791452673610307844293525523289143596084924209214020396200164656187905448587784681520583431411258622006745163735376497573952627855962190492613160185142287277572258449216671243138768165412194773922700395767618057014054536966383403004355108207207711289497077033275385348960668660418921042776877000377489542795980578383438883773176381074032852954388215472432659925207016124543328918205783663679785151614655457609757774267717540275056981401446576973434635331176253967319108254026606566801273653668877178035888925224435661522223562087935045073512810294347620359158802138020153481747770788766899171744208984786868100645473091214272548265972297040834298824944619349160735999021572587876289513736335337547438910542187417300490952570333939999472857973742489625045087338024246021520123885674613750294823778133896651932826406806193170646894681853125715504144995159909862508125411286461827929635528751708023410906833113924795572717051642755137474348117958048913943074701957019710302740679536043052507895314899071567036717957347283521070880574060040516868810728779753204837578708910519323290341079830828364600888757458652156079119840125994908264605904233428319467432403522970514707972977743436772710674613454059445352952217558948049352818814884521959949722154962180148378657972485066004162190553052445735013825114443371936560586925169285109006550323435119439013332910580872936213655435038074424766112937558032640720799579238233572150897524168375396392888768556078930649554572277381740862986916186783907643930225793136080606249633753654929207668813651635250726396263256735287987665985968300030808278741490577240746832590858710273823761295896987931993200596954416392329918142334712673231797042049554221685178756493110688093726276199688552473188564216932496763857442117450031248851052499064477258699387852535503431299745314243012592759104303559907328865765300653993546454138666105634928342116701620540299129093584344860718417890366167686687624050424421993040229990495978114153049920669595454998230953979437092851622649657765695741758161101554293902907482911462126756974338758574379179513494460862491606957456265126982777508755264192424745761890648681941672219685522096189292450335224264442530840656681736728191343100761009387114035299281300319437549347781438681786377775860258222232649978159905763585013311845533512160829553167517819056839073666641963741708634529928349570948870820716406614456197431713878227882088617617658784827842875170050237287841094551936639974988909272667579915802131237186359848186736814707377948576320631856933251006195140986979557459652351508186616334488453731951268031559767401838048227722667230222945785633961394444149255720100840255149884712784068479243700806137865725240029019161545456409326304549027914697306627195625525874680856654226497783597804233321571088601882402631358937188663844908032482408581315561689488254002092993307787900150687115295669028332401708513210514003414524264089631811749598526289179543803564862790154748808874006433621658740342152644646446724683176010941270700788968437052751978629941365162067163715223106947133101539985843824055173264109999637376177449551682937811793372065137941183098914490775880896089176310802987900864427712838822125415008238426115339270393340220863707178879825743750144834782732530112715251231248850372516242545165297606248575633566403268156153560308542626576781384958106552322575404755915108084391841281630192856560704697685006290639272877169920254986437255783965540712982680472543148759952825256834192287359108075886214464627453186237640366698315950594934991422476473676222081611392789895803352464069020145559318757281140861033848052111033508699790085018582748355724798913250326709553778519138201930577882797969486131935577920636023517261087969230354525620067791754503823327864480475925977047531299954460364764034998352375827550235456099145127882122898714858134293897991531093240162274923787889010616525572954653275240574936577973880851670675260895677875646878180909888261360317367797271371269249912174421677805586035407029283318717303034451559942083599065510398775938933663543735752013951302428294511613225368777549765316697524871799934621844658937045757056732212184762995457927612375094444572209977717217388189032884856492208408744397799782858377845567470495294504199617748198279620841363732070678167559002680999164322868453107533832573543944995355709792544136607265502161451864885803854166944668192138121302699143872147727086982328951007931909264270108505166823311416556506047203785162830558281215213050079746176075195787923653449336438187760743616390355450597224637182762558366452705642685658726891172077090564177292055128663488163982767274857570818798061243152019673316245890928985915323205626784861433712398063050554024551592213579851052861218461867278690774640270578469258775116206432696677025100845629620549736394594332716754880852472143373846652784550851557425139160586328608899961682012565097806667909313340328546925752862644660831677260614535007500636945135011371183329889608288826680459406272208354631683435373785902999564571680660059724851542269671090780867073273895610850078781328007557002808991923813278566601640059148257834217547387502860979606739886217330720677093136297889099820464694161599060312357186769995980585150083201342608964041466680330140127557377410687600302254451343804011588205708391803010058322836768251278008651476132481562725203922545000194242195034123766787539367663431373228183561874929158465666221544528508993483168032986667687897552602301751364708582347789730122812778278820552876612635641754571348855228368469377113966266049733241157850303777809252118015108874802203161731328069718372878296854256729370744395517263639877020450800176919677841914752115398088543964658284419649982994050089590046877503785115050081522820022473255773605972310517851179443947049616774094503188024036413411695161667215169224966214869549374810778807367689413302139836961978351721985669757182996427674714053647633254922282393127962083598950510188196977326208092352850294516801651065290671174442255882309958811985170728600707202294653815721985997242539402696848127898216085087280872305559136597194464170338924125442872798408951884846002385534171738780880515779191907169497807535023723131835103190230224361152065680952192044219770011298120804271736013945230920126535163118953702699888995453927983335831759716370790517362035017911485243915969670504982012822435432346684577518409924017844840057499230480086974846019298237205588230241971147374557610268775640852009701832054484085677645696670253225277872704681326973971412763262674372630934996215567215228733017556615992816328738745244380410150926698262423250291764337835156591001213135664603579470334449001921335997007691635863175230930910945956543236731951767425735571325040299974166222944926061395061461325587044877544060911176465618996290465902965294650889196258870404860185390981689845093564028770471965572505626951941609974039050451204697498607571802248765938856026324460509396356532693493817377540075364138279666140671919579171471637492876988521999514578599331805350130065008777590240868764437927185891667063407995330842640647959964468542694447572013553366588911143511207939532188037751942977673276680058598527645041505083769991884308087194395151545487532167279537315613605424632239561632247630672609063767534871722048709777755586458069456174671576211802596758068180147618705510266252047343436386982417607442648931034799221246431061211357256642530998504219442276994881632679285322412720830038599526284384971495938083070796717445125734456580243332528285553961756976289204991050743762311494371243333281467751468075680932544790003682245710657506823797668661064043833312108630637769858525190297312149936922265871171091862055713088592929066060560328045068993483026773532781037976540920250907710816828661502158282100643800863675778864977557181422900540828284105437826587951232037951851671575118349178029311364789831916777375474181828772910118561369604074272660506821654140621042472590641678548651651145320333890661238875581805471524542548973116695922221741203593351634872287400947510488446270560519358947546789434427820115232080517392894377510128639165338455422151827040971292047786289110068471529613256969072671356301439275556916989097722537918976019380233524830257847436087355007746042184925394015204797171843480732379198690625037531760921986733447596762449137367815611945345213499769682767343641571719544757558835290526672937656847775129242762671465971823711833948638402109891524204075436769758922609306734587627089939957555269695051737245094978808864620144908491582952510118289077057340630037559492885322815637651596686465948389063719206300264064113074209836847544733465788724078430448429320288491992372267854369590828085144935711222688440075237178984664485418177425245926978998060905783211676801437384830300948650231022513716816270130873558307636317167167716351414322681610357437862881867163918931713247512544775932274049685170182803134948232735809311552966172834804012323098498794725436439391331864930694647320101746827823731257977605284251595090130419663683049592180290712776038249414253328241602720812932206176398225692160804897969099393783048703148150969466881946033439856828669350297990873810984738458425887191795600670007140778507522069313078819538653772541410366716756905113688964858314233745171021377115178458138554526083355085341249636437133670287846964697045392028351545260050739102473514164882185474139461124689819754046505461791755542829084119814191555494892680671634256268042338061059510662641125897694649966352380693790010373383952126798657112008045199944951088105989484077235691302675132339512583797337508723124756955546295804275909045298727617035834322266684364268413671257416408842156842415270113452317618241000224197879195968518564006431087181851802716006696344277823001160229548791539846623781287858154516162051656724272082899373736013937331802540866334421394968539261575848352825435059576215823528827391945074073396337904946296694725521989090435487852583151499784713714684915028064699531607000079683793994464267882807567695231168151053449357237020415534862020766378476642731038007234244992633595539319616427648023450865934640850820958573526316786220205405025443809439318288303623730022097739581048460008294572410809918564626430292696629465883179542154414092421427950067388088592464685724728808362323576618014758726114449879420022923069380662201775149356752802964919927043272048531288256987079793414468225356281665368660203109613373592791890512760604076912421734816489123001305415791592406293900982462877226102897101869961292259727726492938375861674185746729212585076391696832397536795138492738491332515564432787364126265593064627169578120586741671318528272295693873590295409166476197790998743858537139091504222882559194860079173219604567713370733735094767009627868577935872584052010874540710912629030179484746295281374801496144436221162404310331192035740848662654271755667684312355419795126615525483985336732841221720752847924344923291609295235079992389648517669415996851168107773413823744212747579354520009567890414050019285336312278534260214656561647267810144523881121546861423418503289713375008340788620535776619050335663789129312404838622287299849190455937392759224435963728011379857398592875296277509378974100182276118328225188204912363486566544246137240482637904058752327922461868390605556241304525704207479335884463289242542589567558364877615784626695892140147838385583087519169178041294984892354539234217681619783719316388708204294900894408990766588116199432875840419709349069005054026928818100072461953310914262596864062745300643047602053854989777272057961339907165262653153172128361389877954256009726573664769338567480803631865659508357131297213211306903144449124655412423283356250350796143442778907087481698330866889057874737884883407212870879558463581665139122760763958470174908058033124004225284045809162044466107977097680947227985209150860372213652851969893399916308304355834470575213390639184282497686182607758795796270945404814474803226542837134764327503868387322597197466452308869849721798344596189190331101115794390009839637495348266686755695288596915788321523608714972147623910149853763527051060555792808891179582423908839389957376940452058411061122782851618922216459956232838442840415435133970507179140189889557673150068568734271615729359168373026011343281748497226778260390824334264914237412881288879358127884491085843195841638681270164412142622054869935603949283146703949248374872600993891605364761342723616220082741078769648280188755709635234565970286954588353775501122315141958145797703379624580484802873787291282968331432463866529620393482461943928284610797555274647048995232614670538376450372464677634632180316814761438831478949072020502156647288753630898009481354339029597492118615387902729148676252166589457897862249877559350253041457210353903608338603242892689607666525331819222120167550041570841142806418762079075984953413886112385148371345146082279356016216466163914000961744368190372946134975082926305605418152156539901134946531736760397725135614463264780253113418362553940657471628288352724226945943815741063327802676459943618821169441169289818424496877965462555504181340400029367157246115089456775288767169861563469308863491050509349323368660859145560280109906860088843326842637336742802114907746533045433758314667846971390026516978146868610832979017678926267351924323327892899915968609038733893936434790636305067271582904211156053136005463826511642457923891439843402954014667090752420914035293304079247722853077974175756147951558931282936610106262649667519048500894334291007636505511366568453595869763503413649830402198351413690737936177001832957503968141958893608484371857845438180029529781040495050063279719013515920967255883147984914825418533965137012289596763304131928249038627555228975533670557905471076660270318538279347963726552477038253109559393164553122916801844155677124826828638934479633840218578997294366379916511448050100839371123572291307743693257982124449250561496192906482059767480980654982656791602713555781256172981433677601028852294079300215945767207512766357634285337037690081625694230429102027511649023196129800914427071921028333591987882682819001332039959645607967801898012015558525779669907222978501234417490405803837458768140115913191655186049594602950126988084352228522958591536739967260356674760767701010528033099881610038965315640294040451536803028232614041542146852060038018046007457075827152528011276809813181753198605916207622511485657679460826650270544965317445110759914177787753119389008382838201020938376839968990785823199217652376684422186953046428958679029833848013826303358886505971069004416356987823580956389513510785895886795721461301758915733185573265592655995134364617481132567278355925455863281668694759351693624323482268555563288288577955085910893541429504190240188125973173166216757619988327349509223742307040465352059865825289594403124436603899809153238860735624507913769525490734565766764589544289635083028474238264372265104087872382936865091597013951644771632688887929226866258689475938639077967295220840303085847327965450102586767486279514002608212359223703653224642303874941424147206939343562825694839448155908536641475648933322465318971184720260692969627847992051596188077437418419761513277904408347593313483370095976735013523154466368199311488271666781600683924702447099372305886007342009168462475821654260797691925908912743404053833379067624599474324822648010065343845671448150023965934594252900437911428714226138436505267878449960332533737566018014979471537221221236562429315267374431397782129889174989021729478399766724919450446371867183863931907952825442395799708516837978126042703383971150878007249227599256038514387089532982655007146423831999639422603901670723400717479106429421955243106662936226007427007035572293621949395538559917664394678551400547405690526466969066436511058957895876435845333384357462609359523234818225107820591400855201618693072309060636494009434050131443597835058188781813627919703530751864578477946649010716990360989831310905806624586388386705672848929426255362386193309449883545705754210647171873985714600562984750715039910075453537151595737907515396310985390788079839231860199484484845510233408051665121928929154554493876194217306785454388235372034989803863059733633366369620457733168964193329783625811423626970298900237273116143657955080250134334782380151420098049782949989639305679489549328364284756756274222803165939131711870435933158592511666003634805350056400935102916564974755637195346039380030868707520706762721318217975209826607999073523004020650908839646131970156596347780215122168333339271106017825477352677616554543939562857821293985008930964113473351823085419228606970309081694897795875938765223809558463002645742226884590411881874173988671757077415375920876410615801867104277871979063441337570250433351555965623393023796811885776980601134582329003281786915987396530053005560006345637454359715500093357104652895926020315346623040870061765873304304581229578450125598171476884174945449913647110982725243260817108401886085670209101189410794373690670397970706166782182129674298979574893613039006953636569738627144778050368550539979819892279588668302502022156710293700481941768760366397979604416049799456410813149370656231120924649753637956840378880693335216667572749908195379658328131762881675627352925380052103808714481170727688052140588346080419374157852127545751411900274258094502300646066562277522631886940438414346457387488057812818066597883035002326046908862431696391402874306259848208396229522187561892847693557730804786686521205671720733943326975444214236657904568279929837994822273365845493752646893639907322411098029971022867649779441408253569941782149059421044327308445197220418492115051013089804163402310835547084260711145001687661905313255091404053208748962073291535606653630350081939547046417840240675976522750428561670376487685272831270924149853403002125109359251942909598087463978552463466385860734378063059516048759175296098366645391944076292928823369679006682158029240565188978502472735980749039670329758736106925414985631024044586541317405330711282849788988203717887144441980864035330524210578883134594102609939130444739449574942180756294707083587531490701577538794435859215928473254723502798566881231197114788101606575449067745969997583109041687889942524151619886039672698921389426276008050249877999893419667721099556468947708732452126215958129816123513713601840528286513288673431313739530493524877279218723554899080402952395822285289005316196182802209209105547119191405445913019440151684035637358024202252910115072751700866492936472688774570547296416125197094896265280193629029828833259368627112176788990109413418700334464934308718675978614906287624007355162415135033056571909389821372908594006941218118370784377051338833725012937287077353125549542409911072189937361541795447507645565710301679162688887272542996356536457885400793397418734370265510563718374221011643975734431916666546700878443506867971418587413213843032563342135196235770486516610673495399289685482764031485149941276597844241017903933634369650548544802088814666233876293916277700257768332529389346803125058784142907132642961916442864022480790013684429833244111280905343138865360179481137892915991219132418918809819989259271930955578968926251083019929254374864781261365763617173116495625152900147649616930715085000078239340311359279375316167183872606881607755095315974899823906262079597657423655455699331646687467075172588010123803179592671417409009331344417709811149247515239390678847134781998122458474386257530447525046071803413737257940159389753686774961846634348993728623039289462068886056565514759108665925434000809384968100459588978809158991932614834772606662770897171919632668556710009062313349552582939674525877061201250935109075322412086547411337323300528073018932608728438419334744764214406320239017620871179614706739006577925805988050535581083236255117103627128310658363376563687382232891373508950960177763693399979041882364368100196722448905364614143687965083813603586909328459138022299695846278622235214532682478158146268274141637549629130093623935615221948753943788422268039347370437797171964998683907498840471441520522492264494446663146685193602046215163453797287186839397456980549633984402929823898435909898846856443183572881875873057150046822144668457531100197602093838662773049868551059980716888534365735454739667196278780894537726807794269642092118177562807676031585646583987100490118295412488743136529678339837671539157446290817140524875981300962397341293230181160988723865825025932409411883839677475875195229199356901820789508143754688052590563160692683604470123219710908917982729406270982878627032318953220487663960311887500514202023920832601177895568929434795055034850900568444047887466272960205167448166297483848822695717225279014062828702290451985616982992015154979696709715384012490585472947833326470044593225338822782914632830681277471979490894312710351125845958781235645860378748969935534989541888912948645829254066341864457430408963387716565418681447176008277530580875727016845961523608039455703797826423468396083662289207120134056667816428028350181849847120567183318541227012497135594929833124528593862471888270516818262859555640694866028978072586610280738090541789050965207509517906286592723852491169821835118682420822205734281057363455542718000739964123528190042329893927676276750744708799965412206532788691938242238872878901002176157353139537204466498405004965039162587524274954825159269166519783369790637782091258305127622225361313556017481297885532361093331564225237344709653240055283462747161775078359310957766598743723241023005195807165093366148195441487399086803057534064856652520640028424009667990602646397399981333599515881482826162604612861580460003967952298757148775591978025738918342250201994830191327018776521392760006218096544295170086880222462098897011046573816197518114919911059896490401540487420792876113072728075508250084394611537369369068132138834561085805103407734643248148417826510094351629664897098982176838669441945073978301337282342442469131595425183458632137920650489607152927684528474148760129899654799080577300048538063157791936666329988234497032057719881737013052962869314269921475080573277068225035463348168716568665620508877054189825350939648959292692100921112728082277777867114871655173405906268994279361944893994398012533986384205091000566023895842114630800664673681006346242495767428386435195066561204648939420810075381036446563805714132310853191284217438049774935814552459777610700276748404457356903406635081800103100831460561661419285326760326132474080561510876902257576013063587332630003743576845712915570594315096985281167384922967573201820792670853640481670802593120169322698769590526750210891966470309803253967103251313744229027755803903706261919699209257275478624027393512360302763474444802797549108696681095161932430875712621521273483557551230101714928191958486749909596774511985068892275056595839602815745275290864749600622441814885177448165870599234885629145360117008172006175112284826274746124061901623178346675674385025670179141761396098410109773627095472755325380735221053483862041222366808986582999464390209522484250733646852627558713409669604745384033718692076589714695426039833438874124059992309419787310614106006549598724474784130373851066574732723011990666116330660338129374311160341069265090863344424920396194870566617147532119820671747703785993531523666887691832409932948365029852096187723828831003715967992928628534689976592409554910882610131147565466560942692224749837922751678136769014530204088880053502234635463546241241135970080067050885910408359386533344893592480993326239788435990035098601585662515817855283555016057418923944937534151772308705711920690534079542826864198369060118498633079573127164821962060983699186185611589828817605923413857162827391860056483152386058033225275923910195870671214354287211602263670145127471646019412744110446011211902786297199806167617133663632236550446251456536888461652046940856781224912853126489244992673148482526577931455035489046443475727967212807495875660498207926128989899897658870359518173703042379625445152167646738362624510331754970488203858461578565858550717245462573451583383590861554617735325254550871560957240562014198766184469139676744745068994275560492507538595381833515288765421530546310025798679259749044165043171552395164727231708465095818497691802061043445553410421440285137123914977976682156870950084837437687703047103139770717168466413886775402242868243933724636234814193206051045851810934790414748100324702177887481211710187611680799502852459775066874717535605589528543755998111505176091451206520829839509395605314245851914734574929555606956229525817603123397277317642994250684763411896165298560262796820177030764241009184929900509093102874821774425993885983248410273048242329653058411135149776794015130434402756105532040479518821954870912518076250893002818602965925771274514735331667196286637498648684128898066690371072043731289658071450611045271453220056512124334503044808659202357632099559518936480957717342524690988739594224034121867056594512506516072985623732606347806025013254795567976588407345211888797169070705395898368136057823670477591575079441477712842832541017926880331105046195950105259113228171940416093685132597661904536882096559406028974043956874322345860166637889352033344012108082594598195064446307671726815303705213186788013503306763156922403544961555066875274071957222819285812190049449409187069935814572455118140933678078871920327268995455387249013707237697011315313226539513446449175346151875867208395468438484412113826535649483473963928793072518716325420934465056883569455687045770639110844026630471198718169229877697826166795205336628093954677187180946409079162601248659243080251027125876216613745368884699979996641599898618473450223383065380366565678716996237297901785594622674203743014576525692913102508462148964238916504811596993134549705902509995328319315512948762149441836869108502489035743684436750885482463373046027199391001648955402968705729347998799368136450858428962293485960287508811043088606355145621117016278803361634584942900671693966405662495744749621257953095327572907830322830275374029384104143388953815091433234366976593708090061032163130850550426974782459731094771114127514418289164333065642043938774509489823235604272428236114495538543276346584832975801805561833163652500175555829715487167865018168398560319066123642179623145140956739651871790259819363158065153168773231915150550115258813565256472847285477180361872991787924662533924260909199719563911275048901936020952660546918968284881926144362520112872974841766002996502560510759765677168095235649851091109320973043330864611899469258017976673185286525688577364333379601618303072894812379286912216145493900784875620640876117740732039916924442400100830352130813112212431414936656187940639145906322899235578439109426544052744732633665865801345691112974318375391264428403553051123795221713381525356289395835505466747752578071984493638317899835807734104153331429968542931009747192831346300535677049139952405513359375573176253116569767657532227777768220540503168628006852327693470419008564715622402269609868183184060468451532742843904824777720585054319547319596081934636018788359988023442393155436838281693095096539359125340882580183804467432650595001187000597848540759772057116599883312382653220331132108255823534919645971742127242358925149351250043541003144263878298727993957509969117514118491827940104949413204583290730594119540718862799533906418114559219607237163132971108991929909026145741684464126369342260864758908682760372830123687188470715563988670075619152091263079904405333145063789954378227132031651080152962948585695927176328155638060634877200131024335177994958224386146736331348913644936222113798661846682694600251359716619742255972819341251253592395779003456293027075091530246112457181383230111701214327430774523135731992304413481462302845417985824206719531214633021247732800336354216468172032913375808128245690150653604325868406066429149298034166536120285226336537029126123406933031370091744994966361616861598512818892953088146949374502058053265462804613270982995529695506052205131750397160357140968049299886404436718416520635416493104357614675469207952163752155941045230273872837227648368656117391939141419103666140784724631388318724031966803607840436522883054170868461052290130753754222041124188930289044236481941873037497106140163890117033394720553535029252612077586625529365932719319301986936296686266246537102434575504438591973573547604545364566727080006642912702929751443540219300697887242690597739030169271631971900261922955281859526630447951262194621037468922462223973838466544921820872006754043818359786621431951612508210299049362628737110050889206988491220809155878709604948728756810654764670827403498225052235937435891695698482213042650307010724120232644145429557286739749900546400766789268208259984584229397768859042020551579207558637526562135728779481531896106173761029917676464392602751031914331196219181711050667046352358227484892433108781065291772817428458979699233190365115859097391502804028633525402428774361781442583845180803924783987071726946290513219554655368347854531356574699361994521715032377230815957939188762039271261322898911658797958918155823053394314036976565334662610547488964429862922018973951214994740285438058027335397310062368909960952101252786380058612203625441349387642671451329759118345993694488725645913674833458668534488571569565644110776577447750841804768581773053642670319333808100452418517161722763673852039444886863331338819141988609767398027699332855792096674946822461476521473186940578767488999248283029132757792981648324043733139366047880275959587319878696859090954129330218401957840906086179559210573550699227533734845356993149527142382293609971631369625117958958135705752993045513647602693666378300273235447074348561607270253544998423481099757478973076760170449268373257642056691502140251528865698111874789202294332743187657737690218568107274711370038897132890605460815001081164980682831246964721233886360408477227757567944732970786317855357133465903557561908285571644621613060018641019635365265300876415780345518674751808502643996348382599152939526971683832378022281084085178719814632396233835029113728973947981900294125355158114631112750465264362871953082939428658777043589545590508758125528413590169097434331041244931222226568079175196195817881150642145634921437302057446517049352496668679578421709602765934303561262739108388481116469609617746677541440197282573626726587732650494260840025721382820439903554357364529374695293823745551399007127280256906439423555587975422737012494337458425331891516820998722236037191121180139367667785047626459928737659696324065125469556987347467952817003934033066615832345850499069660024686300074803692700751845046836964211774207262414538085601255006561251538535988086461886782247735327184929064943838703756405387527890248522408147446112285406588350176825847752275192570756758542634626530468153959581690607072598868647044143792301055532388124450703524558706717335497154479875570765493569912981755754206239510879811673269072458442429898341132187485302274266557653291923980544977394924669323250374505391050707852151183409986822255808343152216544647244314378185937430037970631012552694463077089432248645408723946547674191005233284858381276407972349142519883773154927163031939132393074139724924839287014337095944486844306884897419428067430093542929925036378508799357395940809845264507253917947755307648178859983015552600973411019759315120322977087902194436101683924602153763467045516818422033003434011242858859216592158493092944234885618448923072488287914713834528838107365280016910371535366467012802186611711025554025070063102615478918973485937025536569275004898957910576887107605828838938966836348952226782008449595282230501162731103449426326329733523116626891655857656449276517862470345272664036803983251329310363587351659606956287000485722546356956428938498461188489839119056445699166889163879257675008295401525357781859299704804511802746456698421043472886317285554434327825965694608215197630631292857910112922930742014659905944823604375099773377277513218695227687298398657265239012299462392743159753216755861590959404133555518497492312335669705081639216787749300881537878815575949051713023798492664361960239483881429868653397343399560252381436352246015630641160775517124285897056855825202956265514802287725014886228243042804124927274196584084851062559958856434724386779520139670272618681751016363836522358159549771798456179578704599972104806129219631255920955653386196487541315852678321428705858945394825387814398625877623307785296772817994905626889945289258401012637276569731409883964454240530999789065486289599377129713870608478933851645111716305432692077623144958138531431644025856499095288948221787178007173176171637125557116028958619153293591498800629916379879478630255343216010338642440829056645602874700437992068295273894910039425798480273402298530970265296029396381916063648523437103662537019896656407497229916247051814618191644662674193798747755489437171603802120611317138895788548453480703225870558880457529682091868604397103818438214986465938678471724573178003203600328311703927987669459960670567562866839813198853344865906893476953485325517325974430627104525412281998175231912129510031672071639660457796614331029258318838254172948045115432017676963647906188526002238606329503555993526297521069710503595583666593334825102175980986318521708280174290561438625140086009559568731342285827839376002900774322668870139164432965582854092384704772307351961836015941118568311359163160497331379976978069756802406170670112287302539618280975366176715616832824682548168957097799012912554770847428988668003438172165755458771801269979642460657649755375631791046174815735156726345066498905428474747632315423095628674175051843339123847573309792324825893341455380134742903984916077919208052458096808499655861917779145443210309330381702573270542860527898903976762287962698987454601285971899939238033251373907208173730576110817320558387715716206082116163490534110214763351150056267631565720975475002252055096577976123479717594580671433939687249126766118893446037915823261607041735726415410042167347822486223813909503905531484115681091583449986670504026091010379412048511647523088214165778801471768883163377103051917192586742129268634842358434552247771540831691363882049447249241352202792223870328110328182434169405397598247541363170322777189270789751374410640939294818692085492555185213044272674657310020175158149062596592619347454782823675214080512693400461751657222130276407375812448895279220564095571284990294713939420748573675713801110029913144564749507689448046857541770288543300664693707549317524617982305259184917738031374974175462541069488803032450614880839914395698019453701359311158440502078679944378116317755723896589579174398928618415312208789016794149044445011676463307184992783568773095337632585443755537988859544246925727260647059383388606189589693716443327924953723461807679927099900234367996300364023124019463694273960058921695275026480210913700722189556684964994516678473149373733685132626016680332662538348741476883217672671703471360305519853033270988460858185159513783466170473120847657701633503337905072742754816971848471943742101795231050399146523265332437480094744215958058557536993998460107921877301346808268492028511332227883563656458317354287517849133174458678980685699771314825947455735526778148715394342563569457747210851828240429078500039948021334533663474631813106361017934546407432826916221037502158016377325272089084608682094261050157825439317097692208295592424877474230309794738335774479881464370389643334979605412000945175108684240013362364522949658437185333691602863752893579189286407317131479657921969123665192887659150641935489687476911685558123830193188473325611629128506337739475580822178411405751571289964441535435843001941337525360056785233352404310576026677154324453455860326889018760943895753174981077188367454440646796603986934215369548573084742108382520550852823677284753320780033159689590651585051155638092215776901292718146951379132939469359366647988785444295642912569057520705135240337510381166770210512022070695234636285543682572328453858012889917799996210957683670261019478688217040818014679800657451871637897135146931113910295412225338246228012941328358345935869159572170281339729537510616888654003284075660145263684311175454987739925319189818448290062147920687747312963468016572598241393871898477191092992403786844051645121638916568754340621773371138371255781527086627861385336283122898524627745630445405551771420933612529693046561198949575168676885356966003081839783879536469136822925305960669641754606049995146055939081048819722778852148191541044673331136225454991639485103858763293499382893833525637293941019791889797497506221486043356064478864906877281890006819696106206902533333074621252702591873769079329199359497240234475336542077123547129834071669542693885135251300130856274488167197703064626888516231770419013235120995481014473127528312109122460249740521521036888641199825401059844892703193850732609566248635432477227020145577603756113058260300539882286256121075005074859478922724429152600372653514281946214449929507483934237922132546652792282731567328124976407457320810890810776742851294068109919828966528341779001026352675873420463647684491040998499175587665243153846309308966372540975020158616593604827176577412229480697661688956132118964768385533157461126534691217869521483605851134925018301308970825078076542614602825836494097963891019583455051607427461172512095933836398911139944073605573170400968624923771462552383961586765196488185489777267602166267511865250594763265352842535102314997597429177647752956714605082951615472529184029217387954682244652737770271974139682530030925638790052531557765497792020697988499449393894237308438997676954503296042643599003896963853326284089763761098869453728156995165226029795354369927985464269369179146923521073864256178720951782128425318639796386889448066544144644580240461083071317276451832516438599958320512255404645907636691986927684179138056452408585809473977326671526536333617056651740240925301589987932569051378039860334787260788093178441762826068247553705007371803052653069559204201308740772241076155437431259173562681933538866235133451416232522926626181283417692236574760713313687777750100218678770103130221560148798701805206429946233147585525896989082852099553444420308068214482454473593184671133793654481840019150027516011999687067023444972756611670119194887719430912289701000791583056183013300473158296693185777980617518964684785107822189630197604202020532278616277870880764371108733186027451322601622009044024344966361830631681386721565636713846736293553623109976652313551710383754489161376094454236898241785070009242116242974086013747479211893409515566800001815974063256827087724287553449106085249227958886447582853963001335874871690739784243285232125714056947268017074687277241762805685101201102547951013820846367054392090341369208778740040895277281122616168866326952023644143855643236804368808759769509723198146279524800917457972217903771627697936983659159959883786421809748371901082588758609555772445481303248150723224754986040933900877247088258466096372116951943460327618413593277759111250200408167962470965486152893671269941237964413606285284380395719986587269387371402824485443149898042909660356091474444510324059512910368943613271712085726505759273228497143154396175114446902834484201004594958604512672496906875719413950090208623883220766454504355417338716268309040979962840797985624289469346635631268279324671015166876983275433517873903009095642274110734891942594224843729952820243648118808040875582304321628731488396541527901318656136648973899085339430293505442867579008566058302411990888317451899645960127346338994295859194747409822349176433395191846410324863189658512841638080747570200779094046011303136814195710978720775518914710109187771009503095284885168903170233288997306398774841643556763322543458367201404380236208903979498567355859561938942541174521403515577388233562007478097213516136552643876239098475813833919667818294548188313927910261817891859178801398362492959387527295869323195859089388096215295143662806425610950734985514564507521568928667338086970654381782959499740591357584897617771578915451961333602485335629309600062066316029607597577175597712769821164181516168009669243479451485239670327523538626273636157796954778038559763025474225165972426759638486395700683932913530270306194883975803254723953742169010512137770881053333329986250217744172301153287233316288765241428266923329046164401664838392579473768232450436275836693634714713345472135649798416422850060529308366132800011108686336493221791783279346382558283329621379991350358388101028536419178827931081593532578798301682431345254346626265931756968640587334522387826873917110183223417404964907293130484690895949172394137297292376047543734293342735456856581686644249358636110517139269249303447588521068526568605731026272779129551450509183358929892416175637168144930341284835065072587493795780465797598658355864454796185007128710795780955547021071989446468835085309949619342267647851228141050705547022149692912767712938743804984629914460971169952824162932387710599262817183220082035114375673477478164628959428446897330249134253125492958194877062474582020796545178657803194190945027196258104738004028306283260021777932585281677559528825880676338074647565305520275661746170687674341720978547673085843953823211788889970656885799181827816367477824900729413642484388709412749182354356696684900448519388300545475906074291903352925221006383307652823154797203137543630908938871111150402159482736779603162852540645176608125166342748300155582820800779087028306395432660459243442245291046762494267726608050788083999236956720888330763577974795049205992105297248953681692195102809035021500902066293155932369933805228537953679147178461435742851711306520078540596346084094577318785148631012287643632676036297735186125524987008839093971602210848295838047193569174948995724572854022926021841123719494869034729190237394867881010640263364522753551582208057432833133572427915053990333248335072185407863743887351190256119277191361437228919613239374710318751210211106326009762270838453737586573728981943434466651203956284194519283045671488609683432857730261562216872893017218087147651364496651807076384353258415786804093832472900182518106598604480672206097636545036411303117573176437348411395874501575297650034043505560646012554986824997437553866923460014732604878021740259249915228329912978626696245126838119824506655423585678263140726193032696258658641599539013103784293671981300710676043170843877919525249743827563266058752957505719176323307700318245083107473234428540298394194211534887005723742167310324353999100503945907278474366522587697514241134929752210487099603055133235035795028181549382739528533819703424029882521652800113148797100100034180211528452287350824005698009127615105306371292759168271460800854656605717847198284230092796100303120245206909291677807252832733986047718123962888186741903409588727144571776418111948389412288736198934121337763564534666660512343274947156143990530069101314975124333304816389481533903895434021124827080216970092972221635503316007442741155380622731056633913953698689872449833323550859671369003958207822746115137110467998515376312265244967366149468087751268647058161387796190343210417270421341133712901518422940359055594851974453484205322445499042313214681323089314212063844029213379625127874891065759968125037264714399556608660588154753846443696777908199054161535334745593081107829426098546859071776380017723315223196431176927336802855049530772943007465062338301117064687906113494580329292355435358534633631765209174394576426286259413876758558865544042402922142944763935797006229928159710003455074618433732970423562338119415188815500687185104599668329330631792106962394879495415570908992893631029086528719174270016210737945795403249607748940661278097369769928056654857283042829466795525922791494490397917995936919474807770268685913779323930779802426957967414532070466219992888856612492868644698438321733207597743605945991058965540547461205844111460485057724827266901789486584687957396428584000614703530452210656731827651964235594653733027338585445600769123567553318621094946197444616497884535433276718579940296049559649970443147808230024889465797551213749978780332206830470832564226051682434693498526215333775335024630532197202689995800401188038330518570430152475149437470036290888868318457406417178090344195590354549087646351328878506846149652196099688164390078272578078291106334940606907001412104671418686510714119197202876486354108492143967348848400235450390165817275088376144721539512055020867346344080637825490700515309022010175224802325813628023222711863886857873632990195041030069889488119888707201351174291341479292650731598756535293373768554271852448957341839597347872172544558769464770943192294228407510964930917148945830236203530880296007071146733557820404747746658192143954563561946333436004262725727269843351557282231156994555455656563987490533505833476200990801052016457830956844811268448368166318620891772999066722453820883656250811928832327786775524528719606323051776609474549147206607598071737219080714866060802319194454035101983540501384979847026236065194149547415633004944808352983751708790912853350734985199142707740333271862396944688180379193613237670509086878362171167296185380676133953776461617157165587774002380884452187424204187927132076603494341319817455878505796224352746760478188094895227839640573915541097440076056990497725972868216731631202780718977367738745028338617463321791017618971851089596732361426141733526008435571321669063396290623747130390888773978891883779913932162369322296627206641855962353656324298194647775277362832019617158482695941340033187331813190085660686295918512002555929481325627798793974197434707668892900468969971477323478131938937117587446320684962174918461840882127974904717886616909694039955602979027510588709237329999497342605354791337880183600835456693165919426475806987392686695060799678479215961928815949709445257548411041718103102600066919351110148736004734915981198152666199516178339279242350643612618793201340900222015900007828588702622176442494856373120944738045832899524786669528256803770484258918184230060546285670563455990887933660511564405149824777635397740216718470769275896500200619972064691191621215554293670535089145459662970992414288204876147411379474863990508300525685417196710584035981667109978200187904509321031302729793084520665131843555008718279785060660492477742351623123101308589923085156394349170175994614363116397484224151306120537777416239610035931106290012548754259220663440531958096553558162855289146933030310477072970053709711849205254184929871182836685805173655499141496653638430150345076567366193018345624865103851401931489150092395729259178982925494195645891478661173473876912035652233984663109785328999930739370843817616207416994503718476234641715310936185785011099191428180321012954433305308552766705156535464905720612999950361236428773962141684781263077851085974882940527044746395878331822040985185238082557923208176173374127711401174557118247182549890813179743662517009021990730757753203411978057389548606253227372581696750006154790272735021580423693758202659792304770568723040331003407621864794410197635728848510886795617164389772936254518923927681207957026897280046269111854828930057389773639975822654007383944737630470383184967568073120624007278227225813792890210672429968400836357664012611615892992055422324332873870659209051213425398745353346549416797410735859710854376928565240014789401196001750332886959153196752530486835914904048477820521934043822412250964653572661018481141500313265895019085654384238152297126320632842435862988256922598724169128569355776457083262000789442939424434719826396468256391775648804998324928471348136184167758287084467513490918658855167515690575297447236711120324042155728258390632114372703521679809101500072097544499502722595300026847130478752739564410616346741439994130052761905250024918131059639797530630069174515003021593801298652018349348329650993445878355673712259118278901410001563838136262381704234503402493642417149080018714542301079042329305575668982451655734555509459972950162410731075152837975626527071409022582898895486586660665040023900677807544739604982004456460276504065585049383733537828203281504317238988066405041466365038206335213663931661240456824855039847767704163466401989602390220110765340492952801607979429165467094232151294077104992470854721382401693233328715649921368124429700023291320231716299255946084458773547623060956150191587169582856865847697528129285304869652964957665096585789687289587531713821604757988171805108792766241871760009134657630143014633351140200921090384419181995045152211139852505564705843375432568721752492003074891919345610179141487383454433576772629750988963289601292958821426041944097963252001719840658154791223725861010212128521393684975077181238844144390057664074450049596771536566327355806215311018354784270299434346025614109224531243760732054902767497373389059648292922158775485872863553249539765725913766612408713226778429085931556184980739511931780600974651406697113052855981705060262702514016711254393650126196236838613414602180603448818546439052270899861659887258589021504949588606468275788189544617853497520923902791307580301634407744793634837207576029273044207370580838128520860955646050190931210058416095648281195240886302286564459679021895356998752305274152537890855833602738482919366934910110302794160815376454063102921289897902844874603772104458662173065784857094287471649809964733821166948006711648556602495798408700848937583950058071211299278813400189841830675013362403462503189792307469820823164239403810489986488311640195214392581328171351532922705014325988344568289126445218681308382044186591285742557163791721757025750376738094962754416151193314358271723463636294272030322010802499958863930855148019810617791211809095783542045816180613379654573076975400995251269020587468253296093574365535711857835943317801198265827842331199727433938959741822258830545446998503564665089170955573263102559882639220400828833290263309504282938838527822018061393214916184783369187359455757467341194251214942480816233548889788674882831993389911094368774888759642677389967227944191418744170033352172863473821188717237872595185412129254508232918817170115422971430812329606761268171605499611859066966586588899908719589109862290989108377596256258170896585747227895312971635844917575503555058541545348730531864303016542746618748976556305422931802566823447342760291313700372566557072729104750757552135164216130138052672671929380126833683894560501910334709268356541948209719592209575401020366734539023722324476055860709404223349389519224167211569182449267229654522961295401627450858849447173068238144777646501829464616678522789043844595511396632974513839302179026907568441868926813804553451830202810226039860466813805802506618812312492190118722434410989228251235008193048279467386500602707833134633339096275087727628673743628243634007158937026969312274197624270457145829105285023650612878024257707744598900427015888912216228382475745023121496215464315399763818647507601903426989601683926088671311102224664530198246624448997593174063218243501484652392367369589371413709449442800456765360948717629051528091292999751362687032156296669287479955539592781659569521563217850882147816756507449303373141223356768328930705596445778047626099841892293355958843834590715957848035740141930791443478055900480569293347966413127018323267573719442938178121013018318478778362286257494125790302064342373488845878779364526251932306677536073868234160134206563768656180760734455338706061641035722646711400267206177366209669633343843365702999958173699550803663063396804654376272788931972202270085012007728673484456891194616796834456418903005885877029834167258465488895288834493695534584435001595532837950712817030964513476423749630652854149805245324179765243811699483512232041663750458934600081759904013941406318511033085805998099036827756489001749990794322053690835238307492039668190770298888958114762495838584942108685965593272672595931892351364045859217634276198357905344314958923779714929237912045825761776754744918905862638074433859951409579212349726071139568168053350632061717257788825652497313523534531490903840831122125294919046183091175018813382274804317779005567341056805173076901917775963219646219786061828359887886321040002990367617750284520207289432900967746326406509563481166105734951989886444997809397848464293589479864217405231449544650696051385023936436608324077419010544763036689177829642545427175986586357851023631978106761102275423149374736296818897805813875215061408871053476602042739797446023245219128322955514377956449210851060453475810537070543160410060073987200608985918131459384743446610358946250760111333685393761334434457751316986147924037933675831477310752637159052934029972992621832324187010778936515583269665067874407931568272476856294102934748492957301551298929886638764004742545094948748813244677123018090336616516483805650649751836334990914523583840082784675924400183907734701206340227859131679446232589517183248053509882456573504636201498488795240931264671802970028632357357503911996356354549517004954013888580304343561782554672765162231569366567345052406019188977233915172743987331319586675218738295699565652724591557173154361593817234481361048135272105217139896372560563264398889050001156036027191988126839284429100125822495856037712073100869680563567377319730762768116575142330550704010254101478665155283382068271658652736155882126888865773574508649970133492419103767510879754485527508562143466470351788622288603695466695909435318840445456604132981602321801153656624067576269155854191819708017410853372640922771906907030015347761567670716923139695839293456076569903606550096147767688929008629399082748764913272021458634322207776942803838713891206747947886834150716469298480670495687223880085899838763505913706982778744955364309890368851760699589692868014062895031816636355425174705048151095582020474179756614558556433840212795779590456412802095450234340632787623259714129307973233232585253523884852161164884045504969282718679012887863283066881161249431691867424222233563814619725701235593845507081980523912630067907897100015963688980448885983942977481820625011291203212289227643680827525764510664803860072607279952820446819632447021473284002787531178544479851760314422031584206999363486585676122216387610731858621287829185688498282175222128843584219669057541135563023930080326069085211065577271026284069412573311047897085255738168850513935137545114684523621000843877496334347091921727248072724447924040333485594298949806009224915723753569750884283482021532219307394243461086301590879202660294374669604566620627066045532479364349788925453811551574876837332722963533309962724963664967691269746933556981711769782882688166267493673122030159336592483948275850769838311510454445581192807237715212746928329454648437170154744792029491343153152621718674675970367921072609800598237932259015260773813994357763467222700728482834394557479845905043579943753220313944585938076431301836479717413132585753503758265467640958156107588703913604469026139657867169453427495218295531942207934021227819731329650842876663734772501021985194288531662694620478510700063882140354295155971351788034304181964132521951382600993004258593325794269535621757104319902339788956664581040772672440983110242607401768712524749276795451432369730494095689553133871270693476348363877955446171206824773809660877180153445554946562245071335400854395874713155995005748872755187113214364227075782029278788822556210350533856376771736157338976691468596101272390072494980713971510544631145436208750799547491141842541109205244211038181389234449257699057326654970717926779106779845349697413828524140298392828967602388822786364441555827067379098328422549359577840185145007003246678422502951067550110402821258741524358813566012477416691701560275829629333236847464372162820087852549619708844518712617287990836727479336347224606771409728199912835931313082722955362654088497254451253638576040252882860016478724892433886285514758432311603255881074354709523431806309835337569734373118699213490718102071972564747505620193270878446711321680223786416168887519945252953308437771110466661346360791075383223843950578317916929641417946796965307705828407953436604436825289652581898808441204013743213870381349210226199035715344453598247532964615782361220700370781530722378406301140428893169490904281950460854503357397793825406991295607698353289753953888028632437102724427111398381834835601871122352994974474467564118069578460654358798213588684766072181318224531040616655525026918546632133765797886472221923705188386207827237288441047497437801578597623758713918099939964079938700687531943626822304663777691014320748390383528213856054289151625393541387717276289174014488873606133300674053073222366536082412676233232784713765369000814066756723322454249887832009217245434183184290865204390039950474032660151999932777038257899485772376952978786698179226773238654099927792498652896426326082409220487629584763837370562061156288281965581154627960312024815821514007701907762155511395983090237488970026140838630474885784425157248992542116517269115263954488542643755287444988729581221601043661879606600424080948125758056052946547911447328735223223905220335520186758320833121353531287617002624474990347003642324512583716873763132696925051717812421994736054441871618828800464216954806454498069853449478823750513045025253904990263133806946052239356937003833195495712208831531257889780468283862528184768713255178687637064259223936662957800195773529145191715823784047522601083499114536423249905489198098801074383436079775274656495850344580044631077741563931361654587020276038658765715838095573769180697991202285901516719300450077701634046481100539851136095718784737537978663494400135849026054026707404976375724190469692813786614502801198857194972415604039441705273794398753897516780861874427784400048397513465046297766980859582941378397741615717998500933350488687047821836395288373744247785768021040349223230256676112179728328931456185574525389102948053852953018113199428058858475190570017805584802707997074059116304458483157347335665436682798507731955424149383834356372360719479797671221570974927817876519215189941050543785404739226133585042577692625763265670247906555265748438543756217210355473646876001957784844450624867169465106515086829314594848941826660466007377657422183667818241557454954688850541978237636921849668885033533461304617438286190613180614300596695763368739416482355990040573601320427773704218345085381905223878828624435677067163199432120200203635385307811549800691465837455561343795414465511764277319260590490593397497231995612164474378402217390736463797048491052046165068624421280530733749037260491638429562445491816653805786997942694112378529877074811903980757772337422765258305510180606006692735034168678780742807394713023764567081292224812544980135720472348431353161770619060211674599137514967488543137185479373540523808055358133346444520658908405473023629921287626766873052083278166022496362070582653468707380242800427306969798563462383965609534160228224774094294219121244185188041377734502057872861568853660632606598640970985907800367500879967446482218696459076518517640853601208639907282463806498282005726316507826607699019139916797229033161727777031631671107621986608164034153757967077968625915729636214958944691482090236089140169432888892560869981376627329661892019432402308918989831276378115530864247779295765951896866638758708650299195249913163639068001030795477453505652025303823563726188730728043359523343590185575871078115390428636612757018742800077317193981944668516650458836881353152300264296271870662774605995262306228515989592328423661483923789142220919921114477019229908275464497653517777213602271421382883084631524962434479703305659029461673388567680004461865325361422367747213334279954426282985733638023207408689426790123814031323035888562016118880198094741271098421459100537397148452035936254262522690593916224475712389774434860173033324437091614520918846633521751220595003050662783042229483946279980184189238935283565371432914293603953409075867361027412892733650135772367130342859122456367532484593291196089129501185918734108776012036956537545986291092475738006968392623597165932539589737508149847936066157831624014641933324490078533186497784576539821706921937734868497352025821731036493029814131750634233205899896021806141780475007016001585176323256926158037704741347424667748646339161593846841431815268979353177928758495712142352028526143170453839272117113721762010705817337694319198529257556520017795591832969400946087962214958282428947621262526287018116912895003694295539908949490149177317616009799347951902610937966312584615305482211606934300970428430108434442651888076386811075581341642227128781523102447636059028995279737752308835081216229501003676154457313850988476690059663983475378344763810508224916582870497126980808499159061735842299612588935165642481497136961583571024624158192625905286699800410470587185387753378218979808066765438204130753468301199342130878490904497263633186970712905822073598957558066285875944610824116074495353351570275668682747745529145675596081254541350900490647132876522791300814339689467801864276586778582738960757137126656137202692963876040592565022544612631635405406533052052674619633149855854711370193345285224181496772396242619567081932053194107422543096130483169314214898089677676667273813838429785053267689243148935986904792284311778757898106316197987420818522416472915327262731810799940623679842313061109594546437210667355762330633644943669933808796863270482837485689150671267978235284341806751264409257437931773343000727821076889205841307879852582961911159275206169732939631453335247810072979923936477184829057580080817747978107688644146692856784857744746008431699111552507743991540583745178651545759219258776517265287195216719841904997192079954819829968815404192703601019710052316507048685691134989672557904667173214923110730485272286521769912780251707012327478301779220648609354221413227309136020284965736933051339709312951806820894852115575723683906695337307145515653413066998400840811701530890626489345812017771989326405956042464584908206116386233555534200100162048666815394236984219075334778362989954930328659161396972433687573977704442038350701227791228825798387367219057332566085160454645440759174580749937069912594225592660212870251995021962094305153594980481730472514154673236968718340570034517011028025343831929242694190339399044356418352750000675583632223952197685321972551668009794630684873116786519795701445646364203446150094824347709795223458403194667277046159151376648092966204656582629771017002105756415696689747952980083374696854490903146059623005137885097348847496410824449639483610083860747495444799675765396826321207847203517344555236365445510336500200857815198747306188086400211987812800961611432143706757189752528719519194133645636798319201777458032989968668585107331914451097863956561420336064932404669090391141379670580729474310887304082274598312483191650317524028958684781822731990192247173545272678557941269102343119477569271376147474647868085175445532558728575478081648569208985325008514888982510921041383301886768438989323471857194411711760121499440198394694362353691598397032586536331076277249385502004734570560221557416433025795180588600953061719375485281791371047977760820390775981649380403542427969390976177304472527524952647146381377878578229328016454917789526189914979832067465026009687618977355202957454831443842190716269436267992145308760903919447790129589178721477259221147823398952935760097872106480442374055212660321093915706588224808312570783486579282967641775484786856504373754695861356055504109478556114524353232153400855107636691913531937051045220127512288085916860363778185476548759989679926715295955515020941980004250398206856442695133905577566548858274469067457396999716375789495861233155029110678596228295773279797635974766630583354748957503949544508542897861516472114164146989729606408632413389239175644379352340823876939971005914864104237479628267779046375455922536543372189200123029781520539309507598460664623511301493732875833700039366340530781840993927663431931603374937375159709826403453880627530221115892885976204608406123568364270946337866801366494897356413423656472196980573433830449279208073264623393882435951663663605093835741475424613267013052116346904692608450509641910779382809460208914145292109668900693513757896554140117717640195227155233590564554003515252341849240410276377774562224781922866146613498637811420170974678073477556880653592690823153605166354259680044056563893104273881095170776523055223192066702095208267423148762444373406781991140632154006388358754766099378368861183733545681866710987499767944761047774609589407755107922710199353248274984021010677072559962544435220984198321575039660860513586227664160488034721460521842302399633520440982586924051732214882655851836942901929178420117738520810746349367144980908897289473474284775618853835167864611485951473401869924987921152728863995374019888203149203689708801042138703636178267390825908812279292399998767209443349004020903703895874589303065692184518397573320885467205266569256866212651961440324714157965133786944096802044813832159199620365002275850285156566720149838139394244603703263749658807911358613736246054966435171849859025172973445422785425188528668663248650077324510857168451406212397590587619773104583441805648750998091627606529747759682992923030132689913018775540795605293735119291300896424502218913919338188178121112065216282072630766954659838756208223339014081741459031766839662073492916753862613358869596893831102341645712880787647481509752979188045825810206839620294921358037741294140843902705138253512466212095069132344624552810676291784119621084988662292345903099663554396547649208851934729932750758070469852468000245664890041319208838158773108795654556953240943431457177252294404522167700807863965837358268149264777320551385849709413676976200605376300626480551672154469883630496788165235946446416752076689347718012087759238789716985762853679430511127928999976648525620001693952744192482293482059168642825035655576791027302676414811492246487365195667800034278652289921046487555444737417101124246486514821830365839493071637013550797304121707241882120456688576839508047804535212289832536778613096374081677158520007137679395396864011965766094419518874168927316528653987674465231637323281666571819744417447396439232183276136356985524398631003034391945858261812712178419838673510201544946003205056015662395777995037388516832882082564317054997213620817713949663276084061687121808696963584959473372229909635868427705115185875626439171327613963357350024202371051860926641556447174794848194130932123276061161597717174305743445662263542230038045494416814894677738703081467927883101544466809895093967314192170800766518766511258855488694623731730645437559230157501170446813714051167189356192591983454170101499627198175904272242660725360005427540205873982553163891597357687130377584773007739110302065293728915606477715772685970576653216469684888527665366646007885332437695610369459359201998380676078511720660390241732724875463866494067720443545748550893950343419877154713064814601592886388489060977945323420321128426419711319166284951178485428781684366483058569428862480121407193068531220203236430691200180068320647901888222543573328515197124063753718452368230935274288343491938246008471673796743146450411579583124552604197024311217033031760218883350635291551363921178614499810645342439021872068151788942999690340503808099037282418109934265515071331050201402341276082466026860186848544195072204863043871794530355097424336205609239044463823614771944816049838117651826279106811759893730733576744255510150859048927409778484175809238197175749485707120833593077600868999671397825588502203524317552670451341737521224999261752652538782037459985885388466804751681632506432670834872931516316626190920630257014300576023904922370812829284243537275478114672034001607448897476092159310685427666979188422883914781133353530994631336815074490831874260098370782306111246569553597522875757798553001783405672411086911494928673845085585513454185218531317681165402841990375764639987106102790643872359308825957109708890403578645163827922507559346133512017109707995325152875961869060398511871264862375412552695326406620514686711743919048085193622312750769477300520513582993124487406703959550090098272770126692733809948503186762090714969475676433051512794429512972849004735117129316499113562811051415803118881893798792046987608573619934385767812868634852486776140341280546007091474713980300702371455484777043305825856359170089718330844671860605832499087899995965082105001013837736808498388387744935844887762566928750939295698801920188629915410712202927785958662011133903812636874222232308526716071033042327309241693069370391442399444722237582025261560039808088483147725089540798091857308291377325940073609672864435067163492024605273200979581755982263688573173791491279550327361058725478511835517020831702887584625045168016153965797470641146253470664877177171247789591457669373353976394392001647735372147316014742732406502785330721706958442635983536163257355881072434214738037227972251975471527706145135763714924559512864754290447276876472410091887096124596930838776162029195185746371039736397716021286021679751539859975980123724159038603824856484889505274939611914478174746650476998773106296934957269642049392450572525095699167445540270901471326085685044938498746805377356363006970349316627657390001097788697428744958013505313939880336387996078745289006971249877359957766714526251131953129649842024830524882624628076988073598226548803263641862525954344006541403519268626252878865151686329585454609712772670621787122011730970594063313313921346806014335930511631243919692660755661781264973940491452498369762014535179442554129339503592026524004666960429921893036962981811558823056119323612824790778527332374006050209317621909227967904978895923301809850102052846256819527500362420947236180543963705548601635728089935165001003157531882605824185367908175377409396538520628636162485001086404993405116551892819086812930288755348976287971425820499291983355850065312301000911083887177495134026465392294059049821139325185393525662244745529568143438454065349272450811457880805268639603920653507460917870865511900186374731208989282610504915623668964888795819981307069055729527680949485335357016957328565211979100829347997583694706105654842139903934535640529110154381749667635818242469877823653762960436860100647751591846393340672282263992165961859485032046044982155517579556278257561023500781273854730092360057876957102349122112701457405338051488208189568800408148455046094579176150276924328000275717729483081601123563883459286017782046181045821896679845129386021683649364868504594908149528912027270046312997061552422855775094587384986094792682139739323717556239417108096804046926602930776237375905764569156897398277962352126366140691741444799750057818277993042214448494208928135308281464372150532973957263962269435891384020266064366916786695213314341865603053006615081289916293685412217237421680477360827040643172263149949898286479992534076153162210309449085425034964523633374130383829719276752081235366327714874794511885881063838033833823350761515598658291231228116897937116819236561424928436602658947221218068802536102842916751756717480595645940536895505293049982931296941326938660918697147255856527722500074958127837877523371082917600494535723578503794350866949851148634720641687401878946655385811468830593045571629854244951046073138179135510768823961093536504270502872266782963259379387945975584502941004574639527154907094122248118911936304586625939805734068937236800837506640116083593228813154368784491705093299375921717630660331567002385276673223196319641305891021141226490292554747288831183464932388888032574110659657603286758369427994935372305313877456405968408507045523924022628636479922579608415700306162975829463731617736829833953260399273767126895974894807680129585806631320392165153336948543137641856611087623585436328795561847797785194163719220006457825582507972862298608887608768869196020592838846438535626277875457304902039670591534486205970437146271984966452421633218130414359803106179006862398986419892009658699979994964088172803568595875076138846845921160150481878024475085447547109284000631102126897875424009689146544803496036349117565334955639747549635712214757359256175257730651824726626404180249523001123667687284831942237181482131671208656290605352196632755228935505114993566813763694281736694198872443569039067087198059475678347783594141698551925576028866511073245861291981557292069917973703178588249455858601643337260945861108421596981064274761906627788535093786830777466410988513995148490719358508147965142153712515898075792595643443406188313879387135272649351552901670105574341050530012233561023876893537703245601691344783965872917695503432411289505004033334222303382991648384617871449493053870074640279275339915049990142321568712736318115921702165370209574801338446814968572455437412784061624685376084602051464304571022166554411923173742590879837868948062707139679737321379201220840437754779849942069683052705341929086302538102375590971620473666275739766265098185499479310953956376745249546516903720064733444935421471642628885892340457238342304390573395990057121091906727796866378137837124535687546615552233827737337868151102512217055580300488381260261355155700779491452704010657922139460770402893595665510046687397577366604806830189960188557148910019541874187625902226534162988588741371596913200340069592552628263496500814808360104000742869221338953479362551379792734745390731382228763334378646659134329122298000472058233726904628449312318648837734382795256430418126694369192640172367874835291985917562747353310304536198128791370184032218317666828922756526183909282508081237310633917216640431030050040596077439060148811227276325294094731472992813287511877074530978105945035094956204498066407486217274962950745792744703996148431993601581778698748754125808525526701686001695626649710469500672531872431632551184637343042789614399602432804105008423692012016758360629689722342938000408595203200689347664253230392834662245646553636391177398564875658052097405364918403924315908181368091033127769302464370119143510340165668549060764193775846939400003407520188761891464030790699214537336892012775953858455041514799546056613208102856417731189652085723867148586868942845553750530850472946323885777908610460754587296499545144798653683129502936828840945591148049974279826111242219908588377152458883508366231973494155192787273060816131851252829491754159814085549006360727906955821439410813159661490376250258398699943331637821010101179702464928072924108498701106824984261100533453378899524717683621219075688952817514969507636868391672086141877122702392250248119810089173335343403516812544949445301026583255595672030652712801214105929362236901792789106384794927818777010993250658093168432057232989721357176214727900040505411486033382655532727090363416647309966391801366994510731634544375720152664407996090884850631056694265102696288302484678967298985267399623148138931287615549725351197090262077662646015030594622755129400023731784079038571659960761430518550682560006349583277404187090419461386198112299083553609613461210890826396174294358653428066755911083841075309702021955984368050345377104758214438247089554507289321979743815506748690450282357116924176660388077845948167740977180793341268659945415217711072579037643764672850987578810709528664660361555923253750998704387648461679612046345783312612031715794310174946802079110678256018191117414556256769613488739277594834398593810788977389971854318437254355693148455135788500005703280629751982122823736226467616945158336014908968813305766345857321654392710958112128282358192254835803084231137285270005054447833580073820355437530301516206782114183001072578877037752065669317277107845180931658151916431440658452925701850632926275764365660759039019579278107397716922081990532480652475133123061342327844222275355760572772687933376138384743183445249935629509394819513848174573843121051345874983740779700333052891736003625786074545218485907783159954284275400884252334604755087533948261030054825991485657267910582796995085835236777861877576479736914557570347239644661967923543440998205304550341341948437550844816164208503505582461666070306335648707597723713925758235459951768978707407935672239168558295757684142377593990774326331646929334863101988302345334589072069166627380463531954737199287817579979225411337171581114657796632891153020637768528080227569211668128300200370540589782674857763480056556685152729596993828860042044684765328592870231038972639714466772283482108218127074191113375610275358649517665867995801484840157399864381695267814892206318643430394154226345312932595915574370546531681713303013794868231127642571912820839757763659377981257519332593211145716693194969413323965436078973927711765670906313809607801079105032025151443455737097045469244537200161685547019612462430391535009002284878400741640383432730193167314181502379389359823456977243994731422787117812930644571012247675046469143030412878248178737619301408903213121522349883680404331571211452589686252921723563174585611732218273977914741951332807999922573176196737134350868816471001806107983668527062655550963407350128839794725608927589631104822695296535595767487264762354591144916187621024643036129168799518095349357182861742964810123720753627525968407329607100899413400239873828088454816545581573804301934307718828871949842741654853083769770903730348303907301089781208382670090478942194538829540580593467155468608224439896241827703389945944257759130680044370811649288543900044123463663760012998116360311326823414972907214848559475487040190875481083832396443181902594696530941102351926856551017949637443552990801925114388137373707236233945930190701669131410077021688116620622508983867276446670706686829440358202682098534442821616829726272626357162312904939447679585504193342734919460957782855510392029698934633767825391264987189690995006215266234840877344393839606592762907402134848571496986129949281663099666145059533629159686400902774922069912453768308728731670261730789843319663940743566798408591098510712933776312150306622085577829340416055321996967118593421571299198918230912704763021467989979771211717718526229127585394626084591659371652566850845401281709736739443514309683615421894967071185085481240072251033255965739716666305538855525005601047406112077832190889045025936921267952145898696926135331506053644141532095718971726662194504006725828449803619734619087857351060962968291255723718134025101158264463812852594404344951399732165330341327711490931752750076347664864630152860410581274246635445267902443499794097707757960116848515330169299743512767989811584219973139780717188482776102789170943294834068882096292192657697916734949639953682255251005809340535536608273064849412201088618959846664671549114912987043940459756448062559422699239993999984163493793984625138673277294228489070960355333777781586741822687008608290929429309591296210812350860372947832505746790190734427700462481249074550394276262963235820267126703098747039381707626673082893740943028639097767782074537315233822375745201538533165550724541340535481636137745309102651255777489093781034137201817930370034303062958077888444398036296625095345894647981832142285355294048395123925722457680724000488395634455021143695784895756645562217202074170911647467317245593266731727684772663995950917270873219303109657574878172675792547085760579906294615231423275703470924750421672554051090833777722547385138187402730600032605292260394013715579268595452454857164664838048451415958794916252119987749824878348238877956612052762588116734998350378110509490715602286045096361564624673000283786269345698512781822111884630044297418842236088350999807639877900139653194062242938304395714108972642281725755370225583954382119901777256568995824015898149381231996433618923336897241705745384175958499398146604140381240976822748282685429750056708577346249586590709385278702671685347835050158367930593943571681454430566008440976258807583378080122630740450412339173807426424152807149238012403040931367531269215248100084248748940481561045487067566743385735145047615102533267082310207612510792766550746454137564229811420846264413104900114240435393975061409736517410921052698253338849328325925666389655223674307997580745521864397738708154181478262297824502879872508534481977788533069997178874953228160672446664953214617102185037044802211770360572690717570982867823357104152473619049619003469818309246299774267021948202043980292677140029236106787117044789557782864950340945188563404155801213958036182969764207053356547595424326745940061545809545409988063508111237074533464261249003231793615098830663827072371979917722142193774903521130530292687018159276482520037916842346144152638677585230165421925890810083963376875876194745422615144642074506867111165372327707356345937752661336280301407943343814534950988701943913356215488312485886513948276076562336291371622332348046293313356695153447652986948968610022224233808724467687905323948303299936879596608985961621031536011186814735416419928376021747868047120189789695076572371858679800264771372740378100593451300548092592707519843055804539440847249423541684867087759573967654688232935742173211278297062324846131324719791852763047407526089773514967762423653876354430789767659338970829834833948122029976512229168055266518496806345348057124038089990577258493717769767846202260011815033746512218629625443715768723420570755557004584176558001657239150617421581275234417696259133924209586178840475063484827485186781283373276020957192279175500617390547455885811440136327223131350847700283667765146961426051018464895790661674120346759999225132350227997309505602988112006494212197009803022337341811163171280376692877878156928407095341079886235155041666057718703436759561182465098293942900871560399515645548032363431753308835638888373265992465491408786618748482742503999840992590068670670600545638607972539032573102743088549946547062363608334113261898435576034921208555666400414874866550035824915427808427928583351428353128428939850486577267144953207935008830862794251590570402410203118776549191865122537925633622673647460027027967316736791271458629106942431329890288842983577454248178936852633661655401727719001028358655185373181097147720989450010678770010357167798271024030906209867835907458642507955700727437759174508584407488884364955111388766183103380644801210500330082578890398410146412869782441787221363907905075581481302639898499280531295468616810132796776008822009551745643547974798688664227180524498257455274847697069142980668336144227017101030379565134351607656468999741783780125757991381214087487365781333976659263591821136524955766683495040581542155672725177598832555353788846519562283445575773715123862376450756431148560158634665993248833155280576730825023241985694494704075363674666790741921233319467532298522318037954302635946552277579139265547561586052854087476237660257002462993643703025736373674314576779805813673488500497079880199149649126177248922374836615153051450849233106163660350616491936942281634477859532395298461796168506846927195674147369748684320646047876210818981756562286195826843841119179028126668480357119369311229691038276917215672816969170761600424995558517657228841250709702615676787696371382375516003944345087037765203170347413084453191340802251960909899384535295328054878108739295427636180098035295344268419949793879096673047074098128034567985959506421443992448637492621226557231446580745501225715670581966867856878447366075555248416442948013300575265558912664750231998439963854227459705886222136073929301261429294692152605038443746693043707105639767548671108858140146246409350994403910001906938357532099143048326665958015915043694139931792626575713240631588722978364969705421127313741627380355566124831237900765367333010489171576389084215796458884346001113376483562846866659626528694512454102127416465534659430729849783738717562949036794271348909361141124474016562513474961582951794502736026334029603803368660664928484948856826561541375324660135599442464749541361847914657569573061730659623386757144092436280078160931575560352296230587482114913837943647403287125595693132427842671908171739465878755381808672388497400391942488111492087890428458085158818792135485615372781298021151542724277610714728603121208657403704903154575310311117462553455889650828932678869213600050842773838637061793818256679074920412464749244172492737323615970796556589638330177809543016604551003144729753647950302583912805485610640243948229885693508293804488184490381777778186813851413766470911029020792084340155618423119596115528224754329405475237549805411432224220088976924892243558459824017045372772231070491704985188091990054910852346394646362444097338794617636343845119612821966218117439971342198686247777962116509474048251256562659404786892251677839203275178890678616616737537168880754063234925069352748738461824369902622468679402966210678531081110212398156744615576195701477405880673344091690605263713668395984582463663574579041578612243197781536004980667663723328074280975631674680448146664819970183804751708784155235426808104942240752566696601645574556572074890735159933912273838387204632173353739760461628097856929571245500535187769538834918681185096805017270736757974914348055975284465230955130069788665914362582988898235969989739332175359526806061709412403169150303551219769046725928502972854474784692543027577109033214492137244272418729636097615254084061950484075764238302988158818910376537399865136662959493157999999253593949326711320399142767924290272031682031650751380562804581682939525479560780843677531315440496430451677669013194669655432688574354767572701803096868859092086485141962812114112772308871615154135340049693309397118489737743039569283271498003520454292496078208352072525952648897321133431924844676034708864008713665544589228882494906060894193648644610242777227482630251365335965184039989258973826239127065599097666686339362295109973356928458223760423607678481117784120615106053939656025656458170988717023685762088716914901505041570630670369482904303706352457265617576729670779401346323809384134566218772028982603377436737455656020623813183004894047185200187401138253077424437728932786496242151399203913814564931224473323542170529024114001256559780595948509629032968903121642031360490087801160159988498289903748530042956796883807577994686459923805140392213884232005246851697977882617028653984993693977224583482817183078644938178437092719231394823661156964085069138399788884746749245970004378988880020161128899985880535843830670029533188858614884468442901844465848974033949366875418965471073224712075235298659797870839699170909308157414676139370243023394203544996100498015975552964301593335915648779023970746852470006775390696530305309956949607122441626571467083275233917534109178550298594216169080340317416528501608600052385881286205676698322032707505342148037184077838637619197389614388632163763778526039670816585309488485721203935097007153050305169596527400101429628054095481035125147670402923608458826563195877436753005313422219026204073218193691491927311372972974890806399529900427177067675737315207507873166641553998349883084801878670647224623699048314674495087558395289797295189312103936978833282056857570747916016499638928468659182449148930184912401112133133333880958898230800812271948498100506340752573665503351203057985062845928568314051424678753080567178541058370803218930979683757576617489989435111503872433264933833605762084979883789515342541558273956324730781332014577822794875469351388154957874778783502463473133150545050219358330644532238037153573221240876156135440538724285306227101593058680087161664968654086298200717823134759730448214295689127613840074929948770264490056559917610803483775738487224838030535028697344263922348265317547231712493190432893962446415720138047366589294582824348148207252200665839332472879922315884107174048510225548132042847698776077215643872215322828949728747687172049611808800633030196492861902614751282142479833324160656129558915207070075156017017435100662608906002165190480514663014705515623152531326356251188641875236793505260580476258366423617927254861800631450352806905944513038006752595650527097313031238641236908264886855175430890708192795978177134215245995111229325090212756212539975585087200613420660274221670337693236411806252238891417359344008230339666258379136977162080148364627187519609081051108028178188289886734664526729144582167939356550043989276196668222697645204327555962423832075628104723939856644809285516152776062499492920619795036384010197146828624055709524314416839586450260027677452762973780283918573505140673094261772956082387034333268131300823358875491323572148073715483203721340071661279251162548189557590080558476221863880888315492783196762860402443726320164257677888820522041130381487222921919539332498091571161586945549889035898046792239685842140878552459644806675025986824879257984465752954612786556837833775887816275430363848331055410946080215115630090482090067360467074588953814792360273865432297924840262365294652713091221476663950592524736644232966339335488694798228355109571698665935149762158307945870629999737551356713654076908789590157023582745691458481471217788426037847809806159158220090498694463063350003777822522149469923800113940887152570407792882066918629239847779337101024041175393991934344366553847593347090884494355553525316176038400036206169235822316822812048221450709435014333232127635533030522920961339472721308726936877250911351589464500907010138202345837305430388239197681273132617163552399587369364815086872388039877461245746102895726905622992567938085676534439386041908818983578037182185195221597833788917678466871936117588129302999400749196126915654820235810577545563614549931047470275491415623620345069292154832195400361147665911599243954448204618141661075010525230631421349007232218019026953175429823788257140363867598917014661544965383428875240491911668696783737152904665686630434852393886433543982836452351628254649193182770361455387873737628637564293055627734315138319657964146490706127661582556264103068728457228933618012928517873330960268312932724492631685913436723015071503199423886866877130912767482153628811333659513967333642756687356820581437857444764062965549777236785637146084230255847701418007285523997484092348449808457879169422540109211507448577143991021738187120067551943342165084749963781568509251947070899747173256027580633182119083610569472112104540520675929835704471642287025934759695991184019971707441020909755325349817134861652948658313895173502707057768919963129421084417091408212367729874200169989241185526408422727655943584016396718503517061229121736190208048096202427245613412424478943355781073607368099375014608972041247106553123570520701402347616761022133968820009935331937692754805451943114437674712458298160000963793885936507455424312418898006117448985071243113935987668525059788166512030453684066953486828399202440733382492839583533515526961047037835022119944966695115807892820635796738420103963010851400307847682136944208193789584093468341222208817647692622650010872870747572083287176666650166761366405039990604699627126586847005933850409317946647737323725278117783099936625762790558982720113623491135479843688082772057763731809409882094355846884376377678718287027100984842823968784720171604973613944387126900125553253186532547938468213106013558487964156921569504303209911227254772995640754501194538506580531000483270385951661461069637498536771403356296577833722613851304978730854172210870229067829262011307327287329436124179716183269447793128489226255744527890721716469543089073459072181164655194830191361382066872995076953387879494403806074349377422226951197717218802929044358498877513015372833601779388352044438539832638795132524911908318674626978037120990429366311797346698462731797083852275173200204972192377683542436225491569412828357122576622468101556926823367808012969507607970049851422397494610708383313119464210886411516391476959462624952157056695546588987504798063936541967917195063170040875194727619592190389633381001620329771248901515504644623691475621406942708495328529192279124160819232765527167145285858242645996629074489359944289033479937733554391534203992624625445545615451479224211721697491947076703640294082754168802245528311492494414494280842869928852921555057982592544155078010932300262147633904728779181062152656273630001337560774120020391195727803281517727555434542361462529325214320809358680893104014897463230263755547592393997909485421666756533654706961795986952304242043802441697042731492130395652939990062763637912812002416834945435484164161561224298518966040993275373571762818331562360626776474772976120708412822224465721826375995306663726988744240259935946303283164918142874297327914493058897056985957683395069150816868529387239531207710500778021622136319313081048204022529816861968851814601215414400188652622081953235137815619924751670055874590375732861162488502947969341677489609326684616749949052906775804956208948890097288864142651620589599381865347283397339801268925105222439322429041413752842276960632028200139879887377319167040611643990055211116408921521160024948720364027855920256554092664752115546350469358720941792136022236113794047509526430451395415143014761713606381023125017929422230032662345572838617882657633555638846999453862297138595574151372338251198258275212288780539569831605470956941408846437028088680840078388697058577690333455038656850144621065084154263879841296207398688132365622323726899479162562284679504045061270326478173236890281254248936625677594896865909949816283295311700802231309477376971531795671094862446604278738219664478458374315169563573813071695884674332032800365837612645287529196685891571809362303010172815916275706983026890845043248030729219406041733160417074005997160115018787699934729892128556687179478636917075027258311899583269624530852528053643885602750732273401612785745265881433072231645297117093456961416665901917459496493466751018723303900487852164927282528857909503303040115739713461067185139126668067957728728290299218456685112162323472307616918307162879028498674366279116268938768801262930105514422732965913625598266575628990519382415095571689193409929584787081165529920202451183371458942780973152311257235979743381237466241448987415459375514839305883115183173458472551909595152505205318812383489509114120361107528318545026643181899425471911330714048040857904179649624298161716221394873075622611417442706317356187080629553064273538819186923420466788246866985762347199582877171088191418483237864636627691741574291090454373348063544303213629128980954643344428412082641820004028655375736489689965972958683137755567254141485827796555203353246800984737185395754980392549744515964747915902498913334082553210047556818088129997026863525776352708117387228978276928544943129388190683918745745277422625647324339271923643017741751659526303553832873784256000125778341417727463952361266866340169082951508610586157765212313336360810401801803326674860594883731616001832164441798327371342788040986366688423627687262044741126378242451312237470952667772335405081983287535158959863496544129258301400194842883193404984254434742564963618553141023889149037830583255846079363598988933154389690013391518681468232312152024268470670977002439970435811398633742590470778599952353505084025267172901525988167740583511434884107220023339902700350113581325534549592706782216645371328177063667561160279847511317333990890172421403452030281194821428935785122420625959754869006030206176064557608690323486584246135459387090037565991672965959509429424442788016899969346554091914914670423545606604544768094495338898339657876650283800546251213903799824753581991284271003302696470060088256056736957524047566510872799248884974527188785355043572249345265468528035540469928084486056079816729060328210702993107685368995352988886402608014576282307748166493426524975605812833374871659382925952158791382814250225335817874396266588839849934847582202098861412891330886647365907329581006789181717605991272152397191272375833927742410538829106006791153465046923466927285505141553569716098022150763771296981157231733456765702320951696949453494246640682254699904589664394685309780918614065995418710415492650620288125315342688723020655196972482183144946290703515078672834490484944719908952955986438526002338304603944765089461827500298179431935282355239771183216136829922433250535830083896829958231612267471730757359490553302093675052402961633051478656604412799467690756521971451570794999336754695853530519599001047253277096731150547642747097835684260403075222247384608219009506685025731796728536823697482016310222544216868558107113842440962677066805143603973089456119319754460349495114213914435891255277554985230553252254347409306896372123721571444062901242479210712461541465274846576265158537239470850703565326690830031900707389535933121414579223451942504622205433947632886706826711283591600691576758852428071253812659527035077046819461213873044737182879859455987617023504200990043904553548238261747685546251148321377604595588779224919801991914096130046443179953391197405655250548148200546932397430542683108366266669677777126724254849179933276871610403379647794941512128508117252038825069467382005851923645207445847939690284924571296295232442396588096018157920516470470518798329308656120087537646379866340259246452674206960147822812637069835581086027833886058006239393852557021900824324770744787569586648781419066124164269452516242188795333004253453718791506194579629828387549523248044646141129390083961589037201916833246381223456374691894590345616968707954576048219159835440373630624174432513635643277773999821773586163531336843162351213824481314799164668010223219030689954340165639470245500370433835069381812586764972395861199220222647259266843587776692843717607194368801538120166867802235557898691079391908016203481420498042234197273988138069870544252557475313242950061434360080146119442191757246033626711554440569128968083318511874579733967850502483330874547499913913294260815619748801998963904139845689904742964709881440842429224342461159391681148162289857562622141858239785001716813697026418721650715647148952497708987729302870213420895276010124883558714779913633825300046976853504430995661358248063595605319712546799173493141245171965284649893315541724342051392349074327979269732013002551276545542792269191417353859305289852589021296593816921469862908197471503537089796615180964257702729978153856422833002307493421767930628497033623698197981196160032450116464921076221619152998603826107780260840186633523296742608659343031939891246788236442190369503696114399947957908253585728590725694181451310920468053660075353287331279099768269777645072976902591839460008516696391752962310209150536884996142604824016704399115797604713768699174422363944548976382906967781180205202126345612842400143888638213934845554890455429910511368034623532760949733899248535357531576453268570514788797975718275780846695682599485532819565695034133318614924381659037865572652541920380593100418464667841946689524635397959363467310533521829715788715889228939181848112456383737733779960580649630972515405418718261075139619871724288524033555091741182762235054816791360630896709958194466742644154378625476753001054462130188324870585804402684829967009783250826298583938573276326733821362866380368234382445003571704728942978498440602227340213630582911833552769581273656835924581739659735477101555933414952012195985206471230819453134090476735153378857477067443658657713191266268807220630943297405588682634836093597944292900654614462100644412354004560530755098596253764194130528090863826785563170387293788641971757853346601209985174347685626847567678005674492756590534033868365960015396324671812292408249156552643518598167416522799786422712966596597649015750068674951860291999129375983661246782242762180910721681208597999962527268601519572043929224353513612231970187122348048114848774022389760706153951947675385777237112084205483009599021203304135834213176094254660631284762218328209125625557958494889862026136335839141082971529848387380295009625772101955576282030350170486496099230083527824924329907313931098984885032501242730868212411773896771671932257160036945620093857375870631466305621158137474092210361948187009060495231917775579463227308700834239888610803016341009143671495148814120992358262031641763987305928746025514460619686605821324634884036704317619302213351397466296253826774788793008965405357832855912714721927379878759855556595843818430265707189906969177636490983501596879186798035938204686954863518758317869180689940947839846010951752826971359459966374594294238894134819115775544326659848642742634960371464533695321934017902815155120934020532890621077539449167796311373443448456363196628990784736608305145178640793177673678811705979719551918356991638642800723680474674247353197820318156354686061562382685783797868061633584433954487203222547736033098495490352367247591393905807163610959200947480241734607267787494956968431000697623824141439439715322506075375535521361739190319570353381856712133837993221641075254370390240002818220851721185058294986507850171073766277886828838529675417528633302840719468487954811329570123833328825220618383117540277200281775427786849356068668392567184902405193427660127439208449381297626097622298386226346033897612206677799218794912617940796453932754090102758611453596534165980174924978909534773041955089147527195254102631033255445682249584444709714412864054698163482003414317983203549553353034215678418544845877834665947321977336160570607163912834860141541936607863569665192118632083222636809754173183467276104006494639122725821730154763942591874983162643112343855144419910858143224415057685293968207986753532326233486801881864280397186933937514894002808058056298304710601324162602578153976789501751312290012899432602925776810287065555268748577881688931914892717146384849938259667943126787259863596121230679659987453325941669815537333645738721996609132066320212663441624300406608932514283801409295991529268406560551436750718207984646592626464353397776911973613310182933489563329840846471987773556361357606949242905378169873345686608118603878772863112165819149623745795913112433664789549975488720674091287520323153818085054567185179743292452516683781663789341003123004617499668579656875374620491774961276167236652447164615780981734814132411126993806577528240342350113954278850120357676208262792662637376326041690637314506074368047631747899552161050040402054099356807906876692581518606386093932780147824364118640562690920356546884885750823063006670493204598702529347546452524066831873212293771342438501647503782411677049261375470316833456132895312182903626160516964261349401285804330533629152474016929072753240806376237698928934670137315626287441703107220074252039731924899657641957291839985169356349664368543303030813865548301854417969705890024235073352673686399861777079595970635314806407716893965352484330178976072866894309405622437743351591700436174943924086886321973904731675443857222712903796867770756283052504589382402168782767816154684987601623151386266846752333678027158770751222713676598090153293083006503527953323270360694899274482250160510376208175604424441220274005151108415847184443950949680799519417587890215348323004928485656628842190849739889592125036754366604085730898149090912198676882390800325506083181712370266079839121971468419306185797967616839825369180731062049911159284710084572179666368199888946129152128132902595386302627128682781175020182225843153324661251244168046522650918369845249725551462080042842471924230311925858831672024660719301050391989012571919968652874625787492865183464180726180685143247655501533059426287318676276199790388033570379613969750691962533661010120024758894471752513883121736722056059941849814447705366016017308524302088205364062180528189605386213476559784844998000654256632550051916154447635843156760073154558724356651135216559580969697125773620422413703178058040718657557690004385482381914077396652513529571198689916275467020388518753891699200983451479140130596090548418558029318879394697389008774307810232667155573710847715325666123074293049997081990834688108123972620904626995945821763567323241288341200412054887688921142872425506160464053592240667279330726047947446726717761178918937786670100414829989585372643141933320673112636532665918404123880559893313570888314983220673383025891504781890981887324390717183992645667588954619008895092152268698116917769411900610658012250614990416463901648384014535969703388846505388700545752418894719775538897631108807218248200625787744928120726712519205931669621819666339643644038078702281279178888094300544836762776593632983070224953851706707827583350723908321085204803517634286113568316730420349290609619700506232118999073121657410642020107279017680171595544339007148018442968626271454581015195531575684304885718345813727879582284796354714082923912602962980471965748809621399421802316259753079842733102210685382865125549111169303637665506376054643198967058041404366209709705373642868422741626692815060705194741624342376247606207187120255103986933056122431570968253491229769059105618936380821433728718272421092212365541229848166482231103208520080524385931536461808667449959461086127740757851822127500676705891506735652750352784049878223597446047651608532267777064176477289527862973471774256518998456336940718612533660880712497950545431258475213479528730775072324659800818707825015666190460408137713112481312856651841078411380621830242444991014360762222659542244716176580313608816547973180373122137091860790467910964399215052052660246182969610132683380408711138189925218316680160098480997142407220947748108863746413613053089659996638610513027604423619105015923653040910209964321114356349817973616206054379909638444914908608192700498106427486097243951223233759864056819830714231331581274239184647954772490141836502859388171383218818878143403780866780814442379368408915684246543767652757822399181029458429259028896864865421640986189814313135286265754901660280622960622925218631225834712050746806348231694282255459471943756639376597138736403438646455176445265834476251286693465699024926121821974654232855681925142012431256965639564332934194506294549084893453820232935387381365048554910810024475033286139047713125302388132214742241809709146730836779612188901297737349160102648265849481780575695220238446706208181628865580248411271282694739726470970112680651636703491197851537522233620276134822895931912449637995858305781070080251210046712605654319989634621488032415678877483911016563479240031571454492885068777444321030229284146121991705109070901453460714030220844158667963763223988470366213013176842974252197132719017872041466140787425820534886456431978602659142757514645874895582489418920078710032842169142767960007269794893840956890343580636090613286426795872012669577322597464417461739948735431959918357797807448399278662419406958662599397437936676140443437241496310562704801077151433222349567789786879953786672418532264073657992994207077676660401655703935448876952503939733098805437360680186871886218583289991967491419732230618393680227102074763758789874130287434552469538918525533841564423492434456173325959704272159205939106551816406795853887556965653063522027627044858164666686193387239033270046635032965398071868590900413730766808562583057634532726260299437613427373827547723167556333022491712309337265536798838119599001473445227388661262583914520856524942904302527017718506996884743813369730580862294406285431738139543896809598185653931251015882502457040845328240296992279136288442918066150282801211022007021015814111091172339330978171154668480667883546659454506224530105584220050255243779684503377200338669362882141062889668465087291011237356326448039533987527206514896317014557265510771558668143470210638626621838422657691252757214268237867581989036085397892019274682912945417588355554823020020040074633402943460348919482005931867206347253369857672332168859611035603574975674438362101390585202601902417471645788540748938995156422791330413882707428737168940304589541215917332993162069726088842152534760963253356502389815908490959947484444521253950336431075755317014428529558550180287425351814559616169426514414187357279555824372692193024772235661494662218715798193014008065805021702427901296276488420243976911841024038076483426291522636278449747253150318935059026375403999519458015132522397882864563762510238307398928002661820213954206355486560891723360181061318226865354199456470336098257196811986285291689745222314803831491371645108696789574418945801361580553452649917880740110732066568160965872312695223218845521402350422587289673681715884147890011704150748284734647347960613341370491603863828914088517579983293237117535286049969685896282622450866192872146004546014529760255550305845709252907732716073903670464723889105942474491999679657286420678373859533400870512102848117139185033946952720589288049467719146486531301602832293439105427839967197150764341815005698078229626736866171825490470752217301313109724329509849258431859956615166829842930156928585641564470087647042616866146935037937344560013715572644789185901441932453233764932634708087186687473046404377588699270332914432981605386338976208957174022178458477711941429818044184839382854588372344657761010133703878235908517633243391479086567457355417609012532118497482976910359385168300156160705506740335712330545845051448923926201042475077249457708976591125545452797773569513548181629423871604355107596588329400355328559802672228679571091844596381840302895128707442679320653292763206295838383853539705502907862849521351446264556009776894676293464952683196875639761144220056567910125512779412501537134680968354152692912890788807182294985232881409640865665647307252831309441970594616216710431520573615057999883674679745834452027095256461450489117405409510615386152699651769844492847632824316193215643134350431189058168414350254931156080937970263093014043879967605991454585600253449836800342907807576409274319407523342307335979169337429321324828158121849114764272553581248578857557107084462279715328999294834304259380007755556148262572605225253242831636895062043619940819941945511500643393411058205821232922344693424822278251396391853262695039579436583695722465166374315000190870669802976984190094943414029887183832964583365473354744254616581847220944379978996097715622880804673898838907425350987083535194774057130415493403474578882053650100710643442180503439975411495189920180687664040534801623883127238163740568801778983218558303112009024224401118659713037481792367002834341658464689564238509726992104327498680956304875884812095112128840564229029852521444821527832554189044281430698305476603096916687361277997047910100560878838526717635234365286018320990358739949739184068922684252410599164490499805100397495919403027634857545411021635735329751958251795096426929875575556528021070337265800267152441183081253116719587543352527906297790614283618566635898755905941566011127647528889585074529539518001468997293103143116279698034828177159146187276536464041371859966962740790170353689246288487775462176745460143856136058667346879119850919394753988288157997670044168313439606267935266816695364164511833268501184054376021011608846955828479126098550490765238869386931750467073495758141022843320537247106349134369931557035848341157749785589621517143451226291089910327239136180893608539067040459048984557862644293381218750637646806827331297960305341788485644652736025267849785835797262846946695348600566952856921390453895892784383841217231475689082943438030012681153777278930318003192543943751965180133764089270577932032367383104048693431722828831375824230661576158754710804531051193028664949271000916335974094301044762810492170050511137354703604112747648556080458898952655058109465084347928379971644243960361345766905778837679212928903820696422774841879130411522751421169174723921119174758393940015384150689694784537947332431051363592705638598998176555110902206656199681872587249810565627178183975122982979408260180848970666189774341036826176623329325361439882589087526380750057580106893706111993195919117271831384994197796596936626813886157571529083780820797943296546547259330363407623467309403432982742349392941675052321376927851714690496730219979694588560392502932658042608086098558425640609918182932410779080799593720333213683358552079120460305299429210454825966406582829759604017178020829395272375208265167976898724767275734292069445930467532541968546123222885136616402166964917959472483026957308935817318479665841969354856964477299928853740541537040526495554236204428351671180366196573434762181532193719113940291809954764092006886367444259866068903447415798015590087191329644474998529667977382487443229147387070564630506140843960783599627797670117585761689982851696522595675160403754398593331453825911233561605835250628855634145749181463325709141644586107973228938209081520222595118365767604368256099502915855785253652755116559106438473800422248210783294981872405588297402575131209679655834128764543329918074522843167719646802481638572606691881255987353498711771484713912014993464880221187199358592082077968131844247670702203687242145963875494706125448997357199629096199506069002203100943275449662689502626373844253472627447018129358817315060318617989671594048191860018640641573205913621751058554789007136036456919745817733014612445535667533209200515859670045124260301652281047560850925421523553422674976722474686902404882221055403338490949996650416880808654649978116121809331239041126284929764222769012355789149836804195035624936862308113158800568113596456631155498077176341692833228871843926183383727616493678468318770115103655883749591639748670294646663005112826764750207947367140408602609076401085918517167929208600525905488582693670331738113512218254947308060670244198200863993896811686012064038660111598652527104747270585434755618918380460480039724274644207489709426247423830575258067917751632331661806434675981100572450126078722448494687998794717624219730379829075896684912830991452908090231507174130746485351433468542560177450817623137497877387794241524066266141082136919764703005847663079589493796833776026662939012389066961619388052221824710153488015759420915684527524053673862798838516010203009838504153522908993786770530697414249440628947215927579600314395796143540303182857737127272595782313096957594795587296340313158178019858152202585252879219230545263861909965312324370276377061353350176911231318528729422510397228804663506319932187285550820796961026722286360367474166614252178908411364828563989564912354969056901593710028562319564595081058656112741495103698528585297532539391745131283978882832602602320651849699330463556799423529328796221936621177400911729955102952014856218979118065660514203722280552506636280511474272375038546763279231969153369461198868125962176774375061951048668304048064989953795469865929360452484502290561219006584922120857439762662094904339631854837557460732335506021810893877834522036617224680398016043012090367049685279973451978854986569842637549561091648186344475150008961265209217922643227403669542432001643301453108963066298450467795981416507415280654459281914068339924925914701800262126387182171059824415454103624584565019065602947081648062194449885103319671756743767291519238835241356541434838055816366410889124748036678441048426551324788399768865538845926496831928299998656014676402018668600146376417877028645438766419260255150170523010206092435347212922361401970841773230505999275903001053850605706634147889086632529335643281070051533477635227528253165394582836067944577234210714412221519786824597268407852175864662855491866207906546001110949921786089987891954331709639187042404698678914796787249009514711578238892518120287707821823559814183577230422991137180231230474048599099123960494938114058337400100539157689959711069084305185727612307240309245279846189335953661198869852084042263356757887137772559508730580093839894161714540469583547693940608485222174398926634163267242014881358889430166310759746218793652990971422718870109892664565481256133904755755523881341948653346679417029512949235353703985739866753031582083708933963287682458389707424186768813050369287947018889379306402011407453453108638205572148418419944200829275492134718703803695664975205362691894878656864122017485575299505458534994912025362367445917684509326883866196036829444342428505016238577824590958113460250018566568567137059427891857203199763145580503249261271945830789096846476047459369189916304189017984142480521709196505929063961447333561704509967563654488569268711363935144697806249158004877885450694652048512355999283211303794663774407273802194820517841414292441135749092569788985392341872806295549838394566895485064605259384992896646510711732142636678750232676798128577627574996593255196846530816989608452140762892887545079520597147553758563974356577593861180035125144294828300781004305452682719906745679362871970748050766742286586475550916653728880850308023500659094088869122583294251890567783851018625211385943632104561840784298149971641429831219945550996032723912487252028199596202639344976775346582532734795697950830681475413676173644962632499087218182620986659300840248458036246944127761660061701947563359510779868236489560714608861738434180086423694761958902350584313943485044704997729898322836902401658223499141785417511764595873713028927095936023771412274528781832463359597318900766004533359921459931816596385892862760857366425437554889711953491543597232570879431089654113217271907576755543679288521959677392548559335467589870702447667176546795161132655987832378278560899752818949253010982205176114459767554202291250414129008720558133555581728283429693765956612366466327044862298108302256204935992547516642110548746563766231593467961352451880948144329752905757620640034970091200182188183122490526112132024709421360425998652981944487555323389936392605744516359961909873936674332663120731000386539270056264051724353057968633382857735001740792215179995820022892237159236991539311063857040875783277110778471868701546028940906008352614885222301152395384795543671306263686067886044998427994248855705045014572232712012631432794653445981567783476334709379322511479252257081859900055173416639236118427887894336085525462451203865373686026621715344237505425444276960411341312303364657430159790014673747584833453261832293284029468460144558530999993624725487555148621517876354354133624962251510662878414896056316337827756882897913765517070057982823109878119667230526340573994384050472467700978787950271914265754098649913993880521868935827195034139253176048991163014604605307219738450199244146295517455967752980284170799576640199107749987461632072262490965806364334198005252119977999356557374808798998017902097122516686711683941416332673959868079050624523408486886283440207539066488975016132996429847706876910174685737027539752369889300932335551877361700374627550488576636374625181648537625762638820906997837562298611136034652177369195215210391776154756649979794316296011958829192116387205830164825733706038281241352505655258041663793356610457317114640981534914033429883365419976661240670092425118370581209042161205736711352957844465456023445826499191596711449710461751265686906084534174906586758048378107837378137710384060851236886899364986638124450795880933553835642781682504783651464008966936365512349304864736442048545997818161332381468629122506820752117352985335959876988387620875363380804727479175526032208647260675549618399928442914304321382634838632575788536442113836453264321761286194885277737718273837691051801616076116329011828822223360714693115488154775226324986063274966544268851594302866510192447765313101133623088519679232898517344571421002923811766446361503796842444680132246153748043653629582287078051491311080116081725882789275092095625598316189077524019947864973920323002235544429743325105191743352998600545965836831735984435956666693787614662316428843350627249197202434043535640706327554210563417476417412942509060241216146438212745805053047916887831097578286457345556090616806285926226201019696328449073178261219174328528755242097882806532931573255916411091696684235108131270720980825401520710926109184290735820141101787386076028422698250582031988761274385889923640559898349701485449007987699674891760697868507837788893037393550515310221474294569286361445883717048821323360895924159189077737445647319052309543934705716810929281483394189067263203816832970299614322055435684469546806980927805234965656421914883938760217020819417909065239035016431527410873754541040797894411186972180192844959517354358150025962886968921663774461992803215306590576587998615787901556580639213992865271353655174033892338485198298049842017400694352580684766532676215364901817088838674195246291938253160917288498373098046065201290164607379500488975249938257886374024737321995061070621653916916556484533569973879295105551795619716222489862550577843765630215864410016680203222097206618720125770499064747420411732384229323098599317778162187826770675728251003483398815437096698868950022234046199698718898065323017144835050619713383342651253780744761722591107096922181646814489519907790442763424477447859937926392642950750138087706434055294903992127941330486895372464762093188662453721287430638297542352378657343943723432917441729680198761536399331632712293998316152721417447208659271815577725308680670891315739132151478854136428860911033092130418848773981575562256242796459675831467201787679637660702637136049419567394510881447379680448666626262445284015847328301889670564942463350753616773518856667236843360800785760084004264566111250562054149677391373763051755834563344208320874039574973938167374083047013066608602361692291526520484609552462092027014339343045202624697903704653191610190373443610610156601966879229195992413381942421495504312387568833001476999633619663385307449747936820806642439934887866441005888251883390467668593421733522635988477408534554738439459889854929159194094871072055629319390263608408029459130939893218647044759370109901333279398513546492800820874213245279006283307589564720214993014448341797753589982847176094416903236994343860560639079266308074908501569978993779238762517392384510051469569745446335506563485797754889354106330544352135462882267063762081109373268711043937338905354194642965880710644997037149923069680790330755508705234228732561126600746343461515724278144828134112138832767963448934968529653244697232810893729247257969785571699651090411420679989503194011216256287147764128336191262155079063607833178697292658873022267743271915745402734950921168623623099767480501712163748686811453775982547440937204863072760434760180585212295609349118075516492083162131077617232613160659098246420445572229638320190822143514545825739737528256847077885926186358585754484841843471000036369129804056893986492929653712944105960155442009283872423477049785119115367394424961604783845805867604758248503545176833560401632232258896690015329147979510068278411799932608119167752711319947543511749395645836723689319641076936474020149120151853315256120258830988902739372169487570105451779911634349682238568159723688470461347800184629286130999362899292931925879410295134035369587873410510902661506514866512605438065911841356207597032753304948755924607827835144804615758317588372771964145760803390909864348697602924638731820795887675001792352988083483262099009608236273369181076202150232410306058624581803870370392531321691874140761558941413100365540715560241579370089002543761973941549349046865912268175952312012744890258977540267459442528130634039461099997409805734726055125507321951458641446305082382196051420051679156672165664618282528443190822411970608272354099102247750418140841871286254457804377429806593009705156975539671782543057431471857688824829898755296431711402254013253795772889203659462547573600413984192337476508001833913352523855811974041773344835568903048012104134911592524721453622506850930281737589026064346670951616640713866319734148745670145227947212397573105789415409784132607186561549664927473239492749904825431069366982796842709869215450407732915772402825063409478948741455828567813624502309852413263062153439831593271996644013451720618550562116444425862645973237561836336324148983648901733239922480249184079356355162331356097534071219172656325941031353888135016955247432208573186654768827461562583634141311253866984204203088402761542523535229960498136254529338060970852810248607214344289212965460822207159739625696629780751337105060074291561553264259255759028698704651033644882917462495969134005768107128514705391853063575410713449664648973978229231369898725006643378756984782325267083894927678761535208581180096925812992935718180255902946112005133506127024630108858692848877161231302779368030103455395825816611325024097415935816722515369747325114590045311164856156951396202437624683901741395428713722256041568698657579204780590385916660545571480699479725401449463632540313720294082308263255707572200471955162744470041610045108948241512736691955379864935907622491573597125120760146085470758292312903372655434005831181222297892357797370748377543540544016614740750000422981861619597535588699402062478974400769865688829467951195173782574122481031564371104853228290513742846902318243091342552871433689512624178959387386357118496559297451221535567442335523014078065018216125379028261483864034818731624186156784870169959721717411998652442016322890148059462618309636324417749922795415911276828408400992627040606126561196100391942805267385097242652568528197280726138523521913267511811246094388742623180364571360650464021702510979781325816554645624989155007626201411386738491538943335968813380503306508058062050012922770216461409889060094226917291303904158783471976051153915764469366929843367262617950723674945330082496685512412575750200727619241748766863420068085560797512334658959799642430921724895134649921923657079106013975416550427337595804536979414940379956913851738430802524707731397959935512262989331119724080790394803739632335621082105251854574111271691109622666000371086593135622927972989982232336558895166721905088656084340615811831598994345876412005148266138158626081604964339731866131685245591560516774120050172322133355141495736399109399768346491002592556040259630922038298762333545224564250668313055537353186243078576422756189524003976851311505768307605086127771029660555244830730494153350759676880567189051392296999441579270218918626822163917353975151773342487605908441328557778455829761024520122512717949701777742474753451230084012920218934839174099797195765194195876891353408061858528881635142109994089571156356474816498588407008982926146664007788517220070270479060312237442804465866186558747310831856999073200830487524032149237635176080311391198611480127832195525892953049839490858972702775182537482882101182399906077145155878222661682372269965670331514359159053151752067634557540227753710711941731847210084248902162932679082727304628877703403511978983841147234628404852469616598769454107949600570931408155343205380751494481002669269970031277768711913006139973874974451462732374847848190455930733742804857980659121079687647274382309015533614537610993002544596629194150034831786062693797988278207357979150758915059359244190784555627668835650349358846560559515128562354944800205253042239039004960037336971896363445962544615861594149660118013109026791384871995694697261172832838286194581067100221568881291943295058613150601136006038733050258184222762231959507062004644408373127717961950675021759934521239764988455099583025803764204724558272290879909409053502061584941778345817468724635978909638059230978543958518916311445340340501110269382220613897655151367566403664478152413954243656283426386065850152875953745448713899291791745798686937868789699492576013977096459954306637343800463333013068286566783524027256997004562865606141601274213025889584596416768632374925941016835809776062197373980681222674348100710214214260445794099387447271996369571420517816174948710130374066066852781617116109187606319414577290635749460230662620398446700911369557922085153103160306538851032496702940769438788778912063767610307712669768840122131229672070242832086685948920669739556993945591161041802650795466589355336599797676573236188253964616102112097199583462599277226222348251353773613378842950368465656480934050166141075518318778907233815345064797082566392045669629504349864096532462478559954146461788874135035822940315798547629877462654519612453483786537367626134804454909601574294769599097180960985082101759303671727661510849750767978069642725630091991790216945549909571899542997561175545576694063567535627591637409078842648223679188645376767946626506430654088951420874077378121118710311706065232459468562245232066748707181945270147841502873456522471254214299494142240139984998125854762253565575609181016035139713989956887907185359559191228793551687265929363113438895414501226410855067087203987580427586854177210166408168913273314248030290015984694919099369842782547330157848656688004338477617049007071389487526659871031896137503900733089195497829773599647999970983992775781756695932155879697444772258422922923310001807495431293543035640005069843417070984226028760910795854259140465048057844416283277164579522057330408688941641815080101104563773247767280963070993682439714868457754379902665276334748413692972995562579842867280573935560901556320532797093377781054580945701905199220315340854630937759850719793905484854584585244678270532377682530529349764698411614687609316204461951980936972032968969252746796984339024205059326804661136836762332905420403070941987422926252617261834058144231568638547446708029202686736987162905757846265682616817189996452373988489795700931215070437008069030139487266909551467209118083441431033409207514700408558507015036054513713111256713706044415990701225414395115143579172847368529838896747181285079987761742705967319936238373250537422711672688644579986267533818110841083011424311117049206144190082141084497898770475421065029551533200219303154175372155548370882430956764564358012806284801206242510098528153089541018986258154930382492474272556537670306102602746289790125068409559914729299793482107143194992721370194897147551839950682529335164506249847271688320733375014134551397965649111404986501606756985220807526295038506892821482404386018884609680604140679814220958467359636516023820163564392436462644194406487705376015871997213729760041409986295504253284721062485949313559313132141738824417722257780058391842487520918858679366018428352657712661633992284985988320963304599429251362393642739201285255709119782616561882820446841115146673205465232362159645960281339419286547874578430540715151466600303540603023909492976453425818849594009038462874689799065293720307573323904688986134862292270273820358793070020156490038609129038659174432384703754514867602633801441257566698241709691645455168126326397517204200661455880543758145870635527046360831813734726174900368747183349754143122217606513135096292683234845473836263693433488123999707676597941842280465621385736245401780647392448245043589322318038615784472846263811402588702864592043798106477204657386024156628886591419705071773957609082322379367434824143417847055931810588497550765408666133411085330031938822633660621376568972352886064945889127897546311683574339189041362596905458191330958250025229556445786870439365593600377394113432761330506647945221415138573329300676753337194225427326823596508160979285759201842666326782983049671613340672352405519073759291649232462141855946901888686183538285194774933011736285072328624866915700853340696295149692573174567605471266184770640253544002829944013550455743047232546029238501183946611535694676129620061989845320843529969536409724134152246769399498606195540391355415924193164123686242468582588838982073473083757597308797766879790605917684348186228162694372375724363848924215254935130932428669109453773843590492111308499724760140532093899575778697346577498885854355672328582594521994316044353445489566860719492195220323089768724623445192872747389870241912354480889610939119391871546373106135705079926788532489706658726155485671049463932820256192212134994074536678525220130272193620873690600104002259529845578580916315114551794527135040483104450789899771006231663240069684414306652293769292542185422276446971105412776072121528325714015946355471141062607541243361757687403675939566880715697426023114011674662499844518810920272165412225904606156262995139339921287379601212928402475170630363142707137103548475904592993470500514735499405305717776453639136610811023374021577472634357129268584656688545036385268316288379481490256249812727867343340912295600066444321535289687566402070882570756914563477857222097790373950211731641992771236838048536340675229556639960471516381489769179169890439857027742618871082473503190911168560948273456287847056019678454527195591036878312968801746994456380722691688525367518247667701595289476174820840536478591806023458113869491069169134442784344602942259851295026613780471104347754703601625428170852383582910661386256425867253862284512326250497165103373596497303868449930346554682184987382513260075237435549870680877018041265277731632943536174950804239534590676900848923003508136558293941415055576950001411382092299455979022755824180518444052512100348472431792591705274091739114517362229515307262069041075223760786884932572468997098662824889794152932081390724357184425807550279633603692160673607344274568452866177916789960459507629987817418634497156433081710899473568079420442781967270272855722279787048376886636465185240787060226688558765487627789671980456137777594490949396719270434084870725862575212404736212637924252821321428365205238358641186971534389775516580610973974211221364893562462662018258747039485822341485796420154157359767930725224754802378005280711730500175994092610498513587819465630783585057359766093972729115835857734743762154140398642531422976239238379024176848402679916956887066573271378595615284481471304353018912161798324106973450225282840514654035968155918544575433280321062705091063385941306993818557474869286264367619494809101451094849416852253714157137437468513861546954318043312100304455773042603724477161221380307304549436610627331895765758493158391128315933151326167790784380557951609166040229556232317679653267270872185263820847790771230560146325730875319467528835858615251094337541009627468630110087327576787066950996761933108238677362133168706932290594760078988275879387059237094084591867751381369110482829572896739510425102792849667048922017886976739717901922563879485407485780364632150628984713512495929809211049648624244156420560682439927320929694861831121791922538763851144992818412218005152097539790009508005015157502587657598935860968346097736652735036936630272605638260042726129631128326464101046670733859676221708136917348132876330437929003856643410849533395664054654533632645347611899350396106048597831011259833573818806186618120736571046789463115444801115251180164084877784909603878409917507731443328350590029387281757735002828520426661925127560196559841246778869734527815410702904413887214452638861536813694608151516698565119789977976605699873261601432106689354317240749300122105312678830119564087160237051646488268026193724950912020500080604438167559859438697195079666253839106010037799707498818482881577584951943913897501561200710122925508628215538369837369337311083061213641330625049230453082870841762442393315787776325374516355027064806713617715966372860262823558456684740571229098201772147560964353821889016649009304926225997367447895018302926547381112001130609569083586538978530006231419966725798333550911411260669793978244263807546406123658988234841386033852206360745808636001679274427426345612593819045035659053942779724656394299228920557181004802856361832653520833365463401693836586024739722529205639562916295779630159024629746175339748171624868374555648870556873382045825164733971460038145080402593138232538128458861987132268349144674302498567259861485621371582047388099178040107367635404940374511095255220325491489637860037741070821271798545701389563059368013999096474589152281685059121258859863207297008596352083972068320758245834704560722546609934146281942152244282371299615553433016746574233259470539039142148025196776507891280326146542514993527805664010102331583787320265220384686466923188522460666837961040594799475278149536170665083587247634875158014538889503107585416578983250153915508619167413253592069619640548617623926454450387841393318695952958840763551139157202054378475602644816613587310468384001865157269489052861945689069637682441301940365616221590273811822500411824165643257464518589710906546038574678779010888329225892327591348308583938005644365280825013178752198150149009364437135092338079350234104846974904106101193570790548214659671354543157556420856803488316167460451944010334812443126750690653778015973983872822799890421624533909278952287815921560282938105088834610937378055535796761362233442617343794647102008750796285484850425787167803170441147414556628935075277573430913862076160854858873205413023092201834813137974449643763622506025480756179479217416323116035709169737083408331450944599247803380174832844545376017000473209707947781966022968746423533292461382910788484558926477488709416946362774299385200930283985435231500614414119924526745580548254155899032428312961687058512826612123579950528787871402041687894036122796023180272422731645445495232069069344207319431581376579185292171726282032092434759285190778171176734450484415120997866077938464259964893025107415634745610951995089685616057207145011299139953734844936005721559226995886745450708188173687468454891637166892720790572596057676146554500072625948928306512812008293950613212789045375143248360255996268611286605166162433471392095790660367160679111962039239292676517746538003185085648285079928105856047895750680225990381971036874279431988621664046020991200113149542250169847376384975977978249529792625375812578029545071979163796505954271434251804754349322702154923936906055434784886038162575577855439392760854423590544319372304615403686644704664004628175936631140323783474664026546331210520464651100611117574755311782058267406891053343173321735008464928739798533126993268835209684085510344149082819181622528784860646367981085662054385105764497572463515968836528032118446656323927385268449656421594561262090222633617624361381324677583678735147384459293892125851104998156637856430935985978064499047189236403543385555538195292749071608780398559035030456076605367780150814355151393341713632346462886953504583288387124696898069924478241019459862213570257371695685487358152750168713183990247100423500084409943972365406740512327281189175965417801445365894064985612263907907472594001121102784708974846444676032051873625691951398452875968709943677861146931834427987154168188900341466715635817669923500791035304028385807657761180834043204143792504113515801567406078512652713314257274943003273297708494444608727211797322008349877647246015030932885823898578028376833890162739065815733816044949169130885927874432031661879380921916028600913749734496445299228313730398896488492698327896666610408293201655537743853359637794299641125020956848630823292061154160901602843171009466199889136131327055310609877740813094980126590825289171289300716576070670767519640414882505578212189037689761808187078451046284447980266716361270147499138841084322683803224538596053914188634090297864440525488211280514993766177801072212454867427876703374157430301827993895302971504688046657270913764528195262525678954816255779656937591705661944381943007132108107702130513496124633454818050875095746914146471284569532445163113976431955324426710421736563594081452980683711048839691961445136441009130759197456512775222512887506475309883875516947189919504623173516212943717130361362221244161399923258821259425359809496645239790809195016431627118954261921923030250628247563072545325158871775193524668855540324815198271826583426133036199906593134928168933837227793442770241979458176985384321839497894837759494884329055137965042928542893156428650923005854370689977466951550170455118123586220551357922495821538074451125261126799970080135332440787310097224592778225412086720856802170920875542267613170649827438032317964667514007176733064292026681452474728984381897661821721617917768569797759795683318402906701642914683794356763191666757724714504875157643477219356636413988405552126047245698948096541192486564672661469688763610442793379547797870102928427154695331136080754360966244913949418063673933074231708882513934363436213589590179056441835735998061699819838670278792264715874492802991584655846730254626390384984035098819856372518635280179170177890692912864413699102654024587839122987166074516052261528938223644729554559386173163143329882229056580901464713087721264590093079347134535792801689766311401636720327264998146362192841795521790045116529662506270891109032501166915024587327231351183585636985237838927909286486361356386298218687646757940239842137193569991376838977925165363828526609439987206946317091349316488341698708047481001485571246830544158700319325105012784401383561577002497464010970591903648732129387285832148387864607274122163057147055931724361324637945164771975962683150206104225386596999214819457837880949991269050690489955952003913466452467329307585360267711440926757273289412824849870663533962202767869924688029870746960809570121333229638402179350618339005972589862353762405527767608375322271396160261163826000624424265701340360000774178660853505972436399979083971242511309556228699925600432377125926688469183574866578954189046441814015886987739924997964676446530401696578178582226588109112947697585470572342847684236433197186432210568254433621024487423070672155547237944045489551755926861448599747638438015204303382157890575961129330297232904679159106851720499617252915534285874576591264309654568023821849368976951602396710855499925247270877793806450420056229003159195144164912180417828685830413282105469154082104019434297452752673356216228230608309807190485542305440159394875319382535045910803511926724857693436039855701515720970305993233894516160035449950450468253997196547452914530636995775049568131081274568129262449140845281900717199556387888941683950004698554799715126666969834428856659493275908406358379307665713615644226447282175222925968256447919731637632560201001021783906704594952698999640151123834832841765014780647450481274480985164291823450248492640927642587288661251892946639089446670493777520054982643169254790727449211428985211215692212000502058387529486083837968495358368112675750089524542785241271038023384510241617227521108530179134021898254176122682932103895726955254865978922595588823029321565203458303169913772521195385814371518637733926202011555350843218740818226782875774823087433016733761679665801352380677279010119319687930448678814215580846488223871482523925855699901303142823407852750739001521542248147334951000614122568433170243952518972706452316987965370991108427144084747249994904278811040676600221076483769695098828682762103694089829655157009835455600781241503669669217775553019260602887466000419698220934210698461622786576320692875624171914672407144511510577834391485801964830854984720490085588369775808795531327338171464231798127684301657015360078949283946840965465816189314889659589163545473894040243128923516349344772062417262783028772493715807958753764341843262650721807732551085325404597060441665657417878460763845708106348346313300420951463035692098981143999830543897573804568205564399189570907629297343995830753658099201836878574652408122587111035581959889162374620004490123116301733948616061545858742154228610204609035392584225782546468024687229188494163642287590199226950137680123032479221797267358452188262658816369592980926372843617921021792527505517877790387413874749860119843722777945825373027892546692505407685742820009123440421384691295590897194572322124041357342571914222072968851520416206451157169234318221274203072445924849995874024071584616335859990556890714669667311805952195361860814374331760349150820744755962810398932388482357075567086838016060996234771015241681774728453461545744649932367672230573067307561437699209267474285535669549627343298163215657544015995300104926382388903944597825232754663550040216931037683583616834861929091746418511969438067816037334526226474193909326588149256185795094904027097710880126189890677289872894573766219263118728357185427291341424733922528066102595792095106865232169855429129006402795335412682820480376933453851201518544530162953279548513999088986422187244854969801541313126066282638513209712745830049896142808281736817915659872819277844588772326920554547484537512749653560895670892722375843360838930776127065257242762024245180494722065504274827777523955660761768370129660626528437502815497289916939882159424725375603103531347028832565994285121348399364708845377607642058535324473942032242130417052806388991435046152989624579607766811114657387749897523353445221870823314709842216978700926944258016867826056919107905299064837337214903629635210249790212063544402505969129112097399811592173603306164856079010729080371376229965314766338057217913408844220983310418015129476200280488754327627869945787474384379020249229084829971131716372524476446848121256742355866522504947746460025605526092870624596680330522946029687061783993426356085473681756351610426781401857995652791722042178600325823686497447523795610861478603352070183264797382313257344100968299031085712754057018878245442354987214312646164699548225208041253104211254178894294419659747866500849603884327126044818416143162681023160392859710503046002791744871939417151109426523138694479675465382235759103852205949730605714771780270474862022042256847769242768490415074014822360505150559012962987200778694684904924770072746183218291094384822272092396452281560883220014521344816803213088020843008143426825372170527554329840090634656500626808545502206570652587987406730296010984233219637095019689806038742350383156238365483218265180633059474640830847207025734003840088294474372000721823601823387950662788499705650813540225623057963427922223260197276692296944973052578978613107686395217715964216556910913751047463571299827489650697278982436172167067059030502440980154839289212551281819699137438922755843649583863163337034364147605164839692601907377512772389464723397801620365067831687825676750663116612517844361402121299737747136038274577246951321721396855671336352238505727246979053580943079319324280036978381402934307492647493563009178198611195179745424407519431539142798440250628451595357152060724930104488677955672589330716345182925154774672601487168662832194202903271318249151892600621348322682584994118413396228307101435341140434180879038373560668494538719111325814690047905667837989020773824741457753141169971959253352970811365603823837366289200068864466385654931749471051704994962455397452730161718245564353518191238796912426706215157939769132435813961329475279335102399890325131476764818810937036516501082125537908273957069118814353122409218774221865905246455267165087768043632330956995424667414737437129111589294443866623049172783544858056757437812992948407314997888879791942911082312311218231123071807553781891371782273344521698381072946805703779286452429846829659915180661039334407316034330517728004282532887878647504165463926606056478252295517655970184515096010869034129819121249035957385463067791210511799747408525822480141992511417126436118656453017218291249679320275821101539308390441313982984253340393230343074927740771152390439385101897389337834918394880583712592183578903164913739112816284409946250992661046074898045065553945388495546930283670190296290549206325924301164947619474652881924644328629855806177534161433945623025613269674564246613667139200634671277600619854960268090832999879551600384810156006382215520524796177040408232593467801005902320057406861072304367915527108994270441042601082172144559673386421244577295963854623049376803622676641708989930843567597182178474407515971773208424934245972812666416021698107222733301607013116078808901766276545394361851177807401407705292851095412422432556242943795349354668951620692120056963809497965236508015517098213525168926477547921224637345734179860947781896063486510810377784205821874957058916685422800860265872002879743426316454898021834627107044412203474153006489259176808184935381226314162373416898717485120108238889466761647353989325863862038900667096866477222192151514985818427192366814267446371468767977891838956304042163126556341383784412981941204666392019595966295308594818938167489493289692793749671750571848607912093283291104648362748071827931086141643733767997197872370304796557557150380569087569521924118247313860348263946563368090622220546573316092580338700756248640171521470594472460574550272553907549941025091903191137496653959908338988767600933165562541051662594975478625130767682250884808844445238060137165744522990424105149901039615428189390171946202068673793249310272357674956422669373086734330683216498618260230524641669223011257375933204760621729314617023718371361867723083197389907848499537947884235878632884064818188790936630745512368348976727180357293767551086127626515556797728411346927520883116940761207638470689775035856788934945245415738440221856129434750592726203520527490197318584818832484073563466267513004278357317335291614513150725480426591284122632178976455677999770319583476280947615719673778524584382796207909387007740715208228948418404799423983728210771697603953413258691223565372398595830840734206560522134276249545098085405407959873437426700397790841762622543882384445802014127995542942282621987330705813212341653547859023632030443613920436538220428997156022765385216218158751476461341608787481444874477906164635922247364944636817112495587699825672634081085296007394263161431414209492104646168135829217062954431566794387457741132144968570278648866174835028470329137589250688980866595247766421348948229464043112219910048740056485999065666692573384851177060287561232308552348208619653107517687488408728312171686067227074076456616503675838513228099009134852942063119875921309048325914521144944522130611633213959966010387026567534480636282322736378366880359738335477828114448782378250978182539923553914877354186572997765097086260079078509604365577858863281065091402349819354348343115953253196891731799394228095680711148128983589864206901995118322588949341225705132128712331329813441158152571232549364855350974935893545779813941402489422360552923383383812238563162808852696742026900406740764232796249420176724011014400165454247852542459933491842616993259257959043291132528446679106659447191212402916560150229188029308604171730852482993430724434541763147749776841496647494653223071860867939324919800010371170060679335082191651420192426371365735926170850505071469300725898860076768539784831591301990170373989994244325811873229776671088192193224187064903495099649836482248298623377752316141822523604629591278271785391910910634186165429943677541188535656066452620009115358607718881816034914116392699745170483461983845180278287732443867274248801291424890267054354529915206666099648869530189960615806342358858557757691113759412719684757434026645524420933915539161409349142744391284479724099864153710711833273450949408101669622689563035463956210496907614710997539647150808336200721330041762630142560785962355118416558087396680940350250681380331248690806508484933317444770365446061155575990208019747079193803607472907229194778538233952051256937855887680981700554557679455202090626720269586097946745877652062724230268188427162728850626697199568980794964511285698759874550022881361209066632184231850234604139341586293654158417580568841743122377543361345569506533157199029653067671286282541530197819519714775830848148544004881640580383114498594295963268212322401872704134651118257554070785091654883932221411614566817187948719554667715283229161475164863989615964544038502135401198357707521016615328412862957415430679339683538836194542969343885322552246495699080450885993171292889415934001947317771797373983868393865643737634106580380222577840516202708704989663739686005378891866703964596677032346025751330600741507822235183563731656751711667920702519307240563357984188085536043947471108162073052794888303307186230627950040992952062266306288479332823589979093155316323625064276684025884337969561817542762540508914592391241897424810175713745506569080766172875870456016842468573705764114750814362604506416698581977957031947277835245842921106419179675494722743405235705971218034474605579601420630812679807289435730768688993092833701942775042119536050719663297643703558265169292798669871977065582278378213260824441685802252354557213421762206316822242002340131160711040151864854220782432600851632084328320383676995376260974306963116711610229636819886619673295150186793574153754199315851777683373970695943763325866470332592154688089273509200900263154242326658731790668814170889390367217923341849811797417500376467719989857181701238567438899859329404356944303935195446629715177243506028508839811599969021086581500779610758505261221049419765847834785966708060573629930425498118562716091570879964291679775844948557310883673998771840436086866143606286931493033067980768935368389607865900399581425190023752323555044628375513488412094260151315760298347366952462663876790353769437184685029583474462329297346956563158165502396324285275646091691688819348384127044479218904908640197845108256840975843795347334650663236735116975155670149551484098574750121374801333047126897353924099343371294057164293194375474240692230697059003123656402830240032381893590856280115666082811845496381313236061042668226528205358649554725248947338081210659684959024997198809748767224156243627685202905871329553653899592098139810497147725838808089135470970566298455110934145687158848143952820960326841489098516352419672684721743214420828950317327183670511358323675344861870059464142763506282674392427552790534650578191671236665543674511377594058048356868576053869109473310364899803710976918964741447617486929693982029238228443536847282074496410524130293565809100360822560804970762763057746999444857475237019453700253300060029313343714788748555875274090211114150948031785660401077002394192691499704425117606514283720311591526784402774161074828593540278529447579375241677205173614874125988381835431587336638367941822178291703054464007762479583883939401766484468454570897453084617139098957236981653586119178401467817821179094112013902433902717505896441005705890106588335847239460513010299339437274207893612471425433824029146520035335653296458531488506991367631561848611573057416806984230958532338264471798248013715896061027664347702582312365736104514067182643066221382727059724018458085598927933372573347168576444232179235226437353803469571199208349374078960021199454318379389841808967017519490490055361068475655924834991182531318028886490320544398025104332851393277302816243826086490901297203555881703450076313704291943715132453069698369773086175661462956710920596588744203452344757173571284718374193918257873379864993440700084197952431575192366178764219310713796293057944897399675468649232384784884243068799959046492503588311741250049678363215539887977576139593490297663882221508702816354839906595346774701297184343702891824618156078189213297869292307357003944132407736208597544320191380929776114863156068896084590787780650249036668680661836878600822092766685946437828637568413493033000449413235374170878591288850730009154763221150160598124894770556723757513649355888595814684173874274777864618988812851667831825910526689870371787024329000442266029429280594078144427281085686967908779123616682602701231601267042573260084229546739397911215957469080542267480955946920197656377726453855949567086109826017953228533860255489106020438385453141592333705298904236497005818444568643683252337268500089825531249687959290097806438511974552793841767477874853466372500781310852468628393969571770126618276261231720387904626101631422017087233283909060100720281365611328267111452163809816828244340081212719203833606851006851249035211734439968184007145024722383226086016684241841745399573098039412991839717561714039288342969027182358962858840079947369556787832738024638184508923116954008817653609209271085186120110187976335240003108886769938733962523429943818241489905508921331488601797331511671885284833150803631516415194613282824580301154476791574930211453499388546397332323999002869812693070051862543449462785274799247038063185309394150796757688560342623604395366004710286793299229340549538614351126467773497287687444651898753156488994637312137850821986210082001222801145245556677335528523293324580500638364525720742078292577203009258521005368161535428508485372311611449485603747219846782518505416961827689177941080667774809881075628422203754369194881504419843881569766133727421125665231351721143778874959744844052090135727280308782994484104074586103037752560246865228891573846441855882451225589006699398555494701649822718895233690016647574314713540457503464917478429011983986551230951511532560327708172792283101240018769146453571887137121308622244192757726817045837790434937846907632117255296228392725125148270908501441420528608184379343043500410036343966645735679973853268298112628854063669103241092431622248081963146167240539656982089297203540655890488122487727810973276898925843988663249572571991785988897312408514455769448095850599666317891229955023026746154206996823041206134156134608916274876598590670143030463432733519828746771023391860943190354748933162511005925321303697887244104850026209340325360677297237311266317561842948881082465944769606923254936703844095275903068692842143907660378737585085473276478099599439449508882457708833004226613920918036635763081274305899049732232239194480511778260298535837518804933485476916492807818799467822986773880985165315898415036642412721340621588419752356833641004676745783739817735817599636026690834688383391476431210289049482748593287624508010109077396442929900153012807714852794267531425437409108382932514213847554565551733865000237758173868531521283586108223422919226271839899676224174083647707898301130629693614402838370038447818362631802272172370461463813472138168705293826990779353601787145151213723631924532051922598120352222343757323449817534134787852222387522815075824531696733325765245383890295287602868229515300262238467209859218610452518209590607195200231442535245259486285064577688584411175305585153061394208261296812812932767572621768031135047871281508984283791933118613563900439775168590343889670783401585710407161347690549377405905946539015202373575578156196835208873579783564703747650320901570565706001172916343515503100841372968559940177062293905266279814217177842900387218005760022248714616451818957780094482787562509562427857764866801970735706761275420729503148602450359078040081404631481203960388040726457628815475930413458788621882515481118540891183025786967414128041162490294141032114394740709167223405711946519765237361451611408133487827306479060422808192061641744391212000765181437457382882946623240984850800504098007917645193419507890656408905426984709606827733066081221892693414680500007537655794467379873397565661979431185539350902181432293244948239406116271679918459568316444953808695508366062375362970570456400778541819975031370175685930930868919811861144624519277018211859984320688823306344805589198060569937909307240190696197762781761975536938094701347176493561260293121464002780373270588198775825966808061942934488264010118957359795696441153147768637088443192252094191901423444092242702575028448013770913966564284543772496095926650246034933315002007470486262595029708509042915081163093043006022739582624439252786311362715944725352543465009997049706093239592486242599001544145363887755590836671528932248863113094210522380773266131364318575864844435646869877416195134168591234156955780493307757519362832413498646983122330197075889843916378627372024233693911557415940366340574043753026857171682943277859612755535234050622383088080918072818039926773586280212647468717383853945985707757924334712787024290977070741463184438680914893720328046388899273334237221101538637955964186222942695438096583194163280144551018961579050963643866267889874002697949463929958806392541526068823649609433816778467628407983612205349119055261049555871948005769682255851342966397096398091915599402130623786085632540043292947090523479063575451124607323708874118432836600945616393521831620863767301729911491816639993026635466997461605569939984423644394822662417000336617345545197653534947426292629425341710604715280200834735665386158049491239554559141089677731531645237753342241798343190269039631375432066738888089877414517126315653900631762429458577084852615625832829907863483304849075348661951249237398883428117244675348659140566113095944858522380435823211888180756275937064643361556717811574421008359614611344674828071949400636705976546871912351026979616905544500898404950334860602286670050044369380499945264931730690087194308060028719380856935360330261374421982140596245308783226436172775529546456282363675806380736021848706158973296311627722281661633543061869071072341815483575919564096762707894861922167528931732488021409589094980208935513078024735525088868636632328760949871783617585927325213038512887682865835619913711048938839209023990982576126972480162600562219845144383714288337964087982969180342438537628635346830277124515703566317026518300042294104377322378663290961031038737442668403487703670339202934915605636524452185663722192352983011268106285677014447532620961756518643245574437569608872882855072280365341460607097689241517457095229577168161278417010881544238890303603596077117831129230460943663151479368024903034520959837037854444839583992358569758262432133518406764099964786877271886928438270279473518907054416468072001523552292297532532695810227314593161671724636118228004414804553372024790835925436605461282490044797004475134605568883493199261845712656682101910810396138170214700585802331093366847582917369823785816007662533822650704205268098402743651853128713763331903067550901994378613686485342826125838839909794752961418512621083679254467573446760949827040957991089053028806388768635026447502950536442260647545233478252708876064743301116237097677588155002979134551217650074971388537275189892863288370030520057259785350474712971698605774165056057623725255145065957324820961843933654117963894105951528228224031976259150514014601921532314803713757840997691699732872000703739080565459626620776331207297944402192252987237558118575595131116178954178888535461659727141417804836031357397278403640305221309959698495419116853034585920437322665938051908533570720772604519389535125385549152902675349841219019044999090739122839610328822451266857414037018214218703492825891573328866364159952289237691258002861382580834979268269041977562720881368215493429440067427731752356274035193644440211145009952749177417779538904545865171994115268003780125627587573695570412639810036539746131534922836738855503820948587463350567225093833882853099913738830148080362487853635371674253316195474787140651457261305906673617979037623820690748863568433852925926781167634665402984420685753000403000239726099693718994572482510613981072199414622091171535414746499910962892045440203358308660531680132067324038293675010174374223017053577143772653988011013857499335559654886830443438408407844754500893650891217586189160284271095910940482019577651598306731563114737305900576731391139692018178320861719150204220311937304688202588207065696184209723861540222544547419787415708676938566749522289905157303660086820345737362555246346187448815751987361999993077202117588222403852195988670626711576395567702439585837382567578213784506304133474195513482362133623562732718468823141953005285708124275801841750984552222039708101759956707219579160226810801271439327285613193632841198794929695736725688484832277700881346690383566915491540191701021389621046432789439003052584028840626885769864903212296015088536636456815955829281996626113639582346182215160033678041839113736006620482216400795974341462693208165133844407659928254727802119915375421017180437648779857892200125845817595543878730903007588891286435619435544240772765031093752334041049671561506563914689053167409433306089204682855704460349851657351426248649955735688334233710643811015453077299128650457525775559011667346032318620184624782979845875631141356947425107457416029597496143770170287068387216192069442290258484704837710685837778448205954189573560370532679556838652703696096980695601904860862439711031573189813308295181605605550955437575013643650227420831077315704113116789732299298230115941927357537948362076714526054282443466083937017836594280082328772976393937785591166999687277644942003957552959648328620584626631454204277962279253490147890449745126799756641398650386733140178804187218087392491151114583731668187652849504880621547095436445383305574869714144412566457012555641942611577757023733386293783352682410087971433786370908646276380882802119326037709939562486248512269617448650437062280465067409288826974579773025152448039962380808996435908639647067971747090660793807470690585276682962307020075580261286629709251259800545850906473413002146716937744525955494364045703743184244750449496931929741451444496546415844664842788896537464130541550474914425431916625040485769404295492686124720294021214406082574267948159443381912777023124092053740546455263187525480898479979536288870482689782919901405813753020940055922796786397692471285522795847771568160430484713388357860247177869312115567108415421087791876253795220150308143811428573304027868280559457886454910220837923487467237473383585745902694622314109203248690375113392418935143207423807961728326076466761989266641506575438391914427166005187855813564593856460425415813679570475073101385118336826985050055191286113425801572167162172283844839929800141419681164279173500765840212014712122719091959549184869135401705058190060866884561448504233517291622648276171154250065571346534193088978655524249910772065096775316929596251177912212167294485158628124280664723140113140645271628013277487443442833778838065832509325997697994733626576676384604621852787095932181926405000491542523182554192577509116603375162104708058097856789963911486603094641952775936648297845130794090977713798274243676166161095888719123843371500965011789175347808100464033937063701433391607441950881667986486214805204708711673988800923308609842708207098121006211744982884369917723483424244393140351899647006658233694135093284274184362637002785419620362570463076139132230173931518062014993390612746056605110851209543228800704202456695063154150274987811940047942771364266063850239690137848218676558418709333913158361223956018126168888141933978438023201798855878588617481955156142817225743899169098871671767888355485665005371307338479660836575098048873915170466145776973189762064664596584393160878368927468145414307898415315262787614598809670433004634910586964129254159943864058764479157909935399221330375411188399242482951801765962022574578838301436066015422527774258591121493442077063985604933429457996924096103024875770035873729208318437721152521677811396096299992151595988600613422954574227181604088015832394814213243807972354018900695264305158077864565553332042604984764865093726018314888064187059522454848387472347232390204219818847617293594726870655656829869990644312320909681219595298563779662552512810829486066159820160922948957814772664749556721503001722981147629170981055503839879386119684690291646245877576357273315057616925133883542309893642283368673591543296081082835508658534601103840981529350229612978124878710339412678591982256763763218781918784067971890818558298131697991350069909874708840423823462912144391279855513707516826183476771347933495585342331085978831145142771033493490298884711782496285854736117567631767182357264789949021020295807782109636686971498413088435710016576251121548539470676602620678463812308138787122975989135021350930676056369807516518632124486739746906980472960849988188022211316215005688157455415845482134427908635003161194213546812895489015433583836930436767979017374817573737342424675919772875301392541058359416256738356083251658139405399741739701863162780865038037488617669518921415602925840735317650874530655623372532512508541715595893162378571187813198333188699503983323077657017523737981214147471401375986419368911372474059252259052034749926080466463009569714154066750809670778706632959112289568698660196256227532824147834002511675199264370576834631755593454744304953075215571508456063380349589794654063407341985428391194263995306473192642680207377472503591829578720013708271411885002691626851388063770398395264909666753896161363619211097056398513350920787168532079811510585853893263307020519560723008315774415077482378834471583636668629850093263637769569159281420787400132976140435906322712328955070730513484757885296145315369550654116737362122815310188680870769974485540081870494776239804245579582972449364017143969011357832285722916824502597087692140872219355742834992282753486735825621159215208823642091231700680836069657948088415347584679566938833397464189297870087051246753411706713370489197861755284868460614622303814080554534852027092912915299374212640033876169885942435394063907278103378388350234790599220766230080534749059763807656927529395080745101303561992438509616012883806168601177181959739202164519585927158936993420550144400943562234935246647467834221515342146203253702093484396790303400960763011892857177732286608682500543669120904332461446925089617528265385461814182476721837007349040601904692892350519530217332494676814053019313011407260588612884321276109312286492957128831638453360026351606519845891756271653260802726663165246993772108817956025251385097740672133983226393621211613513388382113932500097614685671782732061618442524823154415918519686240288435316956702738595563426549071601935312309028848913630883921497205153717389500160302594200167039560782451191151733780194911498728721586725901701727593250803411891273339835071151816858995408925223532227399713696253894278318501623888347614569688316469906489532171578084956180102026792167509194435249320903817524217605382373430135935882665948873850049441754297538922276923008669594775172250443456452588352960638930044551030204231297051974655101295236247617828706651027084489273931234173655728381942701221125931612025907374656525321732652287696571441390683480412723302009795533774847337056480034840376714033983352242839841768812576852792645147593131082577312940259689062336126354348325512777151998519834152156761469162816251243686860879252290881784461291670503400162675834639192670542448731106281870953193514789377368075379547634560142081895173137570972635672717505220617726864892503238113282971075306312805320427273297011960979296535032178547034619607874817227830391954100088652521705359817274224115121658875152302816955909574181533690091367875733534701155258791291254719040270337838521675418873051932106426461072474756282003561059764502265345460931721267111107640718722481742350945434744372944048145356079056498418936661931110972557308873788200412837655897027160604129367924592871169972165023930841569932409426729899585715582848914205124641358145678749400525092773492511139234492546246528686625730939404772088765365206609781450866355043356829796924086817234599407876870239866169260346559342886860049246973794174041942316754791928173187023145723152219502998118387741865969955533793122317824444241484367870345814996119677717331210375176937753218517604756452426168585152867802744127325214090404949237477913179190442137850521053893936626764393568721866013963398721297460956510891903427079203183621220606351601139379392322731527362636172594117199680104988966407353560185516219140387985310434534956864907564226303027577942276375134494639441238978938187061716313455809870707726103402536607227562603616341615422267389653495461603404211943004040120285284523589844025236488322604724856249535490072169645399763641639263128802901616397451883225689479971506331717960350503644778147294623212917113468946296578846623237944760742962912334692745752269097608278291400512094596021203940911075694535487472220958840436931423876086588557694761085146877123294024212110389156974500124741396189490240690851912954878974797962676907817274629308986822231949515193193114580085531181237889830236541531712118951125351120860869635346955028279449566348421357088031453653216141372791190487204051237592991191509974511904460507564943486655343610726889059157911938106068889494654159866412113036950292775096431281583301879569042182161862260789451794947383178822273258177554907915272417604011946951548028978170425397818568796412130265062429814882448672352904626194751903202540876128108367929508177309748156800814354410573419677943287107981189990030118762131435309487487946375071730949050712557111548940759007193822146678680587179838999531460179422309543262161517938489518001484766363990022326409289952043838322975870359173061914059619096529640387622870384234629174732847713643777590129368309295515975639767408476290903525057205738390895659781450102567093796050579456940728457054041588801766917679175620431481534500171761517107488481444807315022049296596559989703920844929510908385613263736394441171165741533807702803808644196554025833101573220760945649231222284600757513455515527145699482393310563655328476606478258379059852833223445316183773411034428895690861441052643601521785422533399434974992952220839806118323520760235695094994906503898631161000490168637489959825480931219167344647534471857866483651338554614929510656255502829425859961893096249557755824665668111441356401477903461866014075227509086162520224576260272739615726742442939402950073975733988607837618181076387847944349844297669623713237706131367108338797397493515646281163432397219327938359521495130607669805389632493894193343250534244441074329515227887865695021673314323003908619648823395375977661573592109451733440083431599125688879135817898848051098629813592226120428296166867015938826474359932939589115837243383172423259839120229817036103159536746963864428435961363085524212148953447767187038311797189100231689283231008641221118352524963781219271065511445454824229417238520004859006842415415470917610381733852615219086478272419341266080425530955807269602671342821547371301072955519765794082665244690796164010964245365815084481208350650311290730984428100510943226264526903370835093603722157620251234636842692183578680934693103198307703425379560011579104878922301048906885159913089553518457203491357094960210878126882060414479287986504313342473400705773818414015231915467953336288294864968252264178230682882870143717789809048372479831089663544505986829427283047903287219610238415514603542014170296350513190087812775388409754727380074458464467287297670015540903531663266867084066449564088161940841092418948628434206017555234557605143250171904515636925943044807254890624439581020579855775929812537173252107116235614421343646423936310613141747911050428765071050575048478246940480556585341884353763446083788371951535314902367896880524361953835935313613247503651098757224671528540333795448227995492895030010106495898868518815935299994039900313648785562208926895946188982357480707305088246814245481997553181503263632392684312466050432685584384248780865174578351156533187221855148522269574200406346435857289707549103299330134654126215341087622512048581256343935567476666250420954003652579587621404088970037199574006807179415621186041700746736316091360510527229183057833506785842311246983879215220225470538362465201711700678195213951240474457826838252000098481456577491702136224131225047661820008932380959993967124570186490935235059488936848137581915356473446384123842050107888129870079102919127892010318281947192560699699451130093033520578793081576552782504164217045590971722768611060969824923380721544716528241687924971646686248700248016260117507380936564223523901771292968752201731285712897329434374132779596147046210056551243873497299761641207341587383991797989253038572255839092020043880054580923745084629567678171408437305595083232913613671227224600177544741388632088182946656166172375213902383747884802546752930841519638494197573332139495247327944700578258861580850670713592015608079995385362736215006419851841510608702262331438572361835452488804849805571835111962208548463228911329951555738245240739143217149115428941280197249644337155081541622207442340060898211273233560011425654424910470461043501011941370648784291203140377024648252566635356351810475772962267425702872365715591475699669622732880372358637121678441963466378156409325707370578454502686639991079852533487709989700078301680109667383326189499247390716484197221807492440125886371162137221945659004027346727104313520149068853685507826241236254558572991467600346845761697545441590159790613723875536796515861538127846093574683653587727093861513677337408201938025448040819784510340095283288507517213930138910525424185462834687245898293668331937765267077056005875596611993373846876001114053212252788373306131110029001905431131994389645210978988044176634788134333669070615880944546937520580233860901612010473101240128845570693254599875051665610727397004784057726068156375545267915956118326432022534923976528859347055788459489617862556895202432536618663318590478316394833335327522606198740478618687796909573885764746742087394771826478185848131713022743294609414248672318167112246562483695846190272647360174855941067004100793713088875617836167740080753583899196674733917953576213521093207652061278444195371610370879944145709570171986956590116609379427149962202766863790931861123594568388533065649674396263624189264698408458933976747617198777834340678669221137106760689309391922809681912861510448224784356290396763112452002364944548845669704766249934195184293620918473127415330243131183073119588439155372322328882813747264107038332805031286434335937263661945898341158889995083384001007507529409788136324659568570814440810980491228571548619529300863321664953288003777272611460389748660351883621236148117102381549716143225128724932698530916495467065422250992447357441447303785454956805257773419779638639088292967624510244086851235066290951104031611407241032656730723695552653735891253987003131209355850191904921330258733701873105243819869147544225262253518289539618007612515312837932941598286443763703496160046204168289028077287253139236912830286586839440767131369882772357522656559263430498210356162543309090760086563701929959540864432230410888845848420300467427832168762515252110480867862603799192295297519249240321773852610704458532891435728172605545275226922909203687103524212128040533088589038601448158221472495985210534546929993578767889122167847702668380589441942704826953918872483541615817333577913028224540712885892501101236738148045789361436377720212343295385989119721183786311444548923967925982420958022180279301202852810884098959391598669508789899462670305943834732558961912827596325448794296248599522481580646025167045753779730348845819619215841280969197763863819609670047455391323614566220530550719384871797604419015443443100533037839645663141658677199315614359473826949502954649158752673077726097109915575674674236774879176690193052084200937237089825961605210524599968515168937946301348651947311988822274944567920106303955983610934860437031462632980630692189874922131460657037742442749906660823301984657084133182452593633272505029843233708120480917324911076034035305889036049730216154713055279868574713293361265150964699076296529056254694514934309897455598179198998875316319390231228385166753544392600040181906826332824135723401357108250353244481048325512033292813337494368671995128396354322410136216753911931914768720477271582104861434725321873041869875820400485921079778262367740133384714167604180613774416713416413778658453993057845532211983746282082445190568560303274064187614739121651538810050456972639950276987776131473112441616391068736805149992054632843461792523765932923300703223668280323890346184099386810922408453054547396816839933206210786153128592996527978640609959690607443968631098360909541926645037499326317239176927968549493498413934122183966569463702804959369817874289185724840936338651567515464437575493293639064836364810774587352403722363120622218172934424953668455489520218970509693952162042423924628063766079669506767539940148376710825786347567306187783760278601657392649751762894777961222462762856334476089753145248100859813772351354641589695106683003596843501140960367482928074307636770626384610484976359605569652343666038246273318331033324077831462077255096690447199805245848831267733862886628232412991493959428967098695359079646537144740267503539527774760640380875297770924202287481777320026877158920964999043315803917928301240279918087719556054749273340318740307727035210485391847931019957414981612678407585868070734156940681197320916690975466500618899616642025660028672663044663958164072469397679260519988209207643721663881117610955169113087616388985022219771253688474912097574050658455110824221268195432170274653547682812162768977296729386943830556113280378161041695738608911281261975740350487444899907125247761174439128291100567782292137943536453803890214193963042414090703619624496820178182967555939662608134220677499992700636280380240809903649251381949166898428508395231422847310600504708633775103495541093223042903879576705847193472969716521699626956560861634524237373917090309966231102071927109180107092309672283720044758359283852728739904536116432809066604025235182551675524833401349571039701951088291718497903744494303342490805685418855900100077767303342528275731698472925848032489616911197496394860206889017283524697911135309597355626935417935456603840274588433298659928966614312382083274055298637551504125299458288327524091589827042166616439125403081391863238726410419526787605798329592148912016761825903356850986342783873952736911856899536646170184198065352389432711626286834889428403302574056295755514641554158009582891712862965527106409463906671618265361126996468449901628139662370213776820601914040579762225128443314576198425293806730549494383114618215955667382465530315762910865176709508127804782063323294622641675153580720103263427407983674447758941985398435083020367408694573262268707754190910735368486837939989755133593444511804568340562407275452244770627787731915793432090626374407430412263616650293068483648134808437253121988997602627203035303841282423025401877646919651003926185486524717998096002791888448976277878169189316068487012435635094724156794259484846634946591153801625542515818247192463133682250053144078622877759560119397012712382297862696682069133050992896801907087645812300442007423745657964236144712546038530414379738737438481315231417882251707185748864272365169840472010282969608939291749569956825660902106783645979075155793929243993524929654423322917677169134372127046219779491931295008281292714012616288073320318075761488579365242231155318530404124146202536918442798448393381064313959682891296095606856257650051660669024402951069127095837988988695354518801985506797003299376599403719013895229907116097239535858936272791144607848546891331948753867919747566045617506941741693253479553768997422575166767181807768516658856114362009050019663817100808094560830850079521876926137179814255640434809595716885326558166332349237381119997299603143252356182423663851905798779257757028813231428496345464378252839183184585065850221413826326272790912752043444380957265786878465268044313699347686405920159087981882647248450196173489650010981546574049732960737823108388496017917108852545965089140510941557724646208704199810639629169420950981761560703373861492828721474259376606550333365456452207188688548274379556355659109520619023639988391339951370818381333923939667098917593572552019030417328543219159036612632238881359869091660767127054957836534131273157885404617290290642230300385359197804016891498995373434903979992266787146295067792540859120883901969569866421239124650636321181756735909045161594139488854245975291548846936674757761599163213054146165852717139907967061300271575692072519683207832143267008518613949068547636252797180131180170029297921844473746248100597637877331974948895279066034349279175146589900018312366805545228307267279875694191369458653400817185003388618792993216907145764053345414642527505139141546830167727170479754594628267908230659780362707982060036538304015697254753277060161469408920171129030913309606344743048354674122175838983192833739867795069649540741029683927282119370384029199580762953935903511430168033946232409910259272613455747704951460542588969121674802459448391520212888255363355729107440866140032650507558859570088839384540370599559876265913382518118028685453893081023226530956275311840004789265561946818526555435740551204673989180468296043730936104044222455132833259335969875986672024737673688646947478086906957744284738611770687095999367348966100171067566665603730802473283606800517470082461737131195283355755317973280348398064081342726345420981578015474451434698177761494312164351512886186914949282777966054150319508470859088199163083388729448598948460745704908976932787950098834209097462586979656514959991207077016776139702973487913669283087870907835386856858169923370752876062971032081133165124722864515063521073174862432731642162903552391703871845416063170756273849864114009840061673027274171070006930381226177183944333930491989564165332773940528119891506102214336591173272631575712069084845535304591794865473966059353888930979271274279111051651968190117145424184526644183587567460802271945325650906993545032243469515117630666828115652312194050717122862229955256287811752378575039998434866528847899922796617683497834057535287967237139805717980468492208018090972401197411879826414395098429972210148864869699273704264705735487247300498736641105644675893766708870007128866555328799885071059334943544827088018710688419047455610455796108301522030012296080292961478996263842844829006120186539519016317054281501902452122580268088369363927170539021661788809861897283249660113577181335840816207398112601055994110270377258982887761772033441169285094475839276273668144914330764959425185750754648874541869899514698101580784556084074027028548234823506436325730637123238746210246746911635216000711154517656703817506014739049472291575185204802347578034508486393554595434316438653723250044160418248360029814174027146779976581476503335114811869661885294191002603981614373935033230573570399152568371375480892225504349754266332483270600170070724221732706675066216366412475536317192497387376449320606855734182420347805337291818265345586567181996592343058650376193479066406095837484540506786376131667888219505284192178543749784082779012881502041365180421147921655195880522999633389428876184591901871786127764808771207642939087341657230214408998115169337141773000834568045950758226325256032226253271223607238579248732278461227978123043044987102660193911390271888785015447099753061034838086719823573630191529118370144438620938968924718094033655371454443174441550997169338507781324849160929902241398845794734074799382681314073477363692734906309994151755580056481892021543281132874087292933155174433356241139856728093702326372689020240974240738856186826952791308722822005056772465784735288875040453277441982575114253814591006117611055968624548657276006098837047229636476921619528740878399374901748897831220152540868476167304833159949665482182962232763280841373940254491483532677684585781845111525663217543988629923107730840599319900457926208030439875294629767951088655885447033186374932324100592698027688971825701832504778937992593277048010484085781461773291188419635592493924706121909221665082818484998546936810024448216682882772954549851128586224711467033178503276687645639344844467784031119167981689555187642407281496848899159043551265558430620828556185238894516418426128818489934905385838498518367562766876248623487001543800921478373521010722656345372737909370862371435797146329103573893234196734605523747460680988579734127215117902588074395521568153996091052588307373920157333775972494915713548817123098926567400442188690943785904732035572158486207119667845691067671722632542299576269243600002300685638597780093630004973292879912665774158226716724494826027408980386894290518446018238832415020838856000177948098868524977531898825068949412655632623652504903951754652638817911373059861474061687703105762308439651743307498504575849203244743729798042001015834718318789918943063398034061540134566990514440484931091679825195741672865623380537463717737989022355114084299456492189636083201502350552016001309912217951679286177527604083284700812175154172606029259318976626292754109862101589922236991266487417821498086816772190484447279727612293411499848061901162538147773037533685569481852337221962638417586325586028181914923229973780092040836287486695443120863741528791636195363248615270635544295808077912110915518485354671704892235515210817446418818857281454782555803705216854781394485493040136718721043387927596922063413845667510446953054133697201867418761733801579999514475291780185695158446176838507457250948477744265127554326874801366882266219116565141625063885305491391687306491007048059935423107195483126760499173767941787335565460081642035189914133864259743936457280259240423685713822509447844728681332502477856953706938418193443827404836365831528850162513462489829948376153191934251898449210929157914086392164367769420969333751596955702258169679921794916233190102594393703663456022583267256643755043625537360324587921902227547550208199994074494791722026591594298651442417881067107917105090505672264394421566179808628480128819253654207197194361756904896880289879753959189074528045620551936850883350175803178072231704254754214185786316944334661106385019481426254946460873479597905864465957884841574108759804253457014431626272537456007929348188135353988985400771237438595160940821345318214873653023179415691463531675849376309641701372154098812071002035044299423434652913313724082100684367478165435321948454306455133884176826275614734776706518663303318056720256558013778890656058742423055301462906073373690279875205077930481237132975202476028754809465087716532716696733586547360490311770429078637739242255476121991491027692314349626851011828016869198396857722894479833783960963742009065589407059305382676261966670058900152233117022644820615622135972468199528958085628429272293111072206713086256674740591450110624987832784027577629247454575515945518480093224023599912744590782623456584597462379465825691456534375667826077705792347034236433020385409785657098560479224550203163397672112148972535408646387558659594887783470638275605238901316348971340822286408956367761897964389049063496109902586950370439847888051081647888643782735700275199621776794526414066732056752695434172397384654339312657839654675424892489830013651003676147257567028905122663562773889525403247949538585585004099097502233148579325816913334325063009340273663529819084156855340819076260361674801861024994740690939642366459857350019367518094510082617606627967656303352962842518390784868117870106221053899222969188507050909024491507514475540144948334011036409712679368093287193873211559580144468855278523395618194939845129057537892927987803252169845497593617837617639559898963671902503626786389248418059387839703743741771534569852314711887708217920678772643249257829838995644096364022546021655194155558118918180207325542785061252570583787823824796988467859108510851496788910360747695036983429074710231581590549200510684271385724138159194298100117743619895283430169515874021281166316921093573463049913329224945621013044138092577327337958690482166053612016588909635249066499009669354299688661866140024888663411549401888988226629769031431561562511096660395394912348237013541381396707398266867394211395929989879411004726971843044500099948803337282108395207678277623641577459002589073355136113593421534221888273140054354064636000726825181505435209901927868844687270105977921074031056637431863706132444143883770398863937342668762649895535396871666694650284974189014884492601725730248266548013577590735886854197851505955840212610409976787277795122755558098696948432476432895385175999250324056482599170307139052456003246500298215808950781293807786056986217260455585280143873659619473571097126578870091674045246224162442596259272223918624183693852371084430091550260448863289607298233401053871632042142462232024807220607590326986316462422701859420775213680354342344293535501386561103365102841083729786610654115057658228515516834035333684816455871063768468523567039933199463880316044997109777844615328366285655420212409990347508624085471366835459106701418891442418561592733049817226546929597612169260023767676191210195921701046247758995834105911513700336779664076948273529758070363690565377738427919514389900646770695332669326366350793694222486743637321064406570304324816983674103968858622610578261451660660860290030612157127656528989301570062078852079691903270240011218516034806481943366220135839394985716012625025338866508590994792498605134139410368113720989049302741963627242096261371705292084426152044107447717965754267112330754827077993869340759133576039849092615860019964009429675467912442683131013105607198397739154044263829872173462032383805181137544361935371937547266198074543849608037885403910975964638543786297329618141110238745652371083303159647850276192517811902540133550547358612956554447638765788760007691044602799238117185163261400587808594105004863458476852414540403027320741648600394635711352197011776092430725095719191546761595690458261589777870319157616552502680095993904955560558008773010233599183807092371693549954922294304023751960511679954812979699885636596199002944356970296953064447733503048770585563981117408950646070757411074422754731357098995357530036758876162988819177162787490102381160314005502072338205841827121661213076477612206358007086364339901598385577786076084884351136346427343546055707319079478947129237292168173169362426054318674869933734941662996248955046585437325666427831817242080790398518499226058843717867053518057916016807483021009823447878585014404287232591651261236456413041043617623451024077402960842570801596296180941873024901338285156992140952349461027980795346551418766302052202244828201059167403476673667992550919805309187831235839681260729619759485207354197246468720052394246642827235888756556318854036118082618700298190036975908437838182877427669655839569224524682224661203513399222152664014758305196831923595832909797383966260544970386312484697639142246536712702032349675017984348634792445141115825768485823686379702274686780859335335727153386243978549187856717047742588409950971650735859992009552375050153731574758650596710147295663883353544565799609319484244075009523824631521634119698813404158414324993257556365594131428596067573207846990922746059754279408973705678530750191192446416458962142202458312753891162015319693627509670960149362923442658659193020952889016332681470554973560694957394965175230429489024879900377219830272498142735384800879264245115492953850331555493167409336506618696452436651443700338657593947731434422872665852676209716018233964724255038361070652464966847081681920933577755853271798582457236144141074942919252115879753100213855808836063284588763442444580731039672518680496099341115935241651628541369649099386184341863035162069645068077006975405755666170484470040415222894695867315046365451530158363559154426657995332426351402376392723132596514408929807183025864623148312028478101276991851837348391682334673099750956181446097534734961792702254235475047428137708036092660652931008153956926320187800537133954925221344147265027725929925687424926167076855542632111373127853708794484919826184796845140291534826311829718214920029557550595742086073227425842378208551700615919284331099643683493413768067557239563580689446228391496646662286000729140477334898249119015008981975205197036439085202258726924738074524200807405556014384034046136883569483130359590003588051473426607873044463087617185246071069288331701615094333216792708053169316024216231994187032688177147985236248510916685335515068321072305287849645209038507479081412291064336075897348680743654264980354791602996954578107054564074391356965017094647933402797112177140342467853667713914012010707909292647560272761919105678051722680499375345627604517027184443812907112360041657220489459119540431421796199743100549416157700026947167331882489307655642299410828142759091919967333163416505704459104819048963101141195021809885969268714942207181931223347678990207406800766096066514919541776123242573238940976730016578697255714421249560022234274378972914381432433672709032621034480146889535257991838104477564223019459702591806441427747032701125922927754806511988370995047085171630391956197519533547820684106609326568192144369289722914873406991830106257548381637371125328020809175166708680422443600553051862952374430498775565355523567047059627944645973542217961714262935349187740175114286245821350893828109373983361606707838435648866400602374572463078625948777216622052536244953032928860521266343763705308382786475882621879418050651208241629876829794034339686121565602389747317051204444631773032889152291948259010460891614518813847131187711040548822416478365974391621394979943535182075456643613699711298867311416582065173284908124307552054225947678638558087800434138183149767458660878131168974464478986844575941040108867525833036112336964553661670211526297374686884281971772568023765062312050481695269482059125914898185675731741780385876604011432039312096513211427438578452293793798332326944139260344900002075558913356009073254120744873166593425876544124251280600174600407170880505217738138972135438472973354773665345863042466655118198190058759615758915335621185865177623637604989951962795566242626895954039582526334107838240027114435668588882949052101410859313373974494913057242103447318770621978616305775496973129289048797808148388140854178439387628176973482014024761683924696351909468663874877637017271120359886700496608663592816792458219438270873936165760936347656373949442973905878968892268245166611173801447647504919876544902751804229455474762700514052842345865830760044668978322782754193178240198351151575574391091458911741627674480647328562339228937398863086056845732979016814774538202875012039425872968780371604335138584689792174693257213614224829027468154101912401608920890430882879742366267422907717239436289388664804665336948277516806082649071700581157375337612096861229634807402728974972479314622803095971030165920590612050934141642711710838006912656252390853668544185043786918033509732208873917820976631704861920434332685643440622000566732771660582721226567366618075078080837681943720164105734377641855505201951653696332707914807795779683587018076377385810441800389482398432949483343809203751947757269804103651452919207186582706989172932241493479523171626704273450406455649181405000813327541130309799229235091887197326209921863911157536103378210418689836074813743056380614457592965197415197859589820362442402393848149216541123236273625352977635218469784095208124619162026617472064251965381182044485176489516065235840468979207574822603991700666689875786105281216472911875424974780177019713755642622156986731597793688873627330202477308368451798220851371756180130902118651067068008779177399908288706414460901595997310052117936070925684190213808236624215054025109765020990708037553773558100600748166658145885419315728560941477728165073133122768042330215659929960914415866801394228238170531323927848949808639994856784520223012197828332306304999584297695465411621863080478651596091230381792563219058755458234685683856485718852589597277346887991172415759639196092285413635065109527422805561035379729457400590282888875950291926369046545446667098623541118027891469009714250236237685318540130150744942164559981147168569547762410543374265644962807359930751885767007166685661872866300745840894852631946706172170740540831132233354781319734397323275791704474793326126687211915744312083226169253178440523131645862307082384016933736856961608881987738813621275311098590676989612206257905543388653502697121643375372171903422454616379631788522253760007365627279692941664786977963828638054231170637556020761086839819332804625536812851539166147437207880612377363396901027850059744493245726872629923010537257024600145972003846527944290186145209324389306790218177134756056272343161646984383513234444268871955062163601029958812766436163410654797122201568371321386514188042133082420839156466534127041581918813489578938330980153999108283574801140236621177024488011033720961668694804968732100820923719651576400059311815504530159630791641887658220768591096545315962807058507409510465085919248129937974465758238977233439835625248144142439450850032337349677643482107254663606723309890790569991259926252610802960013854552779996120938558611787416493862449526359688968626432077541878871657378695714892417294557026629790142974069907667100882582671686400252982014665263736233202570692051080651479111024015845198765199514223224451185869475794590780209077655365294388479471286772580106743951741147482784758474087870327023440097839332351707040859429704551027800450602451754726658014135611437776855901192980622070739592309737202646077364569966729175449812724410199703464730831390511373033115729216896003427304947781097506345504454002006903692481699031174331498214516114676016899307972856814197384990868170766553715690274853360833781328024761007464026912756848259249141997729010604590000446749831724861371247681721438037430136284781381818473630553340607399383209437961430083774188831448658798980857089670869335381056874248709572361901155328272772588271419818989265987983303469605635089906415639341465068995484977230225022353796682632841030107314488837485407676559271400046550419719356549411424368299663731315356989831598533394332683420383833895394130045672796167573338469547997039171824527168664086032457354934669021552530379220087882582031471150165691632566055758286666262840398036573557761374957997672989458676309463454991516884380014666415090313272086414319059216986621849767115222971624569232945342185898676946313508540225032883888429984573345253818764392918701438776436243491814015316094181345237936603074787910112937092529167165506498118583404899766635603038111391466019731597955761670164313279490469977131288179654802047680143044672929532463600296243724401890175105619624125644374180710052023316304918214284624514061279944243427858004353114810362693530285857034099170433242704547783324668225776565113397980155973135122236519661526577749000072638970082471390614094050998562663235408086713786202712613394639196696502256251213379782171718373673386643016645552420406360105656987980182432471619171545038263301439560044793862208190592056394945832186787147240015384030097104724101345318569041276470815440533310936764210057991961337469160721196883113059389268167237504295429836666349580278014909819236998705031423472118299990838948000271386789528088674361013603104834202028834947132184182729393835203501419972311205347707494360661893919033275141911315675069064552492221520240215762182199549428671602200102012681311167844142687941806438570109691615931370825791710085968861517969616778338078122892116577377379959378713666563317534192775727223873846607871173042171952040943610894370384211517347826633618362398822499445122386209189771403240923356984969078852824084430726268986574249351555062160315510266383586208455891462520230864026318753618059974171501007784759335279924849080510419882585772738427694071580143690748765365147615859453571842533603590016504222761970800750354065960364364879516568186009260829377193374354320323322843712606370319613116900564496106187576437846098290993362619131233835800693595516450788259715121890245145766031100773238674243790755627602133014256875200704361141052327861181721470698289213548103161144760353874397808318969247420148315054337807102352228910389837816006012040816821241361609921569067283456472028635888400032312512160079654019140401450454347173186232209130779333322383463654154183439716238212923292507573193653170605472765954352907119175111376539705736183666705532614751551651322337880058667317332942454127039544192667650407504082104779127534959733860444068269615301284325505206198858013017685095109263351131021127014045650595640107318832649445373421903773872059690157431239996717938573861285783622388494413019141285978425491798835520325006059559940297696524084201519835831081560389245019749091836992607603688229650543192116990898088925092786683174691920179677053884192610817211602123206626085583701511854368384617483876239964401271409087627145814945528827556837900791582527630225562923232601658822203438415004793976083302320241585775128658601769952111380055466843894355142850474963130370883941725174588854008081879421797231207128415916390818254612671808549699328483452837136404383206919763622921677500534686915388398273361150793097875879783096285339430924556381295469322007466396388337626022445307060550970225626487148902095647966931466416695887404988011415301601072118270145287828185082040820271282400589186585064792837349541163500854674219308333601413624626973620569352040877158261441484060585583746929405690487103196855011349288918818531560255755442207438565252824940890967452336067898374451625726130117769764198083680927609700157949846690559206503306329830007063400103093736520738280150204418504519159023185862201411188778363821513871614913601278832531102315464553883676960742836690198163627644187887373633940914971768191702479744143922341859200259914692868118013431513028771313967504566426708479565078425549213945308155035089836637385737258389052610097533118534413384538096695412171127304509849867570993162269428028365913145465070944419955596359041917690105528057509115664755681630580846554780811235767877021363113650779885342897541492440867581458136743502624873207049432525321069672469549511097418959257671047170076189376503762272246812970658826093153278880825174516930741940930960933225462142327071681273090583175979782181425966923799728857711579505064306224667655384753132676882253632958513120771684433817463013876229526570932231834058660767300758710529707918010880117869973382025728991949801721281273173423908968360614129664606303908410490094553777454126180594764199483131366572571774529460209980080167730250061665045155760828475826528256971144632632680541394215823978625577952517039319225886526208934057843734873898004154708977770063701054461312715679682256860295813893523917400282510253135657752962380642969639472344105413017936288093246083491157631683611730418438400080345048025274668304817224879348710462521276966710219324880033664728797613754340181224169251130927525169163068009703254179652355976643878348488477240518984900806654569307110913569482823196080182317106681194162762908183771729101888964381458541551582443909765751130762488392236429436034401995209311334752570852054261633834085676109431229153850833062138215304988757500593414929023840079431204609307954649655827952132944088398909007925645384537206573732972282953237605006925742054512327577848549416256122610400139293566264389325115571199221634157458008982498313966263263645620836610948905558622239745155413667208151154485722760092076964796958352821337136731718626371848392007881696780342370728892062229280971106556697632202546665431644197548717094522635000434533820298899170084051972647224890167084476138695895586219052511584647534338675785445240488509633719746327777740062744694577242801285550922423856636176419859452036489163786285520790495529922656915349784376162742588378272977149848674984390556094052529963897248138952481616047865398730516873256490041001120752063608165094528161556374891765972612858117406143781180903235725997663057633511438020883027465108729653290818353072358017610262021658799456501586394808959612761935656406358095259612023190230599877164659912957338733592553093141004272488604150409079059886916456515237320298336628524663999867391979350607463750896106981095616612290892457575444622827146512166013611555854691643312331878179614573337599522918537630461154909757086175407563900594822679939482830249764678991921891349061756100186623730944847887022279985463249751832687971389431559252633695550910321753511200175473039202229053467508218260700283876791361548545551611721897585639186336147732833962222902393998547306028600578081235593356085419827803595207401951388008823218277111354566367748251570594350858811240263781268197440326616893899511630908318077902635421659836930380409913375591568288537201476764153296198006739827623094036719176056725222566391032097340768455580540189221919441769634590478438317934066269369170905861807347778453357827949346212575175558542201732861349072349456567489556487176968335559949834144316961100332175549548336703495546821910335098267566916187918719873374100854449882147913781510823419314590233203216228543452076817218547827901846390233816229282191877208716281678114246092486988117692205947754900462810825980415566146853712707985799184275894992695622587796103098980181515361670011853517956943997324470733085643756447278927807718341190080438655227205165065678823051329313798126863283023576978374200890319594026991891265532647746124321865880238222897198049355850075079090899448089348504841486003297597151842819855192814513209189338617413527822597008205282333983880376668709459593934964154452005875412013588143760930643819658220896281235255195603362851160826409321117608746942631037252603686029958139206291453296260600644408708322031411583504950348120041889128872437576372255228579065234683970503245797253465929358238298770329208786432043240854420215906285555227547648161978159254058423221516081804091898512700329449828850371368063479698550280241872423056685244471164351614125298997449427564970143075014448476069505808056748360214384513707714375435820895946187954475093204294864721984160664699168638664870065882813267009895156326274538805590037061034134289013630185964035937842674728007206903660724505756842339357861687687329131902177714654353125836256879305115130519092218090971931517942186883261309526153870070342209228761058775690807221513000463593410643939664326737100599045798356083297041350775005451653597194002315828132513882329948017828426504988275274449003347056382650524849914919841379855177237584293314319290615851793300777679365596823396967182324744363051134118055167990084599873480974485190108870911841982857327696306639630920881686060382671579835173472565999074459152355715806175810162775111859638820171592289191879010587901120662612458020809685524709351487620289988231775016744562317802085585036792174919407956718806492790141663982771821634873926762973458296316082949220793568984747634632486510873557974753419066159806415901719081731894852280839184664258972475611701834284605624338510922444202605608551298733984356258255836890352922887197339205881551979753754924954912139606521860026794917215479729265615829423706594479214756973527781334399906359781631226893572975456773785452671738657062706425682020942627755798736024602875837803671627100182154170088122233782116674460642321782918474331228592133437114498404628668131581094101415675596475628347953841832056296642412864880981071800095323256665797369310625627470216735874282077569670575546769993818253197938666401411338537570478036730658810308161492912659554013837676041321913988432065755201755815763478311050059513318787634240990418903797885158682878970553811167445459560086832984863537443447084436540385224911188605518008008393431779906019761107947870559315619210789005979115151016829293117705314145675150749448038101487114827127494087210894474676175530706572770609409139597379256742695112631031712370266923261898607468740975204373001934740838144271196569438757206384809764351054044728178405566131482550658765108319927770495171349646093155497937490766066183164660988239674381639836061109444793063624318440013051098738424079937057077993837294439309520985435605373127346601588115349141730298311287057830689485971695029403203820783349475419226070618333273986290081203171423042989470969783631461018911092120592759138367959073550871062024905648481208720504256953282008410065428312695589387034448350407240882385968463936925782578879551281878813263678126829352602806026522494055766275416772609210111220439378837118063935640296485607522189991131808224017914437774473386874967719991704459041644759156951782289648377472319010983155771670259146029174350997798034365870800006495225820739669479880031672305573806867159484368917595690466528943514019053107832610364577980313505566002032744750761793992670408075850149455968782590997624491389674522955490119841263689531874205806237113002005116085252995028084992623017716158640656724687361251546634223545904744184339821043590443313148385531074690811479586911946870670102928011128840283740850868213188800048163066985379537976799330110874183906222090307665194603405407485744792113661082900049784052148462651185362865549345538013248798116005062269906818773303578964181223610399495373829627880990657472110869076327729421623554337120439685280385549607373778389721084504727212053650292495250714030903937039293489957499333980299846853480085043637278171955479463227238765986843164883692588609428266722366074170586309317545691460306464571846548710259124755668687081207212850001472242557630594058388538108583224275872473034233068493217485766559648329963129567614492865528391911228405562227445243172593775145197849148448947318226807483788026144864265015483344523331226511054630481184146369629036866652340023867348991594394361267936646321371439770978618622429003755000113291847259410131902543862622657379582757506791391861000269107742239072747124198216539812373210997437783941485516941563394597173022889623246320639552806623558283475135800581169921331201759566565542552189274265896821121717200726659923151133152016444733833830980165178187820034554034828386027723669795856785662826546239873656705735389433663774083868464673571914966525519160145349954416337065164502827985086718831734705180651319420637394916632639502567060523656867450796441882839897128689485129432921514817347260644011959315661477975527370870086521328475754237164187169394377651023993694779237985791391897178388348535519952892958231824210197977953123837925042655349130253668515185769995114798536475102730793936385643333373035744778217901153342317830372877255802708450832680528673393343536943409820791774078240993050065980005529500284566987932176893333241126155670409192727252982472658296642791971502227622218550380238957811602301375764688398002090659253961115420078741953494787175253325852567708581476844152042155301225627805030100177450263594339976180090451263146616925491948532407893761202197986146301232074359780004183848892665265451354888794305467437195096932279664823920967311892955787768168813850661043535102581280444927899818431907606584496382682717513826602432725422852914042073711446580469598515805693197245098814261696013884510209744824486458446778417946296043336234908323200603979584025717838574876169760097854678837897907017182879052511463023726760506153436233788472034217489072671244693846613416819652147680739819646467772010127070290793118468515655250074622376083279253869052833453183414496084078190135507102966478394925379094260771818587987977629210030244970906630941909253019895213372787001536622448926482626398311912919789517152618252966706647471140962938063653937293873092703327399566146486569501677281899545775659744460274766349027880423278857452944143737828363681406732222879035704025214957842605111120113689241192162037559050113306774061093832069512652333247590791037734164646035160227060496714471538950851589052829359412569372951782777427289472374729452007114575160835527690388277945922794120722202399262323228085465007440879264423850495589606909350501684359844246819519071298313108430735309727159689864880189626736161533894939159549871932690741462929558103198398082045610311698339033478417882968225694811694120738826812625721851900692027539685115741731847028597480126656464039809707743437369794517005603914695616573577145333957080782538097591291167154274291628096606153616643986696820243559125814555826387944656624150070672218504010575567980992022395203292162252652829683384941844387909989403341542830126451889980352398070272757279496878306555537124169822498448797505397914079491628540251473062347658013054391861064874241504308774370524433941070517968553623562842118905086695205736042637647899687128885776938239674049255525006563648153605533322851610882855195117033618228852581498637548884858170256260956723562150233190404039487891082242660638825022172505786956640396160109898736758195841024697519405441150430377745273466311938339704920986717510853006919342815392357437439611272784134879288881628903516068173563021433662766434559141566198247594534677406256575034489973488550792441559592660015006152872758574028516834992144887867571255621270661213264681481552658659200561396232893677349859395922581549269610521124264493548435117790943093791696584873261594717104651242991173308679656529453924191025660729575551612730086507227646119462585637243371050052285376447210590628846433210716130919500419552340837376525613309135088018509884504034726611868233407138547900263647591191105485273843135205123992933452808444771358987436434908813672995934909341403493918667638656859861769594336952765471932336331618323637963547853462047907651340361667758492127088843590271062128461229087094318583338545625264459664607755339792661922210325071907364903519597915671847088479278002135656851679986951959158161051219557096612236122404232965069711320751829876070016767107002780982403705812330161235797380687672884944080946264390678813286121938357542383526958853479034194134612061397594524842948712208725337261665357912616127508255830946782487062708291252584800767620627827754735166748826120283567093236109751457478692987784977756719856973584753131379894794864056695728527295605549902880724321398621345049581623107775107757759382537253150237840137011435139257836234608100710881138349944598980098955070714810284015868709775014543370244344130380909466893933249812537465126569655332171491525350187874934420639953898933342338818884572348352739751779899419372007370682994839568396637143252197065744059226682820942827062026532434858502781161569624128201717971656831157153326248886375339222524134485819334441467796880437871821851382382901447318712767466707835821797496707552364365756617773687390850566721403408037188946638097396427747493142996797801814156000860120525434436354144645263282806980190906252260926693063540755462242970193491977607231078784755424743889371286292640201645491300030719056971665982818217673072230897556732878615445821138602502174881512027620600622375805307670168234659572151865800414185402703197757995186371322701194739284742904440153283796099305161534796788902354160476238393566588805419757304823832530203707382094512765032374149715375162477366486339823784404923776460528108028080923491959044649971713855481945512483926667856105030655473747765589250964746751069299362995607142836619578580692216636508862961352013971882651399832786481309973153940307656377221278532943480642725133306619681642584594992390502395528265279148564352812583706521195492714660943923396731391950993446212750554811529901616126471379146923991025895152714526447670548582564786097332822414797277751626324189113432301065930174782182763475043727574064493906318860521399195663035345893700603285562472552453671265379045695735995637683097117322412473788423065351537967805848551426783111843435095702408994319047962297590788626809432243138455105480773045184701234615988297869618434491398456913515361168493905904952067937300298996256666049416992508503456386349417999069988042073171285286251207721998975967138698782308060315891660459411562374466587220969762999598406108279292993284023630147128523863697755911213012702647860755104153482251264058571581548521491137284493716148442353706500868333659762054411931530312492271003722272486685939004886278808241208264293772147963532876575813582631994705001218730903526914494989934471885685555670780734938174675618996604995144248141481973725978320479004153375644126144402859884646208586774130802998550766367586609319787633007391873509872336582406862273139698429586891841828060559694764297546032071123002495949896822059554101467525548568952385441513246329253536171617802697447367072664104261557169307048266215921867051266136228555623611908796866346966571744344870020282117857679705174853527809943619823501636787659130583562640314621059986702592257658287218876377129303698889323363631971596720686285827042971139508632151793647144184899615052233995473903154191199551305880252399357165589253976468145892779571263425929850185489652059650152642863340313708618193754113279743508057294174716950122379875212332172644547488990961921718773738733189958092855232291133617120737542125234489272255977673781060913063477187846690139958862016307612726498112360679373036489856378696860297419224101277144423456554200289393637523606010935255335092628457194093313843749543669636044782281351605952068310381637495309091454540449450160652454270122756861174516579049322531394483203011700859319329361688660177918445668964487869089243501369033206189136097375041192294143226294883194139794047158978648435408856886979639160115297954881761729095789125302856452776244414536005559628152591698599266773823462198390289005758106767091226107360870874972013958717296064074367033284913800061651082784386924723536705513341128523524340396641929469634941566441599421558397586546253101356612060059535453060520385875260774439145157516115053132529779992450635846235559849296981682862493357459386180715646791359075040943598655023939916900525644887363928995624316934847296131247494254092762670317035802930988697566886767301042028121793553264509713991506419571206029474992013718666932905848118397673335450386161298659173616638182519129512417144235236741106201359290492025781007846888182770187763552328623112325212381049950826569200483552494153562550808701833773243157088207235766672900859223178803892079555439611762327776314472181700369566580193278643668699905824956350610997972961535845284494770925261956752329948723237751490314599219962021827211378866294260356030695184245309399976306307551217377434639262155879273251652474550871490076165520345955079166405222479631328734300780895273183517996670986728840267692863368471745212696862719211319345378813490564580447445396279423012562406148658313257355676411189966801987228131901398249002605040854312540911031018767197455419259275847957863600641285491481954922204820377500771796089742828540875367104933939715934314716236139070529034594332006416353334613280289091278396338182086061193237067002937104363145259169951141602422376613165653302150789645409214676175319168858537712830730183424057414946530953988298263626165866576125824190616426787901811063637937044937177756306093268904493400675102234421886593914816640055654935754724677086906333185620744460308449250089221846483228276464830611684875755915686207192261756095889501641601345534687363929853117748111106618567671687186708178377382980064762516233923819449768399285612768830080071525845191682854269587463365799342993203356250609750450488513319861726540048979039176836496542452772047588331456440115853259601046033691615765159025180258199155436455699053967761525573924443626407420249063017975939478742816170091573033621698794006721563308151406834341120682648308094539968619380674313684918099551340663224287990842436435563130865451743480518061388758792564189430588896928470300125678985494301858980827891623198192098514080579735322731591707016576989287410068248557409570556077141697655031022263769010275703353295219047729044544257290939723228618553169063827180354027406575321661390578574383138182242893784753293908133460883089462232314262302529550332903571123324945198373926306842024076222807604694592157791450037517717434864700401329367375023428998269282651176471384770496249446727034178923750916261769041816300262489211186248185959617754095404745683866677869869699092479516388363598541046032498470114253738342982621132882968246182176134005398769584084633109684023997730929340464039609100859136946838086433595138584946350631537448468580819663529234177213161525839392249178104708690871483170168550499382766936138875263066995648685620592226512099418542044240435860754589630955575391196481761975748859366115053847815716152954650576598478446010886915898876079779080130247175207948044947975188309557236278203191639562511146565284929279353499107799869652593034244889019054647598665263090292332892772110390547005244231323354210041113876913506489483601711598292411885392915099663655821209839838214179581503717297296722588527041628655887820554236230915975361840745808417997506415943331981026491455107123832452747297202631164046623183639685885690879390989103959374491130264437707748800377060187671558239869159578987391007666605038872638870868676491451410518906507328692970786060349304616082766498397995959926137222516662265965383700871094863767853467431255248732209557492047425449746459099773545704429282281297125199057291224154176156156846154908298594498878340224730410064544779617920744581964471310389408751712861328022121338633344589545663853026271343008993841445124695195104708672639365114895057567968949399449061869071456754708261405576645226023995276793613799172185706508034240972386106900198964711381522404950846117892692709741475964229044704543386224089904967590744764008144157356073954706247387945404021653036048952827724489508846087619274570560353715492583687540662315239381138930399213432257229059514352440105566379446802617057610614060706354733857577799444066111316021555564912822751826938769367315055968021965166229169564824667397640125762612597809695343804212746091339249063626699938848832558198711195359573227323201481519171296867523467954241436449555606549311223632371247377050560937153715364356606233130298222327439416887469070047038604304732616857429677604713847575284761834544357402226243296418728366788343657670403297623525773296511947887449136358475825226282794579699330474250946542094850530748726113877416698400708267913357883208393822476499822497464639767502162399170799884631103647376070383090146020634824663789054091558378649300577563303044716479573536827878965545131947736290729419977227663651485188218887051336478478679696100483662198552381638190649475671508312661125912291931441686396252927342074816893859694097782124860591807980000634591241009916776099574777429375802206039092734015768620182657250434407435902791160364951244905227415158253754189714192518969712073849498845477353933321184233847987094457483904759631963056842831173650919807153789822140023047129715211175724218165355588125279505022177673855305913691029577721803185339493317154234088603181264600781300232533885527712044111750540883912507616412814736838924968764186328254742137553845772188568604347503148681119604854472340853474628832477571850522590426273968470446394590983786595721501277340919854125878956183958400992197316330405171584596276293542312079120712502868517238652465080849624254193389486400859252553782738151165285032544946948416893200317604312120940215043568283633687521187478573179636727503303974459208049238222514620180076818712829971219285436474244315891042229801000837668098786643862866180385222485169250098293912413806170455185567876674302894343367717455167941769948772994203532369777234656564371857834088794623303374287000976157007576617635255696017519001412947522348632974498345696551979809376672628759338943366370300147069866341290251112768429595120955897007337640401548253599152827424680904767038108367201008399517446084174206806390431860336389921955494200977913270996881619316242524978954652831701383423531199920373862309348031160028057582680091541896336876221697269106192053490385238447283619363826785088756294506848514287026525734905831400150655389196689786256626934839161356689157610527892073659577568958181886638649633091475209737820779436751860757612957939240919831596734496786046042107366429669628841489745005602940778730818585815720228808527585971112647360189724925598733581621732487930031344037744122016320838518375182293720078556125799795821776073924785340070627045813788404575911367020022339222317650726106501488804373328310332674821691398104549299381001202816241819193041030205248476360367034786177673410122788836896493581876274058658354573944445761241494941075781977122038322730344911450390654040459371152676664274420005024324083437677764620901998768349829624221153569014702358343196282168668733058241285527748372853360127476459628813808565225321227753778575270829491027937216349489343459414647333387257551214517002783850811703603707348463724127789149818190396372921024556856379485048121950048463876875496380812500107735938913977473283097642681856025628246848646946909571643263725024666506546505683246437523868234217375341872629073087537258463913314026325683305260329616582826886184701816850331720886484673061729576104030556399226580811347861539359252765850987972698487406082860092224437715290347658984963648209088618129550783367356597352749460499980954795584393750933690993723844421779575185416138771623963282889088478350881758878567543964347009596307978144546476923241125972119751684445537415896168530100117495222832805290791342174034079075324194405099950107247391209815842109278631463759215924189715133542384661486873737139688894401662359340924531134955645527943341214008354856234946419844537076755809311209027420202780720049153616854278595942771240677697412045403489903758258301057287729861039451231464329880212196651800487696970516986278396021324316652885190238004942009057092103067374632992433241920907622583354413761698629786212323368400883652486947824671362507029921653944074073294670913929886236627883814890973940833903714458408470125780275568963332075198777086892666125056238409795154809618457974779678347933267285856256048770795861735806857746806735269682250946625539877706412281220922894844387661184524916354683414528834570842278238018544419180769497631969971833137130064688100925480430071586310032998562668397807989089798863552311875309985600415229743764192290819386611982783132574984869886045451894526773610273170786022476975273766972781974439783556060529302641743793254274431121464931821640572019943396529433405595137483220105637627979510488185116001676037165461727460495158250537379964109130708712848855669100767449888487744233967361488275402181400078373260381504856444003283550495017164227080252476278085328155738625423386966956214263834880212370878019795398432868902613131948397106411709171466575742251186310886824066772989271837802118816608365227633498522207350674624347571012025966184336178537290351212259113118989513119649099398500123034528675389408601532664649443711539204042951354636593704976447271734691226652621323443458078251086115289224696779982038596812442555856274630069400181732811634932012405761953846049290038581650106875263670252594089928190926794491710480310584735441376381739025594875453160157169555144426937809401260861746759684831891981956434755043646727269014602008224894095914409179037905575474519469964041001001554968764344764927975411954553082522187148446680912231685704370058638379995199946258209401016527875433844111303838566836495029462276274108685811145302867073067224888523630841509975433122763580855470443311514778244028067591285050051732870765240707780835600036919759316408675962042488532642517980184885765789481830025546547435997830402779488601849698567483189848956213455875936782307273796169597739824170846540150723059996853870566443972711149929049390937565105977890187335628217122257645359846203145181749534391132672702906952284699986381476854676138828108962915007225073430063202844941772945500268626475498106817791775859393366833285594195175378125102172456762113484707021888851372453402274961545140165286862520980989100345194291795837184733358517243710797702852517059156954954575754642454170684733075235093906041979271617213177857819589665687228574055610816170714904404059948702942345179872381399426155835555108607808969834027544780235518887129185852501801893652266814034616639174078720744865435291428025289428935884400547201766349512796724697036329058318062188323989385459978207946668062759809527576467697101294899103870689323359507617013570486392894953631908532255041194591835646862065041618748614967980000183460486271889818452065243093830749100848362598111820534829133142164389413749840055955063775300471484126418233457738334960075384598746400432596023813833229326819451708924080120875071378597281388026867816482232233168644892170699789673602894417705457378377666615166576872992405485233267507715284850822057279277207906281646762259250184039402516383596872222177371771548752138866356890484503288884779674495242364423684580571821152756871278084264941766553784485377218528185433256546594799863235001197134891914617788155654498797049484029482458797764805716074279457473421199012608520239962020768036535896165609670622770774169412650480414387664624544595850794362562121627443913268339194338553268285010424904723320756005867579904184078211978326248818839564417319502715650500639196481741691468294726962974419415242369813743743668596305284474379502059189617461476248529112922592700335844729163433946702931415243452764535466065380583339672798072254580281983156250993183601184053508596392925972455681015455052145523706511141526521093069496265923249663551204794023960009338498839280068409420401649553446457106828791830744930185310819213760438191150221975615233155490247282224599884317309514451056707876529580943335593671567392217972315246492015774337002960733687428253484355128923941201187694617521112954227447157454472748763375529124194117988515945789326058482032498919646720345765100392958291419308823843117500017439867332798910718352377419851106077449213438274793867398485063324933300182934893910152385206557518150386106951132231795900039493920346991565582475118986076320334011902235959097691142813787615796591030777535893785657778378231353307744035173523077279315006016960795078366646786773651003340690337804434215104302290280770325042757567982828806674445693648490300562012181388084478675602076614198825306529121286700682892344915278772865770404028740195936376458075459660660021075066253620453855445357212277833835673905353396485416934250797609375266510896818157255659203538175850034371128960240065967620160952456695506409386609561543840013448683907155569625057644721287372345288574923412723597239815547520591215310788561202169122430941656076682537970078554281385109410516585525991407657117516219413757365515891947771600615837710526167254201032668522346660229513873855510508789722199517647326537723647550434281713118016841922746403505880225343602585529277053405220295207633474761576725552147204676762987406482018493570453019597055964746618896369874626198280718807890998870632638399321924451894235405438891401814148201354941385089040973959804337349325297617527723938978487392124456913820212372591521170318596613419384858244626679033567683665421456720707243604314948795159032853784451593640384841245064052092937472452076056652226920069676998072103276882729147384621830381288688898366849051432645242322736005707849667813237466419506578554349567802160054698163087010453305500711086737205622008908236345206653865578005709334290112186512095257553280779444382117732801575890973410664337559389082770662647778423929235469818625177045135698281097439799500086020561649127045510908963025521298742867573063733712390391412075507301720843270317365769259641324910799132170049778561075689253243164595499333016873013428143367758267045232145901825034135588474533735393910950614001487354973928713924194588435289616860838482578158225680784835973500692173754091888290926432331243274675599618855799014194649840594913168604187988972420512364006827429657004758205453088283690494727538947276087254747610392484329607819032737214950791169425409228421633402505692139930118600022045464404554027845105713976152117541148260876425789527082682943089678814970504002976448860394968095972947714240557528735610048819065409755583510319131330098827773676978203485910859115199101131829506899713466370346720906127732221394792203608339778984368480680785172231859525284575673541482213981757547960390101688159266555541270871055419106404944385152821581556137118660850954409675129772999223172056919646799465686158782566555579507951634661702798404192766463968687278360155690654035822049112913523063915540612787526994955799465103931607847333339956317372919188859732493378448895566373248601260815145935112558111063543291639922365306284513386724777277558835457463428753350876307000697429198623402188913788399555863048653630365489190798477791679855629565029146341854679688457120905516349730332355784792945406358215748588297219573782496021989692015908534400157183609662282789076880705116341210798212558245814457619984559468662549478652298979400981596664573754218414685167274538198097137021523415905299089459408446770230410735666819812975942660414256045071912741469476095076216137449493616576805174640518401138453648347159969137703368459863446819152709222519342254888047869679515925956308159590533400859976238865023298883150567058294064532279460645071163195106962968018321846002045312581478789433711544616757957412154649077164158863285193292047706225692449607795013465307668492256763269408752163371488839918952207825503794768102960574814180525520228653653747113330314113907105067391348131423144923935446453685360832201982110998141870482115398698115852034886438236120713252233033218062979522728815413571362778956641762134106375168591109313594241855546305057313934191918945008051699016851708029675123671144621946026458568994870686452251236380739196431057972400807335213537795643868577939447371778654452441576584234900256095022005862371919815118728003912067320996730462593231214090506887074225483358343926922656931290467048111476254074421028821577368416627469446257070917624725233539767351549393060649499109057082457722286714741012105103001810483548571505646937227340194580841929282727549432593087138885745663078337576584886612279524248978600513938976087815010571330961122910305957631048224931112888207008978565890177566195803727721292788511522829710032916503302198703698677894744267152428616190800988215502254124113971464295602420962867633140766132109029098841338168055941368805490611887745146953925868645861911057093408349264853943206863601260405086752876531193268680719670867818020625084276631199595625369216201729531612958059671884970271700125120126922533862941105765084005483983035890642397230856276582591542829015021686290118670942239830029220552198062366640240106762873446450579819691915175822626803931012413088325101472649274847444671212750794760242575958388571492534187363888565125476435918318508963942433741849647500480620534065142457649219524350916490537953692293153904158321547231082620859159151092018191788644494094654691621671723309780688593325832536689765027452251939640684243095281158651156902872453539239424316125719459899717906743298422948069453693020143266912408618794139317675120116767760719486411199291465533153106688857195030900888190037727490497384267864189413450659024247200894061356610633508074472603646019581232086793266970639519797639776104752315062856902868143374689707078780526871781850620962432528402829851703662337874673200836679792975508668666429699650180204454639130612986412650441475516415758675447681855368848159982278216823426069034983453130738872059232023517201330199379426529804205851114359442216885476746598276743974496987645769230807616324556728815367214690171610676212264413269445591520403483454714612500694747953562125731977200368151783211515065734783521459325002853044392280680145095399348836123774786007600995068784996240458634514753339863751992524482723669791257579675710811536204318883250668278253106033168862687347349510232836031846643182143310588107286229435237741362389568788843881477318931934695910009000779526343616263501319859281871507300878967748297480165363012270074128096339019780013631371917133140828477964913918221307233348923752395644731058861746089373878360256295411761161698109408034828176107994580376308216713734147027609050908234142528202932977253778417547598332828248900000782667035905478805691021906185358257704677020777416639386194604558060042870226942788661771190214070082832195162525832582629636742748799418863409668890413989946828807435226877452139847210916379560190734161648713043861765442731424848958381557364739618057544769063470388972775514277022280299190083680658960457010124797422648492992249334287598320482400774218057012478944467174600090283645844382669963489584074307437940166585384126269134255508609224184684733310748019556795367941056974262388644563084391879536394550094815855097453678736566580293800722166045002625217642489175549718011160840267705232569675462264431745024294842796401666017992208228497635589704005038047624913691914629354576903580258778857697714300987270232267409508133377855260193576365164841970952751826153278982495692656044645613448322280679591749069793155581449191380213562457076805511266497610440340787664621159428663987410725674568630385250653106286756475624324420901792654480485567313660606461638668175927578538595990718394309537368055510760213845798485591733376413757823170041382650360931845679943711581479666592651235864772829152560956268287324688438835474785421406214551635716261575918442162973138857330361981360671034984308110369970695718220351676021048617086380151479844004307596117284662759505671805305983192223893796565929813677912815494059623481137932585127049257882431297746040203271336602177202460860057242437140542872859459983348509319875876384057412206603446636129402453482376310766356897515034857616699523482950566329782372875245493135239015537151394469644354165936536285800671599799222739932134850629221111937949084495198234514392620383033552051920887614202231934526926343664022264451386969652880190618450993462931091437281786489833853989547643575921155179728682708607647786373894919711971716935036794804981591235907152372140782391213583845994428817812037355500140961045831008793246024329178622248486054157228818006991273726988028882348557934481477826721839983238370737475804339453720422016376850888140811013458592883771402186323340918029014845111463460929260341928700572083697126533812538554994272126250362691899318326231269426326380694559334612494126183987022993224870992129470447904092247879445648729482514465117724766618752643674209834706252965889048868415881905156533661175809322645213955176168664284052704311667180553807363361685052408436452260598004205098853073036017282392374452929892322375962704382146916968317982525816670555754758090980078931759493112958512037796467442106001320387835062079670208520188690867885625254904899495490571511624185836867839119306462298015703522294568179532582431179310648854861095663794985243159410704462168616709876561736174239836406479314474547568314001404450782982379631718089234121084132103331386467765719496462266749900161933896766655985010663798690713537105452574736830928180423017285334624198258939938079333643699692930203758359853000413038656585871255935086329985324392913127606403173652367339330717788962428397237806456291071097167509525359821576334011321833432021944104236404661073092220867396607231748422096709422462315726690289800059528170748447917937886131889416426137537794668043418649024861265559381929427259552941260694804851729847261854334250454386849324664120457568400989963617249258120012352248338321557048396409082521544707805124534549112546501385410299075561459576079980107316687286781415969779830418189522665522608817616447391438914540817003409933899010538532394885511658290464149349060623836036476614012098423944679660779744076204167915598123061405062511744231633502355018192017809256351386062096259421379950475230567808296404241829543925257855941548242716563898639072062351758939643314999691461020627893226439649629420259204654536658212532545894642808853520298550587662138014561561758893737544210179859744437385725297578629198857624856255282079747651764177657746744643011631647589146038241401188030011271355059513842174346604245108380944809508037993319414168195179853429666944792777779306623430436668275297976028332830059944665513806698368504183042267965668643895554759729882384830928672037569733280393863651168870826881269254522725034547490712645226449832851260587793276311013262184662488419955140139699853439714812749276816856028219735127396462441341683214081458645525022949427236570771116002107303510159396789503031941669729026552082796678809137648032277303803673674608722281809252619109158991643505512742063090932953419949222392441079490686673305405314798764426977113860355757096541358397743260290737828831587769942733626339318233610463391988591384657207577794477069739966213419518106531477517959157529326027033570289954137148484721414005501995797812129121886986450077234928777424101300137015538387533873961107069472116290003873525151746823945967360155086193200676546719449455710478202118864471213620954753528128367716061303466910104053363339307632382913737643199173739929101080307209889693136739747585569773932745721185088373038824695910690716586869729415233291368140994882235938549611719043976914130063933135039817951720676247175087775134606445949652894862680296123417351490331892951619593390592061254469171933344453579531651587663000118074485038661289108921836083172924655253157568538455312085745372007341385361624358673307988797971709551827428978089344028287460202089083233504187785259054011302706179871072727795463264277610008202386181247393800286886565802727062380401011989977778665228139154472798484782938659521736840698950633302313768729130745845706047090912277749570362822498303647679569407292740644970926857929863479476131369291507728225712494574081379869714227571860159447775036964528217372608113445555853475292201350740229420433771996046437639531517738708976396953779189599358678901396484193727300139779226060467545967312310171466981742063128057293652894908344141662200976336956715034737927707301669401680041338943714675496158793791778133600099409105256217528303733506486291211860382331756383525896749450026046193629215385125827483174956271231596451391448695002339144772244501179951862425711602077303883960301863414672031620279889289039939065500829983222536463971361098374993932050122610121248490046551363595613549557033214960639545043083423766853416410316055102203276052014039328623199077855794275076299800214750452633844626380980690939188141541201409575510237048431494200172064288149409040572590808268804008912799417015778859476068847642532725441550965280561580843539581593479085982670352406254917604728405449722770419824277639741558339467892592692206815190225849260029379029506508453135240404556687162481144061963062077814546487805113589644387461756446533039117621023440847957315582645094577842423038291327983815525011284347601308571871051168814462565882072374311317755803014637593611654205580956222674808310340132785949175975110441515878269988066741484947579443897162077963305945521777168997602680093383892996537393680042521875251751682730573866945200225643322847184618985835333256005847295895779476046033727259356430718577122116230678831915332359878002641854074007158288539331765217554825858476901158915413885928908555526653540242213996162359249841580355578213261934358920033545117659822897548032449380595939552185321840503521574464750235187018546690570590972840592988265712361986857510265631280372615619378933706023888122163026836092532966246511123555700625820219864036628974837984448924942128608510764968395606850373198206171325514503451686582063982644037507761531473009978986977205858360311549098793856425284938390149220532042669396732856368909280100922743163503355229802051176941572420359204034311108823687487946321778593850015692109831631627818532931519621502793715902315023773751903666971703516034281206804888611114179532660340399929689777547861700898042595202906576014628346823732701760500974386196024706478579562766203162554997964910278318299379883445871973937018049533459001010540543887102328300323781399237809206339616281093761443332665370119380111250207042150331545868508417882369262811462395829506701290329331872204520628166317565130531236107848444540110193309020457091342122230536149028013704504145723834736702190662199078105248711291000667213253125031342733270915814807820065710783598371742599070005142902018423181225082012274631688490349696550799547899103449159278526023105245630852197969713498236200080733138254983178038445860529292576818108852014749354324684831032457027859002703794165565623504973835218590261344368994659091623563887411235501102090437103282988318502478101789085815866889308369491161570555919784733435503444970093699445595008648063815532093082687840336408207731809762131813741575528883691760212437184145280639486341610258360181077026275494834386607785466898656937431892228843703016502815006538462218782182826274547010509891633078804141439375180081410520859444985429519882690463880944470916155434306994653791628529695342596829602036961476903872660165870859964925693665434150226201372926430103015418408249652767429270490222674655965782827938700523247283278033614445709081472348032045918416230847792031449453395560644592852308987880984905760241418782310146408036311633145387974219202563128342429601100482934002577370618541107632101979556022139867524387399332838482371154104963652748216595302296130391807577381544553470096703192872761151249634660486851744469074146507154357122503411602229332395449971593682852203152432957535996647140594005803510773175201685131587640959211582389082944251967743751861126249713305594331445823853885146693304440632254116315160989114354456056240558459694762221646772168338922345702533855236909719391205724729962134585752041277551213171881232543423886741663236368752196752268448741447280475864206355160770274824328390503114679067824023669698243365308117417708132161110167059071445371435800788803120665057777102528090002275874897593553704714154819294365443767739292196111888396772204505057582771617423472801798057180451263921551735020050293915442182959218948585906490205793738818621574014241314059550392548629849516454299730611166964198498356552222778969757383130338488026491744558002971099812074966310014139938544723500474684029795511214157545987392356057132578939501642417465101497163920023994349163306000777418147482043927846293005347206063610827166696056670568958949427200761650933519084431026876285459192300910120410924070506434550069941340020163312839090612903456322299267966075482115148050530552790843199415699149072262963494095165341686933095764946733473978881687442370153939458904168894934294866324412743794371206040089122834241157569940463823169948375868208269028673878923363454315257745907542048893271371879042406162497399782089244428570906882917212742569692082055234783424350481792675911747957119095919151204510235468834217861441990602351365251271624088930743151534226204208005326858451696861095550546542383877305154702967730899148676726627807003884992712703145809233914436738882843055995723530470347770588508103806530736048222589595141406677271314169960469531340416343787583717239021108362864726222553284208902888656682476428442011678683841111177417744747494040472462993081791522926013854087610932156182842472713068226387140050447818803167941539199575332851215285337567323405593161005001456043486851431515413664760881476726635676404932900018778735485972923218992690803087139433622088981586837982010546788253560982906356257987019879139390908090350021995330343757905723789628249506633347635661203369524592365138426538880122159058721214545644154050134478553401753100172207740051290311459419987985533921002504601998743785469165933319150419454772232218828827459682008192288666205940100058442234472937294370235919187290466844681844584365351663086310079825739808647597442003819982612839838149542458203939643200373147427516646443308916615536837142983827375068569807297750480900877240462534107748262268507827291209240337756776249720600724428567250743339523985495480121880045723151272705243817982482486839903548130558924449795518947151201060118367279121882421986758657931336388752570818004013517427063852909690915637355814653981222514983474459497073238107485449118282544975721241932251898055497448436448924817772296389136672882513388348720745332088454582846007460317855621895020480511441364371792983552489292499850672455593700761180043286078641993110287138443291878228734175100743054144230965618956588583473543463375391406415148630257947195743514564335537484207214231423096174242305270138174372544270242675812659977022034768283036244328997359890442154180407389408388969717424555128502506170000575858486437023863261157522822544818864455028310140796545111543691181188302820894513854915670022513913782053127992827020026093641150252787675726883985623828936311148286500381119874435790572532145420211995260162977793500023637357614281566205529189201683611337439792398070833366762052870283023127847863091513492951817281815862912306447310489843855421377175879438138605322463734200643521735043857564614859301325457767011580883231845588983939303020603280577281729318921894561330824842233980807090003946506312356348078958840955408730410451123396279275783506965540467941728691449612211421609845837902308097531489069632396420798230947327771263148390960052764083797633112492184589804788434666869363633519247416639120927625475958736540199172526520313913899512959108062826217784326795018621541508796390686901224328329995597714143670271423778503820160764055689232433694004177013474840549045999919858123113306249266891220202306582424249540437109628906514880322339158147425232169158595718154281281592953831260679811551524000108375227666461468225424715402408925880038922326139474470889102009977279255043110535740030259602410841241171416377316277719982918640330129665981116866132613659307530038257567037116220850406337759751256440302356246298962747425137040543457715139145737354994075105608436047166729692006067756675431004033862478112141203914126297303385902546700406826592904727438305549577774562218352488380449041451234632715416568303040960386298537789823790541388396740361464301188638418378377873453006444032740926266114025725732658828192850745701083725122174075832470680006660805955119866147492201463518447776314854229238171296615394274973195148443060195720258646615715436048884090636055353199690804854917744775337585211896471671794149224792144013488170787750199238252376082535158033305383131234287534138831923814503945607116048201682606265404461052801738669570898152040752716091652405944528877058472784019671576724431257024259551700656970060673907582662900103165555143854306384457382065012293011012575063818388128161957588104170397029503805361940242285173987901155554661587560496928849880347194581025313925330962316082877077085492017948105443921914441267925659027187230172917672453263626116752995829349243229966829654398345220972201402662812812947975005850621042567854794977179975106273688025802451788005676152342763766760003084283742213636819427786550678320770392862019713175097852091516709501492725835672311859848753091782536533839450847089707809611007529095776533634760505765252383279245709480275827959463391930227969500794720718272744855314988995524224571911263097964110540963951358996225992678476363223362336137824337429811384651114303953502735387158091927789733791178790999558020352620109154342724699283983413471940532059026199422546633988665401752541690938018768128060223360483484893701849653030986282504782551064428318127563196719268635831806051907044798662473966694694843476809308854657828058048832437168674691003730592256666372430417437673483199403215246310253699565996115145919796041247071187507136248994214368399540779328342024332502343041124777192455698227060801015409492102000924996615726030387537181715916261045144724452391218617083165747774446490379132362026432559233202891323575981464246294356732331591895270854864724062288939544422807266924777976698638934322363816056647368533238574321685014747713466883043475663668723950523366075754045384579876544233529031940651329775246669026902664473078930919336735414377179406282297783509939125867410643735339458708928491399881228073750021768667116619554637702852259731718931607294106499046763985698476504470373754977739073011281045151275493088668231103559447388540311275353412658723585291794642026137533621377828650819169872410505075196456706358231687895262152082260257425884283503979333978512360742971109206402618408659738987318015919323682316711376959587522099435311075695529923804675892217008903407925712082290745810283593235610038401208130191048845240075347723337329559208619626344816801085952017906698637003412676525362391237905819372121462882032489973012422635748906211987342976356434671615092193785271656079706050375010678790416019465003162793120857787583752964479875204976962799746882189070768315975662480096789422684175310995456383795703879317724719945011395933210043674118301922839481116232466917172652887929805099709521112971544313249362001225244546335568843315809973213614624814079270752012997282963198053707552012424181301549465213390343853883366388640695671388654412221671733739684552542316642961819900190229412160250850966757564356802738110832690638154167770166205571016689772241237256947403564452632107557945936404765784803663159974706796189928609219647308120202332038948926108192527084255276769775301984549603905913475423926698253744571274070769109397126162812509406404182710109163453250347652754934133636326817215912788488830191169543523835691730873562111499642998347761316653201440553928391387979972348041251211130629810851360663957101122966248715671204033080517291239232354377718003504016747439191498606887616026642263022722227473842522529822619203478438256583287584437141375544834845583790047921558035971219967352665730541367873840205194568806942660572794804399025963103093935574566251356142977247940005218173444102417842538609635510987093208432352598883487678716017527009713766956600691141663654937624717125356568752142704109140562805175853288090235789288547971940202533490369308863188621749987684597499761492222777086926521881862618886073714928361884288495085956738124208121688919636057462904700230996544525908139989491474810104695314480439470559563317531562084424355869185464221718220341468122704408096429221629517272691752488614422242341721236238997171851121785622569073364480080319102844947112214488642050836254539323767599540910160012612578048060909728944014881254996196734374966903706323454486258098113174868890329967459886949267524249779166411473154200030316919339019035067150841636270622101083501377478117360338597005532157968514821153653520874050062268285654011793087952929589590167656054748720075980964218908700964389306552046942308987225130407169684832107881353394446337843145215736533416811215740937643559501013717200903097189157204113391910143892942443477222531494225055014917196042918504777933349006371918356114610845384858373041873983625871097961955898152828662900713108551701337170731585702172199746104473184555535841122203090212933859416722476284659523474352886350687352349258396323134122792364668719726857470913221124876217756633342023008194240138307357038659685102706004443726353597629234437687153223603365390635263961079145510457175050512437070813718543338564473340822013074815259229795846623788197637157039400699507041951645677333492856939939202700091665208754314570901200374231601268529460324051358208356892554958090261401088907441406408358217146968883813672182679674958847750627325580177903221356804682663127850458797529572389838118373360163982012621928576189036456642974449528900953140558756516985924508489511816960312122785933760869921702257672170151190411269980007721129282819984678502230022578039196363174297998990003177761138439720439704028170073327242312859280607262671673040061348263053786577986587210750540832958246874339544597685601345929307542938240366731052944420459871433393874777268825268273702730188758498059534028950280640335624525051785704779340091012723355575479602209357240497230253564439840563927497903500884922742099655455827515576653421972008582692659475659563944006598217050472085435368204759013221688238344380351060997290877580746011353104017864993938569277432902091814618873566792638802684055020136349528627120835512169162924816929520065343107316121526633429446147026192435023125195981536610425953271636543770836912445034572835438000334198356663140390511230697954185300856316848291158514510332747734110023488367287570073524345725743316394355608554830888459606324292286704672563637130420542954355688030046708055760427902842814850524620538144923877517541121495973978735979957858549541296570177007193547296748867424383718089731132681209940769333821151079561618179469270628556181458304462030780446188974324424908579511086318053206713206888083652459580393415782144310905808531762112661052535593770028158240387815988929044754951604283322777486126639635732798616708509640550201390043826139080211956984429469783986210369411158432647383280742222341974349195446868159413568073179882781068252674711778658077927261965157143481189800075393093035872688141850647897785187008215508688728625234575278853862997946353419108840916981002332142913657130077782546347566405855330371574639130432841658305729170819246496758826589811931772277772353774931961643205955776062128501645993922019287518620053980621014142137613039936213364112563502764751088615020792716104080354312874743303719943934331663924669810738201436250602343238651974795978685764404257179761605766376499048800557372289117610007747614267253843526648839202730350261352577591100516775233534451608879465163502818660899452332315575933270456240580998694946691462919407833064314253993143409397694102960118557766831561185161685594477540061825538202467643229625600573865805631303914604893390190691025015515109522028307858184076141388130065541168390385240254918425542616465057352269651540609640019307375967097261532381605592688923755457754168575961104339551355219683284713448748771006867041449322257375111667867727110764969513335172882944810647366405078088335907339882977889063166182386665753839439448461719278791106340870513859340522332251765275426525580762127805616250446168088299291073154851265036975266621979854283693272135403182093112607830476765592459517305878558249035721427144741871114312971715495384395865054137942618430957176687756656163244740828289812115193093312509756390946194655232718628915916513142838060334890337454522483077593600692658715605057520773237446101714455898454529131263050431913177884862932999205006118219543702823391354899940681347788629104746641820395936623963703534077823239954027851415715772822763200675112955243843890408684515904647638126910453163134670461781403356845142382379144679916848120160738503026996738204196976575173474647504050642035101848953560057893676536931146657184497109643053236808212973431140528718984203867100783132036449239337144217210518325509422847285509992746381859898446963240895954229881922391943977180440144974247633124458820514786138301596896646587864057658370775471390145688540334520988486522964752567944528192029340419996582349007003869825949623895032456644758226377150275677111177626442008358950062566385821825266911264282266948644657430844767434370592090542086827910120377999516335668705088474721246297396273216790048552089863590317081765849182442128355890965670626176895449629398196878322217029983714488971388101937970916965718847015685441760437262950729274646010699609651682841553022642026885297261132722880007865026603415553045453955659006311910662110561482126014061202413120395994638775008519952097191335193974440756728208540386459956470873398405565153681994848065251635376818016199788791526596667500785317018944475247506189083138838850872281791933144999682722182522481871324045018486720682388761770841661255353574884909038535773761921287128999817998897682290619048604386880630902105390047305906719426692873279468936731942311198734308371564667593083419902726711371096221090656786394814524717078102102701291970221594686077999269662367799908845258334614110623476914934955785380577243594554868451654812412003770808364037971183559110969525430149437312439997930711887418633894172916047498250979352972246879040891382337894139175174988595666559572324984784208843831541230619599376169719991875047289464841976546532446763286765767379993179018765645143080908592225385428579813822520276637973865950375251934591591078918967326821842093002235709569760676952119727198464220400827835455368776609207194146136983284433971807029236117167468800167668356705525504001294886390810713940293332711760742470360320999868543727818091411284567697834626255597324462091532816964104875478531372837761236978598090510163951820037762193664615492441678303399370381238190559595951824941654416661455901296169498337250630496709698522177324858656375255185414988284399649565025910743575957015922610764969396328227414063496531523670237758768172503171160120388183474375352571388259345369303624640593813251768302036910641325064397447055741315703897634495988570467526125743732144450750722247329772626523264704249791722221995459287882833572699193680857203142496231829836603459267395285969393208501486733502530589713037125750416212708873134018767540201178343462744543527866967482846774238349197797534827404554531015646350586828341584462092932550149432348866903441726795096036024520181481155466259322235089625400135929843285755143295851069908538728678902480554410867888627272938933975990823641040824379417793198681486765308608029705630725022533047618697923317249968941425815953855977242578121753853734227946345523717147430219912702335941292167078716633539279917245926797968639852333151875208065999779351904572993277120424449096215229081650790332251526018887227913360123796892472336375793311434848421635996097554858643583884788698992145482423405301093322109124991514094469302484903863697001054506906665470975301108793555764953873066905819736390101921619459694914379939365213628934945340421152078610939288656430505951020829879703918531948328479299043221164787510082641574060245593864605407793624261899428077863983443663776798386676952852817370165074263173365523733376223611295798989343621816817689518324303631214228237318431938684205544270339675968878767029400787277244178362592496587293235935090770507936641022785195600723144563348532610402263939559710585060461540688528687899263419258426152671340208216198921493071436542454444860727789340581673638398088083807322964934499202442631654462638731491442286719757718550912616033148207297285516338751800769210722142930829920377728999429551908280688998401657259702491263165857098821626757574891406218980019835921035568908384013535554898000847178997321297653032119182151101068958550028303303052827370528216111744830423909102167106457615173869748756484359013099972832415178155793722113264724066962503369406302994077166720688645023337383000314985418108705124339160063970456471050277768095897173791965450343955707383250195702741336174071821616787375994677032112296321239294337178948976657971025157805393244854956589854309495792722903020498566341264154335341727489885436824131712726369601261194914916253852735440778305163996400348008215494937495951039980711643148552016927835351166336163349442491029165870562089663853681560600916271227466686761659324746337344725557811035371164215032592377885549939623417287069009061889163228716728321675577597828312681954801288479190984119099588007979206523661731658629087901502740274240388042341910375566857539196981018562884904504769209026922787269890504253446019647804411081948746117854278175561268670099061946797418955319470465778359940651655283968615224135822239343495433529579580246478604965443418402038573496874915806754668351494431635590743370226362335819308198122919565898814401097614213870671968705843035768044604283064092790209978895090121379580858558552332881419814343501723432914878757570950957470809594770780034347900936232475267625558491858433638906517857329642623564505775344317401378859652526694693234202202235496846048790600199117796322499363918463439331163879346970608189628651097156430080155966121693409785643450048039285221632183968730061710087690713245895599621910648123884276707228701320454094084654275552746837767160783397909233861080074137521089748521634034803432900490535369249794273304180883754091763649795554091653263967198834710963650427724951682641829389486194849683092973414931933091366137472045057636146271678753276813819366295711172480147705778521174789649554641360410824591284012847292706079365232233965874630638257700693420981364905503168741828656099008526120356992367464725319060876995052796639655870044361828404999783048980924291038596817688173550085348953164575392612232703036105237014998478904097494615431222835210914772245157647690898099294058582910775757192186764876664733217362001105759475129268695612935346907080009210197224585013983302401340554518144574233099843150227266927043100560585859287702187740184465238533165615352035422448857530135769889501087662394890014592601756535197641319384649942938233151321947885146187920390007871944203322093783794032456406558985174121618773155862308194188471051594975957129279773148900099033831664367669165425034666371038574484535665041055805453411007472155530137411391497878916271800431451828353106155028014930406804205437769663234064140188643040959492490474225475226983180257887647464161799101249323169089314033611289953554093495161698902688469355249638708599112096929099622234933481610887033675486812381089521606732661515492995235417589299350548792177205622979612289857593587087971011521098088006037177115878926099268128923769634856475260038694546224063166560425340588807757472548904030344575984173220655840042573121983850545671577786129002021975808869037321621159897945157643660899043659448691712953374004328650958527897313231072860576808691961872648409484275656085419889857845211750070057706871832115989913165821810579283595870938822371859580708867321210312007121522614191734508141392452077079398937980463210252606470430509774186221728977926181268417465685615202650537741543512483420376542458218278018381052804696805265814368137632714047102107141115864142171459082591937601211424110270076314543926377548273197357208287384728218056718223707570955822506801099739310705458155837373507406050622823412205916474494890978743689192167154456736313553010226502670710429712461820973937830963384291945591705256134388289588433375763600316340250251095052751998292521770840413842543117875387620768939392173262268781801613677838306534493421520816223722672749752428105232938483104961891116386671417408507552325117737886374018841605378683512419565465913547247409877997394210147680985765209587635456084837775046511185724811627087652874303246952419608785826475582779216272314542808906515695716137797308325672319495103653191944574078012046374085045588481800543704130814841237232379495730302093463240008516302260611136852186832693793164124448869237739211172814213877608456611071194882350648581647234709987412804170362039051732087820164895562354748107903810010835159391467072907321943776113034012834890873091772942403350623409213462901985156114021875806951012154922727459457806232743980027580819289486829116590808403914512309917924922224503842846987433846308982521879761125060741638801934585301346247312447017513102802454874360723000282183371167432002328931522274745068314920427576254926571947136347561657949472116398235112171217661038790128685221904303560877028168293030789482092880599033900493786959613693456997633701184375705890363364136830718265702574869164323497147832859498882483365169011699443646827839421033517042753015802437237549246001236912783390359064974300025848998464381830280177524535012442461551724641713136710217500314906220166372548852989251125594407581825456196366061955095650176523010346541229246490034517214164422644613462888978778892045355484708586138143971767565879234132527681843362193540546156204143167705345824220723063769926482115838101697808823371028671128768137847979247020124077324429765995373655467583363016634317210954604026710903986996897202112904325918685860344912783856129508303491709555734994422660295005516903856665791983676040947993012928564080322554540031654881383777174780204423437920056105409689343390574920572769207584253554384690211819377441510190530482835488267979726691611168638059288823819778183230065404138992156927008639243151895521623679052615770726021040517804414691955341844707156665955701206350482635856466515985480686358909292581624168013008305972728287050405143764181407988874267011918726781063693983400560568995549214128879315211344792067832509317506535744518570371173197124538864695628468771498832741173888140427752043181815235155195889634920553439582092142300438714447862134825292259739357470974170531123887665023654948259787242516068940779923467415931202210770726245412587477815034389427410185369270697593063821399417698845434838103399592258714091146031883095937029794161841307339088664494800200035425450511595511186261971748899447118318857108773970489038933426596936168805817844824719286863249983426061991772168157145043163401710670479154883725319585483564164575990092630329138844422020037491331225584712070367725656653687568065246673531951296842018861608685467222861787844805132671590063889239820581331180948809879479886001609871251993798757162546146737586605230556253085097938177169703495104444921114938741881840706553025769093857576792813140784453596914802637648105761489222155273939008814041712499389273046166663030145982665558426817645945052701466766629634990696196766460384373558874611092991138425147430171773880314871420530993066094746000402745575651022990366369953933703579312200338980786910685811460458512010686893996295525528774485208680609935862419281339257263638885512109284899491929591949259204712391980070509294194042238964210340847444314682170618203161722054208048068611012290238698608982855260018766396246860975057710544984114693884280879817568645826450809957229333025350072152247084324446891572714301788665889156523981388802138686629851089283384020737335886009655655362149672711495112725525098714255393604281450392277465645438313992367624773183542437733077234247123404307215863416285733935899006600506152952607373700259746370156951860078891249127281057285199045317124153747222966446849546341529064078606069221470846174532235411512564903900952445658889863953404375779761310346047707697641132621155621333009739731389152635741835970139377613757902056438277270225259299195852950899276404614723101770007604535755728645569328339620069865104994232071615260405083631965709604525337582013080264443400989361887216339824116839055632697088953935359404178029068888230496989730454985878748532419131143409309604245958365737413366970871918268118624842779079353539705427913480970314878448442787815882194312588391861326052789404065927809512239386494162899974060214244001747805740114473301747867589108688963875810112075749046359287122825451216730278492533467902044438664067671527142871187646159856978668157308020369098219637218467478370767684463000251501155836528311723180857335147144526500764237903350237402668761019313264353545927817593629193335517778429518291022471462240393191191669621603147387820034297282353121546596018581363707515290764485617624292202510125763736305644995529793578912375535643444272167813530347965510108350109376126989274559221773504921231864724726866165462425414294130825600657105218894097670851219249153439459828431309509571398310051435354978176595675991362947643508693647700481114412953673930698721913426031501742616558564609400008362531485696082323734119080179454020849452102169456466106934983555835787833621665954162364265192181438895790198233621635422223427469520895083036136981120773670546856294321895317927194242221547567028938780192303159409895349721896341936084090856277326851891356924436914470517147434527207694890660591543501289259054325801426813486896872723117601184088676521087208099684277326810050060350355998455416315468168892501699866306344788217343536782429331834473553293137479283492430438170042476719759343261232440332918849861665114107951378935508387752844852203947531057620560319444255137981836953073042421136424236247232698221433791172244648173863115308306146672548671041118346156866078377064203688497003652606804923754485919358748110507902431955292107269709375180937830758141953282420760137210564665047655029063072016924656025964506656425409318671132278992565725244872938525998813728895423660572774348568037741814855264651821546577636499542433080285991704497451969476594209363443549500538541922841997673566978643877991212186068476266234885004419793310055279665173971719481188237454100767978598384736597538676448959825877196605007583798512638924113015791746784858614811385322044872356500178186216717453626567171540735834807938402831351365167896729966539701910113076703691505067403732613011023857478644450789443000037762356379266688695547790662664727945669120761213233980663137623758162326395868988240782562993155810890336417374192717514770584219210494412551479918629511678368321349182659582094981809517673668065508279716716546829335743261281540158117682342744016497587642147410114331551696907802059482705837770720686016635529162813080853850410931387574398238958146885924342238583098080701230885071599649719424659717492390697858332477600803639010679607039498540919965009269604147816910412020182782754508337948613894900458896168958376806885044154427691216303446141592309849079014250178779879426541546827488297971859615239694563974017000333670560830547460609226483088192433770530751383080521987537988668925337321931360425357114797029820234387708396515873437879268071328412754957020134575343927249558266615042385001124915955049799087186237113104678168879302548665556455394150724837156983121641301754283902430005578618128635844271604079627133381968119010805044033471102538162107310375088060504668226268258318115054464910488869562257684672134323121599010948432744565204388603290888844714383076636333360884067117672499763085217925178087212970028780196934974799542263552450417643094496366213644324206733904643145880730978149193084966511336903244724743644068932127459520112929146557814884049721524670417993771882973374286357983464498352020626543799769766950364703790838248233402044447747654228854971312750210492194873443753276544338096569784792523608411165407606541646963228742721099536624449289167716444630032179986324915474610851653080608614557670850679557228924109724982707844524716249797757522871758088365220602858829436435317736939509734061378098216688406109131698621599266883628059295933170721705279727007960385085506460851325182724122813787724156989667546663344717600795238393526321124383285014005085522985784743415094848815698514104570824193862046058322137589763731997750231881358297473770313649499336270327697327390830274589915542475355067325640624206707722387915048653554180930589764187065221673463197959977478886452651233381970211089910838993470211366370066616589688018018242335296054964625033244042998123218075040838829811114239157486850773249464550745836564799772487766303066300991521539314650557496643548409226622649288718543916147852566182107130939037428894914130401932900023922703847875530105381088484813267443001661725815946015871138092814881419531615274817120759831892923963741084227029905093634571494313318620169096776613021388227181613229885858859701456535689582359310952797328493819130724951246610432820125792103296048326482712111626825062943249042367518289611979700361219473744760958108825470224276616622988307538109452474680981937426789673352539066810132522260122389475808396794891420016920019119319666122088694233760014991378484749680323206450671586345287379171398022794282778155622443796665913179748356950401461974277832506462981181396702262327369220771830594153549721725872877090603017912929255239361117074079018307697958108459093172936352913407174070330195395819254023346024569032956466108337643996770370103018336746085404690389365858149729004223955869324260598313568895901464565869853629013210448266994244369721770584228649955058309591862509274663530714223560054785665838668925802551579861978310460246052260702955999537396844854655525317449101296954648435708190478612690495223218010213606070815883367333008024267700401998755002620639101330267909473453091357740681333268055798053894920782677197282210313963517863864440306133829043844598198176178217052762669066079898298009359254624993263753720039734868530211972604742071368918849125570953918547641960267487365705348298904573684219792252583674666448154041972464985196536506106512630194468902199468443896262822752781338908933459591198747335708598746384180202184184215491430486434322316252148540240307494385312934958242437484234635307260852755484398590435005824145174784396640811620647427166461776622569405145067051235721161361937954104463022544901920957367973740226914141219427423530451769951274544426708393964131237853091847312319043555766153758163477845706919570491138167690427724931712513549155249496541891305137695658881079354418994122520972239286098009785577590065494890226553061232015482260755846245731666402983361775020551197806955691982737919243226212628221490675032023015265345881128703603727913501276695864675091032244463967256230347043266365777229373708837193263529165962977517776875667687956228598787778477356211762443238871608486634244034228905042971056760483794220761390891010218354829372900489300501746884140948200448142185430444926118892021159784364463226752276362019782159304888013815180657976055519343101374146670146739734748022234759213198620821713064865420793197610100710470890766518357305153754195477934679722214072850740263777999120739428835512603776234672149228927747497724708839247462650960259660283970281079604208000569497253135863525184596874864263956868844303644704283654723039648794782786138359848844079015465971845049818279240425127012023857857368762463606197384524423583798337078953033776083702648022403889504655817166131329903818500688095480612474676955862898894942613011771055263069393195570308641560722405488968820752567474561303330562795139207221473923456720804739816481045110015662648726827735851958761692452851944242970599800638045265591473742564583440273008437472963970191908161169497411731114953114189023675139806394619196256026887682608480932323243933665435402230492952303971651214155319148596741663489565656430958136300136012310446468573234790866333814573463626465198877836304210888995707038316138147479862698845785836644924325741771156185336432509727074385245271293871365627563923980190579359483208156821700823053860899609941650126500110671466442151382782845945911264074559438378263598464659389105281770258405562795570973181611398873760270912803236365848432735637019364104846026950802266049292414129182297801074035623884352675615391503027161987987951947884380648153368758578224207386300930915658800065052390831889489491113906643478493995390305412901447763541953747773783687866339250293475513308852838024212482101989129043151998766778947913169660719267686905393349121702890030276130331485851643193326496205217659133198851866466045117614509832077673337678328167261147452285343748885655640898004669513091914198268778923839189144142143083667756484664029975055239004765570369401298617024626388997960279879616320744566786223315429729315989181793782100637943961923340302460460848657619372325021457278038789959234875776098612502520675061114493293505848049587102679471871279238860414136565184538161594551318853558916986887554299763342562819758475254173382714771089391925356196943260415270137651707035338674243526716826344371032742330905633116496432728116290574468400979636516120414587724553299162791860075033834608765993211366025196707027872430555418314719239075415323796843792162660123736013740011695261680339863105929836152408631690696485996211305253989422225501671470051699781755711966074104493066463073841905439778514720111434444332688591649519078761357268736855159350984737971840833038917384182008102817136615668966046318243849949167523202393933309786280917341668655325587146969312058808667412172084530082750134727121465630410035415595246678594876182956262537796125857844173313362090362348608397917042753588869026944708655540886696135803231983515055090404433825123191292196432450542339752368676313399691310158214392862958165799456019015416344154728128480527237906203528090364758021077838962334419626008408785647019331297506463228302092024291343966290951352787653224853647168491781798327911877950782702921463920851222146877717920186578318642941394900304484987931746449739247802819188346158967824013047534460471250584205012583596904632795692224080070113630819254643446618464536232852527429218207970148974023294644598070538354131748547529222200509726389335114104160131978839435636314946703420239856255522525978865045275478429148594041407114617390591960040287909274164123326350629048208107593660440641645885721864350563916072317820230157362438540718529039165451755858474863487185498935576563465351319115322967768776108552572938386200680916793368777752845446930786981363198334514797629014854582767365804673776906094790839455076842644198727500871074938880275709562098335612629110809167922147327461458890158876087152351828633382089019577242405932032882940976163649796888129193305429988535577343833417895330972156892388408946965265712463247698409188806470384979052721145658143669737783991436305616837450321201242688528408426401058645192619843519903566493456177067592907853616662817070031362427993035015014701648144510630555172055486169252991935168140602245569155689609094205732889211879207211866082288075606167839156170085218323151145460194006624973914537880277056618058716663899713213054683645435551378211482363220036673815883736151302359374851216839761938170148670658147683250504213585873836436609465297322881102833984130480202233703074911861144349640213725080431562180222456949469534640116340615858317403939456789300131760191728058732359300304131784761486600336824077428550498267910928285187965370736806430328446325346990383155375243701188369458045824014156679994004826121189374619064984015626167161468789819750280043836868929178343801239387125393929405765204729897203703697062867993138193322540517860375698151224122771063981058206090864667027254559811924647500258837840285862260158371810601347191379018261508848613373143503878868297466339167751700604995790270731855191378292646382975698403055817672608216332864042151383426033233873748312072991467944215586684402632908695688054658004045331922758372951707370050259875846564440713191900695793432678512202504076101800352923729653002747889810764161384918386665614161297396620095620755933018163310931427908845770318713749498166710502668537030473289653399650745783996267961558706988630098974507922137010167527366928115376969957252831180997266308019559881687026213575538059577737324959116758129601989598228506721868815157635013298217966906558875498074829095392918234035016544171482279194166623019769434358365432761505727724542142127103951944082963080329396045611457685643008509686034153121407937696210896205382404455840665947235712400272353678533963822319538649316487363781692146625837158924408823661467744192175146075280681046370783521983033314527642380583367394070920374827270458845768485986702799994242780356145906075237994143893654765109337677881130198291868089036719366365144047620808049281745589990474486151420373631317530743168878170823771830157184002823207716942735112222849536923888013935220332077308823775923033501896675900681452434893488149048639454717067650012851712064926394352117060525892184851518610324615045475916185524385315261526349313128322314321550764042987068192409407768684610998261017771420630666788430732362111675880803575254399124545928733153512095901831798783042246035799347349697970859784006184257930505752358466152594404967347370672765766409120898906136284384712496287258682071532343661340628559800288596176094162299020979878339022186746946269036649253801735457287891007149871876243256725242205352234331142587926768542476382743827004186067977413866081036402273372912223280029272974987989391704858079171343931557224788718254098981912511115623013570278264926821943801064989997214395811917092363390814254175676285885727521914162824735010863668825236515576836351231347091748493122447068117948937371267854393655259559999068558819735482302513901675964660542161135138568277289112470015222984729024111938025750664929187538598530118212123668090660461273037744720806215629499784495147970859801537121285989435668675946054512843736258733815768815692583364393223559621693165819374569769962243676425959548901457089874082920751715000987481262074010141792579431664550687141278138623220084882435816168890544200264560595857483691905369276769181025601511820542536242565062508200822907784353607409339222122987708844466596859246636896114292568040717865284050915103547241310922252098856509059075976671330248709609593627339511287968776153547247792231010785388830912770713133138465757591487748939438811674465681289461915731176357536716541263320972041676810629482197726960195265863596683540068732873647119104112325587582466655088218461338563924329875486622232948249064152270944292221984020446721081283052684969882591249882684635763484824141741558887800861883819516755226931379874930893741319468063366811714847204295130011657623683777518038258928443914483580658060905500014716600328161914451561580570738407989583783857429997091896276678877019382317757298257629429049647137993334750732404369320520904890056414551572595841536484233760937954250128080536572700947536712619077831917552236393306123915299611307410990062400278595212865116604219688806691529644385032181235521380781099650476247466248691383171819122105560334594892179783417745260358715269631633012698335619993566957767023523248226754197320922582775280134449126027819297933458365495440359696679162180971702720546967762825097878473576108953249952015482886477469212619294313313964917556027762229479775288418260289836005740044164278331945677105098192022333856392510037083860041399332041086268244286848972079086497430524526573696626466176778478699877064368659936882629183622830349043477239596454047626675638381840277930516051734207971067002269410314493086881495546271502779274695862816616829459783318849177698100634601566426537984764491036330228278963943036213401854100477531442733274424535794706855910007739539506256917903044480673524366236825805056421765531573060572415284082174201952620174277520798131764354336423569981744084959133386905557307552985280465803501131049831155517508387690505271107590492653268526372661332327965055156350068838854921127804285110389207135897329912426126075610125915751293888048875618608505769852797611883322030827891322532958298162304368469612543953045819160562257809252814073489978294018267378215646852058258320279841482178189929605179011021017242631560657108021179592956327136397099848174253954482780405706607775599912110698810968726535441997421810809224519810247425724382772581991227507833982725988722221208740163944079769765867616586927663061474130066752158261021144986572189833777603750139344986214415437409736196545154456177064222690519133077728191436710709854473259781097244703727507602350332278904577906078412153782540030512566950025441116660136883101176949255737612321045610059748834839928667907953655039109869782348658080525504388412410012313371305113990571573292974985552267182676643389529035541022987449998473065416444406683614225898654637674342036264463797939431521431262889437079593030336376281733940910308655151510775366670193438685917895565151495774156342379946784997879774829763453229621179700645049647663642272119499868554894056947846488388222794541297194059830859035159789692518931866951924930149543608167723227572366144965470404632667604472056274769384300537042857320709352491944346277647334263575779575841837788472156723167541786144541635516639965111847923199415959538617242546947409907679844288449912300056821581611325204898609021265974186274031502139334694022092917846176687516808466953317162776399649220733181519605309738803010854479430380785088254353576537554031969061864687920661709528242030812805837009439916343060797031851009352364655388549000247679403276621753222552205383835268054593618119503090496307044961680586299065889477912318778013615563759204186803570271534903501292199891558178802415777170420225041811444413515495248171384914550111839446736741494371066779263083231194374217775550640894014757272017096947735355468009826720832047973797625401497021023246991832927332492680597400993066472804871644434441053016061617273245593084025566114373356438752866314295989412600665458550590454555711514405560288031005145685686752058314208546155501515106124988361002665721657525299227771328612204999211715503151962414252598388580433818703446987966093500840038329308193517409654359806960907420294156688547594395084390375415069727896696371153182669756848395480964638738453843544172916975214757313469291991575927841530077141870342323866528645304364888025749025022855918065515427631223511488563393848179114902140352297981711068832324770518595898749668420671421170410970066037020533711578453885373923813783362966405185360272308949946440614409165427346592370282543694561216485050046552551711871864936019922281214985347125934446462878288000091518403083220590476740242479139106111822113716207904254413584558072252391140531122511785743897885609824234812815595697922202532565391227997766611429048387710372020672910414365209814122254126977978762755683415732589518863498786904356116246160709198737035028830509068911186880956676523575710541071636758970594053666625825127529876471525938339164956612933640114799632026426670448129780432559510284868750183062207502537328095551532874003952241066384901715879333472016256154704059566044723640447716326397698005914293986747565531206835171100139976125013938706329376714371268373027595164237372758899140439693122371370089066406028591917691802744358325816043068332234681548034358340531101615128017753193648682832853551013331745631918021960578468086263702226328553132162993946430273183990066139955026490553590097081008841730236173333534270330133557742996875194810626295792978362417393582595622148272535543995423800767754909538345407336422428638682413063740538648252614699693137235023560292957030016439488034198909907370317007684216931228605103926247176938847989808992129651966780511467596248176936865754182328827168993254396342818457603594564442235785792103111887365674801125321458889406889885955816238053416996797450311358009265107056129124136886546613148387666969821700488455949239386430348455144433609602955570333501724720545468034647484736907516401581036122167499826138183939136585018027054509541276121499576262883125805007676254870748963318164889683517058431756866706698639705299356235568839102162956428286423566580312810165981350453324047820554814952549949048399547330423350953321422861769356284860503515924595323895417453679897276603898900244692221371132199201770865150267511478563939652544495127628350038510997584661374618826331595353845725643141183006213195551802514675505712662072460092351778503013443125806253161551488222416802407545053663612720906064373071057602443950009879121538548784639043394132668020954306122309152367449269359506079359773362274787606023785077239601980060996792525150290343105209559684904985544244552063375877168980933752151988250781440545175302880665719451265097079593162428050647989925804177826535860097809396998483756270617857686275671483483895922282782787685417815161717128063343937346466412519991119906445303658181962725062257479727283185518060029823491004952101061945792831495525628896730265386743077748493290562647310257019339499915840869398149475095112229314237399947678055158256005433215090751628676366628965509286544808591374136743550771593658376921120078292945136497269739090420040145877018080156686168291096840551996845296056436891111442566667941180020347732571855123416725790632501376209829169963516941397693321927262942479276625411366274482881756743619520599175578288627365987637938205710944399971335564718226006252596153401037761325019237215948446790323305789822500671069795059673356906794910401236509407216984965326443001455462455928061748044915440362433589314561594979010591886608804389553486628650129730759608882015689118765428811328288268371166529522557993709986783916838424723971856734576472119186811419271012174701076359351929219473312488187105502478254501412215515589284457364290548857849056904482788726384072337109677050538039521220038489574864017168622538481736169687706917477584155709329436853848429603945680828529058689750195594628566152243257323173693611405713920771571629530596564235676568415588432917446686630167945399662755017240917699790877581524044415933084656559398883674781691555432351010016167145688581048074753466645503233467029276753937114970220623736963894915772642568467006685718022877731428246834839181988351332688241186990724144515760251137791279342884712723707254618816165716036420680278461269288441537388100167269194115939446511420739728789665510903440521406702213483056539104783773613333799427075743521210928871565590815514868873498141803241646350972964251241707081306025001567352070591268174926509001685387957583079323127537052650435275135944233218347305295978919821585936632332999753571967206100038662359921877732490705852876033020974938285206422214410452005184465104403638130435584083544040470692751788513752676000365172286984878277043194963314524686431496467274634820370567476939833817120267681596187733783864867440877584896780081119288857873608604277948850569907380401413913861912163923206750569477146740267037221465406880579922944236678789785767446485432440875209713177036739989199032558286628439283540389886798041716554965013742999101662193388802448861432268736676457908477322813840248828147491812540085886029741357495760555028087562272087039016349229686526153631351483193168739198107563659232580727336270506531153091125189596853085466588448644800196826171509541341618104583106786065217857729539565277721829691304808238503840193402616437493256471856270124449533057093546884596943331360186041481802520761547640048934122777787620212666714176453173012997804689062301715127087363366107228906598583642582559803502728425314056231166920357821141764714366579348397263673709031236594278472922825654683520535321759181409859195135524313329177511527704079502091416521376111032343141575154441907015989618931071148421886487961748748757155428070998030510451865753779344472499102253874572778438474121210966488699976292136929697099459791794911853392488773584642727865201453100445886096927653815286826819706165055144478841474246142121265833544850557477228680895418299897351067869172558781429607238953874817230155212567696059610183209034488334757031796941751115897078893914348076353323310070382477091678558573602398322975236463637334207680656481117637818888256879381127897394604687435193223682201828417519640797145054449959463651873637161013333692532305137690589627791244063913363007286671596052282735128556020057998478959260382933368849253989957794829831831132002205484911272807233045513864243785310098122622969659429987588692697191501508076386724114038305206937109500071600850945693673241942294158025769648858906683231153179976505875347493858241288798095509845548808823885098057978340451362735498278533204318970972214391281293161124494588217614951251618422718851986931976434064517937547470365741800341700224867284637966911354323728348466708628126291944187932859265923326712932842520813238378428073973415039126179820386839729059872451098712320329178576856116011616758468624243838755304054570115897923071638525683185256494285315665788250377415276727600351457906752569709255073452607845615710807597417875680652660758121640910894247389102815079451595848382667111229373109912434343993387914245514056723929937109636580272791439231639183022260174958606661312042654379737504514522274681336876939072926200557417676143360612185574298643933637405476057824629543174158315566892695727454953252735111812760990814136336156155639649898145301586534403399094101608704571572440816980720954260383837401979681957614822290353928382567919500144708969435185939177057700822027557305345950125375746066677626999671823510891223151969974670924693334113497892103514386354825458646739334684533276734256306502056298428486972085610516890461423033625785282335905286873334049338346465440920890597057007683841300392081334705694416159564476160660937347469816895527415302349782236330048683246019941995524625767085386033873781945535387484275044087504473893230954636968972986003067329087138104581189579633600720471370023451058918286026170047012912098277485140130224920104810052152894741314604833131829871185628312331685547644000555288049175794859055809181225654329696794253646164788886861540918184712727467738506643511675511493956370358850572406722800518426133884478147034350568349668686896587735980647203265517183520195493482172675588772020794359493575262266539685973634829421610524291655541135692951683132232154749514023533897038146670268447519252310770528587541691149443816714585591737024192050709939895693176731349511898720883361734417185089721855552971745229588893409420727747542859442931097577728280470625449893481503347344344902716981101701508954464802108376535797706673333530059312882400255747651698010001260151604867486768796670449787608903572379926852431078925102832889139560300043810787763792839458132509413599617039740616574128427422670682980344262749962702306769122206579857458660141853347985253766402110674995746733912839914954138731355303241293565091642634351305339594346813908296510701450076325395645642151258490059634521563297225410309384938072211663982488405927749732328176777961751520104346770905932659566950882679822292306215602251295780015057970515726132622198175422191644520680418505888395966898124415876786117500335721033148152934130177211227580313586867627712516437220741048281378116735290855483844875315097490224571418568828946370624824057866140071568349907299474848798634753118295680166833280613853950627577371508359934684443287648192471901219171711959694013843892741696898540088027514473490870346351557679911035847306754303802692775787023065408191041414793688196922867727292713884857504934455081539780916945754856751993328418068789114213785899556169096180133813234459125913844666169726982860221067941015594093250314093785059820368920667561893610251951400418877241779800339603690479561834106926736022664004924344415973561673407605023965651697968482249781850152139588391918685644650494222394082007994886255820128368218161893832090718278112281915449945643247198384659640080740515694382298476915080180533423743288475866410027813722935408562018323698047490017368308518186899091773809018414529887015804822194996552814412373928422229380160706455521450572899371120082266776714117599333836579865637157216829442373826141565496765097367138406164614367584091126994241087542541537671548196464953789119402446288585174661198602705077244571260696863339838990998984127023243425918071599439627952947941420137968320651157501355595460365762102645422067638095251887932966858507468092854470771106970342802496752196826549954491771424551678306602541369084874451399382826498169803730425532685472353270405198474396216688590911482346086073867716982567068591141502685647025610931499822687993735810252135011992272350141967389000529175941387241153539251272977355472968866059201829751660650066164889802848179590842142600723321944412229823490609369189174729664553355348174480068355045442050173514484223995332534187260478116309447241156855063914076507608337008501249530378817267410415390036311956516005454528846632081617189609183012401906205889779890977892097161117750964447455121102136239841353141170671866942759154138028952689488347500417631417520480553967969743805941836632094720254006110623908709540630374319409593881985015594505860586655088744558348243585782805575943532962141745068958288107206373322203730598123511576639386880366228171447754647838582478799753911788313856684618456204874142984166961842093273736609041867477151371773492047713142741239414837079543503596846917493312841795584228453915625197438633698743766874869642329011491244819005993980369906029379772885542858552799721435780079230244442299647900535767089872532370176163100593513294022379408895534497308592620189770203292337591832666444696570109601478831016813568043726338846327919396286027135479418125866404145067229427201218598635961912306333204948250050270701680151039079162212089335780457243885694650691070363158265747410707017090240051104358112768915469197601834085691909899181520581490317269139318418380606808758928100015050359029425545154896860400954379447760850087826585256024693500043746454360425406725896533555106367530260303491104054906794000772725624488747626083121087056653649389815396808697084171307761900118649004308952803337606590120501037266206184439590461767409965681788286213721285399923211119589048124133833066460287907635002212802559477169433186376428146057825572804816142452167672781750233890399738323157984625243147741969308042494407067120304799436159893765484298187307469900739031372180391981389806978636459329657826753938534666730209586003761023549073498303177746636360359456358352180874748451263485905546375925591760158254460200983862333321223863540263020908090569436180652645969550145584477208725695314601653207285700012614563496819802725864609246562791270344856232573518841361163285932445556857944014610260163609422948669067319033538411937449059514030422481107702563604444092441411360484207095024991310112683847277987269893445272930053852161878791444629752818630560977270537786619149516067255105586338981434794863013711115754777846806247288942984263983095368013220142410022941608787808798998834052233637926354227211477161591592481616240509077677397457097547191332767046039414092039987130157339450398104911422886857239848340163688507622713789574299007792060772673185553918279930039576827203334448561809649177295982419262370093301650716614506499276130233836878039218590205555637485982881019041289474455458864094493456912609238165107639082034594609247169107499375618437545482196536843197933176195927793659887538166545611269191193730005023007808425990808511527850283376704567381874211608240177086211813573035366711772386133400704933398610062986733013170216915249187943500607168889823289952326591051944570781824206162476754954582173902301109739391262824643418544518074274140505170749305573912986501808846468382944264769698388977372571070819686335557772828085482009281121912255502027788351009462950116912102013475025742034297385800888309313595500651971419816754831230257802734599008670622144360999163474102588071998156032154269281220874536114954389274738397641879124940643376360460664507338668905246701505664707129243832087745172593099563157994415605422440868350817387893955348301901816768844287546032935650035050454677439521817639595952959217747823137429016033051104902124195371636478630831679035317138775726986876836108689294350124154845569032089188980992416849159061189783288793859350776685880223769591124106976381251180008025336451652996877046938391313053066728058450432524709251176973734293217244512698914210457137976741842141557317179220885128554725721632932601911218787415705037256228650128303806932475113461640288905608200258203604908595683793768057099135173750276156080599212577915017408324149795241038324178218493524787384975520265278543096949541014178310900170999125842145633463596154646120355495437832005478103252630070702837679578320068382858126645898215796147038083937827266065308166943644935806434642738901820629645383536161608319460027396928942783073313211992411567066193880769596178891589815868662044797654049107587233755760506197657595821387840323962546623393260130222270054398606072297933896113050826850042534629153869563608355768374110413254475138825880488423626894984187031249430414348766554203026544446756466309036729824502319211667249714360537069390703546397862353868455099519709957381758925862084751981080320248071243910464872073914143828224242842491911903020330124717953824367124991489839456927916685360463300517023969823755133126023854430225255719390971305319838217838160583429673564230945151311001253213150282473726620491811308133159857980776421574836899770170173870081208122331890054611035911723880745136148303088754363819086745480452059222621501193036399653648100437319863819461562274581769822948013830907708518395877026037980903854044676254250993745770064012447523197259012181827555558136158465563410126853229109221774711409479183416337759687093116503580692558518785876267879799697080750182043852658973003148027128243668046723060741077513478732676989720289784440598394371206786486839890892656279496706889384539152773648371778285493984922296339384119822196509392712924731186780622174668051312470744897429110120515007903103640036291637230943047073033324818812051932916957629611121485413037178682928765139547149323248798473389674987950413691422876194734683457819212301670317189819097237232301742788362435143789299032121692454118391443567556878022150423696116517795121347427273832882458241410411189181800300396537386906573897603410468372474704748202589829387870290853826113872338047961844559211883585143098247201206108379332474069299484026130021843141400588452267272251494095900196096655363317015254821818913271062163565025512097283391646315478181523406784082194529176094478326078199819546075723188492139911168527352063037984492755615740950498780765953711028370671785561977947388353896456613307665121515991759845633569699413080817915974609161485349814329428214705593667017436899820964488221805684532869998989707185766984059297335136873410098239189175212873048502117847338214415261842281041539478717910429071672997590230056706149522278544666275376223022751497663248808873568295761484547550185698230744747978062752558684600334627697482458888112925771457349437422477937643387301851591660943370157342990702128635428456284917659708147203846948002645526668637997145464925699899930868048562510762299037306576071121180448456498523242596213206808448578020035288654052227844439611064111723408967086407794851945067249391313726794096458011327348072456494998236805964483816510188145701260089883430161328440937226064604222925223120239986633992514026272906490171101676558208229361612341908036575426978072586071055751076854197321588819087981357158373848004471429168514013281891531811542329718763665437406839124410469087527209031797464066610553166502001088877402154347112143326448289790333217762896058065670877208131666627715274891638436124830555976434610820278860328093003649257275426993565002579025443394564923478716916229612111990798337957236020929831698313253817214961116157969651989170527333485808560143937053642577809573523750614698416930961744608672890083749257581204183256691340109097762184325332568693228848796611939168505397861971256799828614815655973813180279037815659515978415677812984976776089829514921363342997616719541518874507467284358692683947519259294363914538675445850881585570606276488096034089748332694881661863644203949089810399961124519621173345303844220641766833484331594922436390957145961583554257251892664745406486738384258889414284574941804763375859671182909784063621136018388843262272448227732555701128849268831493065147765612141007715372207968385273320948735472657114811650422198260826577368722497734555986650413370098651867474042621937871263155450781516794228188504018208508115994755181638651305442507850304739346042874258594819044913973546065812943983061298422180811889413386396249407510907535177552791346978788171622869449957081127189578488893935023110753315074528659818645079331854670312960024659592730272863768890324401645667830547737526882356684987936392490826747414812122168954161370002452846272642148207972240406642754176717711134213354507497089932584547613991663712142253135124403139163500136606887179132467695721612846799200757471275154914948353092333703867711697189971821688776597519924410263514813687823911712000132684519944560963094301350081254556342774004702103391241770914649074143879370287881530887906843612551007509351386548943029332754584352850957962489009410554582718884026400537712958573259324276149498219064578931468353799076703336373806844215800759248657663795311318021264265553895700989265832406165536227144516364217557225917433913578590566883481117829531747124883064645092025016421389929856325708733849921855272235007508442351025509522496729129342845808043449957966353594589305844756718750338117026783563760369338187317331672461775155107856390375181123172066741638491260876824482248313224971681898903679148229597063481486193627919920963964075927373989661510590441904838855063394463027472298261274840671227779484591217347663025663707276526351120758031547860632270211285962707874912475355227985703296771806308206670352830638036030925007360648288114292585865693208308480930152661391279341551945698523480741443041133048460538650831862226631288394258365993938222502939195057041511025066429148612771651657146445815699320694788031945168271309281818210751254934696565995502835394121143349426929576246416988653583642322898350368785505755396170375737991533073852088695934644419981868580688082202922051663860856188348326927103343378476829312711347712423144161322098504646085749716156880456803267380494056798334394467008363308869326897238561851471676871728895373565251020074228324704254622427714947450490654279605344841662056645506753710671389530452987317890742610502776996421645770532216043790870527245531601953225243970785459449669534537014768252768968634424459076224908292213976324161395675313993798226746245884658817847670468717041425795147580574174413072791390885257135510352080073203246676957976354349709407482691395595748899398831521115515687721990301946069588819603135622349263046307093743823940247030031396383836693861978255938067467529829223712249901644669193511607960194041423257216091649573324513189924923488335482953508802134109446532954200627366785223181756960964004428791084985984071631857985251454486667418968894846362090000630379657038156627075176510857079308828735263224538228043501840921168120229334673386312531978293183078012873149775768429681859236804556539310162313856469367415659412858806302498629317572163026163218681349374384457195929557741987021429220759120514543780099373261823411070421586892375565696532716836246338154134360329977525716991296119690838476418270088557278286349134652715339475703292342270311173891275872033358742184364435521551582675817913931295021177776636837280776408493985787303483947179319829840658350587765674551634625170691485288720212832985260643053755274780118554087374186603958623955413878668711966866627993256102289917159265916897167348844375763735274864443824434768893590662373574413012730260293815623281102792648983586682374968408907078001226527208629905095988931267715639681820765950558284013381332536658273626505087620971561166263649435902832620051073420699803581379406695468596879474033321808537964775945241021077889974056596148540873280676283808516375762901367832275314074890845871307234988741942311606127523294819823052666309856624193881320258321276551742574319612085331453385082623527799184141583749959291513669724600323756584561853518354984861853681649209314042969180504076680477641608209263269645022274540731675912818259140881518829573211526221969552737780413234373550508864789257751943783622190318676916539841281185668337944110521818332786133450746267363614516472766564283226220892655013428417260965572487026369115814540372262185935241163561370467565330988211737240832326529623823544788621064105373248818991156547975834879618765001623999284812298216731039482414172028019115678218833842128898908435453106388738414619620915531432522709396392952950025300418117607408360738357611505941850369120634280042086356242939435294556808802643352471268541690883152858974987282549979979170219822865740151608692573252758825323746097876870587721927188219305849805494203890105805960874409206323117916755200827337970737479535651123934238477958606597987819683269937775348400067870235301317203513845211842891755671528735913790925150799256508903334719549683770387017803242548482399860887156341545369128012757063368614767133218069515783686384393332600448882727743829580112464179844609503183326638109663282847202367596806908309694587343910169093420935106206277868416187070146753350729801853798213426776642429280054515575651709015546770947573857451932642191725261985977674151792043247239788911736654660903453143064953807228012100570662670371559148271839577163106676181793893453910825578217038603306589300982482037258311000244168506277689313076397613001023169359334939456697423649126772641404279336779637950202588270539269053071730748310921882612544221617085425008350409231307656050098725863507349098189831582908921906342201535466668680637303250743321421222317955445173673979183674153538064830261853621408236130827607352042246862880890412788517692338145319516611683396049930059526580297583302620582220692717314329629423586215342003796771450899714112143919937498052856453758075918338678763684021023203587077306143744367888247167806046475507383341432424780554969620017839652532261384998024652696996354278311553642743735719146608539604953233452898414609047234005828777203673350640008111850713620731242877789226788474900535901013084966307175552318807138318251997346965053055189952942836338784292193852797351324277186758749091752489151997785704342091433416728976187961337560803451456922575049840093740480596467736948278122995485365406168670889433117050591007192594971983781354711357337471530581863994165651156939774901627800023090748465663160475240310508695508236899760856270338264252580022145130339120173802620800177539658702211676606325349329912873193839054059904399872455922133650142881590609067636497813521155394032101716664494578790023135438932989481687374331910593038120049547727730204853075789707492465630941206006701892911579516093683615643755673178616664293858242190516400038936078948265970011229365514988225461158797586758657615630652323828858308213339479355021371567016651647922022356932341039259894351394023258430908996238723754881543656637775256016840018178560272732145909358333805795208291362182490455476250858741386539214036200121879633339829071640150502295858403545699209177031838769835102362216735839225788116882410701889210057617786337971888860989319544730970327478393446909268436663265653945863988563895987331502926667770726000522629600364331196784078131570982341312424576436045173541818944876936212531142020797825444170254636555669652063083292112237910890397866162410977931647528483379052941751944996487810806992283114562821927709820962207252647850970490685133375753716455692241709183990526116076836902924430996860948391722355017037482654442669481247122054409637835200637676083540626403316692220921134284638208637406559429526780943187246320242353748870071617984345014267617654823070165332538636606977934529626591343569062560359562489490142820641753204598790752574080383618508904362846674539068589159196362286090118352412508611041255101149811024243616735263687716700635395094587493754863415932349761793206808035483932201808725156337747704795974698906083874849189624061315370150909019191372882451437236088596664708667302789418713848970913208824067869222693890274760427142886064352056193707997648524985034184007094674089995081575249452104991480851689723385046019609883178359143599257454409868210607242191831646160007664970125409913170939248186356697459115328569494263308216848421256258434470394908512248743356457833703682308840695001439343557005131002453061717807195183294118283209553111345579157924631227737861752113302738209837763162015156801121031937397447528102554675496006409955602993890144772552883520177285066323419720383476926573045864573985165027199764508990458867610142626078387834235557036213769414322179363437924903693162242209551607595839984794261842524266315457690787011123693381374212966394684898254226134782819539521998463835920329954526305464910761191962564211776860808291349058441087253059540607866779715407139587791649032245874233959078172043554238143986944806012024112580508081970580844747362127218652663119053822763163523694507780414904161648694666800671037681202314817863880553808529002043967573156730285151113799925608278542443190537389461285398474761636653941040453582750299756832115680493190613746612830211387825621718542648187709594170497729566698125416431823752630060165067637641396738398979137902602129980053281054940969655436209367278874792941075024314458962898219588186975344619433511739599811294588132459725426108797000191378757800794078490633294247795206284177536636375311046521949665907212445587105481976963122204952482968831416941874910855198947026422716060507302191887125186615896511103245289527688072965236808892508092812389615936706726354322794206447678411825228248901467341404271587712789571848741762653090193816754218199062109674219758790086201539595134458067869093197914551034299549889680270767656868079787341402291768988686716215744855157119418345424648175897024004757864637585100684375931297412975569889144134228605037820557303075574930850984089404096019818508750734999528255365891570325200982264164750898772464719929191000437418303943723133218783074071282498237405203089558139402547435488790059282231410367416088487995706891618051651083627958521471092569371937066104022130598682183805349649396230182767846253186013541635777023985069962069133522510027303960637268052971618129880849847883640681132459377319090315349924218135123186621896926813912419569105327365133520229151117879983655134710178494862731299388088301256115376354820528647061398419384893457906088521008518294833358853599131955944907866975949076525896382941551247583884603385256282871598997803715261025583170280502014497306516924408609693967002107170223279810280815121340243397145577626295252941697046171421538632012742497906125710340656284590983392390757256334373764076143297787021461021190430920078458906632747233638464508675411152687374033733370895562104998712798222797751671143247991044339117490128890413280543230710127894495091523958018876301867841304268187025538682453156523681244257099314733900674665434821619359486015920483810555883374526222037584917455941251361386848145078211128733025069509297578178901802254485320543246571546844650334200543561362137189011945025282028151187283166688128880107926492272044842228067444210064184044122612547334727420370637892448086125742884021020691940012017677897878369554778634628284573044198175219536802189770534452024815444546531351311086997203218949725984764417186030443827111824145018369429023946293480119051483473064429466397498298204978801039701746018522012825274391865088895395577072292358469125298702608652983397344881428245533148396240319511142898136959962546096597096736036138145192331179624485043948028584672102520383783517616019095326552843996567017721521680189201197534712792576268682063863344671250927370515585108543367309612213885870308649114182940717810145014075437738637194738492939514261742783099562048429261535377515603286994562534936899336774436999774404949777917085424848886993571694426511980895288907193909988013079022070369126383962897931862484297800098132681120305129759576993875178428014523348000063377415802520915284589219864271821801225134033193271232488073328325690789483741388497998737503760909809011248686132783699024124450621971320918085229833753640388561319918378871980275228879569080810756922103196292451208888720655746523782707260502620214875684104516991242838794382154176457660348088794736482403647835690373278146756691288206259944558557235643576430356796190123110397414297505906552280566172362928883510022915938520775617726877485429391780675398065573838420508005828902824500321629380382924193760587354071003781115744753026122060876619876721166236260168104956963193952430194992661306942170394505717088702525059425457586023593047337733668572723926407311684574936712324280553357661039862744459674133559212538375790114258822710269537748439754001855771684008631820146878382262338381361660257162391781680461315002193599137538012726831623670157201880333336844534805702424135227038013330931074907069187029382145834706743450019495803314591326368602538965854353516073488598568591523805872298324013505349290899923928880485977396408104356611268499554921975351922880012020572390846464136905838610265699799320167743539824757744289124239897711506346895791005893594673537744335745939292858864269861879907167861746416526350484904465439885954122345425720890056929841513807771850067388816330082615298003745059327186849008504412356216199797333616830448304751121081986245927112684829230175819507780905823345410066893407473770692794151117395603403773846069940523244455010664083778144056129910098201145390911853898831639905169880419607668090338379582304459466598795958194670309899389620152338500387673261144835075284702916503236343530556719318700199278330010984064657510768108184180407498109352930878648861464115110384587884623298489883190924418090729882034502150979819237477008125907588959246074061744854698932527636617025768892154031029719758227863363024157040685350866077008227809829396573960887189480178295339165726650537368452009234612338123130312027043750924605168382259663390437129149357852033042416634028221571871759676994426406064696239119815732644388848628363003248651526455645687660377510128444706304626228239843719915081589505673987646367835378062898562941915037731723123573353013834151742367875215741169329506042895914544785763459480477202611644650698341392662943304695298397511290588505476030251076089325709501877396839997385660684411320744424843480351254228646512220565957399615688976655464516770425304281205992209701028717241256276734292995859387179674108406871923642497142948422582615727938828045092546721962468936972877542884533055359556911012765666965298436101482831028747621163464422993695956947098430294075366263991029819928259920801124668659119444981420750853154238520853320647830380821069941229892153591845542680437963279635686329409076792770208072760372897447951397981030144153588006186173013826198295049294962516116457060935922965846103947620806833052095938629276688699111464168224665835408585905373755940012615771078014404535961441091645823084965801768529460894400644335779645397624668883555623329555892892190092761773005578125975903037290823247957703129144883844464444263811389772977931371457263151587934032297305187084381352367936479772748939962074852456646221475301505050672786464431907611487097538947899053771659233740838423185832743075200927797877025868338937433008681124109731959490728604901843621771721325158762794674189032675399812702673471699947556019188939952901607000523247989341046304458822495495360391253304919084095050690869952508841842725268461855967423085057631917711524214397331091763305819546207574250165536557296710513826475801559822791331100990213210042391114501904951409644973642785906962483472493299368320154977471100296526769340564095139011207173820612245526862719776699557846713328142753005859883457253601604461165435746781778619185683924694607567103172082712554446055173569288849007138472381311197575677381975277828765382951827144695157328246315913513377847596794737505343756932461020132761792603972038821734133169608360079855257311344956358229489637486636247007427945516881095041657518835132007208162502326207367302763631844761970376036239889183945823846943185394117930229058107901149067938071474948265093471829944246605954562060878519226616089903259247574667432727657308567474029239343699224145163979176005755601456230403343532257572709793741553483238240264945538094150446169536806831938411933478487164479751301197825991926898096774660730056998747931427192278655318515400498257056945910744203269554183001682351320936309015028881281787097964496872398789644017817508301711677256836155432507961479889191050938537491408214233162694175966219236348516590549774512604537261857376604860737087920002956028286462299884461428163418062639705843717772154100938093144610904570852868576580587473742525816229624487294636917364494642454727232325555643669658527156192027566371051275353434734221638231765586515791132236128153555665306315279788308871898969840236808421756370760069648402989151702313751231691933865051632205447660728979493696496841832956476259536474759918892661461015096981666762872875335117562314824777453084678631077117598622829423383257820623716284054583060550808306922868861668853891679099561715636167555440307605578191969385720118741447583622059194404751324912771248095804588242280772592750077335205908991505806354849873143525209279370491445437325013070276978270847306757746595399443771684913510673937203807120103765116237459654522726467793955526547110663072103968067690674659504495946512323502277820868406097222018024018122720913107775977122036353656204875151765233989651956997113293842004141717853229552666960861982961319847836675323207831928708204560304004426335228929443353530682100489262241776385035540368762857973690071158254211565158175430616974881106603757683392054083975086858534393402556558465476965002366774817542284337937320467855339818718460742981766057977424971072919133790486687415872331468241818246892686738984411711153147103875354352405743603609398815075005973643629818946554724470861253543297353062276371568797175256494210425560544002601061911886870897991597539041075864586575709209318519567166309230089169023693566101551832330666839099984580517254984976330387872964176542806983190606924604419271069779009718085584426147176817458851611452411609210483060359769062396387357402150520937588127788966056581431536098868199729362264362564451095530628426664605914323102128273997180353042760701812126710911353873442057580952649751402105958212042715050427130273710459003058043171226361421250894594781099672132365805774693484431819916091278605345169025862496767480213785252247648041220235991437467587687804504533474475866792406715538586797977434456426988582281550655092686254909780481049141184898667850173398173475618280246388668978630939893684617173516312964940662211970319090161704446176058587515212371924522232209775217733338970592775911768231192638422186582304024791806494685964412171805980845128215509901390922745135197622032033514768387715427545623812444065737558812656734769913315961778757239714537130149296911652139089371909161057122997581824641090725707139179171293359681025701216294877440991941903208931057743635449222091312711269712606137011235998820301570000551325606269319673153328247605750687086205791658633382905527547029565950214994776440269012167500579004158654439776270258523779637700485329757961567920823599974707661484560270629340956847479453913345901049404393905051658730283136728274046501333981417833483142415949433307264170476720471653914660487181327205826010253952603550880867927651813572329315337103383884531445703966481289664797719803450077700188639268644866785339695930568742474850741897755969932598379297374929355547790455670015400266825981362200136845854044941174329173341591347795604640393358572603378791323116978902157651039944528618903701182455464367200771987248463991173308613068012955949640948595818948493685062927218109929823554474129930529973353036489788232508289096901255941644645400936384147326868009650886834511600834875124318022213001225175341132586313989675340793615866432950725802682629188636173560388932479096163220128785149096464575140833957967307791100422258370077166204132792040038416897838365379744452441688122399487010350253322557314287725756113291947380340867401328354216663599801636030618511824330387271429254226294073291747372707873110993533575511823742608961930429020929091005140116406263641763586016553274457194126421270422844342549908698706598233031018753810777951025407406374339704760617974843710927628920334627500570547695230208850108677223770142367743192819048332014927009782181223347713732511328091876970113268825191489824708040263170200840782984420280302345595504109118234411195045685245773014878996648377779639648876502537309183107571908796520150659566007445602725611037528755025458483892223164577621463263512426220797192723774675027953677620954587470665779231467263402779706516804104881265923671552671423272121017551684795243704105612516803366681088418930999368805361183636294966239141264452009678812885627016048063814528220932086271967924696567352125684224460062911883909333803354457692750076861962004755456914117591913409083997669003838561705177919861711324319884771474231088967811670745128622534383416649259748521215301825781452352088986393753926323536703277799412770230695847142967728315459467409939002080902354320995509701153102126537825237766308208619372155009201038751264744726364189047092400295718343001232467949033918917902347797381147111174563833155188416312057306288292816163122891081359640019899810688284737169779790190175915110295803763229877552447455729487408121436591610639406915539994064019462199275107098689546128648901067764876361609824384018389195547507862329274977402988943264951789941086050195444779631742301616670761086267144977827282269838692097129609150603717526445772125813339775208141078755679831324274603081833776247735683941892549671890625078305623801510211949410413231244224715920211212885060832386366154434207149764218215296762361375329361976454926330314818376588765226803192341404060770908167968371359323315104489998291114008127700100539875066667056957292055622676093020849248879586219508169511478870990389301701284539551776006770360684115683960697448205746957639138771977079277043153877728760313921254255816590016010699483065578118265455767210024125973925438219031557225112182444103817803868866977491096232997313411132326703643091695161221490444880412430286920293574458244919726391355701492508214155037030025210161229398050013982491438078256888684198887249083035730577757897896034590671401391505956958847513201810298083852842222148828287551782252550124703000570676052178310188175744310913127478511440075765051657965674269194412885119420683427675968035167517369143001045196767958813762364812612401539009984356974371572157411422039130938974097040385833748719311689366114304625150517895595418661002082286496718452310776886436458995977307148596246881288723418213254672803986441099498480169930877226039204020106436849996817118239359367976975021808484059857356192840871844660985809571522821972263396716628264397809930328481552753463497301720906364743986026777820943830997207158691063620161275047133401052692355120364249081750786029074811820872169248993839228457092273887985044198613176527462687044057088582966339342215448375043090435805870534691197526161567179118619500935390045735937063030184305315627675303114213508837575546237231798197453423477483149844454035890298730648280322578409564797042936915459900441739620571325053202350001817470138386751534140695538981711631710597205512194152355672004242189644037126579459046096004248883347554450486926796337616383063186032245148415674263726180469961730902643241982875767209850591577835510944973168022261304992633530025141976783281269083375056976324505516704452056453608473660800984937402443500363001314731142360257141038900812426330660385130308282620267347062789276904765940198280983063247886421255864202853755350978717648253278624353233853069034590098057080067263285404661056515541813283996928022450538284969747611407715385611218951188975573428508616584353121324142594499118429576060506915821061034061754676823663263969939286935731810922051262829675258377497379286436902683457205072547199637962358551720446064239525556197462677629728276895447748853926145747652973334249113243928641224541121104317918101988380563920091658178839140770631676325943033943692124270252786828052383890606230252574128808432054361910491667470529750687794360013646662329714287835271096693670623320511840532394944025304492825195847764892817957370927647268428248391582535443308977688675862824244844977069954339637132557556763251231034792173393882335955544433092710386914156979557581225036981503564455916605970992389451456911208817650251484139551595505635289406144475955606930892577377749122279526533494129295205843337717859057733982924639109363596462890521663512173352649894361204297502181990350270566046557257646506320823429119944235539090292504612889309031206906276176913505475967774009884599260137307345169215950966871942098013266379058843261865995573591708346151808537533034321350301561313350658079367897640092954422617433495835639314411450374684297987014994828695867608061897874951459013010964255401447448940248029989253835234036605336112740374336258352015088882850927815985374621144677982786609847783828746754383536034482504961844521877981807821571314731263867287384545302557778369658984705118046368877724811753486558609701815456500915636393561835253723909248838741046829148234049189471226418089511668013413252471990500307555492293128269592922033510663424710264107044684041365151166983109138172591740275691282199379889993083881392350455405363971179753551927435219211261818926648472642635480785720538317492454795208515992280033924866031074250272380580358744849682020210187590048738976043967409109332968827482371725832737721882302002360685336577196043477904569001271508974191420297519954025655167585241398883333349733267647307380229458000213434656023168329590895510150609287377981198160480669916052325148113403628257903825491498527050691240180567044275765156616767663696877439643571949272401588350941245256362575631061803180190954767552227282592834747317941574059850317573811737170554294618833199119964007672669320315194121513294823629768086501963063760326029678727817632353679948611424179844518067995762056515649628778241713835202871444644832874868661199277745174872083151372141782231350105921628093417006243460016304854651165394899073281338444455423696045840742376635826366978086270496730104439393933307261065117191505513883282324296692657861561346590302885271994211908809674717129335771819891391489530783085890876584838327508889796715422163252646196978927128224030915072377650174641568574918977055353235559620725550121534480746628428245611393644404290984845021065636101497997869507005827504978149129116230544100651950226303794788274492723469093781196449222212103698933787477842871479136232302498433562803249887656498647928431636026434765002995665813863683070479799988403268124375779097642056808131800270160434613121033862027735635678485607633540365233997759457896617722568058550264979304455408409566793104789526742549011540337045309541639408141127047971192015376507946896245433132734738525517882909147508999090990966151622451706716649838690370608031119212851848869241623667141812058094359731706177972335142770664068217975854728386932262210023422430131359479683489435101893166228973128513857941714523868938670665086853973310756096712789290453383376845990188166204981748193675972683955533878242751053082820564600764059475375500050640582492549290626368790024823644195300409046420793887432547591664201415799159147307985877926944938680573104249041081523837457503423672952546252971974923649125589734723970986871225775289602194748187940611632226866576897679427997724744495774604817130503052546753267898054219764544398993702710562421540795562837022361267771542609181761294539283116123499685140958590939064180427772834178975334144305585521948480712699354849630713231061160287024047327752769707741183082368768956011746996579636528275832322813490829936464488299605536635728671532674309866462545863357951688115363218786429662616506827612308518609492898940464593078500360830279834493986233460296351225426734197525118753697736003343756559821466481536553916495057879719905837392046164377824996270863471512522239040975396762248573976435791138218934871282162443444924305121866738798742252888117524728419295644809769098023223685859818488956042079898336286466056287813111524102109326008769487252936393799545047441469182697675006375623166093598687121939806185951983457751284365302049139989829952429550932098621644183355461762003699943355371110529368419923358443050447705509134088820733331895178955858495735984983240001856265037071961992553619490657263768521335078779028873125694011876193555658157790579683763561100348455605988503474729265016161461829601429163470622285273018251509785644787661742254404410696390220394632635307594946725552361694989874012911699310920139189695964885498027119353967400600592845852661187470018942246148870436426482385072237840029420204679689130176471589322303910586740762957038657245980578777704396521752719074286941880333472062279849997256239060085760898597987719903493652279440894996000449063672973711518127816126598937187185106618450036094149753900447528256651671236098537093900540319749842569013252187891562980173975654715852180863234332519288018151691128606202710018628294834581010461231520340421634460764426433696505638841341050942664183216708819613043446842015293475159316825704345723820074989386665067822357621495189888944644708398135973860714563826591755687353374658739724068872446535402454906791660257189378695335746037098773611371467350216502052315874895191273546727730617710918280512567081815501939650532048760623133277925696017732311013193509251843092340924421768092688594813517824613372272402962641917096953512666931814487143578146677462085724571454553077476912271787456473502237643198782908513208238704160765414713405941252403927716955388024924974989150392740846167554546447382549099755141351479264448205322049865346052681211853810458331714589949811670667074343272350651110742684436853212031840304872275548608566036640260347833998187934483811908557033058290591755733480425840369971612271499036687643588599333212431838636591285544936487112210058169725912858117905458893415429801939504594116078467304450144040894022748467026283371824977493583148419951796363135442805114249927353880424950181206531777116833594367378949415081401999971648798966776868730080934296023757877701061579198923949321253486799820248930425247678832524223479787402548279178008153035320756215855278553197202911357444815147670564061159223537332073671735498009367111490794954360741555468465656179188090640851426834707644049796723965030943620631004324252001463754271157669618972926381468719026984008795398560839758362911195881186601307685976849749727698453582278699973889544025936811009339953799882677754418938985138056673015597581019065371162340670945782417755840234277238835726857852332820824316396710395866104298089580828483025557535847166760350068575682106526426501212744771321277964019718723340994588100295651868595830500591123974669238637561476382183797701969471592360248139793084365986073398787930653345498464337538104855599620805669843498922726129745647951754138584953239163169023330605360630007779226736930085710509665223225038623301976021118350130229459424319574421275796210380959253217498232788445104263725591810432589870419472670998360766466690492762336366294409762929897163294996616931287663163414425243239993689260932894059840568500537683477320430803501440927702749443448604566478997915359455889517191565052504589825413490869380707227242831072029329194262683259515396207642000500060193431493750560072436733101804743022601629915265481839261614756561119797531047317701384194538587938875526385636598540307148376400458072129476935016372019170389712848742116477087787186228879659544634872217054349336427063954400181615690045873153765432506273489491068543313576060092239196220366031461598322977322793824094667547916417765048634534159751608594010305216936220799239810997799775014163419702994335923497977912964236374684939923962749889528809681316053057860021179289795853054079302163100452090123816021829846144515866354728050350053536072062552051098728290915448139832162884389662604278438260370694322489023433561922281244269490230230225356954191262897983747399305212463817555004024957213429980189781110134940936535092902938261526062637505370323880736746978044949807007297929490900992269537460745554349368243856433110922322985766229243063411445415431323724676913791473293569033008472343741170367201698292238923360276297843328279819482471425572388120130225469809553868778532532532439998927899486818387669320627013822461193733280177647735507347664610719678423869725426375257499497779674578895461013889511858287006388749561313529329520851339221546622345255514376697339041124658524632134622667688391032580685074671156860066057322669811472892593483788692219600694252509652643376968790658440129084103125010447901457343713080919595745710432677989355490666990191547578844514519991355778759969676054309536336991518365512882672311463199610128505445360822987021473110253369541983998115832626101631870116857031526717657358530463403495231391315501285454096928710398616337687184994746430449649665521717482912713197064460502273952393887836126326936422534132673139348848590565107505437643147306819123566016046251223562648564787558228365333795538197223809974643257592278615233994194994740900479745504027375669793921112914821676903980226024108864091096744191051474296753996443850082358758917597791085861951942710673869435065302803126366339209374219659695591107868561996868702956077599260527164780479183153437120669016295296838675857311869842542560420212193686641793845339127384369960615074318914208293802850915069418717654796831657532294963950561550491693299929400577328831100755657532275890326543707234743192888781141207981956251250536298929155948062452628318046972775418378570674925321491799586459508915732252091104991318987510240398169223264363060914466871150405998220085965211872957840889224842127151379450785065885492967310066425193312019937123512385270193418262376999983240164776120908716838040558814432364873330433070437235260840877439424148644025844201537634525080355631425570135067715133164576681404802201507636549885601852613646117243685139223505698271116277187411936483864124439315891492511946100512480975734461669316328399395342545124536069751168888490471949157065754681501825124014889828437010387640799633230223653176132807063283055138066672569026375853998300640653175788341300869701292348221944825448012807582330618515716409377592856650300014480931234042556263455792473870717240583086266559479271082241811134307753583282803086879339448446404999249974730500298961843193595284454094439416593568218733564427105110090159177645902371976647091031536256127397175233236080669720864545412460413341365523506934781668589384211180106758094350697958597223405290542468097700048460406358282596259111755494656258486331389873160935490487660346860496758844955278191033181936148122582071640007508193488213093120627524187810161660892917098440184752180519498900003384898168120330605219025678401767203798019156706966031149571549492374182320088899444908381513237054208799354901554156045346061832960615064007872926033769298967150859616215612607389572035701289019803769065584590559792844539024427095511579800309774953635701720327494498782437563300149136709081390656123074823999226928028531419017188713429060721487436824488077399255637499527951154637778801216398751576753514089009623427588522755137385797901310339198499437302755842124249010796309201235429981414787139397856231151297315477527942253572953409700554537462871596009707245748254568392167724784104955219544990584446888745971207042114233337992281514538529923247805075701777559914626737144097708755010195555675879084058852356919492843994775546337383138492562486217382219299857357930855387158678416593036718244715082279196677306219502534632359358686873972444687275628493607968481891488819950478815855707352987307233123695975543008238758197299540249284872386556011243715842515311035377393580253281684126950798624502804268968585863937356077000539701085667038835317028080408344629457148192274272511650761359451053537051707091377786808471742499487878885766612486152813040337149876676335141592033472611604304924669324300683820623767596520991762577541864172400179586216286131622578841961790158419335102392192253322816271764637617816926093547331858656892411140296902698540781434641006983756773813434260678384933430350102721089049545515032156488912685928329535698932230811642607900368766269760130910663561498189390318593489391550123680162770365041986197442182084516626525808393152232245905985312395739555154790853227874386583997512578945462052278156254394363067411342111774629612381968292180890535641211837652550050826090237365073947180318836651405775733263712030148101440565872234296307494768630180119412815211973037805595543306698291842269278137701421840876520532072034054066601219043298222477376855505162083959540949599926763876876261706993469098313894353442351665570958425124011109208172115600780378418061157215901682095532841288468505590842935633249794751970573392419699970187145082044164264407183891872441298771381585212212405291134848638926958258532927331812723039411478342666839205078594964675510412604032882250927662570491617510660128003328173820213573785198745544514775751710268489047227164332862843032110652693914362349878509083743194557047141240094255765837398257416403254109842414552515497884345630429614368135228792345169380585959772861324183557512828242114972307501967179536862792660152072044987844680134417765726593311253812551300937789383351801060078267598745323736725799148590283497951748688221941250974339215295979898872536997631583088925817166082691375341800996774714090502143906483211070341107596355368756168517296207099691318255037262982619955853247563046478823196591685151633545521588111898186012437498961944605050889823337336938393825777033560705878391252966602513171990225873661502627357502014528448374595444430046859858292707975709787168995893393316005356769296102189207029680904995337158191981489006909080885664557642762125357747464024857585780302864154347352024973706952105111278429517884926686214004363120519914736027101082027854747320973599119413095337524071405350857731550217875093880025220855696620185299708363189409853724409265528505146924613461272139025427389521015596384447503694937013881067315420664476229819426097650918745792739561264814811888131452063457854465921732439973105462605666292993151316314452702806323288782261800923898888149530695299812028596681393721351944927401753947434624379637809678709650214688740324518310001364677489642433402531613311254791331985261285239820165180676159260035863759829411874781509950911062852465361341041156948875357987787346562409775255586184423952729982015361390924473977305098072825256561573598041078580509221478797904022708285974365837167041490364287715048898744115924495096447250695204296893093159598656742750618852733808661711700051464560323795352904440353398130024477759143887385074207417036682704785309854171078871244388241182655612768181933729767614905252512748396031568595563907457574415047574682737876782795352090452465826530930735422060909405001131870251620196371074071137289669292490243418338557720061525646048684236394293504358365900451229602856347964538712808352311220634308680919336058061967862339887627216417330123384227366702892064938076367869919779791768125053550645773642898262550596728858066032236381754518271176868237489742211277746411809807485613308499824771722087484715649334384455604108965607081932544220984115520093767209185099219798459108449461955600619769206834574874867869379727583184050054464652304753197196002763264416951658012199572870991530650166501011625072123625979096871508691638824239783381826429940842062259689364746756875597965394027651413664484955136721427247158788760687322120440432154966963896369172349472140604286342919746542044860078617685180790611203946048209517111801888619325759498726472468900459241642769441588167688411466170034434746758099434197052191838129644276014563061795943863246244700525688511553857357905633603581799777897709406847669053459386033238246895556727446137730447561121487649434657673093414255028125178890460320822922481056868263682371994353886416486410263190726692780351435810041929388982133629161872094420777308383377590581703222777177564303592356190030905569374554668822885209292402294492805647388639964678432384535826962647224256914979426673644852934411133626454338541433096889650850108628083541886533974705574892543209816672405481743380267916158777188584774134368218859889114378939205226738770258025946485049602767069488486343920784045772780086049947989473411216864700005905279945203612940480747388331209001579208997371713539806417586434846551130915101977915422670546829706390048805272166842031864293068557211650633207196791662163313768011486808843220572084924019852237491562332407627550213594006881000271800346665203502025031391153930010519837866521366615192665819593941560305857654453309239281677081141366742713534876800796324065103443515831975639180013636056099479781646332174315435772128378813267760249813830870493432261275908384486455631638958791965768255982911400586006582463689402250921219764779652796825784255361845908622696756709635613446535327040235466129550765000844959441728981232444855176763918695316761693236900266238188049776326256624948121002116910321090783174890622767161650512997892008920001952305716455972269879728609874911155203411622359783151443283798916289049688133986323565414975384954974105450967516194658924176401677361745691969915951074313059815214521545528945856499478173745393157561288978422990181992096169321675140271624699472898571331901210897774796822709630821907693196994407199425736250524663335570344547155642896777318862672716216818787518190292860103314377186310214570702765072320288356464393070759247315932743056614380275062790393245821550901585672642398064936294632141911148094250649653820662260497583030438279244963498389218309135677609460205352900223297644899551508507445244161324775918870333312197051017200287700037899274049413083804822440589085172019576097383531522435156142118023801399206632989364667039192406465370457641425514709880887732627898560829351373976764814569200843146668578315914412993769719436149240344968944769044235097719636935182981602456857464685527915113845487898959541314406476794143171532163711843733968441171983697763878219215129884619721287297452881754047042610878785475567845999338035392911112627112735612997594811365024829072057360399626624511537025596597688673708356294984577573083071813105763089179695548414478938105259171216143138972702633364369596030758749482786403666098055753966695612526625366448211468485531018176192167534229171615362870395556332559869753438223225414578167020370233401059460007055392876667781941897116639729989001683630767117618606917350711755201844563300506328906527126953526101025067086839986674094267088227553869068111745438756674706540609251951710698128476889000259688653065408578518140852162092218242759532484645638707443942906556502174030329694796986587178044651245783696830662357478048618238014831681660521369589750078811279655240196779492347772225808456275665166726863040684486126448104958019726413418395838934495724958445486098016618251572045703378307511967598360012573131453567795579300363215924493463106232015035614819474636446884561243119048499773402688104026017599262928411768642242781319385352482291989695306154313546980692562377701726137100572041026628963619631257537268077851259904548974704325812306550708995784216425773833342478797320036867289017918149811458184498730509099427398869284260338838164646097828927557004472681906003905449659674521353056012571935552614107967190176433023340711172445111657686390672694905526679266391302805938444805127381914944405129509169900020252557748561477901926313297905279348273358680485611497995710011253698552492279575169970472306168267601226028932272860066649369512029384597380670548928074376691339045482785966510715905763674447315319714143744332522491885017066682904410417420224705189667220822360513562463636399582496771672384045026570890387048534904496730226680985464865751309907116526750202517883858424155069191312608261980428728718337839462990886099479303103350561880819995438065157064034520003536237033261372401064817013435012426683065120449767080647166500257830980420609182522060775198799160513032181229192582320492579982212480407807983807164238165273112689057717477905835220431593739968026056094819442495592137586903833436193903085981773070293193983684542218961339961763503464791144139283413878014185393591518915464470528846792691825573665448090254454586926609625848275712640927345751646809609477241965345367367253496790944440155364491367798538009096014381511382535116087994574449999210935846338787660526450016205781462566607948101175956293321784124948131523695372073989020951093067749532680559585965593423976507156639220791672390671699759461639829717658498618271914862310172436485887304691360836603003621956233762318967595480752841868877310703031107523243789161506860197469265264518339832673372989531426857358779347847775244258906561836271046238176398097752048627126583935461462437007048750732963248836128399893405269457197046184976314298646631961529996391123727739953989162414865973044704181808518554345815079895027823074986615905945890530520604855925053580123929529619035049113944756568446439293847892512961709292461644997310171836415277231069045251518311355231890603232145282357939178980326180005635008973415010796750913752417814674991309851968899217923189103340327474982295718314423297395958840963460615336350597656229393120914205222835130503707907153516911917553634461350364363973986219829261824663659922983464392944761617705486922790126245298767361171736481020694368186268120304913000938997790036297499549310805352741704063626236154818433075247785398704661361962178169928933637850713554297510601832626013933579846812891577115528240443285550077785502361031840949031685058924659555887239434197077855122704765314899261464428215048825180013992373329967476725505733809362088606881763083860761644721943342449691197603155713486011681499687352133610174631401871223378520720668350964054855573998087532021532581523085229599325511385956666214000744801611422092419437602696862997561139373010694223781561883936023942727107500306454382336683871444665565176579622726427642350842063647890049171430990599717545163769829781384380131272871315121937844211724196130166238203828387362406144829320711489986209791190003080201513019608038519978714105947926732401362047819004906082586885206819090298570305369303527460323017478674180715465745366606550421821290465951759873493639967339490365909738342738466483401212002579504599029222874891378796023360860831780080300395411765300456784976760383681212764686985402103713739221535843339903117128973777206294613917234486821202890288292441790200944339185983855117398609072246124261653145150366024152581040394550597634375341909879301689939947476721160151897523185625161324260837708020490596386669263524176920128524743343562677302878232514212406685808815197442340198671334880975853640324721068474488861550115421301681016791290507596945130669079456084578258782954511198665632677704172787792528577548108383564876522541789996702398012615056485218534766315407229527964964996533029446640654561627196939317674766865770093745006976856746514015530859283845176363244736985911693927818306615639744914231773320679288882748975979131165745333133038137659750132558507159406309511245361423733410714677534253525211038066966742658058018253022523017143508174299570579323917110538989784197071356935398171642340853907523564475714620275291942819294191423001185318618744937101922488834087638829818630476248166613529173508821493332247202883088054558943766294675472858810038206345953106637685413808590611866336545820470368012568059714281865092993411734702109088455346708218425832665492653872505921259389629230855380768806328762948103247188414791059398180441751843084689085370353858102078909356251785754461802350304624338841917105340362468443455441326342010298657806192476982738523817583948079703376402380313636183234782207661023520551303996072623467837988645867080200384182464416751337957731051721815289414064933678079207709586793329574238254033395591708876249868669881563953544128481639451171475046556437883055347626433219947951758294900559792030038557196953724340613431918011914844003459744223713309868000033589792452595123217086769788793307050912060427868710508613267591521805638400087771302620618195168572102967041533492295079405598965661723947298063234424614741523536588069399627226838408019403371652633108311152800899158313367968688426126931714560472534649974177016461616226396980228603308319024004284661274726521850381054648116143174239866107500071159637091346897196560237779542912164674863032284709864515210105565744146541325599225361208114613476583135155725221228580362495549265677097927515046882998679870642083025330421543136110701978960544076806670812301033845456491028791789233437430280111206948399408882202167827513506919147949901488766815725363640949381192165730993798214661458651657202414624978298021240590593087116482787558481868612305923364818440821760936042445351465473950658040019526909711450366178411845193933106539634935649461367446858039532909698052369182658200182232731301043492030056871272199820391169180935620830278677936885701419434280414858022841251573601883410817027248827647924544670824302676395931316915636396163736633520036361715297521159975025101284418737574434602404461749765731324719929766788650315361560124108882978650558637988244176110543461269011804955725030085055061428656848896101997892481298521889489986776214136015976059317892923395956792367750673185215689559625174959650142696946121236097613725241213899351719013632642099002569001175343022339148594044591545369420355705257148171709696701006170207253353307900322481896629861102620524966920571915162959225514428111688567795533105598211328698487993156662852924589020799607613227169677509014003672966928400349104579328279560320782475568905764989867058550039488411573268981130226007804697329777192607385553028282683681926116764789807740548336307766076180201305189393687717596484884206689811722633998406472064127149809658357170484954420324028350326624976772519012910331357621438073383796665631442678390429409161885967886129690582592697415858002109985716649610782995433075794095303297644671207229229852071407144894391592541934960527168225611300558014523588966746820690743368114092450788892698694748939558474675313073294792168164594203513609363148244662143385655357702104795018759077112708674494225895240591276947540096072463125034106243642868199932070930666940099611137561478532180931961626588234278743936315025703747177200042090726521518369588446240365535317166983168241070370830489599093104567263731520690182705127703630384788014813146741308047742916755095474517826582024056118469683063072073265245342155378512144092421064916460327992169697014467095553460605040572182627958517692671887417021659263110949885629582571932548314044434027870837660764377391402202168329992751596114637950924009363701700808834675449860941098414150374182976325566666743806514371351947306755986800457182217596421860844218201019051466923375178053565149211568077507801210616279390878623262486659008255224995795540868600068501942540911039936791173845474086540726101140853418351544102880182381474808745982786236083520066427109529832669875209204354887164514417458689100035837155694666244414238967273395236017399183414017932667507307637156640255226945438110466890617451031822661765339920439985150421457998785249657908683332434382152867914933571162172903880261638781040240153623263902695297548784659287265105121074877442316914722802542244627114221809297034980445493139221106719143499576744561914109978328511719474604335563719953807343224485730536340873417438998807706976528235221691415660883611084161320548016901888287748057168645997472042410960282220681426269661217045987795931588294689924525012402363428404753670064772528447088312748258083110808102931919613752640509686418269281694358635792262289631800038053717361842674041352458639567421414801194978325807032082148004227635105378993474912092581261187052191346093943916436222223785750467146380355094010115465567830050226152598946341221501478529760549339908783986299390629066086132003445521570753654537849283127601361268108675088887072315571551549585544715595551500082568242691434188507197030139941837278693104456622704430718786629424188537362963899699973030255234875405470757605255204227043424670650198812636352174906198496633335293071451206912543701501960730215012969139015944106693806134164533378402988832659741446232953192043347216614945928964280773822641976901542315790688580372783035325666687434714582950407610084576059417851699955779559825001922633899455477520269715372487273252766351423797599829527460083415969563219147020535707386626821151358188090515518986663383749041488045109533638004285123652584982994042311892323238021046609823127651800140084011735612526344114880249482077687789972432949528564235862318026594049629942541570385205286400762974753301513046961840973042200290803459824842499710546727065214997891447676258855633588890769593892978495707037610222381951451902923729180144192517739308358053071734456132386940972404502126464015824022543968760823698134598017903354462234534842837868994392310620248229680848447680709042565999247507664187526125780430341075003195347334791127296856267123803171629175056166670948669110153945149605084560469081500997902776421320498816647349792232036398382318979792718157825924161160086813778126761477163080906182498725941470445720254663085805267120126080946881204846906215352754654610185691139408420091473696701472660273783167052478320674562215541417885581351630831188858388488015198277213902818218718040496631959076687310060567537976852301247511306358739576964511661672329436246461903963497355535055043172329659272378031675809389831085443508928088673279029056623078172289049683908234237055329878961929571399854718243354204092959137887283530720151852212249952205683214376131505444468718974626564103899687864531908100342671269644565195540424014210050453168627739167015254572696283417623467595361413852014010539626794709023436575021886043213266336498271099428107279591998713438123515524004388427985648149367616315285962780912329754020394182260169856676128122686855214050943972686675533731244029572265045694710446021075844110912178921039216607068314147568549931028484700148171146615637270794243963125252649897236450103239374339916142147901356900373920750699056177562349545440349935165041219957594201990937125300728594636653326089473523602439849568730544499396037317006543126425421219401491320516294514504507979321518164902528670866823716739004327905042067027211687136252009693788385284868560667128024454774820156447762575609489663100929753844667518985923352121108860711125285645779708129078912296460076006799074555327447401057829594814198095233809691452291907622139465051181323234132788713552746693296274417330603361837735360860610494675021669480105593168559042864534851634961216462319249584114174195094701621521126438186303797568515551416770798102072942904372287475433697119128616306457450188335991945789190344817546588113479091576681432621839469770657574509292147204572669534692285188998558762362741737147713887705716304517193853183407432360835135758988247939256351092090586067673514759813436863473877946255249040927987324370540967989618082094831447597933397742032905832538618731251698261312343066628062206153117671893004567585450526491807604420602223776501920296885190473384265232321990915341156189128250847022404749517061757601187086034767232818172781327242494253007279074737615434543215807780015000718829558303464578502164042272302838798110173928276672329812831574170508824549404889611459897985378284482088104079423634698816307823192935281294839592557555133869141362365938166852013382780268725940123905473694710399211539260119422135323892144250595281510675031040043287610593631447219270698902706056731587655661611454077080333271743650459524703302691769396859409706313795337709754143640385874324855844898424785070174758752371553113937424222777548173714817109414449280043857401435546772267034927215036315474775495417096328518658921146985356687473544782632636633745516161249460621802342147573489158659880571449485377932610044833030564233953932069160138244189235986025544844477386925521345616926971328727598484280139342459013944714042881396502070603353476636011966884493981271667112286691132863787630318183907713366909256563569827469353973884356125548763904191904417258912228629840236628274900304822474244702489559571993119897486454601762295857615466768730709176044478675348867264104673723319602518083264866128825133835370724032562215815853016156447882154914283885507494951020017078737046726549412286528894099473444039024095308097109790521085098304814671785433081708469263464681034210328023462253416097937355427500428117162100481465037609317200987661227660404936096508614301255756913801269978847015329480000594561827542226094569986748518341427779460242548673027661593832694385837310927000533251743776987860349956946197770296675525761375449646015208861951923305260799869454654507087548596058260087834467600821479757983299887188694029860428139615981688660581833783941666900650779950832097287910545850354987843776687297319191049647405845988762956152911504090806234116570164567683189793436428331150581762243214363129249615721488934184025853051076394577944390431177235111287886084190846963207765379317386418152538719362890463680098618399289386293662774023265198034675785086367126954525886142764101203392317593888161549870773020679085436250684885529232508258404677018294620091112243505240112130318090879655748727811861774381486018650968600256391440258667973081186030526344211968528280175263103890724997023074636033185987763438206561864170896650199468682400056315708172283201220216775661174048851796317881041879087379539091782361066445409216823148157180533221199619678086765392915792555927198087799260167224038857319686371785352018099962701346280760234382757703986308853137996881127937082067795229044308634404455209916380716075823839661152751823309152632060939776145533803782228824989474599540849441336536014710572771066950320837042799248241464250252104840699367217592102495512301979456923611360533743540463021074003463976191953524523644502907798388812824910913360129694851985396643202012010026566789427759236448846190141257626714746459399879667978265948571301088686336027418013371752352453008734436585303066802141581931297029280142285395821965972275947346589278513984718567143802753355936854706290004634771854365881375488110131878948270732104441671009917406638924807288378736224447770646094393163163860883779421770410694425186201937984833468724085687839765506436121860704857077545778981479941513653111965025804017987841982847096465124717382622638851728527217111703695217943322207114016853684887034286735410133134425453625237510452922390514575575361822481285407697142728107915323723727884710027898531299699144474793913386568316765104769443027937732536403563306448545735023510692021133737604149124627294903951202068287430878940628145798482643561881750884680172732960979579884238148251307239262028449373633535023063820549712857697281221740564358213142999832635172660680504138742287418236457212679399546484591887427503501352994433399889573191037806705298659807869614689628814857759198885156610579582374651636591500962237218252236683250676837316375565206302839593337210886712154757235920019443725764027831539049636097742002484536072054232309424117390951193150291629470351467108963592384437004161806293724050137749401709062354504461938378215115867408608202789372168535157684047430360788218494141589137686683058516270481192800816125090369133645544320067585865742495337974442916968631851960699443001905959321852754792941470891565577979536874183410141977320197306107462195872880841390223134726737895685297274565440092796280027612828800929655473001491780008002649662142300908830657187096294939796703385596105300183226416416787772759272277872969142791829892158548545474987354236413928858037676166720310502191558964387218686079332189454895055435227880739702581935773488737886181935031753308754585124926542858934972342576208434400906760399241734882950813827584439475232345326596690922166660989732581705379585137826754422534869502671360954531725266624415155253614062492519945386609202722666751056199193740521345478067236404714595911428719763677810685166810061619164868344824841175026923551706125582055326811741444553048665793574430035975130638346721008932881821442246484136453962635896071172858408124940726378544826253198887136709410688021012969771521988167681826995015326846041825090751321069591672873842559551671029381349200961652685380934612055763137042020582416710519882393480930565450669372770285631625303520593001195003548057078461888249564003222650471372767895970270497241229729058236824961575025673137390683755195956009543297656103630743059941305522840549523119630131736324914954570150922926342818659675876575949956729453494303053449570281897478400326820290379381147473163479207203314383494068722472444928251175055985012860298272650280811819457699177312392824020726938360135640304991943914407636132316004867191208245832872823885039835193324222788340545052542793641819631554546835224115809573123277138416240521167709832587675082348851993593966211070912342673818232989987674132903398230597188220785139592817588797740983382859602103969780419314886700403985387504136366284819428922646158948952507034433727815801822932304781063693347614644927143875628339746814697052066046027118518171067653023791422641969777374353756758074053730059388629610110532636759275372605565808925018638174503840872740914035406804595930679635922061576589158994049814630820065327461531908118946610774471291557876993907245541779366491603456724709102382774041582580913141555156506707868180793183158720394343313859969074763584064338970272149134046752599478921890110007144958255245930473542166765566662561581647242909622442350918714961988022837305625066789909841253891449004407449330624518523593954784352472303985733279187927877328903612228710127575859942244048925739983282842035070311861059743516765582890305854089428460221580923732538289923072030637386567876141789640312237851065906262393221198870441840021752760233087504078046375845846847350064567518451357160780077259502784349438463982580468849142594862898068489937695077967953365563824308215339591136522222851478862866514709147802169447872870104234707567673736007004657144983162898118904005150009223782667967786922165398627090371575406445608264171407014217458878230369880595526108544184424098968071733286986736080083351731012584622430412934340669083988955209534386113624287043345328229702787903509328212326585860800798061129582628086014378646578895188364811307702410935887074535507307044615518728636031453292881768760722242195587993847644429578679344343090158893692600212616316713093062461534328312900007638315305589557411921203621778771777254441837775451489908005605692301543548968224218421385768211367904700702671651603271337907483423561112676919478783584846987698547850481743026437638724389593118248752041148603738628748486530985546864852762754775753133052207030099496931355401128890305938266002736004753624376727277315155462452063281935804467589231646171281506605560480888244222272553689277506709856827209980932925756746064125270580721915467631127709886752455460107038909262689185898173854329959993078156240915737277222964604034977029386040968518609350907496101301471099399323567459134193180195928981366318115947762316205906618044308301257832002969625006669959056937706413373407271222892279229973528947364799840076729853763319330112925338821042405016992047812739561400536700287195772430400881491947819595714338421842691391762944672039486990127925108484254790472039366047996543330350642804862431858689517943392211108488529525276524669077183908912458768888167747592428389014256064173707954363969073967358655743957305499994533443979562499682402584196862705008748267548619179306415421227608461464073056947915152075255806957020853147979551537214735379790013750501521908103943572093491068824721007269134938592027609858807010801564244786429928575378353455660216506405026829820379592536691547000400847698486240255371404787757102079249966260943662179779162924997957998070367672127071445976410439547402771244079510869084906716891939239513876165228426818360043549479088141326432448548443202688311280565868523068230759444415380086053954402339540730099507981824909981049615959998383345899778097628545718271778206624585719690623194011537811558899259236580384734338593637625256977420276031940723089386781850656654281956740700694827254887835248395879159962679433974009403055741815859441617921444993660563009137043014561491368306685668511831059524510305576247356283935785414629702533553393144343702807211719223368693416264290293778606207784776901292410202999108533758137522148859828608668812765654688104238815049417997826797963338135248249241015247654190187791518569322806100046618567463461378552245501427486366377447434396447251219995321315843355768076545505217037210902753775184444506748480933484839486895755727858300620036173598486270888278042028134233271299441391495393481387826075857788996114461961569373393711719600394870517251226761814297414965555481032180756259429578282404068061874001659682928038759538687124082395424952722595473631354684037799478358861225286298302326612070047690350734764091438160117165470345199567744306341484448168251619620613394340014973500300088044613423667306313425688429830108958442756847899414713020728801888055315912537022407644326111040299413413625693937635803595212444106213122785659335458591646762417968146428477794436192781334658574146311325516196303581503668657888173790902386185668774902292000959235230195633189981516122060504150353583761770609418001528949054821333439955000584767619448115234368490372026603214097110635458981674326070203869424674691126146084300256171199289855463977487282632840936442390262078788008603183525332936456197170214591482800921499919407974392272993752693225500798461362037759074247088961923226242362148590085367680754777028025055192966258381733613669007804976673175529773420815656436482038056618385120174037223007988737292309946620770544510600841430965156760423693368206150278958602587997895952103323067356968780448419507966176883459504467895122290181708432390878228799654244017331783544177184453749266798326260204337514233835882310191665613575311339403742839984279181121688292744910724400454651338614399684202718894834490279069737978129243926073740347113809072769789679988465377984352348793692256194346985385456216693312763628309289960720003446393213921081920028843469072427360285245470203933171829434663978988697025280739248698739768284307770061770619779068859978447001494622132136855088554999393684515128272705551664259426368293497596878804577821594193656542242804498009419302471574982868631666000956615072790262170593462723894030834938923441134591829868238723799030804232448769055440666889040108880518742029399152930287572229325781425811539624576293186540223646877762876963303854559190461898313333437111114737383909863602870241610483582383067089891450694142204238939032053660172896888781052864803668692640538930143377031080126711834187201787054176962514408509705313358774005950755324200202070934931059152493120563957246232557291475772205666487902555617802044971121258147429927604008948962057050665194460737962542471605903279943934338625085317566852169160927965657604130237592505044082456717236715919167137751667362944704037792764956758246632129591922815090597387635544550776036734995690222635302035368886697665878699523475773849195725430290432835768816342817670487918715110756033273635831090631529560670240680523194900711894014058195415062297017071419615903718951139059277189979527451627864591050427163493358310297293365517461870323511211329696610313223255048253835824911001077087225386044514973913070512436703908813477454575073255370662437030107833764020251016282636063051168413644629354797102922289958097974935087825775545317108954800587623206918099736596104118402574784658235372536132408196939611173337217832432327283735803296670179091129912455605371417753406739080346058348910460526802336411346081145714650264161079460363203724770692655875320598027139926899922848710737920189433600188896737457189559816487985597155283392607492810891096173614496740470655685531429483525596967857457904835235761734296982837649744645651689165579189519603016906468751348961181003149521513351672428332423791746890003980835161846990565827949634793600131634892903840972660804301641017449858664042557595290929018940717341012610634527434162674605199598044612251574092918075297408902830364908422708085985615864780258734706492970997974186876814716979154582477360624877469468469392555304384253413698895705082146291168682710018147867543465948710846289564337968132368106828244489008796194588090272627261176758971193758063653710139656189100511153367779401952759726100990807955198134954160336743161638180300480418949840365485015851814677079774229419886907705568670223573300444561004381418273029045263574191492868159895996906604729826589492711272132935910727293045163630604601576188063314014153653798814653417033083567316805069594443754428454586291915307938964967204218646321455399620853035621649860843229162067864802931313897152135190186823701843156653571328690285083893524715696915384959241341669837710859656579638453816616709453441106797390934469596296749783106505418637490289588948709973666404311639430333030803130865288037470918447092282919057825193287296342915680585740573729983806111124288836985535068118277378212516045535834359125628461930134258139650853295564287475406516244212477007958594802454003626918732533917842864499655158764765877775713686634266883235576283710751341594928281332947272239503218573549156523768733505995035373526744703617408606526955083060937932007660449866756682419075240025398579374898172513513771817284763450399580688574648626485318836687928959511104506865501710864091646398332540505572947364654487024515355342767088696176249110632857449681040437277182657003548148561118440282563014814901212700756838306768098445338987803229008482222601781968495972207832876436302895407668153396487896129985278209180364467707828751577398993031239290926664806728867083507828286830162774227898356872494597850168549201126942072090221972337422347587079366601510759021697504887493239274987235583402190687070539798660674874585286034754195050866193136633859426087831396880166992136174387356709158350064320371837294528352069011688247727137776147968444580771635484335772620417972747526070359537359198330870533776402383163298825187952223848733825690257934051146389972820226446545181803459491824512600162467850350932186665856062254808637017768932413615513569645847549647468979848637258319691899770419233949334352731119545421123845037820211896500547777939602193659194919844422830267218099650834899844937097058827119724749327151046740740567113833119438686015488623933001859932257759709270061800478461218841206755784399415424982903355395587244336995725394631527473865442801966927023271283543938132674777189265825789684060140301846238714400307593500954693577358560626682334108275950719049606636006234850469003590658345309204408365047202466042888205986594447560759577647805904919675881457802678577986330118935658922266269192183313530381297407600729444182642298617641706945924856258226326365288525230460971178920577324552291289538040338208420627024895158932635230414158515284189289246219956874333291746998793884370956404008138421651704587469723937631245990651528965143570185908612742417663021058506508641540793324725679031565199042385204306295931384886830876695759175229144680856171641643255579028938904704071795813240594701032764362931283658821782074318875408218007703122564659475657855330729962692024227787535162824209303733729267981079457182175952670812236593980629543042704645046758922267802557780781645206522881008362403507658861868677061254878880500184001243812957146597293241811736395707258262944420932190753201332972834956919618679359643344254834078596348929025739683852421245039919164257520542201282072089620420774708095271408117577051437547262195394772242923322468624468185772243515194957753421649520880751762768462970424839252705627663971026337927930169122930827132689174947630236669092146923629130204903584443361040510805003335035946152537672564618140499405609800395185259035983537285142220858613744598252767519317528711980886110500011328400269706950595388700696305742558849433919080680536679276292417290075753261471195320732746854910455289699025350899881654947740076623829073185347678015606600121170521660683289230482847942485089669043089104805749359827386111208270382895772872817230632320171657191454216193554264114294385216381579922051078349310569165314254354257444268726868364008686880346091642996766584452408631061390788047071332660995814679535827483839883819449346143160338288759772274429344872623881269231848658796007764802252974711817431967026838795249582241928913672031029988871505083297240632254481927841493021886848633986091245670662655800047253830107898553289978001122990019894659788173331473815975346204122281748514378950858589567896275300349654653972554132460350802288992917190964964751405433348081698578119594587726812894318489537378239672441317586832701261981424895073330113511134777340057157563765608951291591466479847550781559606173243676712674423081573769394125594967516417265236832926916838581968139984679093055823837098086546407528887823276158884928721013091753056739758338652551842871782661421064500358585769588662725135216369658002554146084117806306960201454390639176488516757504645372149008376420842117577585803197382566254276260505996077920981288517719842576690964380391552567098023279467267278659278553624492279021887350558127788069703339992372779726070289911525998448022269229435075124564564836006666225718154320125683468809050171976948415853728999315469791536254745269057766669763852331633406769446469778228729017451537807021066872587839237691115111231148244317043908390651914851688421939428733573435130641603993846194224218877848572773962264278057652588521536226847837378038137701734528991590631992498071014989738805008261382747986445661658521107779101594570712663771654811201844682613797830804687779140177427353167231140736207193835795104061771248788971732056144651101576209635180728539742983150948541607000335641102027191949054098733530900072532598046030807659055877318572198187355903799744142906021380730566729435238090042003817861598337925924594517890964848349892099962566877699051695564094885281635098834120662568837627920042970859945227583615071933738099299460507806132756024296691292836207796038175573463096779010252617442329371529586425695724929618731699498628288516695597332645555190978513119114742792737688561761413871232365160619960128805056833341734406150221826894284859034149664445199633164437285353277727349509750248109856472460326326075287922105417647746227053247337149502994741289516315985280181363434025687947969160046721286661219894387401440130882870126802763463499423428295432180555519116353936222869068051755767744075790002602511403059356806201649157821243179767753718478970235076329208035620784612484017996742853862795237114537941713471419922286239686397920733382104077344806629616084719367915767868864368212914874038067002680112105187573875017831298330959132089165331153029190759640893996584251006042896646428429292761801243024524326948390591290932299704286100607633314886992690420321650004208283319290024177501685590183772585231738526476139738833209343908284024259835294113639119044228114399185207019121513924462174442839012783216198041365458536550878154463867626315620242092446464001426112397157124632685235565984291892329527561288404235513648506472355106946167410528736792683596281235862664800159283030845783326446681495302940396752218301762397885739421771418461038657866772552152574883284602537521891414489687883004831190848856389361646415673598628668788200881566679390882053350147750745207704435382589739086295484185480377729779480338233854738596958351570037517744288356486890049771753470926204763306834131941933964921505834241212464847501923487682887418816129610759877584255966183189864700810252739672775001604302641650882614460437199770389944224043915501310885149912265576772638264515367856759478852723101310960474320397417618105959939860256202473041272600544532289925941307076300298442372849706790930364199811844527531597996575759752364122081532689595958403937211938587546614515971050526678661371955272264658197260266514836401563305205734848300629287680377662613822103041827623817159250563403474692070960250405158885149112647334507925380385300940358036620582579103270962832469385637281608122485834763281251112740165232954586770306052197397147024697719257328510889922516630160308314900880025453188445867582524126265992985665289418656588337029519436403583835990162853232471359245351528008462361790829086031084272516010448165858695669985335759599281815819993884043310670034850583529977152229783477470198106995647997716342051919054232136273078477678627774940404043258865057126844825404049438056994126564292570717384420686497750265491416608137693614889138254822563468778454534778053890375958429547956987971623055725345479338964811806947343598275228898041574328190196000910368573717158132800214931112600853352832747254365974841862400101386015749619994485698038016206534653943432194662827806425199683097604355234407715291843217292050248787602996761483841853085536609436766453983107035584388542650629138763225423285490802648717280925962415637806393485461469713878518489793208938199515981660519116834767580063013072384312671558047143280788899782683522079782905102897586633427999538278553192087665596472231609155680908697836314439066867859751864566000152196938916748547558641280854490606482444060101415393696438081234195785690425430655845963530558821590664643864885064398036712453877726793536995327456996629998756824497497810401920457553272229869855304457918260955123175133467095681415471079654365982565439373928821482633286124883674013725146517926527567353550343572288633027505326687479043660756222663748312346335323365140474607560690480603206715660926230825323256743615376606102618360177922931074867860205458289853992160708103240569229307451152810662335755522772212576132472723645391310468043584189142089251195473698776728173434635667659169799495634644032729558313563169643834936342500805119153903784074171695560651593697206771582817848554107089146632327862495896767739464587654763985665260667290387855847090916436402779805421277862401660691760031625675033648277096161202818978766413036477495459306228717243322384537719168323928672717577861946821953290769719054064939384085149372265054486830841447065222903922404342447320398085468230111670657053925486023932030108235247933086349536606988354926942314924056929953506300930028510127802752227151827609646090912921635906644243282905196248175316083301296702070862913829665594166787275586732644576713078688614858401685085576602407164866979936226625708214455027894346112092315188476393873130786988645170229464268122511248109940481387758798947455550902170626673339546898722998346311258228047463097497027630969819499419760324856957433957208695720136755961751622577234182785566853679405967667204997114415167829150081060011860706521215011036379091634954015293664820146536365811534526194913198241072660369493539143796976336038182716131442085068261783595461065957941316125884694643844968751078132613328376067214657926033126242873441164276663299849631477418204514938675386041302699214693736476051580908603701923225876370574517067237862068675911419728759776860155638413958734666075910304469710438990018220591984059558468175860405030653300661911492914550946961880967628379279526298599328923199270514691831866015267420866401864455644311947974818026829079033530341957161549712243330672917153060064154108796281546855979838644605864287827320082626834362109750421451362271427421610810654230637275210011845528768479270756791532884674164335012594564877562793752206491418075766416678544165321753094753573730621650858700992118752732901363608372425954322825011502898867061417696858044993967758300915046944332184408000001494601031737851662425523157877439309871603735324571301896234452125398837484452279300035757734911685397154623298761473866563712759328418634496714522654882303368517223482256220443077446307779297085322104318013691827155787166749521146714999269037155659599027213168295612208901137942350400247651780222434792266128922595936150603330565014106386819838769336298044093474111634667398054850310560261064886745652346071837880061313362959668750116114295836434912407857453617092737927393017529332263437828075519133745340016059556333608669897824621495590413938035381000982347779822552759544418351177873102007652842662994391550029215542048908693414242557239179630410819325618772671906842429701300311807687842448314100608232862931383782851743948157560543576933232606591492529905236912558546417315911642812328212515428680063583364411238314658059247209687996304622766456815503736770213144175997107300481427300225762474259704632172905492803874410301811467088394493943672742977819119810102435658271974189499815687654708535935679035249266180660862619312981447167246663118003715377551664172671591208871844031914188752530497506244388133739577087868333633962115010936382562313852584259933718855878933219602768343347176811228535052950028885970727775834379155709630855130215185155034483514480900427240397923004094787206889801186941455353605808183322180835991560995334255009190403715933355462036597053451082275913907690263883405159010474253622771937947562192709735106237852482966363569841505284192904545559404108186426699493479233768715417852231427051876711605924855271659111617338097622469393930206361673040039863318071566702609782364080802547859905086101511185472540514003153848060392485305855215855061509665986653894864110307828308815204511706853725477592407788048601641701091788817435074047303229261511848636941176044048321219447590899342380159478614400603556850366734640472325621045721184667400304539936766468544285363398855588097669650049216929019149805665333847212596050362965510744581350892576286649396083248889333004304924518976260476044477149302005756662432347523054911537608370526446696170813650717737240027554172132521110756718252679677740464776394403423312091550435666135538612052337407179048089122616168305730980022548304078128621459282626477955952162138712742861043242334796279831189425498941094302534161677620403094759562775780788192926264814836000513305039575281160069339541673670473522259650447563269040391847204356302125385722649148962758246693212877028742383307392615401986628921636349267267991093536558395606181322593633655008864452868021042205033512656349332963118538649629984048143685168245736524854536180684052915669262655738763068505087633138428887072676367607662590969951215670946213256310472238329901811550381671609215735902760785554691215895979919808792298085254936371075620090303290440784183481382850762040865794707429943796697210174808305311263847525924673753628230995227900722559106160207322320848784842108218304648584760647498225854551824264150843687363971560527759647477930265175471776639802622811566323259239428155705059183339820166298120383181301254530343012754089168801557447069029303009171026295823146029019007289652661480619322927637609499395688997104541071759646018833778662803743551337255617798366345028572266521820661759176114183392297714611626359746504611618397664695147722247549640966266616633987448744999064494155412285217040794020463069341564951076238198638601439202609613576562266029824205843139456273069406086843088993952390608355243314918957637943579506520130958654831052456376460168902909965216215006105928201142958757892077513052734325491961315891730020803856470196375592528356389913095018008810530100347376093184275103608005222336696303578703966210283373733577744511900069729262005759175522014323842367923014710478524728641473064673311044633747128122900307046192891561220312115038630533908947052559033580388860439202276728196545594491340230987256491197688553272196723174119838283447150789517828583619044572343397016939666322458828135183102091496297350172201992357547704090386010598201209376744052611651720436470279069355798642454499905818595676765936596211455070818299776223236014900189985377396677589884823842574008995685626575170029434065403275419271317796889193413102116193384561500454457763431328826436509644025553867383869250722469612379483315180229193885628363005301972200672318407762881904194444229715310277520329164263007306542367592801921862044705648463025607655573734755345006801322425517640678517290173431722916855072383197190460431299157496549066289962616500319023710801092045848641452165382826751995583140815909840804119074114006763752951575314360438986634299556468649852557067329997429663220681413020279012666680854572777197016286881591412979794502001601513830778591250866276213617864005049873355978372590132165785847128414000115981103538061391991767372239023982722404621069470537475122010347455663153060774793605401548046311676598013636293505064631756782255914763254129703788525796280151654808209601194529878314505249767185397619090197550115695748286657881697596612695479400631698706255545991234622908139785395627666080962295681523542495284687671577862829484833428561643938796632324612908947036591402570275946283112440887520979113468565456344933276296448397719464506828040540676135291568717288306440798031872131695479173897708680877202380452046947884436564824377898064157214680022157897430941933409552935774606846591830570269066933350139395948041390387389961713069512631514450698506604120406719791701842625792308739129592620419322224944300647945943415615146114234954721929271290116737038451162668332249234570558389329509745197443125986585980303575479618675767470360862432344881574393606163718776875864127462594009445725797711949091180846312804684748114848426233239098790465912877714863978839867231421233351599210948103474571814874848712769948825710192059271666421020691137582034683454546702982679218161033432988246672081691440521994235741404456808130973088234622605619302255013339215323768566921946173939146650139988761808719114056200628662181420493583333022176845959956370004490259306111467187906123790263697322636391404438266240165467023223590452239260444275715752258033709099749613895072948147365430553886205646207587535693765075999792674840094033434831994108115351808719035742465536733651681583836099695346740215288329011896267515676047498567486533464867634129465801717079492566211904162041139299054314440070914939029597692912307902893199991461551581395791637645320235174051260319772801008162373572041935241659201201687545253686554011757799652980656924163486858195807340404508560521982853895619864649509904189390010591510551917375011149061510508742610447668191156148519645442068854484519714061369119454685246368882146202736513513165162302997660147037913329782169865573391496558465206397507149191402975313055021294237471670755328831805721920715945243166045512303462569004114477366112773410746758427942079969275515315090334305737770132264814010936920355192586601158123973566671968084297508477445427566364683042368026624005597451310279990718120350917881071637469447886888227040261123256245602893700087548804840914715986651737256986277767816351475320128847745821350191819933313123482275360286877516707674439273434906584951552763509481454527530528644197496400261975734656137749185684146058515258909848269311845116574956636816303202885106167458112843375417374535972308697849153884490893689859022650501961077754695417536382322209340548142738019865786820566210628525961132044404353387011195590878382508973301737299201695632030952542763691516536831527434466836503103679187067730166305993312580761529293829047018907281328382160947821195898735999655161451344698683974575251321124643691037972665027106780099482923716520069194426912768542309876465646758143431142369635891181173683442715403727808029485079242484810737854078764413410570568008538490125059304531466121928205966627183703888744932414878591706165110249384672067088197433883606021305147034022062374632200014728610423030331330414198762309034813442730637196079092028298523486939792358148141286507073375376597142565044449670823310949434279546345005798156133630426114106077937984357678767037612938432873310004886593581430465105975143233874274677906388970208764425740709476975868925844366487283873676250587153100199175440237914169264107490076264415090117113860795607902256637031365764061939113604899721524285866866309834086052708545125233400552025567250072983530514150525912231300692941094334878375070562851773484742377322856680658514717049725675807153280888040782777721784598867358546217391567741263188438353578835383599504932874068995675684574477525912803192561838185687518162665222546429944333800850230322279268960049152983125495690516421112708450007288930368526294683230936158877035224750035588042942486206064816427420092667906173270999816974671598656859833975670160743091161466156094268018627301844748484588886771048561585562180787988866948272484776493326503935690734985045693549746171608780536585468408176906814675551003019312634391099965806001296504846627846917498102272520998791513178535140669250096616675831611893593493253753846430666934213312078163324410775101932910111342516670987600008170753267188893951597831267032258665873299855098128119498865802954039869000907470299843402072016539078897629219144472662408947598092046949201168998691327179232648583506285744125326110006330847579813117025417210118138311756592431665144545867341713415611998251185398062451322199921198619141334340803055819557777330526164043581510721306583754352226470362651666936766020909424652512535300589109243765127084657566187298151735012360291759275998810795502933169090865493280331819817729179022537237876184312344317136773602922289421769118351992292487826855408893894626296214596082883843819528735056856488959139362364457110049667111987385977120583106951687275077218853644360415011008980426752159118240104528621281463613424115601366749647027865456489098543436868731119284829538396484315851373599636703160445794290179139403704958350713222575005606699682430958071233168932559294965054109819449736093384303267272221846187275757948536429302943086991376000725183151547603408918278017324343695895100009380474758815417377727590773266805861080765848499008898103157196442046346744995148733672377282225337609595202234558417483307705367409603070721665674754989177150597787922765588570890374095714034289282264829672636116949786413614731615296169294497216034206269286288134173445564636523973198186543105473077489283203204003385789314631997614760309189087324242634971493892045746945085109071878339271167526747870713977711694386120839124813364765077833790493652946025839591157677555739435170878389105933509653074943116318540642699162153508838366081400097633702345331126303222697661748080646350617426668661409128095039945871441762478824179982862806420842089049695070563831894163080882492879935738240446309122426080918989786505824142638298298319803685788494543991698904200778890630147397422471507626020364147169109269505752833242566312106513896270981316659512495107198609835580323130522338255866690006801190602327645948566383612242388587312685270665443498070290151282282221534252790546890779073630479627601580330779470867361162144544597775131392456044168922435430814091622656626384956771473885243467056356538842814264963158653287194410039597633667627324530147054060813186939239089871579219679751343210519754490088531022181538275504248949735012469018595331914070277640422508795315514701357596658093692697025272863209985095258495369357213716609107817997963011141845015485070101553630955492320131022930701807867880189154255505499583318260481826756264409225576184170480576449495797375086288005468631521367530397089162630445131085936248391040364420741609976060206802403643897094381036583132828748900524008296402863821071740912421543892830412964046625975236488330557528844739239584493299068110010952542785198454521358705901646895670355892053985205260972514611997848519978096998525082818274791995633423834886735218715736926056545817232764228204554018830824103139860312444334717624132429679650352104304075310850515601970900581444198250381061197977002821681889859146080659141907573153685658198823591776192783233647191622194105054814384844439470993281969219898693861303103604815686475367567573551108786373916958745998481881786211681946114001672566443393536223302918790760044076005793720724412265551063483623337675009235970509100243600747602394981052897051702078351720703483848747882385633562022944973239924176903724066778628163748882972037993619082195165373948286251147259748827509960386233363327608511106022772395764647653536245712849686415093162388203806955950624143063465311843606828879420153489846296842888630397475026999013944304266526235045832832778671082363864072122188586776575689752178189016629313478098235967349756396400388725231607934963468432988949522705772312392762595372793838275679945802141266212370910335730211026097612315286880608188909951351966584015505411021402179824477598644933541723194977282738430621567944549556510487154351949545651100832864440473357732589673964243018368906470834202764583168942382534625411283120683708758164275997097276421572031974279035619173234015382391573750771156478370848203963204934883781124675469441941028774508750743127196886642009518846283670447495640518731322885352849398588273339948985026229540855974193116617175626362254519518899173277348291929248906504574172915914245485029792660087455562202719814236500533035651652014493149619069183154864570655102006886223664651844413998437596381137692296553113250162263484605935247606599065846845871631420768829143914532220427648920276865723436058903375635306465554215047507065103703351098674909685456997991446798962412358568906400520084683927923157347267122199746030239958784558976359794698545012474575129747361286047634160660002173311371597229725757262309468238947951785371179920569998512662441232351985024713612217334690151206605009835360180969169771325010763238713959246188778535600296290845241136297135922479503210127243088925283007228435154647151476629484018670838054973529630111479769631232659018301047988743752337292943995175015185975614911909695088737193531428639276457992404393894118514754282040747447925862862085326986661058980209233077710896396947527865733921406315509973352394950901193248865327976585610853147419821732155704129773775666785145026070397107576081124520259249034792234975974455848758629772126603120781757053434251244977686701267600106414330150838681151322231403428055696464224713674109348906453788894384549383156560714177364411890983318339076120835721245961306777973963573015853796705749987830200550976024049403859462303603730878833230957407867700265212262207593021883382746653868427167127402552025221582515000014120439190426769870614660640457729525930783899960337933700575997803593460715110549355272135741787082622799075499505810515208021465538222557047162597835342644882672777259703936950132435517667049136917194460661359583482610090718957583518204522422035520158194684240858943907059378305441218550163422857134231365092559570141977515027992649672871448606005989451944620519174517537782642631468228287066996471128948064030511713302591604029939910608567659295416250908962627142011649286398366404781141892222260671416551319012873314840010178986917516391751531493934932743101953340829732655654785520102008913761444435085371854043466781500091200356214075823495124930484492753257963744190002067476728044118292443221291688030717370488712917140300590715074913833019669896287823022262798435322020902551753955671713031516906792904029698992546013921337361178469820247906166669690155465339102413833553454193995829376784397526167724257100497891639080301083932158719782007191337288526169657046735437870170606255723231222072428448319363814518361118010539696586503764474904728774627083355250948958540439629545562238218821596078961978875899166873830996991517313423232304213162926343598803833606660965862958326707413825737245829294157847788771319357530295134414375681513155990984947968403839653346508762697385375576985214525838639660294364275804318990782194625426050964945107224324239541274224476149067542532476493917501016919238830054611522424832414414000114589778128373331267426560009896957924383496593742111359033207905057358390233749918632937145712713636451616089156992834189209427178763476546939544194136158405181982186267406581627038804107112588603159437949993725689120973365516640981625363993306167792212690460712197878005345189221765812561136465770214211338502870756085722204916663370083220643722569114996017247845229682599942433420134291608045518626074038068949723442050852552450287689745613243329006563942890198970258970158645898797846701033892652885819346094731374168444215778363631915132207580917402481097533137715365257239266402815756543874129973423237495974176062237927724019928837296526689941194101101952037674336306523375482420839039476859292554802433828957258506615882027328158790937879133276307295254210727106831777882268182513809308963482556673488060074390592745570806907361429230161703200225175053694158930736224189337879311084265313675225924890413465245714694462822167479079183589171871891258238833788639850261530286017911663703572657308641625426528641222358927985557156024285600876711180102281370245916031287629591728195079175852343716131084960773170782281316439146616431405257287290670365956540917262567387607594383789076978577319869477984095435192509173681629691510825558807617644092445461701974118244768743916743449337941244369901071138993854974193677492851199506695148337058233665223964248860298841559279188434383161193691004457661246745096116131088880620200911102738589514245493371464087469389279368896261932321015538116618401356359665268285735869252172378939907441363276699214767246164001826435024359297042911022047530978144128662030094923818174475658239052397786133231029280658503322438079073045571000260466110582500887625251066205965578350320041090527344019007079810483623405413509269666626263683109229601373196844183414640587430075171881608669243891821901634090713161244082815968767804340883812254381650067684221199145318664495934537067670616823421975019743170983684039087508244809274927011555848341872215872992099287641939530503171733602593770217878635656878848364863799357840311150229992087656264732745192053387647721121352731378745029613075199007625678038408154694969517628625195604167754079290173405007798896774305875122509294236495657960782789265358340872929847566414614997209117869275559538170457883445173597981681571273200919498586867150851953682737995075467506713503511638395397503275606488100974602361393895134911070753649832223430880616133202480977305576938133987444459992489179400497718441235336616571897466750451837444835577288855524509746912563321750954337430553626566123672401907347646873016751612724772139425927158205814948001034763513351015141936759700066348446186882500077291543238481776522898439980468896900159055458763109749103516597051007194313629890000552661353578352254658266795702026767245251957004477756500800234904519541962115289023051283684577434443125807710832879698211927910513022184344509306994380306920425681178374825176188364082312583908369253076309301642136494622994224097416061042630154625838787549220136095709088978552080290465482316562744649480174560546153172165140226507850514175434453598184703582174980177188004969542012125804609567929471372777354218996711685333028903162824321306501680889420413085059645968958370885800355761617381364552909388327932715556344661398424583605328835361380003342193096794713980226382971332620241508805816824379816199385293879345869982526988774126696295091107536408296689298822666685710248880347779036922109956348492521617491325179794043117658459178474021495477650312508065134003122581894774195166076255111575733672219065290343955390108615011390546526955801422464578443674156997575311530598704657401908564329141042058533761470703145250002649817285933066954457469763154276056229489156969260715087229295783317045387242439316344077505285286746744545524924680851247915224788564029724124876427947458374661873401462396045391368679589259114867765024532767021921226383106914780689422499377260896476596815492476465962060207725129143929053299629706287385664426269892714231372759023381036220256547116962956950236724757806122881508045237577428228709833874332660124844621434595770278441292330289468068162144158864998225301927425160261901025391355492660334005274571703364869849199640253190309804270403511211326736190152161901370780778851062595945814270653774751197550207997724199106658400845538600282432745424175597265379935032230898149015023180239515994829296962034088083880495768279150039410658314872688470685509683383518293686248878918200242392540835509122308106351870417431514120772600459326547212479969441516285650028248059901817795134824147284559478691040237008149925515483692633722454920927897640666150276753981632166005879094130766752474061185496965834749528715139861836499931096592990050262556936396039188170882093570732814262894627688715885528422023551624237271054454344531842797081788257322541042445425422204396749310351356589780303314200759042593993819692002290900616585902268966555919120693680573312623566880031933465739862290501040415791414802255703373129940018578870809361580181213924488671802011041465773703208237580807547429455362207523442993458411734917450882761772830514317390924672165630250160594910096443011215494439524979551715157330669231641000876901397909237554497158561270309885534550573498842252477440684502630934076309170299144472666044647833270169348428372622075827464020270371040655888594528779688559440341888172487215921345772756024868671872508694174661698019045171042563029276846105120336352113705202745113442214651943898156206830137153739385036522029908128655088400634923188896330765731404864740421244135492263230900934306199499646380282935046224108850355262949314515036670592265587926677989773849696407912029941504424740267829409871820041007077851350046597271697704684519426385451510730750468781333108521723446051317793435504957978209142771882677363768622497933831266017032525953460372819448289460142889952408202458011790090298604895078881863587417229964194370514647719803829160454788240457538088244134688061359036393307936907747574532815542535994728540100267217434296670211872469809579505515173357823848245158621461373289326759128746534363562627134367980458659441952720919643777964669642704530678313318668838232636474172388828692247595839280502671171876830085334526895409406922667649306776420279741238517640450183792117521100263556983127443934164200277642820453311188706482859779953338676941012451540026283354065054589213145921952982754707025940464127420825638116460188733032528953622066793205731957967516733612141637831414965058929109511848439592254465557306204570646345342748747442331690795274858458411494194086518937020430245469753840876513910235432785799232833757831619848015650361290738189539271422447233661704202076106925821711131902591505401454718205678056005625695717364101308097313900737013555904044874288412160093737511377406856909630969749013312867322570291412814852084031315250560588828153739893280218966444031416830315576713179339640627076682070002454299358034276444171460411840456445977968610098737060358767753280160034120774782513029906708423252133354825335484762090433197176812050134249822068502169055038103792914265074136417862581031918103421611322174359221266219682383252385847218172880930464635888294408376090379808469341563765013970330957570735947444762833839630080435527064842417241599238461403768848514097829999626384050771376340609119854039976362537708708961309750902874785523228202105945936546088017486790966357749214131413007262929696557809188114594077547999556440126674354584470246517348548726986979066318468889909722805703618528333136299668227030903261655342607137319395578528931597308963335715912275605074182195581922697914086488647041767108491033066778106755332727857428710814403111427128083718457653035789515553958407823333197426309212480333614385515805778282657346093890542612387144166264680745598943001095878281077778869889304847421988496666653127065720457442579275761562964226723678967214444899537462103676199620867231468533782052639351724710403367477154407706955363597461395455123684226846737897614657308242221403077855839163886999586680696681038058312554458243665483422683936086676028827094515895722805685156732657324920347815652324837581503567329992078260269879416293036414696511014220060680681003092203805140957548463476231035487107184321516436172890752529632384036690006964690584547478980164835658757357038669307589411207375965705145476043142466000925008373858920958115559760307546621710390177264482528926072878676095837019445422117560864561594431065552342252770046274435267300248527967678051933338017825262388917571972237416835450221206627064176000187722896480259320884230643280992219264322813383499136781046670783205324628434622977882713903360783713988565955554107959201470173630466408231175043981587027260697392217818068081782979035144258934898925991436286497369993466569107630349090281564137902075707009035562845564188241923914208262003314466601782165761276986899357882195004775734148421480990123692391609361906221292513666440699186613649175998606061312584631295946958605026927047486952081069401331172103208521729847530944911263572007464450442702288748151124548398367026479030931075157553941400942039073085156686130471720376566253475775185375662822482047690259625112572369048439575730798366423217398334786891245379063467290859239158310604442913400475404583446879117664096888897820932774388487439523952139776519826245946525351569059806971113952903007354717141526891996935540118310066865910259999497785009023712330915718377789691556223638931155647337115526819212213339732881652003949679298308185469015842338963281889226426692940221833929520937509219254190436128220611115254721093845223758125725192783967001341410658418820221056322464682828796403801745829916325989345295101076816252927051827960741730113307432716020031491636797519404042112861967389276207846622974838242831114918615437916878200257873624604692305352922645149889989406204093293212003332278109611858994836830572376843765439802863604449583370441621249773524122658537992735199267298982770720432557072157152863437392914375363545450715885860063269140720828000919481448069167470871111410125346320535317306082655346729987321807970810158295259452011916519787886689980915246146537658708571569341982733380378365655338701919439681564098779937392765406608613848357993777386894985151352216231518683999866051587850946089544204418928309744476133420286200575569248199156351382041468376921913989108164462741785632599646032972470579195547057086620250617732736797659072057498359024657117569669911251539541847769285567255390480053122312557496351398848449234000007226531893204112086832541355209468875613146371352752835535148390261830341950988124919108575931537118588851766295800520504716926661022091221754880536711429183339055760435763545762591962823129952570443828843297800771926709763961073044610638432751096397184257765464588718545476936377946367463725334356805843132225580588143083031459070898296973935132860832804164715226109656434302006476321902235245716373477278704291825217406927797525986972479723923946202697681988533753002632764973230643947941206790313060978819127328884432778649427126509854963180450880741106901405977654784946242599267387964135349483054971505657403989406591599311671512836474382545315634801976893666282691552467186594165425501853603497625068194314488416117389164387878288594223712151942997341430994908484309509178284559748715190776749828530562447698049006041825355367867541676516653104639074256909223051518117403919703501264467523320125025969180809956146059535215307801727930491359115528437613228591804473322414034373276409920335549597642676797285024410958562006443121783480895431280935637469297872391541892817215614881205929048738480625805686855706837833002993892230468192206245888448713523480059569947730739278160314430475972049938499420111646864796278646730957659621072549186842701596488327221196892481065621292857583388626006905856652003017381145159396841035794026608627141117281266434378110269929576982057885243230322804464775985338946247812393935313683759331811893142041585344836451497499311653643165403449800411844967964829618327014564661316791498047997947557253984097339804105516988096340659150854965174946336893379075082654830255560019216542062889895602794625211991271660753563827607298312426613112648938240323513182640447558455399538446223259469073908910603601554828862398128167484082269779178348093534730388169324832668325987467978667537700182567525941123784602972190952240820375272811305035228056145077369734981417190762127644555943230482730170712433951948631512920255303174721938457933365889130599352321957396522333673495492765015658173241931588446928114579009182830361097075255057717193337918555978519642893755164387215690068143267434923302655770008385778506879967148534702873197259860316637498950259082408734049144176421382364762514773027754972494311007833171967340594364165642310333624225147939237712005661686905038684616357383229471577886092675287541871691715596546451878776054777561144548438512934302800485196621129838178479440792201615420850981545165254190142623860646490478804702059254071857474096692089500401826676460893565392115307497013262827635984872942882221507139623530804844465930423958702473361978091108062190614100275083653264458251747437283804888358277249493075160618095090739898931116629889782661109073637157971215717836992562353025019843268387093261417096506768093111070349440583163837735215793444882207644234251187656560705250404913896178334440770770459807738539035732030629545454284034305900362985644643319377472875247028055074354146771170844976856331464014436333145265323661320244159522891167694040460015633728392407922162506543237313234312536980800990829074938060498384364961490753498354666062031394683741613700575716751392671330435352489507584185272309236841347812103508031773029351335912272419041901651084652569010066986587616121209665177042966374925857401572158332476119818676267648714622094117014767775188492496863045527299676449364828344438892565762811607828018336642157374368681621467227524711597606375079385898321169099404196340034521351923078273752276676353015339939308558152422225015084157098900553695947914669745263532288242818296993455714249366644026172064288091119675057212063350126741076387848546930689786865626081752075001240083898900288661570397905166179662084632847867180664961216243737982736180912726135326921762515692201136009260553008072692285183703516164103382927476367614318079169259452794703313874215687551269849859150909998786062567134996028351895084928424182432363610109884776854684040051685827392706333354495766568184079157269474772855747788288091184362094596437048566693618025243570293043315843760753933347383759883075517655974046292993322716104818947118897104022228172584548529195624599961446321594552526681509763662239958333531303066158781566584813474389408267591068500733144399338139512359381928072243970884127430496276816915700155727792467573312208164661363065866941132802297229074540229640408548673382093237681505196591235651829488060836709715209404981930412892025401383491745126417717461617504731276284301686563904757833379826289386046675097996477689612409263719116055386473904657129159652851343505498896835071052287993467590070500407003342708107963770244573565180717575721406438977415025177124381011387280817888935243808266295375911976422991805609256962616419438119711881468934347416511549832222058856211996532505460538138603235238106096299497003673777103388862849221833318908061406262775044609032144971578768347801655395938563477701213744352241583852854802430363193615764147473392899412101188368497143309939303000765618174101322254036827762056845546936331932255552598777755046435075990387847461685546137642078302288766058685806303207898250381670751367105163830113864050155227155189401458590487938289935780649982814585411839424817794518331213499925811307205144977548535344777204382963299496324731434292218619818460180962307659834249274097031593727354476871740055511840214981285407368376135080171599389885249042977200295643073338952126061847410695885651600897024563438988627096514759303924321250127339226715966782107540562470055826661213834228931009865010214445575521798448366984085307527989245043575470206124887091189245768197784295757987795536063136696586511792360894690965180464020201854655715233269536600214396230992328894714113919475375861291818853582847800693265681010353049336124071455932152556060522315455198525346829637437317285888659029000977832953200383017458893612491274812242926915576516889086402456338680584521396671451912674740055600021613814502236218942176810664751281537488971014564207878065169367050660797914116922222482380253461030996263353177135303984595181977133605206205925006442266774797283588196199257778934142936227882332849347279952862631097008539914880002800602101842116436372329416804186986778497993758108870242545018827462633784114112977989541227472146595089890611896319949701006048308498420861261345629027435177894547059649903999252956937439256822279633749637694368657081506734017088446667199770277322011551686201558895495543787103872553625705287698341382932212556515902316240608877946034712562528825225664346191930375552058026043648256163254777286255845731124408157468631782953432292982972864848600994126308641471129495022567530696966393670165786617904166810606171739079323051825890917998137028961837529928985216594332930673689697300406133414408054522243345278501165957103407858905301413270819090898234769983634730541997941475729380502906125541199095813999403600784299093926172573744122152536538168460551230479781110129668082054730552779347480434338613530216492315653262305532178581905069504361519907411124622060383551521925296565413706895302723119691140197027354769660499628920040932119447910747042772706311559944276086288038340980839516597932708695740339014376155442032967961523302278722496589734984754164122431602828735447240190815689022823379228419939354091293672142471061709546047593788519159406050122133360778765009400191015806165532373617171794013272952620909185825968951785104468669569045714099466880664653034444884694174160431106180687504957778959153875394564800556544953904822220034697174945553573611934278345949572356438433471419664317238653464414936219616528825882215736412825578724642958259772644851605298542563745627284783352155613164860822009781845581935501401629699581414087599429676021776974304025873154560375867188295012648381711280455543424395419856239914883741362716758522968273788833882103911134922595931369620777309227792674416040649543577449962667700503934904531719683345897212358427823674528905251028542452019733135200474811592019999097582111650112646611865792153113757708566994007055083990311765270635178733076185988248575990074556335918646459493180634665744025141245602209567774447568112122135110402933577036072304565033955883445698875415106306609767862715075047039899434761514282575316808366883161629901301477443309711929200521669297660124944928472383207837927206246209016672186438245083682255426331943693840876528655060137437195404879604806056982131770878050253517829771419862255126177432707375798237303115106746681655063655042682697115155471750346433210630150517347087344352734173784063352888211235565575269740141968407512903355242985408884895345403507200305598462497193025990331695829055693513756592604618906634264972098250812791066128409115788363398017087731973595792967959624506955172516108904075198503213024913092277064099283179730872047429674273572213036611869705225010772943267742052182218475048561127429396880492954563863808359718844239261024059143591766560225182635460010901760444895978987733259240806916850341663199962169201561446333669614887524099694998819233013376872413605345974054350168410265536319328993222120063299383277060919935224963472938146428353681252832870587568499909958397009504677105346480980211079223125043869244532773368816272196457291195580856513792347951908151417619045565212101456383909978861159570832197155539907970104987570488363376563851712041065107188715357375887320967397417218545323487439647676542416068094566177270693685118897559612379537608687436320970516882677446262912493125098417554550761158043601829662503291948318020577532916564131927965013809260708518297729247560735018420413739201940677704033268551484915441249632118551391760033231922355980263884381854482111888745208228010747464042724995328332095095350876550401718863034246647921230645870291822906977309737921240709021960712781561122363571760015930193366014435292949406237939468319677574304247833899307803087771718475651797278222585189000998969326911535494443779037736697365046722149541902127492474713765726807542659369685275395043387942292513703458719719078112115862473935675547971251235511255021085097505629911216422399467483978339480336814206954592258963397401958686231023156355026933576695419543801713768447988881628126644652387183302547507526148597763613421252843073633055119683805391843951267245864949627252458658625834468807198924321265713323223648670882246687419522691515739894668646167316404424530407083454512543327756074943457251143553025815148249867606441053436047547282371369553502489312708429791655464844693284953818742489970815443818290144738555788505812030945657236487174579652412579622420206891137019385223511109060322740282147594424155266298877734488649220250283956459619927158907672399926906729742327551048937533380553360013341699934119998127192774936071625628511205066993319470436079952210113898021025692933655560115901628746310573428541658862213905051318211747264596359283626053734895146245424973558048951958247385755592552830778744252148027534495344315258700479660748723004129196971179967351047958458317407191418938496411721347212062440983375380735525923395851735561418891684208572561823045260635061004130415087354513511968260322822912918143834290119353197975737866325013405553957613268917005236698941652952353847896253719168763209641307641115992606447294022261626814984772076209804316118920359881763959222068062562452895914946420278652674028706014131916529869283360524255469143603479758611101248249536999466366197807082341266616446314639214622957832806565956711863995579932782559784822312927033453465049815133867295488601612113946327512938966415113030029961851710440145749400276202242561125376077902828011953035020314412177003627288164413212389939321953055133524513529146061288042342635611114860433060133020622458469508636678145066520185381388272901318808927254680164654586879273297739686521361202056637327676601555002243636155835836720496263820165316075755552775084709041714277564876599843232038155418679291611584372768169621569960436121350074440284882944459578056199304176565934692187871162059334387666044682177042481664790714600352063064572097303851923913483468381177748155876191066332897311389469938093160420133969945178128068964323933589954577218040514943010583019990870206659959061817053499739734523025004713730052213575327565093414629122236926763437292600983235676181352949219021896562343302412115262201044360139131313819673048343923353550090332440150551503772181247302648816945380488499773506913588246899310441999027185359429725312125287495502084581324096675926730171603729331412253468813494841805977367947473203590563244328277086059137967680996548596193361062113017516214069934595939316681982291799213242276271832111245085530534442661559138028341184352912949653044067560294330143791079920350196824586860336491879775107331958651632718555589738861810480485418269263885684850935660742966355324555118098462544509654893412005324424521460108164680236022305406017621638508485382434972354829972319757122252674435718479966024765105408667085700148599986513270020094064902827349765649621729827276183369212372184876592404211015900156811639518179632284978558394200708877029261914968030321518178337020193840912565932979436232742981772416289461748770978948900397557053978387234351467782784230271743413670130859037695984096338135488416318753444138189668725591088102172813643383373044175469583370301545491759845501377036884920672613328425029474962955289600783694676237018653535513376848393254120025817590107128024484838154151128940258051709556853734054161456123168192885204351015654220537281254083310477860777074592989870935108418807815397743275899113642752802151362030027276266729519232196477643684312652815564937675163996911621292588797320416214658731977975965118178149092867145596303118547836625027460961342491295802297184967021256048233296658912948438308489827793523850688549036631175623463561369511503770560133169220630142060530872118395655186794241128419837931995544283871513262090283658958405790265872395017903652816054545754376764707593327546440358142321961068316436332704207457480989561748052276985720373228107500350188401682907383034284972784505297699504797522124843388904378926814874466817419449994374235637662751255449693457835979846354033033561598489860143888388824630788905998384702876479084408776338247149003331842887463943722224015026680370443851734593384697167300131404565038586368546454048203428837641343890196376903692310754239020208624215857145760968862586991034225840734873196977495351222906762106836068284159699072809969047802220738970923588911144384772136924213301752343862191937524464247503120964411648748580083647349401795837591854744754036664415008790466647786353232247964291626518413344870103438435737252236871903553056626216565322432006785609023852084940178632148731340971649266096282036010958332383432820871581248502858410760808318556034615068480419686756641257476092335170142488701297952819749940373478260291954340356689188631665931405383171502219053880420755468009364380640615516888726280904157813264748125263729455751420857418097196148498125054010728500487445595071852648225354788678279473923044589282792213951862569764969920585370272163588969178470733272678706355629455888225906261133367080248820509173355948819430890087675512848508263074795784159428092017868135594061603782553312509108276738190826214381784129818603367276889876264408042929361493784798623229667140215128838154132263847009416974416839108490957838364917678615153708347891625736600598787326262406748377546867620665267099210112019768365105915609558328692168765073524985315205119086482827435312878221790240257107597294356979659108272014185438951475372764358723302501936424008552084406615892690227006583812545483202824958348171003037799338618591074539463795946913052156690971495303606287927017773912069627586722770386817223606226456312999233519616031589778129440616608664330592810648382449116378553789450423477646088917370294215729218619145658203173999539261351526781053086910423417764430720453109809979153210107514871596953960606750582902911408267326929138684082008425905164190105509745209605408335358559118714748162967597634829563093824163429171716656754740727891493739799683267046852832666496611068795262904064814228929500434869221740732758655555314672373922901977473325700680452466744406981120717715645280210998532720267802629627941633689542214767387726959540844584480863155626896751119272269036540953990273845116968385486077562071243403191498825554424132621496012052464089300382928280719245206040329083739151824257766558191638374422458799640206837021395087599303926263143037721888936665908504105164479554389731098979010674853853189398772410300082488644999965910127266608578041282621151627253519004538866939446216531632936171260583065813562191085720918798599062153271435109291989605843146887781904353918682912585659804970321948283591313929097611384701766082121906863851838496297863728275137463629301271611720636410976298569072345013021634996748565873128632084968912222324725091956492100085619704846105075369656847238229815848238172978462525567861636246267672452301515536567947078468302842630094354944819083555007947109558232506561842445808826740477554392398556345027218741165979250136056114114040934581393879273642427958432924678517543669965689465604397138636440023664012508347810175834126789134869260553123245093533242940364380815535689349164675220372007849336729012939872164886906620411357791531031239285394677764797778102664917516637717047922737017315154941741575058486728752806848310609194869715896713803514604226357491146968538082688079910504724671581508764401546188732518698095610551696175637674135449832389998669318432518863879977888738499340522222323121380753286953557483843710857839200433134574473463289684789581624119374890388452149873002222507881341002968398021609756466038236078374729381342752778068098869809953243808379331113072670850316645829459868091336279675803740483905694315349589253523886902029958058917522533931620001826338004145022033693192993549675831932331699877305999376739540713945568777669077306640852134495623748033808334151793328269441370223783048730121626322350636424828708660681222374382934183044030256651891233523331153272608580280150282648805882689244413027893773689471260330860688348695012812842106048521403968341368226107868676198179883479142057757093548146358170172541450473294883078618578267718099084476530473354038887835172348502502024648425029027704150264227784667947923285505032995789339310390587502101486431229987008528121985892260450541847148808130339365396083476882636009832326658343379730033464239733201099135799136191911109635086725073304917208510262460270750851145811286220815341256628562569368318181524139468246989333300075067748448924987286390211617524451122109441859177080715948034551305333732970987005808238087301171824108792889003781899678823010920206011946691235677359936448844358352270983780008340394641944214074180174494883986776639092908508125102127172364643606917229426080368686648391275547289320837330953496332718426699825290897795012592043848580365602148066820202363246739410385443684285737329741471490985364292060519014648051040220994460466085096864192342217321112536014575759560560235131018419981736654518050400029232876724881515602839569427056857764039147868774981674081242818478191541751453361884155915908859693823753854536319041882522305657729900508146472004254078411439353456379501456081876670909079194246953375006573020630167090907520398702099084664443194948952521821792122308087376477266908467206135467482978534476347814487355607367906957316714260916964444271896198813270291459613139842350107176057914252191893292151730356531159776937483092461327270135152860997729299891134554836952668579844645325193761158013221610376898301156616263055016611631162372912928330008660669416094048237038424675914582116556776339832096848841483460849546862237254443912579291127932758230951381652322314148720819219525272299997024140087679926540963671554941396135363972019938521914122746521124443457020303949699523710683515814719502378769037036797641017409465209527655727132575716955918913856565216705121348250627036346324914135827324405028706900631061311791568781021014468788600700166649480032936080443121776865696015749624801898276165782740605922305002241384328539766656921766659224221839238002330296280465838640234567199064917592876533059513790147816584354138407618793190654501862427533178983719738695505180010814546831156334073459589806053822026875089921385532442366999439946888575010692610794736503943522532796556196679300653306654715586208094548609346088760633041889323668979359820917319196367633717278390236656908370891005069198256144719545650491174319638766264327291707424766356521372976133951812396519939359348078148910660026427316533129020246484424393068915352156779238394791980888779232929478097642656874169366214241782417432281497358889715029233736229483494909928492725422537416436822185624829586559766902361988182616753022240289650313819988237531461216874033842934135817467111431605251300966104030868387799578216907575185641377141353105383318970102765677696551339651609171614297958106754149723799462070863788696992634397455100808552624635091885336216392624083585639886465571078183195225257274563987342634605106131163115698983725050194285928280122600750266737623662985391214989583269983111471539371188943762116023601466717995038669709338204149839813689641072161355025174944234360790339934532708572046370972559808568236078647537302147002740946804328712744516283306653718807390450147920301016584166631221290196913851514956503838152345967596222662462133871794219419338721434651617172814036761124730535595953097771248058480819287285499605740724911436978888650581679221803807628252999650625205487494741531265340422393646021669705744877028220044878869408903992636296580318741254116925573607121151873775538353840006679235914282639185584969347342069843750343016468454303739663800771001881352720556952540309149664563544959978106518820148740805809219441662283881390697562358645123548860245619143667047535709070481854232998045187011123124894288596830497176974591167962258142143363688080922390185209582082568030836807197580048240129127894089204718579790255282266354989905104771724664394851557556046397407581704492375188070629662917241112547083025266666115490290884679713097947393747593909903011589052586151135143068616941406713628671710668636191106793069784626175263448892653426488289795701855755049511415692835822475829949340915563876956325227003120565598410921023672252606432998643909875520403725150889769588438755272352040012249641911825441376538477699442921065798495313020617595799232898551542902881041261989565690388454003480536913486678131982538359055492945054030673699019202666120914668534670227801190087507132246730259438037339145823281840277791332022071142044298968673259089988742477615792272684477625537890330773123425571550891356875736558276691304320531545411576345100125944833154090822360958582726126600546170878945869480422223467941290848129488469694490575834842608688638390610423552825429870442715722560469627056464429121015884912879745948291498232492693081479211556199688114307908462705450031701260125370094004722266033916824495505526387095945422330846399867182945338311434887707680315083155883038366761069422230726489139931036100704782049908016788219973790622041791914651681012693474959300896070141061844268615089312246252732734269540229816824434484393727415218916217602067221129853749688690101024757201801269497955592452050197458756795676646680025461145221019465452026138698207957786485640615410637087670416290246879551435175690283966923855886458225376534095514364082027177537083358373106650606729106495452533537635299115346582557259954179498744835605592049096811022286294091354645422005160278814931926203117021969737300475700547367975784084225541472630636558138043217796588087345202176462369896918980966988010935701993443369125576220513399563239534836375476365987996293073399532410351238486970506416638424258171126693618738293297283738020482284230893600224881715412806899065199014923716421141939615579079054628352489265968166142285802890492028738462461856490232385555878864156232202862254437255422664763947385314228542411388170534684091201308300603527944303772397993523754677398804438876928309721380445084832372317832189597662420686498601114976047760640972330283461883673860234568262953582953138195139577864092163990387307486111236986028430472717478570248485282942367122851090975297101720122713090324195717066421271263335598910966032855596770837987553031414954454458203552979923049835094108334630982641388412470976010807892823904854014370882833366864690771001127817708799593027236016432644428618403395850652343156562883598016869331186616722296523625899720632864551578105672359368914996419484713888449688102069637900475812644608781109663478194059770023867216969090316157608927170121527549495667671482592240662231110217695451738076324860207835704666628193797841427345994113121808709888122591463090344292938704221111133602458208755841121490721511463151089921872186145703534003123188354143440980363692175991530799943861633583528909948595909886933226410905166091116670916884186093567197275989857981791392049150562109752136725592732964979325767728105242583630122261061095911766170164369373297373325684954200862602150242977955129690601976785900606308898089448492464872691633798585512902580369151261434303080440587754935910660581394975192725254017237755632990328452578811695477573831392886871285851135888358264207327279270560186552755478333270585198320633903508498771705166487077100054747392297150218278217479294295610814417531281601200651057700374024256856895391431280099719626830315557541914802999011629184472283004586746568424110571372540093110387634130042599072769953764659565072784043710907492918005242941672677219007613472949111226999329424168420887902310345914910635783883936274599041958614391069205733437271484087038363732425512750693782294053256496907504037381766549091568161393675004967676226373191904011122317416428753369163196227818269293963247116143642842999582780864971962227471641574288022276951860894051276350402626935176393448758483083610332709051426630079658338418625267226685753563663733616832209646348463306561299541663089064180084462439741847774521082766957349875245730255983149169999201781615787931346109330310773978609621788927503985416328019354718347747732732053184739066319708239817632376325702041411562242115098830355989361413060636142072078455545464907670058714448004919582123225139969946062579176668069091203342531237345269956401098922220637693039001200474317571804175384287037150747657599029548002138647719113064179979713431491848293960924522251918546750921653931563467646966188527085639631095771019349541285860957179972380123557737701202939831525716773530122797194126614425210145863665319693256168747075548218220578620938411357431817103085584716044431786610469999917435523064732569651859088156779162461905820959685537243962803631794512037295906581334098031842482168644963892806748954879146935675441594620857919815499029168036878890104549761157809644768097820110710521412958250854743463662474060444378045838103799027926225544167262194721626227062621340258721478670361018341675119503119692174991882960646766478761094363894919131142159542568942960552795031580611211701856409571623853241591285366215449329109734503289613574298005508256047299780807278218214983318542797434366913785407889467179114593281616545526656687934374695239812314471242781890044914220944309351341212141220768424548098377986055735879506929534734297934254994598172919741256653762342445740717619189310055753284314403787469415878875177351290677875585893248866057013308388556755921420683845177205317123982441313621382105987720808068017590505737346871404107760249370505956687876468053670093026336883268892377081129221530834987633454212455281039582177756164069798226688183286294206384896647033119644080536968191219508084072843853950042728766950842203527031690690612650791526891338591907782117980003050923435288977641938215712395546581842523469405014849480471063071233753547371913488036948184739849005769776775364022493103850053393269659823689664800508118469936580035726350837349379126425389854406165112853341384557549707784223778157186002894513815330314307312807273594664844527550551509150766549380275327242498850493483143187734197145187127271328684283287227329360177489663984227457345904534757202785941387061127747956870279719487932897807223529341398339343434810068585145421227165426056211767603956518684232675000845743359935757538151801269027808017943972730047953578194894371674112853444666882202124713316043144388039937301582041983165684310586361265254353824547894497584823537541524211009303350209046141157759838027455812280694700198632315348981300199062249170748521347118315603257712868048945948543531913172209394868927758299424587220457634258705600015290237977527678120960684694602937956099571249594509234722734818957663680290216424356134898838519091059844595359775876189436713268774899516487337443271842951328474539064377912875338788058486933948720393581651728027453241939209143498932613910837286874075255939640326501438649959694982158654208787826595834427784622852136697617421251536487351760106317642002387550877367374375453782575309861714362057306267852828217242697720821510229264025033266238489082252232930110960061023629959920733992916601967047311501376141343545496169753832484346240024322072188654927267752460097788032872823334189802142820101952234216648455052134001715494023290762444821295612535613337291583985006159621267479284068275935967164847500273307534800286552479706459508298585785129569873506590626363326688130273856944566996634492606277068002241782660312344142164784238301073929303072336177459419777177525747437474794488347518033294092468172184970355451438314694549614463471994892857570763689375292178931590453423760576460974629532696352750388103900742773839221420709190129677675043890086691862972172863619150318002947973920500977944894891747101160219211199288148619851861773371233709836305751485679186887911431504590069879065179381051129974438115028485069679309108181373359774685514488620087764985328310931301786615963318554457502348310378324685674582126657627851672883472971602011235892223740754517727633401774183190671783140574594813983610290839422858236510171073243961125985527841745278756723543290466399879907380951926684512263267183016322196409833546964502381520221486674020907298938502090263337200137519086166672906798978644181206089727263209176495183059273352665049822203264650704932421600077270868193320866177303511132194512061693525252204968157454257838085616138532984443110103744688689146069402423736313759716849072381666449912326491371562211989464143305468877606594799906701854613674766391166531167230163831589981668236223123225245243125364220068592777196140217260394044743004099975244764267394878126444393691193167247804267161689308123826823816038409964412016349294216954442601187465028241995192615535765227217706499691829607656887738619021062207230596318220163125009812303808627703950095865747348319853703871020107758164987483252785479140587085360736936252734257593249458583459467148564993046981028762734439661275664083169476154338260497939805259039583342319516955453739145814130164591800100404051629496681582920706753576076472017399009326900306763716173257411195277916466729391281743568296272257311982754475983818148254477669514974557276144418047932855320857827738369047913839650452291963064720712263913045269806176851862959925227037265367793753419568284904232030487887562902669653788823660200637513605003384922809524283576570705246238452421386823087504692702820226405058989880498825784350830946459403710467300894861134380232300865823234475376381843736231538568151217563893777926544328037547697153366532775663857233273219109060255059462704443172372507827438457970812167282796611918922185397457857580232939044566836238290697259650996185294739047463249021153752989131251515926890250138463313557951116255837103990167177004831851102969366572332341141238308912013604766664660644090417942311347015423917310490888120061136354692735920261811796390141622221558623598349253214751465186973469055894373621332806657975649715095599835292464073182679220967613765504742399884153557353594772563067128050339566591792120371494062937090754698111779068634066339828103348048858359627899281818208183903710660121993004671571280467155769039550927431734000634604607970521036560378635328121894922476369370673251047861821262452995357124819711633476674472253843751932752894785931669738633169343539682515374488371667063707054610062610114074257087797903785879754616489250325795490035045858088063021223039460462337879203551544402917805801409245999183125652393074617750195699417839645878124733099808297613710027678960601771833501933263614096357938771395166190110808260437117380637376671004975742078928010636699834601028878769116745226175960541136923249621322436485907672382908975639156158055260726995583571737729390864674689295423639945920231827841692648732974185813375584358963959835599169478950014365585008666873927551286944905998096098426609959955707881647603618056961593623098477550385040141482256707533035866231176272620456441106255237504260790925552926172094541937081014871895850377564062699592321497515977542339464576716127736558339801397640006384417377723460062737627727010986320060268552926195812135879155420038043137271744801828350283840186090680077493619400523030740166455458804922549068634849680701137902287214456499992745696412672869929151895994770739381598067646630771052972171886756927091886769665624605098888013432499410617854119819792465221242742935094585362846917767038869064928997835228354970821050085236681485296704459489070562189918484209418272499701190412298586662894031367705986310292128301297085477940546124768906016547069038498769487606194696569652367971642727561268916201731537969633187291475145077784469274083309811452524762966809043995736652278202920659812210496820709503311382462919838943578014318286306997912550879413441530463054015835731117741384096495966793871131141766125740167385052776483439981828566499286911857454511107522112311708736473797126700357418907463574391567412268096295563714308495209307262124700576742160839409437400199028439380650738676324344259756977071145228747994796243269826245979591572394831958803741059987856777124586339190457525294944818993090251134286597089841785364771152514805822447997075993333737830022659866361495738368736120127177746441685009279702610722700962532329312457937626440708343510787592463885867900442424185105154636499789019896625026382988051240200879231660123401009738088785152818833751580353122272018831928751258094744426882221827828769164446730950036844407647212477368991389300189770870001078085473164652556902704906212221508896130522742054501190559218386864103498565032928828822179726905783599889561208091848088528845964461683500194770787143297107654246433858705071482796310345799184356072295823662722303374167845652748369623708293868990321369402977305259362034008756192240876617505241706226671019806933522832102490157747989762639015258543525002688500049036087475902678209766743708537499016016570367066867827759648878006811702671414062472216706575051630267225589936885894465322062828729774110107295159246831690747526638861137295274720794603809798976400047456249586014920392137327824874009334552746715805148489275441841304528224043476240659036105659121494653751136804055794118434084534857201326135494811698420943435749575710476156577451345757472036747979807641218783267822131905794671221162141745996939057623606597054126043795921891642155623168639226494597876346712368068297949258351107362664536283962576959501794323719494296315239765747469851904322886515833344591900778644911987792513632801147614508118906207501177907522692130397335719788144513101315962088122251153282104978419917870932912872771701723370673902781242636603701566516231211723662606914304097905607035954081252533051172308326070274298022923621465383210215713630174337847988288682664180521183048465982024600211703367045552193594514867302488560285191954230137091618892828452685085513797586510041679855087358764351129933712106423298901767651531319646605769783727541675531703130713953247551165088001963238410043074857904963466704445612764242272437220531626349777512789035969753730649427014222398726760396270488342913615025898748451135120838317656889260908042704840588241480104123967947078868300558675727497229216037618917942990651100695242602412694343661250826513207833543920707756829098184107370524541445879469440498096551425642353774703625337405308575695629975460300050631352117722868058854905221940040227816051203361141114100647985929901867334383004574345029257693329769767722782475698300108672943660242852004983642677499649612501287858932165572981029388213386150269527077590978148944910814300856523802731774600558056878118676024035588982524868849691152178465919668265626562892263627656985142621769638245655101830480027290201326206476851826915463038905900923474533529953335326154339187790089720890419230051659274981179819944438142712729509876676470739458636910404575344494772882085706885222723778639621927912326205245632662162617508936002435200960165774583565076812056458532218440933549859302024134241998452615147855951104078107039359018124768862236098279866166201083094124070090361686373944186760802785772242412833147773604302009222451962446015362496829432631519635592699100027334998766322271328319395934112037344783484409158736191407278932224548609326384385161123464275329398246292119655807879118992415668393484340555705731369613395255366853826693082850708305633624696205355073974592836107650646475218287072077209049681098131569285248436565679963919563227454782289673773981776195638084464195074424473261933223981962190952797212900336530493049580257799369228186271502124837158972991403336108552491167115740917402190692197895666442763368294592784159756393451318360036919778074967856051579825138756646089351778738122082487504881049418064970900485553031463079507564926244169192319307283503190342496745632900567681862506719571667457873309575856817972929979626773521386194057529585444175602085514402362871614607519879564885297310432191019071051702009411214807121031653138101841788794216656329125674986520946923003398224835392374862347769385165459814286486960792323960131073896185957807341087245850658167359611312350090612131990103748333887325373825216233551973176033315622107680530302239920792344583177501751616508766767297354974219249787460838674855288502361394344541418311442199500251962977561844978300243902333529006644186344825933249782820833922040851785012606528972488220942439419154508724841401109162727101819823749787921790896761299476829393914980513228054075777877305404944848957267511288120242960025815999027874591865458253021045113936096141126746771919878150905519603888920976190946035799901326199873048436813496115654535858020323268607818265777063651421228913822850536672090464122999067186770520492624370272222086094283599671090280350904014349223957201820559192323096299210182870925213458191886999715547196824300399448792641757576585150017149784593055172307515061863475702638649106784496008917706262449806967189263717869507200137611643186922511883215226755029289293851818661886497140286335181939444915725846632737805180782775207487159802296302295287135614747878757471097572027835250298938565634297062431106960059016292747886216058931567950498588065198922982434440324361397987550868863567610772724425550672205590999393934112361135959800659518417811742920572044857945966842352702914373757318298378753644282821098592864121521211868168296932825442617013976642721491494879530682951885487551572738913265971540484432863103476528627629126684172867177971456708370915823092012250909274519700058134040703221025026329906656413848231884276315907979471232768940389444429956567295586085880773353485126607132011145385176373578492772060034986234430486018629159141066996108032407094895716970451856802154966728253195073594513907139772505509961878584490562805845207313095221388573104867554916303866979443412833943908878314686965202687833357767695436770754274628857663827746199134860019675348961737456844119500570034634967027290370408305265107380251854472515378362020711743242695630500606576845310245186084044283992079510139541412386942652324146770438852270848520355192398207834380391277330773611452166330093543995628089407654276978888231660700317632806059940682297199921904230576635566886530347576234517789852279581633301529159571004904506064293037862598741607799614303174388759984953348224573762228348054705171244704381383530933140109692046741988812107452462014672982465143810644437762238440725606754101310561482045541887262181235247817048461124744082419008353849280434700181858009657891723958932965074161555365521756643511976136439631979499824226735890360626569595154843015524682205385224064019189571139608317179419077161950404669601674382349598111526348847540918538241806586549844750267811201386973849867018506845817135161677292231073912817237134168076632762776949785413986173224797085798398076367143793738489327296365894298559107355841046003691117016143040018294081912916897225859436396463827833369452672673822205587281181732310958236140837006798613263722825598649859049550331358877818361665390356519083765016763477829034979529991814292735175912414841776966602333023671394422384537868343537733877924229547576671245481685863971659285210428523066091361487517665344240783344880514581802057425310650225539512506519765985097356792405395040984162499449233615835605560037096408464295353586175580215852201126286474724736999018913070917498026456863185876516958383790764529031562037774747788882538704847252989147610552223370524198529931510014644009515417814651673952199639316422998035942672902139319043422757142249417660708227633409136167764612560859805755485493648336671379962253598939555218041385341491753623693491620085913758480471810503696733282583364926387044032958899408228514901968052254141852434279014030354403731731186928211972749745499100914932192020995736642120658490071085979316295960077961862806631424050121907599811883328201162769394229454326284811369964412781366134449243830613540022507796559541711070477993126864502151813523745081594976834792799915110048508848195954896245688443022557668208220731373455735397684913701887366530226736551068951987129873962930824735196542838474198575909074379370540172544836820188085892602018137541359373840833740347095398040077097995017154603458785042933404148795790743042656755284348945331102586402041704689721962541816623318523534162786259684483696146946429700985136584198927311576484630631934312037781065700128495529493468494507766496348946113649088031599448550559550460045035414302096685494431099067517542707131676582113755144823308645051969211087291740966011550347789900797641064220372602407346574403195751397063822605260148607457990846112482459536237924672362881870803913938713373564016081602841381798233723244397900461182244354120562659952880154668570858741511096608334848008654221729538294713965290879152850448333954707006185307927080524606421055549979532311186558018797158138494508085190081064720340246057555168982146545172976199939747147185188887466728534723809800402745702580317234036852727709412504261246892281614697178062492242519907790614297649483608953469733390771758872541561347002879964905003849626408544857589015081518589164603710388244744697780844568626978235861106713660690049305596364482471814859577690255914103156552607821190449788133113187404446186447987163028121138648343897937281760479287633580429453413218833761277888689959184718527218224274815316077882813017461707972127173881131960414749917197297858471011245918470198443015645784243167524146243377643205487581868619582528875908523776755414650631248305605510917258222464964600580110210569151543690341105837382315691718722013213913023022016902478928888850963161805938141283835708727523484335577081264664563041263579286574749111338537642196034421453098029888792917837859614378859971330455924265181350938694048737252383472985736318205026584572405889459760141295199783829334424508301545048028141176852233125801205415331018297495894552682054791279653140623266916068982570123623597847602564731355003485198047586242725718885273925613789789301623353853895383499899192616223418115334689800327416334546809393798812291774731541522543391518208469501480824399626739199285330422312047054588837166573568333413948584833642965915553163682327985827280372804483787720097815056364839263387658166474613896524142467445385829214524422078476611662513646248119372945536111411177093149424571069369498273147913251174934417818043393276418473710348424154651833984132161525862199274149830043882372810937351529340268313435559411077982975559618970125518018199193192131959907035787876020553831622706069930736285797386170430870781286380576423705361353632088805507025952544982231210095918329202401438131019641493897623337314481552983866336393855149479604278750750366420095363500631796552186109580225966744284564894272236527000621230565404055340606129549359703680721698742798749727657944001066027195118868721457011590267931350532693349846471569765920285742824258533598866402516938903509683618429112003497943525765759954093872718960925102289858972016569353418715991001916506795745069643907793000625947825740275321576393097157042900267548766408759494652336328609292658753214914701526737520211608163615398614226273038159420760079708146017923044061469595910597666639487276482636442435482448306028038876462477709501247451157598942745518465745883409089265750403711625308881703430276396106228798042363451852692767884307697328141071674232705005958512326207609155172529985301409183345962948890489849566044277695000482889980796506095491159505197282815280871003443684599514988105031360014339585307317092954895071019479089291303633749468517935607073836500494328705527430495010522382969798820813146924918464004249005698508417117160640006986946270005124582767942611026888925279482306705740216316614111534577993978502585765176458168279144874501735645589884170818767685407867885727615824289122656327087968908840679854886004263205749771737918131145389294835505394924471548931577214757147113183290462815672931848288493589445821760504482597871650536327432042550497504849426909185777351027344072142180073566949529482490224054909814028805523672058800188404240280262649213430801961661813158327891909105284966878916343284478126328271933264216994808052026752869523618324400302128459516013717712903415727296540288304685979370908312731141665798986638400764736304133046751313303075052352069324692565441493756452664435883858451451191237550357238929284984667969523023181202782842555008142960479477584010408264923389392993936757512053506639052518014600254110506726610043744011594011420201882628850064453445532126462224729179929955713968971382217284834438133560412623777521213886038311916346950166299277875238428847603055489756006573014275975026732703157256019037094820294649053109329066367106111574184443872172576338105169222537811959979327264957225287969706415112829337292618383895156913755731811905104657426994956897083473483651117512924858004627369089011458001107825830291041724270923854599434738985418455207078093084667907335555359913140743549535473864783191383842511065269204327213713626471413435092434787579883762239809960286127818720814436819854460544169980725382911488351450636981255237893061445728590730781087336048073723307093731110753914581408754588534790704555088746024419625998588083983037244502302582155683077755243542392440923938879890230645846867756598301865767898431493130752897667860719136786110322838953232126475651209573027119250598267578433096861021887804995236258475352324342855001317287519434837284145432806872729789709211724564209642080422694483491145367145070798077432210958623613437402622155681060661239358003026073603933622059235109514805278795169741356105287962771981081406506779535504078972210882062900592722014368111896099260934382339791065882147643976885834813976582685702689727632846473907190990302201124598609254083362264770449829680525520167807687026399200592790859525398172169384987115790488288487778655623454258371434574113110449406094769365516542650216507140983182390028251449803472976040603402620240046963846729989596291820256533859557689588413170510766008382590890864851334597153988841014976481486326023762204151418811731830242011122210499852309150863973852999274486734372962221048268745173149451733943049770333410214170211983104319447235711801954052878835059677443406823508625560165812762393040354202837100883358462365893905204279710649679862091985301752991005332039745015625965216858573133687741370388032720113922388695119386175684706377519637607544122226848553727222116676245630883750954868001635173558124287687206189431449770793668980729976087462075557441295141811304095981624874337253281656382815437559561978802163860313721256016065228182347861460221930315714412144859144272560516780214128788171946665074751899551125260420293235121706852338201448395021966168798964153929970999742375236845638423525753923847446681532788616898919919852379266562195191678484551783594340078718230424586358233091590700341719596507684959737561728109482767588078465013318966938360607170703760258718202563966778942216457269928750137762308180077500579302769197538406189609177203768392499669855696246337067250047890782976985745664427921730914104587177160776689494587476430091840675989147254075485119598323876700577585956065883293526557793718483448782997108998614501855892585626518601267402150820396681297734368568775115525688628074363152862535934463102533409707291038905930784337493958730886119258201555477398236740122405950341121100529134601242411401928344770003986928586188074549378898142435279883862717943036593998076188924716820708633102076161197681221558870871072092620305355261988916187707438869969109748382437148329702933740179392994128919134380306992687298806733712407888980525502625181681027454223520532726272132259458674262000486927663773905314947936054531276278386079274693462162681490358030320176071231085757886378143565069228637158681557567726155917426731137393619466503583138120277803669408962506952425373685120385548123737567380611823252617717151667470511557625471918015458421740131570901774928997559498003121876416806191796926017396731394079162969571478764498876484502830722160438296351129670554684629962415904423735898416787550608626081757550123307167608373047806853480570607085634222337863023711572679247088008049006004835982951486779046430286529514646696490841539582884910864837035471704230368765084467079288439804681066513723288837854520692533137543307090315553618500300397013943138046880220036266556099575508075258155741732800834828606611790709524688532232499901135534420400616072421894074542705524421794085959231453319019676832669133763421778609453523924943960822143888713739754081436296670264521312176635082877193461839113772871990237285229107103496226330222105763079262032578382700686377824471224471083512199911470619212487098204756690612397007225769938902246645806974687834924441192602574710519861784115570079601490682678659079310967640938465896682738333917766609070696943787764486172120909097478684874009144336686753556864748348522180744868323357383356458986087177082799694044731432457931139429699117987165916769265019561254722504279637603914150936749942193661728658175903424686255291186255214251658500722580198803834625519935492841312394335823059142684493729137721193419869545202326276177394073090926567876276703573521842270991175850673556930824557998953915648836012637801508976733555767080343800215080698126489478615957948908424598397716283473712798854787846358795641354552910998508173780673679096320026422671443219531123673725033265107409821671438020198666640387516103707120704602590051633076847935752730879885156120254655262940333570427665504348050054440297482572255753668267477947297406478209173138473857809701848881020141259491779484243659640381564865540923771481293502582480117320798747306898424225653041015936071685870409939339617611745471825573989124484871102994236432464892140715573276890523969666449777438095577268975121122443736375345656332315324202516521198561326473361585114982487228279855281799758261453937377149981668186700039984992132475142514444961060981940385454136642825372485115001843132025837089220447001223206722041744785622447561529366724166572725782903455413443544782371073856638859267210672992263395274345863684517677575547046554187241683036553458865398065615117646745438914031442048988463329111525712274662624245550027704519012326648930613971459441092642842526216477273006032145899781940410522624411200634799958179563008443115497663725953967888975427321007168117625941629580510408685904414505146703072426219708978276255784443512047700598913983929076753176113392434643914583724968133266705451625045603956157022176578888822642062374939481239833993254011696305862699616062001987790247360733326999028342271270243342683558637251270366549377925456759706212966410746022113042528987922676408696780697818432137560953052526104302447830275116894269214203054823174638301989603853701457774463821641905366615781225093451081558137169980886951135869798964179606380157298861161233906218942828751722424768773480385698468835563612271127308556959460125840600918787536903488530008473353242110268012344115194694749236153613226603559865690275899763308246046358985160816533462213920227326773677229453984942282145436257540925525640586196245079369790603599740766617811617090000461055485058942201561057414804106747511286677215532528854943827462296226532352393831236846236774289776795067794715052035431294961271812965106263629133555866834125259326634419428827573962593459816313561522419750954526381294303072157806586189402645286420073325190635873475074655952310956597996986205933556028880879406355632109683163704300014240273217903557610667676494978391837334189512469194655617887486886331636981542159165484762136282769562051392959332501962177354571064076660520573248105413889566865017235230762729596945535855697751297842614676128865786434318402739868567577056130467117744878401888583432389160264677443812313701502482405290959924925857841659607798009903151307977491836620360465799565422402863500248283377559886571339630463601377420367566858692674445002686450111522878534867377513158009793895110328445233824448746380616700791711644724172052215231058901930514250197965574369779880265235647945111825986016567463763694473655395733108783413422145513925191278546306642784248811947373447889202110437655417805365836798269141641963083939431712104538338667258336130056237083802560812675166655555083975462317863965979192282994205937844162788610666831281745712001411732665368957967471477215294326104507065136365182353115725926477340175048092385263899221386625849539301557267525447736486007456183139447565645037118505316393850687707890991891529562262628636561453244801323579444475413756089135767786593519059528735065582901071803923165626377234206994729715038785251577873530397625368568677525437522421757071639508856451312458065869241406469501881147249039593528858597918250021241314065581021494690185971666373941170932434617790170166480963886535917906374324265376338779212315618913211080668760506737023114004823547411933274800845450224414639506304200071576299696587421864506599422829519606378930855131278708313163075571241023975238940405024553965150044240584962231255852914452610520931620563535051068818791948959131734258952647766448866131862644203960817475422725846116752675440204855912827570930644887579141651837796740657619276628858033073414199648641366906549234022518871217843202516194213876077062937060229234348108519854098657362241213128232509667845972211361250732693648253500406606832895391900768937237267521081845389001549639247792888940004892926492241884460394829968141144382191200830666394521318508716201083748058625434145300543802611233612520192266538212857181784814784018082191302862791972134186552685488755850904484126503789564848890342978560468383837619347092942376308734651850142974355335005397438253004601390459012350122549653849982498372484806694835778572856088739495002189666230540024832102882965141049845648576063750803389556560738143647313109066690759717853494218070392563783593368329891280599367749753971081949612591946813101826042783495490051660740031514924737774337114645742702078290004117772059487650680918114392816334093237509942049562964610395595760443112943368406749470438497409971454606402079614293623974109339230016561859311625394891052708590421862872770978852051613548430386666004728672135929896652315642533522831168736236237752451914701486407636013826639369052153045502057580896166955207698274957250680520905220371953224770814167612132607514453419479185102912072059290607555966711687336252728207128044076216278590789236748274737228958101414356246199099190101331107006790347518084163995855231485104172987328509942382045575433112348790441699547596377808907113296730973627551266115558440974834789773303952148453427631472204101149859608775436023233742157089250854821343928872918441278229635260336611390346753850980302698057786611385267129476010586976387706172993982306409220053798024900214562319014121157035709437254027802921693861901863223520532694062666048089940137869164457031184419395791319325557137082590932809497690119209606713373984762052653224910645118300595305815511531637475966299950872337222903570211295253601522985505539568151909590698654875445883945572153245590407139929220322454243185678586113531787948520217745534925428843358625834752527487737147236392406716637054595849881503485324225597951578252664473037497837047268368961681813139220389035630192064159005225744441889683658688442529451958036716029129589487855443204148336555438305914050691344641064592051230885938643592460133275014293089562447105957650243837243523327187197612276873624488184843248004143115307898576231698763875585362962057398194556974454313403530539602789654628951648318936594085608187435277519832382671271487098656258497506545386541353197267873476147409124733644666487395776337122714360675489521123229697142506743054435491118227487620755437410937973379565451218299660242202101869233462579267528502162983651978738847879114603739247304022973901183559954529029772096368932405288711291745293891397359017162619837363147428385610686534206187704480390314294791593584730135057038202272739577454380395700720567570098206517713811614409797604440558527911055467538058394144900276609114224894755655516627733218900023225966035180949062845873533056352982715107376665982023142194477325000141446427027710294462152549401078986633428252531437602518986988490721320975512472492541952041339666084813145066719645166961219808330720844708962716120709507183016764697502567928840672459656422317775529799221094642903286862257441523977784068854311413465686651602023135379017550450455295567160701972509148859138226865585518865524420537562032906566161912014019741385533359096404538775496813127597262110369299121001762155268156707834401089872403965019849217182569437335481304156048317567142735114204876374800401106022343938689401914322140757778386464670711739026391590167666736439375817125750978564659474451584017267245394601363326824342059130781090807548068392081785152860145134311073064970306861277541391634789386160421740868682686711132377205139372260492029524858687211115733336874500221132596610131504569228282037125091987213982414322412254078612110667334893456595098471472517520248677119388081549112406309344240198718467608297201232400981202782184760753399186371281444110568282924432073131068130953094550982074768994614845075711430872657401007060137363727885972601375408947146699906101324813236520432356940246025925559012869733554582708255480724760021916423095259903909957184438574818349817193625214856112052935906476379197488809067968365471593185113164869165613181215489826613389809389745678945479669110006528220775272580490506605681698511825431169829111280655810718203468151664355702557117503572579447476721537315761816658631824830060703021519689974097998306829671524687249588532220417366778923098823214169934278896030267239651126675292880981842974351960453574590860269717583807928395797981094889773428279703793263711291875806965756839651406379012771399179693757639429833463271251659164799382602548079123428716767389691505561021401411968386253103353521803615174327273110052884163593900823872659864092513785656673124705285631079955366294559983985653346595460534088781117846652599354432989214418491792000243234969406307982215666582527703569878670571065559980388012807948675056191435757718269754107827749121802504451393853575884005087133873238633843752774434244158153245099030100012584786546815541270355318683745775980539742815275984621803446609272569413829412608153722092554441893467205235410699505770129065703250804004756975371228608566356368774535823178538508744432955233514249148035327012232034710271167789321024329422115852659844387898907094989264928357386281841556357699047902471027810657546898137912627212383557817551611028214147748266242477097803252598971412283772483533830247314198065360313386645125884188732959122632843279044914934433682378453952230044194456737601911546101389050975818749352796083069140449944613070349545462643549166713645067188800337739017293268683195236252047331467245766014228482368215888272673198884784883037773698709546513801922069631773504022771268692677822814720096792967769891523051139131329315346042126577745740911191041566140420520930728674671466700787449913660942004791662756572955220431883035226609404433623442925808384244589377891309547838184400308816258013346142630744507247115100988852132238004149317144287974319896668321811226339525119295592609221997614499403983822019349289868425524294358841821076963645370621067023976250017537751984236061409132174579553065424433719572785596501252681471411710116851059907962898935150416505038761871885917949020357217085175742362486431280087657904774124939386718253277357393338394440541427564226176487070857453246063558465784495005565501111075564293631012244879155989677885846482078036405100561090040753527317855075279332540224014437624874134913981631937558060929619539114703697474700607470505139524586636248048120038731432987186708902094539208611805950857049168816380013892372313344771964872887933251495791087770606955490340575468925088851803420117342311987884597010672077471081942982060104796153689421033251693777577820722290639383575080629018124039305962339379968161274244714422075454958673346381618474363665693379406291016956438468035868339678490840002157204842787565527499722518415652415764543056067200213177584447750204606497634161565769300968789119297634015050140065642439179875765271231163596295376211412297921110556857869431829405885704910745082103326206239537058345714165999133035525677940688495053147003390176406840697534857931470814801303192392104343170337732824720259398232491486852160309094822947997722381601459190224504387817412526457746147414519233681238031054720007175402936906740752905313180203104832116510996901151040614444685366741068883199717809113314220207790538806348377371237622593251755694920665508336625682197828119262404862745189331187716015723462947710868445826874045859796698559186596975571950438979850866023448099857711020923869122678545827682029481906594531399532923689229664181247211802366071309492371476437506092766380123003467043034555600141726290691876148338140922141585097252415265051476063180077305474487073371271458428946529243312741137760072052955222951347856703692111807260683320318416266622761798246297782286449242829974899474331219986800418271013046037617715132070743658919734839416394544658555344133954527170372448579227964416091008076133326243492288789656699420607895446301561689904233958369827899861931777857475624680648610953163667634491669721571057123312561630493217697546904045841769799218312784486001735055006807941662063244503273547848485221182496148600285474010742269663637596428020480827670039233581277465743874850894424723677855290691060945677080027923645655716672250522306659379709158704624255300055570774407747736590901342462854612831770465445276573246265214591800501416090560909616333624089528499792934715543631881395043103075771953343198028029402585663701849415067653543806006371040276178005393414526741860622750280156496394678770498352320065655058100728054347322022174359885068407082154628019334983590241153239073223469869772822965809045527499073701089096517492647176822919707466358720538634563603164083071249019121483245163907998855432040329908159530096016765845525360800039774476751639625155757320517556217430596080960834841900154191717385562983121413241706706890042929167299561940355378540429520981932448172558313314840735823003316671928405574227917658362104799439487270832366653843709176094422502346912201128711314818197384322605178809793862544812115194365441168197381335252586149452661140585605576419128979400300172513748020821483305846427089672119514142134973589077378664207953868546364181136450139633946217871103857783390571200849312841822531617119342503441402892540066710117239961930997270475325924474830284096608014598570047399411948240916759309450759418120516880044969839662711481693372873647836039091303754167990099116300319093426774547581333993157365999036161461759515039058980833582101051332124552563763511558407271382965580801918888810382218195866133835974701926647458833311197087404106482187716957623635532566730559161175692720711922744421549384606648572725264747469536528441771839057966026025934439384788876358943968280918346145990943982797637020626891103790359396944993639215030452325448611033539144286952621813414246030860885622958264563170908999274660002545842408171864746650609507688798323343330623306783064936462777341669025615742180532668365240962622641754787742361133052021708892918246907997251745946039847607421707478050432188192180268449773374145930834423534288390991208189176804434165361943208451494799917662430176372098423581119239053145740996480581137971678390756384136580116406431817654618917440734624511346564414399064067773714620831789524369072425206256933199779889871302348144929714387007352501648087086603332195039906963655928792345850329332850269822736813710359837848985558309401355817260372957892730998756565384689221720836602247019146882898973967659532828396820606407642883919075125850912608152242649952763711723981474318157975382167341353086174203329194865553597600981599614535153910200543442885499279844816231469931811370466233621398398803660624781698720337817306701215798714533633639494616770161449416521861373307446638471683271100703585491302290039774364521820113695840690360883174410488266525633849498714035695324616667727903243701439500387433379019818486051969707834851663885291897965133317460252624275310136586742799817360146994547985272971305607736540321623203839418204702729234133102013604876442778849835090154847778319695626962813653084121262094537594445666576390726103669857995698597794067496103301491331767777285835825287582670750873341274800106054047058192645363469162749638297689798545928652067419162676583486846673916432436136768006330964217690956039380999706063898949320609068170188760055564769655471681870255231475397817624919218645937733643184793476531972937205129375930147337348696019690115731412578385179372137457986718996874873201554304183420539606036150415111643725031524388034742252331674130143678296096069200621958488513899576569519635863552545575282347977343441321466479230992330510561580598101918309690146503863838529626018247586499118670854820391819032664130928865970877794851702741602620613621956559669426906661673765490762630312148382854096242288181096018914691054585553680032910475946825885182753584277334769271755844621358877293597293428332357591983774141177363379930336370924786434904682681398794236689632881785034189934292036521787785076900917848322025227749003033514898411985737289535614532204887348500292235589213447510314221916642060844032448408624590237844786306649830953554613512563815925950755018020369635843496833032385375472900065279998907757264384292955219268696587680946870702477125784731095244358527972358075518570588504051155703016152215081408789766028809946282003333122256169786413298906362000910350137295385844216928951094571467507566360883580777666148746952818677516355531372609274579240962864571387877705658994820620408065052583647552252018781996918795026967599186092522354938235419462782289682208273788294401206541808023408269609345941493288004349095771386745357853689669989851448692199153352820213205078214678559416500361551882646489224712984323935412657401463962041067452241218521800015500667578770567408861239916330613370322836500083857875125731043713135143510635378136053378085537297648895790430957599183661219373179834647622933139531787596551004620985936508127452091054004207114548577757473911468485881663462470012723686177388620989409058843865386933933414685724576121101071631005212132075310627522610794226006592420555780321630329278906354330953563458083964380525888741236819099468879014132535979713068503830933910571453162825148532374811235745925953520018550592277054902525674927380177492801770577711584299563085707349994800579925493227123083605320997335765181991455990930294093907867542932633470620690564108328309680772496213988847090117748654371804766046189411078886559118972180909321502770137996560636132074986827712856119596324324983390696734467069659019762082038717649898736553824684379202890623671865469987283354443375201735779292120852158364441881337846519895483829656336722258302745977978616813761876960807606744602898474451506038523777631659979176381026283158766447060886381361731087638566792782497582478421820831413964240945428595295756436172104391835039375304968124657038494969672725422517909820465465231465269509835921102981824181400428701987015952570677178899118614201996792865393348520861686484212140188200038659240336397584999568041330798620438828595429239820459695690749407081162629833262432521171980333576940060325007912304335617712441508953994164676123853004214080026626050575377224108829467604587079543020881519295180058134878176755642264537592712192342277180055178180456330772237766513805421602157206472853511902101318161229472285460611796573609402106741159139533213936281939156469032067955688439736102591198234728472531928517441497632997567665659162103094329706126434878295757136260175453847095306024027719643721932964775089927776176487673469818202053893336092540239010097015843077809344059137311606519686798036280113102229976061115879848854132549147134495386113685327659692064594069268080099230122208648367385987622300015157554890184876725046548760215761633392995051953251681739550889707639671416408624538182916245476804288725555414221794642904159994961661755048885519775097543213036498233520549134464935171555044819034431817396416593203753816642008265779771377440632214653986359993398238539782485135091996593718791609492224103376514313879706989978323049351391203531116565237534878050213510364342736540384339772131192760983484264683851912184243113224854106389794464566548632056708357549280430477817722941194906432523714099255222829817352453711016518167069158535693941123958645671090384081925347064112333569568661011095336550164074462308252733589479597736619529914204328437803673646085971858507210832474179719279087192102340223053557058260978806613788966717220684209174373924718649052272441987464401185100884578347628931441211227878982892949483556923677791955692772392907160174704503041427001404773272973902798052253616929320615270263352092744684962146949449564519856792072106587278385209532276796074304425962491313579406223246038505910314026433319778639752022805942483289019500567460997836042804593148934394870169074658676404061006609909533647329769572191549387539818026700531690265791640740575073119950660153213080934977344702666070782666278453610675903837869114249130497188419604331981713386868666135856921945383006910952690942510846173068701784648409134677449626344921944748279548856415779004937401700485476483781964958456353883622841333717554876942228227919075882386634951118698684644413374425373671732977490446321508493086366228328685761637527718025157047194081228910102744079294832310539112340463757887554982596078539155457418807186617449260310190197382847608627215195545669450978873605840250940964473031875940761837210431056962078759699445496923154509900513075567128407146881816686665212704160657742202356539096720225062593555532628231533070119714366138002001859643780776250044726061088381066048227719073069380000253374355523276126423161251228730013114634335223180446076441275773896376940195811273673748931900488978394610936945074915254021266529013126623483976670235709976817014632533446005403414103902778234755121899719587643490581518138189323263399971536093492049686427009867320973939440815476457304638534749346342624350501169561553753469249743287965420611919391506681683420669121813102634741422400509521388970980328523272795943608369624463080400412494005785536349869507229493823623518046935966974129534712294347040516693329119539318751928586871970547026919762224707469114932680511215114417048563682134151682011856048900082246941451606454066735103230713191469620757248370587113573294432968417090555182787764641763036415291180927263734410955983222881210299281001831560722391240557455896684352861977427847239449970459152316883594184725285315983831683808444125240339952501934282959322652190634436333933181066320021040677378289175620879737162863321971675592014511343545114671669231974464078292814874431697537916407736867286691151445044507456661851721466199993618224278834623589215424735793743888727361350226431128913780030564788722144899206852050914981274504426587008365943322832731526866719724543939762202575005735843758055963719358735343892731041888886223476003953833732564683832813303109183269639230610504375186757509263231641529380228125554014361382591956742562458650558209712917947873677477395979232825691547756049204968175216670804227685492928910838596460834967152483436876934422055150716274456345320833087925304815591676742406931620223009546307519064889035021244638816750931288636842344361202873203155337441744030533758821630764951916417149207994466847456789859138866279132202391288733302078065435776780540603252230796287109091968303485865493358384295076832606118892184045156080101514392468824251295266710350956143977846151539061546424767281655137633923765964021948611977609757989972041531654867469413927459894298114234132266881236301583646739379058751231540197535068842142960830088476980885025469062433035966377061904623618434690296977476278987316323490814746925785838138938894543141322793626417018344441165405083203438222882991544755603869969475093669787572620472178110169368007629521351307115033754407722687680974600026103124817441519295343180252180342333253409788991245679443125603616745000809633378937152290200387041950144644295042846306968116857820650455187310170881557606717601995813980938273827451824419798889459983348354745629964984392406137751113797027437851208522327192839242504499082530975540263419269903344461063455904031277396419888929191039191254941284355342563135495365906712629870665562301843118231801998331971861789630356982978476610024127506745204662730301795139200069337898712043856922203659421150782219336775522526766884076888417727797363272052317568909414812820017326708213399873048607632786890927567294102424345205729124116680586084883535491948564266311001788609582370111937932184817391542752406609519291324563315848568123898731573412211953541727916430582810713030948010926444404961673484582603538363791283501642516509314007123574146992830731179093092582567933545851743522896999077548311746028811213086341888497745482206515573971280852822132646081203908290916279642706614656418810556182979909094629478367292931495207424328908677972708388257786728009026230599572445669831509168915261141102968635058666988567199033538769537249635834544785043554911952525325204959442285464181040212782915420251207506704124649480656722045709034049208271989106911397823249732003940100988795655522146444393424209602956151786576005126573112408378810994968735079462034386167352880103431126045749387049449944933887877173771669382842406345327800870181823045647704630867994584058156617378900770951366473282268043802317973900211700051630999123368005289137769218415084546196821387173306963346360831774864035001495356791387096235598350731305781296585578522285121550142329950877904872867936576837304560003094424290310174696306079385665061525571986337163510163078336624789168398755907813450707968781645554970771273738643164449531239497013157737758747240645349105120609191702671441489338830976064093077522524906442838814377952291685755693073628660548983542717428961552869493172120220190146222391268724147195248373094996094556215679828971733311937590111587672160002905812463032305110741314824209225894323014735775823067654787346609972353783629943889558201803258564774250758125377725653460244655569083027269094928915245447527917391323504562553979041346285297608114251401396608800900988285218680225585262685759464650044784266775800715589855930050143519448512217778662859218651909348809069163462047652298241388993825849348499908164955614840141433570720494779547179813189469103423008714541832149969067988057484033551823112787986161530547565122856137275902643151714271836584008455053516505686905001068062206087696498437483772752764940681955893925493034585627638524581446159359290604397722505837918595166514539567848722776397341069722485729455534765244361109691432235688959638568006158486466932985576504213519345532976057654417958861010120158586777325974915071311196686168856332541670609271469261136253494722122515258336480994955479432548615969540415490290348573793200502793686785792319626500484628431419693045627694039847266818628937464673802466079545613776490675726086094079441574104432340474712500490708923123038356493372142495911048295180663140964278964207319328310788364968707671701594739201235255579817057017111658988300385839493486195415716626552259303298034225128929192483027134327066718024637242680666303211933096357233726912650847316447301054998303646072692795867988657304532214083631540045194188541037932665170303488284292167424562563028943307568387042633564906002893194665631247679581681637763153679938024805074985902623127771351283409316379730129778285368855306088198014019937637487513821843296613894531379188663923886874598275609973060554821011755886344833473109095613025051131055111738138806351922037376310761758567161187069594311978092764563175266393290034788439745743569979113870742704934077696783742980579376012781925454499591099675979687276380012165462410506380705909911890829366971999976370725719035903628315648916366562250313516489719960838745726860921703801159140229098608428309562705687610293463905604340089820456416359599094365799112779154212567669693379335584164960333106363905530137658550375260104869879642871054951626300365808910639066772049272402879264630128183809493716420168930372240123549227706624233375517891105673499889343683486269970758170986689764300857738842904297762411276818009112077240806930315836645096453530253058192742835059137155074893605004916543378751136599005704017920433977812421620666110071895983263336429426167316510280983975311878720557895656119072463382443967845752156813715969753106874373909062140370740419676707641807920632544996052153152209490407669835539345078788298491273039106028541806563735070655621606714076717195327668999937662981624719303288097263847233514467760018409329434438553765779108741160210977280135340261586877985535547811297265322242171288464731015555441578350927739046154259023277076283713616414181462197136457877693833310524064126521754882632827467479982865574174549621151590233884227464904706161411964229903338635957310116785832527336613646893335072859479489917440690663134399269049192104723722801877728308397388533654127861385228709174789303220402949526392972863613234767056040779992848220148037754100973891153759809038079100090605949125659471227142402512206131949071721090329481691494389804598860882520488181271486733934132638784117398456190398147620576891401527998096771139683205616105633629932979296560505170630309903836897044253582955032384568260693048134772942816512961191272295272320601012111498797217274311931622555674651838807825728735924097835457947259205875310000000650965902134765776043906700762888654047485138193556820660515756884654175843513648035770513968436126120837335006973330016758360183287716555299008420930674946617125720926651138391364506754802855327526165475910587816276520185966801437320088815916790639649210964493697418000972787226901358817358895788145027160125336749303548564830799233692288917875381015495304913268908447294728828678030866820325967467090989015585236433460868629374147033904113871584561984332066688026846865507005980925397558717563653709675773866018283416869650600783809226390876851095016032779394923455533694520536189488200096156670346848502102560051946410350141000779118771985127977172997471461346223232128774575908019434837415027576661231557493588798413165372246154397032692795609550534019457267906429220884997103044209916858021655181945706029815782859235360101299232679171318580937308416738860912414403684983414314032833179561870371742100734808408197452541540123069513907692618171806497781642124682250117776736178792985681710742768257016597334268570249487436213115299412698208470554478065696157321162519155242121045550130793376319918545594265557463040503769075705076203640176184840244989369690423216539148187766884338384231119929187178616249094139087593291839215058384446350383513042163474813316444922500720292723547100356011610532608572145890541940561865977057352488979136763106699795020430614816191952129598157544769521278760976300513291152841043641996335636667637199613375564295355199326528483647886338706475788992861949708710632754798066471317449366044616843166515244185281315019738739716043488642180541541938618521493927491003456397531686630289063374983713670048243879743622138834097341778427207424784177816500263868191325208365841304126242501228527005579276432197470558303629286948051747836112210469418066206939793762881796236160812765799734041977475337506897895519573105808731152110844993921149209709171655648903531935628996325816751361707865595455598450240688276042601473034572802188085381369367243807995627472835022221892682186874842947331599068452836139831355817107857490635306196995947004491725653194824611736674934255054591465471018571590127199963915911450865270330075957139074464304050586706099360840422817162684294802416328513642628726128557955129677462836217108073241913735510050243468194050618525075700684130953426709127259832280219891315421612160300869457712737259249674372484032982718008129728908023327038326609107190164795312288493279554366948317014031737615218399030146948165754477437231732160106164896611763578781236833353296952394447369344728866878095583001191376889348598787392459346375010873379224752454213827528578047095714184305837281295722744877760478168843107384630615305370054418231234184103789129128165790562415909476095272917794187526412975603669716125294939994157809368000946178615171607546508704141589452393332975271997650358599986813510848814884419039780909419118919666982935741070818774189582792564204161581213166341719498079487147634365851140649962531488834107555073499952690987717460798683838149343980524788267259589640839929597137133962759502531009056904302596239194816620816928670532964575519990801660528699306065969647513735676158789048236609384368171746158479538364811772366124721926017344117910821417476066118269348644624522819996928526031316115191626649472447844880757783248315254106141457047710088179383462470926495838152943830527246069900715532217257575580216479868862734228914267488252796573073034389231815887597339392735802963418598531940391594161650174065742061001437673731514287187120324878451270891861118928661525597541045457515858210338408792512493343975597634444232451166810384982733717586578631218779626861369761959798886132652722048133353083276015317575604696411762285097991903652039899989270463000603639572092480278846416302799394198392535536574870847662176838173223880072842238448723670321892585176478926755749762264360760260977723742577559910887468932731190829213882503497066899807419314357888847858300701505421333415863670069766010654804453807332957862771102082704560968836337808502799665892350204424394076702522615675786212046304739190379240269414322426449972066129699910103092907706412755722922007962558394922745560383713290734466019133802707937521532959217318821752701525032872162461776971421582908184243481602938607401223985701391659161550971972297453672751347730621415806570904946436712272673672125400748958144523531130535510541918220584476666426183145981934049609670019209306732967213958255017740721131359924157700174310424762069133966434389905294629747155744038160894059902726073745475592686536745637504470343161380442152792093814608254615445455481249247806120547667233731852359103996719689952463993696067992519258086754458699985819322779330027400178638812512489420722853364215449810395057288972989753632960711504714782991057304325702351110909012983742655492979680154821245068429175302130689644264734365607344801981238554236332793401585279180169265173521535226829263943954966775484550244621817822764983053947920371491529442890505769696024772750729028616641206573941575434422923474475983926455058507491721200535398871547737663067580676047975394160800774854229485206404317692685783358177391670147648747393608806988030029284342303950099457663639579124264220901597993489257223572260379422966254205338755628815303162462136926529514277094462412563100530784483290402572733069570937392937218716641254301360738779830130944773147279607330645420515257377627438764776628311464007273722213425776273340247301376165198548676154993721814110746450550435173755474296428430015782002690592532679144064971671358178338251799729757804651694767262932836411957998889774694771171633639159127542878574749105009800091214559187499751581170714568048037859661903378165958273473026428621911618945711905919110756783179146456469016670535403004504749644442645811580184770257979699842535761316251637518233191203919858660941074381099849969829532080961181797119667483648181163742149351529297332103896792748821800223686590171830616860773003276557150889356714479686898281541236430849232261246447992030713994290035351981195472113252809727651750400643058195757211169070687515752451190178650161523876229611426944112378281995745799194321136783788568190057160948065031393957156589877810477543219254062393624627013550949236668168004417704393115106319018907175926199153301937297248131579120553749402468882971622734239293566546882031629955161151309885750402004686923678258078566283701061760234949726535338417889406569938029712752602671104442792742679248959487802456673487141984577820439599230890944325956482151471225106818747513295296803750678548729862444262992111131488146096469955300589054866573297264643648197874884620954469067003269362196736292125252000270247268585396599120989523976854214508239301033495224241361602304724938578779333164509390927236343692712400095730303740600491284196617192237517615464515632592598135838300105856689043290811881402601516211898976093936517469751191648847923844293319564919414607750698437338390044421713382311521062671802463414693344560885525271799839548713400797987460778128437430250840895073913817831623722501666725341275141889200123434349606692485716501842094711497769354308211516424443668894974229060039658794779539862396260075671561884829730128913034672364694098115934614145080972009896462787109468240493056990790780107937787573006403080691091481486917399568999245951477953782293314265974184283881834778233357675834771731706318586347724080301502142688708085007727917827107532754226592829903712379075376432317513029873988823475338259262558635440439738517907185078485517519535833620381209226658137330439417832128211203112027984872851404551740649142460426731227156581908286775767620236070751139874864407825439393274039475299256337151547602607963283789870261364855199838651062820579571516476131550189339088505057437767842162492680698437654122864932453743265492098183640257044488346267285260388999225655380985500775145270144968217991603636194295840844161560923733062756689965402743711780493256283217772083309150281093932131045380485866712138851347148490704545989766108656998485989533024960898446279235494231189207478031576336372548526145376722146169605254232211269854440053041680284445679065156755525469381273408499606799656765317389738846697781304940221336902448368642253524171150714119392239601433222651522506741850100148672667446007014885626490890842165347799132792470738639516169587246728946254799340552656194400601209110638253382166033296580659859296287641763636020694921412184705147839873783709196962122725045589713127368220128053398718329343139011978945200741694808193895248519428359757378693713097404106279257932320813990624724531058443544675566998792876384077382917716462077862016625179080366541335266640226040175198688526987673663958334650733120141924705765241630855716406658644847058392466489914768545847403609234588914787194403548881063262092266117259869674694337781252122053863491001277336461891796585145299546990035777443377567830633942319046713368663985308873973534334713871110717249892929611894268560039805025247440480081367975249836701311648485104897795168571513163829386057098779760365568101648674727933012180947714932022497358761603108054472152527515760225785362673997986945233939261166442467041596721424755164765756704874248393887620011616027098786966601067055112325412644236673931571092379672047945429400345744631836226399582509021274140052510570879411942953588314807911862404655938241712733619823756085012524606248544572831022962510029394620588520755286022444417517886091525718184985011959030738874268246178748460165802072885595088116999208187709742179199615691772651335529623596414554768951845830711024517046973071280229708543865295188978860614796244007908173865685847823558285984041983212604478428660330046775537345637221753919356456532670403062046750372390352930052848301226867283855789825465375418892850296629181159571181257978943176895146532728068611748759539618266941892897314794940466483289792190901705103278646272553297082361943978236307352167880672543696726978819795507613509220566043690712678387529906604809704366342062278697890974474149163844483841888716257122307877458987504804867205017614058008083192624206057280701246194032880141390211821239979383664357167674870378094901611208890029672348622121551872507230543722796498072204328729061280302093903105504962434034144126914894304008017635843204908280013828617478806095974960049332747690121528236374322745334650332069789128520739003050190673365841839849462685024873315554249719526641688913340215240093365570024365149926407446231881769190191538973306003440975262199931618107247379979579131352296035222183392522606620906415651428494206910693531623264539303245053352046624621815451559777339985441270515809870073766859925556032452372000449373630245323144496964762516695153527458273388867101884685492231725026558008640594330183701792982087827809505410347984749401899566446200112905170961286492473917555004116165866387344674457331867296644767443345071225997270218015322109677953194741658026492354504172888283839714977822400576601440355360339073758874950550901038579576865311313504286215396924370195676645022007607605005046661534710261760595720825397380015471845575318959397256705544515771540236885849389098178750250948419728353788488469224921160662823688195094304145710740870030630724145213541670919004310353288697222155716340341370042381155463878554338104056898300968815167209600875226719929455602082577688219896567856681724940102318125105463780960998337263753724933218211675333670761278937760720818145551643334406835763902656048887580585035842700697471923599653821710543950006655640933405071989284168449021302530040538587829863214093120911147323377810563126438261207740698570670903778221833074346912470974612678371672862466886793897607258477105570188968980825284696012416932991258411117394404262201533663602191234910003339683534546841192967771891477595016602240137864886323724945558451559073289440786885685512490186183986865597966266097277266270945605585318142443492487116324762641975024553618831817112165351830011891571795586808048654659486343189000299968649611834513776364032346569271249004002350128484365637056317327360292775383574832235328336645026631033847915426880396897913201895977601639939047827061094736001148859108701158785811226538869211087117410643396416887415906251751094790738607747561884051711170214906033604538110901396705703106858344455800993896668957638711537425857460565282626185250775810262746187261553107752030586615374154913811433318107180770414015978928380471463729261733298748710064446460605903328238515154370919801449436780481449145611219918942103535909711625571109822302724795948575383840465122137012653446740534869007337149591919078937881498212594702216964170550947469706159105044870420465813897456551618359033869613841819712537381439679982135322616622522509647525111022896076312541951856217019215450888200514195224446658549112528280174232078561897032755826082371637764140245404676182545532916966748395863814831109388012054614604922091284584196137176632978981627023904525950681388779363711946796240262916580587691742599278541706441365565535585933217981763524077811772997519840877505604826100583869421589546690926979705758446118329913679539153225921078249019148225206907647998878980927670273348483709532627836406360832741937142605028372832380024645615525003426263197799684204195201261756293301435260979750615009158131372190586527116908053753411893765029685707281365712204022090077931734682658935050665629659871095063166429663398893735424854342776205046353829775996727978351388649114996531267341084348452716085822942651443299992760216548145666316796704512422090467372288745631472290034923318686475424390096867614434947462608567548176609808428133785586669515942652529729657366304169903003080422569832297807916381293239006600078369144736245133141347711230128242640821373058620399265150347091763764081897363025649522151447438847522220957117676240789782420266478690828463378583624202240221824255301827572107513988923783539241523262609870472270377244822992557977258446515873429176698163326141052022447871414901107324817698758247871272728747448293552270095138595890366468387379799836570931028940254106113695044763581753617582177344997043715292338683480518941752929698354675330186469082511816841421964957317287868718563295681227758462460647896035292084136330572250892776050969397956605511758551442755224797663716496897557284985817625221363580709934914937467467108508841357633345351376743893296109937753540843652593300736098384558944052385172771860612161232601183216344372472444758920504732192591893232064585760001151840641371246701212036973078475753720176402402310151525864379774700481749309847880649869513252754261742228454134565927689358555821746144640023166526426834083264950090302193030177484345200292084020995592938122631765437525028839800386118789100233526218173294096137037675221058503991339870616886690452760986707858427338116494281087678880201308232037792005689772155512663389863683632399459660424702303519852484125355699110323476840850984116660310645603682638553579516235767768860094535466493496131080149149939892372640108071553972654396866805736894152380251733626243579206864487277489158192951297135032222976313204432604395494582436839173425480505113408206235612966818668909640715137431022388397360362089693873879499314304362480143171403070900865912061196383471878152552068807950989218448112939399745017162748449395770754415691452207105818255682899361035371362873697199722329650932422905012566520391839252620060196285886188414481997870772959254604649492162841118028076330440128953252604111307563627420125426600847139325006436914435562675367990419301546236761946818728159710552090502947527786257698871335270109977009024487750448142379788031172954543834676689224618354243480906081422656891668353435203728154634145286584332707185026186988725680348666518599835657824699047457112026380296738651850050515128308579787014140787988159754492647478223024723754777446582849901982980513481909867385384930609947761156672329785733193442560730504654087438775577377420971463595466105024633436246880851877803842566086544305168933869817667698416134402366951848203009585694819259333972882006754031919186341390165300059697990040749025409092884101820025398010528566922562364151251905805288776225497788977181699035416983401098425282445401266508655687667155817540907302326154232888093442451991267234950307420890930019254298766869733710454973087795233132691580698730445330933979456887003005366503745302962801354092795140310658829310375864735519898964325141693194455024870651819652642852918209507209663393194696843288379709753163260573562683945311988158872010509250871015868670408327450083306347793617882227870758337130482116502993032383526432368389210623526980291050783109185319009651048139435816256535179585801942016725636000854145529649805350049548361631959219911053467528563156574600071701804656335107365815583837836484770872529746303043443240146364591658451860879747155995306556304378067690155310068330191251835406986579107115988535393013580485661455270352331154863954683457269659735974031605637514036071588403332285426017010453006989956224626980634767995845960529032727681932338992341536039051304137718223649580464705007660072485952054840366588513871497075625428686291322939902078373049432814010115644408921816987256367966341134193986414082542933345165190873577909149051081940266677952197821955966389906588619047795886612902879560082372491232981316721979048153212617272117696241738442549393927763577796060244495097773191044374857368604258942393906653605849169323033644301204890921049535634207101660915252736960936193956319905187845847641861307725150069616060145780982264737544042628880175635701632698197662880952829500002138992073017996861813538765799807522402378649578641567788820171529038650412217910020209651488823449212050921556113423879842078360607525915056704778775674420025086567498102149670652857748120725538056646203276559706424193961215639423853144332102232585063677727183804076150869499449691882704792988482083853424466939531134130552329943777894766323130609586156922862278768007637801734169166599479591823881737842474519535435921572009374370086781624441139924105324812395416743396595459566735261604061503888156690032519034266090211935595384536456959903778990791010305486668281264359248335497883996522568472883026746359140081035874976685009551963411275060781130515970010321339291836811583321400213661400799081951624250443890034495023833060075311330716977203794141862421207643583642001293971768738973610328294557734998898960859123079585310918997237003218210850332009531553054155485990336563843712867578715861695652931779100750810853015148761194360289737216473310181422784216337681218336220551057957645846303411092944322928276704168493603653790318315779739844805545464534019390967416242575086185281590784899334078780428365328905822706130129558669552605856913813922088626813584015852824437428420428895877808267028181823354321302347381941401695701998491383832689471088516650606580238940141421285115983073463762746913512864051340507982812690205081706323257019969854396960392543993358365118345169110665357901563956911076906995251205620907053420870681347887224862734237315350379595375383461414478072752393803230279906492161687865379137992004633214859181736143927804216332564622233917031280671614963799195535062954803990731509008124374561761900203561676826216506734841188041249926317188578726120758680819837831614846730055271227731652395813834299045811244062244680726855765036954560120932353179958715047119406270020051511014694950351240128464602199915771949087143597478931727663484073965382388216676449349137230389710170571374507542831861855967320181733536241639884815020752898310550561500703618030092282580416564045251279020064709386794728109472666135853368226619165626777542904023731099387130037010308817682867104421727431960541099149544723982553174508051621083433866953006883252599270344693009011860017595862382010534828937181059630923126510655370913950689542005825157768884309556181777435038944648094507784153208071221874305249810528332442505449429565216113940726017165352270399105146407658503142184680971380282872314651413493407493767293393357351942736287010731356153266733480648623055321697032120067422676436782715342919607031144051501792203607327952776258339981393657827094574087409849076995863142290972545828824624298557244876213420224739247254322764204955521500597714667605760501321114904146839884242482997951823274113016847935612615077706149567714057268860885364712966159189966605209840625428626983405760940578424103841021129141011782320262020871848498884435253981202297428509961590643423395897657539737657028822382537332277341186077657597775615060402046655712160148831033079384016140181429781071873122161426287998141411323281262375826445832558227225452766164227510301554317113607665271764939644185798355103032741515851497412246909405086508434058924486133368365675718022932812915477354956720150500422629952651633787935889948677544173772351250897541603736924156756371113202902669918056923641869729212834634964227968805725288564939155651367041185829026460554570428801555683595036433035717821325815913798782508015056562108959660556273779932169002271971191733614529351664398598456784411780440805842273746274598387281423720927237120895390377147898045045895399097792186483909578711526719150785892577402750681667110825688620155245564330170695818690184310299216862313935603230735533439873838602954917765135688123783826709734287449498682355571138838521261432661899311442576659445441740217006231734772584896358939416511140078776516368550950694859986400812886703877987611472046357012917964208167995784343075664018390568229097858720769026908630240434200707167777532178431530077892021638855110850916441275667058106101920341127580648849256724503560928053372106349729647270941636800734006481915179240276201038206462018937443062517613146377839389139608485218538495758402564032814874298817260345395875362253018969181755513425635209657936449678193947587033465294442640792287477536894895296241980492852564520000964551637018257110943221862944126498897376115577732026897265075631600931229135504452520518069698826752397750551855502920491294336624590138281061015878649633602733275760744728873980136767963083508039555782475076424268028864194530852587295329635962821531959190125764892754377147820501331030394318012314351885689429157988413507784018738322710581177398766511148232836318339591663190315729001536726566492098405019065463253232455245051217716406197745074640327836904700627734246293420401709538278174561670938151194715106434993265279663748934379494302531792382819263493720254786027291206165500120217581468195096921846012746742015549217860723712497462485423542676059260604934293918494569929766839687214129612989402666422930351527814468377828318633417436112830338506169919047117373404512129946082573890714524550568837515211134101889724407438978061255538301242650201171715856060889231425625980837845197873015154979324458808514634640253965528961423383860444690997368603728472611950092623215566209515903644635939925275564912604290816863356231861301596388269110103702372229640739073971191105308438005792177978858542931463402263876692816106740440625420891274487985755719592172496328916352154860984472192764939802116084875723134959285648886224608602201906558986324949098554310784273815796391573163136483162595911104420286014878021336957638447943303055972849602590582045856738027705002256015006094393917408060997061402717684921066148984498352427034639627360635772201244713544418694630479572022304789366067024465372749958571765650642050459643740005399360306537645634177071249661578284867439260050774084022336925439636560532267285788887401420075026894348728353322941170273928504992431154049095926938529469385527142444199726486486468005297727706647844618410868170418450689204425498509704170986810341958917706002232867105264702747111809342960904576386436704165719593735009390650681456580034152331880275342289253825130563011333048752493051104738952904896693896281051991345436071786373336851390539240319979717740876194292030547774578629019337592568156919940614063246834664433834359743822509860459300077664691665828203418917700493596896375690250308923763852112592324461278558795861741510097043774358230753865065160459891571502978157436306762389919868262342422544351644209893900772256830133971977870922863358108651220293022968365686609757442298484114238199565109299723517908313473889728390869615493118413835975740536399866253186083480601748305233479311997796439812442268285004906876775309492703333804715107854282819990770744722088539789462493903990647985496225733239705196986199899980813510137284162102875785652229677114021633481594054210982833307661409657851011963752498099175750357637340327554479160110024352662504624677344947651622457003009791358992531722757506812855114932914533931668440330037023493083306629865013797139526683484783471614852328114680393058042560099799692807371583950151879019556983588272449250312244913200762098224195697605390095837483876989693005181185382540077065282477568005170940244860488195774053968426811417361973185830662086575869543988459261307712129598366361149613914529628720472961932263920068473246752439817541175933795091071456268937004950656152023361545257014194660201887496156542871091978501788700176875708663815240843331291538834335469669762362035532438002101358483170325566809832854789800148787308841345167078423535631915212266488502124049355219655014660856250184252763003778072452215971158496990610161384402715793273607720012632197949297491841322576309419782975723447986768466133894506551145010550736502132449161113973400037545927217965055827447962778619466111972889889526500927821543329924159589332416607833750021308678655481235066921231179271921216051664570664243227225496154544892240691391159419270142872907354228774592165004457551504422598940854977501329625101624510770527986565061168945564620399549131100393051839418231424169699516209569863340717820021367088375628749443914897733210101707714069337937770598227395924592766929527072476465776283159142378832023055344999979523619307423364174605484264949593433853550219580489322177623877647363267518681128861478538579903785559213699949151925404917955219176617006513473521498632703765566058765200943129132073485154608255167789253344264539823318785557733369446330830394313128869079530243757294306577095384621110825915164879246944746123719377163239444477846903004994859196636712714816977809771566170255348542425492684652681498570573741195045860740486629973091436176951188565510615829426550688278481404572386306672392259235406098939051293860222591345781152700125185413371162170737687124582656211827678612912301915415980481149995879907437550653021895619983861883335934574603922989667699643615546861207859716311871925373144393289151172627639319911363573806757076970790923379689984958276398373267072274762534437566372307680967519637701509859279865697880277794854455651101591459285115805654775742599569372574410691541333645834697866115131601003301060873449332928296248990949028854169965270721320187804434020442949796629303460358859511838137921846325873519846529237159990632136216400527205485600679805145741287224479447088086525570828073924601178014026454730686116290018166832500366318705819359512330858491169488615855491976913802979157758269063673493617488123127591940032780594175995750622171529848266477560983563958192244700714810120224459084842977872628647870335500329154996693900734972069761267213872755522891620377882162895968218768028604005281724826339803343988944899960100707618481720409025914599873696355544717581541033027077628401407046831743363096889099059234791493823782173213255776852591300174168632522280556450611610285390608404743930587062408057073854027606243602635132978337308566871681284213235011504601572577757459694273881661878997055656336851192995461983030770662059325390230494572594206850408175529611136975140381405532439687996842469626520173046175953000105715264897363138703809285054787522400915550460153032228341788435602496542010450046614912928865599381839924884800153506222815896590909497716500737210926659365626032161108279917799087459775319353393814414345858017090496312166896557821007768506312448818921047734803402137757923728770700809712389892319196983419959782142710267178824286280308996488397105459253318798396643481753233211468413002460223609019564154765023751326153959735562427868322750591256565336932039108257733316395387241927181694122919248376030191599773595835348308452553752388350167588935216317702643531513817476598107497560045430486414237178221916636195401639314182951751287153600329416823923586015245822712031200319009774228278288165016785259070212917489263104211126333982112234122415892474501616275059742906855247756959861745056376837261289397127242405538988761173879703205206919614524650382445669900616744498777160630483416898448723021525896812941721712727935486525608237110001616932420564979386589793061138850930426604295413914463409169064457517660526929179828316227974870745468050105591555933685453751362668459399397009174499852582727484541539090695211444973456063415270435605327177037803310555212650565990871740217737915208399233485112666313498337007509310911489671373423067137782108884349377412215029324132349207879287849877155276362164609774934935226937876171247480312229719169444687380154261989727559228811525836871167888647085843959533167375536866242005388794268610287049670402668946181585324681319607200199903141505975368708601123865415291564623085040256483421423082093536684682496926579973752003895691675743678148428667256722451362387681804131944691746017837277054790985408791205257848323051752841279214822255829819705251687644124028496349524907987209525000962630453942168093354778532374623423056084517814394466038136403662819435675748207184036105678396710449072014311964061512550076975819526632259750108486144757268242447200595496463305308655035226228853757091398882181443723994908474429110451886444867329410698508527557848172885922498123310764974873212805360018404878618616589205673656314287072507860239466808512487862788846260931503433623670005064158164547721134428909372509382125916259922619369887615762010598452424375899078957922286890822171999800310875668742936191331580298132923487383909051200489127001935406809660788915650213078580646709359297328854648920094374439693982618614190922199225708026110909962329854248863653958229554689476789902432968747871435908253009054300042920971602970714470140582621544051929675110159815646097054647151546463136025821941084386194425510301041245265671129150745430073677823144909420488920200789289653211174354207009020754046097549548396912512299091208878785632040014356959705739917018821724368130494144644100386689439117128976711610832492853014696712576701777140224830038137149580882855587768283782431106434350235014417942382825949783401654724550978089919004720105041908214157892516744425953387742528527551938245969638102992588482664301031913183843523745255874008159471047590684944827798364214188277415100482993651776315545627904888538550663871103383089402107729752192275473734980154650174850214937453203800630541842055065784084359198104229333016486020673770737837068390982678567264409030845486144956103730273565691590948766434327694188775089366129005708410937432104175452892893552946241454904579401086160302803127537310424028545822053430332722532313548414156462992164451226356780110636112298748343616208990390284012900129788000040279491990950786419746754120470372142039576686737985338660026485058968158455113541896758362317580754542552508251868568550232402438947618816892533221814340077125092190438718075879296767545493803630903434216255756882515144905188274556652577142618666728695718229610463983907988035534982261063546238588426620461106916058452999691533503471771460613758331521240416302855051993234370068768671061088354575218218165155300993594806520024423509574812996858606613538728265699321929998275385922334505150755936054333508693230879401172700332090062755401468036205883637930359393858564012745494803015046815834021066592323709821799259478984784202693855417400901838833441388463515604054227520687357376074318539245795276064161522328329663021093279598554262474591847415361252338634805880009117446821234577538198935015485531415892896924324758865891461115194802023909127738961238004108291790032604820568487115823827658671596181770201234620689016756256393546570359753825938961991678958494109676231115998416908889905105195253248502298674692313604534882915048759042037217026455806332444296109570786641093338347107664776386420370579276386698026703858068609113373260983949504825651645720239181129112137019189395283177411356170354229765895859818186741911025446170602159466551367543662880760792377587608284959800441937778001320874370121011642248636412323998585819456448084354362803758286713963760303002725095255922806052223131963265105755278520905845692840017712557132030807929042378711321298168988331068682160472509903308700130217496842024672326512355389502542481764082157372779406124637772517436443607384139566788520861517098910366434084968099443245760605423203776130747844361366617806635246630154006521340507470978754322716699284024857564966176984633760625562230861905498870519086399023902991629416681725987617248841293131015770041854863091794004351534248063660537731435444001227621545974268173775219556376815066115780843033114428764978472926338636732934291835550094737631546391465220774761404425737200592367736669646849959089476680730605805156814637972866218854695406217054363563219221172802099319557592225251218022050829527110290448433483525125903200488523647257186883530339689430381757425313430526181163877158201007172993142994114662810196558317999554067602783945599572153066699432722048289807461335869210839475236747905876277709930155883151862726743242553948901250135973395652444485087905678204722175353341735498485788740376195975998329590874037669600756720011850485661406784638361108240007576272344668713339363044765996109658774414256246889534642327651255786738225227325792580763381724842582351494878657354345610901594348410861793537622291964005235924585359899767039657080743783211736336861633057731512345874327573008089241002397953406612489473887418801564722341530908781733495771431899386589774659501893533210918315018367782741217264180046178582891129713051681718902664726687833082517209118477636441707121856626674042135294572300327388013936485014222465676871682743770052503321211096941585961674870475347225523239552032250295644390780997285352209087205243308070900333130899043848293310327205379666368178438621280837886949220526728592874067819305889268602202826722044565115081268994217129025728630839782123803400699390262466298068625096497483540664194022964398316238385860973045248864238920907753152030725640496773533340724658567331082700437041339212639050055699271848262857266161196252736374656276946209802586048274274026568300061678670213400044336318685631480658931841560917466422706711386294201551717095066909096700596684436564999598257895697343264452735138041326736352014319223043696284610489302785550548375313331980753011819412363221370387091939342618014922618003202492318358593666575206724252102898554728458663989314572308229746097406361751880699054331965793249081969000885620816592827758909271438769107914000900545367303084667058675632262490408649504241712681634136389787613772021649249338411056942308771630736009586959732007283313891194695662676971204028747094312727106151724922161359867041371247837659262219824878274135416031054449321120631199852339635234102706611352870596050467930244141449338938666778652665159766816496188786666386509974702236531268564894444601311764016373879527132408037680543546726539010912605219564940608802182571438059264961977595427309163384565002019388097945391372171236408336569573335249683525230868949033500668667176163136594338695838524209644295678930629916123446385884124148168633925058012545985655603329200093659038152534003478346427807937869298250167194309127654982054783738151964228771184118190676754727419652348182406204211540287844725578226910401351101339981768724308061693955762219056180958530389387565286459956356622445476698268148451683410400350972221330049000474303925272628817892032623135987299494761030911464754922850218390277735445292930802469107172126635917483768104201909533983204803330423310137728669475465679384082601241698569802308663780531739171867102960126522924849816029435278282619426276307465246953745158102970557822533033283107564226729630196035367176181131337933581801157841925186995188030000746892745781969559116131312782885041033296890801924548614619159224049314444264735506768485958123127237476257412458184189182268877983208452387554979280071187123991331152099077401309417300492461997859158378585689030330927766894495637706223311016041372874344938195772049835754727358430231735278134076024456533139030420476676640138057955431982015442818359096166965364388741030271440793202732574555586924537240000197635062411914962568908547141737926908479845057805462950633636072247742133510301171252069881975594794148176975030099869417850207315590329075926410355581742649317442262754024432390893533009741714717167201453934439837103454722486121426914719034063810508035650234824708767122715273456911013757345401354651739040100194924747481486940057402031215696589120998168933972440285654953090428941704835709251507971585027201036064462226977454299512331542993911735524038963178680069939090861138430176731090357433652662621392283320126368281959320375145464438647048407247221998499201657193941243156765463771476846054812941724674008437246669240639933316484344196086762822205073683448676854899933223640052060118405256605296206047684402568910699960452150155033855653276897768243646817190146754229599961912483312861942925605746320269022185821113646393879609321012016865113304315425139940408632721522088892142728781218807499454441881530836185041930028511298578290804252129845381352222200125926848724172861870440937844301305639890029316995060291274779355745878005142358309430745142912751540212305685672596427593175653850755559409408157968536945573599805586281612249819945381765959849442757963454845726084418170788790613696122735064971625704455398780398616759483616069526686809344333015875011784357171479366542608089540260993232160044486710173965594549484427628382304533399616311580221720079245377299823838276881989693721057976517359838933886440457699811869986637608585812315904739713498664569717533294112652563901535363519398885706763895124913183166550605076394245374902689824128996042717303795655772933356790772535368947099602967044773963838869973465609512817208097517398939116510257032495117417820009689812340911287702734027325044136281165099133595101434585156573995095967371058880066887692957999937650593149717378776884055718955181131632060974921109970101630107760888810171407144094829171513746978442541670094760374495892798692956986617960623572429180412217648062780251491657560146427683800476716571830867142236886464293567135710755988403584587432333691332482381429456633599417995663178770768057152521459944691425476460195887168683282478735512393326496155908148013747186033595755417889750514676921302089196910825313775877177499580541017349651646798294355408909664689032709372414729446393433725205775663453733703712282548433047406726443041295035517692519489747142809932118916625073671821255017320539008848157495477771021277820655029481940129369744807633653850921901265400521259493356446604642254798852343224356233876048348215413708591648638111749876828193279260245762410142353558272846295062640623672554612450544079238560756993416460479835708449092407174744574932719162644142837790782531642295165408098212814919857728218023106623745536252693085094654465375002411214475785448872037574239127894928299801309012494638662368616282072689884158602445128350369600128082561291858764699596010432564595093303768434734269697173710659695206636908961867348279192343377587342163721127974143072313076422750296454251713022098817982120957679987019209378355662769386972549048839250183065273890976538539787978349347618151622868739478278370529422358238610301058447672574429695156294627829210007512544977885337338967682763647338682019981474392258200118580943198161471975175988207608489787598558413222449816266736318156297053324930704510152175065272763441191672076752958699998651983662110626647008141315820608455672322156500241993749094186073733807647202475998507571896676571382461046575444541702572937378150326401707387007838839615317997412984994775479141437097574157386019763504711561229722013340112230884498463564750221352446139710743571254595053807378365831434094602440038757956077956030400968680912438534000537354823434769150873489038170551311419394741287300646804311371991277492479878935823160016488374236955716587537097786203094474214296618243042404535540600817996641810782574706284112438580005282773038477681784140365374031691412150526358909345896573805522402026758575208674248827793217455269569835758582194897717209476658600490516383656450664295929015136920702836242498269506544033472411704668767189604438076130348087728398579622471790249099184683157018026257305117542921833299757258798263243423088071786124172730709436684499028814180193031819772166673061237632875919565002442433060108427108328170996953697517328837330778210608739138878909996654996364255021405067157785284604600632086678971391087461352185736768266129265599482546990386360268892973361409597153215575429606671378419633391412667125210878597261108545481008393114899567248641980062108753456788979427732509996663525065589759574836696542076475076318423868000822564300458215937186794773101284066961919359451713848569555968873703354247300373871189718974221342467546834089760313314874890268845094366887285216597370497499055968390910857601089307825293776386316196110737594692529652441470757098427416784910491634655421727419811459902185844517564730697411170717280836478250535973729048751504600947241245628208435677261497061545024107301275742194196930641597499470436672320382033610936816365950433422720832523672314945729538668603815715732286105391713097500128259978248892759112477533443214605942172004680625176622085363354599598568016831009721349705389380588943209389920477317072080521922057270309762937004378600870549835237899480281665041953468381580765043738296248844742517810916396321144957290326579564460352625479072382767993915422259863972752029349412838887086371434953258199129143786287267543885578634501362330834702749879029814525994590572670738078681463696442395187304150206531421998264460656235718803431143587225151969180280232480006741840064722664360523387111033943504397127395679557875618166105084447445783799103939129077319606385443160609667527541596914390788233849847562645875008284340205868571332723384983845823798008969564584996193710890991648935379612022758925344328824412160803026224596049424487594732109210042701809684952966090306002773417312219379464491488201188190902565111424374516983116066763188360615146049261176093215195474329339481142271103056372444435761149991954229639605389027259099626307386708006014248959119624775653700247675281481793374794103102010487377969044663965056352243898896342566970803168918657913290567955617170528392473437146938576538449035748327688401074255265232876331489826564601873448705263800849808424530507382430462875560406687949901572086715744526760962961471088266863487125619390257271476763633408348266515917748836037800490036950789639038923588371618707368893956145720312729316336563820452116953854080176450973390052929008799940132806328975616274484955438132775544690495716097931129183830529840724269126939646521393905091119388186487356802096285418519348291294516630328969681585689008315453725916945207506494878153109172694586684453865129546163294139973019405200792140766634351499430544271303936124839644790279913024957739784615728817796061061897386413514826882968301374816336293861015305488400767684638529498371924490583411260192446923727743154277866893185152579744692810515764890988297948992059933776880355373367311151254351329573785307870345314540929233391684062347837242087239643181867490241374302168268173073857812728170049749231639361236677543713523948807053418103856160843158380694004667026504833096147587481822328692345628365357583069829889371629712887966137088434514422445868954409813015963634148347278755092580463833508970926277784193599867967943283692779765466689021135253444857678470688636276381891869517546130445817894362935375089268243487056562192712153061128664335599769781168452693380982689167817443274680257966950174105064168475746076281239231926454256450992302099880772726083567206653791083006246580715939243999903023390582174082487170678529364272035857529605730324046248146391505875622841019506879552096338679303989845106290576647908413248920053335838538775869770238855202107191577972927605341973211626144344649418647574033331884848786005098688574852821776448531058155800045344618270313194818707121353806420974647087582193844458715732988768221806768130357170425065818063685872146760641965833943290696060056204011706955695152647295427060097525431514980795182895154737097023289580106447542093412042236881469882209581149211512006018480201386501118853845456461910715155934784522046724472827009548934575826534263828388016517776816210579168998076990516060029164274945241474443930161295277753444152191209043608352733143730553396246357563533719504811599612471306677596985857423979217698927805418008249974153846149813484908752556241797297103098569233679270788442753982298290929890220395251379817769453216858836234496889782980178846368078272678499613560268274444279028804272652800009358696203968760658840033159701011010145572530042920560512722538587504273975108163741653615934517442039294134972281497449606628771146728744225783747768536558378256705499851144350814701090313645029601547327099603717143636649352080983827336982044563592110353584884562484195423540638821527096518698203591657663697572902966330537992990313798512612448656966216612821692369914186249854010368932659647322044407343063468367220834104677119689084790030260675307757416568662770535276123467064256280154577693229156639846850202347029756517156707520814026055491081646860125115466407668100871287069096475396071330879007496848941107930653631653207609849533958330677227673944420937052718422050585088651064990035291931427332418077800748445200368504459115587768760845519178797504998116025978273751373639930497034999302031062810353961301343181283344081692566015829580004346292522972295835268338767887933791952274986562583524333030574077085008424134953806868212005126664774763221217214185003897576660459203361858217499423840355697177769141501613584548179515476141618035075193083710111290609178410959360358512879441984132618234911464396850876670872520907383473915782482068565632593947862996431889220728770201598232891349827643107819628851072825980749171055900518502569133140576494256207522289626885925226727960099120253545692012753023564722354217733884633481153878872414573086750391594995558378255150136257443079006923074469688459614547326558029086816396173958432724911199362548534793672310282342482330948697284218368922293093527675376487019740521110407016947329051203526381683586826504731146053896729648945404670510950098697694268060622515837793962256667900142278331870466352027139987402970485407810260354601521756934115882271691022946788801308248624563295241761191966165190407082651616660995163150886701268696735072262771756657779231949015286805814207236905668985367612722710853363116380927031390566426331780284549195465433815497740674085133978785251855699081868910453579843217656499108437114893999393947803653116275742718907533048815867578640769415908920165210623724667312740402972204721236317734323546352425041262418211535195316204966665171489744233234447241397958348042739824197833310750025867831190449031416512166598245179270480277220178814902564537065371980906413938713382173707848160288551684472782604186099564680174807736140195385315674206797224857343912743556525070664586354564092873888347108704072788053766374743466827249574865040254572717538805527229941842630191102955497943233913038494694140157950455590363132067909298682222135692484402242661755169076272153067662445196930777709088089011312771712641089150885587596004870431705571007375567350965904361637855583667436733344459490037116987660770114292080173666468567751671063478166110378717406188857751315870274220834711363383082126745941272075568899337125382096990168739263257265557465565508559373671399910745652413239707171098746862088176584505661021371204739215201868799887203461847966428623261869206121718011290316711867240341241192049676044083272743104279547570209244243028951775763441362926477633686388876039267706908532434171070953657742394754962869509720211631088805813003813070952833809168507333685549271531858847899339146922106588265050969177475351689219065390272046851795794639953272768031163602999835534486072427896508886521675535747836854778668145578601618931891479674898048433014685835998714832907072863367253828303925254002515440987057907007838165630188429876193518494699204298948010512111893198024720501171780191508923356979940650010205173872646513171720939809799186816406165726530619863136787690871885759731321940398226267112199378461905808041159209679955773465705261290244940932662617129742082194826536076268926750977900912747345057974066884234589232924935359599859544629827852380077546845347655428806680311467540242804117543497599220022245703367420755369763982712029612932042400540719451620388730017467451745293064682506277598478726437340593781761066786877534271524560386230193239824048167732509249695357784195245973718685912270973650406288198628068225673238261160533720775372403700414294677850490808229407199717471608500027279405853611096271999691022652942325545692881156155468038194418317568285239132684478499243332327114261314700148973011426477101668304882358020458649353025079552623625569855528207093347832905802800452619037751430748183575735647111019081680041835297265877806784848445152614815183661298975590389571182420590197414765831905023655701099173501654803093741604128855980734428190851510184976897465690757501762797872643848273720058494825044315425904361029643875444389234246052032486274502281655771461264885519383420305543924150265895224598322510968007460612920994326116134120668343000039724123188648218008820710885645566576913621053493405746852391300471707410059800092286537223699836439027737806317233341094928509371310957721663180787789244248257439538937935762495009916001294765014865000193593765293015003311637204671974446607427684219833006911456137814481064933589254848099826203308310721516901441378549143925802645996942999516640223979381213650636517235955139766998509690862242365285743521574948809142395684547611499271280799876112942731508466016103008979839778202936788514517259822663616752144886891334749505855513518015041782579931302621239692700906365938005355510141600576408031685765548976371432758119163932582146265439898120924077097946463031540732973488049137584112580075185542169603484021945810216459944957575800026045461771197244900564932904426664950852000265842993156547930502440166531668451427468233145053107399945111260586302140400342984600848244070898571797907203981808023531364454458904878810391854810189614648079730043997525786532433092818254321419348155031151610526626632267393858482938136083637336641149055853908038935097010454633811876828683974317556363302160306080531912579660671446011148319551628433123938784161415277415936565828573531849302444125340975877441901084513577608467383476376522866733148839993576109729600170164216754449965260398115330460849397569996468500984697967173678401365626144197335230275198193107462895936111422024357939618818636164100598587359639297581875571511845173704418853992914540159676652151734855976778611112387367490159680958283668406765987891132562810801035166755217545014300970085400023065339620638018158621140672716724070788137719166797020311104163917404904601991779554380963011016811228807092227317609031967350854736241948488488586308027657486725157628252534586884466674972964914354644545644672543125773145911257884998713836961403757617695565498308886300408582355534605025075513585782218596404119800843808189738737484580340804838802450942574175941187765510879739644674859320535119291554893350876231313056593242554741660187499651718053230532284263671290957935949900103103024788337594690080164467291721452903612319655780010714486134184386232818246960085027351056464342639008040470940113532558043420414359628520237415815856877143430091756460668458081021282407073281261627695601843933157497595378445361733459302168057597487989814248014849805270964842441682440401940713737992468473523742068806144414097184713176046987087404340352574501648776370785874917547882244455432823629414553322065977585777215249244078825731812828286299404837181632306671968483899733789961204250745227413237309781537413848814765398682083300068747586820703638534656886337406098980740381861576126215445425878059337761100193666287211506018248225240371158406222437286519060797883669422410274597316401616732867850565469042773205878017561592043349746003515906981407332381331826319562837176373492584945503552632588528856099282082348521578612204683735904268174830412514641646395578503742020979068101776852723305112008275696576418829600345204235336638006885321333055399139818238990227099352084907582351873410683754901739677803929796863597368434039256326918441303651148084810943030102304333607280969839322240225806231202292894876455777281044797566516282213917722178966043682092787288460082623287392566864685671146993202923167903443709790421698068745986839311585590508916248601442374640415557204768016110164954080861825692203300189103671780852737592323868595260572819290907044747648076060164957105910402623663768734320993982103424823711193752876116552743407855486334999802697793589085776103971384842598080446568266276914334933929611828737389555835383980265917052552726765998598420927924044054231524955591662480394490567781101752050942428675613308003944451066216920177730050565495661495299838805455082227699333196374044956769441235471367097313445543034713298586378334891947365556140179506008551307447943799029644170664209721957060095999844220074024009830256855808654247316992301704361690077529271601682913596073335758210899067066913182572153855566891025968967349888570354016205889068025267360513926504450028974088314711918634499494191986033233962412189681956327839879084469610474171638972841660640292664330894245003151801355012374071373956912526061337256083351543564706575412418045282768314412474076273756073308848961134214564656554040536173253652737657435857641647317942537683450929438319726993012245113417454589260644399378652883971947983652933903510317933481215928279168964882748693857220473210557710248705992227291113637914227437631026498555681292085389802871658370647010135165665247255843275119613204260991243671819488318170163376875407636647149560751714377877828346912321290866700386847931020271390392838236571441638034826870339204086933458841831933353675319569671005887911897794007866934566921523623007524992500618298697750182768972659805629162239092791546948760459993798100892475162857091598939199018461329731279155195171405780218177875535787086729060311499103101629712684590043358788200237575575623571901891654127389799416013919051874583649095109511980182854930156137576638481201630213496403987120646298198879354919557454517594181557571830156278944393365757398757160607417426142461455821252645690863673352660432677197947911127707975333198700599857542479844446729904654361546326444623099453604465928346823129597906462812035962752995491521560678486195705870158367903849953638726606986004111328517363904543244561261784430645497030491383471930183466141603237518423640306964435907212362085685014408448165357206498696228386728211885785796524436259027383690480638703383500870217404746688113050112000509046247021575644174472414254788393551695811101140813996566286238525204397541551794392145732673122236186563521007175256584209035055966103143875909581974704030433353325375742978942013223110243879462315145185165775265241478960246025226976981734565315444655296624957515667196423179264743677599631874653391878037864460158628360202841531891674913598597297247291553868316291580520801413076681802279338320622466074172985993101976628450961778626465644401130887180196905428516334197133823275838004989731991556790880044847051854744900693279785723268115170040310074978393349615206633959430029601511703308068651220983569172804352513877694821303297205174103188408415881767586312962987491221141524894175271180243970505392293408268083844630410663666936056838851731281386788571557865532050295118532656876493848669230421893033683757126307844239765213722034859140333498440068640716768627197892624514283926853498699588522723027492220056234796634243476287677291903082624899166706342136726118872406510965408456929633124291954546179445113517367499816799094147149976829378106964912889767487271750511040144088525003606851984706689801520388516021877963901655207442525769828268710630321994950921548385942668788586992921416061900140570215626248332011428429936891951066361522832581878803057181695025637701642193606473790346935536837053449869527834595751429210435250183247623388918358973505855196820253183030082630853492143862960136342174220797089502832605380633623949004544589150305976136618444408552138778231587667622640166949254791863365636535059776789597419615226506387784800732685980937087470515161969573783556417179523027634954902937197931590923137772728570175566873315827082635001083743578332077054899772204779767903078529386127852316096460157802396787948901034684595274752264786430874579599185640138816805063889084359597448992633065826919175725311455662386236476260764074420088645043475716703788083233967402558254817992661053327054690092582125923886535208980104557659561232957121557315991494874948730217198369544242124434529922501472686775866955393927489226269151123822421348453844952332246420839471756606061316450744521404739592814473839516535550270554785369342315088049730080701264223049929340452746808787912551992907496255639381366856441190176626791371011933524709497198223150333322584154030148136403858506532629894243538817591037127825312771983046348399961744885233548695346167099633575184634192377678842878915412862005059644744954571820235304148123773087383479707133378183446095817960745711826582977150718595920520551022365004671582069835865854515454586415697650301119305721020104187352882416254549229031399960151021154306515842633428671164692755256328325650156330356859079035676672108291584696969648593651278385002154908412334608480997918584291989995346156797657386594897731979562040928797267558715383632434984142802078725877228053727670835925923171592248697048205864736006526298247633580257884557362060286511136207995617351617111015031380032837829741624183066692583065406146180016783865431188970201825724549590349912720977331642979113217489567585157143893398016499129652332800666320677685123931098059396727866816111624767344134161008805971046041218751856017385988480479632641841247813934624616625434028889054116088479628072704274173966481664405818639391829524186881422118357069890283220529795284734357468037744200935998310631559241670569621059874329352934432829773930990426409309931485231338422504121575262442509904557893198783900599650503287435394319868605936159173581936625085849901932914551639771157066422175334970849018310290132787562470307746088250240432213156052449948392468734431304333255773771647822247450218729833177420509791380518271287403281362737216147201901586908566720565826971368431808934089375319104877483245896295648716658786388516288899086437731701021733918493882818917487458801969096645467878012704874073890931473871327464405315786482972847167311684448446535645795345462345731824796442738162790721203257718899299687977318696611318683975603852151076861039112720273279095458135188208733487939445562745440154377784989829481822545018578183546949767537511572582616158330951325282915606386827471789016646754134071368045493389639106474253299952291611941350751874610798821119329033718584646653386376896441785155969741186400000500058444584833948075399019981222234327705177974401242454180873893434494061321036501067539404650412530027960263377239813740158452166148631234493848314210991669977472338502001476881738648504060556382976751483207527816346976055848900562735343334860235291833681633721172341764063298948558786048698777370950786395378754259447483831984784162455114398619409891291754703406946106726105680270978587429557721558917813363951852700871981834639347408291681473381467679255788782384863363633915189153915542744119972749423590276354275614967053391009123934293354726266450726517631923016487282232093991651834580573098377461526409183902608345072264609129503154630409453739925211370592432078158268056970783862678355891389012248844166202950093885687265706462645661096022823240148491251618837717251566756907561928745855526995546968780773730361842865113493046852015633256488496128599379756584490006881420384513339310885565291425055934780289529456362774926414481842160158318332812374510531480213666410956678356821488892659683337676462015225428522288543309045120106349361049286046855560954889801175028692946480673970597316391914788028983311554348909934309768172833984768498795448184625991933640584551609136148129856534137479754850258694207605415838944571009015305194528108604686545664809771139733177217608850009800244354168740758623419211600999410941874991310701474343011665292547554330444852870287584671206910278556789490748319012331318562577549004920701867706294724868898469695278922509541716223043947336306059051241403525241049357259534864577636955000312424927071086754412923991225630348472028220640078433321896358904280118506951074404778891340694710244149352396907161120834244222464068880102963703078291260871169831504816622714238875667646548285222525608974775450728771593264630959394676582060933656679240663438408243876062478576778243891641608155602374634101459996579322727620358440304236569842100266352534201458254537504372570221083187908647723092901108555021407754387300793220010136750737421243801178196275391059907359202027668039108308651827719359935522950555842496597762549781759899671287624654131661198393281827641507853789216838901325110342972405688809449592703431956032814927100644821819000460887253621044291806848261106976667915824094780383718796208058920269584214979751087678473045814585030315752913328838711079361337058743273607763053942306449872341063846548545765674137829475778351983845885819425241512335307714551005956453732508477356519027196886859495805233316181267661310733356962094502559331090711326850442189007172799242092102616979127921830243958799279114217666565433956570836030096963668991312820737997725037643704327167160213134238072543508752452825790573805322799553177324332283344182785592332805348535655662690342695495717725533239179970378713576333818095436148384739092292941370974186936158999428412160394198461818922775714778133837701619981455224352205154061934034006245555044963561794962008308271657043114445949217497737532340984161456727336090873020747023791836497747807063719117740550760740614351528848800378637664624930312937729343872294423768964478879819685717841283049599144568755766606304005966584378429307992621898628891729386466577104852961587486273243994933833343382292420045862635266603403985471974520305840686614442207892975769715576177696685997909853076839152464423718761890781343778097194056094133452989343465792014792248974086304600006908099007768240289757013182765583802354654466610568074705856872969101531561622179231055117519115542707029044479892275727221740937307519308382129096588903390624215527166961581543640948288816552659327129414648465139451171148745616121111934740380014960720065222832472116167514231269024317374777013544747916915629593783645689908457904733483741288065469639394169485248744846902880054510744714696150679454497165206598072828712266856082128760512369857516440325144454466292854991490036164833391892817278129964076296025704327596647997871897457884436761737042656455366416771619733217436779041193718362825728833350043861158547021643287007329283386054626454430068632609835453374459284818684419670143468898059456184152606841567521525617015905178782527674418298140617056965831134632233544040764095021634151957124159732843927291717137984921296402446353654293487544509641518717670525242777187190907445396559451946719487779453971588946173166469401924254045189545971058206923629142864980780536918256509195449708514654469372034693462536562601647959941704178827954120415123027684287960245986827258042100660757172605957691149357948893696045500699911787668734200206883807760332795897115750193696687826854374973378155461586127264836966406052561626677783228908440577988983176591120946683928289758600878458067178972773830621917048194742876506064298270352991162463390461647069803169951656600130853796105424603214510646400625099158498587341809392855295685422891933129321973113908359675009616136122906582042243779006047332847306805348248427479901813858943365672442831084021573733429656985207664504973550453433023401378376022914211230458931787652732159526379600053041872641746872877611012371036694455803316077434807651095094552672079229237485302194604391354910156998378173940112775457046172404178502831090419309015837329374915484480719643385418278920524777184721702079846500689893749931912250899215953140551722149524199951446343496108817233540544283738694930380139936525470893178877308002085081122138198613027803825062225688515870759057271150898974276506674609590133628962398195533337655056870347051324661863077912304053277805927756371205301642926729793111055766338731294909854282753458192338344555010178555963859329037189645009853251642900583949728198696811048226958126584566617547106893646007507280432906022831119083866960816971813433289055486100417419269320803458369512572461409075225833093855766419232516775358622298074595675632543699556130086050728231893547666121269065368533945786053572594039602468119270517272517331336897454634723174824123863464235700092170527565203232001779054522338358582089803222694164467873339279995595135126700894257285196444460242865498142818316390665060044975976852275009148337833293791964118658707881763923396512249352390694117909135334910824812368187509566041587613005640849126421007245339532062539500698328961858326034872417317993584381178693818891365924953162152412256972078921962149996268271037566822758349720851392458474554069071557828591960766411808036091135052062815179758167956082163866344482716537242872787058664008414735830109599486893400180571326293721788624088661542768296109588496651015366103838945115148592945102203159729894650497484530070397532550987351966444369434786085781057686586020978195070784803083498659404897008312559100215132462059001072119445219612685317011271729298767105388971060152873224702748165096602164406333288271945882685888411657396969305029522326132303152203009792411000136118959817101313297533243394495073096958413607669186158511722512372014249322717880530753283673072081204878934335943952511365215582162588775916039077497892702797996458188683362740060763856873673981127763575495796517674459795099157554688572032309917031708737535536518097273301184665262278976408407229497976289002771091476321482208254283758634282860375779825576112445783265750571587417609487601264663359088798872183788627239252687594647607769847348699157162219832746891249127070232358241059467271545403664997208244835969890913682826626098860628424624041485243271821511338393779406162244209135203284666999056702499791268252682645510630419455279295242486676020359591489998823292032564480603983544696543704377380434068861666755491627029565815002912203545166556920052470044860181931519419279657857983957390979372041375606498693904981369125385241714207621218108119748575786189121337623559878912992704019149398970928044947045734018536442543111163454846017198376369443422320000282737133458595227605980457537480651674864510145739971446616954048927460133594423969020391401811765469540380023733040172493962607619257958379895136684868283870006862573062764104972295209997521684451946994538496878936216411095478929432816683434214984665751744435672128162759954418556194103396245942943703407680270136500151708696722450647073930703014177189909896704525113596189174245750817731120515323972936449878371583284880414976565603053971219891976768372705399168390923111109729305223747570229959012203458140629592142617462215021287240510365256666469234113397659476731974146104436890463982473714002898456172229468704384555982239570792446174341741053512322001061865918084559128427847263813605002826401115125780051946240300092459779609717401916240253944363029623254533341971639427975585027224992416012730527477158838693242724582531714054982427432467145162555206864396114022024605640165936885196846612936919344542105189374539592013979667586032047320403128748370369096494693347063799664740271860062906199429417473552873428554753621938382846888067839943823650009872866521936711087343675992220121549444596093950220999778666953075609955833311868495823739945752000408866756006473627769461456187401402791343292544270019593839588112886755554146597693185818000528869035358867490526580512672762221672836780891351847409854351859781372180772636986859565151186966159936223772553085328602676182021811551572197140594219386796919311413563431241824705380441412258661346041670798700196126958570868955717554141507008948541288775855094670741435974150161942807248660872696404112756742962547818662654604423057201658177942453700596608175839719972247282130280008754664250225740808545663881183158797646768476667574255541067421023477899144115266434892786201696419691357499520030301598125632867691663105421313873466354920861279425076521154076296515942382605050012971772328029050671288636570479513065019930696610697768453924095124772395485296268885885835622926394806903823749639061906337508671542593043305292895787176114491864253814364225789056015490795023260131667783417670780090696572382398022511940498590474239958673643955573697421376206493822395164223483767618329921809626687480397092065796868472577210945752765101486478353924281838622832148994513318677373777222090630396521621328815912726557881527894964761487622589801488004536192647103227646736281347557842524569170264816129166406170751416534364539455142978498805572013537980983041069478546662035576068811884431494754208725841073148445585583191678205187089579531884092541802154697778124106910071547952160127480860119548293163114970096855611645790151669305023238558018182455906759386952910751411491477878027687609269473143799471754959945354741714570787846983013645196409285531353567694869570781645874059565864340655839490520576314433582418636523160090374863715591310165506890926232652241101392632214059590346870522275033061049456147078543838331913637212231714421735059238389069335657777222518456280800433863296254689521304881956971384658226691229316801017961711690619536560104991684612702269078935404139267093755215011371091830485577808560351545142181852153498015284262101840844910153948165808226774970787925342088945603532066818069142556204538484064773864689851624483010929953452231361737728433353777621443626628945912806189761908777570012377181889930848432258254849698615762504559815031377571813908044127770741096994312568361445007704420756000560069209660576804978376935263468436301745364640269375952867734786498332000777673260369421389659792028221170909753367137719774114465926465536631507363025391747736387945408861726936723504473791641476581312011770414119012113130245958073304465247430566733284936397959816754683293981197135115579169489180845001946152819807552134171735594003197699933325419734324828809619728871009676172613183476871576357697803614114087644762251853835182802911736145036404543500073925092139411851099938719212400711796508498751323796816789879042185514240232719489426181330909807436688276095771126911673873155847450167582437821154843677913917606692670643621645044970369262396364141093540007241001566187515818993470579439434466169773230786067640690211441227032440295725840687516436687162532938596108443767731041214776546406192068404263347056365619520558782721983705926214227307510555739245074725311796202868683258907641373417513411631812592700784782400738258556279172171529071930057792175898412913136032325535009337771376203353242926584140649619198474610859619231030914739333566012095873874869851220711230192735969778908767308632467237421351441244361396517770483820395041073395962250109511877639892999181645954900564933505186883496830998960841908715980335885285353474491131197258403571354581050708722032828970115250329142330052062820571245608003710646478948598119603082883062657690699607607100139893776769184085058769522212299655243295067043644098126055631862188615258945473642048926906230853956439589946217099143590760283367304367635128766094148168882916091632407285802179109622580511273720420516939283215511955189426716632256296427647223896891848991022086901841654380527746194519303961440701830268269322889680073456906095315702876095947396208255812077342031849230418828844175361097032535388390241549165714702899011155571398347461095537101586250262021473014008819772943030944468185965616186909959523965647307452011491020400261378282982705177969783468250672625482673057072268483434486045103751574885748534595116079435130300721850966491936736393806734218882024802741255999951045204167767863629259904139431209271982776786411312928033405058918710444688678258541141699923659472981833547258402377193476878949950630728793403123771877209142287707061663660130642133941588225333731237708732707325619645978017228385759419294145763518558623021554721985386081563225999833504131031347408695261046669768117351940389827066203505419501842411771022941920653478171325096879505213837054588510287830737653825092926174423298462620229334542274800773116620750946904043691933167433366421802925622384866153759991494608115889340011802592553385755958731992942788895839766821842412562213480717071546840390505818511899429215335339421225636060917795233706841061598780603678761069002169362361311719435456510180295091902809808060687531499743607466526100495626518231836237448111683270624819975868647568025500778400494450722629628017529008021537285814794193241144947467680611947739969883102089286672441415879413636541750720851205550115115699897064975163200891009630484739636596639599318072260062275131465667989670233399302414947840232717963692938117007558555899428217029569832252418852221972481045358729770746540512873246024363367163131291859031297986629708573041053911233839960598913037680939552806109312360142121223164478067139546272041432461107116929452969013442520481400028011170160926108838151099581530373499582066537403217039397939381635692927272589062037836337014633698382543157994271839262924595872190835036114977492883534888800069089254151176222477743853322990826228008267737334645128383934394527805151168631443204581018486334791482888825798048868274595743756107391320315141240616062203610014127788155076937065121140072220178964876696777605847165956963629689552617898978758834070737486194607992323514521174082336405095110552582292731795163134410883194595216463904244206099669682385849804128127969600606064619562726065710473099182119332425644543793462472396187049717475332277062828828479895898931121397601026396822253715657487960890157840611424596607445860380880001481564974873722281547947022789140633810013588623788456846250286906356721469449335984460581786397589597841540263107045768757274379697546148772378495954993094989975848184647172040225891260326036223375632963013774063906351676080170397239286299404841924875045956110689136449421246845667227097176345067129611251520692618052005089092364845986120392826150679739967971607570965329006737687875363496905707231364477913829729999669712037180496893558604671491664427063158166498086598467920443743121993308438332884511856483365291783594323025321128653899007564741743543033373704572345093034101332299475170678797309650094047091411753031866656775415150788853147758646062570996357644894108662781767298060147998712919496614087775014759638686119137299578781216016371636230768958982243462808782316585821136132125420176505136861233389859585764054735806424965409590645175096303729058549590300342972324867123250030926305334531577035534178624526580845527075033944645845497783139295828942633931459581533029784155108264155604082757058816723223158458299032739610066680108855889556891474579953474505223249021908768511640793731058927799483080944501424904692740180235210808277292277672372123774456196299808950850924789094249378061248194797884883136911945190458745757824738558303095732197211067942889740010251740430589563206004803867034146528840865687604561465517797712989778625607955484573146757507547647733238726567673134938410693829185793774861226689811159136263509114868054629469099024854966438913615025649536933411386042055525506473315309966018256816109551820795892145236226314066864517689063179709712897449763054605007076382737096215430256403850136793372951556870409790926645210782010000411724364147081079677699284952165899034473507114149346847114393723051825929645698678604805521287156594819511320320021706223603634802418782293290055399711546031228085835160396284372255537707755593609948187009314533301848266016339659930019269331681012569386197414354421870041094632980143295032585995102158595392060068093447623401254241066751481511093235656945011713386068250541052206233169685764821998451751358632825205459839518143082017122126765699194859044391520339327496106821608491758284511350542304872389981132367828311183854074190206187288414887046403732018652037311573885566997756106180585530005569228811244697888535031043592106761921773805392619550898188566813246724683259168236730435797231371963975231305618347764797494475920333336843822601990527270267772124184285667718518865717673113949018732172755464134127415993890890256026041946563572130234547135238577576416703408766327043907212292370427384828366592430480961309957328232235528511293382555320953349557086577745035147004313598084969122650173086622770612574316815863827193488223339889075747742352840469002747355123220935757538675978513977690699954682171892499177817639818454815284077527320141138306995353713566821537991192934371617667882992176302332016212354658177831981249241510707210712731861263892828196449422969014906639081910747806795253863328483755206254458578936749012825398313710948166661393928611480514815874598289432200737186787281009831557799825816234535354506839388380585652501100753485530462608503850361677636891580608106173049716768691994219786214454337527000971297947215192334988769668059392515940324306684643071253621940972988399846723490932614837529626874276524048328466056839993771496771945050814698606564113410787617518393847715492161780370730963305575033812468283633259290145621988981677638449546253817478293371892356939668506507104215078620443312881727835608433733999138035658539159926586844616742345615703500404062253712272901036439841249492102765691804272066947057136649362615636959908302266008524443753015811974539244152711841294090817430367913266127532163272166090824862155554517375549210633926665553331435444047958792852384338677524543748335678918778377593894140437740975510068675703492977276547095294370916568961100674671863004735760789149364841649288803277985329250887896141751448633559325138981768007584936825169271513542315031512626999560318058251547652234647628817474760722026510526103951448862272448831212385016509519146859372763219842210195325345063589736488304784423715190405210875153746894465147730170965111349939634444432823233831879561120633611591072806523358900763680682775691868822887930224101535136665551511366559628222644798144374652254688544702306444433565193431101908897822382598956025740873020248723534530508924970264789205311960983224319128066026667466942164965677438013767286335368428002024259108274205926578560332844786164396241582130329954569408512650883954872245063257041420161197176266521349025930174924921656479625023407309579878071113848328689101812423512249957816069772598693959008681495698424055512368367574947428928618302085316002433504174891508767116610217284389157593207259419747361621298888484430174241613976155316648404674770510158230659692729914374458329688737423108823375627111587574760525821735243358716473720868442759148657222921782060069366570271229548956285100359413174512246204100402997904623838700493615577668126366446417327401828508532336031154121696062495183763966182129542158318820482424082634817905534601247904062386092855237784228032130117467170379636553928478689229941927767904305671310305703300191979186938229322875300951379733220796542042739990846094542437163004801589769655099294776760871716050141222295962747701866705883878472332363853859970931988975527591188688858125855175057712790022744758760454624170538923460869128733224387248867600435801776870542632088141406366956615110990790692791376516218206598981463913740552989907905391605860573039047726301521093477817336318586753454517930329678579199046097935943610196385766078496184680076968276394546909133056490312358989835136436957454940066103685180643065597972738862123098321450758975685769077316248227014800218051070338987862862234980782204573844967681339021690909361816544989635827035456272242219719168910355808421013976636745726594428833900391678426707955134147231981493322921002526990136325357396605263508227226448527765102282507235856835605885946550715559349989136839651846683645236202741087934218272461712811842798933479685129632559859868459912936315285376757087489527584657096125384167290537758198186645903305530756317550571693730362871154233944803966960098130570156703596309040525903790119956147479706948060239489890030410745809895810533714826467885015595001466422371194871242599002331546258504843899497453820241361044726619149939857147100493919423782754055199667581774561764725389129433273639195468534542896445613673463338919850492146871777428430257945549362044792628197874347089160832508385384802828631658176444015693008088662149646467399559428175194447370784584514026527881910556282396951366066449575403364951863095940675519123233426818321965782988157565443142182721777265356348250988234248040767341608436209068676993678123082657276131596754332292365063073168705548494187800339903535609925113053941764761076800308013639974551038173690293363685991647488229125638038619220243218891843647812069012460741699398946047575473037962851091736899891484078784226346958952262008645211746552548707672988653016030238307477606336226075497041451073229979275777549450770774956768592050456007099789997708439165193456808646989558430571074629601411802423936384380156649714725161435336929778980228507787702673169688915827693234414595789312833321958909828901258971480127028169029959580503105723767298713864427480419579854519717034599807615140317365235756404300610367565885883196513980320455713353523767598983685124476007634462053405814674693033841780445323038485270500141099031471641741787149883631128391119329033006388043222182850739412546273125873066417683392905664546304589237801575167776527323089479461214619957297059126088861114697637396970184023336671016314495944764444223009457343586434392534662575865603656591165706293690253954529563456004107795208320686337250008167264913587549551194741982770770345790662977310918725585876954094309276752734278196548254345676691964398954437196563246023432111153437106429272308368960741636943699879332500750734375001858135743546422578255336144471922122624410281954575092634681078288230050831229423450256226051888235440245440422615058470846169851568535387672659010463775524382683837239803247604360329798801303935307882444967246327591740850710753255070856342976574134290719618791681892387315057823276684907835438872479006656502998182912409664066949696895596828891888020408040574074776033541831779744468791431371393766550305767988457877059773085318945388399435642867201759858945553983149016983145690353982785704589375121772584771635484635077613198278120387907081568467136519042476914032571544144444945425568243435056768145435041166268186655612547954382619366015948396874077078665631523936973507555745125905824862536315413645190572596450472926652736351094409077689768777599810788749123411953309327886080545488777039880589688119483865145339544483234781821159430121189766090659971575757078980961032907343532149789167154798849046943709227818740337571165416149212187444974365414235331933706854583669169717840740832948332634058543352722904492793837078965161777586866240872016991159346855024766367348632488228485027145236007693896718193227499077092383589031788796467183345605964764602343943491975417097359808186966065815601918135458444780825622942409998753289290552842484604173865399652150105953758419143580719311107819479443934159619935657897210717307694272502536116249824288647547742476025049102376203841404162252315801185123196049677013468235649041210272785791887547584141448337411642640245864184054172413728953808892249707618051887044454778394158506548528963318068860818778399253285283931916515790093834079763617073667796010391920515636581973928166998577712490247206219720861709251813432112912076032028862978952733650665513127468847753657838855398845484092024960059981945871091948465644509191322447952626824141247695977668138310858993698849467662200069601116538737031974151438346689231597905501270923065278987185204514851065629390379156917799632047399950206004581643146447112550101918139785592301023218584603866474850700683719626625255601336780756789187346220069895331619621826779447209574280603814716479660874466155664283120390736015329876926498251157618076815830382807628298002893033564727906155145763458513901850802773214403143114335042786527444811374540695799233254396524117261130544980735196414231040185042628679627355913774930562673089938378884778890328122779908378920830949353457712967979921509290810395995733422015255333861579293263308427600791794707028777856667978647898086876688802177257960500054177575433120936580351436879745458972614850778258239390250429063396416209520102609096066095281544161404683139677872200172416556166431311967238267649366617726661025801282888477065255200629600865540690808260681471639547199630032976786047072885984557315261316978680261710122021865362659284406372188658517568503069031278740291581889328154479611455617397329479157004310228257257762136781514215205542944141488929549436131367412640726321606110153009142652394193780317158077372798295739839195178021234857640479706978675578678427144720055694701161942558238077748864349997470447334630374891936443155715491874502602291203273971432809212448502856653262651395162003140851235367063441780650851818892143786271118648081856790358905149473472186916154150085363912988999006063516142247268297593526202988253511225594700437022474207370708303132653790610389983808329118821418306230095197485244594203973816083773742951397656514886033714268684604247293947676976836890627865163632422504044071279641832022096041474987612013946561100213494894058068045857826528620620752148555273100186223634542050441624618518576140636289117911626143177024314427651207132323608676596144996653131161289361097617733762611954457926286321047160678382115332385413949069496981705456879087619119706456636237356968858304853328817868151375621943071921519057048240901871987381710915991359660481030849197104811800504691092216907072961739776452180453424719954980446479531883460466115237899123746496331424803007054617962712941849740602006233446206035384445359086136960521694170429152672967185308536750778231839256925578241568648877439751135248876907704158593532940406016924051835747581233733642164765960220441651286441514067696623972577066178581578923832741890530240873329441393119944916214438320487489471138550070915838889724502897617286720577394271414315254286375843023230902141082832549256001295413762993180891507913908801455856865923989867559596208064376335880650174213975652868140215794566482304336052680662051669585548329594959934080180868624016448211293734172087968848079404149122492130484752920127405836878540027612622029813842600867303947964709154842334841640165202009770823098599239151059895664756790870203644956628774984175198942946330133232142068179009616614919547632555360292099650674304968936380575622375085293611032842250396411051293950438013607430152894380842233897654359965750115517577094504319621277894481622495290203002146136907833188330527923847502755326618185988601156263282931056351818782522253219857815894560221404260452708454833226690455600734215798862011253065509048615767467440319580152767923584671164650698483678783652171519310926183012180093497399207722009763491180306609535869753632755203228521110684258877207313612305368653228768225892207881196461908364924566611639792448073639350693488518408771948004576347159085178939253510523430574624895850921652980280703032487123404513627520944803522201670732844121952455223289157333321790482588418085238453371205209735606776556100987876186529979189082420508922739289676283359450974242757287568549412006087428386728515981476449445037180042626566158656177476702563328600580256723009394763990112633058755791053130144379104087517954660893771574568489319406679407068893759612496667816835241975423454088682895374700260711430619140024301550004936680987235398724383103333325338278908610948344173266497251950452476399157629326347019470925209228213186155107287441577900898347188713577620026043268877934290966830713269302838075611396513224214188376395246034521208852312822425101083392893550095027988821213748748223311433394913327225109801564359007361541046703068804235341980882122032829337366588396320155869841017814541725555805640542082203617584122211307920421494705376844573177760384387844782084203919562752834827350758361770631955701060244506513707764643453293443799334937460851355051593156701652484956074711719609923489024926800650245891434726663186583841864711424667702247145001372191725539875961926051277494492583542444834464514469598574638151354894406409363983111325475483487347524899065158976860913874906087681869011487619129513268871471390144178319723730745806915592455621830863036524112834544860472340075875726542995233550705015040382499451450441280064263753285224860406145630244469349996513847669827135177481640300988517169632722514003210019259878409875558283974815561220016379813271944711444906184847563249156007258055328774437396825438741171000795473962562209131937481914338389841977522685422240506101674570939085991136008846240292472349555056028240651894660429447027254101045652023105452595688343703935565527870083490000240616359205159389300705916703997164837166859891049939540934801547643453195052007487795334964992102856633712065162790205778064494994063843533436336730764025535089667225052580062131323297270181388888833291740746286396680618363927594862191695400483483826239063201675273000291801650637753277305210200206095103012659730954476976677254534636887080689838058183225453907812943162954366754802855192964254759705359237475757298794154395273436021648454061777052837513864114868154597295137931763649997994297704819444328497176747062263774501070733301703124196049781319644437289815366169794843474904643511338985194885454033718800219302873048635929948697469732774899484703376344420626164962899403812061019529931298031506220601086797598290184947846580679795223323852369856724154499285130961644052646272478772913801023718990955344037638067065873628263299177473813039012784510734245094632482763008962015250968216620327428774225092979770967131645962100748386556510001152475386994743810688338162090144234772774891752683506520397074208345223061417047324659880074766618926087472383053185566296487516653363156590803367594834452431373927569622216755812227866397916129670239652291897387400312383909592751637833614468853551615306599107770408808237003077533029901025468669437374362704366499100693920789367449751535342912258351476068293322152027332296682562331448261074462253061024924267058988439145643589267634507913175251539142928393180960623377418132910842781885122530386264048508794710246939646881855815155868878598353526669994629379196485924452753366497689115760739806852350462780214340916218075908744728890581234287883646282415829120306203884880057122026665684382937192735126759218585827401952913041738817076040667401038919603623485666539115436724980278131387925114387412359181099280320599760354396388699486228493962026565508250077718304163549565916303932430358510266549863846189204975691299622009456286869018166021059751135725103698902257001412685827695131654666286243235745332854039836709873127519509461511220408734226218826525714020023384657897915650486135558221691885175009133241305180019338656101522372961465226998188466782362267437020599824009168947058554574546490044366967742693827639624426977804977871091972147272003569456792862486796922318172163103177470542110872812051106081882413958033690197681629382303177228204465900515609582634345668648717921796176046880558203602795369803831925628078959430739588428990899222235397968893613574483059191206570226229296142874091614571883362216263487458353637058706144701442790399787699783302230078620025344470195366850384269966354596222796670953087718468644925511014395845458335415154111014438913717465527331071415847464912017845433523900156866764491150598346989868143196701241353575268622401398984544880748461779936834722997425726187919330217427617087007624923380221607716076290830035414498034225896497106319606939300191840197732873197982894703336704692318755539507575606429481981042087720378613320875737149954601832557703451800287583153317664006658801962580043008975660650036518346767025075205612689651053477204072415131960757280962571264730847263771673501790902357707720850753151991835315736671434997380509754563406490530729859212604128500166140698766410705819196358985525012743251496034437803198478379544358890036483562358584256471501991285420377339511761407510916280949339495559450627785199142509115460850982918125424930916796374950053915574626026077384809986039518433769525914597460351853637064239064592075838805025770463112560654398663818933326230958190045294723738675772330069860003459097903873216657156115713642540069579772143088380826039527376223697602407603619890312912822438634663725927043865272401562632562012577610291177438491801811809012417650346558065370680134824953970551424575139261212998018503591323893570903962287279358437076887908268748865411369507165972288377622271698025530642922080027360353879155524715445708792248024270929694020080620369406693870819772164014663366672017755286067665342605335213281161967939164030648937830241952964637197952081320593709955207705071922944264705094775343185188582162568243822585614260199829568984788956168890372844394500882706750256666579850891248218472206916336549034143344185503494952254665551189181725303397507334197957505440282986710380308112289957440403579662305337254889780516289412276886300273778914317156380497148007922363732299455893748104312733512276703534598491507281637139093962133799230937430409894484160366474766015831736007840565552344162280617754570390962957877469383049213876115869512531584693224819686709107633453089046518727586522213660721170601443460400689645923112030519177844003367622206238256947512161212810397600847087151324393727214043936585010742791550459143422563044334987020719796216917783908155101537494473670939601073944294612747473321411371786702684335643032472175726177323374109936657832699384359997488203162257245612495871510222830272839066629192005033270096406565958928384183030010469422912005515274970415766162068801195421000485649409262761594738805403714536027365148580499661107054990769510479347624811719561488687871790700701902091810892423295108126212232027809005107808333735272526091592179999338672924200970661454054977490631392456384679247010571363083426435019969645686525029506567750883747891047853881246488453140949938321899711099236369708157368441691548235930323386282837468641968255089759215111854734608365142894903974739346698318983838831247767686911816593957319770398027275888622879978741980724078949848547347392813575087988096678240914285077338264421519907471496594288650497338024264658337298233969134906180696749275828488214525625434547636946924444255650711308025360066349333706205382078162857891996544649790310704846575242138302283007744209482238511789470916578698541621247912923786072941975024918693270095643390659465206396362532773395668298949280955713663916567098534767925479977633871731037987726661418948909032964591119250948139252820869576638139846103548328559771638433235105394091256462002260777048327321661584171805422346141308380950168893909128265828147853691680158342407351043346423813031122473308234564907019106802642594926034107225979863859875585072991622144121598263964021444530690818138071270096012078451024152722061743286695590711999594719222542876909237192989866334264317946318440167435552944889937692219298641615732289972063915266075933397208225498931706688065681792181264738976685418704013678862893972947914262659284608416250401296962792279102330716005836259636439291255082887096121322031694821831241202818703941954157403487658038025391211894822542326718123000401795495681259061661880181041794450683319404485745937899669506618729964357585143790830645147259621871096633721856054408672416076951490744345894055961172500459471471447112940200490906070049042938055304192087296621536088696228549835233268177918732613134440982117454275935049520240587393440487648678255976046727521033613022410710950377785145069347972071007176947346556667217510450532638314946957420535123269636088664693011472855755791091937067563981751010948694966979978353450499604066564724436960474222707627844022114143963800328195164720597865146922945221168677186573042640807977754764409480983221954928413876512459478087922430526627269489034845358440685744234710369226684861177662769136197508221030720687947990883268087707103833900687332948618072984604265543538372845609487418645372224647839735430395959464523020176573586945029949708524873991438135402538560794002185958908646574007709691113128511916619912383058275221147142624713885395860970713147675558122310983067561236695317065952453221848890268724140136196603510259897382341720575039599025052071552982142792090311673068101406130676934321359280434747557417722605830382980477217973715749835729675225966531460813221620951307609888944015625941617357635580729799597129962604361156562305492378880621131234024523052135292254962015592379714140737553339783993499061490800960592777480622437963073514600920334429019554172271033019036485127273859878914144132880117246994891689660668644754580517644943516190455692918006253761778533150878578035626221182786173476880993731635940747174640189564712072267372020099818450783338882624870075557234503833356060335547951365862868529473927285054900582805630995655721200910974476414737821950018300679794560960579238262684818406129400405397572664109254168742862939386434103364648209432089124165842975883325886208387779000471999049449557897866072800301728970375175606609920844204539921163335986182541777002219854151711265174090039542086369522428882601590925792052632034058163634420936072595504323954523410070386714949083341095843618489143243476059250349473829700407055494863231793361582839203719649675742584016593821779069058626997914966330132350346423303617927193271070223773330814133504425107885821812731551212669023542431181030318934171066161496802877606381782164851288380498300627659726865992821006364824616495082395529835206546059327539598057712190256280669951489496243830526492394458099945662413377000046065343838042847687685517527944038007303424683674983842911026197211001596958537137887524721260753039952053727707940825982921474937851818731510168416041545622070985312871907356322752170645553720914856553500241195396593453564789957112980544917758927179229971990362758395948858799160946762016744080426115966865849538897366818556750853080599235362228103739747605371181671520887006445899255095514074352994723012386545580663399698084019635929450704205675403976918757053677917515529363579699904919668824080091399592306695615770689526551654624563947584898690861930845030617507876257534750473526740455662167608977760350545822453496560563196516071869136751509517114316007927969971841791837699104828268665466304071751905907983137423680726906444604887017936048422054649538866285115284369640075148499783725771011467741638587727216798008470253745680861442270886456687210917692720303195191332773840460494293007211288788610619608602632587345226249893332812351537336038831880075387462441240639878238577661796585826637350149035583432229263700876803032219800609167039093895482406367474755108948214320590360450193423857783379769362084559026411603745802732345349879414831645049134451889082661311087117153986015689915276082880844437579877893812845398614719192934183336401362426330638324940204523417940383522148358841590317272503470436359066685895890127568841605783210028406135807559363502034643535260634195270022216348077752159203208609199768182384277233129383962341270239117673454041636775243982141088190668441023059397949642712260751102640913729353810030499054769928197892720642568746625898825948043324430057717988008421640211101656164173621107087860755022976441523881584995580000262789750788580040587386540457268754558274699116484748297254643243050802797130493951854684983739779621454689090983385147550403888314705223179925109572407555038932658135770887000391929734735466663251045564186506312358278581649701614297508282700649293050661879855838874685107147595030089311342961310897255312667893130875139775314675993801244861024164416881835085447975436782046126690484514609904851967915067326671296162945539144880269320738982326806080351961916613894323766081181241551935908797347009744046219712640257138388414395792341131699472959338540765097979371572502672974149091992604432296318721502173779380785651025610883725224739600559421841766240421412709435908882070653969274305305060073808504659350420221078379358068336549662358465475435533292788010769762468860656110813378819084799706759937941102618148483580152383630734291490852631369499256243862324465604539400992194734965231864672463200891206978759146071488826667524076296477875646107182206680805624209903971521496694671627890383724707655767078239425034338445875320421317662723755425849217263425784852146445276476037478110780870015755580882840341459590548809944548287633628736334063434342113489734357467659812272078148361864790129999845101884239841705783513101088183623647931777920029992575672493397469457363058073250755949565582971580436534303180759375961175229077925254912089260361826009368497336137537339359255129317437771154280715075570614464102287332175200505771085861110226954903219673239120407333930393106991746479645097076893742622610783152902999720380799460772358183923759457441671137069463382807933099137676789421734972071198751751224415735608234273864101364392212887550982320609752379254864993838460925633674968055588020156805679606759048930930656915005957725083242524751063495648011332177591138998191242327130826603020331886494092447586885106319451225630826386819099986350994318942908122116926215183595836451186482463881926870953301056156173292817064984252321166674488011730936784070700595572860804594999403380340090237063407448881506875854368236342362208950365875006920337564677766747132327471516651966582326163647452230382535716799553984327683380745829050975207694657979781839337121431396292660167211660923567778182131869169769190730135269928875342092169663432652720984736501970659447904230145280836351405314418398968676807632232301306747035736417460689007504023056110450986167870182466020460246846345772816811403590753040445178069818287018954502281489402721392415532896498675845134948286839173837229781050693184065366158308988423532758395847654400655235243147073869348678968678529172505534931866579624313511016539786164005143711791629798759043780718300819328017251488379797444620941908773549233465010918664344278910829614344560157587590503117741961147295229585950282354182501401140642769897922852233459809119361196232297469272688652884767256136322170761702142536461754993081530469452570289627874826041995219894526407242285242769227618571604685960049070488511116444574494979271397337507131753961767118150517067213373736402654861622919353713091216444504540178984479334057317821873985811624935828864170859729318808656650882014771023304235458041263778371304475356482303285638552899473047499492514172940032016013784532997143039438414010499170336722632440677019946533400644566750881924487603052588448429829387415257252790954271485481143658825632148810544191584884042757384001642119824434436841437914707843146505252327987763985309482236507508133219723038201056556006080540883675620666014381336236789569857276465777902485706935363769090360091193418298483688595824508640771226520498020195222204121462340009087826678615187193838498754700629047848626460742440193729547430138908314738629748860578384769012267882247261139813756489968192990350411910232494979958206191803224074163738170288300471528207285019726844602900065496671311319115062122696904848249059067307885656974417464373913847689427749998523539120057994496932581415173925377910499600596672114648454999774385475339813012420154721053252930917970896929759485161845828364962177731918509002903836319453195014163797381514336942779707766622801201310099618470795413174385805098905524032844440389506259268148958158775937939979592586678589053659292853618389206903782774718969518631625903997205353086554360112685801350772851905497434299995295715845658863631684822578150955054764637558200332910983253209749489508271170758323510167007446183026258667170704290069720754718794990279079036590596702285647634353060496267018019066498450579277179865682850036461704668075846128770690303073560896201842529886325978811847732559062027338674081912469457060336401964726239210069917450726390021862164998296879701820613097812038021868738720567931037818196460359022820047197614182230685111743035248440825959741566467607674016557942911854208312658772517885331537582334260634963629175475673972132846873551500996421276218980276663374579253072133582584230044186966692986713844189835461407642127961043388786595972102648744723268098728931304681389891669530628502711605951996954976388525901469671301200306501440440279902821764161328281229972149330349578289300171618556281356611829517939036456610473468317936833918860323925671014799166730718716756108236324545260711203418350373755654604351199272823543465736480292360120963888064944712035799921141635093371709618411245024824013861413438985586743983934551223692505244000930883507284322087903958897760467951573753562980410677877131634479846831552217919026923786204101870331968364212348038220979152866723676718616922153504583573320042195611598997426698303647909386789956461941626991451136079946823030782750725634865379124411764282455594948701831174023825345260733121310785809557315372209418487377668129139419427641524690436915752569385062113553419223428612593515200238877270124419827272209335910256855858494576446540205044592495112952551938692111904097101897510737051049433929722589402397447644003774437252636924050377731241370489953435238118041386348795002889172242734150674336309293805849444375846364070468990475219367114287327925458627406150375140004729727027218156148331662471350198530291405381755682360329986171548752850864685259233798796673964976188054278221654802016763167204852059781036922148551894951857585570764324442975824936000083824799495841846966216202207137077022889733341577961337907602424769469882183637586546436636752037225558310940593101965579905675788139983765504004258561212804536755987400368204261188542345628486189052434729769651912987904855135701669690426997840871464859337899698255167456437877686059403787842010981345998485042640342106301560493583692639946233541813694834657295383161137798748148638718746784048482684355622622281750956189393067139963709590634394862693898127441282485243591764354886742287187310232148077997920492548277569055184939710842225401557326408048904726948118851593811097839865683920393980073263741585870881559077081355356099919555086321403736160347056940950676427046351830675028347423779655933794925548710524984888885152779902779523339800760890553824404095570041607913200876873837705297983760707900533990192015813033599169915908060760690287765159379039668681137316285199599766750424830039979855111559162727905269595027387947794160764799392853726627570372535382721216823414019049609096963436940733317341000121538010983306986678953907275432455714692268662715313540189482617389383125352766574561386804772965218546012123631705289198931902684631291931505746490054669715876215252399829339704207507895179422935819697232295359792535746293888021386292691502554824823371523323089279064967318790192227001972143826443864554384747797500387809798850649163221356892204397694142651256291005366280161198393938381376407111298683300445820295553458379119526148534613700752248682053947589712450221503094307638513507270422845683899423717719996480447561123136192233779294216020163950782928928722553171375536844829405243286813220899138253939219570000801391121202898757696425510607235842812464699617623903576650988847293866723250465697588237391700519735211389678650819863459170327550994668819948901836009228314217766352999591580428591104463032303355905746518828326711691624306471536638009089134211666848110786745165445728099703273855446004293979627736242753890096162527979964221584734675199324760587493496105283253947655439468400849224573547555902596322347318283671889135718883456419435438871661328990393465402176382400170481322871462501559657841248132983712528778463749898543848798278127471106279828011488904471310300152265132904194220699165061096818073294508158571750196659096420870993917060938110488010480936757002024832162196113726502520227172974826411941289089307822645246323442293090168622259831924278725155992775357688281740190755554243945098383865159280513027016940464773647838551180982017679801108442289905180150905987611275737283169922598641399682504343752679722402909881199054461083564204447850002492766627534500587535041587118145639349617712112377698003076701105653025373301943348171805596938357907631647400422428726129497910233187556529112475589421297161583839984907158052988757523764464236020368395924215963019257201328219977347688688199721552757225727004227239367247910167758862759610853234263409375160949624589196657812313343708149167237154788552690842236719600534911448829202187229016257866246632915966245142820393818416674884862098613332773899275327377391449065277107391494264684069373120927157642269345226927584899957351204714098460088513540431359692915000914815237782399319325935101802578044794467962150557678349696586482108234218548015240430189578881194656306817953749519250682166625620377783049975651820558932662337499349136658682304014991094495149007476640220266329117410783075361770754765334707393856086775094063348958314507536581177379348150400472270085989081029597710086360626091245107691523226180584415891774193602827321758441407299295859783578410174828090925721398592520745126135329141338423080179175923024342182147995781512532518947830844029616394445506469375258329859901852446193509092216556603692564799996148790263172315404936725826144611520711368756248298209318534249186256922900217822934113025444835086517322563938621809503673883727372966540498838166961062868418078368958846772889825045564996866882422037106247723989366792455956741366474650718087595960522894341082603461075644180380263359198300443407576346341534918205624012454572090471744613651872259521465562156825651004607435369280937276562751592685064655617971704014617331214895665896316468472967339885521229874053708435693963768983116552838880481957709917935761092004509523083682585399636342911562279951420477848561783260664302755890466020167370371685553873287398508456358358415509286298217368692691345552137087934614717997466152009026699212808397275278806282872504415959047482150712082680170756633632444070135493561960260269244267227436795360582216184429700174880738586201263069680847458944402372117999028995111070348044564853416362549274823701439933385040822067783758624696213539171020680972777972505484633406897614980145509494464248263218758015398899751833619493949621784889199872582342671030261162877263788436869616626825044941772564584628199369065498334027352866404324523711177290425992210857377809476717928531799959055814453704342928075938843535631400443189986895076038961900224066103753965246394900196533455187876546498437602187041231015018151824673502550647198911986882587122654010615485958425459990888940848687943186759590416090819054754822988109352460871040884646510524645661256794636663588868349803487974066067982894477358451964660603025804867834609553469900923168636630071529912986017375924007230506362339357061823351293223768008244549620153918792080049719882748795530354794804304571075679751496104812701606410441548364176130051853047326066193070188519845864018580564736994865468071051986612460892940506674424121411922252714190754113030807878099821646598266525282343504370870066339301374022808137471557334066266532926403947765050707308191218468905660430574628582166299875508516098291860912287714507970705877222319165070249794778293292403838372933403668334562635807379062146248981636779275749526087854380255544001272709599364535159873239677714711689867596958512150837427875824337973960811343210675053734202914346084065456560824285447400811190718912507495214777526049105712613125423079081428928584822726022670430448118269542337852031764787188108378486929779683513202808537752500591705933260515380583962248908317925377902900243928925104147537580561076338354174505744089953449237570307294636556141443810335172298676577747552597421071395152989540124107605562639973938270973744310159361294477269056066396796486886899894707640063031392182379461764743025029337981482190700916210481021833701401841560307402285644567492121574746178375558543861656864702910764675016352345513519699324442610077570902496129513211462976459873369666709005834841098219235638285967293253752843316616644674597264809091015639030285720656170208841430874417962346423434753706838179226463106568278466810842222471643698981825991229894222814428339309430696966292536550097924050394923497333533786678710066140518637659771501587118165440676799573936715201461502280636294482398033402820399792721388606458336032068803250726915811441302371660898945229460847695074150041530217732396879766796273409849033255459513869613295405381997014341291866985848201010208687895512943282385262454484878271637554246583051513603312616047013037963759595576745053836828841264440559081244079859543241732417635744512494287105066754482890748924891878760746291460173187227020241354169243012279365765343230533247916120075802538152950429778320769546524385650790424898335057496115090851105350644058596193667790642966299434994778640723669951330639699317712767942775382964362415217475912010066345469955818774756328104597233726187943823053242673188452998920192416083613897302658526403468864357507127802330894426927446087985238753130107164127187420244630712957028399315224437311357889921314218713598745465980028202819575486733657908024420849203754870760553261910636182050899242774591212478158554414137191398086470195314396849887625283618440539545070421446634762043711023516502100507711820774217664578198556085408926565026079484018043846357729682610045813460191753571832178286817667187827857793757445675642920618258413402892574793797900950171027979181574862935782689468610378955707315789707206327098355669221081750611350477543121198636505672221057066975867041540867334250809115620381147519301680596405422644078961195018826021404305309742027593593150129419204705597784304085869697789274288657903150898579869973878881183788375747637979027504082505776919703176153471387290389115950185876288567489786737340466813496907574092649488431523841900307384983938878794798668639213959732894985000219031323615128456793417580530741529004860234790376874769981785031653550842196577938239079378786807411832115433953548378709679963799333203579765529028600201955300535967516980821496357574847215936877715888101158464662843439708705449165970966019740785183285229931801540494299211703728099154923967624870929154141103197825589219173998455194889653387640508286409392699215465373192543271254094382672498696728038924461958632423629748586422088078586217615045333568224070349743128568328132427832431404722809988083201892316367480560544108591856396099728337662961987946332950052099568507368164082685893586125908878710998796650550461115773065472338648069117997227587519072751881939859280993160982150216374579196130362403174425223329593067896648479387293502863773107667137364369798980076620935406072356159843288638269667411811056338139155470658664287249201819049357320399679331318895651623479915168706292254849458106600577871923730554285173818560004817335164739781416074153821498668309974518206446336845456689810404701159601649073142234552497007139704146500921740891173286600242049631893914408663335198444455982035791731943136678548865383301318914951668726214843274077244265046014641874080851213060915117234763820070957329352738347438151413051966088406194991293090219129443438444802803923905025624339883063943370173081730226800674849624844109205792368247136810508464047020495849657043077632520979769516415923401695825175005356311345207455700938164322915202285133290854956326850992830322478733993963202915991740122256162705904597965061086730191154821656130399551824945935819577166494443350343738537784435946189258738951384751908875298294555939566207697765366522852616239026323171963230253967943557103682572336226225937775068400717019864709704943166503583161850355052036710407760144578557817479410853698641319043188013044007690439947266419114074252091284620611113218866473284771530703701881467271705302139502360268696473284822478949286289364450964017097471688145669028805581920173230908177515505158042475659312812779259518758659681314505717846875879616752246560326461834277955040471622855017386069966727724750065136150708875538337988211146927595726564291243809634653071704574743191503121364139847635944597691457175033072554754896430117638845488708724876056872445876882982034336929056550308998001970832830217535017996863372563354461846177119068387494608305626252977452207830557238207944644486899622637849819628294864840143839099820735533180027944292405428053840126701310777920125292506754059250656659887956171029449862194126381599353040578907540341896742444992361087201714805161893237099075843318708386769627660433307048394635091148847106073974520046977966789968790899337878546464765497168716484710469792770907707302359392130685065744330317493183739764655784185020045515896218276015382293638163709025615811801568124701828866537071763510620245196329974581772885774472483351545394880670021137258777145038307490276462296929364612240251045943118838918119582350881049296252805116212736504786762210422784382676224050575654018393348226409296526504614991143292187150771439585232434429621394430281503817098071914519944955896489682651761999297443135733932412795786373874229829789942574021508766632936421653910321215930444229739659688679067416900044336710663503656562484830623324040716377273017664636646066437893524023201207234780318559991407846687337512070612407424598584427748673217888229631396558629320639640368725742849788155856549888598640525743086744265933866088991495151408000759890773660504825416116623175602470743291623577865387192406791599474973677416393229172694828755728715095867138444610371570777648290241305961745964003391955850149166708687673854888551549907917166035077478240741315690515537180627767787287417367192008517068002992402002893689337351485266183883474512692247783450472765657701638696283491620777315513840817337247617608502490468067856093623431521040380252467980545690844183107758031447681236540571390895798754394209567655495532642793258933160551795864115218131628674364921522829870453325859834917763932564501856545920846879056270164939537781917702916135599071866230811617292853734071280676411747957483080423770372064967196374219701982119763474814511550840698791737807213751185522842841362772502120125887348254280518284818090545590364199708822947134905803809495392714678273358771633163340211178825274183190841624900458621992715597680396021779436419180696511075250253531276457301368335717491107704095280061994544971856404846149289821142497928774448341116326309095958131720584985321624979927829622001657954066643814044677108739520842794203138215504268543088983010990942208072255597971050730051377637571251387385565826312177001412343994373423118241553134052062266814114194806656665186845653851866265987902566162935128714689421829092027722659368844981180093735808020360100070593404295721743694588442836451685946236550884649372052513569051992397559768268356969306896535580542966668222064946107378130628990060418694958446137110059512700456070230032665774524833031570248406643625534354215901320100400003944730543831237339129198834984698460319257050593032820108227816970705316887402532861051972941557337945482401988507799526322914883687538254386046429038337848808859460755358800331477660355492454682247508714351029615973220092033939132824041056427356714916678096193413042715390959568535640599517097532798141315102818420679079025521545702809863444488392659357256704181769426675910243590847401228709121563982158984437814464026293551183695387023929136637893675785483472548169964440756779967782427967638724150738294533003286266846099526441721206025029755029633254797745428413215979778270467888168575182849679725762874693349167975121446222439677604229121623607260992345953285757545792558807891591321884294856019658972930658629827852986833627738224448408829897097724171851801472181949754059280799995292432714778098615879471543418752428300852482753157138674286839876185316442820776915075399009514633914070654223704544434594486217510122613598250686850092127867117883371153103143876633429775780370444995539996346999210400493392229562764842889933219266247293368849074868214765889236647182959540326231901806877528860662046211470783751036054740303524462697516416211326932595805440983835635201523965794622432037191080322184831344069834531543933564185453454225394454286533940205350032479206278081449978899108861830387872188869256255363037704438780987226013992051534076357917233210680392502383668981501880871407934495509914402630419248914948421877504228081174307281160013965124497971643492155902683384513177965931560556569207596377871740191178810575210311127358051313390110196987938226999117945498751756294351499741016761778358208088251154456035667086876933189695152821770030415084977322516399358858256672980205941580546895295703307460955982977798758065650253968084115524884692239841184522540064900545433268118644055615612726515762240695931726460971970003848860316103218130817129680766147335990476386057237864012946175255982114840619005374519271206432864103637072932316453194644522119607596426033322238364737653730904075233815400311203256793012929770272228690030711644876767545158641669963712087830923994818768651739488602617761774670487503150947532438322392277840138174405611027724436288899785080510178115558995539390627793639275774263611055318044724058047072365881531375774648227686438538189473127677270822876348518367546392778881572770994507646912588849353528522128970066895841960873256294264850629281005938655858680572301741480484691844728509786535112080371840748422612119496878718545585721633432385945219641943604245287375410885393272220887336055946155403318698351950440109017326150765248561809344718955485370877961318491887168909181299260579015149966383361270616931571296966639346112036026295718721107269219092851737344895397517915328523801916481180768199037072085418948080054834668151440348078427135874634156173491390668537141220153975684915394053766598848222342155271420276563597760075135781077682205380115043593780336511160164881379132983164193452529766987560843960478334442344936900054069803830435895178742572337018381927274260034664232087569507321614715974388189024781045684645766248371254546819436487975004953899576624908851163260797051735074779220944583914800583607419182965148233632278283230750445032591365049904160206754740044185832357541369047438588227726647493146064624651116701352313522408259605420998836614545917689752217901124666766853524761487682524945402231035325028594855951574180024934856355348557550989378072349066454715740435431104943580625355126873119870773553188920801015749404817300369069933158950728737718450569527422541590474707832229416739517094698977001702581962910880075159374820383015804309581727936664378804409388524636443672444797544745829403979876929687974614109355933749356893195549485152503639532373472498663978491909106110071726152524275429611405751932836393628168884712255976292693741289563685841010417406374893409883443982548370438121859628887278859942565415101463656116953885375312058415819085276419652399127453878992224556032627393065785226557091420710694183965612422552454196824474067119154306393811718421161420048634167576840674860258599661323861073635613216353563137175401976842646617081035644887490935427284620765477779612675550603198280924990095569373557575514331388768106818632505879337316572519106789669997444502849931785090633386960892563246932575374836428706290491191245859738112773704776053884235269136210447051997833741695764921323408955856078903174782530887267217719621330309107581756604469982748375421146824033429234233917164329191122207384601675459368252458233056612985121824605907049686473060884211349256747453177425838864739403752385055719280555501142211326461980255988183257554150812649098330525612480815566264791012006227808835301210334491435420623360751126787614435991223420739289524537698063403519212265518664452636966167167020498505265247966068097839168621120623924053313196169718379031684588023597223452283884892469415623689322299745808490129286033581324219627961575496432453237185849770896922255106452840518820731146624053034732163269562875528596766780024773346047673091585134722351797754295435900681877201289218823114750754445005681812707484806894041916545118717140238930336152087427978805758108183105065121767112193370775156480232493365753355007468465734604688918592054534598674675226484448974753304364418652469384492907105412388582388534297742569507863979964228706263539798333538117539215704157218679443916103461786278276202826445948801880367342976592454904460490549089682239373975424644374360129644250493172637287292529302937490959000061716130455219098277116286309148190467001695135217079380678226928216779674656063716196041940567748248935626514407302048678222795704636003975960377939531649711304138429777649176865152736759689624538558876568019439062163571761606538440069605301022035157809417264955378632394551714254253788310681930898603336661398073681657758910965966154553891761782973143136173203107177450813756781343084785132176904875123390983069006154199402110883201801077629403607269419265720972790522384669925668655776458176595775150596726836349024801033078248133672811620158329845225918002233055798117114960952520410121826879475501807455122286192229070176078469988786507750822126632133078839520883943566562637789530808891575730065827175661543154912716286622640528615938968577449103448089775471764542140002302214910811632487133642665225097179819592013997486820480513040317437812478465115243704772836223970753986430839297058285305771428414944033242496847376097246811428502697145682250127160059750365698748130649702929169927433331009788225469715118612554583978880966553874572246574794194925356162639723835903519231454367421215522152808021740289951611531153977658616777214631575765856702675770062057964597722568082843734770199651145097292283552224280449830201313050953364058251892287409860611969572292050197773539335110585371271383116057349921650739123866002245136719037919478030218498090418032933473372033210480350253864308898132625375981012273940558686606499721288281443918076550561341771373871146267081217032013252989305935442768597225542197091859231686663429622683641626818981551488138845545114881740428650139965897479513631309545894548378293837291487822442621578080512960410021276783382354346970829680244684946917587206385168059094810891451484053884079650712819599633415211931332748293341389072039490118530581236723576442142192792309342316818518010117149159549381074740819886892129273472024368520562016468788087691808443465030448637427014598912318230718943712936809560623884394276829454270098309902779204753623642416645426153926754223072818839158721852812705397373794936215008914511876041869770250355449710242928282266529558166391735489406036003467885350127365382118986496487287091239274177915246082002346921122937844389604591085224680882059221841742458173270023809642823586979502800548985883155872478477442572601572640211232256086875281417039468838018493005995465008726429077722887010677236719975284142949122974402224975207520534299781935202635435787104909168912376450152181835289193219175640679133599961085685049994927560184949350705865728818891198459826545197449635349207324904711649923541480452526895041001738399601837713414410269777768529910093034005093949879924425594248962011457199394304953731923608975806507600638946435599238353519665334462585532959657076366278105437809145253848434590912085554769416099334084162479639352601109656920074532515625474697958521820128197206575923673042093012718295254928080990650622410194050315350913749977905968390123089008862712015367603570207011490829899174737925075288916889563422078309892776179935270149651685813642595230998406717121362101400924841866204784038801414615553673170953100889226795705915245919857753251211239254411451228928082845961062710122424295174504230254492516788105189848430999583928903360870111797298333701510834387830105086173774259776404405928993323460897883442124453606861511820880864958142764648168498346335140188672412390302598962547150754083762121001230894020033496117600987042574243908384721248322320167306313941615137810735002935812133725807521303473110707821194639173423179347777821071104487686003417275923575428940505989164763674527121503581181096432840118869045265805681359594858218132722655783306385403913150494235571350987348635027205454523750979503440831847193182231798101429773932921593219710243967818384115307237116785107003028824770205686013237413927540382673483591041437500083583585093514464544355150160689033712182003385967627866218305404746487539243339252519746976908874507269643502558437777522629941767252289784745761751615185195257473507767438074700179095264187154290882818732585958442085167870247264866895782197852163658315168559972706645220056443358760400225510669560699919869986052407934323019646259136466713086838205974168767032118040931135204693409998651685564969618824368547607449062682612407988091122601282681553025180057693246673944718629262894514821615979380437401164183174526168621410096034601777016641659207261140658555026513104650252467290870590837321972125600823780309629998025049607254761784800811174174617035605821846017870928532623582876524549054510559885854762715341060620599443866620050054630540465723893745111266146094643202359195206153694601954984991352877546145111438017359728377914156197642676809665824606572332210526836434406025363144473313510037229334903879093053335962615965128638988122098683247008232512801635539296382741515828124873133408990554596255523387854556190596066274721326249216250688411845188775643793290256803020455818379332619175493597850872981031772354875846919424420532463174308203525667151088923486014490685072576874325400734187032440752809045390465146228772814955689526944348164219002705330465042893085499920575992360696641714886654715025347034311158134404911524826069302810593080932615603657464917930133577254977903574216605742230583294522198535432218275159453033570399702165248970551651192470203133632944083636521966773749675140373400922139598472649949815124998599802146692494458769434206673128982469540839051496098832039144482543895999783476450941342020715546932580573247983480748269755320701231834575045659502435895768069068541831209152449101341179821612863306331245889749537473684649127189568026779317872924308115352832489403848769217128001101841418481879792044562364594730554144130056372153438623792004777521503897745804848447338316385745158850142134272513259147574820313454875828436890542511047848495334007285915801815027774323735840232527031671851778068647904508621334763697973553990289370658929487725273226056632722627721583550091759254653144292773163904034962051729889746435087900942082219401353133446949765396625059616283929385933836161261533084919401510665166735343537846146921472316812416809325787776347657363296576673591229333529359042436954688000289040942261624699722487546205874752001134241685766201383003926706173123339941700328668837696062934659381354100831866684525423828547648363824417675699268877948441529193256128013725722672642331744483084957862207950722309398518278130113000722106858155997365252579945719081171889346553453445819043107986643338718876209960114921495349576655569732141511864396700552063816164628160232564213843012498795644673546427810667215503689348958697198623059472397648066742832417148075698410940325751818369050843973819132640017423331991483910980080002199534185020615410110019713142109004072785707930031157450319090157966081674046938719935089028499921680381447966341306774007625986484327858640306806399483615406889635666554988821623005188663263673579489978253344136473747333412536377005945268202988761707621855957160963329570207807841443024030706428940383368108515742338031196143098982765922956086457769963075328281582471021512900859000076124457143236795626036940238296326392958415511237130081640560674798468020549949699473198742577390017921593130446382766235922837649094173081688428479702431207345927889526056335510290191213825475642423531780778709915694656895454266216579936725852630592584908684213729606230454414100210948099728500440843896347649537445309219737802111946382987706179734171505171375580574293439317364993504643778461544576287780743139892936292006221333336533856638837919116778786452915038962874460809153065104396631124711112885388256447721423666110247457204736774329583989310544310715512940912856059212848547837718711409754631663715401832909761961197809651116440247153286167633790500920961080291751432830477622181710824941768794996786898950983154788604079800173424390743827165793402858968315929902723447801527490433501827285510792782729063920621636530559131455461681600365458117352589568524610975378297811535742627189979250895781587659234879261892377126327518013018998519498958958901078187848577050475132777084353701290288816855454333501392705570275805690020020174465679793167015478716715460336862155325546651395468169612679819582724525307453578164472657389825888619132846669742544366751361648063218901972773491149294149355387723546215752869924541988359027726501195116876103802912415679855514930395807211397313555707355648458690150756970819111458319705361487625119956299035872633478565511014880340693499756749623068126406568425625024439019183361964882604682877554215036841701574308333971977576232072278543295127182443361219787706973187707376387126577627504593492518950783204661324715542318625033498345106859329907340116756540072686270773139393912680171679066636367440629795721775456535120396371775994384419553515965752814977670348634976856777595530667097630287704205648096415271701085977906199886623443087131573789863214423474431766276290728402560780001548099635022638086342203503320417961007684696922814007026769568029901298642659537038698670782063221380171891610947922336472024110131974315986727745074992787781105955096510319687973477813400599722814966064022776527598160058393452518079874284574335330898082086397271187361646360058439683556863778175020947927922132555892298301099796022375237323144365070517201624833141984728626617334845445392409023409516827764950570834934346888978317054847278024712233937538620960452637312617183534820386450387097552713008405947622685788789455512380905732869029511811479877860526447612951684989437719893060722977444688314813111770505711721205554004611797745473154724450787563705579157997493638267337123888049092960892008160841808261338458691313443665372894969698037127711364270797687733776399222043427810891858477366291180678045549172358310248948852343156852889754478124066163478581777827706914166381183401776820821574970253361639928307766371222105604077554557436564008405124197831278285145783209190293473047329809799294587727862316034211835867729310932406028666517161760433083713835557316579373006215943760303861747527397399360267391567388657846312557811383712637229925772499182122469488958804823895409026907972038892930891633373663474327101574186719811659547257449150458195403611628343003571747551817456413076647417546516859479912626481558407274945681538018596931035990504088144087151941357875196396284781767868591142844847000001286915979150520006731217832922245719135644655025986147588278267451138591373606450841355077244809627615036784702113815107938343238595209741017282972357251909504305688200872195986142670826232234065298935834017473255358453302563511660250072310087298075544174352969807738027184467348398033219455657606719751343435744873572272342510943997995854928781451664222398833301177590823263344850671957330295558287230472477608948610942735092996569305719882202501479578320892816014504716148075314209083869566719570348337986661581302846735652600568361740077658326722167982719856504154957445871949571549547550575156431443669591440465354878650737159633362183380288374667051679158015433784548714876065475234450419631678966387180071314396040549482562269800679201335815612254973949830147423759255600217840882965963323950085159616373734550173799901279856962262967066284793588700377078962727130663616628750297668909824551689507389415066015415777621546587612767060480256982107070616684791426923188320357714793466624580335687251537891584295659377560831507073752936340314935859353761477164615472329546302398740423296540653231517696824169056906275376023868148924232168470517283555064169912119254430300797423331418073655441837665924845663246880365969692448922065777708281526434566805267974993831257114729079983230775481077903828815611392641758132048489820046451568358720222434025329864193622775599314129745633694713334329744448895332864830633466516088203561353129073061554368612865381270997691831462930146281529193857236848798649881604667571964389476730866362985398977459313753647993149580645891060845536302988190830366286822570048131498648134555422015213894961694243663068279288998424630721674001402884428931279127154894280290486828320099026479264793607309424070324541333691069485152941216388775519512400902383905632967817743951986356086956431023584476256285555217487060061567409464068583329026868513446540487068453751631474892958272086158615572822707837737556532832401600254873849595418208539278047221745687643576426781164831355023076542343448441389457139498847825326085877774111951475783948587592588482712796922440574736736367842307039481475729990340917448045492919372868245062597806613559880974682691612587489710246790719227951331424804131474568166223653110545141972251661313852166162603357837599379845926951830427249556384666803395400044712086174589784644486225524375375308042420031004123409615748275566024258990071467194613697110346325214894382458698945750524276051937443713376192406611051831620689186919282802456183625914426269037106639854319214265388014658863084256863561757521235809397397027977177236586890126876665615733393120027168043988092942889813917385251839721458498758709038390111417059178180696114527480715346665083751628545356388374615601395654706155918438748813796062122029909196768721289670488998528612480635638895314738821978281680293859220577921399228120997216572208737329999623380529346882555152081209692628795144913192509660706287074313205706799111584778289905839535965825701046427674929994033692877036538852043057820543959344209823459620586938902455348355625154655066007130978941619908479831675567491590454704066849648944262200602056277865273626449071742930863368366345285940477472139966144941330494811385279882447145160634153197219614798955123096151092908687313421069553188130184976474635491055847052923152199029163265100481611352763404198433574809458613661069210083423364839835550779271166306093944454260630065595153632695441503471808468444226254220978007029574523495908566725500097189308185723423146847138166817610973521803425373878725687209529308059513280160625764680313856549760649055965231375604445485212583111560082188850087755884317211245559531884881622289406529470703908627520532664221993895335117306941307412778024169544238723152968053143243466544339426766672696518516619190147570302216243961667909519958223699248845961344845695299347208603687159726969425128804558887545355955102774373933046775923145696741504034545590154389378239689277675502687751523305276723944911029486843078516586269146109395106056234689914567825849907274077037363500030338649633244006994394407146982384200913875174972295501609667028615766592690847350093135743570608944978183388865511367773750219004760621806184558851040922113277130282656810207504005627698475567248827472039277623720166386447228139521088476325218435050162759495306153297520019057918500618441750335606960746326300378526918695209700959133765807165000966586989388343321849372805176983939225210580584507144245487775735628229614896928014899616950370967354852546731575004801384943238773463327770299053337729815361476539253667617799135320499615885051677269569619684513211329926897530823860578600345513025915222513787691664776627149100250536743854561957144211437791634461886160378811787471106734091387781142330925204921766455594470140118935105352994635189439205169359425581744912141823763320378959200042840185517191259727499373975099850739918129425963268189215131264069249674407932664251145557976373334642775801178359117439086007414872589632594675361502401164176445163379330922654556393298753362119480784491418701467141466741649514136243972960182753776275118967272917367099518251485223812207358307817383259048093873662533406232600040493278487134445311550112052502826676200043396496146763722079137303826809647976357826908552467113663098968431330487009872355423351024498611988236626349344910167676337427093977170470760536745937548141286342202171043282514176813628671735505570507729488434704983594703931311324699863540539393948020764533952003087784002276308502160269076702287339354794961504101081421287437902815977068576646498055874989240395535063616307595725573491318094731113860092411213882533452713102847786502568718311084592864818310179681464676271056238756599322973046944365682563533055383376829943533453412740249662163187109516987367306431696780760535831348632164542317979016521923491872548052483201985790970999876979605053677662034691962773057375632390361124002182553201803234495489903269557179865644108537386077269416152791505715788287461317405175540362673106912027233417395309640971705990227150445829629194506054895444522046001717879796909933890841775030278855228071859585048605934192054808790921794730229652714079341198442390393561261084886936436841583786436312372736448313960961006353435441659816501415785118258839034978397153960014822679022908615693052959110307052149656341327609221953742833542859578980760187343793901042278919661801468910495290671669359189028532444897243809416429853860095059661216252882770928600150387810905520792425206776002622698629586311099737313802959586434797276716043682261751495889036827587388428272515219342308591778954354485200396394555112861550099912250186571498492397709549682596795755708522104943461926859659117717223201836589719797781696532396259130417655718632430464352191043067225453869704547387558758819657334443198072901302056320160648603101156756305510898087632976575157564277371448367783975570936833426553499657815061791379333437864578965042168508484595242657645445183965567574779560140148702164041076526721020028362222141355613077324296785430136050872422633676605721888464764056112378608645742499230944905879261696170421203875981141113168138215831014138368639426950515980876047562939001210338696076390569741102635875133154146710187677660615134414388027525600995845910573525903529749802734645696131944774151727110157219106432009632672608584580508860154456916398204625451433259643274486326536515372638074097036506350353685927052939591822471923431546050913798836305772490172505469425831706551675242565741672899617241383070193666431731176678579992379241933785327426612438844639972307293776621448452457154433574358659490270811960641304750238101222201011112355303851626668680446321002728502354193864803981801788183765391197451304758898607009440667176656597958744136697900191703548854961740631373668084269567090743854574789700692342677971266672472353209436239533166375136591141423842244558765989647273314124523272847237887528497719299157146279511270201035282554774792736357939374869681002931610210174394178282079142082947953841126534823509697019635267880680568267030142759557253542433033490924924167122574675735233948900125223603154732269173143883822149802982289156632088651530848735143686830093310471628928082376072406759535843897493880461401570903934655800508173737550238337116887899182420328845312638222291753992147568122085926508819773115471602523149596308712645555061524848010554705151411639521033548090987208027677542480176697797107420782236428493205813939532869466939926594338120120029492273167838631031256915691060114780468099074351649855731565138635327328704471000815265132707857897050236542785573096468792322252133591626864266952602844516925875827070458335150441300891238729850330754713514890439535104675626872943472045587870437354119314735635561476796296652335410225834724730690851567576084889236863683926057780024412697020107355222094836233645517620344062028473530900684630956556905250540826721655689510215097668814259557192264450348992180431965298186111986720533826078704716297267277842614889085654485129572939698266059395990999119663356376495711491685846913040686689448724159583563312193096501060068018439915544131358443550191023158777768466343949052582751641720453386394042798167675909140291180794173710752408813854030868541208850584498980813971677068724148994175075769427123251815100638246930486023667283601412557483344665728432975592717906464359809766026552661992666912846594176523778131355728719937395716761291589942309965588969075682211967603566786649448538931118833521304008823266470288823497024780488878032395152886949361409770468696768485881783486001318203339448716208702108693560595329999017461088107120471265030640890518958663744091352940774203621335849370566082037270264457537967963691707856282600894607429142478355911462486299484508648254866703271039952698219686064717236873289720980878218189295253674405663204778247498879725672631845449212114292549118431701688492839865140924145871979344480030771508587369832614335822657827613406010127227337374172598240073587798192958119513779800512722525366431229357373514478399036623414083249745774165696863947484639077939009605101857912481913282106679164736880655263986210723031481336906133726815217458928417859624610608220673519983086724331753629521212870944188002524538028416751258820967112607760155847086590036471119409404915365818634736614101954651020388740531547459997073252930931811733204098717374002502675057891551550967547347150180961117354886583318581632208388180262097830024898383690119916756004490775748818851671408739288390340550883880868955225637412125047919633335521401847999018641004101063707485674721868561394710579528060616005171625355616623036307540969375556471945044389691718396340678539661386633663218845945798986128054761820643390539396907982278492440312039251526781757590903754774031922914996746909982668369627880801845294936286376567290876630858253171975046206489277626245404731472716780816447977779976742080423601834857171954856286920386126258523229287785845684856817218796875248926579880862874768749272917579360229405653588011052568755456367404730190598722581078964007219215584335970804662816292642525351485766770362261692728676400663639231175021708581206551432494612650099617809945401309456310532002624523874801259439392345900878728187444695060855021900207268116523109221920363377894945104828386279060211966496520577343318333750132098338047035078653145795975144232235339867505912506093900629540892357659009661756369812500795449273867888561757988738202866770574169118981184451064854365237093807216341372815693481308483768153557924139325939309476359351721437859357870240700272465544017471583065959956321583708852904308552163085099869648444207839180139407971857781130640477562650536965965539245820053915057282002156457874232636816321125028364695274938308544090328092107197386321115660273591023647540984225464742802755870594008178973956648108405622129745294039065599670816480949675216036321738756364681714016298695318323458538495364739293737532583168791381664452882902925840365904362272402528309533493814341460084501590004184467599189102981272555677004797318694956182505447855524903365007770592541590806608065471575148218383418198619899756954994027365109490700406810749548472252438233733822345109528180848766887033704122652263353609073968430286532679116109438696676378552981682629516342120262504462352169771265925090638998278587313834027689655979029971709800627659091596076929854044660258833375624695519400517556336196810256457147662652552427788609974360871684280408277955123750907970263753633484561545225571785619687641519036849523189466419806429151250992884126578626337888139878550796831870441685653741947778382406445259904032319917252018008699616702407425357604770154686030922615504703860683817242767276069909766006580347882970479823071030147214344655617708334391083686570540380327055401505733288227174433873732114920855862228874439841600003003227745224593910735405742267638093276398517233487117965482936708923284502259209569175562411265514526273859942867413242888149458993517083836155840042996009727419694019004128953065528375254966514072515524691770573288251805129906542518174514499144452190220518480930866538586154452394680732971314499470724607423498478153550703747268318125830544434129916470447755826048018302668411501819668722530307459522671116496283968447945860018614803459449354425585993407107977380767697601594904150690498564941524997544903280548250200543646866587878980871973782355323630204383628826667985820612897780104216821586341569385587299508069719619486505920626145921070226798682538530993119198806270721002204448357761768808061332539243193363847236152294524686475957304779498963667419559465280081033112196002732200944478313159988121946662208801169886170544805699562204306440928891788045113580802336130115558053231455740367489529030794102240800961451979963535236058914583485160859514493817436039536218603983108205600407101521678434684869696306951856932599098032515271488187330561777845518052215400701402178471088700359439548586258967161265567157253975695212317818681393545795366450904896889716352251738753720448487370981045995135370495878816541754758376925789061505461246929173590337452364740927488711887264158932113651105555165233213261477482293970373633991193100658177860638211578305332795190058824731811676773793355343527189040034742259049570595674931393355863694093665640052992064565927331008893530550370656096479006104532943413096340333568038924218803386787853749740479073053902551666315647475801671065462273791384633470086040226777356005523978099177440936290537484016255301194057466805922272845125804994984016692863062629032040246601395620883858655398303148644477052167703259805599185053748762163708953482348010231134190556401399654980759697720537150501841926911034232781249778783008950488955829686985792100239200770405986635201702004221982404756953643917715192658543504103090243102808126871953997691587133969330943870548166483479167252649101170966271963700341618347407036917549493118089404074261168185491651415623443177605434717230940915479149146173867289689918645577996229339294024052783146663092826849243370884425421354566076087543307303434500688543027124479678544052324528740898262443746996569905148229872367994305857598165365419952852737135361272371733646370520000694389460298547576174672296660843612344792022614459240579326744291440959975435615101027012834848983812305278843459097017867988358136910200187926762745631187607267813030478300453100871835460970870804003873400520610939398397795690474832933718629632143100122969223499656109958218528001243808994176583852808242374329446512903992909733981771688756225942110021324230918192175740842520118264758909561577383652838189034014823278329056863854546628613544006984791977230976820298388673623085833313951398833779042121585114435323798090651479868735005693089059370764991290321131471106780858091633249830941302626111103022582561801908061331390992111533621500967092597597146780155807783831048638034586101957906851725139809464034247841679885534531840793957450722577108576602844668672371502395835094159584243145853989551057440795902666072439464822629534968201173281870476469473221042627298816589383300958056132271583278893364115134486333773970047677702262832911896581870788761937180654466607652965569027420128270335525396005102429177997539386188071505317853266658895988916391173138362800663887463382983557753182069518630983763401293552459427455851587530203225189280779921577095199343797860441545476372953929934858141158785168465313678525389811637081915010232796912576041249492527982167232458784906488978062258691686828277047351400857315999417478724984870902987599230342050782512169428976843099800962123318221366708256365556450546340203295312264734270428571317872509944628096461086946600793562702894653798938468000225659794121473558755628443662113332136091223213163081376124284104314257363846875153582288198579598309483198458923835937595213728475394384378181399151535108992517700437054856849947635305418375093044882626615238347658329962986652848532120688664532157265205032592110740518858696779387577285597737727691370120469039215642310411119158005234269643760128555388364162425152404292848106477446317356063060540764907024455175247361601787836432355198824380191335696918812535873399606071548541566906684123732482557927721816921585230084578573955697825876451248348395808235672394377346215963648370588158033474856487638115562152603510360802113950717971937304190044921798531554069292806379029937346265261188998510089917988151689470847744409955139584024993154276554431576717022707303726716996365665721252559375671530256450690252917613715431179033458304158064123623022180315670457316206784643864854614484223969215645593555439680224275960562611782103576547440861398082193733329202173889161557046345442088217569143083614261621926955878840404317106500222195702557360822050530276677807426774318977885213079045456185336085164877875437303322165601930030265090354139059141708451126576255676956909925314930330974834377555293247250001585317755500673369951984900848159508891596598149239964892621535279758024670839975403973761197790780710409819755043852460858317125333430528821076746388943592211515427590388983905597457689550989685039617587464779628632245910465685134286457148318438898232083712739630312760073584043706468936533575394701027091994414589680332647549619115708723063532930682859333973181266070885125769778928150844076900948712908310757952980981189599547437908936066426510081023110119582374395827735372136173084601263432081197107499109926947938136994544311287222906661619304874129201309076119130118081065207673375836558644197250005713367931396618248118720626995565434252240209156562634658839912032857625463067899270301742507303488924174092127275508173673343030205479538419840947577425492149348878893537775536676375914369502898534316947001536797026444295746536020728931076124647714789040046106290327989003256091435369051427470441029992018382666081104147000119878220357083426101401326320591306955878615132724800882209039889672497869757845186664235269693884104273363504741985374487342351570650823564246849311557136513066356401480918617170288947667004788366337550162476798711419777951613508294403676860220229919276485332494053330798807270877717687599152052376677766818447356606602750528846545217436405399463651082419061396376861840928996730683792437689485977164877769296881446706140478768908509345110995628905327139366710803424242521754845897397903649133310756310686709855875006449474474407286238953231041597952168700115647294632798539089530181326734548624542926396487167366087595975263941938908080420337395325062628216819358241695478512476824642273804797520049478267531095750950622063939283950306427315498397747103602455666211028122065834729898358892028937667337505193520066867764843775529517762050725853325732056045540727582348699750398175388362517704063825899820920012124601136602412720639493472785050652807746885389221120565467430152697630439687609565577190602413824978286784020369179849011727004048284357932718713704488561526299599313773334733360730176785170523219232848129284429906738239116728211447393099443725773643621501631201083019746254343806830022953035324870892761500956434021958030470826653478875514275349080103003301694221591279734871071235744123629417575421103399456296537494352456514019101230030245547587098158491912080722484491300045735052938923943628752453746638946112770038994405651302924962891779041857812206163270458379772283650165452501017610541567357775298060421277475524453789813564705255178385277808383603396342487738976214527750214106579580985839615489556450223286008356000277277096495780284068860769253531663812347337723788845280805099418622700315539478049990109806535069738198910749729696450940690342151834654886791227849083244745765973391574964053604726261954318029322695561630197020884375582940207647613969513304932735531483801966821771344948355520903223551047570400148291597217780918033428154441354811541431324758917044602157557611225398713836685002214814885969207492115156662226212715933177414712305969488841529595558205885634651225745772320662426494295054155781659883634059125926203398987700965459403844942620092757348922330039905143901988231384759281354618233942661171352284268920141405608226216813050365747031495302133942978574403122697028927533961556941575083919639110605688387271452054847538658325913740460548207069417332409826750800655215615489632086357493295616099244010252828142348333999468610080626061300379333598611551874765359859564475534408881339796317983642509211827330526766955401983603496052310435984481285344943718791396654457053690196739682241788384322240080450419046430600291801413835324101859742962266774013065906909573505088581314686823673989232190371947540271339524095553397662874575592568990807289224499638142959057979313997519418612613474684777019916172944798428840461560129835550254380983372896054880319762359937386629858443898241056746090232770287144401409359161520914713326399135465708894120356830002164738191317912042084364882251941649477619725322060097996405187915904545048488616008215367015878404043057191879267673659088263699898170972772189775891064215197749786480375729149408671635727259069521759369249115079765023539384213961915966086063485294246987333291773621488767481688264271801025687475714102072521294973770197391463949642000952222239938055528714016705155148516125221358909235697159106099871028642899938990823767766895500823727753639347522306047965229937905749724498452733737764748902765780995492994418746840611337806036833168334266635090971238230306482382056908531624775333160810803327490552012046844735313661494659604808678879315782299671502962362243886838542677687882794394148778294284118585787349998470183139652886156104090265756956377808499967214311237586977542355685423384027818609853762893560576043673259971454555353640082681399163542897237467920286097547282123305997573477817042577430172192732998557166890320680836499081287375837637023505742088864447232674519177572547671273828828227066329551320457947479042118698881506336047134192577415087589946816550937484396114167729013827263930568303532837321465324031191323118415678813735337169740755504402534522095409653681719980767144344786546687893017421348275510949980096564327132368492325126233514892886165542984427728593288803635862836704919529191692218472447001896440633119901962043495049307448585437875379097693029564502762237316906981215654398073810012704697556673529846767567555495930238609119383367515384339941641523972583573145324373841757632716219223388992153778156846008497928237820117822799411287663228677580646888317494481774373267975989921298297331705726568769987354840203713604406867693290379152615246171212900861825139949557731949996891838913493570356947697283969189613024998702106482586728849545570241693302125760706544479051411309207179694012052765114350367917808540327996163652075127141390469397677838499426060668339732198164322578141378789546545832363724173126246866979522673273444961716421101888479732434677403144104864710679425656508719250596449813773359581272768228321679171609236428731227695315246536479542373261634778265626514124490201018353397695105029358779592997057036185383856603264993775576136699637324093957874795982064645665530081284377161022185944433949039898370017852882888619351432679092520617648627004081163359337189240164758855788552693000721440641547448714581145461929935884735763633041817159604986531018813563217598420269161818998914611986723370905148947430622407197249640333163267222753085489600405578186054699463482466940450374863647351265000159949210718349331923435253352801174662198026063631138121087912596392621727510242775216500385448576423739309289608534571561235925417445521177068565079699920835799069582009705493639050800570478258754068542000808770457904390263943690187849473315066780935312689817428779251931986330616132113141975676092955717693240831784234013814028732488334064881716075659015969203456524389916299925836748691935678017539985827108466267944970427425756469311069101154908499138158937057742679014567077197619561293263876624510877360360330560074239249350914641053904629481871320486879862231505144604764451133443291576670242685123586912042401293851789514466680486688907663990806326749548377537689276652802459465825901063579831057497596848718196917613013434064179459789838925467226272215772762967850779571170438703274719937181347565619654906727900784480500935027075492567971407529911226913653589110715827819331772999028571043018596071296326020756630077383493606853972665350037252446322355022437342136526019744737273770569086821264610940473369034781175490687184448039560346852982919245752796675407124787354905142602629252546298550742947794407129362888518939780871706349047448218436357100953965027283251640985417421366654580940013771691762451982796978865017090732768269433386861180818676744435887149366158478849402330546198365692790752742953376551769633961165558898280873485204150422845649085177384575959981908801416463511487224517957452551742321282475339265701099979097102421731679282071146850586821233108750765327048273588106247582682626900491281961397476121976464388881324709210138705162300648414912098752053493163543983824221896523290565320283549928384190906231798761737150454185533636392669520119856831922462881328913099501624902072121127053718330965516827619698837571222560749125897395268633936144732036176920951693203044853273978288006920953023437716484148865047947000135766342835686385756929027400451626504656645258036006614424570404483623794354112161829856717591077166618547697722299529399425677105705730317243350625991051649216246877380029934385747273593152987525456522390311450944562725074654559528398857981520331863055042405579401614734615190893284071254396272723050145693014003567631443202134892991170946781686340134370389859318748256100196235037312111686989068605826491619419578590162075755642175148848428089410622735205487769154743005345976147212506468154939985341405866314543151946207366203385340523020955833567103021916620494677569962562289753970646169774618397728417968664513706338484803363668521959729648449675902349274050459952754335513444027014245742559108670672045281182133697146738117235357260944715233754185347492653200323315099637698405757845144619926046260610732581762466091478591698474761328490551370292442629872839173836873005051388341814868152669678935371830652931548387324586298424427664901522926992765465858182183833003923740796258532706809993874139578189492670634032216389061433513741077436436345750543049381508145204122843951460955903582225476224401889762875826770091126491267481988542349516458802763716113065256841472379821779702621902570144685427963648127903444253125482614719534857334809325386906715121141780494994741112790276866305811984782881264599516640186427581034807131390367234964720335415059421078626927665817480929438780754739120517897694769023591430111954770934842310643089931946863324538090103920459319971977195123538561006642078276998982079191007809456213603052370239859425099725091838259005344147691437270539720691783685603328819473068837583262592352478370689585040106773353378238152700437888245341906960685785028527331946415142173062956841475559822398739108445721966667560124652729040563752347809774350665963243451953935409661595768154146205832199002193231409577656011803179114997555377040115223335990291896080237924995270365693275794042708698531212155130095055564391113963772650025103386800288945444345673606284969344922173542147839077195880608403210499174231238815183191812027076757681636760197065330840890186722019044050468041637282489697363084257624298850186219094995599408627609178934986621743410766479187373720355296796371416935076401637939614639921984260001071704127122695838062339144358818574088882264741208946932461352791977399362894549031383301932172901561141231503780409991284368062232529173954875133134792426962612725159166613500408066790004622118367318578770164621941090606138636376387008405325350324128242062562061463792893441943634246592979765769396195960365882799614081418769485496420101877803993537845432547153623659940934282937634238257569006904579809912476088069899731628753740057409526788659046549046882459626226215764109979272815518737123795050832771922533356108430957313489732564271605387867764318011501301486729154563700974559409543988335338872154504868577348324173256448799148242782713452528681901051697815530135843368814244418106213309216975035721824909188359577208942517883805604557756861763260164826481281923404438462879322094245361849775437764832786004950290628473748103518410905521511375687262095216415630654934009520093688074828260382422229018648234149043623584853787149415119264084565759925442070346481101910121771672118145854262401451300340454790573269128146269974649990707639499231048889814354722728283615403564745781683769192307307687023155717448788615109830146845535581271718255543803627114417658397151258462215913924608459917160699149830434861124637508489992129885742525607331275061079049747090200670086899637806281467822967961291390104120783292178900578497723398649257888517241354382150248248984152470581080593601933816343439882855709600251356810754120853780890617766961003225457462713244385708329994363220098451634644754405124454208443886502183862085028502919999973018652184463455416068102843479514060450699042393724311410465186649315968351155833417190244556619416378796242845297504004392650599511118773179747182242946965000085796073577596488806869418884305232621903151940492411381278020450416001252232235871218186284984041898650864057004625247280122728585233845610556012098114856843970898086695893230822382848318094444573187730701361368448649315571321491589392008750553372779777595827062536232368531858045633374735663862974443649120322071986752868063643722821470935162921065262007227017783578038010329384171970284930410492016520557374270811317634831948771384110891455606601694306220972678846624035567947072594726564021611899358652922068147988071674648190613679453961618340701764900435209593968199514136861188027076816307512457189301041021313858053465591217696832602583918511688539003720838562088438691556475124919882240280082226554076976357496721344906334659610286879428831713110143031657788645754945075521048722759226209570031854243928599914877892329142342178879511175401517942994030274938970169449363384627282280939027538772165639696555528236175655436418912727076404255025022639315198304417796469420711762716665038571644969356029969394310374054789139664877543545726582087418987809788683919548449038789272505520752147314820119861128238642178489393775406689942142140624545062551266744927815140577010515166690503366410470738004408925820211997435957076636743762509869272273684659206046680837022157684612479745238151496288406879873352844819540923142997133629868751046495394644678411313509626797909943941008034287423532186256261922979085430168944369572235813627641053998994890502278671461185350537660064460064984827882248696281856556077590273416187036906989620480381767081681613240515438784002179462431243057373937366308289670482015257426508339343458069049902093783494484497449766455377224269379562876458783929073897293049049598153537557120427844657332478670348828296986943181873309227616620398449383615667480323109181790744740030469228146560664533906831066676779309757075120373304558940249618053240502430826396040495156118132994914113650790453854340765270298052204131255330983128496024486556577846594491282827176433011844066006974758913528924566655289400638390549002155510432736917638834625863097581444428537388246927990859220737568560134300603046348664881849433279243022897640906856935172463982965405587479946080460801496678077191872286620830524116458210863207392093761998597175395219487105158878528819584974716518845318041856980589367484203382966394203297890802728201426415109567380704561975768369319286492624741528902188314850158170457068687757164629612585511537692583559375513789795031931298192050572134396442118037609119737029854987812330963539692640398246503214722337653851168125058273072046544310884834939940335460296364478561155717162825474418215325850678547778605641307648322850093118354605623218093399704602401845315974632027544715979741438340126785177679913925221912122224176806478934268130886996776896499296575078518356306391515807143321114225170376141475674600502147769143630786646852532418386187951660062760635000260789934282808782371216651555896155842147303989450690726183300771374874576833169480418220340418659329755602065104426712917872837776538124843439684193529922645840386588142062638974902193950878805012762940154126884450991762035226043749989018850661157216570443622167839850974149946815166363483425253715561286163612389377646818423961171098622964807302697497262136304817344155059103245396974343719247075072216924777248551547600013554752662131546162697810707311749157640489543122551540125272915718800716057601893984114941496557373214142528410171170478153830637177322166377525280951252157423401587459703000295246302634624427590678721208199179049210462793461134595942647521248200213002734452631506532370906037994473521636330858370174732118214989957604940022314028139446921678689166948277846339255104933620487703551155676795472391176436805577051059004109514669273661031050513250317409454975751808277039321006737651770401300874886891625656969916819972696334423419999213440814394768443959868388564091405815572082176789025866268446419690203659170501944800922895104269869347361902005849707413389000876660083963176254434027833933136772328235713211754463338211770114620576300061707210260024393219015787648773298931738528335319025105964566926352994270786713004320206782009770731274490588301507128413965832374629163345838384449875561542831923162235154084570017297481709743615163746299998965153041427663247532304376210127768316660660984476403537303366674867199852802176532166467739358773663820293356989329714597879133562124775550276440115675965417043739932204544101493394625469520425252100063397578288593417589139900298450078305107132245430035119300257596932074634162432808006661463114043351597626837629358333546595700418970392712410466258888531230876614545624098596508497842950670626217221479766560188188357890545258153656262769812085191813704855573005016241581600595634178942814545091787234556706682842981621748446342293905441349098998449848988049743849308069707211742238558639886172061951802302057374059177264649205212115601980302772476360189166963414972953286781431234627801456454366947091747350176652835603182513265549993241309725986339568971754314316067521140031105371896730203369055381880874681347855046287683074610653696226492444810237588386676861676540816169400566622719012651807383896284411217221047771298038924299474145899147347392157397102083915363516689973302664978059635947723570517826675588151689856339241710203958235301310559694476524360589335493277138460248915586970070402919927958088571369213140548617277322195500250970317024354203118953622888165236894429319959380268425504061981904512700733762323066735234442983862431717408567053737501926967106924342861683245126096885534267851871476016700544154626717352340611793845305149106385787897017622873789849363716833810346538343804560109123113270888884932832241716612699204105875771102826854267434418150741801404002514031905392952904173832798191089332150208943593383078818813740932326606307114383665815259064489167643570188270037737951379433008732095612942447611680025077871076031683588791498311700824788652009595085623579675936268949535258014525301669764704891014660127441484702578030741014229665476927619926897804218669291674021921125508283185956593129474575793029537665387318027276196915200298662264720005953393033583273404615268841579219328290178394744035001765729745904525110803239163761414960457982533748568350161151991071584518872838474799980691524326472548399972235255286021689099478439838638268102933931427163200731087182845921289182684333153124882926564797854513718628347378187960987048147963691688077229011472544753436916244680508845556417648286317120185197901226992869981832769502401007769409080849095020775098171323063101121041497541834015023391045910251042251042509138826071084114262998029144726807767016829114177056231632684506443337309254712544766297815522803658260913063011330297024845646354546938200244501411318262580109703928262131716619381325593827344117007364790746679260625868180804859553269547389046216673185196229059140539830961597826237868590090983779278913821528028149860971191163814252001038947160581324678063003780310537393272671502119403469313077773023043764778548573619548471730432854726089812306099502332777562147793846785397508590213638437134619883965719964695299301311637133360497596628742762364212167354122194387573099866175984946336239722081677042132054622924455664047705778581764032001327211818320315500644010025501875304010504963975902189917437376044629671380171812001377345983366260487102258930769162982745202177545746503457147138415741998551126995632553025753250065718544504017347656570982140402752124324993691335498273518410839755387535691820873327207041503921465184767772999612245297709001189932503197765327048802282547665278423313728211539605063897932550414977468508619960576890364252113237176415778515819366469482861509309761654462265518445297989401993938857811675739922143638307524771568754446078635156461342391194873057400127707983189411713600662424127096048742970736906223654628137833260286915483398667917921057284512172061966333679943747814727437262633219478530048857797997634429673398289417641526353611479058525954289143172268531107971011144683268520983441573981521350601059836123901808626900106957079103110342661099181841815544797923910841432568344623442635874224250281376438273451454974097330127538327297345364321815716314618066068184491057978603735390563045554474061637295779946241454153437468413666831237868741055442642350593303809598896483063782534312631145667012638972433782938868615944029773320474005287062508451808470161267574410591730545861576620650930569706442135805495081984502884170418160325552253250624735978576205884337808083510833905275750131977949813640897122364892468143919745977151235098170736468828439795897539212423726484803660963683102374111054709966851688927473900040501166718205011861199360312453956230005266588451967928709330702611770866249676654760583116609033408853416452478603457262423390046067100890214106626519386886144647277972791249522185864515845339938232923754903425202055988787385195820145730866359460205962528019646540350574208513826704029897973353934704446173919807990141941547669243062998069424257898647646332011734658929544304359557757304716230739790832846285703632868027646201049880498115444421583296897164224092966406405297603932923227205143267201319861697145762562999043721142402837262298261053324195233910272283481913732072703444985477227086813939861734072739076060171594469572977004122543782428432257219886324998777294270990575312924017559052502544487121198852356789208982947015790714390878045512944521856382134558737331182996850492311551045906103582618473452281397069694204137798445264050366256720812957584261923577837887417748506994956763228224838376269212079253091074317375943925573558816638191776130360764747486244514328849386511073124371723186331248376607807016597370954222818812651890739107324614580427342270697460592682409351226573343445193753239648061095726929298080918891903577040472279914118813444819536121378813396290206081799873135230351318381928718519968772209537755432810013824864264931649512872688920156154541201774100826345514354321123742458315170495806937169217196461876072481934923523941584307282696302821576308342517183281276819286255244719902361532492320548143658211143395105306465523148038254668471041173688006853653575517329600660801083992894072179088787863403413756374300834331769266286821879792409652095265829848367997214292456945375069396642401978965327017163957080910127589669680777579557487928771013932477845503313912640892296293459623869553044121425955299188467810139734613250294283846387077450887815535530580007492259507969910906383799365643710782806003090930335109580715997813169480169937839557207023310413022408962130941599512711515567625689877498593398144182543842313287712971215720448464106826035435322021525928154430606378869407308819479385146644680788636639575094955145565573908289536920206982230722782690860444726070706064832279684085122182774697437013954534907757009604833869555369599879348736927940603767373639337386574220330479906691966606889841278750958738203602607697509171502391338454869825920868369266071873536362973480311455853637565940309399648358909046150699200918247009142665302134320352057608938414659155864362044027004532651278788616952937421618038422847008756967333243115059833372821133877198669432007703757160964582360493553889482131629390374088589072458814736360098045532252662568264152691713110490403842843472805637836452612601849650756587531161825125574097586027154138318529247708985486061842734787900653226188994994975963785808204786445459238264554793515533313404646253973126509491288936839794535763169782243944368042249510957230893052769400730700105009462172430097114951114614217369779160649755249834441734149560147668692073210610412283337721210545774067755582835829393258117640793354610443749810175723193834765883411835143145914850088510730841540219805018243721256789422932662331919836890250856994630095572796571524746150032345871579306286100346156731033016679367809855879457097330200518311649261347113310400366542358269493615545183047499809899263738903873389065536078543953342709657715910287935359811834872050198202297436354561984134641064376985398609170003820287842081171066151770184429124419789400055555246370248062846115013630950549922599810290421383391466258876447717679245410496409580705937167102636602121461518997497061673548083470873685674354272511744318058746105454603503881885470389462711720206245629825688308655648012451780861169584512505181483700361266864554917522655946903521943490707182096807889760018500835001884145611166214242799810410305950706624010752875275751494555586425311848742873409985367827693526271455334206801898111424675137096448194270502881056396845574677461048834293350735424598492169346858806022554913094652480717798240828910158392667217162765258627173977826673279881550580057575859185063090619287195543619505644204081702933620234945806892917162734960369331951761991080086920368418503625311181057289020929568161568925856500606806629046632685810624499045037955766394731539773593228158981809767245470948396658116098500118626224200868110737072258092628795937538092567611894237074045756979895279870728134317603162376849708474466176480380276465427752749859818472527000425729703778775736318113793446881530083927969413550599719507254632739557936800124022225869486004474463599740989804413875407584786950859394367448864528385469315708695094924701050938388024750531972705139630171927629061904048783512907888825228158363247727427228685869417428435224458180590443180001173538715259665572614593141834704383119959727672499978972794956767172416986250332577625174368180371198452612672653433720198476213456552488422813182497754897353123445297881624888346203169008118455591770837138501878420158251437171417438092857099468740817678889448459409296070159842686442157811656375461419365774059716382879065112300549641115490291242833431663663554606607621355012513251128852324882489755030446996249146543152572215549115991839316780360515827852318698257327419507925945905613650386634303533980907440010380307109557601182826789167279118155983507952658926931543733873981647836619172340138678707747426564855347184717724613173806854050019262508174190401235040965205770719202917522741891493446799870615337756077125833071047613830620202205031130513106426324902618883849974465160664427688889534140575030112187866235684724065487815598954804726635107993093220925809868381905317921251277214889825237428667450459076685368055632199813657402630118820865852160074251911896004601590842997775646106972027914969821016170265280444527666793050893055354385385490516149352665044020907941704599521546103643970139251561410567768685351120166730984845415293787938835301264517633767138852931336687316799736008040793030816410628782385952297547851580651543225269588498429277397998471040548776372241547937326291227898692838831965094722365958134005942786209568258596656627708573606289035495146058294915418576542265536086573041591015452847999693815696296192710021288264151167804074064241790071949592515639153726434833818618648441041377047757067781316977084003768196929946311503220440334448348148212626522313396032188978862444969645171426141144927676214817596705136999514153591214801242833964390193414286911475922557784551398656030331522937239289654232514372340328182998729565336511756507840556478454933363028625740696286841780286190400162092322101919730413639731903890932218357269404246803338995887914619776375579604605694188303160888961990365198289693777421841461864017624664343122591070920090767160768544641580577910562268994118177471236041619086656698830254364325568088441187186945846687757018752974732297131447143522080624304754990592247650687735289085032259504181306640805100917454359823061586582189333822905111918033201057166659873152909609815816544599306502017559739876086997634687212590924225770734208994324646155474586179109746637650977933896117765013826624933084613892746774102334488300061416334102890784292359808836114180903998679224258697982381523990509707002964793575803908141550693344279479649680474958385128957925963510060384950630650813032361061582818205427123668360369475578711473724127629549782672514829386184117174365595486958487883882621643500413961063107665804520970650316434163285051346136514546072080223888827770270902238561173130031412270270422925236728213507528393154464723482554789592698953073921328202161998981435278647301108218782875389449644011504179956228136805833544960842206214564582935953858047209201602460592707869760903956389877868486143117727288306059905373245809665023341058173087230099419609354121308248296707025814012592555417562186858713696271637751595553641528703016211824689179810923168350142739707171868483843471891998555114548040477501953835416768194560884399662619494067522170533947648449324754262361373404268706261867694860505664736931180958486459709193319432888365054367015677128725134621105739088251990344238031377655389937482821932891916024233172243744143544636046070151486514064367036848682375609995457463079973882393757986281917277284757358461267382648729291800585193331741447324293923412908043393747767240900895493915997531729945303393999014326582708846015910178738867048498453431812382986303091252102193242845036285000488569937956195604043343192326542545404180858688652445429088622356612539337144293266831715661484013010495589850395998095218422440330596377262435901281413183593328735657791703701994527840862669172412196580310398632886870497695783132879685693082245523460467896040318264964883919677410258614281623976800186836803771608516327604821874455721659462335930476374471610113721772738676244959808267583852219813342955682323300239673087198735572176445300092255848847462548775049654584315939877936073835209052324623791147729176639034752378156651232051362844493060846554835688117384195225982438809718491799109685818146507290473762461352719650150026736185276892229007356408590071093468033081147982954289074905029843180298254657007807884170118146620373758830242959258307744044862304279687843874070241175108383499918168836676584886980509983514715040249395976319598011154764646492645961760736454672387135560787074813785423295543606820913444391489226920326939644632431888540479421710031554283659072263749978168884350523912519787143995426247956825007345619505704564212718755840361448805730605372828745558131400998099882349255492978133390322480036855639179453907934206106962590974702612176904882278526597077637183612791164385524368892296445626567899571856687997973721635647283283158287896100002353343274916922839364007718018860384795447092547219407219197259195310050266600259176717148461586321049552707487286235537527210059283867836435604093866971575522905836484373400663283580311396713615416945240686663197240080314310080792620608983161731131183637290917711678571484723083089853089859897683784636531525394867148867330985601639539141176079336984125146482232199494349419379487579443223880844173658201298275911388883090443137411285572725954221705481372823300240685352546779845174306500640079097620389731462790231056145000428017406376702180834083905320794201502596441578533121674801464323493252091195391080222219706351756723385481049126444789895691765573405215604090953255106585769783533637339765109582994248259301653172494869358559588428387041230673954780811313422995571701867470216948285335050667114755932698835461595839394813251180815216761486292132047963351418826835667702043183321750178212538263375725287563817116029752645678619984204853447400765638496309560009012160624068882734306869277052359422352788167354970425604219526173491445899296602069881190883536476288951477359740312288721910185117307082519464835790892323102998790257544946549047879883865953620129833963537655967022952199516930901616932894185515707045831075195315088776041635576220470899643685730199066176792707195475180851469445550063106076931345093478462671619160509984529283370662587281871845804209233232931836593632670421071767027336075363524205322512612892624481257711190110152720941131906192283265772243412783966434160783469568514205222273804004447370395374383846909966425063128395697569248639975063095985791455660137977236912591941675487760663153077566155013501088867768191293868521864752395370204313745125722463502682513839911040506397452464297154814266244836088530889364282515194737388399213330267411512170113866373529748181421338214049347460619432067855609125266177970993715591351858214593911459846368290464011839081496618353046700501731219027518862464846611795369820430608497529629998929623684991784692048873747609691295792884783431494707794265355894930249555137014485358357050271165564016634137838321472970592618898532950369081507073758444073543817852004131332579743394140687016235291544507327547221628545464506628270722050464759918963119952738042291666847591377349952389013439863294599036905380594591680934543803334339636349307914882867342441650731382448213706763840077405628064232564668181901730341623619791047367731143186071253915153180228209658370574194662545453302026472444831526466433775576370091533368644202967770528927797237722422164554541500626002269801343008622500894161769921447638294472551539442892562744582906331609854171442654133591204581695902666949166337340113739209436282274321209677891048159756970885081585902029710817512172498101611513367018349579737459982416586061265371250624027917913450410481210727070270992454203806284229192372698274268998499708779898439653978623317541012984223899942749377805178325050708160733772105845753740985864549922805717915199119588509543568252591541531715993810300347219876955012576788136887682869747958489604972519843241356505161497282939189018816945370045740333873540129225074686603918004287365514613267420560677361309150317107070688894274553048664421162964024696328366580673908588604364259249440025479513190937815378380903953298848652037999582088886753566837778326576421776249290781283315358027670106306623142201527719084657787331200390364350020787673997932135197649239480658465883020430601519751028500510879306746129709719553673035249862691633724367627078646587185458603087785095172010170511179905728534415833410353177134105283237757123992263608828762732745497585558666708738852809275927694321021287014852391313491807910781045616114209075891517666395270523304934238977091303681465808144021439186464448992489413156847315625917048500869220782588615817004231528283053557177789584395541391988443030960479513344335540884812992493051887651223253606133733312932635709486753964394022035461563056532100871705764941961681742308791097118622982094584463471843218990404303322190421897013475347562832835491279298849352987553824623592255684256646710534575773788092644346782501584935190437746830533544581726880443675478786656516085824811433504789102697662760293165138610031341754293555493877308895595187894521460462932573369317531738540421575003203857403044611140612530043003661113034548034533195808800449459823184646048712524730910795838144669375965290978189106475011275500306935205657845571722506648277112109939801122129059057227750067985055184338412559245838806460248514671082018829089177828041338557020088336627649817785451052793287029365177080004012143598021076551633527985175400554170319557107329849427188381841606782181312467920625992342927970994520661827939808464891040249481369720846298117725463491331803813676381259143014589697033763212400095204386333065756985310939688806398455807886602576908551782657828514168452057978495565735164013424171584431850718275565685422936046028573552892246825654462858961461899122154186105441587526805051712037297792042458406972768537337927996756904398574146571176740388337458395468619572595492285411994176296845024603053652047216551846883367071118249492122581018967815274220236131415301059113169216197299581928401533015063508702912860453734956045553453580390202856978568716830994520698895441372267962232348300140814421209484496758551238665363896989248408097062807845634651985275199983375403404656432607227960791653927968560776210600881550833750228692896840422325652626088887375376427417208390279964242106273795898174022862551488723597683573075566697625697981506118469021510247868705491800354478276765415074548413070261630188191404357173559599576717975143300082109393819545978515742202773851346276649865478161152876030832985899701655758784251659493324215265960810907270827225247115894039692870531292479325319638071609409059137406447274423094831273618516588852384070785007756179751274843366368852141079698898251490018910414899617647044223331753523904400147173925299730262793316927350219711390227589873394811635522497940497834045504305074861240391769874244165237047645689451809481960866702891841879401860656891042490577866061485678311087411078296521417951458533524469993122920999510802412956142942655303204844469060474527340237459683875661173362739059544295864731569899839843842058743330838089769807617760622263820704544003762056946073398916713864464413398077728376854495794306514363609024233875786129290086173283218965508658296075855610464853494727530437851769487758093819659603216597282841367979409571527993402874622906972462106400326985928063744730030848887664313070146274481356252816857616436307772439464985757967785283639003399223082915234625850885646147132777043102904229589149144336106228072447342581600768253774853937889203388992792439771576624817001735112497068240967186897141213664568618846525309075871759008939045493557184134689056670532072444279694967945588190148052253074381740072932760771078544329632483107496774638493951553122798794265984759860372321816799327683569879030678417435884613889600638634309183631065556003663739310490679060526296091044925458439777750536850203798705708180919823593406177370801344129186922239969519040920042063342733150213724754136444766493173297287859844480925178242102210958576325544475347649154110334076324603588237283362529220229277493234082331595451219040312763374880713839287669201718031013099031581251137112027161067580879244449450104030333807326552921602804413278779946040071462457387890450738862052097888539473752360392325688693655458045886339433982665842399763890720630584139367571376927124515818815700405289013158206945725895640193200387360130039432257965814031821421482858882287386376004482462784918620476672416060696323252498978318155943491787367158693347667784010851723645069354187226350146130561746391000621695984363720152997407868749236183484476131321748357337314531959528953683308526411866203609329967700484019531839363931646174018593976262579985518748311825544456159551575900625142940001313019854445538303007655559547898276338147154940383174284410806542565947850628699308621005415220730707026761381188114220065940333975545296813031581084046815071301182689283376891704140485060872975991997235008642454953661641414259407762375469160371541628067342795314167630646373508541087352399277432123933793437230856399846827417931194768647541466768355097067801435008943750721279789874860910843816792202203471099107954467014349191179411915666907591351988519105449615528300878300803736144850407769207949958951199899635933147680598001166500552399354217680841115169660504481790595369506501741224735328320962185278011494065451012217458633700925813649803074396274853925328770525953855253666565828002407938840016887180520854327869685974596860817918663547220387638751284916918678312259091561912384707714717121710314443178253346215201117232638775094759021975961523978032774376708710029768120650980935341086836748551431766856432358633586659489616121152803165068774019611086307714339535671427823291968332693532599518411306782950277915045598085730808345670548569353697309430359186249853399384988285222433222882079114281180986941773866480661048286035067263642093513679199406345254343871719824150111058656642122538438500741919117902294592315288001313654140625614122345554219311037301671478883870203996147230652505093254523319700964629664175301015690780579666637970172970414268004146401571056024181338778496416112815121056295644895156807260089378576547678815434281678733477809673633767536902142623679159568249902898375396588075369207125297386347854559665841736214619755925447114147092245526404366975753581737229146300138331646797108123295032084258505541923153043324914044752499414556763532029912104986652596521109062348276796158786590562465014023337354065443553014282505097966312784348411897884093409939989802923894004119746264722060232575727182617005505666217675056948326010560749720467175390961498776801313634176944984738476824024629642789835497071218821414293906952110585850329746639796391773879933325797259164554632540387012526619426241453534408124272192658784115049120256483459453575101028337779187109698659808214393490695949400380571144511872676470282756725600293544558223764016201006309252242197716632547317106475827523174985481675967116982529698277316504259383786031414690756491601496798419552365413597781554732073337016322474734266348937421512191910913841856895108536628773688624289183225453072599930492768402170165493647060739226965615804456101918069106802410473581668977657408906157276586384575374694778147188760483940746507330638092808193137886275811013891421991328455663093000278413553711008864595644415538057764145702119238821096505721263501712273969209968569815822753463878795625248401165490368692675507105432613651852970860684923181429609107513780677120355393200433822040444388714271396121666535710790044914873724977073099830206443907669327617879050480542533428411819458355345664461424788951263149039583897197199017544837217382832030823647318223615838078375100281452354204594998879934565081050026884190257340713396135541987713398642279465158595853875884226677408091781084835562308717817895371282728351489531050821212889714902142190706172144002999319083890789920958519692788830972704862247981806366573877965110706399587434753508531545974520131137021130676967542834520277204689384553907809037087305224660343635499737747550025043938662707513497923237205164405817911553705818180652198430008593557972014995781290375992778302779901180160399849099458120763019913033121255489524142425332970618472089105246597145984086730696602307182267413411707195545258222141592542534746486569458685597564380257907115916346125354837224962319769657547791628456320458265510616641738967609810494693009984719606010033566898642251163577996095917935154081282348629065183438219464021148843277930068098911031491016972104260150691077273880264776349755278579555298988814474677275652901577454349549095636928506085687910864602707082223694556549112497198543591064000006641172594992278572774279589069859339356775237852273826993775247550025281250926443408530881106966861966707151841949034743031014697041679249942525553954955685587131496257911513324762494071202129174341993360165281854643431295036178623136582339755179313102370105122983915631170388984308624593864716732877727067813823863673873116499531149652116920746637392934831250222495517168392345366605317076709327317732208969742019843840933762568893863319234743034315240900407106671055955927805978216444478322664857757864183503027073668832083923513021657141772104881088193209956114121389578970057739893418999939415985047927105127720367592014604478748172890315559844587102575553435913903906144333095323078448759818779300280526948880456405412188457134862053059067946301273257027714672785436630888957544358232420629187059003312689477514016939333898251169925275390240701402738950776711796976921776782642217268670274352308090142248946474053878483572822092769143762328834305493849743344713648146708099350646389775503584684863057778530867650044939142795240109375086886947067133350978739278592045101538808676771988040504006800752152957171689686262575362926405387271014994271961533070666006515101156651057498106972297369924456624550883434966588632423129704916693069289647120019970181275637477953169368351973345937825190667477931039473992044186146128440271731266680350245169079345306365212555509979733123807066503788487293423603268826669037291375081842741063620078558585186637632357832839640896410352180039892197269478434214128731223993584812737056324396821437290389173428865852083666889352213377482659880321770450078003356159280840436635275425875366388203609627820642970407031151074165637532354013643634142526186691578652335888558206592059735485732723525328598866510364098700921170386949088025639706609804233894591238093074233669759848352683307557771756252548736089317057001738543423367058430684883304966622932659590320310350519972998319011632103334168783096292348704094441871018117100096342764082764177909495502930605426558723607709159337463645487467848589491846440343982161387058249204088352010842900605335753178420751949464414633338082172980334632444900820967331136007543329422160901309201466255184641208773480753685687254168266843458541345133204386093318442820708962571665896788568044237082261030135232763040741682452955278055653447222762298614296160009141216785743109192605467997519018862417706516173601078730251728673110456197246433126385144558249948228968924715549654575272386504236809322805914290019779154399841432045280590072470382534713719143964044580117819412163614160419556145380483569474722696950319652346047465258778201607809240004797419777872269475082711094868501005680655123424765009330621446971669105983271194412590569597275734962748590269961230206445397698836037040383272268274153388532534904001973143571233900918968525308547622019199258602309931328057693364170118077503823800620432316713404552958244132892038971894653619955393080840805158499775486276144705979947228748175892495810814323992601087790940322540338207356613694474825214501622668332419611680815731764483241300426084987066481349308706127035552477547702297623598190181217634408454386106497168587936333787354653386177983317949016589628335261550815112674433289387434453900694184468572718727126150616291734669458351010218714396681485354179328464458320183913144956072749541128191360348477107452072448652544558331736407442134558491001647637728033477179208649514296124288780546413274634672373894052419858803863341869308132258353988080292178937433279064243421592418085321086184830413392264684222574737013857428473993237182031342279394230169839750232309007448525987739523970395899996160947978605600154060677007416957250971092626645563264098993014370138064074839702882052517506599783743872519494051359431030634880476439186445957629024850204101260887369373353461318927736211141601511739523952278759446936508920879598346358539612259078199787039912716595847372597272086508903453302994497950801547493408209633304506785291531132909441465196275461114523090109224863392627528436288257134049456960166760758009502644525810445784999817757240196050463092924970620104336776245708850586241451101190444311223616395466625816846460456840396698874127788887103384227581878986062226507713039207337636406326223698960461600329414751397784016589264933042979231962112156363608346911796684623688847832182672693894817019523919883030057931035289287497197518627546973756195335849677843017983084407096181097869197762578715978409847132589257330990454149680982235068244784937922700555907098640988392665244147759280994327829179888399438834356370744973422181576421377833096532647485317945442551626103664348037715388950331028511296438286120324282755782252998866269104425472936216253834203833049942779544712380197639020598206025535213409731314138119688483921515046427351030679430346509403919132306837604438451649061699176325814298581276476686061515775639548581415618309385580823023654528784076231730770167074092667996491411908847173030702290523005678778807761259372569488342004335906063007294439867323442364260785624988135652783231241871182355512260094466146327105130137833960503226579128442630378052143663940470242135365386304602711043932555848346957876129479386746384163690126977584581523615293488467718759447759226783816194033814983278208279557708342972777976490485375474962152598711709157449612123293712899536962930227515381969030478703900808528732707833186784625097128046619263315404677148420233602352674863574959266086532562118692055625477597492714647824496125717204896559546474110995386123198549579706992659334884277384146597819833169993759836360833780748967558989706323267641550100831454937795838303733944600380990574967026449163790533465817903331689510091087055534639137482263342646894752346359011463768574179211077414616417275508368701524435492620022977791096114366011865004533988131985626845275668148913426712860581140362531564985034586454528586399183062423018130422330402659205055990609159672279549651321162793749830825308967119891608722477413405766841141949961382800596074590444573545778765422505818153419019988921150333971233788978311380882816272300047242148897184289540117918776240028267997979753008796271805991072317875564881878423734552514819312656088628524216816441434942787142716533247319814249980739971537900613390108148440411106920817655071662134932614321877611256220524592414924204830274340028473915422373639870928961646484087862766099691037559077127558058285734880696085721626098332025339665659899039679094919463105855076366043741432924391511484976174517102258341557501370485163838218671877513877501181893578752376500294826640332711425468247931717502958355231628370982593136739360579597936924772233104651794768761210641821575278638218898825286815464975240939223092147336059801724118758326898286134080770970751702667139348435609345521286175880843332702564798902673530908891542037773350828458351131980206908978395724214084515880907154537771090405183874629421774407612625653569823910092458590317708349593698831049729399583848545877688691785557676111215956496276530570208784886564628001673472684925957668161344156562290414418776264505607345786842312700100223941563986139777126917198735560239197964825526195030822582110764301133724264335738529154783469140772062347156216373292778063745733949414137532948602190079470600480069233932583703618080963244630997141486249719581215848709721782913356494893920923157711645022053047531638704102512953002901063692142793506642704443934918403434206974546588266588945495848294885518926256702579962454835294547600758151795121441613190761071354808658488123593237817081719941879811093175560583385825628285312136882793741670305346191066736371805620900424914488229101403604844146606490235832791536311395017003312113758112733091600257907388865117070682921967090737881540913927154827700037050046298623874410867044339473091133144906084137489608147282991254430568045542645541882989415953357803781006681403496469216560913119900595009760642382830964063781406735567722171341593347015133516098528233647982392120385364578133446754033771653917785509820659419610297743834032577717596985000908841928656362000610476978066572246051806543120637287362166959057172556121981878240886331972374461549116833978880543536871023628312601194368733066373551933021548695112471687429666595278882716516492704064611881583981301616936352877008612650446485529369786170856941286159651332273823933521729985056544933021135022994987777361063684719565044369903515632744551456986408533785297619264264136763529528781971939195145149599645208476771603607281310850269498014025090238122977039086216027396356078471373999903348224132590318843919893558398288523003340234263163326345717333430582359447292748759017003579100647548862585330194178564647279255025883198704011627104350198976041386852476719237297348077304640129055940820003613725687493457751040548820330177522367924898969214084232369980518660175301420767161343770456377050947476959394865585293586673605988750391254391812588927777112921011530464761575734025593011937870005019944820212626097121489123874434684249110696950261647498580346049866603937318091941095107920951026856877668336998385130162870801014989571246207690188825731425233377298523415354545963723087541863568100446399910315897880124239770184732622856955954369900117284577439329408486844477110044398716836131627517982202326597035934045025138998011338449921341441987019411246228824595505620363080496203811455426259949466919576579748265262753069742953678211389713927851446690034459512383162550312269502375072682552382919967256982656077332550571665285944412667927776640692018881088460623098513704793132120367253960869275406245353768041546466132285043059332988107265144770606532415769394718288092573560031005215557485910683074554092547527588452664011445751598331665432576737249839932485011126474156885446863661040096812884981109652932238327954933231330725678373183332761211878180989645770118215503468855126265280701866196996400569542951064726809299021049269902789366693268040910858373990808717241958663963979689509404016562777309529950769454207194542981889756239664939443027528980261286330565963417559416623494138004199177997893364474624217972209079839912655387630371433772723259662534291108615602539120789976960409458934485962153265812513313711687341807470005557876496257042048428781712648446061458288975276757370493998894413233276270579676645576007974428745769796642257201866308395294434911259179862987941698855846135880800306191150939870344013506429338603397850707079436226765839379915952435979475727676041040787059601873598546779786017832175076154508542071495436768705238114968053072218977993666815900033973881638788843078748690046399812185338071739598231443551152123842749522116434585453412678662959402355108444186494877493578687689994447888528123593274193554452154798393403927389022340409273986656387550352444259598487821073709245271985338562176165126285636025724893753709148834347187397070261296661530545447831747190015238523093374875036394541789236851584587739883309726694765511030168318312076198046777852307825962960821558074084535791128614251281908593989190236513942313915141267589459812831917771347612402416593023010062743549942341705057301848721904452778413639299770721229128358084068295385352492427727091017299782679155718926221419155743334738039276451849689853458445249446330166805419005782213909351964215200098517141413540771948209755832669653645963938856030590407272555393058564765489846438877977597279166693108917182844008115249376521181900168285739275831298832529021493642544855042955238852965450725407297947803399200521704867134909243853220825381100031600331678443235004484412395648189034834194429519144243648421918464996416166861101327924927376015200481804114146647470542432938013060476446443641606864953837819674800528181903080587601599392173820497203737592153236792905337839439244092599037483397333376011766324375614989452712872689446461866279051915212802540970192479579813135181267636076643119021731685275410109484944014779001331732890531160127176011906916076551363586018617312018677998686329055994588489607049389466732554225427138901875513688373784175852342424892536859058926477937469156797903421640791859180385573985785884279405432723121104657980122765220490173254907474990660693749540730302886061534390281577738824304738191931217355352479666387778588691098160869134708949640666353502309514463338105494824983848837517939474662833328457318815591444460829234277611442108086580314361989275578633689533178487189077364794819017827449129759934913505484596063052451802751854625664311599489561534118863122958129655872497454468989762231889524106195913476080638326181469496925661648406484572546644406506353425456328532162500196320270020859179141913874479256256155942139372778888883652908566517465672071128634743335302959954468210077455243662281022224325431365785592854359902036689039028847665425930299538243697940302860474452971936872182466902979847681078182552482125948676504215785456082288609879162173506238109783702346964493235639467255728693448043541044530750591119944041150118223797567629442917182919888393745056876295322964425065198037253519937506919330725934742827901253605207950350507167652608148506641684216154020456943902274775180923707272092697659229036245806773731926387925544517713101977125096913271275572608589774909070149155974019647076805151494518440209640871374000771747081040209141450639616106746076991648106239868145077947087732098692664101279375933810733140789944016223225942987793563592874667086938623904403117289846334905829820700145181518554627939685978670001537547072190593318380943962347995917718936804891805952109720243841495686188534058344202802826283998034927658240083305427845259984381562426250359106176194867948042143227784018457533832155509618056057476320686157738255624879454599349916769224393838815131431803399078426965208966586668210432732741591199009151603680967776594028861318492753482709530499102812677010541678675823541304203233632065639865383065242506242170289593656460762121816612669246287675108762622204794897205195704041731140624040083827249693059878421171545409765997437627767781327372264888259117169430879649737419255405831315546724936426859120464181117350664801436258453542613296236171059012832639699219788631205872553406132313388997124362478999309829740476122650754487434738913029137950615585683198629200067900256413860479053327162724826488425179956898074808742467914456789692515353876335969874136966379766142201935460199677284587866838566688874927263814097937143381166615563197084642123116201699685499331672119395699924024747383897919595466160396068650092218271956545955835376715447608728901060689659754298889049459809878452269556063019810363841738894465171282457663258774873062571284822618613940816149589759453651681629063636532113009333313187340501349829581141894576949072773223417655480033670825359309193467045632230293052387134459666292376472227706892531734959317658596336316666142517116581939392351962192896975330573714454211025355527882039103392796201781796538924021462177802671802379923961425478031649518928857741365683602541477839728923949299181451000070642022192524757610091794576637897041215682931426135366059074797187290101363649320001015591618378678343222570365594679837728950808445677318053322366820582814200538891718929942657196232165893669324719152883726159385710494094511056725405565762681842510034024861724122382134550182777377532563308772438946358067736236157651874931498799984632451753685188184103353131893010893071663354195854590388575714001649741189525109697485376967870355458408156978713194619585800382359525216679877982390992443119493521936995366650693329035084213611937206007605477244814458908610424215737402552186397557422571107622352285488069305868923940157874036156173462861959842183408765569553514448285712902502569561595330269608337526159356321601560869453898566339570253760090651323740712701692725351280987999282464431990004098538702788620108278937165002669150867937367821104977521348072460717347893053733020771885625849505913263256736700945479512169717455492497562912122999120798091017916058578237638499333078928546124632837566251080564830676841476168703982302766337094470489247395015835934610739703198961799748330299464419214965564514828480978997748071042430713070543442820927998454666859969052438773808594611926006644186997998226239099951089553998792772914741591924966112377294701301083022821351107090456098162582260223419920494214354952134908789109439625844943234061893211039207433834258799433497194788158034295888570501670518563759786614255611613608983162977088682767186340196929053404847818053497088518796971448824512672483918834905386113104787106251436276888268279074333059200306072735883021174427532362556877100404171988243905356237945895109738051932210906390252835003536577863034584768727554507110860716614079262193452547051332434085654486044476589632703052549061346430621144569935815565791806448290125615869731478531766822978150981766299274107622515810639574394813010948219602308816013108961685337838016237928144020934649911078411825081291519285439497989492643709610931133117345123775036210845788198742800424442192044365328051614268757938825429438140901390033439801416180962589509496860617752234906652756626499909243595535114227102518624134631123815007191252482084639181721910479222428504709121339853456848742627683961377076013751507413386248186943753215347739366842339141612482769432376712913104580609239278812439971897451943587809833607862039560441518339889312922287631750539206894812325467744653094985707444816819889725283784942850704616502354555427146299889395369470698551356595245991038229974092994940233959406749597171667249676029716698958037487682841522771111491328895507159902403923087956713119272883259942452849418386174629190475982443029318495503970767997483561952913553020828531097581216572816296684127113792671403400856451360608932927800788387483377299257293869894501683084651039129622682412110804120872311318293120898320657807432608234925811749565878302797824878696790276988555455727439266878968405226000881670514665336133015116686628473635822554188962648994422072005005269195058645286299971509802148210923574554272295589825061704692012997276118651703911667476235386857659017494529267981109500315373752368142996080619107981994715003630938976969787091345554951191674263206167833939768077259017773534438597201122732930909338637360722683298371887807553190991369019540694158754640535627526923902044554395450300773231702695176133873988970848318933890608867169565007899818752650263133825744168319891237813663176627220589104096218196455720188272772094361178017561548200113102550226802243253419350603595874353963921157850970855228522138484877630209279472758283873803851362057854397558442864193684810369671771621858853257398069912073342550630034132410426094246096540718993319270420456510001526324816933485139820357415920736377693527012038216613189220011470979559487912410220478861528469937387113435992872553368429712941870195188706306613399966613384462475558611021735421834827005856740250871210032380360449789366391887350675974211937482668024214973588879722124666429886015582118014085381384729575506492360244556182845686113086813945732842330733786661244314592820971037116179781924131464387533848101699060342434699466775698838025636401407636755637290622678804460983239285928046986184629150559549109157001429169243770370154272438188988029508803203879867419786688995389157047481515161579475119249970870584342886654875610181841397842882092751218790761738852655614917480096496757169858602054891959649972519934071805572710611232002007396568213989138490258407753984316269275507582967170790092205708855590564056167781078921481940814525352433489124764502037753130968514698512441565885957633278894848781025804161133462541073525258848434754070390672396548648292543035025103481177456298031736586407164536889987943472179349411394570495313543008421048349436068059458062196132238392603286726684100180695249271142201569012065550977935215019825369817228223960765153785600290230414562338932641894853572646609483195897607253951280612118885574430977320851997937183483598409016048511078166584394093576952586903145238142572901694482394738724384190801634825456941397773620865537297585036952737177146590446189138705768594436843472984614417019496593965895224643616491476675976922700306841039118520547120465968686226043045639282405983910286073490531941534071676388832314674278131420253556481789121867852060308228548478500225709266949834278799849631201338470806459131047471011271866252042283659251708319706919807799963837485877691504680939170325565689438593791593048719479670839893925308734033014893913299148925566568115853872771927279649731611270925619574040849836752977850157837481170509874810478409335151302283227551181192674805062678846310257875435565167445889613206312948482459197316481348150715008422825329319844784371995713105981408097477248209772434932162775898884840200834199468300329650776776639679528591791035420231867199034936246283693413767408162129694122202478032090064698397171566672946311786876572510409510560159694463144251488245321389342903366858433731580990258010951736431557791749507522483618373432503425841659806879579685036266795494784263438231896550066993634497148506318103357366525854164203842868881327677523502395422149927052328187136211660240194911432086710405717434585743796188642888721611751226547654803502711508525575810760367216411448006531883112832796177699892936112744898178609360014531947897115416499988679112626335569413945248105783450680199683883090404550440512152957658515507277491551985237325045347287181176114066141802259820453042874833567641703325571163139776974450375395040960330187605551416757502947195318440446381692839111013525086959034918446595664477708623655197989604140148522845691260692159071052751916537768348019466169936664222368211062632948952816780576039745501839661894141943000975754311404403223602159087337914379116139534399562604493787126852952296775812868474360503781457979140577126051028319392504838140959485732648744531203762196660429845334513309072603265908382701095171096730930540082672746316607526083949354522581548866798353161881857784177485057582855944643934316028117541847735618977235460533066977017196416236223474537850486590189793745660680311367351258198150561565769054437095929406394756080389803493337762036704929626565460659850956810784346668149991308377359285951890171183183293230207116286175719006747059520557280351953476658249106088664581456089096968560588398381501547006637513673710100986629840161483796162844649145136522020952949482606756993640255291263651182290150643519022000290026562728917790094430571902344849028483707326782037224173234935847843962879784849261888424487253740800827045238534755798265516327161757791510390734355856674421506966594992152686590047869836740377937450778360409702826581002029503748822448884609886670935847436882409317510318796801937959104757021336503155769184683804708598899198480575171516542009696640909725332675332662413681839500603661049534603323123362928188593742087250950966910263323535333841643366918435343467371483877691166323628056556634222531526185581187110648902462643851834978260168020566315818260077375602401740800837285862127872182228997724451934571537850658350122418449754816439431654161493507511647577756793566546216212693714493598919204937320989752501325919556091875838035548034958630998151356854847915700554584753520908026553763872183416919230187840364375790465679668059555675537119424903633908336000655748447587499827141185442009189336360032341939446088049290203741921849998745590295761121552046380314727458750729754235972150288103692451673121298936316298774344145164276279787813877366233340241120351908986703620823929745866450447355478229993387221099014648911398722005514253356677989037850495489274167382206160357365249782926170710606694524642701486383185453641401519077380729594927682168044839142292688705929606786490845198094247422492227435549691784459832775012076363028044237796518881100610378461701055506817685998228091525174527683076956651365905717124437819125255666360818104219027242403960247019572901960829568980986319865375493896786119079976770221182284669038112500725039116966172355453696189490854925770076948517144777848156972472330741897841363984034089402178158295537420616691356686830521774386462813064507270537473478540654460007345360138386033975474013632588177848519118301619689060847019835939308211523443203221534276196574777416856162267881336215427772246550095783661589784757785735491946978955546605913860621702088020758308025785844377305050739359089648188354077734245881354921437342142936599475830622408611978653239445462119646415632014371391075575554553874502220571363196004884178988564113644767612155227662290173910066826529031452203661690330314688806273070346640055441568244708977083067606700881861385875202311857576648603890614208263364923098654620769313875748290805180048007960503463875952267278325167545056430652365476980362994967476995625956974499567363526308497723593521129697640621287658953808854518229831503848044094344368645185598147518083459620291285004816205397667661708263679519598110869316218848849497945693382525328868031186349035311326641430273961289915659385742288930473970804282906792459975633084001077842483803320004064763967510487398822050246529434654306450408859090744405542859750109107102537084702202992105688742074664982111139335419140142223609418591228119798089572337918751467720942410794687902835553112336100592839223549026075677272646644781826087850224499293678078410065234911972346324764322436213066474949266602024442231642222591572178708581430915973655573710051598896887087824953704444630306248732296710093308989471571715883639595241497575867884166735598555397672042969439232586731926180147772408853425049774680822332490894955227354432422086673256344030311437225435798226403995533771629479024506103513931258263944232144283603079853155696023131208917066972800563946349168665675494432634222692738584757231783108814825907222956770556584320943699849517745714946578684754703855414127729409935675859025774526198146326607999289466640613056954917037151026463962257436573377736221089064358171046086203198216182153541893059852819081240342317188587264337896561912350029216635124384225117720367528733070299589646654584193429792218407471040759142707556174521294941912066666799074090055494654526535440793171408817443582108175903631179196592162259890430851446599741867929700046855852334329963242755147788006842488086145130495722334770940233251151626049650875958095311420549587590499753835275592234660178999783874834196664111244958206176775658353354534391896487268359892974144390588264305789866265525326857154484198729061350722630103850664048270059245867119547986486994004177922159495480277140594436873991125120375786053975611582733170793238004590349710307142527425368813991254665409085088645459908153294809460518615434673969408662966611210026605060131155761036394019011208594666344841168643147766451319523761284961264596045097663695878435462046947958642934200492451323539342439269444437124059181523682930258278017923990348165068415523010905551079870469582180892147101165051554038979603877510231956162665990347283300421266109793696397646790232078434150750201474333557506439256930216123821929477930566142158970409782157710938015274029814597270085443637410037215157059979170283729349323023679564153988519205742384960796008587737922143799130341098669847522077335854447386540671526865439031776493318474053794348645188985325164303323813764989125392802921732620041003887164016698672027033745058092319313106204297070156952482180180592412801017367091510354731726866887257472979821153777416266695341586943635837260663228188730019461958832586600393947529478289191638105545950543086421765567547248251570145225008182641260715694264279848780567213515774594015255310527782502228901991461916521488300101779986113188943195786548714002461020174247932778042940487208383203231577017939596356108525576282121099793860939931506825929162111088364576611427368120692716043277337269313424002049951037333292968942055802713877327443880090413607246838532259454369925403294911326034162715159898231916510170464177289499758180913247415178280434417572718357046744563218552504986964518833476550842647653349248723774480602036886702608205211255819333154648245343712422235760789810097293246011556455234869811814067827466155817620423696175170237334567400970362629803226198850118988435711965967992834253353371946267631524618471493189036818497402144056983649943089015210130799360163223554857229419785326479388434609166569140439162338323164572825407737755713696533864299554642747700987673113329602300230447810035125056041519892361517444475777186354697996413125693267034117380896178315879942166045209153612069050662265398718073954885476964933990642820942295484400837822303925017611759485982534747029232108505026703140074710114878637188490944392649181704068760481652816999398812011727304303927406146799209844830214810526335314679244052536088140686468242711357564479230794846912392027891455441127153686179269508508745513438834733544476118344932108136977617241619412260965264850724910144911126638686757915949400848404469805152473330109675276500329878031511784026548499593387579580115473230692464786182529433895841080415043267367949774301386176086094917239749728128183292515988667948321473774571348409551894407823581823073043366553841127215310106851472774385240151172668259041793120038547716817941589616910627466867357000680037696241005386156080019340746768476305963599187745585470235555013269332100057657776063560753854448541971787840254034894276395791725648318876056091276522628855299366112853748754388968367002318481702376371145470568072439660145238418428476901161756342844417013619942762451339652258658444648658150973037596943626012046387035706375968177732024162330425333002325237104215351241357150233502633234361800131719800201599516413723877409609601720905057599364812282211460197148519419424479835207656223867439891834062131299203030272654604084293186875426767833471093988711183386199113635855596448277659878658488775505513323172674221145723889174427866816926581101513641974688107090294175015364733389823833089354253862940014398945721481159380534176973748004816120935489115184017184436907161094357537916409015281468712104378077086662563516922677263036525518674975751333180846575426982986184635796199731474377449744468381420559806212412858304353816408903877002024039320026976444598406162097732975822876955891866835006161179966668966204549985244863031286161435333237699047413740837907996089544137995734693517994997938850264618967826991012773092920495695409170635585804607104922892127411938603237406874616478279038073784871600984488453688443173669038723300183851632149116893947657032316044294825956451089159682376881746899836872079857010032464310108507763119166243260627271074590574898792673292753797021113655115730728565009879579150241506832525606808500441150182699847136875501300637742105418790843918204449538174045321836650413954497803206842622423904027144103187854803312856055475215850668649522658330625742483163072185230341847509401107427929004075292267858282953567834298341233233808851835183696720449784761995889631905600509341569186571892712619046840229562669567569892734251693884832328093041729658221387171114555673486998514985494435042768439746656154969167734628980773412048933314481491664931294169695837762099288817213058808438458728016260349595253870991047946669686492749087802710901210219599506160160794565893451844463598766385645333229353832518134724745868586816383869899497169003304559874301535874089415397601071965108120469130023450274207616746849464627056243436005431428829700237412291685696602184742121841615930332646891646669888455742707721777736771133123671627524770208344390815917155274421846439679151871352559882057180465940105171837901622841551875856563564564136562892068075948544024762985440067354261390375792408628608829227443873959998812494164391626302182883737754739330050599478612290894537285629605952048732806018285756607847825131085970191451499721598537660426970455883794879173911530581533678979232627509542872524107673311008676514482573639582379637165793602401412921157634672307394492570181667194580318464212274821220851483575189754251258791993880727076959701307935470132827041248487266966283980705773908541007323922173251775024317837217041914036255160798227201886826429493625971430717710671294752744111390135115754762939190210960330652543607963312435958606514199526889459248996697711352140980233326630712091832690540748910147132053490856475612289941672936536005527280574295384312915116005103877714876124379804235448227694514002390347807099963557286281724568347634690103486508650767971599093301401304011148533025666843653821256903643353471568946683615072000794395206771146479341381094508887126036933290395508624479578977122330217178358018850315436058094297790974018522178106317158729846154029251518843360626812843737330187337538278745588618339086015847110085000978608332801804333286974688461908247873270198440874587689176236728594976836673541061504518801250588589721893506505665052060972639162540687398645068060358924572658249586460687697592528857445641684315245501400923901782256742773456678128312638431345731174418499210193386733823808564700502073003511390942528942422817280659443851790693808355888349641977157824269615781680610186256108310753725584081058137066878297359810810100223401344184899947645502577888152794109955038143672768414166581157348055677164953117904343771684163786415806305062137921322371772733777704141329818392824985305713019735375984700795183502161274088689033269911752624760466134988535803669184384871940946367095585365254542401901442706412108504423295255775322864455669591091931314244239312242378627204568109445248977970510831499057651221813898894062931993137817985681367423165990992915545925260777373428046358613088726008240325353787308178969593617423305476736454330378123061296547774529181565149870109762612858563297167388390902309010296241214811153901303013535785073611933480832181218159441200686822292102758969864040542353366373739744350253708158363792759039448785169903580707692039942756905610278076481752236097616695976744357322458977938006109564630005221217546857925988741991901215112350040939813997056459527136320363149429964164617439834426539784060495052127266199091458862622977855118183877377703226124693491140317207210915572698474713130265337984903628627035605317951936217664850924297021924222596492374125555747880410179942071260644003822137393226592502047580755211195195371834446047568343840073664722813929203086572405218782565483480809940067619939806002234322149576860259731208270181799992978471122366842438433494025586905559450158664700330232280160765831494435874012976633538206217823832657919094809257245472825352419857506110208884362323201492889762655882151015501683830772577913594685728151905726193901816791719982835303244708844346324510615447786293654218706274532170418229034411904970498193837152369393446534730961285827316217794307575378480226848173203188673895272048418935434715764058430284072883876126149830459842567005956146268170456522410551574825315529515484033384229581082309610826608363035372632453340574115074177509301724212520686929079554222567858869302570226720039869223417405517509153998985847347295577074765768737288282831826654088087630722849063229377732459882239260752497956555920410716696769155512166959663998360931634427012955107158538821249440782580782517218019491821246336722106923834895022164311688696774393882430319724461120270291477628031900100024783215401921424694133040285824567131659516062349765389675372220096504338479179837054459538342706074342039470456625315396112196440719820558013148867336703786794825299702048642128551305597193271757275150946612363157545724707498886273705005857017647314325845002720580429716625940313909200837128003083327970216083463977341512368357239819423814689165254170955936335227601540529293852425165879748674100498741673848294430432954517745339087745669413903915640958511840524969663288495734037006749542588960602419252532596071057393109757122860130016577871652531478897193088666737397065616793729135336634606049354876805019669884725829865496098030177313525162686957671364849897527713352896018595792268780348683872231214578356858348169122960592303303428868163784252791620079979181162895888228307798262374324398785570128318301634752026872643205229355515275517566318007036473369090715850360448194802509751667979406623556435266828191394288546705702391467633263881877138567893698532490699426916911392003288139952747230507802417783970380005378911532367448570564108208060569074598013364959856443864444441515163539941148870687325575635011821113426624014940077335662515288987979508165398730198721323328573899064445327867843556425318596330862623066662576691864747225431736470807384676049187762147428385404401143303069394057978238140041989640803248698141091299801883872897525790822801350037589063126232775527449013280471228732016686801324030204698526525723122280036812452478369888480466158764267987606441351936858352908466311612266820367647965533473172803911979076449562462077208484997528594295834555908838774245300577525481650783131915301644015990321745924231371252827785379694691473143488123796588988788748921512594425298756774382374188790901542235514941779390352381594507224802585635277871475274462301685137220650436021764125872918650265766321383604903212133056045570175094925750225182604999376585530184588591081655694755041941476014197854349104845399451666441958658792942942857038658696027948913960460336478812095975104162217377974162545887480248545958774829263349346281819958762273421508349845461398660384070624846789038738190800187109611168131830863281852336289317215990253280136804720014733451732550585828229250932332583553386263045421073426905451483336064856746450650533762474740092238328899399933530791017947073630777351910703421077108620696008028038953589147300906594727834930850406343043312199987811712567568088603075990771621571018849207109858082883315201497281441315265252326855356807049081454496464014057101107456106311855820941348132983938892355723173383434167340594826204089811380260365938869105436859723191636080616643730632847134078920847954484554202345259319098721020389874646714883224116304844637119872603914913278652624694549381417753486790709324407885953518244406159449417839178401052359621750760954364292440127983612942646871484486223698870051155508801155991177245463293490995320205839640227287536307900200545733757142263103697715126459437114643177743835885610529333040638955848413434058125672550699592002611772182548639230096583167416127286074073661395056296002623917973883511283284774441682294184756068212109207617770622404818270097803710069596900963968961430467375307714970075382006445420550900519136576506521320546398708361202362184095273558249868190645155825619534456926699788774095752922012544677259026945315667393522571588983806294924864749312261960510915013969518852768263232138231709908178097647887342018142112693287650603120396447098885783939535482301197158080349292915414613026370755622300497866970269671083283698373187048446814480778491468035299599556759595273516369929598131559415483499828417176374919198171784127650341063028590280765260047539106532784469490588530599142769352546861751222902373517922741491711202216576361268440834143965208159892345627756458542699079906731267782152129882749160209355294722589716036687922740220326620626529356167144849836674456255403625322834896374140413138626688596123133929036672667154605856400522348687496377137490179582007211835601172971187838940253946970674567585906021328304081682029708316641515083238196166506187307705367434301813227165902156603908779602194975215310138018661912435127248544291520075585821129931820092775581081819256471549321933518602649982680983224214910632089182220856744824038965215872532179289236297291463945925587625197483591563801648808987400249047535410096328027164989915389336217389451318622592055584253946845896545693591744671066909548559405536866715729210468548130525525207959816579616149670190954722070285024275241789983269292331862033793086825913329196570620671773851076944727383593406804431060178398429178159213659032129613759141014645597077349459679136531508167231495383656250089450767133212569638475441492948066784497331579252922142077753706036574988894540343776422276678752405580653272955352001263317130110057702715607140607726293678983552417568339440214829103268987785259106654200684799531958668916345585288762605200940146844980774744431676712305945892750206702158762436043474145201620209494077882745039617223016556046317953174769359021771093324666400088943480044292342277729725853145033841931601690780050223249038915336722034714442693794492817488248949827606475338270969628669124883532370058157737558028270391717159581006357207561909220039619828302709340367796967221695154614712799255524332033029936473814060593700925626515883018640095202564986123357355908573156566188258336727063053057183940931455917855178738262179306922687385406803113215967345855812809934532558014248976265454976335456746563915973021967493471504391631316235246651246895051886914625590228100885124766169938484798838851191415165030782097865723573837515068138811365684168277203209583966348537781443504080539473624370504387630070844337154144293193490666896237771886634826782092999277996151518399944323611738944258396256263959856293420841429610389833354047882831387461470505083093664735151141644129905553524972119675949120098667332708619643467361819625938964715513591643338042647415510690422325517252284033290537722300539616004575237490626027313193043116351701451149058204282209668726588210540729021742658555604640641904849991925993312509750825911932378954926770650916193066414471136331765722492947792718151297483438530238956066098443311346584819443901863823886706036682749241995634601457008979074081407686308639812358844562932939341240390347956196471544475672534185842270606577307611979000059594910082618695967698965140754498887288825196891282220397695153816956809862908263332858334456205240303513904732162040013233949127781297955306189932582728670090176186232594240054486816028464979695221443690686844108540874009521902300594189620180695876259032510673295580005826348442471751626540552303383406825280296282681790055754101914883580544326275072317500650076746540671242101118556555087332398985122039156093435126517641000510242696665469498298034248676221693561679614811494098714357398202914938339487598670592232606145872908734650016727986053990799104781772590357434127356468559782711261059036650505268714162174766057565249412228149305357624154428078453132872389231896353024839666980270135998731761140843067913104150284725164185189665316745809921085891451135689070345191393516021335365392163055379092334025083658359222457942687285677295608035001192989741552216260490566879155486900975930497658536649070677312775977035997034832988603767399248575567340985796492324104664860771518611135037924111317885312882058498246263347264532375773300185173579722507470350981715769732221082136339880838792605180680648972383045414335486948183392162241339131862947253792070276054607345980950205248151961457677842839928759233787832221584573145870809600141276696623414645926804636821069185014105519696821187533053866843593617866237857416633171371048701827598978961916857929809712870985880833007690665156058365088170452157916434889899162650953620064432559067863847072959256095201188749581254419669110016480672683882832115236714445302739019560126888009998631914271127266375077186112012577000365318829046430186380517549714826655937940548204970786593479282162471252351738213579923159369008300305926104086352562572943448972444464930943301677737296277722099206555559944348838351698781914471177999426369812522674066784724396942664487542323279952559796129104750616076433831002334295532652708727628277798779257443636532693412924417111378955342520933802978332614139411121256747583138438448061320461699613482175673180846701944417607153985600528995148032619972251492435558589159624548093248994080432322246679620235174193473275934216172365817069903405445704367638585680886072836769064914874927878400836995065851834791079497378795238054650386710682344739454375283197598868171535937277774507997129003095623316687316814094050539867595571775061877984607526431656901560722850272272400186464840020533420062294403840376774035814512924442841630984975086150005136864705705220352393279141229534153650121021815282097518593872172382952143774697167302511886514730026106588070253889698777639498456032008962819605860907413563046533282147719311036947844895003672741898542028869672337817386494904754896942992514592489388244109540342466878796703695839412804867772661884397380892197344556067708094013950194434569896576892278503169944776048450321972281157337105904193833232718820844226562706561260848468736409040266807521846780135055361154658266534627368246957859294592784754924659006847180339253508842678468133591311767545753506814435380356745483544787474654292187981986507199000657100308094163867798476835619126400059643360584232965460018427889583429470706649817829945044331060006912408932957724944157076499532176524192291100150747384190836191538435476739881070938905329248248603812267217086397422040153816046021061941452750833744078054123341705355586145727474426298066756869665248236290798389911914627473006834917177440135071642749218412493044074655462945121150148546455780397104267818538043126671253044551710712180038530931326061755184939021870393953168413623191658645717753518542289414558063162179590648107680965605458554056914860523666093056781706739892271990129128388685727629685865972917799380579720218568844398835347075408169974709949388811599003683821319314502273601883093492704587049787060236081235453027395150749803982603004041837031467701714862593090908592374402312559290515613654374973901095978534331027239834852198666704054633951250564401847387774897942994726140038560582879158196989338674294176013650736365396375625883723279546503240579103928804896785204093638751796929324193329220784770776412484897927262348607826712186311819212877774978807952612355255724606279137933477257303924794044812454719217240104878272171043172728003076953681416995175996338122313325120298770192081987672476832426333985351511681738927953923469887460926970908809204730699264879658882602990818382841600394652102473800209292684512711103994302281701886644270559810771059902893939514114160416379663709378813052663018950311579112822681235564150114289636226710350288000572913653456873808780600027558581618748361165423432759074012241494260013966509444532248784117289066731983934300165848189705136079915592058005917892719205967922054112579165365172494174900290790351668746730252611988221215181583008185584698021417014239570904602881870121739712460880824727851272701679496324953788525226706333004566335114451997354171418490091436466926964841555758122166574918564451214219865921280827536136650115311108199200435829763035717742152065002041694757692582750701825814298554356603948595812376395128993964820135732967838105906822968158641791440149405191751839938693250595582092183983545522233427011816156038522619501363062235931324145049032039407148892216895328833238237582242038292326371071727584693582245357895691785812966087919246362672174732371522452113063410251808892291176792000776457501755814860338770333842376618174274618392558592156892471751277346059956537164453243245340220139283982103465754010020913048056630024023470156396882109116947586547278010380725373536047830948518146676879343895054654741465181516535567662235403923394595669715136543690163153616462401237404699002114740727484866860986591347319270992513978580131685026787877543411692310049900081358239165484320048777674732767252456141318934604447644940292231824425623638809207593657695495066607933615315394820340333603218731929354415137086120338052730378777253827279416500001041983106729564265528635808112089557910745166075585749046406567009472261102621210682580597654216709526887168091786668725793743841563251428479692340583278085447523290501506688744040992069685597881040368618211695593199298368738850011139437737509458440185812385098231494730513661171025344106892969483751234747682700508925744215207661121263072928382763246910885735008610322457779130987664894028499672433863396375439568490097417440935900981139065516745669245118718298682025669453915885945227330079562741177183804570407172618138995927794688956376767379807069671181716160260913783754508541426745797262525174013825468732386264070896487063287229425384307772975675029807169847306200491044487229119764359104630863398671230630616448195959333866008756639476493769176016116556042360297406574960000699722940287078173444098900625248452563437716830782280425915229757506791530867818176160412246902195687239599667758009809633668545119630993497551779456585337928403539006783722379533890142182400914175652399274701562719266442228105338498875114728291292296604891128031254881550058775551437683731743199929305331263150401630870024101225774678042323823703060607110577369882191783706332857039865350832952078650783405903340879548752516917574727872980438410783556367804085597715216037983740100002474538042049864507677686761480850463244828235858705698752706939139596676404414753241031852944110408099115946341804507860793891438624798614804337616763398730915598033652904063149597006071114909143383197483153303763221612219013479442698832422211314463773724925187180696849352276596976306156546004495190904682551114291791961950077540937220950956346716036783527376608174846447611113255040176030996075106824623658221198736877563852259446632656364576426270060469445154747404299883786830399748949098971395453323177931311224415500372076398726498050190688322743639866102190070391087397973866609005755934621622068908723461457435969822543049286365096796428159111194797308261591235755171543352380720112378143370586439562379427014301832723125218729610651814322769698760908147870395207565535225193227468452204851766367761665115522138478412229339892798910360069062523627969632581757256310944621629660242890286052278180178382832611960702619377261618597425140205903355560340445728446973561220976942565766110863195161637044923607088848236218453237806015179898226858686551430456003492738943560411356122258075227669378824016330056503748865534277530809144291737102362568316510195583351162752158432398588834738468168816335415782335335870194479892281697017609253166583212189068288662397272077096350300117825162179533338624168025453511625189037515281380900133703096768624626345560613289394753451262776485340360883308402263203656402472810973540931227066617061345740684075799752867950427496448927584190896144872808900108638836512392699099727222861385486886540995882822942549333899498652641823556006240207192303298542490244725821715608529299130455993833360668266512100837069059096847354516085795381365824088368596964949671350042919081573882339449973274430769334448971654981888230455960765240384943120941294655959272389666185614804885404699893567958597145533713308352380977518012231986102141697244753596296947298406268489825706719162478604019379205781487589464179999643233049872684379165923078784540924514656504515671386081634666824070798490693259133753863734354996958005994196702080988215339362545250585885136185931638882219699121500337326525524525521580588156787612960497566312375805167601269525446744039971896372508423432608075740142344297028440304036132030697525592503730064839014176740140580196872551644119224898658814135504907611470292924268222655412846691908448078503654981806435638072796436486811490228198597361762039397780217156521813851329582508649123770357558820541894957963465709877433960627484779395876775036120790060189760780174669244961551013962633189331137163475779837079761980172733043959075763997843724273074815237111550699526052432585901649424358511480630583293704954147786891425043281809663931026880068468765756438849356849407224579595075819048050117506723315176367152363836861234612204839393330997370972473611671265377653872633120859298440898093117507268512349971214372975282101040915068387574119858491447097797888503069657832920777441955451492788498857452906269537258495711669856492484882711758925790530103912347062791265373373040606578082328606538482847946214705013761431281560172446044051418924985954172485190163834041405870723721190276605257495491092253900355035603575666060772605584434324199614934373357914729192471077497464106849794139519179985092036614179638313023667972475758676226361437831170578287387507780535150339612931182639411133875520449934660139066873756878812715322357512038765567466025685115327981338202857231902311610062836526249111310280619035977647261454225179131277245589219857463433178048538957017628551443547014826285885497864723197767608475619904159915409172124273818916848959457558888289952788281214068189345269102884802161842204882443874092954446326237596533554645064382616749067180688341436453200822718417613985702454177615546181327512974879539394769640001922370456493820462170806382300015879208802075219911724113138234199573228855971257587241338748978756639043851472114312557106131191453976117312813192234053985579978541682197283852822674965337541999938053239070348489181806973014633205142891461214077538611052305310566850442607853589856825663338787527208748979378331912096754696124910621864064360487120442596037760664789442955421724785627101708763072396046462683762138158963424875538023330139835499765639503620700999597244168096632807785053228325095247990087094980377667732319838910939751937647824779581672451922283860147050871064949178422819598787706701063626942966995158980460954961281882278778163886951080536546392324109757018004696699545124225936230417214277211288935535951352224439929919329263752556755134599395885548807058219025313367184088876483415939134582043058522033017800177070284007592645109485946559247871409730962514416528669860426943142764917693336950991621109139646174944348578922060534428692969144402751998011831263354672727095187180259808793318858832702380225790547697464091637228520277052069961979440221407600636680542375898603522990178081961208083874636463932672383203841276276700436119658909903948150485703922626333486018888126540309690544466099145697547751140239009379409450065989685705955699983113260175713141716461366672960915379710404282310159419180700815527121387010255933278084440093999710577305070475769828128136904841706184505114336490799573901592124102188963465533087638996091708682339830639834164673701326713438247423828602636832676107289508331210531546318792017259555630057113532658126907643129254372702622302452749656847524149549866006714854135330372388134836512284957443391672427316121521624325542426909700626361540232810246914034548986797326694368102159560846670268410333921101745383124825435460864905337219267601052380775106359843919540121319677687862090462885121686456906056484193362985922881212851440481533746331115916276172341395916829652024359010718241208260462502053088270549684157744311037034977944526807834171828531555920128399970942739399814569716900345973316600751042092682847170763065862518367486227307298840713638759853093956126051311814736191284775029721570413405458860737416833997854736754590906010238791113513082630374794497153681509331950712350327545666846996291699545696896477637778540671474098843051874620628255917060794810880044503380720572918402837690394847912083719462089214507723703200051624031159131379845567141315480765858857617024974367199943666802239231272294730359894026448999462761388571112730233489503837826756916406513608716232535687957005280473427054008781652695412075936461581388307229230015107855258716423436781920267939941141683175419890542355889408190006780731565334011881373085450698529686118970718811713180777533939570663804571798166668331761507174402130255807897370037346029299588875016357422485088320977061277672435083811191740618153974395041131381976052932976736403987078090351060803202954262280444111552458981194000122222409964212566402213355410226468602727085182682919460612876449886515531229393731946020811054777250870998755765432723582623490342562153677044549125343975914030895093370666910316132402639761499358037909551241841597417336871607664298455264329402821806957565870800336472517184811474886727417979659071158245011453501082621934863097769207840979500617298779044322301169956800980164910243591220662335699214613292420087759917897040548307654914805297632965885352373163969792205668193763035958059450230942082952193572666010242906340736874142454809832646774812733784256900714123860186422813352812333740768593739107833513845588145076482390347201191914971322653621335348143360726379199783091746713166936276050250640445306339053277181115837794878771585058234034668497928733967317832177388008834738026299529097364566122003505980913855863745620896021647841219533111488274439024950145181583910923037009266725957968165153604305946865576954147992797134066939211035583202476087887284173452978711643518597087027302070067720687154347338112515776488849603451239921721024520467008390041286734292026735095307485335865345108175111245892368042743521184849312578031486287670091440953838511029933652661696027522648218630436844302169016733220761123573005900011108882201471788676896408472779887248286590644277760490279744960708978061751087336362891432461090219522090704933924644902545342166937476755759921414569238514665706818932406384759506029060121071387869957877887688667033396264265046300845624610742551323203917888432852147038193302626650370982507253924069003041862349079484763023867010753513147028656118630153639244247460755334482414629808796390189379896622145552840393875356023016689748032694014117739795853523011203308442955016736751262396259858381173151475937652383596258140521327877342825850732543681500168221215713115598591546363048652507035559665321584639692604634589252807150316841606712531950752249001947109881748353521750755005365895017489760435395217254387580352556606242129804183362086906253299040753297447561197813780056073807846958777053694091236824381799928669546953611237954323176596330837166010313476660267921505182523774975965025391713989178287781130139916830237705197883837588114115533271011717950961600337061630427946637578638628324117271862893517641099803979438493691298022615633563763171768937174301644951933710968234058520437619527303669628896995095761013680895324358304399726004643223439740741150031311514756055011763608419462317144074969227745798125274613618364446158929118266456230904457437681268752556408298506135954949684962088362059105771499122147325686905546062533680448317331418724237064114866624226042168801011178773770089473597835889418869223131133939767628241101751245499348083238841999314382264979482966391747791041855875799598849210386896243773327969113106047456507255726115479767430273270599911088221861377099279396443765744258500889984402040661283605456463538218347150708551867509268949998118572965103497724011596335761442312302336914836884995117212004125635809267955722082325520733986197701749313211752217936549407619649159338829275384861235012846960192639650988735935131694299123783682153867024453432835492843792701762230350466291315455367535235038089344080709355311308816110850587905985847662962536516548132314547480809512570771854005297407511709180806554743060266305196121892549703153896658228181011855697971605555059662982817578898113372933943951694299373582423548636473510154926271413380949955649982219626185648591454826807731501374735556629704614328068528076426788342758021579595333215919614674323531078711889041057994406231663933680287540021500462951545108525253039387346766588791810131033802150244259276257069560825152176481360791420779160914052434639393118252592437533644368618231506647766479832738866936590179478560513098660456675938068510974142941763352267274707465014866249609750790550726757472473735539294425915827639986644439397411010412030575391306276788461028415583202959902193628604205275359390518961615059909325906248068518738812593603040888600471770608702221934112133182211589796112976138796131905937948856111297704752111015536641165501055175664458004774794488859717035138855236282934739166108343477823241316440726045201359173832579319463899721415611486488775893494862392453051707323798999847753668855499687774610501859206403469364679993628397811700001504476330042464187592225000861000494805089505537478614101095885072079916314569581449129386537171382193312390473177450756702526102045406125190199857302559875290518302198845761288086070533428915642648595736927553080213603270828783259953594704362122596087471517938398250958668007852554062665784156938323118189961897615184043474898635777408825221242357240035383263707056439403886043712914023105871144986345033715874177725327009504902805696494970756939325710059299532177631748852766397308066604021399471238009567552853370042363076083414484817422016156645163534643788314329682994088164751211941191813928149167726949735777767175857558520252393314681178988564958469253392378430111863502583591569867063106244681337680073504070885514311178436363933968326662843270051106650016702503049193477155203182594287091373935542271424277168820389863986665405772088096501344018668412832155611904890499748793546501878707991960212300311858665200162638160068941004812248339686855119914208448192520936680313679001734655260088568661284778282714132726975817557372592266387406834211494783001987144412378348749779703957714823852208317012464488134660814473688929628626319131620252702350908582010452197877736421908870561686355235912811778747667095376478477106131176989864918544095494960093861153107107922688023670091929107464336721109415270045872557655120237178978249798201326059973608559930811307502710755233548386818263290633041985069958861663291915028271810205632649298697391429238304673517989732482540625742190328237020817601646175521417435889718712902858111934496666158464646984643632687854483276742030788978853908652976056009078709574009621787281663012233441259712893594596158410331017250987233963413127137449738790729577297936172374518036332535725690888284653600192719306254257013051635828694414450521503095024308279069550874640057993638619842496220416847115517613875906775901570674182212397050877539859087175275424747798660007587308160690269232162230557129950627539261408420084132917216457133565758153390653482021481378953372697755930220557187539943777185695876941697877333563174073492446430429274478084105715326009807329537857147477758870519591559627929421345757711023818815041817044063632385289853438273939873434231092002814899598748713381748026611407642655561156346861137196897547240522781769175446398820251439323332459600806608315402288539019456699484619965410509291109283998181429023544191618780394551323509958611670933943235908346150986118328689589100932727754921189409642366588566947845899463873821637390652745717569581773225218680098175185805485667235051833135021730647652514353433405201420147216537843935059204077782053586691023695079993335614467520130861791654922801364675417591103661399555359740045075807945894965104335944918175792308949123184295792849570301746939164801175328835068314707325386609943741059908984155716531307496448076629899895157205840236117783698099773957728304563771261721827316518471339459998471015458019287325993675343749919780453834484442331302860074561675839948698547822198243027427866602208494944396283367560053518758950370666530001795258625299548311032942363463139907483569195506551605252684095305658686512472556135262647716103556848166984008363706682574208006944314172067529138098665127587388463331444093465141735114905269639033714486742127300597750561044828237580305862022340904368286048722302705987174184171774092703681234781685860615018851451483880620583645399403936800443606113520114149507894700301501530930469403442942656595281648984143865566622547021043001234065882002152661157997933178058483214170613222158604687676896108277654233645782867037440464396429591722299991081817070171376675109821177083111876650265982618252732825463979192634118596202702275490563570620434813115781111454070989038086194014671594942196509558210910965687817607196062646273080381662491267911729637600850904208397042619575969142113307441883392424982003799039011617532453671579251383009847590415369279714524000826349365385741957603940466344212623229250216819885432248121252570669680992983276881631108555667596300777559670084512947526683381649286597816947977430843478958085807307464037765869031175533410492315423413464332647554969089764524882606741951356689630229497000923428702742587768266028524981834894717490421979243401820271855999980973353872904277527545847819261548102428151717195767799310535586635381009021111888072696816753870315104708135100337888789868271899127814801846475826411310437620300432721279599557143076724277356609568402497994524990490021038700680505834357229504994066284979071708213212469322599751494537899105308450856451849082239887773751663446134964789293371321737674767517895934781927819778239841400501788159269952039203320659101075152362351690870671085305222032874061133778174308216711892540607435516202114505853373886970287748097766678546003885589802951099608251910899651887135220248519039223306099079612786383475884324016429496923414529987113028433605169534679740410726824796675865849316498108241160490793986083351400415067994819990479913415209727511863109323971600590232359443246335324265012039677812318971790336187466037947044236335683674116598453514182497281283884965035268054528916072013041849534853809297311650137421908255144629968211322885009550210343015493371347484484305850600902698262941289127854233733951461403515727854129566469216896604308409210439072558421573137017941057737003299360941355861129791779736819832428636365928058347311646567536404792109107908485575341797550460072271564129010025749006190357068037847161535557479906540669422129356326411785491888414803213034404180963498195577494517853221958260176143366760060752216569025296079607713671956743991757175836966766842886796662373417826281142434709803398784649137302380262164417406952720256491335547732931655153043857570255326211345031962545169732561896423708044177060365419312101451772250864509185388417451659017088210153020111725423164769448306042940079242072192700611872773090150676594130804228444464345094039527438030252897408676809295155979270132304767651596242162431400609229744746203316271337223407904916182472811105363812877754832050503402321136711349074968804569498182017473846836965629752990389712849072836327803275139477891128764684485791945337462513318003329958773824838769234709496640367311656245201439332484997946114404102242490644757890512420549839522584868288747728259041405691258002596229189926361740701062923008223759554275374129278044608263138866112156595701542262608066923498836441363557463508897171256869956536857548319626145192347577907585388663796827784012742952035672646228106398621162317460933401659931068537385171358627557853098254219574388233051166994201690746704518859628160579951093218861552830540322774233275309316265414792568061607951510573817083594621307623089479739417020672490414611396588299570977715484737104539760955754908345910313381775963452564204471099417468267434662623906948301654095574867159651842030232371662179728273715143725069616642514891460900326770766898805380220557760466349934903553573805612911423671781529958812149923211959127608719249397601568350672323280397998010399778623700728124344596799624133866302217225421792813734296654507041662189157880337306286121729959903748616180001242157993476383694916513994794110264490600393978617988885726316049403679839348323736134601854549893079737272777016749177144718415951487240111322456963209768477877694375513875480825040579141278583175942080776326517802721604867161165851196049435181375319101827569247429653540083524671161251184469161135435623954851945406334033805543296564576298955195822850225619173341662945907660194438846855155910928881983160954268604924540052405387764446951018894919824786299928313782191079130061710240472582279185729155151297037943135245437556983017523292875696887535732730300122224032704568576236564852852986602111265820277544308148911019047401364535459585216543801089158685880925527256979894453341250845852014894939940086020720106717146979745278944624548122305569164129080893195279120931416043685990158755961626088223230508163725749447895334545882827057743877174042420445225079261927758165125915194459963892410721559292088966146919602651161492455098427743915434152138184949086983166083815103297693125632759821936062595259706362056965875068021092242542600546371638262078447606473638638258449999116792673335038486562261296847937276682629395192216982144515484070863327267750981510736096708319568254932496694597511241865535511085292038666030111980534357763941702375137879634934006142754232618239477407711630064158660068142151344602367116562378248874809243810225450660982094097463606626961484638950961545766570510835317919089774401388600292795306463318157071712553358188142699254503522204398232545746444362954324997079103616860316417041580458449087687025698264417625567845588361236365161060680160216647343152204588692306983023881758108744285279675400023984680091918331618602207472018053939378480901662587034397102791606199545700246490422061981550970494221597332255373912971452515579800584519347974279285769761088750219094886520320149674813083205613496377273753355556361784792918844985729325355229583832155952946724620856404060755142905533905401825942007388769578288019531381666732350680153645805056376447898801735326695089014096803723432562376803323849539449977987822173186821668298164059162142427666134904379367605848699823254580262325565883467047665807957793423808838341690856970995636922416431906259553392088662495792969799750912934669433962947367158571386322034972166699945581153865180066379213561884221464704181358887916315410821609206968712704558065994429642518719228359512385785329828567536450121323124789191109269491064250346227160920784790898098363273011384016333810061065241426832393891219826712609430772648392713537885658760696522357320941463279255480294555203667079147606562701673774786615036580119118073940543789967437733452112271974930153992429877008146054900354897061317514957360716255957115871201948008179058867220357308510120884630776564028255707667175012337590665567212509634144520181728785774712785710801599280150663727119593477433298597573697503041175885706979550063177182454152170604179123639453683181302608321973684714966732402233841426364307726859745393762650663303586791979943841482760683320339539220245381965113165115738537037937680195933238619006378752181517536335741587276849361752700270579177175765262139684371348780429520162571585109228324464942300417068349932006788851413440097181032199171278534352007782569038203454164382200680972680758402406145599208488309845923263502352672964298623320723509531857074875662966489320743982277947456903985992401058440347393062782353636039321537685183826160153658789628525747232138303020832505628779488266124613836693158150532986215772651721774485546576502974110241062869428437946660218592329808119542451452614830349872984552423749334915900086148085379126620668756698825224854017704987655700440392803639377944966441024106958279849692843249060236361852182587547499243554463557621233780899942613742778864999692932601720517789338800697247934271093799821762063491087830353176378783368720149425505727167064731751064424898145551996958672170856974826370347492517523444169882342731947809116450074705850218136901996468380136812107580108251370492390528784180577311276814109830224623111101471980642905673673718512590064517959884974498303922113929675426939708522658527163506689835448733470868584756068428865638603681418877047395647006631848530138293996295334972925512354483449435932382328476382112665880683861497090102432166375887563582819781755072513862019019461263846187333213679609135997805749666466488970584174635983190828734145961497383863231528892196211997458805067715013254835046483731369098843539886332085370392414887118817368084727295134584417909073974079335153697586617670387017652105185491429908306448936427638759219375850386915961535346678855057131305753568989234054152865957793094445255163216870471889835719870840147468344237009648713900476439249068119343870622247226781042796222328910361594329194564587459315607203271874361861177973766084966488622193366637697916807484548074856701847649831196575146912427269678137313945577601221222223688440303779515220499146003083257283496945717459188281060195575841438061359457987400964988733840292246116827787122711696237470901106971669556874162875338045844172064343761913120139371955190422776076001828884594970010793456876772612462181758505647829437785275584167021665848471529047943376677461777377522908922886721502736728712728156390909795147784723091651383121286169760236858567015048763803574527800429782727876198147563611981527117486321601721119331707817043456452849087600274092930675233717492624639866948129961812579613458643965328342698316353466147869699908329651665656974020081271225482995242782000558484896882709257020047624487287428523706461764553434642488899226584155080698264097131054660774497359466246485281564684869528140890977556662173830119897835459402005153029105743688335314747129645648222085149464518971951332770261233652906937582224856142176252535190319338161371878757264145614481058377815217266497339937848200147461443215012330840356609186580531219082037683486275566733005453898422468002872736534545312280204172787179750202201290294047571406743319796363912511445539320607301046488870943240492801798973742297695480560653940579639301944541969757842454543141960376279740597935803276416840335911616057898201924821695102010390518590208493998674729689138731382507056382423465147340564673226505599898637234053485417711905028109453701780352509597170369053485529246610807491560711349301643014322013683084500523079535474201281846935352193380375635999555831964550464648147862198861908723901885021993381953959041208798212677732007514753444527864416860951049975588722555799687185589323772302470660002045765974951435706368217222685935400109474935133670002156799960838782469525068292998172359009495516485272355162179049663329541751772444259798587901445364602374208068758668659073822543338823806782878306650113656081325741308272194159167038095161934075695626800218936748275396589657274931496726195703636419846422069595198751956042542012663132959059552019184458485009935113974791193931706263684944840986036451924751838013853629692532826256486383063315976469249321524823621623129734541443463942654008993710809925550571322484447923548188069995220385651004749635699995020029964141651381016251667353523006064003927510832288412578965954594533814010854736406412020783302051632778547985104453394880167783337353205518951321660540895413866778593696619946982835211966472444571766447952979484478367833578574078982358518454667897921942195611136347619493202605041439634363875419073892756526260734224362882920747472996664435716169936347895330905303228977073548442598879124156430119673045641597042310099013907151649783051330619200677520121615802936801690716823110121870346393523171135601648324864143093548879861514474358419993137435975615067630386617958278446747267541078516040371059126416531501504358945504771138288074108933261587494439923941659088689053266828154356728134910473883573555267614713391997770899715132813859755634595707815079693355225588613549417902754255687243764141233087879288909626849280629337135822568215483410753023641581120711318031282047095780940167631982304656283559320791245649916636327990129809928139051220282886757775979389079513925484787805609966189549470451965715451769543058700043160370055281286928437488953031973111851754979198833816413011812467701001198778614309236287293448188978734852561609497671882670812095986171556638321671054304492627492882317928548020333533766170225111157164130046292944596179165137239340199045959036244283843428685143128508703426635700903018178123489539738514917194544742297607992240753712514323318623160157941041055543963703632456978704280980074863390822930283260914041624165075669524883760380162615963834398523803875598654502869193225941378474969183425621826922488270778130742394755568258377160651847658733774001854691701024255957993239559424076276822892208075978328752328676706362198653742464930330772075750585874422818186834968647195953316770313565185148989436099118908770710861454811918553916536916304285901073653123864399742332738884118737377097254523583525767290146800676171328129482831555666591814699709210812688361525070379582080892624635240474679461358424157725997416929896107711574153885761942487513332809655858100562265117857457165560542758683239240378077966921332750319623905838441958459365286397916750054535120650812586641796637590930878626186337099677213526455443305997142048556202360684230410205982445683700004877839784590710382434830195769226158958459148370222712342855004281231891982720936821861396819782677267772067553430368530615256828670793153530516770668798692262775576127676692048978633426100940447333414233693307809297011383281281476601789648098604828836979947560617112715577330971642460554011746168041692779311137363904339905472227665970363528755439166533822942930707750994572029290690240338356903632576885334785351736942035753126876517045809983483336401509032470209583400016141652033136632601493040132194123698090531619737766247771235955530579416824263434129796935218884001431280291877286900323699224021888312227281995442083987751582982199563406239833612375739959816613389699113003470704007311197380129089281886671505797876082234154896620674698111337491895210198675828273363244838249245656556061263772967774428520295268712555714429542993926522805733598406077772911642389366895040340207642982643155559184697828129261001287375295517783607644638256292454584347865683208680411329207514457815757962017842227633798528644430818861163799846811689724666101921429358592074247051176148420643165135059547250324033104125606363729409712840354379588666151568767903033941847488088816094716857617251188525651009686636396450411637456065802328350126896131426672594186964654455839172678647582111538254036411963601950414836656964785783729240498600254825326328887902833259598183970002684186623783851379503909757805454522499296137591342137837214709518300861447298066755395529538791703575353698179789797555916462977853140206278040410272923567470085741861670947387652946017231094292405974895236006726514190681946984078846234021395158762479956306272954697056239691161893758779526353511410711002702852330822699272566493000438888032855572589883346678442238756622010306628619828785903302849866052912214465181622157854094673479557952804046718715728452966696201206129232377841938654106826559007185075192677735551723555395119612735205868770325575211980238808915457097472803805441856395734658189744742351060918153851137447041911212313861727284969839232457048741589514556817983616724164281494751468963083174317349278883033323169201036277043634118969939914516624740781129016642226436046740084258907205448815292110186930537019847845428222951688680236087651353955901629968274936182997527813080880348323037067056991153729044454488169487503383410018893722317901014039040983151513584084657918518888729432903897889626465632838572943612975657785134269344208576623738841671538400036220536150721511772337842472373009728823509403923567402057296664352322559648807976346349788299904615539834531908948219255524484597465413611625079935350730970547494445531962390548875377968390756827011576429079027552864486053961718513507525874480512262027781102597463100751606625959455842703868028018543099495652269070448677291647426532964467332943316854492057372829422476352594848586312316201598264687926800148550407650315698445376114496254967465985056568355107708999374390579382047121647316297460071815535990468761180283892190698745158906129725003505992635248316251721839783686989718980215293395449344739857591766865826634855646928452077824132123288169651776897025883973774958154901513552480469291005035137540809606620894645109746875855991014077155465198852922291151374909459958695946667618461118418516772620601640583463872761224926712050910236472661011992024225216865560644044139423379388955636947634854071011183477402756607568780429105853229520857133606676827971185880180695984704852625783722732919294016015365126913849982189867722385608046851834080573596070758253260166990302346137930657115501503838292553921502717747794975280653343660532741200825453588637107138409284128612025204026938842114932136831022065706717349808308141000978797048577699607458141097202617750182002892947871747773855736874983960425829825155742975952359663743362622303568100323856490049286893341645323144714676792902286116321123329786506113175997896987998787463345053068874734156996144878809006028207941466888254414308595695170839726772425215377194416343847075979703973526003769207657322357427141155639532250763523428371366994865634751396198837702243696911048460924103862235231135836916757732381265206629153723412878740770449453618007583837037904319370631849019421654107305671912974149579641719747394741023653101792924525838253630963535527047130959787239199683787282231388110321821713381322064200193026298715964189004737762289666114690508706264028580366721224521281179099828440141109276249851739531851765236072214467975375228936058307956967176417351533065626814221888241779962467872768707092802240776607412457518051927089074304219633919815358134716982503771656905775310561845239809489570565104367706612005165381552333274060194998359015729575636110606996847303129829954059045237665678435343868912763646912467916062619095309807512525162209714136841249912087003057058847006994057067324516115035802124341707234442787487612800133861934198765642442629563471084342470027949877657150227123618173684305914952836753672085206800294985186721310631260822938106595685221956407243062467062231146076677284303363539195953923095302883332951188281490410910168894350974203403116704871236039958151455198762745124909634690343348875523042973922313515100500482175391418934506168876253120413030469500558088074768950316267858843664536458246898479917860572444728632334188050173174243816846276141616142363428085622879001652871778062627035188426117186199811528585716974011265114739576397785978015058052809489268255404507660079596477630898009132704267867149421744975629861255948924291446577130704121591093311230873633758511301688864410854505220089263824597686933953336517245157285909536419180211861074654596831152856827762778178666223228367195276451081469809637713501699359875623263337419847850266196787089219292829593292325355544018955809401908134394936329835798175801642404934050078019766085907362317572702492954861643516794679489629762658610349911705253245800696040478299733017974119337265843284763579989079062751576436089800309700601020622865346738483653529726064388761781353451555294559136198254499687187025262799446855665867011250101998774339421184313037714994154106434540638869537479172416334655903841925465579070582825704847782285379752620737837353542754150932211038379957409175360445259983187372050554993513493569249810160253800068741280023438145710003942403272995378204053246289162863641071449144288371549879952003437109371035037455918558474440847681238623920617505900875989775970214465684594278471938609683791342763202487516129639194914327025351521021345408812337288253909117094605256818353448887193302662548058805037732669598140521857488570183490472729011117705477525460806730207238736507173230358395071565283615370028895855146764613706298910225689679511382131774018037058756496404872096914459190872010411165605468840864307572027355659803378287994278914234512812753922623918034038393173412813377221083400886854972784443487089923180701037417962021157406601117548490262338204958390284026433269680147848744689123703211274753977882685452328703603160885654536795784321062887488467018432975744696115684330907318028468552023045212370130760508301813801915822336032914086600306781185425689087869164711644545619889988891876204953966689982440204831578515879830710291301641575322389354612168650363663808376518754519969398642017932621427428271641356275220354550882547009569404580385715892894369468393345376462241166105174643414301965082166273081908210981772369448125292990973009633952099394858085059559324080879190939340017976316458744677643910522861921428446948046933330917084654598359258142333239280069701469560509499708270724757469475518447567223091501586872775242852892143217844003171837048747222489674231434371887671187564611361365560562219045419220489243443512704291701806971408086710874310654993454771324095245389259495276450571969732312079599996681944931224190080696344697670936629950479437795550148942894668131072298497605864072185660530424081697278133551563401202306243491581994273756396697058016666317010401752432109623826517894559543743334707548901603737982504602499290734500987019911980498159812785492742979708885194076963058164077352840578823521092325891059086427003992841341248124320492481552504918193290439086658965919382292479456776543921852647359804596857835664651479545676943846123751521545302103333326629801902923060609710379964172458850264907421669381168010844421616772606170207324717871150323515284637984159877212952540201829444681204166965441257708350619792888505455890474192297625840739467559983372750418180618558299203966809355913884613937353787610636423884401943350876489833274957668631939413140350138540640855301795079217130229155380579626444630635676248995654224146127353876124600564514057989422772745737675482847205499825555675086793894057638220153355924311833008435635027421786394175750268806591668589370468157334689716413465679419707167444571261031004484527346671718669325185272597751832478704805195314114073097686148460515572517362252783982748687131241146857135511624291908175930396247023064446373940704839002170298756167781573440891179499609986751725966410045704973233839553663778079253327575558206170831049149385628375387588990290005875221958179055206872924891164124684159384471184904994320368047499056223230151070290804882318593158823405077831397639461720632542556470837665219081517881159118036134041107365514140887662419557838741444765062182327447843922745768859859664684961470015932783189282026645120277314548625189069378015788782944040833044393447487067407881926950916028431824241734711889881294289176666194245762675887324215836381045891841226249892308221698975191176818782855999460390921463256879440951136445860467752183626558256247829820355058112298129576153338193620044448792076890905852906469967418138616817763305075371834361373156247408495382941094939730829491784698389541258458343966289271291263355396636604604368778244977691759151623402581184879751085229316268999693435543383896433668181397248134490236379475571719283118316524396520244604706311979574272978559440192934828857480665430699884571290565948046835889662004687749793437491382111451928667948466649561105693036456778480746708387470853321754621263016979848734508356919279627847460004108090822191030496106554887062460589862459275105975756446337691200601052074105870592187104589837289984914632297907389527839793444845483082430282298759415620154286664427347009214893796316457477944532161675946787700222857386398711240954630400948541592077144901142761015388436297406920952676209291165581226620183352046619627015047093814781572618492889851006136591019566497590596793511310540507138719052788108061703839502766865204425849218505942286443537812466711088465477337960406594343276813341685271335069571454928418439643445943745888374479386060161566351319759437578953762683812494126625000888131068470538397106693603156508311115245744711433082034166589770539129587776734829958126623869373760830683176423385935550767502051250808630033567195317729002154370274733658864080379912074467590476203773961179906585681331432661520177944453098450461636436108554684284322685185656606444993798911805898865353585925721951465504602741058178245002141254001986068077259004769332928108895697560457490599118436526885317264861239261736350992935926954466786749701374969123920823728813707979684694669222003340713402218364143245232047100820894249448345769073484271997091305023429802913583092135392818941322545293795244493262815376236357885597409581311093758047611742441124226046674888557860278595912629247738032054898311451314292444668747101172640203020269594957636890522513170120708242093647422277339676233629892662747404978156653120737698111700299921405769627908032730664601571283842967429603392358946516158060220211703640254477512052721166789059635823071047029391631642918376538059339838540674784487070319419013677363140329006264819945285278471599915839943224078826954165439861092340271732831857522713447447258934238818443649393918705626387735829203805493174298246823480953526971893876400891915467835412906190579280951488623340446758226569969605552859542215877467678860615538916525769820704382582588725183504670133883550406809763412903581467904791738286277257307746586823733507765779014943818619075802380697313448908617323033737088886292618113483431343632701499260172518997981941239005615242945539715204338150033875713995656987129355367841089083905149180373503080221536071332242834617308282877154683375212913779001517457067704930473276104061416390263803082967079475450512581525058614868593712882247915349420426354494505354208817140961576317515871880157685309747928530504909846836338670496249175493266229190251452084653635933605218318560731438142215085538330846739774686159299881459658047500491762076342766809470833707253278024945369998943521842588683240133495526550781143567830852254001324331291282787468650063414246897581326616707981186361111539085176510980721257310530119456870706326812411884204736408997535116959336894982286598737667223698584194570739552020306504237596394945486838201213611154394491401484703557869061930648144947569721868449668696365254018285498339325966148263713359570385131348256775399830032007445385312364689011659198035032716621643294212587298338158730609438744872253763083313759215493587117324400607931146025368656149468445002022294650609880936671390137959008128668427459595354211756514445470197952416913942679996987768491588171244137735254857874970750350885733329317138101627651238522757795561435400044045587151681550011441277991336648161352928325073147768187220377409350513581803435490491739761205032756160582528778199143336052368271626474237444377079393036584141792530097644706393306934738010268797938057233544506061903370270244230582787197816037983116367008796322901148953698249780038210614645755336551649360329168885866669115171848602800444505352535320963163395194467686981463600834602214176789221758223260229171835111622645628647076871338326701920046658015829377646600244184744674741981623528440735396982405811710664038330228048189894482713913446565956352428853340740338744446019207737405474389630024137250680187476999827603454357011794655867954663401782346541232948158848874400644535763145016568459409955731135164291654470725732407492743384639403884825465622112421689536630845004816899517716939922496182416894215602931625730956766009447575185544323412142786472047379254150886623660191114613290345620107792066181153161682264828469737506915542867698860407417665138270392267527207561736489853457572479708839687624926717787566424529093859383373062119898868302221789884696718851163160591716754835924683158482346082592427012466755304240568418343062862036873159700297893643881317673167985668066325923836788955726516947482833664835774965903203994846975574107231928618731039718040637230280348478638792227741120522154101535569415242904417708470788167539351780773006007897802138119090538093727377789026713439139371755046531166885721046477385971699737877367535191439100933514129474351802695707738073306942090198559189070406236885320923273132469831759075779146786476794764825503549396968769763076655120882248735357638625930468671856941300953554509869202166194716096470167890871413514814814877272708691094679670097894797039152477445385850928086391995019795973516212781870245696681405711302366455718800827525991962680840971369979167023298356756284248500616191006963726575696749142285220513200293984538868608876627837637943970282092778911823866391157969253097203190113587708830536553318992259879058621688399222413904654562509181215339102751107356689452726595353505609474169332950344041703598901240472970799902800193897483954354404803573261187960842127117555231099324669137135876665233671088226099863719787025136986722712558437785249215049560419254141945694731842712715650570422119561010043771751543869668836613825783752148709990410011069301661829794281401940562303955729585900929692196444963465742777470335511111929697779632356841684674428936845523821745077458721257308014323751746218221839294799283424996612472389219801449463703926927815549377991001778550395814528876326717460579278294903926707866481866155329016126679845050140089803886415911018451752789653058862300116001039674260541174777211035576704553589040185410847570478372977221066164819702390373191191503817715760552838595073033386943573810373419321566382048376521831801791165185267122546234680470152011467220854089575386264421829486774966132067858624448654812059693732952721156681004317142261312096283982539838778342662618395842501837352200714613291004529908868471312592180831531158493885683243539639180722853884988682885075694191594328014671027833710685201078267775987038550066337198838378859982865352694486425757964976147991160499421324572426426958878424579190007998588718784965348181282517880543585686674945105449617230139867215788891614139783776733141878900916438287578404652537496317051217212422134600888089143168294420397724707461088932866918049633994640483272817724121899721331930099691676260442441154259977610439636258912179734322505263279848404241395895397416165249080531460457786909204303786526637847954735749590634753054021020434613005448612985679477456924310441255743847636868452760224628549174216367750458472782693871186782816788011117618503436645758379704359883247941985386919688564230203583120009254101886443764451371056053233855588567354073891067926906959086148194855588837291519176997640851658476493312451314153471442964099413167564018780706288513319811336955039776327908084696712467006438164548784306302348577369404188649462436676472113477077178778128501263843818196612413340497847183277696792130102343626494557529111013185036672882160079320174122087731397240563311058922264247829408192560965529063188214308009745802756060812184837290848124469514813805900995713674572039119885606222694363980096712279461081354617812871175456032994453786326953437603190145713255272715645468228440297015619877451758674029539960262190676050632587829127008695825500411808574609285412042013654562329024377475829730981614110370640997138415518960215453699339530546378138474918023083117968212524884815602338448196045814681463561009687081077208323101780264117648316180927017245015509717277863730251310885457596420660293988147848195116989640345561212189191432889839655797029079860783658843460769337163939087634979912695879775705783109244998120146189046615349204126570314319065696119015730041860257641699452229094727015000046982700928795888677708812012146414633071163202157615860629808841273966225389862168463477579425130803535150041044438720877189124043333543802006413630671074308719686112416718460818646699183024149762569220515186298469302831534850645724464927172239294664390385297023486129801692964128216912517382349741383974323176803648621413884355118981013938184471417291211306851139350627730853117047337689476811947066386937689826984453402016632967596320494421177633054661306930788417919588882914813987909591409550547527603022121714429547507135270812936638846606805695132320010147437028957610735395517688276962766517620669108434300243607771132912730157834842008245347051858644299391498942116195346917214679576319030186649342015660063914601188007173130514837052435310029970391890634057282976334941028866088603554484990791543820431688361521873485501202977693957839257351705408756440251908642313526335239261692677137500202902169026126581558652949314980946354238545158621269719126504583102170426990808444838433484156450339728446164100947505805626383887609373339879863037224362219227374877402553532734623966448790841285803784823861685682767594303537303291241322645444122435220946777054079442656478530325854151961259167148016595208932663962197494608721708789567008411284056822848812367890718381376121171870152354558663159766181252058093513627265083720069717815094029564416747436818240511707982544386557074385537624867069060412658878374214758161605664404964983824082833645831297866964619726240132173599390389018132302369254216832192809535507113000378517613815318613873790422725799988351467982308482267903520400601104631837209468311221064593093618947289573155453737290306189459065556819256788390986606294617857307601252106328426030223301824605103839197048661379925202074703572823837498513554272225508758588406928028450700433847871549992964902869352742633077752381075223817894190792262991979886143870674837827237368275348593693710398932919148727720158514824368225365448044129631566977835410412119339972320538263865241191665432631912746209599043085944592568433611568401597337930207944597851644590284547402159128305440732869284678149225021755282412859564377353105143816264972437823926528902289904290580537886990383450854003937247033689605215191188423809321659347834257080213514807746659404833132969790324680163723888681691183060906286197854772165646560292318488357124591569486760767954847495927127466320492439146552562407770187611752068862662569703345656760765263390297631040134442149800807881907093131927231993414904211398501384701710728471909416220466092679340386193263367162938156221205179951935867256500959986992804201500162451745422102703789237844399396073930740380498680065026594255583923488311678627137016451387742293899409460221283856257478632759583878770367936974924586115475818026399044875226057286262350668164391423433200688122667192813683991970637727206749195446580546283249132847452789478276561536964456078144465232853269524836682532750738181394932679069209452685006997233867436988156231439933200460313204003346353408769928047609451321566110156544959459248174856979253556990819750124767068779347752200420819778878034709821249551474983735622109412702250004587646752267288724615604260995163933332856482204736050017273584532518226262372358050420752096716634420099043548491793391655162080439021992976453680693834279009152325967307016790530710186830380310627998889587623340694787036776043174390750579642048067859258967929969511588173647601969475706145595179930253578052628162442685961102396378783778670438938344829635902878598180009345709732103469650050881836266785688521745041377429050465292155854262639467200074248955176587264454681113991468709533092796923031829682760964920055910586437655193759305620876840404604993783236296619436872473805481690925403659052766704367666712948666787171056889967358238705617748925284554579655869985363969845977974060502019008666155989244583291175331976811780324153724953017978365081378199497760230499864794730483157399981507135407552755455140234271169537158636980394991827771869047550886098849108792659724947684984446143262520593886315906807104941825179540270237272268948802750322840333287909112358899934094424502594319482686156684807165230965025653797437144600066197295819235021917482951222267781492014884158938611508233444326129603431813919547691172796038429448697069974325922936165896669655773965777385213412775813752706819276085279143500862502252520787552272195340209937055946853842373781395270714052534669467296200861851363767485107744805946118388224985047854888085922657124775035354714649375761635109360607677526021210540152398632028877259455090835266442757383916975999053282454076129666870942598658881534269444218163523822229584122335320170890879214421576423469758400507110034880183987649689592323974703564892034619687934169201632048246688233417959830868863044381479247202823390700135482890669605933570121162057558503146213332743655745011789706147367186915374051256883098557631712136319436299734978409313083413354499581687582000006063596587270992709476237813640903802572713752320265693815254981673465318824622837404102792729648219869986334904522043820002588726787741690858364009094780094814947970833879615401021737074013881507205496734409705858125257669991162044544733724851425323931115269313143559369109228036357525633605274115122777382373787815977493741070456919982003386490591757505427704469841207438871748619390428943000798022730453099943653973513607590000329718763592908535526907920218450634121413687618506298043226178779163099445077904465939055294492821086024490420046187307650065149280270780665722175516740105151278360205634111029057370172085823846454590089014267250525695112404658244700606941138812000818850143058689585427710098653337374181944831128654819828586834953697779744497254146841398529255669947063220835349347861418126901896477728238857887609316608440995616827413483650955861023107066798522959306834898940487159173176444486773086130231692417538057620847768488730711753823725950303196751520953362785642492138321533999865530124516517914747437426705635419493389895793344413793118828231925810982621501719371762631855536122379891308097209687430303525417298593946707332283917659220563388185338154955666885584600172985611846064605858111075280191370268428772253789125454975769287383936572326740690069121973462287454812999971184962901537609189947445340117920732690595908341004017038870280120137006829601646765260134620533847706408906170197035318957433743472885202783616682010347797017743859814453735747984804386685955049998733055312281535813949698840517070872263658521403134412032669647407585526227611940183076796361034697652089281755523793390907694342861219325987907829542272238480301384156838525436381252726990383990443346369398931095743984572785217550360681306243876453742693835349351222592513259453002509333462077179407193243520499251519378102338495080105292814577651230565330704279801167913131275035975693672907676399646072926564035885618615505365018478881301767182206496023206090941438193631499504112337627309296194195175747514082436329782935187859203841734532792571116034008868418839489089808497588977742480632761052484329242723956867558609475621362154149449278448436705227255301103404323040925017136157944976655080649953741054566190701141434905032675868219950584092606661271313040676308898312408025763852457057634366460243941734314391128425744669865615542336520536780784100941577205152974232919084744254521565700800765618265487160459913318179234262455953452871797269340005370793510805621352516047122577075415951036073150581811846971881163431851237027415630404178638361815692509122944978545831173678158689499570433585421755829231938230612225291883968062711715953738336231489363447021862189972131776279177775878069377333112107512430307472886911020717620758969257022643728169024341823960602046681568290762910227698101793765318108334303658677256299038124911030670444376104100919685714888250643488639485633827996767477189373426826764788807215305947629325513299481083876955447162051635230345053950383065495007795079690973053128166543807880249853596700637912024386928808064878829562262459839871887177659991635459110502059384134263833789246642367790090744332158999750434058024312386225878396657133639463297521382770974725438890186221768531063558770309729588305802743516235891604608538901421610292731669043240460140637304510874602824191312804300202753538284204033833047881060721385188911219499973368922882593298594015427383367521057181083399879030582020259475973790219756129663539835187782247326316681585571824044189519507750300627739395860042179327964886719508098221501095177235640396556608222443983394967789403153199624096967715127136538889532791772989224653016525534806652275425950095496154220122315299255892051858457858020889555969728245272834717565252097879317516877949779381890032449235141943551027630231816086564826919600083620146861155744314492873249793575436471329560466053719703145807053103268794944471064792794300291623893402019946134753619691996774721286439537179933484674621406925015067345475668690689673074546107740542841628607255204672955892374132874534101038936722832807623384828650757028459355259687593127440847496548676676966484675708242145772214907228400719807827391634881293132321596035300045492091488156805751433582920353705414245457735392760916425535774496281757097614112041067795931976622594859050005794482298218936576135127661007543560943114255467615775657727885071447670157505310191919098914888244695669089963355760422398511686870025180041879179893833347452511098088881712724254585313284423915237708953378694060317600836725597786996609058609388710186944399461284421654643376842202288697277041051781362450365996830407963177714092947170900989340921822899004009043554807338227768689010705211569388642645201728222880094695039385867009708816754246830264837963432575665070000342008515455953784770268315511549389210987201551492566092618850570277693665384337209522697494144758573963727770160575027134413182277195531766254870759920277475469010994738414779649172297904995310104528233659472402318882021404468219249909381741726613553591943250812305481578041203208506478700488571328460317351333785755590410352801353580217458713773692285030765898512451613511465518682987980039274881082194021370748620359082848111305391881394113477594777020004138677395161411829581707505411492613827574129569176137143286126503650859226734189432717413585899409624670100380362825766967494868747547669046553718642150983303391096784230050931649179738878759987845061218625844078306316810140567184830444944871548153633206648523137614624181780695066645115819834225435164589722329649272273789334919750013393637303833611079371082186835096905588025494187384047595465368683569079224070545123773626259834264077501795365865865187088230902494362633345750198272358707471599978287533265509989129134891143227787892033930341977740938385947542763211693788440585524874462251575159668404018384124178611898793718384251565801756075174101867252512281266044010858627142743236780585990398801649930394420140521060715226425579370274959706398581388700989161534424344537661602498430753986450493944912363890175765325882729087748946093944668415028984271051678060393925424850609159625127905158497404747723444488866022864323697522620271492902514076752941783037870092332442735649506369384119399092718338708274344603116508960765241013341428754351581169940319100624792755446439900590576294035336514573073317386132298009108637082602329803851043547458191858155569216385865008118968003849629933888926238625341624615690206331993435116656272686612785878133115032471267519710275560121925932281488466848278581033751800186750833754013430378392091508851204322961680722461732179601062638098937450353792933419798154775801465971332114327613276158924267368959033699849461030662819554918429099496816176552560234799615741300332481560007208323584930436539864828796514608587639551327768569053873194419760362727348932804659768940792371733728252342658922207121068042133394490353828030654514715439621130237248289748380848054001917829656380004948019039227219046321735495086365050870317124330908556459280777532100223580472321454186682784915360472108095107320128025914266740029369742904492470185740033574605943978982612440888720233049894256325637706674963852031394153058681519465550475830164180144529509791005706936504649463436318192551596804006982694499330595264218211334379536884058706727804006972850887626931579624470519560045128575486988682322705131958861566629339891736076949177383239040275318389302671369340301737202620492992830914812120391913027422292848593342398755114110213306389332222315366627656534066320494569026231584183778406080991771720705236945355071213017785394578653702193175073644942279899119058821026822436138320393575543701206611750526617652221079942801738181648623013293254684483782040184418336580687826036397108097322868856084803991332275310235916892188298772533547067579525266210725129052238044121369582320659412629272195012922772122991898222015298971072544403147976095310916988082223550812832378288415600453062018400133075065821574454011607835591310254214896199299788876393597082886368845022124129617408692401472888477780975425434713066949714655690965877802993914539979795344148198157553761499456211690859698193249261948846722497423285247317926929251456561656367403881662960028246464990843031807778642883476179617641297517312408989052482325599433650070630600125311627406066313908006102346466656726333239694733622613089071219589001673218049984307660471137687742530478014291788542401478998231658118983418324275123268114031951254299706560914084266980450174819766350345342024952628947747401111169053546732689290806647546872394635817958320214039674276875142551568487348163336393556116227878690786355897653202091031231171756069801403283689645708468419391414329158754179271861399565125598390186252847331161648680378408558256342327887148061508227721102046566677664894658857043527356052499081545307776353526146331031632175479504989914638654345563500616234423787618425916006230518088283101931667949963651871659502009535414808733502484282820098888957533214810477419381813176456645996539453431715300732998340006618270238135690738048776538255186034009940728781062673414302660459615946494187032214314528705056621719984287936521351283761135224844973417267989089831297786337806727341233461715244381203202101321258079853623226225905751770646009788631818480218238425780677167820679928446592555136665267431477822441963106653606286730842139720459165201331923968702201079398482564330864908411822560171986383078092794611176560830991462048755950086946546514418488423342538822954614139186619090822400878950426242965408792947021834553751260399686109840046708509848799611603704013531696268234833862850588373779362029499906454660082293498824489582166222765953964203962525637064049140212283349264716220570323895318286494681760439091915712857459119049234999007064353228425516065366076198214856702424866541667829330714161371326414034934315588034474538310891763814161589406141268495084208199944775327636047004739530540045844736682732864085109743247967127654407269105580936407457687557462519766283785121384124251939004492670849336996547596540430839957103063876767905196611566487524768755325382463047516583241747134397113028414145413072579414621339443930836876916745910998585839615133909152582440310636250614995666919690866932030222269566700970294458749458526973504193453902187295953397855685892346992739302857078156217122786214846136290414200922173417255033104078576754778379662398450816070662640761007845771696180317966313792787419294779754804121053577595133931622686659113757362232135735067652752154380231394643235392890753484950906902030500221982122310011640588626608496595896708538150805611103316570520271165785433528179300998591123043463995921763636141953769511832916766886329255940987728008476672195264319164473585479600612600636070639714912932027014792411188457605069661173300384984562508210429668306527259293926355599454863410759691861366148085383477851535399871697294436855049378891373829541615127867994950374639269811804981227335982220722745253746675662344534305664044822478850058398693289178109325528471214523769762287018955949957812363835881372437083210131614254304859284058787339865464148314486148899644854869696973524670849438426597494508555020553732758458486489424087870309938581068744071404614442086338119966230655948343756739929278521859358354749238867198074821954938054432909763912775695090711509962625684558644054058070716243899352671164961318988036478577632057542108059502551958306113494902334443265645454226594419997698555717437468478402942440912135169620671744316470198460568088211055589306980082317902094075931208190856567417670266752472716360254616616369311841053308333058132047860816242121766478281099251461546468232752287340812081787522868240006083349146238507121294140624531260691566087097031452683957767188434957302449508122686981552081846474613561556283197040429969193235986615571093769856473360072425478290713237348751340263474401837880185672409539880891731503536190578057978453219954272617270948576968921134098188395629991938205883683390803231550644780419813778920303361421450505087760082643394476902308716212197460865693249539302177909007801362815865845428341571256972489698305040215656155328055262666303082091362294389288207159562122937245387039007511447150068252656598075479441211248071774506933939763331432800152824546484994721608796220256422404018762738805356466631762806258962854761177038418224356143157376670971613768096398854382641607494130632396131096795689176309957945869067689058659275348454032674130310628330330584480815994090080682705792906321462175906854648276195746543080695867019713477164570417645427985567907389332968784685987733792730819252026297778330858895882885098017530196039725158725610394611767414523022577632333852412245812577978074019437577279913473867151555939961688853760363429783048913685242498381691009691966222724942307028029218452606066231972861166487673032671346623455928219070682141823563472009347844284492737161530750877102160520426593764105968768623993933540282950724076795954957836852622519668729425352291159205249660897347632291605545869109812292540733767078612151118812700406917533894134101937215698675224564104462619627547016757847290314049661512500776759340651143636082163259834029936917886525204923713364032524473723349660955030963812762355363199662692111823163398508216461391599034763039742092109067971296342741751656904355981265668253955411446145913849964286239611403805314354532677050444205870508450082436293406719091086544783620375174983790178465448763125797824626214259011481463581911610661277808438491495756929318235988661453073106233680716259921784111727859122509324314489515460817589010525907697774326859288985803467924753556788964660558503852512239327392458677923067696151670404228305188970895089609832721436542457049816488167695327667065104636214857794485941928273460991369843182106519504390155065143167058280962857615127948003546594266355132465882400593190682756317621442019456072336727747475246747339283746524504295786466258501916606133145883366474102947113545756984100492026123782886726560134980727859885741093442838166460547745380435236443508061547614170956334920687583179354488972172087568584763718413525033811805397608474381386414684849372429082637180691005463481681508968443757040395135235456739088745495094362342041758968016557392746869790583609765391927105630013999682242982498605894614437929100855024982488853817122540568905475215935751729962870151391475401146782477380940710648516367118239110665140660794062640589271782834018664201726432583630580262225111495052942442718999066001026802356612439960511900508288838602080918593897372354941929506680965409304755204285949028717531243405104667509035931666405842072892535835272055616543289487094710595621315283449199118679651331251931932289843423876083600267868581643606921564484726600496198187064524658490553023591676381007849162396960334202935726362916578031832435547062099326533599278112910469945787897495782623715948765848904955907475014772379202602763321519458453565444179367559194390185374356769897905931398996004519299537770246262395385799201471009660662297938714049036613494111083794402708619207340219660045677725655189773995153718526421260991684819224153802430883612452625589075452882791120168791156275741941663793250205597646015689685585421905840617594664706303624638570670255307104567433703143512667257846121774850061552662684677401802309986404967158014129360945976208961067232998816807012394054876500139662162974603695729494030588733072240290012924044189001730809203634801919458138470555624197263292649047326473233818242310108447894624099617424647745194561175001765008067736214479087567334789616129565806608723401563337219062914562549358694008350827060948173446589425095519494683867615862350631628474800947010130495100641306591207752539559775006191786948745240838876619663048375925574781661781957420219429947580903969514468162611734751308426155582568292175958167295505832055269179852055428581659606509139702991447117955047463999669124656092613735768364626254485977743779798445618557721191877624669627987011936463338230842867437173829715971971412364800622807802235781246013766981476766387696531409132575384874943596094579664504128868092360106252173903179245685985127711630699390740346949337991825294114550952089953944336937429826434036833095906688918856700445425153247724680865782246934214083475871840191972972509848502608311275619854632191691533172932743919914953697563408565846862067007943356795833551335774348780281087015978782502098918363216754067253986761435333578871481743465644299046188963335625936485810770676149612965237068342094274356839425315689046402345132320547588446037842738253753999596793468566096166091711215099836636912037401783440484073779932447785079695029217094969523866475694657087680985946888370024277802033680018148290469616055413522808101532140894579968619009830549204014620182493062841454087895034989434131457007833732330616562122606875428895008908055456572580897817937017611275054657041250780647507300091102123810460941475544682889074493707419575410055262680544477680342757278477518469969976812643069186027816851117569311147276155715549349161137263638738085891542696279421546051973213126575873867799288411439035177906358771524710561777594809619653007958559172371239734601569573732899226511597242827157695993632960253415823732406943669029377833039781722974458882644172827047917715145344853862046828947234284282125665317508409995922578047844440198459447340407037057430776946509073307814918092739634229716408821847636514756936313640413257504164729949257538851176457154823812691190588548995235123982102399182693896616796520287513446101899980525238984501139303024430260983487770306263112179990204222057637364530323191635788167738153005605591667155065986954507575198967659435416263748986782275517260548226353612295577708891876477510481306002071379673416946827863148553659075886997238395308278542650542842569267054160230367190560253065683223626572968236583013768870682680274165215119029737482674752869818939127104720524070257956838636053861359809894738812385272661006014956221962759167345410377243753730596540485225754549845840107832850028723127638803089790778489864857917431552739597966475345025354478767025022439502440215834152344460684278766799770183061063750177546796148817821595702645200916733004685448497623620899266477600268488057988402741905356210612789430023305190322876135353040660176825098174977682670655821577702038698875341173865908805893956179243820108956710448003864291229015824665583054321230909190873136578506986231285746851664081430515250129882267609524989727532043843462593260356296583735847635885164336492497125344921683846409477895414487204807497572328921822828337780190419143156657711290213322330646677609361204944138846220824620867076639124417497036536366391639173332742199493605946444795218720432571371880907549313429143532880910210288272409128565880604488864966447014794867590086181787984686237194898401745611242701071137061893531195657987870664153043916570698638006588815917632818592420597504464389491231267919047421661978308833012916070959335202090603553421374977472761456895427248931415910804455840370123834259783917795254795937447822602918075057296185355916013320768685382503915444282241715869192823414926148847148759834381998520250921952880311556176106897512884598828552655502315437442912809284157670143109553567994986684090717288609657867466665545336032818165465024683549885441536768599281799969955082198854678924497714203386977420439600185479015779196368240467427079947812994262574604970021629736759956364735242687866370709895799737300818293179144013516305788046295971260840718555584657696497069049666861266560482190076091827104623104970128923068366551571285572909172921223692973438890809027331984870831309787859253070179594914900846269489665211280600759977253581162708348834226003379547612342679563764310106677068107209531492221999386262590173265905947724226373257968800784552196046666990048332317326306321734497839115686727500951927109465924353000200333583810347262300835167812997130884280044184339779094605564851165592721656536576447364010417286432233410863582207629265622281908777336508756053400386167299876725801071659789208442739230891344470793957869237235637639280046306801758710088240100284264209343159034746116553560556825695676993630706022065450486542611271600004903275056127209396069197633226866547200024357001023818923687237374648345198576521477512903001293691062529092012197332260892167374531457626828159568478372443918594590812879252034029908129400979521965620032734219084425016404853281027538699394701796677393656909605224108524968182850149522628384538667701533698380337110851582436999064154479015036814309767895809679660767287696351375611271023588477649407477617979248711818805967001025399155602751469851533982486264908778792505643204349860673288222276177734792879117225501266930032343329324138133004469946172383253560805722296693111381793869166840087569913609855516024135445977928151335321551341153091690024286207057826946163312137366775858742499768972298970697284308962686847560066575680669525908607388634819472469417117362845953671141221449403440708376092991649771864492686643450341033275041811075474794022974748386849519100634501322495918614458187841002379654477829543113302993733980092269907951767366106779495382091188006390176226633468948763598819141115918566165422549703023005795705289257506158739677053576733098496668060011572439889583483330521880176598398372465817684863468344170968705161387927903803630903789413574872905864260407256988452033876020030712713298441791176126281115410534777914107838110176864811284977157315543264405565993798245954536845826334264753577869796738915279905771570071163945584126259579244780442771561457588030632286249498721132360406346728463499272041615345777184456844463914914874927106871012705841194451086270735151364781458041049074308585786327060715917016638046889506402604531051956747350113039644255382846730152186652925447838793202061766815353632470641195897384318138659343450729475786979333004636909122514073482480124792207106198584971384518959733093484411339823016403889332624714760800219528353595007272111628271132958935174969684429699801648543068146913272172718014654769076964032404204033063449169328280647328584491800427870114809781802456061811231200431650786604884251986259948037063155063282351058944432972207811123774415250269363629106133743566291856389016266350797621529577392333836484157465532010483949174880939194789966414405391162563988690262023301270385505712193933836274377930099081156630539163815121100182797796857704467505311026731547993724979300303133166539407486423762986617426251606259896099590036196545321775547646237068402718667306270117141008086980335287024453582776936027993504293344727370221517599263865762144179328922084664979516102802218879971221090912343089874547206183909991133100436104943745810858694735870875829209918551887832376755724341083137583138446493877103881032544203221966311604959557718489175822242596496271520934860101067005792691259595368175989956329967208655029566020121547240377158188885776682478494742751370528922044931267725726275145505617411378918171534500231176457176285779810882746737911787063565731507901333781753606291266862883363465055568975783225963008155385377084131119355020507494099352733717504804450647128491376525676632264997434867872501613543400583233136155767968697685258886609690910336439113635589594091678176692629970582139300443493512227940988729749107236632020118921170338364092049866067335723090359046284717498345346830623656481699960745879765403749477398650050150977762173879571780662666286219278842744001537754700478740270587479966038145050756468073025167352350244407882832228166680843391339660056698766342868672747877423049069373140669908904496369718686638593595151221072620262962945474040132287131317935649685757589810075792034491528413146550165986606948286760174689278654682750980313549181635675098377487419428864846189029579101252183099974411931497215992088226507369461283861696049118976307167584754652908160679564000129613497023930445395445756772715887717933544590071691358811116205171847899620494428548575073198280867285889597500082727459034458210755537027210996616269283489230114861481914064664868138327327485842105158321321253867166003996311952673281957608164782403233318653041369995706297535306644114977577033336962952274819443676538745752358375456703119703127236731346275836785313837387378909469433062533939790481320325762636839602030853754418317883014973826635020371943485100893386625525049609018378617970931824035532973848620580045063483307452572402850448050473379374406036509963126550968813359586590905089712052528413856374126157111832951360284157312238174037139486320680440532378238576650560139982742318126502040087073957803613389205141318364368774604259235443415164399998408251974501686303580914138994597597800191696605320570173449477979967692305070904481067999936676165141495875131414118779375404977421508489873122732865090590022662373596142483106971685312499710391589668159780283943890479454649396727809069519330138424583122993271184312189920792938513447016924637742669908988675390137873864773051369695900979844982235612570474092471452098103347459269792311288062251980526048051973975117103975281836281420328197227570850461360068930096135831222353390274428675710866629872036646307906230035070968182047888985007234059757518624146600906315919357899406249549784599134148837071514212358409411744610167060048619128154483165576341154491568845282245207243133458950507037160100103689483653184579859979460310612771687677920953038759780994538984979704090564861870883636301253675930468155530530679299224526807656722993032243014476286365432333751552908656107953474083933021072457492845953125280741524078037000694690441906723829927640158674467956492116758579211793992206017901669646451992276999928292362603175948631002474731786909408573052367017329641784078054225098749829976781578386944118999540970016150482451936680189909633593261930529740454568082753890552124972254204199771493089099153680401702508210819740379175473330855541648303297361197019076338569288526040805682600635457453092193623155784481190111761659739966167019681321536623557026797969620763522298461046892277162843489852987648677513159829256909361845858111545419263214986662251938714852001762216615001198532265088865391322678977543924838214136988742227263114157576618804096691232525137498077128792751391911063605697238433249782890092148869083816037893647648752647331064085560015598514448171763314226616013954689151670840947839246176229638269760689600801430503715939371546906288556775780659654626577689644007230032783026994524457119570360280572014562943374926666540457474579883029674202232345097323518653651118185625596327403868828640973728377588771249531845691755894327446107682876290812310491989427612623493739221083650566864642109607325373448618869633120946134922353332732070729160651314844359755576979268710201432849778315756752135199578848560516787102221709170739604813916635038075908382065268897693131737097378980695380195713914607857204113492332310563624670580192378462544784207226736147123146095162485232850653427178452757717772038216145761387728516796788017665098894516143941050263245971121619511911156580555483423229518912968851148459236377518527964948403822255783616881737705330729228271233811219638068295055290371841010539656642005475426099365692928549675392598822170731730774572500287415163564133786568751820937159792423150528094518393930385364428734728541057229131018574194176258332332519231137878327662917643158886913106643817629442924444967181213536699027449004530938338525725283833895347814355362303864325056254543796411992518538680614051502653268211521654727262264291309700029841904252459165192451631124260489867050895199260533391970352353691140141564095038558710489149106747487631733210082076351943099739609598297927964369216118248167192663083856353135860659177614980686186790675161394130308251137498741330886494663147596801825934095071149532650796418320713073122106225527735247977619347051665479761171547524837936661238450755910868470715350729863839270283806516860061720014923293969428205085819916724847620560260376178471528766657256385087342369941181160419928894730859539806578409345482948666209770449506987424424009347150136460492919732968920229331061787035804422551278143456088705206290793611851845251553727124590048111193017816042748436369068749153505291785908197983119196782449434387262659318955415142128776689705662201970573910421449736691136445252573784625197758236961997143007191004715688574132881959802950061321907144876713851780187377354438916498759612794836171601921492997972019297100177622286455618922652558185150745742361650763078450983192083262349025547772954148593018933753676798068845527867249569035354990153644745631474528040435494552346838135335822890517551347087489626974330127977969653448721173849248888577522671763470387318413476736047220765875414897363936321712268477070476989381961705549434985607790115558792608663142722155679386194750235766476347207672101161380927673938120080027449983581532044870060881465464650168377015924487760679091249064578464908819907912618467280098302001742947052528037635939058865335107934932662655640738106888008780333965300252573173567465615808636994406452134061478527339660290153113928093200099370302435529195030928393223848064327753744996893224834986191418591632466789574314359818013778505476983053652223008251086109603290647520077799324097859006692180380636248461828735300441603614004411423056047424715362326469602539429373454484101943750526029551157138814404065702684205709529039365560428269565353233360680501905799017363560700537823471046411317389698561732778122610015594381732636397540313822842139493178226243156126870273046111985032752112197858837674946881053370676649776340052639018534859226660211377055273439240920792714456027514402181409653047199579737159358456476158552087643188668296167458318259095857372345967084881553784067789025589592170122590814399816332590297115221619389876627660536373031576524389135496346881055710351951981959543747271752128017601781532026657155054606792164251040933741887049242521893651923244976353278312890646728565089207705727304934329053610944535526580573509383816628251649673147150380541427984794084307530566724130271355055074451586160771130854068793936063869973676843662623337622583897329960891336435133855378859462854849688906410532855684684040225383253211895350020628242353804866039503283708390093393824871768730375220064197192531168384918104496101162256224150511239583742010316802615489230334848038135096673135234377642390859518072248934702668137645230786962663874577610580081803141125686387966946954382035545639147063845497495918026631249827363979593248953338336438540252914881546807251333770340134026597522297001390983184335768815624463390487664781982596136058755691065212613623388252392031122655840401179911368327234840390910721376953681945052845167582865427265857718882440321158223250295154999189183013383363656071218084584761874029178763716798777645024354445371574497065298196801834242727742910619175254422203616552936604989457883603676042245867430741532917742749595781472781545182550486795489503690203342119045520630050864937019708916410594748042761995498527426045127294349095506023936216676532212302621070219354100416595417934360121743108154379492782513238731627469539833985244866425725440289302643354147305935635778147647215557534623168697406311082195437158635390025631282345938091205543338913643611633411306906362834181933710216865540299387652941626452891597532033121059170441402208063977328383456310428068974446770303688461863204069317965902963689031220037627300768502106231909645030983934421155361429713979938810186512542240940295683968700862304836197842819202028846677402249424263215878379223838540619252607017378350072260771546243689351239756095551742178020060847204069787713434499596472478785792687501475052278541336103116767510731585924353148001337373320960464234074605881345844638274674122629758893916271966282693526125758503452790750022826222356128632971062172891918110711927515713830343371546074896171889276949425694332631547375755354034112436946298849911778963819087098581508575195880618865435542898023561806015790722057763432123465773945294992629225645639729920722800364720648228166466746123170656926596299638075478182149253705654815094530638436374082914808814446497988413077647177574288422181004747337354832477157616421773339425117222985486976672525927481455282276579401505810852323496686651316123441703495832430963346185081637694583827604223125607786815634799842569059732846460550252081797326529518507770045480399672189776218423825500399076626130837062777748347886718839387438681479522072957572484236672065697651164580669137481457569716168054143550435999106439048796955854300588210382199907066778686259819344625487691815204937797394672355544040371946382422952337735051296542580909271788457392169669422966462354237145776015798051522948007076024140205849807537572254790274631222181786965115778197832232676991923476429902275541999227754621626264709391891868589550631133909836233601601874525102029537666385981175176555200379417274750857734741543532928640699607352936615699598593854838568014180709570531630042217197380144747148785203084707396874317335499684562373588453549873407700684823219591209326124430271194603827760685898827417329322813703911618017765151815380169325341203643268365728431606561842136026332123473037396718011939643106774444924461792652570036554478360463822270647759143696960866109546094636192404147213712416673052319513827814140539089758506576958839713866544725572433120285501877301365354513152153752882403103213307277147423154851940829941520014074599826976271960567176306945214695103205949191327195475862800745744751305995707803627835753296748833916822705721756040796058816951689475740209061000794699113985530872054911467274571178282043539638180723902299237834336847568628142867025674926519115923553435939044555539507953053418503953086880230530270930403268684818236468414133762752289470593169376356567321502398609834144011648496832795958161705966065033469165479189759190414350685981973405279591897472639367320565947632809900260063345403036806823408887064124090573853902601810918117021402358770833583916751622093382071149304893288980189553300486613420234410211268783566211303224070203861828492196293994984008574632222540355902662496006710912966585788953548988188654517082947012665081823151969691900986845133965702282952899624173452807217222253152537997535033543794226819335343481028451569913402941501134833597303349412277229771714452179846205393254973894494458180976974555394917567204172934953440532844891659512601420946276168089258615751378621661138032828802442452837098147033989410871634210438756802525090235510817445904098677268461041895829560451686718086159569759460297367899381257789741407241695690064169398493656346904988045759927199312397453806321026397053068918151569872568845591336905881152619344575649494011254044625089851569764247198564629462659556865389316806264854262535793405402454170441099168941052070525452574859930699178608614381907665274530424575262007575784650392075237964807225393729180342630673931936940170702992704256472923280491811167110502948281918111251704941487687503081744072480626925363588303218824104463979936933273888062745456406396797618542994070667826540019649052169692570501508371669708666435322471282692109476216604720266775302298174724354279456025657338147370798116586351266448039619800161063276849293241923532991335705453306748753508704803656845022771254417148492668556416163240790354654006378794126717623309141434322701785522694102117959410270170936824944490114402139190444880549682539079585879132671089948384287596901887699411086830427635688200510328405856939875303296850489680667113098310944957304464723757880804924612004593596897139061355949891602198017878951205600375459031418367399355957278727691661785221865698095307178579588056401382610953591415320261504947796932288132511701784578545028360777160515487402816030249341108791198614187424853729757193770830326114871314526013809437263609878182386712631035876221072851978506957996815803867449608268864460400914313010021211043625994899018892890731652609638423270272030180297522119872105491603968087172049818089897081871297571249962499078171555366592001709337073659494242099132668186872931997704923312828739822349265323016916088017516369127063304157085656921311745964414980576435093003517225339450511680821542652978634017264002112690666914567425746219108286648752066199339903594143091526636552626364527520173566250044213992774331266633412115128725081802130270827577789308099340069101524015530628137881637086904705853565042152847446463638394748357152516892360607843191006735357743614399708907490563530129787966801187556079245608146807122760743703679572493319964571677999948792323761800342587311343988979543814656786366312980117849212693011683077728578368609466136303401413646847531353436950867607781909328660648904657455506744232546181950517952411520421379668224770453555495270941733412247839586824486184734691015837686856156559012344031628153313223686877463293430969028006126697978633954932817189635166115482359811780369893453914787086370784844995587124851714099040196427062675968683866824787386558012881940404593123140782706319730352132710087155994585435608310769173369344931914101104891973861795978004899028178753666419361478048748833268978430037982508362509243433953729014430888227479364624869043662290878810695644149421795398338823882253632915784637445303774755015162977673551869272354060757152757285504464489679113939275916177280541756038862704589740311893584556375044130080952608506807912796225782204702403362190570495381804478295413160750744448282575080475214352859738003985165575671322189864027909404595044826591421185777701123489328369351008149208202030770579922673627326641984416894531252699524483103846685646254105341544218596466918144879420117629365693142933126976529684013897737600920745086645802980399224598837002193438887488124682588885994646654711689420437472906981262066301214980197270245147541386485890607686589021388495096208062858495344368891827969860771358057496647335707479489687038003192138044556238017008436563155839793454197572185717194620209061905345346861250991988161492848822919492119266593333440446291008945648277431393057692456824908651082253766884962670343323589340239835110680730510287335926928538434156259487282288564241711573949962069070973672755322815329928472876355029466632790781961944533020582679474536228703877863462844840134086531401625477667942847456237839891258500973366286303898750766815284341597827985511956362649849900209195584490275609616904089131537850515291414034030378290408383551089806000153825107650727514195805763540373690305649971519787415600887171657167686248766645657175583833454153440467016479494436912558007815177401369233837708811106899026914131304278878017964841957146713324542720709831970040881180101909367939091439464973866611238537307405862958587987881807031463482343212837105512893485779686502120864749905305219715483048236195118696711196794421451285575197714974658711873190646927866848371981062804143316938176352010121312232068265826544271974354389158170532864439757069710034038098473025152750897859784948608420783889374686767147108719535886801528781507550891350187932554857007082071036214212311342891149210678639876424932282509219848161352273961023592016474333315064533623896740274176721707133191815687649694003871367672297545995999974453361487845342577418910591517192312805327806401647153600266307063140923758103772838713355695154750826936611837328055601949558451861254370886402389119902361191162352776794352413471187640609536994312788268392901280962292478100002706323629695741257055939034116241908190475997001478975863341388891046972744403609740145403368868840533133054372376870764740138312977138674494341182685341854972532071740553391050791373491573558008291501008155509317991651595056147534253304818414803611524587733364220150361198918756664510540943036632367933434161629156697031277702579249168307524225106976340120318775903265514033489901470665937241966667403937519134879302450643656417109136770894768456645592561719492615366372282342382626605805808823472144252283782369099726334437679464912791311224454392128511127437334894962727468498895016579448289722864654059123304476476565892809803734257935257114247930868844309146811156985933627109291940580078289268356443823843543071355111712392172181459581710950915593143824674384749158813584693467964514718865723626455092012939972422885871031071001737842312165089515708357312512094719689124077149019594016881972540388877927354129137971696066616217650027076426867939132447631669798937989929225375759034843970208757408468071471205366970398790437780210882861112501820430681173687071771842763529231726312931208875380830356023374384081579558450652049611977503436361308101683082921617272512403319493695679034912710866259615973754552004294232856110400019459428698965952776745619622359611538062842955689227068370180348257760902218820722531727112472350117105510829787173416917702237109550679727928623878192503544259095943416742392615348685842759327992124457274236457502511290728643390287135447063397344537397716912101650878928471098176228095272509980041595268983016108559832042549490404029592133988998681905156402820366279289427517464273189976751763036854157917160725306046150056516448030052406113078145162596540789273662473885506392980689838195128907879449196127289904210850702978411329610567236367486798531449270636999137541811362988497377411860880589801445198642734543140918066587209911032595963509791289063745510851299222433276379099082783710592022253197425319485593645185583907921195068689261932701698686648041148560567696448076091833128196270103927507287796186608713784473504927658910346503230608656025887718287478342689897664891020562745290486642295861438429845473122517800528463470613324096015092105308283627456023683961573325547694912665735949935820359712073454624020874106557627067903348210652507366413764323727664475565047165391124405143782461894117015834926326096397778541805286601197716853939261304574426578131251051344018564321333239636364850678748161486812341159752208393430083803010294977949152338002299272028945050660977279154070903556803744299878624612812658342431430095082399625445567600375586004212560213899715086596859762532205740657427824978558619924615746342060982093035333095164810169699513395696820730756469058879432096995694303225577003209659882082015244925576263361671067598226742563863994520577012631949550271560263691866004887174662241269238594859797368573163489520271562084294111465833313688187993033148172376140569697885121590787761203564143995267786834419397470403420441312653376020596588878125058128149687851257844137691598955861239052576631146286512462828569352155012557807041666934142324733451511956516339065389385643477894024489069332232878887623319623139707899883189452518034877710108293942531659203186093806682728784799883647256723858719522767146775651496760722263896761524596710018311143597811521610465843615435018049743600067015502030185939483407757052667128489567142128913649622608169946579784542132540721061389432238239546088032174121085213517564482736743351634611332217132567813923543503802457534436552841223132520500422255929648612224227967019112756379717002934563124825630033865751393348598869568214943557910555098129244262148158211969480780701555652515250989805891898043972213754041450374643235990531010030459538349024059444023920125273663310665183842789524346403409265602682104710396300980006196731964990435123238053608507024014184272085304063780405548268468844033220933982245661094822593979958880316114915259742590200915343864899057655682360353504957148596894122135050352999260436893448281701931062628571470930755376062772044361072750628417728920467538997934561249699964993424489216978855098513201340387548127849238612814978351241048785717288430082378516077880084929942909221175142358794752342186536376923076023516619418032635615777334393258343811942915805297564502197148821172933098682896123922064062690844641015166168533060009966064282730895774953921131334741193859545644857336898238654963038660467102081903067406924886905656806084294979327948543427686849328438801854892596219618156301133069881145080082408548519048563551791292228129660372022717153006444734557344472150229421552708238142846228624014253623129143134534598956247847967973498818985375799945814307482219525294288214868580514973240750179358048280656866222482473938195727850294097874357921395757878623940063515069863961512142768651290366783379798016508332450750870674141796184048756962385282549392942940615710597512764563731722937883240895348253383018735245116693491378620854250996431031110852183935223596228759398622277260765195008010894145536537754733560910094949832797267806073586094938890178492676873153047625829032284949867916661765666771741644585191971782572298159297664205453675848408904628978915065016938532947172436072118080324676867784419615322940961657554059854694294773281814097333022586830530200121563567954409070734458443901977413143733167830087113774998703907381472057054892369257214940156448934681552169964047485228296453853479625186754080016267127842914078305348095741591625389691803631308725253765312442199900011605986330640853396033545887712582187721553200083329871681484004842592160198612684257721777957555016505559026085919165427291491127154042221817421250318269018870861059510514419743330482830033685034794788337193776796735484556616833409754042413598801208155811332171038997589035150189026861203722373605167947026698259328033023777682373499575608001814635439587236075099045407394715095774122762606398921876524483235409090179887832731731650933600533090762616583533994878948561090961862925551514018767299374678345599727926208591373033903531076880472095288619801266942869196952977471501179090610482758562147820654063656410127486407463710453386326982693991939623161008860642686117662780855978714659137002587562085495592035264294737613021231529871124815947570257320266074398900306579909803333600266189443879694474702842941232499987168464889084481375524708426160013782494731282973668360756076893135826337693436774332331437977445391586349987014469656087639358851503883618741224995635745502228554268830851646775785438533275349209951911034487229653633550148747864778135748597926745048541448724136605587137421776315808429322165775965318551027108375104926953041569989637199982533229997326515893061396523027611553210433710137234739169845226397175322427678944640063158540344801034825940414032872725215442539484743964826835205627279101357562341908718431008449664262941859849283347399499535400093030237821219459415046012205027528045638291766688615618286956726716558922939232934213148470093617798118348865525947862954361574121021952517769432548705774069043389518775496640974753297796980729641920882799392650974016531042885066569393520548003266099898651655395306597088509561990018815361903716286468158266447576952664222788148244736087518042883935513391593703901595278099784984009767670557412516001046171375421804128271601822232518130200573254514041284328014881976027089511662664877748184282256962274967308059326544766681495452050052835742544830858754977906614721512137666283020189147350431699319348829789472182575510828322381911397303136074904612718469746932533368638164895225143579499945775930935249097937506514811318750503075926526317324799624022251002832488673468315342047923107379070641307285541937040268687323590152748093912717226185280132528263060509637141455163337848688364266885866727436265515290689931277615308373838989640370404533203746044066514841298505076370630137989634233230177211618608858814481608482958395916989628662133946906775607587662315468228587061738978845625712662942147061497348718755378630283178921611653353002517520006486041376025067318940242863075283071160472420338815750302284563491542489307391054818910076720104358926277374656284617166668902057271783162714640579940319240666695858155395084206474057676507185035141017882433638429592227323563807923355130194136983859257773621738807415309096193708638567798182867148234376332876728059553394646615294050738483629154859096416864989226219576270673799035404124443693843639474979700100524902117089821355697321178775091791969342042172763663425027897448530003566719007855442673898925432369270193092427204577010585393614403811117101931921167623519332032096479143077565291488409379970439085459972951191081428430301198728419889535705995257576843224892931104213139601550535056031857825817785805918872510742533073253490855639464712410947402318900379419785663175242021981857324127781905460245786543056418446585093236138847437769941091583930760218438570795217442388301738161745201002576145967065241544919766878452501003087462832735674637434218910308230426827091767712184258407524698213897308049235302179517523075513249241780028653841944418293818788535463184426938416137830062696055753444019954066126165057116189912627600660828425884598853603372361331144757556192124395114005874118820852863555377343600449559626476475916286483618188577875546035293368111170663546206403420548335514970173352950933216817102578506696770910788388601865916298545330146142862096017774796448161188823885905245923884622855302141188060078111413775554001460354030283519281553147597436650473424498445638371017940470463460218828941893603379959662551135088660190128204681485917597480775754541179054816817821187257827854515256319530700542341880931155465164877138080788163087153145367425463563776257354097854092930029239449611547307398289904098562564800346422817974215632566693937884853883917164810728603335603279201058951576470633796008199811510381275283281189656168100106753546401988585382257002127962390898902769348220667964449928166134800331129049468246874585880611021414984204560921890000935723894213273710302434258941199378700764458945999780976303450464647157324387364604381493675447778694505128369950036272918391321429876247512556455750053909734826350590401895091471019207570426458990126329653774746954613838380542950413553145762887602260914972586727200239996655613858191569455291964993488076697643249469631008085294827883997450724738206421202703532120883806422208346432358151617722304904493112961846042004593859793837276999500083343617498283841788793512295851414674637590081285318055291396097452102613141627380931506366311305388035809938192850938683904781437044951284544804286588039954159161235660562210220167004654437287812445751710650446178301576770666647836938668267272255495465221937173941880654168081707343920150149115985228824042841243605405343094843027371456566820861200314934691946524368144998148854087133129286839597485335501200196247283187771758469452109768960030465731111440587892528022662001550377902514967058601066353428421247271969379599389646959626066626067601644480567983275831506974711086996295357032486413905531978827301280887419106379900152166584909505867107477357735863023341348984956627803363509668800324375368123759781441135842881662759467860810520071946681471020477819094947512478117041809378856899314425495851275609838358699480320245018695635859949195487444786423127705842332625972259234974272883398176886535385267449734787864823829195939004803526243471858813007296625304131938834088445133667989330750512753419150709549523312841733228587202835128079279554704517362711666293118542852759700424739488895508654167343003333317945682414813420956491308101426708184659359103341287320098739085037179151742018834345931006053387563341530075645681868446548914222233350354600326412833128466610129004924968655545713468164201410599722567351732048628185125008637348042487534693840591132016532509194503179926564586872217632768045911905712764606531967497720430994057065178895295668806535022369991531071081249987730452544577129427431166279526313585988683373898002283831178599290742509323799451486699715019869776279894666166407453282623581156348341610090674763043197996533417026540253166954732776129570330657014213429711472179535754838371643857005421441202241380216666052315324883792059960069775923869125745908099173759250785637296970119072474337313285118010141977825004235544436668725154691998045420102043395313864659451290852234822408762433318724402622955075551512152622982351892521756426217899740393438616822857678680053800308311329157362321642600500857197362622993134862079077108524165703357177993953514908494798542933551673210527155927536138078976985314175283499695503430381170110749604374907415291804394434605223523925129789496353961047084550087541635402617233017262877543659088614531729534311393863821895110615529946060527954387081740413781090075519041070446039049421287724697097322959332477953113016257240851895696065924067875907463264331888693000626416327268685171467645815108492125705904670082938822000918746887304820622567377361394081947386163129521802847709157096112617779294904407519691338710152861248771135315221104999096957396792089576759828046866902057898130460324539682537644863565483051479526576289750710860140263791733181388449330531958543834944542645377611783838274827155366297948261505797782261942641261417538610000803399746983590503881001733224093888346528221093184287959160083440117614141835408573229396716166688471041802250480761027124423654857446360647105813135792729636029764897527115161235527108221831867361509176665482503308739684258543190802861577976089501032345770574995340220471772248295971667815285882266969150396585688274049210277261182050784250507796160956872752151023893537921853331316805003059438418980638155168097658190004490655392028262241221470122239922000838413695066754434679219154617321310626101331790662039863847595433442472607900646534097005197034098609601175960026324264039707173548426701751296831560700103934095604358795656489473899510580801562383990005074568505479291566674332851523012291368653457602606384555904044696346198028220370025342340604460410814623798438389481554554332101110913927009452890276939134137416553936089971871163372007693058568936614773724645466477751150076400075501090671260961509379140655618098078178221426875240555973989525016579821022675090283591245902958762019462781266604958037421306800988646090689545685114171034378704196966924129416299325233362756665150753293064090027358479459853729669129571906672692548955256864563718931740088220856069528446209188367787656376487123977479969244073945658502879369399908536258153885724493182780753753962235944702852607824457446232340838330752383633701240738725033354065832520820410052603616926425651347586276880334477935093815168873920881236344930910280278511490991208362872033272135379192657581055251449599037267283768925654916565383075009774092277275626922147166721844022756342687965231827530603835904407816286917895164984836687711097343621324197108655275137385844063935622217468380268248572515119140476405616954444166694761447237402598058446009285015681913146468006269339642057586089977379864928768185869717030513055395282556861069267115989801261899761070524261255136669560246035119610785814426558639406193081849421210986694550455628628147429469069813768187913033649322352743197463504109339222911971194419179853285314895249686445793937545882633068077982661089031248350938869964997977118173601530292524952747998395112654712739281865613122173993697536352738184186129110332606205852938039506571110983806119235638608191283379158159597036240198333717069696529916864154135214521783618104941818694609197569726596522334322981152514606668540582208064220620977671564787821604641792983755456427986190273337896649320321946514352462173599401703210486349351178739247514127007107460580326661284990646005786247674906790788645508794393398032014083309129915148735603927058793594842117830581548652868970284656805397555921832945318997822093802177187065482973215497177362751150778078289075065814995228513226365156895578271760132115362612057881176238987565188077799081918554161261394290584763017000600815446987712464424780988737713134728867929862029829180881392047616176829008968109114289221822301537090000230954616932410042366362504987544948065985673797460519210304040859582142348360172091886587669500721749343843237556855566214162400186153679961299108003974475767271316205311409746653612455363034815360907624208557945684135397195936472779238616047368742773785896147950488920947057914064782450079930468381671463694738975762221703516433980602197212647986773517524956071775898923637782705156849446799167822613785413378443790593844493423934325808887262533658802344360762531187947374699040075873476739311263633264817172038892303985013897045101687520562228596295489282071379655488223923148564689824577096658271942005943779868558585016816977574270421398918450458768287659891340151791774563922121872731952300960393136618026885942306434236774522872064471239643954984862926064673013371945238390735757749502175677171853642511611315268543171224843845693354190609765880791050778104198525011254338618018824537041419235861863201418779593952164762612850904367692310145682836829447354804763861919381827590765775316112513083364798052265770144426309765550933844343722318169064846432110072547884721805575406125811762285845165898143324427219890000412195072863834844887137300561761997832385495023949856288995217276821633759402291766790608234900412299100339107318368369948233386729927874012452535297595089180003083030919634709028139426638814934500570005909658652331173238070668133452151846179949533977786757136257034055417499363336064988715059925583216526862068262901025440844778993303175215296622988908153044648355075437050697617176048035037782876043178126646573338562594337078842195249818443555972144258328131905922032928006396847128193316880865160045245214068800080517211790249670067456642045590386220650349333703656065350819388740620295411517420631925891787942728923726959787689401222235281689507016509307321275752404686463383167001804934287853809975500961520980272171192668798176013981584432300118944412785357306128152930014998678028852883250351398910545594706960042421028752583584022959884547791471542884492964349086719906944703716708840744734343830776115160245914901439086805076182421578669362105736760084066654889989221108709886103528105260772645406587456978647608688619908188137906997755766506127565114332066648521165129166821000440887795548610171491687904509093543796183603477646253083875348895634082349412481564908172387615016413659516821796869942669349795019543005646203194729793011592605234196699469586899276528925543964978845115023241273615009851136101450634851090763762417167310028995873445354384026361763731873446218444347248422757284916155249391717435173757050345594710342083468711207403967400359876663367811946395640894277174685074600850168133146856342681014464948512896991388934015439864145268962876071068454363555092815419437076774130322384325421422588485055103844209926320763321480096125648031772112198562484372443665630920873418297138049248173642922774584999186898272831764542121773991954615149255182592977433435842866288891224886922016882990148831835230713008683079998598710651048861664169843641373825196679279691445377039349214567590166705870843661905694119025159486847206414457668663644488766319495803553073451955674453160682191525482220893631033023348633065230143438441872624373445726992877155243848519321802594097992321573380513133108763132775052389777432192111952526833881462334245448190925531559075115903659433775754266751374066046052968641415862642996494157568202855013039567017864076628329113512280132990242145451677961306339447247440204099066243701518376575322690389521884490936761276628690898832026571364546790603530709694305256454590572862451222688745528352485029239115085235785140636152175252197147840841616631797258801960995197254996803537671051414003058948233200565755706331799032241516085115611434437988543624727891485916662806365648986701369497590805188410863395810831941526823937666381263988900503713413799392367612891306261455314329343534032041995847631250466324236754659983649551272339810977134726056416987545300752708865720319499364644894321994127139493882257929802302011248136493587942853457375404626676553924818945494039992991266115214436453201577960731673785052503914469593208707656019963696533747902800742848517278671977836176821430110524472412992735125476783645283420172321632113693813721623627574146430682574315003220590147036144222974239930244400604708146742972250560604849989925401222776034194919888339749701181567579199149608320075423160314912372942933587641683780508229500557934616694420820818917515551250832175164502137485466031666093943692761329258983812041927729843362256001005645891221066383050792164410447282726532802531271109549134809117438656446367062526964832025235085392930355717218366936846419337733144337988604520660947802874972597046491702669224791305454662321249511824664715310006313519317567206766445517812245596420477452830488313622095806016230320548665151060530155172636828711689726978569815801657200258713174553822694344083693362250729890857683675118659155197251057927027691571212226404475711267125780981298504420256753968482092093355837075628697193637028563249496564633265653336341564771423318672600296323196013879410340880392962282742381975701429078181565665913020725874461802778786291136369698141777706316385134963088683159320088285926276143556853421760267562982900864102100125858915648006797641789302812142785176582089364450920141805241041981540683024552493620406701662579583237767723486222993845066864281006899520549358100593653963460720027626071291959943682581158636803683398244374901197493078665692444277573858790803956683402303098563729985153943940861097852496249001003033620294947464896481332504339105487716287811857099036687202473625006124162663698191939398265212458502923476087322916825062180106041514886084341236704803186890271289988708610035565757035514578464343673388900518867548103081803581628550617912444850987997461498156823629154001536048070892901321236889648713445612697707569638850771131071842403582612784972190223513302355682945030270633117568997198975092856653617560954927759128438260716301533893833924373842119371240865909596962784420632990459247992244258455828410161206405227674940037282097940473228396301874846471808224840865567316655710328159866033107971321350962722600758823100002515376749936881478533150352632327995338293074108698887798128959464331433808588100195303285904078782515910924669009997418453525585754394330919734864720211145161320803294008713248479295010825893531032784855629232837624044423250879579319336980017508480479858525085705750321784468466687521602138724808765455197273689775322091147083988606384099386363500915758609588264793826697398397676153124696720112382621345736899687783580161477648636525353544345263440248396541480691129951690388845455212864102214580574035959286677708204224501151370519732912681513942877893750479394748482625435677347109593848976994442417235086671052404117858013056576321796878777369466551525887261035350563208496822691875540759923187967252720064161173112713976848152520093480423790080453586573737634613544351404125768845390091808562485334473134186689748630791927358830085211673841134498219183036386818799965583548439076875334106996264782996624490843698549775815540707663076544041393725029103410305948488913849251048675349482499741022205229462135640333155443121095293572188704094652435781501362958713923953062030373560544342137307430008574109322398982680996926666933595083193716442141159235894271392559563663386585867695135589538798504520537071443600754652429200510662131076767383522287249839034740074253159728685505462341369685393807363852997118215782463627929692455080837299953035216018290428040565776849619889853248363852462426554519492137706405775185584060227823264980805638687388146414134442595078043423771666669616476302307876947575510878507248095151398217185300526477593157944244277977166990984275408621801978472245028118234916052958553093050399431514768961359734810310981076699183862202271182617742694733108313455425230175175685376347890553308589221439110462076980078004999318553506222680776093864685368052422286711275137017392864926680000490727762258325815128556943495686912813405539287115354720311841477140091456179214090689231764238287264886011538551897373505157303281111643436030017509405696338078303625101713066574016385839498799998013608071273323085477834548048317739516060886073293848315877994872154252316035198596439013570342642786145161954028198315131696016181761926379350354694586526382861563006962647195465086136323332854078870970062894049056438113963827996802236977401699048022976669023775391765013292953215883627272800244966163621166732183658395808018648358650997689544052408484561362416767425529440569465604745134505293606387643074755810937607506736926772051072716527089192390112100202110824697155259469119571614164382817897793917209316796932412386951360134596634341179419600774993452852562068098869725093050133844387523204521926245976757682191298156860228047358325506110439098989319984426715029366715766468356261318910629784935144552540155022402356627192258571909241070465482406300831192477932536657189719278290651665008472307600518432912840828215914772155798565439196191525532314039264290717829888674401784433302219864998199829541668819557267607331573359919930107556689223725654256401042146317493403837073093713790503317203965603855925275013270157646314381729774459361223220600723420629290421744350898190696340813689919266115346448742233909309415081801336477156112295079828405524747902032705326189582378101202337783507014315665719735342935320891033728800614656235787507121157663733288964359692498489891215850233813704613790123587073302328831348518662337005394070078724785457691240332695195170777648565261454944024201644258375015749996303772353263757629201207848978437728549522942045347753405729720964332471036033739157943090410753968746967860977228796421390734443285389115145472135887895680477564660121658603211500420072142429605239141635761664189980833900558284606802373795997958961636588976755324714486051677247748545197181234477042843184080092955885498061944078442088282841711827460685710517983344447528914243472853953646900409923854420805104721620589490963126049959491929938060547116008575481705055398715993366158158455261667248441042074216861053867761809397854351088803528687387462124090695940073096424568226069584607815770952977575840517430941456301126520536697237054224108545039299792667016671996379539339689434373828826722634857899953669392513404444841018310591665097642027720872317455546421843333312878654499064532418784241509773570465111141207865188693449884017799965765148884453021050183604792832075315577088282666045670772092215806290306917714192018814791189725244596120113750773031789541163218283411085235057206113594385776056612201994501353452004903494689998578176621866003554868001746359619547064923549335084911810691227165256462387175692353831318384955418395406182811907356631894791277991792341283816471410345715323009191491632066890704506902488602808531701922095060700552953579385493708107961552991187720380164856818711255610434634858861304153114568646954159073270568102303504657751122216250671922203876788502572256857928407189027419000845506399863154877263343601196151227553974347569623285354986992098541650295302002967466865089792581046407678178598758923043334597352495763609167616065448616041288276269480749209277422725596631243913506932001839872524613299216493342648772320716605971903385925814986630122047407017779653101064135890850691753353742518333410315125591751594152012386363993447625063081904573409106930108715459062303771588260864014139971311953040324274929450232766426395999562305130062830358300422034546319515667676170946414201981544996355086046563485649389550009088173711932114340330244362698463348010702775704666907225569308586428809404757284016533352655992912181945521836683304400124457813846476687740448322824054565311750603886180888039994401480836393864174581487643459583265471657786208094395540124302528747696798680709501607547753925608808517831836688131121791048109077371399111416396049722590935161542635508175542446513018587473524588051689475839366798453531891141217070288615954388950305823976200704510267667126171102807881870421059584039609963296058070575681667190984744312535047580361586542676297547454194299204975401040754933060566103726862372291313365434662741113615841911042661931199692797748988097546380657903316455220571184147239860198161710579101649604436309188685992980489487723232245715055635794965604909710782120973271140751823528540215948587774826625840192582840730566713542893759309766169315161147956041815557705097144276699573974792676091520451762422473979173124449710718531776461722682683656100002878339264892168319972873622990096927021817069219036572649077216266179373611994245147157271903529812658799221287364934664520962803158462214847223846449375389289692881042518993529547949628282475894554704941456358189141670673689409502147757530043909551424366431309470193616242728876588361508295785401948475512436203339706911418117799228559619877878184052899706834385454382383116123402078705697163118862396764855398495092913717656251445003534765720193292102183315309626436116676055604648839859316870297504079368747254915967138490959450236612506328158716660546503488673807729532709362221621861529902627942607423124928013107808057586144447130414876288659779826357658510162017242312252649871434856532992650409391869021136901865296138061035778841216316401217830938891248086410042611267026665266389278582768156924972648061650573355998880141959601465860372157455015502308765284909165903776969385811929140934498292091247022149895962124824437524702455561572698694421013045267025512379362552158680385300969974375897013878744783375508688661610933902629750946091751260487616982904263396065568401813037156716827479322059601950914224388584473396017388299957331260928067247333351601979904274932535028140877828756555636180381513721970823843782515071884319751736754868867401226383120664439741817605448236211578043643565582140704049647866455873282264508508145639457242697158183611540808719046196048162793357581988654909245551490273130643764625838694608899539394347849256132619961102816692182149712794046496061390249029473007727506174196798777311718437750830249273564229906521899919194256416078088815297666006366300710308911001614421253024047745146098857756077706268793197920809576335336179892400250629827850674457803945071841007197638513488301769848590586727183763706447305670314397988602700377302200362964923870330094447229375836415905446168735688184168985844249093800885795394355367843778590211174266557088870110932562668024276796074908185047984549729025657877707453467099688087278236129084097753702627903230657026991121879876939602072642734359839571757640076311929727369928155399129568998482960011314881095921718875649013255051465856290998498170662183351202136770592181306927880017979115480592856200567267044432898715384574653387619099341541344775774720181547980394120334059431847241778356932766829341640119923005949984054241677133369207835183253037332032666561939978502667699398897970553641781021275550270143068954549033154927418823338353874553231246599922871721316759946365731123750583017915946579861664301623317001220954454573586279989980855462105724304910985846053149467114642840429484190947395549746872802291286019974071035009241831197313571039285724453547825572059616959299173121991349568542491382191156940362621954330101732935424358201176569645907375095752541058192295605482143300079119356180569359683599664694338156883548968098203099435575689171563076143298585691785315125131958716227230493568687456496836781432340014433512289154549842416692806194169871228481993075175329657957437764553162181795485649101447821259300624890150149885248298807621512362927606741954288369344459626033983521159289161463323548474342958061148057699897923046348444834015036736001069125571363943932620876327058034238589783400161473994829858204720428152775687579280051487574906671905003987104273605185929370463868112227098826314875827620426289467118855171171449660608182426681111708509002288021347560729958081428260294838508192249422018017433447553832737503865879185644078118000064677721125766881286432653871674953921848765365987110213343802934501620776152107627967952865326486755808968870892175091416104443005364188839810300102223848351511595327788703923846008402824644453002623728557770920696635880538339332915446753733653529040275661200707357561825396600556715633567754205848688866238269811001315458466983159506348438420733008044628656784790049388845775104732075771296327597053797025936250293567774719452266824347422866174991160750935247433471410081291231975134322109184151948716810212704326071988253466394838926036247037565415538720194979213745900908371913565605439844069886379279300194354285017154736757782354032375754912911060439272658990357295582021085260285803434903072669940303133792935506188429941102927343263050213101964193687253319762978295875112021957656568839456045699661468707520360166042953222617879825971402585309072145322791380127160684914919074588317054537071133623371923397823664918962103552398847912914868539032894104985598645093429576346983526969811810173375330030258035086664137723826440544784320261859976847812974482069824921577835037439225795303952542300391585763339928087196614918964038443202161848876874053897077868013013708100613037098303110046786984948888827878550994389595704133196145212658352359413335981541817771770839904748758740410110503001133806353304622387107879661415350902684369548363345980906235863554036030687050195205428570113172912953720304844256402033431086142129825618896881679934127778683738769378817937535243941611061687401560871065466440758425950944621044394980879401271132818247860529605858226580269201260158665001132639115364492148850928597745542107262664748998555926245967636280478634421347509571079006087432722906746995896330095148662844772522250202422303459945610650271861971432267511401354295436232951650446045949081695049780377699027491731897344752699188568822199851836774473498628614151808229197619380528143809832954284003093021907554737524248768460634888523385218697654926368235268084488511640600185015273774639206327175412731713903124192762209542920467689367290199747054178010445894445050873946311452466191097530416648926027462656613442440920461468931514167028654211234085778817287409781750110688527269384479287365761727509605672508312031118642648416006904892998760686961208586625726543997091614727370607312302064059478943108287071253021878872458060688018266687181247875746900483766337666384645851613163257529868846298557047381586782406890522749586868658932739313401457110739666753407783446294461238618156996266850895053875450819080259823510810247460666273450679490177978971740780648279195783386398619258307023995120406669547326556692041874375248258922121856298942397708704722071735951236624308028513792271906460188647724015917079703932517323207282500949768067278910210184216972408314749441043155867536777042552134063740085963671567975407883939403413631422203553705509910469937249090552489923313380801487851538211908185628256315753008958545590478792773038713195933201269872026703103458723422298735780483916156400566886186950311171944138038657239878972925917355086998419641072165972997426877999513791868982428458948230183087118221664594728598404350763758642200989213168387106687097248712583752110100031730537341295575542892752458607914128529128500689879410185747036602937479486343965272727503543695166366946418784891810780797446036541926334387705506075497937234784243558075437361621405989117863187952968068160264393684771965263286912137983783710282310174213447383588247049627995938774098708972770519467210184364315199831097502740268351763779526693941802926954469472727427559317433088084794047670606640506012196444659078613975233634482660320165663091902430581936458236261276463000624901290127369634584801131129537468860946149745533651707464258152476417321122654572020735655562026809209337876098115217453849902539744680267320622512470861894114004794889448953921183208228624460258699643843391696351138569394697048146456925577589579075729408128016120031760910923188440998297385205906337041626661879207017962342005361196453970140013798026488399556615761452920851695018965729304062156172286016135070641406142849468697472364077167414410428201591238122008797385353115047953529020840131278057695889961214086571253250822016578448171730901389229206094291032269053584011317903716680696691090794532078693068874224253350399378690000536486946236209203324933245331953273039805290788615301325246505163048786444736357941751521584290988717838368546816786454938278774434131573086915063189129705204460727326770981307724751880907687308683967225861094129321685731095017890417909781022234000806962349241943282267291288057470248451909583630741195320551925461367613664972962459693151971440189226074663545472208771352862043373436774646682376102899811520309956561322593739172596252628350921541315746844843694400075494005736626505393084589950322176186496793214788595667049989481400794291505000154104837554179622423120843236373297551481339264554315483800624938373176021570321504056305466637921682625079410428830849362685775405580687657821510076430747087567872323941570456796281361963643196342082721086281852718006005334260435710828680572867134305075186747647822643751280828125959378426877306278911559220958971933406532775950170729186436483634214469809659396976953168752871129066367431993998111212612424362605833389888165420179719541924720991626761835890950243365100599983376255050954262257899951532741610917747238725452137086545775124793753719437559510507856657244536448245985918554136143507541711934892399191247600817514747615012833380143263273898880372231285490390122340534944991032672930356163065487935568466695601063846872386418304661374488406884254154131359054088040281995246067108370361449569810387571221764182163155390173733371179329143748021240376621020388156118524282055328786263634053509769776729216366367062576047754551042597275871017772200000062975160958230517981643877620238859442989284292722999650003461427128738868865550952079816577984296708771457966814128341845655954732545865186018787292002622469450758814388481434379915756166454649458368732801768130524148882214378127636829198641039088298931356326566226761427837214475452102879735145328603571830173023178200605962975054759370597601684219067898913453257339454727896253024051749637948454141533368291125187031521864717148340621683872268895469317594537898286229633738605545610019850384158373958075197958412795527461621555972305283598554367156423318919977584784822408696240093744751413279694110771391934697503081908271409279241477880068192009874368056875521088860793992126257207213789548703791352526182767945806193248248906113090577122022004333215160708508933853067125076351658619178891883373604165464593086403969521380462399631783460991216443786951934703202225991524138282220639708419739932388585786066426566769715426883007058926730987501615809124708521596835828926884051450853740415546319473940141224071180764590008958573559006471279869364615441302446649030351291262747490217771129004950881909626810115111659719812620688731231245115398190545945435880099816399887328313483337407700959205516188701137686313869641741434684900558949819934690486065745733991314536413422965899684446169865722926467295836147502627717500721069887416078513041507059410590117709671433494342349639635513104120180997630405440723279277823893897143202205825274274320262132546081558788967243386863217483709444857957499975202837526123719657183871963722839781370231206404142539179544063728227242852954201033833096951234924176629539705020977319930702563532893964743106380480723672445084035305993584024970454479916186612023908451981949702647266582624205733464010040319221008547733537605353416273197152625056584230815674674217101113482717877196823992526471283154561520188160750044121951644060157630101063531472805662112437971183541689011178201985866365753752982814763555125346943352215746316185806299332666018930531831914552845729829188181435682083316228882998730560465564522827879244464664431703242421503418818648219694421939268829379387657622620055530217484720626668545465096448798874108167302290731371788389173775381791985687154987857875419976013976230556048975017133443684610552457092630065050166491608328382331439787619803996265617601437274715660226765077225533102193669148062750767769045062672539711636931782846479029546295521934163821953818673404480674060134288758304999267411159469376178875232300503740876908828288096200657209928517258832707387491633252684711864336660260528317773934225803967238821799101732729183125689616421523067948913988389101931019846785476006066936889096096468691130797035992629381193305865120869139453507319196776953223918832542635226979137379324716349839043338863157083774263566892701259192827749334192954595734075706944684161208352698914445346078820591904577961849606744729533802486992721969734450594305850902415453549764601878629882811544276505348212069465793862336301631484543494571902312840742731441809539328716511070973181950895912490638779300621172401478748592710734289240229879242017214413953066594131620386281079145317023991708214718183308999142264198980626809637075748098628406212208308880753575708766910801107554072434989648057773093460450349816686822445450527737866127630234804966095340794449989041644291829604355652583320761481547431270321323118183434234620999302621588691725448230525784481761656634859938272843299444501435225710304546681770664177128918999766331721206633072291393630048110197949443520714137592430539951626289267418568195456142110277916186233605408312032171016218716893288208772267415279070489204937326183972186089414891898418478949184007491682334818490853402729881077097630126334664840654534369514641523234536837673593692296641011848728418578275316403362577046806712734723920763552991647445916398489935085187272970662292798868502323823236309397151109925900085095298626509329759413087147353343635067066520722590261562349737004122971242720246982471945202997522291707071410009752481306158561260440594614502411623150121837425281582112874775656785178743253725938493087551756634160557153168911214052865726870771555277167218462215311914665392066115430622184854295778395918754993681830910866136215475710513659090296211376204060340690601553381396378691949683927536788660407631403643238823102121635029823868839156765978404151915920124036218842221575716694773807564113697587682200816893304376916121361535779810192725195114002816596889333270982419416201313352437984417026179136620482764570008695207047264881407140617542391549154279847277387345695511540080637696061888334597797877561116003586809662707941261547887141861078891619807783523343209922814054705388396737768658822487253115744150564740417631765366398991721790053341322181167711994668739822263355255244548757030336703336540857449361804108295419484515475186922075260111340833395680404466044344308467266046496334718437539613520537191706308445158612189204927623966608040785223665559781907662847326272183766961989846271663560612515101899489270140033479858312177265663510585612286433163734980840428222221647917721556827380302772364798789770347822322334599893186272134928040559518894672089188312752102422582670868609353055562935177664878512662650329112485039859344668486740870787906822164497607516579849650863435558095181405430812072100018634570431370843436987623819989650855096796499555363864541684000313889967090718176135780606561977938288409957686056730476892156298442127532962605244202862900813485019167419409126131044690025056573320873220272913083004204197988006875101841579203609348263029001561120245038115939781637929228212552437744455577138945206837014327203380634855883839238060477847719117752748449084948058177199815992180104941326608898391480859353327384548368457458943086251565365320633611648340082189789059502007039013468336863919416889463227624354076262074545005492695453816555548820798051115505344965266574079627461897658045432819671436899517472254752559051496266121841390711696495416299488191552835093475218851617673928981169992453214430560368080768502372322278343560379303558729876219980616302761939246583529186059797227272226018021790315453737678130023116607231902428622056425383206798124655194541879480243377943536759820379334897072633443945638394831662115538750715970982749457978009211783995448323128755480603358716036295220575682177784968780456685744213112712134007768411694112520824112706948850575065003228519639843634731639312978236665928587295315247454773054822987165064766865740384496554652007489912389629504784454018593986846970073391528472600514551107786979890959343903681438059175626175113855009174233903574554514367666748866123757712838801147992281669276717265744480608787056169517152940100634017936539313810697323506724980630366014456736740573370856995281564857753912547814818499991141779623878326810385997414997102314616540527021911657165721815844554640185515642690648228528879194187907605997311857299665766816356086718785073206006978762085682409571897524588750597537597360412768887773642778821675026210566298303823994876678423978868526723240798281801463896328069242927356448915427254825155251795413132632912808772817373173882599654808743648814558718001588605805850556536736255882366437722648310993551341511591369910362814350131541954349105331602626884404388971599337165181549242532291077985893277603723825788845272165074229884538912831482217753287149492857678646437095607444627357633767298357283190799655632345302494403025573183422515803325839534542122860418141957968451600486334395580490762078431375897199480939872246814465192612947136619288159159102963980897287645751318672636512405985004573698167244506275951417943361848718234328220795123559907313488301179982989970998530551075051817181211945428360473221218843841692383809640392365784314942084284237002127728936624084834349315009539741360481519312672097645904979034296411028480344047427965737108056881813775253752684679287004017337093115444203449531535809243016914398555785250456284602821870603763526511369221045186856188888575035803926306925823174526542554359617618726089514939924801239024955245989167192731163816450326999375649617455545661653689865436440662651617531953234710047774490480303078389885898143590498734529772619103728802161866850395460816879283783941949227256411105072388361258887938855754894376537955345591761452228397472181369931216906532085459384412789065876512179038458161581451368029641652331031177795357764533132191707200538711717778488419733139434942810366938224619191233590288842663255510161625993580555141164319474950673722758608010067602396121844087015640291958281864084830448886503946838558954220138336344153170992209746829450577233872812981646932152276173523176120237259141025939351913065965161856657568944359880579145232227340612751147235135765777185659264109126356229019690394053463772570907590680336100366687450489749135015643770792994732270279962242534946711700449686514939142606987821369798789029072262794434003629465028474136963142198263312830336399863615752144831622111691946964294031099081138976658501971198289921621177659269007122196818375250306843999943664443631670147268987783356289327857744036419693692201755967702999874281790357940779069631676303207192575178723665419694025717867686588327923031758810510322771708993431832760740002106438661464708110580459128342254550778919249360132175156620919312043646884729030366458706994359951468448879054797725309303339882850564722145291025939832583912238607106316403949978030707676436247138566828427254254240119476792972990019139308993444634327646421798574887314164394339561959769479260543949641807115219162438911302058935467853105871213117593844103763339347662824937680468974860071849680914895170396084280103213634301527013926913388043242449372245106216342107411258646341773701746858439704237227805591264421955181104314283574023047148698247364630121039235588785959479454815338923372288687999620833018342470861433380278376189259062371506973318904470839086801660594942271418251802306273972235040800212171654503449312502875614389940209857296456203121639436917177860297431122478852287840653644243602836131080423770783423141184457425208305424034054334725596110175933568137838824518612950635938605583883090228849678128184854663622998107370991584192106121675061940157531849556249464738815153480478994705455470218964597712743965840326676390988694778547783149197981900261699038897430502647729579633887197818039884882829581939939218478184197296414569469678267308193559125332734772811158130466240457473898333474404747209783149732900067997611783118373969065114246078365371756340319011922732529510045354271311056923353155968736325574290942691570267400228354077456461340705274657431172858874225259875112378059656941998431291308654562111158742068238150951658771085504418863982188611215708825569121386182905212671417734018189971218778616729329279808887391254510980615576121889944209044735122230458054568249789053136463801540616411866695779000273381645140839697409310879358019525188472909298647408891753355912301059908529501523537676681433457986104252201457034582303089000254887539389938683316382780158098493555254514426788556208792833164332263367551505924426388164084212701490761564656013163408963275108546119502616639054985468211879937196975691968764449906710408710217650948291280231099044775355682355885135853434409530959585069707574511534870771898052978538964710246738252447404442233015880954514087250665143185888295183129670896103600222843390373545882337120637114051249194939470664029055466173899852192428898290554050744340289786890752742018018481784828602092505675672635312925788622832340806997385124079349656108017308870857837884104112101813176874438642181148275308115050101427851473827196832528336158245386027293462138776681245763296461406527491289179749096176643443231342691920153495063350402481528525356065339017343355579553299548244051097703246700962368116080886144245028591146318571573231432306045719112931673337783841591845604329525514896210193409738610118309201190081982388703120996147739416625580929089405621418929201115324212866956747108301766677849893196203858916458513342791401023982329016052028235778604080926545059266806106618377357204154479088576358472880323773343606307707118564441700373342228504764957338064738378833490269292111666883521257292545831015411578126970655592868295299880996960981880942535974877867783149061144238160889038610930010216858763463745585940650480793550177693511424644189249492827793145825481607280998163989120149204466201779207444821023784323002734400741959309912369221085332105031578343810029883408491645308812996226416606200117551329144676425791358027384991055935065598489942228113173978938480675290806085795890830443158177528574930193955693539273814695317948205802853382570401590696592550059822941806433130035222157339670642597027799061355572599713750642337630731214215242782242761984169303489038155494095334827753825421068561761182274414748311909710272170678731121092415157071443989603870155764763081533484529507413823951605212786922613085584359747218764099942021686945104484424140119722595383178505929152887168202342918964195352923395442085079839954783661907029395643112571717867414019893131168285172768757230173041212311075282593098226080346910837548332002800908058238560159768782269722841312575779420009941308426018885954914822192430331125025872179204326765957904614656010774198102266573515790443825822608077925918050635536846306988368928746687755716317219957769997846066865066988752369660809762453667258094365042443684854119582433236271358624719015286992817097583890295261407318298571131602712289266160137994257010567981784628852665306047083649294454319935647284697905033916771092890542900118685694856816068878545073301832830042742135380673655117100812512158719155919645249966360779881393285152941436141304964762578144345418844137105485283421255387118264119187027639989244341404910865925626471956394800635687202349192159394579713355570111910115363705460286963180870735987675672197865804487897952335395988960740591442036723132599428871418244248379761521587283536845047832213693502721122977055369079283661469206498145741353596011220888592501885245702209140739300347292160431085096104334104200623913979874777254409440930176521660235715566471181115046509079402588280881985385028910414611646421223816650742978534493680030222179529127124679274202205701134469728619788378762595819387400224364098918557303674030966505542251398920830955164217936385000116603825552287357498680786280838060097641100668575303978201683375990021132918631204147966929111828347595561877530186240878528118926722411306512172248901388319950717491044521795784085223501604651235577792960850962457273355325227194097094136936625282076458212655931997995579291427291082662570753569379870307726750184675315944775257493210349536433281556108040640798809393791575483516523586027366031552814166921305855066309883976124633263922827119268788524181170697581762132539677312640344646104838042730992895751960189494737242391629744809976862718249905966669873477037091627012265430432084740414176601396345762182092983027001414629211866122295948194663573132809590759022804910680082504596026735602191081437145958990405433137224974402882334541768921888471809169950587604084555175775525063551037139614325903630363867108956154695883732852163974588429119838222662378446409458754596908202272534246292821065774763288906783602374757125102606214179589662526984679324676205773299814674019513452787040312140374544571808671546845769527618312210392683188255153035763989009372392437542885245092856847736835752962456078616652497037438486263980704586756757738073194355546076252736694824771118805160202203047268780978874576997813453596073961126518494668671691095482780969814699136914921740409555029816936813712132086886141971550357708958908136968018057898165441480141753142949622309259677009176746319753980615496055752119480676346338673625901225201677206951827075293017234613389605112448812012674486724249561573378680667094072345402835157604026653216030210687706634678515959757381069759518804554383324649646251241502560948754972169247124602841927917957959073787863420472182322381727917212360370983120810702612368724174398785759927409102774569100235828454948995103072775755110157942967009813319756109812021936991726644324115438318666443672982266925015038990646491403637932213960842759474077296033185524282202571341825145484728294844498431035839238747021497860742115033260244154903100054203566097167539918331165535705462015393889081314601406098422571747802949047276727551140683515663475609350993407104705178122221237336208628403242203740316789530790197015961297370705668672066866042590329511775972357184447231819895450105327100907462513496095289068890207415819534633882759199090463513767556488940903072052465678338884839878581374056735817731401325909669657530787839930224474012439482171581155197780141651601106293869277025756206374844973306449356058722380082534140177329457877823706318780676192818525878475200862617768001510963800671123163913812750757666296392571820004050674082048685580007204607903524078577791663294138782290387138825782260625123645339607827661653247464602868842719097812908077631647237285887967534765361581904307894611932607705187695960345793712914485502455304882448465674987452470820010919126882735499879881268244932933715403647238857564704007764812840627458312445502939060116197607309119197587307272875040903927250338266516751024856098474161130890772088796142862774307807780501145955548970929304421928528464476809196202482930650358789806551642811495939541049072565756986446828223726996524092745181322137594260012014987229808550758783305007728804017802637732723282209066415992664409040403819667107236204599347948213850164138342535343643949127860730903901978240466039882269674166926025019816462150794380706244426689441660148803271389278383377446707694544289521723672532330414688597296143724650988399384334385179965016232022643131082610396409971294270220377789141549710245457762604372076683060461107485234258953269060210320125996488892558662343026877996259756347606105835569756186012176837712152572945735650011812248367990533094110550163120746799818063459211375124830243788653881289505894004843088095791928952173575748919454403834234038963038681207881634894211851923165632104034688365465254084549265614493172891521391955523752344880534259454435074129930328890946358068157554453292050751705713802249894668925830133854035188071633214629052155248240400313840023075149231045458782338122061635474791670180839729842960806496722910758842626526972824348736572157853868280316869453893905553023804412960100563211595504639916883930329119457149398188511904906105869527318362358825150796008315154968734276321349356910191809552142155133933011161528715380380610762117994991241815411400473939853773487903313074938567289646468752022916466354368740382306592733416975136481747369711661691344877951431009710391053163188435907729147068423800552506556717750540509800971338418646982311946096309820095144308775503074106877588546215972969269023572128224568085601022380321761245160968957341457723068718925553196674309265708970571536243919058310444872266413740424420500250967665371176485097399439208603030685873177548825388778261989200939276559428292907871884314464760990266491371970531237061880842621220830192423790425394293475934213173446907248561909924426636868827353622329820238358855726029553866313770497434482505736360781669465110010730917625954368285777353257066436525233954008906232624232145178111557874715495261376907656451083619212002974111109790170901883136686314637041477035946919475264858552095266448852107163447176071966224210219295902547091109602634431723529026461536314614661939260751548439355567188136818533611778285914925001088486988237555872720002962743605627068169754209846235585639745535867274765822534287611024437598803152980976704188953199935691533855827946040839568580666146683840266638454387230408963286739599440328167675579761857055544775994617258989133773003566375027839403897922222870600086405152555778771637340851733624891712484530080264673938994626291304453443596287900378324147796827504118291486928480407781488034961420210006652143950301967716913053724928401511220667721899330336167060991144736250649015856280991946505773517913773693754663891086150419287945444958910702527503865391916643349307515011060510257947019706113116893298874129648842094915969928369603112799433540823455860226789419933969882467866415969648644301875755287617560668934079796864250496932067212672069447632842615937065800661124656382183591022244439651060790695048008545865532186653586585806501369153464891145590246782802226076089886461526379200599755993589337391816399258760039607008785713383348272700688516730102005529761192076395232893396056055076060088944509943137422104529163624575980655672558354521692801670709619873649569538672331739866838752875310523094094285140852428119215903135695342196800593330454853758158430982060196828356747622690213728620373197357118823324612039454141854623930082791257614638503636617401365014542921795097416956578409213207842171869189640348272890483686927317879418393314884486573621001987222668413815940076718771827239456635740443325641719749335439248766794757993004469685562636872267886044008032333201317720078224288272896557868368497628382187832902458577326967428926523005133311658204684469509643114090314130186416008373746123343713019213982916590106788334096532012394455870635707728864518731994661219836097438748434643985342230639619095663836437924700141073421640804737002943212981872964777304318418528374441478849547429670011039676312989301145015310083136646428327004224383199639645112998142284741798160797413740051333421327401355526772398399186998669409298740495690448294381843816086415389817977373485308040634110690071162264025885339544072101678421419966644503081824185705070241664745387994953386821537276063695974054200239404700335949816390198718972568555320705191838495250734363941133684984752391114054998331186383392005115819788295633739924639136938165477471726021940020166840326675407150893726975633197517026656001911333269103772146871323738620246497753877997030785073519343892811109373864939460544511558987621024737062296654294066183418547737578583303433380935779659434235924418680326366079785770860223384127904951223395949434853929069798636361481425016450612486058945991696001163707398062762233144413045946354975294586410643623267720814415411642551708881681291306770760708624840209586536059874751831120978668683821409975323499939005349463189290260022209384034996047172935663608928425669730183242595543156553574653388012791719929415849283136942021020681516434710975339734810803944350164169409120035538114165982472462468368341712147356544134841420541899622697356945059281270096641300408683276492178539848189941323985496158584360722713919073773345489576457534279207708522344418523817336036595937452916885880231397316143356480637475214901930481108161484791704893500321346456989330935054687255407399515148495934062096993997640360262080706865581887755478656076386352290567859605383632820429081825160753345449853630447799692624652411931997124774128065060767577520924039453336095384345790053171827859951077893067168363778440734709150394328856132039131981771253609376324997850207439769299974071580641779540140360872495332233755990499431578007164903962479595978664713709663051377440930649942392055859693962916249515698674020597783610592477722567425284840970537287559711374240232635110821669854316896777527106053541939193030603952958670799959207649427305811612402884015106102343422439363575274934157143799192031424688913583203937631199027362653349681866276482969783767794214137855692651452283745073811889605604372195410403484361357544590003676055932605923050096171286633972101036675452251918397376978372793222163286907649569020772090784403268568144835808133157448886459371731428043487598357677513747189502465749504603617319227220621758038426632003941440117714291115952620438060369841768997246825689188598463898824090124317111255615289843912218109856373651668218698289151938769245260762743161608728529268231668794460850913196597311731970462563123453763691588433608241155230556302606999221484499633777450430733512250691376489248346916034883869479139308840550450578000557917145257662145966447040619361684179531382224511410730364580032360975944586568553119133036657812874147825883329493449483071136373368349770948018047762917742844893833058259091571333897190694433010841747645952729014931086128568079716135353142713327525378198798867312455457106959727679185695937455271814680854316536148744958069209914630890820345454041181266515759586315441869090421749307152668484903630823373196949791370139745379402433447423596156772399571872499313228039813242020770831993943607152601566277007073766458273758992080710147219271684778889357522285180361065117039899166316032491065286202510391035617675387510239899389903897715206239077852279052913572755135188899540134097483062096090622965891264032833459474655659061042165315547074961824720587103182384737872250718623482173150836693766597956229556851189633771846152712340762488387109091044380495958190016870218628015253180419351750250387105418734330981768547710281599976896725383050120527137506351393038464070589557474711282462625484107185006750816334031708752830544396444702996893511883627407374226572458483019719965037378868517529661254660981466915496193866840859362529187883005370206731322704011573529265201353119967598421476512852653150276168954021363432303938246461693491428510989879807129937352863354540974989468372346647264595009469863011344840558017064515369227386610787002280478772500921917612583236255760130859891762154177165349053158330381706657537522642179657440252660331605509020092081256428292093748350684980921787048676178664960268236892866895720348851515100351974840625742199439851909914212027313842700817200699516978671217055194960107026683166604386249497366586111982312156541048660695465026393366024678213647791303921168772539753857485823464621739554664436755454312816811696334924959122071681887883766877759210457268738815337693714002444134826819881859807639352873924904725706674186812036400842607864331187817928740396226311368947064318613764656401521885625679365315353185975992381419452895258750479629951828841098782032000459260023902368890767882238772142177331870198286397564230682435480015639727061234686701941606221679928945035150150370348050827297075250934475804885500689663989284018921358357250218015751552473394296216530740389076239777127620402381795599632221944105078951834262950591558851281027683638020805840268163433555715592481833145617480743780049953042649522771018899930396131009720814179001113997388205082701194376843989472780949813441885281939897465518690828142641289283441756190276860268627822511163033745786474659652109318601129673341939236621833458944813368216364188416394258305090812151146024689971534630243489011379957940917069069358439383723162569497041862647393658173465223615337480510311770351992733891234810247594597497482290073585651360891521843189048153333015806138490694650463023321515862205429621624299749989853700387024228079797532721072733198932650502790902999570841397704900277113520564559590215397206112303305545914086739317539543237376534044881864542980559909067723769781106807420360578468268516468193834583914495249998594142710629131932372668532003452121029478646794837733965760397829984984563930647812974544166463228406775928840341111089210638328447334560867016202425963869907975337574779086316365538219134462716853189364584139129969833919957747584592124050144353748448261619918192926357505639036184027014352928508714921697850871596748663025224035558381658639863857142283377013280997750027198444312672929858790966359531602929148742236559174093979014139944331074984982375849707749171764711840302424730495365498344002539626593867979236155513845176136329825936827347190119859574947929111900202454792880178906595588165935725326499546214478183055480333976154600104116818319310588375496930217513214485317186336636082032403021563000602715690019169256095088146507174791387792205250637521520193050338021868310444169461734265385742986886899047224849344727920345117761033811844511645904331827530905396957157466244129620518030275848752008538578655115945782125469047027995527502539025393512413606958715745719044701613108199510891445651051397187008505125845524871691198019403591701688609936109702685992622109870509695365109350732409373512686313356714786546760905260804710325705748962744656037300090411930239445685619717966782392277444445426575146797925491186618641606293734777306626135961924115715301648109142654890914205450715602404191169790019097186404331137050418254584903374753107160775857202469325591750633686175097352304396036932238434381674803286994155937033454122332781637622783300530969738290687041887273974777455546023637727009521856514047077232145020018569605624895441422568327516878190216741447996125692823179525395999529813154580510948005010206478676204468842003744919026873713969853634908445346608909304968855877180544768281217010012456720302840284787304867809047100103768758411605863096112742268848610217395085494767532755491729560997102587879555760138065428001767430794872486162768658647844390889314151203240316761484044683509643942900176319695839952513301975356418496838374379082585933783076000870234209525140750324335678513028830799077288390494107752327468700020211165845858252487163768399209655457390492630376085480800872880536421881836223486498673020659091001373271313135253942162905387191481903032611592927322460751996523569409404640956078889904602754347431897240293562634679732934142387205043769191769228505342705893127900262539936528043457008001901968097527848545087465557508418921291697280550497488039722882399008767110467416206720640688083950294678282860900623825451783177404251065713582755287691303559865489523344798088064909431811573060053827976453063335411381455588295135035118921335554586275860739075189581144964076007324501403202847724737469571635360104953972889344663919934425738966916927125480501179143698735637632362393006696975634033037202809021505249354012511974742673394335256301090002637146011743935972504855504153597570854263542930395368026907880815010056407344961421590830091673387153299492494600911562438515396612076026438645960987088425675519797994847344657710391707231980441620811529552922717523388055003091951113562147195302155325508442308949803253666261538913181633566039638383616125359368038434097438628230594511055850938088644713552751438588888201476495308314249632313016772626909557524371152350868483719652789169863647898975807178092464032132343715498325095206227471944465131686676536304692478014712342159420954578573781349461661096772049472126365159494569242248307684811166748730640208727189755410566417007880530089364070773600873248580400619084438246109347792250344172282565298944164305951671286114467593385650819567827641992509456287465690196671480858729908355028014255020126657173446222175784280065624702968635053302732479716674003421541997498547762052156242248040884776828767079897779456416150146386988507079725893601914666110760008193410487535956803145584700053324424909320308446048919403621985930788267593183449624411467975170580197208207057652655636636705518681009875074485220383967832120667023444668137016861199453825173409691761121561278668085404603903502347950497636390756911140943019951133312509234519698505884481494426859841292616316605536112439611959871658441912639104947199785445787462242947282087960817873952269874861954788785978418192910067800731882992380356372232656299271159945439897620834106924613669398702101226709501683898441145760176453113162643842594381166824200328980501923895595077979449125312001884912827113863518650283542721076271614560864792169639738645795926926633292828889192388506441395524372233758405447017080727787501183432588185594812703868113352852085117298716186054269689777713568683119482837338577324731181847492334005856024650149662789431707058203162712254882038852466823379452765820905794887423651027558457312369865089001405924713264947510838760255494939208696450562702490516963273879531423263732301300564694050678339313680641651821714658697356679554364002826921399545909055343454079349740780673419097558355538148135358781272729519282546576547466063640096373315214614581585809388212576361437007353139774373682335314526311467611105163704541092344156187896111770780143827430607502204359661695201506787332799731733745958839754158468919317371405056673621077257495837003261453285560331962672085309186403111489948132157195034399075212287477092285061001053691139200249604566664032580308637427981898003832797960346554081909146055920135275507431783776119582258423718816956441912666813076399249144219456382560491030774700792043449789861798541122507245223845891114541491590254711075885257042804259251074256473074190227563112328867585527359630216957499612733549720225197787387800912727442492506611890082024278035293821045732421374493599308179614479026068318588957237403248814989840052664439512941149107234482671532185082289072173975804915314467479818641260220510281578174303177708053056854921669739955161484150701838723841849320597730170461208525017700315715039568318909198469005910474128586847340759511726560047566083687563591296160201185235387786981820422565507067405630063683878073769597736613949227318890297654574464822263360766439496697750606070740826536435016499446311186347341384711853803815434353791181007943848056796173463355840633186585199390731288830423409495099942285413378819492481227207406235836277448959941166583645398766903923483557438619839016123398496012154770610829957775553358029870077014394194575503925307998667093069058617074701834865878714875816193995246549541429741345481944017772713958421529044798433513800953091172263853088906239322453700609093756549276105039041531504193540877019140521189072352547932026181761875015754131187872049656190723490744540578307066155372684068159762921415333379645092601289141765777403697107384588512855321400825363830390503942710782002378648602422480660086541683608864751038030872184435929029216397623973058670113743389752037593646896855479671388362680075565811708740852683998971091849936812655707587744373991610371920955808162895623409736947117489309262741072862371503913210411483749197503243725962812765765115814409032581656668059755655772183892810428434463923048029879580915283711046497627310808498190079810722783207548426028237844070498760196871917707310746300395730958215183513902992545023501704843560860090444342590072606864487012198028019276491803212383050959143745820911861929477769340113714156652655658565950400470358800214815132874423802874654070971603362820309221983126609914120003959964813785822027295216767820192139669167954230097260763304204943890400124937663889426760411000404055941988910226881817485542194280488500853874223007485741303590544362369361777287197092424741261664136222761287699251471467660901301035094798590785330297395454092193726412924926258715779898212684898089803914587147695665038432540833807469715544123550992216735338059850861067702503584453507050848266754461112687090826774928305721016349324662639027968005374211430446929050295953524950338359420156193346014672311515895833203449824726649527351624607510837604177710118366426202440530556660480715113540431177429259830670498518571008401148298129979428675485222591649609036134804473324553709928959359898468488931200300291444370508946475886082287958389850662939331474156553412372505969332325724708887986218252326590910467508180629472320477696407314664841050308386326246765071141987933366712719002079629011531483064886066343107110759191598801008703926380200954080659686406750228023778992288438602068749072071414719941795964967432149684036186452009674384753372750645233932965208761628412492527253966844914026319599661469410757832904562954939822310407074928480271741722571143731354149388428109765979307238132915445008395819868717492570163388179714197825460599697718374459653102164113322189035650631492911594870122559343248631781926050461827847990960623038278236064892682409317504888470715873564597672351174599155404870602756044982994880434756497507685297021056581359099634380544786110648750528075098788421482814553152822309875769339177137877991927619383731243217973921867820141876680482878167321742666857778238557340773819126865284859960970871774618642730211628524803602090836008095903151826097963773209029777462330393962266943203469477429671745186838509476844994502724222966699333935661238520722185722477879898224338858276339545292673279629386969345487962326858898403776314081706164502474629222400235436581232265921960899639525669424039053094586114316451957136210392044007634688797113583243918769863684651485539460450119914844607889485242895101595938169467601523595529785206568193575563116172276407582280004615117530180050812951899473280776889779985429919564121232200752534253395057241483095290311052864848550827664544684767592132442016440511928452003338377234809257653964229137175274097297152085355269636458917421925042768436662663859066584153630176231868397102621833938988614714967036665275900535636321299789335799383573564535602109844931521644538793893043106146161311303190930902100394033944193109071092739450586724535956142082539660146295070278270458347037102416198342357052757742167982470983521797403465815778198402737716178336066832860089492007721090045378674718681176567869649613236764044892430906069289790085236618802719179714040055472893968419452307513124664961832893732873628942150200169816148795902052925504583435472178956751644604434667386648915201928458619784086891906616264797453228268894520935947994131281854285835532964458877448252372818849237861918285888039324794200415159480158914733537806058792695684714031882399560266675571815421803859967758208336522360407844286758447576540945623163433815393423003568441882540724495150095615112630521039469377786449701510536041675687023210263645075302510184749281128288091506659078479555623932720966139163003009290112381601177337692900934972544374605549879227730426514405352727182480956299235818371940873355585814970391814914767694633063577864227428005975030106853065813677251568779095678930183350110171248288184606152570968217926573222789276870904732823500092544286561354889155984921244272266402165180180477703035954634943759770229959775386255882257866249456992951570546565080149118444503821389150070546820523091956407087116864746500776913363592549436440593301846011867808252763190032537965567588940345019410034882098454619197395230270829169856232951610462021607776177785114575144355427494521945982590382885716019732749892158454896567726211407648279351161090398845691682875799538603404318887413641123867010396100864367769487821427127140978037502876574034569071006244875842664393203766315873830076295433944168893397199131893068788580341228595646713841546728081516978473666418025513927469355762203755451148089687827477006622888645062732787218401468755761312498025392690458457604316251294256419721470424886132913811299974462243370886709577293406382004074169962981250348040558719422468308949688553086951370623443436069976551425013224441507325289998661738698122205132618325292756906909530558787194828729921240038625068880868013381401637251591447764158838091623287026440055645863815548725795924883007113560823887668153286967449879347283993426760997575732818932810073725516632905296175466016571216523330272354363790737814693722086227455662011597900763942335958598245363213319585230740232031710389529439246194530109413763375826535797322645890379980084091238624175379534882562037419480870789602135360004881228175441303242197335525138516954201793367863456939593919865653378251882454976378172811239389820407712073030778863564942208090811313166889286239280859999753143255988146788610875925557609708573609931700642547839900304967323096601849607527933154199996799327581719262867681645717892367061138102498631238096313169537646616605905330009300837864626253356386935734377221313239705429728790025995122616669406092414997843250885641237838852365442744705007228194814298969906938514652836492684711057997661372673871491996337167264051614983565643388470395493461349639718511137012603028160389995991758341681995246681414998758074100621401059379999880999643972558237061822750180446158457259594940515650482228428165398862536454552448521486725966755498859265261308724539994493422108283345558533617309592502345472558969598529007342762595125397873365577248303361936502304845599484866090336000152805078629412752051187047897956821406472904541538705501490193104277433426147129790288420562994895218082300014506194209894474534178960311699228952129997485272453351225757200591414328416016351656607669909417733537772890735859576215001348633482689114736945812922012719640243741354240978219273122913314908594408184366785141571575690422489165489023864202603518591725979527888462286435347084884082217686770544316819782633149357315343735225404249218794524832225200832997854887990564362592554955051806983048469572516440892694317386787061712282863720670050237738209492138167563574562059137012214735997303262597419315870441489682193702108039275466506780848461472520288811077911465345722928367586759647904024895961489600661227664926027950534021995663427153266567147552673156332461832591781250744750142211689813371406133321622216130529359314068550200820695915132683263650434761753189472240973494029028864286952669020216553895827061586319858424721023773120575510666830333825297007236165693285668264009734810137153623227327092900079402121567453196094575236586391248651237978719534058911705403539559645740034517085891577364974945934812276619468553215412250296940930209130770049352610028156759041772749921214790032692912721756703316258625459581406600506101822889577602879884122391728860917301943054368947483278270875007465630186663999480392146506347569635794382021833078518528736613288472027062195069534330305411408309138771668643548589177352682657541525109734486341882504408565508118017789780298253658194399662254200998298558604322977846897839154289738112064885871404443017332766805007953226567289209796784979402234104297851539705484367391151485869021680027794996774100471887738338475409919778234270540031841553180272365028013786912226974322414464696802644857675445828522427419435868720660609358619381597377370106127390978769475146365854358795374712807801230778489975135674122707207307967464391005497954581936062126339988027246250619767737034621024529805339988345589358133437126666921518920632313883254636423114464298752653870087484925607956385871670966271952604541788562783960880912213476148911458894895906555834966359199110643344656485035933002359969188300174097286371943058351692077241826704616575868631725739261592515138715745689912671537567090467112524823378141291064894832864600131018858063142852114239164597814299026295398422253914243819576935505172540395658679145221945992666672943666009220798424508300548772500997003926031141514874899470525161575763813965223778932020769316937189613741580614905583441084336730506822737678034846246772942104963414817748320368776482505026987024774453320545187409595001443083352513496710553994210087928408252756679681493079231642773013925477237282098019408331603454978512760602688466174348297157604891922489081389170015980144960936040737055044648612604670293003365346721230482896598838574952600907660019767690229906420875028727043433890843619375249807612415367313964057366003973593709530942558230158951536073515247395917661930666417624256696283477415073808149177147493003161147198693295730070574520463428823253251124993479931939733532015300231244639985871888634444712475374559931459429526496478662422500067948700669299465434356644028679793046445935378570460253699917950324323959494942198151273487823978620913119211820020674816282989031035719211290723571079021214256801705008744239909274095440133412164082234593222947277422177010395618997746678212982647261874800881714076111430258443327864699801500234098172792528483667765215719405332564381861525796310477485035434104479099783591143272480614306891893188507616163363432796553733398474438392655581423042054568168539748099472126818619990062152034405631151765766551162448892461839526926662246503222552807488767302643488124734235042263962204772132567933540948101489231518296347517038692251563436501437296612921250487267450209933002744917359842209594095071541349308233713452864912218076128514640112999132216124923441217581179464589128975336608951845956531933076741867703954235643933452513205842036097156271935823021782800908831584237577114366185755718802620403506342117556239946346726126159075442968153469051236092638231171374616056085738092210831040328097379175718804876392718718211663992387716817412380006606006398086206654879346332528472202462712572870750829165867024759635021863800107477668272464832684452646712774592754017694132608496200369044184229964522420833587258907479137801561825715845125223138494761669843059015876336415777475719762315860012367732708348485467473070171284276945842826783467715197769453924496293440600314965423218871549418795452041138473188904363713644374363203691673972216673817931749061535539770871593025442363460500100808729347642061966430510233210994254265239540888212119583202957985414867644184874665127616717653349822064213574586240269961739308418522265806727684987796020899405004032266214962683756359069051035951845534425392010754073719968990307513287817078092863643982097915046767110143685467426547271466786457528451502913926524944160846865549543824684409675756846881955037080465689537518291830704304119116099725911503200245619155702647059785161882043025951431485916322622352682673943055482655170829768286268619939398480814653501515883400939882766599503048277960784416365650482712605959882067753408815712208020027691703129091016216720098961724087289227424093194577643506197192426123136478244510598547789635881353773493059140585860199065149034650496408072050708784318369062740961813813230521578426412546094130103884470615199074113532858990874332264705839252613667090783147731531469192838277092259701110430564587931254844324593975772404383537114624681972074501772686796991310183643852759591436726966777822397776342136050172481480101971385012220040667147284122626180279468149374275460213742236601172101086060789021277713984868302018346917461322718079696333893952480574192029982258252451879266711701600703423629291038147755086170020794480801524083066181503262998014243987503653723416864453932285497812509253996795950884749062156338446898573983957161574055169584847630596031042570728870527908710853683688594690480980582020070846387630453297199324393921659904480507431390481031266805319664396320511973363723172762985018073101465328005796250819213859958531546357288551935926813938393387158273533011955355305219698496190443350442506792009014542441217800103981577532390817090889435861238974094739073412799033222318046280003426640265772101312345023007215519216025096630066467847495089419033332961704642357469251340188389708180679829472256917397959407729315637181669360525167013102604052932411832668662176195213056838816912621918285850785195129786005431238804022726796754027580081269194670045152939467465177330721067460638023522493224646549773070124908149596699609864929177811567002765598850410816272903458310164760863481876302811922969018901802299442021289085705448126680584609104027930033053325872720597289493202907286513058668061366112473770158548291456578771329281122652375076809266624649719622049135197564712724059879491372873211955267927246416130978266060429661767101437262688557354642221587344797953142662220634522197214548496740614959155638128354873934267514433133232047959285190643458683186269731321066250172301356175434668070039872702593880601268024923409091186022552516902033236215480250518490459720518496236790462057764368565319796554299173301326149191487612009725906422919699519776460642314460256335967416604355554735121595336255599581817488289084346432181103132249219309583627063635800229273088465121592292596663909087674824780413022391373012362910969018352832205292606371896300058438783359731377116139603953955213885484513842185074094677667696842287338002929566567524919230041179613266116049465347034178648641119912040034285374361790287244297104191932215054556677376404951217784516004608868921582935887518171709270652253829818818147939655600186517600778393054858019046955602982224379598058770337588571680649180795150080192537329057781203187186883500819231364626550882155333493159351525486165418234394125232796322703555476241433449344058114630205966179335032729944357951608630655481325681734466318438932764098757371197468652670078123183971605720150176761397494541817862441655544688605760574055462952175426937573222864414016964061869203897844581309001488468375242630474602839033318651125820426830259020327556197348052750801852535587033547857180673190431325359436885051237430148364205471184217393001245996189417020376619529845905218640360222353049372894378591251958224278940401618837639547645814517785966216471145482183317542071111400269900180960161734469451168001052606480161718846704153583872183303226462454032404855496441643278438073367316170538339986857181065119707522654612847661841732798806415097020405860763721476584816407648055610695507197046742149892532730529220657373077560118510222421378922318726420400132638185497369230240576422949767011318911632717705228726338602313416836201458485888609018044767434601996510448438097224853142328430090791677953450617701617287197578970962174869186294325098546460561908960959233972076891681042387256698186285302204797173697641121815106775538722348461006396243991713994551853304702277015133273090465832811917737686605164781490252126182521380126440962834376810812535446465220418581719312836966070815379760707390617411679990992164149607766467653316694454383130350419857325799638384623277088790201956131273751897953839102621112343297371105996455794540669468006141500415202990995528559910644420202261810834359908361024443307727826443114507971613832917902388085142491479118938890858032888238211262894146183438752712333377093801853293778992078980642169297463747210023411599092099107245223588125595969725294420286440173812073661918560495911567004921657903120494167731569330031034685653430571177292911868386016153665162145682384477103453730583936787682498338936296462344610119260814859690972288454767212003154020299024142486871661408220426934016651032067182291491961832492422705597946701161499498447557354592028918775383817330677061386228090070573497113980202533966561583256721403986510318002558278424871987501767593370255910784591130952704158084136197401470923610573371280087936878465510818311549850795086370251643361530230835729070318014039734576314752620188185701950794296501361040232697296344916739253320594171988948765191366681041754528185154746237397216894551369456156166271728150477826063818512173765112613206405842748810950758580448541835912443134407923051582787529551690898904083196777774087223550595864146706082793535155325044218212988740582864936105303666305189875181593286278331210516835772703400831452513737150892851054630789688541637374079785115561084922969517037773878205871577430241393820192846789420982216848199173503292865019204387145716964319863688283737749239589213804440178160484816576191112373968990670514144570349505749794455668688594203847046852860636307696028858766442726397677854578475339311827169629969070405770337857772365916992500126188659655341054072811729387855276844794046336381102702030373195415454081426496116916257300379080073559240208775693557930105045189421551327599391956095069230342576994654129833913914922325308376829274200153402948675909887118675295323886575277933458793562191365935692808770876782388887852218861643873614764466339783047521653973415398802840384977813689784817975205597509097791993080609009962057734782865749323162474539604013306261488971069906448570212252893214995309005483752730379502872608506751076015405956765677762444198001429115836912809559427973246416271724389780081857042449579039107251836028849298865384203201495879204743986128536484816627097605898137011304673040616491114387216919630798738884106139402557226233013886380180629589448841021776203751027351318542314774976342133562372373314954249456385925221310787911699049731221466746169898242487922897999023519839136018098824006241814403844773515766879403413294982814136558870943358428647891429688370189777237768263117003951668743928045362715668975316779417445390827328042312545811152525334933908888962095069402899325973505356552974660061782787861939472835011846520720253523687867833655140945018382678571320780185766035408345318615169348755037642727158785826855436835636528544390579306009929684436354064313186846645811997639283011182605432700967143579619542017217686623782700028027369750767815286583665040137258324770538768935067465929220240402203778623683574952108103897045511008885390802598528735780094997942370271047514751730647226742905733982425069910809068947626436009352918354759456333665910176991573634217434792365287880009926189698331155374809228008747600850863670567564361461415325509584932298824081736591810229678662252524018213517172471308484078214085411571901628087762219518036408161909990747243429914605056993512999545167686735403076420708961285642013865438161365856452085115561374890241531992096918071435381708923010674618239496458928002934582743483338788613648296644675767171896193429433008405941140520226785454712045685719456270920869350414840296361450335510938803574884632535166806492366954243980626361581672789053082252243770241107494644016428210039660570926251779164006132222458350733916783775853762214095951276261929490084364355184284089113844262764808462167823812002907313789027831367276599469450492015011978201686343490688069531753847242421534165526117218013541852098546333940420351861475494816679989923066397498497131101734535270563325213768507754681464426247894536039604991283248418483718644190513970565135382859528908757872772628721432926799235056194850112060759480883043556561981379458401505420977082066784495097093479119076490959783733299141670054146993908726589656088561930749667694924026133651179422534252848857284994119031899992996807151582481489679184971842745331593081449483535293606169744049046212240882042640186956800017032545397329611663253290271998665020876772570847215359307593867253794871794027888405240973408747863800016624860490292433298827506714606503412692713636545739146628043361240114793526223620428545010321110958996026777208571060195298535077821062756145539475978720731375339431713000657886868813510138013865713879430831218107844291251095294276511608020559639528884696182847105462545744370867473113453567747009613762336664891154787995045888420222405025938615728666679760067545353138991989983618711841126090675020959893000072198215761071065563698425952489163969021244656628074312320003026185978752490232096774848053992124321348916361059230462191064698702659284864595431862060539682159728846474118267144111671749293999512561871317230474936229539620224747554519192385380710112975969230569460598076302709337153970098981818357142177153200409628066164647635412422922037529594016536598884721674594970930064706090594266358462179566477814501376080780929106972921758535006531866566974815568101778612246991874941098561841603504689403016025881983002635540287305120547336128071641221593183450912768522691839568582241933342554754005845389246412591413030397534036355231959084152752091567482758344604713243709510086286527938390045717350282847272483605341457975171751318250225839086888315027187088228713788805971894725922228459901157438736643470109219647205184025841674393729807081776101184621841792824225575482239683010255715500926151659143751357732656547371138514180125956330908737515602637089907902046053412854100763368051659488227289963396782950514901039046331289462144247119220665469922474469765955072169011926423560317686814876295364217017017637621154743148946093060735085438376860456616305623788259836098835870312456255482509579911749391948734032860755064497259108645268032502650303471279604530239191581423616066840723850658782725412059806214663139506292334577871555752703487286074495908508110359885473837418111112105320364898046568550976255625410495381956452856898630079034101622729979919534330126408038397431670190175022824049575920315374704209396867329413158320753930156607802159535780206973494847197621213450231947906135497486715609309216784909426708393062960482360702100055368100491236394706362161104569347995738138203171020416880737558420095222064769581464432773663481225730760791633080634783979113799587150882460661425734906084226656709832641309254434319524553847333197703029715546036553315311824723747387393618695614901399838094759170268281086226381049769876802076140983225221559563164723527546820410743708756625053499892625582714658310216261909593857652649818138347791794176129983816777349826293764965798351594870908638682074501354290938069012248106955498348183951058267351111999207205558385941826187193007753272915765198534111104134718753059404963498007223895157677016138172774639776548577019421611647100273103462806055070222803590317563873858378379197367629861528218024798220881404263917714599387903022447047927787970709547333037250050443397545376076807074922862575586227348051618771168295958509778293509231814174709945117474538102230722022893370984104112196212284872860429245113275866827326434603977101769078862497354332124262267878307842015421957015764401544618807221887268442455018146078373135287567188048127162150713021635081263010786437496991605645122529307639860956329198407073379014651008290886900878250994179662058043631714090198379920338898256205838441317644010024233505006113490379538414782703982247608850516168016810462220893301555734974927152905461878312711171789802927626620351437015512088871821396402915164544281054846177956645954657862264423071462979346499539028250507791552587922130487613210782483300611898507773994597127330982655091121823093854351468663909618241327657494346817954148391397550648442035580549015881720501336340421000004648989342677038913934250038373977497230459489152940226096547545374914753511929746380932666830421709060690802661392706848534471975523482394213994864483903763634255157493645287367097718819942912202352451805164858243470589492896260302009670321944281656217802510079398947460599189645681996487251057616751295874858369785684594686902487426253376997451968538296868782695963052716483447858991773326221722515437684733188650861911833535388281707900104427590416853984978059153573978554436928050683352159393256849799603805544511521377294993270790869812295623006951242270431048519231901740026917818242514396065459409208929908636210495833991463012411851406220874284923180404282588210809788192984664247938267875417401479560037212100555710682751063140083726392953531670699127657442297801643771126658701978806333647230025786219425378995590016588894084180163150495861325023053811349213122066299681659942004033135845005501595770805467235456102871128997498274549837844007259823154764790929055607011954715287419871926320254821325471727798980007409357548879993334621548537681905659667267854349058001868565917218815437086816502070739795456435243605419530441276679034755446914215275122474681028382279191220976366119320183945421418940225306001880290630738742397804111130587229586608610137216406438776348942980072379851146823605524771762998753031942466186895991127560988166998002545494166631885528509554249737482777467084217643553165101080307502956018071426671738698374314994763487151481201594005200835411692406577128496872025148715282868007923699619689464248638387313030006709994357792676224130195950833341897793660888467288811908255115718255112272636905249635371973212504857623598680716214127909196284593596405733628407578897178756625089154024612224377520691189956045641172521854340728980836720005545783723704099694890540039439422630221478643755988464229194695581973204443608855418541096245663290198646462157489334064456855920162250585555468512743198039325097228225651348463569669834396812948184686026043502282641352263735228406204656835964570667787973697732982992447307489329438555777286484323866511349722234547101332058315311416046722312116688510670850974193614898704802495976996492230465554361212065947503870628367217855696084896631314721822289598088584345707333728630836014271243427892264518612100841274892918763082333162992009813373813911579563711743533109194039925190233437208809158044853083202287629321780852140232098137542157385130512385438654014123704063030769208161675699041284702692333032202327621927083099119429268299259274627154374479766587998515144746584632527062286728693501483222261490355170581299062882906232929201809614623754419557418155540080846944521028023951646124135267158874566425768570187881117077065372629967221033764230916494169811338208100107595094974565429717167449520129276264213811049025190516068721600450571262694799515277650966060086003538640411620112794261039114665094467629035151335056995551140998536921460143945013124451526676743835255775166327467944204144961952919867611041577716183941385411881483149099060310510985507848337271208495330088052152099795954252616078978838210692691308591843653818721972383043321722326130092408027519558344806230172802106140977523531554649448744987660974121892927386412435914895115539539169997203026989961581350829871591351382464851980662927839068472862869712572552835491455394995392619998354169214806328660153795704922477754394913620415011634406045513171266278070067695543766023024131450187451497966913519923728462098761403889232694620061775336755007634996454705705528720779940138335611693869797928988365622462675846112407933442763416402478650703481075428481048236385153682326416811737992322818229932357629527925542473773147509376210579210613627271526307189087869949875729304445445725658011623296009633450091475071257044975573351646207356669944909885036879396437891153091980000479693516532779991700215716995216912148853443599494803150863489913190907842588237478467518326880179008283144654625668299967158300125579529248171409097852329628286542227512445951283620228457890735908553397669708417854179960772907427072760952161624174920042181502086830440860978890172551490300495001544666931124037167179700039055519292492633136996323047120127605995384723835862574980088996113623065189136912252809315288080527602102238098678646717506220669997247605595857787453015881766875102190796753747098005691591165793614062270951414160862676031329196889612495381662780426580524978402528766839347675303988221589951199120563343655986319870030729212877579099139020090913741135606161109245343248580092012302435628021873611449825265296447088478709775640406213225137085634283359706982750183131591362739938760798643304403002681828108295636859908939229538205500745827065868401249230086247367039386291364681704129314045549371970103118076641689381047135444287361573434241193677534391975215071931527873799378601349094298346598792947889371536695213008661347150821404463574470422450093048876863098947378836462826450367455084923019193819794000814176062051591020335403000288238427511191995132775527086329879205151856583328272870406021476489168703310974880538901808364648313696449076098111113938151303302495205525501983424593174231216519398675771212305290023169901418032879866857880664707027983674527028046743938918201259301275427737058335696980770045403750662744723548291943233945777127179116868543473781833985672596441675011984841680857555557418062459006040441735477726357291044774450602777059628313657968624801980853397980465831424701300377191735858376465258443125989461020810088447489860853687272804838626702978673218052735949516799427714293941195195172204058581366685537017598807074501394806369145563666803931386779652970214141998848306287312173809103496330719191468609746945124754713594116290555562837008118393834496971928346523835748980062690175206525928432408024975827962564600785001224510026167662213827290461773210810293586897748033381378130367400113259215529745983027081415967939556179877513381016188230749270528035155906254877944145833138423283784690347787584482711275236238695126888064767131717297281939359027094886318562937146893087935017382758739124406788514754287831976780491661581472139398340685361865284283906568490858835624773723361384572238977907300032430103014377471778296909110544166668994296248361007774012169635474699946609786172555353392790380272603893290884676121195110210148670598962825637668758498502494493210627430471364263300705601784728041056433972876814630431586071007861160208817884629109802984101116246774491760285512476458372813851049239673606382862112356524697461931513955949359942714606078166577556807312135777852931034886853739570510503748896923994417938821770110264971778884316429201342723872863069515249462476012672451702913005607150423959094714082969919060727980879815489666259320093044550616797797312092833419871469537504457323079820118949349853397926081974246550287085273213126757176014891208030108517748703299017577301457328538381972129941200119233437537314121798569378301291633107891538828021803412915905951114141074638762353562367863795809010462238710608604899909025270071062607118071712924715707219237789585400426758761503480656599524266808638623980260062379150555317134043748956180675930681261544648516973411668100438546584519632417360535004818586336655997152200951011291927286206589881115265801175023771747135791103793978120836264816129991819021679137602268117615849254552051832398513951558056987702959144897913616096774076937012829437134533480685226692314998080000085762455697116888019859169886219944724401116595568440601816103301435915348777340006464705364798586332686858437365465430944765208356148307772042780225539248633229328468032790725197464966363815258687800867838874903701509817632967202877409076194916701823338280940325064697199522826115558358381628734511615675061089341758933253775379153578483042953481470934931556365399430783712017037598394251670038380387647483433548374812831439464175649432441890670695247214102206264780308176190164305837792988890986111138076358221893301748801747671835749730279578368852627351494725557978872379444461444911150574445006019338667576744984999103453835589065992491704409852397806569398070971935535534226922703981681261827694127903156425509329806853313165222098492647950836798288638664870346126620057380465454499428034165000027214715941301396343836475947736507230803286529340747833194852713093307284146460225491881730373334280655695814941342238750151859891300616440085355458582668195512695134304581385799401702980756282978477063559146352629537298682917378101438189859164000959012407656049065112735682258170987651176204812578309268250289890154810194424747425419961546369578685256229792986340983650966371933640513683774258400607612946597977491358823058291363581837708254581092165086478485073319828369428377964327497653329385396862740279123953592700721167782752536035583280400140581848844023862770344104772886516671166989749707692319202482198200120213440355666992337211336124450033398644979444585810661218870158594067308793074098651965347940902381041112760506624603655839342878822449632629182456364960946439686963341037955127658695722069233418738818577817241269486653038622555041281612172347346043769142323007314381804242107288075085538376810697087651199982651539463661485259122247923942660091825234389965072756290679653631332510957625843182822983201819445865705806940352797027168787873431607451864247480226198822223002706123929484607113769136258550913418526018808410208934537037419861390997147532551451177286312121195347132001421188765098969745648270617602211001006302353466119477702287228884627236314251394533489841957153691963022986823059610780515733182295760433731828714609395746999973724143371061180977371478070555741192390475811511992133739148879947344242510984127115356054646150587691927599488422173784839726003423380205528813218969597102223622043383717925315147886330273095500806654346819177378848459270669834007209205275964367349168303776957711282723153780852823669306073693569802597342413814087434084836609743869753468083699063404760940516031591501919980712009908079706464285045475639353255031282842441496010828277668865856253061733304441960031284455916872310864196414796307864017458577931871667425302822675925149721210106614501882591217386783950259807398174589337832736388069696271202951659874618408381954850107651847234736913293980280055029750995667184305031467623054651454477014858594131757442971590652870709245296575122566554002875151730344021574202919895313598037671374085427564132600729009946360410011608676812748707797459511252154624706799765754435299116150311687497176038072521966031114779868273369180398264145789820574986542729782667848796997699722557462302116676362171851686492681141671953217667946204297922490710326861196233364705886968343005608831926820633351616645349262169924572914689247290322115524358513346976818694320884534608814909540946563702836972665354598158473666177326843989342298409784111459360262338521419075908149671191688574529224915530681660446253995837966894350121008013769933944987123717484707839510100418608144081587741299619660719921138231598863276728155224170945920866974171054659964498002373351656908035908767150791844413383211595465099132912057734758535745650200327610704584823540019317411235698149590031273280612829949892710917584724509624244230518938955890068366516234878138684715909649078541299322973933019965763384008122609635132662288932988588965209207652752791344205456779572661055209320737924445770285911290499967772156916396613426938817570833953104175793736945051922808199152445460617116533267809527074137023697869219165897426548562228392417711902146815631909426445448113805992266161313128387150597325731322919421241120569077087055998344504880227402343816258106433145769735102877783769923994029713161670291022854758969566437530451682469872322869528719996687734760383793174261293495867977639662656380515655540574994856129584114129630197459811811112022237147156455520748446600927323214627958848249979913955468258025302715625238819686405279317158489611202813537949850623064150878712647680303223887522067591865320948120120095628604889144667380333262716372854146000097224415479764226301391414952728158376192922413058878909418642360496907465187021997191480859687347902973471578907191598997301627644912695403828801622109889017843407879204099493606668486541333077071905574370229804357057399014366627133781706790220740537147487715266480778251704365582239336493210456059084147052651208570509025860630185376952675510465924592991801323045569070820486330203710384204491758245606688636904507215180385858298860014604115932301591700353165092694665586404148967924415375291985278223788130907669953733909231026402895818324984265988036863569190857447497535334012125312053178175596160536584426870163190766987455502677513370934181841962577880984241798538394777917973702301841046950596189062603658481806263144908126599038903164732029951805681142169633762334745568350312612144132185534120437500652952823411832695728645612797476811353648329719674281520860145371187805167041382794864238575541885479315513879501328381851709577951082366076561967560430658419846216732100733801032047166338988123754896632212293087903085092682288463343107119397937886299362830548340075463118137009156591145128131708477364607202256602447918900870528616701847039423646303041430251706926858422655379446224127000382934396550555256233781691283836417672510769944623014718521037269757539819645940932724093924031586258746768445199826244631472430281701603506474596598029587090432372514460406819229287888422462662816560288589222954571184716785144292633654474912119296944411124433892828574784556842802724922646213206837146083077391611089690696237261402922667033866516294681478088119784863241572968681654275718133867292139915848167009779588620566432140834806964602085792328720061987842293447089056540920827968956494484451122254890409850776401839298620306233446014526712072783448157844518169852115476498162802249107596004180938143849866068322790055468345177489032481871165061873633709155738410981109069983471152364877208972782555965893096023759030042935950685899812939301666091712442218979113133413906991055273956429428170697281291507720981295165264333154776656580088515518065051278874740354474195946237240017245487087291424652117908813973390452702647481576266502992463868145203277941080967098083877697298141725961656325929568404994350274113525213742026737213092487126235733373720727360817041854125721233574093673175118239279561799494462780528474683238204456223247391779808933499997546824200903044027545701610965448871143149825446825094152215004856605760411634627279833909321695471864111027968075524764766047469147571998790476078436583977026100943026005541174483608588448876559667596104144014086607810520994825665793699640406127279681400126178255922915797285178564634688058097605973024688833975687982641295513762042955236333617729010178239669842947037240397067058430226638079724238201722775001017027518311214856510742594397023240065298411750152417639108366565201037643588024207157987811786470543657484549058303266640366324563844106721809856284891589301717560330312332553851884411317948877882448335511418030669220847916456904015980646031771623040342120813247654661643725270140984653581254604351191724801380114442727402917403309116324340182759809685516693797543611260206626860053785013525082251809468495131981163750746933343446267210492122952608049696534165534508676176752079776484644046452189061194981363273947720075794860464809193421425043931850134826648631050480485762544706580590475600814147680364077962718990013965802944346329679673998596243968945297021028362876102487897559519444085407105145612504365969371948065537227655991051912673911554224251344424858655678582432368089792507909445407370320182841606288122813887296667019846767462992087258590499849649120519932499284233110770507221971312622253131340530496946777991602348497044389606312802814236874864737976446125999770381080269354239173384096092338785134138204688038067919262608772491271700015451447417356450314428322090171223003776898023612867224089860020817356112095467145969750753600984108150307607413340760480218090453019516612775920231204149197232885751010085478266195983445216843353032100577047696039549880828722197150866949492523149905715216735208142219991158918807007357277955010278314224253980662432026038646915434677944099704368817711122995398920483795689705909950758499773294486806674288893662653620761731371938325160419918938618491054259857072784726535513584185812292219998350324650883573100092115157078672287398075912616378749929749725006641379221642085617742896154240796562053500102392086365353991638359034798745341359116456582315332891773579913025299738389042377959833882653161695293512268968027771474723335230841495748724042612411715344965633349838672516791793027665372520367593975509827938878661674168476509798292323655874655334811178494465578726266286738220012902989759821094940290890991726074680656096282395302413785786911757600521826355372200786141900539070101671470670136370322238571528090214501036874915153926102760330926216168714354933632962900122431558847251158245108491561736469171440476782078183672022002462362233988880787388070372307651092893363150038611141276071339180678325797891164257236758246650754166672204138415402749437984302605211763350897447913502958868839908087491111122791550731028426297017085216563410892790192966638043043579953670543052255718710580069144753740752472757659201472543231627060014955447801062960625901409727562908291173315162215927558027777976909886394638567570605247970977262327489140908250508948921720005825854660177161322641534000985507719559318897216922202672546749782447111854892013858293110159310846237133195152332478708718210601533160041287916819947021087567486500458674910138045452796708086870577021794315586958525117367719985658639747909499283733635781653963716907816019287809548964149983477078518290503292288577806223622732647637370722354228611848813346714970295209307687534285315828399501742896084524058229875865437729157331853411335792453809472751254789885079347574638646117615329602971488662713436490498167973036213175840654638748931071766023492679359189969164647397914177535502973496509542317491910674755424082910177453718344946384763984316977168521407271834492275306880155631272928713963711849328855192895673568824708313472673049928913192571055078689375043510038839700202112197220456688022409835632070830561426546407582814356332202974551674736508943155699317443030320549386967100051054464970169284886544637112000420622335663032357420525747079793913574220985808867662048199720015424935837446833171366394081829817416368643617272279765486563119344379154823116821398286077267504093701963541585340997568292908927179847651177565591097225595259037290107320831413141160537995345700565736303723106701904736058440527894308087142074966608092779610527786990685457348182037729470209342039053671132048255073484348172238257212632163620391623553009219126963769231267845322725491920620715779339218099427769139124784915389024640590505853863395927548894769528062441420620700302587123631543125140597170088018998859862552486859140072541295892817732868748192287384570537156523241055454094864327769675939025014764004152242661327441150795320187794566337110129174642426767116432080671499621192396374190012036335066109294867380220791009101734521920175250540803400177402457067721839139601544522032222806484437817373778723584678998059439770208141237543066827162251979586592066176195105986595082072249790239751108588206703148214603344054094275231662274766261819881927907228518884976395278674202084950160560586007901223452137977612917078138024462624000714813805047826278120537275962026911633608062979938540371216353539740374421838848244059318553709328266104568346461793624949294144194598095372906226394772106828547618978047126701341103897242524036154582078573270454273640380802553047310245347508092634757038236954566829257740749216365367844748488527256584874058266276441087642444851418243797913003078148605680568875375820440435021732756514233880058039588669845543010579661128912544415185985914546351988244294526914994402650119234699094346664677593193224458214778856646672453319319529565435087267646934007024253974169160580014072775303192295233679209321710928018011856451668206265753273807840497259199973723793897867982555046121202548396311487225827120616915348371470555099999744762722586569280076603676991888244747664571386846272866011940775100399589353844603986793495151353950609184169945628450731360125679774122451103644879744520277318320286526969367706003611494388456118715123055587323660988459496504677230604148218023726608361450640854338825505547977432737774155951484044289067355954152534219709152545480744518059057365297889387784749333458000862357250348697113826231692970742203557316692977724216980663512498145480462758063507046876650473350537539718252299876408189833323173838751297937226527739309717836670412678182247385287609909149422154697779427437517293784562966903223155924108951106441403194151132471284911673005271917648336763965504002192230985990288616655088170108982131592943864585386628950303749843563805549637215108202733922976550139577339559430850248254819661144052228468780002491364227102141669288701975115478931900177296261876702799203929952007434067833549979789078829127919825319965130434121499937744905172361223214477261687084651616669169643009581150458714869392665785977265681989637406975444454460788898280951155845939154296616606451183166962217182977666825904796621667829708471729098129091425425514583842453670270703420463345976375294019627291030378581551924863401870062524746637970563238400907602010421170455951227865021368033717805437917987652531348872442444757860495538818282506406789640452327376567426947200155256356335776615172647937856699519746973166077057376282375635228975650927318012432480938234755804865102253866461288229105345608266384138367917174512897303511676289637593239688001119269028201632483079007139574516912478604413889990818471284999733434669320459434864225141525021705330243080819133513356754960117768301869271482827376533140297076444490669947112655302476153710793351989763497790737142929088033209434177515530880601284018200935067612919339053876996742033613405462442637567421569464660757703295204736468497021930028458047262278641080121399036741886462720014720991647694157087047916899650873311761635868242518249523196873152570401769258105658714296344367587408776502226536291187892482046832704590992023442233194014400486110490221160677667335989997507486463899687517807512647211598407806209061002911679672874139362335312550983056340663353542801472220257067292678773662866937253167629391598702767723304760159880118083871089580076096687575102329782313432496035672249024823586243243267251033896424373987312101130346163099176187541259451842553058581623352389483920859233925495973862078437928798563311362934254823102965540714914971968733430620604088309571197196805990984697107242132121047406136302162968845019252634941468253599880997063703640957003491567051245146184867999899419474741697771568824515550539114643503523968822860283871777361731154985416356174658391365095092222250816311329833382052872320230312096725010632869782649240185298495244419552367437537978548790423864944737373090981528945623930686935739233279006098805263585747717665554162406973104425603290769395220612258452487847437317533148025974931481306436922997317759157208308969670054527935262294323267210763378712446880408434448231191671953807140452889662146297939327011029541784827664547346534786929886428769738494307336506165527989115717203205166554795953406920302593734895146406450629932512915804631747608628331622011506024736189461832795014304137918369967592076506432774196154856120286880927473912050091257894084907716719374147492051645145590962917458076190258953045293675768757357103790931279393365092452358165582750512354178875823760515302805537519666404311473249557486944271428752551560646543344877993412456190560772891393266669783615151524986935848434869271760319675751023705012226730712306813946249081592264274679228495290097969510078732113096494509132212693014986532054508345767583591443481015761803020873109168521595768516290456366829300927805078563700689800701289564339438636754498615994245842929768764019283683312586376157107322699018004094221004837287733905351335017476985220277226391931110450047620897088909273763395416795724479658638032239952618666308353702647123000528765561922808072123346050202786842016056478982961413306045603525582910105167553200569170407309652573884935124183350534077425952621239696804286965276844233612366599700000462420742455217725913475341682348492819557584790896441114971685062175230212066066143374984253915756464694800471750013849014448009801632786545786148124885493385178155104430779283105011657813384727217627044043299774572798481587804853145513901994006781285458045712236011146866953276764728243831244614551273763793919150834957253283793228621286524961830267829749471435112420293428486485222582576984354865115114189170503362340851309272850617683968738828766950650367083360832674675763250883270278481819171464218094730534238630509343590263370057272672733546423771525611171608602638492711369481482758585368457918779103283101126802900701917961368313075450687071055000686685123784613653938058472882438796126510021999518740811064229429251425461700180592129636019928293841856979089639328256849543322107829902797832584616279675493708992771058554380640074762241748072243887221795237495414843941929521654449755240143258106004195224037127587872965100239453913964723574688580851353271749262538135554440330320725853723600612200192796632310823054182942212000053430448675876869967210501184743606517153697520396574290357406379264380634093443064453429604893175310166737539320862766116282270419989662994482122823606503852540904584934160938348483947050205766770364728268338461308636923728639423194968347333832801194570945844596935213320412346551111866255984666941948381616666391783594469170602858763224901389193440261554902337447340965309941088747511578560053997745749090974471010965292070210812679340187953181380747932312299671639694742221800087699037341322529380822931833375974916423170515423938549428748029476455067685494516439705398240610244126704941095602612705087152623779639752900359416981421143127007653713430942210166462844024405675167599429450347588112368831994576625030673406569267325255812545408170997079241220042827282902621372924499338255304744921626433906857905666914567541089244715204504354108811804326863102739562451616842307000593432843316837270567537334657120212802139821789042059610246355877876865090349952651479355379018493777923303938425000856029699150270663624344151183657851167416828008079374930526373094477463418844110875666164796773610686675577315006496435776222019418647121951263102992064810417547143663038919719446727977208646200397252026474420312057559342326278499216036873236331531249290747435307159192710478945109617511516694046210549442767401386284880126884879323544232887998512309444724267248495241766648421679691789992904305829595783203000621164058658439101964008780922825177676275113602050622692087335594413951208659303742985855002867270568992022470485048665293216265319271169503597709820331184548617631862458733291197043316294433112088934850324606523221218424144690429437632174381724008230813747631562357697030493838436299697700425976376044813370703522122028423566763575226889203312779671199641470900674060710866801459626953961308682253157091796977560587774837357514546029443844703785238127220433506614124724354521919076233015809429892890708496431323743055314332443172054428171966555801624815201461984136896369492140716202235102464900290659661281947900758843183001129100725620267754417385218349729004316787725434866358132333858971312262796420481942361531255900867348823086833505022135398027995227108000408301308217494034839606647692733712385116772447147314686123115038349546883191900496503420526580948827129752555770755563402590394136912124832098243991001684905825066211564256638857586089077298195786517430546732719330612297017063550250385083619431936201750490785492473601362609353081492576838696481523052367746684720248568299193720314942667776013287846543809403135649617824360173407000661492876206556637086357132009803364864475826915590964934819949322609656667364393245224182182272108460177703280014690867366919038686210534557305055365672342768499023772457416394055790119780631498615621688655257762339334662665292504377714809421097148322826148189347438173529402161706918115493226583687183913014799997421993430214558177900395229592780546117909495177812479970071194422302034731793351974039066985281514187526681785497828180811844896058824964690128765001934035324884545864337176553617558684545931615119005845159499235716015658250714243196804928274083028651678190191552079778763477265358649191163050976136761612939291944440340425544373568392799807159061989725015600131972299943592282255216082944599140491501731208401270582752679677359674993590484946167957688192386173428212390624793379027047185950861786623790652730890751436038816298573284677505390413115986437504601569747222336960698691739999004263940363681943197940278522574733777685487743435493018659339429277081718870126552175209951783209626491267564649221450428747540389451115961459741779418872078157919484049043845669955649058201122858738838571137489929622878149846690119598743816939658995271198642851924192046682883090360573796190669396791408039977209064051485779138799699705240080513128835799264418891380677960865339441873625008016091184910709859756069369216997153877920050982473751223229114614532281209080328950182159430807951144557340204038677329549943077487143029241997950910315879930813217973192017616415087170932607892422896487120891837316164665954905895855518056939463721213862243606719116241059766389437041780020549005481345588055872520457725338965151985963391083410959237736451053502221595012890127294050133071010661080762082386339024885214528397210796778614928493892130706087454074302937216752870862446419819669417731871476577716714181848912932762773447671996168677757168525233285985973073329965427271509596370902041591194240351802539838751652783100661475416897587555102416781888737781894402821096655239320276454736944535169093797453158027203953301539854643396198383848566738386387133512737230670474529533766439900957278513244604535883291137556862204373868273619838296642769404572101068333453657808104267220459337253315274828350709898533697297819358424728319356423275557672144562867275211356759371111879323328045392531787576913768060628468902757270085352245411876157600646622294217084539154395177913204618818504115089761779734986366599906963252950615885780371328917713209861276929935775788519448099569638101287920626318143704901442041915627002378762276038358527386572136307087314513266562802517888120022209403729000536278789174761265605726999959126174466537730829248941866005071049769799679183223466929231290825866272774651836861919721510031514952038001736663563902414404125679822822071336032412697417647826571321745365229155615092495163915926249750715773493883423315112794192157032222692039981768515389874548895517609310737136854398306795911007368018777246009583613231889960610178137447344849275504536171167217727722276396043505992875172845585285389859016848528139513825008767557023486437730031704990571649387048223224771449198319857907505722536152700722349021853657615660575338459263026188334545745281790341140763761453005911640631505137143030887034432616759608316026746013259089314046956777912941881677725938053723257157678374848428793252975459914203549649267453150817240886406183996949471623465149906738869555611512271204532421329466868149432914440911572753473260038531932231326345496668737155263274446100756913437547552370224991144305559922316624792615076198845279904753880707603051770411848173589522609528726918343821284847540031412546074306926980985630627971645658866243968172352073969915586848922019630231315477293558987502900919242341871811893915555764507703956186994935033349407256557981902101677231911471100355570633257296376218541198771199234651741485000964641974327796566710391999800122423474526042230770416950244658310865054772688670759008228819345821689748544705848007632594506196659565639647799326626657636140615915421322139969987287565024582995127973207456456625557322118800196754126492100349439210722460856711138399469515481910832396796983234689211268285081963164716850158633272084958137925373427059965483421963486583720988244780402597115803766172640752154542890403521692521274561139935629906263629391720523386090669831321086369885682706276977885099250180305959259035866272195906824212096458971778666885694185370079125374739140905205758789871942798931150519496400289165052368497386635870360911924299373780583858218400858584976001187107690758699969550791445448555441747742008961304075717830919741134773726697811948488402973206315908299764783272925545072478551473628761137866996414819017207941240775161386743249032748192908283454318116257196780551275647586507532806389776932623635839983052927950640048621834273398315834696325149002707099034624965737990362453992457904467492203934876448754871107848678723055385947939054683723099880618690254999450117993405134919712276930512601170562380806070646439685688776718514854959632770183798785267726510429337803404510779509789576862448291631890029505365930422571706951351665001053083620966986008263959983957887476453740162933320830167511145605554078482661144114720321411413947457827537852892868982470050032300204304342240003724373598532235818726910928111701496633866757764898133268408744284052577726827909579385434093697471094085436605814333381185493858220402886115930906786605600339618221648447636648529795647067515630816550541424265014057795205552467838806833348259587056335609037105684042908830936875796377306735066568120002065198764241395803666391091601995708921886433382651109403838311901677835127244187632357169258029798931774934648902434653303850780009885093227853728099172502425728286355946639110960233178936736859088628543474293705273476325209536618079111320377820452466479538220211453725644594888360089693613552349438228166462161491956341715794903011896137462169458576983763242728936461529953706941746631195608992507628452686531450125566681099788673795382609997299263320784178678700327325366072045439509378626459444590459210577829627467919749891642054920589158767072143337388089026728472132964155871558694762112692255259543664509133005921966324052546424837741745857731095556237186809999697879784149042501240357705628013332765341173934735098132514734711686938114259545814797092445028579266684667803123652060303411940603216700756796575703727496558683533011492638160662615284783087090476230820860585296120357457928114340435090737065207616438609559124613637173883499278545561847213227658489739373034329928087546821715915168942085739817064173780921263592185447104956190478122611244842980913585059211162412871908395311918434142614287294974012813309694538760589627463324077445096582998390995019633774456886962921016613796719270084547528813380360559442473898586740123674625014747289298192218571074155980249776276147558860756173505326450843412829451070062436378234279578416870613745614370977350966221726031077476844896555231505254875910041313981441013304932735411769831084955676968166828035177737036269261724867705441455407801769162923896840085555938633898849914518232812778261224721846824517025032330811742712329130353425832170438777204574194933348168928368995195417379410239471623426464068096943921859702620161897354874680303222771131428932673553499856365141552197590754396257007423654841322798802870216907438190636907690280720704936507456454641890744721706233080919408460547966803445614262207220943823888160198414920544836346335961765113530178888835573223188915005808865376158040848809040992050375468229326083191588457407225565346101381722857409459539926284773445190731298170262884524064428190912256851769954602190717020858035728279454944135241180933582456164750780108799681787472903350518527677310416675049964316559165699870994114317279177369062757158017726939740710240286311300593234151731150635502939719543811924811976525822694577178411331773033715002743764073232468941381972560535699237077487680914581738465023373786006931988681670925405168571491686135121993566577563701565161066125993398215603546633003234151851553962322596235235531150525718993291038578305320382576623430798461326221681547027370819722628184326510212679907182194923053049578965696992262405780482912282188496916605833186229239712539398460711045991189427655158005114263702943059708858851872357111521532763837715554346394060641683032813486904711841600778235061762755975078310889919540656965500594081441034648954992755974574262424502924370110808721815493008020353937036587272254673217287233190617124653653094179704322268257912635880458466765404251822572598185535919659253558699982573504849071250925383057698932865602797799064112908311524831391111682503196648487001511891214742500889610738987056808086972398628369032169286434150716184082300647979032025954879624452010786674332787708600289696577117441086980682662114418092925520362724153510124091391560698670838049764117472424938294059090803235695739670704418678817225654970329222063275145584484318857690297150203903012413641834557931455545878939943216419387318214455052454837031141595702181678141755567747015925257386555033290021772185576837555919047141882214296966790363587975036881234213179517652803800358591365569237273682437060443876959260163886666167623177697994606132320718939692796329173374522530292078748184622999354234296534780244355623861354807787971493729531198746342837458997516947497366794911854187855863588663182815166639029945573287556062590783070950892126147374631488363232082335417673805687200742592521337659803409916232757069966551860493265062006786827363434769340111640873924642631678910809237009448736309472223998448565824899524925287707938979783674827433334750847558307503179616046769817495225052918950149150633430426000583506490452184581498920309271299354786932277363609577897519932540241672784239908569519845959133291815660317306348868552096461758848225051668672848106624659886215586484383079211317862465109719730160826418507200180160393422292980905345114551970171829051147877327309776137936822122274004222531799012107094901425729785572962606317341706941612780228656293545049528263403738211602932501620818137064931803427918450480857922543615841276021913271570980855154402437819438732549065488620263776260724216310962633630813331400576606952865146641606785284020960864901636736308264848931145193758606504987890035724686146646831044000625994059299981840056617503800728555403930571420760883218980673724170130784041997457160448880686418736910436130497331524060697926475734434406953910561385555242153671189775162501770616722272952122388892420721797228928986584567644752014014474499416678313401185299707109477364953787775950211550795214640600359402055710821793397467575671700893886228831044334186579468315893533289820470273546857816537771341331435888555765855060249435082558949575313558684299832451904066073150282274138054446135114361433139241273389844679146554618850504885093306801092366684786481443811808024146997512809462494510098056438009794376345725618061886090328736885959540969353452581316711095709790870334029441507429695380229129174721323317495780331349224633643865224775045346454603841219161714189764962106624566024171418599328930827569193412741842512936814734928593980218311001465900240094393261822921001405150354538420940009138765406896895011082784066596548935673075100488804820932950315544677861686225023275796474131237617980837777898289311073007264892078100990431891054217689816552932192597897031580230306115588941284107062047652869072342002757262215790790763509633807251097312869575690094235913809049003849882726777130713308360017234106907885733154136687982332461924281409508727166053290037208562770734264176847934306199185857652750699332791898999167691181955898659977934003552800953549594698685058056293465954335268141928610111368658101976304018653769855404543713805040407546270327915308476949084989434326865683281801650926750139765857623962613754487246673460618506797122058818935845357133701966902866326523681894212657984442248532226847107111754194516264074159247254972870516488862947183640273725936003750960041910447429433756538481934831193608983116335920082659849335236360312292198067410520646291123768232511506730580849260277896094512095486277703478787089880350230633441606408872478661241432256046341376483711874244525328196575271711038393195007484536804800524502215413358561284969780342333434771787319721053186469114500226136378489227369726200072662271492031601643404628241861246024796765248773945119282554054108882155704027279986585590624279077732827340259657644546519669919702917570726561961738759911037493283645637190562817186907400637725661228741757090179267655277586961053832538610709196704436340444855216370256474492776322621624712737881200854759750645194097444874199679098523006094148415425915064388144327237892131192182564471919616244143310527758960991966850224425907340497016091362085414765468892280846619617864567906914754172870076363217391362032757492459642210941722929415819942702779871440194446353277222948684486372616548282039442304049380173089264213583575386620558738890195201747988277630726771266597756670344425163870741434162285550630319149694154871099989734164355918871665484187872664444109073161469176563435274168927927270055947081651644085876485550825139822741056901917604645685344159547842775896527913207200790839307144818918631236435919827948027078573349568844667722242974202303415872128211584322252746713816272289967543609310974635769243527243898687163218505222106781982729972813234015243827381246737723621502502096777147423027393484046742185263246703442362973104908705975005776713896183152265727183624465103393245745331654464966415928835351669300322589593385002139042818593103471323767918295917384709888351785593244117247426534219673908751627929129062273311584563649413222814673511792683891598230914185220621566993905687588773336438439440930252692613215948072900058591631751038260366839482386365077966575068682282728435147461244048740664239529915185937068247845901428506120347965220448408400442836216581592012897520370769644492186803876198153515227480642973221750092146638066611055078094832781611550348211723033009903026456501005021818197083060691169799369144072624453669782426792802297371631783597848354506892864580903777463859596748693119439572282627949254220963293379361368908775347725388736088997489779142246136282120257019313311338541141383451971524189136859421195581630392385250319156670916832225620106868350975320317221268668067421045916565733738050699496623132700514762262709249373273768439432557936396995386830144593762413641804328602670177257704286351073151973469521467586203676006409795577494063495621801220961042978184161710554930379560795588131022274072273707569598969756398883391270456198606400238410406941258650832385279806421140652132919225144607053780606494158273447578379188192892010927677726902639468989191173838555016215177611026125357672418415306987273292909659768414537405625260971555109768709555169025126300801003591789638055616684896106752198381556478741379008826108175304786504472301527208423993914374465183676708961914597219696172849146171729364108773873378412901584074213364538173720669937650227584207641428173998359215598401287423146585876561924960740700553088505460850762708922737979104900403446450543440267736485313210717523975773649516330223594270182546547343587809215310779286881636549197860461290352115490165088418651873942347593875525196873865067785342021849947843981879712459685705032262714032386856888366551771044868413277256944211156139126675523705570761215331530104598653267283160709451460979407891164908261718380088701034959149713222697798727280593587411304779255716906328393053980440166101053352284519718725716318910042218799051198969403511395373590094337953802098369950294860708403334930891934465208921797725919806340344312106577689753810573251335085122544843466848261652023536513965672891820862664736493839504619396773170775105083199277347066024241502887684313889349308268192298808472664346079889204844405179489239786983969874399499683210604074396579814058606312366881196319322402486355175843365917014300786530257174756103283215865001646717209563670714500024537425597811018706006451092420377370289872073115418876006505075871295162817601528932470568194086659711491769285726506345068392552262378288621583943437829646131121982369783378903155959032153427580231355413447694954171266440090164898371616402666692139790307565127328735137393206549112141300115482966242786467113558144872277759793316932965930608578848127641476801771590275092104383292536113233387264972670300641345939305365942702944985557394272318698798218469011275647745447897347823917077124059437731694681718426488812044404513306062799653988385448447136067532915753967765533843694394177520592421585434736369410444339085653286830284788016811495856882359193482212230821930878789486203318821496599111379349941122256804092102478423123877135070488649977932038718524512768143534455316629766718371048165008379350687274262282161218490459625708997515060660936981384768291986539523755404013963451127848579021408812173756292219467837407029883986056206502767774255780439957880150481744559022952174922486987264658987334551716382426257670878203516001387363934359004639180231235879527892438066238654616392555906425719959260678092660329234775103988997807197725217563023933443636878353943763976659413423625689910499548086141341743660526683436163079417949276921557319103357035368237933749855085587029587912317967895453516928174899383087136550920249846773966651495862820840778907307397478576841667370994735379286014894515321756001799435565888583326166792155529784216766152387594953501091535160682511502088236254116001605661274398857034338758081525914792392074830702100669473873901220717310398358774474808305452748360034548757605406821787524194561596414541330365646999882688132964707827325659596510769291859094048582025761972449697023905060297934687069760675365208417180110508302746035808114984512235638128763750696472260317089752874865107824773155604123906955912104206466290135960003005876429192090974284949038133061018741404904748903406989623564061101077906879699067039405646382254009643650526085750416733063670350611124581699575625926659102955802085806219527015260329770600035597012055279593129149669885165226190298919096309011626719172523076480314090759640306485743183235271941742005881722846090909349697215107093674091653017851018813574414173934318554451318214492705615697344721979985208841878554344472320527567883722857725320430469168524032884389867873689436383546816673469690756254925837447509907201625211880573838570532834028037396166375671397163172917662598711376976624041401256073102026631492754557256009240304184962957144114558566041606740165195298558976374574380263027381404829010212126892847483599996248066875527064162594828376141503035579656556714413073829748237055609669532089747623006271346701761095389322859495987399706263435356445931227745387514815880114157380023392205581304276314405192109945498001828825232667635399120626605548984793998969845126427648097235772785659813600765797719623592579178857318634139327965370714691822261813379922164899337944219670480388435139707861821299175327371798033275217963585828291556390978100982157496329586048058134509350695650303204921789259216753713292672458161226516042777710027821364974935141862921912362196886422095693020084128516523418961652793732194054354471084810879305816182326616607371952552207385391910860835006162568482603473260301262738668928984137338514852032335792044664863428899198305319832615912300928216574943313548481486451002824978258033055188748095568951220081008950056964033614334447369189137083894857384395462855910124622577615124818457561046685298378175899318323462804927776031611432290052062427299676123404205753203061209909359980612675143697446075756382349293935276083335481926891199931498080056033442784658920340388637343546672503458323754468125319576181238968286318802066057547958966778455550136491900616504736421466313174647364734732502076970635254071657785670421314319775075732381673988923058359933092074454775691232524077349720708525249182250905745153486964900017942796013785476695138604991679391788777887162048041243216753183367203335184998143804691023447701571657380143345653310338246632636724192822987144450237515780445604242712694290928542169431550956280650642132826162709521327102558547911089333669867334558567609831315360169806145945285523411133534714476932876448395889928419377428424734492698236469320095480418118018210366792057746875733822654155461734538727890407575890386389553521360357323369111735994712595386050018355702201164079601611811278384295774362902733631533051761027763414849767678655024128579904863439863328358741306991671905970591089066777495165990242773857819396131155703178932886139727294443196004458794795175775285985543386656412979353117034004363418311417042054870440795329768609281771220882265587998323560222318981725683413864049713180826414250025859308997416395360602828638232292023261962305166874141721785771402904945853318462291627307141219477610980283361319814694405201254567440643899460399338898970870483088028739192744617380664448905621216939962663549552708682685662548911281813058313891936481882620052873219893047776420423043995725968937443592748421633545692470589879135064345727631757056885798952541538864717764472049331266388078183224088933216369463131912994284051565119162191319907000883465552827654235744939058274260604316286469457622074242215069566364410864412853066640020019197604045922241658375815985502722228542493333527563546216410872605746042959366229521259456095113427697434528165737646836067387204048890345945817055748803924747426343069585445794003942257569772475874617796084523606098896237488498927834017667471794521259343811999514978290240261037003402256835057165994109031377904437794538495749672329224590778836370888213032327269079026636252990726074071455290468567135239543401857109359297840053540085747366471101821184892269646954328476446885482871641283356119271582411286338257799473088269900545288294203920048796409048213635285622351033501269444277575340303651016256370948406212260376990775039116730007565438011113579318062360198114798213242422961234447701475087971081127516793098614594377505821430843019103072929110975711705267245805828588062377787253951143878596298731432879919279932439994009091904607185303604567514490129410760696423124530728263636921456956925085121041560334244772552622779165095030365391689627001518706879448437611402887353870354797320169707342373269305961327461184036099906817930330960414190397187990732751501647419161298477484836670283812442789406982428094228139556245915558126918396126276700166351786526106572408332681999642744237763531144081129287004840442143918744200864359442549578108142948387742067588223361783087693742978662369481655328793525585136446212804278134526560303294434496816721200302845635126131198685512161583562929248683007678136086622736191129324386979200958292422138609946463537376603489438414353319958998699454246319470379743584219663731937443182128451598872419061042316758192281521158097550889084949045595870203867391725600751484777831201476012221011192306637338915623499399090374382809906699282532091731296037919240600253168799446740415235547601581623953002468921682238259640010030514463787634529195130356010097481463965457477600194797359022666111724953679293034037314965096394080695944506985879367692946259638301048163571806354979504390791651122393188016128722083854846564207910165420431720356376557786449109295467642449689879356300550026031655648791036905882928961783308313078858728404080274897583324022209160823842389428483534893165293972157854279629706633384303367286981050218845917513392128430098839949600225919722337973259115339233849859116451229956234239695785347003083867698452334761646590859058070023500562790858177347506672813308553860890373061377798800090670040687029167918048480786732983085295289857094218713002868436579205105058877545207040987884624218245050971888029058486028350180164338294727297190268551472145956530250856341970439677079783325757468920245922417759778868003770438847715160849611452710480887117670277299745198121562413863749140693731338055365183629226091204594756145656253951700751054882068296172240744153450768026396580131741536470643541556231604081545046575059799015140502672076226136802459265320907168597614990366491660533877246660353351865252429316862268868612067017670458087222282840843920365556409265367898195833614117958085183169163106974557226104203981852519349454956584723583452881895430770009521291843605447630667384961611143694745268970473595113064919467284461091570416536418064409436507785981645693792704081339804075258586917884207573265229415308438858014699233190387838589440386549130807130226652711265488689528469376139200015243937246518538787998378468101693867271423172807280637236379326961101874186429032770517303491328424767628123080222689504917655240983633221284133327769961322031560734456542762575633973738400361570090786631723079239658502238401898938688134283992166222952921391987093016755045413889099884375272471263533446170607697169410047211254780759156558960420523751834286191651880361644241383718989817459079173645817628057603082234536468705792339028923635001757264666304687156411369441311862565763778955701615305057556552270420591995306654850520043321887124518059883492459808993736510397062266994348439999606806438016091856911903992272432043066113953865536110980890645129443866314414527426680330984630211313244064609585858294219922227801813993589069802002464705399947703822363352867993376092113436440465688433649824696398835613354309137301189832768317334972703711221651177822572209550175464062992390069061013039819083869346086952837677587051608439189338172555731337480884045928808564095933745965356576763138699013976766673675424602480129041016973684400845002464646455123958590072339828439833206095181407034980856428331740443244201415421638340318340927360414280799601342750495062196378597913507045459381735323209903543851690763367018531356934963160052140435509603677428413526735334221998339673186812915271148346562989109218344864328088719564038392271968471186674478175913795984597648929886144513132854128151048425634987738750474979323694009763893968969490319619917663038556892021475910735663349163793280896684649587208915659261836766571714828796217549767310708510999504896711831168636997557232490182270311653927777916898520931888869145843512434882193609333066650313064447098916318065886238701901038299339942280415423251170017958927351400731130306063712228029629631032357278775323155637265698121856223729678113083013769545436195670461269749688610381096152361589115559883112320782482971741243017265783797686361000185193282897165670128838421328477458065094316618965713315895765766217885100873021753486043982311580765022065691477720462688441872470823486236479648470204025774706197960001930601527341218946594214109256544908618128815043416971434420239313794145995529586862362367737957296060601192463616873258743979279123033458481348542606840114772943942071127216936538357463939285019172847881427056341144311253690834305076237675049318919513082228534084993033760000721033227196646634414296642904001246234964809588895633901494122987808215777186581990026021767046676911782668427678575778074837971436522440281157489055108980454168499004387999958568079423950762777354918985788411384636876708248553928108640703066444392498974463568351257565227975373035640300157494735859475747298206235205077150010610862963250127254877631938116325222510168548361353003740213450104985784125741724429924618685937539988779780861551113919576570573452076391083464243833488425661464423357298385834442183037824310006330571609788597146932510410299515417757199635968297493319440227974443633795944159152361382808615597909079947021358627254008305152263298637217368428425476549455353251834999202192779882373759218224166227684100455580010084481150241436252824235962111719406761103861927564959722978528731282958047850597042475095704352951391814911903056293522198235553832345652732042273098256940315690386139500963973548923586821542517983065552908069601554534355618381218010064815461592275173964091728833392474372679314229103049733385876603898883306446910396592930170978690915277009198307055627797072369152542492722059003210902484126042843268819511730955231516642324410094059063503101281850738062647158757542189909747596068279415495330412350865835211270459674005886014648371491436157909566171550245204059913646475184473253520662058635521262274230403113230749248352395612503916435931263406171115586331928441480999344937094461752745978322620291025827786384937919007234161148685134576792132003362965827746731650087975574097237951637109461425438849878047681858310125166808342605601633215479674288891342245496024250844243463234644622312267644546965881165893418703345351509927921912107614896636913592661516985441859175106887304303131506634571538049774202639307569482040066723926429060413962205809830280872791301874658484304678708269778176454845799837882270249227558796781064763941464254005698405200194105692491087553448402622526361349439942189320077600782606764338018312242674156965538730550658386672751163433162318799627699358511690149910421923486249956474791024669730266271255596403742838142790445883767472601555014402826937064704452776639550196585758571511706384592454246919832031136964701355363289961171958635364308673800220282788965486503001999440382113574944633881709339310587506508706906918969211437757860155495808576302401574188480775121309337990204401803573494014650877504016028599446445147045942386578191172581968972389039144390229971866822925024039980977451699101129366300758379315889248427511837641909525551231338531890569477863985306384580423687282387942157180413005596938597707668956308440099886024096647323319956897996289977982528739888105548707280316515917044144663781039207156995620561074171081484918466228828196153247038591444650947413841631948388781235039692956531220215120047393397369341216884254655645108204930137197568810289407373503917244744592589488356671464680470776302724952781309733499748065825461862899846969185034073195207506929219834632390887419141452742745922048707872415415592133192543056209798738802481074779588029680319197383293869368378407033226556737899856019739247337837837139553060907434264454260488722990558267967099210543297979484853673189879666724239453930536282629423224679507439376889913616305476434169820277829694775488889916273512266418395454163004311783062034965275830640715612139915618713563726676329127540493922775542756913252375021031643542049831637801917007859082365491988095657806664312057919681785971154541991314731743144867530892039698382108369377659121104686927172226805040216014111505655293340947633373474546131953620161208849370883478887620171361005079349323523954229116065401537260982506073259102435076966041423229073737042907420281451088306402615210235642258868520722231108012617505641454085997841379654049063937986959915151386461921428614603099995296768055446979692380811239292974986462021753458482788228729414174555813597994973975358812393887259304064697369986736034187496346165091509799026055155139553720608765689239074958000282323687020193558360201394993340708188225316873867441164909438826839517660304740795335567386772107235902799929755776027565783712847785679224105487511048923758620765698805869949539622583504501850892010764634891435836160334317498199104833374536247841865301028021793613283569449006577067023845727707935485668842756056560794627160454364815737086770643821320342440202442127500831749373566595894338303255173228719204678116943441248400744640540012817028574420889081330063852827545713646931122503627478634058048730043154486741562285006055169229744441787710841704838972222529602495985402087275168848367791429737260735823333580182162062720455645140377921859174896407435648970581758069042007982554862328131907378504866347918272573027621248999658787550777248699891068091234383600265169705768750931908022288849552328557262199948435085893668271851303929945290222755782964861297066845741119047388663444579375739817699964730812045400170305209299193213045392766213128831862559189604472490415751993738996061591323617423692227753855396303358259477032779076336216179795273819311274809501030344806394459105408146562657513041009193316598763480385708031354365324548698179546540638574151514674720661242253122557573756977624605076775730056980140868100222954544384704260435974271592060586051183890304251686699803717828954093390432620687939573666034414757994444365881567442725337731672131980884071723509225551816865230538329272372098971399403419110102981942444892711221295744118451293423290441482234684787050038973239738121123732281136919163821699070557115643033574955819046423765672893005128128540220901663431191684925943134291240471648640675705530821652672870521786990576242628111512102457431804006466132141670797430499252398754930296667782698162812085640084285958142926355583240497184547759162862453717594087161694014017949126304707903837530596781269341458273780118871426370158881908897199398733337701032524665444923573451669970636762139762420956830478952647080756539157441146860599881793997319751164499483646840145593180003608467117972361704008346245826859410862084944350032654443767840032229506712941160893183165238782787753299735310847048981695996280020240856851129306032423777070771500883109343201925142325948064860818520848968451128731186614318316792628661713525114268411463977031740886673826301746080362865018212783715456613753850474357993969316142489376981123969131454776429787946228686589386246984257955298956869296645108203463893123406332499722660421304698359744176747656358518029820135089806861815764455172843267127740157016524322279832155030952060674177999684683973779923982074201006804378214115252338047629238229721177225597684197175270453045126770055673967732232376332089331791484443948705495025326543186691294361921828728492858475220468251770567772785284572780188705277481806611266782387113303109597749607702203620303972642684409992318587369280732792386122243030801676404111538669932876032172754117419342283948496665336330705860811594036575768406339361294090943851380521769292408311964924412202112118043251598736159466167832661157511043735401686897090431875700322754922372178260093592304622735354660669150333137832271533757734014841748178372277208016007108160502389131671111390348617964934991984294294390429054208448846495860217530727671801372886297776156093519703776040045144180342791859717252975779329173309362521908550208047497452541422611860428731776974961967924759779030946286350040427312681735495964016931121856162130765009399327131368052167262143696255115848691127825290002126320581623585811426393988752991392725063924643751122253566244392117014559374120543258423542129346204277229347616999732015874077355481050573318364153832682274052956733970100038727303812575135680942059424590601954089194478209380747953862761282771502560141036959321294539526179501890210194276949994269371470369843520745627847121585108862620751655181565749817668043755588433332606494020714074825512421562876110370752265393637954149880281576227405489413034905137837058199477643447111945057545048275768118042318553139833475523212575659756867461094185543486368486508059738833343464897050911954316180281763072209564744990031834768573637189087016557593909215788587484017043288446967522248526594861490252630444190409204542611115975655977641491647329387051733889848286403130269201989931605845235133664480596902612939354599715124323665234992298889655339519557613661598030160634360425385994966022943867251263269367021822945446328469640075201241878566479518668117251699807267261412930640550375676533410911002903555011128251046793167044431699345031506781394519460301564630548855177993917021335478339536962093075534762975661459853776904632852068911288997894313714255580615579818904345101358717813637225924113207636234475297528386321979587267771576452376592690644894428187625796307259538265273324028715942304761849577323458681459321779866095326199114278293756684036800004679352895550153406048229636183659725360776651268979342484404100531419202794152196965533877327915872218247193172578524138024900356626020935553464451991045826491902477608349810808850693338363461446757572610825118621510585374790634629216633848136279625883117364147902779935777369380076264877628080627343569104842034137275357816177553729822329843814902438350689364819011563876322031786983939785166856385141782476614349138187156389114176095216542952332413375392627523125922357806944278145211626641649907097406270063197753602651313827622672559155443287591538283827968325017616043038480057117322803878094090307453261021017227147298050001799217174440446827678505255857855205745338799774259546611339018620766105842138905052261548808792836502141712370145405532841658970973917492363956781541985757782596667308979512496712584860078474802700780258733059770424935965062285159137671425862634224801400711993762735807581266596694075373844113853857629850327843200117477933761923075038580020419596010218669284734478270490110504997148161809817392032379099147345636537714351061200335171092815621786913493291797033613906264747929606473891888082793042842771291242639979897308963578841882444157115712918701524653530357666165822186901906656242569708237576058642035326966673662232579157905456650097033084836693898376419346902537718807438020448207447743477153736410368456258648410066586707345170432829711980468672157900896024382064472127734439452565727073744139422250313967716308147065901884906113006329320710535820160362135048566114665728925203584089096431109813905456882294322530368634879786571102839814080194804231183773189669655575545309207218654305323566820914385402939134680583403416346960009607510728906428471616904126803379998549587101351419688775735825072230672761147418192658100652063159122855961609165046950437610175311779856757983176468894342249235874642093971285570962816031820609487233665249230504696828362465647711207416625333490844835607920515851201597868832581503846948068243998956265838208111368338738214035267803012685067339048778782122796314405285944384247946130733976550754011473140321582247847688471187745046731830044251851812182841701796898369165276462550348949376739352052646592875236704009136246104134556937856331886603393765282971833106600071387871667003898100797080026523583485082972783126215442474835827510449730974999682200738000477453347847167102951974978952575507226325650577940040466931610189972001828792021391138817829260513446888401215803406256504085167973012763103440545967446817324654679736330622666229895563892031191296721445857774067657701401012742135270076599908658011218728166074745879655686622713400075062152854299715471711362760036920141817242936033344839058446051034562629629070781359867692146291637085927888275504863836141054784191129753959213642264221687410896291950043653514988428408890852580753679137598663416368283761140815626142718740947469527915810649759010052632761779553284184660225695866928326160718079886377188029018429067793747491034827201015349842914934662982928867018617040326235437942010286689439546113009496437009957781581978857736976927021542543768166163950304504205917264024154235943467840598622353842912282076193042727036117322019666740759303852457879830478629662603689958434649637518506590898250303889595939837793312202340089162731041070802353308436075455506005318986896279524701968532253125578205569533577022932321887864048705070041872934260211093650479804094768136820785460921533043727500259435005583967015503939687792018653978980770644022626048245665053435664356343910983055152072411762130994600595385217611184798745720020523039751631905155055996674206120670294098709005121183668328342033776173010342601868683259642017581128051958757771597686508843017057635155789801208446839731135074695184468243166959455131146474545537283777613409050676470594490746090427908933262272293222286870211928388072547875788817116275631313545173691874895972091521928508002035336263063447165040511179898773546201886539928423339339307253373924419797101381126832137173454747209755326991934919500697040668836743524423050487841815167185499155177493616811247962099780870555413516942636937242784068388783001375047019453428884069510949979704426530921648725939339490003739857218071393402306859980527145534986585990086234250149451807188407682291457220939385933343587881416605162446559164258454550932812160942531792377296840675919099655994438929710962774529770886381166370892789117305886920483036703995505820913096788506412288990692148424914878145087573980419050894237980971628003974137975836437753705260550565075675270423780528612371131275199426486202343442020344815981849342118633128218567495538070198362511620748481979110189634125283409327101937064371269910245693126367175144634288196391797002711834159705614192543732021517475372911107740816518639947181093729513449522283744596750646161748554151050304732514538991711868974962398052498221358823545252978975510411637138562571915210963132459292105566508530355781818741627935256040777346131685153682202159845817639351053127141099923466516094298456175144735618686551874898919363144094565514821289544056944541440707238536671902191289514260867849803279328294243274810206287265542495036379684646441221364067671091871062087755984178572182719566456346827940510389961328709444894512886326653916043972238326480790722177882557459229880175366609571009525510218023882937825570349256728232442393135972957636622595381680278689995430734325399610530990442048972332019368077334059126286158761412975393982958219400363738963601328797640459095949947112583731026343086472267753899445161341043836755158107912529146108444223794809793855485240406503372557048396513155022925867772240365122779848030203896282471086986310101391443276101839745665912215626729823981907789400953623333745834043198500584571898542624868253712712172069751695015871072045407528347727011777616582687730356606648015702896628487168145584283930554668946594702206722551937255981512331372090773299990707832221102243409247865155283349318290330877760172993143908447333186152602797550765967997414134200533781214779640200569690715020298717530632722087330458309859997920882925094886460651851239939552078708963484202943301274940662049050313285313845695347896958663141737464317220570768382346091751017236029178391103313183926925714843202858922578412488364098335727764089645950323563710122221468850738734945839591854025200193770491877918633272354505142780316938388161820687009156812468021610971171904440051319804015017442388586317067416870069951949565384292595291050438495948166986015613133653296289791857827268803896214185107693627534056366439861970705447073604725937177394789654656295173199360773605838754000841749756136806635461061808753550680380480732320735071001467097639879722563587610188403593543517091458453708836948862282761911305015153245080570167598753483433088876739774890431540667449622357123370676770870863245858987525637400763898706254271238842816954916174783549558261568405353414887249779448223372982162553009803568075444203279723940830278244223369127872652633935756725938485768985406580817736343188885083515021822493331949720028343556136180686429941091737751083346630577554523293539783964411563625409925084327590317146662103433060414120005364318010787715632899921551827754304527020982752535803174977545308816710557293841520435685728557716569188040056100852100313192546955319435441630962747817163517209631937510226480562454579052215873643353966085572842545605444561573802878610188934892103799553057377455418349821579032959793498999355020100382622685250750112069101304319583566529436029308506825534420788718428902615677765791887620498858132099135942674404488621407991889543132934951063301984975156402723155969754776012575321250237051608639789041988075540302601309967508385922088923953257280526180763516920166466408795243172705435803315618845240231403372770899105298740395719257253077867506325804746031874754288552820359188982024217089604649306607070064917338239668553852836613904412363597085349074708039854738950839548217137882399759753923715679550627214974655347487041865385734393165395866792887860020552792059509289029108259994386702033634105671997701243400058178944618714747224318387810593477859509540856535107554022546505421518887050435825011076238691369412020753248109651348782509550135599614110937846186211114000204253132316625583985660436067243307637692737022851388999915841807458438007773115676440710436987397942007633590178566152918318932337662408947318077289663229097356001213764296280823313267742215451254407368359668338641860516218977300681736657838604364170878073218674567307997544724304140256712642377589299569770621801910490656844844600628832106244241975113926862492632287457466208252916906474567689866646988269548913606536529137983191798703036537559095805323683211999351570632210266509545656779533208339836027473415926152933701982055621416986532837465447772365639101358170829736054522164937478546179793242502371140937575156838127920508469329074096517526842332835830285952052318651841525257978625446662539648491132800543498997971343897428403991403328423855672839581578287614738705716622909107145021445502789159967923311995765643411546435909360477680096970790967196301699700029079764340073651598147795834004940476468450881403781376300760616857810949008514704423746343408916239808436468291203775136186848212598256816543824176361901416424935790537454949948302595354193675885015714939731959578062770332637333100288770626797922973096393253462872497768491512401587581844943372493013766947206529879020960325628797188849186835587917369418974606746840006904376532998102371814092763161994904122756995899247816660086218764303021712113281501110220976414472615824336364284353332382375494696262069243154835664867845274724401461876244704767424689156272231895108010383697572074690004937172962480276979310426333648309905022463104469507856409875933236043907061077026779460734248248184861100405092969400775174411588831646306809831282611002558238675249500964516201854487700154782429079317474830513906057389241144619748671195961751056257148734675221157239195123650163126575477124493996680950645995419292909604453051486876663896510643596755325162589703912648172205493618989898965489727130228643410137803677353427545689639690155138016801051584760249668892826235043371426875703214305424985413114570868280455235913230156617234244846465493493737937164787912285298617128421567787900504469594195130123558901337959627010136098248269758042414112900310993676756938497769190412008571354165306310855867268077430834740811922452985568171794061575105610094533261389145395552106028719513141900203753485237657677394041485464858112528833761148290585793523823185274163370188784852177379718748776871154349706226890680031303598143248233392555896606763608194714287411988068150868665955118764917908245311280662395738771801788164851104883812861951474885696636981637994180549655201981344627231603070265949376406178887968283798236289860519211013940933953837972001229952121791723194182236484323562485319840276654962553497326429779173254810461113182810208501967036958927415827815491440528287065839116881504468109846915046415716829364064102570350601366449033130540757508488246165303550802165276458232689728768608348504360275402225903642333999896934132443127692589749346465544159327200486574216969088277800418182804008039905572444045885914640856768975523522471625172239658625036840631254182380922895056142107851600562538283947069330798899262558088111576222772527021470346486774776093836515393520261054169266450229477844324691191590681189962851947030512415983273598355744706749227914944928804135127230555644652604463707032527152418753981458516878692879703934293630364477660333655083065969443719952720691786142358241885498630377393049270055681701631700531763840672161540650663265239240618461800838886716725993724170850397245000145380815261589761943191339152139110617214152648636779890764266418017462696038592018313728796955944390588515805317546191961861877082790014195079408798044721353610677608237030812120903137132834271234866283506689600772279471134728815365500011716171780677666449715206572020179683164711769864231994360670951470138672580860469411028548202670737931154734217384198983610353936026718286407270259761241512452096834041441167055141079696551734263973054526657124975291582371502704194456447160549986863046280142153174732437022871725698520956969763809143507623285647113255590760625211051497417213839753973428714009496893501174007143893504778183175976102027888374442774163157987036225026694445854784167507917363345162459008745590797379341795149515614171941018451460018066257838579234487992715835680613999239055024593375925410866784339285151555103313381248804985612472548572069376235980449671776242546382713461044438926658295577946075957560635197820370222245607861368422327506590458161282498815227849779180733185542761322893781189411709032214307432554996221386988909058970871315444519861719639571642672741036274600746082178084258681193017009447809485248646340787361296038754524279511321357487488073145044887805970499982245987962222440169439217061055616455811673081576550313738865082500358687288229611545773786691505136906413577586450487990910418471137625505983404977155520156301914000380419432883691226422042818547639539988943914118294407697140289517831887172553863867682053991730342728959498829636267821753083001636293323441579066415065469317170635499762835485503869355204270816142606930063062161115422246660248554598983785012938212269393118674007067974617012085966004520202591229212884598478487497437827647127333853250664076112022475592506448127062223671758956031968134061577055053830390868197056269706105081003401032021291680437756263855465188490753569694374384220694603300575088631559981489918356851020250183969168155494180314511117725303166221441409226440823542064492061196036788799729164180935406492781497645691322248307459051046306066671016427398537388445760152314872547637387251472616149977116582876491687039813044494042755390331016505403394229069645520488938364058264184331183972202805236460776638178329277842277793140492231719277469176680426347383052616551547987422530734844539565277854824946975124437816279015179256062917258319296445757664259288650520272953347680232314338637763655756113202502601057955378899868226242471987024237302662681135504043256177644454968283743167619926908372033093721432802812942989466971005101277075743578953841210952638810806969135199572749149084397078507859182279054085354156505370348309503423431596683913790788243283553736810859581872167543121161041827261574800616881172930302269162119852599635167023657882136287967266658971308156542234704828135137844175517113405715793783112990524317796714603595953792580087139894939110072735441181939385274799990486693438209161305894578344411551335547593651858128596973726893205677768841526652969153419781484334361817409603559532366991796511319382387991617216351884164399617432260106234850475412910621758398626251190015315658024018455560387541996965254985288929713553964674887769492246923614620466081237958101713006250804709321605047470924982846378880006296380664438076452315983490115524588621752775708124114010882236849284253460606303172421263029904902106720307624118988871161059740950326240812196529609516440694090952665163533917478748761101760390780013539697590769526755001271085082794474706663755341615309509856182084896445764186376358122577697323520411962916802905141957150544771455767714115037840060323999705287171402635488160802986635996823380268794717041252002658399920722369812327246800123252123936079608734473650000697412247921455984274395950080092805384009205830114782305927894540105087602997999902618213629663220631351151798080380157398713366732627733046656724703215453331515838458424815951606377888549106446183583315426558743975481824604495445115401191085017015013133247778466842703144758499591976968498994968037584396934251124868913765288660167589791966087536661621710065487852470066583696470949793645830927621346926748341812531122172530556286702972971866323380590797321462120355495973548681336320044066893246283984796538394057678045174736991572970737014430527661508928447599894443147314120152127997065051252458234755844037819888005071664454862867709776021278581968211520189229051983618815999802254796660883321711635386203590797086136388430120787989831972913888805490020797210101843498930294198984303602132621051481674540994960863908316400568459100493688340795311069862687618486185085540682796696001786640074290824243964795438940190416825389291978096286243426520680490012305222169818469592676978029536822268726542481254698471231177534992778734257175709209754292779291915377020719174153744243490829436335195948992130295556637172344427865163765286448763251058156202706916714995765482286643241042318150143090011666435022914329459748116617009420757331221322633542445610748509760903657674415333897329552809250301288246544307514453553449266611818695357860901826657464414354469801400830923871306270406188549201590852750629901643239338457669598496965690277136113725550971612402314211295861987000984852696713896877874340127420000876481047166453988954914082062059290305486376917755143205910151989568215025881087330475233945511535435904652562835075774636507189650131642800732323967971730606538773110106477335886233956638515762475694298963093051334225167168560492102051241222328790428303681201423916620829252740917506816493662964379752645355396134873344722712646025251939588515867013460558139312167386074877311008176270656217327699320487856573050870476332174488763271359935702492390402175592293854725692462692311425854792587060537248133064154659955143444587564658170684108409546006736490535347336246255413956826285615463775172425518339678226441163213318499108441443950293029131758251921390078168907119335782829170423066449306966840954016119831454257670924311434456348784699900767123968150598991898178977007021155567610194687190037603880964671577308601417188958286743005547754749714838563893107254805020281136093674251665569299968273867063071047452444756857143297499707601497098829499201688975353234275053967553668027698068701921100478366547792320369021308683076285051838391336784985422392028719196130968079751143708812287630619290229817155047138665894132396909750567589112905210167561971545147716216043969861529109396469795740382208844914431429682725942543876435535075354452355966438251093866164516246469432963251093076577189290171196703092793502421717905189202271714492581176274649532490822709227682191848995350831610250716767062572001262146131495758404201787921529134949121810273284006344859419581044945312792188956604564080019202003474155912464708292666784102335631174476874646150336862733312619147507701729650349904748993126341461115736242617367920088921721986586284992561955694540274999066528384867007523895305805885769060673162564449059331213963073561093084381717215519284418621816893088517000815065633417558746201029468419999329250627551893837929088851481103334194283761158621230221037427164168619407978370298383610413846246988954192991291222593969197216686739863839617888767777048988889136028015520386506426830885793938304314054285915197456002901987522515115213267076151788102356069477693273192938374413621219082284422137653952844089147263805656478821830822970412079578909085982422033548753493482097366150007590668300453563722136432367396086792209726134520572711472339998456896555537845938614821515769548607065214451346543796258987209015824710794527793639184775099306507894229647605934191003928833851448894565852889137885685244172970902749132742170134346643048117193825812248720825034448321894116816760231433459641164055221821001920915027043614492957990456603375350373255879351882487457169248693286289488893035990239120106738739031285264390700447302032062108899211917798966107410903261701060453250284649571340675698848630383531310989884073586416017754649236476631476930259567765649472664296199556956647118839042475632136293095278180723090934809094113251460569322620144782865179450842289945855783439691456649503660927161282546284698977532417852598512416876156464796028198441058281261625096864460897655100786371807884856868836684184789615330632975424143184474696686068740131473780687374585403646304332093717166000631949434194616279994933098176142792994826123583950549417828462298272839147489898023205149705783793345079242193106887135194572436057679994869776215163183078975669532095446749100564951643803808240948667541387237159526759568350388076093803001721402638038010048824874327747425209430884212564964146495173587632748939915188301751596535538169866756335546361227304572746141311410752724404956212469994380494308557331920892065447786555024615282354345932297282648468587111613496659842597097924482307579032864961325033430868238711759202953787531123376696126634673682792301230127638734064937284706801972823213667612474521077046065551365553474080259216343649323841972000026485216087669996639110304927516915568358228526029235603957261288356335244659524567219510552503043034424067068376794380978523452430838770633900347023835330735496998339706806033400993259244775636602950861591262809227338603489511551363260184836635855524558821619019513497574918246852561643459815573812418033630880976844920023924438506242238924709404335672003568774146839659815791838674527434093426899572394310618835262826250336906719455982635235028350701105014671398833614863700564397939030187248701185938336900596681114871687490755381719174013896186232625261847422557294747719732835758198532616278110439519031883247454061214002654430779681099580192118185696915037836582781529801439521581309401562168356409339125813093823719041520878446726446862900704768438375120722135082596473666430740997040535324149483858635667774815279826309633601297366888103232415057057747276453045985323692577236237708820119577801242433905791476702774057599799141971494440815003991673369742395831113129371970434454323987236001398126465979817880004132121945104627967772052109472446434009917842695238885432806483874191880764019653400420955526648835296096977875232486126588020072028391380947813213595033503113600374050861590677557945457662526608349473017802184587593241956978863062459705764728721559207290119477287669929100944114676825685724936427187687212984609277103901850078905638502959620828442149601422044497183092682656590196351235322677631518820943398456948316981015278166561541857681701061355064117114127027363883839715332227483670303743797297060511287096162102835064077650697287473024761402149252406909798458770715614609091887083761087208502341310231969811002527220596084775701471861078234453763575823100362374374383465469435420283880325727065328658242678433386200465766824461612896232769303294787252239142321681302693523638800381774157153817909909781546865179076361398971312503679514486727600888888112698425346588858330613094562940365799919216798552974089508144572993438377542026381337196639042790011271156189104241392090502526183220732314715271325076888788149215485487192487105791549504491830242777771462546632238338890068156491673356477477654235729940414659560608917909675338440879501359422748847422129754067166725175982357099958530301110871361561961819745482287763763545778004712581548418595530523009501802359490115549161134317205543406330803125640039126458071158918426321747781181414340951537375360724321416815356408861040591802203076677843665422100101249859801039711197779515349584207010916785877671942137718893787693416528545318236497238386763828094032049517449650527076071034328308874271278862112443545398280441877096299294603138879507536679838774862436283611530934489531661089893006633885099083686736006125406474761428660218888652754722774820808147799256944860872376037093798867635510495656892859463168521682235627142165907491587014640252617070700689907293108232937833224057116607751946937190498490815607387278968471758202202575554478640566748683059800937251167852311036794482290420388594828945488784591714240577952528825314721211151271731942499924853559014586254435079830509153772862517415596400818170384559473681906881104170620830909935908765576419681310783673651888437225444358774231929684730748483875562804331755287022268875980873387391803178334582302348035613813754724693859186529249430441332782834754560113275851775015557290895473950171148763757302925750340026266771021763126296245562548798335952433278237154193451307396684477110029203694889197570270506507309630200619273680942662759067949717995212649432146809215646110329674743535652419598038397681251060946170459850042809966876831688996583802127778454906469862160916558195178563731886958218252826204060582526822489995006433034780404737190168255131809727631626595032082069703977692418215712430794186677488184236314426700665213855388989980710721895817442915337356903469727262279505522551501100267159719285860402541864819030207791208333532642954381781462065352315443527777747649438818052319169641896530425764211631872812959226330012061553253028368240269444202953864542992295706108140043111185181336060104303524399229673323271731110789691443646804435559315211008184898253113512156299563055152991592599427532880589475174289247879840811192084295620204578351886465720277716373810945877101197197036837080499395009611213606752224351275045891349671729404625852232416299566325816957036975078434480757211789788005373436271686763803905323737177678633053644384894677736867357772646777998321637166736519144876984394994886351057410941437764035315041551432969935312283353896278189859957193841046921077592194691859471941728227885375427814782541187803962582846827486362594620498537888021276804325513215170169915085154270039316372447614957593048572876657090169956077432859007179853069701927571554886690695705237333323815410838623172560189210119374595511092263270396546836654775282917772498451376929126553497441937776661816922251865748711850139363562017208164911763429026634170472781025511550217944543819249904906988624551614701006913527455807534362398271864098768183672391353305688409554877794602302390782054929162501821877408069976466881778754591248900299774527927741563499490455538522448497975347477454552824261174857591045564634387686322436889802157660947754433483331865787987216189422522449977113850535186945238095365005804071417478142750214223697034207116359446299961415792387298110614326470595439620682450947651512008114896718047644000668319490888415385443217057357572498523790944882966616638600995035188440862720180584381974854494789269084659099817909039763279391003636739004971758242806028321604526034113534349447597456008829225003865271622335137654695104292684810478594453171933459604824958898110308262556572166721677362367021021256774626655105320304686862440111851952233005737402983031186636448236925347711649605255912459543781419701086735555151208985547598064658832300904248832146755577259273940766548719837752274306175433905861916707540612143783023582951566714521950577563706837799402102632966869243825076121296072219279640049023854828714569147936460494628495159306547591772836902089013982257789650535208863952291254821708210050631617659512405529603275776033284328443508095715407054438439346357955608581897067705587986743969219394155548215390751757064381768389987479742572609063608455220557087681388095132709009240085903036931813301229579633567867688361269948363000700505628662022431344050820028151893253307274434473620418405434393907947471360197352302579954302998804791285948599858209201071459856306179256252324635784359039581588222716599995397912423469934336467836859016899847426737697234599827457087357567738445575081904932369386253565560979563382097776645465338019590835135094752236640403115294359503064656384281182115282127453133916571869729268996763059710948534367404637063258365549443143282269714652392057417456256725181137966798109414254525012758908353499532559224171546398559948333466927390223177094963769589713281370566555871767787281947584193543801676657374635668003536606102422998812227086950749665789485828143842374237074298887439262795474643891267674975555587626257372923589628579127839986515099318346372198453941846941847506380060429898046307886873229570230947625088677560041447223229903591938541063460728408596384202245710193370910439562191731131959785451033335969859227035476208958678358381574831154976393146900390861857462962701101143191585641638721081645604421051896705673219526898094308790366013587523933549283629141188236147303839890331911086735674154366717179223487440952795068970793105179858643824344457300193574945662544451367122678391453363248401175911473753319201264750243366467965722118023734689282571802284079957837773507631960917688486161443198177780472531670264425539894181095335822615625533113472668992561800135061571464614239158739950994331992803753319791943319903789835135963154318215083768211563285936415326567062623350445513448985986502617279535544388045242878218874659494578241111540826588948183137084653315435374529060902435927094191190433670397750106722791651481002477315939769110024980729934456251435150160812646872545560713916678079375147370031465999589900658443633377574062277769593082032016107777425462968948270621585340858063327588352855725731312845234148809873173974555308842592322237521576749161301995244317529105101031805339789831691462039053067276568087512132242671944867906089426004293833040749868409941819998219945811163777982011346806498136725545763160034479069265264801275977928022366929965071595985706475933887599263047199851710773704328024403426127478814766375393724442941994539636414970691922164702939625262473864889855779892890236932175280723564489196255132415128089386218163131005434782347087216472529274225251353992245267642999692614467375052456152011273085423609675462330745203053969068744760841253974932980486067040152598122422538013436641646920436774809693256858386869767281458111674935368077461392141347618756409363517119853842155687481483629515661650136367595829579937985063639810643516016073267088073024144550049402106710930255169378328915766797290867025399933817411321532393588094941789058719214612034429943539806497915351291441811089672499070560907422513575977913190947699211451801998246932488517550036356023699763400060675165498568121949667861868432644185951015776304240095899076196149280046292367308548713666303931949937489449937359053254363610734806797077930001081207958674387970486916873027601647892767290389814458155616734831899641003630117529011193753602581401181106909124512826901285651016188717986619612069097071402014594431274043460001376276126937569743525199082663434046307787278800798980064977582132866554680774485755337810327400257810937068417058713704037036765441769914384050313031026316086028716712237196800988893041736183669736321399736954625144021461407600013505847413427207381720233042146823608423869641663477364018819223948708061929222621423083248672688689589281267660945036118292187311359114595739719093055209841856342535310535313277135672513235735972575304200154948820325195960251784477870155609110217353451051831745152190577585308723923921538742706353765200077236182742214284698261245218887329706422753448382391193753677598194037305024049741623003526137187489594437426930912002217724989774833498083523044954958049215461583132987657316121303937839703639305763812235688781795748761941540910307477442570104836550776189153225273440167665140494299770978737594403826139672008671320486369382169241426598847059571256130424270794292323913763362084663057616488148853988908298449699438952508879606698289052627962885331713604576216457977984615147964368329651965669989026668210133100367043959152092294706277354540909625540266742639760168906198606958637235023231658997842918114805710130452210139462350406681024193981727553669060866938988329442600123292675245826697946385294302709372546697467082555158877806631015328524305180276135206437193979866982104428460034996862891003992266711519382428508892607278304795469410059411953233783646596457989230158672752779759969362592549034496275294609523461611531062434333442924562076854533255523556330460228164500001920864725646451745971523925891637214042642309355084402089665808985008194726045969264545893805322049805237918672328047456074584013206069422326000890060753467215256892022783433096947968028329628894966118991678553286659810414739033789936159758177959959485509676345645667473299731773326822420754923136142565686522968251832974858903123823253094382405125014902684627281330414866928330468124139932266421640840872151323147032452112418979321064853767916446663480579748863072964228046126640860740035696396047118423172840412197907659657607343684303531692155693034003377345590480587319097322202398832426670256863067404778938054591643950043979025320014998773894679336039192105933042990893482181530933049005885826067559810696117355541953384144677808692666438100597632383917269171131340436554594235108503816350080636217542331065459311708588239336714764868124914456461428863418285024835209408322467255653209375187351725037468561346750760665330102631866586691739951966471693661431921219768107110969727891999279111937313715661178748822239674994784599101260452325254339984406181105173613552779913198396232737467454789986215190202104885258436504446871037292906195921794273903576347900901865207254733967813732267907962567703766810836183430493958185150242126435551771618883729285958859715361364253954865941453720277281267700506584705869650270819133960618047194783139932848150158246805466219662053757919201096111373630371060282374476975449510644095611223556067827366742061457534427525833792642933998312106640896042095248962701426807104604939017530725715242827812368277277058505537641806137586774980953404402080275693991089477640872254803265639811319017183936998304079475596572746269309392011341540378944720231245518205126716125052879198875567708627267348125665086588277958759389099795048391000187300761189586799864138718288432593019956645548055639687899248992591503211476440578857392022321955723652848378955435242196651141219156178537276372640467705401020273178932523503503605376993710984902755053804724822403187979847749615193849846267085385648211191415999042324254821105388989349083014888156053847733388724350900509329805622899516776215872630716185446719797256286046188071485425129384756534554107350435862334047980018711433658332878063510551293492270629285714706047675097590956353602954933712974326199180028836569322076169566586075332074480673750333906418724592297153649474348730972745935118473346995758148059921830947777556521498000601238498251522071303846934605469264634035602644020511102899525610660523287315281242782786229519697575695286187359860380754863144576804674329248165375256940776984586008938851863659617385153666022252873026514286295606271259123496044345734312428075243176383535124183879944960848748624968555248819735035028905267026515473874391653427258574571857568626467328585796321419121706644030847244055263318734472651084012240078029618004923341993612137404539378996567148189866663712945334040434302430990570929091677047011106503289835226184350328493847534857096256553560313115927174726611602215618880475421864234895928078084450461107993964141475773068729143683167575040154537901598248229489203228635684187740251195105458579297118363370746571142073403169006374964423857628466502540175976413284563876526963717013064929790538782458735105000045664485321658204290844984582709661804041861683027094129630255530558003547588003086760039860573413558692649283338095529148253439667385094222449168770310091306818531242533563695965130626335969976383153780568841415251767290961142541011358641063991623851210463112279047464038464084534034669434284616247679622292037576752073318555797258555692706134436761443592598344380148640526597040596037954675071835467944442929364147402385388280547548250842284514213836422563637759842802485341043226707653488135620138064842876303204670088187085948289003826440840220487580332231180925752177458121454612984387040397565678240820474261975748010445806825359461791096293312571117112095291826195606379438059021886968833098385958951525179449433609695498020073188765285806166376609928487065189846256465841911086807857308025821544533461812143701502357473608986072009012079260773888919090594920909005675507336122480408861806884649776950837128783264806997496667683835032027096937473345715754696805144472337233844702344759962881374856905920428389077140718156132192036308063718298781463032810212347174189982188869968990474370884897349792171164663527193419991922384484091784493585127881100625837652731250992680494715814895519124864446659628213149520635169725242214109598988236334963062029175212429311539094326949567100378891510793941175019488300620660764507179955623034873178674350916984663254356542179218525623062271427483844854799229006136093230629014284333568335184871575144506683348214602625198593296198955230009370801248828406167632417687390949995981288662278116838731398851908486799585411128755471516599790281631667481851480101608714824009040814001930518239910813147552933804239881716770898141358870906143098091372313757478523858333736158884346494443014837786951011293963496499597907797963278464475228387231195064786322656600188392299396590463713329786908442999625977657460203327175480317276323763422789353454906319787783564733159067262184109607964043227718358646893393724125815277045220090759438496994207434587028908100878535710969891870779222350732415370736257585123968153838128620075385633421033860706549214265230209471946750421188920763395651817747305012417135808446897942029247426418316248034540052864472225978931705725193930834818286022959371823448775366927038353261020999892960170856045367236252393295484597576396843635125736089155598383752162250418581577395087105906734441107843300917216312182423991890690440772050208677217521523496152960293363151585323002168198338880626748175277483974732860131442172948321348546247941300466599318232804301679864571831575092415347513209659355286853321658397190333991895858390418747722743486435976568078691851083506912006105845553023134173276089771053300085944818334034318556261255263372688907741045006964963112599960237442692233824253443027834929279229696206426499875332633996328268793253587355128740990689748976930108767406440526561392589616104586182927650924857389151232819871435929873842405516915189948344445416333479868421305883736190377325700498889563003492447365016131264580717692918471081278961690298727982845747173460889405759378240793628261396704437988660170920886333986184973830238296564935268125509790844735147301270437908460396619349214965916997157712300829813849936497871757032043174667367398513906535374256014160222527837983050828326875429793904243173553224672394166140840756659180848031322080440796409063624164102337154447477388876646173022415140958188738651213281282220477400964427645609370874358265160032189172588569141325822675271047939939293950421269682953884804620810418639029928504630205472151446606515453275976556200933957566633721838901334845506216346723255497639469999433414487681017668415464026997571699600480005322971811529687821860289059988577677712619792059184240873554758385909641938924421580139886883210500017213086937971737574918641776714653988414632862433499631238157150207862025116239262616144779188147260218192260631629198627903730060763659692284529507465194121097112012722672529213840333154187749662545850654480626455977954909351053959617569592327727322830703853753976625823871087110484267949353425935337801918593566549307888469083008251863706839863212711375960006148875494935047714308293683760554992118984065634716421763280513587257375850351050908655505145047725501574760416192841730071208420824496533826088992725069446508312827356998143682671429905418998802679923583282368762295218662620750097931373926714990266769568717963785715147708350075473737028508885189573209141405610133140341092639227135574235426376349578123985552228425572339613145627586113733492388594932827007730336990711540164920821795178477893857387431049895188432962006126829873809558187134986149991460458045083791098936153848736581894338863595525049415169022256739717071459301988777316945422489077572273689479976294542085809932982470706473741315457246841908016024507669770204482911642396269061435562924939863225897598137592879578456891622073858325061291374862182074591898636860337691065002150285766809274908491724677270458681951652088028394779258357624360315975690673779063325508430282050653205634583420245773879098562595581828077723490551320890950739369157600338568235410502262461518315117965697119341644313061013667635427343000262535622042324946361409998468565541229589579255442687247069191339651397226325510663159398574725130215584308887372232661163893730064557792670815029486976270505299863390939356963530926956743505333907953421555544885865749754817119515993599206793721628770899014856447111670221044368263391543022968367687754696543878746093600081187137910843539053738762003986507502110498645057456290020041820367497385080488897077286774461551755380177325371155282856685884666872354287609400643604793276936262204424132200216076922006560179205875481580648322785790292909536099113546658115044084023978913067221673722071362176245489677014374521673555695212437892328505317803256938150875529841934521291582869753044736200072318489905398105011580615900027163173459708589655282017172320168521821599049713234367724956926564260006166939658758252538706044267834362224532421432727176060298090370596240045794157789744763402591255922301847527461452823913401813863127460979632463837955703730325628656770547811279864191813687380180183389357299838313759501479339153134545939283570769313494363257964065839033474384198381187065377974780456318382136230748493988413009085703183297327459083800465400450281751989499011699667773693048617807535040496161572430255001766718727441517664885531658881426937242545408990413696167337540031565345481713072139225270484432805577287130136864869755577297830312924251094279979988581282506092534740721330057113360355314623834384082169741561367634237658844504085013985328475065962891553892257739719898753018992272585141979533614323348248234769505084963312838432279735495173451741952817376492622152302030053501401997654564238483522877716484646708295518956016371502709894736140965950800263099640058277655638567041889748858836033449797689209879380085671191130739291861522704730607449766413667959777247359459301877332938711847038775623808439830358067327223067080432130358099383541919657927001056713873625683279338214960559022226016046556921342013277046375903884180147978210209580750966723978941419722637202606669061508422166461991796429331113616716668984442173185625098380984955195307270941783734783378028347443409980597492713540747211086775959517053183431656631604043252970483923036075201094201853683426041039668485666763950850167448435794703621471627708335964751486575827982447266401997157787785360637650957897006788861255051975615874285622988591318249708337108586579463707350749389141398090278462012126765970593218290159559551875889770416072829770595599523144565583787973129978929197263738107280765233805646656406054929969312745450492052790326406390355015171214045064791472933759782191531909700936137592576600340194814877661041696224319002048005327387303856781594999304266054973424257357458376167420095959748120940377376342028737058276379126155095253765960594474609748223618180241941934507902361354903223079039507114550586042535454964035017317014951929610781992693451102520079687819605099337724536898279798996521325680109119501637784763502813770768066946918197131734048674243619196458678542089731687506073273996274163113996387925794384979606787974025063416924988189815974921076743013750478947808248553428471599631791727525190933791527123484051477500808827693984772267105608588375329891613967190091190080982967955321518337964921564469163993792523635865081907409222444404251143889012620197973292046276243454983876935151280829506738615200793816942834816078499092625279943534053145726437740315400580242474058692208050514873864500508911495477750352232234513331420194632872700194456448212100596891176112159298676166598114777716483455039559996873632490399311963851343573103178800015723996813423096829870161435246476203838741376794732927419704789143831685333637235014734788273686396653321787045935259560159931759297465535868667220674073388775471189616478831044142579044670147470842751505540465217610731338414706899267388913278498827477480031108162304917481695068196341251092921063256781244392341201075492811592513937546420091293429331012150282771288022572189835045696910487493397572412189426131168186313823852322842857314790476764230868968138054979744335495065252283028724871172673606869644895033407987751838826014213582294345533767547512018434586784832382357803352939774042855830534474319663696605856639284258543530230320082448487339932136635829022586697542697132862613991402287678833243515950719084912591813792061987861981005518781393344566235533575125512554025418924035695952114179158469931357132755890340928533445154433572546956805724730728155516698590103392974973469582332799991633205118615467230850348142222696496193583213024415006128997697725771389950419241209276467430831597317002718577277807343782938517498578115275281654196448633483019584049612179628846824381693068305075828188393904523834513575810117328650033225134374976934678000217072526087500699109324927929344059927248232145077053963928651430644475558794955381097160550648742657055556744929238609093389125737128733298278559234159668757364248532548423713337862607755195151991203839106405542038212442527819347808299145088623480426374696993673328354321527218033887574246327494104564141061553682258825628102283812093370787565253510191746934700016962356733495562379071947379837124087555951344515485385543988054895962677865901253132342759625241161336691961474452620031544135816541964355449382893371286883570732438959011980078762157673351814883127921204275667301331285192647296176452311328605212981343109267216172225846170742815558421146836481813644360308597921258531143224071383089115314712788552764215968211459319278088072532619179327926235605895645132536895856532407210459215853466158457823553475090640182300375695041307263298655379512811929431446296700572761457445330252867628585912540482212522485050973173645998801471971859605564546479236354111074819924108400153414062951010767558900974839678695596497687876515433628593114514588976225372748195007660060568907153772077972771418805028463176339263323253308928544206033527729700820932031413021421088628042661339814509904713527665864465221501744834495176836015788911148604280605742956473218854404166940005576250308060143692619822446363389759198317460472597579353764385106462114881449471165574423048220579073617362241578268071932026808582374523799996968565761768594366128879600563979704948172648052657484361572160815839118415390855594725069789351626151221735846138185551938984177301795891897285676471752442713993816214651899200381041702591698517922058068983887504778806935771167491561074203779525316389215005330973842762328659748822395405428419925371161819899549383871312389730585259418856098083712690562591927714164338024996867376487566269607493712746118542840193497530685054269890697005071459603240342971002392939434724321856410044497453803387222410471253397999391657629121502621803409137315880039289713776091346816521143907015853343971566935118729747832617179840764518788450222829702172117807166291187253215342398637875254555983281709398858336102775544932896806058875178187371517560364982469529035036004103174546586386738728567191570657532319318590595712526513252027741385482091471672871814045403035620808645090605437546262408121179989970907693965397436742168772841782332624159147204705882099206600388106413225032546400774462559602835143518727727768561611601403982632827287076068852862515239914186660520044872866068063051824856366217995224709382274490306907530401618722992525510586845908361995855754820541263536266031885085379204472326978222011817062052020520669369629846961863440428227832414076648998184119114922021815927406277999488333847317620880380627007366317799673083871477322515723895105251898144956063980343676274368351712625780919502084693501827287638493517863869703227058696357538246378186747891594993400610594220142376533901776936519681028767663058240263928028475999051228819030378762907248248733800984305486571924336552468208468031937934487579319582294903686408057433356523665706317813200213831777305863338326047394893613373580021378472053641570377366320173631464505810555077773196040341395547603593417955170475359508394107858176493043562601348667453600265876349254363339312155466980368065610080792311982410770277946587226374996594458712968196187178023705281837041362900145384376780425893778846867839287057248104345137511316821514787532511206217919726316441412549790114075527922588459712559009941389581195688868399768108406429703572698203389324915623606376328945470284416050914381274072916740335764109420398910925097610528209204971804224130752608345949115614329713823548096323687413008038678016983225598165726508468693136486659274677305112545325584047032891810842313506099345576640245099797854715495366309417894394609636662667533720829858102283817801126363229737209244409216942588952412216752562123665997726462726921264300057803172694523674124892822426621692869392539556340545215014962820958662510107335039345264933109308696701637151739763569721388370979645455089809292396481769569268785515454381123198745286801125195069274642988648279531683030442114997045032463385318255581617695949589055373208748056125039781413777075343602912540655828675743848818787388114551137892380663179249687877012213565145721466668441846089728929079285103112533242352956024260359287123252545648171519192642982028524667361890611520270781541260759738394594622653076221084252342518925411184591366325108648489845577187510100796941740326062005234919014604891927271205994262143476004723321505453826208853504204907033759390144328116399716980928381044718847399394689312778735572452658973932891770740825904362188519671417084903912340888727018473212407741521455175874144795363277239933887250362971615754144170299393214974008661170617654772439332637408691839673752324714877712268012743669044899590021108092691684128335806766986270873270433863648749413572383135425335439891519572490144838310990845156004637210679220664216446337580252386168070604282676168016635653783077972584190093513568606706228294773414572275770551541494816996200627614202598460429344978819248467505549055752566084167048976592275325335849544935388897663106472656905142153935196484681498476749662484139610289259343870759900278933060985698269361200204350967667775491105278079445004695702533670126416469982150173535289538229655003414930291220962447494110032658047866602795242859428284610371313459522364035166650864136514904533007071756554960320719423112184643554545735909687516530517085593268506953571482405759735991747515358876147680693637300530008586154545778867922160469930763927593977739486888678823730844714900374033474660457800185719622983818672542777985388566174928756514263917029868815579498518669487839541270713278028045944486679661633985308843110081380483027652871667815371939469063034009661201798465811906900458517089579789137640590280609859947541268555886859371183606305902333885102238564665582624726996350646306690147723920910380270294853264803278032527634735211514874811601874195448094191379726994172730606148407284113463570649019590427296619859091086356281194731493314052794087187909443516961141841735347103786151809629505274270090606508440948591514154900888588870443256743862826077828132753342826085145341964641907727896605698319570717571015266492566724807909778663290823935300674350651538935720115883718696234536317475219614688640165867584410100062143351640325486904630921456342525556931437497023302712640043369753041453257319714991834338440510907936345320274942660979444416870927092241591133044940566793822725311671745903816750955845947002282464802329777904904081855457525542405301280964028800303293531792030411448310496221404662978307573124700166013034945503842413961199609295042629780323907965900668975356570576574788417368901079388806233409525748431779106279153656731226599957138194648280783111274967807277584097411746206216987160603650408168146499428038862783308192855131910003639517356418373331369463438626871401540543224131746568930102106286724488657394839510676701453964678751278340241877625701162565679224422357282124185334600341158426405314496043005349524222269308018698198114309487567404754228303095158920004296570485487174590384693511669506697229429810268846448975646018850387014424639600666640624373685568355351174765427724701280856034571616487460024173634612027107082678887295489038739249299846231551448836983203486142825500448063839376232004638667355496409876704176200596852047343872101529789426412104061504107160980054116303284779498293219201823497312967196497332631637159895166291343677338111784677418560608517601187913864143123253298246771131099271454612477132418902157763526682343368305324939445490607509788365125681206225433413367399990454814429218189318355963756807935615980319795337406032406865042347040208981530565850178590141224981719967140408814618168438332227358686379212232805815937286256137526780297460256765488945963932056629005605628843318652798638770525332017487289384392780242885693005461938985216570871296494820918947880150036284321700870548488742169940701723052954758578309237485928896807295001939757471229849055414394453976340147094403546066707771870142560746317904147693151916446952790637488921641888343851772651443470314522252797672546014626979711298523818324990337648653936780921564102673546045218000644322808132894312407624048843629694949902793998516637558803078992448161812572026858859014985662845561076481433367319071084382441355080765322533808735139791210609956414992689171050336581450083224443194110217817530353707725548432562923737499994557078465728667057048361499432259350457715493289265808341550181133916539303717021968267376936815015930738958510804191532392717836935397934776652736802660866015462372920609780714906076761578512826588203388634889686264270418272254704163416337515749925648032923093732500461986398812531457033646459474066047345985153052726842708636158081483691299704288289134257096589211879975094006452648536210036986087826423507232944795642295499995151210821710972019864012570920995274352649183995180992796004200997526536685994285940938625391005396194247933543817103014674748053766204359418608522421345612242969063645750243833499371513251233560939374249268887414112622358805378466437197527478438953927786140349995583208479106591685914967218679046249344913534811696088513898293366960616629076397777639436534901996278344631765041989940616688154927197903481091264357727632017849750760665118591882646773671365485707339594252558481568671062535289816338708165535910184000393711076445426255561862132508531374681796749762723818234974001818902410379059506964796953692927647863152462360512169354023872905035246229988449898517116256420475199803704587588837350688515832514058908746755430587584738588260096018100495358163396332918611345902584263100095578193469162041963101764525760389567086840123498211924853049634899008970699219837666680606482456521713842731039770020613273141066958068891956099346385874211264454692860649364768310004755795290070633494323771285696518084668890139415390131333346631657486552413570685671642951539515204058984412077565914744559182521403331893140820136418647849115892133491490829332858140298561295609268258546617953844175342325962361179778632484123783454500584632826807382884985646056871347018632162861657373500093060649836413150319597063882151429386909915212992707471085041674647152191760685435256575230707790565074132828538015932262707791796673692705532907139064841749185960756667590075345815087384482069362271167615181106690291639283632994947816443566752306228443102682114504425871196681987146748802645055992401248588274378133707014742172771735988723042568400516265713872868379491074543720885457968095433437165011790101248525862919908924715841326193070612034947438631571475957182102967671315136967280057927818987247865111511801805756165817460575406007804207772730421110971155844971734406780339627979391647578739675466177750977689181249772581586962304174830135984169362567574475395543055794738194833381935602282816013825940853595455223732664468095866253363382917999306674253461871853423458925379150483790315281797158955645119860758407213802713684477367521822151694544422565163102741451330759280375804861966361276248830836417041958800116319378068604486233907338479001748091439056050362108821974418251199471781120296398639866799413472318173147625858045130851058743398909212619056222166457828215606772791586193202151063987384669191577779323729299677286889722039738063335535186678915472070742729560280975107272941298310771577569634300876382513287633907346174692398618442700710273618888002939760400537681171997895215344688573007910045059002544280878623419673075594210357521287479387692937571090173721385861210086150252010916638892470342500450107418379821005508926705286803962701671073011230168823111173166028088832559927259700205716774736346822861560485424204295830230408295934682949633158595995806721940893931897397755475197724820225148099076213478157605465637517609890909375518444757483497942858770664196487587591497991736342070799580907301432019894058457101607935793659848281418627540369348899378794159034805089284497869749363260323155643590233572190550262164580601247647093186733326761047123713691191178229834030290186097965371002498510599542756042860651536607292835613345531685055899996042196018777230323415940584397905330625453921954133762972570801046226102896820500914057364370383925251115888636268157911912027072349645844536306948994974379095544745392224923242949453805870305865861039255514204872512537559839473372770141266560622754670995016861143209641115336795129857066138371943649317915071313523766602672161674126433976862322448407838899400042341515715838699848709089149114995705807735548261991710426066769024688463464620938547964103559289832007016300239220764790857709484427510388123666255399088899070433302130199081643314714793469647877355030260809736782224511136757904303840032263852411713648871572609704135635838487183797416052811217831610219435749447900266712295009521956432492870225783718024109699428865688335805625573756177442065414949305783773379690262843501896155884307260259513275477451486590340999693990951862177450353660678474728807850039142386697947155627283470245776181398578144750149229910678827546754660404223597207484691151992269379139286982687304762039066062501724921095121801565817329357852004324053270328451528378850801059073050719881021997621069854453394347731244000695056263084194795086915688071404093904181125506875197582107003720018597981304129602477574969044621366753092956117232274515389508314447131823952110308231517656049856417183112393731588090462057466513303322863206724988948106162644938360514389261203205251577430397255162940276893271834725521196287012770760864671410031579996612695681489258101298222777755995620629021151121262850355618461174060814341518591486075156311787170676767428654699672710539191651579547199530751278193195015927691698582070827247753576269643403767646110005433797250053380524595584896642322961606970230591923391465078607578483225220944842967585929655628396320394298938493267022230691373403111490291852596917323834813237490104520347765893513385810391280561921809743486940751300975793438410868254992833830957346792269481808654375084000186423577635952663004725535565260182027879839399043320844936087943079143485256378306818161167510747948652720907968822576826223440331435829682830056879587017151210185034844489725413332694261323821401133077435150371755032282435951996246659070996470155722197352290709495707698727816720140858041485277447995676341527750733792970954440754790933072811300226005327989926241394943362523259344429316539318631945945877883090903009690401980705399016599987108918066426953517008404222699629038156748589219916788055906994431788341560371984290246865192882687927373382633102040136448424565424096319092561185527030810913308246417514898834111177588080458007222764691369119524430664996995178887123048835171049795306346466586145863846381728202193985746191722630123626799171430165842226199240026536598535778415306238032936336942141462924624920394502892895247521367814757835885235997643065833377138187069933783755837183744129699982826577687180614328677236876051876929465192647042814864280267425226301879736327783927724828731299046280108973003843462748601431444303375510673198903355079585845140279423943026436720875199732806406638688071988752072596324321962333503583108214958036993979022860515241605620099114460194633564723987564817145380285361751029005092309850331068032115758090332502197196526625347431429165868981994381973770713149713946686976540123938516627799050547380294307146919673146959496218359110883169521231622268425472178163490566754337561521571905028562593584746765875148068686194976673777169967289336580223410431048180194405172059711809040520735325150088413351143711148969623949477946837686759147549268553139926850563680844102251584609635838351943566696649335379613682861117480343336126645506410009301687089461948656130827454786598897640325715820065195309369189315622578181752603695915445969539270271134119554175199664375846834409513614734156827209029898344933548379610435700169496296618529020378875017767410809948215767861654765014549201969461843717600791378054352658528953668022701094876138574669400154583559585806312301362017069309561534874547233508574114465211053650971032278755432458137408541573505501689305404976527477134829591470230674340022243073594987784829839771216627053981400553099326715916575115928731340218508997433820323727946031150330765887255221305490873857586008666622266627349975962414493586281294887185331659021311562096975794848697959281486071870512237695151348042455248600767086384307122021727549169261741106373007728469198291638274892856643170482615924198112302300899227947125561821944115597720185951097105682755776452758386483161479068171876051718902591032059838975572880360620078242784821910306257667994777028337519940541997423460863489968889506736653629508007015645544007968548278760721063570858347754400839533829185707728624818688991890745211586977995273100046357760671784614633436192394151898896737713877463028769974765040102885648196218956662339222301642845937239868613244985517318198497962349694126749873887140423264311615267521770569281462678828796372535590821620823294046488023940441274850759596672862422885914969011677039777905477864896040682722218097082784973219520965932446147254815744680799222520928608745217229151979142155561208307076966755865108058992934196300431282891875599838083820600381174775281536960309068546136357269814484212802645643116043319890583113318764945705979449397917082274879475203596840351789817769168097623407756577328164940627796230332420832280178439696015096807513454204025501872067616865000716620091678486507854703082963660309086540542787700797978837611276240577996978573995752357594846303860065367736037097053180565283147543085415800681523439623412405546549114867040376746447361625359760008071517710527072405780075780833593447315345039015911609899352380001511967878414005546221513829112686818122946576589751819133595178067447184605135366472935104288976274706923085844587346472924900010491306107191877916001255551989630198369009542670414526006048785637953252453226891198573142121590256711510385366039361891101644036783879477492904634205846647166820890093493283180522239770763995491973280748358421236811021671576617777838797975441034671015744068170264066823248547518455363464184533769772353137644175131513384985027577843389291454185941540021294078526096984952242148311626881902902573177689646177391099645024719490570371028287233687239971825428197330623210831231688149670218164853985966979242889387753853461991779830766372802661669924570318208132821312111957112024303559611473773221103260599752657353954809105214551690437764423373196868685347303731859682220000355513520897650929809440477479225246296374693924544310551826466268199434928414857507947894488791272397627610027936910186498442858455700248796968632559382321103971858194084689881455062155987424796564989896318546448161099091554315824141922099505447932107627652313737215444081962970648168579170675862943069819564357484214913912953026094099870693048910068761430809165816903548844573667564213956615196142092960580321090955338305945821781936863898786432632378257323579580715298775387906267762871292855949174229038253381052818587825617531665463219649554342990746286937207286129535761198366171862168394120354466296125747492982764004517236453063301639483804945773353623488334842193442642413582079785413453429629905849356040680497626891299261183856127848542416067604089910102378069504786302468125650138916029600768630499137196032511994720868837082129055713231050358080575729910552085585936809956242121292353530782550033617293723988416516087960797250687146649736331635266750493907317739801547213180286084737091094935276096378752874950409481271322527756789079094078892121665640808835915297249250125111998922390660471028153990517502522464222338919668348030660473569665299333635738771155624478574952637306666907415125807601268478482012541732664183631531603566856595094213248998899481786690105521018390153848734856163974180848083504431556542702535435683683946182584095406158832785810693274144342359430774118523595274924519602494545577479315935450306369749126792083904600282008298445778253907292610405269809752087459804531123516610886900917100699539152810797694846116539759424635422404891954102694722499141925244914153746557230116543887396333247433925932582239813797059913652699121640498960625527983289587478215341782133399717811806997352674580794079000988915149014821022612033853157166233470420982071112365484842725278350848406237093499989950770935420118424337921352728160172041233095010403738350755656292690593691100924230168103178516645732544285499085889163442991405437720475202997884490788115320596652063660500672326502074273042958685267702080928313410505832396528313218473898761828967237209011605518854563170925864552193332967019063366565121566139786547567163503418664693634671299929899409239415039288356139203509456785009933429100255037595717777202116475715009107164968108081137511180258937790756014831399960914991568352741172093761334646845280400876808811326888046495409107708627897982507315606283470505189568561581268554010764171726188078092322313071769029746236263441270776178035939778572065701261603584277167795167394545226337828700525051044085882472085409011800622182393726414735962014303216053939091829763201828958234805704722450139431612498918028972906195809666938242794179729710867727091254875490207495487080499292690834562373437878183287569808706355072323707176317107878811504861982234607091100115589416817403455134370257633730706324718369584843460933473115932913523665136882805761790685445723553944682982023792031773770286080771935249100082757088032846246279157251461695764091682566791575016558702075725247665360675480065955450532722344768970634643986685667860318977213098307232296286797139394916869615359060466087936776670962188493224486673941050998655773992864593214698234145715022095966108022535175617869286939957084594640747201778871025312299997079454902020178211283963292080047466901034816870904806493287750785413789398918846299636301593612845964679307990094210246427744139481369991606388192221992628186256887331841631783693020614387768024047472561985685325631404400549385362470523136974335791041433367472180206181862348700437203830432391830080552263259312680246129511243232752534124321692524020167945594051671161462078029310936225153919236645767434688360712030511775587108772072433552661451174481797878103135639249615095441883189826228279920223204551278519456798171251001945353627325729335948836074610294144311569172285089295902941814903450319583570035856438248073039101013708255250429550290071676275893719714414359833887335655162881044492125906948073801791797451313186332500989249548293894131779257225172807856792195783282658987112787484416453218997449218558110755497614169384821780945227933497659216585471781886312277768942511223430682651935050936106895906385589553818553859108445821335569519934171574484339000151078575958897501794149582082769563455852454319748900227004667916894455945598425513888324442494509602929529994870420615407509813949238824600749312316207873608591033553418677234404347923006255870637345742752504193832480442451369000764982645948041259388085886179332467282347979000253945063764772476554199050976197932249908836694686787014044099041535763882192308660504186144558972635748550713303035631868666604652089819638722482955845133597454387558796708117629360815220024999672582723431619599156263602577416005749980043770423545428050848928006759181000046362349292097060867335256042642272181632136047590206615029182796113202646831960224467930297618429107525665160388491465485316464878971597691144424932852497774283819690682377559076047824569185754072748841992124455764711870479795577120996721827864934291179389459357724733774024192147414514648026025422976026623397582285903190167891515259079764761019412297642299051210149517382424797970098347865981610063219749657586633637350871997784021135901735844860960384526292123855999017123941357319159400038110617262027421450053242572548137406279838698048699998832023807089429047885265914044894175474788525852749422930396366214124325784815000112851025645508867390649819688756403537515478823625540751339354945329274023123257378837328790831942025707210550618345400369253509289109680184839913895812063203435140284718026220321915534826557964694274157969429587139883700464359895000322050232770599378542832702093585574739629873466931445721550904448376108308295136263217974120187083925517315474413083700478043333954567830125270338741222487760804961116971137199622134150220853048206152037799034139955314355798302869991952863532104225563298979878742625565334165872401365600930841729628450329773637703400989014828102219499041604342791542699915350575470309206131008871250127543072938924266688765937363331925259316555616507230915061251691586444773604008380653202390877687931487138755223685276394093033187436205688825625262641639270616787398170038340593856719752061622751128518054266016216291545621849887902666362183921117301513129055487096229867629216682572108992624440082139956731024153853446660787384572216878309349329872987424629034908567140401180608510312333785703928308586898990774477132873809113559937067800932654235676684235336600911139782484158632829621080709838123595871725383438556950883556638147463961409750742986410883394321445884304122724719513374775958273433538757747821461426159551699322323107456168782259711017445817618889540304798032675967780830312088642229645718293720142894894561999798951165531605504092384634421361524844544167836312662090230332463021381820737562553769114896910968646906995452094564012551243609912774000712141650044219836913930391855020805917759554966889268481036998277822526739515956011441563352880564698105550000937096696495534732455220976306346185162664753261379543666046242034691585855831492095304219237114010545804760885976587564649941668222909234928219607667608017012672503629302652213579255987743545023243457349615099460147984529889049241966121406332208107892405263554874226322334967449742830920740184006694399196049531496086900211332027991159224595495475544872742678493252499491712349898456937582320031208453984935434682231703590168171192980071412475815866847176983790553024440507740481191697036289044104029599034093145499344661560647494163876427902554269712639509963436091456158162053620147364588496267472408572243295667859358389625071354767779079431253450245022953791146035465495888562422602691809422927310822550477088004092154132010013772328300644327793667360064592225837411521477261811424266784053361350297131357801147685940453492804706603444498804936859143272309409166690270007039231745971724564821462399011603651576557070182065234708796171220870265864894189878567209271036611385103950360119007630644837791883392902022517615869935749676212200270723954162426001890468589098805647389240063212422278486595526681520036072389490703602398021418294797941207625089025211356550215424701571458688545415929823040635663902863524174649208767698447066530643382006214753984637413522785419517366125447763466663030795815406467560097818746081517962862979328435513179402425261123271909369384785130443466712136063848739950133984911008026780549204487983603503774253921549352885656503974582088659945284736668537378006248952252387159242675872873176835984142598824084517960211259244862161341289938934785195357586492073177870779486124995251492533959810490044625277982029717625248162350180043797659234110263490593598627243950937101774570146369623091321732043127970492587685951794658202502664981841631485735999230266321868690096687192806101664601920826610896113856870509022700301082680358298412166917689510531588273807804787527147604462525953917510976482655160973900499359850317230766786463706824806429861897656328243876083385374312584874140974302329870974531933705621760368235590285806237312079869926604893142325524946786634978746088533629804245541347206946610066260011888701925737482650545128271325532990786902963282740607695139553308733544207709665412217708854808069181426072655500387163258238632380066357686401703461606736165907798401946436459119937750325342245865370876167563100356649996212165104410571778792433707217622584332374517006691791774119378439909819964151585736522742950552713114465246754843551074143741652474378494582169788414612481567808741714052032629650074966406857398773170867546062177606087353117097830233845968744377891034838899222521440584120372680944200037545738807486115113447118928341696758517525806957554802043857680522731261062077095910593051735037940156447505076280264276385835513621606310367190338660696149282373193223234863635785608789288839308762216679433120498584488515797793244722187802518004144403770387384337996778641484090398554790516350633352101375249798307255456554508078929038827960238916195829486991391235630267781107116880841390064946229649494089003852633233974350032486606460748056226214112805063106437319709439903276183491655155093525316553435025391581047420650806903796464648647964517130328603254646929514305419324911394493288809955600311347453817630321021762524189881872783772250484714279997869056790685183991877202804242954095560233035727163151885231822405548307052342609160745340241976917524579411134634449232216417780279694158742127028222540724407980795124913805445676749437371109628433306292760519313063511961511426416044387594263673631459154058438739285997956937501654973496717134596435532890822573410935439485226996194289446063782841221025976115940938500514110068549994897840285084366693689591098944201137649727991049901115648812302112501878952291724213602673192988448099948554509509538302969924148990752530902325831673958528666938485357147498752542996185817574857038526529106046522180441683874744171018544159428896396230380289744978566774531058794572502440221193068961090117742822721665287326475290697936971076093346465763216895268619157235091235150455399344731083544746061312391249660472261920630010074013665896604861203067996268528405461137726578247311050291822928943543383371961448995167888787452840663302110641623362172587874902944488334659155388674079353593136891976046150655829748730026503412120360330210730267988628747012880125480564412783877338885349805391847930570477751027601007885801244020065494374024936184241848939291454298986265395987065922388525970859644326145375285124650918148734549327796108196686689560535596312190230706282183520935342642631418759110679132729760678069522454814813088761704296959886163201716444450932338203003538231223512815548506249411183142893582926188854339796577262363466801624900043204965246547560200328491611741740351772487906102521945216224560143325026236954830164345051306063183514247137853312801237092101554729121568283221623511812242565880793402718360533703992381243013154989502325204540627269466456906487482019135858825521616984002927923679292446078868208743865694020301305110098532024260037422225731085590409288046442307821492689599968281493692092445421261387830857214479133565508383081155101903040687325026497410069487166196887270676264092298503512342579740640995391234811607047074818725902012261902721053115051311075965015667475402619774837809038078438903867227663701932488037310760018015496756096519240552278547702360051899559481165775288180431462556633035917897099409445060765181007788226429329374482274003602452424959749462262832824080802064446555088784982257447323939602840509361544191659769193555027212192745357778519099371820113661766362676331286922975667443389923649612684874118120322629663221290136479043897293472852486817324540342418985219475022680703369719600809700315552101248763045944712207336654399021678784042522351457293294462014450911776354750774584020347584771500722004827375017539222441231600561427803204030159182400889136395501038794244710937628197061398695027202550710065100119436569495692689754080375591077382289781480471581830002982243933086929407880554197322031059637311561101052889219780257692276431413928803950070327149154461832550114092829776237174461941142687373166199243862995509203569260040892760826068807357171215371141349168254836462618656789669929368121315495794020921793422934286319747886422407498263157891471782761249650443608261716830036019800863730693696845395704300082461110082441706081332334023175556223409867716899677861110057717977242289743180352363825285817070677106552650278236008816195153395800031775858196901607949776674167233962222218863591923558325492485884787808445294284226482539634814351544181467931979149311603622924795424371595071347235312834101153144842160179956975936502641515978974412472640157861939335107173061845112313955199835613025803649079810255398863176978270005740876969725518546391921367530502775927117414290230757907369732716870878715263468081860711106871549124113512711886682379579642252295963412982466590319987837661718590280838898917200384806810811457656823957846268848829751779853035420098917908021390715862293589367837272509982307152229458006299520721919300096502055969301652968494511980037759969615124319663313963684771802523415081285385503704044691459202517975498042506884232198772051343817885555860582983623416707238024673861988552510099563625964832160957413956974311480365926925004851913371042528093469130330452932908158605558250643767563443193103904953799090872617231247751206861750306929007065403089762076855663563835672983093054158957644292236006944069766561041164319545820828509558940035591456447686751359226131530188599643335658905598219901120882766105921656905631133998136180656841368346377542222131232204414315155358088104663587864295815155522409504720623182950619430690179107824223077110416535562679277921705807652137403884935162842379233637100729772801385788869264130086908500918197126941903339623218609368694638495231874659824808596752620630851862318462181731984689513980245788610647023445890570779243843489225782278975287902691622042907983617316556968049637956166860192128580131587168505044808321887030050442387192057145049104592223726221031092219913405982957416641684504165008422167120629102255997128639955965462841214069138499794680152711497122688613169570375553732567470844433703654586264500428508848680256637555057513506598820510482962682606601586648898873786160799400125666754032973462264598245427366142917892408011693751688157612990577957081399555176174586796507974195493424713766396004092755728317825194487859686556664880398034817764352691622855499150899905603784101499997785092821509768118306442987692779813462754607047598970430678959946817281754705078738436182072194423012246013756843562700467762888204746825129275033110799232314346292608092987381486461082244572853455932459814401933825885985415499090727402627509366507446646303095558642328859923874788581297168151982336419596081765403304722972552492407183110951009350447405832498789437491038960325481168992198103052567217732799416111484102364709178299911354797309279017636718054959952755160981124051825455338968485499276369068937182872442879319101391910038042583302691192679450898772912673392607740458367763821915737094699709581858931945004299517444751973442082378430072898450394349905747391804798518364635956469746412723878038415378661148579463333093736380458862241028576685793247086991427277363691509859405498721081748748268840195265419620993255795609953415339576582195113184366796592994978690064817249659534999887808081329373031813884669921852811771331717059725316355242724828413509683949360827358524234843247786087412342655440034440728552149376481594662131027503925438415940395761619284119559250573773198476958820198904941361481144769393814641145459133466873415360055979238632416143871399817312029070018917596094170245288095567914727906969477301783876083640286823529563279232972139895721082146519881315095234987320252493253865228485370277424862158850675285509803278906716582303953908566189309854489243569169187858212325124161875030479278526787872005670745108156181290224952746991888907070856239763050237790721484975946846452150823108140435923453620588262796952564478668948234534948088834543845301633958292243899600621491542754466383327881470894927698013618648763608202967319318247191413227348147282017324874997093392309981150567737605808510041167353836155980097092807047480780981585904754761830716843604732654121048580619359015313559744037724268474672299847735794315580056405529583432376625721085502044095575229568664263556890593568718193283866422233382847478168838962744116998167502818354433031872386523833991272311893213830098043939429002503081406931125360451106756032239037087901258605692467787983882234282036349940240710840862819605586812576112485568925557446144202044219892471237664538806834379798864380070881888733280944601985243354487684546182121141448444247909704517635564577744186427406117525086833528214180053810310294737206891928539295672044232566466907919595860504661904822393014198619300078556335472525582840877372344327649194533340246117829863720622523364263602856361396965388388023178689418470576611239964967160673482709312250841754208367041456212673206397842325468824801237775922964211092030437153896293947114828472610242776423615004576776459922790466059172575596047918572464138023394462282915108072005460554531798744017151844403502629145872403451228490219856334197453212732864380095768660516380466821492357302309808594833738986004859570724780119115238743458194417071990045063098771838541238149538910403268013206579499083068133691797589429288191690373782010444974933916935113319603843726037193291195084461362304869449994117937504271557834084354636158454346866813461605158891492462664119842451131662978470882268668427332355980914667723153528557893666005591378795126920685148120588113014418976732903831759374608131797742768000286486401585065635237576581975296472906632189634803708063469147712193871056798479716308568661112807340914513251064343395635098768409236740335790806983845850179100069374036792789956162875055991854215038097799073390053983741148899384927486435507754798926493098803024737849410511172646422395455772838722463701835869803626204653323806977823559248949090313051285533437524789478829342230697253573216210167186797078199953521598411718763889565048305238508328760098839010413536902143214672839511361670703871557201773129903774559921272188642146750641368304043282468514908181802726180186046534280191921934134299154008143278719402311827050257156743175178170535151366438315088955503904876972429055751506446059952028863987994536969627009166188060860370949708270650100969238314221277819260627323758485865070997714788031664667591780216118805262963450645228184454358351033438454548877184870548494594587564631212884907927511618059706362662206161387855308271871195527281113042383859316131316850865509288100858011530576398312619714335912585509659612167828099995345262493472043494612593130968457133334313497894172296864192569911931455696457037384630930372821739804713434112592286005764506951139508829168416535091758681224978736880395347215887392050264211478280412305708048381706435797221565516985710328958827802048357457638868572254444645562826743070084465659992001392436682783491783838671415804459193476463562869998351058433882509156050063582824006554203940511430299589431709170835686412909596086204134555386158929201589731612542871143650902971458719160857461655856688455762880075257765611357457166010084880690956695515366098915242380549561149760017211652419123371816135294158109973392188908333825645420462248835634044945919160827624901890659892247195444530163768156434764042071986212147285696618748867255223039483346541034553621270885147517635181674874425520980215743927491499712603151928743581360146300043244688718081238461320208931746312052132680193457663180905200365981355117047278174835998478966279047692003248665521086202368600113625823542942640041878235698180853489510534726882934562600611360236991932837891078008181735473017249421901102644977387399428931076380165041548393096629985479174682255812502980749215297534075984903613693535936378956694381205313147937547499242847595098934689684029232176949534742946126124624617231955424297208529730189997041993407320845978422819340742558345661039054052217607813335844361154552533546258115051450858355447257710318253842422839661354287032987414417262118532466208775676161892350148521612616111954513491975097731635278839083713339257638875950771005597778537841152474103882702481395055524946652012896008426564637091106775647132604270074315356149358211039482010253868486912793400319831575584789162299123879389700072474970353156078342538723569636756072960656303923210571509160374950724513472945950011608881703533026832312270994485525857689632040084669680595430840099368745525197120577193013414685169562694027937991120787587965477523126887279922380303767368973277809887642936799597031276082531374636867978502990268507191538374569596074493705457103162656879916668614044765243160349839510502153826700823019840809184363783148843644590337296818906320665963874944857863343873156071019731816945683986005770621537374630664674834481511456637482347503294491497056451959582637598210063249828132901798456977343607301311375324958179558420196375695962534479307970598672622820367219237857891817427545435936986776253333079200617818852004000207761644931437650427291774825829466122907685788045074743087718285551523002404594721914795186374775198985642353488576482033953200633628155671257488002935458034490842645915853005806659682161157317096068671715644080921800778862055936984024636112892730751335971299947669136071511717019530714576754045258438761116362775800262168769597929841861630354304037071932678432000457301803082147093347216294976767710505173302588488148839326820384153202331663507414074892438797292769912420989564177661070871195117464568177789109374962704233427222121892739516692074014860059911023636054347447653746581433230624006087542550225966624118258171594056077093970737600472015414805507160277643738028252057162197375014501609717108246513542011259431155964055108956235034412530405433140766138427557762468086330212988920030417924757907621907583041956350620518759246862954603480479527179222805017584663829654869443211389623185355426824237652519605363952141872259351724732276454435960210648816631646535053896227774634630539079974543320399754879409131154726524079553758153506262691400820137745639995798203548701338300918360618409311757201880677913512662768328032568606936247408169424579716885819103726429371134896380914053397312927706323683827600305486364285126442620900154003018162619572200906643306855909834922372383100572784764182689205891520029975020172917937971245734135346605283794241614849160756309886348457495156032047075997475443122413920219975515207478473738609608081909265514299792512984339651701502803403157833020040327272336994366122982105907328630375835802218409884831948751149262658287490372050069113537344465308851116053698746596662059870011254846940324159839265846008744665667719410461600005971496589727866638072120348876536464440353558883925943733892571115333525569997270775252431252452200320883848000500107308662497003773458312215633693836394953801323205132826772162959612615412802115996353606472570195781157480282558878947948770349058077301211643399888916680770779253299249783103034109656014487841284452233988065741654770876028020054311371629796227273389938749388395280080248837799036851547091883056620080657672940009992281165094198263372545465437870042921871874552123312694617262861290651666376798736133102470744399973209672092774873660746077002782948804416055571150975571500204896543770237178001682775688456266578926840658693064899132032025363625293792186121935554302929364509326319033184308673664444266907697512304278476825160399250128252075992868074593996626403242488957823626193759291053000860862649238883824585936035104188117606366831626795166539270814427490238149228875558153136373858163175544529533248753729072482017610546837600037003481077289011538364481457639792911477237697178576213970775522904519896731509201865819971887955763460255593833484639198667754361432805220060364727829876125781409019395085340892291617940878356673854642871893078771624777789254043164364371772081719163035615489612045653667106383012581454141589008978923032056076875374576090415047434807401697219506996019962509996433778689503445172589975558526557619770486229062578677377279027954965702044400036174373890130590000119488090258846269197443518242575352166378951953272898623646596429598340090334964406625217498704825605392448047451540674720761241907137063067746551333371992385566437064402803739915550641799532225319917434768786602732230175943770186179580266340041828924128437182412302442265832074003409505833191147467774113204869140721515130492956802918969002267257853416034577670967460180161045323442426383636657256014060918242467764874361294319189624905175544044047761130180060629718008012137422816287955503458539208343438010700601997698165293736205567304949759394144482647975062969841972862927204294389974452788451279162316141563708189230912481057249373150650106406764454719897428885398213357618240037401835917115301788179310013951244565308311965592371676541095810191162550479014180102491210347251041647684190387174705320452280591922736746129183319452874559514845465696497244839544897618413906850325279220240961425514405790958685275939675989989396936862999037056055876558859044236758552438590822771638965829499193175257616753066427107510570274813791648781120246099512610389102947402555041666792339372951476655226885751786517741000503835642676258005713929204565026661303733638599401895394422362025708956809524340827582593129719270858548483538972038393376335971555268434541703071469481710392019071398733066954082016305245347147927690960335039860925319276092822393767257217955587754559999163506049525832358021249665669624421299379029798075192646116255615714896790445705101336536886026929375502089314178232772726505069729819480259447273307500694614366622863087030160143097961393316688779639886706124326617759148505614181119268446420087270628440579415334809150673236040946644100143791611179092856164854970533392888047538846504541345053739795580648661854044136579667799620243385189065757138790703220689085145740649303153366177989875638399720654138708479860396912814586951331803048781597302210974754199184112060883360480564021596425941240005073838471653663235060715329354242650694878560904478719236469861009447418372889231850587475665467095591519924791160500086160806349817130733014580755976446717766334161907175140414938228777712075706054424881417089088735165198312880646256545271216843972019832347269313195826578731137111657227267083863231586516969938982351528664086896999039123176426376365758992734855555889381552417819370698886664450338191842643706382654602521345821525551877994274246891669403561984890425834760559238660436140823059703566527036666636240332893311809264406553027774549580077156363911103036809634277683546529862494800563850927044293827634614267563977819365335281488234955061893426825796546961801435931343809700980262359882303567899971404023817548972863773742948359070081456653027749002031436949208924715794735526826832853334662328884198883406279956857828213389215892040287423847800525854530725669399793264082614960027467870587205884485651683993562956462194002921665239230620813650166725800760474214511392183173346469110840836726190068748409507588925677876284097387343175066389981462820730551223878542962393702399676141989270121115602187999326547250829795465489745487489950067572038810359426320372642488218671179249101893366319977710585286818557751613004303646841077501059410932422361550129666364401249237112306008921595808676927359431294759902451853992854583258109230437037589933291357323665512389573722696780223515571122783746215276290615388276004494180607116842872865196244455294422097841155805724310371713517068451134370858635970791400397180613243621220762819314233165344046393639942146461016892056944097895634964292807594085948118186241769377562248350773953604012320619152896000000454704678927735472570109654520746224805524056525045529037689698128843566989148924553726455256016045633704872709660728004800877824893192985713693018965572693767394960762329337948179597576232198790146795374235789487765693365392330220470339190232799976036748579275536288944491087717199510775840649795831863317290830538976300864962882090172592391970432545235675928599758283507307146926543253748515029837424780587875852813752690249415202889431257601625001412381286061986734355757361311927749028813335069500300278707166072788289753037745277048216757764439267374206594625711231396364614720336032973653953054480812503048998361221959710356561324165037803448738849232497139871040101103595673154814306200717801989105170417329722890160651067467494215387844195434450209064199992672648835375375196234498810479171039048184058420248227974742654247807888430294220314711265381825352452310730274864209822503583604101795891690445243336047502640327601479193927178498484685856917530050283080838982408579908972051435179294536070835295424322910691549407840268998436630892958396562404141186153368033896686630386357086394309904115363747419970591558547115166206870291482275643511759060213043479295757835957516394088674574442498736213355536744168952039608072894251890351184119399876395657014792935263053438980758576536515509105913528815452021678107750999888055285591061672801138317737443089327281672330652538940070030932323972020301694162905804224730503124342823284153939332272081081534864691711211872648142619285753099602125964570854667533281932590874401396363750814542920385303928486425782769779477457690073683643761476712039799739980338048577382286137588396981839089133644556548496938309120370466679338914583301739469170404320006592770715128030184330458060332710667307201243880971556721698005472651463564974071307178321853359281987672326234580057387375713917203315352682694307312667881192418392407533823828237816318130708465709112986402345974107406394399021272232447502026581206914228868023561548860184510884766896272891426644793931069290197893374278555098279272366005670282826542994325091171692990803505342960234473964538566894524346935324357484269550003589455521158695161001171987553888656467461485988383493796395979373863689075052910722625398782966286233431505964102198613875534601965050449150500257105886819350264225525985306076345500654621002823452058686680292298843651332940153510457046034331428626045127326774669689713970161402078056312594072935114067645959720412600858690074674728719900748763899989867923617210358105438749803544473891401454345018011226990574560813316010001125492840073123241795116305857594640814886165042474169099970722812011180052563722412889372168784643539257711148662848264405436983332530081339740651883163381531660203087557974109428603989957755498138320230131204555424461084228128607961848528171428903863266638463596633017562297341970540572548014845900255385940092490543930080388608712638372762875414182582239549088968951142329318839233040510738114713866935178651747757243283996342214157627653262545993208604323888278760468989735513096957922263612749050777062456656184579268391811461785649740810942403682468065318451883808730509440564790478284710117880843149976118833224574975848812577138997205853347956186341655662600908910927528841031477367253156797020926166043560755285251145650078994080381339216328920805961942825738351687274030970082150696416424530259406690731895144398829252836222190826972690441788185405096469891139006231802634754710211318522648742091575429372590770165742090172580291030016269263528605947589192924081917974346369619803030772061709818948853814742740558783674273135722875196308973626064505702551490949953752076634877674633476490380795760180503471149447503738247798408172663326435907908570031322569549455850523647592662948824956319729818333388145111096690717277001536385149342870496933686714381813318990653103641248072007206242066877005627765578317694578558674908885226733926684627467886816611202086433510659270296648737427269797602372850972322156631398651192863804681147184751103941351351590677884749634048770159400587769542741602024390747212967541993552935073991046164977473342512781506337467764190050212328373930235204463466110642330123496683098785741409082072646175531483493882305025221647813391287507036633796898293780757266757275581531973879258891579550684307246156330955118181184629806007985449365891398761988246489560805257689760213187740183597735195900723720111017155938704795731675454060393798989359287134117156646995401984737596153669718156586581586993663592463048914508204063546351720858905079839313094726700889269883877918306803783601912973238535198166834943751977768937560125828526528209445987846485170013712613646378852189310139097599474643260335235489240389473838168613906019886320549683869474571867261326368721277973535438213857812884430996336448116307350093309594112155728856768301985219350946262590618255135337117923797562518395359190939711471784113746183425991207333268536184925046547061496888873754390474956586674996710473587369452974049537886427811202799249325541167681887659564163744036136793142456966519449092887887639924829521994118246488616702082682025647334812192196810572298805370797797536420535771266865262208803418057100236126294686407252110543748195568493423279935936505454343636220617127967054952658815846291610884677248781279980151435046909331288254632211670941486779445363821093362305774647563632113496603966258099873554834442463305471214034573117945048880393783564969136843286064061235821457070942771855814282526124607047808762618639755932725663805342404754417244715845938534315384439736191725662736390202850106063052156404259273477344736239590404503193025891106163215094144892273427561632302824826517950392979535654736589268458668716346926556556851510092690961361458885266969780375798291701951482385994390398078001011471597072894870099879614252729292982076549788046074299089989385702256292080730620195992799303577614207456975435927556357456250728648871631356883015559579689935152238237698213015951555653220592655257914940864854970793882529217134469091962469731715221862311403093124168842195693168852273271207629937720155732353780270693527747108070396639963165183498740596719335397360901877563814669823356883803760714397153492078289081954226431147864265994688005875919128265546978373248122213026101379572561217933892630043819010413353737406065179288240139383695583195162818329126652189457619707957637964321463490375524283488196938867503166448347986286209077822567940493523474101446037524187837317961972874443828150790256384750375793330399180220368677954957855112060238874747043853740550470391803871144144261093932383861585333896110039124637849693104460374948064601376395777620506147316533654363998510517655839868308468666005910679262187796180661754275159615437208290618365871662079862804345765807691111546381101445930059318490124151539313402158110177547020430830933247504090030664721588033065939318799640339781174882555665345194908241886872601127906112632210639117369336178312597620900355792386117137735348923307506603091400419187181127763166975413880760817206457787740376992405584886298535113833893767591104785907074063334910217866162414797481459344580876867125541881768508936389319617489637876470613814730771967745981589879475684606523497390478653183504911075116001906077411761767084410465298713011877756526239081740249661257477619015590046580998092618890585296448544816908751690490986994021361858497835252353192427638364105281614867506633581652146680904963767703810487991511854131680368551324434491405965045996248134951232005423827030425579690731336324461808248855139964746893801079716229918667971247645234024595940054492052034287636554391653021030455003995533503744427207362304589056900952258729137915585409114821135145907284637195254880124410965454561958555569970877848091923188212633592389165020107187596715996779636956078516835289137506851299413814624008333295767699815376422395047403108762390197064076274959729591702172389886800617075040200195706801510303614091397217306364176558460145455849402072311568196986468674751556150950608454277777483249603053547712266649595684300237390530036900296278519740431061004979241928365712085519505145832759202628664272354678775368344391689349400970038004030913190011487703442620964738674308602363613567435681515617515329331736304047556841413086930387468405846348535930115107288693998342121457355441427375238048587932561140831089912274448689757273496916245373955392998648379653676073114817893869270374032918630338263658039790955314542156521209405813450974501098100961055838220782221900619184060352086866218179479741299805543213773322547130920603055456143465877999316133824287130995870953020710683118522064631931776478710142662975402531410046616214705228706182738383742619542958597913544759087715848947832366306203058137738827721225932244686564565081448409534996208876525079423762441879433008412334910649103659292982486614666601306758367099209791031904185226038643331022170106511826605323249393225061813553008765373042884603966109045613539751402372102425407732937969782728334478079766778446911031072027464796679280980516908141392584319145129656390663017359377603146552232797664584878106222857592002138480419130874070471288558526343244848623196483337807256334133880549828290495775312681175828026869038282689985260666624202592586633734167029349054344500437923215105893063440257005040270753509284096988103248705560614407843046006535234499365428579143505903268609454869522162475304417906671860693938022609049523172009405556126633911968064442356076951338596260159141496102335918816200815911413737691540131444909062310607355157523625433650202589105791305082644578395695346552503087982417687287452928442240512042739191166647598613851421038914463413652542022446081735100081514678348865611359511199825117397273984327827362430848777401311235389077544977753581826164024200675711018789207861860717465064641766939203855560143407333781244808505238014369939935131922898366338118567799469276170465963797636346570879358916958715452373473866229567941603386272926976912560740053409051940264110090666395265160988628552037523743344916311045773972417984726811411362134077101793037767959748304632769915290842018105150280267619538378452150936831332963232790390736677330585365677831828986502708077525761757341768776204310007627776984355325752876675941692553927948370828597065558393435821522430330534530529734490359321316087766956069263107441534699607020073629762397378122459640648016939954101326513005475466029233186132548524734159478938354206841530641700870740550574255629682387427659194194762697920883562706315924620556743411991568022209457737662172665140844398438861998760049962657627772526489839691504859226623538412511641280472720824363916873588206169993312673981797294658188707360880513656615971303928501216713316975683547255205739532927500757948899221029263791363078973343485576491825372182086029924313623337070831588010388004479701428930305435339693540812123549545321412786129811185491200388144375607695986695706934269231223750890238687783301923222441362122981726947737219428236326272152758936088129844195441443640075713875269896963850595581028818961640667795123142739776821542386937314873286687004777517543433915409504691383402586159279976687310597919182325081659980773484596194843762507665555781427920706939164007240257195781560258960112257066831525137292848983921681750251695379299859151592479504451454323108768672606969197985561725376835407866827029984259050428068320840466326218437687999727795894990831725552680320604080522784712668974362152107085754702020289909901230401825145173603568218371232260367073533298231611519758696451061422006889052474325760317670235877902924341146296321063750329893110667287204791189468384421465733632306329631960183528327278461283081415104082041809619982302280342969190660707307647904573072459195087245031007839636268486305717521792441817391397198662223141123348271931876806158544491842613042180644863332622844121464600682195040812753098068595320576822796602341697990305640693261018872211132902833547508137412814213365848656812982824712453585662566623619384264010390943316149733661062412530417519598268387607517449193435573450085085465071255894081952369870240146448574958944350274450514868091397672308187646387115116383870584741451915109303447898366893348627092998105622612518028381182644087221924971810330635661516275535201938217073726597117154194348037161011577038239916787762198641634267613950121198480032935227245073392010897116563423151603149477948544429781475514445767787991159201812420337716321996720640214056832002945245981412928190061752929990696308013423802772792644046396370467188637040234961290652085058167344226863275845144685220527041141813685048862366182571638623146450840431068751563433583374227786650470756336852547906509824101503616983439696682000020411513604973869957442181088640281097948852500900340180201324231664943240114412001258394595508576403804035768753895809665692810756394423885112815660521410988744361159512679735360518119019198128873473762602296343162236187907909030502098771883239846363266215642832519951779880354140141644935770393429827835706525933739548203066129476689578600154014346389192840435846206689721394312934701971838606155715571783762036316780552796198478273250808822546750719285824333111717432160554530743285829500342018049465583283666274891762579758389445540171994398076894565510568581403425699074174441995163741176326603820469350625034746655470588371372646924804528406258219133861907877114405063824102559474534136356610190943858960830299991163587514046494392604983871217546900996358102717900928987692404022819738391435951951112714216460138758529975525136190927879473464167766531896587473988980676461973098438338911240887137005489209734696394885691317256140602854145884702587627947453312212204625821907874323720347214864032392992221291262747297123185300126722016407469524973266352375549109287846058376031367744149424317056772456697874988076322464102391691585739502157640012067976166962018262751093395581004836462950376567893290639896809845108723879884107744216812664141438932899814082727454137348520674507523855241361413451160301207065774381604097786219212327269430816052821736320883544079386522998680966559407351426474281029242322678049618835080696903016207078742955777704560366228996130479237407760312770027976291257249449147591816990972367793774932383699894687138253978219849617263790451194875360682757940638248653206143287962412344722004910723119297746364256496825082989203890203964183539724932543032658171555329133163854732415463888714605430995082211669176349557795208246735065690587767882474770373830338809656460163950869159833298035119562546301636920823074499627667426037248950706556703147365239989425364180260707092905751449148484705336655179749915524462514072741776420080221089972607842620223492361559218042532291892757218143733103325029894112053650051618224136645647819352245567264560106956395251644553650905268035058160039810676409260227239492818514296031647353644526899003374529352714446950244982990258746870926569885251429479092189313104950432963262290888543295063785714928990633749895731126940905192259398832056020197932015194676861994912662228983924399549924567565130335425980581411345473767208917691547560461142596725216416915355442151508335716522854290529793765084540306826914737138084294829029340367652118755575442518751985321784202005148528035638111642434458096847924736842906300763817253200732163302073227544101908062086386465122800157552983186086667840777034426805098075239282414666259127843374929939986710028403851315755727446969138618855773065969845013041871757538902917871865454399552243675917853212285624208891934407703302989373791258881779930328671945088115820419155802793096141559895060106252278111839129661677590161382136681391649230982697313265759967056192266356750321234093074569633253489661762890846616477703418580872230327835758303367609549013940470034319632101181813797735253327314556635765780852813522205955004703751923963373883653602211408614329498333364159084997507032295422120224623628039425799111162006289056994030939271712204247026150788797709435289859584354921033344302368686082438364428836057135336095251017166357766515730705409224986137625023917309048145155017057063823481698455700431958790749994785891677398827621319937243585320104971944970862151226675764023625694919178612700796439204253409263284352277766057834346923031766934475580350442200159713333860345484841543550199797438510252757845476075776443554350408037336716001858732658319467754513741007660699887478763664165072993410699252790606113993708493238060953847643517413274543437960267013511208046801040675503433497202387980351404950299623778359322382477822269812299447732232019875256622964391315901239806576245114430787614365890025161335986260028486392398144528478415409308920679408262293045713556562986097658950747661326186595943717552682349287234913651073091245069316924431381602598917373676910929599385422174175112864907750510848147212380864262537922330558521103600778982142732290318099496369990111254651146342476578128201515653672468182959763922128272376573251974995658382316977761420268978124044865402306450263218331146451637898900935027947129735797632468647976111742766581429964558993778711602167894280183289600947534371261501748365694842221349834322239219020630602831791728505665208727345139918419878737750076889766882041844598829562095397367887307160412748198907884262677989984510698358668092049501621518964305695788587159947141031226964280516515398132141731066367107243068362700487756463296983226767909480631870519725440012619874690279253201652899083316779549120119783151287041607789332750547941114695929071025241887523509405298679216626748982662354182418340066432276897413051133219834489263523154754768313543891320831974772433631631729139793010546227517710854423179402628328778475828563460056103568073327811018933678032957811777646961817215652452880682381452654598828750888730023539630383031278110985215602884792356343565680656043943499709049176572270992204700677211124944577484588341514724304114751094677501202460846866022641408834756709987783355845518943589803712581898831862595639366521044083148773710374431968073558696117340090601983363698299733668946084008312720238904339550531607171225985251907960223335415832795198077071067130447769251915064938836722596278298956307532935227408353275763042766509106422899441031075604362514892434741291419615902939723984206543277790793348470434149735043709591399298286108388792376384868838058831196603534742302827803565394500157331045218280332985472163884031727892902312193961941450244244975733235268736436706649753322352260918198406681316341341587272732780047618694938869554502253213678268569101777709601188027102054637016860007702785742604612279365280563086435141933850687855743731396176019999664747213140749455947937872417736983506368246925610110066483865819712695669570854772338737594240917419659306718469823410077354664200451687442184980142701994340809249796214460431360045175447922324100059361065314636115803525348486747652439595695957634634447933852115413223984429529341280167338479685713520407747600411142192738306657262155943885945557839570061055779563322837403141246152233101088243511733997592272038140400897172930627172342885479686995838231129822445547725716346056090744047223647710257053889466818131082790281751707726234880130636291903337356346377048411620808059561008405744039535571751448627413174643267082403641606251672897184660771517074138216397448185870808038714414125515182285900606362348297100315875624727523960844163316882597438116895646335869962044615656478305431588266437013677996857310278096934133619245772591735475857923807836720923706466457394374499985553114419970018157569623056780181692705028003907237122467818344649923856063790211770934734244788221120658568827863788146789794424971692337720019670720644442464692951992457331986161992464070321682652602451322234550230745558086642562794057524019741740210922938560884367687758101216814361931019740450196026384125363685643390227701362314083671258439963929553910431611486430065162865813962901476459553975534996095537922808007024671793528352111117203439514222306241249585406724159896139573046249891751395982245860112389128210499982229437601337698816313762095802179565872568350151957643030426212056203339862381801791987949632319605283970170030445039349762152947726938220057049873998498056502320014506600789001192428582961575794974759897965159294226310115838243700712029636053706269097404553824635256914470327008191192537093116458508406458399598622648616395412202726460143050754393234972579520522475766060397599893364547471024619675391242946332685447691112952740236017436040168871213699576999847096313757657090067965461887052104618511005836332865231051657922412655764896431208783713495760192010804344665829677663939257644238029585093675856252536282338993521542840007573270596136475179679236841913005453531903269457173758386782677983223981262350762574524480329127615111103447193961763037111845844110623088060807338675047485268301274443662048449723470935414756960782061173621337056301665398486858743784449292601921732506689975754363449272988955840990245781288741850760024862476688511155160889390470333554447581108267896763599800887477491836057459305746937381593915862579962733818671084268695532759723620234304389115546675530308156758266418889454751634137203087863883566011413765036543021964614603648816030948744843220661995080688361400406340317630045040285110518411251037807865520646109418340112670758923154591449389969466626134132854309780610336493394060202540133254607493146145443221988618388239497589475386773736229286602702498136208265442613684943409007601736319361557136317830927140466833276769131465920289663597617270797264409165681806688473715572744063854727543119384026141002942910545001319738249322263373744720619523407809382277990482652010564607816270952070719172991947932685189331975408020443326538561809482025445245200332986133084263498260207796985405970528609250860580145479169523519425175607388688031407235206170224410547306743526305767148525514859564166961909400608555501334466435272646265742414122727188860637688188254940083233005506699190649252110222175841052685021697001368235942416717352265496709688139843186908615957000917724324759871944181406590352906920386338775521508037513701955828138112533128752875926324384676722578145211220757461197397045269234701134507800491504953460827880290775726905727225167718156079610363518709302480785284721738584456491224993528787503866735444715209708319091312808349895340577346554785264230140997155656212725458053514948008656119291303895836877240524607489621652097569385807371843246442017082548246591862672783408093217222915426740541646727008358375550586758015334221598738424164011916889468883870270724505506448081822828814301371855204600422460987677200588855417848997638537195626726193856861779047455549322164311330576987401967054047535419751556878593738033715941516394798798036987192534320216144351767478037840214221064505562243612418187788216060265511338609681466097291320217684153636326405699551362780490047423502644807933440749995628218614640852165799047578711146487631746971090244658584732469206393936158676697162758152392917899575336797327525076354451394929441145130207355680633759879710833176906541662772949396864235983820893764260593687332750838654433983366854142123434040020476026860380191241259353741561472692017000021738740032123259257007845441069873747995884862916624914797145971128960484837563270273849330899132461605206831899410424966891680856987032041785429324541553525095916078025457219486020847171160313670283899046252828744360778889268728219627840092122824677174054459161368899325509965221718399829872297747815076710925467416973700304939745261681715971774495176587747208972957130246552148542611431405568376429616203084157956422726941485383398698684631185126587522151336594160168259206180967911669916345683364503480062889657263881414266364388705786638682686638956068114985747431370228195329524677593934922570482494909771283971694678081496755190960444677824050627323903186315575369634225826112795430041596548452548544070543706931636297871607874923009839869600496065368305778228050489672162280129888599410874512893003977972487303520563295020490053011851276802348001609881992238196165256637476421120818111117507729607668485738857343345755897444330647211911424334601565023113400848011376808508937427328642114177820322875358305798722081786415064862095572308695361828657040371127242621247500976259871385531293691096707411831351714350156233937085407418955424345032135406272117306817234931038216303800978056421915247626944973952216703408841160063665192090111862295991222238567642152767138730522047123042390188604827185687951299795726623335665247249831591075731372268139446918456999126882427720556498089900368512888761719504182416438489877587545754145950397264268612349166271454973989518028816736557133508101285492931336812489143938394289085098604902923607110982921007950210783074612841443793346776839718396004948718878807933535609527628328234131197529140400066063102324269912488846966426652159200586338440702800481011968803780983963848742857272184853235555499498326079811591737209802902993368588552489875187520254114985076893185095816385671331807169663004634478776597103117278508504642769039220435366745588352326594947606043858276376280108922748457020898176970067167105412923904197875707303122350996072451701846914812597519151424293715364101821961746443239201357710189911343798159371903780027053932799149452029947612544341178737296726184421068997413016096177630689856637746306867822745818724381510561712429082379172868297532596285550884141750062957273301458892325469137209670029557792234201229067423775837442432383434599508382248495398314972521826910660377243686908533426168791494085025758316901880675298474956973374160124924521732107018660061447406621619639135934435282523548035840251462000971546213065792313944267177231747672938588161617119174355376459578476071380929940059990754765617655689549223296145421043369193510423444152718620408432860782781176185392022730579604794715031497585365075331945070241242300830352348572781971321106727614895091510777888384950510369364917067755373442142741404011215491619031179387070093521499255384123144210541416733940760714006807536307232775256329798881621078034014363321797026908300118735452529016624198693499853376104671372626166710304586111485236113632628456373066862524286678492573691741616840449829584784041299417463210921205601768143183859486919414874716261091665601797583873183792918731496270434999649840080964370773724610169850975795894509387380997795911396120763463735450182306653699154270453797270859284950698570169842177692091817401748805183334083327343099336673306138875358372581065484363059570925596653802866423411451887133863159312703981805182888690415050151872748023846826457618755199724091162285385199785221565094256554799272563194690606263194985021422325411690784228715840057248037283925865700279760041090398876407475423257176575155251257633771041457914661299480587798626826422214178231175331411197449874110599589792793439782123252057463797049693885407147268513484877845753383600488619336565181717911932843902565140498158718589835324958048072965701695727641644475646894692863722057106852803860039802275975848549687444107454834753200216803496912737937882830694815795088874030062071614921550420623245353113510969626705438752804932116619980925586300994527758596443235301340216542268986094110066207885430324021034196801836845316810520175433188750845133545842186987058484540605230544335059326919880551583349240367589448801907210547239466237910824977299844669750360019729727106528414409422113356529920575246485179227852294158556180458449289557586232967235792274045225308517005173337677409823583191496109097207684522873706757693166197446807634214038529908153221538003591798460893640921476568631880773977450042869666513159296530668907317846570188903805415615425747780216934376357121777560810002601562770567179639504117858030774829781677576876754879037038596282946897162220068201054635800108326977172812032584543496407613188483318450000334373442450626208871251862188108609402898934268169222969697636057429641322823514855040680596539997923497890279125700467871064824932959746441659322981216831959891748223561155960377331499290222759306909936427621971724358302495933656440637207321753186144966528664214027535363425872362746223922058298937143093521584723798435881656294315468882810880497069837095445735051217424477327240683804687366346113729213389551794077388972601414545573789455725376127047896413475488021386367319830389130325476391838240509747475014041298100169878765845376289907727805966305608781807258099500527498397449892794119030015805332792097052187242677463648886655889084405263415666229030039143717068833612029292841629906817395660634282039714271752434973104196470173997146995291469249977461163986295947671209583207249979824954761665072545069636725736569747616818662828355655975432156513447171098044783329184270917704028940077901749231727945087978218815039443122104209299425197892640045066883073816151323917505342826644087519621027073737521006698262148761831327777249617474989377249952075147754885822033069560422763041354774924724757474662616577839173057369529804335189178078618720196424952277003883356431865097062803799558728258172689897033096091262139239102972358495983020588410064582241137087636373835106104973632295473878006466453034036294621140221299862524147918379038355190735149728976036767590757285288396218368683688001848287433829505977492078742767232007515069679528113521443553245871088880491861113356716330530136754943523539201474752215279361067003988014096500415004733942640862511994377680435360750646606214764798900909035480900414191476381583833488600846102267041151147938741671515969836180715346781892892974806051950071044260375915477162579281586076332202942847010953368603287863932946083383271838999794358320813383892275346215947713181215691693035998721772188963802043809929543967375033088166532288977555628654657227198568239353530365224959394158379403337698313613434321007582386808763901584017173916155771651448850103743073354648008268532882833412596540847185610109520237146151979146474783741782377506782410417494349406024134868975578115791334876848620617858863815429911945184916899484468075270653980773874758994770289916516132846681943877126669822971175446767138950605195626653986839858970406883186068899184021249752357708026384696664899286243439254809182983489256002154242510004614704997590182847882891922697253527494363558206386346970878031981193423064525121231952385316626749189221964342051469102928804950372390727418929245898127431109900762077614488869244291358865158762487472493101441039329258095362521645549565174758116049326642256786802068525131711824176566810056094163151244675448419956645035774798530801793618231942489918814365710959389206144479949602222803996047405267156286510965290841977186340073769193249031705034379115481059264075564559027957923279677946400397377266006967636347992135224145510507045825452833819572657040674954097080096830632974628779358329579127603084064081168500150901005949864390234965448521922811080569784705465782987308459757718915649870690637280661595991144102339195678498185383687425434558384753079873705743622677620447945669053967235670254518953202074856202267743905773630110491953229759203373062896048911083961950595691114258998666532254957619558308245858234297569162773120680821341376148724035571858343626850359848713057515944841362389258540028268803992900182440015489056893483895615962822198976431893673795724850238632357025442150802063671237015020164402570043334345628236693282779502448442517920704576095811842752552643181940564999549152008930412385662736897539189769150561668744001633937366218826033717238824275681933526086239733409022695092913590468687256456621669322265007307402040708453127256917886564017184509242451082627977722773229943790122897491029389857747727370860159699354747685815769928503393413242591032879506194956325575977159828677018901801456938799043331712734583721209328663920567178793771590296307028647755378196593947156991962966212513563417153921031252638547990410194200209856810457537608589546032810344491957534153688305817035297462373400414035805989572813767552239571332423379698091588139641912993984281971670953412581736881377058320878358488719807435834562366798403756479301098238648666842195037017840443952239160414424743047781478963661886647286026886175584208942710788227768482992188159610535803034478004810145923471683215173609464746454685377027314996766006984816252264820478913655932861730757780051479874019261950482219340861063790021453261026258438705289463756556800895712766102259373109236075495773203805928074942923925323008836664933626387637465551091860440341390790701609661329749656154904919518082572032756882726656699984483659010858774724479456557078938895502529413017651260544728352093541369619732050247210169449406377438318199377705862008000724773696932326936397647650053362513370250248473194736976952674126911220916230167592308612474647525792714797617786854718681488529778369228087322657490867872565623697164597714905946190641237264273672147113798175301364809367215763419341745310878723975248678457496428889675840862282780980328155680634543680603737248650769418437580465111491069642571314249458365586357320898496926020258301618385774677611423462010245526985206128505264386817437050947041057940864931389262921138810801502687478287121979671268189286131685215510733041330597183771403384662471194111355523035441595726157772712850801119941197839145048660430860035282811805467572940092677003886801214368265688325544852161374505878975706573718698379668111900991320058166014432731588984233471384977409532495716938830524310854470106708365190795184127637441741132961158650314911420121434598875709389429662068129651718451317717582448527557699983920317107326269180062040793759464415232678704459346500048348493946825517369226159748010915334612087997412649040767043292602412630488316153738728193194150000227076080870267456386912223989811154432607406894650578714884365425212830644574725286709695647117817632114056444435806589415969023031475732297503720886502936628142861381734524881909619274249095171186303141597128318358516788171785272281695646397613736109384793207132133597202121070407517054702146921062710378860349982737447206048566209841365558061431675564651803158655485027540777293450404680474573811290089743638281304996302286201844776181084956853257476741932013870015708780617568801678171820989802697694901464491891922647060290205852184411234404861757895475003340967130871425783461230371122261259054584440705681862830279415724350146398969929800387935797002435994397738255055752600658890241078300351997468159000051883802451140724169307097313157102025088701138035323994807685316089259912677753953171144500363653363212264342088394149493561657694391379201772846361401573841330239770578699552045624179372863870306882644525529908268111644568510073137625352254655988990126534613251204964520006676109340357941972970820328613800460711497825516448710442484171947253148076662099175583722568791879651342097322646438157118010259912739315984848567623652567792867280127678098253603335135313186503144985506108416094151087529674294895817564436582148543535994869889416066005558310038929150834054690818873919532044309794196593068825051867216823921463234255301433988528819846011333836652748438250265391790764498428080096849432329851202075553608245820103496028296642781773028427996559690420490999457552886183959490096213177614999268898311037362579165349139398715296930511687107248089695016976789387886901848657459409163952300583341116200013889018486561884412338044557277561920692391382670174598625930982419013379579534804596523490593043417707355857492794554780144030029212578082106000783302559937795832061972836554119545883185312080308197056353669709164070111210852579305250577961917641266996123481181719487798484221033703680350414442749031217509137608844533590847615664354250471826949463620489365679324757834063321620707330454384859926855053542190256327004935190809161861765731999296695707516508274061707948397203195035091124597237428810925168477554589067713473882255191830638911580670233757787340844075442694723874401323352919731171136886288290088897269581058898186459571524293889978110809095897414406129290453750683443197167991339127976176164174046199039312295285292984164441828165526059311351168115190909192366809048645757743099879919687725198003048453239311820826052277905130026474341895639221127728109424477992437068560188165795984243073122702614367108212852868807967078344472843519764895996264130470197328532722060166951875071667052586620386399100901453791832244203771911834253930540767147910291590950979725017238759306728341515472291975024943013648143565625531184086835516552610855607152805281785046663869706047512375636997168063333084006216114224606969322502152276566017585434318164224168614857933423279562547175749571959996102154233926303118226112153106344836369968212819798339242511974162472578039470752599924653112442262030220216580355994220667673145596119731585415905301251992688216836403322154410595064453148804011500472060348208792594361092763147849789354539572663479406828761485684145857418665305500190323569562071749672496118659691237078147844099969908471752811687518887932325147686054530581274408376847537881234809194736313684223959527712061072143110869966160997174261581081417510089035176962247840447991293139125239623142904445882940506370497822677502687262733217067571614699947838295399176475315059666611950329868522397114820281316941725059027721896313399004947702118286471193317671747923667760476694225751132889765702963905726160985134921305145752206033492404308130531627214795420655877243123331975216782566989481185308883630660679900492428170292066714016186894434162102373780441809521492779488482823294328121541589463919148300722267555285673760831875942339493973024664168415681224066620328462267548783529688147204839018070623778451871056065248327126831041341379910946437284592536019511021271994733375850244010777390616165196294691079359286890962012767623002060706695137543137938971734371946322563501062923010187035369823014952509510595053231713582829248232425502491298800516321933869881765368267737288381513870569658736885881117152938901288977894418957047532033295648702445456266375871610852167701707470811930233120509137828863931768071711412902359728724633428647336870721012458477427955422896422038232672201814222255158810790922589708304478450888868795503622599444605628512664141094664930593418979679592771971283475566135762614173224093424315411258908125339298457472618324385668964345097243602696178217607833433625180168868620498675915621750910464102608526272632764811128673068937743868205411535490142108363293490613105398928853244443368038701178134778409859257590999420933200320908891168020798101187406325139141145958069175782103511353557345949919741847338209788335457199396915130974001148699522168081603596693016964586826614343424677770503545377462491401744043522601267996949319963832277926538016036996272137053819115942202207366641955592305218626576177177784552520774407283335988222529770180731294363513317795056755796190673503944504819081023915532292956286652224713168681292050595460305554799814909656320298028210622739517904433154653517252616929066362110054895977819259924313729814965065473840471868859310908823685714405303243335575444245185780738551765049516069940184783658967310680339061939785768532024410600757098605711354912228131207892011608239726698484685058132617366967662024279071718147474241294994997468106312588484179692224652140053638085426278361843138013517746629467733668313117229308491127123032543762978862746252371249958887059696831006188457795833533361912315667515298016814763661310722837579231037500629925404655090146314754297386362871497719639648995161719186828424939653670644047527224603493667182381816808294126639985224209679207301996041399603315975271471637641943698896397982326671396443936361815186924161380639874546449468755136776446677367313113433652823158552921063850310986286152906816618157441241575379946091388952774827863282488796620368294380856784398043533164990339329189824686394211224363918764867108448609834246239843806354916119602106020263074887773830277200324906130391119056585906805296100624328242569803880005787036041728360049547087395887857981621212040124849578200549114415519468215729910816033222708869409662918663624924166474224257238196884870562514100677278076375084242630099792344998179552705185580143406615713824297822370103707428485221857902094464787958729585019085370129069737540538157242871825351276761863125254050380505018003082206133813698152057172875573809834485319361233075826458102720323891960244228882643713146071566739900328776423316862458068997251997561794121542273858236524819736302478322720212955739779749276911643674699642921750065818949486405747595979484393716302377399018378928108137018857057662565115737936625251055020022470790669251766112538080370416480314290417910988702581661427581280366438335530824400886736726588690376743906562741049391796225093588515526747629174904877074499488390426439439277057952428425554802634818080295026479801210843336433609771872199955467289923643759569295482721565622507174043229279238933758322871555214045677543821122655587605822368087632319682079528959015922324903786928537880513802536117425671536407278013612087711539274894971820359696319405053455092146160811920011984803918169334299407228527652480978056450425222686772374528010503167037024937772474278899631895336620447497299013896834783097898468891076166718052220864854026024335225397529271952212923175244028939970137227911304749157007760166446942640211411790933553378845323639773373978005720724059986835139330211122808470800438365736437650596682710950748664398113344783559979891444970240399823559982252463788968558327857800031793724473006044107457805230727753679890409355773515557593519410745503787869086676669959841716954905150482771212361531222799870447822474386112879049657918607729827076967445166406541327658199477475842863671022753111751641965510494155528423888455241539005565243304713010712076281935157577174850360459825811260964522842665334471705464423896091221016261783366043734283191819442641884536780766735898773514598362014949681924426344316732068238116511998988518593110944834432133308961037912664165621222871149954378163319094253028803870621446083468361527330060404993665035591106938908931504260923196338819342940624845723052183373487381874578506777193865733234313772211273803332460727185948474218543179431118059502486616977424216343198637048383882692986069531710771456090191001882575803747902473354523110350109007930130390410328177587382660204459184817744734785568389470710404913028110363957590890581282979737541170802952584429814186003175537022348334251658591362666726629009251302884669729848454980264707632566992847470775425581058945275949925949837823249198338140082795260410324997566267635926040378302677556014386701145848281205470711324509984566900187305927863587372609325737169171848899138587574686351578840794510455207162992587479953740911029695455466551859913372104403654749559770659155749595866739861861531838672693468510126327917109227838165439914481086427493931840555305040236211808934762011366236742399854939621797818520671084642226439450052810743578004166137380781552831123389311969296768104573738948150590596014979120306120281669260381671572268410955704399359353667581519544791291705085714289245120827869156207022132592456773321584771417326149641395738736082989023922828461533604479319993710504660142741896786770726955728886792581658578863560881236664733700771908069376461461981742156191130293316961465231648786497743793423713285111252166078278448615347510923405626293752694696414990920000967796241537404139115499949720434261322877357253001904327456194516934567107518956583432976656258568802578306485806035673551437742533791554058691878918979884660370584443312917268055394988486988762889669996840005765103248493453017854923650944213499415198278527498592317522703695330892496890299389940985134445723094487814831327826531079700387182760856196249924749929842607789168947067233320984027718172716916396307431445541052480217268047274568804833114906591819262195917788544919400121198489731778034450282641015751578072794341319063229860098096718448168720889695658082245616761715808873886110062171977946488639122718878165267806396556479101794037541634121721222714041391289967395443848387641722772254060878847474022598359718606578788091554811050569973406608098022221868128228851798011622404918787123284192160659560148481981228929140177822120050808616907327810174050396612212309259849636171438315755928384558602067032063831019291484261831193793745513452089249909160480465977790126254412581487779918372820580532676605784823207153117840382030767042146241706179521251841432013569521595592340448668460578118527900873055983971704650487063740090161734932071975292787570584174027689644919141516350911544640626751855703351156512361698446284960638084031493843943425877419108168793473362762378464782586371721649146671953362759268781054845141266759722892041941798201343684970700042342145825591441939988139686108787057680159714783799197600553623946723691177114021902821600145319956925997462954946525605257219364635293350298004354929271872242900395207612969914338693817854367811117398942338636206625523946425961579764454162304943560134173918166839162319415340125193618885262894075764329456741001105736942296549635434228082773556436750005813783076063124444910760695131066932250220080003131614491075922846705872994617908889059124982212194158869903800315374574353723367279074759908295149256174325265290919782989164038388820056349218239136996964059896354115925845674785215652354001503668403708390199069357156340759316400923871438542488434261756041057817600210355194846807302237817240124140162911033096049644029515517284608463453626656615649758708787127511455189402960212622950446155963867219500594235808935716121847100867710952735752955347592067585812755504565444942661940845569736569004271762921461070389206181325754084358495327827730714760857251099676288482809845050598832941341072014498090579967508806111058762147366053660973769642946160404922206338106045448926967032787842575166638803793558445198640281398068952241413961350827805714778621937419710668984037584534772073856290992949042704716934351069901857249660348847447073337943119897534074238508089998666658879388824206808987389646917223738471746907349958293567026859365674494422699779335189090909437120847638125547572015941794097388212240873042788859355382870115183938937835540908745941622167920215945647984344101007559433165516833459023718302672760846176502733737813550650639206496859627389905735933695043803661490706962792376182250273923300839948206089178280371529624138110408966530437708570030072602075202157683256433218696872786818385804231739167571645888271679766006259019304099356730281714507236748030513838508728123418674305162747247846415391815332032305849218440542191293193750226571557355702814688678612193737936881921529251736262909012242174572181918602512331504536668213096463982849746412848022516079204759434053802147816941657595762456946531595666821762890472854910125710926469836625986798503668493689883959772006219293786985754260874815799688068247077867712426942365104634277678042257556569969561526819374962593793033416926746393348124501092064264947673075206317261591566887423547749900063980001539060759851026444656706686120449535727337853544931638202377244590133579299317111269431819937115558412020632363358641064431597916770518588580802028303437307947852747388750483054160358530461808075705662575670570554248195165228657384124742352342701338389837574941092984968566290477065397739148333213326676330273833495804245845210855283785884387545029478318050169898976106282714145512405400837891045818049681667979107202259482826563201727058082463075967028589468150060389862178960355818231566018596480394294891942604072124219463646979830456021389465305021540978456157637376547611132860480670552842644139080636020252693293077225193171900665345683391416862660020390148543785424693792198341276860886962051263418306636542013571166351705396261193331905528052710910626413147327149940773761559374202974875345138014865238722730643078547910091374042179575256732174402598625777829472609617288561133502181463884046749502704170467939192640310550475119135360291566593224986171132403006543844732066280122441389272333226844844268660113156985825698515045675138825303462547028866716489402596593959267687060663216789902824662330208964707213422670656688362151416203506155659211155256357983446793745389004104473990963165990386690433647716474635725818793697179717000789900878438599621745471410468563415163378699049559895941318015055999324673248416686346224492995393224417782172778930396357879451208903005192688114318640320791012363168939924774198161612007759922526161132100107924503700449469810047059491990897555241592373789231073042484230041843275529181556513339345857794798722295252761479009221852490043497782029457754978759065520011676367204956997603802507030362361006275025711145013265935435567511002458044672296629276888596791398305392005245340098017709963918808323763959894419714652981999506007933894678706548172208978601333118131116249097314405944186053244463834532516654844262489065485390913210337299033833154927760687870832787182144276156410859838037940839354445563392504810846240341129349900300019870164389772310360419070776289319104723525467814330771417490265532125801381041695368265736354814496280765924949954349434530059652436082998873304691325413158924005778192267028828368369679480823891051335850605769061159065145217408087316093041817533018910677665921921097882295656749717697243286090023024888596149980704279650604250868991952165301924648750550523965917283104776306447065572526948019552277593944042418374597851578604277213434047688771814320078616585304076206236024899121076425249863507770501791884975277899100913899875349889656161935148885958037676658231351625908222134433750508024918171363039987495904033729841915788484170931139453358592514773821382251280342340866500747566083646445001792304620779457170850849043803320377262856958482623833111308188868925129279155084955245882253295076729041848310047055669875773866844319634656186510987716571624452448560319214843490378580849337443391760614720941467240589041693611438901129083067806829597228863371778238528530184543305912808746881785747855747642991924922741228401038047673730718934231069351432079430831479264050909483475391561243873226866836809851932138448497774839060219629471685167417072887664566680902426554631826440182801734968212998169748625702247510864161351815721347720593111019691156711062701789990009153463688623121205445322737153630868467400031834297017091140592161257922950313063819755000328756540221447467188214510072241032779337499111320991014852319830098023914211073695763570422742867301090458342666810033148146853718316549856307754983716884941807480121590980726996572500667269309869193255418402004441646688106145092691346493350271595699381426502852231712937337807972396401920004422435433353521750805064087134862110369916641111526755087556683150171178506643349711413423451421277653224906548446391637077113928988359036893829072779924846282743336426561033524258039171362735551981130193116497048724978354581760490183647029204897217282971445423048986387631054435242763386857290375964094587660413086585389390169152274218097336210244626822854474633613786363200877898084538686771490858256606905418951223858890986833275874621092638036126803479148983752748309704665393365885916886360437115194132073745315802692969359336455278786866834341768165543822050261563433132509024017383234365219652422699222413260703639587094212515512214025906417148207218217679773252197891894785675034900151728139004117172047501135745103902146113665628232849061876587259367911827832611541047162342951166767187731656340407502287181573185400006564723449946346095371299473915006167464158960879561159647598089804311962133969819037847984933294443026297560984431541785248243978288579406310393531168584758048948692252078129834088875625919134246141974880383559150610281787097957720992964690804394075639982683063295537433689045561040413483080984953164237309304384243307494635759934136207572988701890840360106015411218211732321917586097971714414718400376123254670390074514051291884676805188000108158132054163286720275297996606758527117726145950756340534026326605120770321963504639513642114185069833452095961854396073740684793970704614460760512292058054208984485200231503030242887478813930534180451929016978517892271337049590463663690054397216562373148366157546766276940248431699141972225453536880823995482141860526144129953372920151949385281424965111266849326137997968299426309885094095690820879793576041177260015416828090757723031834037339468562733714775281111397746984229242155319523588410517579284115184907986968092699575984299698577990907516524367171047407368760521033227373196939144635649455169377720185761163231628460094752536064895576258784245646179966173844510168522156428552908731893510020460220834642082444140057455980336460278778677843769514517537174780152984090611748893593217135050521412432305506665753541812808676392649150880049295961731696607296468114395393421406464719418311009942537374578307268353426034590668688390506371592125507682286834280380245468110644929046075284031998068142571711779372951414059719880345582500482851475448007112171745985959468800732167666039123615123592605052181988409817558534356381555225574760082630464703038891183595960215409000705173272685629246627533038130142929250540154010476533694113636443375056710822508577763566914106232367157719987600824833672044479101787897681418635156986723478919105393275663315044086527868037904771238396787039218014626877429507572921908930137547063842326906682486480406373048065824156416274942278825990568554612063682474365477246926714200319092027746728057704350208591743610962136626265243976805917651264717280260402790718601795710679474650582139671722027575475332047875133574459150987636091420971675892054902036102273060154450866667551819611987476644274905274322135356949589160828870877591479925546769157083543885434063634202755859150626180900841021321244015192400689689042905642844215374462648262945797542704822669113807715982278695872064505721857204325226643795795006292312869272823789739769428613626050226441695433344551032481323245095543312245546726196640049624099204325057051030910053802846394492278425858199419415782260712653735677953218888693250567257445815156454915383417499832170551654586537664402782638990185650441621498338036633987778356784911100061209876564283642624134786943717772494462880354207544081627345014638172451163200098852021000439278963125778727744973479931091617713733043024635182849953853753356476787077320524847373525581441636417761328512237859195085320936961701314763236432009893790015102620867071782291076161878984635050735898113608512216586741189448822430781995742753845594560571632602560916047471943724210609221357209581852562645842378093460027555369036662743824881787162668283338846908499775597269229834006287310428925781984420691665962081495239833818758195671165815310485961231738292772398738907258434680268391781659295201853043935853286235520201756968463090600781770990748877732236488086193012335790723391906958228420574703772281579284817960654391843470938771551496147106218549896982700422851868894694685828993163050087847449967976613099856973508761613770500866360520521774602017864017489389424059794466180981590817252591186702869428466444171762701349670688627298491185252361991308110392091769672160997615021808113119869217663238061824209688789587046501771191046423331657742342699233035066259320824367377442394930603636905099230010769748161269937084005357619167464209466792245591276368225558636690793841904686475208653902939044848158023268151807860366709937643201503458816429483052999982873121360145264463257699900809528128771424074008189528066323762949158728316966712185942613066119496512679088733346369774541760407358924510874943638828180530073373069405026981835346207520503052779863659723643375370375025671443355478759826365346328797527005999018630458537209436504923046585230076892381281463296060218802425406741692511774343747011715365015725656303839943181243084620988772590250533957960297187476248006225977690708334710041935911368292634152420481347028881766738880393241288494886820529457895945499441264496118826402115751950512407217864401928955039773895407291436924480533142310237924299809779551628592189505817776776639547841926604879114345067829107561130459639258457337303249189246349527105555719841496741403736787582184458680159497616905645481083466639426433180708199282955422621489245304669957472210802477135547366390995091388521774455384495285671769467975194518869135943728220559983005011666109508062239555211605461497270117215381876690633777981388097583764843909784188273657392226247070760217635394219269888683785113218449871136518068880477737099997070499494178609995173006450209732256288971085128736193320859255682001210589616615232754795061338626763188263568989837614554213495209972713286357776815028399285350201230688552507268830122548139848505369517526191864250802276716793382214979873118262818911975136636095745444075610159864058107711816157152122482956434062401325540902552628696160944988846888849084938292230535046892401626255817111517826663567046179744869049198729460179864885374396866716419262507303801796228350053493713506012373030663060732873385020259502712427758990573499402283205988956501069933501448336761389803721937820096036553233044393363278358484722762221772871707910418694521394401745236239640223816199950477099394726863861355252257870014011027670654099181062779254236789617093221476492753242059606689124736627125427265059415616094605908808234457775164753851458245826078987313022776298553588905140383525589928701319611296457069770395912478374011555232011018578143971715301674817378478487848808474486711007418977330260320474066917990705876292767030940539311553957285929663223864395196728646381784790823401294908397235742344239292361020607658295273432227153954706238732064105900420520055541824609782920467027998766420383589801408290328147532447841366320643970137373360616930231778661068419129168681632747735070961606430295908701935409991715603745210609049787108875496769890111256197709660667340599172678647322429044157997854786678954452317234770733890557970736059816582196831339788711044488195923631458473446119440569669905914060415632876062634937664334900413729955572612903261870822791745086913993014998647594072999406650810062123178352776678934500053045505928541437908256378757671587038196760748904173976216010330237309971868778790818993902489657208450029702482071711317192323107093148900798631757666692105899304423832713462319998437922719937515760199166838681222569169558917999002359919772203137413988311690880850622113627064802862807111763084595845756997603954405205552714515357918730343660395433743254619501867864508750444431188743868123221471907488935057311273240661888941604347721847167196318188440607516975792378789934238747516175756780358712281256872752043140984896206536929548596256163048067718648576959806352767018081099458548098782293062059486247794102751890762761549845687515906134950052714196377938224830941921026095914207553288131258422811380681998192739201027804592587481371650513183774115373323541017570486268253889619685921937515199487539524671398222938259394111500464112365030854324627544563277464295201681237832158437396984501227451491426983492749934972117127312186043944800143001670933849454393887451037813587750326291589690005939510085385882037498042728304348443850057036765680658452788318848197760279908595134051342975177603984662879719774154124932556196109426702599135276443439209749978170488186142139244248934015533472185839536157939010757401141236440499940759074794636743932778343502630257224696605019812951887696803312501597731903704094702037415713069681790851978122779221320033010677900147068153641189308562729375444388633607112377957395431185108139748326130480237475498504408238132031836152039132694936879128680181693122698715334127332173565372762138647966135698057053198813974203731360521699453523838616302476012490176421017485154025549113410148323425082094249832138433250668363475277606834411636347804444387539537217720230408639135992503492220398986060350698732095228023933817529908728435250944740432044469360564717739551725021376517505374696127801174395296701879781457693227377558303598247911007894428727273269890587088041417156284429630749877990204878389535053664712559338881463539133299039733819341442422170192922908392680463783175600416236779710828399659894462667151485022640652051602316002823071539445732327392788193165137793337686894311948158063868735854200186077488435155012019317074727098491065735415522938505094190340367371860778878383071515532413656777746719969208386118960669180157177046840173971172387330046688262917596804161952420024306927168384322406140962647117544999239992782332957958568611382639100221440794295843201757305307509381741191712831998595465017209347309148173979738336107709070214611091205945616054758787155172060383139622797909773610287994261061456699340776432604992395198376611483932488225295233950150299918781837977231746455701086400213783395546817003502785203364891943307892815109627933039500249437393989271416727572872842620110995163630090092965450716558850742062573224239111070621351155877743367451938067527193713907358432141391640638987804338807785341629649151045903486901603653535053075897542841207272133882885887396758523049024007496752539038867904330328372196816169885334128201153936239436010592211572085042525556734356747011695334252891753644279551932505179818078475870301563233037702966923257998554618732076566841939131073546065844691434695554429636008909508774206341123222019609354253206643971934586957244014870590399355962211448673716725518021731806794905227156353627398919917457921382166621274462957979251584927521206768663552324585480824624141156625099004504227413003206139252236871742941260561779550312058472845278826734153015744341544181813200616366556775239320252045304381959479588428735084884672331984983115059374702533928148328300661000337262367700280678762820941013237166114491955470724778880341035277447282367798373239420740344407905509087987547816427282971635227562672209896435604368489126253518780025327463009208156465198239658836342620325103280702372544444501717752047875500613255118058694570972917013210732027307417642918136580093245978105638562697100732148180613622126502799733109664892452166536582417021684815448676841683056103955362827389438227887919322136600807671301670756858907535769202194643751005957813224624082457799192370940697276097249414086334052727511260275834451328845477462247515178029456994707163557157550126214161454429020484571872565112126957561238219809380146700361843294607483491797384605658227783431020622860828542538632411450285818133676786534862192919116711140611425257226223590761186266287848798331762182130118849502091852725508550425601826334596007343264551132435552093996936311634511734449076381849429479142034605105289772229020801288985742854028056023729878677539928780077633899894863762306432813036728086699605510586486112437220573019195663509259044439965792074468053794161311480653472750999037026226826892007894872500792558379382051357838694908536599864402290034191975365164036092889924511656648430539406657297838272782022096330595371689491958347618046969322315885711408661057319467973025601321951659138157544468048897435314778686033692282718507759513941306763074035411180456623921819802117151457427943825964988672702889372356074639647375181194890157455080794719679418979380979297497748148796974528700237259024257544847065559331921428294550619602542465589046053269389282088878296869287509326353662469492802069965053916875598300560296937805882217182078500478865257670469484753977270542129019382597898557842988754604822394778612010512227320684617284800543646502067632700231126225683257797946414140261165839067499895825254483759336363790309858320351910703740693294328548113399333398579496913559764136966514676442776830002876146845472653234620710937697540425866980084738937237260406106411075012061569432485141720112763384665957212412020223323979517953674590563322369094872622000671413445471525261965859828484927535549072378440123165051171923339407630363416462314092872418202728231940500147719789743021664448345846817426265519056437299569324064676769013782869506676876792681192942928428290031342063513320897638671575702842844577529806101652438618582283246771656197485792418231762359752399165826119126431113917574427597627997474513082756023268433439552256922140805185800187038083435875935802057417839548704186287580560300424775562603281595970338246118095673055369319513466001706417404424361850897481914777804545196622480725160812147843180879243799961528812506154638615151193394654926289269004619803788246348930608823380013373460787995086027265239189641607773410872085516749773027962092833587819975269311971530575437034414228023185480539261650577631702134755845039384509312980905750773444144691530576797841829278061834629475761722457199794452865297007022105599326979124317749938728042480761156994092421931757579256656388990232609427544102609035793081982370503814797987935501938307077246687792907516254699234801776083374392993415423691403417700979442655037353818963448128704078190385084196041491185397553224700040733942756545446830185746989797873209050010761263469264318404558812381082707603980886632120769857614575295496278204333682936311856828933631542298126749119241287193178453158066012533888256607172774232374952693615920487826434078030069611320726616666132531173745242650036268388900083793633998210222207311505892947099475016857095843994187774800990906654041044453011774617746174424649881183949050804097924687409656812666540258595385749382537642834096629574429959056226789673536725928770544877420323153239082506331712030671184515752141063986046666501756551927151451131936072383965726560367795601991321507346519991357699799269426490465021200937824628683846529545067987922024273225399370653223182809169217811503417324491104413343963349513244043586248581652371447917505015710801186850111361725610438846622070777575874326076550563573892905519172679257539481344579876407643902164200443626633810905199166402476151950405806470409430358529566705365287825330669130782236316013750601505350059742216225539579737950672292531831720532393771490112675530892467098448280771910947063977803906761508538761832294221828400664019176487273991388112662841332612103788534023822626701255325261467937111073107688157742205090354505786482233762834086257961912259051620260805046777755594300495588646869448733459153448558340669174221934410680724413417951331850780606704822750375788846251652790968047644771153530293896934557213059938987703343635939984458953176314463498828609668709204887794970371255896100813488055144026377937463463720440338160859579329008815595284315164433372541738777241457092094860371575101717980877398612407752608037780595423079754164277978011818852104436430433717742226516749273180597995572753769560218245040729627089317175768203760356176641798293932600075067118029128225054441737496451357376502138631810623628497893367829636571281806224599195679051149572719474428182018799955223054829394245568882726058304813336623190693058754240664577751848546151083063344789785562936525471646890068363796917288011327772300132061415609779026172826776699474690620595379345422661793657964457798262418165937380595657851048095631812016922734993423701881076730901968214371220842676058346571671297538940651122404280038677708662964865795641766089741466634163359819318099916030352807018586936113621758988573076009933173291995859081405369321975893619760821650939990984220556123602606593437654946690072562459127115361323862296562937144586298569226598875908015876171776206228633682986472336726626732821513854140134518300916011492836748056932012141405049788378255518135667255203103179761933351159119244272138996412915312854963597945010389684748928314430622368644329183041344753823204004949812858611027822097889938854408461575991699902209777937991487923790516106770638814332883693129857088693802859098708366593156714766372167775363224321057554506309835433123070752823216542528283371686659796737717588331922406508286469358043160945833095527417885210835078881549954952602575349337325345240465513307556559982363961804706106956438904170177660549833012816925980847222997093611831774071907338504089132581882531693520557521075018402738902683629022724144662076019329069102652715919107630978605406643814685293795517430792614407407137637023907621719879546456496112221326734583039080824947909378812260630866856831880419305051638528095148205228574462818600212145281880225532586403274914237571788791458596385053409462599716067636593861877268448644806497469842710990174792394166396871815288194929708697827302933272367268001808175773005497099299505120148415456294857662804125301374193835876336534828629664690959229348483485478241907986039622856907362574526141267373724942163795214568954334391901967186135220778180404495011548279121423790043976501249574897994946803060514151319081353373004562355204108901451904668532512853490244688890002926876191761079129042145643624697237625912465621485760022242930207754226499116113446996203934201193649461480593850901054911304945882060647057916419423260794934902678977530185607498866133304793298485289172010600128052733677615105917458473985836767480678472232376308238853956688113445651016159196381173012967160808567041016128123295184364075535235724353812041729076151880367474116674602106196414185598859965206058045239558358151882261225128592604555609860122979689310360251336573332579818149793736555303795472959129000818915302065021948146547920492696191559980059290099014656354406888606324197138602710821709631066693361771122114998738048565015485599977708246661258225507097015215784479830650475666700308058128960438425582731457361503584417193505223304009689107404200543339292410371435159362333841769365422106274282772345318755234863448261931197582701498733777415052499236223458721928491406324248527797498101163208426666688024693276227117032182703113866871091057693618909732390149939582676767184724942274794791785126756398239967353580784275514273303903449359118789348468909403553904821503442948731916321196007479390353853096784515647506551716141394368569117970378933699240357225133063075526786349908572264071052639728794599396326626127098688560877107243056281706336891115261433161120816101987382925943468128223254173296200520238375127040019765319744224721766006410495875855874320577728161020955995328300527835202069278138614360105402627841101535316432749971411918968045991116403404931770259085259356284353617206131277542283203699678323299776167275847479946975602370912770201409745403599387702982750996270775146144081281978872763469775703415630594771102155148007049195047450067227900271374059248956227181260746193064899371456411623162975960537811345334263594975236317173404036014941234764850389538598727541019754704767868315852100987642745320292788529008676630761752709516501471910260697420884043820811983560473142741766132465390821981995298739510852111535829329267986619097388714285760664110732507723475301549211582635831395014851582464778946334051814955880761391585612086767880564354721160205425275259107571595673203118967313211169909426332423402890665948355544585308849254127155764673941097110955511064948117818203859755283546831642799662627209966819295864970622354797540699917345173814860392266676828845870856252960125498071882623148662277849324532392814104879337028206672270756822912200763507184764352018295588250779156879518835704252356244188453808827494140994226821075292567022439522726342907604718943494680764618213927625458190177383758909552665905913974047113758330906757872325037610985516113415694933478671641928702913946719111289839885932733500290225971054052396485223543337874771975281315914294296897183809978620733516025611349062166600563803396375877066644358365191479092205938431703294689886611726183997603657277129634801203224382907313022022136018922286947166735660358932018137763882899577159361307028805246869965192570580605423359456488073640559415064542014452241111841184241968953686809815535092013162370028123889786926354825939130668730144946899109361902229997092219303625838341283302673506409255397479520768430288741824058955394731149550628250071857219503410657840887431394107717008264924957097266490638033425563772005377376918953993935770253159195290220319214152669039847957940066965005338597347899722392505466687659963147093535493186440214409210581452737070880038076186513741337311978423837539612135492118933321591189763567726792525375532670787287652615475412057533293439904236802670069762277875454155698622627302531774630814433395450164399600947100777426959258132319699300905566944404414846829006586293402892101605084567177502957691051668473383329460186854648840178424747292469536003603953898962383393270642578095332904522752545019773498056833939465803221454529525177415357675234170242488616224400531532095937872363919282741745973931817404716483567283436452226552033769335251711116239919982903739091133075489137760894599543969280186002425040611167069377360893883771958767616184010711121539399647435289222884952262156035002489918115545640349772745098451228023234458238193973691587044793725820257198532909915525322922965441576106407839834972786396641905480002741297011446231169419936101454499235130968273371242853206786375815592531164415884025072484646235776959165310516655486394458534044062187411098797869329052422096940355761691903621460727038131501504865576827054978358715391090429100470053371271085233979779860116766515029682277985985646065597904758222713110664365763740825150042639567283639015688390045736426618342367192585619406309722319626749328375868094024601195069919585304254352980024070633512811399177272308421391566376814701757288069218991864070569482563814161219542946019978940624459426990798014407508604351616237172984677434608316651035581425642537134658363508972101584728967697389221451790952561817768654644419147147726184118379760912480727319561297141870967805772395159401337021320269927158270306002883976284795741372171680653073238270534151115202536360258953300089783250777153995539791095685774594521221729458377031547792325167356057098269774130108887933659272300523642978204665735098896369526394964846907012746332457009004175289287737168731834603482203179117268209662478214045882312231211434453911543252802757427626736880363667105972756919614926753035805862286647201380717079022628772008956798853224188536997703861992401507104788135740952970103314629639837328692679530759580006284203428750015707003125218803331868308723992875953766744382918831312240900778123007420706854956468643306450952001984421553441942541995833214081098337039969414917147021362365875185545330535649570808087009824497462477764927780050910124527831482807612639843676647698337449335512490393774549562138869171714912077571709859948751846522164073116171010322200680142941282996393630718308557689016882453048413069526565646322232701826281206614995992313252402119236012627448782266984096362067977197323745616885072289611408261937573803744314042166064518296886796045996827160677532681609155999468677357280733343562631310716918922748944602440258397681730644800551651462836878661855491210335643592989045363165622972176341981647966674910215220463283714223291121079980885248332867456705014318022780737516739365435162940437881843731158381858121904889725889592406005863592079319363199599458303277905881198570998524846835181747579745081057198809947396478501646450357419456212220550217625528110741131103508193627187055481631274668953420753612387095692084501334989387927583973101259941735583893686700319928668959066713063160068639158291984599616740163821375956607487936437661350074571893501834952754178392743851719256194332188002552428027658813006749928013029794223280510402562013941873317134323173818082064371339821466631024607458140850426005119864791213222527657774638094261024157547317785886837578778465417778300002744048983115101025133820075623029343363193390231649383147727127855414794344239121655278096100580608640604038491521612918640426086695603311127484857763192252720836422173655561648498105969801818223640900332492721648861757718688396136665862994646524549560293000443655110389246234302409840338256617745907272788142413279235660752658427503362978857709695269626592832394893600739805688954948953703975764862845487771066825909068852520008216738526192396377128021451195687539747552034637630008206545507077982881152341815627592022587464150109284704558991600299333280681523104107666582120631131361146775493101758365251781160528842723727398844993786218031705774353938038554706916712719749698662560354259532616886621863777913541321764456249941582666822997945176682286496596216775872062792748424130880631210106691132504110361130311344763741829744070492246834961337013046509437959477808763956301907493596654398466146688571004830886646436119029705229705136125506808521586948633169391529175387873985106782673819631743336808812410293665215094465206695098522802688607315448598022003345815847957918838459958641021803909034419549161876142122465942526791341892596550288532693402676094960307314447480835456555129902146656553914442669651354413277457778976972725296938091819718052377801479423510658891045962964442710774909256334399367113242030438390202186348816173146509233950177226739369264143241971658760889673635004870033509136937781618641711123957719171691583463088588906946576919465979354268329803190595409425020082332981783209070734276251600263769669909135630622939095436171562111042090338118270100915638442679994309792634021371224789295908875332503750150124705203635776553616310848238633318853330680928319814149003815985720621973657879493734710005420784221362468793606750043303656297546223617698453857706575449645167476420335612956048865865773114911517271040995240392152431330064629097379807779266206632735510153269406521786061366802439936456523912987225202672513283538599258893893326769539080038230593260333154103681599745790237122585544998106255795751278954785933213452924923225073963357893763427030404433455647650558598909493984837957709390795000271101975239659789856917212630295396800530142100106197003144366045614209103679720490621819528576897293842514584028391765007212731502616925396458369696924222725326737890082966408425051155357534159215739040150720975927041450118709906553107502579058313278892756862848139544684941664225686458466410551078951914566801594305138371562714124674444374700146048763462034118783765269813943924834995758047104801597044231059960198192012696129743621406013411853564317414473670685425297729025532436486258170229785033869882998230888561036295716597282394294228935252993787568232712761787595277050242608156779272949778348610632477885952667065747546260026168886969664232412083770976756686847404084200410442117179952621198474096484673915043230926274990687849129382393829231298257740956737829989179791578653396603452264791630654056668109952740107290512491474891279065988684954297696365425045489780951126085162210010905296730957565019901201825778864249736676855484956410340603110201633281974144291443433007363256769228552662468358261323218460443797548388750581239347955657497456982411153773221091251695803736088396811010828108774720324477453130410714742523517155165103578773024021856097606983348934789771735573114289430273276837434386960922420387484357224262286642684441186307178369368080017376092809300771736625383507391555561410849609629562446157010837966236358999966019047651740488309844466603375739188788276052356969178114739156504317370801460258361727493181262656226152873806618454846537380431874765455473572803329948082176507599912283302599974066957441512429136734690128131228538189210841401528045725282778089031474615253715862739329321437801844269243658299046016877169540089471193640933520976837060399655561132582001313735424332499624808991258984385875518715338223746667489856303893153721221483640904773670033064658032939020972506551401725729963327631639867662270000188947291055473645751136127687318714366104436755211022093401313252196524215052165502057553141945839783337733532300567488176664268600421323893862031896154303752218565624171015773265111849602256632914710571009720701643611460781931036636875688593107069971813238222397340742300494140885763190558113561814322987891628492391958425937516248737714947943776295197492863500610277143754297112608552591196041646463001501764243591518095332455325336482338775625646800123280209338978766062145631058851138613643486003026917143817093592475219132875792322789819269954764903505554140914973072305958554746670945917888786078721562476581172084520660847481044885888119005048825585701584474861486745773928348887139268546632505636133422316732243844415130421911973894737312757523645965356811122649957630189231382927922538935288521593281431140438190722493072863106113065171707338838688906789949790273604234721255641651435644331593493214423058564647697290225425711644226195123455577212712483447990894017530151218431131702772856581702004958388665502766153563466512040025577390575649333663785077250254541302781420902273319102885563247417032176027873348187215107865044936316936922018980922250895442020273782536635229480908084037890353920969784863110020905774848285019608006031847140431855325064375495074453042806566232085021771788538597770770642722050647113380827718121842657539590037246836982575484594007346460130978298598312786688745022375298352053564031342493502627901516371345330499101014884579444357587929646602685923914403969236043642951463817477223634060073865561249849726704814830380763221160826829738933274599672844593199543899995130363435867193830045226496709991552492968800401425242314709552706857937030735580235328038411587013974427378589663795587530884660679273207363798145816556424458704507303667129018071632770040876211962216978784526213495718904437735878629302472642320592397968137112692232782915311597702654523755568156097320908937372302617190880866372588588684795879767031392967504643627680952895176053221301623848672183883821730658563648766891194309321970121329893920076720267856496857706150008056736598517007738449150102636573097481666627840909883324843258189572422177121120873850241438585765250123652345782588422534622018331278188458682425019386113073597487860443947245477255014769667120988529428186788657037029384116523463135441372201045801320285017897470231391728157608158877420799946267024067901538529373964087952722469868997701626892581214523869976639011512834608052752899348457967424809809482881707870642720243907439766252537740290786429115191986690171596754286419446338430400689623801788579311761208631195362277170558749707290225441189890680062200308380800282536432673579282131543074116196879429794082078431040279549886764136163404224543794662761364309735562551519910753994758865148880235110697996794869574482585121454842469091462641197771910133563407794695186589041216777276278845914391886121685332937729331339519475783950849987794676118408928890078800710958978793391689349691768913632909862366707198183688853741921968813415786910948571611701202594505838816852459791401359448996419284074810172219608362684206957182000261592422909576562717780373751326064082602955864275662383844211769692257330624884380955715139165327612738519590027958806913925997434128001853120920236915902945150954259843787618160919547896408622562491898096949937803588585266030302542120947434179368356696076168342641270996970845575147015167084451252460332620233556342006660728380159065680764935817154475054378307478651036199560567429132606812223864014376365119751940617582366164275328216154470457414673989277944485484075055262055585271198032581513453635723439327461371695997501755916876509562087628673942185048807308798525908583825106069085913066492843087052121046310299316400437711638944478523664881559936880630166671798910040836979787454676166466220623379015326527293743619163313855080147446698043489469394185856956375266865413168104096347402327102376212278650083179726167914685157861075063364375207287178826431559758876681083540518416216306586916107596127439759620099475854575665844046459767698470227026935035321036777014950031279143126748959669304159564382547748744457753576866587788931015598246085936219853001805497342977080785380369511430341013845659588798060960990850390594230285894437885899423207046228003200681392139223570220940497661598991908358275627223936653980457608368158167482924244716905797842815208631960241542969537828033692329480817485560055866836414797500835488161286348817754849251896046947491549393677523537043369592807735661076973119943604571758197192415076978539742667997188582440890932134121718021389157380440536043082741675707822170294534089541810111384638482404336655510438205523214753588775851343458677927066614265490614526898043706459679975029378686557467927466625539747015691094747769978727708442571897942236750872782355081578370373721720599307237150002274512317513341804960068006061005792708467895557513879653868465545407409549526399720490408900370591245214210919282552457418747086942916748308271459257626841235218999205154970547395845618221810844080654263963464851202806188125100499484694510712984558066519586535377873028404756974139719761645809624621926216870631291570133210965867616521034083525438129288157079758763560094252103330036159116643141691060581469669064803119767132823684855318746067452034243306775934140974717545531140706105974059578710974108957395220506965839208186305529127912375668402742292806241444125307972797390709544353914473429581800401380952991274206374714980865651615036144686302262139859460136923387279734678268716028329683865269974944350180947731958444203633864935564999356261950463341888006682278047717449956752988814148058856366602883144695896131986021503600345199045504062178815307273886397776498640947461143897599316519081920833261238598066487143447560733516211954980819468528203531436777678264906139130696799417150833418921859566769774895977218220407005783542091386439035225545175823326809416706114986555158569834874295505529027340821931244745957993097735544415408084280569796079502566765743391749016933522981952061430008811861513401462086356993860966221570903741907777033893924377400060533032693466743696489583096926151727189928724471164679435444429578920372942697720941991121134267694684454045189232209495556765684194859349627946525528938007727372016100919891970092086807314732226708842882903028725704194111405518664823619547981362842753650449761803745513180380537654699919334400089042213697441508301431578164635957264355233218062296976002780065430157462806697887505592400585692277305134358505504840685552754416408703553641316144759324841598011221712108089149815149039528778615677179307800069692286640903518025330889602286241133467239684822692924091132173255757623365799136289625332501078496136020624852578511923695070226837220661623385630912636511429972095791794609070482656320602256829629256045917022098591311716194333110041099029392057587090798460846293507978806344537150458684905405609649852003134433956731766855790391193188332306190287348792545772677373085387219759753089767446966364185266005705286482865427098278628460437806210938565942703112505246824741377002963368016513233468251478735437200891396847072720168466034197235402063111360151196866961157869058754698901877250132298173443358207386833740505985841492523358827996591290584940339334530839414088612989393928914173973549547739538207342542290601225695362940330777551415445210313074531760689113169810402613860667622894482503169841032350978461251523279500704577787101197998194370639703829022387219824019472896563721460783159884310031914198891230569864549226983318449882558816165494651090931254360271658978462328655135618469915781604826150788276869549502257045604841159681565240718344530230494736955518325984015086353579080922970142914429370014572392982028411891223002862626289213960039520167878483569359931105369701190066238073594320258444276790706693534793233023351298659313864271618352794669010059328490840892322671123197586863851314248236679311218545379093908085582817745315589073362174353541244463423487330201608458982779884618376578125055190476266390188439955773572815517519203135102527555205647836939649145460917422470567327949117921140884355275643213515822114374615109916631344807645389287506960987429497670558563220366318670250440845023256285899446323161863595563832642955690049743600163222740844854242754918338675372285251010792988178947250373966053792912642267716773065911932244567192115569622376074811893073932183979268348829233691894190413397666050294295926764584595128657566564725701105113638198503847611457788102608848879451357973187656587464211429056859610154268504074958450619148040925301169971835643049449733661343264839803931283610186633342107868931357051323747605498325384656098631054098550977534801598406847527590938893304241700820835127972938914579210694240042101969974473869684081305368445554455101067650391579132695159437289208805415655564699578686249314817627773655551791794919814992104799829943398591783961167208608799089519784761014643420169476903792248538914227592190658067124028203828328655233204485724489011966712928749744661741413500445710669196620484562119671239786757510937690627821307638378343221024836598630185479864415433323797276164664520791801067801471625094419824089439755221560070549494820907899110017958044383118620601408247495192899938173405295786237562916445067863683596459153322626354257477432737710809898022460682813171652204081962418606031014335740442623040329354408656477975808581015425955485773321173390210391504722381337232701222244243678098197665943900187768110266340963794758449540211495339284195977654387217775206703070792655582785555826483755698957510748287030569579418923409850767196330048076135650662679930007841750331474794714326826692952678241163696762744247160116233836257986819633344129546121443060247466796872000513958693806121891989243994248803199544884436512011476016658832887466151834495889458336884027758067171227311153213257734565567170740555512417650449270457032261603154269869991844681767085375683013507771050262163749817431062803893705219963067287739413370799509144500003081527344683141510382174994773967627781644449495435536684160531735589086304654141319817356093485249265475388485198302264826352660443857264674105992195439007460429405601169772441115956111924758608894784505102908281390566000932798549955846803500202133422502097452354861302148701666400793000619924964533296360219262310495264084301310749589591258851216154957158456976549868646015460645250255649341207813642857436405937676023080708701068137763174711132404004720362702094792914773595838826927712163161164991326259791421811912968401224639163642438532746978368712533404972735481827535613976258414772334727858585134092778174167210935654436980351332980954155207239363121564495331526637779386994822000111251210811441460488684554906517545326807152688086447480473886475721619378889278520439144534033265021528964617644207285577362784810354118782161884154825927900905825393032143410260283245876725192163188255213625717624892560979802091847569855260537917631791059034919570601458298531232261746448226722727434470155702726698722629467723566813922350181830702630858785499555121169445176341768839697975269389630528517267197890652726519500478307404939031421932779348706207767186732226194992034728478179277825118903092554864001032524099757602118554612277383385324274654949137842963229962537675729165262182273136533094734566741154875789672056256005610080391874288257779639419555772370296730177782926183983345575718430090024493893123860478023319259029474299947925157439407206013048162574073551089867752826836191941162545617398085769066971661039187674552852895731285299605809891865634304511701440003706133382467271937568357916856246531919855532783351881341754079349614344310908794488905471912026163292388710475386569229594987316077124029944385407646499742442357577861517654123975342861971113939143271700255081050105891492125176032767532914321047727204050059525753337976952237317222925440262786545142047856065345140186394137808659299097447650639794098607772527048398650764330362748302374600461243049030791542296778051070809467529273591030530375772268157067393977993363983501767920911747703208821405800267551527349877422262590674714403139872672566959354112402942195813861414662634150486753176932631020310267772059545496906468541765231224039029807026218692087316593595652960847123481943035869658961447314072031233664963267502659375952920393425299470090198748142796074067289087949861809809189062575825813282308890916589145247104130261940120070250042180121994235669012330097633977595447872002427649691362008810654293747329794868117339186455703240135890175764424390470235317209155325966799493344691770638465433854323685707358847265507449173112416500324564009668819292325984682645038541752843419340609136934529812079233053682472122211430335342909694799420564773408600332776519056026349809544658771469659962197232722714270804414521630516421003356312901842515883845791533563447916641338935751981879040981344535965221512223471443449468437778281713402984859997253838300206809652365190241634620236675526399065168758334920223725007882878087819646027233850741297451833139896238152368216597233724930640038189010762504274166265288191871656474700363123892231364714820468410399315984451863052382094095333869498011316028024125941873204118063286523346235159993296675150055533587157794727676727856100066370434451185005071397246966264182178586062259976262754414803984613667938395933928702020192003001097040435525703592621709913144446397630631690444680636832935487661678157225225321164532098847753034469066777106118711539967665803615770033797642153102588013803640245887277686469396475687458146353865116357397689138276317228913499925909700544934402088190383724834997123927037394208408448969052497365721275255936946335763861614946004559159842195047256130021413933231804155657569130927114883606295859385274963709916450412320727725408389740729043701927818990392132378721143819821165972463816904682150927805410299461467710446245994260129163989047927692978948867542592320083021984532726464156608226514944645652230095908053713070546116470981748916433732969095090219251677068691570031280084088185820371624950550118012988017995839190865467935050289007830003089346168633648894781288777020738282724800486483761975541574116562820014887911106876355897490341590568100885397182866047637851518794504216653122947668805291510215669085229761381609573528549193017909076566865504050079249069048610561711874661434037818730060680846892647588168294241266701490751022543222673216856993964483497132576032195150627156402132783858979858036379522664263361973405500142551632781222858647823588614241581778467639590093020410919898336181130277703991200381755740012558036046856967758929761759641066686219532458290495131188015309609866922454031000789774455491405210238730357439148573528544206229240562445064314808962796079700494369637844518413143830410175899331734095532923715827061461568283874840148009363931195877881313248184734707707827002765448453911991447893147569498160687754395428760349357925452518931601603124624759904416109201954631018751182816788099167509097917476818676160411592094747859874606686593093295514658821649090568175940537539871962177656285530439634701638786714348177667366595369139055766388063631853864777620583144342221517022311256415304435295367848621263201378025420682968588812047145323604562112661815985358396061623787142513041858449124700502016494346416235345408149890276488337996681506327521199419514010188133686046470760432188324551661470472939693296741006370943314097511335759789550853296852225654767278937808369204724367763298169021552173266821539074910431058940234056428759481895829390609373964238652021787123964072510841782792751484484085300729068478464557924370082555759169030317104509560797912908790595550754448706344532289241816548297356601178643759498694211137020010221862516809302160550288235873087766589663871879404722234347399811347102815523505103429013698103998445097999260428079818910469630707437326064222029381424896082092726527847736485808142723650080645479924794085200637237537078460972283204813582323593376943458127307558761200752107240130312419589017791770552958903827787609827097025965755708510414053997095112503949633151797703901774817736070912265594455853439450852557496663089189838798520168656698897231131190378017853253832007395697463365891157745034555041442191692983214569871362060225729099660467839622071425266710369483186523643800455381213573859018758931638856702026498045585278756097959317656106872850186519199033601304516755729186652744275521241332927587122886035830516969237606437109955448056349602514234823990559992980039032853519026470139255170018986443339409255378823179107574683595962370203584061940021952080010139150822462231780584712570881014382562362120260167025883786370423270887406819604703592192923642922590815502101402369005021854636418403128150730112191587275929968509536105016521642773866845995086493285732764784291484597001178656674429479971970420919899715504361761910515453415672396767294144706583373869978492070346373332605272349934955326380832863783247952356788433151399762606291165599373574797505603153638632175575054561181751158953517397430186536007990122951084920872791721156362873140403519382796153647097469209691198175720110081946045139044686112927830995018301712826820793698662243395668706650606211428858555122345569961385361685359600196912122170397135117153030352523597794243700101880841953996986628085218233873353483486963929913585519756314943490765310456576088332625465159294530444834255529444068601371003048955554322391286750673915675359876491449209607022496812503832281051051712793159175423181732020201931088954213572995931312716738179074942539055253272724340705551478336443165888175451015031285927328553862950586889854512814173510924693223791994632155276839911935124173089435099149892394490423889940169462025256062978497631247307797341123083324365921638833716495844869396236728429742967444391055351121231302101770949147241995296843862487634178075369576165759442844008878056316819261143342659791381285080798910677362992937780749332678787014781545954230265381584618046537132295878350003454749270465495905021197998118182657143350971131825669195465127187797951629756917784055968933401727789032385856870146899052942479887592002705745210096143489650199447843802151856536329655779923780112558424073421967517314998305668168199201854929746630972809206605097477411182369653591638863320050750145394917850624470526618019529222216762462769155566057366726470229725941258644669906675248806829326805380060782222992982201061021332362350959229499160802984944576492259360809303814039429189644995558825443408123446161308727119200790197773958301632664498363550565868884352538270390544436570207000860707749571683782177233104447366211167441005521821069883830906017992451024073752902463326073879377896663610324711808571904573970733261677756097167177323570959346849115525623139007288892347597806257859532162235299851093521814700576748058772482224690615723792271880679895332157376333030504983232639877847258071871099679538325349437334901957946450209623001183961608924374449346508027650941693812022919394957366728167824523278618955552425500387076977161923266817999609317180209785910756320587437943593168987099311074176838422529670558387620110000494834213851631051592966406345672921250968445690003976636552140809744592436861921689480220941897678484150790660379987318386684561200253617635883119928907920582779629640108732620028719235284753388334853079536796460406926380386294852940266774653668525999421338517921085281707550589277401181528709923232859571785031558832005817229968380061892346047343934292394698000465232235609244579472465584450316608155694050108872498156918111233985499554975288408616391072223981504844242331749337048135051598329475943326686001136603106063437413718611543233382232245030728665193804164810538165787478267731237543277713797651367621016211332480334131890098135343855841059219473666414561444216225467801334577388280792110118152562212039104544039162205538282935827564739134408371963065209830315313392954063962409019593006745304785090855953023057309336833876965691024301690838879729087467855425331236747476838225977546375797440390808441305367842508688795509301913101498888098572180534099851694960952773735430142485687630200101232301269219396060933658080053271006289599261931905338855638602089019746130809977868759720230769327494627115845282573168458464126346971397211661465442328950449652535069923942103429583643233123368311957522555787955263162061990999337707314006566316066731369145538557393562822819769990006664828019638448240940528648707269228733873674210049764174299323548000733354547941254810676367609939029833134650485522945149854255531551480419165038901062564858008233823228989717198645480728194876943699171064473267254480986760917091442484415869601774534762007698079454508568976740861873589041439947945753946547998605824947852518336043884835723520823155479360796576169370814222227661257949240096694663186885354404468723637114694274330022953483885104294557653692703961914897507490322453013243704673542733069833259271219385311780915795594640518260715125866889314602280974352834178050711108769218959695119758548828893961481723437831773746961458127870514697318010973071746981717872541243294860648317080705680256266285860825041089360154053335327602760057002607105975009414747778612661748655062157652490799974338002347728197172563245040733236895276503576123678860894815585265369017499664797507291318362572306151238400831658622353447324600703433067902685005152166858017096483155237291320791012843883954868517125234496919774141238915111640727483465051063551549540398485829255982537878984905137374929383815666020900749096923582582751484142501874718778648076517811024327662537117504258028291006439248649008697374638058979223878904215210832810192726166818884865901595841688083756054633993190829816353511337906054511357637723187350720507263424354403377019374912658279283821411612135725109475269474401226550581727847051169232684008615427412017724684210630223997869186945478086088205034116967246309497883655727614625802013552364059076350994566232429228617640856145166835735244067889014353355866228824483610772889631143461699469531884811437870267555872613153637490518534475395388945005567116015315119198627555118083810097159059567772787615733487560982057761324773475627462420177432910708582337205803676690896602388936010191792703182352932145502718545235479453203066580358353100497686242993287519548362517284512111933493689372051558018841359908031590516726232722530685981052645472913974670644806643046796005987050693305255737009819806257755061148640678371973345567379439658798224637898890683334794203471055424838627962017918316112452367177939789891980653066031009826111367205718515844906990313201948824492750497226863015919212074813807429045189022899776643216084206832995501091881166442146172838985778942077459644761614694915111795106692963106958748701302119427527206607477249425587863985019219453388644565154170483226767426651639246418851025330727651107001248495918372081046333860075785254183315710632982338206105546336633936906581867912229897648839423136126306299974531348057730593078876368501162046221713738122314862100812627049470285976043558324068952559057281619145338245473318519202809767804636361386149583753778739208210575528326851487769474491841015179678376734102657805286982157700025693336156213431942487642915591337473262183287054719497980476193782028861848841810140625738037471105444203104659393387960401587657451524341901654799935149487506619140839262980407408121363643523530332750806429755239372642011360450887101841989609842309680323833244658942798280743465489332656465314058954260932064025154731338843608592944090734663664242937306948015029605142812204690088574344350044677901949100461469564744468003727230927424214608747961531345355017898985901925983631203888306086190930118651166508842328098526188973673135786362387344181574694455515104378575244642728123900727708906862657193045008686791436427355366778451578459509820203692089140643345394904097017771048631824043689315272993512306940025904488024938072184983064428823712124825624082086691239502301614882768613675913042589484809428138120120401554874422422770242865275205335208209926392572404005149556793455347722569381725574192517452843007141114934510047355095604616390939117054265579400765085734380102255446572911308334907661928119502993764936910857139199843287178718040893290822789103088474728806287921775454658841914715009321529946193842763510433573043812349958384044723737543356931291623275170852174275638795599511488691540362504707780937601550080679387869096036156923984853909892994688869181311734283241651063675973054544179339982573787870551669947593737434146360081649380887828040786041698268523531808018836164031700669958464992365806426685652443915710033956381270075848214639193408196209570568071262304516916270897837084860675637630075792324984659826401873618083257298595538533547942440840495769645759287399060702807737450374396816905773920651116089063478320707721246341375077329468744364615366216959541075465657334217756051063156818099083219072745323446336069362672717371811790069104141278543646541406063546404604775371479184533101683544492685047248510464234857268140067555851312645341812108216249877401393139295213169060247877670806882871126755088224902437102299537654311582619390765655635021117232065969129507932210688877516673192671382024262411235376091090885177991014776147776059963889235834856514586183933183176751850570214021146898872818900637244594318974162601512028974423191459338277194071596666306957976220902062713496921669230668632076612497036843942479664991772549532737545119970190988324537345475414749648272060281681648382248464641180443285847029182377669719772095051972321047245058447431907187023857401208526860624656424004530764215543293813343312645602927196922868519803060087789504960117682691291839580859519094936751753789127928504782748148295965191413076860146039559870501945767868835857237984202960600381833934771793616562038272224935198002001305711364665472166140119544782214773588016679200518080364998107810912317200215791516280606856519446538988114708522166041976898511426693803854815337308290613899105933827244303154645452626655293716485575051758000822462684801668833728978740899441993873779962173598764097338297189220138690127305946110106842658707047246592854544934679755402188802967602593025286581865220130806791417089739168390851437058440973885863741699532125069919236831555965028144364332242413123069475151718577436153749154836173283636073869791283880679555082540298036193591932373874068361008483262358357872247606536166259468340748504966314783473892439093729341529341067678827623873065841823637797048403586759905672904249180125214535048125835129584022771539814421987051886064973578983851628422711244224494100196067096429898536667530152484760699465915181186199556207880920616040989202424061137090247520221729191618162468774118904306095741172628563273882311540229830061653168420003216458441558052196876862582142865437947717568506541382882779951337221968531690611810139221509683110811072440890019549180251012539563824244208761782898958099336901583565890090905527975617998928144345154173900751876536432532952402088242658400583622205019988082203362422725665914391730990646553385499136521265159089767989803207545675884847172282879177733546176275356000590631194248688350851759874406557337123159526958257170042116376174396987250765860976010740115141309597799445739631738160872097891892167316756315237749538409572964984741157417954898436290118961305497990931008443312528206287416233802989107863546693690069031426920629251716632895172593076321019766542913499528318599267245918686551373159255389009456488241731391203868413416869615353886489456257480445436454867999794536812983667972193677078193331960179245870657022129033360694385109245141408222603976635032075074625390266875093986309603391815450006263065912879896907893186953940957052993655067413539407899417254203737787787512365190676983079735273039603342701130973496063883802819565669605874895839562097662802011246802068391682774995130126175633421011292753928222190834137433068103703196240208958312838035854152462106406197369679032189379587125941958240027638446700782559364239630579941295822962699221361532002882817740048140002801823113642356818496038746241008074746214204846392366494923559125438530020080742970645388339471489677367047985483899264132537970755503450448517856253958795155454638916288322955135151469281077995103749052371942466143665375495706511500192134046558778090241862881612415658957540601006378299473308621841398887426370054496377599672382801239410589592665397115409280380589585349083045830281126191742236568182515039701877531848370872773058331635544317655326563777612433360338504421467640626181713700796850981204956104798792582795302615086577020586331961464260324310810823354401448744356522274550556259908658258637289808245530326342723633651024165618548718714612911302445655508974646108670432445725929710671721976579119138851935231939752595184900317419210726081681181503161619106421765699346408338451895263343908707449796407323549958603505331279558448186846092491543242654356840257618872090983990792712728474941621449089734346972685266983364888953856155770706941138896713265820592952760971441216098651895615836708584957877522537599935022608215006818862054930390343037939453596169895916176275154075763177461326984001973164269765162047284005518333592611178555044148102405050897371581753218199446296092336686290992512663807972215458103895047580433301297381377830852977232624955785264334366766844043342942323931276164339682701755645699885355315141996902386096072091910641325955462541371294283872676749539176071552501149988956793169475169403543071171547217236826881638800250042748461994685406425236193785863151292216655301638908606124475642839075153505239142073375153647053875655815578117869063607693997290509419753637022327255846652950392969139289816508996060222713459163867118398069602827035015437455498413186113022081457286984345138395687383511617911134335920173954220358574659080057382479991019714791156353702639438519733241371460271714620921239399969868725232506650503705867460570724828562064342572898921028511454506147327082480782030927625226479373412018225653995587898678643859420619676314191837167252179365752863766695853433454005711089298686548775414921946779141205269323481532969977204439450156664877382298599616520977814858979825056175703591366157916887069128624290826985787926703143866511086526116575166442224545281572336146152303349601511484671255833580210700221353169727292442381191462418605773916141644880790124939889832398800474776747008953549696602634360267977855560311259438804370835882013673319345079559375478817615637646426424173622089339526480824161081887498073038858899653856879276977698985407388037284954553243744335864595251681768478234477041796119435724054196914980357974523058662506861641007215394844072465045190200807957676726161603019732346143988755471641524744219393570155286898385653516309454086029049057921415426166730958021646756292601754676740771320212231113629665663587063162870065759721925236070330451732970664592495015971251356181944550506492313554926602196163252355982565650213847904187804121929803412075723020814953324873634681461619374367510568595572475946751965784642176712801105291047096782934850710547858232402845137471394194403644131488377113660357395490485102388878226855367324222750557481128255056076733866899446000099794076394642425122427267124076701185099704754995902168650314642063772302429264144104155480196623974932945988226546134131452408316962197324393479970116025915228070429166752311633899252721086235477795082342796722805104470624015889865832294052239272717414160539143211658312330943057570572372841883985261215596167684451576570113443666315657402698956185348780273910042352448381732402416599064027840619327663872664715866327717189686422180704661577234119404499452957963457876737820455299560910001529921415205890213350357798214526097025730104253876141030877069958334113801502447008033010411033435174921224803448554639654044006178639996309567885281333324753936475103789427915377541814161703958297115307605393808194838558546019878244316929569414037741919568230659123621549921214782399453090639580810673237861070599024066061976890073972892111885553964371462479684186732125401367581567625050705010195716034081313606190342662635144750663018094504186826861393538779520960439369524841221079765317681822048220200229480474633573289901906920119304292912821372027318889832662370490651249022674587605692419612099186568528565313668421399370783647003971085408191694912174736192914478689586428652610479988758841720658257501116009229154950837094923111356228954129635911117297747007852852375748183084025396972171452465842527206561204984653084236385187076602337136109895786451190208839786884983026023822336882350472956811310371594925314143488060634013918182446815500269725032868790107577807512139235338363020178582952664426103747540295616792785952918003440649779369668849911279651397598020919242795991095655025098198062075801312664508860268797913996183076566181444546150630544102292300779929760901328866030771039371626263808172084039568317083600657331770805614283295303398733026976928203006398034116126158577556885663200662934784864815986061879353833074225615427101030954460389998105668413143691435729427210424743283103902200805354353882761177798741460043769763563950854906594150275194091140078334264935070516215914023228800768058565992756982165488962393242336433607901874508347329782376405287466027704712414180218930433504940596238150256232751043220365007487196608316051650398626484782088478787205392983483222717963830840171202414791382872034419317180755049603167449661136425192976212498195922948325520288106962010643666752211203118726908830440583669750057294981892551770104525869635556754505861711416551629293316209707265114576816453536909116766181244351059561747837092413561211161600167381911431395761088875892386829261180316684179520312360034665328078453895479191992265501350329767382704216087314699913183708408522205229071563247664176675602497592323838339050238822666511520178914871130915781061499379613210494626516372097335186645186110077964868574683364033721739585415473332039437468062281198837255287878489545262312923433110850770717941170700474936915251254940290214079567432563170533001201840496995790595822535616694490750861269380562519174227870468635113404857486613481589119674170684391897064673682566183383792462550854185095920628124941861592548983452203934948060763777038082536965373244942030275186934112917001842627307444254130224462497306962116241346278380078320009289524491021313878921567586989635504023119527522799005811971880525369035325923432666440727106115656681126444756592667856825326720401706865060497550741402839756933798487077603255447179086650204567482746540233042366812962523303790962373001710137095294362065782160124071917852005210937825710118178191916270888285150526981085125098401850052065227120197293707984401454283402775045453333975027213768240588109280202862479702665648176009193270040296714242623105145800609014149134687782139092296504906949905108274755513626621418843526638034494152862108288124212204751878701010015780881951932596823037182793701393904375549175136842936961177496961227074762781207238115203403799220426632162539564168652653956685575626859566862467938837418663838330983457781127934715674498403329502518603427243311169951756736320836659614501664024957082395112738977253722568866231508391209161865619972325108139945611583817588232822087759970355341488252488734885673111447630089083764613532328254243866904621709962326084810484145864842747366670390350859424930910889338390045688122618670393446507776103071318094667094331549268675845525495929116480328200235345790055047761178909705810980292112373956866274749819872196674160138065930506464761369008904548240285277536303609218323512067239837270294887056240651841976421915877814685433254037458498138131771142901641262303572404014777221908597664917182503305435706418938927531589819065683806728723967506711283903640866559714507191716586461320920959453119370750445337764397590437288897041444217030632405654953932988940829984198124945471695070617608090473086613977693322142597029712437339710486543356229268952179090743470325181765378758436243221503044649461299173601601922011949827153354093048068989240871014634799176386625872525490768585093258797961165333780359634376861901446933168004454604363392095182193185162077368559520566859391500042459963625176901594787860346652880946776658143854846686809437971606854854634569982292729292978323183749337228314442264619684017587831659284947800564334962844560657076225703983442848683062025969187775678841206132897240694405991143956129066894044918372652880838048488063242833526038241788704763292197642602861124455714396795346591947308870840740208290996270503512740837169127661971314577716112486992040861709285516525009532671819080432056334733598572334913848157620508388732359447910136625418755220714475868435139644561213970279444647064477812607689893051365597167585182972996581761090826558915861510039347954916309920084804773042120571233814828351181748822406501664760718603044929219183089921278353709242965647309318373602923654111850667526826146104283463406343985829836811134883834231211909149789231683212316741946146145692932498511330973799999999636496862004326221051650409149475590214443825992226274354588000615363841132662139940633533917701610951338958662046997749897282455276551873361294727761218898536307509455109484811531933455620028293190004176099159987076788294740670998080503397627381496549849941178919037438584479246172277912235878913157749694085222001960161203859029630395878111520644388251950886656088592615168048487108807707380881262207022787810015357112588958229441559451570513170546002620156976094249980371487707428728035401058939487081303316083521834941890266994751059066571972445362134776738326704276677871609849053894921981238819443354699373871027353973281882430482017425037214556769598717965091420839191794031713304941755837549530044149085935057992223021964628590237041741435373448199810165349455001240749372920140502264788351438796023374026958790278037058921383413046838201237692658815204679928290966648326520454430718046249406200324210585181795667341073179007738622391466242761732879385762639201954448063709856502250948008123758777594624624404330076321901777446513499312127561618791498647242246876250381413927573789671512311341004967681921308084099019106428267471123894552088165297715912758545719322568416977892581370427945251617350856676485916435330167776545372768010772584803203882229965522185164902729497711039691049683388566365681559730918658532447228637174672277743299670023020518497000370775736866701943910673031163304343764337388258552614643801943083392096554415544114788960045457685694742718510262990938789194020118025963808640855623791850993216565474757591803272200828871386524049302177763547182126492029696061039272435292071359248723390925638040035169717058449611852797601142142877751804029223077643678239907215464883544655647285164573362025144594362613536269193677995192127701327290952454067193506298614166818594280086137110885528873641698910735766334622924619063315044848569043248321409686382314389212891594539593338650355003009659428620438342942828727808304758162660177657971175648662489965638242579088029224535193601609569165279804505864407453140970532092999797605026141915489937699703689739177057763870561900392698290728560381761500431716246466339887686334180248544940480350901667454737491603120094769396281777293272254381460606901942771835300299582568897475122277993559124091862192186299861495115465838509039844824404332774572931712965843668929510961131821706837699100832491180112299925243700870859322811960143077557917236201857272581902056951730071962226837339338064456650805981687893921608276214275527483457665474381065418511146015873374176118957054951368386645128975409777339664931754674500059846813885236664194349516032684161333646172797919786590272825196654670107334093202120337374998016754077348288271759651240384569513590853091031054875002801926997065255981223504027368250308970156696862639815064052621228931286776544934666778040741202511706015704778129882346759354189526265975290718144902422236269377598587751674406307027804999002545016048405496555733524532084697268623373774421832756572144477678429422741041044822308806984084525797951208451458204720653966315807362675204209254920168245849688683791800184797615806135231837728155154965565925807938650597369006526689941348458433387515144881037450892793279624203021901976387547574662137510601988975293911503111879080095751473449497726003247340859107903253630337208739883734572925904203737997823013452003823704167160983116303175247689640199600369082968857302160483726714661590192927319607146274530839217444018352023268803135438680429985673011675913895549087503781761093425399937703138520334458412658342139975651531017748446390319785017406932919123335098206674242128511320332127333931539649188229764178738700764488758229869177640491169450654293399900369966222621127226451628219547139823683802343703679035193958991444827554401117410742808098433533595769532615057002050741265173080308451353781045512448738062062294447977403127984002707855450512972415207501939788197955367741160920838892603675623370045240318114044594808850150690151734300145681965220580961020994789510496231121765052800028009886463417645236231183248792323855678973288033295358043888083227139484168646705721400722330136345010606203200539437658274885846846273425576936392707363629945387214880236400249236121286330519940214124567963088265529656360224447123759071057842580971111453669677544909021755241375026228196154568717732094659618060396005952876908162980227321647816634480931940915186595216971883209954535743709225928951627760671246357977411276957220351817907903597306870632880847190468791770440184887226224779894873552823791320191529978013851264578803344968194193512313809262570254012893671295737015955219905019713405594748149384045842867118535352846589256225441323402306343012753099332822319054716818481172283683614883729632339250104493504207202852811527373854746695129681011203102414024399484968484398189496142350042579783370644620035977534392734575891287720696923076904990029269905174882085137927342469325504879671409600366823520218339162402493313587439917688253509935371227834465585835779381841707483511401540357781226706050702613569909327474469541564503598040665938090929647050486236058543421840315552086658030722161329554855803580412415687571839909099609161705796490831847233518617041217927650074262123126186535477219737969828946115931880566093392487479775286388370691292751356606296422594437608133234250996611563962563556455972737625883700953828224606898632180176583163590353199403854431413639144807630452105443907907603217419243322615406697740894339707769616293096106445825846777123753142389258778864322413915835016288407541076806040297820140453193481610977918834020266519252441375671806497961137206224980811609978047261161125773359529020548496392287750797311854427724912671207505798136250149970722988338628063723352285619657705842939173979256297938256879125796602487552221538217014573936240589648848875277978941892065424306510531954365475326855005202224494618096325234218543816416316571939479604391830333429584014196484780085837619290557280616729394485570500758476727378311347355472435989328691115651080896214399465837154988034162490690398030470225333323937516626045539170260822209736958839145908750923164918569656550408851929191176791449122358922930034367083642250024740659636846434694890821803926702972718260871239344355323657259530394825438422610542055139155919499337368420779622585406456780248573987550749257724199653532537875744240699213172485361299990525602320644768845197411195041886203313771873526832952249737269679507517454422533538337060286674156867772108591635738081864260131085368715105016965403412700280836112851303263027526233283022156926006676507473076580070302290306470055063677436100890755838498811972325420644010740860487455885802341325195790776364810966706497871687409760918902954397101459655074268089200427041114747237394819697771871931110585350799787920463933042767108016995191983552040698532011757474821028980634887140097197853764790044545605092605720785194840978959145449966437486514410935937129512526287823544787722119904265757631046209479264876315339678332510957644085020106483643647292621134723644331174723900845488302702543289893801759600163687362356811289223505544291841965321191296966075422848943950029080625488783340864070136723157133598353925186194659220559815806583320553801559181355385756164973431543114831488363935374697907918065579222246381837726262567646068300091936595448976988301817532295772941746547150269138710507077299060836233228037833736782034538522715804817493770598339811348031394929166129302751391960082127073930013586269530794734483958609380326725438670872804731709122148410372837375425499398897235099886215744717653642008083736645260982408132114961807945612280325962661913133460368080499439332916234953913024197981956756120120092555113646126426492045366534153355994727490063507105564494471154596693915081953142528588510074630491575327495811983200055104438717192085529554053626882010361490773529235772089675976473032720908888801814113080365935228312014590492218238009050456440367139392069794175880996680893015579014648737399320484450258724477312439161036061502422670644603265411657914403966179935325942666504777705653332260625199653337116997916200060938575155800203465756400415441615873994923028825516477195656431668813199222018467056134398311933476975472900523775303837027990424555382501080792104040525287036900250522787765026358162560897207446110175875596330774600154063745710216717805413367068850887378949938088927815094256972538938020290194739502021795670268611753059350765690306254738201140014647019142965206510781621924101663154359508731840547355031496171914112733100791485569273868238617829111054027739920281221589838408154507701974166727774191513600800621469107303248113379958809448369961662421226498779561325373005755618568785386637504981456837821197537490139987037614378419961295752594518956438433311405297854813256926586765464247603136519837890968285207717109416398055419840313289015435208355970471273123561233509232615529187732988210665037123127226392451920291357945298942838867029145087626614756493654847100243110357094130916740877440342741753408373198855043178881749297046877034577645034990772369086399658555781969083588108200820520911012663994894164684211669498472390661018613797728766090143993471710944274542822122291446203419696767504295384821632608170025590958678749530277761217412241858158023250883109112715579270029133874659244644468965927553714362481214950209826931722710695809819852719102120873719674708808380985819508863108957364797923448963953227661671691930753184527675600284658846643071815864909351161082331243621743400244044194580230917807126354241133667845391767519898434885810797956538728560189835930245139041630868439144278053057675714641236061237893416940446725658600683024170625576864562833708293678195779463572849479146505201823685310075227203532629675628730280116335770112672550524217722688654692255527274026573131475061302168692975478138023364619104822383994903823064587339940717050510654056677011088423859010956451902512213182473356688040481704474784942961928429360917820448648027547862695712190096651131465614009598397927324326283106333845960021298761615908998084580217088382642990039194546950910612727913144773043553870219635377214325162217377659077422195086284276501649693604086245533287160713748373195320939507703711189862636228352485135325209118973512351667311786145296460551412200067405734083088791082188232071463451039263803383874155410172818546407827350462426002726727609791499970219917012816847651158298122864442591780537224363219529682428436639717859578454318657248878648223144921502732956676950738346394467529480393620812017876223122681408527456845352248922686196381721108485284549117493861370303409275274302415423844426240017226097010589626917482972386098564709643339189892535635231370171025771738458628933676936205707903542545621043866392409346173061373703674104611750736588664174400367287050718513461113335652898498237759534033473276734655559445494344178987650440420504025664274518450931449916120204324849014819505455213117971005474164368666503043942798358837610784647644603705726332354009055565960589122802372595793091941944867922378168513644560555709562889103068349445886604007196870000836648813991163518727522697958567458991183155267336428737251233026701384137123758421228460327436346176993820828371179666866410556418881770596701113748207369912808274875561402860049512092787778293600667177594200943300801228547564776732474155967350104748812365503626249979664918043375587569513060730213346844727787748951811251909453296094283533841120913871515594999936448993975830778649346643631018811457459818501676699468330767821043605771496463060313003785774910173228958310100541499546697359579627567526025337226453544662870525655067849310695179501656124518935314883883011384345536578883959638448669877244422665837248887757193252546248367244773358601100289865616760842108080251202985800269297791770717402179033874372684621444209761899584756885849833838177612721538503386775792943988097185909989367373466117429471428441045016500177937667697649712701438120631112743454037592994909989927365358660267287206327548234030027869461454300825546619979132476953567272199819519982801235523684594175473078495184508405375107744828548902078309065663197350646278331414956626183057166133427006867674363632882826540314594773497296975985442113393730097046952238873037326640595264311679152985494483218184987105116561721424634784617578111752120712470416855098865194165946606905273947964736590358878816260130698333805575739274600782407735920712166636658952233541671553027163926691748604924854309408408403419287485597494588048355437747351501271055787704743823389334570316888376168493216890629385295167921988982030808976598700029040686543617841644893204688677506612993048449478781999669255918777981194109574279370623235773516122014481524319430335373288891708466613357436795955376879897586581963704664438175933586991028056064183530733120051415160907997249786249816269300400041035299233133023444541581993964640192456798674370170645582496958657589104480921255845773780315115033704131733138165621712827638327300085649384829304179707796865866172571211967143969422463536258316138794003052921910044388667648138443803041626182691356164558995820631977368608537160535860218796583328666464029888006102826746548740860674087500527064283723477849717775039832485740196390191900648692820957914858111025531831938061962977567545509995849319213291632017148616059701420206150841781355078186030919662662735193216094131768843898898109437108596563290958244125840372091347246897524838473990428523722890282352361386744066843174672346319847300176230735103342394113573335485081876612536296682629458366425449445780149647003352103030406866591902123988729257063676677502998065918675138594224193571797921413929627328162719205278381324500913560171147331461498423694960947423449456720579067992205749186472300452896201366917945306580147670471285593069187802939924006978500092422104088656059246020561251638623665164244232182767931074091146866644095099409409522735567289736595098728951269067867689449794207541275586578745222990612464637271920729368842185604580649065097647403119318111527496674075299859973102517146209563751590071535799179006083437116607784556333675113123273734831417107186043647016855353789112666196845823426978624245357755309984282365157247308564269882243434365598943118760210073950826079442943524615765517538201812970562636379584508472478424637099443968532868067762296637114642757958787228011223534546358289740272397716241509149348266561693274711585146261874331222110701472989211449066827830988275617231589290248542075245999056166590440819649953009138647862790181359165826457758417033018918968054988600722793162935569837571091153211399504821506006125412510225679033661028717667941876860190811037576214051277419699578905389451773814837358432841363366148658121951832364837853796516737217840083294992088607949937757760634936993944303529167881970218616911582111811438968457043526981378333575237162707691686507876307389503351703897069409230075202527366168489878453499198489751014933285637803992145511237416839633763415289255667504558064402906209974054227338957316573373198166748948415208134131001979111843680677920117332137637871407648630598786116887009020275440481321004762437622494509070573102624459540027966303508563353417190556452549572418395331195981695523791268884348547958907640478773285990363291425883478185219113093899216726212994944478589761713790636706816151579304159317753452394757103288256218525189735015455935649720539428264516100670696595290337603120179667332918663269399025468537240912539495944420166092113807330728775611632018358768367894630081451583169211037857798670279907877290782178792421090961622179359402434643965942331895768491613901815152532719897026507480297082924520374721812877383747408178202171244430278492753549942996366095826708886512939586988340394529881302090407031329166714419558859222065190233542879674727719697083601864250796929394833450825525308543775997239693490217363722267688691776862579358974032992934035166377644602867766759303129778846210936868188605832963264086530590837913979564630424433065382928585458440831692017423519829919764622008016165621697203736200809498439963595929655363740011913812189751426811371292822693928923573767699209019485790582494795512030390600659921176689491680358527034020545449063268755683191790330076723752074897384375517636926241963568780073266673056923591547383017291025644828732603076992533600126274382029453850433450268243659474350760407275622614565142704729647348056586663488235030653737053907348285498194311771257702822370670853445831298007987806283858402049518557277505625619923470839753987789432364730797375110326053129338417679717452091323114696722613318867612112539662990924179198991957619213636755576673817460639261468157991705482417530325540420533663212206873211452219554775643005764736686526379527213499385368381299304570227025995405181952374236656747719030185202458827256201805825365076797780727092967853000761400181546084943305726755408120473001777908939475395821138071201373173867717024004671138376524969459610855347980602064642962899136325758812835089299741901320752455968904590444667364546174430881662268123497995926818967073038600560564533454825869607460341524890358960614323766021168446626254190582736960004345804076876337817244695030639722861170902954842751376150536495046128894818936618676665002762246623130396596367418512424507377225933353460719590966903613843946787720610131498891845821434034829508633326239944361953090330994873327793212122872323904470741519405527267825385796728131767504600452159371674397403822398770453100476545464905249161513055593093823983493282972423737369965313723312005706729393854034779429372699479982827411052469815105553120998036921355759517815107166977661214098099042897136512103612811810356399077855129184584865995116123085629420718342152756223083399944501085175607984545817273497969370278923363475546013061066299816848131624653430296304223656751687510509376503909178320970056213662026278362199828694282408035426492777586035395073812090519143994897723073902539947524153020520481181922143846656292396398024763021216828124903865776506272938083876531953915582491536871712093890352498468173660376187358346801857321034772472177131672594585651072984257166149733139439859827337347153517716864135828086345718941127952170020244854400801757931463780452695950347806625992437410061987659448891665224510774791542374285993832019811030848281418367736657009198610363938254749356788721744758781607882201251288706636879339645016402021572296595574039398104127007392019750415048800767871896390457809562823363368216980213301733185216529466967238829952326544534330458286918075501472435475727281522869563830929098250329492617878821960422480160459076594289388703374300576622278263360537191281879276332119151726789908218995271228748922907472221296297820529130052373550130158651657866227024496184967919057571144487603937188617599607765738093722474901435849388683754081342587362048565047473152121648401088040891637581080531197575998806500042818334611981487977578966808016779016550208739355817572769604143867166128989322304830874741022655464958201915353836050220565706904223357739292005957188571645830687958672210611419972821520748166297668739483268615882051230834509235723031984300296260642389099422871900275823974223811620482358615412096268493198480406665578638485269484520932576657206713231685055385932963631814341763036623218397232564149693363229899200491668240554255499082500182785505360741756498316689653985061589532132881506050080200925354991816477325593411737841403378661044952172204751286424024488831977621999944928644547532919344216958844186143637786673530619323507642863044272363036302887434728458461738356919501286007798378643700874599544825130521722443022397170831309617383487227801039050805330424130929856705810643212856112247885478085461116379408101066568271847906206297493508294981866447289749035601511698692902652149722345918253726699637812266436280648209184006811540163795247269850587794324344777706863439120937730890716303719059638246124148399438616249462980554557817755963948867229011790193347324729182183691216956892614042721793879048948031589482022933623519357552860623240151642210635357786711348612024474460021443763038716586191003226665893956432049319502594759417993242692639529287957735728045474582056316095045425928505503726571060112480687675242260164183944741256917986829109368316987832749630831447489280209681289647754811115439859602536817459163313973963000051400582940988863070205176327465824670480398045643371563044825413772300528198219999393506060246455762025043188645248860903262655187257587805682467859136086179122736845099367999592466273649424100409440695938872657100200731658810736000812360679184706850393313251194880988369365171162193551046614187605790710339030146036120918632988681821527393384303858426435430346323629700536529419808470417690961262886123531242171660144783129037548542495404163764707554768869452308848135730597634826254355609360719651591476137765276714806181051880224638002357219221509122135946156683922587049900811170168378899203927541210098755756328189783084550348964183530431012255702952704882026707305657708685241536450040865509328282177172801863259656115842551774512856888297487999758345742760636824471229631105505809492790808767507493554658666994714375022854258093240230365008939656255025482064074937459869257710749858122613078027530154624188644872062073324822864412194642324515755731446947346936208976911740467807483030528335686572179569647992372331828781777529974123042383095576172780727219017383791266457052938560401884333679923796243680424555146010334939868621669849261447259273107326489113812414512512377326221721800201827832102943667416291368938622511573903270446526501431389542526972421676752875908175213462098006760086108693394383398008361029938914042792520965548118700101689162519124784539971609634903108039433388092028692518729660683094501432275861719726713562462534608571973334536012579620366395939777516660892737885152386767571745100976818020132628514198808753001958387386197579893569051911292317993985081090337969047954420823133052348324493464146978430150197778249209324322603699291234809621414752492262115950108355735728365531600754468035113816491855948816799981698419522003539508992552136596872257372295183806970223098469223654159545531814515693155606151194779441471581547428581495564928761563345661360429161469016136413391544523920085990643619762282710803629642178636072971493382592648232887812167000299519445501829793308110756842673391463941492775310669884669099830037997893631748963108543114285698730388886159935689010992711920527434142127223653655008409660029285241368358426587394083629983018788742723935350388257496479206473186033746313032214424819473235828908831583801963022210104551611074393725267880032545406887545162959696660374514658790922859573648977411671486337211426327510332525614588279734863360739171220833542065469877549877047760120949187395952660463140892325438883433458084913174756609976919148485397592041277434174692475391902945348387442532375080615144925138263055780540003711669216595224221278904814983507700861759046827999272121809843329090589057569604399623029870099599507013530213060276033416590292890259418265940236209866115292318173474519436857366781077256915753918853566374010817809036318872301552950694910619330310864230533210299360258356608382164877913214007087140967440862677676622725537065209230643434920843977306275301662400505799468531169675265916216731789018340914817552894853592504500463203080520183675789068250288896735721273910550040323823368037090571484691830101277729600413534600659364817154108156901663761809355044135943681107537766927500058478641410000256826408861112087537227447539759398366807137140021704142332240055366317372692501124623838264423529729462952468697304208500378395758651688027550003471690155674594999599242355573661356033027972985746856952683005272307559816164138961308127952356323486697625603480940401670340794693728094068165418813019647659408225361093567804205710035884063207504042999459058980276606629596178495545221390663893273007726120011637539288320593372316835433948949293055008892026964600758654732968243107331062924243295856884086050611255089420713486025685049488428430979023280223132604877032224292379366209891827376267921233023631962756032690785029094614925396925359732068018080495832988941253074651626071892180282390505285043698597069098023575604259246408984437313579788639485639425324752075519634018761255249965582218608657735269770313029084738309257596516562696722364201090422070370943721559889746638898533139920370469538718707373254153158050999707590570788610623704773357605763448447756488439483137165712216866187092289759776116122289491211018239034920089178478490150209361535680985137116171761499151763977482096789696886527550141789785140579171057179782329181406166105138346892356897556508686481076501048328662281719072124760036557755375879489432342464272085808378671974198747841212087662893020021561504989495622313906248778710113772750691742785332601231344912781998122996894018916624648930859697554499707454821757692939321816322677801367241679331835698260460012013385832409746437893855348442729498320811861536515868464791783537628222251333104238874515443868743619372917593354615632464046687867538070930147637983791477056241624906303093767463000191602893674419550911503715765533139360145251296537382160832412495841593694978490649862605601046527068645764420527602715137420910340538596612295677319720936255484156048827910603687928139054321168437812757870587079370598905705765274744800034880637520008965338901984754521378265329711620079681854143873556311575862336657507016367577318378006406381204955181674717457103111038291421392715235918135470045824462737496712541364718497374624521683938268572487560215213818310476373724763043775563526447617793001021753110606529486056835803968686937142980767140049068941385370879945327683867697616493556686257293787689562556972539716393563052638867818801837003563133021161094352376955319739158654782375678223344034450261196990889202827908638074340123868663012993049741343368255431018752647135030889017945830597821166603619660536770931514718022199438248220610069526067389912092249354242021689854806419086736975476007051248974807796787906653719532698225504786361958716792121471949171751437895821950379879692567042288867409068500358592316652090139270914147566274793576133198130593724115319277183487760459886061514904673069517450953738521637850215655490949451179405731845611123475042416853610433912572981582011395295652385136224636629013890825826809211403422124386357897993642890026843978801434644190187665124663517879163336187064592634842165369291229496029280374358434692276413114771373623864638751466546915852567133976289300965355343480538332822982523465516128515580334433269735294532771622691155927411691300107865073887206741874246524384836269366777881524080653732404796763940444370097143399027844355481620901028118460753571917300237224037853620136182826400622253434025546905375443657724448531799795160837101153875292099589902784945560386048574523868943918879721658333321721580573551485681382161513192247553603071018926805390332173175306510356674645660788192852559316418850933038488441931047698166209572937690730648187260456930392838874658991347227719200929096924210108969587714127473201906922710352274956905283241048589919205060682057746970102266147818456437766220675517791525738611782705441489286688452383875929995571636298221203628847080759356343565736872617384682702127578066543325723411194664380268183137277303952721290847004747075911971868818784552385422352545924296077407688989587291801288065770948550039201448810611342306643441777076126794396206770873404356043908425406215636672460062926811902892896213181984101533874059424725098424089661688741377859603360091658893867773001713071815895992263319256437582043108103912330694819562980461545674015294561850278502857919861992538269704810961586014407484707284133138758765064128171505665952135142709795526002828187655327948282631080424603280225389918220644022880277937018548627999349537591423375083404596141138588176770018342836920446409504359959214128851319436719033675844825816448584294366225124358980888603623012173548096961508234879107241008532541041376546641041903514255273872547032242240374650467428144441624375455527520114077228518201709537966934456151012641057251997366163963114599054524193568402813049051543638257476827561660311406089419740989525268282354736714497790871492009063948908981673506036581020146249655828978973716419002729986754291147660851560546803737311310589880519482162306011431416376081994975140932656656830702781548684175734585712850735532997499558957432933903238875501131558056050541805388148098399361361634464043333582414167984784140918696555142242041387055050557137643587572909089827626540056273065535269947109000647732110513627092379287803063893957908611734041598729675598387883070930249760121536049873634573062373642540389602782007593736903457283299993971348998786677259138669154182456738804126706467911336973212256689756251144998373935542121246905077711039798155848964229010992892445650128100944185400230068835232628324540528014385674455069896440000545046207717665616486606584867921095060995866836794570577209598089076820638839295976037466340524072177826932834233261535742911427648705734564393490698862487171483678362121117646728528155043649636385876618643060547407481586850730014694498203783626614273790633840546312846667434435011771485324264618804733651498395500490969153964887472056417327726848220110608002104729874852744572536075305017862983997644976821307132313042702993878294913413380991402462638644017949321679607900655075628294304317442671331145364773778710983573506590595198071884479232331171637243857067389280631694961204817712563671218985167544165842145302311939690815836027720223856821358631403617203990847151215485249686929296288455478119740693034297757031061852036881153495217891819621616410268476561336039518401428157154228625637777195312928628348003191766437246114267735794736152540568243222401046924837161511993778749894775216210110663931631231281358819934769409718230894562561810249221991627401416080533564907025410367678449515425758222593621063398762313819901442976435225196387023552034905477916946373906730127839509785177344625799202338627664402629898325308352496663308773779188837186821727097240611624331995022475577429929325441385757614887060927492596791006657779207975713646685974899465053602613802670895115181550584854989700638754967655628308894287819502169507535457223197178666688967503704165799818918177374906724890532827767823232099259489348333526164276747645022107885455236352893126657655052966769072308705220716145110371876943728289486744174854575793432036790865163113465495955697453241688000430626047827281316176879276773443413664826739589718464299124803285718736158992813657385494205919169461930554366316440065320983509367862262555242585013719382167164044559171096601048670966250700276665281057850680939482722441545872659202374598479017622875918199356276589091994612618764854540988912850657110992057340964821413739596915906075883750211523990246187340014594151957093736119414348527731165321594057687736489257964291431354553120403952478254760631881138360389744324832617137947646268271745453997908361802580265858638594358037432247488310897530235378038451085681625046605221345397635407232877808326545546991445883576510563789855188910812685491393836224894417976622547942902053850705190652818589784774712337105235641867737013338768734306530464260088842892304431577021059990877952386275145444947708818086090765375923278401511127935343691868144159304132912903006288741058669851496027820177201422353271309961052272464850706289354477712548265922551260286975985084446135196937104765637546305349209020659647737408172708807274782735626210234314993868347425339220591666343695374341704954361125228154174500759264105382361804366687038562218084091530639474860049618140045385825380600966581728280912683160354215387173462189504359170796009645798439793131275715595053564413157070395080133273453874869767362148153432403352008823048121458256841330225254605360443541924792011827656460527424986173139479538600182062626254043221101876395643146061750850532302053891749927761786788378144044462462137610177295310863952133016761455966516758748705479753268922956488779613895495237801448390840845341254983059612224766277984744091405988864180865922752789295294633097299860542133131793952610107684315863505992614196304171384957313231860271137603800060887059691759587068714955746168715380853212737933291525627307255427765307637232857477514789530502095860812906902050947906730451873899939899540965762018427754390414035302488043448828109462890224748493619023335657565057416085831663127194755677114902950701598140024159887423160688296009442503037914256289089652527550209852253609441490618376642383397577363463013688559154758926656347457195086713968221434395802438554338334892664069746307024014926950115532216692292052596567115680110901874074454340014763640009651782560993436736542351740301147767983810690500407054645585401916801290185017346492699542801035887539663249262249984387530661720622889674572409833153737510217928115113783689790668226842692014715870448357719685481684912744063875410403610138602768363688303036988371358954404138406836257914932266008337761822171644983358486445481937582516195921202008537353301294815812751462378290581611527610108332960319749864812039347004865307784642441321939838637553253331722124960317864537750464325625044864341474916750455774400317371003782088382382905718068492859133101926458809227975862794717800348436749479985179548131559485742414784943196057120344528633533177322798635312396188164907176974018619323415071631343939943166907648847184485116466643384582030551004588422534668562745418963398515469552311905254260048782890923151118281226350501393742210340959778260381604821052469824673888816467389635808710286306045852651110801837080986954221357074624995752670441348901794814679264741790107062002146557896947157296476995391326311900934633686163187880333684148816983151037683434925329541332271290451772347677395459340607452050421272399423942215628330725443036314089548614832015901770249060602780168128583196894013109415240433692065434504496205459018327934702734502499216756517878563867271836683686689335801067144902807358425790283830671169629261829833346457151909248056034950977950741969310573419304665075969853491946589064824651150744826755028077063597400312674035039219184072272263028934098852935308791779269774706008548046064808546695778694736372939112058698341249849185916372189031352162893907883604455531233835213988027353649414583794689348263846968037483742697246556836265975201107743901295961539361493860168673386207541809136741171911180508185121752759722085183177949008254809173307513444779968939759475484003652758982051736963164054880410833333428899524543896201235178470833815246278573628147880062794929799809213248273864501710464183210521249634206948558864776975842866202447789321726768682104605749125370441286376947323995681160122126434667664095621420550524258615757566769138209119894880716690511059041337142587483197497951256372406124510815977879256565644456169830024780281538919961507180184070900882040860238998262298088805245223325516118223607670066267646607851192263771715693779120816362297190929576240483070635101156970683268542132121335404404483981098866248856177328811837388910146708737895274703594111568209791270679342219804300325768083586911181539407468732666705401400509820966922511523407744528993970828047800139768513156691232852708286752821776962014117841527509222876878083475158269886843547583242398709650036857163231168259741485409734925992880031930240852940628921808269593721850998258575163161526211783644915432271584479075256564615194600507675810445294278169931775916624800405498854560391341210350743561060506416691682065376882016498991314858833149430973276126224851555809912986013301712682245712958202514645169281225771111210899125163145883531488282438049710071052844681763978210179006972849726908257242374866645147129802232854532690888709256198672406111645916332640618866216188181205404487820637555422723536615249907421278751126163602392299561068491734037795541898875962707270366368489616644193572600247837057659921867978784465637644744687950064862745988822305952940855782710231467947636179020751206998860053081278497606094337208815571425869304229212350675544009469682958210495706326520202050349253346605615632531294489610361307282315695795109681095844148429376011378887373258797045195655629748485234080421729505523778275910669849111214952376204180861462265215548950875557893598939358132170535850924364853192905050216086727443043808612345632348835689233011569409792906306799904625230355060133607236937976494425961812716644823821872480921257385005806361591661303764373908357033522047978051023441776219524423974199488093066831675138888860575969032690952763310745942435918359986472951012665643897199178918938540692011669321950188902059547106909711569459762821660401313368006308902539927040107816887295695587079752785677127436021197566928822868035407472839401456251015884600020893922909465564799852223628089199125231816318866243194721890036448620065216994424240321334539450086284653918946198982841178184825671416672474866537873895303792443473674828547062681281151221367912530864329404388582451542525827934477755298497679051130482186895395626728079304934094149646490226217647969864584445681857123703894088493615706795276173242614954940233430564819198155141406226231348588093729562640122241993137244438493575706078782141847579895098252984270546378849646575171418960009682044482003337431847711130380421199745340834197267547815257343007064560343988264086569718604960821718653352430671555082629893603143146738093602513264363811119532015855426217607529020385871278795437149979698724342289363777617691380358689261304851979636725892254499975455247404092491018132355865694229191500667586827832559960717390607116808709335470907440565822951135641923512085375079103791017246270482593623237591946459598244971115077191391958797280235214393746791886118835551207477838941245366681074350867011944562572253183972775913367542945382870552043558827975526459366384655195199483532257613495207001031287237213730742165974861082360156792328175683193610625765949718821364051752122679645229714436992287473058082802293697271196891113507832801272146832505974020764544876561577393835171498157436278974800160702766193148792538224738409175444865922241013207599716656884152953840942036319471316159513265736193289462454291184092484509591864973667762303760047463901361105093504618080427010112081721896010594508953264423368614238051245947807979887224245135084631449285770427483406394162862158430267206541364712527906632840217502341082324958056216237954422389042485307158941109315377280642585726325291592809764154791209527397335881017297624351808129191666469438264929354405622858855057908884465861965406191652216567160033948160838359154655512523437591672476069146545340092457651367130767989584947680385495732234796212782308306722946335822835101504166808234091632540041816767811157516014935391213565860231170724712974590736137019720784841230891985623670030832263318074638434973844328620265996227889374852151186627783060510407803723544099745128318776936807570552133877934702192055035548926885477682146065444503212774297839106791858876290807793573035527383815464760465769426995982761061925826993414110651218196874084888188677647362072544614888610133549102143637098650197458367459411384488758261152203028168878322115492350702072821989575557232389320626386065298996536663007886323216353170124521529362845222160246854468957478901908510151177186097161459775462678475918808090666624544369358215744299453182225614262992550800439420563131148424702998552507564860054340518446248129760142752730365804671006323742480147494189820325628900248171998791839983318612042088765346354560332923860726081355993951997536035387993672003021291263735185563494252889259197640845276801735670828779275247243894558028689822092752594727833328699737424347635693212580414867359503375761382711912186499953339058771466642491262133455056648679021048253502227808459566812107595405593213681273194565518216144621726603976380388281584639817801054375412775258546469255017162457612255329101619916357396811602001051695472585952418560013880167401264298527550289456800180136970332202918477099567918096808055142671441711171416798985111551571048470972245856460047814596415098053703113382158816495072581887548301287488021549066666662502555997837440863044061227293777610804138009299733903147336402562065586957205350234808672262568367618698821803172672583264652009500081404844248731210527943266050738054594099212776341527284676297690936185201165564044339787491486233702090506321702717359947228335310971426166557102071058407701648281068769246363606604471783471847054325325262836232809041414628383484084978829401129025061351010680224689553434742697912735988170997090690535089540211597008649221926999979947936514344811438918295528301720748833866681283402980299068800787284111806025442424219352304927786317889557134503938709093809870750847374944022041987257121052209014717117337619581884014091993257598250832863070036503972972962466177389641600320338696707681213259954091150856477883342588774394731401376607000857305791678677670650900233442263310035488919866794783750714953981146640071903817365051604056562434615139951577217772943302869226626088932007126806822906237803522810015380364095497064000506206490867804115709167340475269011994490155797191740557421403054136848887859848855709701664668970587080007782901372623591168122944044678992004968871188050727420611659340304558646544026092923123211700628070102989097405921901366362655187616729937992187791595265363079382936462469147666124342769921558018451195822649442672952835914009221668844820665724765978552170407075075140608899334380774696069102024416877464480612343731163138786610814560300662355304194960010247771751041569627545084395069865646450396848463324137386627597296778018611869965917215779200631666475496107425044585501076163281142876638696474855609302923827815305629226585079916401771726973996906271619790586172729301415600739093132602778928291585413098090684677662520137658913699955291612207482957025379146585948039244837600961750197395424932906306798651447652252918497627170698539901008345296720603896654937699796676936520586759859667827663684085017961833562910909441540422833373310330332747836367176412348436168261330303374938565194601142462815170045645589007231335990894369978215468594504344563206307478588267972888717175556663476117387708178765872346677095064839031929585961589135496657766320332424707015651838933272439174454815364997096930238817301763937321460288895297832922762938965100026514433152458511475923359036245625853485440802383008992805023428312451403048682506999202127757865153015982402220190270583530740090707310933282573051505908309369010700385898678641071720547289150192453328771953005453864483550656795459710094444995862237529949943159253742356889562753072057595676729846340330183941161293142988177643173291282800511186402106763855823567058860533656378146709479111078688908650897554760050256696357230538107378265144891446328080117449190772155072766570382070248705953368847849883285778073683548717489813309313827428701648182954232032080611378518703704881576875071701166085194405623685651942606734779659623475946718389987847026105842937263626443646039197762272490186853752432294563842870110786248507767973370950062838036133951751487789095029432628300041217627445460663467843483530971086609945002304478777353136535533010755169969636613319911352197381410210805377208447986388348514293269245056452438970373058279648235158195232880484401432039277063105551987013867823671578268746029920875474015418064329851665398378187632537704950388824034021767558803887763833376806030198569247600438868297789850119409682393725589281230396754740638580156532472095912747673873077271249761373975921328901439010146231946066067345126644132763874029606191644758698866963725820742259770490771006927002176040148130973672176672516125567789452067167719277373393869117617238022244009507001544425955381450565199377156001015851196132790896931214285720494178086366911488002129225040969485133657167612581701574042757570390839263339468077062862130717271829660269553345608903782072194602783147809541940595218844430980468083074315109469917125858095760593639651187624560187085594975569765651998477435109980742658041667715242746780870835860336789683277065605628766064680479360250223301574511809880482960528791299183524125171837395861334422918721378984999461630023427104380179012797908398446275992773728462021596186216262079464083753980240139064187013402788996621218437582367340114809957220670517540886686297064474506306107310352121850402934866103291001511341318905337932688674521090797391397326805300897628229574871146702502695421400716912627428006940050415835370286882928403404897120361314363734582446735504880679813052643110307574025801824079457548772554022017618254958475335265142176019615034854909538879978094933749665391072086387318530048398882297867245925154594999712625922484940792051240054634487878845333664611641547304990076837481921219246755226491309833162041786073247684271998917675088321460526195454844057762104216982768789404610665087501364308763650339389145562069353778759555544739377803612441026891941076245920441864335681733180117927134849696348937525388461279021708229069518175362511433258887977035705098803005862227221958394367767763995225035613991203610149916991806242952995417736591770849884722856253668884793080126406505309425442946646483938884094168579826978999925084982280186133842349401830213391675559915734320596261196040263793088637275220740824674125514091741207213168731935259022963655111546593539051113201376565964394063634412356579199652063217777126245157539746482506131387916578034071381667323324997704101179812817086562815289795556718971603210621109766981345106372095669832852184322464517319857789632739520128359778576913960212110768325483446449866403806852191891529843155791940242136323632671276097981890443709067925707945588854208846137016185431297929595656449064855053436310690263676734844873945219851140334681408837643262148106746527527896449059691712715971579247690534208379031740137417310977778788710926627127364204464009644780017289904102662266502524935887362425076887786702071693632100249685389740492792715929862333911342202450080838974218505133967399615657753647219842567336082394264726107224759073139358496827538551904504565122113475125368273126853623784161430879874250131500807290056529939608896425658138797949672735615239034012757887656809969250033131274781330163588724025997456980344485520949487614244393309192692702094689417868743538616992471153989475655987655688471685332845609038554916265852376022791526196617390653838907755344567255585567870339729543471608972901809914595202436309954303114203404825473358401181112792912145926034244953155542991169254789180602290613410143906768152966512538745357401708654458610107316417183261113162014979119478303438930877275242018348642135279080120460796635001183340829290333424943571261550872718974163102059093094173831120988719369386495454040930277474759753728726656996558242670045344434166657749268756647909594656172549778875778583538915991469201438733507665088188076475355895989718099737772924199249279375114609220260673880922286081934028190129335666351462041124854811827129233226638777090184043561490929773284406160901165352784122767755447327173111251556232052002784199327781401481506582475575332439780871142313218893811965431997814266422931123564730201681555180578931942055624359310417155515072419345175613466612657494361989704682638367444908881155473943440561497967443726488995308164674316007276732076693284497047679093716382770487888479349406936084353017573353295627869869097466784683577260195843991346310045512439842073984611625107661994662390585823230185766987320693239526106574546592015222002230038894085030529483015478700280765270046213777656823846276384905434501075040086164761435494517199170528656784568164151858158155266398881770340964831902362268405137890436186329447670439801175618999657084857157617439055370277451111460343602973436390559005089333306489039811483662680999519560390127451690584677103385577433634700182936772598715871152688177885983802082587689493466459057043704854971205261013970675955693280412721194861624122763009522986685909334978946516183155398245707668764196696201940900035280319271525800600851898498814638347982494655752692781421822711493951389442902684768853446707452798021973957313725484837783471773810609003050579951903355252189539793323501222741151592693890231177494432482703074414859580076507357929307199790651565122849887547961112501325033522023521684424127072469198370092230574123164682956439194468126161178432094768641384087561499758758111270759763858305223512910041104895224577849122893731954806119868383298784258689485454656836313783504968934602207144875772501559092769911860955218819288988101336135271175327224572553733852806507108974743240360569894607376917208869343424027212710381811125863736701809434952354422140501708816252273699381399879852096227083293709629282449924597963224478803067805803987253089317128578875481152385340082469461459054352522737080471535201288242995609927908241773155969382447136935386346391998163542643735684641653889914020862961861907633503172186942880876517405336647656688094781596839116564486796054525286945654607713805517768931515296149462263873575682782796973631132781111090087137650448743300647839075402956670726145139227868843739222323161252082696706022711662910732289405692581986634285750837561626433834720676145783787269254660248365890888327934120429190996172394996195805549304802155766134015930126275240911424765611571435471303797109205683358295152262835048681338658427188425990267272801362448566241245319410564678945121096809955732260018670145815898943337584519444566574347432943814537822318577708914893634418277777539690971707474123732397291581192766910018855485526637541440660028810825497082876551083432839216447427539866122138462406798904680407382398573875534684131192933854168291617700949560972993909803447492074834840567621662081294479939936647761446148663072343153300631892135387032924605128513530997106181812147778739264795153796478408643451005361047310641030551953605222365685677597432163520061017835171980133461193877505601774972210802249582638617159803814193781433003525980688364300159303945364400722939940783346135313399127740718673074624873642144852569336909307052042555187917384227599212359288086430622826761068471342142748979698246247827900969783287421867963135975142663118621128737794187550926734140493731662953171000890705387595967911805347269796201122800055311056377390683578629308566521555581310770745579239397836958714979714558578200644497010764832429763215654668622614118905204765525992768833494420293309553765122417714468591009723893169728677265050645576617297778195385379145274089615669252334785331420992613306692542769772524582212436339404958834072719560614824471125167490307573898490805337612695670698205990011919009843697679437397351702719683947717791630835182099731718621485560566502284400604867588593285455111732658096992408457424290630707232100290991257653053148256041617031902293921533796462073593182298470790896928361450727349174583372238621040916681590339614178152811331934584447964899129857620515291402221613031067554660404141085795138317483408249805703381105045012489006984903256326263315817240517425714545925434258141049746149664710247817045528376377612424587095389877171956337179131151461886528169384944910968551077701334390218740734708777113853683196583211616388399539470688252459922614664420133273978053620932192601104154649373472204342973057737168582816420079822601820237328698372243104811190797968288808119738236883037903714797836252282108114580403972837386027521863704050917974573670294627278368078396537018812921036492132653818131524050984501867719292606390430974019118272479442727400158084580458185796461426071723577392899045821769617212683698904689994176871536577758419345208841110256849653005967777307340651135599056585865128163234323901204995371096092042373736556374093932368455618651459761856454017267761425504497810809758038780361907393542460296580417622580052411467935469313477384784926747666178456811991077544586127201745022481251164582757723139682822649369356942054951610441008901584272405352728588017659535122728430542609704061559910115567882420304050222087148508928018856557778431976798912103169423034389793789243772806741921253103836640159343623041918165457428141975242939006854789098365894809663371170637891321203656966624151338690504404264970563223587064803686177602484536322372471003396994994801286920969607762792570656388831180480171832503165073995986035225503502841186446604415738827241176126425587363805302103909715031159022445413422230334650217309076076353803406549885989474679607188500950673056487242356897422432986610415635286542698042507798975342754736565121830838963955158240336607095706047368415120737984855334106510176278571082561151428809931546581297546319025773498314396756036419097285541581936987343935714732837637248526216888103346514881538915352825466441205489745538190235820163960033952518877777752824409078439002173205736216797610708329535646189892893454558636837582144657524927954028731386821295868049422069289428441867148110849507142960914416849375497364315576751294433126650950138414356367056905101271415278244251471994596280688623746008274460612425778789546289602831366868929193147046412048060367054100441725445477019964684409566114176215025966875734822283419911924647515971953531086991014208085173762378449630837272606432374375282551257715104838588367040417811550930474492373441576469668765353076381779949787472376842213569389650866961279493041846050246420930521405066400280931521715340928030107260500375125135281304122267308713313854978410805435258063083707301601054618988649550395705233937637266409837308199287275215522560669206081744334087718226276142823837703904745020677535300904337330675320166676031173325809589562282292029012143436011772210664278920083347096038983398266369596559931172630900194094274705684565086540842636545618164852704048605103050686413136445872217896287322497254112627036050985339614494115191917273846216826652658150646128340412007594072593704714112969088837902236574446336657081396464361207213222638559593567512525288458050553726862248266859804424553110673330948201258493284429630472609922741336912387144472056159414090807318319944926893563061081775814201049563844100098523840297576984179349273262672901846154190661212586567992611764438979030348512675099837246229903754338549322027859611281768787587386172258149037636715105810921203963542111545990809731930500470816172811746195663972976489905103697627891284250997435683711811039771306954147070684247122537261640418405597550728657583132197340308508185697127636221577134151768531652733132944581786605167211941118374481498132738604931315144083471558375381932600020410411104307736511878141655329576640165248988354732875824544750018163853950808873211389399271250244613806453042424970254635441212899466845770426123376043489880368357031225466959333645010755616170066892348590887902613540121521804579594461213908517694583760997006682580997608739243318123297275606101026068030942106402315306663732279254984992526670866790351026387878248290933867166244747544005106944468871680277945650315686461657055074455348355403971498199177831435475524383032883720880760299798320295920136061330067847779025014253917722373779703454262803478255369054945710894077729082828006498405286062249038542053703878192244664873155160729980372120775632680834723812289384157558334011433693173678446465385053227432449089070252531327459603788517867014908310299674274263310905784931403750220673603891473787984314072782999888979925690038477018182364130695650931222120911262759561663446949277841276146444598506138438019959405706812989894622638357922451204177614015922357487050980944833902037382662962388191353364423671787607822210085451384692677445842976018725373482612376617341084506296254734850572797260079558372599539040646416449466253009686530322173302760196481292645567498220601883607430031830328995361628506258058849665379068156129367990905902923616067605687716648102855557618461873951269278338219151318473897622260354469867825310447006657282275495704901525058471726309116201636797265855239379347297834086061660157855478760786020515597828940073456689155003692113038557047144585147610864140359765478364202312172710198831755414192675834286172918054881151757744620267015665994601019285067137804821289733606905890678942852809332787400987617667462548267852684526566648785025034536181925844639904141187574245520106706717726811529717717598021521417308964246173649040634680399015712143687250558047571638454017595761690811527462436264678067119915151743765266786872686622216383932613823124637874533076996953267319897465020406474339429384228911655512929508760655356909159492094608555942056081348580210507200302713426312545166919926814406871192213103782798149124886700329031111615280591792566692398076319135856262492533884640832660808557378747314780408424418737232921419364607418742316606292509456268231906378384262819067376247867795990942710613847134116270115850477249652731449340312146849526980510886989367159503035506287373414037768389711482965887034503778082998026669644512399839568520610666251287256418484671755020208174264634731967945801155589197649990899886956027844794344010187165103851454325716919176513815207144423561751610037795892379252391145962333616503585989775977676362208592906441005021562595028561926303767324614778410647557051397925476969585810535705051593547843388676337387069209516326763648979892680460832677996121918584583257590115323968395365207552377765078867901560657385463128210878072518180251923520750395883833638581657735805670194296946300866797905379650760411197170057583470683318708597267891773948444741303418056769956775022006868334465315046962080346422201218608283397066904714698935806180071748335956334154848761353509239743847002298175757305760147193106631167217950151123601438989257668047089403504557396152983766170176309408181230433371731707414513773664512951355529433030184663725907452696622107078570765122337532062231153636835466290317659142906244831881307073351482266353344269903613174993646840793450921853813661830534216958368288385382167667909993241185806241550645802750220521653231690157271473370972002141951391427438523294269743365339058545780634851616099066913758449229131000971559297388411097747605388658311675996661750702591630287174848264970282626342714275959194262760972028467409083907557665501848077754673960695527235142088285222391218235099155911715510866442748863298755562457111106760135592436820709967034362262418099383762988136118357704952262435668120900261593041954807907677747209213953038445867433888682641474506252151270371046404162084110758951244025958226948212422631898321988424412103737487663376203718542092262362128602578125428327307430219501390259081194192527028865879038731509714960830255418056182526631586207122043630167528230141434666448073772024086203167811854977138812617087046548300277677349564233035154010503194621758370581060066984423410003738413156405791324678640725573005823382407181010352734486063161993275027256344457228150364873304667280022069625086945597658219351947163659442513960839135240625617225330584772609101330873114307869267072583223780142703763212053442185177136263150344604731420672046771850253561409263203687245757810181166756369977766813829622847577987336063849011585069399325386807863568635494202451840514239301850377005551042821172561728370871945554439435414863806959662279817724629809901614375218057757389269036529903162641511430345872245584071023196465664721040460168078150114292260890675493903108668898797641831215317346709842828760659253120652096979394708732342664106771035725712397853506561892609499281035879378398354128947833341472537782289269410584222815646769568065330415059286390700085416191189004347721591570238655538788369728839917124381703613257326070895087097554915113264703345472821258813503339107121225217794145514089373404058483183242586893642275077339641489055978112539340098872793034132871389785597353552200138372411478352932437715464204431017098800485210713697413327505905169975481426095203238113798180844721357383902104000457705802736226635565206824758974116514086294927975717796888477433265182584838213425203450110434680187840036186278387343802840717175085608739836394433654820659799613405037611356008480051446362082004313324919752347796884017246898788211451411483847224136429832396855816287477857681003166187271815404590704852348519231791622220732973566280381754380800653548471918025785443650134042374642409988896755133738152717812067949954995348349737607106495442842326816669503607131947085238833718135072793644134650447844273907050239970961025253998808764798790063338525974868231795737166748280516398860594884038600051443228108435024037962786266925961888702199767531577344336051568303328339715333698726297245305195454101558668431125124701069731964370295066942436746914543852595446852727748521539767466345794589587408448236882272402254163305934623224782563165560329262584660800605714252206939721120967687090216387144369587997635865135909646502171425952564388628070809836280917431337129086511021753256768392701409595067131447521989969013348271100629266337777029900334593490152489485685458080635237644669962787462728883777096870736227328360835236260916280908976285058022060805512181792621943067060090844662338191929208086181598266965472037084523900728397825407153917075326479068237893833778721082538278452550347829729270701871104569254836266785116158602360804429828151305275095206015296988704757686659057643345172860834946374595178031311402061437594939441330177767157548416236370984395809946861704128158888572384962795220101430979195508390397406479831450149163671655677389472369332485408364609048187896413239217729555579679089886359565884169330568737361896805819666036696110254005544784980392312749637202217584936741255844423253781668956896959028294943523953361718696234130818901762387302668562424564588007003804515406362310377497288733865726153666035032736186419795670545739289287896142706183894313144194849272490651917948199203877567875802314851602881302277427714615946982652871248623970159061910478682416022616345162735876742803992048493633686054598234254404347029701004140505446689375315988743373597569549433182665002991261497410526574831697931900594548430657313191260689687608355711435301822504424928986369290858557225782126000142835393737758686962116542880125218219244604522448205979519367950540914788661472239083079481582779616940593358951043633950704355747958114513394691896563343048717536889734907766873830019135073635804367364744227785622451403101359669667547794132222358225696811842304788168192225652990043837510443658414424312227572161838954917744192563932739146734112955909132646060889041042027585583090456428936231189617224552103120793805212342744972360938152052361313478453063703747237530982905161716563186412288572736302483542173748401609332436261075656488294843050347112903000160701595585034079276485832811052164755928006300440652481719401664966633729803186339910777018149479176324830230038260698657539195453180945737584430672368923777837376201268100364699568634006666175774040645539606298412301039863871249535113210734517400959059156354675775093727309096771251601572271998848158493411336619416940386694254660734158286830733017194352924539106153638467193609191552881144949766456502314296173887345309552249281552983310652840106257532799127842667424302431700766426447093251907410455241076953028711264484413810317340410183865409596582091843049249438183737540087136655569765565993632611435379285639532910632601091758720866903940907592242624551364618349387034703270862586362976041994230479591190070942312635550213723571411385993564725750615554905162234173088345091765266811790597939614748464165710283818870452024041307696114979962387742763952581250637769627887280698863968963873874097400531586515850527536193426436125288822869779018320883268513318443621632636010889425089039489101466408569841988939973951187449393732588612049373875836762432805711106681795618286712540187126444739622391587604185804239821474211320464262172708541226313013655316545257706561852596422659132080736724086216680263412130941056214722144891106061087405841344849536085957352630093705097835153428631662144088821800976369507288401187402283518878886285717283288857872616147331844603563854088903939190651819437056152273859965688066437735718014705872126403588988486147492444208931805762176588203044361978755628911244627167102487896748645751276527982422749584012293402175961531707181839598483305694578548586184778273579552994923566119108939696443307284923390937733299394299986276176768337839868178022183351278347641482571454074436609287589208713863937546800857122524176483308467744881299461506672272538006126101842821476642104715788870263598581266051619522850336129971951191888657954711739038267862816296636611972020559712389088981568044772910155052361765773141776485847147345072815058705357128295923161660301202694693484728110293116537887465928492974430954905675313961549773658786978964166852883554328611341908021020861817149313670961225126554884898639399966438951612404736226852939333395428792300660642263594593590763458087668768052283993292492312982250216359861723722302527415259660988425788067997608524043359738992682091744862019385533639668478321452702655402256966858830161375519738838868354978580709323883236801130380811981945834540823310027751829688252452214837569807993474313805814772166096770968873115706967229355519654649549417305141370173729689167243339133409045730226560648940441508180360555074857514446716908855836891624285794961819776275562799343486187713862658904889189119832189054838244721933610393115695759617796113801386689573941153881407598225546038097371473583787640474454066256600888981216073252980878478806947310531643823363755338035723324287019026037645052178424840842683409310997582449369029790799044336292861606086695210564946934634422196754745493204208015536090544954839035918751132160437127693465680098113119342213049130329000460584442397484152945259764658000375774237262166002908183027591646251247819090400321514701460603586586063065473682514174089889576618676051497176780727750572020850314867958070417199945154274928050877464760773839283731250862747438714949605477239850524004546486345292648944262566910724845282933561694679954728050540206842092617718494864070636264367174404673833569247498969850646480498634354948892938287038776939610066998469158366770391374438263493901795894032670799047708960316986115082770445977553989543598533695237681381463471156863339816159454288972044975963629185469542984750239420082051412755247701711163228057332426904144627959058603235971688764276244679419465365919904286057573011485598597871617024539862614830017413297651568485699565694902988998309718586283105589563497433956076703357062491841566075188057664644317943203580361333171225613591645759098714153565548568145917217982977174294939293728271609539742531217296727370306388002673375528808402838801720299431568490760002002881587372389297416071749171195678702082272949001100347987521346459093926144927512845258559091254959632150848229802017774994629975536184238026166521901770278648129795292006144598968556791763582155845681835976047534238097611129760584712963804092687630131216418102550254610543981680975423640293286207523675127608593650377662063812973435349814099553857086740486349235357925738825331140878051365339809912905809785391035475036437325292248924086519607628355644592071369802849077936741978073389996859509010589458875932557759932496172535062759433491927762882294917604243891504596093314247412428306694456311242072014600280214665706500194602874164104790493946468350040723345153925618273101229553089037639888580611174132374498993282844500361919801818489032476923621650555593204013456639164312123550255354174750361366573615040795864915136200591010515391935106675770837797179633559088655173623431560968969234781597589949024118157167635508223682288338173294427973449524500175042909860794924975212655053663385740756774253149206280655466379329611004820029292700174690154619456637502761286482488969493334766210440234342704934665741691066548364869784360796882181477492334224384906519921626435809868065214757383483246368432274931205218142358064836318384936496508005079595557886406214999016637817874691666058281896713759006733750364306401351637164481354365064966601619783115257525396442070316112316128704057780060350693161313849223677288968490922452759653903627363569072009843974052623884190606547536126069663635061163955944660291370651288607590945414324915703264240331733607146411061655181167420213256406585305815017663924195891288604232348408030290690263676139861999427474628227004997118521755258182051684791173445528264005723533397150628881235973923791831074902210190203107693271857934491940181587103456975113339221259967038786100049691853552326600455889006378995435019898916233998689280945129956908872056792726778259815013396890147471949500657655887003858266888973762506247671866972037333470542303187292557498870375814591788672618378732958125089518813834348918046237061243196141276516458506080934204521802014318025132797444886200476105733180379659695817221337323617552567145915132150849119036951469318397357967601056635966453308757519945437082279048342701549845870519835825522486982797969432297500169156210655541292692617958646777341757857792734025230435423054310391978700479608224040621640584789726816266433234484234651177325872503864599638697391149021265901571651509773640246731191955803552943096716873240112805280097128860479663361579335663797286955617394291036699971438198464332739000170510906665583740655178870234935865920124750464762701495341571512597218308490987192945721251267328132125531765045967706256218138974625582230274915371130506283885071744349111367961371077078345001363409895594543493976331738686570324062536560844935699020266025632813854470297094180471663639340618521443011074030727575817092049919992492740919685034308710057252333449447430428300085461622317420409314609974218190770922571496782760270994771087145499436797406740746746088465384472458143482189570037175197983352638375616938243623483494373925842163219496842853947904833223837579946930237939906833251955014194188516003535689044372102781097371911261537346571869256961578913225097066004037491442289673223252545101315671846052059640969672508142891265651231643807937499751599634147650153807961938478254320415416047951813488801385453146432745871769341226514843133153759651336009047372762339296418380970562275643632051126930550816155371148669159522414646558490592164321303365532470803288884733019352610012805505041200203270886355316924353911013164645404535186417346782767259191990711268912054178354962978239692296179131329007776049280668265907421122751522106026418944971643409372575469833134086501202414272169672865752819627057045861702137840383577591363136298393911617427019186332650177205689617287853286171897907468069846147331176766182164063156945920173874105504607235518891056781704898514314724032777025245659413238845491005462815755157737893637902385121019394247493223579850486086255453623170481936646393475519626279492753733217747816145240704185226252466351506657593274637018774790310065431907436067249697122762950315173299262727740850383451904527734462853491124222989670538879694647725723969750621258840741935314393236392053796414688129374846961856377436361365414466250699557898713177271902370657474549151658112567231299563493755260585741362838304900663951594894022901571281244880965485134255717892838897961648088422434640775297452922205212293243369951249396572880159717439465335670406072770988760916985670878373771346558200338967080102674193295545795230204178932556797854692185242915526928183649495618848408696163337831050886636933538545075685335290968266649171424189805915486346151500325102862377140253392689673940679433023352727531112724002665783823181524640835288786094429724402591638637348838734981672956905552853250665615599953601692297222756955707810718477779472797772120643985037752339102321609842018553375606195366062422928961325847235709439614470233238560856239085522517496499622076613496196941678228558949067156101034472287894255456843547079493983148770008433930679205313454402481918180516958755685803535402187662081658311831536074798423809620988103971883378317623168782655845964018357669660800459576686898283907609397751611644154809144033111963644885732522342101700947278539167224867247190076072187047673594553231458777842731675634276668843061454635244147173061850044364226693978784291254606337505692138267416962561287792070301745054490030769276698591202784267630877876579219926510067718388877585826562822324297726319178192540023334319970408227941220561476198249727459841833752310339118181363929521417396240132961185471651698147513131006674372350289598306843196559533995297107938257887336959851525999138177921827257686606989459223148368720285635494607340689199123732177317273866114679578784544957321521101476767061887027966925638488998253804669096767111982897155903990049508439376061770928919170305429708204451090753997727455982309554365740434162021028036540794777126355566513754971471015151454306532082353381989667745491805920920951238534510713518356467877556614904647398400165821714695642815887405790171429476448256116013408089817445691275491682841402606330110259510662101501342353793670380478242121448534990305442362423061131347997624888371069127497861968244068443845894520366638027881160639836295645683339975219268761104249593906003958658306535478559053631836090279453156947962077938469297485554576404868677694091523712665534349779037587311987639397828374430562728639696907849070420019354870999819019350109310550532198473593448141386623490889128772071526403727828592104004886158295459328942718371454806135174193326123711662089461600899035488428305158224674512414071896565062490670329281020039707645511355353919292000429711682731851747156610622185994121827486059236313231195482894245903162262249962919145909841148891229945278265458317686866398993408443413891164939623113335864615713331829644027767038626245123216336800811026466077386558082020034278765823626982073285612271168965387798703947677849640588253545497229952055167108646808555057317973565357533224583076309061132699131027584879424213963574192768572295732174476796512328012256249982254487572859549127487512064845182581781423784524708399274969943817531628903344278428149708256394464886513900819903185345222989768414730078959676904042036807002730119470319463862306758543853370911934306430815616522873551892279786111888745756189312124753390732918050245212066514327634292756653363277893319762388628476892603314237687776195103618695378576800792346283680193526865804916638537163078772482261446582752805640505326655631371749303495232737598014892162414967162282637591790978168226259328004314528121161064556435054206831964890287358682227835483713775019657693229804925685424970943906401660798130513049351396945312458496841569761990479470658192784243511139575607700450270875520869729129453503829507997381161224202500624171355223869263878114521632997351403147460357405072384763514362479079248613803719267683704776539685296847339742197524135641153545374720715930067838276618176433687731016616789102166148232676907450251817456609214500729613372427530050553052863203135705930635465423890872958626518032577115770428092315280453953466669950838176030608068495825189862490471571453271460452511219616212181838459299008757748338777009198628972225682652885334595914310814888939250694192250727514459571388426464935631013134340784563382624135767225811985016987671503929838897418220507207837951178103870575484209097952358984141456208804055349012356414238923278688693141265780164718229466855366030625020549509636511775927888080388016411054491409223428628489132838046950435817505107752276698713709842765635152912220447384416319136128472998818028181969623261308197608189897371955985637579618683390706424788760517411480570144087607926165994858502621943575544035762009502650128668926938390077735003942966932023558185180325451342656541345178873403343851356766140345245642867370630670639227129011188279257261969631064216102452860382065877124381047938733221986308483754020823000617355760387475296577102162895046627187968028264663445945638910701027207118722191660672181599436126498311453831159944055596542327503956928487179773741903081947567529401319767764192678944885757991671386603127191160059939497906370194590068408797975238407837469583508162968727533451396896732482535106832908628862723312401251470595642239224255507003585132768991646426968756837567472581559415445595704268646083708514280083425125288440497176934025901709736699654476302906433527133197745774390042115360860682481127776530609526645017377714147275725748488483217645406348863876513408457332514285472443262453569559609376995839059737551797100652195411427328742032990539537426674905172850974704172488505532374403011415625818795202798789374217367447231416415348124587598006487278083713549612196271972383972251667861891613442864359156397479373519799961676583206956487650678191371043618980590775794179480282716956931965060351788507383995388335412815053019687993378360073389146858129508282506304086173897272277378264393880512319447667771236829284769278356040520123678885876404586637855141388292770436605479680701498864387719384955194167563255248311112525070444856383794155871049731615701723717465149265833038702551156387101218891553299630231418247253268503056888350007241747974073964369332466030664910497415403198579766388587813710164710098860229154339710917536707534854847951402835777206384432293890404439385260377540203266174293527979001806546358320311499494242740922324105194666071977224448737570038485049558609771099124596349525587664941528746722457164449882821754208946401670867181490065451233147123364681680719535503105026637690064802421422445293952614038204866307783355933005505182101716291677441466311724931479047603954618132159198838216086759531691667071270297718804360281477012386121046389004622713136877549015467204494661887107624639247561043902179036006218815554595586308580779112291053228192645347461393767010034397705329306937658493423704947237825665016432104865694743289373460199023713462409877206581696793774413495620584253794402195466398456427322775419979285763633801856872265163918264496189191658941851818295092881077489041385749681714786711939759954716655635639412767327714198828407643478163182228681356682789949193690487541651493220180247736463500662476947459876870140359553650648880099681062990853555140728750960090410087411507067108200048293149263616995996394632680031121453248443559419061142719780209912426234066894936712033124170869078403015441006734348291435184476146639356952251185460080819451959780736797077935734872110749075932553254414915042186322748003514750356645755777269561178377922774160550636378398211614637356603102605473258584956236839425534280184518656848111611056640200858385857048503536214468574365014993884515113401336069356364916561618907289631995645397915096079156377265539350324029761167239352174427019795059190977476607951653046687748588590118355675455889774794171251020131847735015839151541055632968470761552604566448246824337341432958519459894495580745965990754541316163222323741826543839991714835914096742758035468102411170509745228745890351521761091527349450380279676439598403480164357830238667003611123410726312256037037588702635077232446094794003057973854194676467627970262603022944969931889668352782384313810892046579143866875308201910040136880712718871591853527957191010035522056736156994121156410014939404301604833048851210894434150561463626818800077397597560027460546276018892410086311380493791777397303383425429578394056116881289235099676758295591176510829524255050978325837011278126043197595140819152185019905747568261018265533162607757513205615555609525382659209591398576145486862583487767536584228963734521196588639919910707019800729625571197787511885640620137511384966432914377044603491138678666150826175231998209752804462828051578387212953455314872777194872871622237589535250358286853825147135440100545428802904389819961475316291296093371994165580991437778958091971190141290317658821385324120888240046517220260800687409149044899911550442948097869106871985182463555082636517103826626548665350585852860247978140048865651434849422048096133772342407633691613113868731273095291700574132603212746814127881070798068382392518302332222797944602395386136579193358759687769960513295535835202635969204699230729162483647695540534614468963563128464191725268323067488201390552804370831818185944472549145507230374537618739704787535981245461385608703279989035920032016434903521257771721336041088266071477480067855843562406463940693908675864503537338217269887675574962224616655040291445576300246858038092929051521157110467975942842824168664137253831757449176663237784271915888258412843878086857328970885476196508301485929929001478590377762953232403243541076502331121987347544713763701851771410078348867470208475022312420222757850913261905188957470224082906105897132928996177023430189798876947848167412143519658198367347464309897160008617134560874625043804586008187101722315603609834875154506647073045226435868410759185871505988199969675259272410552880333206967784675329873713140549575501789763073299578742589493182598940650480472843140995404698262678116225784702555944985536354335193929233499479895510855672804996531960974337476753481985314807303083398546081706104700475080419855331302805235811989736716218963780023450528807204223801331243902429731043086935479927418367518799418474605116683772243511657090616026103653130404325886687853993672308519847228904487555650526273544915757628170085505625640701022386734124123935281598963160667187985082433088924998192527303992925642207032856712534023354941249986047704858505663012684177205292268240360181321318002560167301141123845042215823856819723902100198063806662796031566006304828843203501324491040543243980602675241098527105410738399796779965650937578120404145286721405822882988848576153207386008214916536822716443183104367191309310386259489649059694000219670767375590004497394438145565706463940993749843067992664565048019091856094828554596674108636629145960872027857979788152392646558284952533955735496942422049993430716690518436547522372405054396648434580950038325097030237101277923022910319485946104898418317102601069850162183430931645173446137935130634943487927680226359548838073565335380141123561878739623765192551499127311470399155204972945598193686972656345327492250946925504690509576777088647666415371888373744933707230361341798115670742314805335587517881807133218599640032226199224198984407969543284607976957016868975624248708639826353030735600378954248916563608161740233612745643512329257334750377778271389502916793780286987922255499959728665595754646030338205728478948670848361867538159075907018309500937232966333205621084977971590152104669418311442631179014337143886603542627041083319967450463076761548550258319777200574262149240241167189602797229463930537193583143343191642573637731939103219299557230699766670149248015374916702028849678926949539949775931387189635681733093104858866200944549384113594088528565657378842743322389199628930859260541857898685548721351969553360638825525088789074120978221133305369591340190425743223509883304880502751621552752119306115281487812201376215619805535034327599531841807505490407156711933508132069179706502856795894735378562735897654558626569731228275711050886671155348854180910335743567965863157602863324135684505185852420976462526036112302112238236282787620479986972679064569757486570012546119648937073672733259293788937858371216762318816292582023635851212813123088744802508259470173584344613875720465600475052532311177376175496081279355530861821808490646071515717557529763153117293484324470657454490338672194962722089657683569807864104046926218500122728335138647770015109813389579116298032682280164652478613406107519031385867880123828046964051061800300467202719197174709360219445569998306995022906612297879123793815186633252186040977461938992176157496884522575901595104526023824448134814628599395650591403736506650659230437705221304033175093670668684534148903004294168359386798778672779948783631083098838419055446813841630791581319468735115203652106869966336809298178468716371445233062514059751781055879189912361186587543622481384564397392900967560605825325484091732947624109523240554106922044921496458893351997561956354028395403330257509050448495705556487350545691052922273393264225055503387539329116890965124147786604438310721856857540549301952461864626239545268766758264608607184053447761497620042305730285201940612360705127981130289892137444424264456084353590864762913226264884170759204593831422244984370455945838084798624922765155636602027888948641361951092707197693840760391645477433362978946029713372786295348695903815072902977791848800129521611713871717721889524658639021132737615579581364648616278660142996100713565872334366541593050055724240833114893095337742387781648391310538525101924834970632287950700695354375675386166614467848397940543914013217639216448616100130724239946521971899424296408596689413674254079236825498280212014246197647350639992521586381784770837700073684565978542995616217571290987582009126383319706194841967066422798103750567281733396528798353147234560179489752491706730194175541475123475051389213075760197346360281304941835033976825406015092266226007702654831252717024639808733979702683175142160351426490450347996167241949192531915038494734172048790949974573223021532567079825687470949055904242353329737090529568411964296424720693960810890920081945865456204754850501826768170834546910224089541562988483402535951057979708218865572609951119290491830429917717749004818916764250683256152486358765925471510605433556428045657361742624163388878249521108664514468593980325076790144687392471679751844375782046810993717292477663721750461362517354871738520664853245866469534016802992731351971970341143135335199440389037178634929975648247950510628165748235539947899836493469570172198626465692035987737758300127097067712667428450288444484822883201243733170685508248871060530373033995503317085210932592289207089703367544647371167165445504662844518642830329116312733819183658726798956723661277803028588622887935444486933715672225722508821874414732650810133155800886535995489814291080712272285725017918105737570888639613177951589639919876585675838882165812734890015732530560457170303495007618928366308711536708814706433274341742675005693864206801886055237285440911156710923931305109524709212891375511793682861444149219753356537799174860807744478211952217039635575505591115942454020791941383741512123443402756961231498221942950125807048658256903083290805251868037397255662528085063544308482654796157578679443204661846549315752944733687868755923594147518627090907150541787371843878512482604002813836994820024955576683734495829225721208187441769887323761152954559339995739551071166774805266364878957987745050902941478933988846379683749285760205747038056853909221025214782681072423012207607952091280091441760884739979482365039621301791256612660422575530161994905504701763757549707263348742542501338031404464957909529245215535912205925881217977594716069042444704177581186711602546755538791617594530480242861823879606876472116583084659986133023422878174773908644401797101565070316148022940740494258063258435163408291972999912984764032153989294227846466010488952032377088539269054056207223834914472018328847450461122840312155875295975888472157351031228395724761034068406089074843267660961511805644707182982982094026711928835678642417905036928450637902203132580297527287664534165235775662504528506575934689305597428009414527856555608887436691631470553601647449901301810235990826126755182070348797152140712942606631253235865493638645316030080965561002150316322624714435591459433818810146032076516677299224028200682317085888154803884861752188445601246782910984161264036407093166059830901089627648625827128861808824778481323488591054546564490893709619354626020329210239524140979256870069677953377421143881884998995348056476853024525892625021247132091171148193409218593644225978688612015893871631853830654886209632855734787429305759760099461274788577330694688770141142484522336597502201949079237915334726780085313700601422823030202493532170390234564123587403967328147285400155898189084665004536018740352737417726591128307529099990986496548993946554886177919565547395637266014981368299436142211683159207274489968290783234024430581591839181101748454831350968375469301257269718605787588984857272169369014305831705736842032189622651128046357963212945594575083556888071446250577760947324947876510450901631956311731631070062330179656505867160256728763078875859690026096058780493185073782100588337169896901121874969362355425055854054927105980582515221701954195102610851525790088675777457942985116205115739221385825439457897304199910489432494126379757072725830490738962745037057523277216003995424195780644105835205150138785951232499197406463606724803568844535591202879952529377794946912631888779959610107347778113865245724841979043058680802437190870909970119848732269738484036531919176629624538008703008245813745588419526296671980175949499441708626243472882529173698282770234773545598545758708258172874191205190654378542512653682711789704487092226916654360001258226739264519314016686307190308142450130162276378362374440150045434296314872017852069506523215091190003098548023204961840558387599531151039591051243163562848136085309014819809380065790310447147245167787776188163601447666953101642766668390274677001557660812950435656127094387512018111815731978824880484519592252616553630373034823451249952767658679645893063765693551466756223258083693290509658495330455245308565643544550540447902029829768575061886136348055935260747326113276903498905469515020467762991574453587149872548753958248149725047689180967583585697197900631754205910158862807353415869614638519165063314027613513054482591333391906691946669854140107069706910005914805131168852786135686408777639021893846636196925114496096496084263781949752875254705074265301535426602015699440386826262263948160952767834263636600462622873775070206119832639485355244775323482239565810875014461318013323246316503161323540004357412561931812633882911394081236844020647300077900377195763220821745721451774334935716741792085169716723493176503335228197878503989018772594177942112681857352259233385916621647928941610190976651933661108857131980286955341229075832340222070746448175211824694150338252971054848850689806542213929932333366009798512379657201165287574545126504812914906620148019369900402929517763050628797021065437106763427795980214639769920888696085762998235669633951069557708744912269783074317276420137295173333121388578126227857543656642541883332997903483717221264207484392669390010132008315541479532113193415665605579740997745473879815805233899356763719679523648996432810225857396598858702356910392895431022500618972430857008020598590711196791285893488208538174598329153050930296357355376569019398057249998844345762746777999530725780607593775956094476356075102534793403452359928280470333121925088068944129507394788141477745819196907777502830885853082312714124105936022645199685675328631337640317280196120317318655824487787256551697740754482112357496498063947822339278676906249454509466775890992491803491375937930584686130563019201593596961178750184063662921565821891906857426439149530159029073015318883455879126509928776523302420819117797318569946027646165688498985081234048826350421358290664749639414031017415833154881846370085006733581087419899379133453539574096414403624291318376280317539696078878977348840252674107630282298783480578740833439270800265981648043636987892220040572978944994675738750291662639022367306718279539130779608379623623238999067693628730637359398583007654630766299276312268854868308379074893478037577356309481319588712469830267029427281273038321344053582370609516304616551665350305123373364544869664314362927555931365334935233985215072003339121739222608793519400180271030330559118567698660938168957103006958903681778999736163976135889341659753439515382534902550990241966607331663714409517508986859066916393680336565552061139091543980163193689895618415299947787010255198086731974392184466572560085088330888559273287713052948637674283294895471997645790776262080336768000596888405925806940545647942604563910847039547169140481409824514691876286235984982696505563213045339641376338526300559823830817997251419856930805450030806222113461447527101173464261544827109093582168140835671622429405479582195048458903624439215856139308143891389267135752903494217067420047214819574962729019749438171334499862090133219340613654979963101172318356750341639563841999731900034150087437407432924715513360652651520027757531583925061487672229892435713458024356461873043339210618097175964889254605905030604416034895223357558313606906361320012097801854694096627171759607522538479018980873194352495025517125824034015946735106239516449169743363059472384428756274812810064371463187323996588174626719308160583376007970819295482126214544277616459757132603063840484000368987154825229374182240293789761376628134526236654363912470515993743506023588649617951542531038515235328879226308865647084953262883679379537465134120369148785580076869886600109004346231979759500404146674194320938926449498183708731822211445446940399732848984618009472442736777245190297592367279007331638141546919228089094091081701508622257604727631046752878750326137613677968166821554963156079324593078032992849290862423715692580097283639083653222152150093135758462434086778314994264458246321405002273519213493627731663515412180109733292655445027189640264731550135690962001344593750748293363132812133925023396053040524005134775512535669364832349414580651328575208373911619175767843058352045975466549246598801948430891599679166104852125308435519287141843502786224866502542835229350274312670194114296480066031179270433975893851715148876695515329746589028174030170767385457415793109204104494454772571330573952715929836526988359990103917934790212755272443437779436304176649049362242593387942502328666618747425235020778256378559676311858053177324352753822980146879873196842096273382906034136377260548219886922675189477754026386190099232136363342600965208036960375303079771367065544911184337384012103198208175576607204092300915055070707367258131540009157541543140915375200092045686850912525844535302806411431626097674613342357261798777058291494299388696435077193291859454348176264131262636171974723589417926363134190323565033818911376770717520242550817482590032364307155360248856726164297259275776231917751719509696949361813743620516838957153606520478048785450030056513236016851804087609866883789466815435773327881695115654043607458096812278460780488917486070863720510342105195772901586997678126775768322837535836411100488161710548490932391448807693086392029131058732315443246532254388334229443448214841869909185396699172653474829341450013000677932407669555766165522010607478303116468463276402379756961316281761600160133372264618056349133015625125949194688751318100394794540650369374942356962780988138015577149332931954085115304404566326610878283203080485285301520102895504485889709551365977879227162149981676297390159951499361072010663052093735308228599636027082730364414647357704740912141654886219597951181797617807938132590052136249202693723299289757896092808839382281810371550700079104915254684590522751810716781438038866125013867354894581085861073826803639189349850050452790117235448739021992997198622218650587027693038784704844704005650994518541994413321800382610531986659226976239607799042890044443454469908518475780738021099111722976429869985383300832320045329731319005994584536655412108035610571755872083807497334615298071886201003874676318619237767965392038731199263403767109551087252826517381810325721419685999686826475004179913346244760020321359283203068841435276805632152754573085410945922052218238201555325565035818798460735278034767942907722563086571124889532236639261074632307543827202342669710483887211999715180067185258771065513349201619619854955665969104188426677687508402886612609623273609464073411185503710022683431584645837337754129064340816993285615455587530517534480524797305861679263321963576354331927006358844066109020624791432163459630160717651636402451165108279801162834417379042979782678643666586272848939813725373746160150977123772235191150803686751437857352910086467893288175946038181486089513213523052595910789123499370795909288726149649028589941780121531235229316862268692563470569571998375671494744308133969856076671106500790656365977865206744282403423120247037732668414629539273076537324840068417056774062212021437390264789573982331769034000502480035012397431893371030791590264121639469839811430948790652751017654360719235606704221549168308426133771364453828821870811383421578644502875759300477269854689836039767821611239864444821892278098876657107457797461901205263040231441311197756291035106070201914179873510388271894515673457932544677870887344627071982615190056243671469290434850822294181214317179019994448269012829828089845518685091005524295236599071407831608135111958101074396384808613882360752416061306268447534880489402106854069255056479099990076094356184290693601519805479274614980124912045372861302534013688335407540091180042355499715218789280628543625979417454473152580762514392559696854196137834826878148884268505878686162962686594718183668582364235644418928497903603533755790242220933965472742399895329818829730030914428293906222953225446013721447312421874797696197786927143800904381906756754012052005759562547113711022820097205946828971222728699684936632225278368852089632699452521991519549430561098817545015923862566266120781329023275377649223687672062833038013586515801144398884522579533750814113583902553197270579715394349304917255638204141382631576257488738944926362195710423731869522486869839144845427846240791118579319677882647524762581427175591288459218343342608916792013317939031399474563951857970677799972560198378280932759132924837156495829853486624172383681925124908639476737271925576708752509248384816128502655929544549374416564841782890709198303874284993457544938069740849062219842830952798920320389828587925778631242296890888285517113925258617769828822959922490840220545350575355360711169485775917106721581047573063678677217389779486623360783712017494688966223708918229105679826192703220234185852141310902917389508671933107282051142518235929808169514204265071505209099810695620970148374028620541643895168650566775510178399088791700707433204176113873251569800546605975491125691906969656395761024826987530331317257252557516423022266255394469938701917624945602662839360927944239173608184775191903200414260582853109886903940679612921816585400458712762425010903773428101793006435837368882623860450640015071755461285899681700174903527608657976741903791416294356368344264086257890720199150018191390725021135856478908560639466687132029101540410700340226095367721173295375757999340023023188614772509148629447863807882892824148617345105259304195682195426611507373993126224484312100590033121641294016512001779553109194291618047898210436937871671866233951319158924308776404509668178597148006313935209346700531820925940111559924754951821505642364723009505036765797368475454363225232391704508991036128115650966996646722340235400099820319722998024688779056386460094542005513156991097302231136000152030445961789032707027152513803639194668137981835978634162262299385863091950117155585129306536615533309151195674409194496421026049607569871405612308206414461089321538887773676674066876894091540579228381143457418168494824273604122017583030492911155462355032927495562879524071490443587057544957983598248378770331209365315005436847716187106537410698048047099329672134792244283159587992917690598954243600412199011207812047337574325751452015516272607196907763841615418491042411666779984403089825667401234343455875037923377041599773887772448414507197952227052405821275621101466713499630436635219167672936622869218113738993252086393349736593740251305812343047822493875468061138753919633663196188315554121719740662912289294951124053550170277244341979480997187728256678483406445547291977350304741657023517044297507768331736365677285112710396313791239299646221020637903906498183981129825464166783252042845446180873776600210863081999639405380537645651189653999707804985472845004278796442835643206176727637157764127841833210867170468146590224274562611873172981389081168633933139542097358604350638149057528471508007454080307060962819798355859976538554694252075399828295067973209468388121538578243405679205527456248313092734786542378853645870995857821629536644515049238781855239614466469610547371773596798028729477493076756051184617120028989420385280036602473995772290509272162694103159255282096940563631983551950993743299202637962190322438529338012311720643010026763492444982500330285131646975232515483970431018238190281446894854985220982089305771956513479655296414601757654553103718927844435923607448902085856875203783368598438276065921193469725938369628627663549425039050639118850464255504562925156350947147024094216747773169503790890012492910630544374606738786339492310615249479163231910465806772262338016065468209069315381303596023531550696271442448965215763420250989222419053066258939747103498356932824810739502440008053908778024160495016392436752135204995441674375272299297230240455169093114990661539948869513474614188167211707737148979066330979411853451119834989969090083601883884262080932453196191988208281390600382090939576258929438508425717684924603131859161895455510551719779594528772933038524039629871436161509710543371344964993383918576921749941161209070435929804681949495893163621521718475715065385045162288145333889524829633515120987170318002727710964519119491850732968485133971103590373211323222939188767341999549527745769582030252497210809585239734388089088994647791770978315899491569233163307142855907708931219060162558374819815570032857209371368189586408044073985655924553728619981845031162474947485556020278390880037321675511084044207937221214950273215571415122228672452295652629322056020508644935561553070161765721122541849785538536232750942580568928086159897765134927738040937935930365279022470750476293894501493715853810066692103399241373847041580092363239591834695115316326559772494167733763363521785051506081243701201204072167474964357005141119207694725008763403519233142230218970408653088307883211444539903471293057825314586590210827522247724614437421547780485773929423485013098663414412285166661127828882997898210410816956283495875304390266480633380442379069591281727326702502951919526915292543362685086987301850123668291396834704519071259380736014729642470565909358499164783610410729400269319696237974158497218574775632502824330247948990357383665070620255792271261903168135906725226687204528710984395940348262623254672608537856740572788527136931742020985233306132588397486894958977063628999758767327004104244896292033406957682621504407783673523587659577488054266159775748793485141169409116722352143695818295106213288116572880820603188150104946690126845806715230700961552252026342450124021161304149825033361746103296738204661330852971315155011835792254741258046873361102171712210220223603725011146078629331514079770882149555582088939040431110684566622569269186850696160103639130677623714395015469983607286277421871760740328967932835870764794107673324403093647143584316710936509619651173057694535638656717877525324751606878737179333617263165929218180015763134228379089775172497949992591435684181243112381556019757913949676051724083873725575231099566847635339617517551926276755989047409749022079839539330271358990089203831884982967698932907724785371820570833603805611587205092680404225357843603510377540827030960740606664726845963958594906481498093787114881011444250135111882488520863272643923886164137242617614587726831519750842676130467686112982156975438759249621422717751428207394070725472991775718165930571858479027659652421183168790576476158351518578036943207759525976374882706745985155986922104758004186693792258381792821100583089872947998353608450913075919746683713329275143046278232154118369188073407531689791323636767520251665967220327543768085117299596567222512561664467750952651735407083932685031288562512141253822466614581420069664192901632005310486914924909949911271515280472774973510919910934386871045198129883864147814443731673560254590039912850813252562753635003555967058042079387954463583395980160518287518042877088625316506978816488828400304971327533494812759776004849756547519882120265018785978726725885607866728946792479563323267960362762169507050482622549052342609054818382503310057747235645689928727563530297977595780209203813681489127853029791220007210889340177891100093812193411918759900672787978614477423130127011878857459406819857368611318544285149574367162775696369084760915468533863688972643343187721588280534992176936642070615759739382592273594468153096598013890323895233930253786025351807841758242433583078975364887533708948673711743033317648424807850181126227499104689498042544715002731463025161499345691244966132982098466805889092479951121906188888550488245477269910905127125029402718232710450405023617413060006662818660786888932714049253429634083854680693063939971996926749850106784521554725786294551938717057390828902024874543417918083778691862726672822679111951271210761123779455120296217570356897572544113464264783441995928154795643955093422726923546817567890444023965503112746917690105738918447104228932771255196176291262144059227087137632762113649137265019479174170290548909476087659326778470547326644217971447297342513918726656969378842037286617752417706655787332237732079797481764426829325356941419917784348993324325565401172804364650892527074740805516526004249692050284839847937792450617874015064033774386794754863016440837407266148622042378649068387237714184617676932649178717984712455070492942525407415316919861822944737739258116657395482573961764612524363129296183507755757605280234017009511877501634364870548082679260102799122017173883944380701753993925549454897820765811778772829283378088734621431851783892849221702110163146086936112767255032557474521762668154362621515447267040535422893871249630288496268387227520025539676050957180742750862550484778876285602669218124726423851533363290956260373068568256977498330135808216582332364559857816376255497538886463453257176326732667802197019099248903519127458426329191004155220002661158063279837400898069425265335229131156805125873911902189029129438889308918956660331262687621245939244066407847523950284915359802080801326271860852063442067278519883696337843097835159464369075518159142880897350299123127133541422843187849309765696119677045734854989533899660135689881346305576909778870520295324868163419765575479902116485400771340188914265273961892316174665212118870063498677090865425845786900652211748521043235556256132712195149421319392750783210055398521601748008184575535794280825171834318689811954498988488830838798953897060909594690326298316870931971938277664680215886571634048789908074371066817881890727054841085373238900434284754902716917111487801153557050304530994248110820865539681332189108342206561061669682047663202401049115637829834376971199171273866073328888491994935386410121078954490829052486832872847216538595508564363688506031320292313558447917391350100823290959772749734229249999643639175461578312620954984803023900623061012927815161646112592960426911497206557792570390957326853692037959023990614802371525659045231444446269321264566092646359693687826959547880895925338611225143109175203601073599420508314776189477443300489691898171569640317570058600584991697631221710207663666147223733370197749004698769430575453317862285926418175944546708764984076318190422543143012750019858736136080897371802316586886997242134756262386356742771700020841063403319317211561477701421426034394695937140726089832012730752354754306598157842572043124469089256476939465694501342453566836723844105943611650967688514611017911634701307945980611384352203228702463636515438187101942614203115534627303284032115664714943640618154008006260543682811150425272298011778685091184685618260944325908118764949305784134360367963028256976351429855229457656627235075986407319656958089940072652760403298546003940751634046935413410332532243863490176095143737034407947837398703389639274320464488604273092787814444347767510420155076396774423791266724640297765795336012741379544226462628389123400936068892115924193912373616919292789505159968984722770088253863436410930961593343510787207525608841070343740842909074515415675519877160060202018074690851674876864285877444276026133175448148852978834203222556063113437370511601922874599561784334534939807693711895947165396182127043812984198293465289535336753079101452030481743996821457199837695386094383935976645531273507557350020241435908078189924137219017900217822631860640954175142409036566579937755014118551949890361721118920457016711108052137133005219575751284519640952408627542470944416760912165214009725252150325908239142621072504483828161351672103188671240909595572680153741588845477137505069665236663914103710086873390329435688108040452901322991682427688075451117744393403521080922335879135820017270095755725054476435580936813934410460182932644864980685291163933154701567172442045841886943653802625089793954464469296834644272696420802500925842230390264242493102273074339538106384657183580331718830140390755253411395288293360115231964366207306332661091736959223819841191915876985515868553243696787564031373473317883721355790100567004304890094620111991363906604579079058735254608541038198439703516323903751974835175911541984862456212465982274704403321732257495521508193048981691497798007291136455786669123297203831525444708207008866896411836230985275322185001773885256250282167411353501148400783134851976013707468781367518583867399722479543308213783703223420021593945770272736908052845137780005745337396399594396851973155486449542783730459133855612003119707721241706295292166333919223322829865781090287453549855500634231656004846061744052976164249293796963012737219395332964033651530771824997572107011014927805944722327093817240884263596023740199759236362166455829190464787609111039590744001376967390134426417279417819970457355076979170797601255910562349075815715347436349714677917145696577202469855558182995012566757922897235462206064522709424827337427237337565442768001670997248489792911674790731803977448432628811160777437684034340120928680607047853724159201960634982335366285087201595735947703210645976360058388941309273564989825774321303696828525299157620718976725842808863077481072060383390820176978838440321883605818055759155142194977101796542075801796157045523267788216012239749669533871823940603058565530643556595200969463088258957917210610055765137802952423633353828211383588618094912201921676519858372666379775498047999129732223329960862365036370346901935858279376914196160840807378555208274597642275429943299826576261030190434865356308448742547478709322876236301439956277464163304999911137305337115893434390208170218640977937483206079049638505628782331936580622327927333459372407555582970354423535455112163611751493295706679436048715269745892949774612260917340597870700887243637163864784150437233012223078084568719443102420678814053809006541396541420306637627029168322672426165093750806108516805952389116046997767773364606214529243411046570356628446830215565559630461970679566454365816806861771014401623709462509638878491058318704370537924913127684493970093206410720144378700679355736616486971674754495318405420760436505515040979861488927773564259982573020890023649847714953358579407579216941146724268796930849814934204224591310036316355974205790221584015724935772360521553559769812573894690172684259268333245610201772130681148399318677323945999547203186192097617181696424754685392960761452973637486839964511561488700086114105072377689527609537014152530992215522735748209960210643890061292940566721426037419383505710849056442145645553940499974730683244165028181462501528169296209924715569905128053867129030708257557836676980238355192020861597428278750879950458095985572737850616244467466887740669211085621423861483260992780032582750003594230164711659085246380806269746147230400948074777394410267715720038714185087115416783825725108099882437288587280055205764701778472252717649608796390986593274872596038083278752946546598240731342687267785591918080023851061413548148728263458814054779463637705739592693698519973485659381615769780429526179237074619511937988401222956552223104442618295359941263757521992086134068945619475760735308792220852997037881498438059318068180926095943977362466333371607244768747970787031247649508041563182033349645819921524628334214707486617475671541896524301221055306532026589475754390136438866995441959757708400060063493427441507967266181092310591406690671127901139961478553791741284934293945467786153565822525186018539204502694449391796330556929895724298301953679743467422863024770848036069890526992676495909085617597292698297482897767645034268359661730540445557067522400438858090765724528850188126288821547497866772526934299384777015606740498674352919383847262917301912756387056551779069463847251423058321571413343946068793208824754060156148254922931068767021162858245113261335755589259735954140671890118852413344561859356367238241009905793933038084977853633688880573658989616160343572922855097747306735210971549026212546556616760883474309621784389796938984266071437973922339113053984497987847387308189674074684749528638318384777530355480321777226405247225412886830821481299030762738271898795665786521051418791563529539581325936984651404985399190539132115276418673205274940721176203094608978695642852769577418795922235172889918368340938312067718367984020520689062816419799458022732517718345928967616004389555570838621777963620030479570269305810147460086835281977674670780321553701631209539483249377766530750937609708226215946711697352631262980074538385109056820323513310616500919848760388193405247066704362620966038565071085982803542271793370879087528997885054530709664869605870658938647676569345507231226130027653108294935795456910403714019854033902918856207992935091912004581502364592324956972389368270901239907860947031846473601825765164927769988394163667976568897710118687499664037067825616967139566863725030416817895780408701489964883007349667993413736730892676300835857627537786340803585081320693533124157932125635355818631733422227220832538459239346110807201152834929039799018479055548189282479711854789950854190278404316527983373361822125582763157345845026562912889953816776941269348407963300810266546589468953572161383300909891437136095884796071867206210544302180524531517543023860219920834141857045959058920426180725336110160212841608985755273105958955547417050951949227159900443739314047778616912124493932110490293616599590038255975760000290558210079730032276208443886275999244818794246869022550650842414638689113720899107934598219366322866325885136469874941760709073571545453973629826166877266406603443999677841000176317093693535015978275242811470341495326191620789518180087677904554212193714804146956712857218015379717137734980924074102083625300956172620493363028512952454076436392659629269073693677286629532299217351241161859728554428031465675717622978761112767053279163572483311222486903898991906168384246948937432592569515883145791388794980588732824702636479301748703829823610724572586062239710435805714906197242965227423735866229919547384377689667725606512228727115634868472500923022136429842645946584949928188761187907311283123615866361324755526325165385739318441925447070877521635098554896683160421649397409186011576582653868043191813425553616906646736890798262039579305544944101389743634953967494451950600820720572378926550359585381536488134804594440079984388071777207163712561344363065881638250875408833446187146596003900286819031667055223662705101720385744250594834180549255792671918567238035371456106486887612910450465088139019217610640630119799267848334885423153901519503953234241151135569238091914276766077238510252048627944305449355396393038816710009932415159904362981682894736575376465335979267100770500239013905976601814036949828976366933703916360313384823842649323028876006215428301235662759263462807520219004225213992951566030608540326700989369884078475702288888728669005922751089942586106478043213710720176510348993036573263356281550586986712592801537531351963319993137720275743802715293070249888485734363377664567221213176514237771571131440119343358948832368976397925861288117819052277212401951165929622450063654569834515213132815377579246674539632391405465922191644496381690661990255936611157801056762870585725365639008472968929882326996357652071511785958367972185880232704021796117992564278902501329368457081966296807910140092752633651776814137947794865112281461773930197007901505698389800623729183869062939285196634398923463416539722435915426242810050469315625266771271477367302688730409206413627711668619569809340673902995447276877561935795164693789341083779005985758074934671824177073301345177841545939181243429247348956027999633256159975937338837535750304055436480370187585239476495240035267664523467644835400331411081281240811008851748705945580544521058439696313407852227496964756632675203865706123687389075646312981569371042495082095848431742653642520377457031605715193529888342623703922727952751028836923733791175116989055802822127831794847132639111019900494823576236997783278132730458614963647122495020644561430019084289442416305081681946739537666836879237835542582740145358790779637019459271945673475655695665540558988187126852088091584116034367524468827098564605025255539001153490545352254078999367724265655107841393651260343437156958441647456761310545100720059322403864876660670383407007151120945679069314082941478049456803687500690385777673016023457360518331221418514553998818303172690482936579758318422706232106039306425610297722105054649330033448550290325318816552719302486575820569386498457575631646508926248734865876136020806077244161763316149385693646883696391880171670507311021253316843796674471265312104648267045500017268057757090524679653370036244575936066481405109663034577330243446912589585003776245364218853938279769980499169314197319478661773047361358167225930897462724807276403707824189455338492906171988384213302064524367780550764907935827301950404655703398396738331082761552217741336842066428497936163418084125267398894923148254564804814864954780512258906614739311557480863100367351462733241249035912822147819941517579836558238266184389870098298241815468899295273658417764397389744874040234153042723564291313293598725211952496262404778575680371388657797432046460165640081187958713280546846478480031748160672906575912648300210034275996438064989923695816196968650342325724017098277017555077973988656587466079248415387899738695147683026612749334889977698781182610261713512264014962872593938385874873331173570200446025885544357801732195097781725762335423054124532687543687569455323651231849121794302068905011463932508202698871439670439864521605133620138370218714950541790194788404439905887420019094485242569206486999202494163610753437770884200209638682991029284426641402712607348076349494369675324846702310456776708802326269318037717428549498038873745445620279195623016907718122689602289602379429354832372221132566965458156198056717295462962862319353605014125606182885175513364171979089463684798938545056838593497990643421859325870635835255310355581622687047198796445093982102297530496964050256309780263541596048097999102333144051164195060963039270856000188764182070021844563867987537680833595239640361442509406787841840277441314618930539171767409138961228842400339768956373475834499423613345312050226546438488927491105237036176961916011830840736712773832113255235267015585255362256600166088881112573599490646185121695527180275895911503709722930230816583452665911302675141559794957384907858926379393771011381995682141428379349068501292475974612459886325265103089215112770136291234924049771610703025630396495926461860622791492087616078008048005707644025071102011513202054799409400278307214485038230182283827081201494692056911619514948413141168701958720538405525837707982940962944549740879635907015891087532375972308728388079138095459119233154197032283294495748758921605395147466202037055975748922725929808891616457449323865174685416101175534697320700954283592665882190786692093734251467251522469810863875095232699296679399349573107122036402644510971271940630941159574893907692441646868553160333988077161468251157864720981226994670140474392803878725114337601497158527965880400599534601453388246664637461119517942114146979582469436039369898110468559139779725728851505653588137964936381953863083418308499280383888123740719955284367102618899541863526463499088593543315808614199021843658086864312126612155721542438773060726847885756603939838129709152931880108834301906191176359409765808755250844792584059389476465516979558103029551274303282788465512163265188317574294423323370732292900740494712682993639875984926292550393798848675380948673900426483517580001899543593914243962782210243051288228719810767710836289936140620605433013581706541379559440535713994278819269605166159610094779873795050809322636456331375369844890521684491640561641678613863568486691310425586967335921400055718284940853326721531627234619720045613668454687985487578732374277199510432996411608996982105605076082844025689063629528897379368614440157460318730157357031722680266682590455326172427294859617509943553872074161839734511947859790781989500394756411950164409254499912786542312305584012786375508978477511041389992503248379760055558613667399485467695662121495191875901687279364050081912782252941134954590643145481607799098689169513119320463743839366106620540390856595308688081488026414393873998620379218369260383646963336273692613007133540195760787251711346041791130781451694803578601128751737582778946341296343073106332451815963809332079352630508372804198600761023153826530015499486802789259386595505529384195258887873502486947469683545040665017677957775187722170568849187593784118187561083921787590259925444614601334664719085171532544343524740135794931207114069075382011335887013442175868708129740962108081235458627718501018318527148543595964827627658538903401433884355415634366886069111501825914007193362476013578644392764503414014582518959951103781179624533205419515826406947516078050793320087327881429884244717293453896881641095968089089565500072788059333197507820009170182825297209080638750258737291909713605056233857308920512835713594054645433103053184584599369888906713507379227209892284599604953564117356282872226347947858720783278185236155019181764119509517454902812130880661963137831939968296607705933666740919440975028352347651889766979877808873663249499729216086034855847391227729789134221781964028814806272820093723756798095271178761962302107022357026125107295634368317798089906234146992833550253464782341553581313229510483910542758392736059149050044034826548170165038123777954943538640313963814199469743767671034864858818829193806923236717848824842041336063654777862449511034617743131075072487088060844524141104958238576833525813351562542957978149580350032344276834120535605457548275090096085695325657619106676789412027049828808194348119095900971225025141579756292309788147307867228488999973036249721064798782926546915456213107950236909685542106546836060821648113281353678231937365763839170843881200027927935731275437236069284567757157657618444346035067065518746048653508996109613830765470761661632812137882358577176381122045269009272985731250613996481382431540166753219571992958949856625831608214109208118794281919584207050789708008585489265793778034831590076470346004763680043631662195478103897701774908503750817925945278219624290157164228353796919768559085738751605340334161654306808074285452844114535882670535380423692648275930705876798358789439190458423824920254427980336517570466248134935577791818643709293197299939268553331111361815032606417271409215918653607105219966618062313450478297900796786194738139912905481109690780229452829857588850717690825160155780709958074801243533391738405648689414997110494815116839183822577874455397921249530656421317421596874532912843814361959355994276968384734066938957421970217981870465108093136927845935699557525946318811916762333902851861341574520677433573507831566280593884992702775729582113257039405851439518512048078217374840919175944125639867161070972753275552814914380756618897272249523887164786353091975968959576706884101466568667045658344307196486773325294002784193842304135074311183693352843654344044307832299505510216111506895308438265827710654337420856059561717717988355897014236641771563043569919333233022451606149839754035932635863812655097342823430936684783510517410714436391544764530157508101341142548773502027242771744149677575140240419461375425334586587710066014977765241389899095238457504855541833018208805055836203054605945622342674154857445829489969845054615716536337626145109474747421507276365771507198374079063719504766864200507316002954576817612670262274181704378550408692208263577112059377446157499823782675574746170697697213744963477611986418789706807811995609729819706872526421615314997573330385831736987850417758758163059849469161759685748160285122772818895180050185511513417193918099481114307648683008420815960397525125382449473581426112339792673291761254814328348254387941819199769376830393549404257418979417284396989000499319926120672081428701808449236679373375534587564164778022333797815368475636856049995821299314913881695066829091640526553418991049354481782264397620588334083676991478586451128157752868993578165569961516135896128913287077148129440752513251563633081789219496569776426430764329609014841865368233326143632716309000037901921291718951274983976205915915697324323251540090513612405237944917947555799445926500568160717116871385328014261978101530003035885496135128354076978818948132180666267736201408810613560136389657440411716066637062138927751872966514795348699641836712577244116003294302184722575809598121691914450581131709543565718406988739568515440341540558813353536533522687732433516328915380778003806180295026040821243820475765005602419032204646606693698228499438109982502283449006493062381918908405855913025739776356624945107660394051543400076471604892919845945808154035183834742864858733539658049192852067784425907769762140919225892287718400149224004691424901284634022175992802329890404379092135405207470136473500072116546234076114650107342993110145294690064624895394623230871800428601879255111797043359223440700528412234729358094625962747726857066553345556223034039497347031511656640626715250680931957182743554665781455429636846303403128351773303393150346508174011395488436531876339326887358454190890894398959918745661648121148189985638844014579472108766888582105645742473419795534643392607696771570905812137273466231720956291489402891011545033354251336788889899501662710847497212362759211321031827799827790874854593121061225382693951686650955282470760988755409212681621469012318311897517525167215634034851682739545813033002825082159950807034008464754566100010196845970085423487908314539656142511661625929653178379826407200382192053016447315658315288487950976487356227268394784777631036576002935021104962585380632129857282276243911649236238390756221634197288447887850870959911543218610315412398822993863025764344472187714471499585758087441536384054837573255290078645285307068518538791605903082360091941994395111873196562502592604823666553305487028781021107927896700686713864300294076952152724397029147062572591480800140456084918211502529541755321638731522339245458218055672358248328765548986012128720104820552843153571613669458724356831943228419243894320613021437822716820461329318444574765861879466015056571480584384997839435816803217949426397673145387234930444755966218328608470922808875579243752447400971778989332130357133089905235542672851421597746920817535666876511359877685255781918342933039021264792833711471993932374094190255583634873146852953854074065731408800321927537781510537561985556385819886148370132248206660863368008662042487382693003176116630525008704158645222619652973883926129469262187192556126474662593034014754396749379336728987959809417135680697483938548253228155596252997975142565800701103881661061623003256315129256340637647550458038522554475375107159541502048089941155853954924612510919363530275916533990056279835787106260378112224259912838022955673729129929837114702465008913795150724569327697676883296351182764383114096562720913535830810057711200292448495037009974630720853132747023693935760718503486747452071779995427162341324895681635362439554004883723094008311240462058879336121646104382499338319919286242953663901738565045753383965922425439648109260863268189740245457742312626492403033374496444323914979407239694737892193896761784811819415385157020151475550479505330423921225951887868278463037494390100248392221781489260415522254868016990763150658724478009773471255457231016166478491083311714710748424233542094366945154160158793021395212500851007299869008675295009766518581946807831295983455754916939656089487282277899810669497798576865927159408393873762349355204690755643659147663852173783917425037691122100286168499951262328585313502201847103571421735697056901761470897281239640083417961725113683395855964653745621008738397779539986384728242118424962333449884057770978595207088556988498161507232339243421019020962661944840987733801385468303844457315681519057403964961104026137001517016923036908364581820123106989141896883102289742872679328981507282387233081149286812921636087220083052976449695015061774093452089415036657914978320242052300110870047699838520081344848358579132592787349102654780547753644727683436807471384259792907430414293167508954311625967318778789359298180738117456218171314755990754879355915230112146850723410965132227203104805550010121117289521457751798179661989581209236351235131096954587878444503518249170117003145440595015920928781493436539441176307896527393123920447244350519195738971278961041064359002151073119804945259512416785193144194595182891818046380497906105413019011499208181878742768143917649195618545923790710724399791538228690727463714290546922896177755558303920270054403265978983991775826690319084573148721746953708850319921008037829659055176892356418294887683385429318585320270175074151798940917487455135847207190070331865384783947115508391838330595349410619952668169765991778119445916524053922948878567488384509635384137003329909692384437907491849670087157673258504299862756326147039472311183320185466666173901962143806275490974687903552152118794856078735726894841070946030351267527341670713920413166558519156674526023026699408478935874992068439951813228759105459338566967535913463791410326534934784697713619171463035155269320924572182274504924331143434205043747193547742515941448825355219215032998530666075325646300490614006532531558211960661222338668823003474746161219799694694949174729852693936772932984633581100248289072121758894214965018522205222799692929015482508098230289913034245593678279110703579819992529469847607304265623120993662456099510720668656580077219317567030660621115226363425626810687709917762065659960538321171280702839405226159910904501766701806637129465997830488127389401041118239672772923687620261130459712327441345230043642538569313328545367433977771210671813662770595455116340067502180122359510151408580817202614629942460634359778099443407549754939069617071767134456339307350468063981121115493826561158290886495683233562072540379188478432107456583188902712118191047488865412538741506433833258054929576875838356779035712320869696664035046716458738921992132032671928641834782204588839709918038069935295245701906335413111252109893037227890330420230335210480292261906920477742723752874393232956940380195319874197096161609716629615337890144834036024900866723309958099270893630307839176891880214019727225330929638442704418674495355296080051079110879726182875679489636551456887379283575463726248988684170077569878571048359235496399670290773717422383625594360336817026725087906419578874191292463082935787670344443586889748945606475115894161108371352889266622904950631887544243819914485266235179866660394950962638806984623179885257592575437893880966403254303935692764880139943258772870014736043119141640170296382457193527496932420153984775355405039047204402903725082384420782900055966000328580274890574416099466789852319818126749143230474863209714612862298468449938728236067950059715915442381810341314452199436657602572028751922730693304293222203411971647050929123683634001002444816071997043282878114740336745705408965071065659714552865784802163795406384903117692193345565649180220216495915256682750424238104727027175431805949631211840604479103183296606140742306821989464724761882580384370174348725663740465936108713473564093256487583537966608443233293899092432853231073538589725841264688044784683130905427836174559950018245768116088104760465797926498492190112368404273498196369366815168672549132739527929575167763028691527352899929798694175364884436626196817698214761274807641897874959437262914471753003437367641650298913762829573908322428030817142061401011328024099095712995015054522508452787257002743494924498723800835374008628859823008478818232114124401683562879748644624138912127041056526728846263255973808122573605913986423603213736418083803085503332549102022731029930831700849864947690292829151765865401695172404000031786304424958986149711864666736182757504054853937656295812567515369915872603218966197875217402989607490231703717206078840725069703464094716410294259023536800392018057420563321757072757907310743350701682489915512847040881658529514070057991740151533352806828501054658947652821814875460711866175619012948222711170373968184057521513336546467299558411624495263315873319428741425664748467399450323753480803005304171072909396919674748749896236927607248518511567862464197055596583340231613790405476076816116835857509382639286698608872884022581580597479923492959762613576135387934733413316630921735183704104023477871908332583947427576428463130801990842391449463047450210745021922363015197883754145796311340403804428653743295787238102409132068216790906484557392786407339473498576372464130826970237813684676206809299645342601409762551848328572527329337806786446186128863287471573944939676190663443716026597884529631730374485969892988410563558983379798206676013004111840815810979796369041284874969854517585563909197535241560548649128422235008832971886799719756487539353544649204949104644501548004173243447487610254467522922703041774757566805197873784210352604233022124492708182988312165988724468061822533243633437119093059506762285563042161253639988747945571716168593394009930282145064232808838811070895537357316161245272055841550012861257995103511453038643807345742048712806003593249788440433038462583565280356285820883103782113915259432027583220809056551805890444831300585316636888035148173549443772845239932909761096831402610803682105855762154332386120269115504333466776971719055340588252711876062382388673079412142478893890532446720468510214486897540981832136041882582800261788955467270163589874407840402916865851407363523406269915131414069818228184326630685717830982372377445965465523286737388756403152991944429815008887684778621207270831890081968124926449455109263209948843611787882904618952627210201021038591462942963717891116626733467964802593399789425527842897540546837892222146110713416400042228673427049870921623026599891677418432363405494642604461978291353762965945225835722741042799334007265615301962536843415065153079270743905755133980490338422975379251165199396769612741358885981774388831733567790122891534316788964299964820213987917063387542714179582804793116256261078273902832904691988757270205178849623904273991479194282450304421040142822039198919523292635649231871036990810164979935967685596978601290882322984281111109336539838764487908462409591380462548262605192732580149173992669796855287636055545968071205925694661077641529802109657067244409561176598859269673166017816823675544081937122681326723666470497601528466675481942186211890744160876682700597506737071105280019732243745867292678910166667734590333848749243013887038941807616280532020350283452038733387375381000388891239974808288699742168940395042875519099395251662550687072000360621993944343209425789527926313935233064414158175871878237308527213393442901739640178529689011266107418838335110242193708893266697957314569529176413447929780441445170957859103238857861012986537376124211202328885024580302236128613444865910082640309930357259494567608983841362317376940528525182312625745655811420521836640204815552471663000277379497769391375921995731943964564518876802877181503853711698251750490297562655368072358017240885306367154538052110381023999132188199739598494203721889863253663030232005288358949760516173137055351836991047150692870301504213211019295858711814630598122744275261752568637749121450729231775178862636869434991713933685111345039211924522101115106132644947267139073930784411180054987005102293579233117435269157885764898330284889466330108229066344244017697424030417043581432796184241530578923911187816685927866316787949071671047479111236089061772511858657095579726496069913958330054145611534089820311657819162923667179200244140846722931267072350936923510483228467874283738175760626945960350610805507682281247448047041600699302502314281345195790569635359191461389469383880692085250179455461214752293821162925400900551422487193865002454720939458684573918875962646429430977725426588850351071927950911017447711210272750640181719470328642353370545554218258090935980415027693776943145141247804034379398058802124820904944050422977334212867994126576970378524980876924687807227359480579619231594915006798331974281406194881587099890587682888204628114880586793189684385335971450995192490248508601715256076802189578378989353339040757051076737772788877580008793767238652058079516698621587780523238371864636894410403877194076150168733987357169314204482126551486752443528987416959697860169377575032133548046318243728584806914778470163708038001198384213184986788240313981233861852776177959887115308069950779634314711993187120826941738637681758065961949019537136602602276510255264685919466802508535465047858173464878757201350002044356206778079336321649108246989821727601061146554249854475643660423400964589829777753756854604925609567506918471704385231164327905002178246071975587004633597133250164767708309379980965263435232177253795493273792355343753596570755624953553552356128501290301068664425202435576299741676907359096027076595264605275608453427047936079669417443913508611682224764170177420332378009169178378363853380608307732931546949896311698455309677042816448818525664434940871796292568096149338119500032265339152679865990491258834837895129235391813632758663316554392122422245228456866703136468035092225523747812883026603941036223569644073159382290323385362312679833571492682428426837065842073978810111688952378143514366831132108287716653614205833638874309902013924029038594898916620221493827810406962644919875086841135796513877632661929111922756024840351897359820794675530556708269252689091069552250913242521949630600889084074527816262879157218855210087459717326558949872627631165387762598521052813126512404707588268243920389559622813571503176376586549206345677325932542385754042492370751085129141128842503724399172389529701645754448193563577911989199172264217076219796373100449434314721442976709887505085120789556505781518069030792709596604370864063439690342456849741758200493101853142465440904734574483521713106680206919631701894781763576777189556488641877187455151944629253434221251747395722069178137509795049398551985824254309301463556708532770125821005474723939099992901110480131168848856030863494837026107526100116421063739561589023633637470267929016875521338678410088893766938958489454863042236166521332767210734554052502610881040821947639013566758192707031376979549148121363265050027771293230736741800782957729034037497870359192494490095179707518776860885790057667070958712690165723383612458757164962408438180011592826476882676335875586545766360555044600958495453318637299467099654434149893754072295842550252628592406456772198169942204892250898440262258197135168487363400220373758280566632234521119153631148684294904036601117100316470573743394743708975423480245021576098929771429944368828087831237985648241250434453043645230282123717915099943235684752592439518711112899764923592115480637476950358909692222577359335634578438556842434492680286653040367180928938336411813200210582223111706288916921343248356322712770594150770776528594353239423410960168981588103590170690421083916940686101988708229688942972202935776379433864237538002547785379200635504446764879971367086800401088550975577838964054362219348634603093137074768934671296031175443178237138566126694195497854629719228028004474903131394027106039415575636076660854629604558033291028034126873500450366614826057445285849797206355239671554963431590738819419488521626753329442988371610981736361129119424113468433038860000534286432457055653797154706726828372284356282451138531667236630806663296254472921706976144643611738628911643940701242247311266262989267513843308810804223061357397444628945305409584914741681998713290089355937132678125608616682701812972270702852842882306491399793832789454244460500662266804920723828830569103687038711354711795867185594071083789121470415585511119646372298223260570355673379949945708653811305287004819654480846267385793391603947219986160868403208310269689607407838118253989634443041189670353358854074796347228634020623060823433562622388837418957327238776985554380921009870590395830658564278437764077753343054712364949625766983677423367753206670765225791881436603121244785717987469970985739349029474644059478544827123922464584326405144853571609455536508066853357002589680167300832813390938655013942988421735984329264685172731478367445765289173382969492213286216488741578747274392979483572452539356799551556118189875091763031687545603076708613676543791366487904760898015007568067600771296303966303495813657193339442053164832009376999495824774274908180756061282644349134769454664097051269238743575609180731203765845909751837791163491544410581518477912939132838583953287185301654943718423665844954255672587848236020720557479645773687022449318946623242448067732909998404086679487234800947482538108772129104038489793703022722545445120186276657950427830215592698395129623559440520254476146024748482761881616265648273735728735469795404551922702262507076442568877641314909965890872403126024483771636155990259394628874519301566201616469407805081004560458451637473207090555909616621849113427094119095218130534760271118184745836830150791558467801059957815801852367096967401935540151361634801028636036863641008562611585635363709299119276260905212145463184306950623554384565955274365107407493691644691507209627648433142364457117577455107317979632300249046579414948761473682762043485777351556557103979157151230961294835994131755450385948191516323435748635831810295474075135638552287214323959597187489118515855521206082518576187165617248389070201815223938369892421530423919477834281741086327259330029719486793927080630945639766710163342707289760366816873557093774862020314301758347810436019417266332992288346684382578459861361353169056436415095154331938505185389980756756832243191381233474258504896864234585493074011418437926106459527714711139500961795442995496525931085214269592949101061972531852284541209771128934206248995732641354187268226331611207443217882633392742952970046976880015600458891996503620471182993807217216318196121645359669908844555187377081433581783905594754045025896241528501750234701395378301038732877083321523908427939653438128531655827684200700199851702063445651524484301757900720188003945477838402217484005741116972560847827002405270320138082960015163080183125979694756462153338990721170478261645563843545787661419182651337450461046984773351088160740947076304679296661431598121912665020376286416818072186666973487459316049820770892901777616063769036198888817343538221656484614011937846648203361830273068729812920291919164018837387939132088003097727580776344011598764459186994250870313314458427174085031373028775063110152078018798341573860107357814104904050466560339644946419206927438209715812144858095017932359525671465836232331575387361211840852099890890593846353739332304786748798785107027940456415424903972093731004728214735237017269654706844217092377670365291248145667972475567672881064940880462691843742860947263429527826077821350208123295908909892154634258035344853931188701417803953878995508763267247436308811599960667498796004700293764264134703661206055752138036808922068374054504940939000351615306823148269919611908452889101718527843026946061814172787680819352994982164096163261538006035207056831067460205949288072809450910239069329510967491315466181891383637669856029867785269410579565865556037714329728149213246817824549108191628301122099030294332306315925102239723546890809646818576727203057977811021198430600959319088807243777531399111082286974344281767446814234937142082043553125434663592482682471834130527743390880720665757704729647190975919482100491843741034394362192693109161032368706593670746594151517328206227260638259246416251390145932108205045654842202185705247818286093203404844029603178764449322675207757101092575524827278283625251811871631039587557942197338696686759687122337791812523119221753757867480895990351248762987401358889068665113858014530129580458735533205037940556053904765923824568436310708649125582534985450167681364085625265390351379217213219910003897439901622088045171290820615171178817826209250739532440283302329041210823054896217764993549176395177939221774341566724746713324361365065954549986258615688398001225397239064328651686829705499927901618555471298018315839882934612373687079879071784473788939804387713742785133007156190152916832753088842625699355154864547959179951711947581221256123093411233371031038786895964761273089780805761816750170337884450098035695257070207962191221488313717371873717124207555463818379368195322626099652406715410815830239331146647717218745690532627741530560569030648652423815382387780536004985813156060112449147159331711746722592599563390281385842973930095184683817484753034440905567759226638996093006980871649353402030852495433157475485750040958349497351168546997604439457743967888118922037262202415820976472874285099161753362433078661806623559847373745468770173275239575833448436737276306105741501033732673944769754282875238793965434097121440887550758397213151319269260692503184276811459339453093841264929287021148382780728008599112684398420382210905520426168407991258735560423018154789268933510163523144595516511912418833443840942668608320754936361880467070759338968428364459831560973869410864868923037722579280933850511231648049137934512089217575340553434948654777768801357473124529584723570537405609403849673643583462093866452390839300059253106192222836567129241815897384184853692749500706731292413955377149820806402005068659423146385199376160144323398535999226181880588285646878833471948393875926375659772617791253248999088907268632511632451659976705192869267389378987281637666699146023014989387531281242263398414397986247307084689663574075080716273745070202480493963495919559136260192318875454549747703087191680059341172256374423988647953126263021980224410923709269375159440006962488451159275560588296258629800590606098838587062290239103351973827165314016088111524108501428188768705431411510292391085889908170270997420849479387530295912724497907670198655388441818571867082480784234630284854978139246349110944786369670285898718048063854048881976918262692863532172476366199568879923071603457031364089440836443159888636394271694502332988971157738458040542683379144934055928933094114263144362377620436945211112715998568108155601800801447860765277396166686809941442602358996141085778484783079817838836023657191996843911914845418163524904608900032649175253674432363958714270975459803269485955060875755176174225913101287563805652134952645161700501320494843805913279238487802459303945803520198886106465979753322667776946528685338718805897952528696758852831173607603572561405102794629053742990653523164049382104694717712540705524671133213204252545025827921821926321366567172407777466698531875142013881707502304327175663302600106089965864955148497076265504517701056137263072494226999193670812768486292253869448068145654144994143897139914696569557626340483863700113901202573997158500254110059389336672098803616474093213541442275124731801867398269890349830454285096226457501305452466709779907641637747069283515077248275933557554317837985584109476246767874272587130236230036880833672252584171824072768965991241006188706281076944330018846285853793439154016503860168232336240765132347357353846972143784809786031820053013288974048087696045564476333788608624691058164360393217671432703297399177310083345986230852721074756133836784535068742218314132587828367815579174024076766473844997425362711719777649492060760734450223727742644155245512403902921406147883325039522277685398541716789699183501140900828443729199902280845036378871710342828600960017227352348030929155829867959114125034034933283242267788544025665643585272351594387947269668659443060098606599261205555354518088150708070363296607903568476251636666337662741110720951478480576557346307745883201633929492548897596406545537276851425262004771081648051826908904823682585852506271320960808417634247949293634516261293278868904754048998617810726102820772581149842677228434261737159621124050101663136530046732947085989198589349532224297075951726416154636913398838975473466403073715907256194865342838288986473458516330321345137121312434972501788229080980954895894290476978482265973348969466815505437698974691021672050544943299981022742351615381244483700565629971694586520308475095491060314090855417892593274331671490369165561452432387576180828504163268414652426012761368948924413914889310325024512842978709193502614218392375860960107029131383240024204522573159075878205584341756070125498260329765544903311063772024236728979006951049480651526031017659052672450294796518989792261488198297668510935151522729420770909234873044853658225958140042124637744392247723597856719933151309258940272206724845026812097662055313624473490345466859792647346963662272760445545857583727311792867540774431278095422459814767021561502471741789883365470651789040135779655233356092416477687217891785374938382684188759302402787706344542223252806728174177938276842511754798682385680672719399945946459180248133041825551853737604421140405282695421299268991799986000897379624122078408302079389590752181796812839642857731250513434882212864260083528386689839217225700414701676150764737406373193802436878462059645273776230445346956643049920350302226295519227371377496359949308944164382058520657002954187543235102935182453547741897660219152664165849808873103920394779477789990289928946774069784012680971402877953581771084590419092472806502435771202022001428472279128266701637336490477023959797401113556731647158458757928684890431926914020247190714543361382159115521705060951899387537854438348932497033691210261052651043735181998932299416392104805257970544883907192297957484853473733606429696800711085715864160311836552100825244004736432687753582301502771369728748531887183726432628755199144743480505516484906734781722004961107086818639256924516471439383933012885639882950005476888143760758783685371848899847687057298418555462718111408748640446455144923235241281945740711639891793546098179281297933542382058928964553720268334388686802470745043977601602178066650021696359335250304728051732654265528546391492944653543155790081002634302679486209727783650760059829738553888577062604952972742204582062081267638982982924840125208542766404040524084473504008429196134595434287760205673860203414081180984088981803934199687842971349235995679057274824596862336378376972281572646484202796083256040271663012903864859873495081436757195306342700817531463969670456962950102640767390556394294393269219420215606866124090473128207420715984233292529375333103497039769590851356884588527934390162631907887552931158953099271632873773184562931212737746665176244648444362017905770350661776647086707123917843664055096580729804034137438538938924545323058845991014997530124404525904531536154563085390964522864788265267919779173307129545082204654442955430106294728292141646990872223661655053885948080058021974181785205262451365979060318136555874091383776111997117715732906612349578382744416784904750557427093808036428974264347046028348795317740368770501368185865061310977178281463809928595981406078144088568341500147985002122606497647158805888646588380888524687831253181394562462270574890723165600798858642092403803706067530641656798716239388937917836228459876305938855668946879453696734950560493909730866751553448023180989048918631456615199037919242603274451207049324513960231544883079593379825318868067630631995514885331935827684461587005017774702806095861136944725799835371238782096919219664621562605809612445612996416566702623734839284918228022070103167844231553360111852565698921425609123494781078160350081525171734806838150124685745289449871721890482292176063446682532498160114403237940570235516937408109900802223385477239956451090834931579171818600788786463007240047723048557039584100825313383307520753043583298302359073440508736968696075700656166599953067880984324962722307258461140663301784429106222051561700538916811339179569491821802009444176946596811260123323886512349755892962579817810570991970536936806790948401511324126549759898025110431408752842463897488326096781494165151048139668535239009805043212197711572172061369047746482836428435183022461416871266840131504292501841289122116837976706895322972835316032272011156434974181151562186115989124390179049960580935739466499259394717431474383128111193369256518514374308763795619820180821106114578878836896811763129921925961777564935168344689687534707859948202473369206548270854994212178738296182887289839430027020278834327322426710374590344686830180373252268339110873450513728489894262643686119792006174693216344967840269572327548180132106230786914730176688311247176701304149820448110371093606167671100992756142350348007540430991851245776360631966632487362444765531709405592179600209186307633118438536676129473241336591675194956944546864535043761607292796284056281404853110654344206796530693056306612993352862236827553296469802229585522162010535202621608524726581316111612642124838753367398767527473169857690225735324525703774448631985200766274641917973851623627810507412555411643030326692094896194660179464721579859875609515290656857263402627468371630131747493406806812287387067921748216585101561454117305907790752386231932895602788240459646147624170180810594315749961518179275730322547343976243975391243778880413621604954834442952371680430699665919128432090085006561622869516950768563112404124766508310281070107059533117163748563405410383640630073647423330823016730577702808163306917928192103250906331309027980129474936633903743742814402811833704517760714591437795468321985509343301325234893045395338398242674994132517966515973074154000617792947404156541288557313253514851694112054038025224313220398875799386135208721658336711041724092697799533588133484364739508214951301718397710065463214927433650991977146207619628774671948889835131593135254913101516889951483394394285391874261500309945975006169134975484151747576935816476591454408277063199124401061116505109804594669415999712958609633404623098944696758298907640962250654848062560775737381002189199906338152947884149218060526117736200621754426953429997044942322857387393993349344254659582967719389149426867477878727299714967612302891958928676467944447948532761872564570379905330682969265060132801658054155476096704441343301233095955792355907004834230918273165702311754916506124318653315004208095965856552555833964461152387901620991075839721795852154996883834208774404095889868428086242243309250695333725109153363248454488445835936568932718311614915171926749376948485872494130334572931640491919198339085019046679933994280977637494914029186597507972064180190535236484929493250981295154390343702844104441216451805733048548375146714076653599190608705208260321198243113767694026792320141207623378882228174028461882179587851480132130461060615092737871897114878250213451941011754565965802625789016260835083894525093762836590862525006891052473056992863386963710648982962968988053048883146233639099400648454449058394476542815763704935247596441105155804631694391664223791536007208226097318240144766585574460886103064632460092885997653639617771902591896443731824075697441359023239945817887218565884310013354861768202195879726235707973139892667817930766594157876141237285772337101355961311267265017214470222613514474537374684099258489040995885856081784249413148213434987262222619566393512550257786149294864011336131463330279364050405669889033927452219853248734483390115693481044153458708241291018080483892635325911522446666966603222621404978178405748505679074973687456017685187783437221534669268309798600493760104779424348728134869861370161062116127090613613185019794205182764667917451917475593848315270389919281206618719952170382137458326026747192032225607682683961727203347021727277027722436164938068581178746976980604633116287476788218543676461235392392431711162789741187373196244415984638404154788658989103933283796650777656751328816369974669816232820116541899082811336481592396035950444173598145009141217325322818957985276156911197654122801782387373515932083506093352062533005059651641189080728289864207999214779623526541933783266691942691350703353679998130833402246873175815970347900033508496542744920553715852896711556304497164157363095754393704175615562634941736542678195935872514996728130031957540869090863645472335040488206462281054309790384810218290257345205955308828591289877363283565859790333228226330389926245600376596736251724225544124754624636873415674268797492207851957363801474980734254500023571737049788617512951582325686013004452725939442193122080228770134777410917329674855770964235857064850558812982296010064220879729318547265539375628988701043274537993232944700015359482417179756548095343406008820053549045765766941827052963624810970887651030061061936245828590557192127749775145652424757608338915671680649554670604485743994653550900192141764283270880110609472326965399040020739457122971350305267956751511404833938872368732714543648970283563088182275645692240796948553501972396411514056442849051344401175559019583835967151936698993371109687572121095554307366244931492815555105828372684226700800821395579075425444704075757039213789525139833531001293871439602877798635036544934486428240810560182307789251165212389527422999123855760046096056685195801665780961671514059997221817485559706997176342839182897878285954037456928333861996772561159820249042499531297604056199897761441185505056300005874460137910480964852114499569845787051280848498950359495727884244251535352567022396208825341930136149409413486132771540510076512780509782331350156878827608468219602808068439118828423340428367378952049071132339515555779739349007463822054466790892990628351901386069955842023617107286570696209602734974161143638172409331281414943000701130034108152270572609706033226606604588155070941691910248499805859337415297055249071276149333856668162996221724846088167429605142808079010680110394751454984076267790763029721998115738584165810518009551879487021767197833636985179633080495818846450696330983761250976559371181964050381753932143289021900852613979981203847384488805720995196845857732268386654662059051481672062105696161378989934379139777971826044786007285071276328064949065385719839664425366712932000651110232318080256087880952415867466823621100482966560503477812971846935770816212356267656325258426696264209284877866610573482210697526941334733636812188803787151410929655073410803869438157499382662161120691833870805484963496483680767906987733192050014573811020594390416022831092233804643044271009835893442177808159680166367536050083716198335687500733214560579990414779133364584760090556990591587817003329116626010328093568523881402755053504828818387107087307274070962159760246448766427793520436542519602242628157129244038262288097002747975183518547122770380645292819537516354695927872500542858774423385604974147251004045814393269539468677535170397575228709413591321168229823383980086227762288886560448006186776642611266137562021706928053434420083862131875100512394177213781931892613434488130926896358209036321177739368191061641192714834791606858677304647258515539566568655143070070335934176538301024612669433522216560812121019471103975862332782650920559321696142722201274705105484495017031789732473630251007515956590771329833907409235303779888827519802267500849082010613181224711208171341437502474685722625694845543991747159544369526488167469192843324137150212665144617473988021432286315583029578354531918275019917662398119651843789606736351174484183729805552357966650946734594718069012969902309672380414059755888892004026721707748024309005962975191847615322862805885014969578738867751788156321697364498915075253372750488181389023773804987291804477457354541129741908147282165414548721711272028444772187029422969184138657600056658909349011898168539237603499069030707021847133496139810113567059190549006564913260750627633444901686885213689620091336686865194283779876539900788586906008048141138753410746142978074097040155450535243112609443272298521630178353982459378792505985336541417765682558338248985216140151485382621638901560473086868162744949688262468695511838153561531933651448449940233553182108259065013544393521692686887553557583634789710694835219890231863080251747583409466534380576271110134447090724704866078497128063263428404884204558956714765529594964205742854602909351539800971477048045386271348107276938431888066032133301212502988046540915719296077320694946321758448195282579918018515427873730212745365121474660050779809587982190793533058039001383786646753389706115351317047622895347645491747287443835725662009924888339160683103446335012561545097639163760756207593750937981234552329859723117327885059700706411966299653694012586801035554442813304604822998838070107461827498951008242359410416010913507868390520658239278988005198840422239872773281495629959390459361354547395328577548645458956175641593779890934820898474059527235242761131744083944226491759155164172952378063139871837401628868019637728015757937072666261643398094530754417068589848322654351214966518775474986191110897657278026105141748160155562995393413892837979655889610795514578921937866418708324681871260077076317405605186827753864987063037842663437062133081398622482725390202829576247923684625766842348291191678540364654676619177230923344022889342078480827870145375165656790091881712892737166461529853797867506617636653846615873696986528198206340178351451941182807491003778307008743152159274689309335102798818943139329591201596137308120842746315401926024653557233490453162631320562591870582501454886307958635230600241294079281723570978158217208638505850639052533853804439695680230060197434107425084203761656784083849996387648493092338671757095224699522291412811195037926606899019727002561258345076957956043242318312229691600824931498597030425456955757813344149803546789414299876967552736661294961839573820349432331293850659604871974794187774353005267074971703862131779593792323451960187429185610623453288240174621860877395021936404294942163733923340775874101904037208723508964533218229824577700010321420150169333894923037184106000623248607141125773869639878022516516920617327680065493729552821698420429331716983809967450172621001665581104744491193260949423851634768978699269309345766576488305596265917932846479562982689832546972297937350805618875539346888012122851124547471701157502357635211005437145414969794220977875278976192211329988730870872156126029301307359486093324802048223901902759381608492782720092261316493572126625537145528221905517169139905969106408311305173528884792279924922416545630058181358030889786782481462082873946935543065881672499977215733831105638629813145176584785232785218733303293130453824560220857455612255142979036086065153302220635959169167148737502509748334360589404132373600297737007861896175735091116616593577334061914129581217377232628631585053005818122910261967804674963014126478472464643534736269620149052816896706225945090032706590704782147064890333595263335764220604036577378442073995146918708967334850424312350745679900335744656542187261209285292743586685025837831053257759814213817371363367040834673569215798249143130875167259169338538226452580826242715514620808428222039236424874377487587710993202684825492691110485460150702368956695804595933573956673125451285042441886133515448523608440501941149120895483215979937454332444953766913662835962825259858402323008471278961552680088168382133999271239729890936279771267478509266297815407785802669028136557866241109666940826514807982985234979834193373246440020637682042763644918741285027101887154447675234508393005225222377266545965526566964475014009524622237109954997230250645085393739048490870799732593849641466144633224345703504303317777668920097368367681495653129321457727680207396498480890456107019714868411565687432113000896423198694254008241254090088687416336903158112460239545310724417192395498415887466872507295229455503602859319574374890543569509695852083431082138321448867895405950212243977684257681848571179238383917597867499836958361820141761741645066513242630849565969616556680598046233812004125381191834441359486582376529825918367808479461511390268327607731035861972392889560684368398335195981669187402723105782550615728682121900217360566429454814577970288569933903449780496484093480588949351258907110292447146932563747334246469613945181062280744230480664944360735624953535583132026170531683001712969728884830281274271870096860362505798675906707431370918565117377596579332911318862256714131488715543310577422719171985243695803022381719152407784718699200116603535958113929481831588065020128438376990718599361958308054303974130569139772983231267728098026188903838686444247050612516212501262668331303726713775046034679791087316588127161270405230037153499697737900109419520173722144220340506453999194853401088540836203545424900612418897273524337792405939786305882733858837858341819412001584865913689989560035892177780638031140533640760625757812865242249659457779509326984462731089425397347146124254668252785548556735645162896134624436615732503582983499860472006288766455842163005722219051332206305963192017567166311482210150072963453046621644977232662628898877070043935005155456183956075334460818540066058285801968949877209464840533939293463662851350887437704979188185416031919119642775893475904264906027165255642717194446846027199975131228069735069735697785333336857099874541925960579028050482674773607296213688624183253992350798410951450802834403931270380613109724484530127215296940464182267094238038905567069122577999194392990343130350546139565569158060639936827192560684387168798120329397000618937764308970603897853775694719851823125681122895784792966311309723882965884415135417831069287638194909762280325061557822799449076191200651052031077636746011997710578459355723892971455300916504758318358229992955772815294668825742605041779323423754264154028444173111910463909400136338865946012346750858707219094867051597459338607400960506098819504783889320341158289180260339628089474768208923017697739279317604680648635448798118241591156815852339942017399216529818901344422034575493300968806908975077496729130095894754093006433971544611918204977589134055078548556042332383065678565548574500908712751871335782962998051938751018351870331796536266718796058294184931137635750309025948618510431120743716226572837520196802462809354780639126285299344846258000850367026011918427042813495033371175820726400648845671637596900991936314909691482608484673813198767759198976809532335904595688132571490401904878985069282729282459078881949950586637110210051179931773178246870408713602722520472074447597811582970546475237429416934456738501890208801527182077248118747103443965694570828656988133763587469384027380182472215270167887979501797846407345110340272404912681255822143089692316004228850598079225920079003193848015787940423060681429619873873056547433662595532879294253728546260269118437391154297129604020568990748736944267097099561897997878454624051632293505217155612565394282693043065103695173242810442042750427917497635666387051532050862638155381470581694050196672404409883905880964515013038818868992891775512512080128074145070858133579837352511177376170194788220241161634060268636943588259563722307455560260347200374071070701839365887971136019607666490997279473813948320060975575873451068924611671338651552996280729168945466390579519689881426086156676199561738440109072088245734934621695092430914768074484206956952870457864242781661703978188356390717161771674548092266465292352503247121847851659321421865230129314275284478102176722430482543970087748081813329994519584054587103020756603592250950145388932761030269448093373547983303211799931953583619933903985254476060966725625487300221795761793233162934838923006394240101060006582056047772897308928475107538601964710879462842655547056364109618458003005866249707468889354962454855910414059379581263312325051669359185842766614870532344028444271610171896142333651409462357713057545644432359350368293714123029917190714584396742629454830414358168385138177692581396702496609773583706940922157830148685388718644738665943405070834532934277486335159225511520392734813065690841135151604485965598809411188716234573234533502340655523728953459010953250724454504688469081423592900045418135915663812997759589623148935859101098046618217226124772620116859955645394016124415646526818340061342998060055615431796583688314634273840272612710525323713666100961892311813171142190687371960005791796202704070828778748662217663719941021986243250683199869535426490314144280742280411819840177615723061980342789744751520885167897999116338052192014814092342589746427105333756536640247091799113756786209345771237898874141899590039414135426171510952309188463521904798432566782741679289972078697864828436999922820949862487720915004257048583254833197174067522267170425509300297801510570137584536769741415665522825002084733327814526265596972057667294039391010869777724507131193740403564350080859908823096313443158188233263876136248739350829162527583027485658705559453980248136335495120591316943849650991439911783748185180724176285845867571688499808257998887087391751604281066406828276701529781728292956618611467288602369369134294955290793914252824903694249359852718351497410423982021867428141081586771034918878027117837626776601717565891657915718328004962468579351492133420197908889292841560058318924433754498432506768455611477184470223305894428408486480504347383507038853878154587656091088676140772830311204870046273931219103054800169708855442364512054000151933843511927363347327949861719445220355436954566420159307515892519736502398566283371799897943905638051606104815910867824382675208857743594328840561935605562756945544002514404106005295627949082992896180773643168552265498931929635932916906793014795801070358777189170251275084159076298333224892458858884179678372482312640903791104822809947287918215973240292450832360193417327274855668194290292039109871463922104278618328806353903713684077032077003909383744122548331638408119206526506193265900334470685997708453909038322201509124592415363431878989427490223641243447307102189111743498306309311173116230020499372942783233696915824368447947681436755069818771394234410827108827451374705308692059382307117003932061290079991224629952353772891879708114505808767075455955377234994811444378485482513306843160471768935663029429958816517225526824330109473891332460419644981444524323737742997204479496394424102564162228369530663738407738341073687619283160173874906753309339159026446211298029378436912382958420597264312936130288284564203031879467555449196001267877528593169456555603395811119052221091070002194097255059740418766485434803457945780496235166045751639109935383178410264524314021293595025368158557255201562790989416407321434881463109201423141390000818773380935039160785130745698590897158326072167178620805077092806887879126579275600815324686097325604963093044128175347755534570610562267419978205929870139883362393141514147270603874714060657883925904271939656568983867129275476480247489195449795243900512612373570046911136378290893588034319688058427379066793222653545662337447643370929956136884837339319682684870000413413501735262118269128209788299966499181929240081940681289370880854768344715092738518779103740379811941384933625572987244807937904302349792356644647798497306712975753435990599569583767083881994911746200046843303295708334172335890233832656761012070320134559409550888730096929533468128007956741886495432795925545384399657309594292975780305793436596932768468751461597744512175114013933320500015778042769345604500211023215933174092980781795991070614124853071605031702897667936301664879477609962925609237684734134634755646910658733147150478186838153618937479793570228234095664974502488575754741829427166093083603119001603788953480181511743501560221135510177059796320135893420888143099169597696773572577373414056671162209129943417362022036483185084084901349214745130723152694517085924485216915660606899743717406903793096572870908882444955834598597478870815117760986756740075482872931185491349700341009061867598283554677843971843438088093618261521622079622401668155238107999884242118967580815311667352383275615018041330531787301447427303879992352917030691261089182700660573612587151338429077835305960555966855426014928133202144772601112749740960400880182018873175353868743259434126038400495244304485159201909944630013765971161238707609658758175096464996719225476830665131408593628955364105753862957761052491593265003300198476521177059712395777421272150198149315775584866800137070175353172010437973888683202289114158913258795172478912907793495278516536828092446947593247495003879141400508809011968511682543451018581649859093230101643266086928723295007913678380531347216465271759964991536924563691804460939243130531443429340474122181820325305965644956258472488898227605756894517879767756622322036544656622378134643325956860504896745995852288125261616473679874904719179130381165783462916380920880157079485109629745197982676168094557199009855907407762342749056239097578274447045785336425669441372027139302124481132636364156243965487387208032957941162038155550556111261073822494845848674451069519937192765519692903039129530951735331425023003527481125517934806235768805975298467740685505130849690115479768607517703406963665434678706304174425589929081677517006180463767204580960607623263890597337447479091303800762229224538448765348476381685583237386239090885130066390287376354885637252694428550421043297955216634129382642788576376419060348926113982026742427640142916340972865237149608358685957040181771570547921434264726706926637585523642126574991494196314313553373800956057288316819105429344498004105849659018041327250105500031698485270483840241654054362776846034473374504111469205160454102937461858172835193587572092053068482107098246229846604318479882788195891064501895248295941966575173472191016838381987473876334476355132169271211814945267285869222729600834322346482197443090138300440328778354977910101280083951595886773987053783143383081096222083289689296048584642302776274108734862582871163302323186392306609499844469274576621335939285730580603623968664754046380738802557998845323555203086653839233990863929112739757290469895825001118609785897653685676779504518065847027686573501098631656963838966232358076293247392985623557863886298646694766900596159241096782606899080184875030568466060446695694373614273314041059570172182090322385650158497847674549416094223979514930170186414324582455400552626248243181056248325406252152465589880869427975378398210439084617963057277588015665113462678889727956285942299832562190390419849846169626083365287387335555206914973441142163963674344925822327487445076553301731242758662699390187070756576861733084523928612449091316350572689814675468940260407911871189164133541463787941656028536339937008254499771907121421968209243618643866621213641347667063079985209901516398055177693945667428810341660628191002373309334627901916137335886671688908601257920101535218492721790565216571297986973014944457607618727900567948678997965148616655390162473168545619731578061299155316874461888693448452824104997919618358308504080373508231593395605742262427196207458960228513191017547730417519926847592871446253793760564827505490672134065662652949139952533596243346447528348714641500625713345610033695736697148110946587850187971650869364712197179804652577090383769015983505183036029533929939588385823453341889201675537054116557633223840792010648077720177236330253650994763302077352309739652544040677399058867491072139929563444577490006431213068030609681932837031747020961732039385904212200306292889037973176039102388403079493142748233482209649971657282602363170541434270861050327706230052225255593966786915270243857829191988710436085617575398319695692918143110656235727330064585261452428318853549735398309025984131628120159804750949253080572255485681239982504225209157122523034229088012440317665952545910781205180790688932027986272448621266793018584011095871748872020956423389734138247574369465084403066390290965116313504371976591709371172305749847052916871923401117447850293796579565580391379710105203286161131550395070806680495614445484090541580343254172155599628951850326774219686995313551469729492837872285102397263791055964960055248261787956426401416003069240027947794546055810687588995332227120555344842220798931776758434250286978342707863754980214296538390071287138556990814174274104893325453547328086357172931976693046614869498200645147628761750398947877528888039169905436071575080237516007261745836502151866441060562728097683126364376483701421394163935185641789599440395150750136687229982868982315760594945999338882392598102501535898130670328564238983707569251242165332035685798524693825467299438382483470232520018438426339993639012982042330670237200465320392002702723915113395879147115157583198963087294421119732930580150741334959397842405956351266487379672970399568189159995970600180546577305798346378658054338969202170215921481942507756609121203270750839795313437713388353459985469659876892143842444657366380955647534080768857274171895206597433555559999043742743973983950356313321810536187848152889657381366613280731290980206157982583866366896387387160114963500806014722130026198584804013170017370134034672198410245473866434687488251531344994568333754764780805986101531024924849190764735321220171504466553438937251253716360585772620826227585594566713866017732048249708718407433933930898298819958307790273035856315047110918211812758914058120335538072747555459291819710804379234583777801469631733762307116394127071732063828491554800041028425417579560130033938478442354330531829702820465538937855619266292973663537263065614642277263232867159141153263556840685864003810900075224897174974902738696388204123607073268657425710051344295876140510779608133074099116337729120775416939352515719408900404270186651918523613140963997663789599880138913377093156181163697481443224579006734858069708446973207853596436474134100832584852130476089941377207787559365995486438421700274762379374356792251079546799982419917127347875786396765896771673037134259837383890886174102664701634215114881416513604040392545525827272606963873631315182292148095381816014013000072887706239592134600926879639613102256871320701299541808518360799481842769129706255956945495947750143564929629592582305925671527018507849280960848934680733547379471478663243316262622057717185948665487122278985565349937406981500852340266381851710837145724731989232740813480393207924925820409624653660405222317229876829790136872386204080253147382326651984890763908477456178897835720645988399346205142220539912652952054666744404307737065557686799089817630599475260197926845066432949120627020110438894605545931262300022988048898002436157041596246832241123546347944274081456542049735230871928959865483364539214248924414886020450426361426961472744247172501097832411513765608235757868411700468663126275385246510519518131423801565671279920118434010129304093522431223414263864078796688826620935485905463355631540161483049023321741139415972600313998997945754831550804909304342993667979833779007453755637389911118918341656047650600930585903624878321542896215026733606423584962044376750718720068942366740567004654947355803523155797797576119214629515683609601359827740302930743139396429123806183459873864731502871356105605701602161109943172373371173709622274105199601957443857114509172113530080495754685301386583675430561467072703844304191841888719731005877922938074445714056670408796694593168136393509599958522595621320475697958783385472673919043504390506109667502481771400298998331659682915766569360838017560620485795513845009013387815455100679344051806665625359571979169091235471252027178880644014200663489179130637863418100108390135504946936457942906213259244994694566887617869355226996713775724105573868413116692021918763193309431577920922028980048855246340983831816073251524957238726610819524894499039276761809278101055164261473814817994638209820696209935952632982230223369895419809362026013026402247285741716800332417827492611662605507863160404555517357672729025652440774565030180568526909267710367309849384402482305373886079446000809564374293983675926132228896130186346836628460191392634529897848197126596714190689338241871579065012130877459903600277943197776082930080689019445433497196867265469639706181748827335783642308833314569829385534363824912174244298106410346346243944063240301755767758621321219133118512685497260282019786572457458433498100524418105788307871512907753999103475625165680495698476462377677855335704439234891268858469527663517337265810625222437832346443534487137684474374525736719476969871613037673232397914186505618194791989025897107015386927560793503966197541228173902095971853442130640154763923886002051048363559353297147361096993784723384847563342573998841704473096234126475906690718638595611752706756561330192769427505100233262017247460167096272466447531574803579873820963532387263093241640108958315024105003726842730113324492097941031080398840464358010942902432623571536537363471567209230404378075817617390423704356809537505539918271505700664273771121936076374272037653795019859512846665817671195719476159124282909931161078988121454577503992531819432379018464718501714658574781513732319790658795615391697512141417789051770126603699625723254233819233230146087553578804115159361404637628823110082089287515581124917227640980239185774648650735195673247084621132093377270683072180212488908154583174542117789975874243146777220840467138818736842411490987572774181960669713396272982932037062099907444259355332610071265430833122212736408291079925430092875215952502924565043515308641008790945660850557669288637989526966095501108188422044111717386332976307578409453222055031468859091493889246358431558127737369302756217848555714181731178982020505315091691735850668224742520772489092229599494453571533194701183313904545468651407708427360672019196149748690168946618359136890392074775808621844418471660449609205349345954440777301171628506439468806961108966118010597770883800143375006818441339774407429246322257292762731657708936277168288853350452039619783917495050223098902123970290919620053150649419935036853215432407299447860143104854015366390690074875379901257590414714463294380048489708755728566242758704659724012147559512244849420182348415890516242447028788341182095010319952984525669771430683479689203409138512631958572216091557029240913794345924150395520131166381544805425857287702225358611028262457850871296508722132517149285971430181419319520601921092661035540626384642964811915692192934122206355338021816834844494476245622476060930155828833103383368492194841560921084755224584212513689993591860904816522428071596398853679785431561971056310983686203725066230015810352054897026534634967424960237144733438632457858151979789475529491358635124920130433514858433973399468318347704696623784443225958349034248955654835910933036023466605028212910662584026807248948166375328582045245066721270758771164818392776928482019132786823707360406654752661908432672110712522517158137379750859826524634754503501892143134202189068028038949304211343660210849410491678443737354339515241753662068235294355904637860493549213619071767474023341648073329018416082033725003379742579899465604279406368007037047605117156913355856477371474469739753439111240392728350810657327404202641323889733952699518314680180795644158785549736395417458990430098776473545962651532603503037035208206604231873936912786028946239283033200137751025750734306725935721089623526986995911311676398044640470363915732770944421300031745247404802965413644045366016742746643316513522666075075403052141358641643140519342043391273474804666634356693192340482398313855655309854622332642935637251706612979884337537917947859863345566459739415329848851161005111621161237449242296447858027252684970284090822597152234666224339603755140249303325981540315025844601589613810140757827180375456046488266711709450800255074724348957151878705550735661254538326985321579050711162809425606627834764069198706672898153963903026408438255857537491474799081714956556645735235424149413721053068752980890963964257120017598045454506967254038688612778937334519492154416104971063830417927011270145181692168894327142900936276728366351006960314342138314947363757262414681083135438783329792233460650429919183267522516646955389870467667925210552236421846883112458928871601578247973301541182917990387824617282879201413273566382771910164952434823754793787496588674010691446076692694227325651362874205533047817772641434983023382363535438289658111274856749872612372703444489846861256369086215400105263670084639340656497427126956179446521192230181188080626389339731639831682892661752247557878914607611527694500840084534485075089752631724153067846563037964965249824146941081002934288709565154189048462259220264151963091853562927869511262481295215259922661365524268673240191539765947784627473937299244350300726449175240361489283714462855825875407504870222818250645455821138861379840666936611979098401976198552595482571558819082271603498226170990437454339557745279071793815881364313796724214521885166839031248603128181358367565518165316677984801918372405506075507764928731997601840937597314667591259910884626188996761097870989568638859713004041751447311515722210980930479675125475561393927736032847636606675820138059250947538438205308134970067672186011518572889581232512208270033594746771363488737854068165381854075348195344643303761892150066576019037762714667467923893625870817029245650029652251381437882250027475963104796073669293751091748539572227461728713198779504539013276839763868860198552021947545345677450556591274040691549917944391162151238870944410006739909411205441155643131521251723985644356100857054308556286001126899043271120151736895140703504106759910931830371251038231376123758632561309986192073559649282904264580895929808029134030163429821379426528410457599726600584894267595291708556511511699151483224202786133138319266415606305998944869445160537071306147776629045207016775895813731157545820814105585618180319447881575159002482186585443857722774718042674941061050312012092951441052249894872809730010035510648228164033939910451548679768948687615156647657823752513443651188352921028825880528426014768309972868073325404117137500592511562764246032519199548407215853668562583983870301929132126436017226691912774644666246666228761921659351518882934626307556044290820130756884702793127347078314099271310971749129772161235808139501231594575788131697718707196727209076981075512972785463130364144800069231137618511914348535434610546092438270488494472549094686390667822305302256488331066946236169889719849039545308223752670342442296750233867177703470999360530360858429772743602580186885990784419729278355423266236871895666689817297712401308772310820589222480817292569185629595573655855917019215131706988923351608575470282277481197875879692710945973555939712859920003701422850529909327514814222917675246901123112960844919287009454359864234688991212409243944555484889112548658303600318714765200748792106812097847285231492890965695330825504923613515436959717102649854021048062866472983811561261000613450239835727858746864693748623936346606586033710677750571296239160986090943064484151869140340218806880902800730012810608410547364098876694815662696210475742467420992245184762953190009341041324487663680270527396472071277629325898751087365835847676324880421772525473102460970187880788857068602655153844322377088181900654136071339097763879468313137670239576239045832946951935591965926375888703760178683597877705908660170196940314994418134470711435227709453743708162590899284061103021453213734905141759144806535510554195791350965723083681645631729468260089135139463009715764982739687934495114204403342709043404158058354621399988241992721041254571415812775158367310267716669282707674617852772849783122619094380033034953677362267950813108790736923241395793318639901711618473780251624530590503913634735604194380680668581760106064732619532810886046450219126874364693432471006976547563428764256341507001094883645275785930784756112029635600612763939812202829307631126014541824989549839052267609150690275979868104701432658113888984412522170502633016013019177208859090281354578979240389875652687758236705828888547549228235973108026525974342399327935470422870929747692254522037267058225234521791982433808091129450754229306879510093469751358593084985018619130824159330122354086742645239148925673731303704924557429780931973570519571429930978616314092369678504744945150548749914305357792610954010633261256500370834153981981089040207569163952987366729033749472466844991736208027167530077180971374824446827321193652880408779194832796376209173046907977663125797355181339273257499324711454779980582450478832003617139874240036511785699474261099295916985626529193233262692112068449071549034077407834735616335210472057927632800005301852478370980997002410725597774774320515283028993689757285502077237362706016157956187711674903666650034255454227225551769403223873997784852540947884113714131038182140269528808032829427177802620543899833524641241158803613220875681344866723515525862073926209893857609965917237616958751291847535125765708147585856916203498155462806769929457657609783175272994587412534430883670929296314341013503039010586911574392915025894443801557108368804415492900341246962855233976618800966807456821228223179141388919891720018489832888940140354389228226670283398837793702142097047899498699542574098096296819128986474514511700619032352928173136275591378161966489769587845365246543607314940169590664485264167635760909322146228443962901362773671468806834886692704117343104872217574372849246320062949915701003213210810327448752670992742838278881599183909627559265286393231083984524235752636272296399574115465805279010312113405703361946874979869737336993731216091598794008908507931809846512238638132504717954521423330843943686385979436406707469904597743057502772973975514984815434355471248848173119101393907721675569092947551269101027698306611110957184454944942649413396862787376815725224124573141623699031311377245722930950694406818711629744450742481401548830999168746975921015020410687344217381077336232367807366997604287301094448299558316830406769881194276189161813575511836871324004422850513829460793897170501366725933099789385700426416015036981712553591180301452351942133729941562801365624723929936102717758469863077183188416074443702138160694463592759404914490704500960370536967175527990017077069032432952631241215988812791670790946940861622868561623296415214262833902228275502023439020261234089956709931078401005368509748370121001723561359020661492315827091766741895909011867774164443931438457884618519943171200498824375180143389010229137769542986269552624782427145201573894417702692269910780583824402984156834641535357429854552246261264447358052878272815023469564406459230191249417382439102552599552700988289380608277039160393872726498496258184881761122957761674756766201782375914579549120676587432142810816746873105015552285717835554619154461005433575607672657132415886107205055508930150015888333335626214417189082105499902549793549128584849930859851539202657853477977014966130789418350206433811401688185652935018528202784442983836579309822676219114502213152920549507385574454477388433071173252265473526686950281934263984536609990524659307011490411205974355151066034416953065948824747148529952134033562682239469375869674218750282320067332148286965066732878065301936539087899524557300257986578232726430487501076424381441184747500248757804038892631739505990832053084374964373383191283351537052577059163151682173934363376220681632662189794005911647748203141970824201705636622283911353255661215534139350802446847039690192936504643674321998405259068606954541825903047595736101730903015112227375315457588579235424118062756125150566118934850628251077088266260887837822741581388604882991862412697729938536565789130674145350523007513871625833974182324305367660686313692974706076825005131481564905602045270004348249009219659867374495241900282154286472754584227304012334411052009695120869460297305362275169018914017595127379614974031438492513164944101779415140624650658870978435316856283991908708130180068039436335757620523265875221403576933114473568449353975038382696661025501561482442991011944739963140008843001695608003637150588625783217478993486026870768592744360685273442083818680082914391932878268920428497734074627435704296284594451693467659684078346006873682360736539657333638984801575449514080002291228034081407088614542698379708472360250191658463150444992569065712581416784723761003815929233038096808863457742712698313898088034431687269490101987848236841600001801502210781145524701971692220719400594745794320093845530455563606072063142845275568039856657044758557008361043408416847113967134542311179699773282365738570072230890132620331239360589639618494418392305654289885828751088892994487421007769901258048122708757665546338531292122147333505152392370665791324288726667177616924360997943844390614566569555962083515989556433242745939905321207156424883165139816851841779901401407308169176436580145059895103346307044703098135218976897018229671994416881052678159525914874148365745820804666750503717313114823174872036495203630991345847490628028425733605444747840902429477790160797665769509051289675389175590440665608385567103679969104700683168650586494328446545307375119934014633906006453146092935828947971877747812437757464382150396561943430041406364991696603183224341925435849111466725136913329585386897986896052873710405921747913657247366991346507303095582767715233270798122087950641237394617190640479981313423767210292272250701788786087654098339967757478114176217080673659485682941675838821394629035003781289520876159014184107455304656036962919328243121464908917039323719811149493882058294359148010541355717179358763904774836855885990877424043971057943159122232968052570034991376513793982183122277233573680823859808874128212951182792745962073660962259500335378597238067951307188348751221793091681279546627651978201520580519473157039664329467702490447209464361820419524365204952510786432680963823951972731952081599612601959149834831410904463023670827212563838021800955773911296004846044920635398675996935504171644559757278045222225406285657979255061034750778301280441350493268234328773258900287334432181335530344055553084543712916679645483675866473557967827929515901508692796170431823349682744374424649891753033206762424379654149241845052792782759171367377978772002507689464372412692452015263117403575499531795865460702925848056551262709740141987134825356446064323024579524613897534702225241853983697688155756163921492665515395270671513537109479793882634050404894377300756333459225199360469252868482501181763839812922006199017441642382986463037946551853981959474340420374186050205952238480281352497008596171979613493739331835854419346299708596117599754304251257400259872567787492458212997115361485923956494971690410014803081141828842580148251336965457634259011958718580226213408868720507224064756147033667077509039478427586194370827458586628266196949164016623313308514160564012803319210542422427432663885886458572124151028813689848171233269098294458086343554079052731034254906671076722117837857727416257090238111431074095809080898273829016610814876470802625768870062716592217010215465722064001117055031385072999136223126653678811503807360727711838540838738558048261175012211677625038721709495430941892769300231597818920389614731611499962980739895659235911003180271810502281641273347499613521310103685895141710794918683151761207575401021437569496157498860794908552460297212142784594168278747631975862809693598112974207197421759347338331208045230523571155911667591402166778582053822904745630173499938120164870626670300354508080163119399412118862140844764813817148244035511146018133449623258261084676275949591487002780574066805145287982147437772618025611316206446256402497784359682883991926037152008608265945251264403184439025920619228003277746842658654925762850536236608912036660371705049681749294278658775129615743373625477707401185196069127637109049476092877230669481646428769623953129486222903331131686179024127370745626793051641533757398646426028799804755908369487864185169457240065743642130891088771727494343471612799333417388396154196500714118615305916857233961124797100930609716682061107601416823046107385892636260380922690988843664890059497253250491677346584529968896820373857425560720239531343264221497914468456056954274053219399244721880715182505144455644506972115582962108415789804282104992958727431014643370136668101887065845390644295240734306843613211009100245449927852652090274259810847539240506532837257076541732599113767196161864533322201249387059247940360445409746328410227753694568614341034222077882413534874253749010510397106359833172797484573643791095433591526484949620090380677869735730542841746199727051191873509815889099907525225315131869284633813671668563220796100648122908360556236257002555518507772011206077501728709158230091307984869841681301936871594688409876322999044222368423449668525899074431431690662162105786172148201624061142582755336875151596139235068927927065960786553484149704801279743564694660764960944837609223140675325457062015928019979504020361668049328092079926622822620661811757775927933193850956001911021437757047207756492620012504613343006438977901385562288174212346574259173748950537050435619427118416747879766235538299384330802873120310861437997888274265200773738859891347502003216359264579326109999764845702396083400310098074626206827503724353269538276089093199117566772322220101393983657216515377718314790010408668137647407504607627154935388094621098939199863333730883035838964252246675747113420988774588971795495314916706673703308244491801945811549543265481929201868442990379448931934240560134209017691273916106448771097547513074413978445110605083221339718700913596280891569768825271174699448642088097304045237312878890675184087718827165825149522963706139745914417091331171301609509536987987690672873496831658587591068696938970955407894006505769291883308571272195674718297146875241232443051355869870125975231236802102015087443250097709140214572698160048769443346057555966607550051328458363239320739760581056800042874542160198609956284549351447262082908040156337284918074556463421264485895442188535918351939435138326856752677116969712190299498155506091862941520604820685663145514877609807537675184327919286857679323180523492565464430608790261159944298990236826288801745705335533706868202611108606184421866083140341488265868588637889740082812139083687228031404118365723718683094166172697926770185152275109069448519862931858428690195652283085669472720473338577111196050993002939152005248832350158595227362231848647468609670587265267288496387863563754443060800336130050770006547491040427676929868084736541982390430667775501616624964401878944384387619199445986690358022430499250991343366662955745758738236131273599558269361822172335471242707453299458648804639989435156365997585025418341639964465217292257956499265291355149628118802820919803128944632588320361312095611298202488606412851126477186998980826859339459663218501158596848914918179820991417319911141633443079911033422380448405586688815083576247593789551704299235972286601642863943797109270353391214665265822320365417926996206519286587205035455711152978784100264209735051436654088254948003003429788599494049376059682455220525566169540445917296165883841756309809154708774985240562056020277407794093019877815288453959881793814584832645745269480205847526189473015516471080050462103334565508240603221391031198819250021933032442241604657727720615804463935628848582573947554429940019177294123157764737872400547447448221660326251063019297833590866704857384731670991237953727939420167895549859691997778754923193794147852248951505199907383983436206752644409429075608946254243297710796316669140634606440922931565784631676296055963799202572139943071082981968510432399023341571324065437480377707777214374953388691267793578055530466825447934905235265459801167625257222376012104093253676285132092113046946626784744552810041620119974361759729855852740134274816035781640319955434059062457260259753414320766929096760272127602481727463054277858010932575687211501266815487132924983733354175903151348796910415396208667090574942318683692470608127084809473473319286037961639980085274457294512734270266506252041333856620525243193354890734922858824162413041424738328769903741609767295955816185474065458525985276228191510622414122444697761451489686544350216624395456343031974978042733926623161984833554453871023702385811420065452795789617748342132958165491532949946922932914576230487901613050868651945204342021882022207498673885855157722770863282173563046094235682183730700766609163628641768261077025408995106841940464657492068078999626359307514973777870702679590188888194406644062478878438137634247151740683217608747298841179457810023602814461394390217471790384125295302365654348734642913158138435093276596951961367594838672254140692294608605062047325743655315508763059583126688396758805957238480225593162813642228602624407957895680929722029384155063226902806988500039076525945496690299262241039818480297751122144909069789379953430639950040061036868461829496792670107241279712896666563766614516689701893093831709517758331643165171326506436754468569910172906335440891813510619871637042004556584232435619311805476736633961463112031015592154527308353984750058322454131155590408984565530460119179028275231127997758575729607632960623921203877325053397032787748330616475011248135155240667723398119072205229973757128740813190723227878386475851713259606815667917302946913129367588834268317140418968718875994877253383677433052044569437468878424254652283972398712059623295395249914243823133859915449000648058677643143991663246760565726643386961159015526772713181364262453879163540569716622703408836452884801168001029455005758182938739082401048808394283542955039678258931182601342268653564156900062827976486494758928254157716845173463892789269819649346260502359603126982807027859850865227671239510731813846435183320744943528877256596935301316259836907004248528841927610511488405224475398978349693795140867387161988721523561779696627803505308577408397540629061180174315172019388627365251147226948791111550793741489948671542786799812382797737989880881393832355372199464034473671674909063751190820446378717577889064373605422725812102564208884813969259155744759884280488431927219993865670893559652469955142264948740821781676304802530360938301658163480859550457469019579658316959062025788388339687644545680997770415433050062560786482426292636050703421553335548318837330463264310472913217525664256429355741565142996978519409730174075649668694307713719530793027415344775023204044656413933364194247369020492375033087304919195561162793334499046374686480925471412135525118520397056020656928142883467419126274706367942984500337793468451386517433110053652156437230134595492456255144607456161404984498329566297189075571893023312661906636666873211257737324183425388811839382873110434896607242818721450200630213361941739021339531945967982025350038981528801696975880415704042627755095870840318975714630906548624769440580054965335785204855743802623226186500752438400306690296544498165766587695748169500391182573365393788902322736786285096853879605217920931898130857054388063313817602622862209140603311925374317215333719576379480030302731551569623854354238702794248636985967355820589102444404225942624926382725775870684105499263569706182952874501493463364700877821966723637273154560029308413655516862613237149398230075223673708320563776019793959261437642973660007688675013432440824136762888801977183207100841445253809118112868162177330880048844492427625666153595681029736872412839281173340993331320607478761683461696358976170363854813473315129285177053841521436229147560619979480654859389574565782000061183773700187733385182695005221485616129526486582084915140010324064498308697822796953863925070106968210025429957620925776824330370493856225052009772945221231765410941654636967014146734677038895252643299962554699344275140671350950191178721719938973403346323145241823058259348158489411610679657119999519370180678782379491524833116500046629024791282272133349395011873235764452413074745960107720194476369165548109992341868124449721052569680111995150777023256635658557894551882781754331749563500721980327101422293607546563109892885527383278056713119379571417725392430628541438442549260729854206797437478711233334436350247644545055052417029231112490343257660093825083846884808657664000617244623944777683580942207385290513918992922202402186732332505728873581158236512744772950447096747442389346586826499590265387489569913140371499822776613033931515166832209563812654002009890785664426528500145849096929428420244062203334928638651599180264276664614646026542160314384005920312889720426677255678926912273944294793026475299248549200882871048665657366239983196802048122693236815405026066530454727221400249883019125996961088750447253910133125921143732367298553429286639440350984344808443087516372957719734973969986332508398420530812512041560543314209486120682568321852068844029962444660609105824702130423911518539161368180712551710564285717415546587508192614100904624847796739542871230838864882046953375764422102049834442946392883815127747731751712839469469707104047022208616869078414418341478145379282821813493480479100403988184207439789063187952138622910417846470806638251976487719650692610665583607545257942290421083291977980088375906112312133945151757900223154997927035304358200692742978650035620453543516326670300469376110968429586981702226769630645497962902685090699237871976460012358177090197265169948904058276989840128003472304307155502703656328638304559055784341291854536276069829581737620093767925174350088941782821548248494658339340685007697061223602574961388127889529614889544669156414551180495821669672141845576574735172999659790008588367031833534756588732217389964391830900564965916420147208100813682743208917217608637303837837620734373853633532529865091935317744585088839498587665848936487945378247263541181120188323967136517779534333824362398583274844869509153831919887160895283789903420789689429805925819530975217280015269933829239701545260449890148021570542621875895163532190001731007918547997226639184153924890745482951976506898350539137827909503511613377315598673601445854020608602884936290516558429741881961425403431502184726478436432266262923995295735368752965859789089197383180374415139538867426155827585111411405118476512549217277050640989095580560522727470857800944785222447098025831482516584150790020664574603558037440767067576127903677540939735169043298509229877784632392882428392963402215481039877791149193456981832602378115265047956160157431487705097599015178169299466060460128461187134762738331436589439500254760878422413087445768396087821219793066727675674266151054912218154774248535621685748308839456637626830729423745039354135638200284503818599376983898994833690217315483596350906092816986487634165665825336829324668466550201064159545415136393034337659791147657761375720292609410908479523021682816147283471060186012887922143163168291860737128705004989167184977263465931706408998082934930492634907934906757617695648559046857467867589209578460083936825197668986785870775056068793126073149510282296904618869932338577579069830763047957218117473597930199703552552650994183289986652248232312670528518558656371016233426615030838121324384154937110953464749125187641143872969724041621202597611552811255424313638757289303590913759758416677313066298192877925405612454723723242527826330992813904397278808301445500751231241490752808641450292823110702684890540175315460645563686536265063026566941713069654705854120837442440784978337289617207721701492472682967945634254075721639983958826158034464971774134898517543188957257411922089905549430920719904257581870866660845606555150591877398677271575223218556864949154352223439102740930187661754459473046047273975290950127529959147019870219274126761183314715711626171218446388009824558776064794477385661014926324593623094577138550754167856522389819658832786631367777214355701071512916699047126642071016236618773954708490512761336675952825300343817016371161409387406635541134058674353161102170590354730673815125900700219855675772116752051292852848730198099783906649869487012292026147264463346568319615120308630468885383689379875403458851690258542679361263689500056016166858666619340443531982536291935952743153602045767604614360801138368899655472322709268531737912776213263359395534574875559174094073694187260597117128445378550211463650393294476839206286248252267863435575315512301219467612242124035372327509490560211184057037653242002545018048026249516188361731899035616449113675948782032908144023364030916962445942020077660650717728971833350098321162228975887386512816691383912252651742934173068281838415548822501395008961612028137702795566066071284405869197836903178160424732936703500731905845238006255482223651281152165461423498510992375354900359786040223311968479123634517198922140718363789654961524620958511360757971296534750372683006695544735217800923767298319049489919893643678135250164344939608455484234937808343429996059024737091730144141900335625661343697630663495249784296090142571185755181931969092762263561264340380316820210118108078739597055055582922140973059616148606560222226275052651328044154546484041854816389208172225206744968507041672531574206376291926037065609989350021428790064183412893770528748814701374046455479413345635538701317852121220268013446432336879174147773336692177741748080027087960053277840757369869423295867909780738366455236835962121062635253465239616169936271731569772142881756927705501913844879269644503521421824223198180170590596576574298309179094016031537119735314292524224697860513892161948151851404130300407340245617067524555520363449918352563735022001213022130588016214903906817844540343873023955235281705977670856077684525954844921511861485745614548139285829268967367311095821840407555953269179329697225589737762488275453827186513328209457482707713945688610173790381476992198394876418683353945815950428096753778609582833856467933018222049235356299033498842493718774226056391303057584416588213570767877516012861624353421243384626996205019982849355714341084185968183969035674322923934857726719479740416849473933496237842787944680672983960281984681430642525489290922946639676053389065874170735887289665862993832951484149212025558248855338090050339904960764700870226910077278775582692096126374364943612348486900655565731201341186440452459491843846272680414527706351962953867660615644322469194911328611059583952415776084677447641312733464704406249309742663864202436239635363971515079789014392399835158584875905973946145679898883486535859749654167208531088355127902114033852545309760796599006937211056098710183861699016927163406431576663423070143459274223399236086240505875737702278972883145025791399743816463748035316118950668069324063447723480521208164012952486652732780959798171001861031085910032848669504644026873913468926722030755670715015717828291224043664083934465093372863028345850704267255586508660546342558302741283451144755586624083085708011432859707269742490687523664292848102983368479518625988315547390988336429429502947365605960264191714863312343608993168902559455904764975466762237265412390814116545222471522885250428213505320807288689831190077735937944928958408276338222616998261484648343131403571503813835700787098182135770591460728055628502292355565417225543111414410177799563539023630629961206858561833803970455357316575305289512673166167851702092574595368913987364702295716449834794836631796721014659294937704360591914656497059169326335482884464383786891153412447356362567817514742207732186122449264338059632519855292347599038567361637981103854114969644162358327907180559313745785878838912450452889291238358376134173602455569195423103047267426441136850572639823230549612144028887477817173197614225732434119638916169635236471831110239300545786182995890930844344832182722392430151361663230162236715955683625256927950730668352712797950482387077424770040675877518970748556746493650170961972498964417277480868799803633641689615459298666817772227860004196719994078106481357770078066417739540553266442269533851629709186573424862583823943974890735112449590521165561346272969445215483388614312682095372544310444392558567745742379916549043342454234529242366044540398938551709401177778967019902836279580617584826009831320695422317059042003099112479383000867237309464078120721911084158521664663132956368454715193359702483049264986991492145602359990013694277132647289911095990093804942088238880975766576244716487644647049525100287950944029643671518796866634891921778125314764353673446585675577249240612011697412719745237366544564170220576316857093809210700913306245357583183180950849640863845483493483904055919513974366146454298824646133452922288990212942509765023576878599710169238284960840194595688755691730562395717271242456915087754357363624441037430700497336463127310821778554886400227561370965739033380831874825817185620443116657080817348798327852708846086604176151475615542711344514280786449030603137674040685508398066250660130364612016922220293871723855092804008148444415836789423404617582689629324096637294840440073727566030953832586448659970753414209684665772377500357098888019863416460450144193949252361599782542865669764821229492631517927191523611139205695687419025092129964086828972883420824613712719708949727416209178698383843839732860371714590877756353485857017353886833491067050113918259987610764323538449989297466088212764792268068406887402025271133729626722266772404029179089635463052724857434242924779261468017121137506417923660844674058375213876484550476400838827660040818907384279820019881569053818395568814740960326329927794697444941027376360125022153348878970122256226801125137188967243129331491288889950118847914600132397445273075054722442731435953093288368732492597862354652302088979118229202629468825003826589266490902185956706676948936897630483210846223154150278083260190761512871604107256502305161943900254118216466196151428594058397353053661631753292123769956697159327556044683643900098047559429935307391558524631968399768969215744140070381161525166828202193702712358083615924096480804689780492293392457381271111123425465035474167560005597312536509391739954952753112243676723964178745193749427188776938434740618169622355649585744955422464783139615969835364007664315993071944245321729862386948531842683826991856273819615471929774054074277672409752416075329701570922242849566946739952157446957664813769098439654199324441144464778187196282130648364088667187975560666873861446197176006993025207977968871478440082428004473265205605071290418790413035202048394106444088443151006603303713758661239850300739101932310433436281231009292819712659602688222521103068086786494595951434716812673825184899009213168790894179508290233561946997233118906567899568350128868020577690500472317982598656991991856718174723199436983000536932845350098467313938634875636637537552705483348735636519093084766354550890203788736957719010652099016379432760064846333773241172386825630440950196221861945555589210945959358429049236843920306031094772280412822378826274224379519551872315013658255527173770000900180723222415410294708758471202035088557064534665663556823050159943944641319703067922016531236493542557287213117417365388309154350107462757418920864353387652801006963739660034912955629601036631737259068939225285422823483531872817986261894501165811727743837052257345552982720275686377553753081890990799000604657153890238526703388791972684788744189968015171749352819170734357295390235142415361472143311737484719138898044096784787754478206897434589441990223196947644353658067633097395386199826177812587137825622294362019578058641990693580460301397228906925560698622195351853674661787046361932535639928986997150894852472433628825758417781637065096218859376848583189372309826878324385571740687200607277262029546374485070499447095510054434623058273860707185171261384472363144515526307736486405002619477599551130105940431251161238988035103733001337673405986818866874337871772027713703500758462717407700625282302131291651165575121665029024134148592564102133018737488524370003762100973212406774911776791291492506704753576053243715375412071976793175988219765966018314177071149383426657322089273843928235760705125972228486087848242140962864686401640221441940409031023403006851954860190760808258881323485032104824538714992505861205613433618530045725705475272770775142621550536760478365279850861559500896899825442934868814793262714223066827988456211152356768553137383863112985547902385912673773350522729223593031660798914862347180430645807705600365292593418199421353754882764216367955091035349838578645053708539984203694227634346567403915560558729754907745620105133968331128935673533015522684642870433779647947635267860034382262376583587723970962545743633127157955037942030240727069307036687903836035744379655065560917748057403602926481439092725167292696537482980198609063854645891413463562409974945466563291925550930077942898477574804865853694017121800819754299500590876351846821077948004155669862518051041492363932185765415077976444637476145771088901879176116341623063304385114736905957583341475823409545701535871788673738172949209899260341547860497692212862586541737604728580275842836011514156183211949084802956901948973323870073123351993171279478561884679062204166017632885708382014280606759024854814276803377891987008890144759960308950115120015132508263018186818296816366492639625891963094249563587396951507331108740196117575545387028067621740492608365214718391122222683284412665091554322584476850411268760056014316128774096486851787156915523164069543046095113977522747046711680555760695592108246515101423423410051049853788014105042823127520078477494463374361656407154719929926014523956378133949379210449766522291941473087138050770165419647995906092798297020484361062176613496742818788554262604036372632645181755941202599524014027504968196995242041865313204424955188685143042596014683262113285952578319560826655912359061123072891492137344712240438846294952516915712891875624809266171386074734198330380192670148119010013213478586468361693517565282116892879583362805117524978531956436521707383319369436520723712041021500759804935361088360505633005331247232829854495004553907549008420100729980490993304683627463091538953250478407672945242353029460953782579412267643379441262083663125962243169233924880296151004811914916509750124291404607375557134427398246068494817218618279398713077949729049316847106827909183990393299006692323112201455589881852908782781257778056710249026728060466277836601880288241716269831973427201054045322409992505839534679664007047480761642613211012109201376770132357178436718774069358445699653612701869839786477364536077832321996730551284886016357013350011902664523686930211935335889833074582447427054132946243615492655785475329464065884972755675927180125883891785814783346622979525029346678823357452606773202834594889408447765701965794359425107729155240858176883116750351112222849615095828706806851893466595317449461041953276206538278875017692918094319541601527687886734029103751973632469373149276794709725459594362578633774845396423427827603474763945156093195997775062952961345766527472053095679184298536172833946318783899880079706276600524687398274259978392576610818964979839818930528281542769101517330547741926156585460573605653355008325796076544389756069938839687300292514542519721448055591650677144431811693439024410075200064825467803058872145386877750588006628579133973620909984081373633234096535594057207502965111810047589837674065567048051940432472107071036457970613785200311725824019813760839215753946288914863804876126265250732674498157476070213481533852360884912561329555950550526477677317981847167921098552516070518709412196895948294126784122396934778634700447653348043682494779071634612014170703549124321348409017807648044530074937232772172952033258459320135099463407356752155939634998905899182974934846421242506215710036799212709519962427083372334533326858767714071097769184869523939231807819220765269196813661334035034980089562646944838718225349613885431637151555811485938791023880535526349324038403407105680543187424211564655446708625239761741046848752042160616806449735211259554586125718412816849917610580901719979240613807900239213084390209625055631565852370941062093041893446468411514357544122686734469393385439868976384590282391356528870044888711026591775133455833475363992510151781138778581772804401156284093425602909376524724802158924139939080878572078200596166608310634830627930258134820894632207748040016994193910896798993979348727271168295117128701408511724258927314135094251409322998647589612391643809156132249227310207260742985880816120875279880393260450904461200677827754303330536684277961915133944229161159429854732746078119880904554548282965496990887500455516925103481535346568095372107755472505153104073968736435899834291433649775962601429697580585530507781173782332998933286291260641276534549496820340956637751042462417659834457614638904303545742510782702365717180271935243313054537780120034771010105513852367575233700114380416243204656468456903652114061672463249049030375688512779208722833590183491198146733167464661710985289740021972903126554872966193350484103347054370109138725588566005377481625574823100188489078402531086943304221304742432056253570811409122406390076012230214257336954880790622356229532433774086256969568952246964079397490957711382162805682682707776322756211480141219185236084102862555965587660510187498308473205887424621682993576271480458336633708467328669684285465050756654649700989309812300206362817588752185034284336293433569471508414216773208898258244426287043119512765090210508711173835200225359095424668475133498045584988514896759209564309033278056222349752789371684568575967910646594291517259910124225192697355153067454511858971138358533819182894530536511067489073175746416444318890134311422699387504685423142974426517850928692612249754341060628520787717053798198929885490923270267626680143099209692367359011492653688512533510911971316971021391270135831808674026933970896423905022707383757165865414022437892611235102652592105914029934447315074325859574832072147389304877412366650832210669150203033577145186302747498294550963644617785925297549624597887485531744982524502593534124736342520809496721472327433870652133224466590424848980473050771989206874795422954963393067653140474290873727184893134946482010962720242000558092771137863250414409065410306261235309226621988524219548965684693940560875618371790065677754400537925272749266164126592500845583233475323023412900914404712889410383700849615970472863741467820520445801957130784268420718681609639388141773803909133071718269189723639512671777318672017108139366628461796397832785966135626615046864008399365809645428261134737201260607530565037777095410411838509097943583412654880939508332940358276700920314788927553069942531857062448841320493284228196649460273907968813138845025584355226271272985363243132416436487319252602016153371102133608294021660949079896599550645037927032723701058755915180199358323881788975059343750983185277754087440430727917843288875566203797648450648262658506359945923909197902246810150929553065432870216753197661592928966177935342909753382558382670413858785022241691785417345402646924560848923183914200760583479809628450491556401820541494009355308526163415969488136472022373381200085734409620367937901927982598616782753593807079356781963628047229300257979852464455782243567072021007619480348522848660452282796756090374254292953876766485247170673293405042364932327544159759025462614655537958213458889379589784040734671050075232181505501682071250463355006080872368932442957188194875449043264304961820739080726109645758268083460304720751904427936159054803521722714049151306130540776974225599084933357913890283163463881523312125445415892476450759865513660190029757521639606866707311415357048481310818191729700233918039401971217242152420200636329492861429660858432269967629331594637526572103003327134874326271718792575064497950892889300755559770044543291214533778325417037206271155887479176834674645896376398952670320383884369629347642862564364380644300956307618314909951200975642361400557764566176379331622798451733038178455905892964423411298446954830099837097203391230812516947004180748294522825106712609854839022706894361047468286318863142348704134603984576823281612931282746107779501684750009146323130877108404572729431880146906466977964320800984959619010623199615752956368700667286233766897514406741451097906826056104843494835235946408780381788666091956800008843190576063640791890482722834583297413477855465066268809483894530742879906571073080494566470690061542166835922972562712195274368085315457651773982211923496951704474840153303108331208748402791064102215993686744677878049922188309027426977659872378784253449700782519022780205847040176581392646346670006645158377521039517267694638651489599375531907551074191770510476384764196634564052389857515741720619039434381081807010070154009774975726962602321755081251701525240087412993784036002642971482439984658692219244637667988274987800980417281683172815711599574973702103671152532876974971731544299198962836782388756988754795677213727837797364919858686352158886009847589199230448288134400953923199034889679231257105503683789815123098711077516156742932365645845916645227681502686590236489959192713159401758483092544555243725499100208826794289004664781653634605691663177100584678077165631619107283504721188915727618162413608735335187347050493948750600516593250715766260419323173629200527540138743468452661267987935847727221073565433983177756709920445241380951065911651902178452568335546388587847720551492970934823294432985464499845555057325874896208534805803719382097808781442975602476912764301237867248106557980030637262936929692225569944247827566978003063083856335288788694133193917910873179511591641458872050092990365095876759130794503685543392160279471857824868746561232817077050073903577910748479166888165129915362108408315093595448788486494601680606821536961848216963503296176752404294924733365645148863317508675951149059858371465187972294979002887417218036400008738776951292598581090012422504971462985156378495771911081385789302323981847013788613983147521422474485578350762053036015206830203122941585259906251104938353495930729025600965487596473120616647911042575491160127514280036696687427497118084718472838144344076647587570851362692530285259841394986016786750735078068764729094883699283571068877705415730234075969202567810504015021635901407968653160861632434578790494610595639944115548653815183777861448358471356950329746736224983782614820202098520691275310949192991141269800297428751225176292227860231463138211682717055359517427720085076847945812087581372889025146550272123198252175354957596113847362529668605566164337556703337485874025620915242477357410412660213020380296976346760588729543193182560433001929522020535262663460976960902745854591846045437881427796990547512271155060147404089919259363615681980639441945462441758388542794109215251845876314923221007745888592029025481742682388760886469158176615264750442688803720833250852232466523349935381364536999284312368071435527224560024909988772866108272336719634563529112805353601928992492960159324566168761753051990178006752221263829475694129925307252552341804736838086412419266443257826620390467758000710933422788849646252979590890601571562005195450720164922414316175859718631353317721267546681686593435104901130860470684524445353159855134305743274717030672594424931691014314926424715103840740025809763280997889214353418767145947930475588423372029575620384294353309051399195883556350907533441462654446208154469983831692295299565611234774450540160322177620237209151798538523503681530531614367662391263082531254156683325900688118785099714545830189398664038908070239012496350885070853766390404046786553193804623489510546491270458356222585743564825898357766774247630824556722097012933574183762863896643254886039006796085315429809127849799761758570405738245430562524331556926233461888174345977157634109980065577594887389844123668972305423235805231585682475077464619446112972071740822599235925191942748060354290590448775715430335984704464580693209443048902624279876556247766222751347282128753493776948264812925650795544391323383865002040945475338309340712668051770513897057533401442020248230466025484167652130023900631647074344104672332495171745669610702087127877337604768319793389371279460053222057201041445105275138979973644390561118284018025567500813919204965997137443674302909003718600406635253826579775675473796352377188256876088323183076775455055747476292215815125141368393921880509725216377711297754176492632295092676914293798699547324908498561175960552986847348295947309142291681826363803518118063544304019622797603210092393382789089019201427096693748311116281070109265476688799750605333295540116078323545925513746826733583554686874500968201291252310854277642022276252938756196034340684839026501654269225350574641118054706196853452155067275971471119265712861688001910491368310219020314580781906946119570860110429686222496106087640096563632470924076960166048479510854098063377294287042950066129444166760103337989343001363482688431133074540352316189042016015370216009347263770725857979174570331986123703447185560562283641864154058442245450004072692094989122905666600036734690250843134751588690469921130280728647329975441706118385335360036739819913055218398936582118240277034021805044770816670011073083717963999584287058987300781951646974738023043313333655681943418923632565992484495314304141937326482624024970809746298484201186467552430114095166006249758379230223551044388942583994919200344244614681415357717337986586296020836408425179558147480866353588292161717755740001501078895910296780276165005855759212414211996272608717934443188377173382005512888125774714138674923551079829335964285413512769737176511686139383883331471665667509764469556089235372211041526712520058592591423009597152624744663427951204665509400370687091664978129091284645117216078544537760719190566671965686362089773473959204336502545583748644431528966312612797830611008309956323325178074584040860175372483288078725777272104516032118130522040348819216442570511446842803841042438312400776632321920756347649441454846378413039997281695382511472281631099131461403499489265947683652966569084977107572631331193618903649165941408535495928459396174111444267553727711073035221789212084146690089681728723668948611643802903950142517024373448426381695479549563618050528062578254677902921907953032728137095941432964637495564040410419506057983359514777036424268076771401610817064680564291973418684447445988115634208613658941920492106556200949863436160782671288185614714538076117757775887792325657033320638786073240345381602178423915676078602336988823551687435967446838926318846949785962329127611762429373017041605844488275160835653269487347376552157118346344383226168664556695479013764463689083647367574865487869062120177181116096221496244306800718756443533577646352833472487027969427183194025196916881107292148951146791253757128594648491906331505786828715229877629836126988146721102124634010559823812224655737141296000027411821773786435652796287118743184412280721385538290115808830287787091652093610904591023898292942598438889584658385786855574059650857859608248635837950143845160045108281140542715708212976798028343807714499119593113046147303074450218488065062402637596157055011146758746889313818412909994187840315019200044987192974166498108705689190729171044824940032507913068777105346432125195732804371316284669570931672760398154109544126087973522594135759053800161546405305768024303082946244281855095547617630079469882972652717775117068880860940378385334029515619320821636399739949005502727650101736346660640875781801711541521913359828079394718878261288909925364420806088529508434494287143682747065722291170800060612679445866936710057508334635444575044730329458945380886168919297275530999514274954084612994604079491693637665297787031048578823669448583974462320410591213995763649771887784671353449480312565094408460869990038277608879876048554423765576113363574060186704207073830262782367383681044096680492244818022252388282964072246323836373672053114725453837380985121084150434278974341994267236984690155049621429503443469762752934883003131098270406493336624730282471701373489775410534473694425252178206905455037513761727962086404317236307222257047672235814552746022243407043902497966193893752601091000854911367408878315492444184104151577997961971588332556352337113275799733105162107699744587537432889630166373693520606180138573836412772522359497171551119113286566422259144211751460655526402548961546962798929931884635909487675839902890833320338052754370136850439723813825692186550912746792792621203615299034156454620005741336871030621238384328879039382407702697566812887382372981482825366597172453441960344202402244537152748553170153931209705870569263763102881519724924260587681892857226477612688974856317625751211839920318308284255682021692868208165610941006299855440006106153977152895363901891037805578903954550061617134644054828273922421068435653148391249759166241895643318048204723946853347075828068434160794586547385548676931975465211498622410036589401169904115448365632428394962867984759726120354202295828792532806609817770934033204045802536437112021833941915006298489197468310689337510702365562350835360104128837169388910956316249221999031958003886126519971689200807751936390596004556396651309188017429641115315295607752612539244891600910233456914344804985952528073733385948260438440290936563970456387887736065013735700301325849228076840206722786913495899360760544341402135555133761604797931581374126238913037691604909346627322997170805970801922536632837328646848277983816728947937526733042406556712894712006927766093056349878022373528229366328817443902940863700219895561633693092739899484413862126932322758432251991070754216778952568692776160765640885497602182599641071836477284798165923276311854668289407939600214231505407903681671527364305265367889012659075915694806588659761557025384397381313261168697880321220553417144203286471000259815627026254356006135945675722724265046218967795303881484564085988003395966180142914921052690898562995284480072718616022334963279054024574953942427562872834298815493629845561132031082511116350157234952328265610118721849696979276103397300131709585514944911945128604494375507594897107200777781231277780644103343822760511550612820521184896142903681121341833435257237951685942734010682763863177070764031052482001292960356996589560603409219803314331258775642075614057537101202589208291611784383139444133634758739885693535124232932343547094672588834198734355300962956847161664822725595146138792035047446371087292993161889554370164066734246689495505810328007998376119027134988521391255974694420480157992552332593539454912576295876535818225732568391896906571874161239465033989853882526370846046334452635420020478602430296405628171240728718019136977247184178169272390234976107201372810638782884333276299260539782658545400206316195427016153010139921642869582599750038229533067817121987446500408962065054542120288313944268387032066573206617254808352174200482992213271458247400739230906622131223637440089840544383597780639195559519310775734233348303684736496491957180125376323261684662345344228822917907568437572174581050978824478198877092552163073628479392634833816098551295253730420785649541974366102876009050223532780835455938644359840624006613662518058252752536441200671039165587538829661653786238673494163775976054076295502472674846244417995373448383728271410120240446697120000481220651449336189100903965829364780593946089008644293574550251631299239791535950709907812007111080975310440809918367991951772947288549902542979408015677271520980463659562572977024288591090414094581927598554260227523993402972537689056388887229121348528412452164212915630138302595981764947494161152799823905903186620889034623530544149166295722328549257550636821967930291784217668349986240478016108688068483098244504138185176262751016712560791035410072869739533338460061259839698205027679589156817428882591295047590345378823745122213075617229733955080018268967250679197541759383734141565874837762219148926176871847980538178847611263131714424589233829198725796819801313852240013753219978259725422631213051478806436161609311549523441483949299035618609872935757329969854272134275179590845225749832505186269584479354881610851536186073340277134441814972601538316272576801634654293184230437373160237428464884001226438466018390524782967960576779725637921119369138408205003780523183197512568770966502747744794643169482093555144128586760033825501981222189846148659086152415067970679213192258379168690908522323371355873424878297308355390564426011502706167949453135216272890154195508303323165525422415871853833231034471312387911784970406616906658807451640198170015663652132258161724382749609523365041672180492127845938605860415900688606164515645586060915788199612094102350626467572230673359076526416701380503558077908325405885907720133438399931390580488047276721571572693815708764361749873589561114100739348304340658458341153594582222755603026450698872445336093528691659558918196895968599179156198809998864320146933881300948827536812808037928207155886581539190350592386401874920265747697217702336056782172611957565754573610154910308516369546517812943079682402230244535986837328208272758270596505044307959828061692677830485294445561783986561921507473828241289273621594128611034403800425895455367001919196704339166772611095356236210217057248334560706742674627978271759216780847933551085983499842792737283778405974427092921007242552391880399089342163480483977139138809231805213046492897348227283449035548540747567343077476094989300434727626682139194069180868071692375632704560216050824767294045418544405910083559376834281516853641000839359898269871257242816621011509824179362407332252935519051518312095878270507142578594985684498466397192744819761210947868663609105059336312645866974954820596179603073237603143093583107967382205530945624430517006924377679060968141558190448166208522674029754860448319713948288399337463613185701344862882732094465515142883939489396678292654807419877878381581890800602945712966421476718591565379993057849309694021982714268158575775085637943764276620033901954142313847960792579403410497964342416523017731369674831463602789576516437395141494932372120768097551653540721895687849983079896549507785128193526326789475776773711844925161688868970311525839479172079818921733622186984886487026670117951748777702459650204803977509552890979496007552291277008639240996978661943425391267079686035086203915938477990768122695561620296995557880480453105288237120411563656552022978437000802318778653163469255168985141116975249368609582974435205895239164690355726682062784595754128321988836141988052258241699304551404695690822938195394765975000959596594661079765257045283381155447590306475135714111019259264684705811257491994938024811911790446740166379161449174861759208885551513206764004294267663302504135437941343053577622035647011062396653415245856316221692735709628927619406901152870770680874990410478359250103658080839112720697695117717208506797454827522857868911951684828757452838539317734196051994552152226174315746458461650243228634626756918569807004719993845619015023205710902460800394065077936970818215343330482997778388424962930808996442189137017633624324785982517922268121265346654812457772937043554186628168087315765421356836043743683441810850958187129569625341286109888548434317679042844422219401778266433960658466250439186473165200677834595222989278245514535747723336410876752580155781493263503678769540016231266187375130848261049990563393975700152807983166451610490206683178857876967978910155881969705737132932529372083520002320044841965734973975491047496179192114501949527303591400998201391373174035119375345138682871377823842450273602931705548276839312235357724927260693932910707843464235686304796498615399169647374906815157545412303517779588815197440648437128837425489125220482666671612410225040885434854052898783832573895859912409360573812309547817742523655914907947267247788933793462413697396768388903342295679148347219435832415513777894469103197603930124008484052514385357595724682001691254352766205686598011825242965261219784663642068062222793388899698079830122855729391192016041671941712935294755516037640027910942200457971490327078680724011377715408323056325462738027857709750142662145616414336004113390088768232722419220998800105601200431291165095738342006816541574535590580396097029574614414113606649654599296256699748444042032193636790380511902262995868906365027474674004492845181925093881600127874859396323047809797598332248607469686850437446259781341142911650591553211083590880944073082451130173842133207202646326499896701299989172309310941508688760571349210668894176947393758927249318972005658298700437792809641879395928291147533693335567252130343826139555846586993825968415890320694990865346704043238005912535689381596274245631245982715537064161345857058739210994452343155813219989478236029673135216985128051677029364638719713313971575698513546251566949780504982942258068151561690760025726939357939874734946194063330673318589531856545333872674828253531692321214887560051920391283688266220882744326783569752891676744422953404709642634070019288028203024272217669623573290046887441453694963939068756141647739272156612769033055370289805282308946195265839158843869979982869450739033699946278388573130506904736346374098496958404137494982786166282526776105004675371522812049779714861090962070179777006725807275271978234670840977401227422229105850212705304537226669163077689545162821950462131769676857969546128530010165201545657190981800771197552896486305106559504923559420063816762970878377379894311228499769542584716922293310827539563940175614166740623283887073443990600028173238894450122150503616046596425942062539952168649183289006992387514653326118346599972068579107107643518260175823795129158807703696908565286005735392112525026771756209503783954527941064314691082620792323149177533267546721615574296366642178351822828696944091631453788141166040876976489923290683111448288791483457500009343740014815392962188644694806264216716802453703254733873545344656577478398446084409696628877888243261496213051590880478556878316593076013303849953678948992622566175530475508497795042886774254882080779079069554158542787425275449403251423992546241827197734859678717385174646665637038143203327847156249524928656555649218386157827287695686330133599674177118165986768104181653505356185048653562413911101939555474438820480571858662864560726144206462673462912390744344989751257631047659279632429200162354810243403760129784282864975937092306885824664429649914272603369750137915960782124618663484256515969368520069411253425354016106260871291987764920999215072577023290322806792606674580444969602866418150779910039106174329613750245134032372680009823522498434633762159834666871261531237687916880888191221215303872370241316767806649798227449474101526237118632395289693849813433750999334453854703934748134534245289064984451280496671702284006931749779026777551844728327493928232754914351974228807535158900919154947348013006468394807664299749379734410198601520377017059079633888689458408598194134692747101408822993236185390770372587779440058872833439275057463209602737342974223035908096544316718243446069777730131097098609872710166737756256226963751310989475033648758404916821054016772488309999528924498471321656943877026959950237970692400804397955709058023565584801721927468996165879946295382382795404655008707706325439939628355527066039059662914146502372214798424421531033866913831936667569647513991073877235592698028254580324561804885319307963855255096982530035738522827931783741994413407118335970623205765807380448384768270268807739063127424179127197368358805370252436388304709041907613211884529768243865159433190523434634235183728685260593342859002439944443192270161763828279543413877184086801247129771559753575327541654185085460987630827580120423671411658412783495956770479349498793866235147704101644512334494182189288070804496973603586387971559369540437198472887962426425972654696929132829395478660067523514950219730257783411988227797312702929087528308272056415984792124796096509898119855994354503898582635415919317259602277261007954248598506158417797647406216720503734338527974963298330013341593159469719937987887027358940179615395568711726979557371767217131098823934809634295985182375373666732938239740433813889118771352934791459685587382249954537552563696431069842295413990238422226762694011697577320671988850878194255898486988157944256907790012355678697258569775266243048850739213501904207587012821030848091780068755348295537092728476931344808063103384808889845437586290927582081452059100911840333724916788600071604845637386076789889355293910910441304152565545336219692950153865749728032872377250017537799427518614455491015842024742008962835911869275673308333127153586752328099984328833977773027603702852439475936024466280733005200133734901009893033488935528055049154576140454971575804195239432353746157271693023301073263020574936586377412617953872112677983508948293974565764404816673071378587764956919998584169302049764191533535991535459326972180154069148375254622240823886931266161221124563468088747244371479928410687259863577638180384031282989455335616797630348428923675508152796519127658230705938920037351687398172287244341393828350563800468230010905819943753321792485479671743715569301796464297787038557898374835818640154499384489484260529981706692791888358869716764685866222980640207694709455143157993905710235884223288042543122395831399277190412454434914591639808092939720548290644529930634916589556408902967009292735154119761545997018470925789344380755437828557566574264295581473883353871479388363936885303220419578840793102659081534097882859445079427225323961127535242360851648330871550965209963864349554878550416269478254956177876346260901827328247895659772507665582959032910712657103472919626083724727533924108234495435447723739666865099217821056886794857751950373989818090570221493292174875602038958939709244931422282698557583433697948147526889474274388230646159380486228416242211472588807197383297113704205288444595457949857565068543413742774475459833193041765930733581859945760838344801251656623191198293052881910280776255383406213018511859335745386451236053041459136374222468718038793957493735164039103116864755209826921278768339687978168215310041231426250355854108071434450720481112149355107430720264849117350700750328270803648995789825329533194133110433237223350919543425757364828509262335555730083809867381066868891311538677702478115765569726226633923384529801968563244321580846123760769064975720853465027960949720178674597459866251747239432618085716814882708334413418733555327894678374542048346536047803254135962083489287438175945028271175738021232052349814881481538069108354851869179821855891313882645795043362983219167976243418848662042823306519858785780766661224221027364688711313100841449900511741198848538096768243719968423712337074377284133841299027640300503008232319023202114328663162735512355797122920221846277873587952386442028983642472437491695728682522056825138455945150199280936295212969425107716148877060250575440986846164674268557077494599412414698536082555596881768958117985535521008287193435266201556339139305781204325822498335442610662497409480194106491856510158863148727875997843822656105919003003710067763679888749282525917009168063277981815295859684974802269159892351378280715011551365246999672745046213021136196322989114978831061152672410930397222397909876878658740002500967021871019355135426160539663706983877394701689219107557996872990979864093464822401568181290984400234096627730807212189970520579006954465370756355758878572247890520255190690798770575450640937944834534101128666046866246783540934429193207989578100886895322739565699723371624593114777678039751352210209332591465006113863307674560334287928470017470561361750899935034890755499980161388016095001306893946041152400958541956484346202111588202167016533476202588898780135776060670986819962818826575925300050831031738184544699691445363788918409325512324927706222602837628361666250521578845173593934218694095118853294374129146316267062930141727053260305156177786797219792518746800967688245797700527266343143941095506492184076561264704625161205809834206415508731821845585242667603667773702765912621692591620309955738965690159549419026793704347826397637074104506481350719698276665265415104656757695461842498895618562543267646103380280227709720079363343293212385558552617400475025825561655851500206449083417809408563236447550103577535340639210341169499195524172574224348808678839684954110827566555224327745799305952533857237784390340288309182398190976068095107270002222242969426966570883526439237846457551819788003425145049966972769580814787156353718527009473828254909919530731299117530940882143355445450491475395719846796775738910315925736240723214186066499009923234966251351503325696426733490812483555220186015859523837430594897537132312201963907474036126389407171689570102472967204731114237439148459701172523876126058741764652092928858516704038086339932763169059423535792024151775300779604187495565190368651164170541960210254217298720153916019390007307744110373393512828056958568646084795652123888743989666581416791885945842105957432255493766624909827885376587010117538071211390584730618276894466208740879834591380038030872359978734146650914176481437182671239914124329073083948327955946176485294201998634346453096136272053564464841078794604628129482985983033223027853915899667346882624996069109937618262366524395422900463109610163783681175118996744262457133498672186196341980748609600384713103299680723576999466364429864934217468967063243579606619251948898455301246900416421963641659347182326191319900994632421768671892461218427154114394175093102434612583043126856492304054268963715067654215502075597915265929506155500644683237443620433303745169308299011873432761962991324436611052756102107996626426202097677340282866536507625871670771999628117157857590918310444658508811905562646413268030168408890377509000476002404838813332896073292832788476741023840558837577438108024828071029197348963911745846986402127350434461813946323047813400948738662240832915534611684725067834833160381575887135524461315417553043467768733873318297742890076075385925109651918753500605801438786669655433893665889427506397843779907474553577579826980886811037668423111150580041383402625924659414858422021542998750965337020326037211986154130984059406339393731406011473685936561451942025400029935770751828033193394457766044617649599977441773703033015853020597802686834990056366863971732810764585911390664288563058305502013800330220314999075751533820367756773246602796801396075560285661952248690064070112763834990911354889915335929273781230722757870875739023061400455012561736609920766017538186309242446490029097771449767693919002680314236693301918605199685153377126476249591712027601552199750208007897705976914712517597610407930358884932068213689553355773222821576125542053878507459550030504667728611768574890050210617403785287207041394955149469803569048595170976432522332472591578693458711398102007067000160231794750767350213699445736597379992835843293530675223661871885812723824576038678716272420266700609145793113896834925320728677120307317441907520455212710516283199869414621136888274666657037734543031771625177746568522909558861462098915873612420515231358461707830571216227763404281464495756326804098496066094412406910811204505763217624475451776714857207118971056781120690359399803830483116987103152694629352016581890888508860183035910099085954885868677848728975378466575249376446575916048313887251083929969983282452823328991474081205383727565144888539570195684339473672860008800496377753600275337237281076133859874163698045935749400512072037425760742026031282164889047441958794056184342306247830991481958049176169893802161774295203662641695126584650891387247969978382179886416527182811704505386982606926312623331811715495574155512054235203147535139059749794456234152347923592606308031028895915644900954283336923617405158140246108302966384613282294784610273268703726547959689172789017874383295486303028217586974414721791967983904793839827200181917718214043055223604462530765432522029580795767900109830615843067342210955553573142254511099484251262166381527962000516949648259187588146914659382815853217511696114135555447306113943012326939733089179981384092329638965944045088120579528325756749344345374071724755599026580773145468597377403957078289492828339572704170691115224962438727328787492136848555196492761908740216372860090259544382962830519361056469489659042076006281989719952099256765155242000051134500500428568915737317443266560220610392050452275734012932062383607816554062429492173233088765858092758917801795036389412127753140739773369927112921487182724489081813829805391294042109928987968280966959861074675572943824819229634204611959615972820683245485235449179537604052039845117038416440945532863097319228637694877075720696586490581033126719242397558052913496832640118786284596166647398685196749780755914903925325874045016741291759066419059606558125894934070358561868440856039865771454526736235263573762182294605786599155762213855377123445416157763773534487533914714316870410841387254711454843455935105875794529994440363374467747536456533049975284349745897266585243066946200970388044918675638229331661382653152239392823605439568286941844357085160958120189232159848740130575548274674194544244723790481996497139717911520388103020994974857020262886906108029977653406072233127631769743606428785834703110832701247013519745228377091773365537723370352125188001964386224159318896516657864713462604615586443132535277846066677211612272416637070282368718307010268102638083304389057722251878122845730721178374453007973257046395663991827966573636172913077039631446703218548567413172225366300454665070430207255857026844829417373905225565442740758723362009102721836421708272906113216565229249407614669024229628989335192681488225965327579640242330876734257128010411868762407077990419239811808185585018625028156005882942117815510945547226564080486841790732098966760980579070587802043295639157959385421970277373266520988127568472816064448946458839566364461553813533761286470339826097822711440880808103637251604517996891646289329570045383871436335527125600016027492887476584358166882960291986257271080982960110999671701147179066401694840816231273382373994242332503719253183807553887533529777579034307865233848634053395667571282876511166653942297018201369336282272703115116539461876769619080125789765942518877581038671304837718132485159251147463438679924684189622197880477800417098755248054163338675354923142668399338647014011774141967739810353496260744415960259943423577188344990706367632579568151225044475696775430684482953474037453271208514432579600286933669913880676126501933914529091723670491501119639981706740589213327808602971479938821637734763992435856250984361564442134179885495549336768663514770737632066074814918999518914144514020850324900306387228472880004460334201766895609806404687647547266944476758938006306970915369799972974750698454588630305682538283928115395108092746372331698430979454794574323762331348513868689575900993821267835347161639642371168368822517530963302045599563728262105167413126742738005618177414989303039652785893795649849381578955300536936296272586989237511406185453245721493385679337284409694628646684353225638599771514258317250752280326011074419591293012872420045343026499458159976293044918098456159589223878703836263847492167667507407441934617963319026597112364224465618405935991398371818144875423976933140136701633917629071196926211741143599550091095816071748185954847203525096769281344428351059539971688310060760971113494183537463284968310321740010339732465683841256569923600663019135005255666828423061088923871987153746698092570060991538876824749959544780101669459701332502335756255765847243784930758382232351040070439711606296702625502851153929710007934282338466108704987658108956089929076127336942602961894223141665773176942220700828107150683149162122174144867548460507046614234261827094346098008132951141249535043231533108761286330511510136914925323707473149665548616881058940469374019882505668107265473965901224091728284672649501913873409470997961473823955994265742720919513285985378883633717691462612787254443688556517532927665905050433451916767976371123152501035862096361323164521451200437182643818668547598485227603866251994653648442517108495306127790869918044379300666048111185014941371443941184029193263435440475149963237474630420029731900181276168661015715213797548199413752582345340238870647158107987497167401121616375175177753332150169215346022405925572112411776207962816597316890198789421074428226923644523251966069905219478010362411418619534173569580816162720975834124449000988846981543851980106605653416546044833981508843167746928694786738756812713616273486825441112499664834153627847230785030686309161718822640135616098964839257340149915154708986857112932735652706689164893203078998788255254102525596892004242979095028249748455779379059593590701171276273317521691016266098155127049295108169623147446247772639681719067199523583854929531270042018123032907769922850836660570705244437603645722475372468339398665139878133773095763399965622337629337029260528519836681859628728067281510833113917843367149199266612056536109512899332366463771446084169953054181757017590310676981816724177279757287066011258872006283398288544306326450575094828974451764424638204461401066081799514304561179364310566746544873354649077045164702918464194819458129183239113454593122412882305396641292924084453020837755517478160943855789130927538677219587204338628294608415759318681179960112768803051939102909636059694508215497248537832255017773743804715807140560242246871514521973716782167971129616236697195807392638533770673637635094446637303080844555039394452954505406784939057621319555962418483203181385120346892196568376502457134502512079927626981429073844651025337290725027942391715353876711424805377786910282189880638884307722141656474252861125011743904281846333121321580563895041917613762524397127499393002518501083017880705953580842563913712200711900508738761808868927053192986296302402375157126053669734933820166797959671606596960064062821372928985269571690337072468870463118111130497396218949464482384662649459278604478247668391129346180375964579501824640108677729057454992627585487750519389337352868531615645658063186271038895133443921452056047228188901184110456072226027249004905760196229627080096144016620515160917259830774369026491914182330639208676304447310773257570414683147087398403106612201045641853913237620232583814033082759100876076305661444481971073922059089389873287838891411109632819335518321589256719222021493310885999249698286630275273919271157043451097321992684441003730952057350498110419814527870889943289854487605004645414225428976988081841310109609645522022528540226374169968632421691453494904067762489544793906336948343665284325243397884137190037635088293877171284975129331594954531734758327679274634961870141630205724609565396949853384244074049631700064136022191051328448118151686107658210680471530562372283059652188983085889375449224772835003817778600945289775151669176152492858052540717481980708634123164322368837033854455787453608876232024401899015083157639644464934432199203228026736094032557183589508154606288346765818870408453055253044394818701630064591197294962208290060240053294401849041132191187780211802124242895837314941878900909144911662130220341791754703594768287109926462276288431414781007662891086832667430778146035768570417666477325924873707250455026203487246370099396677676234800360512809798821339627726026493339925036720869726373317855903068099381901795088856471438183500433880988889966570166520509269989273065365563881856172907033111664257704022098423868765527832861643139680130361699969395469088072324441711790959922007402454254458420530630132524576257827864479071074060738817735365322593943815220758854381837536698407132651864076492132399744488872344607826710325231344562947943904457169946501440721853486042882343818484289810449925087217991231611733251304332084925022754995344839801772183989049462215706635504271457177753378851786469972435799958903579134544931651916582950287890057593534461707149282363418951827224403241008863210302667523260581936183142877773499118338597617094544415720472053637877680468740709700572526671219529617404888403409389532650336858408513881534905015336648075742448957262105500986817022959666073662006916258225195226522735333332755327971175258084221422900616009870264299819054542442667502086560410943399578331939021045300448336730631887813277621410199438342968376675498668722555206848401347337180454703819245817115160067957035821688691062154745701070280314259608697700827093684185730895412534015432718659142068356800432303621736957796169119914533128919582785609089914088487282196277259596288311193472544526577638770120090435064200406545813280850466018491205401930240563408255331713706132779571351447443179993881148414232665338522298813595577281204054315000817549226186182402075592064823339604634413483104884566202555227295779981362317669478123208543008298239333288747924971702398992524119344562611687368697935833045241404646526701763872417739386868869696630518283826890339964089606299302844027599234344527110169063980440277036702394213072527239889754174521736028880430181998740960986282766489739447053916015282066494778326463079555833652606142616265244424207529567040833841766361582192629991846155062439243657443639140570499258916431609965928574947626784195959783755743382279855376339997891304011741762375380062763778799695850332680006621542385247165236708014724433518846146669487330483907753726369811373566780565579271212062379636186756122980044260747531258844423376427736365241701899394159182975988217714436354672835767491926949553601048308592218846792096997461484526207650494632670038830153815739253511769730193025396627991522938533183548095335762621975754572385276866576279255967226505468926449626248261346719201300565368571409653602906329572913014069533931739836073836795981379878059287954333948370391703701436150855826004592637856931852933929345766808767899455022023213900584027562586170755984378268145276131641116745535043664666905884002389389834230254521741945524461163777683649077767095568103778325718521391701614731935546313928868173973035370731480948723338414157926297932632436107300421280485770326559043056116113409399669847016350772373170086946059706120945679452075773284419673536980727651918985925946145789083117613205512279733202609149459140672889544320990099788763653630637093554743374898455166368688680160859521588788358369000256294427771235385575731620302535125595881849536675557469416894502350478517305197653583546684359189589783739440106515778153296491914766961750463885466529649213003865576884881866226408328278733922763456739873355499343070128680260022441698023506000877332464894281416755374386683320791031570654346673082692197104194352367646910173967280782210810137054744529455862198467594023534519546637444212791125021499425633661985724894352737148220321047326417061304949484178935275728513749446702980703067633978675235170555093805751233405742983765952874438642557584888046452656946683777606680432257423257199082072883658940964057404417538406283787370394305245527414278179494386939956212579827625155003351790725964832857987930111978123089923081054412809094424855864160976093872402625335637797302216728284135053413469607990333243531736497867477414816344431589764933540586321177025879810473812821944706806213466296757263830498220518337875453584023931520617093668086824012312000996023483524273503981286282957337343347560547730192439174301657131830030597932639512830954749342213933945431594582846962212058555567419280453072479057333588160161837930906631882047277768222417176471401071591505475049597659611028464236944288597965559480098251435822161239315800531586797012646546128269610198524314468948754349486190947921439660411321260506988202820382490347630992803519859421302959937138391740700892834227567211237418814976052364967206075543511917594323493144360956561261509313258728690497463476257332122701201234485789721792604118955739154393135188667573931309377647216024181399883908381921711798904095434071734475863622908878406860417168048610611298048331663222572648901702420675472785995243592132465641122641291823781514776044983630080355468824028112277299599213310381905869106143812190097175840085074802987420208450292474305949382409624602516526814433465880156778665865438270361936332643406036505619872691592952973947722929731122893696260134019916506771559752523475112340504563514497049968009777263493140721655647821406969330929282639337594994353971174325395957795385657478921308652362725528916723025794641047901208972443477936658112387587810536534115788287664885107704929988801429970745033875077150598042309347600965040617368770662695624028050939944693786188189143388527249463322411972983943258509339820390252605800486328377532066706942865352417634584821961774035158812396096270760361684151341174927611075663372081583762246873071764102069562679893162702804612824969415093421543937154888537201382439550090794352809502822390266169923969746825977860951511077415095503517289249924619102463029543653492046765300965807452551019099064496083719203349584156499103436883352992948747973493693415197300960968910036509872297031336055831064901690010729886659822845775067335184021104172809821780672269739449879377530517943425714833868103885787684123481940900769127747947528145469548727110822962562404179900468101810841764728532514780145936553976726836851185835246895759060782510132610507809422699834068112946978400687486969262609145796176190410550271861470834661701714858977372947236165799091737082169363288332072459869392871847596178979007809539388118434032976781179820867390549646757756236666758452413529923589086793622934899407042212823058911585485637828699530107423400334570448962328459714836388968912500841579873490707716912729563046967026327838131514469903503590156691641257682919245210287532443725843564930351790142453477982267470270854031748364830053530729320787309944315232915077055946612579945990654922975405143230076331962493358436805039466524415747961276737234957698940541169573999935597999002055977167307757806442144742460467071010132828355639223308164821279617167993655739769745039616036836082456794529654147490382542308273449648571644992992767020211419639774240248325222716643785861220147635824584398837642124219813847104850375001818374315876007626821365387520756677873361725163789392021672234103608931493204790827857955278025637379788878948409671955051241290856719981935612401810118127837314254600354359066573659847006515969736339624708679752404762634928076380250850478063716354157902429462150879819854149009500197224087486276918965932546758829006606855055906787471816225589321020817751091915523099213005061385422154761074093328845308553091173964640671062544384308882031992077761161865698959752574786361959766522806263883013331156072498006810799931428253200854540368914142139308817107954162723584609978377600997278044631070469257536639752043622200661963407543808662320307305308709266689973337550838167593236209763147498279897026115192525994658386430031025769835225531716938497385857847483105639153948772073894352830090545323610964643705407330936633232252321915036556619369732342866210545861055134938482802151770924384407668627172877407480979535831353088262599617341738615268091565903835483156093892497478239184247633177664495962480509309259973035980992008898754561885204424848386911239702525231232857285158568035782263612522936337313347818184866958416964647364139940446918444051186610949650216742669591161840579900051758809740435636087486227375151404148396937819244665824265549284157557172134487593998260580137208360632953633037662976421484288472590820790999473018827879666780272068445245058277903883411848637557117667792160652863549443231021221086718409451841790477777708435328918365207144347464894469096857517643934906458668789170546182299666939667145877467333678240908409296430370743956540515029208111118102741163067484295251559516775858943475292159333145839756342153637397104512937959096113391852786123856829965134275189759214897781940213906491372738834213073122327822156277870463244240197773830159743855899885334216746456766025509528015462389477809803716078739358905103875717836497691547278868606381638114678183304093400318832665911618181212126270180867571443944883507506202604881329095409483307096080221686091081229870126542454469413404714837998196660189831236086226671110726154598153026867628222935377188884768973979280362295609465978636534890534742650769753687921147304149687735966219140744906875894755976015474573325047594264150848989988999003207223030855369627068932861657901200121298857122570174023456557932094870021693205102771933718331360615977421683775722810818213569651922092964488435443823906703162419268175612238618929995436492647825134791262471573867732922803802671677012198162054247049247390415337311344833272816313945969469625005241713808887170970214435093232745920838421873426228294067655826870985944464677491813574127136856983951960187538825548425043776842126762704681164593528137787030037966221876581851294101598645525783740410930694871304364650064453247855205117546311337656695126626940988872674307238514950480442258092575753838316527330143586631315348376596790876485953990275627170539915215286719724429827568312289977576691633544751316714157520507039639977383341000777004617292088303611327405771757799679597409676591707230707638448364538551735801045130927290004417283337322216438377203192013682882219316068607439222207792463696230803355399507266655601991215458277035957638609630124961050311969422593745328883038352888234221342844462354084437765444608834640619874552547744096166807501634882144514433068375644381478127962451752774828115742842058427428099830433079988889240471447398383182332167948630637625409869326700821076638362205984859205732969653316342244510670934096373040154366927722777047352782162109926713026315101133253906632979330377692012246777088507224864466687778003880118199920697914187842858507972763084822917660195986076156708189239912217534274574272007813013553284802283285684231288535424058269395333933677561460385921458188072047944991575333119288011424012450036277229681570014181048647074871034829756115145506410079181851317425948431298711110309745227917049245749697944178933818354124967669059907792267862881249564261925819385044393619907104145751416560476936666760394794914574323143750177083173507779538713347917731500090921616772308980832744952797514762601593646415365219844262026806363067564357962696271064351272583631885302285458409493036707963623879976677028418531868389374942598695099304508584850541127447114382412511784219511598307878976361511904685133802588706642532881296960398375953519730540848630501031946084508124080777556313988251675679422066733193118305135058899105913753173359658400357963566492629534530573615240070624224501934191389518401875500290400611799924476355360809775507949032947982010227119464564614430526014311081510399123340437415033824723728767482469423599745996425703593050718306014773059857102167961109657126983491038802937685567840835957992149426641164244678468552733316655340276881734570728347083028092234923193227849307523435840586793422264108885965607742199188673568587558611061152379423128096707303188740790340764471362330610493721216430565406925626299045886446247619747055814769376255779864525126441832835170550568994671686742393041604472402691648623151131217737476728906707844374356073281799656793655575857522692245747951652244389249642446975335483827509084403957743079491322974418300181190076766158228587466300973068498956821571849153071453563893289048257317262540303312047903327870624766516114682513059999560948524503422005364756510529151857453438065528203469250311278558911535570138215430093561393932454511668547665748931462120573456751640536343800011706555526536007078473560909892082613143357540729787221187748441781842834894553254617086571442967513258871750886524819315719953639272222708317455168660849434617412929009902167537893527467706209063632799439029469677525776464420841609307322326373035273608859981258559296879206937663732393148119957752591994028316825868633281714735996760009081867104901948057787612977506634839382448882079763973451997232821921836498221292896103129143473500294601387436873883535163843707550129594644182754265187843619682436866223016440079010322423459690480151007383775198413479924867592047168788015637756860292470670682009083411106206911935255974103279282393186764665351064818597668042195653002946076231697067964795643002704748253006372098871461191461163262989765390701553752622138155873921295541041552108391480219109952970774729088922689591789679542570628116850748122677081030735847571708124911982773676370587757012389602546162223850332063258484851304110454857200290545011353060098378594907259305690973576195446302047398291924626700921463803581190305597718240212239752539477052833797476825407871915606762185619013412753382730656646419552973221160374794192696040169066085634225397486464885258653260957464889672514049846574404438600501459725958618055776356759965372781069232565395420050527975167142618215815697763883856090673821140118108764801365088411748520394456094878286421969510029837903179436464095477052557762982458744912321611318915189349268931939622121549086417830971895286362773302363262888838983626151995654809844950569271010076727678005047862256737364033136408870591478743622409582428289867518496250371728565508729048387963430667247935756250826169626512117782117738179856158663306986033876922297052846200624438024572811688802423991801034308817881615842162107768247594589553881458479560673750663139878568491673620098115961320241942802645337967618479506924264684247026661456808056896897829328110307927231822193318971453898410764584297732005051510067865358331848929333396759960628898216359425069386466059819048145793952719996179792335287891956761171860954834327494956635121969768190916516830439555901556966955428610709128705241230382220379018696358968044015583047615253929763712808058318329485884681807596485517236769615898618784144974418870215908662499783266448119590723215294786497261648019788485005707360951818722004728765814191004816257983019239923514475138043396084462688397073317766710878158263421577362889202093665028193117761467668119248593118472422157711299334557983001270017325596020575795031097326285289061433201110235802819873598578500984744957090627203305991726373763880640647089822198611004409351019989230392301386637182415305860650722219739117655780465788780843565905060336000812879652972248940949105458347745247320981978695459583211360061616475296305143458228810732244759633437697099744676729590945593957875093252063679604801965469566437892237332110313706485952187734150662092785447888366421435688146031679193644099068140849956256467454057993921519878521068720246499776529150838885283561748096260978835292499514209546728974290610503807112708701783543606681910868924093729881502583365744834638268817373574768499023018292977229172730570067385910826521047522853387138912094309880163437179106422702082655946016310809129388409568715660469636857780695621649587967232785229058179406988411377758654548569794878185075189099775093074581262938769412834965085879895280481151024187838600486625971710234429456957272042762863537792792810582803536275479277797586812559982392562168698186717115417711546388561060187111534219943631676457971391668524668853525817515599610576730368277955002150563675038103053206964068003612686838761980452727881688854735629524769267907450731034609394825088446683961873501583931792275736549805367437479036085024143262454928375352089598374024092151328412445377741841402729533076737359240192084276519880999332625999428473619005886542814427295878133678797809278135244017053239733810872205154845641774814740167732998847394359399454951757658467977344406685737017498108312367132278245400013932708541764108398391309788345488387016832959503738425049892382343530256311930792460842832642008281810398118847445123431126939602155253607797212325338493818256973346017541467859046852335428067601238005380031398298922686439592644859357760323530764677411540357665509904918493705740632280332677919780791615949146991771752730955433353332851033523286499278921253068901851689664775669307328369543157656446319351714377325192012458369788153347777231933793766716830731636941707931983385003292919088767042092900868508339454528942487426787377055716173390610802428384457059764268661252025348253206778225254305403431674991037162427663796491640833838593236268092448092973589330517365001923939194801455441897633876535100219022878451875282995819027255574095455555457980527090573973260763684940968303953126776554164808188650434600525894729483412564718010944568637514585218041920582141098450891921876187313036081374558445924841792962929623164064403742145293475644825685456296880766581122908606556863296384378455918532392849198557652235186867591281564785558269674266583091491073771838488018286515814433002771952215784909978642375868386257327027724215631121895607792588126269487000882234045351382159797730723137208489337976688760354519508810498957920849072009238513724602080389747271645433122931441360508510529143304551944677976266190511594751441052471533572322675768449659637572904474908193936343427372560214728203034776920601807588124107820007788538741749763374586693388999991709024876709119532277829369323936939667702961184922609712771320738007043503267832111548137668133203021276137289835412214075100781425783446222276229360956276162938317809996332920998422030371346438665896574448453862998425634862820429859374276042147064121731486109335823890463347480297734239721949179538540905136764400599141431440576544524763926210322990432424779557084320620400924411490468355104047289531651700834203292558720963559863692298567226173135879599134588753611806075928502865186256501163098942364820704141142974153060428834473831901258220217786528098009078036867151375080363827599789753398765925341164821613903801349407122374449874723881626143550779697385065520332886410938666717853648824304008785579963759588505489530420941554847471396314852833423282789166655810600058409858486544679366326629533973045879111353272089656465708935871815583894117346145004065638433233763903628333785827265765321420131642551171810988763901800317844657546120993241456462337577697557116862404982050449507102616620993477007223382814440901154492942051584644920877290022564869014641473849022817874499519732098894517376842867893788013890513159769104214983581818776468972578497568251078863817168968447580188516475364919329847099963814541561540645506764750767244988089981304921379987639970838995292237000115859271477509811494351800123080855656161816746415552202784393537763148853817566629755651563561254120093942846481047287301509105998693169142954000875740417840265803830713241753387345132062382957293672442301410728775180601189396669383079778653523155958356005292192471825343907177910075483791517697112556847062550026429655307085860763336457185423322672584230297124874824013588482557735587586451309643561694199198322879263653071917890498107001292854434097666357987486866146467879882117402356055850833067646236008533520559090360828817355582520691050793894974521863409900992223142564935112350124560989911669798200152804474485268292848305198213631638676304927107919699720730486043001542292109885215347098877637092731317494174426739807143260687905441398080576823959643855216934022559401365147224162795597460147100797035078464182903034415605653083154355867658200653705931055241549606464667345829464995959016134180102649233220814382098905496750468761506025671417445683799957200191967590162273435003281252638837015897581926808977081401399875501989076262250399091753897200406886411655020748388660392061716340440702215326811076946405990376644527006465391295639034474253928036437139617817652718166784374473896546594953461441352452607579272301881610243503219118964713239658713448944421262694799129547825713826994526435015349267686705170198855390806166559005016555562530980102412114504278217725120060682629090818974340644255360990338842953338000157020025962442216003658055953440655190043383653166514471320560357243117996774465008501048773177416647539620190584955678055834459962455221058645825441750726141796108829272377213128589728119205055345864009591069546808081306105977991537566083573281279905524282448084322097263987469596605102974109623298704969402400781766879462782279770420567667627509713579048898956300900649321894551988978368394105108941546232634473227006185722924381475074698801481210250348679120459849542871239618485653972708851914842393959961691682612205428773633268718728814652462367485861445396476327345897464374411766424448592758212808787156938760686596122319146196729241036079903509025070627487124774406762250847787396030460277461365168750801659008519501014947359442606615020669856231972751717334594209511992728655022548583265577442654359308202560216789371062666288709635394072169144907452844543147595910971281019541501713273837377567685066895050563244365875412421181244769676144387630275945752447053562413393327358769943546366253888641869008336947583959683997426001835273444141443311836608523952387602391499177583951746178584361790309042873958441711709992227376597002000455562254932023362559973874971194175604011059109600068899290828973442283733565615509900930184055837863248527862423383131346179060045620750469523818526483754066695223585900124959867390434252299291639261524468092936684822583008557488514430060347126022420211567333402622628672113220250109476145724037843276280155384973943584041366228723042621662233168986412017152779928683030172653124097668290141986672002620214179399331036307684277613679806969638267572918939725172860206791535472286649403992001874891482545117990683172837510289166220594499484445170671989550661985689052690590866338806125466767106323124260680324372610206383345878522303231310975470577386558110909044003679303272500804284376688225244724494350121114804754635551533095879199069518920717984153765339773966345066143750910651102628171989707797707195831973906447901072214219587154321040137657739976432151422143382951165244346465659182241634556515735808071861722750009113254799330454011940710804176350881685215863670845016545665015699110950463613350815787492234742331729564445832005792353500929256224358069850305563642936080916998608602915309226286450635525860491321415652616376958464427836820977557144887493431772918592898948615213975757733113991785240148905716045885029453478585007076497243214378634303059786992524067457870938412898654762935333020357358217286674602879400172977465658898715671801867190904670257618162400437188657723985573282826536499801476658688826243481282847507033224602521606225791670828881801203236113903591072565611274501940560230734450217712632535743226877115243919753664043823028295006077783110234483389693805331064910245074568900849279587510556118257315668440318938179795614788780304432440002395790582824611362665163063522536309496981734336336659843807117357230650479531322051304852475609422403631083391507306113416911033489688135832979812161941559566503412003135686932144812847392763036046225644917026188604195719760865450680367894017271139599000219766370132481482215873856637292475325591140375494835758634374188808806727073379295456946197114893881946227891509640570882662330295396430312637092841247673578627075244307713610787738084605634042970644956082200997110509471654864118356610432493165917980381944092834687882040266824431462486486198046245974166439641871303658988656219737456242524984139304603810133190671515333673973988171485771414093105760538918549549757573575055717357815827233794914287892278066799165291301386812903680424275166838667256342421716244084726471938300707923737322320357029610169623720815771171300679832104265031030501074959259963815362257802303159221030976376311377989144617470126447195542763932767166137862598061084588725110433348328464034546625621852860818366640640877083166551285847186899886388657019636353177028737875252439129950214742178558574342207771197837382802543647420690898650096308860167080873185612432796118034812666412816964870467311248045698125977362988228279921999211195173505508491923756186733908695257455863366997661595019460893333923419119972506505374484683955388120039693376854688979046756065717906294320488082356896808120664634892467001368436739546068400123221328145551321977034684035586026961527961846665497901271886667727610769538156967377105228428005026574645925620648152581480633117449644020222910870567709649822998042707964640677012759906157713826957203853976976418458643687923412169480513191409848341165629286842175275510041607449770771300459243556073033093131297782330109701246977686907680478084416541449557886097454394216613865617578232535012338413604982258242401243471593313704796120106795696237571230367899936214681446325049835980548323596142500586453224535891553543259681091902148212415495404502450680489788142283488043565179968811193119166684088616430331091521091982393446922745019244900463502966476543781035783276970880428334569600503858841357077295816834801977227933985356308753341436210330133386676517400796334324015850461508720349191916436059040198933214973156509995600840022154261506086514434567592318617655894028301662756975322171932292159009954985463933528569640011763032266971171999105207474350988327661317449839524466348032145629141997243768342002716869365193238139754642108576399981756093663110199586451641388596909584271332444821912812548354320586121457744220737942285319364250739120306515105700169964547462824826790101321587605071815271966555056346505075345243663580525225764839588464698761895000106676976408518348854777733104890821467324904396119993311739734911088420270174415848352827820884767383671831151859370591355640413821116519811167606881369671632457177818904075062603712991440308887709585532172025641416476947132641117641949616931313942578465509345829423792809132813334501499466984289573909828979344838310760687231093722089682046090965474792971205252837021811837512801166148832365983221820156232816972739767026532964518922407255034586237316306568302035688754110729997049623847809265440807648535059787927840822587333747538774991863081580953652702737921721391580037149482148785723770163198696947925383534072815382768802718557880678764398118695172795936633497827077460715698002619687579524303475318191510890164217104084502422451744980537715732171183889899722144942987747153393592062631152572718700531012761817217993198946439209482000662384490224453321036602370683298481581601902353567926667731820563259231619384852736547303938607847720864294641692649707438863086429046163007416748109782255607447568135358125883281543470993533682273219811051731456684158798812459670106379223133460335719359051271860675838981105311847557275821823628258222260867063054652663525170687703989995589890016724401190954981691285268413422106031074827233996501301656081484035925406080665999989551274950275762541073756202607699737763482558402461189853522771683355056319879945563584606241199647501766323221896878480612665597496515654804942992465648050364103048902108967414188141363275633686592762478731470975777262246510559269897495993517917809145052257916779547763913654181366203655199840556977350005904335856592029688663362277724172286132394840183975294228982157372796368636025460335162429773547362129651940792620045902483037422211930875882973994477936398832025913932495623315619863774428022356875905344764990334068388529558583628892368688349100289898087390829098277615112021864177625341643852699903022387434713327182749014610085701145773398990486785334297904170319419840265880253980377674905325384974945901536126234219393118795359359002096570726264323914407998912814074435820558597762053230628947060506383557637220202697588863947118370237210592995890311071880042282407845630428350278357527776083063712487253922097415274322262600316788161309895297355869624818721298353807057014805616803819898382285224798662473124513393946645528382576227409412820500769089888236467272466067746639577896549839852792439672838372647368165465979376294386188697765508436911560575705722553651569574767110771612708098996382244756378422871661206992736071574744843054509789781249038458629577669760088474330133705568576625481200129095564910399091291374377560022482003777702020557857051632124711134984967711886631015762759068654745431927859653704292557196971756288002926117096151969861634703794779985213969489740915583191000166908900163586990748452236963995693534980880241621876965452612520555293827223822606818635124480041140566046756761671705360327413827140270113917161171944461124530623149075785144126595740764804441723129062530461408743596789292203659924907825211645543990426203603004068753849212709026334638256458473917676277754365850963908604136356487286534679248944513502845831036470864799149508551176972698706031050114646957750668753557296114913452096445000111130496746647147299491528218616238111651806068500335426286316443806316201274722731258902550857642568675578633937448877276321104397830582460185936744764665892945822496772047467193149163904305667146613276749633363820506417079189494578790661062273517032780201301068842251139742550987308665381241569912085582095588022538932191481758804386162169545648930882887470728917756189322430107485273244351412015846826498783282080427440971890417265850159098388842891696673015020411096683238966585907553169772563429596598397787018844076199699061820202633444502449353504038007712276805623142586384747615104529077900399932801362050069828514176274416734135023060916601802377870724489660639922463072340769769347058728341283816916800782030427369652488400536353966316411558852672829626183550433475808513350707482926896704118486598288021645566137764429411035506589728477518551328900653407737364876498635638859430981636813504079677994644811334177738711907876126390476385055920463159521741807529268265329706068531025395245798977606316074610193418802578909966243942537077126721644269860806714687895776774768272147305292147045150106128862839160370040710356709316638792617526427045660679639186931473560525151949640086619939559329898593407665147707281546447245195874340185214909457482291604998958076447732955740190068343207966306126576485566710092446685342905339414666945549097556917005785773851655184429252614927415213728546973199255132871352884755917844375497287197312830625139416032928551047534387513690008818938216332797846078806096955585792355283349642633524134013576829132064166957795705282762531017870000700626474163457315636933628633374217435831784146807477139040365597344222613962499213431423952794175068338696302592827241586436036810720246095474460536903937993319230735527295079582267525610162259365653466595879955557519640908217761331829902021209669319479573293912415511920627802473508565175029624769518522555914853321099924529776857881788166981365368024315402240426420447626133159407331332474849286125641346125171451552213438910043130797351817700541400013312603860044775863831216573785507751840445012207105277162751936093819302691938442644633484994942024389351183045916709372329367001598643088449170951747207920158842367143004243022726829068499419431430146929838919101039135444242134049311697420250513886836420849553060408893761989174908869196294572027965836665936350729149600435442899921324047342174381904483070370696073278793211438108569684970382410887954304163619188261551614574503474626362945972537649485990057881257401864533557236394726332548989335039725963023425036866355304734713671758966583783571592270384386451599391216536341566187141748910234114954841793769822552908416139775469536241666899716532999983566903365488756633926469454097142335566510581071871925285186083662424925542141176831287630498128946010609778395414220780915961784451737828659409127701101267989523371814128353783963526938747898105336094669303576795043770099080881882917688509819921815395705318417700992184809608421518448198263178261290378938025295809535981287922619652252132925435420505827580058883849138982797975407854405054604490808307818404432834378632123971253881774602726098877763200147386785249517343463240838348645423139884661984359885244477120496619288343423557321450426149723809895829285186411226241759446456933525575770414786487808004592776909714682087492292556194233350147772158332658743516135437863631311068926606939999753091888759684231190957924901976037936300474247523083934420772162439687914920665496177146242730262611696201519667602621211678926452644990346646252789432296496344330285285249814798525463502914448817265198976757135201312454672401050377984797637548484011333536919818861232813658186727189986272829088017303669770354770456409867938077029614456259006392200617738734485167554855881880544520863727550275702019128314030512828959429404346838774665075503497837936004050971190819014658314133981026884972850213885452009000179337533800491924898231113536557665602946966473274708510498685834235175734974952660112422004639029080914963464106619619649556248523284663009400343094736451140970734917120777246990104819328104405615723753678614352656390794296318127531493744200679460534244618327909545605888419711328988423822099908495728155349795566106565831913160759685792182024328453320856207048454642892020394619593316625637426799793224482848569917942825950236727577932597059752859317685949858149337899439708140903430880478320177313428052308405820668324543419382248581916074230880764456617443191971868542612360561741718577519813737405965900091967983551190072530865027097285535863299032283203938786393683112176449815952874200472956280002450502724771106763392100810810807856480860447052263943733228048897621970040769258823504231454628617332828671529443943568972286465751256760075826644707805608388095822716757234832730612678501593785426252531510999409208001563182689707924837250031904404571535995011536255958520633307263827682837543322675656403331369157162650849971796122432719464449621165975545659902062841557830374874115521006389223371471063037734975801100787065342455812409366837668450110406733687338920204018931450677871313717364724697489980258667333158191012982144069646398070070262425034711741411212636117804680727766096772840100523184512137252655025830712778695630642241820906744237998898248099156096189551708299462944453644972484002234025996673861152810111456947518551863161777288235835594645645753043034803858064029276640393150551412365665339257318060774670433295440010260220610409604379660685276285422391887700381190959920903817783068384081747663233576338998849556590354023464552005624381298506808417377247192650440933570944967795487513719851912584045030788017372897103043168496134015943306802324720792169279997556350554168531312085715988422559377288235795317573173784830376039076617276709309092600110584278898101655175055668613797106504633740742504567728366067393164829585949583000300067554573094475503907897845799127082130748641561336538957858015484763779391641605706358221735178563957114270254088932411948030883697208679157395158437809139388041581550993559284875951702291401725509702426651759918968363202590687787465708171408852828626929742206257105295235672692380018843759134570127706060900573952225719644859825430011409121351018584610774599887258894687143847335086505608830884472212486041292294288426431465477790618679004724282014816380174541164657283540321323202516688533415976815273638708605904544373605972691665952907057293694019839676764551661145135070823323283449517327239272606557349156658125775659940452543175709609403102707190262003731272542758757044721545985443919182500489209139741267159457254077332498996172637603215309919859192084659757766817413284796244614949262035669996671832042305258345665542990249190437714821159826385377242019808909638339006229346078666524754712091012451393362860741362180981328590160790646865240883924971326095079930227066084152115889896937883318890248674219106836091165701664280246153931711535157876102882610861112867462325854782214631340363175467865895477282414145625564003484717212122148335128804042212154440714582075213392765257419232571588047552244801531569133561343211235332701286009284760790328003029898401980295369519327831970714377035186173530628144432876778002131696237277127505462066385345837432178950112604058211487266377067686455547245434810740202594444167812445436740623122768780250764655509808920567840355656068059255963967627474737522469670998919984347025780502561513409618952191962876321429543897334874582898332392355451381651402978387110836726366963173607864760779276047012522205481481980961676486130687048241827486886850759031272769252776489704260068238890355047251866424648608567848030169893803843309421312245656819295069751886371401873638133565027745943816308872981952378156906193695694597008804456017539858237667099994457086168357707120583514875955667058139431894115201813030952120813429124887331700417977129059889674276183086356809401106556069739805489062776115998390215513862198224276741606395721786287445821466642016607178250466258637535831406096818396083667344954737307348408868323867805838283943796701015085863261056588110813451803515020239117736877817257697579427887258576142293097686623503643243838032044665985126146329783825618032583694380487763965495046606684850443082562987839597509160369318929146366996075833848151699084642063856100442220990041247957649673602776112881473637108793935494805160204421793916291880151986986026055498939670055798944990762973811086204729866315706612583760742730241143157635942070110901870681389084654686884085405436613552038173649338695075744774552732503889903428810916818385227325118636001415748985490560435832004306532519204093166402321642872688540733630913753121460841562313582989089509183966490595220225069718455960131478347844557059697580624867151124820266456107113316732933181481068919462647250728156033572668066316614295680570312637672360227609014433301527442506482628962817054600629841602214232120119145324262438227273105756595308762595484944197971370091543009447709178515547646220378076989399853102510134075519795572793905678416573098099504503326039594912621723085752269692435645356418168087315977604292271513822327204096111456289568875926159884989052368839946237988896618393994045636670132203432202505214650417177627927652312204235069436336224984573869580662200811870822437689305557332955240650300272359067797411581597187187834177733344153884477029387125478611085513415506445368323474290858230124389350949964850673634057909041815738006057472201318172801624883713432088752872429401270341999093771603241354177309222589810227025458436780436367485068331971664248389256155218318244141301848412380836554097898959977737656406251324487837537814368666436699515067331521025701909562010717935444881225831733674224974487322399828024861516986817184397582317391614998920999131486097692322955435174898298185191316272130767946902534212175437458721919746088622249424686217651191147645360472779348709372316411633104653947854170938326730411673550228029401400864297584528587784026976484783592680951122311205519216719260758821264969457917066181763916572986590595030445762318088667949774333797022813113887583184614925713087175380134652830133159835952561816979762604574488584553477986189644732288617093845051621064774642183576027735042762441401392173427657070229921700273119365047607824090925758812630922930774105436494445972712079915281935489677815502419774900805294394332128273511474284875369678630427040414621278978608516297349179049962638111072945515077429377321845820976435044847379783065362433752520836980515286685383272209521730078905539493464828845557253859644075925699999729917406032683843636018893658440185831326905479603431252092053462145511007583764854055220225843563508761945981291100941864385933814406902318908464627034407083138942212297210872298664710157359956008106439432718960340234354317011991239783294262796476733145433733260383111324844897956305111066876846940294781672266343388646268146632448763341685284879259392756057262025243536503818678890714027866783170789403476218808289644088126667145086963892697366733985861023185974320419336909424571900757823204659779415266625459192190934029088106697150693008485913789665642346860081293502236707443324205412606905628628343752469260855259487127598938887091782048435394423184110637460134043754233055961805279605026618863556869049125373069560122773458403995157675537237466725514209365547869137337181124761095506078177146956199878701924611904073649977777501176214074085205715492961129935954331664489285057689272818847822025771964944673478102063632178693584646780840302000886258588255362038104828562492579775049502044382089803117007230712681229860044007361781212304491268765637157445914880678767314826492621970949107470200606448080719797345447292424658607233566474005104483179835840777107095010807329114295425544767862703994657035209361448838422208278576314281283188544381434501796287085571335011176628513792499555217640704899403351044817319629403712880449599876104255264843176447141716107333611308970243601573095729327703478386803959599513480186283640583817825710977915567293396600229791800274452118128204256508866392529539575025349285319721625000047619958730047503721686968136867806166168985589792045200304552641685107506014799482332385013677783304148088122884922767486151837318532245557413718523111865347900499225327084721878226009542621266032333731174672715714371751340806920592545597667939076214155543275932202983962171041576424471246230053926846140748155050993387885175277073887328408112035298638923010552130315551087439785296589519555651759785474095494562950956567078289944768906953983275974985888633350799620920909651857100854946195367275922348781944850286022821396449302398581080412498271074328864531520780499119425161660167137551720342913432283848893866404677896417001883706961927010251139077603310393706631355001483693017318179229287929337460314312518868211284008793520308690176116471694215104882559506956121100626559137344459578252899138561118926724580186949949074549212948689012442415138165295163315816904257651986458912519302719607932861818646342547047831727272128737609445603682657719164160573434492538397668018784302363828967719080097540218360615327391346788275822764318451026910549818222658315940391704114764788119040661475718432023982203207073726087586381205439196410889528185976286774162219137777096278199615127089687244168935077149417013130312552655577474622864983386391666376453039774950444005607687129354985566936090402885370117221369520609298270111263567451087086842934171223303796672726943965852022887550428545161370965453538359115841891061923393847918645648839309062538366807783415939253621937102144996652071734041533989759086235984774184703615303228525758403977694231162103448468674609180394719564582200598548275278972049041904350045777883844738014834682242148395117243291827914861198461853542682529735472916693458534570236746693933001854476885317778099330383363840536621213076214463182114785151879431766324840645264345394280725704873677012686826990555679682919355912228439097571802482713281057687757889372805328480659928804869125722658836761581691730642071034102082305777017288873508360561320881550610211000692482542550740484550401239830254591292666363673239079105237840524523029054925081369361726667069631954973141401335141922953821427148906242885729059527271569851809056969181794701677154939850605439287468803994579298522875338516957719761839146010597703311026206864722805046541179257628189402460523219846815378170789043819830521254213431472755682243480219645573274663534195748154385895817371805514407702484626842111374736024370725803700735155632293188959535088288517446524370417720840658446240168311477953568071731457572826731642848595645001348471968099065059155488345333316793295654855656385533647661961326837545544597900459979231619995772389865027862655080602484152955830824873608622090392690640884925705273429744490958792780519166419489298441995840006255593640574717793101780491739643484705054249089665071313982289444745305962574372429441909565520034150994011575103653491331176966659522767278533965727993850079202390334974301004557047355655798787085620244244944551100696777020017633008075332711717295584481795787872345913117417219108608578387322889239246839481623664127288298129046758475103326483578467292244284387267686025040394068460653170688805496866576199714467159942053627556735051383147239966324575789449428902047605413736672016057492940915489583024647327745168508477298844581382722288761357681795115858464879623027983609847255000952461779062033391719414235367510159445085353433561923329078170660672638242237018974336813498154603911440476155677040496577939860637789574808663669723459263061171669525673612272840091660691604157908063983527543983316917408993993740934177492985783936886150680452351757372141759337386268759901492208333154630470831624455805338037381184021548745581087992755087961671599268642471794595640046526059344314359706789162846380560330549668324800736473726726171550622247187251678869190869513446463873039410233971253426830813196610262060151965501365682563779281366391773367116941760039774111076705119698903444309451451979043543814564384776514794817879887958797572547783189315931460377095221430625637455727804981124276467104157470625120640465477573624315792533417634588076983144661418426428908322158862801699401229955407846552413150521304359709307041275570546577213472858779612547537444308133284143297449965114201329891649114058296823417563802548446573062265579973875586871393603927477703039554771882553238280560074163139432162303609065807691538896478144463082064302456298496960879632787113885311152250587135343397889730826772814492443760752630127992264137171875517569724943218825586626548682281427169719977472492144414081762892467825775015643249332305716695682373176512339842788459549834381505902022471877888260686172066436386433862100132867203308971328151655189669771739758492562170638291106063195937946501187460381220568257362830241800749774582973707202969773686704179641135872200569677806081808239026782585108042820216974895509878276805617720471303384539162229427756820033726632323892015153387227650249944336660936523302300978485372013262016447233754543593506988220372246139135458944114441420610302762797080816040654418331432426078804510378777499654417011737406430049969985268340045112555077011487600923049222444095184368366806467281871839245645882885934085231303083796659172847724044033454192913014337730944378894948207999356737105991844344572677313309142252506341713021997676624037578987299498327606636169472916120415937891145680888475842344301178551013451996537015542325654926677972686728370206431068836680590972437441135746876675951313819284418002006935861509356459777774515104634229732976185344555764811463941915249289272548722064483865538329328544080810023905385108374189948797177300354464117729775564614791259767257771491256012532699533377556551692904617843988296030011447429875743167386740855082326260476282708893509431998239044045343264206720600608997048841433163655066487733975275229249977220646086645543109607781123082960425171729444931944158783313657631621981578695462397390550725066728875493029633315799987357204855690974324931723374869442709133921026371328057391748682643614339037611455522760959797268337621438307353699634434103551480859064387876228496898971552903981248436495093356998700921639864647960652193294917497239181330787178738913474596806137869989828186843093360059622631912807398864278508205476559953582891175279868354975018281283381760326506323435882925935231550694700052987451713991872853133383857373597078682761513811912164671307474596913112124731584435128032886771148001205247953165637383051138093590222249721205958104664354523147069801237114597891210525273448028096630238635902546358368780484316394374891709336190335544910516118991304481557003110389865012962277554390006320898207204279759898206078995536087818489507959215497956695463891672683025599993495742300410972690965912409871858332200142258471761361772770898069794723059589193074347713666812505639543869943011055291346601090867127314235548945607906257439148151976660238355448406432607985487371258349193128200850175214339263952261936921373499145896074709790421815569520561558867577788754657369014438677586112150727881290274820671264472127762380525759411102351519579823222985186185444663309340847419369994487333122108475075659755805444007140469565798720833317556737890579596258157878428229079776067381174196391894521908255644735261175155567634283145486070197487955978983579199351308185200486577692158889058915030631054195920124949076320161080835955618487913755984411546328047700725521886798891131977213475121145552543782186936343247990412757631604636932248169244733638148280180641652963414469578766755393042835071580853196304830490874995767659662981037194608516747055538149864343935057050322035271885180381895461314973737221888728186568029378247738618570247251051710862554782167952638072933918840726791243525679515868052768499595709775751815677648886296966006027815990318522472418799756129005310363827337210736342454182570707392685641506728156983436372023875718158512036881220652640680169505643603092651871012938458965490124186057602078731436489055244861452273939242587249604678385696592208662576572896377927851916621136662577709359210468664247275608236666371951821996860930875666810992402860230851976199196245706020837855140381518922135283752624827960738934622712563789894502475546594444447047588177186066928127681215677206821702534055112740375545341540777380535179097763571844156227118484130875485933608442183389549941339388785365505725593361749003171743077398038222817719791961920305063799039305237661287564560066796324816067323374379713649571313316664134644683493178580404911641622573125988955850320692188761141259607375541610074045770332680528924899828905379171224687478912522297823642813628767032210056366119551132072522736753552873209526487103986163720402906168452379069631576759949779597504504134813530724003516947027736661678036871410151460774069169862830031804433471734167214358731620473566083251976905654487450094259502298685096987182698824548996860692873229226067435019805405339900504093324759637884346352865004440303298816907333235417707023810922404555494736895991728147956581251389872073621581827913346627488671760231473888911265720104771594308011730627267502585464956190567068098266524742555446550020587798639609731464780319400674746797891633013732287436221229526429726992708993191482020531385853207183595928052590151176015088199049656113603736683052590736397805891204872891896328807973716033357530551351763526429675966564975602609241977922222556501514587948314183158415012797992131871400322475184369642152712867072973488230711957443337804463412681321710155162681461807814129037239275283780657120328177070952198823612202457082470405916470060654214080708452889782396739274265457397730577222434640396758413650382424347652882592838307514339719036957888603968977502818121629484755844377342663527209033681323459949334710984187272230513278739706821350007899057518386631190605868439974534954745568519213454887430496116851754722265250403787474870623517073608452402594916855305753056056630713762499260845486221721947769482553270355532760114612001678837881887733161532063459529992894336874975776980233528566936289985010395299145667191184942755300782070058944467827939095663765180483841130416617826454747936907407892380752056425576210962388824864206729502805320360258833591711757674603513364781275672582185480918376837572705178418165066967973538501595899449664908786008787370906991206609778876912130333012418490906217837433353769554412840477793701830648100419913283037621063415791479906115405371642349456914167088952361999943216374740560051758874308734610661816036375652939300687635215420004081836956767145676774340698077605181599928015007401377283653569972682910595906507151689141612450730527964911078194045627182862425860624986714122520895319326401847619556217595543949401558642132071410289202196349438216834739367798082964276160801685221466588284935111562323995421044747275167902297956950304404179899714550613552119636552353933729006118785100786807448945979060263150086932288165056246810120926852509406427568163274046170417262527242851455448502352358421047596433106385318173731210209384412608526086762830380689495473415618671572535088537395517163251897769032420357411665950703155486695917020105439236690601564046387261341806409829641991808919730907125034581367010237619753652602070147780335033331736198962457126956365450561304836680568208726241657176649773746065092133124267429084650659273734737198899634058987587389674785109180091766680779896924971617326835084208552703972116311912328149287757776161049495508585086698676155335572546308267294266689142568365858741981525834373747666267531608663811584569519038828126594291739286677373774273741800389457238348815879338071475033844990870756680720607792411660771714619729248225375759344032491545321486970387955583652253003592202472560208677663649282421252241132785211274382310775323553709374858402617421957056251702321498829317041139700743366918525065890662696563140082632432510044798430472529208643535199484448626006896391996816628511007236954192652358054749132184218023862640899033878196683677813108839621865616007292964947546023996598415503611065945026572105635946490321298184837963534326774481184546203626506740960599888820035787119943190998069408154829031397265340236066187911532014027649690276449634634730905971048516837261726091610799584443719348961019670527353188898708649130388364795349649533373127752416406859202749677248607142985411344472927952670998974574300299829203887792846941329426081113530622082825828622284765267808027813278017445154536145928882839714344840473585593991880098048011458453921960755564094036719279255080477124635236413608535264054145083209669884981773483843460527494923438718959291570448675764650685965734530381660334403419635042963683840333981006660908645256658959283209402111791453569424655125006263326714157866390254862444678839731161466920625136309202647411102742265499692752751692880856196264202032568090548679898763553597099505780218140285008513973251442868600474606087703277818071345854006477148582392971785197155797782415081821296330355821088331168027763093325427606291324779905650009569622962201554349654214848767023154947029453868296389899228603306730212237171757573303712606705282651377816157094332079681521473593453772101909625236869178946752692776201026420088356008369462872212136588870545432539241715989379538104251423640231969032936029645000901249507241899043148849187527927832343094778423409008392852722704336320702069400252420053344101281260906711123044234863002638578324610557777313189150092078483488816167877321821244719513490305884117347770238349500558893283125851412561721328327808786799702677876917406065185502344736512789608019785914056777679879446278984307652692655260543377879315711798994946862528933022099184909005685349246316245953145770246547776378049525895436863282140368712267829138129898978338741482229554818513099155688033156876559304032299313744958149012609831827127623205682091364642953308078012782198138581415924429502868060703907918820440783514060939745281560427396025255080936962440082943535711921560173130382499684526918958807603130852574060747962104362488478298059535415889942047723876560709771012702753391193180577628286341350026657223529517790417018513930721376534320534497190352378439723942410824366392732941976967478285445337740548014019087946719716656497759234548143094806596369861888525195176103924403861750332664060806698615666148417099702907930557056605862424348547425783364737122428087497201299534126299525876012071358988648065464283016075545349743107123403924328570859821737379072331934846568370870568429921554192352492619205168483027896969468966459807394428672739803871901261690698499620230777555393724888706652435862080044664792863412770116815863909292677563222486123155132832255166775941449698964174731342531425198665297458951433131134608956696712009484183446924277065037813766332668483695027366569786663717935381698672197001165571947601175563690325340000282030996922544024595139942119397012220610786223719213949617210379803957911444237023494855808242492392858015759639031061759190672244043656425326570291285172926774938886004646108405529048638611528113383499410652122813534029014568607580146439242133914657258833876176695799669058121470330837492331315717437923024829031761789980175760113286805795050688942684340488041205740999670805528343965059314470044594515269666188080233059448333346063783144417085256747043175342989282673412193796959415467194591911066255958728798447030171072090369471609633618633152382013619226848229541031527048824492749674504726677555099890626465020383394661396647169348184969157201671117568693347790605325911643214015713867695793369730471005149014876790985953323433534597955226426575446301940618294821871128266063332331293847941324914683477889200024611981516117243290230635354059969709694145822987630272536614017044561294812294217577276249798626716291269956936593926922452029976558226419677988736797238401990105260054401830469249156585909584706187898716749125738914458056066355406484423588000863479259059253549780123785453048234683222330597964400630950798858837186735044183011110157779325920317337763969127339802965718559029209554822506952566727928241412063346504534463709302881754826138705297745412359008444037467220632499682309429745758931409184644151321455704600952595397157203490225493304617291161837559286032799711608935096464390401175130141655372825373663788535959120091939314783347157527052110736259909954506930827232971258100456611611799688428141165281496491210076469680042275727872502685828883296881463951431466120720959741870413028724592392842723542180521720546412936973111959857996296876988841763312494564174033094196248692543478399364877338542349819675717291929094548994748659759638322977892861020172528429959584066776889476318990603551201467232126153888737604856127499432169406509417529311987048353526225404113326071740955783867130272136445617273951266558151027204193273164958161420298390795062647513184498560770910697490199247304752924152295910390547218757339883563750319923192130731880895556804061794720749418057303168142627860025593989053254470683058445142335774038855455431488832717549530172940585815612313621079688509456724471459692795582050078157115211036505534237275511700364992217629682619681260234213719494766165205243499105115939858585005225302929091553895133403356340364500529839840751699858680822255298530445476127699513497870909419947103960395154236347647132271334910364506311677629446661453020365648395443642569544008440144945235154653216677294840013565102970749929631315162353065479342091258189211140378749972247148732699448153269017025426531418537266479682230545564817201312255583672519242378406538089777906893522468108682279912447690497249827033070222500611666913733987738947179680097506658865867842067620586355542529389141263151196586815599179992324765096421269196030293421116652935317887249867596734330984001936539771061436761406204820953998060717948001268446741659751598290658417889574665470609144930274103403196413086474833967568194642639486651963674160911637971320235763077535530624790839904647803271679297958045533407550452550364578564715793743793804465735366549987330964517019412479444922468441414862741921854268086763489055997220335882737124755770417279228945332999371546372304948524490247831868670161098468481390906194680368491620600553800285381108818313056419847455910172517634082943014879042609743847260103990264014080048464592501285258239256416730363600556880331983902546264952173849842945133795624491795448999686031052045858961909302685862958757254558573940801366726899011958055231912505201035391985791194668676148208470257766997274063090304828347707900933966043223270949433062352876647626498381536378145463906185511118322534937253968738493610319003487803130824078242189527351365226853524385650776351430334213797762347465905906610109763783749488671918529090957596356326000775885051937775010523884127212815820418220206875505231254847376655368688185439253594784451328978982921282272150116495679724623887289017541597558183700309168489900157693255661283834647231268081510815353966497879346399072305278782225502397392572412416341797448166836796212656710691508529173789271300005318122065291050571447828110812547899271471896245102323885446646866137092186600249722052176527145217656171401617717241428656041676101279832036559885113300028140435053604138589746940988201689367707021891305120654643376897703285896461106886954663206314628628257632414316227478250919838532354345488678039482743195052325227678554238260617504910318947596690476343886841482710028214885669117447035765576449388456881198824878249907243356044963084403554914868386145010072134268051338648395007527121904599211999442227331301444400566633243482652331240621228856210744110940717006121898728310894916597251647817874811621926983213548972061572685969779488691196104813629154432427134141394878113734583376584821564125681990383114043900315979228502776278979308712439061789712850505874399258887261014133717369304226513288789743448655864755442166930595854309792375557881887126760437532354579834264859039338714514639325501845884538817903999513306135226240354327432217468073388254756391698247570111093174400494807026871279805972201836587367453103769170893748912660894851162237347153052158975794375717660758720016336287545902023828462728516502137574887151793832114757354667175514129986127925728202047678200163683364703021138162408819908717721331112933666764438168824659169616415734962246716982808326103670429179813750098571566822788814626402068451360904734340141236480105013096416254715943114473215551313068900730806846687480964001229808769115794844783910983557783052177017396149952111019720198068288951652739278205013114025493412453541325213295384127158547699595538521627999884594637004909556459939258980943211899985822408087699336168823953585031120627033142364873934987908596091467910519704727108290984836947535862145651596292022914193513283326404447036321130016629274171836616215614089693745687518099563916378154337302154527444794304453408469713631193569782140849817091288983617940934024855693942263068038278233177950891482996272051199323303030209812774976276453277704904119348706377287804669310641050286810330280591372122164345972035840305189654060588560577723524466516855683540041138219778076102621468965313906044878148752963595536803953996193947277737632913216110699884845569800665274937919924617105401860801054658244702732412585855014548165991487265632701934160906484595220543187963686589568647157096042305711149721323177236993549067670474470818045675306033641155456887887100920771818940696161735391467129697973382044374319683121789271296244030270000492424441353460426420734064165350443706400629157069917270072359998494720476998456100198539481797257664316296654663616747336017434008435455082708359892368184935453143368215507027132425111682383627109250860569510483115580972349598400174398425678133839034106873109263815584080555310952339872641378705304654644487178538277721972571311207104044591800993649153615863200464027971717787082736143369573468139062781950426958340996473033053958451886505758488270206677571502610817994515994618959379961196915873628602441482591573390453258713742955135854973435991962709693398880381099116942630075013974722936533806254768079491400550827588103892140518267130127380539127184480879827867721757856841997346893706057992360590215712779955873430752801020189869931849082552566364127082807374666434636276094765615361693086576874592742511221893861400825190468123004409860972558482144952471242473280210475984394484848796913985005538411582519193529418156784998396980864273187510396598983604789859529768865703921760727623268182705636800570578125736810383984374627938601974872852962166472586836750269455055743917824767885443222926318512462923614440247362537510874840219907853911902014039360080328637458634967553199455290323967808394133756638752255446371460650777157976331041362818369710193305675168643139266237714389248032987858481744641307234626710685942681100077702940886079461868401784123614967775209216629223208303936938203381115864630943198309981452051705166640653961663060089608675633725449768177774477276619581599390378762645277635618556496209604754075426524865578915715554924458129297004965165344888745125602870611499850839002229683250338004540846085980820931880035748833343129055593689703437077023090055176480464314754842578143110086559286657887616293730221525523955694177067951785041035095821734417497832904734607066675209045674191757916999985015908540192156788760260338844213844842680350006326440166307242856456301578416408865179289213204641917440532468825035870940698741140419523597063683108728837278685188976390842310813457433735287680595628837007196938457852846280861747460404818440198046628072450811317963133243277011600620475154419606023854942004777084429876151834879616635330118532598107269183883848513918528145857038196556293245807979825655950210684231636610852055273765915638716224335442589161441859349482304701953675224606772846651167841841740185284337769959708104680650867864366793944307877762657249747029343647963352853051694035304127986346364026602680864332824471408453306955227112479184595020176365806350339309875016551649633689847163678385702543506819381817225893371924358592420620545382595910320394724838764810656395191391789389722754694972142766524943586994843072742986321394440658534195167329731882700377662920410034885574695653658921495852793776122323205086897214823101394268530913120327830744874105141405540650319881780662505856197954653995367910180313315371795724287217630161900229317433187644027860241888460556826618459503443263320399877052024436973429826605682764293029861998766981075470089897799099875795582852430600736746114379684830562795615780431993901655180731699679608709078106920140473881985579897955910981713479054703030572402861673143910021275595910999377629830311806728235919933124548980111596965411484486271464048229388376629122620996810614396668804517993239712327279445046461784712551577580527267798668092063258350320042155362269639947059224676070225707334369910868644563982005648804054510349869820552389957353775939562744009794484904177951347970930258346574195907087987878688843777077624494365226715810588259493335596102533425979840769477987784091510869774254705706484031421555206699190785526881407943762625969544514800740216787486277801253797187340482439076982797184666224139321792202960634013779756539326130614549507697638628379250387882181943590403757959850601179028368874855495913343973666356529143388450946495757043229902311392940151264782128447462207322792991071171805425075801137764455669536779498548070580696724594095094976361827291968049165027618559407219156848551157312957652911203064401876145524123101248562290123102887603812868152365735825331419346111988006009685748744997005398076517671960543612946622405404249254008546971408802983357800690974908764256347600322242388141270395170497690227080995057178678665454549548177092028111782406286433283755766208555453616368084805924318466993714354834836010641390920069835550756781074869371236545249303089254577172239551333251712290878525333628587179933604598154158084316304522912922159872399770612550054153235257794381853823379201768816638746439425190225777568725963835700280187920697054641747822637430708620998754020514567546853940239379037031816967893028077268258118984334899910957323634588911214918163036095040447943477416847202133550531820900093654946574791460357194806214687787064700323767536362345572887575913101860408869172141372665946410497735689431710684057564340656878386582074233048234410945550227041298125194132559640620820531673087248333051767520405730485221580875544319154381499972858874016403938943877021416128963040271709735529879645770769832442952491321145601697107341722144428132682160146625624372162461267898103565551175035305935349796207692028252960045005850372237269958636794235331789645859386712374039707384797248826186789965311488117471164236284112187504497505683003231213759255333565989826420499666620387027637599545248388359866072891243926638184968161302184536958459098344641439125474505835204092425888760840412993743719221333692116138188458798504602348621918635965168884729127143947025859863430807308975589106511334348957212807468186263905579865971340150546934843297617839340635525657988275741896594453408116757586037823908930845688527737426570944785651924079959654001184720751412075120984265057908988683231824695775707450025448519493136598456089455480792929002883517650454191592761165830498002088717602464207170147500275227811704644437179823730136435936366534153109111893284850383745306189224844139334888999683306323618198325663736947001844392758276308292332721575365680193003918919109053943969947773281845457939719944910434603868952843006486903811904438926521428581188921739237652482919164317069455614388988437333535610108135592876013451429367073237173961065036476158551029594616367323303384137314399180489129546960229995750411662822656126830339893048392921750612437716957937683203683135307388911012307910342270467127986375247193983709942298293013143773168687781496682527956586538545388139973277398075463863173853454709323318874273919803865247031254470197037449768359773797025845793020681214612495132657624130984539663522300944775356919190563880693406570712862827791817589778506827697376384613746772677362620840916858783025987906907568182568474680023726507416707687733658017039776726440793012648609438537679450910955300241368774648854457287503847812560682699358142861218993294529578337772809069014072931437878663648577953227733101937077313433660002904600876016363474051370229090472408808734671069635390179076432090686873081804540072899271853266152866687454582936600610185104676355194019937457236510028847435241375471798965304946144722861503930246099052148965210164853243521280859540917075569128632831239519588660389449401066280201705883873922561049480924967504951233595587276053666287369331709500183744778569788138914554007824744539566290514761799252690044302148726934733781683396013498135288172581875000140399761929343764047952865405465125570073921773489207225975042575473127606191958620666616011785565560676411451031103157549792172518361650225591264228697514601466904920376387542108071548123124449682268865843084970375280863998410196474953832596699274078623446022628756429921047504902553746847072297152264480924203818751562977360546615633345209588640320197457465142401848998771200509666288054522877102288867738681821539885477444505900804713711362161130228406596612372372592645711464201345280880697648064961280756891619200477074408003645612022695966558801108757272640053467131039302723814992215348298281333468478684466959447125118692882655895802925867545951934638323820015031442277588533738699953844490681340896392953473121771664369055952367917405518529644578363613878500761179944650653072592586999296621529598405821028957331148756985613888551493730733033860637237426412997757222283055345930703887126991364921389334835023440307531699605195560427770304498167293189912540393973171135344391967307834277939798095697314893820362577251082805758910954387009636516536393878095172242948209774287067275304596219728093149611103267786498916354225125713591810585716953359902623730997370420122693654793555476242669592920223037091518460179160031008556897674719226554280299075644550941593084061340431071446295598442200796436727808586401637446224310456974094645246495543136895371261490735277733165269560515501303480109108612526169520571502655675383280595962039600472383509209145077483381787664064997269311597611809519503579222763310084523058048007344230800863815681013604342540401982664227724942498844217513850327280223155236576302428957204869133601918613571728824183540640142265428286651946679498586126694811249698157643446859201639742567647023697966827403933054456814346441032933430525440001869075426345781970208658909418954280927158953506177159692219018932158804034471786635653211683276432722238727367903080456357407764479186564922721901667734798143108804288122278424693068723762419896382504736559770853732491104203977143217476640519300539606109111307614004774327097198823848089688160955069701864648376056243330546834954443292445747604137118612195044090646766605540302875459825347936166080882517178068672173694480265054956650627261235208274872007023980595206834170410818591358702551569808764280529318565609339357341353689111210913338739597062063980327025958012707402896554282988553655342681974678038375159487675856397140281141837064583749026749749611779701720444267933462382100680275152058985228955605012088746683918815980171249859829972841810022100280034059002068882831788442498400266441195832495933480442124451089910583976555974083924538765998293102652880414928430392524154524474984134697780068332440845834628486516714378178309865489909421228066922643773142638591644385407097569881020710382981522787152778197910397466186572602640517714938812038542851299620529211116839588009543565858713736310822028360855181965293061282820092883978069645953484139209298660558672462329772068511731582188493918654964440831608501668514763661981376649841188967962378239578321636259009326783519909170974805031927675021411043986564654325341147084462092592786473710407284872468363805747061666289947372075572165648033336025725277668341616037075926811738358974849796787307834769570340536876004697615663141056113622843530078236062574024840419585197042967089711438629374735105021133213365868194299444672409157884031442056885825979941571890464331860042045559876215051153853657965739697695833189305200730545934284792923166874198054068375766157937765367550717011086179087266045766990619818917952299549400319908707349496475865132497818653870066439705576763392174313471396781123728367285889457107432046209987331133269763794800367198160609744149113787329262848128768856955541150035253690691375735076104078858976297851424551004535218426249340044377353507212021551992483393792257101894815564251744978505101411490347229548058066924316522695449369887306530149141184770125596038794216008710245297689453211349901586132146472667666663455779963528698304739273861668118355517685500127988471788310882329296485360296655916021465459334614862167415773767852247842644549431435642415723834834074073181673225813328810426005504914829063677165768470964217312117473207550750180423417994141923519823915640820228237147370153103502913254082555238604850648986928833924969788434371348346269281017340015199320889402047788192816631737722910307335793959915507414300795926957025285505175815258103550856768514053191893955076835470455007878214325499288755043793600511309035365251472595844815328465870526875037963077164075142876220957003889385231907264813845858335246920396815954154852358088873825676172791088893987904463151273678271516916557110297854619444406584813637665599092209983039776294016175190995786280730872060706061856331506195711513395929226844405758702687877793060679118036764955057294833645123721587596369489037446134467349325930276729599560518203577235335721807453670222230179296091356222673608383844887818541712385967354739896446710491455000745816893429666248855786864743610209146131175224805958250297673934957690894462686650735405802720143028666511143034511425561309412584603634542956712285898020068144140278620216882170497857138488480116584367633976614967549148160426612771827929923195361036869953072744490436933395263064445766906894833995441887994061916802500539310382752365783470548966458614926089517854969343528968848770153784626870479235819279261739393297832716147684778784474215965008789033214098082637987672918170903446159510931119157961072313963232029754214376282607461100205565469528786645733626958598208547049344228594493681450528417441765246168628026391824667685719798496981463484302046597990376016859611050497186208655826909424306750696543335423332726047182777123087688024293990232637829976163246653704138529829419261255609514790655134326634778786877410761503795439956108647437824361553309004479400919095228955047802961861785586000755530933405948978693727666314854602243553166724158078749332234939756363213946304803159208138779333207173591600476335748182653504193706084695000903627305347313367273865548521841233530320011547617532320556467493246211915596339377820379419262789770312195014192423891087618672995726572837839230250087641650346958961921399836748081626619862815821959202812404298446208857224469637652869644002076885338286995456968974269983369212883881766338906254506137703392933829975525406105379444098825545431534795821553162072087162818894377748563568969839351099049063772017179230702262874846771949294676421204777107432690931092217610734031927798010146686249910261173708786028225608110587980337464271271618585970217964325221619763758767024625288676063873772746140626939045422811095625328335403024265227101502378642361640494046160144187631769608431657291340367766129900030881308208108222667170344022709595661048517514144751234998636518066135597446237812827238552871018239129888561615674650136816797042923565174069849868060424877159261567829613899181897184962084555968098654454509377952372436694299146778765011835322954927036469622825631404861624043700241690298339774102228210878923111338929113746802196436784085958369696176409953232276997808415686387642843584641913018443457380130828936639951457684999138705552903678882274095950142350645928087680157758919469594058756757457321481346311091816658991674882089469962572891737662146019402839961634482800857790855186132628451858934855628186352436104741359821704138106554048185002371264402952583509731406945936054833579732504464156339169934800064466274099494012101376089147576453699826748433641409251788765409888012501042246941015738031913010224322854541273053639086680512827496154329879067113567312605207538318788443971198933956421770929234073519029290356791304365949034864799711354063092420225780627505326034729501164521999412797852258376818156114415289347922869763826438267118874250612758967646136804825023287357566248772256309083162352271446593562887778467327316592340487840171701284064358025555622069611575222677761404091561618599935901085519982698613760432407584386519839127006466354637448500450976499779621176788349987365273973288259962572564684632682628214706507559744648574533505868510120664215450914922263338394858032395096976970665099351180735432602142325268815773399869850700707832625718799471275326389456341107540671071691251683321715307461753142176048346520780864508030436794381160906146668954917987454447245118034179963986000102491935240707413697435755091904830489882261073152722293837246637200264172865499222549744012812127997393596880158937552386511829068988694063425047510736754795623799942638423001913328289955082632150844778805660929733004546472243087291561583196108855537269935499915700320300108405604436907819300029720522540479621266561879494259726769869262123645371090979247222117924296810357713111875681159562028410908202165132918648714334492988881963111722102998071364476054829932303272858096791487398741966478236638015555880148145677736416857516565436067244165079368189660447586759914092002970439193084506491062073940239767001879380825277912517587214742404849749961533371719911491044663128929765001889490559600625641091256325596603070823297612639717963824475274328653347893556520278307335921274345530783481209990050600324107920046387765793178257452851582152673332698177302424907885355968536679800176793158596471911813861686386247968792493991727681736063303440451743067204785525330229257909806966355767394628083295908209329519770695976934508941914127723165188585948361577078211453547321582830645266966847718321924938194340980721548958260777513369293729879055477803023809965501716443399107657484651189521285725196708655193878790731395858972242478646510285914645219572277253444885346686222751094777737607935936409945814855704702039189536789394186499009176922801153352985229946465712826443132181992867703546642379998862744901420269526168874218315051423114121906819601614752205022038633427185627574577640834862411328406272925730414353566410573073464780430961399301978073879657849350206351822721967700639451141598008797073413329993869151350640745842706812086485930901054828655197607709790625711988108110849427303773721450697586036686495669249325430457759301796875066466728451872828583202988617609135155670624166602629638745833763837607048282638721499630530472387927127562586580925271209587306988586430434864327310270552119731068270449044584795243534633736828151724240948610191371508047370800718552231296174482267376388622069899906041986258808331392388948392654465479920947187552598192493261031336741100176335380648901120905693916381065834321025387081133924488013468703475515953239869843118644858921055239399569046082196736167477673909798721521364583156255482690894279000074805954094875639072211933283999271639348586769942359976397749421173792631327678484364098698786800953063532416652924748530875218561120827623551374244923732067609463381642359218067480864871971445698072526852964324767583164808981364075848281536619397567698211043720700636168917168579092798117470938833576044304426504683165065539197053908279714791966355494279709992464942376043226622183996510160219635683054112262178432857847106270613991769877878064791113597918002418708109486008614548950742144173863522162218502723055161770601523502708601494867780220019392335373659843755458407748561268652729240419619285459740792559394182227486926217803403044464009578470034553253221272527578788104044516433303611092719748862735605359932758417995166523692757093674511859977333214832330660530726661640759859378336398300034483994259342411078808711741367286889569284207603023163282453728847089102680264428644254407561340797125407594608034350702639781389203867547423550668369396014548010240480960225895711704853385994197879619097776371204108543840027609698602593947124960649952892226060509466304528412644648098962884685953762404493130212402533801212558241571512058681956087029656408986987329876790195971876266937980189005390953821002779975906377039299923261050093946066542663451492214158065821985784174958395143710841750472600108704022206144098804007399733098598882578082018749655726598593627941522177556934879417097427345205204711217063129109983456023984532198236407145410988000464244278382768243034218350350778732155634301043684357927591158253999585525871415372870309983565678425436219431301913297327934024634409492407694474937798590193437572704582895563617230058014859795378533052035225288681978118325295719641028288798629300688440963971535401788680111054752328119689055026309685032097933567167159465283618559608031417536949285779393316187807511778997541759410290587930849930719559471187996633580998572857881728777931802084148745513289456978834656555384043453798936690383500670189992941054596773353891682213029048015413371271584833437735052690552335413715601895332839300289003098974555115948188405481213214814314935097694213276323804923172637549832678878806047729787847567467321172213316642513074544822332359494461138895589986847663724521864728377462201659348902551720163720569975802841087013788877138048485320001815506703998931100349868394776463761038037115112694673869122175394331704982717122859549861820738222539199032030597047497062931510402698784881311209677730538151935020314124378511222945331497650561481217672858762628277338660997368317484570069837553013733944908915988692085200036674715905003414416393138237742995858514146071985834143723498059955308886535226692649022495146353311229642484633696457818079807111044006544462694415818691740308646551942276543176453823539732942138220221482379881743633909263212871146699723344695314350401489651682180993017733431224365544178470273614239851510363181569469180366057300856265540483908948077426038690140098884329824420951455180520798103703497595793730648226100068485814697986136486222714408747873697371854458156794299352660719959132664509125838291839051786419427747787563375008868031583260795346741623436203985897946230748019168962888507588469807844891127386586621248932292419524225870665582737123664649901641025090840471296328662686313553118266691555847947665495373506279291030217926998393038138284029685309547794071537757012613216903911867599038376623540292493053865684339554357993032098013832972610895582114316403782132606344601106284584835767562504220993807529024846024661506961578587097689472856833749947649856519199620765379359481431684991623645697584856866734371053164522893471096901486806489672398116746941470417819156752563432327062898137745433298137487835430453048597817591965311463987469951757097406848132329978322174499208272112498981125465216509557324932286837364124135244272768939054338332755855435924576284189152665300080418474638295083787847705222560429718855763846853899900452803057508773383078833584528145488639307346368141955926468556246921996524068902388539041964224096990045279879574775667657444335695410422207020006940500041391487728429259669050520301547903109546342541710071539704279614715840886934063540335125852347835353035632543928078755106134418911000733817929358517252057377424564900114720778457680874163687263020902941116963844169195710843181729740697255569147247608223380115623479956133703208812147769765381322499680908916895690179740574893844901763396204430912281613563750643489724497132591483082747484899081386543351984153229201398552743194540204951603851303449082548833683892270494236847823067284234400833028145778970837423529263306418088125888133874803540015198299109506321523659610793410411414084759778302396440316245482227166023097094100998769045764872234395610455389605265003906226808376728956351612672861415297340531297044792700485176862151177631239780385608060563168040483266178080662131914138846180989772794343901262133945734778081790164010632855377674585187688105748892897590851675511182864460702580468295351914785460954283725215525344388199435976113397852702389154165028615717924792906893244124047101701019924138924074361126820173471760443855610676751782283889448554535114142715814799169950335264140662631043895201139227621037039279918752192983738319286045086270085451362214163579372899259031528186452389945991760414802371450899026566857289916815853281688295265961746120569250109956933376114440407143338124770647175478756768367665994039490907126980417343926177550296383307936096304333386615731866198971017713453664040275103325277573170215721783866142604137300857956447610164988716872890580421104118395869457612764681889671262647167562130248097109276159778587184826301911595205239782027442815939574428382054243497967841223880976992428124189646105784780285927108814913270280846953342663554805403428240342851467110793894811725729211177140567574361714029958581992104923469758675924113740554787716704549906992561106085709268477182943523546754923658421334777773268530507377152197927534994955335672614423317816023107283095192451727155630450273427398694020024812203455354933436981741456150489521879947284178536984019571727874959122077905735083417737308358206982796759907060031667650748033610021358334434118811169539329563859204788925144325325691902775234376156554050092143040014803556641032812300094480314030026328402640036841823118403880310412595534195386275761502978671174688900052294859608259716704582628174199823806706426884457887083652211280471099243114901188745521694105740376963174534255023826643404649472844968986734557155981181647293935427229564840236652257788456579189526202114319193527396400440636941742268397794555653475194918635918549352491606236564027113066175839605381004882065438604962313220411489171056532941587937739961190537716412434672643353155337144994468134843575822279547506360616608392003423734274599871638679750420897145108483993661149618261117098447280890867253763617352067145086244597128279071109812247478870079201591228375741430656203815294645895761058571591070773812962425142515351507047125115470578971642358361882992432788166512553968265889856698406097071856199474922558294284114073189566164793928338339855204032948690821668499242248829982633843198826936771372563511554860738704391230196844336845180503635861593802200821172693452977396804626028691136691583500591648291450783800826740560760755168886020981446616958909546631467155654568924290707233327404922297857807751026268409734497713479399852998930978248539005747127487354025443464756802561493301708683819821351893866890904052006716030879827591636774351793370587739825309805237946545869106050076545821122625720184829356473655500527461770746125191173972060426158046772180907764468993715637980569923058173296142423387427420449525346442258092748167032050447510212409106492284400587459842474697158975404657514025226926607025161781090405768152875032275529482370270581763012416868665031437152742177900083245941573427146830223835199464910827990234320021315353828186893283374814947361859298750301117583654278274858042739250351965298947154837009998619802126084213741191624979294899113474320810637580543568150038788983289258920827002721523456801928611392116970869244990901816832674401503882968357567629637320213699225209633495663508823980817723198034467153251704986514922048120217330541451058133433530947901970630427836986148600053458146669928368939905857131193077190061564561885439462589233889102612603022166687400576871802950414313418993966542650475929719497489635872107223719853133424802196385685428363286599195219238807535904564120076345359213352567580598106294780658282171483197034540110097774718978211107346355977704829045607072605425228920818251933334022091798238005858498221151229289989691174906481290629205129478278017802848155953353601518130320984919608625840693803103751648728692361248084559391221058091446655518227817512972160696192687449573394428735447439128031105508795526357709447877091074681596632563245148672153681257638379212947700296185685822955079540073701640314866100232472315180634772212895520177201317396759073256035438447536827915164213471481414629012865036892392893969386471917469128477990009753448203985211672178737674169259517178674173177910495921193624718129173201258814971132133268634405211340564033167244385909391996556419634276577032266960384313928445978115659192455080840237211457483028339104796971323120032357093950598626667005994266136866925124681363340408809453852145742258212155083415955788180763700325000191867483085857405324414751207278986036243718105786931566067245872965168245040359464166721053662248452397087209037512803388364514623540547979562645464108636647034210263747143163813469121453579535576606431427139439557887852377196152577374028502006008927725656692012833532273000041254800103965897609718001094662917247025505954681185061562783518919110790432620413775349894880638302966023720661928045843656866900094538829798888349159893738100469427847470626339352625694017555683819991231645156035401312741086032768147458570525875765997749811252174755157593127932794457333254700422840604662938199201730794855911187936674161098329105284718485898882086016062481636912166037815360004024026400127524820999183271420720178349578855139047745727141567927180989644489788823708635954701924291847041708434176952476346262797762883743850630668118648723101441117124326803802067243557819834251326608055058979438175983872085377519423878752267939480019948818672489849478539655052024074957157612167372524893867681934736352381593002238510675971192884159469523459449170554504264609956693718354421364634923288443894967206010085906938011690983463467590319862473690191254343836166878782155628132520653460236502603858982379037479451574850709277407681491684487182706239564848261586239060175386884225145489003432774982971268877357455412530673832721619053257209783654723758328012031630292634014773040304019689504730375269763732702528198105861912647698159674976541024189617500801320727009981672175336375258646183680931402729279190164464911684877752743273205430231843719847428271293147852095750599787533757485555871375444675313226304053865447077634761023198711380236447900974378502347682104231405327585067982090215777801097779632854775270584800159788226809379953665514719442601704270391590802634404360129746656003183697584729979101360789728991299538788693221405329843857248611118088227075710031196728620472066954200693930233835880142910971198969042309326395616765239610708069924005257968800496973879136447574099269875300507523041638543087139222687887715656689947874847376498243166460813611046268954380788907550744128846840312454510779181412014704764208551862909140503951540624896057399119865816049209784297363252398844037832180569745558486435618807120728304163273342576439060303246261446204124229002783486013485845013526192863113907346517367048620490968308017231759913982342284823592430159060476913332187975339325999294344792800659002539371326495156045388756777003446761183979910726939916833437253906134402943473582333679189372302266679849577368803906707555098289181678741088953702009735760317143077439590684958697005417754072860718053730040548406834624408831878556503560806528594049506170575711766150205230227346890997325917424730894126670602919168843558655917039831478676938747473685762315042593813088272290256924872261423884248104158239933157543869061396166183767817527507782354917275598382316651989934282861240123305533126729681967222293838197721911594545134231390937325208917422283761951398554967297965127040436888793388668270059392501868457057762323631597007971094911469965708609979676203407461897847133082996593438701322166467962514245009248817672941334601786768401097699049347855552979875343732457651215835499615185269350976679306192937854421609413101266017643462701685536719466804638921870748018762036809389780572242934261193248850360111831877059054282607269295825330458047755498227383151041395370083617682422893157156999720547424152559077749886573242453333199817136614306765726503474799572876819004206771741940197979327345344731744038412807303594486461640070758914099926501002256123696659383209935534143118788159812310608235847069674501313558327583715419564067968636823174927713664430758944229242395564069975289465792198027757507092727861408166021884892318783766672548577485966466505010920940039265966739000499248316863212365622543068893944568172426918724943734130661495520013605599476101733960247829399063121334916634831810689271641635903414071023967503601734110641099849552132847592564849107632936147936572387191595216490472507360221266223828195838326338119298612790553935959395162433056612236523683892298348332731601464341434684539893504651990416475813254842926891160759957274437600051383228946182750856335123909116984149952802129219270853036534915079757080726981535096864465920964453667470032469720345748424427844874984542225112651477647490073130856536137265767566877975883077028480232174530105314517383465617094000016366747215154776493209090882612845510387448545450872904828891559939927331821621896918103131012099298968788988541255612048587874897719472551959177896260190725547019210492676939791276825199661508575970685211590009268143578323117836128321653083531108920258757815719125008027685824372331559623947228169904733244948490778281586893853332216805408198925823220766522981897249282324548750592773613060329901055780169781914902939265359405456722820700686508477121412972874321661010370818420822534139667526414469338816829794904646461830127074099755287168533156565650338800508803186111812473993276101958596185885275106148001706262909832733659962538802204951840427655559816005489617827676662987741891480304195617959807386844671629130336651808150577666585625684907062933174579606895016597665614814232109685183635288536550333046325875372331352066219538104142524468020956861041863509011084908845321056035333785276606824720835883183387031743730357440185470842878491932522139262633795554562131838139122289436424687006189688291481400296102281157318684681611160955557034599914354055403101191488873807251527034161527091004372425761885329092513508768520244066797321383126559245117301099853800966695733140693965087738139850551855214546283770552078223856182417308743194786809278227671710856621468738546828013083683605824643826101331620716484969168898109691102067223661873072589173979580907119635880625632308850758803351686781740889740933001016133610569386557293415082728454415151892601288333602928600362428174268269749312330812226969117598513092006744808517640327993974912259629764160458564075357204762107810955923863167778933481653696878905213580176646387712509718495765280240425020915344762341651478266175125521334245824610789866444804843781637601544661612787099882851188187714358517588614344976113556136991252887170944208036457038301525454101080229060901563146996969062442024986264024196779046673728013664530990133363071821166527798968774902625019446308524891080817414353132435650386834762148697814027025371730842894868087434183502796579358242770055590083623773300580574786407392228306757647294746798968772537938132657858696970538035994618769276127381136152648063411999116363301355252974414216347790196126696661642193713034645050639058808145253996218250904660305075134819004769154972766012960144760915479397867883259776187099780209136019516376741518279788558439454536195528555881629265683472117999441101619999843339644931112423787121683456363191611926776944332915768222931878083433448918249494456475939632304731691672183341536554068941721229360794464938381530882584575427341115046245145716785971655324819557815003019828434607616174061441548914476568560247880657505100865674189481674055389928519550259845121340048098972698228251079239305697776729857384864814465487764577010371579083623993968841875773055231761776679284209515638526579519874070458707694530550742914911103166110549619311531226203946322418695418798654179052606077307247891844472031722578242175043040619455909851085177925969740965176614015069879127595820667158450638462786438796092679612846874063519552516124684550413825970581596381959843392823883843239526074184867304657262328050350556318562655314234624758465726993504094737441292536632073399812771045487731839174338760231458012908839767664794915966402269219157953814314282948394526410234658992697454727941634602533647973659353158352283348185003507816448319642140196699050678058963639741431188733537486398791055995329501109076249422642051439033182679563394681103305868847196805609578604357539112243634581388182737653661512887311081025817228592439270455105590134118884793724968669608415188991599356481647847256719585104371367384860437872324741136421674676053818870363328198235424502550984701297317786363859924555036021986171331624009355602700870484070215436737715965762565112501127229207002623383966099158465787240717094800868037901494247723187877015254417560629138864480209427813835320191750418058945183179124878188165054433454518791984400883492533573812317858532880759959179211677396703999472080579128522748154827337454217661053605703732293935698231296813579496615408387693257935190794225041162504955150021185800090103780517641028098112851454264268175257250471963780230913471311316047089818504692788108129626434008216037577012212964512788230914556539167773417695469065965899831395791068986057051918890662794576017540338444484731454946127321426865089759053437371784670392073178801574824402573177510030158680721364621892699166067362169949731945784002865086334954029021839493628882147539297128812480351656474997970131910005979201205695456288026963145378315525708398839162613097113825017801514880552870047497800418352283713658441510302205208267130207554671016400455836057688298101598267024618364920021451374676923662391769429270311032892374646978716734140276375972100581585584541424225581328465189546269405827975977811525884105513983031163961492492521686685206579542333028254310655166903698748652501387630219725611487879903006881361214046257215846933964511883087588472555771325803942658509363428426141896310837123246558124604237276307790114329423300527000041177230273901599461881275110640396079639340379473068933903551968845566023807769696154890166842206367376021895676066606688381310269980978235129305331178862378443217189790386800369413180570054721374842715349645898233900254850618043181177955410844016761010723739907002350036420015611096427639188262790663398229852585075872542828235180392052601594921699878261812636268623442673795357387796695601168274931333908878164626908489858839626829527418504766707810645816965215203097833805022089943237787292352044248567663814305391599369441178656563067642021839774923058147383132009864093399339307098842205802585260482785730274764308011098013224175709940258211674314798028859299021751499466421874821766920567978412173779175101161487172296830961350496929159026491907516566623795707692766377470216292148193684931864876201466099414484750031453427838313294191179422804394169914333499412670285304380550723548842491121570280715486571386470949716890470827440123686833392884176579803312918251283326355363762250098873224035672223644656720238625443750163690705207019614807236304228568496359552846977549121124753388833749365772422018505599220339693347793989007649559125048781749424742911469260219992380711056781760775242789540921548110726948622502446003046313476363689760837647726218126772335905266389830675466933888461830651584640263236250204068059199762489874127539496399818972428357232176977299521293687886792950569023423113492174667530733199855164505709959426259824285733650883177883985979094382813563617865945852185511445241761865511197315721098721788343632246799611277990871746618921596949976710423132117859479799000147843357255819749162778866270315557368573173116078002471835409453048062186816826694332033990272182452482881169734833238659098325762667433369103787872244440965721514325569943034544901215031823185324356049510697261355741259177192261965799430986969866119285824611259547135284367210751478692577858373939971749423155414651404044109107615461811473753861330251454117094622397399837227737809795354111949079693502267465486516261680287404368714691043364477013051976533899312638919642588796466316995925538640970205213807024216895990598953515509876610867185443282417985190801593314060444714892169824573920039031352040626560127387079615159670524019289532271150811585540914014049066212579991671454076098743082139321828676985160836584990633971489188907324550576282720758400470828486717075155917877671055525713276355323756981816147837490765429233387839213713697278348762464005098747614696577865534291995919726639183648942581177144517500551229558653269009100484818867183862261527737749322365025826724292690843401056737403702010242067672025857197930598461190953266937626297841176344312010561645861289804608021014281436158601046583805075142690019010801551197606737081530659839005948981457019656453012021510784431870777847527744605554119053030277287586050802625328281464658016715682778218488871667777476975541146783543618990745026813092933982903000425272497982191916984168825941147030618974404182281370899137166373053860432715583233405316077242005865966755662228829676892683412733186779566008804753385770334368716342282266400367688450597803282587300822504525953818759678716129726143594934929164010149679094079495837919937224636420702341047588695652944398450676581596947460728422886076620689167654607528964726199617326856848317971491833958004726773199944654025780803970206518655377092082262342269704741691598994319491375001010279916538261548984668569303357174136668129523429298115026549303303858312991984921605565521693192306320414240439735404064340220497112788492328558549629542829352048447478337076586169755371089293749250432725163594139527657390188000047535721426931453447859145509503387255014358616746713436360421357695982859325242772355491791806731032585983780865111592367093375208677844197846237864044448116178139581802980102479887002429380438247202933805348248851638886150396044329406930183492993374253604935667453242928567687166570376199589823015151523936013299478370654231135680499920859734264330319929915858067230450997398422792190075820276457383585002618356430269372808222844894601573097313231826517721774946326166245362535798781334357351268722080965936193559823928419241184259197901016635906237339659038628631307836908415730148212374395568075773712402208016265848589946591426045153659417165716188894594863718790132127707529796528640661603849253113120948802659639467235751033861438054350134111941922177592864169710059100619214869954911448882455047154493607905936485873165895446031934291895834414527029692641237154077707794215941632601672896432367938722647431019587909087933659383224068397765978460471773244838265541368568881351879522136943219680944396627140589019746776615859681032971535766546536656404206476744411710943942499107616739533544856066176093491199671699283476090653798370592225101005807161983775725707006665355669006812345015742484092426142817809482251471262034071675189442541180565960921970479178943194260648341772189803986107981597102180316402376415519327149306478753528612664813784080540361035394758015376851621053216081902461343146544679517244275866236107327132363058754353970971511320562576034477532941293007216188285553995384234056802320913412747192243868737279116726049199118952929331520123818975939065891572447191892463534948644970032783455114599299230770987112791063162440687887264861925968081330317178896283988696066790097134840664503663721743410031384472209641906433216435905126258829840187140798819714328238222054599496857958313983172161910595533622413813949965408232330734680849899177306252819778386468176465409747306113344208629905110130124382433113173754319759406537780675590618912246862684688067921473362436815185094291128888593965208242465896048700413931121048230810119003230172821311604206133545627926846573035893113911393985618556085041765509276025507527487583719747825010713896263944988647470777848797088740776166152633640834436690370760632584636305829011169899680658936039928568829045864647832724448791138366605267049566749473840665671741584700534982782483563632181979686709405736549074263297043343059410707595308234783649653512914774530597006974169797558504020003817304273894164359525543314043193298226976491773748655628138282406081704794590706016107650174088443932563549398906608222363409109275928127173056164268974785969215815266623905165815083980185122598887736861436713215604978284483758161976645663130792363788760195133038990434760048846232489877606629626097916220582623739649665001654800440389537876656879752327453984396057952439156872919045114612380474587652797585174523695640130476348631654397803452190619439626977075863716812022770642477139330001592838657594029419274290006045945932661807984287784637296556447142435919399786145880149112851224197509104576029418027086294060719229783204469204449388404829840759802743943696722318452733806446882544407421516474302425198986194877761974556084548747489404923263265409564921516436870631791197472356765483991057194235706851367542858194960399992599881754579450332863698772373298824167738939003381864245611670691829060665501292971682013258152972601363640359268359498311279264324577173907134594519099129967384692525551982120938780362353493121469042819008410140044600300742663339343101945375948537805228454506726567870037113462150124499721294085446970251772055385318030314612327293685361229443378647447476769897767184767496960750156259242351410726233100305349888262127693068063116351492952856857291138800826793782837973212917582449920757446348880199143687577954630397441417412487206047435407963235121877306379212752514213233847190452502098331790101872460410302899270708936030762295806647226831589755066510625114740979777606255924348295094941968146052089921514163273158214798934223901682156496463907710181873105811105943807707428325212772339345907589565253002152545394611090335985582128456623068193772322848378426000813730148803185370343117792688323835332086984007116934000886801668375953082511617862733891459122763013951975749968759950206376915318287469223878251253304836969002525177212392192275880013625112098764593097058057122113066368100239853583940008859002163478773176171149866659532851188968930770234877259225969335949429488178466273776608712266286266241892252423957795684638483180341378798779518436426860376916448199147947469782626892470485142029136292699740287064742704554703665468832711283145871547648156260201372986396023233794711560467832170913816891077948884627179853181177176863032122452356495295437884697092627113702221906220416647937495908067782764433419590462400591151602350006052207761960207976265274064722089471899769378979603683951535095112708387451281568193814289507913887794072905342282396003681671079371509392278147920258845800277803419121673357221288512018634692048545975303455379265532608866953598956029741997955103056167050826724357475780495224729846027662719964012708053826409612353433163896168947198069594560431876665019011384452761856352489758582244960855735293905730182987511846995066756365095310422260633949918462634828094471940772487709895335460539116836398544866270060781640878181969437398744717102394504278638434680923510585183236030166141309029044061237135547305774825199076062608650597858990356184232139925923412012027437150229676400193624870418972231775720028130778979072220477009400331254327956395290765537729234914928135423544717528550669961137625333649649724582999327998809565280706045926186390785349469741441319773302049170986232469040545371300461189474784726486259580962809656564832740884343318629635184961444003648134237931973268510452080420763119858065533556139436084045272644616222059461249678890986435607496824534642734462307838257740527971986782772726550732979239498039937882616065458805088852090314239741052571886955553855409808852008422061852200627912170162975074645667727840289393858126264808554152347359022034017114716004610723269269621319823794811950459686076472811851922918581611396271896465577195482377375431894674349493981279806913381841810752798306952687217733585413857813857969057737190314092821321068101584586286611469577446832371881793040040430420993594551786761342714920073633456081812186203524142829169816459370802442538527811745289101923710743033583135112699676550066288885639413827098840652663233909165961159363407140824648923247908339294266225485906310760628870371262342695485040425274372848044718746449882180368513362840099884530945040144317267537967459088817779241653905196518813763731595534734244337902245825004771789781148918181327062076177306389722686373515777428208581653998618220583756995936705155005455620000024783934059646175269220585957425966522716931545768869606967633606060040176134509988234291143596755100927645158900200644393713758107416741564193280120582817321211609398790707777316768541946815114118805367213945768800358133495411703936220795924588175472296689999508859988478477961500145651674625173561521907696147433076541112056561611650150012106055052776354321063636006955956206761575943939749588880416410338932570416348820668084329473295920617489282441954562092955088255633992345169070622337736201319695148694745445088015290075645662882397345859950217344461523404423163907468060622121722344851895033956499929058427221653202364991529323297587928162655692161240818583946955975132778183265801147604414738378702857389305536894169166586321698402001233591040156934137058448769670609318981820421021797036415094248354359699735949834652101900395431399965744236457947500385532607066381870858432975909076721591144878336368517469482094130179513462971596516899906580173617481700896793827277158954817159409354717337208897654574581826954900326964381077728763486874909084376116518275549492568101589041045435686497815681428274443705439026811178992800078191928441271318724197574877645248001983404097296935131547069040062502629668107062237427869549592994516023518605019285545227139310315656938023337446556056525694991590902269337859975536044482947006973808933863007197800015425076411763226796836226485456642116212196641481213912956367291126079984676565617147357033024715397179429283833817737989227315262625508044859060592649798901092579583337991267035346854194305962989558597452785314124481807930009612616768435344772415423942245083385442692607639935701722712835915840376139812863980312190434049883647930542276054395639995895748309648238720504742993734289097382465079600330357747474438153675836894519373635193025303564661303548773097065465180189020267638350181592477425754611891656476427750514790708081611508693950490742660608404079427255749775620067345347997816182912714091232345943028720445940226511736449399376305128700905737475063944423620109606754950956659668213379586110252547389264332676462961013445992509452402931140936669715015851319317163396127980036488979396436500303404183351946729078049652804121183693679799920039541016216048042610074287457206919319931881914705140047389047928955210051789453305090714326270005463036999538494679111478322860701826159086912193403289988952556731138288927189790968373831367967127775439611673253498538091822305130429809869980033079669814504362963905562008895377887465890972137034484191215999383327204763068152171510437086740427391732614069977572353903292592484676416693515297864787203169608240863777102917424982382841677954862406454973365082698037177375791213107914626337576472609997901604713573755959091335821287212355397605779260231062402278961285239352530169783181397345741480744820048598679131395347891401048193891479891610378707567897849421888045879672733511156631245138887907579011615739273804499873473823582903941080106028910106252244552431450569993910029189371516729356775647494833848995869995341268784683539787391071742916250744846919723741195434425876260059344225848860822668797868954501651902874655862291791390687530187472416717201490294659624701791223438994579324968473996824120100975623335453360787111587182956305311709680009735298714722412963496231907127322423741798390656095535692409577246475429818572750196401703578341349024565750569116966702961772439143299603712774788109585684875986982217614709839908831970451940455541914422951194069620339056588157458132770152960782649065434733094045018613242879170466689269615740440088556915134166925672774714251769418384426238789924828839423727562752185538842152471022738944641202392906703539369799685883673368875593367668532772333503065264201391059249080142483178613655169290650636137960230855386146961914324311574891819042053283796854081467645440158051678775635522704560118999940282359377390384525968758853246505015693362737049369501224016082891239737338300171856644936521614773357627600936932404863970765983185054714681370499488219624271389598595191208916642297946364549995079503603709728368718717616594176143519372119583432354221922304800937008518078632534777503220205996462294392618029833307757514826895751578648061978051274210333916451720377624297023009402867124885820351796068176739476168029590867264027912534706568111976025872562694873773527160081013259845163959947127213066814576480344627157051736616487259568184988559579114624371872049099805502450497280409838091166370042268660796296721517879669092244416253373889208059460819971553624844458924895904460803428385839970553725786623962692038891510246943644202684945033400352035934996032089023518248850044025135389274840622680224062830035691657720503367766308464030590871403220324469276135539147486616302337325958175208490487564618827171288418847596090802385644284771449375379666565091143062467589026572094936977926188357148403266310767580043750272196302526212712485097620828513323345099814441207127978197704716477931518235238611118517819459575607773716933999101896625847469451705946567919700983427918953059209214447856900445387570204963920643417937471490804228428647143890801701856938345859942785030718547203510456348081704005857844587834813597031512271754564782866124459616652630626024343783153188119854371235175816801053361841271380669095676705126097347366102250804259544243341163844228404839720795889333673902313089631215651723936939070010833699698974617513455250346014116703077764503135372313215524730651461458352053431498963911913081520479253119462260071347965283774308073888435043766453190599799951340146889115516736175791377670819045858828771693058925923537358465039638947036802245835041330826767546975130325574982049931288830379511049852483825421178568993923013252443028588612394257929420992290647781250664031365319232327496277472151149419664423624201772621865184678596262655072460748242224866191587285039282392776154469377307141692400642031955691947022185600810521330976784147087988012783463546572957330715016675849302902506813135217781491403118038001495872677380949727062185757694396630797815505079652338225301751115669820684064689397442967611816962201544419869206958371312336244466462162624486961029944233185797792730757374881660632053879863341886491288336110103659609219020424732055266986736972821907469494623174216800050146327569208835358963860719253469651865586833297865522297365516123178688205992413957323284373812795095067297796211147829737278028161777990556857047139170285248117282488210841393477178018444039845535304843196707720076634427888737117699951318986491711350667275775653866890873475316293978806957628552075570274750108583992715006196690660519130283207970531991657259223417081632655574846621285502240163447120365462542649918773061420240460727087833722967153979964804979695043178470161019756364064753180095397193028786078542895785684610074522383019919755376573117289973310426206101722545649914582606312055331900151453849499561812812188612720928285172484705110295419734145050222890048142580057382909607345352112870091658157615382980534074644920195583726787488009353801477158946944623228794639806720569297363771294653597169314404560472181508131767127416997845026173433407760340100168113084162498435642798789757057816398172229730777896551135625140568845626813067778317037599024797429289218424508212890839361204483020049819213343434201173454047318096970739637612515773537470232666583194848691357471896808339731960398483730340718718264940568994362709152797665460593676787715975574556447376703689500621442195864243232638337118891588798738340751102727523383554706415988615062138561516472397826023815848341227263100074013234404710936069529335739112013838113245494736398342035939140354851894125881610588750548801124493821467108092228945893494645477883723255898303470007719714713864343567248409489856337598745484382130960889173610222523050854119787987293111779546527880899088903443863494240285291172114747598644023357002334968739506259414589198853548103403054471731550038465616294436140518718953939631900195728788280364808359661297019149217646878838365567821326886536924796394134980155202083146273780156360117166255548462584882955446110727586901385099686517644974567847839191022909426803122056202180392060654260220884835405146797750981355027157472636924032111622822454986146594499780227502482391797861692578576584144660463546805206718202090249659667308737293007627943734486959935136665395907059727872314998729762218378588508831859008024354031582154312347526993992193365706087332486207757934971362215818507757473244750133646500099833499954125806245188521070418934039128757903029856875180456932004548787523827908829052907110673155342342632406589954437514346992299660185816186253282487686847383260713947092639757156315471028078994276057460338003728822137390137161418500152229185258292429958741553077540414321190502435060446258942333007419837064676130210196942593499775337806131833471802281832551861108402164496740952865657307624659787705759092520696426521774011231014744855610086845892415882648783876193613411354846340192062575984011639579489750877553621559327561783220993144465940466835649821345974444558616724088084214869585588694292252167057663454723030249594162704523444095089038479454406010077612452768751928826708364521005731096315244478157356081653327559592656301132205412873153934673334144060941023753290919404860975091122119026682528173425748573602020634131627069700782005553229300535324330317612529436153950688068911805372495886402970904341920095813455539152191705017090358339561343512979999737657105279461744613951756999454106464101045799575533043051727012055927299490318147685976476584727270399017183126893521562121742537397996908167584783915792506373978582167609758610105324938528884041972923280119565152211043452769809096456214547271218430628830834259516769330958026214820329923526036955119374004093636019965151665174164226417248070271186655283688867775639545540423929385992493339765843155379314017114907720375432006758424756445425605948047574580137151648602180649455079963939940257895166264549667491821959252135313388353813000785899436562104556947566326204405645429890105001323129571949899794397710566073664812071958072945221292940787986124811844388058532904970787887803759517818439042183072098050464318684276324828170344015445009880830992712205687494204707698473658516549950638700826206817523557250773190277066385137597395241736634787759748837134335170756047360629805989818809838257638870994137621397438859478166868130644178803425738203789446051180945602894477289489601628263206169739147606037228873743697133267579028219415429355683583713300950431339836557354518730265985936556282774874320089094771134464750061460242530039475509360993516354026682117135812881356680832199943408571629651930547284232021495875781147857315500443934052971932027541305596864055754245585166267976812785803640233959437912566356858219116231063795449654437464188603380715848621534970912047286295892580008513796523088933289504488740653601048617362740663153508184928497084919742048263130589548627096539656352130408704724095626388698591548356320042340185336766344724603112833418473124514604356525218396699842040153369397027523481909191821927289942945316487577579662615937856157727487215047040540866566571535310402603416852894538988756943309478415910319270668473453283325764124002147379953830298878053510305111818436284980153892303352479605135336451532759193505100719700712058793438831048609056272104935784085093595648390690027612421989561353299664566457382373783468321839878848333917545380734930712691780180075961074075538117480607712864238400584888252415725431839778279879884670664534632033647720783759254118807557135030371448758260109673405766759395467785524188754486308936681272256117194602803715043783967960232436871465797493403325624622353903468801122211260079775187474317037134771473621052200261081125057230532735569352385402237211749344294586015627906322318077045624800060509031834896802822943249472647696236689036879994974395612741662595574799948210672591701774879211579666942855198713521500662119716120985356907724182806630091046978067809936008120394555736639876188905888943118739529713845438873115397007940261100642561499761030335918443636942920160231565123653842079351195583886929242725457168634442527286034023777480255062735088977904812265036861228361831179400481297480215738997092589509193483167290046887651450390269995899606024872615363945857470554031820275108758710243611333407201515660698705283568623117274974485439166563074742844590119736557564330184608681054904091047323654065355064110069458776108290864645216055337193719960446931287935520576848954237057085646240049196156427309425613375266705573448434718404374676604093837552276280946985209467613959408795658395361753801893197745559225309352049829675850745622511224714447440771294641957875969844955386015893281035433203017605546626016954540622519736269846734001158887880010477286060990416289214324018340794369849739353671536486322999820874743091029259430472418478237929541185082925067080524842996089683082993743547165377717518402906414737644518906211596083983908106708594227366910877350678286233253054521643461063685082245219309526226574087389084764976969649810527612883844877109356264267674382029974032857911441647860146178813381502282312704275468183906424041674586168430155657068706003582669689569666240274583752131517464242519038211891565046026233544069000596353197504425887028755652187489755165916491193890907500380606263331830781154141626993015309787910441421952047443676615494880651088915894772769199426689350434649034550372007134365786573073250820838431742936120655511918033715648035663905345383915330011440205385647376043007008587209929304917932768980221128277270790948879022734555702684619421463163411929008166460133207399470471782777446329078296626293407205985105003051982958749651166892571583668783475707281565666116854622302595120335891433505983934430532920328590057211427076819125328776653943682391575159608134965572558962370319127160202591855598079485096826399926215026329939797559184677920245586586248272778091720475220630668341437819229842464560225579341971288819656038993017182941701827768585945404565624557129556118242631968335966691964321992611709938980100879931784224104763461757122677663358131049284951928724016078341564738036455435266015388944889239584361887442097789516273699244365027728173364037840179787813399082931875465895607216406728978716625734931221774429550389134683539302999082582909994459985683597953459919083109083490519424753912132125422121854639443696992020549403742620953068840062390670960989119940384013299294767130452385969086397353366037990181659250998686128078275607770171217323697199397696384088434343821766598602135909842410778247906193662627170140690126321684264945456138521108304878876098749033240585863876379768845069411059606368598033000889549297260223202002579555536395579410017033248292404089447258588175598745733349022632903559257147549902491430412617020871699956242848628991298467511618420081498268192394773764053793069278002241938130972133917392585109115989041341971643562241876671012630549545975044556504935413453326271479153070954479384752127429287087758277554045450317278131258791594431638796575596777750742686396914134540263134733026875578497901713779530105282574392438032967164643038909208331227470122269713418215211564480550690425001136015765820902227605702078419060011445935708749395811144965580099995804171010033037202507442461727448824690508851397147885673030636887509495670735045821428461854563353010367236814206662547473594690211467545638568290079136476857090059938678733336882532463075611499729921933025568688473763470948842317114454440566463875056453789023167256980642982657157863759305522224517488225557103123317835721933133280917357061504389272542873661469532636206066710777744313519191646065830519912536873935326793679097958434063793680007031647920737572712100430909208054469355344862309247749096062756336123043556175644981584247184111980960196042150959478677319662521646264700314616050415109888635055205894980060750607834204177223508723320048072972553849170463198696964464440637581806952089542964841401216807754377010775960492715276688111187199411999296951568440739401713417008262429123114584715063099023269516772857084897491852653874624748627353011570134005107258216834191800851719603341443783460593057292106972865318315834610470803144657786531375291082343401300251338923726345165476343458463427281241277022522174980146292530720945641527268320214450149697441281893432247748330992166278221579192013774903363676684796223480099145203222246092086439629207603450562374638539786162166535771825027720087347016482478151060728950154612705325604692230589216553225634158389266485005928831802048652201172749741857707759007084602140290025711351059822282518927930688414929977001641994864510950420865203088014945489263254339476014188622563134900314151352649427069622712148136107481996223889472061129720271709360674543955591539001674887389553377452481562500635098440758849825899670139095799546503334356464575007685184143897168703055802170609169075767157519907689758209810584061701254472632460236863510504237630363722710720901790512863402199060755932507623592485927892806839519106808385326384843251203966819339009586721010010994012783966177736783430974719599296674025830630941864644795352421444589445125387384367163857544267364609416701779060877429823218622570662412142103948879054730663247893721574027111783506940559141204876582223416857815039798650411803017305690528341847714347209056416461044678806883962002128133579185944561247796179015186368041253668172927615448920102495120954180703191963394176390528242461834120901410484952594049401269123780168307885943075820106576128456343381767492235003533649326237206995709953310888532778422722241407731994345753542848004652370227485041798002689061077613279501033864393737162846086440807713880720044656424152465668345034156045469805475813514270508179294107575012521994642970887761963275232705006699407483841397928299117987368437031106351618824990385945039215717824604509283788812167856393893129179656705788485969246092842687205496456546508870658855088714084992909121450105544632871913594517019239616105430568414221771219011539741309127784892875208607757894180026727015360242237378164365144870941724295144184454409856070653092939538180955818955633777152563838023792022901209934854777296211038465097759114972553526989314756609681298130744584430611030795581369847074284342425700003489672930314577127015303419786133953454072479668983497972096134398057213937664469807713030102821283614056712007448916982918350267376414266230009323448601729932337778114956096607669969216690633438711199523792140711621909971769722218331381338290723383644693357318797042500872396482474658265521644673864425878638743428239573450186799471861109615468337111744025687999708635518085368665016821124416376359617713959722157723711455226540835828404461848464146100663426865431837207910943038103200763984749666621268015852922214765200166425229665066958717056649594119962061208597851779743115322682867254850730343434110543963397482593371351409147318656800856157887727709499000099981988430728988238604484657867469645284549573938575838351574736612165856345249277695137532488635863194449707799946327757180285371239086941475022249377034979320853843518658401527520091186821907969731974001994612377187748366567322622499147405048962863467780724137975006851539751120745539959743907035991713384863644395549375724051201885638181964895439864986147947024104530786616105741568138796638819023352754724403827861206914778344216693184070136876636816870421203207467123253830111563647767499316846535275487963675887140098568589612796907117680108803802483179459704262310107817583561330230848612556014422031740997135155000302357735568784827041464878626094270657727184349160192177006948706708833828709173078457681236604932406021344853042616581057499141822521174373927256383930926715623030110866654263535621059397943588225040963555219757794948203703559978930345833830765958150028102018632401484579052673715562483381661129379265063133345022216121368321237915523561897058787729888720097177873733459906348570125770651328020404372285180398585501076240555159513188768588466630490331729285689499085515469677760810588984559968165863291786443818155498871127977471408476448828168002971844546539556258189077747885699444623199894013717605040600213341270724749086240652395424286596972569275775404027781916368480010106544710747278668925546994653220784578508496053164282700924622863867002205245617146397175207729360256289905941336236343044838284558077788362841224997901308002814577945978890506022189902959229481848456588874365453625251000308236786371496204504931723454757396527173269451035334136133673842989585042968987027162186646354705584309424886782277548510105818404148500348407907365594063335347193004131316406573289307762726233816712991907468647922383924324306134717800640475992470990532432404833901917331092797781248656509939818282990863004331758977051420272121238407039329308700053710269729123153971346344517497690281484011346157007419312092651747980308406204635448032608377025486714922101132684285557205757124084046272279920563446293386528517593125701269297315041930952582652168362594959807155171170374158870644513414567614874979290065487660372646154584081187755036544764749098835397508687019219053212027348237877420792881408771961266742131218813302193410352992146272837942941937098448144519962208372068994897349574896286099373140611167642681338419490932699092156618027122952238381757321343161609722659522952320000204437127478662519078596022427588352854523936739606404735414568877653880393975661234217453605102618836572100523207610230406363962407907928742470414658849727637546974644517185565604018838424375476460524783356212783449106572123765997089895549560712495629502018130078873350055085292962233065267610303779108037725749531562237232778677644490209948136657957697112732490422574365645911341342220448812596535290903400061710738794572065570846951452596378713513789202505297681447311219616514940040216568223967967841930936581791944294662345165884571123113066422830929130602215837352059974784503573360735052149794096591528697689691801469037589143130181572510935016626121437629833137346453734153628109760052880697368835884396179421996545027587663365841097445203836380811480858017696498768615291191369831699796995992880182203756652561411298425764177520352297850198510984286308025996435997050088713046466626668577302384826702451832576621139327279563030164385729013217315647046733417765942680905728286670068136094597371993640774528330595201015232524894671205031515786131309921372906422463103818338590126814895294211280005741013143241528800628784959362676250617697671162375490152971955069286912285073376849918471351320678756875043979921624367324569569973755437839619149190558087699491010872276884999015375361715443742711423897374365171322538817888258942682928559966703807722249213865353138248553612937085862933656435796446954820135426711675495636125078926235243397816454320573270109801302011101469559565485311481763744024776823220308475174739609711256883282653544349397764123903757559650368428580729251315890169619020693508352993899117322221112198063989903344044684575646583534983467383193053564425343510331291479208387766356745999145705946329569868015356843395294561961765386656856643017147737922454698940563848048409900421109261941030617184401769711900128594177661945431045043149062084029452007585875681128633900706398179279482434346125076225841243571013547978361771776323647002075849437473483829844854750585488221150369341216662036586203523251086549844167209194922786540714883169094016032846608794867520666076370018259603897021427524987555809749837004315606578715064525826479194985319618088731002702759597512364241271072584837351537197734639570053601632727881792302286490234075506439504214197487445135414102879755998882362380503049068171358101016047200484513077852669754750712991645624817314456036748360200606363497766947045490500237994000992916969153355425057621400869745856679148845201804062078252892608943863370038850270560211150287312879242320588022976877260547945935073534191694797456086978533179757409870273380318934402599681593591924093657799682349246431277347746770017205031960303184117025024821917426435605412405707335559092570797247306811113242416814336438788799997490924385428184729322700674201090397664486955986570618123823515564018288030630999723685803813362367321914103341654178721445800997472787536419247404821014715809773430933895282001495738185151871895123107807720778142129873549904530163518400800462162730139491197960903524438770289105042585026071487189186282619375197645859805176414498336194653545567251954564808967747208541059544511733046528224576198972290173473859190969802317849210690669698010273746254675098018103868133657037623657165184330171113607755855631935111897873038017495630773490791366982647528287556974647270764543358652893213750281510744283059013102086720409580108620764092696155819157427391995212932692155791045003411505379822723124616180854715749638936053078413547954476572565471005956841516689390656846815136139315694110815077650920974904467797312512657975067141634703308573392122936725497921826622395336294539427056877554556023291728706312040147154839116381740579291316114872418649272246658448203583932188274610283584430582831308158814744892021497124016090119581405279912818714210166228316412889149881744051035568796391304887638847484987200064593252935338150378093053804034171710083320799461599991869384074620103150493557679482700555804848498247034177875720557773524595834438776314134706117762396300384545246290691531685878171557727729832114948955427913777956917953781544514703142996517060041390265521458404967569558932795827069512487853305892030756084718845179102988484446436340501359446151117484030848067284545053630558839182285593762438371663610231195539514150724635892510282477606948388611913634219135125552647525923431737781565466977936602587645483052754014516084005966810594294103883567037901390238006557775564462620715988753786827507521998424047907441745510972087876617413967363903780049524424878357819519144132291468438509537798981195308618566068012781642885391669855964497506146148328951277242571934895577101698738826504951131375534337015201521933201193707410432811402583405308522443313771159350842513517434909352921472778903256286008164542667338317592491421396024180045270900980321043555040252668891406033284822196572262662640959457213858288571588789814789973994607034414016318606464061104732511831048150815804231710102049935439556355867071106881425591097605966701651465065980416025620966488253755368560385925544030928062122877323093538072071552494058554392318001371879689669750434606851585920496635867976678124003031971955250365501477083507884312357922083452933271696868556518775784543609744749186881052107939782740720701219016568968038918311372060841842641647118977722344363581490064669876302607978243255637419112774714419898066512646826442711936178677431585701096134123502774789825136979748245762097196343999181852957810631251154088412474637976216132300404549994830505003620852396261626787449284503713735633937903918008314584463167758408876540547606865512804230791451858897841307946117876804167129646714294749641066862063672614426250590158383172555912761759216279154510477592851057780580895047842034305674896605765803132354780774812191749945965226754821697123937023416910289604571494862203310223938749989717190387145259216672753622473467455487922887886336257455363579232855067870733699946181835466071837675915289122904655772983140012260928953079571771435242042013722185721579983023395160533781069854796706749911510043254479300367817784338532915343561762536396079798206226088770801823064360782041902656858475503695017322540599835807996859082760137949872322955568229317190149643651090605836577361493216293947291923588801139187368349336779165459827509727347043527845603100591301031432706655713952325727386610875362823419531973850624375326858346806142489859327585900792753227623748832211891070785668759549785180392042582592886644482503251165941531955376261998451332891878721683752758118498612002620121318756213615845020993655699988912595982907300024247391328026726589593495684016501298181373825644565352765993948374474162380600637132383533713382424541778474845510191441300175073736408860818461262169990671150560885783699237689040009714069760788711529249568549863220894133217089858878206697849296556985270173322510720230427669329714645553694458570569950097267985244117496511649543779323680350774917137974028505346400019201193556191931548895219381086322739062722598887392885875974355900641982303607012829276479680098794224745842209137559670610234162247511643548281170329172730636447399641507429443745678685153094364517001361104628844219227297296491530746919511174398233950503046728725118040619505530000353530771035214927662939910727501404915502036965835603123380445289206776357943091975043691975385138687766126440325042778390870785755502473564004567393256591394381178688208480603052203920744863011594487369112067608425060070629223540426409222220525292255394052471972980790513545499147523727873762114867906135737588402661707954435549346868882959252860584005720604029554247656758329955385673293587191873013466144921095150824467140529045879457068725274295067281683925354780870811269907234371247889230251171015850251939700526112058648206792235331644244892897149911485830305013373147063401568395667349477754278879251283087048048501558060324614913630362619625286401115184889720265396980412353906406893602731284070973616933708524209531547775513574447790882005870288844698909795240216918397234843352402626400919121370437171343543025689608948083019732924519312452911216579691899319947787996662372088973384593019484300401286678010598130921915289319342750169191282453277436115485846293977524514371857811265065049440498530197469495331048467213190307588510084464958467371854477132118391191265129042646753621692000620545416934253150710806866686836018359389928834785317242077680247905121378205583579095081417773671464743229793721885215132277855420089221655591937805773629270729290975860262920195588250048951810637812061360624717440992094655271000576487495524885198778628084607082815740758326926220096790331708990996979938210995201603957791006559624543569898409263806683532450040136290541574286693144891737721149907404389549962349633258920398051947923877707579161120148790213414109449746914204261041783890200070538442356143358415146011095348142822500233346814065226112060760323006852832137707008871431949697344247970625069555373341460168614014555184738399694045710350461069579253976408119961203977003973790569192295585301681124389714087914509803201642830632621410743887133511795524387541397626055490475507993788447416914849539677557249368608689147148116742811767563567549183879154664752643411267978223953013686906962289261209420315671470993226415174661740563486994379889920172681415280984425469448505031097307873009002593577883713127954456914117988638093233712827807664456564557322408559558662571457964039527400014320635837615427331474199106450478645555788468276137578071986910827745716055477427482494989412562440691424578859968317705250701089570544050691139858073424324389078574570745527586085075932247918660263761178443755453333007580780552857043199094001506643533106492494464476540542437898362078286495055250817794310828706661212101538616404440478559825656515934082273757301512541516568427460065761886154867000685073870883403257491327407023338493731304723481306168160296468288017053759222513282569284364526723660694863741803827565857300544033439873754764811967787781072944630538215366572684874767574040968543471431152201771711854739388297093143913083496204071604206149375248816451801781586677958090349911999379513454206210259004551419321787942454521037882667306859643051284988504092993907791727333226452278088133667509410450599093551275966614893184075874275641542092422284567077511845312945527392467656521448850342421889390116777432749237153270390439644328580491305790598255065318504232175101906502774691492593167150886589560416297955751769460408709668648972350972290928040929284111881709898595851428670813834368516778472280571326607952425640912880501672674299890259941693907332232528236329032804156727316447288429508292427470499647188622749194820124400574388020779976476642518311255316691808373770592655362379213451096247291425641365112226810938206110853373986122777523033420072090647087724317378461315695747163432568726609028809559870370763921583631815197393847930773358036317836621908015122767549129747724322566854367452594295952066839570538045956642385484422167048169825704132252256245873936718451176586298321383365092617197060338492272113116834835967475089006060064689835441792563251647978821164936652051608214088041630716498732028317563566633353016472284703158576626307153199413145312469251616727068897821563404775029824923036334595339909931233666520197713446620599651691769681341733272870308943044829091712903954122395337866769314181756436352743642142888405749296182499836230971341255552659237793482170898904036824764808055529772345877580789374756673604251238190817005951977820868894789505704297883855828461226566965028933206433360090146767829303980685532022819744072693158563980637920051540538736441723086014641118168987431285514097550322184412029383161146475762213151543698051504906583862132076685345158115172717630272709778765168864887442750726698921203886725008126734919615574621882192363844318276665049728558115146205838320075331147463106408425431916123276952769816106936047784794846099993169039071096982846774645449657004994976761182555967522059613644600131538865191128261964313136973948266661724951797966974653346691035793229641362796375531199305061289012332766808145927793513335892100856642613754590337377033315172214785464188858761011458681033205052857547793425604028186721369105240334695038448505823676467707631060426417365654867632753736238325774551812836229987445799474292728912380342370251687313153477222520956176601558494197200680618891705840985835761156649614255804781120185937989161303297365303867893084258270326170255176764188330579156225446646114271805814725466953444573807636730846405260653415347580302491477737607298367565674326833365416210058457240106646506399352204559315801934588236005234739577578634137074659863251780907137816765473432866722657763487683810720179216395968677135512593666807103287366304158238251164729326611278459222634285597912334283772027878769875316921624675775045392099565089168694813038002899829083536927635018382003493813946683847525233776991889419169850797038813766793961029863845086912924526327552559435877637979517944694481834971179116164442450489319886534960521185733097225484775889375249397519092703089980591753249965754530626489838290272074861697511115676842253932997901597469316356978796236989818524504983591901967662531171315948417129968774884570669871323521380677808620994792887877255852267689850061043528197974005773887546741348999296878802969258630934874196360061912036276876113007215417197742340817252875957249860982453667333581571902315222210352766158084017000645249703756768718621090764268670053209971706390688110429536605992959938181374786052733276502828707073449567562731152035251836734207438437762033200778513942354752914608551567755675391252214364985000699486878859487147248396701887282568978701468983668980337205206297781127741612056886408646977912689318259813484375365445252409505673111085148466612399621206651096925008140843065641560727097897045226590079565173344657161123649372664426147473803198130995398863806417565658485242996902902130802309331478996055657360315149496355467716393356203871861288471619688546577791623918010022550130614505606500992185824049752504921039813105475561495586197153868286035591115835669702737214450332567798007542813053644885149916747880259903287809245014977644539449533302034562849037267338470340961084869275516164070371985762867490307584205362645602641184731945205401354960021582613760511397587597787121186887569033506294376191339060758030335336354999505819403707321265327579477193072985274101623042792844956480106569531169881136865113486447567444429650460493379194118728664568730171055877062748165256497784658477098900357426532529626537198517367996475695514887360517778079892836734295618615229008228705975300530678207549199339656018694559264631594573792579745050137814124022169942401271807618229352111628417882526962610222024712784661806175812763202042933653065635115017243442285173046312251152852940560718797128211473101895731513413569446077857261311871418137329230503806383394527114326148465102101237543219034838599083490846570426178493767970726314376590344942517598184402507237743994335221988560070934649630708862035472246019564836282535558861689791600665963502874834126269762773232710256638740357895529919082054944669000039777774510672589680647976756042885729127134575297474784386151010271551386272234996609621057725053348468257494040849387067542449300778177467290229521279428552764350750617847011882378025562437288025511560208607424107211189651438380958700065992687857110925942965676422484626522994743965540681590428730996899173365077636474689390604204049656417662549242002246612356794892364864075536460900457897651820524911339918263957372561103192848189579768688178749621107677618218627369512307508276425445616618453393242437309308323897331320658932961163161343707138494588105779614322509519382123230346637766632657968891951046364059882469457917837958829913936898207281829331099858352547640031314812066458590643334258542937912381687314120825559288292487021645627015789131523262501413552236004548129232028578430236092541861577181873568375935102258418167029328134884306903857791743235385747469824221305299845304123380375070214672094571992313934939837305242480401567988921955559810050345199020597590878158286872644288400433014985507263167517330796784279615369272047114530770753654660253538277688203842106598395671402857023544539281039565816574159346486353368316899289560059269083916868387785570520779628202252128952979211260319583964955151058202295616574140859249139803384007623112952866063708921765037544084394984596295421825119101876520132891966392089903415921268225502858106553969428909696639415037844304729986934788598987762744483774567220225014123600066650438264509828560119182198656403462020171877269636439162076858081947401894398379596295832794036750425196126185568831142201500402034607736395674888873359344306676223008276749286314463037631914289439200283915943281458667138920328742037070926103938951669109256323046501652589044890878306743084590970561566015105657148267446413324286611723381670080912242988456952868570635640165611751344891629283089021414940256865962064923601274474703967270859365224882065860182399163303093540090576652295512464953243429520597928859849751709787049592408313666036165671893032966857668738589965481374986263411203760623616918899801284185980744004935563197056321011383277377451610019787923065495144823767439679447553882788865777824257193963126917152009668935002096299061017208121121760626659186003783174527240249377168844896370970131722516848041303632034993878202880428387591005885071300579779083938008603379789846049620263401239412857750006437611394478042383871289137874006767314587511129833862241697921272719722097470138879888974394619300212141085178774638367746574113985136899288108338571817969714537582359443235395805525254084327734471191689014111201733606617499777759934831722793423109430504609153501933239770963157832260885937812923176123284276959392298877902475272615549692079262697682622049055319863057245838718621009629617695976089068721626763590667143985216031553584493588189973195523545759250101424851518494337555673876837199864792386894194561747287709803104918351194458950779113671736966197853944864750244171698666221134582977198211233492936157894104314793526730536582871714156625350073195384951053515230938381897317529678278735567168746937090037470034871826374959577961094441113430808491813742912600753237038027614580304300349251157571965708483257363872316720457183815503928887390078275101895019279129579202749347616537644585355999139023763083641235235572633258167519858907236990140607916328080988161910141862214447764211269273213032804223288057072416744757076493825334990736765831349237975064902072164925086599870538346180358665428996403890463896762046510756895396335523915905632305569689442442135239948706958548435174587231389903892318593830277791925194724763421513861727238140595588159723769643915471192344574223530394201864712774877915671999393856587726383148096446027353304639859801580109691824725406835533710644063572827176658047785611147358956202406546403980045650522691615788167013770319979972514659588538306354795699917919270354558493007598690736122729847014537956168064514166460827812125072876820969957390459701171887073834428762030688072618593512327003644313848619039942634876416070958734678248620030138666053766885384597062406174168368501879821573092585915299024482633215055578448232168481802085653644924800255425065363929470921601710831069754607826132268815528306506315668749825505366156188054408782949330579943393440749823456067553228693862683066899876081111767033094147283444479898809448148575745127514987416894818018285401329158567627565078212327781384536364571363322888162565485757481774828391931114766243797379100819747619302996663592778294004678954877050428988351258531408479554784053843742672899677060029425485845036746737785775797518601813436437083516867726189503742238240052961298074838634596418162457660162890689978592695062811261700794039673183628451645213157113438443915497062318546434268548991123958872085404373110195998416973448525215364875658744726246320849731508990722271287489957578372207992993462763089763046037336866338519054579027257182687883593789609925831808848728713102839405942292472115273687663242322399087067766483548864126583626937960321630358495017111124451155331057371446458150209711834480413091980451352746525428626890891333234936465762324058205783069482564272189577406003842606191170042609835513571180156276887260043711259937631913215588690817283900807769112224979303150935656943564548573029844872153168962596515290601741150512021148517881375461642939331562145188057488813115985896934953074217454697002953602106710804551269174821604461630654278883624874424163425467338722060589334710544918266233498798512132551493676546709921026205711414487876720400955869863527133966555220974913587623977558252864903905578927112863851871802669420474017183505741867382774380543796851238287391665913873424955723525615866550043886553508065386221156685233924877032876809629725432249690675926598825653664935804173760044753696412617043141223204690982334571215533124611369492910481125271533828417377159666561049191482087842085095846981668561466608172145977645930572382426714776703635195183381253843599161423874630652556004150347864465845868376290702963757711559256303833923229569591962041896329046378085313914578600722087281768639141233351911437796001252112826530389403767014550813138422421564764073558991687149536884609293042021618790748897776892374294339358307182903689177399581258690551092512190579248657395360781621535495144731680336526900915108223709081482270229806331963935061921610764708857990242290679512524035217719760243079666315844471110110110640252126582386473329896290297803347542744751224222878942647704412495793260489837566775303896483232113640150154813435617502192997307539295173610113103093727614508432874265361843217956187289586218896620546302197747195118463923594751159233701554342427109779983571224907573731814438785495252452429197207925706791597656563869495506556418342954250530052739054470755954570410731182969263753063417123248396550530658219625752584819353497065100266771426920686354046582965943196667425660147221912168404540303030342789878614955418415281624990882499597076356677453549247497137786369819834607572996000794634800948524473247640524111345442575240897342547655045208544464043366011824510845782089630927908918200225068260029996500057455646093324632354841914663698307805170996683010725489620359418118074613741813513847066058240819550818065567598329618172426990068885383215897352922572937263514501147080515312144518639886958566288666241378763822889784753140443448286110781052051418758921642202115991658665085048947332485746815676919411281668086288584093292521760885074433566941921617446204335189176809702511277128344222394123356376399096967780953207458286179544230312875754914319376759128615835266116380269108579889369532720131136322506266129621108969027877095411948973857518013730193259267708757543575467472133597416637919586558069502165432899078737424211395186244000714300695381766108680972277359137255497443287533289981212165015546981830765374844014562551845656511544735316101335438344246497172042174552688667352771178834705377026100162650437649018639009234035288211314141019321869808707959891262416504801883673089949139474103278853844326091468014652402669639307874216698512478303028150540110764365236015341091140708259987946660045987715845225525956985202225733520280337587468305006412689901191470171020548634594145946154058428923064003268654297005868000593615402464306573537896931624950948892326148744098203419353606863494201279164487640034660077878275921137364354931598436701096273551361173626679893544042058558311405789776860465357639376528884283056661047574217633045343178483452671242009310344351662660382182305077097648039464988188889842759416713696728175668945642196282820883818199965712603614649754892863491502901132552139971239946754875044860941494824519827957255103318170303147339356593127941738168378990869766348093386198314502121299114708406099248445544326640120138901190985811616732193688075614590810932824405277036654885346653978350134271500490635006140163681152610696127778076907718024724052499530341031065713097299120708521550880228671044590224419062333346737813988309045993451840205944508608075046636790332923289291550270671696379829130003722491402823897928142619051766541327985643237303300918630714355216576359212177252112176602759689244435356565025111091379911478682641250863856177390658311701690273410764765848240218613225898438527795984465508078390593646063191452274441151079411203078512931128655898249408756383565971174749446441040348729898390476179026723179151513086641010384115094149031359293813924121546931084257981008228199202409630923514157319450668577259894785728894737871656944902567790606704114620017319026689538818528033224209099870733808278043514895684663435903512721608602906559498707013538898539030364575257178100738581305463372869753040520345977230022260404003238274440705802170086889610298913858488950114323303857351671511548747428411836973550033489451669393644599438521289740677462167653591109168204273652239346384060433840509719655236899369860713599377588565430621758077604134766192425711701241088827204236546065940032010852271399998959625792960374581248813301372579400878229741271910779457599846103749505858288075501900616945923231876767461687873015350588615398862297397528713738097097789129878274124911284458999535289090617647061083564511740411647533764695066759329754420642997938985690469342534012022753455970136304840599063126353399054495203118052675268738239123782363903246036639093220316149226813605677612847887558061420476974210308038929456996410609473529739176526095138786039220621955485719826037656916247668722647932264271455780831814446651217395092174497839579963717027346830061911246485227489756489055141488270969006518679162200424837322811225594135766301441807268070283564955709330184505822911820795686930413973431751721376537069869477421870837039808367898530192741897920016000875698962173142259907107220895477213179547876743310303275740260531385935071627196289403281292497968998615834513138343965051826091523100522266201045373869523122366549177994993132218351548719938655844421216746869530813786123060800346142182953359308226590508516072545670363796291428349656110781057798483157353384742565500780443265254431053550740244077866658431325274883397794142786703099793250128611940871430680718325403097328956063789621208994115682485399101792177440209284305196868671633347624759463902826742881258382016638663346735600795610893057837266265349123945682868955311497715863432539780472032769160878636762709360574449625271851220062860032660878322902223632006569809407772833305017048933545690337770453849125148832863071233543774902035786287901928474754457095867400989958279497023567034697726651541855680321102540441139609732871920120463497895730974442292798939899673576030355798074756423110160704887631542901545309756608573638090375792341417209784670619072167863217420864687370071814749715541687035796430900342283079835741675789733405359021661662729094965890885472179972652431186800320943623301909070646841397391340714122951124427732296575382179559972275788232430645321996565798831263544235550653386661277535228538941471787214233533834095579285535432202741538602250067875866730432560559913172671049496193542982836960354227514166060003139623517559396799817126951104421505105452341485683826168264228697104793688476872144777657129516726667929047269336789243497807510418189900840137908591787669678207419859564009555377619580708703190960606341733482270640720208316910773623470543886714432987067529398631114523958612668804981119147978834593684743236697300958803637454087672234460767490935082857016125409657897149810182942685559662408725845908933409265640488681398559465524211478309320321860761166872974784681400231697771372303493486970905490043787722784684487202638935491911965223858670237334643761448378899590217114343848677150199037223607609411276727189760761859928660993580816121030685102381787120740859965748039096405605991752014413198726688785269852877582313482476604418835383750383412025288091613356813904784465658372151465696390023461515631672911852961509429497491213278845217806696852251880675406321572536506341658420482272745381387280200126643019237440769721350184215175001522434984135066441618161330717226975282437751102679121666362831765754174701999413612012538283886705896309292794990118776885868381821076373970290946917940313836084418726597731598816624080063672978136789935636345651028304319932147829659344740838825038420700719077853219881564234110772656851344737306612382113387297137203583894868096607756609137186532914248591137212591510420614789615809640390969467636801775539735642530651849478052288160477878633046041754031370330005012308457382831961549336918476521635124262997094751453556712823227039648223655137778890188185206762673160921017777693134782396843144352763970027016997819313823074043842399527056366661827299015315676468012696482898047703746764505242905600087500619091090433039753475634547786941054765408628107740452720926045611573236838378848223852126023499240865439199696883008703703819327867458967245529515849550513842717145925076608435930303511908600258775725954659358348970288126072557424059680790391881455268386919053915855251208175076116162092035024032270796674715205095081165786502155707349267418870148768556663481238814797979824092589060432821506736294851929434821994747258218227829697917963004028578741577727354599299539101462545635554495575741009280596990954241948712416887632956412413579843839554462925173167252515807280578871184567619926125077848962402417225460166485016310293379981116224820478762394651664546027457806815862460404540800455687430550061689731702925890012723948312257549071090796956328078924137173012624643418432169896448760181236618946459104537567666146354148396299314257685564480831645411546745752024237351335243218436967031355551534727427305009583628592879417051540192928903019154673032361692672869039799672293164557067150355543833634612494406007975419691313839146237224204608022353259046741579090712174686301595324910458064358996098148432597212242471474174072257603291546431020602964948742855245763900859040873455115781597936314028597202232402674171449967033938673681623612000591271778174648144266699812547875445203005359403965492503728363593207149511824382906355978567269806648885833672952599862044171222356910059570912348523351475396060424489180780289981535793738366999869787745275595738301592595324558045416265610656958928985812411853826353136470354680539268399377530188797033149398601793917822393358731505496979967181250288617836099010465822977742167523245801281095827121614672515919577997209526006787553800437565235974245106894528706304095024865488938538012313635927922119150947007674900167368195936451204185442764281769508440960065623767354877040743342268451995352822381427244214390555556425905232121670859751475300633593974323969413331172184159860926812126912855539564994109508232924943615595356609880838360733250011081410678858439886116156337370822274371789396250315654050022341271663437432605296726512389546763272177114830150622194382222250489042215511979085166460531311525617459757390865834510374176050754088221586398026366104116696143184586073917386603080629075977052263510421783647261998029301459505863772794830419401795011870296142904604415471362957666418897697096158153278836914777949416075298764957543699832487091570806477065784725207383550295695504004279221429423432738005502904049326721503003781140117092513836225335015246973466765724355400580006894414125653025563982699955916105189405260651936347707424302620958130298916362744813815773904701067229747371907519276382464806419534411868854281443200175758727647253545657486705864894985654267372194935109219952950275685207924331617786537419956978197270583823745369358794092517398432648188515502244644662782958004304458970311009196951785700352581622714006005577853031777363703834038422278564243537996201261082486168001590791282661842712661475114732764368650777100877002933055756123387907831211530054656302011298379527034362378445994939356861287450307395965836738339166043012560462968462016304720303434439733704586084659668358478033431054019708350943860954570166925892108864173563446097862607632497777448383627310312089178033561334828863386873069706836955270653637112729727257175279037204710376992092615852182441363167302810539628809792853112807317338677953854145258525372648481049319175334172171343315227197712904752930970261494391797149805519436212465334763170483642206896897504743700023824305358016288289070756875831604414875162245040964659160372030986144981700527819160007307717405021967874588155859156610588789458679002439120160938462701231370164281831435866342000046300763241877008316271124078019454315590391581347865343825194237466597514880878624413354105556317119608258027940017851376759447349675456922234076613443063241689321850068789685472811915376450154756612284664443827738434426893735697563441212560776746536678177525607014029058963127493587416640047952154424367745596146716796356317472991020809050773282321337007420040947873412623115573466324954563869227255835378827157779566551183099668488334088025794538676672225575652303838773975961093901866930515347932513275244487241354070944319679730096382957433740067769014826769252680391096867053522415619376462308229056960570499524277380383114997920485514750942154396409900735558626271263668648452600767945946699241497575974598285573307341154626108829913934704925157425399262950598493867451475535851719350280976245483809874139309075222832802050197781771174462624083866346310147842568753698051326439677021513320945119920223625160078403666171479507167420742756656235358359733056201326711416242950759687808358522995723264684725023683087839022562139025686363142670094440254318853580475616324265165247384684668439623395046194692141106109839017165464530018195917859448764765607390415089501992212615828125794655381907374833256591926241804066923357990542038759651911391181907801230737429988194039486713423637938457685278468570052718899309041029854889930597514848398656579806195037346132247824901735450015497037509201755098454639130881835564210502724592294931658890152785038448346458515901106969387122278357091106143054344282471008315237964022524256711343001944504889527938856801653233086466359605820235819761859625481351322195112698284046813598783168852665761228832708006364661147277539534866372373137147130323168557331019712520057080427084161408679077074907726974394013873542248031974201062501743386025416333244457167677142262745974519323210514047084146542975201184850299719349539526879873631601292834661855035471830856840284000384049720092452046931801183735659129133165578058380073590878190728739230422855571034885789405401510912635850718283945037537659438474781209241684238526730477263432112675588008694994747396687083339256522714210963884842602318064432291812823291756518811515405006998863492545175146076480388821133207944614874898449241714456506458850734931849974718026697440391058511847315910118852318521680696898327263177266070106947937435181910397636954157186032315514431290502361487230274660435458701401349183453456081821078715907987450239375023470621740467446427625475156261780482807178079567115837313816638584000068673319961687692991479915036383739923007704556699522200421435643074332822318219996898166428756990260340916095227590536992836413260541190119163078847185409267287192843328102896110811928144863112222505212461932532231408737352467802871503039365401254390729044373347532875116484780367710540519816795325476544663290407778570909793294501608359761103038742584957910207201739377079814435919177597670936623843893519421487641452077827068943544189794298046697234874827117356587347753152653908467972253752835915532639932640711627768060529373311304396132663244652360329841301294808392225259323017253482952390391558696653367824331652098560586367607734385691005055521690113445808510427143674329495580957900010084489313307444719797392073895776951415060420505510891411384681062819788278603749076709376609419109923849235146498145870782953466704183638369366131242805541682025373438231161796333142867988867344876339622654749962260428338691248253372159958213134638076324335501599773107206500201167742002438893882593677485981291795390667326978488056167389522998025274761699228976758767391096609600376559314184643855057317124011362138901529463218605995847799382150169616413916146989631147416666411157773687352360325315548193779544745670690587429434683130734655173073007311352734293594127360126568032242305999310423351492441169211025522627741744111819841729612398366698224862610478201871008321319386790490076865694606450842496835581961008182325183358814075852028784470282408403734567414527796194477974067478807467666873048248159688047305546344934705618571420464975460886145213485060580711383793323258508271478399227259960909704418185520000107158380354750056754420547188109279835142772832476676813307692732816439953560044700136778396710573753285169482025912900860481363863867687671845504196514379609808684709785387672829186179320626417806490873519269101165137348610573349600044477568842990637980436247309378794959822800135828500188108844346399122965602226604585125470449224555545485057945989341671192050289955285361215757920037055407879685229425367201090855450517502965466025980392819311232186422385191672194204596343869078255532688610925105736276159904525572499661062803275793951195456954528574293672085242335727160987989747766864665004049096860365149696752618087344192947473601742629263081926501938110391575016422128653314601908699968116198245751567261100843916150412635271214636664544668430407193604236153999811471549493672796142545437869285504131680295652182518761215444289809019316801705618065974898648209978473206744315482041922444988678129174048675158274840584873295938456726661029178982699161306049652995204032883824107899950874181011992045616289124132936366418666891267960773244917716228085436115585772160014464707389487309742853733957273445896497233255365704968322192982751246187283215323734739285234122812873631366934961119862968687426880953513257906141476938894589715184914020764471854744456116624615848405305865390001623648999192454165613165225036328212075347725674121608423227500928327188418207641811420984188698363142797610483013174205534664188278607931467635290223216230585400346942730248175590054901772584409889761304662941397964508334880783751854449179835162275437693781782121123677717084455038690575703611356856074081882932957999849184092190896239990317102655738269642352554028276382510796178759091647632879555298050461173525329737531807621208752938670926604432349608701696762569595971871800228612725683232522671344393813706315411428775487946687344735077798277721509300763354592121983609529865489086927519214248061518927479221447507022551199248595861518691476199147400028914910233533809801067676059756036369394074618698400863460678639301799216688056253540351445700798256438866052735155111232806425115845049786723839186587051960822900011630071170617492726576553163364454846318307864606266843819427203426462520888995951260846250572219240197848595285716038369652803358253986985922968218113910119593320040320321075497069588386168513805837140384820215738965843314104463898265351656172010504130922240286569633653571315008359940607721949099852762913217436904180575381090829747022382216651141508414010508394048629300079402054604348054413161738970099793475346513513378357650655552437217113211022407130670760203070767875091917712953052735105483827409864083124264529021398669710174558943702655992371120654427888864837551939573981500641321470152792217032888485302173437136582070700833651718198364392927183035159163324237913697112038601772954774418284481061771688307403574866283821635068843519950808679458245896311877348216625016473998167905363562288538861891590227482539604834809549208667993473279760972170191521622402046749877734403026067099060742536710271947944250920523370642358639776729467430585185788137489803985336964388907941594602315188475007133205037344285035757121107944929036570217990810571645060436068908544874694669537818255222001745987172943680946258469829335719895731516405450736595019648696957397183999473726299746639486888597707651503783541849869108546114460649052962227475617399496962444294751240680614912172728794639016586713074494031537417378982275939214649261917332839980583253764193770885026856165953369560627576393637101747197530364058242800948773207912968499329162290958432891805238986056493845444964034317485466224067034508834123215649224534420013595159483755859799823574984518783511313462305053958511429134722418101504726691504853861255492153154044487333868061057305243037634210000440505490473269684916527604752067704188825781644341608982312106577528031790078389658616706323575857756966342752426983489542972460076084947234952265932177781135476161227971352443810736091396044712959700739801052934158879294070333891996163529337848739245827341920518274654739532941984257607937610472713107293624162413041157853259091923029988118529357457701613348590138581811941276014380353070824699617686059034357586009641641277348324078862037060655808207417224220518567494532319756501538484677097591240846086098061331900385279337297441529350553942789484868509768538965586321802157700256771291379267996382089031220208427248558893050634243917661373063414840353460682112721305607455094174198009169046874516172660034225826608192594550715720040690171911543086873032937894300468987992326009183612089477012148391520112638527000426800839055312656028652320116981454438693635156965362399677598215244714904095330883256855032704001007432341575613671962996569161468601157067534658299369766049410279093181472602570224012487289181121520945510074697232031487281871863428102530450191290747379549564507800649181774935464462454907782796215052309187746779469581045773039758684559945525181660561203877337466682634545604584794581509579437862260506697194428967150245588859224315765551852340198919840121116231193481090049698327585000731461965063859709466735564416950264374013540903337741364738931533574306135942361812127588889252641744256411637295208110655444072646033646705733655701944629414020508533616207663745859892438522964341053066931471628706178554349846064681380047911993407103981922068726808395544606143547766884247762648123135055571420288644638552302105980138859240017962005448187251958450593323657638796836406508773958246416649129693101801914654949510037760158602612704047258395990770373193606058375064346848831033062180292382202705691448131676505087524262034243318198266986121124214639582416108798026480374783345793575250483982349356879077991687756642450354674574542663071333441477055517673783920579215728602520354557389515079907369782283679023884008450734049963406778509727452672941708710733270964206797883213782018168867572251709576449120566179482657964158260118168562167060024146259685404542216961624065742603037292252136071109316155958828099344459517114911861329273664330582452120482749648824284955931734017047880908342507241754267728740635397044295139330494982389625723236950980315531980103551591790156620994385115787240574413058847746216689706521621291993845647700649060072958999619884313319582145074457317266018515038828947941527924280471438967712410574593271852571749522943748179948839152132455590488761511776598942760291308872209773126069633749210315248956058450314486868062810757110656664688534255265551925366366040618187317133449447537033934831431705890282656074270228373375490040660080409265454934782915391460149525020923029641062541280194605722111111560701356774713122380459439517469146278671055318994988831158852750406531370265595677842148564386744755540539392523664109592562381996773319516069664553444015798429931669995603193277116161112108642488517491560514230032875565050886727755787662094294917640292923351017221017300845502299409808349180652936691656019502031216355069701732686891654174981546215411774325271689247862384446208648001274673809412957744108164231562125272101552244201177474193875675945103608994801826039999495266800275337124379825640054077873903819916383451433771873997129609921020978440712421156285774662645542551197962561997164525352172436915866470797365096785726984753708362291154785906098995812142802085391886129544641709937930120285341600150556415163224566950847152878734448255610498756915228147944770790798076187121483512637318549412866660204297980648892871365514923596050716536654527947448479812002846877210964698990162942126120643379635872224018854535268771729454321929292059591255144484072465995579299837068112025304790174976059534657766224882605597477866009374199943580441573061360686199365734111499282742350162112624390488853041741960977583996172276037951857660026362571719464056476342488873778878615954908645871617671317507729491383590176752966095776834491076390307172806717911033459467364197814847890677609945903294466723512913588497295160949610398780140922274770583211784956645132712035876270452785107362300222976940820703100963462973369785779378459118178822705799049198642537743262219977228184739057966484957893852330766291140582836796360782968867283793202150867327631266400359651704558541039874940543020215351726496973025561102023272820224828637327204327523976285883777839900911198857568974551488493615774367275411623558013875839562599262986626574566715556864995944219910637337569890018674177465093752249722420986785386944923493855669359253572017351057895931327306759121920606003573541101755033406199414418049600337837287951402706481834321582353226029952319671624263990388829078810348764918701759865501754335275978666638834785988679683310258619033622462604733260678818746365480742717896609595568859778551496589745130124152977647798343379803632669117073479334405412244644827017855781895767705849459261562918835085335435634609699460326524152249838750535007518486823986700872076608101060113150730187270846506064341031016396785813543164663611307376383508047246511874659770637243502676418052153099488882588625542018210966172648400057938143186279137041427029887255187279389936535618085309006906083022761011222430352378106469939817212579101975977036239774575398945593493752143081383963496141178911862431894286149742256645840233738478086801541786906973743716565413849516242806975037728592192213076912973024280311767464026101868165856191390433589146439157237047522987257108047133313813536611699752787958449725679171743646331681692037836777337867916551417973737034334185932982801813143085294736116882565375928419354010451251154377206946293662934288331271853052883304744478959171810660804031497512212440837918561399396727219443515613807949179389126261534223094830738178791679267210134130628929629453186422634655356891460350403451252980363470498490316925438334448127387081808602850372823991017804711193864411827421802829856028397141609101383455550073342341199764317598211199301163110498914682661016705249594395503578877020817784235843542840255958931538072332785755448555124076330636322921067842354250451812733379481274838084735426210740338081374952756969912407771895041812431654567527327961560476815828122165930574247663412793766526600247041010525037425365206275728574556477939479258196689665543996928666313656465726326092491669989511517833410085965891843334244502923096468708846062346015230027312589247178908106034801533101011466187031990090131941955039857466551745931510282489107021936945272500007897936815216106283999634831931197240633558208322362070770639204969720741910464623354976200043025960561100040234373163824492361616745110984430386057765424795899623363980649642609920029260950159062887665496106321241959512897644242068225094248425507299464988914333076634295972815150574244334325664770541977682811329951273691552476830810808556397660108834384497269175125548505279300344364566582321142789933029287435737572251001139853599451745743461132530410949993543489017037561025195383246056136616495968002054390352947708800705818019368692151131562346651221022589410464967545712016951422226316217193134724960631872224436672036193908040968904670134421827009460803857092564909399091793011415392701038976443533731373976227298508126923071796191007769780532082919625212637543211501153930200783129328175854470372131139061867227043167063892751774706421705820084436209784764649850730454061142539985087381950675761137368114559687704818377783894606509089489763082415303481126756643138953067485231019316636862883551772121358485750684443324521711633453065827435931937996643988572966036729522033634945640678423234905761741215699367701901821592471554509190612456021854761292488846884101601920725906622246857515259488269071341597210018285413843768738941184000577218675683276313307034958073307570925284388604454329589814722596776030413417035919067124956763777623864586539483299667326533250079903426891975061478712837672213927961982155732804255976097914359621672035749211239803497476772137142793724182158258094285590674337722524294848598784517108816936094269515318878996127567364875405294836485936815918699127990149843364141059850417037291759200202808325131103899820297732355715294444375910294342099708418552584584155008271886110897743412634408445336447238534451695664939201221159931763568753928606321036408065470503900688063939832721251649676423392166429986389658008908560993066681143647821053815609086860869718956429931088537837081261012472102715052829492950312505432330876434285133123128847854140166956462041107189719353380695638437633817383379755632536043851435843029776920812055538404205903629313128082707611171587954436244033904123015087486883539052078831064696113588858421746804207536968121106724077001012543324948816081697698722779257764397400184864537468906144571958498456499131927792756653766195024318530889133718671776270891049920119746557029815544922415283323332903183051747963127753796582655864180047920900299091771729832650876466391740195330973849365286519950144322023300057402696178735305509195462437259236342286162395875155318150422687090683981987264339839442393235926726400441551299432114668927774371109354324100614505682200379906507998874567812604598802175771914902617590256976303380699605665875811203742296944161867658551623975745777455520815212962626133370977409699846979082416538092823929919050354818670780652450187409141928273614138574593171317095383931082066784365277722120924557143433409723418147469560496205501704158894757949414058983890760236022580859485827647484957835915838780887802756645942078292007767549549890507388767068384121580160655430887811073108939473767457568698663636113261190256779243649093707787834779694223796356081603046356773107104463880590632435628765379788883640812366082190276142985691400964882610198047336690092319364081899324401007315835337010043096422362380289321607336453815917092380071622778739358800326573101938265931745279955720103541549548903550305949630267604153051767573871177475174478517818799034122468525096738714597203599542251494672486395999104968775798663518030011474375968950095106352074411278365929031656132584474553799787481784913580427113882282529589179753975473433096624646757687393556346036177318690801300007905836015072482905269597889569858809812691248937559600423923447588528039508863568875235089449517845989334726590086042388133472488945224596726053765025526482744934045001216231201098354174002915471958875043729439504303431681403650727150911383866921648560007917573297145531178744511572028752421658729885438264246740136993973399869857013229584764023619630926284906761466075236679924262409700047150602415623727597644592557087781925364716555268580920242148018327823227761998844702670587042754055635953853131430302165652572576850453001324604394528999347128413839438596429852786696243378898967752021947837653078983015923282687722009270134719705277815240078326956340753772716578489384031530219770922439056020814183245733603890050826133291954093253848247746011600321274221951624825314849617013226168757967171575104937802443267892602335685518704303590533191669990353214373761615911093603330268851397964206503937575855860110606492744846895406991674462096741295404072356016734244214388768376804331939612007466535948288994723268889878580908403492947517133615004437092579773520692343202949021903756313977010430283045100226355392981157458861757381107052463187396229407513824964009553574565427412903897975318308892454407988654545059739753142858587153486283741167366002937808233060735622284153348066608835567665635083056441903361361358555738330768520737083121786409254400292535076454063336783877538793370199797123224318438114776246848416084419963548619915163025670868519614853691541774950301533631723796207323262030781436987752352677185680542137177338531615119351980460487475842870398958994387094250852687386768199243163885372711411454688306121529797369227032845984068215047009746691518948464303276704117157401158353868918129384913596123683230632772986119630382932483594391300766817366353042595824061628372745213027250706682374909750071760151748214524243657406584655078206024782157412540049640274204541905244402576458631290731604738615768040700658664043791551874315166231867478487269293243035623818677783868556820782383503946773777624654101613559139176454061398917906480803481464955770969530392924900126913349881964550779712981587683998450922209539285561864368789271034683889081645586554412623710136883079285987053031484534810445616188036120310606563564442136571744929444026378155852614558161201316494294080529939294522634191363012388697554136790359655933680030214010782665668965519957137083481650898877398985388781146868174641735348166328403032586587010570747938265022346552887501663394553523945164129586225324613768799539742149471724134481090684608188804607270713492706867988996283000720451175070747624558023959686426780408600623938741905265946538665742748987445431936681354733898514428468243047143669795209686038784099354493641456688447675684752320126127335700753284165949806078227537692429864052963074652162993822233558184170115436026989819218356035921791655991505448384695278077537535092000442846386728882273198892810924496703494307910760893087684726856856520524342193844246378673020193621886805340695457997551804704282866407933862620726674194158121251554310349005441631621014642806221380074877111842805936966946002449091862268110137205879490782209170944051065682194259564668986537002358981035890425336770312027596355983375143620878668582322938029149493350516975008305967722040162737403395894289492984558146844404625147922364290083523009439593124631061120930137243713124111187549127230820134781006450037714037133142440185069933861765630443853682728455718575486125692522838622107115512839490975358082189965116626258149196175163934513861440703424476498447163527635081724193533348782239930005099631253006633025074319398362642601362584928549220700821847722383602145980409327818202202759888926065755729041994013762383106907106972062928619505070706884910236463751513960439223027367320428308662270285321577024747751095632326320002330429988587156476503156947393885670530115619201995465646536506316354039519781097522486328574824922110597254965069560893935404914521841663225669890339744606205472360035095752817203606367103249649789629178156520419314666923325908130251610065275233618506834518714241686659252996717646592289221452753430001120378920915516863975163575998490094649999415930627704586358789898378803051145671875822351634765195568613874506987924122088647352132523857336001245149830281288381309172390596833606469729883259760688237965207584749822860613722131443202201944007309415746388164702129628895663060768690506924087077716786068051464805428212864637159210236404332401235705209259657266189431525758693883310317117893636641193219103652425168403986518118354733034731766322583075655018262605085412627052838076235435308455247047973706080084323717779146205133337961553760924591673340802299616047322839958459027918683137293605609386619558719938176332249268154248814612718714545850576163027437829382407941740027340966933045224690948380434094886833393935134804178136350053098949640722508157781017180517321471017540238938795699305731811955116689697522228970038122335642728035524840892987716561690006479697740230422892367607689328269492794999418246614592453349171100289715458697320191353845156412482269200822811170999673440812041822258059355986115515402848951559790847968118632623886760110044854749047325178784174055203982443270665449568922891526465891980417766365529519508912186967965971409756578484102326866043616066161162539105003908440554635317431091548118329497828432230387714287084551116717345717995303563699950013640424923003798298395754957162690260969291395002289263253312912951928367595735505803822484409312123329831023577496327390029434477928902893759530585219012702270461411178275514023268222945178344906760583371996394950948377575409557117344456992458157109196075142462472641218860535355377212076517637407941063188538556323038530573422844684907627202730812141855425287974216235049936418546918423237998163281845624528734639472598140859523660021647893336885254019094304126598392365834020148989075868160357499231153595366184896338152862110742359120063162069772012343462139391746450317537832422234293817979564542002704114416196072403656919541140489142942950303363211842758671924010584585378610423310965290285384942169109998277724043695009781458872163281787705919728737050095158580540087932079132991644096362899050953642272825595859816696400043856325900840843913398228220131272499924732891197666696894084729328734219513048694132717831644576950287727582605335860166923524693486617564232171923095250846907478642374251971824597761581472465110318301808553585492580523479027758133650573378889715374539253347520664871390654230127755831814646298505336563556243259491491335073080488112068548015314666550628228130620465851390119595885034290312668842151818782756991881854736923914733406731851083613425669921184612669961946927324666670163440939360720562528540007319634041523095606713260593561537817481586572497872518219243639264361343279568515056123368639878474350077203452244938205424469319159022967446446891624927831750546973626980432799122132883661851223354882888211810226373488226350433279566211182143696575953165695847381172012438316871374660008349311301893666213448782257263561123958408385398797125547230227282949412766530558583407962750053398548550131435810405572100473069546475379502287897080076097640749130933999360723688873462903385076616574806721255103207447228432263937305292991033961374750405511257955586248930994288641752063910944471403390653573860957962690359577875184371347079929991797078081753223816017273221173546429427327385555999252428320807904892675031425626548203633459533587225982672148044361499649398500555509058057927271635268507574526342371237547538907920025154168856089899276873172081740148525587585578702768782496873796348097876183097869458099605597406325975950707163066611280141443817153177070468598955145235850653407178244944775686505080659876482251701384097291770742930445409580074438028361997859179643683502563012317551869201037260406499961977301374676040942285666187630222164580771229921703755230610755044962613397952676822497327228443840310906028822227620602126673928407496859985832654039468038460722960969055581248513368347276073304240693997711932126175028290879848777316457933098185621961049484373782801030955614203558406227151224701778583915816276514700826122144747351172757468648325841581748004564704197180170347915910021052678776663636728748703331199480588908957637165254799536493598584147852549039246659491989009851006808362532538041347761897963637666256972962845324934021158398526097931534678449537426174667722624602378130431890944857149177117798628762896802664228790156032540407805389359782549634986802721152864705563579397721145619612946117770884449311299686331967195418532811335218075010746166758460346357536963757257486303659671156093778019330497893673434204527423597787215772679073991832802498142602155536921906837752771663269709100546972893427559130402316318067447758098541137781230584875002475848287677669625824883031042767232945529863712239483670759362506239734941740285432775188255854918080032783219745079412066495829127164599619406202668606698204800042107988914678140209386977071237236907304121486272685450217116482735338305864981927794419791769815013406186677051271769646472631708245958147651956240044281043541108092402681124436619441337851718023448245480054688273776815730916036377226650465907058734781165216331843057221628933218587021518036984516919503474609787183172366936890196436199862048213369453190562818513876389652773353335137923575877449700418492721344124875527106857568609220660163384245869562745751927545715376927711891775502558401220232944953420676960236758628769616599929855853935268480677539125437871648942707589496818422903782101467345620672840028263802795610754361361667558702193709777661574936893826937823778754519356100466592951832372320626101162238958882632987687988120540604575459979038877332596046590307553858646920053785881646469348202435860617276700543254932811139547031072290298625090264227500094258883296218099575846711649366946623234526390896399157778868002040613396457055307111070499232296196182200297932421217344609729987702854811495211163309834377020522926344888285361452770650017867847969100960476837745593274638683354621609712809701983938271925718475847403460951106123840339097446865116178725563308461413532718268286273730491565693858001894146431807487346733520837633488925606493121322814795121249550355811766627396633841740227466805945501541640258258795707743953955197755443307502944369431997249631967288966220941872459730858193306365703560731429054014518094775580503220862634799473473513675003672570768760341238400107336783734181728172847357458538468686478195036769935159833205335646231233886248139745560362248988538748583196651045251125086825984220525447790280799407320641918417031521471514874570972268961585835501988373125824912794828955325372657639495764416319637894776952050199640839155235153071217445634083153280228684937975254774071542906689184141477500254115190827400087272637778480749527596809407362059857679264236505805859983221734670065121207950315688344476837436716440746694773840173976281926446886531236833925958070013201971136198663110959250053389718599263204974516957750452274376162268227611886873940156025442138230984725141446947869746415773169672796676017924370585208726538807756989089889364449100714120338640479117332862204761814446408793815519324906796818546657978442281201029527481633851195178165840036168119593065505734075636079573190872529291067709677473897508500717008924415140175150359830648968903536560548315195681040648664749450821281772111131117398906402658223098940824780994614545719820849499689612204669356390366833974199211641977604361257973126467482357923970941958741568437158390725861147182117040898640401411461163279497954430509908623057236257817752049807715542567047774537162962230175759162413546520360642963732838976920176586982551324383551383096880085863505823578701959895200348640332659726986078784515238473620369791229117204547897209687960844150814318221958172064453092858890450379421655545368175825668745648703764455665549759724767842296430935251833002004095141796433696149062552443842369330027537073358977804163948484425376946844868763850842032671364134493591646032298211589910415546313129191293133547713001628398852248087785824151669070870143243658916403008605758354968644318687780568755919162024370675407496929727605660478117145173037339257115083556522811635198144988929002649978403061630932846577920437491613464999617049822588384981139570441970301171480434483236915493177707652209111861199134797404004730625664785886588643845663275145603756110758702445710449349303955625848325379858323659866858718918255361853433881873253919991525433324434865043840984533196947862094714485174529508295929019457092353951940970603700480095249466938188296697362270553102772814887090731988321390236270679395087690168543891044407117473689635488229099718417574535471698373723381734054086321911070468127360883400366237206135564823472201820167922918728114404136873537459006061617603689253855825555713041298519035264829950707233325915343081047310370720180272333617304775119231093923642296701169516075558137533166539455840835566167353653733203878710295321513289601119572035421298863137482795700755602975270916892563142014663465842241679647718075418836858874573168760759095657138006747291009271367553806307631598550056421305094967083274421311418861456268019443598369793915999498937273030481294227700761198663567051820859469460859786376386342312342601343002247145642962248629491089380184313988656475908958862080095421891028641726581995809699351874356560472270979410645751128889211153760500962603016501479738299415247541893372069967566282747870983861332456770254546246093531379929208105629340288340846747674207957408144187246329983644358444888325851084071950926424713489168768840969688311224129347233205568597446405745136165922673727058393124085891461985096875410514409448749192398271792865815229843009238306237402174485308474741449313430619838824673288582459815056806638259907528887525010402323458527917568476820721208659067204308095977198857122643912172489263636577381304966351123951193287457494425338023436656325843172212234510797607248510943240094634822114457931125698368551737406681803698382226308714643903988710004529402034349830099273582615062448351616302539195729420228682508611799204305172066333423157505225955646663300878005735674954290273385526460832728183160941424448904710833082036905336012630428825454697760203496613054849849365243806204619722720403274728012487219185637095524633130281696390865115293304075322297300794311465549525245424614950956975151773615721798263996449855912002458323134656636840097491241887025945284942638446907585628454505866699381868257704384297972388357978436442250884378071388851507135779185794968777857815499294086026079245483336080630537578921121098362196223806713485981720119488964198281552603775213482745460342724989222816263470915503326025315184068648667689942990281735664803330833001419256255100095959758666188238577887746733675336999517210605084033647232090633118335423794127203460465133063075660542087340385009750098382161538215193750699800522823959827956031720055161427738838446634129852429945351119866669674514285994683509775351177786806967926487672996424747461200672214727715529673018011886959472295570349335653222195772079374597563158697865647117600983281971045502270720700773811859460899186500840398702736917841806675867504441550803708690552423649755129094020410106080449754756843445431773630797735153373796704132004876399926301577428053577719523168597322386684578401751967377796315640652259729772984953112309936436696759741596247842965554359801790174988619027022895199682635001969199696308240881665511317970609882143063623499488491778073063091736861255143419145926719352190041893611073880122502054938340129330938311442683160961994301203061906343237427888624571665343514344642233697605061172789895353491611312083598692748320517436406099221979168824920472607306080242478912050376610691694897796239012299648304618224832204904571419814488108256084063845627030877232086192959749701321158424422477968951036364974928476805710266402421900197245287287615540788487676639741486641585456406775690136492797222372135474574969886312314061294685899299076434590991507571456310422731668407016487378226112631206569363546288993514706377483016493282633063156484545704087518186230370199857977209825861018335489063458302831375118675893618522751268110694827268194524138471495565683512073607019830660578086395118297268238009909110462753141057192054960951750251702523951062193622934796205532806880308226880972255393043187747842587265111288234827161230704608899843197854537260793260153730248299322389170327941041446858621058296863164898912212728617800700089332977932414403739294412434588040109487370833512901956861643385869738335627874807774831481285671316991469399631133389717433369168997253536932220208847108106647020154581751475126095568485616688511688842806805387615569548149339556281709019529418716716291056999077340297848374559330901071741422524356121760999862168618476752803695509774355841318020398237016950915959599410600949300237870912198549059152196419828661450895764364543761210768152374993037588765949738287717062036635981805167792533871688846134501945476261742881880613702048069841350968143399857598312015823338476879214458995040811259346065576610544067024727377483388792041649097185945367033984236860529702774197067639842736076890102311029614735650723709764450420763117730743213917225082519586774579313343866876772837589072321165820322925303799785299076127067324667347932984968450416273842286809809980858583939344998853767496400251575998322178524057558014344688969388232923590809044767202887377122488292539103864360782229226415841836609841283869336215064853640784766880113740301898355657326519663087462946877775604430678788818093646884707214868032932697101370550984329318902683145690791200568567402957150846181628687459819311366971587031886527521432015410105768852114732234605932105994628682834990820501836716991034948231004536534663089883505129352035996106216266463807256729886269027548244825524754210011204071081922358487787306384791468853026505820838363895532318705795823058813263475151190934297055407911020130431556892469892450662769962671496586637382435213664905344351130064439257782615106689906787287447475868183141676594555819632426437959203387330210647339532574108715266778019372266261696319848012055289403341747687531696429332142133693299089319522911855692640416252268155115156068304630663575166912114336959911120810074275986182860835066071743676773853710211136848909672995211837874545514925086366095803940889244971330739177485687306783869715123674520120170345133714526760136997182139850539213847619086759699819037884263436270830476068824625005142833685659756110053701299811887626988851080690851359188526297766716015482602055112449401688581848122092119866311225595074758282296213344741215319039115402265760402402680556651860188672253655887017191957135261334441583936017824256144731398637594477202708922598800159629499338882673997077009950662791620456587794553512577456604613223288617522079261929847826879894544848090955189370239518910206006312291245193657820052997078733147751317859153394715577417483433790370629106359940025337765592010377366899129919330520415217906054535456106341842678701565285132954736230658355395036683198669634142444131061193952865453844333307370640809060594604693662568823581287128345666863938176592361770980028627675158096112189656269619638433471139433451927949361175239563279007009338407524959126982050545378144427907922627813161967875376347922934808219086048355440172232296301272887436147524321196903959167410742166491994014050212446971548595773512093190893405742764262816366396559285230869806035295640298516099133898522473218372137563959047744432031001830071349269245488308710579394881645991528965183199031824628995419686974122081979672966688263519455660970555016898757058191027332093652949478148105703881800125518849698672617386674229175290982622942545926325188285683729828904248198608396673453833799356472082275478134487749049085557757999304477745893744846786215184765212464837928990522012076540695504231020726077208171202847548826358535088453131829389694047250923695704481735592135648209901690011655893769143345057849316579403412535589481639831380985986911900833689499522206546847329448007670870455735650857876659153797975452934882620654784522461770485020385299413943749236734214242389412894003783961512774509167548691502809722856676170540758211261205444635010942710233980219375618671494196659256431540256488026332972840780514514731667287791031428099980961948818144135967695410429447837635740360540047162387028221746815976956252001452526634436514001615778553952198061725912898422594679883125778085590178959484554177786241810001347270075654996616938209549563236604459366823867289151010660090660635765572762851015725277726305716694686343074336482123979137323852446416211177702663181119355435759833820046682055011750581940951117239059188207041302705314145125540805658422449344105287653402004522130326887374316001519845535221796108172010683576647125029965342032383818268370477108376287733134366356391333645638370480113655868911848038588882069125566023889296594199803971748030681961990365356153186805668190928358217676386715804026462136597407029481854872489980587631679641352304292994944577921180097513145514520585061286461066247498251360468908386947632425622760519119577057829390328718515067017610033001055569866708188004005726057055886825213630243745826054333907863096978094496782908456801632192366816054239491562979150533323468644281069205857761777569754171062654555530989282385736428705677965577677385749281019960124441484824648089741751702556811363628552389243371990248188486239004440951111154644134882540972551473591296001065740037323591384974093187505062258795370763270350804384868379932152417825083778329441380991554440838401721757869173160075172421959120816333135258246596813715917376201975643225741195217214435872690486071346089298459943219615985816015903562786828015318688453024390092158050391587021078375817255837494754503605517451464211489345547581559840355581182811008480489206609862114454921851293069449949069477988046033435856869110412729897223515753419036732142287848001834234022419491545530054236683106321837376649076019847779330255290538546091688152070087903043356045952227273508719669356909282321597754926549158426828368354635347412046581666803474515164211197170025480736703111004680264428669873440825440314851676291082101157551747302059748971624418661508246725128011597111945898679846070434697745271802769116463591754404735081836531654359577918102993622082781104606833978490587965085105659045940906672384535451076432723993338138737817539319145768753334119564363633865433074746068806672188272484364609103677395335492931810697040796701206791423398632819248666318996516663554302170468158767065159467509551447507734155519598000347626475732085918722839197444704841952914677924959358055937522010024773264528665198910125531267816704603128592749031599762750013736993873500312429823938089514483363757752895747947696493840032291122290667715103849333143298550115389792876187163094857696684989881438110843142377244554106238646616122476258196839286071888891866357034978336623932841057599820049287184441865183380988388040857770549614538689043114757696036845588596436338859946110324217088278360254667190361514716915726606028400597730981815649253530768374678353914647726358251381379064440457821126888862823692072449738112003254938758923617760724171509870299993115436485942627962142092947864361006352195360040276035274410726568156336220124582763375974611617329768323870644027422549751737802025136776047702918366446341758881102794413513377036915372644346942392852378270899240148872033102448975634051568315740932660727640798516626326477930061598160757272047319994698180717279028145057254944834778478823791995636891695284392359570429781399454149407689725285570819393922407245936707186144867154122899514950689184383393425351895008916771217225143937211094729580460448973563340284652556972305325480645059122938217809134580188186235520132147669858659963622997199748864309211313227918317701322714492573035152528327270991039914972647743385220350609964650780729940405179019261873381387918541419218418198521133391381306746073488819362616889914586938901888587603269262065398442415448808879908650388290123396397857039504246359521276061593724438206161579852656237645199515305253641183260032358389709049828454344631242968408828954827902715072859846723871504400351170120426454807660732917163313161047345527836455432223598373637872104086879152024184453654336161870626486296189801908781187984137947902519511201416940468164114312585205163880780471004785858441784936156654411990061931613147054748309327313429147842206475827833581303019925100337931913008178777386623760039814485170118063922841056107011718645332004031396986466017342402025338436305669550898958657826486418372198655633509236344335096961880797191070886867444362672856175641557250784622980276944484281428339277904232824364389086123591136218459158951430293978378852058410002645670753204416302051010036209089951790669019037038870085719862260196413757660665448148865516796237839989062779174062844569033436512699057924204448231816264296610100037907347603645840701395420796070571478081408223642664869874161422014314595663352911462462911506024107191889043901132718951616526833310816832476751162379111654677330952950134013553469467820588496312095151106399648543876677542449409562599056255510608940557476572348897804078924275044902524276980236257252805691867678859785741827859497862595449506096509422964385720756521015801914495639779465136224529640876719586778933464292558466630830339672365757972706680232574197170926055967022297500756699808066351901635433864657984972376317763378536015904389997263973560211018814889635850502174271168820810740442250027091756321576486596643933130124539587217114047781260477904760306078466397986998064129149360268424141058438120782573169527249498459589817399406302048224712051537006506703254277116800477895330102614727967977335665569735030236411886791062632754761806064747188390744652155321219285364827864726119409373097659363255638253231740350352036382224800056825348866167533233333710445797718164348343750795919413057665628012622103477340990455131952439468810115718457475777886234997776836117904802027004513956975080884270534341356890326933848778875450451371236565609116470160969451290420514765663450013206626638860077891908248701441143317694257512777300184908434657136650769482182190133732973160535730779389355028583288163980134371262203723193897512497167182042315217642318407329204116102438407612945288662793732851113617872232428944753118373738556757784996943549251519747020655556864333273627916226094446924782042847094834589517532187059795910386803430098521614388216761397126300984859319343295861461276657937213585342064555833665122848378438920743281574872457297695334600018483314106299020278740542233517311187932668408871730770293202240250022964323395935925972970891953335845496401174609376146166030444034683232388872219312924118691919973563587408642345732619091289825864623095475712153991244656845611098557149906493286700314971685891205378006477024622417150420405793734166359279255969693605694689071092029576890632174302608742548843138789647939713253065744733141908011938211073721816580507899523895686944485062276250218678640858122364590316435977409598369625761977085167898991293876373033059461670000889636327709674616435420101619696466763971641821752321750976809258097247057415933073342616478889920775223222514418544539281481060636842330300821251320340451503250627734687584866324796690645607117975397390479138998884854272765343682797944428006882395263557540751845486920405541964755292959764145860082624690712997164371882416502816500866702643834815816690126017571691166841011948869577379351980657290928833514895892864589379080568082405677837909369175973791631064153841185673078684941325900966053100295924547218840673593426425215338377563655909068141615950221817370192143363689063722000034215142909566543812926657255170748462972181665180960111602197075790402118522695627543848205234941498470212979656244337414570291201138279734077797855333517231202063321298461447882188308706780101298108795391997838043356817331305829434303087973238830380638117937473230411552950727518950552581858332432714393036285093969615332878469047372245699196190019371314156578824474092179899065818119541428591517946942878591091361530093629158197371458222862506511700872058081267938383475840988570121531507880934569947904799972818583540987333134480810240628507349297799937818486515172152520247664829963950458834980249904767993647231127931539454656783030738984602601120518172018660161723483472751705296317554849213257570318733375263755557552246908544339517721588909549951145640902839998956687854353731210297465903290160962918840241251319328676007543586730212568794559965929579137126881742725025854050972231299945956454042610737855878416886303975646982535515636466987944329233247868159260166673543456856175761672333942509028174104780564374393822744673272787784604567974743918640971872900602541921839375223242476895100894885924343697441682882464337603588080146113213765556855078168766020786232856042268013700979611532933263330216511662330052631886919810050068381699954734260575569302919423588580909812140271611277397415198249846104439381728211232962091220920660815825223015276294060928390918571672399020984099531879045525429987359674139828994443940437429440469052105797284779225300268926503974469247437658497880968536113229203971354231683147490440579301372751462955712463784912502220063099879964258079020506649027807352576714923624144584561423229603783056215762134594366763053173100505546806286813778442867562980145015486973088597529858436056812975384504187952846760158223511805848239969720815397453097269746386228511544248583506227700502933654382607877759524715340133100293485762525547665117924437459681165462903016284046760112395381693450158993492558090139821911810939030910363607486746844214358159581397516330763057342128753712961055357665602727171861079838877053882081146595963792326467277496785416104434290534699078255993695355816563730109580851988331693565871382354672164003377443780866990847670799975018413042824941249721392867291677181240073933210498713932983645964310558362174184102397675194932010375390350488542678564638442436069399678258987410456008210011742897493890026719776198241259431113707892947663918327570116901852261542970898783037207135640038481838971632650611506417176557537385848524312248151997692491996629633940441399364127097226030885366718403475794508858491679189109292082531013316350463803056690580488360613646216179428960911212300810445979772940413393026459829054647035450688716461097878716524557623152543769644108688391325414730764572291167773823436819678495641899157687361514274551375597176731930519558640092130333259572722367734295779200388249023209140370742080051079257947227383299245929393973437866069347661387323575843646474566599867487248843284722753356521047236469597446921252023626571515622732840040016669510675134117933630015890756840476284714957352902553478575288419780662261676439853073099291211507564864227705907980118891009090640083048844404216209389686827297795772860137264482799081268747493793586754304600361413531503142150443723838726159122788322196565879513013096317039320082100224284078421530914934895669772277617713753489387030119511174858909200468183444222309380254172944026044582357922180132509964527692493600881379812693115803642584636454555912224751430522005902296657837369823523525891025761384875238950608704461560474497953055076816828878934456884302382593236802440728786331669283280396899812891572169246059656760291647738877160913642853951784817667806348985355629271693043057453941520389303362807007255020443411080500800190575322816104050349077687481854443497479136886016904614198286323574750285389085988408699466634542940095511628573537056827335016059705353121787352036492396390189672792089858606602219550405259505980066743987426840409528596118946648070468569429224739854213649213990713903305274837890257287658346595904462350590281092638430946528297787947931678426218926891348653776431622008191239361864374963426744776925272556010376121822065536036684805409487441762816588776924976372860000050330715751867179163436069340972212885736144589399551528960960045291679876652963322573870246368253721148915920695112274584210579387404696497726234575099397511113213851831745207352694643033658973768072627313432694432142452558898939517614199232330989445044526297689431362625238028305313333155520194544063066228368271663865316873648799235340237310026938459032855389473624644260371358181008049661519987305423299832207805548272990316796495033557608267985892228292860918027136946744847549940801657221007779520962025850707228071818557636538426314984972205008497627871161279161469430000220206150286376491999023423420836913664843242021559144199981442749847891487975539946970106370955985498488396002344154220466414276718553847916096544150413895205906183288138962111142876668380818823118361972491514782163369613549540637043399584968241547766795122590621124122816508790660373460533258807579304106757816832691790931558782543324360962763935013532764975479748544706828861253147693874916898473525043930282178138267538439865155522655781904459761374012967383879431325743701925682438270872433846177259890263528506719598699201028798984136901533139856199942128157622984834480964487139035595842493994432970150711312847556933466150919818446189468367591329047992970054236026851321626134187832709029522856434574344359935564453577191960244040980355602612370907348298434195224255974613975509336560892924714942251213854050536181667524782722079872580431649438904640407388346861467664296423318452328527628567358631105396093864237865773156763733170293396756330537635028123611582194704283477590042412157416787890478959074109678253127583770801969505252969477105209846132117272585921504510964412995983122046993274724642446688976540704943506428928971392769845979520650835326597813676553941875280305875414038172484422809180746607454121747240163374777570012217119239785328300190117693725624794400970674281741450390360758178488963746349344976983604464202645467050616994041645692164276486930418770500254676429831311002711752738106634659466062597122288557369986083285732556831364570627115520133019780370519605718989690898044842199305278405086836174018925400821358336221229217983901212168575511430360699271621693475227126603590053884639595486274373305478701800419928644193244827411850871767101409282778430740088614610847349197976257616576680578451854293838064262927647860084469533662381965725903242033930741921757539023191922781849792608804950485660104163391219585153801385586741290081247311855739526164887468642136035534186013868882478030034479631163241116787728576745340301138205093734425663358977913732773101347023393277908658840445385780392839951672420320753213806979857818207580768153575617259256039924677514014731656271899185365152122734050166580221604506514151492874821361167061456556200664883467753698657893207608760096327169387081999646991623718212035980473683026663394302429289173722545220281713779620729544164920256265237276456511405722192709412804776686023158095313421039622373767364298441148312074905690890667755719192113162311189455942161906433665032130646806758455225331869473365140145122144725413096404627999837115660055992418412362652123096884475480786907515788246888750684695040022438052614436136733076659017135745307249772952813134889758269525115805579018539890759470185624787782452205666024053207431067186101664604841408506617407589978292678101237184519358376149735829592093440127295197206183399578808890060679568062044533144988202883672014185044409767929548480242717050621523326679996422208549268639293954183188984200072157936534625254663703412264893128407013024474547864694137887974394700737348474526948508757311854866143492013281906817189232981548675012061059805808638902093172571913410366843487638736684627037386506811075048935381648840111513142557326257512016482974582535776078007241199533894252030942587614399966184020892968856295396800391953215331632083934412609125687798640560752859238000375673420664064532075330317078559597234636769889817346729593902488839071737079697996199037274752651351949525453494985877386460581489381951505882652955155051531167061012082279215429815471181655405860134393924449409632072560767712306335156907365143710365617267348608958430725454669017474729198965526562339758633383625670423956437905718048998852760350184621040417461726568022397917701064460616676482384584633536821661800509083362922585470347125411159682154324010201320963145209008224894952344814587504083186664363023693310342409520923762487740315898907828113333047799833391538775394724599561162868048018343362351343509214903311803407915246141636636866690227223427613225765826721022919487415000143738863046573285175338390554874433490624040160991932942405253899304604442486952634519674886545692991302630364449142213235034994453409103820610868293051996458863164783143123050837929778188585994304211994725202229882015111174304912211488028337988144100643921010330851458138889458156408790422423430932685094360237076974831128248531480135059322741638446560062254942312389739609110063975168087341545473955403035204847847137550256224452019733268833910346223201027964611133034068597042262824971441455290849389943792599531613379399712429969554696494850151401110757077884444096231007670658353087316892821184691177479988245927126512330124917877168958504375756242199663021513861530581163227497276046525897829036239863412010775106534183225932208000702486966318639429906804954707819736535005289026000836420974449916975704900103990726901481832307385035503674153866082810631304510427912846125760503225560489027778064853098534477274168971324936037330705443505114995545871902535811893193051188550111348936138005712985336068953357690019413969343156871629370338413017267900835587032523707343908175417844376765512378281161980026487432662439396431835777489953090737696675856536242824533103992616960035346547671137815961102729831106237773852235037950104542467571156705740145915716102585748282485878760169273387801024218612202433844647449829778399126070369599391076186293973238456020298996434442337131395333506970404496903112928682794403475444534281972814587217380545437760651732001032364050826089775744465253572010392531145756923018311217257652834866452150060858111841348879245750725739698995296644684875946436151195174389182270271039949970269727663375975111242549505653740498715256108263769263163421074232804401993799057545589719891256740911196047724350567805824655082846447145685312132889526042389219010412570743645346737936132519972263085344266756101203592229026328094889011466284402535005350496692991908565283196510869139486792734284769504342552344536722557578569531637217914897886869929439705069733126228037087058008511982852934157005326811566881499000110171644681587487890960618285831514612574637902905317987463528183323190552966228118464472676028057011903768853310872799763671361005967640977843669706899206675868416454293712988611490158134318086268833349881577819333942795427098031882576285035930968313613576861122257415899524809708395069974121776253046990723916939421342751546866470762638713031429066292155781260278186022941439241640978915427467513787767987891980549507894168072404757226306689920912104414623636403847120258640978192803885661006921966427169036929871824765463565329533761938616071161468711933657207558610717069332731137237528533387841412383862935240342140098749954327278038053017501736468706547058316392393603766812062540304257863751627807527664366277012142381348388843579001290095664838707416215336704699773973306075207056955105428311773826024530105135812285012634008057826105236814040287946820624752966901281489934508140927737671681909777423715780720299440788003568915768260413444414047503466032152473319885769591678515911646113366357068119957398617643213060682106822253739652723049100021551859881539986195508638560461501046409486367601988884302809895325819742829654152967625855412666983195101411400720361238782891847668574861122053965730770400007869157638771340284988718545134127872099552339451088874882784584300873471225511944088679744665318815430470567902194655333548184094565697284147647028234890327863073499661241278998325250430501695817783886340730203408149639391772160507042641591985211549454834787145742575903376398394944717471264838995302649586814493655862740031912013505562369675576295406111613260424396086732679212235442467493873755531725046418791221791981486185937232203649959629884830052094172640291047013347388080085336754385700926717880033404794587397234430425421506877921572010332360397792805577121854986788995760700724241927569507157127810378771519854193665875004496555689568855671516927747938773666533495140315711640108023434958772425812327345017177651505623244137304006929636688601833414981774407568001168758961861367010757645148959774464385590209769873959472254245304618931922623043928759790839053900990161920063200806196202437796305732748596147290664901191124003009714727444430184016527089097221607996819801682225927461199275760240427096833156822473278618129205392266696422686147962610775354560801987901562414461812620049948512781885138576249112257981388453681080232627639815001055867219825982609330111863872400006594692061845939153715799927507721836798385982984090834908277266527575395294693575872504652855303727767751481331743725887464265617886770833420750104818906566574657436600161873587887746512997974097351578799794729778862010272176533178803399179306151607740658383806623849945612329565815320434321928675008220449244413654458425634836061257216707489434071533310612973970148943402958816829589618122186706229300020598646986961458328477763861757035082035246300180381349370568109100758631519165334080559757091417361721563821981134745664256004972602436862574043355585518223022023769548393987926882994871581076231687680319617273376931121506063531408456986339308426214992620597058134328763952406507736902268673640537727019872083606250519434111024185113836938500054115662312394055025069319458705988046107245527174600873577400451481395135311259450341476450397717416578700309019872307159739390031238544588329745187575466759809739640189030507814294765708777968018215606999723217782001820575781350157998369974424511713935362566940741661194663102618673320932061661758943239062079853467720995132105032198501251973905312536474855391368880584059828983991132565939841776539176643258088752189162866247371506693980108528579300130801166951172143122192896778590411107615152689734520247381122884418458670802862514700726354380324677511346439327242459143240683153027150727020963334904268485402587282212086696274413719952821724971710037121154394671838485387622791408096606418112899281098879916147779526858544377225595622441321396186865450606273075018385942638879923399865212231905519461602915659570641755930401685865359618573082436789494836858435807452577809910466288068780966988494811329848849200731800653226341709224448904197019026482376611024566693634021440833479160554660936096949591386378258040405078245705386226978016031977808453458345091949573835983981926235848302815007713609810904334479067166949753740878175790663894187781204474393564586007270088055548032887024742065388802034421113598137473143598972079000028637295275566701401049022872564190260392445632172439350100124910086244868280547223680933275870276242924471515197741621347126703139288312366316920752843258384813941578370949942529914617681543602043560846546736378860187206181135753852431156620377853827593464722741688912132435326382037093944939723131694085419185439981695767312371312536604258120483700629342182083798185652308116609225936954160227651921130589673562672095914516261673501453179968096948212846957302578008591650685611068414658776664761264196855488356142764597699333393727206066341133097958111249309879953567946340727428462226934264849733470338718323414050413431222960385485203658363954197674500078342308540074520828221708650132917595200193510167219010828494692622250155342977079593739245217146028363982271729699297401834278718079901514421589674256288433682164466882322810163557756258190513646913694367501228545961214854691165710035273848355287631682211829876778213221052837749633448364491424292414309785156690634303018117147577155528298802810642737967013579149667607483574938360617799311238684696632257505210393267787915510605546912434401504916161516082731998678186031612181404614593985883992393895706950056415222242209439892532420723675014590897069512706385827965365981730702152449186370770812855226278174833944554824774771258647809134746820229511817876108045467920152910802809835592593776135882023280635006459863124681934679028409217747332061471534832226262771895830254272401456927639000763291473654298072935173339656908347962547613226414010677066050758102207444796883507264839851879286829592216843701257842515577738760983046676088854872741405608493761112027799705591095442695534276710913646300861652933847904979431188828300142702655508168634142519557428654942117673598096463239677709623285919177282890614049294657189621087149488568747771195629509249227461916169114375633816998415688780814023654195271786640696957805813344043101007204242173550816772463237322362435825458569615880656833172061046022684387553135444803180190692273327742007900484465851352591111059335795491121634087073472245664488569207505381436794405143947481269552895268407713599934374028361424512320047068356456753628436004147317402922557596149666528443127635677156094521149228744017673912643311571286062544459871041610276108579266579748232929126640247952372867000441240615603522620531650431290029528082414963850871059713130046919000742833449628494369429673687362553504763819702970297825895818951491461479076797298898515795802405009347871259604676938366990931302169414915477587570582624381830407870078803576730383606607170158419730530486175105640650806900377203389200438758503454877227485807186602514485031211745094915751959886760309323255205183135123122378892618326752557886021548618315385980262325600950451313420497767743722968402003939252439403642666428437430220022445341079601235713258412684736434468837913790663370070988528460068744997905993785359474155237281290582466594050118261733063956988693590224140699036487464588680607008466678956189584553713685109158927134744550538952506369306477586049939150189855554633927505681493097190944507677112016870047748373793761425271596015106455280935955699541234375458378270801246072223596969034451475946639027929890824022245499586173003812330113649726149711382402811106461182346247753096792428219630013372904205307539913179340795904089692978822422071614468383928127914695025852420559966500758666260170687869885275088017471029999779304983098560337214198203673730344999125460056435310573715636183859464388649311786747522025317706720493608819666703049887425073288667261861258056677735835949039876673425168740694174187746545958522791380839932174343589564477000604583593196033508577919966929675836749600340530437338901899766215096579146789389377294975818235695343940755712945679729845310615287132519854566004785186448147689355655804141627853201164115119673288248781626015270753963313794978666367530269766478330360311809371833942274002694729365790130060395061682791611015001209087648140287244821309588819685092752538207284043473583474666320949124730199812814513884686931197199305875732631138546930935268857129314595220513020140014839677253891202401177773005128791258363163141207839092911864404109291502630207870451862881195667547577788526620374979437425343982327157103921536835654766628482002218747162882602716506506006000336589696089457744763984061121567418879498732844701035333907305737428599711152866512183538162758897215544496127026294358300969056065986137091947878776439555095434212892500967288762120191289838827141158228715540063726097186518019803470044831196671643257696646683239976636853070767663414617521627632063234476851468482431993385367322451976450247243445153665329743968918703134955190712137787220707409870945774726355225011668641997834683636270802567191302740932010817116407581266359160486453328212854960116693539525759558360118864352266116798070609814544861969391369549967627569923758957989566239138723374807246074179205577008576400559442778122009656853725169212110618613129531630335155388079260597299107710087795793032342627721774370246826815485225499866736309477700371923246060133025538672020708867767661925589278174696768634783951851888076026889151425120703355442710866926767847646428214031294777632654813659592316170739485545255183490341926253300463185398516860396982543162659195979030921891312557808128337970778631665319973868728741598773234111946949432909260134816016050335640834706145270237130071266637017016320700954078596078196536860972613938466209076443614392428465552687885557522294387304872862039420707964440165410424785316034470824784866270720786466271534115710252561310993434244840111553391630029863159430916630898962149351938045836673211150419104082300423638158243985477278915458209873362297899969592059837862480426416176416140624206361372974898215558711545342633852366063697037059911964822486645760925341556881331530782333628815414609596299696990969825838651242687820063817989696933000048101388473956131363810670269517320733139714815924529424468047394570249906760517593010981063486429349216407144189272309062114800383510130214937501461443046920324394365197326251111805533817506482277289695155022696305545328722906732914385021681872791171372456094429559427022727761050838848901611638293518617161215968291896461773104621314949161858947522299831856382284757909379067726911685110592025194338948108030986608771912134056383956352607085472260887077428782432196143061831828725349407064984710081382982737803421998121038094538172263763520483161527888761762277207886826097614531232225478074721607556822147412544698590056263855080193303513234762877472566885751602955504263259053847325727804229679954347611973169281776071992662107209813840729163760681545473354839331906661897839959903935627765807731686371294505762266546749199148764370403464607258920836079984216781686065459002891635145104970311598697342568337379855950248220585833842262935394838330686626610167404144337546173656964968220144858898840561425822510923826880422274794433946447418588344936047935008159836351003380209578330447573389014963480428911419316147299369266851537102286919189846332504107178553789600354992121885748359076510971501491376178522190843170641936924810469345529201892091472931101159907424320482486563230323901039236332496679106182996654754288370058250874408592850192053480898473250669914666899384412185789868106503887336770207731412005582902521231629163514232876847306219055551917611989115112297662462254912712093709975329542041768549592858385251787757724211128311003924381076801555877767183920732299885275958279658831488427748637617542223942973302793666758261075023440820096239108592428874407271936243666487312997297617302874481055543418950002876089084666420502007829188807342000291003680268669120512408500212537994446082183177436096951590050974516707864004002055296434572380031713057617062929964848494099419022876817477582964294522632263365591846912028793313516896280423489483788378708779200205541910480153964146922947309405454654202735922152443156560049814897218962002807727581865268255411928312596365444517569856061339093826091943238363761185930182214990085464227854134249411834607156670739912807340200787554409147849738706216395657122864110587233492568470430211456418138694012785400115340877693772435698414934091583763216726055255653426051441834079429718058482453250108264841767747726568925822867139529178526059508283566793645786166319982940467003361884782436602370894524441021136065447739821428262659928191825569228178174218821300592803513172787395968968278143098520702548276062457966818225630843488505349204210859619060967303490561868419976002764623263795266922049032864097036487287514284812665711650650520628374383327532428365692736629372808556491342906957444454890501927662608271783890302322994013796089516545184485131857106208296555165594883214134110724861328013865197075613961506754575420805980351799856786242098318207573631980157560999507745180947356629114281066500567147368998200926482513994094972297122938895396543736496432933599479900254494449712403863781099282470560206625780152621216585850335574440977979905577356520584967581792880391792718235723125273296473400950507691342853111348514007417284089729237517507009482088727983830270867996221374877023727715644491633891721724124942512430661800446436475794042866895528401426102632261239980287048206649408544568981486780068857462352252695619627223313196636464785374185463931403820133299593279017973103502541456941306640339754698142299218922826312205315743100988335680948626840950185909971780730052506569819204319477176773101044659206568200229735929803285189141046931713455382650376041735384774846888692889026519820999041514285187712222903255047337773855898115748031228604833969260042515649895462589595201798997386706452568217912697090714461163774371162875114962034351564679139878290951664085337816594918052191457970573345722977955296962469370999640994470114651559591000748256229010972483906615574551794062233078921153672796759420173337205597406366727754004132090899909581815718648591137895688058044211974850464426769460263117786498295535266739343144019097457423468671477972007366361122118598935470095782870156253602091963130883947378056550847195024052716685122657527496566686893707488251658187147490572989882475323592817483427465543401077777046851667210187722193440908779064108655732898196306112303403203090666283055452482322342594807599265601161890893630311425819150808373975985763900049320060820133089114361228128294823880479907944205972725143752852231723498613620621788569907466596640811254884717285174493383033137961585458202760017796826495945606129161658565905604119065201358476330197042438058187250249916479737367373914672166429363874338898203464264670858114536539896415527808459178991884929910701592168117332105841211726003360195246218534381520271519475970360992195346844193860519476492223470129713912889137179670337823268381797965120356814793459640765225582064057897970270125352769779112421351636866735277710315542142979004020928786899348985682708721747608523409244926430373831266091502306389964408142335512372984299843574294898940398799173337706342729121437975286951066733432613258982744452510290660510717364666837567254421611020453180233656485608311793560483987355925644969237112642642274625149170680049662435981554261951043545634117374145143161940282975615441341876089763074471905482334182941185017068637550856412949291057349653471725434833212773670771130415303524592658435746646936774992415838840621726589094814517335547861478723794098082710883028539325547770910317871937957536617636633380712514283779270638561135770934427308707282318236734782296214025674615420014186897914573014761059175874790666344616625346647620351739378732874631575895696269227499656619609083520973816830311471853724780777110964474486955158770609855190816151207501892423141188586866085866367525628289394838025425855732505621805655188176696942448470415974889960004876789936449694065225873446789112445600012127573441475181445388349630350493073054169599487963930877441674776072454335845172938300312855679495361611125658637165991243168582478764773424563635392486324464914866050914425517151919421601233365401810981219202748982983226570507869998251130111128334506785738656935595149985799601648644026788172157668486933285063254000257616685283455525211141831652507275073146751483527967654771362968106319560876663865987013721789537009377202591950503133574947638714030139706107275095496737167922282759808380480386957676981058749212626473706740514515657364887066862444395011572630352316959493602063077542405240641654111189880621763945021308188746194151283896747430944053237695817144898256551709608090354806632197209636484777237892154408445718260688581904741131395307328475878993934586631364356574644163479089561423550327151362828276287563505041583558433045537892943062362012912880358920243824667934498575255684286069007173552642029992634126089387051580156944882150210949834926347209349552837901496955666549523142583348670399407259384342274182092734840974363451366368993444928442838016183676890392291114333456504290831070864205936449309866658212324758494022279244297465048783084369310636004547055992941306806924245553065167118003317161306031812811806200168558253147000259498393024829964902174158648622197391877391820449387593255506736170351341742480785142101506619634539518343611071609943676831037596294586614052291988077495971390770238129773072407194662207610992256985370464925094456705962655180959975107484222938515779106443552776022757360429246279591904444175561486724046712251028313824405984835576125099230488761026893564671477334885931442269679635901269864788426273245314312581240736716558493187451961755666613339281531634876544872419498649996060967737817240335958432796151066354153255862032732838367178173680864272341892765804207306591817945963702500897702040550095153908982071161430887874406102973023561517158761322948100760598527102404919975915150051502463522330320662458543065486696430830337223051205471103467049699686893712664826656990457341833774813366033225876254134816498179810229637665867915893016849286615652365966160062388939325707659725035651607946455167542947926475962889265928754610152487467667033444026523740520899927920749162899573577617575766190985455562788380777291587687045717504127818506881294229364622193601360733238262162834285109853747419334346277367427657227498264826249976925794955905742151073638169298801585009309177874072346129254273127450432607688878110735022928597036688845522525954015076359193509626584988432417514329207032646932896555857207827898890148313852478027851213398599560590772304859073072499924486064855653990905910594944701599819479731125568848603814249222515783123446161260796449170287367391955519192988310447653963586263441956390299435355623141477130699109224698718837773116201598786037518333024116444181462551758186597851429768150336634058136017910777624645052466499647201504025106473625646504724903283846677379817321464798015525961042739936864918570252307314880999316112923059106395687367268376086377517645709803489254065156784895540766371873933786775589639777932982164109917365285335428120187079610514260992036370569423651713899628434260406795770715642742829182362645647660410069058142167798668755979094989052877820079705229378271536089193090195049814886101115395768342995140775875066614528548356647741721483260207777214206244476287962630572355037013870901654513602049524415446163973721950151869028904327680877809121197689183455910315605541711562799202194169709975097940654500292072687052904424862433381083632896356077173630446607099795386550262167995237545262128081050892278271513136409615689194926632343714498323969125573009202691472932940622466588678177598920945552532760715816254822058678420343971824454471809569611219744426189574427239665904785683402706251284629368091492126080789258551485281312070063948501152373506748097384373535355374661468911250802491725711868919494289608733655560567080797266944647554945711288997824136476183266844401692026114363734735991914348048798422904819715609782683310780446569264729277225900292286484966515942396073573658395861847277251196016153220126992475768572859126157332166487659153893029873205325058420160098475187568720361792935691680265464366313998090155561755698162225581085953567722854287285595576286496835096806996956734100055542362796371693255195342224998928944664337707815929564138983523100764788251417764657323242839940793029137654760083063819021566360996918898775999746736288625248596592383861472283299199473240132351979868031168781266756215038127677755445267707514172048444345725389484273330864037597445483245687485631944154045597393318081507827798702032565626478616110977326494135870924498059262430085025772074385661150549772580263765431268262199745062504456661761540516953319934912657760882331937555570526088623058710924093367697600684906647374688520488920245880432456560574855651704189577147991562721215544315596119812868762468488289127395957893498831811834364857974529952752099460184170692103801144877292988692220998890359449109268597815695840187236444270407921957990903699125814903416495583190538837162181542942396159933947728777566059800788933542880180825772795224951925117676309329218078457068995130570468806674283161880002047243098636777676306676323954857792461056257101911013322022179987186506722355199186578416646964671666446300250874939563229010470392811474299987746039135496115891322698900711261587585797407547893591063757040167331910521327566209142465701220397163601290200947877387721716001331947816979738785284082061255617818959678433858594621068142518279690427593749987172834772051378136346260683303290373129732651726605662755299198607331404744520735536514172522059806864544292377398159496311135142565192238824786009050735353694495482377188651759724661507523204881561399014709261518639759498548188999802842075482893486157344362520807789009998011474537667807291058307474002103190100628055329695493941636998289377257750424948132198947455196477976573536787290421038389617398400851183663041008521546194293487190905318139965855541997929251493955484240144024159243006425598391126747351684411841463297112046544408760512887650565772107219251552723113099617089458730642336334790586967611258743741703572917910743879511793897362999596737399955673228546814505006287834066846885043476324499157004687970514253319224139743499037606838327824588110778608612197576310001832652870511689095410464013345097058366613792363816490474782645464215270796722305461227922552713617760578588735958849675660670766310234414728979488692348699461647425816298155523742839627626864430010962803656918292665034909591344593070645100270281803316160193196558433869227596686051263491757217382634976432007225882097171512698642303512583516939146172285570028503665136873751711909607343377076684943284031671310001379670757285727975949467803235247395817507190053430050376924429012758852739481946678739657180691245121593657655519692396343237341428907582098911920518454510848585504110324543842133756172852676668396722681255800415627449154351285527555870842756001177548340332251396754026556158561329823103174781388772164013296858734569068103530971725667096421070519730490564751563793133391886578234575185094742768166662990108703201653524781555475055398907394555899646393768552259897766036866986203533457500943063067987010803141147104240825509025794511937071360796743819869522357408349573076136819762719683577326457866690724392995164211241449500809732347955433443114175336968464052940985799837003697068624641347659456144066346322156210717958280969722144984825572670684247474719661265032901159727551885965404910904981214649227970801716531798279600373220606261970991718930815290947312155720977274593400023899196344224216434245591386307974869642369149000752364357058978510061298413947686678837439711208644295587536127820262225741381101508700289618803635600889407175398573224037150423400463783008157325805826761889703889956144621960289800899825272203504078364822372699183935181044602937955738871046035814474720519292695624585295587694134703029534576795364291686572432591020055887125442316605118849535613308724443981674935816151449389073672721392484919664529302088928016157464041306093218538207562552850840422200435832366913380025307860163246810376818626920733147638180962386928819016806401457188394660755140895698641977134789770598501650442943196882631536681013831493124317324181416304658411559933606494435998787334115497486354004642076179807920346850097665629156685135868272186799991608767437346676549283783058982201208398053570447625323549055226603465794255884953854860352448574784040516030230998847695865204964412117952173095915247579474399736372536867920437909671574315486922271297807154687533614818029512808761852790400760035779315390825169643281794662002915474202351362465657662482009290759150180439907938027246520243649641452314082885320925974831256604786681760047938219618994690986943484136182289845971347102917222295007482266059718281679105676088487665719230764090420957917333929851878355581122178061707211727698926863477286675369822049459945845402873504131209985342521904558025585814401138394189326884610313099978251750153291235991581781597775020738504187350193513524630988761200483382979846536360700923181889211682579841328286411271118626303479384934898254215746871489145783019954845885253314174488633199237490007994673332672648947071897850240633733658473278449179152520349035815763357999435044259548054666302641452154340647462946307903613270662322867388841507460704778645252401195513775945760586015987922933190056679386424437290852002170446192851536011272463802457444661887529329829841968175796214692551272055813667951092148939845962787085510746898992518128731131905524566741504045669033152890409379876651306946321160006340771294957829036311373968572811959934820886328050273189353280300135701330896112034568690415003255340003190914152313168071242713838627753732336544900508290282181583162973657206850337280030510164907294578913048978263389448970199403131527570962959968879324697729546544460068688134071873581614713388599316443085599866734322819275409077307515679971972388569179758651855902215344799715045841834138837278471187441404285394017426804964807581166633461444542103484373917455312990571690583204896601449447949152151738814865894991688214062009229688018449034278688802637842286015993718369364584949252632958316316931202233823469183772714077283499804729328845487105621609940432999454450537321989737353243614736124126391958469843660821870210447742576894155319829833269876803437459765842273076756410480831342593346353050184746711893218089730962792344828161257839530774000955812042239653939943294069316107597048030343742368560308716275271742124233735824564091772476073069987938994605296714756865520640037677587763299670773654710972430042115033565342178445894478068393188504209699259640455906903359071928206908083321298014003562147796097166150147544253367933590865230270265951541638973882972824502047067438121374690349604429659187009683481305105135473239504874951947972354221181572072611073933644359738361517323640158473770621293362316375746409691309506276222946819656524234688943715639704567635817900135659177388973091774067620957799572894538891395270713944735637916547806454879585412916511575378393813271026005875031064909959758380094621896517536475440779933508820547507413281896856198467506471069184048549729094685098857264213640566241103170735775740630189107448932666599012671838420062434806123305684436864027362324886546769147861707800742263129191932400003437095729486842638092858995900803008850636508273863033294857806560867376637361645536267814658083406028112610673433584539631519485626583815270126486628362475982251332143055644877407994396241093142927496673153029495146262310299997150782811402878812704352015263823759371670696955175595554999079558996531475805460451806450371927980704181693294039322451928429219870458053587637733673310488053568818540708785051925073382424538702182798626193236247741646215918271417943313794946937966926418610742577387871946177115977439049171961190987585105296721925929414848654918730470238833464469127467074724359965627734771325791969353347799244751998109994393914267711639256856084352205151455896683475235013473614052392816446081506629840381745225135185420979676302758955795213636763180907362444804877187330963999618854536898539315531284161569315628418019241145519101500002212038692797998076692736716000269086876556212819646405470704327514783700351445412564781329576534062011961576403257524527410378443948551490077147366875902753003795189942602569168041826939380376621333689425720477846549986539099505037931919919829165472173009839739305416844718421438102895397259309443368386371093754770557584831617713162668931071696060136131842938642011273768149598035684190153343842306330167997682247941205055156271721761324600406424608416056911053654809537128461553105054473675683719038561413493085894592160260510161781085324990289852035550252526110728653786853973120790631674944043075295562923900671340026927911669221381822936692186199417605348044854323875735862652349006811082283645208331690253369595630652550358234224162210664755960329251425411099597273546044682607031480826121294900539464900274901412260324370215788146470067809065519153206245511694845078946201452943063701984264267253018424343854474251394518547272393078417337637676612898344833495023227008533032456166298274508096448323394748435120093290592018905223360141976923813926681455753851094805962604586225600625134936704442764634157534399580631177496947208422768668445402968158512775718614705408465513121907996624702750248101743466580724306110106482721340013730559430214643465426791233904454631264421177272066527244136830545775122805314736417558590426431389907832915568192055276573038857969704215147018403582115519863274688191663356922337755391964154941660300683042321376411464768696665894909374499297001425542253946499939021787705844519504899551382660812944205286496333469072000436541249198295419405811624429531805138160978425260312793168778218579244396878304625554027763779131308571775505341392055258745224758979189943979589375506691038725975257751092266798428664145227127699355570853015669205027987262628923772865280279547696979521545992259800449871614136549051132920021450433271758372604303784494245082167795512614784589953255337489194716955840227043086082056087259915263809868303060316585365801257639209329849010237655921563616758679641410279118227277244593309450912840340575164412285954913836013210942299086237901221192512294967581898867824848269523880684773313901904022973398979305805938408365446358485474660561755004584791869759850606229102359641418125813695214621831654036507441432275574250931891792930810093580899262065512268046876675036921580855811828037747030285535125187299884628407728944923510426015730349810365362885785901881772402931757052128380741687726590090663844648188379793605109892698279235122306670561443434746453528245131790470180811866500800173849916621652321606673641954449599270056809472256484286498609214490098375184361339190809552084689360892249750031913089046986126934193353125044303142383422752573905287562443963163236520988935430261832016401583177257950493869936228468967274132381101984079899741803565734877849979228349614073147525445098746748050898347764670473752883800667371553052765943823870686676311179284703545372813695917166927691412604510747941158521802393216728933971340008727092847188475938101388593209497218807335106357486575905757018007077975650564841452190219401170621476238815665371329277026593373001917458887927936613927492095612144640724274554500117373666746196222067235660605463522379475520114784710766241625029741347305941385923773863262375598331137088184229677123425403183068378110074477272292151077467057616668607679439294359596490276896198201511686872212288521853025108905662221966935089402578531490352899124516259121334601132258105896266657493184199032199184788411795293898506712396929552917676770844941161048713617157264623153242978116777961612862371325110630104065217487147609143145188733827778868815349157234412263945165009175883574722501043876132377838109713873684894249941667722845278133334620618807286558994020712459007445237596342571377932507908143216344095675970435722633735992835071627412026567498082920567887105940555304099168527442396770984596232751882706737825553563134425548944141717793018440686599386464436422634503126491491051712250019399004393045685860038405729429157272640465890832089021345093264695901232819526416737051862917275560170484448817748943574178669470314683154549846193433952729510034299500872891453849647818195354876844580371949191101672030124353263462885177576947958438600016342815359919382338140324967893987235534268828118211676272318277431568224724590789252062271415908220371966769444606664357756428020516072332626717897076301395098309256065605982166388503465889257394533382088695690838447327520717109984225615825064626347675940594953232610815576686281362990436245427997405759253904225541809514143404756952664384435814616747930753811346671757115991750398784752271211192311242488252167350787413459330554576777549795079874075250140483306790901034981416812112567532814649755495808993561864068613769028455318248263178483911814269821712258550036251990296658533180857318716581895419343755020079979565990211969210425690356202174270868370534265058633088702205708572993162990289295767925888009433652397777446307680649536345501631231206196916939810595128310070927280420146847209951229896965687902179859523845625621348177852270528977354858996814667967564964238350348684342754904085134944487335727730777982704792778806327025350586167588078333122603584817774965274983519897161285226774167096208193261851859748066755617642548434916966550127493397982154505935708747397583435811859043326264435644673731182187660433930612563104960039697094168108498569789865643466868684148202843170802538741723406318314273872790422281406824721089704790269599332330628230829124261613681740233913839030200677025015961814574528469725297053432073378668615790081695423848808801901856017611237322938178177818001841103462434504584619883771395680004701123088196011099076554203323756274471429253180072691311106524428613264793481790076405096182639610206618193907851994038051733758357931525768146951067863539681892308383010043324521176086054408364398302767561449610994182823985712261055857953318622208780477256776091234181421439251920880407124252077919884477016690429126888749936706909828705570022199315647259925497975554960645478276269874581442636481883956965703250150195162008149823494751914932708815683523012002058502734293962558402697597098672572636224884583426689756988188772698791175122755985668414280602775868157033413293785144067624569357560309138569800785048225857231678780695717566338909776067165187957246336739890845402882129509431935480283156871638204671758534130586055029444097992633455654666635709736772411842133929827871345805970877053862046234921067939542777420002614618933010033650202827863825591445823316327761269872693602386513216154541101036057621401957872420015006741539498818517054400010888832873715334609473347003967116820718519338109344303399711712189274663055644179467603844673328961933885748414104281991228088518788418087917569271580476987046241561327109049032575074887655282893849938644148405108381275295022285965709059500431627009757900172264510332540747798851381551048961776504052861179919199026788212287807148554809059720645019324856409896017979638426224318307795382704566121837252041168330666767892707842916431202192542050681647131799509693920740737714449607450349308013944956327070254450237139919321322729716548374521151620485918199426659015123003090365980364309346987266376212740896772250465948273289138346423534392941718389091070550300306836577930225660974046700307034630000536277800218999904907135236748145301867703372332602162809966451773562539185965127634139245233012297133542761289729755391704060656385207366166531184703834015821261307728948507417909059382642092858964973165975590726293772207734121204475389258362997972296814725400579595081056068655219496854031362705254789113031966212166922218624785888866029893441043063847907959177727602325722372417780065765149835065932552710149851752245685449260319745332233423569403342323212447665586134770996314096133326664471582853037861345497718345425686725613055100447189149761424683279071018829580684488778709600120709418184441933455093744385490059859042158023818592667679335770661087279429284068779434182641609647792722968903772284419942640576570307030543582503198675044042845626450247561213174072187025563559398590790800028851354177070502790003629535651565762763163586690472156871691249796265232665551431963264590278737954600527481053818967913584686747073708436166205297295727921369793166325346131946463298094271256126534071110724234311370212603148874022016053237555175715550453480718856560462946281058420187533611101671167702454056675270197408837611552476270556184545845483478992878101293471533995756108006629144817393384543238665408104485649395712422674392827899969825489321515686443043440448261581951300371415156498381305303038616050537674593403063034876314090148481733744403253098673668177036916373758058902245374770188301986068544943737407553702321582218163002700747888112913155999032757997587827904543162698296932075809883585823079208872824124322786259243713196576122813535074821379324138368677712251155145567896584761107992559698232238943774565295554692200264978082102384405893509925951318448766648708348272453970054731686693669700991204206650920791525901396335594818224475318377753258773909378466997794481160825121023052616383833827862472355353778603945603003750113579893070256589356696253812037239771466547267116178851689039359507747074780475078006291458187761272004095859137605127983225296959899500928695770955060698209890086309227230023522187008156356025588652172772073837755524094708421041101178627295793025645701860362605779610869182405961216256183080785492539700428257685188240976251919524349763526847423720669597554242718167976523679771020183368319181894322853044001591614516535242997685061949884036582613371541290154218868233430713109439732023934242621512655817956150229633515186241979018719103172500855028092642208256784582482993672821637506247300078952519702604374524164313090566904037250914797205842654174941832249294843193433103221600546476085840221529729341012821423399328119469359572618485976775459970122094061249597197286956859256335510857269743911008366768188114274243290209655590908568199747736525039786511222293615169633758009911675334427468531312727728805959880173776196344175705710267681352376424890093165951099114089905472654878395472244007273510434582463847459518963694926135216108033056671750396838103154526696820174940659258455794817866774738812708142462424113059812406241038484707639649358075189927903150874742769444813339537642154219387657928388634073212723642649893780169548926548767965438900200717434309349822009615483400001649288872458454809906103976197922880020438991612694029723441498570023277977723690007766039499151160374178999660966582659077138176302687822654696147805604877531148448746809992500683416157131405225773835734828192106327669321084039558539271697537376300082716119155154397648651400302430343680081865470940577233651428091161081416912629695795884734218921738663671375698536258724349567049444904462119460322159315600813999627079460728054756676390377222723521028059897594550960938157724002350990366950866529058510272752686826122514382892105567593636693238194394472200724422413498053464299044634047386991102578471212815268032539064062976201730340808792924355146242600703774984865196356895361085821846762613938792179027935079710171024751537991898034730243055467322675364063907372198936030938182825313251902059481391975141939006742416623950281006270693779320023789032600645116206600695881330146133338148405261192345035925717892339997795267248576522514530240672295574099042620406987226211620457724387652525893352379192659029887018767048300071236084512458239970415027916385432248587569047780022216459683380264845165700380660680744400832683827112352048884549561936848996905094119358438750500311537620006394536619026648465968784357059562259367110187204434640233627898880275172506137843399923218687395117663502271755707897400214172253414881757200017680580127524799829903491736723289689999950774342705949914337531548717135052577896564294408034246252782550819415417338425117876596923866579588668071672253372402091133225193407832567050174110061860961812411482563128078882684160501011785637753095173371992941848855508780278323363531166178773958005921570623147862355389570071040241454567846907381411153214878375471593209043732935889005246184378954487524937455160029131143068671764219445904733040037531200768735124963220860001697941469185308229942819075814530054467072631263519612851787167664614672806372427764545327126711305653269788957690213519389164172967423122933646423716081620864581586016956902940678781797225680296763608970154509634525584929916455223486989146256202635772500016289101504495736173270916735891475215303814468783217460168574298505383796450646441956682180810307909012541629685828083950831807608835913027258624234690197730675527896386180831555286906737183343943830158482772050097971880004499267214436219302607961835334371833876166223214614521014863012779542052580412230627169098128416820437565336266842433367309517054712118691934499598243004784571550267417048727160999680070751268765085813992583954213418295479990525933746974809628710169874724765075038767639754393258687541065635973544647769343679103633661512737340208054547198271651396906190767550103117928685921316674041376470853574367274549480879086068882024959722751136861067567090110669192287958991236070964617301406696348993145444204349798564594472484460960776180771278011977189474859461569205058007155683662720862263989308593592368608590295104316759253970552507167473445972742946191959043907354037068839565944455857993326724596540656991054049499634309654105228628313643085850857372452516886691687083346553057102649501720391897420609586526810188922198271274671475185253938099277084506341943638048158317058751806254843967135593356582627894595695813682840857391323491975012810599298468497161802210803054340136406590367519703723329883501712163597713827588823538111605813629349280274676667994047652349570708709440651774521361974695111340029288936802048574604516701200113943347984567091204912455383742786535993984175911353894580165293035698640632540127854858056634338685604465614383229972225635205419092931129794687599296084365622513612850841653251200166530130533416021741958345156812415108599076736945541402344769662763770583539386604689440599948439567322921974765257646524710588649469464282208978752137510149523216410042244783500574509687898047774571476511836586404724451696979760884087009893026379858074516030942233283929359198311298085504503239793373874174369808091196626053204666778805839018998836971920043241546830603119343371949377523504119383578070117144452294382936251387599796163200892899432272823977084028651455024888233413391092186704107491455990070221287768836477275054923066170402673218296719191958471519672306415086927235686840792793573978339268652818392959860998902217549417054555813243115073525441474918393408896523438900852955595401878967917697553815627260247093993778466100429463872352367029647384360835169903825471003854379429156180551307451963347570114006110933421847714300642495160594696754113251790501261293469426052611219403197423759538836251960571979555315921342017598766179101945889829652178318884984818690354591481519875032230095098808422622921240827136220787885688840813035433478188947792753025345639768377066859467615540107737404875556466401139835263854214920882040384214780110683912680254772520185283772402402016547236288485327735408220729484630191846314224783132362621532631822945680423986672124358764679819441525949974529302961294106071708364340961657341089678827839753864262790954590027177510122238970931242975991953205660259618000409630544254552660877723958743394554116618996592046654226082946844139774672780161733942170366361272924848653425685284849326145712414033429367500833127320751898915887473540912902871424767744950854963831794170945705792082268090000394741569893333355236350850532236844916824190837503031930672333179387905044765224578596137301651714619709414917227951803963800627904698326308542096756733206697464858905411637084660052985000891222561143781024435886674668499232241153869474149160099711725371226008389879862734782210231824887363327355013571813937664447984715333544423976772217460188374098104652350419371401913131782260135756779535590247858546373940719141568244687843153880402522602554319441683072240606894338693760638324358277490257651316796017586906296458815795685927981683815584152039230169672270709927074880148675096947208079458434792691938938116449157252695488760046170606057349809034145113214519897450069203997177986709498968584221923342489694149384042593186191244655015057527228088854764225819392265044027357673142763298985554033339384669428060681394555344117671385113743487883440064255479103790617811204884292375078930902332563568159106532120423134129416388696019685344877753114669613022790947323504710047754535248939648226971974161346550642053219116853775221500812079675783512269989531940677864626339715752576202378366484635102332626270722880336798374835858212841344189498612733212023432777878172415287167763917178242786045983698053894976110632284521219064849995493599597270824857777905254305228489176950456522814760753978482333767707553292447401734999014852074425525747650406994393194183079139362061414559731409685821531250703146515684784461899291926005916916163044536124324111588751997170797392407912331558971606290131629036854946002255150300422470212979293043655681200334279252267108502277079457363902020229640309506662446592348514641142337171227222486301762284842855233897459038798594954547511753587050231621664353397089293870301051188709714667413538803318672913157379595424143767946809799043776297306256240123500758164527670214644799167241164882670369940157842713173686284446420012491051889244968487062620738432640444679086804296269661598693335004196959307903232170726154737218468867178908496465245869105312991524558135700572767261941649535263142379015376574285896665461961680715163489131073207499796093575063249433220652055768317411917216680530737316164455883366752601110920057138923380031311814343449813366633870233573371961687571804060664635436486675106447725652380515594408548729377229049208951636713029652189574555488232275477659799949958224537485418013673941723399158959970552123314196948601933132251892129331740258846159777328374345317151033396459553237268458354691114520558450808303632669305046700351537010495003465262000984154845189252720915997390465269864828274040991782390810601023331863540656292377155347563971867581983341015761735969187427152780598966246486903891351428355283890560450019151913545019044600860298966028047030306930536746265678051365223417855659483362050748251891004957029838862199056755703786453655725810857676655891937136088534570629756765700327081155802577970772521935918572323631027310355387471291884149676587299386169006223540472261715672742382094385500843829295068394427909057355562520198766620323912024137392828705881180970637062908390751367794681970833244357229066603431908655987680680308535387204728201664373323262926100975637828889858686454993763036678244859179541809469181786928436619157396242074664698187684139968510106907360197108231911692820849605851442603192167563852549772444138392283995534923488097654185968713893946950655295069568566077385185065469411379467222720209897471822111990701858688875821885118751367902042350407977470069975829971436087392505288184973970120190250772252621176379851060118028484418998339869566085276036959774334483710030858059593034548056527972494341528168015131263947824045983237625028695928491895766720810269627405123656644838933043346067971071052989849715414961742551145378383427502691703053582644872929453503520338484884675882740380500509482697166381797034931225387373028509761443962543541714634431504103582854800133674821842745463073661377456479482632451770176902744724410575544463496996166118660853204170135369440118095196782060833136393370963990697345801175541530542131459906001390821789208588184725737491873062324459832033596304626918276693227738582187995874438020278958154998929112647969450328207717929567689256431875425044581062212118926495454456947198414072815097249157713960468888706578764911348783847605465478138197393203778519339476306579905028552338422594864185512123146957634241263922543695733604767316813791670167039874215848482859351207411193992718027239368769977315391175181088059178091840633034020257966211196398926614533056152458947969026623959342996686808058816984581029900074971485304877275958731119402061658900574204623494655337598821712176667442362760850264209403694097421566236255638014827947756859527097348278508312844903541345212485451930030059808906388163112805276546168401896165323952245099959380547272512994554359766774700213957755291366241930135908767019134335645584662234475040533009398360392586420085786623698523308150197131675585270576244868430939466866196190665043403353640161299851052468404205588550937880460694362013362654406072197145886032675444212538587762136246430449038382606640252035835910293275263214128179513401759447197762946496129902470723543434183933284782525474167413416173187724432804016175840106326785927618387932789587141781969166468396008515907043933804104169328691215094786505280959886378944541754001357900266172027596588851172757970251545037254390013030204592597033555839282901241282592094530061594065840035368312274924760877014358337279014392067459102149204756489924769917968409505926799254735749374757317610799818355336162025048579717158887970266902842934412868807340869092448042801049969520617652679058189859024435021782032041873289295814645113021685864268201828895780327429316787946775996611572022284613552590059323940753525017582527554683384700014067506312297373077163091266995627200110710092126881547072255600529781452997642475390292378242948103016518016782711216635987820510004567920400066283675761462267468685445300383705276818252315164755817963648318198609015580239736549487139281535382144018938341286353691139196619781762952499604110830418550929056278670245730617294563017562962091479578350185828316638002995543460352309645534401429035080385899893907845661450494868197476984517240078623531065688694109093746617502706425752735724239561282139170275571864243148060202229237046737334768081721167246410483855990076929066358454028793982580606865103851741054655521696284229965064316202492208689774913017474158737298822998999876909826228301101997685741449905355819060344086553094164116043613967448501922085088368908357909348107454534376107471875916930793549385282168939417016938947357855928379583450374687692922373496368941882437406817505967288227480889654469892596338173614565332047501931895330277731789927521393547374277995487358031959581838615329040381629339448069475974337571848794018519981507498519687397633163873813660713011011523043667177689709064715450872381705823272624662914565192084002920734019296499929851730684794028660879893059247631562262426813919442258787783055069708493867441399477229245901414051945233920691252575207720228585689208500462902274034934509779213698036080115948546979905701644110922798870717541612094182943631248567662716581361720104847722369861935039145345011046441325419912883496014506975413193905935439844020542672068363094881063757510205092616507679825176548739455680881549097280834108674209182879056477664984528980324520494196531872592249117483007332312399778849100005290751191637269808496326571710040033080254502624496713474947566323544918938767081263864860082643293866341897050665015525382024096517296081966311590000772718911357830546647532163321182732184749106496008864212284224546147048899184874822878265702082337356993523927953087062021705949643775153412283403311986516797200620796975724432692137357659799139716871340384123074299233843000175748132820327360385775265256375654780136809395352195132294218178125630904219788618629328466934674251950209564398932922121359679698056969997165787842350489674012520413649851043841669874878302854427410375337127772806268725643096848199665631687118676094803903474260848016920538746504979409549768505644318475848889515444739005169157739442892056075483278170080490575657565687871754818043050417716815238439839314354211824322838469765359558379553346624231764947089258891635070175905650345828829984614242571714740879730075331433986350022543200720782668922597875661398921595214535080924251740673057962074870360793639118438935304868292559344704306801566944975940074773285724019936660378143792183818432700736730987105433681861887510012528188893960238387161822280310955683581649445733817431295129421379742487283268123414493078426113970084272455767189533215597397455917503744561510100222689883703623060268240654100649772300359093788421367355671055114455735583231467832603328135277106600820387347508434588872328862611687319991039044603246128636321434816930835502672255685664084416518061049427052721274305670901313300237566374292174781775505865406628302877706352659955267006463804602333957268212352782035264211895804620101154011892304468851168559178123884971009985192738915368581892159899401603893733244292008514012118417178206512164037552484817039071149797426489341191402731071288034288466266770234256537410595864912239550832493367318721683067596982930969445989261203262789935240204060364852292078834562945199325613997077846618476189155141947644340337692130270109391577708695202937352195493292501984537776221082536285685763700077842808610419456063445189670687658614835946021079652236968625367438068973644069186059852578740559794499469840599311528414789162508787026570005569917469458782340785982050959697618231343311891853586422278895646158759714316004464969893238106667851893796531133657360557805968455643211917185896267492692623510582681676673441521442662350482476853623793732703440615123368938426025485472790905195104482895828823801377339774012027065261931382035327657143992613247588760772143109390940076935516947421117116241662230155806422018480371439605373818622257580738887059306353974982639183337129450877297033112086196674490970871113080280680253378273006286061869346707320691189113780580517738751810906956443531160347196554264614245454196177047033815621004278192827769220749793563133634829630680537808076719234131079825498310788735541898114549448419863566564616775157243011468131342714167192057815877814751037211405341602887575063530542302081666029925716825750825581737004860599921699641139698189398438914909060388795630323968646435809018253332404233239605338274831484009450502366919976216130401845298686297396990203406079308919230641810799932390799703828402915822647714777877538871001197827125297997232880203821885352494048527221306319968647600294801828291257001195915178088494761791359210369637326498724423424087318600664228301564161302001795554824169476657258341348003265859249293811476132606780359153388759614029954206277000247581235764427314234801312240230709509431973082847756134612951340982572537620881072943604264496402250716230194895307312897646865059307202533047831250099023981639989005300773879640963260161911992499231811232238491208710658692463209044667528149826986861016965672175322110289205004268895271076095927014946060032584574889052390361648770012934634209313060123111252850410901698296491052055349811013467615066923903123996897878497782409476472909501890677880251262635808027378251030189575941227816558834225907430902981982117516169250488697092966792594426083518586490801881529658597526720447346658091454024945798850415810090512913616754826223663748025723506646410110672325552254812435019562332958590020690027118480145651333112940711828402342365970151885607397418062504387679501898187760993617294326800622828573450969622172695975264699497507878498364909648759631649656631643002719069977995150061036149022510404517986463905404355287449898408654214283318022090957985864941909671543187246209186868316042441071929341276064922037955583045737025152096766059647399984894201307180844661038930195895974530733015162649493996061938665609242593504783566474694004652422352579439820570578649090629992388459368101140185076218027554412497076012116997500305894865613836028058460894150995865330110605590941497269557003380500674509952740128270246999446861947917155261657781570247744807563150394008798928079424523735357183118678056600183028679021971984443276662752654435113471670544190928116242281709730836540653924487090495388439645612800406856397906988078218714914040699226516185599373641639853824554697875795084324647882403648924064556054559298692687777075794642219063135287138973221140463275494288877411328549562778167182009032564905734302072776683886123698228835509795989749432472852094462658897808084757149055988838533798219083950478003008653461284967664980359110751392738083920915534645670057278690961428401584472020615664148066135398845286692157871172759723085211099119398374061483823371873460101585738518754160143542065744425802949688864033675646875647050597742659332334316378568787235223540046771662235546477179761656873265208907579493866524531770343481367751627343008299173591386530749202170209642069895830763367749975248661895318680904621669130621436347928662321487134445296696093108083305654802006990751209443494763062387086082243974713053252987586115434580120374357931714020807584233351527310116311957358552290810174626867047442499371169050158960808984628590663659660568901967826612215074896832230621516293759084627039092659368792069028265061483440496099660520822815507646400796185211453025700420565961675596414570782228249356751298878896073521910228972367645664565146046448106044198515034120503331477318086374925642918167133660442806179000903445662125816256221500934639162740780187593643450512968298872547829494642541946274044842541276373779198108658085436879351022018698967272201912285044236859358166329191612134606749315987979933842960806932460500304955149205522157208204913116187316838913440718106441939988442514749519916960788952811445875184455395962775260357376414154153250918614055660627816901631347526064511617687584864567502414756222727911129214812404616665716108387979355366072524333265595238751607259518275176708950887900578773504732351728867720765481175038441704270002084542491339783097537154542453548898481180595794540912853799116427175560405146734861095191653811730004505036391724537542693290550204876833907455659988321173140445239422631948835629608005944972733245928658920059727510793232576494022208200570362617724976811902656213451943199975592896427190492601243835377466262231651086537784679716803326014620622568044551756123778421894589504686642440264367647392077662533518704185879035920838157659545988386255441746035920987917737311420851234067686430689416579733007965539652388152267247073856422234569639651995022203232619801314910213761017169972046551959176791723948472237471970625953617662863014465167383583795144272910729746638847083475157994246032186378539922607486812558251142714019855219607635684548453478812474231652882016613309461088436306521082810025110449994043026971000018267468054561145669258213186872094960084721171800410295184546789076206603462775694443515242726332832305406493347622926219044816840740665468503197937865977352842023732409440540199929034929791497659884084170497571034704894910063327770484984506100703207030552761470521010167932514098283367703630032222605121428944751723883041462556525959559777607307661552565071075736204814615355164310957260301810881278936506749222610922767239895042902610681301192586851202254882164390668011126101500576866090062050739093990853466320155871049296290972476511126838358039969287369044005522337755462062098217822026121881122714208128108458054389183181440384397131520737849914192431941898101833292425311138871609931617075756970317847254729652327607442122495693000384130208370030942028735248653146703973725208578580140118216291382318015667333017810113150522203926418056118108174596510864419935635674234852174157555160576148300242640296742599679973102880648567146219764965937549728086225351229957691686374190678241855083433580640865456162033142699135409962802921633625043954795845023178223286014015202435171951249289047610252038404936970375044285701685719292371583691921464187503691145715333102964026461734192053349223247014889807696243216307153462573774207371084563699040442962653171610259088540455934824066251769799748080439051968370594214665068201241796468083654828012653119624695235935369265653976001832717819416744660903051108687017332712742993795616343056747229972492297541506045124124808613691931469547241467989765514971607885533469638958352139893920101068010770614933365576095661831567601082402926439521439608130978047886536078714221773277439259323663008181347335710593523235116108041939665591023700760472796212432645532880162555408937816445579340402110005682312685018750754881497891993999935792916253182551560559935512995312717539125424388063802335592648430114085826151532097726702558467049912207943107239272719687382311904238527996871184724333173337202123142323315881151193848571027047460220674802393135676384480804908121430896830014695474825163855753509453060055223750493339656107471775206145079903221501652425563121356033805216057579272041402213680792680497038570739909401385348017067309431475012731130997726687866419792170295325432750857636198135028035890703693842985432668005617220759548606246743009043292537981908504049795947340375550280299182386590088404824465743473289799926848770058817965866019337112064617929212874664658714885632718533215131135538031354688116723049205080188183269451754019855145713754416096372410097704633167221080331285140075985927970091861745116585985595197537673488667280405581093662313419558469324058079578659422651295072144059939325754543634689399210646592461101953858725255930849416792364390950554079372087201801837833042970110028895398466176764979265200394244139531279032797662379628378763278065887074325226027938185858268191432054034066857436811484625871158439691881152395555212217447670986767028716620882707488656040422677069455048455624343898538008673971552638711416151281580654561642079080357441070596235359265972692802263729575562841469325584056448615909650639066554059550003386540412173362706301413879158709680399970015193517043886087195650571246194752428182950315775775718504308563172084480209846422034468271101079106968393284147407108076649137741230219334807835448947113851388263992289022373085376555541812501350055876987776533562706100876250334605698147463648967188638633245350174308559647112360804109227603078493396324481883280083650962376840327497819758329322885355284483730282222983863913640187432768315686476010904701405461840150838675118327333703959254518883322419820705383321675358657968644170319546318654498258827912209554339218142100566542246268064294627572633159826645828700973327965434865435301344532291923664559011454545941643803291692987272546349603155110623944189240296696488058943492512837769226036196111377140290873513431335602929998980097336911965920036916549439297360960320101252220273326718686056220378245443973325060039634774422260969432351904382749761995675098466857673677642466922576962693162419169077879253897795188431209459579747619749880210277697700834631566462330324975390454884630529763372010268353976712332500912974322257565560401674520632428793486784335574982778645654247785158434678255201045012339841124306056359264141131119231825961585630948882981862986171846607988528925278392360081129243056923127783219158258097935684795924314429503604020789844071827139443730876686655604219633194525372311779789261611431277596310159394740782669132733471886833506449787001549258865988926675894297918251301735755010985621443493963817559762163303915476833332956753721814259255358108335751675673958135189340563332993754679061720881040463791281338671106326514372785486666030950536560308834357522846056979165569985462566971458988493942585537467608442178655160701852812655023828571768533958328721980897460507801549432275899335162754236822482021714284245592935070842900485922544603679070049818957024614536366546561006239156022373264159726594699720359814463084215210171282420007002372683750437526624425516682675855879135499413302735316611584613563713547131195350322779575489370862188832666638192041743516847935463317521576606590063359093184767462131371873806017456469182944221587213239611847635546280984654817761726561504197457899474606003719952543539453153915459104966264177718008401249628804573403734822904126909093202596029392246531640852497307149084612066284952891524230622107467389480237718622792073987396169069715416020836649856314277494853264830741860570567011176581274550223196049242604811058337657321001446606626998184864476024785043041426682241494184931939969532854015575171035387467259321873403346375436903886488731355305763395313677793322200504212397512761267634183753928991545561396866535163533307249537938340039522401514588528694009000269272547010243223319976181557349892803558411142466743120937638989019443657925283816432767206977983923244210560171185812510696992588029059195396304377972898667723819228091513029760535889015264872135242001887633416297889859999105047718304216071756358452646194343908288277874667137467901016718975067574278631459153056330690160507119033612099414889448241933548959897644984941887370214989635048287682997541210319204632761019636623399547429242119834713817956630517041197151128838474829172835836821953593771992250519869690403283658075391468524277033534845832460647983327030483523612908938240791222998374419808492333799856154517190986846268237737118671268298841404221812510673836357419296435069417378020071361409085774076307708062640733942391799413050168752957059928955452930361345862515466044447877659789328856496061279758380437240607303298170659997089681669329564509175916951461304741974739610875724091248067154015005144574594025756317586651486064596198285887856870096719639703229116009655053840843950867333924823514017491857981345776353159348380770927175708953720081264703240715199390405271601414962006298973228054907338835777921028064305541340637665962897480166898867746955894533272486862105548632763982222917942911163504766023081524970496448276769882325998829642312165626295857649693881888068232988235910306403486147321249525718249617837088512935745634777231711971314615876050659810631265491688898233957469244340552314153035129795882642282447631598790596604567033222175689819986176932514283380391079281927280453755672565171964236982452499642285995202818389623744679026290099708464766155418804428991157636332063677388764152758477870118700068441485716093927471634531381437243576841702967325736355376315137137962419691494760284894061832853187972207233012845404676806768174765370124255430516257057154201590888977450792144273345362033369187184876830483081793489647266930299554466685452917245644517507141371447319046860482622100659916829234570212328736109988056514336909835404574904990577111977983856731179142891197132493615874854228570866840516072994342867435518219995592831091893324706483822567772437986538689537186944427642222055603316356662890773488629497856360094622227390571298565195597745806422616285887294688976103466650853759702048119815036172466012798424459853930277833099650360671872136949863247318002800970627732500685656296649790614743075913547328443234459972253335180749774364600197070851282347170559739062583481034920592228057894961817385318542884482366762478163113473768400311410956348242614387788196227179164218962998395587647127311713843809216880598950213252852270521364970561770799398558850751800459700463859302438294921893622927758496079846804335062376224867240221798168045117007709153053567608927533954639523479149430330987038821599634592905326201414566947536289491543359342171969797258370748792648248976849104237214289357634489814090895537585063911733236696886022384256237799972740615527454646710935250487990803821694911842130174056804794184057673594365359829390880079891954806699374041241397567125161932316647882633909595261672418308703100857815477743505695583025667062461993765622958727338175235936591549844788684560110008694255945680824092563624219188655423093379215427501182977387522756298369357958835131876670818384976885753629913796577065758274336621502124392856075071086324414790139756981689033392418516199711837268694025491489895276134323377243177149375452269898272091857891568682462723005539018901133862872867583640403403343174920335114715959447707767938887894189655315158856786698291519891925185963890952640682761777270693641022092096664698854223030946275634287426405337086983958765196575285857351379477386467258907185384331294244856006217830733431513899619871237371184499930502922369191155167672282430322638347535929939856813990067382605609079190705487924690234936987293815308244273502365344101751593669954640348285707312064802785822965820064693161424313662124034571600483230124472359200116979341957154385456338963804884365813095548920485219383371776504748405819189700972045652801179935733660639004162892124639637504190898320750588831918925089056042230404775448026772667982001845930863646045522845870244384009914383115170915074351970380140545201918006678167835842505421644737036461247034016847611352967658419024531996000399196057022693870308633033394879373116452175494767139161690250011468293545630062612910142791429657752245433210252218459176305126150164384864187189981263670892207250449606547840389030910762145906700564181580101266172369365544182056966564585819825106071864362071945657997654798183415716335038394676497053426167184449606352974793786096105585317809380551578222591699155798662086477645887914797018362174529256255427189451735323669508473442470722755062270729817509609937890395352326924474911832413650625025099819864733413569793907851616605107438977456911912009795648773666937448447592512066785467794977647777176837654645212608044028562308125794362774944165066251042403478905674622481033632354597025687871208282176782007611578224341465638019741807532464172511601532455078095675190188684020038505244352364207065343168052698826901456662434364719958518124748406876237980081100933520464423993388478712375222730879902631437071684194480936722759258539754573315881522886835305736223422533014825519242130070106682726352800434205358449890213662499181456416043720097705945009266537379197839557203207758896700942014373657493861634165417511819824023561158130262238135902980857420351991085200351445168381282353926682527643005461880140923592275742972266895322100549561378752523090227082338870826494798375668258307497222799782239921285850714656749579884475325467431126052838841304379588739651366590685029307399070802939633814232748122877371932900224589663056939904358364076439486689550976768336537528794079959545477815254404233729250457481764553760386871528457963300055316458492774835925003291741519736398628502351140359553071626021006281313423844122401732871680752480199347495709117006410058172680760310636791635128339272670602771118499858643490165230501619524997969164633828604568306384891587054248437773406922994346733149275477078193711770321829062286521535626827627521669633338177207789859726562231623106342560296508443378215059996126223129297528614758057618298511151540556713774962113206989810380884483774242453839200209950746319735854804262683535069377786960171842621976940168093685291447506752689270393283843817081961939036809583646565777817593549299663230065255695639313453223412491367839621136360981727006576600599878555389737457007211984095293895317325122167754912498595288601615693119527056665064809884245314421085919829204894855260755621741259578681630772953457351695489728225412271752420627553672220284698150237874387578557782348639058779668387365673779998368953633541445692335972832296066397464501884335091383160688253954027986078392780278923549255772712901124958540407433681321136559221585285684125333528207436470471498467646775298084167092210342042192384241320861131599848862376936314469318407276528775698602114696541906626939707877415497061189955553591178143807823549725020918260631856207388548817699825807519377327164095337233084589045727531607553040512624539545890475191013005825776907868719938877891633921656909912202508906137327090526963331335235194013781962803777249191824088324929384396637535222846288607287804384401535449257322253354949774762505448045890915180430917374574408285445683825001046013400978449928168817098677554216460187170342218900209913353506745374677240319757750879981851167572875685738980280308869324812481172451512781435996237545941670895384844736224384585171966828775887652951244938387027316828970682204559814532233437274940298264250701533403927460990913257535372040174110037396869112759711991338107088538689052139613955327149038724555972029426838147865219555357173349614108680292883186285421812192777583867350759205539012932314789828472215501187359956230444333299397753339400009419870424956443572721567528574286498434130887429283402833158190412927963510740337177885631617144751204776276934981579278317200950728096694617828973281437457301388945070428165193397491307285208396235447134247601010224334010047260207496368815466189820906754960571400154293498883594701886025577890046931409069732956501743607076245170923657543892357553374394718130620306784224619905325029516152577072752248901841980315913250467545288731199104243906659897814229392004041459163973294530237704715725721632238050858310679430234758351259679826789796525956671293181324104523650784348964692410601157491931453900974072563705254007337825579219629595560211908258550825382662456106544564579716776658360797523642214185761293822594750702988689939063561224354045777741947249208784292566976957597162802239891573033795052543403696999476018214440682140459798243161264495737300079984721479663066955789751386507838669477484940769740258022174449099371649518172417288583304328667237203033278296146165534069248368740072995057042738446102906383155026884596166529224870189686414838224783938182867541983450230554319387585200406192812052033053400843189893795120721500557943280045361902496635804846885543047030578009726357276995430559244741697754467041856027903723372816251401062131218536469304619272335275177581859153074834778799860871311158604737332291805467479115134291483157862854058139990926122296062475415430905976655202443533472002622279379549757211701659985649103204373037567942857200161463336571125989211835298795518542369341554989572086747932703254581754705979396435904570036893375397564532050255196485819638587393379876692211547847053604953471666099744040311926701323037534048009837399951274202115061354257890549082755032120751886000595234124478234957760578921363458661902008996405348731819023055422479191741107074991552719955911058315656312002787782758218320652416149072848810113591836031562552952523564874272508104771591856041081081997774903872511604744855910347853152220437085638892617532721954021787513199766309919800145826109576464731526171611458962669034990675036884281491613451503606850331397348957402218922064443470128507743375479519472892440896931053417673184726521558903679027024730867723299077146201459614380085800628060570941418564761542782391956553231702653351985477618331440291021052241052612311651808673516839210442875513833565092175612783504900688162021821347328980672883614135320050968440659417475769156607122818667016294350267088255067613486670186269473348156636711870930985108553973238021695209439038340642979799530232984773293899140636000434028782001458947778297903272359120346777475926695505748063413801047950199975473211976723428065315823666944911355671461719469179205170559107327703723695187049950890674231119195727610193881823088061370289203158172659270077695959078840793765053189259608008304899521273816826583966394830938273373977694892809249069939198335266763112879281137015264641559761640498493635571235793075697165955039871266969107781001484455501791824412285491649558675108196348141091045990040853508479181177493509218885011600445554843139116475443868510693630313270948677840679249215781461409460721560385453258321910269599888377271287999830273748388134084371546327191829528388981717266425603131164623190560592211777420711238884483752423779529604147138118570190936693738015520498936812057437585303668984666654331878700747072279799350043615660888015098192539725616101500872866376541658774020863907762095038640601472666487113397612259166139156159065312025035746895572415579171980593791447496287232579127402189344566629692935923884432262648922400946222726592804690029361300203060087719880316508674918136958010928181595209376130985501162987727417289561579416983607856045720217211438078265738812586444295366284391961134206028026009231625694618366114383756442424927686632629025085393007784593555288836597846257707001039193210261118070764405877529832642438140549866739740016608356007458720425027507097164421870827038023177178566135598325412105830081155695133844634780449152049575419406514423174816024808605114515209111077053590167280909033976600080702243387717921924719713295116232729789570289159077388972288632459686300537718187326703377798112988011404349606707263973206467865276289563675840406312131323488710703085203186284122517951992532980324006276346592827828584867188707246442242670207767591552322258593685523158665647287446724548311148284396625083021524412923421184022793448005277429265191633046310862608705640351027134549888519527840299350988940672403556083628691921808735159849264900137124191780005732018530356974416641043759832059320982800148260819698236676867274282648183629548927174341212554417706128370753394867762027519031346767547989996494347426189156871377187559632274470468290157030356172095805553514099599748216308998178914443470057271064719293874740900524549641218329900371844683802813815739810230886433062374289127795247476573129490651795738042976774762922998120465797949032834655652181813017563852569816875512160622939456802265426655543685596904910592541757125780867733700532972713599455061930801737349369610631410941866011296363232912212021693307298915387968560091860721573938769183014141993105587176925278259176404084225949869315734716056150963445481565547084202658694288927205718176388383287656319047954489898696141074395743637036418491311828938805106730177938357125021850563036715654145257536078000579587628313280897852989539667360372647623175272838270170221599680221326769639785773819410296359780929835531452355019117424330106522225908105293564303989682865094735028227121583091714328560440424930127111428693449283641529190185020180006242242807311838764835326692704445992116820751387307321877916406754413771482053271410576375392975633249478845424957091785487687919994086520619374828219505717774970239535407216241834977533932783338867012783305580169883927234344300879713333566159469152946833575773152858357069583234496281160104190146292333923669306227835842336230161991521903283222759681071155463379523943896363980448534123071681549538854390064707199499198489786928845942414129847635528167975339619966599126398735845396855943099598181612701794758040340632026069601903358110055260603463624088791123667382304098953268219284982508125647631071544513119696003390147373720266851932152157690721137833546997751721551078679986126106114298963031685502692185465839314592000213723391106600782171917744402148860221596328404989044657364952944547330566730286389986041684382696848148736301646831457319924715708648749733279394512478836947661828351745308214137299490493277104541726796641251609908576045220687007580756804423655899960758120489046741484975302344104972046266686779489189135001245402162863300770717001501464838944111535052746719499631990085695298367631957132794878806125368287128454369098175857701391800153606090372264382457033953656060971610988021106892974303872460959190094616611495066667042867985470303687007231095173150263720632376802254230905430000162156294681470222442354169710402707332332445722087885939468521071096603606727370450326166965829558374923152045846229870426445377531837984052535841343559248645481034977502337905462186947232563622223311310969866793907702088532042065839814921230445572989772475044613417080712150582757105250281194232776754658847055502390686162208052956555980096158488855694462088517390756323829125060078126361868271224969410200126081536115684647606327496038024534079411867023283073224316307539020728836190473679522623444002752347055617311368997457253466258493930972707491849339500699534454842438371322844659753916762048364661017500020317972817026883092964582083791384147466871142950332562107483598003989132893626754077648044476623855040588341274717478603525464978005968390511843962969139951990369790284337519331440300661050446982879135763477177035316382920051109788723201624591044261705192879721350389833071991009833233443857285611921951555203913625550393847744943767151708949920888750484258365965408789112388958315285750507267333185338146910492263426310849989450576713064914435212210912661617634924305148846010607155563338029804470367981379710576550902291846390679250140485557639577006218675123238971218490273605736873322899683185306731380545691638229538549252150892051788886251643816686700476556367370943151740624311713051132225324471734960629206771629209912457361239193483813305963226812860478637419958943173948515855867404599423228609723122227274004374636504646223782698618180622357983020288470145314891351711632058588543305283818861590062497290083261051081364227689591317612622436891742226385478050155222594969270826521334697275948260834327599048707792308636356263191208782074077406522840122241684525360444020362105683830526733717618430811303545820286301079982971681890325228033576626880774009688467024426091004018674722163292814036091383858658582582598846819350558321452647135498947235089019514959779078445066273432415728214085905690349778987460637319468727484220575326524397459135308302416063958843108789328807706930020143518907855229558798549602571418628772214989528846426204617477981801587250200004079620061086724449112445783463642635241882995392340987191605525581085856240543735536216386500613812086273605409144139688272814994663277863620161738980042274142943423471876904318923224654326490164026722465292899199595946231488820738756914569369787930745783706049445306868134812916864312170363241876231639295770989084090873365283674932802744701180616562036097334722546648385046810398219346628272845146919307688214588127157018010616791604662624254133778086641527274958147909514193545635302674508243819362751718037326307269344671371219855901933146271091956920228514842133764562734304938840642356140187749183453842191795422816890503754124143344929430833298170995474389012954995220024698290511366182158672623161249724323496886636454089898802630461216883554075367655649574519601919410699234799016707430090925556662882026765813891767095313810425375059468140018653017423690296324319664569370520194100414846727798313837352336969815607971368710527528653286099294936757054279744729981316750884402539869552629550926138916272665776470682358316033671950916740975454315999479335373459235263526497899726804456037847217559568699799322435526492957675208517095286444771387833483275205035784200295634069010588106161288954360814991469952514554855099970060042564483797924600541350806252224877313733633480925213285854710130079747895792332274596556092013759035675905881439655078912860154777432573292485190256044253019504462298298185929235783393804198641600315092467627692041871832963068364111036464099806225178500537091861514843259618884427877900347661666509051831412446981139904618039571044391487738544422854005800393447680941711982163979017602862086201453920076107815874556151468379516537061859068071531237734027906569849725992988313546680874863012713503849409747512634259396516200851178417919160446482294615017910070170765028587967593518672108282858203935180773430923553614790787351222860459564587633396238356954624390667334699330248562790586414120558940526540759233974362740696028797252654997703492022498166126043486033190612825567177636507664924791802197368997238333009371820326939837414536276905393880676777599645280141416550900862129561856887024243385865546384287754801456893969521412111321291093396862386217286984145253074049661864565259709487763993714504382161634481364983773512110348438548038066920130097252504770944076455757003839548631173451864133818257042824828815937096447329664777370645374207831871955968438584653025723283604810824370851218525492640632702577315742288223898497290277880923253864010761553054068643944783190047207806029518312008696015696324121538078848069903087914519116182433276173519449098557858515574343092586035392938779069053924611322412723665009714118934824644637451783777532040003591048205655610464850312308058345267897584113778636611349385877826191644321584486576312182426084610352398657539874113121849476924343062921681002462982608466132851227656496801190201651273409020129891500218090112180011846944522492858513455262286337629844304324631811166209369351463473932482074848832818883206879506328842898345239686878470214167301758795895446868191127568298147424410053820069543451463448939818927301622755640605301203695263189289442188569498933146409432656615849468568550539276208335835049182803535288487122246151640611977156491648094015984543684292527487277206392293147984061703090251072261549221789683794156478459823368306796759681343121130063336734987748003260619370532559958218322232818235887278529375037874249397874657393426433723606909095818390698488967151866139499634418535830909551326164027443526495310925277602305706465037528138914137408802110034512577960309466567150824961626201328206827982426479776362109574705989130480231523103479040761365894032565496614947630159524659010175714740744662852193108188521013453883830978206470539945041316819815620094107482232331545277389799115761059645615241157560589932548284722527815404213319817438687518218634696643878763773395340195058556810164245392743865768817781951624609685302358273898589773867173477855872748805955791177071560522449369422513579722082228172965005218009775234691546200311242608788088301614707766691725945904473652272982472838679345080633078924804152216765014148298493282369674098145735258340347879411167160934328689707376444651621787506215105347574890362783122355473395220727465079123267623591759772760174228331410916544901868010559412933544395076883555310087043561862031534909312044459614466173604516820404337028170041384035308040779523166362694463987220174514033876142567900747911649486362474064437797583315007231055333639865259843288195660564358896749137277776305441357058226809524460625844022303369230140505839746585583545521248232814454644848018915964023359389955324982507920581499497964326240088913806351261768839167879994268093570477335950591345948832473416356243237639778468339806075752677722680587598164837157751542017658133166394394563008505543300037035452694378396325078102225567883538814726541105384990135914858421793102207174677873984803630909451637369314797801341364923766192417646395476102691053935646538245990544700328291605718385671502516072683447964419544271715783428545296847477932393177548515802208892896461267773802854385805547733542937200809565337302824259922370792178594088489682894883952647492877135597665241748805041863697960183178965790229190737193723938560931589126496807433058981503071328393333511698842747186655924449561862942885513268210900631420383859685267958501869159901653859306550907159428331697450569918072466771494029376925064494062023654650476933349998111525307682658225575892136084320421377588695645233415519377080743563323135718733037721872926653455320093013307846706206996285065465328545134396844500656342083219332092476831211297709842962140323444129519619837511270583374496269690596698499137384256359884899724503843588960169769234381107576636741179617522662022781044429861490712603123371711278196403656972693966687092540070085639698740482047603558276791021503896982115318998174034189768779942068751368446982317964251680045309372275519040470893925703149577917001548476372763395686388522351284961063634183195450983954590829543602709544904486274348254758775458170616878579865550563489448618021333223606747094879596748366414513395041432431875247151749322455630094092639052547533976441529210417900502139262935225735932134796203150266711618884941248595737958276129447976322968354712587913869822196901243062796002674715446874414361671653158741624010517840104447466254988188414163486711027574351457901905447537464129050164612259675884897918759730093563391512107180543382497629385479590915814172683548297906549087332886199780618459251521976935726238960761504539663188033914247128492519150669730111474682410592566329361897204630550573092324676583961178239395969846079088756899099486640146781911048643799331583857664338840723686323656887219978871160397640987008148925638782046265305212947602332827563715904440624934747461611650071439628001605357896963460327992179040161481681607096398104312798278491409197245581834063577294287961834673830464018616204665495593038250334765467659822968415777272885378772340319232578000090004276857905663253357709446681406590700349067045560260167349903590065372193732016033120321572451632063936564685984128198539276082403054844033838415163039701846257630858757775698947492037525858881700175646229708465821942703362430994274552641507786442281455970420308077184019816176146653810243160436128082643999661894208259569345775924546425795797878322988373028822407625064002818638087211935109396970900939517546203272015082411989073901401837713417255746938424655969512466075928092175941358534965195082663238513178878724151543723633475290121617039574073009983373569425487994316963618654090441371201562413573923426126625696381896229703487360785899873923200523633270138474647056593482108861406306074108354611160980835392927733386219538662457176712152356563980594541636788082380393150683557659166226790442190635359867144392146787767621845611169505031684581690928466900267608488783990425833767974105687811838413160958920212517709297382760535350875762615884964257174150291829298679195856204656546653089874690787074299091384038310881624247755714328207732477565725244886148703363945481663497174563961482399601571578876772493858607321316925235360998860861591335815447074516856489454064970940138998662354367442973490947249066225249842853685982149003893752963041578499595311984421152404796034247017400971200547520914100179607624083591944950580163753444822049020980395277139527898278315689461294108908910273412838570434450368168259100507934096292040190667941857703261357743456557932314102377923531156897997732793372046409587576160340690403890909504918935332651028530782574360360984494682102244150919632937489537551471373294087223611152765048840435267829115278226490794524860981516681478244934496525118246858706697905897013785635256874133265520365628973486724068424159904763126613207395623437182168184757777660270009803506275270986818684257445804788839517330504122985999561033339158767120290198027553870095380463081528452250216082196347853018787839679497325815130286153138064544985525856902419645245847763818663955331149306953809048457513872503961588432818006006505319624330104075442985047078458965795502163310231733332458949761778227930343636930557723719457855976582871419377944526525990313533171170301963616275488690549879357448282068621212067399716870234357687939940327059289376128181321882920241158914891138255327634526934040074089239599798118173941230336191318180736236618227412227507951383365257227735605515471745404682575488251574810560901615647201759563609462298540996406369016436635927798693877514310136818241646622856814581134583016486695550795052513597257254521390412595141122291771898912795852769595777858692317904249360885538481245722539551417780364643985524847955055592399966295940260632201869868355472038909178240693552530002238550094171697629928257552820184953927385708065304185494923192956959687068895102097999443290785059675133792660404518861047611581737180882700470805705548911811896638493520153741126768607086921756465216382674905170019742754703173831579380534176421640656600387548389849004419921172241654795980710270844437427168397439033917054353941688911493940463901202875045613769476437536214392429785158647351417763073562841986106912983461239547496357577703495682176937151074606538495386930266227985658862791380102498891156216126842479991376879923540816203806159214800392832705472033489172429741632872064101644732848886763176659800884538469684839803833206558105862578878704075878042765439480180977416671679313245092252433632085665036073093742289095240134378684478779646089865254272237399179889274292717034382201599974016443711700799456221366420307951050940047401974367596572708242031969373456288119989217838947657082608327469104896231632367511994834917711339948367404000189515150827025045749501673666606516794434785581743995950539371841543163068670629492699865555868479248108608560682304455845913513785462539514065222260662515485965511912566374166473782008124387968014946505638714688721386153665178045336984082376133060305534902886529222962577741155125956262400607130750108300568477389659006917641183254182350616452886940316633882951879646309075996745529960048018185512069480701230623684002079901877293678637636017819015947113557041142911603130672778565335448085880156614514295631869189127538667734009359370144552336682747369411972198702810867946001879548850621269773785545499267673035735660471810165223005397178070168662990721837524306421167761087910923785340045801539582440968360936234597826671019166742944588850844069343508760606541783925390341590760363064303936271154132931864719392050455648667425872212321448428375063740610403748939564119696153315532644866087018071259535458859484742628676162030436269712112512688174416225854087862159699904546230709170576265390365087941270491837163873628142926678043917999458010615657674070301002551956426331246344472195791247791342678535491190526988700670013832209381646406604997580623191860661733293779377444616617989928902621755714704830322652476910845238864326876960545965491255482090590916777492775489854970377149137621090959795174136784167042471614879253236312959695128986661788939044686735339723522105660978506612330453420210338059145478719891557724402786985577300554645580519700191918235968055029035031950027244110647613112434513455378586935848392515765207376621943513990804585813533397884363847731994704004657857899677796276370047090725014736704576398240445186562324149739146615522713233773149943515567471610869015548856024095234959460702005081607771563610107777869172877964250888043561489444133988692816849488955844131440091992905864894508363501927653445667708206260655144099014741593226784926470812177896251612271541608805728113998714894710980202150732742741948384707485911327215055038490808504290374044656296402225562730610076537959618294539772221385110651442280217059221694947295552052075082824629651629679816863636568803749186760248069138213466727959436591992480945329628145994557351920115825811061036706878737107038587110666986895248811719600717748031169450638902430132309031256510152526067971379142677573042452448212350790051169288050360505622062687214353030758994872503947178784604109299895690541716562342087832569760165801552357325917911274445743948100547433596135856996801909540617812543431050717729869633074786111879201438970168958762133695390648655447183101338641703854359937862807084106955871561616978058106034893102812895327755778109152250984792216574261715088531719019237956289820879536174661461358794943072693681061015115009098088836041386222933596899366154701029164809504898510890607843254695355451827812278245664362840365865569997619348525400858162704796141394937154456645418715280483986017892344303610070792249941537834481005543426597639080880345650581427364252251080320556597573298691606444443836819382160733187226560407089051011215312998286543292228250668883284048422157652509527098462053078797166770859952410444817137100120349309771502885559538345948558942414812826661979835849353295162811583795564429486113515804125588021988646363541515864322622389660183178445748961201229830133019664751266009999346518204246846844758561180786323410099246553313040287515720097241251388628918077510514132703897445653501757059367324063147313757962443543729767416163820231963772519862401897376459193978914989585235516776053561562447338098545398948560013311845355238293212931676890543134881625133861223046726875650645840909414786609519628730721952687049515142922679519319908350038191375503047566683953894229997955638448768086543753167622093466192475493273012211459412337240355410619174225455205058031555835162283465261818156358939601517957949507310461392329260370350252883322104060635136996165692467393589757665935442965947562377629429583161279674194665622022022773749342323070216635039300581243333584874619133598731311647726620505922038266226476821334145319561566660092604342431823467976958987982753747190506734321699292094482940301955279371980413127672547958371840574481225014696100818379690819214215878077964949051513972181289100322619801144668378981458942976703743274536628426738912793207467119053816091138448698213728570312896993858165369928132972068948274516330875604330776814108272260424701926505670408545686584910585853792911103248450167936998459923531182808326996407152233763909631324103231326542798539078316885925147056963231347402421859548559547367098597724541042043600505665378839062055922956597730764735095129482545885352939091244019618467267041699508831282976564872520089994564371952585870024494234959025788331340601814284886172965337462247301942364145610432077327898316122489286071179631874918023702482629738812822513766095697389035754488264856058104821247999218864642499799260077801698394186800185933280151317559759369436103980134677420149265434863737830778987248301251714517757066896626954655407436505718949621928389215116984432412893898907640124239523090980875503551576602472834317059011446234673089984099828082904789694088802123847834895998554535096871978591369181404638294912227283742515635040041341067162924726155042004880224967846208621709741071716955593668593248993106732508388172583499874066828884143740281552069105283263433958196140531131273865312859360259479331052868333909621680177215122103065314984266953968707401291149801009290385447263053290890424084821235943796522687683774274075923533205345836724886358810942825817292278767976013410930833095845580895168085799007264098822802667073126029695343024944731470268745417758348405128366170827297631091313928757668893623687796237358345774802476104787398063584581362944166603136330379400457718089658063168493253419915438989525013786196397657321298645167147191735842914932246582705747710738017724561192791356717610730237659190055361656966193413198030415463421665322704250075364065118445678870375365891802112866161372152884253919315378042372132665702829631459417001167273073927590676481853819759144092437174443087042279407052711763449161590331110220767204696974462608284613577542789674248288333706688543084697163516131722791387557099151581233549581696733537505190979059540114098468236245427238613193969287315904735002090295853407280915477773278776329672212935281147942695813940470201035039912342746613019567280025798225422622738719981481218797286534149589429276423350149475412352675047634100890427470729965288396255133238119363088292861989842812239092505614619632365651843467450060129643749655120159010544120896678047830715975117733829732544543354419095431028158941777429288266332330561688500866177421899379193113389329614156390579215222384241008180943930695087559823323833204106102822648956456311608499675271138010734201345747721078465863594571622145329248235193687578591233852858120363215121551259198737835228600544355654618286358070631806951645714311243703297735133887688930590797725401100291522555320322096338185250561952077493134647537016731901695363027785774234286732119637286113733484665163234655190436202093115871007854256196811906866476552560498888968708287482399709953943581663856661439363573300587679516708564116618839605498254801491121168411024373094188078925981621325276147342393944114272172094586258648713169402366007211436235285599798025244632100909530961614595069293675537969241230847628322503457626181693771281116793090796890931693678916026905606332074987222391576728794857710279308701633866250542495680168934946832292618261203516703150925126172115871129785287687371966761615368737522945371454816389528360955144588693910927608486738008135214891862617183265054643790176985621437494625698198470811166010997433652533386207036979190506323033636946420832453945022825609226019717320601044316545433894943203159213966427760074816716657200491904373255451278758934644869806753853764140103996759148697665977457768282075417115559794526260650807139798216113327139024983680027619973257046261042469866690873743611404812416267191485634393276418513925608096242991854455528064612601988126663128091995425593573806250073415175085701109514308206221525399959601217862372914158138730612712311912916076455069962722092437377736119519115739074968274941363379852349439695607968234595591397838935158694773924484731217069372739354654661332044825250238317092817204231321223348069345787560516349990578746250494290640190050583123773768320048155309711723344758859326297359368113491081294030727830585779667006607727005560454134134052943797177410407212674014844416519543114353724340686658318554348604427717899451822527644856148565955012312617888934573382390412095664244540143431090404970675370479849231626972401144253551327120003029567717969668235527962635912060906156087473338547706535271389671656652087402993342516645187907777954627673886982197518391589082038526550747145923750066797672630281581451638242020253530897575126305215013100767697052630619481013846790808496807169653339032286837898412227017726517031711748307764081333966555287631590159940338114671994853950009512298362953441851707809882522484498929139501351881348266343716649904006069212512997474883038976059753013840369901349526893189288078016261022095385740970423420169922678453801577083042627016708691563885530956032212383823104398960752389260868505078626037357992330932418901989542168708290064978437404276925392728942399274090729367739497288285787592851887553250664009532975117635411785654372822752168631938889972102029708528228208261667538810767195643760650064833800504674609347665982275920527148189822154156145873255185823518132284194590738509572813924574084528233025611220764131984972275836030947946012462710647313263370800749023517863882446585891772940464094043386943052980962620810805306480926433254474777640904510228776834677273750948458104531719642488856909771018755507387479619444171099877184706359884405974150181945612156915804037655165911510232460168904083652050020178212884373720218312166563129826289205142818574514173721631371159732457880886832042189002104820914616673744353975926564613066214573169427128206989406669781506657643946840067263515844786093807413991672120205207775015692124379898985603378299332390291717689368109324878935987196903290468876008704425117853570807214096302182940234808412720064064047588283732734814190279450885741786614323748796843251218070959535147667365135114234523672856607928973889068516509226086672236970148186231074773304495652716497670442186392613153452876697738470522816837627350682003503906732518747320261484270946514945042482449205326580674362349798518938487053575286727944631045778562168708520347555781737810979625689179495035726013193862813632716787938384616602051014312632768462725915732258802134231025061798273097137360903856005046343985872900543382466966695156908098732063138790433077045374368837495673271734256084203362392555285429244757384001249718101789083944382168843715356975070322451676216076656001452755510505620742194268844983570172979538868512002888924024124092002202024169778886219560440615068348615398722895948332446108654175287543599568040373138065719671420546061358540675013830987995364780803698594018281450177045185781649918823276771913600608757517939057663163255115847308858008317486209551935449599108996764598712224846738603486042388057964636451619377644206904296113992401446497015768861807789875873320652976503178034360238802907793844337593169500430376661855928690840252550667086025333040152837360291598660862491800520572649836680282449870338813963166602785362867422473899914370146030797085895618988055315468947252854901485418802555853912307091620667805273606960477232414202973806538176812970798478210826414829851687997882533653440022340978442755164367806864312282724683961371891960106764610012653546610101022577599572397905895669392748481282511921790988963369056363760952147361394596295982025660288479682186396331234238487950116749739720428680892542351103326458246428941994207940971062106007995797753087114686692949807575178919967664931575177221081857840177343552571516884655278803039625921785397042305595284981881154790199049148697800172265880831260731760029060819826379363941383776762060654155642975052564418925381501678022920726627804424698830834785873386949302859782162702230945364545490005026088652973823580903367241409736923284977795807359833406278219842274916626396139509417271208882350564724668735454102130380739263928693023695369113895996564525613843904121207688994868097777982019819860134312909086211713790762848794270309511409546665891477399237130136611151719514386139810025681952160522112484701540445962149302173578869998427412918593321703352899315966807457880268133815566278945329790033290343898441529325800440220045357484306799500676058214908046871159398073920248501942439756551048989184779961862396624777382907502349579710952321321203638950621059496351088547603282069173371916026245516461982647816322205845596923571973744576291184016747428672710096458169016570815301593532384800589987794619099212752914642541189704393573674873472749182631313573390844723701254264092013668134857243514206517477321996132846065584592590184245160951798674628755879538165579564862523491404658767215190540373101394584010561132555944911505278411953414190793027434788093326258272470552455611888180154098558834585591981097213053082713640787051476739306138681029762721246640173857532240542996805040785842122029462768510114424977595473771245372944513273329667049540163953447739485094943769191533992182164986688151094832719115746858246126403374753039470971817297969262011337521769193944840868263392550711365415667689760532387283104819764855362622812266700159353882731227528248359172366606726128017915121480909643099445550135305297315701121302939410637958787313105998112031562443153324179140090603535890457668609406389404033266291424136355133094351271251322868410915668570781199822750584489090449250375048668269836322324499044449097221680100525683771274511481168988144583983967004053815180590040670568420351891369716430825610597105802366024539160842515337503767399198947422491915759947718076807635695064235515543662254483168980211747120409084161140506695463511414839944241582981638033290735027619447101455352567123387531520510627428602494691841583983759662052433033867705347642345672507989460609208134273643870843975221878584860435176421122698886817502183299800591420072165434722947917119633764912800673749912054504657006083666073393936317614087583911762894933645005725960811473341413508670004769037713859423801040457708667410221901610152365759740144372724423159253201924991896673075519400955541053620290596576291537981513567426444097599958571290664598852626322434225057681395215189601404427656418219085827435197945562274971201599679134534802866677421358515083850383837336855384593403501188197852046356624037878684171541401090671362398525649182654748471320619812261387888467377620817092997772222109972955927635862002902009811933618806514575680558862230819528964053225793463643172120458825380191847094818645420154706415071613625846986628556508818991146830625040768118262742304961854491475115989448064215781698356372450885419117863863749780158545296923403613852423846971132738588711888571033384557670116291020775201758798454213827628402730959557532989075000709514810897693452297802283530690523761247449865942348914812116757704576173780893768240252808898539504073353854396519850437413838510482279984144031216299384732979645206816207034118345017205569312513760051826145792229985834675830349544523140156253682596842146546610238248191370033007513916009481807107820632358009462577470686853384612515400673988314510736809076510604190875848021480031621326672921656132091193501929261205983519056475658397898980860749417744970583373357554125758765459346437623485303287115726535590771018705717274524992143593382047892771177937777542861620742889003366147993980449297398749233143527538924177060664894103843799113478215640598613019150094996847255915544073722587258779836432209880551809046745320937710871052990508162300849461607822605973830253576653868292729818105340582654835729041773083989854378001745624924721484505884048655196885077223325854462579304127066210653331641303017704125352673879888292590226734712503140500015233737193316990828545547756429256108340616170982301877679087370383605737869001888621043946553523339863725574351894721808874348108050435430983931497636591532527118210743957784956662321053877667573675570991946072941997260314181386378974938643962944784585011529109990304036807996436116677570289693826841147151422172632934713026989765917912019299528501514872335518521535401436973740540479553347830393576965792434401189287101028158919089402917960784203440118861976270997561345117511834946725313724069252400009146596537825397871448267826303323149377521440968827729827074663839089410535194248568405800103134971534105213507052459374623886939651571448125160711943643820311340932469738160575872390237680616541533141958406970808030074356560940630917915658888648472861734126053610354040861216549083638361536344901954076994845418925665683527029398145295863633847823499943654677499585481291270573018620649475384833954690509708985879544150050699921660900164513716684388901042040050937780998059385054266548327960777830574849008363183228793425116812885879770884869355291413118694732185929106940966115767324910370621133797097064740598970694897596734444599462985034829990814714546672841326634702118112949826834165560539775813609585792315157230493086128637064733357459868594221736673056306777690062527712471256936502783190580688322514196621506638914108904533923379927355280162428674884699440229138612833455587901318275184665511070554537367723292134934859286572575240723685310968722231972689965736113181889637070722888426050431194338870959881057802420110594932514226407187466572284591929534149317531265450567580990808247553678861969527180135282226358289899151746598603476750490351742934562335421318643814445396882346384490936280356857605734905341463959255567132911416143666761124280434737875629277523127950980552750594420370730713489528466549255952784251833965410086019935356374233956367233326848346575600432441616014708190630813855490288381525528788517929850608578305507233237356965741335016709267127073698167462913202989246854324640292774046459202525814270959043141791237673707172910743544176257392317597119378717058674195581772757382303341836394890958048137875458299199616403114881077586196386852474496964492786916155028881284852244584091093224033288759568433617564266865720839575863100343593366581703470982045015952152131954641694849241037510868349586159383624226327856825138583762544341238808908147994173674085547509732230043987183000974389575420462462268993619437613275805888278478553602026178833168244399945403333484408850720129998564336958197940743872586733606914232930650333485825491648152625348879678908638425748344156193680232777638738872487685313217623761719549937736376782157896626404531301000554924190854550592734120906985966739714798148954648834219511855215543703258485402614207918094447952211746177704018009467459490372521294302168614882009877419835536135729317257436406124357403630315047869748692514903517481707521977996041735590630151415890678054065162062944115900729065684365166596821695817129724846017458465158888179995184689551887366563453096503304747272569454666791992584082444130198334907750151764987869345303229018991229958775919547953907361357510330576436381304531320406274024405647460821955404215750417385097270728746319245717076071095183056686111920221257949895513832255850518790127124381025251225377746325020508178461163447528413768259194969962841262743355962747479999531926867918624070345120436281644683122490139995289577534177987085959017272490182390859161722806284112878893565791262732120008387895213206588258361583332288153084042323467487613398756115855251403241320639713445279881790174923939397461933078666177292094437395067003626025548968542647998411085949160661289936580807097473054861253705006517200922667732117558696047473286748452818190437824747156175325301796741710356927363396949529429463820833481369946407691699832559126529325716760945323951842087478718986951184846338351858367636133134665998302455059714628173657715832724228967698680897376602487088075838900776655523412623991443363009161945094839417009371758403826337097083536057475269013928383251291590992427461723787216945601772848021677912252807515378403750615448237584145799581332762022429548035041698666303719409651407007863921986750244489057257408464254312599337801682961498666504798724223836684079267965975864409773138875145334211147629454527354414830380464746165051537279386198287237961012994854025724143572234057488288350360125492168683306911903475586310684606338413982184165905345356973901098477343281442767054668747101082463480281709794052353659377430023361420351132252407567833927962848710592983687745830290794089198805549143849754714390962476483643364573078252830797949883862922082369747584964730198661905952861299195837279691382906015009389597078666511369738490662289749036528176805312759464600162754096708879071019275326462368337422722240898932812178383943389204810087142588820416160410377762003973375814923966826604557692766937434739391246137472558159579066281159519072096464861466228385813282255765464786331919435627078514492164618908307675342776006630733983105071173557401663951953383334857778440625620128436097286544225147764416588214797457815621156510683876957039554460250666718565493508286900513751645123189935351171737364869806005161585904007568917609794859456310542587850998845778788974780093511512890829699816576137020655458471503536839559710904702237698585623441372936921362519398611113844733170009034918576997305548985115469287370770030051427161172945332662618391466076259900089270975167312831458569241082142308343430428636434220203315174013608423861863549412175216888705743932416817002844332802648101091694009416803632197563276022952481637724111999851464928866727268159463319710389220326314841946082627994869285049271524755996231823134151318325867002576500739082287848001343574816930079018054572676214093060087158745238945057411726531059779368208875701035038488607712526142679602289413926162436710265484456959271986994434265209717088933155867507329170531992337400734396672834490535048616424442432824568192115199030929883254521946025881549606861556770834505406439108335323217840341830848350102765037811864889854802492705354990683749608729610748706173427165252150413510436139253101156726438412090354602627336296198585718871073843566415459995376416165736629883881588235817734478999020238695895788273122368704188678979571877250258340665147508760041633026228383457759714515112247145914634530598986994218208852087060164351264400920309748972814741422943856077776445827509137454734601299840610364987250925843370337213181271599208297971128430118710352239803699946433150000401836514163928027822044773045177999661194696419241576048079452410456276111189157175784621354751912901898739419649022068244651480749327577964890228094852708262476572775731881430805371731009862656956030829584833670332267709393483694389303212596396782689591192356448784237546174943194905107152650505590483430358325549703017738302825884691512245380281812740352330830334122542173133335429793752918146517794376713979461780186932276030468540051392679672063139764343975602647327777715190276339830246899843425496033128741872891071356915282095997594190319608662869412686112927246376275611034140497975920271860290880727837925291385537634928609060845386805323290925760465895862110485770862689496753242418533855501166803457875046771343986086318582726909528405379694917883857172636793409993434256079029592413852586772599413005067136444049167009803316158890548499228889046905045655720664555409683271810185438781498787771637478995453853947189574544398128728417528443305039565307448172600324051482156747521483170800444862174746048501649408771883049022578641536525186389065830939894130987418486830146304047288583977880946183898009062478530288511025243674116734715877609365308090067917359515046376329754034511046929615761876074663238268719341773559194891570795580395701992248459343718485801182788740489104678519156432998804948585996470549908346689923545949714462150033923709460957921023234400388251544213498089003047578983406830193471851008447956304450827131596867877745149191895860443955066624908517693101718732404978844477636671543679326368097800407580059660149371950104820293341935487753548617510987317556384132390417048725327733739129954538802794665081896582912481256491192157677098276938365072883221771413647156533902248448789035398012439070635276254640621807178783285626633158603347749967724019046208375889499439761620376106444762657627866711836802869083720961452797435970703900877937715068670691229182131773376236964550779200754531727731511779291970428504611586204639487252431156035879711442039056767859667769252633583901648087505286151592886434980896626074464580847174982552267128934164590709453314576007722612142665470513863268508528681963252488197065894416715802978931386009447742698294553775857136518475175575721367412224436297031144491686253964278951205714856606002980921061720337045920852019716946236674114469873939833158717518591647992550122980270505057484247525560822078397773869902871142548959141300289764401545312860467925382519894798446060778284670313002583887653985287165165719618308232668527930680079817450122905858863886210286282430554065841275782871863340417863381856370742736845466697778275443377881529244210509425555770758992441854123347650689276949624662705038186915650843902762547734778525701926313822979874963477367678196425068489007647093180952798388937536260353794438764490735548494420895233705105467726851808895323502382512593070571348070377887384411108398766475642984107897831761028921141509698038959434134952533343991080891106266831924796647004266576937729918957164897039830514428632386733149679626619255676137397442082381298805091691428976817550977065778698006135725796243612915810760918465676199040931620750045339598104405530669138280198048462863761053325790089863867509852609702033374285379772411770368273326526347174361002413660687722030529353136246439751093908075499364416022028057842874670286642199253112650390390067507322605273660163146623991760551155782998855326400605665677001800893478109584246908977289879239491400815585163835683236083782966235958745373299746424497774342354153589393272676817407166798352859350337160095146663302016378716378118553766676507110096914012543465209443829550242201025034840692869285633689838287533306705443078116553218688693454196873309290212269408037435590517452240080359867265064232207217772742296980221770256983043471562642973651659510562298923702312378158540448275446296167445530400513912351220469028539450474150859183171183647268931403114744185376090694362229671929317783571914566145622150846319221867568326581639439958364971558979300638243239648447734330182571208395125123489854366231769369712532277359180129481707116806365618689000613563471866184462422392118456966025201511637347957942684091923695388980334032919171916199738080154097416274050847425156737296356721317578496629093684243712766660034420792263418719935157264896982013284682437383837892671096285220470045088638811358048663790711766217311249050542650080089938489002671021070562262377233029553651403896957911794683179873042878959879178494587883165752485985606163376032577010126861637269540503185378079602115061181642750826766565901918430847701157401223719000498906714230237714148458707871584402585675035973833788436078550917879017804746589259464919828311075379213828925237455455078148770391706494759362092884945895347742129176621863791899583747231212750168974091093882817004337354335242803496977968651749410751922189221155839667342258525541296971875203573246805540395075533751693513571796303399657864523723768037870181074120629305290464164595357881350771425297087815819644999295870594763815044292374524160497450515789347229424681481109234282978376559698664317275535952109838177416700720297131497886827535218062928149415650460676586073563509971431374388817596966388847821482973075514253971336534402529972129802680941414083613903696157316565715524015276087548401842211835288185364716345747379529505703584704369225059811409396119277862668347663383350670009412474696338781629685361699112946587388609358205665672924428221411409307269871625098521661558124777648227606231639148095761156276370335501678310991526848109001060961426856413792403370127446933542735226111992712246500271132166987434620008213073150090145646935935267173847587365229983634538703272646553912530509030042126584253986925270340050243077715373423391312698134631193930915394698526764648125788774551756363725912320185833908145845562003822664407946399272047106963872630312164265264978695740044912137937171412836604766683369522187844261395117475252909669648912688192130833444588825002694167201611572277497435306039153225338994064456642453359321450881562238597518310593838517439549374734913865860183146536955295877185128360323479815403303712506765451508166135888747837452755284334365047682727056319404429847195388735576611324586389729936631469647585411201343809236172649776672528788671728595278494271064211793388618128688358904235015797381050358329316627066518912149787552292900363034539070936915301828089892431855669017492773498646618771534536796508392353881677128146071420348558777297270100020882074291975759561186575450328584311499156193409204717782344171849444586316214138254007580369565569504803274084326441830334447545664569840688036861353768086801962218994620128316537305240209244391398495401511138199425341148859696074796388088219594440923181956253721202046869055311856894873533581680607977461289276302875828612847653913803770411127459271109187802610470277784400426587283584291721144098820254825258313704367856929671567740581354744352068029197773927557223487108500146276710498298075397608408470300256991935469977982504977981124004899228674018241633810974436227244218192152077769188551611797634863488281006542351540023263690686093112625883677916654380444327120610180719512978469191756423547235255302988185163308306189450691649702510373637533867024845723921333320100244385290635524803103896225601990585242759873664325809563343144030804555367687974889467733779534390025285268676402933423456240350257062429116862762065305957037397747691798901893785114865866129585493330004673057104442853762790380316376345988803053095242574306250355430983252432787754999685445082534333595228588376341322154247598420979172025329216717118588340919923909635752947261505486298575028534150794663331648191034504801809138573241570582776713580610735481163990891591936661063573135698268236569567519533039437375664900656022502907531977526091867251886630702910922057592565851688359489647811012299225468335343786326625722084604556341076921276206061408246836489769602755549025658849939043515747225068466675667075941663642062740193990034485151699634992156310360216731458337387936166508642320296933445718627394356177553654024923758304542281419031943245215799568064745185948370563871900944719430930108523882319634136931030077444416036767785561550437929603808651688728327980198933723572210696638540240901124452103528448418026294497562246590317230659390582607304313362331235171599470123003058078293976129507762802132595135983365074739468237668274019267527644453821557938283987672602985005410821415250784666434702631657106972461276033081952862827536341903359317544562842234515097964255661765824561308718084032110178760207049663046172506162301661551990905075251650434906688785430119315267130128411990225308035387226820969357894419784279064785122407007782769786335131930543698612398162377163930283315342045952494812755529958232688027460568235986603400472898255430453806347027122665893289430146881878050581801648173190868076112764852788346818209857314660149720090236491463839683714240308069707425202120995918376677708471773745666293622649684713571638967513747256250078517998429079613590618558363223743616830949287744475329664452509366370281619065864618633959203548086121848055786188005940956012957478365578117265345463213075612318899702531085333102525023482870138791156414259196499545422957828891239379344348421652959164830700693618187551176004761295520609604448792487467991297472682848754567958592234822285520904711561018511647238127856848690480816068522722963145179899130001047002663378846685005814504976344059722457046735688658571436766838704954034689996164516169310816231604739003725800848239241874344286117069508063343580065681187222592383848009369526398393106965327363920316736955462850704757827288883105461205751059194751085015913994185535592999845489578024931820277121137665898311001195089274300506145257974005462993751380985393061948655466147396028906137659413546434975693265142427065854841025730854250611368525556989059476895707996500226265255863192544647670051496906264525995582957989547648081271114669492675561291491489343167578252637215116114992790121845958822674909402060737118700973842474183841451342436412953127973106930081070377967679172483485347047674081611487340631078733809870498323534045079370697345205727460927249680119360050097595636064036390979211299751519942535706657414225994454989311852386449852714256743269433084700925357518546137413163507384498980987750411296615746769793609314042115765957743535716721059230856507889187544060010662817126872809482538221566630778082450748190949898916967854233421596435087590070325739851117600090452979439067695384589755825765782975316528767262443922821197746252887709793034621154907002608688449635473065680974484041687081730116891699495768434906373657150352611574130426547298959874477439343510314437763318157676536644497499112344586801740047288200933028665362737143715850741251269606189884109558456190209690853587662180881351466842150036412188258756321680509457890315621361098336467690285929335471052613152202845994809365635137829484021894072025450114016557022072621070650375495454276800346335680554934399652993716979094914521934716644741772600919661329783997759857764060449772071331777383933651235769382944650989259746766232962102780484277343618762881041415416950280035238521596961522490557787103158465461542459521072582495328401732950569197667586334686202716071640333857586159423609317993352618302239555228131253544980628197902611218701440973852527439939466460730816224955875416214613946767642970708608135794341999139083838436179311194006137506928056196137762881864609621824188823069069166144998062256318919846593707752341537418708588395300605594183325150082165383562701947362699066704804837932094067144750698273642524658959525386161172079504331677406443363811283373890996012642301028724774608814360747570884129914096476761903231275600702933171541439572765615230454833663404743882255624035707795982924454023645327548408454503828431848921178916204057074805569728525875503192737198926864736619065055660229309721728286517163472168129981833867468407451833687847226678716699219963471701845722574909947378927432310847520664088372635514211014718341764028501758724583014792024203763673316528514343512505602461433634925718007449051081967374636420414170899493965874575497554898290879333093086060247446038258955705810207469690759352701882122704191438751402953298538447720076474559215393731454459920940431119509815614235058993924037420298547007810914388463538032578107164131928758168390175759289230972807653666176073361038178940797573867900892511414157901779665208139710768667732692222418826453078243298830653510140938968495891175535800637079630552377682896726165329946694851716412795512147463744337454451324145918193821608248360727143755043204963026416286910042295920219629910800902408484643618145933455441373421731542314490274133830349185016516241155301203969921013587786477760772969101158761310576716788682980809959686860978891876839001535814760359258662199097692276169325609338351584543639208549201055883798965361477857676498673580984925123957454662984384120297606209498358143080799237284542845915479956258768839151165269147347574447979491497956221081356685674232669990020779232823550439637707856255750694496590408808884465251931753702832333214287859866361585500117419864961450187987128494367540346068949962861145354994439448128230810048694486354756877389678798584168124748178256840782185767453313402307474249458024155393583692029063070592913816270357270300459990729844019307046746688132058702452899813934500118433565006605554438736264071396377265129137634596550254479267168335276026119991319198923798260471501648647601989983701468039034946802483426933771361591607720381746696244388964805044744509753361947652631979192516186506690991480876598900946627034282823866245000705290091225109193672053223999624082366183370151376129453666953019669109528333901485929935666053454265571268368763318682725980819069768071604946857256342204526225682065428763112563551892524626266019623691317958268435673893346637426144405922303473635931385685099366789541251366543695569793788915072116645683147244361229922629424267586081318809842183906851627225190659329392857866325894957217916316461634253501156135608273111458098750788513919962710627080452135877799675754020915028595513122843794697487168149778436194397836379500066066809794835018504218098388821169083266851442194947090873585315394375846958441661797488976501058769702432680704642401360396495714614714345921365475369697570668276012671650063564288984116552596832445530917190989164575729235806317274203564070707691665137585842505061534644807559927109834333679371289055457793432943565159736789505104388528235480199516615976865475131578154442512256410083882897917111565609973352240203501136985967159546233767555222216683984251474890768156599662794194202748419558265308224498150010935274606053609191129515758912011136846727845139495246270265624348171025817316636054285437453701488668362226703070910693592657221023553593946518362292440067508765586772179106134630519845388886423513123898186783062054980872638207639985294317170306327819852678994997999211581000895654671403006533539346168887581344096143494073867121436221215034248934085972453288352200249707453050368022968669512238152384557362035055721058648410190091000338558138560350523988964423094138881019886444665705275102620911150201995774088583114413565786226677727439654282230083173528919044281256639179173425389796857295696233860664211945666268602839778553781454411756333986697175581668421091660413932032386475031898745193541449554907940615517128842337087419582554971720010890395906193596188395279338566268892538674370263539778627027420420016656076921029083553806562904041810178921957806252662524908392836433298664266605949378936108837028955352204186872536236346317900074400494294332128036752131178614036753049635729864055650840336403610515127056756133584586663163567551994305350651268007398848450122715320573944557897228528047131810226008917638372357686372129917829388854229464066315293215990287277213661407287698309840830005748168197107647254059134665498490402574367102720397162152232347549384688787430829474172626427886742401828673177532481832133384080595752386381445673156002303448602996626743965366213196968878881532669760953480119771988680546617276263025336281681088271017229307692329974545622445479316178333071487092014363044781630308053249302883062864758028366813973078919475119173651666150071349955881576702994512341901577909547912079605649872623754896056040894193676552670008498035356499940686153129493894141370898027277438634198207288787848729752282749534220121478182785668526998274726468692562484125475463182672304039285328119594178739769873948979183153727713192964085139382644439489284109791166857626267948708839320916973999517816836088241412508383838927593987405610546774310156078620985354607150616051806026148381088712215904619268469207705199829975895946744756499691712245257108808312798625422391252602943975831558593541760298409727514873629182914943845954886194075483158012126119267635176776843126932043676435356539977488329657200543599727389170095777952763725194625374724305637496470258091249907551703726247338563331958492396912853804833319991483053503046308962988731469115142988047414591860994176755681571899033346681485038883078967709198519003416645770451925276119674521454924648799098565347279650021680293873042254042412069548071330195390980527174081599232962221612453120424477349628807847236583599606262900579270356461898367044018370914700874447563758800109862337940865081136960749710598765512190645161476159216688126634023693211544664515309337546948697704772051958958945081386263109335186499220498666374993531020621110651493189210578612553629407299165805750612935861539663746491297958145943316433081644849986214056520786001005466868387917951614744700888688487290976110251103120389495345482830468340584539184050146902617966151479557022640331578416071690810272253310356038953716658453702393354619113217942969265520303496503487299771427733262981087075129527156983128818914724560654520662275832344356406147047996018326593071766946549907663426541781978058550203247341906509755897099627107231731549326179952426582164985079089527098390482403226463382873717758739764395485216087163808335688238388115414934955371237321114962233773146714708750781744541687460748483667344574390175849031695420424911677858334978922558927460394582953426745831838381058393097507148828103570118714658874946104704065699815410315030466090028740820006714457723902194985393268951484059809790532311146866960068315881477085308800488380038911680271063854659381272675789045043811453251183332811935057145564976155227649551726851517319591424407690945111947029489661600137654968506969202492164928622235319982335863035158739638069252377708238469826976017155669237519079725249990173545834508516504101029399195233273644252831668389539471636314774381216516829415811303766437545958608432059934590750054907953397287627999590941021012036785502685574814430292476178015212221152433801985235662709243557719225740209230771656477113705163438829636237429363786564163354753616692121974841624623825558474896115738326672778087005318079013846969481200603827288810126035730801366527011978133887471764536461180349005278194072850276399784623269191909274669050622030062341748475256680165539105972965055866334019597268819613168835537303616001690982860863207637502323843682630148528421936305817878806154271061445006323844837252338113367638864016212568773600064194675350086688598022101072428502846870711900335771843977512611965252302434410090528573132037658512607009714914129595315770144578163880320816486266769892329121621101282313775681249820366302548481011688658405050888751042590437049777701808650527449681503103755711013763751438995347469331088061476641848461969480637004788413859697572222234479915820925890845333671179707027809976490155509039207271598959027654352699042910163516205806353617870058505561047641199918915433386643000896624878656796221037818744837347196486830553497176245053223731324800668632522840759022963313217877599385662665697684396408624756374687439509929607279607851688679675101527382848550408128363765008703814571720772214326845257587219729932676336850352997476222935949884666403673459065577574982784156557377672171637301324289657761497539689261043409597447899702444126153753254528500188040276433508917035299388935389614771527155840722905806654399917773058148883774112332509086759273626542219059101914686632507317794018189168939272765042579628076604709478453072406676954581225023801218197273175481827218903960453512610000370289299522057117079842662548967011042988540810349825870863709575854338172194183923841410870576474543842056777138823573329377736829106582681606658398711757376524520557702334412650887487462206929605104634251332006081546544897502062624901261677393076340279863169179184809552254326914664278685363294807109605614341459147438081302553943537570378565562184197587390909632079094244446020272021444882336206936392286662305725406055516362054536503887456133066887341963691607023644001255848706712575526075730007023947360111403256268814688857868654335069624925282336930338653079371063393541185392732172425227699534210304482223905011546340861034031046847229539723381214968648274734790299185874678028342423862578173285349745169146973154747093318314577710514133838644615003119533196958886169827227624986786409075304151955306583772671418188041771108357024398158673441202979703421515027527744693989171582856284021871624458533099603405917925253437996989665633231465549436678264824126500985407650147299351253362306838885262541582237517622575290481948256232534561555990438911417680837203461537431017184328159562378089277870207089498018824076218023230360121864769909307129548299532455621629875231067005757557955597915806841710278321173417424975748529969817287619475395296943559755655162062901625283813911792297537940158467766880083638375294264838409475553825150407745044788586377945648781281387704271899865567901275059468210122651442533576178940050842401664686200838825088229528422831716352108816384195526918781632106682366703505760787357142616725103867265637071128878645836519970239577951845443307085249309308119220175360618643620349803104187675754094334820312352767393185927167339282087120792722942642812255074198306041277828739485042355881481922236617774155629088025155808040726665534397282366892864346019555250301097140919300109795359717714258370788214246410121677449988338125880906873731722197582884127357542137875705973983813431121761828891560842597628583212255011475780918447853839167356644298183143363775910061991156402338015671254676070838162230262297560968578111173834650410447617899389510440176579110587400638087285701645840022514513845878727242640786893448488628207064379114389709839887136427121772193579316394626358241050267700124338509033075918788788726521616863933548473757484963523637657766308886690208280884923678058831131262885333895421495262750643210789907218190219684148822140261001738748283660763679539595284179453023134390762660239327212796749013170571243679977579864298783888215085645859011552904264982413254878128453651242829206719978199951616809855169605081801972636491771075390794848932034301636667119000842282293307934565997160650940758243531329251159300690667702583257121008073615583728257335722699896033532523353133143720735059239792032651493118545561748793929555571590296174794934085780797845710510740140117025988727651563537379922380872144992405900478315207770373430177601066596609675753289498743884076582070404161708779180321747344627343884312827069650810458633857949845467837247756258688458321565178060704962550092600955485657639932974874148530547009057475893427747716584045938866252695459666747699694431450877930088299238166744810036000884693538086609057266515488806936857516830866841023025684773002534422877604912194704815512955456093009075181365650214383683297201497673961419084836847865487819056030650445324086480673631208369427269654618155508132542374699625641488329676179209823025739511761092350923262983136721819876736351154606419700030312959499424584807635970227695277157391777870982803570945520335240405926178772709167562024417487870742550902698665944753013708276758397627407979987535721727957528645808092979479995002388783705602929076412592434292085199560215016708837768090401690047520858188665931920957976015888108267774561277972857035714383265830873325413267643243651816368788167151941321084196724021597557345734641618633512474221259317833779718253834076176250534301476164051010296436551227737308873039155271519341228015774906478019912400305621425491772720478591163133503975902229366832361792103904689698847542058428204720056525191070545887642231500336769653775695641803360621619585821806635838844783777060672100135483698061303845680538437617592042587917434117178947834016513527440253312323529942025660887836388417174224567343187590707764374501426701198392245693801945251946993024277358171438278463847880282766518847875441391376275966182114652600233366713558901307321282976351859569388925879791355111872574845691276778680008382119374176241438669403634951616284261275668836035808606486365078221439553257170114361738759886657856118888768382141908800839594478958123515617154919559231553351809757040719163922935237719093240994230482801929954941795878841974560661620850017295543009271847532746308792976372869393998296923408520470194293886388056114880033487543677613148699407003311354760319289640538200619469488807743600201688815490748677085793333853375548420111100153759661076046580931999617821867411985745889049502021137906536254547803536027095616710701721343766985824200418104525150078838689908741194386680670350890270246258871913353105211676289435458394950071924737396476492368382573375373685211209943098389099983910282127444310111584906917766062585184474581801552673187411421845348399651505472043625933487938998572955734992362968577492818924357144114372021188083126646467038878335476739590017770676878330715822011973599851033311100017357354669728557423307302459598797263720768318439042534328297744798012536916057885951550064097879848117574397202983482979696582674504869809785543749828092814017616610309829861074108848610749405873424615866260776776404174471785945075418022193902863084752746681421471469190987208880618385594952814422577506081306602894909907262313668853957102643702810615595402443414696523383738877208069129360039018419350684924103725925503685199204379141024482060586151505748855501975715672218130290870255660846881578728653116942001821894318202833135537893267120003896459138509643373906482205761490270476996701090224591679587886669017273386644185129128612655320543459840766637481611757160587528075651137275480865960585459301491490332409354344984084667482019486205590152670893129735968484527595776801847025653544317499083515724127685204532793648834554781592157565087723434040031065612794520421534522012937029842936984498494710513313526542502397101299578603938975491732845229815621364267890364168767010439118016373836359789240003844123626218767845131652841701055009032584751603853211626220513108309830803810043029677379791892182819658915788632035836559268380179247633905242385004150527725146551558502999537860028513679345568204946536557583720013685626459710340393673246949077620380453388156224839842838063797022137597304623416399892642785292845827660825937094360953645304888393730024749316990348016957382677561265973056405632672998728473974844791354836302825259770080511298765545866200004472892451062309617350274006430638717922813638287283842089182689930166103893238791508944317451292744675178573630676442445584924267704516066906216697092077327627541604024897810869246804437992878138192510675393274606164868769307400207023938404628065488581729633296736966749533775400825459564145393248449600554145205182859425365338141799437705876169999296985552515633483210801800115603517774581060867655999287509914130085643051331195271348177171749672380288582094682938116037562824913817384180341262087241092989668178734947635293277651490864387165757384158760898795969652392995509391890556482728857735490481597329895332776329361625534179366752205229409713676967276457418424818243596972708666733581566406602377300983600566662021651500188756717625995464694238010639971630614812127725152346333145684091444724824428141804993812154082000212422812140792553191671372966068604993989604772951426273372975677955265747959841517929438794775659590138064006186418572310660238972958135244737469769160694384408113833194598414971279122014053414130582305922506799367766438172410428799255685808522340226604614718901628447603148292437595643370444525615061106816730976304524003272087496167484412997521872081584133919783442233557834552651819426822221042420018632823425079225341425143039543395830247140151401117858820803286459505401389564562951407496547337344474710282125951881933420225488146204868861264130952848103067035624365123599274965289211823697694944630301607776721047428552662815497527167496515471063274230222580288364986627989930402995401543786623881720937638422023270530918975441837876969467543128725964500776423981484034501384627620407745847132963802760860785472583492636413128411716932534176920392180834841585435855593942244456897926949552124849303864360984943949840392779640366005619251394328425125417290401020450429124436976291653882827213245947577637332451492915859337053428964217687873000249617899805154674570095513767829531778177695455857662823852681625205629246970693428621090663753198156265676415176116707089728877992210346745803585895298096607007323160295918795992591304497785861822284831981124622138315924933685570287996561534448021428142658954953711823064859360219156462686417464376568951672041143902341959572290571521336947196800074748995427932694891593762613662685747456806158484149437592371964794719953537143082104904557022031778546605125240138508272876175474684877711922617431343943389914976367069567768599267977449425466053709731365881231663220233929332592887427229330775231738082637019518281603457140971261349527459420021881657046110190260424103334706190769949630990575511523758917003137123914659089615633915753706664322949182146154685360477657329222765718561325802816779876923625456141000100835072977196389316668702116729798215610194472578562462625346348259093801212539312616996278912817171419405621091903601123157747565070805179980591080856391715538068045375900943548761314324827920695184070296232644758039037238502386523877913199465287357676011420064416138472821258988553302176616868471837496023486010575504659646794092700798863930105652247308365296396484184989664784877803196420225855010113022695050477472560326625159886579604011207082468077053671124075969154184113166474674084441304552671797726822691172971072494968766534950729021472542894949991133635492098598883987985077858977319118309416497444463901073412906347822852614339507048370809288346721194912570700451646216652370368014953321797256115757182528781776726206026648051656268184957776876791433508113087092577525400900707817394989589741878745588437732254604268271729355010732647244909126036423760404812765654680320078812383919304515672446723471497799599292314168515682007256205366918302185683143827917610442927468848507510320368194716250347168699301525612468305748071675342241462020982497384267424847343184176606732290149077226341678928897688229182596026839137516837817015239414407972299226282541473914570219241501672288311689882740682772070185377748701480654552241345464911219594199923106418331123427775980444630308366239358214953824296967312550034306146427872655836272363520390936947179589584572329326046585674525876167547120591281263974205287102028517229039994293119644937487691123421645541472989076882650758836145459446744375448569749892494586616387205438162173221228379520168295883370309692851057760295133924659772410201406032260186352963636544102286066248614031003540691929145165173866622135355522288750476253476566624177311236014843630996339200819099742099344006718767062016452936960527169548630701796234059763628628348297492433793629026691081317868730864974811452920945673132849903006481201872460808290668478007942150073527802094181453862892954835425478895814736309174169087267405221876733983543060255688581931716560043038538160827479211507734698082172608197959727688359118243355363002239491964768368035444376825440346823733353659913633515328369350107487301521321463153401711985125143163754213237920575945333761151965079335146817734820547773732085075645633344344482389038231487873276142174295852569572512396753353845573822628375439655831229451523916587256832604487690610344277474054528355951724529819573963268914552577464073818313777168976699827078144271423045873018158627936167229609228018296002258976369772372929927519965978768689956726139311240088909219767147682718617847329285209878671538122660992586760571920441336692283304866027351327099543371208117091838111400094985396402422259816079416152061522998495762444125858801381419709231136829991332563560063138341652846922709887411438249360379664870982540544793659851533407367701511735243402311151362952242526775419654664221883190209249494133284278395694778365558898593403475134118493803290263465732734505389628014273426138391193302498476501818314485322308630090182873997607410914980231389281507380310171001996122160754007026662765889478086959289493623164085207232587975452389484944072465919360649279629328021961216396964484574052805958012706634615397118773129750991787457324905828046625461737514020482045730383957046793281001732143693346578237922083693695232734557067182809823406355836274415371940537153151199025271134930299762122636226380174022304597631189694294353459535473377011314772169419039317871674616077118812091236967867167216999887316554063549224674452095493150210470355989975301908407682086637837481115938544920712450402780867146839800379970277817086953595105459656830771205048024271958112060253761534454261073969099031886934478545939357535833506475140376738360851147694130303436137116158945384275783609118533003034529383354929507664845164129446694368733891626874792107602033633400106762430401618367786373461717680700236286376947204808005831350296674043000005511258539667933363723973197413333134641479065296172893010635230287359681872726955785577678818294394000036460350582604930343916720756699148146435669091823861690720621340862228742502581980737029975046534780517902996670717168217582467331712648773944739275199746406442815710230338196343209919187275874740282516647198333860782665395747094011220953979665802780767591751986916351492939472280171778941539058365358896928851783991262717927222649968513419110902332446964073502865900848310809302618447448292413680170471974964035329464209455652120211233172759807251744526400460569112992209407666564362541267514387329060531257524525275833854340839702585574465564123140539565885753898202053310280557719398086565282423359938182584159777848230362365968934758256307901182367809860984071429781541330939935828159782898646106818151861231600277597315242966399246525242281992630864444687455243547516817958280450106034970177651328869155950404934043445540715011474546600044631459937589286545749150230936008151232417187086363074732610137493411166258195888941207610913980349105403878510666210782334917765830230671172014943656271040931339761192401675211159277882527571002330806569145481484272432880309423931146499630278874068350295532593735841906214511755544290402684120417868277396742392170225704596624534787303448494953042662235245610605226548454911288009398755309863148117963393083961497365008138791923606760371062071603598212213476846759398463041436220796925683374479156898933639821394856536654819004160074650792249007173306278874599783357037249982077190471437779399514607929197088961699107568123251552344117716744748656431500854888073754809774786831381208259284941144843479421730122579515510704977353088269470290072484967860538054904121528709301605191213094469587351058722742280349394259515589151845092125419933630265006016528952404043814441631340774315752848971296792483490880269294937183001074182966771284393626458385435843865683660157890161182365968371628494640652992431687172703771034435345375504839069489821710728502393341387682904622010119016500921353097210731135024671466693000566635199632493738764087140768020427178757186972436722336417064446968627950783176720724182378907393236321824809036179964585739038923128036096052235490320756129112901906643735939130675100064380449124943201914781817867330241276478059690714148909707024717069334121728700924597126463289485976807884799527376188698820035344862904972386538918993024861399682214893491397103265272109936274709647707433822184193813465749055458490650198673879171588204148964105652963379803265522527080186206237766785550084102333323420410523458024310420847124027725463405558995206356477935242083185990742567242646709222273800334629606324520413800628802981949022872864480871695101709798406925172097830004433227637774423067432195266407791204273751260674211903416538622070786307041006838320212074686576416491608459246661625918132272285507047761365922785132140090334263145745332906316102507098516340802716603592398094356315867866054543442668617649270620880033511598342513109824539133662989844426247414959637781938020814723192099247476456038069554159510876220524878763073432321703836270129729082326347837487275437789496481937095189643399088274949367169135064252712925579018566529260687011702542136319182194634570928483257116657127928564433325583358610573796515524468908986663934700554399298867703380825269896407943060320597133797823010455492251233249115794776082327964704624290826027318378854246658313587238636033139022536081776860094921934221874857202252045118509248490239196004325950009246231296855189164952216934800762786229574570451792202838962495257549926804912973632396862770206485122512899311172144637002315724161663706759234269275654416260557153700258463503658413734642180849667765013135551536503679823942383133725017313380646037976508581693394149619196896226056716889204488736374762947076373158303349025917819140291136067204164610365205628153397135688975338017699754149300256614502147597752860135497101641191790536924688795051178129790439449492006466825529278431205556998299454341594398457595944161676554624314675541702053095145529110496402648921470912214943048449402292719517656965616439233496011504240494896098273520343278920914208760123779311731273094959998179003869075686255823874714962162306516222276424160619866661128621625793696030977584564782650719741401175037839945007400153066125451608442104770446635653183228834237762929821857410819048906207419813742059645134481280616387903921774534382487752117609282307631132454934854769547594632699558043102767814535630730634648049538936036739090927594992497244923766191506697963666437859426218838313504529039881710473605284264992377319899533687313351210256269672643514620563981853949146591662461752140494341700460584524556812703397765530187561637331122875923736596241962697210928056282904446741733815694003215004229342361977552686636248386474156742950764231872552423286799157858551305527115241138671441648024048767499349217116619443636607363545088404089955273816907093401335630075383041612725404710478171509485718551570953317316509242764821605031448135080089209617373494488364014868406612423099946200876837163688245526951404015610763951143135404443388179928207817588662824965146455032809524890084053467316716120673434701501609947175577936060800379783229316882709582689924475520086685193731184908415320516116415031323052243667744679134737223116510622261938555466599128524237518361689522220713024448813004357884231981572341524342122435953577510542145397815815128000141782026672395963550706329329390826248967237841650968677056171908137246132562643714369214680559688547273931544015164559822921832208861509049910957936279642644595187735966364293056845958173187709028823384659826851104651488496948211118574242143661235647739566260530987931736482559355666775039698694405523378540146461795466279080669042980920368118932466271146913673576185145614770518244275301020826743584828365250735789262877611991475114151972740388335304324474269652118471982037313876209974708456304353289614209945197908662179844175689338391571203155923034926380203830396015658069064396334715534472458406369116879923267929980193330621803015280109590761011279303097469696314017733743747125006427276745421510804213608763200839213574095335278977900430438760837793858152866955013805803846404335066016379814212159608034350943929354914028669729731296349685448372009276433041545655384736554781621054087474588045378292962689325786076085129579153855510725853497918352902966331213991674556855281471509589869294109591838862756742730032442884485997433447238294101038699680826810001434752461736556809819336548264672747178709711456327299437737818624966181569322578578031892969662719063432474889835781663070179304061890520793475751500817666596623522744348701348327351583843500645089157452911158839672296713591032107220305583022288635941540932741172745725045255381731090773177073533921038827986205628394166336430408444279661457278139124146272598810493287986552009082752179887495447277120646045788204349834679634420858082377112356918360140752714551852570179843685614469496998300874331531753197790593122094472416549019147703911842362843639573505792619547785389055739864613916487004182603246800970191921617850459281579817820410278825942896974324821566269030760059445215428825954321229410244958611132473222685171807821151178674207100568781296183423420584552592354150629896209819086664353670471156087729873946605702043319597443613840421046796053368660594940121994879535573548322593262542209649419730756857047937391337028910362524528895896848431931248706194603469815172122252025217310461221568319482710159908986450172079400329253636544149243319939726943709085193515277350203968879801967168911216546477864687294567675247408226891353084627483050933379929826660490436781596507150587665052281508878212374336079311749632941672101798150801146130446549433683972971824112414582372017915998163134002294824807961599663675741822577218648506613966969820754453101323454009691315234322664762752499282954844778942236271592187828214089200430982450112344546077357176555858266852646504975714986257851615222799869110438967321106863927470928385090358332371321838754833809809557569285171377077393037594170571340386849787669365543576570789349425409700858921483740959466841388323582541708157557471949067127857436394940181307325043133882506505805803053022997877934268523867612447572077290906377420026230579846981484115150557506350669122548834246259879830223243503395205599193822619069622830877481463902323923472338704269938248946201039470729833488580689860601603577644865037468056041535849763592454504138976313179080172769124918355725678533574824487160354333305779396514675490743781352567409649956545480940656493992342946573565195826938498281893285368888680392664046342894407404766620213700267994871884499358228767956212847073778598143214855981765744211556616508031423931284590395801649859329791145011022052418643337110867272329013052134320121080036597372878540747094754766748367344880052705562912751906298217173530527808802573625886365712992237441999939539763372690434492372342401694468838574313803014537663832886083134586249533218465071058475968620212354973025502967662432618041271519623374146369544852397519296312267501265242558259213363786739636359532011572130812552231403142568009633613766737417995393280161482189177184110572092300720304058999499928393669678559237700879338792913556686775703542462112603750025516825808655399282021775522629659868721451865394952529258480211429933242121054390414324065276311512349668395902909756667699862021295744277111838346343667033745078388173781431107615148974214306921218209554516266842677591563469078762806135676116409774268930057544849955834083522496066947472613463247316268161718919911757042169320423218783276761459125813181164407297396503910536422151318721484244554154053227462209950457277463346090126206073758056860325009336475454444211724113164969838041479135849641169975030942338157985148201128076541154537765511502797886883725388161835410530619089233914674980763427615455689607011748713672666119260855866265030947492563239726410195623541677705284809337188059415470629969313766007016950055822790314675609426760161563451672466020782414350032467339738526233899800850505638394353649318328395178054625855495694821650868943410508118549705546928915530378348947215361875733365285741616480962472395796849857515575436150446953921450839651327796768005623396012656367494704295892856039294412772381710774222954150678425249176226810991993896357512174762876535593702438941620996210971393227707581792264606528585441001390807308069276055939038838100869519037241398352944426940535408449734210954799254933150559287499775654055420360515857227969967425864362094173577304073218609280378441724616624367541490977717486836548523989716017914244237297364949638358261615664978230834367551115442855680552335694587917829815819059485872423736431281372613926379202646853524197588902644873653669725337806948699166417573178677180465299059186998583307363738618229309094485605396232821717451583881050349475068431967729396148428005432781079842383947027948218883431005508887910730707063858418336523157256845570215779380260596959580967864897953866491872413228766604071469297642272073059344764374420345808187573209402791647809782656047122274642883763006601977723500971698694507490052875184071110035791324392669041982280857059868455302500571020813378483709571588879725340416997577079933321751011644611291746989094187203242828149175765244886947001248233352593307725300466409533246756944986667749350609045849645941185993491237553695819645045716280298531333730422098253057857627458953652138302308756824222643493811942403126081381803019362874214106529166076421095992707016360957617599546689201811191326963226962630739882209745101046237899898950022896365815216708931736696841176386104456579572071559059138272285471146811942658587904765154800292819379105637593915505975725303001229464260179496727020672017022295370540803575642681842608376553991497101004532965736805731735223104149158443467470006664792620059257128312493700654047547634393156107021848722262968638548169826813798883627105462256793936252385801465780182069275970438262056153940284081205629932352691422092327612603617729279042286334529193225628823456640073918890785381998323086294830007795737198826137055156332205458818251161770501291537257987606937417486877839154103210461032649073411632334769847613838116782886497911123155809017001960976538637697692737320452114227572635415419836403292122418963248816489709847104661826972002334233905795752957573233031136397180824955785794013104607088265989611845125837113080915337734834459358121447235892637093766631245977379572121279582908227233881169805690271957973519660356397704552921335839168253281511374563645342218952724253629829948653723193048968637590744295107246142890411582281254970329274613271375957743681405814466793307487723085533719265322642652793792489305090070746449673138115986804488839050391487357337956984844861243950252483381901700291940820680461152144530463599085692015677602240786472690331952773530581510527467312148811477293910426567995284509364749954166196881920065283996517160684123659024739561503803972478959322125173405634484875672956106254522517833978419614947573593465295492320806715859256754264093248193772497804074903817266691028061631338434976559026287250014727216116798202398128113333417256263943796418203883147333561826393971390828336181110013591117574246070898642013270145742642240582943079962400287836510804977640588021880380076980961308959226352094501102869982656830659127983258024863984824007840892973661665075824405665871921044576053138678902839318184890599512717292958655840556455913852859939195562935155837612577736060129915008707842522721873343444353276092612722240349698915603930751472012695762650791823039505700479907566109753478432138404570751090704953412535142340008965292678030399356995627615408300466426110905026307889611861543016272372396241873827681447831828972496720764315073193027037909204521446981072399262054573871715532165734756124945987026148570492841349024111204301255930116589907013786642070040020584326990044538103747704433138062185994315402903335083106864952666080724474950965380811530153801864483707119659688204676311664911267063986678539142344583767258205326603565021527032990499139583877800471875151078102171168416138629758718121311670205347543486167801886975248538120013490660384400774165275134801774336261481398943299958133749265836383881867140117839472498190557846812660325904327335125440333248265380877449649895901502428105536850054158612359475353371975494311727468002315738719743887691918424754544062915377184196398689930260224366450919386750519161968964808231486040970012363817906645133632445888717197690358980657730660487166216033279656395717839525378663557820477333642736766598398091168829556108928923390321842706917133710532686248816030856623769297593666046482586414472121836918256514715211823301668299792583572124800681542211429871357538168692338739410223321942661240747610901349582611632825861650647775797310708119955778781734852933127287649194032320949616783771702131804524582593578271831996037812683386371089193925585284024991444834137179438662691771840616392240572945522939940908787786818550308716288708598477943877898629773337816057292525558406501098137467571170518965971351552221783596134679246576156239788354610918265083604436663201193186691333847118606072346788615535409046291209166298699923416566927648665097210511229902301950598759958664292125111190379367721791459560694833462223320433870086529058667396303222282271927014853417831143657482437971844460121568630041241154349297552593401209690285309889953074204486059763635465763923898919707644878830409194051463670289007925430169534732428206142161827180189602178127316016338099872379736862932978229558693522187152098691685532115473616928029883201209900678122697813115907573543846376527824059408920809576004882071713733102371092631651976443743493701465825477722412135262306143881213973609780162891621025599982308590400461222345222511832657795747661691361219228207278341804402604599098010847911227045386730716238674396724145686930018582654984336499653593072073108594000913328742276965433050649312340914676940537814136986020890033786829054206128359139696190575291883420354638323173209430828263439769908065866857164082330726993290175294351137356250977760119849005042100649366899755086344923540847400695295557903175918795721232327357406871752632834764392145449075304825439065762646770464049569383825571287674716657616005198952324262861869226031466614774336176249941626003833393823814785534489622053127823885534964375048852436059333636282405938093704166176130174265269183259420785016199004966946414626908067392776293555517579183276846095478475582998009990386726330407893253085819845391735031383506041813399949176297010301035968016419318708002625138515906859634417341073958716996593317686352273731703400390483040044097570410998470112586969314401729339969783106841753451242695841245290603142169676774425485522546297693600003050042194811948781403971913557137942191172471618888988445753821891074982661815736497038692546990848958931659579561082725141761742797210152732711785516352734356259392328051480831883560031931911759283462212607390440806908159171029297506989726118854905718434221183341702750498642412089860036964158119897241295604124950248430767559932907852731560138672424789543988855641575489873243209870029058991178284495543821790095778930714092881572230469206512688368320106032362350003786801077248185520563622619657617970328643331782957015839293097530592075735095251665972615847785627512124970180190847420025647220147957360792702896040104819635325324071597806751362699275568732279042641180611729821596250362514720285701028617029324525051942391704680485619751477684486170569423957054867580658793969693778091506390283616460575499768461234225692429112188388054675077955582637989014920938263511855806707794788360279725973915301432048690702308177934261755725259714362921614259626685988971036703153405224326277143014199802543314414888794231592177339983014708323767564980228389725286150451963298468410336636028628208736798988129504425925271861977417370787315981172081128224218557100114412509914429263206867498712501353989930685682069012341366779946930090530723804974351624243674750604845002234110914246256442533362208064524938605931196411243258391850087557608991542502135008170882638941169381105211679727203598560340263984473115229721109620015182753041189833535331299356865360299829770886531240109125595595375893239171654866963584512166711395861688042381827417788572107695084307358525123734127390475034477478063799574556820442598774692759433707464340212732382021452932871256054720254482141752918386849080313893720436023479990332207609394208124886466287633602254834782559611750533712829081008847232082542219914251564507254148224518209371929891356414115407531203522679842625481008223446827214746199523672911767839767173970781339456215612949968525437441504119878014854599414458337036496059839399456236838549901933429197198131042851020113909665665729620512712185760115004165671559637057318533424747859471715449578471835953304898618977038552497593179546426051614719558931029884627441517531278958764675880386492412178573963070101139155069606433810645617014877571948733918129955806198841657502253913536465632868146773968622104046458221282623386088377997346699671076203828374931338984538336900930147445978327927002913849504066749517654815486437800328762016466540098531950588161141601085674642224020103640003644168388123933571544282483846586217735245294931797944558944763835521196587760823900328209898273874828401306848482840577278186107713247473393127131513406472073768339915059382096015347870339171382792481290958635528311076926746027225761555552994122656346945899046701484729580041450789013207730084347894959090639469965533319414984165235859475451378619584607299910372099350393642257290521245277788147236750884677853402490955759723199602725149160346227030421560670670155934301516979139195051233062195831265424388007612586194122629638138500914447649556306544308287664098559259138017279629101455346939434248330697707702232158396646105660382510945499640981495714274777705542223913854171648625084325390799102685037684450936519630597569811721653465605685182744204159730488174101068557371607666687189771091933036206875846524423692567707460900167544266032132558064809826637290746935798842066908033012915592626933454207771546516277729338563747071440159908848878451751416388085832280789502223466336165062038435751716550240043468366791376208957498979689399508444941864255335254746903786044305396817506233229510647186417167852335214926852854373800044995329980747412815345966259279665638762583808932285708186327021563083765120403573235605867440843490807205167623932781904871868457370012240852013412237557246981706932151907766024761153353028547540839019285195331319485471574253007613658047407874138738277642610296011867183178776478063832122800861353457845771311199524180158480474965737989899444322929442598642666325125009393405253098966423874942880356505600388142044149653166504330605740777243434218295967683639980253128417562609107702485922370549793902533622012247774536511984751618547860880184761458833430655249690203807119878195807877571277565713419555347869667504955330513483217496527855730479177510771276945055553329559443318654061088976998767119670002412971494075553697466127927830360340730301720890491511120906888473086353904531291276517525335180237621714861005292235425775409346126968732084829502620740895147052064659769290274863693665509076584682050134487827570422153727587220127629336293619366311681657609481664470092757944761308357555131935086110765599233977594322856588312551715116547178461993921535510527713879450295976602264422813560851950302998013456781722468951088452497937332692946038943702033499548031272951583675997602898630009984344641154911632406862248908688004482831266959451299262043749106737854436033420758211242402465888677672992770074030190864394207985477246477809122957140886972361993400146530395689465973961327637268950933724281233416198433813732199864325792658568675217455929143648525831242289199570525763134173812801617133360333599682505113134389404265000484428667546483392611055212084136738684494268467780282445725366166417193143096495814495433912042303562025337840306561692187545714329087409851912377500669828314038418911083849176673906900009961426440905090927000365442123693514523552755548758491780987632303249853914958798144171185080833312796925195053354587513939416547982153805748542358612844233068191472929452691997439169122225460411517870877785056213620032438874897268007764560957954762379907824018329177437876186275735824230394037407007050486817974927248911282407260241687406962975834409060310644383038881386684853490038662674269861874679083025917339393623074806049777032744379884654390641905939493595859008730763807256972901260408995344652893894713606029474965103519606907700206337838543668917715165884731103165135584830831292293170692689505166547244222205275271805951504682323069946437898339534705834732255750963097587849779778572111492199711870258860673175199221308098343206203711950681207655848376328736600105021309277443725955737200117368057252532365432274656656536058052101535960901244944335376060881312405263803113350801662401170636356512262397889713365996602132705237006985522934303433420451612393667007439442300352730978093005996625328714620255980008867798327874134098439886399389276026304040687028627358088423761357025473806095094213283303241594253639547646085941373809418271129838447179919882124281453264223009205051802074346123104254643007628118623797332033072120654939737079946123936550865093919547941026061467966500877399805085628626126518917739730960866187082101791368566842608838187306845749848745143240077897786640482583065821014859169100221822358533753765985817765874102335703026048903012598666889771730661311805921678227291443422816131972173766142522022923811601544490957887541189374258165199363189215706185550957596751648359427031453210962421643681875499731976854717699860219596822834126513882753149533777067806062862258569651655545559662319181820300071519875116750779931218560171985463821030302212812789323883918700060635893247549148354651682927049006119370666211864312543468692633170124433664101716533849203912041152109163422272222016786337034879177919094709543740418618890881493204728062657530967431998040512146544707732769391874731323022124832611616110773092220433333867765680991684960169614621163356870324405843010097045706396013816402038649986292101279588692206148085437415518791888540661706089327423592528262322639033447354618104617149256082696666566340586654770440120046892513943177954968930602116993610718867482549516154216735208160873052839320703103801348425332099412734491177919595625194732530586072333891128852236627995601948006830393944234131272169790187625588435967385887247243092063877183473181948634488241701722592520810980700765078125726855571337326894236475009433015156821537531692715688241093462950938515204601959556219157986788295622927914418185506257625720939855573044307509215529761186865686765185940868704142559478207369624315509464675864619715967351437486959229241147750182498752666903088540738066889348517751905789918316074703420070870640563476217417349638521114916459620134985790468548652010525744567549394366782365782645031452357176994514159612513698107649585442727626492723778118475908950027477109203194676797471041546014841582529001826627896084418997600834099249896591041428467129425548829425852271462203661507303649125751075838840911714872237883010590601823655309979218368326809407279491007225460319088104033189480385540498260368755437730444911350919472634230071344283763150678336761309186385477164541192135479575015701785434556861720460742201639472021422098513474435158709912274272259565453690565064517227712415092010302671595957468929576722896535276761095772646926831976198642298137555656690910884344577043675882295619468523286165738736609534456701866497986640612601869486438916310900330425198443350397423284818739212749549885515909049870100180526471433948368150738675119830742758524020346825647808308050814482507528896910327038988859127739610279629598902632360294678672220294002184518660716867261334445836806529431020626420633114612697258217417203787522499453190389419786855974833523956003651456070782351355335078006216739877368407054528247962981001708639071113823798519665412360494187645390881375275726393703915503008619758468550645252548749253838879475613725031585505784285189175757314932506440029597070065059151724173822527027756542235660958342473245198731723508027697953412176081775972268699930958011890863896397871323084137437421597257501811099413792696687834448214902580840756696321313565709027576004266803677696365448433880221173898359631106664282654475121339438513129392245437409425421613984764815817133660170991997646230390610756740033649981243261237128097568216049500942660658637396430903308459458543118722170626314287666894576128136652340100501577160470939042475981409639682919381135634671807612718751451611141650842323528851278097085673272486058055524437823082327184762677730069544169873671337460298926228656836571772795016351068260137475601881336144018640265406972003570790185897764737071161478191364479648902674371154152374623985666017325463159717914656740121943527590636169162786917068354374344874916427024330583010638870357159416826747420749204455170095226770810744581870358799529853143347675803959046971534401280974776065340764242248320584496151652895603366125304948606635537103825485274506531466954123847417841092695921588934710517413971506823655304616583408972377724002016726953196592843497390034324290203518773483143087536833392747999960431444366972406196403486370626356932407210519247984045778800813568607703931090228396888713243608461187218846598341011520650816983177811553832472396211671967714593860222537095702488612222584524458723221314767626508107760435757019745299023796230819413765803295414720773505051529206964166154034976259920044484395073339695732034511094215917059630393394225522504324402537753719481769014499764144268443434986893178593668681226545626003455533239576125858871137285107724061999945140578585984143563293989156134526588909302779745651101993409969449872779365453843838457647284860071075816332909160737232138473905463761066240862816897691106759902143000055274246225968587162479409137256181264984681405598924477668332999696519526388236141166854770058584424651012059809915314935781771968601282769138079657932511994363787998884549423207530980039694568611449995601076253224968990392377652191689180619557730641661234623214748810156817462303435201257373419079237941398255735443230203959134375489685009042138023003764566829696833610967017914213814165691434423903509419642687521022704006561439583229607559864788486171536835199647834437942361525647151083882313829836934704955969054230751992977351872717924142279325039523131266929567671947971634309380461898614534163099377805360024825576951191675905009132337838364604130966679790747318874878312219925298799086472019851796432383343371407307102043770916679704000088599407124948204319844268204829221544682192603870043026516751521226051709901990241570541229877125610355873729108859039689987494848631282891646320709953309830630830552024848860739007352624485714672863450850092615122836495317339489542619369444255691128356571143912339361542613078457408983788051649958797393311981883713473134597431957842896812823563312229176627583090586654740335285487463325990873753678251398074476135596537867956644284973479016522199420508136903491128713576006735187587999693639500327157811722574119608802806837150190560094117968725747824763007579658829839081419164456896559235812657103434844173170429757346981175513534130256319956246024656651780724263717762799104072199901003772093106092955598200498443254039620309515930333659483729150787016772245308862923924415561814651981755666373314263059850531182893864175760754210961419812388503100708743118236554856205934960036452788094614178527958690784123989151902581694423099994946892460621381559098719673484633141490495968138875593225870114229607095566810581746174515596716924285314482213980524035542819286006730755844332489963560692397520047202818367375425787799357113176536050681794983413635200008948982427091368369960901980793208766718134268000323507691112067024528829091843006344445880789918740902067861578675175991740455317487606429513873729084267633140980060444838481570625236133966580577403647769153216606808910393047916407195480157423696263448274647898695621312446428005443038256750915877396051381333566197930995528873944878727678201173900648186993662758001591294697164482013485061805092948139787211975505541664697500424056344056734051389380899345009414593723611440841386226913872737841329112993396516757575150262780684713297886979349818225105549297758041473186425826084295629132543283953087320577313526456911609624774144465761711384863890884031192515871203481377335664676432936197607537780613759046394383652366592039362046943180466120455045248183037153044424014106036182151233276137848083332489410276977036350324979923567203969075731094734673196652617528269541308467339071923225165500537021014767230881782309086459736392534715786398046688012217031949235251757084059360180313723036285904269971006539266775013410749195898623972964084864887296193520469846930931669080666070496509996372038406619667244971739152623402204709435146742954533060829298152474110795340403541544914110081010500121737782675812626064676293628560978425491795811414187547562147262948240034299322163599446751041969479323386957394584931180799726606812711153107276728265309870028916992326901754849578382492269834797703802058358904654709079267098323600860548533115668488067998725371358061548726811904042355338407116308331278340122449760011386924758134045809895121691764244021407118958076078058068225509788111620231168615228803661728081542328498505791519554242070104544475051699708489745846525971222760097232786768249458171827077843418559153631151388822392406831170432205232250307999694781781971954676440745742465211122692341993228288431043701480164256230304868983728265118783460132393500690982296957636885790077308632111335076110116155361194690523200432859054389214233856766669740882590578117109134953982474425046536655301837866778063242414138214356598875610774589022457900468967362052550482041936497689728522552747880307416168329109138128996165702164584057190916126499221188101926808976380402653645944550799910071509470833529716506063727339072005405224340282360815556005498616541804852686112958883884006132156313854860729839422725342906922148942092313650797114068766965147914550260166392447471433810763074699746334692713387045420318550925755417360889210074872659448503443574664806654913798128402022748324774715468617409766369241319400820600988276108510320815296281804382753986286793370015293948230285747699589604256088982373019360779517138741637754233138683774556311547310402847686847108674540396487627110299988995101070938140790025426338821827201430025826528945839130755745381240711131321661789479891851146695307083946678316251273003961891842224695942039888236299448604802857483908361018377267307002703962185840053506546733164461185630885132776599088016771884634541712891956542599509303936107656192359150857620546765834429176458655490902375609105064992101605380318490637763140238491983215149526781353442778222199804579344747178220628986170700128761500330489584247876043848117628673483157244360666940828153486628724019610092069645532627986413092315483179889830100230384311871051261836651852242858212829911723054998988010986937258656809666111037284287904723042028527028651957341496925573801020088769081043475462126443755035281224722377267996962754788676519727956418570777403008672207105797290112452455910593686667540694168923255207394957121615061627066953444345074996912806539761411354731617962404762754866407397005037099354698289560412238410658521162215229428765476667556358628914558788005595939814791395036177991210545711563885971243519437121817036223786512410508068593346891936238079467344200444365836797050083265926617557643969896251648079159123624333788728988962351491254428492009484819474746229385078870718857579381899715665585033387231477380019076062530202110724332682771782618293925801827274471446373248134737057977241950130021937627975831450542622140961748336674759568913877394253000850710528138074021624835455668046281066435481520464361641073432598808420644971948961945454120359710729388951096905322883263059878306334006108917649628507054802760061595439527479925287161549282506138719790063597573449490950488136828209205648830265317402986339121135437834652564039665025804181606458191233403934684156221293250911639003993666132088270014080399494309838860969642473252716396188625827716678711179544236118648868870275490153759473216783823476559235963741195979514672454044837821051534196319182421136001932078592483022891166969994318066712966350849431006405242583801289350607634505606877089402529119612262314485367983956204852008089630969407958269344724841527740404895049050901525887441450324145259959917131293041422555700784180799198767559947853363507537715413379355239568755226036377753837153347447770950954577382447773481268241656785118354533657898816554939693918551044052377322076687936681009491722057817005942891904931426541356009350362218392212864741651700558984595291990784629898997363495273897410304165301776157090279864733071683428731656990549622245429632083502914298488252446903763908648126621719640902238066560043178969616047737241020209955797849147245675879786636856236274466224927691270940956817139022599099095483109742865312970817959258465816038773334273628763829413620090357007343266080665968917136770002676579484404803938222164328965703767564193805309345419715852344822135684902423665457142000833187076515403853925072354653657805983648340980205121377101486930916733827821445254687300940543883119782318881312810787182349396804483919083169067648543308618421231898181347197885468208539177654354816074674610102749344748525228767250733616369276484222692170904449508864237986909722767834444857440146175498408168047579610018851528391158038651622339657540254802329801956438172419475008859916606556724569960423270211421967123960201971992808039874744225939120267874172274768961089525206949396782062644402518511981560202552834182707071107341839814384355119628219750777072929411592439888037542331926416762747029656100805577589927939936993818847826398044901630293719721001515718548518212247992291725884959555321405916144843420470814256363276920059848337036013271603662024160098441783527333273322086222418009651528343611607149708968805792409526028159050612935202069219207541595780479872966111003933137785845761709120561037986709253985173854044013786600385407441592301056880310448911419304921969420581294367567346574966726530339079701280360510200025380291791527734271327524417728381467300026503140375094419493451639519731857209640727766369609053959244145373275695945212914677778591414342496063603134548125850431016905596092962546754919598442643163279537831560708773018762717696285195198513128572499945801890713555789902294092862823670848461135119001360330774305216499302607663384854431281363941081501702443996136487402143837613017799678040336599879728194697012152525627793322283660017460474515199414613830704061678141550909214853940353391285609243727462884241101075745286917469185325022301419037425103548409508453133190442148109601651098451534397025426112931980669248274032818322677965316328600144903240430188254952025788536058685567787661676265843347765519122278638565815728421793277494909776461155596472177243855239291500061448251283230141956423548899253794962814036714289841920971625301546302178675950393014314026850336399422670560714886279320292447864291863396584955720641985906156574238642767215162306300481276222022659792042440866821269247592544836133419714237508012389237897292942612434130101251273525505164348855676127989193354358080799282966244916138672262910624302155547548086802656219307101764306606196166010153368550347102740558669622126704703491481232590083762645622634438837518876054265614229884143222030456639006173206525294324008030108333033636039802160020817539166174012478935676777416528575180335333254690038166686347404408184298420285763757650019437934057196889535159901420369823923906330167323957567937647816820681007315577221633303661745920224020749596914146828298554399441158993308525183851293521697664014576722981690288112117051237192963506469767765854309337073171239611315965240755490606852426757901041298696039793419493992247914185560167743778412966535905704907791346117263237048397530299232213141035696599680944916227207703258473203300416757935199877384808939443155859492351176833064586064421315182803586668483924492800418637165456243941542736434672499336735113566250370825179484445184035086221650698805871496417931161064787516452930805650316084016272171726557007778321664159737520169975746469313159283941155468458412620445720746739660184548705878559725208691413526691132137587112050144908265282015584631269587636599909571609105014382598008385840075194821564309124992073965978637408317281532854943653805067792925883126345963386458706051867285777332738241089154995579168955612076977333976119991443184575175574132650315567165891914203163314744921225284261627923695311800017543159601033986353136026324242305974103935705123947559158600387665244149315229987218148453691849122132013078267222457399254732469576172389398639607589479291568118496643736101291782061140419985004019746564902015869435487321534869989495414317460020866159955900860245028219936101034976397493337514349450622738217760080781510912740264316267707312782584141687133765760679023237158376969311043510393081780082400144693595119365441165670735955537063765040086964217348015794587879635709248544810845289561022373822427132588701673418508237903856533729404852759623046080653591786391868422028845874815579206752586676203193546561474643580681070472757167379001179079683757707657460340121210105500795333732195998099296436740777954238894878674876675658937695945461138474746987069029200409154979056923092990879006743392620681979637931301514610301309234392782488177160221436808589989702848591699540982173575032274422371715374616308235716818217920034817244327005074628879641532351046462780178715266924706541141645575380091741653157515020614321704024823312879507414793129463294468001445957224314056409830366901548316085686311579449062532617118247394224371964107927224131215557111165824249295345082359815698868931972964349511581180971515002306729313415977446179069199985831654924673444152606217173625380314048285908151168679457973307194358363491005661758875861723299317298797712682253101827842422461372486480221861884826681043838143973573325601944412254931991986273990127414938261614799258968129642397578987419464647197661554192410506300331798332767311370486418309253180786932222476578123885353913095462285836826331910950045878836506243047230747494751970324070385096217825284635982034072989954474118490091625174172654421370712432790928036900629841942787645284839405940484021740092845053962654026154794286697065802138264964733006366145304119520307959752121849040392398878791365955538566717000988886547984612025756536370012301728963894311601792349821707868176784664815365630981053917141356403710016868637607691426662340748868336450976572298549025780640409316573654175523184680834246611937058022437404000131698607337040991686174767913838423234464171848722968805829811275763437268822345225434795477894028589874840981863217114674741488896719272498406889915983120256734208309255687549733190617727483739126826863323571220055221259904661325056138300119034250787404250467058993669793441660847495297863307632057466131180210945622688538109901094051175447257143024306444596195809325404873898288679239859635444071655473139486433440649020266663534134514931725324284788483323541498082602544276699486185851878146168794358691929970756190698140244698474708146769210043852340042166807724524325131293794153676787076610304386311423908320144540307816772940575789812556912104099223145012054832531222469903003946312550088783584760554999206856893055594808945743976186393747111553221402584997239114696706378958744250668911969507067209009452049209446343218144672715326330071975385321736761856866663104483247772229116509368524758738107018165139608166468927392987795213033494630543115215139259068239337721266035156885682984159079252998636400532611828756038881807804761924642033275030667621123188110641032322312359905128729730646668073289692298052780924948655882463413236878445985431011217637976065976856043140128807743666425216139604863874110514580953196227396812920079991585555610554549546371884445030271896736777896925474943044994163863929775339098740372859179392468847048512418725570233114130565097522881534936425683129538321712183663921916933472000104665751549626491533184062206978521298328807730502387706719984541200830279997252053100298936771754058805681017058526074169609209151595458032218810149429675835136675845803793351693357081828617476111866418794465078305268388772211321030801546438281047603662263124424695916246514470403291553681505738115826042548795915526361659964144360129831939053954107402870567071548807433906471377032679485601138889910924204116647839096092978794529501008517084551266989392104252352447353801671910449064961839286225771846656829975229391434576470609723922646069515804430719062120028153234772465467483171364679912551754858113036248054692677476419771827337093071719973422440465892605617721759842539598470782567428411148252099444951575300202847050961215097788810309607954104638024729594149390130341014271012728579728016387578218961970649284854978224733694112571208421234137936058554642891570348132064233842781092540278524476331301167168866427905891423962847255682131597547737017824285760421846874923973393326266796624052384623923132432468919319852534344424304202294501561603254050111154872495089836532366696379873272465870595998697896433048644860540463864048197257055804863380788367185382611400138555391981998121573560473579841092230846608510861694755717677908740197130164736822253508659857271238185620625882297596943261978423152076945378459877367944871001094733291649723948064890426435063367357917788951817082458588876117529765177596332564650762882525324946846257246517648793415772455319132562841953503030987698407910290911692871428993470327676684249320748976846008603064028399513910775921445249380699438998971714927769996276267237990232949453063241367563868155151982073755739246993411138452079047264663830302819808643268240737031866096825618611287315874480823083119551000291777931158104190399298140009404243256493739237330990010496562269901492012833923521254650675201232103113561598543735748170201031309594724567097172112893537026868181559102560413515711635899865227820502314652664037096539638504084132506101152259427528471462420652699580727692606907619969300463714584237348025041901675037235553623204092192920065881238117892188492676430892078872372144658900177570188339444799054163344015527526480423791921031800701562063655055098311201159991784005234497332929700398366920874991110057686524204597774814482710714236874904096016994849009071972822711505129848458256561854499636163702225829320292621299714386953544984344037931504003588118521253042886443142775444527747156847065290573807953171453546142194537253660753348220600194068398153866051135451149117202089402832825166133949050750119020229276859406381962487585405950789592506183657821088085416098224628927094674410268778686520638932484313451715101224614935499389197544615252176326337987448688894636680754181853089293205070183306635350125893632910241083861576470504925336006699812490204471227546406245097077005316403805982868081725576180782420381522402613386849914112098063947005086349949113945279959508882374122193015315050865957347409908619759815992571776483384150864592419491708471723866154314849127771794704198678938167435913058917619729324952328202740299289437360645468671355630000244914812774580037783090919870630810920693633370991228177567071183331992657845149333217570841576279201085924289726366335808018449203334269168571127390508625826618405455841667436303647824623500939629454736093289359454575532328219827429931067361923733361796510784077490313517098086809166300695429082874946435485966905717149055320757937449314273977437096876170421402768281604466978390806250439229235837214945895468495170852375061305530750861284111877599608499732875658093044885185769257013397346476973600313099954324948693300553116314261992987953635383922319959355806020356989835778886896842213897640490772064414988456215395291209803709388631535698378338252214779278968287011665507189995374065296730313090475075566044362802010719584447146724497900329674994209577644053676398406939391292835460879181065864776235756185535452985228032384358322873037406903007623346520844047747496812235669449816312889098173630472192223562317013567305288074305269120587383393335956672214229803338489437461907994984304530995803874361135754065999192841369861250652808467581212218407598567881336984723266779502863742561866107906643122154167240613940185134769991197189066708794904716118200526595215581509621484195605759146696248243534256910891164220280922842267857053944437928327589113610256938245979466067068863400200635615860525359407094933353075693116790630102154111241872467344357306033818793566328758113343582294763164597497437524026857304676154094992360985007624422845734910490827446595056932434954826458574351680714747627793473063468153914976655835699752603062816635486238039465032578772410422471334048390311665009471004938359991768198634680231496996430368859942661739627090577853926441697488166852162610967978580240126429786602650612806916726945092108262377793955236330387621062994252401913354498155435396865227752619517828497340168301783516891153851538574964730484063456439529880573992463334516244050263047427937694145529233894492539009525505198179383128957389884230806460028161463292298906240799796599613403574681491499874160512881980198318085138021794191223247761669636179369724427609345303951654919921575611072900854487953706494107043190580879649096875575394617513060185271232540116466399775932390474353942599755458608472835003907396699628939344519716286985688722182062367888808909539500629373043411198354546736191321169526167937322527863786034703396524434581665707489072237508391904899394005752235842211671493323568282561051767974212293348707514172034784083955211675478996935004571618780184328586448508229214223701758759487534891563917448264872012529765667242153634677761235726896872273826761841468453684876720204237134347070540406399912380884619814915125983697683462935665443286904166116391356308000059971091208823452322543395407222959260011382121690348314447269846462251550277985828360742981464749101315015628518363659999309355505891945244714823839579276497165350181453169231389046092040036285460584353022580164375823204203962676244392508616426207746666784096984789608488564568379491440331614954765661461357996436881775956042441292609510364253216797734826881287751225301982845478066648030453839371361755358952968859875927771226103290376822253510573294547400885170316065798801314824872645383051810194973933054592917315130955512655378472972396986248150403384357346065504719508134063060911480819490855793250206548324055179850315935311270808698189938013226811183880325363979095294152641969943465121678466760754170715324771584057025589542905743367656818929232980577273222941027829107628603509426340142383570352517523331413194554086854087621459995692140741135417919887688160228158612411020264205011743400416562729012818326426042205336834848870204136371583746370407179451141811146490340020768561128843609411379566640987760995574218094257127034027049685475686701805392524308164868941090929119066049174888830147933733114427025856692007676749059676149386245714165712036764334335912278438796310529105815126417779130246774524550268539780750825219282291978384269789725451283251803524455730957903201824164830540800897310543877487299030204906593817674642137851789489610403810857713807567551270376848938138492537457332621204502930965454506665582694633066927833304145155205665830192631092227020527468037591395306286037416409699559622791396979487017669294259277001263144541343411978992948413545515842345824480680483683612422779107837275450776662911660150743324563534468370633580262804637850496892679329174566101583254711637714820619908856028405617031210119934117822214293319451920477534722370125737363339768748772241625872518916846382732836745317978414589566755789164909593476735979522523579995718715121418443157990041434510023813307854745281035964445917621026671368415883417518861956276251283333217464514831702158622696558605522116064101140085579484208152586538587420713017888137438746253350983789265764785658186338170018331214634345527019269309004000975442848942738876638883586156426299856553398724515562417551178155007082259171758013755004828377723659680291246422914432860746876671592982963172275176446444764083183861646705704843443748181287017313545613685127913156941621803897912450957697494913804168156683897333674716127735565980978710444144250167283248243177870381458884138755321295732561862458025216214697232940827326755916561010928420927907201115106374516820481818082411683711329738888178759810328303700462479015038905170757552568699518677977442053431466300836056239414418821549822251902471132526050007972970487509772539851716537957747026460437748630039128140242382444325668893457168166521993702554641065303338037892757790811201706267356156015066196428647374128100416454432847609206997848678540614279710307672459688548141242279629457433888453065095466763530983979798907184706199813553466892446079920936679629836608998094586533819967680348536096911931074871316718349858943417617211825935537485788742325048776507804927801942732881553226355748340940689923021432105533072683854671429443766472559445964204267304971375666573657103500762595122448134369304872419980097411867847488474143234735666307505411228000223423031708411626661567674983289982081810997656935441119641636181038390985951452816088152986634202540542631996483343501367766636907888404202415817503909937099889189470667213429902259611175127461665654043792854530033827874848766566184737560766710595713604242186356102720508864729001871633861497217281672830814019851046856641992856562770493537292690498679521676485542139979186803901595162968587462341211756392028252349122942395186513830207347547089120301036318474409686536460892828027389623382729833887023930559900823782145802764997802438062482254470256676532306246113599831527946451077749285537014402730195321285675924431076683725809614357167117172900871103110711714787215389974320869653703496038147992446309528437865141921254430864187950650684616194142529396349055253533742990527580047009561964942060374025134337766955040063553701027940424890150539152749347765350549224920720710397426744780744359333756969962845008714478108720760929953684111525327528217922361649399296117604577075619916394256760914810835590616315508800603046910943306882021175253314941784351363372274760804200649521013802309532644469042847772015317756303513371212730569519805114033477668938369615382080366721293869091406859639201320410407984416559123675058827206951499653398836285890717723501187644604253834087254429881928075279743507044650427354875855817746637831197850470528685254832951974165340736174514766417195533121018536321336449297309678769202306950142616776908664143282703847790600351696260500275084575578580571456290560892246098659671814518060796571914476756458654527924836146221508306072533724127916593483080147822608145611051020031876879958294132594295754502412533649243180134635006492869617156533871011503998367027906981299388974199071252323793368143146060871050941259923652627812061567306246700480189872047285066210164966305403989415020430609664121717299883255638839740960018125474256444157004745360215617275729991750062821685564894924657337571293679234603269559657392168508249063930423483302120609198835724457969092927196667733893436290492467369923307534934303904354890651566293039909586180676477094970508220271360759981830575761157296930120286290958864737491726710327669402478205573765343289172761333060693398688681035783876551706964296475696086061326952807422873423156327722069944305996127790165545829495621185240582540349752292058574617159825676736679581559786343305152942749685989780833887431388856505533051722481532125865983941603294963314465201776259312960138976814965847087407021712135182864244249691401444511983780482555342286261615448215017402707927446379848438442277741997096760368198054965362964493450283921261609879140864983149186056597828384316231056688979850566734997550245280994798507233038244894105294637488385327624603139733511255234306133378584574352336526295863135943064571215146845863177628558681890205459958568672015624360585624024132073969141131693984533750183499062296378888637813849468709876396450146717164180315501669576176253707768391523451276314304166260648360669971688032579795879729166918979570879407626628471917007391812782108843199478432515447950877291159356576933214962715058319969312124630315091289260751676839305224366247543412734196887105510085472773134794435880400901347665046739891815324241285631551545862984487443577980027191601484134345514292229220798786821164605716652664006209910577505364532348304232335838762081765158906992533784763010514199919770242263557927635205219060346696838532805855496368927756563098806363525668594505336766201649699813909098215755462615313813962321995711169453487457963352852190418832204292096344013114978720569187341183753358686681479063724616767685732637989165823559256213646403428664853367989929202022323122934803732008426534349274149952131103744600463648088691600417852101758625742065275474363901145736627872418583216704605604316616379543383242166913898530745218598505064133631930042888571686603868444168550964673413917302968777990872196146699984399211730843089219563380571068160888680400460160473242316283002329240024150949071220407104550345678796102730558066820354903783532367843772136125152848839151026016348583731103697105561588957222267041082080803108086436604248480950184172330714400683730968508226787821609972722487760759080318874797474194821248752101341445252737570891278049566365528739909731060957051377595032664644597419534076041710117279431691095415412574327258720854077463398325609206845120140514853393653064045870784258789156465341067752972235227096126260250424355605280236799954158597375523403322117718658384284415998280931219471236217689071278615149684426826823496726035872722733971724656188206077193966865534910064444640621935409100894380960752334790808763346470123629024095288404665687600015260653358831763074753045943334016736257275655852667325711009507500624734500544662783363005366482114599088826057525237261743331932036666571107269691990668704259079214826389993422000555572879915171628087384423886103639993827537880981861860731796899791565303078929466483565124633247554461844316130706784337868209617058961941238529894325488092813476693006511155684499273627541751281846745226717119310195645205940982692970135508482659869856811465358224450819517839112888303514498533731022584040331182764219245527564557230857059352114160369850331077988846278109732341931675233422609875788692708511997881175536327957770152989671301181311995588790271719114764686934790225955807709887672873986522625436544021492946266161114984899473647482880869523298965646360171555186469945193076299940726178470789548211036990188303182558256000340223814695235242867644440286274546346481161534083339349591390237425290478442317711463132362991026158068715121157687528674953183370801985709900614245935604584279315151299544092468806996503254996617611772158065818836192871430172688991111814774595870475923482193295465581941009527787111885947065994689329318591391864096997200761904786990157206098406375229512312044674599808902337422052622656187811441568633585409682509907577158694777325484728098304857299329595981643990518153408784117841940136411838994291352093285165649030632768227524711428005302063499458526757533220025241929222820821302782852668634806352815548496887275839049431462104348432484710560556680032936571189019507768141721333543916057145948241246311897018266047906089347940225972630435781610624052203787584511704547860164321029492327761597869164781901874855340906640803903428021983424959906572961631397886056160950518602131386144799892665964769983234401541871971282977541488600036452778036478311817506165356924409329824157803082395797022374425894856527871210084328984873861535264069048487077284729555193925827168233909777688494857680009574814303960166373258257464966035185852270772458462813838028786906220087575669011166904725795585158626811556259244098712805903327873232617550195371464777230333728896333760309046997472647408323086260444119717372430582976993689427320826211992538611058655428660341682903255328742507623958968883904600907922241505508605768965341798505143980952277710916062761729834505146487276373532905102692775297068964158257837769140812750580540886018613017399509497300319295977465331797468965979606668989405987548599800212596377377021026577503203535545767502950059479799015727071530204347503072545284181266669384776444260809032590683429526207510648325311072068757622940329806563389375156507200354583449716623347916267683529097358259167097370220774658349374035518080001026938980204823271710419389286522532104252279075167601085245647350079840936032748049385807887940096355309747992392202328618102229416486567625540352605546399850660960548097872672058780415214089136863364425601956073311453938021114579806626108173605169281029023178848066127749569161517135164695820263995792038552529033951888713625551831699478023533596954052708630312520244720769821229844256899569213623097551214399246016484522896668617202086972590153622331892794496841563337324770283803751465752738099783744110021344731032362296015435158575378650421269812038896767953934004713892757115073362648103280706825460063142624000955732843648328337374627689356049165413960346878120572039396170790264184915876300605345686767730566152764073761958514140648212055036855891565955908096549397932017442550664261950522479513669246560336036582148715927852357544090437863713636887854493383165771157962889273575809171402721319798224290041383243409039935162922276043561293210331380519228890434505265015237827753846747983665947975139423473430848418790899011477358008682074965228090253054795224134920490806538464429022524890644726299388203390193593330036032552360610803368233900976224290369007555821104692152014097234765258477723901673275058640969756922920972177038008107191488971425389497126786495646825585050176866157635945969289204343868526204746496251063625386212263257111692719763048969693944651978224105350130957124762521060945666341463061131742924956677328249139501698048537730587823680585635826081044681877395843874068360444796147702120175194838258676985781821950222543201371024613705665894206812836564747857228890550942303861178784504457676289977533207210784714966130611744658380885400171152422694873832713040775263928726939997103565929154533209807569980131433089558825108446053304502527715397009752402146063470679138540699005513372153467830902571785197235710369679115343662809644255888490917213634082993180303418099199230344635096710808178208698653350751188423281904877735978598329882694609586932344360429456050145724576362456453285552207670278435203709110377299013740950545602706531994637647779779927597336082304808849154960892439730924164421200994960133864019175036053138951759206036932247154225795060677753252112987739989024858844515120662750313766268067607076155789019593483347981332029554563318441435481017087728382668325108037140039163436413477814330580865523348146634998726336524615762875381490390365555243596356531144004166692907430664888638941942000643296453287535009880884247797399333044892812838605857658046038070901046355460027689134488908997663074433281461901367961316629553252569343645426439400309923232779061417931406947607969780453169810962553913683314932818782520314895634467649370439309221011867417762630275150654398556061254314583340252227586109302798968978308661082698642661665242079854658005309415461271771833003216799999208580843060248934363192183840550945339495804103581780159303775513622982713692699417298238443819824010220843671770682208129703583399852265548458393129749851979285255175469031782845336828025578583444756144978745603945745174535854460596578930960661451314623521620645140044390466621456103791967465671252991339796045134159829644560749669279393541160596376653059271354214558075211159568768411053133629011577027883633155012451589640283382718924300393530159353542390857995281793733993293292980770133124642781371258645541206886384645296838952348966944054838511409739878560497641224380830949278232104814139858781024241307575848801567873519277897249254286032721489080150041318106656226133327291461742913386846617377173302137115445755812046643235831226386896976718152905702967625967754049525017022297771048909984246917383846149532122183438606805882833085521954098204934977080007083818540244828758355773997831340640137065268167290977779588563043454933918724181007301094050104965151854190905983434869190593730157428117489751566931719339068580736872593226985921517802573099072971198047171365091450568337787767689517635354084028187772549522465067013808177342079890760124988582246401398926842012975157401039730074594096402740239453256109925904084264900833254730358232431402609205075481544236443621897141240347104148999682741967006018393539579194403079260608206602738414223671708981368808029372698207528200609234564417642680943639267054029370912900090287244405979443155110414943918539484803864309152555421924501767214273588755061893213583263522372519195359867869097789751712449820209275611639152349241694096873668662176801666642798601715102944365250925158196376267001079311443454179688936707669458014091215347119256893216507036595805591638859133565577020735427425674361510494449118832666154654717333013973046857017197808605148246008476438736855456586129304251877586906736927749884555417479112117488896918325016824264446713133030836325674115730962802729427090245137791400577372560993056778789178970176731778626055215565194803199807720293770882707436104489902835222846547962926816101125136805016032055011784977333147400873589413041445822331349699596564418438085545472190586417296080219786888159208834131164041924010268705479542519852149288283413557682203383993623407499360677840349878566953446610674638103110948138173984739341142741422960799883523732614573228362085137117912029274686521711638183760354540811787437979695343999271805065848790658282735540907630932290013667606578518011130666499712515214483206562542334629419107028969096926861866143354460124700474360351173150932928162881436476814784265210161320440354807990703033668639446688768854665470697873110425598536227524025673871617382780900095934227299125457436037937024375283494627082841386112841346581870476882825278902119468957960082419451375173325656128001085788424738792258243671426979394442609359331492712774353816796049205130730755551321734983086049711543277084412492199537199892376099085851924600501119927524548041445969885010907408006448572644790604678096956479999455334333988975187933925138585755505657435319669671857767287828681829596021646424874032468630724994091857061209287952111404504708830796576709318069848365934935864166549759844437391703780845340951910697254990549436262405333790608781853666112082372019113942089287994460633975976818135737097607288806256696856002359757265496027270740885825888045344822617697706908413813188253513323656322747708074300500527371870721860991986437184414704147975974474113709129310088224448930491597770619620574558650427698716904563391136906803853365481778166062065335672658105912961420653049242333489366279009949797531913720792542906834865316636769208073436190945151132911724476766402635983394210961947308410733948454366980651543030289872768133118424269978046029968147632649284397463250301654838101307555420037435530865720522238416838537034269794293624531211263810930350235729714566430648312317271284933784237135506700901887105253743637089656502915384294824559379076165405956307922822243838793810937161755601775682572968592036956510495706828920596610361065596800760602118157029251873027221383668905197820456467966489595527545213005706716377246832856711819108867273711945257642866545393035870077758955969525701200567158005195972307062808635500045754310089401009948070324722164128533162537134062094426810204295701574573202127450642418300502389521326657249496350633302103534359723878929855929942766030884208122006514748958590669783318838598248644384559188930338033593762119180768596003091133951292264937275798104623818956240000616115565724330812157618453445820299964267703976140610919191901198291244546519125909184648994303571160890269588194924394951558474500534330210205282892088928686944199400156424597918085867811314842939880579279375083601853174234125911770056100184464758347907631610771793369123992558670971776094845015687061766746619790854403493373512774042793242128214532698545145119001734806326124459524900324558396121479232772658323336563909431994088219666178490840040604736087280256520650619941607008692951907020431677553956700970225075105417713084342907866481948832093761481269102978155471803573185270390738929540187120734414448892255254324835415612199380006131630221554019863466267031433828164591329737872060587741289192743152951734582934066642682310236951296983670312795129235466388949965051472095838855911762781934166292813916712139671111313159160623212274963073027457122176249103289397776765823097846612165706129176550051872701584302832548669521226096158599780979498222291287652508678767898124794404049399535824418922421914571859424255730032701874628997489974434651680779209887112063234335497892134601489763348652345610566107756149122679551558043269271108580297384576370841988579052299714307156519199312711280918583951808568301634217806605444313218546085392413320223785103319892683710572679042224042936417215945998973037742071188216020374606275805997805371110457714799322970571750885110684793366238198750039740982078296640752335042014860241524020888979573106090733820628695888666792899748412627436650701691993236296679413152656109005049532111505549954201896590976976419829138352921737050793677283318727132668228083944296844646814974787075654784954533254985019236408075407588325440092228857831815628546578165097765995199562058939997757714307126474170658883277837732417513499785074479619209110633261354346302705053560358990422638947773947906468565091115101103217656213110999802719918520214211344445698156075802661006491381519653057057196711369942445908206519090508321774899119558671610941330445343752038857082211881026351244711039181536308723097717473757058198112429856804696093707308114435615664721212308751582785644961163920458786552175007824264163310640490814427594787465818356122972054520410869391461456093418817001808335117455711287864098731736180869411990191058397207530117029373822025076777951671605813268324783643578824493225369308735148526021020925127909871835910967863374320576888082007167608094476959968751767000077657724991908084895552946731548739022512729519586571199434248539617277297247320330052664006846073697908569480094589287296545508277688840232870377625259954343744195903664931900774736152193980487363061814332207646373244731928138836031480653878234116251388068130991380614160995271479016049935353215435268784056294809127134614714574748617098038549960039995295903602895202928150676172641864149067680640111281671470468814704439056044654977548718598544434068313618034036825878958717073258228665382220083984845973245832443337346440967114317303819593376779536898130746322011686260480276931748999824097099489579027735897577469177981225768024298731440858198013280671466303582913459425124814344282258783135841002947480567414409855814970180731351372276460288218697010504836487235402694658667460081053498756798160433445376606798608837492061971319920155431707260042324421107206389806655570851329903963120555247662176067433185163255220389763456664895092142569116754491188103622410405336524346615167071714061148149726805859559356862476024652967317388060216531628377611254086859233639580870853149629876129683148461236006855448722670581865353072930834850030216640214201907309373968949326436173757421126310096531482459511241463672983778322170808789991592466710934253557109246161226535458419240267381168669511917401435962245657201438284426433820401732357174193730314658032183579724552580019699144078290450091800530367511963222904591409421307020510073216206154101943620559670505147716042597869909479092458052879656738987959688639206957987839999123978109210291717897083065649152853382654074151960095744467775523452268920764405123213327307481996975397187179695343433281281348769204991419118581309686510649483048295105564598741347303425978967171527475672716605069665825622779466536227913443441050641181928209625166367071629077045760684351635964022093471286522931660111383363030676902405576715517809886421966096595052949856976430212860130947673594922187034157707104300767608983828252448881566258903921871370015408696970364400825049814587842778108827397924732573514924577515528476779991101608812706864534229756740843477284163884890157038292313078071274226474525503165042731976263968430613307267047071791815404253264602299005825928686394819149131905451798598662822607618088076052102605193392301654940438886814909583762668680313060999719870344786015345096818654925884737101468880036993315075563588795100121838568416426917672491637782419369004166465611078691849342903663284691904261723299341967447732867488933876058640391314408644974731798183135606973785447477541496605884670307036188835336131826560358268543101842697090698086069548280930426984683494185896612977989615577914973058393981717264693090885484662343639245010992226755551765900805173827796545284608370083863591266209232478698250385337453220661635554104304354981612634399762497649895758375729606028463671988071777931531969298743486758596419782928462610033650482136146904528361887043133258367390315075467475548280869097054608006851386110986640099018741639787601212897570860197908894486508542184185166834174481042719679295098483918152085985745222392859447121799166508277701008389517092380526118810635422011127129390357412561269106175735372732602890786005937975054461617062956522740373533157935005750740452594690447195739994374684933858945786541268646320301628196318608773284867346415401811635010725224211782015950726616930388691576375806329614495494099170520666445017105715737260968464088400184657241081638753148800192600489731544878604078141089590709634558781072733652333585383607341958865870984625788929211629479441194962469463666214539706547300701610874403267523617400379454620499252349729734271616844748870908381608429375637177366270986715020434843665207545395014531174411368477309542900546272289059704070262914497645395894386186483103494889421613084044729070408647378752058611972611204680847872644313787103788589583135606654557705996476202731898018041019678024240320891139173758375453685394133641410533448962089898437946544554778915999973603701508946189818261911821441435108104313885645622588815686207271815598052690136999797500787414000384205971216029998740877981148729983372396744687868345463916414583388418457860194016657491520891808755104903933873786687054587696679758234414683041425521417672021518525788599896759795611532514669606909689548501693227191348797048395647568296647811181309126556962520025027932103150181008510514408933094672503253023210345071215945162053879778098811706075868018191239919992825552977735818887466419691586028581605508757291726203631854098752248935392308909394994318904521153328513175191562258752784422099387093224000950149389843299698827151636520593237608061820014709484448047037171686962075370027073393074524732090980118483195115275205310219238660398894486577354171965907339178505094319438585601781323625500187627631835403505123822344401831880132634386117030772153650597734297967853838304520871528239834341338884958524041574541334460943955559450380205439974361955606377462003539912675286256875021492369271124737127017797027306116144316102797771390975051798632509810278445765338955748019145032433111724426383854157747993054455539877107980409332177424750151501261203151701942577223808308950592396791633020612831784294970577476773015584091266853775874186688191061434751944747503894141043088737894487354582924913879608031952760956392457986106170244673698221762426036610183484436354780738594532992265370696393300777392236780524276472951795463896747613630074969704952277700220438328508576333919826825041227487485156986054151124918929106064268837998756183242361778380474939820844277955582533494521175108641703938965808171395111252905492196124131910881595722046231340916366522177383564844043767076810475416589622488642837193064229288543157614478996609603195618436066840700776499717684899945530697991679516422312879473398727089646529219436030688921876884598576814743841756351609521453393114957170576306775048480253986252799192236680645635645670261788280819297798341566306021170893806112591839804351890906645402567690863090283083315368302561051675874090640456062604212783900424962597272568168622479424841165122442769800274911942523466507848833697590936866986666678079913357481828057044920350486982741736634190732631324726863918541052222727116922092324739199392116065796283526430744403164079242668546121708481087438933936017421033041456647060238109759044402532807459300935387704124843830394969132467610034744745130155008612836372329079532313131699748898065364068926226542614106672972012205886530105842087495097784712463091130809407065780386292878752809028482749023527268777156573027224136612352526435321463689361141233556098056644457570219910909382105772549093856445815205890630521181357819631514625105194412162336857685861508035420045037008502129761418331587402533189554734652573585840727530936257797973103435614338046268816245402958385932167815203292714927435813769000718443577998676097800958316740044659133175902038989558030678005597905287466748344658592944381558677037128319372219612268061557069143455859679250648716414203927094312759790668698538027671859306589106479313781256896508298425288130955433764995552916335671766593081299240289924567273174087981216879822892145688632474196761657661199089767638823592012159508056611753063001999077091908251558621120765891001309498213873376529601375257427095349500658944600351732663609423227954833407639206969314920114217012192403115550091004453587504190005649463801428594077703298021233130716979662869700616153374026564008120137085058160308543603160783812686496280823502475108548994261335961190362741207604709551543370830809545533290337235365747443241964699368952625442199551134850853517100356867672525701779621915112883345762711982815712075624352578837750734738469978132847901718052287945927256305967806384678320377407652799470968938892565457694481699496207520877441132113527248753643543512686634581792776800510714447555331431242652740106484225452645499279717756041364741476726066443079518356590720494821874039739853678857963215774980715133690252292628488180777234137813791765571849065463946819373847073710413278438767954631211114976163298990873283651293694424406760434817494018032134284593857385481921342095662998023788184231211220950461802222571778107411025564873158849414318004803021813648672695780616091845678969231576304194413433772956020640007196112980580284665038116641845547385677241607159014134687299406929314230293418662141881716795627276523836833776179315290750330377504544627572527633960513875674965819825612568428129796835226589094482265188334242522254252628577292330857955387192636246962534233018228600720194690978844887937964297478217315316439478972898886388542051546538584439192647831223470266952144697850624670555803333574102222515051499336320966780131014995321044602597956494391409794689937581816304078346715248246708457555284521877798347789512414320342657236561038401151583468632035736668376727191778620193368178484343132778066396061663491336326897685461047118623341782353957359534904352982119315582821569524974910179897249888559511276923536089432837781210604806116630191500318269697221691051728712805469232736006326050775596101365258882019007802917244003361120162489767704736052396397750543807204237985479061485877664693108231664189835218935633183397707090163771344889583455935041260586270288258626383421360029152105278408660830803952036641397064921061768330454980803787107255185573711134439533391221924429954937293114571636008714927140045427400573572117123634890788899607629805961188510773476736483125367656074063466458093742699174941365764217772039250837068532302600566618825105018880602643750193449097798288175718631406332178814988920796007251815867757136578232890256926385557394237728969118326968856007480436065211890899760798947174080618942740691405188367854278832359605060821909627755858217004629851355264249747669038121410772227010395752372295708768376840210007908044772451939453153649532341705349055651961525755105473862759965505429272509949852810191579356675411265374293508134282449097318593141990953385223076558175176137771727365500324789343504854096883442653658578473679008842181975497412661347333788265605477260653524756103333905686761997784292914293213454257794781279490061202262271826575309782123472502789794661633918636316802316336992816646564273838700632739094085208975352659650415646496678998160072110543104154882210023375514784961748696798867467343231375894818895522058543592572382460532737554981614750645514928183660562884465235622246667531846684798231315006160512545288075119941038088646778299203756769762115495086449765644049231007988670370713772280381733949840043547236661592509275344487993616720110145368808862614352463160210761273049924813361037275332327953819836520024557524874866040811032089865336376746091776103016582900688392061681864135253934602040490961386925672569639852601558328170212872459390143867936772574530449403838962873798773626658591360842808100347605189723060937352255363326436073898763095476196128284940034563417049535490809326712915912423527247424911697114458060298255609412290068029188934044396893718141223730606963695615960519384445386165377145764935153844554708980295693121560276632406546259088601020075061200484552519144532651494573174662562800896946634656524730572953981885256786073175611952965110818255085595818653409209184145987758435203213671295985618749562689046436037124060492412075274301226277486644641241474200220261891844773184215265810000683697095072694985159085746065403072526098719440863961159614137651949108222426288551924734155353546921749197168442738592103069805668098664168947956616675694510506244669548774108036851065989969477857797947222260263542282811025746592586565561107740556027873423888614953662061594203990424988668716839079303726436815810386652498975475221868715400772089891655018075116937436426156331370233826280397060725083872838867930164809052489794181794429713790236716791682332392100268932062624966212479345634909760599337793561050660885565358234350547941213363785976214015810135571793358927447377545508301020245769736005387463165350616686255477905302797927286203935508834105297509890818662764597175661063097421032060930797806857465486474694760037333965723394968236283227089901208562610247490347867518700034200118998613803941004703431094213432358959366721522899750580180759459302579952656326330463572386670335906779016116840118024626235369883937330943722276804715372247564451874736784388551229693594652200141190243242328307771768801180924971276398520133426208327676974685642694817657859658236687529558849088899160885505346783572531483124944777477729067436328009128795975997534439541203483996251514172634306983497420006078006793619959585616070709640475892633409555533720667152154724147939704828155184886529299932747742297198511564979083894611324371751600408807206431786278961584897440419570614030716689940059214264660221136517809189770572444265654330046073135794493792058904415935913281253609571539295205219194809589835648444055575014413186497071922341548013481910341125454495926237829659749459584052094476822285137705655262956797867665670402336298965172620830142160918404777126677678009575126620158343621926443015693303814742859856436625415577235936738109494216753168927686442475995211781429777864778239058539058843007157389104957412865864970867766281748571351938350358713046044130161958401876961047349488813555826582916637307167699329832987567807854282632295652169018681348396119120308808026219486525196183108320712075864982850476118455786190016878120626334558710910130339836191003526118983840400054178752959380644428203404811770772752403792194669543511468435451869809274306827888855371572775940829159612953606478614226842281920072880889846570606351686888313896696578778548765690672363743458003503686012167256459461726031511948754164612487420806583556480544178097694918011585448165610504393876547782066836176214555766897734817908377136304350017440770439732532285245538663288123852983060124079800580574925482454560415181348750490166338036743443225548791539740161382730000457130594747580914005222575433703737417885934821407187779228866131204416668642178231816327722111934845661302461404443883780776940712443551707445155635786152125410081235561275596416063373657256100863268410634703695676186498205830320370334770983199637907917256901999270620745965999912848150608294539635177132918392851204574021733858067554535977400040839880180289361090400991632839337409114126295427988807688728622233214335692820126599208410736546344873444172785839909060457743765683397677121104327950074927987238304134644797147781413117610139913204611307026652965088953011060362529531671200711229841256154315935453663852235595709863142025268533008201950124085612002532459247948727220572674009762871854872171894291185666530810046310792215140148412936043789746816930094889035276758060890408364799122750618583314962900608397489389240979838060417480266654610782608229575005629761027073758905586693798188915797940100558689931520414160850747707880715810713176178820291944474442089565697831918565960227777542713479071665368530937010145755448441121551858739976173714543955084223606749395757251783518993792737246120565891828003455334183335808815411967684224191147555116857363724962384531940746861127363394279567513695530792422530044797976530216327229542675859966257218550857412752012980567904516630904996415633681898042351483393969646448409266033205204426549971038531105972220985858394200948024869508731066739023449954868398276585100563722658075497556975518114485576347772954975311148318624649192461293577163132645879597316708784863264386704619007889268283196390009352159346784619484523109412523084913943227225115872394700115406347743574729007975697988983565743270316767117993800140444575255207552948829219193847729265262376351055394337178760480001433169158398652877234843957226884469980518921679584982199507240937191800112246866819978687788524280557091767467497667186877072060937254820019812868842927332943661239511420285272094288946233573898569510921493077616305035036440204358014633550001781309639966674608645860458492667206427419141146177682818286115340223065334872112837802216940200056875524185131958889409252699598141310842216146335242096210275783588474510391143216922400361827002500940798778227793563189071092528575113088395506866135870511725674702566056754271297643123858078219519767503294684564188189308904010854601856623437798970537140926828350708347386574991542806812762396235715810363889922780646546070376336591964777480802913628768411646983402583681394267615684475689833917111348682785258311767376663970644415268456215572063143648052248433363663675077407703878986932184616634164657334190278634286259898840631278117996527008350954456733524076908968466814384768968971280707742081574792774371678489991400756355774803727560803585400170796647336615904136572297969978514408951366734523573805481961354667563106505884457176611810178698146300891945777030264139805578144949369681347423400576770891433867007160612674985223272085958093672028596780092300375394534064067390624140541881631922752293292160495607348831738112488672312751081239453251982838474155374115923490754602423675266997637642450294034533483860264774049252704218837739987607953036934505687625080693228359570805586240109161986694045355550537488807371327050314550335813671893970810613354662564802728718541841166495429116718302429002114020900042004978772091287793013340148958330358929490145274149521667905687936532019839811295222267509679872781545415095684516518511049906350273779216819323179565588411765895760783071902946694785410573181415833926970163012528784208008890763156073692888544316193054216027778790972896661572614482733291741028726861000503888540883994399188242253990370634526556708581356353671475101657652683143388067469674631156771109899687918431722639737365481406096329515689534257780719132460426509170492467379697639625650136215060408677798693989609478236014320375777002736077549916804735083966769375362942764132572374864555919115036271094805987986375904341696460982925360671921085945859175312494008050485327433250754186461870124633362947358201955391333188509637336873161586593395294740040073511904973377690888714303924750191495290834046391968730706026740705497930288215068915692214488105130066810067863624789731846303673657571201543578346453615619265128631749166254930278842653059540371413529372118196120216245400444721508683512543231152881112057525279472174215923261002057294178475477826883996489809844001286526713072922927588344644029058046555163711569707904124981725880085981753979046697704896680817204865855670388521696201444349996054977290909887273974263906669258658755980155346487695084815938393783066441732328907006900511876303346079780568604304675762933621122493124547050464557145852185141172840385129093797149122903958285364814780918645934321942475283944220569160012032484011774624919801535605106054516134123839826074246233480472382948847383179756188639749476165587354486331920445807380609819821268649098046976151865957561772595879260392777603446285887999998498459827416756340832103385521538877675056532868436813308833268196906984931727976951841214525121690478924909649099673671410957672141379898174864271560677079229906277621104611238109689366287943309720227559250250109364802168443660902616824191407315952689965851555823194523055021161685212700182438183121055041401368584353837147222472175161627424617796413605237291057490428099879040393758049107515288801543023457050970940777471119698335974725093968970436096860054664628385167014627497766640015697930674069562442887688857473188858143146273959758982439104955468886359259288778288027052807367203306153039404230992425154899945212540851921949975303784139713507538489806197839668856737142649983152126374428710429749936254408858228235718557591572562629041881080130451968871206271982214289895068897771197803378576134615054194007714294315699938993724201332131342350088300830672441230946160525244602440201677778281624885681800071965628248128380475352638490214840019956215485296206591343273191791880345062913513076367062048557821189113997708837141608541230821570705649131474586497110294336567192832743417667092152260554855934036052221627138504818555118840469595388535799262268617432919776541690236029326644057787294603063564973063345302187415224308004499968601606547559886842099505237487460866486438131022171054460610039197823989178971685974978266439259430764810786569474514779758896473010505684049635753316965962324502267315306436465165894036223154596835582362518666016274985661359741526363528926070667847105204164901879403562670917010703199118432464247369115376529993860984885846634205000007957538148939485067894046011824357726982107062765273030049472588556971267295938201165502525330989617248864864716558464763898785500012311334715955088557191211415560673373571328367744137410495109797799576022760357394264811564734874961442105919448753863515600715220474798906489902835167856509213236356087325002135335798646300268464100598934534947342435643287734310027790133780347037675382725588890462640238355083005049228349001844715541673606908000404025334904719694686386030254283004890894400314334210097511266612233934860851188399059410049915624843872501769307221311781111477949245075969531235208247967558604776173078557345304975868405570699521402753283820558428116684872945982691572429825221099597461694016683128199048756803154412452648210692179849417075001373590253916895806304085261870825053603437482140924544811221641169215011942835925441051236452080572567962496138319866046091397846391371719340569958640071338726094976045369539477375444302817755799236889894787732499616259928809726896133902882338140080324143077122251671978965213089524662105371977790467084473147586184078442773124375415103788507782427524175682152453987207910307185931803737824232459406970867750456785887280748461495988844820175046645629808905039607686932669525172893875664791740813205931723950193430773096142688646400158890350042539384924526820580657335176120752289701358707953497742074292647936416119964970981361824948450635638243117742539370104788322901134862032270743452012796382436213239679853619344370654918018756128371326167883974735416218396215098554231070258275703856448968459732520177726056707870138504969755168240112990646817724257111973651408493074719188472652480595708137063401875093364297267844076655020477597622057039128104736735416256933105153924873687990292172898276530358806260454160752812859647624370802260039137939829519114253585221500166432050874287130576380262855224791272056811046636934971027735050711172316975675562938625817854308391932798574240266558962988911590789591771556944526946309281313626229625842782741220999139760549221755084805428892301981738267844433848681611489797194097187988750934668684183640705511772629952718915157714759004802736507493076392753600584635399409233481410899221398967262795826773328391279776411650706533593722580009703126854671916916984092932636351578234969630565434495731154442449310402459513712461869207412836130467673430283338783627688740591676985967424633318241800515965755610674702894934607583847161571611825982079652513979104456797159489486254375622654439928644355513296284728008951309833810865942078876691278392095145493257349238391669836569291445480708134832625137770632673286376077397781320040723345001518585878704395968951027360211040620516721919031668112658650701766189600803972622043098704769585904462267944553601146515887101537953146463989892738495652655296377877713974648027549026163872045970199302893523489088837380805021868097454293382969739709484438101792350875842753452204649716851126420098262689351185293907181480285132713145254664892763637740380189658546818383027830586522413243983757626264186639746910575505726414501023517340505417478882574987087659003316496510610327594193857782544814243919902059895147571674807308184918691505655154439026084754559333299129111260342441663817976770283574589651275072959338537788886591216356077377213897736909728721120922034583638879905295804665625046993430375664681764891290762020446109719361227293162396719561704676921095500724429333881899536163108602279418734836068319941953570077489104545476169216373122270016218338170630471651939007440962916650286442462925754733884324362873357511090017451411203577252469769420072378494797467030516338368600650387596342981897948928642916551685687690603381392254256003246881027773443651484256667911093850720416604392355048814133018588398436762351408001025635326708260747814592966592052634074375790253782470932276346284189929400015939478876015986410640856188725351391956588094875112705527282500499334630133296438135549491238979477559258670104181509130864289977805810013486888307585429567888619906603927455303495346780809460665057800918950399030293070155730970338594497391595310461012526191926879335744150344065416664142621116432100869224626236062767262693920797442850911100085489921494648713739356354750243601983038182212295922052686479727659754280932066971974869746633594830383734109544489009213643460500745554024899267622206950186974308402173168179235502395813814017369275154656257548891591127417380437099879367317963200168119200891755867731704064015082457954545630206155428601057484222086312041667310059281894693687667763518016073092609443487974609262995245711126679684322137446848553205237872923573564668933966730509737343701821147449724799642611760160782600555470033062251992365962034695508982150892505413516979177537817802177558901477126132642944983476560890945543939068879979805321344073421353170998377776835938576460167870817084056380664435873659296310323672365810230716305372966507292548930244728865425195839530694973876831565645787505332789449982068837977630608086538511775287212785899267671828992607581884773438691110448935750500154120473677602593885028661038343954386996689423857125455818843656823381556901410102269310281859291174395158758150248447933197939805681705382238356447483190812216309821203938267763289065023673151087995410149623239023559763154512841404131140926882261678612975533839065529656248648938825888054227530209745898994658287830396247902881371728591078073710570487313851966463361447476589013850021026675920250780226102796894535376762004227774986871209197753734371141792771352720837056074017979451561433587534674050524766193482515666333399652546590980120403197129865478164339692313679620697209213004126626557888541344004493731390008701489031112014278614791712241931397674894820070717921029942051263116370620630692125190725810912278297909190235738706783161686547473496629123306642868844554126994752274705922328446875075989810544143560302585048553540246365960614617846164870412373700464639651443826891154405639068226254790701837358053822909387487971486898026368805783056599168678814232344488893307650069541121447957486665573493567371631004298914122828202662566442767044936987077729214963197969965267560876303559796360207362155252440728657106665968745388779999371303909612284428053922487087205029669610856965950878125661134275910229649712879517935794796658799188979219343382448956810976893886125701645262691297131455567752031676154335414211059528355403040827396243047877704183109764336702827982483677283814681981200883349416996770982451287328411964775390495067538633469900856443519307318547118336605469414262187698574372546405641620672597227119760224504009064256147266479275205640835164549324327439000770591802484951964054282858362774008516237130031760383139303351463034321576757117905679799737613248999093441486478077808140987314134317195387143332357219780161184978721598739155922468157208643906855537481816727139796774617443842701093100907175306298138171486172903445228142345270619675013712785167848661470104624103741716324379388843267341304815785960417210943700017863308045886563199343171736127430679152152036872518547210469769696776403408470381551715970030207780855323132356363228619876690252004628107838696161922120174712755318529910810753509715516645031506537738279637066542247588416506982607222537546834423838150677459503700974615081616250403620874773297145517410978653271888483373968951240288776839131747149711555955595848177001976405321486131116987510765400933225501808193373537844188914608588067614553303350254754458592891271988359085630618941395711562947178976883479271585784677278774387058571048528926013760547477468024829062248670815162014253293146608132145068533351075050184596733129586261992881674603156457811934848484454533176123103975790253852615793972893061718911009763908598587816351083041856319195727562571212481060724732848878360563562891921529473966115746971033714982110500453637995389183926977829097272631014540474137795210375368611069136931445083618012552630005787919351811855854682144280043148766518314217913138625131499497164497860067703808537960982436665793768188291489459915029326002091015484072160150258375406908666418568414249798037982783675048606007190511174832120561968592923815013311752220550110766253481268691828382732666301001906309912183661822678423572357772378896006058004294655386596321444297853933397476992731219448724211848812469634635103662855305405658302463155271757042899432563022238262238682622365361359687258841116819897630982158409278394767239122552436722673382308920327300812448311611617561046241872576926821470214643317411779028980641331952514096479105620560825728376051519332323279205906405666649310810995597290934384717364949991529567789434160053476491263185292981206261391840402712081077500107664712020536544560534629483138029459145720335361640103621289547350633534293802549284701882054273667802484002170195442521114508814147452130671086729618415554727327467181918773648347491604831465482051031868606126732448964345655736554565150421736520987956446561190128654392121229181749437275266247064019587282834043050540116598264755580639577505335312047314255039749503721627474472731993561704006067711027403896388873938472419228095014179704960509698356444524796632350099794834957658899930453280132113666046921991488882211540014592264407036059278300358721682118430492137432422045995845426070766496171405332964513368506651409881817118529579423658523503678848838428290466157219197297550061006094218988972890536340177013291572574617105209595741233738170818114566840595513203797990592603968726663369622836504711745714550032738664423210849555707515318317220470045160210639918086533731346912142503872419066305574452931334851177134886050888624117885489577900165034213690694475310153026803316777074057549240931599957360060970321716055113199744979029229781190010077060936766740556999206617013488400712543313408607351094615129202140941910190129510720059757674111536093643599772323021261768876494785835818451028697731393100151469955397240920508345031907589841917268432834554679385953316856678081797827253363271954580006583689488005298212264720105810106474172644121823306374163033326105484687229967189599218652681009201794115053201691453695907992568429571726821157840668221193001332292258725858284393761420635493242658994495481802790339212714144110493174060116792130786662599219459332899689676700795082176526259123110466956154714219012238701929353863819055465976032070189507336818826643986456771945873544840582012625940053459871343865553560198279844408329068280563659851096839310360532888224742128279528823165217383700516538950238250048562280138579653451982760412907772360815007414685015625688556679144389231604353193924426670939564223262007847260300142631350668765896012086461571057054764562778989214543319463368371169010263007147374319768349277783039273906255693515828537231978109928774123771761677353936510504385811789476442000227072277659476822550841942453444214282535000333423827416183636727798962086491938625697297189488201777666947078073117986938742468133238495175748175179252401948017530794852390380535081698523707114263145698846287623675478391198727551748892862413723036712620001739229798519464618503719079153738281866329236737456229151093885292634891817623884050685167339985489767618934015606815021479669149857002139255038788129127487851039757704054988022097905754787894477479181237651377746771877817464439345833372247670826906304936477396064458821159951480257387187526137426784042846955628056162029958673294906649909941502017975258614964792470763200284298058306954808521842792293911347960266078469032118947660627713651127560659515545281682755091502130028482440782855686095138925169460941588362293451003266689331307839000762505603939962592197824922726560586040264951372972477864191922886001460688457413508120974386805905945811998710247087870593667014694896962464402916398662982121736803196851858735171995047417446437543084217399619754202744549715497621784469143600556898812809313280300698755384174619661881471026529690248247200767421158031237159370297002647810919939534714295723107773841291465578866082646466800447847147005061110076004929381421679461231617329478171107542314292644253158284048318759665051013632300968877922658826038642272145790340889652286712545697495514636036112353090329803163981570434458377298225400662289473727768743724188693813533521013190726405512553776079076767606149610268961715535339786578926438381603865141895749418266850023478377933371879524700673403933194571338052804899212492331040172974405855985812275079613240308195577586116847008806355121171097764415177407954107314694271626515341904391473240750364868220433759043323999540578683565443449943693643077781517453506888018178299886998136351873757139532252551806367383595316346980071905034465554717177419742119418801928391493087152365843551206295576836636942405694018260162951312528310706728937806884107237753186728164012409209165751213998073039714060036088922501936434971653428161165034790708088064940905443515136967532409160623378580423625950524382163744716543549526991739829749337997670300611098248161742502376460733382342332928776792680537391395408964510610209300545097107913100376309020352566444732524994690516059399848174065946215950229441935560246651037991699392107896010668567112644942117387438636056828843489000633783604185712527575079666459521949789181359723922452384086093339135320632094483779944370490615629704514378738828983005569573233617705127715025757666625366313707344759148850342816543100001575738730638422008099531898326910432417985046178571410878010324165505990567349794896911970729739440828229043628611112334428426939490928746593175448884541338722929400562526808451708038998372490215783834857771385172810443269705639686343639276856294901945498420290516605634108658776499984512143130024657355885974383713570142244423227546764674035133237050064592129189122348008795008999694424508941730576069524298083705582423274982756296148344186869238706960477833726525644707551122329735666131831302443163857814722266127603210902913465322969621823956778921962494191699966087513113670363812869562394632596808936779015748838550759166114360185124988577858621713844026633417667942614453103783743647215431431041809166063398822914088847217713922207576330018538518833590589758784644330934628150517891939264576124204183466735942885672565440267068024393244363470524392163208034307188378279552505130039905849223508349345608347747963356659425944766103274460153664065115896263136753056230132373504914998874887358068395133462639315079723251534176373845732202586749982048648901952334406636360574674646574129046570434458729275083304233357393441440390106326852545553639880638761999794665320607591199714500355180979288252747516676403011469439846303484969403856627171548687695492746765643740832636208364170382668266924387179794464317330562348091736882462752288008992053904012075635498208449977799763752438720910057841448861132876068061733142423680992724636686361457213794954548767374722045245601236970971961072751681185594337730418159110097210233299567338087638523277754162289092697917015754614832688279233038883035353014111757548265885755415214106695148488165823728681188150434573518105528455489238393921988211145147906779622731631945746619604140638219719166176724948539177809711941909075142115171478665525745200646326207569455625474082531366976366700289909863957723268149438176024915074615104480092403708233288124184726090458396421058931205909026186029224633376053037840249761836451897441500353418985256875383736779108060180102892619968869305620162630874001414182029191341436383525729492359352685988816608815208164780282324693558991559215433924791289586614165489535988509551732597917765246184169391248230305329220786995521991310778064843573136605594877293735964661347359355616767791705174065247185292122780136382793324132569527506767445788665490676138595180741460914929577467632168537734990295151510483239106167963592327167054864059482716867271199473473645023477345500741858570545171956770688325194510177421111905852387445743297583288585383024869496555449776616880967255187915682396571738664592549472935015940431330688580934633495215865726971071697075406428677875075832881895703899528221230687686486096998478864762720160354497728135575416515315828897886040255848304196604984319557018053762811071889587140037440628882085526909081164012710182365005505205528376099746431405463678388730181099514798363088486689797175041748174739739458666946963231024473393310267431940174127430462872390520129198062312725851655112667817573051169962008856479074025388870719753300173853275876730621495425793923561724656610874466472684123428983761164337077328211588533347407934142578713005673615737649559058727949460273015997630198482015522971619308687293247313055163927479583887462640825331029799998705813050903502123576621639043108852798730625934733471569915264560319178780085928469382863657466018220139143450121704795322541186133329783844650874354160017360968856426237603112421740986190675902397519069622568221572552947971020516691901983910976679761441968594883894343717375129138502281681675810742386157841379536626652836473775601631031765600463814028842408909541886012073827225194716656069690716911422863592421589572785158429128140309498240624891413172106658274192955348058128652826775530162629515677101823208969038675532871329609862331318255366826237523538996584328143320391340180437036008163763815915381230413046613241607131572297647525796806985293800189700091832312654253120070808194535499853638814772485986715551193973643224899103301436822882262582374168740221173951353279721564487699410279064686863912299896638407930087953656593416345776427916939487494973822792885030495720703941750360772616206422311703886909059168814562879306628951871444649616158399748856782923644277010025373106446896848471063343989832729440300495378848927585925700318760859563401611329642717533765641908687189088087041489360762608051886169374631929351182724096654045168047552076105060149825010538268685503629762100989105887175949051944800096592627284435195012853351856881261987848811335929787999646646475297077223319204887508429151637076004440171545864328171660580577957613327344327469890636469935813813496668237284469321022558457014729163355562976111903888507186971625106830003870336863743565460854188102072410978467839365030046157552923195003789206038072533491801370175644315092331994680078490400209572031302431636550597087402525504780303311114360418080287712055488637152034282463264577983904386854511571741621211552040864762555030224737921417767469921605737653726044836836904213312081211751435374787609249388659519969554787194884878578354027021602376472971709245142421876562015975468575886558868000637432719500993432925812672510919532249566518446314876199573939541619508356209692498974366274068317234931208806821723555323851389154323017509703434841427371847053217658763750572672687595555576801308523945399792809110745853951519650336709798032940266829852129646137561756383401470101207691475402867917867811037316560221484697910137322881215744827579956290885215467219054682297671738541757132377353022642462166645853060222983499049709259139818751602001858179003294256788710395809589257932282324594110441038201777309024939768850852116641314268289769016270810399174603242331978256639263453686841550783470681145240973463152123963495507008288254352887821859264051147389587738289580771201425318170710670707397549329360196634571980150646498001799367946656750607973202574827365122091815187238729278259824784574715404356386436444826605067042098054085736282187964891422990818313626250306737268660938506732805659746047939331845207148254578716678900163946965819033966808462368035859907996530611798339596048647660372000811723499827084130620126684224952466856075838481396286153216729970100190074464219320449448678392306594351297991922041357828862732806531395947030500019384435407798278463258142609733268570077356664642825619308574346301346990743181474962207695541912954865237729014090808126915813200114044702109351006374149707071694298634383366626122874049412363345017564544403079030779650869981804091380564693683087421780179288210431964131471394964488856457531244315328319612244721617818507894539476091832269140622441285681763800190647963097211491088496065308954359493593766658025235663037376558011775631526512108575798502793747979951235588540116384720723991836090989385698142858130745961534655436573462739302885630634495903088279189442816057137588587030022676966273254163706634944528108713089145810346144850190581210325574772253031008589100694168994683073925443422578297029939077909094316738901456383178045025008931733982858214697162192183402850957584941284992235410548395876321344679798573319413063068490725397885181726585846343242863828024084137685748694216190313201111008556883879618208835153642859159393357317882983813022975745955175216160210277528615177761813742848290905834865688767713622477458342212648029494781109759389032418601015834086185990788331163411541365787383741800132155164057280534310544855879780726223429883866015675716860757143580444654887748020362746857204360674658021990056029586064450385774307895188189819793865461837220124554676745779133928860554461974422698918982831609837233161269297327844493451606840641376886685627683466467164010898170060419218512878232270115821463837825329128657913556593575458331565327058903294029707549763246160958780962982420255746304320355105362481035076834787013394592581801094370425550996975136345618161070264876544803527955511280439857980490372257985395736899901762155624273197098346211309276179144286957311667956141706024379015916166763027598032422817444849416462545878345288513864838755600461672270619847819304461879546848991247486615707128196852375331826549333129497220009433258604399779953563102032565952981260764858782171837793884809063161397614122066121478924692784870691388222559295934277853839030625852760350338088240321246836189592372428772357483928204204105246726499724134845558548662213304787131613610652309579054136624695722841100175095975475902059903028968839926216359539854586078059939214458606225934678755075491438801791564401138872908821406105374483237657241972388597329809211619090667587696828140190338122205252680408707289940960271547640225303178537894985996061425119954711608629374688749485164324969907621366214690395674957762779358519709729098886464013624127332382477366182073052482070596339275945828637554261535314093290765590080274070482121305707851683837557262112629856690193326906054546951168570034411805328809018202601711942846922456028852332916630468480880597233224742852534857882666260570299236863657101447382510907486721023319251140133517824513573816512930791806151198808000242908076134124747878194901298529029264227254151840511159430623913162128710474354999456849256578775175551098862679519948104008581454429162817271410488989437355322763810543473980338749146777954258584148042277968921701090356772876415168635663153179836084116469254305364152070364769676015570250347605722619820626142129318970495717935186943925133274049844424108767714300417509443243358144345493794739182736417464992589483864911245953043438028811066868168231978447794737519392621003425476727987495776652112574489743159857335305779810301702075722483214490932985490178832239633386419037748672949253492982704918485360536929632169526090471879784079071249668519367632155442413983370718875311636606655084090750254721817540727386695501481502426755794307666050025609272318961962417191356981877307299582837271042544302585718154267800810187006473600378336987902296664613419470589887375821726744548156046053837180178683691913841824121005689896710943726358676020354925889566273022548441181938449571301616221039409833846764658077216759915458666191276245264056084107548170303807972326011976648996480833782843871509532453626928810579294631114101800614000002820871386559739091700588004122579514806243338870062996625008591708971516444041871789622795627977557693399945206056285047181559440533247912348562337256393951339992339567983011611859169694051671340394987466041399775458607728285803794178462131243304288026620714170587378297565340532360721375288404522216434207799905065500603017184507756854273510740860712744295103327696957086213113436907032680196871364982081215326237600836993116369436170078947732603649093801516475666364258857876776846354114391268628400913303290597750631074531747149358869531049332321722957089564968190994993440494272448843127942381236360486793562860837966017092034474636800449760090791751357274301967423008998820812877176491790746892761004983801083575871792555547800429300818666004394257216181514818651215810201015971295358889679040894335035178680325406441715310923218909766021083912640164619781306407150796365392326316053951668488757818837305851878715264772815514585171919108751929042071380309637624352136722160389385785073709885683290394055556378729555299382160795133759012231317912838940101247222337904750025434313287538768747052269863414523940331743736712578964013642607132601856841645268255054779918904255240716695232134526791173911014769768359366232149296120540791544974498588829532300634616166254095040958606530029912945445827811325437352646543260138893559343757685882684917588274496863498898227617599478005385986138149122252200550450874474753636135042786533758264864864608765555045844095140360537310801247047494326939471029102949437575641004369985858361395697869853863749014209389497086867782775754890810424929978972057920005187277892481844989904205067102830657803592086774863742570891239965296795705702448852168149632507322928084977708562606290206052479220902135873846679607393900221343380007462436553651241619554673129929655864450881684238443536466706279586171999554772177622728218783292709541144861673744330740159730618852972046631136729206678274123234550724629341507707217780361619406335287616628102620615698575889265828254705446549964393563945192455311777242458339995794958548214188684024892050889843969548144643101663069393461110247633140443624972114967900853085122187150208058822685614123261502812561697028068211733336279138362061245892151575792020610529994789259233823554942503925259218172344394790679294217474713555434671002198635263457228362545883721264456891512077743488701922629710960346048518944533055686199684250609692081512408104507705917891773383598868482064633365017605497601617892026628596044195509216504926293568814729015892477566025436557397310272773712800502660430605354919421510152012130875735973246575934422095200880389188838442118885992806014949469639854776238464281565694931729628535141477124165604547399781611328782454977229765653054823228535270256011564803398828308863734758564584597697131587172850223473596187402093030100373217082149505701520888280707255844425501175241294192024732639038540046315835776301085458671461463194141558022742993910316259246474107571278748257335308453293619089476501523052402170309970829421543270923202271910816053080543332942530863547030776222951602462831128604864460602033911047120556894737600508042256790912897063507827656587688987747129603326353743789508894534769352629488894444304538577901529843253263140870616681402360221325128992133210490897288586149230046386759654105342558129796046712624165761162147734905525510811358695500211421314968087760128996686121079159062905038045074296650179003905521098381104176041153176172691611967790170758276013588111791860242920282180160773689463957507815029167756851527894420608709953801140855494576000946615003434693364312964510346437420011369744111107290521704478690132266948958872230854487576683760695284245271896412681189493415190356459547562621721547799346262529270970465932268132556324578567474567299993393695284779639114376710475561642895416727309665071787069517541883524550506666909697831280297502228933381759037778123323011829876180020209195327969669923092681232735400950132639383858366840311679779367282526620499278718012293443793119269211745769014274876789978148719079536516673911862407546863493077002934011034575167455712338411909144726005209875818006113858638781340685603138193211152121551381462893464202547666556762288634583905033374217039036423672093159610177048941536865949889641790429021483319779367235560913737118418681639006903233060358265676781955512320578684791672614434559931494487370215893698934595581579629266085990688403776584241087191105848989297895109108133969505934551925623208692013601084795737368777350110308295674315912751372115472960657801892664030518753915980587679233511262875511268422779326706528413190462707034466038417914840026994453247577312937958120008642160675690269304155906569943843618214557544435175526487504247066246961470969502380639020616198298988000764943288814239850252966939475616351287425476035089798440358318057559298901077206093353714098078039085216134663892418086554354609381810867169686150989573918759017559374083486520985110697169152063603237419973832407762189445818907517967885291440480088331402962391260645993643793759402835670768094448818176740101944626881887375100897952657447604728448706879655199041466911294867168570081216689800073544459035714417163089877264299106608246591964091812800800393183208172013665395864935745686190026578692149356588875048614733833105049802121412032284377759901493390695369704660076037007889922069349281868079875662423161729615670964110989683149628169653791073866756063774350752807716668253148482021604679780542053656437800527807527687481077849702230164407786022786130248537339103250882406174441668904641785640583607253256647747599030950865205326102433170278769097575624014182053213470017590552249743932738748127727130315215025926817562103458634191549152971098768233281370925932455383166454016088406938956534888401072850242124648805404406269554038540378627224506035968795898920941952658338797427255400900016365046622887310708192135711520743615426061104798968505575479304715966916555462718263665363231911948800092004853202666719277319303320718713541436231964455713142441729588473757837149720759102901147630898545163507465023075398049320358435116629729117189245243991461970869334584026107463226521512230481179625805984467362660333923439037608448201668937347907624911385103126962493329643147918235733135629252750767062453327103304330597601353935065015978408777689151382308461375824711285228596278757141024867578848852627281710386591100149735487783220628941865291369443140318944606841207085295383077667341138259437269828055435545185526917616886993663617775015316669895581777202545132660082871431569516689454915194360460354754744243034640377312663407818367351686116441682200226942258744366734807820579185305597147507122349284946161808275978421424089237072281098033498075798511918490741376156287793404294420208099261191323811464037259393064918752889073461389905385401370577524144450828980511863380355289400702205926021096702756333232361747570730738070541209060594581879513125072547835461029771847737182292693312271518900918201337600691198363564355274370838243077857292456471123729705929911549418363519003769961062706984802975058118226288089565587666999180489229157902094706346259313098332687780602937584968294595631086887731064075198542601417132642003411941318899058093033560872749691872112869993707842577133347924936655105768406005692421361030420423233557726383990244944125593968667795825196410230190170658312857948738651971559100510234952765199500600027483973130393873087383558485087577442823790110779068397380657223440952145093730240875144948627171416870034251430080512619531157665514430287127051977028752029442894532710231680203924749975514165796653447399488146683816510498782654960503717144201932741130576560790226968812020496062274748275693241200316703302234090615202648110087187669925800240558603719134801888065485515136976705427905592364543228741875174798646433149622803380091010128816641930746318890956685609597007874020453761207683651452847537790692546509781552632938507654012396516604861214523139716547272376960040924534480041196617589354229127036534943743158605563569841071854285253468439299331587350241362493050885400145325622935474356252563627654358324443639905885976551635660880174334666665317069985389005613068537916342948193716933775940668561728092261898759152728676135982664098376020208671845135907161063845726562567954420118359569763283683062928112632115516434489856672372001427902585022722116365573490886853054128924573433921593676744004657762809397236118385057317734279806219497816940127878889025879739245478289369738098683062767668938403564361596041508606304803500277775482765362473321629381930032374913746470793710621491379308768112403126672341384211995856036749278792728419579831140565820692982422123652000999120879418957334647932346844833844523545436440968684749862370897561679210351946837336121057783310852695501036143173832014445635683157213433125233401462439575963851127888803556397483007295399853654108451491687329627142763356760304221635651868349219119429440520652883767167866809524723634800278175380400542336178350577436905342675070706280658882414806208245815738712778049506473053976399097703310759923635540515707488631338078277881107477807068462438091370862357566222698653545618550787837999127782826450016888373609251866475962937632936595138536117158138000094347472283667990202697086874683112560841924644116296470223802371693406439589384006746756623643310614262839921896365378751820633958752911713253331505802816008984883892669294765046221362059758463370539539798848132022851765343732782217305732425374520829843349694201341739566480252409386499762076252055418578346668732800604992855839311960729319600000348951423915677268671495092085399651257243834887179192046498806571017883370562195604218780909024590595351633232577804315690692312187690873846913784222279813086684996846953558169981760940102837760826725803094961261400190475760497682919077463264293450836503464595006839795454857655605939675720851512351442436331613157386624415451155723201936593823280785323110218042874896705554090951777236165618531680088674035454651097836953692812052829847621538832031134725939992001317145811468158331972836629001119924417899735648291921693752223949738856782481408938424482291400215717132345828353909014878450070739240224117797357086891949132359061189194550680444317804733206944108095947964663275169444487770231642344798873751290258351952717230104792829304217168138186263517853796957036713784910445338556934061398083462957994013780953667778375887702593262826551482000072898704145880667858986085481934181536621553858457081593468255953949578624974583540535406187829164732661872328833272392935911982638550419864329699885199060811604062917314779467235580054802133182106514919231874058225836307429526842347561915807844556671821709980699184650070836500984232409228096521358893158131870642288719453068631289387546651824449220133602034723299594502557196286159027803849200163459822527831735461010540121680986974819841548788771882066769572033420725606307093576461345122437129760830908958887662230783572333709769688831129889267086499964416967950809195503423081410929228811382438463570224163478085641074538273911089209395389069500286997130611046097733372358371577732213327319572645647516017843115042582345903521573273819359807559244266860693606663873070179150069205284323247346501396975083086261694959118784988674729911446058451645494531668718741447385645955181011107375232913258032161841963217761140620488137466198022352163274806852154797301183799159632144985271813898616974296086029201998270547688231473205821171918052728934983582142645518041252565364044901089398677980414375574989833889313376030315620777051416031919514577187452994582481217688272476978357189767789931581644203755142702607769035876259901600114948022346055808332305235995365928790717228787731587308012966917477114236207879431412107429920820867624826655911074364030867987698492415675059550793406987777590592962831124736191243974823617606423472242108053956206227151573257140792518043976719415214892854646598265732418782961204853283298229642916423913818276017504094255818933575978337059391033672497113885116713710908918205094759875627007888135747605429249040243749819099666254084364308873437864254437509763036279334704022377431472443586615506686472010044768085463560862616891675083378423339198248699924441628992350114962339037916043649107537490343155686353007047862518113000063593174271106677206947235268667791618902429253614149679658556324162793016798397501917265682923976308872116647586227846074093990489335119469466121658486509359909671389902058284157753868597627368716687301976275110266086540122483614460880176692202458174542720663869002517743526732312293103952475280402159373679194451140607559193115511911463531528502821890784044976880057722489155890560611393103038290633724190856629118576677854301695504754201169635712100978032710797502178521662709662951720974830717469959187018636321931634719834502603225410830235436850843936805251634283370610419207938096472539809114567455388054278370374074916610399181527578882166346107871356792194291662433620485980510787618843053000284001574611929055724752334285645716140765718475735856512455322027874854692533696276038441476955106827151768442163956018833404933409590354947587590581164216408450793703041081118644563472499201212774959663379387431665670344017205033265851411038797836546321716827704463304581878702111665229364716841832680295367743596088049848462674328096645446379657973659416009281289344107761024159522536152376950130515211332917865948431873204256739513721440819714310184020303282941352397042461777726392091760746351809769758153431020216660171454617209569345161695847913207256704900641866226205562559678899738551769974704690837538201874130071517011910407127048910198188327226043231958016543652120689115778191455600323468712306907388829410730522300290292174724016435178352689884538030299681903363925220964100686230802756064096151328920844040474855142950201263816759341472968151200958498256965767854760553390180575786257056656173627509706046931641069127035107872559739878840957810722604437269357669543688426549449042951271575553550031943044167039924584263427017080989473587056128036639061398357551566314886000511131741496779864018022699905402021841944494650539954141207068488926854363577372669201562231370246559041043210409370578287740039443373372930081070436384269938713027112429689950925881218494069811020014972279779760998279764183940073286433498893739759709324660783234078255777291854129514174363335675593633536773638535971769364137511231785861023945101180749214895702010203923825262248849298086787222982773394833539520028354512795926010000508661458498815143974417457138790645055301491552942978090648343910253440537684925775816882889969988031711810981247439139734688765702571337150315115174221081420272180344950822486804525198192705620277705641506640474927858236097597955137572225158602257415714797493501443316103426405195438302546611763928735358656126042759549153241178120072567875219351886124925886976201862071397761361964932784934715032689289692172144306170533017662033038623132437308471358597717515401524006732584774772453483211690838986219084796585559697189833559921740810483079155980849589835315320855514066730496126482673274469674912905633064930196417188867821099040937998836068104567961418426952753277302836459748205164780279321087640126821349648051962733842313963425767973950884894572659217109421647836559547520536055392152998340824264946396571698967915096297223169818345712340892751614875502878838813834706513837505825632415852199493953993552926057628951045080700918232480456965359841226383600046264181848827761595713167818117490276713127602913155133201636096925164049859403250964187612697236702504627031519174342792568778438143309375892414536749547466221418881757599482741871580350533161670469481589111726349464271857591591356885357950900155987722104047518933256262381299193648039200469275662319026433544945554618277871559051610954999472235151915163927365989065554798529977142565115721698678650915764474058271523606251904559339950258196516889402902335555404277329787778641475338830560857454071837736560980172539652849839473856184250375258122952341998424097708138568052585165220744847851028082306223630787836227792751047313606538517920295640482247461916294632530379637366470020681487552236138607406235214096617749532354347931377762614043743881169380313904698905104869479666211002901336888438112138108623760851053032740060307053555594459813052933565642158191022958090079803139994335032584301090961793207721562624365176782979219639599905270496452284441384794610294662005918968984554318725761815083185415937562412764186230024196727841119254709910671921456376558515567307825664306680704608255413681590778264889280182459220365554907873054335529441326821150402649429599391493591757224006976656622884971653269056462620013573669552176959623835346234664078605317809851725748660165670581021507176923455782602813742968038285424272494808135495539786905059421732569080794640017248008337030560484334063141298273132217891151431648532942710796439709830385678434774613988831223107387080235012441157653861811881044012093656525088175906470484152111588589400115780679397490770574181338512321247711212653187784094647995576614942010366503472604591584912184026449150952276066125314732837705135208850492349879993981280538321298492061133911406235776951319636958755439957163665813044563669260282533444045831301623825697968423956302673074217883553481926797959374384899336979121059429701580748682381259878787233516518683780673069013682643354252713350913664772269375405477855966983622725384190551749046517799741454074711244984777275902231975276545186070754571865709976367621354650309138281213242465862840494141138231157347889684401854721690643206187898101964881924934097661757114736566046799136125379354703579289085834841930158932848940911734133103532202911780206348248994714487328407101755838196030230977685775450923618021514547261783508060210220192768859671670351142654397319538799589182817393455132670263360439015373557157207478554377125915869352826626354461280005243380923251007875515937836419368641608860547401849840059988392997564889725521203259754882497799305697554217334188432765187913345569237128174633679678567083462291020773845701438336027623842545917691603175909061532672645768427136572826296643825259992851755665651555582519734987388255095103913717766024858278182098653230925017265705572248716467830065846083185651049464423313758321018032520311703892076363107253877832916888678837940250002297806465651494412594669593002678168434289069522644874059319077887348822829559720399764173699305229075123768798396671542141733692614381710519263030391124804253499963427636246399356523775813193787193624311483360744601400976515612458877369836030963047989466062671425933635793510013867870675498723350492489143464734674074505143991260504844635224673974828498374987521533316637696079078339973378694005765348921233411235653426949639494446925919373509303829736109496462182159215962781523040821481574337321426330193264331722792662202909548180108718374337373629390011106766802159622973734283412012734866943335534808401035788834146741812267936059565282730659453854602210606933051758826630731571925043810605840058914731432342608433569506701220513301118013039050039622393311557629120700173466124625497516284427151312463168750253764610005517181869016515019547051250984160070261257374981931878125260716200720246294457191973282734847567801759057309630254205393466736461584362635807107950295800592406233846729270719915817250098080733032879142853877841737328938987819674562910083213249571564041009429178580508480585550459632927406737334316497172126879406115614086743529410383883563087632175060192331237103610277057034554255485882820025496955288208786916533273024572299432422162129960856208414334809470716286787745732421815492541474864053518687711893090133385033358559396904196063013038602091902797247327135846025683520202754259784764083685244422161804973458177928359084342495912667795065413450456189753721839667887394627270034487986995182828420792493061423186415841474065052179249112689634714195900301187796467313321691760682894356944485623644494576321412234851871528757304454645162259176777372342078400040401746901447581055439453197316674554589020465995677178308677143554287838546026625926087145234058273684367549995053948020458274324644684985961390358403811305721354185458358552433561427415645252640011017083422585410920194068246014666813793484791008363243253779688539779314547372266679500252869977247977869007491671428288512816441751137620967313796019896160454318282320452885451148203693918186791028103528661078598916853726088165751604705608166708842354129965740736447388214543875775523978543752899260067981631058192987812764779276283067328166802043710216080179713043415707204490779274082483378550123551986614930030551343190727553815271642715073144185247950897168014799658261109044406314648277886268969682115166126665913770246967575475517715919191853329595597682113617824944094449509264577685407054781740313236128624480388694705326455491980012816810806615728544153791474872153868132832234829612914371806135053465119417027925958784478879431654265067781189109809942799446780313016576950872896373086059602788266005929563035917750941533484940611992743270786652179740044883604258934302794410245266922144341986297065784428492049535903293996420176208675859580288414106735722982901353057908286679399095505827379940674303407305275171251375199705613260448598603806643617572360073047275476454120508302249380189308202633487224300879360094994463233496752100906981457342457683027222948334165932004043509499982185409301890735908314348664808509803266922737138835478475517005103242471232595900558656188899851847529242746474855394066548083620856693466222809208857828029413476080369120950409968544787986226699802700128717306077007672288668631811323370429017361239010558800961816712453378614056315934855577577213317191259155326271347637890604516058131221307460970238260211415971795548713720057656717789906955464198025976852582919108881688668557863074504183521392027675346123632422519083636235110741645748525663926565768537364577886934711493913611260115701436967815327145342049945116172259668170955135540926536972031112506003209746220585996135540734159505901080812974736780105362116333186758438774325698130516160922912045890951007357770770276136191861855299879843744497221417434043108987164198301038984080191794066262570696795384253285679445798996985364785124183116664352928406702268823725880078129391331329655650330237811116017939471122760683288939481756074119090508350952004343524743178101109686638721264717128021711729308975897482079399607630136276561914459956615344666486028970821168784716399349967068453702600386214218230404266097714662383892982659557147769677115295688321168585034447732824616371247518007901935492178187707288708491070396363570195891744612313985014739014367148896283212214561302721837933193603262077004332952027461388316088923539280894537581062352392116872387818579151353854785345044516872544976982437144047916691494159017566205168913242608937109406635468171411062212684061520076177618798519385469007947274487913889071038508452675023106468154075274630110219753498355933835402844763572078921325954703639408724728384061699669580823575784924986176486422576531109221598557260257536262235666247632446657409946792622953790622859530978888599546637826252710492758920167588493866634691126755740563003167263564752697982642273815865965089373551933330550251415758598359252003477708425590474190404568870166634171920348728291290890016638628713857830694368844285890699094309171960370051650855837081565080662640624427957073377253674027042645921615365890247660223530133582717130009866364060605100085476081156457795684355018637067681302404387309864764667713286168232404178937052087934931095539861312818553957415564687508746223040587805235689890075878447450037920774979020583639458797083302809159861467910951576085040603226107743885440344180340846845500266016897306858998905235177356592064282621058376374547305289105900378588114897352791145846957257559094329731680186522658675325784821667588693914867689361391316018496304608077812905661357306671597577686188047378230232500030349693623632013354244433821661942044094364250436323219224502319101803924421413747576202704512949110791934975855610333000701258720338753922266264858425071796797160031133764011025366831986771818783797774384183123349433204192483170945147088561854323064788404637144214521923796953824512603716724584565889448438490052501337055914836378534503846915941672863819950941218079411205332809416917416851623052525765318636394490517331110169784901689778582772526290130776715880813149400607724337100436180355433108727251547535652185326231944563686659056364749058486337031116039682189282301008327080563379432314652872876529759722858124420312894383369558658937581515554757822230930462996126728872665070686023692630966379989005711656548125549685245727983114118028464290744491321737319066669199142010685439589485415759578567834208516967593617177536117036709414972877494331105600560801720357162734877308961429501494248391020949540977588501127430934890401789694667035319167705702443966017638933781915718723739331955739865413123574173658066005934038952756373462374690593764267705173314242956128257703449597267944063355340763108289432680198454586026295236960129646074715149718258004332930645727036481273620851784961751498564058909030118042712550038198275791819582513613934699545406847415698924756176991696714307439683203263293150873798377571625652802278243117742735414757520550002424700120182751052852749405424024716686133090134773624806398094484005861404625066001243292572122342840582395709602196030384286511979943263650474982114321248850054153051781073613263463478090944208052046771282810121713237135979209572988181346370523088925431623785863623279240156051974943392979104540274055122819256581055437019757245044403925575346825744450385006213894192759807045583357438307253634676147545231241035670286894918184766414355178379996238810948471295125361499979067501950900797183888372225051013025038102030789029962619715534130852696646447333939952494142791515716069080847185333041218485484653286556588196597739752611099038200360826966810226752825253415763113837068050909868372496891827627875300296455689995323762159890169001564033523327870493947144700595697966805604393472477377020790522175816214263163790222718644475556323165335134041282453986920575048868832584543358286101233590897497649557213673618659417654975264487118317601560077991126705419762301923244676608289454157861126641168469243921196247375172393559138790454184853607129030463116746167516982847469120729589631319388927642890188073678013975125487889682277925276365141805566697470528203889763648416772883786266257117675307135872481708820861518279590417151696689795126249087681436040155123727777120967942551773197198257688440467916633015263654021164256097270259511560521936789178121391708564568362370306247985339243194163954164633347548889971001402185842650440372090275982140555826382926578756009161743306997849445052210667326267319061254907052841899758256265946343493508478146284681313973083422222619731833662482409607808779712109967095791766291623713366896696744282733825260868822943113515974190434413384796494806914928253233984625799036021926971463628010872083082914434758244710351156245998019863899008004826289593005510514297903180522719746945515495011956350891621612896062464382335030684427730728020576388288410265960609151881349924889308128169074892029645002992632006890318106433085353402949446597708337640455705992115594495369702939531002630751745471093403771545975768137612992214418282351873812325283410308467848263522592385247637547348001030222703851686578143391734392668823921289279164230106920157798665421359535490184760326278097794596442142913177121670813102009279232222077170781817562096992088117629459400718217249806016494206391186622900412377891682284758558599169362975472542120965906044854917328838841370249890080123799014331831248427969150669732865495918723958049837753605470495318075707553530571004219658618518206324012135874298849251211477647322774393747671430308249818103836657704986005115919399154008154111567284707770821464326289349924103036868844369150124675710036838202503281835658594290037753581809194304698956915414486405063461238975153517332142354802541700285326277853962247999000837036599773912990104948189858609751945620057762701506440812257795643468384470263866122392851741006268306542347653580431227395793189477908531634694310502971675816996967123622231950172792646680612727337501959458775698372025543678398192759304966971669789293007126039734888440098057614951019476279202277276237107860122773779725664878534074460520711453674416904570413348558154311064906868250104835544493116674328532553831237931794557046860398014436854069368740615968261728805372250608456721550335799135904774401095363601355253792307520039320915188834304851880489833085093698289146379157869418283322467166624189243201880346850099939123398933442379931840775472471294107654595509339248773661190754550501640024946128748250596080320066074109217321345156692597477693119340738861464162718371142205665717638250147225075920744973112615899281559685859895322917398078823989653488590578029431687873084814104532542188595232901474925922754105920708937116167646579333816185827115734965456014491152241287367799253517943734211292112632411343449290517236391143861398908031724290942690799473675332321231484601655637611423256073540564614256598252001303962356221483098647362858095478340305054400342391865741686786743628618182463131974988498459593892504532879688548101907717904481064229410531362310594061830670306191211541024650218366654186989614313085989740667987855858992889161771224233611433400366913750505631022305169790350817951025344852506617564971647257291195837304871001093190986074715087026981471601871328389786060513453228662713902507305316607630432739482999995371745554756546598972917568954390507011471843161832181112323174046238316355477236169274719117196689710293628356960479244673896825445100577399961533545472048620275988602341238477123387534446749981019323454070088124714077841608189577394907362222054784206552314987337943990808176296490857073872022995484192651220064522109996688757386569883138341982402530277425923509931035160687937000167542431623793803293489801293856817249490168486853157596312257509549025889852437326641569693800989389148700084686577922503347560181383191166920924015247291965094256762510319701527658348660985530695440714063142405272405162849464717508998120011716403203743103034012286249180313371118009094388562518007132348761166016179925169073020450121447885935938158816389431066819801856674068299038386281492277370489611469015432478444115948380647317404713882800004862703997364253533591539722945840757262335886158942217384615725473269584449296520376331759414601700171108351906866211771745172533135474765655165910779798156552606163406433843475788493523325743800846424810253324609925488779515706042432663710662335001908479807543632620645365894083861950764088202209765156757077918677995778319915024256721176822648051496662594176048591445626507125895453656762777945299651013814719452204826526727002801417323984641017352610798834922615418857865233453495508142793967934126430489746527269656456447482636287823944541136644068524948745704324605350917757279604245077191064916339193466873572063528507089721013423576090313399543225163382866753708642521348211964485769802311417134268551521385694096395107644775416040123563386862201589647218327359833035955955520682608381811370471884060213977478023057680882078327514906470714649438210589351537425446855636379118149771980719922652468705027490056053860457227306597948937206081546841430256602679246790151428510377203331405352969990595629536710966270358370198549465557607280729462416196973741270496927131051040526513153806004275377703674217607734104572969653981051844107476516151391916099934360773312666087325561207600030046038205288915443110123519909770258732288737894423286539739075052641993258723090540544636386591981796947738064339901409535841322583447393224326671366901264461504874106535071222902155205474467061233629124076328237647499384808085096335558543295313032200379622203200931185270102859510581978790472850489304632681193373790325069028217962533746912419848228921227725188033398921452366432109759354603895676140114980420257349731679211649788244862279155872807264900701393413317157245313553695440360624846206841289259768696116288564939898967185577837118219470001897900158045052100179213555654781777660664902364630062456804791307862990462360047595824530734329907474790157028296747714777724200032217232022225508771541132474368823324180541756008621467297253158061646495005489477962789255960921822206799757000959105947645493256288695393276671087097373959043605029746840816215123615438660068055706130413613986110150971491270169524089329314023891938511024226951915680439303032702663921178816236077013683692677481980119443584769147946902266119829918171948179380312084067406657935764823940899252073057447840609307123162857487841867266060704395883160460731477895885079745377504130869664031322956323150794478786112543004998921320860746104013831322012319070207314792095408931894295508569897726398241534370251572247872566264199146580044634277766775485510592135629148583084198651063209660502427911123859014872927804662553595986585901143390146599900606062572819228221402253900919643957410367734910842052385362506490630108892209954383468243657739418118787258954001833215579045126936897496644660093869391424602740010327473141518214741225931417880498266142602695695203548628107034732519454408821928311799345391281807511625945749734186144484674479028421357203187224258822484370605918826073688740846972737777118306787664904095187551378710267381710182642066609917361621770116002369589137653409988585442000064384123403261079694068752012471559184353816088797176078912347694827549886881077060662562242974536487338173219790315514222422013517360511493653865433091149326043430864783160486098287201517352772144443280641802897344166154546826278702653791903561096440165940820471053477574736970126004147052976746409264609960784510868667195912441427174197031703598600668887802933462614686898065507659990128509624840759042846859546357047716956906435841024897912483758104447060578030992621258111318852280122230798139202755298854845388109648637935087148439742881219175319104327762504912402230620060004799317336807410789070878427340199748420602456993238414890254945636169655468141550066433720330316082172144067947402928378910744229290157394055631220210798573153844760150660848062041538000948840702039679169626896719487586102517140363612073384468640884654299815962737655349132208713453098492380310689221135025153120892792561792786661285677522053007214698489934964559691805034917775330485344699300078325200801572097391552926003110653274352185911133392706123160966601530060339651607415326082216474206706367365236440369700402671042515707270744260110579230232677786686960514183847402790755532712748749419393037900352572647635400716502004786286388709405743924609311787029288805815265776113259189092065303927127098981050939380641435189911154496375658453828627840263993267326689364478967325417414805230224862965493341523051349412860848545350183554349330371154933340839313663949917046370247616001345684467128413002025916070470555293079501333848693624932294183972634234434849773473806538209207195570574064223457579745648599865939683701087682424277781091399614541974276327183004821893084379807400216352317101933831210042227069582193775526776438284913393351342508100850115516254674490752118666356394566484365983176918900776128171202186360021349560905794255330082665968658846346906257155512411328175515712039772967431417308030862191408882432648107195242333456506137202451013670384307948764288201952236002099054606677031044106548053608534143740242555003719518277698888430738510081267827620683867023745030275243270701791978720136597082873135047345380843940237959122484818788231222881811976929507470176909913446404094233590430910086250652557652514185942104571154180993349584661549590154809529555856399917176467446434346358721595330585453561367130751533064066906940802272047651330180950962980325292015042364474953464801940666927155026573152962124191834543110477332983167392047147779844225897299878164666601438263931752675649140701192724584322415859606905330291902738583302662014377017453676970689030668835824844900647304354010030620927384852640317201138444833653622428985763449315067540563361879114857037729951611065388511001928925521467911107275708515136956033885803419030945550807804492730442597185962930763713713265591298964188223109052156593514081635302640794441249904717149771614031708354753771346883337620298095020838881013238147214144343119663962010243504749287556293149789052561603175529611138236671963459020983355875081710850877421811078246048508855538967876689639114723208177413726567696032657553748499413675032207394988174561711067743790798759738573494625889844993419070331340781343316795627847810005170399844771710643416785719606281429951146100831468998807080683250755694902001016320360448940303722759296458847145920665627369371288521948330843536922422935667266714855927432305253046281565751146251352820877713450385024706562730717105179709826416939229017940310113880507078881890398883548714350257155581997113184749581928999501872523997312044781525515032137817921467786864099895574983557742281331252342721720109239806472626981648326601516111522321544499282207391864176583205932899475568012416131640986578709657940020227740858462712427002782958031919596415510417680164465878957423682232420423161978260955131124535551581568212379397830792248192125314673185479039208181018421159176763175166574514351570205372675063483498148567194085763411569291161873848474078473939115999731695801077562437424041354839044292882241118859417234274369374806228188045631605993968921646691487237739561923653855221480242116512226978497658709834747938360793997563328024842410252638103341187569273947528327898460723369425047944879699921999307624231726065721642584299070111058608113937418322004630023642730638048204322212966878481195293826007243099537344227686254549620244126740801855191396831344299827035329359179150574019938628440135976206454821307952246836603360153464635090116626371900039009044142561148521332609889185562837296463372955399355917598203458749551490633231881258789868914383814769067881407588042125794698655061731428125883112063239959899282793310689749292971202337588169917183356236017248686576087288588685013848635257084850960980305903862918670803782991943066286863635529490199464681745248777830888425940247165712764552347243647096863143979019413096373800748074017127785394587227427726754006357611357170655315492204505173044000573457260733215654150898542336482617284225771988916733976187319141741088575472666875829478901017314779804426473840659942293246010566363007150080035120163284483771304372086033273985873767806715224959725899150076468685404177665012774649156078892740541336058199380894089745188582529889775342640915672091339051695993003071870636330174878251152886056577639659460325500192449741698926840080311330587219975437236765196158267842468911622363699376811280871149260358864912900255237057126204555268057791479897135890089077992703973031570415261761957374215063676652807768731837266577757666075630983460358628550053365075212026397873780764655694630913450361906400369414963556968879558795613191953209027327313399377104445677876538179838235878899582368721232070738756203185754197195234898549217629614089531266915920932456023629119895026344156497352489621655071186558291287129275006019920185790258358587762746574330883693513032302530116710316085677489059051603868775335708399687288942015042574643654838203008499414516794965407416885682874252831082009828724274413430052520561864943613543453866437913891450275157014631284652299767559283968807375740551378030523332135659276114116205611789246601447203635437898970832576369903221387372119294589301738452785910145006347241736666778555890552766042638025392420975291926708369039905024829907404299135887141655462745020050720194861925096168623599958990783239316208939233113583428139394457316745756464290577881535530362301576786263305776829914182971068197415307805617056197590036127262718313489091554315729737017245569996242172155154071067856068387765883383716864505963416836239810678968880554689441616054804749453559070230080672871376704124681631223311043824146859737898816437462950765302563046846287554770524850276850567921506361021207445995664166831076160063996046233446990213022808008299290769675384138953338455087366605755444168382667255471841747493972354160705801653375740615067191028616871875188416289864258805407005431075389597377633549123893882556080306969836462438247134747109818795606003321249505008064031155618955576601904809292952026187405175587573542959073431464314047798000115240047930035118865962154457337895641720893664608143832167981625180606232313357371995096957191213940517881202892691272608692535952510616752859750412895535552168407705503537058601028465514298589480077644391583653345984899888242890128322983424497830562760728042725444772272709331445739979842392710389242658099851374530447366150180051514295609362698370309558371697462632369069889883692250921874984190644292936035373638736285251042362241321880709642887702188863672152504714809846119467143325095765926116287883690760997526924577260749779918002528476605616633417669309300526195783797862291155107173246267180678143850461218758815693986103323429769011355493239182363049230645890680513457696597221821920616430349654605567308088885765717594120183579405055064459914169778688465563523736250664261150748591723216702070335528286088297417823394653129941862891539553141941590302466254475515293013796864442826926497582238595631192402742839388753961008809341730356335895716159343695608400545124698546715272560621305109028812685554780400624812712665738591049444723259236388134374546272987676732446798044653525364762169553526240801270607678518333616093408594741084591159058161521467838967010258771413526364552505889958728786737483193090762695895578539417857896284270977992811273049040585361774171239043097618984849991248869591745242269092868110832553520766733294906352128526118002365151176183073652391128334650498758023310426747670658784377012766370372133891481910750606329386087283976962802639492157128218910314383121025588386945818536646130313361060845753633268811499117340410068554730692882754733891418994981070394303633121320002569652833605318117216147748919555860684200893789590644059278225939650515289725176166975455652752605664001647535010712548467496750636377112314151330837271042131860651765165759575633361883028457236142056028662776970683754039875938823497482258825366807088783027126059570933907009477479812736911328987533706015046417583626535248978879378853353879751725935108313287141201511924853050938630006528630676380573874304310780916179049013632734439586623453377449390239536410163716933692290592082741621121800680516708658181133677129674774758807734743141963101653321493700120010010506665975610577360141308310811679496834940151865653165474967160233162147879783189892266235601709773136984909048564182536367366549965384733907146291343321945778497298925456097428427601930115358252875710341775240082983464945839609215378107729130815097648538116484362527944840711224162225918424785751943493919707524802437332540977541233326025185656776330830682798238392559585718853235264487596367085678302093278478671835564649495489809144509799651895339555332089465357905573952657869601091986947372791141567527327603611867389979718901028511999761249243568762037226377267544883835134746205704179790008788830069911043089541911626326148053865594035309334568192122857868697336249621616356513177021300937711664575051796418359242688087034170459559457494630803772427345446080983424925344202683814813345939838449837752083272228739311145540023119451147056161646205957467860491348678970141113632485950848158328532633838837314368573651898508358807538238139391511501645688972422934675589141242009552791015817216973781985035586965572725631487405024191926806393985950962922426137605820478523749770100035487101785081365486438781482694257732958019061678880748020848755368011440762451064017262830961403737164523947280033685716415418392462087935358275397278664014468437736987832122356284342398855604397216460614285721477608981754665886484653987501539378769679595815033419613608884346190668858151681442087754391474823997264502034334938689302270191675345854011963842088567448706400851435269535237665908383391152039449663735070323566788443281206169038424419165442627948756209603122444569630664891318009590174946385255612115237178409565831859569928076614223167472238264763125750629269702178660394127145508986220616445792015396566802205518996033026034841210856810114960611857824548417786305651516159378705054147172938802991552675295074148936239839300594705606178576112081249856768670594209545206610465422059620850246680478565807350230578634513121146873642849648511524318266126727900530440883507643531634979134640840375782524057571004923275988178654406247958752803726132064818297181555921272485743775004186008968587663913307002292735185902439389606701631923472776696390793079550571465008875832864718430053321668432390627584695322310985445388951688239909563175107417752425019764639920728174643618947992481583801318335296192674589646182629982823748624767668512419161155742662646513619226255546056370463468673864814462606731494673546898258147692541301740785901558505391723852947763767844514424178978337050483815553380597436895942604697922499431697596077417618203084542037486649454506817073825435370428675277315314972136265261586243981516746026027205684207684266043031209899785648906671401239839697096474614350036103790294306914995974057945273089401931908453928018353365770219466755205197732345800176539521968491755068380382754968310847371354050727237997554691349391334404347029276180548630928235838070817077502860477388665224136944831155484975986578895939546113630677607421156832776829808733436636466056627615202933597349913813832792557664389072806989780707232624176532256102213943629938942111987195699616117606489216610769931408566483434195702612732167419870061347144025826792465757993260773045464130886658762942205007340342158627804474941481160265471709021323131717448851235547326112633645822276501150244939255649919809116299510325956462047220596742375096939765671356934664357895625769313559514243359137911880796835209628733037959057785317280552673713301453761431502237984253245069145607775029352861792144104601137829202183181041288681442495869781866726506642499771527381413089425946780414660073554854947532332138095313689324103347468914252176429468443788176628194687763108029971113418020890450017684912449757760870472888545419885508054780768648241334094498186052678200249012030698443947790622459110929224461204644013550239396882007198354216720588512887865941758664832963813262726533383072340160379589066416356794430848199281485961634029717493165147428447817773932654271490117764705015548387153252351166877058787318973339126645041513140883158749205529202283227234482250092991715128374004324186859200194475979793703867677598154052914514803935545117660998650881982284089658796290166502669045447483901494606289760184435199819290837832625370537662480611391420764878259648442455808730397187790787299342822503676769493053958091236461727528116948845593408356041668354064583356766760582752339902353638959410986170585322741395174616659838452476225705054786052720104945405565537959815969919552889866760344453712540484697835181617300861889732120058671785564614275209735032855161842083771967640253780030033187215727897566636368657995402898980168722830772412162390606742672623850679565426676346316173928540995436083843242706185451950444424651894240561690728923124796503306555393949942994418021545497576867202059000487196356519449657841488104512446049472272312814966324787716672788067029167650219855295137637754834866598265319605924510376544302703406557083003707763948476108254780885265823900573458415105885486212388401351489664765344488475041734616104373620130827831196487221607929038454452748616626337065073205637889605248378231322509805636022846620595499837152138062181508939139546720171843863048298951116311015482882452243952374634920906884096005505608037556713973165667491231223683939331421145022225275043505278778501207731491979371423739598065767877435084412637805534420957139339561649543301239013584576926884457566577223085658248967644751894905597817355738181211173943847340622746830952883360040193233581541740478971146583996303109749818783199497154043371689629872141486469032365404314559164759375854200491120213352414958702763092824286495218523973419979876304531510498635430093418443562608002760711145359451705723803906685685108927687470650233246120655456053289750238261992930097473703136371186895186779038404003044569753644114551534513261698332578972939053869121459934780680142247109127194024844678594734547720099545735890549108216699539371136393735386644611290824607710600808402927708533150678805476546724729015114620483114875810472737365923737917684371691430842799009584840774624603586190752541884908081474991544522485385923357089743297734901302995629852699202646714649087304017411993507892747535831381882628754338592113301294650137376323877960417221464019425161198600756919820037645528417309422058221999100249987892854139454082155953307720536616424060031738626397149097956050082504769387702562777107697237604352347794174370238016950431015404609893565143494131681854901336416028783277917737971730163597878767015709988375322656068189215793472935673917543970731936964076543973604897610608273573558520271303511141354272641355588549995035208095363830483300729863686078424347777085936354001208829628996002977455305427110549687648626410427401450700691321222534733359831649030708448502212015319065605536704496283873945176937675395169261348737807193458271767691131976424241478750362262981481640125164085981582001788826902176128996206501709072737255046715212891424469037569096961341800503330304237914974011728031904023821459087343680440906650566411748086798195430247019648571594768029409169583215561131477490497215147143930818740239359825719809971532455133300326091343465099834349793318991635936984016014182953407990628645989033157071701864590976476057424496319748797579758632571076895761805150726126868304715813457393917541577351038885880620736999731075486687692832531560067549233238713687926189773390973253349523525431139447822937606465993338735168831475035230614728414067473908909971447230659971651297370949258457890572927537878874558931275863550420612029693860122347843196215320258253681314234504091681312565801904077689458539685669034722748795028264764526232827315494172871895805029135381416686575709406317236336641522460092828129345330975105344732398932860408280862900290810543811796502783068394666072354486747316059156941141235699729841407580266282631261792532640852582718521719574481974663574353987102631262105298834029443700757439657493880405789401974697836174071726778722468699857012992261567452016809161786952047598591210325461560169655252346129647794670145279421676654600059481354542472969165506076224007561285638981137361422965403048668172951762723144854589915261593653085840155124527152372651629886610508477089233925865818756449752401027980342015780964143676195935532874782579565476280921506693280635761495471957781876705377829164583305256070401922680799297839332809684439593485702905942021812926121831646897156240091419093619046342989833114697881039553490883063977832303311672112450374412316224519740572535415034909146990093627081607841670452166379264561287910913924948461474554566290685736017742526211680189956269700585671387429519499998988819339626057938582003664608831727092807889404896166051902659051443528194195224629299997778306113017211773259501764678006699533363145824181567096190758458632154390085241349251458649104522442735227105018465552831895639980967021316928742619553788278963451913780861800337858560354476597960866506662785625785405046597375022595152440939285101362820691123224701529139314974462955183445780507794816474625450184649415475410470807664646750437454859893623372105263904579226197207071915994525021970626341829167431815990901257207445984640418318280760156297150597510731568639958756606571340937864635795913747050492046614361445696165584182264203527119203014580667025531763980385352181732932662118969866535930523302000495976229030111589281636328726169731324325609176814201104806643843806214895098842946745242348859733937698221062502310027816428979967189631766374951883804121968186051783531219951647220233046955929454691817073025156542280437594240030056917687168124151617593184310835598824261581646954643745304702052618414276827621752273399076932363443875647974031860107055388906383540852324995933792505404654062515109449905852273661269937401222065925327910211061818451219527183230607742690684924409889049718327666716738086017044595734418258837017484465416196252150262853183324859053822094199151466706890603897764295812820523335965603127044477471189490392692841131562735305985425664774215144533297776107581338459037565842085825304006613223142922155913173767581746863760639819804562978118136133177121840399290507882836811834006849926677686248960499614442572337683184399858107971503466250372851960893041102913888747687423442074234213077665965016711568736533296528784685275996064593401004353897762101556233131103239536577687942601468424615441527855587767096661007227886400514371954263310395383895653806135873486939881194977352825082667750303912282326826102700043079204012089263772543537284457203808722917082996627279569012366521964604560813420652623740861110119137676848243394984300995231225497364234869926768105330194463767951587974470998951317941836132140194059619870968698708920652159781896654895437186217544302444312499376615761135004546225067960837893446387845432592944143847225046321145465796105908119081896982062182771955445217753802547945235863517093073597617518585653929631560748476750466408709725085527000845502008387514149558397854615230327253104124014035207388148917956135296834160928497885866388041826001706511715530263167454339393087188687294518099374576307715772261905352399668844009197115926976043412499134235854473809973243703591020420898029222437445397322109959416804332185218267225590172899414016388031350056094693709810322073678038470444345843534667943114868722089743597637895760631626067768728040551734362767414465954105626710968079595492094145030053487385727733918005094812317827575372939901388073167816506180226156535291166570705944112701603355483929724447202251752302040801949853748439970011188394301583679536045824382522059609054703312920217572480409928370876330067158528427509671692434419576750404420150232590969204722812188288848012579099464499096008581812647409631495772750730721056498335928718863684808874863999497244550048869346851217219715193509080255911245983434428086745210176599225964411498518267611162076397782907090955705774110835253862785150184095030002622214976894938596089458081990862217460668087946651162190943211061871190986733358367503207175177967307180503180401255058527256503069848065290565990809883543856893285675466097468628400856480543625674333462368137352299435254540829068910259164499614904049383432650352292312685200803591040934735058474090456886153970342419227893394795430384358320420758637898388472907676837010430966887476622773999809947411237333716171315690598264542251007123536185226613813809353001792183627424571415948973402755056202406718661851316135500767190830606807409927733084158034790973293282637883915074085663697678146950615336045375724706129171789326466269777673953046660449379457203631972993826238638621609781532760558862944091649720821830180903673775986142557184328206374164395542699855978515123237566943886323588188824128477864816691981813667621776310981130969240367372278199211373954300043407038941714642853758573093842747627437544603424985307290724149567843888804363539698464049980654066852504554163479791325169078029524654464466154887325362687131314800976200753598048196914804783201854831619380313440746210810353935245849549417938477555907270308239018877861247788354318665351985441212388959707542295081059589643638961604635371062786474368927857433192285522052366736752229886495735278936649037569824214662672163514535746017319734518502336511275066712391140853865478213081032403270723872652927288872962822506827563669977621227328757746435637617965069078070496104982394361207552114445241429419717482539805986333632742277642362870275357508956306979173103835349891623104578544231152573836733704531905960170861389531744644058325439931543923128990188269857312427844004529740374915072504442171073857611223361102855838938537580414147901441155226124817413648389180326825802775883208103203615149148104979655069691704525247211387772307907723790262771608351395618756415447966741940975163641514426994351664423996581504659818445189003230708631604271080998149030992360979461193932792241752528223891674752572153882890953461965570456130421712797043863982448261401595308445928440094322682935433123770002130658153655705815534235559279785967496482730996183990844115278099682189892083252258743115238725779039360404476635315716193769229207527015826330387268181256915553778057350454708846353706605268217244937841713409644753857162534109331446251925679848316665004256526547674039726935826884288606036918704058000763547476547972091534952488447373612949630475613457912089491286969343966283667528953212644232807608023996492542104986940272008353278364224451903989156245669866368389858539100044576268881743024149561412656252977169215610604607325817843533792086329590174104445149307716922853295306591870823099513757724177620840531420729644323400569262284534957829940529987749350034434600907573344291178752447246812144512209001827915346388778939474981954994766851318655582781699467948335414861684138052642201025515704717882159438428737203669316855796309891362163780991092084378014337974348836848370672852246495820505897935822760009279785600683928440201597342131751158499808194205967653382199253164065452444712715269861222256628593262247876930380108293849651085981104756346887154000198605894353970385369915958536767763265115185898415653792307192304080974784154541632247300949543064641846136246967417479581790741426092722763089101535813142805919188237535510766888842074501846116632288380597807876208968067759591614095886239628905382289614257706064833133941755959094735205882841890149542458682018641038875708957407604392392655781977180173672832656132458978252499982230594131202289324722042930161308480390114231325096926799593642419393918345647931947929141975184664959490541576583281240908757961323993512829853250485319610949390867421810586314060641695455375660107940362661265179566656785759146047697755692226857597624496122315466792198856682489819302727913266613288123922812754691687896917431947294831061040059756396989677077357393870170726566883009818133505888432217623614249609957106110395383314802751599690619450504857240788456625955252407370863900419950261648348432492216572463431564343265881375077756005031039667670659675756021103525492049522790199237950183710895774332247491775677297315098046436088339565194314451262779496168942346370937647458343343275639956781114315291027927957269810938907057118327729665483830238801418301166742959534844107579934840810951835491007349990120017650063809006369707201996697137622937408836708465540351468704970764445489264930311460910021831458038566661812312693043077186512047093020054210855785904722698841386258035365777255441576392388877515925852307596796234990926734861851337937792046446202133759202762005485432737714717273614595809388174901420427593003256104280295100335168570947302401451957690608136874752008577067919160185378874444743496999231878983820525717943239723790257074548093305526388310157678283675246357717152454585693118570396297888084190079741336986926360452855921246173027293383233066140297917353756404779215693213620540895794732825095651298205058638818643014091133409632713598518708430839478116668085538674724782812162082895668030334700512032815161437391055109381257397600584398757944621777681657598062285835976482017488616403866799226902426578261229083775482147344601545239626655778115416514059831485447998693902356451091732335897939763560342530633750333850345007240849158062822039598857105357428654231529267201309541300329356701996018112466960693567469800023057713028695147136842074770313152075210824948022712696424254372021070707742821406459217938214816806264702339568346925232944371678069886279196342224591995997677686080850903847540514678565093670550834073512782410266744477451406911182596189051153799826358432598167709735502973027223357002985938228810384269957183964272493753451703028950569057835200595713580113687453548282543465093211077304106815817706544007030297731317624827255510409166769413541782131816125654993350054665559859645921826150922031657015978164876455257190829495203135099382707311080107945285449569220261663985748267258000246447719969785775149009049048903872266946304786858177660244950138549027278324946274416283837150542349648824131096243124155765918909065157561219183900352872253989615588457355885760677548947519114319010104441395820807941375579625276481632101744352100462240979674116529666729754682910660246350000686928757714185359187352436450476505922885808448901674012892531828479388963262108355576771350000376227029402982565655258008976699294732290268051393186322882593834314367967388487336774405466455722795768407047036389231264523614418883978623350485910468105924740499982080405829004327309117419418316387672425105914560552928012913368184616037412226925599583537188397394224252873704288474165630063667080952961118029854088991978970793537760961265616852851453251157980897409038909660195028581979846042671783307942273415924151211934440569116504023389006477797032385518550613742411314675996691918565458923777774438368182588258667639918288570319445600161021866969497719842913316632934982301141614190414275799225680761813537937685911409026014842158345285426680463545864141503602662228633077776180904196462363902877576489023828641188880467781002261307947351337962346588565873187302445589327016246262188066569077830063324899040786241779775241052277349002968263711845023431106889500977943077246930273850879974254843830786182788580749789753795976929637935044740864164925811684631833794119322790687793900592409898741088475162290271641740209596076433478287730074049954056730973316454048724685154844281682085364993584359689955399132606525565255785100772201211506381344717586983766288520423841748913028336284802344271337034852114015959173216242455583267362921077989720246240957207222886292141490991492225384329595228540976324493803417047221586540691484437566002807701225907132088723565213139838472118138579035603032565338032852399248590999933194061990743602272949152392544037725057395075455660300749040872768062807527340576975708913230450495221612745121680882255787835013707968145622342828476245395444607384140175712230044311445150582499058244414126002336096825000057883798447547489298140752174370404838365768940818234325306355790877659795357777853499859004558673840557692178742338661239299387703749117880244141599369482563361063228787972820528512931993036420281008422789430447286163776451879501085583623842526642853845777002204231658019477933245845837410851631275829817903590084936705296203123822873493001209813287225280640653946268327699242451212249041219365647588992936921543272417585726172091436660881692957760345042678981922090867674417404075754528062555509001188199472899852542712722443106346431060931085835875181468142551368001540321483730274534222113993287249213679209767990297418770973090636507624015610290674909314526241117676133123185593408201659797842801744271042648955026962268076766872059076055227622802707253867874910243821861022221973035111730682107417588457874288298270836594446962732135811746244334924115065655428844631568911051476075173988927132651740453020931477306446104823779291787158478242229650288074951981807822409119226788866026579234543074751094683866328707905370234365940033210880055328372437170044478251295280067225788542399394478260524315015909357613709049286346790529762666584664165088590631021447882049906619203567432017012898299918140040531256630104590602225563744271691874874746056724839407693157105340803472446709250299507628842034627661534134645719828890527771698534643861766413842660715469821319496984249477447356684267059943455725808333172078179973421437565508051306994457950500495935272567831542644009684601296352434356797596496086549957825505923794462016398545960660513439791654645700416448015261228335426924042431315823324525539350598488314907605145830356360548031991201486439621945906429381344430201014410816319068804908314417137710146899555230564214007137688774237326031278645558006797110963493531230867805815781967051145013913254297470742405947184937165867419186674365412298800332334789639119448810210161324534978783249756246014061782460979354492198447258583999779928568267996285334015213226601299530923345351550978295893553611547315101514086215021839295153682440213053429085513760678275047468560424161979158926256785290420482075692062752049628940840728801353108480860864105993786709481948521085226923216968888745826627729254999635043935783068871227323336659725295399554734185579912577745759563947892197732327807292336284427810206879908473625646540842719609976197285177717435903404910942418184167686717130159630827912953029665427710607638378181041848898396392071909902383185059703529229320527999897582087214190695206906907503935944991564631997057042098725011589537213180885475186186666915276036905974174573894306407535039736214321110048426372485408072749870826363987655007491623358031714869292373890439272949725153956034656583308322271377194023710987294586410203824135755100240062950302338240065469627872576146131917197797598944032724633435933690236827346831385112018408231353958362676839127698807430626817397064084255122043985757796251784480517371482235212608340954500500284932176721855790276037081746162051903741798820664944450505408680838458588540566589437583909602923590021876019615347573016363214190848544182686220198126090057044309784273595846018018240985066660088829407889627394500473510520150799579043961839149026782158629243417131628188326709237392267264609205159736032918219977946740064465048889159485283985706328736776950900359024671977971480954584673526429082458963690339732793104537012261115212519590333606262561070575863976485414545958365816624788229371599888514140056956480231810151894655350797702472276482698155029293629822712997326720647070065238188655902797144077708385636398429204268081821409347934608573631295672097688918599367312422514444417648091904680367099384997083787328717384002083870631419682274772460530423067089268021044135066064250805427257919935081622348444519704623041976287896114437183193812466735324891790810258021616422841194257681579787262921169406463689210845807448279464938517634410049984102650458184493237029768007598278539388077951381642750181880870940628832369020595967144324116579913569250187862123849289971234940557980506282569372541593277533817181035638315517644179349076363848631006567341139563593142890633394814275419951918328933087233524933969161911192086311297138103912195999314843089132489028705076826243823696497723894488282054493227062426713811496427193775444329586331293120307656017598873383455617839015702814804498076742689118296864105981862941256448735076826514261054090282582585241984326380241495311192507645461006025504966807347427415722768839954467686095782339522278850617783329852067019147375728470409484048588081540126951765175771259305356493841241440691278076336027745167874786896414249104313083545356323561703288008147622146945531350593132374170812318364186610793801955452476649423717856084414593840752432456450414694694620456374460981869974803596809669053861430985404071543697858345982012276483565116452603135633880435558492653859871342664992464912632314649219178915542335918190166803402514629844984174776146504439357124535158236588177556183864063825900152241321707916129677807823934544968598732344815635815422230052707711666667691460783748364803098306848367966978699664246934613795887018867861133929532342014515590065876097005610299408941224131103275752408692704355018005215159173924099903859931808864897799044652765281857582034511269935271221406701806546644829392492887224530470587519405516403317743830275316000210055871365666723302102374094706578751398336938479094690127528671870160145987724071135650547907875032403372838556719960734900518873253312740918706331790884353443406798646474179875393544050398657164592508266570073665105516032774243368508066814302452102735451598446058115797827465184992776063565891854213831622307740754692187394124013821371712363093139662766191814322381709368326758788283584784364827238675458120284790018133966561747897674352222575627031348184704110430702996912356240982628984773579267051809641491020110538345401849648593777643885099604397355312574673586623380902551688625690833984539867720058637956708418490486846378725086647804086103980328849203615882038044188107017397906589820954629435746035212971442004187561631706824377498814468460700906965250966653644090380411714257723762968049158756425543437273842514639964225270055814427998589830577355115250440607253945204936504069174482380620431692898468527331198516279443182452298538132869958654902730325846955279582341200004895933265584339425559111922273693299423648605878027858744459152633419611399308294100615991739956913210208178494653969815037888152922948597327409726536190885250503089196740924422187921955672353801349593057901220996368632199009594709864978024988414133927213364637825148214787150442895249924075990446341128700881406300628354736556723776103781845939978120794047936198569918872618907641397091939411692420412169185695788856033938663776858626238800574160074878248741039984880517849527155770079199778221853364853999652793587019372143330653836408852914683066504756496918877859032221984806639929754273941738568599853584402694251758209049803060756807882035954735475978894635164648682273924479472643712393576066056129998892124182493523661904663300101150139427748608764392307294151280973734421474183019982191754347088716532267886460802599030707967109147395800084369845161623026232466836456073945207366384913643900789405069515709436711191581342370487592550561381805242103586445002606493411129659369782440998872151362050293647946196882178801104914493497408862470415724062535768137818596751358573881135094440602247534794879300529074205306471051195973193790061477642125252666343849881700678221517493941540167064545955275336012706686760674857233136856576204855402193749084531783319198805720014138774654260331606583138054140048574258625957802288997449302169116343204671618733310346007471127549816338249873992180639695547221092221293807176968579721134575959009901167953212183426859408673165386947903821323124855941785916606087960731759517884194203150577576932058955398296253763863753104017685469782944759917254366705294832646881726108414741861734417923724392688236870165601415910298496400100750082541230116477975772476532265123089709543915016210048856719340346552108441301900918046875921406113033977429069939107326298295805280799956174911889659586630382122802044448026318479706225381231661436617801125292742491408334736282512672064767961515214302578168233381407035084861450069336144438378237039443324318269531378625632035673130245453430408563560099978584543468155377872114872840756780076463297811424714357547207090741458845692866827272113433007901589562800827425343857653135282679693834466833763187543944313693694923019622594391997409183813723537223314383145011109840154247562603466134224895002855443832175315306681574734710509052616293287649553533907237195421283003996358567392919160832903181781467947600453106299816694907691950578873072827655787572908013913119620377854951342107293828649319253542813742599803602297294581311933298345149351532047937409222391201740404441803078660663959004571585979532478687097178622472983524873379553842064467302137159848301045915568053443563891865510797662450319741610486538911847307444681297720806128199923264210836339705767369164302366709219276438099337606752169628233963608792107450017867832020397411516735857837473422761799637494962264211922437496307569284203386731553559403261390397979337756246095835416637852277421636023707285738903442506870080512360184858308386682260379964735430236638972641473200968075727638862589408183562250137257834802386551414873654334703231470012791975938199095266640173998545344785882227632545385780981421513566260414344270033250904081830583183499806799743414374771205908826605952404271512353603774742492317946834704393162340373015922166231984533734152695329001373172643725090067376644860599260518283726090082126104167118787493380886283663341050871829784324655772806262933848289658020576947980676461726492056657053539177028648637290715636131084538835559710062619402010367136936627181548725520557286176914167917530277445105974107808628291710856389482333336828821793883873375093607954463944368270226231561801957347970338390416397670633871827311612684916932517973761757715916031319955062353494375745390175409282393057090531958471917101837156562896170579586524608934852851992959583275904811794934638208355738744742523833509182606767881264509823724027799457016702939402328558841974377362331985390687760097243415236767322537926517464596978315981487142901366234543193701319367854955621046853909849334149582543360209508388649035467470220660299319814656128462273850808443092320022173885927376865591430962318422092547847105422246876600923828165385600571377030824770544701589988228421824330235091215901133471411118338135259687718160223104583210698891732650534234714383190059525039811727483908375892150347245310534152118912879597759340708008504173372684306019869726267194166847175308566929368789633541799749415570401450372064417508896964456218018564920843893920764424068144102875022071137840984785109756055629791204328792010530729445743288539676779738455323026810010056097818685298190346527690034043506531959203849002915337617539360751839582019260543817527805790049698639636631402076166476688683303544211033035953898373896918764904563127342458730085588981601412979854505752477420543106543953869796991779929738756764709776121777545952221557399985622722364890065763256714036252513969348942217582947784915523554472009814638251680131583348476236356031753392887299053284543551548452017780764382894985947625635023759148217499117653018380272938174111219025712033031312064727436797452816842301785466009135092871919775222960153223116982692705088838110474391368237310368897142601861288837478852014657953664247957540269410127222187340711250263395528834905271916784993086839253984789771370513409475599029516530202046832471602458724442919938799298246323134542081285863575697887360171210771994381558097215410397333562897825646644609503050069850159786312537450060844134304293550178357409921031779221159970467011239822649671314006583447367509157706910602416563388541662542240571254061317347909309001137363977567753879754716211619092264048375948937827580502587587728634571085620247863029863534252909329386184949536123194618189389570878813170479389976458795293644621808233807555353319570056881367499955151083162490159671502571601851635716505984623729577956194459415994438349172036384957412575064508845574074035912952126571766233667592606172100227722088833428292735850118170553851377508204583711433908811793285918565464971631797764251418520472963622668793743080282345312015279054036670797354569304023736509468485604177336905213115656266292335949895726241127557300763993439526398435453690099673722263776535724920511379962016571219742866397495706768879864866577653519820174716624522476349522278595077686680824993151721123517315468115978401855219179115222585695319536132117438648502676512236600330369512117236751537658720553197099118880174897314926956637103201446028311313187023528924468847511669080760816504894033542597039813255158600953445920203295291767916088013052297275723756424966709960294407996582819909658736607537884125718662857683921029951603317998990456964772223113764079319476124318796029054280862900962365600374157654750192054036234666626167105111313654095639315089950197180893806416600529737906942718189350385235993418689106588689774675724518126811165949049229620334972385760447969693612604626377553784917396703495684054701028830705544122999455709911682072701207602322968983526728310206589449809049679216931523000734423569746917060981832666724166903832432690155162996443599339360298573547674356997431565693640688093856603517319297444108915635459573573023580901308964206448944102747325491543755298124762768727009313138197184181132147722180048203175215021088335940164993810774117749344873381812458281346515091371352254368067672868163120272645321411907239166931637908628037394127973038093585818846154757333029748291621953840226668129885707953323338785582478970765685402343550169848730492155529798382822371567187795645444161133946032574113500201164383606219244814022036203609006911806771710600178674637202188477546064913665184831163603438763762927257776319631144064456959076415449641366895270295204163243139485091176003410945381004938663053928309744396727946846041118897631287296150588756164859651269265369532640456667247527642979560112042424167712344250188350935153175880835425948932602229594924171099090988487043906735586758396486254398211404528831082711416405703936201403770492770012091779559909724727326627741536329114676290816495356402471804139906338808783657369196197198428527713822777877678589851837616247690516325068859131611030201463747871649930438176479626850900851369020481333683748024333395255150912199496496348394190831249977748637195921173806992885519784612517098229959942318513767102821242936976497299530749318228334615254081284655408250890460772717797056359090084062112753702106769427175857823178699711679641316580857471826960104433191554837674085153438207221896344018143741236813546361479685451533404381701856090275374266618567268572353024977132900456599595208585440885884112944958130695276047335432230806676044305411801075506882508742741163317381641015279800619888686933668397104075693732861049410153744309062105189989408346828116242160711366787717732285027460869629620536358895127972259256384727144636885040734186625315372266859551502652609246230984946912891760573205278905470467338875334201743812089067236647079591131239490476891288718849748433749910736137366842475778334244183531954267473165076793495112714240303290918343075002099538591880270256426672231244647140809256403352043648960103788924589496094731758184342273332672494495157191960556979806954386443261484745012156859657097340671156284277868410989978648735859578969173698674443023913588206479293630154660432438095219591198448009046907237343344807207356461364757959184084731267303212292447329578548791264450192586269997482896653883030596540830646829598200357617982353651901038350191204176892786283696662426642972115176642420629386352383085219719507288420668759245629108492857854409145405864588091992161758590528257509289178699456441591709289395257157491100455588570770523156888749833640749091344998646871205992223937943683531534433015906534812619457842250802064776159329507471015252364938543642095561566942631363808173611848005885818870024855160067633535873135753839807664130443959449997125587134580842941071312695796793258567522062827866098625269447037756527553888449533972691791197462684356259867789183018543434439683961547205504073591288378396922518071361410277566542419943948266553791254457818496738091812440971465588715369836375608345006663309031017793633779269088971183824793643117528264711972993983597618080887360083317527724986580752314141885460655069544571740888662610835966488123409792785669578694581119042743910041409358054702567342688783964075873064674776239219589813342509913295543877238770940133831119866641170542103582240768573281076026575817171396021361405403674299617409094065990496729961101243920222064561568702873918199097266063232791073316432020577728090121372565694578208018040372907183578563846613743334271736814929742294586477318068153505379919449175030690173887820482327762793319443273874650034126233898396743749315621846262700417875371698312812416482283933098464398291034488403111954078960605625219513709592469617306155705094339894768526723716580243365298812105071526648542623154613434348675976221851461587436078981481529026868041171657932011115042669625230753179643626677310526333076023303926061983172650983633791769172323715118444030662975189708166596429580373198915942045520593579226968542927543843784492292423514189847471582090282916381510206929149723217390649102866389279357437811122592845667943529611151171141283333129798828649351234475669181829920959504218565446274651454300359534093353426845467104032280498848570108535299904964860134533262436413041315556032610721414458268679607137523286686418018226899512236077584962366592968881541078503898386209290108537799103777728287194178917727548164834678667342255258558127273385066099742373670619280782796946025647892693138061237187151303364916539566442768593098487474512716587142471798033457476666349049646785769583666516934519199920533375527449463612509121587140353951529199228034359360879579516852739092148240778145363169883909590180602792635074517136203276715366230473378192662391190643392315025925955172781814226835839045419102391212753455697460462283326426876610144415904389583588595435982196945094049881054088225595102770319168272367349355656989024484913602298035342015753106495688173688579542681928508262749084547904055950398032631862714848214843830931783031100085927367715147705491670069168979480851958568407585861527989877531131760110583155073208876669755861374879112908032798446084073391128294465552892870611143078167791552729470743864348718644294045188572049584017050597410968922519113671923450454371942221304707038348364679910354858938003552118499305781632612013580338268211707605246451793844713891346008808827004796547460594827390696599143288508758454469405135531113938955739332449386722947600755945383977643560291509209370925818961009653708340698650021531597174596209720581093865197708976652920138936106935156591684680696772570725852250307523361596619880754984697140613627110412450719820877671864608832974711503991363051887991917544871348956493414542875117027172530540238765537105593619536799979434621763182318538094461337605540147868160820268033389893302961311115121850824630336097380160794662620708201172791219975188296183451398686042706064187913035752051313425241570432586440582659420541615546399378812042262483342595742134154343006652270901958300505976108408435584381836351522758805136697957086320991179338933308221750914535253399164641344650247960326822366550961044763085014520819735042310204358412824113279092664459410198246752820287601374174350717366342136852674872398372098334076972911383565497244983328700359947703159423146267329626084427969722634051218113611022263900585891949856747711828695815902653001422419040139638833872176849679927061060484038448089350471926579862647068404231643739825165673623258424309977836014022965365013870191090473711816486810711237453241610728802086315610498487742993219727660580653408773857793716001175863767066702965622303699595128483088502726373735771228179093332913116485129933231514821172588216796668338969355561439075828367417502315852381218184564997470601579690135906765933141157838422313421765050888615889797200829240953413270887959692930725451688599110465910675201399645257363234283812899132090796374150764635237021470336219885603204371928852831660082344097962284821813477834142995071427060611668337190380264961410221762494867918232029316660082415491986333458347768635649225256968309725224771039278830307930604759402251571763323382834635952443327899841477474188730208277152162957809495432394614744616231047546398775615130522964567383914412032034305382667365210107300670938639886738023168111982870811186713536958146278934778079732760506582944883333153190110040281800419356402570259339588408554610121624489846920895464326550827502993819823927372057244847040526403892317082926715399582575591642222880103314510177346681749725476065181259478342687086430995646799485350375180113684648817073161270441764459193680637863672508524276941397556344588237472797902590268368578921016029991121998654205865607249619715056209429752852625396612212259921579774732942105535631190438546504721707632373346605203229155774130674721777824592218741203452254123679105670433345817786304859470572504788754050026495044850351365652586134165484758541367839651807698810809295402138173399900976222333120011023349777025989759547174497394242669188202145310212272042024962283480722909191049058494200064798394484101545047171570092415262496166903360612787761773715570463935023437087799324139087427953856589161976793966110458877556930767989624561629486349458220887696545332825823711270340373252626097128618985349375251073642801124890324456189425784291357725536191383577572735899136480477374838206164042078169037487343696413630272276868066442896110444350272554114333850322208462422792439806447503172237769632626146800536822853824348699992204518944961224155555920867796130307839778949733336475838185494025119281474920059687231188064909227671863223098717382643704159685703688562610142688150217036316456562578788888048240899949401624048832844981258875043767171383721203059368512797480850380410712168227995093650334031991660931213519237391586701457503349198742530328588345995921330431790060561529320749352941711213404411655420051136513014342814643920157350384614308990532884483237221625625034209863422991608443303470391039086426452035339856384772649756879471497604334675747103195215954717257396555801735288716829450412729709050574662351695118451653025025074492990988865215967665446891465630620698762949008100976545617309064883495732993019196957424095140681471885232248265630867519587580797743697463269571352254781687561914554125028232672840322073971873510931270669720352373993547573254415642470353857083875550878648153408023101453124550350925726351713736468674860241259746440990073350205602108228798585015052441200985761743610391877688094023750901567264719768899734452480988083363750383890721605957215418266308726962146403859501584070138856696180653852608505014584657615418119456178633565211546854709563665095660754464456519800017935667601595029370212339480737656737117046912489443411739118513535061300126022569996379003641633032749168585841243960911183538352165958707513792993709907633297473454193315047656993424300870522026975382506340748521081155605388696633553240676178125145428614557186420395302966166344467728883668883866571581643418627310349751559188343526595447170542871230894659497918974914722211713430502526017576808238936340406925159857704547630934238476706481795856361669104208058263203333645325417028515874597572626576332931142429133933209915182307839362283849293396724580333067069962260365727455371868132893646620588487755237270917579670137485500177250095060812108937079366698602216202737272001202821252081634120770408769633933635212212904764587273201610538223785609657818081031249342065559522869165056599832146392155239267858749126776985295296547085623558858488067056907891744591641908543093695161111688426090968375410748070139890137744422738468877183041656656341223237426251476188418124687381151740434909455277727422349648120760184161654076342268501619916059403973066100246348658729446500370132841868812414417955402641593070810872693753957428615997782109119164638028591449130371465945435633666969412615816673148317337956832395631714144534198212455017972672175418691192757639899421100941210106619719527671163621270312823381424124086763828023322045335349794439928611299157332025830623955339850538182232215206627495583535361576845855988123367387769319068745474076597680488685997086208423939386723897414316177771316727732403688353941332250617067608562732845914718487313724211641307224539499882729717146954681545431423979174366331646753833841477094155368598427410416105508547106456794048156507333778880273312476491533135888539174312206071391755289357429830140822282248910322060895446803959810800499848128979092027176388393783006675433731705753867633304404883213340367928076017195272969911911195858466164931607388939173051022282154697224405276605397519743136832062858519060609520522211421523481415878373075236772940823810045241943325288139583331879517937337863677461512418698617019878362468179069297645098458601329346205175701399093751178087759869166517075685271949480853238948644471777812575830424510776035447174366245202373768974203309259071255906627693884746733034881860712126401274122392517616989042333084896502980538751117597625478948141495696344155990599221227911244251289952088959138870732556196663329366192742523716580117432114237058880735808700291823200715960451694617623950617624337193706924044974456548707766663957311136930517385515912628915164010790679689528061791815821228222334351778230393416311094777628415035060179753645113688277804865024849488927648553496085941855780687209653552458279691167934670987781911415882344527217910791769549229105872287990369476756508600271381046762332474043225727836924299070450084800887888844974135063992015851042947632098036338709926723147260522649313043322660801798670027331292929912438067820128923499082793849137592685360749190934785905307357892160884387375819269812040999517673711576677684383906326760753170825308114470908982623106364040495918367140405886973941928430094490081248217369101360616034012382976803278150713954634446550494026930881931418746572723814055052452622734161848224948134277448967311939094626181003016692649460342624425194580738306587211098978219137089485291843076996620772591542631469888323762005405284643848911818960403492316336096817429974155653762601025293869475155846617968315556457743387441713092999323776967707476516424442911741059933598723282166299473592810524882143544361557885331817063357969292993650103067028770496817696521061533454324625440024856611836456468868025305761679503086004132110337199076833678471353523003099308460752625180766178468473207313298951467120931956422935074302689368274802073274097214576327263127312029861546071147109982423194639843688275556500760814901094492153098451821654293723564169862966263561936788053073149791909443492136709363780379809624422211218655087016700097673715185957917386699225255212441969177416681087946699903803240449601970769264367049203127629791928955339142477364666366838131911603592078610527999289574363084176895754580600897548251525022491926640049022776871997070308905606224771120768199201569659639666786903857918105009120121109612193545358131534076532392785940971377131446687680215214363374314871580143349148452795736733365752258187376561744071773190831202357756344980241578568577037113671360423551595499689907987231267683836906789460702693703559024551466159356098532258891596084956178667067601701924204520915463559143415363801028366050041225911230156477251355849225082925478801365520695509351459845687420953939479392801788020907511221169086230782442033068992022027620128628116998558957082355862598053456022708085645680100988491278770717628272519719710143658331615550694553295098545885849525256205249053909576790397857693943388912804773257298779228755453026962573402284761796983234567795820302448379071318734941116296144407997891528891416368785238851212825480117903628545865860218467145094175203458470200170755152380927625026517809623331694816977149529496698204805301032283123512726438316620769207073331306942118112128322250892474777936807315648499909202837645849172774455454903486627438190493022189224553177216805226359118247543639662241258154103597045992729564510557546856810069350573880378137124109862437172653773684754513180463687519098509280572413918324861961662851540961782605646492763086326652181361265517182675747334739242536845124052245181276356178244177101945873272088491970222444073604594991948104296592102843748555577796736632094146796603147153823249665154426107795160727410679827787478856426935850913248143297912737231108137208652083660613565886939127418886321767966227344856168452580800779317862444228106983772095485810178304190686663188692820649589825661147374185438842784226464170900951339985535331023965831743792217176006485487259165175771759199375965824813026170187323905133755983005202780933510804119454194195563445890340073631503101759318860942247314257328856193709972893574740009237370425226006295712173289813471753032042146159807906191651402558695239637223768085978784580404090564372084077327867167478434793538277808785944443608179506335281652122429329417725842639463682385886781651989126817469202103004373770159726503478703757643249677145554608315824744061025081690539681821608059894554290148790497516315638524986580293827051832673113000754099196322957364192713547855549401911106250996249666720010952454444551492024348358729003909333411840772626445768119925895957685046826388114832972974117586671981599858995356764942922263329974845335238256417834831170401052052547429041490984217560942176615378988200807206259585420731697505925596104624170621617171547866831382639080455959336619435707934295084926689918897048407337725046229547463912106834765200199584538930229985737684868059087256874195880386207393448355002493316038424407044111603262051845173155842107648967407690570458109829694634821601770495772283046504504399645882379763920358483881822933338185983275368034546829366811594971226977708469872662285059306556035370771652493234235988085729095315857443613148886986427408203991624149353392675893085711715744810764261004906152687012500633005937403247513624483930976597734837524120529129730981093250372758809399124410534134073438440117898714445102306205160897914606349643214935685373192760639744373068724067490496911508037710871177770836183225893672191664829751621910191919227081307264202183214610311817345962935851127272047326384555847248633030460358896900091032994852607142226732796884446145716247099818917097968045620214525608934675199470275411451443234451945286854912966472356933296145833147494018516640133622956695158421682900726022296135195276603634689057238782540210981064504285809399039520951707976647688722088773277361481685652830897040199168370388436303821695738430046457397098205695459087681886293461046573227638723175640609607850143286402561572154322115412779197349824313353081292174066343958473928800213381790449503288682947690205942410808271158834052559582622638609257395711198612863944353106675965805978106784230460734598431080153607451712189317025161912132538828944501508365398181664751353226875817889982800366456314490203893165607657066125908471184594033925223117074535172042947035021496484558353723606746572514601355795637293946491189223377257799846143267997809524568991895523860725951556997214983473015700936198301085439528729781149428276935905833448437048158753197583476769506351465949242011029941800266061869575058141782128432724733119472203847638121517083419965839987545027648185482608168812281258339025110921743630609953610545461550411748318529460017991966036966886615768632986748847773387749846597507759164979201401661289022097904611901349214672741378069376927023491273607184026292795815074209349433292789176719086017415980795529465832091710672119303381293575947376514286748962543796420895213036508234744009637456865137475283361000539295664878329795631187537653598937077493111144177572780333732775454253422754671607254543651311711371053461916664063188003432101438653207987011889107379346159953733563942174084080127575655009296885791699534914741586574149146818837923394657899603347661184355937139861821818729717257936516434112921847307681686252246761159144572079316380259190631584876954853462809229419825915387857142102889533018710556793214831874211478526544898332345987352128275486232488510751709139772336178979740985295144833958232571226091575204862554151291080274131933052634458216933039973811441300879387837015683568002257672399750874127976539332490669954284849537411389216186923895459893661864391946738239051940190467740567953733071962014104996262501516273759748234173676602767552524661163668473808189546829200457579828848089843993410038249436327572431302371040681660390991088648058937028905294494541112729896179865756018883531966900443592768341476423613523600921666271031168622194867509587818902050767756013254108785182254119840933077336036443591992646931585069197552265540571975726945484785583125083712757147617931183009852530929071777446774054620398612789284720938940655870138645286639411393384576848859225001278470632319802896722781086417251639965353950957172852211377675198019330629005104913285202433281545115995338286728607391727457923199817562463700337710530270060750791709222090051494032711622740781141533999504942043873783058214360314024102514573000314206270856249025014793177843780116873905384110529833481970494872537004214239810153574442802547238496608049820090242530433103313302154028070091996055969837731728720677035951111450040241270883873938267739863723262773949691985414054483900868212700834763926539598588092059816916362134887308675866480509050585809342804162475981880066570137871962363336008633574524741295718643142967240237010431457185561527777683818864546176377007810291020202260391285291219908913040527650295572961482454511459332979366265618752408381988180151551603676774169951476178984152864978256104248321205466512007711087589902733830530888619355529605905839560901553405549097493661054927001701577795307831445711497007775182765808922521875970369286444053537206701708621083942285324534503359574189763370709193997699322722839234800805000781522680007625799350167502533832953249270294599131885863804046136997676209424246907925416308363990495504971650162786606192643400988852487253459910875958240855291969503078163084406867052876348487440398562073488553432997486974542218410615167747301145149101232478022970065931350724654021362652376878785681294060557374658843614660841288074516206313709431016925675062932302610223444038859621884208788400999473004260591140827832626707756522108663085684072647212816259258580610348381653955107583473600204538952214454360817575619387638045670299741033475061052881681035856692998539672286778110281599130833353391860531419856544708889311947016539413603062099673068630414668114350596737096574892663178538881499926619089310259601436257524937334028918433609657688588131488109160011156301269093300134189134821089666737054506313182978800473304703685968160751247101343928035275645903031938715385666776113940295802006973537961461158924506817488206890647596929114412159401837062660253927078463942839166616182678649092721640946687539990200815466371099387582461291126048978711887681623408137583057018924782387225071092159252553446872190786518092260186261389119194085290963411474734975862206361539078755535531824252250622481647804194405610718250066893313522174151379912550646028073615415497428576331887087344027424402861242143703740893957974995598127191146091532777385670152132588557111804505142518066016023452950378732240880816718661986175036572008078605457202387439884353175741796575537744204956223659107308882348623133723008034821869037938340328978730708687141277515404158818836401156716943575043940792901781225466472290934689288127272628484959746248546594951688415052134498874691904061159016655554823920036288912781051208786809247164587235273218214208131573556552237302811684898531454262198883856765102842852625958670159582378776947242766986508170829189414909354804430273875960777603098870076430353357654648767555686927313825882860622012931982622984019364842240768456317958231390076023256900165283665157296313211939732053268342986679590219936721136170033438758848029575404403945583902425321036278654770817483248405703294573399841950084464646757316122087351829505174429569988905551648132112525303911037871619121421433308751629265338671295059978744889688708102261326232960275750304398944234744309728796620329882598923401792080637465269604158342052723256054740073694658061110459129496747289040283075108300720238540455264569152985408423515696791615775578037034186941428553062910297213541117528889840834377092043892702603818572303068532969866105868619073360349930953733228959400513921482088002043896542766667731798195067136203246625079415875889391813407038583340421211536194848833290532203572188410533962670185448642333321522067565837789532786755990580399818499819980758540352811418652247423607231522273222366367843767650356464848480891023170252706673220390459295832723939791964043900231605806925989592395983309220289156339323885198426568108611195705849019115786488272069939025904257083020279044216830138107012048552985469887596047158224510996701142242097063429756514336771943387908247388757189122278202730195796215981113364671897898375767449384432426652077295574664046451091403345466049943138460150557444975160600325270990205518877570265974920877493985483297013459108357304426413542141894259060516029135473142619554876757858164142061037213499153070033457164965173447900705022070296302241036345146660955319089478461081097955088688239058195521261351802135206040394663066824473041527334885558808411630106543469620438177031302657694287059633640323973544158255885286695940248695921470219718780144391770855539637965465345591932857346312295066265345658830764707448376695635781585390319238636182008449603354356789227799283017787647627585171366980966830583385070568314548778023389634817245207152387059060212985622511120174787731535835006469900520340159942296479854328301063918770608800586737983872229165660514977980258405745444445338712898920896386788681151379730986828125741852079088566126412284048476554718767955642484351775861299054355615981728650058694651394120331104119306292366860503061214521544045072903864871759419656277839173476587615461216469899063122306781706271707820813335189255674743589211520868918287237460564799114618981335145489245640830516282777666392395082712593654802750448401652769142596248306056738993299696165958488085449083455549862836156180922067631440766316887221806393138321324542757969544672047402581660721637876942006419509557902669966759532722339974895408723092388022119877902573351341247279994416536831075880949973203289312096119784522046922235494237589591745920234335072774268729643475926152983744835033000357891207238816058377068267849771149544059095191730389569807788675792943837307517844668706368278129489083378685963604566264192670036066493685909211956668903737059306619155697753184914206346110461235180728256210282789326129482834088217031988178325352932896669106250217377725918413493260571868755763191303638227194905115986219986365459107605088957145462047602232263579827841570172309295836904579293866073816998681151875200459316262518322106264728536082831460199394836184986481810690396734847459235973845772031389986005938140487303381729731821791213136419615831981274773843221868347242052160806346448932717111192210411943605404706593826518515445777581481163119458826250444389925634983644526185559660371843546077554218692950732768855024823195459920918462728991100406065295763367886055363121564746863823012409406356500085092161695811057333460853316148280521732643950378207488475135947635964905616330821515973895368228844835885227541086261222252391392886172265500006559304292929079910580026686107912174651620940743611318842198534204314473863656743282853245238699874171617328192500757645878067819793297645050290607239002015595445159353563318327898123077646942650752699064171837718746268216043876612061583671263427038282909490935646002509052181703848991549222889957184053138527506731603206943327467789773657710933322469300794627574730182203014951653078871748813804129921978862543999511521747290494976790800302401588853723214543335648315980847836118015854505456736398625073985515607455528741332633579294762186276837667845009324654616601685354737862814811955610291330853198193628297249876727902792856277834028127865659734065400435950445255865608372335451869866173641074740929188754709048463213221063620089591253289883728159621522430755562714243327957181786018139427222631671700024109173743273112066705829539041683827023730353166279950127228267041678876427807472494277956434979621599455062452934742344491376632221786822189527527816618462471564026315748785239469674057394108599931578522053185460820448417905835354829124770492110612921551016988722956937854107709297428073866832689022397936816860528233012468250910837825807085320483073901822096561776438588287828878633601623213538126186226207620628836909406122845438732076232887351280279824003285565361708748145458462723080532330254868338253801026109263242342381215033503811796807832437382693864933547701558970948598304926164330509797759013320212245964989171930127970259030751870291381917978096425138287331104116171864593196830751540543179353999635220928782940763703530593299154999192707522850529287196975412167160525506201770108146704057986063014264437445382939658330057311053084862027823578673128688217033558171636121273824041959952070250959475584988255738231080979158665475898724393174303018311428862413474395081032551335157836084301217240156517553897625501669182689084248971020864008415469003493376348444619958044803781168957346549621988768233546932519564981972775261082163079078579520619783857680331830429433548966570030576869081919464607552678220806685105561640768165688194261379543127740276181833930685164081493468112340093957852755588270918622080514683528982223122609101841883841621473438109663663975771189619941189015765424916298192346466544490073645324893519714140140659860749834064759877982898949181360934136155321080696865702017594269544552338016371742530729780738613937082119894949202265452582669395630122977295461509062956692750567834925620416441885414944141623611303756830858056151203156145822571680254424498920036832495338591413896225425094465049114965781953678001044246539940224324084872137906463172961718542956155875935522256324892722808338057162885508420294033475435311148621015170901479835241123406310896411158107647115647593812681685449433096009799385461624237255852878775638050030187505981784270309975225966706292207877308074143615687259382564622566884619639315158164309735068312687390485905964701313313243225900446043199561729087084565506008263395530557364772512055521473295228709149491953820611398693588365677740691413672404609008979993880988602740724702257243300690251236340704379513356058402023137630731103948653390022694078932635551898856720665479389637010389940387240469976818284321291454217112768942998877327522455527356422938974634880611908832872306496545812744201037149423666591947598897124864597988801775566349134892103676227531424599424032427231016042547652230898689920182665443367695631509215137181796242943533878837167350502940969644314743520513093402072275047044077408286216701491115475247955257125043581036266562191700645270137848524377625848832039308403737181046360140601016941622865189190252247154054840861470188668386354861808948703404485298383445272920601697322190283693051222054207576037370693650217183782048752491246040230336439533918983335001473760356935450539257758389159569736976001690020925587270493827821077575441533697283056357421670151622900973420026892741009488686134494242520117637133468929927914399933337168842313091006477403629739281553114172089420582068168518850158331406930248047722476533702130681280413899268518971450208382570281037133988602369038348587268423096458857772854560025718623223284495600080270728529872574398119756446187825952525652321263695226486465659697038354197863066848185022304421200237645886456670692604322495555322937676209403813348399127421417093086721374185578739158234681765856489976903554419896210154792259970252680497303641394598352214908100400513377860839277846303141758507355711104495557118000671142349037634529035493747517465600888908261858687062041110721895262805772617401832078244592363410015746231550444585135154494493655727123992499950052662919664213420645089267692797975044394231281449660098084094098438703507048055261379222577159697217113783430381165362575420256730223968937106728059059562292308134863205434648580861078911067979319843445293232838708682154013882288331591044522852694740699176802023119081298328636033609184542579011464120096994912969710223150552292770331696258452679180616061840384198794342063238951369899435503018074010230441100337973457345898061128467722495880582582974974905972360431308936930740140948375326148924274232186096363318344507875896338903407187911464619554488654351289030051376881151150094298567787098417376050859366740649389626608353713772602685662104644997851958940416146776455775487977348593104543386152691158159628457396454037414877686339008716499087096283963019101755782796996176013604254593799536312625387109689806489253417243440731369077571181126571777663516487731932885780599010043516801764537451772109040329461465286529982337505348479917695976521925033824713284395958921525573958883840813133237200435382821122537072933722600123670533805419594459519848514483042418976957468886999232582158015479682278312795785265045334245848181625123176269834610509499169703400932773604234250705306602241320614680866198965273535766918790480938087464114843749966291477366489803659150418794862476835606278540727857682821290344653141597479683221962400417356897709183404110563774420506985755198557120872869864698470700265305041521488603494155112851026422902557289179357275071714444704112279349239190849693828840591547148831593335577505772848038590477417139027849048144718295076555750457338456249755236737803269723254336920073685122801442326995544332222287915434845438315298766203959866926015765732732345318767516350980651752960117131235216791478027113193826600546174843737984052439713374506215368131758070467441813408421925862753570682349187493959504224831981794963285168837108489412291477127869953615956450100511961669039790808809597987514882852830399019282667090353956131897773876329579600349661824557017159914246658909308745261139289682849099781223670786506663581543615616161903435273721329801816155053789227814779161994398046630019284923282039436436468406822005534533818916995202328584934206530277835149160532644570006790445947733204062098572934521599447150851880766718358772371931923493982446451977916272573199358933350868251350393465605184949968668956320075931008513327196383360595995614904114299054607715455929067611711896713668529399280154481370836249187932521908640585880611329989014511449079093534812391783419427163787221984551952294331000647082600831237190947956817723890355571955017837233088951857382566968422631659146832686407864034175716367577221445903462457758035848147012105892798913133298090946628341640950038252867013759954373657082659577408909756611515616250323614557339286370547808380182753214354307181277357142052316266683126007375557095247913026636815413418913098101303175715267361207069035260175214797978708044283341222641445067850156383809845198184079780106158422166422816758146172994890681557603886341279118404458725690408550326224439863631605928063090246741456286336197784191905368533928236582105843506547343545346148093235882539847005804306366955203138967567969869024045223071772775284392682583369065584982855846449375699433179557394826181905604691547307925630804078737798197434782260030759701477583980195408374864625566868989522750615466972268365826023145222416677792981968617828032936873951596217478352646486722471576745784590080420366878974983848910506560400479849226045570731799344293784796787996099358778088165835329217431654999788098990467645632647710390668992363607317945512786200085976812947050164079780792382625917756206639589339706124490635734671162417522177968328600748009468553741099954138581519383040134403345163445975872073026045979393498796361062848439054139330476867917178262520465291254214195582075579467317419710976492989437530840175006283318645996247008645682909680793008126646159629857614203799092269031133753093490618098992156394891671590729527221941382662801241584173743110606175315537156501573943598531710646513645716909577207311313633499629255435741921398764509750722316375188396970200531925947700342895128571382408394038620035769717549946982338009035734926023582286042582938401157940848870084273142727043899967288976870469881722011838282916124291104247901716563488301983630532259564575599098542555077032715278116436981392407059345372574242437267256214526319678792892556649826399017938248092691901821912850882505708163145582748152194461245851215473324602936738702363457894196478117077749043121939949880750991622555379794362739005656091361836763162121608949953096555348277316619467397803450972313804830007210464132886639292514746275775484818866878606244496910722499355309500633027672374075719493187162422065049748962582174545016344355992376613001291405508515359516496741497363836148767371978254588561483961349405931999243336269709827850760571445877846004174009824100265491926344740171820963932344498202172428261983866429907313826092073481769957461036994676052824351173605016687245737122165026511190912045016976517422638869439629814562496924409138379393667256669377057146633486370804721140996680505434453479164662409535547330892900992877282950715534455710371230541413331403660121589977410295831333386275217799363712363459663378346120759152566916885331817831812693941170094775398065987643075897745453788385102152007339381760566760060470290440486492020809762625964767723465414455427419881090451241605876538825333810793085493131340122418618753282854415937134687064234790184791563678060732810436172579706336932379352112609190095936479277809666721119698369103314971482235243612303667399964521336556063907172481915168390941891239609973237566684777363291091775410977428487429318130133434598579308011488072471239098757064787583731118063600276004040578756057797152932876509422591909312159398078143601391677722646831759656984421088177115222924841352169376516360678838532479454991575201537408331415611333808793579403585706086120305679537743612158205428213919928831468616193993769383833235447696922516234192926934788898155459551148214515383409444077842009107185887756231525084726822112236068186052516159199355202228997529389080239988141812646122270632064133351770157242551551468090408601252518689583838077982946462636517794663160630171767295196222044049364315113191340582376175362008283353954576857219490398172160947300817088628132101822094049102655430643293495232077906077643603433848183061068525804509763382226583407611242545034143205919926478147966765203294865574656738339832082354310911491672487088062758375142187826852511461114257207854543846429714261299141433362494439180340977704406931610663729611333825212719691354360180837930501841396075668010080962534319496776551593806733755419997610088170909985550017242587058677235455738677745907434784916728136450152772085348996504739174676041644540900870087292359657445629128505849845567565599919103624877059430194165928087713740088071934274222585404979206373170457936736334467519405838223795547578520308677539284159682138732972477422745092669964932638948452237900176094246702577986005884096353028276473300153447267209225509374050723314702055834493135907588838354652203886562294366904846695345868361575907177986624108984993095843141442763052035348490181170525052352782182847241585418835389109410445832864807343354679922338119297855227504109868092919609389833619933232536870263882247185107153334507151648733928532156216156643628227241069595237664103054916847927876679372636419048186332975813098171537518194784071222767231092323114271353597615913557150905049281863296491029804196159910971123088482997146443843052834850305301422455386094506980422374584235673755004038694326154713409457460607012997332244667409891715491296778520018406558562924228537251824236969105867202650603423090742423471778492545135692930582190326665122524834111596021939679570645649859406786669930929705910087557159071715804993642992392286586099808558888588188922448466963742056693544276753835520934105990927846931673567118144167328385470733370574988114668438312091242174013020809197685074108841604667077982281071679677495906398611550158335559431899158120009725360417290958507706881901823906723956369421631639142841507573099061218395561251086880215497924673821409955837537975700196729566571995135137597115486673570813788689022201097383756583485245903620086358258548123031421957287907658968316682237272533434058611583356031409616536552695870032867482242548206672850921985794608160881244296441232536655120691801316356863018559880419356774273320440118250033557817700807005652623468712312750766615726217202340366090471921203781151688380857829352971543888560650032293724843372314863824725491612519406913047216303054663215870403222549278793170212647806101390164273559335458741468806451009076705172202458251169067838290038561389236113748000290012720631498029256221836746309643164382906805626732936762768278888910949763575793676980680468296564500131584723320368518639258468219816835189649447201007755918420647807798669913101372122809605867295421889747466373995650818654025824332063295426976543942648297994697323929285158279048116627629267729398175390170742759952406019285385000971890121115051984961725001133749821125662927781069069085739975786276940821756600085105367279839659813569035783584662842851817159422275089193088341844618761092546348393980798424263455164319762697158027293856969659751427061991945273349257318313715782635288594727365534895771236839401151266890423235815870391199718594378798808264151034940325690693167570229472952979341212844936403161569008307941112501586831335275712015359339364665298417184776848485725984029019409072552905530786205973839408428135463484163093139853181506552499967284007227404536488400688330422073084145468455111694995989961202908471857004426485265965020423272888053887595469358974565160666552851241720141101181738505099094433301303374384657422209522959354235827982482475865258332052111966619989680400780222625669445988539517872111610669299744395115201031794349205457463519260418300846314132207119720567968815291889245327116222426368931728385779015724190173765834886137352227667575404866682792991971435576151583788375433559763617534230600266403005524976293298936762700077553645428858115269470751429108038731364568148048912805207852612551002668151895274108123206740015211992734913570022355393377023671292302822690966911793944383362479266517439608986630052512958539528030992022598646042103468493932511058545877962451506181767996274509855161000496257204476609768338153133081951717547636938611166951072725740193474242515525149432018599788646184413253345271050871011272091423602451531384395469917291003460583233119126030795995736591004240787788137818195192555967148742560221986474338424816046907683402853257154903647911536752160903539495908938182961955404175383396373790349236361555740139423626801781322334618607857172100536163240814793495128028452408131828831998605425355502391453884238156456936916834632758737195937123022845337720457198919318523807792517252197605858843741252537942840371355738002904977228261711688084917268643108998074095411721651265288185580161512100387037690788430743964584701426686662299482656533666415720034333363767511174269701546982393085870472754420436359827054184716364956698936210526540151206246357379532386314361079639924446555217758180589899353291207778441707206033230341018723642158230738442391897046518448640592198992495888702280057072287613153682625769874245901443299589946109351638929363621050714019384820414290990928763770015232914357013414274345850183903662225332235831140347765928048388900934052517370160529534343698144288701486507241809559363187974896783583855593160705984267928325856159265866959175700819661067920034765739280155030576356569230447579939131474904844611267453033656235703348875629674544956107280839577703035919195923930427696245096299355025153462606405963290708619772363903024353892362263968385213526947581626495384027453897934503440171941613783335607196470741320633218266882317203742782526610904211156918448177099523096541022943377026915489895109112701599593828786697760773249836716439511766846207049496060408404722494865570754267163086079721290399963763964139148511219763889752187044711541429532048633522549882593069218409277545590792502459428223032883437764765408913336738828766040670694481252729954364088245040180832398819817660060992533494102148622778377578357583538363496461956206552588688349323209536055608750441407027421217262535619885202206221452979453383858106641425496947163468971477821859314030792734618384805888880631337455742575430507998252699457604245322435648591701316360870315280191013543793397626807747692569556779829678208048351625188069427123561538883045636991804197833048041560992268279044643485688221523817903599383546994537184467401781032814457195832817416711181854567108896537225657553704136686333259272809911894704702509962137431463324433948976245147852223222956001616129421283412334916848124983739674914837601180092991112405529602015533420171210045333745979673563505949261253567672549851640619992230958079657973480829826263487411970901979809016451401009411478870467164656402145795454046015192329255345948711186667683559445066545460895818529923802738686761298260176311057433497269801773263090221299235449211429828799423031070554625759883404963962568046987960422615594379835161800141643000919403894205783618145502386176023078152862148952334456284294391133742461665787392097296889757595704292595807872791672295261762972866530121790161177303668567691409592793697536539049521080116975667704371376580817922407086085052530544798510528029841489443071340445046943240095283519387451180181612698837718181641666782590563266476569826160138799867532229138197150765978044483437909206740174507316194078088228092025125814113357738083227224446655893623612624605349639740728477356608483097219198130237450832968557080684715703663841022505645513042862069480242882387513819984534657233325707916375197689640644913340466021557483746872067349586599771563539220739468010091666141753078231367618972074866246558061864247255082285596771283115987607080425923472231858862323246416011438811333416841092954399779898550928424366726155034222385235125149853770586133625117471501258891073061813861829090207627553492181450649397953504376535687391067179532981551207430760724450470215262015038040535088124949476247727490238074693856904087442259381989423642898088383819351587533151731314172281736066684744996082868985292618861207827760093700193884748342792071720476278216209036354054070655250641751527555166769904682940103538032413285967944128467887100243444081608428881917250317566451119681131218771769005548101003755903023321843322603965488822835119561854170094143757853084130393049524414691859743587326321719602740907019148827497172498229611483725786481072361567088198025767549617729187648867065653123496552796063392377941542225983769226636730816666167700807427875663842366214475326122764389451644085670426775139413691547673916062090684540945850033817996765824411849865827300433979707942760851575566553067843050177613766734586670959387082918531038493608537838491216261611936923188384458687198515648306789538643127321334275892124588498050604484008807109650659987110980488223715583052479659406132970713668178754255459790482978322447215196631824655604196145912258706025898102690665705000592941479175528711654285376247478910257812118593656436739438184882098283976365240650718943522689314569207624365815141300673672016138384709113198840301469841049851223918766826430792939201103444477539955160633938143109194602300877983626691967989409072142671666479915910789736376894382849604873202493321846596613588074288083918174321398408565438974735237008708126479548740505368080551054368749411298757955606992591412606093495822265300435764320962377508129652818778697483117061931486184197497503409813209956482476583033694525555047445157408319330785547591617583503379593440989318006340942714882282920329301093738076750730523449093371881161200574515155951446992372744243302648372097291949470619966255725377803975949606412038095582713669646336826898044620289604412617376387003234103512237920500704092102608278202468318723658256677965758262097639204775151485562162260333800439446897603296530346285647601959815195292321029578185168325380198644191069904897859836951870973201617314352182109821746584304726651282756701748139518351968081908061600648763614757018547461746295615805848877771054812901993657186027379264830434574267265933619968091268610275032671549050289924390014852345687730349513828848866902329571753771481886634805640526525986479963324478132554483100292629074003519078533532733462380009198427238383230535249282113177693060109618471315453434741338164488121324324245772777366319350690152671069070008491667893678628636089469573492974112138888979048917016294250795321761278472463761091836287550965293904933194358283986721883775393121075086285204603920239477936173248859403292981947167501822321793421026673357183710360483135003579208993429888252989540084673683503282445506982024400578333128562522680639213222183920358851724781014730366680944393859436096805984056182198014150756148553271938583047908430990217171511004160568045960909052177984474842462262407310807951169054499786834729710706266595296755799089515571671320971337493182315725676340980737604379584510554500505855295545393784352843647370174476678634594968081493684422021959344828614488256626340551148977684783855115919711022391765695155663549270307759670570403092696677491512701646079892138852792453300132340899849167549467436747481205613530926633027938972371244250413078600890562388899965923618335927966557725591255369777617881939961120480290008836683169523153497800205142564274701247829098934124101135560735332076563041670595522163103896963497319715636503002262938577024448129580053269050123348216264451906493223708817088550409686432596586871057585283438968151096193628308325896093377302714051436138290656218560882525284954512218916034186985459398394496454655941904627157470854502806526432826688115307900271578231972098736527830299846574190803926680876498532317938032000441220841241122776454956748492387929842247214849278508496384778438827907622003655779759697767699197033158084533479232689960908792856507745638696200477417309939590629968169350155006604229734682901862040696289651286932769914551558010781100003000200375599329939221093422781643235072441868698692153202069377803049643437471830636004432952508351695087216484308031901194207111568986524465803583068375684964965262600103174705792623471230857722615811733876705138366960078510975819499102372807052103611940335040378695088935036196850374408625837936396603919786845529632382288901485641813333043132602743701959101737571273492535384977657336570922566054409732929598074296112557295306883211150593223666365855115494936016953372833873255762595131502160882832611634191724238820265925535214813622691381359115085258450292076318262858547843726422873186512319197797719646153107849032382588069130622739429046102009900659636632867679723289337768936149301027669747465796272656090314793627895006507113478896567589812733313599573551534893249043349958305031163780193578712989944527910152626192170251967001842428888194573328670769199202120800939401249119688285990674247701267575166513398319757452278481110928845348057448290383853201005922403009759375506095180972941434770222867344517460364341226437443652437836206877367567597238931357277423298653908178050150547975663630046469338714160423434439835983997554192302151712079755634450095735286639576446808919701999760061485774594421048393043188305153646461149896723845498535732276293772580420313821090733707236200867529119303684546114960360285118068298106237113879220545098832062894983557778726852692935846670891300188395388908662233698056377202129380254941541036427767696685925252572114017188279775574351051517801483515867102918509232845434927064636718476181686009338762663952444165458215380391503447482045972580318807954287957398579784485763200047799268282148504068048749793694457244103167087369021712123858510213859543325533516744721559982035704641496812141385831694653580221975627529343979096084136879118628679639314295168603576928665360431204017719216932790428053708077129786176552766945976071767824949977808829729668121650698987325007832233971804028019198211541023821868578315078762123302752618997025326729612209864066904506631540546179450703309390847136273304851848116344090774324800067365536856045593443724806648786816330751813038754398440234444243574927470403622123082836630807781902065848141973378934045544031376056301178333050053533406799586766335208082650418996233845401123107592162885653287943598533227617912404213384798929468161032630705141793298380936116792486186265751372150130791177126171562796359716642368046283327897302362048376159381754964079475252377346493398270994228703717134039787771289352103261332563240579088130997979446784270622854965724139388513485391787895903018399952609953326125208346342117498353266930508422717865660807488715548090469916990509865341556918631427746252819369876701971059687022870352998956615771733759946299465366860200916697632732415972697630810456929520129893754995264406544979792619123615261786863115694346270233135747814132974186035403385164901265684347322988791073896906505564232514177830489474551848705222677998975301525796558660021209683802863093762629451196610118654425810690790859583162316158233945748564241136262241419207250346610931925966401561589133208635212727163345874913477067765971680855289707795942909945154289117267176380176239847596939542126952611219923265789350306060428140436895845199620353961773242519328719383418012554027688072605939537426737558531730565145205795647699046956221773623186072619597415877793943012444629628417155160842111982182415611300627421289017990259176492851476498069064653091895475956965865726192534586778476060869482064730954074453271171310040349817385570423287772548579450211580307123378035776201433869706499014827792548882641337515657248487923347301190748161985576399151586273771301342713579920108432364049279357427262957698810260484231369375136400870221760153068806522033275487516971662937856249015874520554052770118737823892019918065570262954215957679785294771649280325439755707558678033491184842100748414482417298603931714304279485877102843149038417431267260318021145800447025259575225034091280292774422884709774168846661899942109353810940088009049203540477936713791892426820211224211162615240026987126429731575858475769193938429855980428184337519398625841152749261400269066762426340701670580081065905785292416332383532126336245099209395625350675091586758657695367486290739187977045384007471547858022328126719287479316363547471323134119915677936908604245871524186594072813451174517263423957740431537475081694573989925230782705840332758183422162323714614740624726416166911581121154012562503438671372267519204514430489552019982060601625197783658563930880069414760684497148719165369304139374704794827113358758291337817095436414368182610206860118166578018905704482738916442184477810638127176878818728219449288522024928277270741622482210936648974440846756906854972300450301108121443304596570558791696538428261862857544164065039330633396850892807752647997570440943021434921680474462585667816791422929577807433999473504828884762911007784990739564102752426845764859610719275417339416599704097118789308786722157083937812739365674061724482215808448317930816039857654737192606934065971771128837321031358432489561366520060046248673101360393525469078814578430962895775546367616114215643948800319876635238199448798604168360183116872481764714382220021308137767256657992450649355825867153577180314108277408345322531773257799253513252731414886822260129825239679815507107250560686690709994800754959431744031651024730082151760832528126656871245552174367875698604144849858513244669624730912692548253471866714465630078290227489409750894887106677742668796578594590644443711043219857025556308404214693209890755801929700947324688313187143818761007622509281399472155066195617520313028359726201713982113922992645224163544025454632949159901873911681260014455752974981020545103105146695449765449006614792415891318651424365030708004606530214121477653013919924933612392332741309342904485679245647956043990919914443013694904671766835511695825634527464733535450365710957157440987383544901800362664329790955474950815467347111653495582405743279937913699332166473981722758153531308839273419883026031588309761706140836734977675519943213200452793320409694873201964293360611154343820117705918049102122521876204746409987145209368986675739275953510868748327377587868199873802207036001509369229827735758618221100227631024749032529055120286504274407899800371187209145625360629005693771107549774488078401753429772153221265260710949893410813387642753564318571320810921542527946664018044778739856014998365217247248740923411466753389025401632550249110591726127134137560853447901622090203200547241106010150898078017786737617656055142364986225585924103125102288648718109001847821202860628351391116800567823392860102149513856691572616011663828497158509563402748535208440399665720481209919983095914630420636590761611020567519452081949819706856092834889215268103436097715101120560899097024010787003144098605029693951070313907826027928284830322919292970044296412115537810962935162021203543513337898971283645905585999880086518526736521931963806972278627438505036242780259821198138765222552228458145195762266838526215248475582870078620986582921393897860878572762927237197616186317762898577432188225015898777163293694009945807959725063941984383372202191902451552293357172394686085303740109182847570194715347576558667316891067735023254627037152328556938981528224159178305640103719845859282493721235146714953638717673029115405712918664326711013122122554267524793147382083615863134092010757968370708382747948611504939367295412264447789547389125704210212204949554261750528926031426043063532342662032461224755402630478468773573457113098092532601314142757404129895166556527410798911942014916596086183135273848195499468130250547536663730035973817497334358603778418330378998482952894206204494664233041417013095182836065590223091997497675646713194202708330046990343517988201883777152224090421337582420420123193914877791162642740947865734823653521826978221484696176679725410514151371547801695604925697188755052173507702080659889370354704229125612250290334570003233345018601593866916070872080759001204879403628376055003357294470935984062671978672085919628989368347648164233159530055857549843262425815447934472674715083380760582266403861801649464368001060640045396838828017735567209545855895368145979267940543235981000494220820934650250071545213186089107502513290130389874461975796232285356788442997398079026644558897550950829239999566881351506288086671411583401272797970489229694725848674299799960311929971868782193390368379775497758037047199273644485786363103523015689490165242107239888988099612485237219869508583166884728210719187605597335339925338715738355803327078323187329166664211823883140328859375052724736567257672769601954885495258734916036210303028987150716075885306694655616507424157556067511450550984201162528594929953744809278299375104390868743539621815898608337690802228686512492422410725257922371589110246106286932907164829201372670259005041913675004980777365696990219194881710004540196253390085660635242932098700889923145795104279262486135150173710539171438983468293112478539581253352490608429077381513437393333708807251845524880557656200910908039517242254551829538070333410105388294941489401609620216386231291425863346041439920221854317457632086562966501314061977996543820521652499782653802135603080671943874623439481447712793129087957125982082550992610330662549581900016124935522448385058782809495188191024975128513425615809133165803573472769476061797837946938202620241619508695448270660718953267508140446394652571281920627600055201085313513052867368897216587173965231529715801024947742416971402946223428796397035254730395203879775825979427047104480589027498271148013873453207611398476907638314915386882457517430577790852286770147171030908730802348410535448004282829527963640649130314543654669484796608195574772621820031745704452852529623745380331418013931662675518913664841482188667208903246542062973316283038488168837567542110985451514318710636486242055513102049063629509058826497385199266716931899499873560078337296810652119671652613772207497930269936922134882329426023164384096626670333145697720474558022334668811434490900110293987192816396571229382913203453885607813818629374526671641997941375175444440445858932256994267660263381451246600571685527664264443016780756396563410370529520517362861932157148263605169374423018744490470524461559379313894310104173463009367699701135122795169428026993228998001326825158861967174699096490202394551997642791386766377796831410849996220866127919350703833301595550890010538568847091024251296731930904185795553651168588593962294850229380198956050453761194497324021891648720335143576588072148321582321940055726160077940835665595545728140464761994848165858480835850495779787090481069629708705278358931435391024123738639943666459550829381986817695736306778679333778975265616672015280744488507331734549877036294781152704736077066374048682879521422171790286791225960732883918668802454913587427806485711749368893685940117064106642977667347934196982267181699571389257985188260376955770812940613842461240167425158182515448177416822135997816401560346381636879816195915117340360167020420287597166102446076953342747964570564883597357305411603079628327667929488746944537962234704477265810068009823402796569851999055063816489710211120727571981750923054721280264387030616240997174881685603071862109388125988194304863499021661385874861622504317523117640311881989473353604614625906193758932527281733243749821120876766775909075635528106464141006228332408785617659687471386214300280570539857392497473302973163863099630310780646372490265015928350614327006841929533442245219913901215144297713909827768242107742981776403183750982013520406411975109130843209624187406704473056706686257076994272123208832272034622059714797284282229344144875744074573034511877866232030225990466432544841715045903181331093419590407481645650157427550369876159551864399352545787383575883678374014203194807433917068961575389905040606347818384721587967759502552494128044740133324299061021157933348577591794849329957892804490016327427085940144599812844023637652645443086130738164269688061249715321957173241481697795110064812525007923260920678405509139227570480774081319008547912992330370309575807199714024799779256071876389196352241512021318727075220443057844436523530472792589428327970450641488294492102940652131876227279468780187063455287582697351342042214820294021385674823055978670004561401868950916597014949148164097890289867110125369901937253284821796297296472502533350860726743593340659916340573197377950980310004233225505246163634345968241668148993530731294068515667499354648633026766000341169745997142975473716694367650380720852592292914098331667249860160547489170555134781551165094871219073136558850273986125139409141460322620622819012358307307661181783121166303872414132727822237579756521821944364026646331577316245455006739790689086908118552358499756482451638949353359906258401859251478131318297260603467391882361338130672171022463651787779202116725365869239235398552774803509930032453530800144364637125086573576256715530557244761417277500106115781975606223208379399297567745715311941429007021643580126378963993759332472483918342445189942736821246353942904464695448202121214086772436012573913290516548797235383133783598863168173754010492507632965711571153824909433024183205608797868149324840154358102064564072077087587437538590748292770609697446204694940841143960838805033993312462268656962040644301222359466130256824440278913957591828746285232215167161451668837797332920478720046952722345402445664445208810710690167129173630418002833654336436689836265643049552132801689476383241284126204369653493906733409641455427892859695125145463625743815467623462793990130271327611922105404959343691031755283445909469984283419593285005670819770636898747914380285513011231890991138626813096516382983750422908458599656676996468330274053788497561168244799648043876702835719281710654851227977658066287902774506418461721347262090294764843725411470667167966509939679179019248259283304301725288486352824440697970255589414988875621637830302698892583481591858138528318618016122691615886077101416961050979295267064192467747954486267755277501029915966367368148238964638955679601122420177914526426860819447509715298395372486767736416043129845442892340738091839962190633116109652775839700353398637040017169701851582133745477033528399489813208713127864595902970669913020564524755113684489678049010568136968740798866327096421595765561575915174645588782941314826561037924663777906353060372103919555925660994458697613844857770735077993085718588711839715058387172532286773121091097220667520403148926454136983953430845549802030514167924415629711681752815526873526527146632988605468199168497584303658148942327946041905230284111920106949476713896423741623304250184953359163274586701043205411007412763061463792176940261320820026005534792848033126054596057195796360516078667828684212404676852731622501684968505820225024207734436453814282711574816349186007956118714587544929487321718526909469972460738890114068523574342372111726427223449959713380443013858341544612765183946393982533263204363592324861981210843928024598869168703825048538498350542014287190754602646812345636818724668243879004768060868968285913978780768847613811709027825017518138214633122625024205557254669792140098654413272605854574992280033413313192302791632691989813805888098214403558625075316374953804533193884840340776546982353356943810147176744433383753794337283531178078533893273252573378911694679153844460433215704043774851624468317028815828260546735619719888058768269279423917934808669427949578614023609397762372673053238003440941910118751936684772988478804208682644318991668855993753715787927600952248261526755377552833962060004269170860925778230910749159102650805166194606785556969014039922866299181830239494675884757159878742769816986802169642724258024949504939268992825263236707780762902940851278981202787360319810307951172425830817913126009406063824253922493957323213314794320383167356625614211577455753590471895687382480625161035938858259854694038412566897426959126234866320145334184625628909871476110828292222961083450944384333956370586138995832818938599252440509825041025838713295344087935971155855586264785751268317122049661693819049435463964036737984297988912517683254973818914812965134437884207014416059878792134916433872493391534696350202596724143164143879526084673093822573680805645403175533206322383020841821916548272830112769078977895210748754696576813057516866422769668416136100789736805111740628238909398253669245583022668381370371224132526146686619506125190325981410664810893176047943466187507973125813325428270515081953752922799397532100201786505162996021016023580742722571163541737444066527213469637098474585018347761776386950853321876952093395359171687441696067134499616167512260353813136645420880455695684363413665800202337239886799675164634718168010364349276524891672771405603210421159045477598012242214666055067616767749246409834551243724584358967202030168958387493873581819888480058735417537688883152497372927737527004736098961191893201509197280060638998534900302200478398685708082160010064563016123241444837063720074224671758559609701005954243248482527370955807860996605864412442333888435757056046647131410160455641449598490315221629063129689317308028489800164152146239357029969527713036954109903957204289549964536370697105048601765558611797302237617632799963210014011576707464448902780318801882939827902274184254410856588298739759800554207135454933977033400372510375932543509193747384527504252595158244971386941816238557397568375566777262010627714419662046836552670432615343900018465267410496951786512702377204175425296163680097439038846187746524522809365447144341478012827576170694432852386163796529728350007695707567904339712149650934364421718227524269227128458666059299852451916982354490763461351580100195071451440045590869010724831084080424253323241237902280413001636373415785488923185385895866084961955822142074539685811802300154584412179936477358122272016423264633939901559386628147778421164383472316180245507945948600086911205287104423310428131102019680356201067817217420130881736999373502857326581580838478497106294100269401855346299990123570540391432745309818568864130040138271050149867827473519395746312028970277230461432075012472160180382314105436140091185840331711368078900748374160667220299582299381756100010670654299436608324549928291757524273802829435617350360239508376580200948356479823195333729090700189259189719282103183733408900217784446913887915120109923813572368607674238005103444322153736013875058736897417620869704489987701139631494556112172930137632382096641123748040026212131309996604610193350561354062495719139534883751059761676366338733896621167041701209330082796679448880522545541493623971343060520055503124388626285210667890640839863289485515014559766968911869364203083979388180806358480384530833390569613706971018371350594302899691207154779480411408308163003515941033468991229201993643566604028876416683540570362900543239391033425871366772756951122160171360297596783040386358412830079352575658832118601759343764267641335204581287903406429085867720800234016497849118581115211049877689776925564694853073074146530876613043725133248928061772077492006055462261024933102378516642941847215010184073601505704211664202717470254913349834526707650464529831709934950765436485454314513344697851140673171878854362687922786497874103586199057498419665117343270698024375134615482188513004201883715269212315103729070531719297316219736286949236549667957225556336096681310617020097914183065545281925054961310297358609937352606658001274039714045226333924169673016523144490772402466927351926770887760562146037329192079402740665451069440623266511380534692995581540939879815533473452343527053254014196908783277209253283499982400117234262599912011754329340218982413814495261016877829208835130693510565069509119187587943943676247870464319158424200996062591114238469311459025696476547093155741290106522631109591909301384199133095730918206477197566799202247292042743204008415816011900241109933630228260170674174481646215999499124780155531263687306449588104942718461874719556701949430718346780426742724272859163707751068404423093944947632669322706322979752409806189271060374725156988644206446086221905728034705400111966096791663082268107852277612776400908435639734080448998046516220157557058987246826949017646357538042808663791305274779040990469385467309749651226388504970254653755583037085366330448342762423728214037253442913318088048920772126538225461802249035187965309974035591031859422861409457122945548860169071457582886343191955762007655364316414413239948629392283189815389777306698320742100503097978151543242547952951608693227400176381614084091406445287465576377897622567879116148052167767803128632357084647730644770588566541853084672672668273157329357683916089605610334647931235014982677471826252446872919765831736344019874438078796859073651107322307037747740070199211200149811249188486826155723237874274044967219073058908534202284228208882319373098656877613617566209668432725263207692935957631253142789769106795069590337331123765626135120466128823737105054846928069750400065139936150495216233816927699804955039293362991190482743654406529898075150236669307625007865880774135069301634514460998406724849104852783847831896417255757013653208732448716389418851751115182707901591461113067587388993026836907569282561328265274911637556733484936340980729959511981978229481921282062387828287431974284118188684985793889949680363912699805250960326586259240552538548454770462202584662242115948296984087294158883909226544489743681113428716778771071675509537789608883182430401658709916809523760618782454754713400529581897521709116951855632418951636391660842507454293838173305360282194935588662367252160113813604781142652865641739444597952562745277580675177456714584660428846466709411586138131483423827674552388128554981367374336626636845451000127528265725625620026785036066802216889934243374482193286537215876253700011618339028697701182714677372067474588693636037628225070443582123486835351515668404713564644488197039457057892131625033566669986093279698281707759877656644364966802663877196344517634795159206270273009448157526542163751726471920840245082370239506554982462468893506710569462687702571134606212058296575573592523214565700912293722808434599761035069824589255611062507772351852758106933225777972087630028423164077231087006674967300399243485050029483439978709048126651158120619497368417322922566758997847360922156791066398603259596629134153522635009744214436916801600343152661672160335505789673915237141118458090460649486008532373283983361405877294813449571980612530836782593035513494321071551697356276404900360151193097905882682779032922975202696671788480916160542098747113298653560819434682756335215074590328955380252415373499219542631260205578946134849542578847278127993767309902916568106868510208391950761504375842817293373663153238733998234844068426129333251907831201232442736061123420776577751978481140586702770570058603867407135530205222598234766802276769203333679963485741966118855430715059266604332624528284448566328015175044937503701831234130747492959829156660890778758112295439164149860000011658418624413379916934812818776404844299499779376167657307347692932235981743183214692063541125897347373726041500964335484794438189318199270664802896843575122862308644578805986617278975785032668531939589629424838641691353855645438049204553885076859708539100834253518870618938532276665119322751711671861780173189629124998562330696610826073641445072914318673329733744709128830690620429841681471731930893969408072379869724365477155138561966444692838433574040113446451225764195133252476504385867571066071887997955888787772394157405562486745416060449432317547656901775889676086344596749486617110586065871749174424879091261356657366679171876680761974284297421030015824412458726757545656990722155927179571467995647956309836868857956949178126282300333409207186428681256834501771381812686198200947101958879570394824199697840575759217731443639234433656913709653694212682600352889436837567395740101336695991708266127884672954350643594270851554159963132881931639081770360156121408877483972777115788705230493018069715629325242521816143198786911304488521834311124052885569968769001109481268716167569246804796421243311810383254462747152176669807302758244060773049093826063847703582433682181789144276526005129324962219790679995576635275429848289074222432981694997398787167406766635510787047701359589592771509264769801733283717191023077102164688696873213626942027976014707408036338482240232481263597097856888332601239749198330146956289622011171393875904746245230321387315162230343119112970227099127939499724681185456866273438466047980236051425258193780279939250550919867990388974777436240276845166003033640619146685623171521577857082325756508910705257236607843276241763154972818747607501845624072405206688671348832069134798073100517719362592680170891362037475951805305176850459513417787401956366801216291254499998996504097830163035488537529310262379168267254538593722891969309674912999633504622367000496027236738217181596005747622988207741123660638621379301419933667992532969714293287164340100903429400475945005093487828029151015990032241023485966250565413984070862153771264954467734792218963675415275106455635410063580997433849137259115004304708176489858637369576455262843130374958231247163902917896572873509387164797407312161025284402573419274198491218480465249575546617763425960286902441585556888016967581696433800964376367437660421756925069750994905787463334419538210677999471304162556333783306981136263926543912042949764176495941530936830245930102183375752032788641195418876411037158341094767179015512144282330884823622336910840597847252743944113574499553101137657993532078558527599351450498803773999751893006327119788033206213019145769685348637884826087541835433745363515406796808890446135697682288663026050605851252538033231397142683123763014427971551571901148430550436735489699512737958423753057058232519711025693181198659327329651843226551434759268585676268878071458786916759650529999546754543663284741085156392281268590084109801243656866943451097265048994015459896053252283759969921000608447105029428923458599481805628504700440946384785932763915637327917913619640391408141489115931805793523940115091901835754412607554559452591746534230823264833320623146574381334195035288255591597475658855077385042253846947337830728093358192966539963524503311426128663560221795872690233056110794623894862590083906561784659317090205879055924616115382173498650559736771193131767125883856532416158447117062759006352908097040711261457567626109561696971369937542830777502926206815205690434748478230621561056679397283605045653211394317117465386154680726697077993584716054455758021069546691581924706333380304840621701619095342484742829805804786446100783960850546659166938387504650091434914090996351652862146680272456927917310967349460364115098296376013158551473070068606003953945854589220660814206213522370488552158786696498155706796158708451500765763531987900953152105891110737867934955307430944711898308551819760134318145303126506618773473765188473105573381770647670880708288570730289331437680285894999161180389260100807985501712850752077308860201240964288784608882629988545809957078490502751400915384991497797043084885677656774209645966918523513502890896281809361808763173337141797164120672285949451825170860408285391342163843173385189355291328973862502870506705063754360443956218223595817729577405559910871221992799615758857476075233526766214886080199517020733082585999952448989418780288797517695561953228754752656002838179477277538053740656792016050202186383441965087641046933982118322615508987354742640191031426502722538772738703107825576628808450063770889622938538824726863543308499894378327466752475820628204583045075264691341049725365278308172822220718955058750557003122362199728858263430398609899820996608875151225104618601824651940479879663677841167280158900187740905701574881785376137401757200249730276720931150006368769304422149099454588887200600161835495628990017595154905679990147998851322821423793943255145666875323471236644934781504167041569426238990280133064426064751448616729979478187212588171314325201853474288449864982446571617735743069459020850414353214236603640922563350260080053734537675456637274184964900673984327273375720745150044307838127340624334182833003254658729731277014809978897998678351133213112223044411811359834728544990963249593929524104535883175346962401323353620310428892074451013170429462228730535099311216080647896774155312927421655784637544548590721239015141770929848163373317136588510699269781061229930725071536767721700289939545059247111973492075670903145761644688953576356614837503190965245604281259247149053868203551170429148795827519541142928603160008467307038105749966382694241807293472951735660110628553377023081480457936692908386249554595748999151157252405371081558009384862042179461975362920299643444638454848021229741691496718411717567793870803444336285358350377620302972889636227840696172075997373637593190749173716599332793998682093366297899980420511967305300277739010593623068276025756544163708670822865390570305596765882263352770828937670806023362726967835447475918823426408873296516326691723151111401133689504636481728054266936802626574421836956933726789180061308017302092721745279861750735566529884089947253557866271824320937640201581729756960553215499788279311075192009316475628369630936739210086603787629654102772437971678489320422872055890860026635363927681137908565292219677259569034450211874977037077877645458410922456959403224175074528094356044307318478184315087273353333251505642645760852806479300003680484562030668122022707135301607824798294909751181262689307173745223228757975520540964168446842494226573024340841359510613753798666595554242263439516723316686682027237074009667098135417543143126508603542119933747611010618119054088985120685481726642529745208090435734578416955299376503903841380921193803973791304080681821550400925125349235600696517014380710663311612342257721149244271329738315351031411624313569561427746796508174144039002916929235767317053982278131268112539758640639595785098484224025988151575869310887326628126151733405375269406807170425954293334373629953611009894460637157057516245014070694901056679230396653754043331030133148066142663245906625101896450276455686805566212950609727284098830039966804314734750086901324560655304131301500295377568060711850457068781578228780485942171645937888488372149942754845338283227370447446301852027235928404574241249863600392445337249343086312611530997677419160543835094844467551858839928810759348271588555737176659908887935530332533247520756410670638502231837453912327693753851351050847175882943290390295839111913206110182322602527433542018742717258400978042824862346378954139141294688579630552826670204540290131886197519499492984109955650075434639605387130765765158522739140494562827635365154102444641690380813418279649204664887530728290776146721135705997380329601799862391130640388934217625548516732701448350925132259003390111494997203658332854762098890791333329873694826601689810860338631325704605190199187735593343659675510771281940558270739556590854898697493050073234149049231971712554476837358023407669826688899372373740923829344255446213730556312327719284118639153972743051162179308920359224473739193400357102561047090732712024970258241133006261749113873144274319903467604237012820381057736996566847379492716201270121882874827546723418957855189326858239849039809443044482904598124214330699838413028484365408002357578093416360649363166782427147505817981378923017591060448286632515329180330566188026686884986030807662472557364795244739831008867084119610234754250290829237018993013278213886272255081072414402688161146335247616989768533510523700642352741291176899142769035234225705302688095394115914703755049038604203734071108964730385915616680262926151587864389856482660302706701344986646715942749372765154134319129567010363533573724036208169176909583113492650207444058695253024360274044343396948295888223356757278606765652146694184782734416423299795443028486308451834289184166947697753007737261392217918622666063037610936408291038053762887137705877128878207040819197307155454218963637567460892580652966340511085051513652141706401551879672601192912197451988627543594938248997773477459953526469792826857086144055228512475249269126833574551979703505124820853194512266887281589824366155188419713659894654779621560180002223892475777531568856669487964471012440374920904408612829145973781583308740464983305089890884698580433563927150673597677977784218835317328917784560096857420717342634108778053581781302689064843859427478016759576148231191964083854340960460313186095377667633888507956024413925208261093960500124187972067893034919424507301726175904395195157638646508455647931387334011695138515062309701532967276286634293096501993754002719939198648404544348644699798101116781684048430883737563993937991577164752067738732851930145241606215454509672397626455460502710819705788808863775790886903072426293443874165869169940927567462408370914280825146168717040805895216387919995646039194392405386173255342306336842847287158536910373886826181979727918753418943438028376387814664005449435017440581075843710343197866975715240915402739946809643402813571094856299634227960078004125542774882760670534690752401801194344310030791845999817344747440667921217881961401438714680299598255328744640319801687696782849048754287243245065477923835473405159691011118930738592443185885608144110145149620583539567580581115374420627535857203321054046509929152124303271646513561303998415612029537513981817210535635439773453622158984273940447145173779289195750352556659218107628470986377005811296795031501657711039389252116309935385860348230450477661669001764434643205906274995774484701468903445674967285414124073008151590517619411012876750337666395105478621032780905418844514145438846788355142057551860353537859470239336419734383945021673777118509946026180175712446131535690471287048247630411429776570453350475890915185357538405285267085278550991704678461130357341306373773809917521608735352052437965308799201435520219988391273839265206215152579204390282190654449559477420593861311215222188702381954473001476309912073792284360045825604128495317730620110545323426385114651292741407551006086711637503851046036432299858181798541951989799446505958233596583645933766962106443387056889958924295868479940209960390996721661722470037534881497006915787415149752576054882430098050512716874929064558709602835261104660652103478079812567510183258961789459838476834651658188324078887622369952221581220303745079251232156489023805613849499859140885478542081773118427549603951593542031554176506623963184257466386788188381408266726954860636115609872508467052904599069691278274649418852670995291306959924277535744707352875658891148432157525628629809674962446337492598200196494058973329674131379048603830445182136478283712254919488642349500943441694283534770431401499140836887806091628137472759212265680862247995341486039437172142254212244971067344961354580063990846707118327802102664800409449298027577932257655992640236114709543069312653620614811397755661339934687422537776594783888225507639428244997691774576643600200427380220218969894279705120807296301334736903667836477432953546105986245621484415156874071841944986334861386355913378317796332658184948286796406284423986130984506965295592249721426545802681073285630188103509177321260455696625244549005198125315002106337228740830393996490051311421806472285062956469202774456661801226964689111888289987261045750105987235214785286861951795067337158904940818538099209575228573574026478383001468197106240608423538030974098791581519400887159989480207566861668398345664474829023728638284808659851364991621757714128071908572450311413056981574796980033469696644614156873838432693902177054071878071635825301114258483384847594600041486333526685088716959683774337404378591589710042597540550973992379806199978593656489655786663713413054253014272914977372144440957390854050507411998239298008188772343896951379842663111561620049825520981173417215967041947939599688931312692473558757202330093485701055731441852606990011123716560709692914200303763054067639755555174042394606433832902910259229320027035067788494456018008137393981343418589421304100089604781226351204017233898614222529279244622567448044729400269171556015787783230721077776101844010827373337218117870320807098813639270261375758360197132082002837576353750306044882157238558639989578113707263067856837705980405748051843857049584567319008620641314880576121202752494630800374845227488510859589994184886483244414466625710847563449334167508606432380170515186426049560866295228618442582779959782440392981580761344352836358258059647233299301936934149607420652988804514363049340319213384943908411561777341816218201022240026677684297583242285466951753331708086934193060880346929546339399448901129100984546478093920274343888930214266707195639519681616300399533746006886725892242019569619501078452965469691608382601265849414921280988211539406460644786683701729085618992681816066896521531293812847328759401743802655863935864912766054537508141965804325366843648980073698180597118734487162467771431356317372823016412028290291334145026873830918800891790255905771489002400339750128647484962733835306979892131000570673987776271194542504648600274152955855092710690886666564346483173680073442723032810454650862471648893553065743316524803194307222089184498088203650167569847676770816775352904288737852008185949017541565117315363317452256577722743030734024626541791013383202238252530948735752994182417356901888823152373402297793526376874739433137478334277433965497840813712440807227437935934568340754257900252780400770224121487667838200867079055738547015184963356856599833661191130467146484799651025254409652331494297042246700028039544412361034020857119402216580522064224620407159205127045167702751233978122891988051675474765314699242797714632379394439108355731962832124021074487990477635660887411364341694324163104898417823072736969489712316755549510985899480174073085674300818393637206568879884768682307387931532117367112014329239898851431971350217548990141570921815983061443616647249081094632705053345443366794744200229156884952013119437703950679841967918175833658310281779637979722823377126243912360896884957300456002836265888206948542687971646113082422951127154613919134527571845698618658624299014773116361104038167887533384190890938073265966698456097642548403991205867436154124026316093223869686864429664323488755586859455241855381518613884271271431144796035143634521585512842749489996655812707141850385229501186618575903286320186769609076018909435762282111972808009599145930965558827909429744374643566478869965588408868438692675267487886500591739132941102894273882106915649050627363766062916896397960782668202225218018047642269784016936118351486398801956260323661115252988616443952498677530877738049194643656133232936386403731864514520269783905368109571253569894925914562218983847825783000047081619525492721368811544146758919960949927707722595205688959871478788425871669178754550617604122542696727745916208888784183063206538886064464525939060726987488491504753031250123481385394619874421059074415146543616491133572646966399368765372435228807171407027453026004738687878250887547176058570700850936301355691058585788665865130894725134241339246982218111704095791428966498330977404783105053234408118141283909489826433625276573365123427337222344522619003193278418307795865701391240709720488619108284462022112841628057988614586238537509283569261474722278478823166803450181007143892805967068187327494097808068186856470644178048179406649805912744000738503301461209041043767223339668335793880557699436136690489778339037524265672304464219998804955857650606741395838383352476435672628829909055954584104178341935247074554442672449531544438152130383149203655167948436752829634357287428847753464367723392889895522511324650233950586800107037750638773714280162337796975558801337506826302191574218845183453699125467822130771130480532545592743669447793215525012520710855486860538598129957932850035485439514571313348995443099834922238884616800329134390277558212737155507144502489579635943761924968831704488092887733358245574240576113422352549695241165146686895143796007598048425730089400679835122947669155941597577840976112402240184793387851052882780416708118416321791164463501648665642585078511065513322557762119930828580946621895801407927723210790306636564591352036896773351879309566707575026929095081191473887207028231119274284842480686921312986097593308787753476395411574136322657114478076804697967652115288245461823128684787977335454473718716547280265993896203865216207346711480057677540086690613463459640712957833736576884284779014016427660337568861796940475025199670322107963602343215149493584222821100646235605581797555681774394463857014956878775913777524248811535457213455422857681712119216555577076860566694236723594914847305963747431761209400050684255533470370849429119125266795917454802148218558218195779123748746116084286094806444771882722528176595395410388671751205350043920575589737847381551224188893763845870530725503910006583494361984350466781552038284814408361189098690274270218243997005417079984358805391761635435224775847481184104237724347837497543267671554213722524712251356461608630886807286250083556033044775548340618545979837808829032488235353603558144162059254970153341515371711556292020358974541499273505539919364150599228521960265506800784337603823032090287677436282515532577153894461707300154124627299832578472786280703735674260311021869794715768074448386881476161183556715661600011954164889499386850104762625786975656261671931597790013276965783548506949000759104401526344933122979573352948808356717307740291612979375103313241807639710820590146068553205148032017399110506934120335826658988044541369823555102332341246043483925009994697869826741124619627663176204004663605485061238436466670280620065474026546607358907226781971446512575225304869371608037768741986259328587943880435492503622907690658079149713115697507573219413335882026697455329036420235577680088645693855123730001846150163399303814407605197550491194565484004345856964639825939418026849952904917040839062697503734376775131739833574648115272629432513225975687587834438230040179148063844649137428213849245308296468436315963366927389621420743802210214651422127794231083986886312704508288324093979578212664799958257787638815881069652339619620898088169497534008848550180449548014143805412191660258896897881960318143698650474165932912568942324371259756742078785085199795068214600115404902292846382746428601159876328024347730977966856443920376554046038328597444639617838418149196074749488510747361318024678470643991161449891600181933917906873262756073252261527086455433938741426018525159253132293827301835669636223726857169825227798810979571139871696212828654159803464480467956102899639506143085804905799435221422065379812504022682449731488439670547324094524988474963604838859237777777377379674621374089111217092427936345230278332417059650541705823778920905869730305298969696107793740362794085295265197270422619787075779566085139460851970943003351469541977758508972630202933301136590488569328940535063590484750880915289957829687820061352043704365562160709685041425119101872587865105955721311670415925766722560382933598224571925827300808342813306606113890585806355795571964994448758030047504420985246454879290694524819079203011023654618353668527623429930098377306495631296816108811988530837823871148659716880270385546200243685312007749502593162984836404401367231732803770274580649173922560315358518126531239054233963839160928330532107422619838093110840766234893187188163882503637754936980252046916664215454723224944850350956851205596247312503573993282791032563609490240297005886941401989933637807610849735123701417291189248101264312747759794277696235672809978788042405587308291000326898280720754222889143550185884282093588008020017220928939612977511557544964486712164562102677624827048416134870398511836281463633759992618676438893978037814507627672774254647047352783409930227103282049780708194029445665224108727115532222179407977300364301943158433813274650757701403492807059037261611441552862366234997570233620540842918112261260878545333196263013018314783500858982431725979992323956782961529250080924703125865983117287968624863280075102130184334370111577774748758769362874547816762612703966235895803927362923557421850997870688798883898474436288594150388963401653077879523677118659993963047370917991958742602082756952103861931710974504041102014331397510625915075082808810072492596562091740344486680824137501630716846214518848950549759578416052236344236149821770248000709770300995404174635899568947293709570492022046204987121150581590052896106951640411605522685546645020686584107535038953178467645791742642874490358599493081482689214961382605427830059690842860510625105923614282654318608353387882874192553310806259040629238429084759237294475077315727468464277636105046463193433277855581071281179981405178837628804424469435172769191613833743903172602974650003644160490596865078212346963608523683103208897853222725704177256926377486047625779055370268831231907008577995989782128111043244653949314576480551481854860690086748996307640776608993848423299033207520326430101751766675893784357796721443325747363708756106208981504748452169165424980643905571144336014960012393662361014673769157857817119185001156159212701549132054219602979696207356203550200045680230104935865777221095733088952062366334775743368888082968364306841450328952648491173907233362399524061544833162319813818514666944137695668919458438270354648655048029901043603678831852636900676347554522788397170161190878940666268025703668176284670535496678572624237328889658678115356892415149532897426960425460132161239171422146624611394748569279780395812986233571533098673449946472826141136337165870825073846155092298198992023656393156708474244071647157470239196050971327500970120510945888395935772058177095822605835673575608478629302598175940145900057126839001832187326039168038000089971913313454752050316963962335930908250239659455939376955500409062956825257780352380072691515319512207706899947601930782685315535395850359433139860525251546291898897321771986251352583994005584788106868587927534420636353276324402272538503631620083299783075744736964459728565511447189470291076436404107764438993536615737483354521392485493304932762809584494023653211101376863512693424539844700458148383586789240596148479512052153710288066291538416724238312219887307689296671373605500827378921959237784848292164509823963002858744639405321691718463730436693009058561748628484696466625702166453569293559690979635258274878818490746292393018243784176360491907079282329206601105454918106028406431417941233797769507511114366009787753187407915491587413457830209610806643475508058083742915249783663143742482058748246832975333745847515945403541579166287973874052952088857071160694823464379075883862415227609459745435521048190039642397129047521238568838257612592890591769169163442518230209966897010454992448550553508355862580605453175321824328865966913334807480729138714709685501906965313247005601245278388639453752524668885033163154135479510540932317885507479036669149620915218713572959525059582325521194726281431473384687691031342208608380742199709263468900955592676980602844478408982728446618610495725703055269999604445611198032993013817558358351099270483811444480279720114775640087263035058144391496737248943799509418207685458183031891693448587427102685728151656908154053135112228742395407270763477540794497753744888635033878817852944471804619209697661623684472487390041712191403556359779855026155304706239881771928497697522562415127263623115753164032223117248060435687623141465544696554605769198088110051691831202809972990087588903878339053534620100914597874908020204198549618669186223926967198457488672042764196237147229661327764653923342550929463559003975208095361178366357564406324264354200035568874302947461704954610773768592796025409671731178628208218530006551781323379852367264118080101706381065780101344973916051858578752311476313948644699409208231274390274292543561469456148528985518584942396129717538484296546018238672381081132527717737132817062158792051366798431496750466894861610822741544807145666290302124235359870564832268209148713821161315813800987088800997264559103878206080139125934964729473058827334707086289888089412072477294176557810614117956540720798419933436921763654152775369986449754199976917155123855317460053404210085549567189097515834698802672112315059189679479208509650610917687735935524478035861976993513332578022504802368051728408018316449445364923604153739818739276109356381102152214069332323201416512500141531180540197507748765023211380543780562159312036282733838377861215521498301392019453472114185588284849434577829320845755807410392351106432707772425515341126115766703438534369054543044576449578367200125083982033743708467341684023970854768534187926012227302380061902396119342783405718067310512995984806491679512883617573956657031560365400557280141838974641172571053363908402729788915385032860080839197281698506940537303503509556411435859201288309602320724011566025387068163452739184915764241677712534302598929252544795590257557236712771101258426069898245200054117288991481032520318355341141661544336926566871452234133852043941159340016888461197938139002511362694290386980793708057343718060647863312763393074730908536002441604972028978423587350278456679399047818091972120174068483128427295152724293297633789737265136470404453872616735777578546703385754445133591050759022700278671628015362874309433530016700987648014610657430952723831505179500979363472069533087750921074848110615452932822874539425840616764358059077165421662993890163779668948717829175752735110560964414093412264738967440593961515625611162193081566011481907903282494092442171677182841189661213573199628958104926497473127717253276789228276803770781336848894379096900315235796247462294600487627546995966438099826427002649081451610145036809805656003499384004206704809308929333175245193813053283360107412001929403271092037855994805125210506359332575357090039444167187144641292187381107635481402473438035417849435828839116530092307619602836953689800954343253812304465998708953210947087098070744383516382200952071174360552532839928075312972962533024498237439328427892857587100046055588204504753014442977318756158880321615437953309674601073430286382491192311431843170810205024645282287781421437113637661339912213986780763301334849266861106405585669155871617674274390170622477925428523193167045902377302763433169670505961445246995120383397280924045658997197731488203260494048075360576356014220438454354971669856811458422695548974950265434310078965326361841778555414607782389175659304330341673870647287119318303976050339296826896228076018527624153396918482909042580192827601593717837397744186656923656712560226175456924390060409999790801472759567320412574254458828006988734681187662793229889344919884155772621509551919947124648025925652381771744771850384890587507178421774717378822482878904663111047246812362448542393799725684207400546706907658907110085928222292876154010687640065615752270968532821490873673904075371384760370891148270332629173564139026092201809877687121718538159647388526373213483694177106218004968094742033998589629353438845799181051604406820644017648540810175666714403502733405801173640334943946950134229035784781581446081876222823082893226479827621171692570633595352089385285355431379824827434440931793603243843621995567915761581342864379504553426639584889307965095514954926707068286461182422572051567594444990878854186594095696287270952095794879577774152160980688368846965234103722523050970639327518418405365397926571112899976751173818099430505329385811948541591337289924255645210408383070129523311048198243030730191433803893333436925107426765551256973414547022503635471676459370916275530128217231363258958633287007956658186044440090966556108776810692088391031564056540436139711693489841465103812035813505717719498960859650385663623358399380440792342775021102718156057363462318402780503945968653341538333427265550925608590355848939706171950260082088818096950206511604170951045891470033417551137992822229593049947800549546609784834188436543269263472102445757232672981142526210282485609535377635848713434882249779524617339138083908044066160713716477897211574812826084505167113787225462071319221107092418003577551538843059783848641985038138303715893756296765068358321457424652120951505453053109433885853027141275368664769844489183708310532180180146474574496731611776892257355219302338766735234914473006276356016938893262672799765108453416540887402063460703954248759598734981054330234059905451450746537506170768640178595177313551344480607253354236772034208760130050964840971316808275123808359360009870457024039360017899447939733393021873486762805213863499543380192237102868302047996588659863445189172230260127687708647167900169572696399422860960741405212906759214551297604096609443210484012474646222252614800940497404962891458299607770603963894139211094749182377627090600215127069263257396762841683280132229463550143366199524748173425438985428594217103825157484801341885250657161543375731855223461689380981215392881151104112505019106441613879846785969982491388255787827286366729252254601024949110611018565279908276219385239411231536430676690917282956954905539559054603632553382957171348388426022168801532438897871980926100553178364586162887167581193357739655179652074786863291637763908555322383271968660604857259343976822117660160185487529417768246596948544494355017007228956881372948950258324226315561667377339699198194161329383848428628612976139215873994765923561456348596380987314220447239118774780427649995862390536174519642788054958396764414895355882459352664269330767139832648755277312490542137125533834971489818269053483703163763477194487678975268689870405456473599746954225037113684619170391899744172861251439737503227289656097183662413643718755742993590517187891657512709560963067699423575761224156568196400036606655712357839161473394750824089244705157082270626466771413773362301323537996294661752734261776715100243840448659819413993987605782036766555755416932549890057030392787506026243732548176643524870670500308190879943308160857188023362937154597930199544627856542031166785617999137536456698991622959220261326807033586123794947251298560818917082665805333300168885021006280891190593311054518130083115109904708361470796638267030756213993082858703952449719712906253854520877642744207239428124264398155620105396285275624337875015007309901804502897373335175829058013584555242102740485069430793575088855346574020097735506583873154254011530406684180773742444492016042949848124444949833921137391777826323782305099704284129687281575290254803233964651134885504085560355965452447973555480073166248076323716980987352529778645597141272418528349568576061595380824874856079247791868877421112624486120893851481564184880209311855311471348167093174643666619890999464376150611926659647154972269415630657718361962866878298121821769744574980897770582000563341787342555550060681235663691232806765134663417807190875342949251627327145688359353933171184800241527663343854899729489479701335787822056502704110437064313006128552992355593989386505248903159969351258945243452029634907240464523394094354345285253185787000826303279315997479813758095773237370492112900328138360615990211984189550613023820060673053127912793110053307147176025255359527964472146163429934259715713513969127347127086739097196676135063772897675186029016944818187758878150811946059596723213158021875980525589984178778527319845630507585169089345743100587206389824310541646999315029338156378331935605659812041098578915389774922080654318792980161363800934507525245047117247962043912695227001907645761532444541301510552196606949883898111600293897227417373530736252093464156455279924906591535073546335743222544057820821458917736029779651137591902437180431032140063751189261590914378539083364665194887835080651849304528996938548194751865898223605082594541027103577393862242726826934949653095411858729707515157409845608716774998226518714300514213282467515334241220121060371527360413273980322665169567303649423523094939890783712359639973850348623524292370744466715721855496691728102287359437138720847667446048220098915120119492800221629360250338172299004274405800836695947589122153165929683935264753216014004576864197491525400225352010863762848396699136900077560090459021333706608840825363474928921076554350052302432307837682546267035272265849688814871873889181121886475121694965964813436854490994393495764026379184556536135609231821945152609290282857729342912718855099296545869770280832733455461692645986323801413651359996940804769546203138222099478087023738668686605627945319827286922393763788462544257552333147143094316954831615026350837873605258113885879586919920293787120868476846933576574942711878393497441439483729455077421129687887867783005141466351336071751899782259556204389245337483564258099131605740122050466302672261524635621723284049713895895771149144822918619639243961544853859098482749383817243217769324184675225807856043493038089771197932778001538692505857254898454957909998969193044812028193444790080707107643484827399970112488640794864958392343740707799614715414275961303341934100955162632687671599527421944609401094162351012385699340431157418767837103167437063213250706391568962559228168751881366817842273639769358407368769603219848210522662456639897226758843059761718276773965490380810682110291720138208360812270067684269944905908897180273426275626816139341318306044436443357712077074691962444273250689679876405273989840523801774091612405012770512314373690280773434491340567764388737481726844234152560844394599834721571890470806829225285090398666920777690374314313468668290006879861379768139654452605513880896852174875278952627271633338039961143339777444121924594722290576567309202561407689806509253596861429525071980146793108924287391156797081081174966090187314932884638823145925157800540551433867268517330765873664323917425921302267713710156041516799312289930610519366957779485882982508122209707716731190244380747909371713473634481651284650576713465093122681028375095435361425067832274384120317287173982234037721131447717022974069362308138622719624745077521461567770012157726587423287718487820165777633496244618647383366182163186295486736403749756515786701497664922839579806711546042851594783991274467783520690043577883287051713461036608114398061192042936199426636416583714290781383761161527335220339442367105914785846053978132459469830060335825295640682950960306782908317945031408092828139293581902223876746357683433771337095372752936101675009534492230174235927554466550000018249935746737145629371862622320647986316739352445985751612451396045748043691044925859541508843875131950105618004883125295621800856578651374688291864309706550708137546781154525550341142160197887453251362234884582898155045747499131945962717437801178271969973227971107672984209223523738835851506063709111174476725004879514539381723012209612406403228862469871561355893004782974629995492754631013688361990472035785311224284571034375827867023966651893189940751530119989342854932345498171723906122647074011124614487821013796491449155382627151464358086155448439467326924604058574376314143906913918676966460900714299919357857346351331109308716004669578922648932151103558350580889953529321345712793289622196602823864532308046384758282312211042914325860138566182456222793733924427624449319474661983776284617078412207736708246075905371320338936010021919070870273388002508835687614494962560653624544442401219658091747566581409960318288194775808741231424727872945934744176482761728443856181946628854185086580473136737785178134769739630994602519936587493587379081148760599157390765042242462651731805119127606116647141434741279064904086992584466111253228922819172840004916468094413289493243169165483325920281736545774431791256771998079607829533529882037565884213431066474523391571205113179597276226140003008623551636665373456351653307525644662112044993712845585007464553666689750419961901643419944352914766528731067266387640444772962679375449493714419261173687709605249270783410960784919441597311187087683951859804816197174645414934966492535852472440518143588258688143943477471657098360925567847334787655321016278632338469105724199563851492672530635755382786322952286142540376690999909609327208541500023254971937582541003483525344761952980948576129931166639680074842111807512433263615059748664455658484707074671047120810774608219578857616852751472332861064793962180076763842509543153298473841141692816418680897798157841586393109611226187620717154293259122262839367396918762472756038186554165979486747639106150317564265278737182859873243555563648416522879101802980801372404975608877559327015096699852627292437629366160758600973143182302323815012275396680245525471159966296483375972845875440271802868411958341664095818632333154773373891892778648383122241756706432256251654552458325282130678677476208708623884551153076081722449511309526541634799900711495323066086760052040549498757621258275750428312588409425930145907713753607136735590243234181410882280722020840377610337471997140713735660672654013237990300624352315740374325988273723775377356605883154964677991001459221783860388349501311420289937538328299035768615288247121662536194641150122992872619426450872423228958172258979718804144505848874457102146129884559559502884585128492478419300458877793345542866456965728096043610082816732008973529808681147432961448963578919490583778621081780502602992903909488708930959426785999046605282944982125091145361330428153316048620274925171181579712834888383556387366795360864932378094044402537910688399093385330565029591087781144401146497278220876731645802627064596840891134207037973704157293535782114410877888092776773172220453608698908792203397729325978400313003457214211977104244011614835356477471826201387439841716567947559130359141362095462965512268572286005099045596736091202945931914317665492415658041197434678817729453701989695982407407596468188855749672947988011914197007663963451362204219418371796868531899896348949673061168229593686747033851284957105018107936633849560635788251895493366892900927955574123878481650027072159245858443022753152497240111898651765256611800400014196399366475128416529866009958443791417257445832733313201438547067093886089822813964398144425286900352151391119214233060240093508615531561584775038014592540639070376324200543807517852938280115526327334448512668572804060703321489890541195331526562713159940917057662622340824610862627582520748915433123626608814149057035141937000099232136233391373309955058162048807126533385370534456212835840735530905438553399121514359088769140895602959283291002946833907138625154915538938147201980817823146747286320965204831312829525100189000603144399236203637301456422399896635118882531932543336138000194424769717891509877911628920312918685529444427584094488218413760645262321432510973812998235589089096615207427815704874918948576498369467753068205813578579024379515415973590386918761392222181673558556258021268969009252583599114551655522749270075552351971750758868737082277350113478542067350403850029866609959780912191342202222551070953592462688627550129602340860772674906858083648519306206359144501450567956267838563715871616874391719773736767367779061042667362459534559878216405060621346985323796246277446228197411927157852616453483144847614925617236458758029423691511755077736976937884178979344257861143267870854095618421623265339918343543998965356150457951551087639467218610102226787959804003579424458132193888787769351768737857904677607773109734664450129777150003896447217937235280252555143106698517938697951451828846576627864212139377565703630857208871559184032120891840384857488169928944800356373852065683076318915672470474275458943863557144011411314263855922582848318335869836372816034814347032447821346193852358145846678478277413349162212359980054755447209151738128797168532210048169408214909263631115699002927618961744712453027075994235845997848467638946830785029420210616727135348921832090571976958942094581706952956326980295220811933994579204659314558790216729082890901898800334764435623858318371778862767707850936314038231068102438157171233387528119171294277447545596060007537251712300680366832332150459370973892442774154730503609612194106791103065526364140696004785093539972636465620696255442692980021546311623932943814603766336869897098720176290592929996262525042843056347005478686093332078113666993482913778924051115976881024409548082609153858425511937176509384382163394900612755050227501389885420444222904236496260153995280409377046646793194145373900693679454335652135416906385162359351600607378136575951708189796648242176204659530276294192018067105236481427163530186579340577369976875264948475218571748251399898395907503259918527788975726895452548843921422848916162548951233767205227860837529538450544169911490826856517099069579390425738001134242312370571790217322566426162837228302953463651904446827881743825407226421348115947856134411169631076878128149843094947944810876971465296092703432476310755168433169976475367939450342557531497635067106608088065757870880057987316951863372077262424777863333798034337445092124173516123615719605009376100129428963256443836463517554990972130473345552660357309556991888695090900095574243212002545811219991439404441870833478823340902025381365171178507824898230855963822465540731866344877237180396994225254786613309540019436405541475151902378070417012081468853156405258950370588968865022875310563916423237844096755276814432859628753027653428925830057457714155135333543265294577952550011788129052090387837332977666650964031831669854483063668894803402635855722827152033044049490266221279297071568393930410502138072497103803799461086711247825946849186426816902647825651334686944447683099134104351184163517078469214127385447260945176013059063664121085317846902622214701564421626721919405368279350996574288056353544062574647368829394407867607609852757181205133126853418691372766077679923022021725286668124306595170574095312818991007099964157016415214856643295904840533307973888877562290013523343711326701253277974976367172694618626590546075724993793485374211239925321193417507242053365288916519929599962385910894322224351313573498766762418638929561238014952898485299613792091618640894490959114747447823954041671705740857633785572596673809861632901985902249250703467045097248008867695939559129159725181159087383522909756987992618901101265249645505093527686506589934432888230396176764158256349224621330286796575360779781483643401964655708335759947828703091210655734091090596605660122316076642204357556144385570163726967275177711751219719043196719138600688749716645801844837452998995618060726606372897976658016658135370530153909068703121739688337274842914271108076189785459171302682354812933666926993247373587154452477638112078577161410808496946169031844768756587980370337708792166492658018994976520401214357452351597261774124375993453054489397529256558099416797465371920094142413277238715960164415250570896496741873619907700950481790860105954314844989708288315687741633371473580162955003306427130909296586231905744629836151150764744513452067305255843401305257502575212414000180508813779941546654114000767551490981458759757036519997046128855836914079663312455708956569519401843502586932296342185334185606797959097806699447012170562243785766239359847097015692136117303789022869666571115291672805881062704332839467415122360094946638365121620435798584988405791294710737631851986687656497817527706594826071869392229202632553223861336231755761992883462890850492949529354944448512309078360823294208935025549801172635770627856773520104807290485025807821554660026108308461673157518641789142249840212570836332889065016223803510575733523702302471291676353638543806295232180995719798276715497332256133955871193146856253306925055199842954031991272086540213317551140935714565228713448517167684253320386690197001136153764992923893950408376209673972301441786334195556394936847869838651426903750172325730572894640266094023542012299716614139556837611773031824397043205402664569025178024503460657212107821856470287030923466515911541773169871066037769967827645695423115526848175582123111358835757521092476773887125292657579070086188030604784272316733018331786059373151295529435494419600386695415583297801610565480866539798756343419553299776139863056527198496503280211419617277965343392030329542084751987420641918388819949391562944302309694091022625629356773910374064003526233864153312769000221691361879403879584166686336805176021895008912940800317093496760509268433524597095394050775454923336117958829914592812168874175959816996845465531630529343173714708557600168942748686288478126867799539869174445682896354702504353100227307800474477666660631821968746803433138745635465910797642613608372836404325986673243500383506868499094361635240838172005867304885092484684184708043167750784421603909834868831728132661790462478294331966290182582836471600220363522514542435258052379473961888515081420401539600142061380449076996888870620577983753652440415595978118439791590012802168081969005218714149707520163874884080261199134320148616660620799121308090095290493050633309955677606826417074821789178474719100159794231562137985333618948631878549695336284510609980881395559355166711499039092327791186235139877581913893718925184240237707110832644286206281615131008175025436118678590143020795632706041519992439319190649082014552353766883881895964380299839267787725359518000374418972490176217892003329518806517909483263290673588306033694071997346321425254197336619869381194965169785244065740052104384910259521687237528535666812406633901116481021805141028228038377390139291812749708124854680724980531673578324128616161111771180922131977059494047210028342497182715649523824691760185402495642871443768694998584458414190222559172801880203679440788724915733481710925251926850697591303716314796892632934406832132828376604642697776099277331250645536831507155130837627141057977699698358819167567129514316270885278626566904789348132389637379878659997882502563261032259432452432850606914654121303964575342186578809833296616002047057710544095741524845012730611150432435031170431664312200729067416876100396451451992959734191058034619454181669018051546306311579570499710765316888121516903467745394106826611880707861759131828447421134312020780161282145021013713336965423073158183640406884706524052472764143958558162535661102522158180305417745954741317758872873150820948885424015617590102816802163998396379096659032117441374551158049850086181381628323544409885679764023226495696255451913984735122716216505755657134800741918350340679015915842150620447071034781849939998147420125537500215285134914574544104647331027932151791732655430080774073735708652706460170408255756418371384581114187491407850994869499752618887649027387562781499878991486002077958158699312215554940400752451789399408567244071652097555686461406056683820205062209755966824172282127255591429637654145983178656685730588139339629946987733722258574824068018873534571862753228342345055414446685204698166750021709576606018280032655661435546341376806582412093422435569934828164188132201301356557871484370020833990698891000338177875393453107563487013794877533967364616837267170680639091391988196643032499395509868334333067862007489546981240430481635325415663838337334001767403833812774940773916114267572683386780782600664579106583137344527419457113103942446493529688169078197489193905799171503747028829270492274852633519132564913784110716504578569557552284772123631325445767913018495211124557152056626425969120222151671219276474061167254533565849746125551428647515290834273178764959760015588122288199623500427193225100360384149186234937390495179092278967931460375551914014608224073875190374529305265273885005632851989348683163708179944011337116645482370737238067500318426750705067520824381865996479693999748486180851483669882079999560509268008194458570144582522241108014547210555596414040908796993625333245524845498030192111526477294295102216881655947231046216578266378902920362192859947710570118544792249649362788361934107306242482013846998136238783414414769231147890651393525985812843432209400900356769263798125072489995311481438743321800987252305613414259890800929944432186711106706013380269210973656311406754090515722806459090611132857563445038500376646507407272466522301850798003638859093073683895782157173521698101940035817572940762250367541563035668988474479277282031795604428204238282371319780982809138353296514424091775783976207404602111575564338275166037056332877331382322801518167713004618192359955137198498810564801929144211975494775749948265275327960777191773737292022317248695930416961023472076051027300077368462596091065522080248103455571369891020816693333289926234241399652692383074515932836347548977297778929998280505798373022630631715551040609691316415820959123658538592586984381437447622876531315832871049460013146066816025704962401783276171064375978204277410099325775632862768339283873476425752150487536652299938792710463304594553527164286664036572968720326912129367996779502044453208123863060069664881402266195001873134162646893588392797993801846225770521494734594177302487540589844484660633845922099284150892905711213185362864880231330800409674530056662254478414857148678365128127955084215711216934117535979742558576328072406949659074901446116708578149758041959081496445512617430309297724593969644977777815055973487300030234995430419857556141653390831088579180035002597678951107018470954267864946080961819177720670500315693465002230497768572620789735683159363543597465544337226803518494861226307425391305427382818979056663526169430042658394281287302609083222828582726798816526296050586598114211451518595811564161054711800893130854610728381842412821449335002263081818908693731743963544854643886041104868571382436173253445219555187583406581174704405848149499363272681373711825794222661403521197850001251362232718746217345191234638815952165947063592322705452602110295038728317812998704640562536416162685230136315721354484834951112534452003814054643703493755181559559846101167808975500171885266900546978584337491341867139165937783823920733677237765798261550321304085153093200667255551194600054211203263209900328484612450125735533130020793805846516861296075387507252353000078209594520288362707678213453954112736148625147484984377669239688738419305860971679860864377111560763642003076541596169619245805047044204908039774033784713154034494512637433020366056461411109816031166457848659533315057062824919726350958892559050848153842374736990927092789970921526771770769929598187362772780444855075687950706020708740419507810590425285386992546876039450692024785228501140004054633665028475463664502738990581763300726571907359132952258372927489970907241211711382727989035395157042841072683452612616281341679870594766630163689188803167426016548137349479055675618826723289824285392036116224951346953122116139121056395587959884540671513920766702685175334559976129332459090324197217045230687125398850402855014980819831113908035655028282820139750624584123585698144989148722301442449040214098610951518682445008985704492657456940771664698565491998192036825482015112521049147287237049332972408604802032604029366694663007505603108082970480096965587439300823598218575818644811420005936093140341582828961130062919642983654699071112064383504987368795749905751295563112444067453862196983698449025575338159539089590755146576406731869815665253472773478428085152453755644632806849911546174157947272496854102795932593333704029667360927833540170333401722614496372630484922068282209792856653748386993805191282352704060740469897631657920235758880790186735618059434735902333327858799283286823588792631341354034870466866801754404405293028121034268742308002855120199190747566287250051487687686447249927297703614715161195873264782907680114134615414293360768857965994403421549669069116086717559948978490059835768359583306471747202055836630703735707095499600045255965965274314508587395531497131053062526881806792108316957354138502766789833214693815937217273998691739277728626301872943405714882458821857961990220537272857965042392413544334836136065839167887544086266543082284944480516781606672045436854260219121081701347708541807138677177189178572069790797841565279863904803933044062563225454576201935446997470822200640413393122985981604178240725638328940741340750545803746589510242392171649788416222285213227912378672562302178837460572860604291753760749764182141278171734775292513122052182026797231402027727839653504124172385523656857336316217909450781576728320742112267751020676949597486270158130949794151896658462486758795894478379066773069708175044164445709998403370593699711085066510015934273543987948441160018992407430062173230668265429291942706427525173426630886657925561044157899940941660675801799586762745356070513736718354187992278412158888047026156991465892131362448730986170558314654419958585980712943730066902375664953680791332946484116635712380968325407802853546317882104967865228681517928712618905364259431015492950376110196580494761460295599978512875697603593408362195846520296115969550687337789142783721600338350566980745912932365960727629758740690253487035192200517055438235204132522483806081160919231275992401831097961636046201405807481810660539288079054845981006225896297435782860411859207278531344891273962095937528632855527100280898618451586440805508015950318277768064224899275023824682481122677070885812285917492498183759603956458472121914904026930952970218842082930465332469564887917873518657485510103591188100519900137636601341957044754014224504121987134616070128063719648182880872833229727526984711850882804556929133853238612720304298871487602740795264728063772447309649258186139067697108326401078166266112419250368624800577137824518756076355070785341239001206141744955165943053568626417236299532756000478091859250835093221408280684108735680133914506775202872291813376753531420997438985162281013485162477106209685986032709265061380630938663557119928267857562221990257735243592278582469036374434693293603738460074429454179828792750014053314109909901104131680934219782182825111860856407523813258272098063290529491572186606084122814112071689584931365454509094959846611710518685419663993462951011631197159254573692878246286471167346354563472868505259101089313586466325089040738978482154622810686671264638849946249754648495748487629649318109388830557765504854078115993105646854732712473879799971055776670799359015702915730955466034885781663016931095890881943020283428903299963300371161052444131862372524927139120803217397691321327931404591727351030912188638604301458674761386910222598619933905794841790008169570864649316105444450699177720949760508026014144399694419008347420104329151748166093512833343063207221322680258152748235366916130326128374494123642112055326810007075157017729016288687247591931264415704793860592676098666841807830345289999179427875634910343751046402371409262880783134707050332711599563147083445253942290488565816097541920215876544037092939449985059457149656211514973530159104911826360959612151431222446607047222883645019158897558234264314169658287745493636184946999452167686205662944698727110200276134976488033575761898191610518741278968429195496458632782883736882094886577960937835223964657593455314256671371900636212849681460653879716289655324128259660517280348203833701557346076205504876544784967361668033456733017151518697713560958114487615357551646057367198766268765585429779994734036277476822362496688172802994326409940235088777790898769197889453134449190727921897821929351392869046509038056680508616226478400691255535382927459580321348992633253751950054506052563741492770904525078138765912707786151474253424575182439196209912503511751074701446033914784319247405446647952640883764538194058363239411367291709252271550869679230956283466077181849850884487617514770851571737494257060621241903746240725684453355626534888536588873430327026317805964915656295382047101407433658115225394268434993780096337590047581972083485354038311174692514805546024332780721289871977874213065272359910157354414227041005253847713026785800334152206728943894255679211604834809755126341141558372368434169997973290713978471493883583820550113730532757906820666954846241929610101433376186939774980204889635492917438435726540934202279493411564131311279082535232613586395136486351424947580151727368407204574002054975861486942667590520060926514549520744277492019114771372689087459529896410449988346488802194602635325675373644314750166601594966946166495651394352859917245259512182261991037663713748653016003190815524644365433642781275105884954018066479897217793985414356834367063387361206041740259968600373028879197330241667452747984103441911881429556274887348249138954990761727310070787348710073041320216169559020635719267076401446120548882387638506783920573879017251095678151230405783812218859038841807685408667523907159072397148159373614095470675046898458611920042042972693463531302069013462499160083747537280947318294986717697543404137805108165763705050099076932785312067104630802831498571632229280904958930906696029838686446731443308460037649612337302045385960602262940159874925583683306189635326928494946832039844310875926902487898738400921673606351286461202011640835941490985382495716212966859155151213721771385504208827658099257325566520405527747240375502643295910781185527268860775590931167345238453142455908095376425495640770809350432601959358048830642211634280852023079617851556002598185619005917374194703064649389145896818399102492174847284617354969652781257064598046121707498611419338587923000891380089560302514837524637827786908302898300955370079523618965123111306421563021319407271715146848947145129581270166725115113375119580950946361018519995820633160926680692794545950467570490779334807371217024220679368775565137080040393559596025899436524094732507425074984809559954687984068172773105377743488561550180854959933468755649157429639561457591551415181708285255119118829569052616969223679341242124365418482785591619342995519997130441096814448833582577067285830642157265263729505462950812064259404885321271218954494210696512882159635155668641019527924781835688329316172198535732894962425459799541349541666656642921510125804759378606508441736954403636772246469706964306914671237215936254518376935872733010999039155552178194884673576440946450293537573495197050003618334668577999212251841252901416151161031693261107253884052146977920580387880658979300234614022364460193101694100585121057771031257237044079916044327900378227270743139511477389074486860337844993429607819075230856811717078554358347980427731724733625136934846451675048206267463094140287129303674331966186408660087573655955841567683723971541805069435549789780856695772511725697232866505856186962806128849334401817384983769703280622799949433215248272289658243619287257387015698394603660619167708389396260411307549388082125436491418995061563506006612669213532238248336072198919404326800144376742532037364239295889582081377721930924880525726303231887822889544512091265327526033860621843687925790789784826273665377972934997225176838425030907588337137607807629771245503360320156861363592185330545553288465624181874696833128282296897839042410336775248714868888882781309580599572888216981681525873241292789235977767470271006946974571820122814233201268594347762210448542811591708491652697396445977213415545558340354745279164748346615384115776564601800856638034245500350856239534227068432847243516561828835881202563905550664230385441121325279275095215599170946859887105794831847266083864590346061308294533203234300488186285574280444866325391460228819672153342380997542316252618497990686513028283756140496013230000586603217927002279540312873939857933423526416943495562373388389631799293137487300271061100867969864410177009936757291708359746676437410839703515255958051359165289131101206442848183213744583756296939267632648129229687336458033434614272015838054517524604282082543668051030031673495487007747480915456975732677529226780579908949774473228164431682806947021081581071364784732402477355436864194427169721124815872199698240714485843929537312250059961279280000442859554415825394902107332098425865007339534942988642157515662102615500098753187228155617467522208331528884620127895733344126199093857608679251651549432370402191213265955929674397820062221638111283034421513060717535874432327950041221976762474001331051440976620669529766067215534316170467981468957191320560421173422755416962696481919149683193393748656587450613848950085608559607360153069040009769630905757293098058411228618964922457739350716060968829495157449403333623371449477202171051317071720532048060481414549623931143911167862784761000777399403594795800989593549638572389805233178856201663664631470776861237812808326536360352070668472407423212969551157857798140890031986158671335731021742396059355804657155487157433478378104572265755524589038307547608952027109992215033768393229863917426458071465303468328825348669069188935431895376117413653078000620917060722541489978421405604288370634277023764733945938896310134988360126325581747615658386237939403672965605193579959718322509726070121779961143282526434364038312662739172406978499232991806716746101735737110914576028978645068467289532420148247153602459752043884965742735164404027332924376918166090830688256156144141665347196343623115521591350423143456700905106116598949274186274476136148921701746699962658709156618997822703254397160620160506677128845081119383940849493600254052738945334332770355562587036318634552705384390195136313171179468500271171486484245800645513775918047596018832506445690778315968275418585383514590130353601654800651662923393847339429324793109115647292038816200139452629304287883655662928798570657901026904320948949261980791315756496972943295225387106724339294299661914117058662061703406155747339890849969459229054593086062272716449461833059749866902027101530446569946543976166846436523536932687180747562754693874669751753081054859488253630327341848545996961074749041515767406018957318679344167622193412414049773199500452220386143603557095791563612008162226268140641501239452253681328258384823813886455685138349788737433324448093909453553513897810067070093733077599795992106424107359362801964307739866628481950268843495650116154800767565040185582432548583228683420702899709810318260436143955591015101799303123941506158029749516858003693152704838453608003355760531362444904683143605715613791241448353275357085267447099351793328599516577694027197898690038381231560785187318933163741443561016035720871305801183445342592839697687138852530373649407744386101898823037518943919384217386040456243325240171743784366630129648629179549051498476919205220511775278490882920749237867571697062396440387676982978705345121647881499748138281228890415473436087421257290604808981587233468429938982103179249778506350455164437599186033210139363393410577787368253303284056927435840112451815397905886195706872918593749400320356169493207620642458010528489910085884922704278929028467507017888520257667329918317192569135030207328818243227010641619534651949810590348907943690917730015616435380149936264605956605172318182206648622340809622303011079349421420763003757710682833129109811289487702650490960082949754498993625411534835592019897419628472046961158618202069130810688550237107329390935300567560241759539007286927281369478072517232343082674974368052435341174209129690481715253433337003083423423017170161479569168446167909275995487309374897719274673268282220366647037707254042440728964678616789882221967483824002947621364863176822574467904374997670748440784970061253401431783976524180088303062525754833710445104830076824042799899828736621766091776099529646122433204109820855781714446231714466600509693616417800169407183986589951815011823539909237125402681801281246662489577341242506985481121980664347835333119894591306080263270170907355863693337605647693670078464065055393825981169066178227968755020745080084687596418403683318413416364516556772964248675752894712862481737651590664469006666669178536506863990712737232976448020874477387969694200977655287064680588007407724247563370198144545802441986118394143277017020408975966034817687292569975867148336759036304657634726474112587258988602084064817157996914747482968009540467627211986917501978397705626505020024313477660733685247286476758045405517666700745855493878666914312709200451990695551739050762687016020380040387856087933635434244737425406212582747147498663232211455465251932399702913698197588625726318463861128694092039943316940398429407907957611638697462999595017257674125018716883728267293266946018954286654697806100707142398135359942567144281165450114389484073321872534288631014839713431906170885690207534672992776467494293007603926640810410127130376399480260468938458621384412318406881282622725035512702582730608135676375853818519957425710306769593841555661495410559239960877947623013418410538145473737380239918831107271680298494846114195046999104738424194055872864929509350978458855337520646556600099396370478857121074608379767466830888029543108320930687738249397084585738096759646701936350176103953377786135426960760245437590103346109189402544696857846404642937647267111673620746090362831813017902709172640934486008026838355883092666364125990580303847614215065245139086123370468833689277023729163080067857341785604423514776383562853131270734587249846994511941527580718269663854969821984938602565356664616424711185590777238974583754334360730229792776025514145824732091173314159118831386805434631687855828409779541629152928484639021171307018199644318146154664847607860893917614003530435158720746426050655711051055066609922018506305595100132661798203813157335603354334065697781547933800889167035546096218491282284191837808150089627278590086029518299102512453314883063674582022469954778747363200456643853497122810215339869595017293459915901053759503931380095086575307070102888257109162815448787047268905638804420845006782627971502767166970449874843493533266265876507488973915042881793954839898918088451197339050089738088114444902151098084396059096276677331926043791472763847870218232595502651309094138115786631865313726207488710430165011275430848205443777275289193145250830791166631918809562754390117206256026509525131695043059583651656755908077606658249864483499824899530710591338895978865900551724350357116009764832570281132443158286219940515609337458901295551960341375577691232553031528510060366841124393039770170527358678791933460521567966093901975774119876617089599143842339903037406076568811040476137254586983074008152854007058493610820117583507584907281966479331416499058520565025384015166027466205255395928351758988067696296690443761484539975616717510442558856050732901070959507266203581441888837053454656144768121727324843318266176276812281480514905988737040698201385309606641975079345570523534084433912789481870469553917582334604128692576737505023896905822531303018324423109471209679882294764921335261601462323255727438530360077988124535678598745791853725100375671235723580146013955035194851776020630599982269071055877447524696243575307319719992848973409289730001205458278240327028197454933313860148769559637153041419869815641869569814551734743662107800751584030317747697951143140950095667758244710459995425481916440622890412064244118544884970687306471622020186144013744904600279352860911208762185461111649362370145966103968261553888938283326252152253638344109881320734820268073155183274609165298880769595440469301702802550338255905122328165281377734215288514253657249424459013329193495535105483514697317200650479562672941976948395629085663938993818933495013133290107928964437115407616828726101184846428809629556695098960970214449121144315353999396601972626869717957328150804262189778556277969502775458674383562328982831740402546104635784585051077635771294256585605580721827465203742137045840081366586834858300879840980903908222705959287256910990239417355665736046193152014468398626370582837878021073942535828803630155316106050681631848685580513951598106735327299307018129444453785851929404143714662454078280489816477917002769031815563339330829196956554216758871488575132345191092140454361802081704038467178726502746357067255622937466487059581194244889368905231826646344958659455528919723565524890850329633964328022678784881244236834408161463913874388320372798119436400487511823548740070011364162519768354451105472586019663341729815995233654383836983950384849445166896572503703363721191841086298117856787833656482674667117960635237282153019808377008216189678531118696163169470209595381484988299079987282870485915228210082539495157347549615878726923327223721401197728015336117879965790181599379952353828483676755142543031982794875994818173983848867934410813793462226225712395645457581988020061375349861797488700621902560257836369919675639969742575067923657813697255261844150866559558033352681286002917617452060153115470044859312310338996902325464316454069226706279881270724357391968360274448950522307536661704100790490634489985676982402289498567089387836264878580006457380395277425023626490294998034053314919899142611937791652324293849803726292259762535524051960457652083863568240162057592663154340085033511873039829609405235478820526714903704648043755034100675187989541194366370163776411972411986871577952130846664810577373460349004847662097610687253165220154957298018878465599154842056818588716241870922864565700575547270788572600961036548621915482700773390984165514306480982829296064417629295412415002163020083300069558755582434901180200989397673281600877767086205733560711385860704647555000746470374146210057707493823602677935064030333997093792331570952053671363707054329099742855470372877071395037971713455518588833441978940750847591403514107317887734399858348479376499766565626546260218120245681768991746562833425157502011817368827466276499357398714650782289727179618065995970944112112238511556578357396962025414954337319865270574173154125909762322892369201196032644715151275235254838500685639839168295059791211936191471770141948196558940964286742517316189246635456485055599029518862835972359773880162505404274920884531881291391784005366042201151099741022842480572587111308603064128465195556971945308974056723576450776103772350325609103590579191583493071051205657559364467722400775383688865743462655291091761007556917949911045353387279909611582795041942913797182252957212819524717908944324731083565482089580844715179804751878601874657814978657055331574175362955684888748783227618688974210411288707069488646496976236353863405400163070633786445002267733948625911486579960856147702564126206199536800624823259073362705046070935034850327971437462381758330685379251508938514322973715327900695610652779284994027947761631160833566528441484850416350141754952569017311029828695718260626244953175709169699968704002583741882624370418295619737513550109436926771024380204072517165134057516078774278266454663808877176309384894625861277521556117930578014659369308013527822532046690756268335624100381270485933812106544489101138357682534279430316066824762375969962405047497510772238344978229641677544308087790940910979760402539563962300465801732805200395417545877242772493275321632174118033795569091884834186573257356137102176759599072986521988557990789409097801653103780650687780658130312060414698568921632198877058403320994176945095155753094734887902388569829397645281813359198522202193727304406865881323127012325451823135798743557166264998967202673495933458325452439342674626019305841358211396798622413734311400687369565635497263048448586742372058225563317856485047103968531136730560990131039403261116554862745273914877300652515719941715473853084542144081146423404658757816500158158669265321065674627112123130869933488122196388814899798974863539245367153155154570944005381470892938580299421207991043828925710396636762481176889614499084745064893378808512031847912961185686766403203871396724455040135365074264844480841140675754276014949370766774132293838971377138611683667197081823682188356384299494298223772721239745496275217498159408640772704688559103341227588605992079679432819267264319080118050582265025197425163820681787115503733920212925359842892041180288896640124400570038205169514584284345832960668152112710881446893910093300488538903040124179587547069284747889187400135467157127793778947356140128667401613417900590702096583507891310273512278987060162074205525056222090099689442200323188838771710162374309927144954379159645900579889900491939218798181298519360117205157610305604833186590967714478645732437810199367214094704642166500520340120310595869254012067441929451569992365280203141751460821749075949551134276964836471450645941707059883993391172998174355528139633685572830879377277493782905882039509215371204868107473058645562202516114181996155084898144306022997186708535629868007092087497376351429499982233287032820597337966321664458542408801578124245223106197055033574228116256911269820613420267848165131531899706372529096219324404920671141129503464398935563270948504810019401073263291421997636076856194500226228968676404818715273718879186306302930517161682297166820123652538764102300008328004126836193471594587488323016250387061145329089606965338189449183459347228302006648932646162999028372456133263467493777514823400984177228290565406867856052660764055648026883954398287581294751678194502695634179826533036594543308926714357561324206108674749039121765846960697433540126655205745803228051880344683164805941167064941747790320016504966599301643615031552855406564082074763723095865837607595396218099386653746371942483513442928749227960611651837987328435903070758068188486353094627378706685252739922781298953944627492258557819471789787191237572884654442801956446365039215508606612669749435872382411910604090562503647429740476374023059830490558932407933435614917143302623068687429137638625134794643616119292176076787106496943683999122327538803462577948712464715298469308914944163626077608472271396990965375953836975676736715283465537080464916105241360282572181607989531301391585014352667902512259453003563849449177352937364972241357716339002408635742035705219314527178513186976461627161343066489057290911393374688788418027610441012634360538226520885545092958699295552020174637224081963355149616590307576313312043152500706542103677275831653618666997267762109918033578894232316400423808341099634139841708290432488968436139546905861141657470781900820595149219963455247815208286613473956830567299225710951079881894316942250337793256591605991538522673134888763909246480540415882167294012798369429567367509735434531345259998270282271709298685517238765617888775018270510597600083677911554198236079488907179435877171158400487141585125344003934734147351121903052341258071817020728786337474681316161377283619738159196960537242025422973456080527766762515588082956628974020093888201759186245748804243478662960416731900035595398505914045004784819528389272364623073497454907783858915447508652721294414266943122125839527783484674067084297270209763074119568819106231845670934540154742330326793791026588811633859611911261652723547441745533456909101120771680026063905335883671131874842033941301815534676622387515794223576400777411366926095280737552451975815550015234208013508973151915004365387457533864168570641661987441422418707603662631412845472676878516309407034191818725729078887189456944350149375779896894416516541085633089766494551232613128730482706745655154430519382813038773100571691396011069686429986594776665790938247436536075670296516702459832440397516839117859950610089026707719556163665399335194322260853751159651404173234593982432532955322109284942799314023334354186323632047913054731276404847766134132138859780581646565891783434549320167325949798471770913694130700391209116399234154598532652656513291636762477783922722879928795296369785540331048388708724492572177374190574197798944471412249004420313165569650270509594458833185279973812256864861152661335688119885326442871998549264729223192700094524098781120888991870375589997844851820738095414653224373849771509554437729386047080145662493605679743303841721745257346546629507381275596600935006230209113254553850542081145829124660970416418207871375930789947546876748300580177326050209127438902906046477511185957880348221003029294768657564296364100972492512054455834191406668291084824402513370843966218156267625913044486084345801750261805413061310834728340645918149009830430126572627091701224709289989761372327271046523687650409061188758468641918738166872306586586374612995390817507600095719794339763942874915557191650611547170948710963875249288287905398182694435081243072899465624992948349374418706653083357815486171256508802794655116245379756095140787077181062441801814648545274964139943720754435780315563715923742128984036873318419575981233635559496489853741266663532016196532822564766787317656098047063608985174018805597194050943525234264659226839151481976678885311643697903474754569609434346867260670482934468949997974927485520629817201657317234122597694602925159931873305111773752815159251308052689384088324636760851233554497884439569549236207535468742454658548443302013510893652991726420928668657199007105278132603620984632552563018763402725690785277860722502144027195553553727859008485957121405484496998865642671305979228774544666201602107166780271202879799158221460559439434540786788366452690520118166206553771118672321302579826424536897101514246228007454560360798356613426908325879687284976898355646655475592920542091679578182414493891085377134622316404124357754731288523996717978686419734432000165096985630385713029265736445195289977502198173319927160347691699505613733498837020507414848405654528719354308381765044697302897000817234662200002882406130216480954532346624267639454610025546056265319851320026132168649885320557057320177004819551273360978814737272922580313187854367093805654573627124433198961535923701025355950404486954535092703804975384853907144824338542724070914147129220699045021525360123270192261702634885024697255278149433870863017249273059233326904319718167390442242525327109689125647021281557714022941430071897142657441233598746964119469125259961536977845879124656367894732092578989923900964184738557655635369337644993191422788750713619784440907825481557383030926502530022703877015455199180564149226716231541765696905252171512759511022037902404413196513039994595274543668518648492120922234077747349102864098891672666975807275936322273184158565664488852556296996703133047281361343199210982107014837833505859631151987724475513578275431057145389976469294905240500042889144897902916286909422376951760814264388619380737971998237040963565980092247074273086129630928974228757839434004852040037170767297969218662216796057033534705489091633762856365012540269196962578641542401636600617967824736174038179727013023782994884190995132753951967276029758752838721472689728571991392613604438013104072202637269192755697896672011431612291009339051752438879434686254571601824442744231923521611166582625532585182243519686170272796736881302240921289367988717583927358321344080483700714021441063497081062946490947412375125962894206838089628738515785198756673821458642472604527356754114838950044619739641459065971092308425535005824460767828831075016399220204759711447210863285753385815916692241001375454720505083595178736590579817624817752091025033001382303396021905766677221334033619042662291178903233176422389125462257837537427336097549335289004159622518641224543371417106080749960690929800929165930803688417615722820065264693540038753088788967487564150078501028703448825914947375712689519330389092784623812231023535935343628152467218810523924922402270661743052321456280842012108745202257161351280362380959698951064076378565441129284124225941128291678802666049583760470386357784813828517152830950882899584554359122030480587105191536948511576956453239691764626590426224951914262790034807413047668896242281662331667168526840744655243341665406988290649139467963075066772679278205797302237839944859765835697981696127790311284931712857100104663548941582789329466435719866766794273907019132405866016112304642487417012036146824924533199636263063698441343510847199830537755568027563457710016770128532209060990738813340588468062855980856216835575668235103008540209463651773853281368319774357683827682962327550165490835291166218327587342256381936144403683814318625992146952909987457992619369047114329041568529333038970717734133053332810638854285974937074415555658584653008296427190962012076263494945361861152986967216962531239498185050595993897505171450961743663295313241778194410779423489621083686683682466076379880510663918939498195817488901698206530990520618531667373900450470806862786067786956758276696694088367704639492767190790983738888037500916800393124525540142128609944136510899683611093439581735365877561634253944100826767428407233381427990299764507586878409997729723363971536797202948341329343381772179245015653781154386312625442799874818973723287668103762385754007955076588207489695769320834020031398340946035810725718954090754210747746574367335518005922048916256870992329162894913301495012991247371951619015437193810090819327163642241970701694387513696634614962916414231217632870443264453235617456846037430350047499651051550751515724933360256502564744940681991625035916497794053113605546908783429099040177418569886851949727676382736675667898309061259609793330005363953361079258076051052137146384934796934577904236301593387020949548554824408726418869008047852446850239634781552336875786836350862902012232111981172039003057294591605546867439436617967110700952296302031106791820124133524885207282434630671956081897171781301752696798134404713579300196666253158165974442285626728860491850383191681722569268497389745524162225809001695986268184430734568956900488263540294916475908591963038254671784949155535184957831768041727709972689153324666215770012089886058167523608272095285838107897035455834966037763685417206254111860038636709067362054718441716651953298769903510806793192711712935821097277052227751726222467553420532743542505386094668261566854369914216122035812630256400090524665372865297321197295866925374118622708838069255097090849352628467467206990202289614194246740162278189754946323989737013963010924034673970565365056602492741216467255811242907110303615332211126695334069327539148123067168925910877614096886607572830037246214254463855289922585294380236407219185998490869732876027408738787155135809338726763911489920784251680574713618749253995653138305813484316021921865629852780616420165813804402783407485686304328894005640863614239486881014940530851763290400616989291394996022702295863599260817924022146814428114068726674304339375485748201526171256240946415423584363797998951192689189382585300286454311924834970145058136808604107613136971081105678704964029757629683354383072801472180061092501738039485147418147648011811754021763162740507519209710582789553684531262686483539011254300485640188682419912086007827231230804258165583219168854167076325394615499511852889004078368501834414511783981157273862090326563863601866140917201637786948014712818280317572097654888445091360943246745784154187021560892500507437789407872030773494536874653439523427469525397112591736957944528335674820523213926071739059861521708363711156469305244852803918492901131482693231653515429573812965607504416804853303888651998089109848470988480205871590783717259383030803745552434504730640304104700015120256826657681604688791786836559067268731778490596295348073721202331248192220282769425336792085715180623928597343993060297065820509755186375786209547707490245402405970951683940197661911005859557314317960332249173891922010616793170120238830927213231055543402391059205630633031462898606963118368010655176484930815184263378644346645490535040241147743863895087972129798616024227044510806164935626168184567567180020301314620861882872940028930238756048111186115563767028615523242001257559301510040599616212720760208397588384068199361549411670227287149930604961188528886279988593329126888238508955270057601655888296096394715237894145306130144456573490345199770336769208212926265963674189428205721935795779863903750075078818062513497018376781903324687279934994543228491323787124337965283147680267235949328199573835697365831119880618322625439038072170063464707594440355081654839952525240999303144347179703703687206364081361554369933839614572302244277971659479168696902542485124330338802702143684301854177412840274006879297972355996268340503020004777845305137052424508854550547445493234515899125181432587038338962571417631059575273826514018767728764097259695391055145847987442340594587952030630104019695740327597837430869830491688540468307159575257507582655054907303016086975007424634621262754944464519750665021575895290410586447875184340480898198794244817804812280629390561934758280406492085757990893807277206766599361626101738838454670081007007857793029719529234555478995707417603774137540121236949672439333898780226793837757809466124197718954263274311620448182869421978578363589865328828030142515846030162027563122517440017025365956431622356007188847280397521993267296180236831264724367048224647384372307335348889805125491264297570290456046472325385448598956464800080710758783716827431815043111061404725334798503420406809752863029489412299430991736346625182745258459037924094662291398254609261411899270533351461512544366469898683553544702821306700139496377138858498369986456022619766693678799815492072771061611656093466169523367002812743869432810214942977777966932769965043542329719420589521794922355678022084598854036455079849197450940974528471530873362596289150942423107735937680336990952544315100912493123560071457943349390000149491051709454923587968052038950727675320585460877399125306647994165687459865252897954407184131707644651215231079815103032699617487739939186110986969312101663409950610042697217383594166573783629576327584257464835858596270002398414004432830434967899985849781568827559832448694712383500878270365354081975063240680523056640218326596299238274546959632099642324308731427598496847735696769110742495888573912391059022474373210597341977062225235500861749363452995698618250765489003544167223200234705312532880087986856372389065523421556261304932058292634400090394315769200542286546146287384370833948412503631360017209539460095416550505407851560174321713809435649278306742753627860395701655360158371126876497424662216964994576105442922188470514199735841888439948531588509542614588422235917422193363288398906349715892806953121435423496925119543844002372257426162243627324567870271341858577839027009861342229885121329526798637868574558217679839078476198379273291075789610143372081466441395515895301701397094009861153062054131965931678988619476195746524266991484005163987840722583023475641070790419181209842478898000815677475774023392564493871662253817564412480928688945608882270923335188639996457266621726978564016387670122143209945463801804121458996030513488849429415262934269155939564852585568437066674142098971631225963198019449404426645253231271895455688212842198605999354970029460304183163649363331417811043748737818717003209831044465060994376282562422474681215654957087625951454045498992718265815950721870402222002814974255297265391502714789526025782196031146577320238287386250414991662657982901473345880019965561594832508282420744519772311787359230593562979626969820180406714985423990996102825927801536466044711170677930603012313225383074707450666157537314299377873086002111874666994795269500830234198882730725646682660517802720034245746131491743038838105178053929859628686020401346780254034675127426940905988417454115407854507281789255539572071322180239119433057650394180904546318258604950835625329298041000598385932519376309679176755439631289138718908547943301221054392187389718181526915270660671803638558168115791254875562827173608245339627505055859621761525310056721225632309365403604806522359881736850431674526710417865713908727357342392291217301465334168065050382845948887957382884494218389527028207803371621703143813704172795530694726931957934017627441873344737540193401408178908270275663045620877367442042177552889423493493419488556828871423097824670318856416762902714630071024074017851903501966793724917258428883879606024396568290997808826914203073947758194052945932404663799129193773543870163155889660442469441585370383346883164400410856251194551527028849923375362325156792533196811900806607729017290884276941968627487006624097336367630952360438646026299496323413314410433995523941181177901290397759182488600605285132764531494679858826339814653799540960080246146014348187794427813899644755632622896403838697875072878247265838593821807244526997087496694336018056651613087366633663529182325501136445169923151367010473370739262971880952254938979547301226446735731659861553731810979505000138105534659305066248496432836295336470905434744124187800018376014492945403761231121347019590993096579864541056864263842157638615400557356018646102288624786241621863973442738680348079974507019223910944093952408056170292008805713054733248359789862100386849750156765412356248685671313632995730347400190874683372868563939867416155085514722279852110267091344686491920150115464448106766519671220087591151021258372250732170550466852331924127114219427250549480775114993495899859314053782408220149035810559004518266400879327875873522445828359315514309548461633283493422991777139724610745750248256853606760407377697091032904296520504301367500202411332201910351996199279892596008736322975189330893824009831716164026278308880966188366515230764312517777960586164423014347750792629310761010968982180188456279527235494245984667309104442712279450195938490092620479331273883410081464973606458383655053949929530350643916818767481020520148856537772407663503075195251085938180447025886165438944441039775413972535708449867826811937074527839707776699192319697355053485641696430278059805709115168256694314644157362761852219432702926544293623523609616389172543925689871489148120399527924293186348557492638999413847664004037962809812653988455976743756235531590118278140098259838001694500777039742509846667956870413689552451192016622971176904355865172346813453979912575911928690601668497396948340033791907785602399730913554162840994503976376605048854690453127263949778192211377070251944234752162313205535820891082687869538304658234991461238720987326802247552220743569071364245338591428317183160348493946647084307110637793969025249360329669805541602905797414953444316567385427007149178363284144563521816621382629990112202420162264475062967191394750856400286941921060660205474064812813836578548301044646302779789057193426024015158350836072090119146797510670089995734934433068600578231100786085287174183967144013171722447002313184447794403699494780372131638992706892035862599490394360930536042682006296904396936009803182554692974935607560611307295574902942980792976279746568754457559988712150742473050047730490936581925601066964538490804576225249191713804137969118447556406991228382007239795674865617423658286961362354814494751682478272024643689907717175035532028652660753527798311336523217326280065291876784849953389774987364743063165558917358922061375336051493637047140471812619252714113285260166974297814691189984102313784972193929750374437954870833234266355546043838978302347493433323723005755101153036640516213210585949901720576326477865959509673092706730589275448174367812683578687516071679979493603425528442234355968253177166398181531960423179474353506725866719365718240981766493380162810864480532217925104800524272086006702844155879820789719836978823335689762627795997051070711744068408562839756527487710280839768868148592536640623569502980563604410864263633158224772199913547119526644948224035343863743642449337473550699778532662180259812305401602714274738310613029127489446451550427576332546528985637128846387220676840823556972379136181526947764338710491316371264779269344143483098883572390435210459536360970648466958315269833268260865168085242188026898867945690716632042440356990421790380010275281848590918278834505915140096226483714079304082814941932055601023358548717846859974486011499672140590836030019558930465421493701771454026335619710785941710419865478551109315670125230519444886247836206607295329630519007838438401411836687960319753392969072851266965973285476178041063908118650482171461710004988478310005942020490023113362287707154669142455568798163087969713845551097237955539507535624047198089397073567750951727229031064811227543884899239596867160100835393265710676998551869739072617102291781546805626168489060538177236527007770833760566546815882959038875966818822747815665006905758753169324152835832988913657416072779429340411567353990830842633189886156179824972646689926245934373199634529805178519132825208081865101337229968181132072241576819101911024361070145503580887554243978305565680505159592164330282456127888910034651565015553922580488683910974340593088239018286562663645517296167026419443951557874877166167674213765717310492260319146246366188451427871711710024349589567301217991930365177492783653560330174920700792383415520840517488692786306298034929218700954404648029688873979216157027218203550630524737771559083405020439737222864945369825823776617180744014727295108152602776595038111646818513052601488669776443979646307633822520603924445376434171628374207895983275392853452354473437287547477675064592404329770011165502243758449395504791764038013428029530992822298887098913837884063646822743056954525296821521464890883247717310248473542816677820400358018680130605812965157148786053501406191155808181940000007842193691698356424874248393284997410262305837925230573471788924546138826318026513796706596859006047105121071548635900896736540114337568429039944007422599882078398594015890854380311790119588962151359995597166647010838740089134255419965182742947666077213014823461219805094857215728227223987971218022181383207836584160471107706039861291607956535769222193931526089883174261794650244040583455856042383075110504484355043602182946904364138995526229202645387615252281381422451587915952680703964218060297920634318251411384415030273461930071945206549156423412968466630654554809690837801608735585067300639946431968914239630754157776112761941108470076842809273727192350666383925626663721780244282289234382463895068004157770671364765429122891862003093438984763762432469500261736608823538301512299660876209898604266277852929426495580297007149443191069102023536095339421000947178070248209734909516095866135532399628767976261989619793904554660915950722232891784933324479408244096326316251801101589891157139024289028547452745960474457065944963710359474916669656538493423510685391016781887290065485136622641033110295137196365881618503656908234910663415347747333516512337824892669195819903764706634621117768568866343232727826994410763938760869994613351652503411334479540694398980526573098201104183834904393456733853250648713190876451450668417006680876443332919272828394294332693500571864300910840395949521338023571241700085982859307735666419640683778728644747803550378956353214655312800242777325520388362543884406494365996531644408760860003977246767077893128323964274465292456678466395334835596026299497716213641621522034509958535077365220808055227257863552285122842701023524911777874780867005346376865988050937386197318036039895568219789500678005448432894242819796527496631543039981100334576217977381819568194977252401812268582197664553887895664731857945327532341281279798705922851235601530561536273821078813213993187583459795361518080591362436289012905460807216113066537123728906628591157860649924401217510494831477200341083138663244963170818016383890777755461580054307255206509806060357745256744198916531413140955502055939574145392787633838407968424299614279108326863208893203549785573345247126935053950533262280433450109082750534564767935622116565905572214296911975661665747342096478948498064303554769317390322166153824346035793051833821858392729130136979214439600722692005607560993187297412892274187330549773889826382193347532222604381189851593450863776366839194026866457468254038585763258081137510292032907121524590150732762605176513793852035962916919761671791385323437876165182801596205956473330037723031885281043183539180540472991249559151179459879147292043331858859834331583443513459529451649658024036593815085462813229453852211780392821089701137948137720985075791538046095553658030934533725890289306965272635171191673690757152108984264006270455537617383449314216827966601700187458911803372269069661704698520849345184833785075775330910299550029460786542024238130861610480741547543277585062746906462171252954582618245505662207336165677387886047936308440813869248564669624093270942818609396635579954785629606796394553320024300480552630043307566917547054480376882514024829059436430750887719098804638628038371164489642073416386773420526627144607687158222989732909488285103748516974650324757123831132017795238045891668084140556402499560325450960195884695729997412783470187290185991185224362065564432380245600428177563582565055251047012791162604170250329524884335955168120907373367742381061524249110360075047635742510714910282943794392292920826208019665714487083362640374611553801728364530376063706051239447191804531959364204587370499235783104200818373797205726486784703964568649462524021974383525456108494879531172035420622508094487694441754042371243037317875566852068696529034859584879909061926556358164155593047442992537184488967188396174644397619264994621981205420820453531149137821203848517262375155170268163066656437510829654593218569535042260394775700692951942090806421123034185108022127693007333647627280428267765391167942428897918607050442616272418771078486267982850561463450609231433889039934266793434833734287067300924464430122023893369217514086240911010154818592114747858467753126740866849060826910468442925138523359516975238553534658844883529127433518026644005264495800560039650603777592973878635808787269843492707789390823060760768464024645111977719978257792683218270000731844916126706689842708594551403325546184180154671094749744117031606018098882180701253620260500197442637308927575426240155960515886106935453169858945483992563182481307080722719708538898133955133491988913759385011768741570974265565760558726233245252720394383532283892575459695000095109300728696603109576535522550691527755325972867757125044830398312012324380769974526264903854448538185072117059210062049363167985155597185090824154630469499949694445999440047077484652228890122037504254963672522050045843518602934776371689250395964567401007357998597250196955050884628480336634738051513651542054894482469674589136358933511865929327607164342979952993275198105970757513539500609985646583031650054475227785665400858281112805491871517460129236148561769975177940813737931510598611696931222689843083568060551797744419150009749039612154775482618299536255100292079478776520667884266158144401919995849131471448225415641336769035749004677600587423983801307583892134554872732609761928365569143711490611915847167131051139081679168501325623204745102289614121190555368589707868282676124234225662561910742625473123312416939518950113167291528163148281072179548600514828381137270561801252116554678479043757223230545905077801829588829300330259098979152444992817565840371130226323842872468456323454407842523612340250620231084567122041096653991622514982598154753700067096889396096794505486497047109138370618613831137425609435973640012405214343049152974910549415700492726085324257629096811573334284441511411273553582969727299867932857743614330652941483510773741240422647643214127825565351648240156440713444347013923000030359490092287834617504131279678136646084643237934810578423192487064853709753305359054020973429704178274980208144920580255959842648085316527973224334331815633317123480142238103049467983831368295439457398522771512484788940289242239134910082215746077108105859866468274055741178995520960865533294158738922255873932166832342832610487805736437001971739599692682787009492664154053200067070495412259782080228252913893373655260966358828497727112418128248207452798239731473983299192643621650164926926994658866055421987433500906535986116943389752303706705926596207641038588931918988860897969135715813464626454575297721696186847055223869151465427277421823396675867144948787708424557339886323259268982911821348240869170334824101155716897026599951611571153346897585376802760448134689614889285478996094577654575838884002382297912044067264269878315285207570265880170095777546622033888645165863922506516729169714059204698874933811648625510212164820730922510304794666825160211956070911284056339829851046231973355307013678701138550005573000486592285352990586383213113562969915816613535303834553840484093298161474225161795048715445001441753621833027219672091211919578923001898001289811751536032634554791469249265331175242119805589397965026248222632500271656466558287335542592105793643674349351283732436686625069381788929036350245008972385239809939974596839272309279091577356619834993293916875203560171837224996751528752245293207633189254653274112498007968219337654261420365102933678484619441145243646595361720164319819061862911149053073054822229610643332946418725309955977622695540767636391083284653541965331504941021422131398917516121810549565197929001039094616055684182610215386486582479805441104794669186475032429969873084330548396315781906310073916213785466821356231152020366958184444321366276014278982327537412592200611224471825000145428378477599345388081251029674263994156623135982573957944366555664072457590441568270484056320326543120958179410059007770249582060532976737843497456636222748610148460942795993423549984173666104153627564002746566394467323233937002459815779653263423527813015219701942571310455872370446026031441243300108114122784941802251060381691032826917075767894925259069375405711772065333671227026110912052852303069912625570072655705575714441321731294252422448264087321832889497081346999713607921033446447182293181051776157046960282290294912126533050826732548700287985287522899431880906556875616159191560362909311636705122104557724706958278281744429563885440619006515877252995544319342388044957905635545890758566408850486344595700173452917968583452197313406086590628147525981364803110062810844055540267961029568911907931386800194165619758843353143007229390621156075928565264705246744486189987890394104396121083391714391966915085302306064071810516824001043455912632704567073996191381267974178941886085639829527420150690521518783278897159188540282634177706603191206145685977443910345899698543004241115891373283719125871182156008402423915876528510686454264493714077264834272278245162963508843193869559236023138216092169439683060184636184442382298566826192572848076646072089337406661850284463016938086536545563337269896880203736201500508610482136634495954745596308052928335159604830576982789546795855379291254276490680448697625824411377595418367937662928186965856105385081270793078615293992647277034930723190426094671862100284713080665733220256469496753612983633167825758556813877191031979961794844386306376151991967285856439241302829644959186109606142297180696158346187779573290626098214311173658190927275199479517274930075163269936228705204412323983288230211624011702123160102994854602660955379776201160251120296777768193616749409034764091547841575958269607361207090798762396725992352472186059001416166969054213021606962590770338364027498743578895998704177483172362096718451310984226299860491456642745319034365559626584828419223546347535318901919764523278776446384354235773031735025238921948243632014003949093769630909290145376033637614360011908687780251589744674069590168791365110390892186751740071563399219015785993284781012567504019394441057601064161951618581728971996865065352583387483156674753655506616173190464999334281721260552770201429689350694093127607538381608507711870534783752477313812066902471941372643261348113502505258493321748654553092122007036326262505716078401166602230682465554734559369441882765063899989144869507046469316032891676812249181680697454912398526865033559909627294383037079029955636459091938545795071494543799220406883406972743764602667167132046009853689799757654805980915384469412588881394622798425085891822917597750014482497520067798686299763077790688628390426922988503775146653910500748550170546528187246637354519746863803566843962934575846930699155215739915140491016962792484271907369173330757047299462688687190457258570133341601417162594938126245173360492730619912853812024071582207213722354054513280136283112000456748173110867776395592224453732645676355460059945232352612095731049568928958813686752371885621317864036470607304389144184177492339369613529132371090134800689253208901135475482873292784264479306220611326769970587456836227580531738639880265704372386087510836750625449341940773859745243736425808670950208464728150732531401483371203764207860298056219372414709173636553502379360217720848593466663540750342231908133391509696499796269632300176098398425613933806403124985981789785501251545202024372427001349377921055094744355622275988608620157849454917002255715051543080371319198201718217740905440554030869135097344318478791175643789020600710192143724579676915924706896051013286221911822953619965695886609495395211769791481071761053684322228311437897747950856315079735038496084309524879666955210972639795186585897783837116416242192717267040149018507897687050924840870446638352865232993657263537241713970521631623977391990320296690349387389910584018744424380113567175045187436006598266179506419309372885614951349095755891748768305791991780345364488654904567533219093406333654460300817072452736707573254865055328911120612952392031715412446295356382027508785699090874815481579099426041658590760766022622727787941600774958897579021563798038989372604700701584425066305969254886625552429812300645904697748533911423253091466026990737133173759149968249932534362934647912276583509039790888703040916037546988269436598213526556608680292268274237780322254286114804310890156541652318501721801706690657579414651135546303624799217054572984756343918040744213994602583251924970089324928875085042360677702053769772395216108629518042833715355043384512835265697532829888285160506607303036967652306366599951583617179370315812592761143531479070145905645901820867170216216897092006929412039044899080114479443912611038637553410373352701753979432558231570030022637549990659159266933598162857204301327298711658708709714075764836470649464350484652341223716795257525826476110060321112505680326000196387132382628208821868523534767591662338137031301776151586824041049620670425283894912613335521280522417174664192528744783997467858638595034574603896044891865302514000073531044585789189781895229670051597057579367844549408217531419016646217249144362557235586777392116511615780397311459002086903881881720123509997577510265227574198886014657489858980414208117052651893100999787356881930827987218549113834795482003753322237120670336655519226809279995087403364337564786049686209267901075291836970790606105995090130124012577328564100275134172464309781736967706036467189526890547571585552875393857528835590134411810104591887035325905072810815777359840906285342778936549961794505422169035770220430971665729127700419724693804974860018060119725772070078732015539594615811919061968398012607166445659491858615859970198113712356457693737998574872144659497700578372258367345164599480958489957317846830657994178677590662039597400566214040544569823169329143078856756245892656175326607627764039229466049307244762559896433653579153918957645119963501251734483241267609127004606774171898430989044206932414612181184692923174775870812550634634152801150512815294377646418688576623548875584357560971682689426324939380032999146147668115491942553248901195534428997645215943718934962958454066182973789286072043130786462451378574544952077034579664312906330087150693309411360723443881750576653704212746079366808007576092637525201269627798575040880432094699904133298263734101535174144505355203721118497784556387845081604604306092669536235604882539919644869703936956083510006650606529171739222554685972381686642040258618590397863206714991222654895753871527019554733821835596474249667420060106001834326034290173579140535150117105262860294667067887645505107522197153282576406406925552802928533171599736092043461197675604400355665114281065138345646832714719083600800085820502573321549911461830418097149274831639524889458105177067812817932141449657913916546646698060031045233264289248357484057883418354572290764533793030155506576063213961553667795001110686883874458356667446681473535019189667972349611415429482468500691933651762016923294660188564256229590132877615045580912656903011426847274359436041441734833951337178954855557241081504232614259327326704054938163168442970312169891467433079128900171189318682568877383064794312672383302334698645239133545812218208304278287834837482915875186289549865888287735127946577643510824812683503461435615145757508886678910994948714530555694206090731441609892018273401249352577230389621140887359423150244716128851858795240188782787689989118291081385781418517392146456932863675007291232874288952739663992447401356622389432356842626954363532814824861316932162799274520424753093771744587590864953862560646164496582538243300220338392952614512430145912796464091388989479325846159487347427978010415642042146908845760912953206590958461447491635858016448971503646661411216581862739296873147987388383461549665149071982691342835894680781844634464428559040184127208898767106054339867460986252638351248955344320589816030596849123557377784588768755479440187336351815381957464327750970143071699516987191474692569394023682470533122097720429265864486418387710283520937538016375414389297186741886080076558025916138541457158857503057771956682731106785618822519625283673884936107779337717326386626823107778206250249052620754527535954995038682180033844718742803243031066794945633085180042008829417184693989049849703047188032319715432770645397802199175677481313560302039473487914714150445773897558716864621109332082374561034290398407856454073542203220994379252684901634942144576258059394468726503333862530669288284791422532371220343712073368802742742209560125889440659238918553627833296188079489728906878262463022083871942888941922789428029220088748375063836665794632540824184476520493336264325432276340791279776036289982018268883813778344542816506718250578010841857843202252604297267127947083270422796821327746400389913422347855337001777451820097888873072379109807131437847644404627145502930821742882295233270162601446212685969092564862852915808398153262908153826921293632180075580467908002860553054797929230425212855560491554892621038378117744330061119865642515580366577583232505639578577376567613363105237440579388334517877299155625817897774477142054327282667874184736986420956605739312330301803229221844528821807319584739698877941941866698012405997896512783118949637606962383374189809406691613459026436221334700501471685115424454490924364566056108284001351013431520134033946669468158162897722720545430559714065686266479527620570087668628675061236863662434777073270371293822394855274171987356174881686360323139550530266673309951817505097721977621815625378822384129677699612605357400512856735545918351467431607215043080086863591488822142209623723834470370920009866995584002217784192476516241114709963423934331567655262172170061339999396565618841153249185462962954500402646714492550933635997355310940284698329393832572865431945983988676619715582688424638546810415353819739304725055510877280198082842481463286787096530185392170734123854848551092037912170960205310456591196564586136978826466144610466542666345250797092547655881640488225032447008590520948918476085088994857142630682523386238129769864234444840944847660918181520035848335849988005238363105342607121433858152070103580685122788142290080910961705944686362027690737810263996646905539079540080203377392395439116104691445758079466825042109389922976642364427560971333204174544055323321820247249236268885381954136094287036732876134974105741464827220754341133335959792141187826575155334290746872021404355055021025323726246885877370515346429641958404440314323050208580857061987802675394262768486448648369648488890054499029049451428209955781978288288506884755607877357028461447973227541608258834289018721153566549564453988622876713917707568948416655735345580541582966053624092873076529678255379070014093848454684015528190509810451510445858863153006427837091324608699887605509534187647913078245976517413740903920611632886024187763005411579326423382669694098604408432949930019718955444041898590184759274867812479681413498413648808884314587699558876775934249503814323854735260772157598825149701744543887230102925218762941889342179831177934915871225167073923417917158094162210487140642998222627505306366012092858205583469583006223645405219795320086245611767847155114200916494422867782716628310776176418097661939785783659326446765668008482110782954647157425470730070238225676955292434011671792654284847841584508929426385193157530378819848190977699923603168121869505607532027995043687193325127376744139275652743635382407244081582816120200561899110537396592641862739149710021764598318996964887259481889058701424824064618429639483880162993663036680439477553893885189604214878501638155610721072017769424666814964390965968217229404347503842069451312969463134658449358077720075825601456376160947221722284263360431978415863592498888412422681418984386918617173712804981877653339585317668942799375355095658386592354452780345386906770082182928352042154106790447369981354942652110188827001849828548839406477255144772924946017146798334896796356767412755190765109224710935222883872542896021101451946737309863189028818768432440380758786101154424678848742141651144684452071271976635809269498382241771315518168069143913797832585543004655406505779962656167243859238908985503207846112686785174295981327788929923518195224219935210533120140979796038219445263436019491286903731315616815533323178302030056063950546737212530167569499787174311703186761088637124107948680471818170612394286217498535528779410480798198850545708760363227929790684394790314793824104276315536206328200684634938847476801839883777355614256170584985670177819601666849513959381074195617153651597374980092706814233979774320161962014499669326416250339417762799226553632990691431398161460007509000557277716123478073993853866311439959156170133516659573822078175221691212122388791206933085409144296456817789792460855093699128336682704503021727825557726877468423792772260365143164119729386158319792375488162642015242814169956949765438971114517018756078348329358795600394011758302312876998241306029550632536107937372633361185373144642006239859872629449185198912026971598513427884965455264369649299551234044725293398417208863059271290367365367407028596646414703967382772936627754605316455455139410893187418148084294875142714859296493093436126309751607764993570949031418668273392337471932811664916649427213679370407330411123084274575459054249034881947439196277018590916666778494144504252849132603618194371761898043069502800203654716804699796385120811297101344675677620581502196662995918525339387155033400216744878470490489885267539614329283118142800366895598302640644699934093710052420301923414436442848039199564661874469871681145881509203972318543981284814036777160753593186880584019154196554709767452572054630650627708155054838029577653671935889977896627353977235565079546423394486389491738403106265974773317280531531343062965200884245781084808840305275139545858174777392657133553317382511055026605405893143875815439490072474482097296384246524503304643352383638089883098772459905402217415315143426864516625510472981720976118414802827023069895206447585857568313929850732212617440365403333234821573810143951580007242397701888485408736908592348014494731526350669792139219588819096586304730465689327414893474074868618768404796771371970537698447398229190812640692527247233002219087462334862236477395131184315632329375420601921795005970921165924583127678843296354942416881544259972187673911990563729851885629968780658757055826523258845720207867707296449992222440931144443356039242295011400901863306485730093845332548328776448761056456106582087441185801916236243532862909637259126219564612513915825433556313380822102823972080698375663835963811921290845155017735382269866482087723830222970058564370495038954396198903440946265231854669982142664527984107557466478791444689813349964801363106983227311658911192927954178496707164265160840027263420656105493049397876718775743133734715838931091029918701479216651563513798708761118484973442272413165009718894129648717893176710639193823829119160901502526923262792902349394704806974669035770033587027550159618858700919078986917735431485060325843067004243711129623133436552143637682984211236884006568608935657569095230106952822735182772487963547785220393769282172870492487393722658188535977579216822016091151748167503131432388639896870733508191448824842904470934570107399046588883322735112562951388191829765586528912499866941378739098479381099792906082056505720269456644050992914296515138242848997504688099264715992812562830016959178542527237164864545105623312321576481804813304217688531072039580062393086543493050800992738712453051817776000959437571388901581285487706450031906821588512004656863713390248893610094999843301070143970332001508216369416720366710456643804226594260790500033634555633252946027324069739911585466231326998856964842517923288398676257031512687240535943217383035248839950556763070656338042946678042617562802848405538412913866344020573769957359585503278231450038097222386915043447207271576613574431446588648352458409222756224689424626588110331444228777049379626041272638791803354280834852710315421250177916159962331715993572758113845165230727239075013120257182923472146064616308905926864132868309214221060745784427318605372164630943606391085688732742551099036707325195321900260329981146285770317269373577219405679018577773547163780099393808448889056836075280332672256255437619884354389599257535969090091457938639126581741136273355835573969578695346006704337546663332906177246773323184207501666063057351318375810526425695074796306458241917972776155264463263384345957611821870420523793169623961629381797915025621176947336594423443854686100041012495359538397438097792826211492468532988779679145861983836420441123482534246813385676039962979895125587856392892271208499228068556470737652559197789779704351537153580096698485769742841023520589366998781684417189428173418217118482808937589236493013932901634782266314912279974823704285265212639765354362922730060245266116481120866439973814664983624809434126698391711304437024153192014180145933087382004304519195490710834452406938610827190121408479356332280448219713095400391471938039386167778463247216567484256659129366129781667257171301801442980872726841730013304879472202036609518695716167710895503840247652430601874531647208758747225870644310034982472762936852411999289244696423804235547884063167679024279204166689563404450201134142022629634094385911824520572915621725849702120288526282717362608564494883690127948741750917685037086961078448205382148211967933568624914924294800424758334818148891340409514098472558509478982474649225675319096697841436046580751823448203769169323596381919374899140554866029177907495725455456398834582800387488338734122999777702130556531460472783687193847798634849009996501020732611029187414816836525067654805844281957212200900670705984103866403163192286997585312815701121463675622840368783376269678507117428673232737654222279426743860712206782506009133837561982077160796713632560988877073842605145200312470516343314773499718896658904960746327030940981096336575267315337721190069342867021515385209563091552026452364710913591202641509526014580412064381868325499495486276473805316687295232686916590109074727980898016254518055258771091753993762245495488067038204165958783787467328583921218609095059668595937867164746097472595942806140546183923390514102941679623456048432805663851482805406799836596930044795668619600755528374499975195534275607449617698274815980200910819853145451375844488545132114098153985616821516209429792151065853487905577152363718873863458639724673006236539503563989409993502885538238261077851438535113464708183763964526356844110865426209324176105660523370315841555379673083485614859773680537711699338819339595302218668330710014859101116729528551274563524102120602582524423503563398545673212768473984445593429870557937096000079345289269321533019742105434380045041364795117919317586190453971312016246358698977403473908210897413914094551510171595068344720795094992109144898983612492873010567656115891876699227120205313235669371490607578317895775214665674079651873655962921410651825451740591374455577974284868344125702555159753782178687725136886390641133175380104461752436079844863485004938789343971057467487109466730596074987598855089498840347636499429372460465872933023325253109767496925238569353162447816245080163378521202640611497734179926553720533976162618346899874749980461115166956599856659839167717032295711772516626499277265235994150743972947455608423703115975547636313182220087710101057245795327283550317688483727941759490195801900393073832806239655038779660137510863087330640191712791690734793481850000521100790878533179658301107449043834682017075088930691302252407143875001584173423178259661692163475264372313560961400472166364696915441783461176952055618246315279640235130629263064923478097577399703931305306575641091636300042519976019136331901713206167237124653969877625036878325390615821041497611489202710298230868512412887631972704683000675722989243665420128628769163011815152814042867540718239229293614184398896227650346728704555105689330903036997133826807207888278071010588337944093658743236938366445335014077772982574761591439499458502181414707723752783247586170052293399663417089916300670106434331130863713575277450698542811793367096718273770827387819513602799056227729075129887269160473790906089267623527389770120431664064698914232367794538743433418903647492211445772406800455813142027036607768762309350379724023394150090391797931485889141701117238206092018558105777408497360247654530603838588765346712733004368379155327038319003580636881065021197965124643803935307238373809763168220862633438551256623976817919866273232604169800292762465613088328871162023263125906801326305417706629043652865150318220128070861931319749538549615588972106710626840205174076056158412133103709208317638152299637479853977172002987399826436158655838867635261291866775872038234346060284858210290981241081993003936115141602360472316687710702721422508262601038113435062941392674068350930643181610784568253877703368359473969101951720823133577795417364478266570848445938013283522380972430772145851630564505931646304715250806071451592275939632908512555563489721004220068682944281980340700011010351369145686608907537087063031759238799878197510400585499814191705258032515360955812754962635809032038179021159562670517569290260869833432575939023421731266870287328963453536177790577922978851630305449992120272506365165263043383819753129209963007232050171371874908109740379419745704270617876581258476665867306961995314815748423959613323274199743259955569202442778272564523942018221137116452814773000708412375494154596537415362155585902361467497484234409629992125826323187601581689071048889605781892802681243061743887191401251141543350851045797047855752735111768882453650823884476658513461484294628721182099029841857709567549724831886377928613619191370510019388871719879280176910783831247093527424532362936108832118598630378346393690742593602959595167964074616423275584028890446719382124321204007840572538147044437948154344209774683421582097507923160392108262041944911956880099013802269793166918903140532577226452413465625504216732135982290086752711384311166856854739796311120780954795880011482252994080368920567250277614374523753965655015640239852499593383710324423074405196020765220886618528726115075372316140872084618520143761987769308815645858269889786849381199847388415508014010326009677790843170498097140457021463160433033290215685061483090434591113116760619642062246061661926331501306439470284261003782510287504269398776924020227506228102415331423900861066475492135711194275923536719607676646518297219685133518231328958275045543379632478858662417258326794997602740169838001322902680268477476155189735507026095909608092650827280620571808442037356795612376213018308191804967778066980524232272079558758032051922120870696410727155030728867943348954531688437549575015124990748308607418255051013926793891422753071557532765787031596489965230488222239608463676836755635431373295821967785379017141866670667317980765013367703002893873661723451390433712413330822340925613358263772875519620944699238532216356212335159311339807672287780981939936510615891092868505210530676096576849023928140830160429357142515090500308767668529416363413372018837804011125547094866216567184826255857240321047917397891469601150924252041011590681672120414771314284260586927557101105344833378003140699458799877486126720878057545017828255830680288561120425623776107707108637499679299131876389754542700100074396915245768643920512213612002779667233219224788091915685208329147018118492454422132568579110632135254265128483454266061583035057140696983927278326635114173620930523829432714430637059476804380337703878864718735319385307191769881845563426234973887275515807687715103173181080810286243869501575129006083507768135442847030817328040252881993422281914898214258721111271641329907231894946288148851427831537248418000591237051423221864493774366061565171214098168571583270700812927502475177546463479154832747379344393660191999209417419253659251232750374451191101925236300573709716773883784807352056637594886892661684878723611708524366619407914950410533905785209189705931335328319900475628578478543233521480514528803412808111876146196514281092611068642920566131638871464456504875647489763996490745192870171387656138389308390494163492879906893007072696676740706398876486840802443219535903053319914227430705745509879812817857045457275369825160006517907804130878428182907573234622733332166794505805282003986562377323840393276039110782450054199417902862336172941336410348167787681860653473432355510543818167836977338697942657445459074632548414297936675495087000692038634634675613910196458945677212095225206479986134143332488429464254148695635873038661499817796583917542027867515186121361776963177424789135155153581505128865565843898102053427488927678231108123987630521089256928935152505154783121133532485074052094969097930919857607267110186802534129808182585161996182808258586502086562152293946530611792288302642467089183825988751078088712597332573214023401078906759222811910539836426733988924775309834397671387065749005636858172819384166404213663199200063928805007010539596136190424833569354254037384068961493349028237395667403081067477967052665661023845034856090483298734157006044435494785634873988631349521611781475862995834379177270223188255798433055346443470415482112830035765114179490663640089053293093436410181000198679429475648606724584960513805131550200054845397890977734351102442455673938986807360508128026162587706126822320511631536901984367974407627634184931464447920825699924613089614708566515069969853553153099961538529981986472237060478736904299183722563040942816186110738539672393210550446041072715440788240688616520808194132591137611994683310380549453912408955942494736299412729555023651750897113622918823583275237935019989984702236432798571802560439790662421948694406285963167302606331347280382132281096302985566696748766610258786422139751974296443548020282563320392688396545760735078238155412021397313910422681707665830683521131738127726462394995171879936650493638511561689015296090111192685313183269117315311546201590838880461219912635192525515248107087782227096134631118725989557177112152129348598920275414358366728403049348199754404801225984540071695899311728489001068256461922719366310556417675575866960997842840253819538536532928141267359881850488041240671317440184800380291000926190027874534746945959810712706647904565745965487483677425810939819361602846320355433401380124480732099634527176212907899204978375313522919524641974462505000630021509062092673596533541120668495457362031200407130103193362100184058967467760385692579904208447969637889906628303995908731087894807729538970790735711242935620592547422961453039103132366243689315348480933998788058797740497138711157470843622493403230338976544487376062146950112667058425093930061998975460983744508846456461722371970630889648730347178896033891953375575263412315380924645794145248501549955077568762307453637117608431272058398995427599364150760525917869848334840090369363223620942901945618036430181199556143839495514469401686583269188684635375234833170136342027657802786542880730442766498292787544301241679723359418070887700307770233137428766898435240979323818579135820955253947197773726774935173241681827175006835741852719980774745659095962832648931516066459431483491429938904239233704127914110133481952906712366278551081374976464485002388279692161433048832584240315171399235562917625065705865537012727883487484441103673148844612826586648150361032483568934670436457982229308892082727610823524841832979097684491434544612195126994715458459449128367834888555310299450039403732382382159330735575946131687294786670666835144502206631939484270665425363947347119875156328843750472602228746864739345837929797071014796438857226804294762854579467727756259589258145280698463360823908074169258178185575230140782911631978784237272856080695222891313578076796741601002752245447633873247665743337275687793662432964929899957878069914092253965659501169295533022547497356265960956384702990334242851045689511550462228965971421675485324522155185595638131565808240668181769427167603581335602952039867621952031072131209858853585703797497330961810202650836992993050418152370724418896402864417198754548181570303020611635999683770181859683060892959100650326173027423990617239893071253246203209998440203191311797288905103844057464044431600709679504711576936561499298839906699679085766288758268188947340015667884138877523163133044972644716116427008284143736103200610114522598346664523050064566487264872201003695232066589199658737730080464616374294094751409451660994831220174669881717051947072633625984407343610686600117796114265393110321977971375215418728314617507323686304856909378790840266226753903782862226571061185849625799767002165262756687374442894537221857357797868563330842296189700036963730520379568996469032362522888179134251915882106103397190953585326154171256729685949603486987035564213671213803389474802530941107763627257087425839344497603058622483718829722785393225097460265007928808053629188827867853345025520298114297432710047708853784682551607674762998231126472069409611059411594787668574372801897921194865085026016648564713337206117053259284445226688833662540334719118893147587573420425102749613779936257290173758977534655928121764022977928006835317156411103810433945101015112216626748667805738605497977639811680431096648539315677758224912093266191322280870310340155190374298204493289999115123559104657595257807356574337362598938800887530432223218687914977487660499528869508910729539148167702577761907463752999888868625080160513617149391539924339948122344062075427496579640948033470011514514162211945525255499771038965411905782179522209018632842394623561838462553758000216116235683369401803652769799960001538764026674395095988239271494087074074097942092175446895129250317309138817860336525846181492712634389229081937047434360393438995474382689838161430047732994958484949225577462473891596202485382092514035550292879236516001493814034507652432547124202080384811660121483253960075994322754546160752422797817245080364243407044537681158116055944383219487947990511685065442351235858625590844430035081014962479362857949781915559115125023068470297507852332416294997854829406126571691883642920893975919201112484261987966521041692822321193231889013881091229877973495349331451939626405413202660042950602461657315960494169205767020611382501632783868219187717929715314981585968566947850072395162621608161461935549106361380054787220576853928573006302823266737861971952821502294717679435389639848288466238330070930318719733684128988659126427350219176662591798716498103246538954094415923183927941048452980639822844691309163518071242226242877367662695186385690455856441889657157472346016571758383141850092765299209834859634656940271951322057854108652690938031381600424117215326179814896543969749702179709952849687447253466531392880076909441122686123461713244414592145267281334538461989005791267054113298787229651077501408899352677415192403584978383628606562607001506451295981547852104589839333517736416222038219564637927354529414574816330542969210068877245720011892338481868769476914803714063429223329868254715798829401010897187325700780836685564335397261226031695500705032494847431429295026219458897096859343553747848291864382276293494992489594859285151470411491119326133989654722143403404034032579440967005744293595715676748917373351270775839586123446065379292726470782024154961729249012651536593220500340767924213403857105799949269662691927481246043741185640497219365265260529344332880386303126733172789334530321980639851135849088257140664054973078254277209900439289798548394654376955341295092111337025855594924132803952457132303637160835144212934566931506426608552925728167055957931445177051297987247487916426545683408907202002844013132059683686663344820949564765767819999368592157355936462662611435923537750011442756317203179054573900183999563277324062707375518884354299248782833319442678256958753560201770658264195462998085037957910522083967598696762397061474172884815109228329822498636821314977898106914981691091739362803811027552436995219834421725229754226991371421782010727804192463088724506073730748235237500471104242749084979917177640800625819303589182928405868090057619886491482803928899538472297616253449753449978260712144928692121186869821489686209517360629591490972112611374540733745684814707451614665095146575098894910556848464162055728925245595479645450704874708819704064942017058959528812369816415318942167491157511175532294294591568234253417377570165177404948122282383085427165599516088525221430759402956828064702004220653989056245804080850747206279992863522442194875117818657867962669094928173013177952631120784797206322202120764451044814200935624704227065207398671928243159917307053467884450861341214923186821261068470652479760531510973199924592973604354235137611089561760786482929901467989923248243924972304662345850579521137274083308490891716376182648295852624559805602459790414632538306564790707773313878163364438628976449488344122120237348823446453238004047501360418531586493791770670446049551640261753538544620823157102368063124839486838980181629185194292987560068420560384712290658181260031010617123129333647524635968063773907710422382438216713295943704509075605441818143034519405706020083337280152693764882804112134555756808314842104938636550752953324295081913752933907674182992008917950725329808241988594110940460319557180488022622890581456914655259123726341050069610775230164570248785199985696125391853950857925178418301617238756258164295791546620293105700749996135203052474607779241107492851309526868200081373724197974360869474805383051526141108044924779241981608479529671697827889079776086198343512106910213137382673449451773063938775380601069749443915684302210867201704877723048592742444045744649498069903636989061096162003588447071683918044973704972019411394451603741072457876024585668261986260196316061733057943240977286339639193674012789718865763854781405296573847654130579712634589105185689251400727151247247804291177550142126219895217704113038506994821258630659677339421179227749460506333471278808109483033096071979817351691447216307763968823291025465179142590487561921901641276948125112803284191199928239309060816978554441652278171126304387661651092839347235380891134307531989291737023875925856640731410010477516507049706519664897520664207711110366381749072831958122622906209053488439903582788525496526072824197143624756903508816893969326554556899779612446370971209069407716761187531968071073867673294613179465281854526970169748847444238682102260482113906379033200169408581224315122565993344095398540496056453457094621052188249224561315795392571756694476040392018767872408621457568029547853256261414300976918583637079651035840643507140713153445737524652508370341246846133914677016960120546673084706180447625938495694986998497423522452794311541089825836688974050266568300313287097564320836956199135774557874589211384707932855348804861005296510063937422069594424769488977559954007114275773184797242195228156685846484764759633223706505603399416306492739511496072410768452372262461559536575978087576987179369241221871450952424780631707221052324914156134288429676007000544944829575226753233650284231106620053988604292003802233038238138344159602416941590081601492199368292981758043159295427685114780632648082593496433005904092790557717966924587665168165834596199375158591093729605050711917447355410181124793254523018325200257306705588074291891690483630701917878917325648405218443604209918626362277641530517161343553504681293831008620180860513799963540820266097470655631753932365507369187457059163119339452373090028837363433081310240990533271244384013964756998450259149069026049728888687279345829218876448220862268753829947484019503294513889406934944331289722288091718424524695275700650808514358229746708001656995551134859018869971997368429093396513016190598930403929771018933224143598167850811351194761994364478756298147934517164016534709755333473711639987629581137167957975201053980170637715136313565477806978456660159324920784014475727204098610047686285303886606749698694613635294612926626425630059311051021638120741537874659259839869438641119437263752066487342927592201199400122066790366640421638460661668136699197426657556967084283510198217122961288920410408403467441897933220992400561438178688331077959477683866186936768242117669730108448838340303037068044320375777753701295982703295361524215637961960934635709329156767958749315690351833031505394355659777870755325480098482132545836913545137710932030539231537013191717008247096004419018174830647717774844775247608656984899362434127377167451856030052594493480565463706650008475461332217112262492777067556857278769775873209127056848854230586289495485200847925482230233832349702000037503730640326919401124325976316001743250718175292309834885721351061455257595377466316042882539680660351718848371962362460707110315635123759626497709439835113624486325885237454461849220552832972051555715003205203671709749585423319314585588439391595319717608380523431963003536181702166464622539281696342916348179878008628365749481397818673172013768011778248205685377325935171637033463121686911880924056617043357876164791646605886492823544432965704959407819901355424321506232402181975661623905024406256851508796973008648982027630870839865273767941179051032616270543094073257289958040641186872070712909404107287189989815520867501842563897086722571759516653773225787503534476790619740022471102023797260488727483735709360251231344637117327253923710854028920026886355170297005369552775996676234591973832649383342043012173663263143398003466068538744313543947888562025185695176906745209806172971164677414177950025604655691573994781488032255962086096172829050523927034680477731510017052481354762281282128230202796123586275773521009712655966235885327162832434782108391331995390852545430053461276119995618535618128391306212606161137426081119622882842473583231438467060991171588662728579080163962887159902687184081978974103080881842795176731477526001921035884724949785125801516995982990182891166790290698378414267956389415628351964628614863775454688961988658959521227410414556113391154019556933027785978450913298595934968214555540741373333791925227087793287282657806724692271262219041976114499397995002260507788062055606170765152318284356536058782926570880618694491992088366230232723382738726699994142717697004772404242678923804509575468278951944000133856708561990652739857310727741889210751396379060329146229052609129052368554638526146403431158744458533154150127545930509252653808008702557981865340828440737703189863424593898467413443753014302060909688045788846388067780647674867988045093743531702568474239476543697361360019773368726276332309997523077789376178927059847799414241844341792571270683777133057073192606857556043929265555608644250555354272967391401475089543057822986329309707487419725146651026698424974338242543624147028130761823486401076842323567420623662363897566028934109969921948663246703126078707882168396091443377822734316512916684790960065622363667662003448634667335840058946733950329959104295244882082924130760538239786113446157560793572091996365083501546452450710732482591619493663264728598286167559619155970290213789136971856767026507894908542854305009624687966125157173413394625228419935672679913680566373206839059947963085195061482674971188806618688117282959054490176159081868248307308836960525313498076818230992839461099036173476999981798793210804822099642622087616800249470361849735510219018333474007591469734342288978403437865644911097993398698926201792527884491410182380890377825025576159599436309220044842462760918706186446177600851990657631922342565645676141334028604795188183168572008704772874499119104099288858089737308859913094762680030867980505502329784695476065252058297190798832452057347745910274389998743774994364235577076667287098022995707172042042218701682049871751850588102043425491888809732524028933323071290797580280720340013452357916773391970922435228438336822540164209541654870452051842374826468483884678758740979592737869240290194883911998255167504509827104810473734194012415423323625950236885668890118914645766596100042879097392610627830190587691029009861254555370699350929411010000586975201494271675039248211993613740342023337422749332346686375791901551875723836485904235940372892655143624143857024951228349169089965630007871930229895063126986203878923149569288225328951544644631806192237836626547470044246053582934771021261602919182795496160047734879030923278855463396109782611848699223066470678888977795863519921408856119081580281548196448911533633726824890872210981828097960035687623804097026122481498797506897839134562614684032356536229897638803203499156564638844466311641453851217679859649750112370100925527392839337782785767610443334152501126645380170198167162979678779403427140508437243596872913480483848652909589787782307346156274161743666518897304973561641106726181112631349219400630205486337742323386320796782922716154219638469015540856387806597665850644942754580621538357098445056111106032144852418663423620621830407145772872763831098517717975704368176068923046334977989200683282597756056796218036914000496312634254762705869084052208571692418715104340163380866906122274248362228006258095790554835956095511908915488230087875921701523792301322855804758677375171413116847486183313415657988084547953631585344903413558180340562874178832163949356598466658684405754387821069855684458022472700417522747687416999086633858146628460595368585616031336784246519312688563065570308340730868075449698355871922067319194769416639450325787319737869536479795566332628868511542431565436833823650405867035048623093208344811988626546968282609333324384798881773660201901805678727370574816932345011389697384350369978468765583990645572451382412768778412363587429347569624714613233544290393974739856541603982621435077651024440021411345167298689332825172709956889423045657399516370821453920605727242102351820399048365167615581361984488212815638265112143474931796223597397922380480552103025645292875214372674309436088448355025559433052292262057714841022529818930409803259314152822950086853112604592968200115995033154329209014181996374348763577493689337797534915624706860745430813467571610273340763749586118034962716149108503166831363682802829606822031013580796694928132585266718125867303580922609569931676363303039763665258182923662743228191517630753121519540487364763194071572480670686569196598791896888623175880046876107480810627041997898550494194293860654385118721230899796936342618158155401465385508908359201561121917869223934991156447576877791908557934510667712689425308688511824266688011817543582418586127772814767801620863062305489541862299636972627231502667602490746416676693812813239382343931386512039646641190584869577107510999676584334467744626783077495600228476647584974364162906786163338780191907629746945257572924288481020637927409307073202098430422420514806346828575292515544473356540507857024014826076656070298974810616863802328981917086651568511109233884540232541336988675803693098723446363166366831868730943357871896797061674054424762167755066286881897280786631582874470521061073873389005357010751386252734792525450924495114471584838569234687191877896153752536195819320634350299100257807697914580208021811878807975269350782642072614311083740545415367870321410555072539395223008481580958774229922183516080280906749646958466023161710653416795203657888570389322107231670532413461954656434014691745160407183635847751441872963790045343420221602727706140044282177158605428997180145568174915051287492915640859482640668299824647021757228555306626952641824337287973849338078292301103037081504228253083969061692594809227838951499541281117637223073485419324554777251449068417046441729239985574600890728296708450624958697602245558556723051323981890078407554466325779475118050751260873107600953370010469304951802330175635006018093647400912125921480897000249076464778849961706529535080703530273741719002067063110813219786824042483417694824616565680123067340146661990022603829633028795758340870245807128029676718080008617989431779989281229138670725515377217346515993692056724455472821171253753426606437528942082907864523574890965631187946052274585544887879733660257418705619455937379927827081800468817311163579209434132806227149518483530394257762336093455722342500497244508795091057805244901586219642463961213239228417394482236678807988945047848205938566015354681089009433626132417361570320238624338865900358632789537454164837193527870931529686765140484781085894756132282333590683671382119295224522294804139696671505693512573888472080779567218343375853405658469690366034370565050265045671545724272762557319615312937066051834773313525310848987837404451851576299406289331899175517888768735972545035779762161102373833425879833361146839448892744033222903834140444913920918356540195882792339760995323575220474686434794140247120189261281946569588728709951942613320317019201424936316303620074112858927399705040876884144309757444653640090246178790779477874609602330960773713449665978920928168510560714213344703138613056956659172638278512052481941497578217870367140356227601909065135869452621572583576794822058002470278473708612346786501529679465066489355701076644283962458480018361127130251960505873421657383415769559489982313085308999956148169549456919832378721968383076755361628877493160123455879467955741441948311262990228834213136287462429990777178872232958941272132079449535187935208826805328859524978582867804449169025356436948623378369924144737260509270384439366965180953211039377216807477902414153230329969909316625052430094417883273607769175814856763571139366350263693409247834560684588396331409697744658930843899295714371030415200513796635529047545897457763865384020625013276831451369752264433185787899362429935383968092451097449408029795809981120234861853556664504039379599063791133037646146254450198071030833141527088641779136561691857999379141383044068122316279098953037248088262711474978025507217204695545220033910805869947839521659395164965724181334025424058288551679500096383927875245482696386165036461847859696103968366028752287023238587704107804440635940033083290470590639601918728965949488677514778673052607064244404749556341793486333582187674127458848396878542101293236276849000494195448877036086717410831803808734588532497434247065427147065092208547120520723168339412489286737307530730829260633771888594099740535029551517834549212453066881155102529386436932726437340943049361420424809035145060687685052254595334888655155108379246855685872813735410830529253874878343659364526860555089689482700795169350014534746978943047452270826741088212853606860186164895530809580191046457375804337350616888330807919030407690839776470402065767476176940085709400180217628046948074495006796270232914418126919284808746753269774110911187976853534115974569765270116945602047965346130787153965833441281051880372257570149378994211201576840619201573613534424406100751990081447110260116260268014825746729474662904032456883589710041597387764716385608575874298950920478779347583574563242328740023600925023571759094655024068637201349376254046461195264003362246761320486104273343844214990121981424019247843248974845156011847485375995893172322890876399403521608647772574047173672722262607363835243163574807085238455737157681747212229860030525739931842670143317177074201938289070491213407305130059155459598826062908437553804645966223357270453354339203824121794497982343912202492153536305941518848526871145494508167484903824744672176887064800211964452001859138880772460980750185971389456506022848355444447381494351560463600604446126445084250424243989152743247111155662667612918241498498509859576464261395387343831132666685204999632771985780062300638181011046236630238856080302339157825572864252635488299413937983373713081933026485018415675748022275621597480233828996543393763435194774247616950779336083853194685105725185971665179770015027860055539792359122086360853321222707987704052712419125479733888110657027367356655210952914071458522015213962821780814533129076987120135228171603013461605086244389650571171974133092397982484396937772798407514295520793575896642413935475940250641303204572856203112380146409215192015759193659505578355792930697127425371337280971797769387322468265006833124343846951330827531492846862175666159783299025863262274828556381037809191980125794648901773610751575424270768415744389205488607985507452731597616386883648715898374734842423589405770478073472625788094015770384027805845418059895714409905126932585338075519797610037382014197130347846450854017178303308709943291907013317827802385458057334715205036790775253324512794555468876099972120507749389100390885947006818399851839361047337578935300920065081837477995648219942924063298223598417341698576392278974684275748949354640167726874344487179630481238589299580933212901327183077029330421206347940241209870786447961610261272476435067215123218156914596944346686139550059032290666615434390510711776168360585543655877098220223636028259700368323461662072991222618394202815937594413815865993670798687938136057364581596647536185245262793819878753788986093226929684539520107734246354700775410387566692699377272925334562640181774858354225142397486340266319601111014496456116006972850204471913507692439240169240148203299196482999124409100636132354024045441271098673586225580122615529736262266382521234381985891087772709977713004505841851301573798831475679343584507200206226251155865804014215692851646585930716662228577964226155863855416177651149680379039551454898808978488894267004971520445217070044731267719377455485011150223106537019729468981986297373146873345795782004278947088326220652283054982984510611962710261768644630312859767768252164364455057677719464955747690018580486009638049194930969206686909860020033535688488045322188911448668705259700928207328326097831784802395989845693786738667710241896956468554915761447230766227801907730504190917439023786549994735105162387211285941734912245487041332029337123316238252992215337516491176235817419880434057690125447144805917627389038390774993613341110756083335051086017032676242274004693593972975926727958934771526785668373754442211346701824792515126429100665922845710281565189863629287051919377066011919717517336569538547930784241913972099660326282660825507102994750172571497960457891334603579343822771047402301185456493253230809998639009905721609217789456908908665194960730370294264691444917742438201079543267357120847877310806266806853451912399294394537068988044704921821663834396318054306661565200288318877067485838623723161542074923527035900390097863024835053017347244653193427845333611413067444720376703096510349350409323117564566054454890037895724321374448396887032264691521044183122170485139683774218498480832034569194451396742090394734424671471125154469809370976192439831123050049782940264050926112570642612266176125715218062526496583106480859444328817409362011267856013185330650298054578899015381860184291548251441780474089224986061764153181410300293228407669112821201218486150948915357729618424931705470930791283543513262755955690876509108957646478218879746072448827361006596477220490492867284375565313530895017541871722679532533800397095678129983704191209762132594072472541663771608719096183205914787730376827235828842467173382510049336271875400893168144331227231961396609703304426571535142774332751694687376234556819362107961714456684364785742851806922141467838094873073966657040691323407968014713121556611556796102074496045785695741143059994205348358492780554006574829850508969561830682409692867349220230328765890457126628796540474310796609124378579954972719326889925759262804801616570565553366375022680170398681695452511537894145339577670681533906844130356797021695099683965601582453148837394441361293239663003213123056132650446464644430521123239377085205278360225776635786929282604836626340409036880320397019811537870914190479943051880003536574855578682981170324292047915699015133354991354231465389428072077957229195167491529807671225925126119392211165160426240894113455732039140662115168443617161724128583953911653582579755259450377526368236532019218768347461688009768925923220567826467251846987897447071844233853508967801583181648897268452065876664988583165052973872894774122040662270228271192461736695187839134600194537682295563805664682343622693033866386232951341749207157825118414938691012583953984657303764728796267749899410966482083288805716300110586486033564192971323802258132846962901562620905049545529640080056899471290726404559687355042963337223183141124299742503128240594946291343915764580050558903280416843958736950873122307887332372765604351110904416180296411546509062598520804037320008227109718485240666388373930701484046542078189695861030322894156501596907238753818350989059180181670163595040327650702415817168118868386970512651221599572359569514178847399811714094791052258095886164404022281181757497691831578039765538982776081158464666437714826931554415377099605267215167822698914706617505018914193291354667489877101663696880327068447230375724941616734125246946553776612850477807125125398870726836190220396191835960333266368318351416601745313570664495771561237128832849591387095822908956488917206241617808739155501112739595955048664795109354413769404451232785879255317820930922981034855500537573955384324172166173670978793830871107964999728309393978053687606336599591614875293937616135708119984819599893386397152641445062857536903555773806977582155398504189381199696091748398091735379126683409832357387313113712399563196616046717409625084032409856758865991147246921082486771980806830934912289351120289659005644449323122623695377877605160841117974637207241706739720978691769045806144930361091465467672192623505017766729578282318154985383778719712127536339411222754437041767713266810249270533334450135745501746361380672980705061367669034380881654994116204513938130120331501038301021025667151913578108634518141776984474182267006824153175992347960129850483328534179438433307039852909871968943851559753719795979109008170379045330039389046735752829346818135010015915573282986712813818439055183646541098611945102862865568555616291053172482334668742289091727272593409581934369364695130960216618359688234538379763100972725169229397023551481281918345868132305574089941736225077530880781102209896584478190706898634168362279666467942726449995099631300168901722769562187670270807966304044613345790464539832961203365699923576695944268622636105271825944998979844569723635803456418051925151858912769239794717610307818513176689773272599987402057189460753327412481809437746773032870918561133009690569766473311054523460759347885051473823221430196060188440009544366769988218694025585403670747442978910706084311782045618726076902732244534632289087963748029976302397681409127448718582979083206180533128802617227198465451043632550990047861005016948633269228324181779941592108108019240017754637492302528619565716519287054953144578659121625064330319346861636356723882955657449131470984470126157036932701251315135973327229258825133640257528937984964364094686245185163463576362208014568493319956879875883714893227693268381329066987757623288929816605898987555719737507367420721591717036471817047161168142143752624641322567687588831634489294378234040227940302063207835152986351288945478734655274089792916721931554291567879378757725979969669796387802640273360620037300172173099255103767162797790815224872764313431341732507681133636661815675370688730015948840824315473095848409889053382590906855109631152301965406043376249268329575796380501354216677493113904699705838141428951990139753792057738706970103702912931816592741923624585264381760656613711320760244542120689729963124077729007552120689301018674604218425825127709681849227801904387147514769483754509248979268564283495657606959167021210522600615543467539012529342721110631261850023056672570114281788505075502852194790174698516501016583239661781360736501347504578551828936219489257650035485396681224454255249822459325917282412494384892786469478091683002472916936267276884960247603697219920720146165535516633758776829517776532186093416550006776967632815669267282925375613944984700053772650242850214965489205796441711721950782116044713783509185481894724918145996149989439986430593644816036694809990110111463020157300822211437056192273495758373934979275660637517278864572528391718735874845655610437742912993336439700771140810266957838819696448208633301843387688797816320003335703167950865583101610393754920303161162179121150189222908280824629733367723693900852136984997332483062965684570198557683714151699704095494913764733526905157782549660140465564780601904401125382788931913107356992777288038357620305841990166609326057201226216783670972099913200493406919752774721074088368467244239414331102399470424804719845249997816551868151545718924787819199746454320232188843137949793850070452421147233242590708656246196021099274629366671876735037164697580219155080673675162160963510887727978541203136547432241649818266331721097613339998223112444171095934412431531957396321501633226507735754006440282176918827481609221342415662822302839649071586049907249098044156223709966625206193616452465137124533954776397707718150948507433584955314449822867849806757812247843580075137424817844508350090785996489143619360718190677253028739016746702349474794375028593812377168719357433361563775840232979628915910470243796906007875937675508983223722782357057330932492825009708212129884867896135179367245387696702913697092070529579670976058427368353218290180354122052787659586883771526371980792882599229007497232308595558359245051774201865326690441769379638742205230298075593815014971758619595723363157790437195111355798641761835352522629043326880662308740637260145687004087778656866664115479529865532008596377536832472067205271980340732762174575143321177456015591998162771294748389886158634779337658431134435876204829193326252977027137116469175297882680475416072514373915744064079125089112908531326542450856950532761388849305608744770878736736760710448100888572342777069904159010761716464550570759865175050193678900476775521326924192675772682931264941995656808527170443441313119721357333930044814742165705120230888700171213225180295897650041343485486658304241655141745925613202707582241826786222556060787674299271105792962816010196322820927712910813023972970109493736607527526835018229202628888052279056649069516304841086511102678768186919098731990978646578234927079429057315575871530341204103422703750591815123840226447738094894117410316979308262906750801021399342886114151618900387162283987355740971156294071132936574384037275225763957592039682201877316745923033050864974742695373540561206740435924249085937848702642538878870231228376670501776208141618131490967647821245653389236978366453788406071808038668485030555170815017278868571131608976761778181467979862977474664088422935121362737085828515225313295511736841678067957573190759084022524028066820154032570781266272254499742163807779162151651391925827855205830177547581428512289939621487862964024165207565607490578724838549923839326596630887228309886041752543903309200581529474064125629254999827000779521199958073962061879165254629283394669593685166756542006912457750105939076145572907694594205254844242413231393740382394277458102226078042599735868334222019925671890289674903614105971402276155675517831875313850096561411702030278241724251637917268722077577766950534074688351520223254994173423298664109509580912187390671712224844885017774071185194956069644824515035147792704879790919649309018335875457967726816363097536852689202069310124696967503328871175987986187527029583712283021939232314895818494763372539523483034623519201421908497073153248201991354060654234821042920742569606761588813919240169639429337570938957742498979784003998566110699269388350356879876615249367497293784782431556368854447427461331481087707541934669212684944649446492270919438576081130067101162026459777320175374841107813446104296808436210325706953208054214284340934569958683316551443554402153057175848825601014521820363703398559447738730202132269503638168212339759918630707115758129751416501405522074950901153198471015615240157636910985962428843982683095453661644124728422572739946766903103903893389138204075377714558893151346768681309085365746345374766003996883115315233211951111305472666745621184357211225022039393098384536259797288182922790380317408359795057335643784519688896331107200750953962032552149703654572821722033856248950705151243261320433443849002804357763936301205721357531917937142613077402054246916854003602424659834847052951059510057155203824605652920709584252182834411519896481332277639877097932387271811686195922695131185759835908977700842877692962207404414695826786425460473642183111768733574312284215684787918317537030838737615125056747553718155927240798530018035540350419844122636732627462290795375000113931910413412362049513111833108473238305428901031213992764493407430789049722390906678973450879075297962898287790164957376430027761933542961459589462108136549768884997213617146369787393279685431588796595274775721829066959788517117004917109502329472551106213304432208933747193205638231696963780465699393138413580950061557135039959892835228297954668000219164649982720789079984994604387926315554133305201024497668063626646882477379899166987832024381152896481712158038408113134273709024054895151545676084480257849043129779220540959792703881120584840375006700612961363351705268353140399202794391442477966504285439339985650912626588309849229404941617607481112583430215579340476649593909228491399983287963130456224002544963122123102593947991122066323730772296582723717632152594145302742202704553605510621269011934466485593570182438816858363256846481666716459131682629400545128735429676297717303229766202249184337390040629043585886293710584935786544892353254507103221980064180508353731979005201812931255595616031189349966595216460044059125961607021377105944575329693024531762870560420491485631501621311232883901397649827789265679945269418287904481973131103771951958214804306466421797774967188343209274951030178060732176579651363098346018003141919560240184960212847423523811324027988005476433640267663406124424210094049314005275239694985416477374747089246301933203369531670732794901311045921638936181364093932493483971673163893078069952031982218258559733878814918969577088501972365175252589959439527245668721139501049330100592082457237968760637696130163969666222988229083562566003681968759601382868282256780726664841546189208039512803935464721909285645566873273030645187505766250724440266923721702596015865782751842670349072176838442993101660545035770493459882529776721338261897311120268928806054480058805915000222667798312857852890778334044617980131230096832892336552596413924007242124623526274737910218292217925867921140220423807688384824493741220264730013405409867324315717671443496648747737162929577796625491915329282047762879989863852368962050243882790751326983391876931256775638252361578864682907259330340144992778415316066248188917686497434340741827631316859731627907995253083756498546424650766899766918473214052799986810085790586346647534045177965742798216151864278544336789903575880033325880294057843573631550548633740660872324727464817453788551515617528990776632105399213488959699610312734255083991711785972103125786904759321259203373240075898306629338065022625352221751680143686065899772077332553107724811099995984045342599890779798104561339442077688583685215095170882761605978503862155099512030423571685348897969070811510593002331980847813590774664001554753572753499335926418779530429565962767497832252039740493705473486408169889586463665556164424336942916365326137882794470762994745476045744714717891506928794228808971982066181806065176182232379859039770001794629239904537074909589744205052440694354953822210410717835833651542077370657353408898251220902938010774670294404041172432320562860509066084432491758886601566800642362223300638326438842958208092069521572804319358738026139823292329513561903723616514892783717420505607768312172230265480645898543876648266993089417752844029904675915462115318282373794618369016525155006037648625444611969111812762663504567576168054395512781178994229002005782049562432758949335596187046278354421775601697368504107298899372168637227133814023038359395334925221670860049639597776991836551015068470069116871555361364682156405675017134133217146867393895593292726294503199835091197639747567409404115344345520199577997308425025207057493055407164266822880035861155191984482905510988584690891500398138589543038396734276379574659974178440399413476259973764016025896822418903840211903939988161795752125948995055917555694971337394113252954259557887297031020056571308282532642835364678559114469212686235389420244410728019864929223292588990445085524757283211480318149345865056808864218866801620353685881441742751332403176083716686540396748447311116731620157424813769484772977600046647737369028610240105987973596608511981287307509422876496214671202493546730835999762275428613582472593903081236507814244901102264934295879123869725942423818328294347215657788354533517210772330828668821062504030053251724430843343122037810124816532622759243062507141507058970722447197139982010372109629493087307218694001351827935789542255043816409610759305638333990145577121591392532528156393125925798518762054091544876722866607117406641744127677937132468288122439254262723386450898519760205474644611308611421136691542709949583747684812870975003611486590056985064482857094565020815186879789966797171160709175026800741719486192535173467191203709962565193463443834834652347465045309224596469832274079297625816154142072037297497064160644474858933628826990009987740524929222271371573679128562005375824448612787460541132540468525490165178134720789806030175974392584665238267874563518777911700839535354792225827705462919570057098072852523095536553844527892425558228068963048294911569080049642292442685360129625011702302192657220064488919464389554473898756192048991053858314736452538140214295525355838932626882491169238542625215735512783932492701211959648749019644306200870794495435975044114644342100505550207057022660977894039025464181301687976261641831748177161972316260597393527911217678525720698697894927581246416061698429519598788011873648127302104126332926579139593543207451497203655001364246273541966327205526368337747506885784089420438935125404419602117200793063906097399154654329146573630076677152669318976378466215427455429366939707024585336770880983442909839880503229561624868708483831524909803568786472298036034101316468964626434839015722821715075075578998110398017488593042529490903231755965116864012977480757739039422892515215343825690179052821911145990907766147981578912223240768467925141407104673219823930191628212005835580013658367478028235665005040298127154508144093163532251509949128845384713526498984383128160178118253280237148630543495908522962626233819384910009231928608124544685476436027587004874993639470732879845151951279482862612132883604800559660245574243199692990539808314321631492658763145294610328371969343709029134030848702600421162032953907618557111836774798793311952281839225150616554075284440789892470193924046490851292537488140368855661060331775945069396880932573233898143198562286278461897687379910958855487101803157669049159685206751137420589634087672930796055877150322924736874491837191161415553817940662704647037685306793129506489062520187827428136233798436838976334476847462552209451330422400865742685071813267539002608922416098745779045708922088916025981316664124586562960576652810350823794716657777674040831105865789168471432796525707974484630911974612812947584307085127952507879670047244181784407916291734764582635687225499621019766786847680480582340176650480699605726639667239563689623761395279112582958212940700899458413950200260950566294484251184157537246645398505268391622766529668075147521517109014028527663576067083980605218169124894598972333190910395049321294250261782056214120005192999534743841045779907234208126056161537285959381472646280406671959898878904403113392724683033568091252796839580056910916633302870454123420636426404478016912002756588456963315016508841484707468106706893574464144285266909936383643213236195087599272317681381865664419464521364002786046303270535615656469239267705678643662492388181656595828938719387733471586956843225621841051459908801932804974140460327452489552183346252213128184162947275485191207592783373064576620832688821501470587836420773665734441039441922787100291480134995618340739679937704061362553108184362660407097551317555287903468823042215913253120661496771554753240782768243905638602011187018904297519170351544668218483669078048013491172556086772179564045744138525493258397282556281368593081265841201028123421724842964274047063307492351431611638434290668075503471213400755345267374784749032445994625716525867059434666607633500024442407266158931908903134297732295187254958801240669517802877828418547389011397898598015146225426645052823455019542412802306243428452961208916176385192122829428862825602820720630506882803674631721405296802519145559047026738393625634509443085612367912247002107861512530102029574379093748083153969532696539197790109288157371781318049955127257134089494307122492727505280279153449003065497004977780827944915448638051991276778420901626433419064737435948746279892951961265781762994493416227501750145277637195394227896314503239186584954979709812711592116619657618432549747401320883956041534179735446941234288142472372359218039308059508489825766595854997466190087920088854698082691130967070925764569382777421796870945163067837994779878071249473146000229544881117613834501095874891077097137166917675012328860356247921587138830453482043662785538574703830693695070023667539523850927348086971786304986189617997638918145532526644655156902821244248588657132341844469775989975239314441708947558631563807128370593318682265783293216648799262972061781758980468702642810074977609155081534428068722597184497101936356994430832572357778738254271026050897829722314098570310785298348603671262666560698854654978190261280648066666332738251104684548736183475941782420066268529470590598626858834882411668689708760519365951625094208435666022086213028046422790403947261736456741815848373642153861385074726364516594411556422739240601724727127840508232827818120017545748216078327554650669367656509700339031529171714607613499357535902649815616115484097889388127122991712462427131932754560262091424642473962834451130625903517319543121349801184116145478842872293751033152384024393610328573560032178606325843318054074777212421722364348328836846704010469982393265486028062799764346492771073302332316765697594485955882472720970819883896764220638594217965309961749499347690065253182842591127074714433051857665854497329898639564734593033621713763017350393301740837163058605603857677261198848891045494854988235165495307182556940383448837384663589690964623645358468527573171521881981679437196992981131334800329106598149169910388433626451237993317846781166346566846522646572910699231581443985173849120990075141125789639988300713341026783499872638033642779214167255764765677820094945580042660589678804483061540950078512548818711086570617235721091246486291130710140609102579976402170979283641555055880118793216767117977363286590374527676941810439886544911034112136957373611414635543427445844509270190975456684317161066509254508303696326252775958392106260299191121411328370013640094530544571270984433306455839273819370869688195402896829288045239175690152016433989610400505254735513708191023376134019391390649911970216130091512297099834608630983179160096553761448705841620298648242818412471052901737073793103182451672331668432946270715888638027507197345227128040253493890179191577219712346833203518938722436629906396536005660623214954110843728950466221825798135376126518318592324595356077162357864114075140042797206845068660034279693359312037309790610727325229957580639011462388578256947993756844787618866652073507015431336412800740668067947352665683449305757395704517390574503757747680916321318397677710811011872261748036845445224169570112064791571903591839895925843042811265476742388636568121010331567614299050071831837258789703778171208540393046708930076637695316637516625148019572802123424414376621604688684303656435239333562472491975730842018185113266228126928141386146561304058643942047007605741449692817567289458166421799880424232090399900570876672251007017474710110151459461876877346231237170450834550137505418738856937290773768658190092166617328962087775332937760498733717166092116143445741487516608466739586162493449610099966001007283203771352020640250100625943211664388858726698577688224258348157784531881196533110961490187106134469620648303976780281809119123570117951967079616393924663355586034186021413345870095498210186680816030668971300022662366150159398643901120626807059702126435198427955277520387196923545286486615137551677748413972747524047613056694206878803756650990864717251310361171273350787496147981104397502245265944291993938341109658307920005626768219481736055962387917770422333720414837555433690314865249568124512388980820534061711320822404394846270419318779177628131926774917909713160744190678235577424427721660683035545237696743314487819312541518029249210076699009412323651450990530298090278766580578415005316250781953662651684232082936393555153332601018685806910405615601117959886893759302581920579955716250947182384558095474730961841956542527212924913132809895279845902778626060401019785661523710767839016444650014500634974890463168279080030687800714524370263485291381520714304852953032708311494187774378016305379731921654988125427000768877861936181586542092558876005866444305428823998495588078852193919292144010100755781684314525804079527379182518740999240202082493911516891132442929895358290223809079347038152602511642910009326320098597177423757398309920867097249348415934485417853900515582145425682738340014093808692343530036889565755216307103636314485597238682274547703727939373596559275272569562939707505114501639240895363605825179609018095324994225844035830813307463763535753159818310247619370421128848242989236566177734156620230522354922890495211781381416003790883641466153502957575676776611850786077183044000280736483884587002183421920984789050692644866135607564432673162662616015916006553156567433930301510977933235766934845430739207122557284580040994833236712252556020408427038076198053867281041777885798398266709010696839775730845346194460489588902208362036195953763979138164887691574319592270461204039571288346796744692093896823519617686297952517150769141088542054828067239702821990329617773054311594196708656186533231333103737471405369892065379093547639699495453258196861616607948820959632641348990247716641973703552414169841349318945613723007330006072457843061175640114102439017316231775092236924739279549801954817753114135273206162888545835318454349293118771647517913006529885735204856151837652504462746673646691034807625361562470032767913478759243625124361008279314450357052391224326289293842623260287384661955463749309384685017224600831968055216382761839746289308224316636978033471396659525630753814049491894242214798136102041707720577399141242625463650979296595052842381578777773585621077692512958276397985582581394935168039343917508916817547381586619540969198839523567425870827120862179488095335018917415680033509732415574316121376953706909381627244005946390354144728315957766866460974707379843336871594097776262800983413046643605870002977284742160526117476441350766876529087930777258213583066154407210266426964125545012491254345368391992121655742891617088228305472200407034634388993252398607001943566213809295723233803208297691847237237274879896263270644991478389402889562462267948357054873533622918037297780862513341209783754476578391015978860024285700502653633025043455452686985092201027894646088612782140494291994710351091358964092567436877345642275286258472838354638180001535289993695242861889813551740509430177024904757174130348516021308211166929236828760221625150516858245620626989506861096462075539700171036747621432401162444466021899926047902220329683719211513487326232881592371095519705068709796150958683630887261712550219647253097138942604373622931091817474543665593107407629084083117675978221556024653418480820808173257012331532697500070779339394251809518171049799150069339879263111743813590004026899334002874870217934245699527302616246492347553420424549132086280226623778454547968581653503764263829927756183176338583149046575193675896502421313150945121293072972311076152707055541103487437918009239900916651459847242118151970365082748023229280040137413692007615185871003140497827872075617108295350123603808802615790857578777909268804147747847449555187267490142217911550813756346800103101462509584972467772865547518384032351873492178295301160676972724112644678193076292303985781357453210894207958025808745209677707498969976549679568078364808633008823530747757371571465915025272401275201960955479010466510564230122077202989727687988614878114010338260274252357644586240926102492067510606235488704373603967346900960645326956049921335007448681658479175856739900994685516619176865181053685216643387971468276378818169770068833829639223755776402892507901944074028551492108832254953171805735817448017055814388881902013655915798662867351012728519948376471764665448678067608989073145769816513496956449054676676845507693927011129093894365021303112005849433408019366181265170665148240417981543246332650974019669904212022342034950523758691358171136618579512706476448827959446331396643683308754954902320509401916031173309390575663486872562874789906036781426212005682767190689355911725026162275158367685308500960976019323531909035981835840954353964392294159635549464290434320725360984030157087345209889030519576000392406292994315332487179349749891963352642406967337581127586661243617676415073393328291558958461001962300292114166251553132200433651832543312443443835971502129491201304125211750313769031505786017214423436882610785503714714582960621379943883349516104550984700110898143142630348936984010390938227345556371552824766138180812962508122847687482630620113487723277811865925548352240471393722273483104438241339684094570003015870734089020943163238587942863756378495494166296824916864677215060737620612562745011985003653740206024506735498453320714660522989629279457617022222944637996148497474832919596910584539799843973644993656203317255119134011190609800126272739190484460207113966516780230059268668291008745218770823411708133164067131727326776953090273863540354864904730363060156365104448760176660927153137647382053464271225415575871263215113929071171000989662221857141806673889132390171474929872959988022856781652051775966943716188824156553835495289014466807195122993902333428331314902795751758197547793339683738759894718709504672422687528521583177843704826691664493225923719789671497852762634724905344141566301613192829862736931760985931044166337251708014462055831911147117372210262756047897512789171995332138357896986121348533269868063066869033074573360882770248291556332347556088667670368277860298101477234967118358596934267398006832252227232781269992675034247710099086818554107796180463310516252607976995270675211008986187069931244506553050699567165701703254049774748903883995690953809763707316254440370454158761099056780458106490638797018693299613889142107099685069290175922322013498250810888191152698655121865459672715935850989744133900515846613627667620304643762790336320133763523045729964898862517489806722792287667351088671385186152341154968428862163982124899015833854483275742129180491863659566884990874357866713757661304878906880126846437897555068782203973160638391754352754838423219079017915751999842057485978521534955569794697992635181700050107466668520208256872431767723897723244806150567660455493098502873821723443783675972099814765017917222080751732562459597365312413060861730744264683179479461784943580290104476844636674141703427207917055229972589817607090079886778816604303755876579948204391751878104037982799460343324771849755620831453068294771010460198255307776498544614162321612559293912918807702230134982606833116837471550851613597313789857983327799548848087774502379183866537878416293489192626421458365999159049504491462843703352482660631523013620498793352213004658622497505521278001292021902590350621954679849857227753225622474242726489242365586213707471472802093881210156461679887274705069336675844233823316538660350811836434537694166084951729573269954120048532686790188450625526236670682201899188430703965776185287224365624593907839237813978655286006287224651336100288623192196038350310656125600354186946795390501663893779469098140316585752444520794910685081476709095119511780298521337080988879281707554384906462577162801350989212004806819757511613193695072324254918285161206938169615784505971577903688164254384730968112190604470722591688677212665809643235008971323128793965035679829778060734430613609469951899545132977284041651144277699521562917427686802622175028893389653422644714084099798081576984431545174315517067719964103673820973742370782911600457451174891930891151068668289112895253996097178002289739137646041198124206758194800821300948079143844952437811476799681995701401288970059930757495220100981050221722804757023261287997434822070981580977711676671774889152284859430316226554289559788766309005530479810567323201176011558078569296353817609856418965781083089870505509556129493920743459471285411265339621656270029968494034445987119153530762013990131235911694668225890871411647811489499741879862308942898256960985864692835516096612050177881477688847511523763136522802635164197173826099278994967973039389802283615333715348859846673632616509026701671704968604654841443320604136736600026396770975149798203628618079548340003423538709020996082145138253113944449186617371898223586068940912872401306822435599175599427514628767813788732752590370818629337693284602032257704450392747848120706401236582907050526596390314193567758364129057918636764607079426834258733803457330016142975241593387582548252424541421944538987507854894091418394359238192990956124800566510058916460099304591350711595359239770634974038351766102418536741262586916770759804580106385805795605134813861251388428630748133148153793567073732295935867955709797157190666489183354056307313343708184864879999387018374888415679794297002432593092755028500743878723381080844360015052537801911946078525627188809759873457895553047224964872247588560863676680235468450802873829574961445613043136127293626990269270368358131909204619711371447194901656365278924092014591127707131870916425066733210754041223852495932548798694142708362521561149162095479643365600555599722847985414880920448318849120865804091583452146836540599807280548439190944082462947045743830966837774513770324040708147554753955433803932566781321270443826670929315117164039968948385365793112249352702325202812032773494856240884459569950203150219972762022438698967952814497370328085780113722210321959256849633222729932167828076064747688730680142205384104955068184940905017733333699109229649088069588176810966586542015237905420440978130676937817930654097147022534451229616928245447435387187425192040298719982044027318864845063431906851784528214905148182803286171933135012337938362863930329076502588204510096399886215207610164755944206520285979017180167529549212795522581668193042430792142424985311012156829267995284665875456752861672179673177238200672611728321139626864255326162685842541209577652735121794453422520987803175839227526411839881874910664118526297396890911825354437636144556606287287000837827608166350541255641166463310482596838963268034154503754750201878493727761049924177419894284291810354981647047492655277350523924782888060599854732551134874105436115724298863183654432669629175477719851712669819124109477116724864212992547485874251409323641818191568550844574791756115240837293047309175718899721174677148416158635030882514645370718298468545308284209882885075148933352726310942077185509561692897704710010903470005809441928497845845904727874888209344664093597561215935712621302331198388761860320016127416951953722638354847241314109010361574020090006768867145675181046592049703084514434569745000895298347746287005530956062317533058885425233778863473688920261671663337759638330549545669837158492539507221100191748043304195134412429095909416763665837003529287109559881660289215695465584683452920019049404793893858629306890359589197575251411241653709847050691108450191695410463248223805247587321861068929942475686276835621253085590027039771753900145070888361412445418046401911506796306168623046135139719024535750811229469998391465548688757582757973602277488401632402659629033514276868337039615423544794458071769983729921314026437638026474983591826680628477171695284649308624482892443101728244971334847110863841175991501017411470417775762615373778179963525801848836266474319103360203145755855474352347597538189017014482005977311615735743723385678346963848124284532050887069210629062892484484257178442600877903575645977643274658009793280645105455034284006028477829822987492892462799142260360677073091128899732971095673160184951201136460175026269732918181034740426624842044619414445399105288913069031115849470548397775445568684377105884948443154091073852540244294887238023951587311997018579432096458664297256152411672885453894982138188108414065889986882873203353340906664019189437102940541728061839995018433149472923857750955057213584302256503423679537298804621432529423511686098387402065756872705718006720016690536332780290263118508023656098355455064394945410432909834809532020277596754115445251125806824240259394833810710824295540621173321292563872132003227735386458658191834817953147052378982899497821174199541745924285245933466637907821503852297240847099089576801521715354471354850440944932163266655009208854762578095778144111851945639721167008804303803300381394320855317727674525298949823621982246386565598782083695962106057473038169131256565864520569386023245626429574935826582989421132807102160337696382990135209209186125369799696145530399248281050693879421214153382878790302809768873512174853145752097440610391499737975571888350288471932134647388623543907006823854780470760559231016525534399818896861293177285403692991105478129388727127036917722417227174816461814646386619390575800412217910159348625481166364252825221704475447475554113874407237358871836409764290992364967026986092614340183063083566787005194355328611203179254719611245377472630364800487689287368971547152636408648975640953815620707804479545928970440219019687985485378717076824652948613976971377853105988021644014126288235455903862858328138754553398169776785671061853622017555593503514041466993202040861124449100264514742029873800424648643274941030207765907887563182999645712489608694375638761296418587925584111974474560958617705314329884258911662252352873127710986331847988731820759084440052134114118022853449331806953049310892848624173895878068481448280775342330005268317767242497559291690590800824542743676913981942299090492421181115936725368548975886756936727230814816616881720887901120652121468837913368230087337696513297281797309486268351280457428489267764415803691777062094034156264419409690884292165863394738020309460037259043498632252411384844705029984793025493237051636038417569630872370174562440271009406379007240956754046037462160444900707375656415243147369140214427720865048581061848120463326271890605040476475795023546388356621474086024211605254409990629477801488315591186039269382347605778984098902806225249679610373294802709560716992932749572985497361862319096233349508438124671950898773746031031671303223075607043423240246451352016416106142963391677878825039217252554248954684944074746733966276903605343981973480064433960418910225974433039223593334026112282018656270110522843822075049382871379652102713351996849357883091939496121425993715759150326110236128932302511218934055659156247303242420207295778031133827782981831999106050074830528294967816010140083152359471623236085016144407207673336889300012384105766709974754048975606113385918056818626664852010015616100349203823685595532969936724559577909058290764822754413527060201047064804413954207975050433076659591951013688732266357711430118036888159600967126954449501229121404330191866713030075450288049333737318901724159854966519209332968903495374312889998956635500125735312379046282587961264404398605687401002794278220528210309455862614902560713261868555347218822006414583655978005513436550764663309528429090442866724033669484688583155778775960046230219957833335506705075112231778448284214151354155630846747358055665318255056171338769598890723475139996923975494679748769654543445121603380528241120323765051592604688296914501776387352099243164521713958913524448302039398550825655629742966417163179118367663700833929533926513408059189129620543755580160531845429500260207146754772028825050712286628056871979323601451651357587302223623924262012195417352102677019681222531597875547184922608651812707475945361766663265696837580982809202656609462874725066840363513853745737739694879175591259764417681560333305344576055450110538847017066237258030038540849931239690391738429080174597081557165905461651508016096959743052869359060261226969453687943609751763083666696812357409928610728392074753315328877030808957239240884129905257075280256903675635190765379190199654416947081289344545253854844752279171877029210783067898302782562276831923300700027890416649922907174676482133208887687634876427326891941131585542475789663802962772597460985656304843645994363950908441883928002432535746049850633816128307211022750267210482458651174288747260932256863803388014821131922860147633005252396784576584981350395350448030903381032677055388298058766581436995248888004572361282637193650220261593472257191588500210903989168713294474376060039352165197213202542996229555813705082554895141871070593293339634419161702035217481887861718912457278630919104830716416039022700575498235334756007334050944704904040430715949207691172570088907154555393193476946651953881385537602807017185218865341822854844123837909681974715892856906062629571522397988877369426835758476736757049799751467331048995264935124722304046326329477591176980093985233546899834213874831920303741427426320565574565200722266586023049135982259002227585342769775771533737227790377810219298899132064444052413621801595279179411367851980317532538287069062661161038304271743535445508917939005862019143508491150719342997683192132469742641805647484136267060709220869441654161103289417216996712131235537190599757752625116291944928298851383160125435003037312549847033701399739322756132947079715556775835746061857728592843263844431734020372484001009436530656144011414989390346062793877423050818397209090899637960230626215955732226821755446417658789237073038239218637112497902508825272903123436002228072652923235121245970917660148110491839539471474200220480142012994601716162908457973283448129479798245953089675852651389642724653428195749287733981142529628780108451626609471569000819407396756643975042553596875888029962583692611529080830331229695786259026895441345555549247875666629588702362604000525410215739219990937783942713325056945022025568484062944439840162542108874650063858656483890127432594807968716607106322379779125900184438834957952953950403150720194178433899265736247012449211547008306433026318868554384804800239723489169236190777827661528167107219497800004993060736416942215514528088562304581724213243230189660224814189780847548723616503641413070197685975998796998960504346239023682723131206448794438256189023523705857827048747778705351966349076273033811022560911611422792310480213399112204032125168957465238164215709890309335192429360964776023518370560157335106744639984233528451297040319008116680619290086520544563680374855524400687230250800113966666819852000709927417648455956378223730893970948431733016887691100815645912682359004224094050243184460981708883319427300805287690815757470063275954835757745738424592059289985875151309815144432418344074988147330696289790234201306392237059403901303600439036734008556484619806784655494630797052576513131689014606769946713762534785106971547296888724566558614129573647458752048147639874554844449647155881700243946609715087793939783766817292963986586827209150910216230581734429869186029755658815998526323382406956364881937556494484034999329325701267340509821803336756619962603911460859178745666770205344568299492631644915508536910083450633802106552040718154845639865525378411422665118976190674553579188144525628185273483144270173036213821724977953218275727961446320256299071574115448828916236344468473091478829914391252696764983213194378865304270475758609659763294175916182107134672207897999327277442679833636941150946369940081255960434257932196602519697522294583469274568263483049367490282396851123308913076525745498944231830917398069819875528936758294540543330168264146033589371905770213735284756249944105804379293420888109911069454050000937316628590303536273300544626302944304641760586160397379600071839200097910738140843130339195205965457839197543177426552518261783778796997784599988256247230784137441913265266323470516463564825209581585482036660399982947200279563888237540168465593848210553095390853314126076224158121825256768792450509400495493674654885327180070270354330674857213702827770617207867083481865835625864553212722126419265858373914072392821859881020800989665604728310021019811447947228232192819536156463244503433481933788797639854237349845611074987324269982006363609937792442919914699167975272618495283598175946915452260083810107040312822108329047362533534992450936698718339358753473767291515221385269982076037019964021108541660879776134733449279106962158768676365084013484326490395757592999883114683918074644586800332216502649852879766210951660049997362976715258196600609486346172587687260206574838885282017095960804710534265126001995947377366999221721080312956634619850850427284209472346755556162577533539455075787255114204149362086055179994133059251439732464310521453332649688161789506184481242211992081715697947357598925272758025434221858534868707422100326419402571391873775691221311627158677205483974252693701170284818213018080631042898371822789433258450660709104693931871275042980922075401185559445033085717601416807414865121684380604034621434094687026517480072391793490824627336091519706769858289715754733896608826115433431632087042056772483800920935570253819914694499881419700656861356244860446105875969774763252333602670415966044605280428395024085851138417938880887524150179202256274376992211485298040695632933554098817736991703922719752347303706978004616823417013856329215647005026278543035136277398441540764523979318686254555166936523688271427094379436784854914291137375749768599020870594060360387322335275782795572615709647799800894330898485624158953764273431804319921205813015803593490634575647929888085117949322447242510152185992677938863083997528262894331499371892979863919824295840405192603780995843425752971980844064792894542952100487059485568709451604885850453432203799538752598343722407201376640616759114275058978406588786282186523731728063458245672115531393628690357594514341946986962346218631648967755906406629591229041096721420863532141639684839209559237009954631754642818938455582644977537079121563247421163264793551122458360966161979281467903451800286877886149457059438928412734009969891326692589219469750761399674692440389075204088193655176074810931191970678726068172042198334762573737396323011210157558954642296066022859321556575901912342810008548020719350028542144980619671491127708090435751429688994985543955200887959706287594928817173053204899334565831403682241989089417690528042572653451236637650107494908092095264771040425501872547977344892284337264212326984441999600577819214910004410162153521832955299818811784037638299352191040224578352879587738781788220811633128510725411261175578848786272619211686097681863393441243592245239131660474649601729810410484246772639588305411127713646351547682980360304670192840654139898448107888800676107304082105045758822425602481478417931806583060469769300993865236566135332912072418988668046936124582501890435935828408944463867122149542043963826646963448867477357763679946797600767306339361187860138332933607684185076447711684078538876649155777741476924077833582125082774778130625128401918188200614722921606290047577852488832190418834362964653222199281704309972196447672632997890069582782341650705178933330461296972723890785485887043018392671176955457731688694039790168988834265256221564862000234947516123818041396803592135152879102986625506742628531250776546053648764500396284851016095654219396012516913713262625765366684231816552658172428960940157575152754841999530735708857284471518164097327425201499261630081825461751816590141276206084259685360888932442618439370615241861067679350833507761982397943429906149440401470139784324555804245279779878838318703988493643501392962542227608389897617151880793864472086480920671509564825231786180142814975463011490061637842189842709523732653855398262415497379958554140509900573522143813230427889344895928322001097791462515575470299807853234175510338659125491536868921013873762983760781213945395141663984934075621883720057464665901110578997394078533485893666462670956090341954214797613734231500887400834696913206424503763306346635046598042813858904124370719914522264094125727598976572763211312876703017940777967601977268052134808589887020103593900165866822725735408466324288506012013800535691950620002730125873400846238594829045963550725392076343507976596269260364193369384018748415010582150954351456347609056488196781438570107406217937951923243464626212530633706284382458761595799289530855484122608408244796208252313139313083054516760334841107190701043073922134007542095695586393777620721870961779072701242404237680588817931226812214874264623379257116997016344203039459095749660345742098580458938594450425033782196707455400506937646143576770637617776138360792508173178272476874532948200066361995155119816772630783616587256720525420230510686530914801933427123512273813600433097066321083611974118038124171243952535402441323240566238677338483424259981914258675386999678774941766089081360856380224963357357826382546454364499341433982913967126284302124240872575747703169362171332941661739729131215106425100417827259081088432532961250963444897014268026926602742551730642576931993431138039949958113164084285528595657483293100565419895690623722702765550812968530374138914366956150260554383816048628104561984433875011657505851747574552519243438933398169382310952152149559919917439156819171321545055405725480198192395668919044122729545530878378352798441806159349721763066198564977638157750079934520657483018181410004908178036402220035557375651331694244621731297724965032134881722784626317363271000905788102090719271699792363038148452426497659376130907676085754377533369165919040981290581140825868870536074070330511948789513958726549049218869625341555045343396463234046829632762453794040883032765894322177163179068385031776904956231044980465815395216217644346075476324753732087249675874968673305737749430998272560205908093072818434738111986264366986614019931023651196817660574492000120209304733051653728254332481710363550076535757689439422296511379085698002173103327917082756546416590644745898810249159717768378412223770683770619556844104918728800648133758056349073522679485133662892192640199712419956808225586950431060909211424292300339418719136734914991254368961900741386412823516823012763721428499692074961631020108444078470730210241701205798813273568336604161359158926262559088614621970222362030664976680192056355845691263951308705710042557842260003168846406986200605062246236595583372860874405704294976741773727628703858083068736732015017104383005018146385955801979571084654023783519977084598984869727410017872326559238973090998576517940165009824417020105260812014364674217640248057720159639481507356119440638432104279984281655649820958388965506976824106910506903801238178318359678658231813309773786293123475303793571794031051004629388834088019866831111348431042504758690858233498792657783673031425731607171380865364150388755242218541561336908680603123835116004889904994845384299409321851768106216479179870984555472112656616050649464961470879569103530308227997024659158394748401202402391087458709292883257882438709671677780054933582314195437233043373629130055388232525556954820382968014052599103126510426587980013157352117581192651943658509294000551259436690777478867664866665331738455386251715137429491611589775765945492490552252002721555048118802661747461884143693264181207468753779091243623979689203166264623823896835223828919025559843120388503820855389062711559462434946505238113062990860294117426288163576974427309442613014377548884804099021930617967701619576986008845656399054108095779642498861553327040828909349439181383020872928549029752356584199943696147042310589253822695349516107691094334984372516555052297065865263929783567193460249418183699443680460302981171207481820984082880139788633243845283291049132584452411216259049284802300506464552974663697472283214858641465791466257215257786719285245823824789481143192433896668616258955043050251356456555557472789647739366664301534734275712414147621572002288065056917096557095461316222918235531629139618546814537609152717393173018969548737092756439360961725425898419328791200855017021403278080539616585564174390124564279153777890621586926456058935918486580883475760668690934804212521781663401892528798687904940542694685651557367010910827822310326462362377991426798667670227100787115700735231314671496414046298731417054863717065156389891452536554236611696012384877353213888980137032959147860725165330187085170134016680636427473935684034921615766655941110482341565721773240879567438169277986656396677179803203149052385684536372866892021683896613511594631883055332912864291502523200956599780718071486214086870358696666586580991065352265633401453003844294029388770365471470431383428867470168353612779323419268585852773537741794107736248150254457827031383648618185512250948866443257838567686292224593487708807203601718625785465483316775082154613688823749717185400513050559681284105561396323659040398142149567681238390544044260437459230318610262665306037309994231712371520713085661585655701882983123579773330635181134795075873385096315416983150267513759513288009687809231825799007969360323242561600845623116050933608781949503361207159815159102222837090513066378899517917093264597213305688440864848855186263764054683705321031909776722937093209213959858011552190445453173501132729096972178089738906023660814030581460049682655447551522622399999599413072776975476987243903793911610519697090357982783792697245411330440838750913643608904229657074408874017074293418736091526734016164961771044548908913973627684156539886122179860202801441992335045821122165603499099517388618409824186567497905026387734891600054063674623406361819840458312866057375867873580463314913561832517516465674042974611007915185528530477625285640585117323033187550844346616955757741147941664293711743790190457605415703942402517985404321708832538820454133332120241351489778374997808471720841184641227516667098899331201065586631594194090930280956058179428935670182063964788952500285505053732284346763707159199227523946423720010490436145173645351435847580861835118920550514728568688231818149968101602735710328157368606964159523647502295265484043039225034825558682477143778608224783242230963846771728652854599933539085624795324668024713199396077337049326073886227753582940218915858965407144841976935823215394042767604474387426013501811081305802305314528670639899897636386920332715140132602219944038633559230256074167316027104963034474942876540847849369801857701198822532109427063355603265384630015457021555076926679087003032707015511024398108669192538525219547517346981836260586325252569113309085375627863723308832376263785581617113575892692600409472504686531401780128374483730624307056330376692629935288007993676014862000701447891458781239496439651486206355532530745842014983830294084331656274802855701848104296561709724449279252437622469865645549755350589126318110424772398548993758787991733078066542107876712258237898843612585112483066965696471018259256504201018636349781046505038853055757499138263779946993291385695341118597472787175228098611713455203710590093136199834881433125001996175697071892127439966666992898208025885306784318668217416626037496192382394988065008453883044612349058183186148729368202841915654735789103979719073352535189770570283009384917016726575160280522390145141553007319158587959323244572547665828134768655186603186409157659823233740880702856905391551477278700530359290008133451485412667283762944162767256296992527941601384524376664277077464885228441941452839789551868288777949113858313261570512045349954380530199999597512758974139904145236773315202461007083748788689274353986522135537391734169691767685276381441555165934590785429659758763900439749913468900076579040402932877622898506070108129145499697540561504034620387253867774276491655917173455048849655232694830213622432648431198968186386259694000322632425972209275671450210650047224667514591802983320391997630274183360391187778607278746818621611134029945875617330423276058347039791668555632996289624641304622437591357931186763364980479225446361623925921729850545390123294015850058939748707919811595015986795063487755640678101178989276295726081147882152012429352764936507503491171991469727742315022671424054173155995316389390239550345701119490296586979017949517905243555111477910587050525420799298167996127038849380941043797351236643397547434812829791023522805955863496673996121875636467032082626552215787500582573272939294172010183733106697953667560118779883520997191064850144120849187857031950537929087185667823167885715618041841195679638463717379499102644820239514232736784601685204573090392302954154895576463263457165481502450088115833227141283198556176485362798205233357854639148240573227180240487338645605459002215951827573448855763461051813646810916272516147838253780361675131544117725813021463474166755024859222959965343412662654793084867927736458872177190057499858101453285454371196939103519648299729196792931843135935990115669367215809031476131539050074356688066397759575643657067167458426318119678944077761310374563017008264476404104654247248592364674930211164842817051672229633216939531592798768709514356036034461032913957189102025849548360410457339764135864841248999105043794755711326311495391854248005859143111562387473023425570368822517953398086424800708911463600432651634163991798854689730352791361070080205751044522483197785875770007315615729107767372146011625063802424980336118100044129650184834659038062255695165002938345082023228091756174241469181946021390016941969467457975545594617408704581100731940983700396564697939575409983287645591444477481605162892925537465681283407215691809572107079631279732120529805255936895351710077496597970103434447814931760987445971169691676101966412818364040912059916515278764925403542453148465186968332347902119378458121326556571124499871371123733654664506367430785852517312036548767448469278548230417260070033849738396371172024285861082975276757807401387801955987593293317869448019230035405362907885326714279719050857699724050568049726646502897887173883180625766672583580081804735428002597781759695258543468974233843817298563986631788388400043325705233308956403850544974407098024391149989541864480158971345060018282288004614211442215871627576791887775103753285180425183639377551565505397543909253329798276195828088760308885533904954206344291311539824117255884996831599875290831808081127419099800431134782811753966170395483326318155376994916964735770540475381109193800156613917794601978001281603618558092006624022123233424765379180688177153885602566883215362851937199515959104499923734997965193622901625551699389828319264440628444220948660386228697751931327158650862931381978135586901263639676174537701382470999338953114982863873564430474687423695848219223225482997648685099398884524209997993941396909842230050287609988877856656664162482111689217600521963735743855610566420325633005396626623059277876901742317599219123469031915209650431212946134570233824468784118558531322873797185096466277523958007415566766556980197057236826088180397213945295447782949817835779809632665555049394237932880177948580029965729689885492000128433936937284252611419866945439677547532468517674278419269430697668558492478331657319416318786984312482826449558692258062799116119447302640999907151507856533935878498616259477230242998378988314708136236745388777258638146721963542506639795120054801316815868448662841929273011252919998255372006525998967716730557074673159272865270512812266213268547934172166715755096491283460658418620718644520099599516530546079245123014851888115397489984264089236234292288252601676886805534505960359977065261040310894631391184334553563492918198878541874532258882479125635527659830750434908450122903471665685254004127377340050719236974508026887723962736676746036426716467083515751950332584051604241037466656842087141708424992584502474257704427531049769880158461061625141166828362437386908484851540283911148744586907509515859264082374766303756442175375857020402415204439012406414252510629706664229496717484160864684147531937685805799727080677536441345384325386551031768503391135450950362701371603848461908397569416719751833210732053444425460770793255080958813733353727367609760572303256474574044716622668994253611811279547715177728882300446222090623364626296893544634219063668558991886776126421840905695079542388674095785674466141871907103604244535280350264127397143495263989474446468515253510025613869434035387407318944334401513045325364497118915432815588557299410203742919211789704795527257144724106909311102325505702301077558430813569160410193890713367927539009851408793930962414512156977145595021108020524578316443787659438519819523351067583994246380667684169500494713686478650503831556416644010168837429053417757749458125091711719870487602181548001292948863181368523985860592352375270817231275475603197625085509854338474314536376500930733006571520690188862995543359550854831173469146706286762573685658741016028854915715777181260091026280420313254936399974610533621044801255305826787371246304546299591616723099773521325837570611890744170200268419945870963141578768636409514635815397455758196072543335472089951516150285055864398610248058173680631025118197015885421893454806458608817625839050255066105978977307007271209925346059188127610592029510638890934220440526038370117303194155023082742009907987588651166653804753590961415912243307058542840735579837814433801139818232965611191225023240981238727185721572553199924720156971673917145448614527598060413700466980526594814797947358049565895035947320735252908081220238817105270799969231321835336888786061523139005548047197081774395506337112837471645611012334312572215337010841388387309711733201302718373582938831022186810183808047440124259692588775379895163769687926097131607154014012192266683231650143835456592791811449213064022578711063849067800976358814906741588927350360420514105029941368965580584190770523579340081768593423688076400839852400003285613629320480838589826029739204324830657232983741495638625839174553462960084266819505252258564037451622097587285371156885172967175132318349464612436904345335764428316033941295804174699835517928018798040699181436641977967908214492524038842740671621207835900029022407945852506600300927172854269237550450586156104698122323853851617632155942999970275437576809244619886244403950203718676566407351679927362212944745270896220171236472759958630221852846618425808060359237489810628847984578904470868623122058184652575182879188795880672231511308401632350841014628264189914506159303647054204908751850009200678633683758825717755695439198342962854113311707286456010904807642377187138501622338944186903910621688205039552298823945908059331576051686700717198212888872513341820989779312587191460300413609872469114734625757340871649020841314891756139140969450692766591033972094095728407934604621723281455054075368719986826440856419396646479431144914849745976428531731942336543687871231168296682401704762548851563410982531351162558095444192899546777305819745144038082222700207811746106253106820842425520795467716103210338714394009127378197199682910927115115135448057919930979602838739991795024706202914154884974698427039076028644047810604639227484086078557736386080012458837552235485946287752085807412601714697053879441806557833585568688889216475089550850292665399629000332831894654575715776833632828696036171382025244376704674882632276264917915515160060653228155587376561271179661817434672307120179014726151596286469626181813908512706066059714034535595030089707245357776466448853058454661777445823291061985337273705457044918828750206889343482593864056905652119135911548393775674190873797428313336510833445982103912222199593019079258369462926502278710196320794960955764866977699860594558351674086099979742549168893932719307522998344639807639498858320336812726179439679113050424640465792404015254747424408921629341916566549218760958156126254123136967154660383601479109985827234875943105287102580539865943625416922077515468256488468016458975795955659717872726825730707094672650493458746312360603237671933521121440446947211425750082991386898470765217623620978440201025332961265843631484312339415769536942506639570798310776692632355098217462138431368375841303927115936811055703849770325359397899904697969370344664689271547926774378276520100465619929280989667583607604157700640568063289684412003692263592801706044903111353486980433011192909231155068351045962472660029950086695285954008503597134421967282250501343295964027497401330184588953637204958481506626338186064234092656706441435120020283863986929610644020195927834838785666856073257268824030142222817876948247942357668968871619256609892346668634056587843142991498851756747882830480373518337395949659441952596447254462207521908036213213659248191788350152544579375819351447582574378569791555845792186431800505237678736958469475009805070105102358168049995627096592072437823054469646171816542560458002935304441223095354473630387710645085543728656104674901419991286084938659878471473373333951567854727086998912166458023385967967700214342635925395298326511840750925780520280955280475715449994123832484258838969367370835373106247110051824569042906133737682576196416142700918462540870318654970887696103398231363103213304522028098460755997453905210434965603226660994406851910972583984111923975772036733072937376105831817544753094446722272301185554735257112202290576885066122338662588594438689867463626029686211599836502277406205727166059437657228899107060369693125097153383847851498528897475873390047098378722576244392214261284136451000336149690582367966689272332777825662166157665089604646233694533474049138101992041426076558072808509457192478091417284344679901604984178459025698627024700475645238916311618507187416797141026728281667930358903299213994651745792974126980378801753902773320787705244918749354313558284817225968961937434036225979268927807289385990304765642401042223975200244998399437500784739071534936235434423742441674215225073331836100100510910363434540961927687306215261699745812736326537083743656125845210487923453292177411359736962822824012397302554889707415034241262824645677224727535297058727968313091163963873492502662524403026803656528343877551081833165258465702830969996326843588048606484830578428750031001510923001387605026373829898529953666735011936023350312763550894534309455975644755423889315850381431467879527819870184796894215094172414683512011981518067801808723765471837476503522836312310022807207048746014767576570455543800146583077156293834258520706827777086076455473184184784627839275607096295689400818517349275236181512747843111434201319365310575009150564013501611144239221608112743975517071565134969469138184665890957454878997586220876859590547012605237029626454141887193369855187041116513923264638009600079491691062726209335667532375809535628096754536617756038791416401416284495520031415576324234787747090860998753241342938361707554422244138182835006340343639544074334998051935078749278739683194069425705736624215988426563197329180123902931567344697300636834297508823934351573350133751316207370215670220810211023363626354987507437346354420864892393012097323735816765095664067019512479330280564973271068874590273761244907128834929310186788258267029510499811372823540847898224495345520746472320001981850402745160781419456317693128391232562556316433416883053658844362279298529897751632495865843734396579999849674804634975182754163965663202357458504560448614541277961142641229917032517369429630874443215357454213970826623218224285665152857855469230227030756029982055427512696427885099722833051357138088532785440693817981608945105091286032125127289227885925539639639623028321656212394346547845721954697503020935697968074120681395846213055156067942458557804553541110660427971091102195768537627929537401466583037179938892011748397944925954863052547147479051008167512177105824434583427476874016039346603222125723792627525553462819290468214725222592338321490898113273883061274862712559085505250704628936249825197457435016608682121435611413694523219273841689640832250775971236409279084963818184043319774123276323814471336430622911308402756403476759519297900745160041898430512608889115783264977982444008046522464061850227281190871696693248402871890862054688012598814936518359117677316829301884698207928294911784701874931631016321962052303426907528676868798583866897235773681046013653568889768579173470148730586828013186788049418340457536532185591023218012388951915449506248390253322452287813273159127692598684466421927251233845379935807588351728513417393156734706410594554584351433786428730430545308795038632294836079342184298339643902623752603916018817589799463178543891557726580359272466803528834076670083153525374692170842432316547739602286821758506817626127495814746392097390141226028586996272904787989971707311394619501062744409413721887948396393149068483703747318006993639990517499183067408282212739242879098233903259683815855180943645120424036971804499051979366484795727024519093807658756985057223936139623724954587239497543392438941800791750085326300286290825302469383937510855983469346453334127268422985823963879059552647069271308284441837474664226973874711358669030820373773575976875561409958652539981011517451463401260834829729387007423343586397688706948933491060364909152450680707300394645415856176767902518842293621562904652683953666613727659019988713535311525707212716371926431011539742557239137943934379676982476206372343778425043686538719748746724931428750477223235720209395927639586943908152006172836665523340567420504943859572310672347093029329832379269372030477225917739536739612248983912650796073037397428928669293977854248977624916956862581242689640591506581563793919859719143502100581116937832620092353580643496270310153917542356223116458467459239838880748332967204687085490427366320346881158811725346632559649593317590224644469447968119674442587319056649436410857218373859960882869149629107820333276335343534142288555241218463839323138723880868250650657925390526943778674542249160113098142252961958495040039686294600273602098150446307335801033715547671862725411544931254379940946451736068814158451195502133796686118227447250888991253584193223285304814038795677943948845846598337368422353528929150798919369907248720959340134451213420484821343901174931832845996544969465472989833861190338355277853569766994616651885147478026379557058961689875877932269496453298137298294820740408872667203162715020302210325437712812504196901265412778754242888359920132625955089960887886368354981858171701261985654789426692152314671391093175433275460668518792005966041843317090835526116503437900850538493420489880852538383925812410205571085244073148230915732064484827034842616143313621011415069693274278639779969632783243664410885175338694996513498894760535512638508307298621512134018522631239425878541296363081451318106085385472371496469350048401789099325947478019713038839504332985929833255268173449558209653299187819314586802956673876538773672939250935825619765465818270538624938803088537534341184287107068796193881200764221952912589162812911999124844513181401029774868566035111482003258315745698128675016815101999990907730696052806845172835036086581576665599504121748131812247393545707226347109758529097080778962284831693469061219202366581498872337215150110381636558447729744842877326706226116720691140692458294656772477196794914726830618982823084589403890445351434402911550174566128723774571037807090988810553200997503600701017086004021300380639866445563632294018739864868821058609007412955703405428623619094159753544687336538526085613176487223285759577265490097911245760112869885559310297591726253935002118577691765658249631266809751275738818686833169317110445608263844580923331918272463550937398360635868389530165990372436943639930707020858432710140868361808514857494792712870608464312549210474075952770447747242525384032001163538213214681440186222660389301348586085555971336630799076402381512826146620114344373932686665217588478987829185852963339256963045046609921085685730357445662756616040446068007741580712789677654154592393881117737773576348672051085529793200312577027557598026382120910636731736545611051375937341390029285153445099543012812310922890281203257674248386459447954382888414774936931863247288150512635306075012473392273023271910695191461079483670387168544452300551721271700327410873088728704384619815064064488212570917849448230540654081466285328306501888793592616813927407880100242206281246609052906068349458225489908407167500775575991727746784643098030132402641174793113164845123203577978812066844005459096920974025801214655957011963651658663622686712680432243662183105255071921233053147933179573744068947541796338204463986580032751348663480698138394295993776742180978003258703956009510377662514693213594655988288292554332792967314869843314599233944106918853737354677631007225765041270929619878241136023215625972113467206237315083395441390062097693965871714923967838256339602406911613274025714387095310352381744927670878561899156397528666886369383600013749176120303407164933036147743927477285480112997193244878565758678923878987579304187725095813940313730033491993528738128873232666780423098483657478494374313931340230633483992820946344530119928180505914375597621140181536100307456071147919356903815577000129958667683849211092069510107227630725564871354656620183282617586395391899074845213437404034157689482338051341613978417518417366691141003991336197387450814531026382706504103700110872283106709913124490591101032422986970266097200226387768574777912931588910616669838736314196927139783678510345978699764745581895845378990822098025945158571936096906150914902436074113011243291991695129073526786063402139824889259572734219132938937437154907308211980155874290817778339972689213537164225980374977820364728922255177430981002484395872799790955563998173714175003579584021008614980020926162936561713976984782882171550819123973595294130939339726805504628725647422440788554873655654781763139339280034978429739018144077443735850375364703088806959244954911627474774878068909868934621741128389367885633586727564577024248431994690785855790658960492544283411583954344100485001445306744314234265299865623033000083482560823734343230878049515934344573698154035650777539225581085907698556060396474404946631308111912351440419046059522463279528910495119467912844324333028993235048129444398772381340717525373178438180862506012775015962969882978335687964333114270363356329939539024796205476224994120765552429170097933037080115750855811529650498700690720651306458279711447259139050001637254848174559960219564169150449471465826913805407821025696560722399417272067501143485368661019039339201654403517182066000871452728126643147191743984764447730582724216215854738946558806729222610823114786001687958971622111991481341727128545673982216530725710183421288423750428947548567363003300410916203350089048270421151086280494827184558242543335498060688402079301247863298814995228371206358351384175461675940288249823541610271615045226632640805942783910697498255382610781104749436319415245532820877039822407439111380142529302768964334854795886190028933790671682381739039292510462765162579933280670562606323438266833491318487389558589660666583632504856570001749382887470977103883291957218899546376931492530680594300043974979757739072172244271253733800840868755656418410951903476610721462358564890752053215233752731131873141941337558293494504743290313948341260872255998818233107166748821129651711291127122367177624538234993340673278167205532676284996344965184306845376499556445377282060187225321849638895516633590400895207405129409338177566667121009909626562352055196542385710118920947054164102933823677945920648883168421013868129045816272668273770387742492984842112543397768676599046417703568948731219081143053215537748986730727855427939477642796438191618849754921669345538542564523324781111963172739803524106721477035160631917913315846499493804178278880880684302970878574597310188961256254797090008803354148538716058992736471998863224106666048639387429257128759079273265298939063967271031288680925126825708565717638579241545505263584974034921382953790284934460395784150183255478194551143848129115133080603488417880903913820051746884235213464541864500279334335954544282078446824787116692549703692738314810740716026649955600015404037467736598652765742067013804192972176924513414675610233580417394301892504608576637702700643522824222022044629029861427314445373425721955737039567862584017960225869501372965503705709532934922674389038537126954867210897546396006303673829452317806339788991912306433717928736511973302098925041696953038343951557030866153352509347897708518740058197593650097147341138964449433343658753898998027430099836385817799116020845725889186004832031862690774980166488023727902817703720007825312048940467982516014279611749997514075746478549733298124284216177816395197031242982127639466497277311565532422273246884021204078555473318315065563740245092960175882982522835856283651263532748272229185489831320751418742893569041661831444238067553687601096209141896691352159400763322405153873512467677712061469782790283953024169473618079318131362445198120836610146841924305205913343008285357238554672015845320275731510472251617688914171387865646581927037224273529791566774935328997948489951570863515988521123080145328469798866790363300831641345869397128384201011314020449154884301981993438285769156043934216041635904001217285470531797296277229337219267863942404525007869077369638195988593361033910893494786594697226251257265508804614808320532956748583198527430469643436158227739081057690119199939953866568203394265651612652213974020552896427257563921704005338297099158984739062640574811462976964452241593299898548094715101978971649703639762252382462008763763368336685514631120907863653102073280758484866416875686888434489652446082516494690222318345802434581715401971246153961421951046885199490613376992253073051974608741938217195598778321823343927932368090765974289073229556173319806022831827554518901135516882539799896773689597936054155081586429054450931624787636373389849659984805195325744978047552156110307933627964767434858525024015152084152602832042771566072469072613014243198734685070739884314750299739148400289784571828562025967925186399075685637136680565592929849135079521615788867701346371443108798871385139751818867562636515143098906079253569478184503841767741390616535507630978142086035330722145965036569414112373693806283730565976412818038086487428082884716382518773561753689698728872508165301805326106567159128396007618447764924408882445072409034314065213746035234859241466518078669128592403393940538718357774375901669506653099666216726925317090050947881050634810345844285148972645458820351050113385186466870510456183530315745867289233485451967276645862943134290234574683448946813157621124877131705962776440002827484788747180815397681261638583901619153580447643408100607481897959066711457887129509871972636475734013454908599960721418097537214608510381784935978918513408430528764660747495925483198217826537867399042330128486206667078736712821484258812384868826479214506126394446594365137387078124340951767618852664534907762274855588887534168373634141506175181157512462977310504943208311048475829050312291791848305523282594313716039993698103510188173878995686751565779082441613012708956783558254297910015787078609006288547061440805281221007586121652812260150414471012864576703938587058047758810121650633344510480392498224520908632600985009215237907077025603669974376217987699431088747537551872030357698527633221939038694681037697113445244787013702547388363960962828901749666023941670290193270920362513316421110518447366972029072569919520061769631270866657738728503421343222365599700692605216217617734367637828063883240113233582923659167673250113782292039136162411477056665859975063069626282341015507606040360803094444570464536163904427455859113323031474905075135666840919642017881843527151222413647802050934822509608399239033915180863089319303779184426654482834549383510019700539080655881013896263295274334759164873288483139269504474135211564166120607381230138149636878217774643525204181452081005089659696789478342389389230364219353912437876442807940652723063356085413951434590799576669132835606892698761298208700465402507904683657586540385735800024506513830306510762224613838490581262728518821919468981107189081742587485467855413852073689860660355944309831659046127317163902254353770202875733736990049940428434484642315418657746191057337515337706207952083343430596472474367995476052869220867245948933410878930220803753688800481672848849625578276001576657678013577689466907753979713933314449137883961307580374934008658835554936116261025741462831599643210681899446937019284585631015138098671950096150382349490536700817373831588555203773627257114823187884594706103520117262017786836327995352755395850020203898979666322497413291962600344745647269383306481703268183298258305429887670036044325551277329331300249623463069509072333939543609348469706831039626502371760472674860073601013991622161561472987911477633249576613115350411346886977122069358598238877069482937580420669743966730852486946669955714213277802790947703281290611201674439886454677778275847098766018793013714218852152192496122136691296624666746677772355051821888781420163391653082491510308185122855002412594238933021055769999732684864138975892988381136201373106394201467731619455854667772370095929941746359944303267788318826793217654364383630314889348359866289010570920991225566311230567966967270267362554567647220890542815966612616536867344444043501384289587058214785171082181533379565895616763594125916105896736193352767659087851230778224282251349022491221707843543876081078166297943076124882257199095678701751431393732516774938873000961577065456456602060261997365740952274603351306263137246510600387524031504216469629280471534140800188160190111132068520182506765331840775015507587191323479853436804527690839856590708112828643400196851923038748499945425352127136863181971176791243134568753709631214880269031623168482430240013571659439257813065808196577855737277580043516256123239592525680614603106784322668212171624207910413392272999650661127967022984990713597254723043441444192178973609507511832172192400240636560454150857928841059716451004982161776431269562058879691041194439829155803162397291799115163133269498479231132491962437166161704874585188549806605305384715514283490279740142031346941856465050957696097882391480099538469163284355143493601150342665699428966206081246627521530038616308139555526171219642883338093172448875138997704433528489362085392596832372125452151749588461944296640110995930124478717158691032229495847200955234593497274197167958399604705803527719460200718647155793984954568167667274423280733585930671983456438210635928515166750554285258323662256746906498158179127445450132212421421751632869543931541283156848805509172873144490286023307302154875488343189153949738036401649547430569667954319448527228251544619019057169345731803408110158822139274849883184982550466865545159269687234961778939530716546067375229095184941897425771426998256249888403720207288612825139105421967603502415778091803030300555930480215037432373511324297009110684576297513004876762305108743234864187488705181875153893306431839788750882826075012388441254869478038541818532913550106230692115472959347375189852384351725479831411083124384344234152188832260097735596589390175879777567381695912046510377481382339366971234514486928711640227047595438666241554992023718112609562697730383070136634254186890975956259317108390657339372712191433724877924074429397111502999281688502194151666061911030411509798177756030028013155669999393686274992750617927853338042729627628129489573310126957744635088930925757837206377600815450756841398149633470005600208358882123705066643350343429391235577664922946899888537420885899580164769295203022218920103294429561810377905690721383141841263976917750529943048515386615140656356358942521962433438469011668892450061762812421783405462961760067319023726129719768747783339608953757531116896236599099627208822564358410800700933443120012789495920284595207342938373881670543750795901575025536784665229872609150368561969917594768062507055917058103875727939345054169868803049565453453632230120440815803102479320278671156432195608284652667014083761734505428711052600003685949499993469389051611985714250292136299843358121272991902465622452931561337927187619744766423640484303065771519003873762771535218697945435025295750599611793638736658128931739705280277610920871681728961632495957183554341699530522459495406993076868870998849987062069234211646198202966897467302665288080636629881948809795473060460974932851116600794448362073885400744917154882925812850466150078255102728738427914450508724280018157573441620604090427838078701957128659813157487972315165388605014135918193923692832717687835773409202233149743378447375094575281849109679985439090120154623125489732640621942340189039523854743441486422892768430523344268264967866698333866866775666525119484584994353145092327125480823761704254507400836450578010791445655644919815150899679050727401951074481970761529481473269368927315642665840942656822961114300911609491571918216638676622819690162438722444274931698950580223333485426482101114532153498181942458561025089420725393308309355963571900677278085710105639544715558120666783288238607626299739280903567130270333044379983164394827313444980041430805469475138611719569989924994584048760451588780080182024535275545803490086272750943213078802186448659842277492227186337966450591065778916834129903424051641929626771270537166573475582073332613709764977212800714433013602210779018400136943955083662129644022613421988398831547790029595855751890020632550166963063650642130047504236172540149802819565695429793268386320047501612758085380719285602402696652999815159217750884262532660857132320994489639192571955207354322562922712568359355472353049733540604812122531223855421592164438055724803667030876793795057847572847575223412541368541819685021559406128269935453814188521083526397665813701367721801685953895315774821776009691721502121451205151654833449305724233295512634678668547867395368407269730487304225172568028024784980347540794033093561514130363748428249844667878940797567867662294041897550034842651641733948718210046492416845371623916955538256012127013685837595820735344055140949629002815437030670932941157938102129205292126718681905621106223154542648226743136265317322647881238386365459181615439800091166586941223432074782481050701817642400077117386936778850668276617092815687029239177875693968027733826921677486040603211850852019352930611182604476425868972198298579028929234942035804543101732931760773170779297601169846870085698809708596259164839308263184392677372981173895183514264197017855126799385851732657151469497229791643317060256639579226179095459279404016220144748468861400844955837498618782597016587927396802575863628341335445719302328222313879730212250592742265450210258830146677210766612905135716252564333182391953673556351228336489187390618409095124136258311641714531551808397727026248449250807828321559421098695460908588134269528743816376583878506168717576823874970827801408287504823955406833379442312495881879340197965503134704086504395340219224100907382226366843397925549708477790633787156830279636937912251110064643830490935892635889885078081280622634341446568643580080222960586175381218207520590227219376442057693020489125754106302547622486663458595415912346630206633858574574026753137689333240734561558597521170554529204068076475192218654106172388041225916206289496725129338605454266200123208771283415571124798571334252497172342013885346635983068986753619469134698452966807225853749070013268563712878488251930972043153403831420354200071469195800641930315066052880583602082509669823584932262138148809738675714648345418338831611464024541735512693608371662157662129037816282186597702163062295606048202631535813304550082628179114788918337017225275452723205260402888909864152090824307147709193745068348187960737415736185791296286739268253786600798619714378894776609114714686167271803386692201600101738756640465875800052283583250359430568956700979542721626154708279936563058536593694708706191064783784613658413600907980521120225204966027712022812574243682973366145954360856636207007353818134345141928994366441065953740217040101090089571767949934735696767144823839783168492306687805700093957544753358344875391100531000154105015751657126125819411641685317623839731806019060000334316973955809954981755709566138966359415643536223707377046435367675179764860161191413420150872619944161408603780697581928627964908998747764828093904731224403240801263607554620937819739787387704290998291880894496889394890387387282807986956625475891617934884228722318157589992037827060799971131241240422844385647746877014416914092755738261063405919431942609175475950903063489109512279189970892422719267668659669775019066973108952933770372820886417143673688141813196580103486806452482312930850851791517209458275350803543135271109272811334341071987711539407548346237596931736984225009870244121749711699035057845687915181491438349932054514587479231997381707080360174811191271413009464105346536408331697959662903857100400938828053299102881446410644480301069380417867556553944750985589030034296477522192274627438392743552812375062474980169359429316233216621906808242364989829432016466179305930546320487488018617111133299734677544414202693277280218333085360788168134328401780477431085913590865546407102763653242216123299261056496893102484456526846284525819626797588701889095526902665721640022382513257151115276739360200284705686036127854250385082671968545224939959261127691995267830323251536228108010404553046522958327285873601271421104579484586835747258915020462380270231322850497944255564030600833656118309949224787706147025275054872065640523490748000246620073957845886457847596228164240956610674012815750615176963453434954261657697230947441869783911027445797399323048443276554161629212395442860133363152302785963027168230115898132614457609963984551158564953501277913748845593606537514252889877097118712341783782869738309709096851417311495908871991914720926403483589709011190005523406908597078896056568143636279829484466015183879528706241330351742815510246709677686114174109605198486022008629594791030221389472738469024263791717650373532771038256647556320014341393786496014162747089443006208558861174220807033222904609928497395123437060543526120004450090867717283347015380297587905243824988811738215093786809941724747839989726898896690641933941252173706693106633823227269341066570343156993552504705577218229121638461655390100121281049841839855531944960763405063687502975892853739877835850248823234038109420675219581817164297959826403709046607186092475651184975266350945952170254545565179816910330704702828574126163030764169021223981700078637111593651925180464911868308218468290925295763306211021213338736758051726985225908483119130732179836551522215241289431013540413609279431061902989406086244921428079770294321623291430841841337534311807344938186847838849270570762113166944620018087475922356229723589123907575724191397883624761862334322673068784873867605605702651649342945271167340048747667492646494390727268338299554479773284330570162794512578616836638953270903372846028751716808870468526798498358959194542487393964788097174443196202160659334147484889514104823833929860134856288223957501450665916694538014737222027178644022743240670661218093631512855436217369081162930380908164997171316426609235439480189467033685269739196272249546561379422940250238674652330131064965055061493827919696332517846245019727861033809574702239079531962288061577489766556514423433411213790275284032853215896652660738487199088263866840525029913750096129410634808127190403028910376518163528835409901504008982926617696924451712040138922732297740914134659373802415193104984612564136135387612906912265243232982527203289153332168194472216706473216237552179388695191142601537331781676792349620125271627169945360490093394974542900002674825126511997136943252237282098263171424883990025198931845387549585700038598703250231375416498433210654395784519741322139701292659220849714528206808462008700156152588003207436610695915451479268537984877988275567454528857086622987923207473639720183875429880105396543579772241620285182273088133069679474847787159584956976295944698922519772621906424333465610296653429035698033453639892468742143805656842613818614171137348771571533020588158622540990763290973223772523739930284825206183703909421726964060221064194093330739193188779670254992434083507275143991756540483331348430100156885917697944624335382353948981122452795301441075211056462251491303810974320011184473436743868543889965083323843983406178148879597428650107130839313220033596162642822790220355451667448413175847253449694668094196333101685973339791116513840506840856838065289274351579353488489766723968958447518604262421136662898770439470653503821802520902530126773886476247037016069685352222598858171512982674285843704467268063435495444607335911219898876798702993732367434823319414408834722131262947208045870451069538267865052137830734293054274948491752518003606525349894568536308510210787538887300230866055166630320360782397586872158959157095180486095822294902077549829394119846227523127384257825623814512931725005313754977790206548786964460994041883796254737353908120265056792343306857956479255710853894002678173919399629897450941758816039090284082736050449188042821612487180524187516396210637371403903795087678592279658631500569137523439634249411964779474369591196378498882376015018502054369634941856590824988620852126872821867824361250559655310593076534802507268847113692126463589567154460817533866893573508560518548439138843252591082979012770021896937841662241724225869102678570913007062103840347616199824377623758011654569793734283111853516568856856927420062578230916930253198113921362797978027237486473736600494722581352506829471056128364323674805071629744917059764478598946722860679807927293537680552876003947859256092428921635439068026343880511742213272055943746335163475901422620949939624660151866186863586603594527613118575273800870586871981102842734246795843536676535054538303610676454350759024494037933492192266079140287422808168602603334729504615910036801117688939114676148873617242978569834691408157708156464191221245240710735969825695946018822471386745860520641802053287100225677129181167205059511629224167953863048241663301158741194113805170942062813464122110749483360610681874516065622293604375519955289444884678378418266114477567679486931697448812395974356342609002578221329942833108371779915210531512041869498956446467640252447684386034805197106329525240135923240912498651023827497035406931507047190533962683559041375212797668758697901832304641205393135567287387128004090569614404647681870720718245731637867812376946816805121160232558632726897046960879847304327499351871463063097382638307703742523825679268727147913541417305833086547532412249840355252801645358401189745229775919785519924118401142551357293103464443891405241740757955730749304594769120499728705386444134669670763799699777545753860257263004543310965238507277682847681893331419840146007361644926765664636588085822125512606118585239027231550214287438928172313374522205132680717791623812334496023099004021925946767443167863135088369137496041488144518864430207372392320600199491090786540654789069014156691549428362107007055477679828463620154893470633563245902996470111513456529855200351952973723354988272061300999034219074357741886476588514572843444399451108742501040714649811629528666667208236757817898782434692688133617358543600863375502981759313869459237360094035992843690805943690332331413780039983817312574408056331435805222110177059247859997559753328715614093209678739918732722301416460242062393345803966581891113157452404981085172420260524768816788476014695341094425087774852337354581434154850515629665701588212114425554983130697273510302094124338819782041120741059461418696297688051660886286185359150770645360064965545821084866641274683139672275289789037969979761979424114435690455011319280561634673814046761053143650550141254434778744373275344294298484294057687207284453887509629028733997566412619360534704939577541977147492685296057060133353671477309688601166465191555445027509097568771211158172370187509602387792790713349655054144613344765701512724266316206336696271150161193322948176994460731702705507489509102126713369640323622587890866634306777786896430893298203933183691369709034619195989535811709206779497501976730161845103130476633557204064200675344867951836925581644925892109349898398802282131951532912077597900602736115517410888380261962999979188917990148352468519518051688911761999445821826212454175005057910406285166577047307250218804665668382449899466524914212257051397070822081303385901443175570065199752843317079147452614971633438464261557710262266483248528826077018327098644749206020761287807442350293464251614107168609846656278459341293397422457025424428517776081353212531166894572685331899969159082575116712052640888250702162991389855480312650200138680403839341191649153965461952878070758508530815799126726442821376987919839509317037641572407754520805992745769906249933716356269197519214791579091015976465927865340851750297949701510921870526768634896321131578812424784195119695344095957413146069674616682954280191059019399856450877176096215925263730266999297249334782931539880038766032176966231466836000879421979389427622144444204090133376620000790478178893106901456348176296240192022749400179434971146430317839467603504463217604811763522147708391803807389883351850197871233698314319726430970775615539564515881439111564027105261474710212825756140491276141331241082850213993597608986548402967398110277845420160977176392897059375640837724904195613031312929593497854348202908670701941871218450820601226209580042889939178684725617218358515380715146260229540160844414561483325766792822187842554952759805385581722375708144876393893722627584195678807946235036611053632101442993634125135530917651899847446040006412927077378926023017893468001770396242807892725350607275260206827981353777230361839499304102959863066743007939022721203953045330606470260571737614328745451492697821832130869394914009257564587796283876786912935287120789024054888299460876759579575537212522853606914145096736623229933068940302836391830836223885154401701895513996936657152448250330745548322215482112653901313893731109885768322592629517487736345662674654711816504649322391304825768431999890195618146041260811847733623309911651060004787232156627570780451619804076738051857720076195576261426026806753898059756086045812835243107117664995770688284377111827406818067751766464062916618124095727047155216324917941169627243527070993659659007717010940445281753498992756475671382775364789806362995243642001285450465832586616555916071801002301988086019475804597465637425342254247017017610823516175868235808587459578088323432489651449758817195619628333936089476936706433985067261303420174552676990391298379167484199205530593283423189719737616913350158825641702105815304812443916851761977726942148360255676924340591282485205965787266243546000498661153063694074157622633796366545777888935829379366431632359810341162642295126773488512871827556213989640136293401841606622461124593296883478926143178901794768800622088030919839457999933025395413980231019651184154881880339533519449330048949415345808856690369914680155570875205627389703450818606357367909435869866597375500755519184545762232626793272352897240798538739528616606089515237352491225654054546172089653874277752715732135043734614000937106373463543036654533753984756390892825983689255680334161854836040139475492236112977565042701170485145180937910080763857225534226727588932835657012060467100820084889621677716909798317211781051830307843548982384993180983979466251399641718848876316458485453311219974144494832096398007826268910429234323911187774823455190959342660089039122331522336620063387641080440259161181548491798592736194005358049180735098159839839274173819022822089777798159909324409052684716709074764384966583209488301793386635079218887217338299847781057833292191462544464445600710690151072502768848712956889379661519028524031190096940542610856772835608198764308585440964931495694412006853138342390191648073480328289551560629870597672479011881481767152499724519685915549621272171779404105809699696890361444049545619252517700273040793606088401250517316470434280485779466333620970523062700126597210141356673204394496469432744852636935817251359213329473590394863119324151730732671129972969852478501717531434026344879262846205644204500143937945784103650239382501021638393112017560231767327902460584998219563292651383842598913757287877296910217995840381888806782278180309143153367756875474127828416915316796739783009373533982281032682212348137663372005824803433371435228031062631958559441922198706023413841406814431891308116896265245125011842471412374329115666781492466130852371408397087147686950254236550117298449659605143934149209613798601762255553234887869750277572413225470834908482306200627571632349563995412519270793242446296104443184520250626447603241274367662616274291446995912701384628402116259096178852779378852115075926113640920223398774645617675170325341932045100912325201695009894419431678370548930391842380174184589427974736326562229001644840063607453201299106240282938705208241449853668448213103433237646380987773916573185675897392451995155758027964467811242208019453319190684189852041245274365111562178445183406049971574655147114451110079005744585297772317787032538214815448973992610380078279762357908526983620363070087607601628111796768268367289673315482010861474906936279633103836637272581353523585366182569493001397675068467690665598843609982404244752065649483990038444580788298734598957586182452094256218637527752905635285447880663642941419202090080398268858702998164344992341810569581002776168623152005983905064280531746455071663663637772712801577355648131170457976623977128476619020290505228281439736617003198043483097852359619709207053343777372627337694814981658128430464296447933029404148980483226728841669584041573459247352679451453474961189089281539841202306678251933818702679087720242901202077016877410806208558414401436267783515024550636076916652226010055715642424304990171367247367455312414930920886840026006513230283082406643433853421140141318249449032062441057425066510601943964052575158773515163159647479637867481823587937006252626830455119222521815610174622657413658110567876727106536537456883351842743114615845881555672614603493211132525028839073122578400624466246478906471008198890329077549156093846817548587361084371106323024244304136291983351677582748167842911970452856300583516404340941490999682981842200432200704133423719512596820713614238210712514742978287123391187297471677392797325287166629546577388397575350921188273299391676530346560160027180849193683988989750035236027751012509982932797617024496749176989835624132361369552545919013352871253743858910300287030682097326663225979663264154455037796958858866618296997984117325545781015477409768780286328512107069772002905078140005452456426945881296074565388641073933192485625940940614146521775502391556170495835960441495325810087795294667994410583001727617588422804203857899491714960427821006062039617702972611104479378178603556692851471270174596750213616134802661256729211584421767653169682965347208139528715844522488524920375637043626127870759196352316031773038047939132338836580791731675437318594564096644557663887233059092069853101059505568596649660974739560853695578464299117269431553827523235402478878101403367551763486828701361204673564374013904789041124280850796568858888896726914174509438157678608992313245021994964782836417234458234210529927308472412633216894913814297945801443088252852610765046751785469167058850077471396911488440156771639486465589353644624075347649315321939039723257898788285488213012592245110279890821400540354328589012545376689267899064059876180613104706366006180807811531653911703775555002904145115688303638200559770537236732648032766105876368506933916843224010853186024972779565457466017375148062684283190342471405717861542028082471476638261846002587516515728158196048978524385217884185756214112230898581239131328231533679144758474255034775396539340196755444762087543842752356612634553223024704603126344242482117648741974230535886788564840250672803311563370272205713044646813970678598456597922757749035648619146438626106540398457921191497575926497366505172938766228942976188517998457160864161045038580799902341571958631617255163101517260559933532080363028646064584633238361316365784060522027173174655869749448827478525928912517055958942026968399878507071455899946416586664935110399341498855315747592554364815635673372097304105187681436206718776282415027253865312483001839946270216063178833176130816640456397925780281719466988884493080840067043528907095098896467303176018512775317075550854041075601954144277749313901396873058820132751581265864414371877811598236974882874639081176594269583495979672034042168031896146199773225540973074375381448385699435817348628788809429630880910784831545312852071615875167015574771559898865377552594125281372922416604554316740299073136273580220045689356256504146141354854184026617393808102994706176819543513966258285300410303782318065705127125266903157087472537071702061913663490052976207558082815766978216642707137950597840416523591143841458314047092163426163292370991453300467722271628635568778085376419409060540515557174465860668042947187902007112666634029953754414782939043609321831739437575082429139498959791444484019213808499883937007511528455807322230197478964299171934706842511333880193346779286205560736653387092328872441119970036353430601295036823178242291338941009903701541943065897510255584379101750892947191185932175809590833760789683306431898277452349047129036351586701322551782423131891794684777968382763697447151987092153023163328315484957681538368428597152369821314988650426948526783050693288433215560391065725778114459281329558040139424813688118200080028878194664352965229770062320899683008032541139122383686408298123330050176748137621079830089828906335848194169073403304532967076104059882953371672529124561013437331033964435434684056231380054046324502594904996573894812804655361756248782041420687088750435384213354613016288487399723952574423764014007163133207675013620951852380961907541979660849339818454292820862053143124519422661331869809564925179041760042216372212348370011270502203506281612936819571235615353636017273510513219368297523429837998510877089261309317930192360114545825692234700332425314199785636190184828954351669277263712101625366693127926538399711648765808251861014059312833737962863773164282660550480904965399613278610531290939274511408278264987235168086193792256488585725723026799283152231214295880192421391822491489506977067315738328422552328674989661965229699741496733119741107544566016112880902579771756791402324995265440480130295268924195722052760278860124704391344494538223089456313946213790032616615162952892098065057849132936590074624817079446635127788370969315706271946796137060935308329661439070169513541210866351920163048715486168557530193286549324794629537559903233689636180511901696758048292815917160260896869040395432214918257904181784630073315527669953502000384514824796708226099122545637561201768395234556285832462010737703275158575648196050375353077113898171944330210504693326884917069966225210981883370032618327167793806400903929623377791058022555253357795797595343971989562119746246367859522340314632749330662471906065065047012270355317427593309932912416415570123705965611987378480617834725303923926892467181866300598269430727599086356123560458364558705552522490389134996599240765703504944579235000460441450542952103855195865154880441253634466746665050867216259683870311720588267779934612914118290907763052774160637937078768413201926506725618486629240992835970491898671734585471367428440454653464420370434564542961543891880441706375468892337720165305840272088307646536328317339734143473104520317215651417955654281648911250614040587789364654637246199765411941657087243000560273290084304136538772045835917337988177142293706100607688963135896372126027244009403596550810637521474437008923845717774973623228489948491721363100869234311116064248611596507409829889830055773871739996605356229274060613221590440823368696721699273437213471940252767054156990380402185481410907391744056838971534075928732609731656980645125654852711647210426549911231796187253382099693178578104665634430216144933173271938445881289770266296216300477228617054061882396842859989391398398497863473749963759406275121524364587383634838290211290415154934018067077374867357513001118138196071115549373236735336748549706159513299135740919058306110617351125262165543588298133388072250300787290760294798919956194776785995823017075994904207537530652642320974346245915452635519609547120620725154087666080617859059934201578663894176238924489196925637783621778160173162057275070307103082880831387866824827598011842500672742340393833674584541998158174759917693024026656578816384480636292956251829444246644822437139518908822297797376383838003551684808797805923827995876695139988189269421650891683694578126517358153686659252514238979767897639982649816096387362151507349893499474103618986076038909774168982195512897996044850469706803579211493550706146486985417315594252694899508653570090748815359964497759302291721211025784983470477485871589427104858488763081642083792888622556214739754479078368865032119471249530498796522300763751321264787226672651671328038215266932146541081308511004773146278648953938360210362004021269334868340618072754411010741463428693670757950386446432016038919330010041290367969298130562013015511197232674616527499973695901424614703700438864451288340350174354278474685519502651566259692235518891147215824968718633671166411256120911559928665996036169277867401825950054050439213028009041395942013085058364404903935492502690181109598471520980502300043335780040577090143651841192903779734386705937132186808670742769394647530064336237071063552222519694454865729475422595414718242812548132940547129024061965937700467394557160803201303962343341226517014998434369240815099663864270256943543858983445355996044071155890264959855716231887315296314226118808612827639824387531254457216067741544933868024915426050550219612108659273750725533606382888770598263181409162531492025668283174702025787640301395384739648996172885073999326362382013769181032195330080131414862586056074089398894048938159354201645426285921815590656530569122472285242704257424196515512797975026532630765561754080209388432831052422456426955576044615030025222500682223814346981482010025542384260381402751613142316477298009157873690490328744495053823069325613911055563901863128017199979554117555419302910904552156441751368688259714163799185048962128489025697149623461279676343533508325218265774482257849348088266571418427744654859699854348376440652374028907343388271806920049311612552574330358171836759863665962023935491836378324569384072428593326933104471326126116414975962283401883644407320001729169331160781951739592580547712684832175665030365549355947938067032531553621712527117178736510411342962072662861888861699694826059135687029116712618689485390312773148396108722824578402280228511079733148687835307543786933926372709747080713197449002990570225061985587997090653701704921023266326184733663762997316009178301314753738430769904177397926122238903355659081758663160701057763759210564165683513473652443506052205664953396788533500380866044546465339391427937099904268324216670714097089654834658376577122603781973281527320550431733621914757936602695440602014162576532498624748771783745073422902995546048743044984634810128026025214911667802318435462227994649509270712534854075679211589730435327750610038113963728367310428013607013793755340376811346328474851396443401382858974483371753796909270812982878222781254318303030611005931339669983437011278017576476401119084244940270197318748274338778489478966713813271839511379113389358823090677413891812291418043666852578349270359464069697910189926332813375285874909346020852111107513689402232720703951996260154121979880530436778129713616618038766222815322654082547675206129154206655191232000237876849157838985378377781171988117627183326966502478389209752258388684482282559252140777847635195176760127559372458608918976360780770592843675595027863595131652397709607351908769707940645747012725105078050692529523740112269222134725638984117001685177633280771868022149582058754021004677862358641721453612594290881180133497947213428734033236315613355309800861376944058103011089186831081259110455933514375700777928724153146332762624722978682701708519910954063868690942692926076350522147175309656242660388627520593554999607504213079892655720960907425958741840599659560853458724452041734424839375605109573284081216150446970982587063703432425434483889990687655065489842405495715373394266594971141868088821183894885530447307697888445872593985275743655739453424886696798698638984077454978598151287968034506193973163577397036645280309669721579691845821037677880989882624515769908638980358359065188782928900976256483737211032801066418906028411314858539630622640777183812316194245666871352575342160197380526451670776099305896805877789174914016069965871198028363343199823159310985007814053219339241398001065184139210448201048815371734709015020576600181391774829258225366493154216715120256166180526973333330539308061479036611977211357861086393466096512828262379842312747267468830892463625761899215654258006086794496034771489722581069873765451956314232753476582843983254534218666953212206670645052770316975995896089373668074168972214906772517498444362436671777736180509323057973978143833040148703917893611881431970358926661145865574551626934214775092504317196674046400127325301607671868144630322446058914781571763275172069662697179523697233189366648819069765433750125299740560987823368733747860197341921923582380720867333459304744342559621606200956495318774443774860201892517557709211281635921381364907492948421290463733145387139206170812343908341335477094217029811144195905157175087382240278159150987920762266140195758153663835635316088534305115524620703405790004736272042077424931146156577654587449276433100125400519951411475724092182957479948540176526721478795399744686669549314921665059002936036237947583903621908412844675118963641003858002017394069605605104845030617392988588886163155714854055088434479732350131309668303972997538489349971040382917303904197596289935673452272331298259624329306151603854008651926541563206120729778726750617609499818585800620282884504629786238330602374930328069037059133348391832255593437981565156205656227515483236664756372464148126299286571922001268827394040891054763251461664494470632899114938133236502971397310547705504145543489996948730314444339418682051274278232532905952433436438807914759004446929707026747387214804261065857457176067620330241956173048865321370595791503807253474932760869536650661976890796392523795921426382003762134060843518011245233827626208634745341752827020302580007540710136376814745986742069750651366282850570903719907797287734023167449799831087846505612845552686501704734092401953464775651403246807283176542552928674309933595236425830479076953510963748625352706060853505188187817243076890985505739534053833268333612509850952973720480756502102107442715228582009219848411425569277280915325973938482264844516416425771350620125929741288756087603120759589286035597592439103348951145016229545633717433022823618202277131401702071660696074735811889880155119950949870567468691695087326259224139931314476095470631676340906499855825158698718193762205536746408092510751035054159778732902960162596174383451145090907100288428857261479094242787689560470359003200045821817525571364265849894917155270670261611906350062648693843619846038006789962457332006835177279911348932045420245445739126452238018244884373092274418042409608259574580312541354247920736311855778664520353407970575747326891877607471177781586528854878105362187054075018651574431791636846049827967340696916271244998443021547638161714944108561449710298552133416415393129496455623008422270066164130069767064607144819312817564076950508077062076977521607453602768633066822961954672389505396843639353901754175342724516726611442056675643606918094972557518745364375280729117659265961937325253168271141696480617164552166553262205596480979436642100176403901878897567257346244117161303318814559970335514700907010203078543711223243602454111664168179747361373401513979044366696975954896225824924861062845822740517118468008671968919710909417549383611337860872409650712195693649761673449956850186409210774562171363441075522395265304432606300661613510841921156505317542426568022579161959855680054937613390500107453611205272979410982839722665447218658156284686765625892458614008344025339908158417151067981134555728567062176273404984803417014243230718263750780107925520634878421833700418382664361536902459672856093317513764030394874871473031932041372283789967808574534224065356103532556768750657934527556391498142758589950746496206684468372151901524303947436519063154833786486958297008177344108804504615491155133536867087824544283888501030967554217501750284645941019479132745998473722046776536921796444897712475385227097569425662143186997026709645200049066636967081829207978773128669786431605885456223618535045844014743453517441639840102971166159016299407940112046220621702420875985038372093325034562886993682962432688273826574897807768168624151169502716521440566069893601034400327528403808776269858378847996587864863862713809073041802474921156531152787218060035987376034509818712814884346797142186870048603863302976788605989335244195637749853680086968396877316370943371704946454275061454216555954720216428488381473496351068098850226383829477614274939677072020812033685078462201570224737982592145266063951727979388139607789713605568559721036781413747919001054804238166513278546703227359855707049605889700867045163578919520430827900155906974318494988651293879180981024735508103311671034315570180088224854267011549189059932565750578951337027859144358416643692951814141996513352103518408186280329564701968025610387890228947123664238837838717144777460738848916659399696062477286813420011155540864339385889090558889721784903773697064311915468425378347316715526809378479348659307201532928583912150317306059806500946946903984630910322217007584812696523469910135601710991159117862414973095917200988408507827483133204656034360273586729778463832630327710224518698492882043357480970366232431418677762617819898186588100652723285197356274940995561101213412902362517754956244747956001556994808765849561624423047038374816692800927988372529764131141302131478998877791262700166202996997154862052564355077448881426270811665665719696749306365482403957311568082086412821784707969341915251972468209493746377317966100816911361993133149952282861862745437808280623515684309189111181208039995475131207274912892343355438573103283117471783759922027823048624903527649693406098035800158298890951118963707010636252314769415727573268348659672965840719691678199522168697006022027884671324363906665664816888729537866260514850726713523804975524641851083451476211230785556570409963021864076181981255250980757309632249484998127253967832063064932287428197715385690408577918590981219717851694641438179260984355760782795942874789579659848131364810999787998459625597396900602226554835022071633511457393941593511122912732175869730552654152265752655138849599482291670291655534340333422742300518096675842151566880359005579586242480870893739356383968325979262123280934387831597824600445275018680703710025396610526096395192640268065293589566729620080533126238822276815428102610145474098436068685657677911367482562707280088958581996942132182220099332138757343144272216514052310827453649036197100862720762535015267589324249263047949256507422566909831361870223263922571132678385833540125417781017699359358428993357438090652013253297069469982898950138803558580438303425160574645347417139090340384000471203234240540315051928832676835716859656603143694219302461932324162935362198744603397223832427968184012567934915094225339674039299279935639752702901598929688247969548611350402101642518393640867546851917862169139848464178522443319482622733113792593576633131896294430167632981661592688461389983868987483187626667609066171407759468591872748242318819101902427581395038307062144127858232849488134587868621854106941512485832856571070629277129327961400457555670058183005983026684725006561766948326464247853452557083136460714905614606703542754738084430912348519380617257972838124145748445506518635543148236431558618454962826284532114068847807609473822295932272522008148226844718073679644195872551844630382988701815999031454407881152096968335751942425337163322405377825957727719059592088784449591321755319190457228835359432785683999161477704120458419452432482860738479254162516753334348842546030706014669666852695260770894860300403094873571662967658152213117122636631518592225711645668075477788152802014916048078621964406217389795840160942405830009746474957222158030595722565759297658487763171307120848821132283901797915912713436210561629898060087769925299564927225422615323246270657300506677875332007262758850979156061118235584572621601024346126671611577400007017153260000244614434052641860612465927299784653704262458453694512728490401416867825388432398352897879438722328172924405215354245997634451809181545675127214616661468392772007266753769106971422117121488967631204665976111164508715219343766861954631309944696106548557893790319612100481714920963449533539949444655529661908507464569824947642223789381324756728189429842115736762162651025208502555731706767571614691354211630562651205490163305707009460912818632020148654445140221590652410935802114508883193982949814140412611838054315977119365831796635033470241921919987274787666587953969069552336646177496200481066149657790968108286390188814860595852031252841754042127103585471539191110839728116892354488034247335522889856262020865189686981557654939479896180473247273763385943373572089221849796073560542375858702251632914046574396269829645382682640444589913231601776462758721127290891224001616048641771295279780472725349133317239820356236220736842474492478252102822079867936596379058865681469274678166983995698763455466865015213212892654912723236565668905414804217553116922425371895312945800330791791177723898735108790828462786594605013220835405884744223165090772297246375117360226698047593213687668112548814362104915055435948684742498344417068986642560451169669518356572337862717324627967301152607114726833067108392011614815467128409652485712719093702676060903014713603069959511295639043373668228693921086579728988489458067322667897709890759424440056159507159222156961298244198630683306334992750281198004585493114640140984230193746656320112443515395113062329943106612310853653827876620311800466343784768469967974368707666227004509434764082322555609493302640228939552878809399408619941242701156481545850198210972549870190380277602317716410797087409705636680110724241370961476731503856139850942085313710169240259126458297335370669890374210535387193229739402615910849278862198973349978722184101339749547019715271465583618148729090920001932590544389799600016057767653599498705855551724376481724557853922219157793115626531343918152055438095024793065115781512906437613324917587998751846491780583502537774358191893261940776333977110382041853096404928195382766810722985363670520170081283261171362209684664684403818503755708194638491817431694448097901758879518421227660570046611489761233070495494354592279769131899824119567672411053102360816711605065275119361019893269653191429338796421834431604068393022047087132221682712866788546305026765798848904834428511546001824440528347946735206084635807319379306580613599241701116164823632757575111463383286016491375891530077622397100359415883038752366657019549724441364820995633797254123705818942692145228206296987203994858648692823905346909611228105441442252223245225153881047633810045332679431063936260417169871657894797910215992723579057118884881622743993795973870314763526751924024655495249223576554223301275879463657877852844902947229043810108015987368143782762238632760594377407361910086384621496665497889559044118291184059839430628991918310237008550224889353351363777724158262193980195545344051674010235304583470936389601951985530773156792583200000857446126444053470220790396578167396445519182606771381795641289155224474464977788480222943252779046198595256425154045744202694766126796635772480474478150495299208215179075471633943409608646204041694967547447298298904498755834458405030574984401572520329469676710372103042922647796193956993995078834530883030540997881569499889216112678722880914110945391564771016061344035999003436787780838900627092979974586837026647663569517712804363995516304040199109876454515522077510784762624801703444343600250150679643957811936749295419452592104901953885378775781277574373090359629587880137266620854021370830899349374505604652170780649238990350191609609508287961807011685382811838135103646997272767680623855848864138656152832883111261799932506285014560142155522442277789991857878229806744348377694650486068700001219858544560605764329159202511843011316792971624317392025359658177484775364520925404451491164262532143608235808867722025475583538022080493931089404391930074611979476507145947668736511899073241696638477211924204945396771178628837302961309908579679814002276282192489772096975580442246450739950250612149293940906504216384822815534572221310316602991116247640714486490244250569827597127450320932825083581690953770363188870347517960118254159313567998335080422561865380196742777070465050290941220235505894786359248517108407500362157841386290104057065730406103577428245351964269052002174475328718718388481974885427947502447122262526307792848654290342723781625526446804143102511700172849841466337007244765179190193437608749503332230108040286432481745098658393039834903555928644346347208934862586458447055342302472744591714652767959914639430480036843818995445649828462216113732024150221159971351397211415497693323330977581900631740346632402520348350112911809883266834112433999016459590527505430734809515441901109524175778061052035575905940975152912107670187492205500223999113714038398416933779200726993817828156255226767074622276165857215738065466750929373068527712131042126061519525001893119981798752383572579313193994746035966384822888042234449525464415984370603922283182396367915154747176151882394611566792404792693560857534198124703678776708307777946117570614173449347464431977817874032660869929882293235845438223134469036283537897237588057566269757912798932912896232588569615436604828549881840485984034744849836539187831689188210737438151024042262293208322442280104385827693346563944133814626325472583317438559619832680657496347605088354986268776758931915429671609142812074164500691176983944515631099729305104169536698784155418071419145984596383333906924407194260911259230419369524535147423874466896671824974761992557402168839149161261124229909410096203738000621800201240416493128031271539815710354821780714613504686349514420951473739359420545304101562900044188980495259150153153492235850397976990825516293954513424019319245256805688394069869469648916846109421309692885121370023235937896643087558500361006949544241805831288283528956484666937885600946539996052945018800590238930656695714462253906346993431799729940404196592924934419876645904818570618168008220219053424928941543608415537656610556733077027418886825545352938594898070312172144557464145644521936290672034493879531273493141048420244487234078551062194305603623714713218540675594586457010376565179071207259483360082518489280115991654905820732648720044413316692527983239661314183451792149325419104821847460507007883491057048869331207362194135914974371801431461905339890228839472528564433022006038760003979782895465047707723619835087647712607309772238312987574350917192710249141661738466494685585177803623355281527897034610521512735137823952357577949677259732133958425298664199334784709679964539944841445253857760548834354112512109432321817770687254129938466227493961393541938585623339850136250528847208451359836935402103159826480811631495150099150869347386524417487818910039262885371459639754464180282544430497676871077764469855900999421987883262108387999103436384000649067779637164106899916762061125706223436719987395788802353055910388670138288043492899333281118708994146026807853478974324941104157495092568896878670797777791473271983157529415421128467615007087579053828703019713823270186102544553148349285879649665463395263927980502839468681854458776201008127528633093169023096259490859918979988178091334112059566695453309415119981705278497692252667373840295031038663622577543510987778851690811860323523057714928829836294290232058594021644671738441783124760105635634172102137652805192666571137459005373311831659496469403907193510994238675791248470840356316841639762689442351545843764671400259475984040608586864562764806837648894807106171325319897471074401174182955024590010693258607019906629818457010657799631525049638396017821384312361981550066844610047787573693200833362337880891847584450927902319466826242071746604000002701257135783015665259069807209661610098814066258226437412631036931443405058908868376372119102427906269249199526330850490786876133626149706919369308069738128217209914338770463781422205472398123137231052008256688495008743470233612914686916005828371333463297952878162156720306889895729511367335043770722875519985293898326078684397693240388429940805716463087109580223345074256913970555965136559858048116258294510417903350945936866108177299831871997451268864359904012857632688292192978549912914807227378171739352762090813068158733839653977635597934247398549369718723274951527969347484203050196044894400182046242524865023788919665673687874740615350966070367739118393133326101963509847462126762347954774107345693947254430366219969502418974389719257627806451444562372191891346137296861144120058950363289010509474652721014616090999128970549728813803577300685983944316911464967025854086844804975321049743869564563814574426961976229456259317180218005238820632920111152583400443267328886814729869771197290916471444838860265372661796288530239073387616593145159820919781176070351234121648001132566062788040078887557989019392725596334129483290218359462053286629134363282773956960004064556731809513588658566728445700319522338521140048454347087279921193752638454194491714654370966862996344365421464441876355967227578794055305598944250447642602505633388565962813489043311032225526044883810028141087465900707243217109901593164421240759173325903070065193958887210432254701070035353195886853856840688153141995902155051721710570613326392569364107889665558888776178092414421817054077272218560183812128790261750898808281400339694526032135019291483714543172496034370480492986961126193385126194167393794259041489603349392320792210006229601944216034810011628363093203239845176790666334410449034618632434863382138239163173289026118478274204108106566494993532906796102479539217910342071305819589281268089827761464848094274271870309817957400004415076885152291123856966857711827539214120267718256661788993248977487584223518438946939304338429774680618919935093045907682377856697579347514208561819786573055895455573504153692000006691613787455458203922956890281190891458420266677310944191646040609855708521775196029726483312456828333177051170736250312896255191285023022197170584797892074426458962982118250772476656707069034453870066989619428688593721069864920561664390085337920930861275913153400427522833920244172103763387505103984640721208331822462063226961239299710003281642184405471775659828699556565328005865041917314067082263420686053084002618671445169618497881457524901150245841006482643138632855929165336730028133899963526617565837242955127822825000746839395433827075414343795411581481412385033477077993245455187949295952514876295639457202543719401091512142212003496773476056695668474281541122586495807347670654452179085785098428374689811396959306557334892296652184074755447318911027935372134496336487465716216987834616647129677253994563472666900279967292135570605782768019900789713774076092058265142474256643202706294781739139114496977002125538674843087165336697462867890742466193395116438362333597776571999228413905368284887443003668225606289378055325366466869549030449397550073989042108480151233888778817951881990154621491840386562846885432522086297963100065941406473280887224680863017424040760372381226707854799953957960823026956742040213220871420050523160380626118021500328084880741827579490530619592989795224661332257912453448092164854777686579007998168534797682738605638756835881882103461226018607547572807763480510792281948475104617281431138893637702124675286998048043228267167106295297195399497927425497974439775801088302904075580846151041236437863953138116878181721098767468281526479778987049395910049427212748034443266409650867760720627190436183983975224177802840847501404907356830282179366037486361005242690936716192096241772356900584449570170935420174335643901036868715116706176066902812356331800096060212681415034004553631843912737626750143413635230752013927146608068665367084605600632004152240636220077328330942838262188377253560693611737234149673431931358665714380777436502724727341077994453472857868270570400090764689785015841235821865545944116333665022935500442164754742670177395200813856061411707016099447112018894910885625146445309105980715905527832921085187092888728697923274064314290360699545655786678017220630628261987172196523247952934065231562835531310408200832111511377196728834754731230262045521697791782599478060601807799464185550861527332423531558085564129416962723069726331957455626763433680428911718827607753872115819851657569953705385733039515366496284437099610494029508719164476215735774217677748688057370563024399195212836545839363298418971287918163083952053759035413287987084305157289283145947849923725814124977408002880396817508946179909536963226504978143172486906938512385294281735342703576639039650307128440143715051015209341431900532562894742154028451353779480950748160090730404832041754256626723737887127452269348127066730779266711080584560413585781615684179463477190083576602187685220018489077911194938725870000185753013012482850006789566119416705894845679928369706442558833345490550836868716468820957235225259113913942294570381085972484261356106917948654784113700355893163729596830894210458348685576962307335757163085450750353880401989343390173683696180634494853872373771798473740554574728524707484549154007076502245038799581505707768577882201362674234826163238223504463033975635284652069919432868129424875653865615044427306353796994604210797335746267649195840444119245884164420675770294040095888860090672709009717471128147029111715452072275167133848777608163881035731896711658648758110003765205693902487474511645730476773518142088176925875472722630268886238612340080647287677978449232654275131805236055451082695421534363521371861457469008454075592674081147960066512150098197866321797670524306359270844670791432051353400527446969528561119516088005203145381101896147219297067321720781136488056845391771048196318131380574856312044085447791118142062109662942971763192144652624019462218103025087499584423992134250270025239967499027153331814603673608528796730317266546301897967689448196068572247126730407249114834842111628227546594263883414142226441307217423276670627214725337214414645223586298887437113338031166711240140666233910753907230278503198216762127408886746316678084805811300953734668864533864273879912617804879564780083241887526712231369270738030848486888461062317512169447006229368431476333804355674452108398476645251091291914268097509038801797738706741007623809939856173399100595795297195528761841192134495474893293561091813764910496883852454525151749812014868792162824181756316374255857808008704834660959999513583616150935433800345951405670621416977281573082712636846301280554711636893756777220886370529085878336685640799057487234945475671746373569279025096100680417102491439171861036920187858523654091020001883630979580596173215088787754385680454259550315756722406990113417555018062435742995493439206079697220889746103797768550457404945941244002273211340267785862166601810993462832034944457543603244000581099858000571806130801677307162555349522340421147541283090982034738683859868032487810651192390158995025387094135009678911787789515996434421770543511244487260262783977834111107479105690616470636826975668778733133593072779195602249074339380720398618343419018062124669079878594561820248899219598682410200020478848374085198937321337992956046707134889927464006254342095281227174477901823241383431888611517432989439525806863467421881793586612624444854262881785725741678884016287645556530035576139948346600435156707252386170434935423464324520223452706703077983595726696404469137426519988778986148461510505189465404162851738339665164689757698718149682008602019566150840356607639230935194069990241089605740041609193826449874144100295951008748122737192560495563939094665333074272980052473551235294715264864028822754306045711836373153109542079081487967028631036907518917985326409612105103228460656569043151843244792281458597564967616907828460137787060964950886388502802182327099639618434532828233218887109492039459057688485950875278131346106182985185009959571584026748889131926185781079895270595575853452126971696856118536827662219296160256608879982953267196336078352262575281858872112417568744556610869502521634736028649700835703604391402505195412241543121004180947902246425858444677727836638795432100120325921059066631436564835142995972337314349759572604307949443760571261264770648650366187693106212287062696758437085528435273872975876204091574323303083059697866790187047736847803407383932804747317461996605845198823270399684027899515507122098555705976674900330598284153346534367087373310260556510185518052589583847801117611818692390909477453896910289795083253165240056775668686213135934933122884643485564180146279075970767418426996793571496502802334481442428805568888536644233012320479384387043859955865163988319309691418489267369209322307962317194163723126808823440735640184292820762622659226425336391282441093172971926241721357282747191815973371933003130488838953466055907812569688730652158815179701910347422523828473915337184400643686664882061483531886460768543667829723573046280880288276265635651336092114654338841251962644551050342239984081404127175263329738479466073154718863126048062849707296879533467035439841984893156788458800725359641019773092632573534766981163850071670690523048554669291596237002894527965811615999542086676464888290595292527104209119763515957966847499962983862146460550829301405788048833316023971797611101698875070992021679066739377369669569467465717252344486402591215694993618031892080150882895191173116392928895488931564463285660710604319068144681264454965349142962042917570742256807158254634103207136048729854549277592883527445222273444366760228374339799474149940283860516597349006073100117525395074307591212219494095566996008388823522205166448748533586086986453595304802650333901761275243399760804655501977655641845856473627748345595424318461752080918411750356742970429041891600709835177055990504201607705080957010468184754246477264916453165594718311537332119054781796960319869894147157305515488070073821334869597080645142414899248886677070093642264409653001758294715308907055899618327350117172818763310004142891814737439135171694626624749870140920216151717105338909586586436487217287535962866164399771207526911233316603606671544982102016525121195303312624880181646538283405101435680209113052215957193401605287452874172605964319763169587075453020561816091498936051460921095734513256036051238653739377210977712009943576630297158247493433613191482197232596157308025054499597100879846202729258589375620503105152218138998336540814731301825910373281346774188272948828040796085085492588078883806801555331219006512222567986324779593426033565055844882561651504827274201493520935150857558320529043593233004074829107087126310927929559477846453249569209906940911080410681843673119302063539491540227097799326021698227044288733225455252540131710067129976215891753060372117491073051104865253332659073898062924848808997878486109555478516923055021428059830289463730907740880728198672947530972633124069762883596753878690546672201867266998813144928974095684457949475983022020122053345737814296787592006890479816967896016584403266976673973653979108136608728799630751131104840040283915246142434067883943694782374275849355140141520107514215798673157072295261571520025888071051224879557717191570419096155656642303812136168295384039788569869634700777646940758663515693666367017102146456722481921876539801229311950407520665838563102880470954646739895433039628088921079193091386536789362587070268210343772777929369910522886413993121289803067028951331181648135951783076556606677889044677719949099711470284607438930770543370469247296947469131680782989504205918691683639523435882716747151569513059446369410205834147008049898849354386763725393237570122739891489777690305943001466027164012602589845802002478506477379330895055328867180862039850401234035191021955304969973036977396463172807528399730319260032095908753310783633422893792336608976506313945414054267025008398425513426438598654140638465553529005941244479506693882526570878557841751796808356171576974738399655164251062551782183276228571685524851179468996945887958600056088728551522186979859341490255558183458150713996361436788262479875224494061334312299990112564165786253614852534326555742238894647821402607308785243025441974699073488501591859664400794912419087480050618954809110472090412272179720377433831471823741144967533141090634475987151880542095935478670630257843927572546112612249732330226106385009085547655407390662682130216872075552046993193331940586068097943864680892585211639210989757647749945164904827178147869565474251976998046775315777999830690607761525599436222216913646082218840032603488580865792594075777099814963908321449524821412628494075240460144167094136304067283533661731646348981246796013399960710945461506869091057600362394820489743432620161639853148487928385012315519385042791845603920100035047450474890760819525197336999269081008263091541517858015469969235385465655098762551896922663528660711096338859078256528525106725278414642666481895961783164826925622962946175768478627711907121746857938698869704673191961853621933115075689396863100596453510372171922808535860358860136439644010405290722249961133849135884468094997010779994262368444376241631205353202385467612436908050368355649896898010644694002679406328131365394899047129704527618867524739047848642864172405222057666819189553151561998087509697517737570764606927281687751943934384887582448292090442967331259051293770724879135089943011113773775308315434837296779374648421681408958526922584196803261412341104358931836291096157733720217081031163803676125216990998842683902568903357039733165845013992746934568746124688873574122402170321614046063836554823173481661470237971834727121173157945170793458408593029438765012291577312584955481161304477958312611168421560162382855743072130790203969900089267255778728643765588511129615678406765687395198754162634146688330007317030515357995133551892194139635945516531646398173213273385421945532737244235213879212773617674907099116198039947893829663361691964006815411040440238977347884267969097998016203870310041318303886555877837886334166050694741261962588729384931115108253161353007395710300810622409521176439966467323505997297305820356554828938427400041973163079115843865918088813723795184673250224380461795865362836402065443681303204327504406522985112372298923377988859646193677810324721690039993460033136558908305727846405004305242858335935096922039955046427767657182415208805582157758772467427902036167495568643392004472951907738277295939845454733914795093247112419305689627349304463451716362288902969427797026796067224071057904666115638082324960766704431784603691999825753881017890532799194678156366007934817462537688961418220540892688390275726891738563233079129161107598484250380332546730368376300983361117889381352617234426772293941596489316970767099234264801883879699896679810919482027755899951670833626181130674872815685789336621381726448861367765750796381735654746336167283282298545668468992431298731646182769720255621219773932860824159610629596758186363192565385768795825659638849670880629947230086197833315236952922731470028353934844665601939789780368510618316261532070476906074072832673675629635790947297405502072156639981434026730325009434245696239101481109096867428145547058407431787989793920055904876097422945898322203462426425370893291158127682645228146561712583305018752845849975080880943279834468061714508270742937207757826871329664378787077187676865854204058659090535931620940168970225789041773351939887517044254386085732052312003691457018798262411444840968073953064312435100772383701949429459452958984083917466416112968990197571797480745052126940659444059894946376816059668189264476836504586531191801845433743624911177270227183971805139955574164131696234587680436099694711420439601490263026868021101368302606635680819618095528605769609657653326302127397438979362681190760490558218621087958296494848603786726277592127712658620912152253179830830568755119867247428884979606142644970746909901223778695965470815746675607776867355506662673270840989526431037310122119760106846205284281643461510776776118082956633516532743032350964915256440863661832393837773226063652235724572752136325174868375730110993802395526631673768962274275185384832681220339412162428751639432161071253912229440001086150770083563192815652334805290732354896685236938390376857635823973749457729117684925348636095506870822450163002437002655843947508511548874916760724562012263536171084002647277032303373177983591308854825717947141257776973477805659266975541947763266448292273984353762444998732768621551888783838143422581303247693462958978639264217920475289711557302838434777169535675032472584772627701742672786277352086024397206147413829031770442551919205237176066087609110579890589770623959055528984821368895001814429458135204411991778314598213834544754309418872200621891436951371245210405611381889567096127668438017567558699657657411171607554120377346233302943975141622773584950105581025881228101931704830661569154851501054660053150127542222740678292187276681216917735047838211300516186977544467502132681579009985887243162873218194609853918435504670356631165556337482837410380918135694976622250064010625317187059560352993535523722690039134933167631175565487906872534021695214598905008661317339741823880556805080153877454564251506003414082908066118585636946909361538410791454687354628554058477701818691460460665037411454279490698242762103704811560794477043016300058683519208155001572725942544018823971390989531306379601047121819537230243706511632464836233868617728403611365109394957057293354767627040802683061741876275073401886999677436606092435379658115640373432687442543315897261490508696728003552144442775113187720430563181512182995656605279308094610325543816525673671707075769836314584632130383861154405927741972599297889590794326944318858746240857800202803217957619064048168915932554838881816616743575631537033163993670151092549335660972788832827179811110753501502728546294692427756509614824340817383193721870776142941503724740272649468669785549889739933678166763300209838672781460694014466965224511895870355493505485512599910535295991803976384283496978100709821476274284742889555993101443800993790781369716355676617306492124857442823802208059483359608263008101632183587772932846224844948166858243874735674760168095589516784627357004758600287719884763069947966353162847718657137200981135457351075421275723053096221816795492368329155936279300909275486960996452548545887957427009599295122925893979200060030576465270028720852229279808242215475744142888030607782349555960209327781031440962205087852686964752581320124371051030838119873233156184042043906285339291405601023417593803276592566406269285179468343683856136916890826116833886771219610079292499792168882205319998163336656040878200510280963595854234652812238505357559040497044944572670152445803699302198177778487252069908935299338238838780960620234683538595435622545281665861531576289970403995236779070865278331626851478162474059417837146851532905638279628668663848162001771335363558185431074135964460067284781143613756910842499255938358793304364292059697052605874354136867488170193577571263327913387527037226178976507287591211140390490153885441775843919556813185615564664612247851497977260113534776115922699343164183826637062785166327165210164793942518941806348652404302009001524843749266031162603855598180329242315523788501528480135832658087734065658460210639833890669245746552042012660530604862230576138027676951698900403391146385650206699643180858136266775517025215978527024487324944134981034614750400272877970048367052295259357557491226186697226873262143353391427856468330392831947885734341119123351598114210139343663617527635993301952656130719588447530705826668373957403810108250107408626034954389416037472830227058142999538545074434068947515942439870102889567287038737126285481697389097803077994265538604605672340913724970383767917842255044069671602433658530332930718665329745863836549665306761140783667028342922647203975475205699383286127164062554639685330478100047139702504628649377434486568304734737278466629725522637488631200822385359679773829757320855534082692843257243692038293246663548174316658759154902390403889759666766358615595591094150359028475495998038465407031323603498576384846163944940582586198178659798847431293613110049918914447624344512868989672562885419229027177547977988913063552457964781581553817497378714612288423479209390150876483242387424273029007515239796481132367724373212732347307143726851049752990346330168954361283693821459484520529486377629814100078515620778329566278210647803977782995270038468807591979774838614155720896132359687461828190264113459909602081219250885911648281541062299141532254487080338506948568542353347749197612360572422660986613036503943367467711689138702335767600694758462021565073647793416604314080769513992877805599432536258016644612087375509033543470949913440119332134238964380675798903809949991268024531767101125625010221307095398310055910024850625820529767470921475133626851870046115008174087256746107483218057882640287078529798537573719464226789311791516142541981067926240838778022245416528307959428988483825530882123189915027766170285733991158686810326080425842524296050626714242732883284295342022052426940124171307640776871812412776280466800452411790490370462441749536092365090020925416938527849038589663913486310213357647157076665321971326533161439567147716985950417926723414806430808757620178014419501168435710371037203626358502314297442219626973225911632420555276122600766740608150283769363781022418686847668156229549689484604372004348637227170798280845052200993173957434937360659828532217429554651054499908708134767005471310486345971431486265409880010473484147217357598466678064747095191053053761670039645780985853688417025032020722173388881530295552634462187960611397689356280168375688767243129218541336041116205035110334446780981008011015656772604318423160730447256415801088109720578163485418943100330754323641503917192887257131009009068718322218241417725213640881837566678596977510452092341929440216234358640802505983159312696294753540809809151972273687845366413108601911660260203632309830820808726307062683842082813167738779821859407260485906408852942841610678134754697598178886461365449519241758246816808421275872659364861683674923484843093049816810198483299297056076655008942901429593709064554856655999173836085624821758858697492461074420186189422069968167257965137269508000994827547152069468134719501151535373712925460553167323981560532852323070661778696906800361304748618261734848088664703902230299578054824540741990467350415422416128063179189161169185603871742422226596768664316104968904802402665015550559942772372466740631257714125383899825474731772629643078777041660375539614199827808899020858595658352840849655681136179917339696793548420141123559564017112846616992006757690988086991409629078147271282204117832970826014720586363776634500959164568114581316482107084788368363176715423881664165326328698760353751694591853394931261947884344071999466739709869309428251863009829725211309192379129772942191258383308256440741016230470153663886898349465451379202080351536984704698192551826207258365969100835040293547671921965663568288094882621162991673887344532768808296201316184512736500116033644284622024653594743159693249849073698807223548723114559467372852922489845635203329979946408871878526236040971025798733525205689723992315111455738774473498668901122369659132516952962215578463694265681984440885822776395746922152545789787733092012856954358837337520089920411639148806314091020410661345809354584612557113896764333914323438097948692002374134574133646577301167221956641389989071899557596509957328638179051186392441662326398252771500396078302391555844927378103880508348380234901527349014000951361951475150540297098421650112060262070618676492006903704316880124678027496834075889259129706519093564867577092141889487148832652204695890850550615059921231220377620298538812034996854605022646087373967916856284438727871568270055769766330685706350825912992080221886083012308103292574971596238289002419955843120997253540256122624648850156942226646113185006511183211258219467375303520155173254866241283154948396932582720159315694842821959590808839399860270985396017423829274971531751158751096695532642219573051074493385400475704435812582527883251092990810281080679849235702698107937573697507881107997327306813089800741103885043736407347401014976902829418901244999027101070068627999797786923984411033143637262083025447721574021343121517719456745610771202486076353084822741544059675511337348317188137856020016153335662690231444732121211704601608863190786709258322203761027306330379955693993368080787732443638539308290234047627992904219592872080767994112716170562489299340145114862699945598049988120627617662615545659863244476494520809578006642221958083270862642717971439966350170214652373746641431603677563392385878687569473510731191085170576031962423161043715545930213220458445333265399694392512440323337009467031895757201170923358480263319244371532151378390164986238105388872222602725968899132316725433153815386290203267617112542818654781019652420766344076755034479157380386358134564017092740679382808400018389008271007159184513905486100432402172904289947177736604238100500070006805692593003606509568022250258253469682486819445765689119482059436372652183933024516093713395354464665362263352605151167907128044270550944184735106699430828950322129951106595196854046985162242503993047774857295045732010494465488636469252905655372396982935197498517330017105306852457783038159950356811424301946161042981862586307878826954283051423344111304883962884792167201738957667275848899895239210804320314151745184530162014919139211333060133448483778337438963575407165274275532104831663585544354628998176893761771288009641732839637964811276253666731159895222916794906531457902516161304848355993486365278878304813535944971545507233177804639573468484467997684371690040532465539806728785940455872423629304541661236301890155384626489941285020259114459269666852277795765834951282193318399788496529282128249050786612019213759295666522078335436155029875940726000107184043769115963275169718969993778944686873702876891714625022378069357902355443963237267256365859188144689064670358114790731061842238538582015493470137059142148962398877230717467251203888583399702870605676141674976592746040451429272390957615980485208432504049757906205108224447192097756443497715032011162593706248360040940578917920060165219161655795967363768519005232962696863067350795578733811607737579260859082972783366054197959644406668716391536287868002139285549455327065170614933077937206806470997660244502622925887981292892380693733391232997332351483755111885711919052437639425651218007429228192619812176314093441781007857937517200954219510659897871119469972181189065893076423195718393009041765791231286232907466801831899073605794669451129456706968694490418841119708532308849029222463855926528209962542883115614933221119874577665975011922619977005638918053023299426484216776366729974851024516711756827686714446656012790258583667725330063166067602990331028732140969678711666943619149433945848422316221357902789206639944760260477422367071025128695475045612217678341552721687561485278653888169782414798789790327976350705480115463259463469024484448818853221261640370685229811229634699503104683757332243612923723768686376828566506359542007174614511703701701422217119224548459883721844387609071276443979144236785750443484534156206331004019777652008927802925853060231257402069147254645412693343167988577540787068447195897958692402841576363504788926226746671316587335957554494635591689773514865058007806258866548747804610175036250913487226705454844086194284391376461988321515869681285465352931669292433700638215355510198510877250865055881793193226701604241719807145152081970651644884005151585905323271413185214897936353560209831110483693184357112897966989539761003690617259290691593622799294479424355682994976247825441377040925284803004893750146997507536510255765789540811614325269145140758464129478739971467166350085998662079042746967884720056629946272655929839619098473322452509994943716749523451744449453909185328973396732025368830534352113372118104370186440671855613888660790297160012823609077317788785710552509563687103221978287998911072127073592792891292508140362398247550032958678946369548773987620571284730309775527913850984311977201113114521832553611773262503312211274226825019002909698763449133446104991694678470004849718140681171590703683661672274925560915208442452039851766808881359219951640516236768821296442392903218402882982459359096890561297049578854840840627307776047834585037741943558206741612242928674185483399543214890518090486191273237350247274193857143605206576557169929627951204901248289161019752950581053063603656167821730125238348971442279025981464001086120899764956069955219158578242964729461981080656796764166175278441239186037354183907093386227311850568516383875731674403667865153191160811107793805795063924319576410510743025715410235642833149861756749997812593909756546936270182342488968642334608153402142508725296026904470160048366698804761757783776553790306752038132895432980413177850720423378151148689449469311104438714618196217566456904224526384641646945222683540522001544130148600602634579256153834468647307016577363842695265718429527948477621344422597134126179043404567686643247217432256678509711859237782486813497732069219413941478440578894556757728370477523062444517464619345346889294710381137189658332463861558069458348906979172364548673192966588649127015194302882934622728207677726322960749755757568497197477658325939161264035463640066926715439954691553567717960100634215249557842884298030932758745858387015256295364546787317636911470517313153996962215700347971081084042280546960069712920759883942293230744736499442100622434873178260716828225062890805213308842580003886793753529644601283720593744608164132724056151332582181185566878843623267700852365993191079132383390899095045254430524116106200070112998689541367817825922995736752701336637543055361947251816413458375743421594116566395941314219442126840282249823161094500711118057591128124422577047309225996113197305089378562866743736873329696303511085881916857737946554462849306093724359461294949647819908179346508959806544377843029091926444024905815840679731025811892629587193305476472130146015298104950725140711507403408985180853929429069961209261385103236844105350655585519681342743064098422835521242298580467611009304040961533538456122535842573246029013481619003949739820268712578476022611155833588022458857329593106044612465289521821792866721515059719864738699871513746831207900279774714361116431675159531769677792429168354301650253604546501393718967499263852270555319146603829933874260212916736927739205462383980394034875751924363263606341213863712367981589954059598820004524035400936065179101319261897196276365840132899864489751244674449890502118422661855439636789928808844778499384376197960844771630724927870537102613136467406288749754295895479567465005471599031756480577573812940355608953652876505500713963501876020162576508749679740339026816462736305628084397711829284601251459212284633625265823920207855170063165528753004330136657456095820217624486446107291067923839137319948845659545541532244119109354871408294428171781753329449682791035029241804078157526329164523730886812577683906698030405453225824915702589392960914287974183646141474207261824231847089425290768565766721571346426544570308216967107634837225495276246661248290542655534900822732199635204365340346528030009965198046843128794356954361051001547850191083617316387879579222000167422478342610520226855805186503257299210030926467720525432459984440888788310860505813645396638295836817759819577388795521362094623858301116023186151705279138509130883465946022857884006111065576438282304540816312606353289058821322139898997317754990232260217732819413951556053319761732872061873867565961279265035813117136744366439837984861523646010069355784258121839631047237467933927308582995227284740266884018774280375570469376445007363842767021256651272023152138039102446511610391404777162069194956775933056351583773624574996303282458611794345659296654722581736702918214878483969856999305745132239033576169916524321620921350339417830473863134790016889815261658963098803550633397052627298258727708078122215176962532383912478332086036470920452004110619007659958270872969037349336469744625217523655164190754400323498855626125646320835107477863538852075011533622491911050194472234257673643810654231015321105380893472157049785196050572420776128380870551036145774427508463536198622744342399908464099542750819282480667642899539493568518735321238157027416340702558731416560499650808055054432232284079414274534893451423856711973648397785370690026036268232035244157756100189648842375080321327060555675625139082683515716458024939533039538331933515701204032264745023508176765514845826883646562423617329009595330059810288577036484018719110179635327908611366016473750284032857981600638237370925189838377753152986742064532129940378922030643481908776501125592232058836435803670870739247276232688684845191760569728304288212575417199785508457962017355909572543749283818186613229937439371790002021929525706829146676262038588135713525145411479333390565909587491715221722958111834433633482660596512476692121675441204377780856973720071299873199507904651260972293378343967041093366973469745897591048927576960586246315679026698772447765923428925054359829228077613627512016942127899515073203151627838278114351324966263643245402736945112690917106006253067524982809992750122102735093527682767540008209331244960230517255272225578843657853064443919214076771168688523728703291062330826172472846995983973562013392118400841660557258132420092926588598413408854965741347090621146938455374317885599044454555095706617661797800786685591769385379742910183757741982808698505709961904203519977636168704519846279380928069597280246718791265849800874898272701961657076998946649323256327676526492800968882357259450437478625739764201219100580026729013844933049556411525647631785162164657718866181454481772657140261749678886096073034115690545426660075469672423627989403562697365480338705721617727843882394151770067817281148442967286970683705659568578091310264190439626097877276733705146463709898375126107397270169197895298903671785658812726438930719391258530368110155607929015690809805965435297638181526185068437802806154823594552483206669083063580445391390321477605862266803195534744239369319215241589764041326433528972666173247319892562014577208669165304179402967106546198249371219644951128876066003664624506231929623563402555132928652930514510611225866842598052191885300763156909820474019786229051928536167672930280532353007733606114787425675596344366988930939927213562229984812188022313320950443064339134452464199774373676224813433012969006659345496340770226722412271653829509877968312975191628406135538069777074520681390226790753577804534684382798183837550692280105716238203690900666611190235874583341874353498517511321140002590702695633618434615005345414830115079035143500743051767589684911939896710668214481719558877856436625940323936361969803367448432863536519757122076175786704061969399753534335802230232918519362104599526160368747757804050695793102153227577881320625251695328170197357384207371013906920329927992235129157312346856085450683869445421045049338378590004023269152868874511562487800955933801021156523892124605667894483735926614128877150121296036637723540661458828887577030616708671220688332951501061412689192450522771038063050065263751226422191024413006948305404939087504051291094935795668409191839570100138536726104465637478524241099525442549591890799961889620637958828157214862804555674460912131614699624103363167686417929546030307561019555249757833491326851461216533815187215124564082090638029136548083122745806769020899282419165492562056587379194828080514437715736972516961159366556136108477150108462141547332530648814192363107692446765417227873360975243557333210964641802988019560083501185322905248776220112296513377264814059690513517684319602317595903145601859600420600041819240425547260936022430516767408415903109699063241156255325942708702812540871645143669270606641743986542534377756613024632696811502244243774974016022004604548639785069211786769862544285689907898072251571907732729297317829604179008821843686192955307832775053854168515518113910686006577514317577738802542645211667483175093325699849742702744306821449476570462764014956018071245634559263237044965084509265333490981179364032448283802197102632491384113478526935779397884966405887249816596747858999957952755683989944064904650928148732439956269876077738280571620810186225263202823959595464888664245774525178731353535868718400602583021486064183410329028119509211001111924222987266171910634843224552065168029208214238190971429576277166214122000725007370750848298850440185435011406534646404943375151319794264451314107939947684690486142084955639196811098066362050142447486215711468569359558259825044275133646502156453514132193684020244870839272512464688409727271155458154775683425127931022358854760538897338977978306216228150786068726581872812756947386661028743229260293328022355567557001100961366677623869831040723397530459032388063282925264505494552986402614146357365506679315338388161625651412409625593881949021799335653927778272693492029767333424935983627502312805797810462906000347191052031198028320564815997035209733417010351210578042764636511836473308481581429305632521688066190872108221125558259269245875642228666259567936776725022821411233988712720590494953353371704734067009431798695476860926873173578219555936717495367422580763029422484435588019566586375991054256812934770589698642985471230171680459526564047648864436417812737431164192891491250410960930180058436464658687681046520976578642896557183739561948618853435118577363686335902839112867617381455883003556724437750267206201062246091146494564944639662007587105420690124668278481126392180976560437051049525888660406870207957321129563818620466224679204460117983815783941563276192084615534983482604231258333490552832798232048076301114485822361194557062815831086852790988564967997472400289077190639837249447711777491662497182836806203061072844119222298758981530444812702280534210100043610051715481405577525837987579057033093596665004955002247754334825451687706701023717663631780857533494194513545603466839475114179574932621430029988549355336844247418832023168571765679781267273685501069943876909608603792343303287800297125046908170200026301524465912070464623065734241436887726349134611700694109748575178441913309481705182748285133384636486551702222928790377948859797713403652782438611361457371638378610523675752263144110840867072012883127771604735901161853344751423302350392626858296298786268921780511920735433263048618022057366760226998436190527234149267651528196749430495070820448776169917135055519705697306798684106813868317118500489183348021927614566160703898225969021589551957208801093741512180611636885170270291240546755292008372383265787977554223965649178520187584213809790074018716839734870940944455068709161277194070149011945546292884522013130731007642287293467005699812343818278358829288670300508709169903042507101738120462938615942854355503395051170899833645620673776986686086846353052659618851916198225501724828009214477055107842052514517895728423483659547563492615261614003832747243683234300108826478462687361182432834602612239217343944081715442708306089876814747209191722229788495392113569396660920052771067549269403747891667879464850104594680155389019320193798106483479216688285171199979937164437146217999849075960888679781060964920808085081138008698980413878054760351327247806335926893644619656930057087147008409181207470208785980402692514461636017015389262584754893449798843143594871720467786048586128950427730584197180159541307982518161798427085981734090959189436042879978728842827128098400507754591037829882338575441690937326556143330317145903582275413488709932734290754252107271640865209122731202625850916142241204167972643279489108558890936509839559360428484617203910277725680892829315775126657315911323206955637575312795867238465190211769348264325532292511600721895501655917259777247514431610810348665638586782535258997540859681072615827941112063165154384497321401598233976668041369372974905388902504120478659063750549204389430461890136075581189437984098523010795197341657001601814127591421123597889744676847001045190318312448973688338770923590782075736719563029353236548944956152025235672367640613138276817864589025753789081567756410407673998071163103922989488081674607148419610270940678336740184287721926417448082958078263495171525968567640681559259698539063838873091529090399698621661374113375610458779401994933088808592056067981247529557035296696762198823255402964968447682638694093165370142492458918977521184656645009996283359818462519442737528360799463229492178242669415914182205483352631787680991784614562834667933920721193718021687130629766760879999882609562543530713011304539406008241843262990987786124033747645310236937264693186084503282211242868089194556140902966301734631234947157389534201301229142691349215959035629503473761840581539028582328720767129623298055749795282842725689048754446596396419251426201401238741374682744429231743172588702479701347586223918928203899629790113782666139754024763708809877689361926273560760732141374305435460948905714111291116167184814510668995233517056042170244255237978468972435454455845217281618557879261993839337088938883553072765377850072919071716704406609909345497131004016861235687673281298319723189018278563011202520810925448144458597431592722040641816505510706631120700122889833002489164633901861440446509961538779845705396073442819496278279630125701926805998934247952708224384026487758061642848816423278418839833580603956757182635695433294429445238373771859724768734489215563356988813663825543695366671451058735507530562432283586114452961220895840426720470822937996319251184668468883168097385324702964225526452572382998945046360607453364308721454668330186068690988372403642012442481337673146797809948149825909729134899492278298574368045023457513370982367462955628268705709613642770594613160768574696412218084456975100462850534831563441045213230183358024301137894930945983964773159804243352258908757412383234106553110869193903350309129390087692042442294841257983468035201090901164039041800552483851684922132885830133605916818176935797398714501420490091328902184459684820465550966687115301644740038045246976396172834028330507068289835293131968308123165535824752639321850308355886661854509153213221168965265880443143402705579345639259297182600676470310000952023215719517264898561484215412179870288574784899650874700527405307217756882707790548298738437005814213205708959248315211790121610750606234027102068999489237877932390994779427342096326958670247728916639842904478543999406667139176095962702487297396061863723089117651787097490272096527404676403190620327574021458756987525705854144068502764090414289052368279060524279720474631269219004822331538313107740467860094084713235111449752967663028261677459389106214397943161229443020032070987834558024731104585946567536948211875519336679887010975567736450142925519000843188851853791221276059804846647360731645755969640170045760865361133869583658717699924394406552961449107535920329416032686215085357307002826651634360717688982817346603666238080626777624335198604195725547845217304514720904516465683826834002087480722595206133496290368475563304465490008563300294847769542673946587787849099025832567023054422540995124692123372697331693016398163455963277853176427236218261731018202656231648980022336861810909610415095225435377650070340659262653092839201268706172923552152923867724324213360749607308507629596923565123303601053108920441779833179989188415723915373379270985221821112127601141826015818934164097252126108648328611032374652909140142606094374344441625904597308837368268655106728228051293734992557559390384825875127396356269629986775437499430158630786375962790773601129336122159637456859853981692613791110230675610885336816035427753272737975814402342741269959266586666987532747435828928297750939096281446908078336213028388230762951370635919985348933036713962576322776078113533393246234741369589619186674771112690340871560722592104984495058140896090266259211822058347328342173523382861434350688190354597433514710380123450051005791196540779547401087061118693939639826382977929376522605896997550942781981178722858951017464649359974604240282974269722358023996101464597312000948526124298663782612332418250448803235858706812881601753778822555797689140407017111117527002449685657818998176148246248009745356061443132504218765406255820620647547262683875309889732245806809067535471243779885230066920663722796216100273695079946226304010225848013942382120667605199646115445067146030572145421122345953713191036186383285644871538876074231211999212293350322402464750574857627773551359101831586210517845792678710954010073711080788177132204394138315899037032627818648162598333044727360773157148134337341303248294990418902674743169777621395643653720281131165563604164803482655481234907601419602092811694445585743287838534011549889466783449568504626416319907106028619092365257660903078452972007706201921137153939898896684838776978875499353844198190825914672095436522883612326479227988251447538606520378388820548702167636721030289809306416385254658619047976320632782396876676303881830890157275170774816499630600886800133057491884448888093242974347018108281697685048576679164097169350830453590021221414521503634418726239392627296070848106649057951730294767924808927641951087836540694025704962646746495188795083658090136871437803059794060210671878104221987526610924670910135412278830426160489442330791865856007032198171113547619620919026792296434351986374914128074672287771168247573762015641540427788856331488544279658596696855097942997953459645892045379908213423688902977070423217987108797150648017637135211946750488315208626590474826688214199105636375204953281008204667319361452708055242379998556277392119496903325849777373214916074263841492869600189278824176755164541274095226263751936959884556944056939897341908429850807544621588066663904186956249962349927192054969152630408207655409944032263157971973411436598706800632956032539580905022120995421900025961149066886854601507108965213723154079833846452884584110729728747403961316960169839342011449810919136308012804261121894933776274797054107662141898592714130483199316526019039252013572429846328031461947698674524482988973013329407064162811541044438211912296901383777727629137935113134406632971925110425137770271617616321393450411025566151632263045562636448761543817297761357336157923945861374857463617614506128092191683427738539240095654240883072373999004313565383341739331197439424943101988268700373808413478437532257921851118587765451020053829415561857524109332643990962962772947520032625011931236474230502580321928423972488167511812493262180648616020600542120823414514334450624804216959410599805044145584911989819535892192033058268769262519212729817214115930763986569157955701378895541735179473945663414129490569484591556879096287814718379398127025903112598434331548880967355944550390712642019814812633430911379546218150701637687086088492780714155496337718824274067380814118696278346103583893528096136931826228470948595672179587569615166718912261116626603177556900853508031789012900154784293157338254263043825100440945349248920881882269644467118486064739696740954829657939439983948967403089683813668939289717518801445624062924986024854091955565008507928639767532096250636849406163760672675436147450965691043654367149275990999848569553241261383897321478736583938556976375125080029579787809773834649195549639929857639512711641266032375961678254438807049078624860221829095593081519046795286672702652963252672140355714639838728528982742069421375856570112241645715232352645115139139588429801767298905996425149368408223022072480811744259335928367898209113579102996433132887694712914409694517192167397012463480753486479783459660704570247992325973292997541602536050456303372740618548102944348842057843434492763937075859831773333031687673017575296863402692985291331996450417886016872629757176095198049255388413190231425018051054050454068788961040300178811545201525897312882811371822506174708770727774752803734019403136332161003697350961606108483142328943321070426187940803780955838211877983052459476965729233259894350711375199004002971258127021170758742027369736964300214145716265653776932789445250979193971728413596495758277159517853628698309208145166050708217128880016528793170456447936417658714339722560400825386389200431265090315322853218244474305077765247448951765615137287064145070991720604907043347537590500251257801873118222863323604062917363268648136433988291538804505040447005325173609268283141065125861678641984084946948888177834882159068746572257155297905465441276612259516468781050868235241952806223517669572495380982544794975419911557318898963580579018456822125019532808263722033424550823384308360739634620061763559036727598049990565727207899463217161606250051911491889374994038409355061434573026980915482881270747361569320407688913511790273578470985525872131127433827729509053862125625130579174582152200631085074900625476107770823220501183279955928622270176604350960483180075147878497846077761808762023140930082542698144811383376304284725251196117097256614222371321422035667719529865741236928625555878879181496045302695482117000033389391808372376330858287669521039707755000976352889463012570423824762049853499936725659683879481674043471168823629697212726791745020123274039376450182222158036064847815232675286505749194398471907058320170414564645006743321598630662986399736698916837427513431534388392648548739600394462574232637325414500285047868989864456827038144734962789633065656903644388030649181285560390247976952966090898420630087002395263586904465478471325481313912306239503633103922091659882978053865711125176292750893397132854918667445277604451603215162534053955446479484541381100937906759192022496563295089931372930292922120571901365192107379769285065883908604455505306359552992922678003503195385656463292776356813126325139729219039581479102067387896090971871621897523055706931534583967301725014160697799644153534304868143708180909531413963468205075245492669607050854571414460338625890489608751803567701491759155944062820417638252092827883847234921348625172977823286655612261583972758993161920254683344176246400853305339363605115397742625260203700674494661921019706482510882462675000250953190509591977106784581541847151887258797044769813099370777927897270294576244780269417224279116606074160205311168554131946935029061501379154182740487643785170514278739592453467143872187274915977909792154286849814571466049151165209593560389334302871860893742694832905889975724521924012712396546178147019428543777073538266467498207500007876584722934022409118002313619390982417827551427421458418004821305544536401244673406922117269267406723586902487113223575614711517351042304241370473034630919564257512524370011656667637504552084699697267222831842589952873527373834904565664281099007552743160148762395920042465010955094141406866101013914074323675912088555874054201644155083592607307572370207496294352596103747089702385310245739944802379751776281520502469119594132354032144550328913909985804732087222308194357634839079484095807374113638790266235350821299482227375651324529219545395506800677345579416897161559756753054261518665744173038848462244829273143941523453689659887520113990644915778133743156868131628929723394133663714045988829900364402885704937196909122842573714018741264653721738931985164468972010176565491536521407326649847315009393451204239110843266162579064385178557917243010273605293767893348804045229609203619266407539863677798107120189262045169352150769940966497637189601611457269496703219527515375106341190039798672899623608744041796511443766206205103561592369358189630358377559562510348890446161926520591100090391448382557239326394537224355888260979818981196866637111639539236993137189357020874593475465539414363794322562243676858985966238427287327978985068827805504901025638568932888569974839987354947952464404945694429853090143009316309593432630361729583834618175492973074777394860696693582634374712060463579055477800674190699145938985509656057264528977465399639723288881937101898589285563598667198402787825996000543689033714209706820305240854020858082871787981164538285079784614123560463316265258819613761107123993243741898006632765025840542110797341171424623478056173640129652872678171362516625082265112343247282030283947481446736873332591937455025465401651490518809630524722049110214925330376940282771608994123989886941529756185561999133746495481915774756482462255587226134992358398438263668185754657965397114232756758814173350244569409451297546482703962838477016790506114432516287812246468448009534060280702881457238294347934853644865552013579690517757249102757018287845661572368019980317262106333688667819942829905875445389450461518638535999419047142467934723818898990170626051442524210217309054322254473448289507941229973292879567274862647959374069017462764900765355052232217833417979067929720690533277421154774181220719663112622125163084743413750046053912537481500215081965912682978893587584585014066969960611332443321736182106306253544669513208268522825763499976250395532714675519201809539612616822177719325193117646324674588248784909199148211882523375119702446821211511476576642172557258456787945128297358987240434716955521755278672740498179867367119342023672915006165696316030781968827669384435894057157630766678333108459950293107817089491208757490051287203022243005463071637857854426033614197240459508182624375747581879024532353348929431400119291577533525988331278877368928939996845459759628530615340351109807172667832421231921678990235024155356297193620822021772893026557628043366715388315971923667508682291282610008219331040425280919903446762471072394340141650568303146013061545731678662496676112656920019708090460614490453682489449329121871579690831055009603837152833670910942059365941289334234373675076147165387993300134084786051750060645515186277736085441750473578623352967588837400327009557264279053401075431940128683662743254825931151497948866207615162624051901613100171853641473868472769440456654604393605733243813406247571170870444731155471656610424975914753430506106554570174188585018153015177417739983932597699499643055713767553208181613117398917997657371811629167095931419036395187807792401200929739312571112923691758259178526045722591352621145965584559296474893154317969774574497949480551233508385917854029901566498717586738213094611787710481061289669110833235179644051451035025703568620707308950139687762148031385922402315132984164516574290769383674403093879714033616102210722269456772471419278979555554858674687716944729568776008498992752657396151912128313362157104106317652378374241864213456977478960152782796739980548379695606342036854638589039020282210086444475290451836895648714602309545300092778672384274565799341592052095633556284444837640076049759208687488834486603085392529641943251579397298777551066186936270019071805493814357729251630126722313916961496320869894420377074346767320444312246098823867279931344848516614780007654580532175915460408280914635106479157358555965704983568312240108077278773494199125904111987483497904202845626810445753237714492554366881751618562280707241051986177418361287420233818274698341384973355094460156119719898626040503186428759324926531722137191553497077869965098960866625244282507917999295463201417266306624869982840716775316473046031877835418853908270041111640788466303435494735756817883078915594712190872248441554319977824620157924160840265580186710489534280463533637690439641112585940624295907584354195810023701087237743282292489090135793726580517970123902358927432907871818134510266640934963131078328187574537094478336077187746584481121012446639005434797087807133192571386253843887674191577879970377818616472882429816178008752454758178838503444319288871169368139780653263367487241271132215489560444855825078713558695077051664200627791913324666404949742022122341155012328689777012453974475926141861516455301702072455744470542565931471571867494530695261128293971939127872582962008417194419118553183986714249277211452953021850560616364851830020438089430961748669184886676425780663247966728689271197945180039021480074313585998082167708335287674958727891855099607245197015858866011030376126885990913346081745646142186340415104351501294094033169108212535248257866003284651017485826847615084150379608586285698596246740363554590149584568184824701062374160421297939689388250042133883466636681376930352011358859701385112471427043084142673244820065066197054547567882206803371255775022453354435605862052037890405767262435525603425382684664340667654020374388849149787707415314822425216931628310293158720290692787811631539026950090968126916503311920627568209437570917563200790135385138757858197341542143743755765165320703564200220353219872046631246576663854840257394165790773023067244618266900253827613987310295507196505483225907395233710352965352209269596596084119941065811430153508264803163699512108514000576871813843931172176082093647806190278688521014249293532401881143018996576119845399530605726390381924216309087812246121470259347593653517758231290990080655350674484114730271181829205275188859393568076147077345236525475964138349593878958317102148526417382523744475047661647689531652665595539124105347551769156249662356368274369286977205817953783366809789877948128356727725273784868293951952773824269779444861751528077078454410499400475712674853101496950279295852183272491951272270046001599357414321116990936330144387922126785441872346304318836151229160911631162517300772835803378909517590119673340074862952179229834726960701338619502349222716164750174063209604835710635285463025567582645046790020719483114140218881729266208428697331461090724255000103533295127925965424859860315679615478763687674100360723816734794787454503134020439339295020621629852013492848075428625201365462385390231659719610991403203014984351660399828285559212396782908634547411024725983206488403609320555660431929913905206358050611949771659700856462727357239224224117283198721398129835699632534834875429568452145068448733258952463899321531647383885640113196474137738987177972493270155125430662214953252235804910208615946759341095566017640341998064322941026379901721139063925589248217158345779705624168082941396695006225022576255087820710105598112121971105545759990994033317645682424454338687354193717770338878376526929553703734198717620989704950822833146075623227291558312792641656813909385375120741683729209943507751844378743817809036746475151294461416698160928418719184273546865529124329673254720184827489679918192822716107866467814053196685673109217295550233182205495051896902007318145907230076932382799388951698727127108557369929571501824787274488663976698555919109653928363460986907559928945636917179679338506820938382160727878635590214587107524611937092208231013066011223941427791406261087584759926412933354408825220834377135754599694258102772156761022455413631469794650178176602170853132131156790208829060008144344582675970629785574172216747244217864037636315129093766706060360597125727438483257754764957657484901676422904789433950124940296212576952384605990192951956806764787386124359128854269164953172169427581559883624996696879650508732441081191481320578306469132406833391746236481289061345027689078331784609715144876370358639231231709478618326575248147455601286419876073456227895561080218249913462496447295556672726235969310987364827336320576153146171330556096812814973292022972318070708360960362605317917363825307406358882112731550254163083078684922223940964864460779045108699426799024335543549570417975539593429529963837927114976996315487508032654788273648845067436552066473087899764703307816730066663639676335246969594427358065576383354363893451818357382785605739096144671526031809932705742331730289777804857770130407865521066292881638768203423962306816493101318112136035153867881661311063619309844284402840501873486984191245594291257402960148296186430437515907826480301203903520928215968006345422454211872687817105058630478316726283635274393385538851026537952455664123178331292720261593576698118686163294834356777868040830228712960557534567765682231051319795001780549789262055167861639995943513068926897520371505651920990220556597714322335263108145328309347779739549712161911027854373703606760089334152910520494346577474727166909784865059188695314769305384018668195927673732980898614268043786224776177720871484460188516836210561349805863356935893062064872567046143447934447497008289432546903613285784339816451019444061238083346277947607945456430263271247497379395234062113782960466065586298023391014502508484435367493641052320090258433980846486626274541609438630928105947549687071589535895224097230750244079637655903706771775891137564313233439958359906170132871584620191146549054060602920485572831800474560599289711475348188091532034227500590722750905025590664902700499995423124055400556126902779828237936933732563333336087386886926565084155928261808523158552935023905412706382232208925347008729026969203677421678996376208445254936385674397879173042902663034190873048514583598906624021148235609006125340663973248314449330616057258800249696495376752448549134418773988156695703555848717247078893499585684985670374789749640158676110375973098330849735430373090458033757694032965570808599873033123626282642564810205431114044481678304709700238109565430159460857609582317330440173156339950878472493617913240474855958767804084756489940224313245541706201936003054860111125357349413767825545837552790493719846445719454530473274632103349347669243177333833502750713410720022758559387029143061784014729327767504121055544329563128667286971482319254277697281125578072706301626503682036610928790742997985500204539479327728745035334392848490483836711629412574799213458031840770531024662284616561316655576473444084061210563526457647361568587592163111323060083009597221172717116450866942893799024068926527249161274193207706918127422976393757126913542083007964292986303399431126661913409823150004918396845823103349325269437742616764347130854855950519758899784773560141206104447504251460084699558416999202914633803970567433997033057939167463636745497750412355251352077825773810577741778218327404009720168740597948888047575895396826909374669012066449812248806231984700749932675594840985913731791426010035395164648200544560570284878741624013902594709165497795644840496431129447488477281030667029790648676420358342653246543407418064298732535139993121437182735224172934186367909492714723444917315121202256300810572846939040533755768152920045726697423383329527879620211852890135146219580623851457480708184959238122791445047589630378872436807275344123640820054284426462792511061505052220860815770386167287927818256730129138537128457177122847889607464361997075508979347465024856863106822708711790043133879599631257263610042823099456165426974406491828973204922337101141211817529673412147632427912851125762384270144381337650453106651845860645801030799502494665153793730099037519920204809189013103727911608201780956555942564879542409099593594618903356400132572078124611783952822521304323937276760602327657052226470799344178809372950791846204626830161582758822198539797849087715533716363757092227748298382129660692753697261113069815676267144648727896520931762089587112656968645480392158402770987129627275171361031829377658771732951687049497060742115237448937604367793172648546183611621312588788266638527137885713750664418037270131053222403916162209365559714775817558415262635318076605763341314591861623589562362638671034763914159078980335046790949878465501491747907482179984784725718134838172749955797655882064556278430779390981071557337908872280363949794371634364101709284757214992372387849378871968340151443075324803702791601200801364456535948442215259164374153850903253753526598729131561325502111964261482854564908792310162228295441020805134590839755498466881091924172708268159334134208927354025321540053628594589457397831267398839902840213458027830853197586766875976782550147874718127477290625679127635407246739742118615098305997626229665176600780070001980314075083680882032615094621668236596269845949123604490978953258186440475047308053431797104683981051575049834875063697940301293771773408747380105046220944935656948315926022184368077136405059359488599416893216311234920360910227868712483389033755665074735797796776585480293518378100521627358930245275676019389172497700601012412755436510651092934279774322764841737451365035253121004291973125661227989275299166596168020695364698589038671799070729921093264910530009552064092188655011216321636344760540004880279389908165850594113426157793134821595732259551228192844868136756322220403101542327223859937175450534590531579029032614600182391315357115324919101605628365324923662217521570585534527470020212721689736258538729874735195912625050648264258017569051377517026605463382727040077585312510642293277718692080398491350889699915436198796252649857498137750962783532092779647718693970559703342394536585670974871958797586659558013312842613388539069098283951670141710885763172876327011295588311739652121477896421641605637429062185646803285370753116958576821113037134502797046741851421926659527235123013188168671852883788971375187708938103788545108237330102778274628803987473062459801771174886433073337007010594923630014983912571980942610791484747386873975105847211905015752829101893505102901331626902358477616509755860313669270778169913778543685137826221088157578436367544437256891439299525582792928176890145900874460403263592821117729383939353061920001978763470091181839547981510893563014761060156228560415828256505183676847168795100019008474379327920930130449541708412311041255145214594528025273114452740298923454958888473316808174271169651651327400708192513668573388527944147042536096291242275334627943380579931792271144793076995555385863604586933314812887454988963519627265596092644032025746385085690174173657618494571082988057654034243246009607778780537124510257344245662425360345894687077003904286235844878221120772547947901666111842078240960483752505688378355919039239563122218505902634968793381338121634525683310930509005853199081523528450490644021952731492148407274184454782390090268081345762880137112706005259553556442226241266121288341944478150744641030982524167367286034557429248739334080044522696282433014460244812047694505338272916140134095733079720124710154836070814466698339918979530431973304472142553807070207071025809364463131883882255637861070843859812867682871522096797554517673443280456594430035150000005152928373289037460778921457787905623006773162531811244107554254593297219787740326781377927786423590990900879621873386755968230894353993549993284909611288971990736716484907451726628651713840238452095221226224851380759711074287084461733010763241700162078120301952980557127447338995923730779668948919624093658080658555099323881680299945574124386222619010792383213826371034288633887640677117494022819841066214679006222287260279851329905963613637093102366904343567525185059161629085633176268995477735929738260976346200251535910858576001185588604603763977501111364022930876225649378997126811248323881233109073974751730214886224438971494900517825909155701449491828224020477687694602641850531103183917954704766364416389525697167511564356471452436152856976762676168069461594509082783746400116497407806477366220021978319345449054825223264020348480024458766832564456474478904474139822265812724581554188365687357365365029927061108492739845322862763125024236253238746801478244260550311978167813237891583078425855280520762685316395329217626006357690561273983902952725637360142510604459886122060381271906286936964311567566555690445955003197750564392900161111703153530612149376811897427801271685755011648935420333884597204102266788910084906193674257125048005735450062720943244580502440649986598235468915050840374513889619823024238001881087905053730619712144581873802399693729013580503844877431363717278864232133140100486842463823126533812236359073898533309618450931091971498678402492408502744938234955245236236552979947292089673747248307671794846829032087863416761247956630069883954391972325471969651034384143478261183557200460496854705328127533430546779626648245397162432625820889028807479946807071021255167461312701788308862592361308759184408035304911943128982461643911272844967695699853118557443548499512163632674058710428039402510108699286302821591390263717127030504563001744421375328800612190037173831907109716965691888859472247878795289234324714626267795702084606934619725894846146441815335394724538195557041963834939375768160654607310453693964083094927121837718271682651745866793836182995982830917526459411203136919435975005153958537537207261932461501917388534057658348617768918473775794757330235199127856967976333396749591043752604135873398146392725071651053003995175445708141407785074527795107356509055488392686624911522319226917002567944683519938324441624069800941104506463976038281475935641486257922147120381359212023469329847346493313507650506775458565566559265514307358262937866141488484689001254742408334596969677058771523263267234894025131163891344615589710409505528836526686333922569465995336793619269028220922695421748481511256012765661233199244851099602434262641381253394425295718254830861394711873694524724113959804563973195155939044637618905794071653924587456400057504700819096605007915880337012967503733690285022754179783785967576467754756909200131509412094299107951082561055942487140849836239908430444701738573156622809052185249402857835668064178775131733087427831372003519332276418721284268497375279773008699277059176820255800293474734734127399301167400761644430128946558035369217996024312361415778084252175713965150349506881429533188146173563170770300886146062506285279727828749434323481554631001748842997892043267710055272939509682896736157304901072979509361956825895371777232776492782301188444730359515292728339034362582537067546263225543977086348901177863477100890897778219705447470025119414877363067470206651179508795151599829208493642738990130564482341452576395266058852016716819070321696540559419995296849142104358733985180857868556214397251870263101516188568718781460718664730867502568618594823120308379837223885906504803590421575618684601614113540337753874946189022296923226851932039102959666864006978424225430066485670198293992751130469896160134760867418820972250279135383658993632198173794216525844460423298780805681235058796682985587296594750241943917310276045378093168510503960187595731972038134700851106756637385985161690837944491268326620503588915277982735644484141533533040149002318767931320629323975177822280063335437996620315097221131527173703070768803235596136148442498630707302366460067887345579073524739449980936118076376736532361865328795675183649611913352527190978693706744906185146919459210061039573491991754799855465108597139332849021576892265691065729459298789157001788922178030518404103556650432661844210886966089526305296828862031058097922176906853937847704826956357171429874755255894057987681906886851324049526786951256777795631398289169144624845626575961212185313542681299058061060607326226718233857158597945151837772570909562895069656462340297231484797805751662092737821652753967207668892972950987761963796370996741472659808560143705761461635759097657770287138089215865240657962639996768663179381793688943227000449868633080262747127629363463546874161275953110038708527934428269222402011026376930543111121600559121099547420194473452469717877772088708898117737645871109147052942342604343128118037568456728944477165348097937428000813737645337911817779654685951636077573729302925851017039102705955969914144166795874454297312642417812921271831076664023238347748387272376494349463810815195353904031487409944265622081100543711692765571112201773589798025404693436591001946317970597943647513244010182646818871664639062941627590407574796352690779495302887905640346569687052192538905511446671853018986120383307927560367624372636107188482174137100128477023303122674248466685804322648074596092316082326229251547762329578909333782107204484319475772302285476165061841250847175600113631574026298151591228304252349209470412491119827297495995879046013260814270544463843444287547634827213392613600140288828014901030019291594644689793687160893216698809220029383992413665933552748055462414609998541978566257907829281278733353827739692492253236636733248996612369862095243612589842760387454820948751401931346055183762367913182800859387803554834321267403754803361637562838638764504487071684106447782704990962587895437929852367100982146390289655520601293391299593566728766019729053057420171789240986859325632321763333055491616725341347606394794193624340757435156212574761654513188504689612185574961072958276423579435663289677285707669686991749862930582863095563851318125084406370649206010531847123533954307764408485054146136966052060199275022501158752128198234039005675616151583269511059133104595498002289830139907667452545248553753772776705815979478658574537418230952980219002066325126281713453463140675116017829328643772311290002597464486412624975745939146686921175777318930575350660907854861212259724736092844839553356051857679430090975908968273842775563880702654615185614187949423535317377865243553964259749440290697000501848178250580739815985344706117769939008482141773736506727788095781083182769622810572231229602238765703407317862506598685808321841861969045371138946927466477449721775701401381784311692916776997406354731585999033365822553343993954874407739892884248944622473402762223645755537868324609274987490360867050905631568366221549143596267151448437296935258881559102609013537431589028998697350366648586319164464079345462893572071512117167038570704375182955651886810365304214160793788818791010751252812746452860479803462551078312695587579656431675214480370606824575977872502218808907384746857721107302184498323820422383019686643751863328911127781406542892789550598098340633273895403210176820154318675349404895900126900131633708263462192872905804821341491686843202137298492521766471115386557518909901512685179647394499764873967897016164142897062121757738283101351865744158516390387271833453232970000006095173906350646523347779509041319095463962293603539930958677517227733092119638664088502021500912499268292069381297288328223608517300580817600869939725627937888640156187045113363396860399135893394055003992001761990408345533948163712722859104478983590066419977583124398129024307300183018135531502381301267202786051505107019793395910445978670732353819765873323991903222017137713877531969656445002687825950568384856299354090543496916540409038907886746952590182770194824313209578073515957454527539517963987584784569440791188271889239082398701106109367982481708144808680590406419601027168970430195842136822157342491110030331337958864735939801565001742327221871778237262206347486945490884988524282456390621415018983254940498361808417706070422529161805067381578912224832570245892314802578569007777831366974592084192488860835467777850301808105465224928690376775869319642379013221987582861688748755967170278543069198417814070914784915876091378272266727133577167043119103387494724361505493138211066775745400862166021771138396485140088522919606458078829788874705037522924959612063395123557479562669053205717519781315527553685333040664529451075888600100825091032697862370566010755818513039179486255207962309044818587605012975065278262392920180455685192706086351533520522937892261557386764652655978363164993271081752380993259965927251775816512403069123905591622059898896265582249605475881583079694387954401414923023424940265276613449705497431168032921651111659924128763269858587435993925829896405387356958819402123373463222483523690198867608164910533755677936242797728007115406310062330963498430118278222134455764082595974526477360221776131984807717607080618552442135182474581519164977750187604012976831654162445586193286744270231431128966295488621042739725348042187782401998945085276046891696524751638889836887311433216752363732034028622509055834198534615934679138572849990632837530085068235758326048106831245548692641320982063827221589233001268713354081396940242658702452093214528300163951855089484219248944810576429484582218619314619420942822810000487199919325393383890883398884205980526484486067782168021221443466251225609931282689364811888527168007492487500860973392222276235129076612320070044525807942500785279732567476578021781552198286943333092682512675356286264637717261402759776417851590310863815629261550329473517160457781757392333483347931739126592500009967136045186634514122876932598126842268726012855986291853866833348380998665224360809574582570050349409192256563560433600515201875742567209454453164156568573437186210101151069460354154827082626321149314324301225193318191407887850526615341703408114871485688748684911313115382755725854267456820539834211239977368203690808041495310986898995265886180685178838050466929315423071902717482962924179671615948122213268481836161486504378579528726989505669028230867303540167592785287578394039679620141201596430074355227233223607708799952272280665004429368268651166809361179479609548952913101391282011751562389564491207581815349974642497809941343333711066596929097718785199639325620292482117917315430809158579680200219050837447081906915204548485553753118911432690561342931757559299619597768141077916350580577502048457474504850494797059165712370096181728977005704372998516011457660969923839344019906860626725525397189848885258500449367196120401411028639785003387246165374286664091666119502278295333660557883487066474657341183246749168868280242456223554590813121978695845747940716840763497940047332815282390846433759937303939190418760308804447891317153547083023614602075507168809750471613895519367987765303973247379159966741333207058181940354304513692997784885675002657400336968153169261442499315018984669530411336774316220263271438129269853019322028852254600984765069862512331720778728321814369741541422199399889990860349235849231781174575333559517600783064870217943263523884006856226403587793031823957485685803499224844353480379245780364526025727309809676326074574837675606413403568445939443903802128457582743529597046875375967512954099159445717620492893165548494574155206327628196021739535994199573077059959163075413578455420494465071328244451945025464569020900733898754710010131293199847682858992087694479302050269280107132080025869129115463114767263707889810016248533793301492192110356098333432038688407623227620988924179189184606486248381463666612690509077812463365248439431969234596980965433849253177435419855304761035073617856848740129847525438834021064315668602144673793038762814818288585329365787929150870023791907641854969590929553277090517217862665742719862936475616447648631132706734966766131492423217323126382986928537568976477978238127255445620094223643643157108115585047420578836258991385360464732913085745076555227476006785370009794392468961118448965088936439604757167089637525745488233876154452217695988887962363154145745274266625790088550761561113309062600227073833013649310933311530026172034122486222765385870980090090555505597231693160500431604096283920911848817976919885678591118765057067148338844536424932808959822251152574476702459996078575467167097346793329895871163311108270759158127621149049751613027640431770062668760031472554474193362742761302948281040988552643580766341883691260285440130951384566856399545498049630837221910271827981593655546277792152754192467724124343510236705889877931445401305584885040014373420540282644824133344646910821087314883285424627249151446759892984254218380215747324134152267411978525915330399699722426814650308239898938888171238715088355096156597954436284543382194183995326325718559733459620902499325397876715294856135218157019814503381332064543273833135142787307811562833551013124899954848476862060907631439281442693824306674245241917520529673685482974656372919486488473033164381576868097729360935901065420232387637597121992598820365471881768241448140116179641404003020145629126535949514214096134216089777369105045767576830104277256761835143769875573320481677320741887613378527131933573079563624811204022981066737508604269094395587371758907870526262102212345385600898732962184647058128082102106912533311005204141536057414107288995409290705218360067159898655411864733729667915881767111119610939773034653005016773581172538454538471910345738334052813032276420685164974443819143150710515214093712071590743617076674687512546014569808006880438390040411289373696706889960676399555850495090297118920942978277197123060808720882089174061515562700011295412008113271032586346158957883593108169194269014991833448513712224916706527985821442671524130974042616085507826986830507130701845934786506752888825063849074976421515657372124015980155221269442048721337692704220616878312235039140925301908006462881336459998368397795516624358940894692424026252950771102368365132206913101517152692259641081739240318765400680269936822270986486416052503075534191399281858789218483966018288334897102695492358555470439907468748783935728424305881311567772669422770996031629561530972003114140980006644516495346454556140514424263242949521104781389305956961710413752228305501542520765948514562663676534732911109918393252126316852913267257630117882572972614481289189071024711002813682514313870163519685244568336288552378647869504681683269945354780982067220094918756979257973596664223788039969341837474935691255619672258467971543571459023299617997432521047701378946670697410156765777484138386550118039263374241581334391440573339469675272097186589761986540989452182025880595113569889839972088999611143170754100401721025585036388455700898254023946397490193129026226668012737574494069054366345687825490702233204829043797451775292464314862436466123066968915777722664267119578569231748208337980201338464273248287385905263168430012007587735266890990665683950235694633005919503636412182126742984499481673304893648382952754114137032938395897737518155353160172286503074462055511326536569509875207961218192347700778471843341359791049323483403612117325006331346271625802810793664789978162035943897129854743971467146909303495708185769170445856347663611887029242561936310915476997405093482910093812378939193914046339564230779248852006954880396123990777129213101052521606950534481240010780103265882610905358365879171977720913593855654487395578545480157054849835097591722496632241075489605834770722563747476696211560423554625342059570371741307074975278507727996892018405203615489452227886935328370544322064839275850606819647828787387698425057690968864960505636609875460691813531212890195022766696744375499557125306161795682322242314222266294037974252496912949978897802986023016751366864522785735492758205255769721329566863348277569135457033092778914638497788078598206370511900931330663362515699466148061314951486787559729438816249550483890198064178565197870817639107999672489442577424473383405961412024678783242688148312749904699634214549515742876556214999184581089331072010838498317889729810360908891959406298260447787367146953848847702138057460772327519142883003666372861734609764504289289786992267159978892057059729981629314860449652287427462124434239775604826201911533688069553783779940945162693523047353373547093586466696990382652692683223206445186572130292514822315072324107167670787177088025245112019420133331376455378237919936790304582460076160266879039487840980392765643054945579838750936100301608000005936102530616725653302384733110860613277333112111927525729121912406001353729109367425858277296649255417638987358750738124389877987207292373274454125014093056524530480364781501334743438741735760907946610831259318195937624961154312116082687622742615290349610631275985156997474635756384110166688176943732426137054440483878284991413445313115619317626174108768612219273148677936141090276348592500994082305991716339775381425606817429264807099684978455141100197821278301801322497016289815574838700121986674085352413576293806822322678189726427570701254585441613693015191926131048397859202859767010361659597292902301926109661559522839697180189249022823304873869881423089921714770923330859219040662440948922507416246594823655090940251179577740822410497343444622094170603177974684743803560134798121513142439019347477803679466449487525477740936549755884054769370005330026487468311105162000273693161895608827307128662787748435693749259443800636359204290892029809681076974774854556001620879176507970718535883911859658701244516764082252392566101128285945549328947896045127148006690463310638166687495251773792256563206821469914768923259206103420304687457737761827228889472292143075504595405738842651001974249160079483022998517241757866814481070147598130178387633402467060875387031106689132224354649305737629067061896928313227967769910978825200463003843531179956218553822997953560147653226034577536930902026019653554549632476145958162764165461578952300556150118447681068220962471415453384060651094353567546765716443637561564665371138813536057205566699212838942789218675187703077724159703486621189966704030868734939261711717682557533861191377008489074908659158524407449279006762534848930186855564721268766276057253306359633725120561303967549663451352577616188506042012500978923504501811028927580096730996268295407086786120910486414320049153302031840065550758146148310338087174768793339188676907890891498142239688018095603947179965324900573464889289168113182482705611710000120619319182606135850823788926704319531117049488382429119187559024083743657431815898853084179979491251386585357189418731055145427336062234235832374673029921746385843334310034026072536278043006892051403515986028256588825846415081359550880717397869616420601569885530245157592605385345726054897756389359663675479964548187078938159063415376921205276256396955508193684076960948113833494727176660734892296662405233154941392773749503833606730940617676654665802450558697501308036271494833247553742184852878621930506049139958486937490207743975488936865378370458687047495630141608870604148054259080450751662405824264922063548776843103011339555673851582366457403635020116196188009270989197519002597488914232302761872416986457734925773971756089298664299609723302912145006825994827550151501528573351921853819551042780443467577074233725342958816028092662774599495919369440569144894039978342239327977170926226986581128460634943252717125855396765697267878450029540931870346900151375998381915022976315492263168695652820616480337718795065049961580454435219679201663604950502415295106916752351841601550815823895855719116974395613028373609682743463775708026639125577386212665023320890665091104194463009675217543319365392513568013001447175842216161870294042898640547794115238142079271525165840379619453700318148807354949473516262225393861705936177062014428372331652271927909348580234808166946749030150224508529325124830068214899340250224241581341452246525962916593481149226871925623668732432516412438557274122695767498392469160895688661524816127444668276309460435735444663093621613291417679692719344376849487186816177979013201893344856318841978618731862184700843850723658491988176855122651816064230384801290484986295400114372790416212262153405758161170429727365479964432550786474613350765314874927197004769047430006089966423463177205365076102695832727788654022784882499093880429678754006660721397820033207191126380388552591337163994447907067192362558680591840836034173538834842749584420407988518634050353079698796507225297019961842810219405749743223905789804376954476101603916819572657720682471554067154701785386326192492377569019142548517345415777084895094688865766774212920594526053300331085726423382759985114682887621982027560207111173220798169618852655742504789120898455282370655525851378749167780786530977341988419555986816275597609040490014838512669489913823042187150424678374812778318222324178929225957558882230869926255343773024568749345436023907571575442570413139726771091777375973401364537286256437586286313170600212702444981897064120573140402347639716003155284098846483151623594822724948170018234509407411809728962973667376397838085008591220942725279582102968642529353162215766869973003868447716439174295199791982511034036420025793961513510672318739020831016699181363422364576819176129317210317773892110135697410734934085753256333489852521679080689240154244394947516875853336696695699834833317084122959860629377911219076137876530380108446085519470887384226812680951500654952442782779629829990554046488337471576899365084702196905268586689128066540166780293603000361625099553358653674470320368898609636008087290577163418784437009383353538662911780000538949986428148586727749073451084796878230120854469585996758858406383754034223974951088040943833052754676503919728489715936867700200886488498148499742271368694033007769196918676569423781420010158472429693105155665601494891382900881117994777645218430352458562743245047277883393338705162402444763168474467569044907968997704275455502457493878864862414316183345126203986117588202710699333119374521978361281291265380785144608376128776208596147607210482879860170647481231366783741423271994230908702273678584670453668681069654905756373132646868445152199536934811936764608826959472639344289683424030660009595273697019034942734902165938014629074090559868590488762249561762944749302002266811219667500483634792675782074644910479889937810357327815012036448554912564164693614272556930933948904394950682009089226104247414464076212538586780160084251391860532753671005399315904618401326907563507237508327819278126111829854771478333603084883854856092300353074631123902302326419637914114645041926958427941116361707990320036667528609976139226241018314931511841202031147035596116777689836282345296005521108557867523642706359577805768778977753210340436807140909736996634183919301131291209224434324441369487616026717390480300040447680962330695908569968129694408271232476623911203537477975200202365924795679483031310816008452706013996951510314293967444882282512101582780644079815653350205578232081954046846772904712783726475015628222797669296859594431720369453312549965095486913169343913825593687042839182879319764642969084326097613230318482364303299882830500563138759104579903094262405509154911694697479210603079146812407975526048391456053391049770033586443281379765369481465454013786080880189650639786000938994534515138007053580905979417311087930340587901207488358149170595646140079302009197923185872392573183647233007643339522301361732728299942192524120744099042532044237797353607959696099461516283698198734581885068174976845969036513032887260845945606363208842968502739246253603340459873436136625084395465314763410814317024328298004824704190823403476844714842173917237322463821530594870640910486721427859513535875874003184452394272604603104463894762341001917915788407638523813325482974682111739301131955755634826049013734527281790323453052417839533706274073097830341225095831552444934570038652324843424966714871662967580921522261428030246612230600924725652069447724695952454452723643343454566360072529682848439654622954827924885354084236638133790038730233579211240919580292388173599866808121038459862175482233700078980880684796668347634719469777290281802618126624462296562406543609745844187564515565803357001656614135219768848828984702566972466534536053993768716388859306079100798783414314605996223205086285655543638767158190279549372109309222127372932562545571934553573854979799349803201226501799155547887384539428882206478828408319157984357037629684625103039536127533339141072742140421998962040596135036429179021016763295322679985587848667572794682868531738428372480544627589280003899586517144210678729436015733715145675763345537530137834931773790254654036846699097088797721398595828215941016090549886997638956958502590014009563622193692499793524981089475907663853654571963323999220914427413609692142051032954735401942234393951813744178942331344073310856767591584454844262899868024628613263501504210235147419889604698964159614806383897456369562452773638694830363606164477423073097451653845746224613299053478105442412053408589270736436387361600071865271900278726342072549684720762175927478701436104428945405089999119130665441052849730717259959871511521386287407711974523358632954805052810963315451452127812970284910678510152034816658625570899731704013565127410352445980603169016622120889308696527749429318114490965477588016248744930134948983076499896309668493766348551378463154302412981957332498327871260339589640396423735100588720467969332197582325329347087498187950554014284290779596459076063797674186619948804511443893382357340079021067326442827939457043107696973518077296796785882315875228698997389344195526762149101712956465855050499623363100915040824233138113550661315472512030695857571857531989277079824973318624164335588759101404442397680806060902914173741876683390140531270471968851110921674481793220515266249567977029170548340921540804387213301287226191595656109470279278380530869975776091547401374580381273654165702852826653541267486454544702211545679949323545047879471755309280045857471937999908338424450414348182611083209538897285778912034982509720348999411690578175450665165846883357210167957184513958623462910910806367261436994853536876514804520387603931198605421766263284311482794256820035543826547496386900552957998382818350772089912314948385600338812649745759359213287150239380487623905741009797009571090105404888744929624240082858375976877730952980299846991777854957507491244119150791803444039734419749880167952617390351393619492052916500937730642464955435512977249179592577305179718181611626272819460033570212176627034905390586130945610102855686791771928248954539389267050277865461698328634746156383812194394819835064025756896147861828774409572700287566092648007732320333396522975483284776839103815183152304780635711884943413084447949247928322123548247894741814120976033686282686204886524903046446239924549737451614857948033067838821083469114183654984539537660768404230841200694917197334133846028765296400396048867364769713760569471891365800114897956995936905433503467035316627037376755398528972461306033518306703688196577876188006992524641077096587417898745914155669777001981468462921117222329084151764203363180057517519158522949644931648857071194897356293532339189805995500004526599866356863495481373667434256092789595139237036253902442166971601407370961684813320923257421771171910874689698943686339777493744557264952743692293998368281340149306585436478477892221790182391561401657875274958996553281989279686116094532676769437415974610424241733511222380264518837238205724192432903866456928002414735498946454575110210564856900622672697387313994999661182965177119062744876329208949259877377075671716456531943710285412384464647794151159613160142276974702479542569149044727668388495146045497071414286738430623617333243322778194780555917692702302952662246953842439221576548220351846206846310387857762556551025001161887512346459791857911356643914154711136285748499554297858458473725333342534208249585131171250563812624773347054517016486578053997683585005721832791077838825574844204935360317619626972805262514963513641540172510001363455554753605446576139877450291825821340481343300426364915722318635657165592296567255904454706488054099494381893422745308340706763348633375067330709147012646749802612943913622765613054002494243815962893007692585676271239447491764091400396564497511275449269909424866781943589312624850789181000145790111679580671728358420592131524670418021688553309462049588932969391576472309387253113310033938687572536406966458300124388082057631192974713223487810236200570943344803621412269263529040149105292679668544192436348235850662139284993623590630793512746732111068288588654355248195640751048922347193551208048857397310708776068058348613233807170489963551275220648719885099652310450028842202107518597747749737283461348242640142852596501307305874703658046429729311359918276509914696509295131332342329938338837183585792052732218343375720376493382614021566766551501425930402859641814204882451768235643696081257719612956604736596452426034533183232056894268866475298781929365408012816161575868998556041884905596200146902955735436653275429459618509323641480018609020927549542200559683319139206420706120789739448678980678690831508252455122960054804924781680685198891709617805642568838899465222304048744821795900679874446680578767970558698003871449385615420599029901166623784448170046695101952204641422250511189242968958979347364247129743086158838791470829831912211574449507859858902083049072837540731883440800985474427046604839919008179380317362446114559053186788118292823378582396367403689054458323896706323925101886226260031478013108826977968049059336768801999436534104816227613005383959338873431609424620548712644632924303791083472564046791063069807084298735766953180420382327395572515183701926309546143603258389834004325489103687342469679557936603488249170952408813222207209600998102581892016998559465551910698792753801393554723917416197358678346398790665080874663917703978639870890992165910732702941377287147734364589910713078401407012548258726262507491620109667916935558537270233106649101916073362232174398438406944015465095940068452161981584644895094149604265604618736813149456160325081746659307689008475034725570112418910854747782545082755098218669454839124437280756447111015754553279808834424909313403987377121075175489407639409798432471978143935673286966270696701884297636864117137952929055271988946683565030538262143350731126629109284841798178986760025167388091851813929847964213555091016732606037904717620937047262241794328297652409865909284027423764790742980594950344318275913671017316160112165380017340240197170742480673924696155280018274882963981015341430558055147999825836701164774004637511506391753149098796251711070095704637034485627398030585379517942990350429987047395092023037092043448792666296932569125938899360104596358642474440446829067303476584284731129096917970618880165774841493623760812454115145475716188433790959303042326350522450875356037906375457926743338465799401862142100482744585107459399572138154442669072910334827773190101225554621303830951091466573691579709733312950169837314264539006603027050279891902923374076064913976179539508049117849652757536160823240323609685091440392175316035956041252304503513567067976764246431246107484033859447686111345316752452441863295375269273114972195920029334606465841110898756262513118326075468897735851240048986264848887985717545474236328315159704439220474408698604407270859124847951039296370252599238897025711270025421207789663165863580994982577840062188651452925538373440750040677997121442928726226370643686462336701173951449008036552901440810321619022159275771947777112796811264041535201891075258154907566774860664025156783711166225370300889850525303683759452692081576828559918177056370729339349473822043786602397087148627080217654101238753192664577990471324472808536975042768353393652545120577147022916880788602705723280718723835609995734586197407822982857553603287280013550989657112596615999149930243085861225953887827691136182525453496918384152920480509803113960749294693637915060523573387407060782261477372282223478502748952764457500835882457074875995974289147299455979866492712582345666396248299875243537155094955515933923908234485122938480913400182707292553419128102089298368313329084108662568922319323352824379740428859676856398427554198462235581081763313744625117196230692300189865731431166887441480633867606362417400467066031913903578315154714467976580979028832601425368299293082045356111228086756914538408311904938930275473462973729836279279232506945702018425905642548276233810945308942131010804914285241221333446429620592142539454322996521075052793100957097785451673153905074541769600494046617818502914522124958093842678133706049480707933411579631550192504866265513703232556706450371797543812108757638438626826239977212355421871681079530659521348580939906037424970403374790188959544559421474387254565262902177549723348289776209080587280141348596975605722467627266334917359666311998387604828354025708449080038671421335766842925238779336110994046764028287919015924481218537162215851462805989541476460078280534330413128220621740911687661621085350176808619734887205373142510783344630321640188856780689054799905559126042879430076183754601373448323800661557923301369303585665210587173222527043932613045652352310715915854269413242038503346393366611243328749434036697395394168953451088043550302170271443526050495626300604496816391655742770365374590020661606174798298796911043922610637574997003213787787127267821544220847956031134798601719144607193919251355109899437983878684052628761810802427213130670517850172240586105761475947139443613843765525951180732551013658796808850090675539313938330879072491384707729867390439560333320108239391008735173731215850474064885565350970646719640112992960208227955340962761949202535807029949619032764952623254818353480177462221385457710705323951433187628309870875886453845278513296380516587152494803760363204062852335647103846844918233597504324051355395508432974369425806397701126399945418215661353430878610659830268565635351028657406891071306100485334633745113964334561126414007067559455299343194955138156129509297635090591966736867000192808580955667759765904321129087714585517808618965041659951161765056468394110270679719404773422931627978505129956589319184263038006215782002917574760766359707952417885655281260072184914797114020130201413272827386060877665472033540372919697672151181962214879101282655730735722423631498466836610947638936474910966176641176590879152928822525253936023702594068770893904172246178810250969050079384475471442245564350943030162991961660852579788712664553187433190581407497242892440352252134492622055287417115793153523170331385898037340867651223775487956653996204267022095175889319513715530015859765410115712013990147436478812844040521188362911171308995039484578762070218998522912480473214036534049554577669781548510870858834048080999328843801950541040645795359182279287919326647001473667163060773117901174374036878455571652880818111399536196710882060247247722595522024154385062724411489016429189094149456972641395851303641227611553528288440922460126697439303226663532113006698964801505912754753492091530870569747053984962312150510334973727316536153263212351322618590754904584537180982476136525400601233789083954654707437758083629760653363193152058872181394468386299901052373676427497121124522144287104723793113707433259467036418824447765354459932683307881989170855006660980471563227272798180041547544679515051145269516042522210138142151173190417135095229495787558061339655895757801711985730642989251048173599783619599218949451261910627732849660481861821103903317521738017844861096362843387273095429244454171700868950219249780487886834048987860500619956249145576196375622987569292636392576409771081941954438044420429571672472271905510787236130514526965026413493789840327377045381097690012756400688212784318446323152958176597904153531512243272886130665349982416210259325532757047539704591893261886023604864750609232079021088047660919559623168731955320124850273195505149889111803492847302976253679833737842500476415110447296341831000092360914166738606670315352666820865996791890872031706940614994068380488755654025384411337030451840762878517830877507003757470593930348263947858004650145335205239594007115935098370063906667080409726109260566673558451444381780045335353815847633848832833171519931317104128259979179754427914028289971757779922433369330148524800833204764477755964815177031791576720609438886767892304785767101205062698162766014126656414641409138191089468942558877316676120534940134785465221828957336968772180490562903089326008513191295541340227599742464584663262018915627214801678344537277627595816571683934504740943336009634956736215134877445109481703606421767673712855960839446703828766711310234069146390777539441241741811148088624115928226620912740549249412564456768088005549447798853970702695269713348153879222090645033227397684499497006918596989538995364537301804070900090918171805433905001030137116376534201938424779369925670729356508146593085968145129877797331512113630735981007684742781098528095123483961963873499740691802052510320603177314337404695159406713133891054608323634194984063824297533965090890374501625036726077562274426212320735130107327705548679017079995746086314510807090331772112029510285665217187887602319260825991626748222576422658546310457057390748082330327095713059120476079982011820301192757282530873066866561837696411432936486623382591910594908099875863706424483621607998653161384519766076163617327336674818293507923940130416285240304833326856795490376479318073657631242184784533645682107367559457187065371567544027563008571085434314354531897466451980550891613092964018495366370710515795962166163233461943299796621833005975820348195614167153816834049497614811342484157372335943851585478726177202266055390836629923462919694425696946188177872143247002552913057341153070550966310123963143914053633876262599331430292529339788559287446549164273690011971316870430879385377237540234525656845108674646909258452086397862330173863788672783854590814558836481648511830074809815663096059303026456717491649460146738902350563411986560427515651165211832393226912733541973416364057330583772117383001571947597765168415399209519761607319688283115505337738870459082937802490829692491157294045445763618118393560100028978149045173390167801054198460978797005656761222218408480759465867595549602745945456625145441620249059632271490940532488103430571940055269777427324706398653549406783125427434166539955514833857691398418810260052955614233829183299767114127886548493447540490932639691088290279721298763076527374265988039794196498115987374023351521029319586265433170326803809535204571923563409102048788625410529474378671722510204723763040150004832040499838092165715543509269762521403434818663215803413647640216454859375223774065005098264231330969584692723583200124919070375947781420889597029142261078248942675374220201711467423953590599318878035409636898389306016908134240859642972654196552142329263213914703797926111036345267593009055962925065677581935501774066623544119487504905368457337774310351057730516897932010077241974988577538779363758105992670906246148075624176012892545152672194482062022111727235818620492110905809030657745310361992305217405856414023222483367035043869966754022731605743464563596236569648988766597450135681951776890495505538565225578484676417521980391906393800440103234833492414056012155793732884972852869267750443001399430502757998408456600701324902932062309132994858842983821528218465019900515305493850403026182576251858745275372351328094659081243455867505574000013138394259567182767635150316245208275500884679863173739047331874208834979200389074774348209002259450626334797669402705290733914008357092321554294740852286837976422394634609266177088208783643772554718943905253438469102210178113846854235534843747820260102196408384105989699561685303150188227312144276012770006163443563993703581127768417489575798802216354632229510681816258657303750515865218783829488265486263268310570849588193788075476482482839176940259112343081434825373966358370110093784494543448257510772099221364998614304947841941701080134154380901462061317116048750026689405512312884931204460136268300547593617766665129529764312186235214564043828021286530240830467989747942420315794593789415643330077284130489940528570674555452597316922999197993332823098043721808371624550065060493844761323164153761544879197595448343490056575846736433582920146519211943246927738459504214808513980139230577399286146334243970957688952578490757579499119015432582256347983220535898554543404625146099041298811937213119169261310429635293157991167145504435066251805222168212867793680638381801816095516606731860721110744911003846409461822915485999515425378154674891170264886175270104321773413711496683160935931826666748121628424419911540143754101867539348038933151075246249742125932890601898547611777942826490805882835566145745499211399684112443265363756459139638051421660306041370393357780867989815885049186157529136497033429361578102232724224778704144207407749322169356253044536443246483607738192876130937729481532731496430303941422422289963586518164662797860070856841599424618939264238972780391506453629718452402540346222243709602764371896473173051387692619833344608325541921635281725035483762373616473163855152469956506682249060496288899015161433045150969158167736639568969374597402892184945842043392738923844219465660229564688486323004687086187192116591196804016174264936251102208522250016755322812937877354669342839595673134079838184089947550079324324710619077416250157605986259584648268967052096044367808131507724613810813352816578363120592693251454029035399352867850441372677480246214569867692588732597425750299144291613071053771714803492949784760535474715541304987853720925618678941643382332184596760864711167282829633917169951771384946407485124419260144737621764862615144135993194647848884130788933305983417934506027888857917933816316458807381951743744851373734784155492741031902547493939781837325075864447483774993179830935812807459056499081891168414080679727775574296119645461820245351824130255832867303383420903732101490777239585256657847313186447836292039257881115167792641233757209304849347343109240478898665691882226302819025581592043579600332622544051917479715653295311325682474477773272614629458392019795270752949524567857510679729270263542335992177488246530623681061700309469611779503273470243784477965758859169627663058945156905191645016748029690346304768431939709318039054185441072741315739068066702351931140650536607409797027210772591328667506603296733487474001611865197223092582454770028307181724103400738356921936834067878117329739746221393397659763383439660619722313155617101035861604087613501675837806156054456220316803608191559582643546427018902634787376579358007029871154255635589398035018831659113649962399914344344006965578748692797308195506564026297675797905293053263900275861821903607790164276830197408785180855555638277070931734178026160063602102795843309165416087312974856955866724362945816805948150389409841158470264548689759364205759802409252301737331630418175641724190956786092473538328523201045515949452040585620796786175219929229079374802852527698875024628202107321353308936741812133569729173231815433030759512421533941425244598802353319705885316512172058038274303573362735715799539428014998701556196203318550304852047962094704421042255431112390699655668405266163703311030842808579037894493372554821611949755855190811209852596811904095770246118170763175227717001339191445549750522204194648242905774277261483169133834119118067127753346263105186509845336993293892842199715842019461290860791944722262533697498003042945739139205631801500152720598721634861163838035613063914808525242945405657360192631722078075442589423367009707994591725330108280983018043192453992265219515455326324420525349298108436722207159327413911082667505331091759776422786329957340307778886657265775593400133931247699169047691994953595396014564588268745288863260472617904292103623721704169120031534752436683264431022088378397622327872532544573103271150095277839976495362065710534341573527545456958267061258462994387630424042215977406080505481652637671811738183607550615215497470880170380629780554693839047239671830762144640150605181478724001476585188135690340288077622815971978922601116186539197845043093338808943806096624283941008455075009052687697626927355737391751280263059805418192710309811743770092808647208091703355140524436455044916201882455871073322193046213380831603333541395830795412116543073064569364604879239934579228840752145072554396318640843901827751297840039703530720655510920606042898100651006470811217434879259448623116607722389458146515038646486972057827706409224837828179294969675813799758323036423239491527637686034030164804780007837926625333155279770342457496812559492776211458262073631272415147226833970248785642567320638866402398144103047033609241749026290080174807374598971044552653847728974900030279286405283702586788256231681857330210376030928515486630999680925002129758063874742438756087114624498239280702892011169653752141870174092508755744769526648144590608193914629289294780794555373747820817845866029814254180831969503686436542555313466537824430683237446318519833526715350436735894020979017001252520816586696707562103778033098742302290272279386388478674446941943755392101850706538215012149977254447170372373246040740292887642678898756621518972332525269170226094189164777936891748377368493495562431686576978396890149635867520505018699116659329444520194837228094972339724300133499175866520328821508464797713561013468539395612835681877123795391228821557597603926308305360622453323383969961849404732876458970879576881140938299951477112058470194162423899014392953896489658036877554809042750080433701274068376872334915819707206412564028329662517275919823143312071779304352619922184155499290859753499800774723073794402850622224781839751785681216223429509773224637216630988588456846839407199559550426667094282537718517126174952390045664063485333450908567405600208320003411177126243583300581347625247781117528138301262616523320126302326707980802349049470675380576314303634241085057444021374632033387040030813174970418997017872931459195219641681871270562632881153740933078639471546219366109733708332742607006118629665975287884653321699102568957259053511561814006909880168230754817643225618025376697254711805823972930850285881999066324525449945674497852252854381722744217815614938164970048763581505718537183065957006166671872932982757448461443692005905322976122613149437642992050939583601388404517177428346111470902860521898046444613202861177997706099708249741518966628905361088947611951394605080596451026839003445061120245585613593379164039347425898082882439317534457736884700105689684887470927872394854751267816472433469603261151390818061720691932484255634813946353659334288146280300366269424385710929898807135260103453797188790574661348442702452035263788521475338877009150665978296235208607504840889729496330489639044721947528594631420237923371394346373586488268918455982381124421150132732354567466394908966906619628375300730075146200605506740048139085776931851582995847446599614112312756521775077234393998128110792136423023605265399559264877569483311018439189113685128836269308143472051424398494906712945948830353110224732137974319803548786628892946131810658576148420507828402895734722659767920370764901223331676804072808096769432003185624826617083043015176719227091186695093392410139697533199461681633940226985028638477229522678063597279108902129197512013099673314944311828046112371007828159358697048243130072805437928949224987195845894709510257343811497243853229071897773958208025952547191824988361799918472234341193666503161035275044117933512852756866700210906339888715121179207106757942117368180047577775550572208282164447861971137978997652996018845140773660482719175996990183100362742335498812065539237730575702265187810625624010154250856633486989473645190194556633267559388159735862715152740460219032853270257342809522887567066864797153326071648967102816884559083941654757218880004481298548989732727036752490555173621678206242256256495848992756733766100286784607096009665941547264969146371059409805274305332345922711645660562259178009096160734995480243758919277477218256922275995142732159042048196107612737554307211484863585671393487179888579450913199216147118855381417542225646323907022850542734315921122982481158805775128004338914994752947118910875924021742337640936043556828846885357390443710818576721411047167445264155187756917675638194737902887723831424887493919996207044866581102430082356999625997882501939366378567530684754150182813691365546969872510446497767915215743033275341407909782120703210657392594219745943968374133465959200667115104303799735094081723524106617634859019814197682824157630096471030954924494512428243550221943444678486954148923145743735292155780930063658080437996308221835729680805657100841647095366277755559959213481708785280795720396058335509467960378229197080472485295583370786311013133554491826292109416022063112284484055012340502111822021725695823247316305681151848205362165106958603433497228329609484291491974135677471963327300726776911134868634626721385753555973866310508386366322089539760271411769022476054211489950990780044123059874983150265554224424889169039478468941799179365129216212938819961879082485668322986777040116619169388845995308688316014464323399084334306432430574784982013555867877394030110325363544874605499031641772901895907229306075988518401070150242046057018545129826443457426434982222797944810597889880064979679033722097582916412046939253015847936448992884200138460655787235779022670892313721073729638285766747638065828291154002013105879264790144389899743637677850669234789867160428750493959975091417047762652223555334891166305849887378990906281886059776399796944093184346364518016435695889911266057567852071207410756655864618780273046338940311225468866210725171824399665117055141768330520421009847446308141836300610962940205461647201992131156190106510207401938289694784632897257104348645258474846064717580561672871295809808967615464056429984231148032048807772061756675386758767161765253826010606576576628104413831179176061863026348332589310374332090321304545905010611520293624768520428985033029033303169247930017885451269902708353234564654589296268785922597057753457977140540572610209825675272070561241648379197940795662988606188914115014733717647144206546819221911781005847610851367496706838616099790676179094109506806128577767955198574319040326236001654348560462827946389503742725148085609369698960705290975301609716484093855564269099519283881990149220122053361898295802178144557629322612476275203603744725776519338589978247754261328495653391897093201349852237821853221524487493107939486106833047483293560210957914590122817337787001745964118671794898119959910854572385035080071692671117121865233126039284867276157362877450643883821300428310963921487872435032976583015156646890040327110684595318589498745178156348169355744133510840841418579677669588482331799415444792929851473497676470573607951984806588463057742671876398624032698268799921842781116614986331503726604069264440867522063857747110558582287086614521386102893689148251864367194851022451493283143043909078440483609201249792615613912077689799844682444415121860419062536516909716992671442541408009756949371693773481077024716010691523827483314897919696303530901020125846113425977448656358609073449636366247549981893336397708521754248987020295495672806363908153408156905529037946408086914901993507712996208369872866792682680146817813374746777387778665866036421522650491653232085697890224497025810986088934725536023803919532169942819856342911073872023640514606947582137063766384386069741043225444161604911923470852928508016815976072858380280912671883733820072849300851204562671130192096214211330264152348514384301418943069305429228627068731787250109193344587295733601026155258091981839764959375541741038759828742755188909487982291538575260876042626004860396992453687273081084815231998719333435544542219627602811802804349567018166894786158259369845011426524885597781343576289985679746133649722806061861313281727015490624249021570346851016354956326691940421568084327839447609848032947899908429368748412021735884130567432872954710339030157070239488378434821191614429089059690366626639228611102873790317589475682800843022924099454080445574376837152682872676354670685950158825165671631037015440435517823165311267082786931973260086959521831884659162516330895635234124024274731646160430762996004928254195418488711219738348450417842736660171036843652105682120237371019203101064818650127921431021398003145172649773777625006180780871616801043418831431529776001826164558401066679418571757977177201027628453693716240623818310603381119346929296337505580796701080772520205543393130827348721445306627713178539848620681747565821950975235970761460830540007514784694344925503930452175668182208765612543288257870288451933343527943958790470659674223084417042454803177560534368248243195669358733712256035781278067293122424084031635176059025184891166542671119236610308292843673913091182749577940139748549090261022472940077870120705718699652930946301056241192984655807113086986115104347739430004832421920025425769311586003824845503322791530799411549977288404643866706031124442999984612679208853289261527506308228291988935849424905624670981190886929933037467507044658840189995860628652829480771921703200082466040658495789177169430614398527848469347086986774017795448187681089049474921439725562988982008310585629227661063746585563364586632859804396055168892573314494793640282052179610795871579323741171306202323352503391635977819501058122352432113193154372849548391451084066087469964308912312164375010914218883863330454558529465887289203389323337183608271249861221639170768039465525855371422187148962447182892478936390758148281178286202667984576809863391921882754187799461627869899375875517155711276561954149988776266090472780809251911274559092910778841199533978085249741055154283644089320109319230488337356236621251928259806610903136549386898751115590271329466029156370397683230609904962947525261721990042247453634683238763006036898013705095066494637987026091659236460710616370984109642952356046300939750555389974155177881992013288684593306004342168057015781514402674616714281476522036827405903455278887457580952067201059748510754031257936200222212330154958639241393354966152309615117931360683581883384738388057378036464933961371362852261773288146792055623935495744210070602792195763408215754322507325090926466416699418265532573439795676305997970746477193397245363030968407923768564699426164344567540620023430641204320349985691247526233276321856635383058336127119311694499933097957074623068375459349134984662210448383598443916330855402753503040376659677472602463883276733717113404249989708184072317746142146449785512289331158126194271484101401007068165646575854437163354824651286161853736471368188583419860448033740290586481465094026447498099826665318817446461452845620655043746381491949318044899608939926562600508369546299724693644161144809665012865635439778099799555867883083269008898274555763278983174124034737860999669080710445333395352976032922327521223413700670298054336720316448719473868982801031853068013166441735760611390600467508970810999550422911630915778132986278421492305280116014233513271462613454139693231400184228360655137531566649178521497379966051495651895540278573643535002542795734558672794676878645368722711297493782891526715278188785642432900398487145355651320921693468678791926085575814022538936038134789145906372048279790576519188503626265432609527268185566452362607349750811908285336133981107341391933132452003682845608189203823075562757404556489263354913405611956747031004645290170495533204778873089598375895419635639175414681887233682203178780186347732005619303967167895701647048112528893767012547948672371629752046821263462285134765940557774100832533257312831263575928678565912974575106626158535311724302441982275367785236829606817218877580764880288312084543082493654474824326624967887708390878578009412429460266941338095074585688790837285978890983976135143898090299897123531307324381082331828075956615250680651114960974441661602273376460425771016578064448058966229290008998247888821205751220702906692108618415191481374266048327535925994242756652024690824460454757859483597698485826688405339986258671925126705935347827028102281766166233253117663908521914535923603544653301352776093114657428070185010916600339589194353068984761807347998594520731228981346792222849922356124800339262866281315946124587912990379352969980545692270824943960055453858262735940492401119719069309244113315939412375483684749557209140941496769912098207477165689375397252948272935323065852821464936495733958096498640119624794159306008372771153788406633511754859552938883751368503136321269980116872078699503439771681477405996528240572212505446682251037245860318180689664817749412810517556225159000618330097167294030526323055077654896687800575284478111159213018739450402888419813281127466297178959991245033709436401861372790760314598646796998408925420888418559449954816541500352249169259674099248951762660042777115288876872946483933545156643140858686754760051699872126808967394629553486471782879216479139554523114334086846631896315273001138867288404521782572240781661643195207236100674759507425679300542276126726479493763936960578954049462325892134800476852637636209403929779376240280158728820966290061712338460023660366776869428070882814247940185785239426190016212681364481007518497069835685041380456784151055943712195197019025108631957089234097412081363412594636327076168141731651290718079343927125921854768341696100218420846689110452679654812763715950529075004290684734513202861189718410812077951810305398427096518348526999905990539628950623944923834425810728429137683179847328922459532582973528208620609366137065607191617966731682100437657506192994903501389499016030700359117296862705141072146560418864250618713969093076799819165370386158035841276905831225295652925080006457307366037993296129984380098657801152895110184216984397184209362196118018985647125560663972650182008012260731699821033819808027904891106551904419945926278404388824360187718197758215255868786688950115234773005097117506386980332913237896681180161814044947333329561318773194612620884167294624127691647287637726601574993897855238014043505455016489269812319380004099747422346305695057772006952069167536447647006350513718609908351863191928182016114827901895657902361074191519295941754695373898310122695644574286354924214040334107963764805435069205967254381970064255426960733789146741821480611002083230422369032360433617161010843312425200397136423525177333325720313759845594129249351361297743232152490980388706741678267329199764434613388006328277601725946898504741791960516488540469951506679889937105581507060912675378303373114403841475287812327160277435733869488544116553460782427646269065012620596704405286626662366945039515664284849660019438550408560064519348476242645040770669929740580581012241560834515433068381914120984172285150395350303536329239354253262545014224649668982032906498748685927808462182359432391455930026047803198073607031598942881366267119341113265693250662659999488576113744518736868047779499897914492327211299286206761234678512036110101737459815682797961273441611515090983838119673963090322465711192266779475231285419409392632935272206322026595672649599368656396433407989155425535664919815036423494959687690305309178749063927160658208354580489078361379625519652585517558733441957986012538586984677571229741279282709124016911258768709690380300338381963008284247230903022235642706965783476770820107235875279362883464247189933525099086178602708251566844415020797208881026294538593548548959402055596528619457069284214371392352435157646178260891855213699897393207590397494712388818498404181844301081529860541181054753597923822032607870280079052035338061220183727965138508000326322810135022912040517166031551333991831363824387667449768388649707425091632084276637576252050750564838156051071731560471181421525789536387907031958097381506568029592779203457160774259734916903683216263511511470422105765477112437986867069107453320697374913487273979764478091097610387343937641904187682153583180217892868133819069976587839035947917429806582427712883247700085945940612715972509342132371860225892409048759162967380649669180643952624733826431270073091325334764387416093952957834141963379589205271592092911401410778926619721838867782372477838040176385222517823445284476538059728146837935563182929102566578637972836485822850474930151293432006471036115504723584785233677881490930265628084732074091895419285774870787999929850168999147896176627790445719097835901320942732201731308370876546670127285929789028231715448286225388290159447673462390157952875378022099946129243296846444303380492290587446969232621638687954135728490842973765968602515156386025524323730755128719906125281066892686399261527145593396179177352307781367957372127516895689253809860875589919004983914359836998785788150521506121545041580328136594712818857479931126184345802849865346379627139831901921116715051512752954213794951683948587893669928069934306837207626031219697681933910024129380905970659400361081867474301906406167983875392538728965594846463048872867173688939879198625217852999858195777679166161835811471771523038775551799866609279946663355520515556787105019960038119227053459805075967382399132093536338658163292408077046041404661981512593827688776653819893392968014415694229932277042482429785455577037561022256610493767780008577123155666269669845319009969828948373407194471669528512509704459415962397336474006837689739258409497167161528834449376223818384955757070947865800392343635276298034214629970061696769812400383468745817524169845189938435673659291255198632303932391427229979659030458035277560514184563235299940683468123640760737282302100135589850134403725710744957290411316074350347408222184862734671656248657906645355405293945440374589548578744717103353773163220874894661933847581901870723621483859636074788880829126342886543661335111351398092281021552817196407984822396778437592515386592238182359084917328126700549062271489399045533726623051709307877482360761869455223332281435259773480838104749210284171455589204168888824198911314330031339201688473819180898312314161590777398321451936414136886559294192664834990992860069640165493112217600968945967479574323996020025920529995970855210808783919038690485970582469177408807163050164212101170220006137484508676081817501118246040644004801035660949565449829830826367108175532451168316660421541225253117190144884875903563204816585265174433412854977365601561841280513609419475608613010242046710792406818510297983134554411978031078371676126995095960063174619697999760710903507886958455752663610541911484667791285017312300734863659136182978262818122316446666509369202290758081848318850758394877899517957070364454707408424979229477811552146355744501425284767587598611761548332667715400639781465556052946350538690849419110306799337283283102550668469056366945768053474186118075808814159266862743064955566104568322289345328625277776649961911617616913778537827652604973923852021475128638020893316833214764123541302129369857872950517963986979763041627013230000141585215898043536757331732897868478330096964732314944118896256455975418051811989256873779768242779409384530463077564800134068454952954240201356394403614883081861859069940099673237395954843006187536139201968415794046756806915082807426799532127631363727240277150390916879179058677561907397460079077846465820514097216157182138056899843177500717092125811691230504623374678006583869110081323644133921669858675890662278424730522105019350101327568460168904506333397071478907550565147477387307081749039244880726261200199844053438386321576481048599357354972539497483369251448058826956582234195934948927249427379818045396263990979614189439523483014268660871245467940843184398317838316872789333970980826182931308784936057809928309324979871062402092528039900448134386364065863041675044369550040728017619823118257280661484847606073741965697161296514055307279890359028837047645611624368760566377787850911556743201805801877867808172869013800255174798560283964623013334803150662300009559074924710892155450863734152229737073839195694331023092629810481994631258250376353766751787248651542070415742018204619458322888109725108778254488029576794926642331011083801864002894876654053179745214645942671528039886308931096092698198418384432390283861638736767132973239883096937062052194988542108722159148027800041197959502106629853834806025964344618094758688536468051935028559623683094366695598722842459429570187310087306725148434999639637703146487774788556692240273407850507944883907160341876026833897532283936048667629628061810319303156662163354353475182221681388347714473390319547931334557380572458615423389242764471704331363589776940554096121001711558251315506280931896455794461579553273714842768772535791401651209355161193949405899167742412820525835364266726840276701349094976103905703032206713504166575220318244159663149287810409892209083122842521643454820138290858277507505050486191415023823127540150431856340211618272454914841023387111118243311734271126232405348917003868777767801712430283871864211986874614682580057463111750152339398523900874011107726773260386012906939887130803375657469458135230574282925521716708986174443330229290090732491073008741046778684962171121613036684012523822041720371253828456408924790366639449443503822809371006912656295100525352657265866520735162937805363695479100354204064896001978185112871324620035587472626948662553956774617382800079521778295635546492749770039195354121543763265201518453170538653281808282156992360125437708833189564649379557655539671488150340687003704824272066062784541942468770884306038632436159348363471792214586204059175335703899077428740338289106602369982950415849301821352146065117656553593153552305185674339766703211476137596777933069035950237157196221295434033614917499649595201124233542274567724831622966859188505067945360888287176466249815547875723512822856379145661250211713812317814870646320692510520716489626358802923379008696621266543448128039551094123872328898643402207225756617236160541785731880960963931140734362863057374089204973679998983982335586010126019651444453972243812466651011052240256760661002940604829671788244940013579911276725503110487469554983199148253945291939943494729730168305531237822247581543954817337898335036189864673601191310209329429424204332480878655818649593324600067766817552828545826267631579892627396495190766476698406162508549765061774460303937434979094850112724485674421652784555782681745356736365657711076975443017528738919855628499116372100648492890532855648510402945876753779340373505831689204350728718841440171264182202431382259666284714180476627688976349510631932817400542639753917112993220846056203941684758547832080440517103323763394657931964774681573052466061691880886048084963008737267913112935266305446894786064802374045417161106910961878255090138069831625345408848643313971436275281997520385280235620373136992566183869241197937128660438055487471051464677385628945804515515039384689020153910907514504863343622248038734794215980851744847775478256974033898617291950178905881204110140375934013413754765658073028759575640104316491286811712234972146929333579446286955171440413465190618322036328589242198616342020911628304479582245072828619040876661966861812237168331293263536944605865944922726740053603717383533801443388453013883158685232990779165250870475408801275317291275185648568964998120301684415747566455444362596233110337813846202736923891214132942859584048436048392503238362209399111785766926151298261045364015291136023459318854646079274396288643713957237680082199850516370326000274914071542981940980928985516884915525961747696514456658013599451934325935951441808523628802241448950355996047978887990629559877391980080806360117233947240015268537140988604017960993006472377770414736849470929656501780162537985240900097282445290304643830019703939781302595259543380791521311196083181824021841497745894243522679398011418536483168658144334956669962274713983806770544375039345095833903475708379108361326694610620673136626267170912599417164385183122365758416645610880444840232369272993666037872603419393878065635417302462210269851726979199617265100571018041277725843463132116998321486872411966409021437303223589168198288666121693791779066377332262741099171667501448628663946529662267516982610718688251536105511212166349199957783381454773291963933572905344348483042124954191884179589902879025217867417711423317006353737149100698236467973070272355931734202606404116346758357418818705026972401781532294230552843071974018590116191700729829983986883436324211934835080107641487953523342078816949507273181052622911176745147194297421127329789234517508192011783209154118925341940023140525787982207301608431717507648043139422490692569989371789018593915737445812960084148767231307799627118962622781781354989364270497008642728622389879377617119041538929817290348912277859945473882299259854349791358850836129797333835077309601501635530839929968694750688848027977231004858566136845320583980226550927315973795534559209776466964867141516904721143815525465333747971473092052573679550285379572435492532445824709700567002371678783510266260206258326599067723030370092699445623398946035947781758397415673283840333697998935336593721361057750367653061981609279230009645298047888465243730938586943151051907458363840992966333041761595065286986462082746846100659161938380577758902083449518058002718330915998874847093777171032648526453960457408491127395463836960021605322760100704318498760901871928690324658831129062009972277215310557426319355669175609027226577872988022128897415428524972050284801833267575866025154663889278067513668978356291734155564041065574698602419142429674070828744377212896873415947508757417185438948451378563426293451536651984557975145084006538165336378571535169622830446937966199573382644013630082473440162076318919770787962109017587823032937626177493648849211244689437111711399562073280221685675605895314579105663453341806324781785619404369841035337795920773584485716128050340525045902473396597051199999508714592846353968741859222069240489880311987619988924021634547663466462437404637110450176838792585384729777862358431612425216719375591097822792214723866949714969193540157320956633642776592105639504084695569470074805242644739115122198781931556832589670061087960152561323151801793047680748769472028818928991665241797454855667986481129711318179314201506990030024132721828317645257940237018540305368937242203143849419655698099149238811024378067050300636823909507348569844718042024732352807927559663551021306402942925981415167807999320227027516588724770929481278863939960380046959422776724375752901892817065356847869579127938500342806244767107022968540303376865838175365586365274815347086255430201556373902733508005580360304572163228792588706512313423654286117000003214617863771542048317383811898625072695185743189129764395412530841504533595765181869311948615332557087931308734489453169576942412977080676889140117756994240718343536776256408506105503221662153784472293796892295073560842436839973193727649494480619975050940442111687489693438592812942867642283082638781536970705665345104611573273084914435899274197476932759734795349365129839390285184340030025119460078191321441576660752208732709466687443534108705787668287458641303544541104821771803842280973142076037121434416873992797477769712945604538525725871882550258126497139450883808737891814800441624918016354604237416907956570459224208843638865061463853145115746583228255485809634854392172533375190311967974794320207925400486709015468851200672546218942188633037128296236765406467967718307372373574399432130650345251812052417056427393988124637227295424041168023681413721667065102233225017162042625922958545307325566720402969784541859676737056075619404330446795833515651832544866132732145111823562516448407341525307836213029617159700287296541684881062429453137438985947831182485375303278686885485856252204213273389791725070813208052443151289254861178931083360098268004358638948847490182056071738571558593481941593327921397415316762826718618654991649041076744063699922992138374074056816588306042172009912349898178724252575096474171314333524641544921292730039559668566968378401954728433296339730266623136586170918000659096622323711671601274350345417001002577260793856771588221847090790577684070256791627726350285470483154673171401066309325052521570337408455013954816701479244106682649671765643867718336780294093032453924575406330378664560419633733391558493354446433478737532361864573598709041254871055385342452148636907919477554232997050551147093912600958194753375328959649129033656288971066823159189102363858263262261869237963661232945316960587465191391667601413378598898161878060237256452769939825505955860229511802210356556635728184620431649501293601006504551446884916462391268726317279095699123758911351118178554921805029085033909054410146510067234991031811677403986418366525027224149982377709773785030502896401045488321395930980365692744185846404315820505086972883267203900861556855298107022820253779279485213211867043167799643771926077385622877221967120196433915516328165973720762420652205858913175467886560856462299873803170399333684181404563142122854031933540050370310637539859205165123885030458033630239194723948247098825981194603662530049833852279138060799881470259250156700794041141607321501397287846234010198926975103675833704310845246847606523397277626405113797910764150057818512913011420166480930740154065292233423430062732713279787821986500667395466441128244272495309250563881694040590557068838438371972576955830120593217714753528540172169579175264493436883579187176951996997592808454907629492923033509556680341688901738111835760439395466225959794471686383898046445594078522860033146985809433490113187733518320340099227042927070341942861300130680685916790145511467153353157437941525926097323123161044309141090877221468047945140761215018425260494381877867292876929663816738811112015380842114639629080703884879976010666993613518050947369479615933981533236423058454625799262927999302821864031077574755523595921254228252680022944604304750498951393915894327530525858510838876714172868948936917676354218935936185057089377492476175397651645428446764070979388738234267299897230461158701705326099445562299259783493374145721906067742378546981497263310200726778241608491859366387526562712114044188860749662702723243202951068988009909278697011968971322203694375777610009249381129718952575240375139209618889010028521591312276846930423870437902297367995369553725386081204192346022150241212542841006962749607575692323151569124604372319048109905262228203453991068336452951168170605841826141773267441718958101655111426345813840613764269757771310913088781549702077370318789046881103963933861908490357986995253520071691408437899940385497476082878290800776951853368488618327046838524157517941147274707996966333760914065304919673035426484655440737604846197131507438950980218996464577738469823925190532412344199184005618028414257219311697719370870532587044524621192689866953736878118328048877251205185776539905433092229908591857284750966728272511875180459555317897461680354642523136582771753696042117669559603593065765133985200753693088191807749207969781469291809401164963045779686687913874806571238772670052285405314940969112461280696378820593981486431922285331014956620922647485169680908585606610239281843360365228567681593886126775990584514408879228371043728787057098283153487132776190273119355967204301612031017426166917474016821643677867922199134924281878219571484366194810044386082424628631408823885837112271879364221545918458436832323222125618708288286578119162300772655013800731078880749855462130726239274651949445902551353134942241045365508121516466802178914681069068781427123244792568345537662783197123181803004376895981048176939475321754433870134188540938505887512032235035073027756351136880481684538789906469492938893256482218675176677891781835060126385028194323264202861084444822652921876191268025913920070318244983660580471936732582352840620662592461886099484800772345614161680482039048433056295691225763073882264563387811780217035365127257333330473091047694954278067323680676950257482375705882835572605844363895257160362867216342480198514342253463048897848022933839480622311830604790266601743672358117995547757405926773054605226114379712827241600570354717786857955383865467673353220794636497972621692148379711647072098452843301592937704619578417896873888709945027574864740013594731380370820386223990826893729091047118444435061270156864074407446113217877468211686217569091633298436417706409830198016995907262370402133327981010004776999798246135841748823706855917410409772311239145281172385198579184298613956987286179961487830034247304170191929609095691886205805705798471397479032726149530789372281750965812929152815899457083654730661445089856017170183211160138970264224080865685526969412840197775174707140128638653012851730759840665860054972511249710523984825814687826000889731927909018453010798512658702846189341400649159749459712513396991613119916930940224664722490312850766553048291686973637003136557929671219608759398739382776335531409613720921976417334937935078833788840755510969075671300515759198853283881028633262163983788394343586543724575085478804707899994750192160512671864721093348841233325889752157563210548268775061840608228376164865103599303515032429893385661676409563213890889329963754580995916469450292768394592408709870095887311846660116652201230901520919395694027293550222604649839681355207526267113234899159702977726095754753140710442082870698476963409932171271184844628778638487534619160053928966809454488641969669394275333088258980607105352235268225973427281620787617156328721397135902551836167321789528565792628034292999379197888358175625855188140376475020712097981126409868470794137460607644360310840902800731262638484417323003317950133080192602045558518228110427010855814032429185947631824583126001891901057344933872315419844580162830084745522621564075662356921466547529512640206342005073587733385216945758324772146405714999446712745160955704370742205294080300383918961674706902140776629964133694819831750781647165214816755608824112777216393663760215084094467194860958169417729558695840333616809135603508391744904793551425613917211666507732270165746382628558629820967797651836721875386987061297637574835513992206289511364174131295695874820344137290757244479932043732000661963053157577155025194926155139762058006130194952597428758382791287709125654219985317277555920790791306290168666101887272973692039425167584721398452650450553889365893629935394235792577425415298369389775501621448555159513304405204467307666767266427211728745730295691164931639989825661644924573640751243990737810127290657046431224575330625480728242213403268808302039841768308637296096273032932592991565243485194181491368000390132994453145942552041578218208836002332548623358895621459413239325496286109159876933236324589420299587451616013789879798621237139273928010449917113328111832264428005732388374482901439069717788198436713828163474331431642828976511310458754620522894260605687009425261065060647594541257732208474350343602854706700310513374612517058799744902110365852039605846321538273034439483816465461606187470140644236447838042200610455561997370547527443907307861831565178344909260307350312447562086587534897868752839178813737316083079120515093247645839685518070116277908683013035904048973129092482958584626660992536713999165813313122332830305435563468118776228588533435083921098066813022226683678830606433985661497344679209685081368793091827970021705992245420668854895929804195117508913848926502718284463078590728589805503547401601646446126809244334221752730793413764613550290361215562106391479769675491091171906448805377121073503512326427107031025010987441713010409887187492045107165537306084364905544878997208127225175722873098193204242870278871206413775544730583414309376647168290919790827118515561063829604987701567257368790484127253620124957573788454809622674056767834377011127831574025875316396186279766187198901156629961240495479621300187716410887984569010377365037503867333728221734835748825036636835006523960095317089643169598301677561953224681541572351386512933456684274037030609039262136924812535247847039382567650510664201922221672256062158962010379222233054680219523321281094040495990828565732946188142565544882885175376360279827782699542130317798323764319998046780507880748704031104955489052591690518357321363994944601996690504815530081376330882950043067893137996944861864418046459116104105672627734010846741642094766745490518002257757822705329527310706102120687875603568176742195412002050813625345560103101657410854166771138574870284351027325942372708349023493929149495025179520171074362510069987245938238715941694995903463099777558878152411509762026145827447450311997110630621688773999390508771710934070376863356237474770529308054353547291595236885265655846580513283149741449968841842147365384370708856492516553719997103849202185995485600674118824684827669393020552368457219547080865918187687200395813952013119328265327049931166222913628497235630690348053661497979752188042912906175436226125056722972480088317989932916161779244297583431402134322923905772538372943342874243703504963390141999793327851790200905502765759121693886193933340388561443632119723365413414074214479066334938002470315809191879428597096165880925965234434131262025979158194327796165751163140611997196279427894475558599466008138166589771204710234075896431350095197921761201037496042754582615092435045058787814297732616392288038213846595593294073884936642670612048768747768309783291237999760571806513419774980747580327365875823122396237180056865606738908381434795719860486907278223651753436022147696992306115236768891997448222251674741039803503243977955520054926558698176387123184043271514590692927875229265549633819952119593083697761068330695183358755845128615878696258220307867008865862327348236325982538813636119052714602059041831154878460400840435480015133376545046673988738859391683232172932598857890766005195760156411859903792474277925813760375839024926755844424800442251733257465085610432093756189412354193682697866004163948255941432580747668852671462640585872251067872828645611715721156239764416719967810763822749333898103687322544687741160941491312449051448266931072520102481286099836966399560818480271753201250836871067544393185448851141684337072050302331529662645777962785540661496695828131032652493671684878943703481503798190709420591143952460321939855461633002506557552158630928540234554182694060834578873204674557218155695517430104489767567214573821572581021774874678595119431675947973714841595635349288458489993050747946591148946785951103016638296841533163731599830645246818137331342646541507589523565351492831880907098919306317347630324944941799240611939962788820322139557484096908814226620799035704634179647925081750039142681366180682922353783540560661001076329387375946059140085708534278992563785406407129429683173822200629955988205738326192293169431056723961031200735163699080722324085585757959686674193356204704404881482099932645012443850316937439879517611047296313597751135591998585049707400193849212753703509367030153227059143165962872773883381295819651442682158367092042985742986978365673371128283428414989306286405765656278150587593988352815254008445729091014575617232339773291731719391084972692670746522708501359808011364631264180140292722801956708881128517227473848320630146642723593676158897570346280822729521683578400378280999148977264275131242628288860926667150058273492273369141144656299333107865581520222910754510644508380655533557769912271310375532776074263099645926316700773002171455653245864046442205842928958765858526742363688335149519706967591492768721395994489474860656687592462566650475434350706090568782108800778568419367855119634605582991960912231910060729067470180932970206182525314236372088800481560352773437526203415924767134224405297140550678777887155506171312812164809832233814421779658029454704071978846298135883143621259126839207891967735254810992227691478371908520181154646797947270159873695414502823274014550663735846126382863835309903481290360959792332774612129263574516588292133188098488548690812189376388338993615488615358536994851433477984312692913702651733403095956389886657161702467255729346466455936530427131400462686848467191240887073005740280191861754907363288044894771753097549277660291653731434786800443381113294502657009276139061661419288678317232722336902217948620490832412559690223776453269678456649350027766810185547045328419571141246985931339123016258677671780645872309155873638862470540385865832053008205501843933277694552475126316912448559270459625615022694458861077782685774439922157133608113649412692607320098437149877183030399576869246692099794690520077822400260736210804073731781707314110666018313847923323361695414544744263295686829716069191717016792851107501101482213930743213501063408723523489117901146695398410039494279065120562592921433501865342830696595026858605113763486551145192494691329432047089055006348184441499196768285455869637388284555150365542284264563211012370025051616256568618575458405885161799818776955522515799551533258440526880897773635137777002947889315622111353395582640422153525529785024258045805541270892708854554578494537423531915504411468196806186972815643102474869309672243461857391153739270850281836720152535426432246854167680536433571714576738556694490104601625826592789496081730494087807467095245227540394196269362668435394618527025948229650468470395081370104693503394797174590568385797205926301108634080613640612604328543037967974910205885881499336852379737733399740020367701276548906285079290355646077644061671372523403255966056877065241642272189769253192505348309315285729429754384795393594519226132361579380907574289735923772597558043655795742433548382065906808805999239292737063553736008520210449919574245009802710661676566977910313867230794528896067740704203707506517976296268281164590318615396106537530645136967626648115998922130054989992908226726095784965671230429462486165424054583078356579554452674368448665375998325080214342830664499730058598037029226884347546806475163722175101471863154981617878773117814135228334816917240613922317282393281047154419416616361660055624252171668209617404930218473961364929289703567884319991001671232509731524520886492828959881229736777226824512765520746278817355966592433396161240785390522846070682343082651612102082460549862567774221240456784951348019347813790022147009095447665916900080339917413300375802185890933214268272651073507356407222118984130053959787691251660014865202704298116296010232005063510441537653367024386925938814163482735980918400400262135780500079975761554285157314099630452090964034216857881563473132178282318851583230652260546585809421210131115733316473077798794911888616860662060965254010858182468520711001816791060115020625958289032464644259242759563242101287415179068000507773349242365528792232419415058041374682628678898694735315465128450662196198463428313934375925540787291504373281929493501028999601245478590977336422637417262623131502352657623428029673137258339923243500122296637425054831737376480862625783885258707872074488381185435032740710549578086388904251300466008418055620974009110150427776215470363016182321354261160559223209925079711813861025945272302588309271996562874748054388240152265780288862779384896846128155508295934723284969223154232665428872502594701511250831461534398528639046992660866334204300301874585686486976961932881290251925344129973719029546642898567389991936457422791580003666419067516436741799299998098000174215810840148791527908183438864684167626241369409268005093752627248428215835281593660526608364233332595479978526568670924851774667023116488472839469331364970997639335965042093504257914800356602306927437496503483123352197326417350895237912486237544636433057284054443255817614998358396683378708545596730561209533083313509684098098509975700948552491970988629649073568152868885779206411310401086051302600441497061385951282725262310374483607528413658141621892994363918133855383532164924377727049576316144763541073058525873613251185785563450158040889045694495877933922341220183883622672330550227050584581040236777165741750447046413396841962648029013755621384010281685818224302097197960013528474606943874566867567864969876106204507912736513946288258590039348636364758646836193653635650785630257185839755297466287308086736692970959663115912856480146946007416746161539471218359279425300743255676809132034459190210320113277400501898443748131550407815420922658266715649982155290959176348649160917934227928632367021608939160379922078897347892478277754588660053753078177319912041433537251488994894046146995152889866395932749053564889272350946393729913050391192795736853388051599799569217827247233165930248911877231990260416115934108613734793898474291469270084509499346340918078487058069860039152957826657272447969157537279366723275411849205759582967112292690088491922794765450190015901869476937597670451526701619691485582157060109933433269156978074343756809779675934507297453271146284016028447947931433906659298327969687665184114222436031828867452445959806547726046490650448749657766993643278112982874690849293777316173329353867486377612413385668549074890106640559375773070802433852176835063534439323537268127321152658756832559286882365469341181443611642928432280082683517529725857151025259780320880476862576943390427776956278076659392475446247332209053380912312568724332925137057099845731517620068652585293944831638668440336292818096388374474731158903360315888776328465419106117942447140470573185457263593029132753138602679347484485213790942296669456220992642793939949308517222311257918847199026869001722509068898238678253697243041988908590142179846541919273812030022190814479710905353848110625537987415333481587876985790631805368595501841627980401352014547212403035016018441546274128876183667479665321074639850922968612600024562779816544464203646718140945510206662241799387339843735210513512804230621510012915746241085802643770886801365520078611160184755080078754375449369028829866888901055506171759109269682869393960619541870062464006301255451922620656216162049756028462711807482760833340664407858739544987115316404095537608667330057834922364472164156180519982503732970118646235503474735211024345880466426311339810217226518606096274857249690445482574144211428136095525525384429408072090283777997398769710154419898067515293811577072378240219313484960544236806188350761664652010533168188266427094100935893735949321444007680972011608998604204571597902651216080346161363753588049469631944379088332030384361764812754640144699646087077594930579741337682345577998128967483021331608560099278039255886264549876495212007227401376766993089148900538745346871779967967742004321421512038967152641231051361795739910371795975031300460401114063358533513160709589016607366008197270762493017725208470709190019847200082195752055484773138480618531947172022326848082346928385708793935400252037192234775640380484508008586211011350899121346771090049551299126722616546946569397901266952909820816159890371404016649565580345886111621221726198727498467199008602541930576318519096461991356830863818195378656305799031213646394997099073761027163692837859953682557552636975496006986784964832344451782072430173122090046534843484311351345849884995256873929510151617778368626121773739291885529400057219357634395514350481181845990798863640432296996734676955794500884683994845453066960401808832626247415167482783397518819488951271142734751929513998937946619101541508924550714583362220948190226574306898329412282625234548278832799216125035208667676797563508328667422987591861931058460459827492374572700268667377353688235203701527085737252504405730033381118463434786724428311446312848923043830766602615666222388358849012758933426099699324651461639100014220411077606950050920562264523572844163942814022868033019242261452866618241420403295142771043466423411222505667166762993378674458346875666548387437560920831730061127704707442958005591976153268286758406864691233329887720005115929863062545199011788170709650466555842348002458329729271164764957559874696288542344616106406399238066105029484394580307268450469832207328285139362830203478981736530253988706032490412580441987862281546476212355482670497540567239936971120688855159231844867148661999693029973611241501292165954515295704471854497422278384463782913921810351468576094637257567436287261787376694603044263805682161901510279839635462200921208009135839305638982141612020812768353348784934368569920739420413896653866815634474294276048610031820414374987898803191268417678112265677794036022592552224529433712837258232952957540774105292961725796597033361689659988818025397077862683564318811480080163739482683604986470352261093793433721489549190519634278437633853667607622435472638422694761958050188701971371966870975771501700692080546815691999552830522558820402175122163486038734412445056341570104948660954614813684364995548282580263519597652375950040785017154391871885572579851066472765910055089929099794485679045080931972703891987168054643524183230931077495309281205634159873258141132012213080440126782253895628643377609659971445850561512987482927911715093093596896795794014617902423649695362656556480886184530368769875936510105616864845589914183268737020986583332930504438702293378123547678129983906171146488262205419000812699910256884197173429124685191160400252635616977984016053810394457245368494965546700694368992929674040385247483599569715542812877227737134510751041828643416446323176475911298641787846632002601153047617249305032105678716361702810750504832119055186354459116234390668444250380164071969374402183967604661309671145094221020832076672824934786817585854499327532128284705813975292661667529696282699735339118757565881274655463836801424414234040206137587577693024186202202339807055561735678193715484409234918775952956223097406920405062154166775834666830221250199025531554617136364015951355339935786171852376796699059807523569677911263853315971424686990438925671782761036938829137243630427192128854750117674410905646340355833163908072641941957580889968304811909014650974015216943842569323608319514466435572923093344536229185742944857198307443182672422780010990891327049691196514913892247525741590883415547777224503058797843007432506576373762621745992142948364182622981761653753024826877682079978715526918688993542813162507712383377179131600042554332517199207362580154643307152012079892151129518341404730503807711430892510171892485769805075831701379782549025461033116440762435109632415384188515404060058236275628288702139399019752592641673332503078390700349011956168217634702684935935256454338378031107046112873928451729293146694666415569971604113635888135018198981526433874557046043542704631766372069661512880103811901736164321861290947803593093518472119008759610277351807503411940800721939874406080074847319675226457755679700505249724909944145847691951571073787905501927117652849508722665567884136841933374754176975300455473738766363199984413085211994292294295946165092610701278139845281736917774911490536987234695393811869292780179632944475483803847046033720575236980080782280845144129204219234994274379102460648434907934135612214360455091528039094028195062233168359170250931032927936374047296635530773485660596703220735673983036123634587825048104736556687728294801506174332484029794101819478261131297072581602951703450826092349943658366678946487308169855117138975919448059251836441113020059384312087204165196360701763635837318294862278694157927373221213514449270735531851272371431343364969090110505040766559400818084376385244277386631352668049546731798214374127310944404596986709003559407513398071327062526074386818844062739119436444549546138230567044448089473939828616828484252331218734404959874755749781715267970719627192678565754565009372694880639890266021790986268228532732672759076791726001402376060735654659101844049844208764239484222744411558514582755866410007387294290425021139265251034927723774341416013245561162603763452985205518996559487247909345856857801692475095170051670413551733250486466970285281994484026948250250971795341787889181136822711942129007243849672695478124123442828957260268958823053890771528947588745434641182940172649711713067491091392127136639991810045383399255085008591721881387786729986066766198497116550249428842046943127518118480025287244197969999449288560051026616964523890947799564975631163137594363565172274679772940317200183428771928633759704660367174950101474301555929310409391456640981102587905545478541012759085231881853614947012567842070413848748831695698822769472245440232530134633707905538604536646983321628638914995229865445186222469516241508027172376409345362483998344438624830173139521319018023487673319160195734122286580137130135193132861289584255612643021185105089046950796568782325878290895807257978432857761838536528041203703372495198885866680903660481673187301840055046689679421138464999731724991611619261817490915968212129336283142720641237041317271551417976539206600424306398095786999341984354226669225169473319080664451946300110586391768996988692829354004491848594812282910287507456860664698925397281350021537071587054811233282963161098688048982714842531726185501618243586548213195165485012290405662200301690620881989951238955117277386465743732663069653725501532081992576645345906607119006606142367023332580294931292450033631373802233839977312962838035655842851718283891625505304902252353828106233129628843734628187747901060361346076597208518135333964599465119609171280153478983402152213719484079325000044460222352347110135449730018830400793076864945751997495869041633273035782203656555127673408830063486189283549904916599050546379540274257224612725302126117167256979886219536280819746960052117744347357017183167182864654327825854762174504752826213146699424095372800510983672734723277003824604977294819950422629083400638751803299110027807770827954569021818176190554311916261710430493346508147048213414211590815345981353513306510633359934190087402348071730837228456894952951919368848094742292488513627559778647501245229321696385429907153184298622644979476332434405594586136481016462299313691143443607055278869238296189060925477426149714545136005532529772834499835499025430259784151791905264323613251609691749111839936604399584786994082157829625274906884089545361483637618371675790796512271655007003684136510831297347707434743246438251478010166439332813143641324348270351058857392944200364356360953042561500287754106284282398622053916195742670479585791491718632717278762287941149426799603260696793914963478564679253536433194166662634467522035108161635580001527099072020049117547558940343252922658560128495151382636941232228443331008185290299254293692080666006018302034052984141932133440076699234438161315709526862182774976803291534088837946109005540467954768766583547579012119952206535570511273741481403388905146727618911074576736311863709604226610862086254647189708632534473912969260524266183356308360460535201308885101805904799353000909715161016211491556103249044671443392889715792362991917937165774126852432794517900889134634576644972970696720269371150568941756300596849965032900949437611136911300711864174963616876432402765874724175108813791079037390330964745904155965984983532641762999090325801139752818358840179871979062981371246606649818458316030253939778236071290853929011331207863789379580487153243056815640760937109327364515488815118061780599659587379907048883302579419255420599984685415337947141884251871100672420506976407969697706067858237443851368918552351487066134938072663346001663707013190596354728096659029394000388570348526990345756784127363337629252751439045885339962727703383552135378773034447767386725386260453626064782697989614278160279517250783410851615031113808985845125633939649751922688241686001467765434270315429295999200815857082913521448472829902541098192714930693420575497252421773906055627688373583606361692743965631229853072423601845959967504433309655409305292937696118217391216173531758235423538339701580597744722842866249884590328033116207433473421145930958081705329522630858137252694895787629747513845227638883646352845206959201125925288637952794246727307611626997682496582207316682827841324963531622396735860885200663515286573687192935323128964785415169733270296809252001224887242073304660772002596918594389312686014587905091542806524499640844839809500908314902400431784412426229833193277987417777529274696123591538769850811953744949063889802998954625599100302120239848243998325686437720756855558757565499768927731079874757206971740117949700948122823064315048677471125569555369808281632773915674660800227571798587430311429938243090821178693813760745879254874019074248082449235682556968852248310293984774104487397932159400544196427912776975437898733852749506220822450855113805181375529832941199050709305212906573142248080058575751424168208371650878057816934791182291798301023300175041323202978174760487527063678282606272005442916974452364644578257063635788968956784970662472611104486716708582750500755943424149673597491979160052617041297833272784581053493538445189097961303798350371106317985070919751355977603848759946805474950518820036183020879433134366379138726679061041061555242392332418667091427336058077856986404869555810683527305499081179754806995351479562081487760305968916091389694641723986805342863108453800274748658408990936042525019219635037818705537311569005216537110271199062140408743816851690295744357092277884901547988952277844208816941298101356739212854769898904202157726211522249484010507640220564288303130909226272873960016454321902328055750500736267976821236426718049621192518895067365655531650272546310565172732522392181042141516111185553679642072893199360531577008031061728236692883374281909405586991555099539007068272420859152394526926442639064424168824752004031703354073430821979553480964285111410608676930027730905263153668095589138345598329455875747272208476342376743760974758359643866115562000330984083547644874015044803480594008390962305800124937305743137935422097614128481092810746241656311227981696645433009147955063601200180534064715886245593710209366669530155138140256458727100499299189291454186213411065033275711540003293561781416441753218646114068698605732429913433754402766861883010747778700033353303844018158340853160576813194514723646845221348418841743401221366312133774519357847515263422069094817671034388000632152879486655066506631076285460076213534710183491013790692134896756687947055969828276413242527655979042609491520657015585788514316090731227727145466440452227767138914260663230656144636611095619320784300913471518093122203877759269801427768486602228791769376244333800502593120686358471628189970122356793006140352598452659158296938821674673861245262977467593130351572759649323342302241831617064785016330322466591085387869803041343237141602602861977017708896470660884913820951173026730558906088800101914242209290432231976107969159686009008931329719404548457558038604492998169352527723580866504982266309892153370653161165343017432468325141383454143692233352801239191271420079494204945177886173643230424069304485046085331232567059802861092652141769563733302234790103477180602380869381154198569354824515380411965994632773411948829943237196853260966514917878347412551764790007324789341534646024093407899878229272784906338782303008856334566137811059283191268715292602915200695514186143363726300267388978748985518103221246598038680244037634654552747161013556957200675455209902173171320592316957745513795163568759237325477252735853148250662578392225313422560175363152340512902459834618656602882754358537476268844599149188594207550939003458491960553203641352456765030586648899859410476086631056224152648169641581163282160335819602000062678389534520861809678717553850245810294610832027864239871146516429616265317472377912768086864161134382201940539052666906777377846315778586769297822423093814977071195670847075284051754030825177401263134480645619489002990008507092637304307045018856812191553651816869617190636349621608616417429045333052917992479169659432675170957830534109869745755636010620437033882887943237938284331102432809740822402533138585326259229474591692188777137194473176116650438528212459494126537411114478070940486915548033875705268314704403619255032135041065447106294808582342311752253309364888766263284414963895894284464949079207380988058889691159606869375822600964538150604436510460639604005828542433776507167372996928155850002848138557747480246386545877339980953981060026141075608623077835704775104131699455275132781715137635990034400040597550476513931017964531998619033199620569667838811208567202953646766656501181584447862522516760142130007059868435703437071936156067072931610756220263696743667071904528405313811557561325776391986936759634154494388663652197976289886672117147969138370131929347703482944716348022508217390602028809035911967826908578733191727236719454262914628728868061731705777997620977174769856282863042937069115917693616794577783276427329904972184779968117775183376418370858661083133897326429644958102891305280242757148249382492759083325405089723328269649964739157316795661978286301290578720757543076510281236515960936956200358231292855190683571912345669532026785267156577659983701391157288136828088455430485778893419116389481678761843265556114960033991365150676767866873156555004949626205981119760791989979144335572932211224508840012385630309359249474757786680741627525056228554463611122608647982561295468464606523539843055096896709633897732273641407232124018379152527501200714768310145364830967622565727728981953934449790327241300927572888865795085189778266419328311214883763455671180746727474235304933773333225103510616002971689053390970133189009434752636752250586300340543202203200809253340112079544225269658499254638560116929827696944909360474026311704628989719988807551010631377287167809730091807177770169219275386384139234415365177841321624318742846889449813905537003118497653085370623477526060345787349220695199984347823767934780229515164563989814356968050691928227785704281464013975693688977113674929157174673088154481530164376653590148093920431910536422017164692132497789659773091005839965439076841543840680837191392997640210509633297303092021146640153550448523984440517301771912418797514234050874685984092659101965453267763831178007085579916912691108230117594019189093773989420024155214642912669807883794053896262175931379829755408161614462061666741688967936348460280247267261712018841614149596088503885126606694745156669705298972163723340008634685756713749037979375105230903726106898891905029953353697044381416040572873014820674542803210238080739574664065065691085032144087496981310509996834044039087202418369860822652550777748017619533407725125978724420817501861046657354673950532331520868469850707554247304841342335867168936342251273890893425330087799320562436208966753793608976333604748216990332242344703923809459160714200703678565920650630081788448543226671593727014188158486394421186772301502692159539872499836179767325784759455109023909410796688366925390951029111367545159897392766852676874730602993219225788923117538615916895944370743471840714551174271676578736316137370199603832685443099956617816833508129217741601430733467949405717651699235561159391757483647342597558436065756064548381383840887237081049098398147334782736594962370905030594866819485794287679066459872770372800725874318449695650985830861635326440685251435045373853771132482122201994504630692996797373776420159418551698218947845664096286023656095606243956628635469502554714676885226609858819496186079549468071644100442411509806019164571485111145780458619588779838052214664019032464113436366576009896455066126119918862373668967209296400309408090225894949262910458476908969653880350610037801726439920669062079792103550354460884693329390958719583820690395481568969815232376881296967853995087854472561950446191610824119978418854074758040911607456572261224549090210449662782408176408961059281007144678849786477526284454784807925401974082942842209937842045426227230889729519796474442614569022505438921297617039481789355691463160801495322642555517794718613679306691276184142623823474311403843900598804174110950076468495216008256649422654136547131538180959683834719501622579964586365978905241193499634957213618620238286705378975925549944624041249833346348155825586365695676728821792254942687745306959510313490813391530825388993832978809676141947501092478481626482223685505833066325605147637307159664105226995362774730721036400184272066255178790108849998334018384375469353914196437872765260736851354534456682198470141031371214037674774231280353452932886329019827566363728628522115392656576159779315630742512867526286976313180191182582575794078983590868759068566124192074002243336787849880196066677563193645290543138616696451977756874353129132447478756366704528134635398188205562319013386875910589189810869791268982837840932914161098236300710846149547769010547293651674847507290748632917317318210182210937059386893817902704319216387674462694188283379568214175858806560787346398351069174628346600487757357937808915846789514912165034932576112734186413659126014876925762948594029962763830566077435824749627284296438580940188865794710829830163330191871743682096555270094812597175335155244817942339555750128628628420923604890227148283524284478896125413300289527035688585307882159044324390005576538606205357372012689018230067932094814060962845563623002114789654060225446396698319292833863457072498942467235323300399573264986242072471620916228544313605970129683595511585355848080936796103802513530513286497665240130741456195685704355019045582033845829847642963814260562332980666486437018464843900962944571277719486163271806868556960967816430324749457969201403032722739270073223122245008219292077102445021060453825086783522833515584865014047518012643304876647542040362629617120078066157358268797084046063927518680948924787478438858543805195821373718831417102306157716935435792075073058949939565876878310061672924763999788227523159066504035314545059485281821357310368530992580772664083545856895917211953927465920981681418805395936768577756576780235991762976851622587491209527937921246403670813913932104922490511699429523033305741745174165407259833320041995165146834927260604346349379169476910238838516579783308569672499648201834045911395929004962616070499755232402545057481374801998832305594963468564947305653090423451696436044132794886049338803381200801963972279698906601836423190303958523771881159223598833640468490208964332346202132253353541399292347899469672067971316301370099744926025719128465453043384973133099871700251374346652073044362720151179996801661290671897538529089556357286857760452653178222685156866821844435106519933284210549963609120380927497481768672828441067967833457105488433373337975753947445738309872451785308838619191759347974464484565442908839130224454146703804855765277060013796917221589648760213628191166785857708080198131966071428195030639765019226153337280023697002283976212727462003306850859892423746292008338765252345026335073471902368654596179698933825087828709760621355802111659219671735805825123473588840823180594769997163323783347998458913777034562313899282254683964527751190694051092439371887800634920341938539498848572204848450410550165199346482500247523953658105834026180200411237451451009304285859144973898400319824257998753508374081030712766892520722896955770009469585649897508774826373481315470788349129926954588408971656745282913592695322430255032377012303118308084095508719482783055494677861145343570799798783778178533248858756332269661060261507110947094994924428045851701799245369739620518556016628624575288525416821240919159831402370733041802031936945189776802570715908074186102598336190173979583425004685674704881746527407034227828425723494294959374074066775462804264095661980542678888914163716167905921245540172294516490427352130540613493427993747841518503729381986627610968441251428637079240042164421794474833433009362554522326990971854898883213417697709541474690040438750298147486795411757427257432530270053410474576092808674971277836538746119507450446776661717137029381333689626370381722848609716200516354094046721369731635349142491786047444898695254417177009083655972697878197212426389747235488994070488057377500299230799858931029398816573556190155461353928389420274924499182135507476789973172264746621169348378283599501225255785584317437579485638622796982469692345957862036053862275140629465191736157478039086174663563518473680308286361528814965747632652781227596888814820415087207200964887032783840148231536009253197971949705871421343758622672732189655088626966076345104418968281058872775519987930154652335957327126192839985524130545109954953240940090057836542958545618808747779048286700153750078818668322741759861224786584777126690761303974079972700564409623357203553547228276264363733395113120484918126342685742050332126860347884854358602713650001642918731342460044986093968255175987234455259774557739758635234402862397181332849798028412412827086518191195058772512756592383138648672092374987087660654766968319589441699492472345094286695134512414192673363474676344348471169478020551441697022040324538982197126418925969991345048526054493150817032538450726983327141853602267404197556944228038962029533184024542701066555948184075125017707010074154591286317891762945351777185021017046391275953604280387780823443785230191439427324275026113790446152811128626603750692644811354168011291218945199315725149159015160576224248887024290122433850880162492980370536898401900603835893388108781959950556656734325849521225569454986286884745195912062950173241084294163223909701021275238154755150759795416865240966466356446196929320345031529717282004844977930901300519202803447298540790518738599792376287916563941984218015111681031458417763539153803585392567219751346571294094714778077795460947886358215354676005939781291091628088836267879622649355806364184651545284753181848276106310424676657286228069734382116473798146933899328450324448956605108994070718466683840911467196690813352956329808588652714505357456586525482464613076117860188715578745966784505654924848995188094020122555334991064414277781012628999041848328070630059762397701394568615003177860354455358937896998835088396927518783434468685862752912074124163996543923166553691575978910215486907766994242749168109969457145360524935149607945489473616748960931059010045227981273364886256028229160531997622733489934851047846428584954367915754925846920131945436792455306660287478700871658953875769659083469882037959205080822553501069536986579843841075381879523390827671112912971703533213015408903052554075141227512501198610766678433242001764660550451384952853423249376259581032254701026520346699392738428043811459666565398004757368348165431564234011835251584703468250896396030754540713359355806739175839480994460062300490702070651444081970270116498272582906137068758216055216433406944566114928067088767584869498150190900439831585212287446178958477171976167593729145213210420457788482448355038285808069827168453964513376302085660119585661978045836825807295876457784497088664406394995715119665365085447238080579337502280682256934275177465030356373320165163134748155420904135718166964306504846792619562206271174844095807346297095806099379071066260487029366517551501625801204418699821711122644330208799274751303526457728121558350884008538505141517633088241705138004171289513534951934520983153561125108636080825691451227630496025615920410539465435499822244822852223726330389356318297973972463615017071747400739927253857954913846302687416509769526587206618180385494360309565497467506004837711194616181876385043053235167590214915726846220024258292776627010939385784156260410433503342204155080273646186627608010260037294344244114740114241811916449180300703071958568989779241970656443291217116083978556137824417034042435577664752471293692128211368175225959693703357662597819961745572416923813187866822516037591377733775542036472028653871174448321627021705544598787296118566054768701457893271408630037790406278236906640420868433090541345663336995176210459497048215579874229146035607374603461993914626915454829249961265614243367529304725253985360784888917422700626341147542067444935500699062510105884838183679975172597044232653365116601911341834997889626977006856261467004556489730171364036167913348506310350890581089462479070942280483170538289642501329371684906247412540793029563756631286173026486773252370795773043463494988982220681284553534076476888243431489989219596407510133166277225439894686682030582846391721932414200200802641736481666085543459411463695497605697439995728192747920697290326417912689688546001207943658412056197254425058049054358091292290536360016333141256694822887486528932547117292932702164632859421812639239405334563962014074326466003266494664528742496908232182418088514155006005080630244795267906878109144356420429920320436993021330331583533166415011047919196770871190917649242517989717133267203259498757831901298104367676634256935214523865835461132496462108948296159766363777630051360774198860593689963155751957929721395151922621363630462062986639119712357811119681382476389952801405345537681562045599852948564293144596407314677031366976869336697252125702021615754108728227386712272704591123213697633515016473334271078279139319259722906154000416498591264798433556119829881541215400318949235796233786790486102659838556837729493670841135950981741045414680506848693002769090406087460910657139849031060573005702254960337701749429602551436122416349219422619004737439755372813690309876958580019547291317673225950035773008416493378673684472493370301892269220672012864797658959892967474360488790332325323538694870082996799492044703594370840386321136899578059121658021415887633443773644493016625533689841492380944763784574440103958291420254035942569184040919343967459508724205475601452307852496882977791308241965295344240494508570752062856017600851982675836727659072519400660095779800428439470312882668468736832791871359598757995805972300912979106203775005396491455019172071857674815640801702668130924834468994593606602179202394649194436144292505324229324576702827370221502343897121459144060837024539418026480220669211804247157492852283364450671343310982125947407661356709768222488586416939634944059939883442064071524933584195534890735792317971504061760906215317495757112765892341873621077805665434262679719221497043146651385817426179345547644987277130289089933587654250271661043436483180086932587001571357397189340544096697840139578265821052819764107220844498714616991452531046246399243906608230845691583402607766670057662559048542743082212809195255431311229552847063261549323377313198244013185780721024327175737833146845831664750330253650599705513277200686008837822818005064089938341408040939656976474369143363466895012227716673814343471161485042588956303582354740160975637597620490371530185549287023296562662745486251254214483232437534130429320433187485269291147319089114335670369218843732475481291613417401385827940496296851234701706710624482588943716942041767874542368358599274187138150396943748641653636811822711290275204529069431273146087775874674657118303688428176363930695867666432755448326018357559221336495964253275723560394249781325970908640314957375196751644409540306836437330595290184725764831984795426210465470312582855381960304774517100023761649928885731172895796357888818278456141010175023788565232565174311820567187724075924221103026449891225608350383636250388358889547782610279317854162963171076795965398712482209112807785186845563233578144073415994293159787264755499163639801545719403169669693001133836043421698196572997511326868900001546346306195936751108358757251970272035755785091767989737915153923064316586144317125000051249069999951705927623233008692831370612437783981099895912300170653653785725105578167968523483728802847516848158961086658800599809239730970822363940317735933928267998516410425708907102112328824605481391471515027232626158498849740859278631167163623721235762878008966679759277134609136657180101588579732345398765624755579344471786652850268640674406997887572447282615354121712683354077407081465506362781917296213657464742550923553041808127033871770662037834171867959992213098972597609698011148717847842159496932534160989060079492118294504004987435364380340111798177865021551720524853159357472239252827676025569660776893962313174233966336695536732818650389848789273487173653824893389736192660663927773518805290177358232823332429388325686783961220301029490830318586243292092491444589842494195136564816742143138074591548185013864304240716293191165166119303261976448584747305133870815016557759669954772643366293906293466592693219074013161768403648417698911334509703819209822723671247717003090792810266529210837492638010413800421241174884957484230058779868974265127753758300003755087265398534921981931242565901658004820246149262127004009749956211286228825638962072927917629647904977127989096399640611485441980424293746523227297462634192926464331409819790222679538216101909356451274771646222563110722161494184234125217631305047427853008981013808098923381153660259262780016731093720348335965950883836028612778943556032901396542080869959106931670762884318034017314161562823367430488346703420165715104067428176251710655452799112612635191017295107266773319619718180971239376696391377698704163113829594415179397530510037892334583627415116131284021473296122127304992348913682263552835509288372626868684716462424689216741729629033331639970187998948887904175954331470298889009341381074309173446822564673684333176459377439782180176151558366854499923460550728278914494712284682047145166888767883297055624913284918215336473989501232574772543881148279199924054622994932684861182231949063425475224334619906233131123904005442202440039800278907234553045014551380803983353931527458578940548008173333712631294906315080612919317697101311650161951168321150766077807415862543667920247601446275623134810488419259630538746548622409388804889250475733281927511467774710767258394196170319939692442030446054286556812460611647193006490817307664001251467396999844052000014273899931832713476807279731916994352057495736173081091815747780031837103864761822791910355152878926931555842852932312979141150726911353875212165920306977476293580747685316286272946515464436800840307601509926423065965769160873101414767637369164030878558566119923153802861940545293674430862788074265812110208123864712449371105107867179620688378146376724785910039787624625462875189995128376252060647834031145980594589690541340900517269568857510476814158976447052178367749055035787861665344973707205472304174688970549365284736698365007400922335138907815643375899223611901947824518216600812172017348717432774104957294863544671734691526250572916750758665722479020850102425358288726102692693735409348835855866767466981341602056753254313454392412384536805370157161726779291599052707591345935779544685480407873644742126627169797552111744392318952457063233119110922426573293398382887695279249135409032130993354208542619673400687046869607067183254685108511728536083588385703834010328294602383152841680194606189840966360868461536873751732921301824277326599036813470008880850528412255320360187103338458174784663836054184152937215819491697975146863857320579891651076508343410053476919534968303887111763625159511628257063043422887667838520831581442290593169108679516537129662348266353278656885418491096958534572828654514330899841186714072433354857639854845848931881697119946167483302086017721713343032691420311615276346652278224483635579673011576028328149863465791022088077767024123366646807106342242244355263668873879837218404192024162564750919489384578759975025376928638272484124260621451377908516610551136680835181322301877373430659901143763504475652493546351778473480950211943547577870546094094606675567347483584688741169813187473360786142483102929829664453620461079904452954690955426550014546806211846540715730001260050932681167867695208002980870245056099215288975284895942275579000202606348226639097183279614823881738973761006990087765109603195783476796508589552588327952184437822276931659137562628852169180093190677548532998189075209279185849135522283846518265496653138570392297266356260310315912016223503366249224347459229249911880566440780155007158077055832743978673263787970759228573370687460950168247734829433834496003317838965984766926283504105026428602214621671159858922258843352342019478674428891733294057146527010992314252878611360369100171412950690064223168189491044878633879961257703514937114206542216744260658292251880113596188280993103927974248797518424132077059806896214704169026571376694097236009619438030871193419270716592450526288436271902536469178113138719402844782635409742678886348778949983176914331463395113971258406365791032834979244382411184956277399152557772027752027946742297629402106827147537655712445321985607332845601916736805452364930632008098323513680133574706697523202666710467405025585982819045635600950645644891664702137172388102267632482017807393169602815396295566198705139079277099347257130167518745076661370452834342262059829479684929412931435194042285729420064577726152365846118341878939196937244866210055129201108628048811475445313680605993050663702670547234669639646351354274930854343906899394148975131769319372235024795335797469797736032835355585409324901282193687497960354680967221969947709368361377898042350870254412108003819125743487356590629398370431172477106639696898947255870998205472202858556949666853094726532189026162313372533659223539066154878787503777281161712930411772416072773133370475517249967960440283925170823341827609970184197198069311341001607580720989254931359159927897695377891775093767053239259951833231192068653654372911310014160084443530524389337583584522558908088583125722481653133827408508909164628905202601528780200763972025565261096116245621657354974088825675361505219814993988823712931170945998002179332296740592499430990227019046159096563865441015481965332174060393660591491604649954985074106945169868493390413982064972663540235174952361847599355556145534258214717406128091027043860525415942607432794128784671368266872482676356996137089562260754823042978365206457675620431779822135471916587674114357789355078399455117205141227622787610258962198058471420712551577896673785190889829016980005916029509664370150803919993151290716803993212555379459984541599146730301759137758047793131625420808042088582135697846382289018649825328125639451636672940819314664351667520149854563053910688779341685580635763692155426883574813526405725583935405092876185207042900891422242116064444963367764028817086343241899027362823245874622823871248071798714053029705353130738257508502830730040160191490680270906460537309218137758420040505500541897793705605506819401711807249709295564746390767409068433939972349861268768387492801586122401788866148173910807200603564435349906193811854940062810102954714038736324956912002927998534239913514049210639023410469443107742157490398098682773414734973850404606091680325669539133157023771737776215888030645274119984116111275841116089201840381186839532639699578425408105153025762115498866448062846456313333651804451010243400802449729549547159672988055924256303672792534098077259629712459709916181839833201518933482272812368834628446678279688024756272343123747885229715095883600173778353517483411871025599800203815402467888393097873556572485548324058206278634512468435897714413813567674134809886100771558932085450653087895941138134967646985423433737350826603787470416449250878566942988011778677062152628685377453449459615274420546982178333918108366636499111844563123177724270455595200927524072043113689934042730519606158020955063759939052006199344051809157292652939286532605877139405801936151862832563081736585519499798330210319986285074657209429534548523621375254614220774889532474195424739620570113238470318036869209954088861121786682820584274904660248791104311922738291585215176816791470978970141200140241183311473947825083025957700052349078818714322328539520209592808841105133987503052433568162835956671470629380629290486575895684268105342556642584373185867469482257080840770916354082512522433054151739284631127764562895246314401075786182589439867409683981007844007469013261063502529663707637405039882056356915716168008858831116198151871426099139548164957520861615316046213834440514897300547540389453766545811007591399638827752049397976019473854115120684345242343110067254031097820727557364634577251857579695068209032749808417105663710038673733491728641648559818344873702972476062492583951712858066654394790303904281634835689088124060070297875710700156516147361980839833391618722647775478354771144207264647897888429553925102727127461908375398675706470516147593653726703723919829647794936617539933399494772287359093062460459305117728905339330206683953119023273993683611384126582306704552460089294746238571264891016241128559568133706394131602756779005070895258587514437889371644135863369086735062966084750078316152455564696179528568600928455319116885122725416754507288759980942042504180294731878429421573320438733383247974729037054419093390349342497402951378649009425372007536805551568651069311524115407037446824233538582838329856508040484294120504159381440821159522670371764681937216863708785822994968563395964871065810045660275867261614828496934434929195607354123134712887680455828618217744716674316454956959881950591081765635434202470324243477314652676226727140267974234065764203402784078468092423404421070187513664872849648341626455017690276430119046213987329035151279358610441517070866504334042895948970986611847165081016092916066200138600288679148923101319472725895806045868776880090861172777661184338292710464455984095243333076136247722999046677535858847517947844191936360968923697338244126667102758396185013423651741727152804751773026521792401025482821013430783628919944414053088002335492458485030141863110944452749205813355006295549933135755521166494337788388143639795174102926221125273201074346521143471227081091532481881328721088551339659191096344914307329870842876016943201566238100520513570878557925997384702236089526497013316925849519277037771749633294328343230207951167382796695822446949428159300535310232819854982223257668111913945751250439336193358928428416694545004647360777928278610242606501778630690557502380710790102080609744397267226166852953561399106034188062358884029545584265696713373008596494029137067444715756043852210188221243908751120748859185602854325414843873036546129856083457117006588420628719882270136323450405263053247936172141355247723235624300495114280884786736428029823269245821139412030691132659910240997092364893530232148920776569029444205923956062408395703193710657596257293733662983982208329827368710819744899549454628883475934775466815173571216177169629303714456988424341897045731167370021218940051033954469599158637816435607205110678149974022096358925474223424994458802606127545217876652178497373456391448578431120909624021092503155596364096949027017196032030600997325991250942737726514608186899707795300182445536354032330573504587312140970216951622145155737427087887722710951950000426850017064624670216504731915836664858890755181741402439695618050534883923951113936172806707159163338409589337900286387254993884757876773064037716769157513335017256608379645497498425255450271272531863338510294632377902314778774503496586281222282270004192823239153091748258744970678661467733853952310900842310990698293134645773696895783945258480449176777531651994362270165764040224824804790897357983633546914654813051301849263536246727039736129899828227809233962749134809188440152515855340078651534376877771157668432176630727707361302128439121575940855076150020973342266120112912222682150577666138720705041387063696273684883003771399374924828968332759721623337940487696614255741483670825468357643111507163593437264998697009220726191411079879573925834518272963904568946917637741247243666747932095082727589029218909776300139664929919452654416204283189677521529778994064090285713251200552819252764986685783700429540867527610107600067886209696861162799705364627237870391208130613375431940919805122389686560117687219938991445680615813288831539812599928374823708426606722932507121364217435959423642483096207774023798816287278514268895445258796160962778796808785883084814960766299888907025044193161383304936115626574899466922301541583802023163052496750114579706538046037578576366209822873698604436940402533617226624623421341521757186121049604459068999939705573693720708090874677124520483795730404369001416480221359114939295448209127858648703326807143359927576324794557485070925100607054819678216346298318021601780608963455355657174948042475488806814807376551028094409366857078061949823856652896817649812022585050809810618618715145060304183747677314343124251316975113322098063547002834227114901365108322220637605475264604618892447742302412047538106417298435984457956761676494618050131007441726143319932502520362917196403688066106353777184950675011728860472493167307047465813735815312843311299549035892724000533025513701684619073391367840448326207414980722196440635753465051501023687145870203940487628511641275637050468188798409275452788534982485406646551141676179447983309070868361267542014636236908819861477593747753486576507552467083892722644343780093228152854539935340171885445054856597658851428649539153404773446693995882676962950401531254793494250143325273532668514310285868673896571876417549407861094647512707827684344524035495021922571247374474358968858029643250092873181503672917526137098849514306914812544697216485303431116167485561305872012815996077607799003820898047888076595263290173099225858712421695726977520538449336133522630646786633034972257478635783831147770402861279183246147967014975167438365291370458563013127191483305962447932965137233755515847578257196363346918797457458762179556441349449751414000347816050642676209666797271806376598527780576840156530240808994187411423371298046019192909865650667909604644904448371906052222891300236102502481048962210622970138438848135988106369273775232702039790959448849523072480799769557341227213087317850315312269857361929039561234545164477084469029318439421199341956071229539094107060059751215767516979227355283235242471793943800921392117747047533568860379437182931905184814189689199389831891690945205092066080997910453023214810688859434085881763665928643125217671122432445504441336581272387530984582523585976368183918179434663553821737069938313563005010714299484850712527321808711704782310725757368158038207540593779020221260320244559053759531240209849160957701639023654965192975777027655260910580890226308772503590282728524574806750083062163496898548927727314595085563046800074382641584733101871866598210391072016573237691513387089318095522026670774434708826653470344447422778409161561945920044037636661022703923664358554459747275626536433369291529203715319991432743502050184051802686951356450642033366649849301772720723655471937331458255227809995580187740951006471871001725655596265727548653402386561996005799102822780051680756843721398650119533878246712918194177456058141894909877090404600599634496463107289050299616543685970101531542547700096417581999030260747410813325097042141431609282135403641544352773732815342404483294327469430181043116293474593640624744042221600166094868772396353848882860308777708231867521426622748564673934974603192684619714695127336091670544037048230540077526799350632012031802484010164475811258216687251674212630107250615413915206657594604077462104032950432088161741128318449368676956940663454100391871264362477820141444390100571135035157401938898188830072902362233839189320200407785922128385278546780996285814957330565094361879129141772654061339170751641505025720931104995903463536282442450411949926359869227402478232817003320868756583385610598831729301817641929594887302576250651285248025058184244879295615572310008891899289155838000423237905090297124179115287931129466740330947730953543675446850075544979204050175011844861288059906343185323005012748990188090311141242785407917948421970501306084994075788443764411100928927802485092776099276245004100398520866767804605610659729749293073596641256467068454577874000906234491076302530172469649302228318414906968760647051537021918214668106841936068783857763722258143688366791412808830470327028708227938704061850317074698397559441518179284032701464347236660907057014320200206844651201751662846819534561551193388320474958004394775334547049818915961534061813332701668117324693802608383872889518509416738247957958334770233178383920225937587977813802095878532087484008999648672189032056868615910357917091273609741986991599183431883530643751383482636494205133143240572749811380414240529682515407547836661254649626066577305407952653143542337477939586875294073693427281285017744321093841000196006946967553806361456563178697646413191199586713297320293503047524999024836734531939243271011648838089311145525583851118103019990937013465719545638636931113426926576674290277668220082027596100850590842946661075383685947197148866376661696850388768371337071448273883905888122849043867317491854038211069106326330192465025450667585898614391012776952765483488329895398336478094192221654236158572604388409056616075246465879734096934429845157252266105477296609210439689893196176111565647082168794361585182435701994503134289983430892462638913705234061333765691911641663493045283705462470866860529171204900897015268941349556940334777340793690773389649247464291276724403156946640715595205549156370870268921125898641871226953712024164171312494939037108481962492175777268508303036582768938047840421062936728266292483860950861912935871022623456816629961258566548513958085475431187847792058352885009129111948657055379586448658940720584356299228805113627616628779983798130082925331990423677964650021839119501636775679460042567236513784619774210368839021031442940280578480033713415574279187814941550600491748981655949049851034408276677296845395854071166315959857422132297815846353515867662023429137735185766503024585666420332285735605298367517759119333452560627375709088841340124544592295726010088733617430158495082043247918919407315863596879202761684098419416456412479574647743251193064005981061615256853055802008227684257097369519175493684142261559523181088916121179542502558726828024158055006819623119009620676029207574917852288609516890010242112236741345260234248122785845319474103552152347061239215446279584153847591415430162625507746641657051560832429508116084593885866630261642501377378850999734155383427303808677911756075239238701779041887730456171301420860338528395570592288156523406732339414271808192117603168324679980772585656793792896378490441080434065119491520309835096342877638900510091036918457274235590460088030280036745221745387719149203411367167137104531785809485219439567619561377443360344849258332030665109068394976417704914836143641110984833503182711965732101839901396242201434541837861421925240560368444115430333209305779235805578887912572917537482400819411852953383791990720322901566837623247064308984820330049797915032893013985723424176227784255499682534270175957777507890950548034372429340854686992875130764232078667854078444989874498924697637723983959076863452463611323213334832264939251747980114002851937352220960807827852273984524449779724914887486743347307704473532353111254592540808448775246969216221721552204322221349666857482894097848938638378167804852229900085727026398051536034262619406266651234501532589735712362248137647995461240133899431593683769783464701973089679486508798090529499453301546391320724899229248402518565638741919735520278823578526268111495276935073565049271366739282235700014111418901174589398291871411625343985643691490902220500025075714218879750285742557291085451722886540231426133923298097655549822869364288264049641383035501325856516300417439144596771602266660996208114188491455479235368967861506373091870131879142363594019529969609769111810431849478834079712999763624965343312597830657654180341137829027062795253071591952079786854846363855246222365683636734854800840937277969611786108612335419026620091935027277419908169937200417453718674666092758755950925766070378468362596453119674608920171751313861274281936547205060298323028067170011360930889409950074976406840872728637174804294704160612952537994242594364357224645922748064262577657616509031470231006997076228396877002875882507879250176281782310848925828293997897948676863071486627538461017887894725967124277723665502927226867172323358879182876175659876838042974469080157306541418595944411375796918273082802453630535650958489783256827584219166849591060587992633514337782159833210434226076072252745941233381852530953755671084803381014399644634705390293745508769242094767921660589236186614806817435947480362678453367039486821274634380348776188955907331006195383633382111696648206035043733546601179759054641332457590163519896140184310464253304105964420869200768202242585613297316424793277165450067529578013281984391522233123038133208546709578477789505231534370249830922136861905551548894977990875583393794191228797095435204512640883868278521640471035934438744879170812094390588701810630098854574484580772624253019185131558454930208549491558179062047991613109058251488196763877670014380008986458553765715850827085284320559753032476928157613506636026426615541150509906753362247873656282323325315438617324959260600589897116610242763095741353358351673554117482507152434152866417044216711542124089287997736236025303774139411456735117534517657795339226742518647609186995222687125666161493519749748706020118321654426032166980429490376215736322535763482918606924180541398706614845723208929836806679949637610402151833667937371932954613599778656042210865284312499891456104439494665863149851538005089806091972784661976577855115677196364664095869510605373702493498924930906194966045669331676955175905629971483534845210277769933357675487954603926116174156722820017242734103597950557871584388593309281422764698674431812590900634443717284900281271660605987443727220344392804908221601368322709324857792876401708289936002518457929295878844680332990946877993689300322246713553976850705267401482992733559018028472143854737107425342876655856660929070604640474512302275410018613926833821506919859502819190531168288856915890681164693604991020001275250136874410103974432830405921365672401063247408825706977941657703748288441972070360069035142017839149715301660759550958154895996389648903596348910119096597182391169982454749168971096794760641461423854924304041099054628258343093385546367402482042766167642517972766807062912540712714683265202644699330651209899111778838855855039596747050076108140378901939048865273131159539232824124218096835042227294285739176550960740103787553033520589652732291246455455757941614558194255830204435486908882502498963825936671120871694037246956025658522165327263501055169145825611814582238789004230290061031680556933419572039073479263331207534409603130302234450027524198143808901032644346756315932562503006937222842992760499463348796504220319679235811782478373486263059526925000987579759246332149088938485414283437754907568210134897539128229673871455212875959896134676755003251245756026175407691776621497150011050855801778073465767133904959379168552774506171694716106579883130377708809776731912814081878781631883772511718818153917940595387759060176521859028828099739819978314530182902560706437110908036973567040065876072496060436634841801843417063068497982022470252192287565070912768637389381165277360033402713211936099259578211714864818316394485585532912311731273538498530494372690518765632159550083118278890611489921717860158903875082198102759361859768567247144544210926808460942493624559127635356416498222151042098814167418622873528270503058556585012694752415648106798816117443509425624028567748820376862703331382447169770861667784867407678394358372655975201854507066286623796707007035158956497165350724397725308529378369805243631608261000054517228428427620198774057860318569220249238257980633922436481833868697010460313989021582671089669614227041271632223648605997167610028344836295129114601477762195482858992725009615719495541623124293928428422969294402752582512580533837427485568239350953169100722649852384102131556596817881466219879133815831740567852165050491750365753141582463781023508505557635157108769450751245848931382235786464092740100335208072560136364270950694670560953841849854607431845520153951503612008148556395634175192200427759807734301067365529297733707554012935025728373147326957651561763948839252639939003283296346969318009413515985230429672692068950175276619479804484219256164241647374941669742296637575095761399693288118380943183185704315377920630125310380143594776988139129119351741415664363999642258733845597124801862718822636967309894631555340517789434725333054494411212689148870020317307406065059871675650715460179946140714680796307442235670792716428179582093763420768422310686143863351098452480709815099522234707115816133388627266692442361312978787669658092124613923735741812823242627808922386395367108381972178624387567996714422678498800355802147091142337987848929277269283348976910151719197780294624456866411730819123851378182247197096777787183048078359882586059516811472746872210431102710098677451775533281925868300822010101808043704702875425757046886347100603460391566853763859866991644158394885163813280173856297071362856470826128825370467520575939051773973183227688385641917452559783773450545015969606852069108536302837231275985052165475247920295629358360185800787765471706716283201426019237205464521541035549991564618569144767139119105422638140281080067005608372406998112429388694866788003457787612867364794308815200319316246641334282539302108309311638508875718502588237817914207039550238623255262130324573594558964416954474417262077123384317867979799479970191962294731719272322348985315680443034888343616925344893051398294695182680556070496309641458216309836357220579478218637825890535888344907469971283056427664365726989236486694910502087966131585106293424833855218562942973534339947583397020132371536642829242252534675512628113931645103082917079466946584297068817516424207080675167296391466271680022595366469030544483906357674264715971818709888076773175951444803891380485689113278168625488835806102395604769280214694381262522908146825043301774936986757298827270686064966626821315804100349240365842753532325080009665463937810356220644681066095937108515874192129142047284293784508348245045083632299356902362191580837884098035980029542872342682550579407142439920303110178069280416048904554223560472013882380071507266978976715099130375190276344019760194604425639677539805697794318084810239214351869351606267228353382091328033735450102294803533640886926922112818451850098326554890737364723956799318123778716889571530469180295482086985267001887556733932000341837851070295803932982656541766379520653798183666444589984156476243882208208931120262187957412566187204693752918233166919652639868515590097414918278389429217772042040954545674087021988344529802244336966792227491578116944223345284128818435646549805317021878851473081884306173530723525324777141316718944959253005917021414822705411149729826454570870868000706103210443350523268591391524216310595825524400262099974856737612404820422976127067593766165842232040689439606332262523825318606348406537781726431144870576445215574998278866320897667660669444993998490821118649593523186627440323697383173683841940734790699544668664395966887977485556929008033426301187990857788453656396674117694542345435075029599125146902645709834713443215155357885257387342288369040236361533248678267705633694893700283825895400506961995014194610029214840757613430707636584678604038175615186380605435090453169600464381901730705799749073088813932242166765096096918604457373974250151551764551492357039061960164916080191291622580097079290320922480400761115805552800261426527127979303768913114919243750693088301361269117848133958123642588256988292080466958203808298156120390855020514287337716103980105633369626359866007308842493591973747975273960039751311104397636641919092542411959553377303007997184813872975979719514138590816980133927292201540093731733300728031818405471503327066741899476404462568310007421850020096105305199580516668867979720169698603987969624256147091938507916783332872679017196664155547044564946707392954603419437706773287499996674364083130020999399906216789065582115831844714587747422435704615568727133867430268011618697958717093003427285456697820613883410011060208302478911982052009631955401294913694606991951807701152721685168840494531112354866372850355069211855763043987613512563738334220446816876248679065333279478973196145347263012986702371913240969011857893793181436445654923466873605894957057231813852701387335522543092092305449121946331212566541045646319764999492918415482381602436362435695962062774555700120963582248985082285774137685080465247406838253785096834851980391903576927787435275150066039473274229660886310951944760011665098393463332256025967870388962948823677189668640097269358679646735875262104961072287171987623229982526510543198706318663333949902188884623370032278781415890906569076249198178994313375186528152310537752482427520193683938440783512241397048724444885674895688543393187887458760728613428019724547518661381660002224624474242056490305054670641336938424406053783642595237223436766618279476045480612155573838173262108179884406288356382948247366919144400319219704117579916852673568039103100806479704554968648560288758900795485611417151800957367582295617405604992625502710903264629383342278347082002478714100607544932159779815343971202721006620623543595001608237894728138293144159562579191971053207088124094697638289410415060594629559156285674676772855813513991644544662513400733326608336907287614718216512084272055897654856166255879302281534519346038879459517890645456842301834305509237340287516575097646019055583223112346528369765507675025743392161752321332681567649066425623094634130239930521656847482959259653726888141992921021293712907836631582746400937894465955309913457982818970966247111983709289280530826742963399961817353302646374239562794188962522825791079171375861073520121899381536895403039749178089407387754714750153603062167171548664909957585322452086926750199444458386636740653672129070277102877898905029517448771293835193401537887348918730787143648843269009246820208463768038069946374892883929425931451895501890367305987388690794016356977514549834848007028970744484678761193385437465796311187867668054585902830319689270186798138971152338159400460787577278569017311097828703010583615929562119149536476528096104500432653401402926642074990614149706222140064807913293743268361778881433724914155712759780633986746443403621860626616658299117866193642340947272885071794956403922852195520691325050938201775899728717946446022892984699254306405673003616784913240321092213391014349891213159692724477875066531450500515922265636480073619916702660523941602615724627875372804733367643581312347621524665271675289016493070051053592341562924036854526911663015494741101276641381799887719963344168791719173190413513085996348126327901573516685666189108252852977885173197186252982020934137030304838622425457893223467632532447113899753664048825111481280637229898789784308619317554026622952646407822459977288092104670915683298584710138851657433435213318163272518510115750522362750292057140353418333182558258072008184365084506248915058063367463026683065734537197337067773482740184304577824196456910528170299306458360426297865194129680725149494496864328963152155210887997464964086633127917327218140714206122088100376283753850546257789638331175973013012582420705159498047467557523772356217547179194694815579881117686557310897633422800761351527666900251165864822480613876475381793416052460280583303376195069350065328114553727495338008384890443738058579415089571776194510488690681375757341183687936777835510946991885700051694875702552214621329254889581174376804827639523081324218760985647090319287654619469903492046510320796809056641877618436624316315878157385575004944108782528279086511239062323157128508252662617368049803266918780529924633117037347929182143349511968387859307990505058206505720596718701865062499097477756622402830028380725874722842398410211791596319443872227971997852219123701688124294146249150334728771156618988870619387528350252366177507392102368486295400488437014821789006239272409380093512471363830485500027650040967207661324196974769944695719408523980057532577117717960911127528835524484426946462256791216699871377736364858697035453799319779388372221217285042020557605606053493673928404360077422126815269410353756069075943932939281029359140459772226955756037579363948615571192590430981713288680245187694343349428548718566158833286711905549939315630190854623468130369072333802531833851808559186597872254606951565842250626449983753658678838961595401704113547386971917510815657925579511122708192811714833832843097174765571715284073875926099933516796881929646207537555416688726208678226578902098575799704403793622703439018509962020297260422562399627187718744784613211651496285991173649093596892511390883997594785443860705364669547387691696612725067414516024143494340537887583141687161748069970677786072837803616157036700808394890182023837384813740797695931990527844058756649520681949154082558682322083064249784430848835201610302498376206864457388202350804533872180041566927100718919922859408728765659115443961362471466637728286991704048928994810538209921364497757659101457465179808972353196340809145891418850124635937128449206624014842691529647414766467307627148282366431791464547278413330777390017735829943875028771635354069508896922730755332727370836913375509009799942811993428400687917868837980695342721675045199369877231748273848905947736765879684802191098378282804373105268587532195938019438222172229069349727590910967775453708162180879681176810164224475084651686632499329138446881708926163082231024323672749951062830393814382272472044674927905887404220501497903738741242854787124872765936880865954886154083813306797365797915135275825484517260776151232580634599922946039003886875372628311223661756979028950573514162234676853536242140885710388294414766826521246998679263994472709445170160803591273384939808710676283452935621297153074691389148881304204929602829664520573274516034965559202696733120133892386464824007434196559435829443976004303179525276817160751498240432871456464454243115468697076518335683332441425775741993943918644185830615954185909183527391713443518620169025127759325847704660418456142496102690144841718867488829729000750322575508070541928291659844330044998260478876993382982704326919849360830792903111867767631785671758731876306444715266086329417281423972306640494204937306361171532427195376797732797695433841686488739647716877043491376374439327430377885806155047958080321038097866821318511394054081431323679918905215497561377695001130520224344021011007884527782978113561894596432557195373780118228810841211921121420286939980364419326159842830263173780875742368370458681637622890670051027265903957173799711838223046170584507739357748408896916871380545945359409767481799731187391901773243460295558245493053221672465444151425257241037781366445255912027354663605051783886579600540025764276052884041982029305504293890303150735343047684950691627563166422318916874492830336663293941120978968749034622286012374348858722062346844653746159656315728709223133355657244464601048414683827554658164247843615796759169417722248616826626359774648519222690924819615247651592744770323694215099619953211597346365803685562753734401282929179835194266974707338148698121769813328809588425494668907731993789943850587324490177475010634919855724606315384827286140113998262187745325093468883089208036987935145728336952026558683426697576732670010980582451387941840193429477415181437101264831037262382484958168169751537962568644615208575839045275387540526366310686573038647152431878369225107734074489720788710324008574892155244967260773371149939167709370132005288992354418023732086088980888801491623229372821735349377769403495851260399112115144391686085281443309793128237670713791270026301640287246791440897882163429209704048872641033232956232098386431631543888602166216565403553752242399498357821985301843463136890725598470305945469697073857085994406010968463468065312214193877455409621945240687600588235237752923883452232054858927620551179863998229332930486341850656980948252189059683777755475940333246211866761828370830704547865987236390528411776296101424143640829893810836855056521610953651221684134256316659255034784323525994740794899019155377329569653813662606622178899475477442462912817178729407708106293701549688978756228119144085432116736136742833979629269628463921255919875785513334324738495241785363723768561926857171799644796000278341738832178797570517408227223373681221665127285222977728919995206023695452945979030704252873648572809600921578306283332982550131636213362228913165893128111557424424668802184820070659827745842787252183202537020497057514141423791183632785340684165192922634845237713421920982129209797161770751048714317051830158879401950212558028627227261722440208636889682911350789612845782715341759611430918062626352408988911427120629452376067780204015559919998365705962464934913094321079046968775328453859091464992900953783792304274470653991096638685165419375232029521920942622842276367018276871588866637965885268874314395421936762095526040477967892667754495138799535962221916885108948217786913171131020306643118529396595944935964377240555053560350090520686471853217364212159906865240545084257357884965450436792033701501122720806657612795419454750516276528612575647676084794319771292838341580999512557136575455381253135229745204806326802542757269480486487185334273066116699964679590919076216020020788107945651724310453406883299311293707970907365901127613566831594848143232504445304432350897657674601530983701790329939968359664924493617491964467419640256658122854033090114291574188474845697892434312342517060792241108417639580622097772794004033326398879213748361707256080764576631191092758370283204162117622936682114798841226805222805666372592847998492479977506613635555786851528014654602456502612092505849054541872510344488327062839918379872527073541916243825574634793369691203664933042016751881481908721579850349106690238021326638443161433857437199687249943682149396975780174070134743829024983538343766311594099758453252449735018664850346879301334851044443888354381756794228932211324012177589884606790338616301732540184117740508648270287142325612675312652902246876693575021221792516997491806845681094402099039305941863065220489258222229232179445811847103427497983228194200124898771915788980266465290416256309838296199479725849139741131982117666946680031493944165705163008519271552877693789009399894796634369389351372991257208365624794115018538764480236277177372009169803963113152358119242117042756701179437997821832286416717580890029079811606874293835634642208856242744073693126088457306597200550276511710042766698480000302766871581179718296119847889465186757629335961498068318409175003118575361790437534221485639640542723774425560295393096255630525917465976125226658596833230146087186223169145944697427440239219040997782556837700722018156561925854363754741069798302930141642979542613064974516220752343395981380920106643831859363629810061234975529800080593011222786662438913297826093261282974978644737266575640059683167138265244908578615424556841346266364583340141132487184717539662369995972479373727435947667622551387314014594400055136010686561124214095500023190524478686193869138805180857659460374077616706087550176021870673337061523845915115323629953421766489747975797365770634201764132617167716641648961082327873738654931550143052274372544620167129088404103246598239625474683983337638865889140186162882079449766034516308949145475699560199848728994016609724393433210176492595288808938752712949566374340235139956065747528817864823148752659928400853208807117076031677952980079515446632296603382201351961128816052848678265379402839321388293376732295332329025780937438761057296436113039043742867471740597329320810392350511108202536044595561795241965153650643856504916862100312668215641538999588028916892282460097935980617129751774759305658645750077913082606971126438605321616753052178383981417685143763783532423154031733103314778237085959852959690739083669465443486624296599231389091475383964999911564220946176464107591870245633724926573675057730828790577164787073900377804216587616554966452775399880751906952300075133547062382378099198051663650721977264022533637664391012151848935254654960858237922150448050331464713210298687479722081732519272425049105996904775699405894242938743816396617443942355125453362750522115910932052843518243582904911979045201137293385647508770518322248181632568935987217588850948626210322454303724856128377906839121014283077391440560316734297572472848933738858457928834382424774434516323407007303212169465116398006424860020538760266159229851764444823341737375541378334505692772974591547966186165844151748628803077204472478149294788218287997218031656959312517344506711200379122008007523204206459832475029945979086315725318071321573758474544291857338816321730748216522149633979717861553847186717811764880595537185777654406534497474853082823416629266238118194966783278049621951311170203584176511076551642649520993747883567261372754115365128083512613873526865959116588905573000695427707415672614921168819855489283393088231753949781603243500479691111676812133937817712855311921125525508608870774204222710988109494799903260650999912406323201054265615186905135485294669543573063921422327152087133114561246773075432286746567324580001226694016037078624164519993702492008842839168110964178809715792694292523518866217650180278962730014993663990627431727353382858204434937853447233575790726101752681924386030975353618323570794464703117134021524723464044157481718678679681021941208477599102903656999526861286173381965559903547515284628775428045013324364157533005893459458001543502730901328737865103112956574997369692869112495615546431891129010227339460885982221886442200789286977186265884253847939891839230633267712000530273343433423501138119970220936932423410781221263467598912871406394110667971580127143051825915112050292949990426113460529814447651287111824982039489381181879227082754191416240535470770568020286424983620546363614649213155950167379875516216308707670823010082796215667506385871070516042533140306439654076231498657251015826523753025083758591306242311431398505947366905205517310262257256216078918835183060828925730985124734088245425091539560694040695140237550024834896743049045099438990050234280339552465374883053763154906918314611944935224235976585691550801797103422238967840026965733025905131835795150762141640914657724003700803162835651314170364507324043481882104319501655461789027893658927698092014782281705462083437699094875965598087404974632234388530746147266636594551479615763188042266522198911577305574259058975303015444576025851518891247764742833192660871571072523237475892957840301251125137099519302614569384789884705072468803075088694267950098972207896752181097115115011921089562657314606914445327777097812323145065878504305304322800265382974275986053567515574651282998209049254871944465006661789739721948428630147089698156709120770140925013873678135981935874417929845569341431975425143689128931030875169908254371300593781120818381146489297663264024372124495850336288309132784669305605198541373095781409280454275260132848469139789801291438929080703123533541068145393724998033394009930651785143408117957086289720045138121683421679841009324170195431438886262991906246219291980771295367967955468674893174980157950678460664343575910852625368640810688281952268073653331639426449759532855646351223802919176579590188527436904401423475326983700526463849493437499592728145013553132051686531521693789762686881073541384638455131247848214621532811211110780466068534926990114415114317336999966716387606561184302868123888362118389585852071552715136435926659193414882050163613409713843759112546249850404747528960268254293824787443087302125711509627311297947814254747072700441543053300468484548701873673629253668437255277672965721603858914327868382674821477475926063951759172571878838008788972901547091541512089512799985917913481183628245644002797516354509570598916202894496675252221531817273027428197967480515279951403655964822059916908950877464533733517605421224632809642390830478708338377768445580650861271625082332042451005263047463762748016820000623138224717976063783564140180862354372866383985590899192715233774169359299892950153551910973593076274970072925090057953519358776368524389680983076172540032877903725963451602419870917644908767014397864215139232741711585297147445508623968382936759738845577292117613973141281608907704746419178294665952852359939115339925200941030437467043222480060827024919257937229156947502173947504579741789205138881291664280166326871677139211449516888109914123725979821225255590757186305090878508190068745567888185690007005520523759041932130796140885783266835498181507023527154301355685795369820433315624150778364394012668447605401454813172378479848297459846667686905204601088671933747084723848716827264429246780729181376086298403900461251122424090919717387907865973340908510938168486085716638362690585334463154601994816231779152019663414173808080081054546824384436132990495010896227286836128306310941123878290552650183039819442913681065909528718506699734628348108190696077273008919789834630001022745488421976972688152840447484939278954086548869464241274948676892961519944109056093434227694209283810638096875889520976059368600083166801663283432606375553152263921299573105492338507516699871209658338910015435187961473157243560062208059787805773923011659857709426436611883808000036864200868556103797876245975104191461976552140201521061430485337655444673659459006458171753297534710756439279613384722394488720115335007324118133927065239381987076142701092575265405520322736585472635667923449370607153639954009693880503224134937442729384720160584555419374804171198934959016145309125946291249333775773579328119063016170481485853050345300229264023240281245644735930116553668616759465448105672360810002712791315813031677416146395329196893082293395566300463762093762665989408366003017121624631592002242994640058208708963761611608611138936542587837451301383657645495812605567493899329871894322656659969511877421164407667521307586387041968589946757804132869109023373308660253742923081110898221803201125199450717879281004146578569706952517765116465104322589927901542799246690938615889618312424847483488920299914985128199068866182260696250939939756747423888731578128749167116035721819811576912140258027103661150496588758600829109062698263497372090023352971714985651668141082351048886375483954868932023914222246224698832987986116142921646569321891924970729162856936658140934243229762173401116296753553567097885816937932162239567088961835509243217213576813465032340557862170814786491633033880421839313029881044118940515867172199112163565333448494338678807543385227276278608847102741540099104159656149425873816420510523730224216722928478109698534703762413422737112844008245764916449697085538132331572652382389821177588254096653541087678636085896434830518002325803945515464436070453409577720000188023525367066267222993939649601373142182750588947143080549891860938172748884286712946525528881510158403836134015871151139680285510170418271936967875411381838449799914029457286124091364526628123729320629660202920236250308048508524329809654252008318321521937251158078561178519824487089484190881557798181176427528418889721367169874107238120728929728122600504046852182307270931366181454029167891325656983372713718889629543529855978855951218557350992742757062019533110635085876441883483839215677397822307963999525034587388469159464133206214520105474809409095305672162977456490873217212301664260192133445428258431585888121780869206462505283339645110136824209770920715211489310253228240996936475341823572503946621639214333882352220673214800294102498144821421487184880614884063674796166881612563501819368216033783589969948024444823973386536986752438021072006594942555715917617507349578764798798508175665196457658863732686801106385028689406767745741591911645578543757107144192420317330698216809948520305018061034744550681370684024085859685415018363556895217340265441758478057855813025614509084066242042643425247492552109174242616295238155049088509256106674883985259583680113034035837515306619869309768943860559575066443847274815377986837899144822360132146092528371459402739138349751394799686067615056109656433058717245588239879778172878732380711287552069401158725593838347736812990522536502946963320243473946318792197140406916770632909884841453861351348958560998633535237142032409560742114367812212847639060709058263016196190363155133070089934882268702436019457336615141433344590345971891099422842085096522633160089784298931127356965458144271344576549987919108111339695578636360159970658700823966182103796945895460061106183126245100556846803240646164655896762737756018357144571827817403444223066895297818109159151176087435904309737312838765986933567527189331280738365799244975521453332503350758529183980236583764713062409772747780466171472244153246454866000551177834670754082968840589537525474940103938887196505215265940824806451735023734599760149537663539138594505888265903195047329013215267149679351120316422818766589061010305237700377683845268491760293391963925067617817326872549569561247435130479575035161684714551593640267691309095743895398907303196316081946584993562785129764244618270011994701435545006052161670664886817259660542227157108418529316083370577541265844961109341590352641533219227015706752466456799297388703640206966275131975997577098097530830600708740673825675762892406399647644617107834410331791232534988011093164337913776811977276121017733722772123880209829962001931947502453879248521887941933728212961364830581435756251459404596252174790623642436033704551321801120438399956581136460954283472926317174669502163730855348657400615892608942243679335160528601981250634193413802606980370325136392713387745572581742846845195346349800925323226615111505753100472667454684667847604775919110740847229720359552780785819601602911273173315340709456535092763527612459074024873543557653615599132911175325221278526979488481588881999526031743586044758670624115321688230061707079272990054097316329857502181498536482514171030305789274319719588689137670863927387049177518704866375630780541560775072911894351528494923375596128291752286866338514332730557910927121365933826587794532578944228951039449947878332231040771901018337969017051825999523618831586959405821431163541978297217142979312828425346904780940583403348858349975046720833966016033682852089121063677688992265735431692775829283980207528482383527049398886212717214156654685537123811420523704815904941313811711905993425815472803198481471381897097239298422277253013463800849074594308469435333456835844728461610174369200690603786121203177750322684023312146884988909030606121771541600613467203450342847632060105409158739396155317374487570810152115396629641077122768362228869454274840947601133254440916429432251748708633994267203013787300281412860256848433539805703841662549196507304527579119255115148491131591674632560582686391280044359620022714536486184284445253324109128332501664649527225851736144839606887085327015648625517039906450017581653933202467698272225916507542844503885247882180796326232456756206129999327380542032742441619474449037322182717858956934064362130999436621398242610423895545060102118946838870392387940558947736694928147749588783367560142232260578564238846896942362288804355037179608570500072733980603781777917711520455700335003629526523021293196232459577370680860392831895604545665284462739128975577045696624320332399022776400768933585408978689304681623782172979771182593667752444501908269239073043534127627962898856855327906298458274923808103693881993726225187224762432046449760427890298608756135346034200342066002502857002389250016231600602740803547529118948410960678705928806099283129957779101149675733895456278312823164757052714235356583043623437159712972425197885335323775492302442017978456839307710579476907658394344831210405893295519768462591274079146140329452568541894636014380985236038908597389145442546401000710316097606437230828336402067787108153563713413327841037040219821498313066036102961472445693503193926382479944693482815921971615660327896446957222198490472094109661450620091468086933887927650927363376914335277228414439406559743411721374152169095857846690925548839375792569360430389164516182136533062316189236947369462556700734308779188456540675260013737908924888993334380612099400860790434302492087899081807520173959426504561851387463679169759305132660651844824382548797557547287812866251829079349096193760709055258899643426495880604328102803390932165710092308107845293731057457668488380722266740894002913173813714220773104541388960972191195899664528522585046395067679039592739017494827298347203276539795078762837103948622249087876661307993961255808088333415900470873779930666747452617066253753980136258270035252344514938830791032722651834798606589315523856789184502843150552926750496026811162493698974735692415039692810113564641285265684881982022263380341368440647227417822804597627592961439524281944040909501841090135788460024043689608248106903827957707752753089209958342254059818988540671675087360386889159621082365552736087860517641069712709641408459244169394424832583187667206259787432521184183579270787630620963550714219226041468962770460153229207986169278713681724342324460445777664539479646057163541154185084656540392779802773333596608089961497194631672072726289772768876419874577271530069527866274943574353661758299807534604436229607344004176644403414345103433596059839384816885852608569046509150746560356785528994399062278176646515640240216409558893952652959926337437309435727893576393220384438062851150292003340501991985318032629257974428996939404960253402582415694772056277016777752766077293332639880111477404849073533425831223100945452201778716339085336251937897689402381306732660641587874759708208424446781377366817458314306654122762042873626572396683609570995542301504444722384246337318244607708966806781881544127247672298299492572835135033230314826286133281365377319552906468586377736276784360660317083960266959144894905274901083979324818508809146025588896012039682484302331846733951503161117952680622476830876161537503592997760248226570862726387029710854491158310388461814969244074332646887662462859178697610357754853623253531937902483041432739346523950791190643104396547624081928655417191052735444686284618668249546656073434346272019122871311088458547551912822733920793635930505067463107282743238808797656152726847272906401034558501728000032155222665420732613211656695774887285330338405040705395834707105307356711245896482305511570602340868260673345564791995639562050611429885718824860281332822239611954720357560159931141903051551777999990655721202464926036233085326228015034753148631616056056061767381968511291321643584383602089349770036872931009023807159075668346006863197831849786518787614456784920888746451770077141597150873987590319831848842262331637420256054701084501444026206040188850911664657908937395669707081795632232966532983178934433726337056193835347303513847865934203389279854472916948654895188061737570753409942647206849567545545361623635194335681402010163470240183798878118179148909386865538588559403485535761379577797484862973096216494476572198553551183153945013881138717778045791456481484785288409785447531432201371014188466113280716187620395403023933779558682028298520174044075700987936931809359201301741083387152675831857598533840661656701688089006632686302176559633778437878556029508804154077663672607034445410410891514580849962584020234279068184012444215053751441758842188592763707562189213536045114041214547317612634352598588135456076340753056814582284458532440251046274267122751292039098888934733988284837205261749187855441338995684329246202025944406605314699340058689664553903460010269425982228414988808397907718196895312563429369319543136438136762357663531567049669185164882613033794845279584611041579580625576402262140113551929969080002151165516525470894480900813754705468350338820869166984667758191576426752861177537730722557575050782751594277436582098670175625147292289648860860638630681424628212682293391548018097107692444856011813157183184955745010572521186839874385805313421827096301180997544242353376542948681490955908700959771172202684057924958792798038153229129901585672642731598345063907737359478526936809964687061875713832462977789687261068852151474830038518704167060533611250392547840607856232311371300617465635631775983865124980969445532092359428805544137849724873037411497743357971231187459835895796269847444721484688679465907158613053097604248453850641851631424127151347989200525883563686143360088789238831972396278896072337202911373351299392185669193354788590978120216115695711027810001600344977125303128813189737770467992190364144182982212209327054014130420803694900919247089188593575297322534825708893545233789842339369213177364301589506519169894617161748712678298173765690595724994194839368844604215170295541241854554229677259569027983588634414825328517323663611145779436520660555108072675779134477839817882766354852860819341988951096206615920296511879912737094372296315115301042870725919695065329251845952630140192160901887968650328712913883241007402021237113115202581785398626101089852985601953499549434633622705496116229466005708507760829032885221581904131345788742312624264933160184109707354896624830503269745383512031377240628681901974521179624385016266837437951322572925176438133293170223517476937472867249265380450124289200001319056049010676772167112349575114055575051279231251383765404299745024081473659010346560194336249323997805002250369453764593452707978546349389601911842453777505694010863633648251936102265691283110520143605654083894108340346281976231625318154071651897043719916333049921248288587481450549861860143170866152615014728034032088346605018751214036083631678232057289621323619329224629907885294637781374882661956619276345453967964309297730048438940227885941773978209237507397143455576224301301001721873639654249477396649497015302700344255196093950343564818193227227076130040262286422748282839081676912478129394060340257800951665170134941672920697211248810031264054054823814585070563254235580481319432756746413786852642630144516608750414824154712558204929604178621008007523270574809132720734992123854522158443212380113581034104329291098809835968663398844613808899450618374588671164748764875429318840499909596460304875323743098493554696787762178716419718992040703472049697017160090807309716017735931182845917738962012205771945426309457306298541117579894056398931440539181710959910221219045241772853515559056972351145333878948188494584489540119556626734819021239768802923157616314315791874564730866720687993649302814122594760195184942175509640841464513502648591328771332209059614474876012984895089042069105230997100717323714609797863942094220138692970042707539105363680413151708227490386704621756321568239755877570997670448643150120805025162282968777471779729161842720995396824137412696697579505738296512114707155749690539003878885241199225805262336506896933641744800322629301957152235518213338065119731760776054933922083787674119633512376920735915090645242019809735788064958810835190036605042841213523041942899954120011335236499460579926290162605906215242985700179792757257013051416619207621970766650315436166761813219472527517773733168012971127630777085262522784996506777460655399113081717626082451049764016808649973856994005278891226947375532874752315472151211275247309964609708947343097429703001162591778679561061749437949082839239873364760143628597287792650135416882815159129844585251183068617322942327097488973465611941997302538378076372356305130297699092304128847737512470952271426014210398892161911794018360935349049034686800896841756087303668282560433239655615001161368465177224977797898473405158443456847597946260570568835442530733931946272718901014963078764312669489726100682252749678944399495520043701394593789153739185945111691956212896818393124722580199021377797231797911669506590844227194590226760260547787746685677814765012501100091786972566305571738813306357368916058051524556966917555374808520323364274265371771703807957018033693588741673163736123686986490951553728523257206288077249665231814144539583878833974517295659894208139555075201388263640086308066261618798211991179575520841396187317800683140642677209887541976577304635866716609018288801102701425692630990933757375789292111043541433594233252374689126128055875181458362770145327461093960786992005907968490323905854409124913743793373987270315244813784276841560449249278735304830933407284644239495276849648381413236253605538864703449275176484796307326936943283357181340153642543966535200195937354783586011047713052762878834013330459247179993653009778293092435295757935125522894820625354141839276026845181203892714052291174784444903139641670764083035481652648243808773950853851830581962155393879048376763449329326772056118346375014492175290357446273195340895209589618176405829686687334720429784568138582937323414782177797017339526268283324685969709927646104492174928297422501965093276715156917593075314280295285530454210977621794377057155497885950097091342054187491029255013550348205343231258384688393199869208807712223365839587733172969473206530051086417061201045571172188920873656631715431615429053183652525129068341835852243365957608387795469887958828169950506004383501365210167522675901547138103967763673316829849371732562115896169796124710503258411283914958903708963529863246006574946860114743687245710318281279476514765950065738122917499264951206712020999267985221049342466902470502897801717533005079225222712119075752139689639302103102192642113279439208040287364909191016686540455276596036133394684909454225564480319007359271480479180384715834513923884058135936437341856823399382160974861742089657443524896105961981759121661771871615523356873346252865150173501001480620039317869932615843448119444698352160803315257111586392709633574045404656668538136279471140869612380974960142037151058034221709178084125880141620310605570429205987679870489941035489737692851976519497377405045180652074210871878574581259747909371670708823196235864408214852379657649125980050592915926484909994774456686413045854311697692865890941000587835981746931230621958266645040594752676313976538516344657676605512050863013883783823494409047950335091823641949093867038759066550040668935356692016654244210598720697245907813746218512676175262173120930543602913442739998616506766632827512204213751303043214201282988882018151222302696237325574145679309311902774665374868331056357642872118971559248617878373218466191051481134526580123352775487346352768828982710155130271868687322389229242144844199812944380262492878107682351758731696157565231475356381904166325963095116386758108659323707183699080654133287201792988607572271415265718099051280382824452110374436155195787857650389510665248659598666695059073342908928379839320264291215241311678642584774308562288337376535716493172013987280795462892192521629021774377651788156256563923557065762313673639973528071296145607096001561081376692123387912512191469978550639004624950472794760801458099436165017936635863204032138292032047680984261580231419710613896565699466462023727186970566646709470396902353741107015384912767565700530876401790862060564226565981597838949147129665045506767209559547375124635540875084519341460944494947001072067754911901108533307688712397279027635560686388334519052586836960955896118348639159244306948849096920511851374454815656506569945755094376926050655462156627959347004635537902043250703083318052158577194707626423084452395638556836532141679008728620905870826788825973941239341914273296146918491965325332130530603167170224523420834196036105306037787277169760355793333096265624255934609395898537781867217357838591501088692213942054157172939588974627416067658237367797561613801728986703320966989078492215063247942673360261952880588289623193860275292677058662459332279654167224327739221466767341197921004957909250478118026490887430075037467475418515286648514506529986408874295078233291707999848508537287932770944557481271808928672863802696242023248527578653893397836858167406303023014653093415069126015881961465128572954583549686889769461473506620657311511279384561722758373895567186814232113033824544424923372293622798802066694700765529431786122151279073754096572912202521132612345907115834631970059240789390569288047287427719272768958867944517974506386453164642134408963318359101534742397975072319981297942760797134507139782200922146003008727646510813958870145571163653193523926301276148823212175371597525346400287553476356288505962761632306044241442470837639878249061953015277947187127559096325131138400451044924139664203118284007818316132906412351817016916398288222613280815743730399812992156704740712843365402701516991889875123190588293089086457265646366835964599023319374151651524619348094931396235094917242715285308329701686967247675334346823975568765134406423069116248802621501649574124263502768124871827915666054277965976259385676996474738496754525287792103065623824022918104124964437364525191840494008104609487299537854519659935482432512127077464399262376660717121104764407067215868165534830400209807285633565555029894458155407642794845063726992383617122179164295802043302423788453368147891863413092947186925736944612253958460322987028309319637408306475148108426473988230889655205964746233377955741005036869231092610430716408848799052240120477310151776258657482512406452871419331652388182827939217570787234206388587585831998144778836144623559659910836661673569422231974804241958981157249550683570665987235236446603959326323097795190961781345525005395224226658618818724146002444091000342430469588112878816467084983190954110291670254057817110480848419434170466492759252984125985306504903609838528531825082990018658530377058395101833791383168346781685503736113069424573223606038570968128639452497408483324197783869657597153767240111286991778356915873461682700063303351807775950026179334862804678666412114917119714783816755061672800443130509893923808695856810997385719490259770714375264168486912712893247930976671105220689807483978131832351258805151016216811670598777504895960745559662381040468034265223273234317519644500752198143038588932769128458588294589970077241768641483218149713846047117190831118267285211874854468843351459579112126270603555660670854060033212834449678465776784870324747088793828969075633600299216347918968498387981997607215570596128613754487587395337793024951479316759225628413717630784543098164064617187936028558261775492694355401470591899825274695428365089603298688347763778242362408840800016643845691200193223821992426861766834921591874473949584231478454448588587754708780158822595156436694021187511474773681425089459196207530448781800440826311160747714348941565782169786836819711018379770542303565322850930534962606006613977914471234204429000875714080011426257584245573908538298203919072196353495954158351308344305533552327650881911930970865851195167011045211348285959509682687146077257531569150784555599391023255787541539763901206934094446397244627320355006776972043435210870596157786700005492415719097073529391663412360544783360118684495391051786399849203370908340291848618354138758164012255624149693215039977258123439364516489069727186694244796712701813252617881240276689308818196031115216619811180320386430391025790147319859550114651427056683586003268133976006924151202334226280899512437160098116203292798753060858124660986460969246416259996788554576808502225525159476345713682508992298432304986523678294383683714380880511805696156023748804962841507486070955114448385369957814323908824995994536500340772718981584814913120428831588287891539179310732691567858475497135148312364360212130883432454426930877385054001085818692702109759605030439229865313953739490480278451669718509575935049131484714997886900162746236249202607165700697777114438937940124141245974054517688728618723863240838076390528047388915323381822412957570863050911409027648548746754435367440642644431007032257703805761088766568606827473155168207813451992011138693124675845780741713076215591702255654584238734901440282297920924442272674817423713733618730818830502256028261090431940096693096299602655318389622854529946923319335116637982352675775435280533683922834091203603769349193461083116801368661950784912229593057570549966022797432767850436063955918420135177202561119755321857445524755875217093805776331984138607083161282841428740050586898590852584223965706269818512953795128322929134919283258787996067782078962318541388372833787716575008977054176222317503184539122690904969452281040730842550860968299271662739379651609302836950562600035582584542387353852981579912609271874803718382019569676428776716817910090427014784225375036436890673447841917377973297728474923374654592040879291781462314696184226228188129119582851973880036972843736086661384906494057371456763752411444275047814001099552188705381406694259596096899613547069853672642428745114999439794692169364535840924270097224497333604588394314615766202831240935862646205435141832208691343349236727025132172843272774069192278252460842090932011894235248806776358292693328350584505579953218070278518151693189111464071542478598153607496375363984216536112780991904434127794217974558091891385671773193713777903390312619161019726161963681744027706005834247643573783509867083409344882508634665612462722824532524708361506476786685044686956554468856224409301298037744708569918153831991523998513657674213508867435712973771583910610887892810658275614479835319603657643667632997999964810839982450674735724169493601012704154457274856641827439885455934756600032903177425968935910031397576959867474642764214533734496596959798052342727416768597193404426309162298820792629903685099482676880339126514460727763094544612911338552752122038589773760369492929579537339591364850990349478526233995936543031115451878083917753973378000858265961104112690275336632194529182602324976803595840527978027356536551418418970467994673499180966218138765074200997219525983314504928056811383058185032134834891735515016097021227877197934282110900648323280742280004537578279396064516771987495477904095947624701166232801088472308237517128292448293111362071088321857640420119272443250945289038581880116978517578163870130168395370781781118863089198039594136513471986478968656701676346314023855486680999279559685493795865687029030266133866365488913055511577799942809025598295473678022320700202419488382838574324531156817515325618480720528938067334980752014388336753976436424376493107877366885518122605901988937214871055441982474321316566566086131475149959177066890232773370197251162674137126169352471989995901156013953130591826018876081771719053600663336277252084356712876493601864424968892635590320671363952740204602362446809062814093206817038129705524640155642963291239589497461746369691993819281865258387346438025359390078320814346765190098387709836181430580192010550798007374128547126048117035202799147761640024150175855059644620231857241296037266124884868963215101740680691677282072194913017153552290029992269760478790015386789264447708040262911849296792251863142205185471528263282802162755142046232607627204893830489639963671239584516968881260196628261044194561613646419438947851490149459730284529883835749787169648342161425799899424352805188620155078583361949902370462042774166590232578710601160185418919772933955101638350790922946043346554733900565383772741659847262538768792395438270879849014056711825017891135600990203138203495338727318054411918627424204191310849912817612726619556754977303554001456044414408108087770675987369123863020291505313172410328289460206030872135017071428649733132508862777738413160821850520135592102185101889037516310622665793154737545490481029388357361779735371056547795907394753755093217812672002345982143500146917988067341133337965677418254465505033045353895140433761138401232675754425826822093553282145566875967204619629725947164432216296013713327810741828100241147944738072348124198734950908594354062069491375981520762559361218648510186183291894020518926394086267150092988120088185250185601604299332417265739835891476477457368777549370859421176466743813496497900969402955816763156519608253935876790231812604402785389127596305117549930283271746138585663329506543629779355263018531326905319195379916536260206884821906428581368854042612969740214503164944022405762272556807802241641482278916081012645218733748711026477402168866708206926499330196338310819489855588445632743602062668441874457148857457948656548481673226445609121308905147570367140078605961390729544872641190252813092731519613730204296420614968479613493281723816474233858466990301373612783020205451296651563083794579059675016399395306608977545741219086357431494209944821668039977877426583328635226413990714734213399889703591727368148396764951172068690259739007245434374363508016954222111916294988759891482752613017603190045234655801018312932159991299041265354174878391099047813399358243706801739185295915237775406470911266240985902562929123362413516536506078159924167158230771238368958710381766933276462324450134972769254734882563415400480250866443501872968778103903459357246348400664685823120508194336490108719112075635702437778307386869968551062681943469363840480442977906508610846012306456050083255455354006246809128909231887522930231503399486724742277396496609238786808826280326411863973807730070947565789233444524613042303477061298176798211298576851358153637920420874347044992814557838174002647965640326740039965262176064897945452127162605558495473047804616883119811475414833159032844469910123880403717491807386409287861527516885642418566483767942961540653059546998241238628029688616764112914269544900645867465959535077743850349584237973167473757684854620167796011114408264966276357882071185911280285082824360691732013410747931105737252384471035056275624674095560441055723350562033684953847791638921571275066544519193477367150853418627964898208361496570920430914223714184066923549154428347717734434588401063202825444875112358057548902374233231522263871352737183971052165159133053655666240816125533364207081704437527267388151093521774056393757357538544086567488716195733652896352464885072765561353539406458709084434317578373855257209445246144759718094245220667032659289348657975336617936125814103324216299492270031273673944316889751301288924782232742308032476105779775263358478447608725147435930445684332044083491786979130928541165793796735370878573548713557063244905650682809943383559383991678361938795598538481940731929604233336091744564414070088868524448636211378096714165791197658026405569662217704956691732053181160699603240385818166060008287575338311971136348876221905106879539360835649071375051241779769459793955313239641985232449529104318884493103603897616929470002042001053071266869363655920157018329677080585574152194038003407553784292544897749631156992614423467140199475833752990964692996486239844393605059388961901106662944619830864236395977025774572789377322791880264051560419971023368014690460043624714139624169370900282477960132250681915906645105902440015445372535094404743641261594953123755108184901181380713586543387350988522280357715899453202703710598321362857398002301220783641993327756011047021962968438152970164870456084808898542536102583750325594915599212078111365846130592225970761900868275484419055942122765199858723566673315183478048004154492626429798764244817039694677285766784144365363789287169225945211433281995622383269458404275055623556150063160999298859506881766611662262247866508262991682881155995054681063666064037006974830740711314930833291062070187729984653048148654298773123903671981562380731678798311482464120485512688335837907658292524074614614866200957497387166638253088559907915337900724775110368743338885962226192030731476364394618880344243155869387814869031772592001215829842520744167100785043497693546669410782787734977498286628267267005096010382350478681994659479638830090418931921861078731425851129402452530337971067588716285550396779110522877512442202342551984142891295592126222520430650296329236838626446022724365836755034764313563351053830634683399952417321464386243153624986545106353409640399239497724846656387171481778314019867794773029471370874849726190545101500805275821521882184571857685233238367712489969960943186271690071922537171831246974155335055640602161778045261189561878437262145443124129099044616641987476305880891727866074583567552807596525352635004806209697725228797636769679421962103684497886707318844691308482873008563795145414021169234883220181937420519984135494737482671137861430984103275225203936495558651538620410452322608998948605027284455773384627036904811862127765295975290738196834068663898506919904726244793208508505622002652198547109384288439353526212153308079201137436469955760330270022798426107258888702610666711537667285407669628828090859225287186004855569266480519577780361165484564275913181246654708503889840431895924601600654055126011798665194894162813221483936859319768981516152157819618528830723725704534690058276788317098044320458820467179654259760037573924031969877264821964771888907334384312729905121712353274101676714416643796365355147799358358031492542249486773882016344008182806909042011714669257185230543691802877346767259417094132695581709649244631544488589196545378259784334418033895796698724059487554104376141060667629445845562539521854981958230158339054777554202911917439826609704023952478394849616134210919756129542702908291104927767639225755038379872733417403171960808423882126590232521065200958770422892617997467573688366718559440457900835152242575556563965820495129607919736461116156939898838797045034586795579176346769665015586136726181363826587040427785928259636886812424029632627272459366806014375464412938722148007803499893352760704742243649367938837249660817357960497699885859934450302037553164627576298417327444336137683229365966482403127975520795798705608496680031920184326207227390421308524696570638205601953706370197077009423895147540874614047513804597368726422408863026489859041495783401764135607448024235299133328130609465129528129525599125964499711350243303481731764794774929839968671534007392771588008333481085851122889448142407423372997116566628951242688033543566289631164478340473923863117933168254678677101263562484615889262504444881749799213602700390559312384241876118279760137842225128097609299749557200750353796645488772093420152953454864882729824466841322332393002014907623247917655222999927030511612727272467235644779723877211901407762264322759972556184874478000432140209724029984276928234844916468848482301908710196289438305014622436509949293018473585739764209406907536448559329141735078086286619591646142376765730907312895939765836228547647056879177206262494207923798383439075871850310697415127602510378008716051813365708316788551148369444696729683924555340397679267222776276416653698944164458690141167968708419231023650072371622905151970170063510211906446484153269764312053777573562645902448170836056839835203469083247978191396311704766228703278790662703437522765519050191614383535877746881504504775489181692042695184877270759238035494675934598472270089846182775793068458187381185932992353046297287922675190146610064470148207139159710430779966885219555136744726852436706541060536134148486005142687586984995382690408409327399318075496104008885895390347461632072422972378983405790505678424449855891975119772739178288338786451046493508172281993881279731246112855770042473033412236580567188256426547628721629800353517379694454583974676295113630672009970463629183824367071042604871111677112856443885164650420360769747853267407719793650465993202376637012213865365856478881610154458264896818312678824165998186053870620013224326446839503833740377709996030654216732099212999946909452111053757412360376278589673526889432319943954480566350934757562866612683061098504524455915460068342495868369793537286619406109027341475352082404779832856464144143633094001120699160946289093802960590883336164293601255813213608404589505183728137778212834768600121672863269004455814557293118106704469340035330864176820019533305030769972529457805184314275358270103304311928090337021146852927216156360568375287191129286037617564200330557269428323073826349328026244303318997138235148425339548564573382646954615277115282258803369393795213891327396084524712767655994643138149290907626164500159102036287978985672868252305500173609819166580482071545840224133704728940012965568553573753633003544302556131753993011488717261348574627794568843283701968169340577634213663305237531648338147865581744054791273203812404564310595779942853593970505135560732632772404223695048869192722826304529591572026974271292347206215715087228426439790886195326826362443482492499344088293455877426366348490505951954986103879527895929587925339036792795776604673303771488934224843438062860246623367127374009590447646168764227020886370818035088584112936031516873985232463443550918943604301391940921478317069615079593058774074397202026597518062620522372563794373299547397851329436091304242966608749341183174282997981809092002563769523450446565540275557849321095661092840092001529306361881865497659125382382203263849013413452513004482980462347307475907688791510555532468199143786579688692672940494387535970921221102014191019154498025726074315226014689352741083830520943587876888104584989949680017040523238349788911317611246581341271187983084578202293250731794416862848001614044546439023212383377828114488983713773897342875252657598372550706264881249013130553298364095657885321436139313691223580330435266761842738194500608107540090585389911666750095280820984693864017788985062920014686252328160064009619397812910577105195514016194624033155235078933702588679866079805192517804634451534483445752508183661001617762481810572638083188659861564672505064149435646135888448558318941623687332915143598798586497922270688540751517903179966591924531077626225556569688588804133683584721042136266216920724004827798404073478430427647517819396031926883770494634811484752260211742595631588702880117725330888807052515334321238530631681022574935571852147199036722365924863908349996292319031145652005964335053122943750996252374761726778974404673859039998306229895576061184913886179452093952684296219178702031308331702919710186127987225084094636723418919714794843239329496094172850533887127961280236986265429941433036870958763007965854212622160249271025047239420629720083480481221435432285886982996720829525632758686275974569654170388411606661325596785535724917712050840618046669639164403817205183152170592489359703483197066082589570177659766350903341107880080782951748931907720845265587703036652848754085322796748879157371796515215739668714963332447897728887741422747793296584434187450363526339689495025201095680679754851581975161640272071221884205520705432384277128654269922539528592417818038849352808529027193725197630442182142304939798733390723045586288444699715392804996456770304454066050347176575711257728151512603714614053364765043136328180421507807195551033197271130957727919426934018969819604282272091756319326832423034775970767373872326839387521877301859761620654638151109267018757005054448622253900156059630374842529852885779191192239147477835052378947544081245827646852306734952616727183537467449792293747018571677122841420386541896251037256738383294415483689766966871517095729858059055803502501307965150707841212665137183199883910608434215399745236860034827409936823822326159699047379423922412694427605967324810034314654993198842909471701157574692232118214430384818416813603223643048280377211486634141371286800069985567139500984670051732087756714414515494562627915301397471773265768321284294378925096832724834488880055087930326837169509634793809984217015702450985194608612371878590308999634788070259059203839442635589154888370572934161878591592463717206760968775269446332073679400308727032768271024031288613554359902915246740210380101868787720260491123299237037781895611644140220822583058699070734018175681866386132538269138994808172924833885433817365290325549204156874087147267462752272830191870523476357740468409541010200556605944171155374934687411435281207319469319061035371993782757782401616492855621803151644500447712961181158048485238641029780270217713617514113051980689384134177995247055849061916872376660611895289870175980836583110404766793395384559470121114369523221092127305560150080906385664477380429273415344769240770390201160183989082576168011331870725173313559260171884955024015326573794844131380538714859410186626839923889342957577917191364951053946658696112577628135592135834923390409250815124011080801127703366327658906213152656624965464264968884086867876838950884902237424452435650689126541367884113830029879607407856976310592454964680184822940084921618074445801627897352719831112232605557090746958763097637547571439182849353231196847300140100453491893771621894141063634135520706799608920795006247659503238077662596233332764525356170714326096167487390992552343906301873991688965808406840146147070333080333903483384898031018127365067078410133723466058161717707247545829265937412566996268909144384288455759049060274075401005495285424762142218071992083840436769635873188011419641566800051981097797070075027992422065810688037511085982471883389198280815905204714345103740168447598215006966950160236343677837554506052547528916966206187895554739549875582999339620475862675296675869879395402082967732960067483988307172049927060646350528091858697143314113167039613742666947092499107255053068342013212123750737152696702817088735117654841839413233895267039655744520984933495724935828670388594150779743863201497251841042769120050523115473644556964157001263714749917741512304491392787843636968082380032001481637183952288420266948570424874941276580265640012583575423844643917551256259513624992555267884385307167367590249591906261065064950811717361498078856987684476830341326965369223176356326793741640485853942976134764370162631703902895624333031494778311483131338785585551024939945034010877718010963224377488625019226130871573358144498938692726146799280638771385701618309127632523158863480892582570310067012481392811971559265004241533455216009351140290075446197509469525921408567573411964931483479309740092215734402080282496684365935245968395268105104642646592968014744201985879186655507827504753780647145025023260238820002161136680842275474180042791212095056126359016363514221099117429446987222787689555353082701883128640306347049415607884481824964182359508394497199130201874076733557704535291717426019672914395475798201366394055051367993871010910499301749802600054414744013388619996645203784953798580641262467636676391490029454869990759312828542557691500614603169196823257775156014764830480255316636562463057023456711555983711979797512782090002932670068028002938067713407288733404264637022509744851514153476724673866851414807820950427472838722342321484819880607623643378881953053989053591238586790251763284988748075257674198947702863205235511680848904514409562942867261182531053892365273989505001206631263308119407481767997278021547839157735394043984686250578951136738668280706688063416590064058710167602565454414789316911168437618111965829808275460006723865869752236469834359627557953176576800032695396073923671107308741418984368623900620365643320150694009984109781140010339871013521451752886101495906114594713391341092868694767851439973252115653237203770039201021600368013139052110062741536254162960481418060439194989644862469210501446820397329579616065533167476098303093560536809935519996125800231964396134663359426358342680943368384382860731860199813886641609762535361843238043784189843202325698209073990023206535539911609446565853353505496602806462020479983484999277357815012378956256923079230149454899209011872019421802953663803839926852595074326964191789618000630384597284366715066292602123842490144836913881086004092388306091187361129317378013987434171319721816532487490321682026076038480727096028742530568150714764536024049480081661067939238130867568314777703173559565058858778394575469082153613330236272527343911684510771304861634781324135115012038057377482917262627623006885931182867338017183412161805018006303250395089385050002390650868786940432770511652100324213717549174086063958865999409133434363224042396365349661359518623041994088408061758868643809410812295063709104962677078182818229588300181819891385290092836024443194609671865327342457395984768458045848211584153331838225286708487782063123672654706953418665116922511663740825994758212168158428664622043035130762404248547673214073855655040191486219980784425115574568660842028613122115636028223830600234780684796746336005071140300876206470286038020800594279708725518678866782468947559657609226374647896268493725050995910171175716568106831307559688630988661110163223362312249858487350298253369794914956040756068356646751322517608843199587967735589751969069151439576488326493098076982999747609508951943018451858193806419245721926389631907670309439109094896362434453006651449527558046573972800606198143658832252645944711656681946825388380277932289210813054809858034488840500904930453910394635492737371495890600990062704547263454447210796550321624522541426680158569146627307947891484889273619798605654248964116682956392082280893328452911856329250804145767609684404785932264812997136516366156313678522553880856966559487675028908553494669014097799736421569688384212525276405080325672805212113384130837521041104151191716558621386511541365037793177240213657505510868760692814110741174886666648069776807305072174130094561649314211247513147897210069178156725631902186943502768649756401333648633921425599201174960611834143478886161700373200969073384409005324204021477236325408698833571676634925661398630649062031364490845858608399791625214721607273528165520871341186178556843233763494112402070991885314249234139693428752780043100365887373002920607303573864954442814107580553154115433676750874712614439326030282499907428502721000518633669248702368686967642257079839869640705959559752593790268654119415857225754198697974233620396692085519987656986184660662389458677348624471345845163411078189301631366910256817188689520403403352212520524700873748657442969078759160469701380219467926957886432000085199699275568464507145667163707862652952645185241883826741407529760252593444956535772071811166194815959051433497961265546920338701701078344060766684808426480511235612767788713146586793119632650145422163762392519724245281891033207295496052323020142166762568773914916333840892529495108868634409734574557455016098031734569789919594178600182624806798162483943470844541280922683457991576373484805752126739756424044594407527984718618789628107921988659537997007880915215161874144750458112211562182705504744735732302822053241994881032167795377570549903548433308864047580319680460720895744659271261443137804290822632567473647217466338777449890699540983497433193515903124371321348760393180974439190405681480791167394663021260762185299062564553315908026647278042468192311843950677134883612344541931063288494272558389373298816360632816980502046403799725700485548943192568585456230949073491634348457448135414597771613987595640992027200301563703502365272706288805788608965981029302600581310080552626754058885403357720151098294319573360811043603784436764838288128936891890996241946870631957005423185548522311285092492262596954792708175120891789853628052834525621879069820022010372945891185907794464141555767996794395797249038471982398864191097490063749487037888443893999602736638020855650949123899553726374859389973171386986188684490125797943215225357934213160028520171641582023380575653209701274912446342678723577380190528936230373008223213031771424368433632993367886627432154589596869319263317890791537963467069008309366167592207495314095698104580733592364623729873520765181481316403390173486956063349583463005023561612251070615655661840770529580820524887761470709244557868772395499146280504353939112712577505223572694439534928424191115057429302112568639314147354527040079880937158200176019738455677703188014099933563191950859151792504340889829490079553136947451921821166654917107257400666286971081977387990696088394846827691046526593379877427385811204948137083254058406140442800874010903579842937357639381075417990444478076027104501346666956842506834207247465350931903526993802695328930121380189326023929119298370345800415459280399687573424461859811750744415439716064285982964638915551594020004871635097819498535336489448074332868509442288368429259103584792602732237984720096273136300712264510338004986457051516123814222584945658502882165539630801498081523131514292317389005016070189839283158494461059085566391724272954327468949604984691133621526621888541191634601026542512086367369367790071533836954447081681293160942827121525154398661996572812852705527692153534028932553879774330055666039214108574367195348912575059565132934740263701140475214504991904951408099521880761227437880172531830871139997903264662334991127964594129012037278100536241366498010686862227639393266371311114719870921766185521845259700327937166366231440009219923967683114253329886565297902320173957069912961917408225702962272770904977410333361148388974501822133384105875386056397576039931172860321691342931389064093042656924420426964110708960064669811413424062861730012613202140910653946379768518941200624939326991498362377694468337961120017737110980732503154131501891601983969675384517555477470660325176824103837410529156432975915522125519467240005493333466837288013487244302395228658797263094640766808188353392321819335388209877835661781285651822596925633381635532931765426355814138962040493454103692455499382830349855280318555875181484830727065801204054848843086900756539853990814345312978019915236733196882521234630796351905721149976946835091645855784075490299805632213874006663167132418086071928006484400935648072357422802367494630595548701795743559349816796856036507259105058708321665747081010426011906406705448714249871536306405460871172184639360487605960697437859295424761404808630372590536817535825630476719185107604316460689780298376141489494846673898259597771031518812521819918352005707363059768191813798408277332027660544636516706803791474964845113303256625695411791885042429483222701244042693401860715404507013838552151697618432290147469634884987741481894198693456103096454773188129518661258190087993481839558706629642136574675923620605383716807605409980160681296941604301309319229856282876208763806999028019712754277005154649854345639978771633224548985547932134668943751555258396892713493572725945045276441795191455877451442216330506600326696463259962318266892699399242295488566922492919267032484149789977372377750575794987143272565358527108379465147063675512710822861777824862993941078883908384955179457705363447504870697869086106328899999329293623394841220980315047337952276232858512709568138512375409043082784042141894370571293326704093580719641329096421042294614989549658651659240891392027999442952725705289399908710656299209407840078632931001654866700662702589242878231610765757436446958349526483622871418702504610760364174919098169027918091454619488695440249041521396499506787917242433106526085955342170007108671700633212979709791574815300952170620217904366581774599779488951298602001766384895235601492101683818918109865170007083737575974247038786811390946984789326695810317198032914486060613281970400246795517843475407162252739596148348277836468665256357525762028800492354035360762792351165583499448697621151751901221941153050004351101637722871305238999197318376644260217050451879671079767515791395821086600555797942337703400241383707134162082301312007837705948068254460575405028955466983400423659192344470407079736221055229728348612806002218318815811457069131369660388041770314777232709161250838627385050836433188596699710012612834571030664741780418800811006503569151003241738416188294961074125514376272517699499417470298348685340196890857354689652194915478663024149518073004513695723189649181035755675026419346962592492327670074152278257465810056220023318468211505967275320924389327115240963386669660044666586896996939457661114756391003549842060661237716429304896729817630155673615364856208644999705840383728706409877749967869490492197371093621971235802324897316782115093213541338296657442068541871963083671310004440316135657906185429416057205194472546637915863755729025932144992184254912873171813778075438380202564552923703026457936850155789598918713667579032993722595738445794573764467177227827502842829997691775075842793595287128401357075788188665394446990689835943378244078425489209399489323603085935441138073732972885239467212810927322957284375443994728384494094002824611841766848833160105891780403606351470660203210288368688010476888205506249785156053030681431393408827663386822026316378197034270744140311954832088553415004742706183168764646002560616280673983827597903336478805446354231269629193239105413157903914151683259908973434311502653874431837870637616182349586030602624837600378873260179964286311991711351240987615427416803541051379357322078768527764653414887136520560994053554509219637028451125404061295974974111572891993210115949662512717633469977776469023972933597848382914124510471255391302741298337940147627965308823614740497599911566524798383250197031726714806538817910739704928210328752469820497264887578864360344043195434325308342303822238173332969603035354890461322518207262283859296493739033287757650577530609590830168849977025441627333087294773644099909082529091403042569679846738671425177775068983090599853889618934177145974093048977322154473978592992338062187011695308344666200620766606703864046835594741635682975164591352500989135079875518851331888856803240840298178733604911324584169113053673361671954194908935421266016827154665730068387749727165792253904012337288904814504015262901260544738149075987917160188666183029487981529293748726604217225829285176724349302150856353790412507671023894436110547714233722662832691492828335917599848199156527542064936666450549309348873737861667583861054154173662344928729561891383460907814745755556991844381394616392000856567048344168169080902946509887767366320294183180166772239599748716968873212778677393496168599252644692449104790047778761457365679834916007916611224589978829081459030321872866210837136172047691852759437368133012001818802319013652501746882889574671331570279457101831318162166849239087288777502618725077861296132090357172191407168253423937895708011813900539923578830219973995403277518679754536559523110463158579809027298627116966569834393833805497626138714863682896896045284168586759777015059907956742703767291357059268018998769302267401469939869195723128378653148164241497516390633375948850146434461103274709097651815666847121227021754650328733826655110061134094262509572431724540844167808442233894145110420710721243587065791712557355212965830045367997521027818659335392333998777182409309713196572602033999014277596455128961209012307880855618076731548475189730405121318012768667148803685481279750223447166111744475893883864300933595051508505747693276150395141560521294576975925727113833559644016100929195780088221678723187093706561410830036535488006915219276798258862157730636380897195216710862491251033851018715260154234459762916177510547440589715725045361664234981821653647042578815807436783409500352189140157666707419269533400562351540637479868096644360146832243411480846390479017300193304651734710363149103511276600361684820988633150150342647388708629102771382879504382981176552013958820169679848320384592553815791800980635654354930051647760832285335968270643849942655180357203541558844393426203091451098680939132237249666207412627967018110760175531405065346629597418179078456146651183013668986835136253919511258281134326728385516043033546432589467904924626484942169178730968206534415216828686343255651565361742948163896162990901755107508846043709639230021386703961116186317079337525708946964032174045224174740118808277588156921294232895149087302931716233290254729444486146175591706439733322149514910554139890913043624990661457135214162865681063384151964189545987197478290556365937231408510563928252165243542602077848766346962770458897771045705817648600902145053228792568807172282167693982778967858354717546850314352047421109919974793774702189149150852647068140890926789630808640169541004696354078557813044374474524371342209066113281680409814144260071763501935295910948984296617283738910112647597523850224753655871143400568778441153246761693083031267191839819334140916704001058448880209476908438083012635081754819454055789033428303167378623579148804122178986884970103516288780560857589443099923564530634832882519022907775765062823255983420606005866236090377130678778479867997841991985971242265874807478203529976667156540783022891714267622469230619039470918023740908419564396516014766598719638040998741359659261613400151314546974064946907813708172383294561431838078288906104573891728400627765528742291300484041458782561113916266082672452907791362052341964191427675240123773728398613773315592023537079150458101521867283831328611941187554015043490270691711236284333517207294236072491743867439676802432125642829805395799784925379384051098925825800400909084385535435657564655994398705988449364121368027883928229431969824228587550160392310445305403766469513171854285190095989587246220129679532608321386874141960954362976458731673977210306798997331563108331467084146322971652436837867839378117400935846861392242589414883733586183860388068820395069058762896947687494122070600276661581224540695536746816498726142408079574053557792332486608233537130756402267396446826652086601795948338220459787178135334568153535907253496919837925686497901611810787426633296703051715948822356945619529878894001658631093135035208776758745655674568759231082633627203391971415393829553096507545310685557141148905739666767270547868706690647610779205124979682570621531200904642039329547492514236601861873927351753485640451391094490483325183758022807589867581402154514317896586948381987441801490138102762777939027369613591642987844793490142447180013088761150584508705579741978248447563721859406908634130684465618718920692427188457586019243149723956629962952526877084854585751923682191682827461451986434993612815149369447956401451712443917735940701033325635577814618364212623099271584365926886841942142056208232040050557119722317323468493219968496631036778196053587137375483825637418030370191463940364802020890469296375276895467849063710879365705790019726076981390858256659264782069232958907764452716647933302049892449095041622322197938512722337955791018364051828442778104771558462559489643903174204907645847815140329867193682520649716636725053098594814845907454141239907140433594646168534980693337613502218209439164225785782713090764079925199197139828017662932185657575558403477620401474461273072936714913964654071626005502758202952297050073654028037535692500540275726189284666507657448244016042228075391118949086306075791076894083173395557848709628215862363982196027409488917508213649343542050605027999573970353628570980251079612936936238294367779394367290962467168426854362935392643550686029909866344179284245278294895737505123103310875029177433154059419283704967063843823596966776863164229986852596965559235081415924038955660024717211887386161080933375678010443521461440236016546224740401100614764658607865423284490223977173740579208722373823616046095332982038849329813115907285672637018535023141743847514141251557521182221329938207478197037435535557687229299522146000581257305280345445308679126365164867950276158225987261382140392098870498143471286157714639299145175626703473188292198870845465600055749908344501946004840280117523112048163929308196135822839712864528042553116732276761854909927595293877942898520010495484497080799631379190155565351771692474032235777430550595247461334409969285849307988533690754582329094781410700451111512526609266036989238497349464263590735365063793362742444209949301937643880550867122958641716680459220320336068317378275154209849305835985491169030629089099004514740821941919578373322542846420037703855767601652137385812294057666643026562615231362014097905535937345211137776730789917740134777524685803547430343342748663626164848510844228720508231378661967127051057281083648805386406007817172811287333469438452215530241382489415145952870548320670575543571528975122771460615001102288508855114827852511173254655579001481419960025695711131020868895581038991495991750778004297074156889608518758681569588432026678763769698063429704629017048462085288952354130291694225459747400499178666709016595596260260107319926665269696146809010783179196864388646612360102169000054232680894196299689976747204987913083754259592418222881734508050837739450191041069375477991255110054809084979283646713812391697420047068507227060217519743344790692729815314298003505003719933059899811380523501416647832471115863775716657657605512125863845175359548371682406372106826686278416663239785166709834294259777308247056348150226628425988244349234077086715492550367083373377205008751740678048797744270416813765035716331094464274160911858531534989419955511144075747383253065655576487189322396263006277628998702633446524499402545702709079122845008527178585964720553244406112719059765041685178244954886086195076670940955929153026971399548476289986034266402611905146949614682313849006814107779193105495972966231594441709909625103823234045644124058295222139149455121702805502463058981947371872043000793624974663586660149557035513314650063207604628337882946938850714288387415908413393428692823433593941132242214042390491916587376168924039783463971350607390038002350476714792991466895737007823123758411626694800799807304915068065043129337344086982144420341596608502529278876875137357313909758669590741670620468891088335510243343536811458017574046673660532001827354554145018868822087616898936851337226291765573637857215071670823249556188887899212627002203348743536037048705644235407128572929541363813541389338412885603604008086677652491670108980026588823761807404182706456086530649182196482162238392561508301174206032341587753723798323708621526184260003134635111851573796770490953031185272708061185141509565494110541298917599093778614468736043841305886102364277104871756529919079105624023165110962404290147261015006085289331350862680467898865158078681106245479628923493706684612077279225809864791124512532826402378461263199424180328234708338213885128107873403886028897273968359316986337273408037588603663134713437836118298503970721227468600136139170044986766124677773575926920440707394314821899693328906424126636415524596891613159116439729009234498375406373854039343796344564756313058956187929272498020286387942558794920971379801058989462692258190127552255317167761945852056755632422714567283079459685185051947071326967145033249218437865213256820047177913226302979668706856871488456278958428343697974030984436288240662903022730118088234333897292079313840754269497999730171737374536775747408348228798167528685522424959975535205544319353506308696488731576126208303193697297146385404290494923534694410785887559220425605186467371195263071665271823221502849762400706082873177795815967575314536320871490822283208537817258676393568240172679313179075783511261589624959709790092786763213722653141301459062637089869184552604138327779435034682981207653220915051568321088427161276766595281383716296258528285874532631412460222848839299976422000628523347740899242332252500640492049899214344546334787308805396478074000988458266811918507150662520112460612721755926789192775415430278880963403054907304225012493847051033419152501459619113335165458780773698626109482007422796932178292635972174871850552853328704123060270457069972076160228490603773308289870964292920560547729683855474162496974033060944050945889800191022460715119157976142799466556929260892916539666997994991385570248441238347351540415644206780438430435898604303630189290440699161867052849631826705183151794065884263418739905628975305962636043054363505502836992049792044584116161359159549044285568696088856838625146094737531974018003584375274028555407615292901618951505054811819598903292852554606646810643767977872985543348311045143788513944456628724347137576078146543786231340035580016078144093750703901500773360720682331115365522445899190383575865281310093882047095786472886039417044131338887831908095435326018073423081342999125701081177648810974303443173560700267015616529788941790672593745728689613448225173698175080814047348386562015985076711602046890749759232238615131515300421120059996850977530860254266887833901963676559970301251327315888326171618487277477896755453901509449440896704768053138342378381937713295290727846335537067140275070402790093730024402368988629711386564910673392725216501642654496778116337626471095890362218321976175232004737888489780472404230889185403799921900065981303309914536990790843542045604810212796917213439563929813035751376007204957470046255927707504754006649757554813068755312186460793970591324975573577078620796408687206289790740555455982522107636283208453854309252809865063297327445972430913783606631401473936583549992454560786341454836813350046441256626036931583038232210008527911204231471979323816952424146349170860310029010210929180535776826844797693809949684199882407149215440167537114494322315176551968310682789865435688735911537075349150553182637075441497148648523042878825844153931852316202083107824444140800447180040171081884919910356918477802941437718260830349090509372577519019950291208195075979612040676876870169335603752893184855847421975979313498119402252956550850625664335676748505882852959815798031145707094578404984333401256037771068397860959971820578868283095364851147337187466138751452175353858565955912677440118472183979986479180044849644513533404938441136066783043752111197986944000991577533965067736806801797331057356730753398711857058856562743142441463550199378826735993098202700913194089516308159484454922429699660098278439173802609852642721084599107138069765152204684410540633551570168091907542957271502607151683690250898271049599886781643206982224788511550403354455153772211879966349262450630783495205140606118765044089927559847699804601643446776965669875670344779121174249592810871941641833486888836924584745218276186120778207237067115598475066439687663922153812178165176383017535576689388140398301732571230324327610172830659884904689837480985589161671180016064313975240762161086992352905334076396343646383832195043178878597545786666197488990193886442706699557223393771343319775844848500913065935934418347578810795168580249770539151903474105717928893678805437768112276955676039795458352942200606846630233038330366567572064820440056282669546578719581351218060671495635927968011662136732896661410293421331291988714099266207877396846760788504117998024525789697866538909876913560099151654001839232615012801497070970908774219709373005806729527681814739619572203141637810207351882061748143717197595241562918297486721399774858963716135889574332622796674912376705272736610505581724868238676997588078485601719929507273988351005364511614673380703806284407752673440310513486406526159292854308989651800630226860409890933119137166843353034067991382741624437528380249620904877171251862056589966626612678443784630615391600963919645694898513550852956222232904967732583050160067773925976099336974860037040305049625654924052499344130859677370621442518037350668779242550815993749850793933125402435735118085881870624091278195482543620401243890235963434674293214414801902676922687803729627159973170257177502048979135463297703562757016048401450413943255734187345773478973780660198174370718282582091593276193449563034528574926833012017316705241922393392956483234369427014772851786709297597037687265319121704199081767948787583151553932740650786259965732504012663861293655658075071079892669259288502024518691261946084771083610331478106159441143298592570846411888601929516835164655692184899714232345231594135162091045338485647143571410824305954059818174557422726258505131614599269483078195475002924042335392718932344410303645756693129667049052929364492134488455642117394770194265869631437695887657724538232986122966941653975984666501692129649136998582741803366767137452392340894413936195414465707048364007477763662300832390236812903060698669988407253559486766986497965207846333917717096614566638719554027197936894583780115923739584672913855755803950302811851274054919524713346394512883864190505159077934409778586141927456180752499377827966785324342888822375422109983084740116081711978619068810415396284889419014625903753565502623635864913847771340910662249081504171604295693959064165444974947164143382708997351926424912875591799592559752971406039578258275967148323217169213705918137960821081172271963243578596451834151189714586226543942823795171107425680382781426467215839205766468748404377137429683423839131340582589894853481041787076569467185456794698482848007808766591400248000364624569923308155031577796192967427968773413572242150181251188436899773284040564741644531740972075921083514701102119320299849724486699181250329982890155491115638859645774960985687076070958379232360770125724834877394379096985540053949620408860631158185842679005102391970158455447903548851845003882028206594776647661386601196506641307163524751828211783440583094871199539472124880175252555092060786393118975442290021889127381649327065539154680641577050117478534623601646975901574125302164247472340607043929473066175599681486832447558091401039566421611934255785322393117001954886938854158671490675856320913079052519467163178026045956038131923219266312313237154641466543209982820348875599493043174934017129757539175786335716262528863086727401255650965187396991087885295938007046287415500846256587848625586864275861762371592280433423900912322131344023775018623197017172412476556101891480481417764893670012122747780600865660139801509260922749129454514270767436621874188226843137206688904313481868548122768923657912755463808733058771711789081945991351985969427124818574604551311556570629408062249637390040106934508925961270707802364605719125753773072858281026905057515308884007867673018432216902844369929664232003744837458566785446305644500711580512669718038806803626409106473629118522634548369467653995949739952506988515484417227997226255952533366444876382531541352744347203506118583470769805571846205329530227888842564541310808465825851802666760810868921214967499739693420166700574636097229217558494455101905542325226057058350424445035864169331966709151880867547720488323058879235062444839046468788820221549194462151388346040135260073970675431327094353682443860338871175462925138989080301189188098623331403236891288422661379723663246538196346391346738946744181027763342019632225524821963266186570557340310968702567172626063531690076747797273318394788859169163001891688299937023191731045084826041972980560703358047811216176753703766444594643729227326346932153318464123233915789573157138460705995331318614283107443071734575085200927730949547960188687123879883246417876701632225898702708818600956720362134203250332910992808635576401849785491861191112852976603984029555113471992055113688631403139215247858400374595007575386487447071095152665054955013976968312462173604291176299626182375725280831966141899569818394812024775865281550011711253361112704984312205248524352328947973477247005978421980992258959538297612330204033727630669516880339255675659632940276005638704832455440813134289940642354811013298663038121172505410267642524975867279229797670634450043728128626425842097116937103787609483614329213722732296584323936146930185911626630525337103522339817834359968070997858167410929826134578305529003706929706084789834169898937987692727138701193578913983631177379684881527911952901129186804982403050007850749799937615655801612768709839257412528597708635799169319497177264807587827926829079032779557706753623724559473906866779179884028713744693109044783194061238481222550777924957994668133839712383620030140055485421566261142824010482649195467406287199127618358729899705282185927923948074287830941626766469581156535962757256611251257345431437823621254984086854919535777694877493025270526305522348328729391040327766162031780801555471943003977529502968218799714566459518620926189542320178560186115700576143641592230272993398484265392513511673365686079657158290693725419960409165314456179538188732101315549999440713275909470101084020825268585530694325274819503493051239218031274425428942601134565428786484789505186245605777148122950414776942120893628140582308116199573042864602967825154673684607629553094191155828640961983985985387824261535486063994802724037610915350000429769862029454646113807507654011122245082977498802525383110697323083856448194263275481962551122709783334378444642320012979561881258081303515649521801428436360411237349688531006279731113509785223309068316605293434200762025348432500382326252681362221926122442305639845574986582260600879343901975495044312173664404274661570196340197076984950576943822593192461735765071076579942499274171423017483695160708173427436237766691772911823768525930183301964481904604633544159613642794638498148666161291956183400237156334558817479340256041151323163030971413106503721311055797787765322654350965804204991921333898185857222888758323256568559465798915621752648523668453409473118672234869519418687463287391670019959205602410566425699314894330167245609874657846455952206554740651579587756936129398044444249820715149596441382229942984394351117568095383157526347054373118595099423955282884376442903171215909662032005364173110278013403758047649447272023116444619213864164688883828261866273791347390650751349852018725487453301898513441482648014535686071281509086408480034351445028441748140699631957804380107872957965252582260615500863440807592780916241475862026312268970880308817584710886158114320139837644176943408743040787518842699389391904812888482705422935317070870276301279627515935636172901316510458904060441552917860858990507023881172717139755049733180024416574228753685751888968297295539085828974070761663454488318037523885906571607182986940055941057377556412741905492906036867253680645476896410878989430723123857132532461515397868341381135268573834672207913202865399702932276121533740642539146113499641675034806141881397859356254996708460035630044905499984990717594188237378210256935771734261052896968133447087203660407635817795351749104491083163098229025322670024571797173020455028181513465039841592991043732137585229133222128473688753920680179550506027541825547322358485125696705608180832110268349114108943759080426538907304412713927919413568725355251437062567579182300335494766830487779449426360249978773276161584363117925115527544880000436542064211292387151225714720649549983098701211662148751388767136483503057816094114373367621088988320892605222632731006017531593104631541193667158709693823946543197192455392647021887154896191340632472585640147739541759128142465736464696880925926364774815427977965103519975630868272906017265487135334656314668742711005798830558122762053466422446688531232948149542837135921177440034714163981157128161060344896586289377613548423219232453578946399089252744393555592529538421407656333004664015161036480805044977553218753698122156717933351190878246789252498806665332850005535316276329495727953466742571550787760923079207151319292329579828490144580882652132913637051412421569889189400376073479988646116828153325623123572712092478083107666190767089450262470275651118523444239712467494054841891793264830251359510832746430714759655714509400199885108198168069817653005153796627594619669007679926529392076277873607326926373136416986413321991935401720151942487118010538044632556984641622929811313527616931847339152611317811895964020332598463207401263855516555416033721587409977735984881547604430196265899930558827809306330510541920106230633950875861260154446749844870969249249581221331845317851522955947381660704002017085889043190396947907840930346465329116846278950353728738366392468923517646408148178031642224968013922911617465694510513597268966209173573041793228507877975595217926750814426249597185320601950410390827775935092536416009445422247679522833877017060896414785570120440851857694383657457611772447800570542994191092668281016616944391419809807358546828969712643828992199484986450457119883872118998034405838605749937374277863079507546419266319119190233632034484652870578585062155700828706679862921605267272187185799192448767606070931225717233590636788409735723244984817273047327542789281354223458241851351066291920303646718350990406012773989664388585208008016255986685388322953374927023448168765237600305120359342116366110253617623909911469867615409266356914034271693407362566951416644843316679735689573401713893921357429004494891854600187714707091918627604007128144112164959546379780588857537195511242658197958710943329438127201128045510150839433972560896728359182200457310252013721111421973409274488467882349625218251470667465635589337044807320051270778585850373918932159120877484132152228531794328499605450370142552334375044938826806171840921192024848184158503639178523985470568713491850655395813556409741736135121288332972249269510588805590023570791701733752844829007107041283303550474558688171791335369268808579043975925165413190707577266549749296407370492373355253148692984653359210077279444832539461491881143908891545395693962651858115524340034403574394649893194630467135315486511631599209449158941684008598803622418857078450084566342761534960950836013084559935214806072680397171725672098804709114230696567016165765954515782120278822391589641227406052089216668530090940489460526971523048001104989114357763321754215408282822842218357355467992578253313381146428612857400208188682297154981073054927165443215549694848069887689676134367280115062282872796284712734014954822914511801006280085090825695585015841950168733427466563194109071070049912299929142507642722829081023061939334490172967564451132527620790912169455450394840721501588523380874230975929991410154684880712887171795452006776869355272534105120852063238117230186644444450786806250539352719990475879923606471050617458128867954533862836942625211509123335561146831533830946282880785034737788784889322228787411251995729490348868915343535322317168335908795119069284919475736874259244821541125242964183145664439492326063907250092097492143771483037352162961389232257286832071751494283490548578477058452288499686707413354566444742233673661831292559110384715094549923030537949987160314988016990310061893423274979075348975929004483471573929480857479553470951215963704359670961902834564215466827156110868492409621904652506203836014544613757977388626671349508337657410900591773250535312320484691323905998461101090280821536432828370304092388589032600840230380586786303725532262970704039081302284366635082405896385177693332133331226134820041452772402443361007241092225835882742229436988819906087420487200591040815898767450064301231624250490119438903151769852926443151257844342596414935070333889970829209013747151186624709566690642466617539425764635724612967495809008937804978696329180460712898387900037012726348800924842487386557585275685752759417338669608322947293471665315459933622504994849663993565080091954265914368128311077576027468834133024147683106389696376657364515541866988387204143810511764741638523423278525013075285697822311710083319669568578225431027292053439972354410867125802353147264597928570368617912405656024001878905534547250720158257113759105948302383250485373626504622416841314196200785147419407714091368344233239384062213244930113952148015225073111679026694849794828196432650395063910176403475462938634334114849916511942079388484106452205551846656176722888368733357488449040454207504700714132625175784598902045975486983039586324488270408059303439587813396885661430647830730077982607268767736950340178270637863719988292001065268777412717412293046303861275074063852524020788521666692367807453465903584716616669831706673115683125861920577377709744968523745781191530471913759275095919422627616438956760578350448273708948380782325823391126177902226062382588853874218772064585804607127138492464066289495200975083720501854932172811564345855630173891436974732864277906918973936151726250844426552759339933095917957265255380981344367340176447768686220798115420279200653995432620045822348130132656111398920754130938053331462598812555096509992082855166365721223555430608866484222411727233683029659480283405731831839438043931395739082918956052409952177428319435222094297712510336832057133992768322165405420731885952292353556219804805963082715902820645010862739362483505277148054605494235854872754105978222854470859973918576376295262125035713813873359546298003219969475228778955668877091879421386011168467524636371017556603114253303420980261844405866219547664339146860444955309307896438425775229802952837844900541903205676754123100508428088084713372197863363341430438791773907349866781827631227273562915266054738662307954095381401379260564949220833288352238803745440521917111137884172652654679171058976566591101882330812900215366030643484860492376266641496407057078087487949725586987666848899408135227883772676967104859481161572630296455204187705769103854295267113616487094988452312422005490114117507594480643699402099371995108149769437099307019735932883505835241570357813380471572435140527370352258975621909639948600958573488176341097501024379074002706994537976495359575056475073716007405550253591525007368645097237675295166846254597355153593902745868298207425854617868068714091439648644571812894652657260897307244719009915620026141679266519284744943761829619845444703469519743447852309688223027788975270436914196260389352111141195205314140093094483455085020423631943733121852472801756093520051657146845401195551443636546117977682064303344046214541400160439660459416140408567736899790581005908887706041829901130624510200124962452554278322050152992202719169330225305289357545894744973237314027236534633730034327366110262118683798566895069676890508770263560657877285749636713291638294891683119177007501275718209570062974285029043551486788490852767109782240404185683146113715787032629558494929225623011272872484516750189452446987520420124620074155860495809424643850616364142072106761492902149216680789042172705875365497456135190095959996390601672231645548682114941018601120417270369710170392029899695113395095571804941364762452824570640363145227536881497324609737931180304857663253214796987171731625502492840041349950551494162471643655917568299232754936169809611566090022069501588657064332906032446518669702527507554630443491680188482792487384694106840444298282425470589831761039985068352084465972116742113772294801605141386935889624513034425474130443263757704355450869227787518243310536667964573474949018420942468589608484801051737400170066225974377202240918066005154962352663537911022667444877978575956292695066235607503081840466450332350256798032537096773234554743762553166141901903818304075948624967328257332312719429554528449708324709511680867844422637892154238337329676121230786102683705289200484294884522486315174255537446186508265616520880781462483367317079020227168789597385009872622539421242947202642868160864254395189314112557658948553279827891760235998850122332490967025875731538113531826128535351461788340599967582723954448055738962168502565963569756796400975832698651008650172040421513639034435312402499351110307841644014113373761849632004997120569950554974284722368380706826314571657795587233561301341795433727880176613085388948618487512252854700814038074526605357765002532082850991135739990460240458964923388207285628441530340135412533939995437863868077066683305347752936307967809095360720906279940281968015151040026643458669027761635493513151038341005450069531886693016070255740646921023255961148966257472413020194208148039456555555638125243625844313341268575908922222581211007245240062922433309479090806861330366810650857447185589392337686272254478876321622675026298986194684389225246872677511484921442154040259925614071279853488209068611449965167472286775955212958783952382191315190377521938486334949613158757325841084242497470946218757624983241239172723469669489098948693651547125418028147530638182102942690915673654633277400837898590069663367301136739856627198977028188475335343357612902721523531821011207454284229439808391962041351409136511413615089765597554500982466465174582243161852406380146296743662842875279650772762445396410273309480823898014912663886476655115434872649765449496432029388803536623584582885069468268528132092036222069681072309194838919853329157574648083924702182024913160104626872545768646806932950493389812737110318066377458947900579230961204073484173756145375448227443133049134603408059134693453178954706803128363934920303570212526298458142546569578108670660645883893672916325850870468247066212699670671925718839990227267817653546376090530781090813399231016985666974501127004313014309025482986849200553629721092311271523780450136535447869862702632325117910221603798963532783732462959200129860838330917506290018716756271808715420674320184416627968969770041736879967391566560640494158614255526291361292385042356952676639177095648471045811938352351231115256601834882698702955205567135949988352029555876463152236543406649394789392298895748693124250947001733303736106436619286013113395925834159000554061531642828826399581442303842262534891503119467325468973452076719404937391966289709461763198926657997411343707646034709219721238177971472732359722209984985512261233185568258910328739082022705141832200680047607088689683136221993083044038589456969380660047176882512346016299370808601431644107797388881622170763916099807545610387043361005472721401992712307294872941693051630688656949246591659956683775507640262799695538360765065447909772624444929932645723564385021202293933183619357056017014468805279292281642525394972948165923897631888335903150958620947443000790006374300985232057607594245744165275776806112316680325991227384304785476681239358709567238080302865466804684854675897941364526774829924740871026493701222829519816523868589902548503194633634909533586143134653610074639271296341622473954358577023589550927136327598750604526381642193595368646304294309872364712402699563882407719750777946528831466425006158072302314813034066593018667079337590989509897710534765382959318257462792252463895287682649166834030588208377043005275610589571044097365138678971269626079591419007488190742985147686028748622399040377905135984511224759189402758083005456494473105893498723354261389953432594460666336000071111631561408577460712097234702713819291469957446562030093815498421382291382587440852743219237906434339494451376002688677201957115061855832409618953008784486613978254604445375600247831108770552652327970328332160279851576402462671985040484304252738566613193422920083659488832371310829312026784293064892046157024542271218225140084721798129043691619475684892404466134904646473340046270090140886362064549506871785824286717427073328743276724621835733855442620067251549778393410461519488076651516567775520078188639948669167099301820778932119096498362385623447070801464631556737962885105138151132171019826114896594447394767747005440796750328842360446562795007275059042238960218488660936682292410829343443410404999563622089716092467186746228992165885903749924567692602959061370891898216575649817652107885930664053308580760675709297297625202420955074922237718588274188036044842479970091808367468009340421702264078327469665082987200518526655181176730658445656037589200646669776020026068160940355534375575338318931394686561288851072290803928778149978370233910831650302991003163441680477333536405897987356093403775841448488702783396072857252940897659110236281610436670532949850552742916736761086022864476428541037192198468090800615961752420497210242094837437482510309944835567714767354260263020038865261239959722036985161636454487285854652447588634997785736762866702255973882745654262255082125896680574370668833591042985261317661601206698182272015254935704499712267314836066349419623511635419965592188805005000944583944188905962105498014457541687953483005758895394862948357739486660546531893388393795731792153445301074432958556172372700807200712146050255792553494953668390178313148683168446674709998406035619763136907352047849569057066697267196815421539339430631371219051942924687003888003184409561456012347167560913697527198560307184406503415266451041105969206832317966853888831107883290574001575024905165953624500466595296831665110852201979625044838607948463777325913040164333575475735173659103767514612506172976105684237692579918275269185472910803478794400498531756438146008870229224236229677117265521944421500139678513578748743868134380873527945330336283003912837915623522582523727736342923886963272236191955990391149256770811776371230546605490949769854963803553651456750411425389508753290424123728211293618946475112868730804063435301713385059456913224037810103802303394590721770058128205226038032970154960727551074042856555980685020172105482858920520925920826317288074719958158387343449182211182773862246262080178013416636114869103223960411238340507852186570558232037479102096606773472608825679918935208936326319292821240466976898313459142523684346822092087652257995072678782556993031496919556318379771537226429442307567858511335485506422386198218175735735885221045831646162459054223131175471187391250095062119757921689796586543766994648354234643584075332813498376085145869387497339885966780516076572927216212804431679250439171169107024215504009294390621264841366483617620547091034183729945310558409046719349643636615978478147467228991789761236581469027744076232453149129278724259539550162068130528461803863314678272042825751995592176665600431365015100902013096206349809861552178852856420914331214707315370737717102971811367009076913176279678203525639825185029032218784502032926603228668345595102703077155118163317004995834463114096541147007768533684104394639816444618329741642503448655614349955300859664126455673484378561765386795763112810747371622420119055493977289729954198870803999236887640826069963070032151281385370201330450441598674601494292402172009400588374130887976144833473655254288423101597137410572095993991314999760287950842501842366813755423062949221315279885212114440808818879730044123256929142858439984387661714621470611722993493249190676445272217001437680379636338779333367865512504952839944232533269448979601088583516103512100062320341944002709235556841923867750635729019847310709373584765955555440240507418080446577768524975366480616698813719748336988231169970462407179199068071324288499725864406562278427505166102729101780251320549845568030543508962306311774079057860828418803621210823357618184961586770657808408218594055045409197809722624248080293913592230551402104277662811847939791524315358147788973650261401007367271088744656038711526385763704238929947533527400643362467251745110606723558532246910048439929893889680572974238894111401654365364059666468107038909790845407695563456607491744983292054846427881118886033615839587372390503740348841908610364760958345490566708492603419447310580005062607979259049294393481238050441424458615627562069445804285904629507423419273323735951822402371958966346480732678643711305081978511982853829664471037543323645315187119353657036181355072335651561013450079001066773823309528203400266033045327111975720963194055774134896400309285719850052691293374660211375004173221291480026093466521375932605721449852211003580714931165498098655850924436455356597792507678280053774526885970318034099640092690945458908040054987526708252926539409438386335649594822860698190895849715583385906249119019319941984581991500443462876063767097633914086585603327761825030209297157323508317839548550121211804272425606226321187628403136430564930147579075580215217815630385824116108712291398107700600712395393485044917285620176007615283677433311489791072550485639304673805652882383944123407296534584425629403173951247221236822736086341307469941662192951188510147111559079091655771527882320155574569767436915635557670007825980807507604469328220640195651043520971827868047750077516008737761897641653257760047467788826990803442245646553460091626447046518923450193842669863996994638557196132194053003953758847739837178596768757087715709206086609760029349966639820770868647766999306967183379450051258153632973539107083157020458466131713563680676678105670635825420237040821418154443635552522660591804000198564359871125104040124550801267865739564792838182154230359069374941267229168874224019250566379149206576485858702178904798277140152984356013721950549641702664473455713596068489004642452113776540544770925584193688571714234517500492872442939049251015505894053294146757729862547682031228645077557110933529113273488289499638213913172018015370956091258844759756469404996627077850421659935074958433488737926852193534596629877521640213261860824673149427485520041472083572086186197938756993314887853909484496216865263331318655629200105596972202716107113863825079202750585279795019073193432770978329977741773556051452549177129994344712739213525054281908151025418501268183933280275136463593703374462682223530224717076725980057769885703361636456195447872312520058971392367265944730558511237131181949724958602072403902580377668320199233868465372850343061656036264686851970036043514189133848181476255315119862924800568749494141010652134753791522592310534245062713669314166817907616783082488743569210017373023037204177988457714669969760997404259268153339241098839422639668746260838599250094829521533609764603372296400478669299759467395586633108309856946527392006103107002968110730244622275045304964611721672477710356205327169786967720006903926398389923232413939113943604190088416190871933046430176086228779717234964608374316642711939764827022750368211863244944214636274428869977765674597966460475639755172687818560135545337549518807503040969722952315023999585884075450662789728185967106929945141229599522675317306728907691194710963798097715029976160853630858006323741296909469263551754755031192811051571300872311910438811264360078434848573112786367746777917998538335561131689197311372820180727920319337103319635487262569192259364917875514425429155462721865903443993544622235058376805815344979418128617710975315159956218301616407035187805796970396253888478432386036018653959530473693127236639280243676453259159228411947589218308879213513878062396589523143798526540166351746463515923795303479867824277186599428230716974763192034092350885068950053246321891944515148787247352147877022160757444017125616660288253060513522427904251350296994344236134914609585172562944516118329366538550827771702179738019965152526732273725632112388112798029381588952534445778506097146068959658255881640366406882523373808194241407199256255105050610004514185219314171370320368832153110653984868835319944265581744510500449399064779638002456319952362914189712285567212514410299452605111848084730645028467253239293726839760246973207115398661022655821856662750650802415401363557360309558787040025954588910076968003749264253451625603291762116307247350699430438561249162097684865644490877289567221425774764055574120702994213523409392077126076084591894161434682187193547164396356436939127169909374960363369853024265760323070358151054334086951796952940497936919607573535989615417349961090113097896453587817375064322411064681858308346546921333373410526224590056841038103494765642343570209884581164943640933262557920178237013692084970495255605106103908078236686106163625540178576771618529110125870555105460964249570524810100930356918758714253205678218664110921660832867162557947425488223431960524005558291625761318501475482366276317993511702177707957618844346415582336773777251627388451612282180286585620126062408695676807787211185123058738186960469826753612690942266173561259215553672495452688850202515502284087321877029836712172452780063204321458907474949931033509678719898890873880251891259605560860091463880573884098434354627887290815644721245803285997691783589751909612985147269985295550865360859103113011129185503474858485923478015278518814080328807652892147910436799279869524130219239059861070652432472699002082962766986202767183183745969144750224106641583122679192347034675951552135607344089957549302171067562555655998373955321209246862371487361441683237789507870792113335105065594434802922800894772689615244213540555906341807940330647512857823591770603843540868138734991580170352062076339829438215717642429243948069898381822658045283026381478472083752670220466234917973832100840167845669696737571976790713832262588988581322350625129100071703357274230934235711745981223649565607499943952082888278328044837578285862815223184410802150579356220272126133448332448897087455404965448369823965032619146156415188160034393781707253581201968397772554892033216443498735932638797788370700916103419515034189962662194512764202174532200865842593585940411084377877669666610553272410173841867831459680760967800429868429125225401032799112726644935158781266302910304733083889263485183168616627671467052777567630315779570139433289056635939042400999107408675958207704641407733395725228428813677067989225347932459216118579615320779121004541619249037605251833339642776937304520762157543768387355006236405493773195765230735920857310648185501096687732845142575933045057354974101953358383162102352149625692474855041792270788354670610206497547223369849877230523504056570707160328245731001210702075680131842572316668333238158477957243990004651221638519410000324477206572546739819896466128965381487684892985322789345040852996504641815949333193296338274293378388503450205776802118809990703243644180793765461448352968317032481586921894838234743550863932600125391326050202083222031824266234108611804513491077986781938849013792094887346337344978689287398324143202234524070075345862794972304191968851062478841527133349943830167951809146844231794018526080576121775097089854184080607055105450098793028943740617548909889356876211738140390829979500433164461385298376608918806908742166494575286668260934689113222441797420635341518877324967595589871775924212989784399595009454648688951122504110711813867761456593819834200991981468283663418573812304368929228347720855022914773436766215654552006865540372537828281274120397778633448660896503507018527412257038376549062921758235548703061083702517028202220635050993601769892741021625989398305482771633776702431663666636621592421494793135072019849599147644703326835413241272859747707093219985487684136066606759512356249423096562920169573609477504256450294801299590848576671094148840708401991689121540342682284677054313553469375761456861428305266838728640389983372397592614281394112678998717413683047263035932146649287870532693088572042063187765477430674986792709613641447770986926832935837044074222659698895931640069635800839135137520987881567177434984639928618700530611498675679135818346509802690165088028833615061108381753907926367316462153705826473993117549346658328398175235612995459892630903034365965135904999676846070590013343595600220376745314872708328154786337835318962721434900537297268798317401873097801633330150047182306310939701452441593994233898990155826534198749165170959682875166556071365240455487199263926510298121589759484609179082886309900640949459065813597850671055763349497937020507872250578502428720433445454225815371494357946461941177724270300571143978272306834522636460870197962875182196518436878341628379710308372014343886898047683336633854783786696343446863770611092535082709325720758034790947259520769569320141143730652107682515391874784382572995004747986760219835969247815607284147209012525680473054872227171441355542139419858470927388342964847736041151934211418958648694469989296050801878415905287820553972402307213008764331321445218014777926139028999372375493592093296393061410684878247542902377407811231064885909815499331547173371391195541864369607319471835690956428177768584220002187698185429482973949971823228786302606963103187500411055357980785995430111092547157149012982413186915596714350133489515522419978919145037255730074648477574940332264858606154509554816244783798830948090412276179842668472820214630633631898560321264157651635421006980083035320430007503166011482628912188648579551350034158069708757019915169021346509402490686689347191275121343391497661758848733239686653072669919569941162482549342999153308496331116009956922854285449527856840241352534374616254785259729725527314488316483539960016186172160391493758763307543724558264734854923689719506549157468746727961939364451414866537760144580267626109299485264557481381854440711113452879377226989007459659805411877212939111545263799768213640480038749507482053932387788311162469936245232185450874518232938536268857371450801470991753357164953190338099978273852528498516609795855340307738058355039742439557812750146685508788656954324233536304146893892466655482866221877756372808084249267449374462797919251510842327811833865178580601866022346304815670710386611842869789678935041100469872194033214043534051566597848264237839982142955762005716152970680104871728652084375560788973552960217394864127750607644514145564587471401932074756400265538054625450326410520107126614516201078722383718824255020457792820813631464829181384489633369381203080320139809416354014557679446744821874489283034691791774409959266484340231605117503926838790964031341254927450599669996110068242231137182416537855737816399311252778679676110575030067496510074411884342665893430280849325133859746249483787170994518659610044879583175350817231187021854260890414820921168559128534609010063261449091133831711916382590539416935683133230065027202763430070245575769828861389504606512109871671390559844031429094288525165201179095348361751478890056583169043766706167069703450076238362403195493561168262720147129570570842763469891492155983541138340439885184765273608396430755900590716650416211675113356244981294761868559377268750303171022522550204179890488188339555489040654900210626095886200682720820815462977622504964400061399150906115122492666011303216311399504970332306810114858423699033824913848514142576109841242133326879445802714107126152719364196655688388562739614363873829211820697900107957693204326594889445095240438785762698564264551972154066807123309689993247456135293929093403117603245786080006170644693879680976525534547205238164365731696433433588917373561358060667712423104426029993756881613330807429179606118974800604199202538686654816607303417439062112097639280415771059690559046496112895408237098477155224218962072856020593891706480151796741186623957118773800874204986709867472019740169381767942156645488513785676288785029739936482769662645855857539426556115093286949994229924358259619500750043874090847283764149962126108167734690493206195114620383740972328983560049073305620592455478310575565181547208679952540785991103659113974579915855951834462292382439888161806878804563065976156571614860890039577891972234575915283692783475010377718008117004327851740108059543222881208551251238333882529457509058880864344505103782234961348093819482712035669986629420111426951849038094636905847196085297353391740769526150385361946213997954225088394830159268764409872157178015459389267703498780790724734041157798004724929482710052151652070853628008150997924777821711058006816392844460580778520198114191233497189153450477520567765261429717656520957833258224000520392516822212110799839771418369893321149052536775328077989528092608985894562219102620970810786585314667673744040256125425308362981412917287568622639082583207488499555208380046135389521698886087961058909492579066914121169790791836715618338794847955796117881859485762184077153883042692526166248698657905586210112474091238960749852216691075007115093611127541827237184351451170584104060068115685867655897736904235549185786028986718813751136104749441622952456889732224943765935652084570472214034578937405786459951526110095728226595765846690675323162390863517900621594744520869989082355534018848495920669685922758836357638080325836874902980182957308004201634629689363659583992673993065397776386322984613245903456292974455631637901985191850990926894649962687352667645745285603400750742808166051523080313576399079393858177405852387171563995355485333744490356868155504220548387364789619856375117149039849752844883807324357133144594596827930569390947932185603369967991299027416081472010596026660979833094420338089047886445460246024740826132453925806308451175028710199145832516887041766229100977957218564563537140295712923064201627984833556931963429067491915939964433990001037769396456596884447677124196532639635394136370690036812364825452836381972571056501846862068838779174874965613363157314340464825753609243039569523492319876050888109765051920005852718987250878994389428370715496044793841505017964792678895638472749580434818755519403786994603398773992856280777357443643201923244579800959277465521823123216181219673072848984295988856157046669094363832967530482121118441085602477983202921894296596138567183674118207873804773354347386138366152530087806418247171493430945958528231096255424136720275117114685860485991531808771718046615903111281996174115909872872707674972718568101623498217728972869449705812311005827241272760139285072828610204574661495684189400278207533067554272196079262326753135757793104731273861333824812700995000072786306196963761213530209886735830707623522433736298552814853823323688040326726242737896747130184399871093519125595129448680504585070544606904651132224884976156216908617557745206646816412655091638078957437870259825684280127024005765898607044335126469201559826047436842907248264377095878006197642676501637921021246569330670123834238756457359411928959850966807546025502368773280294415557992859016382569527982760787090371795472063235094917998920690728311066089421336974010308968525361192217877965599136639770513089082389300974486802871040669317810845159045326258792903119338884869197352913880617338320118384554824804952976712953134273505334874208087584969247659813762770121310702669462796962774674793153897089193865863696814631135827609662373345444904559050748224506347914034728607646389734601784670097946827675709415528208531857323574822724563419711359449535512134431124239873755104115657447009341575075208012921030753038638417326245991509423375114155311971683455112981303986349720496383555087199301046754638428994870534691141678031633072959168251846747085827501163797262739491285385374748870235489029389800902521156235454494883346631511004732713223911490766816508163499195388916156955273790544165679132091456703602438697999027545288734932656319167482490006153432855620142767660554345888093313745138857647618818222414528098834351362223236802926759013072464431099036114814865024972549121766198363186937374150136552605401692254531682030319183924810370514103461423912480553242119364081441626650163067032499203529183288214538089437145980814280531615464549514992539123981944534705315837339335717728839904796435518914733290169931947541928112330166027663255534320963431082449191464298346942558679924627384259344971050775246673133212867392073423604261123336989697765073430738378477230164946385661227482045498359214584639226686954378115260416358512271367839796402282046441339102159667461437264852950194578841850757792229136011411430343761192592946041240748955859589686635855193656632147045236986437655454537626289771114809982413387576243400950455545617814544719802802920392611167161506152309431270436014609622865683028825200944618662160636164251581763457394124504407785372172246369225055948199476550956056443846729127430974648333395679170619227880678390741763987599832662568763464985032896722129327452262390350723727482165101462242235225605615158981027544745154227478902129430956277359359313357945680581480108198154189927795746283339569273184429544452010411516145358794912285383641663610693118255258004728257949541081207959003168866447378560934815255829182536085590194043066473611899143741875143630885140837235449547393906005464431248916083581779459293079191231243599982279865502418730471831839523250388871819185288741635453923901147675433012187719859793244316021475220873935698208023686623870391273703120630579288349811107754220810593739793006338317965634167560840656519068775140367592327517896485428260170536064733289488128785217987277794536652026225247038297867403498225355771814973982420252117849237167925716788607887036240614033726605847187502021160471477407017181657644938824521597764742039556980721587775721294499738978600255817808654129788912227622318055243172133879955290114491253946307254118668879156858299330085034015667495020260001632564828230901027413302787912684203083268460945319229649046257542925787244065312347528176501817926565785278976278487507031468707583001132614043136357915562056258082474282138854004520282693998913225587740570095666381032352557995435230927101098574535831713145642361373636962921631979676791745836691238933382891859456944111218294346291295308904699831491779598495240031946905015594555836211730409581131134043459307365467241611981472221705840297177738371321335064548717202814992479374130577712434248442895379740754169627212725913941671607175539829539568826958758378081361015336523685167576751416685581865679592576787987926697310412913187842703331658199868006336943348820517068225308674146520131267285667215041813660221508893511224167846480245136945562328161878626043123617564768440448469344540529934294406504721112670142853305014337007178260554959431614054989905933837585875285284383220264560146794111484257787346953796825674461761389858705759194467527635633566130989624281724124668253393953649200040887187563690978891637241346487091875309865836778078658935049624290046551484045741819081657634677257882645483788248430822120150046400260095352463253797114203361720725282220335610189582955466986664347602543874148775779854020348620500640608636548068487229263912251326643579446338968671272398055283363377675733908599588650606365908158767548125458246068962509382369762963196193077184091080252784354860755944597423535971776306693066699072659068053721494753190806086806440275572282009145145482680725354786598785513597641555132846385025896214351149841752195950383158323974279795801180461675794331254857446412977732479432328325193615630150158401534352317972076990136617575822938636879117110004037331974686162452607650901531781454556782771457598911094601424407260722735869313503322243764418419598210743309618548383311778161040466559406331780725102586372556043679610023161391557597103876690061673233969126532584799008506851057166825190539850019005289366961428215444541875434736465910594827214178887936986719311834376099170198989086469270850262378884049084021221574063827153971321143062344986745673650438405835234274601862291027997262557117526356892928164771493136800543588839398638130348754786843722289060518534004254075530949911261674482412056312006339051804353924578336809777867344530298931846367831303360637307743157463278766648442227997518555793695630952212521515140911850161849236696709785064960946742353598320283156437852968241188600519610575999360336112084560208717189664505839062831668792998100974207010903147640414216037299961228500513434677817296982105117500987933796115800554026603766066807101913795024054913420910472072865160034347824323882119612106100537311509473302945480418262276866842364357823638886726767782816045608054490599998752651804359963551640006367034574958267390923476675522865155410365029766011972963692650538775033003547400088985175460882606081189936260520351864609899547235294486344006510563589806791230433742747537633445403348287359162286340004618414920004245284071785051137984175786005048060253808351431058129627149119866619524365984464969842306647656308510129494586995308707934354143172266889797174718793297545953065267508467032949994591654583623870677870537234394522952493553053650097110160335891545467164350428518861926964747166183175354817347652716928305444301004973229869468508214231719269624127707395592602016113516706246323826210710519183874510628701899995543967778301313322766951406641445476765174581088274069886654852096344208418739834197896109663439453319035310529087084180794841591190132091030062318184180670655464519745544321482492114534609303225569794473886096946653698996151996123544259720882354194990858800323393161727327343989760001967430961494333737213512169323730369832599316461119282887534231614332804313578178036594302808307779062256955160802340052435972621193765527805673165186820055186311336971191284427330135564806438081176174443120321847299341854516663031250574669347203114646209539707530910948125639511023305361943401964199806243467504412805639103446901731087994067619438368946384176329186233135815713257003234728114537501585084316096856609357119932304341550684925339844351311088369151355251385415412103702944718319438798253218617409744914171018428065433163780124608273204424640095031661126547465611733036582260808046412620549548636893056402674783543428453900926317427468747431932471048805393245746747159517741470671822100692462253792553138645550285391157415384923286999136592974045125021592934790541052186823165416243902880890119689961443379977641372147957250971475313070535832692442738468885457629427663481048729951438056693377734433922276485360862892089136192772283533399015927637500022870990327618361824708010310504081506009844812980621869776458670838278181110993720400959292381213741993288381131113167149678389739006980785741690185179636280196326340022016871616023183879404715002704123529987288461020555352271428355576217294581326667965722713869232982342960414298864797397450286271762111691814409046323660923864230279152384486091021181162225117582911357240135366036957789717709643999525904278463462878518985194203954958239089546862049002282135604812065588993293278728501213673376297713487895068340391643837446629588859840358835511891545818739525050063096743477051455461260097851139506606403089104810386066949672692533339234543219213092816023957968309393606384826870415332707759066690938281334654265467717071432392149979522825078776585766951544078046608923155500458596803654524852457271534180144677924231583729366191379410538581279300314042157799085019509673538470810911719546876256257100335719511331614317520671126658556449515389035382536866964778962128975602344267110753145406830911957479253558730826737492866761309803740151693063447997974335779778829025734722475113760064839006945631963695167784487357659575998617566211283855950107375809188059425318120275681102701977449997344911491246372417129936736151160821078794332677178222956470915651843818484103219981616378439687838481372508587619468887350548728979558908383943642563026688244478555427919839107733174716178855696325488707073538659527246146031532515190995165057935802392095517997938357809852767089236409837663321440273014078543138740109519076250649690376114237742289558452442020890939088264248470102278190405078555041642925612315949208610775325636270676801994408328725105918889367198632302008057327622812061597271329600217510736878217028500444988430834465508352715588128056201947317980796587678670775222992109651247333754303827457130492573527597433668165304991854787240906331996859678347807402353538060235853215793238481354008625097918475614160886086280369905767527684290778823052424705725611175913537596861565078505033751567111229854826731913331786094135676697123268293837317318503957810917081041340860713714690724370229682156989810807967291896869489204999882839295782708004095559879433958598039461054433830395481829708479464102694287174308028578124226979985737362119231019656395564260912563215157247946935355925985399060346157196610392804005166109428407442946862255659694095690992349399279077319664850915051803846207520725792008566680409875361166838070732378986329041121408148111634446261487785925674408705084445025414364740310007683570818421629587233240786450793066448573185971003815286979035531518142326486747339235694705726770594092056956051726308298288878807514475875421958853136326298675878119190591685249872736350832122838753620163109606314710332008744627406626111893702005100960098892401354209044530970082433556940203081173342096573847293512314061781340993981161936139040166301236048878310885175898083436568511954341397891612247874985514447659290432084404443422894044978025309077721696250594772001486346887358401926545578559080576648438392429321689583254717294056758429207486360091564056095283733143808124372049313731614129777283488616609664773504412467493600512545390612074929636779773098631161929935933783558426250269017047911574348434839562633001919587454462149556309016819052850565134456068719975493834946311631893041376583978024356557334334500030568273350177206095673668835060666542106963989849365064211752463779326465225075381430107348859991394371365348310724689014406756167104886322850500305465134478222401970015125045943342023590593830028378113098340680874536907687365160536687506204794217472401977174145413817786572883855048437750823696391472694610789953274926790258256397197800105074089096043186688135701839832360098392245703257238821236398704166443862995009336858988754934088254082083602067409890667804519655588183996946993221538100890331840975275208695211163541158700311652618966729513442378626722224888280230260175382953770204088973157211441972625696730670658340400741122625431185768757870321633676785424410821427106805196655506783560943739321589091794801009888819796004005924523351259449440763387676278771038857666774599752501984846884842800178699256528577407075605310840597040831945348418886472495461821159920554390085578425552747134510761412325718793896063607069063070927814504074543684319051463746568219238414410794317009396769336330611611659804404340423263186162871569844441531344059330170630856561869915579295327076822933920705351555763703526783354742839092256688000855901192242513224166675623116191364556767337652327936080696704422205295848250951578940747185984648309583357003273994566546023156878613559493561906581851438917825087565510074804725962825370169112347966536650876090416564279761611561418416719419051534097412895113760082261484002893465145815869437247243340863777447314035590658964047751419824253346301630499757689951371472420938604447882376520736722572286966669398348894298612181868700429259141031078259568892727614458688874129070718729255054141438946560187722128953827573092427160384504787800668137484467394097742901529512649359896122413697639409290058244025896822062917428465167815694891417507524596162347321920992097085165069472932783115818199664734404085056674042107690140027105721757592437020809309671684407015116869334958603756828607030248257145367417864471179301423094084959248944955013458436979679934015220337910183951619436391570636159910318476030257109435355919064997512519739694429907562694705186483947540410656593611585830487880308282796547292159965215416487966758016337738687431401298654972839110682354054812213313266838130959912738940401467727885542238963752914343993951696016429691311055217490382192109684531809161488434947609254876500865805144038498432915285988512752361384052282571490018657483430354605750465655002850475953915615681100201978023696798890151566982318764844114099836537641438545319358299424621385469428507162052550360382384879327243940645963801322503113922192681088378434497709456295747661366985699347617262738740740332168914753609863922604418386684849862882764321231503039457370863712547053578771239316808717746239369513922569881193880075951971829873647264787158163848594373467918880887229619575146839515642754368050478736639987870827962555945809987751005773407444740130492204507750415659749773615617092506704302885260004448088777161161681728182764752520296089580270445097087040696311740135785050215735650055342973885547529786732550111377950030209094213432369307162221674135970371574579820002891334092740027614052286860436331511837201291308085168830677895024288583337743461268503615272250917475543740948705717844159639704900475839221929108438014393075259751723124417679601167108044402574984237719577316902052739820364915438914719932794691112280101307545197553683429831534117771862786995931444837683708126002962103529516671028309304275532660326599904118050783433976276553007944348034723589698207005974170457660628909114246792262895200559762307004157848975790009457826275401826659167805645267130902465996504881400001775726094391737901897345636188314823574013202163272017051134175138090761172205169645434553212230386012503156694199409047678081125937655234120847581775664305774884084779306923450025385812027834090370467808709930282451827594782734135922105764310498083232526175089499146150236389639580501758252228851943891187354746519691898845315598831321831085447413841537584405888387155598347567617163632193933788980454328418793039566501993060135317376033898094758641770043515294314167058870391061766598411750625002375061509883640941391934523097369326810977159594012648617931280825016931635368282776360787183664586848152025264282119917585751843683366144715752346725046345424604745755234515312545354162099765162522401139828568327301029373946650929341128269866932868838350318866906032017573110652662989793784711404832516592325543905451722979652768815385473660193280546478755373596841009016167623459631858951057469659195120855039438473187803024372370267228523842935983977353663352214504634649702034182006518788606050111212077902205601920085093608517689807617103867237774066069706144990749760247870418328929972652740265239386353221145478279787643676340224898357523681321590932337230914854385701461411252232141725789358418491168425008350112873975638813342638066724099418543836612111660681417598100681498645164788193321676436335033477656964423555561083542067439461773317291384435591470410530484192257154067008877817712872138464251181078265863606108497458236335649074439550158537522334217781862724201844036043717153066048954434418001791233480723595127188307407267437502391885877883902338793879362450145360151091755352645618295647089145747487200018503259383909967311067900221946015191340948305866720222938584101745613471487316614688246916584273847709836168154298755982686070248509845647371056972424817573150574732537653392763768103715262322834487593911307949398235236465890649781394947863086940000074260866165100290128366736257823132534968754133980409696994372699822856866200777901052760133971616027906311769823935364426719300366908182707990312516223223836696002099296292394126096231919751198004988643685641552780750869367396044358057801565446037790657892109788912084806199499547111636486200294636785140804045847107097257851455219377094889661601036392354588991093438461744735486936873173753052446136316577474670478730776875485461490393819609608783557240824957556826351259109416605131164308186189841347338428331844112866171953740232828548640968316550888910615453517103690244742758646604740709122543564212804429783161871229741291359201660388175182046531735599073510443887895398774674844646402792765221604688039495734850762990628063405002478685303989666193418293507315602616421388192788034254603388821700000293674082652362753443682122019828782871063166433266100406347657365089065661735901140156438044974319759689919690205172645623945814614393066625827403784484799604178965931942838476845260301594178610098087814691743295815800616662646576965851839077226264507422848463413047352945167437623172120022466264659960187711029047415968433178335997523272187213070422754278891679098574933258382844160931862656226367778812952175716434879232270457509514589084271228300089247404857323703563973638686994560055073059824274659526506803172327797519950373715739795120464499019881850619448832246773814533008991060117338319823323452752640847768093213619027518266068631424025784373135997313581781735276679471413030217892143161827720474388153367102107148213003817225810881484601956504649732257488106580265734797675884612104581267114339461529960523829100698173771068636570821438234532032427167828888932861183622161334484656152124151497583219645591575654660652596430075812833666538130742224560287928423406490196304358667568524302460569301960377278384856562564574174729645612692800379998529490612549842288195451744216618575820117060111583249345039013418681804874385223209505085362257816692254280490059742502421854938646220699251678335987025815055075936690445627871983183294082957488803532854201357842470297136055441947471712662763690510956067488065341928368751619297706292588367843357633898932686640138512927812787320110436655218774500955816059972819281949065790392075056413017896112513258613030066167212858279781624352227627247926928483718185247741682233189509292014624909184928403780607241812627485407264470884350125762410645949842322408941700630571169177773556763938037030264360184772343708281173910761765241606233558214927918895299257163434560802976606834909590539024574833177299415564420873892174027187122225082294093474634448204609563826179754955825585790729664230838337327821937651917229753256914927427791079565069287660680964421620757966139055456588528026294086476716465764468447724729719843434885255307676203798157924459394180546654457001760071890089700081518286135874146275963071815424544091056408025479698531411405427952487563577212631064098392393172294175761431715472980066390067975436114295973799493090691019338699467935550800024032006525722420970505337796626665064525603394009393575630366998048316575519767500032861010761344449424718681902423973185363308996646030799783742796890630236456578324843742701224406084013378433574524019388366046331077626296703156763402141896514695713006269081626029950844109179476796081247374510839577563847556211374417369811171956275863861489364748845858004949268902197827990806429002031024536558992865580276694383495553845929528838050625083581206849293153894244724629427638676318559114609150116947313413581664922881935840333840375580427311032860768656646241459591598921128415705686996382173130325315910960897041115953148944715532567778634070894492099091867917372518270033490842642350256559188080142272674375919482151737916555864491753956821186607453150476303669277054947686801503447424422275026319885185794621213579473024566679616328284963541739269714856296490482839155163762868359145652278173795934065297278358306552395628839196328912819798117119165783764739385220814486742415784381287823301387060411531877084556766313876033277506743519037122057669579176934437764621583620987276730233825721111468882245839147683198703390697471374481011589630626928267045020200929217642304411846269429865918347286808078494179193720096949321521340061751852261124838091504123063421002524810420400263169198605875298513483127316654110870810891041775964626581586907017864103279708347548066577642683111191673764606266724193447893380261011334011693401042785742130499018657473089412175243782488246926698153558521767104769601005846985411321339400975835064366670440626095501714298642270996502021734844947294330612543269196576107157149954587616243568995694222621052590366744417484335133359897403550552839519572521356222056863877588889214323099542843241680710250648640397406003474418149422551652647165702407974804648149450036846646910200704709904722046264787500383382968880696721414005590353266048096288550629237105153567489197510400234771454166603556063633542762244320713403024223367052093194442370400158325884892857441368969763003003127740145304088407380403775588233040065714492163004554577505328493846185923177726401085768713303978571503555621437083929215444562004375243572511119559007958120998365397678612150836839142964781816922792107220186702064579198302865788222593001391947274609702475009191442774855420853099678146341881753916228078339375033367435078256000032586876428014958259101244929002964185245132690022573921651008449623191773959168330127821150302697999437952102834255988880081245164813920505817781755489421441970841569837896397368058712142092628708490166453251146928123956539670490200376238382998770579778441647499337980206973271907359221054444650015129226952164582956188565140005320463540118152011500018177104327093530504727806897817052268026593108186479428128132215421266935218892358341029621660458890151005236055230973974528246122522643691540215153379982011769204536095204928310997336686230242862084829889185576289606741039634459053174683633718079885592798346179948339886531765701586438900987841049374084396445518812252404125676489550419674431787574133801938912514768054777761844578814511581666356093463241947243762073833782247030136799212737380564397896177682443170766443483964024865170659175654602870574537943127818069122307333076928713259857612752970740016206003751531523802832439834086136071290674593913145246872863152341810616637843684795593978340963891749259106894935228310655482474212133903863965999886414466441289246289887700799552241778267283722241002197304191230220822254440413046725492805356798871470969798904053889919782800834189442548105421012064968863880494698123028279038502617229404980163077275170993090203909219847159483693393695332072973727548511788056742324008820617786899119521241144146582291631327964230031148240239071902057372612342847071401259837610023558344458678321183007548554157612829274428382243658168947230057226964981136107357033464085387650884197330302814347271428856594561371286190112131641639958133258615486186897461589476422377477774482719657939309576479185420991060420090058613119935186111072027960173836665705893999030519813641355131775640352073917088711498112547502093366972855840576973263262838943394903932869799409867976390868769579277009562504161673687932591780749486777147965466667326647280501284499683121886212424242779914832961620772538246026209854982127439250791169579416344980211326336860087304554683391521968934563453230140583751733069748825100312335831292044079753008433481760898428502098269113476763270832699269799905796784830706307188097389711224389029279033189208904725365595736766307060446540936750678643347679962539398241812735898509604312648644348918737600346964103767480265760893608833030623344467609080887504417242543635667016737686491558840046089668436873402395313846485792175274733078172642622226884255141852838539252342504804454798250758184361618947078636602370426611234650002577228320569923623384211595061209014181025260892433943916158037897357941765425264783858994677077180909371776193411663172393838876032741443894435810756075553435611169185402795964540076117297909599595489822824774699552773639863846931552455838783228958003072406007261887989085044862140110649675223682793529945885110815910390376722359694716318202674196509803359987725204063573751053432045055330139052047549375414625690886607001136882468333934012726867717378705540352091667254030191985941937264132811488863573579118483309747154141881134020399837173130823566644583885384073138683463406814596797499993719461755200555490298910728745623541632384492803464168492111001465530551123678923431652416131609657839187929074101769392905261369426419552146463199975741617852329932332980446157661370465840694200124745424558271797950605358489933086938150068698143224367830821222524541833384644793463497221197118508017178565027021346251032865178983990136669949591655185421463990731497604886908680089179329304434959139357772462011269829047639081388987883226284995178478998950818518747085924142078302267443508651954398095308251402165432695104111846784652485032736164146556308142531958303518527582906880165647379107281594215118625138793878583787291345596490576816112403856068154344552099291551584087959676320643683421194429727775760793542395486390267188588212908089219401816301308996316689670911081125278326861652738996442410939178942136459511239202287347059410555152853360050360977468772808279990046016775915995546616281069765705576614176241751089445889441845777909619499740614192678121010059065675287022677193176233371906182051172648369099249879305785402713725310586109694282098396859868945367468635843516809583152598463467553609774367107432924813761151371642041496176088701495222051167630310886383102152863406926369780377152403494356246806713636474084908765382121221410882332861719507472613425377642649846206359044399927473211633188992869541529114658813567803174335232868147562716150037636187245006421222596848557359438240967050445418873140998277997637129767783705266231591079585828525840917325071448849256145579017198761327683437206185652992597324530899367365779665127462324303552197354036740758788703088337794049488500690914191636124991334766377688022301590910194658480361593766112620484032404627306773609089931554189486875972057722377991302267547837517212609718895812333451309720817756171179353000177088738447351106634403287047293122884777174914293758383092337498406515418937539125403136444376788446820062945573402636324947829968561893210040407791770916948427689309650512970990269527948463291744761764787223335009472985796195316949560054120366846507355758801633658977937745105232246755972700336779565903903508920111412747632047818297634050589707604660895744036386454152102678535548263380180719584651762831041792306840809494654060763450673914963604389490695027119862189225341394585336591608002302952610356303309614941379555376828554752605536654350225377739862274778314035294658001539534751814412714289596462476249575704289166608306774886165205755411904567398835774125501099299837129576318984487728316438957462648536107334916175270215219812074680323996923775007606454774094899118824803412386094706114688594062096043223090466988745414958571547016040163334828669335888572037424540629709880325870398770969195608501352918692904466041720601708084503109655715804838558568324542755704971431693184171748228841321377152200630138868303121178772532357242803117735949936151819507397591022933212088052017159907375897830616378902586175855154463309413537998796095954775724163954940736776763401122748856282553855816177743163391778515578661489023188272908238786210042888605929058822483708692337672456771298452890265588185088735409517995482296277004389303447981087283308377323054354512124845033383732227797848227270600547574014141114877384393393281079433894197980849787582252954798267117003275829409252647146328710509192746228295728128451947249618004755926374856976082647372322539579359862334286145118756696516330287037152586262241350642096120737120560342289853118921270866905298690153780063079362720347025155228491723496941407427781864641479933757592192889684567738701286822665920409226664798099192186416854676141710386189425741384370513403198288008511817948075515787564134725853477775898271778416054989395566944923947051434277736529664196470071068130833523747938281553921474239177980886034992072927777099717602664406109252484410671827715189946642399071005367502974535116624666660510743166886276340532682740304807277641869583889659884919234002503601533051371239263934906527547386566164927049657141162992129740211058636627786074179994565614297540137933918549538729753672489071970938682532493853690811757153580620350109144336643745521405901476482080204628072083258598231888410191201109863152510999828639192476866082682133241735146292271544358638125743292913570268119257127958083012459323787666877480438152041697709837394236333613673591383861043442701428004162168575475450791039564870434293534455519675855923015044829843011057549718037649481698795011940654230111875692273750272807692145096920151122893448024236453824780073296198461742388016583956922684808159243028486395906273228886862280772206934045035152623801550881438319661364323132257052171627263858909783251908331657389604138275618936125251701329330387751334432340018398333129351536607265870941829885828231801727808486380819485079276150845414925937355540777300979451748621305825815631702116215587696934120520883358065138778736003311010931530874935367988236330274428654518412866434904727114616170801037642929453647474599364985448397579295909589977107637629124819576890052511322535589283481601208727334760671236273963067427549298956332416175784850757572969379053111162874373011920793352149338588204519291246995526605122372698643858489291516629653791832401478072429877965252633226113316555066536596707182573180081192802058103118151421268270088909884600350807163084063304366245864590672887327217492438692472092188135897990554980483332054565228053640490555278807618127694962807984495576735102427154876409400977827215524642521999259512689730577109902313345493876955353717849134606542234555441610104781226444276359046483459683123116662815150091085375384204495880287546076956458164129221565553220527717279277786601409131970001332215118167076460104755727161289132104546055586101128841184999117229001201384966312037983487168903334999987858254052028001603194648154906873137076399273398199352021382028134162199233010202546436226328305344915932064321438251577413549586089847743798866608691414341587350441645594142843818449144886646047996960911302465707127869831520053166680258804845006341428215363852421853068669292539999424868921683279242475583996938333059135244604859693699255400222612229913236200558198644877453716637102157874356639133576987099292348583426724066678525161573299490544799058169909375111955853104144607022469076912539098435348230119343721221094648707787500183938758034268117603773875997068342687096184935826522189653238427864558362512256321455161442479197804116598542329141807745345989869502738007879446371213953628755381829454686538715061302397799847053402415170394513836034554435971617553966296862745157575220608348749900909653323296988854585749744758588784864378576564155331496832899451753812999718665172489308515043869161124242588811525176731149051158284568311118200864457100875348946797226135311481946981622810673708844298112627154968232140090150810196892768851651123598579265652281299204662600997500789492867394637217781089216598845151017893059959677560137840989744235916033215668307036548053273168914033847851016853125835965100969412672015988937330238442274107978460460395705533766724868463216672566362312302357086316739089237322263093822384127817951312712228143269601458704327099591524875574452430879103474039630983549112558983992086048322398206395253954941194452697265930123225003707205514348262494408919441639299615631396524951857152545620395749599460834069030777958438598034572535056708997912388935253213910106989487240313642285359493027804519056258101028743992751925080418912232771979445224094282466740975162796415928131935661103015413923094799698112137684100563108500801458877056125922635190320160763900283506744033834689947716851230863134597552643558818406875195728542149740182308831532139470443553862625192594078812178031719045719018912359411637352584299871737512255020429227789148576688197811790233210934641185481093166344815846363255713383304426469255544951970464675626460742549571509507650272323829325003259154838363937049534318548948171926677717645753307485875944817206958787455671775488735054008660896886619443805607448001411228652070946680109345051491645309798997320365913829018099804796185311502970333286119533160820852738311355604962738512638478739069369697064371493083985379490461299103591866576540974468196194748139644601652103147625726388979829496386267930358624994712552518442727974509333714835880367898197668419828071331575886346751723303873934908768280385840622521555802976842453430945613511764668592108914885326567612108876233471328385215374079053083374836044719802198730417614815782985606332917578616969213097741734570859978500295593934688843324683791435800028400266981938785049793478361707556897283023106321641510377928763115661106928097415492492525104163967308122936019003772628551865454299629523976637652110439800438957932026925327193746009979866024564736678521041737266513314079422175301928086566192601300695414064214351514104556644944840850244213992827982959763965562911352905306534928207017445296065565042801578602280027677991566139904500683735843104323245667669169784426013392082217849769545827947830851682229794271275195387166783250088368428462815892385750233710291137206747809865928874510951623908526929153682106420199348473179314326717023337274887384495489537648393786297320565218584929025227391261473735555844039435594953179989885789349115687117207164951329795854513049670517919767820797125855358977772597711537945846462547525487866473984336040327221128531233628006043172360675083802712806109240139597029421079552239840595215334409450001563934749697414111914686664901199269555955156750514835960770578223727349827973394640091969267722743368531612517395284370493209611224495416827557250974944827135285443165797035669496097209969081949929736263827389204803575058300746773349696399175116315005746497876381279943709033954496457379133969803159866499688376390783221538860167074821626254330877242415297533322708548158360395307868403513842190824909777935047467111903773978269008303698883383920402990394351441369104563623829918160749759311457882644096006815715181000702474966024493067986483298752625250157461334993573427391747689919680560814320495445618525361156024072487330074134381116551056811829529453472123603766873602338260066745213180988436011118975762560996958114216909797377381207095237742357669315519726119298365421177252329540890788624247683352179507245338412657909824887786819175009593620413751996074683783223306406129844647724274297164088610822280267652170457762399845723686376209725143320489053004550795861734182738071329227567205890663341452522605088278602446568781309187133583842528855209635033902495988726704528135979133167838320377304593763435529355470735342724891800836244010086073432266989789483300009232663920578903323583602155349633800952331031019401667395890080196395412712050760603047837411658919208830945887621911246247615348295731357818066091777907282942811417866373176174406961164669456328121001896356232925526887015352378099212813243433411292507151775049220061463369421007465659949517509961879867672024119013226762039242879522840971601755383011380741985815820138747456303647764341543649425088971168188136505358264955722582316403518707630637922895553956862899527280855937594274083798284229681029291494461318603475868000213654338111997808741256781046501680077613070264064932872293172566838485697067012770175482819304310883987139003970044951193565247218514333233608470529660036533106665629378847621813495800286671343215334364150637973593869147618358362364210227636076820918053966387309911856456016262974807781569913054729631735109890039250969618838372371116190132329440971786955237970820015533218583073271875594762502569081523898644903990129178026081016889499479280439083439009678654636237924850610551996122190288897848429804702435660482901395736891683977331377975083815407302909085586278579298112354138003964780118325740395238864526367562883117022744686274683331638972964196131983552239722036704771234897857574089516672622099033008274258639551246300551472485275527493074374035457316794230378211117954060209601740594181894093471156590179672718800920195384984158029979858312458427901764861577070358589888820062434300221455292655381852330617267935359952608877256339962498596218300134627311134918951974983233002598427090470152936656184302406813499982964869315362507165368123993951548829512443499796794055666370750962812236191557331601093925482653754522470909473969020572069376637652794637348516401271456493873527389065461752047646422173654890772838043257347924767529298935023673557337428947365311509416927982593143765505030663797016330259304894692941555749673430384153398923818601851745500232583160412851973942846910924611327698143255181626607769840668990053785016811175322667664655432810276584020727827208499806361471498137277586352944605656316657408397083769495253094408809697688198832904442106192378838723264954656826290523678246936566301217094399041668435872518539603357174766145407635182393138569833365591886140907621338267441953963591403872455180227460167746865899312934277631025782178032576375377356402448974003881191510923225411207095626991103929577169181228100239439145351282578081191489304691054844853619021115960624512230970231059271707303457072554384535396904334304495329277583529009615207409716255651054798088204918456496093288346106711373015515384435154328907642506896068806992678269266907959844252178085774950768276839745152396812319084411233222667663533744946755896110649578852401868317825676322987011329804031431095388455896918538525526393755995351612595066776980091365916300296432130871158077675177033570858596409802030902172293678671330718082366663630033047346152959407922954511721414342666620501435398282531836119377241512812301634002212009608330290022995448505349229750254818615715355822468395603558960921024760974362539757218204647573051469077676519392793899998505456342066340556043345104201668040181745613216925834925449818260892864875670470877742623978997837065102809990867701495243134438033616272238512568393501046654834861191141567550145623342875549728792027862003976962598073962717002923224529996725585893145596278791153026868873124117177254043654663930291991615579521018483750895966792645659146302914320766977329766442669882548392239308169387553035693394453712220980113473995515865428686112464652515718277023118808016144225194503233881894062203802283401536682731893742316608565090996526274638967756529561228594344347595948051602119906960115023332451108107280131634116137387394663598831837247593348648262598520716137436174680002188724906404272849128186797903444078443327843455931514000971882976517613933456076471427167870086930078585054558843645517220310026286173854080373447817855494622164581802057183527361033329451045554956513721317582168372724180130986854624590986038632118942408453929062824552953852376588504170333374231857589327101713229817332746911954153388564971117104746564773555489838372162674237633061519034382869485401557757809072523879453513938824563662952709863307023073924008939195010795439542060269579750692894841798590152746721766194533679767556788818681383028631630451228866011694440911099900951230851103718583976154315494521651357719906339014640521857125952979305130351402449935240711999605529530524049100608725744199796343555358978392258274373884046514286315109097547193845419549505999268670506865613310708286475300424722149526046327727661032930529229165505554743282851063272205938165448920426200504569282419548685873947224318154384574991967533753081313961177943267838269220459303401427647722495011926730175597856407329064427249619000911355026767137680606556795415626577185118447080046971456556634206434615925717733928240705976086320922445148832284305658469761475751180905566505662084483065218259028201287543268203860917587863276643017970681082078355082168024853135158018835115120237385271349023472912892228804170034214957930899246105948347592490832708330302251245062619467991413105849857415012986288313560380027388011759890117869153818146273291545141750840834215682199156417203022490878889489585046621906395636224013160172069455170197909132785592520732926169559050707596270459515950238230529037787851566028164836993814605446729685659920116454955740951863891612755656948062193176615855534417594025983883638780334732686486901167003850832501719029245841267966981211197051380875364499278717845244101991501754058825437253057971378361418961818132468807295049244155201740771906374914927404757072571706899860128227964012449748609153931791873293669241287548531334119047048068698778528942928132495072897457303016409508461283359588989722765315466359732994817246570359115063919463358888044510720212094481807894000088848555375750643135083634311816286105193887310634339003404760224524787211204796795344397251697096694976291720724337744559000136468554774706622788682374962840471724902741884950676909404174890624450706344379402878564038287697993019802584583975506180352629063722820347978868904230601134921698954688869636097371465642487934735845563927038080415175527414631267897546434744315908781156138215485868680543625303505461183284505337267786484967070184361901292135408971075530886983885622631794070084504431232494365587343092436306241467348721388656410595084400601001555348862154438516339150977677275557523536217052483452553496781160851053142251037460352322760187777014819820621382386718558924201222370472395101417239155935915932016705729838787512411845592629110071656690125376713814068394817536526459632568989494113429021547251434562374401089528419119160519063429460749187304862248745215939797318030827795326458861932578077363946952560805507188166403111912582639652406005646757556812994669941638646181303969271321225934265248358621825132069652202194129471494424990341116826513860818959022425234769745007733926177515344492222073627954891559768468601688009321251900841296333341861685457814847631166400942088273762689249923070268817519549473013631391131539299541321087993243685803836010195841593484800519077764455430294623912654372524466047484675102535850662459869856840745261636471904101265166389991760635823060655507004838547348897312268395459626244375675082290312248379933721855438801326040750301962119864752770727394291331276220672291949626617520290217912613646059917740583080260686921416909480778851438309539315658484349971845972535983889703315276920832670646205672049880494578490922448646051461355049330318508639234413612501358622223417001427612654850756481650787135488876649007717130795517769225190331700675266530706205730229442459534167852288711642523408804286358783556284004275761376910311821623250616755658416506123119832432195007283760050227338545790684938880969058757210597233377571977364452621617621738293594806624569833023457282989201117566758417457770239223787973322483551296799553920609237673536018169265762822235251596477034366285349265851480322008370439201675865848392300849609042839885373737967655045047468885145850536360785550463658036851845233348670517705509780787412875562345698765838160014344248253368907649458268851567554878999862273879672572017090439484650328352187071079428773310311822239429372347096175221432422699671637995635229418879678133144664503834354613495577571971826119438189807206413236728376154299489933701904801180652235830597812742048567720521908912946687693544925639178510730922529583595233958954866788932258662803454459499830503581942239594105527152032477969662184386124090493779845637969269564570747401547109320217493169908587507520756918200441363052983580942019713243198752061119654527452571899206325904594034502409186820179513814444757167833636634870037629548301915017381905384528933962630489007305159849017333325543300414126244744203141374521194241271977457483816879136385426269151446763602811378607774287763256411796217202020470620097179040420752073868589296910620972423705837373746599691815716340625752218987172463014736618420962203918452622829870112995621689766723917308489680002458768301857976249982128497882662211775371464791223601813785000993221690300369667470490159276863470754496010979484406016692332669006698183743503876505218121751889873003982465094889161984473335451049607578986801796867360136033571250098932483902394980615530743247313360176117218465041562165782753113918396764559642848372570120271209976817593692330790703859397226700609607571556263317354025990009437442511295636693347074892856430668528753002971849483865613525364657278982090858259570459596179286636857110649627915387505163496850183269197916695979741344451879514192708109007631619428011358053358036105274972701848356159975537852604903403966332683512853933096465527521888330682013897375788876569733476880569925538625995258414144742008127696411108813282021181192451956969881338374295463153223089466677013182299398952304435406647539512783592096342094724878158959613989826505896014061149139030128971474080169880416838223515369973445996574791744644640094809423902405331594492243085760635418815834168737372617796995012870326025109399595754444785515974045450782434193803799918055363108529425992728324630577191686220576967836612135498556179014363594530004961278642756816550456496353048831060546329349805526314161389325949052525068448256777238702566103112206455817879574699087339272777554103442472213372275021464060747724968252080147613236521458859176824405767123884362530068976909242121338400527404628363062157366304062743847118160842800307866240476342940502735057761064566454558593398616575613703685629125575463605951710546724817806868853018807325104116303453991620148111629081649573034907581756162087064462288189785940214481051773129534833579274810170016846068584289309139427210214689624478836271358817093121881020498890754848495738160304029078866077322682446933297693808822842636839543617357610879291787850065814338592008946193633878742400958243075201492943471293663783599245056351195303266614159422682205207446372303275426913690399052899625983687807417592709456905437215029236067519840437819649762881319587442825598318018713362258223644772240751096847361227519391598926678243306288159933262538404533922371820693392605111038966416799072138180344654837448029757418864217864906220477844813675135806764682252002098253465257778812069251884239346689941359802946938847358455664515149626004459623169262403271452560231874756727916082409131901492167441143645049158062205848087894804911776086175847532411062842698158258573863140639056200199581093354897602320827627068545380179903794095342646080851612093675896096958799512931634881331014368139331989505767812227294206070682845327231007516938937799689444318748322005103324173586268511415157397287461212890732089711152807938053610171211217993858724977355789315172875251349154260701177860709112772208517658688303307187770566582772731190722952944864904713137827186022121075515411092530251271873028462488439809694912966934288634693758421071301878987441765774635951021050462599275689731721648078226156890208824227711792627913318897020083291880580289047815768181012830205951466150590353988944045378389640804792592227339655734220326629679674084643030516539516970055665912120548973613018854780826555426440816621767259661175548984399972259935535637503957174480252073857128505050106979376037672560414964752388942781070475500850069336456581833451458748914119839692687620505560480963821736349998084586441722576798617220051083878548455327963329561728441437796430825967024542703428792762579734165241811691535455141318488231654998338932898165988993664629955354075473343936154510545866022570773657838985698777447906290715786291736070764574541552596048928469720148587408729779313271153004069748670196183942967042298371340722484790992229214698729302472866008184514054674321160529847634196121000365915674360465077550974259347508647942282135042042867841387572137401487054003309575067693908555145874187559553578786087237113226104988502581756529258031671110820077338646526198478713731271809395881097586433647291120852769314337625142479686823960211617503938738009811734404040143131847759835281895416177046883235779887068440019867116471225727372430645359597982407867185297466674979004589039983937486773439434129363503015298877657406384584086004604913264532591868812452331358172852483003685151464930747370930882395749512279679808442161843986846421063812718857908392585667478233340251303382378997916095588716232617325881913044731511489226143843451381666035552906840802121331027129954429183098748683607483814806370763292760987911776381395294409102925565592246477905520181092791426335423576451037653638287661952784759244364058062686919373256294086791060447793709216960231824804454962243036625370746865262465236398616593611639208891257430925156392795622886194898215420666960040082111332310062786054093782691519727997499314050871882186525792913905456667416605402028149855916430116272256185274870902955543369691890134764376185571334665286091291789050110408364673216752658293382050361605956655869609669416968144937990399824480351637705995414908551382068288685071285627096514114882274211710933428086225853287228196175774006899713061086276785979359458469155151026291428357057314823439626894091053185155695498425756869622970796713570690235670913846149862581955475094809219117665543263775106057208787141072544658095696039347928158000423051389193006613966848728919495051737403129696052537895600390581085201169757155010444941881619295343247439591671361960499676472164875762449908646132055998262901635574238761965951802121991660333438897331137846936560139285319825889961656728722278692882556414108273618048148558877211028241776511391073410453465277626396965860413600106300104210917680570552542588763120566146512277374412586654394411285153138604379703407265689847177588368236668268491536432545049861012502693286126023985354596286643498020030367190174951910896831747587349413365776541830782254779629824418608677133754009385335963460122696756322166609048151698475861924927962706359916092121210838903747131030431413156103699991254914713488194632694089323307430360495499442630164489470333901403862445326111854172805961070422351097646748795354960369408178119072529671238200201456947377947172890346816748127398285902848087589401835526539442810669161815566688997450151190049783778078842009988865774621097921336229131808598342414375165543168883727208394217752271326864187382099278299141313457308168577543095282033437244172359143188388686245058971762288745529740980375551143599705978130448447372070732091669314484364536431697830969651570074748315673013280800584679669311745440546060366479677822817768537085910078784767055294796705652026032391098876536892638989926111315346786952256762724809702828445619355650639808106057765366708238033682139368498327797428876035428069606120816864198479209838801578723819801428314845000409896924966990996943092903075016735565699032915541611045639871154151774851926078339865978556725202581711189098079046074704166231769934368262990759214188857120464845591554887193508260313808073507876393424935492326462404474143177239819175120842245338584068162989462698419038584703505799173416922710882610551810455030050139464074752892381670561832680100532400911719498518485305426402676193689239121832034239847282925839692121031307857636509559689000712842611233291324881677989146039759502800045763087946313535892325610012913675085387028403866777767001264836326433173104027173988205538581028756306561558466326606640936271884952800910673946064866587888208937150081067039385132175858188116434694159857796504169937078931889962153322768870472403311250960240619498626763111458358670306762497585864560237490879206244091052475182364135301330641132114415915115783571096866030426821494296585316797428680900311322951604363794889973611767806756703646040203912243959133434795070329265563091236610022820078336511452645000931894417468974527190419396304462278332331888439421693354290343949086794723252601574346953389641859240907676228081527293768117632210750917311501099606349071824106549310779973743281667685393252982544935591758483702344299340401840702243858544913093184415337190614051949628503395525759239541396889203786992234086408567756510517836982304397566433605935907064207487370994142069771987384282067652257271662208925430181656827821338630766457221955547055043928874755751587059117036433677837716580279873945394913683312019355475604743372332261909816340469852647003879981678653033132271570193212887800019865992732216052412426471549767556923692350143597326375689369450943234414714641842149856967823704652605043151239638044197722681418100755248555204906780300122680863811972855582060173871295027121273383358953834367830624946741357939758539224167189106838978430445854724267265633603486109135962576104337646756347391762045649300126738182705780449219509091832408465031876787501154823009203511177836395888586914011474303720375162420990877352004468494637122080681283734537925931689386812196582927267805359810238475746212095610152192586222131835130647901201018760880575700508087759571346057676277091731294182348499375319371930591321216963131055084916722999878162092074087231859296761354579030153777980650623156048156473037417427040389428399304973940145095062255054240143961673321884298453205441534971903534957321774555158672996932004009752197154911878882789386586888605524441169892861546888848497599876421531285871465623153903621039131602383867003616730747782628611512976272663101131017522140652443357945682565802766499574875549597015681817861846992544261445834357397786159506167788450443538427751558592489290636704036561065862984892264446187770555827679610784334639655509183144709476395546294775699721698909898382270149757525765644871998232755264060629840542456892889484284813507768433810326921934697537239904306121504161763600577239114782659654912197732416493951015608436869429064367563860857754164214352858008028779940977813228131639423803551607553768634829529516150360495542402354201498609244508244339573166735327004126361297811064175840738949515063514065858022934586068506700495582877263459996813474308144069297600774758442242317986776699470490280464887146574970185434840056041041695196830865281731218631875712669332327179550225824265750568027048280679448398119889979980816906025810464934672476581256282462709216591849340548328525177756386187681844936916918946518313532505970859641501687508310155393977007980459501250382862277413268175645245257483226629326300497675835569412569226534745931925393747020850007351749994709876988573744585978833041933624495860907852566130276207545970709084743197607879895477817564924135904652101992029366153515224927609401650543872620383938765181885432020157551870589577328511620904639817247522876771229270471727517518085895453841779568143725396649026309135347949741660371093844158152736063614483778338774781862312654277192126172552742031974265432206264280670180385277580344829173913814231337803217382731824550306634226488643894715975219461730655470811698248557737505375074288370418349645301861174611886460970542681939539194573044849025572439450875073344316942851188708299931562738606324802138181720612065953311570275227465994915037388187154493165311130650698125808825442027062414470531524028349424885695295061080465053103981588684384770888512433464636995634382222651245293709630724623257211360895282096661369218374191101758140937331539296669063385642825441149719130112459186402678810335303843135820734684521179168378035456910224765960741087461647598664148169665963809431425001655412558801937890269163007397166774644803071498437456948096076537533622996127469789475896801947599377978876755289630275985367447328514946951963694194843381083199148459891369696637340845934408643683490795986337025100915474723714584697109997858358017720760706393830544551309192449455177296784383380197108631383233947773102000504591223749195073827942542149196442205793664468529643411604705095005865576047819497754977598914401700119339485599076119728959351952994200187790155176246853672837464962900087676379815549539243995444753836074801667865508706966567818817866150501101829441989749946288392944369602126317585487563320910954467565236608527525558010185412039841510050850745814340288299215719509674914329277207754810821064288901375848417336925830191809567716826654765949228593575641253942849521162453383708483689726918409672555045226439911326856694526882743964618438709320291234782763534082494984658325816879833140106637884277554620614010943574628373873585692826297492519478094293075484660479595393875457822804362506405349213176097906203961373951011876315743390307628158713660945392431289145785742377220311870306115462826902777640614665232281073297491357775472375271898024117418931348014854313738256145679960988589404170934245608230585641385770898590159738644372058832384764569033384145973584729447312056550749537305742776363710313858370950096621512100604795058919486072703140942056054054273354507807631228026746680499429799935493539758005848651750300440476135559994413929694311014916372951067328509679301392002668909569216456226272387732556162277011567324956372554016195419092202058222075063986828384746590801476511785728205114932829203863883227587681888248293442472941559267237085462382098843827439297733901295328524571714467931922378447324977989077751597306808852813297944249931470321465429048991805640558118788067363444835056431982587957934069888112464423959370080415520243462114549552005902535090244527673761465891824105608024294697181650120340766075863219947920750787517421850886110488882688050257951544022688127737432515038820158162051759254725281264857558305524366100810426396720083227436014288542204664143853345659227177639184891214650521141887043602670279323857078568294073745771526284322453855949691274652685603419034872402633821685228423148028056336656682722743304499434737110181979052573010629638967792528769088374240797397091351353924982845871333198066003737691452264382995420002584021085483073465428540918101919311108911511350089884300755877873532234524568943313332165447763702847533845950460730289168316647742960121889600973960929275968293498297470017749297238174049935279675338474157112728551813041960121237591521577446835687427248337062738379926652124421244332458065782156967680708418741315770269399455077224887205213935444596095550386244757796935680163753491043089491907201621429957561047783820450308828318251360245837280575516470613326708616762263998505334235465532759675937570008076034937340500034155139986861420926695245719909658427691890001887722121344757169347956610621953628140948344973626735913281597621052743874543179615646491781951727272782406965654765470628919643904438725045529487884582577498297264054351060726252598817622083050752049660709471789153208649588370579548645943716457379580044392754478508154650162982399551440411790546986312160328953870799979150138727647004788426257752846547137557063371234535391657058239848757416322171651247457671860998287516889216315469795642487851510528458708135214235470567779320456450913988148977381175012237553695018600856660156135512875648523161529265326363232930780875754296896081761782421403031093327330755021693833375390774487401719438352270000079043876178069136942539822374577335293947650731764362692644335672895160916348627940139882936978349806802412779262541621433434481047370329431513823065585708385323716935679292010440171853852199554098443871099841407016522148464119162463493701902374782490311261750759405761561830917236847338669051260301440585681728122137037172347156258247087374407787368365997741629593744795704533028737518145308001711767471845854475910486957181966449196630529937040653971552879424404283719100355580713858844840891514657998064459286689884658961059380083911295731625985249305574382322136998374365516324739468788423228259340949752084986746256907923909377213825437232481062253651104643083980858183125031177075741358563717987136372106368073172766955472650863627210405955300243377225931613793178081924035334020712165269301035028888756102213163239641734657053304547320050024132577248490467945209595504208644450709609405484325641764723027212405020590353262630743259540210645913333161005533235839263362511747039507219921867132010862680606155709634747762535961679736676887098705596368750622163209188568437189452027518725026750999288470666861567997618912165239221784034259138653456680764489720662664759826180312455404443783243700650524842439210571330449217477654728021635933868394253991894026810865267970082755634670220204203305678610380837978404095952742634858270724530824156221279250692467271842941500790157556667625176408347941630456038247885189128065877922794123516880828820827951245897339020404611273492510225557025789220698329852824663861202775126225439691415357805900317053326304434746661555594058520036525572890670710130411697570232953304194120583722381604538703154508823476050202044105332089141464412876496867188805525282977545895983958275870309807226434075834501050673401859939261702075991310635971684463870131273866270056856905774681747996071323935373475502009945720060465165702341840856965470079663399687354971696117096499275827169678624030450516012288462861025381025321679321053895242353353345530939580454233241400798827546338041091651823439733132909897421419160354725823512914348112282909228266333893409349548448237973178766938083119714181310912477365038726470843678967511250537625324819102580095191976291846098118258637500374538986994164581076009303759051528357121044222091718349127969865775734147729010912543315868256238403291138088381568145025247621691737104072424283745785835876222887725924903740915343429033448383563330415260506668683394444141403798862714437313386731256856798336737008132147824092355653227214300815808302641762869388266335244736866377803335439513912616543040096238613598004969563271067855606582278720219941242833186710610753154520258565782729070059040677679269751377107583102032007366187681954408444225178134819904572543947856693643832623400464270059026423349599376390447237072551625794899868574280689566059196228344721317457013388617748369417904368622773200596719553156329402483778980051740742530017160241087197710048190878186223446373924392625296663323608583526736710477515616953657881446200038828383244393637936158240587457737015093437919519816775413721493800923481621758706579784772245669493022099429456957226028846223139016799175662009487295706491012217163873193465859459317333724453793757780708054157265558122335951331293990907117729712945234774732102017987480673065553006660425950088977667859189939249360924964479549383932081129525853574655751878222652243799649030627971224304065932371621582360427725904025571024805275255783633234780101628582443066269715109192560323914679270027126654566449700130384071476278905447157776936242708992976177673705229977998527990966559170343984532783590037002842980432840687201216707155684128644073898404511055870979599455072328291171659634690096559794214936532485961748945498856698291905029867072487289892227299808555737991537431563370794758036277227024389066801776467778847119720440352874580062030265231446603442879133406220467584576170549001027926229391420571104837999271471419628329647980330284827866274118077235049973299254960412219684018653928601030161990596367469161109364509436274788096743868738721399269193302032422433035782542783760854725725116804693477244941637148681875421007589879734617375408166255994319086390351707509249743429492452608420756102606320315033205065923718444853671979042687126851109886766203954449268260231488384071235197245550407192742248581300088819417469339475024111049809220582691344159404734467704614766135601406465172289704574829549324750336142265138438293146134820141406099782171319145361102284061520180639720979286651522355160918975510956099830603662919894206527951456017579900414409760127773764118190510445289669586848281109325173112260000650851309604765740444446213965913107650407572057236500036636318888085342127718684489361384533174945924154346748707757198235260541850373152211160826259044119959890613770161905843394185455338928698495847831675579311471358558054324655589804869911990422636874028444383379101091603813461755316611136660226956800527919231472426381397920556213846874514770568993175920843119941136885132032420278984960709338085924506978149755840275769476310127961072639210864311925417362293086864759116406170346626168043998355110387115793067019421132073548731075395141325071365290563587700223575353120968775377578829885033147610492329643779242209171703605228274306097450779692495081881277255503084291551410823691933252164243148755120578803180147369326657712448383092411373357407099950981707081384594490575933718091726500184825509999819744654658714550299932994703241563430951499133925136468658173660576835826545445051637850051392919741539935555265852979775803184004304693697209401359870892486791009045986002961572181418290921307714349743463379572869007796634794993053556505299770634443961901327185612834266152658493903315488752912731013094474398294308992493941506986376649724307472076342409783006412871030503074867644053429809979070128373414289738328270884131407260335500128519598826401590686548982878325811823969127122852994744758752306930757078007032623171863846625295627826390918745644870398444219743622756967363841475500879601275460762236231572257880180316440361283741440554374075338750984891805992256185323851849287979919399858460345267092734531480956073819425331208942093049791780090335809494973387311108765262436082344698957256187178904849061738494759637420262616364644668616743503421887605327267498123738085995774678255436137918499354863557906245125323829807277419707806548733871335028862010107311001271976847620958458121340754574712236480189774134806339087037518634133198059020625725621269372696272247015387530008754356198070125091065476852946998973507538465613523707067958824589076534766093089146796708385216348772131983351948432457358849107498878548693328660035512420735975417353472255997953722655409578160244475122894194156184984169379690230105087794883693622048798406120933923688923080620221382311544086270933081093624873358032873319722323703541608062065670378250905338678493390960518378105588815625296676677431193393542818462895200224292059083004117920897161507285929625599398707305667263506877132991396771164405972514093817936488824633702108189533019533232613773956444277863908959424176027412423762203573462701722817366398094529560705030752023095357250442226202042412902548293142591079250534253284527035436455531074577197199098047001524220804259247371292359333853613769007594217943304387821212747519466196205316486486945262834605814409109855787314143285135002504779421841758731608106773774116888202574922086979469447684340397141111900411878092998998662366513053500396738989145449142365091545596670760803944953717928748763706075080884194608839214943996851597066658788730704787395650554716485300957474593969303421598789207869691808518423776348696759536821018706628333538360395479440559637509143172741106269966331111926454932256560099539241546178998216625533056392390487789076055228949703849544919706188402242689124560568801485480906433829381582119659796534247969094315767732437773994684904234222315512192975519460737040445117272259040211026364246366547378175765931747538843396373934086525322550141562318525187733826915860566215141710465520655820633681936696282538754119978391376873399598921637780793729919255884936596071495825502799562168583891527313508657791804838863043102345566193148381438125944275147221480236689652145528927222152172026543732107372451999365622246999786299652218776771294866248548942357228522775126303568869944255606367220797241067397147405411397990615971995035840256639436047504731146521598578582269472743464525293505379203864553823099069834489299394916249753244170832992865842354422441794318323984911907225352268244497003528246960864810696668746622500202174490186775989921997849886714668341674561096973464721602894007317295003819797216467453804189933670823771956265175252004701021036011753265022286656557169610334470577409231290078172196716919406701587294719279664038261464271977146929063653593960274607910350490710085303740348664783457858790408169487406622844234231191293973831571746106887112139758951554465924746119649732441257659778093550919838228230457922981611400784072638569927795756703244162342935606807387058543299301433305861829327424679312518452043644782368554274907137669232239380543678373414398911122901162294133396599941974355612055994455170379042076726453694271235402174112554166123560438485941730727697369935553103981262155899125394067867845034588812161177691849872758008885269590979638843387629757120734996210923331456664482885176878199800232183425881835318807022420074449425991132036615925538487767443504210945726982101754112975654982727450518884151843760150498299514749973696237784744156427069953571206048630059742901619651835328989938103138107943764369425905191588876862448663316611480015335741189930329848377913604077841280069129868740725560879051549355532425803200445979107519490376043600994776180996866005415120553334404270580421306799614642637564195435217062972087321603817616502734475611412664696918922290676901895455152379965594321845026119896319880147957176222563281477729233606251645908084955166532160063564480093468963697241107462478992421884511665230901884364896113897857065295234514872601544374090413824336259662967967217238136482203079273450794305501392186901891471842434606523937692575475407573201841811199996676595001012623232240633177303320359821277558350521769051044219941554051896901001203967845796080566259899557279923299364531420632784340674855897244563053851455522744993615791368833656975682404856702964936952782300072133683971589230868066479434984767037684473055228118324809885242185497519636451709177607244187677203029464553434002164129631551736416723811102477139033556804086766300203093213415062003883736287201976243037671962212213308808346621833141831510549656539494032258003637598988281522315432613076149394955055143309870549119743642559415223949103503605531819980614969953261523486926489183385821000457486894062331382089204741065475672665795047636705406926301462152290627023782754533570603474289462379778159887231827610559312819429796672215695095156786886342751809657607430469968321614173045581573184732771432670852048290159398472241569496588196503083034408482574314340605071261568840806684853384333499420146450078483318445879565547164047715491188475657793078168225060962717365143640366672578973320211964541840150903927250396657140083838753619375158501165025341846122130844287894801770452031500208581969724761608038490790177700824912639776862193738993337916529781999278546956606439264021922031572570667280650144703653650283941358610821108448921223632292486294423081442975471562893546766698552669724771944885706651321596361217912188123249274663475341296715219057700062414940049220863147048817812996538480677749400172635854505037074773235544285370306643970100653673150434205597090520389280979915675159206984054137876425642487675812465029424691931440578127394185659445369238064097245918155049936788638133096626909280849253870477657680087352823851389380153314910821517486279034675950796306306035746834233118069973047975567813173472939444623105955325087558225080291813902132536925134416584607289589733361014147315018008443406899693336452553746095516679725741751890026005964997473610418353492916137626773083341952302431115038978983410661297507369518354609809360807122650049844516077375072215696463086891063465068571509244275306282749577024014819650309551242603038337902540473797583291498029383088708535031309765005539776139676986442464041459397454828834638335423234069783185398166868702431422203714444900726390276811070231061725430700558671099844921041141932319644550520841485344993036417763074698402656755660313781056008287324273229518690617347093085807193521767344910678793502052150461486269053242302559076729647013507525326733451531307266261428504982970696964891045574998442434052093607188296036274683464352742793297056523413768931281040604002919785384166378866900966448745074676058440793080670187046235819198862246213080756999645458876822378977364098891658625415380234594735707693858459283656945939326617623031941323171321772144892993218892623043081432930385417758596499272344423130512267554552503456446229226084190546236145609805066057254841331727463370794595123957829119690529852500413246806694081575345482691539193507844781765006521230311910716003018142321760507673157520875892942262574100675126187326614140904515090760646753571499401529050724283738506409585592635198950174298319384775824771725990151440305657147121658662929721660446130502178194167123331019971835995008771391563649791413280405633246624652736458812372685860673609978823479214741595006496044075039025582324010234197005925039552133753413290348004722830305990684678282885629402442408526152205440550748802015306901743178569864904611510023806638538761830090446825814060653141731163865874913723624239719878523493225233728782424274529822662126815841114959862705381354256111458579852235084687582383852942478192749509393347745348137810062417642188627269204351503557112135749853110238582240482035226354768168504600767523958543267323387424518165343878676559099560628922679532452785340362022845185547674296981379113040600261383750703401227816898912303719660357869629820385688103082981779126206707892305355578489495639325344613855677477343246200597641703822840478353549178890434843473431584112913212403126562805727025980360408149686816508477651973858693623357275673560639105105863109764184983560642274497127408829776025765009541378576711311129952338176471962613355524767574630615679936218337695482450758193192768823439562569582076714111835978786697886387695138477936605638996146990398658727389235329867252629509141229918693032553278562977571390172735855776745866853589982443339358829741862184109610544493366462719682742988171394074414935123746228583034957071822560739341739641962444913355241553633918736702894497750227963853514083931498529258877243992169649819820278076467291635683460610555384988545934990347118910424445208364650219539245014966125415073588801229320534646063603538224849684189559614413903143966914569195597348172756567807418826447883301568474598797812325312393518808772783440804956615282618216197359759612085721306053633462717931294366193912853179703648652063152918025043371593887058093325030542070629025887446417937533375474180330866322397305589831383361889565992092735835307679384779811330995208901347511282721593160018092292821513298136531549560411733755833086044605584344275946222063484787865604494628199685763986545402741416746303607971690609055436711044547435146591020855278103227188374717755889059142727899757836839150548067445791973358639232606679363712863092113769672659656032573851137166708834114993719112732089123379536352165232899904086367433324851228459062363265599193496572544485939719100292243868784486104433134154137340279851626952030902603719142556265088345229149736809629531571923753894897253782772289774613996656228788464136928800521201029571360852236639067120154008293588088558112454682304430604066279502430567185003210103450132861997264103475997004017029754124584175982572117283356860150540086061267056759699351159949411482414447290349118223300006751536602888321302211885870254823342832643805982331369063617966981019510268659095177625730452785306018242285637192207504743883838703039367116056989352212392863141899357093978396561842493335799433555400190759134807446843122568950449161911097255791611022142152085744603471521652498060993510943276717723448988450617086190235786427433620025928306259272216796604307414687312960931427142175902759353139995615469525006243783769681579060709513438724227579425818310774979129626608869325338302011917605363068902265094772166783959037774608017599566532842649573832553850428459573719251899471556584896222940043990153761882288884191725225737602541967459428379089281702082980678056153937482839738001090690665635703720347312092811753731858397199210757585745924137157168543948287253795789979235164316092801724710435823551512922831083409676078401936952409072975625791156880268941768799352742895965283013752069665612695618047445957676901925653712113607059751009646861103086871796046696142290229748589684436501270301333332846391323279636332036515744703496830414875345587243086803449431789426071084585804236616918877509168673767742370318720794870919237145129769203797225466649068379760316087579981732393012571722401790002448266714924529617752094353157897372041708568116282691190791857118961444399591688446343350750214511349973011381698077702648928361354575147087687170347764217795651449980191634936242151128342646327454730405452763046801767221533850274709799756726783385419778021506300918513516647820464780725988480750668781016581471977150883629753679998380765988702357289037825520748852195470750976332315785432054274825808070065388079319475205107541579009676883910937594675920327540310128024423428038742061124200131425576023944912565553144289037427758476513317618055878125264515709757165454034284138335869288866507801367745952389890665594496474072546556083129126138414871478247527170835606690749306421640674377634390705732072539197882378680931038971605778990963314493525752088301701740580315979076670347140264945589318233015515423418504142733386703567339048696566988785061307040912943807939773700059802863596724592866039851554896824447982592818296474171882707428877023387090565729624791423087963899122706466615180261021103263621041902869745171532895562127479759464592808399913282174779046718335822258686927165694938781314284092627253081395114477596844693402726511790280187047961933414983845654877397779115019643526507712681767543008557166251357925916552840157892845824363735376503205127975004124582678302872436078905543625268627632167937934380935866426177619095665280026979179288040581923843587756043174299099440400427823771859145889452094792663210938155711331847402889684349060914928079986327670339734278967574146996283694419176132560009009788849471351357666789536711275135030894756681999215445444311992549733217060538523816701767585893554888077629483367541670477487326336986919555971309655531488914227495270299582304545265144553512141950281232894577376399085454205320155590826855395221934143656499034304296632904682961537880373097509807130028724655652654561960342372439251563274848253101737397043413709260451072253665831045936162694490441449322171186977189973257948079998701584573663079147868894548520472662186573918445528721664124534006854890773485092083988981195721866216866832121148353843177053114715636175785007600687154737638197255934218895779752067868332869657628753198127092163156103713695311095901888072120841114673880320176239006373828373734500837018070952825002584865331049216613287966478493338743615888509922801915522046351716034187115055777522088176194494276460655794961829664464692997383589173027796010724181164958652917016590436198978235117168440281539806145987197907615671607895813909148505292012628531477600476655544512106847459809520367266374211882250036715751764195606466486151324017017601860829450650734791209960805981531043976511978926696403811368583813758154498587290179170109936207649508624410618528294546312765799196343328386743820383739602603490177846216232957570883122154461225923220656515167017233420539379449438784421628430418925943867300759214517051161904378140376361749831132973050805811680052713918171863692241563428771604001869212987011237612613783843845905407871358608773371104949475071577966732978997625882241397908463010546062735674811578536161032684347965708252147918752096803363596113766584263534161962566735455919869624356034760204507962813403371967265371190697122392321432648661430133069114485274800174205040864285709520730066789297466495666256077093143963033299488237128911776532942873208321974189099047912832731560364844404284065819012417750876048401220344983337016255405562306504129204516764812973744155787390929341261856053797704435296750500585587386926725903695095069648141564969113530502452818695917233762651024557539982207472041486809592193993419259281337264056282933826743271781451473570119477853964848219837634695489504600849232715019992587384307803091250978971623259530263500763019834963152281885111267698298607091602337551591848708748090232006018718411065084383051945966596697332280751049887058744644895154086532135254515128196634026712492281017390310085564176712145167172744000958223345901293180054471682943562636882709496931385360182490567295243574569978475231020330715737448209986304819515705847199889387447647680470294164427806039567858438598961517554075112269023642419733578507377403256128805579077286385100258087352962751870282972114864568578693983601700824557791178549473077760736905196785683599794908642917030314910756741645467708412467152012783253082282661371625733226209645361598667319381052779830090572943905933421550934191985458776100529041875427565415325002848727522084511311415197118441251074571011707268986256224333525768119230096400910071136100396279191655117098084370550185472071170282444520083028945492572238210391449801733084230044351502471253882912408591770670640340443885811188253923098449064710883700174952834959142601041168739965256029759321033563306067559271478841345011435346908893838064620536778203004152877979404113437780870474173870473006924796158979687358756475756987156503356679317397122707412353177276821623402349964968963674612124779732353867278861799258769920291902128076795111687776644998795997540373215887817624792647846299585891613351701533068490178192625549733204721556523033152389789773001820613323324326513622091427589109661138873786417756427608116756828490834824761289752333588464940262339289581483055625557847127600665413341086412466912893433607319091254056925485118684029003205223998920407125327836347168635444653045512123577651932766578464253252311953608780423367862238176194307155181182775346690627715453248664199860561452070614874483224816188994438145936234572922418424801832928379116039654880076562930272685498648559550441481987516737143648824756985848147855849319331987531411889499439187545376786375076366677063198838252599861105607208924135811856611016393058563818161164861506887325136620285136328404955597399394646441124838144565110684886748689482874469547868742174527671404803332565801471773219082047480646380099645098023784875672127587359137921523103755945369059268157570846052875855507880046857189308713744807562693668770484405881052222179231678352514653796628037280486086286162167943771830019927721562906020765810394749675188815473910975992126251645045901414484285522537498621403272813842863181884152886465149448444922930496348015957380958567045417229779884442331430555327801862538377946266610142789822414900664566421053049967406925467744224363122254702211753059933679159214487085356761899753183402709578187627052695694656343473389780772470738378567211086596202958470227131083082052518962527628762842810539148068291673185040712907012291727438406129916801175328335608046335233136223132530368021212251498055405880794812912003973990602891325913759065993041232858714940750328954108611494648412848694658567370277056407011013559438887073156499787049778793086834219479667126393737054964852144096930298413522342003228841398784944208512175957533737210743770462297809595865412027661799687541278140837503706824880174370752014547142886804120203717342401719772799728403895578233532311662675831788298493169625894342316132078805268747389813676632169920840269758418553089612977847692887763139025768285606083365568567974421927171308573146378424439771288513326649138392137234855079849820840597295686018769773090825436212869297522273113669190772705109991547549782421542013046532356806591248406770489073318628308397570954616669445489994880110601229047624159121583744655179110836727496253694284875194848393477404876216075891875962169063818678847981667688067684897382506158633294926869963521072031377302918193330399387745520362095251657044742246008143562693845779432362059763310236366623511730850417615596959677036690509639742791619163078421322412500822117932149539719038743417976247553986597075166181941853839163332272117354029459451674120161795609782371713769132730040564434733210362678956738639708329987095353670197392672862089126620739798643912034912083084189424337948890266111507064555210948718878137875258027058711720508687880615587913865020256723859547824123087059997622325799149638338560442423330776912400398997907647744977041357362450786710484531949721975631356382439216437033594876304859069557243522941060128706300653113700208626868479708127704793868516228736518683296599940965757207421776907199734916871972455317977937605419310852750633784673105773588260483338219941000053397524808562716972191952175929477302880658461438291650615917747336911048519560018647858503101262922763710800372664602313312623329434310513374426091366562791014068262688222514936292831636099713785998258368090632502267792817068178369903466164935015257194903193731060310759078511518045423829696129848626407540358215205585046035582670608363227123561946263012994284567889762642019749469147190422151527047742250419693718945148720524467234114945804496540074423732156131255002097734081414937756408994499217152861753895651555217340827182517793463322277521623278113085950624662313204338053719797091939199257922058258879824563014893473256616000354162963611998828742016347421172766417600677747287819147473727480341651456194497440636615881084380726436674332615611227719772079930346512305561905239231411812477984920943806477731086286122959898134439820698701060261468352195181239295196613353087930794301375619904760186497536463701611925241730635972109487433092011009288341852588252223171229168646349572512627955659411069654898417171138883374977954997854690955296013624526337687663071987627326147663361858377757491170434459535785021350115532252946778213069726405274853707972202073859392156040178731943827500949252906799086827417680250464190249132575827455560947877359145466804300374771399274477218294589217935488019311093796472102642039682313332696071391007208851801655020654025367236187452382929746224898368944020219140387233763073017561847345473568493248912317621456515945594627071009273950663583732725302826225190077035580350125481707167792801132064589185900407275263352791461441791096309642444707884963610440214740184237154598718892083653968905890401383736920509736632194601298329577460855758560648257505778825838327563898837562815217100120415856576961259085546821250797075991732242983403608551150596530811609142723711650423346075563117661466920278555793838249334803422416440872227654443194725514286481348261185987971084168875671517945894294633566030389903042310731943733790895397430370472142238246323859610381398249684909801495645108222327804726127160797303024636093958708717698354460758396426863463289212161405195349566568370506222314772549163973577222877494236599565762900194057399823177927361745188811717558637096679762488856676055272851643817518689557543903490396279742983970872022536674762520892359354063001433146836560723818384678336115655465278032256618086369426523293358696648353732026864500031814810758566368057126435376566670619185090353843695099733202727849416267650178717596155554121052062018671242471034529238559153110904709842613907911499103046684476344101857124290643484004104955961064959521314919770326129187383006658901442575966263168473799665418670443707381820985884382230202129536753329810889228197963448092483362926697084384487575204862285947281877313210218356633895549069763940229107628981928740869833571009514721996860570363871348550217202442469106721007214773750644251041854155815978707343220694627487713946295210201581147916285619330943444681108718080240567175586028226537886431111428173913750241676036920325838645734142848530462441417461853878622921583994406444575042919862691203649009857653200474244767601367817572747842737408838168437403827026137420037628157209862411605285609606288912701481933151612986106481712585117496794223881702504357336968569377436740225084340988361564910834372606428742923328502312597179782195822976952032066888109819933538889229625425933443969889296843788357380032059920154563103658692588038925246799791149887409928708686529645765447623401840986893055884671551664124321150619221141163821757090123300591075091325164741437778764201201486597673839061901036058662877234335723821134788365372620308687736645106320710359943178042593252086371683997236624736221941257469186068545965493084426904142543393545014945331387137315144706671216030010915869485443506051392216008370923516774278329646929809532708624286571064094458945061328899791017534833874451669741514848759671552142945256714036924861060148181727164014923344564120981322603820470876039693820338864381086323165067313857500868060277310728237123715077127699791797389415593853978839374367942365928084379210708159198326177654525847348311150669661329652947035338756334401815910223081966920001583673669589581596488262931396389500871294637999784797796110300715636529792842981701268983614589660771336149406450166905176126126841441600200979736624893254801122192970155094467362412300953744840867642306023495092497741445843743495608845716221118316070928899238149365473642756244833649660267212422817233070277860619981122597743661499783310303547938788670721566306419369653543359854961235375149025370135898234530327384708773739167718843053256386954408697898863307208014932415929724356299236065690719511555145259841950342461930392091614022789700321279325676755500798981815574207631599988926547459926381693107276592853648528294313857808627545215884619355274544896125019969718680187948539564320839640948344538534681016526721378198194334400919756050562001339585429039697102620160358564849524610465550301820789871738363544596877289116278664155905909088611435339246444717283580247429455863547538457876180793901186523059219158507676875388245084561132467517084194048953285154320082269942422533637728502754599471321243858284284133861669864112244046594819779668300940074934534848006332972457625043186095506904335068323912235495457433263990979269626313389761582963231622372685184769130966995631195998084758250369083158900958579166622623946022879722756906687569470732914758197489124779185405009871110287179242058986610612751018830113420844363008245852900686867074555391121355573245291155038584888919118193242032493035173462063638781691757132950365203308793051252880702862910818808412670544845763524602054026660701442114639247822385324468801759967371977425540944070089239579220569196784324654265866910191145027930148241293190684035629556099988235908667476029317832450602465537611109928823106731322650060869586916138557985651575984613856995719515145289529655370487523804199600435059666857784508580206327348116180138790749152997133498411229749377398261131156225070127670983730728666932627713627439710395888330952569428525342962091790893597844024707752636662988179325389032445511614945662391217771075494860999127283979799093100528598040520593867398413855339338253986520020700887056404492117464278176100544937026335166778399668174973166948495809189795873935381520916690247134755260078142114900881747198979191178880978325414024650242566929572557604786515621319146623789540816742300443803098438772015956376923212746391983674141802311916930181110181450742674494231411921419944987920897909255028499876533120662916725881674294313645520625458786807403386721474578125476529684279353751229186474267357131422856986685203712315004410120896424901935542874955895040974632686312467465268988770612221751957345261383397429230129367352155472540163419017926652421363238612661896248370736038458039142783864845021049276147775094728168957772929436547277295472183809363544039723587613921622785633336226412595301135101372854254044083363677466622333044906021660654183751249061073544634176403534185632517962761378547603567983824432383642530634762852648368484384864668040483868025873018214755441396085713597021920072619723144682380254052264047410465152921844316999593418631603297450388921118771409987286450211084714338333852054677335146470905883180171697004553240454887719117645363711419436618789295459655950671092833331764100992451210785369882389629899803301145428945693345353321102438858595057184118525050734531923479940509017370076822126981827479234136567552165655697685347795583960547779348737574652117450418180180154743754619357310827177911382117990584155201841595777436262492539146718953397258683445895508990216418909121609437473779810652338231732662798303741154198129113604045041511174764933876537915169565475454692874200711866995246727293686592132813028444723945989855649966080923261063381264863460139723481393448235690651655082234990668321024548797910728113951288950305278348814841823134857380710488172805813531126387085550641440520129163694952636995193288566692638801344776559374112980881390911661558707304909739278265254219111174855503107856558203606295787220401794634487171199319470533769101112605540024087352592641055774369351822671713946351967915315950875544804649440399650446990373475094029678890304410534682749599709479888306332543993620796039360404366932770466485314841484659900446999923021270638723415413409134885771165695144385179026866713074124058892914092758994843211325568422616089163695075870134782599043485677205286270505610882194634332467184112661496362227057493261879469028338794187952633327163624824040243037042520511437644045629914938633157693797233251075203667176774624685773495119162869751526434435614383977590656487899737838794337441218949192492406156692396592326562882774722517564410926531976912577567583567162113898569257879318717691000916027923799860662944398549162176730334035630987841923066785167036610356532516946742442920362892688999295982013330596939711618864922969793446916664479572852717478984112474871276397888493308973061536132867907234954512320377938466245356730163424695451060708556149470779434811338316197810327363010324603482925204110784995289311526014019560423392462311032260249021890642059232336789200889277106374612846107621810611555398063019357945128740401009517557680843621891925929519717093859388985150475460630034257101826857980460655548798290933058141473154969620018996574486401007909589855207351505978416128468990563524815946385037730713721362563085223005418276733381892350512823359592459822631184143556299221821684250281460606225140981748261581327834193034028448874327067327448742260834672155783234535382065364454054888872247422524520449792576639421310839203997932282473647069701678937426732410263679482877279528636345993426463524893661488354441907730146299849792481935542672858345802156143626522429851937207262771380261599899604299076405159850988640143993602677894693021947938282932282338666646570833645143064406821203920929261900882026025343475805748345271442015753731830875894993994309297468568963348823629978706963622924017145425195432500762657902532042249273395816195819149646525026971621883367877348850079737290214002292735498361649736640977146821326223275592507017083257897705216896989501320023500533188371870895737600853004835967424040122341184899026565098848486691486457861874970758698410588968787532044618418821804881308856621079763917247471839277234337719537397086486675138527258243503801181668406252299650432006084886310910997237078868154646467128310230047256657351896619482381880791642322468340885412246762663590371140295970094546661697992817146805345130784726321268645630670149978641401035503881569388957899560235082409801759162647495566107054175616952980752718320109622951435549082799292782784449743585637466296776495342009665001315725040252109134656975714325657224384091896144536823684070236499014115529731198670220573697797491041882763290275234426674680491630678807917910065654393259036070515349326692131476504942391314072617660144665888960810241607590838613193500002489489452146739722004090853136290291268052997508956060652677961632953624679587028186152496387911040715655752078076486019934750773644261898461790945290234170386801388347877104739684414277789459619866164465007204244617339661678157810452141808156491879844759327764102741539647449254418658815192701581396971329560043687818285255857945977794750838226853486403994821435663986646559299839925768802051432839471601399527534628743109467650532291077846610391640653452380042649059865539947285366471977173729769322043584464937605370075566956737242223115558258925769721268805566380477580290009848251445379476217724990143408728469574254790486472979291743785031208423699348003448265060948639237177640438894274077483643857090580012349718448740885202541921728619914763861274538625029289980272116832937898264450348346335658444623767283421646133425660700493142734657852366103083390276016112421978221782147439423300843594128088699967439444990512105163286245118660005137911708125617802414358331658365434460692445474147979849690184903127305643541705738514755847848834462076953692336384352499285747277848962978832652824921805473767883024244067456410351159272406532281277113591375582330285287072165154190301330512301953473667788257397129640706102043199895760705404715327031980931214575586863533243548521772347426632620282631803236303767992513115612204013476530805251230325235897026063474753084968418051424998440894641568883540008962597985483250302532379749698547399598269608880239466210508723941507601117027713990962837982233354407615763090549295277861329596153197319156858557771793076500333258546333109796428836820302391102107723859583719668814850983611630728379417405624742689831416600886341727853460000433563771089397725307165388873910633705879769255230455275892001528331989425411034165452487973106402192617233082805009603350015374050327458591605638585526275360539546969753279371797134964974342296768486336811911268679012040762451328210954306332130605851929037188299160619345769002379227178359429452354042760125315432347385690240575416947578553544235065842274936227543702976673570789962728556255697261815666358303576294407194478675340120588533354744857169125696777031104019118361278320170673953304220731777730783345144839245129640522873983312095941544805874118521473832983881127384363387731621375650308852295921833633975342154503835913071064980859638083859449367305830403581445299036391647585068069944172490132308110259421273397654673051781229515200979409685738577492534768404653935571535962606020616418986682182000427604221553844887589266012797478368323444501657171878529142156665290819926978792562212388778159642833932029961165405523463538685327899512119058867446532262046877898654529945303359394068629714862729176462550107791705955606955367653513653614116814150597468192353685656706407641338094528243941064697394753448922811591817665784118383303654264656413961633822299946945813707866460341493032869947779442426256229011952013724517461916222039847668197200989747470366667685849022162023106496877550770237358840496666534850080214572133162258304792144751865375504145659935579957893369305555043517727702115915679213464366249080220631482538859002969498756928302506692609390871164981924806955414084548772669511458890216912324537644655447905039051554854305155392598661500162484651642246257875643575258597331158928557438263998638687491443356509871516623102915725468844649919940109081700052678868374206799424350610140301885388522725533125717535014289795228304837903130704570124732692282067671404669761068153232130212178151100751593715281466775484263411587376282433170824600562093355118411813703957009572025872575561982702776656952748604266932183145571205427986148210554850007542157254698580977352198541382195348221419814785080169533317694475565011682136711721015686428332843543390008697834725304693574442340217297028513842855419135229111379491812157848634649633226816777426374236923267918098080203894635296459453129721393592818031097289245659975340383944360014323706519219032461597139694636588177858276030056790551108332223394168850343358759529760225750167531677292505370725127473990033210154300848492432646973543458700971643261342174091582069025166419743375077899757453226107836340838344937886245091774416566399648928013435488727157846275953709473044110399826731428528697430155662808761866924753684981033289139404883773785350693904911596982636873143411434342899859605054005760910602821746294990475446324122920234809344939974519620856924902620578972100302668267002510176234724000973007556662198984836299969528132538152477377951441239550893013682757762589449140163625851963000623198344187123207035867640839602191449266004125525238844996797102070196466747239217595904848049223463208328471779741484491543021977845840471463853056476336228064093746963719204711355366705280959730538717615348366066491857794144132706680708210760134084969175910695879736569563327710635840041397003507131942671422655300314822331115147799046682488532336162660684253680149569816945236200271598950251413076723477437204347195013332364534618977256114830437310374108225064605674567719139936637279517594969374203436837458820365727410695424907124222809180295979409068709227563145239117039723636502102495750072577338583659350568744679474613554314911829791088668654588373641903454053042296987106629310385898635984751007106448994487793988636979643308019283874350123088346800890442045623610098413993260753991651415097306707196429679058155457717292005825369535986131314063707816702670564099741178573900350173142027171361857366525897591519127874211867044656347063074777570594799546535033447477963108417022197281309753650233885853987824438407933778425745872385458412897602600974009053573167251678846844851517921404146428725684806809170449141743780372032489177597033971733515124070636441530305551407947933392830499922595062068029142919162099784970106227506640973502703328185805556424202087970924051815757432389430613245780479719726994507843300541937644510886503831725917293625396626389133122260486177768005235704858216605172014181556868810592389835998928109203041703452285483592518678275989484098136807662212908609512333705150705332541420291190107508003108945554654249256293328941149852489571142742029509309374523944936588642048137167333940719792696835682758720942868415655607849628877563545688126935864220359876700099137272062940384117785191443802229774444447725575869187194409106381756377922582734315553235461158657774012525475195741652576760137264968737970722550541550144473614754666233123346632706955341727855873991148455810825251381050189591470068054182179054794851415492075976769035976487589980314321545429432032750481557547491503077599852270499052526795887415205463508032506500966289097437323593436198549527484394813181548026857838995730132209624012726051859850788595061637851755971819966139852173580074863206108005100546366400930409663206327912064345109649443571318047497682092257685552004663466551679902298064195473730772628092218684970523403715865999872631828438527745335117931057393350689924464111356030421851789235564569829296015777575790180637266346813360886852896436852799008583652418595857512835976699409279469418916933478118403704433846495289687376635740861025901273870666511230533498545017933351405400027883511020448513150996713992975587541062095974065372619606053689722381063301660637114365512071247297348438484523528504974720140925357989858255207499255870330681434608066594025944919567720120582069277279583683549360284704467913617915331969612587057241212979606396349984434691465447717482632170638350390079742080491309242301605633328064691642610944505511198526353203808718336291889383129490642408897381774350822410932797454100019528467661283417168830923436000687262321083498644493688557429170601105615878326238076849184181485124130214509310081281788920760191392303957042044747540198097492783268750321571987701527890471318540506069632909776094194936353407662449972992346557631533233598911985547317359530213033224238420851576760737931419593727612307328935405180774284447688266403952274969562669019189585086996769085340236873771671396426512200012915421279362400639236977430463604841004203031564405599039716915827229002344476814020866379821547527418137502966989555457462022553765279945435489553250241129942010642753240302328643842280484196228269008524258665692576386839089342018246701173503969853678634332619198582390745228741965300153451679112552812168746745403609164542458750010292152021148420607578696869315419237753333256059902599431421030145880446919208516377960183268043479161392240580405636664006429101092790657299549216544975019178200830108779505494409929497799300486112662734383761294530880589780506011218761971225560741387773795632458201816858155979593495221509149250820561225872512404770260570046241616242436615776128264404073465633943081519234552691928068115691969996787498239149489430925405244463996808735716109184556281220373937048697668591416501667180144405279490429434731504725729520733565730510790730466723652515096447676365238072060064003338829224746242214827056965701837508011862891690656939416559590097349057843391752818992962271760881488754868417432049992029332976288210404811060619665633660066810063634833155833023052121453140126547848044538351101795203888337692439537125411043095526392229496581538781622199304563325736940899205008243105115061103020450937815955341471057734277389589735927246248085055679957276271131369204581075769934878165286750303468596989606342574775941922495092799893748494176027339688560400040879094144096283728660923361293341195146015687671699318998029601324653268926516086727465939308695261721752605939627827490287388909891622895026773922798019417109554127446556247203317105473456880950464566805157810276562515045409511953612587464522489331463762121784465343762405066498232692423509732453845730445175392457832419462159976315551769103614237656121741932337362310637314433628723533536393991620986651484346258719438785191135243897186674931021485638726353853598670586975252098554853635687236999097716073660770000586128707516157369350453044263637919313224541131870800621876936495108230773918375214762762982199994599004713978861681657927678344888913464322940197894269218095057233830248305090948418116843910236426034287344456688810200327598802333725247574760815011544622903307162847882610683640719681894410032436798574764270109439603240123000720677286483128913664323696154199680872439824132710459593242241595271347519000537711974939983089338110280427793337657209692923272489868314062797323077582627434592864494563483332136172098453915337042371630242838938936723500357826565212967274595866301514857561364848855773418126770616148176310736756009096936055599385852804325948709472158171599037304477304580173424465574001532267076022622308995485618920613965399514989255001684794623844244265312472266039196820908389124458626168485648612094162390373683849787911908678509073314461717855254050550590201483554576160635772719853892274859565276197922467653690530248984903775272144100774271395189588781949629567270034850957690570944077325129287603594471469643741496433766072275791531611379383791785318489538349890993098402960563708629362818085459417172894366398030197384968482911105294389465669514973796268754716582933685437624257995371248232319378562044022073876465414822385579880575299790650785913243348656904082399681298154879002609587197176626270722372750384902000509576402846046608811078786426118156515352628686335367388357787276316639416062958975591767470658050144057164063522338490661477817602908567408741087159261121890468776530536262728221467912166049972819598898377266479507076055456812953309113245548369569624775998902296040939632100652998831642302242731711845487313588720861517197278220361207965562155363338822761574963566399773468751926311048826383801299463466574462111923509380515905182688369670412545733524568507223646614575611699503298281407239035382960903775447521567529634325353735823741549369411744708628201360360083167620724895372663424097751948035373679593628148532684854476698388677351007998700920051154237991058851901709946056658727201134619105274164749334078613797874729839923743607595258285550360370476848499288247300387404370575511575115635581874785667548570167786502857782873925005363208097780231220132187262022679066575436649668777361453456688264699316996825000869577770645904453553785751059096487803244984527882617605145187810877275499098658290063921554657905968332597738185890789058394762439616502246992838982556906191987153465151061166181811970135129892778274715483107302169618853822312378870675519576031194015336037700674314256308361890015230283429291224817375073671152310528474684883116251284306028072106030923893347941549222644855998897655864537103817807182162433607542148365501557304763239196478409979484845248903832740208354491637156173668596307140560896867791070484155876307384614676585085509815317858354806497210457814710763693244308213410792253682884871987516855597368912785695438791870635698711608740002084202385028277817985870886489781066625570260837295533269447040144977797040362761215564988775162264988514715986298962747229094697799641462044075709970373892400993956205864362491622989212356107975892254171931568204192975741534178993831518962767504954910298710961240801531748306537497007564377357755256453996324199783885281908637535614499354748025182259185343080633898552011576949272742156427663761135457023827382496363923677667615931475494533982397333851539089036857950150739275323235426976433578205701233467309200518027489805429323837762830726694295935949891926508898454970133998332495305743283417321556373108129534459097012344376286935263711885269389299387147736561661331083413725286001857864612646097663902181805142692126362264572336430582879926135670480480763111444353050240821086918992729240182927363311670605871238117188348231579534419602708531680546574896605935888124700586324865397751839524630403115410961295647177686748900956529254453763224319556925161048350420052646684627475539257705742112509894393387865811367833617939319131430304189157616946755214501249144166574561230186245948937215650369442089730649150357258489341504801557921455249375195082180297029309823073148296657377001711255962164007448581815204693729037534626674574154727096646327006242246717251484968682433905760135872088584281963162613204596381657509948832757687108523031391544042751035298141090703121931113332736192488766392666171027908842610912677154925020308216294731489715599438789287182943443202029969062955153060227434169561407839904403916349974272491271304803123376223885164281629665684839352622214383374390362824748868430184811252137482409942254670633867185354853917640998053903906179305509763623757877343741566282059293357990385620561680318644643373687506303862485019425263032826502630649992609030376391899108623271476876978986295893323995767416768456593475209538356387076620342995990462797235338798581879287029416023770504828443724148947333610759272476571141691391151048412728143774393054239576248253256523905618486294862063425051415269538218913947918166563618282976047978671996543256209964105492032937444667540463323130664781012847190861580164817977667207145549494899945464850377339870746130517250429616622637672100142174476340750607925364013089808779919057682538987681934557461276750678766185371926618752410326633232545245001477490389695309433082674193555159742388774079428216606903988244217841151171674263395703989364929267556230636963582681352036507007015049244857150819904216164651096276766582958000486353332385681450169644512495938181969499230834893097786543132159091251810685946273697718278524143599999663003645810658974333229607081647457585083990180524241158272153949900342193756081173056357656263168270098736706253479513646045630921405360444674590714326606627199770702538794888421205992657594059474431808213388840434367451345525425456653515365978683249316078521977455483207532189654183604415771098185862824678684860020234320474166657784045958778431375397674923207208587590585753007122228207951512582018944403171389999405778948248695002659102246380793260907546554888675408537614078568085002801063851584129746612757736512886138950079378505529420677641187811609596524126796951716390971894308203681703687372239706458002666294527793774813322935186883497348817826682798952109756330522766024659326745613150502243255335586465527321363429464050741846558330375441032323825073059687789369086473103607755942747694176466135557911247840407097715857634468660223077435428727639556694020591736903658142106513380001573374515034592089077720010019976434416862641658995233714501373137259007376193474736090324148671704930894956509756610640137041440829998816998797089133282057448826280317091816647287349213828946256516741424619978775350111095073259952130807767066055661710265109664930155609744464450199889684529985411567580425009089669131464113329197311299150104056550729636516913967781710502695442711337056255001944435641630998983693670642466704130509638975071050622821328196522377979728362605082567937409287563448137867657665474022443747188133190461100518266714055825111795215541643023152686178640018940647527945267350676901971434347668200274496557107774273950919002318414138662561408819153139659242572963764406929453889121868001901139016478453826171911917333502837891289741355882958739406962303314275724186243933917839552618928173588258090263246055973001388417629661126233020787054301751263193146349078065021854020903888057058085863556599279899580792189986102220301738056903818647639863449696362666329156849037648244960242889616667839016716233635203786314249377784890274699072244480984257385111204305733511728852323825495625622613532714560031682879170006482282771880046461322442441266932335868818013075664191678785139637692630436118811800895491900336674861572552552030118559080768037469058603765974184006525385469220047217999899793765630580551134307269770578895227516598691168331200374539577292258908405720727851446315155373716707929052445742290013962196904814045127734046131390477379765878811095619988013363732309188570216525252214575174079053259523268301240280448412090438209870229815678703401580779758263708873087678606431603629624239859165157242709717553142631372260846695501702093941993374737368741029488042687374610117135203287333419447295952842521983038870776691050714927337561695676569626033489799290572623109955197240163681483821644720038765440990955842683977323158897990983305808740313758645858189657487460688668016798144851580267741334319808162890327738492196928246435630605784138735408912781863671786735766657821109976979184727481600904549119306600152909248888973060308026475470255432094147474403090950865177438232663206324211798071986177378806739808699542498441213590051516917509510378930203465930693297111778622794345464775472277044627807532252209462481098498716906175850801381732809867418078323770914792868188221678497481544544750192817729923754230860819734902371575410465001698962507382598779851431362456916013202957814947725097572259508971579901434799416601801269109468913230159273195975974811766184829912290380503092826286966327630616074346241105831860824184217939763409564769392466468057526166662972153917598108865578174689612520032230713391398902499105501508877287842547010997022069427910062026351361244101576887575961669254368718181222847697246818304113967024637055937758710051583719425996372927382790274503901894733316351661611885298161257502188685567645042517854754628811217062549547778093269313097881167322475902045945075146427579839522173754789423155513394989924480229491887969360902574249792126870361648408061969855458570401002499966459934647081850632717367946323232326020356228933932793485179024053446247291376763270396476667395582077994984571997687130951101437244986217311573474390394449692872786825371407159329317262096442389999890111590558704136886081898460704699052367326392888673870957113500022921059483007355193164617501173767449953113296647805780433018635493156548440644519955877829089565755454900852265902415737916535729217532142440755847103206142108770857498539878656557463371152304050912667673724377469262488772544371427557393898183197472664869541809899528226643916929318279662886709883295144026470677666764834551239426032374965990475647442372889747127089720814515185823236464539542648359655303533237368992828145110667456207889823263075399312733688595486775262990299830573963294924846168633717665324985426458528109303041457734536420995251451115576381926072132759055285720142982199415655709434241511274125341561630503569482852548723019594087651095224575944322175850842692862050713742058902474498119803285703255793741681647137757840444797716891421686848905690805245001290020033729947587506970329207367889710395385275370605336042593285845960815515798230937326473061447686629979541148264124464472066881304490742033148526675167029735151076012659700681668403849419994706816570262710818096374562561829472744513709465146267230021109019176631536350188950045722176150229205044524642927982256591570801740680409381326108880729581154901691301690313527932523621478816986203323054831609998990791107212387542384547981697159937046819231025833253978688365245540685352439826362137147624354174242525671727755507922979268591548420597540191869576999742871328376971380185460915123420729211096710628017084075551070335365857191673830611681445752252163142179948647557370642093319121151780929650430057625717322104573485226497321775452440239837934354688643337504500948506654093570276175051080481381131095604574728841683459553966743654870517062487050286275764264887623413478301044298235647531501343823801454771997037079560146404887692319544793847686858989718334845412881582433556122682733237745724868959800071336629216163819948917973954663863110647055354735992731903498530851412872668883231265200311299579439961701755224177055996701836341240295818384557591215739869840829526434563130796807187325537091334883709893486242999536581013058455288734214207947785917190509786505292873937391615556080137110379569938339597019578087726552741323047165171472302984192574054367856259044400875681332053144828860744467834019500473640467116660981073152453345698182907757883819518542046249768912307595835818043223426987594714647380687307201665336444689779444191270186533497257783044963866510946087098496317032962670805231236144694237840803061237265213263080848347785711828575957446357713960876907155992786812603517524520107708972928963975349482838594197497279658887259490572845495607255203281077187006659850337985217447240130449084560994456452549401495437737912395264676449587628792231143192872208929098036060693022861969342955590561972686426910617918602904161062080288157571154865112515727233242467744357895861463584879905067524971017384581784566248423408227446786394410911497181929297067807698057719671703700627498916730590540018862291987557402878670806210381863251643902677034214358387520482680258691600274446954556339597016262299425288027857804910084886854625785605643391172448967732593747591360077041886864294781681587138729872308861040186786748109339035844429486717397854678820565301598611819991678216748264876436328254279776586515130734928195998281222463380954573350936644148085211208749670881560609747691690471122947716238074800018741773655475820363278014735251216064059481772083702519555815324940636972296458694369819675235629739233782828789957723797547923393476113519740046397272836021555902089721049196699532112185755268221945981052108941140847058542641098503620332799863256900013314264859672732038383593614324862480922016094733443628393090865241633544207524842384747092887796666967647902513497970984216422359979923937137685258103755025196872034021947097887607311997071094930709190882204680011985741670300464120882341965071757402074206651726302127992063373162654384054002296539511451475353465069892886243491420645549516104605259643194242149305562040795061325880680399231511164909485130699441305314655437387690739418867264702269098311950642587520497753180438860632252193791264394712470989933920322982676824676545873460791322620865360509042323408182385441417618093021832933750639554910922843955923360918401836480945584621955165005350805659937573163097406309945414106029341654960112521721285054674904705141742554998524991177229708663380795945302410560172584525118983069035745857968775488818161571950781751850627314046729663098769420271916388982618167671894209901833919954554652377392928980078658426539437357049221701881752790524221400916891633824803220287208092302424622244105119027579820457937123868106758812758601865836326585427525792020670731510320820455376187751142561551871133311796409110810869927663141679914065331427940376500144869893368298405120406448746599357202070843508266312256150793924723411010982663738166798952056695143413763600099756202295700646824726265537254784666999975344604582634151702406368684430791583369256448566257986101663128537560512990949391407146567084973454816379662755958101317625200208116506841238464900203049101281699839692489937389060142791649314157931708992413635259610641759613933949732684531872520850343875199062877762279419094665402214352402411134568206257054047950705107421723200478948917520429288136064004901343768402450537121017929239408705427382715699177620619773195420426193831263635815244090865688992570950840837339439963855963316520067033131738073270251682857264421451444299596716975117060089450658801873481223727983183075228696038943610286902163039009997674710865344564514014492624941918905531403055505863258504683515727709393464357456187991823917344670240360202776283711432080870453995053551449542541087154315407731149624080485242825167984558412956164990760092684738055473087041203958872424511599883968139607854898390783772389365586729833285908380497067399188268039874743088827310323705223737978973415192851760261599380187372292628271961878452376762077895981077568256161858571343622911703192583179043140599721967690699391768751134415018505026966086862060534324350336662979470547260706986649490509449526582278362139955324327461844429632262631605449220191103331525646165579568228479908531831096865477089982617869393015758853536698143682499513714191484969006587751696579800559174292396035491008696366993953502361678561865561962493590865264109771593848525425005763559634024072746289119372306562761161968327062419944536143209019932448439715197658804699721638056979130667141218752605961538854604879422474866081831175611268345045286967651719337721791270963084914718837702292942486373827477680841454246366266176868944634527751280783130262864079431035956929647907851804719996624873783805073209830615931215037166247060173784209089811031299637410258633601360007818034438301757695652996067691344575099080983967976362579673345115212441474930544328193441485140064059988171943354948448699635530882593364305896329469603400237942726528115811666151984881320921664217527647622541414263503494730886110100003764012524153078314499175688482987755616721378618859272751878372948756574063849414000889067570361685933554639870360656443487814022907048147081613432139823623530500946703882143552359265346733746066289841190052672043613959390643944089701124376729246602704558717739417805510723599733820150485834226273799144791037861300083664126577838716292038371391937368275339865837414231833671457798913015111623306434619545808585203005108252673156146862811530474931573818839700223408483418046651819456227298505877127262812274632732433819991442744905573870407577667095789599223604765031224564181299930042362442707846697286035908088963472933351566026588197958430623412277866685404653110163152161419560244398179568048473936074695458936696505756270889816053066763924734168093174920370806910691509477460480749233371606302363115888400380746991669426561830590184665128193283076375959015670652103612481174666949478152277051720715214938422776703319896725864065411331029068455905790084611494999979832231062683899317539467773404535996326635536431731215611687867196709006254738205562925805328971693017225103722690968363934519737983978376812495825406440273393499083196990650636347357030499287842453152057393622575414133072138183694372258544406441864956369005639590679609481295328726254454646916633008846461940812825028326787566305035984024866668969922896415725097780290302173886977852398473407657946821897508454870454444884559090962878817393951534341954024263583640985310591896044466780089131011655579091223755925373319132022508985666018709528425000579022846437104189716853163816801446385246390237537816015784255062931680326570995486941535793312479021178317105663293336929093887292999450904244402449207016877552028674531427589752160241918365645325628019800606795715715851063548598287968504473016420469819503341251295078667252075192442288491898602670255770914036917806530731831302660770682932821730869036078889769643093398285970704796824402596017861418967729416205968186808850505346079731742740418394846172930072794202744061191687265878446329368082413195793846897735071285325129873342876674732639695150592913100549734164626233378999422705316061416732505652805090287629077969583332851008979529483879617147983584611406251182971293874045079758970004718990807028209299834543508955492088893961376965868308297930373985755895507225250356924624148313097266941317828925474907814120065111923227935026165067346139933193354902276811491119626705981572032533026350075533453010641127751522081424378125945470074664581775430586626813243911173349931002439044127153176182319611470723004344920797147503990612201971468609602990475732526788724379715765690555570158844079511942831857293978294894758024411684000946565833329262263011180926081021437594965835003605102898157636491645327214131542019392899973494946675314997044043730297915333340586028728351075051627633612155800003747103294223031998061099559672835976625261195776175985358866576458566950904567364015190007078253277975562786270312933717913828898873687529001769005350231345779322513881170619743091938857188399736760806951476385268940285832239503377793711852147683026578423837367259350216399307684443013224822274109484165528565172697885903185312518321563985283107249891981857546803040160272722762987540989751055873237458017930497378802105580657095146258158132404350768219675045704560443829645127504798301913632906801345962830404885498523931024747311708895709542977693719655169339345890278869815834892573725514802195187790658176469674437060396435415751442180214401677301011127289458613045720587501468892235823921837958749571462556949168211458658450227158547620548322447478136830246879000505113944398906563917988942762730514425958463982177744023335505248741476079155528210802405817810888856302647092865517717790992797898399963213259460704237766746652168656557131567211695292476567981967418738955323519324615901408054444522674583761058913113292210832549220298618401940367531367870184321948046393591859171097142162599526113350888562650313873728605077477052564097683807554815475203990545922016493546281580925891092645751015508052708877456525093480996824999234347741686037195144697170972677875382458344365910486698135494947722053242718004576111005366641465018047667982848950618228167815529624284208009218831150006508976935279475882252603714237052546085781421737536069987339215232887706825480952780721874232743553139587827936373429926948744632590935823385677387593017394241897762387126601653624851215782433270369377381867760224712062771805013839639187837549858030872641877545045088280071081748953118037232473553887665863907180806842879972091248556098819707783952705433346271940038445703305409629204776927652220248804601116324881359286577448861708944446936314341354109486162108449787760545039489599417732455213949175738533873051136286778947415235867289742758930783177758121824654083439783986669133054008216810037641390912564592532330534300207860445996092013901196888102831774004377338500583274831319674430138310373627368286864357881255490218779347878438697567517346945925179124829507273073626419221929072834309828580944415174552356638426352342265320889062393716915052573515823743349317229432974575140107896672826525607969948178258817781557672083823000865911917440414887686607173977202051095205783448638235959374379675404496710768996333319510770186066968077694130495478153833881383790525620346925773706136197343029028816681070680429832313598484462594305018161723078635778499812955108723507297492176438918259839327847477388691983406434486270559330947884399822522830161836930093456707396060139897597356500424142490613613821524798313660479010207681299166299306513126378535414707475765441194444231802332908433278817586443070312748962203427482444314980723599522754307602346433699392685834450402747306806514574618033597926508517667762295401585995959413418728758536723411775272820442135976547115050823269542988581828987187549859367359459372077473970654635447642359005493908804261684702987444961608030032836248130345829294655891181914468542053750078131529418336428841962816784688184149482485504877782424318640023053803628393283896506715095916782920973891381815278519193948737779926016148744741570999479347532463891534702614605471049055899764789536446379678846466263888316552623356360001926690470384367606341007715149193345893405756359044234989252269878770983223723530966852918720970346743197492199082107494559901079846061585356915102066582309898304049134845868828296299949282245560067519033194143121061861411217127286706395991116328085914531594464188366196627379951888995878879830444578850810571252476021327387310281965472885031755355328012964928092399958180598243240435653089709830693539132668759649185649273003877195651352398804177935160434285849092783170110641576723277640939705684523917927635124247711197981844392652221277744534741270329216304587500561671134083835457919348465432148438615918706638758035870451963721019794153981760665856082740787802414458311572141835424518425653188915089052979204871396272733372125027391176356155003806649433087529145131555939070670916583851602775241804083303168818133543326693604230568918601449953587688168304578771649786216191908200610964956994010491625473741249181226329230365852114794315274827816087146062866849640470494789096230205371108775929018617738469451039081196506761301121453912615703710317886745797496684257180549306965866704773690218735155913540626774696429939548494348323290066527837693232477102984725562356843869054241243419812127632675078182757960119972962347159084638667409418412716534260516122864872518958952085134329640051962961304486838869319138262918063642956334540075497847071106417821408862309601157226752562846390810960803988676060122251137850197982729680148005307348026125113308971725129053234746080104577315298372479302296951335740157186531994105391194545695945652530022434295364944248357273613157838007912099729118040302008615912280881754796805616264985318389624247728140648235914875726910927043113455052960982181458351928829408960537316457312871567570228808141295064799552461889911351167515835604279042524820972892230042634463228348538871524497128010287956908633746406847488869616309584524387299063416557668822727151210441074365943244143328793946736210137732976453133067585209075180953743071486708940536873662155243947472867835899559035802374817943661442372834917136407650872785877527538058159467284178162804702071565767538064409162226772910892885356703155787463240948883611035821659707892766389433095791901073852175849828142334378017390263299245212031540014041432528381174213002915080899683013296955486807262641211592807836755435464712613832640615909600454375212449176612814604894185188931448416602906500285902901738679365209980663968879308113890978101571898658554034954618997561800853078131945229580726514446087047048843354292162750840381126010740747469494765591000970731240723526849204778386052987086593490277989515468048227630279639979043175596330472702666769355516604253349032027026591476973417704144757849539985966787465647585307551923084021674321959478401503477653088716193242570941004364302411087742375734078755364944547006009307669054792752932687871563534174377791097104501464065600464362746215408489796645231586714178353374003668019092134529785038961991323362085782359081999824469026552539622589918346074951703567531290997136658190980808624795249531812710733696481805995284793975486236520922401515064544669026178967477855202723626138838805350315600337876805154267897398352198743838889714710703049802193588694357178387903931373413262844814802064991344485794483687924653551042560461167479715396320037425556968199394600565862734331887461452676880770328391747359807966897134839739445259139235298827245178961415376476251820968307633747336066125647800048560976531412703777313128125375303829465020450300053149620642502760561469454379806066479430007695645674727176318423041475103119984476901515471478360975493272349019499470131971663973444055907163558022743937820535118881078165101906594949931841159582528338722920090344356884460846292146891821470631327778914072395027364507170071763841172804855888912579374733040605364527499783545667185571089781247329678747716080559276074086234063339903649724494756519348803181978819378123035141945948229774866913151029195051138938005059728936411774012646520596843827579833987880397122203527770365526462158980217400110298207701331765645743356298226820516356206105668571683931021784044088172436849033740523784017149601821836278844683555275518430737442265456092294502405505317727386734448732601555035015302774188614161395577337178439061307409838710098570579769495337791138116006583519715768992583703556159673402625357342472710225509874339838497801993314110116861745257761725368476483624456422812964552303089320834458386375225455627723850305442350065152368654763880547177905505514422335820101865841106938323480078412678672140284641759804183819762019195442983008049944773134878356300924984573135137931733589531611855178677835543344685576650143033761918725853033173453459264393552690310929563548464494836458098149934468877352066588843183992503076549737564562800875881803477034448435845575827583534841449668317309414197615542390478924441674931851121087495368049884070856344086998600943439498163382179929834967937781301142927588391994762619862740273533127435696742616157843778846918788286485321856603786502327150881071575826885167214674840313971016842088356615961745915425992098933126673736692697948999607577888782736596277138077625027771895625533873471127245222337296977495179746302873668080067997620779498069546218182960129369243007358233680392843075773100433478281775787162646160178914116108265670618058609947748757943097956641436099032653723988332116980977950376439946435487482892062919557209643395200740327791809020735985687648308842725094725643178852338543649946620575150394719788959591586729690057618765499878847165908882098995640911206017128542135238587236308455397080699592832365539280588328963479405904554138642094309897668080446431973607076934539690999775560986654306548324011049186078998076141792996818256175591663457734872263096197682128724921574831184136987377103675519590893049090299769696064202510778894300887667725315825261124270119552199816023936046302761005359527061398766840217734328360901252053070104672021441352908510213922738602492753689391696532006025427913046516254114818987274142816109729235098539560550745741792359616790620353138229477364346352517958893713992435313059752637820404804456991834759868368617624276418225778512676053515594197962166891253795808558864688566633195480843872359446206386733903181685311950544411947864885964934959024809487294634305900947812976156468871977199326767821422757799982214163943894422152043604251697056280069261303499499225601029027639733090133138661080722302445989134260270763602623263152438782615454142742728914971402076477408032656375722531625120049032061764423193384930492962009389280679460973506788499030652842879667893228930087093512752438045399629330624581111497542458492718041806923456903785498302066802746977333785985375205901430807575823145050597233406395745215568820817972199322290455516768613443056681451031535971799530510323458912261701772342240325273189654717741464536778319724246760124837912023007711096523576763466718312585205772657509813472127129261050318280051003892307943912955515337873818599205507199525943932821589383036484538802462555360768201940079810953952506268321338095232781872556674175499787517994247670555990195343483030490206493078819460856284336303042161363405029081712129928720001563627938622895608024011395420937772715596192727177696454071006848158771752947862785208029725589013636512948315118623231110426300028329160096824805598169561494227973562414555010633987742287557963360664496315748769729184473886849044913807939459361246482171468630741947911339791761319469559783637007282988828230466888613799554850911895950777893825745750294244550506893359042773868986157185699492977464334442555714187157618280216929545850522493869022010275816973541771491175146754004306797444092294543934399005414054003745819670260196220614741059026515795513420470455022536273013190625108370626235776236604180796286946357960847268379464106748895752741874503373183790142989664082962568658209204974648673880458257580420065176535124226936529195476044983657423922969527482880889969448904772601816724592559321815660838338347653377527220753629199423781122707738855059600245360532292415443435619673769034870351204378026878655583864754704865295011684815312973730012858739226052372595318088109012390064264714075734517592524595030431015109317040673242821341666925300458643521324987767624277727026439302700940030673293259116175427298415461317459534942951438880764044203390125616433088519367772722442808615891056000798708846893598682517910743930685916222874797188920217683302887085459449525781864696210455733590283663195891670205255128275349300055693729981382917329351716844492842975036494382636063930314851831807869995993077374595205215746524300352771139164138677969317776617984842982428220716437455667480417213792226057230848274744487993985777487082013207403619576769647724499496994972024884050986232953364080467199342980710096255031973563334535846680130791047215290337238668917387034514637739209615003890716001750763085212440422423131956569263400934537658233148949218660610020784471967960900248454547923995159537607649708406082971203872401341905757336519807670685687615210621484076787065438544720016892705011105588785945000528563613592118941075443133660610564634537650742754509209963834601908117092426504662611014457484652583937562375617613237225456661369913433006278924990205502293950125710815247544464701742385086675964994675676938525033507881156757970710953702245281441734352694213684590733770650195299041329894029400795938346496286316648179857839137431544601017360772476441099794177217999867456795101258029779720128387275320626401463004437584445313460170281912703320483353088006770108628092724332345241057046458871718321680755248909389036435709436415496754755202806832161185533446449381734107159111486906302640504994830106404500970801083653361894974770047035293571930646015113092333074343586059542012573558823510773945971900141204794379484922115137329733620897166231085947840470491983823608983124458879913971096415016155965502130736319884080686784090351940748602399157959831299255944055577745399232480148655896495813074685567106294122529071382375887328583813448436194604514365929379201348879128177530949214827360812961574213478580245876090000265182877114683461587406997965616749006774131307771572970205393084614541011202443184319298154153504650364038693004044912416738785894544830587901716960839945862994616656257734387526304850769716611475657330539136474072233145399633946525451435089196983683755784681726739004134647425000663765120280200596768615848819141968234238775935311714150568944584341400589260150166242469781949906494221741276169659959760476775101699892728820681181723542972598461133402441672253715772982929426722998686965761791095692288813969925891480546549609692134401886813961357593377131491755111532603532772971484386179315688118158680733247830496626379046379271034614596316146218483660201297021201078057877856303525259070271446456181563647785488946458547665456824862405970772557665221131791404212648292069848828095894633069972651380865123729181721124859334174204976098271773551024167657957147013769782051942439458093594616826166284890812117652348645530967836341763727019093422799830874240019053171208744402775822131377931084485132328671717055275298138582618561588091387203388463867775022323443501781639903932692034437493266592670192545500696317383235535682075598471443431792600492484990176646251583461111747207023550569594016715823281848460903642289527839757733411362270689916638179813541703003314412894359707137738129603362382989320079208862458156342234107299384013136801026146833642995864010293760713345679227382632174339083476170366328887569086333456453219416635639318856380714349063505616801086864590752345626362453090348761373616864649546811210422332253576634186301469416871924672704428548315950179694690674775372351781753963526941385450226160566920854906090834837932402589200689687831184437927741243948764967089836430507073462823014089707474746633872414797346237367800812998400338894703675189684279677891075832226397690176423557670314161558816190299421516284075050149041489841668887642525213634505131760100085633449769169883984470675982753399264237790359977351352883912568713495946066790444426094652059197028841194728278207122201813916584656243481860227287978949111673060742086604546740975496667760257585042771145695135975907418178719126990188925623917339235896539515519882963643906220522947676159390663705751336946339623621889416869957993757538772483089672761574529056125259187754191563977295447851194092823883393704654853842448272195512241304585333353564528995318247434005744198355448000414747875572156217087007458105509907275561813221384672592819239143175469701852690365528195897537564391908063808095868769135183654697850876564214581044538792533063297667656616101161632672797527343193237349392498667961846968214067421745654503285875568417274984555770599974382680284943578058105083279698262387480193695071755926400491973507013683172211682464158364524437138673943192403136790710154227256432592771821930093349024155372297191843299763392943986656773579409249972044181058850581902931768513540345151801186545663637037519376948761783286791215435473140543972320596722135013237712884913034265015298617886003579029811980127786168296050647218077401682648308023908218855568220376599092505713054175579054060251232969988178127966044609150181280692989066017124212494082222972089555259728944982495493666630720630907401664016946826511429705656684590419130729948472669470672670054644889695809079256798865406833211172105919978981425372389974475433741799695806952520351258166123863249815512183830271387300510607998433166084913587859756261661476148294385053223639351924516472190371970949474547828546273520793487398224988731723707386247521115242109913901476049691633954799386722429288932445415210811212299978527241697077384536451390129322824843896089656362064604814987799785426813291805958487711628115003806862409770795753424004835365061160554713140846280160189023641316895645115807427836864207967596756535151139431554438888829706599094366145519657631089202027526529016152369786968774648110116446033446276639464117551698687948362209630719624070017904043418296914130232711972256951972465980524552030609027650430102262233389001542780341554674438810781455121667401095408648271266087872830862517334001217480351330320592556051730077280888579857165260834264801539856008936886522525865447004182214537903698946889178221302910377577866809207989090309173620013846391855082181759504311489978412208202537853566432900007043861913138505292301734329862151613841794340778171574475487415411634782109136446151136961195192445627071981639059081664854719948687792589957124874541140686572139762629268954715921742625487908507520313425290541308858409033778889946696174192474955161450838693965069784851351657914609537056432526191084592928774756837274047420148948327091795669896466703093332769266202938691866405558368122240734288352082136920936835402759071458943672630184327758440245766683224373485417613774753748774755406621647002771976278330272763525526474281163751789919565162325716233750646121554079359213723484249574295673659832650704913044818286298842404613595013684626006568871319992333079933907821106545857739558299080497885278236765808208045155626344814134241956214836068320719212399009874162698670975331263967624758255801075560982433792864447362596602454865690201269052773818921059364519141386123287883784767929459186954165855224854121328629274048981678706627063670497569255469988624685775679480063780049972011182455781150130845693151351730739405687845089395706795284202758659661648464130306906765527533472742304924341084456996021588089161028356046807936501396688377715801106694992563385300814282942947028274603784941852588458140323133851530731354862840366447119848124065554933602845967609591943111278128215695797143134369970013126704072898119055955763571066327873285086771358471593179586404729569823994785134524598870386163313297654777883362555514241553906867912964885642231005240634135568660615462453994786084942422230125788338041196758217358510249029009707083318775283096495198052005857429104535830764932470125245518796445460663645573922233964219784557169358054751104165095768707359465809135213217327400966055192995775602758977219688808970238231465113312968902010589878356211492313386354828869880366001934831205182498131835357913565545049285313316354998809395138896481281568758080278193117779901348859876389276491472442017584541372783823109739155453834020569564947716037261276775594481950286333170841877934937398404035379121261495794502720742371774116882778359060472918417586332394047803488351728972804231968894011754668368249731861501765346716015372038720587445130869322623567130425664720353812662776846529848663183358639530111961106956042463550761329374007143389689472454382584242940387307765115988751132744370382398475640000219182547642133954794634904699303502855600801895143505443653360459229538061035822343897011833886789138028626598032983975254562918269492141354090311563793278928146436982498758930650869559442362060802062327034886957904269545018575947346638634228690002705494395599350432390850487249261157141887175679676286083734694224982050257313295713975727113740595134743478630968979502497948812175900814779183194034385476967580707037274639988999593287580463127669747869191112316296035518341449852491819603348353375845697332569122892313139400889701323750164840687325914579566392948264957779410007775751047229455173655556490000042450659612344420687900992461795237256197934948732876263645458739542274409405930723653750391964554834692811288916282838833274418907753419149251387680303782340724115004556063701248026422796955162562666718077450344049799447241885611389838773355099280709030484648981377618917050288760427604300916090121901205028396661299381014380458039434993608797638905606172544893377438458924825707916249922941804113639675428639610096985206222662315733695486607233127733941749476414931723868622181347979512956351592654274036748882673084437239034318234915320954321131565753753874725304222810938259556422019152156606887210116341612028128486715761816768374076043284800278516605076804139005391410071086809052618050005414134385778970745839778511609281868316666997042553383805973632288190480851723005653678148415779224766714187097345414187391588600829269562720549432932927160254766164753564301840648555234380417075006063645645758507274538036001859826550363172057835176973601618470801873137115784932271422356176442625059981670738031205220083124122227063207664218996125543995629660001632238211685908518257501518385771231628355306598941984491773943917596595753858081732852840981190980681155810516101035055780203237525823591844511449915347943791578363397397628981237989700702557148131882266431661707110275068943336187284219946954323976707041002789263298923315719070403327264082524934929718805903848891697715668167514762270040353173741226559836480196977561437713915291533986397437756380083020583748093265930339502298637220914980294186992765821244224502271670818747274822221361824337279297155185212313388670514543956440459861949602513921486518376514852640941722913482466071051191795199703359921409320928037306172417655411460858238724638197820941370054372279580788982334309121118251860608208222967495477565904971239078714421197865724973252290537764440279075723896725118731797337630320705968113345247348996563561735910098489565721019328377081328585634130148060477387012204957435141106979335658803108347760667677105880782744151415495216872627049014712429239584494034402403566247442445625624328588269135312974281570442739634392117629400251275492347280616559211441883103700213011251358032756306030405330112005758300523588473907024301395715353491295440639668499239653014745089699260574147559342501993666948199760914831622656174840879691991284101740458393990761730876614271386228242330318684873271167311864075393789514608803150708354543748211182724146277794236266815872579448870225418379061286085830783359034997522772341812438611133345803134821343441805088889399899349565540224225273170745368418586079105862596794968184415714398289503901283434251453434957512261707906883063456779399112699493984233133172131272737024433881905055448769930859928871245774577761292981418160570289034232636840865566659056393319972564706949118297745436285615683079597242076700551439449832045058617410807034073963588066642739635690359580925271614535745701086982411517224233649322667156583378117415728362824201395801645778287171567915932445941921733254324661033992624743167697482039118296189462881546148716259166525250896850222731038801514930914922991357817048613981918712021579613682502908859549502429720325169616438634742058016354812255297327746912105849105451974333031696524621907354102089713653660603065987218617766469708037823764840910740605993800193665943878413401220315253402434578656058781007244921470114841158101939641429934701008446231772512730614927502665367574197172027368865598449290106976176933597117240842761708707239220543896834148941842491638995447999396203832907830631665555187421579995255141794093530227535036644543810432205897861882943325015625351962693982269471447207655834654531215157368522676424412165822487314419782804424569140236247682003947700768301903731476367599371881027284207281674596642741161363676325698238254998909339117119041712356469409971018528891120388703286573856036522876250403991805634941688808581893064818321750141790427163296995444505574752498662258316659065289846267116482730845960319909192381669095432877907908544926199145368600796904348603830653077298645293551236871357094884052251954424902498526125090696552713904063337347511743612738922213012463254768400800190214594255358810113195276355095969013984701996557033799245495727683930224191298912066587912729927433520281143779638404702009969332809932866164055204139731985939564537910399503212445747886317864165863544493508276358761132785894006281328574207296425239274564110857070549548768483673013369827875245596135881072208686802190231488691087113831111461197950927646748275914637686190490561332970919472123965771400065784545735788978424077588446451041240053741517150593805226335502796943186421695420177591721355994647798628505697804359418027131536187031756459660087477217234959527008192609901916644803771271364834635726199830257305227411653726346925152431410413403586091106153352942380098763068070583252441989294544945960467204448563615784499693127208159103840030625807507360061777961800404455577534736570343950017688364595033005658022733611893974397148981968757867311187938267063872095426991189714378848397675989046705231867795832015895592561292381303761386588273679961692850916890776938146089697616579524288274795443658963115416730402237783704444537158983881373534289587721083013671608547193774399501199269223390189870650237216709684280108541819660919835129969917500254751284648768704942488690612349684587626345600314920612478554133728028459868494815020503070449609202045660604549823720445159771970564620114619148710059478758336599380620991382777521487178712166889482819860194439436545306858935739936115129032564909313613184204135856410367380432636301126708518584491070648928899582321496940646141883277743374364015700110731299062834734116506159421191435287965016859032472798693469754466943843609573362798025987726483206576899486563773288157754991220050737703020158756213849542105335667031335286810794420377728047700000307416288609422799665051308867881657363223869917545336549442424842991476745135406188237709041665550844710495049983296329143940981285123074637663285590454352984485728179316757726560249051015881707743893106623820219781017007907325837283340634307840699526662241611427684505386222531784882405401426614376504591915838893290578648305832481703839801984632117778155429762742945204397218031849156912436692500332256668135114768989766395402826954689787067276186962625792624782430646998682642414905580018381126681927383545482003716176694957657088785741506052840774452933411123576747161326073433554915371940530655538527842421244055257574360092913904264587989129554460302673343888788929738854155904496601251677455295997287317288171312750054352443763183610575457609969887871624030586413963636388084921214685726176317585952489078754443617790272669489778050518470440673496054839075301637447840843589917183226293054345552372163182555576773782202205286379717736870923391955664484722142314136153347389298476244574611621357859089252292629588820924113101077918972906731448565365214059217331326764157773134082665374538623934626660273676455498913362296141960354876508619437246386116493568771587118086744443271785312736061038315284982595498447272846047554910247806378130114314536504264836456604969093980127628163350472333562409649566483301095846697613540858466852336524667406712512744713552874642571077894948976227854161900997220896031048447085495277905318653973851905292742190851878096751507668250714102220515473564781526250072627170077447692585680626580942125857413367903155019923940667505358362911254042567840990511715943293743773946401731878519891799698447653315435872906947349196383830189264683335342688736734465877996824808486604487092632508236014622040059242317324461501713121012135311259594329203103031251747931336172849181680505184618864444463662453790257744117755412221200732287025912875535799987096452410591293775974549647926784161686944198985406269099725170959845425823414695877091571129092074995463423459034076698470659175054315864574930128629857050401249767562919872606986554805408567458387378158118518842398099863304118538230226504018792668964862119994982445932402921296016476443414748303052029002710657227877650655046735762634419181286276623163876510792398092543566043123103899995605468093210702494578760600569183776064632863474117442998175874766446460489358478255620271611318295622411866076771177640343023562148500624428539646197918002434632469829852790034251768604747145458647313486720168326793107372967398534128631387395741594799081401461379144648765347526054946845732603167531021264197966298129802285682991095118264746633746908234159681058542508109419418675029477079500204202462870969229411492095601265241771029193494639451967331152093690340545919810751840270233073323709058891057529635363662095363349202933341353410772074855175843620056130146787250948382913713006708492117880794116522611527712772859801025173138982158519673460684708051322439543853743057467819919944338139937197586555727997444356596288771265775032945186357296698233512746926332995418471107065250758664922807345396929845042738649774413077801061810144116698399587721220547672613109898947668866888225895253810446777992118225545038652898879937290613754529151120783233673881540209979733575659780591887562388742352819362202551712039957746885430321995837002044206699066492865201223863508659170703335383772171524213314845855215343342666932059654246172482171785260676227656343216018268157331885889194911574197662643996546237205917111999665936390406642015365343860687477955274445654380873980461632130003834518882286810167255701488799166290612025955051377357207880502600041496907920479664402897667785866434932187174827290725276494270430431261360877109648572354626690061856969133483959441826739046527562637789168925965949009745801429911409003598101556133422923207162407442463181215878071091609197490052906247185356766136658093383235608481453454631926141012472232566541947710706882641827633832894539891942275650398102689821391863437496711502367529451285881105244637411267695022468482597188214477875142794426492867557265544957583294589962533617961002715436187878991459924161107736339320189710393230687021721383343449630741452804289248927276466844352066911341471388756935828240140865434166365435071422879470630238821049550449923282086063857766174026120667496179259158061376164528330986089827412900783183153265326911043159590185025005282960651755578568467588157400205065030340167204876033856897829005794303123262368126806672513064105328975103399206024665339421443575440482181193246391016710806508694185535963342618161325025104082218755466438317697385747513292965251145880230183274047346189467057250911821746482861500170534539492338053335063172312158722580383778055137671182881520572379094181773264783086799889408454009433320153057127449624080650406026814865141079760936125460117477458104819993004734203848827246041216165809216192816276373878515838361458637837899653667229652692436878444792520240350185088985347918694335040354015275433175855401264560158378979268648928894547939845512838747532762409919678631265614534801629653228388401138060680341237847688480597915275407264648920374830357503370352427032834995973866855906427791368854755421487561087280481361137038436944052239082237142836309979387084882384684314846705781696009410148862292402034259074446631863769696695405887101886865898918538008868403610749082046295378966481692880985588923743634682727013118973643359745396800076514500326302026499501124251213360021133992930860770871913816662851771969562184064058615106678205796119048158635150016325954370919757357262423258181698922826889758788427988268696805049590656472939165982948502792407127707509834942847799136476029423892851690878407050772766624111337566443030550059183128137125968708009910581221236641033149419378335408329050121029570748927649723649217090363847929939516062035094573252892843456738132223728163828102453557165092124259310989206884178395481382945163742514267920518157785410283434258910570294744014766920825099355133679582977686859933954502276780707145458573181034023704950820491833936368247982099699800738979059418776209325583720699970809742597929537025491059037360775635559825748043933438703341252319982431323425316841527326470033831595282913540326434865508008719927260169389739760096183297527344869244927693631045274718448979959889647930430004705063326966369227160527559387166711731594729189800360247642167048457742130454789637615591764501309801511024014300379768390611379530865544234662049468613692971642879333549802468137407071749684145577537526728866593617095435083001448089360127917791909742095611903612002707290513689412528732160156927584121433624759808450924300183233020518363696171974851341681387397907201342768158938165112469959409361917713633678733361650294511548595870933743837519060107240356393352205817518145082070613041514393698118811951631421759644489709160977019274985979795563496084607293887085791739203211595675519975215546559955030328024484328904171103734806640528809331581232525275247902985822328203004620317610041000845886067704123427668212044762839529323567173933227954482013031666038467963559712404431883811708936925660843275199680036559767724731458597301616595178105599841009166211446665264498126358350073573224450873642466923364844148285247120919189923241409878075864334321321208545428484692444928394275563146092188897915001150621610104469777299497019411190870817634141806614786715522790057868061248217510447944013225428474817635040374402337087044423750965509247790869430328570752186949912087161898773265918742619602903496879993091221387792931743145100814505128315530765247323318388503260189038561164137250956668709156675801867334336611454459039445919764956075342918041707070635238448365197884581190207064994766261519640623529846085251043800646136518169690568489065069186715382810951508090383986015399086023726527010243959221231016798635223809537692635240456046009775256341707116145995830841325302951397437164231605443728467551898222157310841965955762666845521331375237206494570254935580622628686690305497638841498153465690963058683755354086140651950585879701668688772444103370484274649712853086285745575667412101389101584293849976090649205226551042388983412311929303360459208650913397679974647838434071916853929483765837605398845891369770151072987545514541321827878827902858837305632837798893992604305783301393776680634180284604345263835272012127015557602855758055426222077048003981277240307450974342391617354497199527912121287795651068983407187021849412896195622664172649141693206503611139990170776907146228762229107002503183303926736614236890544829771665703990948859872092285847770356544541371155627606199104047843209459384265291127507742020286022867737522364062999422127283571634202664793104135950097698583120357510823400005312536655715416031450399250699497841245192081049361923820406878317852421851844708290460860664831640720725405615346809811574017676559050419529787489535842193022219359912196252266924242515060704254869163456954084401791871429083094148377650463248909291525871984867634614002904557787688197479477822504653789960043869837914529143664644297329952338243701106090196830783119697756167656358358921745139415274177156736674416542351783456150646624571730261744437611153135036820428966323615650942432963859330803310325260033963535392250621875783930175432964443613434858532904547562736324190246288845110051829722958238406038556696285890541501038290871035776653206385584589731932108031404686772950709629574981987281859631140798686638515581213686945682053391266114781285839600130316638553539503866783546579138146736288286549779603035886322353757460185943242359863706644634348614639694386724389763126527132536404479717367091264227088172745220590421155765010726465211185344914210274211640407329326151922533522083451712246628704162061041306399647444516547328951075351321772820890166805563390948067437146293136065596612243853518605443508867237072741882861884899871972726937800424887272019925697919736880243623496641338995169765914054708384027999777938388219840792630601661090064321666055177435089974064286272380136690104582372746749473641553606022975787449935459115852529919676312907957623181811045117404667688347746939567913097341121778925943775235138246591125349301729824747395968169329203417517290287906592714011735827026148410337291720369180100098645040358637893116734045422859951439544059353285714649963705443523348916733033810111132915478287851249399339783034204860487480367008031409894647449166937022893902877424268474867398510098698533341939754234910281492346495107634629077795810261821702926327007203315514489945712028117797751193172216574984278437261709191197821823091051848260729255639436522570256133038853587283835577208262700462427919394127827130633144782723551483353781285930228137584625989174582754679710171764255053615440128502269026148995143766382082548977978519137538968853077424973148260241632179045730896296156606683499667803918200024679460170039863137014198530823033977045489842952465988536119881735701200314706952445712686769693841679301953246857833181134656873266612628280265352488652328055486218090724594335473702070820718672200012187584312040188924289817619521036275693744628272132543396007909836227818270791190153639319328943745816851112543500250217970101018347637028173209127624518601046425634579126330844409299534507106938566625106721589783638979096190072171963657683819909212011804902503825486852767848448462669422274423842451880356627758336314747592948668750496223639374844591508364253039293684735910225663212479456361259476599362558134249585081697671957704309029147365828246594142488743155242535300446799119698559422677635129854632932704113177238083127294266437684611122428017904214564420090856354183386400003021703806260741779522091158155659382892952137345334276853867963937852340744675611351146787475577847310734352904657869625304858117877488331787406957168784183499449987218094052161548847047120493525863779901896598265879114113307155608344618794758433244217702269383302178033818331045885202612932754950715998408151721641646131052479744773558042202364637706043852749391385571896209645246149870944246160952004642645965060472353760018497046720927347792055017555229329187897199101718282551847817800108635643353793367836528101532346780343150326167061942678597692376965862865927981700188740184530636449180968288495957466414359595278084189764639067322782229525457373258173957773189482053963124825912533447409378470015433165545125730443902801742851790248493443897290218114695617658711984574991255722588207223005667689425807561151342880558921737076925553791635716119861322934982378925264848151457683530868127302337054455504200355811907205279627974057400713717597768218549334540796784557985348932107920608363825714185702692290554538556945595423885704102357490781274518294559552090785658781001316453767229653436815594826222064811342568951548681861729849824187239189237849443801027475616810381611871776625822325040627390473914423625138043220489217537027983445995221743542088133535704586847843574942252829920639723459161770569481505005118899771942686929179042677208193898730307781928143070911420778943640576839001366976752112117241705466099102803064605531015754934321558409182079552395687798044305038538527999706901106842657730550248302282986443198334701938965828856896147136081293749415818565519737412720690227151310657782145125078834289016629146152820091975758817441436888525678979752469455702359887906250524733182797721824888915109559040051132554238304310238940934539082270772620010125971329267066245680651004860836562514118424340598413597735391027005890607053696300298275836582581531824192470979632778953497648261585806480519144280698545227019216622349684682812139061838434855478140850095442169061275157983609419846152048730990469108435335089247794117531992274074912191660391596928148414599983507243132298727917147354409159170084620849849216153911313567087554278498353952031268434172666777264277195368585611512408773003181847236624854798793399469936140314249767629253635942287887898897432562752079557632246156585474600553792854089128886056586075911963371666686266310245260870985240651834671064502788403638434573783236245006994132355562365074446929023993814821529123430687074049811500587882403800948088659282572146716469721186477757703364112047256971845142576460929511594187196760328386814240712082668311476780483179076369530597007882326190429321121391982861709274122805751196424001300903801943217255210856480212532438907936580014481898067317938178973695634105303803251625651131861665299843864007697618775797533994763441269266132270379597072671782708568792957183536215489433959418773098013337719052876082149426910928433482496246866093121413747693860493694599576001395751172689849397040690534780608397115742361925601810360504632135691329333505880070048868539321606883478919428878238537846323313857105292835991353513813774730896622825553045670869335188714183553182610380009108413522888569073682015277562421115302704487213146227458639732692368325306028125420342917330138837200385350205077899246861213828120993994991064920477648411416442789800075654210566500595749872200351123649390269529240525185281397266776889231512122361685185183688081381661420656241212632292257385811673661226386250110944902296522793334846107614779708865312251299218376026981841413101363554361171340711909891839397487764762343845388119417516609857241385372874921361366443510584720984752918575420905360748294413202309772732937658543535042272261686194460540664683277383042381201177791348579868062821012276108561348060807127673184679582428437435072388645226133842627314585027979576862354415091113811162617943415021467719699772375771655916027487127783065793464139386681367057528301151491684339007138298831324093392907375340409232671324229425137147555285974824601806057543105297949022928943312305112699451768298391808008088178609916814415189457371577509332026804409715877994628623931596026507791127589584445968980120105395909833544286571771123289742016490247982054885515622341595675157973889175702569162494681727267946664176421718630615314407424609994343077998157514176970768924854734939992885843309396101535249809370003335555871505838027920616204979935626688923256160721812593039767427869186930089855413708035210688227395554183985156410647805950384471897873207036831305751361916158035970212596826562129655974846741269911173912039399385791786539578663261738618913337094423257584186734804855266947180205968163336430740919162507206829488859464652691215517411291240533754106725882082586241034479186878967057323893059519652036169872388413443138193968269648530654882343635226336221569725153366158029598953981875486300518195663002167404579577242890388506190035652066601415950918578129523190990241798112982541514714820737798427229222412464071387119825700510224387007138995889985205412029544955125380341591844888235465742348127962356757626834044174986614980776340474287279021294503108120040128204781832658131385751835757536456284616170909251939481640320558716336180648424969720782506791235516513194941701570977047002573707863830855230933975851694781978294122866257105602155982388336942145798906104471747922347945990501281424150703079487248497844028284034528347751084889081284828753316641923403757003079745441065304037639641657216897976182167856068762005023368824575553240231810620084975768919310357922346762153846022779738513525325137652368414856826097121309387617388094388200704579390095758946922709633251138177570049960314769695952900955537513754644504771492622533065174151171418337258232309287972183334993070835396766674070247415626472151392902916042533768152243318650895496422934687400228825032789261840745797578147063074656199138438191480064387910702600999334407244211809787850727946123846263167057929866303650806864228874146232435021896238307186104024991485385423491048801088808354665732944462671957389041900447507824582293963353038519673241759141288734427576993404845747682435250139476157127361216504637886348187232166656277887486779180750081559462237491806357280626997080464458788919586974795974101853487205619639617242893980000934508810137807576012538502980298891092888815573517677514878062560111050591822755445185190227797075378930233159710082530771774105329778271925218339532685615540684682116984738251569649560499462462558925944787024565042633695993226905612139450624208543053487410137973123622584428699541622551280756031707774751961662011508654130814885790443994723093127569550238016705534162906370989331951571169530813189435654903352405618643503890870356316413428443225696068804198786986167842432894610575491104601294705277635026593496713494053198659689377509937290858232083882169750414527827730260525245843732289154389942432085040972432296662710796470172958062705403701233374601278101572296535679897569147541614477795422000542157571211021737150020017448699685797872644168759449661886018251540152636577287518549698532385424000399396768025682080545195066882463752618677742000514335120054551813521720012430430670815154397999501619710060507249397726947743362139361458029558287155352841893750110575720824100569086247897804465100293704263354775779312084143428644727776976864622344251778307774919680940788316632921595646609560022050356503014736090142250982064366575066513047309888000810807063717435044143929884359736186799720747529255711183110330656758078072146837147064865244769193656399989152765589147756193729820924345819771452138012049551835928109593571496164053435370585975846192615626360997653636601951755130352541555842247958943753417555958653958921748219574767482541470909041480648693279951788952526960915458908688937236586572017976061042689804605439568695690001360877665866455282908529249523703785258220692367918223803958846722594207879358480187049719279771874694798577375823678010917624394257856942654043131289412025162576522270641384238109317307571601002763621743429683829148164212594035106875438020079698410228258000816375563955453190249104403752140494123328798056577628646870065682718582460183546583525278500940169705077196137981966419153403123313112101130038227576514056748341612406750752501978583893618838725252935436724300505469989068344703445547382219936637744891356963141574385828217215544423924830222306951727114138549502928867872008190229005549446522913611270087396834554162484428633722618009185027232483808460973182527734359874989269615611031019190645668097498901919073260098790208458926268375486751102258769211687683502651117533704519992454379959216768269889208668758059684369527026460656723331114811432064645152440290246058763706322688846756174327670339785304086096919942280615663621367673310662224816949796167228375713076255456952422396053994143738534013461509005660379325229202093211199924523970111656892633411833977004391087349434039808970801968070463556008308924764912993051880566730879067128527966045923920018901948276585797814780952396028443712302224568708922830388134975883645134134996629815401104667709949348952551316909810374339546892172348025062627681160138746508649337433920660477093020809604095964987236120049444322940684189244962455314420888439240395048586167538867915945654935607315932071692069105447268916125241047374252805484235559317795814021135638789263725062985802009086226934862705175538159191136047215873897340578910595457850991851006064991049259010052856300509775011678608956234177878435358394692439341118263976087568921381450016209845513712881028407180106396132472428319588312538149161993749480093828557406415415552896239124815508641177200662453490499560133394297910995687873634078136132211382726846627239154935375249898586219090948142064456529305541980246325506780824572948088887292837298906386047051877140663641888869360467721043503535952168393677227398392415352145352011112694520376514902793163949100837017324524605084205551597765190220286459662127038282639385587711219733471698336204755546816862493911610992043332386721893479288962694300191856201803433496922190802040611031218902043381350424746602743978370794881719503861976665714418240377188011217128277396942927560126599931302699893772069211321580154280327345077506085345723263090177747913894697440047548928634005464803267924329491765519890389420706031362798239078457233843549555439008118470193368374900341377202423993511602480079261290493517341975358701687179495842136938705778465654642223490773706375922064018173923200106241538277520376513171308180609980389282754270202639277747689183465814142837152933407827818856996082294112308959799612996154121133592755859464064416649861087426489019403616823604522348779869418809553936437498170378689402348078492079238588869514328677702921214845761864366055756134380112863486950181270830418578522876837209758842099847148814312712391308752730243061248585271940165499280376431748491647873078140000124151548757986388963188742105277589416038487996952956976543669434115360688603288953556355484102894347484739919835516132344429360293215445999725921271359066906620265644347853048282544657649412339194906421343674321728449201576627577140218277624934235338387951224402239166439855892901235681689518698668171416040320121845173696848187285167031815011744606743988718819715499708431177423886113744970982202177880677186105914633860895928721905727604729371423639184774920549502880615608554926708090761188526891239077611237666381468913748643949552643368045229330816708360107840832117983833860300826596284114759597763792145053251787834939167847743488223560855496366389682409764202756322051763281401571798749474898925213871424562918481932143946786790373987326042546143104640858518685489957322828955922863985070128835386701614441706027638746039147016816541976411358439294216074072559025185841075304376313869408933320529451195698749674781023227694383589679247366537591766386266773867450819407645935398813520535166138518649376177254600191777038819948973793316438044494065259504436457037966798229249090125300378279817251288724075831383015576970034650761195813417093891904321632947706088720800368504505191703972317485233609415003609966210236926531222763623900539288911666679276035992785433024177895998055630091073383087255478456936495522932760201484490588453337945957178699111935266535714157077104465571056144052196894319534403160308216274424077734011860448254407170264564339694229674006608594761143912677886139460390480064299530162626602545871598061154656495126966821654061199590546034585395123186477653480916664583899899129716715851851304698418844471309956858245093642155349183568666016978012712028092545878090025265913859109236480981652607294688899531264186457481800245057430396283244624360935227967494862769127610502561350046071682037122922240418229776987224741613960423273383999571743637310181686081676479916550877937570673122987643038953959497935755458003487100832465759904987474112510852802871337706060787432902556529820026621723076514335983278662055896452372694371979020333492798711947801131576399376819904925079006626698017158292953910535852722027985639475640661653751196514789928123303273277515210902530262727193536541349966442606741101586236606443883567357658698301034579043033265625404461217495257599329501143825840424619403406855028344639197605918601806888794639710546697248348608450804528305243714926770711634706049710624688157381404301884832084331431811334049878336464546282969866700376463035184153012394997386484353583590842699250530333711053584947088011036234901282787012864574806712168335767773524633120518513303855336424692025108041209007026271755715647918128882376861552310942961331957081397546746661590434967240585017192111761588399730474745682554155039051507384488741467590348747823560217478420236957636719617141396401077321539291452305037571091136675482171697634447663645589319675071683962379004282413376394477790761932149909478832034426612986051375916292310305085440838099418319205659422785523027265788351552156105413793948472961401001977647005858568245884994241188948005663392577422781365300203819161654832201182780660632686081798301226121589442396944023205743859354725076240099291645467174441908230038429460857267896875780998806121660492105639931567027457666199938424175853346818637012209500963211630141209236243990599333873827638508485144825877311893699529164686331802768548285616679392039161396885784860365035319690030243830956939158040814386306023082898699686733556990486879304261021487555479654951354756768422622454292415917312328162449065242861821566511904173806247741230465591776234944007809974854308819469266509019293749747342088115868962800259044912590725030673091857946481957630652494405003770872128171195752659440265114757409626372768929952609894369423960309113238944312118068580240310301533848959582938828982376495846394865513727487593707086953399873797519685566140904542509363091907393591396679228484495880972393162609724711168464729109299299472075712512322863283696674274434906730323669833858021271332710113978021876724957080786427784304246604713665212788785735387119028513854111747611176984832034431811850565686006116736312533942588520750428061639111979746153683908488344276764994346028499347155446972065473748443784860927499897117367668095339841221784663378333643505694683892911616442204223621328163056973240172205386727406907538843130053956140050830695003030806265653322549799720426896405675045195796011242780769784191081635931520830384094776259885714703696270321197094654444788099622959194080947530348498794169620238178237449960352777872708023485166534137113473277501998568444699626214632369453610993733776570066669036043068346543604526893524604730630435848670952010290323790788787685649161273871528323000069990454931500147469086396104143361506867164896269743424556250973942888034846813951047955663970784590619685813421051963614483487758759184999264907962110243068420040991382335375762731044173038216435481824036485762853112744034640291443637962075338724101523786653785319399822840322084489036952515371262788345335910271390193621257939221885111507477985474400963346022048248595644134061854770298921232897877568067270486274117889432205169070352121122767446710410458241509131040156858242190165761469945933672351544576587080344391177028452200788300782913598469305308269646785693703525570977935464680289014225543098142855192238393522250945544135158998844904131947528364972453641480698676865113238857883840984418027863875515086079452787185474037515923694995575224596104685467837397203047969468412778164727407209786786981488435678510832863804684682565092978964630317645821461470207750312699054622576932711996259173187608910113651165204825365656920721946039282364339003287829098758052511930680246235838048501754347197056273417360044404046964144806637686729408626444089999437213865129483105260173029022746602413545799411081011876708368557302410456292128705879210855219215863114773665133093506473725920376517749138089911638040736153868939657497417449586933744172468529080732735189628562058403392848179978786126588119053780899715327384294635391831082527598208502091264694461458021099574645360160493046387724315009461660711416973297358155051126139722746773984741354006157407762858062172735472467207485737806884497498924894350056813784435618059648353421214094420917380485757942800446477557926498739542154463036726859638606212657499890053285905879910760990769338619591931474680034322546699014907121603942951818419893985550320130333122263421741897688343282455751574400727173863816070612211018582653549629040947355816549273237373331699184175129468668094609263882337812813749565489459617490673883856314084094339633445989867350183837658970918089445228027534971769028146313486313974644376089294949407849616916587842246607849161060507471934507909707455676054635295892254976009570613224733618390065629513971477022292034891423260282322361426393378542793371691345948843545990303688075158949926148399243231033913366060116983927047199726338260287003934471163809644878656220553723323389673327868409381014960710518195159483683436044384978544103816715491953546999207960071604513256807220476036615875830946563990166302287949383424499977299488236497323828607242711654079615427672946635409725917361235900907439187379992496882390828177126595847095921308420474545846701147429530840656205031611130151050520948508398490718621004089894546555370296865240629163593989718620741093495003369891879709607079693122007361041130582849095808454043324934148519359523689057365809901829608815252854211789726341768687179975075772675697285827447885517786418711862035969830764312410265106482583782284484304242797605244680844558403000014449231233367794612308211760827839752068699209848943855120218792608058453100031557136643959718508559089177054775397297187894832072066765153798450438141966796362585183047188726740958918139308000640229997180105664702785431920424433190579083190734708306598255460181427026875902405549148703721158502170359338822034139789601720030548281825500459909735172114152780866928431715583250732963233843018805524159305555472954841869380609849965558041378791811077651208065063361448924745277123591559211527208402175985103871324661955287740825601309612421449550631713363645996342005092407372239459801369375676449472374851231089632887437745772187434712454778759872118819485192055765153269621944510954813731651492833168978339640640171000818056500406960298450689767757763178868688142877609118016151596365391861254839368115106165362294013895168462200693854147239005754496808208027426950842035066298853859158699750824738824135824724193420217344252434530025729423834540547222031421472828306436074389754665634504275580203216126419003806624194150888308438723852609565849907779288817109684310108082776718336240379937163810915212602092460962510801259347780736278027007888600618699589826967042379296566930995721538287760236732015527941718423484307302069865104743548625849382817930673599406286562064928374787544059644712332782922820917616711641544743144925127947717495855061011347194405467319753945906653223824956147395116896323173948306002841327171740137163443533278503039096689570203060098587215128269735002167162691675956137636783430291569269245065697886786730547989877270889913404764624070178981536291228142808252061435896545669279108578629687812679382264543602404428895605587513205796765853529667470390023627638728254528053899252893368385465093735728165062251480383091844537982451610212272610258617477542564777526049187018965608134214486528829733358760270306582444210643861778920555015444490782330497141143040592743499846849886825758641017902562353760228271251530596568616469022238006082763652962605974686170348758796961640233054128394983239388099562055605832980186371650415249960842779995761336541809152688205197050227897041983156660076977736519711912132517780118244520023819346253155166769166909937218691961325376375529095104103942922102585587774938431376130780265753712776724690231093828375679992778528131550171845591985013220043771308721566982330424395300367062631722539600416871158031700289251545133663967825356185458310432207092765636476537714702154829974394962334549639894697463784186501125211149382077088370176113050210524898020081470862699727203295747422676404366500861930150554708197752863176375254682778211831220905637411808668767882583866880978284996176080811287478602564403462741022333922330220923996376391980191891284595704881861677711458168340015025449312392282843732476128064921549652277304693811081810109785136838716523638037600860795367135142577745018994024833844334411782907180328284303869159295956137173988176184765594114052794347245315504292640384934988969985344586000824311257091776622988807501023624610865992541743731895643087369377292501669133974945157077504263213064886387915660553321020195724181413853401287642967501748878735385155268458511137852422497786618737797963299095242148205590993609997223036150088699748143714562895766084753776557923496159077463573106760107471282739812201886694010903161478507779898953663173327325914062178598448819013342951392807866508829507484266617992465210687704941088576664706720411988522646961193091091246543477949637680616330816085671564802314719630820957648093259751964140786555514192798077327000950627942101403951099588002007142099315990626496877026433884936277347194501764496562920458649389598583115814431636903490783022025547777861248601631975169178054042159197284167298626911728224299076032038429803310266394014059372541702037844141765443417252218090862889885759045174117914391151671549350618827064493588057383889529965125773846563106322468316959683932504313366649066911768147831855771812696126987649290305236303444791924209523094752003895169787318681375570879692395316039744078416177934899046105878930286184254250851095858254855137190370820950644065417945274722182754214455152315416614427788766266121999925027487639711627248989954753239188313506201739061849055065891457275321528393401389491804720154023448691165462036627119150510423980924650894925658622414329113816554638213252518059194218847264150641419106263271825628386534010393064706036213001456629404867247961158132846604157171866170854383284192503653338644466141459609464438742378967253727336055842232885638113001711526429438304877218316851028174290890454747204849922635104695211047273362060526157937771646700673575434996139566877746363876618201206834666843808193326951631460912587856182050050783818246199640797906019970718097684832985060699556836703621829830667378254199627203045696926249002295745016459957590076842093699698673521534028144574192586387284578074110938055432175041659480434944896849812969212209412782113451520556200741668467074332168569488708593543408018309516717577597071411270930725789608297071114895652444527262603039837622921563790575965336651039743304718086855966396541544694517704908526589654265697899552695719495671625698133437655502385355234732624312758482067638944672332784366793703283345357364833735840413727374025906356270849257100482706850961494808590898689178573335039163455734136524351549985179200766310253500182336638531204056409206358602446919662107949040851262195824851902872783198502198051000895577609575730894976287416807328337295114125190885200736350387050275352168403615056619103095051411098752838218443684983447429137435505158539209029629055117975367310703645118039672968050779970757445097806677526474120657585375092404448949768212082094834194710759115816518146111732547216277439742131679078617071609986393150883320717610986860433503907214817637432143310812811915882236427810304469291746587735441165745116651327867433213269899766598925875457137910211670398970377141900488565221656338234396030299336302270136095720721031568795777416900610760277942581270694733187792338349333562983062799447161056833185303015520213188172924045437987663778358959007088104144190934984357779873852424329339763585094143945347574135239562086150706509939667912864257396294910397678385391187020663172814143305954630095759946093533894068178122816199844567347077274582021074779633942934992305018926045079128970747748435301687415231178089966685506014466613704655811673768301089438965031262450945943209815155546112620900536796640150700827923390084070511362114540562623203961030785122881525679566661229787761199601886026432853437074087015406236757756751280967488036245820507665156591821399823837473191581033404781038880251940667066532427021036451025772264198693083268965846959545968723632222453505823368562974415320079276518898493772693564302633126241448381599026997381163046739610409890257313082205045692448062952473323267888890425732824084808109946671647324151978391036951988572285018229051947359005248487252374378625831475470892085586323037774425585162763209243928203871411075766828239370150883592398143008039688073104273993700860896084507980781843356938240528811438230249700235960846382447673119433754754453050892603604836230778839062267464289906249712906793318738420041916488525682337366992484795412490929086346621791030339214097138148661365935514143413414685356146632131991050793878814973869558989420465898528087087092254887907212670074698979930089987456330445628927184860502133086188831952360343607084634042426625835801874641805945126079678897589339576229673441462695331505159136796501619548883494987823184017965742041114449385866300160490648181772486065533223034626725177890514021757410274446625108275315279971389815584012559380816745676649128099801489853097987981166384315465044708066364004801465616616962675343151563103379020853682668121008885618345940510385371528055085864758265634544386475677523947469218575871194768545447585064666195435517313923386785367713059730677644520020458242510849186832202803080159272387489645047368119118814300141242680857467150522033222198864069670671192484602778179299063556746082419359372916650239847503580589154814504880401740023088884565615794552941600653599060690325526575055803606826642827707010646010988926049269501793992949700049524466730382224747616884800505385496116379961067305299900933961604432427424943065262266047673832934019197256531975816930659492584462952033045549404673071765462221191952302794685547938865200786340198432978443054900697216935868526580143972748388856268475459737074693834875690968761631918565958144761116116101798640501054335462381825516314145667398031709519862623675233651709109303016377199150670879507213018545592548815964653743924437125301147836685230884750895435068167329209375823232417064434864250963332575358549364552498580358789830182996747511925371717825730528742004962923465405466939318379755803312681567145100570045559797235459944655527062237670384767858956825179846209485239170769376532999556820706564459218367877537797628273951263428841339648476051163760315379570590155055646592590262393829340049763563745620998681032070579211914433404983909059557668021011889553604127564509436033159793601947414667636584512927887563555245192354506135437504373437079995651969268318403813919998482439401120272443590156950762172204872267418146943092457387516048093351433720382489715072049400296261130790217239075945467333727309918955664329252558319617453992080064110263971960744644303698334409037951140940660059326981758655487206916801816329390559163311609519283580670668717082791521752270731514055610625201277611995293208864127596095592681482700539398876366001927695427408409695427287728798558641306251259314800207984940231764163714370604186853928671426271901161206253911128008931210849506458878444264609619375001623249021293921739337788187584639229762496442224259081451380945190076821064987114315938696595685355021392204314116579433674324286557779512698050872984640278740781727390640878731577668549832965473510871704683599156381509221269878778221800540232207966154088985664138355710185409895090510954503416915110815303898346354862939100782956907441143426396916949855407953452774204327448813642266916819784746236893342491614314185346744375520201982529803916509392130532413519047778565047747509476629104149238841701308062855144214578805306753425070308444128249523456588926560691367248573582667009041943054871346350955630392028520877241454317370919350350611323244709590200944910718207779303453987043845917275160646307719226229948778963686377625595808726957611946035224811731347864527776488868873491393020354716796173974584636919645396034919495776422438864044128417019881243825179194011628509577413699113965859662790821542149483444261457361330494977380794732936118942046911364238255129568397384852577472119244834468324729131875578351527880132442945579502204713969282300892046517549959659706990445724871321721087389412014506000314769903930552281469810240101609300982291595479917393157622496157138604817547505919230964557367680569845472586160741106318326345221693487110279783373566163610848368254309501563939510343494381901348306303842631263020889866711384942630298564516663789394107535597007646206524682464740037115903031596195928026003402631224621123553052001009897445273787918839821426541245694997093804942826086263252450756593265633210390107860863971918551631581163529022406404906677865609957924563220738163946370359862339105241763971279183958473906817716975010499050434645443805115589792188838341730416342596355843911960366935917561379626847623101897470630733507318778288038209023019877140854117195454459848119685833790212463633235242925174560045136203770649452008636392839882795665121285206853371599728526116074574784597203230003715790537340156503605060517110489831589361047058690602743572019279696311481064119260127847862188871611374815524102689257103424347013644995264609350401329096733309542121384982279477395203646935865913360870151857184825240428940261685248149951991275123924802620214807462845564776801104322899633134020382124258921058669044740196409811179279680045135739797975724160032241310672488306510771332306906968570957754097545534098971476885144577571190470765995513297305552548418734720500403190906514012805634950427597942864650869781501016000272923453942891553022537978629094475682824489850979311446458919701642844908682416707186166867802275941237018655686264135735168090149925147083507287273355442678822216120965143259242226473743028862825537394322662817111849629820819341578193289669362542541506212358764914780178714341777938502204605939954478327288003536742329815785250442341497618244976011993559896480755343200266195098991799249002568750085770628878754478304728787090416195628735524495288972373491049715395105606056507154660052163284394673890776672753242368616505548556878792766591167473212029914161759175869759124212206534084338757872308011102175066903203216276313676488561100965271379073792833338776487297295601585595182611203996590242616528103215055853233040669739422655996559169641421535408545073700164514320568804265831508002066268660247323729265765770889006973833550032989983126609059288900901398568614210628191617716004751827843913891258403472002950505385080789776753280750320301593336666305814239079632814180942104504829311804999865388045920452142089299027190531074917845915620497369755298937033851163375103264153482539379638779361832346561580448793993495482144687294770771842415696517472572893673928601208724176264897334082154697724259314575736302449649085478240760407304281226991603718519100041655244464446879023101321248353977244956256744137811635521621374612160458863788070485518057448462048876386143867880156502604332009036757720263470857469825661773135238897171013244155042490774153959002629999305287715085572814501140364404541410550156262649897158458543256663793184376418696788626875143550655034537754701570784160835833081498160653818263494471793721754230921646100854509249809090714000008214337217666460554793189333789343630635488053610964439464313913894719112441029206679912786206640841668826947747209822155930436593460564289250413428144111007517882643154299063975366900824548366890969411282238735873187388785838312835622851941919101566963248917991050948264165627344204432808669766974639973886069129333900217170461093194795618616589816747140738894881860438455206326629466376298355172485157957088660178280971831467867332102637574696865670446469457456885432337598497122729237697447843831177021450852933077891644561832707412924342231001271358105379174895751869045259588726028330233197628443734245128173561158030296832030461017740083825147001019733794731494843311229349092836468278233860660306210415740669880209927687547857003074071679461627072990008716085348202902373090000154915405231869145771808160409103961959177464115286016524782863383260238264109605084343083105522159192986865760350564861348811022970267740841586043680287828238724336034847878662663639714553126198265108661281141428614865468337815037442419394908158679520271311327359346500602597363734227875167178003722083239941296817957320172366304255559402493156940956930080745370470633125926564316664553770669287461077804125113270410868794599288344971699558923892875377821177403676102068434060264801099077040690828912001968268316676150306551324248331901799940548384308940801899680391681921679530507188508252903163834082463888861516180345437271116750937636227356415340907426335397816780854460770944491770244862530347541945573024802232980845033549248310718851320577784594690536140101213242080738680000542642721065275989093618092937654871156559181944368211110098193846314288073416699829794774275003780232968019436896972898032848318839105633468041789457589601604689234149143912503808353767353917750903930855669525927456518145547588442654837858223344148501245649383097156936404490289674313738982786177583359984188478092468939183704556842727558141524050004773590799424429300391334072516452004672159092337002963335447062565825456768200814318013031313950705377950147238280266339386910915068003771909675355124808145461672786155801057527474534841587041468167535963412621128607952165579929061655031387308560127593938118547651333380041844417117928358865369359274686610984721484273518719635149766195414083718090462145788480170859101813999840402574085540331018456597432980431955731497873330348406797420878781982405757687167179636584775283417239745455403495013987498815018374268186624289847369685008584388201112932033778332259436436534832867582470965134699886902100876804045760519759684068645170383465732043290067607882119934418493552555229391725703625451721134051451018622876825465334184632515576277989721220397875415481621183601672692815149056385506819452229850280356429531973335725036444462353483341733973251551376510760341757849551020911008363394732670864673874902098265717494498275574200455264733957343177367796213084097944525832111688116142488100054572975902968897555709784193210925700576597150117017590234987782593835915909898410795204865891431896379928357493569815015716903436807056830893195165157778032070139163810231810554041587870542068757804557600614115764862180428651720941726650714646424835331992861890569500243398731163756250459712283801803121985310000277006673215162267528213533380910707458148899346871895765246456013927664882497435016155211408861339567405156906501246162649425228010706897792894295844852384349765298460923267082941177263853129669837631036425952387959001039194677218576539451590689204861372518999420973178877581998487207640363539651192250720240561330538507315073903247838223809295881921792989172213924412456560591200293394605518919526128017468176386409762978608805861483126064735667406731783735558350135874068330819790560280456214665464717836375509773440311408476245296465965288140390047808820985527165714412798707155021150617559614357535221457151040293376232231516264116954151227196154398121833830320858910580951052861722898649139986828763927190240793383591594806484995901384768704932082116423353737445102650453449497822927672358135971269926037131251885588325497666586882136624023010391267391832144519760333322077762521976643775528655867036375603032160127990775481241081504778509097821220832205525320630087314369519975710155543383902295867122386919930801620162822445197573441780889658043267705278540676800572831813684103378356358143481023116055485952312868609227178121885685966633208806164192408100756195547975525918437446739237742581538790409856562180826394962515381023554572523796729556489669875704496315495322436302848312251317194089131937849501975447063350937278358243739670398485770334339974996069928607263613177178980248233634167028392302029809542660290633816556127373617356098336430445002764497270742845803645225805951235024415074663268221329184654093611787168668177480922410644105588492391423299631883671382994379843732585431067279419712455183086890476136059645283402513686586903670188196095461164721893786842246522915875269636975025381001017001495234718025684497590376631028325642685735844177388795002684622769851468041360606018259091411679977804119126206836711132674599453198176206743419951510149937910093966444184841351067399617828383954000584750612559624274394164746493314339979725585824709965105138891395723571431188563732753864822361427884517335545892713357572926769797619701542509066379020800629728697650692533631350767211510320701845512993647959416257757941542122246905629325178815351373505156265627251836634155347468866992587246157927352928374422343451956723591952764945295817150978755277832790577774522437231369050074016953512363924988107051740145726136013082685750079651729289487927190148617519206346579026356565000418473712824441442487297144824803341231282427924453457837488542341572117288178229677813434924217832617631689896698857038128527346830098803347798329321971425793274979958777890042730317672806427830273583137992745514305524548787199241624752382619502267665897004146350078478983868484826695314265658077886007323316112011206455310365768175912983468237627550153543168507270020236208169977862511579583863258745866490540516395874118127990453843148957356238639846201434286967053760434566579252722725278841803663942171060009114131232787022036073667367532182852451271059553645304724719468787765360619536946685961737081262401145418564623626520610223819444602830397979815976236963303210264009959174595496562905335228243604500184150903901457797875810807915639893265266803353935863174950849773967218367075532789129416964143177442429139961054931617852172770356305357891009990501462653431117933349667749141035387304085400077257205640481877487452123005490936500251204826841998565991306600756655579179718223524168019666698002603805767389380796576697467976225773811145123165692472597291892960434655583240281280354918178096861260727255975930281460585900872448345532054579022252371415423463866720216192834713458376594822814890580523827330282707643059777489989265889538643491822187092919922865318499578855257859403656804309687099007115960447651020075754002799667649753296441122491741349709818571753630819880876579639098919783109520736727509381387270952305586297948367736492152426213263234189213426332422630119562137874497041500398135802859278567629142517991491645673262113515934238306435253708438516295348293429290400542342133186879579071361409391784164261144531695814484563860096811711737249710088102080538159355848571845201061621626021585207620250600314996854054779973498513801456700363103603061765391991012055526490029774282214300859441853244782824179640546837087639999075947206776498666623388349747033237797042148300856594664185550438648266025203019857939987865339085973643841297875398073210707212958889815744892492403209793855868273441066771804839200518093225800834438434076114401355660845380778991104721796641004068406384336405161335560410653851970961018066842486479486465644256741299337353323339144716052857116407640838417420109388536348813490407988900974889084383961384116574700101078977294096914080646095247716865550080156229915423627375687706793292759917210368224048669652562551472853941218326572280787881669098749321804347291882062475049529186423728157314673748088830270941594543565373573293654052108310627999420854616469165531504221181748116751869805303147870368712433249119924869557064646513107585798719274472031003345628878349644271305143240884764314314461674875777194124826498573233793201087878170854834913776363709155613624062426813007057938355332630817018063190454044271675053131425224695066023684173779021464269432104306053643705504903000976453698382956546770103611747700619731936056544932783116965031363684954217204398476482058120009491201702521416444775554495453285928620219274915270515111728850398478767487459793283950979526901813669922339620317187447814521103750460949462342461873677440716059557396976601270468568717808795629496780478771435041579756663951900536247235641664864400100635735347224251946760612786697541119946778942130707645174522392117734593841165733586956471654418834916026881006170532704034404441131489619406539783421518662374054063191697365362063896485277541032885034736300817437374309561717238491486693052212783398701723101019794199959067617031771467931097384489616398898889803382632622513943035651788394376745516630538689788390548689811832664987722494828942430781366333620491342739581047133043920279385507148688094363543994020083523611253594431234282238229568288117560571810474181114237018229719597309657905500635942531872991457091796600200049378463045631751656033166479161790690069959268211129697241965306996442373944096325646134237235158958543590354453228277770550101551020287214918643365641162593324714184424012652828072261345808019641561506740814413611782404144817510367918024440515799648519365455988307610055887194232146670151880754196416859549385523768371898059077244673582961638928828869700154248725512926069548356051326135033199940878756497666448334237281196522334293650394282749157511922203039997030491621181272806861145108855511748937823099959340398315777806002646213158878281948444016507165586818919658900994080995700376899409218149156001611060919572817759629871858738517216296419705343234155029367205621670047427234551339118621777145608300784466792549481021165828481438139612105785076568327514986326659304752543546018848856708019527783999264762905074981754556867557187936620525831318062751437172800004479785437442531750279219731793368027755157410693090579739134118367355723850242768398675519406747429611048875566729678432574341513252915566401212513792838065951842637344669130042376675251375389963386184256972138980611395773947971062371598495713289586470793744337743182946097759673614342178393301982640418770000307956950865217257166945497560424765738178912806963880560601793862730140926324949482795231071875891233777525705232350817626644930998734945329244855840482235457981104429867610175238348245808582979754083826192850099118925643563844657684592704041132064971750628714404600570751067653589450858802990940527422045384712836962177209712043251275475425026104892657981923357893763724473852201403374849233785516352606988436638107033561425978011062440650015237090224732951874350148401394342213363102259162982257833640291683061977100915182655635117853214771921601596132389351904799145893331336879574982595308529697989596963917262191471640783460337153324638268813424884249106007223796245442322225469306692935308369259310097787855593609065224454085606070916301925993831125238809374080295884084441452499274383837116314235582944276772390323526951998108280108242133667056392808596027285066323270999949658776172001984531402240799604036739091183983336635109498127510878993588540182192227134600553364551011958245935390474884372081485459930224973017166479694019235088515181584523706987811100827908708284649808687515061005375184588054754947728116243721573114641431014341135323154817466738189135928851757755802780167898912227235214402545106222599109815895144826427981482991598218387337391471552390953121809233926767660420668762140886946549294878651770578798334980229768346131740103388144101450655114648902650943496426505509433544794900572539234506293997130855175303402232089715830660824767916527953456378492111048470033131340602037267792069801604625859149076118363719994434759017914572882301317211310610222685969183954655663421191538054084322108408634013231626374188587332341957556426158686620771897078235890145921910071807305098954432779496780890235248755309912774673985216831666280103676480490442413864598487865163879107209401221795769284173306595587806302408234554802846082423718345445673125543208933829973782270778107179317441717160405128124812666436861041402767597082698368152650819046930165242364639058254492283773963525363873646526106995520642501541861219831333828053663193306006950114877523522453991650729543295565539164762292683639618459983649964093079765605070845711932582787432715645424407684329059947783203387017712992067763841910991751591413410840325972719729759564834074221601080432353904247608616539430626828912586191867467342120100466350117932898801255074980343349521249458333712969636294755689012354648330831698963335764348015233748155859584405738787805255228275873027741180917626066552334057726007132126270191946714111540437835365779336917452169584563028671067463825224890089661633601071682986321331472914519422662590828615674441168953456433014175195945292260208037261135776393521526919069004201163363896331245692674790119145990647015673858309218864673942412275870390859859852006947105890348978399185769888244046819705500607275150103785818739505826906668996005935407984024780401433255425187991291899703832605760982463708656080865438040204972815810522760267537659595035119614848956260584608199607737507813935090395345602275608633496394709964311777055655839812397985915238743709253574005867876885569988927161935784631781566948027590700707757540801297219781206397630002851712002974943726455734752488683820515341075782411557853897093175160857415095556175288132484933811161369067003306439125829054168307239734739639916913514480599984800232770875523738211193212957961569738894676034570909955951130389543867863752873593678053353458533044364682918321080595485703842710526511405102740135869071204599696645340364118711312103515895305487625194605081993848603383998173116668843290762889178567174218076393075040963749053305844399336005168333631794499162165103651191233155504753946845991683145476187528204955953305729331631946326787255184101724307334147365804585185280367190459741200842332039271925967513031097731561023959600100813559222767597300717860194490190972025951254138215410436304716384703168863818542031054269119026395115294414721652000310530432802754263188740878577386417221591990908238684092642711494178740282121047667820148976087367348569917512716322860732031486296285437938746892616735130981785252698004568192577142243893180550199517631832873353665261666590041210373658944312657471898727151954331975713056028671011237403332193791774636594983235553534367612333258323028539680130943784337171370848723671466343624512086340783128639435881384400828426685724154407638862911172127521334279970703207208852507569404604515455636183710025792232931132754660208294973001756958485030650845699976982929069998995035394098383861064677195309399610500340632034728269662346329034966885292803571244176121728521512718871157538662593733426963435540333038135004213131187409623137672296462575749314940868024697924577225330604535168161756514162462365856345203454017320838944122665448442820474086213248263998259945749658935018681784639927588575916608218563878516957959509885668226972934733498229411901947171465954763584923588227281932204584362462794959341212870103312674112532044689031270443885226951070823562471604634324526245852631024782917437415344488116971789999073138242440583206443478728310581129797483674673955254581409437325353391936013707762623917508259664431082144631839152861213317026439080345862102141827422839293409702868617138204165271480794001457809906606044932300774137167378292952434749997112288692055695698488226279030051169497827087051193760935333273478409487556130564608534603061598049834712929120933367396062716074603434535290734389852369567767467441265862759738495029963738838852129919273656204790714607475219738514204980100528201201981692840327152630466824816622900197482604104614766494412372664979320851837508503287484966187714911834795570345552971395793385460844410721500642638886879628249947346470860923141799526415063650904269368018682005492778646550374686302680078289376682400047681016200365475966891071063251401201212220351500505969962322847129042647449087711419160975761054256123419190010593172912909449748738654671064377060178889979809028002890661000187932837527971064805910231597470947405267741993620822694302779196281247425823510776269162947495673380169391067984234835682024176935673819100022015968211419802647306821513628758920594744438889497965215893457833788339984550019627021174898713485486390686875769803322943073508746533789800360830377893376621736304844597275049297181294455294198227382724635825647987567365599815300763450388477078376645696606810264623749276424173133624093035764233546683469857075730089140289557057707097649924341381959875290240696085677810251492734927567044717279699481624888035512041522358200060027860009110703023321378126512287261986401408938217923293326596611210675616973916625239805204736990344341290093433345542535896733738925427987816990992279647470836044599921929631465714504694505066705197020364440179852987934616588911789057998623232217066278048974150981373196528367524619706606640019823665199063791114928025685178853501034292351296592516730530841665002420079123744090319626896796969451909825161177148880396854440759885327062678072423100106155026206468395951551806991304352676848868443988936815132939388075445817792384473551233636257437555630368090427851282101032034204562324706452987975591188049374958845211060421577075094596574508841114179744977816462639713886914589849881871083162635720614633333974743202916930897332086116219840975535589841221479853418712359798012655775915667820065093606460638988490979472628240224906173014154368961982938705670569558907197126364296661299297282320608989987119260945487511049406090947458654450290730194151455055607612214984328025690095565388046328461748979774398135841152908013988162508493143914059758800232281026957513779622261125713612552551158988198830564163484298639346318371884420272301057187524283574157500001427795247262548281780663836708337065863369425194825810374599576160148757151311099618784667622391347965292432377400374399914161082646823469031656238910968884012811881391159055147188733953979182431089048861111952004123442957899358992481992012202443535989046116242893230489532663245817690143157703469503148288837633387748951007578244403649162596833077466503211359707418106907747567457831234346845141516830794078196647670877514949416931484126209584227555591230247181066144980477648050675286869731693980566060039747734464150252460141437327023459204186581544507358393398754711258488049667405965581171299787346545955617411249497176173395120315620782644069981381961689436012129999943589183998207635374255108030987981389636194371790070157828452054425234847096146659658786159926254806893302160815974261791963017166070738585137891687138182255012093195264294616359562167751820950243600976962052718060849774756387151077681792005054559064750884512638622256455169894248261822836967195631030014610415936716907761789322312602660539316081544581725050637812470336502714754486387950622272653345628474713049596180440305079921310804009944120319028520054748257021927483731149746938203928126814201851610733122326237030456361526808359685322883098854122323968971239618643831574408477458482492610682089357443697204602441341618148683773369832556060665604025537307879074194350627331698554464573108043894661471843378964598524613815668951049330336803173542574843382002686447182573881116056469408887792909993310080732360106343842520202560489404514661811428616842718855806839284220542371630538463620195916406157316250300098389988144526207777944783974629931024299988599091265610089543611675464717904164078960080488498428097170752922543737748603769628381966597169951615004601385194065448832764630004659897429828139450501664193493041035423081385614382953410101810269879857493175920280799029314420998557278813602240438988325063844646747187886494327521660123000039323414798250947230010273098970437621561591159976875820535479747961039862969022812653705397747647476459318483229649261429405990531249378190038744578654277962411991038269577741083250328844454475516037833530313250533107796075632540144352180047542372535966225241822365252100230442883023431011004750697288019687000751158879783621585042767782395599115683967823550227905143659570012758751767881170589968425068847612256958584554150780537885341380278236709312110928414625027724696131691128901677405872414072371262186016316567872687435595982602600681184612679224438517897252384094609697856945369876471266151677854825501722932910786005643645581231098275279731695297906386741045834755176339008290626982512538906675062934340186478095159798584455223828591007149316738446412412380935978596367055519101131380581634552491074235914922601436445338085111987244408538970124408841471804312300849654311618369992217386653751384307041832751948549825229032055585806578654960772179444537358660192152216241435088716144165503805368033135695287840053279512528982268924238486830172332575891778372405550019565270153468996188517467186682126057920614266915121886112937090083766653413805803855305788767219222234604426968884015422330662113669660015675365829793245728430719293364416971535133429668091220534693987061215892947325487309826018393212780241767132168786604868910174212620977191369236789911655731187284478368092738276235804971026634079570624297258733057370096074257896504330771797378643346946983967380642013528266874144538638648073641124987734266304772756407226019860627978618898128696987971335386309689173705419295482310853020016604665173634972773435008221676007880021312759425275252085126825635529587968689867481057291447203301422603727435194085158629099942012062756741587436690328769181987818569744718187554231477014383225081027305202798547769869216705564723257535423092528911653757365844216333077585501798379860097163204709431788052369788547056618148351158394954076652665491940384153677615366728014205264975606971043437604092025949843563170753010142329626335224941747336057803762240071625965332580204187530162272765807983066874523065722020171361737245232578599706772494541716417962381648593008531527193763925521943311682360005428462577019687046994136612686229150611898434323895536135183444065477091490270930023870091604678256288381733884627325917617428540150466285465269309537156521253090878785852292795691353916251632996912922141236009255224650165874755792632697998063718405118325486358909773352042978847721590508957463216744335260117356818539211172704464798326688446133115152333034483677146803799016652142100016220254616520498943955888315301619933705062280693334911995133562916092637931433552633229219506248019190741134891550775135474412184532845429748783537602864849550648624590628157791062546339511713414679673247328004456727162366526025704121804561404718809860956373383239789342836575830689837285906369610786568298669840751015743961383304981522108012364382534364264083510013357578387181353974981363286914746051990628878575661272760591799189692641913626352432300751445888461824389332751266073513529388512374354599594671686480214085315840214268350131442387465872758076390541109799907850598786429819725248767070213617549839913327153475297899212412025573408685086972807362916123864255446947430267064546465406756590055400865713912041186569202871198836425904788919047106376880374515698930564354998924903151777783327149111547899508148981986400005717252964337913693582693126876556554740739761475332099557225212282098519584963363603755877196864249528282060895909654612764514525694970625984967299827132975489402408131641370026700896974962592923931677470888396645967138546598285923434196230667120462444823137512977693108681155543691247952328556027321326412278168424624939425796941142768022849931554314478172657438942263826035993941722938661093239215220359015457296691945770890279747416798653966910121406679571232090222306520735101719570069284682739336996354612756056509264537001042014928435436162886714565004649930455639193806491160800401046475573019102923541313069941357828453592699488875787838057808701101851280600077948634017202877780298499085572039886700920254243618282226716037949192433407062665717134649877313414211852562372872242534682414477107684329958708852553827775291483977636105730356753907689141684769978150787342724411292466849058357896153118493379040967424443034607959865045863670850025471908505417596347269321415249623812023596086012899695882037198151136048491459479747604523798939842568545138260247452048773180863689198922159806516894827173815774326221761162835242135808325521658102778648737222555968305499961131913043693836366880496618113933963430531542291939886575414750029099488956733899996058076061532486466291035274750982894612264232576674881593114692346524105320830572108110809332609089799910054179937898534846757060591978282632065421314327974057388212448363564525361162822285623221408629767563168989538927977063956414360496192567461968812344717346881679313677301735721614376151196129616091875246497137079991288742798464055860259587749822551844872090231994968841076272354292699656089147566883393148847249408426498085341021264043720265399360189608917780805926791592286855343092642261431061163250861864043535701470990420109620509038630329793075828921805565162473050079161130084745487834423552932246825223182193128235982469636562539606328087833644905445232542597266870129864465575767915540171800191372139432490353968996410969372241839986284720965690845320888308168842852230032994474874390293881700650713883207363825346222387204631525128520026311143021764787413827569780185534598225521013470829742139895848752223141352493874251746789575893477952448063623510025950799304977298245745879774551711467391334769422688114306478407538898746710014921175210682627926279362427448859686443635067399467698485704716757181794753819443896307968335333187018069736287539231631544056210115435974281271727266869193514721104183393716265621482388267528840341210720680786154234816019224768078205731892963841971377528676790530966498200157618051295266637635817896576738871326186180375200610231001198940090559972181831099961314676837718932782182282529758963787869831407777488720902850027655664911053453002758492446964227333996532141811089361279265998084814606812567377872834248933332806502763715403141655656844627430795485387132761810320635018927786795380327956687837067676414696002882764768816154699669832531721712607235670885772803901505841434282420571982999084150779203161931795122495055353659617671771682410033301377938051238505195871736769119066303456033177970170094259275616179722181904926630330278031592681946245099927538810087203228397263963525837965022086077947370473696705599398581000727927035469318017816714856576679053657898661015699920669939969729922908920371837232881521206774914426728119201926394317283774187290677510264125922309227438009308385174125452178278361421029752231877065475310461127140380810973935112959016657092798133212125122952036779428851632738971288312072455097435330839670323109407639622425272443202110367193606555155484970478336580398927209774357767194886126011018844305574330775253265773957510383374049749017984304509376339915016398997406705566847958876175845954391885137429306837856302257399580787518769906751901689956409461046651881775548726658850245027188714432236545899528429776113039801208860669006535117678194362128600359463839904806722634100417698566438559630969637325296084916056115879249172853383114016353125747343968901090372352452964448729634133097451011827024328815770710001895602959932220424364714588766173695075992111532113362370947467995400994811675427174398636498121146312611361636266035348284154250823170988095070772766007081963482693415691818706177337399059819422433021221062402318738080767325582332401588083139492552322216660595160082130480888325786583041116045405616245075032920871696757582809743494372480641462891494086199959714184978166685919087009431004466481887579571436671458816717738762836583207722127225664943389828522357977387412749977777146105701530044954321755051308730451150639513306625053853652321994714609588683581627574743623630161489494948471192746383326763640797758775695541406472455684509160677068553104184005963835361855502704225670514083445696106298908258648457647959278597258040479470961816522283144860470724314036728032681966728580919652216858552403130641235552467704414677438566274685231544278044656952154638904815259724744175404046909254660863807302295769783758656910501349976706553795181813153845615167383628747624528549151836811687842306292632158611815324790614001559136578548323607531696263744320139187881792274775406431866461945710859022887689631065823723639657954626379691118270840255089542636511670412626977552619581777017637290105648130950757436542443095222061373074530578058787885165653991679333053419793136709528751511465906926580946630109137629165140995294874115288465538552945570370737499816233004071304958730852748257713414481442073704816266312323487752397898878156921857446440620396258089251529811360571918789149428153532014616947587142592613983037956920001637309352147186411950377810061571931644901448459917081093405640568628230327829568061655381908338532169260937953165428446531307718798377792593111023466864305510210049871233938131335131617116665103269948805189117812933163504100119852250396362990261045052025888849808655200339564073444014146067454146345146626857021177275865053986342164487926126497513331164870070248475918408478346028429717075365174782458201267621000317486640957994049475552663451950987233888540585164218962962344842892709735636098061066465765763739769578505333097208018534289847910090447926979522323567090588275816757178754643526087853764105013908088484695805899678939509713403624330567446459961301869870232614530314258113504009211743308756668847358576390568381210060694477435114993608733852592097914966873332554699999095194695278863352744493622685808634194786593119628896033781932515351934169994288481135356632839901108370297396282999538622640136423297605517690297284504220611163594093989239393717143884553282668553897195560494623637944766915660154007778509154083161135476584210028857282331677674371545300513388446759634205741155345239367020173872785942137910951349750106704486373184364764894106474678321690410466666047833480993024342009091185574115136864357439994744044166647289535013564873932682582711303119763205860851414027943722583260907710065299572747077046202067677133717410081081987886738766597233985210130803538537016675772677929003216991540475108584957931164338716028929184681993243394376838789251335142766712733325961710233732200277774839433065957528963188818490619384178483469762322391860181658447937758817319191688487134922585990515639048613163459234578444700947909093745739011264117894039574080210627495607666669693075564413312301630275032597698681671490435491171695003102043983426050493968237466441284018580153053564348507260445271409540193667545195965808411194662374756061737319398917946946314498908242207471622250339495878163526886268971154541823167105741408737831002183413197876496073966911819212378308078641618930765750348809986665118300040443173297567322599243119729761368646003803429139397083380734787380414838232375988025629830464411151550164417317227549484820278721793898278594399256320798117235988007960680309705847233754867537509708631557959964459064274263069760881670663034952160482648355356569107802393723591895429548008999600858690492105002084198331365801207163765069891387409771760574551699620310223267013390781352425799295285186297485946304794313121027023140366888676258171279686226126875079592847225425256778645989971151729909611086128386736814240923896450491125961149951769930738711735158314994637669750571245587822692436268485335069707562158236794102151171705532359928916976601020706254045710371605822450034456870480552026800211796834097206660304376830427200903721505315909519444254227146098904976893102882830402101469842142617052678162508451702932367577659078834784945057020018299026170882813239502630211037412436829142242056056612967835626048948718286199129913005874256665241302447435364076095126871963611650548421172610162174679106006129657038866833984695394509987469601404530853987438411212686503001233844428463129392955493550830647590712159321508647878593359436011394336494815685003787216769105295388414502172584853756191629780440282996747196523608070098840881408375624131927500070280524882229553468492568842260224131488737246382008578483109938535507456627066328333515871783995389340550356638589980990816681276790032330125138363751173603845541267834981817069364844195214665307073209029500012195133340347091363038501142249507646324388501159137436858519903133611264177178251412324415544457414232892311829521414943525732238906334199857251627207350771763763860872829327483784088799613412497302800108066360203935911405464994864982335006922463847071559885418753604282648340662600076553384074668769433879827935787793989330132174154362620019885724907235643306992468785703693624186731666789412773431793673197031551806951296575209614659919836165233755061703349910924499688750938940255498275301741448234169878941447208140260038338846745148435652640885822791647489725672247330443915695479260190846760943873210306951533788894810150015804349443793164760660983841496775890476848511812859474699413840667112542201400273921439333318755841562750601881352664563699614645274815078132560578483364841848641909115661018624806013866074929788615183568238714389975303918978207627472893676599139133733367767373595589048160754575376028662122303196419748355645076079979216243861919638209448184491977623079988904500782915999405485543268156470369583494038923104530911610724329666088443192585769186151209227079830010957379412917680289360824417718889435893181154983574350785229169376866358369032304232685615389665706050040779466011195826972433854706829470878639108421611530303676459699199466201499941541126744823474403642031443266360288548156270856086711471456651062217411885896600307914863497624514969082898049212371505477019164820138885569588602074735575230877048336014591045129756310875271304504799143721115889988553544087264485338909857566699092882122624055774453818955412509229617693492698521825179346547406580874683753672544931650908733863028963836203841116813454387141204962724711657430747193511077931119683756177079459950789081170843588142567730405220479970338228319404068788858180713431519123092389716668305668234056294595650131452185614011158151659333772784025868000967636406678123019924440538110287614440676172855590543057349877103200470600233982739620571985363895719664204280649989273039138097098050302744996123173145887521111772861821438903200177355343468598310259527314916796228414557625421235872956679747963298778155478768289174327889682648127749378428878624630607369705051814325815659301773802567636866822079529335843985497258133685431688687036196105422839789645152859772623571475450814822849561899860443018504745012394398835153684085335085628883488064281701589841196946285890654617351714771800403084531081375485853421438894970175913932389047968941762953720485007655793892568188932107656493438236140145263683024994686975299693347563402206944048923926240796528720378737312139500423445913550189855193013567380901012472901832933253761721052605838718192731346140538279509680039534244798586128987361054231878592819439838122182761540380269082834399068285345418958161584433974852228505466342178791672245879282256064949835557360225080217266874382567134053362735589226132326704441387553104396785572768564737599839201825428904174005398629721720699424866877413696626996713522063073465967887532648182752303827863241811345009791676980223315926706109404125348204027192181023990916504743536745023325021543935576348392201129724421143023771617288005520087206298795457655812521208949304989131719885955480813411674048795562602153838720311936759830677532003745489928780142882283825513530621758225331563456556504910992243680690214379201552039688508256546181238308538299958650992289955327539472830186006673006554071859734533498463398681207834952373079840924058600418003936639290220128826162590447979085328687710091501043118696894458063184426336259451346302048676116899973466445474185498428529042571145899695620617653128950312347084721236415947945694454622415960348310786397030362423507364135051621077400062557636412584117820211885580934269568899250583384264811192951893327351755904408776167292161253562887315698438334365952953099733870560878985390063615579242365074185753015110679312666626304293933942431527238299434828495627887268990798595877126002115583166380751629375895724331079989175815100486338516323130524774157892346823161064764524696053879391534050350084616405673097404103699842533598041240685855541142075142858914760526419152783685878952641475708899901700661200544991070030748172355265713491222760945508452541103303688186659257383236378213408288107682227861063429064894167551165422018082750832481337426991729182040747039868894858720960268357765544347385600791656356236596462117291053383079573145705364834498506649634916395597273299837303944866692959076000898943812187859707021039237165099958041495190027596239657893745457434349933749232676495980154649587383107631396382974666588496185387107924856375343723330944258274636712920233758831052571600671662501578566450444487217385324518180442581772763901557245126764251038533374360877405928061222512922632409603196493972287792291724410222782192077611240023897723702853184243253127016148174330275089623739788111940225104517382016186705818903867865374280515395905631768881556269131291492840453909863536147173209664528256207593503857722400616585542831831423582744443553926069991692341655287233596486981313173028701345429172444080568704767916057110802390509252953296600648647194112199994864430318832777653932259265547958226061853861245039456657059764277515253257858726338977586246792281299553421808301005836099703538074215320695724099585682073279434484328143757128361192144169816811034152764370085924428252246842238497881378735074843630007853860588901613404586244785821693409221268104858114071175362060118903005961712831770359520022291868001740039914459565610318519773793660654587726936004380434321513151462227142468357402415722427813147747370083697250479031157886315445959425633945192126907568820105520674031769181917957311821955178135252418841726411536790374284268130885112370261500891900377461996532602980913377377184687090255727219046843635566398114536900991816417834915806890371911503594105388678838269191277982293201106151906621412195836333656864538344738216758719466856525031160107978271407239003400049374358883764898400223838295789001574871756925005429291028905039490984445366158218801697685794467431427607658354294130389634458304840676196262839733317226479775613570446419694510295000166521723774766323210008861259698526109287818067329006540933855897985925048609412336694326006982660774679267838134701216723063513674517192610188045688040951936769757913457442510621813577165905818591819388164826257049355468160858588528373588127381767647676781851725850217717565185639804098569222942863133441792842021780805121558592840707134121569766562758112885383220544943970086475401573256101219733669929267116155234147593649903307161222781278942891184229330570356947551176090025509858711335226395620971988772379081156444484151304800406117089877606797076375695503157169588520657967210405412464415751025596322235489699863390414397291557887642129042922028299330446327006050108991671308566045080436000759948891442276376431240316247738974436842547309510722601788237079768399416210477477947428200162803544648750166377766538046336291532749198422482395587035631143874027296928517957588683557010032853628236001495059883216030187478505937113096100881088216393872958776434145690770440114613507626623820676151265930468976143393375485213837572147242214089976264427487913151429899318458796596200791989209600298897862395386866470333868438028436796147832545593432046014614089355613967573733884641953998375714369132832489974434040641495995306800039491938227059993655305306540182078850004475951605292469462142727675909215087561176790823959799339354255624505931209345402553664531802388676963230031731608147628338761493187275523170743860292471867370978304445862519747556660542858170455930255243207435751565729508858055728838170627969504444658697079216276742839473403969793145993961533582089915525341003396377819002022905313815281757621553661998113401533623292520899011490534940503911951189020151420138618989585028951629160307029892920038334247493073296284730175462773990143149370717839459833795658476541015992374402903804046065187119335594833242227134979304693499798955152716737239778231077103600554645353996390990856839520143901398915574963198281290742754096729843973010793060814881378060513117632443878745617118243359538262050067444671707575062998386857614985848030535073233094641457836082013721885513617041493055935496908798286570379179358322830970779711886293478164323341734368583601112175793348025774658327844281795877035651669190922470431718696086925847499361600530552224635914891856402562518566845756674381196967968990937931986751457733658005947191302845470515741703532740165392013576443993567629704081235418309312082266368700653382296174433327228738639023966994300086290097821984036296952486281862405187485165997330003027967868565145054101908007898033187092486638899970118678525356441416076180970327299682625854999841004691998432546198992480991899923328003623809824562706041203246664920796160473780308096371827366824587071469464461276174730930036995435887548054379751153150870860826902395694220659848295994530798451846819230521869449052441681284731498539713421861882431376769299733828762465770316432480091511985186846174721664984605364733610051784185315983518844921948720743348325326465287640823857913930251184713611951287139928026393162694556113600964484757187413111047978499921201009521274392904935414931911663458158479435827705128411075616207601759673338880227142697141302307941002298312531387673398054050501971274403014959669430036287833632465500012703883348376554704866008354037696755167260255253800664997471158127685104776159691955634482472007978994015825509857322821609961979646052106779835749251258493070203978501326700687428417364341162136778912090593578570206549442110756837185853138876107465170736464985826359161513492071036085209204865295082807455590806621471793364421450081218247076924959373803261472561029272082562649856217561068306774863446564308919653835491498866068122460095904402900371458333787417370390891875800589282200238563104903079927731781414111660686672547414004780111834131975967984223723212326609628516288591562111049846954193112770452696570964730931114201987282471630168249018021856492374919867605127548695588211579317372289108048989940822966560962992309353195498621173542200420745845870064327044244899280076732682409999195432573286067522662085844076494421681035674597893458271945399201162916651513058261681609685795674955216764657018493925598237444378719250210228623719667530644486842560759444014932086844743293712307572895097632705994734990610570956017303488745200942616183287646613802783696542372261973848625667014484277350417636346452068323269356917343162299905096349449008493926022766450863443093657008723632812072089577473433217503160258691663393248151519163001686118905257287519823995022640152825585051107864610272011921928823978152827083493034266482738718405302843761548508608632819210398288554306794309360965554129846834971014514488022305287161729120448934705507441282108674933260946493280656609207266454428622729444355353665919956990633029881091009696631475993949773639526927817390105168058131081503862242060748789638980406237332767517680562577839492585725532100460478777230514977401638048358125772354532599672565134321165871815851810157628529142110298106988988974915341983061179941339182538592928891366014563907204953168792223715404037978702817961369796211502582398908088589824001549278436783414982842073615074393677528014660550653870912108936827125794885367686709801644249835621554500472739468994613772778022564376001209431390207400893159189183726602673011266498752394081667237759755398836063250471313878530035864341863979470075316357878800804382316067951933013190558109516182099556682960793178090662472387305476469658474509044177450352163733769109890179155777793514693589651663299470493545302140301057232164555745860309759465247343543330706976455614346485714426722528602121650449517454854357261797450292047491952543138157350427298496608008314248472193964265365746995375859096247571570954966821180495433353776746030347728766123727723051425457930528753629756382894139964427922915389868207853473072855800585308976684341405637174821869659439412541824056801854669328629226217178114990097210286156158544174248554732990550579228326547741659231534391793933260557378202088719369552333561667764673863816135993891135604257348515251590364775145986873189085470634461701295208897142300738077782554370533663408380126764253959394408305732891985452319700688593598609556156479086179387205352309877597870094266939718012739884579567549063918123995506053354925630008929371224787325911833033146249998802864889188648803159936237817032034487057923740358376938321576671854129031017187549122783635362155554734795160580440887701857711477878752973010719414347504583576298687770375718266471200655719204321171729216745105402712155473938888632357190520142421557012529710379245800700703531560437835459629596984152716062765437555553671821386791825273645047775623452479191215373954448083829040983200194918688969073281038365941928692310763119376901292915549982833959016977431708845316206289454897049253190122949063251047173701884121968717929768344465863814538868811542541511823492878587431166337889474619358948255871440786985860452434294637402908122056604706187441641712846790006419612387246024125082303954688111213452426650837766845780509486401868740141220315906493509369083239436530693187554530725990321950233715399686931020277852547031413547077305805268603202684555249722902686828335369138146424867965938240827328468257243549248648026837788466432993551701323966857764504981359560781772810308968268800280389807624861591819968030161708114173650442870761374813868354686290546065567485278246571407947414623714163606005276353281672273785157360665277978584110328824999050052760553603315387116063386142290120185435033089349291478963565706366346716250189142209345111384019529980750646037253876177339451172217275150323698622473673177095329859339046936532264505258942232950684016395475119461999618224484284944557459912727477045649022252652825195114405028331081413346406523913150651062588781608766596859365673740388629734966052189672353818537033125453233283596471805476840152360234580010414738064123532434858814910757273574576142440178257532634256296514514594116569621565003176545556601069922840420585101054899963233200671222433013993114823756597622225245418491811051831645331049563020387180387515433653607996242327799286789697940070182268391548095337379803363761449805273834883786546976008551466291701939977395629855032111329037548002582078635948888820793328179380007033962772632143531281083078424541514917185775628958789364521065390695133552067968750339016480732693834470095254328073523885491242461014788525127137794843203892732268102267663818757743245879692978753827051087113393166241855995740224839523479227867098726767270693750674506848043051376087498323371087750675919634417779114827148894685774655901893660202930586360339883333079384994736419651115207207619253121537136647472947514424661856051960954673893770286380909133165588717624476712151194331928315896699258767999216847343610591451602103925047371588274487534589778419618756294813807203035981291816326156763858600043161697337570498633109492619539981400643343683669194492090112841099522622163589392317024308353791742690850159934982206510299911250761267712055773999558937771234087042046272600904446863568776241890451184186210205762743652437034611482850020021613898692561711263639424438621092711088020450343053411107614095318572402096036803712360564236884337954823659280876467897402112299911625054228695053225126367790731687667156017903438667181335720993627761014852217281291133885045398808382092092792087932137470334142958057401071143897368613278377832213059920717281102775559615186462844092978937040353231781231098432158785754192599515655909316846120119471626089110621069923379230960661010598138888704853490087035547117467991165800868116283417110305331204536411034224259754598675888224478393677179828852572488642520675612308021677940829200485965889186765546091989760459696772707076077641051056573485312644241550479462458808703330641290758779262706417292345631243973950037424665128305859914076932770300604655396204348196074841485891121722558321576031380046662640073813944754079472773301541400414342736778645632611227221737643096866835919957262304247979154338400391825140911766224831031820779566358888290119698593241735427072506736019921684659040606844350991511012906965765288565853582407186160711925418735581587048887103095486868547445588040618163486835579163592211573131128781344733976724135483440146386783608605382574501426776897894831286506534790080998414001849674230562528758017209748238322887291044751930539904832645378984047725872932701944901830625865361144155084145834739345323258122334795650281969062615566845512038692419696317657930353547912902433319211882056015449204323168685494911691247742864082156828051414838167210808794906562251513920330387771161798195473289473603233541145507988874879550578581720051274726511127148447265160506967456674252676209928298740849885221438331571361983485352386397134142744536491726311717109457490512816593570077511741032606648923564646819957354601610819469234104824909598464959721205005342265321793854175584039024390437573680649880726992412719104010682897462172768858380870515191145254022068243051705895254485962173093144680352027739320134842235493119364132345665201825574364696912690553242344262657446769391278743183241237191163632966171711372290034623011228341275773987891497267493906914296239352092335822578583776233147102965743461563120845318899676030929981273941983035111779986256626988599027031442338991531533796310529310602092547696240900286227707072586061280948809033451618763248031260343636668208872577253385577714385853026326179583261005299289482445223227414781261245548833404243894705582500390170258957301443744808300305913705579046121852404624012965404929775683021976829059676867056805997139180249451238049901202909224382355737370671845476091075433157052657630457054534065395908425784033498741208594911559600945985119092334304464525696563393270327909184794404987859533029812551243640064927929093648478559308971376712093990909201378841409556302873374757919481920042088517882253125600703721163281155717321781826659085311839923926213148683389711859124224342788578482640638470057869666910816809129443325146196427587884217299122053837377316773932052567548731801246219235562171171630962677216631144445052174306465593466435824781378807197544423169043962241012490762400740802456997839822399806015080880065571471550008740447178201919267592607819198244296905695504834384486453099422061553377845798001890797084343779247026075011800681614261873648288296500386415983732951387072285829363438137864157555051516116710714145334109860594568640665804378677964377354888927135820591731454361137534031004852769432073825378403960853105738704057246368891020984127374807378202840646589062118627905549222070512564315650004912113719892510137904398361642406877028412785083035679433037502106277427291789640401992886440438654325407119519210777335921677602358210352806219848862599443723330536005367526387399596337732338124327291350513239045691278089564654967663752866244071101359218286513633890010632812477943298820220196295264877481232758596875822790833369927295906295641089757418860168821956742420376020057418599001910605803509671051897677884937550806472882507239122260307660159755357068344617610553555956528973541774110727302261515862903751943344921160571877960077179496253028700425977515582078966035852252597548177145261360692225424197360764063165532226067997529905245890586443919546127465637386590499058733702692624754122070579437035317724245366133448573188572051331541948556296152814335445950537473355292649979540321814182048479071042091517679979514715004654472060211464101439031151777973933545044911744953004945429612009590262961268926998476529909258329069908734286417268697704434503053159642056413078380212915883982761829440455431393710544505413071890973033184779615573578952460178327410489961982902380653333325919526282589440422509921885899719907568670409791918163951736388599055567959810928913421356102315224979267876165826435948449482111666507555358342576126583622829283676276441489310438888116591695449430000881372628486256734186980308503637854459780638056992282491027637948940808965466461368605248066902706579125470016050451357967423365558588100182453481042307417748183778704094848423747558216336707706828826377726591889738107518166276202355522763297941339135244535785011729813583477768392658422526488397868453002210205426132605994377887552278051049195577003523876378101686419939970871144292284321105469210110755715684257273588481094822165399373745410940759221809073028318257607856182792829408189690775067695400469790365566273754192027789764736049892069602143917461489229098579227876031925971296021457243774871959592878315142811323303118376570092120765258491964587492474505635619789087853779030601456902491505226082099411047151085668019502746696397448692785811777886361818970819402073696550738473351301294077462584832403249737097015979462815333954268538923472119808768962286841559840703165588130581916483822392822217125353884696720561732922547879926320651235248061261165750525619021132847570724884487146942192435629426056168161032328896621246382987905580949865230867693508170002920069873191696108374463618911102821200900299682670400203556434972700738451001782709002497589376813700174973485596464821091819456959079664647784050308717178045564712304373628610106278311437632810169886128659412675741459929989353485452905385113626844330380104998207153994367936332085606470125723678262767174690465448486526396368549056040192828277166899094295696964859247340978355776650294152084564384669242009978895772181071015500702224347375469299069778635023031194456086692922242458008818653498776316592481443305112294362089097245281600015203633192785419756842093471651996300561063619440485300885044636840393899793374174727436453086354780140582671282086294410475925748957163523820099169461524313079813924268221804079129964185877075325368326975253954136319625806026126552570408568870104756955236109020758384410453969945612537264957623614979424293709894247423948139548354789395484448985509274130688237863923071017079199214617591505170197064487608877517088697687954162244865876453942378846442708243516486893947765076996841713141588923738821025293481564457039336525969418815379153502811489172875683625315602369424826893491871259660413307381983523691648431028722834833358685772657992342296275580713031989138619873869086658069881007390904543104125769459939999416895736607158372624920883376834916461864180508874405379855702479601120054645232065145265715257766447656863102344752068842874797051483227337647090716324335642931366382240915016915334856828179681752798772030414293258555400337146422817716966882988628993567545560022427127274261676068159731677750925278291715022941757124987676869452984126256624330089722301133366467803959376050641599652928139967989477972431982818102586953346537245056531959783442545426015938152064571237516900528774478219897388970517467917551197381076295045639622985028273823728958810340826457887829538714323393996313831063962733747908877110280425760820043003133818626428829271488845056217058856968451582481761613130920844642707638000004421460084761539654951180258184701306947332162807457611983888139388313198141108740189609653915583664803734076449121392581943859805479646912838814132874648993409843045028800231361858429865379581438640372757611731440216175781630984869254757651904850938631809013200432991782532321524703258279274376696888785033511078269377081866842127166751034886678881438060049008391957508071686285079291815364197656163229385312742903126231241245941253330465194665042924954607602484735938015816302995406616446166826588951309714413979220382873021719641725102508766041308963328458230106137217497922712780296218015592105776915850153523182859432392750565224255317771919374337396705980967602179792557141068019105156503270012376720686259489353566883972587026295144642731533986155660107046012968000379061244767904788371917107012023316190719558319762068700075281044753306726809337889265190542361517940063541938159517442954135468967634656883571023735799445318674135717103187889989439471558380813672672267978064486268337512433557031400167376054466739139042750291539813538414354123619402066688199997373770934793296437049951974634717484592053956897052691203294457156228414344569953823208994349136920001187825435593007891214084706852002025228034743691638900804792207696502942929471433820414549732852437363974855914595529679316097953522744748756823690594245615062926696122448205243776456739262170202746077054306282953552018512331104598068507512317214574174429883058823851567783134214395426237085777137785770975501828428153294022205405241595691224609095999671150952618343521109406442185237025198180903696285137972364713808719389211103903221869149764593407093023645600713197300362003851422066117751587391143760691142961093563221416556862924250209375665840646852675649001166575025025121021251528744044330638474719163226093890379258934612963012426309320351707263005571417043929052610790105853330621000623923651460990240319249668210925596494675338761884818823486386134749567638712250304221138781408682516515114930361633693150897952308505271325110647791421849692444971102141027748745499766718298707078344389914053455054004930565096536160371707984189459603034822872532407581131104924744364962183366422597579869008533404223059699710762476142737456985120657556818316186430193903704923254593751539849864631973131190334010123611868358405026049555213861652133899760744607266131876852355324047212678437440037657633429134484525525071280588893787797522106277841502641801918763822419366172590164673063719341361775972580159126737880761504435221163420218770269456867348799671070756118239797837402326623219913782710659057079838302901692235807936578171550720168808622277905332505623869512934140297791967136716921974438344918147131871674481696026906847897251094874613717249551278721208660366575474070775658953319983198480633130835914340782403451578801076898703005504834691353118852105253427510693497476948140259156532578871211079330268842595354933369879591486790334069138586532465302245063193785532667502732762184380724764727667497866253260271072433447921309920799020149475131080097814877331449444553018280337725587041052880019403019858263904819345897489564638183324676061102328929610644455149917351050606940672456847664741673147268001631714275648935937144124501719616134445660329324267754624648315484511740483321635950324927591722479506136188030388078934743528391560051961848813242279330360349900443214420415068833830141196665987791890801325610247338141729893467927024938234035058873793316571294729782294714023224955761000912144654271273049593062899168111770712021650010315387860346505650587087700884035750821230954138730746781215415671185718618888208657299970642669229923169626972694061992206171685658054343820867503829927038770032464427617088923130807271099508604476232419502818567436779242707475004057886833359272625730003810072208036956742297652392521469284664235095013290351689025666302152144233415737146108056165558291793378635474903665299798948636500856156716097833002584433665674861763709648023961228488966388812823812039958205284359833544990820625586377444672584913161972119205857997232099405834962264006783480534410413574090531375463317826535137150268746986624608191026554392426071090646511342950822697700304597681631990079740830163046856852014503148787469517383722483845744074345705648400454330096298615197195288794359181960340998861092132421637210190629320032004214289279527627760686580924427542549193957985527816866173900447430176433334033495692665548058045133490953195685230011581353011240413832290114929267122183282780187977358253236898490558017563683110313651569291253868709603827681203204421663796352013145841482073836725011133933742613073827646667799298897704706492854724064286455370868988301407122005883453512749484274467008489783823982680978726895597960305092273167517521792136008563291764808527749329556207433035674884360597385052723430021114267648126140780843749645359135608072254453087743299672377470750685143052054009510430354495112453170742483136510101948256237161112608033576751814145350703691624862969063363948251527986701289976934353652115690353990741896538172701722020551672156602143590736572152763976546491341813293145720939292738274093480598183925453663128680396311109429596240788960242640892670916924237877382966009895174757206922863419509450150867276846450588074062260740456958151473081008086491409629793861184242379941924057925594821885408245587224565707020723702045768985629771252954076902176300029653550291066835311486272871695180861998648320531262634952695531897619324271951020741519822686827283770871035487426355708212462882199549157333297830444647453957779708516817142271829016143292407997084404574167194677344273791250831447215155296793364814397090657664721149406347089736528793601337765299527256437578000588365090120629192107281250346433828317377908985735711108606829605867463196925890411757413448810924377585934525068397597801939158167802016077786134823421549285676126270223453424459016432008663948800855654927067774004517784938291530203514199026311837280755229969823646713669998763164985980746111524795520579736072732865992329028712090722012615688701924282916657796939021561638707268233853462703796598584406663954432814582999822164037632743047531056586854236801669988891105581503522275327670469776192218261213602688880334067939482061447084970644845832591332755302191465344201298317181755130091830069823692982494693751454310961114927844121513567747674531798043893832142969604470183708383814738922563370992740692723806165484555761403874136315336611286465289335280306933679523069500409202943915263457971290088407698976551871498986943036726817052311037897174833419100378643292936170124326201032557876887785040976038582841546004493838741945705099172258596679263890316968633026527318079527719982614754979627231681333744020477777419077181646176380527789096425967547604751259740383422052107096940245953778603681350008401136249750425518578147712836709555314662580979376906314728237663979387332403384331821374073933542565887287683227640677190314260727868234602628126648256409138394153312330343423513377092772334838783084003253070814688746663293751762235603299079353607470732642275672007807339623802640750272784931957639356794621654342661224431403010998123833813328315682151979130196601406803338144320086264273728073274317319071553972270081841114117182919474879399730577525641328336335854414134843661440887997881284524473648827488371990351944148525626921166670962145260146175902714912650748610402969357730747888072957904332269886438282829549695589159119597052501704949834242778822956987917418570255794986665388928412419342853620395070357137570123454770957311193795000645681090848663716894270848892228498793023124250065490206127841610356332877899598235325355897108709716674762812749958879576860508606043756109738753878860436714784775737350480438196593981680708856427679243901638626485255709265245348852713385552580602102871760146019756393795208880737090772688974759160447738883777270678174011883507830822990539584823149554123593373923208815085126166580403554895591189720742878029309182495828448552017674059916213079263298008405062989281419355011427473493340501993060214453687315841548630600698236839348528323628234359399741286251784390262950140889956057177708222460383615127148712058951755281504164500257222488584602538246097774440950940418026674248674111461686762650661695247679442669600842069985933775366176887802986888683400019274761799722532066794080033789912200414808192203947744359198797950826771409013365216525719270548051413578992429125923986313934880404670023726387859347947101355074940764917253194044216601871942509802593275116210843680352786315350697477145394510498038872875038058667054942632244201658475337494379544919139275585798584315092379114797901458395269304889787635928891027191059970142040179283507658433277293244390657276949286344612032994838832979104775336451046859355693581341551624150147674057205104119254981166392406117222040920005938693745463200715184791830768277538686569173522649338753025175984099224269674091204429918482315285739874996790738231068315195770569767384141703125609043729734977452597978818828057447646620039262599796694989892116447705990036235731382322801802425836954004641714479178674035010686344235635601269952106559392878320611771788672686895632302921518849060029477022381497562430127518221074866960132321256447959604281153461779952771680257283733274529068307330243481677955011103065550625208091501205450063213270233897438179213717466198685943930668085972386820929695215637366879104833264183227422811706412823524819968802145815465756372761257604033662886167552548996604255164148364135986439252308783946155324065162072084724260417098003732169625004970458591212343961222692549406691834979252196673239508720150618716204391758510522004723149033076495026677382519718931333018410091965171098939341510784087070707632069938501328815303895664530853988328773251864229381007921382691250021078486642206956985659411255769146030434396763804755367681537309544014009730625558929363996789440062774231222405495318741700125864410871061384021331674897419062595943253874741481609293962273719674792068666101873373608881466879790350487943557010361081342476957727760096265416555587899618531798122697933082263166496492927992952686290182190346213873616401466424494410670152709833315100672092326751283548545910613987873735963205914006968886812925690531713426318602958694735781148771633760913752181662271899361059262015203051354300206733454892984022691301542128179934935544434378409917266645533008620090866943283944955536000148171431315477658108023021973151020040034108818552197889492023761822340689240175483242511969867154030953500366260299557979108562985495308097348309435409552367864187802980018351357782940971781268362123686617068682164742535750193306206629441074650078795287756035377006167959493475523695174651640532550151139263826098326886269257399226701497811728113137731716567290447052458913206638983607560122166922887241228719954934234753199749538596981285134576719373077805359633088293502688084108146816548893282432804034844963759492934434734903469866888438159816536720345055404270534639739295123484771251624020833983564262122027079849702913416935380559105944422703430288532849116309110985535162929385440975638470856520070985179248562110025123333303701867281697150716943600046777131895899563352072879796884324207776799746487650982490417476203498286161117946980336180638437601240771294776299060456716462417987373220033808716705399679588541759045166808212059919081726303167822745712706249091596481009454275967446228360159942658103019862820195085717163864701016576461558715614120280148425307194280245365115467074618035270246094755487927634630940273057107827666742820404621516983277043735728198856515069408770010834957702912085179299557794683414824032290300315243857678746734169775278790670798294251812234157839930384061246553503200005693082981073096680929990665394141638735936944275252930775555712506401348846091246600712526017941289432032518226214179711458401843689931542278631832481217410838660053889004270377161215483651986331649923378995156020860933525297894316217491256014859226139705811868038413105479193286021827160921910304735769380462014120654779465483628502062165415843259164046111045326222302367039818781908582609218864012343490251593763912688928586561116757715865096070080618941701180930933773385527519541627089775130393498725275130221126532912248660989279734766409513294390385011910101537368642899478568404099722354116542068467837309852435709917391942707595189034145734023342535065435187004713815444872443826104249561110863345388769611906678639356465180875257401090499441815783153589957813283707271117929636337723070657227244010853536459301044758551431421764736835271157423743229721308816399691555205795820825210264926892164445962268746516661651941378784483861096235708357765138966873885144217435333869073702652315258579377271708279207139923978874403986811656847269597305362421360264923716088573933771089107466400497790952769722971973076936268731929391406118613920235947056933652632461842948776252769039968503932684587869616439368869093022245991217268395692121426525290957893549777482977549938342541731057332899641312377487001901718633111600741604959124299870747715074629544492065965316916215971823116967038657168800362123972589048431071901457622435298107458469102977557747713126366690506116005122158184052655109948556410318741461773607807400430278399312347394084190607408890395300421908786233340432448472313041300083774446865290142325828151335294558143350739498373281531158822159406656307899407355433499423366847616551308743629535903692439268952403855059540074026248666096533645251055534062302835180319281420647275039562929886315755838412091223963141616633436194603101787088715244613462811468038111040429612929865365042596647833193116905265165211931837442321781304064382491433597270679699452732298895388162509270206906833588767891541976045383225167259158849207112544191456930082589064113436628822762786725287477698674987333553977427350465609437445667234742545483052322736617126321121794184994322843603631659115302090985041652259317136192401913310162709119335054212406661801826696647007901410469433198297952484612801138387107365044212710485354352006470439792260466596739571829804166486130917680361521416545769991791914822626259948277811095824396487305034585351891622814240469425394596713260777045825007579413836654672608109006260631628956478613055506461406000137198520700952021939737551326151413864659341551864971746652167039212819753883829708429350340223678550847124216152003252903415229557870028088194186799798728707613947085980203198681130224471237068906736700316085354809031342676205547055985973630732961998880623981770914214989624578004024476788463111952990852940601276279566576587843608390270979227619254526852526401368434279069436901657782533212358413050249418608366160986783119418037698711775819109206059257916102633616556657514404140887878869663723878343371228871292324239992559509616685744682683651199604090468429385787620837198890732087572356666859621653927694731022302770407123339205892306723457567381385564227007812833505492450398549453053162818273744379759896993364489634074850482376454900091063646201111324075994128927161883779064408632055546291516218828811382141813800528629061022396097883591073691768586026847969628251264755263967910451439624938720283802511338163241013180771625103233305508583959974595109517141224920962651086198841901615658186632164787463480505257489227469909130420730711785496570806361081138093814462615648269594813092608513072641505340035456262222001476703231930872620400374552882982586009611300898022025430314615016566510649975754105561893679491792505883021256108080869326314624609706660273558289885247832875626263097861018493047652919602012557212369549624702968822812164811993956305855824148472052242557940639431357184505655856004754065903936260610487082466600679866437118250666544432293552356433777315080662299907564163970975085013311975153669586857986931683324804961696589781052962456284027497748394015128516613802826868195555835735688097207059710780903735393649776440539327271602758661315021360413532271700478623601206903443244708053962086845780910653024913325836865908386377536104634866374275538006316025372831121660203475954136061200228933047538253407058070985985450794724981595903775377725598036600649042598312817166262347120703390548028708283893765783577002040289765269822926625752059731379233465868322367538401832096737699526559764924407948135478904841473718925296549832585505460027038526571084909755335031739782241698808824603260668008771012806309258289182101230309975014232168253517441802925632872870770569410028472341808317390129820590029839782693069840293361099948060811679017369743599508262037837647623534729698104714731355292057332971025198122294882465980890293168081473926224954642677889091216715285752530997195495934380889297267359916025954932044908851505771896217493005630326538295505926680730363682487491610973272288810970491522134758725176218307256715366660442500537791549755284477427881851534944872777445443061554001835457665981966666846801150214805277905165246587143259294937473032336753287586825858581703105856439330653470229732821209288049641475764692916671940060390591392705777119039880774438315652563127074634542402129034742483897570351401557326957386692205608607579321829637860506818064592052462135487198169017992427255307838182746704874156034086327268631851220473977978911400687260000554581382148873316765576323081456877209374178710621472401803407134369749398189871315786035797249934846544227644946291710688761925354826557775978143976382130117333231769812116394309045358287372206379749260780962326868801786294522764941686588324347256384794987822872701857014775733111669760824960013496867539385279740110108454339584075194998572549139722280556031860848875692605151611240217873844888588010220355856769644397396742724432848761764201757325948243778917321375840711144313199599806153477917944995496335573507314259338312858212693398840380640784913935737980253386629622003128370564116134885154982227538819698450232038747895399407527618516398272824151435016221770222482360190916650884271542773913203654634312959227739882554931015150586589830671007378923068697122345034526236229814151231792295978030792656756559861570138625635519066064567236511582537223612053844452191013302196837458411835224556468245148313318261809600948116300277480387745934646181464483118750662191464106805224973716772102175323746596919452235455759567082135413216954152995357784569796908755908200988077629189477723851861782796857527480647580368639631136253111595631930530646904731106300398415864605004407805055154663214066047223354589987736740354461485481308586748824050038978270384674436433663321169834807888229548123824561991316789896440212524381612745644161185067500415511545652968179707467505129367113616306440587008620325770906319773800335160028407259000488383209571232716298651790221434052566840971324574049518901703880122012714970646912108894668891328153352800898713787453916687929697750653685261029917252143170114751055878787288762863774357934779238387248471944506691808382427070937528955096143751489412375308201971727103932952557899438978413136829463888624354009498492278042181857663079591829275956240014176089985549264917083375842062870835963122880296210118191352284316926724676829348486804950659929920720326814090149307404423433394181703003747428870875303074452172804772396455909140848922514110033315782994620820956167268338785559500191940774287801462394581715751477943614296129445645677546803899862601844271519277827639934510502728639675059074763053138064564708529395726013143325587901736328289483493700445740222502540001234216595667485180096328525858084354519459389348550456389044191769343244067803042093522697048104881651551287159752083865567453774626508026535739344623629969729737731787027408907296341435668108674033788197956170706319295308003129689234194236177320341377984750720248080409750408206075643799378644118996578862958279476357331800034317486814007876975534254801757104534591437535944659243863906469818151780806763136942890921013040023359067475576842022654262972289739431802677726116625159414892026502219158335525673917248004056787716656583305099607453409977284581817203489995018411349667242860409778812936859740505123479921469213728442363430774896565039285665621326686195829583524405077643985828915228829066279797588215741287333354746593395235692524876568560879049232572668888834030225000010151311479443422922676485189035368642453640063486266826550261510876854942144702359438444670539549637693655939564552947112037010228200384201209839780613405911752588569798109304391257834861693606555815296000360532099210642889547566961184468447669028187412333167579656960411195239600785853606397858861096554296483003012018122797192670653733184387493756604473373488908389357856416089310645508997865546255069926188371571968117827576859875825746457551811758367861354262853342184052754431787798590460340675460855577285153099697393643563160382657948116587245115047281975077383725046085202333594554264423239465059536699935191729313010092522986973854508967552776280846057494448940303340361164884489991968380432151790154970004063733685088728886641664405210171836744752214012101929393440025982709234997910835184431253788556920559832887406515108115758763620737735930328277446778269272301247124892942865868746405359908402671161505380328252898494344981793861341866616150707405184607765309459760319062892420139513240887407476384960494105135510559227408941628871691921113280287936316814544879766236030398423494872867325137735423114059788231812673380341526106357759694557178511850254434319423558250753600720694440865312491377953582508438099234681011406677959438542149842217039034268058549312888194214545535651591068898106333298629989818334172073630080820918227413048897073946467099804916362077567879812659242826488729987529831759590253973069066790866672222807715898481642924315989740825974184846502948506685270302079198664544947103447974934212744785207540666944944982080655129868453077217596344326396697317702108266643890042501690876064847106933037977971785420057015932707570263193284834462269987731261611765242562952966925436183731743263525699782275373549703021324080532643382651800171577362237131079435070633464216200480405440893633525536195399779476502844351443601709630087461052838412234542151299831468852145842483293748571432186834775702847664810698409017669611977503596251199857015101712612074350928807493260305398553348923356424610856659088371096247274847902364200996940000791933244639496656595722726356063762932192910745030137858543567462412339637788131172344105174809071357672591566458443473921216225978578899800747252106172476206541875197229003448200914548982336235520506295148580296578673742958603123366267703423660358187319769623318813566784433961751947872415194988628943812218032370761249981632073409182306717841361900854805393243891259899338635217659731183459042548131096028538330026982999691618613491944742845792383978725823188111179243068690514440488253045261731029861031363711869803892466156858267438674296244564137280218902414045601674237339451654899196061051435277366049775277191014193021862852785740328634374766083906376824300872601595909787081825262542299001728352985188774512265827363429552957306679398038203134467913795171531293418975493968081969423212319876793261730998768264366681923274226781802230723853493103027060015304659480808179562507859284938441797163308095790282863895788498338795981360983078269054355914968530793583625120411611087337373345777276671537935785604085399658371096643040129744218998410951567110168557373367345422945709013200055887410320551889554088483015315398816865358508909969775641930213627296784670251811028615307390807237373968253981127795448769918482446235686064249296385461909356451618830641464104226759204829110995794034244726206576180887708226990900248628041374957705236980739562265866722886914443499747658325351799609740895748134343131234352058433630969377433197504473467020540514938668762764280596013473738754294359672654326832185703596323986459601631537436139822055224085165642026125821949764599450524035482346298272026993608427839353247194832338921763437825376282369451680004004786669113330945050132306535171615113847588155149818356066839357583228917767177884700385247693423899583150426076690774554872768275172425868529891516643133145793990092886942878741036465466331820463931801904938662311646032093910404245343166243788384360882833655595496140247696654454140603911300316834386700760025462025106439209138142139181151317479343111265914083955928115611088885544779244254435919055231831057740198260890372778859133505549682509488762749963003430036619124831318457849187852724277809706045016891712687104457251839675628382182472695307051098940940090805164156821424998403840797442231931721364061377413161401798448395141953687448037472267202678516563858765011491149386806432348771792890357958063310846596814732163028102151726234331281422796158025262176835410804268722927298859842758568228293588255894441665060628981383059699819483670812486707293425599879487851077971258427680772355479826127712030661688514751744612983322095902775341309617900545007101132655098876576090088431628402151014106965622291866442747366249640463236542254350411064100805616213777455585662969984515583012483861458151275295094505549575875807413428559162488916775500080058380643287342690913714672526457849863683043517567600063942172578558156331688448604951463355221566550480849562899979542011349412262726136009174851068452494033933317070492695572346544332092950237509701358243249187078630132542577237490642163745533600497275219524855205168865978100765913521730009401781161123174516428021494818161986443120642829569440432760682683400080126764604064545343988849546012634816404776329534412118531498434862266382828953224763261839126447520667891454762816573373061470964896160318632807799693879234681405776816671517207332827757930351162999739161608684084752897362651511367563687278748747893584841753693810294957603043840277663200516706590705822322511903953258022270581714210918911178877212010949210092630795759542114504414584089429876464569206468382425879813767796880659054163797801815819653465913902137829790710111997852142612806217426942745010138244458629765369187426136720014392062191064886688006568145669315482035064472057232105803287133455866584624841001859321167397376114523780801826176871268850610669698983109885250423569996195897071646617287703839163660972992871129157455130555904284111607603632226055353586099678716840372499954395023143765378157267981671954772669020691659931375157645756791854167593252189383987272924795890209972744489420104833153725808809228081931084291040856672584702719257332410588464463133166873658991786492151953393969983252855474894441632582002704292249135665355994785955023430922159583329324178303015150888438233978549038872500229322544774446347949975726842656174950880308481873973063700754949946819679979316335263353879284641892805366054499100566220330990704903355578850481671718385724166298570033001364632374702146788452414521934266299574006805465705065521520613039899261218746449337204881339833688969756902162380228981801636539379286084296409990980811877053751546464661462267307231227523664575259459844297286769379320359402480605881552792816342784573196999884150124785311076863944096166345690625916703978179035827900993213060363661311134637896330410638384133790044968328885809462554875190819627052086124200138141719700129139210812897597897185936366200849999154750116268558156582905252072294422737654288480523120871653947397302744443578520713055153711599647588895459637220352267581792146154007845393588069336188879287475270201917970609006244181779941948723822176073599973012111713732017150845378056050030868392659497539145202221451555815559582612144480711011674855929051197298347477727753211341992661871109870866397215641744654463960026636667306409788146000974607600243459498066111932548307254339041468353140233810484614213858614332349362528018067616496331147293042909612171823656855050392987023178504054450845879996094108622077900857658734776612285258004742341311904590382641447457157722649205617176385828579441444879647176938130262308841414287271444990952811992881526191285060851466478023489186439638280052638468826479139889718852486958382253824545123456343995078861015143478063214010305843576315315040206252302050737836638403826934841778004668053245424213837648029915625567667849752724754771650904752758752014643890801183620993691877322844260787127159247482049491342671742010062672186367774118130375126698554924739841479400198431241522690118249887427806306896983514852971512038443860646611700986497633569947219130574682054690361148498063860291064145373538300855511674677857969457789276326788936844811422164521030655663108057136345330133002148904573023411823633788446252190711462648085177805137239944675959773161094750858472834443160437017087434971412733849276490220797799729089555903015230722370390350213060073306288872140222927982543977067756775558822290944311928862299568820324451899044281180827134148837051189119375060445118364306746866200776166257600542846573577405977878642110326700879053781525169634061538530773622441602393008010874451355800490392960332804841747735044232065650116731804690997979864630962330852213116079168345919425617683636780462250691792309943859113130201922856202186361605052150899960660975969195436660836900759024526065804028654852233981596858794747021080222368979276454957417574568030407561437410317608215970318496326796552642037640480059831461135744350103308960880887763119482767621105267329266766114399829919743640791204497428332977348932997254585440234008923559710515244976911557457699485048206413779359398191068860293300321046478266525840318356617843899364325343548779069565440382012676330523841030699487765556158498986712270490430086834586438349075972912243988591760920291073529842942371051125858683549728472735490084444704793044079998621514702277854060556524018811794585303869893890353238375590575385955281784411779036515537032320267745600945341027395224860005655718074784194640552196279130110108604509029635760808664368336167838427419105094453878820435674448904510957637039847610283173080537037813144528438445183176883838490654204450038576643565300471267375842419566391034001716167799135786764870633701685943348608434033125090322678108474264561277881349607785153210214121085214850255237153018872790496377262858610133158531209418453902576376597459469114184678710776683599563959690078527776999627330313280943353661828657602094116447167120550732352186994949615902407983384757503847580427934810691237811718729160662523826516692914355080250114568810477571885517114067891329117775575127121063314763262691803991814158053152591218652901616665033563260002238589571718305371864228048751759404594595565302062404932802271263059941780733231476829670596469761936135073831538444355116556337667425579299888982120262700655819303263888744730531822245094822571973312999294016540150757274734258032131880959808393406776576581728628379803674360102136846229884606675521921957217018829336077067713602773822969350257369032397703189704233665434278276922463180132030724078831352548808709091294142257495160375906300211238245612579206225188657320732393151049559887865874917263861582364461801946920985956504625410832761396918220793638495784633544457825204073898239980652701364746645120728170577883415651622749587427904824728363665701460071677981981298209981890397904354685872867713519085348081984747422625097591160666528713041326476356674250295773526567573983035132975966615609425084980922444429968314243553253064969360011557080062304871551045835675855505061213622931659115152562303571687179242673927589155973492464910583807239728017988193201110546847692910805813945090191506165570937011941857558460284695326193891486989010076514473438801713200226492385090078631283516092270497509235225528023051881345568278014853544176027266807004741752169719431603471510270681007982534886817081647962477653092873750319758703522079930684361028248928040503836364316431257639740551619763762801215090228653419244456964417942383997016628071809501738294221191793728601154805641040459744677047143514550351178476731628085826006957945562517753625185540101883874004534140471195189342356695012507966593557511714761815159545546039310041290361681303256483839468860516711941315420180182525128420782296197521234606610857048828885958775190740321122255598071652476412336628315558009569371679517674905303501478983351457286550918676334046880734596885843544779664820940833911715211373790362016373789759205476180458246066861921926688536269276817160168832165019771996136337811347710614837057653167720839753287909251505956323638652898129493083759418297159251461888040059617495056220916648681689714547010939378197359189461426335117441534114130827184588659589711332749006819202368974380958696101817276467796065068521940757034851338272879316772681615758589572120015510250332589968017775841229949240855496285734148044999454533652826917491986141160833819811194006533150814421247417385977364453666818443518251659115287239152605688924753164227336829877127425522246893612706688069046592248616507988424388359046562168012032216373792735411288088015360015814045830412369061817514202237257610339791652619061462885063480401425050872425254315883854939922360056581648041100945764667429929380753882936761180366779344785624466347866182788476570634426416054176319866353231494914092469321142402149727504155011954606386678534450461694559103153531912856182022576799227454664019607545331137576226030421820924170981387291403663455447606616914371191791633618848583322730479163233324119123547384457343997972147308729337806678032637049154046481339505425951514719855985507861222025059991083800140467741451273849523297412643678542330987276667351629492269658343653542247778652234714852561314111147282554573527690573423161572177653928031665026066881776460856801640166603959692074525864326528594368242003422070554505579897213928068964581921818307297475245093042824752400922260981178401610927238757433101717751484364945983415438588233346894240359712414477548256809926822175161647501177685009073160248788474771210571263995733482091576164087813216996968755336264340288094632277932334022276996818170348541724876858222930151247327460544413314192191792876284194463376294464193489720787645930080654899089544063410769335236067645659230142727773335982431000738983391142246663767908616153786524826553087883610147451832917949169370395361054746433602417193368479537439444347879700117825060524563950788614896910131280827205914498429561928498666780709879473455541648987517219424623756358593566355482428028600155583615370032232880417339693463308762833006991009143718673797792545839663993994482456193840169210462643343277918953401874575054692847111784713219903384613863819971697596548732781454524470277741584648042788666799498743341989232525082389133431038354421352579414785314783401825706369087799285969473433550136407587766833691255420496493807072005554433117183982231171737029431369859503143163913704594514426132655075290177102179344595561556580627371962891554767930291797197961177211862757992897753511169806427679768556194017334348898178815091648073879297306248125615512595136641258219109525107551478432512035302181425694781889222441855142148277724541739439151220776780388592906262102119243092451670511662780701254048949664237818514544013788876606008166359574586524434210844292461169525938578596395128100989712571438032240048697023044258334063792628290969516319120210363792295928349549169351571405657808983530423212018644776889428811137485591533449298966203222358201197992487639747687671584983362518534442172749980937171759818235543298519908804412951143483907023781477560881673853093071767637496473187615266054052761438371693208285649244692341008550690575132944514055228797649543145892800030629053174838090216978114582415282550254466218362564854480720796820835611603901537697288846065273765125462673216831386052563709648987670911217836093582377295245268557597157913268153194711159113010460605469423566974766055221979997767071232566682539413632206906823408831383246302693256154922133227686599680589655935033278346624537630704724051798305988399418348395768362820874330765797242552543576830937573860348728443481450961424549625190792680586812667421752310576933638012789080830364902030114454123978658742021961081411781843169944898819511969838072219098534009875471334948790024516849958507683354311378029893300888239540879975905418345379208940879829272947248876782627060654227556025391379624056562740117249447404961393547763974356041307712738344624738051552056765450101623213882761542383068641447169017998976263574835818394968666394754687395687086622172208444654102758682256617067965858513065803147334676419200149019735085096283275924246540984312889230212683145761788444567276760511641323907429521634879363114025269996661194588457156541859332386992572547082580832166991010194941338365295072902615089983005603644671235476627819256560565867600194394103732136971096788158001578312854596219414309085399068666223738339876005347494579942561200971750911987726969358090757481347901936057305054448494137943614810558713564604089789980620849780489073533924336583704622463199416345215787333825898207928620424792516379161483521332203206726748618081893303593022973687970779451286050945964660328710637030459895967391987710495494232101610790712129994661619809458435383233665175905184364304401126773580309854315394868879646162051158954501409889676299948676615172856045459968248650512921930889618258593348671674472012275850735515416207075171013801394531562845143515460990343580891960741101440564132873717839810685982429620126508633963282295926859614762654585893016471577202746675004564341282523963565066396704683404760225557798684108161831711122418201884102740347088790116990961609620111310857571980012404679348438380561208776439691043544373661165932812771400552318441037266004581550122465675976467313301891131701760147521365622280673723563537929643385680828654191681057027599286617691529347565987126554661997697373267727398710599212935701802360400245069843586915848120801728665520995999527932380534963392069989557038500542919574992074394241154025285824075325983760978836255192720899317493104401019087574841201527714722275143686926233782241056636332296070701714907279461973591786084320440177368903147780997950568029078572642486666755417338448816263034834110564622230484010774063031724273390621760719058030312087211057662254214435699327328496051855621211967935502792835105445026743265826738625477702278141542510831633135085380326894462349126166093502043754675383988932474257519402042235492184493577730607918405258029757527893620744488443298303258263298201698270500896095462587247583379375402093053731286775271078688518703754370196994013225948674436614607537772008564824796612320622785788006016198457405378858836709910151596463523301689751035810168332228763422509628919620332545168612844351492489367095612259035196182658135750477456705869760505033553738924849349913372452147885927098965878497196495021400769469220821940680917372756921642842690264629632893977773496304220212957329408422475473627615763808171226749149588609759787275773381549946503192521044958351929883414292833842166599099505139638181106993729185531358022790390099680277403816664769505476438395287996986301221601062467556169087374237464846241877286652796729473694309077238082681020824530038649216549747099762756035676182817159391283881689747455028709145178161339748301451796388187050496156834149788971757005654300149735279954340784285629488065016706968762057187714578546073809004302781171094552759899961396775796612613108762425358443159682245206036431667721523184445513891518643975209172700287971187170419321348946441182710415416955349356805780183836549755065359370361619094413886284571631103416717572952855841037021317389193837496526020083325989281330000682657057333468416666714140137925839956237959175059498019023241831689161290264749308805726341866955204110842060993186262973302264993122588545742381531773327576157971212554457681012940592540505310511717747458614619656279268637359521697167750510390909983193267680875462066546834658233078834166134894655138738789379954996586268206425228412462202123426850027662762323425008434587563494938839310510810663270108171936667270523132374207318472005296569855407921978934036543075429838700230220884856506748048465121579309520701981827961126710248532389394353859041076044629076405923316002730511642654824556397432309612990196530700620785197242008099043994273262358552336079985557784761236920664525060016961314963540274517044550043365414246196272935245196131016626560719897768170279721947201635907976121274943538363383912433829260605106150063831715221860837979181294546255013264602584885857280869096839111893398602187001195928367684209714408299593950422423105538723789887212875809403985027533638279228520758212638447391005943898952008477380805916606052348767851641636151587586276613470397788128518483945011650404387187922677565522652575166039805200124133814251325117408017099656347915572342247370454828995685481168272779760348801880520641802376481815969380364968688201379327035051064802387754752296546593770575479299244020951528362802379547725163289463675319972169312304096649630208134319061217871960102189741633100304175012000060293023526806551474251846098174862959512656615130848942219188251718657353045530528388512146969101506746115834380778127904413262493225054066942992711596573553284926389032938937640441372313467078390574959402292641272384896420179779692719762830219437054619324970091681291358139322408625850202588568348675305022938793018792993120229330113518357193759246839915942402032797818165421465125656633730374529105128498782093014188520731699301189795950949640498250576392252106484701837004508270596954260430978058409740733703879287533238214671303704510324616763474692090303070005532781341328937593705706715927633073369698913400255359999812061663818969280056890599313816049790327728932513453858634985995005388109101004920313498527950665467402224511956280589936076259104317053507556894925560077665467502304602506119195904864099157374577060913086178311259464738356608417545186909303812793036122944455212513521131924730844340910330302951079882029460017911362037265514482306632062344483191992950584641497826991598900239660649760821038980090413946262445186711719695107223694571607967983368799787652258562840940733743223661275960186105066241771072991066328845518270236323261292289238277466843680377087323771823723307297777412672718142368687635246768003430734256551041523742118272664530784117828886821416697950369465368168821016035397332328856719565858203491637308654752708335798985536769727118427292765744946666398681795555060463508204800983440581996181214626378421792662270103518824251654362030581131012436379596161805763577735537067398841590010864038299712930889305561943939486347084301318219072565107261244897514947816041431771510299623745506823254472637510089092459868424058657854027675757090260452048906633485414035761909482484142915116807894558030939127157229119902395058762294099723554144753904387913737749099055633404438817563763105148765458106772166890060301230606918466883873714900945156898417832135771305650259052406386448760597458610740424003578674916190927907887702459534708480543266446786860707873817708093575401807386290217085960158900489687126468799162734998487162227667584722145434250372409606787479398856394921426234197366478961738788592242725943315598622813808961935437268385373580509799352417696024020830451836879508725840077616288944373452579229959587706487130272890046632099749706054881714839651771771265141600067219198996412015407489594172874484338566419943648195286342481844373202097889296091634196251406801344827424233420323660609427832370912124599768711509704772657674686502067508471268465012941784102861549584849607132297764144645074757348614451332895444439382508787348613933416016423752704540437186751399702005233201539165660467383071982523386059049337869666823826821210028287469549665858550055121046752295758355248438994843935845596837918045276926670262437506851758432454274139310092002774629922583334508521791357992936920430673469283107187575143287778459573901859752736262578493093614216651439069050413082230596451713626051842138381508114414892771320045320016024537899007536445397454786080249008380469848138362776687330544673931890880898046869295589411516843732967326740939306571580386702018082665795786968326089339829248196544674952105735027950761135485433684071703303500482922110630150236125882991068484998216035661993084433615941973538053438007505743112711211372545247779669059547464959438703718837220524164074090055737968051008616592292353527212447434361998918567501561093884117143520253831027839928320822770310002036643739529650155375442710780423411110765829213379371498195438519710559860757024746845497354422790539042793452687092601925306873725738129502930088429863156397503540225014796662719391862192438883799416706069470089047887378535321282810730211024897394739833282741486802877827906910885699185492584087125427132319256194712208397086457928716600767033538858987317151636488941988421245676752287306256584591089099936161365960617234117485712756387368809406902639041342029641873044707226003972117789724396598657839220213855029273220710541076539516938087152640058645729798760545538237613218496390913025831498043726363694484839403975954893105390635475765559052872232404658080457517449016136123750748074420437016031068208894785879785561010996703766459954396744631307414102358877978689765778185626238950490828510021158622636740803053878492433559458491341627105619904031088323643205633507938830557505357976258508493389344190371842653012977690565830901672742316600523941408160426807858685220472426787289719404558615871419354360221932489319702168314072674816403775666398885656028449983802822719818412876434583144291261502313374183347705011635917682198828608285013496657760544247090519717003006846570995523598736514632784145995435397897980847278274145984226800581118017247085411668628704342668558985296670113427192844347046324144838679674345503808049316872840990912583229205251462212948505716587894605768369573517036508113225360377889564486606433941513351581807363935455957445585158530422002590078837457350143109667382664801233705465976146901080073159957642911806732355022828569764813283696201625251926283447000231653510697176882535189636260429437906285634289198408270220560410793957893054238908465668454353816935904180727303496672848597557517622272591479273586892002444602698972411769853445122353294692239303292196279677414180141197898386334592122584103438584678011511321072805718665728250728863173449078086110131068591146784830825891040876259066843146384719401278689510878637883257578271997162207071386274610283322325689552358392109603846678704127226865457808496015192265509290000761744429978519278848784525322715794812772214060415889442866060473197105945369937536948498761434128454245495390028047429313732448359910011077308760125578541509936318144352321606685115241162331488512664797282037397313389070679590235711966917800972527769285877590347025291501176381419432958820184915949588687001459802309536054941157358855841597023609422139058339253957947123613909432142169744984403480635400282013412793072634206336272588790645349098040230732856803718818905116720511888376765076593724942656385792125604197368389774080350895056515071247437558816157253444838229492581682028445910951600811268824261084461085052971276501260745258415950077513911613188347329675529128556894856431961113682186613080644033831033821555923470340034972566688000682202503181713888323839880128797516575176468485569449685996757580812104004364414860653847295692137401427422605635336535582233589163879686612318994617111657838977683824147931075161303104950795706120103805719495922529967683394978166865094089929045257901492758511641630529587473862462329528380606717786012868711945684744123220682418611404507608875720323994366841456712925672885547142410381623169290410514130772463525667742955829046964197225773430631582742555288032351538195486508107719300091191036407672627472402198624775763389933139573976297804890431413177633399614103813006744251716110858712789586294386772269282091478443328911579670972898545039031276979064680947592807344351493485054598853577887417633363075624303112410967944294690098924670435375915999137303051753461040512336003847859511948506685609269199968412074600071469373418739546429574502165766986285598067181710293408676145813895330680844862938251350120899687166034755735348211248887522506514590761801242205932247235610555171504077898521127350555086598304685311931737323727136400107411706413357530848760090946815229084466866776787815360630468531454757597128039289728333053812886289496886904890522943780093641114293622387365004620760218801731970650891449586218824148530350412233584838875460355514561604579772391317726836895419827491935491044075394307040423538607602604476892320674155127249195438811028866723716108902044624733207646170033337179275762407489849763543212440257492679332487718636023525573256325371661761925273003563300999141866235296953487834119865277077427400872427445495842879883046016597083846072416578698538703120895604144266930073095020196807648324397761636613693488222441448198820168120792067753316012971488977868982799916342219157972067280598149122526534645536284781047828844425669885125278470440290379286205477970626059801121834678599108147196358258430642441187424199211468498890070568603140569236795471414257577527858451354113019717774181189607507284998681881949817778614807926828500819696007030512745809490233497404923487608836302755807316810933966150459018970601932633647886785580672025492383681735246755665007128023862198979882781084392891814554751981203584681953080684461461554756216460810223505884645893056284888779554230978410157211836904279801368935148308117126092054335678349153620455372835679446224336048308526556081386972071864380961593758061890712125284871780549898863772665966062605226641825656045450876556004344092470104463622943626937575916662100845984492296886221773647947735543597737953632221804871506991636439914704374039804959211572300902147384187429509125711241800432595112044820396332379002252001204034371608329104125721455581038760668719264875369916288894543481659950108954239515010980080372389547614638259964628461343696328514278583760745255033106580277970862562303052975967954386010578264343934803734696597399620387142617963073020779579638511437352405114739534714304961543762599043513983721799821364030768642213330007356855041658899560483425005036336429994859903598785003583752521922982024679874879219781758027382478929827065770287180109567920284385918249011010954479066358839680813010248706926675547087024297002338980415732000058188509162921335711761470398185690530671514549628756980927203022998416626782128185759184998572857389493438653032856504078282998292598498835397408251109966008320435156349788252617262155637872578497140829839366663936752627432594945086417777273656529123361211139072145532352762209716744279542068012277912163843125515564206262959569470965639463780559521280125053979472988589575901018094086626484239216853239988908268132543732870610157742013442020326241568875793873813213163184091082782592130410562979818225515902456297451067084138712500850471803264031737299277866504256510659075360037266522737699839394205885060852628335256917762621685841414800931732796643613530018513439379655100162762408906835965349021137162494933177181260228286905881004758676696789317852837804686646636381797814120220400877130142955178097516501473441099971129212310022217668497117409056457843152099470799282393476374527788453117909829428757600207637625683064895344144127250401478233262851689475122929436537726291621326835281181232407225043347910833556510670513865411346886507791701437029839891732025242535709513955512219352262848826289835742433581674629018530310017744527946492086022254048183825646388663813929818452880003603549851681657960037361033768075097002653479708611771219666514758006782586759131061322951545321293490315524927721175214755045540026730796891271408419213410475081133647351127123882623955904154026365713189573405243917684437793437202387675729807577607441638442982424691176389044262266144465380104907521335107291516235093423250820125212219583695637336252539305222271749683520524623243228390890155548239661154687732143215990604873825155450559294067934245236362351914042351192980333925059143075970235229774065028700822211763799270438703024256280258738778896203582987963558417144708510563017143975304376512062095934010403257804015839464843151906856016958810118358288134759695979780514634342102664846659836557518862525287917072125472986412516263265093848865034293862483944631274466403634568238584912398968319161419427854575074602468878233002222765126764525981209583128708756141480041946053433735643392305094429919488147180558955432207851650113503984427040387001832327022214541667560634724269204829587740017528797151348108356426401737099897303974018142631279164935924200557282772363932862498125070325374789974362505384332844536996490828643619468613045012698498345512994105282766244610013731783461978801279094985150120329326690106489544779016347854613040003976330190082051951288102500287960302313244049847211997173418012657138120990940463546842760355894271637615784320879255683493452822228594266696281251606148645743725398328744122224734990085140228586014421072235011498539087188450263069782385326561348606299939578316502138653523068684244231194776332224841642629497678244668957653900609287725356245022704323029111456600441761241663851599583512181001729257517745052347186876340516442035866468582571599767308337971438033117460163066386492560094575856456594305273807839038144874906918020124136351811595748786275975484340861302213051444197060234058246254772893890286251050013764253042278266476020168529593929876066629062641254070911514897725048371922130313003031298092601878156651526780704150655889066344145448213990972976284946629525541925155719165222269133050342476710854501660135078331957966269318287058400866932921321641133407261612790035331971204762678475774743015557776117191944161281200518744261744135728496886595735977603108976224139442956668856840983402050783534186077133220947343698961006368816575705889345597034481714082072685862397640988248091352616327060705987032557672067071796673225192928396793489231321261248900894781132936137107755255914242862805567501688072437839330405020231647598485919176885791388013870180002619833958835871172928417136957070949046181274633109687753907099294892245812298976353472069701357434930868561084168553835610814869574726902114750630128422814656269234186128702643286537916662214170852791656976015945440647303967395740675699728568674827108013271773375824107803565604457295744224257075680568949034261125536854427776925964036695497486325851123780635848555361242863111818225754373881792024934444540926982937362972110488791963278062085113398220223554265483325927696097800350536793207015839869228429261808568767267148997303713882469975194324531871882409931021895858337711587718476808410578231076975372508125285773074661647431428684036486672552170949188278344076778234898680973214637130650993413512650942504440577016972202189335406718400022834686491145940813250341508136537908230500125840252154856833132097278130027387204701469350974341568733896025295504651222160769928608204948096603356827557260413672305991016283886338546857122905951705304020007635401996121317054671975151785773486137560517536350712069562237967228525777329033290763122834622210967155711487649585973185953499794606892510091141529897977718258517030986102662780946611859883551450988318162653404953069103723554442398507963033077573021259742305926048943082687573315654194290433216932227061392595529705883447080593291106871346371604467939510558906159186428899236134043417769996057997423465010065263275591159802311648284025341527121780690784516063151526960107285035449984946286464035106371962415017800439341530352934001845815341264266393020991428242902749346514820333820839811633328612143586538664382115268104490423185022863430609737580355427986969517915938689794691477705215232787719505240238070921861143876632352980898658432133707753073251553068739184822300897956795717547484576827925303074559849643424933454473042534527916363402203624325485587358239260794457275586512093520355588486739284906368362108130443047197540050819879792288817657446155814148149700943364420767844232950414152071248209965815986286655349624499328321767027141158896883606059886060037672228575613971258910952342366612222531811476111521617400994215586006813713534734689500701131902822207646820050901897192116051562449328887505060065469144428526479790986871215724815617857975992619569740560637081767373370386006454481177478940875846778510630511416352658563561531136126232754914171490640679896292908501092208706427918918812817334868566017771320936697607397109963043330651978777785112428925524714177480348501844484437696944871385364039910916522929257307022764751069796758397372505816142721973930774685571909437242350986487929120319513498932909599360138175893034109502218425440842965247697712455300985170799634827193618144256941485579601484026236563770576996904749282488832158665570507169221921580597517160524229559799687672449691230920947789248410276087248010553589214632395110753244686829002881325557972437935289288291252552035122744369559999988466612196351967172668360664531508915962206575022217832292292481647823961837376835049313743499206918375924799362474302306108867855749551528914488235859813077497215403267466860627220743647656664392852609177982202906395959289293225879695454495046666040088471478876293925097877575243636846856050223768310377203092070886925654486252658482583358983702848023462066693183969106551739375035300610343778320160727795577902458723771820004257959318675733261190555190573691093426240389032801976521482308599757823476820371424878455862433510033195921073438051401546750413401215260498089179815830485240619607049571230146671161831333168895056468513329204307897874139838096091121380445237183693530215286233980378648319267155039786638980744533975174507664328579614209542374492012383442125197248230977797354393276859757648969511125298827684962920921171440874637034536321169060023512244666932152407790169535885387451242214962193816049257062092727394336682414287453120750866578843321136107662722839028009770071511635234979976192973036485170122243958062581344053235990126593519540604310715417540439523757391197903376835551777062733553467209796240990005702436758820401164921476952707513491079725038486897365697449593658153893619953852466330634263937520455913361841944313525478168487046035590399985291690067765293116932667358219645787825416866574797500515383529897304578810423584604253898145261954749701696819218356241151570721517190938815895134895694619780181843503431155430203400401008713041380902400041276985311698427112504083636531354368578958219999317303928247748987098097573108214178710156619512707829334226732896562201417062996780770120240600964849416116175983042357435931089020845494565539879371746966645112673835241873824002509042342181387493114767974087968286254561010532993261875110237347146677121711890438780169743285917959685175066976575808729095173042647993625119950966502837177543262611876793835682817640065915636038516282037787711550992399378257985583844842363790435249714608902458958035170713893473614898693755395105278150034456285390985247887461154776563026483207220545087916895550315434118041038366939277985157541835944215192396944997125036923397260534587564527559084905462732512869467426717874551190862056455455402203219431421608121748858329842747558127435621954626331690291810787283141562569888324070147917558691742468926022820784583576217353969888423427312380791561784752801344554752996524546374844152228279004284316722313921084333485124078831298237463357958220836845062735500815560056455087464041856544515723139681864619262648780821323002747450914923699891155759686580809492125639143271104954103621886743286622433496274019180427660492626832339559960435458213664334777692758701535712434535585394383371228255815505101278992820305112700397520372130699242810289738290542228279353117465787139365944418056304620005030638984267840260323199617116538318275261578260575828061923049907014571921523456078595586560349418476399047121728261738665847457475116130329673623710849815469225490844580945824190586388436638478661428510170934981204399790726071554898698970032262925757582831936844056009814151994171638772960634839495916874074160661476652578624037086837028813252491336112191773496817949394058741784587860413221913376532702869120953760667652805392674874264103905684340841080628884721761957926585520315777705556224205913585705043925875086946011098034822069528144705008706632823328511990740716771862826842651139894386557076430967407789951281679340244440752611960868812605165345733715156434447868709059668658853502033981056014955639526145871289121824464413004435226116701147652555131551674208681326126146295472669481431893872879685116255343192506999965578786190400840969137159420283252012969341850148058825875916249379232580272633120689597231922032348768206640121100257907640278289821943832623085380548270335285843312277523930327242457898374312698235827869913336999801817588605465540074518974838695198024935984106474086055941457564139356666467734490752905038640878947681864002139519666202116350059956010753167679678075359234539484969271216752061300404935881232784068385811995928322617143217598171367405141590745743818283757730753835843018743287541235111129664436487307572433368165662558863529134228922551533686192245565645624429463509483764183337466801494736514068280646564277740309612503361024887786077172563714589567878282942145744227025510595229717426192506716352393591482717814455875936625789458838124744709323950675542084857461494178249437863959053878314078028344907845135347040795950265902823338381611869291301997760296185392161283097945983403104733894910828495705638500864283104966577426142477807251497332079148524348510895157437659599788969440642587775156778379937004631313983238020373981835549245166071467607584041484590293096023428494886861494717899379024401921292063475939399986819053848211589506442413247499035557582423268712248975234899639915223477425729105901774134793860248312067246334932082628893101565896685506158891743216053629587434553878369850587980396333782691529968820001916486178268346266146842652626728558470384417601606230569829992020024822864727786952121749077202679722769165243308805838106270481084666504677462063870935488769776994576028898158407461777325143782516518151388087742069849355657135282776539827839401413193319073053792124005917745120253536473926411550973128351291168101329786603399830816597257376455396385226548852422704433069379190534499197708913471183335312966291118953178210320965689141265757584834806876159241132691042103679150087303164354102513518103753626834753647835344737592607267786094806210345315984708302694463031048750929254339223682912896393184270049089262735165688105271595024568465230875511653175182701537780872555830796884059383561285018649184189428482566193888629650989664088470504663512754767559183972460319905033588598737338970055801094784052692441568313463686869573890859302748638959262366876933894925980201607468678408568187629062121091463334253775957284723832012810133677203543546962493827032116304659719924944628076935604533694125657207930763259897630261491704718185110386487991043368845200906841196704592081813247740726952416939791174859379034683566761943992210390226910397979254043112698085935015441934737043407852318020290283556273017441476819582883241456937945718000682020836791719958392035748420708093950810749458001132777958662928276496635230627378955640719016001288496085556091129825505994678959105382575449668279314785628398623512866348676311037710104223763756050448348389949181460285514756239807893794822118367473176856358867483512745549363219811267352602985889686313899382175458244609468137383262088854395463332685146394009923022964115750394807307014577357418578592593059969071402095938339792589923054828085731616657199543665564828629242464937156970283432904200149532685011910470892789326084955945030304804653956147275448438046878572357435851184895021478807435483512419565874392514323887288723025911249002397893665198721601571268004038923386106873873140833670922419058814066815977344982319798422519555227051752182645421479802627243877498457709301096090756197100440689949006993011310107210848332327224616059774121706130582467723342403956333066862926312893726226489517405643782211475336483151629149404794388804473565621533695790779419927608266062896944803729177410996672329545898754414886861342029406399145780260782697142728432332929181453520697734824871699285703971514422584115026529230611939937543357915739421032327757257037304199855122603580101691320770520352662988139067874944729877729817466043235035647143374915889767896469850363684702139335272896312196951321656351368595007275594732065641447380720626268208605284317232996065919137422191137191664880136937997901381207610818380893772999583267836690700185894469648149079451801255685729726972144595712942902508441065628118653409232382785511011865630470243080386141767460952933966300787014796408440581006327877029075775497496304208930426100790592391734072040134576146155864014648876666196309261992627182210248386886386792158152523486594809064269350117348191746484194151195773135265370027626637491943739072518495243638737661583822087643554436681575832584369933484041321598722727488093744418581007313551798920686905050028426752440055853797859081810015576414940367366964877678937104925657461309098612820120443715615397924462789079191275562469042536503344701219521296413303532462181425164544396972873519368753115090264324018438405525850190425386771315469934711876775979960128658273337395318819645195564970100199818994494019978316289407304653956039355906358950933164247362987968268912343588055970686526618009992992276425779935137989521948481395517744244422309672572559298946564365936984585121467325833840364959083358287603289843887588363446932524199050797063565145428814950999351786601877685568886577680028130224199564927883123061964948659374698860382794456222370798784967331804828230383141308177344692728190140984684405726882558439101648804365897459980485640171633354486727810366547882950973014715235840747466737548566456732964532025813818602966988055611616304824780148055016467948715710367695966511638599922452072187188196278655025081053635343539910106584235215505463030580756949533005295357929893204431605295077861879566461949093264097623576564459532285590140390082647995191263211653473509516681003196520284442818140814523890405206547051351611625184717633137684644776630563916242665806180546265013177887799830602907766504716891044148654925200915763136851383556663563553379743230805578356498532042731374156591910862022061093491757995504018824035271144548744622824829148113524404124384353740475515137638962645272734289948947775394609059239315921802799155683022078682529611351983042834343921463683932370779143047589546965457856513323825930690764864368914029453727520013588266668428804371478034093840609284042610821420800810092868132371322821478203912690472352746069134198971912666567889665294735486953974800542842439180385188229816660565502503833555807733524110619599979514447588032263920554275801259345979334609526506013655335127658518854122075575870342862562652567968801222283757867115578827043038209475763004953220455945996395869706670359419961674024471242456787255993376272873980496383604450354114845098385441318361726967384730022755194310461243932596938414144459163203299720387490508959917049216480720677924246300345477546415695783992215800250544733123205143876679516906445337111771057542999982754003202631583233645538716209873650170393281779188190396863984186702691908724548014429140818163202565596016708568899404336796222187351189705104577621456265873584699192071577753021600188511506926154362908157589067179445232525426391304429008089255183355264565664184389067352682775928323758206063137482069100476938761565602531668851537286588887858713387493649368082712958717854323580310194811611568675933758783818824380769981545091772722607040015302387879882533503263588544902968690994772724559711352900261335544321296279319665611545949294952339924467368687203403420234187945035865876459222286344847517823019674388751844394493859618194281463442422293720204853940346040625939377596659885407643387724229907424991955639682378011720114732521389512461180489797173861618146094672952202932960860209587229374491775125528377925931888354759167160187103955401496538082311689485665491593497878924184094091138893525735496159767056765383219472838223321980758757882970268916955110689737122078494969115918184520351926507923134858793868989685055435545407422756057776987756527867846485993469791139028005057418736010319421460276413504822992337629790960206880306492206694598101635461394022472473905453163056404492893388411243084427221978576859816221771749568000792769927243799196282627709568483318753273781194972259498113479699844479433654730345861312485298476306513480561304963035843722659830663519506566468553446807991719941917861595760187606791185539545811643185067082500825529509829465599479400611734430079407979002121183694686039225310650885235164353693977849788167134999413726956696570843723014395954676031786050539015205126109088842302485863111245111799306317641880194979170559359220882515942350536185296031254458119423921325728347662586795337058440020530851341577238042901645632374366732152180075438166531676173528164472962172341265852194823975678926654326316261380235913361430012451074610806431265798806626726670602740699386154576589798779039561479278391517534023522051248850012719206245531375497749581390877381221699033362326203624620121944629589028371364032089405072647436154193866543557341011267551263906584495620727006723480905148093328419269797134777159402646587334645949943400020506069090171735278356984247459135052585113303085358969683474934924254823762910779482553361162785150946880049939181478979762329604289355393007607544808537201723565467492526728711175903395741372439443058482812138005770508695923587786061860340363898770335389437612920837538093431226780594630467169562191177840278575211841708284175505718196195865315540630739548968528411861878839546538151141484613511203685226783895694745700997531823312164233124108610821690050037671967404889654488523221358593821145931920305077238945404613603227006430807408576741650372362957309075807381293684845421710519278845915742321223074463017922345308032354836549912698666939443188424212727553845036965927299435443502910088294596645957930686890304514844019714154657004799756242766734273906799848839953041939952559224098531877064944585548082876436872894451428678706429781793543417289581868034356441407975710049361228339331484186578177396364434945888819662749893465921181041272356599158623463011134195501674602910036391413559965739470050842285073866234780012594662920084809186390128501646580288881618257046089629179966066414401688757917735734522059657875352491712823631600852901689065206352582496008809972494356891184676531066230821853464337396670416544041053756732808093636071054441912360335306262529210493920688936967235338724693911969475812257637842216471118012188665136560093912467628454338367381120079141241802126101330707240822032756001821668657311756608426078287719240812784090838512295490090551819438567410146511391487464405088125229957565291221114576557936018282488186357114586996090159725255306824525528081565401455806768662397601617079614512224398452314915226135704007566432425919269199517880276800354926643734351218720322312047206926616093379288570665988199543919320940325153177915806046121146983874932845267622928609499530199791425733167659119478948248486855590708351477644937237714831718652406801680256284162979848663091559799599886359838835115431772478277342905084678689800954299611034455805241364959651194155850959466140872102274766140116093599574740942717158446171663154484081588656433363520381774785237089419417014233895313247138982650805625192864499173474377204586765124732225350660839964612149792785076495679190354013496652095750715828160687192683055268663695969952491623174658471010503263953931172342912761005249648038120929710571736270516809007329306862328897953216734641223729514478416214112724867709438544917939543397420307481986806607282417116050169047741306784738713665328012120250943179885890480432942740454762755068817985192640308737567932147783468162044998783931351109648001972783154466530943252481566720146234040625448423977604710206138350171920191867682948011455494682422745447394140203398208604242572725828289929834691253758929951633859657778785893954540975703020031283112736480549331342963768426679296182536267597032795848860124662420268768533148142376701785586244649780062210704097115281220919703998505742036287481546533306467706604895829720788536808564275669565525658253235465518349305173986325685285538558919238965128423783437871426713007335368533563578625396435129398270317397921954792852225543485374936488711584513795991827941047484367935557743459449795754288755857760015058329490292170707584185814183767223469783615220805220711141915431556623969988882301676058949003377137007493324261245141339773042549827130322167592249237057071515300062450794535028384007386340803367123453979169301981480049039436854263432548020297691246541210206996531807821938017133101184624196789891587227704801247068566009938552172699060388472167837272665657689292261484683344866510575586940808935216948907614957561459342732715903493537345492108374978650831373688996620611252385588053071578459514099125827904153229530475504056302890500231572674812159427520727205572608913384812755217319612676861106843385772885682270053235431910883145145602862838321131441115967132652362450281287841131175394631870868585996724640641919464060806632139541888053896026725445272730204148403174696272323799898855765373511946281202193165811224749659338071298891065945742310774457303437504154624854073946358288191888194022447805079744478358031849551649159279609396702126196062630482420534777549122313212642414341003842255910688530333376883544819301689433701827040464808150746586833733794487018370498676515148755590470936368743776374885798908735801591185691521810063981577918319870164762708466439371077241927640434561148300614446444554746217027374863514757268964676047533744157481170147602774079247223752313144698318782572118001329970497543849274494319574946658554939500920615321052250276504361034102655027776254183208721533699583148045600794716878165020276080345281080424873939678848958667937405574896374710181032985693431625990444924181209394786616391635779638160679115801340738967304977622237712825556563724826061250197579419781944499774713015740756442107426187330392108044494341308461314357359124169447572452011265137292329530040262403558963865585430779525075844881853855683358782836007284693964018799137432367364700457906632592543443581465488918148334147385864860948324974058962510037062857303401551696353432223057607941159626592671738199769658456260090178659319867513098400013535471368618782001467795230568198823768039882288346780969768111789479089817319745022479723834348844494226986201886641091974202402021761585958407453265131001228529228850398571820591718987969660759665838290388502290244209014350065939599393684434419509939271690787680081754040355646609281273103471774659968434718817547730813105335435676319935814723985343173017335045255041835044491816023923844531533121391576965132267220865756458720904442449038120601006180311954999755647597424676676254443722710401287396082779124328781004577643935690325700968204341613612527559311555546179219144051218908907428256321894435304749991338946278824348662453525988208143280243444358588186059019023898642888869590513200050638934469723381701406505479389293084373033700258824052911119823336499132414945344018183578018032783053441403772174436847075791582635719894479923577223740553019537347533338439270023501780940858562932113990584257746254765694199238472937292342825432283017953027224822984311846658222383223647869264804911901063717877516439348163920116692940235349306234053544156860265816595517561805761061361502735143318150903936623268786772893557010577710928024473473543983982988788351967810038285797846175837120986704385602936236411382428408077984532181893120424650245183248836319728959174526420473826295055802229339188491142319591930909586266509145957050379806563078358652808803140242773892745483101873496410221101182847732434993597995571570885895025088147916966708597951412519932765979776613092896318930239316342908190085588193323254722966018138774889268657123798798400804419451765441098098561551278692368736069014667976691805362286336994935581167827117174046580946552163442061917102876893468153942819638607607979269880490069903248434962050916627781396388786267078633619788353056548702817772787710221029279896504778101845215996416367177348675112818037831051351431711214239107839002546914474751305539706872399138577039288365906886970078536767692664465696234798321696959932296589305696944532277188721466419774786242475336561789845775408334711209856645860069452121306302957890513639302202786682287954896129619141970273871878906364904002837373974251278499387475734581106616622325147574185754308205117402782439227781709196551469055359236020826036590504463227422410813263296118867598682394779578667607714744175233252301556728714099475057641395084288903707191813551879191560502194905167174675599045950112924951309336741693317629153443498221654509988137746844601110687624959785641391423583206353798307274016686286220804520735428887348374181635373377279404418997948166156398727577463510269890595021464663063689735590404615708489687224033419103903892846815649102926859350787643843044262138008274200161222877581804141128789785202921427880457089118743358169118043818513332786642675270651007497148846727945152778929562314826636062595712874111128358686884127019523445020262992312558490903552535053918129745258916861369408942926649026360468593253117612336615315262836372555429642843025478677990531099554963071398136100169740491031743106994258431639930353428736471514484702547676321893802976999831030303029038126527364161938336720437754673761366874132413471514150832400131601118012574775611024260432723216966565670224500099676257371298848026500312447552434679951926713942854777478180142394641417408415980680444455167885839538731985822905975270985591812908214098104161958740721694281273432235335368962533618246348212384312699412821392892722004476102657856338746933950982950725571525305247477752023440650809599127602701208096446062154036944887483829285033620220176458817033983666156379859069459024447960121598686037510299049453269410592313507992277881107402137314845682797075842547167176228591793254919141516435312057197641246227606087202179894303584403623881002904083878548088557680104904098502374644122327160229125356454475238479830245839938635594062636108354755073640706877618789189821856929957055022699002468315916576325809784311944046177135825713960971412115008105752367759307937750562096752067875550788877768713832104026606251862746742171757978754059424935788779785799538598306513425632853438939144263471897781740499157157657251004424084593042235536368710189253741138010420264926678427986512579959987090634567637870408096842514076414378130522735204782880174776034987298363852439336483850574103783140126744711416498811238697773330059961211489637643884209542517396409318840007383224923147414802177367604827239842391652736672818017578100583990150469425248307428873393155553591797235086124216855150619633225811085834909946884399975201236918957161754313420514079818104987916638720224447640673103149002128222771124501621935647403686092761370964864273676401675442360100865628779034737666172146681608478149793047754093208283759925550885212021164221227327180092887647001088156882616593999443607016184474821201798358543119868345924406182797587202685383592663357178690902606060829933910030149650515669246920793403293782983865835353001060814887747506014041424592413983265404708175413008866919066846438890755980016042827644728234270427230054399790409233346150415503667680174924965470419475619817190675469471992793404024474264553372229133454842088815204909558971862060409225560677762963471422478586516187162137561488478446897521751079859931453721294032447051874017297856993315926559496779993894353666426667669701814966187872912402816157352357234325552145536948833611740892198113096556834848543445066353120203888839502109988738413725731369971425430980557211591887045551929503395647558843345628546312778110400253687599106685988055464894660320793263679528691518062586502361132542060476047023499159986387170776811044630134111502445805034279862063424167494074364160756158259020898133938514199364039270086830010259469650267208653532194559102378072319185154606976878470526348686761302362949493503383799437061856349931361171237401090217164846058777780009970616315418610456949340280522070725567136560669186672123411907507934386178355070342530583798698435657967406476185801466649114200982287958503250375436958480668409509212521080907316609990107841206142898318566540340522004358350848408703759335829979208661968333311285291009007267489245044037689232123607686069410943518797140311494116628133054644845618573518868203226840752483678125295530778834621514681226005551964737660580724899769735145884073520554356845783102275146891388475892904690242973158719935613272433599838316990748981563864473837606044509765473077145214986691947416614737164818791788020182074640969341116321889954333405286195592634989712137593486353882691932030271130401481182397532944782030759773977358571399991246892998398267919726680149574904544412560021912953159389602426482458863567433164551971412962996330358478579585011395430047176992525697123810155725803860145683198682121352919826662329636015575007460174421993125788200389783330062258180660403795703875697064111267518701232045406272794372935068093290535066697203139842019768749906921223480545017412884181724627959350602321047485540453948772099003605782088454282348428540397252708585743250799019781282890435271773556779436472712145782579974984707734899091144421474011141665962286051703660160472844763485937501049968870769204604164319691843903961347311489109800331059901621662330008374208422664869504928205418913156633633311572526663699020122755114255079549772539192501348776209717548171437824644752436102057535608042515066560177238293747443773283273702971185431681016793465430345482602610037630803160409240789619187840887151553108827784955997401488342284030249975797354087560202469824321302210649671455056551943390140360308343605105895214775521085940751265896004942037132767726722826943314664659782616354403074114707893193894769224577338671586588708414734925753579089530499454715502924322408158985206108805077875539218048646352683185998861641233787591909799573922328502012032728803792314754333249074187043063433212890514863574924210552094694078821909409580832906643630959440418953886539604227616226703253516003234519590965511885996154497018022446176218178494366180068926939518306561700984299995812858311621902039542467426541438631310776011554164324124714365871476838522377317666850386534362551954900161397372125018749784454836609893608785870811269662105692715265620835874577005344158850900705972078017601726625380144295431623687396724066852865795015276572123824504145336566577914739231782192490951767706478616502787783114766148587253990574683435155804004487542472393966839081642042372083538869680778019708436137347628859498543789276383205770791606625129178535536472988417948707772509437052990820119559186445663558991718033958473626672096788964978862819142821468258871635675750528740400690296740425279107497227249353627404950512571013217419731231963238135388647334513342402927275036304057889121024674259772743787946751576705995000121313589507531344249970402076682505846465012828707837642693541865380788778609468944897783137009344516667459861777503278555067044373172829678645498915127159572670399920318817192231400950032514840203443497868331729306022662367483644951008342888231008646420945024016646373105868760132547804049957924481227081206990313001924662939908452640098581449722398400031459630517763991099107403651778475645037924597209464496711456215758280954392392557346915816942467359229093215546348745764583780785676666987055397993017794115830721158476826961393996297963127871571076751055416605823255145564302109677082986222595867022634905336326461943895302172115357897010847869290939692549800047246423195031619950482044231295040584144651819280514629809337229015849304087550224876788938540963384525110552602081801292188992814368924176823377217857203960659229547404671681405170190241443251889792130981387690029197548918739920764612750532322401866858878673519733508401134431600777137758168094545383786754099074099836011871476048305448073553813552562296520434307580030676531829030163659108044794284554345311996890656855788543744379076794279689823625590907163997251037477063039720414690307705922589653177731059001763557130895542887457112445202214509249077755845438877251636775204521670629958619478250344689366059201308224866412356163583777959065467770750326273282495376588244322099989418000431009789042165126187201087780591308265012232496229562276042224723199690484370680849425344557030462835634006728625429435757246755141752326787834016573871601648750812292149748009421367119895116101938557251339042587506536911487190171497785984527982791471660593173604646719515620692315424260456150897571449701674898511321868872877915149432814677042328510473335310522805066444369695204922800395727729261672622770137480845319600057663219396430259839327702416397587526792237960521586226245894474540890350979231019806886895559682123092705560311817450193760764855029056671751702233443936051995053404371674442795759977418498037175147994840378869140065144975608184579066500198839770344785936118458764590279496993908018811017413216559358524339666461272977838778073592474365020707977985555047512765796631432034960933500832989635573967880184108257322040455258169598045166894500655179008416296177245947768862320533714224788009520592290741592380485439992340322277389340819420428032147204806559095319788537628300138841961056999050497883004640328330645274992672452745056933102698981686337611919332807168467936750360075218077409177695828655656690369550736229104317876329354380418210250785251261669460987701670610656214179839919894590894620614426764235607332208650653115293912797941386350969940683511705730843978871447229381053445656842814112097710321778623940494486924996414678017807315513762049401406983202107552502972464225951413165189246015934889252462884955642942646838470123306826366499160512004565323519247332856817770829301787550181728184919886812512882143684360533047614126957306805696188305626756455271561409986876471415012870021624837212889749974808546936094778288452124614701311706913239452791343982692082688808756792999284074065800505105215950308012970431190925697770835758304433392045755378397642991742345896750341295416998060852468999586027292803502458654726409680677215426116474755229972059593136332359421941643825391322267907065356023671378343947062822274974312107434010393261468543185661433704533643367652489865610178023384774610492138117705038319866448452191552560126491193410285955698241564197732302241885526718855343277726769356434657875462634749502899286480270010204902536064900201955740705863017973746434377223056768027550029117158026848927851180379198910744862299008726028241380519937507980184112452814855027639657526878005999695495261514461967639254060076816908538242720575969637715840168316024565322561924977021630295044149410860604234658739653257808303953065279544581468701832164176065175666566347540157284912759666312579651239321911798586806230292080087643770199504663397584442331526264874477873337580819135978916318475059572153030982390164662126329314652953721854952362087987241282547265774750660373342635135943587262213442369911832846188925046947852433041840805861382131628139231914199196093885705001223993035301637170148409898784116720550494946469700620378453837026788754590821490138458897887831218110246566503305670990867511618748691305808975150645857428080555016191325516722606695146458931820265704501947676723526777047974257105888045618893726733857898817444230409001412124923483206612418520167001468892253813661598254362829806117366531218997134820417361639452422397583618486593891491396314342764814817581703365154694332833941683367110708166002086094789977442061279652141142897800480428041315601963116680698686894243803899377690901265534751472384962366255759441973267588231912743229983895842876933013299800801978317199272330761160335607086516219916732140696540108487443138666239620255741626899170110228912664055078619380214250729983697323914158999257980898378761380604680171750016866519427848215403941004160129842933768212746997767714015074574013659866590441129256489240452689244867548364143030868019881126368525941941889174594792006944583532757072963326000230565948219026745201768455468838709005814601972002725161038886731180853356511172869334849167651181997749746485868360506808289501590713910512623359989295941838098127967195000624443921348272437732198980643079913169097721890741730977672164923890325294469204990566829349348618340200798901270909670262074498694090480736038275651088001103204048673804219765689747716858112882159072427928757644624598030597249367232217852082589511193424913643939019145057422099306887062298221059092462895248595244248577491141225617456819115051484949042386759807994913609791258819775485079766994746284381400279096107534154587530202555316967220368012663034629127855818488450942688670905034541737876292129753837219619319471968330808773571723441011804017026272850180378334691857041009649490087366827978801074558620079006026226119213983287894975776509715154077877490598610342779830150896504966010922439357174760422772604722860946067275672884579046097368021212472237965725670534066197853505752524976402190010267954314637222536877750963694527048791276907763215187750275373738479616159266664044226476179127548901719798190817523445990022848603482948032224531629815869829599939386668749868772952533087057475093333424537207186032354504104849666238054292192488917954667741414052220943343592578498124524434269314167894257481581519049404921415456650328252984631543201673608186537086326963809612366519206998293080713261446838010244135894925617962186502381062987564819951389696684127413358676635171282035055627587655817888304466720629970972360560087052355590225570538394546609067723207112248544874261899081155655722281482805767621583757372233019153908032503362948771097955319982987391622701027369557131409964486627512233500848083044401440432688602152237901388519224149026842038971814163173024435486956305905388015173541726712746396590051782151249059348121652507384809073947480722458534824642766348962979490707731407011569538736131553189235956895185161831810819763075696234392992542454372882462151187947530307313325449611764581450950508147973407654272178215129054751707028016446851957003175733698058746999111723746615167446492359502701630467622045346055215829801602933336382624154577214958872797330620217202686553889316844847754849848895563277406517895526931059162519751966137928124381290305453728775588130229724550288948758895444854827452793853766476481024988256760284838442019142314839770944698653749900823668587248727439470392474847860125659868892703729717406164204067699418159558081719821964637317155694376359047689061855598840073486294463730653591631293319679541580819467362920632949222113955699937954500459454685236738470065687799200272346232946939934596813417997670927796940158322245917651880902385035588914166287584418946477683803036070579057255659189608105674795596852381846968652360121243265683473005276004468496264399528871728591165802578417283302822246827916519639657164578614940262833913279802091531243386722731068207552119039377208029795168001561435421634762778451800430607696304353578327992821843656862573613493296870048847605666427243195177168091706898662053018271612719616055663843671792186288337150339901857750880864151415571772060789005819267985406952436060937406723966493244677687087272607646190515524971078285210871082588654588283940313213275909579810681035078608990456774690901609141884190869786082004819204334569549301805500165375816608388908778734103191077654141590583495191582898258314416798796762801483534041139380015384933306134450275310864598630675204309941447433740382839807223711029770828104577405505027946390981299971120403513068447510545186297131687005503807896094657181230412103377991065626623602711985174853177219839345581401009217324710876352494367973736137362748161059897829068864419717980263928394648664044632345591808939906986677887578249915052707911487174617671065519480046322546166750673762826783193482499953449858522646755952000401387666047026843972451683816660306391455761816096424700517026072636906225376160770780683604387647765994399720105564424529755695410637745143592023003389314455737686954817792492483521624019878158656844845894388299205609383103051904808586461141184394831665053054880894582867242177605837876755759390043903036284968469878360744961027439575363499213533013851785828673956462693324444209151822058234187885303110234200938746164267827356325130266631153180409770308692669698448984851657830781076878919551683513567644406911557595786610011494884160673365824355521722964320281663735612248225033564376226638707321253753798963497425420269356579888517063849517276538084579794687226835093342801552092859254554746675696106426360518569397309544533196262958568688728087686424555571125309744661444204745031698402681747236799036447467647517340403152933179254678860471576258777333668910314213439090504835464235054490579530511617778401690301189189045324685121502927914197839207206565288277150596433552042520547974749507164980496255143322765474253286067095240508984829524973270611046870022930052665277079770495282459301556164796752635143293720325865642671618837080585143858982420145189691124797309941432133777637036705420624886193813528357491277363248216281564826101898419647850690047808281504443045737118267095346655217327511186658013950828751187048736046344025164159085335039097373875975453334637676387094663013719379849916579722583645666224095362135173460259440973308782179403318602495884787178126991875220343807696148045158554219892682194934083589678220639444932319944413068401106079874878643319657547993761070212693762929029865249697463629800682231819235700083382997908112452706677912160052056789188259558515424404623703112693044088849536697831071950369580224103024300914897074939950393610666380622888717831073129369343903433210078677033694849648179918264345454507074413762797698613384447272992124077539516313937236716145364396815680426627153647169497614737335793153915537598980412874830549631941466233555886343222300128203259248564125997011212867096770961039696107139597524641293974463243393403820070988300866944237854251699121680941950207725245818883277981945860424757497980456229129490147721091057381479485576377764691556786123646194121290755170060710673163181339480429605195344053247013671793844855682924764830488521973554576071231478578952420775199142851896281118275311886196919541313594475772556123309760317397105939075772003075123018909408515550488441396963180320201027572558164318918004212533898268314520915252192953502985167218888324881912773871493473036832620835157960882969540250375633354928449988484425949175221640460207032824996088615041884500830252479956634998909694646198209289217074188925568597123648688006386310424629406711004245280094366897037511633634820524421700514186991343616036168840275903489604755896825093751751708230365101008626265326078545151913980675254889585647884945484774256771506403656488731196815978958844197579687944482981218368380111042074991815353292775370808349599064447423132490174530585477441904062955066192077716271707431242739619462060548647851198883825102901107951292238035005156969157140288969315379429304363704022322044121509443164006333755530667458501444895053940713246199667810957733747630629129511374942897098672857333074206574609501495075689640272495889994670631520169101916139681076308942651181541499938998462260791859243200537987291388126340372883423106336645077940446635314865996123298281080925406805086342826828516908076969163626644591004474813257306437038161552302536132723909812728631550395076058842989484700740174310779038785744558474873645494188893690472243198956387836497507568425837821041832127810584656278765958880204596108752315186701575339881951999770639420533345486039455547063088421760145285031987728722807260979523540822398353287899820768642997350836581992808636404496864702308659879373584427009206304256323086091965734509677429960784793632621557793411532193867283778035407188674602572986957379110650800471997707668150741851385079884659015498735546171975207654240574445879142069124915210207513961188117605843821850431644451817801392061804416024171190770004036598246166079424804862315987957738974738117846884484977864814638031207871979260727464655799802836198271900552447169871121529895642277245401814501011326934960330023395416826631833798933981247687660799748907693907610402584168764104459038691619213913005199996998484536463271221630232316001320546499025139804882675174784919280850869693633229295552627922237516062500152113498301310759689516663604226077769602895924379936522231493955550347892668981573050866489030253600575327586583726043534222917101728197367206562764531111561924174041463658723750653646365790947149812736527511520790229071751018167573445797864355444021535300129494156728964132281967531194674410641258450843480194591573661675507995911225881915152776125452018399466973770930611971675701234582571852132682240474734092790563613406526649616622812725333489881121355288192797169326770035522020248056699811930465770576639799814198606260065019731396316208524289281702285869799594150270028177475123495263941791121612020313116395058446739838057658732675865355030565508010621146236745915417838307352793130263239381631869722599535351882246418378138531316026144457442361612672055034962189112551558006914088611568421516247247523631226433471380139533228320084627841998832788588515452735735729107321865149809635856806930560644455049913468958761538659367538761035854259691401551276623096345058808409437452836578518036246859991477577388894557586960340909624513444074432340580232235611655158022868667359082758264947157953100553792697127346369926112518959429220532102223781791548694542913464824564998152466311125262311930315752473452668204955787580764714677592809911934608944477247788750001947294422094125685479633411003365464137298621707363327452286687253985196073503512639057526198847597613786506251466021159462657379973081616184424289209189970162685104282124139964337804730043631129093899895497884290144368964131275730669756667268097571185207018195682921285066840387147376658366553189099752295436813683907467985265675521716858081451416316298035207999435466409259777186382193665016404975719558981313648971729415220151901344792138369781398856398834137407773057898901079858098625311319087264799905182067653983322798179602661417051894689957002176106256361227204303566261136885033124890386212925610095960575282305934325790984341129379575813186235623393009672139542699230627218034426732217778359208684292937561804677900713397950984853110880095623451649916110325805219554303582042930593512298464160680284566602553283554157938726917036008577469936102373666956007527940620672716884947073811471035743025814037813390872525884929207089480260502748390526655899864872282500324824281351570540045396475003510832117593660479389855937309031973644892570627230871261815492568229016266337923311468099554005224661583583922336117216233762513944186812017740778334542829648368604599269693113402233393454381716194494545932755080319750873392890082500460798977275803362702460027567378678134016632421250008230708903645067083393775189278010422893443011992042796307184976769314159386580081726157167811679044169504722350592717032428275138209692618634952796698422875616630317200276572033722867091923029428371247312363801605835030450032443277085992319505039483625238685916911885224488351272087964450532895793681471969627084802859951993042075536880963327534812662152308636574330679897996883684733263605123789586955228507598789234169310683949747203804701743289420802418780798975653711606060217273499748521329013109802282870303513668717884681014761354876664538273490820818735013244218306077498288608015532994078342816923949695058324167049406854806477803634432640068288668969086243753892817132758780092218064185140220989813532657911938437955949316359090116812066342670916844814623913494767364731736089014504434755110859015594842582474604891117447898183016607945402166464233295673826189091380253724570287540756722822873404627755950134623376212615099524245804582976474034645789673927324399534311524438058631522245053866346814444371520019924760599026185643161171792544455620567084554245384466791178353000066461699951527529072536834509532402854881703603685328532497752858282653795040871443620972137180370554801083637491820015257353839904494483075296406033965540850924380247773147800760995365255151564936291622646539024610480706408159356698830719194768979156724940668344653862298807961633425664058265345939085549538953924537133146617214618818484634124914051418178510371547988768651260644848266061333816525952559966199356063093417595740895975733682873463343946394013731630334676510907541350849681372475988940336635063952053341294963619699860036426527922726739541591338326127062132419936391162883945837719116775139581188507741309737916505362431251577039924026084238107073254753559669715165275301737035380313297697383177483068869364059033197179366876593361628821931943310431762648208844054511026455669260450090963847083613650900221287972961300156238658145712982958215216337125615698345667040465808589029173498077486145890255312313928024747163688864757704255777162972864642483489092582383574088752147986019849212890355332440052880478861901100078069903619370554667144349271820904547403693174463591468009774058750116313554083760797906175347443068099301752158363144485289065537846538208900827435261787620260958301241577160699409620100244382415139790270429745360298280480372269969101721080632213468841525250159534189155799890182295704462099886633014587243706582308359208790911833213532265351513519110737575093510200300234306903572430380184349388040142712318457636219086454894344266595797028164425828501158261138636960357187483628598058367110445314289490659835757494344957064703039610532764612507146967422071655939943213322041821846416513228515704706583897384890657942341042045244394324185131277167846894132371040746984810347395813932131577027427336467823050383310142330871194879808811738760803449736265935260588004765755316400894042960950332705335979515270431689634159241033595094454835936198181208544194379903291890909953875669046435434585292528330593414874652114331678390451434513592888612085584502071764010826505722444941621534890738733628142413140062966890143598391790948701585744589552531358250888793391774392420123792448580181489737041531574115602298676180391980332744711303500492892604644365524976968552224251178727150097834755036715661666175207708030531730369671812720531855463858643369045402134492391180541875085597824603611614629821318884608327474505366944879025365039984553526127688810500939200984651018478947230297626352964915424550857627356240787000523360992645502890488291292210322024049670532722956253937787795406206596091002046710598403479557662233882023629723591429527720188403201267925912235671789152142369092837043729962879728764299555663987236367751881368457819699067669628504733361570325837404905911008742787926586410828033501472926440401566958749014403732530877982922904137365476759963947132009637579945864546816031900248340796769855574890981660644756834537625253579122977770512199966448772193317754137864833450556220295859446597440472087074429390238348727826648544708001875071865309153151352784529211900198558602841722028903639850985664600743522181874390111728005102565424220984975098617759924308281559757913812214300611220981069553741487038966335385427749327738140764737078536739462051760061465288592219049685198996942831776468578839606701304524433693411526201528594329711705291472203580911365126848368393931063731476135642719594926559315310493301295223397497519302099345448259059496910716340098421547590057009385112964658099734206412143532161906113238319351640556801430852386480182155616799938597507613756454207111056967476351118383259395004259117519240092670357300869396462076032601393848550692450804200631783587132939300611530277769899555087578729840696662305630740929245814657186215365748547742847282307018010126912724652984177166020275896127058049196424273152409475873430109471761978981396726398621620081561917507980687071273267292418855651700899256011648421831120506913486639868088880321686670490681809379757480915760736709710892333240168407648241079105946770434209428782021137228274473301683083469521895476448347423940247316117969651799815407353637299421617047074992718701328886897528042019639771140367326473002718315672154594185393668783318416400146895559730512714178803768955412071302420476273580877228190344564785258183129054948273689355688696724141179436564022787783589064669033630289493077089757022682352843903856303417184234015850241484714359557443475500758479611959133533008934749223525361917850133082489219575835092303454365905487765589262008703377037435894650897784827303696748882579113553512011973678490502828883064778187109280453302822809021372333117102709435480792311645855204039585008216690570959559688246651801164840054133251944111529468009345414253010735387625098118647598370074680015027225783413094484200167441862939201495463607168664987917271311256970011415204215680918429821823252789524231384916524830392042596894606428926158901200230490055799856735374665579881792378486123649424798391444746272617049306948817778062070305309648508115292149523987589736792559787534603090528864062694695073477901982985464174665466152346599402413992372804483574566855138260829590831307646118630673119989322729175464757215335330655797024777361402273412022439548031789901493577202095103595140890560472095377564003215648556472087669634965099889330489245868857203305470453966777025112039647382147089741005972621666022944131723894280273861701206490781941584458392776824191817695204362440130174883532691584329559838801960680355278505131273760379313870878470493905781253510368240589728684216217253942695301258603748679887293560827637988040174483722665421522265422312166566038943176028629407781269055181719203561037194639581113392778277096331243031704877728505493605807776179369473347411498890160170161893200978040019537688548110924837311494301150809965535704597930171618642350759324043877097869041193604119362186002017915803235071295235118765820996857885791536516968687768200835711557471015804883576991798324228558602642191656335301466664072326477496860796919277134835587191680047959341463955486600287705240985060729884758824423480577274649239634844929962932874064486832929590551698299894963807580689042580623436006694607639315769286488242555403550871087002982289115695176135616390808900670429415267486232924887862450791964381831147553296985373785809326547674592595786269628111992350920972551894700620130588812173792703610685989761625094054323801680398002047343704822532389003254127045498546650147978651701999812553184140816226110868538655274187552757791245903687414315585209984465195767842263304482369147146884215876870642150558670369667768872648798514694524528198993284940733985677199380441453598997507105620943905842874969750396888945461905667228729603042204227642195505281832311812803437556374026160026115161417878495123703918310679057982055318748125973651405196652482630842258234513047782001260475484199707932386803149300011353872336547055730690698616579460667587822843901422476660177139116899730274003611838528902300816003058220519786416331353153455770800665208394532994844634611007473019728489272112834298796420309535670346614947201414745746563754155628081150095623331058953361469649923040159869747014208485173160945836089620342993073895214748170052757565540063039214164349110812742495489703255810919286104468877368252833057008837086751321433105542700974997437372275646880966962682227067691200538852881339057254233905353482005724304669617023682738796016287951128611992021800274487096523741504531792205389245126337211697760005424830240059024917972647811465322964403409683699000966571356809042045714313754383202401068815963129683062656120156433666534329772389299355654339056321039856761295981050778211634832540302520420359349712845465293512977328899744422484372292561112515422407066059069782287429205929967801478016200786281304487110727960152581425213447546683485589792565953381569083482731258684129902693887163626047324809958250180240831630627184175235256406584070018167340537255553333026195880141760434561063325214401059227199183635134146789028894622220401743644835901787553738333787459201540470314966229609865229412179301618670693317171228176791301060387591249550981785432039740340258884138536178014999222856738938004384047095727938056788239598233085201033565156717770412010516931491607345470251810515434022038964979163509282642687276558700510775119677018589171180073263043274332009720099007331273573370652841614776828673307748351324465761635725884288532152048013126585608703165869402160361896411525899945181460062263672700050743241603603886026185925512909835146388826303780267490753179079088147884327633582696076734912946564850288518006046617470927685304846885019479236714601031635209269208750049022747489306199736349559536649821785228658133101423251642134848189005201145126574280762404284951614030712472933099835006090257132079708940640865496903453713093848928426117685283732202679341687813150110270768797637417070421286634576420050029170511696669768827520070980088096035809821791697433909257339017145066040544864746619840166819064065344919105042962898085194649551444941031740677761786110229439696235041021987800772512124518328609277298616245148583704981944650469181366643796384899405067887157871506256602166927404707103207334737445630373107713888693331138890902162485416215954487027418449977340607251620536804849912281262029147347488559043871751523568780696824816059080311606604379802183088471091634051222997541956472826479117636432509660039932599000431023266566506634072689056389831911054080757700471983768559220660126975045626473994050642772488981438755952385295964382002459210700242925401684298319070583467016495244621133596667531304147035398877795902410049696474817503551643912765275402685034176675028521903191455194236922065178662289026208588629620773544767812356264614875191685195468801716793277380748746518851380920886923607492791972944290427446607165686622115099189075304377602263750812351033463881717412309121394629640488100694474295962902558364598289460434560823245985368547246328863602006973352136837688232425896944080111248405808794770280964661892545581823061049123114105146764142495772058479459656509508472604914946555490753099609411255704638015862429694451705119632606754581880677090950817434604435372867987291132225494331400670645463369563923629236640604419678299255196024884086649263333947148076109874383605932197375728930236870713853222060693720669490357671862492699830346693150110944687274355015517440033126390643318587791306465231149646796191879220451183653942050694167006047626606631708142747202187456086033833420044454723744378301172955337446491403947317861545454181364841964884327989296583966306021724487860823440395276070277805701843397876878130334258581214469837083261082932234303672957847673080320840775173653461741091617598270068929559345185099224987699511090258911558309369000928813424052945220587468567104664567089200015680399961079728017132059402555543435823342039873544688315784080101608907889893069265607583928065456542122708549071861303588918442017016252605723253171629363408928655901273099571457062871797582896111655812838785245740402793005662775956435485889677548593987063039629206029116865484635938178495515923150341544731570431962583620847509283270477126203418144990293924175138514871075961000250471292899211778161453546203500438171086428839978214625487181992156456583893323865208738107896818706823414651330416737237345499827070434540060127118669804884372230380129967614001816423184507478552322582805902485976506804403514072447737598840864573264432324045563822262950006752792630523349737570793846503303793689488172450920355761460361852057674500255760567346749692070806388947556592238625049944413405654965700700846904791704351782049350348937742783224690476065566066724508781933598404632591574072434574314763104979980782697078690497200057192788894247428637481515977097452794423824096362607138737357603257814571337265005928611403327399709560075781686273727320643642557366879266982986579789510257352234947533339152868978490479616010803399552314805518828865423365414659053352041549329114071638086534025842537137436344440865630842860434624857614413653737482286814674062247802183975355473524740827169758160319028113313054548063025855366803192007391292245881502755611232735009732436524924106754601081026707048839887183137511726183927208729624546935192804229118381395529495292254157852435949237619083662066744765207901000893038798532590868959626276261429751618158034706605731481802491407549004095782747129458860544365441113092449330594579653100504564639254978277632443340237405452555183226584411093884946593279914203148752146135765708966545639899266679273884372304012634969074712938183666989258830528772769244108414500447960308745333685228134741448427154074367465039681833888943367711130975413750680297999787464141985663073926048051855959488457129097261943588414074294506296373335000872979969233984509187805501913378181548202018923650813441803321661750150876218803264948709554474080166465168285568730436803925930239521220730444540970069349472900615437894365816540315163046293510717160595254746984823533312918889984568434609656705828879253173625619263121183893020842561777276245537701592547300581460107072057377128191669548619098600512292664865347597998114876618126081015781845262555842413929150906787739716410326965742043084184376359374803934654245707246818279273803160817133954929178299532286733114664895378857872557405653106296240872979582839175830952569297329213290691324436769611644545663451715020663035537208656638435465979720292156912004652977901616997870652457788702347139502562664192498190029346934885434151499684887282078538374101311515543339968838397689186977311213101950983100540701676731392184615234178058567367610161358890862270311900476387879319083594620611721293396961821032009006778955817908057375126168098290225171065074586034247945301572793964086065297350939869707585814232833023845428701412615535507865896687908516704381224807746856312952261670763280648824204474050686107399735224414508536687945134645436351156333015587936133277834796619599594371273412936811434624156862194611993754288816027812230794798136891756042505604479661866886602313606422113098641988013003863802601791751812131116081628452724042559302971065775589734798572252741523735989344310503899578294999161419848717079915798976939167267809688284815412616108675398444620063976510705578007267103295547169917530289681346070979636391878987724300001385956068304589259129951329438868252524382874571356174919609086307634108502821057721469045741853989688187286662778570191687348283161820017905527029905174645807012003762309846813440868630695169341162373417699332205878402245122490103154727075489618454378006643651279869257684976626226384915350724063468869947556345818281843086382512673508054039921296485889658532982522687812179116001466169455187381099195881288418513602076795616464138252207754064703154542543029455014127795229667935799770368791457329195521326403236108657011344023803385887460932094850445314345471405373503451373023855895885353801603042317222156984173445309351590469774560730971278660979109323454595664493033196700432803479620097129282225328725777044873500159377137034142759517358780069272080003103193200352910921010450025759375117873493675089244100937374178178039256299322043920054911400919265458398802731074781367685871521274342226317294932965051332844778304404382723329246481978339820200398956260042859170965064646018611513659394815710136609894831306990273013599033114697719206142988504329575807119996667152640358438398920585502808294790071507269287818760135494148959953867358066870565140748166512996702721337914608860647337312962543159006396263741990252392733041834223648761968503333800175797813456309854365707912245928481965930884470991326193508682858381751273037404992265065722835407578841290855202522452317147191547369842438155839036056239927916972677356415619277480241456257750168288057904343927912214297172926209263333540736017485704470172738885558975646173759432171413776403821120788277900687174077637148460538086165649129135387393666303642869163536465044789936760849940784366240834069608864683564651587149893505049542664935129611989789661934244904840542361336144448678195519592892743737561619679505303842507768312613048091869577313472708640024294130421430270355143854949545081935577760832519869136546621958225164339319359037135609333938495004829631136135837808809561846984186767229163168942769790411748580862323117724584163439722558872796550540989487673192260079434612530118895330734657695536734667663483974010288451075549519365951897448339981404919409212561270224655650635823798147287296635407241574093174189824690410489984191948973243778224449285440011640703788475922744605501571833346916389483872068639209320702850067309007816282380757874297824583673735645991543946914683299531322991819488475587310140451445564625238721069113507564203483310388045086407610919716963728473342561198634493679831791202475832770508696272686240427706674149552134818552153576693615939382778351157925392970736443993844445009801674322546052207750414655105036995704763359338225172134184242190901206382465437410744994285221380353922297755295492849025916790051433062366381814746297142470592704116845222408583373460177116826256532218138604123397092345362098278084813826585660559092339093385596452117785160302770989847953000507199430912481702466543570668234012060778737111803160992072331227265960712014665215527253013772966844747060399924688663298762043710561717066962876493775080670462961302383200066962322731421329860450990614241362250102815774292013768962127583187395338064324948204127877161442584933595509653294098139193517217521879744311118287921194764639457859799021903899412893535590934984893097650408731423216495931221857537491765605132646833092281676707758556900301697773891107096340417843912033139273796019798815598677025838368191566814779297887480924275603110114338878615466002930654070907758048263652009538228955702229194142751616978026909848705294326603476149288337112507783478753485827326810588963956239421992871483100997898730153411097762852709770359899237469530538881092144008815116087412117033583056308631645336032074395312823755739404341437262037989834975414934030275009143608242216976458637655381389762446434874316545657361804970782150756058615164117515244392994784632766962824806072458883365755813787545532965328598243842066662181983317578407860218717827642076703696660840508658101186215153513514956170403140976358335373733556372007932911910380131392568339716118576091719111021373929054574247297362692811086257880969986913988435118400570719874098872264787244889876416544970416158260144771942256845538785095803347929221447523408384820600373145944978577098700495099420762647442171070835040211658314048274360294680816121746368759795234791235212685894712204914633844594781284806934557806818141200343619164056748631136907792410270091332789464179399016983380638186289370522513541481371229454225397482041014723198607872610269298064468815559576505035326433783586286055840033279709247937379212865189623707620104184237538429148004870066909669632893729409897697576969139726911816129702308812686196747005173013265489814594280865749736010536271350291300045992699138283919015004043940038313641854063399020831231591463059888666125982355243235267133009887710659289139433025638575126986588537465631649013189526118095274343968547655514520130846941311972512557846452936482154764913983231137646518686187184591496762051035617042946502700621860184924340452282902915779434930907922364960737131516208411156444699186886244931723066816264853723310653480522683321320827676766021441066610313842661083500022859270465597874674103780750536282366672072223216952227696656472835546891484733135604987796829111551236774424020902606378614686099956467855612410783638097689946213168429318167329645187307409441657614911498850793446911765564205987342031042982663303084261776602982133705716739193783959376886648079757252531319643266301742819071590995000929571767296682934818049539135716699338619912022928791421371142433882610694088933726787401389146900933321575915897199700820644496184015318771559995124756669919935392899621005628829797003443624061414956199921853930973812668769117662381778684997427990402979505291552535765263089593992914449013317767423075599958189917601184496412173812874169082308966236821136709084250578192763043849034089534977094908265514749869451615774486621604347541135942912932654871962877686148230066236239124512581316804346351831627355648152237127965262525408078135655259085780186437321005819155836842375080912811042468344503302542290027281130982657721119446681129551750279585583332092501573032237489228050212772050068776328597124457617362781090497237006507020163995706648285307120211288980932770245163454369904956067233448497305498442494954316610844736643287708378595825640939311527793497821807538821185317049250813173876160009747990556744452376027617594672626514976429812241264475449692540831538993412722793314394970304747355928845009839561425807918097033783571261671937023269563549938465407325528342359593183933624446313268329318320774638793266658351072375429115160884002229401083751923919276450350854061868086120124688766385510958030970590660860713977987322070828214339492891351099375984576492622440520480731684843059745034039599128822552519653770310302805446462225812085139329737183390419435034636230406901711406336506838809666160290694607965349985059089663147719569928959557685637900752575453595365455859713191931025697164032302908607814624500821657928931094639376586649104799119433533728320018236159037997611605349516482753526095857414423040046267074358734553676506701550746784314727735001092764431730003701124143039318216877141254590643599962444236599107004807671032026547616110026619197567778588881261341768460799565890312362323442142809112510377341054227331466730811895764109257434064576570221107946738343624015835907581535825192943400974784276292156404024337434537644219197716739376715784726032200756966928835578242854919902744962973759041293951711543634787716834367431032600350873166056624585891895554782289720232468383803870276766276254436198507343768054415579610986227354182875382235323173131562836232472247568258728686524755635907320560078621503807113640035226898955561364220534503424223858242851879131542217506156950225146516996376129910495745344493490149710195769418605321270087567865886821472113056137565940552554630943651121347138756950860113395021351131521827751580940641681071781911275897806415808495648439704279225542564299539985753407034789742288254046203573380736551135169464298119884830747905021064394476252864316896869073751479734168635979484360617606832293432136503712169035407742361336040489942714522373297261794181416449127974739356292592442994467482596198815085849987128639499243188930914372601120716623567037774033935503313521517372076533108456893383058638929698306938818721269373957497247925824267885974872873691362213991953444116516136958088513826806328930327627264527175682142088962910238740783788006699536467392266968259306834834584832352480222858705599092663426623754712157900581810743033325080591073289987035129191768011199523082910775995184281625411927033957235335413973860410491735604403096064868859041003888653772696586818007555152406194377561047872311337007261104717480828658767126662766954389660378483749384567168103546195825746564916130596722801282796906981410974823411505519748440698482377475124765093471330536147459981201294841058240037513155973766279187163945567567236603652088540946252577391862699265996038467061441491293900396270534046696396730537217897576464815541168849435198663121965148788766517659831571693901940256339488881886950332931050846556085352322718452028288492165473302757290572431065857698886473998503127875965723516326214138184685572771931876044664527955396811337316066801478899294464867130808323160872049060769123149971916466895972925967443822416942781586732753632340978933678660966023262251937314967275226337348675569410076002206117425813956379547419459338869657686178262387268404521011869851152733182956541382732639278618539384948065121540438873620055251239865231115679119268043152975301775957752645642238244637579810199182817793311243282230783317289054545570035097434177288136120560965466343860226451700969666611807101587352138186046706786395507815822708970934915794637975372409318567838237668637644983023342116602151545616026592530872905138250698043320171405362125145722151879635029404627937631497728398182858234563346016145820518271836418707386603309248058977295292709910507519946165294679562428211626539214288162415751179966128612935236595164709778438365491062916975695857965567774455618030643887488398429144666506407576842277657697042250620991031040834403191432924045862936162136102045103598746835037748588498889963753680832906950060935097039102995936605606986151516259114651530304354255621752567636753431304271044745236601413285828843871096679238541299518961584735722257600282731600347968967403729906399290986212984059830433114701301009971621072588560443907574165161877072387452099710929392100761410640845077502126783399407143680683848178813366635362932383577306883923718287345404929814923618097558566731268319623949043907545789510979766957489174848401504616061059986675288791521476659637292600427570470923088910161520871910123013082570566185237660986582351814309909436259669659297756810706746429583163519783889981343488421456690869283070269239914312162830130704133969957654498969343823666854420315423182168752510698306418641854198194347031260938701693657237937986240895642566812704448544562174039240130524482708858124242209204332755784181346720388994466739191570250189562924969443165971139665450730097992725350536640987595981612068839962149997332882564095591774342132457299850837863359506160860578445809979195146492477163984033061920488876955648215374376674427131755900990565348393104754099910795870549909282606029013491577774079466301583880310942928067014449112482565303512230223403903280416009952738845202084056003705542805323703607131739664724331555636895926151035144969338022361447640115870936379155668966835295672462273571640538873598602814640445862421602780611616140422968965295222160347932685048924837308511918329177933259031833873303878510098575817069303361385564521965747038698676188112730098093374896245672740025580733846037416868035736740911223004988076199393518641969353662970986592246158742611222883064408249022593320743077269958782673790515983430010943819265379964200175112697442007140325172449401493597707085440363350716264117163125131146919131080980070017339801686913313977262508399077829019641675352677172309537755898882795702773369487940746564234580768843366923133609587308034040261702273012467465055306999577813470937705577519250212510868062359354234918340359802603868238723204382270604981456820362408394076884716566985721123553916921225277333327011739865210131899023104176361992266632770423154733603304657135911054383202578970321334539851402740629740959548622149272736209605979523358945427904443196146717126387003370809251001818840620986209985620576082054930633019921695484971086330904758985941911367403924035786846434646161603213679371918273807550832677871387645068591261582628916808690246321510206244643660896624917751326739525048427715915413510955805707865332324566629279809201722777087678843013504174328566203117321363458831090473726737385940449762284230975555587085799620927048461617256062805870501494579525199775450835195915227528236747464950703000558622841367893928593870124229248724952074463450897298401136982179089818893316583513194418449433727700037810313259434593349178587907770557420051747581987826192916222226743686360289506369428691546320712854236340779537621709777123154254559983047676424290326513242269906667274930262036905255321703309949894624091696105145787250363158842685398161718572001794226132073989792103299614985115848558900734201719064336410776913934410603691315943719490609038757630757300467375931545846726862957470992147054927755649382689347904846589344296799096934134685443372725090141042929155615672500529988840922409823927345209853509559167121238054181869059312560543694746937543114058978486463942095598894292646131649842019646256396984933674884413622245465479038515617632492345709097804006740773197543660284916314091141682572113285048041133871653534675533433676254308872539941010237013701843755844220946847088260458628843215076453305413593375417149532253943083851066253503144276147821200467980643067140662131606666739986443696062451182929536494039479668389618473078871589891176547858191197409043302434035920557195757219679208450724163143175458918116753861059732148404979582695651009044543707303865064435818011410975106053097050791804584099460036354846517086301777707941819989366705245047364229024683747472392637014405237551967849938535541598689359914655782621371900686300734536844203199880797879983101793894574779790657723205903586339691694924191716509226400745368373783623278330696300593797503713897311590581201555705537895103253558026643109195880563992020110307487817525881088368077801801873732178553361761044728111265146845018893605186463397155197897951051235067014697174916527993501312736077801248557762077008108526895361056735213827178330479967976444674574717434385124852161747539437588856503901231414069947196769934018523403137915542085994467442578735379678014049532591179913191364724668437568237845839484898414207786037463971487556965405349536295275354093434323539559616546689107489312091026300540744363299836371284992521489067887958242788564871803102977163342321561209950928423650206519307694964778818910083680967194519078513006005727607131417001507846553741912759277749736140823688421691076604044245512395487788321658721970821265803583430357428055961869347312013405627484705994686295590755016352631276185878547158296149316043622167267472557504018528416430721819687487164471767471928485205714906954010260327251186187285228536530498810793454890231243779905321921772342610645746175454465829690630741543513800881999231358318079638927965626590184872115832029439104727413285312717841832525155319082548660690693495353434449719205768325891948879713327071563937921817225577990846086184287671880268441454060667698492803419300972426489039818475971618172342719785224563710436836096111701670897977308842043560536227966281074066076087305439977417706819382836683024296043717197910651730174874179370747264128058779811749974681364343344178105723387125791941218649431368588585520983949305207144109269628798258994001555655797065316770441242728284469157521646196779587343813955018723145121836177460256352845648062799830099051740871479551395812378052756490794218181448110225771980314947351164367063688388333949826990696653694744620891517453174004136712377102384120018761188037999676967437944015199424832845705724195568208988023558026459772423742894551633394212027781638389567950347149427862681861641706226800627959219471617572885564326801604862832415317131731500676988670770108547058106721736792724524055729688924184165118379231784026478911689604537987836695487620346448988123583230253042667037907862216143699328502228132310077960934719304625607069840990920883052405637281966978913421569921259485843720891178167958153474953377958838140104633593234225671586746271363460731276015021282504750859047866870265460739350621584919411828577632048867939222387927027216264111151905250426760579376376303324682533111902701839820267408898259229153428476655040420380071810861134287590861948714449041694202673308369374183391081823284897796520603393024273104242344173220321442615818310089883784405652051809759764449348668624932040287559347326406503063624021063453983705633062118521983583584601522457581329259407287654662736918280410328014621108639773556052085674229334863997713428056865994839671089473483023882033421702300624629001445159615750041380702848686096825208973283553411205869733930365879165052810851997728373707797366153234232533768144925250260144265055091490248993628980648829824354564374960529633350921628822946093095388906356869235767483635878281568818209256308052945460441573096341706522666369607667176553755919046221579928294266955989901543495836590504814001509024714052032039586094281631995482432302430401442105894681908986217169099010208599344255362603052924590603593611291426797514033321253159555788539999064315833571616228397777726711245457617388206713612547397776605405189779287808736549845728738070765067039157636115130510827758529728906467005915954017437532363833144428121174519630767709666401053879034246587457341830461912580789456349759903275452998689855421054312746390182713104575569966201719844465929801372218044069371561881118552042730823218416467941944795040528163181824147547997042447670949437917053596166198562628433706169067340272268780392015669605294434768869635073785980355449166400540636846934914912664165245704434228089254953533733968839063874462531132300329514729948737499983595692238048914500258098093828059493055719293250560663407608254384365602279787334963810887646573311476272816489328477877879301426044629908469409556740160805314477970026551869357433668191271630773961855292667552214919946085025413873889052913274247400378455616811956788958756319781523935939301561701741260739011233992478425238480806272712072202183124328675752707867516170332408788284956578104418937787299662221044188249843544015405037262457271721856564815119030238334066208440902084368247125579378391055139541104109427685230274852391346896053425844719250114642963608379789772692098086087633735564927970725198810643126564081303804605975567572035578199799936926250062473596695535760533228334106740673483977454069161151247226874991233944368355904874392450887373747692912480335630655374718826477209536452118596516473509030452619559757985241095191782562531494407924150738342391773941188462946162269568744883758562447975035874650415897572242312736906888329893284763071978227675159612777045860117855251078185173156712378601674537416821354317283395703406987182202128291452022819118463610323261636108006784861304048450858797462667018281401340738206896771486069873488898682427534946864286757744371494107868551426886531169610066956849578537006640790097673260886329852212189683519392748681013000509744131390804268559144490896014114365514039180772261958344781633269787117293068911307403532148040023776364511589797942952743014844480684018798512092228935435095152239360729702281494890592058337394657808547285896497917882046293035120898434022400255086147347290449895946454889549419889301637171770280086834874401236021739462720717337902797596999306949696766749593102580291632536719678275418172024159659099005091728383772002325791316902871774966114553703073374058044253045316077861928062740849850286292627909081654803647741083998457441644800753182669456893619720167035949778953375669221733392346495817010785512847594142867628215915967642715168223366592325800825055591537350413243655634218550720866116270599116315219406986394483376525791741538235165388170173146695988349005780393349934966228428668702820604158152506151190514219367513697168193079519888334823458781136553469730699239917949373408296576422394682632153064133410684508194877775602505164390962070345075036487143382970731108701000623182856437156038834563825738066498714011678143148521436060262156340839696508226498000750742549944334883368586643930591262441229398143446662686513399886520394193264153908720500550728547675933895471265761031479769393642442465823094797034891166721090853419757588687375038420577116342466716373417240587717970955049170606808725252782443213440739043696017746604843807348812639915669543463473960741355103606927784009363056335564065813636615228453128118721045313013152516073054382116576992973293505360885419539606030972938883603411156352923350641768239837826081101315343668150625929648119248885109401622264311311261446392207498738878708823301963898854358797966912622694167566740995664956272523826888403284916826776253025392337157864665581839816573380612525081658308894931760508155514879217718417393206919948035990512211021244016233961370533914963041011492563005993264853763487589529909739492324296748055299714335298797836634231598518329377489865782564920554676536324813480424435422393434621446082433899324076055818278528682536432457407603642168339797776048261004583236526636869355231533176782481424448112664468769010027996631116848312531322568877161030343591841552936149324925700839063488373661039637812312782724218087103891820843832805392536304822132656673958265708915792785235185730922271812735332793640364930738464717102879402790753182056767407782441046686645688690609940744526336359521986209407685081372056909065115184978989314214913491702079654411672905882682468339905901119278822449791338990888788086110226124628205688144260823777998886071017348402770050794771903647627559292208452244545505223529403261411686127771428308932475178059840692058204022080738496670070673173331668752696647949029703983106436964423299691217572460175928159455791908374403282907984385887570454319308608965169197320651388388203982655713988876428194751840741197461162555505739400369034145123624516513451354788935756641256039335958765726106212833478048354296165095726509031741263440451516209218962987484570317857160948535958058489951132571356013261901949247209324854413500483827345135726979944960731767544754021850219799000966062425384022252289506595053412692402556675624692022061563362958388704387962263518882984809577608367486556905849167436122348076078013662988463730430167710022950954670294256937200785743511389222432492577767578592982749043828090552358376533441259638683461341068135571821538852932996371724814802174843895536306540594685962441060958636095561229277089747836623326822203966857712868231678380137849633559304234922862961329173824744639422365019427686226131403751182654807047526139453551468435683945488671851201592591338471384383143823970533152620751159797229263606106087460683243719999857486438407795801464612208113463626810872323113119693672835011863414221888057321937625966849568869854043119345740186161715937463084573612934053607364405102673906643775342295246853471980993584446777263844621388937080286803904623156815707740213632083060146958965555624438642175715713124636734841663476028743730448248011402494338138080051147047062351257570127087329330998735783746100659986253758173052577234351194681691665500678497045418272673035838224099382865220983202979279786495369142915345691054005567264466946534708701940870171524663466116837348254031792472163424289829198264366560902189370885033690296825563312170329640820911275914096261891483191292546092463578650653428491135431297550154172593008383870922514573098449963945699269078496317395719142229217428210022003381213199149510649471693531108887621663345489853719921472906687114937459824913226419425499214443155441881470814243828397383154717438351206015435931028762063822023016471874741125295853026070874758927169901777701863201999683022474826006235061199123701990102859763401240398714554204038174806634082491872055962538815003754162955259268461734331288471161385754483965167035296342682628702834204642570216879682565746338802688537523586150389905901170836115581458737652004299707946978337852163107006818092688439335299215191155866840935881920906343464302466502303206533135973182297937257173740297474969400727507605800176863964180458056453171321309474008530454856294026742564255619072407751162520620901005096918983873513845912854142232270997468862236917496233387633470390212040632636549639329953205337085105333265364486882768524364780762077571896168663067098439568358337455844571829840482433614835009252096148489330002067239953134176028938175575877723269082893240502701316993841561286627126952794238183822940132371771001479491239125147267255816781016274241315455140353877010814033976756721255067518072079178741196641003328854942483562004814602700172019645613361339662359899287208133537756437370277207937257226723623615856647764858761430066324213807121603822200319525820435425459775350559103787643421766607784457944532023826078602369792584538695759626663712106554332316204906828951814257323713644632102211350270266163165053704898205517839007666816331309716079978804247675036001081211759221378685727505753161950595764265452334741105744914378239189522951080381113921706457412197679268375596632380472342552136948785096826773450022001922184506679888564172944084187344730096629351575604045523545103289877294396140606915864660452640946234934899489192281581948383731378299775365693886814305829321418926893153619088319758451962301423828274490867091700175430670303978059056960857653965372863239429672617156174927751315728671234496093645196864770511094226494030952659155952628760256640133848893370615452859480805947249676637034090468498143346243990365202634724630973324295561004713123092781870812847132903769700088912461532450111805075739288309518679529189250625650191861833706071834644938352172508177498214584663045334726012399740347947607495068622418178181824547291681554369783227885975666824249755646716660471679267690883018038333534900814972919118112877618974506512090167567711678119180860700272462570404928076462151013655019595141620784977035913079563041501849991177432312019510513387819113985795841272649972136115552680663333132065549629439082604231392846670213461666590160780317459718862455235624980645311852674921140820042475410996465629198533366899382059745880809774253522872193724124385858859450319913880955545068779509735288680187111625840625303049895890512668637263315774580970574275813595412686312350544181483415381827940686265365513203669293818783501341448390563988638131945531146665147949893813637924547299381744785566893833682257952988098899138829506424619225485204995035701586295488335603690911580590685105724441400341261199693520968340891408774183266797853152178452892965230298386164690669188682556251776961304232839248663649432937763899191575643654934346916719702564537257588765184020290971742705197196167187920608010113477303211736786906058392821093702856214121343192505813965522704871237348676959777394060868437905575578191907929801561989761980450861632758709136975205073587047391400665100123865820821422093696762173856638819254731829114708717874706321341010657329570962919408181521399533021014570566191220923030012265151829247728832896361942002844984431389942879928808527267541246234789086084698443748691856666307476593953183119068544104219910075071806299702253100585601392734955478724533472822584640992036340627746329024443567273271869943180708158539940370791579833238180377819644794917663114272309324662317132318579086049645089482498205595582127471487984631977070491385967071194341813785570726104255581529262222760082558847632593006805376898999469016108487043471571420659375622058380981458377436839832803810234533552370944094278780915617174622786649750633665442993499310486029264205443729034326360076828823765433902124975739586604048380045592619413429553864225028204110720768034287681713663275050119384394455327035049246033962639691636458889680615292726547709044848654187544486755123146161997456970061784583713573607386309050517863801962197851110940811880826499931291798967392449731852261058784622722396551815148479895137825571446745729833090964700314929483068940596656585766042784232377682420531404141228488317916920879914099994723103340446779814154459279224997719491711496466705891189222255803449138448308327127103817133022878258952850920473631717779819216035360653845194421200186189617891130762613065875112002250789778562028491351398011887730840980144693475231944911880433950748524847330874888893940110653496124768791063858222323336040143223178466716453543719377431583798728196501652798521633981517350084963016537594949309967522525191610675050179946614836499195259501278672693142113873450963044537408775929310223566046591618359538524782070272867957149836107834052959845981492052011435142145352780770595138277898785039151241187566637716646307083567379055667616631704438469494918148387622934706852581481645601323096263971894217672570874703231992059155181967623244640847582753578833676274996568102156426117740415019143849005334352840397008067143682751597819062496675994395806153396647680241928115322835267027209240256201731324518650918231873121376937440418007217367707986653439432368869147069919850040194280442117252742983394495777521994273421242926517667459249252014566429668140865321458520541835191213811113195896434498310984894470866011151992125640346699010293608544715065808975711408774368237972896953089818525991875075557487836384455003766540857833749779127868822275949366366271489817298975967771127016424253057085852202445836505170615926183140363374274960694572368917723387501513177608223035565103505835984815580103383653758586918829555054845067433474745542306820344091032017786451717466554294853598777016163410650354843359402783311024014386438730331928783445656108069391683817340254650549669997622076541762938329653469473753419075996010338181553755294225098038991079765724963112920465688085826838327595927962332384271480545366462522829313651073786628421358419853328812122099155873940649198941510265729748425605688066604786537713345938341721398566627642142950283794031174097000661427019025045781323314406176786651692282150182540256946405137356857759198499775158542009650556636697071811557384089337182787625602634525759516317533440960726787687315034662316344135510608836653994339609341099888265190105384425622890376911470109006033008101856033206131540248983255771639347375151460265330427392974080883762206298329105493843210282797659112923315154507057838026162413699995448179925230488414889868100797634032097727753322571619117290242336318613362218602600561673820080430493825872082633052266960849525771955050622542324619418901490748007831159339328042522639162201874426343887962470803105672004733740913463371944667672166475639832232045717547707342081008728507589440018042475135475319041154412985393915242694890987012090231140781460966810338731963677073093675547783747212677678677348839572536290464485194437820233047641415782803030090822341798138696069736271240069820778276601931396922375905687849349855923924643853329180739525119900832805740483708480463559265256629623902451778603255092046091744884172521406783245020474050085950979161798225961878244344861180521925740228227979591734163621888933202651173458059118920319353131445646867451183260672283046999153753711086537162171827016659464964902300294017460649901756147444860078490231118723304654429594229283728136109633562776964681258172557875171524371282993162164973433299870524319791498815275881230425589068198795565799767115518356891649177821569305975731476703179440787961607194260434418773153895756647191457522407869710220409108297411434427066084122286695032237341773834558047666977977065809208990186202166279554190300181183921970697665680810086612752612960528866651736512186738784402054926248652594110439064864674747889373217392109139898886947938595678589181789169468440418366099976627824230888606536908148387328295099189313628411845660814670345273149044928996290895351620919780996644060531943328974522204269179461716684109469081527626732324626128858299430661684357777771868630483495718779226443732755349112892247495231523531649280241812747136093309974163559815082431869001751894943571450503410839823945466288473303823869196648932300884633513337791401440756857082891202396230430166076369495999696319744885477781308901112963873066477637030868049115226156755640441299912110901100081492233241162548242450932839047357941650176179276346059023355746594563440256227908629888062295059667178403773147429580418218766951686682158844507020765168792948870323486823568717505085249218071352049985846531455617519823382201869994611661818516040841768776546582304173636850399686396079667120815297005588578359853844819259519594771376051350004994496525719193948360662472274828598458477737653860424173486513928300337613698816943742539402107389684559703641111784073271032553462712934365112694241213455891536500454327448740843006785458057709320290572155806565136831075897423140792130060741548321903315904311304991937840544674834377004282217059191879678913408555241321057968806170883734941072088448347316676798464791221765959222104927442424664755420836083480363643655698096887877757321344509215054119231409901371838151761773826852423170443219502482295958326578462972591878416143353970186942877701729928110220866230646767346947990846157017745753312766939015486564616802674185326679658706483571858589647786198687386228242538009003939954488187918429353080863639842584496315426305612079805228666405652084658257337633306898078841985105901352369867621817680777234835319196092495289553257075350097276703217820103065245693735615041149847870664045785866609662966152511067911883398592899020785048035727904084470376061830388636172757124953268014786875903586773212111994059729215463369868866536663825253206836537995441280980324823010293396801307475988522547032762594140251735177172522308736719792390120467838495057185029538228030519287519414431867007824966078324353031837702663126954402893615051422124027030175625877707328511429763399480085316107845105683494697139052196928843971908970409514934334144800786130146425491815476762184168293547543555348220189268153508686429347206318324159546426160476051053247771077161319089328121831109009566705910859205414244657488576210477838011235475111555404976688667268504809798125098727957175823952977140243362867992375294683980447029102500350413212825218840880054676283813390865602751791686184499148123135333916702098973099483902017161248160676702881634993775197150264353368874324392787592374388591088648666449705118275839786198554363412313760742983754092561410553459410094093094360787320112405944110510241068790640381643812189139411730981746944771251885335139486419118356248240895268294551910953689330278015665295051035486310277630434051117311678801857633683780191901173252022580504725821525594375145946543758993583978201462410174497064451560057548189871792628567415301861735013666492384143005701866007707977887905283433930529187643595061462509046119721722084816501738364872446790358199268116296772137498614970953239371211453422692886102441208488393188935613066639269074735206070124372258585734228993130933894508766687289406937714969616830811949609699467180524601231077035738527071182651400180187178803707039603381249632714882743336322182299114752987945680613763981313079159509861927015932479414355453016786632357040122013440105077496312393647434937674713370011749671150909600628476176864784189673128423607051926232315584926864496282838419371143623708638252449480900699417972632513421229950856671094881593966818656476315343488620314672961641571167261698343960059016805422847123080776929860082354782172132189998068417454379672182087196676377737762234699667317736254087417005083975925925069588825773265927112528131748601957093150055329940793456383339993392073006974704436952621109577403658420665693485059485714644985278241661677808022658786616777342462406849406109786295582082615482847714641284572313009718385865235764789350929423989958477581466595192966429761411336953754100876730048167842180203613518958599966318778586105394507670410518943492716850628686849070769864693511710202374958560524047692320341416848195477508208685956118859372414771733129826891395566128073065341582656645112651031391113556900050311600029198956568352287791194488388789532761913495813594206736932654341389735919665735966017508247056470925768073987571138913487142839724490200819524126530314038627090418710724625064341435664109449203439476495964612525976038751447910413654770043685242099875204526025584779816711593998235157833022540094802421764023197002895447104502887648070952722609748334427003609700618779384618956221623434286882741517210489070471956766061068168469547989815570093317032947914272069392666737383158439422078871692771687729595953438522353271481604694988794569743782342804878846657247082768709271881131527273460020802091143628448458516194322225079139010254878514886172423474398160904450186980725318792460418088207510940610224423200310326005117549589100001134802334285804800862752897407236069033331963630771451579008309941268488632270292489593590798393465452049820161325905460260447901912980843491209569061722013811601797419699523959018653144148521743281167362681627102790834173073230671109021352377738309131144906197513421014390423385068864819865393817441859067350167300012596932578307875440919435730121862614321442686003102716899619933193549929528963698413198450067205824966786362350954350046559836943729143885166666295606623361658111725427945047598592865167293225078371105698624651212177462793692299965097945892804207299524816792637834704158750879264757650377857260756448286270121813037570709035057630885340205751715412286436710065797242532756125113719421661426539003816340991679220440242409330850055075863993731912103293561770527977487991732811848694957925978151153061105164326885678766873873457343367786763767215712828462175234180206752016328028420654616350710230741314474023318264482475805121874822681319493888692161404862932654823816381053619371181933519301076051591765000081306662715829941401864812636338579411593991849980533023441916432679980523631379373743169612283456272489043196261791588989654902267050112850726018447750318719817977499666209114823063766238526731747448252295620584812061223068059732564601323974775720375443528159953491733794639155719963121970623946425451278741190168654955590559546006739499038082751272086730709910608451473063067817276904819419803029437476148331681060070691332764797217578151413930669315814277816633576464920249356273703439696854019707710348191829824959995676313147377616092507831179681966631112674706120121280924663753602980887854714304177869799542403640013874070904003132901984534676892397888405915104789635894623564739551899588685029007113995838514347147657197157302246397577251134644984792239141937900578988282387619339195223171352238870336295506188267189413972997339322929374665215737058143141532852075831639010351031366970069212876267437851427316480285263549167798006140925015306204870330747661363994870614289928986974207912950086630952022899056067319263425865981091209453618868320122675697951868909238664845916485428889323924122853522507633252036201635543620930330620187197115092664237973785693985594790121482937693919282159178219257806303369698277511470560048349651898840449413224802329183629695223281931770043765941739893595412374947401477176111464467673521324326991722213986414412791709064942884026713208568272806007665562469760931238534709950084874067620117873897494349929220205634151673771864999501279885506852399347967730462275464139411486684109103361342554911442236148125117754353671185882752130703861668853896779802666462724488023637959593868856575980182034431996387179523232903427624199016598664175223242562068310613064897027270786464187934163464105946180125651567403355499323253719762550648591619817621587018120891006788094868847430847894294220877084670019152277162163644495008329624423020617980148240405822780328208373922850623868353383054895913550014945195358532961481351849129246779313102854718219215565801117637982108067314696186219095393554856935029407487854498019196257174881093112323557976250297329998285060235715752277682830125858101239595604640764517363731769086703499306997272736649590515139294665026450480420570899274834304127615280374539099259632570409244944923745688548760049846392427215287917990857985889511085274557183085623733962026540824969025433295411117975884682229807043841781574558390441358000576390492159015881076833866686357690201064386661458895550811820981322464615287885543838112576937157382651424796219714851537188024015429451325800833974788349502726441882125212627166613098505309436282131489773335937584450450442045566791494898212654404954024161885418424914659321725579887886105712711068092324115281112624188425656931080292880882000822172118197165270516558654259963319347405718805441335523045435203261976117048386158134675259677386048594619402749641151527321613477845774916625716419033026068990634251127214409547903326682913290389466284244586012556008787442049311560008699604732128248589143614463922886226732920089067058082165544074780665896844792906034245132501706374994933766764236689979881954948127830726328707494525926198585142409130145013385060762928537742803655083870850313191002975954364025121215178663363113796389415647751904478434254769508253195326315103187555046248392813881421135510964676908837232169835090881522970472075690096997437772091161854180138066937456876171375307442442966438256860739000592687988729207548747350123429720422125053444564777258329534010048906591663945529791376242484564562586808725265205430371014339752363285345423732280838960144819800924674297070920032115347485022658662136305713184837169475835628655777935304493018561231144060122002544973050035101236047190992524626361376694968916151691903509052599361193424221579110249003123389478622856869278710314818776450862350612083893905876682707975625459000099861418275335687331492649505534653122185802155428434320276579010224895800012001495084491341909423494163713126543563264963509252649066308037333808405318344628919129723071797542070883785966229165513413866094326107877497115643305936764593491190884693306880164926189383653597047801014824048921846650944931182153780298788034190742624583468375576875669482197829462560310428263093166692105440156996789923943827802152282345767767971667884119064002312596041790874840031969343096215037410995703627340359006484788338274556432136361158263618774675310419966440317427245536704724025525678797509103438901293999606355380369443098110788413361172868545017729534472979330859206429002014077935535662784058714884397474031341655863067131418876398276660932605043684797775920971074698926990686411186876419651657822751779227775204941152066947779141197344242568783904603255690193050864871203083870207655083358369803234650924052764671479649169969736406571981208938662557436769294541405187694450593658900457363589269494778686039054211790101536742574824105860683530644710184470645191379107452392704680825388445199296066172316031525769477225639630401450310292220850816078431495884185954414605274463455962288323186678950719053436297200113701473016702598489139552597046451912042795666649247842004617155112218347344322749887636193639592782045271446074584919132646264729775727777069255415240628099537455073182063812623735566280192391937690291227688623987545297426256292413119768009524621252991448648608226166830765503701222778908233610502771848645393113516683541780118051663203025775103452841360432063359689813173066426123462999632623141225508356530354998130092721408608119876574673584088921265644035644861516962080736908097274661028175309414955751956495434812577283453449899364464825598272283127026511484952827001099985699382086185785895129713541780333288763741640756696379981585477557844038177185417675169320348261375308695402636997104586991459628111731282679872644550814781121369546875082309573084440477098700582290606306770807038675186762804608033858812618342009987191339182970120954192696352103514495897302720666653027668940871261984593032871541787027836258207869681523564008950699107546430680955224033885553644747938935341191088290594964782904029333778390460040976669455835303835672517643364870230783480186658228331731939173309349185002124981951795978479898334509437819811012987690790744672195532357867057442358174376273899187050884564714691418623980977677291871611308994323523554236869275399152162490279111926801618345974392568395600859575117820985643195096711888162446312971680529713257582810490792838202249583714972553423300169972091093462288184384515708284211751751677158858843784361902085864430560563602359467916319327143609286491014338694249760500510520000767236343814761049557400506149420761240412769179535151083239172942262110526498276875375719420426376350326139130924147997188271035799515287898933641959106572714157903193896661815474860536773874700457871327686914198313465370489359150901467240307094217997688136182619521635424369001838594382505150272287210133265436994699322367877750053794148804771991961967309095818161889986857492366443651757401127684339346417837836007715949486681606438508585463154826949494279374126370831725066402846832573194260675798152098499390569824103692133042872147384102637438501151547642088401891164712901265458668809340499308160933943721047310244939097513714823457507128216076422874611751341440388797993275773075275723867460370184104612271619137266786233315292473831791653143369156114215879115278174274770932023042324901896914034654546459922564193157726732423711954126518468118462221094984077974802699627705114386263265150182066985215428766014379181298579068427918080648061730024956911219727443722211484315194076899549072204971340199456674557815494125092963547254657906860167588117166399320777099794044788919984301164550253550976807173830312408451269577629230778667551080760206872769070953028653691726749408393927705451648257550972759730804976921604585075066964356672732410977325157523017035556761702541246825179438878947189979568069390504454454294954311426148106297437050493757617411998774727633628622259568471031559417321308870486530317255401669158468876659889459321329416979199255184374248081221726742562422624175218168639667631354829548469093244796435864712475277890437757622653461290993151640008617206906609033781134538044196774865434955754354757996436419049568792399532165038537548827706605451114401651530416827383820004230443964849858551331700860805686867211513603654190440831257897161766556269748624500984237273103873854580994859895713195584624558238544664838967879314729159135126221071027633486982644242788249757143216372808746343268940898816622230408841152896479153386092655041764177351327241822423547624037307058442754042207211978665708582776892944352287181453563236503863408904402538516332258219706451699864107826937849605535430887837808104165027836891319773909266548694905986117062994397643098551939671583081337267564588894665108647944568514333386762722117501775032221198693191037136346708295956991781819828610562311394400353756842852197847666640966659578207611353644649052376000488003228955847061691642761682205683330098467962669167652030156301729068235641637945616788662098753547679356432888091462556821210939773967242844991033552821228416227204302738030182675879977185784567520330028082221278481439062273763425855084412479508893731130199224907886061143908221016581668781050633879410075568446643210083557487029263097451803169800429549762645206695866248215544937801277116193711490331356814270802307566631868762907315478170884921461721090047989870986526067679290856826195498663806538298059956753851102610223758521139209469121838369716714244507925785215718327361519848383857706437447915830842259885655096621473106658227134897279349822046945323636447649388060852535914560941414586735984519904327706826230010777199323889148456809587347411077831691589106841381687568585296330473535270483607870606296226698709338875024020566464040791080766329377570917797264657580167802518499828919371490875036325362311171110424938110611719947672284917812861168525383247899850927884196074522305413042362414912534136039749640246527600361320938949511331643276752733803086785335025580491770067067513068030161758398417541677081414471684139504212572672239083572789085014276378085081118905548498835894225360614633702813364507328105734102355258049951823044467666723649448569813558688619855766649704615756678914233631733099965626459851637459734473988942670722824696755853645710527039756006112287800092963808714566270187371675564510039787311206957841605597181977633563083719121315697759381042431157137896952348816160883591210296549287845683275904963488745870561235966680029574970294808323786015131519563139560898867693349616172580473510945807457042622589555682870600247291782426815716884231613896822092151650678456753704583283655327538577703331911990651545568511131276957115434969998867401185347311734988788636136404999361158637665434531824517546257907773194746379192005143484509957033795139278189176669152989020901029141019749988818971256371310147398340044408849628003744306013757528616798542025597474346426130865165315401859293256772185216142117506205149717857091657107331809830431550996812225196353353826629699149704107120731290088669016497085998095330522944166362284128954308047819895417562797829023931917899727921864770525957210660056795920795154124300870082035380537426685735572207671637000405074179488247997798220161435547030779699348534080633205050272984725599253559791120156540654832780438096835371139293729692665259219915465450193022346794446921176227654109407546240001868949464806444452254478673099221404363644302285699388169316320786920376624650588445643482395793758910179631799233824154717949334116644151038943166309588922930022511094729143215135162580795352533669855854289363304600614500313927843487210559355261681297224096663358155873189310718488016043022247197952918398951397655686018367970179529632144605115855415615772704648299639771764325693786139153861861581642765057776887566532472305081573173801437618953936746084212341079539996921126405086120855879694786576398942196818171084438381387061844639912049006517799329792922294611768311058300471384483736521241188446290527257623097086585273272030777190005631694648502845328222645636360540689026173063558935153984731319500274313953756976306098171210621886039684625995479844341013252696582800437492368553119405394853260559055609532510383793496425034673425188680761690818130153255211321565218596610252049570601112364665259361454447391874824066364556320631204784009743309866742979693442348545836937220086594035147885153737743294078319177452346555155280711974215751677849626015376471368688217933645719303482582468748842177394610415688822956742842983641313342383837464506630448966451510094131128066027514087308438428239925657729922185178385427585016254327300178646306787123471990133588060108676378166106602513673425537912429261066044662599163285967144186816881995102097504259932471427903435592524483563537007054811447112951231605622619745896974334990275466276211924789573465907646367893752974877280148443722365953364380777623891436413544602714008288837064226736027017220625220782204545451925640568442728220950938066667390636199720241710538016563376557540274890354216694056846130272558232673066749079710192863844609383183474431825659599820294696680930909611119071822062506897101971600069730481667007246999025839789942113101311558721763994287932907979848917762611331554504375698292127906265885272467180249118416997353493036792833578224452312403922074678924229784162080746707328485551741862306723117018192730149982268529194352160765458623994442121969524013686885514959462054714768632695575030112559152055414171286903288874451540308893796834150511420538155903908713690258314010277896059946132865746596549908202189469946753636139752515122544145221825487575318591640283184094050209541116107360096185086650775487251834328038090016673342660352574251911542438693628127203176282657245622244537484447636843548633758350509902676735826038342251041883972642025132699831642722942843118504686661807124486995859017238661537670465468314798021053019282994143499060645534940374498656456040546563764274914483437681326012447460870515553076307597858033404302123207740784231774090563050727011272935069817330692966727939195502361783594195426087564044306501861493029179268106699137585304752370221248964249267138655442947909585793915247284725746820354090006993138214779968098369352607367164674361248190881356703057169653477719615818806845665921408603955825795774837334797873012758987461544475499300550182350064533370648868126486671126253683970667496698661154137176756877249892355624404812128541454549240628589196952914972709157330568722000672707874132218114046679750396510500156783082686797384732113370625981151150402347015482820573374733549249498931594790367414680581673341554778475380228753164784794355599726131498368218203718560671572458522128937714599448191792093489306405250873184102294419784146993252235680923083057985711411354240613808935919700766668029998857712361163721192935572836753866013088029993374334353389813062858785881533090392925023752537286619606062847419727323292764936279407154475075064077919050282114827197372027982767918196485648184595361899463059535193480452316661289195042756120780828531939720714782982354657666997601923242436607678425653852276431886221501730850258048620746113927923654248928067580252955954281291707196822017459896081506013365584817276778098027815539684998579141215811990362226929469352959486936733828352433909862436819142881406051918594990724272092540666453009821989657399887008719417497417963839986893763005228912147281162806834422782678598511004846635802410731103638668372500261174636545843342721246303125591290411660414644846009377389739140715501089700918280747327411243157253422309841433446688420594384928872659864904019996259143219625752747108925540440774257976896356636742542933056885288509163380210926869343400940571284864644461412442667213951688537991734723062336526650336176957630514529847439901208771375702548435293462794056950308331544373316019843173927295186029710349732289070390471190162272298552558925277147879263166428200904231936223969208188195386905099521224929016523123420902759126872950784833332565004405086232531509277241885741091463549610528651340624120793686087740905220941499801471443203591336628455840511299999820052265273589084513640085670664339940119123610384232157867681281140688099096168641964601466985916001554266766667259390827656136938465304451859635959789760832213265917548169397305868252003057293490629526845229622373915699536093395110178143716117361672147723955561239606850924069968434358372855361178035011033493101905637175431246276156441883739099946107828839752233618614867131156222669240203426165112059409402720528997524258642807016360581729156745760981211247636284618642405262717590909741893924808243078416259919322841228197525403727085928271252447002541493221880294513676486973067580623430183872336639501551384109381490343504478370117133703416428361123403751868988525797619932161448994264862862956811373224154860261517833262635955313508157082390064418716266661972481143765137059566243251308192271310247985594603139596426054241064479915161858687739613711350611132818600810518717820141839111534094534119396540477219246865278111863917785574929477610050186908208871900579867409466687852806168881156487644299292414794779777614754736515490294943825419522648852665464294518639578760829199079406625826816246413344574385085278621683101029993194413090867259557234028734020388433114210470047104410499921216150822365796036454587858884044098566000165806086426491691817068177337260496687366482880928540783656305430194290119097928163809147897337449332955553622997527376198958181588566252905556384555003622553239907977342438632677405188178891803332458284733159567959654266088901978920867528182084443878565317442560125106924705012756840582580913376452707036182085595783601077950827701700005388975421355088456323020697663700236149742508202120890774719841481247727247560799006544008297407186149427377836926810388569720833654773176981549242657284146428916475192595481043092113383640782825512458588957849907372627500878959064520485466638752937763522386265054788420349420323873706150029922763776864088782210499747097975538513376080962566283848181169220835290632790615091864073655256465308772201340692007377865095719597681054093101867967186857924736838495736583614150251135120922401560323626909738228392141444015750581977559275806260531083107230773670561635284309496189290735524827280236954252741085742557515912023995562305063306191835124872064927866509663542900451970459675534515248088033310177697699007024617664698727612243462603926411987145492792928152722925924719708278045664846874481182939252579777147110840149509534724123200619671287177417765655316302256829726445641785560873608980463941172007078089832871635927773230248886262539143834795679846339515822393430806955322813427051284416951704988544530421949661953521066146921528833202133377054588237509369337281400662743538634736475425727614603130224328888532963850056357243389356114601094368480757878625232861186348105076910808699017515940344427072036252464577215357646333879451126244928988140396287683132737182834329171814525632746015854412249780182772208926249454637640678565909769133672572653223313693359924322763982379932116318352835783359618093236664518818714158774136626126456430410065046344999461713767384717937178165155035273405300161569230858657432325845849393926227218308290238450551140605273799519570166091516943982334816909790122285565607385675814603323378330336954147848657142239792292104422250487869659786628349149476590011476453536731963230051653231105465166288472008171760170535166155669600227629350278348828495114974440468342882731161639573384365853596812195095354497693687579530400482872563094136230218267396240806310454287695517562098688756526972822496461535516980223626173700734220912205196033138293988953306112562137759534465445764795984054070878579026124425917952098875540591682813462511352807560023037392175581215040526906374272937727176814258407224818060124882323064935650032341477505303793619183564916064228455128656771997095515685161159028259088364396599174038216486397502897234017967893080406882004860372325013564067734167707563602803241893425163343350145540822188604989246007422621077906379578169173412672349044369918800050949107483821444663073230224289436567411648758678668535879974101219088056473068840976307240355471763659800368786532871444535267012123562587164565367750813548335242207318691537533292866528363468331016802612124531386325200274257311200558105717276046205492160375508448319728776347230229172215519275150031305545287272276702301307207115960595118643892410447749419938789668609644247151520386742973828168495802513092535133633471964287618949724409177409358511473290993395174528093401019701647654146438585087073476465897772739179101789928849323551346310289730318702962674542472631013869810309479963498418582998371994554953978822301377227291539881179696991465076260940765285262136238376877937295217890070521814507707017331191700159617242464773514234338168668925451614986495554686642256106977962089250375252408154334843098219285083791298152512829854926225612062163721554046759737542093107343186559060016363335970155603763202477013744345266456752050853361453829377448822751970175136865399444507762039098951380279034094069798508499881080718643512755572918158557624318650904716787764746186282665887055501388013247402088407375293596762151035906797170022174258612940307603051442420758543881371631154553437103311980324803371840846929952740318685003653498105067470914566694847223237337799992863812090874764635904746975015034769515690407546742452540850871050413401241534922191043884336422983948838836774760742299896948290589377788507351560268004907412641826179067223713812693900947141168849127593395662723296407385929207447884708771127529912918545470136515398686299474281963933152971747126847062832742461280608370674767274649649405302560093697239370083457771131803446325098079010951889470226010590545999327020110490677765028893820879371238512353567821207659200896735846732147084721283462728481430047468981989591680659238376763455853836925596193664997794087412484824536627036134611584965022247091846839115459684493414199701873693196161931667879137429020617656980566959252708729366734624829618844513629905583927534581481290044911587508623600808925813516751851218126338697792316001792843259145440317594234934842714352505555961685742316660790742030484263653730142482841982862576156318971833790220127098813893986049450797062830600166581735433834879565761394933495248005736052388186995841155644642185899959398074263172036745209854085225537101153166434935685235827559237601798607275335910086009918457730654394117549198481787355775686183628071209262881318685746643357037321543893897238598002510896538510958891405773806337100477854805326290934784031263452885936835768743075074515205558462273870353836241644402859416838777328809660183100448339591900668245192888542616972854768240438146463401470938160622871663807845599925238278979675153013423179284090002651985823314610910074149815606884644369534105214512870593583236496813702854539058367453856932945227639381716491414696628703847953883234382607920303757416869151041252211341003818718748871105639228721419820326923760503243152888104284141316527659492068324845910466188045420505276917738538761134504305195777457688717084197644434699855214586611091837467897916524815250563590105504784488827939243988337491657440374864826642608538279294067106375042727652802327255391569319909966558762902556182429993842656644019332875210693238552268990412565898887954437236708499747567809800253505367907084961763145269742190176847048933915148250498689802855483605528882382236683903506048351584286948860140850169429358789197238964551660476856727921489515816279770735259613264736202607977426497345419050957365983938701750550494341129317390427527110049968942933906517783804978610397406442539600606467899165549713599608639484936792045496847043344234916402302143769051003368052282934171361233604705519261680482154690466641593724735934331297458244056120095535211232451612118715644710975721129412721277169955044351551810294404939102799926073506155584426653988102389404044409088325906961880987755170873764420944546175659878708717414684678343898572386988876963151298293099635368650825107064329805047042641676218461206611544977144653957017089494040620051960319421126398839308088660129079032824329773161537669872309893201405605221644242281218817414376785511970158618110581525392002402960201762524939737588636504571502155317364785871410921445008809010045295882188456316230055506389720675669733123994141059060124793203289174142410746776087612463690526746661382906632907119278267744920169977977709956144264699471016236401972677412361661422572913166680711621910920841053282588726922004143699411092899344667055794790706900208742567887006197491888563040167738097426654338127371621204060889156177557341033837086308471827293630108038059447453706985428834166316666714440922025301179850523195926738872275968362761615451727337842953323045824722039812181706674902132433789926024063217366475890270449587124554967036845111257201164907544877624062712277612102205611819002354648406502777763331756058621160942538815364171868389275086995921764549834835526220964041037628073115807917674458227002724211244345582650601274904582913321572591688049856276337185316878804681989367492982500620174362784994431712901235769083783135065778648824015018559385943613111141579807631672091930252421262225796963971601743088271480855068685138984513336729090766697086201642961987129421289800108030911271774387995671249517059681890930469640228293569295663184074244327062721312019667384736838208005028311085082864631528012499724893166966498426899235056419490367427992037237550859050817217428580133286236511873227623974675287459929337139884063323120267218656076628928642427596550924925483804482446608025878306573046542581510912266354330188300362402136465659066536151311497740230177880324044739050422005479398226871455950619523587325658710828013729728994260590663782780451220398676703633901302131106438908654619608324167717703266460912046818075400437835375758928573749470910087825381537677757084869048531382063624409112530373549297499845318835737679571951878387519504586438507981278811012409940137282502872094746682453978107620461131155792948970838194725048305200686826127156025225480799792126590665107354103590183348658634910455366108586206688759862190974344042978895224997708661592136310465500749073308883041053068722714178122156295186633739267259324265719729782885961220166443350239008892030912340285300316156184477047359961575925590113508224847788684466522907990764562809714452409456510097038495694970900119799086894355130708276495939825222036768390201149284132411066256321148120564715732093548951364106709144159432852909113183917986407274283409121889523672918422662325339289286814993679474876562776863034679050868055623985515630389756026602572389768767314859101308535736838725461128274019806872146079788349861705507993480046776484146628174812820296327492807415799396332037891645395454248208592597668875491603584864419099630636597264268346928543808745737307119455108094564108873511812240936896553009799850315477258278430521553778219623514324648218399013436174295713485354840909022798250873559214557130808422253783528961041485091640748651189071587712295044654557637002465377640764667008151357809849479944402372932794530802751290639982210731720321130572043613269007343418741590640560441758769034262932780910872080644703011850812516175880955956452480492808473145435505415630155447202588495091694373233683599506484667864651051740817461529825710275575305800526835476839536816758174405577225886224322326739956331853207333949417213566480493319744088629667983605428077402555663789167503779333281973763389189304113907949501619571941696346695722894019946388752089513196364540784567332486458116597100875635717378648155326551475701751590608593609163546543184850082334933935970105968862515465098780749325248721209229233366627385306907703757592205220196420884759987389176213498987853569614368764333051329521148294751342758652258089732748882547088194897231089852127007561236634901676721585622123815003191863301175479523199113170835270890868537251948162321823033347691444928023489623065333638875859393685503474791197705902540067596305573355169531226159643113132400530399575227067588984853826551282495420623853758935215490263638115101536807907460403801095189813150275853299318072434943557132917825940219137797661065078835232109662799099428680546199344693577309241874922005936712441643455645217453970920631259295541437403157137331378092616952514701217138928044893223282429687718169793030283928091459646420152565940612939629880255864202865067291707475739521609543241553181960431718379525673420960919849123335351764171323874047577909954188062758353359506505716362470090059049200906146206260944093353527044181032791189871300008560322408346870628183166968227161708923356836634597434084584571882948279220510647054097361293678794979120308863007518913076940446653550979991312249766248058971483310449537486972655415407698666995202228801851567824687729480099290551768380039509480340648722453899387828508201529709666805660568497608003321663496876902429585803238106657032513595174446570206276305428337366050910870490500289912686417850033115737939434500184005992835281926968268469084074564488485223983458593385649596937947677163044789828107869128961953465916880695722086896774647276342027210627223347694127117036997084499606162787172273188725624376883930039484652591712237202561859128018128189389292163459791429089466042692028704953559399596047267056548604812860366170499476016394130159885876586076705835809512644109712878718097402749539513892312154914287441935063193535881515317733421268592241316022796312972557203950452928548659609132910454010252665136141847796256745567445922504652659505345048982831061637572152820552562122262521520809484967694574606247945507673152096531450251391067408302965347276801134438841447954902753665723970709462962697213599754447998182486452912501882540883497190821070212353249461624979007423052026662910158255662949017623491553593702767482623568185754402347842896183239946143084804366908397372023566259271939228537633387301589369615567532618171311910584342003244003912011319242851020284328438951159518417802408789712314112752059609159784509003941504253132933327870384014853942304587425253854173864269443995337605370693460041077142978350461217867130803997621206111119654789921109984466433273190305463735055052934259835724039303276804895787623989096080900912646742641982148266539090240034063460288411444514328869941576032492849520392881395053879167949188313772237152004739840573385998542917771502008984317950572661649523661211733057472973743521470699551154707515790970771796572910359714966455923850475102424868467355097311144254310797192847406919223240080413120852873345920069140377233051598406731004742094469757736969974697442699580167687536695860794513145166211943800882766704194425819015776541340412299469903121323973938883763677569604344177480054960913351862959534354574534848026013910629343111758311373385297423804788827228349694784991573422178254865129804090840483142896773583008295007659386601821845544813776043523800156856035625513645348362857969700986675725424873308388527298638014782636564409704994316188512473024909507238883992612208816334830787740917211894219398798753568031447406096563511410736569578649875987108431001612976942278898440288363344252326233487128861647710710872803763814350827165064736510383233553926781660879466743619691656641808113881569494702342418683563143844792448811694592491759652120052047227559585374690915164527624904855939485314755681797412937524168386214380324487250088421574462468912777247223981373389739552651194796973156455187360895851868667932983881745710580335821649244801117634496040739922167072631246679030008428923886538960387600023955045582933481437322661801169155539337891046843562667201532520665339318393249062930726246072038430814692515719066062618966757125873150007730884984942064444734849822583542562119462632468991519415025066303400459081171591305225173437843680150282060785043552450678824572431259961629276147119591677836287651673162897352752859378237783872216160178960072051441527248622854951208909322745096423320832057301628327201752330807013279616617704383320117767794756146935499158972258069997001838083719631917182681522754617584104215686972407231279581993498481335875855530994636416780299717094364653653621952451568159237915314848625552607230783638104852151208834988179738807555659836340472571378341605753906234862180848828950473778893344750285893749859130774025549856019045986756322036173433267008455554001352944699565582896913182001991254150735503196664222261299437890934525509604923674132508167195359544074797691209188338878793157813019212041810277029460016148717786216379672374727245376333636215985205853013888899292375109024225359505594788411773059015221361257969802285496059357909264689020404970188489150206422799070284655966328654526841580377747669026249748484350829568419671970231088867254375655078822112540478114635536082864749776876693347896002345273135393528891534681605089312036381587588952320541386167362005954906986218579495653572603540468691909774115760310672839898105677874247697075883341671449071872063190651570083995255579139725896542580304195637482132229420951073561802214284768417834525969208307460336811038490947674987166057272622547833318571084683032273443089376836155251445262369049119743114770550380087329590679033809219818077638378373654811429933187743964816398050889189133120745101984774695301442904884425336643679054796969218259880269403853621753902092385748294719033025858976530029044931931158913824091358474359041120345567177705903921332331414719419960451459930416744693080127714196179114788499537466055819429853273027501025789932511437490931275838994393934602977194375475658518247370665028410695330993380749943905904116987401177882941001236779487839283283443093924242559444276040310543446933717641916050840749054153353434146021924321242551642267302853103700405909592165618646108928304176298324471537709248038209191173119421807503846312051725605593694964623422001207334608941347047928092755250402270125389115233563686248583558509272446987422683285769754435207962761516414704087130197217611315155298156020190130390901696569843505778055297977463946370113612025520389488498981078810569124281274696845316838483814403656203138589508421543387304544041711804449876696341069727796699894538659499282566432227311345031061878661381171294332483538770400553169443940378324269815645172162252395122813261622445325694191703460899863848440859091742796923592925912405278246506902283650470997906701594409079214406726010858976037766753744799825698877859828941521328876129287687062052568168898358862635741440311787114373337909055513177931404021259329559142016651965327062223099672969897569196287300008301280708955512770318307918062239911011574326318225631666123114695319805222697034260749015666540218798823601208559906552112489464224396333197894047859826624326629858451978003085279989179849769004973299222777621506389698430433636628470552603053861657638713317612144518632458661092659273266183262851374186827237439130969533386122005514899620263252598882242930322899517450249240958295703952768765730296156811820435541362351332237697185660411200344556453695282293693978017423314597242827839390450986529397631570620868831986086908238715315607390830024932527053186892030402062680376169288672012950132263206839713481874323545691099539597175213764616067810381648166127614220784071236036603069098415536096003085788653904708207713058306885520647462397565722677988134845656475162522331743822144415179336967248319350049479568919820955801252344841534280956835358553953369825182182491025771594242398698421443424108433418685141438039506930842603388596580432665841214992668021470183612215360442099863851083366272139101689461463723585185036949579311978441614306321408253052025257056116815999466459014640422254994209859148531942870014387277079061012504672030256641421853883690122192216130857008197175756563448317477544968063919031469910070137987105740135947071153470502328184589803802570410388209614738704882964743348391304678799275361942435472588611666936706702101149364163215594134083480124284232561574812019174419175559119226991493813494305807481038928281711103194506367567355198927343620498697029159570185343893483534507269916343308204256298771796115138022031622865603357928294922582620810452046608022515046107078604004849819054179599627126642234141649307026041705674900061713142876055312749203916225454132059301557272933323499673310136046030618819693479357659022112429334794428526501039451435585952418075008346330437973211672466980181178211535978392916456032567877613738134507837059992117052531767949944455034722254071348123053559174236846549263041349026236644646063878771536286398061407869410147260122370363644872075910247853223001944471806793394894194282315789804919009214416846400724482936161876014088232394063394087632769110583885543149147028485689775974532447921757281168500344379552324049668687314614529178444672952970618767102821573074581644142565780826436690490884272250678801967182200176037714834354641311070179126667902744875281503411139320378678860684409438484391929745064813625752409106999435139799476670750078405845961314516522371497563541051553199200118863229654326197552193301712726365536005122432728525002085952312235842209908912433983391478240677875848114431406984714333945088488424834654146764829694771788378954829408878265873082611145148996039402871599047487466069448827280767623858026591082203839201515918179046384264793028237346280326164423582403029738790740220341493164445192951292836365397544653908513261585522520028714922680271895329525092154622189484367861298892836121151184911650521566234206242531551364283984320181175184043195202274726204468200442830178233695703313298503568794208900478064969140794393553641991638628147508439979231213408889488388971099712178263906331775854596534485742313645691475820080086385445225691894019297221103655788283811549891624743670292036128798511560820914343341249124171460709816369275881970010058955404239118808087239957525489104429535159520999941692689422514354747630079338204576960413247595957054995509424556156833724806077793858850372094802234865524430965436613738267635027914055043485707882250885827959457278620288666216129722820636552604236394350170487752754493430831929070539006513001855222939105262790159565966798218354629585676179560315982050420369444060558063273440838080229228554610399807084307655778629411822860125634139565194370668631770583613955298891525443596953473594438314809154672282224149013267437117475488208469129614720852338597699256902902224268063894376145845881149072586688874361703931602260964309962545911731409134873575215330376290370141509467456313717080170733666472380416628903577788790158799551751150473194347796560743428037723798773980474919325147280444957744539459048312030167634826618751177482054425406960231713244292484715248791722898577506803450351622573082205624587187631528042187197325901375004085655514518875935642142795423688724237514298752520065735675568816883340417311353039484816583213373122322912517989436360915671806678987569826360264400716696151037440934837543914946571404472421935784593587670032207401160451801215515998866089270949122608576918813959092357941835397299502736089178250807235539120520379988852519563756616844605961658957693817770338922266891472428389957872083245805788707745725653740551352631176407211995798470943343578418319451501839223186954983810165615728046468443303907046239752099278527836131405534743641975902250902401164317394158639007346166989382407657472005706394499647122062247554421039342220841360304516006711192105845255438869668401807131277083650653232268320480387299789628335837719388817299270098378488169517588378503491640926034316512952900578230932490551365148197083069998003202147917266882149108600280366002272183946785290088063846817836791440002156705802062154352431804418206903567472795038403598967046367708817955544730331640618992537143490954214103812940668842122231571842275649750886061604423117065972127040943082087824128067594652401156869172578906202263567503509589138733037113149642059573238363171272360152090468015463658197801773665288222355547310358577129269869257252089108870124730650365129055069939491193486549887198547076269865405711347239549728075503985090924224843029739937014880430248798779671176487904054347132918803472641358058227538551161260654481075602876627642112981288109885513900921060546266927631466802615452307265426321979937647609358316759008115146975499977947310104721834726490745613387138149911559222269575822372007366911581864477924364915842615924474014521396185536245365344773548407727125782370676377743092141607619341082310167708419206183404918479724399844172125134880323445780953062278207452114635874985284505334697722081250318176880136254024671497536139544762559288566196336021941082890031376005696458191260659498589680921611509527259165813304203045055065526082679440680434282697300908011895441526821810547638571336039313476051760489745323014931899995937031709555693739695443688111589648803626242854922971483112014008443932688070006892416898702859921675176493830630008748478775278564653538195035003757763828567128010390466876988673216266833881057815448346291004425394385679900713337618975675212941428050760122492829588767492409317443285506626001482044887815479341217140444112475095283435330221794768898706301564579347403614291824293967703095873450766716508378471126969293739503630151357562205976959796870256340000066166456426347712314623636696522485350815999879289802591351420179559520379152628114025296544816087067792699307206467051089479947750849562225990670709509472206441971119238871890234939677040740279610594845021398466460677076263214555177757564045773970755946065963764447196716205218728605640436123715627237905671982517527956828165815019488185230754564280367982921855945342373630891076162188693696720384145296137814996677738177935977129770160819904031058704176841719795116091264346051930460350639245414390814555202268881767087151224822059614767014824621458482543041977890556270355762882263433995440458031587314040222040761184722879118529758377986122389500997200111122745556051449506585364611049185703561806892999118024867631673583259588918035065716354620835968046456249528943204530420643289751794661429990346641814197579490284721566200560210436124639988476526241409564282797231388664535203786272647168233724405263298034535860588206591829501973707386928275123645654380879688865407938143195147789216833048616492493093969858857868401080860794787424975634741093588818730234288297012219664501895417497827822806484988128252795349897210254315967722896147060241392168887435672210749154359467931841892935060241451363691936046677849068911953201231730861092642985847376699747790064014657655946579636041602511811498086217749563003045892435658757967155640376205690632061382265276043494521917152673890327032157170875889947956687286311599847084239223916876620585264879148220733520330972716926922269340164341536948512548348214670436818141829386530819975427053359914524686449502956965507102559558787596356385749524151972219736559929355883238504536122703806363988216123989753628498254302113776921832750400537962353502858231730194640399343350611743851131243193413428414803077279972691298414459330353231356988081891500282773023250817030483526658648569336322092577023496445538136092056527006844995760442838323000701304559313995501833286636820223599448775846356815491897685778793305946516557221380792877523485678541371850516252582718993831929594203913587229363145019105302508231183689770050460673188796152546112484723945770390254637400053992137003841586255721877744600847777135917255511587781956901820511623759237032542913447954819581230183456920502661605249371717818846288612966353782318490300595118293200418152673018358565353514069020166244856691800863093540339797030520406788885046109838691781670350066383679636820442777573441690411355996435044482356221997124053824010805601229488069584823752511248727910898685044572939416131760185435817697183264976327516011584867589499148063207258942963738067038403398621232725201095190914827994598951958126745358571448375921700708007545784576748635025467131048602738982234672749732081137300141084080358709734123282785411979908972695482102959832371068301667940014246138509236464458581791267385195847444871443761298050437268657393812007116442864189525849345400921277132721095823973197586585568774861162340799590789493663410691400344446773032862861392933939727011927937982082684516348991380373309202555831064263403861029288900852681907592702505817540488576551870311483713653119786395206170308488574541854140687980229093556087903043629878000529447201304959106070579683707189191657225357223004950505253703577226792048522502343938398048644714637370303835791283965391195165316603316981959736166139647839900581650515051026030931471659889116722901854027614950759906149159474794881089349891334782912902847237715819048021744193011198016075361366399198842979588718699991399827947829764793939305712287783462063010650447975079959450101268474114952483442963356233667698955031124038277063516622982655269360684004735648234990955686577098868596234410986506279917879862277768363104551830817291260133845158535955707492525919265492010091319217005813974829362036316989671118424175456685924148719404770341686122543148329284480111060171286383538994525609342478311129772923726862631211505785838593204749884878357312949166341797651063499274605003573867599747782840311677236312956865602654712959844676129552901312405139181067127115273534630420806247196302252942657739571755635515271523269811155931226696780578744673253443519502552763912912815109706696509190487001269655748487727109746372090196081925370474407922076799861536740085014839043504553088651784963542391645311751222839802351524407497940788007475544099422896899458568789829962105982541757169243725900496173637575189325093781782217832900470734210161162826131470624958817815908781528335773672881388838541898048408103328158942799917799263901732502494338026272156941812038676313830813456829889755202491421553175849250305582442118541844257385768955381222271108038123727863488587320212274447397157938257285945303364211021634858957489301258010989047335297875782299888688870723174892691705911265835170333239613279417566409547140565942996740714916710592455503077931561088293594284268997022651312962030255099819349273622246386480233602057754189151423154616641370700406764571801337838339759806841918066486658040037730109579060074042974231841731775422518997318079108417264762165570527957477630031076074481073802758272115820648227381314354942028643515508961809103277091413584345385144625111097810508957556120456831324062649602399297668937463402148354713537603743964977460343786937462048117987669439749091540841134768751416467437231909226698027023201441540928900085945719140505235502897564899696291197857352041680108400694992105716735856573577954925164509963120124558055460160454901639622757484521208946603259371188013384928365777702484685465910703761510874213648548489509635855869468163266038881358430388007332915325040865327583976659611675633696662678559992885388388948723061374062113279192608545939628888752565890965950879028497442685654517837779862122724385070007285190601691233029239689000652699563479705157051349414755126641987861939148521570317756563142076398666888951098419977981661678227197563972997653240328995596310994839968573374837451843207851952506390419646274230737265408043321862772394974188930132307323727691196418696508652296514184269061733838724311521173246224891832154894871244619918920103149426638568101253956674011547606095782519840280839222189090879197088112664771765917999385836298048537756233512341543084293978820894179942415378429165472117405852926798724192458098162489302597407351494996986551878244461224114580705890698981478927534993481142334517220930240669556259488003588688473202071540305500877298802075688216574082640796682961819804148619794492247363271860548295579997094300134013898221905896502246842093148930464526102296867550053917693206925526473619382225079615644243570490007262596351348424550428723159225736828620883175120491799448351607834398538961735933097569400850846874943446404855798217150675092964673217836689509566899877970439092956998788465347709181462165831419032768592553633982673837883882317060342128989525017207330632511384299139743288643585515243924924393559976699604816761091633689173693369293481170087781453041492623646595255179791517060671472251885309577924350369745519638942149339240144607613947372389975858383239374448998487696853250997118171558503484291639115556351241785885960211401616677321698024639050056058281555991050826868552741665828813672458156949190823734881276964839002685848366191553859484223250794438102764730969700416338764964367666375074914285069510157438516744586198252385746152982624681272408263834401110946990050452578088357256461429109835087920564924527669899948790470703605540760664539029901940504432750659165103478812501317155678944297964097626926653678674228162349930267103941637180894839912725959141131632842051272853057114514864304660286555370163264808172194541918380149949572523515968620606622179054545572298635770039323126953263184747038345613998233101350932693548439607666568440860424725241293019887189236605791548633260566298292284158163831245135255312710754192759558237155138912199523259570548307419765779025128060077423728835623508814471575600496272500483880226688551781388433740225175947584370400267699919842889537742802037942805224221301250036578948886024832785354298844772996535393252373732068076278612352521070951151501613853655723220214321973102054690189862325967679525378134651674015963543637469180473702795794037771321980152746592886235372781117355080403038927460937786129657051730445976877372578406984572677934915335870592461929069744602570524471165206598812014009814334682911924642810834406277179952956597582408216812338309600441289815872558222287092255818317124891464821998215774660467413924229333648018221587386927591232257551752814942225195718927346820397429829656688658792998685914852821393198926307681496254240365491509054858287747199838727054216679856298919343935511384855382114788456622956743136302275658034858157148007360776677910885390599847401954501886985482179541209867984683206724344007270958428500715380323422124115792904235015019317774245726946433553271769011237282561246625743871075975312388815848052633919376396155197232776031883578479443964407034102210155644193450602078498703676047617115821504584406667512045939895885905075729074590674842746937314972619884072845163737732405544033181088442929767457251788539356181786668088706031419624729784946184754915026291796082280575487598993926296295750925602985923492865109298319969506475311369426805309416659387309792003262852278058813305407404604692515474738268555485555124708702454077244395388484321424111096323989050212994279091097010206389585200839239818873930148249393076765758147356171886703706960120841341487978650981781312938611272817376381956278997025110860462693516381978644468377100810311713953251046724062398677270037382286912726327424699023382651781076508712428333244822292455489128728650002234776077934578092927505055661946602284794783766161821345222118357036084852945133612783829825237913179455222660215338729328979508549578602043983326432776888898355865142516531110772868581059459268671396462077683603491124276968140402563841838487987908098198153505852509063548726454154128369235144003155859329231239082130712052206790220679592975221871006921279768790019794961023157975708129054794657344702144330482567767116235752345147755097328816278646965452480929376850198473249045789712692109551452886436937685595495070121410909956255270537073618709358891287832835682063858488709784544293607961725733912945365825094284634414751944290356963507685339508082881112002735687134991402386860616330354551193728492804350202943241461625577068055019984109922580267783867238084178469944297965163259798633478166697148926614183696261168272517713181611890990001658537201625573293536667441443607240658074988483083403685888377808643164938019535706504829333708962775211564051262601496969410955792828277852811570423479454330308854474055566570243405672613502657650059320103740752652991797822562027429016127134815375773608074614537802244449046347279663527425856367652798716958484303813353854952747316927332657944279752580968493643381810804042274517741697821454659854864947379876006689533166180461740669781953475128185786948107570728410566705226694653061026736084691876720585279335433946739647427503811846577959205131193543883204887608664826475388665151108468785158073870799709426611500538341955932312670982473774078426437388373381826978576451553248109174297986551399243712368966090152799057103739530491191883662802105240268537287079812265372171289086413186682978311022516733790791276773863365735126483495898625971743331591678194486032350517965760595602694990326921265757555052806274848315675996196217785194653896729386481884049409222767899049121035723857046923919430843989387396762729816946295253254341976675403541394906971155147601301608430252335218834192512121214671049549702991231406255255846914314068136372562514637112877917426086111204739354027489711825952043872716338190838011760477882657238558005408783263067634637310842023886786191946878075731836971911459926265032658815334349361373719267692879763181467386994916050837759286590821520614915460900431058208683438471256634007817593927005786060629809251448425588258043267248888603315836661157939591007138120875272585864335169100023335275624203746448394020459003640329587108073356481353278273934344723802676847406227786529709631665556446368635838410517691108965408956516635853985006215540482913938370550563656734606626720658222812418358747235875271883709884066508657753290712793284808146963472942041920324206369050436669174475583134291178519709902907339706935732139771567179336303922181872037237464300850377852683942184930473423243495275745868022867273116715858265566303274295117740031945951079771681071357959138791825562492905104631714760161078070589128888794704921922455766660084428834235906956085013481529944711474092318830256522334840008359263030240732460856555546664927068398597990893034031959816967478039384061959277771014316146267970545888126563862572375697538540925172687920484360324779987662763053633854588193564449381344026261463709719784626838505339131911460505302227365119763642907572469078762973069017714225556679043262956695712004742752872129972316586299666278087621327185961950483594084549180311384049565894614423394928943149707907229761531859789626620182559705063110591425321702355101370312300994768620935168239362766465118983511312022349711485843515450921751945274985437547011557306266899953987653629700231674553308010287586841003158041555238382823335486766888950650593324139148564638184733779313452379381606892310853106252683554710588552355742629558703725776525781349862074047115008164287601209311728071836203058185311410527401627859683425238996655202359134689116056822677038978774428720053258468261433240376252197927568443813212837136712493654816338037780548979116515877066910604635371293541196075478907642680562099377863864515231833793682463073049334347760106446286248887141362702612307867914436426711407112715200321691630526391703152720529593129487827558196551077897264438991022303362123578896131188475146116262478463701407658079436936180402360887795187151759996168111637875821646441136414685667464591264332348029586372939841848773591964397838572756633024926628238356936258967187145479080643264404154571420434197746310245856374689943652981334292555326126492442704022082002088822741037056537387744157015966251513466237868615296648689768128039674080260226311866684032101286498175092081634095882913274507879540118920241195733490156569629477636075206614043409171248063120681260063933732312630915290877057148999226592365552829198675508619048638948869141384197868370683790708117386182894936234834163228519924345067586568629503234011634181469481194645659416332946686720345613581468496291187768673445694486365095702738232729283279350129562288075947663756235534552113844093401289818221575806982851165798561337108582696532621260956120300258040708492330623753052602381795476950864417622089318958416954524346813381190851875660900829696778512623043472139609785280502838454513075280907403999534010584811144366979545755530903340009713988902220833991600669784481341522552974499846970528754735091074564549407146075959942784067212051669590812362814939698421947396040977538185018330131987081401973044843817871237871305734440412931938073405557462628742255986757811021470077354040725027862042771064388354762881263835561739077301228956069951491589759888680536623625342758629607490426547343044941117483031039409414277553754666113261047208119245784812684739625353661528072782886629404398550772382052515530383137298043686067130213588484966961795055201268375029797111306478708088490213485972104897645280102356855505867104364917952225252413268527945569574799157104161351569081193947641533545172964165435003725933841364745528008717115250750728765992418117186507096287939022565932383475357949825711942264619297513036836845850275128773164882675214585160490135227363076701786637474209751176299675665543167604112434987168432238556089186402540702802345786738116635118699052215648671800893712187416913857605840309453698778427370716462018115836792099882360677811734789137597047336955872268570950139383405507203689367900842291568264456258657933008501447681820589815479702367648213736871769626417543196876365961068068108155003638486311190875911752820332798736998108489105348387926243783748510615303179658177370664045744698136239010147973000506898265184242263520916158199171402357125122357928212594307560695310817089518892173365744700344453421678274537880742462454382700659024338418693658996549107206593000464573165304610857604931844706568991927736375858973932032248887107721794027738796624661551373797706952950448895585115869238515022004814336642358966077216701155480381808239838810634579373323296352456333513292484520782979041134242938834584258956222728819313663100272342749630207114902775920797969910314889263763084300808013832756873519763001512797729690807706274906250472949129284742256255820610242069134351458760522127187880100150157742984187776900474231321806210202443055764279668067578667230222317128642584584886508574763176895458532354735014437394507273649068168385438664766449037243139786962677501692296534664161722484196738133496062969946917804094717778135219344928524113709286399253750018695843483776634479625297318636963419163735100494393570741511102766476528177804508462742270496766384882339817947684819835089706688285098540565020456983587473085496716180789333515285099231501807046357998042340216757917659903965558461912760941531650395683877481822812972177042197662369776708619570920191335100615013109120091630992644460441605608761046274246589282326134453811208340772631370067832632034075633262295555303551477034755132066029271617703921427638937131559853362844515534291332511527403526729662228303411832661587724958781044585313950880612190569454782404379266865783705062502102375638434834902032494943506761942767324193785377994404599837788231730740283657969933525968219804238861715378004361765711491243212592964611639487951779238208902043521575080196086724811384441553451557475865312436483983037178122917436654478488164338032380094021308105483795702582108362026887762775322315255276039512271932450381349601590759423119409355556064769055245995933901529185131445986404970968163796159577040552893780508168468233679059401494812119499420397709479682003959837448518355092803232763539489470358941046817470231423872230772254914658688516448142307860284867470911118638328644590506102318840767391425556563210523297532358648589685295933538463152550307189496734675087510719002467898277295257639448607669275700910176116372510644893335187524059340532072833500646579346425566784182572600607538911539753419653255072983703633246578052592214085338473963771796764543539857876142157878232344756157142966886030594974237406073495399232649168788128310104290173220314960720397223878413508674974220528741572388249383190980760766435002934955033866474078552803865339210950992961324114213637918052115976308673655912721242499838589393014856135614333402597924909567688576555823157529417025059622477937698870958550849214579415853720332200795499668621096762240048250166849675873649124769640255333073789580612445577785160533933296777606081992467933173325008565737152408694922248160989838104513432122849696494429874901363279105211015906357358358653096606547218568246556796655893510645280728339812274162550012110022980122072020541068388511685920180468007619277300375576356639440379981714408487480499997821010317201311557619061081139849347666040104497588751329030136393040437465474858002038352005478728515230867997935148134199564665031834221105385587957389505112178432670808247343964212979908713902081370941696346294316694496145087069028115568406822533074388936970366440335679050295258348797756767334815507116008817349024374954624549597303411080964660668261849373189909086548054463511843802577955447030876858018691662091551452984344748638228985757172891505025242173109483962849236254808482844414703369042810089472341707125005006826698020627899318272983018023708040631771650938939045625585872293448479071910011513535711445498915766309394798179614331420081080489772784117143092155276560509981968438389550638112912685161461357491003371212016126410988356332655338505615973838365583490405384210999536885364269131865065736379438719670271765578681465577578286371526903759912836770141645842755866386331444007799140312404837836938520202276702476178536531676720868736346723694618909903167065636855772322237606205588166843225990841109402806435395325642859104022104786698656185073140153051609754603009121974870168473742527395969192509429165376057008275237701912904764198735189317837288106857746735408016200144285708048619947364170016682428210824042878230613321190122754536878278990190806789908704013144714931980801162730502392841773190812336315619180789322988880617941955783074597504462890791784111784196586070980847618884268265052422842464458767357271991923436390909414087557899813116617435136170380693334600441715445539521210470589084901893022140024630101553346749786300778762989557393146712309824581670318912883293608834901144466875284979132480959391975173879111805382984628721834044703686352247496103004152481591264008530737620222299501274388810414465433123208520363108911404543259179230186656769235328241139058213155717229038730299680283049913486499604376148096135756548279567420500847257119380750805562622535763968556882006936559960241974996185445896832395225529981152404823040696333948176328681685248701760923016176645478443351520402610726395278619963869431353154045843656531828084888772163917915870778763708851254900655337837728742516102270622264858022549219510418384066286595705417730039011893358823392757090627961671397490232085565128368836510359961936137731470008121450446993425710764713367844098724019416020220165519392342171476281537956287525351758497569964679515631464311950815928434111970110638440015808624411291842000229459712911384549929823521049941057948533211763826736414138738769256192797565349405343704799789354919027000820310856195422942511532295646388081817982289482523746925112346357641966322004101206497430230418670622290612369821894315781601590757994861621157281839161613267148656707863550236982439000871989183015470963977064923590179256834398935751954019200554006066929295602768810027203546462931763248494180966737869473969302738102889396545959858682236893230239974872615355987364803224855190466762289546516884046074373653617882602628054592820323921720352592679952547717494757543579769309210719383277824063424383628331693571964968566968554043308866174688632986998613083068756003223575576202715584287008001934478707032164220029571995150030931579478489619754843808515359225145736858592743773169204961586622657935796450913645416069448449355252022892032304975362288299123922524603879481443432734191795210411790708233867167767996914892473426213281854369125887657162216386910423822622346172973975654097268296555804534503697868894307130895165239058660320799399788227858532625274120915240069206800804173428224480017972973521028571453707239916044169293373579002156340261998452057319179489573762532820143679782523408062889041490913541696606730762490949607492703607233531346892780833840947023127103607993184179140089660295660064189008014887485481482019591047895218734899991169765349743736947629194692008603822883535319864004207039767920776747304250441383592636965808864937990578048224358487179659138617377712850662987136113175842771573311530230954707344404198201981221776853769699152164229959281490574350047189184221867916237455260978337436446317974976080066305830576570254541413791764223236443947219213235953263486519316760584402486676492680832308184328186967557125420448984958666842942377040627634690563167584066359734877950505536583380271068378970148754716346569999269536672410298681634189888084723297189900310481138962352215259184550918937911971966463482539131428425318569887648696063256909428391063775849485591278245005847401471046833151192386524466553247748252653830157502761181822430220952216740607561977189354189967512988595097578715321956581255137032096886162270596820741263713178096678901293911418791738142049657974511986831706306658308131850197080445209568699558063438011012891315205722921306435054249206577698137313479494709777664004983104370871423276304892583505242591226596802783470373765029776856374952247713222953956698148417795554655350979402091362982861991291760982877977395812153935281953102502328399563298215399365031109452755902510286036312746203252715172889439250229585238671735117156586772013190750595196322759184780494944048492239553838839978513814363086234954690021975207202901763866938511750782236315385299050983464128994717125743508392823583131630135436946512144645725116009804122387013711044393208405711257951447124824450662152781459272953878287575176247907250045237650576095635524947713511653019689838467008032232337362037215779440074642473138599136154496714170173704353693651424880257074154944780767451109153488118954355747507460953954999321050029395990381161699630824586476901674894436567601804991512917955616289301306369577019584057292433548063944092363945891853171342463752591062784803939443635180076596048386419253466236051354601272648521914449754391759357967010170949536939092068810888576815067752028771001281012627083913742710808355845373833892525057442982473420334154977325458349773066455984044013938377445333328725828327616722086124638300521244839328247151119351037418750535131203037497647640249894521394123601743794064068521510437906986591126113388409751506725047385594024115149167961796704236225804073854530591689123063146704425924609001795122415028862616259067628627067045902719511993466224677682642246558936181075294001045636598404934608234071914138987683587945894239490567035970470986529114725114305472819852520861457359861750206332045537560807080439482590406633130399309985956982101736048589725426393374277422560633221042543851473854700515394921586277869382381893033926329480277510958345819907837138576564026044713489295145832788823725266710232822029261694286427368109680554704111756517740782426151382729982258816416801479132188937016356214502226976732999246242439405470849635302098248562054812403115125216814152013327258191381045058860758657678534439788848649833814432442831808807407106638109848362568385819303679326110788184765891881154305836801303625545443710908243567739685199341214909324793836275429219899131903622211650972647571205383769102495530547306382016202738948826097453334564040791281242583821198761218672706998582656352505259513239185787319237758284831847598976855148336504585005375696743999235975875969264849091667216066219275608794007372673094700223069232761217053308120274337624014448699026750950868978083963800722510208361388868674816310810598535240326148079650949167590541676384196587438280754273802571541502874381189789881765115608747953060793018757802315700051930176520310832933303143696504043221377958429652856170744434483706648338281994198782720603609571598109515018620239088414534235590247367697040017967710002438057846177030146265269185544777367950877064436932175792751198880894228717080975995306935171617129442189347594679512072885568582700125046691077653227245815438125426144983767149982803597879656899474359882838484627507612877728481306886706955234975639152871098053624521888134475891873805492492055945123513385322577646597031659621854913223277787649033749717165496872847022010182788215631637088869643612849226178616988424265065772197188749783148562802023638714041783910807945555512244007528394360175063436153213359184108951731189764875665127129368864087345023826902508146053236708400674463897600273155573074242663019313909513026317955107399222593597108163909880946103266749294456940086528819729149142748648150567239140315859110434554934637821142431142301136953376942717331271284509612493166996812478639539176400868756603447895074459222053599293194758936108953260828915097194242966013545237429603766267006027807069230675639463805422460151213695351204702578408229429766723966977970777358824653595472559008325389880098436356659116625028447517750364659490281814169509269518888617502629668128474240785040400903489124623763072054187906387674218209715342647437461751548126395199265896154699575056507801120977609849409228327139636301279729451654876333671116937896252017174405428743776290356672774162053782230961152834650037687207591882416907563381723221825983273875205095187243425641373111476134296539345331022348520240101017265826708774991631583912956037705244616656950651462875682465927276148624739662146561623899441071930266122445756281251940115448804342150175641931460655244111173646963992452804004708468093087490095960925504812643472048344149808773190731171124986277587226502708478152598754189864758433849111947309902215060118292749981826436118224993711901038485429623463067115400183123603419169088153888815084947709196987651758929999224458373152228987709130359746370313532801726275010150877751768210665605731914966778279433813107550560684096340254590135991700530463227160462497600090292013861982091915111650603068272866954591255903431801286444808203585092636466002446990104625575265746385098141661539217015781052775040692505034218117155639794311551094633534447201192060144344702040824677797471450761660517361701010317739200813182712271954966090976548767768786756124369800902460599045841251362284753483001448227852869303812130343957060958192902417815327147290051316243246879366303624910941842685985762420450528043488585263636323827647923561542695576039889573887553205949792003363660511569297707015234936143098467871859953686466699156006219674397965903018017423262263574676438206927192510374542676731017592615458748419117517534600517513687268379416070311104617118170867147263643937334313210786050249534839772237088940251556036268966693525319980579345253267481139213530056467275686313364688556728464527051565703354541244797589148492250806310328133779911948049547542030852564162898773087250037904903578517245971047945334203906813433355369204470257668786880784446343465391291722115678961412283666939023093755354633351269481482373062744690005535402506604821864183488122547578781135076480246116807867704371030770155408190560759478801043144234719265945307838691235896439403468966419145150341027150463630307711598310821600717566268043542215680282690025003157368268193794895964733544076820274733126768343851736803583740304453610421222131445913265472356708355172239233078789437807248595665296856647399020844871767850830503148790477580943690973384505843940985584104505051586836875156014484571145072670077008574798347633132501911975237870272883007402716800491309008450511693931312530648284205097301444884453507776719268825941353351356607705985596869331679089762136652677375475177894283718107623250133630133458469461425444253034771109172066375450458402279169170340794150888801183641897436154296072283474282323297710139549556978312777862528887255449807561402155654722263435873536676078404608616801002432113958086821507383729061565549747242482044129741595988571344278455368214410141146059737185491138744001915830591641518412563181123810805026290020655310766855747996747382086601239092433447561990811434978856409282766228681781729566830396960308254023050016101028638834126134191625201864453010041208716264905463322844283151472950091955197804666408041045318702699894480329503083158709570151075616937479456502456833716156276417771093913676648128397738283749405197624735247349602614505256322885225320876385548783313276218612271343238427649426745300655537009806616160473526019788529840293236769048271763080543830006751131314776947654096404270661092301915676742020864794581743395365047285369336251936501817002493750345572661249550583902449312813845884416523151541721635588895740822020063068333414147287869128689180146498637455134043069150988920783281886223910171801698499896744725078398690862409442980240235788890651300095792680366278898415827262412741386578538886845635705014773877747732947107599733281092681021062421772121204135311428061328397226840421287941357947961441391774862910523962177986546730918391250504997703295865850789063748846122847260447390536716520483126937528627279179596653560050229946065853837104270186559506075973815341888046647681920746498387452230845517978714718726201523309524127675716255459745551999431818710607645896173602147891070587497979116272112821050436361426325100346558979714915319925728971767598244930102538468442229930129914112827564098719147091575952660423848536661256566408570689276069836106958179854106997685004953163234336917407744153040639591536526981068057371158246599016040973573574042660298440272192096495564938747117547071804501964978769309951448998432919573017121909059078552448884321782919337631552541139815875915759482818643527776437807008074800235978084643690930071354366158540467824017438777730498544106073415717517774274521088801823857079861535216914037078997941278765934709669865738603020713917635281920829016283957671210227700382817682817040480727851375651089877753811479943553406567708575237630111325470654950202323248606729648443876004274437040675270826037087951784672632667539155083625019953194229454075508984951138715008046301419845891272554367394894033295296677938114466944295643302827975214036341379752974930953703612904094336643987665957280237557579110694088242007983950902151553131761029163703365318937349821766099792298024294560711646748556782048191007168480670801374233256114829486944640514531919045668682698668749428180093544499132272381563337145864654196548074801295970920448396255320111865053543372590024406057772711024467270479579917572062343883657989565335759883717081650337233666350793685890254518007185443118762161709603139451169871790115271776632987600113937479259279425075277048882149770344400663809739416990619487422902182152948169918284941694308524399246891452539826693072706156376285803250381076556591579738491553836542577054670732130368582844004375256839690579990398513697761280355416414559479043958504524901541831479414047701859899313746948735201394066494118374203208930009834467846253047107434283453480276490550216759583390273188146969524392695304291787530532710514260873035706011725916157381493661940643375548454059218796097593835750678589827636838824132181074020848975225244228840711573750226197841988696994297601902204966622278933176867130003709906388262982137974515537083799827350499200395724263638545100665481288140531284187273816517408620215065207601195369122937826362797715780050706607333013166709976607906111377332078817247342456701813188282421181984084823552208590645889065622702513585853793511730620710883316235971381996398758918042943409509423905895591089293927052080074455119320988526234341113143411733707632177837905573578246991594689728061729861283742809307091338904390408199232641264862473199518734210384940897874234478212975552209725714784444951934927073649975928993848664187746156062953697288070845601939120229220551546695547349966187316882838729644752456061796427831328451043246001330129538363052648394160204204895345054565630701541164805844667271750282708724314992169413136946346139246601042443684543401190385970008444677266934464750694231872470381110664273628839946859041813738876599184265981760006784573828487337025888334432772669789036452217501163989478803550178457312897424267551441748504071275025048907355754539134559089031322780284477089387302219300029462012027231146486750146719433140949785081772443954379061335433683299657622552552360923290230611206319509377946035355211259084093566584774909090415232381761545981382475940831128676687887831117456178461738512618785595996774326821126757884859098744135422946904733561157354288456073372210693623116313494905406002631369276291648948084059341063478294848476254730636485066356332372850489334294463720212397078848782248301276048435893125351818135008119359985471564307769907114059738732070566605660155190088873948803768115709664785659647304750604799806194139119639923591173186525841566429034143953129670920420963470939377929314146991964606038193918942397266570720218844641906929048070810631149454492430931010718093986537770098415402418043276724266865572193482896030465118175286723180818907737876464104152466921480881840843309173737956809456405372959582956029308579555721358697537591241875187391623249213302279432096608403347641152087698048710054124436934223230926946303329922752566721629450158498157639470183565635680171602539186787672930109198184106009127607145825870804180334753779812268126319146193974830742045718555988857239359368641017016281961766547790161240690053882449593090055782077347930416676261161894706682800419737438394882796022247985283840632346967876251195183381740280632371986982735803658670220797009564309133193150711719554391603644894071624473896021822488277761833156477360346045374959477909157775387732651494929066140800825226744266891906825566529783111753829653053518043524705916871989953151080871957824243839611717509453494346787816072840970926416903356200548899510563230654705201959410215843017030272373019435135872381171361546833942271396678687915186770851967223038483560787644441474398409106872226998482613994090082572995657133475579309487872696802752347907822001338951585847898703546785678520571208291867561300594523784444027566444773162156052802425458241702980059527670841626150788500104361433963924982200424234474032563760769181613279262388612735937704159740905920163113345082699262283391514405456054782401143917371089987464723932379727426334112897385304562607836349948368635273976419669673909713825765394174817810023921116394428259389100052840017403895466965333199653594961887430899795343118077212523138934698060604692578152088891003329038255105439543843233553036155758976203666755931929463650099588689631399709140007170278795648816695309045791352690448466069267371604941674653319017463245840189562290891497382599831313599112375212989416109532749041250560386455917556319080216189304066497464199039955224277594445569889586520012732400244954262323427092523872525633371234356842179674808558175558505477929122317534823887325260050574427425672692460781494590501550074241350667191259521322732128530681032860046557159512290970609966237343189327422175454924817934339519812134905336881302621189505690781191697233653880740567757849246827016979694701141261467308028641218529928768342390307690446344793128152049869542507192703035719249839726912902352901597536437495314945986024197322935238301764425104950523083037141534318033712846396619855142831716773677081719827279657301451982024412030680565369056787993816272847741271152495191660160244486187481478143494558910860233152975487366465467315635721096203978529843895926442491237730030662206182306707270834404101998342525554202535269204883934537033459217521607775881435888293906770550065199071329648085560067365933984865986123456085783649467201701997442876795656806209968046914768590382703515447932446299653053577346038394462487256103174285873885842998234655225918890330259134400661394756693192874796694948905565104343452513580493049635300999478926040060191958003590591207905677495061081146645133678353619209073512353426181689589255067450991227461640548560398036176648703167248305276181315578141085443144346542048546321619475670548077210052437147261724669508388131611299421568292510645011951987918004235944769801901870468355753948073141973172527345472960420534730689836362059629124954321023925646808679887557771794780273765786330216721845004810050422377712800600225863895456330661396059040563386322354260407894523899363348077760475811236800270224147587575704081507514629581735631824352035342955240344696300885172635858270280948273154823840582323043315175331298259728182238469427198696707431682297968937620511865641535700967811218853533305766706340960606646025351206188868322983612025086170971197668406184944250641281967624602091193135387615622900561050001746633179356440884250373366615898139970046358783547548638234760837071516177532589856679232278408273226150590550848218241394256238736207785645135069759280660177714981112992486729388696658700087741576916403724477436932727178978126833892583491674647868606332497054656394168194769630922946046627537511984958835343469803630460782350330955703064767176325975075270781725727920182134775752599602596760318106760255624182505315084471190221118737159062699076657911858026378388049800901353705999940243493214548901240223128950740203696580071083019843065408736777155952072075117104114243642536778038548046123626758508738709461200510853448199728955479888134681485034301071718248011755119201617241008301885000414820700944254023262335672951301284104659799942857151146515901379808720976477861318392548950662832754667197894785249708475592573637636637392551159294518187104592939472850148929509287798190384462202577675560911677212749675206049572913738196286582382228856728082570178970827542972642311167834081918288467349838348985552001653052932454114117673988238875096849785637901499692412214788035548777946914602434128455837816901348438092826612130785724444442999294815411761551907191480095294069647408017332301068066278993443000260644495963907092186039550217736070959428455937907858146566418495837049838723106945442865727345184113618782538453949503693680760917662033391711512960441162645478474504186278336686391768490389929390445680122273962074285005165667841193035333454079842062364909806687352150980909515333693502521550569984631486041411235158626968356221873376249666057576047666946295051521573790171497045201309180756067297632811181915258639378463279311305362701941725259623335644357462957917571593476982958058675732257005221614595273555169096076634076883712100979374946141056027537125243359628582994063066949164160492883103447585120096391376195425625712084884153947953174840183638766400431647934659745171296679403423052850458436817711867410412393643549313628544863980758606779763400002487844588679297193635826197480288894555449374595958595723598966946054317782319686218835092295009128148600846164798893354674598692137266389304123825695968286034508575697477750609562687212346184989183493248022915326701041172098517554468225363883546545546246182730516726742967831225405918237326383044191002484678509872438594305871133835144500005067439643384698597282562024692640914893256150870801894895739741603744051242822932226496393420729894037758468593439292926199092815936324508627045573167628854309792655329290108717246144081922978337957270488626752797741627010826008388213098096227726302083075798167716442898713924811921927854349053098187970229699020289548095700707386163935648728802679560017468779230045777110891928908122619953020216865145542112131850232776945328077456114006234282363663832988698593232864313601591464624419654357213008992207854921407925633619606520814334445153440175892757499244641370706567792631571315696019450872329141492023631382670336379540534442875278046525424276188902058368790091151800069443813282450758389388855136878817082406955771766754950037130092130152850075390638527675363373251109897244268193570549092006732449462619108143106584577224616707565362619506745849805635475903106639911201221644718819793675877362211821366164982151059881833178388150971681661082785919515844916278990219745706551710828127565745303793146299363295998008276926082973313455621075756722927012404159531659923909569189788726097080684145723477226090883228465296421308566934535381426640037189209074103723535460816544369413061843543267312169787234320927985069975847785354004749571157605468071692050714232397999510626293006051573041766289011619574040021947119566666470347340087751009079351684360701116691411452841631965974998162076115018364365552485234956350349247727544615363760095281442866371696057211659975184082793734686599928389789718997104005996124033037720644567006607729947315189040259791207542151216076836512550793758177334016347081494764299591989613023097158500454040573118581430793397070477058176551080827815566946940765245869059278640737988945690108031588702092889665257383332032131399377386023127849384010462419199790771079394528999987044816170442219646155446780325800247094522182597083528213165091993360402616018761758158389220423920551463798018535846167839105785043895564714374861290366474296347000619578642105610975170454431642483025219909637793024099317206986015287568819653280880933808402766130794985759954329300638161551990249716107223433763118540874790573583711777131348466878244120302051642234628390315272885563925070059428817624568473425552057579285400376086499856975139495185047452458046108549635531446051340703003906009925614016083649625074677129602756575914204934101451921475838332463524227768270648896213040016512417279894810053726850451940212291478893005859238377408471608592951250232380613277158847092153699955601816452378137491891270502142947022156160763999244996390674216546971294523464940092008147399361226474392979670932048835809566953312764066209809636865132156507100583015168230375170507331514715487243804679984849192756062839030428470168683587474576748745835096972222225108292793066243848458200906440221376339242469427163256193728054937924603231877245403318410885733152192955761949154804864261554225249734344391822068568528687609633515252401770671826726831067942751950982054560538966241969734373420153905307297595204849232832193562999164877320820453164262373128349342742515243173367437919075051970548285024646282935974682421622166771804804088019063088519249921162438971523263377632395509249642579993672593402053954102299771451550168169196207881218598209560641763224734491581622506798384638307131479492265626987793960975180357320281133732517248917051018628688685148344517152794772856615149374729828921853205111531652720857881096013194294101033628834453414230896599120679004939197993106632780026042162669807308621536579993869715423248322449647269634505949537535808348830904485288795531443355385650698381648134994889214989631246419719087231378730272469376698277679731020968227632271055891624598966533225380570866095915662418290879164785559755277245796905702716899837176878996361805930732220276866456624336157256739463062856085091818265123600322927506727921355376696004358139865494013351695430838348316957338838764469051277272292022835664923669380309654744215165858362309686421059508045850674385581828537708227267594161998982781650402580860624438141767581359480382263626711861584100472640535483193667087742307661283183058702182951516874161074013879690945903635892871126349374066904116093114250850189812494610115281007569079913840516571610182101198505027690575393741213282980501230234553350788330091406489774326935284839839303034307211478776100352067066523943293885638206681784405299062472542580789037255819871496141250510544526853278373460905894776505444454284549081298070635094029586723447026702657489254944996880776869329449229251658513270027751466439237024832507290349435794744527970777516383809862146544859025330951550467555381948731799416670041408595804277070605270883563649189942967269826228614807111844571423408749776917602530573744312376165662828078213452135549490916183676631556822805777847091486705850125024619152777506290672373989577912889943454902950039668629758545971244708886918229034197822753788406493143961777183282491870815186239478353469447515927128459381905596914959133122392090631681079349942038519553811833289273967116717744760920905704652124226392488759758532011209360411685387738761194859670329807149794869201176570641323132570496144419590011587937616779726995608790783405561927698169524252357801470046148081088821457090921896797064652114659297153267723737900078411832440678224438603315129692812308976988329202579385918828178833209015113124481760701741409910814383362940967330714098023092928558817453677732328912821324564822351643577736272432823033958504501549055360746296785469012666462344243528648312401324149733062986145678354955686266982620805091659179342891798141303257166294949784384954976858135993256906319629217244810259353306357615224990793212404070566070459456824554828568650768295941617770478491276032318139852579111735735149351743321819732391497398999761282987382221327029086705850499061765036415833638293310638458390956332735317643463709334374018304308422237990162793357424347710174428832046168469901922771188743837694374347506699959355574616605202265705226597789176948452077633373774244907566756223979902651083282158583539410685501557956474443197827735517012155469662806178538948553414120912962479508492978204191630350584892258745670920709917584502443186523781757067815209486114082445434032870672710945927560329890549020761392221140393436047553391561389301631727528354983558824756189530602409329383913962799588273004902455194817565369115056887372010791242737427901123748533945969912577221592634665744055051657375061704421025954198592986010410030081993251712614313585455830463746765323236462088003313383940395244265009299543529467207009161469178268659163001077033256521388075058008947897542188088101691073741622423392216173258601387790346384638675970310893722837059317500933401657891565463929829323893506838287778207513982061873085873598960188559141153325301568796690129236616489233662003369814711375422541526985881322409299266435937873395727033925561788410861982039173103854681245990095245207643662917885090137640339027566283185066775287727130807740259375428422885306570653699930211602778747212411510712849242006573655158418126326524872683562342843365904097780585660735082519889648864778700082436463101221082311019925944693802096296883082257979914462620810161616569203477628610698075259056410802528106407482806259212575819947523026947515098797920002319858756221005348781250558015389064165175072301758485965778424754617419311625092234353311484385798357992632534070212210908118391834577591229393511616779784797685553419204569039763867178203282455998148374418367852196117462212674646182986505960759255797422861157201740845640790282775785154745883235013384381607405973094087429707094504205635740514958880122341964179240370706875833523842391998848149520161087283270128147774394089691220029542329579957010355966095387543849766762399062934630173236516435667449272676674117219093450245504190649451738668698350975504663864332092387760705683472622414825439208911270240744073249742010378424403051502047852685444086938497372792074394860257136099535938106487284971938984679255582351653519312777772325320132002992094030803333635570337814565089538944589431841159272594016176903598916139275759950493074063824403271336284898786975922640464043773530848504596015218289618091940194580479688991257973804067837573916903316951717518477514886291825422144495699841888371138074993579161370027782082721439911843691756620370973474727446098638685334601073115494793470250553905979766911085065261608369141246870422718531535285161559346263456204639222561908668279224872692815786078353807501569249586784999753451984578641221094060194814161450210488693017821329222045332759701026077891789814397275609676989279398484991671210764601834896144947887756834018442528690386262285018335266386346032481594622402758013928886522196855725524403017766933000867463978984336388513513817770782935769272237437998540181769115225850866387054340886763759386802320990419233617334051176257716159954422041984187660013797281822766184168743662890089376457100406173431111508093688974209638754527594440765185910178387049701628001229058781943650381788051736222890253187758268822552243963338123140605932488021331142053595421480603106521261961741638634203419246161609046285896254517283656976459489146350121088409078562121484497245223353247008766565220551847111759875092902538475657788847532013393705117450066120552650795922166624958163900167995027433176694475197624442769513867539182326693823572474711165908136291889175684403499451602912210383713957259704092909446701831367062425275399392662152713145753793128240018115221943954106863819558551439768753135811141200389020596116442451253411754090640470626085518057942496537383018638442733861557125489572231997742959494547021591800974100049871804363367636285295442269817340080391811441567027182533222582186833965162355186230646198135614587619329937421716988333285606920825548421784812262685394025825904982300826195288886249445171185127312054834499394504596382165042016970160575351827630855102417301584857527051074783486770277142218093825763461324567090625884169961801255304466043813867830325159414556845295560414547126667190210383726452042598734723197894488461082513008708048885622690106487863219900271997380211723406590082177575061206339119400026277697710013374427681844680235277656427912361510937772513373238397939275439411328006014986564299795976271407561835411417175992477196829354355210203486043947793204723153763956618899808598086382622505082405890386124998419933622069661571250468640324325090301484076815364537930813837368041912594996865178657043968497964151160058076422658005406543125536752375489448643367899782797115244081855756638902499534710761706666085168688561887001451194202428191015548043078336989793237672524790365558997411811361556127414114681372776534051607177830356490385161874365512051854336121815274736190137356088876407405516194981290468595813722173628148117366716263350504616019249311227090294486598281060471578991803616246334457149021138265467011895818760704467410504676218586860286885826475996921651949341721745317762304791297193083718030196599163557895521254775873535129310997290813149466714294024757245189923620366476026729867404038027133221293776151556795995278590291077889780773227139099960531305499976036538078898427035819333182137796411870681472860042048351582224304441863828225841874587435174708327876531990480156255168355787317228104382207976220561045271341485318772267771877429491124139490862976567852918224791701486113334551475121259961203647792202662992798363162663796311531558214981112835022169922362623990272894606203675331593418490578258399545543320975987584237914208610657620964092455947176510294555610369791252890727469823522669223959420285554304568650792386719332773366856116844777862490281406636923921608282668389565986517677189508060002113117479477344801834621374772734386407285484285156977655291984049735696608127857428108858422504018339823294530307939150640692538450737704645741833823800834071914374414604110920040069940971890118899269365826775935537444892070457532345481609873829012197070244709363703858950173589666747121101569016083375869530872489175020869553195401565207406120912253798988362257183278650434246022879615713276053716503060847109966035660253978390074849760090113317370741753377445369429925467838514636551354109658388274952078847397943482642276331585004890858044405585057351263496317279482164906212621802996798145298919111776148289176252295108931255096614081008547461743406856166468457015552842247496181966712965489512695477339179461282245491525261298869442517641277850578371869504702498081643035243155420137131510312102906890006259907748309161155828900198016787394305723008998431630236620323826369242067138915770509621459135578358621543084413389415554937652654042828258192516178413303510186493506724306043067789343593219506016526402667160969295564461513522174252360920802151888826730898754299528807317515462953747686910110826173271855053342767278229283697285631628068392677849460244256047262135976760930743463879568370452103651887758725178810922012809130859389678092443251449859222365385419486078153302956058874749900991754186563754616438093108444438992878565244039226969157478105706271878413199080002768107825911083926249494490932441360007372480727660717918636714313180404245016579837704956011362506337792416014393363189255950650558242803008106520010378064560434814482904934443505382986833025893162752144674625848638825133354838401034397221050126507764451298700334628276582944921569151607720139722932324753906994216330949092218099188456276849540862028368696658927039403924614662090628587488179242243273115540652283326638721061899008748272188903401169137852406912830533380817836330841802564603813707732969208782236691889897184352816939312267423729058231701259305821671407153759876875463808008698774105216073974075061662324041837253670924056461544559192338629086692215153302299289182387258846104423705708790718000383521831445358298048927153619074177733200970952447959749186360811190104468735666189719876577991270184674592880969901183142975832799486276506102809150030889870388135728264197262060215800312745611377376777051028343695590356890520988812856370844188664362329549894263251160061657185338869543708756539804388359046952466583680264018306046755529268214981065230397054189774593639397909803588037497728190234109826756520264444244935225162287882098181116232406605222002024655327776651020419609956809966159893354006798331499968256189816643189034002319225805334006371287583630706496922649803435098702697797119349345646415071356005185282737781981027885479716453298071727520184399687471590583294670375437593931887207979008743119753577652015336432630365263600773625652495318022909416634224405191716447366848172740547549171604609115351232842008769807595711875397264220307879892454996242512989094517258006181627960925828010917546544695793995223768128342456161796222332220174540237798745092731834651559377537924376054836637694692767665033262881228458484394327581307454282751858257179314979963002301420000867440231133403840316418505474489767854212660253134697783523280112875879091593914460900443841354935763072419524954092811007413393968908822043435611158452505745640564061606850554589408586132557581510774121917624170068016456421097717585627121184912604331247931408962861618112721736279171926848453758932886638580545331525345301370297526186844721810794488296276804720363151259621685381607938034036864542071815889094449277514845454157220678945610273264022223449039407626213380458435485356778233566792093407024379861926248570329912068125770589078481116479154375784699469079725172804933585159635400135987715028672083659356355363611911770859169016418432323822867306694471913811958580735972325453949699202829551024541802323144060304211448082203919252740806213576148861995301961964451021526031740575673963387857787588859005439448178139029344399759881503212552027432636732087049108034737110596928861066737808340123307807653461798656305600087239241060367481911175997275212041794647377260902749628989368448664158739818262089959170444793532376135087484085834141648769884354349364871748071696882821613738506386617329132330523257384253419422534028480847529681426151962008486357252657976639719651373680378625249330813982441617625254218107983828997092039139108597144044298208986151639998559513839923530157955566706773038525792910374146637878808926131755022552190447028584292347427024823976290381455447285953063469200217355988762890466626062165234103802261074521660059866479060150808987810954788840898026140490496037424532439975423076849301700511447662587628639798769646562325542300428838205059205345347535976648773981824275315012829715494382139273411288358560560161875760487447079508187395869201056242386931669784923785684540664136836360363323798199589181558378752857018908099684600397761034600752277076111536239420044075353636988553242214000518491753516593351968793966197717532708976214522530351280610436630609245960432193741008548733028206934833639335576845934213072425303625733879259553738837483239266066598256202697054690996247612526955492181546556615951714639110423668905915612380859951632611665299838702318313976190098864711815590866171995543168882418874502416206596648147992004344234197994948607235037018409476157811308655581208118643986020741701805191630462876397623067066531791661717285150774150161445996650435393896468262219120637355155806285246878701172407450141196164411211777443788700997473572012690491096702625401550398610811131046755306734637737625009018131155811092094014534194524244576983037047384271938801006131726001856820850592517217653001234501616170371389912475893576399982430679003185436840373407664769558738353479239774978489269790521241380326758530332004979224791593646606538592465748835886287512725967775408550366612651391511940076649397015497845353492043399058676276630673757870004795261827432367146930808105513474309801730735828200377958593436961616568411311154330066975771768515774075008760900696849805696553335968026210983809810774822871746125018351051734907040705027045497533002009797217758200923244409789759278464575382042186609802911673677167934027311201464954670003643021106461604644690806367120263398529802083807248309369659748915298157515988223557848725115014176128297513909581906609100160089788550558132360889858263463849233244739667960297978575090114559772232095212644448373022722486560304033989427780788221244081906413148649315610143764205626122832403581262850497063412610173968649141831994453095102264631369651063566612473528275214416841291746296935540668786109651379340838931909744296314678550665757228709418124967307711948798609283024215302198438173506082652422694976629246495039972824366993390468712098101483630369718465160456347414953419648159667978516877898253518741623570105427275979625925931905983698865891422353299139009711429743085664948665391235628037108229756063859121421002227838591512703996717220264964359674530617623668192864764543772720112600440160695155344559257823141288728384634265676273748729951803980660711276129274632434722587917808044898696374700242779340531972311776998185921218391975675297541626778488320304789168847916889398479402656089958120898999309404503660892735219410095994451989016706038720760275673803104629336138852716172491448923613901517515376320981801571846731389608076325029559915079675853918649660840169244155470273339073365620462565628891008506113226417955479198357891515928229957650503397857040646285850092527578531677973940179175650362608271222272902006088067279565283868248948500693488935144843002230581499440365823926257350426387310503430203163148369527027601396540684684601645475755798995939769593023902655718547766710610342194930339058838449869842541982237345475450676428420822089360683462924914916361567378162284859213508573380678335258300534787873317047053269968741934649790944145597181037751268438187597040947448166658735750870334036584764440257172357396312672250050220159008512449547491180487787428247269190945609565314716447146114034679155056626028688281992186678749480366474050189617564348909123555738613599610438101944617742566968159839192316620193847318295986900652202509270627774891017233124572741440733412214937237026115278890385486474270061511307546476357681501022053131488906372018104462129714768011409299765703830814104621214957997782753050684203490061536180762374591570139572410652697945878739603310510042570892435939744772735810483042854766390597227426317605531467521633593036218993541343681439279271146613349336028006623691629312697523019660087575521820893814360891491110302871292175702021600465738634197278639295861059994880073132954023310949693383435283251906996845772801414412548053559015130359621441197005703691702091140182127953930029518685235138983083051045470268090769552566011298250919552929269205561345611327140474678351348585902577941855627129886705312321450738710738507136496703726328762006633990014221321221028452853269713368537487583624149518561557457410232559913613847013510149853873364758770833462951701932648862932230023648044370971749815881396238759522788822304869569703853260637414398289699988191383655272175201284570315451622549259934669395620340810726705677659442597497385710818584512110115211296365716230379079686485986190518167429128899010560068619870879101118917841826231465402447160887493335920244078602276239096600405704650394749404365339789691334339326651132331903059856137485871898427315806123940392540779413027284724065324573062424441592147872577341800641426537059099608963602320560392792584554547831867238203993630652218820430962169293352004421406855620764896211010004519681832581621509659361230844563845293037293883168857590975326228645415051022386331572687938375177290708826895064147258720917514935506724638596090540627541358635964645894292258910151628603667887058357689977679546260956744290938476230832057845928965943078946928994177187058048869767523198703966969780836173484913057320365695447460773551010738235604623575396895704265171480477680748318606414501093664342621536443195496793701457770465615685694550403203974143766767890756888558033831068960425614528581673830976601112681359724090153292868657341456278812596293985063054299947003985776357949516202949333418768359202587019080696005126291919145476527544252995693541914855770416051834666995649887849204870934129692783665685145814325424139694623603718527444485460641242327573253772432703558290669948769779986056602897263173729345414479346926803378810106385765465308530427299974238620673948975780150076709675147797119495946008838775677895787319038662007912208739211248676002607579717343812600893285682054205197563843648535694097272932245950978226272687956393978785253839846107559255325156115725681960691968795122699841018319589724111772121282147097575858665968359315664057777721708025907332556250475514670550551622122851794056387677545918337609333696467525600303398616001383949313465910585458653692183623367583370724999344603811762955111962264644142956111185759061761297061193423667535318897635158822717851301118138727983028708291640355616089647319266543550919821451967053768106950850708373752949655639602183141622489611091777940954386017590338870548518967325673575301070278936139000041714299985210501702218397260100894545294013948919087392069412506817327159683693929709180268386659606517309830337891784354353864475573165974287940066998298758450059774043181668577873523230773377185950463301914885711006476636682665124250856204750765828543249705590589125440771367609584994615527355929289553090763926018902743057737685634790362673785426969203569113270620794094557644890672757938812899742811152492198858911237873661335443125313510033257555542171915723197033710135606874306528778183845292670540889087161431444000015450977198386134664236464780220310278893256432227021985925386177834045397426815731343033606189986463199756577503750723947498587215200315223110015974337544351514787490075608914298193698191775459896395851348396202138459268514124820878018977459486108957931873390545781422859073721119386468153704207328685766974772147099482287999633040210664229729129816547512027978771374775383738555066165593411128437495749708423764770431844031938613622056772063362797789367887886736212434079705835045894811322963212587374043268013818935324754037702834384684419995139690708669708087010972625141129126387738508635153366810537318361634090022055347663192394143650598902316675769114108588300854051574902394376544216997627872190433259254497021239434594401121851676149267348983049013945868660794219309576449148829492978334658740911735834270569275813576263286143933812973500222381056693144155408667598460818873243745441337916387422039751604451858395066405393698579011477149428380703053413782590805791747689819197190013895639338424923946320415545146304790618362692019352391717585474036799045544274065778856105111888472878524562862552068564431748244511938555830542932979361721244259574459187739955405885297290314945740094831963883304939304682950428049460956419672236398212301820962027366106943592732230835468113100964041109322937382838820790878653967513054971382825840057909773736877417712043159023288151769680121142804958424320770608861234618933508829929806490573279497515316691489955944373957446445658932246768453856461736337944675721137835741487331669062174719823648786979638079425969787387118970098441868222121222235813478174429583637425724011108145166568058497207996188922422146779150208704332825304937829530969249816677022596642304192469403730268836312345292413388070666987415235341019516790692742341641260929227910521413013342135512643196770449911609591564269898328948399160182744208466486855327345816246956289682542462962427000853769560286030863587624673431750390212170969815481580908304565434582208691684694938990798134154679717775219452181792715660757847032909045131756087550971321017352613684006704009172562300089863173834278826870200297444605908788827096199833141313460107754393836627302731470035555848315885100306561813208765453934939974454633054050426234640584064475399673299425764874908770348859453774575812367484517619289062424593899966632414191997748533268133897462062472805575667929771681590281975399554698462775199595387718795020886787504365303175100531146439320107651159463627722995646289790660186843085934990751471752130275512719685793156844036174216949481706827191676307516951707120029055412578527563954940400828886247949065160653172383694375696605280637212283822199415453740705734357002436562202489935948037830479213509353580593228249232758662238670048941356801601223118082804776723132054351744095411913196734134692159321194773937262857753040657262144826570501456754963046667153529344012104544177521606975452321520583314908797880572876733289714481550670167466304233579200919063019375604317960930325702684192626333313334920312741111532667244683829243356786198247056178190274708109152711797161268975539765053766972769425241560211243529733452671690478745052322019579253109256618094184923015050935781025853220096099046689666041086027872648158550578902910460885551211839494224981661905965114569263937288186092424275683525302471245383088151725399186560676766199786203532477459730190403561467110132328171796890368986425480963955406013840829736552006933204215208754326062617295908310055055308326706765730971475091052301920313865451744575228698004078558565471794948293340219729053510824368193550473678494137386002225219060700989466872700496914996788968939757142592536006832064983421737594425844928927721399516627080276408802827504166199001609862720271415632040580604886395867205329916106668222071911033559278494443387760864534355025709173539350427731139938840758570814334756460918581180787542580398569994486220063792965797076825563547305695399405347462856744747082259157798215654472828872193025658752449957823474218359704919430377621224941081245730914052432288121572832785945886530871757527576327743989874880127156207852833935866263195507045039772304197431663085491174225554185602565980858347610385314347684999867639405563032470944023369126648218516317411834283251987611000093550447079502799377416874155693094185587213595215626388474360098048761575016386722265864683463955646494089632449534452362541543284647671657722831793071260581886211868536160272061656030667962525525151667766232216489769171406350018411585752832891027444386785708643934016659939770853772896669175190978830691659983247364001448073706938957663757556267352953964440922195260181856290204199701861804787392831504438688999235892071367073069589948331768496426117075874263328178493574311503604450232857107395481137640520781814614411003830675048708883038053221372093733489317109694323068331078705919912650663161130508831561162897674158841404912584457489797428199587041488231142050314763781279858277416465579042012517479854271820742692377311940081725737494149640239613153990099001975915733551316692734287771341685052567724400636445883438014247279029778001040272442558595943425947636611294327235506568426205701734004067757120422074100476732605420666051575819867791866105392661965799482159761797077458467616389758322722780188033918086480757909310180795295452762897409972281668244171909570513665629778453994522777307602837771311147039643260108152268817507093276056508458623785581541945595446791142386578856771702843484092067068635772585559247681083141670954977984413833788697364769597167625364226127266037147308149855285340756550907681508407358859446617677417597339598454219745591696654466773339323682602295388240074949210538896353528325675244024798392416366581611944030664891859250792817108215633286602350429577511280968400828293722691082258307784429886359651323757285944219129149383932126631761278320485104296130492965373193449974510996036981863152866153869240403172781708466062474759028637958269137116094728291808561468276451349004730268659419667022254665790948963851864227637632072646161124098626278515263445767212491024371309878018555463369247215022622988414932503175511117622368225017496672047726699103935794590826571497734074822053554087453559454835957458718358941680565312694365664609284650610824444038770680058255689022941864166232521381206941774327657399701772046904175001247855145908993177817147088101486793366932375453770135631351095107598330435637728931483502369510269970717114833401856758054648975042088745081725193400338405943335049180644093862589315258221957015987757732923610895512055223648126762553571372986268957181773120523980878179428610307370248237280281714708031972883804452418065435436958711473516990060206529443066125477311912923297072232169052983985834815516883278935511360982289305033923500780819177449653888682730472312084359576110162040310345431469049347001071354028054744157319997667335870869447861896874978436389172560692083843648631634023641684605351638566691073152019335993467526270252380076504480666573157276744577242850599691031620007938836516538711528825927660755885772985586253197367041244279036627418137734151146993180499187049284811778927395858228127622457411857247210998962710216216910460156590916181693666506204327405571457896527647193652337704657909873723357682444882289349444734862586533902543629603848845953925762226029121211953725211869273134302869264811411929270482908236656303808250647903445130119168448533782818883363676489272478930682846746634625540615179985826101688209984113960185689378914986536518367849038590831236590279136133899421781186512783492226064344930942216738998749750401297458421694552623665989606965158608542431327526100329207629471964845270484485340122882482722682170394281979441346882431953066594605914808500768791931847564269914850917598161695030816109470385591567738842124245096257055151761955974059540054655500374415211563204248988248017465577417967293305605207656164127084047342934684992236940075553724967298263855131472967021007828962412141712098978490116015126844905510147402652690874990387175347010117588557008227560266556589066781798408884497736603458462796713388667353392221615989220844952637056476967400764818750645907127561247496585007955684111713796468467855174514161223054768841955417583179481067837880512858498236014556965812074787269312025884843087482147302827720571900297141953367355620950265463065844660100773157195694549072925771705502549533144574174211946140175888937380442168663193531609085017018789848315079672396614012775315097227967021134077127927602997156608142017842327816044046476464076080305403769105587969530467026088942085114819786376992871879870585932850664915734763642105546819925186531061256200687506710597027774120193254998103371108899360412314614486249364853642306122489665626516758629873074041364753372362069227005050669250413475028543434920205502809028452879902969563515368889298111402170836310937562007739063200523479384722869833769306770300872062777567475620836297997787551376982879246180961124417285554398342610867460789755718304121655842733550713254324033220746634275103255326643974648216891777879706892796810692560428267390645729570506165773280157428891721813027064212423186609199654251281091060997904745356582767014749993730169461381951588856331070864748083249581595291061950661968258528027537636297108750533234033237848851633703762650778743148347578190249057623936795549746072444762509974078161554259985702094788664914434291235766368973564663552887223458526432445902185257529198702206731654662019231099043099191948426895158462129690203873988357034825410320189232618973908439334839636543288710181553590165226177827786096377177028426293826997878386282419442176355491351792856867469330329178152561241895723836598254823200295046442390417984379976847900170429739944463182035686602917034269810611096218299243046759330566227615812935242126635455143260078078778475581016930986479463867383649945881311320008250527122933201744227686072976624795145598870769605957549812804829250885506117161232224057977526172826011876395082318108794886658543654230100818730124226901410598061646805723698857743346129326530723604566913187508911043522269676698589680780247316472515897050145003917585719291178884545478553524547946278773529349922999190371377532222483740050600768724841467126665655626721368647188250314232319798427826567258905879331116692762354373354548433442947106658502719514888094689974218038486506074298282547274111221459893909329042240819652343353583937992858432927003409418159908010368381109419525375852196412478536598648856203336520384309626768890567335953268891690733132137841473045014440328013341965120458932362871620466278198027847241611200344895040289129514940962255470724520975212708339191075016894607357385981240048422477118649541379146080856322657204750250712787505093966389701940932055865841967459570222612090908139510358319558865045887096950805445402410221419032242992586602810057523425417684786978791974724272095628686844246742048552055111005673783495962513869384357121547143951427564824603808875583822819769797551051876308666033254036170170133325878122663174057009488328474522175710556245515891519010075633727394032575883503959822256625377465580923366411107360937127814680717892450474974803019813205141207059932467061613885681440623292377974506581879088400979702027713885736622519635370003547876498631957061541289114292745892590494351280002776652619028440245561125609063972960597688714021040639959859614491528290238477530241029940870420061730036405672629594735206817583235299094598855847445739986141344331040063635731596274822413040410669473294013888392775486057828564526479046439998005204937324204033203477915568322224890581476673911312624394715512784657801033092010876914469001576432259902220070302429720403366300837581160434942916191866661028820013901166719637035504033872489903772507016122443761578865195334641750415089127789617133138771043681720897078554939928859822350408014879498883511449376791714617688978942565422239828767220223839872825793516057668136013241458233957059613976026027167492910224326366653503792013313678283802555490698191539013594910638878182385234950296176138128028724471317571012345036979395838219714499825915840627629066535821845597069210225881252590752254743950174271879672328148576915113295610806080505894440000479556937993552992442920779182688548440682881904194764285208016253846662844213017101911129787408009155221904948510788578562838857578998357537554269056441824965861841577743400206249994359019507163702999531646976493650828802324280102560554728014124094037091818534194084293557526635519060554707045749660116618564825615101828589194725382731024471556991943044986134636756720318671771149422865686048059445661052759600264905405686292897856190010935106374903195677694224137421492675471216392119346098703342081894894614959442866037362272092248651346274058341442318309937797783218841213989292788414004421555468606954136419803164831977338635322952855832900131051648480678475455008873065915593803306798923687601138520839461963545150602026904334144390870788245328549994029555106696597379164007930564619915832626903226820350161407819934914921240408781338433087712374412677008752428902915449158695240509029871483956213156869236721221230512426027218457155892530501103975535716267697124924649966735911981758627758052863559809147062493740099853895012925258215873600783087409639724417228893889531487271881172604001974107289305624117699341341822398016913236960289830808151277261527781277610029637820867798295774249578882679268331019621101978957386373718391382208053774232247501868246450599202409069155455829338527540998100264148538767980401978150846227410930387434187807588431481500258269206721448470693740484834619755083699938279917984063296985073546888212823337666964700893463704425344632646278705753227899422917677400636780410666603049580949979605612043397335444987380603688018650794409464479499152345507566267954352844703898351353003732946332270723556949307328048576794459275473169878763442831953475113266427617318372648322547388490832639738892563667945870295534319912741920139196805537375818173398573944765933406521433681401202593151086898694787192848661914754734958750901605226968009967669487801868344692933729864382491387889582190998801007974584457652436088831719020442187639369743385183679175217957348892565804361675800605549107312502526118112200431940556630254239349915470438569104075587592061039785654585314561989590833562624526291468974052292707145642248457351552583808361982738737974662484689642329496938665759952427510861524380828829920655113476838572304059153001495036269106134126883745189937295146884939662707033416507864923791004870706917124526447845167665480828624501617594673365437422244797006885027216483458859316439702872278880039969489110420351735277827456568676725364155844948518885115617994221603805036043772160434086631487804771855359287423418366414796254948447475433874108456607045662671186045570825894805767640609120960584400474484270401348221773179856540284888805275457647293358766038473131610289574178011841510073544237817187469177418463904941776237844186423606882851603801115372264346947671188509530912151994990046928631123152486310844871687534329348035993216388531010711024240486947469061303742375720246374762665633359907821436833975829891772988277038882760188632001642763749369832600812071615631062989798592483017426190539364190225598324310633654944573910196698614947526679183392187941228658212565052652759857689980485896395528952216467761242648266997936403689354872568366690540789367072730608619365169284323134487361492309234064328864957896606018712430704593503380709414068699508355380849415284215131065786055635950659937552574958770859156029936496231330641540939602896695111278250910948188279684935106061599342940777197538698912539264479559586015050599273876010424470314386928225625245087404908683781525696310933974950580278028680224583997819749720261617502323328973516023742654821692178394322169716778437929442483694117451503723464976335499938914475056991088407991243378889108207579638534341607433641638561000628977230445747127095775081913162037966083221633500160283038522700683136460511395559180920558354991397525093819565171985782048895560050884740452354165134972383813309815513857081303183247898244053603060871009984685741987922280324737817216805040020851135802871750512962377912919222196811246687649219258440594475764732726588358348050338057062895335087127143306357762616828472137234087082278575098986869684236651621063820525873096414897791331303101128417507027906644238282424084030034898007934163807710018721698864268036294996693989027437454728451310909352734764214088448385012346991136013734087784947596557944191252804187809749015468437714039264097251588246657203113116602611842004207678653172234820257840254614879917029474777435496038572364727922941041773519888500344021465893745868913178729924768677241316238141371005094178612521894465704937646061897062310419396119456220226573016884006993361589394130939673291888930408268599134321429218085010853158680696597556868064383703026971540525239882098145245580497896766172651919967828488866477220171033900197670137066642250567008083153858943156368175242420891647911357889754811890003027739796100193721671172859878822232950405070261464045071475792747129051690237774870787200957649035718286473876211240958254587371040630883575281205462206406850899256814373030301774673285025313103163599207096588886137660705849390659342742648678209305029319919787855349457715236658895183143834006362143060217408232210985627876741933438749392305048609173296216936417083783367114396526726731530353464474097630155851664474025892308463939261693421756045344598814018376645104414999147779843210435666545613395040679947090348320616092878405645875730825850988714900132593457998773918469591714276070646065988952659905255125759678378254900571291531605918156035848235730222747702517790391210597379879647436348677272805303038896269906148951363804505563018696889356983768456735665009142343554652861773118699649818049912774391013502723338470430406402418408004722168185032511140861465167594044298687050367560010592860271101102146539553237570321390249488531024104715916780796288898010264985245526296828246987989228209347401596237586836956876357374824955857286982421265011996702531520313067436445141231357937569920346197424677142048320992519266133836897055953871527864037242865010645594576655086817700540992023595469372588993447425184110459108236475850742184897285954164615173938638960680908715032492207871180343229318137013054253475580250418006823790321775306892269614718528833376989123617495772573507257954249217237448977233865763009173962563955462736135844512144018919016495411495512382895625619183880732754247693127894180742333550843571522890267748097691641469175098357671545587171485375273701335590622104243893600293127081774705120495022514782840782608547405337388209427442679586372131837524093587790300615370248336885628720557538136611631435483208694428084925664240702367998743690652653218203940135573694791193654360903420555948595124105876537575080362697871814932672641252025650532358674986968673471700325519141147353586698116747996943835185226802034035350752411104529741712181640340207602859861789225226944004634522994611616459144725266456729610613250981668536952360822481939056238252670716374603091939533103089797964712491061485974918809511338159738794921857467394628711607305184062106628390391907133408483983925474337206059199548669874217151854838746992251238205834847146473393075914830543406585976090952655461082418696053827811638067122117091561956383038913084178671773482902368329927540756564561116728945789745279849913737065076586804560814599641297976587366885454765322443937355678061933612424895915543047051027679542637998301277374716966554622548776919057081756542615808678343203567966208933970924777683850133711067707093892059939007723940309101259184157104591787539956582615932441680541442692405795850911921201571177773042538605293275364365836640732962996236532321021851412406214855158689223411881277464430823127504904747201608849670708965956708182616697689831466202691343531923669669772627261245455622750833353448776723789223131204188007785487677805094514703724432590879676134280498471825390039114558009379849866425789354209671927528610785401030521177051453958156524311793015077383262898912058325218170995811161160709938454716543454288080147489066335816459130290261290760173570437152764409422855837971270132150688874907104291409219956651047817014263843793563746770946294336226122495506461437701161936359953150878298672584933919063720724965779545468335452719143056460990642153659227934079278126583276166426567936991268597362221085357874516010150400465285138619456444244304502854223789172392307239117263371252185794300274649980959748485465566942814124512412996132556967585030409054647836628286363488186160615959587402645354800939687964784547866513234794546090535531539230353575594017265920137538077732645931659932256762360988065582725855644184777106263219958720744582739390848561619727589153940704140018666241053837977725773750750183772229364735624374606901186988943539642008777800207066231490045588732569726943409997557252960154637511551222394425811598748195121044509032352230007235920858974218111338430958426268973169532140132384510763496903520233197339586690454156827763173832234384779799857652399619253587790829953841645052971907980652664558662850017894346293647471552660266596876946283561442233822082884670298867305418861434235871358056106765497989363884588306476186344614108070065395825386960025319569685267544469739642805435822942409241419029864312474694977289600186323163136955822993108947263021038890600576423746479520029594400717611957397364948618073236043555077560298033943355560044843699518981891684399437673271051005632808218956008232074326707274680201922981372391328265498883620357218828597050729995601207248438844363402893381907743531490431212645831978216575979800108497914805349055210602345876532217348151634104110223874655401029873866028313506842655614421235205429865808342031202949510831701209339187651259335028789735715072316130533629366082308373601675144503532039276685576233323012386939014799044657828473043048154207794709318688957077644750646267506875943987715648418487725637693839700893744054217616532203076223226054102937433691968392244231604907192396465144704254537326869297005278059853973245138390361626519517392448936855997144803202798640872817720651939505829248854501218385103339437792549966193463449793718858362693535268251895938552722202595619670884321497731849699490890981516224928093717734188760174160402604397161960400305387054108840037651959766532892935070850993031973913124918188765035652609107553339078088774061386161700254692594007382124503000122196210307064087777329554433613703473373782604309960501447797920137391857111846514211846585454107648728323426004771760382968132373098021986427940695409458589759216097498306352215154994353082685785784921157183110128719530045172719809800071376704599536478921138591920085465033655257522704584842375288470304669554176906931970274224257860362780114039289577305164321085264622696450621383860107935959773191161628587361194291774877266335289616645204796133025173463822270719097100586853116336247129590015142369886722518712869116620282866722337583010524244352819542499670436723195433216852385391950385391777044429190671129300561224747503684010789255265510544078241878081519356729432232602763906250245579194476427194670254454341630022762518908909970223804553581918736212757735297559809584171212139847948490756129048259224827478335985111810964797215557862354160430845551647824019605504943140409086674551561796386589755668839754226655057956489303794468609907689381576845432830486174374416464984038191426272285554865627642229208190786985360252118023226414089169518321747419236332953643745098479940233877522062083980861754628549947729920970794395771938585348316320297655494986618413967249126762385995687434782785569241088378987589038569404559501506428049902469674858316051100815799725658840031350867371747800286756849804066264135524299471891955871989828573020021882441959976846590283045022403419441790314681272657757664745139084052479759233481583947862986751454944779493670794220981458745744623455612918011072016584048891574665286783049277155412546000804996704253847507282791227701916160821046177311304946551167832345520837107668973444488186026310216718924667557164422617751775709640991553070707923292229638317552348220905086346228044615573697448762200373525322531382812592107131797967335960003475494270200971015875729674307646945843744424198711598925069062159535315700952757051673871212572377249224781515879481616820402977697491754421680277114012210162866685134960991637476388408349621541359527308660849831492365425991140966123889888575834621367351277466997333447011994760477796666484919041101867292571703175463280557703795536641560301789486103889049479727493309226798325881772546489131308095891869777817402430972867472739055975879826099162983424081954614236760155721294387893172019191401650543901647361485811660534417311082402099524037711731207123681299513743720244917281939503880314357985032998195011005790227427533966445430516652329891248525115629620686367443540489213583056346983497990152264156056090768833692709447588941383884899184127506126715337221814387304376789643945530284490634194031774914804182398795097420144668196308904644668133896381180848652322951628191390574271434753247438663149044684959148190173348888846179068992512285637332763981483622289405555004035455474402838273277022509738612299898502596702347596164650338946769781628892574871327066856228547423816514286511703319228244642367799468550027869450516231179818799516197616089143877921352898922133908626586077730296325947811286536266075317655597472402386091494276094772435955200252396848913578858636136517523706863018580857943599719963794933131446388230266276515179780655330747477962354627480819538970919239212815690388385525120544510768084777612817133397280058023108694971934359160621704743082947688903155966098310649588576750976688017222275546317628863155974125791478223347748129580194111230373671617183915726926198046444483709450065739680966750621983879014284790072997966960813106487009804199369277537313528286820145761935027686850067146622699283966626788979030931453196005591368430474720725816867930440068242032050722726169154438490870228091511473473539634740702294797072405406731895146705291403268870928706613885426519514411581627329009408943233757159586332124862130018957473905502916106664033711383266309540306119428492758749112229217614781848455722588480965556745826674507096430497533364465358882130949248387708818394849890013310910531452519367866142932086301421940948866519712856796599608045148616541757159961753341897222072643005410557167559111142199933638119238183224186468823731983011248545572344642045857381577630298244670594206687496750871862818459623260110484212801502584888038195616288209686909214316816202202536516563005108979548504174394538981899420710776456287585732730524563239810038515870031530773646695202268137891597935455920818296398799906136521635606946935135185979313419889257232741678280129539826764148297377825463119051981406356186494697977370484079124746670422550326153081451956405505361036836482489121028842885856187569561300185321568097057379293378725628944581878472912511057635690390016784252526444858934779379709556972557753934603726247980534204986244717112602905250859750049173687792339649836792035949317109875626747393192562589863426625647694768426104265360350612265529984057773614466931977568711472501733074201607604666259647535939758855601247031972788638064733273797750741506690219426344334039006610626530209785466221841003624221343637635133997673745346441067530510877682184135124661144220989367711468813153699556925659431145354095649275569987682341463908225032004426665372315364517492098422000241407651424892150835087030422222488374570461802782787519838226092856753215284384977998863879737793841570078930698265286983584395340460467621332775177471534213257660292342512724907930579288801607340677031322370297782147396726698590268972952259140598404090894207176042393106130054847824510457709626977634388532327391111421415498884804160647748899789726086846861352541576770166883328785416983328371154174903336986366436881793859021834061073521859072112606471508858048629741616493384386471914341472301811775245865872185698985881240540086610981649233684782717757413521793453196576330167225242358274186641737945016841563855780259718290209596536026346591682585564821336907941522816024205110831106451709401605932026797776325588225198548543332207453177095794720523020207478054645166058353876757438360048760268294844842129050600490802776529414020249546213948943019843467442630774653130570932402615824779217500130963640078504652672223559801977648806413650460158031334726525136559655221412873008500728213545832072759142040684944406902450979214411941497086274285738714420573386066459360226794950901115440461941784743077785704915783440251451326429415251915357513810681763123522381410305628683038983794495989723640959278278210638288320124874550854577932070064148184950859262479575827718586365010558369377306187488315137034829385898793972139736210245136970740513088465161314445483051763646561981966452446519568189506746928263090275871709630510928497668235884934637816041068086426752017889881768239467188878004876734119710690045170666454430966236357364784681462033617993962276849664740798735038540922784712595983030755651164899611190746233899075130627137652593372587537505101704785472520381693995979594649347697208726370149918200826732207693138306600813665748439996233960322866868865778046580661602737700096842563490904037238480274441412573171555690544361257288309670720206988326000072830681783184646882340854870944902169986548763178113279943761956061746507906575899285686044408111962999049391046089352383565455291487898379452643908833711819704177206200180237961910517722633684103975121903517194890265609236966976692933449914051959984279681601745050608868098092613458104669377062243199992472757254347718085600810028091429552823174518185241821394569819064393725986150446030860985402110023241062984662018289740457802121961348120195094141140930404414991647430780090360489338110376871486103534340579057688269011583295431160053772077379058451012864802264030452305476291753544073613529390849160339925527159401257365616121675202982578772343218895676554182359518680740864623005772508090108079706592378096218985512569499833615233405760650338737775565051741708049463943982033359937258318786620067920182761600073073896121886734341010920579652286649059469667842979197041402255784475605080903680580296555596477823623581796702211692639440537848580556095198066638219750772511946203073499537476290481686960420971487697239570292021374908909293539537054734878295086434868006943907600119850904669238365493914407252751739436556164186937515406784941230977113130658663389016581021701835399788433986479967301093627218992930288049684326004891803393180551661785428175835063220466727056687163190223912062365909801763550988098353154022042567414944346071107603294184354738372959162618423132769764387698449392391436517337376928073599146613594304633898350700365752507369641031208998771582540734722314128840104735892238046909118794568005328310514136649109308789374757039402619846365548747412617166587390272890360491893765976310499920826728123348805264953697705952714299437569187854573518576064533422649109398660508974634563317810819873499408880238363077772118208524652527186143260490465093569198969630042232697226173926925838166326891022958115459912529833938832397086077233406717825529881998617902292676276685769407052764352641509711568869194938607161406706885850375774024974016811167949603194660218487320012575497449161247994793409378539519501726120332539895701982953567105975249044782506093471433751975204705273242337620139687291592352716762327367580395849709265313362511966715638765190465383939979733574933737729287312859785123979080427938945972333871466743851860106349499116429643246509251262140020068270346202413317453516802439305980841996925730972128244436904887169202967749662671581260740819305405342373204275848761942993897474702631698649473050205348930903948972850151828563322240176298977430136336890648602943602833127443823974900409465961376925670996697385252406919243547640467480503201833200331846662764521530179227640968268586208617676043535082470310029913693745907222354038173890985235459559955873714067264994501347153035343205263789176362012636162123201268745654548803011890080139608601503726850324007406528336124858342251259772763733650095612379515222427966266089856038598818556036326330203818704486690827639424652898080712133092736802875093882267601171341608774907528830495753045854908038371136135006687798272775340773533044578143019618121120947372027975138493072909694420914057788408281729371300391099047708696815324260357567498640934002298334630833270952857092862402907390301982164718214806744153280333316280413452102613575945159702728191840832913696721628347642300357329900760150115288450138191521874122387101737967103814251554481058833615685893224769336220790550370440365833996822422368679110304009662324447652532776625032684883394510388811194013529692468001389545592255895656336289608503626246753543122628408537787228606282670409382815128491390195180855885797673192873387181735275923187625076806104265422476225334793907219653651445144549253241418746900491297200232705453613593332970807235643610622137536225005040769327418944145793583811750830193246485481637962687475264143425185357922745792048785556245502042487066435792257398675270694789407718553624036779139148273263376665121361279482108062720072942631074943596816204615076647238609083081244284008977892597195322922322798012353302382426807174929275489174557368076042902299943437320885825063897789720914577533344031994268721646533133386099617300694546135154289270780618971392329419997371765117899124606334148802249464717106596434866636488659784693760600349396101271724614279979797358766270212250775128581145012607379807043331208586086685930034670714136875138333054785294745767685394027708712301823291338498574404003439185222544102167723512304334242806641981298224969820672731466484537002242537235291371951031355663358289563515783992801831778560659238753432424982001870387732149822748097072533524745045557638094433213654066646414155735995316751798836878297556696122937426990735888887900823869816572341746719729052588003125307800360680129279773796262163154838063302477483760780167803449823730108964001591553949562237181094617423355821448362669281703754212971042307932166436106628034600938110771338725991334521306843673925938255657953876312372596912016733431471914863626557791174728309961899755835019874278310994962091413587764821569448422220744008974827136173402774135959959989206809498209779704283624374137294222613786884172025807082327734045973664572503165665145867689186144586982916291545620604179614945032260132124946704840440989986221176312055314274059400117302290194160435972026378350707310813622933207116577920022362960567923875063886695548084194592788055153520153879908468846197911819001448504362520089948423771113913431091480448035527750022702688038570923233777316318177847736668063792988887549394498398006398976221594902606608091030441118907350753147241023786481730835064604892392421958213225039183001773347692111460211729262754869414754576971570443608932690093117689700925002787675788363038499202800570981495236215792131517607386010086899241899261825163534955977367191569388502319208285914539985419715480073591500126663167473081230474222156184663279822305577192976925666649105757078639222703251368851113418805366377405392205276870317168119655198902928968282313735127268456344892321237945526487400139754564774470406176914207813839209136365886977457886533379045372071885263164423981678380566708427960215561895970878530599658555277154787404755960414584611218297696591315588508833640213746317751813675024422503132083029327093041394540733884263588920497095997713701439230099118070091759509213403065670998093356733410609621109880957845151825911271747710033101947209874379436022636446646024003616417463438061415363644981028967007006088393194320490931236829229349140397379773244583685806480704176440516885979125992127442351508785309380897595551094683495990361529037358388978970692177530586250107595124674002847236081444362447642036284772211372721646964409363441432683258137757907915796169898713285459641305541945717474726228842347114133779235140047363742222234541580844503933789465353850571903263396472464636043185224275735534848770285387357417784855100695967016454013720794045012389993602112662524122912485472265195389244146031935492101635316664782446446828539851716816653460647010425054314460471845240672720851943562698795102082649474144646730321612638268019829781937953020102588500193380395336152319840033578454589703230317834150213633533340349943998471099864972421857967720841315202896632814059331241479098842172733295734730245967330491128334139828777736876008400134531431201161002172635715772184088430889720029522362901605055450454700089300176696089808967417195424544311336132804215132062713763391016993263297631708053206186788917027120621273240411682637441829526981252228670995272655627096447497486880764040827541860491956275465576350160234797136453198466264196395457723121356704909408354265101120884221708981591692487140741192033074164541045102989335328469767608764875782451281859984847641459403087923063199393359844036753878372762092866079686464936598796289464756628813314226327879736100827980009051969561443334617501890996942252382801294576330805700944484666209968214008416092842211624237693144067871341867107426683486927085536183411603536977025140407946182515074851566648065713218247946183320607247481453507017611423407337803355079521828015610247143052981990182868495987884168555634642871246901648073980880629047225429661932189437740746791634692292142619929186212096209600458035153406458664391705360845802224780162310779824203621222369671594751755529767648105957171140639886543287720240756571305645179143697857082722696010610466817431799335738538913776052303437772325150321131286762024632843371473780695987684385707373720405555819788550550618812887896401817721295628879753807686649218158244430226683792079287639358879768679842863230644746086462128722887399438422583908848885764749276375710450358003929899856670240278165417733551182919839926464218341986375839836505871802516621510801498489869770164633659407606348396563551447074520632517039651700530347087633824201505763696217652066273965928502043087153675984886179554146473950531111680334420412509204627317638301320520525427721656980665185037925611656424233010815657655584070749061294546578336385351465400722191396165933487549221926024532556122430646999296027058091500677229094585236003746560565468105374699168708859233679523239866878444533392607024846852827453793271335090597386224803618661215440666736094713648420339800083790945269864043600819946384010739894091758882786548117442525948431816418717669518353228990579190682410784655460627204011707516076421302797075610078859435210860593988108668938999679281324676852791831698895524285346677345736847132791044739117352697616077521505330689478030103605529743169564678228527843324270392215919541263964073519188831920213946732514928780625701337615709031348317480161607353968554233327436553071065047531924494565336491736171409683744405175883727297785163547143331275653796326749271568666621539110513918390877546653465750941197293546671632435895267407624577221785622237854292671573380662289610967476983435821632810597862322187779856442697194978354504888167772831071887942649151120246616738837841402949307793383988042608399533915018120035906426517525659385015510288112953093172449311219819598340387426852577741410862697891259212632999862009648964244383737896870773455507460587297606808374680044539251478623326712167552162670468229795232872826886943089086122791894454688573722715330930777554429974168282242666297698176209239939833276485231475965152476633831630901719538460547888046120205464839311700037842888458769721965874175159881922869083407278824582244374662517712362323238610804584771436899500167812635688182991264555887008625083981560354726810524868178953973944830933947682587942592585532958621718224807599993741792298149051853346457330095783656673167349994968003462600322601869764437145940852453775774409614644572720457548536521713460561107642536824369020793169974732624151429088724774276444412950614281869840816361788421019368530933000221952096572412164011176338634487602119959892797986005879918572268142646264610581024458838483830410752951013367777635872754027158728023885886177589275697175691597433962164501873233616550563969563561292662723710796412943808986168455877241916562631411047906030988017905012059340732635737104446839592426018026270246984025688339554624370293490701893055607000722826412293960321889747979296970208634437367675565936766702909759494819972313738351513636904645553561524541534902726242252425225247135233063243561419495894954571406829903684303550853206761235742441046030272052609996610993957829050972651399454048302269286009189570499199644997210771160843690531427868247897400947516458739529065774858625854105680821969119102405534745124779454870061256428867172271355110734052788198769980549628797569583841356666554175160834004890801602976729598986859493243763716708296989579346044116794571296081325086056801307094148270456009556050912908779615822805931767847002899344530570962003443266671552062247155744822144429546334456996609906944867549508422852296783148162464708919966585647439120277703695379868595170019988218801885514898353808177383499821518114787133731788739324231152582792921831497889861042843690474142963645835791091381002484337331539780232096617085138153693600150136076951357873609327645876729776179707757583756099149518070521163515475402617703777232451526429462325725682502700336872386377796747086246034581802194518093770309058622083223053277399057649990545094859880445599956833311820114503607292308914130800983676667903777530361500928745977245684421337064788985520594387439593543972116259656246735554055046038235338164641464360541959526681708648857348635569132370378636263251278772132786687065878023274784445161525746256210958534719983703486504812764511301687901695456756468713173399008362976612010325383954771510290285519700773963380521133203462690777439728619288505693171730304542706812989934871955642587601903520945676814789164255848029518670697304158051346874055655312339271434668384071757774084865873781835311343641938632856543379609454871969271462325996692709544831697678488336470836485337194152973544492399235226774533739385206749943655695668977427692923343963141826710030251429872966154649204622813233217173592245827985923755788691932863380525148577425958559641932298916572322268773856855321711054327826226425794379078621725730912880728534768664559224408132115250186830588598749683545249969454544397341638582570572913579799567799360180182785685617762618260915902228465806766884110404628406575974357761214295269980189327920584806244984128288128597497909348512230466385567071787999962069389405830591628276112166241366233999825070329784466850383668412448267416511442064041222828236323201866429920865911638206836497066104325452370597381777274150185509629454807413294131752610384596886740676529983043181162446984316783932985754859203101362106625002108568153137208884821167943182096111121039095933588535728749048822423340779284115567065664760604403269623770462247360895203514845899648988861367759128358329114721959902653918066176303309178162687216122930339097501145410992871293195334174283196028096110858901177913391868240166487538346262848890423487766400459340835877663011430475086084987989439806941578187194779331281618562094984459135800999176823512710388865721079467200503500550791164733596946277284305161835529610614332167830237293453210139076544920841903345841735076587284213905048824864314590036400766624092188921439637854937550551907309301829468283119594979765009202805434416834691720244306736010310651617596578131372986411484579985903444747157291187902589232545263703093403789661089106325507633081290050261220837738803698631226539703329478717574550114851735476952656664325687829263423525447788712043169717435739127892787079894716920724536513774717274425750308971922568972595394858522673235180304966078019119066252954357466395125497554889677654795689303420371748476061882251625822969427094453725840311832984814996996404468547442857728939398766160956958456563267577845784490189043896972489386535968811425109828429307716806024719073032024625988908120476210617330643387137866174563030939233070314633741932577518649105742754533533913663235148818287774807847258062853512152696273135434228841090538225545770525161358309276756097712331785085851628054213234033676724211458451902520685402555172636065658568209366337656854964298934858839216587618738386130057594340708228997504932059327436613825667472975816441288906023723107396305866878742039847133138511388958610670945313479284561183813704759292117418758011546078415763668532179970394249197359030578978408677483822341570223462100104866701319387881259106830374220101166499463450138573950658139511482506496178874508905664421849553237901909318626398372055860947500895178025291666205241495215713870973114035095635755074118932281863816807128575808440746324299903441401204094078792464527112338685333778425673655493181867475815888908672599239321471149964155855819731333714391257135134423953624589652017509425043259300833784925401313010130724404926901291633401685110143104488373989741590760963745240463064371475523951751429614500918806413284145424373481569219382558031492082273659715873163972717542049181183976734320957345336411757084975560697158680804851821441435189774303519878920157400145868787988186624519852664562333047579887752689856830037556632052785256461552861399463584089315728490054835004580192879358170376729752158701348092373616599533461379291140658595042821177198257994978128940386172486762516321145575057104465171953756248049364262448613334949592392407646587553193652959363092719497753500124210136501917650253585101895375975862109607348354058015647754675797369526984907219518346105337125000993879724595476261823710529418771024806469646873058618172368429068457282880200601331579690123971959448534731382857780562129031513338408285533671898683176622547468558816026353027008881848225244052611451719043154526273023165859903660964809745777452343360548053014781797040903454568206759174768192908519216366574676640462100440799576379088777679241483498132410607066895978881152295564596191586900338282834219066891174638836718386448707713483874451672668579545086786459726279695284180938173204211409503860715449964005286562181194580074919342886538966791115446077604694469050044998309235070066802431758923427680426574186745535003401741121161400033140813680417265923326294105138707758110576019122906465426890658901428682775391234280451503845241855735835441414605570922438975292727482446234674194134623225679816633788659575953389521125177865140049726479946423276264607301202657437901947504377783942964368970982275593948900823336212736341927920007368831999947224687895409177794199106986849837551176600076621473314942418591110591364380454864454542929220080763733077458240583608592784316997853304098089042774248243438250389170379602407418729831460851154704714174166233327127046402925752137325137919258409865629121612756689623279121526979062861495795083948593064592456107954929684526569698548560327136171413261931633413566311166327666206022467239077202467865953943530472187628052869313145887806475780763064601248674674644472256162743919701976728909130710104822214093869804645338021346741482409296748060188196821726719367432040321686559233880439983350421895427117440919103785166938506599346189536042706095787681693723484448006657473025862253596614871203225184734928923972469558873462881196048708819616112770202128731974742611114682501771296747288701207087670370696250344327720482914188306184538607080764970004876849753233070803624137768998008661050051105456998111089824523868602775885597932025277532675159302279579431586923274785412735541610599497156396404958216408474711885556190596216469524147479798750693743633910757712744560498012504736028754694022375714587620861443043692930892662270656345425028498066919591596821197736892753195739407690542003785313510254365943512583432071736280261127281913467885986426798563304637659154648107739352824128264888939591414091505804551256159658747080027605449184237737834048887682291978739937036504630933615686306746790825543303328738535304884342557011803077986997345175056087470825710390232177688626399662717468942129929959300821339602714624015483284347184998747259626022979310216889795602871982980191991528629851427155357379797632467141529625864950506517415083962926909093828433999780905187701015222377898251676728071616798953584124261926994843847095475775488300188615059064654527208851543111840753380279315598263159167362581520531683561254940793811653507136490481375351335383654614611156529923597745679181530676845016861159657358795844950509432600702507476783213981998019012593245687540349010390634336593162328600064432717078153379094401846091398609403638695305730231594398306543632565987251331360819175375176891148399768044420348583412475855277328883342678322163034147502765644310342181125753858061510842193928949901378223343136954855027667145749879651925140009474925669143755229359036510544316041256340243878197318913841326424753207431660368481239481486987706158349235221198310400254235375344073726446526619620624463984410517829336404118901450586302900619929595175030786362493974768140945542458450939717028985515219808103828675499465743624494433596000332821079487497992828586013017082529851910145949580902353314308244473653383119831790921606081103569370709404776691054159957304533888971199020959868792260002994452399335320541076403633153291493347178331157413266067925725644092422222754109114718012115182191895058666445387627917657958161783203533771703892519781608779723368035928357941773583086078035188668008040005690868000162279719194341547969795116340714552020574538026743936483660936016369171106854275276170801765690982505783586745939270678625065766177760908074319048826607055466924360131619699698308095379270950215606344157962597919308231736503892144988668638847216863293122003790743625507013585042329308390270059880856872725881744616839669633870703644991918065497611270616050869261630219169837165558695885455962736062072182486794732012149554974904547840804417068484282168685570709921819653050436797559297017132644085227470447971347419794862842054743068875059562259271295134575329719188662675431069624974781296639086889389462223368978826347271867733586145246059204662177929210075459625201894526911214400314225335231355306375826693242651553948102443896372431499762818888196641618889028095480567411853106654892272749194979861934212007058731729186459574073891778360839449238514507572309083669060164635265295023550481760716918085324601483537267812804662186870194616826430226788574389284521141248240450396294106524091647825681838455551075295436946784871249205012311269268915688205062105858596018745876777321381501188694054208802756139847156235995638357946684471802291034300404315017153465845389135409797869880753853236700169979684732216510037001972314057383753541405721694836337063095549568688529393215494898422196760374030191076392858711526531543271599329510426709647659595798933904313381288174740265197283703569159444113573658873210797488021825451581603301175462570214469128651212025551024197445862170535602025891532835855777861734765361709764579817882204861826816593014093212377903067678918123550526744402512136966134837665135773425136701682189549030374921113515050100609128510137377433298446106255894149259041586963162464175873122073794727360915136951737553336101630731791687107366931814919007152974168242264262456721867406452016138822976808112476357560127167269359482947564178530471953458629608449947720247284274491260504132908661979831782207136834014177891600135700765332268587996550903600511111158393411732738755782376518451140729215879943913460078999770656199872235386137446616542334047056189672067400245907050394044344462485516067411628126854512401807677953335849474498292359309514955521144346565723243922393788221612587496605348575636654286178977152195987345130571238652148760778692719225447453943379586051615660253880768531950484802344673083792030472263166971811237359528956971859116176097617171121423068688178753278107428690474487581025857605862892489435318443415025083614905412792261174284089395585817945401451858479377558332288899799905087251098111462781242864508898780667820156439885510997528631898819042968139584065698952229756644152469032083904416374673025938302921247055191881405310556583258520444178061273821732336243884114474865196656084609243365042836043638621204417605879561628542853487748910089782734194947241607536047805059646291047540899325663678659836473498329149338385663307540113180245862324149570982670196185568132571355462108020570290556776654053773973987229101502612164138424101660787222126555250661825089021578426323714715085278029081546559941251795640783662374372587927683420436540478035280441255546880347342766267725998794235275483037279086119959106599445431542532283873422000415557489075399609781592465788937234876779958613479685561155101791275731855314024418083839315479924024274778835844464885015521603253618531188535526620705761440427816750386559327046491027159443934635084922780404937996098297050848088451485464134046471487953872083859059540543489958412751810203851172504219081408555336446803011305860815907468478955244559092220741074342130018311371882819060940624323410083110004010624516002408689249793973173237591937327274149295742719142522224660488107717896765606953244748788518499362264410075204209109029564950813665629499385493249785253403191753851537527909416335478986710247887946881739758382074773380015764173481324693690743606839476137648531732154238219411608099377238979482025203760521114389350467510201556101343049700693485335737194316368682305763804754085374613349928109267934180087882951529525065846586648132960934332050686564468448354480575243419375006720636885130227495785144645997161781172613202082028638934376487884882635451405083194728477589226963791092951943412291573039143592201616610327434020019739542196540826174397324474039632881966009451876266671321070144695145593898405641706234918954596322018881593436746502100194936329358531832404907177211113181821396984892586850686218786926030500255761534016006573026258094496670908503403383522592592411032129581446780131586889442360567795938850316600842768868507561945840961632131700257952186680219807093748253092387444666351215798854394456486357850155377324478078909071661698114040994047821636811135637880283160297497270663930712575548120180435600975450044702487832889211019049094778377889661243792683202606717488478913915211129223421441704968154086870347224647329392635149169196295980187067154436686460067463356864507242535619817367857041198791739590254962061613977829729347479266511998666169661593690298530088862455672394187553801994096919616986409501850232385824772488299144212181601799428662002397574325731870866295268435285538640085141277506991205350788190097242346691520636353358743702533752075501932808629672694952963188846699778332069583149658067278568161935066929990312278954055114718740329644540306435522962705211148100578207791579966184214878537548635013625652570033627714087012135642854149023022645471824603751346444702730972942293385297974985990887628009000457577709447326603477765351969242584276199677319720205750705015681821803185747927531602802140175329353767666551025909722597594973643124701043853926626147496482999898810189409627322171434990174314143775580091138441979569519785439698563354867782106147707505265996450824266158931174075293482429599983898152598946010282966231869308745288288870792925733719298640570779758372685914682943686982097300100343737807301705311856509649417563497131081202146666779079472827368465077964144312080510028317604730816771018460094079689704289753947149406864255228952194221958432902582660642456931254162988028709581075046278017071539219066919347534584326681046853711605042839023326455373677306712477896535540908752008288471176040963442189481811901314179525428847500024481349858633502290601539276601484862545018431709605769726601552209473050876622386598404351911626253471975951407728808216161712710015136214365090441805764153790913353909304022630572591322550164060767792519534331687700054358265344521776130926681242481944610472296620029268904662947193054703648148000119160661948036701503486751695210183272943784502653751905276908239957181698909471369428503256478469839950001836736796901398473367477205787104315900364897363934173015616083618941294851233265819953930844310780369437146082834410869266088541046531384868570303863164979118280987584210017121266840412836982294947612770488973620815752946879008821589180707198080470614761889783694919729938298777870179256980644654094569000335542342783554486499047292571538529523153898657898085797391784204308657508216089146619861710650005401877990182237466747975036899848880985551015165262200136351199607917312474619839106857163085569479652646840626499351978604054007447376203320921973855527826635654647349203710140103617557499646855369628753324406938818515458115871194946571799579475274242564671778153700630832014926683444402214832147617312287071945566483530804780117908593239679901887307296633366273161705718786620545417328262329849088592916954944120151052745278065913372292800669611867339976538144047627085134984143339094197768748106438796185567354838019648449360626366558541693396947878216628410404608821236970316036905776742890822418456384981309732043458581925008765173268932034500068434009830972553993515328787923170411696224626477544728771745782705318210245234596539851838415763406417278189855889241787097791720636507271465442071641064141495107288514437181556384367342624089207725032620047142177463424611494729836859274792413586556399472178933217832919604388984253316754827087818900924000429784382371838997298987691947032443144211963854177419305640212751265220819616277306480508533502283220928773383555404291744414860337857719141942188288371525614938768971346243877678727206395913573278520067882651358727172653054377465758214799874490678148726544057168928774664332820827463938423532962970297658024955206243175800724263143453907830313754638214436574445846729493736268999887184558120934627845354628468840129990345880757340287270621296231925123615197235440464212020986970553068422423184132405532357377128419380874521129661006390311308953846870292655300535016555721287962347378653183768877892222272442351000950999782584817676715343209095008692526457112791171603987638371119806096007008463779030998656651240324674408190386112785886031098325387700672199730944981691450755648345625869844684407361421359383001676465135664938037296205803725022101220377171215384155473127789927856637567367526202767217709003798312768100324792962469377144738959216964457777457646523858158433805196146586301885305456615993846612803757134458157771321732105730961214042427365264906438319147791581814481390131759521389919692938835970383959209798808946315676779779169681925859543410724077332670930264082176783905286022456168747704337894611359979817373881458980963105853876302774803355369485600119944402830983712363553417290483119155133870415531309342751676000657436951673088208918930277373990133725366687358379472306936516164276657392687541457229848430364049422615043720578158952158225200248226125821410193414711475999188405126181035732327305994541025327075761048095695472286160216708905440092088142680033847807349467470122202699848886674985438759274186845968025612016703619744960072760119174022950079815370196572374227143205340293863968139646663278598200283514595554697410824083834219713884824320029956334466481962869755731342772208140230213304964857494166010939676963320389584366108884875823068069343824966128929390262768921610227992735617994966235068231432184025017204657239394146912734934888602385032527539881233278688316647418838900258899734710168509624375621336093164840379407165932454627210189629515013825772447489752292691826045476489161255039662227754695447654557609853657211035571599702727409269522538631749968270646944452930898832382130937932174073963456111025667058056035099482703446992128234605782193873072417169728149391017252715636006458507642442797604287597954611311312050375395176033236016255819528725104385586724436519128367685990903836257025960444248220671380925266787497822280066721400013971614999243612358378742495133971718159442430372308083710081144938911444337338569671751134693671791859775047337637300966826562825589337500368734553603112553928980881770298121442246319789330183683772330986758533234812228196151864882064438107345489865628372565136161648194041893979229199060938665664838719215114755809524751001508273295658864972252762206457596337811425555935437165189485512568153795860255838665133187337890990821722846574948833532358326614968633277402428052851170025763862729081485430078140907602144095550206857324885106915858224807381330575630001254083261989044073847135309558734104518280152869475959952788631720429958802561543727332936375740492941905436323778164358208466623043894148530891373959458007094113315998625149262834042318685260155994143520282210832753907603989894786936997634192924101010211963091573671901352808359916747411387469947120865954809075359780730845120733510128420569453114765480675476654228624718575012585989126080814455575175064733625847547040521573200381937120007882338382482411323044584766869787345651822883353315430913434757137760703397738490122881333928477604139022065339664434705152093746872776559738479790240043121620846671333647449202834625358793638824036629507060609933872634418539273909832003349198846817522394928176373526132760842588240223744607167839001771649641095829986145011643216356956480948467625416257677814276630040648482044922245782724877810095286349275041654924736907018198358517564228053089632764766848860969332440973903767470849493542493399950580874218109552014191101059078677735201216708670605496796764665660730862976524090709688553304760141557462856627696992726070831382969497586180392846413862035870026329071419520290440025393828083586486454017326278217960805867971285823219845229364599810795197265695403932536894422699751174463861786135736147719332165375623522589792983535797398481906470506397436471706957386758859906346581697816518284633820711834015282363711831152359865867358597536018028835080064538251248423686297348315510776590783720818309709825254713817320020560300110081071443059493384466283883236473796572606181484064270953886984421386028146700649803587410169262357769649117157725114380453779285624891060921067621780425803052990372900372039341246250745489643218516549393160499323071081475728109051756724747176435935100536342048908224189468629186753630468047440514788057791282120698027175801102148953837261135424053408720908502271788461759273897557524329063267974280924081974497522856385164424458288521020353815030682571477505601681270973740487270021357193426479702913101843100833152797237084982856481954190169993413141538517077825378676102648377968229779652103695570623479278345275362054737084773070136187970436625171039095474314250546191356577145492770276613130497279396247105442188544591290690515615055234564330299392998533311097970340576357424762548080540991640487582937534138517184658129639613821470186444671074232449947130146697802522782130388016979793811086775352851781988584905279168099751094833322577160562284774240438114322016826040463761656389118112662902749803512179589835562770276024690355897944009221007378365619140838996015605207556091128451050740781002141980064736278405033600790102054773559547669066370446499390020712137589331891403513702438718235935605227332025053416699013935118261294810818819820586956523166261994012222722911990182587018937439944524349153000315965107103495097266214976307935959947371824347226318408821238857798037931064560603047208546366619111516282141906797819460212062481245660627577305380194334979860387270968899144063166989083704961796450142455327937713917284320284009480402848259611819472851820185270339098594288886301459826313210193240548564402508213841395748840399556634416132649839170831595562602818988895597001868911996216206516112420428141232581021189924563719271303822552607122134928753811513694520196461791648968381254747233007469118433226576678927681415263552196438109023406777464968242716279994430064284317686442416278257390076371484516799234355486731898402027242440459868601005950384183942549015021588531551337430354299524491569850981047766598572797313388701657500371461378137386897073601177809491433092742188322285156570615673026295834148037405448889306683277677421849685123170219946072646800524096046158193090695883375767471620992786809617548637335834649762353767623135908828731085803245949319895329658727437812208498357346257812851797314276720320203578641174972600320531053737377850732599881796222640287269610231894591770454666929221920603265219525762886231633350960522803338647197240675047732451773526327897394575180127665140570668253641728298358738221509272446261183825173150271887005064905652301579064733746135939664540718282402660309796554490714300010017252394012396214098537123892290923957070068595278665646565656327496182670558730699788070522705916434687470074843814802184250217211216377454718032396646978638241037229939913922980321542902811158183136759336686726637165118566500440099040171303961333282259052382849652815260355841142526704712594494694662700524219742330516071407997276263444275928685972892355338292648202078987708551473250053617130355320060472644944184431537989579763774211990813959606216471785157167983058785186600845551566196306090673865027330541130584541822443208050439292477747856064423130562151459975300908097893211751180738107430361169520923262645063165700246929782023320779455202364339162344167864280937421431931857253514646396000986891110545548626630342796851906724440179245264245197591513598301302336425991717134716872036433800413451495968879024465163706252936254833497217753579533551571827732754124803060215968025193545485051519961786993342974438620684703283562479040873363119134960246651692932197385516411101875928932485681949432432150477357394950304710553024719270959912463859337363728249264585662172645451340139877669248199346739244204098987323323710552808002870498349174589574913865164498207870899394411367581728575235787230370857507392881272970670866101351927667928763423975140495095932049506959916357404706429885804267555716755255501137554680727216473579779151395244508212894265880779780052912870640364915642270316685465653369683645415085798539288613830760970439459114929588242613317180943408182712429066995201398698385844152310705100098642297941851169792124733345497578937731496546444738244494241458431324992868732602926312992453209228284490810836081478066085016301655178113581721556727639709864032697950291869109735580812609568229360718750757722397004532495970733781300630095876339232097931479303444764711242832713251627496282034931181956218492183846361441679031478169027376659253173736003609122572711005279492891575149054764438455376877724768090564911019551614108372944237262438768732470295335511408540134666894315149592929970945498313108502392361211003314072478458253350651013392338522376227395100761735358669691103295972199031842455882721083075198133226073650984779602399141079548269630747326319241486177916492736773487900047117373595309677104091504557497573114701908776834146275473276266800612014685974718166258027039351641898547331209671377153553407394393534572939787466472912529012960222441408957407361657002906867466894242612929228304309767268398934931917655438367180096875096004470255147697278328092341154767894782840224364208739898263146077342485257789893501242411724951671983746802523342841038969333445875942606927765740866098175356650850444266687159511439000305317057089147263939427616882172743248803705003669426238128010100696980721648906111752002872523231719886505059459301039049655071698771463401256242984049078806292762061238792561851238318558575435548562828864662556293274314885880874524521529528408866137011273430263849496556991873056164301539598032290683511095442583745043380713679506293608222475474522252196743324329044570934241094944624189339075277129515712581936526014692352329932463757031649091581665449578420947507010240001989840398048113203455015567914363899468205470702378632449588245580481879520335927078878281038355823481525706659634412150777461463454030788353189967993895470350345305356434468529383002889076357076225991135419044547499736150151047092885773488848614355224589796913138119434454347963092130216212273568612390079928386636323246297713826242608825032410916911777692549738241599032114066264418794194022436661486580581656013384390167256564528983693936544044268371018679823296686381658908921889028293028554617602012324885175405268997423475876537065091636589232153405081627121977391078033013417383529283904027946460885847585633145299860593414328131612346165643284235839655405117526138361547972441837145301934881461258300789127621960733697960736396503806701443618288437493439182406857135561519040748451886796041018130233027204716045795763059008947136479966389723482430590485811576443993132290560626404144817684213073233907886013616150506886336917033989275706866505332270370891655989773941511034904271436855659541414563250852132942063955812846616969563268421534395376095151176332189454597274612896144629493583154656435129904793817571205430681826264919752482860030827166974457935229887489393511822168063020374032955796550668838378423700478803453422222745623051218122658860104829719095594228820942499490699224743418983553754804829907287944211418421121388882896239121202499820407548390549371167783790387818629908119159594505881997255280800565422560966027113055470913173306737114576535697459431490457134588680346691687687581569615569093859831073413317924910425283572850393940227680932897928981992567106407818737884487630935154612962756220298624148928490040283343526159359722386879858125665175148364540302111209874405977533827486238663752847668219442717244323718286978128465903985728714158380307743198012256704092047143382078481528378821419759684545105186131236945044343789810138413789970429789273147084783443017638535056196722374340515330523853702690495456432397178916967106701697127977648241613857969750023830327225854597022857718732585516174096115553213433802068414449971351452084409174546740167942739265475931589505867200767105540603702833907719895588168852253134705224071032542527212767740097866047314801557208044545496073432421488530413084183124317029218325152170642822472440028298302217303343149617353929037928049645795113643135344964361248268702536404722158590956382261591838641614678496283036234180078867795554153727063821268494484414621183208058825918066347641004370265821596510416238476640925328286791625761476286448503264439110968601206640142713242571544778937277637563650663193191496796393443322290990711487018518330082763573296802122721938932161420560192781992845173908559568429117945310182805073406324212480948114083884505807375265745813221653148028948271300459858615739241196501870099402282700603682367899939430427935294842056082849687769460538531070137458412105954186610335353659060826234602417170669209737121031453893475869141232249584189017240339726038062696611719372325233167857147511002262699547256664292051168237059380597832764483213653198112152241893646220135767961556736620611846172000616835734129553291716873345075113898989637413523112835766728838898779754207285350374095072506132386882812780814321052758229856083246843533723843554170385944403912932998767432514760932035961835404648656145961853340761913017166741640709021543190040782095863622444253065543949360055650936071098076963855777521872548073587481736360630638400899281149474385006686418012074886070123372596537793006422256402046595795793274993853112691685331632866935765537384535227771897597931550484190866807495788114979346530594304400343355006132159275124347708001063701076787626289059973809559633377227896286087926542806199985014456433531114541673594807537063310352295408351931006668607517810722887322849810766160249155877441649727760090726374240980999783402772916011501941642527221602447076609624281950053000890227296529562250666053679695959897840098440436758093815288030020141152618019857740722514252231250698323487128333902820127454762752964457627546795093506740278165409905728443105058948523881297622105842739065335289964177376810533602616790660863758686192808233754020135116672430258431114696527452906828096285364993939942148749349503003201515797046172557155142252331525707825014775053538774933129854531059698346751450948368508436233430582601246216044535387641755174673728435223107335822464291915514131579087283566086219866209133447635494524078700930655257023961167628205429262895197986100830152887105910503385573296012755608101943284106317485376134686913153084287586529835532219224033610458909953179250634026761517991483345300154265157550336871708523014933904606024128304322549614148093967582416543236580113777325376738382393321581324508807709657920473361935118114836581857835704539135214850440897076148835859587489047582765925887262842561450615672102948232272996458968587589661099127528376330738660560602302774708335374286618128197567017197656289815298950998818634122368759602349664824049183372215327112978237793234255222666720678179209452110352325414852819068528862258650388274893680599303258285016754297142847216454387112010386577532070118171580938218533291893647982934722508422051871138223657519155615321616020980075070251869042954271086764676039694133498216263159769896709951381108994284662750024454926146177700223044619414270517130924868197096123502530155107290341425537619183231137476625949465565465974239404469219167763777985728724172567218613969499734369934710261715020575108964667621840231623286171043797831049868286481595346229010686478641511192825958668927759929746456964858368768880015401623444095865955756283742763485669711251602758659926124960650041090135937395248457429608409129549371411172359027352918643985486134179341488438836340513387284495628941115976054784882902920383513413696998862318053833409723220706486051161461936795940462292140731073088205033433715702097503557879918258765983350068943704640852881163625913843493005620588166669793515444347290983672350433639101284204828281815587091200105332351387055081016215449234140597672346243176609040216591750443262396022708155975642816245696868375614717050506635298864425934397470805330853332721477325357409692311816975788417730204764974862105251716336249919854324036585800143701398309671074953554762593340664615445650206102728718813484563923860518055576137189767907824998246062679604268319536811891432768758360367648189994758070960402752811837394806280644838367712927412127253850562493967518494165954749619743669727429787293325366508144679042799942366184674986032345993509179205372785347637890537662945736097874352265538889169024504126103772196956766487603318636743950315505725180635413526616543137220501087986693698386762367749709744861799024568681792433817392131305293418215994616150010730324395029746227876247560619317200171784355412878958718876666713318301831648839852715238995820452361352897111260993911043432040388408564508620745266020604829437307062558949126265358482623463584332846557971698803705749746052838699312683684511241293766894437256934862639934860255568644613425741435432249910516538746631925906438994284912182400003848626156512463615493401438703124880774079724261993251386479833062504744546643090887329125411975533624609470019619510035871925992544522808517468031586759285552490993877348759787574283971298556517609911474108027750173185914992461081120042149585322519579105859856502506133285143575866771805091920731309832915856297200864746249425576636354060039894690358620535635549501427514827726176045531926590701358932372848016674715231518284299196393498928361709313101260545208567485056649970930143657640101839494513467445138447284480589068661158294639798245821655205876051535725768103959944770033755523830216837851699532662169727038968864825706989760438659234519841129110414203428560153357703703952118008535065503804837288414486845615710167057418615223931405729215136731410639543376197379044849169575291831557997971678579965893950490157646330289890310067530698311110918188701103793080480174592644275607932228171109266631826309783071071262682467124776911828403471060485369684565600913570176034868727788432364750963850470833130272309380626022635807135299645648541271103752588725087768885616959861194051648822191512910043454396261019790572760311046856922530407292097228150309796909302289869053951475506040346348114182667410433561734088552944881416649990498627245010516450754479503201103439802639120396157224053501915624409269181155830828630740192578507765870896551812758925893953592349254247012946491221649016750105294269019124846148283836443523423188849555233824617842231234080529899198663705861300273252648990711711300377741778670300736959965864787554669717730160898687395017452867646694426051478260751347077962672641485427391397782680327935542508850697716870767021048575645821294602460086551055351897023381944907361557960459380332297040835013950726815324422892632837202442168688373017186732587310732592469291381924285725996270936019396784422218049335508727513375790521235203286299114682026573481783525554336981364368891881103196913231907875004557603776183549735146639455835320332657745447399379999931718262113199400062333035585036126870195281639130326559229450303297712347853641234138487958889337126477391561865565277648674785533446003520997458512276485950505467394269757773775151754707650231709907044558167573002594378341648876180337620021892620013947613070675658118834319702206479417720265860669835749932001849183085801718817812017412988719326945558527758316303755766019793363418724655409345665146319224100887274174968251440861025527554755005010407434161143923898906026441770346755859685785434268557315725085554352600520955799036861955444733535433163186333989428425319233827350191003115062874677197234720036717614224841403560015108388525807952221162035760118662067259262150339914235194311038021510627276555020038148379406759318618563881306635921887023369854692496993405886573519849741969830021133194426800325969354222470578210749825694688467976810360086234731291193271579557548230654467477002597704680366264817205507620406395902475752942432362589184530911894507713510261562949222065565107287429274227667373257516811384545298224485050234328634036958119365733052196156441054020164509602204342743468451409630422490065454036543154382307387973935868814188911989664277407417922216171403357568083479599966826728516734652504653948455008927615692979704587631445225290286561111654307516217565545516211141414519896556272448002053356918209464377440537005639240566727860387168702842064430598494766924087771709751779688286166279427581992286645227630481361061077457752137555662308492006069890149202909459937202465887452263956181250997539760057717331898831091657591134428811909672161281296289089551963327119573754900878368194614788967798365101351927241797179198840628090782087592777224302918430290697878987196244292754681383157087517647224928467741016888249350655349619803167331115002655699529416287859003974302946604446454447633584908038627293956608764292751161453122775860668333727386664603321928978541985976343697946126192688565395442942998756731693090984643873655089544810939831739364223409068071388716063739965469660486454037216621821955745051167042652889567399521034519961440240149300032211106542869446550810771633132207771950181976688722695933274737083760675882472860203745728007021722681450171559360004103082477778550967385915761881966079041043278991644933741883167654309445369687473932841216712355484681309615924855377943621755669599612051658306911423678671035591525376907169648416508996198583482113032975597821743191287268139592267054637406946157241409570126104792258016833297764484818356351518718309190248460025021466654438116305557645460241243217677431552887670340793376647254417605155609851216471063318401751741040274290162209152221451523894391113017441935537638410059472018448149171682294827962634347607192205173189767400725251099771048712541017668546782986609594551497510423349267024299999490129190987405182090909422244987237668948700612682248076389481024609355414672107929696892041126813174445052767800816266333946195497121800004455864176400626807380781728706150074758585284117777326983197506945862626886177797873368240748726755124652539048682499970886906859133577999864492990988074028131810950524243788742818833607840059213401715416454058342156960134103492906861401729937346380275163603293134533001345774863622851207552313531676221212649474335305266790818594675283916439505970062241472736531226630939384731372838616298929838029072669394624336737176556777178002082872980614397022291808921144300596912929466823678727686692857121583536480901590395587065794813011400485991574384416921073000736922076085148198565748273794311810515489244810983822394942768352461041366376445347186622028194464923848083972262561921819554954056783814451242592802409894786538498708765030580405959360725944090583389710428950611859497290087983951935830286609915170371214994398398454879002466725024643532094191300928439213155395180628926832535302764055560347237597294268093233691920621257235882421039034469050329416570396596149484048321724494755981500247077437943992589663641065832418190270243880877152992084224937040321941288551171475396253446457422950769879897433791600341217034713111108081782138978463295511290473859134496501821624389854033388807942591631658574265683662476679620732667028321676204763339662010650812339389365550391574620972143632330316301235198195061205270923647182999427982338328396896277893355073580205414608389651431158282639802567908112894524207807895144787383342015363841638361664112051464026373347056646599945550444419645134982237240193163603639921410063405528119662272694115401013197569933949076805249108011174304804644318868860293499261860973770939736740634944912902595384161830486298081125017084488665554367617802485707971145126454879592306800497010658275475665575810219666950669235886119068468121993853493156151803879326134657803129350855614470333884326778927337710146507164491447026524194840873006794081591517929563473985819276272603086059071229269934891868471198198527596323741895534444358646483245886071851225720432957145381844749538305550317252180788907127026249126595419673890127981103965435672023707727342087348279075939221565594132876683264512681308290937254184784095551515384539920477402877280515069432171969935436861057237019946484585381756977269095006161873493949286838560150248236580316264228362886982167036870073968405028963939534536991114392917277017533303440157459485963688750165270427229181893236161419413670913054592156826973262450510697015274242347973584961887977950788650793410418436473210943386326177135127673133937565909380770131293934230227077983580826931669571496505752065565603573298024373688889755697121096379173365920056907486450398357586939354183899416102420653142314852640636288515887128002166023633532059772010891456680922385421343811634874850224540431437664830982009455321281094270250873767861902030907413787920154689535978583175349767823219269673634778969481117459195184991371357938131316940212295186060589114002708934308506549004618353810415958387153695580132816956712687572119501746169360795518243920448103320353800277575829561759181725116733182518914423453049847686964249856535906497275332695384461240265312245612095307848104884866797049936525725147115696356199534141645346222435228057598640217555865529624139531719546227545965226068657060974461955469075690589079364167516874643833033787728166555450093793728916923497835163480856987406076874782468950469060864947945274923875528343899313837330690316798553277990057615897892017850692070589332970811577329720644179574721639423680097604859427078314732412078495365160929054303959407506097363317027979020245676250198009150195645768877204985876018678727359593523586880605844493921547246503751621227705841534902210079466342623826185255921009120513347873085843189095245358156204032755793888014701769513318061945979442929733935258956713763683030423159056566433707158269375116334665561159847989772514570163529571920619660474512907012657411116448257896713430738363472257652505157063113004768118090067995885261245173831695503764755458260851263993845518907485478675512329501408013932634402179352911082621948828506440204141756804639669605071218724757299636231862024402245473821108550798417031182873947345445694050122962037779400648021950483364822663939570328566772856375569563887834370013267791015157274258551873122560980374873621532189964929970999404197956240322555535117651173267545264025311197556016076387304274878278516317987493703225489664031084144627017102038788888529699610130792696859884746746415794894039710996551171999524475127718904924237245296693861829564546654724121649464691627581756153575609918705786150835401138823445402863782986829270913269271073943934432616432376404243672735917820203707612425977479255557487838005184562967675304375525840238540987838685051008075121109214238582309327578922638716516005892840497294616715079848731019872359935998968717771399478421837199549706975437598303672089145971005814871491046827584782627504151358229824363332107054409738569429100593980708390682693182871200565761619123601756315872887461730737762251260873141404252302699345825001434675195182949768844627352942145527870226781957198621980278897286588612320970749523312111016667407451652342620211383958842156074606925473449523188668663849864336355057978173141953168752048623215226640407533317223014164259148643010453199348715906811292866852524670505159999048312802834130513242799206122098994995533403464619277674675702266842406959311268858493700066757834718544394514052195630154090636902732084603855379237182027680379699146888408260350753182842967077536791848876462110340264595146281804906565815800220731515304984363312600851612567839318225065429211668365609974484460527826875026560231160201261248462217102729022092329906861563545496323627272010482874348802215866401408963359226633481478183179657963550692239365989857417665442575594227911811837801889934870595158883008576987710856859255577218541665221472046321255863483485096368017722139162484035232121707711095047242244118960712303178364973098675021311235050592294885401561598921241843413839307862646670054265821300186056532583532778436178858554926885836738080668146322440493576808857123341827783603770881790076464640153359336567138977311343355926742683838497819611859322911947563230462231008474080895404694178309786924068899841262033846352363871053554408829321188143499067508074281227782298330858630976868762144124647816064979683695362672438122766088821754035576537792680415258434961168228610055246105132496445990114253860624329759342809449704330812162770983968593907091363681793713502356913352905229265994856408268044834050601722541457279824028631787168068350897938096896836103765178137209681658265903524839820680708671834087456457631636645305216411890840085158602711025161067698506642104920665843849655505273443850628028203251385104318425504854664901413516705836839475614872592164538710528703314543133780245713787884174244311218780354119894088972330337854555065497031635446340584812388206213227255623829931831467204912368493101244113496266845616835866005525269343862811005355966584524548636019405373234123382153072333241158146158858971382867389644771059867759178547972283428651300067722070025086519540147163939603142631489774566714191203335551295721182558656442059148172381303722121954546519488977424303512622615412263779854248527661210811132024206242587063996119494225405178195738496903955310976790247731577223573692418374180509178499495888289535234220871945440683080742792288497334485112015939487566442482500659681176809924852505781363196495799801192165924743476913371000294470541340171098758646814286545089651936395517149647534723955219623971044876411830780640657466397315529658096350364602476436162284445608932157030283558106360312182984357372932423183227104157292664381861713975059057979305779071924960222611431556618655658835806008935722815062837333392386644159638528996821381879356925445178198378608393928947543092339233792113605266076178977616822276282968626800945694128828903490530674664323320885349506645866927629250708202645519535084991947210362757188042526175622334077374592974776452642053659810276808380515142952284351837724003948442582274381774879844253604699574867995093129518026881988113784661887743118431775126567550046659611495806931405591812602265082767363791332477322401926041212342294937385300980334922678502076993168025652769746782186521252424629107143078048903326990709868914020648324908786950924898888426729942848130038179944331062516732924371015904394407869720582078846900144601501979213029675160776018755435066507608956867632739167096470470702067884029872316021396397670131374752608529069449336552632854065535485514519495082863841406499252326067767432552431015489080545577440245382419581184666711174580405793538250812077205919866371112628224782296937072295679899398912792673578951249993905180135936402425001825277278291870088068829224865075081576650593127978012222813450563298251097638173964970849722817398154784467616618797239787576202597766959327419214451486034715546923445394094037512999047831372771195295246421738982572498809695059562318357595460048637282334426336883072818484418082394409996869089885135035578026091725312442212085883921272646119588451941385817451894289689385753043432884683166785994509530801615073380539530219257685717664093468870410491854963858283267337001163797395823573707218407734686216808137336261591651747715249840175488453861479922873567746699586065718195485298832988704715602181733430210010544849473197911153928930065751624221929155900928195813887908367783696382470853579266523338552650400721841741924324820603717091057608818934855568746796410736045724787266367938189606335938007927939502873348361212409528334869210342612604380869340344752870397354945328471188837343164522348200804214215736844827125088007537408039079129905968293870731252134272075756152411311621874677834340419517377424449539000695657572421168081137247575187320493961436853120393919707288060478241181437232380847573250096262690548824565952799739452889063025014529815703267177599448648134863559330860611363975686787332495847357950915306995352473098527357897553335498500123353700159866354644007715230350648174408214697733204731356683613232686970382955689131279992715216444736415517933175308001760742493042791878081243069840704839628622172171030048897968102894159983696499495041540078922728033870821502108852602859733739818764887832601500183119383225656984676223550539547593414812688861504636551375550711542347414323863489984038136389387628057099195935111245026992797472176596840450928202645437157085872583766473839240530962562932111906000292586185294790588458938414621536664784717132842055454688911256343211535949585043108644270938926721053654477731517650049786326604737032764030012445211508804235202211469804332585048079624108908858418346958484869072432495015559076496749837842378017802616887804691238415660384396073726927217318684044528824738315002027870205345674447401053426009159198801130481373046753821486337352220954858780299382852770038986040231691534581704569706495098671474724343729603200623697047075036214736069084078186349214334883753035633367251426568556110839846436452920592970884450440382405120136135803622359064965142436546198966993194883569696346460021745024476141767836106774779426278322213374939764643113638202661563254705356168669026408998276166198618935979027088958714551095151831545828549364464195390053310580543807519590560353879502503942446147123734039174904542242093703816927400385757065376917896989277625702325012515985877990803232923196985692517416270180719188378982190678237758319341653490872842735335754507989553438223774542586373156289680862013095847689163761560180551104921773475583517966123773867506965633530217819283172994297697268530518427293021453112080653766153708495116087336926034499734562184194398943953573321608384232953241009868382548145135311252164075505859553628309401953470145487581585439711951830423984872274060409599530721375406692229412928637017835535619570881702050902187288325730564568667708404976108229923995521077163281886403265497817127155050548384090100637043555945924010458271014050581237863511600972843766669559688171788309779272863183142986357450825857304934696589570589774338350965347108393189836593324422297341469899449719187372284833921889172940576434285138737608886058849466670219527178995718772093374981661138947700785884821272228786913903728848165700101228951459135725812339850997633468595684289265101914923779832962648127812238755739099254657229196222086584666779313532993327200169113944524443012454725151588615770521873217208610925028181304423936742680075611794960563377707929760466934363399312858469129666013057250020059084738210239555020625920699504510728749235866940721250758161808347180129613945215200007485795968463890107900634913781991764674004259977085224123056370721599382830237476716802158214829415307805842119115471370660842447402271732625811352615100836377780926050176665211815709762769445308718697735406003293254578990753062857435039748041165578207225877653961645766279476904163157265312697487499967879120633769414939947826502627727107377356174084999569413566677288049402881774810909067446509944913346379187288087775771668034592430639006569691341585203061878682337527215142573315561474378933661753215149213575542425068217994154706079264520828244581480410083386797958212123615382231278011414012048512489771412031192091460963677503885208781962789204118557171272987126265761778505751737195300360711851615674374883214326831439734767970999097534131826274944531554043900820941595245338628053119125170429450232093595315673089488219668803902884051323765556776717785248411531390747439993929170950141960619018892757277344148173516978261445845654474444115268628405001471514516305935634610085714793259314890755824850234417804998864225196245149636839270008787075999009454691514081998418858517606533939745237188968317034583820078677305545061656009562364664508298989941294650983247587747665235686148958367533254542679647108352558368093792125845046331338294204254661960598093425066738981783692339820487783048686303610089379688262036719691130593902273028934431249840211014796520689410576010332775722101693131429076507142439076655920528051293749013946266787910964756633537836967911675085028625095760885884468123326020664736190160030408139050165065950399451245772620096535382289591406541381907487080167128774841613613885614674228052382693979051022260845486196658781577123102315451605457682415388673533276227657049082198698886019096529748656712221725120668854540544512010803657385520923755457542632045193694319188758773237104923240998446822263228997148363304334605887705235560507162754125738753299974222801800362374005696676918899014475410995540482122372780002885464756772042480784947418282515221891303149531634510524561714198930819999822661362958750360049267333701887139306942410675670069658811593215316465318064056301665285718627209422164866694022028432442877575162294104403142206899718417084838923229545007414639434197461590504282835913329584884463279742657475764761642824525873601508542760199783062497709847620012357874203216983303301621857551153913717913472784717768570514860998947049495740722446723781061463009718123466503553321185849926998050969448327278152640414796515372037173524946802035588354912517928288816111644979267311883897756623163689802273794316916265477057624775343245337310675853129477684630939037494527572796850822043933634212981379368729633442688575019536155606867985200793633872340514718474472874378698742694012975631719721567515576500856493807229931522500086439832953602247954398278189493663185676967945039558546398694559077127300229767015475647531969624652484995414085273660051490135687761982486849954965912508837848542985596520565687618491434011130684499106807935908101476745606024104632765256704865672608846883012033862066653662880491418943387502962102902066707982851198030201432204431734040319680820086323160552642247900799940828028551813012579215093116445014174855643351650513261986112838117102974941988761874871526576214957789622727725439346197023018658465176224805308925677580979603879242120709905091346733387403413313291826841894138448187626449604233365189112652989419853079236436115890574888703256498008149530688080912525371135626460702346269071741506623614442140074481405644833678651292964423134189343850358436256673947532550790797465276254830008875257709733320093495893747931267063864451083848085349333635209396856279253901422290331587847352861568614442154176694518014793338969157603584519184379742865711183736868251835556932441371621455621392447788482076400514809980676357292197513365788779516634376914155083304867905127553641375269607284579564140913352932568068522762371637168421864096995116742112664442112227057936246503779572668478886281368569536573142178806902556105242213985982897853411081708155943728619329733743806733032946400191815387041369859942757902285792228788900923095143259888197236380961682584858420556001214693278020680282635958999704478450478268445941761893210527375366069281211716251920669872523660203003665356939575961251139210434857137624822839678299723543040103491249555639096688118415562156900159792695458011563629116160712092231098710169842171674198859472120485445150300151411666327941167032914530113493464411587677520273854709662687902174682227227566831742075750876082969156095891098950632674715005660064704630299211431542292748812357943115492430558288761251130924924755477477942717109017193504087042918161974800675650385817506630145358577979618308288613733548119056743245716427336784897388954635152551779406876479529567028352341007581333173126196518045820005795878746658319766068277424650580226858820946799804653216091456818383365871609121946079015857480303525259953019720118047857771609259022569203506692648975128402326990276206553874269090323935101106181926593938682420283901484512087957421070197192977242970551946768090898791250314337999309286913140466975033501285131335914365740077498324494615671189809011172102941261169066282166318830050907661346327507178716586210477441855304766475242244534485319264690573556049079054391998153656521175540041485986822970359028649858866992801937812686459818268969756975229602116989220947426932815631087555221961802654654823712007255643660934445173071714232852995205807141570073254566475826290651964256659790314253018142872501717984711923738392061507930517214618199899459519062063978276544087686129466011601695048825022326160568220955653991340902271902424378238120148103535983014830421101445746106769160606398936419727712269354894176850104923572179198149530953134533456803663104147866648476923042771023519614092465172890725047209681371857688320820580193663570676935242583728649896771852183622823268041674600438011993066499709998647582601712790933984859612185651511706847110083427720749255213106900655655903567644970086030374916233101229860265119222949833502858850355382606808884072078222173405829028277183997787316804973983740871380735654922285904154191815968463567858277224646924986914000462140907032836725555322824137830621785076588788638058019770759950183632497805835698656172217936103592635942950193130250864617819158121886667125634177403527433406501179764909265081595013497770109220316853531731719304187057339234459767776204587707784345876184070757803647222398339178282063193502748472020606612945660220646778600092141709799490045138173448993311080744156546502935026815444861948300020949227916651026504489302547763637442673108183129639845731560166988016219584262885599143913484863393013762253037925563198345675587036765663925197302608369629997629214423962701234067359287125797216482262657429508518841504731393861379229542341817055237382384961203888743663380872009199784758666425558162286928731672632192650777778990535451504775494002305713201731533186517931878163138381527510342389643470243838336308269563423218095674329634423539710879887323977416782397545469200221474476480640928364759700597086116223212428904667096098772037567600090577979268436060433202450160285893933171360241718546355887474297832131695310189295787314044169570668292011806513589388603374262055872009950730874593649305631975862262103840828969562216495339969457903981329838370121099872959813360175258689868732914545214043611587679002172092682170886517541546024380438451688654385148621514808539673955448344004634052288726189195499864863026859102958554006308151879494754310698276388019413884973749737084693283974041670901542060157897208404741031182134474238985637291865372676679728937074168546010695421500248045348183759539057790797896910775244807166250643884679823248729282740238161992772534963263130559971208221613253474728220742195548689787736888415484813200050366989615880538346770192939088178630077709373672125063992991568783266783960349005346720104525029647182268318406801404332340393534509679942885864724533402119145939898137471987786678416732016466899406077998488539696730715255931270430890019563298309804144770583734733758256843040031384495099426562560447964873673038035589727490584874078060480149218345251203355941372174497026691580456108264090330493828088454274050637039941959826820869054589662823321598416277821660634043790318294081898885411925386051657833692389573366090230090574653538529754461478158566887537266497439315211083624886659277973858171815343151651705481974392878712405199041339532045907844311764007378869344750393898350823476700440596429998385026749866550964725819687663022574706394586781536869089166280441852410222458839543325106544468802300758270389181494405542603314186872277353170341945756246895039028130549848594041745856122563409607771553313543140871779046745589913978901522592995804677497123117960988958308228161936788803104492394501857830058134715898627046375358129686084970006869432434049796342298076539818698873688471421802139096546204059585739062181786741902287503487002734202898578582756198820713602304271931467227634315809237564905934195864382783215859473529450750273526062838882552876423016980032094982604720876410134274343460119185180482839546711895042023614969766659110192221828960361611177113628067982142183879483638831968999913326394028028677158005659574071275963381068785214631194785397554212232967995529378854681847897699388127736281863507419560138264522233922087991035157342797347454427668571015707710774451603495405066709585291526888369096764427662405260431245648339795326074158262567778958377371526483011631178240182467026368456019664698943838426255840795975238726772889042900868296311820338637702505316063403894794495983157990637378587190396066975498142738458408060635232427349067197687968157416316527493654874969376937198506983240149173527702004221869894385299537008341627679707078103539184399409133239607595663210010286782586652487078436457554282973012422388437646704067531927787016456109655965963250955303604710310962327214131772362749743057738755913671624224558571191198177467509738399914066764954984680867129660624686699555225840102444054138228839038017283229880136500762235173713506665727029524445410710909572236877420736253182996613492690608446036919912124402991749544488477048293581872090677361139266875349695712528535022321164459698838543428375497923623519230002529469266483934429974423304934769454867386733869945654054452419400647240452152693685261784927012980319746822398184513261356030998475106692857095988509664773544121167913690750919267331019199265936462580416859967516843710031380015810660596111059430502277653345784077705425203227104022750413065813862486509735881456596483389956694655395470147597853365842047430283195980038070656689830457447532099106905947216182801863650783449482861285108798326224036542421655891114817821803640796020249178810360218979525151565179721980227372330600140494397701291621922070682843296948071010670275843708775644167042975606940900057687128961452573878865445257635146055563679358382059521984167670520570110137270150532742943050809541448027911894422032600700899407425840023072740207350100688675256299996289906371170231504244519395102615631233877073805555405557374939829461651411834138896002132081193818230198375092091738639276084203909548145531861864965682213116341874860344852710481612435681522939163198376429975210453545513743833520818498346240043649797007737672202154484329001117951967061190160313882680589523216602602520503057875296039527955035098472343045506667807642327958464278322869623721262193516400227479407181985532091031762800043302168949817352904909964478518670690374511412261169388924390737610112273229467466128169375131794234068370902014908694634790241878614418201791873653471515121879536783090867624244985985422869830353407947780152277755407968156298507241241543084647342585015148083834957927372447509728731546084389578183265020621237982041144008469891412815880138365277974982605316466145280923904746569481273040048801599936913296267003024267313823971289224366157150845861754656234958797022328124722473883504547669850489111697515495033258661997923465810817420948630608288219472418158312252588320152898080833765183906413429315115509541248805817941565971948559108058697063511337273517424885688219439110468664119237764630448308652718748236639216210868299423421173994657653382820599186889442755806339582728302555678870621692998105001167748764814648563709816185787302866959978335780251776838539150910929964636980075455857576647614329690349439062914020861424676247348002826808828196137758936380402469054436646994367250946978061224635084075662812806461990069825282605834539961687144655022128548672967243495563446879052928283990160083022351542098516019463930144592323580120367022972868006624441814219739621557745057750723081347803449023616681757297963782435597927546277896881584908712968350262516948784802059251512797918689532978484550008511949303105164899073897691822105246455921340413887176907050810061310782920276790792820078359458909101206363621511522610845286684462386030540889216999254714777183897313602154474004675465068196404311726433461757711336547699510430129591318156574171670740919489467124126752103053403678733550308643631543504873945358512884001544845979578884613209050125696489339167851685386116638181420124707415839891049640138194372930414312563007433044738750958929545966468380833704620005962338161383587159106159025887744593998062511658154031972626861811492387724676056335663423739407336426808159469778175420335264600192004759252379566708052012860627397671882069127065641516537868279748712946626672644054131428987546812157199744892636622258164341261622774594126118944876823527564357805599898703904484365186529359654089111254139313224216519467060627459701748703779299034807516280919986183127125760762417016782738918163599192019770677203155063094728017455979266305057307008024112367404311778612646958217453041375962051137544447482526024654554221463889946470318654873709042713596189669199686301388394540016338879121439055252280195616095915944600311249173909140937861822781880250594998987522467349690730156776293830485778620445700956907458118952656625588479431020249224575146867415573564648841617314988704053374426237837752300822265198485104580393846590933614626982011571540703777138258956677786032142706423659713321941059798925074469257774215395029665368857868190293646220495677215189214795484330505444295671095187908089323344864434759528939813655142601744278645416411582407649073126709773510232414746326957968263542298958827585917124611987854588890458092988447118740090234678332312493300864657188406770281733916555335872553078051628184749527896041965047719095812816409260046971398676685193699761769410301695599278506122337834907728787639639321990273020374442753791373554045435773778443976591829869535298315462571291454224651558293234413799607578131405296621041578004296952410381670804024631060008055273524750611464231388676122171605077252753101384497831738319020190038607510750938446717892907537182652532437707898004228089105672292401764909293607696565623390798396291119598975614977638609790955746478940632315381851095045016769477505719868383793443134934498982780919971496812866900855714616735908036467413642417885340154467684016265128054940796002559188154236629300604649522281030200984295743402791756608771420155992543802191106565732744669459343423270246318123083986649825612105341917939464508397285911575745302336143498854976111792340971407933200672709074556432681386619507605891010866141728400937107740540604667171432131880305257852270579697587329161291174329779084115038867178459954118358622012540436093378389648993150793683440304662518080699820157213331460448426559789786200135790844000791039198997717620716939602958189627211735889031388480774702871510448412815987311548187501952910704253798525645166919209273432498018654954951959206928077915704563097752652154803893021895998357479924494855637768317505023590732877114542500571957152180983911309256462886154876449801620902423222451337481420147036243630152449475125006931625065611774736690719803290835352716341561512296981641182898954584987125450107128302972525117092696087654767442603838074494759837532302050277225639626321303308500310060254124823621254393540096058477723268400199170674613872764212535648047422322451755856556847804392842815183556555515271403949176714871461213397817434705720164659284197777414037832619750753598491561815518425501646312239389479275507708862786321478330698996355118075885485539059419033870274678586306681803044473854990406960777159303045622994302291884832437124843106634058801675703179288358616543943464225772238179442945870073810821974721077157366783821052166786179108443752525295615105033017770631097063131112851531930984171219568429539253408845425402040700428252648995341423194709517522782913014166628672349259708336640072801424225754356800377883553932974099079179746285824496360968918841521089187988163572561411362575947518432436671224223211820701032600541395380534437964650393938597531280279970701222623343333276554810770049126866310121390588303549721690028801907943449453951727652757224923785976717773274422303615935146916876190534837698937591397714637178469850239656365954677638233803765205949887840546301871558060231630279328660097428289251981958455155053982369189068791695140240343534311154327948675083328090325909118637447032612792666233156239169540450935347020199711151271581457070451420414629479838027295770155376474153229158881075202194134895754227620728654158598999952841976869113757401566223282388271732492271025405722843020279669556546285163166162741071174522367981770100804265102421335269118427752018717797391553377712347793073754981181387343326631491122913391995718675926873678524380675750357023224893729755314697125025008456692664032105028515698285385166477490297115531967348499295466084288531825707230946511351829254435383890161316563042466425516226982775787237077483714363487974796429093231251856961335397928768918795117159851592925740427849933701564394654502935227879811300064371620919541689026081831621515343771777081720091229715136888165667462582840471686817559240350368109884704994548717143749388451331750654097483495778716153653776040272727545077172176302012559536503275377815813944785007697886184814541328585873546339883763073705124419752078702996757397214709157055075059766524967742486216055081090729085026089087911972729957484032462122993911352803029775506914645893462680504883057464653692960242821549334824493982446521378789955208653112615682194028366618091355998145741243200965698753363386682908221462189695012055775019421206437262886258049299592115361736929462720907530473088025806757395264296493239135249241664028501444407997616468857719430934440304016166619427067806641865078786054369079629570851422419180885842176582614592171193738566495748660439510543644164656566006055279258871310335835242379447199099705100590259057854225364877893212073571674349006235443988632008318918358344767813726649027438058969494213814976640947376241383016950941779168693840462065615539544954592100077454265939590684666100328557725556994548100042143275627061849155735269611770832697632329327921058279370676713184018571960821661444345671761133964651878441690207498687989298519039566324766712408864196889064264373857801564669680875636748490172523263482972049113861235497148049303075887204685020886036743003061960138912043566124998999888481465954117749691246954855686616465543706731251023298147276657160439330256879983988886492155286704243837940278112690022747635033063968653510485324804791440841147096144949322314908237351652959915015793245621796054602682761143596017029870269724485074758831603266846101769465121583875793149563615792680946741947072842243390339510658011490126109451831935725064738819536863454532115329968472739882864144203878069563203440813362943283892255446624101742881760699297483862191094824665768111695823377001203120786585781079898686908558066294259340201814932688013342925286126859441222854858129065690815070612380855555066696758348471344085164002833786384261185837958398732570091339806616884064479743735776426305647505944613095660421343770836738955628526010708367521586327021310553235294046885700059674053183108513980380558534393484269773055107462184964175548038145114675431863610130337043212404412739412166970895186176692712564641746302194925116663714493182487704161702386201260951193302244103592012862238519708942547057290378167544359534950435039415613034185079448107778857173645088213033320428652170158940793191430639032646371244199710763414175842728595236342268636509550236207296770145427823145268217149918540608981857638250817456597290098149014306213313443254632323928226365237176948042967263020409315450452706825928500841085673261393527638970630020234638769523427516960452525148538841406722860995522451965075134789571637579798249743731551974021850901783102963882630461609930505585694436946222575147382900984331186093649063374632515754503104623946663312275670190854334163552736339949716412525890391054406744686426573464064402563914544637940699492633404231837000592103707030872545566981109314076340969691750136982957428899369302156208954534327356702844071091126853447770175570950637011554836201613542541439444039329144121668283181663844372405637396761269024072476252578068459110481257698186590470881778702211945220935928815559492073322712761650152483783659355796826861122049258635674688930231995920729312244559457669612693970204943839454965751580051704584715884851967832615650252601737751316947255894013188666812530617093412716163030476726656768046273227487218825098204641111091098282030406716340353024846657916058135062518983356745587233324832498719893910160341550982088239085455861368576668124430721065951296697571814711709436962580263390355641504009964289079092475137970832198444353308024613210242388280813615351556786954317897881745198642704052555112066438941037702757507762627148161984544650389424601179573422172499447101018547395639542045033725613672407665699468662069541198446887757094304736959712916949480620825526548713738950732933531068460491588811956086486744347933218499891309674450047058794054885978503413930324457865801635587490385489366710314988589121262355972588241516511603519979161037014070655953272414339988698811342781103688407842160390221810164654786705175972201141905580595404400333686619492383877224804408863103867065259259362010984520755251434440123492472800741766022611682593501042072490814089475344877412669945178345781897700532208835614294380575053141716459499307754743580134585088980514732223761951389234109819080724405651599203476435423130665261812164787664861282669560295434920311122758150076485980750984632952770153479242053634734576160374702660938214258611628160479570989170563231979192088042577617384444205664609765467449385083830954146174704720633087221987453935238820531074885990659617623354211095605983935030397960850247725365304181177040085598763532530925367365819847223586946150667911771608708202601850645069801483840618003642252106345108991875709202861234809902445678229798922861182712147906540500117001455095564101980969640679833794049300642248184421545534969670996820322757857751402314813971131111970895470090807615760974420933481326688351332686098517962840405416390155273793645095982431395207972790986178714493245543139150211012335723382157245185509897715598322691609058987551165372212837811949858497287578467200316420053910558339560929873002568749121300397997406093805441818873492027408641886393721120477033185523823891201981266829076854753503583706036147098051692155203413576495643013117541843878440127846631684518826356632888013836739389943357313942263741366382185302225828793702618836926305242153692390612823855399477283626676021632126861152151140813295969000643629458035203488605097213018506149415175707823485101617011658431737607756544602384506083488450619091322008140582480619270101537952644511535671450136470073932762820746616756057186546087023140583585892730418311631418640695829426024583144795185784746431541879176907629101806144754334308934137912691531874611737931728681353241812476206973801771289864515329821272379592518956292937877676939697563460953801433640745514265919405437201324770723550170633014159306015242803865006634572421006819387439446121907321640805682942044100270488495169591688025446725758279660978349775211571704966979657740947832628203156187684043138564225294822245464970707708058095953297499409672253741637957954176533711237773297787458179781988685049973554949233549800116307129749752028350923064910512820067359727584449655536185242345638051311043518551967949327854514332825139972278422053958144009372221114085342097583301073628046330663172917506867623241777029879901976631745135108463685654383364013124497670176954941612615745003151933937200928831401630146048698644185339312295628370724353391145843179489501919642032851858803333513249080763181037645810384488124786400196740294329143596997501266045674682399604402859284301922403765514590639226795969721039993319267172792005987460760189810827778878869556950714309323571571558304853919830572391191544728925738708983405218019828632385897889633624845263060179886018126069474238213604483070491066541302902182679381170966315752262138022043940948302017964385803310833095235117107191935169721736920270419717748888052920721793441925225833452122789650405476318502821814135798766500682585138007575944698203860606858712302371028830922111165407593748088487771652542094631866997691810384583297901212762132217874702062312795445403782278090606260489150934179202671160501057472673580181413821295192320320919972784922936886182356125053893428142210099468095240854672842418315884652404841968280746178776760981144470619802149389494760191484308884548984973629885616911239277071947025929047039787342710725862962540899376471506821684949748959119640478547313632893636788296681923329387991214805975181556133875831905647559795271194624247341262965587484608298006799700232704796875797016111812890103259978379501412481615072282733338806577875085594484970884121281012872684489114218016276005455063761674091304658080086430851784673655693589404295360761355135682784193179590737848367644409723566359150208001477369621833277319843616948649355355335335584107802613131195544770226173176532586676864809027542312478520576679406013954464533576025025813187540004881226537863489141435014506636334395684041233763239641106404006056908290734148451762589257631586110429082359264259596285687958322467388413662265333088844113516257723684380795849015355764298637551317726593142726824131293178747817381571810511835281460025937162954401019588779014967350762230605750185478046242115301349877116365721638527653550230068225315611932560015390985838538369901522389545447040814018515158376686768651318006226154029659024244512301413337361750531391752928419800659348676572463071749649886905368299722919236680796328019244570210824646223285596674691852103739506052360168445036947299252824075167092763735875985104190524255102016453027595694167325150513601004988775189909349017258152680981187983042581722757724234304704815501121296174620716595328888449939005971191292380508328053054338745399582009359421375214130550788137232323072762634865608459789960319183853700513406891246954266558264451314044344516437925910464615927039268280929103843136523483191243286929051950995562018466399412231718724848408767001471883851123567670756075714028978740345328136449357885817142135407354823978022087214714126672212128058038488560249567359494354354662829158838786947255899074695745468800583126161011511142719318842028361062356927044121712296323093103735045234742362208250646671553150985088720845133493206620286533144052420164068449409964735852796423457967134633349067516236653047972763896547430075984241063292391450666598128005718509528291247734836038154664253751015147353972364230400856353559823953174671990058718243945489773306783039961422981211766265198281068465733888742016041789266648587174967523275626727777627582325479997065366919503041848496541450742304724658798629103199838981359789385934753684051304620192538002963729992456823497765642161587589384095293888897191680657229823217225493422588640399965564114929950421080346627868208903778769494871308727295907667184183406993432003228171578247906458014983566734955798413805935069413214687266681580652682821037265588283577657864018984602171624788758575211149185840373310700579939587599599888508670888725613344178591181659693159115222747915952935255838051621501898676978265018578930551285782252950467880272011340266526387713314416075796892689534616346482697387719368409395954434198881784298413223830893816763739706126787772545971756077961559484407770978920496950257247078539230539397963724169185003112158759947217689897666517376056674660856381323630465564023967416984310842184104369670181832912795794534984200181081652953586621889277897366487425940567908751024538256927092549423779171735015349627315767295142088431101731542404801494850128232723311166603956100781819222476434655093471684266814286829200267319804000775688075031101396099793512041162965909224952982590002014042558722824000342512230592862181493550063819847779231308100350946870606339441780786051552097707724248783787909971939416742571407865014709631802144366005898746768625594477182235475989950542840481771791153068409530854449510405971204264664494337182547253841740943459261486506281236634562679252806644063373051876440929762732468854224466916472621576160007735813597280682656530406439847614262623067576394224435073339619684193601345095978202181011928027629221003709699950214078692438577307848370328239211690560990724397054266889257930172169419178157949016401169680899220394894012234432254111997887791077356322966686233520407929660604093330768419070828979073730899114873224085668061670113941853853252557010553636362389723430646765841784254484592146835805069734276607932315244908222117208961921389480815033870240340000443749336594161642003999023947208216388519395058147638855818549709953900107744575429489948313838579125022538670652988543700282958596478130127572392875747603731242297087207342343275082004868432080679624271248199978390161331472402067664232825096468351506791373475014116308557470412559780802667828797942075761903960600909410751175853976442873859226752330119825997397498410492201615404358708048242135647462413126918017156060723336625495112802443637244726851474715505080095931258120539689712255968261999790490102186124292255911728917160072925227223685708902947454108435087296723440987637128574619701915962087150576234887446713078690042284324476528043553579176597339118211204499408603946008062650361146621917173666535736196057845861028529564821318366622328748226452934783815332914679322139451548683621141481012264237503378807700511449047530753419940105767879168831930863064304407473278831145868171163335671945102556105676436801840049951603010439144678584348113775969883933610141978543702062480073591378843133410240148450843753682747635547994181192547085845244007711896640201412368189624066557635158665165052712891732913135731775150587475808308791952065626955022923702082302410438325608799784992733532978147126314190121350500163630696072843130714226610617736486499691530600713154090750131523779599878551762713428902344753708593591648847157010952985839811883623212770289663991107412778538693398318119945392120337304664133157400911085213852230176464424807466728639369261407318669446053714798424093768488916351675050032043986775560892829917831572513006739116569609170062982726274518184462513248598199042783108083128765302652077554010147500259203422070588036849473077640420166131020598947525920327499863900947812915124883702246116302311072591604536246930511109298940097473021981566657251808418399886861657142928567316647933900240061136660555347289501288358493351812797588504675479501885793414165966135090950826877040588140051715788674788730490757831263560956932488690938400434670673192824269196333969132903823224705241899060904669558118599189580687918676073272290649096893145256669108772556608803539957132223286636670981609448617095557068542261338115351063280764484126988030560414901991362434979333765015247537051047198849251142525948286104676501437643220009653211145882040806292983703749862422231957638137251743834483677355689770838057422092590025989085095048961282562340047596252830940805407488701361735030099716072724271079433299333852759511189728061686900611145639511334987414858163939449365992436391094095251627035661330765417291124773433464400783187052707107033486972301057393078732345807862850174075126823598716333212592434778961042530517889194373765466100044701720913506798151341213045116096367326610253826776093947155743903488713384094692608339528882579567392649791879786603952382645590276032855112332812117553293129211219894013291903379119965836680369516219439623039266758476032550406761967860535824996373249141882385233559600947867730111562805319161785954259787575218252963265180680764931215998099504452641643784573532476867219781191452780376885003738541991054153517137912118993585189040395373833554099899556116188480015668072185434447476368654260798238646933496027671314420406141676628531577750043383426853599841847259977261307545605164788955207440832785832775997571235718561511203778324634609323250256093591489714866302560485558128270013713626231683691072343723389970733144005738954667571695543760789544787424957412013567641308592330391896815229372482288795220827343511467849108721415237572159224004112397186995624316405668582748289514884155398751821731810964270114089859162447974828290474995508298305114940074848161436829396107566378104060352777627887791843064046318954791630343269716792232736759774535045364602379198824412670460740630572467496323792148647086060324166280663850713643799128693573200746503831350160034839333077598450943644526719861552141540188043206557653258712108845943766242299564688035106103726316173461876108183277088012884781945105249645717654560334064361752057331160226445211583636941227244674471315195433125311173635353653101674752771493621421611058156573907754058443135291125929960679945056166761277765523276179533232917157942215755139990513450864053511027599447187234767326549592432745939949502166056579587961739401418568655272848255870560806945677756809928202627021075429673751297674662710156862415475745893406305029865087383121147531881467666115766353251774154529868254941409704806839290578816652668303402842687842155812727688420070011137152279317651578360280109266805016453964053025510109088375955444080825857901857247310338898859096593065748224412686536478715415599328610277652546711876863915665655980940320806781872029774424932281006447370126718733771634656262238103235473615370368920904493495724796351261440014779016257726503373650258446662889398066809625598166725610628151504118011732573567021053018518679377570882676823260139804747305522131399436750168519029514206763755487346332691158470297526750626931912133531242927201128669173031348082450125199257236084033119159320708291304635336543955266730591602461993002524061428707187216532382155963771586786409167323787829079555787758586119106696588927515418616482032519733406088726270862152380060422757591859707268654511425530972663720819092120257225607310814281696012287663918686901769884097511059727910026404831210460455427219391893275554388992213286784227375798109918201997286659436954284067853974442492885569480393643754144502171681664556613303873763005616809404913490946570801977651311062227628952774379088737031379437698581637834112820591441426931346866348526958547141387486102921087711288398226920557424015468471372530090648661473529997194235742469908941612602393505349704068054633368124095612940859537394198004877917968207814074110308374988133989810110803527680473717980140604760765579035540065982699415585072678621175579763121335124677843534482065521320132337449834311486786283158103762097381358084512280647676769333818382418974069826835461020539143525179768399672414907899015401098275460559634455624382215874225773640961026405476229303915069979594833216607444905635119508325760465469869626602281792782133955389741670661477082907782088454366886398351494377142930432092053687936637974612011054919021906840355445448478704409693818233249257459804917815837475016537026768471436045289870642212393551645801626224304157813400206000222936866573680904228910773546158918230772772536430516402019736677905101628197532327074232588284159852059270191258652481386844501754283006349806316086723098902157876261886723888485541900748970200631462210761182915525390997794042970295130489156699464908061591568514609666574251201394616901706636521637523172567188008597138412226920063168942904283226726145443062744012508014796792286692593479066653590758936109519723433023713437820709939594110870945136637219247325133568540248329557114038973350563163160789808100585294500240355639433852590858243746946367982786201241049714804848704154372808417447003401672049654960126331530023506443286753328944745753578009208018370619056919273563567725094057651428061689475897930132832677550892386851042798270173545222206484675168075827206695691249790279907814432740194825055037895324868482017097528965873503089973748570926339557580751351214675655965397101296161601576595538856447342018282893121639943959366869694275659067968532439852677258266864951865600045404656860373951947422342479429590236630108680937358261874310883922033704881082488653013939346985148533279752252202049209073791226452381475372077298106191392944988713383421146132435354772675032316006450433378785992389697899912253610713741743472658378540948488915109951699605864796069964735015804764626958685767246147587777046928744457136316086794485374050325552956458553488139453719123204994131881953133927676520316240700828552204944834076464656706701837424106896568789087088031198058382516004627776430566099827809463867421755200298163696599139556331824393056949891608534388851009538904198866183012571695400539969251548215329094896881790526889636780228736207673177479466222797422327457786599687811435338853692854522708381923753807290298115574939923833084289617367053976448845258526429776955177221039759133385099377930300761935928115256024042482824060887651355890296759300659180350418001521535383226230432437965055515166445495512579566036806938452083618009846062636650085222914020079253423955738747159781736026720449247485503226740133120006187949819064229087507140437839842149909714907992901981572299974961354688803040884451857748395564729834444229319126956590803739400454206805533298091388582760971141398945276149851887497048369364085192309345805586710289695321366774502679911575231176498141157359388333913486289963728763482977698693378174182707985969757631108894816764540765988548212197934670478352292132224210057678312037367028009210551127695354473371834852965312417076644499595864595617350132510561584559673638442198326811450130730727148808263749684134819015598892429709066524250686700812197975215204589814728391705555070606646046817349273461875331557413149550959037395610575588038967100542155527964968013276992495058194495323647455257825149740687329435064402736219398926962960898791828312881706202462157382572549494194367692271265413995548738966738935275537260189005440207062413052386521459844085377286806411183671520549202669736591977842190775266412109473050504304830864255178246441074029998864469037727467405681652607788704270406411138874116035142956449681920147149956637043138926288418697643199586944957505957289568625720673436113169950926327613491743666156520854714109427349847372497990764447642347261406078867883715153357874601810596847392005882149530162711068699482381635283095719071487998896422904396561678726948920987259608383718703785542292366046026516893616426690779231478272217764463401311201715345365859762025905046716411629521840239965753935312929449546268833808910567193222363817537501594137962861830098213960767494039973070644206015512145402119030036675991507382655680239633926643541625428854141107651860314662546898382022097764288605958351083118523025775899653365675746112773534807072991254964513160780242711814473964364715345219895396906864416314623144818413614883201052468543417190886445554120616413572012390704730701665552394315464270939014759726878754586894552163113309448854479329531757860080773257081740995515798187644084257583626006218873394937713441787407051170155869796050792071521061286192093172625908046671668905922546116527796789451217109615442277991510013101926892419133445887000516627198658499124432027090755753738091785618296081606461172760764061101366277841081707771697708483081257486970944205416479380947210766153396651127159943330629071134849647112077445810000039951890893453906672105278048680803356787431045019875177378989464325852287979277948186645572618652146140776916165719331752052149171648567599674867624942943275984924356172687175431596538199666639994139079559015224682723491118961727313908194692290740795590091488891746930644270412007853708819041564072011746924552928074946693708505175112302696762237911495988961040063194741503089382662859400877500074381973320570023053558515571363062295251952105842222637247122450358254248398211225112408487269133003667404136792903858776071843959332801844999438929326990190099367760187578957834774573066410362875915211375923391853331123372697565870651403181086117645033887790317232386512926872609064790306003204404052648942101742514798606174556814102620868705876613630036373066909357007053443238100738492984823354471634963896263499716382964406537603417178037335813857424108759782168475596002347577990277016167368344953129471669741402564127961497081996337652313470432131694622411265157008165021264513762708196666302948462476636901209628549505085959339207154972344437232128793612018837175500657246140747004711513332836522389409733762952960679210689491195724996019052629770212551313187987691257667812100389677164493699264569132149059360890500387408822696175268350976053744581449621595436190375371893862189292123235918745123792397761944472254236491408601097090921571628387457990939587562596960720343279244757016744236366874177111224033952424304965116293155966751109529004446265016844757002553476619070585441389662042964946727986638743044903448269072154689494030435596748895093398856224130541989016345396678493668224795057404943633492273312783713019007014416220460869486313481107312570037539928862064852887805103075386143953504143755885552885627454648619893398509016018780541247189654687464000171862537932414332962796623536588205073622507089478732730033257037683723063050812408204013544763620417004083301931477459349135579990414830406983095901491687535007646636898817915357154324519018126716129019896971964440610809398522430835218032937925977758010413418795175278816595595297922534315326557668617754669341793662776622615030524578595034265788542086136673553544876844395529798330821727921617317255921878287457787635801881476539172122764382875570281165982289759477010525162787262212974771232098090871139643853174335463994529421215022871637014150680212865612781363890106142534966286509913346958600005238769537133947293117453419172223897225690400642652624926876943160396617436231486477573093536376862051330307617058643839734138709427056878908816545394294493672622247150202557827013622250600422532148081815443955133407270469354038315511204248870159691534922963596258602193694996623694470144855328970633168811567861456360166835351520229557643208125738678912109470184880200693380104608930038261478423616769436634365424154224749058068055592946875232694573299207174874361342462100185767392578606065341537344583669471951998621044376068052075934757274947190444584716047396050305343300634865938893991429288800365382223628388173707547927664896355247792803030186976312004812583187412488233361675509516216383636955813721453327680029995548401483795311094270151452694398887086043058494318191119497926643670822598681915171480186158921281053760025169218525092657226839177214424558984802477600100075097547791221796374495150446883799691997594023479338920276515823102490167929400574876744935427650029641104058177732083150299969543100652521308248793694626947413235193851016611450474960717239371245789210686184823252018362717808980655227308219302111815377242254615266843845047341220154086395857467707182312193749713523121777686450996315681892824914771278358653301441242169497070540696812833931744714846924183163445410736834300288562224826692793860525751444667025868459617373874024094661013426433530668622104386460767995503598723551543014021338721319481788099704104864437866303930346634900692400296407427344343392159245714745910970221740425706710397083048318533081019194461595773833629144375578933968156365533565777071147466058355163295101838408473235337112042224972874411981204097001279775043667925954547554834097076784312865837444489814089968822073183438751121362721087504566092809312773321220096888126725520877066120306871517053173458380803376877798736927845640593953795237320332587910238043895476798861833288679373770167733819291540573102118248048406704096523903356032137708372425837509633400165901630290969125412161078024514408863172707973042077418624700529840774075579384333836060603063045153890151366810298510511203420014181746054709272601795150187656773065331729400970996474729307804012692448732210460238195716589159989671591930455785200780655876156518075024665014751458083943004070937682686949868591094164774274716644812174229615927269936013268755910166978993570308163401459831806635972556785900759131220863735697413253111793418107110143185546643405618285074349741914525997162206501947353812393205727091702879518113341589008882164604827233977415084021524987848732584342976019195363303432227552581474392322686935629388443690793070294013478882984308737716611827317239524772153675111649642240779128285101449552850547074220076902500723716399287281921336836303676923035417227306538562247222864472249848444358803291129184194100388517777543875378674328478760691532944717656304272189654494897972364143257363475861678226860209480059980692395719145648519269836157823290872356802339794470270730948426518763235290141597969760039274602545190005811977008770585834449134009056409399634081042200035143091889552119749772368334994770004086161807229454469848341004450867603684296783738166695266029415877924183208526802240553649527561923891939496389995506224574851916030515321333841551814264588916544041947213491824684046512762530378866656249743535347068246750817442396574717695549749641330601032579637486407789435080044237224910433077876486886085843064837033950011573186262861994402908419116733330557929650802767150441603298724604110507101050713858221004490105115067622242632013800007977057294333658243886639526109533467617811344065972368151268150281856410734515048580725468398061734739803891366023973341609949320662730368854715062146252313962799003109031878916798862245429623717570232758824140073309364045967838898646334416292084202887087983460290151135350394288314387289853028618975770894800741238478024602433337640264840188003940780262471082767487363656416190970449429908896323189808604657846067884669231807214674321853977446496214963799247986438097811562834796071448246399498105266316068974504755244966429266857403099854852577060188098975848238316949794814985834516549017141905427257198732874477264694430383098118087899957106264687641923379115075421711021037121970495769353819829181059720434361135628045485270900459518439048195838626770359317755790581837404287508603122548371609863989100464887476972321675323557879827268155869039989365630594867487761337187214422467098044633899639806144126455025727632749434658062318006474021289137031599690911396216332606699714712779290513774403377034381354507931644802794909691492261157937728015169403645237655275119566051701174245894888765960031462223872941427171262171444362408567783612506451495256039729582067119067663914829039711711586503914566000124809347500253921796225974644649860202078248094784705557133425457849571460966293374114403281015610120418205735293143988893681668082842368563274378647960619978451622633978609889202872837027965699271525811919852484818258662852304958560104426017024585520391976391673624323397864220304384576662594851572129619728056317996435406894435696204397617194632448743115075666959208649959164734009773555205448438397403946263974693216735197237932117201998045378981736423352892444500818265944933066925969321755029979647630890006052841342688340496514652223152705625461102330439807819345879547837823264635565865692425428548855413822602954950017734121047867575236891885941188617663066112737407706618176189060016367430003986427651876290030632769858931203605272347695452177939290261690827448806109151589571082780752318357280420941700488160989763077660319949085191208084674124724667369051412218770070051630478784134624424012677307893372485806429901746699998018706286218990517922999033762078114567881471062516679494128513026721611891018786362862800793006617292586590862429908318411690516735287500481889894153806123423894224101833599357686443079123891397626237197275926918379701077732068473114193950161392048903532569189909623720005321191934232805137462857087105154589473558382014411655448503890687459194484564637134961711361574670650633795156951335495652463794594404990347713978524530046366182462644175724832894944971427496190773779628458336576091525113599054198531416471677998347308279385095190342176478827797439758526373110950251019830962441332199841896833380290517278597041998459362895405259157146860606067990559655330414300167698972030452635839442270459665487118537344537949216574046070406076599615188304393465320943579512466881517785773857687246344868810843861727580354589986168278047500141050666439120361357171590415786962805385545467952429799939038576865996961109334627449228523058442441385952797972032995222419266349284620219591857423147593549775192090830405322234722741037273050112461906187530310327043007062550580839806555051838062855263851145957559409810631410742786942264491674057459408821421273568776577920836365761427281627774206118196172089590835101769263813387420357129217964460138105159818950513553705073706437076464505374373903422834306334224941639456103913020696285377174433444002130313411181314998690688782556260788960703833156669268599233090989514029883197228993754085162444048136196671849361776476598414998693591404370614484396613509809868287375648271471337947930559985388172638596050084367348682641972791989273425172041354735799565150957271417470313360202327700700801038232021440352417917473319152309114403074128954317676032172488314784395883570582564410182730972996399388816136437090675930031428704763465504513059417631810056195133432453620880999449855491784723063508586221817941847802591412545827537817835488927594173837396283924394917353869708380817917591070328676229947708803004756476114523623208205585159164471702890798906831844632520026481845295476741277440240592472012122847720020710894244028649149946027879664420455349147242233825052223566268522558488471594128142167056579650088990430160745326579900942860753609899784263552381035883281016674404327140438235079647466124969109083448978507351909509009152846032321320130235685135559012368690268310751123387297033638587916439089361277266609750236415970684066744084033102234804723729658368742330610281920761179054664481862173354255141483400852894699350461435573743036618821973067437029357546293955275577436724293882722378886956554828416140183921051088342484727556567732745652532445542054089943944365140985430514798865048560004908482198697889583306733291844611890425911848417311738463608519817742390122624966223219978924119616245492032424667014328959916494718528992161132334580920329641926770075492657222076594603628897484480891758409991103072367744676889724411121909445485717598898585543918140117358881958614433429012036294309535962099757515634072811760294521747313850653526650503400823179818218523510489228429926713442141021059912911910640717659026580263798095208441383393149833751037501485586443665590026403693351708787712826540053778421690735387979771397158240562041986529599768469986697985393178557361230118511193913564598804615342136446281225670223766429454973934394255580954812114682845798438292162687672139919187306444857942910537820152685789542493399959804210134204761405341811429366159966793760419446728802112155275509988884102894293547526023562815690570042948918002490438780935059741737718865257267995694795236076058736793718678212593848393659820509861474620258032382708928859185404805688246852463755475525191818623642404475939339974599011954437729105039926025710514809939101280244811320690262618257768091425985338411928055891365513573805301788405320508828768763565288144840585952120307655639038392131418438960258133219312839227229857280106214601052555253553716163581162893863923226581937604006526482321735012490659571090778220424535412223174239196245714537409688272006700873787787927842633591306217875453971612761765468428036632635606266433205003913948904570543292905142374830904033285568513445769388894910462133954196157405837139061898992784699797924601017252288712481812016672534100526176103787154004450452713142353093720030186267277554163220095507389327016872036070190305893223583724530605268854901980247097989395703256453777704368186894836160235056723853177153255258738800083858788335482227961186592478894533213110767726892942929885603980212532190723048071628234605870993090645903361986626125339651961930024979840447324737442245904034407220664647848811898011969711114384102214849434922536928622671394860425776068240737315114363196715687776728464414668621801755237807510641872169218481884037237469390718236860356966438261052941023463433983487373294174535783333764185808576556703180887785152303203433335496771233826094911574336643699232610070444564608546835649090632502946885798217055330180274743523692782234026256672144867363351562940081397831267350670361454115517699439525724159818431367433565836245084926903758703656909270090687205162530978017771716668714642188009524903322181557918508166364084732750343186715884594700152304618776215939077666606265066520786747752174644790111331633779702879316001521948260265309671070788247971067445539709963287502908382015507000873240677449453639966578992734260835314471508251556937344176690343212940933587563838873692004784219472367822566853639787711795972481624561185218721191855286772357213342383245046155615849973933004860464485980267315056314812459808010235948389864104695619727230014632193964242245629115695386756498962957836355221729302300375553155825359847607568955219184511258882120761655346491264210483245452671217425644500492926569820310533873768130634124500356416090677000370091511961941836737490638228323971621803420877795613820781699821656569144668247974556557936306294859787808483414949993454523633245509079064912801404615804198008760906259152589799002737056377598950205046043496015474081354477145777279901540017439416599308216314381987489144949291271352954452848292306066098043734030406828443636463940485740636487982542678612426033692919264270066391086052995803937284683066501042945469126077526169409061534857693895742997703083891998484445513624024588016596859897991945311173976998947234237153264652816198310432302679419023636254260697632135026322584917530722027347663546280094754099445206675474803238341076668587216483897113485386711966646523486265689464653044634126560770896749508227102877225883658736813441458915728421738072622175425520893710114364624236764420319154302714636218791678017939016288820482305032481762051388843354565704561496568011544834996586338153239365708790326071265055794923191227339047382629786011172061401470300483585075909381870919918957444294356068041003090263883549763397461856217879331771974459963540161293878918918955102034021769078467595582580866844110435587295729534192325101483210052878650350811697615025561392313907452095866310919329511096916530777178906080846975722934985832782262546099344035459666525536757213222797420704360600903661300043823144095713647513638465108882827520434378329098343169968015592831787472983305087726052028172525011536101050475756713713985528607362351227150256354051197078738625709901539727446831682097625599560947228156226835768827534396059454485107396950497714072863329539926418421442732513839265916744288616550504351563939629708698322888197497490321991669499664145288680405000149648915483483759755537123213208913756769724341745082342099623825798746397143630296510514994489780942805310489913670165006849647984858418494565867955278344713176180512445361808744494914966549530599936772702458424688303364948064151663896048170648279554026115087701473643606226681197567544370232524532582815165250098849163145236346489449448026892231354381773669839584813237902326337754473011680317717268772444553873389315261870460590079682269705600193042132846462530287563101130655403129017445838931575816357116954077630935595973315320129991895047953500664725614105175008930630877023646163769890678783065978458546871942240387217210164360572156667346135984885420529156390419471946377082368172351364108821062128838646477686555217673074546938063912255607509503043269829577571165803585627929366437047341528352581052264709804729845746667274419445506428131200638071959138691769922001326584663262249688306247728243948856258380821569980767752112694477874212778375859707007568852326114968409320172143763788339466502951852146014069888904862674481955403179507226126560932363608590209075544054146658937361290367348161555236626835438365958591104722780219417202467374525620791189031145596514799278758849202718792347131643838881242139003134708522014588835001023419022502744551480360156135232800629596030482017303590892198472204094931377026703979734552843075821316286551627477747822992872614665238822292700842713895646755062972344235190570221035326821654968854158154356185632108682956029424761975605516007079948541710947632507742947237325153153164168380478152274930058409137024633927445347027501566728013837017507070460382075342590412980311992419701378251140874077971944469911868202824397228847700584866130272159639336467175959750411943974373816876342977938206516833856962504034264525540665221815764556291719762467227241322985248873579715946539620225061360800851092733879317994556051721270373095166366574193564692045144685677207864446029940879452176724440999191991529782742808141671277423450286592848965827404308340765220028503411060286500728579583183815521319649251434662618510079771632214225322138209643296607988758971586564350916804580245498789032929104630146198278577369297742538298205753461030080295912074426379819686162999103868082783292136847889474102750656136584857655518279359698134208710496093657407037326465428801150668148883447421539818656869030403892718602894672095542420928181874367049166589656134818859920246048319097428140559760818145149330141747425816656913635310088458601346408322633511467723547976927418386483629462790571965116790296197191966868654344175149207642217400454485649512713037411137399891244672461751872187375697085202647546446742523232278258338359820758701824920299082308223019486564864212168234538853698439824858601029805817976827041184989333546297675493662701442134774544908131146365077922568954870356330122031143737036027304614982682923019067381981926842329487374149534122193392496150584918680461525313803665166269472993123035825818272243969292354054952603239946486846627420358497948869765584451341203013505221413549424052025421362038845441744777948916335688821044930547236609571660136483942630889312309061446726061743924913186600201532082352238867523350652262076669056683161189814643902254828450720251309347114530287023810381128180327071259523630011864662602349915787654403423461658748676558017883436738844953563947243613972815713693727834290746400339380438421519745319705141751841959101434837502546192792664773821955910224603733308367388405292665164593007546664917481573779454221936834069817311304309533264569954280110773290601820590573211645989826284266658849031446719519041160656639347286086438248392034417634461870754252470567587254545204016109945084713495512132621953414208824449947723468244618762488118282690277574452693680859194495488308814217802343177693402251602149401510765188575648961588660462282766364191034458622565729887946856436949361728180921893112431126684991787811709852666559775489251780300248558960828505297634885522621928947276568149266118584630489952480966013426729387141423524133702561551748144695528907792176107134189029554321259078891637827226686371057210977932204702523424329442328180017970167445984242447803959761576121920444646574224618914099742920037151809600077882915533885363618839532886996976132373425352591779183235656095140885219497342943066468763232836425767570294041870715269860164704952550657729030900057108548916720017603298736915205502361462440275177030640153926010059385629960754153756003043182938131974664274964477133310468003439474579989432557762958157977313424397311438137316443869529747314152694559792117837106165705139437240516974778906224731793856190846434974986842205810283170423857649304329707320670080798307753715649721720554999642911341628227296877935625887001559217930530825505238717043250915096988851909392963836186377936018451745934159447483476750505089945666752344323029395458148249312456499154159202104461191850748355463157032244890935193677738902877421692952599402815391339626007078321537668787751243724829065151417086557125715351749786969151463229374731827477362604104830125107605789751231257115277496517018802247812288715791142808562112288592857330357812881879206633568574434264196176198399062635937537064698263070769293549413295831073694616858739945482406418136489229119804102110747269275441055176613213304845373835608708920911307636945813443300817986393201110143355296500257982448800571311425846203898005356241006815795604721617115968173252680980896854339232174193053826995706734413750025322420537728615221867072232327577413927490740348772253475629373958050075342187350399597069859938004421431877941961225279455462277951933247124588283016178117983798077534255697436378675114535999852393965801755312437770044407384422442751185514811959796420996804279463083991256368550990979613292938277594402687267249217173573286414634498409155772150875082890486100831782348627203015333347930243588675482575839026078023607168001180661945346047827948024191293709551166282974078097924064742880687232357235472366890772475597098785051839251713073425967677870581765389223621415284167357949282173021750210078112446796490735835705127292540129026992017361786226801809395849103141120895220126526270102518539521441334562558291141847359944569211127884817401149507659283718978472285625063505932384905108714737387976022249865181496707269026174513759928121323653045813485835214917507530805644636841959085626973166415775790955069237185245929160524608440747410939482382255302936326246940819754030584686897051294594947546511300208054920116170726684920318813044398658556277159285379113596254960060563575087156416873223780092009296652460969300168196604912929435569327699641459371142747562843681822128450678496373358851863444972099545210564947180044521669053177336635190206028370600759339255841005636215906154780646049191752126832120435539124470724786865765616987200492175168896656319419995130791910175757229962144679529540461997880897622267971267872164811772119227378905374520540486260445186567230586059022295190835877047398608446182380665432852373965348902665722064427603696130904308001185386381486927372746983484110491063680754061132772869174680790901785007205046290825047347213350806103253372786838233887178417521240982870975571854070812918339001180693987357197049775580356042036426761714129507369578056774846952215931327830206525071340105851050668793335416764939511852509835127139285217518367219720149778079856841820814738564904618556473537751488253983939049152902425319279778012126708290207353508431586690587815165824688654609484879102366661570262075124180705871764019859058903455225342256600899149791806807865606119291404350585371344412704533544317405314905646791127272884871272146106170574787213729704920472682784253058743756642778997503999306840390843326042963601430350506552642676019792066354560945902596746052952807051146355000914221379056880870701352571098362492087563768963787576647637115145174945332472162212107056873255888430466300373849272397894602099082650985224457512305483446845762830577756141704667928025322278120585336551106717194668222912124336179113402402420431664226319591239573656489836396818560305819367838387083490659200360849924453710756313290355340425769569675724889337458167408041306467337302762246507230734881047561260938515292798790576399960066219582554731819275624915217058350263699685697383985512709853491493604529431552595796066153200826801841269958987891459411208157184971406348748631363916090158716162132381857248826723890731816579145564869382981187294998065595859463161243920549140572156889020637652662051739954441114929955289997873473530228469712320507149060059892361725632299081891684064028062876765967535586499964670251369782504570143300437646269710442166858759445718359478622372660492239510494116224029066059172268469152778751863829075190465558058801970645755441518188728209960236158538817574358033766011936037106374577066882118401063752573843431647936329488639985845848991628850430415053629068689211965926607221374946823203629145193318937588199732016942119907151377946866941617930623989905556244671249339596278822129486980194431128192946274769720282512951822842894494123894602010445946994356487123376542280549366075135958690576627385728407370427389199443692221152937458610092896669785557947654824441410093661643328496999689601955521446850879624096036935151810328460386502946870576697462255849265644922585487779213126158511847021175032748942338089730543075068523661158938908410365786249568682198695129215732917748338746302164881954016124051144352988507300676014175517296258403457813082679519773967032597822722635956656122615911177598364733683293702576109559466133451289425393668586630064296401204936907520511368315635495683442646832492612879242333018288307942428642514276645611906446218879718431097732889775031802342143762266517925006874078168354608074084237569424024844778326508278690045171813166842831624390767720145339046199413123762146464262570872497377314321367399650926297985977816879716769719783577787994453824146279585633093804738897317244748146659978104883732916761877418687149000023318369302285313373812744978362381535331967272905930429365368116160175428190788455722774951838760664843892301433193205477383242355847724786013958769239249398562090617035316852581598414764499605765976450897314289487908294213876505698391379714074486449881008317723507639043849254699136348103212012541916008895157411607604286396498305898340575328095782742598597259302694915523834079843285683618499285992094272650265052823723437166301630260668998844053509595823024172304945907557812205910460308201504904406002886265586147521560119495558336069161627092133885839388766807001804008209659578825022665410831614017047280695426333178334597479333194443346513319258470620129534601796373765235015106189328633958885971973787637166458596055356943368578384687878998547638183480054988116857999524273268409350043585803504117636257724896093797816541041622229623522570468776889201107787846710828379217419122908600923081722189473354269754451231650309960723046455442069179639023182879714983297975589687320641731155231551309237037242588303424717535225843465075223272306595057200057931798182622197504034138447285751818215611300370620408637634058144631941654055919137005409930349035947100984781422601702389208212351542436801206585552345528281528317806394601911290283362314707766109495406137625983829226424917995675782903788658228240858564390636884200312327266383576248387318048414941194496238725823745869743582829943059993123764325256526294416091669950933195645914773815802739432406561372664999741433932591455258362559877478544204419967664718732889054966869973083596185388080806479000609559934538694353774088559127439215947731331653064990458280641662093516194051404349540682641942750852092719474263570172643402204795836630308595587376910510300303787308578729568766843106756954971730000791916682150469998806054147224060898167599661251007801590378293570037579142340194884089235674302888543545723061981994500592887926337767036925038095861544740171951664240010834484264666944368222352111894394927459770606362841771714672693001181642100124262917858387671921174207469227797576468941846982105488719147286982942418739564241000299945840578993871864101990995820951811482197406054259073790405968154700341258417238843813487304063603937356675211469369603219688695413904769419050961188776946885495768680072855461304907147717918716451590015065648358011903532805647364410387524073363106357788377399811140164918273273178303833519623348705874396506389051181780558761671644886663969115519023594080474304341235177196496326654659396076891044553561134014471695767877872805236668685744207909074456502801462799188321567736275837081450304215238105279304053922496874982292638069286781268699402944952423909747177060992110854107701519629791642790187343613527036074130436526965150856950897783672818325230670893761052757465721841752102639459679395725895597932403421467590666976100521374557645608846641996677002674143193571392933791270866974258097499805731873668399541538500105967828714812011050194371619886188312263613664379051223528290180358708280623994027611715708479214798081069042135154091166506940635584658377666197861185522033770976361661201571274304765974256458028741472198712981431970388121461860595827224184238023135356563949557997541281682494801411335361380665366788429453222321942981530634121761646879282245906535574607172759580477907953514862936036262592418138003676445796211617220887124453924721155708917052503859024775089919866701165091684053236753881105649053265865540793204618345146884117457192268330130954981857232931763570211720846996034610217028575135422521986234219273645147102902801954483250875690745022739513291786514494182188029589294862440946305632740840360700371703010476203685187653903775723154467474771822677031372736409205944401858009126104491472872509454230912484345938396134001265584526574989436873529394573469864483731081835298646529909440088548937949205912914392477507441313650351807866409427473129119400128179874588263165718424844863816502556808208314917819511727286908412403002024993707431344835385375908150229182810086295343833301388045961754007283254783926062375351623602527709106833056345955244337932687489306993001764324804299712832254196720013695348612171208738536982095164175858788620445968372428927771036766739711276069786715181364722755826981876486976716420709010672515455012326692714289955110976191720763206412224104333418198384936486429663011386291653591944358713385182647686756871093974007387949611083946196839524457030279183344976320226387259359116456923417683240236787551615046063904580263868331277974257262498826755741417274808320622610322131698161848072989558053779224764488797602094463928577116220475758841679326792633140277461525740277607235517323828323864323474877545327207449255707044761357840220362555721621132673219359122317449475367359102867607068218105512640364672531839183580834810772872299825624226629362857943267850929002760155779185627445351571513624481348392373859599293440239249038021303720113015245777418625497547429048152042805088063755567524184939967992370885248993303094923166626308189315174971760617951840120028898108065947135634783145667785425640748864480165461210367502552388634348219432486645896113895678868873187208581367621333401788465390645820435085680229087518126085095272035307180546239776596884892983970033877551950211238943280744440206547095044076206073954327831372246804039349025788880358048339152354237903281462648817757452921253875975964435739288818203978699476575771606682899308888431463408539281277495314719327400227831867019190513610971196905568461147590488901458891133139720680503655419192938861651741128435593955760865669570641580462983303090104785276547327637300800217648586448316156669512199536019655940114853557775172715767917599957445805275686971230247887523182470091610235169138947933359805441238005815939631503540984292090857213457053642662068344372003450760982982877388029759350207847089929261346117285877997867311526770696484821335616607279378060884575093828779318307616445422847747375800907767488169780612522151813358554573865231863313912764043251799891005877185672475832391649237882110976760543672454620968986873197407681457175305966327868836477199937279916972102281310482745616964601327629185375125679233536364354934993863269651074215767778559890310596452596281077301750698044970303770260898519315382693880233934931050099504361434608513818655312352169391718691437997675377238122328349958146956580913374115981397166647291445901555617351639807087622779736700174972157629905011181997024729924863021288099220437675379661333478060472276779879714535174753672004402431499652360321512127528528927871457565000104137424511028816027774842549114393487518341600604792388506122601859211791780884361461609426366910497444620540348067503720068719961023405867893254555434912657631198456671018474752194178666708241684796826701300813783631303134204512091290885853359350961087410165803999767158500058194520574938654405070437142240317932419140104143546083653171817249169781712275707921567125725591931018054403484833807678465404788922533840415241964483713326718879581823477905570571680742088516316114145029039786011446933534213297399105356583003946197053517251649835428806130878131356057203318401096990414277985142649733447650097172364946323398134418375323836465495419348974425348728955960230990173067629529586427517805337246297690162343415619092735525792236379676824970157740093693077038904945576311714651027134608467410791714938743303253967632686381739378196311789607568734796404028686790567071194502938213054487622366183469770671198052991004787007169460119313885958020713796852629457657292764538595093043327480731915403525740211121698221217181789961457786596067793388922283089286870478015927308825318445897120419510373141293222385426800175141117072768962514301114646164492275989328666272114203528269398336965289141334404602591793949698850105932750759994710222616840757369849830988155765290095245471502924959982634303465218806127879755305341791820818482929771420987649999884502851042038416688896579041484796502504130595862104711178717112381919282064462869835190210556329315870380523863365217602541725674782769093366108785203433666558335183862661120836070555731655038087674768089024314090202231523319483212199646763694434300944514798189441450237160446020296352026162845710045377076039531135977242516307085010648734060263360079719855482904369789139214505864712324598233690321717900261200891693660740733967168517319130847305467929980506578266067995509845821273336647624794217390384390947166660558908749986004361611501258165978976617454443339569442195638512683679729168181703321806350416712368626496190617751348472631260911704470597961582365003251626154443495330695710307249038860882818609292892812950595682897880661961109107543268417040647866040697249356307328420936776526897088804797936874722516137661535994511239071072525148190774981306547498718618760413683002410830840553901494429030554508614573337175756866991632324884195402975224536767192857876205024647155626361408133662641729898075588652682968788588485056643020229603022181318547648596912630692633983026217785453687777202631342199759296798540060459725308386175781525666173483311331992948750730702458127014532699534937662423025934011822828264396522933960787432174521721366911962972157787319967641961877351362065074899406018049134337404349141208608124588580083125517924203629971240630925893096569987581533167172902268244343635512798124526876607046670239296606639671594263613080262499412380817982032214212164777370700639391805928601268293899548539693346469619063849728242937300180103953749515145777549237079178521953713197059017342282511467817852240316316969407821089874685591956241817012425611195697753959497913494002841718518113833374946961723137458275880594674249718404817638306590809243278331096577551110493032550115204096183708737929368178747306133408319073348586540807453760080722905357671597218486933868100804013649499937660900994172886658221995861563769176362579597863668913085058340675094145314887788215145219611715955908562053683582304278837031591076293083720323302667105371597413307696983691203531107897541925072894884829026848756924907617170308229091904918029492407082090310313065073334458069466485950653254597727417356643699567112213258965766225117236803214348159537541994116311758711688454127938986855703663924800008475267929935638970295027331933197600858113864129067435902551413503274949748005773296700655500752332860743783904522111921180185598612314999610038789460141966651227926430688033377686718791740347737209661113432929681009706588843853654857076926899071578450914943991114431045288388393100596902603830260166620173297070429897575287068772726883363857976180924223042147574846598514465637105710463832054516791614897554487311081274236434815531289959161582572152041344931698071263976617636807077996625146939006146068493531487113183805737030813562993830475556895100432025212366539091360666291604334553648785880880890716526148612609007153471644865003423985970581111571535778717504144128495594397956459627874247848763530239035605556141218495897635537072809255731330137396155590121523075881054527164677147782072381117289704705495902141921143733218467962429152499594138022658975401590668299425069178434150641016312923955642099243251066253817541021202458540990784520723187093996895510853676003004002678889226813099401591914567679888684748460849061417508494807284268980530649245262291112686577168084833566434711750258972615108674305132139671300851746337010071027416423331278329099574223346162907917274799989937908805815819758941774793046622566812933225119576511623339141134114689689880246229163353643538497743114395071253574254716810787982060715503723460110589742124644543507056172537465208561645344472539123177211816958816473807916120166080553497749544560623553096338453044060843215875444499898049886723014966461865484137859358940726902179654903821479930017041134226418436927446715356059541275969375018707474236518379924428606725305447236714414092794301100373187144216530451477794867700796732841072798945424494648690693764438143781817827298253352222721231064032789919396077315355594145188601661552120222990230690625892593732701914813311058638815888052789245675506702969057703890994247961243803781713903322657745249469457837422058318394039791128354389136223511012774166571900276745024080072023937429163091784036667571483593236757032426300633708398912050532945483446247338174999786128617990187109356253283173549059277216846006835674215668157034225943923399715977692867549924257922151751599926800358582735473644955212368564234084715228530098731834732713381261751072216379541275310490329021364773576656649300824755312094654239930519830809649069928113835128768088621927667356580610723046678045368314171887922097967498229217752766097869850639156916380361943375331633697828203991958802726048339009420603689466458106621333957540228533639340781057103257893530337045160483489354208877231448889284984441069902122655073840349951701477031627045276596603870522027979876677703837877812050405084309858952746988146240936244363309408673053440575286646423248485948427865248949232484981453236674608410357771290276347212187984222786817186266894111515474794859129583486844120655673366649808875294185975421556123570864693416014095956034785463687478128792801015021226799163624598454885555084017274361049310027652188227128821326876900786408817737519481034564483690725499223975759006471803885461760453824848513678833983774125759157388850266695004600658989787196207200521305470552636726521814779379040364910768003429591566359646866906983808919636329695119783557827748154857244256514551523512018350643408377422264003056577093988392583078562317280051727325170131219813622728391048947914005014506222137421778531619343854556973425387291368221199507518209449356425867744174933275111753003695443103921473287427847635369553270209890255441062889813101020864239004434490058143205572669329934392787506794099828560889023940065363406162093938668241032032618853383332071651927687715375907298301156291903867640701127525056453561273517947498286396077740502495643178756413578862561159347656041527681154321992876266589010530429192418624293842741879643397153537594563057245583511681092176119013291219753287843822540108175507395762179561348136462966955808451617877057085953476530997912387424519557056752132554224458340834001896791720970796327981051296356585268740795551465081067798101475900852643604462619334553515137150210679497740576262921266932078837566616025662446619773001438368999425708674597496860453124633472337386463836956156422344438763446016109022778752751529562015577800948459718338363269956570096488294734798329897719615523422336423834463574184170976210476469737606518392027395904131532872848122835678326065495843852151826109698934268826736992463300948671976183886533649836139752376174986609074597192963921706286790206750253133940852731088900488057129647874034449127259810354435259095366874252367870300235413978229605767206548849115131881414253312890808393799198767066147597534367497324482887070662467282411024540643551672185678901857279898235073843439717808535705944134553489318607075984866714751671708012219489700603938336014035955333690134762564225294709119305989108764450485840592190678188663490471883724668702472291717556687727427041076131724447677801503570759117922462701447004547606633426334293041768646952623363606354411480721793026437958659965476980441505283494483737386700685694682451513903106098402649242656460636222547425286443022820433785645295115917737152074629660035672950273689788575659636240113999797222722758860797308950322225504648449769366216934391402745868104845793220286101335647136244939044688712834118913375566201859076273173190319664800186426033503295114899113473331098786108261888859151411988256381320928806853781813814988123913934427374550486731782169868405257050290058070174806917168243205701172203919455532865301408079839587586624937543330198241402533532075545065517853596487492656220287578066345605756044945411326743851815501100040680115499203696844474478617270963495744653388819279456884152596863298480776706214066383592803793118734561766829261343545133154145400467965234938634308567170928418875451947343086161430937472469777244383907105142275565961658324457400145991332842937325935996286672352505938745806695261067031215275208949548000776813702875563136008714331817216138970452822720183024567796551202591461347985023186132817817837443884512195099637231573164934368769002697312107226097875380072085754260772650721238851756849986787024663214322689520657357667516237363105092541596655337019906373019088603521642515949101722661644316432716825560928344887809314274189072605737144322873465387636097676876228399328934545935160228567045507898114192129978241791455224635074350960663073767150558216818116057802056423089377000005821140282019146942005861642466971828352336891054406369871364267461837351034227273267534534414617171262342402654805754321489927365309074560942065568485791312948779487003834740800215742242921082364348032654279599943334202267133020217902460345813933066688400114659438954875492849776792400443279757869821094910760845346655343885720918589409394198130143739964291225747178916920196166589571109560641033464892922430954025353752088360430911362123224659800063864925473448104846341558220048531693683141798762017674932092099623667946746190582005051317550561575268011485102058537161393716365885905129812233405434072631487859374606920616204665510845637802027747347914391818972282943807840782265969054066252974490828113212017981214359094894664959112354335372337029300845322249700313057198834699107490574478491442873137181911399177127806736477689941430056736189138336591553210962671132562394532069165000332542821607604426548700936020815786110446542366752965855888325126906933495280277806358677639783075320891871137236637447451819317093445456430249523270073628660841348127823709769087531929217036193580805205749419893528887159114347209803263490837486036259163260959184210259545813762013855831964798876681902286611472595755707545673250509216969771726938383853971666634032732892797967845039069175173207334766172645607713642890535131711010236116557460738100485228774094442043136701973433113464865943561324414372619355581653754502092942039699941745042625247715813701943087569650507250529976411191680958627701017731447327059075824692598002748029121940515450691220478326269616523143426510621618314785270262837411214690708475704236811309257419718703281024829468755878174623520866477316968470809820516256689907835543940584639061380919898779580919912659861733176946619270195712337848620490849811782527509341450842409949654239589514373172757138701449509503552112132929789931399964396087320100608040990976664960982798301230108178624836441980483699242832454998251453549689250635677432778635341078373028056859313809078837918697556129415826029983594939150977313572311009363306667671693029688694393326049627989949721503669934047896042828477300640057338830893112378320326659542155667588356941813604782073788834626235853424774702166959916820842673367677572025696194023368806765642470556338925831542726821347198781318273907014117027559128743163866938389439958784342557733665717196193122854559849411244988910433868037482168244961232496148752502799369412699266615138021149328060330152535505580969890226080837804598471951345999704394595030024857957530949772539754270245226907771795914353239997535724662793769964879629771226499185204626693811812650086789200747564523684036884557849306371093178530938953470150130446474237200590091574850154748081865409633249502220125718912751211811636881296413486626830102218995094882495985657597149827083644738909563427888231300708422561397168739638248500104083119981281957193557637924397873503158983933221466483732763616933386590840581256481319129151250687355011215794185351880174216006874083247624561971769552341721578324267325445277556371011149636528457889647349580368230024728136335496880214340786887173961014211802612150420501209421063722680190273709387721064222849053053155901796917827259420170511829070018885288582518822838699108256407487246432808079558870086962776048611334701529345690256382209258233114179207699776782192850484784369736023329642323947724490402368001974028824477635655372367856241898875929839722236894932264309238124184718609235705149418870517595038569169038481006725349763471673308940075927162232386341677109852616199038191203036340287239625634228874087981237276605552892885327701137348543060996251088562010077048221886128737177104159510064150027783895457211346827753386355223753013726941468251043205749588230501820561946066307535764313455469456668591999686520336682556293530793823430245791801240067462772871154758014123598831725321692104668310617167319552297557536730520701035212200711544692703774196044475544418883806160276236124441329229489537242696805285209961014029017447461172992431228197831505215902183162331932568299195952977573880762167110147828937834585419544517858276731733093716989918183590958807913569716389139006202685021295878222946256512296241554204643167730044800448418511553397914945227409685280003669715879821144714081461458188429651725823264403930217871442930684561602099563046182990402937863017068746427417405782042545658778832325598301634875768664778842608352773617397752919953651844324306673364434539015856820622663064560374951559249718295378979845196594767023349264024012763835007327970532046405781668163988849297861552966584712727850744517272499063216372858319829071087659374485141503227481522774767439047608036854671568177488177302143881634183418065612599705898739703533982190570489445306198191303959657993345891808931198594932248443688703129697183576839826718888595231691016792686246044555905336962817825902095864171250534794922284912193280627267773782854844299552489480783293564626073261916576711709919832638919196841891658829731413230746398284420463432132066581719988293706970520188655672381251020187700052689967327522551272179885427936977737972599765421372052194555243796223166735649194758427120550290751429989531528256640973729828233506599807890965963323854139861914147227376484428886106461681573116016725345337772990873626706472856521147940681896699366620736302135369229710914666790524534735670266574544851224150798001352046681450904905679712951866358122393415987001272109379679846359911124303921978557079305070756438853312026503855196771761605301264422144840540961164587651799418487011502419792849222099154820478303527860697097441450140776720998192521681534126442067694762659942064400804755106346899748091795208961703964788412149789547144549337294478217030140602877047853108929173341556972168377493243174930657846701137111072062984737322554969576379503124456047915699488918902821109789463525137124710721713856214534181705075608309292646636655415897268357742800689956856225657957331187797357419773668641349145528085520832470193315638819509533022459938319896891215800665959273988957648293555418819042855085516815704294388521278005375903662405196978831582361634089617494449419344467717613962656653307334401405719748615955685543572617516539282866359659422772170699203989692607474977548718305958566242614636546445164920979910776057049765343479816568008253058584123701412339220843471382440080507690149131994693508204517091282073143145071942429110619774665665301943304395419297669590941043270730940823480058059458797439677646400327376083461824987292488965662094599865673311566565433590129936488618890144505215263794167915046860856802181173872944253605487575885530829575560840125334021136428457057679523617501372908953317972406641325344605247974379429058583331446764905423902298669554797746757437635302594925727896611831705764312560373622740727161882410864570598027859989554223604533953298249721023969184826660564558443078162723713942473433771713337369481680267947242786303265084069485298376527264120343070383786914485470920377323468102016013236863732061208321093425740620908015243913126957919843031640681554009180762665181551176745305863826117827746970529885119979688413015753207582067954129435103536257359703234745106645712035488378371442439345166213594721276958589143139286855024656932542820082744422322779100863341367568263678483089054673258238028698708920361800039669746471056381157806929611574723734001332618864789180867862365646826550982951865720492205479757512345866739943239216452712753416647805670811757498890946143574556179019948639151666999083162835809626595729176006132875891172766090251369472854563078560856032470911594894933588716193040021666346530440966687881140081841629243837895998509636845912435509073380307484419064849613350088184939155411395006271586582609793179992701281581014684815022594375346744181925393091539231365214440639475541225784334949309412412328707052326668195957832821346452524477010067357829470237157354318401132629675083748665210223540382212643789241699692578167694620021357285603729710262608737521043198055743769214535790787411311878920615675576835522209979760675135448855552803198342992879117346541689150176417755461530115729924168046600609506633692532640636421161557448653362161142049077160652029412104622274641965366404947785498457193541712244263995943317664343675742710200395881782692814583274998843968869275249994373547717594005118330275133666543754314750109162042897736763228314217162202648446038194661241870954272948949405085894699622089753022013284236821025116921567551215553884083244872475054601208377185045230801883937545634438169555005371087121997075698032835791274711630442201004964083622378522427759050879134523863095962802970302354959329877601564688168833842124868710718898822618582046445750440582694556438877391038355746166662478676770078198244842107713012315906207547918314550984843360263441671414215414894865219123957613929852324529124201266942076033560807132088496984099590278694420234929162801395461975942081388229350029321330272405565613236832830117453801457413260771774026067296868474635824821276382863887573503428225063682767645107146838839496770036866071225048610138715614807268146644939370366547903440419238063445176145770480978974475138639067489393192377393051856636778633805702044739418352330416979162285030606100415950318706426509302274253923249845032044232567816763467985951968988824558815843658500157100502401220173603377566268261628400683170912651213057578748554731869991162054745999103118772384894728622339339895275569620702596544850962713461698192278885693632211163725479459995571137527096605789978234518930581495210458075851546775982706157910457954177071572052163555747576190029835583537734016992969049058627108974653437112925132846480010275653385085455637391890352373201901602319015808133974155260244725856197856583897066147549286433672753926723478897098486691635975313141762152187861541266701174264396801101083269515208424912142305027336921681510452527965552126544130931985077237491399974797347925570170728270678208369751964801958544617177408634224652364357500492007988580588447788726227935149115019859370330335188903808378204818805157741807668531904038236367406172783352530631069096861861508926126150745311682829674422802387815825464883500048659220475247788746577454212564400367813898348874104641766682048138200637989129571834411095209216801407419003249525863079957293713331078491253663608746967225832915344160477701741934921808453482458792218781813511614996517002501610676880447999153573706951876784378542028732744909558122970547695685302504933030277842552472515157437740168287255504949922121859659338387365914231886371394635412221401759020781038650594586165889369817147759327991197881303683600685139220765766294213632038119309749275070306190955807250253113393749239903355119169174693062613382224105839759273298620764445914878680840842863616136182958661192702205241147336916425180155923969190028697453191968398214209231707374092213887809335966316892340727761303848300841142852139095827056244283248555649325907659750817093892415676415997017031532343928671847077789245003411167497070007633343041688281034838210010125172783834861766368498958345990532664438601216006866761762954332728903593169037279551008717677225801373553764295202144687967553850502575526344358979882204780599503842280338219147790376523202515584008872148731758805932876290051922480083344300514435267679680279614561575415224774144834918423187007909429952212105032310305569535063401108633081301852493975458128322023229141223412866310048876289856679944983625298956668773243615126088163686639767679800821369201404057125474986828028690862531410246236151784364229006666823058341750730784838525987197782026139775989978076255136938593270428620241785945944007760373499605862582076509223973270123561622706673525145018964112118299423769829232717854895418578705764151493424975393312631720394036042403577512223758513364190236242895152307212461148363909929614519662964707652886591463670465850098253886264275747305151600040475197691042982029929166688045191881513788054523319055659776950987939368066403169000164307793245496491811567143403723208618900266810451940970889612249402925607367398991275632821852742271133661581079711350392084966847104796340132359822798350069714818379621730166964015250119222593958962648153120737222503975042698881725317479366397983900424204404234470686800806265176125345945684601085845413947035827242111434248729113254178855582434156046448826242986043096886640221854852590627373528266901640208827624864979607536782566152542642260809362539450813013680197906757180072862206722707834366862447811725843560923685761853857999696283448104604826566869762561586403762606063854810697252697973067732240222663223292783789003685279586806217817379841351823125643029368995199711687996187574576612097756910874780747412732009641984584894956223145899019713581618889515283868725974589232724326222937576034791526342271727795834785171391899249701769140862896447206060918397290914448829714134146108344386450194065148151598004270235366964693918645161355675127357305794510568132485203981190308451999294225170714759931089228171646706092317475894572795366599277475686525183171810920882625205030158136142473988162532819275723145628265646752997262103912920155951392253720292080158228279420014204116142899493724019008057365038215627710103486607353276781874843886426050137616283152239614915745673026746566660322642447963364893421531752576321574996562830931391150720276956837497193719312124518299899224627798719894398451435641941699455250748797620554814340055950024266641775093897865923699620202193597139350584996532178985323587925557385730575577950121495170020879902367316925522031510020270656501101976278824106909352172109528624957181157923735824546867775232282420759205367086439201944935262161335156514099243255221929837322876779855626485672810971874390209707777195966830145841508105994863620905001476167062854905681921120200484854845664139253783932756825887972211353571991563963811707598605241706455084607378016419125025314003091755757615739937402770557007276526641524178918132224318635956374857961113244981972257722539176628454474705814302482903664363331551861416636252000731209351085538955856913677429849957941011742189509124254213328245299120322292675671998979630928584446824797066756440235715780761795825903812938024408743683855136020692447896564430268854753678613838814068661976401583601039647591783062318884396112286548776659387221354078472710170173869760957980942412947516991889946673726479498180745819432653376954046887217615345545289489731963498488430264446663985990706038128218867925233511380129464055961776385417403928521326986459263477128295389521475317124502384407738419619110811285912658450123880935100451321134979873479518931730300118119771192295192731173133269997046297285410182613232750577270012281128942096024810020631677688554901601050642492312667442490610077194742711823623237548584051835175557145378968982188325137607041765400414193072240078685230789813618948829462754568434953731839032759078086729970490061229723436403221035512900508507405639722896270640398984582176452029211770236898073321800050745171276848119891275641414375513844498033817202454209042785828489820422119421731321412213919062216125955780320537917957834204170100966543152933338401133139558580875984721523430943639972351022562630088588659794097441694151956794223631283614160682864522156538627168141101924643971667438348164746561962989498817298421715462404685836213898222222905201045548848480500736287679684695214695950799480380951773050714240983331836641561905530109700401634754279587907889237595251902075372008616062984318607882206142501980282525044758816224207484256948648793418317166865102926459188443130673286203059882225666569504035686939796665135942986800780662096049327023469472958380336730489338825449958078214156342629266576124809981673151175051705703701873556033030537244588799771906684556553106269712738857484873972324168003068798048192460236920419140495450140192622762555006162486779474980550801658468221275996296003695687692643741995859222823251197123452111662324696489836242843883016577668085210969118495230393615611979637624212543043369690901291309354523924689589743742694086164031518991744914724136573444897073678904114421142191100087776971070625550648625456436982956926916038230611005911970435942298507371488930628869263771432995310630777298239463538158425032430059481922653861218098226138040360970168614544160764383643683116932396265218904426104983681416366568084207946709374819421376272047187673980699298577663147529746628831741261214539167280702107400141320936810012913451644874009241260109642322342409223463554144833563439834890590559168097504260407304864793813410587331566294699519977972943521361345178669948969302488518375542313967174505438872814715372097125728470148833230656687866327813928991637367945088438852283454319818163649541412505141641779680073765810605028979912434239430238858314934615971524223050851381263867398249987428325897008337419295345656188570342684509534343862137856716151428404161142093200579391554208787409079089394431280801758605909917917220698775183306908478463405136774138577560901895813343177588726096797214066093313563649764689598653716091859096840083456491585792800094013002595871988501214005255234965432043939934179370183676507502041807198145988973306244191974886263880617687256283194465387587110792657084966901537690420498786456031649619028630208234195281081087754565831948387784839572521356832109056065141156815133963412839809480790456442944121474420854289795176686108252441705868290792730442302648513221203901309249273735397650103466239219886811409949632757744751166313681891154862603356259755251699315329386055066435378753764663387593916717485378490271472242897816143316416223022705992020428419764225219657120828159007994040382557043483384837072897027488175530609147258988345259123187682725190341921716208215106143782666059554392109979352488179736222572441844761184189510441998195755337394219041453931219922255132294088305963200846421154975004163001888892316731482516084779186370797196685642001339784132524412677755626222663112010990528981214653919071395459812382789251487771035070965844404204594457812065857978712034423028433095668021897765252893725151062792648178049928272746657804314683902762586595620290895640695563044592480313251427130165161144678428719552474613893993076298144477569258943896027964090624278864192252926672876162026422969885936576457191613931147475803217219571446724215909716827392290446891362875536969564125796491526051987624061659950853848088499244465335777578106822661555896858315401849447717273655879370630663942620227343963665336190900156601770718314233019772685528867205296524681446274268474754315271698737713149762927724781141755115037889107849937592339529623805417641533864906321022129952388849404231239991550265427266566492871018947881585917748787543673871967791924805367245643430348628926588285947726014687375389049419119065251278420687323723746325695261924315601508717153752563447324546700796416871164119298270421876792738768427039360738154675447083768725720963290338937089701820381722005977223119263087133428788996645774829429152031819150171672335219789116813573194453149092134181988955085797206364064585686423553386972888770584319030156441101784025926497224258454263970196502664504614784888613767219836566782856022537337416143073045213628266804705569356965597848119808362056548786221712442001169073720152020816170955886928122326346729435362433260724620732486754068187398760305683256219157543023341190706257610308910000344003044357886233047268856206534121308226848165028177334572307083062000991452706663192108419314626671996509461686560152398857677014540846637113647210403672192147265850463838406842974550548781202119219685241536698526266800413840531195374176126403456367654281944397184917896616008416522562722371702766986185540047137649582490707586454619947861641798771045416927425243266358954555527000521948113901479649967320061878323672717068989296192962687951086081192971838135271130848682424384247176475197917961428479399557680791710291545454102673428940657972316369172320500371621641534550631952987255275289506577491370181459809001744314219964345680594455396438124743634679269817063709024686444895488240167095976136585678522538456895458243226653051760468356524990323524310856043738613089899771157834513403692084777219276771047542148722254150062799856349212307788931455383657176230484071812771323745373100576692234306913157938676999038896276020426582485215122861652207806262138604616061021680174147789312416205327123626119549654593994198107800824609102574342439230415364636296621271558806210253664834122807959156085964005567143448949894478957396219668401980070581334258896236084057210950930060125546085648813624227535652263124428492785900458607991324682977030250752804869658921826368325265793364192824932059413426343428843542147842366850575394402786409277624745805830900815923822019217632092918409823994267795824409963203438173627525646593274887506102120971567703744738662801680404272986000328307238094674972668219526960968948640783099838896038401178351239293673924693878836104110972703897248561623342508290766643932841877704600745220140946129147996323259048917539132186905487016530726441336706743626283787384663385417258940672832175886161233205422228978913788058096519986600851643440891633061443147860363574204308094628040099732298161417986853314542120461247824659385582066832933310039469202308371695377722159314434537705487362461343612822874571083132525571862726512222439541161704598197470973446951959446006441962210719396887661627939862202355442897669851748016371550819037999120743967216982669495082800297366610883421259571117052596032609576764820103324968885009588783267712368070736213585833652698827080900420870163819206341099087382898184147542768066166190598266688426832687836905066500387751535153067132763949080657846490431995052059462045869141701867400943028374371194122764954581057101806612169196458248304060392524694289430803666748353104198112961279813848325795660974177668015006023678331424795923908884404563625449056257466630128295646075222703487235425730974085872017828709359225558230369648837725962301792514027219194592580052746130217125570862659449445864400731274580992872018861632100955514567991584841247169323924254749471871359989802269536984494535542151533726950749445640015469664459925068327726237126817206948489536867518946677736669546922406876916211248190370118593159424087908641507924785808835353171952546675356162528196718041809013591906435064392965229069259013346533397774444536137987776571596481469556317511850700676431865546470246089316270361212470217754547010025862422783296314247312888883294330155552461066351007485632620925846003760891985833887753598476204608628160791602197275983357945455081985867886733513161074451325169378637880641452441876961223780612821630453614943481147313080285871804001076937404583361744630827728349564294568034570551293172520351661964960542587654610033851703088001249072388545701107672020895597571882395250029152558359953326417883060301639573121926554971127147352945675174620023721391682899154885711437441268305395893166927253861907201471706673021780226125057704474017927872712046929820896818109402645816870189460436184710949290033451152643082649930156533956927581041029276032063768075170393073515335025282100785217359642293445822437888441490119763261585194044992979082779201936946511174126553477426365260950191802589827964734188571691040752622911621673979297518335291801878514303499424519653275800689901390239840468699131112481352025056810915522093942033632353288074879825695034265130373612115257091405817767943882401926112045658726637316730363953163250625901943280949013109705816891661053452270628126733260648024476070258679318411579392350544988633571833877794032271872293122521396536789962308136333517752051546850228164753751401382514379721114349050689383677370535717184217301223069939313269095119708483888833088063034100210956636643826968229340486114954809444233632424193582548530503170905870830862718390352312848839158665473450440742631312106195894637195248352866383698884188170922822671924942549403713038049866715411139920559842864764420778421025989625981030971879953605303212493306647111442228368100274367224791089291063015748166319290680218953180920266942619184725677830378899541177199570728164777030587006772900568369971369832332849412187552327289005511996876686015150640529734269918027434547641617895144094926942085225510154425014131323065061512295062807946611474761584210014306784924208524454100142437881881648101974571077506028903497243873278142377051488697824784388063804356219980998731683210170330263622792126736642176303572083943463815304480189208547001047864750556236024059585075564141013530303856290628217543528538759410064944842497185153620835726643828471127642652540365438499612839799945905540172896627935703543439037880896356225320024268845079094660581061139824354309414021176434494598086679998283190935762523669397228555858645968777523490270486721848338919445922160425394675483342918995592161539440182150440498039449525467222265109690255002823342375683135377022920241683279515405931862391444943981837038457261471493241825721564569342623540954323524717655849394009774307674546849053237451731351945040288798131182705969785861325529694662729808375760433415330184812088545671917420103603473468971404065221654227236087911122294631648275670715035049668146012586319035759066947766830359343356817474079086190948798384832149131848420084693328090144460065257852882939211566160947244607095118661077692433586127370947752876708241434718181551376601710405557899716705197073585394776868376298261659415688852484810406541245008072102945423472862280284364194596862347705551286761759329739700846741690874528695962318215049304634589941660336856683941206763375501128516684730612555875432530561437336637826279083499885102282060654952275870537927219736736563982940934595673198743705697320996438398835258874915587181814408080929478977571280308796926316543602343306784352307438483822514012750014875351541063797684531766724355747121013942251755846171866149274172818677895008412131885309237391845902733863117083653421739422377576984558582279760840569325504298119183424599317510278189744815027700976351987924077040985805756243746236369048349837488385981723699006564350264538712490843382700605581927333958749665053821664473735479428032778010160360631382399276139742235718014336089178346912879522289671958083423867486751702972197096481461887142767576432892453615963179356879735735154135907726291533731963188575307571637805860605603973118185118056963741509399233117500358327631847761299859965477487991998074015230471957612917863994337051310370928593166132871150872300361960751780781662736495165956071752863795520416786621701623230886933090672682161792841786120096193846346332227266133255461244996874549044208912316456126877833689394717046113145912925566285775446700098106275289439372451484964576528156920272665364658238602213802966486002023271559877219664317389292395868134210956558874936285173466160336938245194132247559760328479541083404000940748537690615982363012926904261290148666227466533459223376905581110380016328145395712537962074558802969842768263318235388657789596913296829328702539902682971906111020307897436730200785920414876438412839368315247106984426172653750201586580229139871819055945555445800697796919903902530624032133260182470058301676793252924247800073011702949487928727498730179253180077010348944109398556529813370843753604435822988583859501214643884512864667721660091960493164418882062772068786886268647654193962742280126502664173592646215639966036789926121495902129952771399274187332648556677312621202381986081030780546453318170921382191722727535963034683908403718467241288881073110472151924954442760949215656741481270948889415611198962228140818910108392396368216113106591820381349228381778151435336400632365915911911379110723786234750643536736124986618619301917277644222633209174724208516563248388652582063631857255620606757452932635880687887255839839947592125486364723104468113330783656910979502775132176146702977506168916499583924508178313076461300923708947506678609536923373850423903450889079559343630500953343517167805729104673133300967943482364705432018682466748853598575020152677801108315811426021559270979831804062722395358837406144851637663858060323484638600648281321413646603031021090758015397573457640897879351008921781782227905171340475913606869580323002352353640365914550326666933532683526974536077525890821687364545831284297044790194676820013062655746008213655512140659367064737321492735609069109421558578684710131438479290619503203110490642650766252191986048242736472981926245721340875623082932673025023744840828977519290028064848047010849408130407710100863288318408108930234416193864185332598391805421577608011287318265775913417120100277212952297688481272870215294813638176395669763714442971457682296821284905165784429873879286519478959879727324794755751787289692332153990283660831845503337817562366216256209466183129339596998390928998816110635106723293267447233640158994209131260031582678282457190593669079178300047010878912025580094577339495585561136247019434068735432038082104615674846024439246733072595172646251317049217822858707673803630182346213036277873096121073481727849357999944253489365825614904877730694435002112196095074716239163325399627700158407673132699978331819776137700237812124144509329875951418027641029467518739696676384022685615610249680536874882280587818060264710049017384974277798468441693185261723162274419932585306074547142422264284869453729374218397558795574513035459200652385064466462390322978165439193548613167744922102493870105530731503754070329550999901919044118226545144676385936458975575793202138645152483724382038311892146436192109927374146101028408019037199516164477442308869037317634788559474687900629394415972461659814053594176685370081149553086350005210278684158138159633333635567450062292236458536251483263051119828245568707367232948511209657990240881624177794725179187737257773390670179974204590405952705882720508070485450582288802191841036302934695754178452702791068734994891095843136693642871178525801181751402785270394545377069451094328088139623246812005247995167660325271587698997961917630597774653983926610853386870165326661214966132281273474994542225536917805749157800059718963366946113214814220413288837820797163399021617551500010171529824902882437575910049168025067486663981889690192855417881289387640959099215954437284123657270581778601203353904335527350146126459595044859050672599998790890455769398105313244430974841089995680315063089775349524998333506985571038131535024227727697144631614211590652148609533396639551300801309047754294450531535066361617016620600135621464127382104213822347854303979067528693575734845412060309644988353131646908170048615046373280342436671666696498321625146498889010488642728412891597702005628099401064110836805267305936070737800981792748379987530339810566991376213255702932855669774768800587976573929415827714123996133875458525088031335248594839063432244992070111858390288089346861259376067417268001952563770773804482509819382948183865797743857233910741650189267314863146419052120883685132205354167856598267926415198649864905692579255317868504763665622097814022607514038261171329382883920703778125029681511133204551466424115468394828133353108992793529564717204523726030472020950788254907855300754165290998864811100078538551718019299766646769681785363470402376857515264967632050475814502558761681631198006363104854841147433800246126654844181557104041287191087744660840195672783660583886635357432242331601582698971124137180459751345925677777413555167981611571959524131545913844111426172317805437614941374240125215631193606025171668917314563976624596559163080106994466289720227247801823940956417252335872016822737793887619169796964979043952955100982883883872875037994607931528267176624284580257187727752208208868878557755767524163672017370904553351420388987481975942185470120239768677911603402172061026881076475857470884560888693064233841269277590185282327205024730001136411188121506204372580516623439322542351664285675064733838662544029867830405726756418471222510161552596526119999549798410011532781725555208437223657323260323746876752193931037263092352798681608745204553840751777865242184626147686629624794831289140844572146909584672071827573187383824517393204091671301394242771663502461476237418850676422839624301522352432256436405370257922587407878219843688233044952768241973550359120479680429965786165848530508008602072192671007650852938609563735241080641449212484196780456545655391772276300225092608005443324854352752163838718737692907865533172586053731778575288453422461173347287956394966471000709327768067053685735521127542144603076747885669179834411406878862409579560918590711853989409252206913509809883743745454887779429783114225368461055242649806562695893522863644818957883301264710674428580899181603555483684011746234689910434203621716226412445199453189087731708617496810069530772823220925554199579947305279820883151710434616513724480814205333275904241139010715192354950456873485287226652498738632666782364628638560633984380371695493202489864055799050564105503126566652847759600188200414874533681838485855934916768961523946999148358386869547398430189840282701242463718735491995336146904529252919324549654999613932951265250620546955021526361125698282590031170032047138764306944932097572967374546170444151370091249262324969320256048693029511155455196375942871351733481458775743516593797754058669418825833694222875273306701095022085614415732579593222698851496957524400713666863604325551407776411280788431836818898232220953560460123106460733536500989251342344362191639621850836744171021483524077918399561924056881393776364204416329165847139185919589471242163996421227708436427222845820518279255293863690262385924526764240808295232427695448705607811221746708136637287177745755686615916720777903120788766214325843169185921497499652714757783224501143313608135269528918469742801801186560364425444464063640395095132445812449621187813089242976413687860450373761822525955583246302381636017682014028926976717260208972146248192483520763070059533020504909198160283132939066247487741643139548935149086479642912841590180717406884918989213318044785254867981334356039036630367433675617263160024046906177804191366698007676540727675275901252188347261204806139303260013341776058567942190779586352769464634124765785676846381473689928954792318165531456695914712293739287408912072973948987402428349390919450688502748750473004198836630033029684880627611448812022778077033309079282158610605520293405443602742767339625448738908560758099089441002726899916729161428093508971709623952277311527884117832821291166945578849246008886824539028379487170011457546353844672148029052101711925716055753561088752949493955427081871779724930287494008602844300708149243541506411169559255308842502352099959196347450378985025581373351209320295674215796005951740759044843571090074312973614181367877136020338353435029313989876579649330216327680073913415575756301017318988008777509220078353002292031296035109979184699646413905096611642143278555828503423243648945802800127293516766938414574266711194339380494906901172709948972122242444192641662153295887207960976974723717459407144748820508809860850473770358141581604116773865919030616133573869840652594748250444146704761441356948291337308033152450765774792985518692515386692976374702320022967108344940734217328313273946736279552613906791300215369060111105203093830364089976267211771498846575156357815635876251830629690594533923534085752374785396313454078059844658165609258195951844760908000229196656707556466514237617232026500849176731637821495757772686765421185412979001372595250987140601338373899426017129845840854493861899721591923370992991880433819351964083461280462049925299932466256052597559932096901886646930890939839178052286358954215230502563407800230355550918231869464436536134825197870538788785109925530970080866167597269973292273614170022433345306111045954545354421214513834070868302069082571810600379234387674470019015212500947733614755229366700308485733626512802340144423020026916040106395529244547012445143996569306209062590018407697170804535359408694326195232176120727012117140278982485189754023435435743257917041441079872430726768735050750651008209939375652656490546967959938604299954072155600142157101329050304468313171348108837482905639027517103279126507928237271227090218513633438962044920844334256659321298410227566087808437062390554737519768688135274319349172155474115358327799961595589956852213916647359265309628237605375079071006185026572174997434803938431696436835502024726632569824149517275919145234925795307156327837303737610195433221031870308490785434703799581294726889051625278323083728672355852407009101756848285315609624134988691331813165275812999163647386261701642531371535023799746968419143197292043736773593296323843565146780175977502306200520588109777491070122554178875421824990540268728812859275880838308395860047301163985997830818799039496037990152497424350791415695497925993752881271406028311639014038562005934137069969442409495681662068451965327318070109742086233156700120467480409978048428286741685576110363578025804258304596816135271030648957812489842969136828254636276686281436674704407957038903950335157759089073594608576716105920185400905186107790612505344964163766624016051030684237229046655143405959730853402241935112369926323589012102112592830812456835310181436225484492732798333233588758566349166699181761760425474264209146159624945317022424026085294292528018510607270653136795551927030612696646709785963743457795125568916086377686240041839000110563906432690657438846690190106946575076136244945678206953542524580425036197512108867872010706961505325006828461147240302592551396292833958973502484155268485707726021093140845898407888981712296037741381515928431902732311189613228091862955902843433765399084195255854175299030903013430471421554757901691964201447614695645810296493242129492764664261843888785355168677173943652323572938036577634503992608776422122720283818650209746156918606399870004994772620992712261407124298356035297233442855063576911145478212770713692050747737112874686626099151317144726901357023248385029292607227678199180890576617623119620653706487971413443593501150620362184363302572216265463477924366810813548972082405949805164987027309103211930558852146461933925032229425396932629921284079737473425362148808938123152651394415405415906474002589623545475767715079602897153539063912017235499073972122098672208407398472611007672156252012120258480914149860657022513049799790807659541592883713948338427300975738451020672732952852140605758755068795158583466971137984777600782580010408251113753598732981339066052869095288809230905129073369333018687635781397048423974553713618847831666257698245106286515177824620372740017615759790536235460867363910382225772667095327474039315391727266270535480426822719705007579706111774390376950295991288785955489602541185333541380075745207782777091710654350478633931888818834236324230270296476498754354517090519527132756412381544618770716581945065914762287901448953024862725409097894490882455670041838881590878827819864056095731279988617997678723140232141782905306943848221465187974980898364739113087904337771040190210626871566907352962581792371273744999345046992125791083793107831618401537422122694444961282659990930673311342701719467228761248711152166749726980435463787562893116395658287723885000485144771008520315381404218254293067296636320938991709546733649371244712446109348496577743267443742072287918177615499652195514414925954270119403237028037993941072296254400828299412432389892552545447741774360382358127780458968438057169277315539272606058043372468978474991639293774749437149563021065589579037553903838871726762094542678115735019045131578547828917253689978465667357078301316966995007054061757000003066281339610372994996530560509693608047214777577042165741807277701695759634331964330154030469058973325943862834202615546355369311606816760326450713596086920046588661765642085147207309033998586929726561466364492912789955228653308426205633236605227411143109387665878206654265221412522487921337916567626608873626419220851565856818690098341605030213868003314172162467762806460442634063670950094959419182521716325633232930982647526012267355172787279863954124919382788736430803240500899608497636463775150379936524539024268397451668030054843362419811095299184162495840750109567692244877807099388747244476123922053018176257241352854459921234112968151845183796031967178855888703185824717349359551887350194540587518002231498152585014307454287230610650166820975425860118224462030104878235317890754838985295203236987682526424968374638715043653085694114315253318318764277402502175858054699391022205432315351776720609515559280299105953121416644017057968158885994324973077977961129844923293311820370479650708317185371447698679278720428745148466212922389676313091391769062462632114559773366275195264972950679595980357641943302530993244462787920464124848270025993027729111794935275077050993454199416257635417142256879024381721869022059868900437450282359960428659787204434137408690303905885482379982814141126409843811213260601845835940421399379750830293840802808969940627615596811348962593694897900643875448650579740070824579947637438875705643122563902643141429334874398157296872724921885019867289073759871782382646737631778025792697167155684928068055624076612286973738543199751825004757047085204677923070451894144027710685619050411742294004502018058628036641763939383982913415022622267115776074815965105563927074041417600175574337060767794250863561584619240375458536614100877695518728096497379897608250280446656626755849351148323111515043598745814401406832049503320956759710655981330730397271011609586723478941591810031806288553680989706744324449719611333986923000597266487892449515325631996543893014425999070124778164325044020530925183869898408477290993221560941674070097318305661955948491431503121256229950703443646086452867997684976976996750109365073052300522270117288793977717994960595761247334968065686004901213492415547818587851365518680691816839116507145510007277179216213553717631535244932683841011400330789884934041474052742324286460844997079600553448814431584269076402876129914151553552895602687560559029678841179152586000560701859259746157094382466355513985896732384476443434221795045550510586317173143713469773796121518461173168509892573154441691907841320520746594411825478735201270577512816360232966718605945632846427955068052629532382462224150483256648215382537537091766391681305601558265668235428047321289089580396764927085252767395618444476460106296853086549160751130347940843404702811642629861274553041226792355602422591162060349004646189947729907088741359534084667806166687971402480706543360248896617143207711051699986454610184617839715979938753152434007319648111634942378066305808099827106224603303203525495047020425720779892575455538354027532566931063914962477940664345979838708812112365614226496746194345019967814912705691448529316269753381041656477157421121686558454622738682765461562104504967572449709602764070888031130918866011004721807765821365020872731559933475739539425932547360906180036937019487019061482961245703863695976331859978194135652764715970571640026842450668942276068584469425616510106489200343665443440991163263388704842942084582983242163888090005075487144293356952960161857897789351533450154284549121324355365706560182489737426630493142420197527401663446284842139128113625696586594278884376343744196962511561276682284565562016757342254213135855095488144234203234161482961087521977588747408448404286671550401068308122646313172863944414978401893753164892771976225471328971075157501871349551369751202165252968310821785250398944290835391743081563658719651370812330530496526540847283654792392146971441071967656124810282519442868718912570421412025041021264102766600283690372669946575464472542606815912197102128822936188347088352580232289238846447839801955370546946631898851602164897456683493523372432713306652198958664025063952198280515322967893368370479668169857355243393449347045795355779803457058195577098309237011185446132865970874953047985042703417691640975084554293375394591400861928020174758221043226185144844687635245460806891988641578521298015778679082995797596310685129825360214308514682525771150293185152741648161474135057026986206688251819924749655438289390925907684612589050360512173039971442495570417766931628770727261613705318647471298733482102083367017445924882126273862080211709836303251487638462203774195805536384361459456660314812556244313768369471268543608448222309807483839482551980945299182934485659193948518366355661189483207291963244958999787254074467811866175222162099623184896533195492854913973971123551640880619943380017342609061711969492687593907246633531558921343538896882761282343997003622324992310457415072667617497799528857885615060715480366495308981826803766778596828857303396695294080764833642139813818325314662669049246072468304136098788022198622020595659659922760848224111341991707007431643161573015129413281240507101252372021670713084478851168466144281360218431125617004150882283464164492059436069342020694339061189652917528845394836066092584255437764295397331124997509617613991263645755397589992565060761438446139531221516555094418641664357899190133210991356831347735813886164828406341723557212793308776105055739047375935693268865089242518503488581544319047936464229205254471570419430225764155427867468080939361430752274830128520044398720285189813049990578980364055489006151872477842980265572717932913039759716259355613798135074209612896851448453937369673003611602232645562517519948683515924794017490201359419447822192499860049280649032663159628210327595401093895053729351758974459361021125421247339343200041245798438528257191413109198892367489609396909113878805789332364448829746069863952017044789130677633074836423595279583486326768338218080120610833006784447424655954782650498341801107410009323797837129159647542636536733818482997385585885683736832647149226793720355569569439720738752433403353729663756781019933167145731100967022454423239048828976874706445080065207213965683064083521128206660402197246624050296102631973967587593935951615838612133535616213277425251252998664472910146791320558544971815007239334264459914620848929740053077618829805803825557799289076748042220983961072126991457494717074225316188937491663254516245739249825622429505120758436163457820681984164303109100308554293346863883210700636720686474651943857835787199598383276267849730815484058247986578632489804730068146865993214847984658405859604450205097509321352475325896349384651554440387280085379916361101166865441574187088516613574440761188632743620022061002160887836466326535674905245069361897983019789415270278650530561205632246855414550146693069150600351468617034792645976465338995324781987112799158388222358598492317514072761587174496586054190313058057573079105630451255833155544995602705981353608061238355578252705378714440202531080036230161173296427103425279173432024759759496181043037102616313805267688186971321324697597049174030117451626752290334233712128024403653384163247464545985382827724254530887037934836396520622675253551318148989971032023709044096210818317292673884433808514441335960947046751593464889564283300064108951089951415787802430937400857822322232737339985227307281484470260777146692162779333003838610136186223713536879236351115583689614363586461478977677137616932414077583892318042633777866324506104399903333129839213342372369718654032636054508712326887662288412780375171411998302600764574564862339841836355951205422650417302240278713654732262436612697945291082001273830633367649112394377980769039492115433861482986013433017534692878722999224342876486556040741255080255383762097477141174725200179979791109858111664549899903949679626733266936745182712829532768468630734952657233071044831287215505483464946465921364825586029801280073594173480619402016288658258026268719636730809344593183812413880258435427188382522712955534363289373487391052075876682099433146905398943038326874437684788582874738121841996684038861121512979628491803464047528217053742440594776614659373793300258874117285712170970852439998955140329024870193272460887781290407398376152744071020422305824558808269325656852758742938818256056377163545526663653438181551746976635429942235387594655351277276103646242832963167108504613030651079328851882049637426434440162928927564982544733978953464537253314757899558014060616687658369441805567748825881307610671010860800781005096425907118838521950867349167153040842509742781550530970325932061898252454899802012831796468994759419550265413099734595782545576745650541100191392167650996475742167998444876587485192787959506442707523586091472618643008243768507896681608263891140578750986937329864363714642642774187682882441545381957052550265453687397261172858487940510425351050754625004774328360700281472465748234440187220447696806387554381590528030305075967071012346408655545761157710114388166193798656433472056088050989135485501327487176225694087413619840374359698460717423399361006561388544501975773272283072359826880070375668729014994265679897402007897595905662688810450888912108923119346273709218265944064237880224989541578217486168863997689754561758433361710277005751872027534490596958072877641981387808034193778858120683431936704995214993395948589080479630951742923269254355704748553467290741811134221100224224002293732510111322114944019462445157980524626503459293642365181271025566705150127748124197608827357643083863671910177955398093448350552341294700267820254474227518278250185425121394125008886830682042572291116660994412167369583504080019690526622414531674795977024556974544213803469745540929227523296846953097195730620283744076173008191620437514246580533084612571900083253654551783252349240218973025690979451638312574771371717499610348624478039490429080032193845258352358601359476230831570055571763254316497503491157839640871784833947902958452565156998435223367180643342114741127955921888776523807919436270147843106874921596567606105400924955663424386744198658635506133872952646403670895368501306927146771015737081868871325880545494883190438137522446884494514159943495523404031441332687790467444755827370618386598768886047712390654725607355609809392809003218482608881969472696176729755653982746773405679146878864988661756115774250287340684295083452219543335924780949414771532858483403513736739209329627802976435192857589845913209482773459963622378453868173004807869284694224233201830897327568710273054503037829606631084128073351504088285216136743083815931707850672510049144359938944342192072003605016650610974686757490702796761518410135713391082469090568163015379673608308562627532837973157762992293020165403772991814646912282744404601293289678027261568462689730148678155113063575258774328247626861514292473323804715936719987945012931264500865450198092374547733423160396506183816570151516101336543394400409196268600770609719981735580897589097541555279132942989505401908326233274919763265079563189720233118133520508325437741987524773286775670385001314508048104981078475184398072549513909196358243194090938120152001243353888726727330158410576536517336789895166639484148831258803129349440500402915349520076213310746377974331426152799188644216684102923488028254176119270196613265001265479200012151929093921619225491184427221167331079112781381237797657132587230453788351056457758998942039865492028450024892878199375404194689607375724269987126690158065866304884529656539496312387619572084826685728306609025139961696186924264240161157886081967142008587027855453644087989001887296434436630920555959022735265875147191525866748624131093723304063992720191603175822892069296519828440164166561012591820147283706183799227164244519832390025015226219624012387527746046531806085066380011483878889571515742441198245273847068361228788321540836816775440164084599755563789112674820513586442928172275638478439649491139713931617405041799920212492647721994478065943937608909295170704711615951157950886105866219679809341140156169848222809131525838171653221867394739772632324576677704798573373921546632267151763988536555123670375858464918057763678527938865315170379966853155658696700794052846092857786003879348045702488861131612601865277143794671477141763234504300423087946752650222616076157050997353638241324962077228196875370953591840071291081613074003596755853951244771312450502824595584626598277856240393456413665369336549861097980185480146403658399666353201555994484012851088747604033253899767574300063940362859349241025039056985027943441506421205923044594509672843542338799390489481765277695745041250646056390223239440652921564462260836978559374276109013303777996571554816435847872389267294381505705505246285190291881652607370034825634475252280005323508193296235304683995263885550461653042577234650626886583880697379325171588333160849252245911980373725346461870973861112820760775977210498956192549297348006126474794934955550335710750449986739537464973881187601697466466569032634422893921818069377779830946224283969959389204864738997459311182577670575439557231218991456222893767691730031393136179206361902562985174857536287064643631876462923208190968453982159697912958990240398212362735052686473495532444441722592170596717231486650943650965435402869255880933277519997259143018279533807742188264597505790183902146961879999414182510867717206504006550817162898816173906850653625431679446982383261359801767887516115072383021019536580243311165364169780547273645418569926802161809872068749512475550985133293537196932824239210809785539643422632871841596978083100141078053682151409047327285751017095933061117314047247703722629214127369614363587227776097538364061313542205298883866753435252696011948973792166747909338560979315891678813258723599107319061660791666076467484964169302556706093281927163754415406294017638115750067522764509709570211889791688868560937616393379707341956807981083812970498695336314907126764849291529594103701771562043315017189596004297271623040077361575034906760523994269678593492609120712524573743788031983928686552945085252997114258871224458930037005381164805676219910712343682963501048008466582614678600609113302435589416201525857763774011474635415318408193973790035051927656766475895082647034578392597038392193113203294530020426089442031502352826816275761933243274252531612416802008386559922473857342236238579074327302179616387202017979513047105432650317142104766132180793456391670416937126880199593499420628829513239573455950187064871783596120524763412725041510992268537778668790901275298485792880896779960763950752994716176336300009301458437340633078273395117882294234949764030849561463340920910085053897411569160531268679955597535324431844654427213496133117892863013403897776738009684003189190870609134362346417323200624998543058760949195263036978252507284443153591537089274840740152988454790650282183382797919768898664080111299279426982279396950160864227718571823686620018185879564828693165800911815430511306325011486073825871826330827000086645293494622681303782379250329193958738905905573717067159794800386344140280948115605769868423530417638487959517451196273108871307086517713847419605801444181972168668745420796739020131457537136869448661210820243410088720591764054002685325626310280837459075294545011177253767923774094774709275079118170136816890169228316655070045537697102628285539845286479086575376632794505460572504103129577864918459492257583445411387095686962578753369572927956162909666380252548119520187102086906345782413587748791710642538319546306424424451938031172873652985967097185592751810724799241295043663402055073256695741448138069346773495345036696008522688214509273428033561818884699684429844548639609812816603655463701442794039973139613812883309408702764336984871859092712139915567926033856944889762805351877558056048893954331395587316556068879288505512818482924126940806832107576896452325627800017226297914587741021649680832001304337206444554958969419656498534370362550681188401820973286613138192919615495934479424320601912405131536197383092152573824982795179540778168661265169832018250374005498360915641455295647189909099543920647860341251809507012990734431073568392438291241395417564964984301340042019071764645850567809791203570679468785153816390475984661797705091869023456636565489773939670360954079793855125286672457599845930116768062878528695369396416929536505131222223140487502282474127786824619549879778126976027351210658610675130489753885354131158265325136089844676913927413167843142534809622121673402402792010053149508195188602113766752243039987086542594577521110829027154439332742183009627138673750490733232995868440161752262998292999209455330869975498701399193502327155689481361326996942980468755956222476326423358887114439548911168044565826340897434630888849728677986773669832375685814137120717259312712271289204094430122951776802390184262777448373320314569581780254357430591964217435773300552681350289742363465937207474430855001427946908284420107276404288863349285997818449429274553286536803930996533114180379069200302625749142961286103834537620665439627967135781930666396124156686004759028673049331805158533865456450527899402314201694318532925523387338425906335081501585634530929927413347608495266112082960623553674257724927877027812032144134201905649991749258721340508607741788829103548101184070895948529455193388796848546840203194972104403671251839493568379635027646180913970667878124451757858319024961682174326471972187398542707635516042646014844285680543051343050462900923991638522643407135259902041486550500895234766717108643163424573043321118249750139494922101315418183583182098760851080919493943154733544687104155867442512483198724239957081823273688269893976606712432275390585357294588604487897438316142396481353203829800369796952122358999026203429420084811939420448092398456205651967547251976667813189541375870798491089709219480686955535130150007207556587802088033716466232498684301303080763945701271267487775379282326787337489868978274822826846802781762315308003639137346794169330792764510250165468802105569757441703538010028339991954450212690773436487630858673044663403263679271573308256582718189670836675643121821583389882613198518260732532087187305223953880778558329741830317710239543262452131442882013046741872879105411932046177472377039385583612366209800450383485162080792325139000871346562079760155173395820554361929964838771859330348507761307620482871309091371889215210595903797340168884430263997276959797687639393718139624684041829295375867857577718299905073048955815900044243701424095720044336767853314037903510224851203839663821389377816729920483418134823019920123467657001364983378489397888442070124468245621807824414659110770225300068018601344791325225660482452147333553921705193011687264679445128684034513574535447578212238125408204998221954424058824401600040472550617102672345327452425807520404248610317702956318062468965348778953419780859205063400517548486655521823834587552291654428365882152782133964836687486600477981605298631025510310226530787990353149429273291721814301506069197796348308621771339495264346317080363268475336123918418616487716604334179158503760455570140290529333771503249365484467329523688079088424208602554255155937019721858348795235709346196382928063371177253697648701964431483919743013010101199691468685073424494569207926921120889151842495782195245686067221637262699967532079656874145233959832397013415387505701380490084437968251383772905480668446474311985898774360098525177319808326756258420104287463445284338233480955597395785282911928048808603650595746727033501392989981915266813315038403005032648673572677272733121822627655882912563270809842907061748797883676603519899851079694596393410824395079956797043434970665650069931457486632082109400401068164064071786483292865906264132830620343440565042101341566862754940067220385667227530584223544912663589591464940837646928401970617542386924998558243446167155240531663409781551947510143547536915042328876949918989136824719040923362742064835115473986147381149221502501855662143142492097345052531921300111768874191698417527427518265875467699998281648748958270601825387984681801058208975290729827017138718400864731368192172786649618012596195581969137605865038013910061848803921114914023141377760917757020355702738511524360787211545894489334252005990227555977990454890858613576092151672290422635589520370362714600067256120500475918044639659546246580727185823685954170550442944394984152598635643950925628766987865288593531734286179963875334204577273253001878074006122534287105964464587672347500981616930566265018461600288799988112866406710161089716791352000643728557791316924085829278061174422661297088690565956003732184228578371729769254516631486223980582304094560730245269622390507927652037738897135347353932952984063281149905108407429629383275366279637973133067412881241878611387391637770484639297078258501271009833759756423085094798271990641440614541002471609598334097643569000135843694754283718710552179200945715081219981581993750305804394643398163452679546983275593489347592041049345558926164995325378510053768261530985896121329161245108664026580121949360730033091589511719358370055295858728584915506557098331185449488292855267929644652775732340290101091264517325939878173550109488553827225575799913720336597960941174930376873629050638760852717069872579942985192416124471653279753134148009951847076868033258083458168197395030271557606622035429247165639209788231929814224359199322389423384874322658659232092198046478944160515409467241669543725335001092271834541792984370576428979987299319842850171674447921986337601381644613698668974114777976644753590222968344923088899874477266601892903666509697535816371340846857866650213973139995908320140665108830530054562421452470180103587442169218157747907091053676810352745578367451995879603844396169764947693050781347897933554783976229280481437688209895669523971256700633647083109582533456623835717592605121098288500381174136985579881469596632112170345849923854868916725615401998654435930263582101465516159475033778203594063512266646119368162962701018101157944360809940442859333814095369840353975082783230332403590858303210475181237453508531083799959666960778231496586106167656223066419081312004552368684077352893695158835535905834747187827247956021139061787143439156453380309162609687279140445718260959624289071716796886873766442205115241618363371897987722015762306388507659588569942070393962709846833974946459441246214908249343543418078086025517858330931284497339144101270653907410015737608364088138432899106991293393691303296822293601355371940463469197771966912342616321314422052044808758709379355451352636526608583086621230575179276071827751117219334062145515564312667802253384342100229798869869689589848639013517114105290313777858472256198905930962267309937208361375801510018712457804926497493904198453667387170495152874088252722298778733461044824327582139050643832277829596976822688048825792672717572366243089074171806345500950822526628870680754261370914860878179754090439669778552308103720284347939215349735814778352388383151415702901039990016010587426004229938107810012987735159534589860408573817342765421016976661639873610284093567185489199518484892125282141724606137782178624727727853973536612689524720687650234187488599332450517496206134669548530680818021939075374533833565779559717865969825992660688378731624839276995463586538565252580449625299153116883815979274610922179107122106937467475886933750257858865938018618153181271241163837300369098626376351780625846989746568714291935241430715855581990078793872105258297170366971457771907037090839302492134011797763892625346116625739188450116518059618781115448630257548770204969110721904305991423834495114883484168202037993785789096900118614142616781417411448449155148597479223991260342094990380679521756234707912928087765391008588364253480268416995724965783424382572056168716648014689394613693226071384585889517158031830208330706427856212444403222927156645464774196080015184195524678731244791002367369794811251034235247388697896397227956013231933390967627960791243134946287039576282217549625032582016485072438963187962670789481435983798473442846588099301123195372382397008198908838921625112881792210888851210397898217488448148322286790517609848510087354764953176851087141624800495439133352588672734581625771789765761736094295266771671750337294540376204049103146696194241640869336156207322618625998566536449095974161402227035888953703326884125227164709743441943600206653981475862430504207089609874459993631907281399286659708888151858583380834402229139371148937537076944130421467461069049243861717489731255141909640826470983313914304919656855422577967084168541759865219873419900087920464515311176099427619040367170779702343857689236790593028693324149893893753012407101212504300769200729196626752267744870729988417937104306571890648109401040126776653394507549623013219343742421979768258512462375065868083327442690442485987285572184150938252528381952670561615383172687045363617926021734058105702252097145164839757208878370788965529921227598323487064628772863259387567158564229091660357377813220240908922558133960910834830158368169169006236169222684122939311809361646212170978291872856276508174850486472489147767341733750264602417020659500202657431442603700559106983942469431119910218984991620544836470998866561656921385476554831238741586038731379231670957579708208324195415106125431129569609962695807698849183544848550286021947074159550769851831666359408731949151631009132520710045009652750643604419493450213790429580197791950255561575643023425825136897217732605189506382807380961509719641380319760230019797779266898507931129595358707743360764803870363867379804828665002135981540520398149735870427648520364397838230021145964925253846460812802758871587141797529305288981496985611299040366774958619790538853616390433092520447107574657839378840847785029178882151906024969322314128173211224089630936850441484536843321592870798929295024411646320845915283591708860377561428119186416244664321188125811710697445970020744915983222856070781128178806923087271432267189462829002896213213699352954788701561294605635444468485245825774788584834057086424683868101016410378134047704979493461390807265320080089457747721768426706288281852863414132433701340378762518221455930078572025607256149943160471116295860661451717143877785456015881851249847799783968329769425163214016229232157165045314782668542840771174028505949513965893018336552776010780767034628710521725126697235290931915401170179942685713099069722171451555931182371225119453790905315269272444783996073535556578652267198828418121890920606324137767452572155941432802846852988916045078263417151591263969624779700635018106020999570776399235326410429938017990386524810634611697204428388728798971330257937473181625037711018282398004815016780622649696314745335714460884579530521409556302876296914389029942365173955849300693725717725091706678896547511216886882597256377345901330713588723253923645749921492743434439825127909306497527744236176405474047237529304730895678059706087700045900413077188568882832302435186659405344282681313600867359588780101738296362266746285813954723093935962138544789830932232690543295744500717277245372533183471595187161732576196315323609723560719200260069142115963677128611231673433369015491811092574343063540986480007282948308270284012695838385595038838281600232752527254683689142028782634019691320958218526143844997526419634027931135540259084421645487772456029439608230356552529247503873745047982381984491434622098901225757527536895936490651592814109212280883549021344464227535207612758242440207754141028181239904443744164814360755066698174169666184432569581171921924213509579277036461130583440569464523922447407006791668416840290219255943144934738200217310246966337867556851979173146664584956588870754797774569130379839074491231251650155499296895630285999874837605371420661399673364656760247677953772845734693435165758007303373438746015125225850016477581539233094559412943344737352675222173176823948522366351355382693989573989829822321782071611778234906152740977282494890034912813420098654319408038720111003375980346503216440602936451345571278050390066445253704962146375306092576549666044227720909572174114162276885389902229546893237784622191158999781256229978807528444260753304320773955184660402952057057521033953159024249275982314178953431114900795865982061246490603432829582482186722930484345562792926881414887790763402080651254669405935569504079309331723780328094131259721146225760389859652846927246141026641939163711193269707294127494413938069524522322466538679010511860896546960892359379931503729175002739140811512765469934357390398470915814053984745375309052565694950275332691711829807632049595432455979402729172889820145994820635342714875272502839191152538089739708117555027914454389915497117400606864803517231090375715494942200404795789588691523159752797196320073062439021669820463777017659241576138916084449810662360896380135584083228063244198282492634360434578851828386592021345582588714205077992465733221423870418255204999366391864788381406824741574768081101987948446990554843883582435972269027888398646374187583898280446596177376282655242503467951800485495181987933876319533068480069033226497613973907960100082178518894661899585298936508590744084126422503199449527927138987958217070186402626815173845989296694912608042189281175793364137097045801194992502555962926368684694283404174751331547858959921417004987696579487857581939665646538875648256403576637078615564707929909836704661245338810440370276609049288074361145829027607335284500020047045518894428098621971010220039981541214419926478010227005974758464312978438156385552269051374757241210143840464085329058623343208063831621969500440362401318537740227078426460297571996887344764845816177702341494623363076476747665421295667119391180815337378121651793560965259282901603401267974819670114028297887806825785923918274935369903041086310712223353331257207724287293097560233529368265090048592636210390463751755005014924452504858555286883978355130865662721669367389100188058179358559717750597437112037852330825798897142471911223027011172279928004651730418880099577924148332181172597791312527407472485183334402062046693379626664249675409510562872974079871990748380337049273968809661242533581982650943616621504868433831026246751435820069975285540138429287762448865702734570207417757355921229381585265898885286103488333878877865343683289803065686001807718836809045251482801733372462859976019357510018823546190234558049669869559175478667401463263804876268345976461319907343112877862217636097269301913423695201745887880555603170337352136455306843314292033194112558978566331618958278382378219301945095909238377849285532604862861974637267125686120892500354450682246190453462297131995134892782129403119707637344735833659269966278096827109109558712759780237882089178714535835332241359355723130979931470747402377839320156600652850180390719049377799232926148137592098393588784275774194316551895355424892198626474388064982678413980279408368859851581117971508549198546930624257653680092351064024014247881332259897959052876835299200104408794142265171122146781775912848286986604453807700860789677571815903069963596202530170984286880566125381671866824451694098566311909683126604089811787226893158581465562844168808635519286142726843804707198301461303145530460532119107365157240037142232364051436299884597304637158458460677389444485948652283278447675493024817204556567166397656923620642459224221931581027933183855069590926234942921128550582406483902784375495393619344116261625647359352539325142398139503358560618539102514745666988989289990033569720324816887545652726682446537202779794011492661248200670383557465799782230786652854991641741582544597620484029258034346518768840706335116226487764661808128729247661100532592390611550706202961157257409567222375749017527694103186757880441659286173665103696083208388720777113066929705579781439944024691411669816565602478433893691541439421332309930352241508505610371314288318212126765189203375514418105591988543742623506000691977473431265175060451991206618469581731999791522877697099219001816290857465057229127096107766629903334596517666079472308696030587224881172997584414691027913085101056638443280397749475294450175145358530568744852713628266407121232856419410566128582216679228480032039982774146922721884666515541403747485878683231359311390702871814861179682586950374511688598039238194734486967690380365584428768309782737335849602722373334891511097710275872462852423635353907128634510551565597193174487784206115500832625110273750458995004779271927369528368849268291739464453731233474894971033800643631231052773683234703836916218034405767863176274071168686408387951688885571468775782193044590315139059994909106165402183945327633542737919392586359207644109908982665464743085639690477797098854948353028170205557666407975005852694787050255779930353840896482499188083524460401504294586395726820410079253787514526759762293028545762326701427428791143034965443249216485717267889846698089069939617353928416939933437457846541906152570832546294105237997948671189659615974488445071879757418395218742392341005647443620553646466045277172379782931662791626742104968405989818682366071998051185351288335333900850947283093278067024141944627972120664320923948140877466115736205604981398660452476937944143160941924915876889481346021334206315205764966154011375378719730786829332390520175518704891874388392990924266880946526364006763710984772776493291977150523446784304758039334826656148561994927204767513716545105559353647920767218134719149279880394732921785388022136369056982282684279409238027599430453241023351519671834504111978852746759371439029942688704370868899290662708277164246533227573317727502429191927638678076412009247640395389589118326622005813044246849555988461459030102754299398892617249001509368763297809671898738592249860534149912343641378338408700753967711986881172252293849786182115516193082966927230613547123455215127206234275421836633093039694349875197813403321658199539487746847615119308873292053115946407583342019961243248870676250372001824184514820020847699679591038102689003589922281859290695763184142379291783606116309371305342282220208404326014218615574372303154880175239091720804127058427692890616562862635938290301904976871756904044076917316416399600646621691384067187446696250468537383241607173007720364955313891658059700788036258863865959432458901028717846494431105360947781668934703798982511522188448481407566773714457036300010206163402934647764785720138963725890866197212399678571633332884057787390521666210912054790362993942685593150793547377582822843602877044750286305053884508056874355294279314466693452154694851722556694804639705962732850783859443476592025876398944898896015339695560814930435882715242521684510532106198727499074313465274728796534350103315554589107702812209311873594705813266503665599914689606324485683507382803143266460052711814169285931865804381658258552421367795547042491752401590154689136231386246079920959375431715600167987971304389779360968014877294054070443016530935605647674644113986038495740943311535497504908957610470437163984330231416961047924525440237334556257299868791772921270536234552198756145611476645195280657357254666332259316081657712053460405510772747888252211593052524353394658721823979686007215880446747483420102400669756777022929244896738027282682325813089294606650469039927350024341794972821559402490844788024448851208859137780116836798570627711724376004448804200246460121714318483693835530659034089716892862475170846889087278717752015163001214786312427909284154579063347887625480906460178938037770886597203244533881387742669223116696873913919148596983121138014529655719629755423062753573532900680706209965785187174070083158126543568032234260964545305620021575379259721940724633659162048622580517346179987168190338016867335326415650328092279406867149659642913980985067109812063326236845440918921160958043463548040300110000955133589658562535865077553959335293234478390946487640855419097329325782868991483009730745440217399058362266710839155775439785720526442988740675041776797780707738043201731119814700449027338464580443436955461949988887086061902863200599190106248299239896980024670075191081440117684674720668867933591509464316037023811036437606333857856777220213916466317646121117933572727233765769391592069167586065174506434725468065146955046425494723043720842573750436962264889824000677284557838357755954987511839819340143365971129096254778930322265245359167077415006761102048379770492406063945705123500410621724537269365350720557042749628772578420807415975500623303380380150210696662228016446109762489942196127436556742288805893575870826546784760615496761419724092693327607153109525875251132686201924337630614655463036888616716371089954300619714844403624974043015783528953210627540671190197749611171665212080097432347643176297001407529623810376309797895813583031876738196509609679430479400083408033757771351464905894990724718509684719965415556681222906622924763884609653836057096889105451845811014062368974599324820376709228826447241249844512132871544681777031060995239494679302698817943680608818758630144265179356056703245244342075718669040254508369679973616474313391651551795286743519860546096020726578987727005358585710834573684848455925065284814886962854792711282001143101489524930136668670252373948601452547241352050524811038299108211166505470397996388738078941061811266513669130425107506347178117470196359138108348021395177384157467945721469500622154177711156821418844586798874026881183219045591870967773506841805282847580144961950291997117295037945393703134296512190205271156547229088526862352318099169287190378015923807878992217805851428232051196058314819823186945926584811986708334721319008974536572761586497561541374004240665159158566760803131573594889260173074738780195690740080694862519762514275523439865606528141184465180153477120894483206033652346147025760333173892343803632637839648650975503409407989478591744831177529796970027587510848118904206195372562715995047732452231641351669575111134797801990565723954279744489001451061595767368914614247713538205934613092649835340924027693391391717694170193440453268046562480708980602379325878628090802443449735142374875311705242001828052739015051971121479709310619880015557741872271521567740246799025104811326198459634828415724553276955595121696253641754895488684286326443668544412400395437436044091215327346589426372430622656115629425719671343061514048439243902147134264311697256736431854383942184552124663983825424911466647834896594503515803903626559570473604588658009218122891402237440383263914244578549449531871819863531614229936128026010667907415685857119569059568773229067811908407777542050079705392949487371418476890777708375316936589350615068590266321571093545833301345544852559247583586678114598178434817736474308236031703235401655075534260873412934297508649256422484715223836287477367981830877800913625256685422215327071617886296536275339510057491857726050874404759829371775779093306666705749173150307797721226477051880004408623345774315942146030301665862137741344727875872502329564382354357622427930820534329188959763405676468209187385320054496540732788147545463202757346436483584681121663370077472511788477775738454324693179030849174469269649332381954706191091303513034989146999491179705130178233449777291436131629633225438515417974946738828485373701918065032525973546123963903157310400550893178356778222940274397655610715401674202811716998675288436728650428949978920091501062326016449741287972412249867619447816060976604336799761604647306172923155906398876899255884788123126324484014713956590373174465831577978429756669932582169302975277456466928892860386493423189934154555670412894747160667549287690624215877728432581265786767573187379495249365125073043179946141573985933312031638662755540680931796802430280002658066477334314923810043104404307193119704430790016513394249214344001383477551213618580522059117487075788371401478519784120512414425972606548216679567644658790627192953611252398157434135539332818759388143589070603383354880972044463087612401655004173440280207947271233964847308959880932533772662266662723613446242690858814939405540209436786528239944625052873976704124619077197017327882097881208389022970363814608744674280642884511974072656357454217527474676056768853951567245775406488448875654963722113887188823200182508790190143319291282346514251748737486275554403429564147619570080958734455579569744575752619745976573908707615252461222873331191903938849228300159687976477761093977616128104697165251294466500269860132938066905024608770798947118529883001976696024839293498852335825430667045486870255550952711227255716233314679163838612029563623057222558607011500949026634184406511209430608450195450121692800873847863970269466119628481979938926100075391033473764739894597632148064907957370723629259639743447983708297093448113002867661423625561177320315223261886842771759241279428880033192760959941406663944426043899654594684140142217267043355004226761720067095136350519598334508626865556869980206680481783134441255493557172415487579648610628572928383134079814838866136288401469693826955094955374039688683439214657970344993417604724440458509728475929718687380056217282912487093383364829749157040911053007733179375094261327158899190168800572089720627616923692577493594619709926789068108383048524737566739381110551710346186805488155559605939334429679513116626345507744284597326291478640040360466490642460682980080287452881856470444279308132945001677584278848131660029637994447490859565314179518440611796858111800339702250860100985427723468101968021571195458969935395360531502535555625464745110328259728125889309514110777745803904419072445766989668004660102291140511835326541319923127201170467926160230085656797967783178376324655709494872946758051671012946914462299920035875020740276764698500141611530890819031092137128340167394179908504341568424766480115535075755930311933813548441268951212940867124327183116568895152627696381796650720098347942384958357976182253512543211853990012352489946708556871769208971363269073893706566431394196534770201031674229365872396060133792133582779265625062924873333949548109733331274183958900562342330406776342680957490309620765133587272878403307358503661916185804125483154933428339629324616037060942597438281799258849794309429366689360174798416203422422695118792536418495946062402922736328260843774908228607470611374595010182420019398566368169077876832237918741689488649163195156114124763935353546018337475673399090018906121036352238103786240047364432897637487849075173271381904037142073289091810949840359354624221051891459446761817338318097403016918307852825292531312168514391740619551087728662616565274940498782003446397718962736776920244644971862308183160421269174876358938021701824930257123006019476691589455874719462299528447617863913465371885541365745303478268660937603346943043070787526578463445310797720149232242015033413626943131419744526944782930417477163197489684446468516624680184850299874650453993146869109394114252800937510233740802970541500778202711293144036176496058460865540573474442522142392867895280424547564312556929472718305875222878690180406173399298762818878187699962683734846164943222563204453523192984238108348103767258535890061988009768976267958065521475670185399794889442525624583105540290749734477358651657819904104437950998452916642674127334325975157909723878732700178011866061465352208109160103771205297938333934713914162587393040955445141594034196154316803281031963833494795714939383086116205247284377078827815725380808761982160321478629206939235594817404833491696894474508932621888070113541488107712077345519166650962257653323704093240473909089478616680129349953817708490199519922532674493845679751893304335201828575735496801697279543733320890534164954629709448908229285640674535958941868217976110849057164790563059861932057408854374007546786340988330570659734177570327375092179848522815711017203693435759461442344444520870028648604701848454117326201844109166719073976411950820032397351903009112527015644235941727739902025765827927899398443398764936178610202941966984993767259837587584093118990103536903736625643902339644811834029112960023752191652883670145723040637499636118915979357645683485905286399441559717675447170045932928575290967701455075718083022967481744195591487787187422858683211039159834884462382047299434940813226881667650611760892840236335699812582930606433255007162056838322526631351449440730048656809350512078401008169948147598561676712685369440898332080329177770963213421780513719916786304155006599246976026021286371994266575252177929759126010516953722920676019168563573201626989493837459756784352412072547607385794928861289600424261463295909132804408820754244907684793039247653161557416589466964289815851410639418374522619112065372647583214104235184879291709846124492191763644293312184270225771467129018837209321701551071763562634547874753680849829314363448171397246008758877271650809174587654847877653365767285932035680008334150064511891069543873013195898299933676407944864105137083695684163133595159577351716140921556300526543621544532929094238543557973124854182208715423943892342155570151838035543343736695203711031737922250245493021977113512219643376831813881197526088356762737692554700338911003783055033841253545021903866196356906895435006691199396821516104871549726811899242501356243933803657696760330660976095340756167795949974226394155903904494009612201025484355447710187907111657192778832487298060131579224640391253232212470236874490490906833958913722035672894608639348421156241687314955046782879783856856304650431378229747256242482915432722856416175273343215952567358458950014294862024304676407833944372752542793237102202559869822397588825960223303444344726060851843229033079849578764799843651037369087681394412703153104890343868611044846629541489362298549490209842902863678559748455709614976118964816785467761682328590379436309211938515083280681575641717772300728365283359261476981261182757783403406640588782216289301316342146337237185367150203813648605003582720835308565618570777017057167828630269562098139292412230775695928218527519686710508495785924802558110331084315700012594078434946211084882903245518276540167843093388016931484673081721332035488330801116702827340032337802126610463486916346932051643792114987027447928251584887708293649551991565831698586835353107033465490900098185467135298362318730341924353645799200970448811329165379611149583752788828326374517911481927309561884774300600692041741845637533828931957296328672762224709960747205260716667060891790613241709401749163801860537250829306542658502010590475835189250775355369878629787758629498765946468834820909900654454894005415472183189266449270292771547490355122533428288915938178974482141991363189875265094603088835855715604258301243495397992096137536627985554476337425310431020720958555172185996891566168989278697624410316030600977536253575782342711084689927463040554866432498141563166807133516969280435795084500004201319250513048322561361127565191706478821282941858539963390309366376539127403958478892026853087102350944974488634372916307700223468306784160917376510242458583653974316787413946985037689793054932539909701937381271949302363173125476855105484188034865926161103437577815218354890947266146711367195302765080067786510232764197933371641373944494877071964232303199951990255630917386319750973849465606405829473966153922148604946197633148971916416002965202621530385154206828641794636285828529073835188946560395318057161872914986697135628111338029333594007735539546227103319745621430832727186021980125198585648702423452769975421672286394567009093838403298435531717661390377041622432402588019706206680079096073623791060685114494343666687284124675761777388740323326016779273338859603016052773316294849924316670261628279203031031837052431357160659687062147836399455445117441324613301448259950048241095332856419203143770544152728707748808271189767937915613130959079966106763550878731692099890941722420795432565204155562536703438238963439596608546537140291867780383104829612642299506204810316605533296341983461319001814192255875170143160121566172071635763494981015453648265268297971603255789043004635051820699980333756026917735401183710859215112899185065262285671358188643399680912128455012166855652298781177758511999006192878421017228370565942916223539486331160861900497654020106191487248338128719088039691033292304853527217241066192391461576124785846660091988136388438352101905807769895364641307108948971627614388685050778744954631242248791075203050622447817314390066638569486020060097544276107278847205780766580148634510994610958679496949662924383047721177698677306535130124392911248207448053219044157852710320346263880227066330603134509301801776612451888946390112214440717071459152360439218535115163562509117934741134936281947998873518955154457684507821211781065069988252016990417469656097496899965052014135173669724428709594442172278104184639670016406908779069403221150121159944904449878943672770810257432394848514769489379927944547822316900851143264659037521421409207938231135510217671623967667459437376955720127565647193899794816691722400553191003794614406628820276100374775734512009169533876093728388003875126319484093736176116966253242554773735911882675033092981205684722072350371144412989910452465774080802839172240105242148095713735618895388676803863136242920355353036120576524957832794962765327424991292982228223285923885442205871873958058832259904788497311770520433103671994167097876992088667345948830734710137057353288555395522205623843576677228174105651766500494430489347273833874249773582082078528433353818228342233075063053853503308522731577011989598811063351384713377804250386450574589217341199016317257096390227188159967072567285919955616006181711250294412945912434949668394412768861720322406445951707250394282128701802248160999903010769107541027566579628621577878734281362856024954888939251148699458598778886103918148906702163091787145839846318809451819156524971794404199386409999278748471075508740233455362531094310459275703235859138435723048324857262041433416678246065124763992810043418930963161387963759734580655972066671753434038036168333175907507786538505112218095215851949301519467204682150647786115686277046153053737277352947929858202905819751150350277998974988233696440465131492517380972453691265862217855017121514893062992180020707640224424686857693274215070876642599887175011837980431606551588580638537970869603744286738930084588110813033454484018268415250748622071693444979936870384018167014051225504983865080471681298414526166858991276656654854909143841329882608630097462495969891062040252466466953056181926400174510897289771987043147386785008195076302315133772609009864967539296529979619580399097875921682812331979204988183222726075021943720523375051943561446314087627315122012203132941358098551563586738581717209265531415148636226731849619389796243843510030426353964212502103438428966230426579851125856945694182704731272156691312151335686308257968204292327806245928318829826535548276812037891058507953743721979922115180194743489430067045388935114328985624303040682417449724136166008695123813616476177011920751873313622714455270873167112939244074284775217899261075554697747233289125977292310626409730786185975334406275569312250441367370799443314621780489631281264801566945453848567741535893905570699705768720522096236042335019354370537197744190902435073878679649209439735128722413996496904143735666253440518797418816994108700953946349718035742024431598651825534453270844943634462864404914718292966647181298517374683203393386905650959650568575266330719856208215823132672841567770310217137683299658890178114338059806853124478179245594704560885032961144777911125700439138616339025900408945980032514317337594981208734498148298040452038264838983533643562809024823135501919735698789093929612077463475377199174202169811409738075268680233898845879326882833547479401624848442474584833358875516628876157454117892476668348455416449084694532517869748870183033970350850973286488272708390397042352971486119103348916285543912763845054070688790889331215951155154918221584002481500310263638041952715637466520000365828598649886223215537661268874238832887968448213355047644420501149755827664713684883443922585233351470613762303755169283250414354858680577636102408016392527421057562032473316382973755001961339842002099498356201767152567459068773807682687469964054406729990806094246825506460762431447289573491603238327643353829986375868857382681219968607162542835402496487926908850529598994370061765908977870746031292199448539354570635864795069683512775610442169256573177102545876158500713560800467517355042482727178055078068973423778158258156635377556252685047770840176941615019105779955393921727277530868698722571762711647840813313476877809200243368586196277043729454427084038247387040446289017625969615400861534491646731227031527448820409977680121562846659334425820094776764873616305165441740653461304975262321981666052303068349268037005725669035578419714936845776523972977561720928356718239495073000947648116554791648216944716382811722395983740772086568191611350314333310040151217114708684142506672146130434297845743862402543000832818128169111901997256625723375947102222680187261201035164721422964668412775311164721325666309520953347517415875908946527149432424633360567721813595346418790280124342965958978417877014402442988712787316123350640025769731664785049161593882714048978005287699701877188859016227449268850759103542060964509002302211469612660869108167151351094314673066533909091546347450518478172980933040479608303795533171620124006332982759693451654525573520140487146215547053648030361340835664251030932502508834930217170687956753705731969520790786477655169761626717044136326777263812325462435118735698761295474093473922886252317961714091450822539035061512366172348298128512693882135201613534255792671797699344912924624265640816969558873973980382623691584157753607158787366311529382327907948823988409760084181279027499686569042039363723005553087267880071457178442931031366634364244970586742383724814053136525184890411234840693528825916091308169735828452183078176612181927317487989917032263490378860917248213319036539283701968611656276614362019745268996079164427038146084987630796858230495081842756635252225096080708443800386781482191288542135508260545251825972574118310227906245845435090480876826733927144035083886462105485790183664161768044342726181040558094639553507828869819854159012947973232879541271301195308003971182817857418578851819777552957932965438541075760408628050408799313245139382715272126257705071235150697959818588737763579504917331059528475745569639936592148376250628842640429666778756712770488392843635473532131231260753905500731307442175667800804741939725953490229269030823465194490835094765882995231658851347330687498868054368407238438833986867504059776665810681505538916168142168340755092973778888497553936519072069964372140023557224647567677277959836078958553561910420313592427502341247419886222348737325133817241887468905439334657123147850139534621485034303455483457391416739727783925629282209128922589425417638483752000140455298426698100477104680920955837741083680575001902584145074238485684929699042650015034119736342666683856876897648799319409779169845212249286453764038617298472185784110215886561765375149114667623516896050101782033677886809806668774522619215499059792058890327348561948637366838803663347417507520592402083793515223218622865858401458552012672559332201264815952070647954315467977922008249504370062338882510851889896114124163750472150156677143377949600767450443693023142300983912636577995780796368487327620662370114867650235968198224766723971710787876631777915400190165313100761940991575677898339250481980805516877593023673190859630121996955075658647685692310145688671884546999569076358048969935517154778926177593775429532160987561536323145656268700468528590064539851127320103583261097553633810057033249549713007523331953580076444123231683477619933487994235890696605629326169084876835145518202905949968745801668291963079551897679013927464504135242707999879445081261483640925879050284428940400296759267712830516817566309601279282563764978253044622259692937557999553668936492380054899296524846783316583448105711785553800578820013880696698367701399473056625333536963076065722309614881604764278168618182792408805311320635139682024963234924179294135860582872304408215954282968430469101702874167435773345141100467508495945751243900006470168922986181429893687447690851475857417080111059770731235940954554562484834328264715530669106740902043852836064708618917374039504692505860089533853782658162432757056815570632117961627903660869733839701536123708398208410788097343788934896588477394288539136754983498047440957903043108287310682696432935940162997062003181545030676023612003219443262322610717164327387814530948881172953879079459215110284384014095598918243679630191652778794667474290709264219499864131549380569296914771082223631759839464958145750187219299273044180156085683106207224986436549701735553781638662852439308440245806448725204136101501615331840939963298511870244101804175030784512301305338545086838249330157080745689590913170174570291029047415223347471784221379096918841733071077963638057360614592689782646596137460579416467859557581783254535147292980914741085339160345878998174293861105520863827896449697943330300236622970944142268382865321372915968204135080715433516497283027252845008774100094746867768763236312432817647029057291186388621579145157601538927314300396014534376424302141786369864120788350548987468687902814425663325883649148038399496720645242718666032348172892992513741394990248746368664543780574660968596120424910666851729074752142333668200161913138288133777748103584255123444218701715550882336370066279641118708604471718536130757405044567242819845408356267939576787029515924367349946391348098058377904090988252139985239691191759405453024165448073648298224414233126664991477921911010644224038416212910788848085032391787231279843396608076094378491979261396949217793931932080099946071841051518170498503902162239330447209999263457500362905080343218385452528369554485328044020339530136924219067064515783946838004753688352671204397776638607569778641161702372295458298805154862389285531617227686236947983727106756910096718917058534802708581482557900346374456129969229376459773888007885767591498043031620519602545046809987013060099359767878472810057308095669545059024640362099960570100855633012329944204438730797468568106708702009872205947981881413223940723646664582357829544801073381999422075731807925734350186697221511932263419660102730239898490302434613076193307344124866218066326670913502442134379806165318942664499034270776423074648106392018477872039442850434715870127847853180219158696395990121647485731784191141244614031948998670738767951337378846679204017826286992986711029078562336546880447962377961354551655082085239189847566133248605759434826993168937187668578260688672457254554208037713708921106858868391734139444687626516933927996398908033148691949926028125601626702511358407654674824323458261984921267635101399722015816740244522103617083950447557822632322480565591376771134819781857530366169569880790206378684636890441100770872227209605821416696641729332433296220743625952997306218002820125664777161966153494476042855683116283136851243848489718290451292847528410426410620619157109320098559601394674538259145084877865353105793231610421353870054482319630922767508009775735204830673229984795579087043648862554152804254001304853808214742559312615348673775391576506769735547339104706378658761537008163694645870833634974295372754061274226680266394038622538413943769283725087992656988760785858870455540502819567797325202388977671001840188142613271217352811870740517672766711458429339400284415642301324482813120987959668308424974480176286845904193140147927716665316484711915837333050472444783800656992070694019946746281478767553506353229304630263579611052621291917768465472157924368402440186911664856697907426348645153357011415622876485240386394372077599167871842989914562782284081246272483534730340533504127088654746847202666205770522285683112698294606842827666726854483603431372319261761343639008865399943128876565648328761852311690558009934837933454962836034852341252695810848868859446938243480676512932191924892593894229277978535942063584653647550001910046350327565841247460201095448353297554647408761343224958291940645017934657556245610779181631097399740919407814609268997121559313643467960488169541018293495368503554194080629895483558669313684913999000417469123383156366732041685323413620781246570030912737652928931365934949279009776084329764769362567539323803941287536627262669627154268517163191373874370922367370141467466634957615787136170488978624555701331358583259435493052613053256146101143560154758349580440444867582440345158133284465028725559156238022136746740435057345499457395945457025919783626087778405516319030482345662374748287352561033263225974543666189106299360893058873937344994300482674736688940395666341939958497321226482052934639204024875497481876879081238019515281960679907012644036710286314420323134693698946258549454765498511042962755193454650716573644018491067754382569747442358797766508525846694078622227412885677820161255970427801499737273771976627490106877533618268324053758989967822840455438283542003831589565232150182952389112464379150011328984343309195080893067135578851129964240572082246533979152169363032975567782861666430254191211249709702465368050576951162890751951600257972654024770273680082406360747712871195266873716617934610591955547198011128497573802247091169932343131799598113749005827946470286083047686746057592885001995919285033959947315496099463075109254195572982168850258892631123413356796376806175562847668800714724374433805848405929119629704943764546625545778412656584044338655646568287145566921334508197923283430137392012180917825230685182510391454803081886367628573418930075650873633689858216568500280949850001717563883755585307045829377339703669910178324898162041038949095037955796930091259253886592476940919046144849816297118954508464734614393011560014164094846697685700837190471334515883657666328978105104015070971332755940951546889858495372257043201090841581626632490533715067258633254352071556671416034111070213812166130048719488327248170745879274450966492321673866868216077272529589146845346991903381228754625969712641515947033767048231440288004118472107419353116735857400854183966820597131452774401524066936679034323391004317322005788579886205725638729430591993596593245152300161970495978601425041396016207408047720007067554349702596693082044280853733094827389246155196321727248773624442721832646953633036450107653612208410527653281460253798718351843804112558341743905920235596385659663170737367099437388474363187136624259836547116875562176145896885534383888157137534856480564674877830081123911621254639329357137409416501484179798834442007524881728709326316941246192889260743238211627724830747472341245633364125645973437842431200470174627557594286703136026142275091303616666924719657207089975217814461028068735885828213607712765568694506498931454539902023878717085493285157362671044525871636307365039337520850061525303075643109942992829284619689308513218920057509212911688510086408148750522913013849580783803359072137658583992100484878138277194203341231765035088702007056810568242079660797297499802618952343372801270880116539997300533752306094988674361878595872853926620356057863165485917589628866997616206214029645687481911768521978390926765458876779104616297727455225578972934262550788400640749850008026412799508502446993314784243353945251301132084266573639565362594913868232140840879163554270093035568276080091559689765504759468234039477486018171415215964399301713944166887073450940677371892606809300746464065863170572063207980671447708830198443406939010381249644857506223583523130416957644506008108946341677178464125994523436969116799380909199617779059028537932513105353031793198365553740500520116508470762325300743878071569464656920159774222709460404861967550752570042138880057081102498616529338217813407344810106293582282236340380839444028368274274785076254706420956837619541217826418486341014909071541606730002395893426718841679226827890482766301798590714977962911688933380467526739887301692112320582787966895935886209415710693772053896154552375299485256711021805570093765174882332892034682159947517365104585144921722932463130648774815831030239077365521966352364110836883201997302018232776612219858393404888879542975415337169200817607499234821144289423331402509738702910097802618795253180610373873889520512420651342497037646348836969642227453634176256814237931678408164234863380277202056094913163542819340705555113439609270091095757746816779346805549300381957684528913290579142111511379026811949544395959887850810586652701030595302895088551111363619328761739587460639952006221748473334938946845352551843922307666370970878706219553859667869795273232831761445339099353096915359610251974105042568924864575571305243950490401110859840801873273419214061739700301896058864589030752494389146257241824182390578014507600475984910739072842199116418640830984215708399640757973032286264346987067397927656848378845670061297513638149074280303725436182166731657208904435906099431464681696796345996715404049332394124448980561972994713877474681903512010065609210322837251225767876610910486810575356898937475446327543237702847433739351682384978470646894382588126691629908947797345766936856360791998204250650162351833453554727614197773179977639252369652821925320677828893606023842803202527466751678570210453705425736649935365043222460842827368712596942835643666824563339529223543071916647946936352357210962626440008584967752371132875486137513470661213303511212152003143478509273014905118483547702006145967091401030084364198664741927014881363345589617453645103804040345407718129326558484175330396744167592297191360365589986844293710837937569703341641977126352203947734708840850700494671209896470682455132220494943519994769597754197923612966833867927697461816809519186413145545818439847557569816909041087106150856806957198406588361097185655902534718760256457749592085543468561091064488731564808221010137002519918211398289844199370276853216961791459548167100666081273735206195279594328613742383588357872717316856956397242104325041795104046492536528472499036410741822418359151787185661118089152663040967684848861484444284795420335065999517068523045883767428831236353572839552761525339335780182097271087860269808920098588865304473901500207612906256734206172630153868914283898151642345366566955318844263834922875663884012717166914652664539192656551874993486437941128982432989192832124476914982153201605619807766785844405854358692428243145590560734533809992331302489020664949483473382218650892739460004135422262384938644480913524869191138561501747285471288482439460047166955613036227031859604106751652660069909991663342491770988019704157048130124639846593458147427102340654076067528802842861101972201346537052278860747193251296670647296931494280132033230744145028892719910310855309138938487894487834049353642252768544654720391410072007961739996627331832659623739699375653766189370440568076150966963940408874697380849442451914431456762801423226679046987438490373688346478212086338015547380301371690764710703123141341399349880611660115843517491176955733522675198541056268978691668811249880344403993326367973143672575559398830972427815784145138749440417432595886763377403409470799201996359943840542855968145307380553487422566944568269146055685089556326415879675802105778950006543946481174926147813810458965719892650621787207145327347707049845439287757534673768073483011444640288752482075092147826744620339881293468472687671905045920343428707398862616400865375593944250697661757007813773563687283208161158616890631682870263746080176624722214368859003940494313224964533569972752650837736595523139831163390404527403050597600050211797338628679604836203097200807935897629374951520876397922396159181079781614470178129282559574118648549735181863771531927821239937057390406572390289367633359484836587746759620712406694477660744771238660291379399397447960829366326526346695172181337573413280730823797527157077132907492706876446026549842313754918426145947713712626961244915890014619576534913513124972013558630415955509780921838477063847098158731033401266923688884619996941072994702887905754161912522494999905511453430163173677178094229928067997330271303244550245380833158543428809544881683392697648057766972204912132830107855758661807369185924423004044266580197156882064207713571318666476383637285685125313273822226771522233581200460384660406804225027923102808302418514930836381611512988225851823594630531905270818309714601343496877729543025074655460253928409379836587173141012890957764612201963660351925723449515813215241688965600318854955316742998359598486781735600849161257640839431260404131963672885920336278768222150130910166879396578869366340387618239773754842678948007366374115311348464924446713712286608855722901704704202217902786339637702913149917484607462613182590581971684030761346256397310239859200985935880353455015563730135388590338218914715482709910339394479277728561803435626013861095319449449268837125808834831966282415760946009606060762730567375956567028128350000907993190904077982832726003435010638363377042293560306357341246135889276555317055644741747085655101621747750043226915136360704951088141979448805284916928752460919223594758436559401884275926462197593718393711791206684168708064192166411021790994503397938734891766934855813474239537533756084552764512433700600000493041739895678636933138648829144259588502461084743913674401414720625194848721610227773079588326510198128197712655824256885878278937018360751396945769416019385828921924835742053589740321885622745418891191516636983908110836011410493787633646083105909023726933052838277914085514982649998941680285436801174034069279044136830252502377612943033275519775596715039871776689693131002043302674772126293410243894582968529940750676735344364012274400234639388249281042910352579668204064675846349462301624514234425738683249410838446155594169209069493379366809257751235151362638152185662347638164813439881130536637858322527359245179717454298095865737418454195695526746477894708983456972516479674873354356197175947192504668633722125751507426576936745398061532400025325212997603133369503168725418996998181095781358265545334793686334939702814998167524032733217528487966274230336844860109347926536410870088485577021092588850629533524750765472888515930828373532851216685400850540702476433452038434973558040023295684861319761582323787182291358953892953688507854348683666162529598543846960176782705041364283776239596936801608818886999710010368520263368905288733467781630302535749287203195834707619799162221027843764655327913998848271429640986552230936340127000892548966061792673679164125476520563415531354776115487876558681452146249903016900509703181041654763563393373150040515781304627841962784917922435073671109803908936995377814914487762366396698314654242213674335019388462411374405994867647997085201468694073595730864143852943842673485817456693777860875649787041421157274117512832543590578910814077146559659511676036599895585072271659329610586947229565211845257762924842409190275741632345848602980952110403248836002960438709845712323522463856209773344897733133739175110176511342425459119797577004983789889835211297795181957718127371199861166248188737978612096519725682606847128239736175967653737791215072454754074626612420690297433164427435560187971587903200286371718464360328445321620811854003091171961140125528978800967673384856567791703943280359126834794616793418787103369388183805455257875811686861068597662937814537815312940262530222414530763032130112410800973521202326761168878672359093634500466374068208838717668130351495112980297557610097057931546767943953953406054967107200227099360700886063287194510509897762074554362565518649135254688593596193756485852687842445352619583126355320147837051380134021585291688065793067532734328259800595812515571087954450059412058884402362133353699566778464155930984918096562322559525478213800994711245806431379041888655465646072718601987504273307076558231423889396991025836973620288093219086227059315771749747904512786465526098071491051193812194605622077508880996010014120108181796245101784017330465479671124635134953226592986628644206736056471231906657739450306796218148720827947990668785419679091143843056044857544568115771378841863040472701827844448989457538463103079907105096670853750021693104233753936350434390663391055472625888519530824410289604809305161448101221965748253962533114706927213025420157547762334260843592165449102047477557029245949552581644201330028027712013758327913773170937584261610484915429510312186605148411433005883508064670400982873684517495174820452833035034483753603676307745952046481572651519172857538009925740841275540508871837327196928487785307843557431826099251874578545138293548776112915077992036685088118011916529814162834025463433019692293510494458932726807090506666179859454294981818105714568004247393940691975056048662484816658244028845545087104153561510324777813155369653722797079827845795263230861243771481054215659878747032469174498266330204225047005143114440795041250996634481057857732234793007579189396413515891918496679451413547538959587417076830650126210694634842586217080773270245839890135661540515518642556442419368885993539690032151160697029290118793588124121347645905212711377342305181454651578463385039096029308624946293495370304276609033268322664599986091077891279584607075070480561069672175955767393605614526542619072477209190855734180797126980956769732969185996879761559283946335508222277089022442533365482439314976232549753380314245803791326693382354007629478878705966966947017595311653522669922868276144124429011446920669048191110856288073699727165889401693870415877619291076815893840407324692387509063862361077157740016205226020868274122297228310001203078336657707879924371367043847015090731156939311491622295705893037033553339843645478774444543822493593973112866559101316043373719692548902991274950187571737476606708715281438707212693449782777281540973854582585197578767408103243028485599727947158316715230240960774398216196167416910605142609914374797688598033775068247957238981244386158351568225110649796506070200269893645474147691822366609822780676983844175571822857712357757326910891537916421729795968363673482084434352685199185626745547974474802783111779813835584727920335625374881367755699264865532258056659831131740504981143623812290728649562352070797734329300159173007529803147978620898513280108586506011968692296686490249620086025614818652496024150653340203952857674090677786192268551156731826763974029115352541754247724428151122681817159298424148627919312589039121259810305583746227507585503222685259511234887559137696757303585189649464018087783860853680484292553552086113717182259030052179506303371603585467691215370609312345163787710610530705074647212926466602946209315908351593279725850845816558720261187169100380115464759675912014157035942403189148776152138454166683980278109703911381582016450668359696127088987670993205024151194169169966297881508289948459501184583440139537235400900888368343365966881101229716418756451877683361364782034414617399781860091168598252695931191335439287375743885408085575357615035602819421339072718209553190747790501085600239865697502949021654412220984491689379555857299277468384631013897771833984399070118866560144066741859246286330942889112661139194267499856498116382341929884993722807785615154178352413510307725409811307630949087033394701676138390357328554473973688327169025599526015189101978974077326266309327986018137393201816939088433403418607029945450486075441571659094977794632006364984028913166454344702327645285753864113561067493176158436436961180619865835528056166315232130573774514696831333063284399938019834459437987582970848976958754326509873562384409394020778165022664969553318504986649155613727161051954282930399697199864907457126618491271900607752603607944591348621071723916260596066481759772872640404112378411914506351201058522306195402699517118716043568623181667301740572845638160943556772957989085549309556158707542583945820324020063812240735528354335684958233083221681216414100410142531801397731152222492754421985896176827790583265313043204021738917363000396934802585737390256351616163078954095485950260285100831533235039881704091639037836564050246889567166824863680499206387656859901612545032913786655471105635526046507025146896402771307226171992428332199315687776554086952618895223005222370821297050633300988936491143575512285516099922451752154470771623667990650244654185133243286173533910469127449724130629453158703382911646365489256985724663944156547249205098402168480441551319023633587684149386524801702570597402624792299718715560051614782269431047493964477526186706573824614222339057509260924886247318011521220009002890150612356300533699344253612898125696624388828847987779800277326576075030674526819163245114849473198046983501353249328623847862958058325210279672415433011304074927062597456945673639952906397586542781259584379084914755211401941636061473852031835253518302341161272523441754313497611196648913054732577903718587685449367043546055999564497622603274815863532238926755359625918050978405635534887095243470505323831627988434433075002156245149950767558712224526151112572186970413682032465574605698685591434577471783247733170160094741190163300441786808621105513005486427525924130803849859478914087886577360961869161274846345121369996084301232301408057880196195422455329778760564518217176378910525602834827630774243310595034061391427532378318563084368379328863784142353077507364773434466830023655483582915997277740291687548338808930356884982127958312695644213334842020515247668086482708191672641051365654120599916555589559385625967577112036101454235597705569955202919471021244714263351305153376890133218768250414056153326549213662356418977948137909183035511026235764672708720192038947951529067951123746276815593070348387439732814523789888705180729889829952356108844637113989742514957295411279140703712222788414357817276309248044886206883264829881730542867847659801892142590389580297455387806597628395625165589490279659118294943745937592849563620735591374165114771701037440680440920757609514255311514114866853844119365885769070256891656259092132237369158087994892788053438940914195672242284051827301637199553316417651779546060341207238989840786540232734211986097379455369529498116997202995970851455792507900688218691601308121978571116325631371795075142276252950485771703284118422447255202525951261503327343679921308487480684880370140106334004987271103565501840717863031763421781875014331635028239768171277082057597192406417734300534751153826250655963890742307092686695280513871344617197502515629391336015936267046743425935794029560749533461426603783046520063306122447812324291019190119803313650035638082848604606884743301924635372057979371254035894786042000893996125322253966364741615359423425190291411959281123660184601346638312391522048937791634823452666629499719595550275515828855775982166425153157033963892874636341101273785094310779514322955112799273886675487773692710154783265011931301095872627531545256238892061941040650137364072852382524040653664417885698001497555899832957814895133958521999986726202788740629955143709586564190507836045916582641825933575103377211717024173731544928922558189532760206255313697568101571255102360215381490815368112475706082452523532506314731343223801632608114193317377743090275444952481319622618796128223607733851915321017579178353002874133947752751986649618516411416785494609456925783902479209072724373030359025329317448771945256845460329331408980192012210259048653738328090229798324283289494778358656662073567814788131843874904016839669377066566125725526750550933402565829606294945809697595924167650704590575366292746693531478799308448622515383128857031152454864250750477476578887772812160133781454071441112731415894815881934126466601399501461129177092494803580794134301354085307292935431900191828381600105986372714484081707356952474691535639744865430577141367954382238421289084840782924115402317190274833710473035421402698878602641208326083496235065083824270902658162633419463366729135556749419648769137625584933594952548807467938919051563002977987998107628919120984106589972679058804380570855800195805387370229830104543024280230846106211380909275270499440340482784511205530551430748274060950687146091120599872615815105619394078309303455626477100658403031049166621200614414388314544143459161471183355577596023169077853778196939720103583076037384929241273624729945771273855177581375943621828894510564397700147770098823832087348423871014939345002578254174582470165690993777480942115728131191200377714315187406889308789887527406044690625515398868864909958720229748290775437717738057905624336939836822363107913448400409947368125043860122731059518454140408126646127374190191931171354933914142871896827938699800321952704833472093268073576040208670816635239799297291452491355075186830587658407750462314104930778583361371743137301746322262240674241016215613100349692180269113732045555852042193717519037113586250849039903324711743740472280019763436890434066054375684039905717929556217256982036051927823654072918719419396395848147535591147580524671367869094554287640101100287373134233713976574286666814512469067070466063000024579607110025793203149892019116671818171322424223440804633333936861085718902198036800224153843821052771059467184665052725176857319735924381917118813787028607634550006185913246063885624502707296309172466296875826633223869061122663229996105965702707680117575616856787660276147675582454511375520338654173418058145127947224266002625929709796765092892154746954339886333583831410672237969229641953167823871802928371152338840885504771054648412334099467258809010191579659498621512411594791887793839960107548137906027574606223061368079559026653263147867017331682706330054740549850761076721080145672594597672150625680269682149848548471712537191161387602273130463255189515582296264171087271786391792059976667449091931229226812369358677173235573267494250695682747425097643762624511412389551380408332272887553905382102083060906382130682294741158017913621117527044383494390958744163486122371244876505689308103865673146559362772184195738855056799264670125243175144473984325925343548947297012147693651593171722153195276691310464027790678457109369672733187800809990645074068433843171358006548290951029949644490579312742600210302486979498325407723767948039363422164868610589726113976977486439944173484510665674321947840626595789236929183028988284952160151431871173317066649483126857922824399160444034400622368776729247365064100450023831479396560027186061569848809743634105920391894217650796071156900942545062788057185033119490815342605475035517802719352105608432110065649699610100599089683669588736585121071303917884966147212161314333100360247318267721153537485537886254751040570431863416337182110545927988086498608056065266094661092217576321182975078713133716548458561337371122532675616015641927083322838270687259313606164677148762124108099539285328967323140801136722100359143575998221046958254393280941347191821851762887765703883762346584225514886285033712917346032271035629296387944442751003507090645202230695912440832692743158476119056348943975870273373941985624862454612821954172041811524054380106050630787674657024091814278425427600373362972481424839931499702486000773338904997120623573802463148402035018456585884821349666969045888848947370697703379875361126565938787399044547705361119428679979943599572852110333140360616601046181810703013181590258362062760362783273626142296589507990451192823189952561989156998544322439184043139120490336887084253238685429045301082765186353711266461508137017125446040043334919318638533414354961004384146851575962887571540956215054217609274073087369745247222432440610103348430361106901396447919674315048321945363715121420372717342730057802535319904023421604669470072670384806124242124384852113993228070516599321751625090538656418851831551459624238020923022931220489463524530585757226024717788666502343891065163873365544023012872960807873644024939444309693799254629228782058447034812546652842461509448363810050190142416706728501958400366153123031365389771700311471787576354421218666742341924401382463847749747015605545874341150359413456460169097084197094144183662876945433137282170588513760241527456575715864158367245976973726715199130929900916664141432336944861546879002129402582105231941874612647137331468780978828811271423285358758785650220816566074659505476559306076646155325336155331715845610116658806703163246648636335260774702312076110086361832038445747981070975763589658150743578996640998581410802810009902042262083400271556163159200507360367967409455234124040714860886518864406151370989758859673160722371001910004610428598653517381323036362121401171523698514489482142124250402661303447973451994073662291425008644585569165846009087260227725606188880543584255325933733699597267679055639312558230304440066108140385110141252816244292010843414089916329311454388525187862807356370658161429913163382080486164205053306399306280511844655887982118045635017772002634001614680194190617438895343470767522165343541230078481804418160693777522128675136143549423299865663598930655897991031033746866731397720810363560731223340910378748214030244191630200812422588383108486902209379363844814343732760797350287834710070603709489102346333183347163639449707605676393525457624530232251911595313170031523959310150013835501810333043007082114336088921631577766888675002548781083727894088125914379142676277172637932889028512476407590476317023292291860462106354945419532795952049714462714620995959053210631717820190849759128440528741309796146024573110954477509328204326941983577044582606756389061601618997213836768310364051508554481496846025468403219878544835789681714767266488618749816904507652966712851723427222463596751344838939022067579790389769446718670042521210591266066592931193328868724565938998887160631955492805807009698312237860394822317770309297645113085720504657479470400605126506408101525076233595098013848421200507577932999663948062544979712093990990149684398234454971945777546669374753247729322707389245251170573857980179096934179014336747314969039585753169820011291196482805055416889402089753594465269759986902215450665500509036971058404962143516174883677329447551009818015616233574899653950513090513023628267357613760160400263841256211769637521234106199250253305735215755949448065733049173222466267187159376865512686541033934112302662136160264479505287199461255483931804478388089014176915315531153673195978188323939744572051068374623437230033090362810625451956772039492458231220744526851378446992993874829879540502451537007284738536923389492051872816709671611243701017719381997244086755721621758505249314832547404790038997131911207676154337362267461713267713331005047770331118225756114817152221391726497924753480066489019405192755844132266924769699541361967100754934207571328905519023751143973898786305685484731103365884150439173266903205265415440721250838707244850605540163645152778325845667794868127370928430289866355855412641172835194289486850547718204144278354489584128650216062258865321477566476892372290794437810960061712445701566101178859077545720587162817719274210064140970100204060708616094853229238285444713076887669264749211856731442689820916773796373989856000825822398523409762150292447870309429655664780103357347502598253563648892863295529424426727675350115777525704327536970308923393569980337416161602850624304317017989588382755643540047415762062781412009951528618871585956670216936267852488426411550343697172767624687159834424684152673541438868976984632262672545946934516083770998707157690453200517807509392820140041862931355633648825074781389940277862492405009207290387042399704979132999771222058002837277185726756525118086697699545588954441974802929039510476421392824734517030269487674175103523836471196339319743503790601986264965294169943001623572919758077535795317206677938210652633321667856732883295459286419615170174535739360566553870379545262404888580095208960222359772377573923096771409821159721548620442745472070539036205709162461886097487515842678870271584508671083743598735046897046376617596534018238855512946063548793679291604511929725808093926170299493511052147734717473788811361786882101244472042517834247923351987341826185599300462193847530749189705078157133915332043084631999122129471236925126353772384559336025201495319179079170157339620622847641571215013909801523362873976285200455565645145481352761863837787894239954546625369684296770394637550647763071683374053751254072843153275850159996893536537510529068421634111804273829393581295704421109113308769369844343036280737327619013861573303394746978742224111065284870759526677576131933534973784035679169037035312597487596636434251743768618148311289782216041455423007664004330277886129165536924032080927950936610165717295417389952761868230546722937520398051597392745638024622452275007529639830495787065827295884492629454510667753059079961447914003898798302320475627287828363518614495419481419651280686973761291900804080643841570541047767507809472865414977416951155189178258534883261779229719162663073401251521383915908446349390209367891007945573349516775402970996690962309585520651212446158031016309051208040324428798405954991673883713877990496500957316368785838231142614032680174204194372440393004888269901674316263724025735263783327921882842330324427341529616753125363885552072668040256871776017316094718460734969975916576562348099876153478930514413597891366107712619944659688209819189788308450527665638451147654092432994946772845856629386210717551334011726531576762980323314366977910447650489749150653199224306322586769716766222543429978196279296466031260363066656642291626624684043358147876031157945476839082629634780458129048243618491071393085729280898472000326768757783930257923471461118418045708332307002244859939321199918117220722336174098533931418654961491283997476230973151164051952558377697730946912145998123133666925552990659830147387153988551043150046730064700153499890570450551819384215742250229813419401632894376444843590461416592598153886614493807890662318131241946261728189884343710396337917932086321345770389033076558824840299552176294063008942315064649752464691859620027689699829675673442347086139338453994091487888724097309932113818462289820166794232559924766718531192361612862554079040185348269395146311578191651774716593030674160768776323490167814231140543023912926522829203026069304920135245234951319920006035378812613945198068488560096394130832178481024913360284141535019277861756101470842710445189865632908561118009176536010656566630487932399518708163558382900969785063703604607544096739039954805865798099753966537294111155249809817796616871176715001210675349052882018851886612825822625386197960294664911184506147365407107406424937374999268374187648933696457202839929465986874678175476439956937601482092981336374787310983634590265452989906141997559449472187661527913343692289670143043844757431860208757029006287935342299605519919399743225642766949671796748181637740998897425820430225278122071045365638418849893699786722971043437917745915706580433532729294341489686247246663682722746897459052369283764725605357485416620523207620763600984004674185436632001080949712468256997683556607887733127128973664729709950998610496034549760661404055492508852092518638190942797716042786270223184644304032096443997186245887819627614772264514542899136729309518048405880888798409570993550650419973013697081492384218869250498243944404744556565949571577680814796813622769575663561870633576278608805874414258267739041782767616499607529080700286776455297008272924217299593536497403150278734377742207301918647592785966745628999603342347146713298604303684162427823604607288579543767164126961332302956884753674046085112843802683191825401696262982162579062960928873305270025111139718163854637876815771014605563105648740818516573186145407539345315268333661939175219451256493260525714399215353155493233931817406499851322168284555310709650769278044822332746841418122729169779671871450805666868838838045262371818443361503822618160598982738873084505465503728979929927471369656845950300312496344536911223168862550685432739890370167331540970277041239143179983841968533829323936702934379050132581421066280968897078103284405432748508680833566329755381661502872472365599744957830207821033841149266540097802308731560489801678381531024846716431146914269645060807817988133780381645819746093507758848191854416446948287989125317465297953803699284907835169099434250134436742390876921435806095505848347212038009039151281038163229035249019348483763767805600783788536542910843091028409740935024936630449633707109164810334711964487183137002746567202109908783502485805931815484007798327845006244917367953061378951161440953764886957876117492509403581128816974555509913022648309587053418143733765969026444873424962566018409956028743723323939014102593456622845154663972471123307645659712832000619299681276051870871374616802077771721367417951963157594069984082003829629419390383684518572172221264919465930738601615452478999817831484735591886858263468595729685655003587373845992655389179433114255737804928834635735048608419631300930236370129974374612219894013949579621804274230936953596379651337029293750852398161059827579511487079364459555077312965275500881482691335780303410997881175925686380812995028924049073938903189137840552601389687878866896596283582557436455383584718112000167812237920224178566471982920344812558186011976750030100706785882629107046565918675198673688590851767569850535639208189679767953536118856369479826586233485169357332482874455663183092207200309506634411997920932596068924003840827596850096980736068494334342276116430018743655458755093935815894422312127195981331536755457058176801335988912168393334990801817413458319306847654220008425692706503606214585899195234186321702259361953680200496344108487182335791358854040151206159045342579103127105850227626459146427722277371603169007198801001817069823200483203458661864710205994192263547725162065262113554803885459449122285108010488437550351943109410942727157755738796142946314721747080648880102915840630576175636126036957487983313433162952871114158977581034515210081575333413104010509801356525690109488531681520180207156791339202007577948764231352132258428266833875914508743356034312992509102553538661370206978836836295240932421231004168874372454465838214451974641936734120094749456473275875150907118452249782098627781781549836580954256353173317535256351893811109241991479995097394703620822976962981033094884004569132595934957329383859718292191256243372196502920834454857091507491713458941082093858743288876592997411569816791552350631044114178346234040040839831732742115065096092284030915239258497262568202834502227969876160980409378181526661894749726785278303327595365589401753815538617864693868790171970534027878425927144067972368943965453574731927651163212959320648355333940297386561512255824073513625842061625139438798012188820614726064135562824391052717719823227265359433910294192819506641361413425621204425606864390040063642229729300538713828093535922493807288648908521818257726994132754960522649344437037091817464025291702445855835615887680531561598045748074109370709035815258146243729031477199719613843047651673478261478125959682140039820421292341914203624559861220294128884990231406517294270463894255659966885159360369806410621943757160791429320094900874044765792483631538010537810700099962669426271902295549366685263912312991290186129067185989441265086976872726095004279094547425645842533542903956016036748159403553635419764654009292425727287070992001389370522221390499823987211700286448034638854692730092474003827005940939430736168278019282784087253808550753212198332819384329545844361210493470665736841146563518330327286094853900527234231931338519519318751174580708312889888514876330531073016891723215889701751982445139231928292061192929174728900633987892509294343793419324967931208207944194882838189183763039708363868401377531821762762020089364390248212911692865820832862752491331927612861055098323821951996712000240899812692648193510065093880891054083540045912521418047493031121014232134125367964810116146166367701176086952120428543339367991904656470510536075746916157963837346113959480669380955410377393675568456844495169266125613588263082947050452402022847912831473674724288837238913709951816087355943264129773363082192243543186048327745310505241649296038061568892097196955762787852464361873905422552545761829878463873761810417491930123551179660779412498267411692188433136931143820062248501927497578250440241437215139218167843740426987349321573376617657310532371990777029385502901696493205443552678071412991839016723707965365567924001833146714375559707561631418592657818498217931717121669236270588103501311189265875191137009780856978207819001605897396028865009708243226411618817477296769366752065375592236544344599708369701962201214992046712909574985626786854455139848839065727512366593770167640020722436959983707619970930860002836049494584953613317188765317758874440902841164930707576749675296440168927834410207345614427844463478720261378373612992197404791795647250637886946766518529701233770143649631763531830995765442690173510369395238507739894630724979660338657386909239237747966800630795284968818231321247143562199106161250203803388322454885556927183302225533176629417560478733296337960455255182511162021147937827669645278668442954762150415717126617671513696217812783169799834757501112308363042636920440556475054789508313276245560620522515469813521402810225512387452981789739350311443116876305486781682871682491392287006829875255603136545405188681186028389491003665655762486705807614432870028257766186508638643922023899003796511435734463736341291823085791006414664353032776437974234447801115931418712705469637242936004745814163951275148679338754245596831586117726697561616019491938894605564771666658569322258187780329024341751556750594388134434475887235011709375831102335199908946413864215759052257587973654824792088053342098335581193506939486593833060513533175533181385510973392607393994628698317967084690372533490020966764561637328477440092140638140377045615204454734495200543017541667400395420231805592601533710702478933969503894375110912958494346377139628266046750227158225731580743588908757974538096763885652210095308779731896139024808172687163729232164404618761807916638804395913703783141510938273976258161097580403855819883696503486745116782423257217772479305127096101863022897807846241622545032555737125981585472563663953491505373826535810257392840212853040454037830771145036310985612808638025379421155756372925267354064250461523501527334923344782079203269089147893011569541492371019340383197975486602080003015923494629924911516828676434163717846722912885131750350284176047078949549516433983138857050755913868598832287911905884213369756873692158194683868032077044947674521772231052248466720058923079588613133147126387828080341309751033089219719683285606051099823236673042078626986284726805045825885021163457058558786024060477507889313246599309576227020663749889671534602570667225020197539917331949954360892895034659771263477013945884668938302943421510112060011227386161852751335452068054406506418502161661165815885564387322076221671498255436273320149622407949154695193677013306456745561291735281260109181279172380510824320149681638522298546708426477978898407708512547536774619419336650248000050423162291410802559474531416818997726591500801474896069482774137450609616354810559694177748125783417301644606597779335618088960385939667632313805554884932365892878884228174174706996776572672825691866630422150293618109941753823907100447730017434139205107496192174357907462555004159877028178997765486388763371717454781917017204088891458159033109262443596234610692728998355295350459809168190719907842720200949834264258925815526278200478969348490947377081969575104700406917862081285138691220952302435010867300491782762090299964877030672416540080352019400274076482292927396441362788589926021275805265913181805513562355085907206143928224599908778299950849444380062122472318100142329019021458585566278067508053201095416374385266775837456160925807345768972671823023932457521869296265255338756605407354028243831363223418503116812908802764666397145512601129336606765885917817093244144070037006080921941108185129886252292596862753167497142318409914964173551391054382165556331420321812934619425049299753459564198349717267830545133873114968151071864813563205122899038002245456271468742933971074580826520181249256082306464082649574179528881289340323049793660594005187308912674790587242479769733901996494378410118882087737007888826559163544127296718354508908379290643854455335313302768946210669467194354873768141744388212863201905675646359906501261309118743237217097350917513589884765564106989842635432910681972948949110624315800326352796626827673286573695798152657451347146249971350704585482125098409222944596045569694564082859195799459595291377880033536785752621299372618044819533899461379688189197142185970550441027920779000742765662211065641376609605406013268004985323540257834111953609616932931232363824281730959447091177156429700801982821238505871928077316268399288048261048719689704024404045281425777057795662031368535147995383936135829021313096994475852518558900365893594760123326794068083625515971136611236431441168831880777307259073240719329548452337106518356019709869231187820640169104824001000173313531269658523288265337069180483841374316319692900532259259136646593616677997558800202914615602676049243708706559721487881876072680893788686809209959846838152490908563332462383894285444187954208164514378221832328250543263862503695047132482779748059755867690356189300854453374901807492233155951653653514830490681713724656086443132196720654078131779760579177592548296607018704052478275738905209101053446189258655305668014372972859596871716056102728166846217773572356635678447392656750297518154908687082354127707469006303747974235969172427449803038235962332348090315538102693279485024937139286140281862292852092392836739818013003874107097106482487836581898263181620373263998285877306086382163507457914623669014264552011704605813308855180839344940654054071215258264238809654501846784515726820643075549212208995237854712441267638163810020363206458570898175347064968412329188990560934496674537103526691465751074931262470191584177161176712471042468439441770599268224533941269737705313394163669395356384670686675627554162299901184177489081740080729816402315220083538482439456018151567466883956927027500542724551781373698008157937107003660978126540537850382708874236804088325766519789499982551654954074429545237404929017225739891265512365782917744551259253904208629204866739235477642213622260716537867227691878285314945256512387931865916851278224028205696046909499701821023221443233715976077504404863475154711273963086660351547829962647897357525089543468616189465708583815485320568904787337186212413353316864123678953695166236015597597300977776279310192299428945804992006618001449406910974424218478356426851790419851756838481927262249407044661546361833377416222422908682788896187757815459878291827856792549331050988031316012505062218425868690337635333151211115011677097805457434766365276876961366173739040128262031853041458192538690193221915595767617567303052992478266869103355658501141049805192131858482309545667094598665843060647727844695932946674833516029182344288141624846781250760727613752516793696067876357176630942126360007698090720973107050080495145663389156787391175566427804715981645381318539417118572881293774008655347426429358703847108535046660124955335661812264473267804403767079055961632698991709249838856176820743823854693713893180261679071051367593670361622229412488307872415163564178651092799332454258290561990618305402684526340627279193560256116622119795501978665689912569943719294125103500940157521696295508182166678480891117975052205053099820002999519252251489021676585203082638891261658682592192509286059055329495676613322544914323249507848021615841357669648465358400770269601845538288495975908558400917649731651164047837196885000653288757544376618901342316056666231013102512893647646988155802230719072374582078287967996863669041837764595899774317898741431091775499495304255118348647902543740981680919882006285467052577749626046242557569724611362929864336928495094249212504566046158521751297079826739675062335903909279200709387481152959034720914118801812375158268027398736679587300948209271659221802450204826231968099845393880679387527224570086105080963354065403218216681185212239301692523417211638331440754491647666192456664502535191722206905814144187180356862335409830601335442253918490159785475460821930553699770359874238869009324536839319260278115358714636243610595201885903383508294187188479107443772101833426104932626998374327246612766019408535836552351867928981827842219860025506410063141803062196570093750302395864061086163223058798048404195286951333269244689593605613692854849751944909445490739475696536669749474765242323804664437730170520646197660259513506438131629493746605051715405791730789839625515681541343294997266029810420101215619266967350169893747736880882109929819965505627410009383747393566787935069403466838276035378362963219790611322219129727174505660769075240637557102990565501546921403079471777213436588238474901943640916268252099804483928449535550647573005278932194420833430387864821739249178014341939683404515729375561476031938635968633605448673586737697881786700123109737149153801367165933906715667764198364764736497425553410657063466931626876001914342653909897075072299045659979375297375606721987412423938255665604325266897963368868141271549615706031859733956407594753079949459454688034027251286273639607790285647897292977220010647967282563460018536080652911352146093182751374228262026357953989335184822642697892355740345600018686696730170131723732536232588884226096316178115216611356112171526209502605182981995249123789268702955559009733772020490108610974279682911438003089256053463262627863077025163317321316688085580061799292100172503279876546294564128080227856571648956265134083849670053443528231176002111644202243401310081406683645601188048693055243320226138196404755794562919227715451085175762961722026717902316890947282368981324554915289855089727487330004155578617794865222992954545762126934806303569861498905224974379522586849092036098438768428754854936062515642279376430387839052749208683090822045739259686460514941677439576448552030093607184404636386689604862356349439040178866040720471964281021436342009297281795384050735945192918360842192985743266536689571477173679200033568773008129549942247796476479270806780313474918608699245726705086891805500675095812345039720552589937585948820665277193158317692037209498840454709583860784422788951646592206728441537890491338104305287676189228511422107502887777248355384067211549787655672354223744024651712882788212402157023966720154763923644920619245567508990381705372905986732135709354994724611887533356955047070626216104811793749660051532100977558490477853757570680677257889975215298200854957587379317357739190178320193303118034672727245914632931370235926856587659111846681475863884441908171264519434976353845186622241418925778631756910190246961076504427229895686816810949975080236559213653396901491586554963748786597177479544397811351683478439435035139500021273735014404887924370543632640801902911484206484946992411305215798211016400698343957354655641236227279757778837271137996657696063513759378566850395520973523083726915558624293625761863719820733602588629794014439830825862982773352416731686992571311753390719333705550379472956998119331772764523498731768954471277899563342880276842080182342874187022099271944333838680783612979828396933055802027214351641251395572881073079858858857872694693607935021212387825338465767008039229097114228433277090051170841435914965074059506156519741553018946732081731614210404931396903325021997141544140814015663867542946758698314636514346527650981395090777016512547193258610857713024116806606113229364076402208988539526916364360694425587067141705091080046576185981682765491339689881447118070785443155523551620384161126184076561591259040212839769988525990662781422680781865678806045130179327628529448567169581960952377624023023809390741703014902735529966321066260765388453894409903475276357309418065848519755657925185447681648154904522775063687119273203030924103375993119575499664890507080964220512727102188305883690947162586574990145801494049610236862423063245242220868321649817094149264548935854014842717642391180412271608661086768839793862374658252324435956604133607059346319280340779228672583565498606666863041806962342955285953241103211425200493679149404597460468546997132107089522496595686383997743763098238653115680569923451719125733474766998392169939728706195613192275773730920906902504014056213190696127555501583932610981494695790367430727677853628972629150202110492927967300114537854186177441817711723674385623465133255684106556752448393770399035331718370797457180207453918240345458523315811250024814216126394701697747091991768735980479117558397531270876746436977965636027738545933055738792491665517274254122156603368778865910388360116983802933137081225754424198330550479058652680792619992114399027006820988695880922980852340519110970541963657152799646673437481616842661384182665063900077842565695317872213986807892862821150447331981300934313873134698654140279640775457592567175434251871720590934823453553500017518528898739354978261121725076007212927663615547567933969386555144018874168055617336521055539401589815446048673413503713863895307025401237468873979509362719063633672127852659727928006935902974507888362130919648744311690414692863233703670297224389113507013119703334112891653966339282687147091984100072925168869612716062385104586642785666740600246785029418354889552062043035269193400224147662102866919103891422418308989563107771957084106117034740215093109323597734717791463909577242067774256026570613227709538281837749298695799918236335838234814870454335202284665331501920009551859105842997015233070184645031995121825728129123620534453299033972531926825351752065453352047729664122488935923125773454380796435798239341792500811310316562746233704753013667662580182994024069483406720331542540619525274909396179321255098467845315927454411274840881281176055441296956590371615220185130402846167465012881435476010138663372316190087384171334816216117448706980216857057660786488036915028861451414039238669194466058489383569047061761556522373115672242910513734724943574210653888964053765279944427387152103498128795514623868498307607800617649935051329649331346609709242613526361295755822670877710227149106233064389337944011733114040938167066418993248474840815283950136425315818261495359164647013183248337868827347239943059199983409307544712213777444293912220327685324553115230005517850738194865092566551813742428329219520403704705849690475021479167388300019219977315301349053130947617132864698857213982481379000008898008980021794281064977942492595628613973667188136502629996719710939510576820929767904416971187376666419958331751834499258513522418971405091154096885428063228788183579631085067653798395443703129496638857050938174097113027477993265150773176258385369715104518706565314425500418096754009629727245336739335323622742802253498753333639254256137299876595532983207619161507846403563969503261242495236325933146710755256808488425242263123399239023575839422487354578867842051000719456191018092469649121972650121072951586357069196134355082988151888645425701651470258759709739603120053094484910347818341542951159499236553422799954082497875118178749499579533394448880326864778786597976713645463793742629742865602575363293353223169964428450050238952236928815253815663376107165352779497692747759105610255537486175178697283478334013699012700855768509082964493896095454685420961641776269471798579575816314242143880232351365982768034381171652665536776677868084912418704341991947600892268755477043897557263042340744200317996954486628683574140946545539721474144936990261126974254206767413799919608489403383193187718928107123306158525734651672236755666652700006546519011482191530860135290884575161477210573533123035598520134023084753396755497656146357294063322463102576300135712939303605671429479306493542053948750307553345619583953306468083084998504479587043671833928831734499940565304675453365221276952793237531171194505392504646293313947997258253099247642886249456391553257035435554114999211374543388471578733294000204382438178518601593080296616134255091300193363842828957761801588722582981073041227457248758485660700471927917653714110555882086522572063792722129033859282757508060346423054956914724771497847410403244875726240603224365447466075129385605287525405147376179118135373468894633942811748244015623782391430650035432456743534427292832708999174603222392812372755786069527449383991848734006561987486459501348120422115012033230080697851442012449559471425174634969635537175965323224591842363770566926984926800579010541562769224550708699070149111340617179259714956362016029169079570457612638666762914676698906279892727299333330155585711890398675749806040639241175308537628446054820577941199637862953279090617426311420443092608556012887437775359106321465710513459282527647699063402876963936830834074390348506250903787707960940532843361328611738536994499635506249640376547354977308688360425311387785005193180332457400198050291577861463390402057676118858412759892251299689044136411397609480971981434229698989940017286039754352532924317131186821960302950919829919946515542336334654808630822079388485215328869108044390920950089099129419549347823860322159734704331036876690614197022850443764054908467390037725455981143304814382275741214683399760148957211542595640739459955275278356780593386117278810209207112629247131778959360279357207445486885343152112402265821485787264743393916170251821546384542019344655564654564207005411117201934892389721096841321676671279648360676086396045374941626462896739097787144682903899712181833119284804550948857102962159108017525137060176191147060389889272046940286080701081029141335255463021388041812850618916858897374831294562501013938670942185379070228020008431132383588170864326470430453103484416395437253155623707963329552352756324535858703276136379367904394047838306281330312164716151478200927401076798415839000041843893245595986803748272125230268280511681213029269587413100874090062327977121148268232175615418672162665731468380318125595588096454411940427209809051735323932806834244957067173500341200499308883643380724152547608286698733234610773397702895183420818454999926274452726364347871469946734195253646669401997777980178248508789919280483358898086675412630191737896339570150530165752446297380322694471983878712216934785803820496476432022635058699513546286240721900964043237949458249524035242607726778420487924219725062982601678916771138107298157683580236542130553665193125124316929842595644457259704929042274429439194582953382520701515684741100971133566228195040678676345038799075057502601793495688038488014046732152372903018359328545926005817769691008142048596372288224097224102250582721069906252958348881463282492925357184745320420289072061906200486027698553910017423966547622513007232676961113998825205869265275142557174193937094946742712981199873399223251213702661911997652193682462318504553932432327555062909689798329484249330017427313871087391317972095109049653571215188500351700560261064211469769413404467789150345208241021147990583540928184523457250579124093978306205638298141050269302931664582783640458898541713158431855268480950710115868225473730444094973625912810767899181253161550988402598938828044508252663159730856019840567939103392960390687725309011738871352781566604859781896346453915839668629760952461854818101423519025365922121231319095161157950517237329279139422533067247608699146446478645348228023883507479195027707891450819416010665757288532090813966466219900806454778750811115931408629354788469435078203905123016797937092675866020404024925449084553895587101342576561775094027913733659280097004447057590873393955769419955496021756544053495591846021026899727627261994081752039430010204260092593643827913488108072705975645529406667021702211680172948000509761507786611486142552702927115990300099603558385758332296795107395293962090720946017006110233122107075055700269648800700703609254547436432191289694850778796161251934120408158591551453222874300416247807953311236190238859953813100464047705848874712930027799823745804363035635540845405017305967695274716794247340514480204424611477735376391020990103091906971423197522227302520673689648445438943957948038467258147199936597012590001954239047651272668120039085776230342590204967807285674802118755069587712812681873299275900904580594969538828090148561794365671424683711967975135234048387662529880039265608893193720543442858436946248936324239481047794325832479492442960381576439020632783297301918508064758853939019003338393350306274333060823559563522953555343876616312779640871625724397680609281608861625534744718721785673787583380200036878126924178118012657368905064890919349169996260800821358651581547848629614712830310934666124729047707547055058913034958429335722769427202391224640987927068685888220536811201665802939343738185516757054491713829737944762766211996799990263926387506060847464342735588256127205293307830777290369995871042942354452372662626011927666428333510602071269434378322391425820514951911380455610086484674259855305441286922801847050349313096462717520019926965891414750524896244221980236907314694035264309447784810696646413618812353169983906650462860051213224225592435252560048055530169047141555670022101534932533405629000925530155191628807468333840552787272109472026128051550951756070845276208218606255363802154769229893569609171198237360241537435757323101673748608969542368894725181136266264265306848486861219399368967663410328035802889441650804107478857494327295664071501483518416255279372273004903857725751712019832093479577114287873124981365511932727269232499337068855531948851183952503288979923143045657301761335184465333373517912467138806534009232116221292163641374728501367884837979491994139367086209871227896120711880871763812537447338266275200380038275949903837742569676190436335388445628698621320651296670507799679359682639973979836151967451023497877127055680256401165206918881227499848837348238716886570466245506030584397984642310572466126039871573616143776918995916804463365494639329612389802635213981138333589697490842483421492269990367507821890521481286437202367065716131857443857905020383462364799675051178222144614194323285517760885746836308043523501963268802468232266701420969527264896569495610181734773024559706942115782288506218695565283072694771785618382434070484830696647548348055320095924825063236816351079672168020535520074063030248596469618205013888764940965233197253733677363393792926805293593551660932425164547482893345440143472399722889237928007502204176331088078786454308708439867810862165337765937272370820061427788993658912324644938452142365854232563683718671174121443378866782795555325597350504022203449799117162095280568481311306124052444822135928440358699241521893177365240346970403398024070144366693908919158896119207292890224705747945456778894267843689922854211273015096549576823388425163780401751968727825078902494037494851298827608540268267693500455561479050481492927207106950711670137274899256534879989592623692896480627759152295481726363781351161203087659577080237753847161837953781291473868106793844733420212673933792657576868737150834666255989588804541979022372824111826499824500442445087864822869972642503278570186676009988386291919352548599849243704251987496305055123528840781859507623187125862474145234510500060757626818993106665900510622155353208600459488498923371204653808345324955874320548781351880312502863618730740470383662020276727401200574138264347022095441254926279495478168344254693850911288717855621054348136701846389588901645390920920719017084990235565801318727763339069854191750086658993120297565652137080300522785940770730181542670000699686019468308720044192872722339218705278464399784557617282602884065196942645285812128326721761725710024660574139733641578100926678894363432641285966442721917833208655626932826244021645007296850685268162225504736915853344790118812282929057682730665367272511809136341783544108919794282584530761402180681692992713535419647050706898110592793627539851001389164538897990520434154514506270921323459151072522472885135864974043734973977536163951850695700206947591032226835549860328976796222829050106534659392351645972238859947096361135901250547744829894868975097359607959014221985892736967892487354404765570296978956936698257094679936494408715067746619199036995464457890790986641112850683246044902278881386804464689780752394453167235013543615042089272064232676455935768983637889800693052432464766428472914552800952358188591133906082065489607181454613245453466002474993900878700892835107993106541234777566020942225090508561623556824839770982340315030758713227694978607360275873758208096723234170659607589925484851894597123059411270956134037431741248591911688342314352517015970359651465384276044854406744751326532817586124165332017759971995685425913441669468215561740037082921644509627687491954050413053397790511833809802397975062690478556045374114707398198242974112956686285394249566516803948358073352901315176616567371135812575639666649551045642411732077615083168376803785823705697038256628692965849026916363624053980420276654163112825275320175937135967059127043798936826176302009381011419048907737498704939271993710752835340257623818454830625415891850414177624084341206927110475480769245909497543792770723442674462350728126116325007810654246574342841594657835077051521317118460074052945410903194097508939849032222198062405592223979920099947222038086165619007090931673322505339680670490312631955966346635460590369248232923434355400397903478259655340577744649178710064263899884041918426715314290013902956199910058067791158361266191386783914931708986084935212397207542480844354058325636049502147079109533569341589058182429285127658805269620689962777706247335733176310197702258748581192531982619404626480087312684475957864544518412054067165861346826964695477652704747311669490701538175910736170449567308456533149725685013680447572436732934542667869170718099159930671794359782555085280841433095265664511581183941248978334296405219200839533260344878148027779444311552566256234648950481054398137194080066686896057798394153005986449479876125345298882956029944309718251636917071795755036073284525140509540177126062041890834557383595139936609546195196713556558544822818093164264126720253085661147927082205606392337513168600721839868702035918476052628696574758941293067936128265564969817627873662078615945042839437553855215161703762545592262176952664404472928360706502457611754261225545277320545278703691344542977384970091971371955597794157868532092989042930692191094285034535888456125546692653695836728152508178282374317811808449010057754167754026636697606386675587311829625210017331207737040472436854482948385109021260696538777351795302588775059987089425372749352847912841057167129791322222354052775326519452680173878555906912024543599234602608381726606060916923488520501827714025869171713716133517949335556452609436473425095738169553872105302056427527565006593995303267815974886823954897453908449321756233038346228941301521955813621872961472311290970159260459819350249600123271559024828397919726563562644869975776357987551709843877216023348635312758617509584176941448972932764411354050445608989417933102668738642017565054343621513591313380252454192287034770041048635823441849386142737796184908497140788871463360737146531608855015527827181562606896618746769066427477760477412098591477537330396463684957415209943769587916631387704070430188694935894775960938401378848040553407305272680646781229000608270080112762549366953886143212851927670033749206317165175646942795642228359881602486686530041204379329197115935663806711987070418643330232316868917537677719810586327673452277133196757461352012422812900859924526855566514424932195063761512757696898585383647472720586331881946466414415250768133258527329121907604333066820948138533102020029096526510865157787704524615606879365142748485990500960858583781802993061553966339099179740973462510988285294770984594882145999725114410442354788452399352013840483646116766462895344288255131950581635195096873404269428964502476625480624142232345261077150082601392995936376788595937640253174415401944382038374756685021017447849440559790581251417113497331597741630951405096399115555315619276611556922545050945923838451046160732772681554923049427065927378888237726954381716107193151318829854237948956177168531951551060260674007538733871629171769913651130440441122542228874188378377058507041376633027748891623563494622075104335292111232964134021625991024081048568609932902563928468416838616484574715646719387550889621912489569275065990323638024052072016794509472830447109969612917858464128884073998817488093615356145551375642485379530729884592396825982145750552190683456121675362307845719057489345972540858349910710329096861401250375908599757911287545569505817408744142830312113483828940391845420625842352636024526803752799827685056912290230818511636217389527655474364530294069643370347579544873151449966228574687175186006739111113846911763838437076382985233593411591919014138259565932000342557392074504049977786400231153992150885100942866535375899295654542060430379166682029175425913062652484606434185941747953080525971064930859416534599758781644747289696182410215812203616999649773466576748990272894411013745251291638332181073179132554537271601796061327900356611477207423584849859598776383635881920266382592705953373697623997277772251275335331971553788389748384688855940949042722639533844928903971168425048373425936873550169569344256806059102971133052567281406633818207716602134478455421891326054890090694468782036197688781300971188107147966694956428623852042526185221066158921422827437397767746614978374694669677465260588089133998848502262080475796242488995191134246814363475505111012771370187668770157454670536435408835729059598826348516922931257114138999928417135905099514628072607078109422445613317913956412558217388655382218657170297017654473115519535225493997653236553625454510437676342067976330338230645774946356453813863991381335475381215899338130116744517337123730029940862612848304066032275301177578454683751814414952366586561980408538089478580134413241372173949489191588126411345276681454904312692870635926343740062705586597487698282447754259397431096290202294781892401692262012942123074853785537362461948768510624910271524281454973422525271098471557917071961649962057045139691538201290187131108053364895726038387658768056649612510042082138688609934440446675312556108101398331170329846691424098347716800350944544384569152163322821996083459420366118674210312101188587576646849588950977469007098964671220077188500560752051940638684487601018681743581026146594775636105860471169268213325167135989345694383050325074110105765382570117430423140841487347605199817300930094520055743523121178462557719012626530161839171688321273988313773862621491820498987460089615134597988697715094619802979746427403286535203953593287508766306784247299301220823709537061608185694740260490912453205472783623781520716184004093556232691398114105813234760565547202888653038870338436164595007203471047949498381076618138720206695734515105207207994324594045127519549932221966094897881079095264420209092094066571944038246725638646288126025153985771306627726667010060266922362268748234778642334553180876491516233039434187033304994801575670681012356736669972931932807117802635141812473805408096262404548015260440643165476912679019884823758429634943254400800264586012543106480166063222413847595165172325956954689497255007230064680146315937320364744105221161234545844525281541891200343713937077997118358290033171990740406689414005498857046831924940402029706158018411352707042160938992661729234194015146977571385808444532137259960185584756085006875213705562027153813251689085149376100127949019826650199501075614312261578681658649213629611475427920151183467449953077609567236906890799576568016964490753387567544022208538757238936876768584423321191465054477194968896106071806213041158200361552267024357500994303421269653398469295268751865902850250063535112531835749424666953589880877104000489272697253299239454137463083494545642235779939718288450866720776424215216995788415470210194918030660969159107924469103867968875416883983166932193493978946876894793661697312785074670049300285402342252429850708609505807528750819967010727671925150487623490082504236781085693627040532980994645748675982478512900165440176449292334083141314776613792714849887996791492876317984724315101002419220407398988918456931007796828739572025513279332759388147557373125943527043652092717839095602424672494416500864336350660684060205898377199995312667016617106274941248057092683284016593331668339245810333587585961162827896763618382221192717578729746394392089275773282035165333311492815615222717044022478908157481965204134240728086644439503061495769706417928739421172458687267707687092722644587302027467610871311422147811267773620707627480143876333495938296835720669292301491863811248432762586036362132825687411505826182263823857680741379598673556200134234705661286049258468961730158350122906544763905718457943423463617823363699748831955304657224662206034091868451174011831732836826674507970433339484053035556305944569128006011467635406935752852272816342569412209210779575116515991275370578422442294879677407015823673447425720052057509583811360678223853380766946795292237294560735918813100538992679523400288864688861169356451851215661666094572630134377794941377309443056634146325801447329316038246354255870971998562470565227321998631733151862284063634567368467226914772741221681404382739281981422619503217928788540574338755228625791489949096403265148093898861445139328820463036084029048986801851242518104302153389790764014461539456455603507747345248994594148351317098287159880259260329315380293225953440186772243424977137760562084794770079391146931839168350338421181350612253312211304412008079865672863447951333929697560577454941819712062090062658616468628085325286689247631771276301681685715171545465463111719644892124736241069673037515166758718610797946557935961028376649268635111382047739212096411949834476153993773409369439061006479336308194356551775379635214577441268720998960630400693380388702131122313026767630654394179135843793261660213898145482682453514181006069401535381088207295000774276270232607505527785591821522103467310163674787992612921578150418183891595641753393206930378039994907891785398337711295025470367393821711459428912683678492940005000242775875356776503279518219396383177585278889448849941365735497183896649305662435219318796063975270361317569961082638118541632738200900390064958667351491436578147242061944710486490164033919681919216249945098423241594672085779268333667106777393425492322903182708365261395652018957341275951700008555450513336628181181708967293914468603688455599814993257908316300102028811786640900318170303381940967107132600938296723272425105116658727151136237594144239157510604743116285882091294556344215817078026467929492557795847039107693183565564281030669551850982931168513943419742634811951871554137573072574826294666664857522417916348923849396589866042025519122666987695447637502205605749232903014817003957290347129874362449550727339130517818481851019660770173970064197811037479530816708723598097439727548850794171151710112862213010484772414022013977889488915771864075812735877424860345731424027676652032784049537772805315428264880350094797465010544932070249885282037445520127145931534988475532603853531550993911579130303221251851627084121223949218821816502978404142576211769613481404604700552666008968708849413678828097661338432129946317613701552662788822090796173807714809940407784529533179588904794993371421788146690039375626840191398068324322337689229484394781368457461254818193348472582766164994346983539854719347659957845908579051572199807945754345780734684601714461981742456924402981477258515265545506457974691729995417300792912959363972940594222839505962496501759311229644036562984686927582269818991680055755549815195111999559058550327830524904819128006802122368279913403839590014304373132692973120946999074399146658938741647385549299099903262239221574212871002611636286402540693562214776538389086357487247924735727608427261334461591978317555523560177593708842252174857329245066701473193999239225839135933025957919215771466029168686632930804113517292065050981719555584252781179706550734917208089528516514382679736019566546251992776175912695216786704367154782627286492561657579082225843726720351298808215517572012728651435104938631348419182680109641134773507217191233253617905027063294297047684421342998332666519096498483067475300177434269250312605757726897644937350862896072515678149563899366576149212791975726673457861847613687368364687078781653284237378315781271888434577744277346010937084912314744065197069559305001956086616332732641655981175574232709419209498379042813462213291700985469399447953686893193207220557060777008371428835087745694607567369408262755956301765865393816558927559154913693343689880043986542152479541878178895157889933393572226982341315090864472329340090104001310520270649524586814447003457038235803127215973547726277658459998210701516437804561578564731754506095218677629236450458435612302260761029873791552128661604192839024119796265468373697789227878231592841347626796101122553540063427953601324107910632161337034112971924167122120292672622928332031347097422778424533801953144627050974908245739459512790424569162722962705676527682703254287157543144261530943539796093981154209135396624173613876711269381709559201871207409853759339161635084394051120485681750416803074098616907914899110231387892057336619472798908561781330844202323527668219505192570794339099065719249383723380147558960348159165233630480833654695570196521389026114177485602007151923783097135126914028578756284019122423458991686492971553489821971423181656161256209337622193306886844346051037863158479772126152808746424757757911348060284618585460107259786815233023296647438602839832579771405191741558975432385070244198975682514058808296132113042227383208966196259245762885458397072385943800934902967452326687203396049590106775784420936636862433545302279034583869041933354391448140020889666529646681948735780490546582316284379379323680990860152796541324947417257859577093830491118648350982216281409339390918360513205390561942391208701888647474414981557524887636822969356830284845702799534697742934459357910790739175438373934579366720562671900132678916270070793106829034392479471391266912922187613434223194213619693964146137547555686550736974809973715950453813165357688911301883811825092237156735204510213541078586900314507673993195121792014179946452272830216892045732208956328724050715147887622707621435200308658215276404605203887895214118006836849093562343234316472699982081341261465069154297281464147908536914235428657724973389149878057301053544971346585217606639671587862369631602229867168617341184621661753380363712005907882114247830895310381097461824666404666035489482246699487208258936066630642858741798021138686294149458696893036179346020103825000112199182789367588307695385817225950699094861728239677292988055006482169650226684045617621203779829010909320678845064476977867072660932579841824642711568135909858030970150559430333326324959655366885031098590163356476054451904538151500393969513897948306032466744716818445383566262205231201628772863138791230868200211005245703951397520976830574156035571563512246046895522413240268850812582568401184342999221895982200226192163675646677087244776355518735588830032001362476208999111005581698764005823344993247466150254372778467874778120101562591839929227142309035663089750284101735388867254101744887261306038986141739720289730432347610240045259995502782693786575193289671160276865567779532851016388186596032725730145126194535050392199113505617116836414514830471659394350213662743301624575464583324439001069994977939265928411203346001764687944479769495741643480705132306515849423236432788783803826326973560920456579534168916138722810535171535632828049816627771419668082921394723173209827649069851044860040556133320015059473092654301761828331002298684221661109794254965521608828537973995609205734568989272086734492141633278447971177059785424212311931824819480379120642982477606539581099116585473901903218678811988400310986255090005884727355153308169242846061537732366526490336757560927395522286348467504742421901287076080556958842208785786709647633100309090783925523245050043671234315885302085234292160789438227859067582139912564474785214723078464337881702439049227292700549014688904822267049591965813148328411929450238530352434515124383133875686079173604952232108978465807269725922448894960777451721072382797551733589249499556068939914754867394388353023767204937788593929820112016359886568752120926527155036973297703593269783582131701245448541680166807627261815999669597037248668176473196416419486638898912806411725784106375094671673548575380779406269902932546061277700717711036826753770119958935372629235527853676317326474371694349038088144448067637761789339595784136900933790835487665923036032396775493621496767351577300482947301505268727790108696902647335310398143164868835452044241913719430349517499290468870470091548399754174700110730602353225807397808690367268566615378417646901493046946448636286140352354518824881438576868159214266661489546784270907090296940918716845424197375852069752809390972360636007493409095680844245586635930705285427382603239719277924636682640691930841600603988131822076203106777927438292797909239781954635127109455281948188309862875198871800009867077076484387222243904584718949811477241943643600874927688437354385140183049547986891252338194659950565070453693374189014119346793212876973751869154711070741622950273157602962853801259868352822909933387155266625358073758903806475535121557723825838447840173223477968343479699494180235534330674766679931569266043317026483714691153056035197327667660926572226726910591108370847116928757582222884500776415225450918942968853155128707492082969734866358401472134338233509997280704798855484211420899964098439387922384312175869363837137548270876996797830979965874202672125749642056796868593464660205894510079142001029768597050053715909707166380929559665900551464464525800372398785642451171557610614490289942070834971740583203970073894632038478422196725086133966954580802195441168152823675944678336939082187403818308243887573241720312791438028123362217490638918010367721323455135911324287536162596132002643190533528687232782184158679005979906842400519601566959573755249685494720361967850198213290681951981825869824899546476471139473576951341625950354964675048323709882695619916238991803695711088107047697573181374198670351224234498781164194516795645642415188685079947179033923665669591705436815041397718178083623860421221066773725246439153149877888038464396092197250100296018438686044562174498221457704338713721565714359482166237794803775267772756758751086892118905371117493188250143495797487633278599069479108751601775721341336799685326172408972051524063270541758739619395628845068057943215867351190723087374746166793815710612624421187281679722903823549683820615777367240160029585411427338320949995664733583418356107968062798212833414130874417021355817761556383182437372685849239562354774552732271815097735296701894439349521591780763632730377668446043979213700529644468971890536693080784400243979968354475429313234829566055973295668232797080934579245166522763591841310866577772254904589007560518183387475837354288346323390353124940922066044886744526558876303642772173679977797372577811548644361561921996336417637364963204310876564287044427916619654722141541862531841337031465726103307748961781139459741696447547142131646151988317690554290254058480373069799650903854362310603618801261749124933249093143566336575858940514098123881913934479848537636592552741036866288043063032271314014000270188770648101456254258644212618997148824984564062208832668682207354618310057681263712870706889047899738869429032321986668840225594539759424914034103924333730189943797923426978339237003649293196916474986759016251972955127033774981325812303308557265366578121431449670372916421908416818975920697007734504331610887549695548405883669934764812955250507252717830715823970779059825056788175679230604633099803769495522048214145010669421474941942884276652754628170945194167848182111187338334463556366468435783861686001774141680233313641046371893593872140703930450432633066564084255747932793208390456967263324777737712449903798818765006541292881397003191508821585289478232850630090736676083907058892179329292111956960231007764574236118418579637529181970622113333022619638748191246700808587028557039696495970306848638905776194940646361663332204491289082731666124546937995629910687217113140918769316805795575010248856975838409414162909370968092106210866596640813196257263926654787282538551638320859743431173562417981648038985807053312253745716258403206673249413960286613569721113426084975925416680251175472513932295161174567874105442756118007566559925280297256212956733278450971010907114471937872792766923741569305677551170915226954249385552295476798569210815330143008250585500381393706264406142624600414314094962816613339973598106819096831774499402344393719982996588640804465675903524226897961284389699891668377459515825382437347414693307443366826788513764366456880412251364731594398471166324192612843776278376010402905177017666220687445300067332563738638521680933365277489676809501301233325653679549784509910246085911713618813958602038169070149892143786085049517435044320819908658661276411567701072330820735556768194535860453630175803896048910422457416172689336349306708276110316399287623930602685422389700152335643248815033204099285126621474286668686524180905961796625978730635830305744557381651014180149067611070959407861188883359682942173922693378945032762851590359846024403146409755432032689340449118977467362819194462734548109186460527718073548779749491539655712035113404892589227533765337150104610462323435321557242776823522653742660654904938149912770302156782287907508898810043399012729693405898993338096141234995618815794016624565173961311846411927443327150828604315970299246143638390279963098050887128055636391458432502844052313628747825851574498101618451449483766518128287347471899163338710806904569371657375705165722978511343202685977393380104773392133997709457663052890475253865900033617202862806361993776214285309959580687322588925100475866947967659122147862055254605305914388843593971528922870689631657201067449427282605561758816040573788080542320599838560481912971560488886195997294960541139620868236362278402292216131478884311047370690741292251821754243657728499385429882694568873136000661908652060772871949003247094550478523676729640783108671490919487936133859644900650061721519553198713267264426783303218271768154352679850005198972243986650449986017264925620095171807317973262312662159322214721065874253306574952157132920733538002832831889453851775151143155541142592693945805548737186067898334774051229463453565751983505388822254086399491106526872683923282433884797039001375005705394013450725460157882282540602209595271537021266071370563084953360291078126489064182045515544412733225049963303473681594563461320339761935836764664491492141188628230196619988759007432126544760306656809313901341403706481352703606343733293850321792184221292645232913633330426863547417908590913652791296985303417174379556345993873321353832977388105365111746581005000443258135795954221944131787611281486081710175238891400940231412791218836933637542050582705520002994538240611580542534703544506216685614714333611531879628562068328056216170062084150087207632688392042365781527296077975153231211484364356273614907675721107530799742590316950695073234855139407419398105536244151759135792608992283975595308475560794427501098311340246421545787668639830487957683220648349798502948081296408455492595855469078446193648778587597368291646104521643712873684189401961294193052996063648946824118223547182479943739237780030434904296699828354984511408000864310922108755455086381849772910631261920983344670885004930030509888432677639006377678070250285317369521948918762424349808710528693641532696212837981785924467256232115932031682190599353304890295464497172787856505795354803554739958557984681210854651553423878923842003324789927047007141713231270889327690048150064022059466870748891361905387116494997142909639188054622982527379365622240583185840228058615005969160460950159234040780911017856467106350372785321448346880257407063373923390773082481125830960071467186000518158414195797652912472984486395687630838284495885677970964854602135615630597588684734954751394887426205995766582699555609264525708791217891436246245202566334389792816323926758894175460415089333455846729002915832173467162696354839284313464929636700539102471879014436218217680201564769949776475044326424792322095211223090971581119807207005461162848989684385835038731826808259150634222877306752955127952318236278099376028459331018533323356029208677482959677279244682204815570932651847188431869415521089788550869086188801877534044285986373079350256171354565842422321321945586902101599056382228122216660403288641070110531308364875754095274048771243608789302131835504347185923866695364680638733810626907700871137907729844006371591196189934143752081587925374885680643360130852457985127114348052483929726810065376099582421358291029557623709239192880227850437736543416653961242469644369745365257092429066902219902728406055075355932052433697366770798611860280451211607631691490278543898546196778941450061228958901140668677019676591318902637217116448114621947648894481271109708495646302745842317773072540690702725946573297622012133545432215610939253875128613674591997873165828563646904050306597504980656651976252268560570438273632361648636887548675986346956447566214076236560430846836125519734231594519325555038488068805859709930870102226892397980836301598407178025378552428380244637143457385421395679110672028822540723668843851616803673545317970636647133178838653826662880120816137729373391599928957812169386033742150258438699805700275600685633286891718768322406859784390132157925452140589600002221734135259895005077611148827479168915469661357465944550271090823680842253800336759243647310459050837870378903124109447566047717607731303537532643240458736680845619012822113287808657071335245566489582582768917739447783645242634122141127345277881656453305117464365786662311536225560525308314288478581489069286039158609497941716624156800073097874393982063601686129197758649570942142543320545162757643943159947474977862725514761422339370992365847094448907321468154954673697067532308598759307378127175877714106890440885959627136460617144615686146626155377091554334034970232194904492921157028676761335873557478249850219925280177628283519822019110714599920404559264312634420171837744108107817077995186657558720654248441081432801449761884974105926615143157919271095727063947269251555662681363881325787703877806003673855445146486056317697467779571784536811233767108200902083184928680642003566777669630622345000328557707814978973758269052175042878748507149689082544527630926704244724240710081895204616652406387546003263463065466457495031097415624183015519336351736432066800717293495545509227461516755898931429856527350335296857927013416991806938418960076415509550516305934965657961731217122580406609244141627345473948538666883743523145296674836957799309376925890202203489333819492272949734890534839329294078978572650777979025495611843266794879577057127521955785839529757580041031520372173719719888478504319530162872829687259238314568964366343673528732796001977907208565511281323381606743497024297713152130889325205079518724805144675884218954650146213674120573416240885185603520249708611110958634152298422399936888783953472032642514568807936584925881257478228695958414144776815791859641551586750671119512379074477654376591431765382274155088977073953707192149684659686873437760395493986381379769963207829984213937109720814066957560467836861132839668574570222697525844043488730228520599563740936280151634788545370306504224954588176692078907722519222929805662460365003574281243709596168525046480241379830536676754031829174750773636757113639610103600358684141704652659758756932717951183761519329577849445368140916739878990787496207543929199106734840619548529490711701175345657177378332207614012330524537165069530832636593492866016873717944005928234577493269957269642511289037379108599607411940882282056110752502672257600979937535743896437354115383536086554669073661300780479726531441559299375138399097634101338871681223722036651119569340525819722974622948393780133946455777216938249499915445153990766361988009051754549756070574998145449488198039916004756002652160672803819169687656515411216969462455099812273739484633224329152765894421691097445082593231535657149537571207039510125493479285912865315945406862490110509336307475052519311455436436479635936299283318680714813156574944355396764477826445732814482055480933520722876716253481274609240540870192239716803247029463491798076585313522384900540515715244392805141892322027635671150159730897184964782449251442208637138136407570824497837837778626281143450477623816344766545264165824666629518472543157385241203739374812282767075340975955186759578603085106976115440396474337857874747964062473749776647006330544770703024575367224184300978391812110711190169746654095109202249157299446928052574907991907942672828860972967470099803296520584209715662371534029162627241218243898477022526421782643673278777783245352838517467289427885367041343094226482569561037576051194689790830848050045019553790627895315300426072442167270523175748607569464386438982340726872176647683185659016597615194822805725142466034488236796738501722010520491024374581542894456287567563451525802538693721989543291174133209854303819379323546352478883849247183513986462076148423908329063586095202768565136271495228061885096687269325538777112355787390436634009234276066254837606224882517965745645210600699288640581207587783043537623738136788036281309102968463531497905981321880373462912026624478222063971796890729981558895252733427493082749738603468842972904337648670725042628222631375701161889568025492493890330932243117612940344548113613732948342586827996449473139046334125102916091279373001160345744307550749244296596693359927011975604904545534375802192320680523138467389072670711512780604383628740541653008268550889139212854891199286383906370408012829059928394221039314647585661537872901360943127833805732151101872159317562596894739675196431834857015538765228450395959874375776262340304890272818690752224765762133197440082709831485637254129117745093928456228035068265009048708646350847634795704337553091589715381810896975845829425299577665369459092332353210906286660031187248165395276680733660797998435577875493402700214497278290938731044380536493064153844600637640074707236262240541702096775585030346638909491234865566803827563516766726572064261863113120899228481417528693556058718536934305734712253955174197334580324971068288836914451800549164659519955051299316121942312556366533638341110151671541739717383055961890093210197556588443362385193206976037069165770309970077466457024089582391316643457665831137954320032538403043221812758587523192541441969371259456540190766121423195173304297078112376625638812106163268607222999551947942274076990415784062656019145261328821430572608701769891802457589205874896034175279284307183571345606824024351429767441496035881486567893492068632518996186042828100551167695756063394122155677648176081841766603782299288441401208874184894937092839464971047868149725447577849940624071523347215255590976659885782673024473205033655300160500273210636054813545680442578906824944527813594342656252936621985573073748223363380835769130782955375187296917218925601494167114202676994128300587036523008610187633557322030244004128375579339633869325770634157538100341278478635425733454212209669408707519670565925515807559568960367370551775177097253160257343321675477612236153014158374590228128679747510810859666577452340245236059265129025940380372558830208021385385891235516205938680008297604280091007486865497073622054460181532941756835712063446715589122021356019239284781263228748466786708972159237221405620259059914451745620338626358335761574927730740708038912683047714526798241654482612936234462849407814929089681265545046762840337740392588871947403631694633436052029890795267918640853095406633433982332619731698560729369471745621615392515984127268002949461354525104062676574911006529243737494483660192721511883892327248795550052802349975655187390711750682534206641955647490114250841490734561755972678206084974604403163102973588850246717442971205326309230488249784708117598771007220520987483011233494511524151790129484649077469347792321364842487249100944395863566160358558413816182203168153400998380025687168195364360871400183162929725348890270949970551932765915403037635057597325831301560540072311495439123709011918325324422985457535620006786682608941311564039384768643789992305177025555151561524838469851190924431538166127000857152974646918454223940805231187070070690945453123172487471075613475138112717019112492717897095178006064721484644721255943205784787426790602870564421453717611842931536519828681871108856713469224475001229374536971637995509855620815210152030966489007134845029878645693008821951873845470038897045518588313539388945187424461370459684989578211062807766723919801436456729701514126453276670218777301088466851774414756522291714069923567115269385644068374836505556721532515751970641980630470634678249946513311143383799829269908719021107248123270344816808337540662316745647241522230894285081273482278784212150256164269551951526843457054426768032570015001810374598596278865260255172661058917901125373504514019411640407499601121947413945279054905352204234708370637980561236645132053027481105049304364550100744710146397080125740833932296531821461464373320937370107738796100168046101422180189773972785126886571481960610133087065483918561654866646025469893304419159351476998916343979691972256032708340698400422031454653386927414927774175339313379465585998363097176668256583330373925825549170281275960428893395239600199231130401339791569434780951590651314732723200336028741685435375291217924393775022327623852283460105270625362431587346402264597409809266534577688412747108447790552842372061426023383122883530570721335293282309923954932193423950611843298902849418936519934226117444330926928800851544180842306038324402059573178588734030917161161035640124255328575253934399585476535953237801833650287743293279486503193757382916163454885786206446083562567046752906664626065006450004927403008509989398351370345981710498948623696230826258558042055841508201035433604777749803043858291780490409621896997001840524593407436317504739923224309023255855429539119194948776937248471942885899977594274627599808364636777131249063289561528664781163076063712280948592335883432920394214680742610088412566212298252761499726906926787802936396978792143831646441496264214128285086369379054683003171334787349351096604255695627367046519380210031637643857639004828029057609813337286246658781588986595347041924850117538091796828441050124783997843082891813185161718848818616811441659022340792583023834293354450845593075378050023742967143349929484971595937546665300552530759847693313162173069591903347839927346576518718375736965994768530124266641158476277243984847953355141297054756277731566808397244763261573467644944937947642575937416011239915974032917293654056802821599047830364062269172781428132128788089268224242831331013952973741538705455891007255739132251078111028297693635326714474185646911116860350133492674814923119934804197416067077948495252220550729537270280838171989180451452084554359045928591940889163114079816328852359628363608402823127738365907588663969542726129478935225485188271068207664954447101374680591371868134795365932646063616189798554616485926852108187011306762714629872259359807641558475360023517697476407188058403333322869943484817958142999202677491930105220730821335762284172619712347494778304737930235556298519284354761847387246203016750688452385399440794174678138486782974730321725942431469545185953975080085619577621501106950718202821317023603951483897268676173003950138886342158724414889289904486175393201151320720104787114698593317921153191567784475248504273731599019296679478379072513385447109770504185038559914869496182982749904898253472568539208155332762835416919849747908123073331147210347619300636682877516153571175824623396509576855872003668186695897698065824542317791952104477692242373260974165879121201790699109562857898481497093342401534925684286829884154640587726608150378938970571639003042066059074391642893948493174941513237326878586754764013936622323628973100941452048178287281757871612861538548269115107971839297215264109344085426809155738250323850130478947649454154269868242963757499807507455854918218381597473451761358337057814163071925550073681576695178781876424080639388105622786825091136888125606339871494898448812023983330837971577204542999796344877351775380923866764851936670925421117017179453303167023272341345414041775276877574567471413654529873753975812258017117155813639029357169597817556960936902031389461094352810017358878439232280152750360009805476366219822186747310075875198295836228756285994286337777275554261946663389751798849015887990869094905364324460895395793017608015618475860807943971187563228486588638702882489198359725913709648060679900048376817885521895535398191517600028969960260354304896892873918482381209983705973123186126492894718737839931005694219372090761567234455279797471221770262604500017465792979432034471460288939397172538217328243019366179524724716547926677119933831701908606514126800016141754652288017589933219870301983487551645998945804109251859920763354006117776238098399122974214654687352122303882495636645059037495847428233562514542439510395327689569404391217542015642023926166350330981599053756330253549077593134668382776807714898561654781020661240863478567919734025387757772584415558322274701280216229046354048048990692697246459152878320960080121190786794080397790902372600486151735466172976364273616679303209360088296373455147801128637829989808437352162328500855847364594339534701929136207624434252762425688716351980408106936740121069277882948369818601556835494741748784347499692401316655260348105091020240127558731552102351435557542092838491463718650656793412025709057796120379885277629108635548344510979974158214414262878204142543472474457737507333553429452028330532485946810304824831336607990385537370733776922958622336473447102657615374177383524384565456497720469778741433112482091323094998886964261501762499040984329525792292797054820201595942968736332444955932173266373041448280625555540552549384493118385169685529922686657242471824855478504592101779389288021843663577795294179651619908097371521464847845150006664164823351207593163513631009025834592306455454901889102945226999139594570021026040307744254536005325495411170883133316558892034819583390911803257640568180322927447587703751389204134071338638971401743758903639813607849206996852047722174414002704530904911109859032248666993166420316828108036631820477480173574624818698339946327023961162509182689731047082708094973695417435268608345117235485012920230866065582057374311381872134178279960102467770337868752826141840283942985738991497301771515210238976437728580686578911039285694620871270226640238649896944002054724431364729054467027202861236939144192192034531974330210072305733213704564833760587937234947623553563201568747196822429014663229929070259648057933976589730535582380818493628704701853173138656815009507524145857747154037797839473244439387589060331952613716720365933206288779130987547187642280235521435554326663812159039013530835129646957009444101703482078338008460485300060055144142575435810845066360729299011592444466205238506048651867033397200136749954493146654359886487495931176472771835239374158322850273706033124801595190988404850685239691471338705261706394690037134458001965864595920930521727956180398418090679232930654363113890459840719566896620974423241020356560880873141431356622402278436760524221339589380823749441738527340402031240501974419622867166439575088569250382533881856548135085628769724037291903816330980776744178696233993360615426253615237535024490990060254047083653423225985050198706861347600980343892978299973772630106907289443420282252757764496916295553371367724431315811096989326240460069736577085709145777454890116857042872058255491621918346891705709156764547354678669013472378334366298992415750229858338729458550460301492775161281634874470701355966246603331344826436785342859641142046372941511266571261169974000215692185475325090972248288224258567716781509501847782051668706831521410802547266245818404896060997152241686620934908595354915945567875841558433123676289950786729631166748185611540376294267306639282688057780988170063164260911370986939300541784343714000586774579196569951720520237104349473284419626208806660910877570376723652760634983636031125370801943995032104914463812300001856353496833954535127265502128615677279172076549706683864496370407464683306151714628804453475962188887551675063231201388521721032293439460458157351635097752932023799207060055317149449401231358677198156128179968193002046114178561351743145295494424897945162044787595085261527476755567205159075210814752384689689819345088449150425011449522345187413125929561033018196630159052822696854619486853486437194798548119474151245558300952001865547976123436524755541269662964388184396237987604617645790612910100527280326081117081719232879709513320935568397002249653443171706532210622191921829778847148531938230127458738930897355546925687229745547464682648144336153122911585354735456216385020555583895443345960553023052579880347295957140045006763917024752818642282939868427347671431919048123696579246421861549427785555291664598918263192062521277930360643549626026729495597154987425460494412213392967797776271518733176067752133838499799995746868882608485562248970927692984261400387791929331408049614235392959748646872302731992773824946065723097900595480147215706090857656590671075007453244172956123107681114258126887789974767988743881023526105486731045451966621642206572166675252511853132160809156350297595695704534587753995526387509227413716720022129080011584307120023625060731011059061005204354537017939464383073658747471985210233061172364372439814114857781923325426050889416490925554975927810146713949412467273628804348453927288849321493579778372837142117656926967725061647647351633376564203137962983467554327124916960637407188060620052466920228132058895848910330357284189440426962751694915967726264583773311111271972309274943362848029709701622966910587450786606919904199759026956070927146177760879468604461252657058905040168203759226065328748431691450635501643748750849199787791042519892801442456131081288490351848385219018645350540222210879273857562816378985109876230626834776205080968116278205753714852931105683728741130191486333505524729854482966276290196009054425284858887741073590007085005344726021509009859720307235169589531246003436510617897437287345529431897496863500316772817406360026054215040195493422839560340812342846359581437394041033805088538568781022783800809049687454035912899303773822376251985980290846699811500103650280265599193048479945556945606480756990258074656662687260149708092554156897242506940355425876184850577518389967246188971916965050982478709861768968962585939573403766842877684526557826095316655822425858472348472966543527366311348511591502791625285490480573679730386209811654119607707827901497098215862340594273085566731288258501619839745267720802974910056402928988983953359579901770208506664605329757810674509697020248936838021415781608349274577582646725401407934561424284763054926777049499348336708661541668809138199544937161384639046538144755275869626845757846335512382657845263659747149172071867879538901051203516705506192657904408398782885911064938233376834008930236894515443769364248169815332305772590297354569125712133582925166136464993769988243750959327549652122691766777473035666006609110406981428694755052259583728147865570209824404047423382582492315406429988720344897959595675900258391163287793992528184497353408858599860232036322241410216461988990063227321692871432579768355711050975937814855402310313741611539025824218959665102548992431944718460063243699803442303579840460955888382202148052789591137535042214795373583184393161107585401865402600124793810166231974323628794406313717197794749194664969902592793520033625705925245213662943296792781979446084096068151216658356207343445314922180513409662989150871501389115742808308575386650965650873988857888662743705601014238098877244145513462388525785767281247542613695920837420849787146870706363752002320314937998837792337739132122358878629095061239305960659027863084292165181043537679748225250734635318048199192975486592066538149515996957519468851346785646030604541181732152605536646065399200610542847360223435480363965054698020730393214189143008879407239582351001926566032728803849019613934455377209549216904307868967528676986916443518998690266628709298975521184343290686385293552806141655050798654922169701579493802070803505669655561204842928323429819552727217549717025802496510020580537698269654745562403230307610553639701178488467893285400698846742559674847647489877170622554506286422249884885855764110097489092944559170073077029740640472558404667264142172251947371726542195238750384797494610897805814232408048544313808496079266099705842392359567384334238369208919198569440054318445967398781535966348780324051583401324892703029118703526971066371042863458936537738772731366738538770002302835421377260899819165981958630518888076787755258361142575642002512523541595980020359968867337362324488019492962776385424553073736721695415904930721655924010952144628049354352532630248809791201267044427353019896089952396822053738874338605083041228277014099200937364152979307579410000725799443175847041982557738072979152661183124803993805988656742211312845237777638868835501998509478205367669297236118835108606528964215040562156689571090497147201476382086816587788678329851898735814937417216717264690167277406106663712115003064355197293446404908490732785963031675055518857434973617607506326999620963804993895292541091108198819253378421811416395798112125163971280930066969796815518198305165217127077992042192061268018229924723519592873508953382055594002406696744232045057292349552908423237346835463980202534633341484712035834445382475295052920771370563581851666976444755082228590940788590785657419068578458224550985144699938692653472782480628834999045606745322176980521553738644475461028494582298665939416258870738519625725035060158800275980274418881080219363357805528475245155355354979560485161800246942822333750946144472880747112702921304176501390252804575508681586900033863873098020130747055604542104628538236547500281300875142895754492254979309246841028022416166220400833555168626498529468204120298726913707229713541317933217761868535635538711834695069648018588437762524123277611903748173201682088119572894446840979458010456619845929533505125504335562280619670929676328393793903712897093657343732424858595576153019120361685458478097706670736179542701926306344759995499546065809140750068942848406303980362189104768192522876038792895709111915847957683639399282437884150895068488933637259462544678025808080624596592343594634732391315815719533103667675568970983355566148556662248491716186825637937539303925535820959396879536447757552914380076645882293017773393658573509287521287595577792745919664512439123195748523757811563824143773703628534678700998603680429443906965405020723825362016137585884243730923656697093102116574746579705259853767292466424485110367872071630043432312016211607820485983165242272979286287478205303644067546878960627844049976583877864258227329320942501272746624394280881400014084798865387672492933728921843608774976473212539122491674135470288276320984842506248878754708448823391501123636845821745240347989446790653761423665130240727507211797412273146280176937830113116642040255165136164510815253145310674774599564113263610986571504910520139593001871826989461273317042742163536956338095800524171197607044595445462111820942373786626110906933116657591136552524289581703318083416139639359857231089872408510341313271040261681573273394046236338381193513620862921685749837534932404198334298436255032904032962291433616934178433870658543492515250545587238987756957083622266448421394053529941616039571633980743284811372608646187718184625460182622724505525235296992461592922308805551310652763281488548218848587819104351911019732412757769451810591930333709201015188800641093631428397028562742098044482143433140833490767724214147726837353969282592952751246657769349934432839174909321094882933492127952904367590859495940140552223326812677468575614685384183248379745202430766890650603411139558351770007035166266052940148680976927537204758497628538970677240512640844883487787227098302166038603697379731638522328542422103688138175414106341852534318949736678605809034453676278288964038517172857688012008712698994724061977345854527772170861873030160944833224949309619138453893333975963572043049296988202672848277150171791672621263236122344508133732881949571970714275048980578087448978758833965707299011067662149154820942856867048825645405953377697275592396904932330536901736309883536702223608867443790987246336539805559505029386212102869198398923805620605483514234971855317860234004699586248354298646611320286661096013506875595228143919802769509063712827369700155543343636435970125198570817501878017803907656375553078301409031478598698057298348098648454012604093624481332548818636970468440929557550929296374559257170910355481179124032858209301217345414543561177135638745850164598620308547334132418549780331643791507992641550179414449577625788973968550218819295212280736684130359309238510877332449595575041714420739911497409693623532985902149314588378947868579599758549281614542447289557117370127645505343620638833573188752925364906507284363345569378547726585118146781318508737675357581600747654611672500139039261206536735559548162874129957283867270852850768507684594403931665816230947175902612411416037190470307615947573294942249128951008103822573285873421866631905318017246258906275515544634070188231329461162063493526002886277926012093202673808006552912995338357304812069323101733544900628933352653157564580484400121078625881534954630355436252134275075721179923354604859174467954071314214735622358208222228622700872466443584515827062585392980228588125102399629602042919469674929984893200841407323203129692990267563906904298027968803181552382656801944397464798722384768787891978561954277045734156110154574290095625990195725441650702738375399971201771317590264319807868835441541594495603181310740015172453043191487037726375388634845636397615551053212941779013000545616313848433242062321212776896278838736881905863102439492557844921359363579467754441802276003528438295211652891663212781464614379075866940411175642456323744106036566785541639301141139408746744464966968387628870636842561393755213252531275632673161747485531114248639663436741886204355405344374317967596691070985004306406397937967246765786158032101340477158205599608809799688275314969079804214127165526214808630536349681214699224631754633765798729863813751970821979024907728032461156182255097403845655934209469764334869228712295685558343690612024220614661481046248962177884019246474142861326218653872737262254042260052228661848161310456730474253948355956048254710691721428280704773882986257044596929957366670586018080310738893069603455482467445052711496078713450846593216192108480858526395258521323580032580879745028530927221175544705718782661441968249799132900475814017294596202614856764401674967415412052652983376278568645635953784798600967668452222416973447809104047075971724622522080571472031096506752034052789040947071474430065233578011147295760860347964599294596065883678914680425055543962590455109614656997468229192386398310415633211359619141513397053763045495868428535970233085253862451082394032868735622222950296913464765320840929400221163816846474480675869372853264805381620688822389669711675903075027775836229918211740552755970043220547840764637502916833212323582386339155177221341756731286219218214122513464292105103090946190942343701016195610946673797315077130979456474152169770493466173450449580260218267435929888532203612011365839576089561517471244209084750183395711504287464901846969170766910703422789513510302959428071597917797662959499878474410596734966176562644685466276815868034231915499820822352324635106062470784006330984726505818888128878804822109570306191761938858544261278342294993994467075527513970637933735075696270763062614229896108598964130897983009582427124155872814737210244298865843993544089744775312042421211706897387738082788970959231276858196933391863169333864989490486267681494205989703316478890209202960306693866257047380554721038956993542870842462586704515260586558905436062299049018127909021951892896650000032375052907797221895474694916945567034838600186637740839131642265922850838881058496128117707935758498690092915135367096810079513910028743815898713449148413763881047470776407328956959633303174242267831587449016054491133149427390076593201066648914670936344384532688989575292953917653873062287865010914479180238999065343921664121378803388820580419906156526765029392123887172742802412218261133254637147688563262669198688141113168223355983535625089912997935418144675688480146068807357592496302496266251119375600220432952820777359910552997736659374077514755701390848821293545214524196672653762132872541353790452199385139023710578559823924094691691942383340312332160326682979594872418507554318969957183688328780949218805114515271226496244248981240464343296626666595064476783651836677778255578438260497392293515819216255893985830379566095500052522883704351059962187310975608361953070080279670378646642919705692131421383709065745083915516820745274317076810342140274999528706319417347027162623890742693127679629009064010801338491584640341538638866496265867379490536143642073960235343752517548136917875651438252606774044013785150049344092037428081260586314136325811439682259742463596385786553534008155311670381759380813422829419052067503641139033519766017495162831569523386400160582508776925976114055068928350251382035458653102708560029029696751820187422559812755905138409296265259515163901308231388495491661275054687603936060826916989457735162484106880908554339527068504894736438673716510502658490169006535526073543126627338445371719261448707720156721781884604214561165986994866257845334589687837876594010448621701933674658916125780734499503636909453547211611205941641040599036465262208717575554517129296052359708000419003178681946665886974237181358630479871219426292103663620936315993016343863442107262118919662224842970646449874525052554831717995988827718329035120711519278279318672227495037065245386519203964182709087802772689535908297713505747815081628049846658262994355201426707105360343800932610212401533015960673086256197837762382561060694094745334664650895886427308781623176047364207868174271952890090866515502625736184481102517738748326254000931773924458999237764230376988156709990921405288310309566037980845330444335698333096676496669926638473658110891500875176320774986213220157075806052862594601589743294248610789909103049346965704393880278340855711637386382251351407387087607724090474501632299954768656822343689165090728936283381015287456246057026303486678622545659497997482374306939819674011456508117678557123155900347943673498495239121728416280247859395708665193425612479819636456002609891600360141912161319373734780903392805715529342982754558221494681367026945950033053452238237308429667703806852967947979146943950081070765960967800311444984025505994190158754245337310296657887226768068443292906606514809790642328100093729078230306610600493630234450766952366323382759900008374629439827656404777791834348499718169877232881654080055123076535448687709815550863483609650009341608181335063725108953851763238020472777533148668159703165744297664190109690027293671779588677725589009975299770959184101988301002369516561374981075713121575959575363903491338466735760997875118094864659510069962020862499606568211011588833260453896126257991401795763493333694680274933908699605136879043172649518126359760060316891043026863478213417246087154029227327239310573134947628952674907829890045369705176080537769561006863311431850681732157106744020989541902920661536907410304790840308445112471685862074834381809800596274948538022882784292805230000165844339170107245685524602087761175974407238101017785651983045998570013290239995654888409229437954744901711221704650257603777874776271955768220063723662618433785472856885464604030205004871547602857277145974100200106905509589079540230025015347569050616762409702621036500418769157938534907099193511135316450357798310077751538830045599150800323869898764059494813952650013413098196394307946380481136640099398504633989911700160049351851632665404076474006206593803424577330773052412509961420118005371626223381665552602700995117204593539336288807301776456667073747133157063474166513834675441387472149436722050657856064684978304957716228259237921795365605958381227064498165112670660372746414898831967838021226351869828151356800115594348624717610003566829781871449190625027244215939851488524087624012611307103722171589205705733032946709534550698146501825006607123196786018172591125604893007652437616395211907069580305213812476869634360348394960499137465891935922317899947335585039096802734081345013683244193370762904192532984709171737916555743087890326734433079209247615234412974585134869800311205967458912902071051516092937633593672223782510469251868221181489228877594149319419089347063470021852859639565704863548829262074775997228277587217901563690792473411149438350856104238027550776033008440135981351522044945926846438767343289102651220991994858253527913817007772910376382446845204186049453222681878765946256756871920201723640847876494910486294717779835116162453045392096298255623166298940547772381360809974265767741228396290278462851320715481949039606578296030608940810953498069130576515283416189859554901416101726532239656821510009802529376696953862141063109174181804463290305477702008990701555544035895273437683917789932602305997014512869054720273137970989794647089597292675147502375049243092950153128461466283004370962669289421560436995304854921344828108356606738791199010447186080103095804139468069214568898472574329135423459912973008393439651842177411302578265522931130347801837221524081295620493228967647026784794362641112969438589158225965672897816728863623078035107580572667736927084137158234595678367759510009819238776423439097559252516068107029759691256347868578362880334284827267401324862358428786650872318174665623830753740729586077336779012254353371172810681719005320369445289858475544258339212617048367535294469127938285736644430448938584037954798991578183869664076113848564111885386735571774924645838782601082127800319462235662382462870388734818726731969119867623210690850127756771935016872960643625237376065558080687677523379576455942995464939919113970480048379282551635864204948270055508861156335989882158026075950293787552776175201222883077210405527207133565018023263043715576628008613866866000308541886062624724351404567569448393931872980204231860651129954945197908569773031069182071661407837199348833577659223185581567920066423156454048853989482288463109320331255419613783633896895763062751810635181167241646909089498402476385205422665551720178011172309573909571952409557292080266063923009595274310357142148466597861066786861741296728505801827085234204795559298851168445293410674131393111943487290474971424425275010349800459115531143387084912160706714584069912570902767059404830102141397564192108959621543204786473522479609466177964402030149155491532492519578757457184284607838145304998874439975374204666213186607928691349666113862812733123900946318642148003467417276904660831278427220896020038580305874694040298211084558216314066704497358569948007162832265970511558911074554681018379188074179308762767156147382018555672587672254787148327705240943277768663328804726254893011004805107895453181344309852543204940788042423887997674250562246042047409357640485306972590090797491160732196707443225411258213031172173634818588858260799628205347986084479582282942748713778100131419976016850495345434765171175900885767842107337619509765563983836994696839871923951881935054521339406420071940631966690768406324786772627395163080776256715702118727976542905435053084329598543314172807273481197173299625874604051581639889493656196903079117036236954359141866766563826075620248507119805908456447882294949251794600851015222517762316726373051581128951435075037338071629747814083823361412032492771522626806605326625501790377498764208089488418352252588782735925032807226109085652297199311500668580141863079948254614028885269025412324519378066900820721435531472149791223408182476665133804720228094225918687900439893314545936292083447317673238454192151167064694181305380194623324804271615217287991827447729724340151220290309213704005129553733195020193843220708084291379034597605344861157051923615560160716754318585454712835945509253511838794203026612823986961332703402414163625592477691524055343816475067450800667878620646441060250357352264831478282537221975145599853707552157209779713088846535572769332399642039529668892776264782876786494393017901317538915281197350552225720745752734909530133215879841412985751318751113231322197284887958847552734598988962678927471137270376004968731862388683081995235916840220763436277575135037354273706013138873956839967947363350121449474465533062808023055803334012391543105040459131457812008879524891431400835025465403000967912940771290382548138107292267818840834239226981891927781472993550752383995533664673367479267675543154820936420681730132901797938520994764279998341000407075199951968296609083353013115149563349734959823902626296087109727210756581948573696546181330971111133305804662858261150984317394260583112348851495549238623987224270863694197215117886533891991123291812523938122581081219458186855825150484105511586312473021247780877573696913535706683787257747191784089503028145094995470840624715277279989411725867800465249744929337694236973553636677623729600623278371873349790086499120695794121051013902797689919485386404683285692353338028491937447599859234943749611839115747201729428950208747938233290826095176834336680405061533699490222912174175222307365969237623970624040920828765219294191432924156474430305405334207596097655134060248463064579855699319048254647295510995403080312237031450437812971840748427592925522605636489040477372986475306033216932317628119305938367249898848699231810773633896261063291085782973967709506986037607663538507803897145351803754031412597633960873655383294942794499146431177145524767871876614815007769994116611385084266878297108529444269898344200731078734833294384178167565060706775650879819925248134845153805495993434164935244029362386894405423983146100309862493893163694439124203171113417807663013176201036543687103776239406403501194503642285575824136649307522583098948859117630454560588714480772734667126779154930241338278642239685080169546559152496606224807228755717810964593156741374135840770162518441469578841134344416199916380348844200360897789977739141264725388284267878657220323188356973880569344088051598027020631314778728610801469371331752170167097755210371216614864455832183102881331406837343935461061705862725857974589257197245284457037943263928570190598705608028720153404420455640957094630351211962470524952919104906387866802330963708595325724359262386004891734561826910249691369821378968207780736881849779113002683050546701820272993062076422964714218324404255624437180081021109228014732354660624730033593001860600600879539349626994985161950464965067736504304651454375250963413912156953830020730470474696344271501523604230742583381020625642838885263660036253037131301960026247840133034939624884923879928426159410838924968537012362760449660579645032107033917873444634006009105921460680052887591884688546543051635543230736008026974922197601278562071833795380417888281422521025962740974849785038778000502918923295523315990223599421796795686534865258164784111411869501800731115098010403816709533992742159380862978144297653212915675710311746343900294470551212410927035602570824825322124015450947428628882507576007422850055784379710205924456483801031677923999175533068189092369410106287320298822890404664596935899158094608180211686727285373852394077648825553250392225009599804477035559871482147186777579938416267872616906208698497592896864261371825045529952534670390861188290142511984488396715207955606373640134649617843413167800878470694296237929881961489551843655216668506983705779253954540228386461993801982665513370048591033037070084990468005994659252737692486151336320528779816274661267278973408303357165080780989874700174410904092548033080057421101219957843540267623571486222413794410927035196184182423440496849444061680431356461595296104140985271490100115688847979622150981117957213765346665838467916375414782193969118457291107556507860487092401979476659985821207485705523571311928511204556326520473765951003420769915709121655749119922162082983944530605386899029147326895097034222088002436280893862521640251567329099523266553175664638436418458058741445272368790795038825937614892118952642918694876686607574151927765400456315285133955026953103194276462076110961346312418397812583659108299842624048696137001503534631276439186986160785119501096942987303806678786939072284165146436109995136859261514374785204995220842108257624877742262499626414207656418431815306460091508194060676247922341339323626440713845633670694923098497011504943721924097208000248615902320911700780847490586070273385753229572553699034349746168893948740642228519295486311461406679534447499544338563631820866215379697270065939229009729068888504012067695940905773020030593496152517848490684476074850031299381997791272994179892988514519616418229899946437415913059824387754772500629292417818778621472754191542651159347950328865883933565055008362461073684397723763713002309185233249378289756906574075502986665580212936198411976816121116629883533208005197580632334481614761310570366083317444353457413921619066435722857796494192408683648403123263182092334642666297231554127470687562164930703416581439597180578077203824142783111131342111850396033769975925409830665328130052945326369401940919961179212229344843920860983741976118211800161894763345426118416047887816611892664564751451055025012664065806831148377086337760673124944676614774702056219876359805090544729057368782350721139174528302829445390596885481678755358951269082165176741945533533805492123512809717464213145735095215862658184643004334404928528172416430824526879845020148444679967715618808704629482454472357034249664532864608473143692716778183111478335685081709372976757687066422455259714671154060426578869569192674486910416659386663751485512820080930804858101393030426516295083499115271736059378158495422815307422619927994451502257498914613596748449916611652641070696480412861573818727381678060009349435693133064616058329622860815949564368483503128114626881443502115240336182146129972107319257888039025484103232783926698505694627553207486042222615435412939983955385343447047431677656956148319244281005288864653703348327142066414192306381490723641656786328505812091426871645384563040323711944317001094859767319608776810935407940751423105767545927620055062279826367331813844002852814710661898547956328980158336645941177705436896248998632348268414262407410620518469078894722191247344770604438172566303414815135955881678419722075111188546222645889242743134050811505160105568894872708989885312947112875280950498392964196834570935592453684893986284069717129711157449754944232966716094965976128939009272444565467779904919790358104071194735995876580582967928049226908844333204022773254052643443882292865439676592323417478250920209199043082288701056020050183191677201811747208906431511011369175926231132884619736917813236648783816850091340386697140427659554752133536129547012840698879355516353274729585616006882513310648480913424058389280364239541722589638371625798204945720630020344737755663057554023042619225030745090469499146522527407083868177726514036193414862169889102183077192281131361252702988673255047553857674980728617029545871833615273419999011326427123194134167403185773381314421176997526682750177965455239581272607501545258832256613806470970282201789776780043679294923172749180599316164663063620588028427462875790141897196802122793766124941684395917174463097609317558274403078586065831532153295934830016870683628091033290416227827437530157736224965073612440363664316195478438343063541448589528159861530787005131025601565195679202385908150159587720706348587023123399125148030174676760402860885139832012821922228597434084301014293849743202876804500451978355171318613981244406922156000654129763249080563719739582535356570216290035593320016056952317022268511977006887332599179791680211243644495881907547245650951954519646783255449792157095935551536068557467537780502196613497149378710620059277826101871707364008628503691829915944797356101219941596383093550638581252931017358714936082478969125582212705528084268872081557641658964868073590431511558902871646243937615394810684849698685676820884139200351271424171821421720478632003743421583790285994415045856875771005874114193623558461057959982797120281207910836652893429533464272450348395882456631663296755369837693974145298355754016070577621417684951896372415850042635321529487829367159178965092546634355728672356569381056896080317324589539663722100106217680452427646447999465892947920300862901234902482430047246410617250770268911524542050805686779747607515064390728095759105483771500174817654942930249006588423240084860870315617483883642027927291645904249852090155554312585730209114331083875464048879039872584017967484699342760450675852206975691194913486872353964024373606726347029954213142362019116977345631967773684987446316970774045373090285745730030540196008334526775947195241094498559526930178116161952661367877365993115281406227354813645923004893939059050799247973570657543765141757958929560853956560733654713421138376081832380156559099608249687358945979557500195494611702311228610747531989845618981886900783775179260084814316343140352027226141883301202592031045296299298542567151106635352523730665787532036732812485133196325441981644803558217181556500327046637959186237530688223761071698924473068903526610771718800566928914978272888507651217301362943413985855118917193078601612683201471117987795911674300745511618281069014044302679830770715202295521256433894359183338364397019519514815420193609312046941940729373440165807878208517681957577671354189144725876109803515423199910651720973255492998675853724631679256564030425219064277350587553045531946192680366414187481013101842022863326283604785978723836746237889045924453633792967134216970931587883279836522944280843624122600508958212279087003870736628910026349136659943465153307572493231255438297936835324328603155899379267338847468247247195257460698534199157240612180351143005485396758311323869439736997783198281085318250918471900028334080337420662716293017155426533792707607303042913878572381379967451769488032940802740389376547891659317254721166231251826169737249818311772368045731962555400479012161367593734350907876190341656496366729950988314308828230938112789871676956644868723679607453320121643034359259423075468894630327231387472047152203029285070378028022439519902340309667606524332521966380890377112633259750980079102942739746738951520940902898046120849428894404992726419315563977452327938380994149113538656328571236088813324075612162269113212470904657695777187219811341168070003042135096478875252976617419368167857352642892724768789917363265748578790401820365365896710998583106679351773815045553088066324935090603071841358255885332977743889445085745685349727564701688285822339764346199059397182029638375151478931734297999103075988236301640817515950429287072024838824613687121278902792991883327922516758525103908187552533425564473341424446905698160974965743961542406658691147845651629077285761727861907932881542214328647958094767763708278327232938515858092427512197986296937772481271303579561605932530782430306681248262880994794497969777415193971039097796530971947022886475248581696468999357262313678518047776352665324933224430347250865659277779300816508878926516504140834803255456038198560179889721737072887645017983979247098644796877532405171323855955908155976152401528698493261869894558626635266481856188884185766530535031503873583042615794149746435530635126685692972340480964827452956699984467491718917705897514033198354606998793997122506130802968401678000584311612705442930859469993256076656383433604071990278286768070882666884656315112470499313663033501760766228174134918711195984046618725262169127670774504859682483763290876119945887800811182568376074066794824407285735027685113216268641661757694177795582529710571159224535609465008098791581801699777360189137857775346094242108464422713339047302585099707256907796736868778916829137608017923429052989457129624265792836024131527234461146444189129982463300081444288768873187168648122969939986680574451333776738869868423555216512529911818443293275284904302318922979004026011375399719399204962898263847521969414846735249540673516414799051782348618892842342168906320993508460925156905040762270955660481833667530111718847419329909335178622730921280412288802248691110904038423326254231079813411921321702597370783583152918567080777850933273253651107368647418209770606274486672429422975890071503642745346597190690407484193164024718502123936491333862184564046802848068964908002175188453092036769554789905146525354245551947690284294938340978153870665757490028719352245121695206459291725446621948716508275876566053191289830664444433723499733349734172820753909743168343339428517073336377101267521566274406286632814024957735011166295683552838402755093303877330032826025048716880573584190823202256358462203550060044838570393706260388345415660353456257523022531285607542197039445283888844303686540793510493218287149392270962884958920164212742766445051484690863101168517829286184667262508220450238109490517757741759266177709737893328722817820342913009677998311733112414622958588954663348111135026485403300956363204267266969262946454679318835504838202379735812388483026499547589971346525385083229437441068522383590119480015613059159315969312090574035424935005728791840759862799365270599726017620398515245401321016859368451083669087695638797784424802607057051469679794301241635989736789086698215933269169585715180601100035192120761681406546444423846174044881272352947857094477984079893434310668044303416060478331071647541563461245529766932208803849523075944553210967942948596452082808565235503088962460578569467958635060076540459247356153729350807680021695193761686616644332868292170788721537077798627593479457160912575876067886578582373525264414505440870566407197533556286513627069571151951305749631445183598642515675333538456732700972718796713035574358927824386011007910401002347067324839747318073952268228003009342604609243785130996729618328441284525877366767558417908400078204286185800820818115383619310863366708213843988232549739871167418733195255531551561485996922922383446220392832216931376395426937529220333757544684538795728065383603841456284687763534008038478170918274599429078190524437753418423494919877189065324577088919738302156561192868047211296900780359407925562730022671039802646845306213394519714211691130539300379458149747657060115991089987903920619920465661054346183878101837952102634142666162279170236473484081214135949907953566300318556449538336986763702534122261204666277042995711664804980791104912321569673476450490849014887937165749000503793029927134283996093377935579911109403528758556359147111803799880688712817101043869233704197687837302494114188796446390881874765200786804518774344782792915006148533806882354369279684340908191876118389689913270891978553373818503746048525017752098940735522734502346811835770164974402018403514992990182639492175600745387771602808214275849037109108198839592024036768274391346253888540730923317964478568227568777886791839030739161461166259787306055632096019639005376547390171652724506863373406542621204601661887993552609583198521338320407380134575696947252425296519321677256061293740793691427398920326374418367207779396325171486581449330296512248198250940008410295032834893665578705064179727946560062437162089524015616850143767718769757163936170290238756931876985127456338616642326312923886504535112425550346774701465428817415874702414823100500094216439242127100325458348501889860375478422451881092067060812335538318214285650003321675070539992798739997704624597458995945461464235161156003251153667026845108079877810717468899703678449516309121666111708316396703674561449212079472593341048577008936985074986232933033782008410899175821005980302429012346691858347986760688292493874319727567122446626942759923639823858297690109054714827526174571223778306394686050607062602854978414806180730745088187606316774359080371870072924609738602239058728622351695607950874364703092150590545402432509142651948989314237379052884035385484699221773869267384358513760783512638351848125423157893488236905139765456831653630844659126042638966330824142141791200076763772459871053660649272496164915293541325354000320518011236973005461675103397796224531071707427521855905382133681556176642197743710627332142822592443669049204577557882395493656394071700217031801492735859437366220745498546695989844463977481794536714429725609901414644409852918996692548949833862864253226360221214348264762586467327674662565728078670959677668560953113286645080669982297036977439165477791107656367951789251384973597797650900964490916356542570894286952035358399200372828019589741096327790639583433353691516020059449809925411746835824651451406552230688977905321676072843634501260177837599436726599361856369228995434456848214131066478685703363250421080343536326326967250441198520740682867032820018004294589801131046819093621533233272899224324446890179150377713063654097855901499107027851901620431175817317909025635465414106342919189182988383679397693129711765506265351546055520819714077444269876090814438822224581016785956668499364870853731223181242992387298901164236997285914358897307418497893987601888000703755868816563141781238892748745630187859068654551356509636901563335881508024417371078440135802989375097111025000041284259791595875691649369669551280816970333448277228831396331080277939520123272218450450790062054824241328069874256829423503601982331417688095736832571409509821173501956294923209034134856565349803299716150073424171258791938166564055903613915091742036009294286455893779654197688087259889055365385906450107933280208963102031833167602851540743522536239865328246522092305901330898977400971091634886089565980417857849066419994988295803134210758896673616164724873643807024474256982709349390066149331299327274512078671756605980648866865299961182356068411858101731151312667651966917715380478088021932501441126700687181818346341868229698875032652451135548943985551568387348212141575307274168701760858643899330797655182636527213659943255393413520388066054410475804226881510516221116560813930123019770703292718663803228902051825490276051968292726983662666634525252319208988719796656862793928987557143446237734661423051952768209830669748058164138026767581833488543739465742218575768953702239459634283275020402672495353299382481597187638083253056384054990781576919643098678014544602945119150206764830468453640654637140377142659941731184190729890987613976159686709714598707453517914955886710961828768727261032939317471745798285570839336309782779333920300993720065126158144833050437585776271823763226753536931405375295807543925084345466073860083386566012683792750984167668732008248868824643774803586237582813446020030182835010481144231599655127223108316745371199753034031073657774001452635061018516183758983713310957725586598389577460405039121871671018687082087981517481009731508664698397781760388783616861988664011513041658331680032191952938856427298987095623690679122295479135828569017069373536638551242557339640017389353589168591983597284986035074335723032880556561069690958130792952663826473570525111754242680664595563050659748360838479371491618839111062496459774525471473256928992286898248668068659497983317303566474279353777621367991761885254133729341083649660865996740404287383291566335805279821633809976881862254578425351076804749767333904068512123825517732012064308412982739125710181238624663804229403063913845070334244784058399281443475851702220220998524559759339312995198432523234977204646002309794200099726423964840254989934808888550787284441828095914315249168554308882723824708394686970123667190722906075967035637005829801364401039918388837377657480115946396649064080238992692080031082970137750428985003866208542043826890789415580547480838486533490702463602603529261512473783728055261174549547500639631067256724611571462021123879167001771163356678056142470499668905136159943835875274715235703949439551655962266763677165720910204096061556589904835228986210267432543690783787735067059805557547466737639379131979716987346147443598557629862368866281432705326637164074712458811738075615373297923531106081039664253670737427412267458312940568840336396289881241365021977703190762459364175408159257678928584049105420621826230369223127039089396146830894533095819246757376149681032951683551852458730506049039298139828741909682486655974359407556911400963108107941697025471959692268414367365340345498979869565894507658543086296652718521281973812260226976912290475169676034734616518585595369855397257909566870186855709981383101528682114102277522380198288756575463664294801003077255483031151109320285347135691345951221430322299719532248223652909286278819736726068206815427643183316076969892114484118573806044235098200471777058726897690268404575603242586450260840851218394515560028354954667598095090086263873475339886023515987750613994375265375038376099282580414478660307655305712031096886719870334675713146508259799252137494409526510805572871458930163509035582901336886514283861023436918414412254533775110854298841560322899302097980978797141234255512766273017405876264892498403192015291455599799627604600341227677433028008602171714309135994941598042781296815913803960844635750926987792514093371340943603330486831410309400314213650603024362723188042609711040944706885851058716847325957105970904860494931498089219848543463592580870531534097168936987120524188344384638854985507931761734256338166031657532660250954859311000815028186543736987446567903649948504170157002926284667925557033873818019130429877168172668161645494638832704743777990375152806152010804073066539313926277607802792280935984634277428216825204596936507186886864272737733657270013524470219047517743737300861768413902339825742287983876140189840898133275599933871956140866306996826630490580638666619901334708400430406883121509180600695958524593917848777961728958951616614022397824476174332032857158347116602520686576922902580869319830763805059419331580591144133239242919493321968279014254353852260209613171004034054158228458221648994876748949960958830130898400450005108744649232024535832179142645062213121541157537607686157276314085314492236888783032747902719441441697865396529319163978966799383578080874013443436367915256598581549033466072720264150116041164133538797788557968411325381802007948607782144493063736744630409736932638151469433242662099805292521145678254120620484933670967157443162080473825530280379746279945823656335866342977329367723744376577269760639817677088760134900344143391328178562384125893782152272451104246461133563611105151661150613456576751237704737346040624302364182793137814890317208588647407528650766567793976192054255065683644143458291169469718996133825896595646428789123770481782774360227699299727374792740979998544035342262530622129397566324752675777320419902566170840305266762674029631226175981041604390655391602711487007486325051107149527266884651224770781359780448457090601257326168772449930237854700377017082415325451868863884021171076881499438497144247984099213245034568230554690667380352354331912863216461933541520389725509257119203068468155741180622857336977048426596364196740188667821304807152327748360154035902080656268838044099025566108429867189605634055021902163501786664356997849931647431277160391265135709369045258335475214852875122022092959034209679361029836791906608532913558558999368259484125957360458407935667664712437664968644183578984346855274035466959446190947956381449651032887266624495610503264834980716119329736944429339578035352936334930382351359610596144800366836103950978447121160643448967328820300972755795357558518507437419067168367647201636458865840152064655807577588081991414932059340364009134792455635118055420874091862999898211631799412100110099980676924008250330045933459548426502426130564240940913560499361353411134622492715642392923125024706942094515624761682291683922635207678832885370402042734612789027770602516894298331211267539127166549901629882844006119104715978124084735415376462077674059581824796058219097315839205254840912413750859336651213333681731869249101591647377807632326611286727154360605539019938744807497084385165638057558263687115282925491624384319041139361843821988089707928844193432712920799831334903480486119349154586035656798636261519321937677830559291208583821388441333468845493783053972461737785308697145749975637687064719102374234820132776995802359310434833048052432897872804322603202790061443197512319675268241805616616111124387482557576795840946461069123585397510259677649130417235047397139572072827219362614294628818394798518226247635217177168919998491208878770462736589288795609490671259739811662191916998382901302316533673956292286706216483713907946700472624440191341907186115132334683677196987577817464674837088716372341693984277845303417328548408541101640034745240928656914129092154100211615756609341849080116097691336529128676725801000756156132301257308194047964046332580619027185457479994866122536769610861802796253043598733920415449446852369129766965957810170741606104143866477893868445265249020395908902968418800987511944506668357956670047054917625224590930690977536194191909719766950903248615510232263473226762760249337375496357188508155405671317913987062380966407023458599749953869159663597462548352181142286283393389203283517793550496532491178753458033659833171525576391777944269721666468823799428271543689175239406285767728183202015624596329671068348989315317290897827711751470341085430584537987913746896214910373733230307820052465695309637542095333277446609465109344829003529956709993855217435413815257577384059418126919280520301679992769725856414189394297624166278663826132886906300885458915059402517384285903987142526424873299285517844371418979930562809548410296847715099614544718639826730569626012930447964510384334679571473679662798315062217975267282315160463448003473321627762879498830082033178393688810335996785869340724064857604422954907284142042485264456801560838950350506172115225355318565412011593328533116567064320343835680316956342145164370699012151478024096473888994254939911525862414305018049802301355295856582669106418330740068405542638174178484818699284434508424197490647709137383216939050876885026193753296790802492312672428489888513621801758102470150271712907253951419472825996270120485571263813692727152338921174174781727622936075649121719338684612068453813699696663929164391429992129701117041336767289600285341799276734569452295021147764171975954659121202834346532173860176772418378248492546701576350342457592263248846328915701554310486847644941068635882131721918433173406389448905165151873286083806699486609328314838579039018558961369672972577698849388230542442848616187696840098330656771333402819977000420891346555143430222050700488397565520588903494967756531990105670296267774407395332305515004637093494063845692116045608520426589153640368119949855029763076539264998956062968903349511494813634575455631166168044076895981854385516324055616325499339103791556186620476764502875913048165027471045780831314970221108019676167569358040289114575552179527489930816904828507270819678469210336820065732302343131717318386617219505834920531676996135174336131292331939049290163962088636118205141874450265155714303319793249679543378471455999216075585023924832102284301129260752107213835169169265624207029830168310866022635882801477405885041809612571459220931213898193431969003915993709814574721500714773017269071374408915670932737722725562212854645171135722439175752050161195615387352252242528953517570303216874779236763459685560464769652991200099218720589057473177624185868238367842275488033198745418441670244988569899701198551458159092463001659537948979977392622451569653919763623271607963168850528534129501728161236590545821147826365027826142030964080058804119265193839754177271482878637163987263635314830971612689948876861402319127449431727002323657959200263269884848191258280710340401816141499323602563458128007272972323826006021743126454403683514818713894670109132788877587298465455912210050905458575056463931320486126121843128407543725565533146402686220131098633894960944565791757761644613963548234995988281671108399939836446389781104339013292220536705881081681258340162237619101845411637702218531907297421074457908715139886702416109624181964111397148192728779880375739418033393010691809165436763861183565451130947398236552028198296326938976694489780565784089766023039259653633538681136509625916162959296492999020717278153154355894819226534886033132250703910951053578123848990699059950260072656299440970613497747753421749874147889620449895171927332293252320402714252995373531175997945447626069354471511560148213075917368981889745312618807745068500613074003411721923570488920713480956557837677728857925068496395375436764418861674316429867629564519288987921060688842761662359451420789840562822818447083014966606124072676926485323060048239836666274497269820891909026931746501604885977362977299780534201579251549119936831693847623570828784314632507155500369402673433902443648749237867051612437340699155447519605519842846942062171457443391845399278562160766204794172176976538822716306771173974259371926783755135332626951261165829630038521930206967837559197631067546675533560114917168433655818618335904755392779291763079185027978970200209607332338608748930408222977169870302087052016163283532917517115421245890192127638429615110423452610618732882481481820304467650403416263747152333395993135837870378170182411928074640767085020514811871933739183836343193198025925874740176005054690468895930730890459652076078001968144094455271146593166325332516524662637833450764924278124503159678512823165917825187191948996391442824684788172884165749467031002661233253213615228366423677831934062084272207189010781960193283257217437518799863890224877987812610583034396365571238625217018524785074892131794688889896488615981554362870416365107119242772594121580344344510258324073608407009681542651315299900389859284492544937242956593726442951731832106374137464895001107850462872351874939593051678814639052513899395566767982075180500732459435296225710660898161466839543462642199887871261774353564281935425528404539240402637161978228766630220747570184197089201355037620887756953369040330429686388007191480505626333779685869387272027555849464713721694899477832489261514950677320150222926433583947195437870434076881726927219574644208369220482917061006272612938708061021925606289090270827424279496589670494867788656027972283458972288167687026723349124038174118839346960403213755814470676991682503181405063827071159215726597473021422236124207544326696971942791837985747393727887023504160190902051504675235524399967049826214423073641451013450528476382676679793755321799538116125835895534560289147138534380822942232836245984964623871577845884001543812601788730113816152848696986807357413415201596857341559003891349060628359948849696137561260064806033798044245524678278770009587241552862705334436024907301188553076387462202505593892830255423105441293475926750927030670348218756799606520647690142993112434312319355333115803856516924845522394809896045286394904875877375215963616981132942296303711229910352668307924660986642497996205985591188433995839625594459798855377512375711941786219746853017637693829311242569886277132390832171611191424044235198334609832623998110646162225637560035104171857458553881434524400892973218864401909692496173608034211874001092315606259749282353080608118529437526835043224432007449794827706524015787816542737004710669464458232050272002599414153663104704737414719923093003209723841552639093208050149985626567543971266773443113168988865200587676279930677402296761526493896561557196258620083635739067267192774807676590714397344921492360620911623735361096045397773565468785397167693668590269153184339914416684173498528572812499158993997857114364624393469326113605517611803976364503336365642332201130365440699462287798418009919040717630353690281862439876280200000195067810321096621956232460461622262526322558792033134823039255392652378100016058554790289037073610735644698291566655659004706888968772128824547503639079779534099593442027455529226707525078072517934390746396127621639442303605351383387030936693553581411802587627086037186371578941166992013138810618257812007791449188413789083906340228995609396624410647814312650642473228993905022272131680738440729716981916635265582741611533071851305257445403389557346424582502308030833931857575736001995332322079284374546419808694923837552421059739639914354090149897272296568600515318469358417953013728859076587586906452542026156107341567768288196195430776022509904444102275823129729212868292992980487980333883487865184852949447294209234953031248517149980918079291196607419523823543723409477204564496747049945023720692513113028178721044129525428039085968817031271598149951699299080387892478386691555686196077629926599711270362616801414415166053075352611412593964347207755595251431473019824896031592256074477286500235685585504658878729038496846008347197178769661612009582883183625683649772591903441880545061985756722520355094922286322780504033693591978024651232724168366906400334790319382690363954775026860502191562863987877595587464642715289781039757362369294152124043284485043108442607159363909472816197382769492094265655389568290152366477021233077311535487990544550225952268220545065375543684224552221203691468810769117796404373216378554213067200423715481173568181396964797031808850021643801178239286865650030932109030077009577609361065083303012066222267617095248195455476807775574899692066911909387241881340887016066226987453452396966703286655166807047855823682647794801586972925260142120230627560348013237764229116991508002233470016080569863168191228133336082131868622421832970136192562896437679326012643770832129710615366319003947550503761203357144613281938727335218338647002557750708164875707436042753906238832694176171729276259322999741121011441547888900551758231744243923632128149239223899094222653257214384827577815236096254731914337065280938649175896857924570345335697015720039461283780644427074749887872370696092342357742254371715164515842652794365538996564205354561748715153190825977393978877885010847394084678401688293305693029925858901653802406449922023355751233012206786503116835471086733926196281560840545586531389662629706525581866091597510532226238937121762730101067794936897723350946284500904127245834029923155529070235043634763579149397393573824856694054915721826352931072082056597193534025453613658227351913886816519541198122852680036871252724635237778098889793068123034899686220014721745685293474180737627251408000386640002972167068183710815123522657648251657846962644655125108483487832659830962449004894399636875549533186535097169737715865376834872076842446246025639998572133248887260639568525546205858501498523603494717767652353701576441583012863667107109963809354119529801490917408503696498663537839743828230878027461391454805576578111180985917465043775369465588388207017790121174993020993099881007226726408615696010402261642892412327738826461375757047143861560397954609031699396077350573860113581406863467255650520741827282408426943640126128083137484662731085046108592589591342544029679776343812890065272715098626963612287062008370360321389023903672483880381194298659129706605141370393442370606640477133472114876642316551288421263803436321046914161120494221791661120287543464594654193761713375943441906024244702501357760570536669156441786630836699052748889257460276386398092939138045184365056782673680439921985327211238738130307015943326782265004710980768161774474062343765638763197141180628825607795447068151995349579286228173042304381501849178178932883653089799560666610355572329231162951528164201883720041160200361820185231197551422156137304081997140599374266285844978128038590589704180619469309537538271306635599915041895247174844971361865868704154006336899474939587238411728446695578288541499957700997436409703369399498619224386361201648699054500802017907206220079529652765778647547001197467782648193899937039681986235461827092008651238232668283173593244205849833963362829784686996134093286215359478364770543440835618739967708873415617178081615790140758979700652307644775361407203721078115416074178962034461314570545675867458861813942202241394549650728145950770570801903193837783686071052905094452076835640693288946876942153892174916197874681334027606783269987389714028695706780426307550427585211093274906685601643442969052431026171324165299590543231501531207749597597014164791222371829913162340133997351907820540063714311047479837286912699647359471687805123149407104883720078817589196305032614981812002080921004970583722607134745790854018822688187997962736301176673260552739032600172370927334692842427944867209556552696263127706594678902169491922375915168726002998579654756766120730016224154769443809824258351739889895892977143538947737186121530476059961785627939652231031071689930840799413307298018097378966724503774299793632300490889722961455155292283965736989146111357227237650493811705183062151642890221342986838194036438717943433934270876825389565230917448871837872765860101576360279314430954772170354675405554438474406003548153284341612169521353496023489102159761968317366798285861988781042354912497854447929527052340488100570882872849011367719269905875483163658691632173264252580293995088241209546223151919026225720446221206378140036029957106298355904730447602780167060713342288908468621667553027146805502189460365314095537899842983621354613149510630040067483207168526885678725717794975927664945051560081462932482784909133849823992896406656600845920914884212756983814889551454578789472765419543705875953407034435651223181481296819182016300583500878143824899926626095255137651105180370916684687224947622096221044096207324819988432766599365981171065421235369638957889647223835832668917299061655681146827574674813160295587073238725682064924724732974779271990578354721615199952008575957165597955835958879761738886495745286912691715890614610083031306257933104574562245747555722026316006039137762132703676248580780333673146085890787110037818898548287041506299137211662005667674872106740612892737123559495977966943933339692923493314663531906710388891434208099579892138211105043773941053537385728408851537696497781214987955272447608340795890081436027436199488104032340305928497086911112086518567986110488074445932808723662375922725081342461119735197402301154438612820845386908414853240372136144291249220905741068499993915804227938988380577943221794096318185801069202909115390133284633506748260547462554497873148130165146906614556275319137392568069137747244297397160997261345882468546680456437918216391440270368969971597087118805636420803268556273106527929786196208761246080202816201670840217133752771287282528469935001459170727979349285823649541681159028252525607041957756984152049659660930424309325561108969751199576750237157354488668717110242823710795684647543678492190212897645022008495577761926797359016428974587369529307670858515431115884819358500430130839535006196049143403504190691303844792802273403311538980696512402530362486364423413149841126896442841262286531322080288075618095684726369473162270451045702922169774835257191881110952022601697701674195240803550640018266059118030359810841733393450739674357130363189011231240121202652537889417074040599926690397948004682325884333424635250243849121174557105392629480986345052451102338555623099649170534172281056598691722990053461029795452382745872465950151298516316007304997004308623597188823180515583784627254524046904954909636955845834662397256651475183559687469745369275252467157615719349877119862102124388409491878658357882939268715805166683237500109175476204071917452387898439231849351331132512081310624325152242024272167158905752326936807217193811180650707171399011064491523391216312641465501102790388671534006050377490923860716852115575176070745818792892250188542375036108579792995098024082832117015321225441808765976967305898596016752734124126764035868311357799870060415156325975993379921196960216624148717282251625694963222296488935518864732082795748597947636779481778973371018805730947748840678207361024822300134158227289909059140231893380797941897115203134088989033611296404688931317897918208748769874215976956401870163374968078708115221893608071411645115676706644686840877319866672316333052354092159128803007231356401609855450834501325137927416233487501329302358602424390250229386997663972040310528121329519946397281277624410561982518724327612859051878538152647292417435237660389304039287836494343413637768687169957789607628696067033446172546690268592763052774120221907823591979752230376004069763645522565065234584134600289847367625085235708456630144913405476102068684145157331495725038675164360074726443171544531009166535968283921929820688164620712029848774759999077510950303864644519454437741985097514789623114419576647691950663426235643152893047224080890229155382175102504184136130124445095594797067105133247906191429097443289431246914096191408352126092691628706286660988694883978316877766661107290347922148676132511741277895514158926493018188574325342793899190466973730708561467710302249435422006284384931695830461850627452304999054975552824468581909374617126082839916772130807586930847548146171257309304679493653246387423058034317713314740311508398015577786990192179254398035775220263451805898905756012196796562289861706794669552518104114460985537103798745380132707184877180744234544448706207476155696404901875423050804183520374956071135190065115021578765097191392818928957297137888071058029837823692897892818563894417335070489387566322387240114835580259717275130772301876287855109321311494822629856503955967270247482682066129084276270801333881047044664322004007981168105948726598371784137268186002224391600730921338407931695738621372691246140613958497350687304656309717843714151474985380335349250150085069712922144772037299291291637824704784594261048834058169272667504533912244927210899906781678744377969337477395603907129772883031872142719704951381158780405072180205993571069116199882203355557904052427243713517697186125481231674826924719351460101601602660920304163379695459793549009898242348438551676051557138024013607349966712813285692156467757102519265300351621942017239821894495903574717864353203112216928221101109275262920148887528014764126466238432577961009290032940848384728053896037595252369892084809086271389038929101083995038895491785853640297557082754143718354039443789799680908621674399819280961076229524737738766985115688849176682314636162196625933100468063339178827573347041510082206234484542160631295898234990625628379874875145728314805950900452284815166884438477070556179085169086589717590095839168604129837332212563363978020237122614610975808569085888020493895681854431558972002739577125284814702611310036899222219328013745154184300672239903154642186476244153812245301389413913126754452988963245091704307750961663251767550021863894577181520315818922137195401366414889619198405142201558657124275996934703162030738492149688271366605390924786050662857090482335216509206954039730289349881806183269767029077042122743898762502238055807584770524495839956539414237826166188088067247889516143607346874334669902425318438262923143901614474704740349375957374591645994134672640107707750263029784844707135154748785776031097916586137722326438517565989663335769639695162101630726845304496358421903861388488817212650268578886832005420416708332048046411094108011891003036780860418001861985157896512491359310675126540741529748061042026790186154836075127784729072418534802661491493997292516226876567080317118224585779784768895580564614983135112177189483398267784666953208713161896236247387126343431828100938077333807327746252843983072532089680328891317288352885482686578095326973291438684448002613373010548210705615544462666158206576388274533154405112206000215359134923160761489503489345218151488327225734988924243677872755510291017253607104253651425045113878807422404969457839480048554354941189371328885629451409903676020072156191351021289305588939969307444175271981379519142665043078195949864694309526137586041878884231264202872563737987366868449002516975409324678542925554200581336356943033484642445078929978730948133782097894812636482290607297530544109768769114877629977278420325764694673571194100846559030962409941987580736616368658464943263703128828585821959038048496769259079922785251373738284264406336910719699549029660185459006221057429530376481390362459650262298783195956010713528507588689086113522380751375816031971038655933733852450788697875225157723718738084857072974207078578504402058048599925527125499983383393470514717364454144960374897446878252633452782209819780226557501648771151273147934382506892037917143560013389645410058133608239745543100568386750663696457155887803066753064502855632093040772136284887481044180359649599032877716031479963137768403824429382715019156814603695854289222858124592405224312835931051611007833757750368231123548670495280492658788451820903588028610309118156249435274001027207932553524317439222621182579238591276386167427961063622074080884478151928054958429835437473780127294660193816673492718707757268608435252341644334780580664879305798138764049114477081562685398905056260301126865009706995655214256572454253117939071053635642193212427824715066619024114419350731610195151176517150536129786193326430750270830664570681311256296560578518954230611860371167943709547346773345960139004093391637010325576086713481722249177759478081621836848280904194820079132664421744623142260468046272350144051548664320447191221133069229220599009020268171809382381589020587700379429467669616046681935133498656277142824040381470561726025827743586886729945725867234241089887739240543554359759095254085724777176535773773084945733003146965829756576830488741673245967776004401420888158053580435398129191074039943908239928318411989475516982711789932053855677265806315502723539578490273563986163132910872315303694150013552741549475689997685724000945826794570658535924757203540853049474045235660753739430508237382314565524381808475468694791726578694146052885406215285509738257239176782158883282005459685689877645584082064565032539505436722566096281089971168894335667610374912281889105590418867307484836845426708136427210478532946687123498823317092096352235796772908354394069693983841957517202070750467129061583055269531139632193158448049149731758716014868488145173210632235190621268385883176357941502497562526448896638412462858257640364455142929863549104321994049761016305312782722387551391264000686549989263950358540798724092608121710297946836453008769199215104651887926624428579916218239535163654358333475838580272524065014819842361885302445937671021774646585924196942631105903670645567446753098194862508867103917451648960329773097926047678686604138320130253353723520766622799965385476247955342349842460444580782637078323438178897871777604399183217372586717662663367242382916536138415910217372123716273112913993057497588208014171001036560766192396289401609936515743094858986655524609972005014634398908991705270163586377465258491625948465092699184666992543437110732458975277411297986121666669653776391881844684511404560853365972867013835501057530768830860610738135805469733317346302838409895095800595339806434828953611360953801177951557055330261955039246925224568717666094866252472619424076897227841034652385368559408233038261158747989918476877017828560349974093797677959884820446492230758373712196544008162349654397790294739836092132191879058189360762612739238570088446631022124696665058828705066933916421591869332887238691620045411743432232493590341544262410233555425999244244363146323548055821881992744138486305275165831769894145194152383046387228009873556764732310054390473979847165642256628953689464186591446198167198889153786901796973101831256386113133464247678372224673260234003010184294554280462171273717467416368988247599344376888878025919069154563182442055706713261482618807675328827449000233382832387100915296122991509895883201354093531477657509052068021590697845301494157581022822723593060801474113874675199467865434646833639144876718992816523811946646260636763736469249083504710798995852177455679090883920924633885555838151712318427643748902582979105657025071079668188714422743670287970404444391243130710891688498215953298266957495608138525338207936952460200673067373730617155071889134204408399649781212347993745029174103466731915479854359844147788910631373219718986581328470376333478306536150113321497136824755461988784760287473065679111721770439460718217892940719136211853998133458640808740498615372101212946124098714990686219676630169519082162978274017631356139160365341681110011644918338806055948185460868720788506955819701181818707706632232858334641884668235107853296074810296743177657234844319253343952193631377082486345611082354395953826853836604668928543379610031105988562661621466817045371302159102387596077601608813207637598483470101442895658821619084410463069218084167695394118057678015034439696270214087634111918064239348239390067092536991561771397472875427405817700296281460619108787897402156119712899924413940929668109691416619479128345189969360444569003988358012005385509840334204898454598610168917391298035788339593761618532344846263594168753774699294387208009634918597341426542131449168748172363369230196306686270554705623749639652275042127373158082982350977342253416278011843166149108638993129857694601370221250755758774741300913250571391545115100842274252257923983905524921034721074252792102700104052473884015229815743506080516402194712000736437173409065251356794411284099773557590408679269318299416561693960263994048320917703831283992040595817511563971747529569100235955824599256960538978602361972554004987382882955328965155889294822946509986056938859261803550661667736970248414076492637472097109504751163146889388186548940600988312265759659969043814290889654554778077283436279877866020478535773165237202407530090725918663431732398495118290460044706184523791264121077221960840293168293897801768146259604830262335986333688688177747730351981604485726627328166271066112413027295294155742437835941625224118565374595354236788904516754013055135700102614665230658952081283362767900494582088586441556875720969625970569735148695636577218430053554048818238450439900727537169332516684489143220114337195853282087054227629512735545899184441323220385474517232175142239204223326152036750442533751972271056229371161214458087861897673073663246345795817621645875350475896134786141753543140690335017154924110546640201222248953582453084350844631731716703180067339438774048020615906021572653338180533660439382446682538037212665555415175081718706376725868478503472226241402997428202687062508875492648617800566099428441103869903723221601952529678380541480599646878920312276620979002721433497215085186706772424904764342768798885888730023627341407253877099749166428702724386692083168420528511023491178079852221130977493078121030403282316998643017085889334369154036332033081605518395436160014577230665732708887994507805290986423490969543307435558732744166651463498019845723278533038346157698463094365932158993406894719701346456682755877399768497461455679443823808863369437876040076540840546235529162467055918664225760890637120971403498118351941917688143888805553295079396427386785376410816710595997706198914624916683616445913096296838679279124783623289618700017712270402559108894641815333485577661602805386369637354466773374570180973456336721051387226084078109802581747183374030528426286571501989047326733853449752695566415508578927528258446615366196068617520271487296244031694574926092700005524787256114527281761222180314527667153872536993376074884885429924636276936944682924149268439063856953725023173215884921306698201416965865688182209140701918660536836912110662334101730004577141560484149559669886097531609746476798941822487547661899246833750228618141177486626346105690890932622396895584725609026019680269763948428193848360503981530556418957662737203940968373018004160697959656071198788253810363656895050918010142720331920674721189903584797742444349051628611339273111576944914897040723781967991815977695898664285669469308166272870152941531111951075537669268619024896197141821770808881884195873558991936803321510250323393535412259201736065581567507196210608852823451836490246695583717078397641587367196810613375423920024142038900396507277922289378976521745751787851438472781663147529827549256669097034793574481808321211279825049483950434400567417433542819899787750727435318196538247874974349914745330657453720355281608670048917335798347055662720520515257235484764340947921160991573866541748478110393582483125842905668678044302331865430406299653473728537106484909047391920657877677676167160534808183384626760506638054534167718372840832438957418096810190261687523782423501518188038945802198571102184343439197704293868133181363926133853385212118228269615868313546143219954531093142029074454635821934213645828659783590492246390431377119551596601725939130433433450024891874454111563330022771510177756462727634067234941586928679818279949164268995741893938925753509917524161678992051150862194075782677666671413068495935754751884919213123366853565856132551791522421340182054688384253636477724660785737467371048203900121368845206760241854129324461656017813672275852308899664920494243934297026027699690902870633827204373681726954217925847778539874672698013518869105402062272629923751727668717544121528115703509245456187561109415821626660677927371126696107521369542407214714598802729264784594042824553478679773415228253204412720147808328979180307188287442585370388322173658266556811121330762869688284689567574441666555007677219479570870669042566684078267862983419135357392479103314278058170379937334824024895981923989478578120367256189793072779246495444220031322709433148575735266576364298597442691372602619083330766617446817058684683203867971080465068120313727570444769959136105015075849541284432046076288032524085307206578843571890987351328530047123202897068924109058655921802573475227373440032338609516170530670312038966409607561906893053014891300386138205739845197996140797523422717916901940919963719472845940525721062011942888055841605996862580099666244296680786354223735577562747617915216150781662878662282760794733728524269529590526490505347277568178011560919606286422054142264180252732243604700570321653444683564034441612371580014400514950760530711624451970625834904910188351916158096532472647134262930820704145522908257666183309831006536903498551898604542326188596985345360891943521469647190382617857441534772329680983522079488731161985136320291835193009671908398535415907604468133468889890451979591080456191453239296799952187924728013072771237393440815092137086714264389026013909970937454035426523492240953975594092729345656409602999256305632575783597087514517234280482719992040487484594380543998076176910057159878430666192955847730605495049904770203016615826476827761102366721399744191258358754338492061976859705068186433956588077694752534575947084291683105152634961429301383893069322047443398829670498231887968735679049803037264240228134603614364528816831512644501525034423969428627215984983300566498527289754663728941794274098027189973598606094607100447775956006965246770343879917691770848324604749938923844189543869108257590178130204364118823590039576687784412980767756935143531460246309515010181985878248380273983299673450895156578062463587613925775035123930729698005858770543335535711044635073443707682626618526897809931730513458483532776754672945480627269670607143186262634870775324074597322489449867012858446997792041977866237446289988293999078592466437028078666741848761970503658664294184947922640538999508368145257355713351532340392276626340738476110672976040523402290282203159616186207510740451812866514482144794586143323507969795462640745913884855259098615588902618775999644784298956045304506907768045277506335119855491761280103720112871984498099498855675390673278688081021621087122546593169985008494203054839919699398374735632660816892129605821548145662620534205638878177294448293370998875736589259258918023931589771046177759547089548502234656595057439027930478950291631481223419415330395762357926973852604903004805322813863499209058420606645371488506473496078742326743037134352617500377425311503408018124884016702374964240168268228797222051797938490486109817766590094000221726484716056438039029228802897211056269501624992993367005456436407780494509272222141757279478805494517316453487360014530744560947818746300723343129357447712809703062500513350805408700095001655370940006872746799444157286581585317227834835893695499472746060512796871472436446720185046248501512762032054305358028421997328261932603156699718476035352872096299576880326029261777306929213333224719059753349406978437797745997317752959308267179937170788426737748387336231592993011898141636396030038200720213320971045573680351668575014687824535392717654454579518052412585600710271608666137911742232633157799531953186013364077510037221275762427307133806349164895512098850520811481909801606223823658443027028821997595320472128265244175234805713974306993288067712579603125170990200483853088626173184199346705253596662142047727017372413542202306547989354506283341962832999370750738496112605840452095002852654693831110022831142233601240982914019470226911347156755521019964500883320202673566120317477789982817858279874808428500964488090304243205347271547353805856033851502783066460635125332308703010411518267027898079517182914537002964693895411879402573654001671453617459482836790481587972671136345011712678108675526380686299571504964683445119457061932427145492603987233592418231472528867614661151218650304203329327349925408693821394120528837476173519482753448932545901100227000348719675977602840184190236774752722795516925689777771881987260836022460012485831006400807863348108048708945243950335407776573570050013315157956009214442645120761058979562163717139220437024974806521166458987593291256849483478395931938614144309688687750449298332774537885113577959601027706361925196998648234583189619335257027019848837142934732060629489756019589728422585641437454175809698721614073724551925615535420781049343232761632500022331092542166657296550846674666425993223795021814565916934293858959197202005621399888017063542359354511684103214618625894608960721131435087746781623454580064913944357653461651990568005351989984632101650462537629804827367383137505658698494956267664222216005983392179777122699343381728209918364816227587311938839062835993846497067477820846822434421114549793694939144091089729278652428958316196234646584604733683329657846358986144188512726146021170729102514515459743850967461296924459576832674260736837739464664095309686678166692009028297260000380850840719936423521721590917580161213509705076671305683278562090975315707209123019351801263954617008281015092575701907134717870151180219124082752416963199734682541317340335439242436693288596787317785104863774358521973790898415237268606864565763041133995331840006556099717031571202815264093588373111092741063843270622973243384396951233006349784399000764895902347053791238868699641022607929071035767682945044947590443924683786090223260667759414357055676667935685810255880592568438879332240374089895020984196457503824837502377917528889892339239033854858044807771078867387860563515185877974941334822401169468785570923070539202463690436495477646285285840189478638999314051402238850019818540302247028132739409240014256634652014344050999935032630103644507468777947259647753223291614539108947916387660730068943593186319001811283879564291331427965855119873496358572082642837740982576945931864117051470238790963215111351724519182610165885195767155204074573757070507995656738051521530622210748909900714851765684888240398750665052792292308372715284424750739751656045839521187895202073559216053056102855807225050104617007453917668622066842775349067940410981031826136422438113618143883984732319964827519517203678941989794447915735609819260877653713125191726649553101802833639682303152499694696995367412562313567479490474733952621712384883420898769569456197679580876856416799557868994459667236253750834894659605647786351558246678586991910654742586263830282633372606352006024103384989126837474603661145116033405850776757607488100784827356938246676935631367059750429571847028555571876694181020940806964448748613984371535152157985585695795316566976409558656694840689995520935861546768807416693970369551288161274706714439775094403698724308880591023127003177641978736402297339465583084277135853952631226740380133589400450376260529959960841424042341227490540321395944329678638627066572206953002452107414474188365463648844873072723882169930554385276077569004085432832556542296590545081317643604084523985757214053514797725466981437644819057800766491976607269981970461091496199946771504905655293776778389194116208289012917629035630044438621929031663191688997447670654866414881243605619518115377866214782254986958479526253415101248051574855126674447227989665254725559615865766149472469085972861911341450827688943356242998650045729494472898972032435400551358427899103428158337832485435467270636634857834114746177790515508524225176955043033740651020117845178789211939877004083726364018131910089207067314135045451102175864706662953365352019298316019574997086396109086865239505967125056817056962743299840765295609631545299517668479668850275041259848634425544810650231400121795862347039004338794094043526229660597735085484670609453040102586260663878468243334342925087593449342637726786736997969370542845522631312241652998857648969170697413320211141974195894195452923022805906180664418943896571824373329160116912000796077183567290756625162105840460254369535503128121851950440813229019512444619477960724886224908266506323690354445381598566256497107233302731232496455436732124685631943824555532923728650562223148811433876703110932158736403506591848051430383418040995555151119456058799504371435557451184180265899721992180980676784430332896801112145017042051249021056497435660105430026000883353447131497398072381016766770316138729899167074391677407105788869790821882992442976722511818979748668009850936108930556242945757678076785181547110965699542960080931807400170997814834561477033420656126098346284337879722608302692775816329212721362283711957703748133711575949770686337416428986135451373306675837763524279838625153839101981463157504088044717083127459732203293024721373821290392442836163201971570822461863085609839434105779474277298220790418791042569456729653409288336731838472199563722109857563397674026540410081953227214284762034420134784837459926957954975339155331207749176559696589411968425935219179826989064463446412701375157627539249168721498620110105427481624603223522478482074138494861907709324741500519324942772520592141688019544015960561280025543591213581214643830701552901380271430039971203919759220060699851848938104634983774779882319950847682667189676043254879945916268577535278190139125105797436296767840882649311326027051375907276102421196271261137800046587201151054449867023538358535105556131328264331601882093232191520619650024560970450165149150025975204000725206966661939769221604991071423339232134706351839969252211904930331866290122206338130882929520205463659372959162546576961678626318887974928464518214492405563024266383162436775918371625885006137058977152317080006333584469176470106690445583796881638227276627736678041256568462281366791558690624584894654560165934887110070628148158685575237255300669899499901893547442985023094249077723726689260162167442405583812989856870007589109569448728116813315111289837388224689143754931048525507803945580241117796997706347466974995977223276853777079387452392755006356163996263573500748970185826064610006482686192511691489092988394664626171867676666635097171159147185198371411406634157427111691094859098467685777325045145849095950574214429618853334488144949039986273131541297196316591059685871193066241328402166104909322863925454268214474496390263556883218063434270537059181344529489371741211676478627045589578704405475764835688143686804805550518832933428858855702873992888371908045157920653149585182272150288195829676753764007895448197687597863245777584092044272764366631958804124503644514963340860882442613497388010545870764733396936090496282700385780884009859640444123737435646464723746783835417223531764046711003214330512559139137510435236456873908467505107292389341680457818203865719557389982535305700638870447064174840802339367515348091329890191668723563444512815031299494621794046745568321802275451908388798984582443708450295884470505737521507852310880934357320370541936055525200589055635279260616603113786989017014083273171164048169155091491988493843413380873328347972713789577970808751773487059587763489310494957951242314183480665559228819662058330362188209302764876833590788738856550243120376544564928976084235762704188787485000826436082258528352225274150698846509628539759295631772559280730949844065083483073610308519296574248526650365093977161249656817249509608367095625956080855095633809572632392939328011953471962028169560242132611025729970635423240541244190794848581953283696547453672693890667931571458255526390253529630386309333117707727380809341203747182569914443767380062483393025327621424992303458335236621738531759296255578236952762992187981422486797348350018957576008438467721385045878981688299352316665778204019056348024529729838533990639986209007445472708609437719281601022366795345310836382319749475751361098597378055947067767529240814817037944165161218329604795143441498109973817026929766968750758863851162323188469051635350651227513563170773788411032538626706536506084387503401391666883035702522344820695248111963228717535261244027684003198304172830951247833090495494473973801863015066176918269042410690321292070501169008347335679896463625254940653805786729674457428150767915021163618584135728803435624037837213225737187312658843532091163629465431079796998750208807526523382077346788972472534239889676676017864735767759915615997515687534169891681269068104945842259471108605844627890096298778864967034783362814168038350824516260332841191349186703484823961718891530374078187244521505488131000355680598349012718531962801144930959503516026201341482033833284386790677200653840599984375561157794121341446557266020439709181596848570217547387709438415315841518050936335749283885679994103666428871553374390174889326118929536894004207022251511098882154607836462950245003912590659636991835626389039006484269655157823066391964902724826025623829852264330811976969705104523217312561401186279659077228193332051782473367720106571556311941221631016070996214185981736566284151267339851091253916225910991971824404690400591549432324423203037582223313149976452585183362885057444333068233389803746906220245469226015088778999484972022689838196869502181943030418590366108530399453620018826988604850485187638521427052468348472009500175363447313332669224496399139653587895217248370822068472895155507483878966400663085807997348405963950667266522423665399440471819863901939350797194121002206406648547024715004915079287088864969104221329962984515523383537924704479906847235965775067882839259324986289292879560364848395818362564049394321780208080725476638689020658756569291193172117486228496730674604854203475726532435836648952447395660008531467709240697529006890523859998771445083781553663404192581545179565761181822731730784811465137381602415331127563572162797071872284483778570885135391280194888938446042184393570092996010939443539069269304712803706687967151981666807860461650643492518336150184693778544962075067267952222943420099172013614029916900282541281409521133742316507008082378657511932121608866830449623497572175677210711239951573314482870095921645159691448976515035661626037241323510798380966728165085646523895486671576484900933341705759427226735357462535788209208487389376140465335961787530414718645073717500648341262203900965128348752470102117099172348839844049670205870769918105542977792683661967493038447309085152349655265545675158932291612161756490489126506621689074741888649580741330317445486234989430713370406751883328568845106532868966518848648485700370766764028920209400691704439868800289172896392187789625691105161161802598961638300173762864424126512971839526885846647224080946633512427123724865646539729369406175569378905101110191629727746569011554471502104104186032323361722315130245250958949902068076929480011903860647196379411444027809489926023274302246674137410067173636042992942581452489455866086366424174463918867600480635580215889701430372518080811533756572291315915567130496709480858838042252556492979925231904727237147690312627268570394275508736884816243840957330927782562107476783465211749140676133102161860850558830078278289397487498186105956380235218639839433464955165628686220171303475420584432670471470399985773355008169985680072756503612542717292258325319241765035745664377399216731887277897185697584196906566755971379265099203172486643519680003135427372761033776591011442278085988113305792151451863297977874322020137448840688331925547549408550406955734812106815104835003641958777165905316577837627154618555865790017307167819193469760697787652814083239960154352923370083860514600003172570757368680329113494993966714672201518230811327468238343112104665146377300810237961891921487721165544935408226826351684277658520967369941704802864948125334827390746897663524264705402600978119479937422146013384568483967772797474413932062786181426535788690699072946340352185577711045481112949046842712166960701433811719567881791818716181506991317692191121524139231781248763836490555709239559143951333941716579955275108937023149668139424784465021515766782116510996038839904110158301243937752319834087254738323648407926189756894894774261114760625721990181239061635748387086622361412023144654335200869161521262463622329753062832556963088627347888442562956116155020922803226424637165203434294024614364304970913768696791335199024379673679128470631364153863618060163484411390251694246841000643685334749100946193451340144122418025417657499292984257284893756807054873494450146045506046825900226699999015923554294235426080471074718842792031042718216597041401352072454840243012470222441533801313775320071900979042132258690098561755693198819627354417064551778856472075699787068327486480778725137370321870386188292498359019332110962432698882046714984156655195890062701596551975531529400065699560419836902213565454737930056707117526449882834284328711664390229363324382462771811015380513985802573249960999368209397654455973892207060445694504883394019117953317232192820621296106168931193222041262378361296047177479876432601779940218547027282549624227434603396453122094535065931038061248880586808767229266746185707174747920326863901741242005996079211317684359788769242515734522611941605538832520464534887508517152328672909379320307889050561076098025647270892789580002021420911016821586870531063493526165674702166071527265141690614620349740768039954905364683987427920001694206347833286084161047116994374406369330304846992252701712304332650620522825777127539681998390806378569521152851292169608003934476123194048625078508701624052888211571696164486884258613256531854512592818783067967196774625978392014851657332494793349439159975142684436009466270707738807675028608949034116572119419208078901720020800470710956184927249067519168176946525050267249895184170241970421259478613441965004524832293776563081480550121772784153382802081786504026323995717508903955848653939197650511511181092106810601838367235959235064319295863120763952467556084485715257344785021551617855592732706648900916777509561008742440845015607731778948877933075404060419937529489010923768110024723877807600350594631443825654963974659747855866429609304180216474958729681879908136190300376234254064663323956350886006573883622769012471914295247239560793262154976170170983508342435065818426825184258189071969864175533227485846949706423559315892926670141973278007972134602364407086691678622450398100585532620682219629585356528450607988022887732639258785067080181897392155235906775495525122826428990280077571581710586049855660623100973749034275485616309458404096347510726055357757647179892669023448005201911766216461060471492756589671231049045125724291245166357127118936041062766043102562072326847303916438136566372583502352926558202188693026458098545340246278719454524235045100254272896572496139662917448303224811090153286802299487166361293890938047825628892599031453478327476491592209265958806871336421087483245846417577776673422919040406451576508345260089917956615797775727458949334867375357934648530206437663111658682503527861803242533839449349007277234958376858645859171535248945578579786792473642032968666982487807722358942517806076419772465720429838330123331079079018550382675121409737087442639418417637248560177139318965694956010787726605310398550798707127644188168618926505206262555328086085952392318520649960496130240600455332738886303907619340250527498005318014233164626828167037912524418519180671082147624035283749559930924738968515757669943873002012556226067015683320157294585434312340537141808605550382158485182163041603410299455468284314714130433519583802384274619092627673337440429045759795370642676987212818720643014486997406771256300193332930575700744635070176307138113027657360010048109554428884874997858724745142349246298637906364115353886845364336890135895963674951858137402605532995397547567657375116603177327882690961597626455816475466705697383589197536421516510600305061208522226645145574136266238525032161582916051179726825578810928363500374662630431082699873025784220601958610155110502397156598672722694480493258939942364967450362631871479513277778608575276281330693228332377391843578469027784037337460074294745529823048174940481802888839862158516430661083166340710012533422400344358574070267277934738761662556425259920262765405974253432008743672735782329632855078358271955049168106840175659898812095533778260479009173222463736795173433578225649988868441512720722967826992183102121949959814761450333130049351554749217087602258520552645415014896141061038410865956534652657616771529642310219653585379802315620473260016538770653141570561962669139618807807029582399061048964161132429498732256808012141325406855963956208455270752030830496560966766076646594422419293803717609159538178071491685285045330924643199563594353216016379595092054501076831734088228140356393518155167071606457128771909384563679044419055340238044704971502035951118519550901799241804752198802165550998068824997925552218532430745336998831092928393180218162491649817394957431160773331793047172013266067722371753025043379785844718229879251756488374238450089281909549971196472135619103190082258140338827455518454511558253195970263467298219356416623738402523423599089133717901982928053309220238242686164735074869844210725315918481008063212397587074426433400469558030363212565895653930298850270557564572773619725588944002855115809986236322993691393136631779018802371639223089128635183606161805362709437086730896548017698019968715198783508133017499752835112504170936950748974522448437506131129659631144947223753726347292345369694345568716968342417197878860666528671887461722703801093401101941031533632833365902368228862612690529934080581054042773431422019963565014512584867965513210560991522813440563715585971096954687717011823617533855279719145305767773882008552850618406358128844361958726850115384052488032250099285124549049528514532856469470462503857573350001801622213630535894835957864304244717600774320963266505482795999512103014798112972052472741436139248162666693407609875840584985110195530819761597675793740189467014326114815211861373935339192117118468367968520431224985247622480346266252400318219962385814585438270233187168546575709229859611043030794772747921890117922786015849610110097121460717696288268453776340727953677365961668435136711195098165532842267553118514268562957635747597578253464832565033244622810113711931756357887788602045137578789774291132471010657766721111618697932560967505495969847240879649625962440493038361679405823276452131801721354422283897246886660928095100024072819124861180709582768603574350097992723322189868184098397607797412948066782956282506041647881912420005091175053083023093289227827160110931184097844328464304908002671395377958577212293874297524484271344451431548316311438198995460447462300604352255914689328345335010238932275770380617922026092268509505823553518818096678246804575227755265885600048721432967509749849465645979711841955143175747640004386736762501755413429851018921199888924160421479821703854630358993636263257036849519567625534356963354257684297153668993519585256567722234394752811094863051216054995672899418458891129435996996761614256897636388172334924151377648919516369534880396857687451160882020358626231091597187364343564137817354422521851900323696217322018586548481174212284568917942169755413832856306418836944283262742250057259505519236763959360051422462925156974851478002673548917237940693354361889750063583330509553382954008312084163112582935062894728444037902901446910817415708251321275947080791849311105741305145507926032293875775313897515165851034498406969680638059297604041689801976808436912202627869239253825796547165223484032706355683605237718399229266112005528645501351439413696810246155034856409537790841251549044981405313981260027451578934387588242692429145449354066349062538597703766748885020439359484200136521483026300404625546774546097393447530448864579979076316473654869470157126469481637063732166260320869275011665629764620161024548354066835929488990741006755489343710913806289356214300811250623479595047685165309829241509773873789575553850568575844124394587329966637679359278550299651143090190618151703602197430808040677413773324242512621691293233390619948866963919154085690094248169175607966279501743546147842137145662981175659670216793526691880121983692520371719822267250067593187375273872979161365347700546659667802664093130403208463449405502664887439581136269218941307719053216863583234093876150406111666624944562145759849097472583566706908436893742736715920775238583230436552954631283347710241999767431523624804778978032947789949886252507066358868977912770531881149463042245841304845326547637873065481653883777646404415433505507866311075859596046212262727650263075134249422225668621970924661687794483157395241209036415836005633862557178211451846151401618021461459535133897028983911147047568187611895994531830824495515479981882786992508187164248147703557826005635750458931978901803816281084964978279486788173338758992374725915714527782405504216502590346293927605045710539668353017148915332183199294441808557786726687009447536536480330472277939884375563370203347960163001421824329626946224487410162405559318561590489014714265681928308654115245719070464783288112227479339205286244761294092726618123391037035073966680687035856986657220269067113128439080255876694998179009305379897521514702821037305326408010336992534985736975591839711332661397761283543379185861118479328211463605228757289862875297087389619366569172276462659164629299640213366982082890072743394578806137827830955414008555065679596836370010949764381958908601570341763973220901420074775746940874246871433102485628743373584557583456497564548776082407826744361728824673111811827304002918249924932919855487835530664951902551072952880146510009910449975488814782990091874658829936196112255823165193393112132497818617624541765445651679875721675482323713631612090404410572680864761881473057070543255821123625596899845193104583905145996795176138866160322992206958379159938174845072427607935235121544322176859718459223056045947988907635943711202688834870837366269887101886108984726068003199557369070619350074115994801950873530203839333621443455530135658429060158753375268207786793848607534664532715472966145321551169765864606312100759629045869521765183627891395567478120399483708626408495246965212763650434678074949050835382475582367330012479838783816850619011388319538855642347258099182751002926401955993510968441326259492038987625258568556579133632039659853410784048106252347240300431056503342206522051825959232428123762217740610961435074022941489778876988708313948176969732001184383620182510463308997151673405594909370996505705641405295110657483953586887300054688838398843470152936073769045697904502154898475574010865790139964752984162162612204824719021543652743502425265778236592807244512790439212564664883324008311704632621817776596384993003281381873598580713474164691038754298338285334681810844844284477592553492619738755431846699104315388175996181600981537193644763798125609751359217673968622124257323454393996860864824322904212134246141551728510745491493872293205089165735843645960794842800950785003484513604242020317269039346502565140040321046099275939820379662569937687229873753304043791464795995181215194792231762142254725432239304494872791525367338417165109884054602706895110169449633618450122034781848978685535037301845152784983106118101478153619114466727448588860190192392300320952452790575239845475042800509024943866005320352846732135024130647023181766279019388956440092000163289335435507374796465281923271629466188507402700500374661167232767279786381555539716721769169308116623527280038891309473276677327805554277855049118618791284810187151427441892733742334858083710916815313887502454601192340795494930618217829687724566984158826091929956868521206587750157861989641780762013880232893399659232884065712265834369486551071821828138987115369516618493424473992954963874972360942275473972437824929816629511674589999925892174178301259861817629184407001993336521710635556012782665950212540950736294013510051121168023238778840540254731239368829786141555717495328941512903885652225834498423171137522643020444364052319359684587799995164081244872862193358653293512991308194826328268440706564362048768867440550611627080241302477812757178027059642285915393813147342410968864445060892025054323486137424868657465991174719098109324505673288720931191691336641805447772345729164922174262363425341496734570758562821974684516174432819208158848549638806520392850467563761146461182770991612756623417448799973365836228344551571011690283773309894036690312402500293819078076442073926182118626508438565141388666339423950375069457213453635065073759243775984884221837000491450615856524759308900684997198737388776506239399528418715091918322196176013115294431125034818036054731615933431339396537638813782150234989286303773648703429982240567594509811101121264308527257416984930147638463346933405144726867518941296123578963532652340633387890998053694796506176988913826767784603354422956971941482029266522871414262906254015504733751717618515597416762868018925121211246291265465305883431724195079485868880988085111581463755973377067446646830954768925935236942172899270211023970363983998536316036697494843725122642935248837702479421503201047884730167742307361713814463916268569812301659876452690652023520371982180788103128939401666936299290893912482415901532821515759711048760840517750782567201684622318765491967624253989662836598247014993179470810764379045087098397670474614186411651087213489408910812412546997510774659801729628278936967398101302022657560801844832798382607841841244199438627898310974088921579557804862498380509869338114816435545840022606413799504315041053259374675538587851246613516279786416102712882735614891209705768590367363534375621901443164202200905936554314597992847756092230699298086671947492811410249816175517674714558601944625660305663324420026597054725002147873607464303877250206419825648911489978249680932125339997082420736274345154401569842160922554320844234753841963543477950284018597082818278385210709176785594170671253079465041056332097417278298544985741460684427474572471709238376973141986770487936185421746500004390636831207879709296421018529126397749873466592515970564157653652422400065030636002993534734809963130947536429211955346443938974583731235335565501823847498504246840071801394208550348140803251382373744907676730841645897506468007696557843320956499965828915786890770199260127171566818443239632752887250507868189848222107745980847941931102822620280380711686460406596441401112544217955050957829019271548184431774197175563725520416556163734599448419933876723025201799776157535454984680091768055702297698205848824682036127086950369118538011685603726460774593642681038292600425338437650646562604614719803238985884865277567383329908163538639316116391169146253608207513049685652002377153807542795429688165553821324505961609869455351772351871461059155099066726154273040759384348272571871523510328017147341478349274785869065401541693792832666017331255045608052352767648009723649951575945449062420247182502118783964639791532270705716312863579590540063808718864390251672120050907612039053561240619834916031192853084755150696176894144294438888544429194823197015518842899422751136260672580272468022991340433872329696856869444853111045488834463122056138113634835151361640435990590933512327758973701589712519360478666609901677011320819351678459472523538471691768881210624389595144908250836828313779086201360602936075342212605271362309720919097044203238153061605632747960042057023775032919117570646905108522413952141827645716853232933311908408906269683937347460438073575464445669748632494590262336843975218973206587448577967549167588839787626555773533591708854635751214522360742799668956478030185720899127427241050830813069458855365510623963304607116565705665553572789638526667002382188909138714937829706091586879372765759107248226660304696453278334817896631827527789469009501627486356049665274881407828473158746997025500858586135465437630535002093927922333554513110350116996827915260790964780802552823506981202245668196372240444121375651906090109382049191725388575847126849818876637305196543229371802853681839436524807438367676102300887527427986043638937513332661298328818070731271635555590751547496965073671129080637836627884402866262926276611343945879596085897130868046574979686450959851812536427603329662154234326420259736294592679133554973234951907047097148516550653192755091218506380071483669269970597883231335209687830283943816380244023758416073677027318407421070780638901701998373860890739584533439972004453502181859929270262640801287913680653575134814820489184685468921546407831281860486569252937653704406977438080876393366458484836184739330034584192474932679301497931196222072801236638780583203063904813386405502879523870688617219751317200994229933488979554703275451761705017469011244336597376436154985655425536113728736373680547830948019707429772471152414536369810882315303012512528823763344466504328625866068659176257993545914617170609452194717165887349220504309974986452367762667189982928888252608238975829479510517006634626660193869123580905567548433490904954282098390870660224042780528541563022329471497960640643710137062544113211442003328483724273656452758590661953426989674870091037454275049391785297622283430623083567037277992012538954409921132316785388735961276193303305489057162104702352795152595509267818935715099601962434934539832975368760159728059957610329921991317562291731855909539035547349368418818023898065998359184118800133678818872411410110322387698586650611160928926852585354100896592880442967560326089283332648789653705432407218172349895523178580915783049135540793958630412510365426244010699946435624903032154984340965634163020560485280020602982409897063221384520262620118005199599649324882017865801123339392081632966713449695171401334877182271991742025255209935779393152416688641656304271642784522936860063763307296688036134900040241384394813894216696403230081255420349232115628759008837249821744877083010596816966213367063433160332655686513746160607619618526896653495533479008098292788320730898894177117293687020079015680619247596806357249643792149648079220116255999041487716323454475037911800920623823168211003606654340796476278286081756535831221068873006419629289114337035880023496529381720152727461774979470075401892447422147491059950154983760794850838143142724667309470530583490100916394137475806335705355805976525788361999757856417300107140216334263507024923106206498486262911237584908796080643231951013507395990011076486096378417053671874449063397210629161428963936566547568191553534998629878932739012091937491593524498691750928898834761725883473735897617380514915849428011740124294292693781881251594412659812475017624804208002653346021194923712825136329644707524755042150533464931774418999713381276413027406125300473214038786261551263340910700566517133348762594714763032515273243543757267075478846612444723604096181866947966489341519273515304840209538976838993934781106574064632940927138918910911582344033225240941360788372453715966413337323120722717570885589138396869768416642805222695753228482806875370771284364098544242839704217861972580959931631991259876885255995816635354347017784353796591169189537317431739648092942747771571112493061898752921128876243764505151523999764959090686787844284106722331583771683019801554216571262056443504605651153289573151594384655089430012781148680091710738439214480711616131813203343338585039668093634588763998766527531010448853242642474194116664959262449897650309656763890252455703713284685122530281795097980678096504899503696748932984478376760374024289094175343866406298050767981910224489768826740095748308298365114646297384791052735826432134216829681853680737927417301355492609630912454564508193737454840287666372707190655141359968753085354893395629290762794166962163411594646781641723468011355625698973391877736888691698000715563843199542168564876834592424342553975985330575110071074508140903797633083310234925150913008220277072510539319472748864390383139184467608791905938069768942932664079666962793810045120066266783195191151491245563448507474809546404635428177034884805820319907888045862467974359069817576528300833069746915799723489131064794828538074125258711543822084542641337342658251292283879635004648844963145972091302991934983925391284581238643224747608895267955773024919022800770315926926618964301027454116409705409160601338669481066174826223641367990103256487397833821033252656133656745959598552780533244934744847735612175799874977702047441775333626867397519159724663326298310253694459163333724937288805586164060576325887482119935781370391815811099988910622915670243896231249828264859933454265855361293156407622518686047669966050065508644461036995663717177075048316048382408657250984861527298642367014414228068778357767291120748949897283451250421139468151671084858239738915603654223656599253271261793832871345634566120796100272712004657927295606357577961106911896630723471034423840487255550447264901726211985857086436485124485518854711576732631151086275613441548277432883615343253759681368711626789362407689909489377083164603795762079875024559438459190517654654945255141295978020597236849661748812522808415866028857306393209845161224442006615981189700965748255620094186042358802486552732668234873336469731998473135912738149659062152825404662587007287203543638240285796889842046435952793649334607273826233184396106952713004217746850062000796408361876584564823726289481914861012848690401932292403046982915984741316584710007828951458421815242216570315290736548684159844454154101502299515092840127934924133981079900949703905855237397025535347711485751817579770034420060995211073713995741357539400800983787724059068126650363323719607019159100478649464970979649551211588714793377984011581780991945144412443009647283048663519700051569346279004307126975484558556753684769397981168158442515633977240880949683021255152927137189435545039401698693618692980254517300660558700219054086783594122630156358769162414303459520474734192184266680700626502672970685039744572286961627816076102784846426373634286296788024209694406838336034398710495891570974627605241087587360500400076773092531697826719838532706396645156930985863349458025131546336581417004251273196977607217158628179023549643423586336647398060464429132691990767569045735290807116385025270843135489451697715165672175705032897303578840117398846191663669253060801043771639252419172907342919627158189439839634538282602698476105726324311268361631242864139015825373141399348625410938528725535410706027734029610129863157205555688541051043451330897716725421726503796258647752683414971525370908960041700666600056129117538564002561288940705090305134805578217490913437588888476956345633673394613204858772927251136459036481349674442889496266196937976916489994137796167734141093323729197547472751517504919334528450426889681172951797957906645169667367584346110127934278766028419006672322806552247175706678049674798998937297481490596110448094934655587891834780904047642739808857143002217476318044343398810865424725695849031798903177845377957061765634812065014324720446517574768645124495668277395475864780625261126678401307886683445001074427372278148417577050259773104147058502058511711094046801632341845590339483120129517587195403733107884424779211782254261531359878635612781412048743593411078715484858137324094572304669111473812492837301082658558631462335978259865002791637023136856551142220739026350911293533489641032152948564501324218085783724525402209281234150411449207899614494262326417347372164715986402464040180685948753366569077384729669679073784654720036836820243624075914848369680648169042866732639532793386678830474154159760361469505182297636930456197755860057394336422842190263329727855339813703268945594751872097774489731937164213160175411812708381144624382675289699056736803450991741702366064813546186102277306212678606614145760389104598230125752049460376167137690351616739864213593531041298785220840313658903325790491909238285128001250561815347359034967758937933385039684913427162285466829981985698249435373854599186668543937111924431110441766830378092981303840861729937352118863799493178951730094217543227130190991848177778614284977175517091343820936004207224576022830822117949187673632400248611567608740055455714601916319227682482627409260808627713286346216776150588252758047350561435974165174117151694163818195329802460499074872394643047588517001639001735900220996629752681835935839194425579118687006850624870644941289962714429552051120933194884536061927921431074491547694604321410801236977086667947484251781901154471779136057925386771388995742791005956533552963962686902562677945664055998855386210314047990286068367931873862250122014382299235953269832549929847296586597743765090739872884476747613255049109983934758497496317426978310515645505369717126041786537215541491917677308571649055070623344688264745627729879832449706288732346557449874877113030320781273423772686688483076294581757284496324914577339605264222512261617825667256113066884064547692220630322544945492776903409530080330721553394470693054922739602248977853370182817299261661307539918686896953920504323149318502287003382195436647233585943447294378983161665743937574036239346729102029687641516454681011527356416557399058063172553622073046609946036225610868022924028779423118307518209981024254117355819477965820153899222391111188202465928016768302353829038195866188031483121656316396472519623102217545750108860367276076561826536194700854042301742704285140065607493531833785048702254771139503022566817922655496247229380802937323550421967918645583285253616813495246551059224526431546573238279662730306140629398787167535632950742826275213369150334523163557726342108695317009284069280088779321316179875607656758716137103717749247818399531408762992810344330297170316629615287479809396783610436762596068199424063984738139808777704168983823994144796629175076602467736535358628718001638587702391987125287011647037146523700582549846129152627742061439041971407747629068385054421200496886205780025672474722246522205120146704123929114318829640363998143108369785087166368096408059237422770389689063725273709392500204620528395609220196513015445303877033486064939892050358126263930231964825044075937670428433692614640420993309257710662977967245239600807452706088190545549572909324343097276972477762116594015510611615330600811337249395079917811628696818737494454011066574544172884634935601077531607039403164877486003203377947768472644283998781964844410125568111663716732651630426623753789011269696368140268246773303148549888893287481895108895027562735537214584867508107043400745546715043059459553079681879957177935322314189228321492120355851231042999374207840333870280181951849341476500962543088366403455050454946639102641353444524604581115161463396124984412138746799428275998126077932817345521148622761549306144087740021714838161172713403282779579784007372780316367756231913416691860542113774305836597425392578655468143909010825273375289162828579476182472819229046499922754606584446985438773659434960170948368350134368925577716242857047521438404742291267119806074834079244660520537173757977222048728545261218419089897459099466592741567780198699967140198083606975506129432123295134083511517280067264420734249637733919760127763419243199230962147976471139035888705622329531896006059011217686407665132176592749304517040957552845663850710947974258177507274626309311211144545987845258062922766052589433911487842364896582212369946744074510018885449000075506761937067252960890328063150984228569319020821047263131876285917563473999391209142081221670472180366314232271233834988624464060020490446775851456322078139715900320279333269031578271717662624757959163587270266028466191465209045520520350033048037582986080914088081542350933505379733252158674186361178724919658595237101599477101906128024928728923599413269546698057959225108218732900777959999380794008896640006237004802351354949393381651942873013232132745032894565229501347087216219259892980062926486214407740968154501344718561135609974295251823158919232519759124828867200545870369570482830256839880990470067803925371289878536242400211930834994667871874552922951483779852158874101832543530951098665667838441089703652391734244813823213247657168757010284524669963707159667840930038882131182315996909758648715709895979637160357917845124952120931978174239942516738536934717371947675201180957894484095514025771244143149471957455828072272483174222856881444451402183694142863094074872849958669028952382637635846692539587926976265832027321175521022942501540470295986755146959771380000138900603772493045063457087428222429893655045541321875482007096200600436107351373606241750149213008947194548528044945287621350152432545871128995067470941124404586804850322655811707602098786126942740119816799032991079296409254229233489681050033603484547372462847596604840432341199555468502081617683544963583317635381195746001901589269422620131135477377889970344341473294244595132383982124568798472226773332029226737608932705057004347660928786592050656128105041185346479371025388632697409281864117777320710136840941335631734229688909502546272735658610982970113021023803751604641452836236524555900139134447544069983810043375862783859959929428963836795864183357728672501706761498846316366712591636204277196653070332942904920379113782127751547854484033914153145027922356037370379203452292394497786721321218071201370105776318563775929831932648445907917580268050021726317072980082496854331663683627183313751844980118246022142775504562112163378006250791011116974758484564508226056039807745854943657724297062348281010035436304437180869135080508465370836750800346436798476125664859567527338488413396317192514558497416841439400408867239034289041884272783025779636666077680494138950548475345845331721981246275174717523136948199289181631445465143813176128336575402838675467451571818152260447292615992596121558281327916244555705300523902100781959016909709971006309414885828667723987096987078434745045226614433974388369423298836551847517836125468278844110189150248503784195792001969431101678288723488901144767712457218618565910092135178229693052769839814338176793976320701218260834407785066657511245688404311093480283755528357009451025198766442852766755674400000044985610242862253385979294604949064878805080713701160411619244293927753122924361369692162573097816416544439617479580389641023324235852596546197799332697527576002016359961478487839009947713691541974205496575985484587080668779898598173276040078232744471583012021754206084264085102763411190175118050624322939116549374295106991373263059303870942911982471103976729828504489430475656470301889072893757615959061741213594169055115823128813301955895365730027570517462772912691623124820602891751122610638046758894594701548298881987026094448716972384336545594354085230461962915088982532406947999673897614568448692299442176099919940937302479687955317268134916962369070291787151169828323136623108860374669749485117933764254793497320116902971455542863230747824006581168305310952102366297844258758906267684097364991047428108554742937582685676047035441319088839561559921963701629585862824602819929462953308136740308588105284602018104448631549921367255649760415434489141088805925220326933756956977030183058064800899970265252614697177685800565505107755903603629615384533602481152913754353830167665899386184331052584160136700817878579381747377356141861645177261951705911989055355793739819858593353184690827280522224917239201876890933900580475598942794319616415265956400867647222988546284703073914814252626617245168466589039481331586741455738802614799373411788445185902765601359889028548812382592337656559987462473261770472676059414714745369009510315641918618809914009561798471046488997915876664785831057147603124060343388797721816232480057175089639006755477662362502688990206218159848110416483661522350294849022740239487813351720665865415309926410340260516917687580762005024661157625267203738562379574912717950605734452605653159255768257302429416737018016197576618233930729805946861670455613674771368722498907118812954956704090188849814528150117038383831792219133290681307969346832668815564641197298566356238712805024740241821307263485297863240493565733874679544140718569744251946096917276757729798263289049071736297476957476485892198222100792117385517862192368507314886380433594072616402958705210124246810365581972574616129291388929335690940464063564373203596399550317805910855479121958533062208766119397701187865549598329192404196694870666924828876914630883154367311100056769567410567152392626507665451052176401518112193529448120431018100240930943568799242444234574927955092628783274603208347970137789578730879819551098134762569997577524925825846779302613424230973095968128585583185506587540936646370240961222006950233162535986739790908657144139870144857651861062038249059104891746671278605488480111575435936914594054845166181499068930589839177649475611088141150962924988110310590882297081877728207733971194315158479250296672876764719412501750240719472820621257390904283524565758709215090710559013700089973165913430671110442610251005844535318750953543655751084481016128089792992888320230293161232348097521430102745882756683489094869282961752635274948557608005862563327541485410016180338711532793571735655509226624083840457600226070400973192159737831063428235030267457593848699791630175379216543540808438024112400853642039187119831796636334183394131051161644321842004701877846229983569285666090312721517862118987404387091828537571082555690001272625321803670413307635258661884668482928649068753435710522217451263744727139885044156107512152502673392963192872238302361420270399092812895693507139471954461780459222006629819788021763409714153838807194189993935134733785215008840423182088401064111140684475264123187166032246595988835839902260266054934508118162562431400670095978327986015222472963088115043996258016625436918119310243406497140348336538481520631812320773727455444385549896373266169341735749311750857786837508827988983010896581608252832327422892757891562248723014564667176795894585696371514336158400582378256114284256539866879105371837797920466062955217995861290916222525154032584978855274261552951644480467601796448310146794822800192880629007348299503356043277305845738616337236232975925670821509632172569240085648538423376123240599511390625282895274525084351205153817586536280366264410502027048809806426076311050114953733170881804792594094041304104534162464308233178209312501047659071844176073474079469509764197471199009641316452823519435178320832712156914816975095030496020439892250501192595599044651096466637749504682119898849460103484335325450751739786524104748962316025293658580722307439317557410621798510380472073218109973085375319256676533992458573224529379435872914103805604779518997019457898461464546240358358404750302669936770416796639402034994845945815301350186400006589931568535036484311453759642729041097808709636756721979530985778512529148766338724986892578879537307723538943175767420977978864371924819318557156632574772556199053065309726184015692628039419088207977444696659544085107691382772535440106159350076676874862280461917200529757021699038991595326401980038496756525022733144917768761112795711378550150832720817905450599607267096618731287804074937687673171753353708667046741281101428033311264694019030722786475187324247674454630274915365728449750511944297351111602419590322043786696193431043402937951034129176565402057814478633936940525837396435923334864966268650242144976081157117683275887911627672886795754192996332610671653080791730143330959151198497114736461167103258089577770347209499296029402259553403478115903504233860214106827025097646485966756750866964448074503861640125094631693108207208639773984722086270394474003862069215297769199371787683139699734406793282734601010616906805469338536612530340471923832168468782669476911349277578682586133592011212456037300247067454524469646096931729187763893663475530902556494197592412101702922367726353003260507612260121128162159054912079522410209871373058906707081103033478208385108087500821114151199648578768907700237576832717493580759876069291435102472536657910244751615587661121742693749129171735948347796026901197135269554194587039144994790855813832811644453595206399823959031428343092921173837760103217679827349937880578436030415308856180959250511638906168366238734486374245160753752566080437021000202244309975409680445142613838727583780930001433881006088660716812852186446791093191691666702094744760290079927206886047242363767942078549596941669677807861094107868771155674452300492190296376288082986751580433702025230617997510501417943198899757802510932545779945485296026617110384843828242772827731894675682702422976286928176687050941763519602384099908474023986952420192600974257544348753537339478266903881744664482518684226612182707576930084954536770549289649496794376773243628988851776183499009252760597403740510060628583299911439965530823037974322885831138020593443337738245058551659651312392726011060895902031252877477232406794717607384445598512091560461972730423952271889094075464530132040765164010608077174880478728171233832055849891103826253169728349540392696417573372617219333171123110642729807001554812870572484891247381206867405835954854864911294761938433695717117363708480520778028230850235451790985436747286731640035425429503353155060344362569598071155562507005374544387305880325611466001308671174231406547537888612976455071758526115488099876721892676628305941856426992456916437543598363888049586775604444910751392415693814915760625749239837185592259857280092197806443834669392742387988454246563905731591721721337014753720308390581252479833122139163634468077273534408886008238512856852918495469291524578416659541200703926774766495629356460609617735367423947055850852894881054350419874866428553026856264429224589603601391996721395391986837620863360793234587997469768253458513772906750890363349134961742168751570408056086302333498442260935322419926066072890181463507916762077932583967966786384620133721387887040378506648784701427157730717995326649408019993097214115745257120569836390727491037120137587550444288968152577096475186325228325625463220071282758689449760489673130903048174222128688028371754142054340295424930835456264836734157304266663213673621749980788330362540937391281475683743660385864118828621925950440927749869606811350937320559158228596760191316433628381886196842328925579939788225271111479323749727181179214124730249902167808696257705025275253268123937869076586353003410251407464144917767030522297991910678867997727834546045913458487143255334520895038992428390776292361766402848572946298397755353162472228031769706421458707915554317131235689555979920439288859943271553026908160632381816132768770790697301731997623231322743390428756148223807947245539419069454106156144143018138554336893046903851157132754049813364558435710882840844854441668424590646965571130463791422768282104591750568425433849222837059579781515444670906278712913133130328057158358704048633812963350666428661385307802994669508187553562160622066099555937543608435142895707276143821605029850845437888725948291723344536123538161775834065340530926990486054680049783431507683696072405226373768094512410273940857171066983604300331491096338027992436293512836681840406979793316913810810954723617248659824534892987937117021974504480538272603673380961487814744856544736427545877075722930198321379194356180910117611259891257944875876334742702265430041929929903465145469669665356105481609456341594453343887031584888678986513203057442013519002932864150898868628501091942735286590909488682166447244301882591679288005616914845435287855363669365155475213430893105713621658839423436324001989571420593515420967781790366619561259309318321191096374164771596620202816434644984718990504242514409348225914813078501342490947343581331353102563635119906561113039465801436595017554910685456720759744803040745490107056218799029135740218288745494253432702946019863785971907674223338980806951153509549692693265348211814351855240728708461317370820551375249549115701252453130726910923710867354231327917783942610233612508259332188292746565808137193604358650757916911209867013341562531058722174775386121677476316239296660299451737145275106445844409337766367586387586845626050633036979691910668619109018189950104617235650883213839102288144027843451419469794468010432374971545168187259889131282155632741430368538059909096186988624507307989385829090250129405796768298466421117001666357581209758585841679111509613391394099932042341254235990261988381256261663218381263590266401066145169956806876332191095666406792763295062174596212604542926924445112709885447915292023468655163540106248967822441223429878906853629977064823535864063614763106659459610455870858230122154005852957502024785041951258879845972423413763231043902718040235741129173535863994984529036972188304352267525386433253642127250840112609044623392070550459383199108128540480471897726532073845453163632204625629595968752612700304985932941244747883178265335514743399684677150107939136774967164429170726253547793073446943952495952937620479196978873568528165765386427869292005962235576964098438798339475674430434718618518829477391394098793816772638227468553252040614715024679408578525719732988838213657123017673909088894149525672486502327605719126347038755623498711378888708867709480290567808025650133503948178363934786970309581601024289248743225361502305529675426404222398991787711559761736210437162174555728595055128980246009601563678353796032090369746088991108494334377995409014122574315822609238178471102332779256244273993916836509860644745655786500945095980765241895159041539630989333669891559310492040463148203011787400176517209333955044862165414119645444699038881651370362532424360869329054574976199489880501650818653255410394642981854973277027174174959636973556776693234163104976684775618298989175636187075777764496669476201209419493444373161440135900563483776773563503667366203209666910634341370549047472043884601035179778381883780989002326478341512309318538365793684032935231372130554449208135377413366606938018433924688828958621122382541129090832828461938535393390958691063614467385268299310935655323998278378141976266804421143961016399322966346311191743030682927602012807115610444136261631507190967431592005915478266122530843341593402270404679150404159493070555264335028925605336336942017761236565148797696980900160592745647785878331445074312865316510437079570296761310996366837884582721157448695554444193393053368387958652048901247754454360898251092589506503257150009592850710782535632988680459023032491365972366227786754630399263916689013468143933402073896349481661524163313375809901030711859479460816661466384690502726359345538776090713420678682428747245776989231824211180478725021926224181286786831072987286229147973485464082511266283751846698558728709463437752273141584139144543781377274453380942044749487872424363267779277731492727371694947299538673228317708909791746919760421103763778833704432630755628699461549943003752733724218132314085569400803890250404682065092898134767326173196252654413029541856363236400264661529441253653183211663988776506698573399312812114496954128262560574929829289083636763089749875351891625163840408553451300306683025823326928865585278124881946440965883004249710198305573432814210359757010513112514354141185361578825540053539214599525571333307843422665750208702480035777924592655728756708534454572624348642748486979795853276833445885842489399498059948217186804243042927055919269781242256948821130886758687148416747200127999750660368627675563694420966716722882949725960236025787715138087987940458684514527063858661231587202390853041050433783163854562375437897351515926889542200625040187194946489106597704633671974301875092136986969042519408008275060611825177021649981475351986451106935449219875403793583409620886407798350712491252083355775283562917295240711041685358404914452073828390920264167023018963445538962555198293580342971286795616105625367421940398956649977620418103819099845096994020063370341220739125980985079263664324048827061926903302303231027213309842240050875596351706627317875601203011030202681644921863487845799557644756109292305516878956808634768544537708473259853126094189994501335800539635507879777648931370160998371358558040197303197949922751340151859683768747356101277099021449938322165492932697706273862960651225986601315759287032889590559077378625720678850325631422940073507133551215745978715771738284615987597762809860852250896617496666566524248638957798670093099331457890574250172673703555059681932392125298070501694150491804785053828886970891929291858107016311015988416725698154656755849674543350661671933257247330797994151455501109077628644176578119406129615571953464212592853443067456562736024543051776902861504432466658494103623359221980350296496740148503413254603392407708336602279923531941497972568108812355770674415998704198703347250294679018223693010364564321806235442123507888827651907952456513240868205428800748418373463546290469347880044690913179016804675408739719324119077019651626972734185347248637662463102782715172546995063751922640105152618337711755139365763121796350032858266412510102853462645116060831713567161072395078529489305273155585253528411541481310502463169962991295932026916398292019690603628862233183140873777755682466678056295473009919229269516346284086162019567832664514024856719103628845988603726394934288458248366269323046750664773948050747723543430404285508420396742157627824454345781263842966172334345852968880123273960143000135437235490674478292291431722345414469771350919722910089070662056421176986337561941779336834638065129340920107068958969484796256429436029372380618832638152306786475949999610685622832922437925973986142490469213495254631637656195291905865503292076420321805764048712051970857971704405006683028538374363968707124770472796247437280143472069903665541177484052797223324916147754161800908664517598156981794315500775457752667147750263282093469679858150031065764634645535029554448720443503691869569133697278165925332100571641302045758624814638100216120397384355951291659095700205126648043144553667739209084592690665019187712919775837428623900566168108407523791338076958020397669180771279590848968541415112884868087744202907490606648229706641026529850038203638199882279200672781688246135044744250970244384247902796937549587860720308869709018413648043792467920215284729845082129052491852914474252391068572477879268843327022908162807717814931709074934131516009309813715683914625640178557218281212696674870640880048894760114107472766713722778196333845569384011772547105551668515095902491856948749154519487892520078478455010324943418300754922119776074825288332819377766751047975837259579929913384273219958419373137106244598276126923956884989397206316459642699716517777410506806716454957612234125796316455016571852175884867006104393229528796843747799716382953090990337998293907159346140409249806629956693143352789749405900207098596646101459990518273260285175460714498747633061310895113575061935332586339430404996230508094302097280818924008989845742933053836445797273599960292863179641333095018780181459179810682706090823166534715337939934015126726367194435658592629753984440756848942763261733005885753992766228289997447663835153759751164768738394316997256296656103230433550366656425677431145827801921278984414410115302932295057268468244164720467159421590526671929955279531025967592917323270259446866223331206916118267188989685995214573588565248907994996151141445672736264850571537275319060250711244003762636211374115331248558580371582531272598565958257752016112747822176643535872544306511782403167792856762408478443396102394122074044096875526199128350663663960514743675667513195774530835582286130756121638172476129288109244679219329970166258288109419840041270414244826072693316261861358923485809440910344771874781953795650205394388276714695339923307494198633597681631284979491024424200537444567639414572068175416125905322613590667077449986075480993815616684504142208818733206853439040529248820469626325565889304305443967661716874523204834107222938099874173633563815047286222073679722951129466809758357173883910236490158634709438953811918450679525849962003017813995650813058728510780304238362745230240829063928329250029364895331836336217689435506195365133289778121303896917994827968871911427109602368516662760643178963159838113191273753993192432862884302580565810557479362322884765869245528354858845117862186544656914185623826938077408656667199618941511594680232834360140831813431821304760027807329787898959069264912738947146079028655577025831850824592273452979583387621787682590468243851329050907778671247607207996964416362657761161351670142649699067549260761381009480460358254000646050214120625591441336419696016072394749491805496633136182033693452063165440667474119193156692886959121260907450274281391925892346179153941330075220432154095406243298054208881430919737397432683381013152229120068560791186171330435735942710087407799165806931670643106712934363892625714124564683242189557178369641595124409651678410585250214864317019207870570452128823766548382463931558248479217083541275853248401175202195960231768164224501638692242964329833221486638657842024375407616343378152634500009662874239044719839776939496750108075691521797836867733881585394268135803067564502862548979950261720727277108289938069725841568780883487531579601659780484963010250745230679775221645651869451593752253587301177429556527333619406730260659618656955460433607406261000559208191383537352236873375074752286183530509953215661262311340880474673429670908256456618400229349042988728273621426871537957599187435463454652352280525833893116769858815629619972246386513058729436840055898545900480346099641759554158382888587954516298357840027232864323587464742030868116393364862681098068617233182118146020187421937648322488209397818709208123436725876175560275864747984161099282180811719969713720860858180920444687144213130966949176286980898190298397606009021038448005164986917288338632143973868269840294812733703658893960562865130780449071074125009781440893407765118355473434146121909346025982224606008453777346822876588902679048226961711812223373556066346533628696429503273780997945326580195553198374672667930306656461499712431350777301954205020805626693868955865855695142013757730117349106902087854836249226157464295131356061479972240000369805052948964697305323516618446551196354445602060833042423269320782904750816663820789572954069791903561515226492676554605232810814112557481972246357218098578561947028893358631728093701042795774620880717384190612345190147113843609009311173695244287413246541913927403474969734110730172042938832022252478209691043034683234185170662060236517671889234090787246181672535837342450805210188638487384613605343676121366899806372753061023805742546759700331408169082872783208375907438237267157661605757929928841140648828043069424200796046081433249487190145046905699484620653132465424374174772419536999655483600210783812201048371133864049854771342848338863217008369193028343072387893842982236551586293738154146521517416308173719157781627016974073765323041349387739824832655074212796421927568771856547305031677611331766881116530698654767662943098008731349021853990680625000966407565657411298702741850572928505245231636978680245718668920494725814353138586945479709044875047123764279028499900647702212595544065775235195864333683469979241136355927969496819536469252613513981023135059067265096215552765915350830794058640416505594256924324381212010509466965781631030141082899147038641286502102926146789429649461835229492379109749050661926321125455784354247644445470192766712746680382904777340580671432512434439396711781064535768069568389081896104935875756352412940637393329709991804817816433079177542492665718617780786619802559144206397027574998859248534162903050803951803834271269063725728304840744597832699805004375349152470674804556519646358354802150990445448212890142462219110948341003483473393365800016790463287605632568460667263995970292958205990500791884083458415195008315106867771999822680217813283333335260062232459381778739637833981392638748042980231704669781407612733640174452745836958424029387669535519082071473031133008810282821513365430522245081228105012843716724016420985583550086644873323456304107347653592174135273603330735944696560564648984348333196605739727045102818246891881613341232644155269998660273864324841290437544378663535513172348040996388820065254201342246688262980972645993119643302338264440181591237101052237487451463588361766933330682525553583197108659102749930345866709865493293175611889046986365411298815659142525226498515245592185952477030145707273442624227632160741874452727146344698498487381731002352728184913387797764995929735809214587290745723874174646458885311959830696823925467475892062199276271129430353251424964919847588938873012425161233094602711647250111447314870492479542188444768215512358620952809112005070610578539976698096466496357300376875731824707376235315947372423684644075565463991431576653484021063490507348955281217376377507388609307098739450370074324833281125235404045394449136441708609352193956679702629072596217449334663712839111258585928087947084034919628413512824122656988530178052408735601807268390213463724121984735606108395831396788208530400126670176635572643676750426364820035728728254710759148170459923516959232815551667124856412612833725650680682765322438418288583455742093995795959672510200989382811104235214481640449798100307406059284283720830019886771918134251133565530750807506146836539058309852683014261216311864372362605583812811759986796819276656424844061709182810151881986991065874965295146781776308111819136282263161098805914290232396159129626691327684466448297231210366869130039004570623254776197157358827876555121227413182154815648706197732599450990833457624962041603586160684189320910757145371243021787575126052699996083258326094761981173810890625122356250656397358333639903363117322275606194466856893134629692188207377939599529939913227811428722463118089834728260253179220986806977812159455864354242336945228398351290270096500107241456484412964222764947216665426513243672728796909881330459908543721644032578963393829745125955938786106664455928721033769586394334151937552309684589714093824219302451833996032371661461511922079729133199760980688780054341778661611809917699112169002857527391792519370662621197158898069737958730846927653370583172842184844851902952396346436975082317526776135036615958348089265343286477097825559429900491383827900957668820797228974189388130018078002604620328526427168848978968885436521013197892705057577496714356780104045384709891258507667439998889802089436153274325900308143064046570016164008099926203309841891630697604748175326955677326207162335115960856780484516529294475773296797699437875595467435413235681855981235863248251585334535736435687280627837434540825338177896783632640945930421996747585448325538864812294315193152874714273790927917622326545356220660211374559332679605951623680841321383103172054808463165017528311436224473778138570398639987740075167364523359096657823171218672477472047722697687995505364079151369970829468522108585255698405787917930964068027885664306841594028137294483593714232660313531302746075596812886034556663613147303560236915054592767305995613929858063076889360417163919793004103964776306894184416354075207695943174552937207176818713409130851237278806146857171516443274344315894728327161730834237506372855937003202109521507836748397650564037159752324208125165644296283864278414537273669953732886296657418124884906263737561842052531710792391318731426289967700194105118571083103534753125346500520726525658150732452208441435300129596681814208637662867644871632120756083923860519706186770806937208932590729395912822683388539676381060067729256449461679547756999927614996240698031028848383073320581369257527299570598765544141250901142643528292570436753006809005257109141854234554681148735949568566903127421192106618547218732573010614288558459735247154987159620352779485160839788655239316820508390491956953203069479724269729138261958041387185525699887923348560943955507563216033834166789936397969320436856075863821324785542123869625756072413415234851646837701425434337920939085685159039768543061001017902828325108966907835172713114517746799072860126268115123742706373672962057247434934415134664122779638764600807471938130687415584469756595181656701891593000074561935677726626728739327178408422889144882123582293347980140430480323324199907254065850698817613276563673491640973141669866437306244216320434016823152750717041342398946002444256484291651370732176572087289888832087855185531604869698522944421419370864761151713116049841730510422706082694905620745013310305985207477155946234748945039869941772612826644934787073411644121197980887208090742985791310328405923520343641949093990733180646780773214655309105546628808039036129741506407249108751685867604014534588004794459495259792950043554318348873484912578646015760010437132514769643189886218928565086485060530859615104399701604539374479613257127101571557776446948967110817144877163261483321585805899111294169776877991687408592718605910656407160166354353925513249854831102970648905882534085331163631216986983026365629659864152374443515492003042226517432456456929140275379435034642530787252365025576988764383100073136933727941254815727309219967558363058876126605839435771345021788239141616664243613608581679489817415613577950738955256008798156378015006725296066988894289514128907029604215964482765528570520031263079484322033125892366963756289208128023373923575096816180898232953974755863051750235668940751211152217996005739845901679208772699266263026010022252749728775351186818087461937660968839103568095435234170504577857249007454581852774216814293339006583982638994341345464072552575304202831513748742634083669053804573205508262044637031935957058964068846654912881515103848344611745394835739282036787208955306141673429056473139321085140664322586407007963856402705633559301182355379153154899090136687514254996648098165558727051781838513968782739253104372676114809282728123896890619492702036746429743817692027592844652139758082140666999945708649503918244011262756566453428777765445955265528097803198841311814534523871871923803313104074808201552748254804657789810164797151801960474688441373383939229484055757640211794816089406714029354205775099932430784544073024142184437132768581094357604363439920381517559208894719503778538691508563654430641502112466464121730418237970114794702880732756365788793473388227264058264172716814819803340984192136862712657476026740250622280094420156898889358438533528247746714933496528699262926975221532323441770466160060361540648623746260044206628193245361163919756594125623857654997704818566369889314675299392509745264256755194562122286811302754077385615914214965433035068161079088706082413023626117534887116837959625400203209281224726578946667474618215478106037139588552602539481441423806265343054723388262134640315183599601174393965802547671203042314827209210003859224931537576887597702841434407943459536949712400249886555332768721888378172848041784594647788272533525672448986950662888884447086800673538698860162112770766126777204394122106988348844203847185158209253916677797485868448027287795562394449295690270683236145991192885516842177033522102920253117875592538050405782716757669480482304186521221972488126027077358598816598841455151824177100136571325952016582324238015336738746818272226096793900749257980937668326841595483434916097455150488192834711219046630322122931367307324350447854836768812208053583258733331696335741722678222340014249881582602215965841009878861323182700239574289903979261424299109138106955369247683701342497213379636393429451587495956634604568291943569809166542419105029703565575226554692463305029139194443783673588779317811406523635049763551908807731959488345044025372983614877674060347816578824078716555577599943604714944056908435958865163240119558726081164913391537646706498342071546116656306106480370166202829696260532674461724717365416880669433296805494508294525949541818470286203091848696990403033984093425799847417663325469521856296187220968586710681306455579999086684188651202396169024469669509954210289462731399181869583194832818644460924147958843088773687384742921177263655438463387360714013060873430244572271186973671203128848813488688650955033949664762164506551989878922199205195227653527801581881972820568939637655368098534939291404495090096728897391541139067207288172869948953244345802326705595740001588272785993278656361067192981220401405552955678409916603709001363060629447359434198965286517365560062358839765445652099605768932002699475034704819607285289136468786815321214718172878032148369073031797781103637456781682312206239886137319819675690885072222618532641900182833736704537943663315462574279652022010051975084039867374004297497878860548807500185114250936568315053751919666432842590887245864144597043110966407871429105393496380971128636414991983323565625151928320527370479685632300684757027174082670106136980664377476417488407629068577656504365071756336379165964839474440689869592112135103557656790138236726504592035488841871602508343360971997583860656636767407128268354643828476145881232073683594378513346023960112489876350725951380664941851116553336672588794211202067441371717158286590761199989432207466217296142198489144904839859335690865096587432866352244992086555360821873244480356111438483841380720723908439064346839555725244033170077548169840602815153398533035520916085480267481901758228302680693827848255089760462539852653190246960054585066446000473212078424702128170575756776611539423088040441017682875817032743818973827769677570540714361773338304333773102241798396327698111609563930290149377869065053249368706680688984312456747440028672249968284163809245684485635206221284490263924313326788529605944662093516663386062014907631392662311558028292033122058908665549544935441382257819904759297943318088984920789002973929217877371180172358354055891093421214690768686668110101740225761140231479088737369419207762415301930840181852533222120131485386211642171866369114629459091648480808708321172181301027618501877532423197588253896771512808429020781415478241967719688178120591312053984730158988258765272629043894252469270281630288305573615818174206753405119151899211098302017693184294542150197680714897274554404876520079209169293984373829460516159119657742784263684399672963518497414615509573944792849624712379502832351024316381337308120352092164278233830117728355648767588739509665579467196738412981570019350773855737095141334066706671193654977608095102729517683330502377631065505858399862802359210701233808585346398367188008775449349646990792870657078684291066607081290924097785557052093438013575819299193748002312563749732130273522811400372930485826163262191576305847428663073788776347472285047142300385613192779261323202437275079213226291292555804982883069965203389789936896139465918933343160438484396757912031756986648039480920204171807240500990768358105553283670599884478015687427651067736855322963173285097803087401454732506112429507650317954267349496844027246073343415448872800039150602882793523890188620925630313198123394196279237122641641649033754028773266859156910305529189012010735897722724344304575028351684872709325322720970254244159917253931551976784542709297622316480974500412108894893647895842008844045753142577469130072115529489396472443565731064484701144538927901647032080039273897658628022871810737907831010993512379557086154152206222308903453331104351596512642359143635302614845752574402772888004244804258972118769297848998562506730048763815938883394614356553806373945867691353331755947804449147285582711607396692250890319909353245782224970278724553889619309246768583386835381423173688518145183666788227995099640532103939749656885311658956803974030319942153087997816395565634214866294575906986025714432550502998916477945907376737857171227966068216382766125184053395321359439669703010113815131614108509094226324666337071437742555563175960486715431307834570364339190699706459295555086468320437564510133288735182530028279553276221722882917177612252111744706361108400141117196311095940358606799563249819826709859151733856738307976860094146699349157995307652222703853749513340202998298670823267583299147237390855624138084709795214334650855395946000575075475435143524120285011192957379789539682630283422762634030190511614506179392281312853280918283887494102267984397511813792387052536454881449374245855196833912458353736987809751063977539049433870303283432419410903203830567966868079517479898512874437998717464125585428087140577934134161225023062958410092147833607014676195045575412281034182909181613304049528113574769393476517345405300068311161866163710256637519097368574385545306662467634096429765724414001999514268008067089114742251556975697009339254527788046254763917442924012993037977746922565303727078501031061304402933961140605415320129240520489058886533490190914196612833679192988099691423100487999195781832975154765471847232016930201790429127958623987406762042798837122046811422308985064454815663039185536000885927435176790852922823500007619189824231232303046061403643789417242604856312127313691311819765948831121371600319282591740495620206230607538197368462360628117886424780105483985090416318722264186129318671508142900564547166264315818402373198035014834442681201817078337269559012255012862096441107836399922714913114031298682096667563855242974749697221649319278561690401727062986814841270434221916033016883752155477084275469409375940302321389050648196123704506381497465904486631482018871110257083049484044374399767059829452687643383975081766456056755188488954594078713169623903630754284000911586691206360543258271827746185311710091797356364456623192781833407537569556788400924237021048470973218497884598614877463468436215343535659816630310328222143683068072208389607683190501894007604078204228099853354088664257025050082959452785897772729258798787211512392130939998091768036039959436715652668707311625954076249440619355554734824694456517181350997218965357437964122326160302582859234149498611632406127987763156159650438018928575547381607184445260509817961428954425261077225271741915252148370796491220558280168172563875525246721256815403937010564721229626201564630848959276351217993899193121463205419871631166385680526858240438227843389885096743915155216608861856080207713828352493236679949548694753372211411375548112183482168002148803593544024878857776300754907642085791608260158697507240067999816023090917011143391292234409298772975529848653998497046322647858079842239208312906960067074889076219510156000365176309708248638816196625458972790058332976747335326725010392212914343469010991194203498257660362708930882693467192282436221786607678732944464143286518676147960886511899430655500040251355586673600270179097349546237528853295757057803195258227414136755971316407292797673213987584218344955517853599964926744273153554846612515185435071680846289372218030846254031417966936913844332606444033460614002927603839299975799193376403641221551130819741364807944978609720831530888079020475038274766358212706958018281741619590534421018924048763325516594576545356732211416893060053576455313602534534292839986578800472611358992498928091517187537389951428329253107085513273609301748294826604293550525568499510444404180358890665203160313849186002090598637887750878848945774440722514453962724111644579547721499775132552915177711690830210565387896478744766071653487965970366830304175510863990414189273232263599984089712291655699106347472936158944503001105989210097890415622203456102061047354396073748364032533002644758175931742850373306341310796930242076705703012598724646949981710299983688211685722982173055281696090669098497753162498503234956492472177500746871084893181412635153120556925513753671401953876700727379126782309414930645789994316029789489114523658054933830119242050396205323722050610171372527323146443576955627425138084116945309163602044400587401177887321531854560771095817199260674947396882248066210416783577229499447241788127896354149865708820945206289135465193080248278668939204479332056688843167251136909422119221638050116674063076325529691922689227396823342767197522334070714788485025316871378992452013211549812493014590011710724945462684126493444125047187899981813300191925775248527913593432067280935719205665039281013365092688227823633005829256293313684288059832522118897711267038677775581666329827060707470484462837809930517305677547983513738343086531952417219721133162333048850862062399445338259113123183189298970952425530748966798032909928478342907452872369046914198493731997180161056597322804566060483853266283839820657981201426556945385359074376254593220339979840565051923342882857381092236110963913806197304731230972612866991032794329442205510316283368921178078836514868180903865683679182489795623519618790443223307324585378146264051624175670880669981372718683383293925964078541603035296062021106846513519811699613326833449776966537396635290470204248627148030768659897317408902727418817186289684093738006117839484620911750384634730838558486762633395766924385989808599978896721847835760728426957274763671805499993317616710151070631984287117381721885856261661817573423866625553403906994726243376573758969848905258627149265738884857815757135116661012286070020209337168509719009961714223000834222426711025245292319655544468208001844870537167739250284445227421417179538046937887689054737843191841153579006446777658699790643352230436167185682622011003367662703015183474376311102436078310879136120545869990872602261887326149929490278917367146481187106194444179976847358825513725937235571608531011903753264751879432718942450174091440416156437159654017431759269053659611376072826800096254006645888086948493097829069678781247684780923499415800431984032369809240373235407323194882006108357585293031695072466339657154345773960033633154957693651205894712576557541023778571012381255483476038420878972664041517672997197434011944164587207239343275766332058108897867960944594333977203397191444817956978720350217888769287752984591247927902120755280572682015312375690881448908520906715773212023272282248361844923321654106198170173869571599157978941847176440757714942647931214718030857196905759581106733486639783939540671703512739985905746814446271308873021293289617603498653526200630010679353068690073961457568118053527444076366215834250754474540980962352250121918987121640896648546911544485351699455444801230309545556615913174476268991239830624989779188305957056858726492652557950687070270733242095975064839103719657163217178576326639776455156180074552298570678820372688251394334096471037778942842295955458706718836940241280003147150287365203600752102191726818725990878284244268164714518553959319648314228512791538384657561595280168627054278301702088050250032756164981567770119149881482297645525692943092961122528210435469049426843632744067524637602984567343136944054459131651858220644079313038488392423250890075150268365422642506240631101312557979769511823533200397694126453242711462277128472610964424636954507064885008280652040987079064771875650265393933931319771132898448937381744311199518494071449597731562573106917494088577709401509733951563126256111174279059072564656844240691399384163253648989511387960317005328404916170542118590467271941714516370908125332331701431460010821837481668045676132960784641465018154108815306884871935144352132861845837807815015737793457970048824620961507975193202644242250519156688842004100671004387066687315085501330610505795220736648626721794593463731499826848853417217014978504395622704584300235287915169110156258133552543833931010445670794151599792176614542828772594229720872139685868176764743163100467448993246203202811979036056256853235147499482836132523483150917928463411467698141854314720606018534191051073372701668340507188710069762277202015904654994132981681314385481465090147703139263178571680501069862633406345413245532407867996609163496264242253176487330860173002580623688270518708400359972079486520648491468788746120119173604415525252018176061009273286454655020112162112869635838140567863330775156642273673259727859550952350166685457501592067140491344892214885139957740738013031950139623623389587249611816463375948664604859356321332638970095697115207368858789341027050983275419871211360513278510335200641174203736175514743304885539832417306482280993361389818821820185004302101562017345166673776695615291633264553669394263588169638730620315560684288404288026526331495211832146435350951339181202068980579536833824202569495846297636135840810966023403050481623698678577058628488415871010434303332876244085681445949062415312122717797479488366653059641574492207953390859123523803673421582938821112948944542421918509513157867087329830496842470591848630365376614608718793298261350369580383791588820772003607808194900261920226031991375217733644843632667200942696525422281241808496187770454984096519077696610058398271119615344415094986339604659028711051523683901902153586940423662232263323434811980484198029410338018801523427651035847552326444726707935138938376014441644452085894342958732654188540731903528267438579347354179570058436137512496948006287488967086265344614136284434594593650370284571132602365435878438520963358466363219379786988748330140479488594504584655923266286284178020934797047760906346301695815755800935267006548005164783368724939244527691548470420110251866277166849446605144519469132945322606260939346003983710514100437264719939020797856480315994202283850183707746886872916156037160064613239309560297945506198807458612703367963309892478620127551697467281377135308142714888484938787851663622186578648301170650463886948529838291954985872749768003348542694780860016092659239708894130127542679044396768382851418641862191879208140833218552369300733233083613795464462556001825163580343957094348587638738326427383189806672622979098314430578748126535111280750660373336625322516261158877169619131899273925505510383481899740797093322533122862113100801832208045366663699155345063774392743520964152005767430836300197248445180565166114898361555960984778990285968284194024286220288580578546068434825168052476954300358126727106295080335666244971699666329775520692989123843380018602412429567047522849945696620314746977659180669636844160911000182567626135409224787012283195741907176802415282288270801995976080403320995872300637671461511793588834992720627823706940556243898507963496169239985276033826780811427405078889975240900532356672535779377556128608761228928907903074345475556643324141661882356125780744754834361452610236480184077403847862928543215947250996046118193811685693921438262336819946630066146616415613652467226805780247562148912324785924844689377838684448223059681694741615035807367135905885800725394191968363682035299006488032268519623002698378819939735464648032670512991680550084791418700002249431054411366470417801566249620781830290350196754894171012027920673014584092594884496856185093343840759010849697030800357704038157038366333743992590307095427469114309061608022808159024015213434997317993506909046659187647265950801350546790811219630578548828136280029713118498392917923073000947973875621784560423491875016457003560188972701941729135280877662063029963407168702371436204670869970580966673501990421077010528079924251236581429523152639380343602511432918192464407195695083893796840201065379245188018631984043575888125385285145758018356757735851726325050621736936661585519527101017991512246324010239290521586521582256264164405778463921603469512070739336748008373857440330469728676747505600925996212261117884619485843702024766776214285724287281055401873238798706151235786916593456407378797413705824776381464687219071837306385621136453920804502051393836948416767142120715280781888273462894239251310415913815941198773738671791090986369094380650486660806229789166334097859039807849616654386308513094039780796813810522779836151055995855534900222740878005669470561617079316382596769635407660809910216670474324905404658039457369992372569735553528534851442919852944359762914085560513787430463053937279692261117137751648351345412170182016601950137478917113379216564792502950148752833206312500302744796045445116059437410716949940053098273842562121276962354039268378486247762865587180831159690535590105543987904743540077172455604624123810779627731501445063064813725546674483133736852607382597131732622259852346751169215976617924276327877562860827608118935286520731280003140880991953188981703206681818461770557680609158387772172070341411710906235173061469963561161475242810298675904916870905566817588263763332164255500304284172107504737798895593092995021050786148154536494030868781570974070258971117090090662065851820019337043747787860628718872611643543290652170464765848169497591601834903228069704019889423499012300551334176066454007240400112185334846307541878772426028975168997562356995314203779715591173915384352019648869086131788863704566953698528427552571045700947709084124349424096700577664205049781731938470449396302856483879017974289309945959848282333101651591947382711746833663070159880946214279606450495379529529187504178534252329367735901366108958654905133979998404092848102363978974852874394241837481418267829580102907448797200989934352279546659176096635494349322541133562277731586125358574505233225239530182652457113701448064524181056805969118303219275799227684927142596961707464798380527593824552956262711914707520358057740348816320753433120537248666139890329617510640667338671360826574721032406006670111772027244724419760211395838381277378469764917929816357886683524159262246326314965191079218982635814334804111098112956503910715597545066388636759520827332034115759082538146551007362392037223674718390797385676397617148199423635320591240421390067397294869716264925749698220925591818493463635085685601226516712402165628578274450020634456725091787437303629019691027942724062239416854520672672534557725711365962127537813216949106058227549543935121597387796128764769058419527841396980441302761600620533397523725293803404120822044591894900351971931148526405834501933048674418084417453372714557639322183221440935200800730854430720807524369078838942182988552788267593497251710600263700850369413295084193682588660113524145767630292749721146098915657810253216193951553456932567828068625645321460175359323806336326233904670367316460044105439398294130054433321533023941837542040766775070137642393377076490306619156780004521064889738803662433857958977479060934978921067385251290051599723894163197964444844640074470568805904546239350423990506775286874784196220002940158714765311371565498658339010435598144844245464253564077113711917466962078892335221283302142434020390111344847465214350750577955634064994781388531550218876148872992310241384201694002247076161779197285310624787986763400019024208502213895129210080879241946064024555878227890885515944266674531406489722913733946560463837078281827297950377391958821484010346436612113442124460885478300875639080729989696419207733112076911331565745435578568021382602973395448894059170987895947406752932369089945020502998688472934095528778178385265114025702212869297548433169901890625607838508988429076652522049683067569530752195742605427993827192652298523642138465845378068088559460078868096265222143907315223930355269275890632910635058178045342082770256711316876993525941450513207309674766309616458319154831575076921403524505792075500539621878650638126561901748675582238770389868097624615693045859471494310634693252469100577906099554242163294302853915612092660587201007985987421393840253604994814739523842352552115756805095600602589192213726972222997149709657124527341819744685822953647123953575829802625466212138729343621075663714936431987365947263058615997342407891214202513599887549866927889465239174805848167847958898386582151324192322708367974526366315470521874520802527254974022679665320997233973108305462202600434907908653032249139372855673842248577817188296318432874697660531769436028922608800402836866036638249218917666562950828443066784961565131998254622474233393659382283670644656200327012270807498520238865588181293696278422651574082374027823077605052292787152970385525031652691087843179663721177381005721467948277400647199332344497490131007274138084093645855464172035026538266887713947284151805269381306001815433866055690100388066232177423744231509012275212235369960556819935320307688663425332092577814758466354583401298402893980565086578924965922375298406731129206221120090940290503365589181429126340593747277266811028756145663935385713090995481240310407585277307273610643626635364298425676015052818693200435232180189239540068347255847072478608532727604093542991143091718884942792130357878703602962850399131452832900463863296169237693093050432828315378608643366849934065876201683721351992490615602956169846381254316400027260883524807977200214845127650472602622220299043483406457008096876101034093220372816985000176334634285080579534034897842212185065272803216274213164381155420399819834065329818231341992324693747581417265731030809686647902222227022448774800928452289615326672449676747785382339709353275344626241493821468279750010997698715134913085609527056417986316557220566044267588289758783399926035589317224640475353279856942546466613127360540743930092024676192591979813686119865671778961920707630615545893964265474917554216888171918711729412421408906314620307934875146040739814235492357681383081772698716102055006219050002668773965090572641409647917847581364480773686090117465126385561316291184585759830775712779569998380753129918641160269792264743261030490440660146815458060827997884198621427127202026541971463983928724767335583417650438122416543375602697422230263468001128047613928347908036649642887986400686813455625653155324779743773086273501649116387728269992054984515072671769002777406898338019938905766264657548234407908841443539970164863985717299923027943085543199358957213360408225672114247566010288390693217755785696863468400598534885433587098282115410487142343607130804745668091492799093164994910106912713891221966283092957290634840423036124564128231948618458771712220509216706713097923666643341937283148024324146202574851331480124679601816873503215851492750027231456736990075908301584101704436280687973371006917929326743153832476577701788993627384098351493116936573526683737599865808717118185624655891410955024971970165435460263230219250086132232138045174352728891114231712612679303787935872447116446393968608570112786541554047162905810658469417186208849038083210508991563006170085152268364699067640952136236426535787220245334754257994306872531507229203064698193554420438337423344558214362911466687897400434625368445708276221366028011594127917675793408735738281350874826766275276476616014548431901462524225562722949757673073620733623404547379236674239261033902598201082204129194801100555244847158604927860292830384595330595099788318191783908570234315275123153617797905968543851746754888990205580293071008074015424132167196563755159277703783139914349347187883732070484346463924175500703483660955739657324981082777117004228224378132543222598215598669643731030856301293297800436758288510166649123365396182293943239115957141704172652547506141287729626456125814973463168884734733751564636697259271462034854603673023931618720726673422539030086005067825827287684931781181729505766368081691554043425184968915392544639379994112097817385149252608687397273624582409766683647400996602716379432861458251040896749199592391374962938964820051559550349489774384426464882174303347416281974233256766445003501407226796280736450016830111974519456692758880012719112771976518666982606837544416232421558853710851285942085728989893419390912367978839288673383504647141084253304084868142717490650919983098023612102232340614331813088233758226633273234616026574481679786578801696616848002341085740355495569680932133966417509828638735817813657237551298307441718828536979540801244010700439295957241036681307990882200374257161092139306018328423095827496120659961977645535779564095586929778580401167176616247888194230260332356235483883030719576566190090975392741008645196319642923354572048942306984001593065327933496414961523304739642704171823850741620139095002237004550675623695338544259241580493451185483147097524834229950244927637157285273323034394923413268046889958292560855803761694703173931245230473402291197080911190218653069855685872702373056628410277772624331301967483486366268780981983498176768998493447496030008713485494472705974084284131841604388752509839889550595973420957893203736549277892175747217966665267516064026373135468701700568830809354449143796633922563108186862083086322697129300729664645043059588130705500629848692064919238236058777696423892392322077126638778316808815229882380637294208127997758269830002120880107749509064448553828968963907626051421412968734783682326440279442734651795441280988352745811452589951367777630567016929420453513945648077840998654291566880153223641041120243200195346048098029302997415973833748981846273046922988341181803648423704250711527365258305709274954840288346914675692783039408423034556536798608352960966044001132819012431184557450530973218141914849243839824100622375527444788459729202740993740627624111535123730076650840705270686985990459748083188594321596007188636631998050745303959358927642872192174011281890377736816204236757155422191133831743187458230763940948385615306414040935422392071407679166923874366293270089666410477598203387638943890711442482330078907217518610763621324401902578473206779837309975800476824673892353883268529749408280846184214844994551750504988033151585696752981086503457009440672897140624452006316956941724335885378928505357752564348232835064184346884870001555364863567021805276635357581252454930275072858747157033208992290400267248187684719133636185795097663666027898761729225516371181538757150820653843993549775791205914399822195412640744643068905438130704061547988437339359203102054931289110714990841437204581579931535572240559275460951473789017086450272818952458149341948855447280490403261457535262546051043590012840563215866383423897021331525934289698839484305535606392930496512632507983157158133811531696397957483531213830977500717568814114169450007964778065048587270055518725622290002879776746532013626452535308225400890319089032769287467076687181338578193794904559041942689470466974572081542636654425068496638911047176352597537995563686330063687655961971104175823230617963086926068154896730318512962326566144233081392757770757285955879472549839479391441778400243615803442668394412197177768724493428371116332257968164723026539943448026248482546652532845587768876060831686193164750928708482087491946348869196373880722083216617986737087732187999158575949977735787017083480869959223524993160418397468339419068970473343184488435541330828212934556729806732325614232105278426560635604836895401802269846613751086789583764328800436840852747467839565386621080447808227620702177673144723164589872722784231732928969042572372085181506499915409828230833556529034024130188475514764782413125889143368254262120276059129548338609533115669894445794586397605296943728968041429775423671912572932377174773801209072661361876371037609576809856829891458043113526135049235335469293628472922690424355287451661626251988297210423335282313239086164036328598356819998155757613575996673095113899929845481840623276077563130684113833933822215900892670725105096759586902714862841511948456687435040422247669011543495287908434782485952557972520677628734586992444504290280448316574976482479780855723981664567706846687799766834201902419650536602516984030588901504958103940377101878530466628795757229400544838068678951849885274520556638270429561842187931870930736946562580122438787204511718167398744447871253331173125892225129442101788646530395205268231115965832547982838502022414184647070044994069767692923375826124255687069768210581422150370235570833208479605731474065331108831655836917339245628782838004767167191629662349381911469043112221607447458190229420627222534912881005739294299240257184288411300988493577281426564962883599712821921673240489352312861464713677570839630407537489213338304011055588793059952286386203048772040069636237780823577972639706422080536972810626897253048979923751015613583228146625996712968822300613499356893983003329533574473861377577150056474019422197217031323607400783795225033126327065444874772593532768061401101821303924774188165095139336820523608529284227169291526672511827955698125994234965247585050517412946603221712204079886049784963103850017697422002535297074939952564224699629135554808790043016449583132264975070785378664791559126955679970872739505035534969776128887394828606326915650139737618167084593993147299518010880725908154249006433516760131740566753229727966663401570213381726682840462591164247976797020432462679672095758494508862571972094007775500760375316199662577620513088378830251563585006451953274112746550576999779030740207846286211201384362725790684137286500408099493177964316467335818357595577272575885973824432885429715886021743761127392461380933586542316252115960002033983132875776676528901144494675073810321025693944031169733358331856598537728952299905650179886268867836282968500693213898686004221478322170412045879831301859374400099882731527491227008573746086812737218983325437043932460500696959128953161888032098037290142882434371980616902011405735678478151148828384600703540156135597593891776733525592199620001647063093623868508766133964439271230366514569584042019235363857938923916862773649762036077633868279944926862474485611575392042833369563212784346448575194455123514473161336127735357655918757644793597170637077240038029849706176530716287641444195058671069834396810215940445227813982238255822863238944169442491805295355992012268431725081489840743585444269883850437828981609963839257792963889151387840330112682330973571125949464165744584870488365934830743552549647641977208375983162592450798479213513296665706284447987424679452134135370160536402054985016500957168792390532866720441105915349405465912043839210613200245158909086563496575103948839888185825780614792859090099716337215419427818627620688909243046708244172316321776007158517554375701517159051141780898057700030838205445256036759795880163464577868310270000556578179386629287635384449066827215895905617965725082608142185549109101782611216172366432142230690816476481983795405895049894846017091884528222910143926810097734491931201544706784003566942334998315425163822204150608513200369732379496444472259633600137056303347818765813461177430254100158481437178932891297752522671634381148240219567165670027618554564914945771091211819106252879103823160763117337593021421301326029164687860879853881725169717272070269972967563458871320981924123394560500208310043955370236210056044949434253158429985198399236831135216635480842971550926018839013134985442376139149598505562119470041104607423689961925053782792572123480871117998382314888758025516790223771919369351682299866538240249927341551545215703460651050697106583657444557408058950033469140644494208612592863269693290973085175971518461855231287025701113184781157992497192115723688534026300916740900016810879198976485387365791952945355520671216561342977315023128383485870795567374343247006232821126125548157815655268947710098646543398751174504762559699165877937667771020589679421812856155925978657057393320481720831870632485887352471951672990232676383520029565449130461374433519959297696842631314428210777368454671668109951646337598247410548340934822924808534502465225807268846769693102711675424808477246974734632466126243579897882046932977908741814319768279034886398369640771960048624243289074042117968414427516096225667355924989956392295702230370879630585230305794022545577855346511519670279052723627986738055880201483047069417409799798519584753500913428365696415591894762281796603072356014411789617614604699996686736247007928975927752252783320632528186151024658462375924927750539624322736786454163166898099528121077003438359453225772145588020347832992975649342332148120156078592700739389538295823686439514824844237439167877775019223215820539271147645397987644825707164604025973650392596015875467760648201844123200999710491382601616967722371395999498782877214952604487146315037096231027258928877199675880248782529847830416800971529127721109382674596465177913593127236571341119990670189827774845554018165916740973384418346212736849405783959654245392931046675541637033641781643041930930364018602058802706749810839109010785445366501413227910010534218047828846153985815202901730541999933812082778028011337487594275428526262819652423623376867786616012903958372259653335608973393059989785263784489754678370807465782319958130431940981407726797486510706246844368787544004789165613401796622701285959489983563281205755608566775809209798492183097814551788511226856576993229582633202679153177029336339556658802033265518276761066019557809407202448943734196515301520906330167662855171024259474992437626596691201857898701106544711650549326897508734949680520766298035094582301126291377865569098256873880906566848020766543128701041161824546715115597819160285608605964451829187218631719508403930295081459560575184139765666530682157564042757086203622266507681497842179538760376540332679795506952095156244935257565343885195507413133063917937222116833533778865335869004541396021389459520162152763130849914913956667332853069711788419928005992257318241894564695756625145633278611609297643312456526786198231289379044978505814466330389175982809934914167650288480990783724930081068649052773117547460610614628710031525892539812671821495924937304060253737925815892443297655009394460042961575296934939240104570871134567398903455371163653208360686706395555698755419034169520274984236393894680138750497471148436504270945572940673538131033884949339063992594094985096715719392811314572222849832139095591413807691530780981895977110961651017555582838756005217901015074601092942826909179216591575577388021258803359148681299473542921318320672399288889970135756603724906490574110887032904477179093778861792031437179538197947667932303536914870018517091749455854634047971237206564532601799165772310607074468091764523662040485164773842807135127237576408659418009972815280934319537415931430456322895217567315477539664491678251195691075620069763840281547227949596286133254956387085271369373624926678844990023636024460181081721525214303101599468606177548523971797853192644675483532960862940508645334269144174854026700174191793347872842811186117066319791055836527021879209931860751010552263067349811770515543083872206460254836930216504597180318502160898309120030659464674621908450710865897250081875149900872605992405984006828135267400976100918866290162006970379810349571692425359580886331523325844982591367271599590186940229944634613813132751347609298809585356491571000713926032607306818891681612974319830704679863004848225769373469670701162769206260036743659011241348688233732387920817785120196859429051125952278159736163849893102530354329303210649576655120826338458192507494571386092259843534263497752419947415072473956168496172247424672084027158774421146023277937092801345907347876114762624157790761198250606892653411319105044724598925207471354767791320732871595469204601724307942280409554561399544244931467617171980706841514153416451840033387866105564808404926432097020818874741445363842737974469874430437349032614367295523323224184517617642697318032671815330261863335305276123643212045055667131981165318912671425860943565730271462887168100575049519682312063968157882723906092727085076520425811913133685977409778926978708330831982858368875995113380146792451997700812869647293352828742446986185905703353779755677345063261441192617628228697033036178442064796700703602412043696024562533312883943810588457958774164639880471785621292881671911015058228875833141004730664249481728442727726314509649656842403625382781723087642227154433860894496967818472699503073652276035296608525192020875528631286414613312134342492243676365611968382330719078676793262626928154971015161505258221522119170316104534910233675097857762191955374133374015556545083179190898387739038417556415246889490852080631801648473287079849631712690227094536391979710671503579441273118000057307059557881220799238100289046733283870463942768295277189551163886145943473062667041898751369086038236373226533862527452367470153529644127077916333519862134995222344677457255283558394808099318990169286917410638165367923288108012595976111812467215446875498377205576779479834649301097784391796491214139526551079247000307528023177447290656116825822129285867192455525918017268028137764478226140505738758274541629034628480139244881449692996073525019865378973407865485584228394593635874977648596368322822104743460687797105989971341559563196270292300925037475276812778175200430960852256590332241495412330430492995636115929838235105143104909879697332921653362838587182031641884432256195213834979205735825804287224669771699843336538115736382478157832745467146703326952658469394902216610148298552719825945400737451758046872345110952853867654386211068350996796672781241086663067966844469356138861363557781581587685560485987723018342438208918689152664187827072451750143339817282660864620669328600151720549991755953504390451514788309527108800341759200955968314037382160150947068908423661489566538619171344969290043389712380629638614652038990713655086475649114875802506693132828221976765622724408819036825245052009528537809182907091415330578618128774811143844545666142395966043522196980392785185371928809204410285015808643268765807918972446921106031053188351616319380939910877589695000762795785900258026747454223465126634933050882613463852280281685786673489248265792111283512694158713035609262401405410441236982024160675565516116188758125964053818278292133531096986586254328823441295703700855746572990030046636782143743659374724812612976134514303766630897014739120093470963047655548766509639076599795669157492590595049694221604417120428019849307740368317232645498193404582598310217353793195251552899308415861620935049632091011355397399311954628531327693968016766806393839040050144782199151206103513853667836632943937689352363473962124755537958021945949359758270931601021700333077019479904207138140945475853656379044164143600072223843860452213605378207017545538792863405260248727782824802613699659669572499483449262754599336667395342283525611112395867039386524434064207796354585423077337423114152028358876816933298898614101609064479973134993492337501225826546326833081909536616015669029630101700299239186721551211417398450962438114479496278212029563385804710870940298640447832121130441095079213421571512500966120529100394785769183420969382946176478767565151345478735017727446526855323820471310638040289069517129453698896625124711038450581601264878922165729473242460218167992795469264867863002341431603786395111193745057473308332152151522646469900029291462045592255628436976941166032391917151969210810414424064609039526470057467918553250267263399243665204680157979044493489595153951912860197718652435794143502595209390916984104555651180736245061873948694302704610298016602869610429076695870482103010464235690807423507225773846174205608769652366712638079680354711373506991394165237157700074398984236550281196357759417188000880128050340290077722326580853218170560004059900349763975197146839895095531597328302832638408139262944547271631813978927685773738304019572246870293095491570845504774494173756872398189956417043677164931607891931417392589329125577999761620485475251624156123713799292555243957032678278752042153900609168029588379376952453980374282134896840581625099610716634465981960523638229747489710634624780948194741965603044083999474674724975519502463087698977410890829239164397272772637457915698425543491053954038871876086591223895023914714793273006352127751391150016814194416412050319665710270768286726952173283844079472621175144038001939625708047312745982511641057708052403563160155182486736714810819611691776892647258099092245830511245296143171742995559032609513806858603890040557487288243167387653731429294680379416040478564240863593002290260219898027241123757502167531500205313445859871621135801055092264827751198445382960176245379836215138277205823374810381513703008394132406782043079025971545069086088505655563918351817577187157411676211328752832749461158326799038490590642217685551874370071014513210526151684358690131709024271317492770687713046962384033984899556016448983699207073224539807366367611896849777781219179544783305672539167133663002782939624028174849220820006965823977637003050678571573654437144671712538978053790988668894255018722348892316353321303513316657601948168377138037737109169749613692716560901130911013798830226106632494894045559969646152262318864895090112199516080379142602841371486280321787873655053533369003129036087862436494841489621160315335083987240990585775536688348696159088646632668728669278530288046346445954271048599073259003950449060989112250884563666328575949187314897498766831758188531960173424938154230922587143502086813821154161451653687829287981983822917171823904750085626211262221917850016064136486217369964684081049070212531688086406664418750487155725609469670421787861944985398292524641158422989429370537751079045123102105653058720066024164485833143209895089205355895348323267296373615834431217640886367406541463649764974158254325744782030528137850595195772946816466807587950905961307922191326947128568089802073977268084759257652073998787090248841726912808550518505732047578658557219774261560254050391176490089319036382544909617495110294514898249465193710294736870854900988301048328105262051867279297779160186542558195634349294631081191339380140420333900960404226526264537011093816830506052957303163863982109492863824760481121429235250029110716624040090245651568406889269315210741554597727788524860286789127518445714103316907164453579844454968941227815235407020923960541536613977238819766200829342994142250471189871635062846488664771914873285398795555667643020719151024638064918680827349173952174695846912467948672712367242475400689391159466806527995420925123248091693514476839122042957063356233141109140323919099193507158133519552037734238231614559202907695847396289779004542308246366289206825081369294462110725691527948014850097178885414897641721222027599849958881362193746013347780622372926356756654513063491403518743845399080565432871305865237924393758404553725378838051574469503924503369973181911698090995282227491656104054403194589903753771456784923300256015815669891041787694936911429085891366909148986659384417436692849979303515964991234051490404516594958012755335495305783522508501219236967435249088195312614880092650544752228650398186585315733441366926831835826527284246696602276632390989264015566275504277080209650797423783129971554923781104808131256756542272046740811899940436199843602990759257891394113626687909239963210709884729636127612716850926423169815376584513862280668916069275951435830541966090777837094388673391869214087848167528798602427374171388297352269795330428883094050725332600720683686582820932155462395871977277845665737243966511427668925931802482237746140325013374887575322860755327931702093034322499555285069674711419436499429670970988295131171411102604518914963856334716011802778930571559303229330780910419764059013745987717213760005048914151781538700246827131992253664664040217032462844540704525041736217953545620354881683401774181010129208415432589222221549648167564952301459337559529652254408212474299425530794237953698254270104568619146509750633142147932039746135743308082300406838497361741704526490005598395775608948020375671950452892417467847657867509371515682835401738030354701356896896575369335938121961686422333678942860629959737846217909073250625462470730294763176486514823324131224862109884659859059583212830960019575974552857175979836936127462205727860997540126484491760792596653884264564052444805493382025326255400901213001479292408295323234790843263682203112250078353574795154746877995933630486215840403170021094492625037735501094419190558444536854655270425073309915785178327961559794496076009812014956201310785697753499502154805024541974810552261339175940031072109698357948669441541598755152882032528938277910575345885255941161598388723455770019970219877166149741273988647686520378786293334886552693462340366740031783512255699719411429713744535006008223811974411740371678590026381482694075467314603537497850913801770098161353469029661143807056552495071608126415246975539376405373993816045629426462121476081079896073869426802349576306354775033035352082735294474184770641944010457159759832114440479650673786516927267904761177595386325808169870184623855166323283592956350129550633711584641695692629572868281571055362112311499936020693790443993595190646539283120795548242923800117712700225953422634316951559348290734429944107546385889065607499110251633934100910928379902216585944572855484886267917040431849507926469284707108595850652424969167991771344411027520860493750952895114647457344108858210083195009653077588151464210819886757504109825588304755388041914322954396772137368827275811843876239321596517994608642157643560223685107555154965354891513639587269154930571108490043008241758779439667420783345463824759967418397054590906357073110742366251869630365824999585243737287081142830189326792838262631734595710027848839869032381015849747116115309011063530394978347639432072705729590987676955097618327768690173621721234168397938960471169738928762158931654938641208300248115445342313398694279665200697460700754962362097885630820026519473762120575456765202129130950892901475662118045686778561659026578409281960040461149814867621996318334875936037242147129800504083500913033136671138793949583706534922296305110515639339920328209839826010818613143028369336875983834764205683574605414070030370561740076752037393676278405536265497640871896810883109211561237031876241028402968962666733597619552963620707467902110373289708222400523086608125585983054797172657240107648203544385818513748035568076476087710871686071318489767086618990010287917200355574077233467192961354274348081510938642962031714965249632277003271173515526589492889086880366438125519290871250809899923696283151334368621161646622735571355054549492241748595144044030426492441815527214391643781700476134461891803900630527139762297220963633234412393724995822914413602466900779991998408084981234195051234714015330073816123002258823347893771011431055534804872613972540002383962270642090590526415168532055190048619080666147692243681818837854557784789463709847342473454257271971267355160789075286599151743412171241888428429436178924780077456733215360007765232604073940891217593475064955946787960715355520860585057239962186912604052296996074329240747309362024889229961381051975368936508248884827640145669712302276278739680973597562125575326840992404744785439424068858968426246063363369012578169480714829069002219991035810891834046755107080702007762776317163041729186094415828358552990603408995315831780531285686259666515366190778978905131661549419579336820358810720842953529770463886991723816607383628241261708836017013175593789401847514678462073445377900383074836415727121480419819291144327642662540076400584862296558973272549337588459657373487181914854582714496940161851169740687174990013013430473366635458589540832344722229669031294736976129189646530985410575380915032466951796853774682961100113615559161917667764720783117217289408727489666006524390623390212968696771295411838394968532872382816373626126678282760529322961801945844831056226389342321283574535639681900874528179631477574444758853450174181463817780028357074939220690447956118714333664983625038860943838711799999642933824360124661976965137165773997265486904954148292182166083878056663931882708175234802048809670849141051209165719130203769848745051668076145191351081841193120073006044926017798710014699184453308069813672539403478266468586805032041766574557915739408645807663215001771077362786650399294269460798583664261740297165560214931660724327850221611747406729782869999673426201568827884987721190432607727272610021490828331509778529877371423740017232264989708174896589031942109228729189431254666679438492766724305573139040826499004943272823936379919520717795671340950725694453836151394225063493093547118230796526036127159998691504591260532947314520866939526466010012596249766796668456879058491522921353458646643079419324748436449719279376533225212536342070664535632109117338051363026427021052209509271080801573089685376598420652608266316814194460953577951517578361511327075385012207381286015802384436198866171876518264148931709247637493013953611316405070126682501814836788027717788575362490876837824034552003533516060554979414964408366744918927821819442270595158085661580058971778207462784091911977461387004830348353564916275002711539220752794699214099044680408548561748989280650891058473543309193914283169469050854614098487213428371528099009760273215604638745698939669232271428362041757436831721625515000570914611912011110537425953018910117411530333632332563009481013823089594640707201603715069153653752986725184878720338117291516073347739594806574056267246245709223058114892556238825359442460102805489327516610041790603075130635757656579780805549679127161500738197984739294121527107364088985245407900628608493822792505896120605854407809468388855350549400406204984861682061824954647398668824582033266082262884060813753226293760228758100590149642682139171797724944223259862979399473620394397442091803734454167961467260642618408030813239169745669993102846207048432886402117719274141071013961890674885548200390824231989214124395096795765928966834899845664100210433632245750144047863530464198629211027467201799015133571995922325731215010551416452045013736085321087573741931997424968746377328444184996283656004051430575798320388402926345781532415864319448835848572646768975728959683798743428905520176872835503085932572688170962012199492865935702929068866034530560966397592623169197057776589587879629242899617980231657280258242558365310617827418823933377440676107998828373646129725500705945564954485890469330897875330321531789600241395690686743051647290766769945568520675929824690074344375498497004847572965247273283329800828779467786692772000916125026678193655734550094416130707285138979705260949139885640467457114487160189018570862077805594098160240655661505274203433156590732794158527117254224897384296717752477513555991076420480373053244055266716711979511179276838941427195755438432160191489580236434456741151800305137106339564355705045224065703939964559855822916449104605911474907374356551234747517281323628539698733855847882383371262919891546086729741406122540659144622588890738620137085981133760890554753307110964716642082476024732007485882941467318772579011293623150254246504745254897683951588503002923498532474943550890333052397021237369096165402042472004361787003182484326784951947636344266786217659016334732637363483811176784675985223246763402243515882709860495384065763273600147198885384104757898687448921036480302147435839291508355394356804259390525712619064819251163229409700762065883221013967894821920447696162905000849884248000225519966947831276656065589859730615219268513895063875646584506510622416628462415650980167377566833890253408719682903828639465795581786525295643166529420600359333307841633565760064325505855444204714917336708697197431066503260624939318708354440952703322476839443095386398247279807586520461276711301248792711984022928002582725524462758381737904172718030535323855828539561742276558791270373087187887068383534281065107017424155907606366981775405957826023246494028347665336921255668436982507207077340433604109897882009748006861626612111041498846831913163787853213807283605814742894149994572531902087085223691444417024002219945787600705707668040777551978947732390760631444499234605301041167998734525170194285121072860198067099098499826345361983897664667795205125294594053096072891333713907185116687199177802372838817408353875724536066140885752916075300754738607493437952858418766548512435147853506151715320329913140861863853612625629725292980656100342420309086687028169996044892235223531114403551555011256878031669082721245590491806530806024176088588658364207350410108470592029586948309805966675237514803488679857129732778560719250610923187318703177294834822173137455075068247802262812353782489355707873807648390340300926897161816015248432539531763485523069805282454285752855761747901099191917729752613648748765830696442766066780487344558660232039103136276930214146528969322887985817565579781932156677377313096518298785789007815400188378814070141293534385664609231126360538095885249769361506739285387271681407133468031210020118258451095604938280384354968063470749805190726040859062643613813104508273701382610581283108393241244565278058551141886893502508227775073519056308520699344369304962665905248012960890201064219658316058981154525736908778331148090897401948942610930710784078060922157225041991675586750643843866280499953011887021086414749895186670416477673572037158584070272518672570258286742921690878848078259993389202008950302861384010755362613721269761814105021086258781223462123479615117366268430956162512898042187548414359555971874556625321455981174583339059670202566531950286845202139674549586345361426001133707109330375698403129614665283148437656540985664878330049701873267540177070434297749292198379109137739580152470565395657035960795383882278893352870053636997722171425410345800302217529657039703402253823544478050249343902026669770484038651661882112300077501479293282258218486562372994036694949521810504952381060275123593202953823573806203967321731778613096501242671960036096111793295157366320097895476926323502191416007297233277438409473209572092463726106722881550759669154267319125092899050684288711846009531684812967372535712558563716464895540403228114119508589567160920613203980921963801435421481812270075627294164378788782543746530218814279273025243755322717360927216751352958909761252071523889459518340485844265829662459483811696944342067804712517784373339082056341715009011897059567333289129663370009399689077773820998634029477746692865138649566143297128714982008679534054535721042999548560905806920493144583608349243927996860243425215236154606296750163405552973581294443409491568132992715026983649943495400006879330468208264535481729721495375483197922648157840570650865187257852165612517486707670751042257008755820584099390514696427653028613398664151964569957874034108261019673625847220828349588482665454881696249200458253882900959415335033648852267564926640568400232252179798840673676844228598743251764895738644572429034331499691576939704204350138379053484837513214196333651558591083562357267421262437723570250739159339567344340299220109407661645896821998276995958019458057248896542713189463318774982080492191070868844754155634934873002226571772975812767229030842322247752122207247922484544546736805768340751091159516952843098334206931250880445810239430312015995323805534955005867273145832842855875390295597687532303867169169692241074251406272099805768911713661436552833433678983967704934533755416343484080777027539960389749226901341537339010140834335074445942989230777749238886629718762852771486484184637757837117617832617010252170164469980720782503633465126453931355523448068484937611839170561684160678946103562871321246126864166163810918488268680070496855936951946975601382804387268317263744818965209447649051575973691904904233573748261478834014783007841980658598582412367927646930052206390782548340923265409632400685393094082985653370014542921059245533246279979381331524770649826518486917266340532016145885434553106595159455061440073192767899888254471719259598232694756018195267646275026213164199954769480738453895311190312611920241995626494365791701593687893794374284787505108350094556026125631636833384817601910427795564341523808076224349689483248427681898985888317084138354782004767604575733692051381460048190695084688619363639404485977100700372935771203692926418565287612684946611946429467977865616913431831065570144113175494022338039574165056984624984623609911164347016220594601833711544829979746116331767517672525375047252555730353084817004030673900728332039531576672406628477435628495976924970652513475078719681291557808786464796768188541345416126613253773207955679422516741197747817028745628042286620615519778957750367167360902551308372410169526905664088309398632891344585430769504110705816367796772435676866854608366794961322603331349448097554970873026959443201643801949580418944266024897609106293034766487687296385777054865837744943440093971340266103221397844825047636651514995727197140725111878255739070495592864913020750317599023200600444741002818666662218077667126528450860592238320379966207578413297467335141671962942395665921149509530647457510947746085249572819352802793451499336103593095258976174685630541629986328015238998549703506563230108451962425941385351028466862645158254172574251113249400971242337184271244880079367114448453033567575965966270974708706182049953026039985481352903156190235496624191979271985134532966317959998766718153168194329882305845813521746619722130308056765240993801622121118061704407895319340652174188873733987628271251002685719010289845619041933439062927429140571438669361242244909264888258325096217921881399555888961065593131264856315631254540094155151626683354975532186370728909983369548123861774564836041426399665361636157858905885971862758136159486198498879118897772848470299373631707072250706723430412689856873371937029689921236346664896207201807595873464930022803118892705420595338794820146836593514520354760916293813005863391210836384817182994954505964073153700507244459118968783270796403040061789214230032008866227465544479154688777780504507094401744229437474819753384075715353794624610894451531019218438130724752192915234813842082028557342002783667867593540569806835644090942325146783723484057763032355538811743523834624651784047415394908226341741235910041601572851897108649884500486537197153508772752943454719473681773387593385742661042670962394760133656753238134675416680417482353416506931604005036994313272591803994162807960324068000250473867029633660208032502398344700065386061274023381356675389086538402667178023919762856057229956584134663873789235545086354403204368082627946765562508683818632218679828431566947986095299763633990240375075545031486791124429482555069587731794737124184627710899233945532843238939032530246382416048649812702225011647992244874140106256128763881141770220892920133896651057377073436557597655265761394222657469296671337439271426670777611140605253561758715768366594687549184749343252971147810498110218772599570573484104308725993341011832676846377453152931247625980782882485524499206947306050927976193881916977098028346610332679387855089781385583170198753297758869110666543410653734294894156576179037575279241611844787524825213598602872880984612035010203253548189754252977078932848708308633177013682909072769144637491669494048968925293444895444813392322770720168709557332793028333151089132042912486732838201106721623817541060335546234043011083778333714075519751025443452316370630355217075924739983217765371055243519386483592396770369125033057604043292018701210707970486487027610762447503908311330775339219602363933078520969558776137170723949877254232074359344037434378910594050643807069420710195954493794145587626874285962932340037295378560678079668901849357024345736136749594205768135014689788739359093716197978781028453197676699387937589338414908089305251262820493989774685046680278073795921179549168217563435239139081926951883272687821675921049573378343032506565492318838731228475477446087589412916545092822278328917430777889471165659296799568627686962540979926710198492894066836797648182489090484585787315468007102101640409573745877251603677018187376100884916491922294304103999353737688584306243047927464415921501782022580030081536315609530371745340192559110941447478004007751268818811509189693042209952256638521036919851349590197400986567636781042290714465330688034849551148148764372356184798819328766850714179511641982684998491703479091578797115016972969393007924405067876864654123210217563101184752986867501009197948174542894640921173957041248945116307347993960688852497154157415798458837725334231283340759834366575511652692382185143822744336375959686594296174843000401277257426589758987468192915312442865413239553175626089996426202737944459849367626754540523576871213161410431360660765443834338042184232795335646305762182700195553242520032026623615592241749727572041648784058146546152281688181353766896913491560869579402570084732235705168031389384467271676780077584508836243763713258548297780249867843211044719270369387257872072552601153299378103349870555270615684257018433641097791471004798062862847728934242970290769070998886973342231307404455390080614673465997607593626489181436027821663499194430139138292489348199660377123581469715667806898137377055893417581905386428214742293414247677778910136738057414120359318809590734098083643570635845722847231015092854248560446406351701499739986746581284854672962713693445838652494816663657146560147390675527535177366318218691600848170103306338136172326450430444749371261154220035695305277714709578816620590885656312496416132616029505065162510199031799958451751046407264807056146777581259106608032611552613361912326642763144334789270150134700200293402465764931280342426429613926088426105776246396337175671712670758405698676718590501551965190037779316476543779638229407447252776883864420398916102693318519570436081916454580164669900562772966181904431339145114753986440378767320713633881416821595822321033139302128405217630203220158475419535785770185623214842579854335414853217226342710069491609113197538041372696916113501671291528918783337009058828085020791051110648648621302021564501662669710229204769308561079668452609169626457814053162514165474178493867524265823259682095726695271902477134449744526511532142423161905121007424726181644659120636724048449980361769642457042189306083671003425738877245051941306542722780036662053378294337822335563811573909753765056449829859669664869789272323979614362673297916420634980468180580871460626981748850094898940380605135948179930752906772565549378144152794276186385557789299241184056569257455911460167312475521098257176390487601750435149088139855408516061840174123968450881186046982768773058860650363181993542841195166507330505757756875053266579554484197279660428120148825089848189524749517639027515213502106183877177619830858561812400705989324630960138329042466116174479109725084677929261066199438416931108462457528140532362535064282023269044402279629378342115754146818043751091992414761315144180342623033638024299580401692266551770135864358236585425037592942704900774103651861702702247254817501546947225549616921197961994487900085859713052481256102594427909716665325833454733737493360666126772506024323878189244486599155122072486332453635272572844174976957819731237547575507272452707054558848611601266747146342950863718957643551120860772055212115878616557087604815231233950958677060509725890585562649429657285338050119198055547172923237409176408676162013549702208790473209377859887614040806295417929634917036246541953230388501335979892505226676375374363763377640165792486614221058056897793974606709127950282699814427960555432461689206091021973534170738511439718187264762482839036407626968574954508016303031892226005576264845536065615374043145914603136336820435237748812080792798913109963953476921393636019724671247292564361434056871752224560168711203956412199998065329555271054933146870738141303654086122183755149331051409527106817378722859715307537920342564907171589688003951221561979861298892014971631626306806691836993941203089858813640754755938936170694352137088275436456945011760214800700596448816042796776001002743953626015294283185342300815408265759197514843500738337202012628642233551100939128487150045943978315667580701878049971288088070496615291345221859020226296119715529794210104588615678349162653038477880382765779553629983107604234976795778122843218449586299373154064908765297694206160614655960335799587678192171441958985453784903365002799157306838470529524461574128508494671511103377045381637847760414389368917381238232193206950762239917769336468198644407951807881185302583873071463099842000837892864207060995707673468503129623068673459553173524239359628056535905222234085789806751361593318500734194236024698074079239595103432519506728814720074432894961761185438037673518822057932066827086911284346235836573226110527204289168706698936987566840102440510509915840636025522852621058314248505135953641668530199823310994513169753975519864286015774544848018445627769808224147824583517272300949476514052026163901108486672265318802474888032992479338605146878913936844485909772048759819096743530023520866310118593847386082069958987287120394682849105577126169943130873578482186986829329622319709129647769854678780758742629067730491285800298547113297270166994187375738555484186322425188495769965256410028914681621818855231733920476785737478393260580517325115955845251240271575904434167518829027624394750784540965648423368133400415023563811914762158421548991915302810624457197681675674779060195618104380817208609926749489858542115781840401123503307272236165327995702193147907774904857495167346460858234217961601185560678215573127504023752755569729089050783262491751889694370878193752267659333671889638479757767896964155839991371276042686315316540654885444117556726374387421292820408099539522185254999672018627483250472178495092655561668768166428921631853691239672448865756902320047319055016844304604866392389710180875102703350133913101874964944576787732283364591230201354968643507962096356173395185191020575939710389177827012609143002611683267350501196067905950507109890770957804194877524367343945476045404858546795394900079365245342901563814275916098383029031894126306638884245247711566595740082308838439685944441228790088655496302592205319334123358292704037189291221279839591364956768892423229874005495287383248761331138044382240754317389444792894820330818101669137649500487450828408021991059305442074914570944274980844855382230037546510725242692397579627987925957572258050187142870377963512264308401334713214651868696454799736697973284282766778996637549344069487978075350626236836044995680850926713542602442083676435321514021563970766914542399570896402416241987237694047075281169937364685553777667528001122695946286574942473238168975157275584605233177399398376709191749498082166028077187435737041295349675773862984024401291925544535753151321150673457676861328530250759917211011023869291809661277634855059126476421619077353539068258448776984735987775559767393060114518340842810052788976446343837077942009908041921727817840454656292756414198543439803338697831003000115068677715223885515702232190316802927421080143779171754218604600608663219959007674092092888618435914413665839129878288805824633043094991913932293162566971276548810047052523604168878835781401634245500339034343279484723158044914998835944541447045301629572037224085904406833306416094361307039475699241440766839683132809177055636314142970062642949453953816254150587788440662734607408393631434088118346248882316708586702916599775076594241770029747145218112459696374941925886227943271295157515652557342108657215730728563973777406714405331376077791863013992067265995318946432740566634433293570990369895227442484610842834086162037566461392961228462791587889174696045263082244356045356531823477451350310155160410397041097931391691042360656495944717712514345310234542400273078384570683390996778096305299548838459100129880166897857610153446547301444943621434371947026734050604735908594648467679075279905838013717177303381662974530321212627337699130316702116061467698485756718427705606565344772033404029982397015195795298604484254466676090526792033854454175357586616240137775042029096184490858220252425108403660040570249657053662444762126310171269693768302327961665610980116464183438619870935882818598032815943324219370181639726291560945936706801644208786060169602307749700210099217445802299346493155716987792011454614699754829230944695957567720174366175805230391150395521152253538729910815731261800968379074108564602264964286997870190289489972155419016672774462322024430276733959824093884252462518695157027593071372970411769349085094798094912166634697243287012405537206121415132357182071924205978975224162029716120200693383270880382243909346680388119316702176628253666847002994939231603380233016845908352584054437458665662867447480223587247526330039919304386066624666684437564854485243681235891281875975325254227798456025994361185013178309277144306111237876987641811374975457889496796540700443453091203249227633574679833032765360441810633480930406935191789294513979830775531388668616013581366365054035629649450051527626948783607741958404097951029611740632730774300326718945773815906415854503706511709382156179523032777915264536747047942851907962713140307854229833105342484143937160167513545208851703055447137870252555734531867821106011918847395821054191770726118675525182666160941606363895466657969476453585324761966866324246334006636208296626092416022056151182150200034735083085875775142181236062509497470911873837758738537382668659410755891801315458104526208631749458487187746788775195055232822139575402686378869978588730442125029210908885417292559116743457721976507862118022099833076340053373671414651840345467879952728937198668660692071375382749008980983991612492857761900176498573301343748391824329173622798227708541592496531991144450983670207536693738856826354011695076413093814244637269641021973905295812208411802074232517640485837119801003443279882909420945036834103328338228070422994999052891154916843473484172925633075654862622172064711962750541610549145748797144575886865800839976841270828382398757867729383396542792638379437632286195407612328785743595422700663040226418431387924477454441039632590335959286421548715765114263398411908655195336229151638890596769354321250457955976049185681892772881197972777519558020929131878706472779919959240456440115464744455450448024512068874885980715149935533802018782211227742118771646654725113765762447353561916257763555326116175904496027422317450672294590568741903824398442968033797638988027365240919481857241005426994940193462970714124248664346141340642625804057225114795728265721656560598281136894138506527511873812062298313211592675090086595974863356615936315522908325324136233950973039263577061859294796062419063934394297050867603192583117498954607610265277685349160769714356972566311863642534656703536017168220743575119100862976634749526574567618586160459613835490123456428389364152387488101763327958116527491784046317471783167139756480906569901253902085448849208194179168696504307829021275016325134284287682890274423716741338320802400746831296557818809933021560322944085769393650225811541504355943203198445018987502171946937304408056239245373728279360497812155866379114097890666016549764662384684828822739835342463825303394910984049031657765657741956656403747592900477364272204353902516286110011919429643021512930565101743825374088178106641811705677474774280211659536803191787077462379839830553572393150506086877076323200614011372508825937093770702378222767494644174707020360114588697875045925119492857263604396624296481919924714060517546172336123436448766315543413768235770781368524281850696221080148385124136111502977490292460346118507620500070199697106163805446219640232365901584518168776420987257329489375733183728712625175610544118360384259202283742912323909436358033277164480955940325481011574108281412577914273332603724922501297100288778631930661640633172006403084217941718366596694095499214745239768055554200402488326109599396009472208878045675122406435801810662009326243657451645762899336513009496774821363172844075693395067380336023999857747486610863527917426817123308068900754023363248908632702409118377302444582394410177353134748152794497990499336280618372475926465277663443768073322831800931273854296771900705250464811923492897845064092890616474423170115786757858298339366982674038100244604983294673076002171312296187444790614423374474907409774866669611002594333931135569585337573150110152698961443700305388031166144849386023876778104943718425639557674934089812549920052215638916517119753944143950040914878698780579020766723844049843039673980479115154129933173299903041869965551045352727981089394475304917476278789406627588378198648628914600864414400039590309764661355589756190345897376192500155221485096134900660190164903196484725756429074339289801417017378831873709307314178540771793408693621013014644630135617699674548832166159073372650805867236606967234122570008099966354555795424999375216884011078393344929706808049612042835926317242986856008102046974560122499038654915973248973266947666814418284278340526317075170160022716818896759384334702267630619105818706226427582852168233453662674512648700763767456827868538314766189990757070083542343294598097031661873550240167713339998651394882695487490663351989031318323900903529243464741642739173331564792750011040266360729309641545037623395598535771331099752828630418942788219993878860105555772827552936966225975873943720802804293286392800807807204216797509473943665242425660721641326703836300062340891364528329215775888701674415948986585758450973853383780949881955338799718848406514367321828941762914587675519332900868223878244041759538954134561240326173526870153668775131799129275859144473341106981072109275025862349235800784395001976688295822517251796395064392015687221943909238552756280938403233497858819430997389997655850923312561112941893303311056406261898683192994458003056386123488420723533271662189476088766495541030618586430397596682767726251876455082280920202848101370943181806947992325257760157577678454825039504106924830566706961812093751654317505233465880523504874897826081643935106411064333359817297240802904811068354413389650066488253282173837617036483955729974353048472584156676081701962053626022539638400261512703032292907992159688359745408926565633419163940129071680750440082558288072493240357617284657709487641201606802010518038925696356582501533595365842007930995537922815143337504037277204332686573972029946955729297309955148085877475849942548225958390612386743376099850980059909917105249141446928376226745925726878263691726589324886088892798546742264625110663928738360051978961796198458343677013540996287864599361247407448894211692779868046962618876798809669406715596121097118985316223011454752359534652402722326242248429964949682396332101535674982818622261878986809692712858547067433029790467158569774844085912185088460238722888710916034493064540499515406969333686817572782213762034188735830152702159306348982863925254174120317659612129802948082634477051110421530460049955694812858076430988110146499750233503462245410233209751851030394110286322225212483155815347045983395307714913242228466720663086111248850178393388475195016882115134751160771160876974703529594471474671963077898261685698386880769858070558842871052540964554864331055623655703813896810284355294786145194843412456563178715598103251984940314335290358580800533255248902780110032616645053628377388296834234116056031689965982839748077612653057475345446178009260765263957246062814766599155463897058957101473137864533963596011549579754778367262311774183082204920441941973171066428796888596492701183030210189211660027466111942558587654078924540092331507429887165623016617302998837303810751017261846529009648515929697191698303270889932300153350323519123725099897647809274271188848483478891542074371562526213488766955130054612665682498865030050019384504496174491760041456025906723949868901452787517368047133682210369184862551140034572037552392805748283642794916734845324163041456869008210636702306815752578569950695620738732144019225312838649742728276264885724538242894803246429522566880453587356341137181535590882324680628343852444178698736019844867757503816347721235703781227834478108263647961903299091532329015722478741576019677006876868425825452978957087177218624307870544820626334551862936038229766650924331804173367314038436845126946245561735773354291922420472902256950529855800189995817970538650857357721692106580685039472668549362597821050447816643702225233420642579260816400553217879968138713337074060100301868771377757254469140351950574976352984259757994132213742834144132956573467866036079036236868428246957450717943188942886825486069999510602442303191203734925397382953874221062599478007948901451791102145858365756993960975696623446574120020427513383464967716891895874104372064917802118781429187800404717968044095648291732259913210041007714148605736513899698949402360390058079005349500485765366125105662221595311089848559399651597091338330291406528986095950835277292060766060961131409043529137345702699113074601267920209861086949399804804310423117949451557799232691637848115818121288389071045887180546022377262207775989754316279253458300213529423016820385083995544877588776701716424644033191013741135178073458764601205757968706677329224625985309262797626846954224308232686228522270217772175633129820988862743420028684857242543358431414745419511153554248267296108473303897099878841511828235640145280908291196866769411344030564319437438931174749325774529689522038897628575532794585143147287101394413438733429465309254339179861957736137947799626890950514370453727978039454228731087194284150289452983423751954972533537960617024001062321434445715998285748094255184799984046125976251850307921715889407662555993052938522086164758982600095134096146232635945921113923365367811268896293699833649389401738310356373693133696298976239922931559084183410306229289782472031779689792883714269581348877669691623151861523515272365726586325261960817820850572588321297254276201281027385596419425075824955588144719776655376219705909784746734610291263414114600016832758326879960026414509762948652903681901181932118396059810614507132243785781256480027480731162053131936639824886093633596745013706452194016695611289733819323297018079934562945578331954073864452413384335735567905907685475651981923058396951373754263654182793257290029382383966678933299945767420628618971231189165608982878258231458454685929604926574105818475042808454324814577743280984326240613042447210176422226048791507263480377603153735900664142441542302775145923389671180980775000893128832661400595197343750805502233237746680040452843076752952279618831369629236579427706226514435837647875976666760254480626563914104215545193853115304551252912314819383420636897287848690006579431178153340759570773941223170491232446859706657940804150121136948408224165277745362799768334230503137701942668730249575368021868787217615801052317281786428518569244846631170148856690677705459368286188947104785866681109510945211429288505645470485341588299787908933253225832822588998226170753595739277462541263647788015652473675391882364196463280409209877626806527734888729524113808730729850914358145086018285541571348023595682589064168073550655433132006661984073585021189494971506713929901573518371421405248286331647247889138619102996119356217334131689487784290099803424149911741943101660045322172286627955113455328889833629039962054423975722597709390099678122937197843185889374366217839727654524651697409385595926501667632802184223212638804555004211815509394079777390550872994771561608053621861777190879107697511245465109323585822464858636242584209006966610221156252460102460595630966101042164072170022593180117783319042596197664323886428101815888152670994735553246716193412690909178482467329076314425135951139293765696247228579444452006148364933371166633793449519696672550919423255317703393683693214379045084696527061522963739609837061194824389357504172568321419300409983548094473922337345492282124422557141558316578926344432664989734068732092087838408165794576852028762540370127617115058161567865553657825182391506092982546728329195275747042123317784749553815341987029250836999773087767315003601534079415786424248186429596113688399082806117932126306508878073991874083633769860841740813163784448825526200328556254378130447346300359117562683753001429218537235456972014712209529505047364099561649957173177004434192723127873835651454859731612063382623752046719724781654660626708989892097770064227614802662159519962835696269488021244470386581788185595129931991697097987222647221149115614218939732284812485850582124865813214894073217343417702534298574815398813539828301282644278292007769359059041220221451824869880079003275615771415310862113384074167521522313241219886187399890618417489187060155808231264873193032863945427168334693823193686830298788673158329269793450800792525986173601679803095022463394317396239870884588496019103154081168805907892650548262372687902703524932054803980173071435892754663536871495362839443309983285093277563313415784315639626457324232980951034842524881188454866726552535920218721109696068980714509900778025550683328307508582365655682311047653555461240993213552826992250452754456617556263448945203128057804038579616908426640548683788505117065195837479916442750550056325808464461262628138662334387500197257519229778796010608550608854142818907831200149371024418219385182451634137171007747433875039010008543645131910354155790069642593082190361614504630299756632159659154590809670616760493356310328467357946888805185906509424028866604535263376281552050896259509715661764796658251701406565508832155747572656814605058682092723204502783483044880944515893510285083283106647665657238354748444277943085056073694542087260637944994243106614060308437706413174130093730098423471981118821388596052561024434044657209575757341711801596911063675154360106386470973758229157450883160360414129237157182087779565534685050405799570698539286665253898190424638056560312165878888891757663125452588305079613332029303935452417835655564385956388010739512748205754741864809941798458714427235086005266873807586159809183028196743392755779726956919724381415351544278814005340575140083340935213897722380919795756845203081558766620544344813371213195649009528962167216115935920119291205066911519748977096521470287280190048878824693371872374288064226273987277679388155806505276661274925782858559710159013149319127542276462606057951567847877031113020466755545433659073192165676354217440390104181680393998195259068102142047855831860952667991315814612030866016682614286529715264860846345367602611507130921893791022959038294579998838374101988440159728769316095104278470503784654391660969459249681146208492329229669865339367177072344741806192597863683587451244545365679983379556846360187572070336530947549623044825550000700270007691882756530022069384664643165039350713995747620815918309195793543497705882683817758237917973222186051046398549832640359611646686102261761907065565184062289423544027317880594333526159731134144932075621044977656027005138392835057926450902389770109555304049264810248972109774851476617847941670900752197032160536858931993445911220351226172437975366935048026417282027193732869114148107899521698995867530138925610541626845243785672442819947044757263455440049866093428586267717698951560532848861855685116240339130697174125498484187634791817792709105014081996160498277601109975884850673983487131118757164090814071769320467830443201352950852749428085320280142009289835575716967291577331169195797939112876978087791022824748782878926954352509425720442163863364109588378769214365774822172935761755152170827286546817219132395779296303383809939440653736151838590164494684099281223391128754067444866511846232982727234596172820897578578914184735118173448917674681905560636189822717613441010986660212555229725415071057303492758564496635821419373519969343405777129949215489585394897420975757677554386578306877171380910253896233510430267887865623068659911383704665076807747945428553265065493476913998688249057961944309380320705337373569169473499908817832326143746603761009923061626726938644502567843843927794415935859795545966471345885645020395277809676556257946825400964152586808554560832927329647620044553836509555794767937760605148353539229640070283020151559908210078259145370902190330472460116302699927290808306619279681951361873344183224129175606130690430187697049970860908359072909464148683087789903522388040416419282387121294127860224477533189567470263996073329163784372379679634616722406461693791327723912895558977637614988488146593068886380086911782888681070614003648731090684978790961442431346348787615752078711611410523728352362629264273824065402227524456702339289377402962784466251371884111052463642374867708028719976914109966517553643271601009563329047445371530717335134394647047269789187198926325082132839350204159042748327161284486499360972313898267977631088739499489201497521514278101891340378388926446586067571490692350605976924191466207586025384293269855653457604210412135257370971791975008327597348581707744545864613659153269192164989195184228619417294736073769894863859468099864740703997407434282275601781080308892259577198120885565027317740941025155092656406639915144436392941838480237940573352438027985139514872524225173615074823254912914088856759053648221017133526718155437138809734681434622797951584222751712419991256885821534785535872628204720906514901667463512764598285927513412684547234875754220811560916827831851473819507329807115342025310604971941826007013831535040487920424375458574549837452944444688697563175039618186582188658831472801018652606795669963692110026627784652861353298987051022329201828800237626494743160017717318482589448549319614967162313719505472896140659015232203141412806869847544391004491489643730634493738042839180020269782136511024827732418713234453404365781062188010932304667732761535987860471971113227201184335355413880369567633139384276109180558784058944740907783488851305802968677191772938988128639782760767610053714264023985641079205917962063161183055971949704405476788320545935602142227298538048896477623298641788279829422386640208890622093630202108459409400133831497520506350502102027942905289560193770148449224414111173389036132325667899765559812078803025486848831748233875674608668970016760613981821579099877481200712012348789797515096388067729936250888371102080537225204813856085549494029943673703494729800219806695761179695087391633204554721617793510152005396376725036207501665204099404539671717693720443991193895907198810226023466775235465329504357779021921375883382892584482022572297872992659765405487142942182022500948304468332889477792158164906353212811628632095756442061147597497265422691934106070698422524405966127436484873880475021116656572665453921642866732798949664590510936057126576290899899355149146501241044561504754260227632020579570376889131939431984925622493431707756463749543036422597975503891332932387900547886865447558333112991652879933644176577627499498128789496791823550312967762268048079161172257406884860707874191255030879100556833173908170695481035561982738761141221636593062305716951045173812123638412551351446914090004072342052382545132785850187420137840601848552395363211640593984486501688929606236431114455940210893888127355349944019074408946804013790151829826082632330788891508662642218661456849361168398241879982582345686759548745941589683991627778859412069002120003380656501092396014562451988372371461733538814273061328209574368894764315075442763831782913862816034348373522763327205027984764325340304041109409101598613368829686921710515397088250073690002983313142495107562528463800712263990841096322488632787998913715139166775913758942365185926385248201793474797578068411593767802798815191905968329207742601098484688295584383817916260543080108121037815532831112332578577765980187434186764766970630277168343530702343652855223625033493324599003926371892496914756375169893752498120732131605693356329089561657299251628256060078069837659146697901773553965361424296752661689098028694175915009235114744028836600458637409906856134562482283002914389059836986119682175241196927215113881985321333867100916357893924942306556071684381454237089366868321834459686144199545134012447004834036701564132021276134274725498468305942182132102859073446777251171957949781889757387523959996977684284023210856191805600776204719054088123093974094608003745076522879105885250443589441411492914572769796941300687044929478262124449807073488690292443872300810681240043606824206076270024860557957481887405445507779095928750238356694910690595051412231952019267356890776320245707182886154308234044793148558655240863646278407800439206095482031216433090213457993256109186216132812628654730851628726966890423957625846834179475909388443002053875913870417348073250973010267309575650638135612920548082642069416462328330187323281562682525148516519371727987407520821926526975204092714453438673870177148753564544208336943197533141441361666320450632123049138872907291472574643182116458547345245516899989523870085019777559148794030580634993317663130968476997457531757261261888583863244055267547941711696714854656193729015650555964953114889561842348912395917162830009801141233011775943632776533838925708413332054433471780095865499850707954052781163608093377078171270416783470615904273337754481063743769463108694567246019713819419206735916016353478296803590742318934916714243269663947408307228562961604544096653744396804754214363410745402688033730655769864264547715254514121890788823432615509368140188201988336598796673554569716527125777795055886368136834874999515204026803235366842104542432839455520911760215086056347999531245413836586544730238596880387234777342561466789687093849114858616395811474759839651458177796898222379492434044584226314632953494641393066226228683467680094037455914077872105883944373788986618162172261920017328879637772539432029868646550399287522869749437294955438210190504860488098408613135108486692412624870166474250684707547979460372674549255020705458616576205283896748302288096781904536433821456031696152288300566094622039832964576129641108458552091226951916692582217518249954626647079649912798035193634755214804939015477244714858916363887773190693676538170990894597289774174689663331797523387952719698461864518257481760660491527266089761119193265113527478236206936378664832000504715051825339902866497967656463739612456199980554268594592106179063744530833514934857173452521827811597763017786858864976706574396148839130178789885714503526705551562418029355292142493220542707386761409046924178590786238429951582945688435276105450435991602927308953491577560834673340375009373484191763518870473081439581691083484761197497108070689206280472071013780740840873511439007855027047129758175287676404207740563757802436162161200582556196583851945504061327299820075734289954842803156466584772642738548067879820848246530321355901325300592491671447393685479268511413332980991916815928100249840949798448080425845093932071396314236768199505621603952751506531558920714054228144609506293166521511891152155709894441564734520151134759269807154941910076658399782378906659078194499087172171755866150534630656668440290046886364433474297561388443932440381208800060211211869359973978081496566059426408417621222511066100513571700552078944486944921062339708970140602658036203267977386455433359254370528421229848207768430820500756136608472501984470114516527707890167033479941476002140722419164895617599610417924843770457681817865665447134438482460066080152194631602720757334348671400526307142720554913769873128054467065128850285670736360378556263846140661541087980298349184124990417252719509893988558556719922344459096495646532418827168752396512146021170002185764188631625612839430588552375837055884500809965231647471805807920260342347212138485950398652680912414186298776793579166150939593679237974938553644705381586193861293300532619273822746622988891990155029325824740631779606101158640397560256145874976515806448715724739754653871959892443990101503412741090114491998126730271371880422148870244757285662610357188800625541875147022760789428822994663078646663960572218047531844402215624457700023770142224079255752103927169626346817777764920476746182738323101208479410231041689278508835172872409940969516484670265504072676957717563165002267163429675341325815162694503880689308012385805904843664171486269446346511361336206138226071128667105128253910268344788062806422671443779606303061578246285323199829313224799430867496246666737585514212535032472814231329503740777704804749265789248558775367200193712069615748095933703879734478799741374776148075697122454568496591612833057541371134258025581938908388034042260242392897228175965186836780787019038861128258825739956430292508680787856789451234403392165984382183641757862972602699261699449769749789874507816135835863103638227348596046526821357377865334971241290871680660798314066434768549541131654506423112553894234551467049254825055745662492601770806813460501187831530736637205058566850015393874970546729795988149639180201144300862167780256987235552120021509109112073317180053839458522594689375890999656014565879074952394588324458884474445231459864445162108508766593072647905396564031942898702731055569614537948534892634287608920397710277827470118227503618814426296833377817838368695872557098261077689113000723963605707797892507251569299305139763369038499987769924808789575322264108710449927428495428912512230828952494720688499811733522049050040172069310270271057334156309467628488940195709576433992809626821651400375359280504792162711368854457438233828545078553456340072072073142667167225694041421787897085090440701227322552127201451761882672450340954056466409499401418325538195144511787174475822816489861104679328311223194653192580062809155776187541710253613879271356554776555972349996855818275644651262636199203366076582135080041861673827985529727492572884399419726371681280051949798032466531407876241334698166668980200451458150598347791714257286706539331985915417472464124551910328736903825334265401304738216117398641896466800308610946247412021845694632910913213521999158473006201629466076459014453250696005045178214599902251056530590717285522937269306320485306667148156586521319902572287936583917256167107676771823271935431580109524485990460662548087471550141316100211589992447698008758994120636007770685248746509604228777836514885609846026877986805466346616135832905257744973496563744741456885307909633592787145077198802125974248108228022748459182299734661028992514485038488778003618069001224715660436185754935728341836612271842681460580896255896816602474161230810933389642949044906730474044094877871541832421426563335649588998223186074197104904728323474706998287358836016160366817848749261390859780610323513450558719580068039106198762915246763764318183819392216621350234162369950115812881029505559505753085005970181245586967992128460314807268866835135655347189083411080222097663344074163802520506094576531719341521460762152615488411181301346121617906352378879895067556284340257541475257801585447252064627454814348290701348792261308554909446789588898638395897241948525757671643147751610087080022845256420548749558294700319615545240047184102953037212162992754966348708932360488477622017475933771035952586372442887387474546478763098269109903750624213440034812173184029047238535755918512651770502971017497904338932408533329149320968506347583961420916153979395205773869066290005624922259764133743335773477511627417374096679898181412372796894727753531764053334254099991023197849636867872135188600098981867936115396126499575208440857948573604124313930354356603867295444355939795782366236771119750546159387548165112723925247557777465441602558330649571416312675060085366317006805211594747096719253252874266949987285990719889707014239621373566211646132453370819233004611209231587406340230676446688270310539954858997095996284652226403772610471403148995548654224759671309243797328313465263036036073404676275847895279895422116107916832909961319570489643496626090828375113020052531374794710959418555031764035144725193712623831701092428693509724456577585244450405597226350470701860891222348340336059504930606844963328489872607806650708738786109276437597413711508561716777202624798334662241198732099100314486442410411631044516688840182545654359693960647962732317428556547055822300942357588501961421098043433127794012296896561910371609237366854849915586997145931498291988901252171811738434773544685707253695083157429985085986754546551014501018434698756711722900807802567754781241990169760998008342848947529407153579250282272855492033311058569080946206194690239744422380035480315464576581726224524005596633810769955725684329025109041145091698830559015440404749767484478286257228554374453526965538712262414990030214643095451591256056765219447612340960788481900814121506598030632687969581460447362510458067780550679297098733794133332967485992807023117475592545074999445355980942921854907014211736740890196490144475669980556772039207527100333866684655669644420271025100246336309132706189021038837395199864079559450283981811598320468104878726692060090239877045921221603977849047930304266669969636471179584434981604148267867602543087212736818113741691267621492522300306277894577288857572120154030716978203274704697626148141747476422771947814242901673396705980771590621606991586799769280851514935482308450988499550073107152268017345209361799521413999280469439985573949039934503272582618860173034651353767752837652240759187680743131946133749276181517097617285338900282460623140098849926843338438373918577351903511709029763966524302000261596740959916212373271391851274767312051268558725411313846749490627501106323264488772117125984896085449366407873525186679112725112831925588601495526363886524943110160270442132953076966067864456868976576170146920093739927358403619546907945036338237808343585019529682165930900198758132122384072750735296529102396440774285209887355424570453484922053485806832069219771717783496184560091787991008415691910421111867459576120589751529360420825636575858138711198968120092712664361056509600293559444610709702542146887002932489889965530998624762231759014477544629861760138665638918163651589367022714960183142714930454266513001904485429883040237456616234507837020692679650268438000837771036237898967225738046279384487502322019704638987605264650642902823531769754822943886974211165339800907222824765272680592416190617910672174950141957772624360926389064167120069501163155250165941911114999807247366991611508096501710404088137296246498607096769626778475795617045735077043979684296148297845355567534033562813910334759693727053120057470948880960779577116435387332772294725880288525500850729916879251633394194568961204666479309625214813318354638196577994305934719572037680203755632619432135799156219188006735944771727153190569934240444921153489766228327326771622858204000097123933154334536560639950980901757970194698393956021303575341586080540888451581040560173574426012443224340338441172297390304985346897495729039320726600205727166613287035382416644415155874177714756145152482725159694463988655577477455646559267530095798354723041980002328087147353698794002921490357703445368559356607784675735211054177038341557305621315270988176012113504461816815449425991271812581969492478629814707390999500123757110236020769749901042824415041840865145234567952439451703334277679210797041308343981341293347191953805063288739566619196318612352603004896313403368664308460927866777182177217651899774595044926123283695607577556433547177559138133158232582914175195305415398603757328527512147189999106457157741883621823928697951435340269461786061534497206521483419162722813561038662537795760804655300803648082420833560984880370229493865518435813085244169529179767816523114354188944282727102207096345826790475877459846078868563214301242089963745955080235868608647553381494777061361001039534353488545644639009414383638739075772098194661695551218253059963683819008371073975322495158644131931234592026076453273314372184528745736844942123907735716563672969420784350906147286966339224981081772102606714298085497499143448376237272418332494358739624068169924643621835318063579935127803615808854984842382958535270979843131764269127471138357876300274365201573530035561092433276560705153657135343938243839032020940627897860960899091398811493335252571507923221029696677898893047546826176121012306898964498850889196073259832867556866476777400320168502860361438654010052419922988683569046028836196982640440615079789534773647082182620926416947925224721656110655190060234933868790706796715834249567643453771395549415192317515647607276628757555122158494125193260253397079401738416433079502385537091836519436448043874712662079426149579054360640667322525448826975170609849929038601321780150276330145176434755462192808049166664929788372800455215445528647131304469845557231114575057700838157291332086912765174536410997764534931176857104213359794978853429084252079706102575581067157827739860694626376981954299170561529417914047619322906795745239038261079326204798424461980026083494051153177311888445888373281920631234934521726747971747503913147250519947185372380014275702170631371361521469568887728665413563299105933373771688737444772016473034863029911185585678807123664013283901896157021852681763064384934499725323980159118171026141681705140428033442808513801787244341801294255591319111354888369792260845182945440832476288512338424788566296634186916189508439365189546907166381209627150740118340868614621678420389118958975445772486683992669304641907137832098956691374996838656579397257717817811668114620155801264656313124978020009668493232645370944316447618766762779472141704417321312068625007955415144442610930406248244624952987263198533289792108484165255396530566022770459523379077489846955861115873235783191660396536341395318908284441046780935374023639405665859879179357621574114198915473678388515969152959154244845700584248060099492036637569319308725827980935194211568715781473870083091847310792691484312363745735590572047700462269384917543860688145782902996493268695515778614387540689995153534359942919774444249256880587252772980147763171127094383016175419115047022319062559692739184074610037299342730993565431867369863208284420949810481438545780290796240688903444178453113747536077350549214587475579218067952718004764142354415040583515625404835475175754581865840729213566464397144101980410099616223684930727850852909576197432998378923465577920415352216253826178653601204883497257661421307683722261274584064155813351088980994552625971544920825454674121946567998258382221678634613258444136124154378118079619483297152403447036106009500841656385448752613868891125994163754452079281744673021992771677566691088886018315141910697633079078676086568213731718005641675690889797577454516101589053493109818398961426240876372025807829613179395467739205235725502585481927233775918748445531379527285857680159326124488937067502420106190663857556611699821520885864178174502596347367302558059374320931602304234172615313344192323928860470150540074662138713463836062213209376006968124811056379156243913075586911669960936341996219770331413194369019094908622020214640942790811235807005656980367733449497701830900393872709348303691223381731403771027957999877240640896211627985256835404974229797559744388032584603659898822173308317453188144446719096560518866656482174740977535740653103572107359611957396930875697407861604874083856448054228416165327236980767350407266641337868422742816605214962051064807565143296504746163535591702786822460231440305504147213496847437760379284111997373216611592063122073718513153851719298148616134555993373958010456501349451306509872750087744348168080765740653226767123019977550401367000424478726396614138553297056569895035166481745269342809954458025034049361668153516468791854597769163918315862721684483066114584718949415407084612739292809034460521732607838014606440877439114559374651763724628837379322849562772681431921455430000585647308355301971286258861641464690013384793037080119012669929292122127171355384433767193935969402467145389967399120119514634607267167636611923427022743892027432795707002081459188061686737717605274668337494700150530143638136225331015466227993197590916941025926847801481293833796996700913500025580938271246040229155675329855673543332582009396731540739007953596223134646554985551605647797174510274288398382813611647276013725123584148684833935953115204206700031698135998850064802142799125858510184832783860684578896447391440432858766600940201734497587937016532010461403538773838423468369059241053295604239700680088592407800527259756220079044772619411155328125079730394697329432012990269876340659469623818331407680512177166154580612922278294715349870452728227047664962262902738336578668043312466479862492400178346963687448256035488886901033388707114827463497138699707177735183029356070711735774717379529315060181049693853486398488988031069046286978676938387226092317505254939722005747473075105043115556378569217985484313138427850875211129674392072937795314835918482319315688242544596373742867652041372632760797284122233734355185506959017923598330310697576873655849308508239135904189898083709052517862660040203240897466906194037918449330387292906144712158969546537120940715592714448398681056256006147245919860441697988600409998863390674085755202622742496608548003995592473567643857064955079523366167685559562401703583596296335580418314087922146175380655962675089896668561889147404283102314116285547549373185859956233756221716296925317239760717859584111520607955698624811075051273260504439860420947500558766403708851641678711649071661432279543900528382689074046992626163806248177156861629039287263131361168373133506219075573288566426629983130602122342424727338425148961259660494940439610904321928953302732347781046572820554572395616291120719596560358583087674311533197045070527195647203676980436283753689806731345597290900382574424464936560456454467913644749813004856916267481009458942817240613185915998753979204628956994614228156562889180271851835432496359533979430578609434228823028891092409605778955134168940682835554656376227919121141145804065637326519290400367361165534350864049561051063798778508901279495568418341000824391470536742222985447583442216841962742855037621949043214685695498092694293053374902484196376081555655989998647373319599104264055069591360150633159569390506698199515192319324129059688570708315797072897635494488695363035527110556071283022135051761532649357140031383033083079412566082004522467931184033977784627938536850408143169795936853706762052099062303183816851878106654983117011662001293374268746220870384021226831491127152854858565789487732717246893414846196594222363433090850925240311793909814298637753782190574582530183301468208517380259308457313569182122816891245655564345254924595990037190212201342922410330235563822141257026223337827448585548260961468755826156938354212276801760118837153973790451035904458459150938241539136981499526829529505865065256792709156110762221643392005780804035184463842713018796961850292599245736856676345003468331104036147467644426111766631743147857470352028250845591480964570587640410388476122425988431826674763299657874832674608437195440497794905764377060960282869542175059352183328405947860246864513239252612276687809812214289105636621162957015133068414528789854382776245015173548100283170053274443328200301699291558191837152387857270766752529512877701100156290847687650825710715606412132423107013503987029201937670159350362664967284277769071543160647873231265076709743174163549627695734376858406898744392820543894020340344246831932849583437008504002961581746891733267860311697403561770987733053147751179562882780747695033875786074156340297808279676830025134828557461250015600537416117188206831595757615842552551483479512812889205800507760653643266289668600028241832289816093094031781571727141469607247289150073277806247374855114896022581632040938699728870505162942791201808777643364745550262260188431011282524005536344134275644725482263702079608454356461779581967269124530181558930358468092127036406369873143734799797742969794180002206718366679756562052914721529656552255525194267832432849095443382788283295350359149933267729965837837703105404820493259474396985870286399312434919131837850071985755566387095307699026364953040403059391479591278318854019979934137971423002593917981227513369064383684557507075243415096909519386959432988811455857049671952451148011576417447589961616034768741646642223231176858395104969371238528188205303035622308182024020009022240791447057025318439769436291386127099245926425259751677973449955450715160793178943141610790875704962885461136351147428460143406332777122126679379005048270559904882328220844159126820118439579089925710672948911185489381453338927655264234505709827853883150856330987059592283106792908163324444952072550966629246537543873766359833945689946236360285305053470339195543113598827643342562431777716197655879952066589987626449736963399624091858228472704078756311719577098471467977031294474473095170532035404979103453518663908473343812743768161179998270481583424677075783963664839857132346840562145215294489734284969620576771049816893260357425590564091142057735228237339856218353933126812446560621309194073384580092597057623966965171130230082160065021149643395736842084507634036476610819042234953033856057055378458565668553091619721626419646232271736994793026658940682062939553164435938440002680038106743360868932418797671056002010121134473389525959111093375798559808703075238189518401945740952419181267146854764582642182112849615261804477485577066144516222191419956947757170776574352669906837814528857988103005518031855689272690296966161075032425270492555120047234716271998440484557285267518059412641556816782625592695963159458796142094015576302392545720242996663783676056397063400368981139894588440155296586145025329451854514425152309138313146199918372893151675066747607836316227060667427675820561321727699988745863903989677282041897990470399284276454352995053786419003512160189512737836016790769183018243442508096164878362414060586947842025677542909714016786207626671276909834414319306251333631127020192515578645699556016150604634224218829799899748064055373791954244850654089409782152560107778670235939808853374166255468804115836348347929299089998207766586176078885169778400764052917715962215010382154602821078738549141320972533710968058402530407370372261920132820221135184803608198938620600909111522760083531698772047510686852660776865436631446472515394317812626067227113039648798807902657133063251396049605798359326892307874366844130767447661688545297276972022085005713878444193257682517440494001029053914446677989578251087063539668804645525693337483421143652988440001052176041309093480477925343460598981923263776997994753364440518184807291629715507211670072648562830256369277590480455624243933233932773665304916869082285655961060955850578981515169370507850483640900800980150421802097761903434424364247475120704538627850247889506398856298278116923119092374839565983752528222408344356519261860978252585834099484341560291787812562760078689411031201470618344928828883996835655981955773385590947680787145956470352188014722765697971392993405943224622128878404117150357317098100305749622680861049992211289413463542826291441131164732474293285956699962353486042030007794293016749021524570016207734765433814340690441044004159371317905755385930402322289891805779195517727327893554022895617957075907123538242799739621953469976525053128607533175009043780645808177236145918995991981503592837474634248931017292063901342333135037246496867981405351925394996396887285449546862840140142626049643376924411484780464848931945446106991957209118609112900648570045115058440128253075230122400320061228759915877331961686447553945169909794116974049104625094653190158349222909619804203288742041750783933901948481948694251709108168846918766791924537487540093838742117847980826215615620454145699309930918112333779958822153742542038800791714078452857256718056538498866792258791857333601791550503999656649728732293928120032147699849199898115790123524809132260160522552948222287244895716064906185869053889294608641337730931517940261077940131118041669853164353845308634179825340355030195841100901271796774138679712424020916892314234845873604713173921705685892540456235786719473753951582699730268857648122500638259416395919632463519610995080546791446281104024076583175404554729136462442194980392732112733948863258145827890818556446435609879883158625465805126596284624952217712553291561776756627200815506299927518307072737540112754866820191270623971963874777165778918971141328219309895393398717166086264223165358975165700997006087839963596976754275891582043028699946719833736532658491051359587221138549879942040424738195953329491129644989382350718617940994926284290153405797473515973794075923074519010757234961353049187825843942524860287964384517551294879450524418668285110315192996869720225598453912929213604884634784326590499385892146636167436396396184475377475302359059589739225709173672400260890639083978558525661092475939650500841698229803466698328494265974991082838988412100863553636576024497286923154177135935696365327660444633462269459247965984398291433506135727957180085255215241815019068961164335112332517829742161630351234238540765438214356759573212341677488465169145576645011450691042304576695816410749654238556728319057473749958550516331502589278439803486750071418866232543471724468258835284575956524808615268663834534840770854494892283724681333237010264579594448766741168266168861210301857628844735780952009423107637241241500773290198923795637631560692742366308925268456747776481060322101018854855919460167175040074242323926159096305471402580204354592173275971631311713182142296048852295470589654374340612801805726953849162958352273912033303387262358782044060392753462550916252028454791197421738524964549770020798676757428681274519300898707939612359790787462828975991056490903035611519938508232486314999705861141510890169912411034648951164465312760904124778434631580954389765793121494353050125948262090339590708112976479933273600166646014248287108001858127516447656129945330923900872485816743824409332255963995732335764072610180207105170575521587020890515951756410474519247561230983720709679728580786604600730300938714750392133430264670648330781221089204749156215825774705703181267411495120994239178171620341924225892949450863025191312887809121703217411623129329431412287912314461640254291477904115503560817892535891650754187250226030578824904827158774494190927835972847311699375807048292961997926732273412981875620876424619575462656116122753348268094187893668741077135101544454051603454248684079698390783190054543185215972447576495605506487604716128859960282510579203762563888318048176011399646434700120744536976058552302974525199491865198623668934679135344733406383531083331322896472237766237073069455543201954897199559518590020601548189947765345294877629677769543644670415213866289420573294582503552280708644659303299377499126961224456834386206748131106151147165873629208651821435662705573931913985745853237785275453972863471095584824599007347821219365654649486221724932973177129838906317870895247339185759565885356281732763550678920301922699616562777385386959797221720610011533249165025455415457008976422488887815669579268716038340993468289318469784864785645892838571073824068856369066264953012804989965871240387610471076619784138862837329238272504348517821092262230305232575934611222765948013072500585111750822393198298301500818464208760907923442814851946952358867938552459020785228932126430421376118186948490893768424787802866230990847428883788612601295328462519342335988081225664309758729457745444253385800707847762312792060879917975512907498583053227613963253457520738258589632471169892393879208398171366172909580978233310329105283438198245739277264189775068214268301885638207084652906498221284891091839981317863060886503834580261300712328009947109405919160630828681494418138918022018718318206916739326391472794634644118057535098552433674972008442751872076343473815542028300859800563776626161932261127248107258820775559981141274374593255783870466513938117619550310053808831473367490732730701799388054489292712409339661421105064011388834447386287545043768086111435304886303841903117058444984185543679940993481935503512769529722922159484132970806146791491981074012461219720149715925000006078651371273918418507130179350701811895691056792090334215131256526888447773471486429414421062594860115981673543501618157797340210276217123005808251893994929854412064446617400472504481729215045553937088610294733295545570518426474142687330518083235094725501536714350479587694891211122269826749726149452093950689105030117898300761309399586554657972707201151901242303682668639966284569211750110721972688666327801029782543023951330378302180124077576182222097414140521513624518426578917443452789066323476644852299198773917995097043675738090046664180556076868820884781278415497459473583669745496841354399779843296394232617449088213957144461431892573316267558264412615765571663953034158952343820153970272627721775173645845758773671125461387559291844550796310710627811543837558426210854046089394146349012302064796199535267883397657427664761682312578460652909347818766175119857425970218604981449921599213795912663131936657773035221869690948465149400239409720872797016470741129465661222225734545513391889201834619771912847350696450785828148248781483315571484773457650878110131490032901482154444962804380807656774624793028987892998752190416941896417047810436918752169203886720282907767995741177950738557740600282268439076828518107075482394370155627419747655845531834510857210894408659018763130216258271896409758721198974153429389540343254148294753112613162377480758415343628472776205186734612566887742393086398596667103358870022084699217434628642141487841439211659114447506077234938611315362666894607982497282382513357463463826485986444617131747600307709077186125963258473781691744505800640585944860403193697322356787856678065607900042541093395551862949422588331949965997631293052925112932837679836166537470171198536903953324258285227974302860478878236194837107342763301916565177518837009140771278858326372049459440681647491549153284290448036396254295177034675061630153229056007136253147354049429848046841021861504783250018391460675336151321854805397475145801666603730917615981180915382691865231177174649888281821022540723077818611105155032922730843582605545759457837318248491117443235812640353434476940767147312659268767411081934194971210098468057806451243724992073593821568299532281637655458832064865280688775347034053323525974989164035314233283323238155885454648060671189017545644632653428283102609811525494290840195144758714840748853554541600641502276247097626482893503047672902249797420632785876037499902688552736350015536879026233030120398613814124241664950642425813999612859353595269634961003941100607106481846260604771526896597965037328815924438995818870422625443428381817805003834302599380498804125874301953529441223816607795755616296400634582319495064315717120807468287044298471648555533462198649022539488241820377532179560926525521321710297392338550344003089393418194690463951359076122688433936284929635949085650669649737665474890209560492625682831833800468268978971434534337673670867867464390164088503768681687786112662933071414223750371277626200890645827476487813374900067842304544430830150066976762178315016988827511616763942916725382317997708668218896688152425574926631156132939902589087190014118533765552084591467489253951891145529489943632771556131951354425321934715429903375020016875453431110946936988463758331420104446202639726029447891170514711592710169044435549867222356557091871531216831532707901233152343180836473580409232717446988694820369886322652020941350899056547635911979038605974318544653908205581898962204553581022691740564491293321531380102352966000424371088737711246661958181116268020595738659889098865272875819810776179537703044027388680952248440634493721056876274993043418060921301487247293391739966269781587705045004319013038303059507858872375670187789311459954999359387244086340364058545462464194431321421152726485747477411900014509422917795558293167597280957890106539512363105131033825819093246611381540011020767591107721433408519286529863490159618850208125942655989824067005964295783035607576923443696660567696010924210538363894079078944533291356968535387092357938207359963999877032839473536581662831853375617472618574768197544030934749090057280784553095469837027726218653060021192762182982289843322972651440080462892766703397459484766796768794499541892240087125537889762381400344585871278211548394838634670541668095454562496811998561075203558733396195239009856143059435703135378469415542775291819034144670434876730084439377112051687309934499768151503873248318435778064843885111990230838971600720669283491417680995658846517221809188685136349144293957983786309009381529961959297975637286102940207226843482834435871716795742810971401711241233241925663323140735461135185746206956472480758837824788882808793633958673713423085170996959414466328340979676009912442211415171880972623939177341827690356432156156885972741694349672824148755119291699426424759670065406412933507822034469659616653532781613070778614910535027194296409139089211168048247133675722511169502087607945226958570721630491930370278737983996586049252896996152006988892226968443669295090346521628521781663757473933959341188263861220773965792683304670824409327308248999843944567324346266364605501050305866043936232617300627204013121263422770550654577212585364589024038140335744944106237879527714817826830161410709530894086721300932562201277446874641337545695796128622305984202869647161581854109289585990713012125817461794639540016243624813092343784109254723274321866527987316070445126844227364519436959880236610503786814302478032816337387468430536433007657294929235442558897950787854871713843086132185738439682170261576149458060496511461148711260319977018726897174626690709533065394611950089371170408131895142499383058967544912967701102919179683817807416701436702749507844083336256917319621860868187971257278398593364118702452265091494513088856703402883391497448016172541767999514611287357656310126624310132974224557433076312491924861961441337833457074439513882927099742410064595941968328868257631761510031112942582965929989024262563624858666302034702535944940789935710906689084535625007582965359132528389989195232889917741219256192799804490496356062427220610010629013801814647251006713821373712129516261754484848541879207050466801374729150228842069583858038970534405972308349532580220939903291737854574230193751701797396484680197281563353475657218480525951918060429524560521881846575922705527231172790341206554566714760413695244735146542536446449739144199278089903150186854106875756032061155873638152187960406368031441157741979696527845510616243311959875152927276423145303446688391905075196824405135919630802410830602656409217846327437799776210445150807128812203671690367966432867057756801720808378808378605501528857654775087752314967986791933535016344328382433428899350107876284143260207850849261389135136869106706953957845705289777868499239519035089526713336050719063349408496841143629125656731692501926705196730576875986975123743584077723538053692834579771757544576508610465395906291610755543888465554194187523064163191204383254766017349769469308972271299572472708550999782061321944542899341741461869212358467987552459840827401014493667629148919441922357035555023641062354885659851072501004770481545474324842130038227829893851698378088301348012249622990115530830528722344793297920234273764630541623837983791277224854203357433907471717238339097962859022827822375075806402713121931027026738730940149968493904877492779836594163921968953967348911987298198141677384184262461113558307360440761875627447829915315758973496879683685430244328469671511995034958472343952052571122295524595466135138239295648416321999739242954903867687454844202309442700620139736465045012576198201862657752542438928425502697635842820890423146238752316502227964323207169964981892152830269873979626361547663719728968923919499768244085520442078343623857544109565322246214931983191304839829547924642542269387653058791956259224975942028953779363299045822864360809605361842297473571476727408508618129194404353444357659515448124031839694421046935617964838442165942700903134569084420818329501842188267172413385420038815723686964202211056089709390404674079180712306360193009424457841707409773106944191979940686567986729091611991269663003760654069903974780690525405119367324409090300084975560514249331523110745527252057399887132537005322226033870092305114983729458343872507229771229566219716661066913681538034721319166446469517996513320256660588426496374977818920943054111476932431568801426411135622965576304983439750433541875644357130279158061111826642327698498051143403196983983210248306089438317190412373051995593688833600096300941212623676016715700189944449037609843620948498706878650013731144331034930108471043906708513440141734314865579598041199253034921747430845568591821369513549761876102627194528112390061196095843602564257342185961807124580700521735454664735195891824679073483611552331211460941898012640603435963870032739133449613845898827310976695023016992680804771809797416678639462474799963145456516342810707493029936116560038237671569191496201795172214850251405788389888591696897522041764633511144313639372971909812329116841167422742080388778896027898412317498915506981563186882573167567196134458832108379681744117909472877525338719805659683401989613391299102855721908263958498108721380091908648087928203326208478358091135844559316587899788341240817085279710109271376353101911826903637530716110526033189461609151910138653486323202983775035873403704536001266210159234477020407686898832687927065598181254833767955997993217728373481058417209294158380567024190489468095193621347368054612849680887033946753345877677719412034251116970245202801721561630307582157522784633610032202673567291292998116710051989043698775371070397550542683910199569265521682059813750919854574602820507022219888863196322537283570665952910159887465761914596895686235870398852386331039704906373019380409273416951544342567275302307931058653698947767443597174798993868599102414463526111196111412821110679489900783636162581890899317370295078029042307965068834517438574702344340263669993261122950820909192296634504848048157591817936591857217152428865726299717212375704723690593621039944770959124377949772489077972109903554741871353010009070773535877548504010632907725168425151747254399135771268869650245575798233865789836483224442980368351157820852862486827823045637278092625878205392469165131074929031926632646544555623439399678077469719753291728752155919788243426688606914287132759007873836081572737374779302178214746295597518012812196947490942605987776928202458811087869649809077169206628794764618044938300677713184721614501004265432679705265902165761252109388870410767911336210768878977532680130580513713798068127539749349273955071282787530052773195090463947300885406294971447491168014354017231309278452746926802615998102181341350321385428429080448249193930127621721137427992890616159223800820747911087842477069027148386358801829526527302919414096764452842514345788170641386629117166916434802878753098172501904985742975231512114506896475806036197866725602952336118593951081271102408705192647017763947497438583198215344953689764674076680985609187462836676633664769862395131961108736870815418111366639715493703882127175725897555537522101334311675668876587842189085407330389012846935596948740588601888336109207982712349605125828008359187625711701867950906905736657804226631750481187877385371354454669953365678388799421569260626510335447441760356688730486685912182667062586498739180709383730332454276971040042514733557720931856768761226297211997301188386517299846348079115382611456848322548094329157914032231121353373449217383468709404708072642832531905630221283011182002749457725143575422582801592407817666757402123548991001228065093014158022625227831181306725451082347418357288978183422574512209009234264118401298902036202363705521311006063799044213501687033167966786440872979822928185688868992763784963442333282164128447200024210437278300873222144553987242118749555070341003598659117050121087118173297292883709561164205731243002388765721208563630892727106920450804710418090552804910982427538059344246643799010689662789964182531086710903778038847372816458658182439515769637225249672872435848002808702339309750036509787120155245683794850267056095447734972024562283608473599900050389891216142374179083814260846273029367589849870219608020673821100456908464291412269572604989921640483147830620304688506915867514644286276701477495268641098934127019107127021374482924589243809248683056869765761967288268525919674733419629837778871812617513847803499213626605085809663913881594010387682571198836611861136453442902235541582993979883572609377464854743563039302707739042320032333506353144675275632649976185406959907642237263012130456367665321529356653358727592084272064155038678372146770001798480685146882508640605063199885974990826880133937407991243475383855213401049730276742176517206214910216011895748061737566547413987967870799740784151312247930304863787790954573028901850099954876444282361967308287079628133773494265542733819223092068096792747123127532709959800223193811079925037717118156088628745780178602575210680173923729004186873237265506600327860897149130735379141800844493277433086820386894325900444077477853687988129927342507014894262544664057820774412316835574088303563248308604575636747979327083578745906970024847251011062415426590512349098641760658704324822416006099413809378485022082197938904340615259635892655843570366953813131576643738558805981678801494616078099086797251580299873623935188113544066683422540299617555656696416116512905514526653997943885729168951477766237702442649261199619034090852987367318495342139305601345675682338057144603174766745078755563144753526101543968610355614370028354202761623982740520022338171595580889352059073243990669176799841177901470763461007699282108104273472539190528087082309223665119153588125692929112982091852156439652114668180066918203176976597721910921982170490822841141344977923787115127467890670058116176362278641866483651948292360183154342023946332347195697959370252428548530936795023172903511642359067437165965256833178231551302176210525668050802211607250184761465988618258346188661620843686481211763128753306236990993271838723701242350758932552798798611894739392908113822050197104689053308685327763381907912693432329510529951213898576223675928339211157445784051138526473057235190702370943381077160618636852081297322839486486311038041728895161992248879647666363911361882133152594309715647661322366267150937657745704360525950186007860798269699668371214324219652384598296174700376515925906204253897810275187269780002102728042781904151604484413093380854121361206358885612060103952533713288736584919772589883264329290386259995746665075448785127957896881459065687940915049330285334568821264798459068536155709614321173202041244727112896387198881366079207433302060935720924254122661733228621329764454867490161885072856343247293651115240382988333965580019984171520258741655228052432251690835724519615542524615711030761340179589927680039919636287715232035008941781054105376901742733834241229099096386362736114771169227468169069169658226911058236892441994725437887470374857771307557713696813472348312391062162592747633654270388518819100433691386446460369801433201570809103094494143376437709104028365435696118272110087104503499894615529315887968968813922741816178107266964618622814094664543839481168755119975710309945042451923356941109697335143424271346144742769028699705960280342632524095034944190136170521165901374603003450323592935622425843233470112573825590690435545618772270138201457157373129690450013483842063799440838509374937737079047073492934639691870124859402153679082126549553271157567461463701666067961315389076984612564357168034678383576524866144191519060412299436767501867256045028228052642096081948882294129233427368710994383314480774055957415302094223253520983592647745945159676604468092851678610755363125431687903467743731954481731427398755664302183417366118218412898572254666931166406481825185035217105823171424258529848323020889680270256319624450611880376219297764738311842585208351170071501909520030852989606069561858606608558759456606938372089628542470434221501961328488889114094701774576246534119010641161397749843867771202910636637480289150499412696493168946242863940021039590671243282472307524037044931299595275438125712772940196168520380516338408165170178360020960524300917439136413320829159754009798461245212222101640312953745491344690099585102376112985922476784520124028688372454079850272600708586747441292492807776067160238109776336875182327418251986458260158343594487433444497126374444072176654887121817982309688681745243409395762930749756643813335935491702007871032487338384458713921441883813335725258600320958456109767081157526863362422820540408796561531849785140098486067296346722042559824048558771396110092849677535706554488144175295643525505277664119605919624170213187878715164411209000528505845560584940211881565175302483012640565198472920900047163077151420093807475284443662259308719460157909084631475923544231462510172102288773835882170551210003156549056897474737668975481691641155422029507862189828660582840169471211292364013082739373379770812595612555610463749435433227209248140924086776964074564468467669654489811593900328290138252461601977543339144957486033119710709979051124300067213346705046271486447246159111626747619820056792085894656756746523065552619767314071997497551271831168285216677770380426877027992284393508704412104503082363297478574089256939725282596348403399963827774910924545255674440036311595427654895838796331584865782877914527578626736124565964440004128833585599803216568685920793228425502823729172948288152459781069329849980131091229274884915300784926260530162888844222844244727404250202661049459704282084102729303574117474898129696172614061393274724807193131445344283881212192719714840797422586244583744376844216359853854662424841970911952043848927896470518729792658123734969230909944397490811613579853142229038983058556967408508810020338243697721078512145247847011946854855750539409587900313675650609911944856274972897709872093843996255253347427923040811387307814038463704857575449337602638724731060501522144451642469967203539941389774082115375031649428981170170182711660603921205667148048095778682913545608973876911714286869953214049053271004831164646665931459167007565467846823459844792985799793490006305019325152121666410195364103230597868588270118559887030254882828749610974195175388371772681172611839612162379084579253924207481408719098395422686540719727900694401733254408627125736917615289608855242112911635308468857485659983567944802505889900417794155117437108270337963135191857284911552011701254529724451730426185661426923382022637722225853683789666704127453771050272391821412094771935082425348915327826989840889389159636277652538109171100633369808510607883551434406629593158757199903373454416189918751766833022448213901414714434408595032097082226501972051748958403533661790979438718538635362413865115414328498246918790133755128917246491268148103510604333126280271390194257445625699420170661677160842942468267294129563279885981259342952731637546926724190201797193475223873926234959077000197614391794305467145199778833795468417810525700423602504301251268952106283001416252176853057808543778926699425498818549759279715127095869776278713786752065222977482587011839870009669779558097025804337779528618889302156272254702007247196429065548690847266848160003320332218934345825477011221247742400610325966701810474748233230129060924250546414581958738678233967581918444609198138758201925974170013148995423985673136146156541033843411406380733107598392415566401101339824427978357727880815101165530370631342688239183226702395901885491901279704773894601227525655905463153182112039624424049530845459870808753484560584566145574020221449970558206317195046033389760791890314331968414071634111525771244903616590044915981961894512677571556166073795774421994556052314553307630017900290363936838320545966386878868041662228134581134411577147482083904888448381781370910378844190915651354935288298399965347766035912287281216524229929090947770030946889219979671643730466083435795399350950168229919634452317811559691709809672229146833934636966109128677930068649033814029535082784354078437824744734765150820483688924214339235371212661664627426425944840541831476190205876554640543157490294891664447332293430401533876517430312211722053166336416462918322444750984431584076880182501931493846505756818384392158021409804913029278615209491512675953615599123693615648290924138327673394097591558706865650961923128437734947464764706579092736696351040941326425787063916474949644675208960042795945967225462521342824740635662307856966118825482199316145436401531938070114916543774958485526767591817462463920835028334115227322948304260117305289579359491009716545898536495434563933189700255360938334347209058209811839150897537313557009281939799838485877123213797261872906034023593575094835945175249214016285756212197881955243130408781159493688189313745845614889678768756161033577681656197463474553533734668911765906056199570961722939775527991353456148600465152590096669568262948181598807902171651504740538968279096067118596773775568081288514554703783355438765598531117654727025740279764929661556944076934707706045455429961289092867697207067350822502121920964375863889443251628682373181351833755812170194989107576063829342566348393286522127343559097569655450613916846761016526192009325029939017708601392990188746720718937964708040899380925977843311945903522453557326850877450650205937818000711312292747786939732941497754444195485466805666974122324753380770769285345630740590748516501001315291599577185511371628966381053320875727968337550841787776418411401800950745644618608872657190898045837752734718163913170062752010264766784557608481432787668725430888986652102951664000635174782419785439104219491260042083099588826712771462056854491906477046088700857598684787026119829733162229215963101044710550400998818006084092232486920525431660188035206217440947358572229749120406943196045818636751401009044620084035587313510108657819299426518579497253039601181556843114812743699506473004267182030981974025156372915421787414319150414309693846221135436916124777351740960556849036733529535676644136556648798404346539572859199952289342359664332748480580496036720784397002784446521821826604686701931884859435291268828653681381276223904425915759345727972350911694113017004317477257343583823931879801684595149105327755886552539810235793576160365685205057615987577434594099432427225167021590424015866365832677759132102824203247239483284435253615709643107630164166607722106623925799988747402031128495435495105105153468921323469965956604848408385737696871622493511866262645585719503618817646411002329842460840223137929322937882416129329815044179300027651660126977466159167882107060768408941845091608741666921133207737459001623898917723569785997608622486692321609371411161052908926694574081460208821559990261696275013397660208817407164763428735111148243127100954481232787295969907461025613933055986912501483546400573916435089003371412791860618658370293231782178904901357802664466332819705039595981416279298587618006936235941803100603267110938346952660130808333811646552733240953678275514664730583431978506033392260959163270009173437188993172448750063439127026393291421605378854499998971925795819401770595248023400437960232614111564039787218429908898856077107635495904761486412409135978190079962931659982516978879048492381159960995646960528524830957006310493517235789014772408793259291611706403553820840366531170411508982528490626769188655315569716116008127246154216343706922563778658054274275597312159924095793979888058456812345462748407578128142669599107980685871967504542769590096021670049243445575043996273584792545860758523417394498460749305182094796954456489060598376895380250146513004462286051870395387099856181591874762520572803198128968994842432112026209875348621810428726883145628101822462784558037604894939080385351205780811260047608318710786346602792221779766672041944398254567601362111145391061697215976362326331053153882761158161767616999585021412358408061800611143572379991918797236887500045178785089978479381152236887632530082313594343994437511967762441640087235699615209761433469218534327273888396002985124925295882349326953855688954621856800124238661688138567532124138760703701818982841823035968240150639125516124989542946341379670202718118923671624920718748946467706475673754514736674105730420345707107055460511808309936329289798027266257531266188992060318729578317485728269001838175138873938331665007823718098636382777053031697681053960603289009910132670285486019755598980860361975695982118887956728519784535427772681376947479904086071152381057646744269835099205157213704882670740698349039586317274558948798860236781521589798208904502424351814962217586246384016698752596456779451205095496792127824505972478015625780553043302384196371502929669174843874085834675908652613334620604722534995520394777099933264964685811500930438846882611158061800106097505064007801166521823200998722130334070018518146649717542161405432158760625341259589725258993259984172281047440415989866726927109765519776672692029741360797565365943136171427890318336243513678165888101823698882030422883358811245149562504113791643119659707741754415601737707740007838894047581952845767786356099171259318251722103106108139148029428036108053058901797857924327314572447008138070630739479571523999649984851622549641330940607268988278486728462574567713807337801671694506593008499870171587002734928977429689419412407714174243769209655994810546815493469106598629595314401355737073082632558979457968417388618861973568198271339398422328164822238506197266827522492783380224226611237538168659422230053658517913791940853385827083805163398933002038452417230200608132725372872035087581914115915565961243425230052818834505102787801266197946722054290644773262768932069704762668811946593329237206803458210527341047699275121225947227099501122714576977690574953087115850560483117096789840839310886390735109521748077297976228917053187757402196639319393140754412067562371099444759995353671251866020559942948841344682267906597919658024132775404684327649940508777241338293263675084188211041753295359716401231790192086842480655176986002637839041449291373018673656627785731153218137261958595341497103243295183042900038564205801752253234101966849949311118681296877907598632954388598872909012349340101368510729335673271028551751015842114551415678695834830461692340099138681202219388823559790993845244559647522550450359562367058596228486064827740479114371244992939562510801180681692014757810669376925781489228284456808525804237811131531205346161887526094930258949979294454009539182753175231981875605326495159633558149560982073930743817400880005088816053018892362257788705125431357555564164989110135669389789723887302956545840118882345075158682311981574260519420681487709408056930089738547668118699554708498552050849986863334466407840202659783515179678616778894359680937578645823592093423355151514279953741210972482594198188666380961513298313986045786463649038177964196811985871801021620335027548804481462904989095076011593698950323594809466117796403956710939343882552922302971849832481089572012613596557567933247720730278332977772127993405067015416203060682717516480660100543724242860457075587741316550354952982295402651306813982066580619957893016499015964127347858559327148814180603020821350818092360655269513473119849289551847741274170172688341556190261325429793730250820759914019447844965528968533921192754960778741209462658457126552992115297788825408229683942158780919066423682788592364390708917899847598669090298471142483901034730736278158794445427509853613440110361956960011876543797613725652112478661765157192123020227517828574576260216944374045627455814019878324259608327020149162535458866245112001565792570532763376245437535163247002779870307739842076425491917723893158580143323010634778537171648267314769032162221950434977714518407293734382479045439954568872162985869176147427364178683166176840454746487315837454803205692452018135319394525921499547106568229268400570994219156367983864147830629592080068981471743159263890128803406560108249132596162554615866354077392168350384031728985771337607980852403476036129349864933756397846780341618422317005660761539896996592982866108061123746054251992824123497719598706295794273078648069119867834369524952335922947825741181499923161160165499380236792131694964557825324155441857200296707943254343528289653050085749809117741868314657645070210736943434975498202669479302034035081020144973674418798497412960067597882472799036621276728859057436157311789558379574461189679860082077142918196611575515417021070694973966973534144334916158977149319976277728016351080105065506246282351830153500693096500995214077421628035901627927875807492228372708421973601667137519065167766851798052188246412099100339662501033935375396789578891845910891263194498861372157569309884657586832205948488281119024874994373439637612566510775860123478262067111484646747104151580878086307079612263773675320859496262594425011935856029521167329544056654367325656943135174580432838735019449578460364977051893270485443774094002259907031234214742577461448828222509357977978914737865211681496730713022866667259272597447202693906033519235673661033027548491147303232614208622407230743060772399110927342986952207315193596895207509284139895351243112316665240199417281430835556479011907684115479312859985996231007800513299881289436608799806531930279917034664587388142493916101714831653484020345586795094668691891601333845860300249730979480773180611689481309776000912926319960874143381254058192243966838248687139661429087821425760674028623316673059906299117467684905154766741022250657693179599206899324799353140609888605311942030623752321761801002264011506476604295107986480212633164825563366210025634837328696610579733585150831606203696302197173815412559414162131619397590528463271889571059206306558709071695785347866220391645980673621344322257827221323268097350088024837722814523471090716866049831042345845657251752926226335435166802713685203419011177440349231876684245468091821031520326239225694903011153115728833451625885079468101880174444428815732230914954809439533810719526281349939086802026995079395801065157872728998785574462486791660354995825580515908034845862635370215935349238013690443824804624490025746867916567693500263389779182556753172057158319158638175082904458443788847105491569555981080927867628519759117031695188135575279563580814214502567805259469763033834291695695684866629276303804686222244427426015977294244913870139369578821269563242102546324581389191824726640026508083857536352964119781926685863829775772144216036704759003797855044826200281773881659901536439207810932157870391423168012793834412114401416233834639169264850536376717777299401231739702965472926609409368122649392948413099395283016376916336408429500054456196589313087358249808737107936359793076024500798569291298100469792988125678758563732421858154997032554224001348323605141143788452911669449935466213856179594038167679600253273754631712938539158002984250218456764931478962977466301951947689790893153706005708201420325690320767195606040353806255333116212157029330801689650545538811316854430214091150034612433834608408526868714812137956912114231719426373959735383090862861061461392554263485083445417970533779719347364966033860524055313817973860662806350516976756518738063037218095208025973487318381998352000813822266196086028096191467753056453079553289351897960503279517115225589862164667970372701088202867356600251898635789020669375297915529751753035817762484512987938430231025580549922682240604900883743065823811492451815066768557440091449230059476954784761265844667627533500951132207969085821324980737346894905302245397133448588051959606332063385634665875195635490010889898333838084800441737873997440677392262995289308471974207043882220261039043531040568426632615783332407210176971556151808402540183512965060215045312103823176099740056822087873164354694117011718883686749116673049266971754846680327777549315610166451014099604761166354573832313624658452257631057678449480379393467427935719528595689206297472994782139720625041247457276431905717492998936535330809002169342743736439419331261681417499709786314900959606610148652988250775798840970967569204228560630611009369587281134245908036615095693194892103676737328905057961771837068958791292596996415548858321190286829778514484865386220272382605955208456694093106905169874229373420628638177065232238341764373558099908459223220758878240224193182959705303374056020240953330033605326744514072375372377882845356797183366903890220482861596054921484070819313583189160294077688098206226633828496645033524505383909942336665102099465863138479310221703552248838119930224636615425017333894471405165884037847873522659938399053913421161215360188243768862530166621142084268715592081315891799324652242674620130080988141845572409316137062574065933761047202173005047556479776974128489264502513829594980090827267672295912755260217738932342498452697596457541644513706238091353521444978431083398571059904808201353321113803514120151962919099869380862593084907802338513251292954824669400691154589209482296044988623603404834932856896405020573947302145510268632693657642848374750970202952846758075170378302435355822542610668068951899559325380850579210156794780215845883908586761031067868776682514487907717956799659213353745717974842273598901553930424867027893864689968982656636548643313733923552983768071308055621376311996157027432647428547818218759995158108448193814203808356118808497264272281140587493778585534432995307935382762370293526945577204641470935352435064601772551848995281363448334199913413373417199635338675617256497941820336196799472365334315745795698784900858309925964030476843950783033085533011349590066070867978631737305095757166827754629463159964881857755268046380259255061119895160557201285683299989299881272225751897309879162071040600169084567950208020460014621382252571935283691613420709284197028799421450810636806373783539898568739101045949049874491185217103306880445998129956397531444485242071888512441153828180815678118467710578224782015510443258786152122585072993970659324121853737045149036332643279412145683489899816223109083097437799376959620528750450303632556615715146491963006824288564620288594839378240464502024674702197948351411140855021290796510469364879004693154096922142370711361803199493211272439798230106613832037718314164384608000667991264476183681017398187184990248281040652207414167719335690701312792110231252921091236099345462369693872991864690856206043665411892464375894528273918129532724542328226287700258928835334587483343125903377748651677439482841970218171899487946865307380614193741394865409514790530625453093822841730697464232015633454998037849264042014455040909389511229950607143250797398359180687121286827255740293737314543614560516845588332585998351927876225184070269003867382412727807058113285625919284022687928435276736034547337070089364105650510789537556949117981193994630385263869906803381625391232561966051905878583313386613340192610993787502057629931792960597614888738047099446422610727564967447374642564428365925768110643976986025116353493904291737389939943979905935673774387149606837241708132072393549094926679953543503802654441990546055962508161045018494536448400001930302202645234592771103472768099516872977751699477927657467948730451570737649979849674284498262018661611300493323343673874471152606771275045600102703771518856373495808125175325533292574953840334986207557772554783499747110845886579791176905050247981018939740980885493300456338704149150203232019291652777385860326251068191932710503318980979095794347213769327899899443756333674822034815048361317032459655633289513275703242668270805263695608844476564260999746364463712011076028990536727616163244866315897302454130504890346341608303498271013027934020261989991727780299937443364405840243898917168957114189289942501371907507945363099800957106684156094145426980655976391334530901552272474066340968339834584667555365032051929356745493480382195953350482134850005258342288801345110591601614608649474172196215098696375753251295658463259354457300223171045817636231578777881242032215273566187449991161428589146892898179764738552127787641970613524154206219085730732000312516320899549336103945504571192499733160898787451570916458184982344535484798457574430047454110802733428806476943043080523628101893726273382467685019437091514503932444693677315749781027948155823153796372906316667023827130262136050787826430761373293858775262490860585708400322565473828490971996540502207561498202146360224993088684395060266749976544885562234717146759433780677243824598124842559425241812638536807738068187366886544926317272631891633857659791636334262022386163785355152156470234707027284453002448979215224381150217998152742611445203311582777136707716553056824957543365533612726143279434091097416100703802368925204952154247348170824202152450765820864153190309248225378489102270881223868885324422294438039691762612346334799990423003675246165705707329733739695938761349838052564318730398883020512238292003009490213481581901419308920492701325683866988184194721339697710601029749519114590882034251392769761819372144639305112511125837054210616133008213245514325362287791143708579871546002880031576739395517420782985268107799361908313905538127576010771405912404236526972852955569741420215577862606297243219065974335060837387763938888600498772469488791019715463820469145801491575863219355713804963125283303427294755851282896648771799540429910917225002730635946683655712732845523342049727901320601304419328264761466588325960654914633260772845956175647901993450580752607887100359996449150163788074347109764509822949316061034427387468489554150804744420919723773643524904372701413307358526887476364591552045208795567076671654610841205599810900497775196366080857228426062484187180743139246668870069290519247660589257803103058926141380780285077592053224543220720284690180178891396652687695025915473896285895927101167577136383932188186500938719732008464313604759222481796728268648869236193428584673020465300483808479854100522490293210622227815764394904393309299147926077850881913060501605613937868284818623312403568083006955128042480518150424692371981222777580610900490419590574612366475245694192929412769428780087761096277898031733831697587820578267966528012436733674693920330286741054226582818690692867647172877639858359472635829924873931910058101987706442993936463548368633179355102180974083503184406450667053193414868594432499470638817387037726147459828401979493891096093611895836204555651636659939256746412036013821556101708791759639963765153712269411921331602375331294034495027631703443407602090364382430537024533377475404421558212655560346314607521928058338571158016165206104064754587315686477595013288391185804258076510911443048330635956727509916729208616033297564542938634924450238639110050317514548207605415997619823875431770571215971312379238011929701026065007107218784493668488457592762098421608975888184457096505642678612770156896825734757047695681484117974093383006408568471897355341995269489704387301938854229504507831484058418701600305788751704663117928957710918138901989161891809975603106412026989944446837077107235525141141345320529110494205589511197826731703338351910743870663754341653356570172686946345889646621915752877561115043541031539958627388295092855127965647000331761413144264563200159127338724449823450258082370837972746985455747605351406974982788680255837907548593401370017359437705499608052703895624992216200774039348320347070585850664969551189011977827144032417118290179971185090676476621243380867051339569476290372994764288093431258127757670025677325499949920056420104760104121086558609893496454685977319276766851721042854466135786146737309244692415712551286507090107886081261277221993802228138623365522146450628500122364987920245398096194396773397922648191284676833116290798753518292474644477638868783425024153442099622530131123084113885018361109174678272527426543551596539105464101906775898045366703425361450474195638859662644854969352056786377064353380707090834910558808302670450421738178678676603505610452935760040679738535086515276402335740738714775172134318449572441856112096712457267570812016978304336702969936501614224578140005231647115624987256038953336173187710271237817119143143091550180637124375329577012523219292451504468721078233193284917996747700456447941353481300292026858873343786124204802425214358707053322074420270457576648465786071953808223673818699976454522178264549674956640131367153937359052798307704419482904319039849246127984509075759137590430311489280197056326889958511330621704555223880639194914179099376027892718741135287633607810826899748409034745532362219374957384415968825891328580027361806358943741248416292749309122454980205471974185917706391865671377337934876551518342970404158504195714553806774861652965367893383789265137306698630046675318203672896565166585049612527480861450684541289262613685856037817235161508007612582160297355131759145312201233728913619706362917395908884984155420655844942213417925763489320162134670203191922931370190419971387247497727956390237671706087294720535876680877568890959048681084283181530661351464242649197008788612092354627731079358995908484163340435082282586275563488013193993291622682885776270757822270923174653664920201352852439032258336744255817986723175764918351435456266691823765987396852430969550752186397284266807239452760824557455296549228787473554808700509298657784014466272985625666905785776936820615198899957753489923768360102052163490883926502526738892832338500586488560642556626198493071600905021360612241744788063006801998463991024711085340403957546392591675975067364888718455718623699285012066848523876975058825118603611373117072664110594986123474664143237689996356029682928125543801842653584581641589204493727835792037091570861496504775805194712911178185094133408547107310333620755285084763251479928285570882268345465278901699739987545749247484929476904378234818233835213601275562729688078062005402851391280164885706010168010783990864504380781631166329049839950484263560893659621841862167930574799376936708591350206064999057903015323236031677624285210399777782593208984119834141195516734611095064797133652623348807983886807569843023013419701115110633548667193445376957160914118426011278518939086538632157544410477015270303433268156013598411594671470989752871772021452244245608921330899289832776269375657992827506279325737085140683802994855493267148503107236256825413642323650813846994022295824300813486249900218679582744753999552019199251699894335455281894590600629254399577639278197671810340912900045310537572000067268462839509626339141931725852323020686298722353682520422045658876874069926284444074678518231823597484763632801513039766685519067220903842980261986913869022846590997960549642903229742038754624658686001404440610696753627382626424312770062790181266302007871163961163186214282204573143926538674053857318549694667454940380571840198895242442763664405654332521968968209412016435461218682513316450397532720371877851859841349071850157019710091869164918470319223391907871215723286338607338909893135547522003629594308169325939869185796388319077834886525004518827673752952975770546338159078278573635274500053800410045073659596283478541015588397967371347972632349681993269580086788229549150586334069983870006038776164321569679318766803706378157462545140577048743461732730228109133730137033428554832727385877645470416886214511390339562489169472008430865421635824241937664384409822990381271038674529920597510385689440943567462753616366185980277551089399838584227482339644375616255531544073973034048837045561323936124861779525779749777855559056771169290232803814861399693598940332626058944286336065873123923247339186845929656255965763254713165255354617493240578874334616622614300002448604437769892325058876081431331610652656389559715285668864266625137541703674480407375357192334862450328620833181343915692500011405129012117271585442455747201124452105145920027564331334366124421250068679183378286832377508961578060890116359623133350458291227457415113160942912459761788439607686245857345369112882059919611241803491033195027262216352593736310282029521490467044495376177311121415475863771779374241124463213707937223133123465745372668512880688384573881958910532890041973632354932781403538311105088731542058511853834883342151261304998673362211891907790530522289346165267207464641677687624267404027474220420592837349492585305939409275013666599950764396578556250498640248087167608089228625171090588019558527048287051736335549176683793400777409008337846970335548344763614103537012304146302836698279179852282319958237518321333521465358181751353372162461347190139771216156059561531670340471192055038519631004064252968064065077160470239157164417804423724117467647044564206469287024460730245166600789088382592762008851222296725080289725635868610424355253726679793086977595684640821612684165298004340924864085851700182866182061436386685856991684489120595157332145478449992327883557916341389659113548850923061142111715161430973690572435668984173364235671710400724653734744025165265610545937743033511284872282807175387531856611156740188140364430200031586026087373120628214298211875320559338189758499106429224482019750092814958358110370447135537435536076105521321133973581293700605104765864437578629666708800647585463085621501662714728393582118542916808445200032773251178496499394583100903418325441771460112519500860338511865137546114456102961315684608146674170715513781779606049587662815725845313799469925460968630381054399604537638320691506594455751536549797643743097825424079042404548935621453079717458683947788488007371118084082747343975935859748683955060178319093934332266664445224200178126723366983243419429911864714331406094644150857247655048834513409301079226307141012452178187463162775788471793271600310070199794727483289050357117098222018058821546793590044056135387121299831959188138170815897868597201058084732758435998102450072800058416550450545128465067059112740022764433479703601924020109354630634725174465717345268931234086948395056418303313864813209809866970272402368265838555302496315829466802031430065088831194424893822020347821388322999010404921105103223146638966132302692863289127745760579548350974565826538344685734910059845129220411610672856466804098598724493779933427576051485323950938847757088756611694796024306851889093007485787335998383546554095399284469915106881199700156857116158209656568260510774378014402097861746879235889474605787610914247236368881370766017387829921288578256013523552738331587655776358128834585694117942826951235638156689700564632239685358395235199347283428980287603834485468576841243048806981089453406404934861520981927576065208142578546249795714777674488174248123352118523716659126426644134369222177306267864103071280092191226063943120523529306937680584487054988097118228646588757308336954179941536004126957453243685244838897941964150174265064125121879839543338946638606997001289141303437601418878624144990671154789611288978454975576217262839661319862234106220728099049705594266694383233068064271806629679666300162974628058366875712558029824509030459050234447145521824566436231809870711065482343641990060724844132855113402112376646298930944896817016907099445238051123436117200119099827692363153751776069181749122435223534833980918816530292154591278137199749856453134846376026464296196182275795032358211610724749548167871095255253211911425395731198222251255169300051995313524768232854036199075768010149663603949103582006059964366642461960936503237140148505837900269284833835951802467596812293817205774285269192017577374258390112035450077392512560837611121716299113100796910420016993804033409357633397295053106451255225837569978398363298309714750774503981778095081707594481060767468566733746278806522872052601574884909318149111685227249273715593788237050491848728992593795608252641468882291201154863059215077589215185289220586064308406152888287282728479584576229438756728354708342156108147684591254866647253929020631634619774609993610886670021336369978610268798511961548531126391197571521881285602585822711761616169014711404880341083588349220851869265490952067355673407029219150003810087807158548612850517688589305036842553843007796807719588988831729414794739065400374889005680429991502369347676866832035764482380604632414952956091395205891152966240638377911654899938883402551470157397024058607003654356492828159512368657100897661734801573051757436446925125403655848463962205759665261873817840912235729107677843348391301345241168955618915795452318951910188314695824256036639131170126212326481325165967867919252403038769420869680182111942227660113172547873979502315701892368239362242927973592416969811394851664920908063791729023210717283646998116407495868009844254250176453618914196392021823791248988519273606262938852238455506670192771719087635161145990643841185171478102453170197616962225930880449340416877828195221679759691552983458518299349225595162232833495569717927596451573323797317578049817624126285161307492879786292589770708870106449383606901753089406808124312601018041062448462829481711052715265676752485711358110572569274953432569271955101887624761425034064785034612131340031925117637573234019645860457639570724944111735669775199210848877754089410034720411359805825723563811660994945958087732133035173340405256779361141879965189146940393943127830705220882901674294252703442524637205432530674470641186704518648781693099398629791992788828814988901752963942827917338701145687968684440602410403343542846296743273420725299765465073821195835441436626295033283115489199273409076350279541232945487599227401350985174867136054662276408384496824578102686113088462946807522296366567916169740171996157138518453284751313645914496107720855565791801735623018486866238541949413668362815974143210675944130725256060286161040675264375886858718514129373833567928334325110845272963850236769982787530512394598436048958611717270694530071755671546753153434355318822965951896425865085227339516742480408882836801752311154144833536226088324599184789509925056480573386027140811185232846945592270436649149596796142179902708621306885187086765946985008359646100861628830775072201704950770205642101077240588468417726585937126122863246705289469340203481843748600570751520089399455742535848181033524186847861869386272273491152468431904051610472860083433252517862345921338082464487537427759613561013249108018802614755778232226981020826526661498842414911377451501049442100851159911148532383609090126468641583135631695865568189984869014509037994145570568253029965817154189500652450604237394019918449074234871751934778780742714953378823998733451138767619184316121575610240774803986404812791681354816777124776356203874024769702134565475119959263705026711281466722735742514565360142044563744230891024802294184496658634337281060648273207149113405744680973338127372031555050392483421423641659379775119513502695655098234284395765137747108381608002458635409081418110338776853047283126633020833039158759227386754286380483287614406313896896161595621202217214486723327776317181655076269966414243743766808068712780819255644591981020021011469628615068785275673460577066007744076541801443058972427273123423664279861321872683886150888930055419039709160147785386221263805748209194470440136809617667499611888467727071401032659519192864434685760498687487311258465798543411514526147675703414351300559285415886434498165428524296648038055298540707090962993187419507938798549182898416577972923023099433835129860714716448214561177323373181044206442462925390771238206501554525695975405916609324069771614824387844100487139072608842616673182767830932194487594393635475473741334747979771181544422620983135061435755158644814942242908469604113195263094213747661823564522376555469795871264804004384270443418039155499832172358977962826425503404348742535634514173041771147010706063818811379861388912205812388797300206352166250884459813216695426650166639253160460490979730569449981485715587070228993374521819181688233869030746387408142616999392100025455074419961197083373614208906716863753948349491240920041401053798141420200683724329895841858108975655915415742066072391601509041311887656012439663490031485763434946565810578276100279999322277658408360806555528071090030765830973680065714095741932533313073747478186431670203550359198678766533540852138534338684804718298723556726533486718265569435560639671907930597120687126331174686480366168269863386319156741342707265682366070729841825605926648188987124277720835364624039781215306616786645732374745017081385470336117391108660786950770082489871584048870813845642774483467186067728115850294028820090241512176054457309981055649178557782761148866686054633620374971068057605378299406086136159590581995324208218466045014521262237058423275683635125546149436094038376066889487701790916768593035713608838358220178805726277088367017168924460526332388447938884211813532093077874627765926317116583097176834053969423320614077639505595173020800236449975616412585709010237255251596686127827281833178849019596312224209870814248273432230173021914988235873271317132349744867058798025846356992909801221519015334186032856937936679144946216650534908060814851254006521444282325499737553306402455329148172609590405080683561788431867182674208332540230825175788715779408583183839560643046519446683951671704399889163709904170730939269421182059518845885029025045718914052679592935327747987703227645716778606962182380209132737989723827410283664594507569163822594103921293101061062722388874666252743846807463480705018989915958101983543214926275182659355827428320949553883629640942938530330339259554784693210955367866644247821443689189679235773462452344684601616047124018071873119169856405577873868528944145417073807830131750250373245484377720052914970470188741309637699499905845912255851652849373250464458644827193453633122510873587737918931001169481594266144865086606268165207565374596499211079100672754057506586221144009616997052971782750498080241812114386541830915248807978873217812479785509936002852664965577920787597692878529849671145578570669849775582965809851387843718101972271947961456485495335530438385563962153149454788809451280299510619111850952784711689783145235189407832338190743161042622908284013199403044447907217130466712772504359754803052390145864929806279005532216092597588461968959537847401421577215715091424262058925290082445707876812448841120701599528744806831655431771399766879761360273962658695378430613051642166477779148787450922524204544692182755043624967077209095080428071870310789468014614423754551516211948069140292836006917031851648615099125315175312091173248088504671796210833660375816223899166606909639509637880616578725521182275212843047170236564983565832271074684834495374516942530256468314802694806112403804219539329802497939469137351634326448492047107773596247128573249972257148596921295414415462644722597290105012808808606644199948305096989185590955666361188095711445286754033114397742823591637565105760965889437355950634674154315735519274992679299342412472747134998482611491731920444215052147821641518438619965231164727367411006328783064136587787827931064200223816843579040334975194295645249126339318652093226284247250791175547327999665148096772042223910671453834518750765198804846814363901140597127522639757350960011837647915733455554162672420654592609120085382838422318083173561133704610353788082729736514559878130750404561973582997898252673031515793485889329396847579171039797441455945804889435787684653893926671145975394437908932005618617940700434270777752423227899387052007445479041357113153567989915029759761426685186099934580713641274320603772542587691718140077278521194984905783102768095956167978258697982128479041990916560275495433899833872260159630423582856347754748203493161135840394223955228659239381953208821240812318502261534419776367976340687741836156507865671438416570231947513804261959412061268352541474299745929992667949142420908656232875268796330175778487765768806799179728021384760117610533876970543849116078754573370421806829494244297974433292884453723076425568604132996028669283886818025175841732575562353836541475398423733862008829067765866384934485357878002045671480138121168423288852854036970002024598187085746787268602215471789409990294550192227556228841164105182078197778731991638248234706509890933839337591370989636747232733575182014311828051589998086691032800754660603040262523855189253919583730222830622322522402371948310787759249491251311795703884070858118612065179215584547209137667911512281341300126027650276498516427534807304703090002085368792549643525949819364614628347664587338388199183436061364066539495674672730074985644851539258635363832790475248665540988356965838266557393628147141927495045825995882253258369393935885899921989566204488343945617079779213299274026907015449785150935587042939468487444075545626156117368200959857166492924432372172227220393167060131400324634834161229282169148198010983275688663530732082866746620314466512949240444878189638290426229838675325959325177830821876294156197200963581536486016653387853256339686743620782331931690217735555636997512502948144285397514287078525565742763387645152688039350230805873106280263605668418454938673888586121643429401264259419295064913949575262719969917753836422080270304693602079037873708389632162785554521025452735923890126465891536163782497554246934960796737970573307337843153617222680627000611672051807786762230909519101333948037137837219046469248368185206444212438168768459775472035709498720763765066369669322799357708244193282740412320949293078082806986445889193941479446184097876858983040103445959138712651882126589368105927231691873335100457722087564632474302299784628348915465015127212230279860272546625090433054668197811757941814252127989706098313510645603082643260739333434007796167647735137244980017475472938272136474071954953718495282713058585319567386831510773102165845170394359720546701912640468180586918047634745750261831288309830155921008827078837080901708259267072029940011079932931133417125182701068935152601481533722567103543448506312113478822567877029691383861320301263811671530160974550507987239400202923334724318192805703504376032079642375039174698402031754176281606046132152633938725175342455668793347907345174453174940543940549521366869004799073312251319969784178271947750455947100442845810865743798797149203627435136686296915245447727354247510196195390048268557132687922614541469475601717818981114986062355451984425601878658640480573128140264054842024851387671265756271733229777975774186301442066021038670680308199931472832664935933263507718947882284486078986153897321511623228026112137716006515318395217936455082236074706358798246294646349981716576501295974261747706819384587507891784702908057684704249919568598646280986722223608680338116493601294498426777397288881902629199658860790470980984367293909191582951953342640207165373691461045134679082841479765361541007731097920500004230165437765204075349753741425065860726915043801185603294207619513675545756264140278972520753579241838453571688845851698161278317368322842131397167145819753719331486948917143574282483445346709397901489932852455979684555499751229821837647295882480972662308712464161349863965515395806000135784125660500769445263331922589794551338148747790614417369371782052111709008735788981432395430816022201746960994187473604158410567343007722769283637633017845227700111710118797508139484217485306187065354095388655506010905095974647631609251666550917807225625043297746768821804540422252231296893497692842156239616324578885729836671595722025875672372892480271966785384876993964375640120097531606304730825032636972848794044236818896865842212189567996145774409218529416992978760799950181749168212927522891470804719596276634202841364906510626953229341181357490971214816739966800133210660580437794813733251081693477987849268935900006772693967461972802709781824753557953333366437357111129861808119216019984972076392652262201491317301142211822215407195849452802882083786050145236398619860301640585178170990686113300269294592608586667819792581438793063177583550483113765431828272562360089852704131198380219804128940683602985020321860411846313853655893653614400289433540512480889774165957072845787618796510861841460913688476351961730968194391914801613604272385921120479292779853274332717589254526224777468817423127977040046811085897136827525236132203926755596654420691221113363395320466019728226555952033745027389943712280789277932896985839857583955686581132736376756179941077139931474907315080688938055755015942402311317222847892932173418666712611589850712194915681062287366758122207252718308373926537658812333303464797516103549534039651870404491212158805239074740558737050132304598087951010768184508903795910558379528405747453329837169491589377022157625638998118082005777774943174304382392888380035704499568210537801799624031648039394033166237368490240417749667709137485469661050510964028733706299697975530776507317801936690974134230737290670959650487372110287046739489046477327054398978461108509749586610645841836228708273107119995610647496404103221634817544706881169691730324488326998745956074329151889112777371389326632297272517653953470369214343499044390162649996954384655381488031389041519564150090962923783432566410520566069445521084971384792819718763111191296376215752855099839730620719125949066115240487616849188601562644254903078765659923053688940971213723459367130190508039715588799295074196135140767242311664329700649434288168721252401629981451163881197597379705542104787656218308602816968149419671580352990059505545958331160392827911280787483539072825758136923669221979778689268193094993532659936866570129928286645777428207108252651320917554476578741010702015423534272950032382485588896626218985732648559389931893661998108366669573123929470428191073292594951492738769411905369177351898219486114524230930956785197523009661331737832965261425011853234773302929999054222970376368356051856325027479649665011343807148099253713925986737169998983110579837774549232611529155338609523889064044803363441731074659922331365086338336372660705506177971103050785230915759019377101167775471151752035193357627376461308915996007845059919630631550612741976275578494272348041258113337497149012510478097503793781085309827297385487196336084779800347683805964406821788631461043979987369482501521437638269196187156207625829154956296721821337998675015776035017190312065736740627128827819403765851737803675781428254498796173785630659160675341165014457636031919310309715727601945106790627931875378818254134478103665111204182813163792090631475666726783382281336915049430263384144581837251607734396185529611056881015812442637967705010436313129301703950919686201894423443587587245484488772299493515203963469525401135074838303097593292795704077512823492559572133051273639809183809593206870525302307576552578813368576037887137276866760301997271230034118128111972720064380206689344689404216115432402444789984223479861796839325414044352740482794318583848692427456906309913607898760537989781680694632286961288592790111557112867029933890665952908913382300332624543873931561856360134667865275266742772316361834629862807054824567225145148388004516077234825556472511661327848184916544327899142660889335605760036037132623825987679157129685245666728652730914837220464196029167299480548878858086428664311235013844849550936549489630051373632952049572575484552567946588626834222582991854328552476425098948595955266158825266810664078416392323047749948775065108132387517770496060882096899354764708683323232186512045893760834299004210761541199885491304810963159472787082331120989279567087739167120406143616596671387500256110507643907386646056617383925878170948351932301227082138162266169133127139736060072193782492656007182362988515931819981869885637752529287732126613607962546848910372030762670076718198060332508266538354277032469023213538427155441136646495719068468429629489466030776984705612632683179721104329145516187943573568202967626844160412954378806320104481540881262043399037423138023689479932685925262207679749870703255550605952355750052314764162188243714564029258978616587984202287949866570217429282072979948037997347127041667486133399688148626180072527393547836973033045232063911354618995696109117866294126092915796860632500488322198775992537612879024005940023275742034228296798794746417988886882255358652685433067393191374633546800747544653221397811731427286704510655474063242121991261745131224777674856372403655123346628184320891083440675428656192628738126049188418485908965889822199421665827618840736839993083801025490728016340555378052816316992923298225553425729958917109840376994004972216633947348768441392534634297415150851469844800790292762590234692932864511791317260225179609388109106758784131094980639490612146312353377790586155683780220130524128783255243407442235822651900962544691918744390454346681817913262027870488978788910226185802155994886371028773784398844229392036572531914310249598317906117999850069492579285005399278720361182658861839027604683746543499166534539989728885387267960384875816882952401923147570396956235704835560897872962164761580525960505175579729194070462371580931137764653436913082063261181012061515876789966662192807005263362872445885593349038753353365457353598190002503962671492551756498621071865138831813523523976167002134706816000029781017536676558954252873961590548052379073320167347515614236100238939286963099914063893145117459076344914333166569260387794889316919333995072671104391104181669786977205669438726719774128482686931437124407351611798085737446233473490232129146087628934421404173023336177513763154554386609310837144118405042556941826925409640374703417989540485384755744315045400730013120851707843105406826784826488777328642740574277850881510598480308942246186882602088259453677913123770982522134909907934781343372962338889411666418171641044019905436006928768907708701977428891176561400890638589024270668505100250977935216545665175768114879649539974110588636010142887083554588201255662403448463944608127718670523690967781080696437957803408585970500689892924603099508161243528168392363132218461730360414278350458700526489156563010672465829088140831071434703879917826558534686483567146516057349890218640074140967911958851090863287868828489237960169930357717234684623743044570027221633029411863977087771473339926538710745121705967832822283864551210543318127344808249300860174119286205840999810717708414576674870253225286796928495487511150889198125648983697527941952824115866610915698451047732305556615391453349689199520677738382146272274043178970764015929627306201256777070900971779794515458268489528773135104449509871997695101474631525952141183706858741915167404330572965458622270037942559900671827535085058879189446346884413112648879479284670597189268939122692767893158012165745448406955668444942496532413500768514663500433377964148674885969484177230035243714066200928353460142450625653435025556565073694945582947897374137700502830054101818254080326141357140834709185129189191149433529092663997471507418027352234855844844547978378156969879351764455405199269921012043458413686423927972866906520756025601431795682617841279052237847570301243313367841456302529020747231387277360164935947243551677011625506668737870656176874887030595076281616845859985920662454296573759524848492517559512890243607229223594128206461690080222077341616538634655746189859395570913731498134756070513931296104531980325884350985977219137305337532652221491687387926023733197415822047904984088865112795237723725988384612090226314728592869527008326724912016153474544147127054141399902251933237751550872696634396697103402361132556616837858378578170368778488664512821289760231913432909229535823585468394061972678813138740175771280818093966485324035404440518230135034152863004966106320538769946504472036559908793650517199112571914183491997127050309175919644533435236687247590771548105250882396684970061827523282838248461125268990510026612990582338275633873041981727777921561577578798705704258599160748794895399368954660406167498758432687064748799190833897732843401056501057091275698491282885253381602686613037404082742239356323714991981817223735479762196174584662481601949763728331080489890297691795289808435677743050702089210020318562828856032748576062259617798360636017358744978425276913028610070480958835423799551872258041908353125411880399386648217013148748353188654082415286741035181414472393602009183851796769782353807216484168813057474139968746545841344432281554538142672892305587885678754568124124312637294191442697052507183814499398943503773061922305417724219962988411656346042313903280553985507806503515144849154736435808872563015739990683524475303409058066892943022779819121728648024589394340628322084000841057944503074134157340199863272760940913338620496462315283081299058135477406267500306896205373811835816286754024821748501639565587523088362472887084633525080387269745733178587211482544409026072935332215674273923971540275831439207852042408833354800084047579183997263780484842502697066886781359268390579861170886432705767476148266086826284981927823640527007301225771094571667534083266885421915978049676135645787297287641021146244175696686634382700180341699249211838882062494666620307902359665647546015789570142896110444692862065887717097591990667082842999168420831920534479161559933836767102469742245068815241745496352687689745105813958595384402323648424024845520810563422022207787318734430416863091246082860975535791424151440032793635599489192648423271289887917586904734775485466525908603445425286609728712296785145141432297304115858772741023899777191393460930403287498930920827575292692665088601275253100880261174058352192789187627731264217260070022300059438581336448912471381484051126532501652115722807771910335039590367847324897665999058835695807656515395494236638245636577943180741594288354352016406071222397717205562370533593689152342481997334839961291368211427354633438373003925112445002543940784944596715615855956686433702146914822583488879691541631838760551781903803638173790076802554801676042447377940610237132597910383798742371352569294969441785510244474729264211853675192799810471074600080473636079663479165195950823572261295129245642502948776727644873687311103394962008466601074860464567168755696810340819405642077631358515126467906714323516260052608926150683673620900002040748242072743529516748227111337122765970508994915632078488035063999461602282952279444692729435822867903858926542067947454659400372037387470813405950987562321255945079830485772287930311291032882516755011767617798756945047734703435873157811896580015891956632415006401522731090139770897541523197665184400802356667166907168933195172060006034519354757056126244219999960997282944967130930594627927967555450154602434603088854069919163454175805814609612787683938585942570282938550588540037135445311086778022520983234311754737895143982127325184460077474997061390795428069273917713711566271641381728497031001318938807177990138540862647128274977967166226100806708157323944865489602306798808043604760908942234194981379878771499511291340056585939132583365082719767521678879167253784976012142523068042625537266717885395151375695867058401411524316287195168526335076128404089122542916486852869263467787778678137436883500077488583649767806834234818589110609574785707329796650085793633071913358788409397061819683747896242929427415130350381948485754146509725687823327619457711678472740380059490491473341285159368531881358421078110812344375519390239028571194277663065829608917181069501683258765785563762585253101383866311041291947593778221233243155475471302500975259133883421241607064285229639785492354911677704897769335217525272323761462469105840644380544109973899412808520593013525222198736415099886814626263610569667035720288004647664832452599883264803926277412128883897029988733138132709361709762504179066614481983314653042457017161130503597697154480473705256780078909330465239384886413047589700181300929433318911767172230051801371244582859145558378514116219141214544580750733751451783784780811549014935007975291261542904710513870585340549467063137719838444185948079692218921593911392809455378131758522405245838516582236986020011226834629778525018606735120364364116155721660305336445754029515230146194650717529947960966600818951971103328034134762944681485547392363901708651365054804971360449239652014416829247654118078007323814144319446008132285418749319652134704450390600283833558293292644928293518422900142495460799665638127349231829451506160938003452935566393524322505116126668235528039042609779935646633405121290423470146186947382105281155918092547313607963928071139635881498176819915715109598229473141586753353228807767055167986151531050994146748078282507263677774395914979216097456486061030188586619946553147086616975767842726201526900182573672968875084453345330548897285013387709424155179139506760302992096389078342557311939466679111893697986394392968950271453474670334875071970902353527280497416485791084115245786536677058437162543181977752606175961205732398836265826155987476856983378776731372739257798961919987485753890803207441870647512260046135301805629495086706587353243286596193975517156593534918617093547988526247013864137190531832977816690212420547781844306123708296940446783286807059737888886289105858626319464234186582965922909768919004109708821444925813168466475927746520503513754660491454899770195354282103425279412454486337040882113804171022832388103959319722017411864400999419540765096763128113729200755108632058158999077037445137042770621452006010350420495431967103642179764413907675804331042757422273494628322826200823346660681976892858007610328316565768798679167483031814420192296729080068926550304482487882518430152090795245508950797884959153492065593995988150114069442357325525351724546852966710342912316214329035842837390005027590599399405441425797154944769107306940760366895557375025934275505387789597066186517890700217559334828251434808643635406283655850165734401715753043710959959161550098129918579908112142263770189146040375743568060714142721670837143034929516549141254388031141602621308635908124330829070933510787542974741943793752742192951921332624698787644089898656141046582493525643531168385881680635837626224068195296717813497215513147415452932109236855936916116563505833347462170203382537804431898385733226907905864974710958707462496266464304513362245516064168028693756511642255847042093573473369759721487642691240188423731955313676741457311137368731141200915069148447293800206006007803068666728088080061341019589314626026662501481435788217952770713504809237551996464151146307144136231366696098368113115561711495257039086875889317152625360271871726670906969974035523656847686359589691422201240265626979567833317473490427091574833134968431226262027912460786142369877155605802246453650304868074832601206696045031108732073396603658322545906115551783196897081081278486477897118122182057117956917806978948704879227054156404513175530973074464492893673212573007330734719586279557526380770974357591237670659188677169622999452593334255400786062693678592523531315669667827792744566860978782818922254789134095124010159376120844270900794169498545923084412536341841437046698541838774294959896995650310986170550571110116177282413143096964469647845567365114285308379967694225884079950630781734806814199018747431467320022146754194560432693679114446246208101427945717317724562559804593910328104403505687481443465430415600389960855888973306980676686977675985464054923694497491036857034358364902231725871467810853850144870181462272153922840546535856924486929598542853597055891213554987612997081888266695685635956210215197319150349519563396238949391468028511920555025238139040054443272539631564154103064654087715490584414082387837126122416737489866226015686229270156536325962393609139078355036305465568684610203615078979441538941487387210800362474434917582219275445237579780070950894031234813771637767636859094268507415370264303937167413803700520834063084943689752716200851510519874636549418605010464162616445028447852556105979227548294056799149191969555602423258959078130653420167903376109270075121756734691196192532228215293695280122809346322161171820755013989240373754254240197718981196157410305536810195665850588467902777793808387627717205614868865814465631686918207544771576480144088210724974816994998576258485714767305473330156852365360399699082465687306769317561046505923010218152540825263202192606699791692880841463960915509537575236557664288053861391825727128482280199868771861728956196988994764969831520835527150766722133284707147687831027413609879140515614031165577589020393214818264694063497551950569843183559516412890760549764351039277329856002243962341481307227025080475000640764837415616585946777958030474993373099295261618722350839497602583782645044651577486985828715990612018619633995253577094043598349466282328444491607541779320587757486961913640724932063513911021175201203424033325761364679040178857231500978251983939135721039190593062364725884692318786022436803276652895673303581314904051549873417387498122766373117310761344358079755819768883150739029820933037601212726987321350105662216441778578042140854084226163260987412892554040686995346604943442161974499811392057912799584804733740733044016756894146682530735691573504844484423614327317208027847588668830028337221803932798182326829252314162671446649980385761628072263816736551577219737188953795376536263993178493977269030699400617874136293156270319684286494415094519763508188643390510420181010739738214261186224330752746605739993105794527192404043372122689584038702759785287769843035827140871402572520653878379213197791539861911486584672632270348463606306282315516290716119041911922153607912418462891591636614315098177266686985289457304136418642535428341014243071401473895045779102620290791602907515568051203998066748620833873718738674918050044170135101238698477960949591460093076716517950942460888535061223599708338243629860758692799433544665117412201550443574410916970590929468090025284246202339961578474565298304628888931204589546902928309523624266026965177892671330538649855175799890636392212697648851001684558014065524868003256946788345414296929835961460148956965849336265476932762589796069875239998158726918030516417027769793939565002141256762364914339595568965044605338224648566666817836908865235904826449109816035789777715254839163852446549676121343322786483596114892619697809439681220169216520997566381936164912088916753288190443964149271840122441264912205258293563905390368112463923031755435365345070248305210978643808118430004057837490775691223215091753222219801864108009123455336169382523961385558488314265622863475985602986839940130647159213927763936597891980638132561612764258672139449078164246537333380320127287464655289541247584413571424554221641292809802580928213820021424177853120286005251370029196912584999234593671829095953094994965103716297817524813298907799514608619323933394988589572247118819042537840723886933948346360050344173386022725952682960233872823924296855324251949128503944125643991114508104217444037279091264177185462248765550885675280535310074953255784401331182395712503658210339132374645341467453466315869198751957031559684456243666523927321377434213067826661762043069158790658638120494744122240793121675348791275643282101787721695339542239829204294575097426920589506718113856916161888305361006565794547291316898744670101625730405794681512163090167783301475105530100761020568714185364170553270281055021578457740193754750763071355667265763145337120743650686920977002931537765926588400987104385404341746019660788731075245763427561062550831037847655329822049977037322963581251548492159730826589591339797751476533736009996349652900434530793750231856964986715682120850797866003619764641654351524202692035762270535204710546424708767691581566232225845208827928318274265281674312865836173918309377826016744896789786276167095399129680780631842251321033725019057513162739834338481163289696705172921760746540718756052826280062431372530408371878857569293292003381366654614131949511088376182406862775363474234146301390337347516756120915351646002328733455623564600048505091871098876474273498352567272810800131544585985116745227548853924254225220624596374085348091287221364988973779144167707710812974941521264630340834195399408444287459324961041401996652774668672471297987158446456853348127230809542359245435341156015335892325666517275959077110933505571537796236785199791349982899227161705013598873944328372789245781835430879970693651339386989296797221265635506016968087272590409439327711986080473756668081878834098298541348982272565063761846163765638340702990912597814557941069890837854182168308743686272470299531190915442346882408207039354246124618710031697649851304220055709070468259116705833415871972099097616261933246033806005334853489870348153438073992681176419296938770117478152643416787845060580356982617646016652324733327795227564604313690363909607539644950946265138178173005599364417028005969940614060864519959622204330811146640141995131793333113810513433157174170374279160963639022655397900546615991704903158758541349423060176265982636111309149608431284136038083870750311214135359576729232756452421847527150382042060989166114581821948548416173986645932406234756398424099910277175510248960799110188740698744183883728052142976706429534855354879422682932843011568779037923447492133051528275950202623794463894011429755232037567443512213693402588117263635122975284774686372526483311911628625952509138756522523291482424671829481158589411599625820551735248714175244772561593451056702433824973219807860632989211141822373684523898857793000458334627148543443789737498588608755621683312221302844260374760998145807919391872117634362363134260667545182437345463731367519156053827794846628260680183983470056501924030586664581549637975532365284327625102273044000967097382248567356133161229156830328293084899324013937492051094130040546460480861874214063279832327915354276489382101657021878638081205923646867246073638067460269638499920980663318024943626842543781488300994284689209057020246469198134855338135404371586505758717258959788407772450410087504432475818712620526381402655835454250778703911570318324969879590264223104292898286030310256385950757953669631678868574151406142836813470188989635079002562010107878448893984045263927264355168924365309993090586947502312336474525953583797936370793120989203653928365204184148674694642666541540730881174040782877421114447604848983633961068532541408259610428947773695158515951971485405984353737165262329362058479214885961629519249440397842334201979532678707927889774083628843507490309333419858837188775293795818529840132863750668204592684774834161265832286289496599292992338325478901252793410077536378570000012584424429281765499912004014448635373175352871333081107769286179078840407716556812221652594505090169016850326366697562497305067862969884495422169513593355383243201567511139734140566479911480774802762403837333662257699907312483481681386007237254255385646508913422636361837785465893814227975286071782412355185650278153039312732143151253716117981414990525109755500036108072135760816349082057296226586474125795804865787437144013544509673708374173725712034075254961253612927963896493740368923453613611712782316366012112443356625824688627832173947018855210878342368826179826060305029426556523674431417250993346651858263808887221566175903677730499467265057952407344859810109740116577840799068536233908841486246782570553172749655655144695759042752785459086259419022165128887961161274118701525193445710735132542328095218379003016211487118233339240508497330908894481535839807287926381731616792948720818577971663296038166732637996459132203810705590089451086893668992636788448563023842529178978797976521252041437337408279047716747189415017637690960850411116504665561804974112889178893609542027676592859474581540520616467292262503776426500537753228098454143905165280019980210133607536830395985388022376240401219117836569300274785706231464384653245309887492212180863886292494958563852127429288520792337828047335441074459393880692521602144907279315296758762995379750808331530864634037497089867158731330199328672739432532241648048757548939398871559411647892905154789123589346065212060903337494171040864195217595947035670458250865349657894883411778983944460349824921827637874912939368587261083555086979892763192858577462199738234450104895669309142292983362681441111663786158539035624693324668885939374581366568299614939003849342027850457046901474826525214626909574138923958669585583832548421536293988867663690290716411915569017967399922103844045268779821301704615453101532236689828283439787165498503799752545414996584054047380687426656102170492808941858756208432016123809843509916182885400129947055286910239582661974640996666183808259804028958132001779375537083226952490205148638906904469095030246816700566199189812886146607243818608965828159043100605378452200530076459220633205365332042817033584909807925573875678125237575043929841312095907716263923252974016635056466540216967560106097507427720325283262393606104766721029941024488606561488963482078025298025433392129869942992086904235416400481603170444761777985475735909970217428786473804389766149152496078596459112035920366757258890016647695503197242200659496972212060263067441796360985529122088048438392097115337661734919970615787330875918496017493448637971097896867981306298121559053569647284487841502436093257474624853661773807981632172420996141022538543323620568944413673237921858497181556011182706950041781004346694573430559089125305935989686548441701222641516473582056218698440693258189239439273063810672741209697709256095897854240210821094265151704681655114051567970032226203884454255011465514430624907733900386697890278983779115811564314823592219839168438862159477115077519735062268450707371601942573133826496828164794107314993628212897081401043945718422486958605062988979931549596665489323030747302499584006704910171446804206575519343772591210602479683168012215849490931780683962675604423631466324115685574628923355180125606584396843799686887001946202734854011452061409528190597020876754621408384287516264643588267439084352231843210044635723387842206732401160838251528784059557448861979016063008966369559928389002511477963165540494690364309757026100051295159765520025868787915507908725295801233546452220220726548940513309376567218128415745638944915501239278353041652381006578565589245845811312204795247751387096310822245357166627016364372509626740765899256745541595147343199532563863103601201981491247294444516821289131331248462914300915256300328497504398819576695531115853822966652423559787392897094439102211209125584116746805252871879812937993427055112284379119150455411613636515277189943130456743324842536493268706815622296628927086749129071946285959302356314543272870757059966652397338199368702518932508130075333979881743631070389956637573043833127712252557690234712024341390620886041631496534943703339466390042159006240711586163720059560546941230190196254400419062079564329902528363584340413711390006655090826814350461243450586976044332820052544117818581284409982011212555072832173497424545184230458127622544006692065574881828957486947511233773091064017567658329308473239522134368146647821246411215406249164690137233450732571622479738226612022669090910921779840571010203683422806481591635511683073440589863002187010964547740690813989504879171275557770044193827752350787209312892048334305934382117098982813053558301422035159713055404090678171100673962748199834731583022476054394419909691233587428216263030904854681326835244976307786512478114666411054919163232885597898417154784965517143747831064262813113474114722406647394455866856748882048638212890311300229228792409622441998658523500798538759976765231068451947978450791392299041104955192769590575643060898938808163516821011422683437354706840087465270934996323962440158385884990808294001778951344868599147200332642639652268821061721575572109510072812290341138663509319684172658648471840119730961818511024000968077029596769435958061880225004529588104801716624039403411158018517301241420220969013539209568483189674127772993924277276172413290397398303267405956825826929449998913593829907813193737755071983898121381310395378379049218162824600643144313185839764144198352179013894938281607228885496271162707335012466300609775918204601555711558873557327707238146585056773047876546417894879211191420196943154681327416452805588008660147336868865947774136977789666360929297340294320219124762887836923391472493020829442111924739379154598497993783844322409386817452759589563603532793703943270124160807794982715858048466809569182768992131179001681825033362940464116479005000247652007592980502717647753146101998114133182049481186272351153067232620911062824184554856086628678205070630155421114431999015017043273196008971675080111178105213210389783932158344888679476386354068831573873988747169231173789618108635768088018694681817426518154304998237032210226798963050585080235476392798265624196911333128961760437157148292005376647402537311725504953914156303648425314781525392730832502425154297527869480458475955231920582941960663091061413322094833520264528718576963154777192710094560156697821672782127195493358557805504210566899962561467497951056236083141650696644738374197209732489023316149274010531382656244230841065335631716192246061126115446617932478254260752394960782360715421702914008705261475863884890768584898654580868732272513576985575710455348543292845620147244421643668777024838834501603478908469224299697223599858740517396907406279100893740355210965534258055578535903731816577553960116997957129087591494059408332312962137431938584556654991988950102020439085169468007100893786695848843512636661564397109771369297775330273715082414300299513106941928624400933694861899686144458520992353272608987800713778579400657739611376794381980737138815289633479379841485567813823447791182578830232253915932966483315698614492195159804217779365483491663943137096845644785377090209735158338801453531749031925122262530867583135244345372948645042180933383558449790830569530598086670877276733438489798917191146999639309289507705229876283566498018589774377949311033202258929905317556579878744455591180022106350015010371656652744652853067069648320633399862165546947030966909212200071604785103461750062300318304625304070277357641284025876516172562837680273661084732353723114335900580079945517375321278628039553829429920757182346547179875602715080798009719135891722006518720065138793711161347145508659138204593893735299860744909740944813566536187668501782110158908870421941095985633998140777986737976073030916795041530367830418558340815817217857818995860666987867407883121747277593737406023482487357281760682404323000051297051797067331947568191056163233772315685425898682596230722560088524890025529351966786665333880813218654084764731561826341326817017985469570539907637170892548338337209201090300783390248607616314511823184168499502441546488101803523352488278315063041910756171478471722344257993575207768490341484397701203583905823144266500605623991494790919592296793647577978955545684647668302103353481246682870727943290896250525242639702987959360599924977215208163880342020552496875211208320795158072504072417607777864398802995215797107427776177845474948145124153879831481982199463080963155767429940170786410613960025986508904376530977049425283501244423103542779235065562649085227741570058382716326277311543651492061021151478797356191140163733726783289376000431896824830245518165038923594676201397022333498043219123966256507684403673623237979138573609828276714095708423309214950015267871627313212454921044436289717888223385979049372042201807490886390370129327399432738365207340477656359989188283685899933826323538647910422313067616103020977208650076938212353766533831238756046909172850059278982061322791695043535241123791343607411143715782068606736958851494990140369466691557700385099317234626635825080483963791920558062795188167629553701289208885634359454892967089162223596073178883709544204014285690264161760125139326686384952216055549317994605819508244700911397539166595915271935136041006835865641581409554766006026707576780880171079820033019524474543530444749721377150814794212815806054365782593292994549451971989192470196024831277014789494019486140965608306170971815024358168025590021991097132700193970081218777380012454960323410854887031606070284043755314584215129678262937247452384417859322707095301784318383281418022799571961537035227726174829533623457570205647845536670806998368827144194179778856795953474820468330680422012676043971698228583293093290082658350309359857360791362955729702105416348897297882162410786848238531519142220686484920491878704459031346957155012852321061712414865097647719036199281374369486014244235598546385655466124695697927226286021482593544792660900166590059770948851964715553794452283843062505671932895893175153665092390844747369290116799595628272879092065128128801909571377742332143264902577816248562364882365257165110705329859112753988085717706789627683498510830401373827990236766922494624817040743748441543545753214573688823331895147325790699038485279606323910228785361971679079835046598738416977123513525579325046074973191310733983183361628537215051548285249862609479773705915653580562829961264375042208182915889623936199725804851867423480131263968758180949261460077947818480093804179886025111833675824377212840264183122129202400318798784588126385507046909641797331187989992482431879007315362520148254475053129923686185341795495404627069557905707376162212734178651756628142888038792933949206325426071389162914385804735092971900836473235993816935452039602223507433316867354258819983309919602031873013772043390611537433110927481312382138327397916266400448711288829193187629174591574996560839424743310509225847263887496014458425354409629796873779934395223655303478943253353770617238445734106071831013044550888420009468979715568573748608333005483053370797043409363974419891311159047346794555362963260080083440826287980889434659301518683214476385696335648222132679487845505633784020453764859831332122940526140464722288317382798660088660652522494193262476506946246135716304668212525632087442234919067161275092851872881994015184526679694773580568781960210821215208592735667927910705910230073103256366998157578843624258032119030063497958247613224205244821804380441753285214115254372982966758293900707074446724572731846120866884674580999407097340353882786051207413099742893931038715912332343800702012772767410531530218831746563288361705022807320728472521720003663066708346548466242211527096479507757076653618417499014466545955573485633282642940217598621939486466990294776962365481968248484426561830674615407380363544962937884429975688825797562358246587963430704977177383865095217333564711149330940642984573300011300018380520186618912609496484166277961285378716372412339972677713862254207763684169783667102960680450612538411221148635686130382434000762667466645724614985601144300204797838274517466683554435608314305292072522843619791746034057802921800189300670830816243899772780017830336566953602538684840745068236590069168766885949102098986722940009073058712340814957390542815568637525737134828194968647498953997390704041475740322750611687811532861363129611230671779777889408899197008427845196312409908957394555172008468058251661808989047397851910629896839286081578032332322905831534971987532858977829705510525084672866423382511442046387547441186360206883245701247470372816129735090211353599728129238417991186673726674387776217751138681518865046535528554205951708479642372841545599641010415781831711239592025221636595156161138678632766174321549881340014779578555179601612132397151612181797515573009047582037804438640324901803459232585920448285258072776974717354683967488849346274503423483178568948148875366093736861588590776377759937548898206473746917374207061891069718792031730144310104674195757454941581367023228548437962169396406603464984627245094155996495626007169821937798399571265242323989887610868352934832766108227098702071954581541387094504305382332057095614388611979810233579025385779611916933794647908448416311057877396062464009961946641098123250239014946956205763695017201118339497561623252629280031626245611239948726454415027125391380137289679417349252517347799013749059513680723360882952035616609293199052295002330354862268054058804590199805654412089600752181320870360970639656262145248560933734534289881864385299152082851477946472508659542433931162440823488008344784893406525711239663741473118898398961301410489867340020117444766826203250408160199526096037094293669301797015192882568363292424259285151081724729920790171536070556507820129804900096684555353136865469142349540402432414017732905206008967704698457826323316981333857694006504839837967253444753748530449743723402726520642802461899540740649147986200333435554417759433949372865269041541217110175554308208843568476495978264543678449286763273277912905145410096733203477331099324891852192123827714410396556030660768132206441367003075368746800293283754793527565876969107240556041615832561922259881651120693618902124141561264097344887001538454200303859153080268049195151703573094794650799519270122521547623484663347301056778796518035050414161215361169414298489446010812153244640882555435669667167280078233027701238887098913052382597229133997692462631721339922827719423193370214668430144025100329433560363877638637056862329841085121282011559794657387195651927168016289220410956077684120117156444297612727396911426521883107407780529741190141641873249316295823501863797556841859805280939946444023659612160712903135402449928268176313714652986428300517585784838673013919940328768989182585350509436219790048244780129790536726233890365790463190673740772542344069246760338141876056706913442733169158236946984035673698060969859536589080576831863998548081747958738029125235266652556629329368722367644282958719145900888683775054639899428196227265678835925357264467744832236784498246986607765612095385087305098283213657283053409799026822720163684111743827735612726529683980472298850487915997329272615403651921252654559081803359632319715690540949296781508274667627145166914867429825023298605549849650516372573287029781564181869750001770463161079667713092258251457248998548155942425952032704348101876616581576790292285309459296856487323325406398395006936261865137666488193861827433651648668634930485610676809534308566987669528484247010883343332145363329366845985829059350911212405789411461071079150700745974702584670847873223870562888860708596559822875313379010620154595560239440205882758401165076517891154339845519445566643266423515776563859190435744511117285812156082360443604525369527232719207581318738559520953629515392887450885206115617367917895453129491885429410477990102658302066891713602042894838812877573553654814810205026851890525785376858959416442972365213756886151585108958312170552473536985021400226924843527109127862061858200122564181253473705132595014600702355875714558780209008754432858506701056847057334355228857789011052396469878305445134841356751826653889948830766381565495126165750822156428981686206152027148781170748278675058789436651531759558520469606671978693454977514210451091971266293782902118396155530194773436190549456636447633799714636811453558829057126350026623395243361402391493303850734174370925258710672422726529765501701343757618908815911990850712527399470832286205844693166086270532582364866066142350714760804299576741337338833296239208672690159241580545689834112290931636609318302149420930234532324300181432053603517379973600491402284210629570652371913090111493769767241496036102727774967587067438648432406066863374496910381191032582021793679773972477459143067954207750815806201898468603679531456149830898190002150918445855453182400937805488141375359743841085862667561593482405472590336175008663241250323913500323482479188684348815002915573917975460124891813955375951566263210723334076835012214621189789552625069258620093310625342452589352558610579419515100587203192120108558687627369796266629217318916943210491534307327247710812094473646385254914670170011445328573563135460683855736890445263466497681729261219537130532804576324483574718450660237381108891838093940103979391137191583056078132107204558972519439849677581495805843412252466947147833053062998126046352451306831988041578330825433824297025810006579950546696127717820470757825694171809443824133084121485972881767266653686906164057034242154806666537973941452695426609447570111463698034179605836915544235823371122995741381686356436827346525294633533185372895472756658268896637446488627723423029622237715524542470788647267937832874069878126126261074201168551111246293141522156093882057221649984478471517247228452729217782359650545811485887485766271917985304059471233035630336073943783642588201309520409407823796539041992262250639195624951036155182340213817434017610455765045230158204160265166922002453570807410874545290530573158195959605050538181986198467359355995922627164637354018883403551804694559041484654580984435898498878180708078697280666100298811023886234926569820187313723210531044223739288201110511603791004475325972106019254316678872058024928471087667455050144627759030249047172005726995028762351662112196738001036640747098139672622432751213856771359120329384524666986622049459803649108109964017355005779476994988496521862059325007428668809878806497712334296999421818026841247436663583072043674606878687348765142009275862947932520838768221548493831254743731660217472556627828757485874883329731496145728100312090868975466619729146952428810688147848566077619459892873691102045367763953526811059823255413988433643870963107611054016599702837723875704850024702800029232161339057238206042178358959269994998416654466513648387098379210576260073142592745571996899963903617390354627155388253386595717974775820660592263021366969068470551717575932706693425845695391122729075274495732515720712248828344549096085703081044310916113810718494296608541821458066161608820952169371316181770363930175595674332586926633760981992975489973821230764273913223511027597358079023662854811312722167187040273429338190136324704383251939652939139352642182762747593905253327303496979230836531857955798998635608617005567248768994901633272228378563504677570173616655897258943939830007154353357652537242613200235324778021605974287089696503888421763055582177270957289962965544482467146843490176361396056893450225505306498949925304717385397002475074367525846698403399206418108554022170814096785545021232197677543021019291122364897641163894558254626481561918732451202725088273181836078653214859306626027987061639359910370380076807297887160588455862226328061883310560048195747926228223180823041911355777025044396006805561381613696293723513220009922312990605890736479628966894200715563075409070039698912932298715339985049369624807520377684226098087769705190121578912766516295528203022736650919895642905776324923005812018503857668200944766695247210892386074156306123519793175665865511432395081843410264374301048291911024724019422895614323732887009018370122049948390362195192030622011746270918510615830917071123238583392434068738754238988014520664169946816968266655736958311888001896403817177649829499324699650500542467032260168753029164461848894083051944687545370616979742495563233731978134259553741497743578018031082465502390733945984770765469672423678789520929764207987139566134952120391322443231122419920791366450491411652898496483424213060428005131892305942681629577444492379511980075309900681464994382792671903388565245722779773139667211040156737659774494937559183378702561257980927122863441971060149591562570701059069711486002569615903730425254137898739336107141251013051997411895189651335636208024594976826498281332750200983329040201774810176143341658164397199590234777598913027699567821490586226915235186271457273765639826444731429540866688379713456221516007736944463047695756860769150232833168458077182497062074329806233551744595162580392516888453769410692170976058837476570634905178805184659629716073887472560374247354899390493471434641810117801279205932153806879125388990055751176710516849471293798142379640744829446272117854905054882553988865716932390830545409106233211536481527806634078293966744893469541346443480145328793185764811335127322125070159066680543492792728222557593547205181937940025701279367018849750131020092897571285590060775472123278756978603224764828814648401692526853225131854536937461532562718802044111877365258562499861767410372990915645987132732279902466723862441019712236912076107753665035251123049590039814900522054198788825757471465218162143709753063113189577660686541137545833551324263100083131420402484957937462991042671710120868068184074791565903389559232823818766468134888432066528479778049093182736159088111230396386771711889908517946557024018752616700426136985373229802976815649452288071046733813879641179532057136777726785150359745461605786795788712967317063553323081674742444575003141988796162279191221597697522267753714877927040400540645120613904624545566464418820667942254161283523939637698695832024595265766894181990535232591072982740279216913196079481172233647238348409232662285590485100256202894749325287633793710945379949542957064182713549517432027679200931753852038129820485683748137293336651069471985043330032887854106731009427536394419555851437545358853817454418095997888517051505457122031810687100456182395190341039724555640255128138207687663186606752362377987481391694740634897776738025002232671464659040236351639737024251635414919446849592865730182321746324118246681913975552883583702389080976561352769007791842963363126246947854983381425134191364746044676200634664837504990248778752460120106923653061738534318619910939664525315666934489776560186154164713632743356601398563359478650509858305625513585695350755662975766843580160901346186373716493206755658154944027842489456213656488834123391713572485647278887465561992767763054865580732384635879072780798567938475618550356735777444010251122917788679669338588316798810897660830912179773761436624555620990574428234751422107681708495718823171144636236487712080530662097713600237415918054520101806767733862562619260119174050826682313354717811153186869641049149968501266384628392520868368677057026533241409038969368601527161253368262938348431698125133871220389868426058420146282942415533663886699350586843630534207701136879844614417670945011331293100390127924320841718494634595523119584345957243467116794182501407649723289936073915833122061225150323819797228753553403620065754107544171558126022278018890529698430723641623402598475509816282636150809413034903159734279678878921618971450144633074917259024567769766244518646676111977359023941773845534183978119211368473177134001153410059991203190634793219573540688840107743360485633730577072366908887290392867711942506388746583217230988154764777143711509533156256403797677655952383582444883443954165019817739039119386055502336650142300686149225123329851621193511635299675701461054433858805132868897891682064626770661740896445681953350134383439431102095353832818806149334811085109857398837221000656415235151663858649477042560096139516241018262902738605757036673039256448048547209378880750314177282716408006756001161701310575574891658283646457576486673945671876383438128491729809451376160150211865485777466594935027951160645266273797097774980547906703028532884159518365678583968205082051681301641436253796920675507436985395899298457131696718082175579125504057332598147377815283625472201051009364275016218941787386283063001223451742720087565014534827273632792706382023228266600314372249391971984164809669447406979892463586857761069430554408822723858057649823354099311979339349661168716445543309160769900072727111416185456759984849720143930699791850432114855753258619749107569969612659037136605096394487622692473216369599235152255615593997920706559460471286585381523218653326928742411950124035670129639340668239612374350448583277861892459887030661749502383989490381215829966601702926557659987920351762913062763597991289880437097077129857177978407265728057550933536724578692277243674271560654837924406155691151637856536415530701909936938026759608926670690698545809329734195437157083793895653248424846922119061698881855969466935616162685353398309794470605392441252706374987655677439557390457969477443238152716591942623363658716274983255173880254881491306771338973413717215466280138234923806907043443482588289583194216621027467018541334944830254662080565470703536307146809356272128915131998921010845356935072505766962557735054319125559898910185334109980269629952510142210600501736619730414096427831055428226260308533559793473029525096205475121101616013337669798037833448872355794523548496724104010786016172903221409306518131182276140562647460552363962127496788919516641408716378414787949997387889857858790325309425353708528639723435059292668640211120239395484686044595211330226223423163222613825847605939073352335076179422248132796138975635246389572491411427102129729193416906890560041956553441210735932072086094950238526594919854125099999011383731163300480472403051234566594042886012383963400906958007747498138402089346055653944533874462826490719575016458579221675353768296021221803112793132008413618384109499798888783175288768630933087433343028548984011261739726469245265601346444638627041204493381089814578216171872036078936042885148997100616424026071034961456645750412247208035001151730962479912489798630878275812878825103582215515138388279041658060196586118830005257839423754160339216074926452819384854402911984429170070790993226797375632085246125748220722974561400575160461408300930066550501830564935472756181591169201777154066518902860566159752239624663464379590249197324595066311210816954788556775275270060877990937332166027820854668411346459882073627217540075487198440525795481455829304371823890607519770803931451097355770966398095690905712835578080348134601958609172813404153449848731301816401675841304985966929615309505439162235523548367603243806274114816237639626900387964619545280001939220979856894613928490702777538731488677626463739367453723303848755187818194994930668398815732586232426155079459754066055960110126108127955937335373868109491082290217898370372942990551726562606496610375047596235340713358010031314859853860938529808517041328558947923380455469516785571762333091909789176508014486388742537892538480507756152603817097615120728327626313336872140937232333165301303574052990666911532533598849831345790036360853607810795329129753550783656191976657783332386478744361778154093907122625084749405615822462603982298160083752913695399715113731919346174602431497296534076605232911483095413600061195434926968039606391315502196899046445647939584360791642408553065549413997460451481822667166225639463999053220069847821508494106282389318834237299274665287722825096492656767837144568032968212500994905234285599143296300724955781826831390897527383401832139530083193816738386868084732783744359162556028823111118756091261761408401865320937017042970603734957598634494188448829109138109972728626970118260407061562712020133734390260215081165019088454735251007211994419366701645779585465176152651568719075385201161770622057739947905617057428552330270401806132111385324283929105087057395620694149678179424945956183623512720560708477897467466652574219367449444678198858025126487697632672270839894484869015189436778868350300371206069128228838845941981043124142905666907718345250203773813395660145778522821642558626092967672643572857269488735991351340493011052893105920972789935576579827977978683895031284281377765920354524656260592362475290653295755490974987364102472428835274740474642425774931458928963968773905714744802711134349484859075206543071389961718172757121886908455055451326087560168974797478248029572788967137856606172848335387006436323873225328386237014147436371781627277370597239974752199564096357644816398225772614621434070697913205542076042039287453174759756611813609260789497655568048458079859969364382782100295226665362271735691789245552523191107354347341002158303824233025812956151138702301462270450046743148979720363102218750027691100221606061195486817454897651090359735781738466880156198185753315716608140165103249623192244263012995295548738420798824561414439159668857296469644179492772848321034526281413964936032392950013072848283413594248271825711733324597149783422391489629991577075136000534979033889108479231469560593117414058292901045058219993870898849956662959564861024959616001971131479175219290756875318992283627018674511130337775278026854580618246869945135690624776529230099322242793591796205173698556594088485225612372432420135879227312593350909899273804420982128022347848387904687532663280011770598281869734754551114654334866862061524134189932104155622902347175147624444914720295756420811025422458199100505263454996591240330277317702774022716595337268384612105347028732535483590228600324699439608001680886127923530907666091107685645876637894136268235273118643550770940280716147325364530853566822912245519978447543013845557749731815939489697799123508305672701196361137746569100403850583884147268629901484574862382998753298349230707028831866776105388317744882525291192859835784012459491084634621529607294880235929153610228141169265070602614478437911546913454695402966650325843613263256942924386663994256979479362155571946944515316037313270658155820316751125367532835835984566316814637564909684417442787528783116056441318446295407641631429717514965457982484857688459933781355413696010754073066391874165907089829459439385034535296074239067637559124727820080372460903550932143403177970074771098026698206341273094058577693332928790771147542688697312756329921664946107168588809131857391579764125276509159808949656831241841674072691834693889508628587832658100666542413934105072969038862081779216808125775975312239549803126637077619047421960363536415561155154102235419719229995564952052850609445175348649464365488755377249448675976507781765405355685930133262488046545606496951125405232756944081212753059393432394772426499622262363209042753268275355261143149833019963579077798387802016696249641742206429821059416294506896911955832536384836543846083483377566256331989374210344868175665813704532820203519935534040527861281155956327625663527092488775447957690020712796355212119326497784205562045073240342995401433389657627654911569661411855577326244493925649126416517529840744968192368635741988981563957696469744674762695591551548011410904823223010586522364983367972082747863242664346577548083523800432897378737957760842897418516233456837793198753634508647032100667386559873882531647533179968931662619181943889422712649043578516123747308974352642686282209752388737494098518853077000531959856875719654540908830139697790966575686123418114117096198916585915374446550989870811458988169531685318621343924206981503852418933062545893894970665697970329601619827169181661343363738340848970849560955729004104716043910523125729949065513284387844858919626839026078921815573710365724964740355111236020733213611462381044646066340666508959079188910787640702293775092958011216155760098676333310101282384403143290044899459636646750254462957094610101843800668445065173467250842591408244694382461780015558362498390989873202419779372554354671448264116124544657901422270286304876095773313872084069450369075513273736198860629046965000575122449098930401918529904388300427489867769347288184799680323677095542842971283205960326035176561137971485716642252638974860583880293420874397298420032503165109705541274056519527348398340485175611875613594498637684834707201265440916730830016915283575397238212825619915374792965088197298201720420318901564181582431275135765853495567341245956206810781895519265004038943246940803121423746122770020438438600528752668976152578920484701774785232390478641493207692299901948606916197782853894547184502344240574856379780589196217244925092663996241972123375816528453683628598573697924232367075551142191253152094839710055473132885627042987207547545769482260827750327870963759685126380028436326067795104956916481466017070913710573694843333625349496443699326764889264697950104850648589416693499501211234054265009621374201867444733193416497082217508231297445289922583364676906667154695588964292386972182623478517273086618362337518778861424823790395547121524729755157372463351342610984472206439313933328626990386692275647681721484175790038743188856212280712863697188649449076787119411895660574151833161708875102525237716080710512770680822817378950101323805266669770226411513634196656661523373790733940503498383858717974183350094927220280031682041294397669781575072722102227117535474649385089066348816586323557570644242506997557585767112734839245986677181703141715333407744167429837932197803857922388832889150837091034679104951433709099732553385441301184165415429850538051401844513826909720198286319424390272653093505814698631167153803652349732449135138790311654809942673388119374436271647301409130087649525612235511576013046200477049419893747005657042443264636370732469714005645197651528179225583277324091389992839573493222893925393950665284255343087800098927351379484864464058455839267075120796241167355482012074951215721953554896515016391960384931960025887706853292737974676827232811905597881192664805527943802923809233030654016380544294115175575522532888620699105534229488525281462973736141318832869652258319385461965792455153989068541255205974740828016132630949890705463361158779263405398179352710942384948334981167987555605933161707167354431426322227854928077951134316476266689107645695042215441068042751211291570580075652896861390261653091542340373122223243301711513416159323967713300646618849071738106263516142395384922023773519090865972617585321923343989400164660896390335491069487193540240462447895717717460848032814045617546630899512945195262154454545637491432634503701632960692136830739071592279230030196001812392547712660399876558565631267649427004516219630104481184368739037492906489584445876645185965269172886879399049027036196237325085229630662234949530511582791257839152195807048241164759419854621618080834207983458156085385790987950737053399324054100778453867205909611616541647978816205788367552596130402316921506383943292243418237188410899785464822008117185937491883667526555241609242608346524254475071260046467630681136910112530760134270174397104069644544681866853420565690285497154210071944096289824206871843316891182423829917560732693210705306482163588448329712744364222422203750413345124549915866582852565750401203456872283402479166625280948651851741168657441750351713048044576817070956505338167463416117774913099657543474172141897171165620447073071670325669522963322152434775109661974134085936644418777186132253506589278180924003034233208897245986633115235064389360181823834236952446694889351234989483662071980740155516172045087456035385507360552462710985168911888405532428650772100686464028178424231388177695062863519127669517611333189165655825723776564740199667734011089874444776314618450540842437577667636239237688183918342161944959315040203925650325486472435816772214441991196874440092843767891003213102772766146216999138658078078015594879449692190413017912562561682626680625134418455866608343200860270216250093763611101985905319591059550102754649255126312589569585609190674887487972727683540457583219608058793640333335553439621606355881931087414000940494124768429461012706413105107970736113605595083613751232441319887435329384986377692900123169402871935560717325393308737345564922612583645359306514288049194529135342086656693588369444308019190824712539522925775755887957287592294678980919660120392625270953569330488435726882464800023108093584965393464494205219260392412578036464445520434663332343677180178250449306635193106465774543096426676378376671816799159231358322339060504897467071021873593445482298025222739130081173798596500153183636271683463097216854817360326082053152144472877385361126873511590767119736492760031375630947400214115827535966409447355542620649279371932245764818375614424696058470389319663849394993172631258292905501523993003143489025556871333451274100087399379884582310459838671419405583483047985603496941404157541127844839574010816609351801741292616554961533186036327625190589481128770628372959781600588152633661787087717437471515447193844646488364728916900770485546617262115821025424682842507109026149498819505152923914566131198709109659213160931428578609467652251707843402278429358921841984577708028107433424359814125333308679675834713876479498389230929924719304367616217676515028376283962564057585461179284797110593926896132390981000180250280644810834462759971405961389080556969992334649308779602522350443200265356661662442580277901368177365820231559088737134146501351883261462703813915634774347990091711734881457527359369618797536893462377726892253401341101459038295824147332858519028902915428780013230279451942668645206162545648039323013544156539014212704301817910090514264811046454516885094633928647161028643322180549938619462552119369344584619593105317223180124382230188408939021875122864497591789610357918989848460327731392865648159502983179893612550244009118645469896037951051649639040234963629458106092862453044777075876276027693976196443446288434401973173865694818883836253103866052916255882339770624984019250933500835490958536568712887053010698198249143841339672534730290413533922617300061866337308295255167122117720718594582329271411836950817069091195737673933048077898015944709776096853589855979082375206007639278780896672796766187075459901113992067045168423025021041706820385195784508707501627364683814195374927249941177402004046061048539534639059135961868313695736256981502139679238713644603053932924503583438346851123108222727268843950526056500937464935003413632324818042914442770038051607702575391163147169805505894493030938383065308920885903005911208181190697230507222148542960702647942995055630693745452902953097012940259613717387200922930738151623238636639888228695020131540752022243039854569860222173631435606874495840668658106011988807953345775869785185406494522850778546482758706690261410090285301353544524188927728603980419683410779475795493657000616783683827539803654759712188925052500242966500419581778824767720426703018662603960165353947294080473995254125109617888189430703413927091255899836796888230803630417250623543117377811859592782844901503432411319655123904189550202611479267655318912531420759099443250782281589230643412702647183940187615805361917682601449086007023046962362312106798344964530480497033116591627081349059870787450713663870434435587184359403858733413466598318434140646388894592594991265299767787662029520617314554012344463044784081352765192701524304439342565479519176943562918424470911721383696111725837410584951770532743647643993432599079265295416449724219970471047756962920280887972660366376946776082935370194490901538309380002795553948515585745493990929029283957595835077810299066966949068794898896242061039462658169348438388094294979435300053300258470829067002846443454415959275774354141107012398406948304174235693265962414868252609954470613339342834671232020343377838354072313696419664300961484093190020403238784315802638268770876035308174546891205646526451181162451817142028571818794204580369098876179283064291394435570398746920807224672367703842791726356012112591372431149302604451398374065425065781803483122946897736194100406078483886468801869288967161968771393764219491545902010417430434993884664949143498576642306541018830275242742612989966306452996303795831055137052247459674068957422875252616064057489226906610854582786724969727813357990233711651165504763742318909472251993001817697967967247834511352183716078674330487921178626986073488660584793522635900764345486059936289606461670690120654152171818717934790269716230134742857637890926281307975880984706948312160032375181532890034735426164576266541940330831616326016928830675585389987735252751673038182945041693455041844639724231953131773236250065494706172720682140253214774427534455117322522251591951096368562943296415950479790365965985037559997793218341329702651722954089035182614567967158905001779920525055139025144360786802666865463927237509461178742612287418346035812036932539412690308467561295990666748370617546903906208397528348844248255851905255046943604435210837076117887295786410201684228621318024276430881788680119849321089585918099407862345642956080505294014190694115395873333943286303979589415523250197168177477005626284244157497751484171598097186983864825686929221634403366177568521016878563821448415296748112433226155151509192495328824395726389493915178579829787319268744626315528921111837145093766360555705682469303072734343705623706775736915386086517808564959983572401928577038668110935010276392089420731781529237937931076810240888206378172565394466309076644691025351741672942236169623045113121346931919954466432959326673697166610593576282996832485814230792303930826615303747665683355071709058662625881166422639652864216437253233720616132651992682205271436246879772872341611093042875966747201622621937145802607837767577791685141635521933190473410161126670842339978574602927807995234285020363451981298831140990793774711195004449497620527491233470762128870823881292512177423392282663093470043844382934505614011444220222869284378368892110129257158120078032710484799266367848708169233253618296329688306297199359624743328030365785640220388241894298859479882736994408489194616619895100385768854040684060872208074766691737338748139816894263744550135545931225106586116079627201443241989414574075900131388990653663308330907984186752675234435991991694699527085991581513815768335454805998152160096605188540492625022803188398056740552863428270539796423570583519758450783111808358648573147080120255327182747258866242905078582961635397148422037244366140584130453547018676808634549015026942561324776644581371870511156603576057632432370917302597452679897200248257284440866166342860702094719006706433741049126289042168665164647775728113676095834043177623807244161768095375817269270096095951110230497924637064704647049539447771581639248197537345759152978116488627494169638865456428739360663544736840424618195397785602804221194195193295486561102952526777657764321263522469358250932853521609678108455588148954593525004227044268239247981179017436836907178068616604250019703927975856930124138879617317985622065991784467827847254061573970941796802003118338103306108101876010807746105899056829025362905788543660453841519039307923556546912675897497731933675555513845650718792130530017299266359520647639774968891021737047455621980265834803377704657966040409486605398666957388257168604708089720008729139215964466573768899850283540172194362597853555062568559687556518420776704910704178297586275376239447401803388165067131279221530887988230784104478458865799098332204978741655387541243861073560360596959158821725085608051896823693074661038029228967618710800480210154708410283467468003997163955889137059514641973579279902062081864517265496280177296832983949130922128953673340035548372225978164848804824079939153553202885431373029289406202520605303743971250069542645856995487889406207817517808472338442257388103133346401679677593643623957914282726340352182838453044706058467682381312342031129694617259226770030747823377819668781271974801180601991764867986189758821436688514185037462418007399977239800321045635872190576010502587551031207598602477871436484947816573515444782904478250520626986186073667557863624916142046647921322698493842233887563090413367694618908356106586361950710947135113046184614543853970590130976953335706475334964371218235650806982936237450093146779579820247344888307966329672351733599363237902024734095925496869880836168506205465886767631545652606872428882227266361656286454896909211492455738540128071403446367650388248948075566090678040240760047969913654742600263690320819259441652006631363889539313903242233389959986363533831786371622681931907418701989816904425771800711554487852603200629151616623372233406824807765764022287558359384060518122448565473662262378436375406260282415184927505067793801862615484410312104126638062514579926249551555310170055059272204736409214181711819893563366739438567375236708309184341480587938839311153570249529484807960612658847540094975483887553939456191759050826992284512105400609128781743980341094430429650054309134370010998378377044367140613699394461622580946768161159764469713002075278185988676902739932432074477887668924025064870032627956900040993486703488986751383037792474154758772775457764063958242573755888049746685697551286481135612326575419241481922059837060876378152988958917723518215466398088487692344507504720943628558053211614839871131805606451571579128706716030074300492105310785720176713139154420169532078561276455118557685103407994270781441617848575082198911496657242716740321830111013037760947117273818011773160889898287113773683600203672547307616435784551526080713289387028454836198695727132963812801506739840787405253569109030396268918565616672332176720502752346126157946591906398841713199949067147101104173466369719880839916295666849847156069016691536579065128718585405800436709110175607895864301434222617686435081505696139360800316529790017902356723003918082664867611758499765605676114260893344097028626339944447034433881030058114318554733521175741481278539105323936134992678130019621804847151192340955410136905580947302055776301250077199146616895495562043933897119294355328001040490225680659243450757947546989597202729638426519034651832614044182898303252102188434761564281869526876530947899444416460174904568476536962512867380969892376643913733472601459582812120854969952681764422394999382921422976783736745824770237930825227802703929331685816079401148824242376057215340004856452187149329139908944980587944771549772123665993262696503112098147049013691912569456178861838762601002257176374716838568611588908684437416408438651270000834529424687477364525479504626479889618726772615916908042332752414790047631135035272423772873660879852046214930470039884020508427775757981548342860219673101869139483803242377030058637781622829663103066353157855336850944483712920500926057540385075213125334543583058348509733917751487977628563849575642992128260625989255121320127999916550774773689148931840452420013533800941111210434035394568735330567192288627441261233301153296169649960436216942684123879378021045341923000815334805666684553999459568675037890554051753445525211029900739849592284966283070626487915155359142007195054901820239802742546463132461376940775605151347552368702360736448108600314459292973158127966052147896555792449959170078424700082902096180203572072252301004992790415121567235629179335301733985648915715579509782207107907691172714196214971716881952286803314688836392158644304301091968364483456323359638723071694959600266103464623536394342932313058867124234249848978456136108981581156453017820026826849348704572327175765337557723258955197931791340437652737311737414014897445865309817686264235021142194074092374102532857424468298391820766988841017144914405642828783648257475652770207527438111584551479677055750883956802552472568696565402494322238308247819961123240897256950903544859805493239254331273414091503559026687853997759742329926735630113008017124437357874595976207031513395691020115217788803666492070651491268049389995807044372781723741527410073037000530692996660155110192597276495293458839459103399297685874216507888864083869474497273157098769926216193326212023975654829308181592910016764999492816887542950378647581787929796011117071387776108946244161722216973495652541065539106240865057829213005183685459854386276768720205118713172803178300133177490905408587370506293790776409258944419847078401486579696232239754655029751346361810827376472633436447873837339210286254375361391011968421182794355137439317176588088010840553801500592721561583164095021335846102684316286208012711044225757764719897448934497124466748338701523846351721989298673241558558782079557964810908302472594608314360532903328079697706325244975252222163216407541447195850972267628524324550048157137488562090587950064857210233427460844883831249382639340933815956096840815450588812219547936015021454624968751533500929312499213090362538129243230530218130591485326470997841138294212560724182579284515159563434899296167364714073995614544082705673640426414547107673173735038891831980028237954641467589357687930209765768561304507076086525250297245468144901931864607209574902451625862202692958866210782485929284381837948931014309195698648564730510085010865220198397330062962020439528140720983275874148295688991833580846187172455666399065316093971064295288706348335532979810302199438732175706027359447892247715092402358158959992581113091363509728991522544346748392523235037880237772861586812648745601576200709730655155957202792252454687645394915855733165734649302722263274988247331543825222021928682100669961146863062099399899394478005491662019595307091087461787875113034372175544255396070969522776558002991483073611003044148632428440081532358226601426782185139314973117848316758317519629316782676973855680460610545172009930940210723094320845378007844939336770426253192827511022130185667776667443360382587468046600230173164983013492043710658110341196140139877054772272170524790057162832049781777355271256005412255741538070837542547214847249956470553895742872592782690662191938214180112356623636155032523736838799143410204002069369070208248016150263216944219465462803176421849425618240514191021058054767698431447349703992039121915812033397401535452980671428705535405085477334156988824605164630796929288780811399514140089440302546776496348623702760509949032637496650668894543938313082958497270522428955428992109042315617493528231269520764975099966908488135759493573189049631336581253545525913454756164490256780083578286068551702419913016442260223847495102741445980429590446097114843299793860699001687539762622478690418348093894276172676874057601504757184406197221970437375759583053473719637271311994078724460951148172980160513714252345840208611436863223409267885607512579043977187245945144552957614287710710951168795675041956093540942065956666990268215932138720270096931861486802785018007634539848484704388472786662639657178770909017845052591972316258765207562735420086696514463754594549617622067669051592366701215921824755509224989744390597371710557319999807869693125735332555427639464634832659632388875221554737762675479828263094368247370997159911466651508390858387177824158839804023136003742767974503969509069927681353011629712945289572908103399616009550657301522616253662362063329115485294936957022521991422762879440118268415239343976374717650151922381003250519685521837268814315780999119634960444313258185710609132014094079060356170801660390016263529151063506816747328149867487617185918412887558192790117779997251025958974834981935537763826495492030212386869765444724007269633090232505734919679482222707678154079019387783024652739717360555536786716207421905214044875488957188103763287910076893961929004639742254701924568656925182829225645666253916666913851114001840042001561486126889721740425503417115005509923175312698701183547195568659582483976961056107907911865130174800671110631587431332047629458252545093859411847797097084657029546821272049523509694566866336508198407001273645146146116553345750202539500721152554971064476340397850050566704119906173074592954852628235497890522524111788486602273582427030914842322941259227719028521010092539457578315633610643825826148946365398984848900384238883293387726812408506659369804467969119282270333956338684491807949914469511843985161304635902017990819400097397194702509421267644455213528371108339626268246110805396904237139183220402338699234636579744013531789117937495695987058493976691618331269233452243486963836100073947434541684426910266050399032870786435824677854112848567948203995829719475549867262531855093789542759052690710113164816887355645339617890946403296336516687124083843561226128818499136256386768519300898755746842853240058073814677032094938255780641867095194445970311498513426653232566439640285529448909656633495329564191093979027234131138300511865014914597721127461677353752520966458722695440039534774530679775083119861807491503268905957116472623912647079946562421845244273460660548402486464556205871496821970138279797851981800803726628333973015583730332727067252722655489497742082244216469640629977376657875459964430635793266936105973691491637911596176689190726520078875527724967483505586813346444775238154356318309145009092073681789675152006976940342230579733621058589200851377615315107136884881174824982108765136674808619032237851067286773540524351465759497491070715597209339579861280871918748416356750862074836680155046827481463799432285466884437578006454138353206122082885398857579715285584669337667365094833795553352454582486042191740114162195754134475849020568582248414245260947077093889915355296277008971133753524431573741893943115985857508703485090761434703167015165973858872747079220933066533164111994538125906868831336264755884707397565600114701850934932910749554050508175164970634097652285371184565635861732829015501134475164230751456073955183029646867924101372948443744745270945953954655118097546845956614594918770000438229942727867973708259203968831725698623140484036292821853015993888193059182147172494761504948761335072397088642032659561978968739560567345877487159400164339968480494438251858052978591502354822634527392269975939386701003227772198512940682470539131075971512011465371013911375488371021607871983489972374454886873531687012922061773901646289968592283680604359514334919424913946656573541392361493074641615972589851169791620830994119646455158127300451051376590721096696011746709306221275793350667061479078397846415314838076646295211487465964275149970434532349640574654415383088202588861176794635626026276272600428017037080075773418736092944647592474571172477041499267936781262380617512257091222682622538835417590375810193982288494587622371593602801423860401754625209925404208286856984459488586269848745732450511990415850631440539210467164353096420933179323938482056380720002826971071500707916941883577396732284581576132842363077362123938831397688223149470130797855741113516690684523895008017133221056215095717779212718549881883803937648458371249544740129197909713132692034995069842719066064788528081817621918621823156915205403806146586846232835640498500891323942532627914795761831638120567992611262126997686259375138974361108971407406136820534611857185171580483609884632077247352432704988692787783430554845915920204307363584953690124480790245130431976022647261026116624447832793911573038013439753343454976309323112358361587904162894721646342482814832499535324934980032697972855632921076580727545904724068207488908695201462489188747447839811740536778462242021443310188359095975274992677272771208574321180430827760765671305599331995320328519587165415432767735793311874031476656332854254561995755392367537162405359378279033706734473184473979446933087631864993524305781156571337634146012106969847309339898898554511600106334280796548121139791744320654623814582802505654146175480064126576492564045759382958138797650038602475769285751871414203851617087015160223688606604142900963789291532346564545731875758897231120948146868484266110625101237705739905900413162135180699184419724218607725450523318311508529636950887742275939760269461100139691336753079469865072171426424481911263372831827301991934048582630311645770303655478620823503501103574646699378121881210750463398853621211609624056949056680120243030526029970469380930640115882979053948463396967422242967874852001596466815477587964670831962471490370072930576728834729515284300868493956472732691715011133850061065003610595399323592751420610849261620973632126337233849624024885117968258659939984632087155413391682602159967293182590906378544736954181812974014742131388378401731808762309006976396828823790454937962378193063845520778296915800410864255670142158273935821274356677213455621550085594385455702180986976448761092092548884749149078439250201390766437579832481978112938091975052684002467522950642633009447000832791931380745319502101987052670537122195567012475556088672380104118680357141426909744803796909210234938324221077325515224276259895965160650338025186826864829413346787191756541258851863588106044196626045314642250855071577977893884032804950398671546513117113657545558200435724136995384445373405638984461003681818390492133264946437961116173813438250060547588741458322474095569810149869381011648116327999502342819432603143682408339007421935369232436600354233699079916581471282010343780163375627217989655649026400294360474620864608375656252041694084247875996612596000492546420638667751843031159715466539645553433716046530257166701096866535158626840874888273004579349350418350673354029584470628096561483140235907711515433423957473130673538157915110526568096901878139371922569771409808838763228419402602600084913084766390824310334381593209777415803863740450532747426284934400446843075158779813519413352769524172139169934643587383774164746693730746825120962309067716191618688575978749017898606856148835721232052813348406178469174228080325268653066808484266002508915577137969717422085894233778623943242088017409655966111036432967868068813978652532284291424576731204504016660794986283633185734903413642357226077212830618883027176160781042332948377390311447688699881522977840648487551853812422114020633997226159728490262109030824603774487311463339588515221649198532883348802186620557390408640167711520397754690025897296695808314863450124902381326472660918494619102974789520909018312417201962373680896683953253511061103578854466447320371535187575732790914489513031320918797272233449400045822818112321205234947615317746622068839774133266795737011198248799481351780639596777138151426063195403639473713900313858405960900245513678503178298286260239774640853548290315813730212732563566677634331585817295354967022798219250869883305673842334352139430756424900780150397379522501276482159417772288849663952335714486574921090981596489307103898251688974160409470673666359247658888442087365109303248727073447352181168322676397652884536730268814188317563832684647375958266827597790969701038850422984818119843867064324020340284855609220184577823499570665911893319237729815694891475148384534964888289575817586497079875716186976798158615445282950944790091231175485990929354891760693143183028304610344281851234595843721604182115263335556990622433130455279317800305336255128060271775776823837137174243492223764619613499813594781086863737941693629958815943143137299449094847855080463604474016376791862802975212291057633456632641826656689145763782137213754022018727455198974783925446416497570356222913039155621077123070211896700554489931988162454664539246374792773014476057142720353090478787924750877438258542479797173044597897569098068751620453286086477641710235945358800508788394879738546709482034131253287993271863973394903182367116989034821574806262630014206736545775604947917291469254099983348250614331893834604488793950302982902888421933851248146302707565860221690944321004420640685900844339874102706775037245478759075605502116599798569798983917699154614948687899782878439154177838752635372620244885468375261004627787647306674850012156308803637425019050403333487183036778114265997702539298594863844950189236235048253904370060358875916606895562978168059056970216444463284575018183900883298602565448544758853338487475436142331258764067898634996110282297062176664204300252331642879447244854307375901451680819212406289074367603610894418027695903538672622841730933270636096062873561820426392805747543295778147628121609510945100197096254110346854697743101261143931165567508897440834555475627928494301617706049011633709256758203575328325725684274459088529577591676417626108618215629308001287331509089790167349198468032680390800953440897501404172217298195960721015362587190006550308909987133062140058192685839964951641402812983399089965000174207102591260684059372419389189588505106893201398108279341618676192884438310469933212492735236439783025722257536649449881527856696284802649871958650739839225138178561069141965112473696386907561511180842053833917664080546239163722835966014017327282474791384982682631287811658225936429164318050906373147457597173378413640980153155531629571928430468001543882694777848773910117105982733225357806655680225386611035702250266135112693480361485965495750795116853947050392861087896092095650258456775564324285457040237862928684749461096389166156807978902408320737787069992168050612888260349200533470131745620999143412769311757389174081596289737464455286818810614499248465907642041646332457041189636142189505642032946990629068974231030326465089455755880320313403789584012627363770479518209927329944698728054929743725573212484406210474936106673651704683410778591711413251474702315810798814565772120528235880290163121873417115599079119586404711466175938899585931136174223716842574131298898243772863103951298388270839358209356523335991993873476347764199846715884787002227965487189095338712743494513931739124321305388430843641368576774162549286080072859955570055434458151898328510680861336288016198914885372958508823995747789046055686830986429810197774294776560858332158582335392632558398851830423067164174633095755218023498239238104765788898299986822262322199812572967084752856210004223609931613397417316519038160401762176080010737096344125703751050714782314099611927587706654452709491086258655575738135001483321311668123225739531638994332638246696715267570138146636439902171001931347563769011611880039805490833170771321426489431571043166542504488175542440276797124237577097805107001469778301651507796583915280471193196282403286111670368745283910141151455677320090595820031133596652937831429922415683997027285476540719011880574130287831277007530770660741390979267975441485385948222109168885745566001407254591539732991683110875070889125302959277479181164880802696985715150938227667383563437711596609502371816011036282933977508740556855746255025215611078280915905457630662932465318719978286618710972620938624009719188865910912629660302153163723354665001858085170705598147491149945008462625173745434791769423397551413199457762773029960575005389045773917345738492275774326569784992906187050820353273001333492427705647894847081857902603672794499106060571086597206022990063866302562233937343366038677358269127508820053033722204587253232053956560679857244588644960992571992318727173412134275210985616468234270612322918457154379423487755411109803368493283867761609268958438751025253613132954250277138656041011565890442957789471027297802378038351412006432666438499967159843114282568375284612507816927496874793492549133965966240140287235382442152305465492272480946076854836927161595487435793790992338031606206035012868285224867979411442763506902883384779745339683552007456052162454842890952535577928023490171090186719544718146109700558233751838298437436725752567016154769240430528412499563033467514665160099614548160216452554137714641817699840962748609095720812513955713292819379287757818288532322208640967797080430596337942611199148935493585403294663744706268995391832796896346179911602798868458833698551639887255269206608981938351960987882309555587581171739221302853226321893204926115370320846266344232717893466868579277351203320081566028495537210231390325803982683349863457618352381298011587332892689201261888474789837347629465769725764832286130704753309282041029097010307979241267558628182126255327786281064249359708563141071172826636025446456002492465625089847515857801788056289612035431839131516045857001469034764736265098490017329791203120793255340485094713924606134514058454612435558793877927525298106205813805064785718531884625527126452682765608206788859498100137164939911176882143212139371365052296050534685515557084960411589673818515317076278062529816388418372585617379678657302440350954994119058281792868312458989507136728832072501091814041749659743617804636673291859255781112827335160591825938883033587778354460407399752574702414967726614028346641345928228982261942188128401753945860218154620500756743682113181351045809481702971531018179937551348571266102764549620541567108417033521391702877873394239384704530150763276923920626357589296423672929420482294638947630140749357270990061793591905395320755467199643059048414647584727135961453158320294862593880914212297165155726382789778954460242452584354605588440918846076212705360057474988266916835283640780933076675623996097495075833442537443305092577920639173455506606960044020439881554568595709976143418460310012895881672927378309437570363175223012940274451482960441068366280335257032913811177368580140327297731973303653030617942488613393059641390645072091822775005701341886416126470708231170611741241371889021686427673563379621373381257179390903901689085584998027327901418189954070562281252133258176897311313933986326542630516833534100786639093500873466130247167042735626527864611728916725389664668716220457861211343814854588791580732466536142147418786093703889134281217943838942295087580879728036542483787131504636486615867090326221120499139083478190168576972647714725784755975862833540136962531398056142438807222427215644124241142490272240138715100691234787351750612897933399518174331652579584908385072549709197719831019561788614536518961636804022101641554006422079685313943757396062137190614879976871520869993823756674535328284759520568138844146101942326617712603231285766109544175052176726299295642204139624041084703605219873553693700085153077659448837274753185740327381213515495948282508387878147231655225639362497696757260484107713760709436324761393002259902577940127587285574243393381413076404004248473257506231534411512437826122318043807041910840244785819159928859366853483313063369134493626529628129009963905488684148857950451719514606230152499536929473202538680815762132766129811195692760617107874645886699538857870693679302200223452786666340283712505081413738876755742123810897852965873849534601606093051415549199126987787543392289750041617920871386446778458751219483066949934592747797953543450686532663968851258004717097015231025759716323072780703749926618066080813491573423839587582023492477469642200675804229756258559382621499676728928322345966143592072546798686144126153604359235900908276765929220079203890508447243037220209532052180945794170092294452776802914817676113123324098874309862483113962451399837786684071457450316897437713317049363815848179043835709271074803583411859663188823463835823047660472096328772373156203707792597259067173860014658138837871933718158779174244688548044661437950679938500256763369451020947890353626332979955294455618853974868450862763391592459333352197879544199648679126395719656916891652261379075090312981524618426219649978360522869758388145383003184230262283499761446349371851038874894966246550201693997056715118659587777440703534393632983832452223308806969330773365796716238200770283507341009325308603604714902657200318105296037681527957279761080678883960784113632018150958850332429638603744949737063945653794572447451934646865969899376526476373675656811500997877016609157026477904221214084717836405629011145506071897337396484961320858387245294300277653115867306106934611068459036488406107949932243207166599917923307655650782374944408691157133169504988646376051974169701020218283018164078770663107574094704534592244377557832507710852856260780740196039546890133043374846791638989621458553171423216666796985043998854102154719924400878037640346462441130167042357723311287705994987242125121640621816851193846445342989477205975026941784833110820348137132397119172616706678127111923555294828617387592433150794480812406818118611388453672375242847331932855131953640024980197306833475374383373238726754935554844292802657688780816161826080292254846558208714980344512097388212834823032156465093845811270772140690030252351826887741584022599122959682928753523836065385882007093462324105772685759552355983238314929416728138194795480960874939779162690533572127065916877508866252611152516795546170993429405726904950565297457996489835825574894349002516974302997857945350565374452295886587170508877869384360920431131790637599708221050072818632430128916038967144849701485511335432595979902852290447141115815351125467427551024147995024323791295880691328416822223621253646259902237132563303281235526918950006815078224184100918277439806942029988175637984738618010176607984039747290175843755424589821155867965389556637041478290426557429614752604031262816797946192914311084069064352187841847277837882483004182109810293649978241667589707432563791307994125823435896048485241740523954445106253535265873141508125405049411293836253622136387038107617031094627096727526297961333722330570021950816104537085698289564958194549581608245276605373872455895108343401679089023193054812739816185173221551639624882309958371988387088411705777944609118568377240532355266710782508286862452314292930451328766756552373719486885616966884700954580855675884024273034249896821246244958837309035272040003807186560143996597627525319653512030031555122607181635292604286790391779996184391040604772543920890382964725635267777540809990759237839493460711207292890893143390109946501494896703265542986187498821649561851614460940378680426970325063149341872457015360740998321582394091344086483373420938080353780906793500486564715605193061497579513971405014563905933874477656999653597722022666503480450856772842522671724057277555547212906248529318930832733721385616751589934708448839800240128858216983349093826420925971301559612032528704995961504757756909615480147377343825241692641326791901585864863220499377126004440091747501998381489465348168560805084281292504191909311079222840425891200969704218899548531001878288987286632434342119047834568020266947375243997632262904353618605292225881365703536952408256581709345549402457549407852264936471536493332710823565890393016415827833241069073461926360421899887828187577289851389944690139773908911651458099418332762098511372893910302597421815294864151010394676011479723600630833781787750736379240680120773582312830555681281222795010663806318885774577264106565416054760714869278781333506753673069181294977324315816388083156957052148477376541207266905814624241171169457642887068164600331477974936977287845630578823179776456824516191501977006683833289894408986550215506120376783794149236881797500075099753866868411093842108963145854967560844163347428973065225791073091758530898258904206135187545164941240993738792301188487043170180380518909476811113753655074791215326656876119178592637182810676617860278609161563965536716892378397461918228053992056626560213173074313386221327201533348734220762406870029564112325570709041024910061119972864477616596600851630822564790421366068506087889996401723915490213048986052978219326989403660206802803405056513770773452010742874857698913989073426312296046589439597341135443916984641621446007838547928919103588933676482720790692284482705703307354643338654559183099203535438006783852304370974889210212753396397039686724919205857584500412473255739985479050971466892623450952948927737061637519701607162070334374819595731202649760935826659572248277875153992610515809388130734222242224370031058736583372462278310318199648488774829210383969699086901279140463787262733023151430612610710265415791869222510905823353087041705585073856363564368214971205947517659030582355485184798581321573926920406920756467579852268870578950645585188657833738173057422110935845066790752674466526658547379695607565934532828014035846546774762610005635769401755714307902431445793573791773054778386881550908441299050910632850028554868501069712288951186321930442868330920120628252996946127191810379327582146518664399723067928583120104352451209373329455259742343010350608893055804546090495762518725274198049288253546478618638265734633158741370018740599440032477544107175633445320763868279711017659138571340235363181026504182272937760699209061689706876936873366477658319158781491849310578320925021947321198515065960481057381999507645835295089979580503855199758356827073901872881887443539362728503398458128014725375430971839967249478686773054042785344362101878378503099853980562871545588805394888966971276438391980234512516840758314308612330455581772994310784218047000777554776218611075523824499888486138892805465910708032259825238162750176787700968638093518799740334433314678005061202360804693239083901457690720820317516125050005644986661597836901392779403285786874119882763008661221713655961184963275880421053775292339211083462333270992579832370342885554151513919168872709172165928034810007485451395874009580786540720613546480476582957147708068009661001983826385022794722075202783747702982871801229062341673127384849066724774790946097234240493704429677818954142104568334294199039047324701902504427723522932582295153306076138751922913111518514629501725549292885121072686216675418869604268117131734620320439022761180168956317034645666701327684002790605151735739966273711515934995439658558402676976505457225059532332704356415812127376924665009475019315642148212328561652173924611293193955096178688660300074161334392137825749773704271607292057212985168244100315715487825777174833009664236472351836869663444002009804516840826728224916604353598075554111462719833974554813609401203028362644471340396849965843092661303514072826795909952808712572100101097191712821038784073407546048253222117032483585914257159158397458205209306611207513783774932546868929439077100947331317822566205058430277651108277528636466057769909568471707279198518279453517339077697053483805404315704449102291096804853843790953136284371260608975599249823579015030668767591274487626124389890317810213138865171517240179525794397756529672627466833609925635878769989547706605982350982169744931514284962088576651330689832890236995367932386150138167295247101614030808499475339603966046806378736204148567365024973731555333960411781522152001832898383036899561442844581681099198024274299295689770300818548693975656872738335583247286610834810465662999031213827483563845743346883781084658110542702832449005151533070519207659270310503504565061400168965204688726574002238762985560065842276491621698524735477082183798183231411169453893523108571911880540402508042212634671667120046892447601566219666824791042084707482620090410947804238086720163920817285354999900242210669771215997184618873059689394044575180609399293526247361936828789056863831565778799906497837856460538012602920917234111974367059779430502933567878498230186824274226205330525287560550972061221126699464995772626743267386926877074922064703718000375787805085978863287318174213689152323879962533934883391677672456364947727690979465146337789367187538327441018664098789373054768558972991334925371737368969679239480878616070554028595552366714990183847095040179127434266393179743880866739491499885190568828062304289989640518865269774273743323518679348878267931072340026147207521509629445789047565541683268832213402535043798521552082810897301905744443262939961676975820208192150608251758415618026798276617482928239485855747449909347000059517174707366110559066499749294957362881659432766490286329861922600194185922980423415456450236320993475049282038134866343709628866560290404959502215349970442541665659873757871444129758789727785353013585869469606522380912205893054583743304909220231352480202012293342574662467184984203804676881403682564022797810227444455304635584541932809416090378451336199485758652291188320797100360665802807039813364654331312443301825906703816250160088318655782230491685305140524651880126550429633992619665995151553502568487070364888405809791543386173084259634240987749305290745239190034019846292823090258258653053879752896936693235308649563357003470133682822171517099212819907732841721867379792613072664050463424093650912638676966669415001212279995082641675672226709623267693522312716480020359270211172152637573378248395311257704046536823898087478463979770679292675458655221063057384805945068036842498237602139458779778281652833021210662411198909253684720235693883732735698316105225071649779477170852958241800790164936089195611918771286960561638021240215078875764462753446619629943457199014761705177635531457923820740619007628934327965308207239527669057638277257134669875797098909473581774593365108013788457364366470515491117321090844572640544079927422658556438083846735134497603253062469985840452595426833125709169713426389941580618597944158976566590027200468350163657032352420570818762496804811470640068332161385785195961036975199278712438376329054015763647591175412684499993765910407596463576486923040498439877886361653312695563377495098737692596112445678655994698763637496019648982846680998450213886790522356482106184980656527617879699290449596095595110374321077532190989770303070506058603661917330296302903388141959498087050852712194291008709203972534966151151278795865872143483048970431719608048837283186360423362524029932180080698712007525207354522863569437717455680192811477510522574701230068382780781975151058538935159481574228938028050866298687085161306466618145724002539513812768727325986534352931720974358347290840689256833002843115093798062807735055900960353500599340078567947634849877358528081126329038320886112883759757839797332014569703648232171266247452632183326918703910221012340295808010562441119834775884806472471543077161759338165126725829468429107956454744115257911101804404908484798131230795205140785794654915100100388354580468358604344475043516096259072441217960664880476976027270958001985484733498996372337676349448060046820518238583548000762259062525169896035439968842606673331011453316916014064303823315215865065263653706516492070057466491919542154903652602563254591450251673301808292407857223888619608221113057838964976735217547465824819783709380185913737185284917267879672625798695143785665240045095403837059588760914145756866340743769500002547702204389972888996125783890046355267793612616291844765764791017182741653522482555009032636935042045567354846493204396383290159590257376638602820239369131825136980418394311846532894967781204343258853488220643811129044313828401983556238418567698606562311699976667547175713575709344080160512700699205098614161881802017135534915460870639964021893446767396382660066006585983932108124575928426150842104887118643920540683068563268974503219602285879904802817564469087706484828306590447270785308417190769198128654451081522943375247160916985561382634567817243785925465343738433677738531657390485596462039705947540139987866606224547667895943293854186291461576441103666113567613744122732868556604646714028632588507319851850873052146949951959975987040504517237704968116287829077287882370479760558292376232821344404406806230756087452899521717825641854581626747714618584430227451583148143641754669087625967152796561577167783165904467494502499433265992085399657976206502836632858456341961615405272279545171830241956092457105287053822415550657184657088673524814936833115142024611377962180279512096822762668030526467944620355421125690237859385319856925712453892551616003984209123419687765273239059498576182486162343285662538293723838390707687152888132084104483877502994185700543810686396197168488232042327505255520873622314043846980230544922016851281084606723457951804105638030459907607495853892097340141629819756568792536717084043087535791489720901441645040654319564098811864286714059113215741056246614407695710376848877452517865792482764949595643709559923750933519690245799890068844040698766931960717338081759783123492273912969345827918981627100966067197758898701172008851069257892086880139513219447265094244173283126801958708178682271625804016958911703472030422100205664127722009621102572316163675792309268634783577009324350400418692871536146841369341858329294145811130733687442863399383121030400274001784836095598571389523833073406326966339078925115998173169703888193114655123784061286545578459122908588308135495123977426503399789922664227673822858200358272051393035446461192595242834490408751845318263492001614159855651517632114487576703346617930223757895247581501334380154429243125671982479240167482969597273269526900043488577508438787496767135612424790946349108923138559382792479296777686516671554340431589872476159286995254423578562582453630246021540648692516296496424324313856648468199717761604650175373190994204342826184965283634820602200279737408335611561072623972889263092640721146147981608368320130337465853063209444273424996060984998299126434689714499432286145521809406983337045980321032823237289734148832610089664853423752284243147940237940262671320864025650304445560396341860056706462377233622546854892458560437257189220900068931886029186227869590086936247731022950044321208736580725504367927710452783363435950704439227202657152143734328642535136960214176377498110732424764129659112525689813999844757872127830540042501855983113982829212473767343131718300459117531748293220048074835601152876760162215630344983373836921362849463396371082529975919478487040001091111246569916285450716864060705999929391974377901238991369044436415155659521524725059387248001985857445289725053194451160708190251436394963525536173334691391935619177204694888742603368057137609205605597315766733304132190700778450281688531681693008458738990560238034007500061027357624327057947386170643247153148023711938101228932827873382966214970845599160219524199216103219693391152071581051890865776242569245726437713129675076220074599067069451101678369477770410726386001896548635793344642431244129569161563268431744779772928449516371849854855859798129166493900649579150907244449372046867522820299390266977921217446655476783600184000281500824672412364140239754710426168621355604178477815399012865769362419038738005482779731142905042234266190259161133813824294800075545743181859408594371789778698306013878759739940830373694622754064694689135835635542400877224395813458089809926463775721507224609199115429131921295547641793729664164581268625050848739094892330790267376130766626154080474579774068264853200594314513943187871017432810130135834728844466977454925545706958764445566771984493824333025979090131917978094409195025325839850622157545042608404388896920484792290428340455948081831296549437666407926268466822462130832933552779234890540839453527274369646177058140664785120511735631113739465402803649749573953446553154104865833813870208822035897727768914454742867553975540230246228679489315855978032821955456314824353877664059638268004054859174027035426684746147134568720692063270497023751544330019740844443705608802416688862864811470646612847074836296753957734973615797220067133441665303623191264278883327441364491815092615376903113829049652967980733116793852491998939608694995788765683838680439181906686353106780726674781591913628976207205894229053633830829583999304261190349943775219842828825869040658555006380948389268002458689283021433606806455354307813204541391061429684693064460494566401334336960235961266679249176325277595048982070633702991834257785609948160924887540974381198908401306627781047798496901008609763027905427866682458686918342054246746918418018290581199925484885922168949157591820773567778412723443909576100418131290138158230902118237264368292804768873692350855244063337406649993733315842121427241019636651426637703514270937640575895065627037271166905412323201135234461548887614476227414987859493306200429908395124542208008274991026360133435066793666415782602419191988204684012237301065402736738437196670718562029129249386338093172189769687203205785060601520490737644062504274676406047386699388943035950014779811312924087789581083274076826445933134437460799677273036480455107369544493969804028158452042636853509689256253928142200839756655874194681031152663485038305606752409881687432783102345391836173377766462492051693114427001657091840323559790254574425092528580159632273757422063522729970681318247284284549999987708365161644824018696557058839992084028164590910856566616545616828345454041935158452755484170871225488059461544608164009636330172340190073383052393815997084074984335165306326584874570176921361364560270732971546746334016366391654409907160082932660121448672129764252666434870413057726977729751947947077852828040443483874790382843797270194222712610422446380694302225155522696876596703688100734136549866751044123873918430592527295132480594305697910115399058281440797588122897855624387596290761400487998867564416941670883371721323338375210370660103070832866674581364009337636028751290856063265452584563802269059262037059349082644525646186767542036515058713081248878085518512196789659268005629008899302969427441302892293239046147711388314469062598235056201663116135437113385830398114043088268392162580219759695556965728916573312357462669985343902337079404121984700516677680655205636111328492946460393087239521866939937971431704204007463345008902625014904516189023235467054460610682083240023968350464656150557215561169115804171341203631660005867529503188378333458666737350028599197266039465091151677888649428135326996513147194044507252515274504707587177235466902976409347750175259293447727184194840527217189898905827998521792295162284943750311917673084036404359286290780261536642629090202642980446501674643466696483227653387412591493524785424863003579528731594610883053520791725281730070047711095210109793036500550004164866074335543254678948278894586830569156695257857941841921148531776637508897742324269169064861730622688411298669400328237731848974957613276300935115030763072150485613140855627798260098215970930120331366285807176707844982744739212150435146543671944736870242599041322254780838138422219997713915055438108747673721001479074198764835012745248923728876040159588003644866110929340360177766956183945775099491944466254731748427983323542537983703036178010297625420144343843510244908840356284760562050576080760490229964552424974010129843495845649553426816002144739772195412912858785381765972881282740134751056725596965866923463131199626723833270046701146283971501386892117857545189039535531829089189294169575210507440746446834750402707642191347945941901326598572503005113887642664397976505287757578833160941113502720550228722699210236491965942498066559339421287348446588048388629474294554061866546902210559773283090677335878928693799083789096861320740635598635975784958071471704832698527093095337755874139323120667174724611271870532909675842152229965643475848067751678911168927214696472752458922408392003061351502881420999780685824409099501958887344945183916111586068152086304810092958378075238175552771786917425407746546336878850725820684776511929374918328213457674425856145667259181984333002308936086563112004678560653144571875423128515751475833294806681179392512527568154805473866372485320065637474155874866399543663558653574323346352733855206764607119110798447945835662976978160366457581304923277985028879182242998527906496865829777623754841699341637654237170334882745707645486815884236715776783189606525599972434675552361035429808438781012757453091496184123293264083933483061082759266550607200208568429307378423891260661100247856136378667960839826932676143770384452500547649457507836940005318909253342992405102427486062531086194613157361902113146372787726283611838915765839528153862731140790251455067166349973675159336781295743998424485284932063138223119807485497317142266360179598957818832232665452242468956482953028905579340518765126162211326923107176028890446609340030718550624502782288423397759767257518515867510572727360596513130906674135628544821651160386716273688434750692097466943664506136211148927458048937149857617198162911201630438543049275935140293270586667589001574545412970168388299108637353160950768618998090056713587449239074251024834772008045312096746185525908716307961512356220315164596190039524548966147010379219541506824352999311308478771930251942411536086338555300494440530892491838525790713658970373218851468623381172450104241447969305084977114811881913600552618653469728545283627983373293739853381662266612484221379719041042273577630174550672657982334280554611699835491125111200973256381401242179807770371685833846563173386669994093989455451634095368198213060198483680389508040655114097746876933985189161874200807607004611664872854204574126501283277078002242916370368648423077464720557261590829369221703504772120997573693884490943600467282840315664757348814792079734626690955720353272087463715984090697297770664776999936729646179403825120260163413291284671139880511775477565195204441049959629321684267964951762300230397626710579801890993389671929675289103407755252252137502974596139067742297900787375926291370591597343372253705634282763373615921500486935758895225375906010692503407318557752951483648014811433755911248427097934474269381554674987530171133977647376031674223967825772329169382711368617537865970115402424321446362588365343090737900785546290144145357710737997856675264483934721148573048872192831488555774041580195151259441962216124807247517063388936509020623064757143631063019557116595874831176543521997672034779672546866804847234768215101925482452319543715887527301176641878942259720061639957620242395858469261121811485174669062510668847219985178785942508649678212762112523108063228065005151554772527946260935710204121390787833480043991820083668336593527849747571715477759946312660745498791097429259568508490436911896526492270843133053865606000373859618046558287540209164181037848640420583147357421424096664738969945171917830541837889802147143013725930197201555611969832623339610545431817849070712252304002951196648229584530549895365111255864746778617893742249616367345124358477941554102327277775680523700146232328615426116497659179613934942569984488602647742024336932398789012850177528705012888111157994171020221338775155859825575509014610376023448036269260368122937180419813770492845535626297232325901518837437051527004392939030120344835373349707277932347962737789771662307540513153415602173615871613307414100233288298032739166812645096781640245978765583213857049466379732819510339527823518972001313872263704653821006845432571030267942279584343368895051650272970590581532865991518845991647450549891458367401724074340795720647613428200357062101076327286942535000321459952152184946424817232357992201435170815152441930653662175059093892264548598769459865138993111853774581227840500018228813517860372543915161550277387546992781460997738006299141144401540240054516726357523038689608763147363212949078746972035809469235796697002507579441689246949746643723082634850451664048352034834558921070168901742666962401271820662184426102260256445240654651352982264955535506884274810956747758581486887329302401350799097573259985249209276106304061218257703123653035373152777018335730046152654886287153483327634568779455914866492198698169145168711050242063432106400108330567787550711537011388346912171682508051010658631837291210257417434715135666747292638872325192103260974191241091811616746434539963288367766115566683474003390056067762361758563748323785403365663267698168221356797665485879169277855876040725464086497202030301122923582187856691933456942863228970802387212481383606090595966719405545685607587111251284874686558581443720260936184353809253394023844470902776056978777735178401829281994109128416060197952916076879134382470491852781255105912376428566280244281878336651507337871629098427197380273501283879106050214554911632685495945424692311839672895490909271138879266641916593137386064286633277385673237795441137584661457294685555098361746017027837336326831835206699981133392627240954067492483779943513641902172756041967789122036629535740879748934328368096380274121525044135711941127857645530607433957798882855942292090549628903147298084582907811106180745207011336480161704340865145774143525579312497224775753372985886339329199718547275563576481825502779647265946779381916190391679816434482590836769433079348170503713536173240120909370685203105662467733028493230462505124833006029749962646562310184258817859666844475992393313825702121001299383855127958054463079311874636614190125246565687817072316738957454983829344411730868764464124750854918462513960861229021721607736580709923888864377008080151475433525062906098390408489438217254046556129069452985377780185317690772352555408613446755737053817616137053893050730185432715080016472924625571620600070738277474864927994452458360837416497183658488246499616594707293074617009157106414879431491363207630285523792063314760078091596952544876472843591006798385692735420656112938426481040600516765081996919884928947642521752537897182643347235932153593736297731150170731323372878761533163672863660855218959273697765269011265339232592621417124183202658076469859789930124450680282592950083119447903852266842207147219813521566689626793146680348437259116453055363724310641173690622392107151292805313199978511637703602566020309200140894428670997951718615603569105548382009079841108685060389234811125594732787714949527253396099582961184150533700564155755876997318278735751474328270730785354063429321225126489010598084740329772904710211605527499381367057615398536413577373690727876506101094116478910461232749649232090528681097988019085838441581667379389298702093151967686383305070914178669105035992047474254641225191474160593201793996417785742973535753748332816706499972516309801568486573607261645210491169278154364318884744416838335178531426575019354546761892605196067493243963472253343345125333413487090781688619329968155461863652797789334357767717923716244779915406696157032391275713068090088346914012673349875455353638391828295228673093841772639655612873114889730546156982930123362997615071494099795450653846432645616403969937683199403951971223580173796971768876082461419863316797157282199242693620986961966484468672256299858009357012276152444240440230655617794443462980056319228158334646513740573233271970733285618607370765541636447907735821178965018626204098226288491842069983016293772257288690945210563761241446093082727291395438294641442363928640775328793889346840593383023347358731343756662709604940269698058549942951818831216720392548227020627728720409553020605682919696627526745744365414282442647652905970879108973925022822466571014469747164629783536361427600420315622459559953246523704925491052099175572798271686877097091853221454811626068145261946977960240743512905991035291515835266861541198651334297183223501020589068695575692066869902486480394736101276146763477323638745192281715931475893769775447802312674864896705634843266319978135704965325055840978251903413573267467213100793830950452751254853350142986144288065344493772785096881928386667579003328572779289715953917822978338418731701909390068273139891625017002024423511630132418290064904701729637335732044219369219153101961726243635209269397750114636626496831998773892353911991669270483494507317646734357764403466229355870644938120766115441747852393560947334441638377948898430579144132839677812372595124763137159821429578223168655836276602865219760428215606042611259944200194421863837544299756922095712547890961021856613670474791416326965054954154203169618796801197253254682368011182686199642166165176190688543775196370273597677794587968506434709093204555312006565598056945698187541069729631416996746722274073982762816119423515415213904555479888351875438839071957093493877407975779118761795222967517050103053815605416099858101949698903586304492508895227988843622231717146807283454108778002820613197373744140338962201401481310285681272365051908893907192334577994737065345292900986390450381621215641505443996699627793511962095155229034394190377367211965612939909933303167523800382866408691068211223211620249113242858629426808207235122807645279616436482717300064606154999686805025304622368476807884588621006756398659035865825520927688302604155375983379168865687773624926356322831752442193083151360335598783498709463263847102846941182637440561129638525852010186592298443738189049405240913483832079304817389097948261504036940851184351812345412452114587146396795397115993560862338700051397650731368880780939381984409018114181044255603757495289980093948831436175403028692351078166898463676578210691656896728921444707446239399172429748993877505963949547474442976688806236476918577166511411085552372956904494250045436521552814181722633847497028967912363684229397992963874965531200378491127509402168750134309230813535494960233471639846756833982461824165782445908848587565508302697008847914545363582605152381591132824098831133281408604115581181412994845841698959396610843230370897324053117473135070513121874169619585422135465731178675076576271558496906588492541477036081897918219245478373757302011324954585890407432203145547289634763267448659079332436705828917433998145634575836368752864427561637616601457538456157445042899030110935845105906998732465514723105785207531079381477326733907994137316700323419662996595751206481643391090261496501145394717095367107420426326236312539128322860665087934606875807291845458574400971915529613809283965000710119789504599391295004596100644061335677439118684227852621312997693310535992597746052231683357329974661696591811610460485025782109471604778176630296912072739133032695118411371553218456126988791340581243415152677613595548224898620735866241121411250024910005084999568009573070687781638476104970838270394681615011313843282463307542232922035770520350660443912922015682245584415682715786250555689999655815527657960228764814572711748389605605495376680647155147451599913907566158184947926474265599908074811825525307835953047767232494339415779046735715068334662626931325174497758921017452683236308289267524450740267353186393598742523177845821717553297394330269403318353215798678914199164906521539753701502810149169331876874196977923738764192518609225488851979307517688176892308407815041974165132308147181468140128020442069138906240399393625562143905861938738118770001705767484226933049218866203771007374514330321138005855992540601601859969750207171549238631591275578922930151171568611673872298522436272537888488866313913212289356828771716778138611647669916903442852056901703383144508204326841362588997817642341742004897778357788608970116669922273412182742318123586981681109738857929057985290632394945923511007734658424608921459548032637862223786479645365654195033411001645979419157230895298391660978644109769784781115073490932011805207118386316450736106752299314456453087481753314304712417084972112347899670241139726667560433276378874894969517880319560018915267407347022088452653653600454789114596487011753844960098527458225941412917281685366534102934649786854309845189331896300700918253557483680556025454368439799423466709239585725972855472216327730356396958969139421278271179282025560638631237618841434829333732762874837304476325402378814568391219068254452540821602103459042781628204932348192496514399305507794646342258840197298139977867116100203849104227304542031799711310361037706604836228718388461708024168916489151043713236399386969703765019490171264162741969394601769938689236326160241549487072313970023340268496094982434863290775273558665430359277611161263400296820945411891060344419311055295075023517851245461011606622111277772494649759994985371191597562349835313292527636145996807635710696181084108129596590573876030705479822187779509529422931257192764717444890274706942115587445912278566660441712493210168978689498931820393942240506145419120941906603126899800117380483540762081836927906287460785148450029219718373047786040976802301745852702717429248289350100980075017310930733781323579499097898790584581973270275851019882908407610895052309481544473568928745503535803377555780967958841817779456886558570642406377339200525961492027976376136213514828884061372202219983062333081701189020827456626474021749262786133777441432559421602360911495039755868953466560063620362656472715659324338434999318294021900601662718596384136398686444817505059035689717179804841500713347728180936938016552458365507369314837469873239280583333771365571458145048025047931502309130752296507637772865026888280501245554133257284622167165006402831906363106925463145048957629023205397108064636507983160339054931639736975345140580247975669423565946156015539184145339129543172264196465271646511546872280443100885676296638328585628434209050853395559633301391458822627283884137907125400959975747393329121689417849704152087806108709758211770880572252221801240249133803115824273906104646290164521645877446666110219627933555165703183848354117139179330921489151901598165555158569594600687294632417613907610467537304665682913270059567247112399460295894620267878376819426832351374568009565555189126528415506649714641665607423236516343694995483308469071675121575671090930092471914178730100542472120830303287778597792169664717844827347232756492511747952822190875436032710713650576600909361426547765918258766655650779005825540558113568757916122382235638436440911082441252221843734005785339826807919417824339648097316421388372645767991771720137888128291618683316235426778454715768602626911242741846581561046111198228572905945457878974708213454643826617186227505273419912933356248988723100392145344861208723385269986077802400742163306097784411913313385234069525272602545197356401917441957753813650770810006839736338446600029172976589488030244792999140226403328413303334995174802669889652607361195610737268824333954622325779053244131914254440589963430373723659993835297482487516071699093506969648546860741867166086167620793404515949004992797208993304859322917198628868831478276583488533022558862552075616419155880226864528521927119626344459555508560141576085077034417362229284663607915939075186229795629049073401448992106731509719552441496654813483506685390783596219416573872512291135961018954897473118258086867526609828384189642000783736786142743354715610709846324329885633823321791360518291055964633277670295888263557729766262806119385576125461154566745996778665037335318664616818729867285800395486853668107713385683716318511745794975022694164919581313215469350038985473662875030228974054963459924688778574423585745076391176648394296248599463204269537813187072438946584139528255182096041751642871783570302811000670894683617872724948949788174518152570946340326303279168185594196738233851974619155351535875392658361149108123814002595611683882814295898831954410960069189592005132314253560883603089590957895013085935407444454469949400464416976888438611801106818786549570751170551478732829612390571523720923704290627828779604454149712451964756508405434858857495289087438603724042881070379980608683372612218160773694165074496494035702194446315359298632316181706477715858945758744663629139017105490574965506964728637954738619141834315480668402078863454420005065759435458080147461642196683314357676552922818898717975143663940315132112314821851375638231486130498522183263390453961114097583593792440771242365441485024821063384461412977906486639417659005660095801442013906087803910491271416023033564755947224402024382182217459706953879875569809643097263217741130869913828112408352179023785188459245664985033950648109326537010472484605258302954522858591507404394815169415753774085527024321901916428025026576592443420466445238532024248790634207825971238527651071641851338093611458142648486543437216456229965434487625453440261561089264684104376982647296645510430618131097374656166385814271044411024019081318161163243463334962426096875190047290211480524223497212025616122100666042235027720328062327801522090776174673104125530560738143114555348895713772186261563473912835627508619317250962530702547487030137779125982113067839494291464563094496512217407500165275958829265042983869161225731095333638828897027821734717556330081006724536258271340890055749677849372330721374516865275234037898804591685161869650388530481086581275677601324202783726693784716709802463672903769502865186718302721465416173491004614897272904968776752215458948545430883303674473458714317776602292965530837160084995522425162943281006423289402686769486214138931931760125768095429308921988018286129281243720242232831240033302583854647621560984902537288404646014491064452955577022812088344904749143564236982116017425906965468308350909647404436556646003742029753556109815513897980516537707035734354513555441513761246723943017381030720135615401789120240848544290875851173041513252294601707074963538578867558203614449508296838283236898711427627055250708101815955087608926702899008381701183996875640655190290570713988326572604026336198465565428900634970038362555374658292540660641898622187406243494034081544405183510034380198775429418436756583744474256657256139779611296079520677816270684512587729370748716212338097421435698110339223252215221404897612148511836657249222818883150453197651543051693343446960896475404960455407452374980544036566949310256321494614214537704545223890863212151880220337526922295502001303685092493734331986262310463126084939643502790671408847734878036048233490288908568489925947613414784991076736590289593830146126924319887510173507299531715701594654354755662049101477778842748326798940788563311508963965588575526456224711891053766328471789210117194711199965293767941780461674473252181587514676138966015547794277659258164620898040834168499419178407153928822231052050801690518219577843909387553113101464202183998364919813259175114053374263603162706901875728174019732721413255077038874631203938582013082419334235163501362052974225451159637770160014994250131103248847130000513535460348559109693939676999491587938355896982466421385510277188506234933881872256577998147186101602286751388485554010493296702159172853053613460620297533260251115098264272114693674242268073139858522079562301444263180778959487139629128504443098528582481231941906302199950322586216212933186796824276747354149393823314272509507838257079816146541733596569841569905388739783138031871585157505334174243291424232033411161520468464070670372862592703340431989532236184877016069918342082629572491981179169199214904959086994280653869881100775104452393723108738780967060615620897498664150184814663642936610213280157422164288562758304168850718037938720534131293395857202679323406909278848644947243418965266572703204215857532397472451754508339998150060943993050353258725365174170326937823599122968626574155292104116891247201270668519637442039440564532142546764667139895386030704670473262085335808207817659061653772534920700323139271005991077219585189792227145965925605941353548220592000807754338419311356944751555356838732609434667434182437733382184562634725835897470466942900099271162822130689267253113745193272731905527754290135704549386586598677182645827075202820680420295995261765877800008944142088773632117496773193024841622020005067730976694475965853145256971507141405925258999478959368481782155075983073256860865648229383889292516142714518684642732484611950336830438112194831122886568116516067166203549271754601906974314435950068786975466367198422348181490288287057740205899781588114184238545001422843237691119634096869225901049282488024211848887611006014097220024495044809432297831478898767702910417234647531244043788240227965727383811570347581205509980771976272288672858109090037072706563542445883060793576600812758803118860889862748078220701671341309166244980879406819023638725845881223748328024866265763282760998152740921090180237626194206426152212599806629423080684822413028607949134910756353167946001231602101330064706173272772603150526869630887988720934731416906267678991964174355555970402869671874638165528917614410273059325090196453220868064662332794758134073507725509439985499838781990149312065307168188660775617943056881939941198832098186433474278876542233210415519457646729323093328124859333104506773406030860978736067266271699498826985924393251733520453714295206705986356657995134608492299327477885713234376899976179189726433590049080479878332885777213769662974701772260216486902792362673080140872754604076560364335132689005019417979370771530827651463390361219597188129402404712768491405141786709833741751186239905047007177483489962232789046593077988152775243747637896002094782414087601218850391058149472129414511729912801959792091081901130279297935998983956733338868703803032895193707357737127084620648281476760888128633440399988328730601103899510034459252045558885066677781800441938324586792111386570833290134486506310204849781058592479396867035623399808343856205602181422230820625897436754097623327358782319114493916103743203589598242459694508606692187129412721548338530646060048608715568268632273206242316347736657518579608949851759457557116802685445752956884944267614247521748893327982887759695194063423044021653021197681676567661230489656989784936637975918323662336429622100719483611195587992000744041089260331342859084295759057726129255871265459238749434932722069669680548756833444910571992858763917705274359776950787056585781564226071132593716701652900591771037631582877383739538538425688639795916909663143846972080755488836276659025507262811847454653291642724522554828808461671182504950237439446906556092435568527397844062293309537991207595315138327470028558186797321398932615889077788713752651684607501152243023270796098184535170138651528214819528040446982108111923962752515753428837821721081656523335161628488515218260516548179360552946941076858531332860539916932947250498838587348998453140499491782912868706781468571305993527071544693381209790969778127711396800876871963467492856543935370218457574662025029585988390949504362635325982979851319524214245032006276088924591995625663707331610948821411782900810965627304988900492504584247001772977956333652432918136217988467783999363540987723232156726362505048663695481503729883309640171931535651314358025876779436948418121990426870534220974698593848352014230670503278596424977432045660374158765333118895465919894149753493978043929763567869358117021274721269321730989011333527785339316524371939052925329463278575271447500064504520546417146237394461575396462662898369809793938228907905782457901450632495071729532156335202615251902839495581680013574215692895680341236121358845131608908418986769101730923413915847752772518970505604811132954989242860853326600726042993513615475673482326746673636514822464538176936716703784895390141123074133243865976511492511924895771928480039153998891631609520526034370024088628132828197845405676547010086770061760158981514120210563952257121864805889408250719695203924037774730026313002264152994403957536266294674703406841485140681136556458096640539719028729541187361305068436820484858170107559862927860511757339362244542749611587658613976539250582044246270835454562988894282462938925557022520283013460607740952884490587311701806894131200287203022668251973151185108992811014205862755538329474047425871754672414534700147117802540463632176769020653325076936089940459946143042184076135899390099187386531385516692076897956297763392308332229600365197492759165250268250033027355201073944860262842069790379470016477853786350976631293506137384479068661920516284215249180424642457138253648612631758730842230640854154456547552696478769396291969367062864234785859266599569576093896486681792261186760174564208210575673262936974331160607681915552050099010584666984277500702325299147695668334739130985325376180016940156437125978721917938303174975515264937537681849421421124319609785590621952884576678083303615264828644523678737625525948628248603313065450159121582681117114694368695089360044213270523210174163951077792765016453098770485934024573008744120272378090697837501863486950086045996093983671843304528722702903096566042923381305603527965179260076484951245510624439508208340358075612357697428647803676701479327558756546045905021786295212865850935478838910614124730514575576669924239895688523884360216149197021062925161263550003515163696096423325750290222496084696563353618061345651581821427291391032471256940329017930664397086461647134422036929176178757541730995425894526563674369512648694292739709416715758710917513711178148740196583532629309422649123262284657191825274564188272859405027510830386813796630002480794971613278742246725383701885381393031480314990860258869673737558671985567550123430951527435966779811433194696152038514626414190174937130136647593531916784047554020559689231614482464849974622534432738710517461182915370512037481127859856121081225593255576970065969856144507163483059097338211029604896263283211762278315877847296146326550871512057411785716208834939931358060941740639119234807042093116740354290671006628307546745903947275977078594426607907268222220347781014919216874700395428267077780701265957282042020954264676975107394201451876572160260165395710648422320507991929345193845259681614850779771661686098025934951301400253347858517365918774507404612608850510894629637145785637164340088085264948368000896037365687361818209953617031209573865342629047058889043284497246083373757898136965592263279737082968886559962352974463513715954381680470910984899804837883817641931868562062911863604591890847920016269608152059040507496555780183066945037378240413297924545395201950525475622611133247349381551179724028739407682926173169116582613841210991747950078151416148573993525717191820977138943103965405388766849487439331903478426465221538590433689509423143716118888126574209412516438731413063240956313056169647849024204648220377746576976480890735532905368725539420881186184559605594678584523528989559901643613882408766948113177470490130891649086884432792854591970310644205933227283203252839651880302439513885595408210993796011121462519820118462144058144024108219462837965540489483411636554645044595590306214142277697220904460286706636176188936081272826504037340662261267204867484217469831854757459774888719331043877958989099895905527109605366065621783738932926673964028571789860208323287399371513603201344739192175212430666730823258036714378961302953599311304072184665927555782289544488137165989187265863682295926560908951336798811783452372544135887667703397073260971105208079960899063368392019543491828142821352026397236730520005816998321723905082516323058838246793437591024606043506814207834137639154536536578358903605392169265433275920282592031178786563059935217920178868483391283448270082753316749799645962359709984803719664288327460912455224952555193454107971158569366218961220562927917628536430634383428831843461302310048611854247286988331293838132650513197218812778829871642934121305414442470791565434942621093775131620554768788471869895733646312200614049621711521158189081734776747043576617487904622787520464202858441232614952855435053075570861225267185117332095281776205286898537307809162149039936318423927102549989799365782478769571377128525047564871974757840589584468303013141253764722127406026837597596849900078392705598732893976956907485569094369847775323189611326850527305467748134625785391876024804398764709350216110759496617788833563150882915857482006578195405056748098986561906241548864754016351710069676834783300541278231964146208701057189900135724039949561210286126618842815329827677734186750293212127099928006569756859059101493741922166029544690926182495693162866199305222759517289349082234490019124630070032979578151853385061983611462752852227137144898798767769114008592786753833504755092231558244635403748676100798288643183502875444359653435480224578956766488845564415438530032585930606851759651098587126504823887895104576604148216182760668299617687783096487909990501381967688650777683185089810303860435570115224932807863348294113039177796070580221000588034314807549975314910052386491291898564243631097581770772024392952276124986867646304940725893189354079399887390884045095007603399664097321909314038680612630021550529871561258496517348471403946846866023521948222030858015701311955851028939533087300526645680334735944220465784946678561142629828794856968164100077322683464727089872855284210974199570701945183208694725589600969165122481340496267783887528193697512213081201165081083666378899063063349845887819101667764663282303878476387846002805992613817600662844865687853021403573442305350712909512375753486287059557638034625058653356757994405693358536324091562930099547596082279496450450289296830407443404966459645651817969305965065455864190280568432113902310577946094204482594452538455700820386232915513486775622759100422034315245101845230431869181548916432358989902234152993172345582732761100410026305524887137922566846649270389753201576620219687330086021197759225293995668056846555200118198309478947653282404460473549507004657538342738379865741570655707450719932515734532049875306981685533922913415308250059602668630347892857359685652325160727812604803571089780269984948489635236162588361722550404612486340697531803059941904689316169291077435943114745064224859244634324520858438981886886358313927609221758914474090862494669083617772703307842872494880279890930825508931636851045452847484155450498049830598937688081028347492344369630719340942135793514122372301540059951892620314803566575497187946771004168424963337060599645375216234204926328999124752506375179195636722907211149746710641925358296158294137980462532041274140549240962466768665897950780326808222842355249254481468933195904155455207588105262549738142372093468124769783441699900450685227289383342069595683601560759846756491666351071163598719948826052214404140100142096671064383514235132155656745340752575209039649776012630691723376402400627831442470317471912181587720529131995439655135546446936546634865463869910885757715367352411950916294080076874279911203761077232432099287527546427185610963020083803624837224107867393570230886322243382612515779917960351801315680958153591468264348859540963207767376547452497676519837340456009879890034738011539906733927519488965883412962713967339791783096481998361619926337533518834050724382320584059275616231650592972453413139372717556369732377455496653779423989688709257250168622442700246208150848461541377128736445106779211504070146424181771998615057725306270833631703135630677648434211871333534048609529763410163138557284896584665730618133623625573345398446291052449826250949421741948664630031506662190993792016974213776063073618073979111331726932535098674744507070632705038033127147691438914609833404010415810148746148370283622606975813644928771169810643505993265575193140768477182664595832268470183884508899834972324237357096119028747420960141536943879096277173738797675824525154637854744910829414938452731750121467146745667839880783303423510146670897885074499561794500769243490562564899024241475261762620615451815477019684942024654061046815494453578874825348916556474777939626932329332332110012533636645017619373182746553009607243078062340445278427227684142910488772562476942963474902525236506586338106920869711856242529691437358639374961294967104899102344412570919714298702067685361512457108602480280923759659887081630723213158945908769797979348799243929766608755249281681246112624738666358170894094781326994835966466050529343554319843304568777527419329657529238041898749070480065461179901121095225421856957092009622001425509128629544204075195631003844646639369426168486925564805469595218504416777667277934202598418782798289688239818011180229263845017386541344695197717217993763463865007227238304086308584934216270950386234106309888021174777705902941087816638404533227391339403759888352632832353454406972046296712383266816894677369577703674997000581691445266815302101221944802747751587140815418065916769901183724308066538812902563143054639974500316296087283679932439352635473990743726100113689462848357348370411580567488391663770341930160981046131290373377164522121305718166882947018468641239987650434444828953749371404814437082864262164428310456161000537477185833869526527358095032798344240677388745231869849937330648414157268356357072784898186353487689220563310900448699497814730083554304978585461046525613300598839682133565038068260065798792952349233715513578055383346687154330903327373468856165631826371454327154077210718635510897414436638096781768843624982711291590373726275975272877476787366746995171917648331951789365856613703895653440139259742085510064581025554855966645679786963229756368484191028955386436788658403619458521504591558892388016095768787434460665460181081751107805782503760593269841164240696637808198716489962914394845009875361081208657834363234441139637462143309518746299588187114758556663253809152958468005233405690360566775261447065018791226343367815917884428610246296666308445493599666361333777615675031338459656021665657442839385948378426536041531114077362693228728139429973373252042393218388903177821035375537913972379647219878583994955160381258635265445628999611019031394182668329699115506555663395419739903675308367641499789224739103890180347154247425179889102094557592634368078828561340654215489659789028619120312018532404970449348503179672694342402835954976334589760505737337070158754066472158959223917710445635818852293899626801580705017013159527073249548176389790007793456949349173572763981413990775236369892161407905424179838934867984097067313930188849718733423773451750549031149859339514356952030915708531203666741757439637675457828606442479737009165345567637403502371164706438269953784827903761659542183077191444255351616574706451161521274387009287135938290020562176341661821784045832977632270113554545832253117326840281306412530824839574639864821971179711527009940533573986402589215624678782662359635338629025357103368322477013598389382887420047058405968930773417994529641677330049143113764712653508478866487451457711036313087664738524993737251006760871269134678797326787212676448710428345859473010521578979504044962025250724048849662507353095774965604665496113861180037370947915633435469107620565270936587322530950842889498571908712832574721507205084065094575298178652566397616473467036976927117906671236793621656681956059468998066832476408178027485446352532081104159395841457809675531252207541262044364210246198837643593303814335321072228395237952990526217098102080402269875534481283904695781418140916864044849574748641053286750686867482723396785724609042447913570383978817679792535807839934287890629690794189666009638718073879937616333768603318362372352277507524312903527900029275787367103521982560335376286309871029847275814179043091965043589165211517805821147608190802538494171551851706353849181392307466233241293913721827466124173282558020435620513390018772566485420963637572430911414211562617994650910866872916294283886230453594972854582813412945376251209629516042710144492953774950671729745317091213268443149847005127831724976727939581910136766548454269885085370186782807663535100726937576700224209318000572269677188325663599991040571691557100216573363741364761768965812006689926630826618293123541975244880850725274015823725825664106406806015509379909060515935147423959839193035051734460369941272534972227019397078051704309234165133298226971928933936788253004246296929575969593131546475648043916032757525578206740117320672787704445504782379710031770112800259880913979844569674509440523072966741172402761351406283032282483997225903304412447999122855747440411815462077684983976914479959631830063622463367696751077633191259447962404141068022378084278785592474658326454242452623680017496135711726040996961488131281910650745265785298139215498328493167093454464214580000554023632897510182407622446631312855585926387330662475992689071176286455147661143891683566963862272310524219714717223903510866246537690375903271946847444495537196373785931185911522689433605049888176333561336119010803544909044035223233611017585723278985524156176849113031268822234900381987069555707908447660263276286065179968671830135861288101133795974233468346464845362074067732640077515341068357489188761287815799600992858096558474047948237241753616032646837466894241432992023604218752310389078923802205599651647856098188599282154662598277229227447885343380973673848177569096704951180160069659730714032029161908292003835410426774671712114401573020508009428497700609055227392722868388443498559860415471779109348927840253179557801094679537819148868971059636697970290513112768061999901037597805607047593354563699491058912845024518634538849701505314589747883065945812264522911903337575604126962685262678706657730606486828935308659347072933429633653787237815304638614209459021166310759452705035394818685148563476180612145095093873669024366960591475115679932626225624657468900725218943083836078246657213235903043030967743942263180011596502760922993829547738024907449166594326020763019458170399961056775855218343707496002824612717393066420071177389840467340768446342312436178815831997155925714058059056850141564172615350937752636277693282060255647055295240283009288601889451690255077612573525322371473418066026506814110373918989126194942588923629465404770722674503961227688396389553004126573816476885981731633825689504434298928664819863733602887811035237220504004542579090704601307853217758874807884539725612463714027402004510309204113830684992766460452906458580033378994440379457309695812694910029683833038105922712254972203468461711297406898759446898946537768396457192666301538672387979784232974931101254164359389514816168888353189306007397205557930050472732966976648356741041581740977033538735205248794502597493381715493065939991658218798877270745840940682347996312877774932312128755650827221848287047647552031630806466210790323315803785060259680782323705065474827004066523676908312928010260999580651752815342308750130416140666698823034901292734908723649892063271202942746246595300867515277920459040867183187661351355074536663162404626818178533136039151586438381545942527843905553305703098229757639775155178073357582495272717309359442454052225923519050260224393639812139506481299781205367656698166202436229756347096958554748564473006125059181064090675737971989053544059545220429521694683162760028216330412416640270530440537829014543654750528481537286067586515066420247079374915203641152970542833504043226889517487298930850879409876228365320267325579146685976265048527131472895579420896364021848900673718430148707398479688891040338088234248907096441334262914981912607897880779316071170039825781263652347324728400791038312136870155329442263357377627471405684020694039803154909403602889199907934100373108487452009377341293184807944308094853611516643003568434109148369291188930598144646277245589400074086771553732857989728491756809846669878951463810837161134248596194605238952952292329244237845059148283988755584741173158975629053496809020408212791575730540089285033160392790044033858965229622485466604831935743698879323705734681699070055094021672739587801771771538825839876338517336828797604269221285167243187933800213955152296339421988005400047722622716614520771163589226713076757213196120504221527764184633642251808451660157249917764662337474961851714298889788767926902316059099344276306578270406458258883563772182794023559442232326744631320889536598995124224174264053349413738727938028294491707845021801212266566229847753398465593259122232941698938952804363953527710150822481621543860994885478274960418759052516762129990066980420295565373393579380071602751310096122625319543149260805749097823572367948718273780430145551083788166957719212814946778883177393323311330841036880024618379497241333770639028680248595160021853479265617556006334398172253281881866478220714292897809427898415749989043019853055908364557195303963119429315204316412169180680946003000529116755115646498824202347210499290534089757287271306474190877219588036376188137784854661230979446700628277643812553522027555210710835434544341455312881911017196012805446380891715819768618928220135022063921833335826106817292408047223295148272069954621814738773916863648379031542142399858282866057053521855787262328493436738325667294057343530488967789850101831562808537385592295459586502471886727896648076853551258618197538915620757359311109273542112989827858046409577334366405472233573703839869491797594458609442366032648761331494500335726796313865904161481905663489779850047779205535469423946650875507525616712833828146024140271681683850015139860583010950826806929971838195646612969352655825297432515971536719112289030587388214743083208034143823462989557246061894922509098351497038570675914463946930107122601887479058031323976241181452163886561183173352005586815379490945671113818793172512946555608006321772170425624961608488379391490241683494115791747553601502705118376987324894623574712330599899379725506421201932724034559950976703741783609265965822860193126212277027462730081481191369557955802670664699113925622764592384042028682818748551118337843018141362447046102568972240177952717531751030879819890983719663531600869667070283838477435075470503648953451494947049100975619565934684094110420853070772942397531864630379110044192176741793556806656967556390376650622592027267077414539773809577510088552676094198309848438109193018532694549707833103467964457322299032166696261451863859935865871208873709070270333184114301727352309028199829817162422583111410045788149607934289855707826938529300500089259641680969133977792432062163800990978909562723396571943744286106107598472175609618244452362087156224599609309429755403315887075517430520141715573115479935243133196948934373704058978909687652021972223601181893091146883062253024934587755595129571308397910486364579645255813942317059850401567707685053633398068396602599003803713781856817181555004938146899607629130714513070151512415210781673583333208763075961576401434883574321100938471215827485751201046240382208637842423234638457173058566402650459342398641006867348730398691796909108513076045672744253749140622973143905135691101853248816869170488164209418092144931966974825238845215613870175411053141464009771302511808935133798747790469190162800577704918610400371841061852314258649570713670426422014419032785447238806699088878039198510336540852255231454184456615580158914062288962481182737415434855378823506976101813867592050815758600917160423056573248563012909254935987097484682795893558564124676953867746963467899430135004218567622794487062493440411257126285978549770334587844843917242897789027071841956099698490300673236090079854301345828179692985458635551796269692378509954380831951529406897086692156515629499221877737118155866216702979809232835077760469497765772689107072738193335008588601557223013360511822512091195916859440230114812593409039717143818243038229470509892673709472599665484642218533339598074636354137718867625379418146132885593471642367889605259888975200400199595520944526634471062467796557722120022571976429832325425663552878204690223934149264745666801333011859407745024300924013026365575156503672598086313969016581905685558250724718858628438206704944410748426081405894815747201871780440246779031414906207300047954063825118817752514251641506173312048124655642492282653197669854025495657612660473084401108379376490462787177434549992773555226648815668949162295311167897909548483759481328135517105090690922878964426823607351352716379793252192561210103873304756734616810719613494527316018831513150490320316174031172066800779522549285662904817989262193275259520966364425987936004472562083329255687470483547041919428797525464405866315542196830406192562937044414870218450220937973851503651027699722912947365531092381435650959943850992166144578313678125519402805801596007520152434570787504209211223512779426752900415753307911737121653961679246651662156722157249169450975008119680417767530671343308288525700750196758859306124982819433750154671055478757492897218250145489623144521911809465311176599811107366553480677349846260155316912697726000004948048431353334676782962520478299201060860559813269584924206813923869854978920931920893072340264852955142775673966129653205762423749669313102955865297025067507027036864456954577333050321252537467586015188191659694241863788889724191816876875075484212052992971542574349545323481520760731648943113532423209532423278119751733199260189880179831187279831134750466253481502613103508930093144367420651795735915493111724357447242885068638297360794108614833755155888805941222193544834826399748640368026017592413960798369621778569382893732413043907809514371925599532610566456027064915056895967844645734275079376210159132695212539693896240819304774752099935681918248572003840228514204779619248093750848467744040063615658882628141278540802943621716686362340667116164351222614224087318839360365079867012845322893248254428437413497178777549193386534993105219976841710037258259514672987863166159039918657293424232836757154814951877745195928986187702124985348386487717316540707291282212504950793860589886640380348953748882365701195939397552847413513510992720268239102148711177123774853677158341625870474188483785601793661964561297792890780669803110297431695325909511437435523833166844726794525651426702061203601237893009257138289275716743933897490106018428577126114440789827817664007307013123507713381174518059920870669258738733951775591977475152462817691764846243068127915269334594195313376569101647104593835273952933375258328012390295293317996144681673529968297576585180600368727759830909026799315516200148618241559402152647814142665030123734396522837329647375994180953441640467102876800543073327688903070574432714271402638049765332092990485549315167914376975187389542997808872446930457568329368027032342196885385779376143301072601269587181036972642439986877999134573111037082862890292008331067133585070002015905135673156411179441810788452454795719389739757789405076940567963195656006686114990184863758738548227213739587275539367757212155072090527716304295611167682286082488103099734178687241405994197585216878853157187830207537638168658586284270194068817745542213345283011537820151593152117528231284622038672399782124854335285774398512508565428809013885612098176579468991935449846494339156668348544221333169546995830799467124099548124978497372885022238938447786561367578212727876365639717942387522829052041265621391176098185832502448891671670710004377632319320042597248673409123075475235485955330100643692579031044027387449998437302718443335387868450217746279091789463187427625998946657844200395373572106418314223170532148194479862114738916086671058816081826974254638362329785951370309107136334655916646908399235302179353224034324747714195721794274128171170768020356231698915633210471284261676396513774960932857315980254113279025622277287998838771348535786354780936170695100873472097046161531858725686629590165254699838390829926387106045508966146047683132735682287468626995998235963900738921353561115157791732213034744809431231576079890396985554766412081656987385193113264913731068052483507084689788726688232733050227271340077168245158798134513933591859807731071081961244943682717218244108152232095876423158444367234207974392389546281293353372068371793527462553125468349957387262511620266725113916223880768376036004665887139988675941925175094270839076517768061258144142700237878417464374448830260007027821572179115798127946575745187738793328463728624105151589522262643940084327150551907068593951937935675046702831951367829772310722036462437337641483571981376957719154241688879358424440952646924140361270286433921932358341445764532299066607415429725391281751967540335642780994774570220260096503001930724286927536308332823249891336461459231961069856622533335296400038496584236118006966737365498562455007102152409733287771643896724882099693942958339095751532855808719673332449699026101912074657561292784055851919158481577593481490033359783130428919714461650599798361976253615364981507276155982847453549190660359504345594121936570351406462586044458174995358515259276813895049780808420686499685544411213823563266765457044485007878480427015836209585833762584020184988829732866458353992900178510568420593303444927048528655383052663734348026764440968641969872136171665665111386530389047856893853416819188581915687040859851506798628807722573967666104844712012040778604341177190462054168125147095396843966164028712984467754333077092300941932736882116548828919546977062841328024315929760909212957794239315929667609918795926180590676920945953591826182277205133481236195379293080796149732242868205583665278967382916086149528811112535232426656962775071311085676850255397487395616700944921296171544077413475623902164790922072293272431277335904152782706677663280275081455693524777914347706479979553716092501465555489348247720369111791109572309245372334008303600530322935839034926983008195473336981663740419558438395596111662240381955465626571866790110883167269745439602049249334714186176640076051997459908678034349493022556387227823331496004895341251962561389035637076208636627393592120375755974282071071513423388376572640075152382490784526400396415716256099864636840675892468795759406632469444937566800368767899155718914270876719564213086488777053099108624915187498678700296017683347256704298166463296031234288861102176838041044787398727857361890095769066994569665294633088579598471218251577640260791337350674806969066476146566725962397020192816742982054788251994917790356532330836971568570653839894535359183358653330854766294844320843731254423824205773493066005193227543873570747609460386725665939865850767542219295603695594071945681020764385528210780477576367281743847150900622333584564039476764045955162225905690789800457924008898964481485209039282110554589127528476630873437076243282317194513257921234670576946815250776314249948442885844672236223594610429130062491326855007853515989520012402081375762214488269082734020193091827366092257870775844885543745550937508880661395724394097985315680103775580807297111335426343876366973208713555670574102924642991555774777684881761504863013444382623456943277510875880371997519402324392977496051049835701963564699143163447730323936812595096985522728092990925669552955542144788550848035835808346973821420000255578394844372952973189492794041623504262933426573838872581614145846195488173149352111144528216797273418060518091076968117358312691025438509083883280507198152635664229789301051707251203636280518606305990937875246549258207998062253490415138272158151959539293184909357493290053164495828789554973027154975178488965705365059221166075979250588924130018891991538443407425333881730290419506181493412761134202911864787060253897685218932946372062911893047357058210050506368224565651637375884698455521151981043723175857326878701613078341648525378601212209440444752873879774421946646956505776646752128812009751621573908838929668005016408908679391383192584827015088127129885532625718637776340345902400132679177882035695294576262719049752723717951685553915717063435801531933531571480618808755720116604422533570671868374250708933306291264646391460672305406455777670345508221438249867524484667928951746683178810577292301466362096619101323478253060358421163294500608201379470739205350795411181950311328023748880650288826456621165408397603011820361766681051372932116605747999117423795252447598774088925716346450547767146660121911392204904668257331055695926431942124566995387643679828506333175307040393717104719344692533025192746079778155864762405453827044752775414581245087737918280316018525487058038988336402956728827129255999761019262722752557029425107930138832150053388235024599977570309681520397155628721666160321741039606160724017427253612777879627605576800804951056115139596689063292595131399476235583819814097387168545722780300085618820582609743815854121271947055872177818594637565082131918779961674750692110785013609944127709856553672215980683102368870011946156514760781626072453582134368638520053017763358191696589998450609227829364765849341614214176895201549073877782680482767936945493893663091438976642566888234750617525790925366739963703750217808404153525099022050092131587824834653655567917502272534343796140921658512277176980960091687533244044678595656888739448399582408583992653545804580878900577116141098829539241746673128758534185825064228682415326821528163311514426786573904410657248634436815674541711210664202142491713745248101317184870383052041860540365460470008748724665707984780489160529104596058190794439328106377425860431220511463299337299744146092342867214324124346923670719137070797914058079289094687695747269821436838337960905303957124709292599142541352321753417982821042024556992153465385927419716382185569971772767371942714718397934453684461456395418854638392205834679660916055835425279876740403114758173132056383275767756962934314286916916853303737076343517670424427823376547730323391560525113157269169671348496138636558916868011921796045416925837045824856752532044635892710134379984341334404041903474864718935722765144245357570328319133434022364777423819127970646936478725512372308610839588493382796547676707663623093144336427682073278138081842792837765380460743908755284212826920604327204983551076763315648853705618018039717319689171090672464929546665018602378186401724746486689007424366980599426405391816446752304418725462267276719015234760091197719452545841583644510047111137409072599473380906291871857260428630949133949044383927378010120945089099345418392464837854439134719956872527290889864015586097727779369309828949006195163447167353303861648289689689380047238308979332576221427739523528786809061782015888729439736105536030193477216102115549175100904916942592273579581686900494778420462895234454413921523267956606165209170380141494588172936329201790430681219745224817459825793271337592534389676229102788233139063158342412117285168108522578744267959724838090915511122946287267101409074526141786418826099559561569245685293781100043714467445688704770172674804669421110202058953864563451357984133821482184375896357821074906506511704892070928043186868928830176812621374661699884806490930346827554743928706407014957172843883553404803425156367988709379164941965058040447393373847021001525462305152978112652441121905507616779555200873667775503236080767152652706208196699215893077995001880224345833174753464428035653989999130403016980531423482410247505713374649877579407282090605344140670071162860667195008578362730532714896532939711401531863960454123714991875614623235535851328243912782395932768916582648095820854162618005416670619189203128684616597040184799216919026253793500596707163690208280567478950754074666004799109592635021838543098889949066561601739003694536656560351942858255314093425858007607983685122490091372710687107563453741824486435149215570958847798980455241027956433585908085897091197522224730358680347847820521996036220034234179471133124841324312690076477136970056246723539955716606313632034814817107287959519484513079889133914427591594078387429362218204303018541391432087849760305015053106455906245263644832191025831390790408550195978303664822752451941085835531003692207742034665334151124821252579824792778610620046751888050073203255066615965099502330637394326236506629893949609578149634793002733629219536259209818068122821773163727068416113302629636618692078100701139603501199409906686735811867083355299158099727157607073380014737508868113437975637817946874047357537758523756526107062177022263792291133414668604296366049505399880016561178634218178596327869189603246844693450468350411493698566223963338176620572070249407871697690968377709020780428371302221921313391661915088863689212319326189926053543661364088471270865986722882613199431582028152904315433157557337291779350238785502419236501180852445932348955481655277335101304245646411988229948055354754464336188883509451556685580571152811816377431904430947577647870857446939109713001288788305430803300635640606367333609511031871192481670852500516431845815953753686169957432168787423402980203841754768695768288737974697479857964244412327360692427149559378770475065294968687412942961717200460057136647387875658141305268576343454889800870891194617176525172072982405973939747823257677657613135496748641303191323286548899740783685723531860291637695238917714639532257908203462528896712721611000859280188244549124253970445716386250033136605340927367772608644271656117652154021663810854210427721236401734084336969421834102298842678040645390847602093999977026968067180305733202679780947365916860108393818028247326885018197460566383469577198731800149561618390500508435877673884897682393840122994010498701153624046646502337756552128985328237958192435141954988882005694199301655278862989466384239237517719270191725230682968411104177516162840752993292363196398478702889707882544222659780136729217408175223400724628959565511345082184431043267339255083031905252268504340316000250305346972988439945555562047317150557833401085398785930644428473648690954601719885140211428826733492908804222233519690004719292628718536738659063286547280762524217369816008229989621356265759497227073444386921612029970866222832027106048438441484119802016007608650395614977390249398856269057114221741668256713327068864268408727133691127608249435083122279257436988635039009333588472447276426717241597994472783517466047134198360959400423845852274371088435092138063632234142087788243138706054463702169498008129652673592203463577345103840148951795344638427738025987167539140775808121420824323903548987695894133476411050025252663572399616707184446558183670465172400195025484814003100454803729308543370730193314245810025876044062392700677442222074256538190326358876457652187238893948118835564352846257274548555697147538095446911476537600922134135299185859225866863987560659031405007114247386506134946278056429792567916864339365710214459548984806920113831151358566753834806462398250431562712338233410828978083374353999679430617929588739530116069533975216935813489588173952458174394156270330966825941438902637272329928890912043550215436800660126689307753602167539973016603595299615377915977559306723086753135064526822512292742697296935436169514230737439048272588248000216930817620171322606608927758841668886121655984400347984025726298962172464642767444718123784666842591099715982896708013783985896915152178503106221882711159800567160610454678031490361831902845817744227850433580656017264989052518520439529175795349759259490126322220623669651697971614397454741606438858691893269131933181867024910482637190588592286601505963851677301649986753580819008035049136060637044000987855008918877006007610041453139959141521339693251447530624874748598165469446313869162324238033447648157821945246714388629037819273614460283269706476891938420396546364112200729619511736034276714596987748271971276937817198947164832444627488685206673518937838338507369094747878098275501037904016167817998068717419387656344463482276051256651171410167970663202351463922318217815267492463340937759656676760102831856838628702371627318897100724388201241452575189050279389540500725537289124880607412952693267433458777316103782307710068151814868754220561638367630983990072650279465734989838034560127826617671296504894992478220132655354264670291897669930573887419556091455504620499983902395097606946560360285562043571493377325650667490026916026538818856224533694883120546085462749503469285178746884311439578051881471181068835471623362441042500217780909676730875209425920063861607199856262698848985253241855294494258297403821166501059015604358205292632539324609878091858571049123127428737814661675649480471496940557000914874004360212776769143537491448279754200936858649226840815569419833793065443310306477214081575176589972079647569076030668372998015503385290662270256605419334348914024443080534492340142322648882236875089895178690783464359008719282794903055901048153516276024100488503508723209148760297188861913479825815508811999589864700567852304725072060141966704583554127292746098281710834935984092324282248609764875634215455619518142278996169626621604358441765535227746549075612765897376359219435333735892461837686551146066442885805832843634016214888135581723843080408457555217697002822661138731525442033761809927989819976893039631072402965028826276231134835187448442964157488959084840496666708161168301237150616978461873897067280689472135756766439261298335863267849261723174582385082976235337669711388448923379864168421149916179153433404289305133375535650903687714146504648833735216875085040095898407444507048433384680650879397726204133236388241562811418943274728487583347557718544691694038356990235066225077113670099111854231587656912842700085586332080772494321660330082881487353445546267270202084084516097305844549936542675827283184586169335878935247478362028117309934324095224205465904305301701683620280652869948760021216425236951930323998123029921814112790646260695459417186407168838123961303522589799954250132997130647140682459474397058661139337234289200851784743393697206281627017276509188359389099350123151392223864788551063768691656093118950198895449172288225800451020995295022579715128684018680716190081466723109991881060472857445394890996146924132532883422597009854359752386057814880931544766843748034806158115464458540728281293462321234726311474294756789303811708844662837432875185312465398329872117506814037397662958922026125632243055830967699799439603898067512852315658393193355360270451525585812681141927475325504033890912567725658325080804475173181302785900505257621573710961081086100799429874804062632177033867453590056456462016111834889323685648000618787106323242873990268101034364318264198796567309164108859534072534335453096187881511099900234589601886266177513839187946970343872744811376294575000099606358371969262471611723734444942592827126337234553806762133765241032823638264874500570300407287067661481896914500567868613844052009825148444106945818743287727589388718678845353132719531542253560265006275145696692330340367115349602291433238132622629341813700232248226393905258637267022986934186319895564398420967287359799219511831824126879046041988817066323756655283307059998520998286315358529264578153106007943193604456464358693763722030457901763401962582383383843784946727718762463137569762799723501816481670990894443113480966169092578128054935462032935821062956884050461672167467887488657242777104923073517408537992072525170832173050853935916230273661691826970380836228401161452563104737762350814442629878675818481531983179983722478034350461134855918404096832396936667919451849076318596497047207492135695779384025206804546524439610147251732421825177923333522405329061819564872292141684558439965959285019056316600534030839825143803163277477438633291521421853039982806965347327045717672076124559457060643210240820441206612785010043444374480593349265475527034773175816703306295567366756953767368015297249132909357628280723073122137981252871232478902019129585265332157352744612448744830100764599067883378975452474214761155923783515515438850627946306874947734505819255470916739121673689602493704829894650717618563339509969462336060972483408359482155951531855190785553906377289267618489835434188463075726375978959699814709320520530550745772465242276413903377032737371025805549455280814047928116074686450618666157013068961529208771009571775697990155423116801512210896703675285637372601612083638018583834351977540109328952714391651627077712793328309052532432674058733016719537070277615098916307721696229859005821186488419855170113043190933209388556154448063612145046391924210106965255355806132887865139100627798665440575884785182718336734085187706912598163541608261340581576429184840694696732700851652568573119344795844163267017953258669974849222452730107904261350635395098708883606443152749179175644241430100687682376663714175473728171820145273267533607370433671032196716736027352343752099570741997845375392580875544676112271190640063956270054904070245330292724583860331184951353619745461327140736884866189211828212017798938737689658993700980694908383817709114900282598592918310674230995785639900861829208395767478914858721924609846985224997021993993143963084572836220938602669135461184563355197056656068374898679530990700517650374151975240124201644312290155263751000448568488936217524904651096453987310002176078230185267579424562607346349521359901281928377359543598125926829052129864413335789524938889959418750056299324181527484186044454678190633875480770480309054700446304408011035462453966739055753170729228812641929555412235589723566762595349011300001417337843230141321663443684295143037444996840905966080641646628367390749106640018462141531971380061804672055724962955150714402881183375961516787134712297311037600216537824870951919491606337566074660543900635900465768955911363468053300561316509221029206159719523191326991750929026731575104189767708558667357842311703836891065996169408114712772358653310423335443055376273840120798555694727053044847123407345628679305390865937164835301783146434235812317018623507050470242938701807645017806389204044157871336229094254525774829211130260216507119428096445134373699680721389173812854326324105137581296915321961586984664423495919437876148412629686694303897559337704726743782328799581049957918538006114207666742712049854427118072562412952388522189739617814099298931686572711463178353329657567712448950823123422118596495801471069861591209463771442042962295019057162258292294995855589887289890567976787804573759604852613247584110371653450706928205423747202384978623754096243353427574215150136450477422412283722366602425320508700840188810907120128958353930842220371413922955622793972344541014865469140492677303151521061285400129187911538688201739381060348101651358291315946110902230800014353628247948725007625982185852928145374835292310637157591778159504148573976012343600109245134323931385582463331339063595185047128861703352154134121290841205791173302578444568429249528653817986443484626286253200261827853457550037907007136285178041598049733027290409630584134780892720269479030182262271267186635296313889051272095159417074394641526402524669841229250416932200471837173114591343095778733762237256507353122940543424338848612009430032922312134603584144098084719420304050322653635254521089256947596203176286540845926040994361148566702451134546722835992553606820546702822876698087779999361756423064615184574687231851918204772994961422996224950156471031992284662580157003829425883703281083189941683468725328249310411990241915241561189510448767570933889963786643406069459264375611822443628814223245919741592390816731433682619514829982194854021939189243912356582038596073637436939106197162429121174674670661762478925630101039471768718542309799690618750902958866043028261589701529464739172253662261285173962245768089057091078210378861091939272448607596535550569157410757944266542481846942543550211597631294597259473244569554910960276571001843606677968855348787090202225152173728932537713631967686888909562279136146888137617220019146431109778215955462832179772178971204741013924958348352150818338804041345788005436961728819776630898243555249727390733568491947188249063866373883141823443107892117728906959336141585283393443561128500519908663308288663276823220705530502724798714462788870936312053134109910640814415805348572386961663325567923234558341777122560026159278936291884095168052809378786517470163474614665700440431139000994819407485935345072235869976776579528483231840017240027835590388467150956108838823578867544929251845419548528729443640811091585288280594787809356131626975636501105608504253043926235476830587579426036401447414083795159326553002898313553998566051376366341836952739726195653802422910606545116416457527393267001021024901340118420636092093475640415945436762639265822128930206485215348212017913487371050072677939763651904358936312143442776382726622472620548340428614064029093268069068693823542455437469164426781985760717253734609421449046155760086322871941130454647658225206214824439276763434420513878365270307612661838538378477743623399702726915502348127268419083127966492588762207160226373501183465279494340903628105247653495850475731041018788162955996039542288514794310765882411047777824836965293216157798484886549567116277844062518630068204333147699463866904404121293358380845720557415825004030036846829106348792553120557785496540538278423836906221910918996812453560329902104879536599121053539879816077017539830606851108747439786697902637547358436505802219308570703979830105233992509987981423982282578334601670592705769380440542090279609383808830684337320939998802396791437896891587676909392456117050827427592467951313821366962919836490944920116429304063265348511572914868543143825985236499001369278210151574521106573579417805394475563920263316818686891600904255585942604479252249156070475220914583744733640965823026775360614552174316818752184970502537504513085319039987176616464965014475915989552530508930390669690916900234546128308291933120890041133779823115391873576311041304818934367231950774108884321952785227291387858511137438500282471651544131345940588394628091323434342428579673430563313898918899975316220537350797754202417513443993362948366761832399204350412183132706269703395681649030768678719167910364447333386585219310666413960182081423006369378598572562870200714377897796900626780419469102256899463733627366023757789219256502966738561129887913621790720248228110689598911495099540652781073156532716771503747886084977628721450558658194570524335757970786170310023817521110134702298488690550733795414233540655798253914734838965225004272309988657586413581706311953651036598974184479939391071712234625807681841790753130628516805295708993732850074374541027906525947219663117626356734906347356290768445893100755947303580052365854772772361999307083150381623904866912418677142810150469657997255497008878921664962283168634707771241584774499008376994180510610216188666071604137099007746565597710462968941263473699142363895298208728289060287572993673111347371114561692091353099217655274519060903591880322989521290082584290946457499016089318529846390455766716499527480004596073998995588997097727626537264913729669218192177338189856820438041447147110657329329439332548469361733630915624413440307983701831169941074328554773779179074215974724231050766796119065305068886830798618470261402427229571903692785431452406702606420474844875091266933539192474889272949052636409204145337187034760743427224758344841883821161034285971458839701001671917924522254055473325811258632039242520148866362607621489881466603608975375221198405037018194483688969743503705424574557639020638404044533328094829193312191371399217925596105975614447684277302638396254281421699211418444075325964641023104653240172737568212944563381427213825164161726309684644306115395633460962841036150779116355478315928432865763021959257114653274521453980250060894126649838657125624875963581864032870482949960880046898058040263359592857535549446739961659581222082661880007079434451235531665530638207671630422974541082937983816325200802331860091522340422581231446582952659393352625601400945538064613596185865558610347929876688644973246972422988257596308854447347989730334710320705688496347812503631625979485895381702423427804879569263749919514126491374191635235258876736594580556285900350335514235753436883061993771267723024035235084720465906364179391028713785287864377558994485992027979144444769163788730788318500877466077507633646328454254931369980368758755688305349370287195820621775365228531035551065183243146545191451480179514524073948908147296147565439919919433050847498394363510264075933842805162156349611888061654489345820025321624249250360443550078391476177223944895067376833884659462591908892152828302322359240642467181897127321828363464600143684730883922111170441732623230715665966781472602564192597080971042060419375897509035972443173524607942625608314760778458649275656404385904586530187198517148853563094591412025375644662605537015718357985130474421029609989354090747959162852564955042140861189355926480360695593730734960498647234863634414674521153161401693069337747256669870969200918531366472591474720714202704690083527140363794572560040231227395817771414316299349136943410698893188478399260163088148144719742380298516307320236693201703933151559227463887934091828622779782312193869776852867428307121400916587618327279600824666497677176428115637387968603286759432271266164652290650998150651301455790280361853454676863005450383532962354895560020852401822262452383799335967073576416129479363726727728057109722017194247142212947292992137148056143725738728006215397824681975758579234358030638393624339830570163229667358334449204258860696815996742726344616287737416959560938217150549188856691932345826564949326194972389974825433845033123751018461483869384592978468738204657128933191186053479696947643474893924017366039000629384156972050484921433038907887422461297584081888986606092049301143854514610074667119922198975084342761700214770065382939879155522376572602473903138721853140523730983814951557451496791381689905951968419657271061995778711805506535328443051117561963660250928770844524668764809724822674908777968581816061132461031350257321668869586831637480701224724630442881883604454063571876865132678523471023510915669276007780547897686622045048689445843320153337832694750203689106253524228585806314266319292760126727154821590635129785057127474926955924008563014642953311835701004230669090471252532398150067713040401272875070141549949690481701733645153953886738765538458235958475661534942768067313903357131183891371172485754670108921828745947885914851224905263903205397393111854770864339742653255431430922392249715260643358243203473640219280923851877204233674323519255787288119803127886340630117594445100975035403439766088743602427108973466960708931174990468722055555243643829246369909877163965902775802727657409857518415001392869087609788938937297434306090755244526312495482018970252265162745810227873216311316777433523854410215742856200994551466749696416288856641429839363544104206082323779349877738209805154868092758736231573051706680674662119180988838755476881641751336503159256812503427191435510294649347212255405054106297601305124627705653595249185787425036598001496571697908351167624039776375286505462113108793625079547736034553192259652526805936858025810898463225691066021428882848236873814514939114963328391590204014090604500330387453901230884207509059832297157809922918978340121323862032829883956653078397075215975478478283467538884763309669423932553437490075210845406534579705863807644331494859114244667579551589842660761700753501281582945053387956760032105786363779832421162787013826992944101618382703069992122420244858830290838271146452657588219350271892540025401684485072080831432336430374750620438689231411961408246712913350700800913559455208888854300578980478675892201295787234945801945150716131547886677021773089483540352209168702486337888801750006816826479057718146699111429634291826821893762742487056428163947729472515329709875610928539198868429183312350654903557363828397527166947403684899164031130812663641127482998833438740841539961000266681702953974590524347197267015778403540416626582071264227514234754455563768062379113495325227221236927149578459375654849542868118416278557037684211768797578091571288762192754130672124587022255071027399785873734372187463628777428866724430282607503369166403389140061288516802733031857443007939752235875030968444714238868900286550380190673502089561645375305597580741262570420113321963654605505707707053629991371080188611631154257445881072632318079869648502985627324237481039466685729473086509015259267208489284025277799769434678905738919808055525128807562765947696192075108428479749846750833229390674164783507639213550441796569244017954808957464559292466254509746433568106018570344413880807127788826108593244615081453771868495755613809459137796466936232156932042624500570508141783591307832594416323139078260351800342411983263233269095487736897043489040730538384408518809242576212395903439465788659426602966517088364689093523448188806522734931663586118687954263727461066562633520520738488699968663432609178604645589299599864497851626724063295880840720887500729648451829996019123197556318880609908234016219312791556176435203857967633196669408478689051321413328894494516805971893647080676079038649949351057677345871322889007914309381187534490721222158263938877049885849007480851397215738624053987375393949959849391575036777161761082731775602979239318371942549030661679114938599057141053831079055370995806870011697322283477953933297270036061707973604922720549902996121279269173483815777502558609598636241711859098860758572976619476730084154427045537173752557007081148553629119217865236612579438909612516815807359293902672636492805460883226008676682952902254175491438023982709328413818917626160686349728729065748932919385926599188768561035589058153973880023404525520875748782810310186044554627581907308824464857559440521910844389950111970785997204079426269307574169587027397863545637643849778086180086971000452860370633102021205295858336337532857964740717690472421513205379536007563016565734776359336045862318755848934934908347978291783778908680508815237225281658174577496776236230013355475427764755727274737256554977611442925027908131530793213257774761777331936433811186654954501710086538449443275011337838791214771588101908829381005150624982684197323218857695796487089453129559277262738333976505460376736378990718392554562809757969798893415650454662482520464165179876391096581323705301819301200408911907644884739562333496382276334404879368723055343319378199721917110873960654586776180222133856446355609203505541380906977234892825889302691466569046366866019924598788749158798124617677956705247340216666359760712657633511535129516062623541964925206442865445550657511991910587019239956735749865453714581213077979924036525011520620837303935158690105040967476497640074118969279745920196413507111685013203674805762446698104490612727602399916085493216336685625259528163345044433305829967725700524710783506277089416381773584987651540747097776230797613955109697119892938690387604788219116953903188935574901474309437997662857962531113319386962142406179331345886225572190634497920667757956815990687322554981535213474449970724609354894252865161551345015510285168086209461328264262964852936737521680051133855663653498023394572127762393584968282409335736242811012012619999129991374960618352194350700473169662620539885703933050008335727049044276149753282234683592639644489515726632456996417378924493385564935185944618589176080301049306740673034366785743774330045814112938345023196727529732968889512712999567683021709461103873226534003117836873991736564112360373073572783542487896859531715128572904317111033945057512977558252290685172737875116908401379203432062452090329052886250283970309821943287568915936635139060245743824533605977578049936249986925341070628968362231330549812878112992785427726132711373397335509212147137194463485125188667615754076790677337254247366977550885841978516726369063742389695332598734901328772560347287565393823360446108683735149979198644677776572452904822120113435616677946476259295931601341746598346385144032513549333968499810684200889374235312510667827161783875543641906143994027984741263067683311471177719499359235595715827078343655830677195260905565918960006301259554726408104807602269598301427319348559101663733757025204656200560224219869060713618204777301138996144129412700204690660157008120532684756230893185107653133103052728931905008337533254524305556301581400287786561633909964658617534457522605872635197342542641770301911359899606534155670399332007084713948970678549959127682285030202028342698007995951227625048877537593751014637155676255984929177718920468342591046839884055410110504454132150808090547916790598191793818765787678867274258038968344330422474721249502093123261481894365577331119320145156427035466797166888616325016334991608206972159059188851208645230562028052121218543508909189959434256410605494988641161903030500248742160651100227957192033402013199008619672596298289803066619450485126691054914082868980438414177549519739129793687885082595295589882718626074901914387889627722847600484806834283943165581603823804534805716496116673835199016922989918214113963475147044606634856335835780612533613231235139430203795244901488598036678759287090853694430584883530159559856713535983176904475699556988022305154576328830729304718084622615581653900935986733661417236602784601377175998959848653154008102268132714496838821466170091483709240105353483003477440476905165169321933195966813316225404556242230211613696446268142742068978616647745837389453470990020193339416609156678623374651226802707393460799432595703874126053355097339048723746196494114733706597862684985414645137637681690569099919430938300930868059350592477592352057135309156339905066603018597972717808230955526711810745826529101561044742530374375228232416684086846601765378286540444845370744479031687246818992785865837223232988400014204843630132772100402296240517595086471629470218481870759361305870518881572409918544000572712630680715088319718925652735933393414590033961980097761761171448014528000057538789710850480981632549472734531593051244937810577923559612929166718223292327655975777815636451891889406520918504092014862642650682074493928302470482350509518656731751895162624727846061778299270307795114127221119296162644183770137922325809684227482212309741150166314433714800124125566323186066011435955031202173181920173274189391424135271187690262653524141100442049295125332673480914316564937878877824465365840634181898851213834747143940506839946768211017434543778668396315856948846369579715898595229827733175808124203067342141447482794882232788344549642033812736866405111664995304318055411475280484992753480440498516508349100228107541280269784802483463519462910622474785953211426735437272978013877100071222453905735166835954087767392361732634166883883961940714405210834750909535058068808846699147638663052914672963775570576337687116703504544077049191669374549002224995046745758984372970545112563147596257309372199526289255341064834837098727333959064993563962192083418958628761722668004738225401349313352126083532122107798235765238628156827418592168275177833075033221247647720896606259332410970249424462357875774308611241155070780320688856548299993149555465934596679491224872124647181144136284687363092091920274094900746473135188739510567761358598991636242887229162334294974991829948453775967369274844529985529343661514378708628684493158034666436153246992413970452680494880910009503215361241359753466149856866549387384246569899798204242115198174114171951984267392247731433969811115663391313769605461047578878556154650388638820788396968123597671884572674436617268181178793926831912151263633250487654162130443531868179878625107968131739406338108336366147189942785118945568499284097591396214364910115232023514700971768078093292543387230147090114402410054885199062738137581741614707529277325115549810934518943289101172496770301002097094674094032965575219853166591633896851307094139402933946637300739552349707709017588454132101720255275998441738077374850468149831974101479411472350681836911558144357796351352130927233289347163399372854979176022492256702949142703701341159438619541594075937567224912043884202201796499582667842066477058809283164668138502285771089990807894393985011460825277186255638615693328299131143500124934856473112280088909460125055797256445296011192513327300795749109432460429517834396329546207996467467109279873919195982644080737062768284774441378188457992422263440088624977917542192852429511490290875457979653533855005908947008443081785439592392411790363245783613270916959061514513720218267090999692009139657760197858100612565705137435241011842139864088572873723614482828561923890071039347518722969838195774670104356856372755040073001233152548764517794751517458097088861812274484689971358961338989466876605330863743740603302457924870374679933097309743939660311189559169946567809202295050092368776035111123386339543560402782008722470550556351981492119704856671397851338017516665267671882507767194606453628623557710004715095264787564795034881990336036461864687061188888842652985917877454159635988099674018286837377885736191271827318675762183510543236912193747044596375454558801095716220585670036506181612801797399687733859851633675097210006549482321596800103463041430900393733058767470795125675404471115505272005249298217701562285073482596360216520142734300067425197699307269143142558521593701549292873608926587089003486206087710634150207902381628926652247919109113997137392804332006991045881785821766222884108637830562870698576452801719299982202745238761408205925624348076989512308161947363049362387544703352409017417991301823893881941211647579813992546336639608039022015521857713508909798538976482017628206339916563654561181313969543647023219733905165565092106045082317675055252059999268246189364549689654118568755881118025163035270616111647782331412072874357604147568678076246102230098143030317984954150158587883916463509853928388313693819976208793745301878926038199577239968169800502575779615921791070886566904083043323444053953451779402855430632686415753028875184483303432978291607147264995414247524444092219718568583331062367064683309758394852004327329002154625217370436236372148393152082138920056430992614905118135657152998695675404611755585831393550293359552127278964476409151419341637798963676403724166719315455722698021643509975891491678228172444946330299315999347533279919933309806122448787386021421176229778615931649754941349690097415070198593084451438796653612211130405752175780161164094918287398527102067623479228256249771152492894877901975086503227517492474887461903945584538746990017448259912321396893154204717321340206900117733653015725102892810479243389452250516804195000856748399432507216711802522509861567396598972539949647322104727123125701415593684201595123983798488374177389051712417568744180144179484367774388197173611718206812203339886561515554525962730631348186634064159376654524691854012505401004127787128282355072326233936277031465963210365373239278047227336218559842588317717188647192461450192124328459534470742458417090535772756486893282312339945333792406588450028129284681809887627002548447765394334798023928505439540272685473239940128851181503226240118539956204617857318233337784834888083219707888790311836168363820733793325897412625305603130018112901733884073547018395432766957805798764900264192944885656391083400679345450455722246763532284493954233908524477995551994462299094214027022352871574073345718539056152828050425231498879462691337548805070627502457896445863398208124351268682474180059699342920222354142471563210382624184835768196383276487240190664809527454336225054017003747333579318797323465273641547248310210999854312463958071007476278721478667602261938680765364887805559691866598916419082610394361097074937780866249976343036168913815341528510268130532042448693222676845191829796023045006084709689091073785058966876233071635692192123471339676787752181711486799256748854574216974784255274239760364666853072140791419916215986251109690333518092075206686576831334518760022049562856872428467062759098364366109578247845388347637787774752896649390220950490999978907787456329329891345198315334387914990723910833082970492077571035765011078805047230299285397836289506476187210267767334475052138909799170262027716501264043955717814456373156841910136209007670677092807457580888710183901123658493081850104997794436521522590053644780850757311720994923557515601820718307169205413331929733907517178647622812316683696559798618573955469858023231491541203874287171414168649712891052917067249218393124995995894192837492559696492159489183948789695300000811432354487800007785013533217305057550202415530291965687858765952737241201867681723146706247203686367238933115308776242413424105751707810650669170967940804348374605460113861448939114641527238918950659869528923315458107539337976413695968312055688133256777273000595575891692605359899746839999475781874055896229737219078560194660426619055294664580131457368278301183760950993180736030649469272621242193604024136124306275186066220000195291673442608044766694851097116912266756221685455280885499818180139539729193514273849629455166898145947767442662003271352367482514506485347153949912682617904331673583731904361803457702603132640767680217864553794456291320919759465794425677424678952076819945431568737495972389046805572488996863666097978510033789458395730980337426504005195176757674945076467473741848369048075427231545079673501220878660767907459836877488458916990824126241624032691811032986000551495257296108371590627193006249476695736165374344801189114045671835410175262891183435332183241977313562602297336254804998613316746868041956759686242810768471432188422365609656374433580873030130629986371916788166221051183975179839395330607298883398174946778781737062700749633165545684159189668171870460918877592535181384858652292058625328419638181191219310142816865606056655210678616231423811408765666790739474378737418032017257260761396303717147717968411786812455518726780101693713889575174634431582568151065599338699531839936101804610169907026634852984609056639375332177653756688089952362768488211664052241032541560677433027734574060281281654890434488357681094962758624155281062939907865761284279607168633343315619527843722159311487254812745672752125482411830095323670142823717962764769683604825910097262898505825957290053244265997714249275669153298036773252454583449534222294675388882622542474741517315365822067064503762407244242430432972817359134026616939935034407476160902443128875581151058264249744898629198258365060017472795396858364094794233835544923704478236149776900277342175520238033607355065415803772931030981202566964424299921808044983179367711318882389669555778158254795306373542447614389858207303351847388364081328629776400291861238192021013946898863122826451435020090208172733706890259616810864374174571365887239562699010467222073753008701649100727317094948920406652238510521449919544923123400053609957561024577878146708886073291680515689021826228392795877830229396925369567252766803381035100730074778358670149808756231454965789744831541531789557738101444407902461065384211147708241402069250737415043852793059419397515147106612662762538679026701796560832433446079281590669907228847185005159416293040372872779478304222043555188808813030616605922305024801443058032905625805641125683195813589229860755679365201749074484275492548191195004163916572682065397393727591598638964875518661945937810718258825703774580223403687717149101285145207765775032836930053992759507935941005198302319600154772280741101106028209782897538294855487141305078559890421932112289924363773731364824159620889564804261342510220277642083223589837887525888185001378430661377847016915863543865213050359815303354612455983460461237771854683952914311133326072394815680976857495903799213837969779474337019528745011401440789058288948243017799124542715394312798175891045822617765936012324192967980741741084272204097026746245768392487702952152742220873826035004765519589549830760112691271543746429135501774548293209969819756581779504485473785432784018479341517814846785868727703816714138050971071115449696510596125374181179220693627427223892762461875745609903678688088657804601876043739507327428110444369343289348613221763573444475359208276317182398993231550451597242906807586966815454996778893400805083772398761286603153283566830831953411460864380665325411106261955722037413896576818842135805027070009226389030038701722577427934600960116618721082445940413789441980353885543764460462957132387226591701911632832917397620432125570159863551825366720438751142372379048534032321963072807132489081634213101045460046667953908290675647025706814334072046767581506596417846728111497759397196689379772874336877613679677642532628461772007933775104707409515890307000513695485251578036272780192673084900776124026777865016281640007708357995571964216734168964349245684902256506955350080541056866766846872242751302237718024651736111005283380734771533545717148967807555947576510209232836509648668789372148134454834762528743612553720241948957236578109897194372626083762384781544093534539317605845395812230209091278567228087115331067268352699081246433215868888297381950105458934722180160298453545609484562614901866087005924164113521637649027724958167579486165864288220339149102586329910140529537384409835032981569830563940834184190650816015268562418280648772120284897485986540292172495264345673848459403466872790113181263237530331135411496986101016932259702094612133140826945339196136322147610411612497804070405289886862857679214588763430919282737162119840219941801161243418025537040343830466593002402155484573238466212096320452512358656016683519845828277576865624196378648436899844954109387949299494295097901737426850827835194136556373098608556144544658472114626374854765205081020116254789214575421856185379898274188909854701151014303746191865637407544478956539356746228865881974409102750485649316720449147484689143288226158454288509785853942236549675589207541242085179189765299129343900182701063162765994634959942616933603282751456690200527677714413366692860291653750141586856048614002195864790209262769424112461031101772340212835579210970762533830095125389612264524731998492229944081387335014632885927316267777090225874352361649684286895433931896041783871982222644609465004084942022045454281443067275510667566886020857247800545469207876742915654194933798160820919032453212320725803198461345962107468842240426031542209784039591910033492667542351846912120246124741307777442488729255205811392075563854162316953202113770009705940440886471834361941118349693528418509940110504831185846294715270492012226718928941658167286542673191401626731917609860334010306838745291368827406590150111144555156164913421051613965573080141950154336379047324682058806173995309232731134211681475150201422074392971297387906035011267495067875661957606090855711743228639237264007889131614720330936207904817515658056238048559665414052009712395781404090105740121882993545238223477117895782527927845593861130163315705684932116390876978959895397757002206818695511680478339091474420592925089375422893873194950716168967151672847237057764274236361363870483573374915454748169664274654171390193646826672563086046507393686763973250032530198851039024614785031929541303548761434269758899867374653202209076597403529682902529550528278532487205008198693644474978843462785418309808086772103546991957760630039587865600021010995013935862052957326022617158728262658966991457054737067502064447028970711249606988339731071880997184012914011276935073176266335340559545077008744873004598800138536674720677817063216940087785571075320426446938401262240101480989206878648844022545248679150267763460859130317162582557241440914216976416427638630130503879328919392357871483199970736850262365296910347106815800630053420369985890465046388801688027671351924454546517088159981223793241063261836786998197440101992433639838214337454992973342211943094315959545859772767248387622432673694540822748697300971776925083223260854082728624213503972661672685270268429307076350845576142504157032564139287986209332875069495754570710750219751251389004696454152724932582271919700924533258926730211558910448602325574659931206321804821107321323825051882587732934841695350052160961618027430716784078110067597126201339222410378360405724671492627985695250251712504737850775516426109533008321762404286841476438584930555835838783386014943110284386909721414907286716103225579589315735730997911528832132886254236243456444796128682695332154061912051535082732484576741883667783657741705691135220884895861944184169532028065315561224252566203605738289861667467320171721015133917478057133483249433765928421891422278102196273501733394460630798609540749620822614063753099921247453377364716546794718865446886101265021548710647060688053168217538385310524297840966369768603971621636260362825450657356986621952914314077828960142258080926596654229356902064184064686583826638376730948200868940255347518113768577783955651500589231298353119564905041018498800288679447724507484286184407460810963678007516494427999894523444580329645825535137203919253408209841116014921646993966217297497052210081833250897800312073653208504901157631168979955816745051594661529178341850581135365637755933437365962256967464544333657041917382920700794094714086651374790789003930654222975141636397543550787421806207109867149532374392504347339171157540248829483773957145937635269160883259889986480111109829203663577406643012340852574027936828048043667887635831253234882118851086329143977839629810389434898421862810479573903614636503344610726803530132542872281754380153037994069668054627801563718988409547884264731532791878013865571933470076091967333427907717013067903032028407284869889225547040743114200128652833267193462751716757443705622500129375163090300885640205185982892200478897550593516644455650134433463601483951210158942792669973035439914379131334616045541165655038829103576292183568517628311905688862408580514838904932596452341148427371772408153181998464067243397384674794355666488757925319500410214475509158186311418784238960997972505213070884438975670733022666763103171971225385256582787175716684333806353113383390073272762487361385148791796225549486300077682717466768150019723095112149316048066756914922898647954131909187637197191264529190536944021557725132889365126735525107725509784318429198256946280113418320376126543452377764280751237087184816152927777021606455879042342751248813801870641281780321815823309347139023294151132805055642800309532887975030997727403460394920820082049869191124321755059684647447292886962164969527868167994897942619552850760526768507444708188872847481313074974976657105114648998949181082476494055112646450528829984720999338248820362513654371356023928430821714267589228959161337488357835968266534986876080646953226072106734489255333671795753164142268341561136937330334661227951688309354296858003157842851633138707096480717881814227397988624669637412995247445432577431648777036597655518693904105000059103623474302881158333984093565506653899215816696942533070020942101074021886334128506228685304825567473992595802687697207105270931057868266623337583345596563772750463180613045667042955746515573568547160709102023713292199970025764616788561583651147212601612515841125346724592128194889032971962389496467146400644477508298302254047349321132667492810611718690119115465084418912005136389335582877845133190189695253442888125939167535856461801950214090413403686807378962566662071983993402056018038250961130301285306754643270745052937572476838615447505881169471547491543978703654543317250752039941232381048876344464904836165954811589930114569682058195107291954671085878237412347291192455972119899382247521213216498342793820840390448405261753062410451079672806186534649108630843268541811611304654274563320676156238927562552279685115852300626945551451924405141226047148961194647369709121487409549756022569965305685129229269805072823280668697792291342520715266405486205220598743341621387520553631347833033577419286113321729224489146549603494662336905688278237351755482841641655127026878758065542020026311297105016416292911420051901888721750589650193473740845689984341989822203865843108759933955685257418085375579612468084628735742398682711871208338341288194741348557372030668027607611192548380740394416242690010824433756356661638217510134027430647102535569542383518336507660646647504717199056540707773064028283723622363969330114776613772810773249279412018844245503449463361210196366870267090136055973004260555486617835975105115536140903651975013666475468763543823901434218094813301752681004415382674637003940796430815494096983868272823135409870226384090009015063446516943006715972487882063880969244364951836660957965977390748417913951174100482357302203747097643277344913634353062943090792822535225111722594755472820080084057336143503373246922311914510136666834239828869812719806972802817316684784612530161342724674492452961307643423520120866589932601061640415636458439151780661733215015057604837994170006646334230583354286080350411334686115416308819893917914867834802606273159715179734308945295802282707398419023978028167685859427092245409534950961943372302547771596351559341676717218882421366254229359986902394491035680836373482035105705801931344727220115788977465166998821098670584371150778334333621444586751347435285718115711952414032170407597269281870052461414677841744890621056676939394206414359802764569902836162003948783619163988873768423677851218213332653772473941294068731133256078290754811194427388590843532697063439331083017004318223184168842089480461621095090188229062247774288738231955805926656725759435673099707814098529944395599590192573203904074760113386216134800548884990664494943893329310257264086956253244057523489982666083218342096138300598931241259621978309340743642431861893558735534040266472903634253181571119004677049980288240730219513227749228390004496708177945560554238084291869712068273976427850403067990935770524474469034732309466812108431528428912389448156538691498782910029802664336750952822620475247198035172714259226838682359474468522863867636908698648047553401604602421333344786489600361908178719255068369628556201967061357828075089554126358550084350561505677918614195144935835230926463433371602355760265322634181063849535690798885720528325685906311175338043959238880156578115526840426802581752951308136338183270734716681697701020700443040829331277418101911832696246500395735416884434783625885862565751300991533591753379224840741552571193782612371115151940729216188928636084905608258462064618494471968914489626586617054273092797624749686198448718955002222394908631466382828812191811844489492789812302966912811914115275856089408013941078714723742780699317500786121743570088499450763666098233766438875913791791545072836374311810138276377241062269529052582722050023433276892587264123424249308116654908226544129395069602528183455683375645002726479324362314712876141993275232673257946078958394662456861374989493362787119935443207145571076670583076683796438637803762621848524954704482027056685795263806154480233431199361949604218691272461195856291584312242208819969190228818583761810554189113883618848480538271996221524239321171439260401981830312417916702691377357374199812546475689506873772337213811552349358698632011307107756188421766508116586644112202577410124603153340719498526795737941828633410764409832125438882948335179512356954978741699205254338470677141918639711129372510547658858781333605606413078485561921745425219784451294547961523568950998551063649478784210101306830457129239342888289168282399254845642131396340484956200634720402045502379787375124389162599361482047778649773704729824263461697372606439312359308263494640699082116347358603310623143179044668178461244739612258806844708393159949155726097733028950365843825886064656816974549761930007786675358789986916669489491435662639306804494799427244397364635495728003067716460002370712747665514298056267303903263620932190681905419274904999404905550274898593260965970410926458384205625239709672619435067544209923514430466611687135795558768384816935342890741253429445120764774803047711450542944290661082676975030069608318553456943026390367453216143886821237297305343351240125010234340166930685470156698622134672996562535520333244469847353037374388885271886100820719911536271992479143123308318010783240786349877961044324014176981023195587566731281020118939515032900078720699696013023537185154200215285325169849756271783144508111858385216091429060547965314407927028884171696982508106359558969966840287123520263560357815576318433905559485343681160596507063376510540281621678168069297137496652069162181211208322023915142448413219622520743178385647739879231343769563767418210130948222804568904477688682320391674265798273046499221159191468171371296088502626198479826955561789126475707838421217860872399420797088651070154557345527347308687850613846158728191968892659627144717644083211918734337006519459764925767841957241202693104993039949299459142001133111566827647797683561202048350290090623809664703764751652921224987076039515227499905119065746277886017999901978158404402324421297141550805872963420259375258213397972408320056390583093435770028814243853293584466180747904165264977694420020404007131087586105988873449225521808507019127330470135823815411189585366181023901181097263867752755393742442050176968773023705824749186914948740813775224377790975577060819274625080801725274657355313053743199749586533075081578449812381651485045935651300648513235232205279648694522792943119281670739924635925460059596599519312865434387674106980034414104066024301208528759454729058654092889952486356379279781949150521408152887712275711264793712072356761294558480758313916059085612676912089069565717000220134818957093157116301769227621438998960299239253035080781150554398373010540945217751035255824639224162739299938833809695279900985014913138808236497587130310204128676995895095969331483360265295721926954557633560079729725622490778621329603016651424741435079157877039066332597505146653748651171472728858546471879071617453136117980279686899470725338899273008179852305038189644049277134043951406396881986593265664681934108549776572834922329910616971337151703881019137860938293300945373210570657636639220154834350342008528234082003011182298175012580089892410011834109204534764134789511957107207701105428876650565131786706441500422089260096024763888666185080899717677140562877124597171107374635768797739559863054222388553942825450950111214523374012778183667285515956538344664784924423151791407030876767419981146137388120391204542332455828918662288555003969449271298898440206572884540990574732110302923304017294959317866522473459682562766947993873126151891562105835117234256942764169174521847470686759942667488513125766280738174144304015379055805828777462316402792738022884237048134406100581395786712870962731569145898010141251338308925097421492226009479438656537622710642389713060038516834905243955104034816547875740144771292422078988427519631061798758663149971516588095484410814684054051422004294215599454962532170715810191046432274904527793214131165615622972533375058628411690320196871206262125924221785264441200754655899746157332994651150225161362176437126764106335330514496510364403209992361576734291665248791900101634631627467239898093732576639778522759365556687649444100150818560341191724944063820400249509629636556330761372143146484909794772958252595885203642100053781229707708427753443243457805897919879533596044133017419300470103186359725422546525385451596049073518049124474393950319534109600630486464860237876564685615467798078450940551145414762827822610468292809481751489629463611780091379869984742399887684329385369465695419900799103022651461495607551472107266580885249822046801686783693454188139815819854087784067209280814200669513048178025260072927062455142278296389343682689938579807339076933791894994830473496349756939572328872681214068089399484390922473170736781618541448862022700725006044786423232418306493428440648607827939628995436457338226567253565927776638672404132129177768605003450954450612155066222028552734550733981735375842054127186458350372780682123210454093076660535178180659059499808111100769124456051563626731469811544138725274201481069277064544491501243976904919964040694103712331921759605997015365075975565313446570652586317476025318311273373200397830600457547460752077379122806309376343811670578608425838764749019861901355745301562017864326375292146315268333934963915999695762743061488357134806242229701603477270260725819675341018424104416634261372376665421369704025647041979341181901569773805693055329834183516514447573825535008261629553068340157551110092821525050419251209298079368365471615224027404563727124082248958968996132120746451747213589588665917362281013772776594123680127195166290243024809590686860441620717681318156871123847528687421158551886620615324129273286306532921254834375522419622346429521730268122682580216463280569226968163908442828338694797335960774220368589110525944012050440697199543721067590612413928088798067068646208137232170648683682729116356194381974888338096327065518921938729476050179226866801250965804806184385391754047517746041713591602134986645901069485824787789924217515392924665072392874201830438015222830162648536562956973925480288191622776593945847871082943733841522324219850954265970371412775042396342008816662447001789649593905461436301088813772266946716167658112346620258490733334267705723991471845234193933059260167388454736614264935439153800341522346102098722438337614462310243541496226357381486531417468545722186301133493790513523424998043567935871575643048759355459925691904336652293729577021492280208536639455350614078088337274016098937175798816527090874423201385100169361599061362135702434099624026443640572087479839887491392992805220468792812491872827118327144109700452018758012628623022941162287940645777719807735238746255592137845635353274891733615181234320001841885144471652124876498109935268947670081649785383033315566991844329824583235103108698353343371452141526035307358353538450376062859108849142395508072569928829860405910047054767281666181935530474641384188851214700746578868889924739511057324760811131723587542508026116241862965149806585017670637370214286824484725155048145223537986001913632188809008128610679180596211856503353874973865794520566543238587003331412182316296779829304137160168059640936565348990931150025316160361893148910350661642170126915584996267251086118484187294230626071606595027876347311900599409633546219949019862158167845040715134059044562439416897646451056771626565318645844683543644793752267915981719499933144895996097116235761803871190124147560648305098850728310841146620400104999597952470259603351940731524495206210553760881805733196973576721935120593086762433833467641451425342638746510569590078726920165278467530309784810062884291849545708238067892261939287828479147698028206820719752576005054902431703857201488705252939445587090068924163010395060744127562286318835961797555691900850372031110550964434577886195483044902204260825958427793845397803789970326741090927103317915153620786623296794791419703808902355431640244372297410197562431951023424207613880177383693102292454625928590332181114359440542971091266426041345345660374018496762983852432021123939056591721267229780803618559206611497488002955270532191026622590373984792464299867368447285362644513040654609043694129982859144689467884323241170641331239542431077136611756286881372293818765478657008786252043337982250199951619994928431095975327385832502188266704752883377519423218529225146282108386980773451084332481445920701890781268063388040711192674577694106528211025634311982000579419931023306667360230508195987812652104817904650468518934499984674098319233601039343906348473700730633590351712284445713022714695924672857394477560742128507427576139332525029577988597872450811598953597541858847943190961078594885836950456901493084501423294509503125801832078116757095624024848205528454507989624820760001910195223717366665155015442016034200967298700260463405351548791903458518447635987075910544285893938141527619711763067288369211298982672857763862316776813447006824427195549310654575054427949563232604695487268135853576823078975001493222399287254333757212017867986079395864047039379735986265352266771153469960217191643746619220959637712077398483596084873480639253464901913036353807762245709528904265873886624221032754483444804890227990644854002146578764176235622857049343279627701691551513429352548299107639454272378780490239933280394613603257856380013657074017221442434029573523683828737801165680888862184896451501667731980839999836976855614255889764958461662986989403945417783991936164330948825181563211090892488417135974772631907552040098637287133705024928346604881624175987526832403761267122311045633846026408924068219019694126234028813920597683246960785032224316694177016777761978388272359446521280259309188440652183951300856386424916860560754300297104358616404150065993925779306165864845415736583269434852796234668279056116768143272942279334200609739058018400516242400731215422377622134102695338490712202731905351825859060547159465601556183178327450082144123870265235082396862181030593746408625420024583024063892161656973869684224234846001880084840284428901300112955022645314284993439337711434799077733635236176928411528939136071833108008984032277410169877182532120406629133791764185010717983949667059540061144652188914665462201906320256262301962233371829530414992861716075539986803011844123928145590423399245187410618533807971802250141894463621137911435832580880633629587076783345834782132632665961305170704729722228694679648468576908597202416841523762316371896932787980733759195935161130834377441363846520093374683368153888018781510398043017132742005560189095628918893754173254529350178420073885591272811182323600193769671673158951743212530102545593797139039379424908404561642233843926615651320710638522640157835388962190604501400945393377855119752832100625014415660327887453016139076504284329239874931094832207803868653706581208853461804912940830231356555608162924361508664594283886002354520772460923497498383498701789763116575076462661802929423429596297263179433298319264989071324891332377833303967253391328536144570888764474694703789719324923634269663716080729566654097356890450214735470022274837598874826574452403077916153273565870908850882959244066490971337178013933978358754950958576204576762729502398251198186278283091996628593894067686929000173830986313778445147752995784243410333582935867752139523112851752196406086763788146870002238219789841209419937490765448760966405574428227744855162084652077185516784480991578339331369509656449196220403062219342131194493550086278589593109394009311979698100199234471205044269300348838800364827733847432032077997379685579650845868618824774159460153147471644749652474835917297371239319768896041774547778255399749667708026739308168241701442033874164908034176992336377806202391370657119124833399773796603872940624356984003663964437376286565960188064342113208427344340095903529628134639495644053958906625993790656081059511803248744072652573198280883673807692571399480896768949977286494492202936542924287573725709272846150620564931296435172936018139121545620736112419739004396102943586426343540984542698601265922587818959361114585012642556951877118312929411144631284797137707844509156250953863738971293872108799502837225556329065642453257500299243035998371097110213522522821539527471869742001708212890982173947907013785716407001216545928302868344030703351753371372168725406031533070199751337860374556710597779021213416604343744451970499367079467677076828111049227649429060912050686494724005445193386139488220044576898355478749319025816089354662155033242572320544231350046216234762178380823700171468776874889021779847271909282792984777514534958888942517152536439858142367022054744346982444264293734066191659883970463924475026808465833495475470229543822176202456321277113595120486962288544491026093631241497980081128589313182321103561019600568079523282074113330690997261727405780986225173728508716922160501876880551609763896120630800710612229797502411708878566392333223433534124747761907131856302287386591067206400842121211690082176809715404748225076045904120849620265050977290217573963461721665334425273357211852220555098996239226002718406688922706984566616310407384469788058185294028209097269703677440720468549644877458364065531023694110876935051950130696741242427511181733699713179149330298738489011148259120913858273400351972695887064031526512857131571761779195698843284517324976031317538223865279024080658182405023456616808345276024519781367144302985039662053741669113196158499174096817872786264218469441720658374120283879336848251195202237208221879443808269144737621258122043307638327150842064372824865417661137858388857141360525837500574124806638197199284154934103364697508940972187299071851658896567682071627616492805990841311148521498129201936168160523669602118822664683831965074189135662667544776781947096016474018493254107615190686720579282869802754400411356200899685797734258994668169142182037918768022040824882322082173691609268567783609896353383178271256585400789684142575563949448515343268936102080777441780123585776806703834943629559910510234882148433396059608853948718031273634516913517897470706631742524678144158850019941005697644394009606652117642026170568970890969790681438689616074800434355075747015343408787183774524955657361296342118657355494575640921296902735177917159244266429426183534568769992560060554832773980839293129160797905347651544642878357560516054247949595636111526537287933269326416625823465824627500233376732764440197435617471843588307902058145821017026875747109711120335820809652069199632179425545254061463444396624419902793511861310796811464955513087911727251894189886457995522337374398718076461580325971050861673460120737159207476198327132200366759562224390003530649814019685224318461728335578032361415028012665287532297950097987665234604747952022754619961007280668481404584257792569153622326173561471506314184005130854291030142401825315085272703658234323109147807084118218214076657284276184355690992219983197459231620398218782086893950019231831898980356146888628345819283322639222865465424763798770130141278830079497027013233046960158919214447775889692974599385010967719918755697593463844420779119599421922517590301208398244760006070621705652475313659701747811995909759083997721148552807158845119334726195144754858757956101267085760110547062331065675195156098697663666179361503738903885542089672402273939626269378441864896668912514967659082838881388512436870980793574936370520999929476549568307627314548003550900888055250837702719293199785529117621481753058064400167121054757722764810110639714463500204073313956721997346993678539252379328605885032458623595773920019729105158603263198543762514862200628677866201584883437391685693960427937297134196105231726203386348487806542223313323169085976013727458716632810098007594079388106867732056945186664545244872114965267046943263656549880736643353305640145653821345484091754762039405235729358469768517059623489221512366140123509601148597906961324394558456321879190231197495742530383613568988595664258056679725304463090648334346473388097014010440750895475320377355320318741283171462606432998163693190014905717951721112394385734092359160177038223479442669490436565067148942380803498259064005832032983465805239059782741276624849164957282996674345629336669519652713784901636179392857121342736494984436309929943480137489464712166422224289627463122761152711438975892303681748492596857959605901706010446369342394691974184559961575698173373958873007917920031954674741382663672031183889277166932881848061292494251466550619700145087803845087008463847574325751641708220928370513823036478616578795770666738211859459378055542820330698982534901231454904188897117142387692773663952420630485035817220314140098286023432838041749670833734429161865729059173530390985293188382413950627846522557728379777703164742462855234295333612519681361176508436603208657272646824730644313616243245107966047223533849471389901014273594451299658002787502745473972522137122236904268066745064630624316062606503912561253609932573796514273558756371089220929534260759432249975908525111905781244587229276077144508253326640215717391083773622991948694689845394830743279870592677135249059852017093131179746401147930838407596532871665641130452070824115611431068502046756656059103585969741175704998787822991286268061034677294502614122553345216341741127937234778822913041114152226464461234781461710536559033948724525998472313690824384271888565392003699101944098322293884576031111020770423778606566931716912955604322113553039307597981329143578877052431766842831548171142499798813265249016973071894474666916204246078444187026809076519892969397839142740775538969933409097781066863603986627867232743221591874102292693295706063929905246780976838907862597072610970652175591029637052928203992089789678458789845162419489309160933675931312925196845564626200959694606194555004755425363755960760406225126926151570670205441236194642821489263924350188004343908312465555122355276787306459925187108561969935463082028985024227161044233615054724903941678979544268287638338056537655257266080889561599837171833489349326016548380740599783569905708558942616625123298241899815352006960569604630159306645480800951639623054127615636183927723726465303045341694307886451973748088952158229012190737678728142784861102541368695469612443531444579608068449691707801307362597943827388832550874145543343560369555513336859712581975590920966639984306327946094756420067912227641054277457883412850482029545933914917120437877325752965080664704342353418900755374634713933785113788518684881207573946095412580231930674556609242834630763596368463797591248201341010380264159616935975892228612011434917042496089154398525775053829274748522195291199613663409265338427334447233689632750424255087677409384383648853225096237695539760174378281097902195223484133572591481002212501449315013133247717844820798688969753549501155890314562372659581396131834237165533567901918631936044536080626820464217514861607492426117147366119675547509313674896123806804296051715725185877628335013099007351910188948964159501776739682380033118623149656791542087918530501191020084229673100510193386205248204870059056385089042937514675512712526909577508405640054401035724393749005920917951011108580697562734106868139939640030444725400904439966549430053390941827790519389633981401770936248293659429117478557566562440653703165852209159499291142089230723153515907270486388676926935524389933160844797829544637173896076835222977854176188793188359110571808221049441895634195684572687415926959442153382262797638791975001877358967353687032627928247818337211238084342662152282606659949081429430953504090332025976890194763421664107812702120681459257327452348113539231556815965308877401154709648493185911804371137941956896552880413842868717733995768028918081758417062614185957170182304117458896244678141258364597002499950770939332132716643671663354438346894148822487028336322717645173799202709017514430912019557888418960123380145928730006176568582826998298368710437679427060743478800465089247331009666958591025849759445024176975789434596234555333224533446630259183288128811090866129896549638249860178323939963564285119060731392691537758476242930029975498100335922134347771994227642212291247555562165107988716310905390080783897543048282251460215362001673408483030146580360207364368696190223582164785303061144450557795589620662678199611415602576640051672582583448058016639764361094663961473520338647538421117987369949004595883445065559423144705703558240188062454447696703823770838406708545593466619039768327860205592519008981171777014519782054001510759282614265644520347186941096618010276955815860895059649192208129600209767589496119054912131474631959266847616987278894037968157271210632171809638130105385660555041785669537053428408862557553384556383308394092772422639890494451850731854502305506382630576661170233311683843256350140834876041858430846545863016032661429212007630016402697987860675682904060328967377071780644066725773525740031509142720231314728664240793976596193412459092071693180593504845572834444894612203464121440580759421780002578746609631631794452318515990087961719836461279690948007913923819986280929373029816440135855042199864753128294141185103826640087267138506461333269675176135589557524611488101852855993127480486433284173140445358535056567001358896382456096329880766432072236566226875977196537094845873455177514096167748429660759551374335462048939734785299321425174966430785837051721102932778519010683076275333649163290703217039196676477014340122619090235644936749417097282207954112813175101529204211648901741054736286103094868147782943254542532810221981667333308493318396935793865985500703761142339382458675113095715310257777575306420940814461305550895508467990877968874089540063888580517548038521894436941773780833676268772739806887752015152182213474502842559758287780953374875594566625778255163695831022296055183244690313478511981789566956944927619171599764072646187824669479935443889520452597471195805809295750792691289972046730731813186842452165330231581384777550939129443026788812360897789230833981786018192445016524870173355095973438406344174997550976079848425361258381502193645198203804353820571641932384766848789567680392531795694828768835385896703408135715135700579980285770832543826134674642238309539070664856478339191531459143849537773545700710908473373478109793001880990506652632877275011088684273794032438777015494984469136370792702001112731224784034615411638560089341984727453334589762866720528587309592421299824440953946836155848618607792131855784090881716500033406367726469059380258195484068187229510052216258088865168378469025475676297760333444681916770407664414824193369868461565448065135690583849345832853065473691267948362701761057666157085084000169931115478736193316416140583849885291500238631157933824235473312599925311645524541014230711205786637273905684685419729952521659315646892844513477741977895870890088255843063694148387097176077051234991258563597950785706216080193825100829068751531649050678095571863337689039156162014870821523377397407504954327706758529724493367858324402676931621019905086676165931467892906380438969529337745293273946389642166641838028139277281653167623015907224383672443098978777291100735942205024082579952336848308168301082103996382710344505051931462038984119733737927256292960363567435972930544170807702896238689447284135718708722230860970084011218904325030088288451336738119885577656859212202001500114286900259420065006292492101347874672198978285024907117451736084468163032391229841870301349163049273418599617001811499914594782377864852560885463201538262679815266487578810828351524221419892606263744682791075406084049690748777034934083384325802970263803927783565728157470047104291176270066435525643745158005828228535946114247036742803201407567205272579057493926625995769762911914419393213856716908346836813623188541086626119869402103514432219621969903929692763968410425530022037497991718290681273272985902266769777212870962742162975268068908328553125598394164036634785245013992415249996400836800129134077706180398757947874997459764528617642777109046615434851163050932331305138839570830658459563745665670269249385926007043306189429527388900085687210028587832547523313301446491488463800438772352069805292277678665682426643730713015623346624478405224893275804050154685649037289520997909530767978261848899389481162230339816530245085599850893463988765677004444367249925705205767435109607725823480621567782280644930362190864700898120109814087425486630412059406460282749801299387558440054880952817980426127229739962691214293375587082855545421935980828513809181470276810860616279158601312036842077573405157129866720665773643779561241218504955610541663932780919700458607365699198555127547828530760010209775734346744931580602721777441477199254795737270961626028781638949247382471756209429372700243391997519078991509615816353338609387507137997662391347835318990305163453256458179360908206358709908000076742964371986509186447896193400396529634394010928935008352316556870354366577337435209680962248791158479136762389206376093656061519292164048130196093162098485574554963742111496089697427261007994987632748536248535772084193819535363572988100195615430121605046708269992602000996873609280710929417189866613247331237137814826328158962058319870878577521678743919319806505591660107709607801603978788146913451764090917092863116722237818270353212936239670474647062695073146085727410971820009708269377600747665648349302492939191152056756901585830337079020919367336193778507541691657306667894178680737139435169314344496447866579156672234595186078835273635289080415721368729634713431961385342190390112726858193822229101745321443409418828052989254121350719693867984931026506084703245286314161948956944622470500627173277165814646136592579763217834186444520834649068510257514420817095321524357659488925960411723972849847410778978168633282794311667942578182051201979502812075338185668773834235417406379307235128452926206944540656667614164905236411133748527104786424811267519017262079738814085439505890478290953626756476342270390339135884127644191576853188537285176493934757772425840460370608470871840790916047089541871691512515055692672962294319228903515276944738842162058503055093649631437680798586801764090517039453070968753442457701150486016379666782112263464671465055403819826033649345554484479691765553271118634604249193567448949007144898477192491960300585524181699936842114766259926560717359181566290240224898630151864164794316420796343802921688936093915833071833816576493409510594373181468086177534584530707315332606077821502912113355015453909311322652505813484771965354725504097568736127698732927293539455573781238865005421627393832225035325174386286851668222842984228858587151039508792893925752575770908096635984636904161124027680928177116431396597677065256108500628583207727127765938375982131654586374485883914030588495594084095255502890526508141308297376929781945044285247309521500070294390773012396673188160815500034920710449150965372530326469988760167412837936795240468419036344478103196799054457598590380659500789930017127560898221592803411761772786671639968111410247766601981596117195691881557010293012960525184351710641519526570722191103783282369632633375696554554024185402457461784423274152327519551686347748559153196502119432374369116160009528081637349667865698265188037949842418945236358663595286827891895719891168637489875765639358952292395572442889223232908128201470594996380670891635379986221381942059033296345713781795305817480348323389753246250018238437192887929014605674786092847311548536934244498863708465683526747292215324458226312459619796155544795930976364486702077886250081688727283356692324192477660371100762816621807504146039278418084425502462086475613210338276725601228214345023599995387806930266473132560433409596251825966168301135898466028144441326037306940094722266678919063956683211359143050772400863560496104624140724854793299885985605836472053743134945587920532944200529093624044820379698442215174605652248285408416083096495949388428893985266204391279777054012139973951633954390186517066775668063828767547269594531210908781848032561015304507953816438627212492624797157613302777812265578008630011118633993571197437718852045967761053947068074980831965665673800148724972243620337250418056464566459885206006396817964796056542170240257600663880112660043689880474913035567922969841373224246362186262480512405640758052659995767812743736874871456669496216171079148418588330477244283806760293458825390269829021396727223368478950785834607559272237018818313957242095412208432503190536705253803951009076507695975841384896267395220438330024811220430024899187403325510750352259703922333706723641536390939724344739699081089320744412680374113425597969320041939906881204340551202810889162742674060503778609997176410296628516460899752646736075435183158934214509139923992083868266313984034488250233060987055917301334493077869695256513113159809427624206329268909187374754235087521978512920063431126343870815874658778737843970598783650626098630114881166081587154715128558862797461971048081065926238399876596744302783322033793590565850310177243954425501049966503054974688294379464588422327233444274432944897700806560828531753904878519297213309326434672721507182886940058750753960364600761187750555691290085900038428948167895038457726714773269970870661551693438371811277248811237144584703360003632910348273566870149657964374809569044580233784416977338047132204911278465108650787352477902913997637380881624354210662443408231178704600111791095511763571943789076513008581084604816893704040766890773789110510918187140912751734222328555139742250292469947381605212014674627491397548639678669673785004439235502766938141766119076910337971431545669909307517460228769913962373765626419902359801211500513340972927371528764255758224366083856299304279635836034593600428015180461877840713087839843758034430485012921388087842955031108108798816377490014042785881644990404090004884417599455298344437967782618253942242490314705084110568941494276332453499374868717291982854008485854845177449405578453206430346086968811407309860494189421320104642801819954644625226202271778455717329978513415105809167320926921433294419006835073591789304744086903994316477134792651897357007434085894243443184424491449847766357249410667835026473994527156477820258935945092093571525180807113644273262305119982922310320746068188834316075275171898761568020628930797149649277138144309370599111000314359487283218005554593630078792646686519805641795150739442712490608565682920653084817480029101981445160787299506039863777852431107166636813502995523443983535935447922815454349801013042705918961816216883281040112631382186982750020319744303294366550939019782613371422906069798280485850415760870144672965215352571986890771342393606033033619941728286413256314995884000379029106507494815981350074419791745187905922543333850050770703733802402802817362393032660493491953133074727488180901147482232874318986851790631423131319976994820960599353893522533789188645740706736652254040822869049233464209661298167253941591106777783697739128971417594924568732770362587810636688773082514782811319195389455907571928175861159758984183195899791447696264122619509206200964801673521977988829820626478988800833826324762882282573316718183375931132315630944922656151868836925892548482401537214202549289780406011694438791830694661216470794516068881147984415189395785409009093410462628974248711612856293441596978625762659368257459466639260456472089182451505889957523811491446159909564710861164083396934256768121265472540053657170614447310687140806669480195786975534334671552677530510027562066959688422986462760198094474597714067594348258000321210769004668391167820791024131480325220218316218194038401140383366377352927027020842875126233791900346166856412388519558928598727854093271999909380863323945263090316453046683474677018701694693564445979236132321207446491234057986980814192078159443037036407682649279592051802500946885078412113921449141717642993630316112272575820631723131507845563231775084087408254737691497535912166356548730565149511271499287209889869767213325135173725782601494336767632539520543198726927373070566423605608371964308405051404907420753500397032082861299374733780280275853668669606824112699571008993194911411481366842755907479719928510926398810552984152906772616363902385084676676069665164886388104992709699922038247764619248947301134287891075210184607606923910214741573480688290950336102869538972438858471967453202083452408404822099256177817595242481915208924360503447275639593177344269708368666045491126635121034870659803891544388376529176119869777991760108486935865935760645856909255952693015284383730211082281023452174609740472637848779801419912031320700698536756255314779313840337134792640356220462567141479459208729531412491068471398158390657687659173107331554775259058591789681277038461066074590927649949536185942545284189852107729629302730924704323005498709774060748743678432913134251748924913560505741292214741835947153988694359608772924857847430426124485959439867144757554302791853007706441731446363258434498364085558318057193670850070385958414682101922264689904485410268719656455376779071361566785141265602223535693753806279508015252497299897897771520352948831807772764955097647615639153227431033352239636358685827914742162399757560927080891534667701809395780565789525176434040934928415051225108756413019091360807168232387689091852951821210911691044313983705611059801448712607507850063958156052920309253855339510883677644711473703051604084690797631348316555353831055995686816422683650997903852292733322152723283465598289177480177478086208717671634510158788552477525797601050334645794276454142869222709319462707522549164909453367323114464443275940378981572346631154302335298694426564053976320611376714765244700783707533208983072779517606754441587486376274641218419327859776021736661320428122041767688475072897087297593734443275358811278453625923322292682643973837206883468790527095352737679020817727767194953226999621099207529123949297575815314279615659395260127275955606323304321850058865851769813932129537645223463439065912666676188084921169449502690381478757345007334301456265419358237430782083678237982789718414303080892684099043098998518052936367810531429066954634942500087253662408311176403358160391829698663210643252183564378783724064210637677493207170111687094006726439128270634820481504150263379792456152269148329967279136578152326087615302892781941084475934915324599059808092451160083004143676233294546307070442402068795955351802494568088717999459014124721166770435413410192861410792491251400939063564565567733367835274162650677211582037315242958850524697942351554085846198625394030340630604750804512023542449760937284632812811541392462380158197735409374260573940875645875212850942553240366706308766919654018411863253805961390886179472344739970278482180324510638765003861734194185453630637600428443399903868945049078343774339381532537116122966360337590244223682413937853202957382802251856556430923817763843056692682339011493375816911465321832134079682301483738504584526033531932261996555454552098615499107179199928586794355579684992027555801554481770250216170173298969208584950879995949880600348466604377716575250423620186592949428115575889206392660051326958865134878133843289389732127769479220411266890892986785057666094218030597069430336420614417119067105662813328770000371794196445117108070752172848782618263621212628988146219060666780014460481549426918840343853306028192303385244405970842201794025455148582905029640128826641924901861163602392401992381454069453700268243760967983625822160014635002899375991498824007760607020445075879083901152776243345553783897191468521243192836251756175204509991202166005927778597308184633056980824718086999270053926180775271543862197034085874658182492811005896766835646088695650575328236305453768696232007750306359218929368354425857252787978527941120163521928377181999557422601243506969214422890235310800018788422522067843343235541389705143249384654441992550147311439800106236814177472083811555581663358298630886640555259440935427047816797857812165424486258771340720676524415002044559598908045380197236792435710183516880352442047229419113612934572342465898010717361762793418925296114162239666768918749289389904051352047041760812358117938492544831421269173915089115596176816119504917860401705576129517737848618994967105255755002382315668830457712949567150885700292274864385105102789057332738509845691415042824062038118912110283713120394676300733018619868561375040829401201821271777253452889982416789711774733077136073500573534066866053548156745895886387196025792214871790661446554815411394127618799430154133102811664250938190392887713803699967022057101782401769309076166722761665974050932292249616674523765057874569290188982912265466713431300535482942939519765554095528125608686771420212739951120137062446214720678639543417528466640441999497190718902767139642070113753455889171456549009744382731787025496083358234483043834696751974613024014984409459848245722991207300257801248496716072960027466485475581229111780484173707948847190651326939192286255206604253939362849772112144871051327721812553208154192347570382877318949694914710533472707824841399248946392390992547914958440849571373504757078932538623211961969092680769047298276387622931385906886081262452071545010804972942453718892198071378971581942525277825792882727044874927902761018301651427921064898560180457834566176886408394849555993121115935970820383914228308339647759994585599622339114719945291783398270826745557253266903794143874188487248157512488787575337849323945304113569742563072629971339723937757827540172383989211352551250106348255427583772044791123115338601418012932886056483900883847581514943206254968010556913611071300028382831502165557879616057193989068045586948631114793130514666882879967010442690620580355331263555647249145944761357542813404440328645771027266305647077870484375236245295853856452147061565527203331524921675448118563221000454109592082288565992943854193796436536905942699010683884276157364741368064813680708840421777938402143801183215755818353360104862603041834883755687846732621839147687967537730965076350981341492109174390427245791595437561604276992504754363230523200019182373809437925236795168947974662728003855578928866647399313088382293479235033401799950503745114889815164203521597628800871560523664307704522262517473967965784543455872084187616411258152366550787009333135976484721728138535842303167194116857317841486992637239217872254353159253724314387022854653506302918720144810392287896550413845721963303004240580153952471912824259161436117550650748759573741389385859237064403897749046646989341925207142422348940210423971098597868166992779081804011814301659350044364329812609327211882569055627960953924743106908686783713178341869334026646766430963435435917724944843210574153948866120234876989473198829687418245420636925416386186903741998189597524961042380999673438028687491085253738357615452871252071812069403967093605204099685825857270654493508142601511401261613966045205278351366177785196856245916302137521689979315134629529982988765283693698955882581684849032021388730127087822909812379555109233907464107305457191377445238435596252357625780159619426530968475713995822831090290318689987741784167810365485759244486173594587240751995151605807112058259903796045751820203800695851414492675156827745217508286544432863439681988136106342282183383867241587669385083253328664743042159824561850757052862817201347646852373795555369825328031076642519315690795711629084506459680233054434540113488201254989907202622009565250815206309242541358778526557306717024953227282045637709067221131527326178208502750258524610147296426098884874518325860465543068650134087650376844091118617405119918460251472021476506392779586671632466399896999014111073244629311799567804111305762790468790227936999144436892662257435087353295286950445675093866176384399425900482644128306385011585407810471126786056151241662711894999801420231081922635273943933306047833449438223478684427453432872032089503625293383599692087333675538150369140812713114025446952156674421576795321993962741745583627591250892109254633670162072642315701660508818660052911806462391005726981305944824889705248016193278012268841328078883711962933261308661579864027311827057512803650887215205019589887144395467665342392892373011270976438957862300054483982835999051963896468903239799813255184270357660099891869178103908810714569160822277925721737397610921401672037904313979049016133921898661783712374014532492212345097041686158161264121174291303074896397908333588969968528427399590828264648949719092437784470465419314907706343168694825133129781022789888980829703423753986420964264671614481512296898712393385601040050856322341460363825455503706704547491988174426372040256848491616913014625345191302706736975218344464740371603539277049859277449416093906189682435011045942389231700937651147748368026655011795105980634908010741323250547056333006732005521947687504438658938143883680145658516741390806465343859341709289764890766953516151237355535799902188109770043922192029047459161033762759421864260129385522935958394751957715297038592615528505305722865787930382305904213733579321945494651520538053317794760772393658173035304775437232236981950249692039950124611737196604389067197114233853931253957706350096961742493623955476814806764224467300004215876043331188446487377865823022064145084545917928942836939234949544014349116130647746740813853216464227014910493374264751104835684965112145908589867366301168215334000877527108185398737675445324270058109523132738686322265668569985923016361284962608391573851707030420134326973710053200690053084138807676461595791663013160636823302374854296884472061523440509614880534183755769016774763313054375679363677759975497620325431466935642168591870757174829401472776021873596124401255236205091710434082115070961713414808735983759048215165773970243103047420987418210049372302865130283659015486846580815932934673841190023317015204204237415893827025029086675056501414021826010894796606643371214890251111010326038419564181076715051541949756154299746927558153179462080759453158124915832323618695990822799030564566736781711393904087631595968450719739417012827799550739629269917375369138100924737731726237924560801326200860322954019771665193300851242561909954583995197649279808332580400237429535894370900045433412443780967168078496997954497494238511512569964726790814721060901587409589832569997362599354144646212950509454666553715010541988461170678748190295290138851234931566001885504755039205684312566133778637047643880443001438328987283211930384345761591039176969688193280044657944982328326898711807410036217264055092556718791809844467690012426257540823666699492503272088766867488870340191161738893659160278862802077482259721615490479159840881635153017183838538499691250520422003731134191017810834442594303221872466709523636998334785808611290387628895970085951465354834269894830107266471827366443832979479352768825175534076117848586090159474367995124399747369278464493545721800380885425334288561708224675240755368420653251994671699400155794619441081430741244520720198298301292143432147507187374308881542482212544331063664306497849871107806924436614828936791554965381664299406129901132261681930742792503549552410824875965367582061633046212743278066928566172979120207462849973657566856896035844597285697273799461469017371102448312269810148959351469167865683424800059184445242027649413286600671323293059607654131395147163636401227628030590271444660610769512489540703447727100364455261360286122329885467114845328159947220342028051319284843243385469488727479059829972686437400061457447240469149198508638701264154766784155709893005415707095162693129662230665883566229839749323779920946668587795771811677224195958535323889199017040121571768548586180262702964108760332580391186741319838896043694791189123948686143921488148300873754163993077151024836482352037052921533259888433317107407568286498213977602678663529734097354449940191520361720312001448978437520384381143756797199007055979899797116273570163427742079284050701513453805872690904221830774698777610260832474120563988156986637807473577535895587728045413881003830797665494484944039948553121345656554675292766527977538268449986709942218823816452133283481194105385405835473732971405720165980900061581291804587466204587490922383106862537183447118283777243451701351140467916381716597199293551208023928718844782618221610774111316764462474309543711148268543797733862595633079896854656033979143312625203008055976858658316610969715627852083488271169520727140724495990838752090068401180089079601101233237649970545791492639902659874995203081666278585493502905269749311781248820927879645037193921872556863537274247610207044285342805514547321577908064786782860760333164440578837437882299581904588999846091798772429187597767761346836216557089941677266815582199304328268203033186666425137488284159932549961952914045655744280641613522440677989986833160727615528911686599143093287022345666765321891458505556932989041002149461932797034408455680117876579048863220966074113150616179417723313629990594395622178429902156817953571868791075659162861557467640945617144084377763809852716617678460155197151745153502790661181569887388600392418809841489749893823981842306272006892354192033954705135336462066117781725828341818929410853136264241436013065657157858800597658806998807312512404387350811059236432305772457423652678750484933110449036285400761591719157250930215433999357799135282986039066052001516257403541367487314806375826894535522885836014464896391745817411386402972893285492646322602233062043334238956999550786554563510329439421882368414603387829567662331569817825764519331718630528912228291523516639080850336243262908885586359611635044830824332232846021820109414085026766654722846393343229029610629245173549050297868422943617793757765971389140013091425291120722317137682160231958280400542230389617726430881851397903420508122320518604419117434901518272201254450227713067551385442950416644188721831465827887506420376185425709944310414532191057238778053485335765941032188306672810456362461872433686609009296500230483881338455483955171430333227436737701188221118598682025903547081000702662964566438422155620646153422770830971075619547190117517050255031164352280241339470785850145777997780004756449366493631789004167444849091275583616424835273409941575908988660130161532113001866316799849323475901246450933878113188261283500094175227470612764559312813022540325380758519779209382403146847452071183739976078123850052856693736323016203730721825192416950043431783059578391498395147635982970126992135662910082887996035951486934574481090946891135596278747911250518201081233882888746445085265830839683782158001590206642250291780015457923779926888376335135268847906888904535473496518142501029843302409126608645208079457287107650904990178170902650893309276165319917543218013595277576233012264079237440733287247019446647126313772074967558670457230911093548041429076919624116348054499852675372139712723841610156313968544246755024824720193400789952864301686364510910529345625798631304443648512824918012330355983113305053077919418465644435841248542491666547308188499573530185698806232439756063833125183317293373534870400126967598124032906250270305952821667221222249999854402510843120594867912007356378981431492643748338418356877195662862344664216732803301226143323034512832062329878477257431949068898950785271650143895297307597746867727246284619539990897448651821610557577401624876357371949046605059410225056835603480315635126017750733903236940354859981821043094231190538227963800662132977262210989524093393976628610694408092291953578141637467671024319235959759156090515879120105338524932353073049191166047018070298173359580576213138997740861617745187285165454734572187193852026528733816143229804974888195403755419086519474705123348745810402405679352884070795270008739061773922766757265595066766499127118807242985906420071376399706574888860603765991776926230802814084684114117504072916579903824302866449861079098022541517112214503706070935428498254149561388923445968571618625191397699328822673147839129592884011383366565834991994427276059562549978235876545503872609569577099313236241582104454192587340430618073164759506804051496799452346157647570120256179633205165599557155535866505141025276366659340872153389898017127124734114841094612145016648008988135002334189030902464184407885415680312159846550607848964994144711837957089602583410697078259041962933774682743160006880002384854572328399647841467050431401881736096417831946375217634486439511957525780604908390650793468419257956897662461844379512267569979845513966378825740264907520102522213802170211002959777857076726987848867336412959136431444750051662554035408733473865518989219009840123809290494173940856180552076159970057083981646709045650642161397272156611753057229391821145629079531775318177232160946597564469001554152628909829884584203187612736298013873911494189681561203162440452510680991747020008196228932657346002430989124949816563272933415399510941865225077830225126221522130982463157012854141618820742574146490453846663211579717051745838976156405854878923639516401320836018333128958591743027154752223818003464897926798574326695700221042928769947245627654726784793579615701047412894188005995832511408763409114904222130180525966346612001428442855444948866392280692587321873953441456048928650373794219963877458435686157388855601882840509852047172791013332518591575659239659611623368197305977132659360158855328686497644175387074979883574883694923235265941599546766321283148884422915418291162882804339666998963042438347776495586828617484457790563269068399552510329640872515277650085285174489352884731530761701393333414786710187362066134030751457938299039843398615424429915901038757226068659329486673576136959552004627085965823568427967940888325626997627723590102262813822196260200905418579625366203477223850920187380021425665004459294868151770402588100347041694709427328460149910231351360066149628020961984232401072095240591846370963446320234171558342433462144027356624842790860779331338782421336331654490048496232246876648571937683917166015045654711763699194435292795309706059681861493065755439493585057310552260280758639764485899823211789285598272159748788226485699365856743207448861494492854847546790381210828570072462949290267598851910647356518834835895668632499748567290417716700268279257918415968748802609075217110643874575512417090975250470128841600881068727607797684640609463623884012590637743291543829432922265376153626021634810799426639780110374245841643880657795595635640214443105931382918842695244061274279048660688904799220329599560093421823544170570388453873542125336290219215799858090613499958791130427065059961074706064608258337053479079472064086644041986020897218129523691876755552246963667667777572853965576138444874943245718492741248160098317920641343846162050962424185595396937182998653635723602917797935224178124946372208453998640140051912689823990459978889981072319183514568100830722534943615418549349123694841353162903841535313901322062069667961447633474322710291001069139170269354598079487526745645240129483196946737972866370324134578036407679495438755564533846922162939502700814546835425675093873353984296679634446267785762877191719760233021419553490745304610999776899721718037948280162062354334578206114855900641056006746056888046028343399316101161868898527106967340312720505379755402064609184970854409981258773313140179531726942755131741917543499093836831524801197537703002858811455832805725328718209551502505213125485855549571985883745412911141004768143810029257573226632967626839837613933760525014267877122262981999234999894722138993057749454853983295537779450538586494244360684441238293033221882008446621851918063981882302750078986729513180787491514026319539173802227257950133309696153444073682534431792836935360760189721524511919300437956551193123848158728870491671667360512069539620231672003381670435949630770687169517119248808280698776331985817263563355273988652801968372802886420641529993616969433579269186028646554275915379545007944456750728291427654129753901177361028659260602718868404995002964668220088348854458092192079443218950243279209100750604117454472728269614665015843966798511439310388983843523107596252615712035494741721681070717188512020661604527601657728146597090891308253875543306745902277247462866901242602886510342682398600053827247466016982621377665644298258335820507558742916474192615915039848278352842748197315311064942111855725119077199776777756261523995015016815609756785489055478751872735688873423149102511009752291148116011287811545371835123502882198815700563180723360137110265353033142980445809454585934538963951317844838086721236557344209799288229664546504218242572678091091020677348457466447718440534543398757714131314781115926115697877219748645987552064317311058966855355338325064552154842113365036231244828186678908333478196519500043538998238799078057612417082836608633574375193863141618837273772749324773563277347897312559273632968894496570064725309816909658148725022697195676944415570449793726675910243935147078281883947227047628726478909739242840694556121127242181581210182256568506948416070331536313554909696480285631574772624720573861937704662134828892130841114404998925518181264949723220851033228862663565337305233801972081847253517755274711052521687830988959286299002282056570227544815640221034959525054765063060592405372665312631190302449229499569769857281303981609706709506670935094918806503429619679350289376843708866790122800139927770841271600828415629046536833400564422512226317671650484891669513241275232066360165893660402448815324133798321452175402198892917104542173263412632377504025065550353205823534219686489980284518106118600718950520775056221984734166162920561265854819307076710895852929593000451293741210017927597281226453114327043963374946208212133654013310215336484361127699200138339460065312000770345893767792292142150473878400320668410765979578375101173097861291905470652182888946881146047905293918991867638803927403392582533293829565734344777675310599784820054029571784520981191036690022022729042345047733153699871552473440110501014686376419546259145840838635691789270674676029924750732103800986283552688317534621992832151317962683871072719708105527907526639084591006569423674122401952506197158337298406165831530108120889785369316859644229061479053989370516692618118898237374803373668131255984316918348034948693483349969336565742645903693889438000175069099780770554407148241258847435247390515185264991964942137988220759598652605724393738735333333899470472522219953638293370053479044694259265151382651348694496154711074036130242811530412552981168341961762872139274611878621164229118781625654844503212614065207781971684651952957358702773149209423120902550863376292359064665014546047153190086982191283436685838314303373524985144989043699702883570566211196478367531345128441120809354541258801883324620398479474412204944988898993987955871498651195848180375544231389113075520150641357564674648374639914855414670672730934984912568714398114952042160388539303853480206925994082568636260800417713296728572177423969419119322851376205672913127711366204905395331199701345633993621855500231834435494309320663212934775003468783066156607330508976767797349415558549318066398360389109325837091846529213575534117575538293462574186979807361623731796843518348223765380779454200124930530285007207557395398038519408725526377654095566317957255440101987954681807030041884392992003255755875325414075418105669355693884076087715779211871323749692672694186376942228205377398304316120613931665890772833053819381773527064210787802371084101532971713485821303406066662270877255945673755200024461128765974761303048349106086797688787592216991379898935073874859500768342426470154581017650726916227099916163916079346623800304577368476761043557568675604656061942251581408310622109543859175419151530646857836960724740171370265601007177750420604639424168591393584434383115500914218599485859393385774409328213429603828000070341811079185219212169250609506416288245165746635257732381555085026622790004541441149240579101839967131728659471522458695671427044962518151704477631117584994831384988816700271181148567786118067014366231364824560142345384053690858605463673751959475391029391434810397817135033801614385789998349297711673302000757468611742105287220715978911744806050316186561778940567165597431454075984714746257575213944214075273370020163741106712795348050390593904712358758669029665527311068837574311193971122670426408437902844066871155156999630893491090671855946415456447125975493083874767588746446854713142324488632621370937364632803773808769774382972309502228012641856597064952016580550320324074364968644975929404736959072596507876424470627001832607180161979144055935467777497995979732612716737827300750849420125002266018139908180821206248505498834980250190022953131703337901164085664590516868578518906558037070236217889944886839056290206785695935790643003654909982027714268236279137838880769756690524686950567808255803169253646574672193383555881932421743332263572299000010234042464001119865152460852353093632850583052026639214958381666739959622611174272575584867698566059205866062355314372477422804902009894759988364664544672733757139852232968990980023099924224102053931875934738931095044282406089783681424783636918970722708995838791684904897917543437678886504080185187390272831731927577623270288445857001473633639268792485175512578878363751106239406909558003293516719880277282590423958713163213092870744542543764659943901574845934277885750925225038368871102260286210271178889001396678083657130137617326166186750302634221238803954352269948490662203508638819867055324480541185487452832062499290108660784792538749143525813496233674041043343768813916350803356539631161541426417402348328786943864519287349442551632456823058162329325035805074066525969003258658322439574008316127476273972253532791331218902505673687327506016042156243063435613796599222563159547458525659992946358351278970215863231285740332574575116354609062867410982986367933983128985522343757379039773492871481859466636169573052105123443079853125084756326043089962595498389394714935019086620742080704610642698665652905943505143239235637674897861413455721790724809139167928143188558687079665340655155708144088001735459648227857417101352712248587767211137390861180847616439680267577657845374074354867791668724548056939291112262486878775597961063414087096372951402641403239175601060595002908290539326680802850822398343578398148074234952194156180154814441821817841257789797414856417917268269929025232134988563603911841119642724048115424503379145235535132111526517408515557917729981236229837242761795808103129241874342878712385838043568780651452358414380362607331882492522598368207537868608776734538299609964903343260744536473656318950650286035988130901324151672696659726420901266985008979803394157373769840423333161480245360213393626072675302304817827271614248338472307225537285351767657529964746576156059999775736140655029162839884501937205262371746457703395735138038874552880067029350608936020377366175540763593508807586497267720569858843673359743270774808892487333637955054918623120677393734962963757184696590895419027576261018869298618415136802329058205401089027606060105471340962888816819852704935075004522638301889933796585519366737813337915395040979989992984847140377658834304233132552596411239988753788199138709059876426109157509038682187652573563301658267502957968892088780008535703295110563593891970945927787147614570561315684859193939193183833195890382148218359507090960348092968309594085630410079027582650963376925872647413848554989860898620803367552553751227555139778072718627017347392017086329117835166050295275973482710605603530971050150864920590816889340376367515949232233566603637242204072752091304043263372788191023160735604760157884491434436286469440491372778837374800711690520202407678766776860131835284735973921510895622704961406337537104206770804771766763138780266719724676480144087732787147595157784141153881433249317897791853296559906106863741417423890896787082305737983881980303987879149578214085808346197967194694458056549593321678756894619843989556901721900600870876831816311813819903580651552741871424814038560320235589604677373718986751339671234554703238290582696963258421043224815731389082857855791389351377616527244196401959333704350604823368738646464454941729912903891581609202260883572183643607041592858981986253424262026447525723576885257183694298981925344932438759598810223021851419584125217481089382965941228416438293499343399764710366717861119061656060564497646117882269552068055825097010227642359071452384134726856344634066441190713563748456604162987040289260338883047231778142453091209010011983899928310173710417270067060687338429793587084909237746398202610373229795572947678651923772427106249288954578270653882915614528673812181098134942018583922813483991095744960441136425631213946387120292223606983740425417896795774094937356676417131768009400763328147014621042288046307608058600536214694935838186881167300288541435673025497886470230113967069905994143472464114816197857863096561040091150227802195604752522726737546577874597160352956812905759875284106494342741096751234345323839168845972271363614508875993127315318666499486593753991278126787653327529424728265546851835562084377508369923727850715407439305905044841074653085692161830290779097690241832681289650941400133351667719342844577517308101148110855205845065713263291814527712881081948241479330747114835285116972728205066159572855087246336459390496821599670614260728640640263210257490375357512579366780839727929935271144751985082689996946664998935833127573132775654823599411499800316127016589003620704533858542110904766525221013913164659305778663947530485596226634404703475426043511255431385841094107525111298415433063445295433702571263942415358615590635952107293782730807461629118950499332882486510468753950681876259799146267152052770655136554166095879980132997994033436265974155893764116848660241636186500216707111374125938335634033366502168024328771840253073023639787752900687072678629904376064113537444229526275130328912857817746114977559264082464543755025227867858585717041223608132432946996346879169153814604315700183448974439333498883369901118577996004634354756735142256040973360167322629538222864349454612926941245208247971234241603154484839010891781038968442483512794885491828577972329964933129184227267001934268710335022827231925312766289789847672406814436533858207906998371429480698578812187159656501802899466886626474777316815829822970618052984411018187134104848328764533202458969113985249229445144535707129010067248157167024988646160715217689466945709790000949130993894265317474905830296220360651585694044219227767139841580889714555277889190026139613539037406404364079863949941756013452271177372215957789547816112045801607159713784619836782851340371589392106447758617590850645077314500097021994552944722824370544021485430174811184267427352616521271934360989622836369444461404761340136417752379289590902254057945661138520948616569964955657658922818129611573677520074171614230620515765371241474790344830976967360609335412084905548267010249661796922716633423048581617654826376652537829399706686600681783112265468819026094736697733055718134493264549546681233189416629526056850673817918803236374362194143506028205774817345048890198968648140961936274860571157282321055922064071298019876188616277277636090340065083677380411153123960603817182356633595301906580161437532420797529784914047300675398241192757666579234987303623921520770536200056822317282732520001023767687221887387631598874385033361517615182385792221791708617924023407448512987720208621233851512837999166059538131147156825215313993030970466054179561099702002231326519387195558883857208507592141144812376480217238776386801537810184935481379483603314457545900697729142006694951960257999549924176405169481381377095180454075929773531806880539572129867237506587934285299807251373656457251236164570297967406378883894644420530084760730578513510505438576069274492596541476298186647902509643451826015662884008462428611562291419962677633229363344344821218124485436657814254040761132461036252800654912474798070896401669819687948101441649745458138013118247330786720580457612771814384496338337931143983038454009874889788438344952918263205968143645714078152739676632391778951747510159599588391783540207898658252548182429130707380579194216089474676013957928788859475545858673235206951151240902838101464027516798823823090315083063049771385966183338800017269766308883955729117789024344216177789014173176798565674672377014645192645294455094754008420832936707165933041372673457223271767929374014104363863020108923146455875430613661830580233968573504372884557052468856408029621838523160394308601165395843641660687714833722162857992579294715285862670220868183926364225524022978598377385592071735575524460937864216932090995084568819669125789977181664346157250151514102762927483231679310666729105440292590990464031885342348757572443704239367549972466051933125350892066932401196541899344701042098373909336513379560093750482500789350265394703907308307374481978940432490688784549036114621755995513233535254200443144563416568583448075113082091753663296126723572978368974676580384770220331992408222370576176519391964098975373116231646047962166818594730138359737159818637013197275201754956653261100175038921724660518017009554562195161267518044688949359773563323450147577552035105166092201415277744135317653765066892383254391400753381901572632797488723822156378637418628945725540352724900537068496167049955916807577530328580279081978157895486720720410917198687079969216050894039982121577064816247193277589545023068240889215212898719503275790172990762135920038785547897832252422330979506606688316733688199011279204989452616871924949334414366380175298808265514300602731254703150896162309635623691382453234433310237366419658579102115047359282424348431539021629504334005612958607805866190560852005645271991115266559505488381470640941609730578555501485966066928576269856937706174278790295369958906240660460811691722777106459417402341675416766135326833747105323664787839055595605926332853986050008220347573414929618946715946538412912683974378160729619131638663553566775833328366482337435839557951618653764767006075528871283128271826219278209183873618842467642933994124845600409399669555697334071941332590135186262180689558721643953832443619177587442365358475984417188790727391019070978563252379245475010184464048142142038153691399409420484448694994465175821139656524263041475221448920857623386230235629010218629669575668620641317349782624873470817795888201555865004289144666563951132868304965549841611323800609740729305486560883281724247297310321090453879647010161846253555782331833190444820700557491780507980705005953573665908250962322759164536731324001443334031226052780786044776416717214116698119345315951508070142227334001488910047973650323545062489037316910551165649693246269901935276921426976056343113620765609772930106646187774220479119709116260239360834045301852983217634256824791674219569219334957298932033556550118698305726448709042388079495378345652032178854240791119205656992077308415431182497825898205995641469816035871824659704160650349416039719514119306889797160712117328271343453656019065014374760316084371373977212980534398851073378222055677306195624580376793482141883323293027999617652909742870942245116817601258522681735435462356764764423025422927852813089581157494210818238451448488459906391088799567874492393056118973462645872131751161079172654559852963218014879797463770027915526999529083804633998837221522087779985382136345309650082532695244286532035279100086932238481838664435474946098404936796222325535328382190012770575806380198722778536196629052392014899031591698010233048097995849317708263755242091332616442818280327088105519881379522953092738438776811279144884156556820229305760500587927486999727970635662708527617096486566443224665375483080869041152481887227074629378081683411164671579363739015466056423169405497415751876103969858574297154593026839315509492651992371767485388288513470907950286416760417321696734034140440864909332783983997819593428137498972866223779776493668530357341968011379187003131639399381017374706413161776555551822862118899495552411764747482277179931387045382033895018216504217549938409273656039314358912830430066647065734687565855300649721229488083779830619955547614504539115227442543349592054409961388166834466352812582852745366972158804191120858059624765181195212981380228427109174059106860801584134685213225946789536776754333577522149919686947950723781230274825576426394111766741464290479009373416018632167806652852815876491338921187489526827706450118915029829891491840291649774135179560144776227379470325926904698123716467402916400789112261264566076402466465825464317276243749140960080599518864921033465586016319612977460363080772862203569359698891495806839916561482576749376959584925401695229191049477766410503752736353128119084303391483078530875439295675685182221150732271930539581879517179827327374822777439956793492010547449932354882354494523114252519531555039226024854846569927260513631720298624761641155226030488375674379181429819337288527785829129554570978191872894322043713946849865154505430308982949401318395691722881315309686130230823721022956401448384147103147534326687903183479089683663747233915701237646629795502173249639902839986666638114819329247354894762573228887320294831041461874025485251796786346388486876333954694138195876919934843741397423661534013344423909564717671966646376798892666728212575280604820706962966757748473417249671327977047029868716916783772882289506665851762718471458500543418417584698123503921999336082682261945767198223607736285989627291050423985508133682019814558933047040872020546696603577077004965050178072685451356051782597751700373097173291790338956683552915203304627793869839044277334838590939160773778857676575852867483701347004041043093761082747668327405066600798321465945620771663476861318836723156350894578894219111261404096397196660581954121483196552101656518352729721089044844242764077963853868616177007718598674436136649802907729334920004329743086353368043434529955654331145373026747163942548479761626549306091051683450026578470448763745962931502725756408146139290284460793978994082315657631886092802687331284828072722292254438723949836508043889043718594303043907274840171466863853621516326375747010503655117779035724889296781884774618282928368786964235565819642045730987012945992990611363424267338603341438783014147300088417388388923492784188091083192242765737862633923450414408581179644112666747268558807795618310018990539360902988097814851047131526528352336471142088827052578986878697859409769522297296501196876335034965002376894714134983873508098359137290121167260841591678272541302220543642014861895534787003503884497718098456284829267278601377858873186322562369828223208377259303316642635681960857041682091252730883297720164569971306754382801535086080444295865899344294176461822476659047754425344941474247027048874030754021086799369879491479459397906674413070225263278949604885773836690537795256557888146488843003348772639492879849578041112856146442315119660014643372871112799155131185415430104487316384834390203752733922605592643339015247830226648242347691756312724722082845101355216527778298184253521873963693666748382192202595160760389785140856872553779141409671520947644368656797774967964997473238594219163651894221752789607364282103006523240316612691687582209775300953881264385262347683682657137401404866425768492996706229693596777666042440400964516152543744093736808987279163502742296458943536735876776807741739845105507533918931945555908057733732602704321157210768830056038639759914824623106979724048892953883271746308729782531512826012902154082274130840550306875779749398359662095068435387206916487953477560662037816499602263417142920208072476842926597302084332261782716591981771750170096794260067002773012460752317102577895656693444727612460197679533573405226262373611174140536274075520832217230844368147538217677276819635096293236055654243785090175988943643393012674199867216247332089252126918136281170616361656339415419974691403518010552578980725473273373087349297991793816902608379932667264236532349762042934077662199442888994475931703013041139423975883629233904520695242202245470459174674827398760909792385039282707539125006588100669443700696938160023193061537366197663408032034409786435248241021027368499257679140374237745043352461322946643293490378180467062269028742105523493054242736602139073088955697920340178552544969742573601525245030633083638721575910112033235757194563581911878258188636923997983772004112758133452810716424375359898231195720119356832734824745054321291173913760912357642704419168224743038153182768704043686382667277293499654963707880945195941364341005906540671787217808842184630314643747175767188098175579536172287250556465206545008372450710023641613098493981256544227206028005289269026153784570135554753917889246762381250942739326362372185263811384378806640953029121786865415005105685082438245173545207578146579165825842816428482024006176489004009313030843313379969161618678073852718416537007598369330095437663269868273103285140994268801536214603951431333145046810558090515172133882599356622358708344002843582192221593251885080775924588902572890355683292485782103381871210323668051185298927972272901034783847948418414759074533381772997962604966906508317262481486313542818025361241895430507489636302392319423687329684990967218088430929563488705948189712406628185383808308509369170043434459848312916627700207016184616386347979866643672329495369541167770602739717393402594890464640925743229775959291592267911099647085030275201578474237249056407232636108325688641362256360822956227879122888836374250942916548357419559015764950206431936696758969583101488047903987028870354424787249987536307854900593801892299585771486231948658245770350749069017768988419537681899257146557441803940615614833577681382528074623124223261730190583960126693627223610941123212135217501948531106119709574822847959985214443231411892742412723062869513360235612591301359329827307343609760874448767357786125793937199190011673547145063634866041761898707164413916999267103361916095963622174364649674450022703708297787011835491883645276778232977499712560873707255400304495655292980370069673385505798190215527161120704755497315391387985019724755323879541653982622550647948086967757091897618862706606487918728851110117916162346045054634257033090573296730714983178209411948844618696605211172146481139802800059392159065205667399957677272432328944830960243167196124777758371461428643146552599993518714927375732222163869777506161964247469870903677133492804193266499285188453176296173322631644780948606471586748121132561021094289056178916878417757998298031952651177161583242941208349204974610914255518636786129817325686704474211878879219814258107679490861125350710613271743065862359842233898091760609434816145045853880879047261103885596549865301804104437939148603089703988945308168839823773596227352922835882022234151120240582533264550962075997799870395343671587403147136941453725553673398798983847247706928528475129227431851342960392321320125237424915901507800107308729848730637340073056477141221332135507021977766659294353434973561778064861333484781336324110515805518511117952090194571370532865998599170763104428846556342075920443173775847241344407331911464832323509330374512762741671924317169225947630315094635437661268917848864990766050439464335903935877159402114513839276798246936751971409334970568546893657317878979850974199809265076521717532908396850967984070672573537147995695264760681705749691224734693682897951881499055739406819799045053404358335748962773636504837910878106629861361852816234697140607394180359430161315673208428851613119559059296887045456984662663363899196489976701066047972673900186256266669572306739689866306038280864996654578615521753159300153498926809375607701715225789406008806263448302042678303754970365579744960898013378673556466509904297724522467348792479692545727693197189383635366482961361295035451729500308392153410855240395985379838303170153878325390044123576695002811997283244393999246106954524030565560281865342901154613272823999724143481540160358740679921115948542171289679204820397194089777284403590976687023701244548517369463964657664571440053402647435668028011409202321302882773412383051286704108765899860930592555500870109157706689701362783620435501539394553146751609650430510590770652832738867106397287291667643844238538555826585128044929358250455622143091027835927633643916166890801828191114511627523842069457803163191903830128744006926967145097317112992139320990220509267355657221767203003431212920112215493224176190221550870029940204245950549921136373752082283353024900370076671531472669277640372193520768757024659484984939894386537783398743371181606141684094966193101374570606740939052347432423692532777205158034145115623103172242183271698283691270518920305086461439333808811005726777321180605063577608028913715186188816483045777724122858908487035240213639250239144891438081709274034036101374464040208230097864829718071056955779188713086404788107593576681899121939922456202522754035533203248961345158622580762550722957148567544593568632748966071479672724301232742307856162497227543471039793612901270276979111709733318328900779129877626322011178630374250959299964742090300020733655821326799031432727650224395358776675571278719783266294251051832624989894603149269166037075475467089178616175080493518273688711007517079157924571376658666147978520977597275109407599896188007806383642091272767929744595919162008840372759543367609687703773025236544014865303853558338105842703268247233213818510307125195925778727780696598353566881905616327079442802312786246981495467614475715332013319180167355735012248393514522714206159437196458001159431377568158021617654205446900886328471651792589641960219639531634853605430395689583659436602066913692599933124493019900183349046611040791368914916619674213271302316417075000046565317964497071556627772326110627700987763496895448318105021666959424632256333996223384885771701661360243978837883568575057597767494889241353783677209104924920882876135532622876493054167107738955292409058143358039774001693941307712711251625546707944713913348745521726116282931453842420573570267640221067217422452952577318414494617133853458429575808855122327802068575833985718455396172505005822289988961365068995528823735958687720917134795354015549361228210765417788075025497111276882331925329595592640495531379082126575305935800479366511850693253308128440471426674153168533985597755633109167988700620731022469882482137068869261149154363977752518154699747232563682491133345415733626214287389290872332943169787937020067073498112452591041043006182162835702791042029268666823953952933400690406884630144019913372424108376460258472401989098336455033771771535380250376032672842613362643465571478468730003316999634646197854287310394148000436106915269230082987937993507576601716614309153870930796128790827351978402883973481018823555506162585265147035505094483540699233753075105147316633592399160444307636727081401126144727037973347114311089075377413153419715863827321751533672609960272372979462743735643782845510991230194684063135139135334911843456466454286200750578752826847051234211794376102849024423983911914997973438193101029169127095534655366063419551465855658086295771114467116452376527486596542070354615411568189618151071496354900300893162280406132840129369588901954879626412659510587257798290922250873779139812867199215891566682749046636300378301005945117182267338148088984102584787041476014513853313790264892011540171937980994318277095530794828073448439728450614146024679715504664256181388869016496736786384465130768246835435479092752016455831869551597219828967786391824270922872058851385729313089220645730368928375897350125632705467082496052958574914241961057025345351247108496877133969671438254786519931967327939352745919803665305974694343798868431038093871558774126227439963466317104868391000048627357903086965788337178722685720468916137648037823334676380051203838057242139327101638303215174813555132251008156212903110743167106554014136784442544740547436730837005267265626945647808318334407573259631379957883682868813468262199999629023167111343922022030658570773652514036365916809797937129706749841895364592141016325959898661538237131033583388836025863627409832003351357729311735264215234115744667053809314595784671275152064771121470515723070690159481843146345665538460835842883679246293919939807269429591291591628274378919998282918992219272927702637444369338728792566948192355471249534209540608738260588928259146644684567614853027722622083138030476574990294953791696121317445024994511746154542083435617887533202566895927397270862424585788407201803789380429088939706288536243239004923320378160771157612255014706007516126089625467929885970892504259775121231965243025297503830086054020051415039002663849910583465016135660950383020551723386624030393123100481244708227866629850854878198008242756283065175270491642586824281384980295014891907031991047027325842815506337416457004509148462531267416168392723337707907029338692613521498120103959275829211084187084889289443143481040147844138305944951479126035653161567456798526941151143268984268298996287049349432035403616289762783605170525924838149915573275490098555509967417205575929121879520182268714546894405298685252664652190506218350782798431353516077064514754732639373953960802279089151346181162978797910606921795687754537447258995651711288941444761601469178214047363126037552851423322845032780081109321803129206150561843080728334613497524789256429674141291494768154576860269433991638755616421020592140048492407977975775812067718265941240559721162584440471682089060143889284950398615088590797280885229739327965644351658630074721732808632689823632626938749853545312831203414406458130249255335022411386126317271682690735891797489264815584292641823077857952190655871234796681116725012465546929926818929811371861189717967564315967616438579646963487632057539634513731549801959568170792337828592666945532902178405260600914134589846038859671539196821448194076398990462895892452003291223210115607922054905220824577339269746155133633500471953525942921157705807192656757018953834390801698002681929064668290583932699373544635075250988136315661873542684752030093296954497653354212461985421702107991258076018053981822361628913903113303950695674818206671949955189095611770401804142747602797878102626886738373987677867275507606345435107969639334450797469412032818812566960806914015463002044892580970277830324317308737855682444965399806337173895804907316577772647293046144844282661429097891684025033577794796295288050723292154492065211306566034174818729454108721793041512030540343906075097322963618844092598531503734834962521858837422915978160144442049096046832153403530242830710411195450831731531361133880301653946664236604300981725295664712043745611552776090278152780022372994448412724545259359395449468312526305508785923849465902167956361665168961668520369445795685141468814058714491979560053198527411170506212976222410338077077245658927340010145884085917989655608168933487824477073960574950905703730365475479290581588598480354230864559795338599856539552209493028428874841889840940818472094339094495094317111850906501081848203492399883533196890115977367867700023557287259385870491390483010616772230349892181503286098585875837063571039667502511579637771039199539418073994522773669307723376094287660588437177992514489575165640036468368990695601707650382966040338615229744518300833488872856394938787998091343074323600614153549229998511047912870689663919841726069787286507902209523681847471177248406385042113695209955911538339007078540771699904499351851782288612402207030265141001634176088305541027214766992433976219900238010160667098178845469422213140073399557134621100141761620713215961396819456203919191666851813062258987768613412844978775321636683271005841323271722184910336598461301015398990622728142526628427743019465455148043118086439564795715968249904799059088330339103539624566680150373001538754333898041600938159121195394705397800734879855847609205134367366045935638339272155028744567837195918614513863638753309443848640790830629264406769067076392638731985991947628501179165383277350420046121559761333118451729369857299729477314820814710102705668082957387024109306198234557653966470368895177017506407316851282806037683047105189333615662896094626187200821176469153386647116018630914338169339445909511775270721353906238256928270318430649113080348480784765932515363370112215021889935912775541167969557842352773093942786225675509341884157891755729664277487157474398586290556837180027407510868792485400947361665669877323231814345544211819227178524478391847614031539949641714049927193233504694677823476160591621942287367941157651931535572277617139733856584077243508122415285516566958072225320623525510691280742909501847675824316086379674233284188114213836709866316769903124803663492772484373291571891739760225255306037123839112394798970518528464012111306461948107009198533568376299548729052668031735828589722971432159638205016130097203109349673289754046109757359634819538401247035192951627834360714422501377141658558892792965107645154499498348209702466028001165296643603483687872395739067414388618830851744041663472390514972876465663315873546615328071411498049810431099614189352135041659349065234861048488722401184915551927118133267768672848078038045699645939719900999322111161613689543303461234829159215768019033245364755312659465784740145250574006789583149422877670305345113387246370337939990756540212127861694747356202847269678383185420379916859914359685784313226003108906595754686272125797559022313877422763178142959321348310886221654705743691344994145315718088566087800739659788006575176142562703854616720514151129984157014083503344651626761002383757666947577931575230258283630962401723669244403316239812572739757883007909499423599314183421946592202066145454865936830587291159526732399698490206100139037595234305453587208911180629032900530379199447327862745964193970237740111378145068855541676095070583652625914799297779450685186812420164787543281211282268224915881941251662673616961795153300041680665975529872624764762914938911450339274984202610023954401548943368533365163975374488480411567513092231864391027532420591196940172996318978608459964750456260940082774249893679246082206419593081854381711347153297492751902096547638460260384522377201349978501211236597352446774521484971360083329918543736612318867897902486499936992459714710056768459280809288890135159600000425155941165837093256851833503282757490535147698788068093933986133907520275860993728770883853049256866976055164728001994789409128869693393262432399105924085622826804929894200867407947723171495967022326139255809170233240548621953338728006437493586001214490058732070276943995438316498679365534091481496020944112681835388396485963080346891406635061553368712990588698750777574762166300129363732403485987859915230970690828387949487508300941435151358206913649646605981047361790607864132781138520794979267051268808895628474573159571913184959601699021789400286066780737861442751472485069417261375733412777880434834766045701262195162462984074118270239340943596405783893037641032992754956874993632794106631691489695103663829214599283365257133268542662220808880372639079057484683195495880515204421665184120085893274247471186503785661144535931632340901484480378775771485462086836925139781512837515366811556418884698362825364282386579662745481459190171188269994902147390409626264532425408010810392502713986429734114204669797892939228745139368659543094656230225321000899664825200604329582640521346184579350568814459956612630218704647007871741993970565955078996029887257746183041438646547791095720970908395024904710191119794928488433057366638304596693412521536899472182199347996032484529781923728392506654304994665722508587033017589452562478931631197255774415245826740298382897530864627807312798544430296212496349042439598522591983615545710404101342279349572980271877512774004230389174108094223990496989664853070848633857293848008864858746411415465846280556337667218729681057378201413291790379025431567592042654022790044370039261066160791538239459771266121658021255650193638498971265729294907874078359276288624616340751193656766532793986810401345752844079982084281452145805451771075696899952455628664894555716941557509661461909079245697324253306095155001276875098545530386805404989247685033159147033949944034227553608346951813358589326855782001783924631275995600402757149646496093703374089130506185365036105855718698334619054989537522344997402408900122603000703374757517891761938439107075405554047235315410371215863612261046548377433130604778291788451232140945705650650274650364968605599502060184639417911431166018244478742863723910653996892818346787983846720407076363223776220155591633045075292459151355387648162594773369942556649495538693089443292333258838641095984255599397240686408007324582354541362027717128792004757632264913414538250532139532040049653214205166025963481913896417742004894789408084507346713276780794075741029693842558625373601614497366084163634738307570788883420973292615686070822809211190842886588205282953371792934819899764481051279375672829816893052735018987870204174162481049665280175116280929912704652026312780074335466125085933965359431436715250845587333553201206566709252010488873227902421610979668955859968137382666580708777541981427996343584707069827166099199160914302368082589541882636597098026405817042071471709460041260497902579397600956554767332633185738865578753442369574081238240024381789412578144206905142000699815719933755957679924865587941493682027394795912265609838834908724298854384729674964348913583542628317126452149282534266902031669479186505101903021347415420581492193760652325604352925486533407368050973275221638411892766766012923517518750080342985840737605929996667558231425084338549559074778090820998143687764086867472145552636911005130807544974089433062485818098448064663512867038427966280422595260328541184065084244529063801544231077880848384698626933030676576473984824324921351871147156934508797731804588858851205347426757981739059020081134726496630153572693067721849874789079246459353692463907809479821780932159569335666816715657086097569199245912818791093715081020179395815429028719237633330798316092495356646460493641299265694555311395301615735720191759743073305098881694508720142810773498619505218243117250709441786501324715425800933996027246972014076011556330151115220495164878706142599247451377114870999560259651046885084725933374592169311035754300872297082092755514900291766937686958549495497552338781104403569328415722741498727411174961837188511118644459313787732306833270042304636848418086328397209421882176768499744707993905274590150769738743525470753451105615958417665734595785959154890589403821989288106216050271498673139502737567407311737635269428023848291664036295396829688659733379104831489745594777398288732669837041538887531834419609300046395307326926177926176337661685294449083287833357912943878900449202983160961373360517564534088619754258346053661747178258378171262388636069822745197410763476590440077015087400469347625653994035468998261672310817122542591581887550525633896638435781908784426725820700883996273065680842297711158624307034874312796875566196835714234731711117285436811986660952520939770830339009064962775501149664958671147304453471991753574881943687268050801161318813264887874475961613963168559678675186405085351043413694634014198548410872803498832736955664620026655734751849283836029221209921555088096034447398096350076792570319355523477885494795916886184082670033754647310971328942773131958019655620280080144230508866482228012664389034590065504966189414877266490119883879639246774457657954850887733279819893340990597867143329314379894985758623482775815707502036584141365099441867631984938647871564415259770439139869476486075730992409149064639308960434795124154685747804629958975675990518552241875193491530857095986244481935698237196404658129432698790479748410107169691430935660719104597967757824274301768008282558962465802343320418517437220088813699567184480887469522074590509120069699898081029557967691497806539517351084415121822904432692068326612043240970396899946199618155559974999824307158141751529053577815576427663251488429487180768568765969812402294911672900441434581900373614933855590059746949645498422128789063757969114828317295969415640471428817175124635863460376130968975955483921916402615981428272575275176561746946421948490381994259947311195741355111599229534004266707768593309348963582365051240652528828352506084662619136902803951609123267654164907507196530949462041766504994955106406595939543126599669862770012646151898533332847558708551868710921616502067201325491602338988326373512931804178987135076515165573971456400944449043715750126286991704781903650986676284470619724359210319889178160987550441940166588204720971795879592776331492348049943755511896146310902483619060420322784557723595665835650681901984854225016334749855330831965739359678443870891602246918544151406149328934470626339646578636624916026818020122255468623652835730831426127888641157770463223620235559059084951660768501775332772469700023200746248783463536735851806423179526110014435065961609083653054419085260990519096797936106031916505712123881615280546072107915759533836360026662863344240278469805404959177631303732920736505008882275560883539064493580124942318653684405819403232524478663005964914559330772804114654065236724637337030353476695187616991183447781989317365477179823802777070913934740490499828923781539290847582032791975206595840433076421713915271999042725775642010955595390918336690844443938895442610260857366059434726822654169731554641742440437237910815514209630349412403997522871224658467296952071246327644437518248059577486152437523051575670088384653010928265991638945689476075057927481326839896710624005688364999604089502074790674985860857939328191200285425334935420721616394024244923706823616201313003756455385435596374413458929213827218960262542448271938884219687272456531072229913060128844199619916555577985172824762331666647757042364488418683242460882508083005277839022512105754444740368741520250202620134205369150616914354857223128140906306351624348556913078620174444463213960840184495037327146420873916265010941052400958500464869312267393624369002623262376966590869966650871411695217465819296148927652985566133201347952078857357119862533186328622062246552628038534531280696904086596987642386694707822730423135721016026638700066952120440653397905161609024690965848162367731284770912230500908753846287010068163695288271019808446033326502870309242763983133262437482449788213784914819194092975160607581483752735656751010661096532632064716039625333692748010057948791370581992019320662950963884294339223723975834227281777191142459439979989329774618727400353189709216725892780533104326665413295170248887420431791268910531446671659338038581512039811397404944001335005237201904542496972051735028865422543418424687744757051540141262857107841977261222481152454356251307940282521017347126186659045225874955375769150747055104877200647236657984099697165241458483600573718228972133961162640874282665037803552309760769860392936002510144580610411388383376501265765871084037847560991806901288647287804323480074460784253681674625458723636361212509270039683390750287376202136766092003792231445988734256673428053896422447999539909070150142184176256431319560251904916960988592565712163540556245454154198360791271764351924756556238536994550794769191688822776500290385141495403509106444640926195801361493081133245403875945039117887547635948852269799606387090736541544450128787982853763754100497935926756180377650140255090913815875109039993676446671015268865702005897370046924256155108864715631866981979907620113940618721066271207425646146426846564566274702005570792482772617062717409291085558236698074194214580302721844011056681594358237766998884296415153623177293254842737428937527505601055211597363002017835773558113789883831284593110229103851471273309182062730403012320786162450441979640848490383305046584502163839995958608223081649561511172061526629652373082635436611962687095975207554864585407291504427521108792677691286591758859179734944947240799909375317302036893790714656641152814429301979475215735072442133919375636766607780784036046924150905722824705003119002673892581691029745063471199749192282931566984533924917261318357324315968379691708799413149023524255153855711105552355117548146856662421967684964691785443085773635014563786848894140002587554866292419848719748026346200549985930355617914525771026440036357592860759622219703518116096036877829312051931780640177506021957120029619425014761183703540825408958304568893170481631081457662240189095408233902825689465256437527740871681618472289557683995713744829709855787457027589253610402648438645097604172173028127809512002777712142410992846407689221050431471119966334248367162306340121182308850454193684222277179813846264739638246491921995635128426393802851537938186137150872670462687814550230857539770641050733907354336412498535381192700930918868970117896084435099951841840546715670687798184329819003666170885729857359297751379073973543028684060824784712909573939284494360626916615519930339366664163687930297192261532585220778788599780384422767308033338736536384571016935389378485278381556972488152424753839049876537385207107928114781798860868033504237448908226381530686609350521720107090863592992643637275833365240926067378837065843888525961641771007341557780091973377536564967889446612538605878684483956075865101560631786717152275822332009563193611578357519788814817788043881709306077968833357098137661546479593733707996585413760056234163750059894330748865763475665774813177315534112235008594053091311434965068771625133398514900068799906813590668984513849502032661084982563850316917117124058345513466450020668176720842754725289333233692245062899759921158646349594511354499350785180708684929409289947679556572939099551212758981021410562951876712745174840441085883062918271696415124525616297288706237581169376612672190596275047820239842290799663238192403652923545270927732704567604142500756079310859916196049877046039411046408200336874728884962858688534497325394407147262678133129198754324554531048655240628044955314387190517699341927282391323376181754517857092096861267527686081364401010675576817615288466473775763313002100858165667772980871389778614186007862999446284417517970827752230980930971936599788639703974942128525824432629574382734192846539566627131597505308001188699809306888868779915852224830545239375574813856010800125114657169296588143415786743754550035959910701748891055264130281032780962079920883390358814865458326844471598334124702909196100983679078608907181253375444696406625238440534735324890056499100631083827135064089658985734918873623110129086505251731727453848822670514715643674295647214871635662943592693741639341999737325365594300725404239431874218600579552757800257422961125441084988985674535404309059727105456582695321295882740169115463695052025474229763345114264451677159752214943571801958882369475191831113869242748986250541393768386329476446980438221138623527702248493306580195461838246573745351305814697775843654471486818372668693916845113607745980100459731035950852509606324901892213147034684938178350888928101142834618280640225808595291702691625942264776251577693358470340848344443029929192810088127299500927050735665594430519909210313752064917442097816660986986055973359070847074888580720863004666997566027948728255121817372463451985679863431301752544454201995790557006514427509938137649527680156663597961544901859735472465959404898136772167068160727156404133323553775921043997228156483544479653484161052059161923842982411357895698298149458062064546631585212533784634626856249225593690323336845029259372253206975975139566206121025138257328601267813504563270720016302194332701246724829929707970054571211936101740386868970758141681742013029627396661908440202667571072404171387986783566377614195786902984008913009325117088737730964129781713642275216237423412895310921861831831697337124442620059817540378619874324185098084343026982173498533834420454213463210792986352853256751523995089092661065772959564668752599376859457001788372593287182293799070080455177454154965987856625815375419969781641775753364374927086101066043665985733982801262386314527795888456163362340375210269508560263685138473980630331079919747842274912206675589293958659891561169526555845446747104809182899344910632408912133465938584521420829797167721127364207084329788756662614196232677120052489248749687825718280551785831185347155192965546739992271360130198886162790493981292523803865124205842033470777307967549864982921268243100435197859014504275433068070032031227739087672282288871125163031848077230185212166803922691768557645160875754197632100689586029468467887356532538884873885575826321998649083812409817639704203373368142655688303307722570461603376128538600963443246550719119837440983999458600766966831762814643629485217460109273993618806905008993497643660890502773159442433867593714857236754474858334319855587304962106395891959505859324249436266580889959431208882065178620779207566737802420664961843767620264391812008257881721381262700002339834090538992797550587568982996808516292836995884264900668660367132054285832947544550568627437228590063046962196464823835751347761189940259700499221149347629038149689989828336222767829680927517708402396342123896369682135071207343213889852458575874880840064891034852388010245306006491712192844896549573080128930379781485110912787423083627389180183860831860505053876336196863786014242009739328464756008600929582164659328349225435253230258941730195300594364451162052049667781872708440418931390851971590552639762100954231819311635520213490887945550820158358293269989284348995026629339513146648487656147591451580431115930718147760295722033536650955181787580575563371496862334782773311811997941346718723569095615772346955498260016245818739125679206673614667903275624626904117654285480482458649524152395122771052803193553355859219522424712026867284691426958892079513918769813171482604189835842343697139707650033598646777310550371333132679873798321361427024388195438703538136426174979648118362628382161638018423339785980308688129240187930928297613496214902756392138300469157482082092408932183741373786585228046695147948117235023850092657433008067029536004785737397941257748548275521894872667247478667353161605371190252310963328998442710748297129991170109370120217121851667709677036673072028042985234307018145048749665764736248326356454757020278739173281736042734480986314374946166160698134889153672860538568013923556133163756505290509489598206460091848032392278395476770474066244028500745200547915596241569652340134234286903359463662804486223593899583257064735001658272421250378133762491638208387814548291360447896204277813917243705281388037088117663265658099553293378834788127691768298085630329302322197928483774957881076863865865123280415729691671259908145795187207597317514479832285366348038983615550319619262072874848085703906394089754197757723572515616070629371517226030740282424069216950016928176775666312517550089487596540987496553208614104117456003675698204003596222156354403192131455266047138957974781754403372833688952948035500623684979852207508801174396961515901721879100171855641526864546145081769544875342652084684690600881608764174947977101307564722568239849016793729964301347092439125626569181911615970202029464302689596950010132349178019965235509991014632849841960988038992607652949545353445855849470415997606490415220599416162688491292457658109517551214219782319371067389453998788993500381019666931784639207993532070109304551587565436757878495210354373212474759495039641397556943848217540621505600499401845132752238479786242428976458867037075926982619647469382559793488561485273596631166626258793799657628894204559650141365491297246755302811972176784110390766011095296538933211794776998168199818317926252259337965163969496362560788892411060293043404515239212114378618858380487715908245420107614113833237534848325718949017735502648113719308347721166185832430589522971705576135927832199629115092640266765768183907064528942416878709004127046524297225815341891804617768844141970039568313261917115017006048987525236794228086479139678401388028941684783469858694975189228225270795845056699171594762906309933297657988520678383550567781876360944599221702933283314126608532761919168117380156167834137644862593332687499864835120657520393040800246742627341200704045704346198487656282142432363403833819579641897979390573073779718213106297917670137023551872279634819991803126322902798454885130796544881369149666607156170716689815323545477172612956271436926072674817119616980747304284825615857465045671341284208679656386822082704601785523664272928638955937639353771928228591134556550689342363018476525806485257343816141056797969180422487156436943630024677820807479743590608256296510052206494093844873089890247289677262592911894981012760388501741861006580972255988473730249266449671940896339630717449721830292019355286437828358990299056191040401377188908049184757600036792191534506665406098348175508937344656706999150104075112964269058784473197649634715466574957371135817416098041506816404365367863597452350138839633240222560623009069283686563444428883468775862816624106579442090864920056188900373916180201101868536055873259207156235245517947925601418406405845661500580122033346797783743021244700653853946330641057443408018327388672076952412150404710629116324039757173411938891667343406412687331198426700472393328148612640700160698695233878932003762001580031644036459915452734572754429343594794442967529883576905859049415089132256403697987680283054219137001396626484100958657784311478044073957628808096020324280142650781326309587223527263020737291760964116627489586450114259113392461189058907701680299592735537164119068854098676313097638333567514585322377950556046803879193425337534322830050781843741725883110254259591766172938598057210021272385718650785066984469966543543591678118840076352637483826272113461171893856531028858108056720796435457440463942507811862725583475321263598044377771443496547776705785730368661893642047487831466014573140907810708669733840660573062196452944658610019572130580757077976948091469183207194614551050750570641134382004431799911117500098248705696768941879001976146328385534955116767960190917666871831772684070145412289818786898070767765783235851795437204053227126964153966377978974702814646835584505991904507107812326316962303126135403246277761040493578326634000600057721974519075903408948082382489465715183021362798683617878778680935601141239945748492434184273308736978586891091512747106700554010741870057298893426803992159957513570593701310800653884412308936217796347236178441112553179461936525885129578330898790338391009074091370429421715443570861427038201955608787206990617686664279133494582837962294260422015062194048081688136526254559891470207625510803208077446816604615129957380996448577819524365773125008082487494731622942973205029620865979709772746733577904246765922456072812855232519079974242778313835769576231004073377455820601417958898895399742599943771758336615553505412358399944914865341019273378534683994679676257671811167812614146830166121862171243482479854881198627187254314424925807831420664189752134895159093592116185110991181990904844106425265200117885566341446811857399300356880639675753322652186602946651396502706766028743094486256928643922720877882879544404616443258721547262424824293767259923521330469060161230662652739689471053342025402860107082050416803251679623808801461348714020591239521649389124089219924947624558683590844734254425977616702393936237129098825325038973664134361305583601858238987223850523224975419765269359843220541402516664947021463235197478746812213582011427596466482251509482845620442124328494390624311326883986231621785571018167084751541913122532822424666825595276315238294944982133610813439958853521690024209916116920836002805704436946009754499926103214829599699066026546201522772854558831653348461454551905170402924778427915455935349594854629422512558650280294519077582924872715167303546531072692824406688488112540715447421299014869249217314089859402908747439902237395534470801634401657666654292208361206772828198920818721218485300068586852454573079300822264898890570919264069891899551152978963249181628156185739606446558369636448031978926019621761984898698882631341670427408940717609216868031386964964778614426504101259251091849810235075667238852286429336260092831276544729027384728279604949035411660441896119286869778240879158746733637377293951657814439694835803743604517847398315457947301859430612943901735915386569412519028338002227365398998466219475272674631172696176202638031030720942642871398683886824681816300778916398818081358727270377239634558419406372523951824424326963348748323961439014035686819235105961411162981999258946749294369619248443750692071409242787510792027673632940841129996889368230096428521288254622714031033495557226486728006777018094449097517597219371412700363565541278895196622675345922576706735125138671896840458835835051210483332687901556844917563261390345982670858603840352083429905779301374716671731656229281781954857721024629178175468249295513951114557244875135123206182228747642094252754297317841717310930405931344592543663281088280667061777776943901443969126590471452210599326808635672433786755340900302998965933204893831875154271872929653692154427517958229557158716279513039240315682895133644378198142968022476886458922515515349863622520151204183262350696676999640671696472619678431182194915953459926332012952451370190290615099372049084174560584639715649944063012024316514569596912127108540511611361318218251257453464621204268923523470566406594932779121042170370026612144333252119282801830620211480081462546848725617769856686616743258670781498620959247638344106375750481098878326693963215888341925767772517424907219683742565452758839169412428424432463295378385105283047620858018386153583957342320595591527841555017617603796029912187482868562741845459947457503499101121696153745305187474522745078695047127634905393522886977726857836462177486971957002262661390063088525127286777301782192868839408849865021751136067876711545831358056427965848134359388014356527088310016106883526530403963581006521460361674515663055481808444910299643434114130701917456644073188611624370177391708682488154517852098117117597123387890795378872304444694590865642362839500565070188432448986529522376393388496696977348322650649668687865740709227733551406811228610911802530099352735420210757883560198113865677905275465164311818829209940069946909079867249607986037014032651659222713212096025655820945223914675595804783872656299982460512999917684806820619549128266992991228000689034781019828640828425935823582781764139117366135452659670926979886816918029794682113052312287152983507235877104774774974882759081240890477926942176805146574325166634641336769324517845270426021259882713153417642381441114511122079890727199022197541409965859336380917996094409268087655115775326022753304736295521494592290485493452226964296504692731264427813051550982620900923609583273917981745333852962493182223662121495678825308323298636535190518075012042459561164141965703713808923852585051095663919231876635438435307424662167249262732021935189267834863440270309751668037846047654487612469681227118029064882055826542125202550210087878846779435248839388748831834204072897475294116575826893737165364641779179069724271802310975997323500717049008072541883901529076005455123044011706560810119209772640898963314595252721805708892909732423636361474610222411760680573078379495903093656680829245987128323039032469817110519414297218462028818494890354806354303234695642000816117197932328099494436802574568737561424953404706415219604768201367446068274015042118767808641327111395287199336837413470310349446141328483009366776270537215559804284224468477562005233276283612939211709139226103751277301983546636899782330720927676660204603987554953941160373668866075497235418431975486985807901617453211214109994633552861256688651856640715652112164704074390225927329347155779644915807545614439649536024237332885080995603391361699234582370587846902300551643135004005690050193949138209651180147725307910195449098253727796055304439331459819229001188294016789303474372227824141025219247631417235280927600744136712912018862760267537461832439707905348059484643788311683324708627723579482985591628134425914152469709069539819911902416533858232136274675797121975805264973184561948383293041849900355144289226300993824204046807257611875974418172339367881777788583824763060843859285613937614672898480225986633227400271678240470067692289508453428118611162763565707382917960787832229160304890684042165646950537250010079534737652079961649415047807466692820445630929049079980862570037023197969818053213582317600705206151470906473968000453770520913067481169793925530025773060915543042184843192968688620331087469878157488346767523522359356390814147996098965641425016404815911033792561624871684656920596593572756181280158171088444235203429412249720899550677733293663519710695595303579106235565351283176605890886393742791066728178478231001451501761687379424826349669916354678371712665381829324188887273076242882435133679059609310598623458400448841374009159069437467553757274291761370265288453752241068933528170424224232970453066603106782790911563061899522553456850057211936489263612539416247673377023086479484362271402741570629250218750576763062508679788772044755092860957709577327467935472014073696436532048843006727130067820139460487521423705228825103003650350219657973984685452856823567828783868396507175188105439565477492218184265357392953425983371311074134475393111856293107259471250175569677202904613054070422027088856943350559061396260893442654389959838091195895394189449604625404849648386699022648486181700177636796663490895182891273358149923984318070434997481079450200163960146572972771974194460334602564898395866126041607150399775400872935845789793350358478099433556721664665697803941888695968148234926249996000067081860935490601268935550299095888591712262092770055838244981732005844731248370735301974343958724984462572228954253878162368355212114740408703965938445393581078883989965958583836270573585546529051112662516045266315657627025496309723743123218633993529772548472488042648253997255442259274055615547998362144773176138506209203918260574339516478560859103632125598688426756579214722926471445818253803306416749137497748928838888739785517166128834924853732530790039005520368240472516025019391468803153830869482346512992515723797508206352201514744122475978596449603583172543366484694144354070693587097048029658705017772591563127989138705474103366626196357651427220605979055103544914908437987713308540695234955785303689081272631470010734223611054195638094501932723989584509267550180576026817401674675247814259474220781654079439446685842399948578356233316221093435662356037839626977208653459857929269010863871513043224808009175572150078788590742960175155924008788128680864724908343803574966843139958316211073766092298007151025356579708572282287500354168059977115821802790846632648980247611131305193728162980124869625672270945695392172108191723731610542681203216677807807149409131439216726296270217788723109217808419754107226398786797004128965674872177815499575386272301490957562344021270279032807272211598469657862731007702708733080712682077085891213063746405612620284907936114087322629702182880295632537601329887436182912609551887600983674956523520676090189754690337000135462604242661806677145389257375833674566555042323773104283792900991509148439950063589935505064791775146951650069497841774873419119744846899850467460996821344153110971174581166818341519756596904838524373258041947823918936870342941037346197673092827089806862955451381826984072764453045579488941706969332090963487763836481210908152822612081451366890987567756313286401285467580678481662979916365546049544337096804010284318234995947117300317554563116875666523651850081573682598339524370837749886451960982039767445717132648924886249977546564378786051049057732442128637882051732404522912757029566426085693360152365133357207416778509166075994552582394437250613657419542790035769142417514960096095314643360312629737658064143084179743953758365440662490226103856594316938407969318641158810510737857087529340995837099856605729388928768327223554420013312421405731993381393841767187200891146598386405677596667987600339318471382975967823937114666557360096025791146682238042374094230962475187520501657433944398192697183316322360607699422095041798770256539144219363415835683728911038950083754912368820573879111884331350849030591488376515430391711158111086772982328563950669120828334388517953779477001223688559614573824548311410035574598545482559628113853044870004977180226141193018770224297238877962616966772188044706607163355128889051526033293767146219146799937730590500544849477215423642561072713746200128268383351574242791954824847598077780886147409525964212131327336153354801439367660735190878946869198772877738088025769813421850119297333672387019346705891684801204258563577615498912302711028621752572526103148368743280457526247066764474564304612814395869514497511834833568156880739265579749380692638829088505606407158561584940649599208460402539943313700956022735378139790224082341220899487074788169957262427303506739992285976374438105024121766196228012481938647716576988488011333590439864075752780115099886395906650462701673564863066212092078105200559385470799862237979149239199313539503743837845345532043377024321440405794568436920435747573922412142767638031467247017987487549821384638899950091590913896699956116536716968282203615955378074898297776212348302079742103177938187465654785817716174939521266976268518234979568367217161173981549240957627418012542476829486514603056135588953068489117283759725031489231509259556510419413414807865381642503110836674461560228079726871257409865126609012375572274318339686391273331613124694272524940893640163250571873347268221078358036917564466381483977050174033607165590617363527021925193524818874890384105554143980064172479343805745004603524150689847502387898477672684367966439193232865141729786615779816048601896414813481420839867839062079180927485402845748632148595122543680980330907443612545613667855732020992404171314257246511424748920338418585243822864293715658507299456939657223446948272862736259337678473525442088229665449500654141093519110748933223886611247276909834792057235539014954649880647087842959788880383574161752753261681462268543239398092938936208154339198093904687935289628580108546497703205009678500951736905509512831384718883317045089231992543090255439937314195357030093898669427619247028395324493258981520872499767638219165171809818979336353510926242309542927500965521000542759831543512787402405559934649367757837469882730672976835431889815025731993534638843493874167666679412463415198869503705637466290136760413801257253913596991828117697008706122430547190395850701732880446148488199448634367297914119131249557176097398307513408159504754771983415665700339854460787313203874797311329605542227548881378049295028162393049166839049797955836464626991887539330400949351610809992951806606746662545120232587396784192000778162237092569036192445058228156993806177684416606646249258130325903251149943315558100396814081520638890482915718594705114398161184995362059405501100052274238552329491612568878583171490505322146819739410064520986350401957239486328285002592523854259404781779380199236940188711562095943540850280862106086348383928755299532053895273244374754922610275588204206574055928772035206271109583785021797774295388651987956206138281468682617225472300973689029347582498160912767691412266774269917648463172150781772518219525426921583701992502271161716546178296220027183029311146654307978661814883476422935595703490271385568631559656455904736380196270687682490507395579268293105169970221088826751803892372286902710353489594647436742969336286846878722717340776290559985807842235913941460296016207185277364885341316728379381773317493683092563274205834778874955445209095097150414034857543412273569350287217418867951636007232153496099340716640093291419381446219321591504883966293023009560698113446118310843160090114150575217030286250256317824631276540265876751207583696371878592355960094436711076165642818951906603330789428437337626449528266621654601080934207376849200302600718661496566078708740023385956278926324029919879831767543267386222546393727618700307489743572278997147837603481703697420416294285430628018335611588603286310359709845177139526531976577775970050390688378460072979795059156318497497319480558992261751407611429512022378571166103492024737450598504489706798618105168673852930703981971086895664991165674599368950331615180347142961030091655239823185069894368554283559693351866341477884653373865741945389289973074256313253719650138456705667891837176200169116338252815582517510008354222763082661096416029900155679037699505166791977594333397574741334758783367230348324553649425604210200380433737155114343168648759330230483597775125942451062419094878614603657566824594602599685687625564149727871202975003669599121695100778064070573029249946193399001552819453379812938768457279651098910166115004481872399136780279043216822387381561592417913605567527978411338287737531207379952306812221161239110430254597763018428289173098171257021162135867877057631326624618062626576616842714314077228032057158405426122713505607057470534732839353234249255271450488171509971034757263621059397364958142536580402074694948308021909203109570215210859102878214648396917448877316602222222079682073385559096936202410131311898661691069828896286127866725810415662787001249458512994994436306212565000072779343843512234800916305926913801434418428232079450542511567245040542819610472130659195379479113403875402033453010277616691282552037230712780800258611864072840997158596634458113941289857420848023971504021807259327987807468292013408135508350938352061301799095992448454893135449954732098619470558014145995112020912504999241397998248891480341108043090678455970002755913223381782748655420227004331980718640134842670527789913783037692157390965530447724700402659449568242683473695422681024951077010484613271855954514211473030162310909316410594048959820946425531859107550660160429481432318745707580070584806708523572947856800924448639790871231611895492226470690613845282870988677247735015541388395947081706754720926144012814498371669690373254642106270682985522774822619314132048161874132525526085292295676794365902133198035497079374914265372677755804770488375022984569258061793734771656327659906594965124636925389477003104850716544815428918046811016025042652860139640801040693871923715853676934770514174699239319589397240160863008641371626823818011431133800036896270757715738790318075944841222592588204439897523067528681631616993363999488930887808465703282995538863937322362732938059196057632377533059462346734551454446139259131437008451383840351334944733533624461985216874783711126856945696140567130299488176433537609853691953171946699955009885852192825407327615597668838502023632820687256838286047387206040409466030049492168174474681105716945203097551733390689674066365573369363385596162330777221661771227236692078793376302658866342641549445505718955977673905203608685623625617328104093215923046564994583805249225777320510962381279496690021814121341609210674407596405368792343716586322212605035952645971326699354982906788471610459092082185232043267627452015166935276145096345165653145689543097343074022424007847698149502416317858635886137639289412019846597922322262903685345431533305869825108223726068101085688855276854457813255682742504487454895343120970061260567487352787712788596550752776082899900694105324346318646004273150404486804543576990120631904286889239412612149351436509618347238850979886304710489612721290394213990010092542516166354042088612260909607774804795030696809069796261051964943932191718913319662310202332390752927968995045390287585140408378895639597798159722384302220802103967865153042840497272514243716926699274779510736196438056524346989525074998534505564757150300499356248490656975552716940981334708698823451261981265102520880539468476690045743122275863109352861991353053200594435229875630635718998144264769415548810511619238730858972442459719166429698794660580105958002002149806395074205064215243879135772082881049421081294513237412507979123591876505323535635054758434984518784343422408946954112225231262204862224081390492772721972371070970483627648314276367099207190413859873511075076271927048526116916515614755371027188777865114412244566606754014928302450062043555496246924090469706474259621643923170924481677400319878337307838189420702073239998394200624916928745811171121434018519249720016417980890750630223318908152651153020848228850920982185207981270578381841263749806556266956284581345770967228204273113043418246907799987947318680671541183732814727623362415841259690010131570925553121218762823517263127943049250368099030664844753719832912665255315321583918495741231435821983540787170248639846749895074622832833040958535937260546244293777274654853896254874554393107413535923849193986740240341325289415540502152184073042755016755070690036077047060121544028314997087426209577807771122746632220477136865277396475141004352860411926775816972819050213645357111703315963896468979524431330821816900805334227074713182529184036469726721748403293667517432003959024986715321136428193132495996566000753029983706673494237705174695471124977356832598743579138623157270299567665479657735908004546750674263440235589405307633106647728359119747760392691177209661287782858871707120159532754931379246580211463200405506769671876572540859766867848913927778919235789809678618407460593978067861793980342235359251295150743613158177550177884351704977801816347191185174130307406265096705293052348901402943882943203970744578858897130085788085701279875255592324577167642430343948599190725072278901491898836843497826921789541534730899996881108027027635869542288136829200928096563538888230511274894245436678362063104916311723766130732713869875779676787351498317968828520741770964690056591056375408924710239756756303767308977028887696530332976579390649194310565869078797075176793805030003367430333917415806494175477669365990673434507076071405358922279095190264515071153588522966641343709177052095041402406034110047663413431850101617963050440911511213571396790948264785325016218274165118173703689229784457986652471406603821700954757936191047143493465324560534917825787463496621727637279827076764262499526652504322625591825214157272532766365215516072618440125623509742281192312530350541220473022297155742762565309656305808405481173018375023753250385075900391294843247812019695606718702531815620232573645567762376321257250193973201803707839839403707934602659366975642641054602126445551225243198989856350260143424298811322456527681732772159519290490667489436190767552185546399387994539192964336819074015497747269802092490151963769656627795642069407717188612772352675212233548367635325895192382888248604114388321775517091813729817856632740515751554966445446331420167612665368354096911855738420525381980925738342914576529973311276381156750823641015907379665597395525393097554453273773976765679999538052520419597250132101721500966239414372732821077732205016130865169475359977306055871004128599186016293725523442279030140905682863484358907004380119828075978254829271890673819172308545428593243177948681509387532299989270173260541887662511350905818587621521759009303990605740335798064369165986080723427185491729591738877148284902519479879173966068918531560919059538074340645562653523205632900800137260755676223283173174068798485391652009404933385455702847408567059017024016261343218945631258921983640406548126870947409291098198801803663505719510197756103010250984735478458183661913905281671274548909891287638259313483483650953664528477850264958645979647993389281607914554630332024927823393613449369084038889062083902254305183860054713724047832688718367990426633303816631216077821948888545682688363996135370461055541246722422095513851318707729822098180074086370699989306276305142266851256693720885053685055828570159652183596767274263256219050279451976267800924020244358513508834249635053311427778734102732610835448952832645761848423846832931283257795869064659353369928083796905749939022198959940260434380984409015872631010511720485011090950484771256827535876885886193457742124985706507392377404946660003739458829934789237535872414349440556421022167671135546615218320902233094705006126076400531042487676784364051657577133247830728002348709513151674961232289222844152291056223317070951703936837060178618217376999787166185560823312977209439534866566660019574837058778632012932630533925979570236275798033718087235571305624914726626109315870283398955349561396497207109766041584613517493405749720687844482485026434363446434378019241894002794522630382377093504000979515907162368810610453282474655411598613607997772003661423736239834275652356074018230472394300174635389309799826643946155026018576662175253935439477545240203635764188661933388427542288547789332401532652296716832801347790848619774343226365921989715250919469360389502904116540859616643713503469498089459019435392482384759495925608830824382421485445668800162738785201739910796869893342801023376871644654642268182215277996222807981025835116254234964415560394681126390174381799240127420580409699799992833758187923394697058792336312936950593760385100157195062855212348706311862728082685918660193307316582901621914314752528537534747079633067339634626266935869310547384861987956380397499351369775808466464751478083313906501560633792276150764640220021591242657645236383943506970925621927720112821953869423547433461575026752344286921398932350976274986476571926149594772604107453357405973119873899310787283020539414472670903872129968065707591671936727095336758876679629260847275589211534078145363536219246187719134519794598379227044951420502571708636279890959215631512102029670559848126821383989356282614813543467333496380976178286583970873835572310185577709563788620105723738487400470403977304800924813155035484411022712928636092278304287973898036006009517805256369898811594660323666386578509975406069246411819359288032458021685341669229404938858428594664321186343899372080707880190249372857600245538132144164614232333421757804433981658559709255166158359702018358274597417512440034354504787987815752896212509652049291134673683614430944447436875854431294646726005817696176418059498044717548694329983616818986845769871095044337880030773621977580020571294240395522005245944381590839757557052907379247918658117437537865528945391075872394595724683910630386305648355252856259973737609120299054835192110463271614738847717254340546158079562146172575632971184396058405102138569847569170411597356638671288872154622128690750593724226530173912652305075420249363516505776086433611269490629134919019493004074379182941309924855905982494395648063979213276828554665890138371943483232845111479098129661110786767904308870002671645625163264832381307881156020229515502069405735384193737709782098116413263831079667210616563730512540469740411307770435849727739235761218682593632239244791736755623307187945577717313500193773362560549588696332817417630767655674226973411278974124978285502322437355806328561953470941523097915556897798339858085576274856742444545508420191838593826938926512556357004681825784496482148275817545164450490443896529929148029543880428418928674962017315742493352184809344820345952801696125550049315136777955836539885665008321162578025420584494047201601065666391989992042788510265148808124939449519315359458074496559884573266387848350062636772884204866821274891739006636711616203423353429601607062723989177379632566670292913349799238985654174234588379212779180133279562715713410823730927404455425005048965080680873540708009847551923147641544903460231845677629472917001003263470272801437469805906640718227697445180396089513149086229614730954031687340096012165680622262312740932287360588729948143700431713794204980925099133516200688922471994641105380953415245864603167069462691188843650448585134814532770901654484577238352926256974632596227648284718722447182869143128445005510207964835473043938789689779889060204345769068815863609995389338708894200803022126539127321558077152211958881955738901202796001446915098142359932705594048969183353598217713891459576125542772325307252766546437426170755435195061196890027175024828642942988323891172469302722315776764966848549298133089521121821305138439806421007482968884567691325843470173882861887567362489887354123027867778143940420229693284738937981528982409897262341786428717757074069430338433713831593970520728172363978241417101984901234853438791775568386819959082765538064153508334658386823169433188962310511080017212964085203300534892202473057309864230611991628858731476249511332759100533240128032025173872915991168284713697747678155577054247898524830371981803741850098397602430421905933561326816005461799062853936914856374096026047688675312739314551925500583157936621662048594198412604191254186355883106675765264637170250212655032244652378820661741623838886401091017143226991235381446019795893762824857359937136880450593670508000004025695628282609272024097664917941139406822755770216684146730427342300600227241208440530855658836407986859198454417253868458619776402255184561457310032100823645061040596149868627426940164260875756769211571581216783914654134229865614726494465921026397676170847518973286853009221500508780904498104023144896270019614000410958526956072613024078860222644857638097469481708681429913530235823161038653275233980728225284931007989819760872435524850027933754568676340385252927570577313473470604649448539484046696095447389412358194817704740613001557018114923938041122690175624974049176536265358107457856377676356066342101149517697632332024323925288416535519364076547129517502046697834157633001158767378055816065371365880309720615397889416304113597362167963934105240353887544445208225540770142131268923922904214771706477701253093196963512096207088033201800097762590082990489210962179889682034694820432218000586293080466817334860558884956272680512452638387693672024197632602090836224202631235885139516413296365682400753239920774661322850271516571791402849684891244123917113801432044728943154518141150206126474505144391284129046724852004892928494006358052343313918999417236917277066962088606115409186388414007374614301342590257561757200331935131239275862685415780657497575464639149901139842607648887400330004283779622056439261741214525338792691613978506715025642591221069497485974694494727514949911654675627595193639122797967645927551468975222830606180701504766796625562516887074936404117333951396261722391234541060337427488862790602330894120952376342249941281270066081920740393179545852040438463708855301109813558886182087841119792907288928389745123246734173880294671276733292312652717935065041674582968344377607204534889262064594268386784930896616930070875009019137529572305335624112618076970762180383141938105863231616042692089879176332835752460122021965490789989302063094296868740683671560569819580421718366218267381865064795931942625320995322225744637647925958357384315906563518710731979875432835383385780019886270954768458102987038603456773696250424707977287775073309869891662877494495474787837115028743393642509582363198364207049082100857318650069426036440230181346966298355233374438054611240184109615503913250990327303071427582631539889724935933907230050013295976221999955886737617007702033650271277146405928071083892433867707473277060824384941894826830864870853317799048918549576553130631160421305385626305355881453919476029019222475518861604324097329915403265145300380998335859947297480023550105848576571055596411799310403345661517876568989984320762439057851659271257853552927556539135834113783832049621127989551955413348513324156168536624886044325631500261455236848449335424569603722161687598642180486171361084530058949963943049363882764484831817722010791413598621515768603780499645337917166423812474130846071100725820647442417134906543263572938974811212244623258075845527675367136379849589139544046628422287752267482804569780782636216757822079104945843185785031822379078954851273495552213893513010974841480382967411032358573366751201680984533446628329913744883866341919967459958923752579819601308784853824941523004318976775566393444296213879026780621613418233569745187672317231576401614039571331917585972481309259193884668398416965202662291163863632388557157464804088987501208357570942256746969842792933641341448056448556122782900664953863980306909518201549219123668579609953194563500206275656649654713618370094966225180905957306288219525669283141880472214203699715268296927854073683090688690711724169889527092479167981821291658183880242618529622869414017691307019274447413701562955408014238393291536404083905109577467778113462466040557421376491831763108882270481849680330062563644594132922579816120372968421418858021196419152386537294494763847104862199354424314539891427456138622361755150667503236544856153112745808125202125386660967902254907611553236995337391066093665634499671083613698156112115696882427951222052769352970586157638231913799519271473526746848708571219123732321743724678013251834598179105669211568884324208644463400318163274537004355891318373157215166907381273276089875390142419981284151083921323902369631131293340244181331484281389276188205228833969215301577648387296909904042187359033502974071971803129736763476579867302090166121100758248832062722966510582403923642850345949602952717606939403925135025282899880453254883942865830477558797623714271463296209936063539608229351206495726056908099653342792231256930201081114318567001858524449696249704008414473627929038975462564670567896995401387863968984458485926225592861607469914738449025206947071223659310223691239505693363951126716425257723981334338420925911614615667472947460920685757330598661030079623994122153735836420993228041790830395405468030297110590087009292156614604435574934431398586712814973697616259713574585638386135651222167306218771447525876061304821432095520746009746687295332743215133962099644549778506400106245721010146915033362840048076224455729403530632342673447726362323472380245108963655974321928898334780977087619318005058485069851317670404442558823432420328067238600376085307774250499663118147188165112994626360415596456752705935314243697413463642397540771849128433071767791009980948832592524165301900378082908326466547058262667969305080819375321029920865083170161176701764680997995750648140847330943233389759022943980727308807967602960082498763436646347386330435385409996744532424210568743838752705541488444093840049516580464450587697268609306040839786686687058648285872754611103806710076262563669662025208624684764126023366813993415937380441104758192228922960380329549793588200509180085011631973928915615405915389630869561922331260945156017628565980429292532391845563512303776332352618792023301944747487532170543132964252285729399072906144248629746991862721582146308017548097474028353688963834725778557986439953706375670676878406187607763045628156917562955499167139346198632529768775510735844817830122431065434705677225114786750580290778272479647798815767845005694628703012352623016929698961348569474634182798413621379301646889794236904322091325530531841641815143449378178893751478538253296887338473611652517613167564869285818146515586629692489867120165941531426967693132220208170352907882883184764553433125133493848494911534878619748238734413227264979453036177591305557322330459503899060671788150220947575244409914993652489313566092545073495243454995536062877330255197816145300818532713654094870291438640253258624647374925372175652910497028223277137489281346660344911231143923801825635869907230865855695465301363397385092978403419328196931102729814411218786261497010430056196274848655389892309573881638303984173896010892245279233576005319873780156548739589727791528456928775155646559991847257030495529201972090970256212935894325764155201260163583609205122353640720273865606903984620075694961869041351157894089879599978801118081904906090913048758343342084528093686515901558198117364424817254922626814632034180444656116890851403640726885908705839331085381942922248934797233403530582346695995068223529077372335708523953377423627640688683547904550852545621864952756251575451603384105170022569629187993958505549133183880400382307057841031679506350729336635193907726039546254424883295087989702753306397476673087181923599271669412492748906940898973040668408096231468573334421767414672212601525482705100675004048106287828914066190000205649057311479311679971421315113856367076734332932810142007077260156743373669127424504449592648874332113749846906581946275029300872196992556841484252869391244946889179864519893308104651494766890998809566075039025304379597217677919905931107246456498219118849834212869947178609697286125554558993151858708141709949761105231817411801061096815521258520196390194693719477720613080372363375355317778395597381786209373368734755191101260236752179967650737100728184538680264195810528612927289366088364554203201797247697385050568442168730382733965532790268872438333621147520958958369242588502878659893479955691999875567875758586236079770484648593195714812564608257254056539756794932762912822260921045172261266475252915661931463054532456807112645278644443630543517913725119184770960645624079097099717340000054489162242684494139614011351163797954777709936775272825401476888393918639223341569859174711816598345082853068583165338913290946359912760225309662355237789998397038588932733969366859308306482527338025193833959226799791925228981184262725051031435386786170689034991861195292813223843531725718989221831720491755363612165459260297987924385645190793479241327862220612227308187313956094361849738361034298853576395012371632491121896784352012057161960065770370121275433270044972011350501545410496387588750703738739006026507731218155633777057756567156525853824192335711024649746775913860338765532521743881882232069065547213266340623314745601188302479334635778261991806658795911239336817396264426670000256299350237807280031664975415697334491426625339835222665093803524165713015009582794863655933989031495058009162765698364553719777324854603783937095379236100157965562361220823790179804667032934153173446561533494872789894874970767609528286220606919161492363603863922484113067003055811670910710198093560015342813913984871961293608506183235461924793680372087287022568960499270072774875159507598243791485185699429942908914063468886567737693348164106224354731087287682581712746996607664770329937835372624203064080197424762227048513335247131926141373242269591437029782671991726272869393584671953400203174627180134235148682138878775316619924033500835360153634855137320108885170408909868951080322833917030416228874613210938589155825435915482505730612804001904887796414822693991908392921622882012173002175994213877150774748389547470701112863277523133761219833204559864828166035737419144277929263421460999343325300073850036444283985709602316493616694663559635201191129723019251698995542619281239093938039574453056224530715458098021112948259726183796055484914477823009575228048823933437730213472187960930620680527483795455518163658361443425068858321008357805457055190613725591120827770683630607474312227377092511073666652084793770096505067790367598187834696338346313800938638041554999394755806883716012338303457222567675066123869998121867186295165708362626693038707378069956207364372362679223278572602939147010034384250982304413150388472138218237179073273012295667465748165348754099100774525239209909101263686845141805353859791832605701011596959671501277493855723382800925933645143923171160309104518777768402810157658368544869125654167925089394056774517951275052610580870794440744692371526632874006324544433768811248003304669077246031219528628216056326806032626336670063897943579554949502712077608338367758055546493145648307324934140487228443364888134870562576915772349884625945679694842565274078178573239534920936854981026109624422015566723452250503620904800780342582785072084811319875605081345062791860823094434228209324085060584421596950032091345926947247666970755856514258402958863654968926500378537636409473279471391209907655766024194849198551781225433015401788289169752734164041390617279612045998723121784489443601385014097333906245997573107470610474143468652493097987799754241295173757554921744023867616124301196226579808147396392771837032992374265233671289554037273258983629489798614081235003400224448785191308570490624903575189002859145330385943825345475497316264644878194727613916961239607393923656067590829522773243314010877148334097710567829512002074125655250136355313323478914562858774678179892143617264513181979492970735132115504785619230229877239991623080789375491568126768538925760360521990114563088379558714033643567985178767949591540102099585744407445459716606366599624430481001861745951768163347031258235558851488535864260350013267135082106886627451236386506556727805605995538574331053382925507795684009935552399333865366696309009378454030502428093752575945002413659742079922658528344929715271357676782840010318044278627515268763697242261207340154406484533072752376703132576531178376342822794823526177072019746077815745110908187901236773881418366987549053406178569120088021948617793312030576029330250355462569711748080505946402968383368939013855931318483193321378918644050997808712741584845166799125348329120482359291325269936441580943721990632336968555262317387557454802237833942994358585818256963782342951772482896284009648353112703624388170592047279095168104436892511552704302291167553320690724859781268891559206481975057845216619889508565062844474246206101497758911184757396034681390523317069344409535249589959146649330902956399081353827761756593906785652595538448584015070483970019879422671069147072668842331805047144522656184256578541142259211321395597596737839747260568718011516374500894538385530261724793179694524932434260381489256650734844026348022337153908372587154832213384031093462367811754965088174909188276827882662277093637434688346271447806867017516926757931672900740599201462656834256429731135843258222174642812936359168649604259257777909954007405685467637142262681646869093960894302399719705985714792916056054499357960262504372280366075943797104579507068869182801340448319913381017632648461986615161748628351760623773061117378710535627149173108366787834523833738539761278886360037449910350632610244917285317402222763640554028137059066953378083725852801465910274369548026475167994117294904975107765315682531521536303703328658731654637473306390391288624256119639834231018623901345098541651791174338933315965415757169407665612770997908079758663323799455651894184619109900318523743732460664867519328298641227254504424431155296844666486874678277881822746212981834416604519098482284316057320531212476364335480608478141593138444346799100677727728688833134072048319371656566939063077137885281259198842167768351763190565062404466305185949031188320415972495125596878150679948952630718059972495878929640050040749856572470097374772649499591257924994572832777685795278257963721196715391215559314511895023091585721801017884120713330475897928208705520974161295257064607640493032402496839005413594260322938624641282022671727226437191476637082945086410701655529056217443289979578881569405824158575270322567383037102590344340416255427303420085745402857540857935697878676412771773804973077598337185545655648181796543712856453969394982063683675694489562167353736892176593558937789709234414633894478356300347094533168993468402487785972558910721905415711287466561813912384366520567164667221785203076350756805280488367105223812617535463901462477893985158741423512926752829536620292338095138564135634586057843434525018065581303707765551318354643431223691191587406844974295391858649842671709110962779819381521358312835930255803430349941768693053124569905190889519537403059987391567277679821370251329395352034414330530334551174601139671438850120823835903892266802982939697422519556864631420501038958582698258866492216333985511536447238310515241829079736284243490987237420959860146442033877317370649608355263185394726487735588687242347350590054637368147446222030523575338980422499100094967406366868215232415878128143539473358664205520468440445543979710215309698889902490843748029530410298208132977222850167325281593820351524315674451872778745196109927623101570918097818067367801036399039178339139414165947654643696630316560453211900821996130210830976046130122503457529020102727909609672476515078342430911398914914628346374955815940802746082722829281949683304208049736294395965756435563388304023837805775988140078568874180048697296295937946724541345238924815799522436110134396337698297245597001826034344584835607373829745678623219738415958191565127440106437849491816876980423758733809213212853718898498477265754579036898713996048285510480593371177311151650001095439539287696168638480835584516025748073389984498209251964990907141476953715596842121484741295808994459486959618427415603883182544413332096228124278541281011957853841966969316121775007156765959708707594551382759058989612879686792210685893406487801960559183628755061343069040663321028870890564322244717311975643830771986300473956751803880476392414193460000249934514088920806676107736426260565586290025744997240461659680307884868048623532239832647622589590514195398756401446472684605750122361897803801749762738465497619530465557027624391306628926976150712955991076741680252705336430668761536333547330664391460190159940145289804428345204899755198018610367713291917771956983434649144785494935735672103810148894988757839627763759888849777415977059566516674305662930440759152552042185939100339280444446427988548690544116480041229910119745017517370587064239846540737400436703895871192382397872616388478894330249700492492706684890600695256916612786160866028936729069775585610334249802260463132528527337598940944363970042643352091469062196903364482590994529395791924108486040373998802706674937401126049497827023695254190294712199097967390518415061824091906978476402007858849068044050747423554897255408695066658622158177299272616290968466425453846958851086052300464604442553964894072719205082307981948627985797756862088461923305451420306308216522173949746037980781133435242775333374858698923597599461006384185443315990869102497437879795006429709447184875580304623829364197759943709732825664557332696191003471667996380495152115923845319323100057072164749387033909685744173201000656537202737782829779994766710748228912597937696905695335210877755593437330528574670140533014904651749173028957897538632713767375109911852915261738256453596007573500879551976661394951939530120903455064659524981031644871892268426629382943817119187614035713434159530557852932378837653682242087303714683713271286807325974198727843265732686602067456938380977195264264397807581654699307144772395773435311601809092688068706901028066148798236197115225456121761536659569638775207383101162487580361563371958940498913897916616506852091075863187434146586039563995309470970501133255664561540577435587734581825089382097453966651797652487616762547912019219475281791913273531800760910928857050112573729445190657946499111886648926726312362047948317009879927352202540324485458456626496565723742314351157742709594625691581169005142531259868199010413825955063239876005235850782970313744817226611950352093105846657098459198457134032819361411878837194198283349871458462376495275684341382706249235751446126477456475023977659057922848542622120916034626926973874344966299742586773399835168277801021157602508304607710406789921268121923131403094606125280416444742220886460273705987891898495857618421349540528426070267522742546583193791129467213909131608959186262043783690462914808228133961554610181678671310447510131756308652616508699983756434573465151549568721793005307925586571391827347553031653973467446215974928930476071679314386471647703898194252254671242444594624957747132598669458771532557190130189173635986787268950722564816214333233782123869662026989973548133338631241938036933155775974653261676363045603927179995239253620533887007537221590802010183312461912767700630806035699308601670676082978356229294150662136675007367589160310859596006619841625285068179361666407980300861249834895605974673214933997054885699698210657580357743222659834281788378679190368259261251618841893005785402929583959535370233635080453143557739402323006099706311208928244025284754613821344431590238398587463139043995878160582578507206138891565345252416205867199389666612952707852589036772889065857364603036435152479068173607341552062850010325926333976253382445957592720245510170764694435591880371703133772841080770506318910228918990083102004938901729406770086762425029201058975894015415550788245674052586774547352360994625389073529457479248660578095988296979192556793248901811066838750567915314422122046265887282708469022436531717771380915106768668588441266037406140114162687088364006302178336059692087566042663896382040414975158152002651748350585159969554463688534987984294150740703496740494029794941660538473651046134750419279556824486720843283865186290006045545193106473330135412921087974580869156369988698129317611115043858581274695961170647992340642384235780730630136987850725645350670426836323134863284744908338020433848816578905543866431482461881920068146274769666316456352433308739471992812024271968596585362492754283463728765794102781256533981605826184262612914600468516913568102967638100902728321808231804757228051060030008198625736336754845304623631878359242563355788833184640175675863450867423372505851444592557330275678490186328422976331557048146494080726169870670426424571546417073365535614757119608925229163507917191240274014361428747938253978871591279208076921910818389231624609458648506922057920216524020128947586467273301648158882360676580158838903338222390080544329002040718445085213642220588866049308712479069645524727573984159192680778675607903482144130099651001173438887772774351668396510943509041029670134366296439267294391121199008374559676751497613808710301722945468499050388285784120719451284885827038604107621749169399783925861765411754539115524976927286660190364814531666255232619966733585173526960200961040950874427449138302346251467606296286461553431447571251002486895293057970102701615543482484274456939921508512234732731415762993363309854225177754884214318363066276098069074336917559071557005521563239578941048598454947136421037645007921624847261596908523252828083616577288764870277764146307276131523491714004839111200075944980762782657053743502094498660746845638803394808535369407685883228814966778624319387885250857779897870164906067950721767031972278023749048002936714850793846721537427414062967763108939257101438239560070077002708102964713383207851044612515367109130872855380516011880366243874628899094203072186749861557009926381495330988222408237565682079003219319890690986207497564890370413937335634090706611410920592023968351205066220598721951428841266918571702390494562751870203260595391515252583627386820252837748411655115410380754463065649888185939628188944267464347152179436956253169608404273098803375440440421032419555618053085643382561072431056944097322365280497081276127014333509080533052927022223902074119871643786321132653319582503826803579499494985889972972814538570785282803266178706910707030092892859735284516987102043912374839414325933947287917888406683681333810619166109146393433387836389095660875492468286116304940866992260142499261744360302735769540240270409824346332371120107227446037143252371273185688490021638964186016314953629637093971260774806274410955675282249221331140985724178106046300520750659806279803852724322832299760097868180661481235076389904618860639243245590191795921734076100007944784189134702846444775904978575844427515152168165559892432866784553903383514707693908092042270214358059113716682851708269427578599323315599992926798141239278933053901667114582263230854119691794466648486889745859732245613144302132282446907817232292758152647015654385212728740903057263751557699829043363958748913814529008794986144728407728100714384475374306243742385760856515318850548768252756679080725242183586620303111436124022271911552274302219298926039777596827494359196218055585067539397674709125208465450570067201710866059648756345401014938270927969591728270465753843712136710293071130727872026196069563152869988652679353892713618164614899908470728385355605415215040075317884464608225635645666929502968002462559590238473472678607570993090690418059599470472608512617403457621555160644822602109940304522899917947537718157417045665154073265348015148802477383879644254971792045215877012416083860309822210172487223668622648472560209060644053475390847638143914806681508265832328503385554508869707968482381584540575999991051522202863443104455041679060605251867512567810523350871063699135792966369206884520213910412222258694107125010493143176308103787933225170765122523340897417904747648381606273999507214084322999144419596896561335920546875111377233555128690414514079713983055658825912034620869596113367317404109263140216407541535966522757527287471734658100991754557198963447526322198513266119450877833552761854443821949078275474951334300724508340394012391475547138743023956783543677259285132130448884152338851590358928636047248568530874764042418164096604370351845701618243894683297949475467950229633779724726740604891809164863886805374193725905835026229185793049243084213830796438922364945311842080801463097125782506864909193055337068445992723337560787835237499797320989827949248243827577979906298862986146493283117249216017217140401947186518439507370479915094381206574535835713884770161670625776087026010140485456541273912505573730684811265831414122524608310859646901808816429197308905901734589411622004425314533727581090994468938372898122743197330028490191472587344642585574215615027766213879912233878066652704587195410825540586619215285988884561836007670713538092459852837400100020190486153265682159383540661889529513291994045938811244548603219891255617087837652713485970158530475361003199512496383544078245857080618932043191893197489401410313120465708394330864502295830658827156096727565523690511957550002687995207924758086726550367246818009799690249311936138302736856624652929753521356255426732156877534409567517874255194165706873348879010601871738379124806406548273706015707350759933986342965207125668068762119971699443195052363298654740206321504451100081829665538463528158811705142503800201173792913841929066466551678614407844551059493341899644223724060889477945617506766096880397531588595826468493733530079024797877357938241550938552181283412652473108805564193623847716600643584942709699236053350569542841347715236962065024168722004939237401402264608145105136920876821076610632819152467603441484579546611577619811731724235728101067994247277983077763093618631113544692261843177110132262697487929816332917345122847433256876435848249572596351679671854010085965119113213232912805854610484022977167601241850102964569944297277377919283998264630761801536858845911862962495219450129978532452265701376728303675082707663148845046161433818942969433599929630891156320094918094958799948606353385276118635825057563102454636521191324446646848755590033494914813897174162475608045974680853558582998846099989816541514049908497131020657596767083745100900663283636428594708900426689159278743126721651235905955363309714773096922428737050337769583193761923837345695260875432292580243047168160122767215749120534054103935592810336278835486591179667673369975914571114505098579357231446819516635607961617490180607360322919516999330287872306370308558222117074808352047650188744982007192357764881745170511364630792899478736603725942769999335773012665519659285167102617363991341181104460677476222736176890228101868434289178343598393384612827713334306785025894084358649309570720063369310391963290311548019604265875072902314310939213320472912475641972511941872344697098308756074541992011645071044134858133578891939922446151801031227726936182486829638792208588503968690951844974628820283420210384484874623962057281059417887622512861447080938769214248567648502874653966466485545473178682133140703020673341579455532824138903213196043972736098600455506169296458908800103382587431458247758542156874233155656502864889931177734142820220048433240005608242053684299542524521247931865317762615313305443618358939770248081659205808276999023941368497612880374705533762059492214964295129742483327436891860438520982872133101572279080401725808113196522377432229232882339440824673389434020430344877659497963120731751461213864487622945652395442959492789201205809011869921417600322437191351713923059172587435251369293840212033821306623213032844987747540846934942874155297959757568599304960990661714608336990505662693779360287706970470612249384221462812366334632552703236129385836717019340725683230772740667857295001098869808242358545068240874859045814266263287321507597934320189225503120786863211958786942651494637233008258667876941383059279827447913994362203480972983130735676868434354341443909164279826503710445370139151431418393056976308349708530611278058005518559482752021426711721561096588933016677034597387556845859554675662698379091339618406291726647508692977489611231738947783586596068369979481106669344844872935763913579443938536748933638272270294432988813471793807899423487786295852399975154811352045189741718647314109081247335876691269659432720698095998834039443194414253759713910288329912100346285839548739560555433782612110367460040329813735320297613305573549432932693858488788779537338220231198217992104656356385638537427366220324793406620658150195630663389217108944101237205639057080047350592321915675553535972929151363997075071171994988644101029857860025287303077113648398313193161275547079678144818959358769220727210783594035518081153211393070944391077799288762509881065403357145162743844587183801464719277714470100673938955885137891622384360351884042052205911011373328368636211894640921201778064548964018000077605569252347335270691119451206811035348601023121037407801878512816559781818956846928707133286775222471040548761479799040551672076531811972049355593403845772024172843776214124338808585768976798910358372043278722454269684892342485332098841283537755352614503166968087271905721494954208662637124982342252082480178568318054380544708307818095810203886422115958420480682558347927502305667105164683570505496625872786327576593927406267131229851945272395602733405684782762258354486347341291839330837814468570340232877696243960828117162520180350647166160214331406563979647813038960325882434724402553924506919772830201778184854193254222880725639368009800397554877058827364268176243980905630632081241712972244530638425141902093028715741599364760540147516200628386273292578009678146025513711388512165725523622517451435521744894002674224004633408132126514679665728900835825209728519494270727923951838123174469595775228105089491285298475979134848589061940002525823774081884479663647294971156280966101099957843835936600571453494036861975635259541250247553492942491170188054930063841898634686895209259998209821057482659778367940759795381630637004662343772783688589299182306405897609220303430967247133640174711381557691472791631897955421848926057382209744464159210702901346649556076636897877281916247857396954950138443257328875805359521804084373051485205273157523941983339939811073509116342736566798931509097450890513145364186058514897231298486435256939865736852013380159047004700032384739028905145454968636956877717202329605447653375467253690139676536814548932601313136577544404202692516688580942342770041650150055791927636688117004743830608532493397456553736640674639975336774841193694421162889012455813973501821605686244907388774660017819946849515266204571450424172997575087274755704409970275051646051100192545345025334315231021484655233470001833456748891070497030894905766097364832928753011396073107656045033272860881010017224974617575923004293885976871724806517424433305007902100458528460144577151731912876410771257435774256411840321907010296745860061963091001104894500462488260900686706529038782479338365832429808687804984748567609493750458981529848626721947906805999399466959805732772718904420965859088502570433954498965131313468947514735847152054943139340996946886078177259742094467123164018645464301642122123397155172456191920812848309245558448747531020249604970838806998571256325571658819724635346436886045608757734237770282278462756771327781640160185749156807421695367904955656591979691481191770640838846123700502262583571712219252916757102048277242516897494418378615665507941627381133221744840363503869510676866773116724571692706710344113260260763489008283257381316533620217213755490233614256166627523850943462551013141110922585836748890450636121548773881351672678934387608735045071270771151107444603504986547793844446066230768355212496804770216669230837493496550402478253266716951258026119527058946887538816249969258986982512096750536236507150813866040050722948596727414355250980711003781951959253799580949490674732172809791789009517362990544392829575448461209919545626960216647476205453170738706581313303772691369741433489443131868260787647754525450482518473161334787545680442095488980841238412332731103772307075536306253545715536099738398658492145354553970054107784274909513798877240700997710313868066086088266555921690062183700331939211066076863826443050897009482417406965160371707969210275895569252198060493238397608153466365872211536005394039248960709927055572906304714306917575607217846023603019349726973157647660662482389822124786734893801746064240472429655105929344071593711314740673251487476282244677480133998681771108986608659086669134173496187407810365257890045293407127048945790797497195658965808350603385031924340573436926308754606037396005460997956235924497392627648236895249273200044929593177692478473668429199792640275538279316478125084861128859113393937072721772554267035378110099336319351374287374117628479444905075007362539770616422425171269709565533056154155542081919278707729215611132469747202539784574519393933977045755820424289757234958176574020452873878428643527644815557252644238039714815606437695963928631787113450351809639459759556147740774868343688471341549058729037130009120188828532718132297476622913226911276317314758788801629443801757399507707364590648109683865627379652201398124813332228621716613753840041564293394930847130808149181470783957543086622059400752454965481955347201318013596584182162474115486335236151646500615830353703906102155100476497889070958424815957775034539435243600236004409198048424381609350864489506642905954017861951752242853712209559020614362093458455180176141490364027914700780388614311285507598575344160597518306404592776331163973613168944348909011863927288667977304909980481561367546167272398352573493054227073722517785293864036533826422597112670565149865678501255119391479408980158813033808270801314137585535302950029788962908613130862653497006969907118606834920598031102581500151254138226480501094558365907700902674784009856656671668556866938852541799657596756257835692174991962822833892788082108443558068551077403943034596457740710756450311250716077821668051164656594912575715359305078688308940024457293700739082390096374896745068640307779956603061895349586437068736255719970301845435612568768938971088708172106425006730728447909422323823813065487163946652333523790856195460610041580449666976880358402557607046593158149192540360293656331244379620002270431700864502139361261379280063604886342316874741159557778544999134780410416072098512724268648062399687192239785815807916384717987475447155693445079806217833832046050073555130206555585921278433308157046023100044562832667440179728796218836170548609888797757891354475260121065987087907116072402094162558144314088233359700113499979743447095944659769527144892845447762960048415867035402687561560262512817718060957571812129297457094119580991440838460366923973527671042437726123159544941845546501057872524126727523395126560845838529057007392732486373009179719694676252096548959976108974287905644866023557225103082564463654619136363508009656041161205733605276485397674925560255874300224687159140860228691565704292084006729216644881905058728112003132179358068794433973014063404339826397608287850669122301490355703348708817186145919813084536569991852631369232131651187135314761076614969344380296770243235129284774919920686343823825603021102244789032591334379357371955173233969924044687058380807693868504200725342317783811759310738776500745736243924719888670756442676107012780246954557487340664888471060824375314640320619803225656078519796070746703652035303469776441608355747578780281039271534988712587376957443667177213262072512089141605318535663520920874214952444077384874211494507263664427851949272235578605071205340820860011733819703100412229319431478713564339217450442740330279737873153272812336950894264889678092908786877721279254906787221193092829647564100863659178515038381543767438895803665617508761963232439807998264119254554558729453883828792486764863228569317189298318631252125168422036459856421283292423027679947915863701623893142339658082390134230367727571117288434450748822913592518983675153148620152493913236672150264693338260892430401031817111920933609086470195189467425056840740812135577891404669791328518700917368820334332350048010385858054697652190921813240468505968767002787066124303025719026012064939157923051806270236543149955747134954086195253915521442802727076424885494531133655466848237799177104553565715751622002025393988189002752987082856563767715251191907541010863590362076773491530218629046032737901851478129230789291970097703300133319006221558447347908324532154221064032899145422770995789447420290090503329142110231029258351383090024480239453181888939593756643683040952034695218708377301267090695143338096987479809626467119931779071540693544555483416644596561478326568939443911038434427742207637576525053983639352496611189240705261186643466318789576435814058144776219965825337957717117813772716485361292652497924624986870475815598727466258121095382748681284004263272203271978428818161880651553435505322677742300782908336730983355612068115939054664483499133531715824757473389166807847203656599801265262561989696456884476418957557251735455826216709523419407480696576563717621556528078974960648932800291286984801152308228887056691761762372756243260289893746802612426036456858505179270083494615032937888443749390276730043640412388764925496258005750066185549472599814918524457280854612556148549747282171379879670020122964053134257225681427807434386404435952809802607630744780824087088147222688781205389609269780823122068548147605312475818274130415966244792939194465582600701191061899965079992018414097142324865731853592910491907898426231186923902355807803337627039307136272973513867267789408716154721211563347748501036120043436258359660522418660726755492714312350942980849659337462687982951091224104050573974495019638443731414016414578586068896771943419997873757835275274680973359840694345500013650187865661036680917523912532585467358788492596387361230986103179565986624939043307455712016581504171974776291631629389939069411470827157491148467557990745262201300761179433050121360819357424606759075157121441040552848225937352592810537335390484326942005270476441750425574408179603915508867951382680320144197069415505058754665067382516328272175459823374771343584034804234910839617462005414810930463244753249440111174828906723305239151328395205759543220189642309492242121749299622999601510128220128064116103835299845999984522681582703432062755755272999159389524787035549539316396216672788959933300357259653373089336168071825218925603481431436506178692540814082927580176902081598428063697436229795031903577561190001452457806563050181848044235003624023369632418716429264094806893213885869190998971279866537117256866224106513722060016130822967416313139655162966569286477747552392413963469514809310733463355129475095559151724331693500087491566183005893285238077811549759967824342949901995905247008785244328038377568377075649234100982022864941764288147057565371916792416088603811060963116554528335508831652097408207139063049823440482945662462715224254144653635339789549059173837749699506918657185673310828085012133135600784806384546457931288169016749027872075300829329005633288111960642384296639033723088299902761541266380001286565023830265248517152259901328376803932484721288454424762523208965372604262287936824466754818480319420883212719054559526368069141902891424412644505729291108124792238551372778699864463429183502871830215585168118432051241743275215584322697508648887943809935683022886218424107891372609663061455933712828772831787582828234133951663126722108292592362039696288076841500862501238344960740511046099125140133171209645547685947941484933961809876308371246771860336240190634112910010954676591205298043652422638029441723463483485851694211831299580005995911340506099995438273402575207148118473132345307019898090604374042343004516665304667514810254547132885593673769345459195684014940583110176256596315680623157985231423646204468479848259775440033420419625935206578052458307617498558373561729470820248019004495860840145790424510380197147458366523549576281788027395453922752885664486532991470237447866461515387034107719981989461034204167992680491187105711245945963979500247853141600538955320571074143755513844692679245384060392733623096600534748528047046610916606142731137565330539944895810203569466511390442818663141943601921489942889096066887787860245945369280644434359310560980616836653830648580396403074289597589935422625099908124071834825808746309807825144381797127915700825143010799640787955982365491670723129518119828923869831162048929191205408215938279295291211005129308069504711756246489893055069663950164729076474555673833647350783286050904112831070459813980067135420644466063009160854331191030299830916841003981671505782575437153021907353619114250024320191757179054382862038879906625908808637432827392282182615620294472412652447980453026207351926969899500929209035009460722208443046928546503315817040461556352655510375730780022292387984296643561420686643327779257969458986997348467807285158638746307345657354737317684837542391552505051713979607989043221711317719433758383203414968602166655434442838224013175084664100877057521304382421956896428260336291138795068192389715687606687021941634909970514071450198148949490107832771249106952599132047661825587188806179662499633347698193303999798099297230558151097251959828259265744904661512668914522066998610317524061827688983779588044659948777880975104856257434229616693559061095574376413622284177422568323356203558438466084669545187753051243684211180646050434491957832695509389434261036459965276287821406856259802155696038859752575920364413198767679179143545550721172116585248304156536081709365177873114194595959447604006674032293351170247679141171721621684463579471887324112996859796514567099624642147864873760185373621152074931680055879391341005515365786822766423719170538236006469726696731046731052687332797423874271274803685733101663219488046846791528678225823587350990677311929402316317463573425715384102864951911810463533645553555812422624899121918460733398167357631222961159050171920937485286385981142543020847675746199195623050124131791919631495515312104344914546274180438596446096249745435752713423909777468393269398431530691446513483447078282515818702009678978115182333231210737865043580316418493663142010132712835078953612590963184725467103747668455845640048815379898718569166703885480886873404287639380601625672646527602050640770235478221034928191990785776379799120830401371954545841050530085344045433323997612108510999070257284154810851173850226024419911820606195917352927721838640309324002256121030092097161965639564024348469099464939601985986880538701533090130596785414415379997860284762399550415162737202493478271378248904392391918683759811001698019264471165776430982647239183910588745574755093411782113007490739805004955511360409952905922162394793959425723248826111727716461704949560483400999888980497243240500146568693105742167368030012421936611673048949055321357398754764192609959008592665753681224476291098810259137159491728290727080182329761536272466502806335090946443475551189427164679707286363442456127458320439169421884118735986065526181416417844917727425110947116176065553844062604175561541847416874153786899784386462083460216886375113115741276877849548319876184409873847452709539821030855366745967407519641852725881443398321946712680898064478371385387729764808085123342795415538937220839244251801689602001589269464855333591919610088329289661539684700457498199584026040573127297213430271040884909760571966323814471492288655280036422103713021614228718037117275356459745496234718710831052784835387975632473462551955938258747825389538815586533459220583323040755235622092023544135708084837361650802277202594248062917786020832212406691827981878565766012228814237004806085305894980899505494435118252596980258647903567282594314681910546219987416866411081395257401885235158875074671412978003638786140818306685860351884248215321871209843731168889300526893046057285939040250285711000549802231184370081305043717382223139680409223511257270638753124360629231135290456921971990921608862601248796158542512924147437895659915376280273401295074017481184344287799500917541109675111253563884612323618235004590876943122602925278481751110353076841116519585024445713617792213520666254323323628308652809287964523969280832586226714074253952864011416592404410664690808640523170466976753024454512475356858483546303330553963615361374038963528696723800403836256010488017053109754536999123999542569627761087206677132027874378942297795659961511452322568145753779581364100252011944500226456155182489580973666603739825048289701066775626206346802778863714398782609956864176038397580955640177086384793258601770116641743394049043429993665545318703165737424507638551225089099474808796550497110802775866532608822168955854210604992992778727674510857785061699925655223051805416677489382658840287518976500428661758941575344518784159754547179868390696310598451065729585481287120584491785205631063563361826111802212472945633817931634235307242811933592540463124255554574129432035074028574507871895952480924329947641199804149115926118742217827485697133582582037696961909979319233587924831272516454823564284072570711010117019592243658735382680282431945642552608243228766095085642977970233561550188696244580307574226711047407770810472290124750931731485990117772445175454717138528149785446455738761084941596286032393737203536689634095647546794081419266189278837399259573252885904866639105804351638932052132794204783937687911098602219163085816592640541639615281027403267773821749185678285089940066455995325070258276892272906276067436324480045622500412430780856864084171465994516651883981739184392755830978274110470470721370970539094745573209512066264023199455001046559288238388158233221299869756237051008726591388043440275288659277737793477301416688233133025663305743275896141252042270267418880572108693306377838701496293829039114780229120862036160634388746415444556303120032837856673697484779176221479627484803440331890980768363345177192370451277189182455025258663539617994384034215206331284176560149327690019743009423646943478700489599755646484573721102344882546415968404329556661164388909475497240245679535406401557494032667051897344440257663630033089080420280339671768918361528514440599900411722383786534662724721573701902174631687858924314666616625613042679424433428982624081796658889000629969718384325028054022274620012848846510298036459850059985989488253328667641727982563921189019591522623079708957176105635349844988924645525611383151612489629712955230304647726557147423114243224883609530281398518538064147333386462498592884859056076655586163954671363543205333626638606442576613846565380771143982365625916821574782713176486957622915048027728647561207089489125170121475123409364485798506119202683390680481483472198178865760778493705865281040341010046102388528046849207435059334015224495994522469712038996636182586017765577690733675623155457731410762955233952966905811638763395080524230281848330091303009598788203956358265010074410654645723768829224973694910206652327308147681254450569150584849927273612626380148751709973752132358647588613898896388585089799066345592690110787820091529961292097837424165724265889702838424976356754710696247438279742335742926320468606447630030568303983041356917543067060846269659380153661468214689478235480867273216546655204436434064564776057565060044903666257695457983154224139925684019781567633940364747408507706905172714509202576891805408804885595848382338022591840652069136366658873989384694160151755950142018575749470459290790067327015637757503079722854202283093173688643926477367720275723447792212549194092447383764527160495248019198249137812942391570371855381285149308815153253520640928365256440507482832765169152866774113116518521483707498175898183557974746967130564501844257306606719173445562456486509407859107208333061426607901686032647132454031586621314602684508070498111802520162679555011517718842926345852107125795233521288283517242791374387607300919207824346658402022849887383752530067544602546898390463428818295326439277304600683869123899292767785010558544104826451363626593536105882039381390394858453225672486613968288373338928673755020172718806049289563256967579095622589029521653899235217231170674189247668099483109817573646941623833562057336927226845573631186520143782723597354585030018677230391534257745846715892287898837175539251452189105684440850168937158830208081981822027717631037330763207974836884873664148074939678519959422177228329193069230166354999999260999340979173311787881531147039100355860090142385359729597273394108834814497379591553733062220855747303581222486427006054755114295368328300028559617198874588603663263907258347540906330383181590152168369425410240624817583823787231046867844879991761309466235560609447976315315685997643711255446919178045195656492563695004114580415930843209743797041155494157697043167438413443828470545273952963235899252343132241034447093494796661258456754878003296326643416918692838750934689551867309098482621802162770724253867582523511232641444397726619241364442204109338938068249327724899598478649604987161485130123902915784598288343580315083996554449456217436967144171565950022008005549574984800118627428655063123185760647887178254296066051677314717475898116263859267614410369434693520823068718372685786514624002475245003483536404603018745781997780705674479038395728901995931028276902365367513570681412460191833957756262592738029510120133777598487768198313046074830408520617777402645582398885585355016804170395661360137035181548284230536089596436703564517731715275960570536098856263084684256677005773855490574442280125321405438601599914680108762175361310710305419617503819887583534553854106802734575660400317074943869927997790782738689700493196520856716886716608728264726409851756203476034431349907520071659954205647697063379535104775228840485265226112812972323847663537713233664093533305286690755423464542279132390342807891003386974599631902596431318698337621383211434420310911027615984918543886878334838802552340619052588907940092373591279069097747503586764839199817009895530909483503718025968544974272745663495725036885711554405952442058388765294276518753940133272573638892416014221602174841669527433831788344529463105571871410167782880180101714782922180361377154108462901355163838185760150524538969094747287859622046133135128339667797078612689911609290393095046949627989687081810700612357057588726688292241294372330377414821944946483764622658779968905132300303919947907849356509198697989986017746064425203716599702097875871898507166005797286958512923001367850914341025956740121209266178180632542343701274421983486169746754114845977807763133943717558320803833396274783027584026373786172068614577777736870591084520497779066183833341694627633161087484826551208889488788428623719631307283975403443178483748640527174556752828363325880808840861356539937532742835163223821405764494427107999645799414020399757715579403404449586259318632127655366948810712886617184202914290617524664914456031412463533870593725776550026219582409225959748782978314210179700738513527787459287725127304239098101110361314667951637606450400893853074072586652298367199088844642242212244195938047117627800267725576133122468985100225989977003453898618871696818741487823724284172883760105165150486952407286560234786986766864687947633558506553736917594353702835448878602750339947748843561274736257925666239309163450959602881873255366051647616984514773845043150143508116604349729295146050959121776498897871629641969213343845250771595254420638635509656354783662530741585359949459019581738201378629339189300020509517903875097840278021751621378131577493740791762106560253455168607097325851040053811942123842205851284114053535240205367392818517516802609714494640538739215043961560603881808357238305657792689557369803062921472799245788360237817398191784559011246788667186662296812668020793910630347871249195666850017641699481639183981080641551564340844084932279930732219901693146433407986567345138605587120512684768137225608402128103650286181755793697978625078412076132867572640363551151944911264122189859745446851261120313348265327870721822043908640657228648020010683361269149999273143166880010295231050405312624193330682195037027377607092298244320460096649073294239799775781439610491203587245074777052308416373959035076678138134796604184874037321757282528106923863248496813684631105490869393275332985494281964341802215980727567892807807155107927292676636172399977543568429210556805812414300505086073495341441844787160146503235917208088836052170615169899368167774581490529970043098101908113846665142282446171168525528545258881818058908012605387436777185772372201713497599083656870754936988402369385573430617057017841980790356751537161090469261550474103267884894372661424397052084305557943504308607451005138655606824969630989441572296387385813836527561845495710183326668658110868734301677820984523906561098951813395992753906934875433438779445196974772056606449881311419845435103403432130034247142656329192704962475698900334039166531898413775712969703458720726626414563570087466150087442745757743425711542021315786458517168797352169364892306937434528409721216400543926672825472550282471619111243369574971196810722413273873011894609325358394587786992197145905892329834865967215678732476456387302314026396091312061473188678128615900195090322103905500808030775540372739996641699028583954017173783689147677486080716208320108974000364083989893029011462232415071500132983427134931952371253073909425923244632218230912504097032735880965693142768266545789849628556221138747715782057651996604024707036872553231313019145236591369044082581256175690706542632914895823289249540692902117800052793091524096347623745675785098951998433408633595941459440300780152791135303884710416465332507662180284828560783947093431764416492421710250558678701877406390754305812022623225546361148344246869908193803148721509618566044489136983904790039506834099656027083483792348105175728770481257754762047042938737241815529944494472905839111513976143367578568785489544370205282745543362412979378347099300967924425846922901115018722210802818994585180448279508457556463394840710943129244156655757473973252992614048061727860063762895278315009129541960970693070622760542188097120207555843824811394019085433565849306869085769233804737824298903562961541969666188649118647739886992920269513282816180240436237418254261778783911707900484199493691802413262377003931013530564138984929570027782903882146331690999185751969857936786071482001539865655336508349138422169410539770736254940035089812298316033035159672728592701332487980004275058147922883740763342631621054316681729046593892277872455239868789874039974574730714172591673230783866299728056714707196636569318108273488591065329081824967876224405439084316953204283220355917278496923329608207559134493837813513738990453424727223835694443982501802577728464183562612594201470075157664441533087821568807398244247376080112674308674952149703169605615010760073213074595180548214859513226696127713077294049162562330527395411607810706785988756447321598464205829770195357736587474110940121168153113089979969930149540186165069648169444048552666147055208964212011917106677593439576631807498097862867315472073288076523545307066788037577027599227008214531676750779615861432822950574259239958582294499010849204972750942884671336153559272405407368314962829867322824700631416882360799555440292088307959764538675500077721467730386640209533097987278992116422532397663452703448141305570516153413994956837017868818342191977541363162746436062929953961540382507065756014427726692519277259547114684213771249896984346855065886733107910455130582020132679603264110847989264699945477057859104813903172591163550794645512960251864104662555575981223389680459887446887827504548743427703737486773891051456253323922816473396808654430164612343839879803429134908256314536348154490242543126373320564721120567408114348736796734303168951379745658033573532171081724161274286810862499683243027722368934472239716579323964348177761335670717246439994187616538131273693875694621174832085294144432773902560841633947063375008621297891430219631021621455230129711303263011062695268528117850003747571607261868145302965474761722308378903434536750832033619818158006216900052273833195935122182429372057370680550483265392925777621289724039593010908692526605039775888464217213618075418953775710654390302387894423239844815497276579894794074739908459235641895013567064472469555797700236265934150300932606072119826286975784712746773834770253250866660280810543561260836502478969861452021869718867810184923133271458773645040435177048843343400272737362865419273422404271154036446208190438009472271531497643801208119188807760255157280696208668285554715424894982732368477354244757731949364258064244927983360044393073613901550402116848096208929384947702349645419194510096306712831080863838491164635579863379529291342141633232540785773173798388315979773521503182126990281488253167991532953305154001476461896729565261850994810475519781975770837910533966493226982270233922458381061533384393658304380385265833997603059776641710819779891607456944495234954982268555154002806900625405511558423702983578847208138751385805918717991063780727379320734771876939227643227322093499264925374513172881920186480823410821665427333599879253758746430530004548269576400323433754665255284337282317038948195589834265397575439876649456906963465535898740147705030492481009491544672154869718058012469181117843439319107183037030261309698896568145840719284451472289798799528540800183857759427344397153849015575951152548329590239444590160454566042274317541984364169834134840947282936857037047586801988559187285491858669306709290041251210996323983446090130001825719263026795165112390237192235914455009616440918768197612374376216456605354407866187658393668466799207758698375492141526712085627479465820488872030126334924950891037620098562437462559825853821621902778007240438559188263793451143664195471775344652532990321209878250624613079807927007247262674927994538758562079283481726463827698055383647118297451611879817273633580542241426852167736178471564115214792371209692097903438629545768353312989285132108449706185861860402063988047083662008913733884260759271056554330028848603639463409768814915733647867616533819227419691349552804204130728019480143196038597708253184436029490303318699799753652029916203639548304414944853558914807980338782383781599636739947658719064819207889230232596255565527850378258784783935165158862127732114469799354156216105560749750857045477816081220540848222497357831412122345606114665394802502433919145786978820922164909892566434486873020159941957806446266366691429061824891714808475964366006516204213457116183293124119857127433997666480728298336333070226437116655141062697801528019113566286524938755181316623428773309348123636540688010201243043932165444812665662340665289334980229173230131371230245758138855479073870091167089629336358731014463296748412253888726222960875194966445175527897022807715865970951126065022293040818050026375052705385982301167841411457289632196789548024002877245383040278438635143395346888213503535128462216904200679394879225706888908331442720730600092543897958618758925230084278805517634605709070350257565350285958081594507850360597274306476205760226416816514848910639552818170468559831296829752171349923181525545076371355636303843634641324234103889277335095750217396055314581670060177083960627737411042168105533971301997109609424489056071871234320305236270925669082298323199859729517688550496184819708475337655076293638057477650156021836082683903665531038642689452759960821715491767941622220206923625775301994545672838126942749331789495151840156563039842513580690299631428039526288319840652482035053406416807753350327919665522276822591186299153245686455980884768287906934515558286457035830348789175451014921669071588840615076443883074267997268845394265552484410672622345697956885002425472496704965424401426255764989959386838312841083699662354338413002192801182011053430235865076865688342446514888697627465320005685970255017801576845130018265520317909821677418758619163833371801122531900130052570246631547891440699109935472708660369281586237735026501059089411965207950423490915880846316298561398979936955108544313875746841079765986260272524054145644953340387297506266614784689607659341634399669229256398101973561001631151594441017947823893426248044035342367645754024843850692857887009683390004379590582427524032970623140496060371513939096864842565935355577971541503721440831716127947675459635854765845935781045978201260452915550616604211549785927379302052831331477883670398291369752791454541452204847591775572665123784611708651148541760690728397430910647028999290663586621944798492530399897719195781280998620186858584352133085435738724481981542321282322237715216223609325357438590000338059098709854432025633268726190477566864716659395834164905326461715308733424884228940992768283147850618478370632320223503523291023535523932539261777902259531680300882660239109205344901216201678148872190883829102705744191703601928485009834876623291676889951976505407955314738617506014781180709702800984794237347977591868909834392823130094066445120501064701686304182628036249158418337708179096006823990110838814283127526960141636887653970182513787277545951131442038127024162880902989059364532773494322315091167232941738813431841606611692700423490543722118949890387607378136285806956186391090661901245120867071813016473025187678879299429327632576826569598366830738700257769075373438197585514399815684035912806975798766761610843726420166967513459403202725046313472081652162724710166413130788791529189918086810201805805035367442211517278158927858855107640303609688762860462209722690515213198066914013583447223271731852709101346737541261574783869467464285217228193948167609093805881053074542620386709912294410372538852572613960188853907739101523124601707847114061491110770999435692850458745611259629580843477031859847292638109752892747645255268122508354223343299472542600094010534915416793410986127734112287506412358765062565066357024829885208509803303523205139035479021516647136675599053592466320373896686661001069101404600846612765581338486551833564737391802432942939596168347044246412501535864436864967491134236163739721144298505707028572626664323721695821551737081313356661108103085126587963830441688379430072946293278599682573940286894391061038550376782699012165977083288507261185193243723422448427446542194100164784451972343947618249825605723233803031143693897790730335073290860717323867705274274111603599513076046789939629503556528224251039271604219978810271588786635238993119502770342447362064828509859842908565899106526402773272325297829707297095556423927503944969964550670469808355975866770281377399982941050498477696136147220867657978730128136113869945121541531502296263515399690721044708867171695940408808681084630302626530411414420112403700537860228593115721625709627299806833846677463525363976272936684503937245889823769035068008774113321223935975289490296145706287657992576898135066093328199250926615213184831899868034605821750081959540214530731823494215256911218314485853397347460020329938819047212422782378441705997344105534473782396216831488338960275056511860467916857770626908997401884636397454538634703765223630362536749336288735889240722125112953365569760441084870904999820888419289569523496729867946733966273345592821009019053275750137032956556788075566641905510795815043927718550769547246715934888110442646033027073036626245983838429961028677794012559201796452124461956081344151555219767291569447544836643494150192869402494588166969159273720658845199411633566227824389592670014284191581053688271628132867053903862957489549770237119546545290090288643488324067628878374751600132142549798434365719711797799138501676320452941698488847633867012818182128070813885062071931345667361817708526156226705888092029473301189873735426051725205291638416021224029890748308639439705792282173741667772782265589231206556238727692178389115870703002313502465029814478831767911791094422033875238559824795267195001672620500877678796077381784640581369305728104468034194852028146791061646255673823304189304329561158183611845899707033196119530374326978180240203603827936403438618351732282618206413218984834648534239508915196931286151145084399988862322394435207401715261661628880488686627085737578213736191955165597021108776575220627459240804797383841223080587797212689819327039239349312383136176097463106419629071012967567628333151915963509328501109662925934805212212571778697567289666457566876718951079295340602058095614325200931937361587723246696725896451588347117249189583046553673142406318192315589142368797563973247401263059187075570754174710007425827690125273093620143324709980767491337571093946100359653185958414527523322365213233288168894126635486657062720366380311644485600209540026457963192360640332191358247489452348337164770406673094293138511423187469596396600209851066578843614894585341537728376224676284892026110428543457254280593097023605250621003436035560355841361721493727139246762102211576700872008846071070149951799719321108095509450101459726320120209338776531375262242675416901670799230941619119310910634380995442435944426454010386648509556632400647367039659474681673707615686375824630790082833752609652385617419837807666417589190341702378144311637800154998557019310541279430401123202856250552536046975501427060860223755703003988137262093391793863987320312306578875718448759582347688780725863898356634854871494403252022111601843358941707628319613773078286892085230020727547351502158863231912106479683853244657646214303107324419189614161470931095061652474271586626613550518703506598292082819926352719612123003861662889249112922005307857921476965821550133988201298817895864715864267802282279124814137691954529894308205276183065099746535471561658717451777404533161543791046703955577895658921627872342930264149635930965366297102019712512684778144261795848359401140726904253364592503203486084804265921340729195457958881907615187008063488500747316662938004555091178649368319986389000138812534088988919613508154962027800663122624355881974079427573515467794061914747403092930845645964939669495209051976573697062280323662727444956764458189548642441608516879551118565519674063349618617055142523546345509861834860562931729450295842362212161184038860835377843043070004073164032202272701191839620820630337503287378320618008854185035893960407692432470023085656510728863379939106159995964578855611056118461810797461804854975830042165093664750021316492545451551525980512181349304367839108444387255574877742216425180377915386298646081444383368725682175612722640404284103711831578166714073986676368455151249045088011517678920385681454296877395352012379328161731166296150711310542906427361386525776307371010824663515661651086103263828024533764832129081527783951153607799717903460689133162090908281097000087171263486248787682161540650362241915842482315177523246491275838386342600412376662666581923704510412921822169937286379964714919795898051521634130665639679908367652567861366194233138488955782157805121789402218309635748653395743078218356832245675690226787007467922364685996119180951082429725579533603734495651993554631457983674873813368013796123832460465875189767089948391577651990157618342495064677029761079692278016107092714419582136965123312604537440062480319203724137667478848309289398456658043482830891142908751260668719100747797761116737632033836344540019499870546673466937590250069922979716989866627768812278569570213141060124688768370156126579210843893228959714126719915300949047001933912319769228176863962174897251511401718792226498342620964883357159660358177658207862167678772022581237529168208387580736790791080719081466551186727191404771824673028149881326680052916906185787660284395753318434078932571319519228632523628962611889485639236298818270412042176130220035787237281329853853203301601285708831935452279075489257604980759212629545109945906633407732987204715591308569640290254021593842257416662556110003583085519232394477030130718825994519254678114175176140832420619784011754487957816932871064298076925839816017842187042251182085014587928583816060517294258203821226895610405577757823018831758484025229062374265145982933601494636820306145232320613331898464381564976905492601995600633473554492642215205214343230395384379457038915170975575994100570343433777116377797309053013749266315908305946029592269065652094499438427475178546780541498587806882944893828299435050537979373255731320972496013357585030143198144302597978587268119106503635000716092138058360352951583051843990607911426489292844974400145246465950364592439023076535251667727422419278253582595613072285625067276126313130323208499260509147786711851493504212647866528971986097302667426270053553818368770632147844429385059574841422380422596704436296369199522669023476575392787153987690449068446600795569319954106565215210830895604132867597299940186787827121838698124112965755527098759943813002452892368507132509627175664869507970778158031845669891523404797105577728034581831001739269386145206045170117680365588590884738943548359956626255503738456142885824434094386008280663056162609462179252607249651986047569487274435820179618000895805833461208134751998438653473255498518073783373407399727218384251564008155013504197781283326821466888767156578649429388373394869104451829000804922606420772457835299928040220943497414708834265643505098657692248386809259198735387906195894935294997387461072281365600869134251928353489127618379680441778353440742154571820993464960025198783175230674701004647642764173611114706721059278293094978769949671113154410191430146433642774265893822051072391728514444468188646382624473192486060523919233000174536606568751560561679496068187108214822515904376212273904445986506549451330107332079614167809755342125386323644489517866553970007759107168746855493212784705613915085996681560888094287924239733440109409993721034091663688418141103791775995564795788400703997867707443904441957300791370369181136877488957204274894985831527721850455739609420844392765022187089259911049167086354624460757430941123568356678325587117580458582719396425628953790929875471445631482774147617281169589506821723083569783812748910279301367622471866641896984713935370069836925309314479981360206246987761002518864942317331354369223811633215184382803337559069249818523104598908814339364861890539842467433479634669250464562613896629074358286176692862272151731067421329673255341357862812946636061540479259780251441988985003640599093851736217691139539827232509824766966499442446878729093628291017223682874938611244973745534125657543388311171165831173349379795042726469936021797707126908627109262628677717479453411793763348983766024646352095503311373229749171505331191532283617509091909628548366537276073954105478075184747550232284953714773285954620413049948846986044092903488965147622686280703336776379031244803315411273068064768626809351940065078813327975885248956772817379841955618055854881165342693493597558655996621147644867221520845461629610723728613147466345602221786591115346672858088428491289497768606164104263080492136743637619931843720863955758307913316824181687191195681999041142939799065864945388021824000517377156912233543516511875942964980047020927525615452988303156817432059727887894453104917880800000108081627756155124722018891837360618901904059888802481729958035749236024302703190282437924689346597268159019280320576387566539129387410116299614390385549779886124542730943433793276879868022442105921807918978608601599278319417716764431177721692210757488308363522786772598994573387753905111935272477966191434264852598359022600295182885167890242352319464733702731793938181237675148637141658463266047518662630918389210305689143871936878029648215502242807972935922850811366884796876924292457602746938030319505087160552423533632909520731210743647689743340451048574817617199230572466355721571231716525300163334935938699148881637281925507014825658993493814177486140868943739283971069122459030288886941145304812819437963817949315370045394440245044284386970801505675044419316468018286696469664562348620824340698666514252069363945041986333625291823277773199428119490766197083659462649296778666332533764501470729163832813180699778631949782127466340456097348180186820025346028091008591569274581659590272401763873115356125621392318168694740997652452644090964702401586392083679376236653315705861359902330616841543611544784250781383369160075034131577908759957723245487416714877260094469173395637962144730475949284979602459995017366118727887768455001638707871231685347474990641759906681252311352620332555931296348149155458179254869121106897696026012085985499101846401460704904930963041407211767176463792256824143224363251241592607924932524259416458575123765740648783634482871684695825942489263021038639941828959994525039035720271289438325423041314591229956346154589582091683352750823406943912443549861831378549927384564795751276944266319560971251188721928103879717762005035360886338199546549128727246862089235353033903338193144458364638328662240573521714264230805116176867557419411178477264650518061521117885540442752688460225044938141261483395882387493894612039316594846702895561496231048501760543923698687153515420202699948649154905555342558396316461544553043086815662452762333281777890257714748549804671303100999197139068291502932857991324327131552196538420672940824222797476106242928345252112504519547364258216310096103667202079694752831339374145749101272712774665228117330167774332517440446564285826526072768240202544408021076429937361912236538392247710494662774764533699870261531450392731075590645911230245408452841357473055726648882695567004544014208348111138863069745949093702932729489311198500875713813956195587906067650055857633212800680311620671404608915093087667998403887187534403303044788465202921975946756111909226049721918218932564738317132499611693467998367985079606741989060348570321822724320856523931479383963928418737959677612710913421792992170596358660393666919760878342871706759485047831401656876705139845862513239015976939266940399639166279031064112094082168250128947785696742028719114893111119104455343926254233333132395680472385112594660397790459875349756458925581998890736595128441686123608579517427602380636822535897881243810749276576326940397998764044614911420362643087119155717375543851958122322896266140197890411532503848503331674415922513874300225768930751821527122518067680228482802764965252928165144146849793648578608234031004795887211933379520472275942886510088498757785249984332896434174053443854460688474597126769710340162382749509879777305203694890550842418476345328219096978721555411974536052276936003963348576701542540800034750397901368303050238326726669715807036021453326302270371240138414965536903746295429965124823240594094427434612221199002968761899955585857990327169953546297661390899755078146052453512779782997345957108971684080729781739840304462401108994882155345827722787525577220697490787068878523076513390935543000567325907214495684340039549869498750580923801007550415052951241173189766385957291364105941642190520148583820128826216679734659820302133233866491504462145294385934240878492535763452644775154798197534179954878250671458995426226048211077177563716497656282925787298687852768111974208703923623703333568733121788353691743948555805099397202717442614894829339627725544877835928914237431723745385035177536541872051659036021985952500947371855938404566476405793863319155599961518176876088308300647935990842852730612603390115132621933153315079747635323470512929598260878285875912236475217553219783331680173576723843769175696600025129028098897946854852672058133294188549703012508241789615595592546443940189568065337532595669463178821837145294768009361327438134985294404970610130450095847341154942592072116033830807357293350247499929020594099480103258132933619564185792294806040446875962187862352921823201370871218711703196789324638224452923558724588886894805503987650152646009116097517460349362171675724262263748826227410384620035405256870575823174158886937678385881573473735198332454915543780434339426019698126524056796420422051804403747749975165042997169957704474142985242253899089349957614582689162735701578492679992813768377263742183192068041682283581791379110208849030300038558805009307022008753745418720767535202169296837619587999043136554797564244325511348370175666414787960954519184064841465753119254376679514249837574624697833831164321118351415361255328968841952713812214137261364467710264418058216699050810659731735533988091478155115369506629423991732785295630945313814533623633784538296237792628595846894286522558982096239972282950822563227060698262653517729434005229178630083338778181679548690159278442820523693295785106499282230686002482220829410232182615066687573706966021531929109718100847915909419728325050618793084179977588161756254655582950743617103514458325433277834663967858713983984564843196165353582016294212168107734717288271163128542958143380878478976964606651705325281829516035022907891181558684355090940610771149299856366265628212393475977425546368499224122783410374553104454178797914710755910099307016654291385810461507151796443253796347777141102591156947588096000307672972181880861248402249203057663036740620797079397832263633348447225386180262865730875597200939348629267078775712642765896904594710465653357960505350485078879624025025219357862766457064656340480230303649460955987778956551838272439581347684037271739769999284572985231101821604992508433876130602465741935145370203274809845189370272556150123945633946846775194531881715395668532996435175488772195233350962249799855784590786602741751650944353788857196770787146798020991834624769320231541520311231127755369218614724757181581617803249551889220755337343520944191179341273059180907825314403346054486550135732709201175630879644199838066744491405841520180932021923213010321677219609434422188440715538862813076021307103119268831655396432689371532383560174125010283426892788626183379172962308058368195913408626161870491487851781682257606434254402988782342519959934980172760067647006181393691910605752270818876274443146292488444215467928667657736623942635381815308948319645730303417409547835923242752148553359519231600985825144491812824477568833251814407988606833655091436913101922627418397761399033748465212789931106395999403833138118467998064160530828395037925637768319226690278411317351956520214361272563464609725560569964760092317068257402768059423224527707689346661690105794760219426304263498732440709026996526387806417609711780167922066925391602655692212362770045987334505378228189272488305048947115272732494191026451417207238751202010481498763820262979243787317530649933463573650587961202957630737626333516617021518996409314668474816548863845401113941091272193272223063814944489823865539727155069676038508855381031778441917612119529453385641846125313384241688375059611114739769898401734766554795850608634859538373876890945725691650833030883283515376106885531371847654174627452902326044590752192175927008517468103780011842606084433995554393782533547055961265285016393215364524166245357590620187169660550619320498013680133065633838252778093303933228797515709857965239391445313187682524296916879331833144021466834576321680950057932844687560265752413609998839349245415742839531419167691154914735157260467585368432758168060810359074731951683937812757999113373071249486438925380664101244321698662211156547406247554934958709448747430442477722697554459304212627850174118916806661167436920630042520474432520645377300929547926422895890706487897725823356417748031303662962941692514768646453821307386801884720361659334332373703364303334214922715125958399824407054207657565959290668893528320140810521237362851410338999473419577372655883468898998534004832425273600909447309146089498094087067511421281356847045734617715802382512240179407853718093224968576506224106574062739468190100762548576653412325070663958789376718451830404702553696623428045839785519422158603364039756140748845955385514931229016388293631485707712583471309017841441720445177637344086661484791723863864836579994178968488457815860342914374209199080732680833304987883466635190563651838648736238102018119874737420131903883853497909893273699273313068983703588842076744719699968805935627424931513590673884056085868561397447689730333910364004268517856710987044609734350813070824262761453262048014091137736389434246522741697728465385946059144253288117730148750981627283572248154900161595139836541510634858343819051424439575820727587625179127013483784637516699808319238560440317956035219082674974878337728555024179327371169959323163101880064536395009052870813223344359749010190003966259399496102698189784067279586168920359844546912404343690847007442042427328489837708706026435152092717180138009713924285810065061470641672713539088766577515127101290750793618892197913514515112597882114134781453453657537450083780039019820277405359247801050706878920540957162969560062159573982210699005588436866444120750219360741239839401648526965524668177908312121142287280315252864979707960856797375702883053106382380639998155511263903624198640554048993687791124683470142573686758222512476049528716615689941220288092331639480239376133208826896805501881584068679664450999112768543537379468396649102026942131744426210555520830959755862531491753024600165403021791848101188410410600417244772302143532634429995008216642740368593604561220928714483737673286528571932267122770941929089104491541270903956924056317091272854397562449886633782206784557802944752348321475266126634173581734219932885363785602536548379669170968853947397541088533390358535025709741443193299339861341213137437633150326186131718965698325300380183545867900856111850923033505482589727984257124682140419173228855360051596261317483004044293231678914810462260015443319767840576883615694028754053668775894134058719111492046018881634384647017336295892050156252263872041026202802119685242805633290038627617754799649700907573558765714380899586447296340960027756111438465529625888704251117405874782871755947902863485952318195213795582166588054092385040227166850788162823704963176398516254340978924435175316337518559510051007582250603926605524293931585257414584321764163330368074380637857123863106591145727402180605546327827864287472686070755550767919018729322631517830583526549019827324779319983488319193882774239974602432532288465482379945795568153089219892170109822219418428385083370983455485923538277750778343563858731906684905637466538673580128420643243158862351116856075727227327132240169187167345538947584405583929963347284491248762116727623831556123524991453680866275004023528316383212335362866140706494427025007596348818596597163488044612054547123652204444858575925347262401201620706917797263568443475618671362233894469596236164516173237964742139498556314222417941934907137836902035931892072793883099818261418187720724143594626663818335843514372639683390052148203553249300164273197695932428822086506741302484724873656552520705598268731693896680678530292099900140033283557902302648770781115961437576112543763141451865136564770194387913964189656022785864763599378894759867047854757626501422876178466578217841441881788459981442164955034176649162607977615956956153166703705870827329683939075919198965567286982479017113061403583367387243753365629337272995800453416649182769865038497689757355028467957339434856691873574894053873059094137630462913991412006673394816311582652065869638027496057407823484143896835594188321337562877239535544497213014381531067609749139020166956243033392969238673469728982213481220031586856120258770163920330195911504329466612698394529986859498202661028300434643754466807789512069048395873514898380871368538132895434026238796076982337658454769190582497705734234067488316045020941710870032140798207314297619471470774332068620920493269996660851579309440985579318981394848763265025637279638341134104269473423445183131357985864828912111380426543679541496179171706149968143283263635921613538693002050307220269791891459205041414803654753243845627821425464717666167451347655199967434085455366412108116931591437673032460739670671679563568177417428766384763727558853254649315298880290714497351847740798641908736635453673161575405415339149088435401775646226379520873021485094669501288865136911489963620635121456070103328157986643581343543017723868746085504639194958277611862225554895201581123859794375604508030666160694637894805941305016532707467983962713028192198283830464905144676683947933700591907164916927039280937800876390912554240734900255016595713564145437304631452368878206205730776665471960294152182216144863401585840644370431898449540512976056632939289456424331457306135342058833095735220019150055078746362899830935306830363647695150255954520584328456453308533304746824019746304234099932526208225396713981436245284945120284305379073793562514013259169557882916384645252850367891680477056867520182963067496735815298896289113740607907461932853658056576727915563269664133552338239645650349192432669460699242629361984493347623641473049254241664682651741351092986532384347762333000850749906977981354572046938284773771399407656233390651172048453572605671584805138475712118295123516409439277101382563257941290797322110033616297422971280003810048524409896898071720858657001547334580046158499994216067328058217472623046458105278601908368125667422294830224335273953862022432101588043488263170079780327089718784836396615034099184211151048633901057858171345584174807114428989900033348243415989180774408968482824602059739075015883550485396820040333436507193031933532934878189648354666874073070744383230817983079181572259884425327705510289785153795726395610455166653642393981468757680328299251407602056044067953402009468667377658990151223242378242731074929329844562345758645251543775936090972982824141784178404014574674076927870700941025140395809328963008498231666418898462980532802401043588769311807806682324489602474190771563067888755387816737697133737170778711906050335015850403683404335743404563455724913031737450656261578216648708134521839825165732276609335762501667029731229991139682793478379298146588086240518351024969325479488332085494603307516482127795001369964004216003841579780670926196611381395513543162094775599455240296929033523352184466663207836054472916511022942660114048140464517981403555055359215612443993728398280630652670921781386605121352817847649565666448174772165297945326859196302715689522925741820234282714904665464022035777247887514613853734089656534611202267086394336890518016769971691827357454108091689139177907722485817348368488179880356415101200475323587515417038397116662096107541175546551730905236589180953306272018178318909598286228445546556273997956644286692854123518319913930200685955522716448608896093674407458047939075277411030351472294270821580813607967140490493749341861896865431189587836351805193506849853707205691940757382035304626747832474763700857435951576012542872526242398640868385723355989998612002334525440066716277646256066037758157740673069763373092449099882895581059593324070290447721386107158095984500635821293085360047994164059009747960316444221224731118820142400086921262296151380596403259225310826534028340251583477302726588645687654557706841298245180195792071606541673407623283356730575871425877634155788577328707752345357018572814840607698946638268209133994947089328771610622185329474482535200101034248137838396424721314086557699945359987698709367943543472882754394986475093215275095613870426694691136766222343713652647149843795145122466169652007462417193348750096416665963273006202596877997845953331350749724869088439984553625638663938938908352627610830533369832557423327752275489897770748701705569710170501920339668850526816431613082037649538846410038814307441329782748832582393860152110132717590334713647221471782045299820412392553801253687193743114109969556762558559722622136834269890742587226524062172670576351071880430448739049973719566771316102598817316568937174200633188000567151638185274710889865215222840796604862203326573303215330438252171456370473034435974019452238497363777297340039416774353295182125836064122932231181366189029465141757611591503530879528950305828645770526821795552332355364624717030492507949689779580411062596718489636254095984989670568492431002668818080526299335242575250094949656129623870811712288680018479878261103336201706490786585694162249217694243761866810844579038677951219931632513642687267239199319825253085590167414196583909225012367343452591426130002485666533616196129102399337854758409200923391410585629485375046293649484493263217174516151176090125876689102136455292394753303708936758245740345561745023822346567077403257101205281756741013686942396776575496785322189413804004638065899529738400568912833745092437577794394290461726417549243470038003263052454490115484486211090308610914022590683154023772189070184384261890734824222706410385422639400907170083544292755444721940975355692880592723344965631254114033818368103132407560572522038699963349117740965305660777682396606522807235108772726894512099048854642708758711174174038572260014887232861901878716597450278847502517836698526641354431471386664514709895626904768538611585862511484702637167716654495380078908820846990611689324725230162267540506298403879692355547972848466998015469816346144469475718506695946286947467545351649300501228469097265666019895634947916789548725761840377032023830185538023761620122273074939397625928848206252293963849820535313600793040419762506289434836535090993321066053536121798345192949471668367977982014680726654439840382653338793328561066874195939227614789189805576394742171248525569093991856237916365418755516835839481974366863586289460670642529700426423332882010925284591084109299525784493337272139196863015715819961203511635144205124685251894196740909562269292104390576236087661369743734525730247490362363867405125400244000927066545686917363116109214157067772520884787706299222489168283958655975423761362694798331766719425343623185672384726742765761187878496556307535900281722406381061659431951444399965821832568771977506327265987243867522796855144816081744858471835669133384956623066388986558170328126993643095243595997524586800478662885441227224924824155615705728533780612837675932542933928296449747536105251957953863236354933399827324065547110967911538560901321174170140050559712949130844636214288797840160948815239388047997483781602818655044218229376859665828174532961920296056743302815226921880399875808541688775112998621688220930686758255905661629059747024266777617052071929899350917556384380972834465734706683558379325335889734295575818169276540180117231267492562452927799045254359954836788757728951274865332457092647937566108750804644502801235038537497145877602599878714439366193995358849072204986239456187203561039376023033062900640862468724610801689448025532497795213375448460297309606081631320557257936083793003060082527351854772829716538143386183788500977365892781610649652705572041266725074901138400029127793326195534516295665684793538947210819703333253611853371777244196448031709220865591578158576940647377629304565248177506079886317165143771655742746528646888917595883000842199791793696307416889053315906951220419991204680232794785102256235175125328512289987306116738171155552050739272203563929632307574640124941427531329049219702032336130568789779125448949501260558924390666896645619578416991836807231082242114442618226708948371396519201384071560053042757535122413485057847273112108299454558284631043961628553362547539683188643367838454206880461689040824067108814216237298106665054349710742977527802319265819747500222507096765167477994538046647457398675930630508298087468034386595513477647208262568902355936202247037130990952090447368876067056311201949177015041891338873566480425746565104377918301016315040883337506811976650744676856103601603850458164756427922767531040028407568820715480757388962778994600093406434385816933991368605413040289670529692546944814438254661974603409830346316463747115299727786865947031995892990583758300998844481267347643528557456805264073617865335674116389089975362181460354453897494141757162099061708014395644499734900913256434746857447452515846280432388413767078944247944643005755959923005007632013898800601924295644268832819742430750481552447615388413319841911607195459790820760518689412963184319224522727222006041201168860384867307079555474176051297412763990783988109275264811932452086288544968508993736568689186196030425312473947975709817863857971490149611361703039856087047039789926200274314298765411840232998034721045519278710108276954803871455366756512097677007275157563939931772341994399021850324411812275935533915363240831901141108447273345466514585741237138776741719113716779762432672596848306113476870473750455308798128799087502976016263091032840325903603846449779463222363427572121194801460556637461074113594296749242871060008818024069715257013303356706347683225138048432323040847905690145672386186989426719514225333511815487997870109967554454274146137130218600976136279297883973118305562767663085989140200317904343205358899709611698318289589973347810344399788596798381081914975415030259311291536769039271680332666615938105022819842509487932487575946002230140260379800805198418955337700348859313376016222862500829216259296215366592449532174573832832074675936458375252928311487219322111142959740818774233045738258257615761301156247320761586229978727502436800106010965380095261672486718291834368823161874287203658649057108212089796644785202244380592205726848667350830184169667142372077250501301386949684281416234551847722260221467883526832659580165047676856972773832102548811500111918009079275343679508685095746727587292579492025032197464888760574618704443108326079557178344701658739873586201383796201408974276594712392077418849139596870417851578275874798278824736096617978756833427394226438361483338414797324226078884244694525752609210213415208042892748905540002603529610257211604723332466618340961945032903508372934736261002796231070279837672828653260023643220351838934396679385984472805298515067014804235499905953604426349946132501827240684091942208569990201214371776689570387373025824595095100130001871902368901283612606956285349612770273008573614331407284622767026372907816613102208497035896207770267615206707053788896023553513652562995689887593362673350006970333808376108481709437226444386760981642652981070636990959832349063557409708392430236445559447621634921739758074205553805444764780017520209123139670517883946651941986354905273290128442877845875754922576600954902790445293367966057720054971241747112878681851033806200953604979396431436054355554493578667637260664531071420595989098207917418679563707752275712207685824418523132844681432188759632119113088426939356123081307541917842352117154611714662586707061013123205994689630460385542125484344077035995809836782518401545274924588046866304247215915863486837103505828486362032675560354046449374719953253800179596910424581088012746715919349821477430352619682856329144974597660778281156684017685972748942098617970798299224556706272850251504636824893529097353411397133709406989735517832260034625870300906969859156366892542543650469902609303080428673612674101814734553818235773335778138157129635918959818267475524030308901161006204929556012017706933013469245436820454937342752929828957147472568540207967122982185376540129879837304032357597651245602338205864345692999497157696300074033722619943278052675284367346399477425450299532025152350066543378778946440160944207057129196022820311930260258758596059625283730746106580067082595371499479573199037734617236033364569657268565164058409738271966028799482151395508761553080242619887692958745275952544134488933579113121442628027176136868948612650952496394707432960664577279041272599671575205583008664084561652296476081658932629372099485690659662105252757158905465757320173851151286272916845927547479209841714772609603088912087144408941472736493325388700545612889103359905146402441886732687747986638856453245125976978323557008330536108546457407208049329302036144354590397011476861240570407607498812463073385931748091620937621064154738027656476455131876344708637093099566824531026391751336779674147915241672687490910338224294121226795703451900393379043334299489932311039863388551986885143521249049590954913277657741602955032909272728372248932133762195016258710817277980987301241962550892969510115671382212976402390820493407259127452490548528134847690633828504786076098038123634604404929096364509369504229245527582620142471070197853957463969002089005477086528403272768968302171090452767596827423138941422948546536282586220402756359140649142539909718143839754584481054932491293583255852105772732290286893092782395057658647202888949738984784157327053839869327315967634907563655879998500168272026336387233598121057531937300650878445193557023179423279642689479210314904260091957823402243695959466535159287412534312895008811309954910273596270666700767294776859527416721131532625984021767752626060145555400393845743356726238293880373655606921799797724469785519232640310429486015539439574976479641607919857867643230360196931677528050246265758602842988153775800082613722869049030971994184630115857947229643196062270527479391825948084849027888984969308690508186473478349472206416679557567740524310870391131220766748527383093993484995328617351214513965706073657328077890496923262317511501446626341415416710499877379480818302328754824364745879982892945714916192100168965535267495005302586920537038129302846415951261882899783153520957433459722488935816106474642669370235339431440131957800259970761983025866208100403903460439977566755250915259435881139851727530839837553990773291807748461055837983652426641637448717325967415534844415070488279069234082613732163078842636580493153807216549762189857739130566213853428746318654267212232137528875088021840531118632434336615798070600008165231262039425241250272761171599684600363781363199925548781988708468708904686381111563851861342767429690942634958517994600883462802940258900328089052377592866616023697220480563004611704134465264004544104037558146668380918040560086047542895518412161610352405056582806921032089649446704788319755132281672691716350326758253679511310452235855639839653469171990079933865563811042815596044011297305835773061320803785469043372362288972491722628482738508996103735874838624774879878284038829184389145271371589420733805120717449150000129210341573123787262793163801136289068737505064604863513292226500131629362054329144641875828784377963289322744493566521520603455260678999682255619559241086258971551324360165369503180875768681376441026547777180168666075796040174056942217817612245658060977020913602448310135451501356134007729111926259238483129349240684023483784980304185072169397379426081110141489012812505281998711763579317430795645092710214193741580530180131265063845002329271814760364685866899248258778265917227033071810719450100427882457356646246500982569579009140578175695017941733986529614646798618517218898257667418070743426656085091541096099105538493019848019078629145350165843600787845655968771786176730209076543548983356516875699133515330276274690580701147013886337714997402437091980944588385867531319345460376102287941850239891271209557236837308030256063134827019096646477819214859936007453754748987082928099185069901321074575711544572868511106778667197745138906920720323295689730294634201738663170099065162865164897223812200342815429100678316962293088148015505844009638802487810242104535376980831988980372307790839786112341775494617927533092490381508590938902928413108212625036299789848153249291941869353817643033718333832142780926143151467138709634151093100963599596010157195569607318259391954225861991865827453083859693738658830330020605322566446882895210649378710144316211416625514271664756868084883254608726940644752877997745813940566865039833471146565617657860314266711535335313052212454323915902428902346068116325525135475784751699893962591265552480785945821886627283438870443726188490411894919459748102746514400705619390182747054236725841085943286036508386762709375951167875334537442643051036294934141425644740738030390427782211718566052458886036189538320546388583399308847197557836507712670647480845149052208554973171678917918749622796011491220323122481751518355659884453870253634703896839226538602226067499623354695142642707199318355405132621667259997062944608846275659205650673613286039625889620632816319960597725033851658262004571826701763817075027429682127453478332660249497796204913275793974314575803647584786498438972024615472268444220124291702946284792574181319208872157449781307994757794652873875686253239650400809440576966663358525340501657548071342138136296994731502204087888642789847637059643002309651788376341975352433902822632065468030013836021130268899203464618822769900087243392108495752196072092477169457802588830670656838851641530231850371184474643115026213597569417162166179947942309611028498028623357167245301039340006782989479975378218735114366596496902282870520629738568671894782007767625334869483777644862295877534523333979028983935618444628436722391610567641286796292062917595803710344395125136587485129135247541619011789954119839048953995016621179218930010460969579087302743704063666793583430771611081179127239032815682713377258042339743811998299271477569292607905988899561682706426671243595674297026012879161525927284287291810655741127887761192201397970077673002853695437957525814894516876973458829832744475518702988441606935935551759284326816096710844274751816108405526752286778280507027791347622185178031300960878938399813123977665219012714452377191001413214775332610992692832787962953306315005492477405755321087219120144495469272276676939316922770309575882620471181527185461988408524591990889603449141129668142860331428346551767349735725395281314727263931083747270898383892320025328761745233153939490287447184894957010828164982384696555569766479216408945498163520711821407504041620949898087301918321861442600577555174185032320316020913397165283591335738212478156620455768962891750036576228019998093192859504044245515199478425257027248280865446045573505469332165495882032298779059774131603605728626533684557546595642320563439593904360064274720761238031144736061084707892635685006918704986430101786429829496111154592362425284826574301591279930621810972420735563865475285920232915711781065884957373678798492738729278685440201339562415159119885084696322335449711581326297700153885217256589452149059844631640174577693332411713394847622060751507272683223036396046820446363366990753595068927070768617558113994552574328057280268615419211279988224707703004590180140752488038807994642455801055758126519384014563278164209645309917824931132344338776722184624135813923345546906819302626309090396491376646470768594666682552389338975976213258491411466012019827381881687266514263432335516801465042019418739799063390365436818669938823586133824564210652239472492339360083616967993142263513915203864173779747117550306187669716225837269501959275990836430802959546474931495997380195109890399545708480506099694401653608203624389913935025905805799107188918449858083861164556504918070167860070481822528526620437174739279114493607159666877129588024782104648074829576350281218136271265419232546520687959144181763324320220400191972130951199556274155294044454207296135910198998131855603582072087773043640895265980977343434067916091096705656992797081576079536161182747032694667986517535325865383279677523408910751341699884116283634716248652908261844086416911814993046949439439213504459544088310662246978999745462496552711091319334668880466402496195072278130896376473634986692253877477874542460704036437264330918979397920689955518199600076672096435754593803681738991890429832390118116526642903758812096447171842863481570521832412351980089703093756547531911260568056382489695004281403510935223194814060431898469871129952761653015373572519593502290477822481281586167882071810229904353603475583065501746195885541171396413826208843799912171961751065705276006711572436362152626437506184892531143212997814919098529721003365798111418350924396125171952796685612496426367551075048301644012043514525267971018024946868943145829181530298073208461729876414208291563206170745887599884568076431510733091077725686859506839057913045763906182249355461158729224412633229872852070444459363687553432924583330840621969684537091697432275011432201536315663732100003007710094110426051904487121381666479280172852560037932672576270816073220711828854133214390785406499328942571169881152047201775887022465151729832396066698588090190484327498294603302868864836480081518033452879701100303244907400805745689037071822018039839039004116767414506478060593407987719230618516899799910791392477654836279345333349746737081864601270032234685279935014668063426176663304386203756267878616192516726346684483016422677041046526925939380302817160116106553583391240211308692091385903575923705903862668246197034678422099506267823604275768203157890417673473925340257687646693689010247305185481782648570764815888001624735852508072465983211684149198254812182509339864332392361016501311925832448609070507751298227109178724261683371488343094782447147996460494232937087449228448181629658715758097083539281945537628605433800474835264953644768004357598278562927503465282746237890912067991875570019545449221219995619240082822078463722173868471516261184672128724006005625768987510459830569750829955548856103322243518584005760569675860822371659425886918130484816240353128230835419300586610501292637561192005536726657545222552116975077787486747829418077798240591233583688014298713337260962325679831455419565452870760169823554454890798301420634622795529388444509572594940987360925559719468982563584572505379235932362175561541634276089329704163197832330139357571887028114949888768161234001249731662923817371198287776894676139978270455217882029113930892926309147025588695830163446006570237458311005220498973547540196843930217126638514815815398377414358613113184819885140827802739710934843612922966138178148584386312700194119062770909482570150540406591408055628189614379886747874278890101518749171241317986121570352033768147026154287619288135762242870785394676057334643877924133385942720461530122946822128943561910723535301938629037544227417229611324062122927325381492672034206630622437451788444136370417596740686962118282092596746470073343583717349861730821147475884903243548174313320488439541355555830478502620070940985681538914100055938406038526243386734558216825999421436846512666900412768958807681715934937641915228369201464576635435945811028327642885757516296196365709298627517931636929586869092762014017871448097420696656762932974153305641852592750471057499487249983816940702692967665291474391402346319984430917329670096358016131809438198533750586631731530068269312169683167604303453064196784576792371115786209632428689485429453485709490517106067298096939098981292787748559092597675453739982232972400099763684107285914817988250486082781124577273894308349435264439903216312552367917454193510361204486948980057990192523912760959747548480735812832730328760469740562946316997916544484767999904808699726307408975752583192072523340725033785074135199412855794056008141052176221427631038098482956218813291999459535269856835522101780443705250910576644177148389801355801308365586071822563930513387237487622152917961428849617229532703554546853247178687906410699935416623035574544244718501441582921103616140982320422429411803966030229208590907681974681337943800703607967725271529289228393546251540722006828234088142765808498022784136032967035369916609374945351864613909479697840065874266988870090090752692604260115831921696391406425193640628356841580965608764747889285363843658710686436806891413084654716251562414546905567560536639088036335211416282031680259668518448001060663406946458428526701135931861586293401701900024707083380247224472706824814808485192654302595524577396261578421949175734231033205677091030807848188105534339858950504476436006166665640585216513486170860391063189532968918804331937166181116600792444806478727435112449692030579705259597771298989755209025695109435353117159234708800125460880956437478213179525050927035807047473345597184444771243719851611610142487432626895500718718543507603496868391333408966446269395514740031410746739501598354294683385573781667975926103180540999405764056528187564328075226055740084386888436333075220470627865239198964070508182885303296332981441992977603447158188644168206625628958011410556389950057098582866504296675513765446793236807477259362066203899015673816232839286890411806393109983306041160252324302788472848630757069404613025295024287484590417782773791292307228116445719570943199874140161334484856497192991452275675319409377417520489704446134512894120063523881122482616277975935556937415946072559042595611176575146148959932678716780871265925698366901876681690325112558245776890268123603248251593973131367402375034316148257634163441150926878709855359307878966274171678161209119303372706661453340558513981423182042987541833542643939565920877934139251704178039650913691048732948323434147116696576811427557077348359238918463384345193764758979697899147085596070675744375660269776750016085317489958849215131828804782535598399091261474621452597708180992283503613913892126552175084711755693812740947987508953454548539451277113450567804217406006168598042895944010234908826490273172127484093400386203514310414237972122109569466649545105359368026983436934623919564072319109760503770140975562773907726990536779503401816766860668459837262931615430859541817190943784677670888567467905712342435800297525503204644184997552280784878761852454523053140018571692869061378952086360358405618028926624344835496589146332701284489886705804822297749008913644698780526424893648897256266498876931588570873892095787360277166309454386830471793717237987071513188197086046539746835184894920356290302923533921414299879661807150710272773160570716561304187500340856319500918373768485394542460026957687130235640318940694814067396768881392807047587298033907050499760330532388600586634155912615818309924741824048373663665215294095430581798699582673786324627458825910311345420303846308818856989523661131292910991107970850721731947561281741917740924117912790051610832959465957339209666643133193131326314178386680330051013385093774689564028259882139538970855720536206132568721123338153990420431796121218955691119059174490139072531406319522438000054544420653311250873313049147110955607104901058380441089141048958314771278721592914395456302799575335595549742807486496118589859462908738016219144126192829347030025470174903636235024834569400099963833399505724083241734571064360856851608074317062964889830953616645479709068784009561120453428087039684292427802825901301307476165912196172805312042629818257822202227121837749803559517685484073535248771152978416736750509044477333193722353224051330363401508486697845207857711169965111874553440470761476950695333495106355419530173675491460312165313964716576828805749119616108313304940760870863326609811309978660030319251666840038533122645324754195095500739604494327535974287562626221546209293944818973159830045182193820922250814753446430148827160583047311474460844971838374498824672094920809918180602373603524329540251582715893669339116791478118757339530856762334758690155731515727267638004743580785806230106461638594954764349627847030163033321780410289946810652668893213157773103682209503329085475757068748449095213767022879414655145097106944542105664063978283157055557975229393599293058310384016845880378085447014259152651433865787215132230332934132631587953206395442053634325754354779697011675654733703481481822146274296639710009262460303863792135816493994517715435591262430468545511524691291019929175717037034995037833799079713925059639904759670393462500004140129392098168591940818747968744308313639209307431341297485912592964306715530441842221670902816561350639326388487399009576169385556065050522910757038037361799685457888935533631989583332217966265463943553373181214590658560573800640204004069856495893846040831249749923561737603849355193793178311224007798088586944800594826056645091839108749332562500681998774507389770041978959895891854761628970741676871915567162334827568870186975159047744371868108366904753076534506755171046490202824566809574802339623528150130296874900141336918679817019588716450345774863048947327572927795194655710956806407960164219944105138676515916547599627167682912609015109119807547073388228282778537429298046558329144786614235262321892872696008943109209786132681254623264791037638261401413360021565073833164242038006663275863750034261234136143492488404392290483504580843755138426867486885411966657827861306905820967042425124802555941512631032034719288652827599252593892086759676107202381007096168765981738171215201471572796771039271855942778066776015026121936241762381203812522152554284088658370561621108010150016082754225219633339762264540477666668723718251100198357612019577112782499948286579924154872346215499143266743250800151218571290009093808345445861924108729415333999899294189882166122913334438765494290895602245714501147659020604375345985343994304707280306322963061684039078443064529595233919329902227633398257972984782755272805203899168775781179329114438942380497229274840728094958045029136603314933619835017636803919244761338803007113242282507505931651754351821917222898405398889088447320888358814087518248860834120328761490975883834746341947960372025891840501794143856732319684367738883786732473430120281211540632166350221739697868652269821454920671668337239774572286450293148738596087082448129138209698933690895676301821263251879594550210780326012706099289540722802332768242419512864820553269289407491670584689428430769538810009865975166010118664041014976551225134753666673387117372826545937351817977855221607401142131342106270944026568727816758859118582275202091558009476365319046354177484949430604195955269596573889715127699090109817692733032122089721341139898653340284842451031088464130642455731861689343222358975772573545046590542753021056763830288195122586374740107772183163984283340747192450385914077088583679786436881596487994597608142304245628763542057343981028505881062413948116096543493787912579891913104263711010711742046095307531344876044228173598503594005814484328605194960091887583136457994018833248921592697838332610453537445000453429582926441441015325025617020813995921404460282955915182185866823931182598793681295976231117244168035304864118477894417259151672605065596854172381335143648693998405790143996078994947937529251145712020682364165763225418886040124709312557646880065353757155675688601455401276337286747539865607606098111036234674854165493120481898071771246477816794521551762818521594889522938177761713917222350265902702973612622350226863282256367421635038531328713194916227802826820825496499582165965176106450252957472407279833936666830129624618683389379234309297687150633185068609229644305549205541966079745514782948633681161746195842922787613813785523882161003471842685340627451467271437094754149479866442593277573647310008164081362826550873585495012803697725435848162651170413883743204842943391033702060866587339158707487200435378964277168460187874051583319113747486852482529804296957364695477636981628146189852423486620314398749509210493021594706928543327904389371300442018701002654229125609094451919842523510168934720983435231604495191564835235122323273474146670671857940068119660782596565898748124963782929923363587377286745861936041392623082659704120813147652937651442589790299600668817850468225701842375329898739639022771304184385890305488793363124856764665337433688770969886552697422418010654788291711455599823990088408722031549292416850707177676275398619437235354197497595984652921512894867384458366241051316990138262963790872505363145236758956894494310167902587513875855264340328249747270566729313147863933266207089597550891482985427553954232466832992184520985649122284412347739196294884143943146059345644848062202068623225895348724576495242722711952555617918281319756468572047433236059663719820286848115712143856926836247750957730850882269461066073862288664292358455022666896842809144126474076806437460529110064545398930722035354601197082790211901546178470067642513865445161620257535110631191729104404406730875508702910138746823392200434202480744254173708317521917270515998499302133150697157107866366985505826952895226684779914446285684690432813449292331172018936220237720956389414069328373473144325057926018642096480493640374112085434356013909406298507923565329767242133848056454967883179138151169314885508361725175413849940178595036141123881294608577774873320037391022157996469240882269075192499531585442053803149743617570701927984811974806790812515426839975029722223099111789480325303100720052094265763834308259389298658583801166123664609355986887185848480008807218654762471672872118442578193716496412237268356462291143651667881284097531145537616162762284412586236164569010819104800502449015571327322980972795580466228686384807618166179913468374951717286797334536744089804678617075064476818739460675597108465580651658505588220740720852299734291352625831766606764916884314415575543627160581135397611394996357389945002393142855467124609377876955830806475080269322788727121279194149710774155718913919701222571836539949658590426369433089836431113556282134953802179110896934872006091115196295334729281519994780574675164454039141491613819512982120902434895897767073918823422080919501767346169380969285142177552534903554192524152895855206570836812528496494080728255337564325933477613038349884204217489093642570464021699111461644084887519728594512216450712431875264370180156744907862116623388463502465975452251990050185132494338068041299962821562393760430420803701410095667926562979557942764357469667002635353569983623752051230847420752784680929990026998260858671170270536937644387907938547693320746395748001749857206666884231484108214570782700855614569471094037080886811350636809164133193528550613664931484851551177441098401506512279606521557066875091840254210068991114889085238679393796471347205002049029265955998560532175107828061254943201188844628759698123955916726572944602184581828143816155981204744765079096159560399541966909030706923404483098058689715056917490049728133527613069684093863994634024568186419377284420329686174158939031090540322726500989166015327166150622421543949691127062950740757992632219140721269305646396716188849028586874499454300933270508207745338754121399994825647233863345479174286235551360357998688892354577997026499573832048022611488710382367104972882699944004495475598586859345011921945477925270164245330130297012041152639091243230767088988575520055523188568339707287134866368269791178016921376237204790993731932964164080330977965805175802829246715435178652158266689358876597869167732182584915266740278338152587046839537533360921927689454071536993125771437682611296526322450640513693966886013819302537539533177875005137880306045949997724531088731824349583974920721602875778655844351800992961603696337822961631910507395546651427718773072877678533074833660242600721840976087932556231574319447900386766850928380474337139669949183232546006414875881984266709113284475798154826952524949387680322030599416408255556890711346097524811113443208848629060621235631009773274386104202368632827562442866466572647756104770322473364852041964500317752936954245418466133527333027533110513263042926257757787376555488340295202433261207307787173813480989372833562074748398586947690955141010455086954191125054050810133931599402666310532947191705045698208321944597767802732613315909415206336581291596475159678070325126331027677884247747838730174097280475794562367846528065688129971261727672872071343928387822799630650065212067954848207372749292091634804504571348744354875676163294519559364044710336136773599121023028355088331554603540414095916607039019689346460088444452610171569643705521430701121031019069480482505846034826682369941709117424162789681929021611708006102113266359662092022384188051636539988618236374910650603014180387460647372699162615841985012890711067761663864143844916826322874608769438617209729816264891986875345792214347261588694659659260514860649084177039105701929331308285589610960513079657297832241835375096114291422678332265405131093161428029535997960285322055355395269143233126401213050614619358866001984231156733757144110964257349999974703076252721634948338381818846336699741525254136834171325870551561972322179252450122367066040146683646414163786168094356679365368033189298433158376652819752795883092721250949803445214260203348762645648839219005937002332686487141313954836054231923996409948540239389328224121714878502958973326144048177924243773753463373885161598693486478393356852140589882381660604287196451526786322061049127186587422648979902994144412326753681606148491947406570459651004626851111462632153238162219662094944187308865311531766243483211596221474756095963501446322152618996263525185339730830432831090440056277311940825880090504789692968686017127056074246380173086415007317328148464533320266747966020356364222281849311693659490989709079035163513960754934844140770940457668000976121379332250608936806397438251867680573608009283780775605407298935490571708441157363345349582199996960216703641341713170952881966807486848149112945892604472662197929186643293031298302462526130594135913220198432061030423293857704967194090978384226721158542337596013254494193957570740278527447338190350440515896573287898811485275328775493287432832093008556136045911457693792187234010743626183532769145306866214246213459658539581157106760667332111104532049046703163410443800782094453277530012198632349512361978575796352655871908103841182522013946872976285155179657764409733037475856733412639022612419817197274412093671496024771937472039529162840145896759729719797569702738981049471938338971037592429363149831335341572298061209786362884759763438843593209801793793989053342004625252013924753281524816581790261799724159937108065632156967926056133726285619786806751903723266951625923965060486921572337590535272424787653550212926328562230324194405273633821067944622495751646939612749090549504028747271561713877200872480392670045113088986276715802789286539395917183146925230378975050226431365130962931087309345048488850565188182641904546451953163366865870990825845588155498929703577647059563731970401283614206608749339442596734573726052497868987112801373928982909310505956829099915611904648609024722703331187239509220026816709724584295569381267619661846834495921748360334407797202159661424482675324193707389152523299481132150715965308474372485831866402727607065897780840333153268358963452782591174278241162235251423167262561945020244907040602392871381863694605568131523051149153576447339680748086105374454171436297647366088663082828695893751871865774514980245992216198462087780163880899210126732899605857449209761554365550103017802123344108353397137757341928920384575297650788926851431758563137335652125693909766065347993275901949097076019971536272963495755169352941711837299143360778105339300671450819165844164932489025923994364701426668295134928371808592697100521779732043027126935117522767880792798232574984743676711860821100305111813506095056624258129214623129418173076151377630681896603790376660816378866730040622473713730653970391329392825611931464127772040119530947803457486975421293328477682393736568481429986419237072113926814724034375014344715887886927658706757721243760537797378704160517955113084683996653293680469847593175628723109721671534268224560068618416017291847235209335351563079718416147244405002202469121662669136639020643391823441874701795963308732195438178998361091842174671559048658328944795130795920103603633407526382108394570247147695187205101104493115602486213961087994527073692723797003653973704211111780565620242811201544666326646005478135932466864225832888829913678259201226837876804005599124677876594170794437767622878620587929581500881155483264390034832967906036479293126490433002921441079591884765571411481872879148792674557951282225509686459190638071838734777588288370565833281011176055824637052068215655388497838450978284803566435942859580422897241193285854665630917970392976377377926963759098543821551410624586055686617814047809064029842513750237300697986976303597841042709399499240970414277043762014878667254355147285997978140602376798009930521098640687311580091249724783862170500449803664063147920999304563083715906390890621321106997261833627074273694097557812759617091919297567622666001507487423141990958598042706943926578469422861260816051428616486290453026587997073362430485524729625294251394893645590419892594155581908728800316690384460624047407199766071116765863109792931345113249985017329015869971474476492772719657021281317344956621509515652485990389809766784544470919177838286453847369584883563599795722222303690671369902088528958955599085014776565481928201063972968938182832869748134547727419016600808074940506339904971242967370176445000592899238480884349368019210605109492003041026193947016244896939125941718917135653442846339789058262996849252734186805821826650810931343856892511648947548313088297440346302054631094120250411251826835440868388465835808469441383422930770596976994711713059332149793582133627135694198598609879624612969119634617866323397686174063146973111101410877611948356476834807157005049879469323983953271878629246290190762380132641264510448144366979720334132729929117702608596321441901058743414695720839956655826239278389097396586809403618845525734180783843304940608064891831003453976194649642390852060087096859078425580162816648882435413796188735005822187789701629788972118566927884747197175627559663712809167688462094917819546006442034631952061732848077480019983862176512643489901218523155099779427637412094788018750363824709364648040206090442989701243894220573701880752582407558002922378528379916569281438146051532374916856069706024342141556992675774653083456267985155334345125614598755494451952859842068872293030526051534228773971792767476698308393183401726214136273709514259461063591924197236240331375728627547475834859308218212775014302156275456886233958549150638330792747856169724422092602802693099069682997429295954280275828500074024640996523213844726421199220796485196013988801392179547101552796196204355535032780433812187567590724086950092828707462388840139201686301045153726048190135299645978991810373653608017742316242046608347673444909669881215536145759749425351599390445490404380753622825707343295245741097530761732777265398057868522414210234413734629844294299352388276601594206143078092680483436780152359027676205065711548703083618985625856190497108694857541260673256013682994436059077459018094413544469240943403640115139615493669251652748845729534981295491475057220817637016561082651746448799286901950496129017178299514777885948370275394745956409977368122495232387442054967335134479796119569865702041299354542425529776649561586360932293238435282731422388210791575743837101804866969826220125883548170822989397558030711477579482677056925468940529077983792041889948583531166747599002369437674691014469350957884292104427189507049406463558852248011560529333946676683308663678332305504080664309260191207454174836777394582563013075381354736452306478687333819866546668765886966396471753930194656876776066545855565488309925837511917027408949526593883068006461780298367317895166893124778554207265658642835248544723702777302592863297874265477157663919924912379725008086889404922077529372998328196539940056811062643856656920867209417371716783373404552522744648412326784535719410418347842391730934672421580972451460085758129980645098281006437838959400962385343527283237227007491485731346084535321898452035872205059777764716741234168693705884730788683205227874802910904727002911063128988548361624486814436961147584841364649819460781389727977733961703952413776529163963985145844764034924201214793589282760834446795651827848340871935074274311575295755689411355874323732444840011529004036269870317910311837418607280735608953454568143191272179411112737847294998865069734013354817970299945348454629645389457976737084422505346087512674242557881918884050740880745868781780922244908016996012159635442758229734298898473440558248780792395597809699168638211485494418651810663058802753179247426527795927127487309668842033426453190993299315959995141740633321837521605800130456721895728169878517313309011785259242755252523834345940574114443846562415625413116724148546407175978879425086672396624779391227796833690763222292270464178640164314050702798358713578158435523917603362352680501888744712171647382895212980141021721185244544217562039599023223944363266143480715304753363010451877908316217952299774949289681438595735810746949660665015724279104659378497467884461912559109813757251772890699517637953612263466962701709821978081689214211737142486204254643191406801857996284186675167395947102085117048374285812883007943307997654571696830901727755127855480814027027906836013148714742145915868974625369197108726926787291358366754787525301472717529146233965194037298858268138271200716270033672060257273373889388721115539152308818592795091615506558910026994488974412598018620748556372436287959166885096759154317629076194089019764386776505333442237458006308871400265116480128889443089707044423550035353815196640805033024071518312995199896532563132409838380840504649665105339987725358483037584677945773705292833176312701083642851226442664271620437007218514022713219723416578253443745419949171632219559370831894322791167098883607673924115344450107828665402377689642956484677468917591569594324939270667753552281456559981310627240121698265358162012244632967037697842498826728593362831064764469916037553105217014271212096927029869499517963470869895003045596604657602600895730596163166037447547816497397930978193094428963111948717599683459366062948725214668057312213988649721290018434118476812325833917562643956174794416527180518298866337430650042524365242904027296055461703053477447145514125649324505928364014065556224631739719117345171739935439989249461632172904777113148559471063116360547049077553277773191901619319777420960063694388582456733419616074353498440996106813034065802667304155215077874796186438032197667583021279705147908429385509145768511158642116440892662180333334455672293086301067520461675028675131357038033320323049077296661028769056164393032136837038461163044410093113066106717104264391168031708253198368601542196110728606378603281025802623794884792290280267375264867915889145230216937166049554036670729360016729942286560583509764445925044725295529548716712752792231800416075993368221380966069805783252245051233842788233958755637920671363247169210205084495964042898574147915467095333363523297727106411280538641843494729800088085958858506771091690063481096691328237665366058968148935536251808781799581923867588093741542165890027007373615956266810369329058500177196391749678258882401639399518090294815508046173292052410636354359118563483413664975339626061364776218130184898262925311403342183609802733332259947107075617753668128183128949512426033706243171519382561323589936140035600176102343316971296334652180602301814179731076028664979371783073427922889689449013823480809488819844647876147379851282883042652663034287239806068970627923999977235502018922131943123335816612525356602632481033284184294332767285622248974199876656846230720002115909295629450406795646210114314829138928529218923443765594205692679538930388681837199430462631370301758812470485149768740923392544408696818256536504597351844642517643993397850223295813848974962958426263710438096426901393538517030177361059577829362116824759530147792265142865143933635760643865440043524713227723784796787883662911443580073798443466857310143876485945100713460792536666665394437170222706621205452869159520173590105683715939684538827024300227875018952195065310730039013184959532096532164788447053121523839351568372103851798590786996634907401147897878470519241916584512619584695461271101293647786415953594833653033646027515264246819522839267308522934918021846626372228626673054196501565423247607864000255581065495726363347065193398394727329356986900818927271967240333202849134312264864709073197668790773585151859963618516428039495379629838335064507531116179937962347374185599234764750138316356288706320942219592443821195285826505561005107579963301049135005859790823026074016088356048538784848277608810827870013933926161736910475045348906902999305363697623457937957210085969225488460096670631864915594769461530511528560757318569435522707596520665840741311170117022702491441792538816864762333882162788743979818957949428418873871687303292829263223745758648394767135600016527646173139364588506161085972626460423546935337034115774086891991516210698624497769595843421844253202377251839570598470225782944319700518904351082629059715647724022629626623961829980824272085692636015482341842590625752786366982280554979066144275396964909221008474038514239080053936952819194639640958234867384237054104589615940402667388993108159245823826992569464757183283040394173820349053596188168533196776638862387960297085736425121045304648511799817973385760887790082976429370547764141337202508430812733081534902029172639362566551697533482704240560119650811278105672789038578903793139226316800123153959044433610567616332832183576092869879573198287006444343662405303779040360119418125551288655320520085763135543375809124801659758644671483407077162714224270344693666546237641244067646942949764853511431400009586940038129955843646407983813466431233306910191463134052142103535011876750209326783697355985738007475182698546162134562998760777090772387878581392809482906992964609594081599183854865458075673402880385738638637334155957157449229677899917641691245068148835780428784678384407095848402426808959065597224732279837725273338448083499536042484325364629861993863289983399396912406176555638209199274030135332632408048289856966873629851124995335175083873774534908590873986178354567521429496386004985650290136752608489155282505363358225980893453330819665398430521069076703269611559748332847438591757804624955152828278648257190710012830754435318668511481586570273490034860989290916252540560236046990762497331781498772207470900615394506657056637235152721779030325347374340061401849081459673858374043120447739830140132767198244352326817913328379827368795779649932930441008937428034527710778511356006182253016989694734631669666451262646056475345344184035917570298673492999027622135777103920606094781935383008745219368634969207979460428600105925232546963806021636594046850277477542799053788827614236518338904483629205333747090083524382612967375157606362409636895244722187016091816194360322203047432338026022558958071559253714118114790585341629873983355603324569662658263459958965124180774502567102391199544449716210613582843930788681298040240485526449480807577308115726188456133841241808900983983917223569761201272291897529326026731080729931867376108873471635631205665945155015035292253471613940582254176118259600601849897432583812270772038749498407183878743887701491919326620159569727274773722864790064962630242907797299185542326513366230086928819155911759556724348686671768175159232419523907981292503552665164190157011689349893295152176290914167680086558544114424911887426993972552859257022123879302682179947380199009513914347208237787701741435691940651208063163547365850929126285230127798639695066676750840240428317775735267614285533665384200687443401231140806117929821068300748953317638984696680208326293525900823725937716767569588792491253667907403864951313688950292248068478395858412008883007092073170143147622822652515873300472297594699894203117523976795916575333552137201341394184166618342966319589614818363746560708104298263637119156317332247064117275287106746148285633915564190593908280733538320182614824072885556966965663189920412023922496731804378727158680372643997599167458058147131167966219319025352377528821907824842256148228328028486563200744381974934062971291217265477382644772205352978440066869687798645156188742283878575132579963333778652467141863628230564168452669984576072693722488644145607937000333189314249057974154590150893509642529992637557557518221064605084399437307780476103292724781619287442690392303035380691024197736067617769844733355351756550281067500115199383190778772422373476158745445279534760116319122432275953952067938617873882165083729491478036452992380586526858478390852407135412031406953977437134305346398181737880286767074789385696971247155215376496018394648653284287890327973425848264476685896822552057477309440201597706041878181750594895028157060653070720590590659613092999470448641971629367400119045686075384163073818445522377485867672140390315677102037956904964015956334510226180374926944044973632995586633968330206453253641204546284910456715742910132985501158780069069826051036720212209492785385342739487121330310354750565784803662329956174385578031616800896849672562622281965433939559695920741580511457341816133974042751458184233060325064951275019756586360984972148927384465067910386725018613190858412047697805690770927580431704855742606603708094660061011248532830956560860212981394098536192236804475845476865798906560868227163233660154277558082011261740119882054363301199460174985035486423575981419265528518265652784409506585455965317132183932293900966114821987824657089569675820172428418582931455738969558158759561170835833456160227292248402321038788618546200426358266143543626761856799639944283503637286929945277495752732860254787519877519324283926127572706028568707109564264893507964883666383952285718423515473130654080619287905215159553564029819570695011455050276604386541980741170433505870208228469942121014816979308134107396039864545830842392645510284831055234164487026605956391561189609369952348114945094422714644414408274298705882415239262565093145270336369291449641418354618751910886255589785185018244102029859579738812088398442613299651623638638291510074250281067381675482997098280991196559705378338083037613251709444298014102918086114169095808189893120950858455443669263016289429257572776417857052121870454786050670145067408424813036606618278827675412461683334874019877980149742511679694841343829566254616011419737500299258769498972102561093597877599855810408727701923416380775179609675878951522298575142074682026566650450353111298735049383959716468312352732054993601399396421728267110489341069099756294825109048875483883565242661154678562413320893792577982882906444560679223248764136750477181613535994694106291413408631750636251386958480176423141354602276445832204031867844791197706413145946308497832164017240906176880842462776924068651889803949855846616712907231083558002764121886463805737719375107786534755452301878839037235564913147987813150910207674451623562878170929690287975943718867888411947344635222787030566118743421360197065162714583071742485606426826566093936876759588466394532549738222274870797177918517624896072074785558596501525736530138341157181857779241586749464326096789038815252328401132658929034490970891812860966462283089027762217015412620444628869965828067213488678280050598199713728479667394789751028822859980265505536519687608875878683005570795181882311224710963432149629805824083390889211937983395670314363678130044032953195266239073506736784613031515525801120963573398442524591086548394549204961886040223075139474733144026893992759626123200627928931666959432561835504818993172663389061821395901038267028323992631081023748987581508313226799070598011606685292818122800794613360366171651821587047770550923236437091125942777422660875122324151725148660949468760830969051867160730007076647236285465178819624612986867436793748806544438663881588517496985142902373496470047931629022075424972012345443354913164081769095174514759119167427806651969444432194121309734880542396663769159764196545660407614377706802991713597146888596541958605686391541551027244838022893043115420569968794164765099754837674914686095567711166774649978629326493364335038219142771203404468029732540370873515996528063454823194638080025902673255372166101622051612059778025408121132153637578179861363481219231823572150055823919477040406656882339047706610995068007975621235898289345213259570205197819467612818998963342205202275850238696125472445482583314536402975987170049840708782468752447786592833864082218088819826324093545900568143191773104672373966090806604744806043464382194176898655898893572018725817869836309608380908125145269018307270098870259032041153202116507483884471996147227629940814449870671897493283210878756231718127683410732748130004964697356728441003317334482429725213892202266544580247557173938156432320302965124489840897211790061372529313142435610904030834428661205489402735638112472965483810680417306697291226608308932884794313875313112870623461783977460903849105477493629355183830598826527315263198394312115260464701777521802379529009587111688375621668208775075218593908560554311786586460050958026525295271946713831900249081905679731152583352256139248267042788998713829205850408763436239928713630820312580844763162008931460724055083963760524653631359685916881007268474868157972646966751208240964217371130424657604348119249717628208790646211330647111681748674415478417169846311839282756999427549674268060626363599587558525414562732581030841918793889517129275234618219026600418225549486066523964304124886666678794671726417301281737241741025192639625611512914125388157084372671793668893823102403703172223335353858605717462978344542874561037798561466275939388062361548480132449022396502224165462891857853208519160420765705564147211641842886143162333999547062396538062127060619149069505832876991668752311682759838719523940474807206044182842257287021196851111741663408586682047834276964437298829081951689579102410090773490949867975303444767581724665476538946386433974390065151237827521280863854937531939889980550603011216450707670399734307239027597222783054057570452392086949700896399443570064705307839684747784195611856655399685435365903843958614350542170402693080037187323436942625962321957703650442228497903893463657442576712492626427537857024170764026157684676417201718283569228916870966900442741720431813675048217868542511964807722559534810969927630514747641663161378549362940546523179780897081930550240830494926978542476473667635484943743258217702763140187776472835715628259496116880258509414200271592264483778467024098388524840010834135138366413461324764721347588590567873670508628028416482566939566376251264488982186495232911677178806636661972843301992964617761706684740558320409908907703766608843778131400862124342116209840721176712984106275377675972687227517527847185054052594780180150999289874306484674570747723460884307696251270786631989274143745735560656207667923139621714969084437962240330953386071831900757065505834903666752312136220341755061913883906734939324111851076096752044637136204659643089149876716124863016801520428691986608375682408048779939624621783450753235648243799779226736198679611725105910469647535578105533331836782717549006354800687596191940021060636252890463069291759881971124027703996014308674293141487375157945794301243248426516841066792085606767378734850066266491893728731227739391708487422609863636761551046379735951933048414461583693605775659261962706793786782874089801761517311909755614194781010404064706156671734083396286023876408202987394918179485502783094787857870500151477457978383589747119512080355942440809422155530956090815957636048326925751583314311572846394523823470740091396841927656721628794152623284233756527830313248334861069697640808721233433643715244190182817242094269542978896537096811904812768373694029415837418003657813037618870286327136889762318887208206194586505487545396944576114105893779736675016541014127495122728830949664146925331858419556802461495375424582814934004536791846013434499073995884271851992769559451877105491574483775210684907355908237274017656224395578782264134013540333491752337042360674388926555279261460422284649730784536437756316024706200287423176826769118536225449817635962305322521497221314118709721128567874186805236381124233851613219931146062177038369395810636077266861452774914577122611550537020153942059746215117597961992940916906111147590861018610876861036049405284999275705209929475440208560083933216134839195181771201245691072758768280394967907918951252847193644793836102554067993797856392262190528172222165032600275527749393236920879575442003105783594023063535457161934370110640456636630542393045721900487953927730301192176369972288976227912027683726004391441336681878079860543569582086513936654002479185215209812491178736227773368268736474695631108563482449947876652029352224824741974660070850950283489664011097733053887493516530350241606948712035666447247870818788880296131079731876349586890017348316650442694298209335300791539036648231129925586683685126290071173715106950682615359079410571474556721926878561808290199232635562417195359282097036283574948638096465288101593346453683275317084238182607074985962636562469963350781476173928256518346744104947366621697275202077074367096171165207816992704922478172940670116891946935150438494243014795554207904436494285639271190165938319816609018027998510739555743762422269481239162582966094076232817459178075182836876434614555034451991874288674558521235507678752624684132567276594931995775269833682111270485051179330591508852380185247901382960396944469469057806803851800637205933254730918791896588938004730103713767603434241835214268130548311750239247262073883625919223764816654842264139533305097111482175399147314952067060627036292851514612017533691402364711662304082677451799056923672168793461774684193158691339402997541722049574119468253143071490050122261255666821556837075623268656463218675591049324012498594694215127055925807839967723705639947580888235556067921536801990837246244347484402458601877533349863232001233858441669820173989574881337186161719456401681821805108756843823425079036950130871112094102901201216498350640203293613038003412215152738905446586565831273747442975528144994087767794784674786769280346461373004808456736649873004944181790429113139798481973695650666394506685306695924635803156633369133816089185617184951076229584892673393892884871240799655510425412094142599765663253211388311722967362953546034321906898894435974642999795222975202257347862655707762381931017796902349229840747107885037540364605336144729535894716863516780917815233961853585119281917380736768911060974929738448534171444049445005896124419065659764396883380525521186669637643751089557662622425330617751591333166759923522102214791364254715455503674870835359035616038013417858116645454231709620305756534801049909612253673528244054166371505214847916433013853627335866631724004588783380464779185424925836493570758747894399536186179049784911538992449671428567000653884163375979483446502616745224143573862859454445584784583239214940821081419367279001637968617279301113971346450207163125065796057872139506056158123204745243297844592755618940011102365157787749775673490082082252720255601869037290683266419022874471497175953782436233708247129554612779680093250729247338932206602124728267956790143120239228106023856138688697207996582357586709159981024718116926779755653548348948438027850587561804596977344412912902607942861672021085491576473369502576804564531585635095300940376867392535439831965783431131659526896067904369175992920428808286466205238938918185377680068153221518862331876578944386723079837445749844853567178210946563896517058359214051473134454555150222544349137424034748509849530323078822273498882620935086706333063350677824465201872630908298637640496858555738333462325302282436964281145674243576715867130056834903613223879582404369281780964103843963996442506436674184357748026353423037597949512380247886793194403873637085766590171133595494090115016745767018218008025981935494042123566470830513955878582812152884347488792681919035118540301602132225261626580893522742651045352077684202390604098072366891274692059106169630893130527623427617251268967275804920536212261418720102779242651056721218221422359946995006285499661913918477887421834739940148062400017552236010689962959614250965561974155773381733507773701092862353125404285510809587534785413272768416975787408809805645674045856080048027952713724136297548270649094543524779495652098489182190138358708284320800603820311392385456186632364533056058693839063638793913171415659465049143322041377274528179711985272149828443350865310070440589295754018916473781062092137208915180898197200267434172706268994613817116889928602173935134155204618868089462374759432268545946127243338895773950236803308485760518364661670606943479699848501773133302795751078841249782537311598942172317645046727032456950112570493052197989166698088874870536972954241603431884054914782513404986663137791929622681486928525256386336549591814344863338097815335785141023139034462547430474802944261175092174024565828638588721023555685858736227208753998216351346976216685973670272233156883656581318994454360230705105905375825462198213704897247321343370615938374047549559886986466655330471219757697278369119327805102036057290151176039475922727238392504707658105764992220516299303063685196384337988949513297843929876159343221951776137671276709197834757024349082977097803654195245514736019043404372582298755659388581584485830889528929327125021895107789402288491677994518591172655393302734522162696240917512745996125348287577484068910725553464925084285165868642009287196496062370060595267916649979823107463793849427562442408619193617905926275810963380895920404402148930009242701218101758275008863612774857790885563832961324733096214126332811122379901102453222660256957046721767700783774773185421990888538342746874055644663263539227420793893208259721585168697458093587670728498684053936106701564772450540590770593521566993093694328367385785178459613048429999752245873679330061690851975390306850943532789742203819338729589012885899916963487913784400932346773729725036889886901645159493897479215513889128178934113580966826080411237494653239432511888287568590532035218540278220339275166911474313360426581192930867104278507993814317256513881808818411542147553744279269796707865359711003276285555237992088127421194582151419619420776634975255107297337004157209211434905572803716949100123310919614251205150659447877154280381730089758973300416122265477460640440546715736481759259918998450477061046027751139538402175416395920564686420979334637864245809824413466352762932308465147347965808889325581976358431698109584651874557586564582739448740670128519877340617448964859048176795345253461431005570228851182731049467108369513744003873699830158292353388920043251729432378881747043957810503710403593707575747126563845753065128131788972661320810444230663725408420968290355385235832388795191889897639806466506395463303713780802498314282949452520682260982733445453582220494572507525251212943004603975697089602059694254559760176245943173297896354411030997197196454944239829733312445792335296787654332518120930794564657930266003310565996594085860734675612257994631802051287341817362925800712740964940658751677952155679339873049336997373409336532483739285849906778488537577263141081048622560401121133806600154933381630951100091437232840755744920530860029163813865111231815965409557988856679308746987967789751304214354024302504623736649640178871944367026710098351614069566654900509263845873681048285439747369193923292173928648080610177406944834480438199372050379369371762115880770635778277916975307310009965361644154325861596494278573821341707222835795635748293217130184554939420674723276339574998485174756731745898890081808263083797105431117470733177592204362162210969483947705773244961186771659990807623824344761797204819504136504170382633250804257455737097117652367293832878855372088323915919218496823053405532706009604900141040162671721395734353543700913990532742161280136960140210310578966194075299085052699830997600679154055366084787612884261041009160238905708809178716941331571036671178645186847968084752339491266994875476651727305652752110909086431926240108959083767472875307403984475070252473449355530635569568060904880982482078808596744690009531553637595168665447602056043142515898767652145906886185939620792841961963057298213341398920055671854786409121678732363024925873059193964189641958078282597159013464694137357994010923093857079665498526606718432472251629824753601100480226097623913282295889375933543532213732261323767958293255733180555193494832052579044915449981503476962645471649665929655896623708393792187594026786208264306199515978895176746509173124077975890101374324884864861330899106875563142311347735119493345848320317671792229653974344454205453069365703732020311177432156601570798913429416117890653511942965159593564762956632900245537961955572391730690836972553083116231219311025439333123185469203427538517027453584165688897748867986749346055027732370516652099691914797096409927725206304963109716742167818183472732754367201580988071086705978562575594321919341123929764690482213118139265853295391524207873396341031216268223240929179632903040409045121005095671911913209498134683532698665565390935802557111870617047386097552032235669226534944734075263461605215496529105979812288175338369671363621049366852469775461567969065013853739441880267251293576589571777868611218673778962221703499022239078855067434300265124557052176088456921907277041660489416105978332922577308958508551567662764338161577395320035535462571705906194165742694449544238958287812755840399093601736428329413428692023331658776048718790441320226163163469150629172968143634535758326075131007131094656993301371374801432530438387486894556221312101184959307650888705519916286667854220188925097026677648538869891359136875254535773503142896721232735504586033727026619091777256901437368654898645318637783718645010382096351046899808915452825810482853181705636391335632462784663190931040790618143682857493383637808080879098017343423253850011474081137265116074776419657255946563771674380344210779416023386253223855090871348471480123778105964921405185360504266828592726823160173183300749368958058088585624035702237142985878873504820694006989829236023807317281101802384942778542259863105990838771193294235656641815720817990325007666550953654417646734247163937909624151837419360619246687062609989357653250964573526847788583585719469603441504430360569284263315817496342219220572154569490090610309409014233759017422723775005480348749597010721788806781266322399152660342089448104843991075084763597959111097708224888554658750150825164523653511090692467169269181633998409994529280655628329912753071344535353351496056719450497009930155952503521780725097795423925341501557787462031369400385348198648727511738780431656898008848438501332365801768641992084627409008288038825705257728388256607402323180162525263121429401697027247800527257546661585941143371995455762351817900100095258630225527752117859818047240834352319436486037592789304740600746713825472855986858540091198470415279229139742423050349519480458211789378380249628384717206656773149072959283019654128003010060629523406420125770856251193331950813598446704896398111437509789517852907736933722342393268830527179788608411401119243301865726818338954577046817990459229378878352290061560844275014561507176872152350183561682639484838921743220645439499414308437356152719589730203517803925019755016192031581290864182614086016320019197279452877886560535284940477553004525039528831576039912730460000799908528446899451787764072516737647289407186594456906336335053683790605217934660324217313553213774073115297136464071932491890934584688966775887165604712319682418903432577639989406457571464311012237538849948562374963986273783150865417190411639028913472985752334396158199402570069638338128261867812772064141851538121735564783275117814860745920963853112053494209737097656868015304980103755355359612143763043092494541293061108946236226749095324160468597870939450795743996951158519749119826882775725857911453007658959511201434348787831633085517371183074752628102478379021062355676520768013733804460011098582302755382548829231243650632043597986152370338851552218627180112579051753353308980425814105085756512962477373156929246939497126385171270349591685178047990282512564906194527942297643717596210746111452515173258806190725131993985807323669560210968330537887890897755625023468455643992223823083607258829111686028419929253160924077401480459657584420696704794789669588848190507077008696164741743660521169983648933842765759322523690630048920201943926046367433827714450676828733292194538064400714851077723915482227922072728668765744788069818400824695814579504532977561748725298502021395614697544900239521214635405833090722598594124298262266520706262537541083994983229899541190898786326668753127314535617498655226851763734495302208274424709636349663205056835299695024863922526045757715747302534435662678694073939086204359725710528637050557371151501894108954685803274439950784811915854454108263338834386556092965297451563858492998264455579378413052866121313047306909630546469310422635587413111763838643881773903262315137240350610393938850704451665653127500593467383047314686993629208404895941589135469593936074306061008042848325064986349381023551358672089519213062936383115819880184224839146520740574390872153821740010257910551789839254725273318909082547312060561720391736472379038737827226246378758041090494024571033636018561831071941741154711894684410818677454523284479806100278767112455206330296629490880010646159886244924947104122841202327102564436235960309138325277007545867708794378956090760647330013006311618152332067369951040225298835748558913009040200659806651162893443282445409096029945465218889514632808796554073858497540734952643911232487483895147703385198333548150936968806954377070855354090118136647830506167344644296111604665331303532008271652498442345539437673149239371330954608141012908313952694934315840940880068825081241082423162533610771583626223193170580316526490863166132337915569921064861357148891098973731059310081163749471865485375909438091734574360105921934602922229242500202903720619295983173062211280995458463545219503717407660382150615718082848911347465362510546181593275543022304170782633759145513851332935784087421826451380501288889191483677938564042109241830127378214740211968202207986862876812791036287482020449195833999243837334896961828489900786951136799707186140667263240235810017016992981635156103651417822524666521813106578331580560913567792950657799067169573418674744525053908097641305764177694853194035307664747154678698038356832232508020791193527270544658588466994746219226633886185511335430588225919864410041874723663012955466045554843330366331887330376325708085995636680922625549685884361395911795428535365170952889463444650017868790359192947860659752009748479221370449568220705633036683211630611057798529336856187083757827945507885803179628847174052656202109173499682670785386532632378528686313192496764286443111554538954753132413210732256305655590502495544093593184249293497927619465399462371577429730712856514845350744288468889405365623727420308531496352988212656825957580445341821438268561691223577817789278951663326921436252989511964090869728068080343739391923547073170610849120433756823652112169579813484721674517097207259351164841502079055554784034219916782518769280624614512962864871295738685971233137112995823352528255440964971873741835779448504508785218121558240079326515053083542110579150311204580979404978218457703300354551737792935797209882358694704090792893980145406418981133650369598600580586893473562769836727884870482478720020357936201850849316568220526983093718835401077612218924786859424173074093240669860304897426804655154151726030872359095003545196376867448885479865787622758478945422183792966499055384066515630247735739133439386895010836663386953051831406633871954307575327297440539101610081806977210601227721531702048552452538880331587576969707382080770659348675542508580903518736186880667643808485556445535649123578626803729000510222568681644500241771574612247744436496120142309511642228459723938773686637897502908256102040098824207991834924374227119504764172626568410485265246567802056610155892776069486151176940067910609697221340392374119801366637242396739960220071053671564435624164400336631546053957275389698371144936104622740631335059940693415203199734546635925058517879088539584792399804377106901933427343035745945646460391751196574372491906415535576478631758860381450020490906138873602683849411467213529791126216695625068057684893458085730586196925109087229455857592535175683916946884107608232895236181477392068468348999617477704784652890842160838857946479138425886003863267430801381571902947044031890798013490919767269292891322455934381917814327369391875288540829495534127539429700474831987265832984937994550527015783420743358491213855012875440217355293021026385403778558136140715866092901830317972608987754081051293668153444231398058712563663088940495671132626034729179544387720759248814404396339499635347679190966742540814442498492882128055202801342038655227710050683057268244033046543414227492699804586179574887782803626624108721274344884713167523934556509423225818651690557086281662817959889108679125043031118820600999256165512529875503059993937200855488245804975218540789136037207610997960802888574060163543157488927142709893885193144980308689323500499720654451231962550951174893665094571837902171833577855465842925229207433471619763325078801136465230638109458768009392296767447995264159921001906497393177463447670284546777121407209364373518988782499417940140052677440316453353823620115303237146924895652415097259966105722618855338930527831273008141056306380865953247571208060873676182047408704950208495694614685921642294358242998161546024136479432383914521417509747233467081903075042431274379864021431500067231487820276636288286585766660785188427203233528080503981292063625810250931328120131646884561130547305239425124568726760512835185132408608797366771044198580946764812037704746471230630026997117473929576618141894214242000023325296000621147991055518062006175269367607833828021674234075575232384172380719640687796905575743955457125009941405612493550085519816562788838837336574972498462620057840203077584887182665071040549420290385790803316166546407844007030896886408022655553468538906787381821462052549884556706024276235984150601998367087569824052923710291720823019498014267311653894289657797023402963682319840789977667491538442596732225804260976290960005763014292175729560302814525252070659263136131345295390017585870132371276972047888480545429173867634063758413926532617373479228541313781132416640538255008829015749374603388768208942118662949894173183447013757118241095667931191684319233141161716683682904852257707465465511217314366615121556504101952575317304509889259384570479496746329715811582144641795301138105123882061397214540814801223912105451225214469689289746155650499592620720744411434759468201993562785382615590705101973309759049216770133989868531395230887159255321091271810556560570995336900783060984137686941470284873796943302551623050734206879874246050186740138560677777749955221658790674757506459065222935407736313061115543039418711196963264507333366687529077392891168400499613178487260903978462715029117415802304888033698236877947725382559772501926344152695898206063146277585319264967355459814866199700326207351245464026246312832022208375814472246379792543373698175564677504186282720332247676503988041241824408912112801158585148182741262225465289768149158071413661587361955530500196841727548002524448469666640789056967290495671187706183202353764029870033994347051253847158542826511721092267317280315547654262163510531656417967682859773500363604588599096541551060960291578540631946737639267582453493208657071369760352362572997158973144505454792588097732352377432246031265069895813338147997282062591371060081497265415002309886632191754921617999589563698496001522605384083910793184403520963702747366908933130889427016485105379823885843241380278431270166281592564270644251799258863989321866903630098135826873939084918073661553786504607896899355216236799328394723803948570459052585544939542066328873385407140954324228761460772388710804154805760275321272125439341883054356296596825829381370925043705666143913169838275470440798432563401496982991720511700331242454343494029178969701482681129669135943753000067787451808279762822331081686976478128140812911956901009883539011538440444617957974905333331003279723639201257628322637090912836273989878350144047795627516609394986706962547614975772393662179693973392856380505578716720665779392663813056419565446360253565273440841773675429950872203917131785266670276291688444350420539516845366905702157248541868442507634852085998041621251921788202313893787650673021966138537575002184730491386138050970051778670625640729546512622269165678091078786459630862111982813389056152886738572050151394917699647689649997259604327840703901637128151683075700810927851972767823838518405548988274622515350360292855006274712197291552039620051963870513753893391931095599287336933770115542818682155195950280559772664326343446812098125156316795616652095783690897750457521288080766744443810342179040628961985672598939923756478241012077516748548106737916012557260607688333942763595003138333456970022563162451547842391191327809931413602261349225976075566366853011196971678164249981989167495642369595630587803815699114581082637038706797727065095725310433320286518254327847570398216365602560544883075430252887170263590497742988073557366901871704643215775515812014912365429453357092595951553353663484762627426091512719567311324515112452583939333387969005919311355669244231671848240778210928835106483706241161980206034184171354282811578925574252306231449053609224923218162202838725367049259846570352488363723952419271444521632800041647971910931565773942528403793020388945633811659847896286904576875341818998164136090858005075067543165504656910546215752951219606190131225383231906225697101598688565089214523702287232788158043849887282570078662401326494433356771073637707226184639070491428208691632264814062508322975367090787437790239415953523495333142408631167180167173351933749266099536156042867500994957772838094963084303987795788067909245312679179184430926487224064101476409431408436591120886898817774343307032857648437524619588485728141363709660903582530433101423286957073981665801027142517596899616663267135070204358346704970979439665395494044403808221770192155478824260812826610524774301362259164800924872630809619381969181093989938701805241821170966873174010029923083127173660754836262392287186432803358094044680082908262335241370748694760452584131482915604506516077923741041248697098242980483471047087762651017130696926346514149939343153681892130862553952371153951038227655219204413982980953323219166121145657525445135774299114071970451763981520098640905660573635209294692370341372159812947764648834265575498635948028594949392074020813762907984434167910877304515582435481284844617686063454118579676893704699774734494370133220668113947175321022509991663934284305721873024556239508459957246517401781356016752120169969292381773158113720437548341304681148104592942502119326370614607707729708080230724375992969279461521892055989850769473987156025882402074767824060443108999285516756231176460739875898582676992687438840929577241443928416160218707553933678845180405444751950369461397788373457410901720474603729856533858856244357144793100943591834968484011739863951411873866016017169379456668964003617317052950809364037653448831610141620761842302945380028805062149238865222441704067420129572717391656199281714919414380556914380603723265904005332094156541906582355806891549024823449157330615281547069755244711339371634981603115824972008767129717475216148187880751423383392203281154047872880728343826960151124294001913092872308538067024454290984268886600367420128955908553743906192229808433922166219884741520802866707445475695066811309610140391327914018184503867514331278819320070256646774914397068632097477191010575148744180035226621868292010213026089625513288422304885632229013445793535555071074829549060829311310658237734917417518372776156578027733018621748611060137591810598662282795672174115955460738205111009183858470491748273334535043021720661013592310512931464292601504589637229668864749614489839705650202822076447412923240069814214671951629455805284973882549477662454682434755411303571940742839385707693115071936253395209287089306214271107246433836744085237065331815447164342871105928887192763782964275540499208528597151305500134961308832993461620740640746025505455968965424365446658010551960684180831828271727795160551857343481448283373326246710050394969677935489626425782479984384370158576747263080860416988504895520852848800572041536151494072384676050153905593343528036621222108246614464999612495570849662213060119642723887632687613779839693663483274265647172452059495277762881751400431624569354223884144915705745985954073746342773382140840906325109896781639445265872192578640991160753326995295529004090125516904681014008204801872225193993694299200401279194283852599808106354496970603311207263460851541393678086441877519893558287856394959777929749649918386970643412664136991773607716489102222924677329194379298000518245038954990085272431324522616781952272327185820409488825569823006425835039770220484927601328728883827155461476433281772625014591953470195984368352826780455723777808688203936023359505632505123660405695531755558317608048705247724387303464560552002864682256933054337088962562613956009976559852427446392386832796015900618322718412119214367066608684869534683625553699498923854655521841716939655192080606418350227728264528225633045604248843732389871643409280342760829429392220668288207228327082239838165305776469017219368962823091624673187811953952277108784620298782637359127342302705081936346130342416504043484797300987543974118374609297356883399323257106612838683332860477579518355392827867318258245959698583240829693839018036413091100583867277994197472393881618580819669304624861422931901500350067810987077324458579252411200874525764729891731962372841595176485600557293644679395229382412489067293879040112559282111545376309255522592798967819924316905784221248682089485455561300021196788152369751385541181853266996800777264704148163011545000410546681362746831895434656714006708353073473110167947928197457446103825131447232773504039103916554746063087614110228207103226020976290153151029906283839010280315058679207842228808443422080769279204920628691260794868792142196781859667318076498648741184843967065927009464141312391003964325203163919006954738267312753750790823802558271391072513119323908272804757976317661007420393568170313212971999982867686815329970245413231540899474641829685446196616566750648124650248059107190267991482212409843879731756665085856856842402292630846475944519171681202193712751950916890036347298130840112610433529536333959135954825136540448445941641606291955799556787914216730935982514179879497147657947465106841521584077700296655737370884662398656258993661455309105985713645806265687254798527261865951628775982763576557040688180500006023202896464007425533545991972546694516650775261614384541548725696474112961133384332187469252880226604695040057872255215889936810654798727589574204297924700133201787569644590838029168221814048816875051163206089683773866484526775862741468858151039582906155805890355450275466222811100850607240862554624345644754275619062477526132863903356874425882029898998398998243441289503607207534418999415533342068462433725395666137185528654367828396009935689108364388634496884654704793602743448834489572401326681126363958261243616238953031138958664527176230874971510907119311577901473848073885917250787053794502612663000441444530197977126711223810553048623806513009128330429953916129055327496819757738983577717552428208284789841726879918543809562526861060689448958847919700376244150164801102392733443156845516370250250798535291130795913900854842598701716682136547354458842770040052480845682030577562324686103076133595524546114093958597956688535206340607737945867643488060474382486251546905292387698394343859795778500233370794743280146794378838341554171233407836298836195646204587106794529511109483936375828958992164774316279175856156954219342614000242217357973730309728779708576940504817601445086828973286100817438071956902666741853729698017095574238147875695844751294588461517600587953424216455027044637850313089074979226618261110522411992056247247245284999428716248939701237087531279912604849078284401149456273022291564732267013160362012882845951875587930952326909360597229653199031588015443472608059678279665644276705091702290187884793326896220781648719407001880105252304827245392963440150650874738074532495617668258176227868893500781244551349061555944174651354208436129586675055276007987757893464153954029791755685400569326618382643530014140172825902496987453121293763477800851398731375683174464414046835675800615688450838560592813573874333827346609252273954052091756206607492056480155008518288707851499079016128796600134403564784855789815903159291469905212932535073182838518301293003970047998581028814690972312280569245918566171741872641693098528919734268952555866075386201892718012971805806936019041050519326125824031929325178383311438142427599927941161610838799652562028491856287358997932811109078277017174548228334934861494957634778326887233034719357583927089539364296797919296474936878206461786493919347408896788954331460261770194752626050358124071686507285073964644005318169207873624662557176840270065210784090100496671156710960705512682892765202463135162799337273681407901369581294966646780236215441465129177748996253422555240948632330552982559646287260403109963613981599246824183140213916765848764984797348158040168044608464494642545986412757619158479596952799144934547405689669044286864011168009222365674742338900555288496876085735082249961880605379198192933150579370647165376748118018590023628721245645759028980257125695029623074031284294093228100083987131249216009114710545772967179246275855790229473505512020843362927424541488612144113132868536616067647410415580004706062689854104669809213689555263143981853899507813141294551647106814199454457747581380737732017897227688773896615655684139601031485918124061664405362646025687704133155082537961421983790702964016859148409108264655990403410941806856694096105646229554744540854283545955916964121494199956053957276697154101742881319918857522437023354086413269645035679812763180047354228945741565192688595177130785810361092310605555766203471233676282441023157690291855554091221614739632507695609821689780326894139662703325100623115267810373624055864018082575848061896750726561722005978259426548349089624871422109467692562974129393608446943493109001289390195897741844539790664945682335144152570707624468331924341836945526453435585272183983987032535647677308315703927828015725339037827844532648777197350059128734153435997227899887200249927091792706040809578579078102359799645490806475389396009559237652321329664264519337375085477137240484852873917716666408142956920065296669316681011135244853028718911727065977876997201463387975045359429415749299159443748134076839072853745682624694130786358560878844765266767969053575493578984776369139426102766445592762843089501350026663677145208687550216824477726745371791612842086768123955287899269361854788438832066387916983604575635917618058235755187734836653753091895686783536343693417273463624746053669938121295366755632624381306921673404241020534114535387192915199598602756980414842356705545232373103976660500030180173782207005109064205832225875068195072529532049580933988205702119259480057399978202542690561986817979222329702918086178620560888310873323696046098155393397574212886062398591474415091234365094858041302215539153823971218200413625926602511858954927912089280596172429160805415628853287823318691587357744798414239623327093113180464923501137920845568220515114824927964224126282006899550852343618185628338558917604407301236451587310357558758331235121951316125266493990874162012516205815864552277627488209974627477164122993124636894055788536510230632642599277587736380030944201813857600599915264168856345740175073136338672901459666591527521077967891081668814914113619725964839946611271108902569595046129629183861847480904556908744280318877657419420989387625151360473620121273162125697866875558305055044320008603566003095599814734296699415265321547068651509472856873355730384133855396012975853344297390340465933689339261001356422643047423539341876993885191203508586573021018639179977467171968380501876826195438714547911143241091003377468729561019469818829994865087138583318311848399593961780591415709670201619158133102752953792923141622884129055027757023842613750850513905607829930208261168822877191851080715337206957250436975627850872153156155165683026685540925308154897235903990669265266884720541871319132674488248826888040296930845221944177418722697785727064230169761356944017361020081348582219690969940380618901578643276040772065139669183237162410443590531671698987218309637382835730709792283039466025216797738626320151712289661638345873818962285472099707953916543039891805709259094326295320457924504096812445972289373460399317423891004941418208284306537541546188934120728473815672060375673526624960601351060136330199491559618425947969543857525675193323309996061497995779317343410132491547756620523822651033192072675116417785685894369451755350816825502994296946442531120910485584237922011973576969228312551333274929467254504598706869511945886926744369078537642084736681517602266982219337893953931721278948662261531405690496006374663113583072576386674918849821328165378062965468526377057356687597200024074489483345008491274788560788534242616344531995790726857353946528993719492173687869785007664543139149136114146649707298562028486553563634364679998168919826552240494587482460633085690971292289235138604818402978563617539861611899534878139578589276430445315988961238707316324230842775160254502584286200647185946601619998180368689249053220342847887534128669622758159008690002660164984911586571074341483891084757793961026576788575917565434771928377617675968436492368453400677122899684089806484827558126064780563766749886752893159830895862460294970469311675446527781855098366320012843734649537447644329599786509418157033666039876445218094618687926257816228414292958136736845980001498545594626392012589755875863149707175978690963345669202408090935867150234148163969526473814302613708984727963277108262567722745042595240144080360243212846984396375699179453232267479217533716526695960440108623995515215629167889376958655642585268334184435896923618102515361940682565656685372942605485519835817013195859988199064397557922372711287994167885537170203949509049983434806234421038317969513580836470645796866800316605148275622378484731861267225576321403006810596331771198002968083100809558642987264099411883051426138950885288510238518866149940242722370505608242923540167362793579522916395053239019122429995598923503859164532691001767278273331577075354438311385534615985237429932911288202455250425397045067026099132238233194534379631428386586040147678449748881300270308211824624539263151385167233839845979097804906507609112654197530582148157422455604516381577140831969919255189925590386945205256936177829962171967692418181293670229739704802966307189473230248562143393042632561545973918962976758143125717753589111113495090561000587156336032379363196480183785410166793175624646579969645174625395565079224017862384421870893354616126580661152593746258854851075642028175149191681905854098823224665695595884944862578278194832682317656841810828138653238824985446152212198220367865965468675698116903837406495318752422852289460935971693027868874289849899895306595886783269176121197012218583299236036242532729011853160457833029514584608387957397513819901613225622252378974789728472549971188133821244629717308893975653529533924965935981851765243490368974306597147260156624674651041793290455800418204278483081868964125635265772587524693054089938351806206503613942846352254440572712828475737407954388130901548433022635904506275358889669488298699476387074214317469796977734091349959653482986246164022879105186668126520811581257875603250874548748262968962237532326250968565235600464376472131521137692232942835725059781384846311282312425559054549524752966860655634357900311739967781058603290692820570397373075144710939909622699652261921660162295811741704551206428643980099892475801008990256100583580870341625085161227352370165400092061434379912429773340749677904192799745231518612787027475897428632192710518913031667034694528898209630698496888099695619689353920562238459408328436104253954264122054331617818762617339659825362035411297847315984706124933291404807744760743014746967917447536985174809608999970945401349949711946922085767029570468976158374466234603500144325345954194743975010333979583933757074109282577954096785228525096071648875536250122943832514625250560758168837437513016657158143281449587322899666538107658138311111181452519448188398098268526773032003006522181105192724993698656679969390124622663824584943614094689706527681326391166370712104559943781136427806836602712422566384710664941662213084076711657849116646385277281768194895827679558263307907963259726308871479219414365211408633716044709514905884596340299074129702244537586389145918582237832671154833590779085252460722333188662645790020380283194433153385425177481117037802112577376230526498130018250548140790631130579307975981707567820677332571320568183171288256468521787972546841105256253737950429179057465897025049180241874123523021376492327374936953063800394225526109054475629992883359185847240283194937523241900463066036227239495961330143712780979602403454522086234580542450579589711198095357087285858051295418109414003599122609229828861431918834190314844210023520139843493419728506849058061225566420443622158094607282180133429026588507625567879623479647275050263419131248345371111542470757360721637263281195096057402225894473216161180260661038209914876886958599655606597099332856455359081752643117367486445617085433224928637063124138576508774383308486972608946786895598074157899746918856230294932856854641270766816042806918414281493353724652335230219766208326181184654312228256576535792311205719744102837205311631469308161806277476711962094824427455786742276716848363743064263941189260782616682923438987767849867732781014410748751974286266980373502762819728455683886526864395737623626381038616474155402300790092132291627126254574451126535889778928428426385132770721679460489815456341547998320829412245034688071976400604939862593993030048837495941996464872725274961271891927577005371149052119979823083742125860618447700843138427041268888367019654392922365416765775104713909901881024046373447023194652066151885836006720287262798790758550840774335546559532797662658543524327358119293449982317984077404000485039674421386502214404282369234565709190516355630664354405775699469674351077528933915722616273414730549200548449343017229877741676776778975508558774456005373976342162796800679943498794791241241237863176357347371096559804940544351803106414681903404012950961620181822192977260396434306543537261528962907724515460321194490290129366119574143051432872672691520277724351986678756194655109901998946917708471852430521243660288999264949430663983040418761826122588390241247725471532258104498736836822752027454990876877497801533887088478974699391193103411869972305270191895391496953169333819006999478434450150139802061855481651713802554078117320439656730891866948031959125387932015336288364034415586501615628003415839709759727692499687731755821032174185869211783527935364559045799416028015280120533929205091764807635600179693975931752682919937286803820845485050370071297885138953191184188644159198241246691118576796744132711971087912179700043355088630945832141220835186053199759150461290289736239657617727631900466983509188795472383179632312019406735759350480839795855656795081092384731360279766366980345312183845534647191055830254646090285038614758423161998665920328918198703600037292736810133733555783414673438285637660500826070606083152089879018724127012535585903517272024198160644285670834394460255515487062921539856148543077010872983956389987234831801733820723588522046453746456096073370959748483440388460938033863970979819030348574376857731280624861866393689869496313805520841639939265900851359028978976842897357167512922001981279424547455695729377506797349344108705204518435482144405258989393981364218892871624957892492696712573636338465638380475971594996882945287768606756444121395228580023753911293069870255321746795449592737062877394655956487825150433777056121568370007898413306683992953400472317161962281056016334305074499108543579840858557990175296684328819383024881999002900311960105406346941212813524941803441593541278470690652944847333896312703715494209877126926861517543330279066885345066879915178232433374971889068982288466899933634958023057358905924680705591222533573233473543086529709927717340723208527197636528796434678057976238992721931470277512592036729601764373927632045877718359172783404604217428720180140935116088140025088949033526645704096273010600257716288526988642941469515820920333882344915785510251307758748042936138684547087604760018024110118004902051897194865255244618935587261235735753296894786723491241807363868329329067382317671745598116200762630306655715810384740676816636180344746513684283221889807102541466981441393701661530715649647925632256932459845038339950398724710673848273547053350312506514039054655125838200993587829787773884274704792745608674166821899630752278236776279014752420019822759134338825904691298339608562348693064920122998856537255281274704162161366573361574251108164742968294411052408056091622945872555929724463217168377534625325182075744724768700925929216892909636313580395276300420522115766021389579739958652595866319481825607385882881136515416313770223141573817418669886093705058667934775979645240339720643531181680950233470384015308999399686570911323817014972960045649501839786811381175667697951720732687423532656173983278700915566633112248534319149952543998169747042590838631608693018516501281699165842714374241531581903221677649630223874134614755813292328504366805492445439114400545596989462956223897364166843291478345126691181393135314173853500844178640975167748068499653979184495416165028162378159215422449946647252851388173946203425344687462448203949326862117536981178329523787621252845039162105561067730601374155107962762267934977549575996960899887268904524817765058365446527620259124843100484057192826864668779239656875964582580208985241483383636360879996605343290319894098048514506749895449628936737234047241722928645856762241026752690861218629610101931939597734393600505103743542657647821954205536930260631500924124880825114669952008889408450892237167164067757891421490309794960489654864076367471881948981928614925326025854298815119055188878959649579737056866161996790139244650159722272473730490888252611991059279728050047688754677659563325480473075090082459483738055004302475281175434066751816247054637105605382613203368415599865517009638617162510461903927375280070471056359645348749047789347030072764183835088826754442415154049354187862816611496255385141009984814355928822984185294853899727241546630996432004117406397212942800816014729973003690281012566923820828696831493845340917571512912406951440882623425341293912260195282661681985812799966185134395580315628514677067247892377228407426397700556316628291248847640593084807489775407108972984061983458049801552942030954260022105936189415173039064487950467072488772063205822625919604461204893947906687394382618110645913578602600218198503966770155835020676346984814415868377103661466443514835720514157239834459791898303953109153508623168126812591376385672921432769544035727318694028654554505805618865948476601965804579018869450127759931155951632918030933233177472177160100609659782932895524072550146118218507440704923866196520201635464617857150185311777341386932351930027968013280247195654444796563424088415721387676644666205002126798033979057858700959210018870445677185418256981747424445897118492394130667636200938048503232246899231490671589754441224694854079147603314339980701053183074796513366235173312255684576720539350859486221984432912233171904550517838636370063972669602113664595598352406141402136668288325717031548121402504357062664121127758754250021922154575607418202623375917221964601316288185882509014185130203978660028498520529513564361641265404462852639775281933624048621938806411763976004714203904076938807752521892236422015098144511643771501371427493298748326032974979483155161331833691789762761201490771308595752143421890361995566059416397021125675960935161240167095617095765463770779956351437479748294777626214263324243977996652610211051175052872211796875977761014344742752709431049932312910011990097130712546992179300088180311203874549225047782563067278067221052365683332657992380793450699488701262696692980754601248640998429616417861139753587002945756105681489740419465312199920027778826133034775248288404123424814399329518330657960321018002779476600702281880114501642832173575094687839205904897441906916856931305030446413137167227012140604145318085308382219724015093838037045273182326733189756807001785213452314773118438132373430056821807491726013100770634279385791375406499863355682352569072124685493985764886364325424134408280263293046334638784098330623137483870983836614812518105506307192819279123106157179853268065533305213464460921615137838244130560295736128121907693672053516496209029917318059582339859006029190567799535620547763820869600838252514939253679581155124250320025549626527639037073808415878185343531229633714816693599878203801129748829432886861911589001182790093248707793628091769204413931095303085726335449794530100479781583509877505747696123409416853716508318169314145290164547926698367575448332866128744939766598536627343341596813095865830089599555361817159546819270281827376924307417960854188031257356291053128921699060371945366838273593440050678114958079151116537201123633708181168182337389138047097626461546010668743240059945576424662484981244403653140074744240469568801931393267344225859967436006986388850667451888318529830367694271975710138289315561191784142134040806217400999380150605894080267536869345221789623234096768115308001905006688896835717358153091846058926638766752168453161828699104496893125025803687253555020280387356198560313128295591330194832824572615883824433046846490837356584249898314522047850005570170669353620614949498071578149513337542836411627938529609432254671315116853711811298952104041137068762801742052992476190735342137125760251104167841154748725703749545772039971861552598729407405074467639372821139729744637259201872854859449193389020170294165449973765848488718452214931494269769896120936288247855394203018668964028830406097672208113526335745851775360483044831177324452895012279995321259177925279941007103007931048188951919827807076827692877590728134830633595174836814042169542855275455783697674351111724085306625567951396661502578072839299758668607596404122201320156590567908387356734156317513003633066374356349936781189142455026722055486559662424683376386246872938351471594108533554474002974649496272984141427882449638116372176514286408114975161165683639188200578205349306871325773652105522718028129601739677611400584804528976725451516756790437314962162500540925542954788129795991631028122065541403893293680378456013357963864751919340129127028857144235396056698628617855669310933448832399287059176548609727579443588699029674396118400029399126597705651414461520959589788828719170289338929056364480025472264096776583099852731543277900614012100034598813285024297312212595100324316608280133192140390067823017900229373896758069327871411428227068053583072337488320725139092522674721159817732586891280851618043991425570306688743809734120139359724999791156959162122088277125791884354031904698286051039214237105961958111605516320449645512900938912800712811668570508473587880375796266129176943456022338371611498489711833772320423829999992949414266266161435257176301166821497419007603157169372016496481560274827610119512163940825641035870070221625304242434736072405074105769937072880563866892402267937863439585349481370857792414883016281955630187542982104665368400842541065063027002817734675491166832372758920694403599179016863847816281922793158394628246234700251437784399106771289239590536944557795096121825958677845084467227584413029377674909329671516362442932580426839456555153448655483251487621745430817111891752647379820556552754726880226592097849831894747098502867292566957360815572730840462497134169792697730443272440559420855461067612103611721389727385905895760270456795853698540156182980358779730308034859506507920244142638757796849279067513213853783813024251294324780930882271949755361441041341889079910779015409044263587509774055667683368403766480541439949784517084680729861782171273796009403070113695699103799606130926135792888642658901549635165596024537641167934523311531929055140019008667431145748891799195933170137323410936029192570961291344840410173468178921343311154757638008380127797279633066326852206213402477469327973765468140799826108384891456856875934927559315486061523369915611892204046023461715267293238624699167592913161970469878109227268961413172751989080589888539392036835036835651105196481673707838115553417927284761554993599796808066412073619671947112010443387505295495364632905428962987291637736979122414639476181430466120352677152845527504390888825661719396880540690098318398270211566243592985727780495340025881946382609320194763871020422517896423272835597669098623957149629173119059273312649859196292613926830039866889001887720024860293880205524424707830515837541520607256252470742486684198495897223325676489134544743965992026808819978017703758428095041923403524851400678048185790165425588875582805623464097887760583791034714085417919815219500122262916333790787932560114205337944395776904866697558123652371027497838049560188495070966491072384655163959329993079894476914262598906913913022250476697805463904363308737577972685173471287463490923505958572006195645401242373924282249523032011163160638381875110329877524221008390471263188654931417747621190460961370423106608558486937646185225666564362106826033999908530094043068064095121268242294711580910943505877995468701553675024291575928194591285308118296134889928613511169561235265624949619795939718468539017046019739336157454341135059496155726244548165635735285320650671670759537163355065788381874259489185864808391963593316631958459989734035618937881581245197442628129633124301632746568710416637669178595315409875026636846260466771187720267638755305959958194918300238270160819583258760211974579374815487163274913833294330703870654198678852799618065118143879988778431173579078588484139334422176553346000344744097703479677680149800446480591989032124210886284254167038849070974740161749875871028484691416123420620787412048984068041824687326576742973168287231728594047804690885878464433743751103611700367808552564996137575244717876128820519143582925413333488871462650613717308210895939809061782777010324395490325062780924269753538456760408684743238216111642162996861195309721968317144740148677766327483360240509764636131174466585075202528619074999690008348203003453788762974370944369554015089251821638547582597345282036943758984345403046791883092391925235152328677368213213844952538177250343311840445501620623387844903327388682905761118287965160781483474700847724237019285209206866714813370984618390449112112494936690332714730503298901540306815520188952189471402562418657464808475680091372656205973871617107446450171838128624775020249797316067804660419739121017037195205380210993204494782314279028712794941212305951113762945010630582838570303211639359596655770407560941634232488061032907681361702889212262637490435474168069007395236042245603667940858106651995125384220396839954008641238931041001387679310379511639134526088083524713800262814037888609762248563817148616992231275987304942922951951112663244981120955071455722189079581193556633178351061971804141117696925798549621114764975181721842302088206567189053884808328257563082809853676644277872042409465865549434600394440891261528151808588903951721712531471114428599478840739933814069606645442364094845361851470192345139123597679302609025513561467206547268741148697991374808264844440091276309568078373736667800172213202773160931900781659898502365260737871191688103704831837113428693440867397280662257017025414122511951191966333442662071430667505203160051479495091237909212205076111987279446997295644831587504571646499945172383961452332667722643744171102408423463140347396433282374377736890145358630196132944768748617364373565963762066372782778544355104683505311512706489108841749918430312436860917257034845107736841762535820753467818736028771005475112129942704883506311768648446219300945250248253482824501358636899192462924271486016868525713722871268706997651341645215115645797043855797394152169874255671910185354106977875064550537915363914784640923895582614324187872770084666693574707739764375411733078140049751625999086600988136023204661948242288079038580186668183026643015107784452749270601014642607094358109770095684708065359399528344092352017465530391624649198869889352498411329051230855922450012150463537701384681210567380689418170471934626505168421867608614661077262222001491469893884577936612155661496390875281996584479774468264241276368475313961412836783705970349544739257508933833620871984206058335690204557968637298364911953884652439786967188562145393411474783340489415987279391912320773623443189177444714753846132921270526971500715800951037846842472754972868612647662065453414772011438204545461344599679777577228375025786119439380998170748173260611676435920708854901815570960025574662382512540304424832944384281228605689239629795116489745914121220195418206018671969657828084746461591945304377289744253537661395446380056323916233128163328296603366353689255966803954099377058457387413613843810565470509308884699100930036612833251593359156156150809646021023202238617166910517983722609384972502006118473373613888320834441443844862180091634921143761317734537814927052274024474575619282661097009216628205879599452558148018081993758062934035217676376798145468523969142360967757883336027509104007371339811206365778753958726577425045727511896271658208962362442030227461443809540302652999631880350937251048535169189351387825814889162329427496847399600172522488196085726073075654247113748838716924735298287866305993165086947442161744941918597648217110109293506518613416017729295483000562702224203669589415083891234131224824501612575487611097164066819408761426460633312318945882924742489362568122507728563894979434573988917526562798874404212506358424803082775905955220247654345516914307973816369201468175081278762953990100481677283349456026793277737564450396567306215363085200571967770964528445109243674673768451699703635017067997718859859591901440257129888032475976599127372499831047840166829175415076885973822996366210538461402893099515785531876619172873944364401011791395129790945289369660090314770122250252473041342849865604077731137627890076941766793786562117958843280530751576888166322899343178770983440847518752114466935287045959676570953933778739197370846741244960224418528123691506061930054934928584501724528569313492778650105088150110377451025139820452906147400559990492782759479578520488134094151137781237254288784223910161419192423348757283311813781533939713003309623954596975198969410164261187829622510954155485439238654838410748042792755761935112397635132395433045243164662917213131277673749818148017278776892100214579644610643304012226090942594822032854386512015995245988234623315735872465838249077291252448290488330366117037848110001531527640034128490130064336814999140974161596797271722986502576216506412228266363119681135823196681064532028847357734951002098432329127750940610551232954277129670915377379023667644310146585329932258935779912175718579215870967409333331399506675547251871749563902506527949295551740540159044605374727122833355505097749372052333355470144936928691569524877356756372685200630718725064905194436284555262572176955065838843368923845579576506002879001799797663549225671952434612125696528119342529339074599326297622673005744094468453972401747742581907613883741883328540357945371992920795398412116228854236427555145169940080090302024290844692875317771987672247507202660542026446286801913406868904097331747871498641133799064664098783188096485890897825531082450184286423817981787362498878303607188206024021487919846126889447062265785560187814696966070091351266716975425806781643090567571806802495605081149923300241024292563110896061766785582510256679053976322869501294963628555851231735930562647692409331826800761779423495520104941301699396883064526704375513909372238657483298691691214746856357932173008400987013321686390480512296352277653121365516419292184008890388877130866294663063874851385729068652610613155317307727846899854508001230887373602808083761470859865068614194191472573440535532326335838438999599372346210205699839871315802864958540375922889075776382927351376313986212347560381863405923109345821982148468906392922073316291271623910893455016185160088317829920160490217753068290004026662926973135349642025168067143294295528187068590647050800712302766509683220822090919940401878041536089130073599623821293696927248715902693191890404293515540883407377821017965337228655263071414298558595153346611035256911771312744127976488740981458801023609522275118184205272393708362012447900103352509395629122777715062053127623717384936990287678634729992688335000450386485355376546694122867153012823035051920010243755464937826650856029623976126687646371486615526004092481743321479156378899225149195695728543002686642333510778075602775981073376730545913901546697580512640037916863892076815448284594346994963532026307404172940898873988655148451588692779962033354334833098058468368188304763350382998604273530612219547267709422091448197626290758459480123819794620832544393765181514206058975188873780669263652561300430232385717004991247977038514527517664753803054477447726893022933241762116033140169659283412726099244131293969333321890000615648062089513895939942900875749786953493491995802295392698858149618014982699567117709595851120540443505449461808494549315991189912191899331495339812538467347948812163810857466738113064055005549919032008358033967712934478092787140756118935132551418412051745230631216627170642260116335512063097591138275599857772660910757637894399462498865982257121854673009241896459298599555699986295152624603529518877004108403968655401641296577968407589605196204366122600631625868473207256299066102547818881788485645184371636929422730885887213403987609819532233702803378413334000117674667146226007100618685525151636534013075223622574138882162422162642437784863215670259728730893548009364819944269076610918224756026556630385363679681016788810538860183792482419148742936818570751252261365629864488419979917306323399465643217430891926326274483923262489553710565910739778816965392224798799681646855840020232871593923863923061587261901563659800563260751934442146074906478924935451426212133530012511180581675679490718107526569859546282145363644373904641601344051549900549921388798112844192058969738393953888218138951117159746520456549298466329253922719702563480042964944102907944239359361151517208400215698119991277233078911626236894394800299556452053824716224759837084353370014829687095439903953458758969979699998340637780599081725413413699975690905088908984616361233812399615848418136020933123458462689278272321711872955589749933033588654845358360540609181061562089316772470319867808087696380444125099085461291015141627180724478427964515835179596687873647101251010388081184990169151757210364444311491279213295650954796668032840358987794595826773991825014209168136235994745537431964500228285656784609589937540886350060724216364876313504393803305205763835698732780129091158480234046598078292861737021502217164156505333806628211252184895866597121781884472706438807580875277551711335108514565980357137764340549873390539243038868949605824328680939472999479593229173084212111680831992245131394577567213088183417043126488116066519757874017481433692535884221058210652459840986705630868919031095521023597140457283975872563602604391609202986000127153672613781502124720645785756385804695426412929299433521518324791858658486162869102463919065004014646715908599738563500100041392698851952074977249703414237912938793236694667051472883353078748138041842673161202296886765291847043596668166101206278770767406607804265394734999062555109644487113589768978943812664998751475920380268103706004688344413617529953758998007713048270944279035609069081318676585413686971197827644288945419069508671371422110171015305258900941103309927338585226753004584600461849776705915190163351134840334984479689926449223245568985521696042059282210424732373595085488202516937184047742999092267642784837028593702585695447440186261327606849273503455445685809878354472208912351869024388347374951989733829929355708551194825262285061507726864988156186693177107752120293072297573373069508284323201657812694046572820853487454272107407319374722011210194532967728564273561194721828687693061322201102528081064490514150371885815735619580125858238315791218066807518110105498364897233552199064696409956897660353351762267107899925864719288636357880353246529752236857410174291530128558602404798456327380343398965183933627071661960229008228480825888542946712474376155030330971262151493438252581838669616453378655178222711186347649183401527590882813042299326086312843685749991797436864894319967080912917677484029138883517815785010788649047237580403148440843669959907628620165735479706917878527506665470007843023188488206397238444580670239579875260558211491985245143787617159545280211969518786737210344069590907047717744096499472451195992995960822723006261132364209812125055221374545987855242898155407401359168022375530975366892396273311924335030352294895630821896177426538814596923997236277125406678293780056894593916035680057459459174699236441630304410284671903892032654559045593118928201179637325045143261063869817539745264617952501292073653662440966536183494122547882330419297241316082280499107071524887573751739329047899245282416827680685463677598470718469251706763614397678353749992727765799515033479905713335322004601114237423087365879237171500004812893433386569307832036555145718601794457573921598724608768009956754436639844655251700617747655612274042708629633092239481379018917311586153895303447618297787990035817580105016004169968153918879808070186448509233588703375432581825340772868224842519344622381995598788584254665753505654081460209895220798862029218603903011324414484684233633435958564179217005144084064152314073887437641184035467990170451887049036602487750943958948204560234051735940250985415829434406741675841942730900555025767647246114534430618714966980906035831154679507756141162502956584234467391532251513770964503747633710678558527626767439424061980861885207559634667970641736709384305609276395630448348691558859963826403781594856604076924418124978675075655949458988571110666131578442519901304208791364233630810780740482244636080601280472808427766352194308947705409254804740586075678449112281162847814026483015011518956238282700410781248650703505906626746542530486487054511986322243739366753536083679757211565460320618967684420165065302494919066192410433157487167325215698738897191492504139747223644866596553611633440493527399415980687672534086549452989024016937597102887828631253139298666056026410383662452791489878181842601833084423485186084171381177244324124259167169474896423651238907553915724259685208215829334887716757777075909259987180814111712527945688244474258636893202141037189180797122102165019781456382878983923608971738277227052250552606359539752607926003864639021438117368405880179629240301378362159781405850902445477170124619071858846799966448270640443331821474795725915363021706870345496429910880112294865178626060631306265452642860387743466816454198145596879319665147428060012911337115284063109624368884258856050793486303497462817356940476763259850823558381392897670091012041702533315701041294346016753858857183598160078835275949589548248541366951075930051129942725296418268325200869908603044863479254242770240509512729167992616267277659437807660776024998246314866266487467230082261686581073330322622453618512119210445120899904391075421361242193589283058368204657409924223816671305159341360493244554411585228403073415846945242281213200269167869692085246144452139879277456503630582797476717983944838080735817166140157464697222775654969527493797177036328441665962136649081062661241886282661552338533233183062976887342538866925446840181354624280312685673249687814010588526986005513225766157076984897879988572358249865745530305046909182769479591930952410684873964488476929239029856251517674463920941628457686009674209203613561076911885275761251022715599884492173826452222585747865736570402656623179881094893197951295600724424751412448825182923400107347649239500269795686934698824156539629966103841789543070490728194427504660430437659263366665293322934069345577763554394102576738575259714522621062570132707427187121124676073219241385660236618956414933484065790173906535119358430659904349429067512623454819280067062598324964609408147118759787855109487524773196465548824943439594535063571818492778817162004388850138155391475075749701871512895242105576272086330930654936111840165475509780787957513556438652119635920811055470440059890767084799866324125325879483736837237030005483041593487000054587036717841014804585563732408018730936022984105311786874037308717202656184796770508370205550805497414432444186190450742125157662230872843767886677500239283484932267689326260699165246027943487769194188659903588146361674479539935309770182795420356382873106911899894915650837543428279244748057787994131749718620583244701151981024547847702191286169707829220243614094394118650227142654243318121482202190651024468365930363432533717676639502113767701862521839220724547059266932257386367858810090309810740199968253032612132182079438990152063526128450175385479476424582232513655569992610196199993058862875392768069330413857545942495863459770891552313241433415170889122420677123632190260148760744336308204834897865468316000783263045136769752390641175182272435385844202409202768046195931484068801026851377849568183492162554614597001258771071533457051309171108037089414371517482602201607208019417598496591019870153407247633462285284015471586699895342324485187115199921686573192685206297850436721312924911845854530070980604334377366845959306236491033938375423897815540710519310018384259743098566434165218762018657326572451047586439353521075908557231015708732164855585098319044286096506770787213995038780733120074195058343609365390976008322402408754176052767301854210751787945557699666597325282146087791502358460122853657279202494254083074618775175052678883240403345159529362435016407415913501414470250217812861466895711984192949108606815030184860655885420853511287557535923283197787860903143340919562066898074184600389059864425906134084999184412488546438095822206889393966330389196773001964906416051869084690942537010459485436397996948122915627444611797221180166675585505718315209994987920743144050850813131364881601489506111330647661543455349157457693797242988201789727803337516123059074789987568783651180995274424707122646046821687837180863308444223167401906617447333348784184000303131648796826878347240353814748646330678775095147163906546297458864225213462433680824236287720900692774925052272491161659630484756732374967428613952093867603117403794076107708677460566918220191411301735619234714795157473474844566109047924092208223514961104850432621731667612721081866694543416110902522926003171320357590924460100851279460343794342873308146508710430451331511374654538713881937996302359994083635625044964817113300335272190734238485256009384892086796948310487278075553194386701890549770794899106576353465100079273434023937837663130227480049042925172602282834346008422569599533613871945688917120108363696943336013041483947460821519915864077188911871019926169547133278454899577334351517324261755778643678804540252236837988758610054809409912188002341288298477741089225931899056932845060184423402530974586935257204462512530883720628319690395654849307808881669823318602213563885176114662785586600874895156561371182099308904566596777903111091444425474118237401115500355712004448999127687265919729283006181235581750626489804727730747535290035413044322985996895074473449046869992183328164522992690986010757123771990211166106146039846592864600191857090142597830798465320960231342775986910747331531624775863150113653814059401260379443853316291969372763550498058140450602273982120064423656669030666490544193462828629425003674146434961992301303133628223382814429395455579435781658193991543604848477279591124507905388363817323961877403911863267415790419862792756272567572346680622032072274816286595022287266797409815241859963359273403578140838457742890274574023723642561650182378765156739608900509411002203273707046621935714193905364046926796094711786172041962381584111593419518121145933578676757337125376929840867849364936043431905349058049108819529555772739006349016060105198807521775335149649693824561682323191799798016940841264898019738457921392803838365275488446732342610644071995663952124029299637654198885898704495711131806157233365740015535599496151547333384136916329433697232953232319226681906295334199618754012968790166190011915885983545246175111570898930549046128237225973698442654022478739032370153769902736217997092366806352041131552009485939923643525082462226509792069220009263866597200903574399876739205088574944430861769848400542711710244129077134563387528633548354666068312813612125484598341068045863193930604272683749931877016152546607264961352482611101561138769234278558767388950313509353229384577881422650904588067674941905043168089940759512166321564494201892440434443627108002603865955452181203310154253834379554543289054581529445394793003894686180254083271504797240868529105531275824171916901438586309892885154149102746278344178829080649794012376949626791115867005623744679176896424803179214426868527637706590705410550137026400080966205318324121806283655645494117578555327258673810524535884499229161778598665035895751106415843970567064404915924737026612522546670183949571168489650449586971035182245447078822815752648643567391429345586801036775811359550761196565209134995450466424116055825481196439459653178311468429236330936199858764043588868678092932733731039135985394927133695345660301163781326724571265099448568432454653226121148661949038703454532989860360992942086829162273953825947939269824116777640215974178700452483605802524230530357757307425232624648992322945846329201855233348662999110722597768007932382133513037056728624549145565162287141603057137905485124833299025742771028757179721335680154943431103219671557204120441728439813095065757700991388486626449068713562614190176819611772314919675187432600324084714292389432668723417086845390780772624538065737255819464900231316833464211073762261348074384549763205951330441841109006032248003724025668192727693103706649956672495095360385287890647073583773283535069590743039598394001639449547254920484158682876461386730127856621635049230785449542569566514777808986859979737782268691979063459874139140919461338963513491130298723855913229799780792013504678313646684944320854148043440859588455691454557751007880747465391529096748927404450978900054337719332117620875208088901445447770835523911938011424222792726823317717821102191984357531078439400873739208748940884924958173807774120858884586849692290990088976415527579478745237523679593695889354159924747102716695172523801096277489478637516380662820462136590516111358626435981565798660927773233212892259689920580700281424215418747489753199228244686807843458932511337877298227294819026134807707776658604282663622252240315807660067307397965491959500637055580039024218291022613537318745997682906945597865599463517055644346577513519867102725313397371102898078763106811022785673036274341078061439581699337741292021240770456611956846988459558530151836101131947772866336772334375283980809305585554877402978618320859108847437712446585172465326475498550423004429816231603429524163122585341091675623378271551815907569410348923614400057384341678513485569674802400123095750122829812742586481375001749712314839264766795535351482983345010123021937922193549984654748254102008697345763438020343849141049670103991774851133056957456956170627838272317193939179360750723382173752382174254067594697293537171510281370925579106470950961866030268057222837686534454436383855275163321016027491110025722427745004930603524442724662517409060197013494823189837828573172615357739347317203068378680925055223448623319765638205565571277696315232868625600651202657798384797247531473064332631879623463717741769553620829747621899663639776208762335790756039112562920058928384744624660158889871062989194875780368905549031059774794567106057592739106008181089614275382086418554115041334490467550471885884901375624596064351257718267896080242042691485956100768676064394218480064766898189796242004453082580016397846791952585179030672856000902037165307660134844223833556501458248181919205945203658819558298442985816867103971119092606035261115855527873197151520982651456826205952102896119641441926987849326360154783484690250282482532360800071285355746761557409821599258747709871825790420562360689055160436941021368727246024352877325183315427953503127442087466468788805156222959037654386887140091828977958732413619997829705933116918957948476322215670268593345701965440028871901354213538338689644618975663920775628184473066138724150820340778220040987972905498259347700006066795613796673026462704656976403815869812024939566009821241390147515569879422230801842886509538918117276556541790671881338705874378715346333790542754468995296479054793083443070330791907296719378226959870423675779638084108275178816435975711551569869348267821272107641302949106475009924072751569190798764286388636740715066799543465401408417155063397026638976383323226105396710033939549970932776283844200925607722864401208088729010397834965783669056184352001071335126216178133000769595263733569311152406522969232785061927477413388497479538346558910054658813897596911329299110408438248561215270907528499631921485436118744478049126486631090137144000846525991066320309195772436690658103910856454600171780518986604810468159320996329299956867037238480931119084168907715217678517461851153907142492258365859601875390216919916126015106734912860397712438235452177035606084027691574343209066489842097673591332549045673244670106014176124604444036756499931212184479970103277145008198177749461333628285457389504343441411778200183147741185254540770796660030714790754171039848493774015009277324433649607932718509084557632699870202613622032178813983046025433596149716856480432788273875633850704991638143363716425386969116373341266448293266699619544436366540367410717830848547897386481132612485097625730061994153634490072311005964203045101087502333381782388509402887050534082199923314889013841875004157708479774119358452668225722752448590770938374522278593548567955352158436053307183967058737558492960455335681330693618955696306290075997322965912697524222320912595328016630524459109485636671867215489618746484022309871013299900900706467980614222984925443498562647642199451391746625868067404043881080968952258901097147843604028141209891851110954425944449822363150227788122043424441132248997699854278788998372922132702926710274433292181447177028759859455666517895553276710356078379603282809900498418789985332189184698013432472235009313234102713175942165816984741632389630308178434817712921617124959297497080039632639009751452188897022019278590905992293258372996080691550090793443415564319727874277164698522093798063331267211921600826666477074151476941435147425183943386618469928905060611998718478602013470517782113017880260730429105357999345285614071040682240774859058654106430274783781938151808410079658618902731347452227449890834797067612183231981998965631967322730661201792436066600666574327552835432381981858305330266071165593717723148643419029088873396151845893040353496078730241594663481310493427007481829223485390469970435728721396942173054873691685443862791875251419544625928672856071715797257834466581065983659404005151625553344650414011213426624527598423684441656328122008478992391693567206461313433758486214305890653678915045041074108580826331347714915589423890810704488079546097457536235868133133086024976617827044533709695500412256044085025798851722643584499750052924298453782100175637822106216806185285556449794881712191975999683279020813331200536394038019372673731858623384263802667067772217416441151428649599204113594448461838192069293456523227653176397493542231447487306790929883691861435679666711082340639479115058112068423033540736814542892016120883151456399674783460665435973444592019056276639308623144290645336059730407138755663722282982487382898459847786283168997790852338801924208274961394712052353389478851979306523931849220371188219348010081689825291945731003142503603277547830466094149288091985024975785630581501582255584028828276652284454902481216537990428820195224922302504855072443093982913531500466569212349770929962696526127961544338730542612634713017144254589208338362766330468441576053266716979735647052159088932258918632876999624843227230815891676791606761824697301016437458156352240960381110366552196237556913415772277944645603603101745598304188421070376295159011209199745626610021193207082848095990375327741585025432275273318458215071558897807387938436446740110537251780674019855753765136569817203676537611064448031530054968961318257662106970149838760081992196876839015965622562891595348042339655441539287194157709149385419557763928118330854561929390159736638007912864149779219426427841775488104771403596538848986045296141327299329152296069371003861187310895477387644434733756577672736306663322532665522482872452933939507530976310811948596385252493498677084192068210699964864753835761648268906899662049551663823571710803669964947786448942308848154941195615979361619129668645871774109504442859951671061592896121270453040159133720275087775199883742854494413572091357841053617617401932120889235926838756914981372427653874887046840782437985188336811255278030625628029731767327195490863306061119358912455076944110975487847066214712067524975509820239049364712761072368530371135307705093080800546425359759574696954257098424457912719720235591455452287525299111778830144997763661147925158223934848048574294516492442313605476500063108571958586027535861312249813917840350543035800023842019422843762126818750745638725667998969057487722207557036833299460026948524998050659776951370253769740705072803455519763441506340224751929184448657352866466998691807550348287290507026660054721019035205569740622455304819878951636464782580416018713222714819265353406725925821630384794666851098983620082604072896242327655858925836554159024141526863869217038903951523751490484145220489943186521329852392657748018769146052051821526008733036503291400468556691729873455894682391478999720047167980285221286894374385575989149496254241091932124024617750828490324759095887508300657720494556963610452614902794105205559439807255900126439059420273381428907786866271898235867214641924280556760416383930604146902910808386932541039656505131693987212334616905086620807057648534924044164657840523946780306698522247494216243454936398019951382146910473682816435955555599384261758879646410791782677978225891104763128856250754261661761250678458166172873065389469188260962654368931373439117357291696329478072188459631004808416726699438245417792934316708451843249191227145872840775094881890202423729113606061981545673196349606038239180989315067033054588064764740427147648369636497935707781113000315682263996921153236702873093382614472597188538188928066319521702985376745074711227527770256383040160511826664537825240914595748639536185437619107115670571734396327414912771072239248961884075165162603169315740496259875845597290763501515508922795931017146436410277719418086276144114915209112184913220429557929087794137103909534153798316902156864419783101497319818980706818256135440501470124406761407429382006268322860198618661510994838300852065232231390833643682031762184759507378558159553888047306216941945789646271318172221174409770802916361890165209079047930888432684701562735365419226337216413057405150434966648289959430520306356528217646896075360115524409655761238920458539422154049488019572159507822586449408598725479727687702390980881048571432968008843538415978723132209079253575293606207889570968119991157561605268904143101415196033917814098865672517965585402446025449965013328744760995086242267406210520242379394746067661434786735805192091651486234508583904726187667118289355709164390051967550047224042622880271595574800707625123197864151270897038724387734818641953638976087558074360063007567158873283342561914515995313130117727307119374360689150117777146455307895303635355719442697754820367257318388713309214970689307894582402458351625331136272142334926202755557835670133549554386493029864219645149131491089731184803625085148780159152345405445261739243516604080199040886129931717124671376937150123231910736015836658022053526198258051826160775301723656868950566176509340117865802551060043459304737594822507832976777934134000045731015567673129672065177524409906987466475762207258275647710358303255255209573669795267762175567029783452520755811883252915804725322942409358816402758602755543585480213343719483864363910790698640591194154703753328121309343398323769975653113013474171422177280123382530641605994248232251661812333725685478243966214121878714692687321351020188831371895262097433072576884863754678099948177811970263217339169958198921336121901478777972538705728837531037076930129670483888576251736887655254213981703724547087783354332270038447720035397508607801170351745767262996005517314881381503639785095463996547179017955860219176356001501214874312194948910629164452018008840022643850325026377723991558907268476540964416900078326577490120160034069849162013162787874355372475035744857852180855071780590667379167821174869246095183489638185521207939079383640419563473040902961307199828773754727486100640221169907190978573712202837087495156049753856622982134071497934250790505068501718262929899684871376372529139891902269981513501418634611503059259962108348215634308427640750256411788224600851941806631035031022969971630083324429259704010429442364626812620337107636271329722300208363534520893683350770946510943393714612835440014484566259931989480653693835763452837590075666097764691063017603912034333875046775571993482698251204368092391756653942930741915937474210908034819530196721214940166600086650209634112415698089118248003751900577429971498819319597127313145280456144489104037653875452009265244966859092714684069938328468354481729603434686651694143738292125469391089944935843775413705996948281802412552620532908335073596997360168429471432053707195593529568075890365209746716986474939520637208008111761479894638138030784909272832971335460876298404966707762413565685739549293766243947329452834373123119305923274784712131085304174196172030985195360907382371399204334694894413917062825509804342403082870484797712445243539840279511947903937630639621266496335488387522779681948473546163520676588664323854211560878817524750352286095556526721059910893478241617459988737184839434452433056087845430899721463751548010414877499719538900752079451041340174784811163761558915364440690763159519683581313783832354040040231169209588370741592897192636945108595029876379653813453921424900269369854875712512577112911746188005002386629770861238020280071985370203527464683035318104615099919242433882144527737179294145043828807563776800147090268042952598281965501068630613303027713991107850724790382118485929151194574557946216208781026101161523776204985687137787800173371783438223638653591131956276769344942710371648367073046164875073796803010961381681993926921051498502135988751233241302004158241135141172703103707638699700110328390277059176741984736646986456285599723784361036376856646415125805273109348391570672289586906983068857624611582157996414781236818384935514630173066336121231706958873398331136786807006753387705962107923462609361267762364782933625883289922204161691250175774271986707675783866774534162438930202528524512398431932135915459026107580339895394464666307595910164493182076848159740380236900961019868489929613457342619047978254842402283135714441509205140796185027842530556898424406035278183258238735192166134643302356147734151178776267704826395812040793380694774084026834241344471059801432032694867357689189717430606120260540072384425996099264935156859333717101514666404734702847141044871356521770667168307154945862891595355490320063302787132147405625377500252688204168284289868366592314854466887123836881636994974761337752615606806033398218666779552577429249094479005841799170197853598408895642964689562035005445746028818950598722139169546074583817375285177831608086737574041536338733019122860422473624051551354911807144340560547024614026750666952816626152700559776400082339614268610757574800619428794193667899713838242959709980585444607495110341554671477698935058595909298590308372017844032190119203358904660484026548791446685264064663318020002471597335621444610256539368329938233419600101026929919887281475952493258308429085032411904306622909458594053868172989531697045561744485670621054924171817279390125524733084034296532932447864094154217357109777113422909545535109443795288781287627820799726010656059565730860593349294861439555787418574577775933785014548583378210935047414163257621535228643971594741174407189683354089385507712453292714589679897629232672380658804263511499755113504034204134319824445459164591511315054222750277981641772921749760418171728246681950457518885171133980560766497606756744662932302018964949788585051311420901946226573148187558202309106989488842175079453220765472130768460468075192395607465204828861356385745575738579281149393813000485492527731213379179972997116743477460609007538785276243545072665359587087676458594958108103510633410009622974826724094423929878001211549422685740263313708355376663956503266556724796930025662591315732747169085599361295437770446258980849509905260543343621567379315350824533446246748720719168606420067723452711982088271918007973583964182474868182668041524015340604350387139328946283828900523675054632227994164592137281072168724404706929248536707105785163374965085578284157273640334456183051545836080523282963622312869207707626307353049414438680986971701471270895539444565809443811179022557443141432172682446132089863321370116378530750729793939510974693662239841084510898862261083751349291429647947943057078316491033211420261371533705720942245027238606417828490280046360671191153473375812069404607478077127431177245480051235775278631120392418780785009200286072310120264800374857019675278618510106275862291009444545366877201954547667098062251525306595908249003950784347802675134988097428922836081591687447194112879878481405024830911953795374252927537732695302551149362531133694300843090699395974851771316401635615443531910165429982082002529260834787951383846318686637247326710196193369969145933848255854721972257256977651583884576454734812651368209934625455532297306080678967672245619101154008531880306841563251046210288015233630678348256861778528995983321969507206727243859796993725408140098560466925942891925212286655860790795925137648330489562776224487674812103709295962962097634931036714581651518073984305006895985837297310295978273924522819482664785614260967300932572061878637468690899223502047426105198268752169562957978151047480757921711221382550203168203199979467569073440174481766369361985657005742139826135192578578971488774291380041266105533992809912857452515182866262852093918355324048523434343058493824665262697902893549805854897062941469986010820266925308427357726592767607409088288065487220131620025931005102264056726625844395533088708922652116741638826044859619867285475999706874867991509376678184904611239943927077881622785458235854034982178546469486299888515697540526610003410446003205355759172871414068722466296365940461121669913844838056828080710386965136911593935720842260966045167573348352578774044504646665951435885313572539623922389845914491795147900778725431065429571176448368847194688538631842502064394321379494874894026316176184059998168818684584166538937941570755908444397891892022883639797953750213635308186139674783506034239466628440316511465458192687766902003945852830839974117473501690036300111073868636834844077501920118126839930131005881446797275263684545306017417485321930385386831305191641405207319514896170484812764771750265500405320556324867567568650140865322082215157502811664076357378831479771794165870924730772557563836554981095205777764517282160910872322180572039713524418919275529885443417893984508569897258516495219338991948351740187238095060178129046088163535996439481464734043293638689130694467773199709008006043512066608334883087485993231347009354209020224546496362757883985748328818215523967604774375557408385785897213384285926843057270509049359367007056221467212192693866552942070681265098334370585113576651898327075475123103358215518686401649019084109932233160859805251980662583207944125346329977184079196207771044450076346495081598678800628244573427592322927249220562565292827991523466592285761215509711646983869129150847938475213078638457910045173971772820265040511644878350542425882201375108453147841761049533704397710049485709542835511014545917248474860317969676985591863892603381813401393029251409418223113175603344401195950349414867234673469213119554611986299792829910295526410715640745654097540415667346141412361920296622284741111838064326255308545288457928116142959389451795188721573825086556580817463146173702494291082189437533287452033892256529169837308080526768814461168634517789769708538085514919790974074895250111609343100418088927745934332850510229885202682494190532385499416967975309207009444485655866643273000137197123951761719530858152542788558964135490286541956464274099103772321096430359013429513659449738326052550824534950089984465724123896271440649534736715471155115755863267903391532882462431394083908134115027777279007017824816755491013010009112187421732240604345476572780541239613310626120146869547396965953957478340408935009118133309787717134780751082670310408444907027072274126276098904477764909697966810646106085794744781986854361705730360337784233928152508502876024871445778517779857472481983268836512845972460896381678990153777332577562629138926127707362378174986450673203036220187090467997112722075986675064090012842492075914103200415113602275748538212078852264953455883460346769349601943058873132282101176424181722193291244698748524093013858100633124351866409727525554508263877132349319967350001261830209752017062554623283416118035778301125280016270742213359452349158456661619782842918341417470788506719393250113426180768717436607014813035454426183531411071699753368627001099388206947525790506744733149727115326084850391620409281269946237852711543314101020904701358369600294885360330116212184480236515352234952006057199889530536067622163753074092626480699619418196814474130403179457364948762128372966660269069716395641377038237604390443569341067356423570529331148882275854481403032716778110521418811862670306687680705690999903606116815046357828527070451428969052355620300021081813719563656315839509336645460011362790679399329787853418342282720387839508692414128283630539159671129962511186539710822982647674219467901339501435610026160050615868138017703242680507082448179342393794496679174172371483081450890195539970244770884300923791965851086655637847234909469223809931898367682630680105613502368855047582259918233320985592908102077521902110613920930099808660448654534932722868513939119625670452574760181929240097182548268355439431151633237644763228532995588872718463798434088256990980233125528677518311634645006409932108239000512015036606525940473051751618939656088586352112999404600243365563889449919230164640602985731079267316164676974646369361845287616629935145425969613267229602549082766186137903937128779567571720381227303937428681629309233762780866903363532918359626822839973418248898228693394729679928759840549356888777155807469722521818950903142846178991806997941197486551508948327687890413973820352749826881574878361081215316736224048069566688769264112288948632996634296390659586492166980682596532564096983934630732318267316199351100773946842186313809595123841958399624587642838449259686302741066189566747846048100426658526924898424800753216232775484667128370842102937237797250409795716102662627336858080173592201527483130909602632511941840034683553617990783951398919694337735146207879855680757443898242624088574992080288847827794581784228602322038545268800158776071235965845429183831134755585554221461655123408773350327393968107975584973198628163704052789563061291442362800565277903723303150108811319305675962895462002413634120900672689316920235580495209586789091344963814240304807266613439542707022353676989198375389200262903007876997480683988360593234715553289595341134450975441207326535883056590683558498985610953109080227303674167680939761731935320602991478519502876093535167979881949122182132920474404546147414293898098660950806496542489528031316578258955169481091527487123328745659041731950626508853483849881731292025334167028168407087737880691308596662069777750079832710229139004435675376068482817915525935771566721236871601351359487653796436503794885115309233572693364899251171715233669926800007935374898639712307182749954693485895146011415064779010743905924115756722246617019068809976920617853032150728392548903802824592668692934518541271391199698214607282600157489211892797128544486791675659106864169282066131500049037565734088303485683593081485342354360796886650124892541865442924894230959054345024455480953129141259768478161335026331735648785859919956342336734516711087269812296595192294242227541801112615220691452613316797172606629144484666455751545276561258977143299665554710664354158117324212261111108485773400988713698135008664385656549822483382213923450110965107423277324059924074020699301225154895057109686078651453701984464972256156590544449234263890621699659724541468324891296645785867684855967078981380481562610936290237467740396927402392354114460522406573149988714791767067291553686719159315598461639623890375699673487738115666851772106036420177871994247947504104900614080564521386002563908694120747750058322850263231000682254934643924551009060455569020546395480727385615904635831171365067597329686816719624984052120216939076623723269016744868497676702270072076744244370165720659924630079291104586830351986982025814478232392917999107996503247812401161374926168069105909863105339277919320859445892175387722149076416073710675477582303343789771718164182964418159063544048630781469590376105269311093122328055418405632591250442006382082409018535629480256396725935808237208605595019494774378679358479152293349451299744044438570481369629578883608602032280380781212205534918498666235781002558984684634196174727794176886859905734751468506776158567271819108025184170546287354546119184775218156170675784681109933771592878550020484243509741176023814650124691482764648479816548963861322275459647044168364596535436116426113573048821300737341887057505851224702141387286889552631330821999107457855241106355858698640894810746871710805937586189580875183068463914152738836100366217607413491804295028481138893900962854495626847205963770105440045800194859799968257671243973626811554798365802521196936604017322322547484511311074099230326074999319625059747795321308661439818990367806713527418879231992818016725154023674020088112831244153942135924813676785340698220642572210474297890984993124042663888179815026440026561337562650781030693357630352205738958938229171580833576668728225426885039920281975331953761814203893301956890383083945820007305576128715394422655428925929305468060123970232233349590776542557809967327972148890255039261785245610756215766597607349676438622148677777555707285176702565856574707572743360121241135856043477036836472200334932050217982212720061556574957439674121187979775498792231152960899468259803714062998326761739538312006847772649901686003337222154276926668558393679298126882528350002957682105197433813226385728642968313712635831758019503488602880440640512230904887482130205602620861279762988787747575337202284321719333052307598451107816500040806200153649753268736355192842992840627806046015993868961258871872895058499029630819195736708504657068814858367848296953487646350404316757558639593895794729589331441780718674687768368522530146195432564370182636221051630236073329812068663011085728122174205906920675429048392480269714817147656388014815913292044623974738970873620310525697052754728166294757148782579917636024867915586975394093742622861028540624300457457280669889237370130087360148483542388185647404569038668819629852740498524040157999935920656908805607544275209828958485056494023219309642908429296794556775046347265248062441318028502244268580621753340492708839546229924387029907698525369528174591740057671929733069098477183480337140480283810142793779754098633855517584178384209971426209280690761087412016068137890980239723666017618420099026933261467436164815602237794438983451512665488320242336493716452101301375086792283131730395908885596374477137455469861952260104147544269636590462045708236553140707849021173796640144066310468936301128036623825747250801225636561614566862667102782080814249016708328702747543073449822147265476411223606556558967642781688214229593059611099261490806789153403982021934122951187538909982992701062971581153524528400434325916599918774825161459233653535544062055016537201639560013924893829662097210264190849091287205772804416078500902676762487333283743709466182285345237206598788040768700882248448642896700710662450109925163255632843414350365943169852163878919910448662334323985495544404357160522201898257192837104358549869725015928270910344516826724402216035527445276104307925465736243216781452564374274462254826446219949851063171547116355280692836709425098075342342360682840278497791694603385181252745864760624303358672955777004096471365531966054487388560685872185611081964917697656457134233945375990015791705054670869575502392816635167033799086918593101927432278194706881489059653389846010847421153529976389527111209661982215638619044713642206871134664477431026786441759109542329311066263561764954546928742874749551151682941932147367519283805917988746966822159129135249675032598131734435571450378159387762554494449357888895192580492419623472472507041089686942155453782443059664332446401658441370234336619866610536625583583339323943078043066067742638041755631575459575514008264818596833761660638936933890141816992666874513767141836297319528086964611810486854399191759561829587369987354926929942294639734585697379683352230681558538159100136033822584148635981676147984797631234045637102600524798814188860687616201819935369182823618999625837569832591480287279813089132134907520508347145664442081116842754613493535260077906781987223799646491198032952056811016613762405837967479031711048900168140777148803511553776347831202285593171506933983454712769767055210993138653730791444021067110873325640955893665797175412400812821345534040445204490071035891532279052828393427034749151342547011852548955163694802592432831376064635557376330691086194999164352384717566265598326547561044156502290593416106779651141893841134314929033352119687060778836426279507320475195712157239166240898590677670979624020755166318323611109922204551759071496816053746394763476270763210399908518514814306428979772568581502363796173961890964033721498929113886576662656427509735942209614975869806141853166961279617191827574046774966593619100527070944085458089949119445943906960577963587208152819160651632223235736519858534837849384408467030909163670371654537848491265988855370286283522842690919778177982775190201979012530734888904612919258607260693673846181800319872341847350462682805353456015660968202060278078737157307512830536447182373013299758845933425152212815190992961570943599095138842581044953829122772395016698851962874117288716007509023535000198063680861604524379625881974329969668515037582398691391128274804304206437682353234850718024751970376228599685550961140880844889893371387497242306673378998204804416542654397433487364826262924595847919991441854939599250536607167945853095246391573036570080819267093101804844815882230226901423930900502114869485606501503277247183048712014265119598248504731581701280930977445683683434492284082911638326780432243633439287226728938505232169849630869868636178596828957144097168016254091025673847932001845702723273955226050529196878506968962292435106420245442894863584071526391860336707111848918772326440379335919334606958860372079201426679541379480521214327252033416732174145825127878456721726460251415884871305658569957240246047463765833012623774156826034621746881414992889421337113878029312337498779175740548172928059812684348679989293700767132818362152084605613085278652775481932912649411872968198547694972291509484920186168917985973298651219178808398947530656354641017494734073906045296755938123943854460735588184154584806679151809562435222729908864787025139670822367589540660682297478656261526750855093171155004010504840269125862707090996407561033858944436893649965525043208796903812049884919624659842252805836711791025047370140229076320237449758905093815699523309865982482217935294238431852493773327370377271832534649106799779590193951476079837961536505916565161707181783201302674985039292229406876787035362493106005552408253550726341542198239252323311518222004395714865268616105190350831483493793951557923080287801502842533295964261118741115962301938015672742633012590182175411077340079214789732281571206825799349607544801218110246744430463158451191244141741824902836668333559281167269764059929417681075043060087548815378663326435973556692641293478327723406643951500737371457638562151479949613852362418787050021888483419007417293804303221567219459303524184490780236459980236624917616406658934848716807614582256390702079857896376266232929816802800904882654025401576371654551583644406054834405351804064066663892900829003339846073929940313727954759345922583394412759163074785406544261692953359553268040578858447132165860086148875921865177072218381723683728503432907182512655903603444033490488838227760687107424541982364848722110206646235382089849368917131928794820700923957382148194057621145287204411727181585488913705744166154498758952100931526256437438769261467447226372961100029954769512143662161701423163539535779440164053705892601690606114222515581037061086681432080740523015829409303006472637853916137930544181650401155408752386034206454895225548090688345502039819177007537535964513967725784838724374449549106968489263375119699324480664718866644554638467674032848643776508336909925452836197205939285430030251917738057119278143035851702257559751630515229579309047029133772450114615535238858978146919517368669358766235331030525697045590502073946114524657986149899029165927957913824096193836777865768065393295466845345202038395863620824110304652302893118615022689066631026099173243595289396466934939148949348698007664882061335975849713459958031051630310558405391024038253666588083660574233055592169656476622488456553411590846400510741122796860198445303938307915008602743122092330853466504171570247374373812675096963884801257523595794121852807058223039541382265692508428097250170951384216483492960861960459357250661815230244550993158286455817424291359952980476869703671707281148077746851896706644772910416075686443914623472437129349509097772698871273102355634856814036666041142026112766717336219895341122386268009712565609603115092000457383027515406352181469887117712340616823890554449914060591659255108485072230846188851897949387942486836013603401122368250753436602463587835130618008770424602797961789486554665646735201710824606360945240813130508319697042014146869249548527533652924210683851384609963604129561818988504830644953082565824638266432032478905003181912590643124337314806428768078326374673962974110073634594984775702627090813608409826620273172055641101526749657050144054187467643730182275185377407999376244510450876103406465632735168161584366744826634857406949234265022584489662971707939191594009919464697003392629058868845113191926353333975930833513486213471483882675916168647465561414868430320054076610619517241676426782067359228335612623375819596983906005373391389974087723366296388874896093205761505695945578797335027225732450706041869518128108075057237055396579260505054114568835583413227436788693163765089364707525036253958242404563989732152601249574784023557233337276577232300651767744741947114554171077023826123692165814356798503023610942922990184609721495516230970209419217541607436034298471777390403194175269296209392448229341343405061717344866096812366407460006011951847761649047013518215954200679977046888021394248875530417538284182132939778120623340174280572146301820648159292811549217858912378935572607351739667714266668455386545031651553700472812223600625311506796730309828183614868153004986616518601498212630765699888101405769704000615779283880571817296022616198027839137054712244117710794162290547910863428629184643599486446815283993492631022016548837220579239673699092392466849469456151328265348955398359492471857446293331638584466793898807621392664868950643882623391128746099720829889776557959812609755640076952453296213253786806222031749833721902805711841561112274065639618974021220953072089540185540096890828724690431195306420201564839997519020060235122418250672745510535557577985357880337530218669626963870912723115865427768923518544449216698287363468058189810077191393431883421725380794723986931617188299849479297538726710923900258908976082972749139295921641588553300589362494048304005060737600556392599724658080716565930281760613006579346252441959806882385308075769804686953596957777164897716657241418625657974741181895283481187276394671889603376969132876910879463321511632257116419548688561736923531015428067003557580948468478455269476652450502621651672451155397423647209508840931309760138321215524963140531238485380216576633311425436055176660463651915144571045562563885556342981073769246625100958548044290104552766414442146867269700499729696111121769290548761420968753072687563376770266985431066534412337525876776376284873282300512739557726055814673839847567738810316754086202382606376983582958611277488620624931297755208555640498670453570674215416271397774296151011261913442278891607887499339798552628879963840368995297657092500092668072484973582200766972498926521767096210895267210413101318306288102082007612357269778154973219357516716531004986938714379111408232595201227549728203190281780452670746568423675973986782271920753984253301020948868275714935369236243289169294108535565097807897182805222704937377846310772417063845558384220499659664052209609438638976871356353376668238982546135019487514092943849876519853870163787781393168023673356806941274397478852390491171797433725545243216344988688436270528789919162001937573581080682808983935590032707146622380353598867029502565847754837350652963858863487238520811140628286052205115213943843077433899546174529174450797314709090567432790711026350661854999937699309259238122972078749016064789428251627199438354878412417313165036296377111086264355801428959020464270956692522751156969047670612899393351420672391307320645616140021973684603370624930938242505606412713272513950546060469843538222825654666996242956729037687778399340046889738219785752328896603076486539589299957184654494018068435848576955420701081047620759458603291882473071500877652577035168729339297626270719093743933151004068138358934647477574057756037916523392011876088942281285748554539702277818123298587528679510555236150373211542526064219994381231728016608045791855013509317515004094289073394515099589658983924205374009521676441982035141545170155872635937828149489809675838890839752867209480813131123447660735854049140672088124039188985515712477532534987345480841754063018176017349289732028373866595842756232899533558730536344519653841013641671096845514033295916740286965662131738199273432334126840286259581815273301341111423723657738433782288374904876385365847624957485749386122174367135997213954780601010518010480431888200510303754241603720389016554241039544006867744004886796242905348980882576737044438143628922269539000528890548262954833173269347737464269393347994772636077607096902868308133356150673706311600050612996098673545570942203749909146748629180810952855664555557654578645526117502879409136521029105870301929590914927302940555842694249155999309188964793537412979966599629467459412188478937536326739294276532891616923935393165438313052917909281559742916094892998655738485427286428319240033530454362234109415644660538072019237469475769567672099071083171206805231280049846876119179559377262169855153329776736138160325931275119588198357272583414040685565010682391392680399239931647309064252672356284628006177745113797161948886655192718402255191420900773425351328391581301268332962890219321612605204591012880754744322562826087810164621486693285907479466632969209619228238544809397958819425289801152964944144650272983609053102417243534111824193012670833737089368630320037980623856578658116520749653896753710912778037660732699936439445720796111424567416235047545225091271570008838809673787946679734986888738958957476497339407011279783589872304372280884919589794035354044384449138182486031015670964850475255175894058133013002864572629220913053222538825826035439829252767415904353151908501455218643413589013999193282492847998692081498530512954694013977343256536761321637329818858796624499120594465959300033189360550111324252343554578924670458745088127655075913116898251979933585141938973869734928376469225513849423001569115693391500223102799343131079437756835664822262099500803630898198058669326466872413424279733832614451797143394717350993901959636345137653756803295821202816656657941818611314369269882537239985929629808631115098533658152914959291298979109793220309220110641290388123072642815216794073776041527015731705615763083141059424365775375411418195711440679519997385031060229410327658886897524279837761590335142108845748652177522136486148958335293867185001839848292279894295103733394655607352109571429491086471270214526017426183128218037020091623500836846605759861565844097285566001796324829810996959089791207442819661564743063929714248970471633555942996029162824672759986628867350288252592417065467644062066544988095872762851779621431881177827762580581131668909726532535088267941519095764215002135828423107926044998966610361584260440911060596600310260528228480339500734156746059048660795115865981289589586547242944420695735349350234222409137614930744579755300183016098347149889505068089740913700123821026989805009630563263303450469180156994511807411546370328765350506969619954352511228180907864180711082449452517037159837088636875677646650397517512791679981512502558958585220593470959552388376590536527583586756962377953535558131910438737832162449120085011565416131496530989357725343910381541983134532224373585636623653705227354216953574345409742207378452088459926252570495041903779409931592978565131908427059721124162871555689935321696334182174397807743012887033639141496206088535644858816349593897165997728394376671288448831334319521068777392481059430718549721882187320016892413000858447316740706503418358340071657454594480790281805270528964769977584164855324176738314495273444701064598943846249735883599834937957751755774893977672393473120987567527415699453734848050735929262262654346809780295514082154264896905070692174209415870610423386575989293692699831148118065166699740064505194625967943739368225225181614832018675782082324486307315898958881276358702638652202510243374579958745876968383543888175240649064107619419141868810863402529510758428158715097689821218721242329981898816440780045575881799916505648180636476328163587203998044181856624754916632886223886447788780645733497856060530171858750830112137619306764694809678501835163611278898358069550513858179504252811108218571178884548197843744605677892042118559449036639377927550973457919946499530804849557038964009740800276725520654609603957017168967577258253312272124881817528344839703085954049276135164231385726115738366369073121362071943469829834873581445138815290030534036242987037047121934574896216767080249324694642534963701546532886424425884766649967035985090516570252010214122056380230278128887743694756691921596010643197159792305841554190738711381733246193310896197858801635971977666274710154056565950283132330165673476196580304789988025920424633429078744746360950129113911811085776487225767372328282925491352637827522280546431750056610191917087255320162000479154197925893586202867526446319501064061233558902277467929452786294386334540068202162485048138946722936975787686839627374146960957478740732781221794566565884346590929380848465904426951618615616196450982564744319087741848362252840681838108742993769397085211483377608944146746886497852649621244611701056947543136779606362401220903964164018695805854857635693545702339382012710334757439187468201978644815759263784794009690247840719415788345804069000083720055473524383458154691044097565966845515957162190090165936341241856394374482073932946897469868155802383251765065586854367945822682059061221548381973979350962181254090323140479519297874771533529782966819845140446352661497166761542539232617153137869306909707222555916694676301110370876080314339738390962071343092764155076527893817683557894965220608081685563434497938694347070182661714533846986338865808439260160249008809518446586972686435671759791712609338012636217002180407011101123751260159659675397156216944979273710301401720563461926969586927380178989897367085593957464926540638433606954169564423358874667297771591895095874778061056540275729424020741174570826238238014806678437758799319934647197049911449415280538585276512353401662299943385574649329521242921468527707065548087730273373556699195940901027968285707550369977594846441026918590146178579982374155106531034778158925720925445592962221542018823241870003821748564319180516553223778281547109629730400175062958470540012235855398001506307832508623410392993095843580411253702596827791792075333186611233077094086046878599327231746714212005741550659479779287224941375590101039249571473776577490971516674936395958692909168203554397574377762605349317163193643887956409250312746523560718624069213668809576891992894931095908270995373719279292373398538686887059162595806559957600389996554420241238479886409419537724370474193668886838515994923463619178739512110315781005910948611069146604917280002214459916209410105755216902016836574279317181796489767408235569020497040659062795454717791963919236896607585525363806457870633582771427815844340140753206247841678199658150552044724933654530164469402523946907585232248147351928909228488834430496522497360558258053711019665096886145420663672236491518265512443883930320684184128050882335637705328855067284300542995638946342153692386567464843398305482887958481714772002182910024755563124089824656572769044009153756809492421770031590729947312883489293921589741240857960354440567771329913852248058688918702185381273466573572739418287445989490266539297296197763633073361058726579322290605903489962731428168036701369540290545288682014272804532340263090744194985187397533581529952451033117146309618687987535093880976680506487436736537902475115925358639954759898008581134061633983379825450597361907484783462464188573799333683139856862273891347586757943196931007721148061271666229781427599589567398410693389394195314663963029037871858579231224606876075701307968653460254079732726647873584992541760664908402914677944839195086782721481559428107512050198840255136616026829996833353671696755200964664441601096091093120259989394521415372698038836155801894161295841417731596789049614760832059267015111079785539509661956309507708166568198469067170812888084867116066695467997700341242654352418152115811354519541246008858933727982002215774461821185969697539931328539206948604020183047225556512663561476160186996191829093866399376071943059320869882070203794581207044786590610256956950545705226145991309094174767055797248034930447367008370475190594743487872883100921915495732084225380865866619308573711803574119793399050784651882478498968988641034410909845118835685922017836325316401536899142798591178365400468590916371969154163485360315418800569633668630546356673952722697113359367652399841786165963669819332194823030863005910290493250528075456609540852667308399527243915461349612085400183036643638704722558230426909033122158879008013281190568355001488060884081547954174044598090395849743085342925174018562591192435561877363781279333213850553082250958654501591282599570731947794478920923487469708118103688018188017384795282740089051597781623904762175384031180837995804485758114697464098777408956636318413707006350949071578632371948162415317730446032479805051261503395853669320498226473788245278971561121790875011607423281910686540593811401315957460889322515303011656012021937380227830427100934518881494599358053876737448268792277676978340975534588591365754910176562036649026423672876535754596108759636514826791302605036796603883447083636696063155506015010785136970490013869474578275561735026932489174160296198931572792010710133049949838676918469365280857627052293786875861026037103939053197444404822023400653864089472903382269720059414018020218461994756498007266924506744719788666982683987591071652878724096538145434260966815581307237031769217926781702726822358460846348060842981383404537474449337962406048367814029219273187806848670610954281899805525203251014786340095925217951518787907630219414580378034216488037903369150237062929013474656939049421079950045546450378527762390355840915900586795536543909647111481359225329041331133711046534545852122093633430957617290534552613115188903077868080801159435460736823465479490937863989003764687969500820498741813251018735753735680314163804506053331371327257532830672897654888798953958402053376575249778354459747721764814918655619106639768169189114432320670052526064908965236337187417912494486785734874428862590430827627635506773646256893081224297581966829489927599270681123934037270267761547812941734089551987938373782029876904616641300959218359567884890452636967540325417050959375544877440283662074951268517230644209172724853796664507610227366148933026756004469064335704610096680784582078587145051973171861488154679126801142587948396469838536709750372047105063736286949704282832507338028837507698652204964408521415784471279081217292326818114405782569152727207067793154650787153809460668827212439397639777690699701621131959108891927821021835691887752710273055105188596716789143751349377226095290946158810272038578190661917859166694949910567327732316085723652485454107666515670718434397341575430019234423886140147676008942162152778338880246143520843787000202270142021930297747419454176998493817345880922126979855275918314130521733029892510781167224234377643156120017793267824209107537046900636897829003783006016809412116610415611966640696941235478262371471475822857004592962954589596865568113052940926298706410420439974931135521929135142335440886789701042209261288934065439194276912565205985283970394336155618505519070202239972083395258974840344507320641592899441249481099655788801054994067086363140669649520314793706688939559939600874362752264816765496822009637539161977607664335031205178914679412533158619563578915571693359597174640473376066657431162745172168377758848500698597943728490645247317794519841619374418788284736347773608635168203397098194366922003325829638668417685116890354753028675398521520201414597347644363820809797988738105065147018505632760729056959094525319988766631501325352795797447181237482172639296512640248231773708607350111660594008194059157491237681731969874029355723713160590749681895291242996552956100717534519392404809889987688064495619329427626049854474509693942569153096039132782297105564866477098889965601935323095128976550120362188427041820391246020992985944735359753656703558057016710507763705529719490181829255522260551402981565482407836619258182025309894052316108679289103304994935725303382490786303509747656781083745287699184707027978293614728490164090092282281440336217968494814330977634245746225789702584185328791028997188402811179848854923393791716453307354796505105585949985450927241654632480695979520739750209733826741768260157313904694587018485007844175756618707983856035411011928214552872070747012286739577168412324602382751548234816778762736726964920275987262488025505439948272091274923034482039350780475687972690207809117382476993288710653688857690262556165326691979501659814119860906019422320518992175129181933165447426770531319994735553751588782858029508326755689788125271094147817808805045028253430389575305142918169329506824696955625589716407531918140251127283983372743886481918260732909351213365765431606961456966220719891830349293239349846367543353259241949564536593739504763665816062437383022467023849855797656218997359426416794066511754138890754488379044334106913479768126887882452527267186226732563737057441236561126017805226860238807295432132059799167016868013605470902352298487756743321401314384442982857170242887492176531140369312850377710587560269075102891199419485551934000499702646256570637280025365101561603494224802168328503439150878970060592276344342172071038407524589065178559724776851745088806849626977757873322157189097861171787623874206286161822921646344151213551549944449251831339963664442393087233668234156323715759334854563214352883360491903093465922992116389800550902059125120299462853068320083467528015574297767423480784754415531229153088012865226009438569330374405410203973159277147907699704423147698749964958821782128004664278394172531617120299912371009585208050406140717980404910181388417997265985435357402183979724942339664108497235362610672514100021810870624202386332963436265247484085593541740426342844799731743763389146231678530461574951707295010611743044938570711196567349678022097151659025956213602850030350624961397828974091783976737265481763302296328197038522474725647018234353706745039151248780235902028964888214068404657616896840829854705068081744206971816157999355733038926353404122263997750562209077874656580935931779387714948672442857255987555599809200765383438448409614101931707372955494722781965323362940123088316937573980653935913375309040291294835698878973168433001092220694287904349658386852349949403291698426553788735347379595643861345083962813238875460365368216778776867541735421926194701723096180888651682097815774657297713456061310947856805704714636899957249913588248495414712266190755520265925501942830151535468981023985690108099572566732502168764830010171388285356796885666943458509844241639572192328303648611256867909976556519261955450766869083723161659950953993706880534801132197543289521034325129557384390054880389742986903567218527183467725327209402828395763691488127343636668862814436740069359607436282957080076282720127410526518185607759081119531064180824081328368816747957998899107549692543893931130944036069222103350176128624371317867687442770248609163879858402219401773902541865151480943079419123580571995921829336069737287684424167985903327449320444552458383875454446390840617831644947861261628789474696645252818888819400496467629366614514070207155397222059125889451970947932139001003856838184190696856791056945954091163937367879849919749636361706074536479302053839938377313689902521361209105079064733121518835791951126740559443712894317822871342487192152237221589910727774838053915639494375954309920402978354015933717561621936368605505807708108396077943530197840994228387688655140872284027711827229476187074058148301001229058717559152985613222357152644711921909132772710971895667912753757368488516409093287319425676981051705742583472667954498183208665413907471843874002472073705825728611983470474155300454315728963358561695404477231359960762731805350597518430830612608279800377563012819394868062072081267397079048289835261819380186785306653859350492667505717017674118376719311651913012176676247507745996242242683372264091226357201165715680949924618166522009679687523004550452407688672688077151707306275683183923177817405694535962678170584463521064480347574501054491033104495049405687608943498880151357721138158148877898736025998750520121132273338800206487911390598116723264441446916515243215682088171318797805260535851717359921082064762800165354844509631115589360430760366863116633845237352221483018949037453350453348246038485659967218812680249447905623552788386064114843153750530886998054903079243026745562072991505528881431495787480221445443415621029091736634958830355675064644318563094310592218501942424582496754862793454383004289264174143728317819879566741628619271027176790289537454567246634747662644120097211897505055804833157249667697704688769724498021872447744171749342879774607820090376435064549331924234956381439030385508680069869394962601359648726010375716550276621660397818087839401299751896608504583821037369061939540856558793959496272799421242742581823439231642161598875305614184033270932328875378366134629662602681211735156252528475629933527157102696330294470768484467460241734613698537669214433211514157945912622876381783582068475468421686545522188749742977050347547213726591897512721750118165773706330389191446676090779762912372271413919303700425051944583406076832042680970876164578469036473572957003172435982923936671312007964824028594789719170227034644482772924271537761398119342667653827254446851822443734313924584234127733325058619817578683779433688471349534282013960104264254021021718972031179532094311501878080069819067746788258586872487069215130868702713769808037971126395044640384301709507476846769630922228353706863068890301533127382708688485691307690579437890319501311168550142116947155885633171345543218878202368806980314850616544474788201995168597602221963670834797545453851630551786108755955471361732416087472468287927311769065646125791325111923303583160658148933659259982592145137193950571132831733777545266707324512958290118017699387833522710532123808284588874224751252748226808980105872426617870543876810027512493620539709549972336078234740009561795599246983254781287738448397334913132778125887344426676160887404179871155927190667285126826069323638982126080433518162098143703683169551367284843194518119787948449328038121268919728824852613215846392707218070348865233676328845301424748440656482129614508098115700314364790503481443565457938475861552245896191460071539112755723414694442653467845331021226535174310329167482743654832452690572590822799382238810422440673527958957763973533572443191394104866532185012525993907730801526936651035638124201078028868752483664975029594009317243426613142867092234342039260065483540961029993958870987224167684948397123136299701053135170974823188227917989111213958823489007446568224346699872456941892774678701847138311040185091871815684668624402030387123300899379071528463830201207904179507902098645542021532732459353314332460028367346884133976743200593096954282648598313674681850530030541503270611786501502142694611485165927816846760191617820834554020282358524230142084625781466107559397113877424761634647623625291115365688924258975383129502539230605406821869160295902676611999006237538412703536430473023183936164943035896782934523286731337698827938524082692587015915095924367805177931453928575257674408917535295591437005905174072076844843510418739866604213817047320864784675967195076389855598695772867531732009731853344843125349699663273105643618448287430367075141515273706995751800333749357467246423560593048648894837523177544032048449002568127854279620002790571253486575458389573765452933130911152361368019655486234543130196277658996177837191528131305123523374914538845495316499935998726900520579347648280915719150224719076694492432379475099536738594459696054559095021238177490864923572821083049984057935265937214693757880851084424074477772558793462645536910116291266174232065105222689507539189296710046171040456015191921513696732326991763860437565597843711298472926732676510292668288334855701137017883322061962713237628317471621202480707316590509978389043607698655580227104775427409579771876963724525512556925071120651057500387517909759544519469675226961442027775022486653325726925412785989594691407001587389642576167721962848204904662598811816590102410271445688252212307537051051215927609923744759639614420057224148078389438351671507606038618260697574910037789251054661865581556982052891655600718283103220447474698498367982510013306335395531264845461517179421225685210418814082920170972930948892745058273246490274422193636070691857661326013767619956125019340956744642615670894356893116638363533303706506381017205222021614845551016173557398649613234950025040727717626402175357910468371117934033287336009728522301056131821755581658472921619799938704755385773520264347526358135115628602950829043205042494002684110285416194687782432609933662692343223431079613493732851384338433200830151672881926443238676731901072064108915606249473494580381248780675793236340478740093903660778468807463586072920857301285347530831424003370206879063227254819042433754807536302732542145145474149593388399722898382037180983873535377929277066983226448448532744555216444649440979426734831939241174288871106532337477969024794618172998382158751218047529989808319581144328753522893917094717721021485873122967884537531660837884589318169230952406130403110747014496776820940440136653385231894424105578723022321229355881760363542326106987276061880649743683428105683216068345445520782842182541035113442294590867910440219752651975530705783325949934791724761342764792370652653523233667088488770966182387813303886969159254261201670250011024674160378702992410925557248514461998789414670876847018261597050110362369787945576660147526807384747705816652698987602526746162193258353146044047153186810742180531053358300609343884449297529953774032710268743717370687301822772341267937841830059431622721814731471259425101222617649420952315115051962775697351137006362120788070291775191341159715864814249231136776345226575999985713947494735885840976235114778583488803085517148654925951689030128082431194474524451257365323744189585814919136555016242839009625683873465801874064656810882663403914500513193915350552013089405718528164405581594715150511088903972458155485552092420888709449840121156068231351548013403234111463123857396078829925362921590969116313757046667456962569684422870415080093577448336933298467653026072076058963794937075280728748396948608968455743540038727315416553687670422606401073437476745421487846072325414105246965840375648476555395998570620846078781466445682390605158025176842047422738232359348499511451202560002419688614875973438326498556377449341304003007260298441280683265821249602441242237704103754973338556961094837780255025459597176902986683807800883795927026952197671307442968111739368705027020416541402756772900878719521347994634503076294159985725605823148987571817955831045971699956624370192300005963457071009271062088398994329921700223561921314521652454782289635644503860768195382072962358531403906891224682701887613070084260343841721448248720240641193700802066057614057991649844504750817976371835218761818983569630837448776681460946637379471831003452253516436109207544011072737301371188898191816349601706043227508934748582350389175190493124363187471662679374838916648493572101983179922567646021708464436276160699628543563595836852167157256107767283883536132253146495197413331773606087570427544648169922538464142751563406704353126221258405258283056680645168487747378619584180038773734711104435887172956138462804979180859590855182050630986592690468097906910390760456790133630609709075099548061999185886756687553945033512328631203668483855132885791586059307820932776660021339477237251160339518544605886203675403208709806346729480577916809294958320443849070808352103213061650183317141050433456967614565125171848695034849910610896765079572147787464659321528880256544808743628426633808243439445523243368279937289366619124102706506796268449702397130828823370772312531672567318838257239080285764276946441912721388649297109973648343867268244210570225197547670084764511979302127813904240760127412252020144654675263530938499023072089648301796046144423487379340150708039125079352584467154935575130752705495648327801831820510374231232624316954897218257989900361224411862890968437970874652127387777200619330381020965328797614068458240595321209085986789347620483652621403656282948207193456979495096522736011319942697718156300281236996012809013903667914466915558788379707601835507701843764770616563698610184275868610000249537953122457501111096135009755054778385678083289929780574644149460240197988358933260838215075394700284527340472628888050484220796077770548487605167912770086324705296181766849928177762005829649596103805961411911812562010619337640978066004860829748723155248183748055840132260243091746597705289892502606949698444025135999291700819301045432225104818089878335858542967804995509852103860832377512950158552753301180079178937874481996356863272007373433066261487107210323033443126015363453348574620499683320029425713607544654376402818643116813431812410905362423556982152700336473632640867118348545249808904294096959729374193772598469031482344267830626867732062736756468558344617507784915910550355388063226533994628969099408135588308395878018647650503040897174227966339632937427039331007884402924621519755971019947103851286821973836271767548669198925980615192936152075917765760452682979085074284235834454824208328127625901783412730789099551765562214016719005345109442459408289810684384577583510075382074399735178275569882782751015664028946427877714494381567828812478261407928698428660115715503881141545998388784791288164922560013262593930381596967076904969142413963831793175108394320052359623898405359969553752220442495735985069895940428929560945401025109529978785878872863973988947843746002645417230870036014313663431895606610869725385986105775938757444400025885310555775381578389078173428928615544421893359440008146056704863212757443845652351347285130985248285338278040822294056353998788144308459413924752187316545020647115810172269495852844340278322780060583905269859537101550308643732910040929147191061444475853189074917982278282923998233022740557699455984131102441943850825521317305496852687089686825917092356458147820695919190628021857779314313140189863628788792895033695158235939419429698888860923368996186400933413757390840715966904364043398189999934728137905654637433532983130566244700514112971833059929080435973673706492336238924024180122011788004820713571408776187879922669778087409530829984467018970530181360634582205699715117226450642843570624592319465348486185522526946771955574229165717142028705633920140599111839595192572955361465667171338773025595370082630280214692653941002345136487300838265443462428633587516928630559414524535550388642119319679422071111431294364422963710136649081639657341365369156028411159698172436496649497028109691930310412110141674416732376007305399384529267624732924830990203324650617468753832625418592562798528165155764461213336790333822715076874325787730383759386729924464730147261834380576501146666463888966790717124923661772832656204102567451033007222267021062422929567164030397659067980993721777188419148312061415435163445148055814708035379651672747831970373926580134543494493743358990260775431163922450541112296839292487160031781672053283541195437986597010121175605993286467145044524865146694028368414644123011487600865403375061233550279899142287867091168291635831420817949263747923414561410487738336887681399794887507498814034746839356199668875391460433562957604435630031252258854989610818468116008658034505244832058727873744071413494102278341134892812334228317623249548322612599376153422947755685442985566737787998107377178611628460680133634342418905531952661078435786790019083973659284504896817098752984760327970207663535201782788619258863868334600187506851614388041835602528158425753967093918202994869309742032366346736572574188638463415731999051989075390499008753382782950994338851448732090605750546197283601023522630991061296924184915408612034891851459160263357964833443504879242494742447561501919912431263600272248612992772015293363615311378095627182264611449974094339212036126940950669605022537094223810248929812847464384072297401463670638409422755308759306762439322711000497670523533983571763472479881164903166709143463750988051016259096706609875875288330996016212350341598350339452035622012552980172071854877001588722716204418653999696846497771445724146983106158375350056874680383947168698138852903793475759039000814878802841147483088663196481000686811357708321022844315254384800690791879612066627807407507207932378084474164051579404546745066533071635799681646183541677733004627599384966344999163056590752706745366054964107850918706981216876633508251735662141814128863885664131220068856571318309025822807245992456926452357748983301792320325893877177475500547344385884086330854407138836568237132076126695319694912612157191584983224496024396361166688799145786552859909851701742992158247677313479483378646130694064398341095866346491424966632954815227877718799088976094438646802717937066096707256931046580167692563815350331595581443540704849811843535577366996593007787428985859874185223988832506595540493449236992284090375916143377105905400538803385453606391673201719079923848260760718221123256594412737055612800223638375550602502012810673464541018266761522063533746891127740346341758319539427579038462547149153665901379764621121110877768721582815938244580869295606574195040856306388679147669043796788805095822585479404428938418838684893529490828817680130284745372242378693001511699665860758036316509823446054474602696222943594458745166008177046108127344606596522269286214936358180137685565568977882393981297460220699958661784073422770779998048537463850175724673621630787660437290062481909359119973959457294294725725902091909505180177322309449062016975878084601618886434709226605795503691304233205746097416037213742473096004986363600946756630624112412386710078554219796942979465675921299602972668301855385641247168528428113610121000457276603961381216731412151921621091685281304114116978102397297788088435594666129706404946612703363131130993313506774980533074790546668388007045820345787689272260097664688877462390167572351049350063190464987176400174855559746750877814729522734730875740731776157498696286742387412432895899980628515647114521002165715640545008903761736662766745015614595909193634678687359826522615953757939745141065629579086251227344422964300406015437891175437481999810685713315599145474963061284311977764449642051259141719351477272794496379708150299840907545307287669666101603976099671409437164728926371520156583521194534981110047039249899577438015526123795297475869054885880094486124533323073431203609026961547896249846316441723853240252702720432261319105941050288465722702873556092812499548537693155615393114634663239204905613999150370315600829392320950895888975894491495376944628019919172495696529328018241905880087636373741832360451796505309467495024147158441358381646361529482648145089655491333681957119521667295225689650551952372950168763795411559062837302844256349883732421013292138787380675232799651967222706250972614434895876416713857316391020876595913766457890432939212646617071045274784659505969115450176080016620774845751896749909891931856035312626239259443390905043944874687801863650933897945612508754510227665190369473413684715165086970749390836928851873293633223595459462335740522838100125679141420413427738010244335135479103108832018083849036162015863689380401550811484581684468894860646439874878648105911455117135182772145381052514225199681288228665158028862771613855886152396965010181602255974307588293246003773095191423152623149843993778798353295412991497053874905109939969190404341204935000125797940194676720798879782181769324985971712841780776902413028772959630838428306851894540033537097647706886539102845856392884250198502188012633255492640225898517945227608055782380792599770669114622513454221618833891577509118287028126453652311832662006194045224231173726114322090537166506845830542017507969261019759939978609050020578453780599391953363302673638187493980648682554193254349705381740427423105627916225311743464199006674178484733102953308532955893346526524346065128658191182148325586499118682418843074117942493516878413192816656762787599861239199626847130258035762126778727920559824281282595417766278161961297486271475681655237683510055212346531657131499451078482283645974990780932433124497435678199651844513658424239224522697548399757134099110684606372010914192755513119885346407606842723372109993169960798205963216589234496247145573356656074895707584842351297734583329555064628074501537149633186276007970348363068118336917174739029576511290553214222278427924879036612807039387230356544452191074083924436245418720899694852825308982791243363226334217448696536590954959415359908394061878760713217641107685747662814383638154333398378616033839266566072116112047768975027708405112537589011943728131838547758439690662320427117467939031416627283986269681036516091731757104978166320044607962036376022552696450013886318625807448217694156559051802106755407093163306832473876944009312975132894447416556358604587590611171448809815775303206061390648417646343227315558674852414181531633235236458009980142841736484110808926436613297360942270928338752462648367434063917787778783272636077492006654410563927468128426131156094016923055355762607083644870906629401444860419674575595197669755341559247987732844033741713983820261585574533804142304555134868639202602412556000955905245268722667195771888812378412537928233332491323614618609799078286785625553996775317240908028148180791175744983879581423787610792555796472178291588895471652388117168083857969485127972461578249168635183886401099381051726205285779948054704170255107841375362719452465772736080313347166518026628767537381222267495595727231809399510047889279431506045756453688189647341479276755635724382108846663333868846492682368413524054516730496620916511844937375810660345617200514699756658300160514170342238784238656842449817880249079382481502089845890389710437620696994461797396446692608280757538628852544352489779875099808385415623538444839052187252848940810686822437167485499460679215261631902128113556069169138936948292055396052948011663793554035019919733517535632498177003054260052058277438589180082804018890424203726180980172821894761206849419418259727770025403739780435348856978680549171327623625144974180066473545833255583915801245034319086606972616040423937063255460171160010088380539390157984316595434956812026092204234296515497641132580458042035603102823350159938697733499727279717817351891917776416857181580766864427889733219831829187211297387707895750321530250907283621938228882850469764494522190092331137717754307477148244478506411001807373258089090709363034256565730594523353768116652098271183686111846995055048691501494360299127171017134358360287631615263621842520115075065228251810764633451965053638957680687852632669848225221622469255312867806845129959525911252117796124849391444938028071837599019952288115793399098404730137896534692679927399236700589514588909190116763095023890060799694555180205812419481499126477499120321556465289992362490845642972905140573480252863429504257046617226890714214280921851515824083317010692410476719384949613578608227316862228827429900049274194183955087357554793212879140538025093176918953570169079234142824208180564016418189588885943620874914979941049423608124594133589575514215117132468179625265935253743305137542249548875036315544322306149973919214833512738030640310912619751497802898972661411098374990088204898846454886910428930836465883834977883903946286346894929362894482712689263913569901020559647685431729390257129742596076874936963360229038807424506679606171263452688635280440041186559918388236992947480350808085405423633941345191088028340423688019694493518767318143039402912307808127936243247170635799471562469880843920633794292625681180158689884753283715668656366771355229249584171119129301116587457597869925827579053738013941762766957882728593177273600232032599942154629286890879314425356986494788636536336194354584669039507006319200304094530556110479612256425552212269342528590659809148483412216689552700872070121255802930953642141702321421369506170511478520419312249169258966139820119374313973189796978740118245639908708663949022429251576878136080181056718178814578109553256479471477654420365903765680922637522624226808393788590569775263357143474942503466247712708766194148066563855599514059587921414649858332099759948060468311717092916086215498099866903579262783799266084597314402403977093771885182898758778263240561394847299301561576888227148926033589162971162684431711053267817723431108941161377331359502499083080051438482914479049564186530174892945331706767320006697415221622236718551201174208776958218749413017330197982266923265837792129565443704533636809932783283562668121691429428113118412698666729500895138416909589354584167770042212192040076906286074052413590647465698749048218932861597559950862982095691200884361614294119333190535994738410318635769391751621374337177790652175766904704291781943124815931399196514385620524458952601076771033259038645078454880920930270039001031366343967652217431220613087126316745191980486222441528860927884716269610520034266687891814041499112724187043614327076862000139137574028027683884796874375013987651061748773389737749446346443261191710964930071234778588736044181423114608257100089210604802563357349502739169709963465472945637754098475431827721400744329526158501622040421939007055002826738513193850656947295274882453959905873030308864620856217115365051576359333271423643206118067765175918781990466400388390645432162830533627578651045527943231926813865077720568089889163569920589433173245107089046164498038218520810278638360769816945247433709938993158174904363159019339609187051749979230128787567263958720408074425345766914593098418905467350946650606192969513269474369606692420151835182215369380645691641714741031348377128330400786119714643559800737678165094931740626828363428933051053543830001633671786884953523258594073232320336304913719906223108667006646832594938465534612456398749405596237879725413018996073042396113417486234601667607912790177408090558850018577796605970364892355461074634734471892143176535660735436373094914969650763962059450130615013104201391157316221494524123313075864955735824602956910834701194970132678580696575482079302155263332111000639938630584733749899345631850052423984575869422224748265682170583625537673393102350954524982104145030104411610510816935717108058331389542422518251721666835081564277774731968869644553464231652367875558804424080756402592809032738202336474709115824278777295771195025737475598549881625005250855360308307431008433289504429821282531504585838505404984868450110403482715464652973377239846482410310818400441395191850015261405277529907392885625610811763582789494105230313122198760152476920490246046650750835734473051943184608240348987379843987956229244528442800690176187456110503537765410564456212102762674141725829130152151140087430484619945642496138438086803648643144000386109643137024277971635273054769630865988414020693400716707510606310208121995807330956517046640351626663551624200420069128567858479038298154650431257365431463067363198107170238255374020523284888730646668434491382089101520696294441875279106094394571956934299122083490757030893753011897320997416785094740720707058663171604541861973151556571773767064084986815056994905626110130790105880053841318761051945970655118678855684813379640399756300108597349937320274525750868314568743028372624187339530142013453121009619748856495876623678355441465686995071768877608405734113934634014393707876995550460872302516325945260985969116256430982871535248249314849867207517259053248925223820876826022567438844009702645749241709462942504444511350927040543968647782271750945229233457329346458814642006481999089872060884942290613569097910045462393927528641359277575455566971599857109439285649236808973417497162433456023022909018249412075667587458236283460556478343815344388340465240729209994128546124280985660605516492232431869667279166719176324369403367940587094450083597328623863627231447582834184706862369339661647239677236005552142681753258296157000218467892125923909463952790507637597615154935857911438621952451712917317131925470718271247006209500892226388295108169390409564317957557874354297494192539211841493107575574337490731828071637180395033445263376888110872523189189031939297210226781950687863898271282419228553486344208711094597131196828058883844618063290422299042309092350595790087530024999982361537143722276807078438250485574440022687510832748146684586460110180335222656980330468147164614374460008911787978529891669717140561350186550632947350526384346108074787215909146780424838554523274594737383060720620056195389541210254845347699918365890544114520045485826705008120031844180672346307178484749307879859799229859364627394902577559679509015579238505972395611437944632271206723441203696464200172297328205207182407125139066646272742890158436232489578027792758190611167133832155299304518430011064024672333368778306024833369534483941231258476192625151089647328416201058071997176731631495713508210986201217045865785318369466481892412413005387798661326785273638801557303300444217675519287358105109865576159842674518982898637379716371352997264694312163027234098904282912007559360998257127130890821029666045837381270377703853346112923918078805130899357358852028048914459700136148585969319982429382196806929421999614820209887880639100228953676451955934021721589018240861238258450713354947430021023265798040617807908880378793381300651906447199655885946344294641140864842320957377398366622740346009175293486562421706192654266911430931928630691854756207396063749809589543821955207373704317226692067397261888943801432830176644109879554367904156171673771716794914754929838824921800704331844673746214241975015180761280082356972291475418407011445826869408148046738504562230018512734892334422543298921018117377371062667787177774084852020546273591610223466377351009555243493392835992045365862018774963900419270445758307435063173978551928796267786434664753547390530864524313704028821574689685250983731479106799831068601186111527017965999443955193558324758189018874965570850624179886115540701286764372291740106400538122995375493117280592245173807712794140362146472110061121552590450357376144002322101934851446043324608554569152893987484404130717960471240478226443854225154438284706842192922568612705662941074210706495194420342426784153553749519412188428855398517277784382526476801624999818762000283174793119599867680327025625573143316245640595727580990815600729878663110887716266043521789372949859409506234065805551918320800427810011415486420070076797079758266030069702220625503691780649183204720242672057937294668763444623075614283198640606381461153531389378430643205310248333114901141888673447936710889285166106050092461722495538040694838795932269886471386764300360403013067872194003702821528915324465450868142285187585511752069183117390514802722265619739787598867533013142300299767802674368845043262302219448507855787863937891556900461359685127250941127282507875256863442296464379393032671498584155983243881234972273035567235796327748517518650468331961313157810713332478451480494736039569557792276427917425471907817505388872013456277183299860868387675554103323412383004017427498719097648818676430428860344515563569943035050682200902087375648308242643166866554224253040452091894427292131842139305025528587906520474819617657310590826709233095029417881440532992978068401352814650645275508621071957947834186201373177823843124291741598238825423074623443924743945324121165698026759998566744128596739538662784036187064332864773671097210974831584826198169117747661094909355719196270486814557335259409822915309153746804512976046436703891074729207262678047725659670427732441019325172940803177944265040265501460684254817629269854524491565327999204147290658022893327762204684803503552138350359467781217842955082955172429763411525549214439663216964540350832309710599977929978269603756270551208050156935610700383452067126640527941185714550744353203811966018014755618502258086202342420761252879842393120093075629748439872592232261174038880309076859504160008836842722391435960226666254076895849239615566352840956483111271134672431173812255193837175497516218576292970537477964393932593653713315507121984253679640292640573556056538839273698386875453313298543134541971037721499858770099324644776973469977593309130464649556726734283851332966244956775755151787657134790299290883152041116306083351220023331163528929431583840809332586423521474765161410483837576506768573960758365569022681614891363665314121758472712871827091481392940337197955661270775122823039111151433148116088729934091086664881016356785084917230671361997041416782819057271843978279846815609647324536165457376228098034502983395697178490261661365313172001035749748295185503554058059443492879659413682426124756891629647827752156122230211234935580671263939439368894846117695268636393404299966457560796140368047267184502647614662964140027816740238433184899723913034249996456764669400299002024988546587945419052878653334801621295942106384571064009302249035357394607506179060821459960331930837035662074003146235706431283660892472415211290008791469515477771085527969310083000680994357675359082536363064691793792348271290252794419707735069733149080093457416643018644032931054012286379300222975634526123176173502256108531332916131612800178946193256222458864604390908771548304858188262590589579256687209933758871890210406836511943918339571658346134151014547420070818742820839140257901126416257184048753698543572981461965299476104675412311518725021425094251295074498496106793663754586055384781008546411628290886820494392846946885733728134280492459803051825894279800536631077397436809315197840152557597898384174530866775611826414246487355662708058041223093124233448310798565768625313245160529937769151291849728315272563708514660261650810068479686832967465324910446714360529927368990907368006403484258450199422154367077207362531106843727078266909012436333104845698168826908117212536536106885711099536565082092846764104559138252541904181902430551033751666938553099716927365476593396135814961791971172898931879901331780361045739149406838388309585624934726880969679271718960009641479422952606812797621051334457138487823503631256055668397705577208573698264654521227405092386031578410463913332498793482481131891136520236497333705767987025501663412073800228794595252379359174377695899281979417636873355237758728870150756580653179861086350360154302804739551591204923218911680587035059319963901535148409066458785258123532455573005556785069923852504980172611616735249821509655224100865304779858809600654130174289355439077447905678157056642562562817456072559648008480554751550090193902847177960325195099445935153446341129388745210940322821781459471248291392978823145137198985025146576923345115934566044198308183555901431954617840217111754422860390861984959129558668884484333306248556252482094970869264126009489759372200806891015148541538949542022693442936506312704765229631839959418027741534600940492986874121801684471665015761777363653704409078279054586046321249147694513133625632724818889983687249187074384854523993894686698298259716132045538040548747587596385324530300074781909943730565157836029676349307639560600815976187375318993561283718066868857238690579370412579107488354046971302426039960619777784949570736981126374679959109702102929502552468129927826992212033667939510331654962369346694968343315738775538983492496033272702134362066763472625650339845766627790582316127967653667193797963408713839483618772983796604804847837207091143902043534219717072978409357701687438584072060265106170167816659037542650028939301919925361952467642366850830149522621685447243036479863321170947773501164025359061388489609309136633166667403951059606221466665063549663688640773097017729227784431581880189690554886492087392718887200127984018724892416484655806761710896669707734566606069324333798328531594453994650548571309017029639845348685316147632832629561506626948018970204757321272648056721551324684341257435102625700647319748697890157755804606660793343935465673670913161356483275863331027917112684923243073927714611067841920139121584734477597192747124048713067661268509870818622858979239679130018284881249565354331169353101806900127538858431741062175508126578324869359522608567236002737806598567416064177385750088517658940594824551853790963141581659238359672121710600413596362827805142125139004207331642963462550516532620999767747332378296259771979397184799179791496473353802532468792849363444639642616089650477692122113673204679204043956893286617652523557489624493587833743883639305666198176744804884863136113622842086802219876749670411929970525588903426706257941502384619697326929896786575830727606566942583440997014557621321167086181559208933898368478045572027505626480938597623240532869582733629049148342616135429450223078027135061343988234077806223074546298054580043118595708260433583746239642248943908502978449679572028391687678159447066306793910545401137582612866231416266770113732307561516030702531533360205395731784355895951721541304436245812185920995257513603301004106255419693554427250498085143579207598102650372842728157923097400184378496722668000951328522072290212204627602036299821712762475174248093225381535006706177646645984629891711175751538729653126134888322312683347321114344087439262227845848153548432563384744044394986907944283780929446346213750629451559045916866007452130124089880531152935019852879776714381296023873015854871760961833659793052500311312420324454571477581606671593241485170960163971823078909387299603774346386777385407951482459774888543672321851052298110959979382953073026823967177423698054765710325058905193994771893655029123030401865104930501096310773792012768509239949977724018298302465541503583793085252554964525260557264362395252424582794986443498053225442825426231260757958385665128667435955051370720590492925011275596927640593783772851280552631243516075817571479677704590357243489456500799982555145813603747272873754794547406713625013135837269924151893751230999682758877389564818114175778911017884257663675872484151203133383085663170860094003748675829795407128472027770735125242106252552120089176990463405128140568647698320308562141682831983760394010271049128444389956033168469660981298377919358278209353638151435075702572336564375759019023112266660469434485844402676032273062071000440780724079284570404700234026184024033730329053663396898891861759330380086170887051406626899680690898916196375609696892156657508701153088564958194113787042638632653695235355474886815142889830597768694573947084484805495909653715650067461840355715036747693007733579701827174103831095385809265024929819492565848236352669343017975227595894687054793193057305264848076634066187766436014991462056451619580249265739149974590741114899096710306574083854971592284049413796312481177447412855752262685700782627881851546404679212256908219868900988437882642066614992463935857150632339536722441285587719483958437145332914046056987764432793455584951525061185577838860224972793481506684378491987648928900854944495118805023697517222881562376518993693230519296627189247075132318112139502042277406081995474785653705649484475648875515522661492665345474537732122499570265661099758631554962912464219860210715976531801404497630952898805482382821018449779322452879667666153574683833318358869836851463456116468956893581871855411795696217835179659650253988319525762721385753666777645867050868307147944082555496965058023973686318331079682697862435449053883406177203074542304147729763217418007060776857730058977064569725052640909349152240701603570385459359866298941386068914885766841493731527893244246419794667452946379331570047825865975983598597683888480787826346263422833434689563065146073090915621801458432468856316626659020525235610648753339697846054190437237893491765616216713488245860186344218217610842630860235670089304323940256228714405183818433511621758163460351192223671362666049577146658279421366734082847988718529594106914467631935081780462603319132580584044617597678873876127828226229587169976969636377418914992658163705998675244799940689303957889403217845250673108893177727302471691809119135945416969899403160121398806758639518582004413682652517657505250815910457062105077348501765508545518193899997732910375393340103293717103074413921272739620464570849732899113904920213060771394978025531677560756325653637399005144481898793726953674399878118865707183474904682265787644412567048509104111209512425074963616493776572938529977802351720218888779030648248041232299810645207187952771264873789723319078855508611132037368784391013932426105966632676270157553781997175935523909254037975778723288564552771492197898377214726015462003013733500580638003957455993518555912255142888040139539015475043165502685482118068473299710394436750546230116142606798118657669789889910478602681117030070669905797819440546801251499045660299018244618697089387184735841364587317749589092107178629940898758048572006770837584036031087276091238923303133949125221007384312581732192015569473730763327552373294601360744958697750238942257879126698414299788884291759114753926358929587220522336873587659754570243317303136026514240370149214082429827112474942128918529916528122970589086951341715714193593081507053478866551735569142009916534088223402336723389903606851257635962222721354610807132084986138419100267411812088309159052197412482033815527069843928853546456559619687379899833102471241982403584338926612288819902757283569491753420724856757110112330961430378342308941700647623862400525241935305049939846813712308122176490899842570228915805115269840499622432291286622422833141690380774970195528507481247168448376629833069098928429023448853588112502344922657369994479242307554838577965666829778300710782804503212974826691380246941187650982313101630142325773104329724520482771332632822692168493278369291817561729987063095865669245387703385616602751150458794014038286744343877776160974212878968252923739764290003185068698408405306259280726355709256838122305940671214578180095542070473902977603784804231853026456168397699607558549489943494809877418854040195133596938143036648991915409140697182802858842455487109447408432416402891648844440053643823655879896323885191306418369355732636459101164065787800225978527935050020802945415584812622563218862152348720124702921888913449820577949132831034142852828075050641912161218448403813940885132703656388455701600814797929967331779593616548214525297417891726398837658842375174270333079068767608310788584313425338705065186025943978965483140436939796881039698585720597226302732233996171202138273923906244594563893929511253074901578432652573262878303064549148361221483382803363995278900016531539036362128378907489408505681706204195636571895013539123919577452879555863265487989993345023988817811060504662137599216132768459404903838461639337473069963363314455243044762849592404882271674887026222373158448457679377777839250486315788735423962580922564933359311993725626789361208084447378161055621027435418505499498707549314950091744852680888776882325517697198548357591099716287449353824606952693052197373904180255003507333297191745008319415667335283438548294990563430755226447313273589419415646961633372894500499951842663063286858568772310652001577562207635157002277157299616377471842624430433529934809116048828441893802630809453095429451364199238094260669291064007804008126565178870679444126971603430584178416039299470825842846045860044322435795635904413540991984117233938900788677161180828288600036197502122202491839142418463826299434385279940743636403672162226251490668715260452190804271716408764369717876325788989921959885986630038701091539611143131685972354442692169117576816914793389034402654844725264072812450488422068963977858862993501885182033976927520465499550634820929831779043072791875312038098547126037553205162049983398811724450892518706390331605616417726606910740625712913375878204978427375275941230614858171605060651721096406006612188801536647910882032373932712895435432931645695203352634635998601666128312881611270313022790519641988564703335604324464783278817273039518244347817590851411231314831820464857507672731012176594433797692732360525244333476831814458571602550790219676517702284387106290798852389168906707248066937969190109609723848036398377708454330528205125425801297960159580615073737953427721329388369360782195111647878575991584782123543350952043715574810696065213509710132085545336242924579855707496873921403362152151810344210218695844505487865542513797600869159421595199168614154422839816600216476712187079958986990562827729902691073783161134892975697048572463116776812862363954086986207779297549531203010141361672031413249309731876532178348560813806801134029040886003415516049818548678283102807061579217521848366037706124946422298663402471535596620223343807849383729999806313684253025507244234307390713905501612577081507971020863601994240857048338822783165554851328961232699425829071110589564767794871886453083065137883901122447297399856791888377273274700173562108718352113207360140674334810679194509239214302018171280019222749107203290004342255493386411766247513825510685209166561268130003573690028691455225360789794955038065929238022536222087734756708346254675641164020867572187228864529680320374311193901344189584281182601519606668365225700022842379542926339402374351254494882454391954826984917278120181561187605488772285843299308877641451731432230888552913760102937986467571519231097760389591328953049212825580085982605358090014773770256321880044107269134725844795787001786731877698542925573744862868162841838225848919753187443578060606817817998415073712685333791489570845211000073753530669259598163645692326963431342267140062063060645844925205807837357093505712010953764797552438723117007568883938902278254176593884468573342355296822798552081655913700535200137455696604830776300933320572393038651374422484709858351031091567913917294158864674298917772860541698405972433428702478692916212301202223524154340542922467998146847721644779670378351704867099234705922132795192256066501640419305749771447383145345454558967435311434523795724007802924311670652713028755702968067106085362001957090252721310451240570652657757675692255512439335394350578453715921259832199910399993693809970016827565020563453095360880640300095180051212187808452705091803650709157349764984485424144297142266927649553117827745453151117837235970778931976578440695256899588256179477446714069917446254287373376343688156862968855540962929509346211365103328999926010197430339373645127111861975861834857856678033502975728689008998746438993971554305926622019995933353298320163961160397759191390316898171832706144115216335323940960569258961098076409624324612477175271735861580861564468842070710320991296821467169053844693490853500629237656422184251128627388519595455116328515418654461829878061825588300042648189403647692920535274357081493669332922390472735732049205372305103526559934929477135149601562284542754982122263273557301193794314547908776686714748110693466254092253182786338709763683624015400393445295141432842000113418468804285170296689189415279729530326449466858972931884521257238814666920751189238553533109446378657181553145378216425281339147937688851630699925544591730138926596848043043592797726101690845706083612329216059371164228274145289203649921974660517686700669208224199964184714249642275602355311134412386681970543626050855053031870351336536292200789105806582625824740850367860239652901086258602850466662669309911351168516214691768613284965188138595158790856759222439718696243102850870371212278301763485425837318570552805387422238064236328995866403295424389645932821450622643264123925299608134183056696441585158231722700552630406132576094214183654728935084629595887873930741703446543882402875702066145096581402157145277298165214528181598306653997016189490187354742715244605153109584725779685705915645159010611652679985946165324539422429933759462392125119527937660147781737632076145041793109725425406963914048111567413122640589022024359173044936402938489723302695498351558830835530190171819611810288734077054769674188485542339729645971858174598991123976150258522677710764835672040329462111251432968813565465857280819965166143904208763024740165751774489419541876457546266103016307851880534296184020351342700481651099008836998325890498069502651134172474461019626711633104350332447791497875748503410033747988209781326261098220953252700895668027428978878876158604578211577627374019736281944973004279960790154490834627851862648208892919690147985113510766694253841100432086831538230148696133408598269633746088080810399671378110309095710381896430078851863967335627679028971534841050626024725693459452827649132682459972689055619746021314872178583053279979431159346505665418763021721637030188497173145455318148246895986564610249406214443105501990413328996888935341754555215962308598528498330754097579399376791889324543292695591337085890253620403973996166588103622921661794228171106158640852068069679726005273301153521947541141465103537630010562481370084247018787714741101369879199694774210925901141759986396929723293713937853605158470378955547503676852224154968599061016112272329639836309512639305614197103462159917799939123416199711895847986069231681568542517366674344874823258180630562332459713860536867817301441083799881091458138203030794600461650602753051662454927389856078861789789073780458643671816050339658717493553332970204046693432344325409750658377022555035613420348984435344049051089149394557130562519489137386766913557511881952471592952004150546420839559683983112670555605268788455068629207369564875894007272705929884724832634741385817179577912569550956533987601442942206490103511932102611692820931822303152254594371837955637511860776412519571076454370058355149224412296757568118073047506245052457372025905196285418208423524219863011205434274515127818070998738980260762724614721751296521269685119304728035068547621158550369281123793534799614547229553644156686297521824205935173694840681537156583272002201166049620634643780374580337067342833723857781428118731830162199154118531074217160474208190646778358372961054743022630258710604308328005250873993352081317201148470635224820498963837899950814894595198417547648269732905452772418838725369168124827488574690740559094834844048105445508654379140674486166076653530794413508259564991699528744719968990641476854016646344962043469133435757889390561055577241993621735133628979626154112681702390702342372920760633151258018373727813348696730721759185945372459708200457203322686067966810502050296706516330393865079579407157286282002210197492420958103617779155605944736298869642143754022550650412826936857686791713807043273312000562082621706076626313221502335045438712869680962636096256709375331257984589709976999578027532482685522657808116468686535576749385610537251854280253479621599933908498542372127512602101680850418449398083843245912983514015921637264634099095989745499036032190401999562900444829467909127112843940220931261274910853178027671275515847009249776367932557474660649285446252775007806039787823996432694322030005823695827907768430697133837434629377364588862503347998680315283268994503359312452131490222762291345839904643556834797643883939194129208201972912302142500991848743090379700109501985553710488972470959031929224827052514378136867989813622473293546461567238741578335978398459969088658075572198239702945776599002644422746856526093908701604099494071955815959129069599015224999194531946070409268382192119132425401585057995591582284043339091961442275042301025261980417416895607601112041479818238151070362236366292246335328974499259269113412908123030341994689725311112317801300908969649534214954698025208149236070243966421465097884790878141271836160501817637848166056213099469640794657110346051070800672716073257017196194539662991841119057401071914176473597625648205125342103161701950068130937511292790191219010226479718951997690596417270886023360523110166924119908488496980752943780372646142578302476605545602448299055207616523536477024924168181817686890924739211562551434134042197154862078867977014905846164076933587665393754834843671881056116487137290769079659174326895872007190829371308656234358327887200506593988908321283278655652257885514432859671997421187672195576580843945082029075420406458100960658840766905354245705421310050579668849997979884925746529395686808798159356118970038257523656022722117665878514562090194553756724172408613866333007657053002142530407695235174902383873241120403793950280388210443314605923375727242873745633718260670809131055386372781969240266468321715213582086978023072477605196185868553781090880569321097732212987114621980111251445579956205788345368148939163625512335693152214102310246800037510562105298163314197416851980096709121339332517880004707891197223300006258599669913032723626888259636573913869939402575765782846872182522566648208246410000303364465493308052770341805650875550484674033277367947428634362747583701930336894250257596592900253810093230962261429829034126081143582113605370453406817559210745794126981425191837063601020522260219713113363343482376756153932153429746167989149534352007999320328275350163852895315642045296279865179936509014730475033243025994427044848646153050841036128611617131505995832179998477966942248906908051645566776554083076252606036439179360207118507058007341715058510580844963116364475873638288779426849079741689293756903362933332818935196782090933207599680357812422626899491392273791732628009219159467902828294784361012113530090118980215998898422016650884714163337465006301220069422585023997976900277882927179929040289707091264722040050573672946033304437174932774655024892121650358211970831505987976401202775625985342467454346687252669336794817236999229886245995408281321173767646234109654797328019918469048016866328075290048664412180029530920265538805756784924318310589302139037399076763970011206526572880495554199939443004343670670284204649111599133787211036032198226673646410968482587549892142058993991261421614569775872380214723460232302063591513580037125590061425591358041764636156894470310141684591378648918077352948367007860116456516313668700294750369182800664690150982279517722464411023419284310349692477426307627339854668775767012578805513868853622840855191565113631137629537436771632478660586511014807345059191457941781744970436448663100447798943233327028505557228668823141829289843176858525302275524129008341524243510923296419996672048674789894544446864446987711182380615868472942523566745140411591262711685900328742537753548543983753870743005263917188808158234950394622342242941746838268541381205991550487210371404064177621224604718417642535120617590028033028057039855511744489915294557581818613115355582022831555723461608790747067942496960028403287877540526183831019767291624254924888327525712411864030808285463025486411828264709107936488116439713965127926535909691223286929782963504023145735918835180842813839631659831223020182857820760114782615240318770203657504736184206243387404228178338477029621573740703477728167827299144708254668681595723971797669793838448963820798634525132716991219508170252170756404870678489467258812299686541922664728733120077132258482793560687300478517040802247287240655879701442292890149855274651826248288834184102807831787443512841012045978790923206455037953403492021444944514136607211661709925086740162957498171384937655717156733210016150699984649588779344017839701504844218058342407623384904623693862741425066512919467804913184191623052218899329989923294315957279305985916425997867053488980837591719823461925737618927630830366178908909188597920116337772000752244961254032631460941663401978771871443494577655493523691868900680564769189806202003361045692096463642649013010243741147304324149412320045926028178293716597379650952958065292232076784334784908825949169214505104995646052631111995054693618185035228103792902863503795835661728335017792942930515648917647262220618407424475559083423562837857541644615114427812206039940826706516651892141033156386656405241088689031493737081513565764233413795921582593042351135729787764128522740076357686173843666026915992529751794562986695660933715176746268801806564818646118144473568137264849403793740129147020343867184092300685248328616007258979912248800111471011755615214837640398259967140176454088505271098594438992782866074473107401443948939540103531253151004077397386684023352324519734144049028856580574227641954733899372467711854697276686856558318144425778266204536588387504638759275664037358323698478597244289332999600742525845598699870317802233648278439762708490252225137263591671353654914180903144459063432216482889402273260609545056532123572297516009298054211319328979466838773460283474651127062160764891540713020508804939601678409275955312080424749382090786883643092693013717570370461467439765061790640710795501971439697469186356153046786989240619186720798029917081785509131345991729574196785258706695322268840055384237609920048889772719084700882348001399637196202771312653500821221079434079854899230006940750579901226890456842030595875469538801825299975608094367630392435383182039517359833228436265605207129996401561149303592959648163174096520098383464631596256333308868904212277176101246093749248702468835638816131972877763874400059054381379090490211959750878052323059089516022457112724600939881298085293196311232281691228254573118881151207509448834402575855469221914939293818013267841380465799959082377573425808229967484296125552415309265987187089645006806577883256790613824070702143781280946372403025151435847396989406099416542473173576782024804554721312036404322238593633659175195483121500609413072870920859130786974810065389918566838436176280096010023328384606632415814482563531403590997495879293569386188047122998705495344295840887645120310331999101504792710980126697182737428214962868546876065674104841333557444386424029237047700113969171689155349240266821297092877448644316891195317660637691432517511169288639431933214135566546791553580345428330625157133374930112481441851984917669973335567077394844160140082552829654623300660838746674585866603290119859937608507824633860911142916807377410853391748426105035599297657807028550720850463553054529135687094201694481739227375383517611413604446221949982198505013341061130739867394803911200531566443607363003664828713144992506615164878113720963447340637106722620899483203061045146001047195488842517589310621355398934847674950444194625558524526717107032763066078335357862282039580729845982642990553981246807860956687582420122521250841945859324887977102523223325687531879407338865969412421837414882904275358477259300909518491339885869138183160918736937664296475223473313280604799422489325242596731898945148989503217751997740368644465107447151567401340986687510746316297137566993065139636492804123729499983902818219074301005839817694469397161080901328506068074848592196484943757855424343450276803190701827668712672808261940192873877670916307646620639672813519356684812819178821205704776407574683858814259101645213816220659442885430273760312770355156137260768459353184271804661815590272226252282857264230497106663910019650073214158994702492268596527969823605541522942476880236250254472345595806483220267050016309428785513444440387928303221761024186713310770120545856315625332041468678396649644698810985448802063970769864159795867430077824306602912765268188811138477274079018016254349304626167671941444625358760090632491096695776480554154877120400883171452286627789637912599239873094371494702648321141330222803516639919017437083497303557728573171488715653692154102388510048184292984205190561137711538096406454942833136166261124115293713203868272878745776117080280624268234594622165086728343271653730518337399690852825466450395435277879476553677639515910845275152354290168501951667812831379650432893227644556599925753870732140960462610959865118842359787727705934619393392115795681286123907143601828037066661579746610975132552408191807498882681592776579105775755610363807923652033996911259774706147615236349506589772285425556702124379859696103578396305329924758599785196279221241370966250348077147266424155978121677596445025191266025903091048364238588569685130071033876467259392809172723377182216232998506197030834960313669405174158126422744607913817232969637999939170915034163392097242893861009132720182346206842411406738648728507103329209033773696071757508182733712420102759968775372232346079689023250216832424990668434070284798606469691204400534692321888319413707689237331728098448561841726508664741252340108454370117391067346230493658010644910025910617696047443661639863318756457667319575778042785802418432054839607171915480840477778983519347840805291480812991304764427619283447689565137328495132353479443817272824853954470088475127798511555264858487225500638701412366711890291800444690319788434653726309693148043190501128046379391878240346471473935343077220420114581401890977057752346131851716434689984393426446157048616499204002926410817454360676936486963610585769948804913553895000570084015990869241525273556280232500506113466343678896062700500951392169907160726681599521012957022367345212109500137682381188146356818046153802511834562738871243189692825808614024296986661702671150517320477001510442975474138815071084245252224932688588678569522810528849611093705118819421321403501198851981146065205294375227484476238657229374906141543362942293424072507089752434804606455378631794851441019622370516552965693172085395462073361267393809184503338633178784658228550761013224259853926548229937176048749080266399449501880430564924069852294752317353108105912924609367180300898178446210606018975427180341611040723690365562978411169624343045100240618205330529939026056343475749443295806105051539704887467980270828302668247391862718706834969799650310417193256157489637223320932000529564123548397154335991941396404874701315119576482502504428436073039594265816993728814175506581427524034855307490380008441764478865772042506994550726676049657845821307900334742148395027879563168443192650585183524520911280303934083208071094229550088832913145067012823774164968119859195548888628492176126983762957968853468836328847124070195507242511683956630589707662641699657757380610024596688765298355707447860832475156724432665137277121510344950460367236687821746890349130020204446511570650730846101802425606774287972880501765676643533735329814774125488944362577570742801095194156922010530253188225661041990861766957007684951284223126536134135795828531471239398656998726104481558967824463239470919579666474502445674301691638382122664674172440309408014661454362131763784080297135637159121185484391780350372248354315121867780652425220228418258718025749152500284941619304207965319323613257351235618209497663330943165184875077201958200046875907036775600518431013013254950810403641115616997941945848906903649802524433832874031555663221599115825296984891761622374019252213636941109188359970865294806592341240923169452467543455729862903908792813459242824702160353720794243682405559170096762535364536064430315343109143550146121405078544497130412582670807355754283776243680990297581044789814265578406764687028562337594158892662510587757423119278637386973389925002664514486557124628378824865513686532004362000433319535918838994427159032644704320823131887380917399522416912557871662309263335761313134005001692730538955881099631938102534614346870220702950088409245372610337947584949427409343207618709208473001163745303072185067240470018185754761498020209627312019309831135468064898335778783558390146022483248333993762595707405810194712372577146974724171265206908410389535131891592920421492742979039079900321977440717986722566749177643631018892905475383416757730128265493914692444733415610310641904616757033354357720999668560428972124773412888563470368336035458803934396056349628240738906343871335457740188713138015941599627687087455447465557488378038072694721747864863860544462229080424017811222001285161737014596607961989363608854590469801945119488647014812842042184648941562227974690952028302029753966654825522879949659083445796562569258840361452405516284190196852338471296536071185092690749359639629853154827936118961721280391706362074293020943299071214443247632827911287829157098248045607847577137365792767558707111415827108206929873212082174673971418213908565719642867758687752137835918810844954773880473293564476749617258175140592240346124661268746818698866082756677878134879249010618758137367107025575530723348974301981463252119761721436179781093397681787946796246669535550494593317990473915657991145870041020879276660589014140505984032312789597772726132330241073749302008828922790614377894078886760134117924804423875482982427236537822165316714446773911005196267335828127679831036242570188527384206775439871733422928518394127517475309597053014326606597862054056045361699015810788198351479144187933167052032808839473754966714973271872141146858946912439519649716838784637625066267050982590353544516469992824983442006490863489982210410340360788840257055280831892311285511766486066372869267002650159907125070978129779566048436476794943258146710066924430659399398093761002816069942352393071892081806716158544827281475574112194573656120015163643158269855220074709055204402859498479117399926439417798985098599232828363335138614998295770050759424399518954019618881834540685620850364391236727112443581384662944978959489274248045121102781567977862371612494978115165914040583155489596926775247386071845684214906509293031675103387299181443003668387091794755066910540622577067293413941793838594123645359795285299759710904241998634762205242506841414457030390069506476246674836223540973372285080964756866939401974789649906165070152548620153892526352828705262049569485382848959948778329785060632820593859300678257855257053169390084978962433298524302006068855754375300501318435233889156355993751317141981960547588075147878386117897563045323840331164671991426861742093817584568159611572338837529723217219201621043467990351671653237019914009654248718974987655182405833215225735873220264877158560122320493731956314690955967139538029756777256195978588192162444265615093509882755069456911927787177073284261825232516423851698135914937008644881567862568273989917338116329960867337239733761700465865421091364000657497037652851035730803254267394508214795924201849943444415387008917961822868521958424477418470136993995204640214981474834374514471926799490251872210208023651858529328179018899488192501056569100179460492200912539374663376264332842565194996093978002441447173512774111129800369506536487550313858851246192406157742187828796913351130220134189655485426064997444894795968700268769151216507748411743349909892605406960682394255521240179755483981026457197941085730519204677338808377517158313921504958983120992642249640888989607994318837330728578807217835286816712072901427773956589543558374088882251519190616876591020358393122325468056677131616007200705172832224018165384683550384374406629102488717775803677408630521774659165635551930586256724602321747310885627148486967844646150738091493103701493582213031052246743885910488127519720958445505692959971363078903964967835936555059649633686515502791327545419930341117727649470391147773263669612239720916557922286975607420678358987369553840543648219712741067525997317020373848458902736711257942254723090140955133394071502498433235285449631515029304010603645271215471767195279429642347221798098205283450606309471008533126832650012847083170233164526941414476407299354367856720516324201572587800888824793708079449974133581307547870849699813036915716632228121087075446872450474691100127867966569186314258998955988072571728582399622312492233825884619807905248491325861585275594704964382630715597617518118240182469580456015675453575810400729471606413388753490167221076618380728015286602052969319179573650864607123663950990099559548558494871437824607833541264381521306689530831506330952962031336283686709061477497924802445143170662474828296599992190935752128961747584151543585297877173099657841897374697521415206862739043751393069723651043953140929686791092353586932454107000300611063794487423451873017145676914992071839901074540330098134218035361886634864461774183009243966701310723451785268748452066649824080254963249775651952727682321958074841282127512760147656263608696215121391556642114873295203876754995266163392309852195503217635215601202088986291931885985937440260017917980262677078968005621221103220326908383564289282792778920600140142417822464408187669232085196297458468115323841569139710294430128766254161160001321398389463631505497027683980357004176753935329246474890816379800411273086192546957785129640707765357493184999131723152286881380751123777571658759688948578923350130628292261488691162869851494887082828278945631732635372556356507989232501961719475111713775058294225588356903449342656447311236788469123498205904086572952652913862226540971192660984288557592237779270925882654551940610598716118020734729809456324162704378932637300069087045637996853109992290260035295313769413260444987169902159554808515084355194265329278372530472601655226587991050519148857338408250557770152587604227724107814176983176223677737810467712011059927321660442792928184564429000255476385139632995260016170183320585295617872032509001475443011379535313386513965403934063802744697644991809828310346702051508216242119896031363690911596715791655700876299860196373378706038143510542241605693550829315232919486656691393050462872905774405528741104469446509294544969136696502059627519308180409268305811046463352737475825238236074187956039618235529205646589866897772146438478330891841182307864454700099162997038566033556382271627342418421175218712390886433299284003413360124654344475747856270217838544972110063840155830978088920019974336030320251482073907323901686211856722085528675621543675638228484989916745276863362784171226831156679107900594976651734749200449541785363346512771998401233699246224881158573755142506798040470109424971561725253053779049522402529841404986129078079500520692308483394692588715615853972457130605223729953513366006821040699283463867209173821251866664974576806846445363768655050361464591282794207214631540281081707769003124609213402631534548486488911993845627186642647970655979063364167995146169798181798930809594962765369338294701772889156253856324089332209495227585378450382621800659077388796813676491586541011059937241904676292571283916038221760156653936667444343746000228349146356353290160359962592983265653313207735411755882832868679674061859481338337853947672143309178221227647025000738964763740371849428912468021237171819563684368576477037677766284475479305588392942467130872708503565554572096582900030147716363566237129062434354099552582411621694498866719668339289892092656529044122645356285751191474798058404379854130611922558301882008399525873045914942874551347643580229853602520044608969695557873069833284659299147107108607896840099764019229552174162985020684279172422695739117947519222681400560771946909454174972132220885766722364767125628697358563177234604896741420321064811913154117323537182219161845663972170945099191927333528387267152096381704631854325013494001677949760654735061029290177632644579848965108601871427832940456803835312260717730520571385853320146586207475063976311934263944348896387208188956185323776780919808277225611810277636193121906971827629535110655326668597204025540718713641290194024624590683449932813444142068231249990662789350292121279871578601955816873329675959821360705487157109103270331280218813072267883462273185895551688056102092199520091887632234749256580787002723667803094472078262785468965051282503063032932187196308708084727405027127932613359072822679261997657186328249369078400921200515273460469518357952288509651059436652135508012832277495104313544712916694377807667313591891375618812181268488286182127893530738237781471463498850786999522256675968008098265324781823749844562063416560240042661049343675268679796815464925807056711557033067264621112623593119427991291172410661239398487805078901646702450786661239934769697140884235851707527078698128417661866256389359888179018049633756966043752726766987431202272611269961609301901267516438287559063585642033011037686446636926940755367565379344560231474671870231933968574817016994761531865876151998909671774222066217723379085022216471632144786068380908932999806600475478435717433378577049554056560166365789517588708666495818071354538200058968687338390934491508356763271189993986823432724434904739073697103792824256678435955186395627345809507967904558037440551100152334858793604680566409077116222682970062941858736251916687500845028503790069226339925485611887072049354342390626629608629945165673774391636621729945361665372735372424539694742641285587845726473573568046300110177616129021228132397839058047884977889052123421615995665485505030604612097840119863668193939740673553916515488853028779921281362516579586613292743883795934997700743666262151506113079389599464351763192520987265890405830834177595334566303385264883196198154900228869981125352229372473984539551632311147742066985024645009878874119037152837154235197947543904113839973011584872961152523038798910980672477008329279981113742865539459448435440918441234386463773387631309443168475860849975284174362138040790828595875379586758583610892450698160315761911990258976324056928766863131775217850209368899791458717231822566250816154323802049372964357675324280531877962911016897808580441891520540283202647355686457177436073660201366912408942064054833969942407069408224121164285796378085952914364687244539069819467543063660661961764750617870176838764486978224274065732998765379160333356556173948154968665712131440709422107091968751963589457489346042974789131106744473845895300216693821474013887467708638610416493899034672121588418260518069175224018437671295518786697467391227910203251102317172542482778857391784604103759654311314354188091253516230229516157633908371547536142341806779103234061898368442158203133605107906131344930835984963180858272880022524409634953860651939510640998280039877228511365782024106935336722044162523715810301883639354358929005115902043524918351626449357875843404692561708227717551340130237730882405076752828850292419121708117111458671528925252428732544162583491521376222566296539968964762193600385408981533608345729877809115925938280592578838592236586430369907542531579190721555265471883441799169097139105405826175793321377843252578737952626695975896892463751243797957457422999062733108907359139415391902335178942971512517283667918271037044023442071914199448016668004239170025169031714990013010291775670268344644990016053543755393508177376052592423968505283717785949375412092346687883384612090755419356509199731299581506180672200999698537980634670876251692178371290679199293247932752551083138339097648885910535251433007581799376195901948195350474088556797192730141078629126070855742803285592667181254042977608885711763857803844479527287683927198812878016842322810387747722908203884605006039584522206550439754185894236910452990173137567208486805072794985495101530133881675808747629773108068588703848346754519269737365484332880746469086047571520255039028888440758820388115815461249465839901868270152877690386998711736127548075959757514531303971512758542676419771006856938478490119969769023143872063906641112714487651177051813786265715556269603329503783574226707730259179004564838586157856814083439248725860060463857816342096318154816074109333886857003642049487605382107382558202717182430697701440657570318710850756400323726222999687806639981815903592753176935970701890256433986740534375982018822146180820416592093226560217297425844585902554441084495200958394658922330258768144250839547782749743796020014433579447698859191038258982618660238317854890743534019787825532235712524139520098599452551639994607819542589289738662175130061966647486427267771635848930915521623233098011806963071982250868398760096850056598088187914679635174246849956566898275504314627112923754493698778229449297734288496966021347738588905912416733249281516455887475857239008280013130370782722502040006394719786600741744461068109569852590316002425948843265250425033988830504720125209346031948603005245149465225787677561979806906350014406139677784597973901475882216561682878239635303892518590791221757648138045572600302790241624282851751326661677823874284323021845308496767317008818906427461374868234063414919745710805116097641903594837485781093310363861010131158957535809053323706809014904754379407641109172196287072851511835050731992725266216643294810791952596398329407524559344290087813073903607460685931752572704646393581402221832820301999296197148527864996822345026903452631571080053749263355892741311150034415617611937493295001327269050078323005329993693438953377994453855048459926634229849516185312100767231930464704673539738017856849290102027614188777954938682183825881881926288175957869671632052504330019528333937388187571460726775487951501213774843861215572712692525118351196907513610852490852227897658735430375557049188413007026680856259541072631146222411366171093451473407296211704537262973677952009469979326379328159942445673969216931160473689824619567151283627233046568374835639493985849013359214081867321155374864385636846746907725165151600416333259600405110396941122265474918962733372845956099581692978399206861856100116964912055415271965620828271469473450523546959513993531033358242176725720843147390061133748572102099022644878878541721524585058729730768874102525383472341433513726131440522514267554365495621480356098731180644810321972303754081225483277516438789134837588399024657589830264784514021666960557373385931701918581758764811750575470016396627492623173105260884159151214910081954608092551841179123608553874134877804358581618619122569572114264937109180855576042191540570288328777011091112321681139731792939851026269756974162860659432999992565158119225489438027442064883314814771015679723329745234569613678174304020453005930040792906173074883052400443969696705412077072702672413166299133873332401024113862464417572926897468382651994439367283195264539774909240125851396268606578701435090620377894671518137777141087707044228847967484182631607990597006557915304510108343634457756442675710593679986863476218370425058185556093787715414792451661066133470602688918795906805576867955337663755997085397690846615592766385379729079807729264424996942627703585481830095247578495297441207859086609460060286355372098281210670846730278086326912046767923793360444117481467650128103999716599542046272323315498853521643230070309896617162036034349210490711904037966034992128852633331207580851727384019566488351826659221590942830212721840559593149322762310967589078481377190451966478316319095944815304120908278050284777602110646144492900144714526821174447483602976147779837337280422924004108895656401038018846038143792957362687009009851478747687818648136811758920369060735522746243102561534123940905386280019371564112764335534213428548209562309022362478319022119027185939017485442383749374341363487648847107992312766429509614190575620451229372701794760656770475240271985888502095618402460265729250306695053353709901644563505280046425476084468266212802851825475093127834026107139675444210342943303090959200118199766117187900948041945796510194254610467662603169007540066618513553543685981558978885163522483980218955717852361918399355951215835248618786510659775953965042637673116023860969108898192364928174446352046741667280816608017612979515877712383077008557431694710897778083689631271203021572839056040271726516476502943717272142746742445900649740234619589468432751374870389845084789368995618207537854569894580754734712252902925264693053466957242544904749500657665362582155945210024133245524199482910246557117856333692074845164595522204874263085553521649667620096753688319334281172851280801861901477348342053724527561434273194545254729195921708166308811543724707812949914745675942856625590302715270608222777406323133197304226227535957361247014298776812365883755119575669952783787859059773565411171988331211969770015583160736922299087346383633088534380371063600769975794850539543862146022059008189753294097188182181924503600466801331583045927534712494235713658257413819838473109311289379046738762181242951149447375051681069408456184493984201609230551443161196286187219149903078730568657789174540761808272795001897225763411194258395072436319082553316018222872622633026243358199087730007884136395600748631811443151801694065844840109072095185010508584160508132517441158793976460911577869228649440321469762016526308492259447188409273843332280379059698248398609239422997769314630072063097125417789133313206762260465177577414562424981450392048521651802381608175701819038991636817446810964058699741437823518856601270951739136865099058965543562336704758409909140870047787443352028230092879567183886761218788230153576411665462195349821183623887815669204131712003520959566318177898633494246614914714175888390942220867825102740397523906836929275474286820404052981064553440800458137911183687816225510353738213522013192078501755039894086086471364414243360321708302994873058086047867791124999709790025333395825922504808906362993106429999237640964724325789123277989022666795094167454702441089799641849766258486241107221378969724123023901367275694886409053728211533322525281859310378314561781741813549932677893728605994201604616409482819065908846368522172594857439634058223500533034444532621204408707685323265815953131856435477968155585901580974192716865502347676463618818339646591744479464582184586132498484190722464508863802687991314627106977314328063229295960221852470628075399373998978426253160487255391227261792297626117251344342353749030565634769254718517437797524191117853778757539610362176943333664234967274826485982653258014231884209595301079791334413947370121888189132511996600785209702843329062855027752413144288821136825519352721209953480276677648621492386329118455549938630024334850330744238991740571757906736201260108131833606759839139091203125748075149886782459277912467432887562143929633115909504767314547465998095949594533420459762468615379906813080652248945810299316485884726598332645056682955215279381511568379761477795858128013970417536793052406517087528399042351013664509288620243426137700767081682931638599323246989290796949938696813941795687367030334629360356898928098686869339088299192997440022439667424032022716104320577875336910749781813492573328238268278130548748293741240992596722608927221545829322265448827341936345241874658403299018170006672146281822036892528980638615991103797541065154540374368083148144670227759351262606748399808024230242648903425726276903740574036344501380988813377092105363324028618306911162599626220574044944074322532695431400503140894579329809783529004128230679159688875283152071873202851425660993520973585134636981158344855188369875898006382857682190818603157279589576778327957428590525089457694397768570672007152980854689331876005314778814796072811575155175860593525684292449153014005931197872798104255776411996030520088517809240086882569790065160411646645153573933439319072240643319704154650433919958493893544349081661349287941447488786084003433973445242984250949646137184376026026595755514208890040678322252124984078681839518793055728747423017500581982790241016321181634968240889106188477476420991499303952925441589120759373365835100992225402524081918153801965694617454234506176903886718577333593861397351740088982564366555024132195756607887327903821862252838364453764902700098580020985481819360410904753786857120737965010736700047530581830808786326772119387021044907479925895254412958336976030342432809152801458273339635980259688493791724146693129514662051662364982986230445864332221045738783386187459895613814329035711957898615327501212004432150516652201334504834885106168715826791939436745630013628019490131073648270502718978543339898628020423097688374509537374054609481487996039283788084389339650238474678642880282376964999357123005771889184985225938065652748537343850626158675168321412397128509568532024124595727017908446621499391750955026712666071393822875049296576685027216191818454970323995686053059329395585754708441387162515387737976522475933012258160701533687134363579408605659559021126843350454430154580893084907929973885130788134171878620482417723218413588077043214437143763843374333665728663564438909078408774739078987359465465111074267716582684935196861165918884358860573245819652399183092120769507479945019269535956394908894590726351419647034772764134762833806943461645939466571323324794341494076421077367051241862404726963701280852634371874961447071394314079369620857640536760664119528144177066058233550591947722603086424093073933237673441650618961027895387274601491990850851469064424518469432291289475443001465095226295316351271889943589365871202799235786064367721942899795786775139371188997823688295000264919546724403371227624239294821964209396480304920290338054240986463443726987718599330199505909110915247401235018640710009043804383213891011759292849234291281554345065748188203423748800154401878692474548874062503040446018046571889655972733699719598471394518621580987944145514544337919287550019828930835264477102125326645354688417205764096488035889552162176996019475071462529450494495756416049057805389947939675309533579823826705138216141342021242704427259098324291749188956269392838286162762204777309936216046357091977462049223634880307723435658780027036951422523660694623149973495339504744540145443314038637422090992954059982055527109566813312870157080745013381660168885623797117215760628769333902452999596378857101184993223954174514480448662818918931265232686626083150928705932116925709108974582424536915437982690246397860445044374273904143786447900826757854924252171385378108715302976810508150816558373571916545514329540145904159263250468228403433131309481929849053886315529582697342675633016606020328910606316656460085862309955564719489529283405169262729439692179224004502723657968294630140551145893164020137785354423529815951335984588146750804745158867857584453251011864856394763306930560684111334457430265684481817435358941873231148369831914519173027441240389101018087186209707893762600993307056371870203176881369139162443360862234443995049401843838548362588563643088954224199451627022945574095633655791460048551115844108503840995324327165364606005482747008157273863614551587086377563379439986589517689378239479132503664930779794269487616660971594263478192900924850172679526765791961287518764228536268380821304256282843346869192358614693822091833527181015565866623699542791524235599344059169391609946986917450007918174548283583867243529409142548855787567877699105890843277487083848041814325114518723758997628800730957650765125558228250852168858990399664598071980362299798319387560017136463416563156380778167943507670832820005046276751517374315437397315011656630499169155151721585835530469141990654833008823145743441122457217661254732584977516227458336969237256496466791377524531721091987957559113792633746435260827701763026387503494572218581776950823172140923979403613296969101517954992744598628558736842746748419681601802193446684202736589669133911584487761392201111525037364643467315270755789710769293704918797653857488612361415371741061014449657019444347446422815503417261092524418976062240980579163154219461460869513111112303348363195286571357884457615710089124775833071900960263014311440384069889144608730771973439439900379112229758591817662758886005330095155669081125777403091230157791858411193997159747357435953596510551444314470180212563030152986019899967464321051005081722347111192538475369009034731209878319551922100791032341164969920784285046780499619309443015061572232659840862611866460072056914087385270681915109732004003973624020400683326760452918437136349072962146069000513881832257586712657970058984669021078906330390065513434652825257990616778665177892913178589901622867787509407840537552517192141006633546895130867925067053267603767761240184444724494229601795952054846183673143542707849090796544489238007400522699134093410427402454846915869643737154342381747665428431791302286449489108439784079479717645383939084916683413248126372741517425545680771496633342942672136206374739963663532659707617314221084061212025304613523015067254133153430176439622835441052111127146233794906797321128279601996610823771484868626906213727600024615859570376840187044634729485407403074086450137863180413642203385064140743708021089329113179289895988083768602814298214437284610679149165958118805347308282923934189782245310632175399226585809326087411448464807817085540222363994156984900473447432528280031735832079422967344399254691431300252160084677311177340655804361292549526677421749656871497344876359226622691031489237177745039256321492751195108623180282800439946671289556465599754640365182887738558638315911389850658109547550933830354510789083174305378991759137384856313245487909257178758676974617965659961768572943090524340372219789240666420841437236686245324320606436552365792663564114457996159350915506610730112468296543340230303841499476021948970357351861173805325688247760494958385511821499893978029694432963920647461108997121150523676903320736582766033677520476367704446860985699993967875987822282574929333762625480153747501397089531975189843952107362515158163457561784801111605695681517496724158129212637029301135755207826308517372923435040728833162676703823372842307421719472490829146747924533172796961442434212454009089257044802058678309937242941900146614639418999024674066004645151878554364796708383242412142235820870960873743302847752823459214057354858862540512959984857927038234430716687129447389813425550782967891115571362866891943182830469513212382518608484752270381161930587062564869519981005927610074985382506299384647679459157664986237176908646926407212546598052660845014390812445081317724811023322187421139789908710829598884267161682078238036185829640728836753894715474547487527456943176774228909530598269242467401808341315257503429380629547179312382529667215058578388883638335967388371973070739785306249407880500465441701182568384554527484238151347031436356808738593826250681851889815256636710296965555201381430800909102607076457357141577110285857694592763294600843760994896360324521192781340733476426272559713966257764250427927407351878713770688444319528602323411462494771521781859115811520835097838689075875767897114032630065128415768876337355777881207622524050825841872371492622952011361314532690458059834394945116541931034879504227865755141117442902331777779486648340979750879682313216487064888118852134018531438418995530730399005259336509658156129438226997698234534200324128938875218008973588987289418820313031744987461131532949134616677664600657879688548935978760074736082877588581502406176858648297572986565257146392793657654919224982881074634466761772199521612017779466143373450004350628752755823738882684914238414129685984123058948233678504943995517586675210711838862168888759207662934040245892912863407696359875041668885345745420450381811045074396858254850627642263823577294592964459964043235302558528347068219888825135132064507348079477295264347834192871269090813066241399954425835470349649235860164764749568774318330611901042569696475780071851529821014364796089632422299731211667021655440841376987116144256156981729113909157242949936507055055673573615954288240427248838156331832975564755127350452999852014596682560576949636686371712462382800026814232132200738606470412840447377435287670676332946897713655321961416545567213795603602995729255840709507980045187769209745143611992632518245154454226877930972551100228037972900767645347654190818241390885252532147261357234974271489474839529478592285061519327832094713919260488819583242857310299418691701886915694723057073921282173975526712843697881212417774212953439029224496107799551966095483866050526328615158298939116032296141560478245977199391165054279901274826125659873188341922380655136625674159338570840840097938738592283044794600375839267062212748799361866476475207982973307105393252719150882203608776763889975414149339890138950064995578399169365208935538728377687041417377900055616020066077522251058669928180796356350505479588454506006406051989915732928867480471264813659750085765616540938403975025377448545725053623918128886983136394864202048342482908736112214593928123109184356443623333276535039316882162121248546810498539315343858501048109058088502937502161464165219822894080272845649159334412379401002170265650537563805205776444024173472186564712321346888704811008174824086265071357211248902768712484572611116595882381282825953289476334758242121856736767870139116263895229495878993109103954217430388301405731338320490383369429264606673336984772210758610756087168202051097742039516713940759798291559819867580296350270982935310659386889334047084198056723751342319072790910208058180119467770332133336213183414276310378249461886383922857389847323898004594949986564568654893314653694082414396494393363313809482800768739333733535178708310269599106305888964586457391075311502253319086091186949578516668196791442044262173344424935929964504822523033419496479043281948696922233892236881091342893383892729441046460517314265357896920281892028073818915573416335813018512087262335630814683565114325361400160076040766630676916204986427063464751733536782992922338666204908802031824186356253193649401170586959461606044199078424311574798295342946270792791357407848402515947366298832941504332233361703095813121418393692817151575896894089782975304593271693042106817363643632287773392612800502990099369340386988540195428982918923320373663533645871444655899803314601107622837015078927413164167195264338443596502972201566747573659454368348841824833438665697599037389792869385456163750138808454137840424090851566746896065172150065786282177283196936552450916692644001047720623048330642829884161117905224512221319404600469754982870793002842820304827117756445793653384219081050055266415788516239097592176347921455779627670090384131637947388209162757549974012168701979521713836508606938225440551936225091345758658235261251385719936570208444038249859534138314495649090369411378346163519717522958727670136815163044567899701280677960321085807653964646556948286710543815401226322620810790058131380443513480474558224582599836997731476471794277870167057957003666610084428863118801325828759722368469050782831361772634303074582808584029076977756279549659391985511577374202631670116085741098997146771640278452638508290720171827172537890823632025596321597598721546922008260474392841095025503109976324565165599422147420415037921594959347643274179942144885585183867055281639805358142091773585123856341167199232007950523262485190590471051626344805911009880158608328781454066628143769637360702254891794962366985038825315807728460322600975104407101231794674126222830033003028709939916924351808697328989849173274958304917164831951669654188067447907965325397491327462288358686823272578654906220262177577404277119664498088400254359576132093628706990408922049829482946681821809585381950497983970473622689768962273716281517523307072677170864383937946475913410351161389418112875984892932022484851149626828127909837543003453891250942400002268114457127275429795907961471875641926333333488571067195767898286203815245297365883456032453058185920443085586149893632667480972649772943740662233661653254785817075581029539382285189537794619806367032166259184759289634625459231843911586035786884863969061673925872745949411199243678569467833070584582789559887277588980008005863233135486725971621596458259036559688679583871946224078336017379442211035065877946015807748653342149738832148376782328111027073491265801929788063071951198981604247514011821901705865688101508388455564201544974777466060238825868968734970438478060480459323307480969108333031523948310714782745933125273555808298587111084731832010004896659336369219467168413963509630811759095704703545015979760237090271260500916107965927088610341553463043399812351640039829395993272045606218875196461614565192254360618050708641975155937018718549251381873558900424958194660566100464543098570958171917265111890918500791024877806538788795813286403822630400572145609955563338631565711465411506531352470582820921095020399224841363967615615291762498569847176798020367082600028369797804089181872304321204992862486063915810799505910643233478261243997884882478424687657102177078572190118070984916897431880529229453465848458402360365794581301044397059630462640116748432063167209556373004196960258507469402833879911159559762823248419713371528673477005843199629249334437763481238216029151226732365497829340473837461545252986030273941744072344836070095143746648357380481157014260139404150219371204560573618599221883836955624789877228190025086336416612743266142513993759084838921202110475842818991290647903475647011603321659689761423491653487554209282056398915913726868832775938955417438663789732118212312601614450627013813762971916730660800494158458416361539537892764989456826600520744821403896508659096334836041008025685452963248907457931158162707405486657870045646618721064592661461167462672782994676754897632816181952960876237429450905596794073767437558409013204442284146112407815679015300264849695866856130617643979662920679855867101156434201292796785397603075130631990720288757669149416719735085153428779478024225961580576819416898709155941452923512594487765985769906315631620902954634520858342235296768217373932221851852905166775009204944545123776822978226992327888251414035581053716619458488509589306222616576030613518603888813442897702782030453183362518684142545012482529540932263961359514624900735668085631456842494452633597685740652040010645004889970047739302133515064850128987489168988243049356172512707141735043487103105616764405504819048100190060354630072385760573364601434071362442126183477407489005384917681768993826169017724700308596896037969695112180063338405226281743627631354563754325635106406348192013492027340240716324942441910340936222946775584449919111227157704002045020745951640528724337678241862768912546805048325291551481735538296688854233468385415746831923059670559487568478548375029472595629398892604001239468704042841575946554617835662664990865054796681732167504715462369782924686064521687198983065267223648115359709500810835276871440490185726101543028464917114277859848223450723490138862126153750605128472717578840753507941968132913594828347090769891196141172451548013697909919642284486469150775975215923016145307081735413085583259677497725782157058020437134148724348750509101883187588955243175839519227076812242027942262332577071280936795115932014959700164201322549239533024078068869378079809824662804509213338144200243153700349999638370662709003212625837056828501456641527030793553836863393583266370873101373009886376722979394890233962972302888053112417120559191947270803656032166816620435245166235552352836327155069231344241029368427389960121750560512804477939585539555163960704586300757877495471591715334452419309185410253635070647194441421564255029006099564415211208258342865162817459361532693337293840772440614434640349054486302841253833636411624406641822503746424288759541809596728595367782840004188560760599345557691332617545495208995596429105414835042586624060308180652289491558454026090892765770337711197590693518600035402602754940641486059824510794524559071167348021448638002104187083655228126802014038879224794164533081804431032263141429247456302864957667661752322040486899716103335263921307002810062140082161344218044343012384202134913996094849562447289845240140067359915979753395294471401137439055082252831581325228024779868618934392193603514536779222680605344499877974461157851033705755952166623810717952932053163051258240254288554362837420716666649464659883255823251556777561450517991564892678954005237251971859021524025170033621142478928701657916876511976101999946253249265617344542137877194012570359972240708635579449540341414386979056610527107511342560320026262738858054982427409599722768735287054118122310458301935409148517848157675849576226946184956333890496138755866832713362630421910928883906913162178726539900645036297796547025533382903829551592984799470228906166835847126349242348401890543360866238797518548661667333816643635706058247178022243106904203408410868552406197110693076063533568438500814846042170378488128244750742431281534078698308929190745596145126575604851603128567864977533173004867320118393041161752256302887629295615928464982691507442433743744113707492776127754910637178530502429382146324406869189324908200564110436548816372142199822132588955522241838828943312442633618740135531927444272651657711434617830767117168525156787957461396543619957941299652393605108628077356646376138078086711087014635800456312982184017687945065564344640033814482085478193306587853420813380725526870380323044364392225458417940052394639674973637044226804903620671939328340605665221919167560403566345419400728171779344955227214150455114447929830092278400486211293130111323853502371241723328456948292219239172622875586798979654316082283506692977953655321979720569764603713438949552730437649329054390014100250436301095955604643368829418763435455985407123587379712348256685026264781518179222765863213745870601376563811159012496757741520068197990462162404218831737650611263200611883242543586264554615024200959602585127852309179653668068292636439925058611753484916560342691975280983012229043828730343794538862642935271138815771676054401675173568064331059538918185512611859312300741569981984522381185638640604224188762756352412091343572698781904267212443114078460031414138877315178833966806205554920981535930195316730829141588181854645740367113869693721797457153803434848877960378306772840450225362833277989389372803492819713945022945998508399695526355469620657588495424077357968506271297234562167656208861186691889504722212533152403791187105305228967895104146320945686065832715333893990986163563161610138333331411815533602836661569700766819405304644904068194968529411418006145562453457031503646213340397046691198688142678385142225500816302240833195993174690443288581547224308404511431694607987716281454543981822047305295774628831295977076471012445969865542772720908688632471118250487829403448145930202117006514329295001868238869747662878187932057051948326232421712800058992942096492050667115295738843502825658883678705724521939606178882910563508394757443439367752562904722179994685074473847290179064543945279891095809338286713301902816791039490951894813784125670713330811218862977115752011154884425185027708202838994351299267899230470787383719756257824106736778800019493173924061267968829915651904378152777035419020059838342399674454466134788878159174719670100020984774016718468440315944540659889178944041629481040597534538233979123748702733178370292003474466921670310778373026121353807439264691269933648700677728431350495338445182702703824368931790370468158929012099440572235769866151051343105301079090605254350975749509734306575586124412317600089693003119340211082895645935906289659869272400175752446948266525263735150120420973006869397143070584345968655693754584483337822368894794083388936709173530778576103612379433439609992681260499465323466671352147065285354944114716951986066279247662248761616983081053138730983815501532790272369279138589676523344919914990350144744786984822559920417535396053755977031819707242218237988990430489082225861968976806649753079583771167731676086662816396964119585241890263322902532080055637183186696048849773056025238828577766961872528089010017650532246093331995975298809935407740679467583497239354201055255761427229795097037202875458859859982803023163836042986613704337114221505825476772013339148097974078278062382020616716943736597544505953328018739191413669718644590485092729197135833623646063841063652597803619874955353297430783713164451617957950686016108157919502898420029660771517279432566429918100321236278166916348553328609089836157925023309037919593685977557733007631922547783202658853359416031089801156608973109468396108223907725780274399170983645762564751765509529940156792755411844182261843308008908936583891309140148703131176632429048070209538242190585485536206697188825347582335827174406123434647232481980148446792229031603690352056110590854978418567027638600266202228135913573119793826283338248742713182408489370477825022431945834721116210703454846906151358414448391543075294984788132399557594395468843407973170631510805533868286990274504514252831977119147503705858297697134557087462053314280636071320637560435956530895406181348228973292105227575801256570773855673664754712351659908153665230615159232577635232391017812991222646748911294016405801185812207294143363585669138623274147101924755639057751046044182698900789620832286677764431539903125591529318704617894069779565646667670657592590048827219815226829219224387019984894755745632255625477045371647831189059820352638740018731414086674864732210051622342708977633615768309630045541635963774030670886791832779519557801026157983559232754722586784540753989301543468210017975142869656285719135970028072130123819022279965876681345566946901600263613808213005865926063742000625492343863278451463211870020938942778101323071006032778626294552555953528297626294301091630441062890200881194047064598062301411732349720267925960660773164120594578647955015366623906720125509893445128858371579968684301544149512579642156953768087489844873134022609874846417655575549081550817978268072976383705185363888997065077336847235987004797042039216745108589447762277158283425874236868988620230642707316747009648557324534233752435792797575144722067003265536939650478306305931748339903359806709427972719775371381274914168577374747346255731408658373551358193655162918229823774309810997696903943836955273282635459066668757152994474288537751847402596833125636291823412112834565373760645227725186082410708870376966463183381034615883110676180235998834579894659618030842306107169628769346702607389411363995347424273475272142314500700841396008512339409636661746303221995421545844134016222032132173155679238715315324643558725578745261019256142529654759220112577893353774658822332042763572961055833072595927347996636246985495263795415104446658784267186834960051309727257012291310710637989593820283512219962040301501254597439793706097893933937181169729886009277582241948123600222084824034840282045966305693704167504685216651936919713514889470401072659505086038174179274746234140487869837442825353615829336746397139912027433938582751318970221139499440786359274460380841151657437031649669484353587620035443562686002935480852325690161199344574517755605981215986932557839405235843310741027166542575183176836007691183628637048809240798566122602149619916408122960336151919267430825693674591674713949841792105167997222447430311434891363345557294592133685391674984077752787948210982339255767061406714649968413343487977549009530726088479006155402577011738932696719644475422414813414685468134543008425148889864311018332184229995669432926525242788186087845809894677671711044688511864333913367427967385601803206927523734980332634010982152786003333094308070346751435995016176335786329146630582168954397146116831241122270227761786365741010151132389118677478293053816181445237643407310611164553498534470598571216380863809013518195984139932734618945361017621872779857314238489260469505460105054045839237066216605888467079783190313026249417122562435639844757699895068776793030006186524222664635819250843514706454157261346183789451870164121296220404854969580229503900711731203421724024590784964085637004024510926601449153232113585091728000837339342261039033268690811409862267653955497605498030869685294941913985886089171221170914729509101657084783448149783756514868755993018355420031293577828418075545799220290687698939503010842198935353504095376770700182356141923654819556014626633373278553281607624738617980775303140961025266154618797338998737237760448437837989955586423220379181544206867186225118586127019103563307777340198053127600863053018550383611129351416864738566035647449400724881018185459277720772286304032079899171551205042489272628088452640744238974621191567518725557603840780530271732070246638631473060586063862750423301330221683951563462690498003263908961591732594525008904760085919112439135124042959061043333723417467406397875853235069339237723808756464856199488185402429230080432821078973551597214513835309789297968918174908453418248846856872115666326088944576318450385188783580408699175284031239724343877273767710428963539386930193371207376276929631845092655914535761546246682793688737744570630710235083832204543450792640776485686960528545727853261570047351777961435510656459865838300902819831120242373362559220361184653018525100129572057007550665280180003758340413676204892422439387455672842719041920550255621833719336057486139530774777597800289237871187069186862210089734645813776313080227688920706839019372848118059726837717038785197195699596985886638681325681983120256538142578863227235216303624551981348926488828461159908785919971744374387293442246548828809862184709101806061586055670022093043345020172677805882272622478454748421890003908721443518723783016977004299152495071988832709696127900273174349521302033983525354875814525714457063601689228455273732558163655195390337905649077079697247790908162107821028333897725795234618083281557088458804941389573340239092158297702389109064464673531904261894879699804600476126952919092826526929771860436529294400004745334060242885558127150987572422673531305515847920385942241042437080513461574271725802476264871340091835591466408771451117038667962635076837763079657817670936876527060144545672020349596210995328501319271154431439137242220563788417241674029066893297842464894523822671989335493286814446304244986090571853752413707299689877153824583606259339861518359104921490595776441893902959666804294515712498198333474272116488510931967550495186642346313035333031896418629427402295830604071233380457015311808316135302911218881146530438449470337556600869475454511387993723219903447630010262314240445881107660317185691498184619935873206140778330685488312448867166913081991740666977763994377981068866422497387246988374875190449628449255364536188254183194878112971659031723228951133106377703496218117995432541121131769683386065187728481280105979465893620258514500660030534448892942618348000465446555635849616303600302358187160157567670365056398273644079250162879734709570006719680043393710164142603570864257382380944252922126534850991992412133683295357550181443533306051114185309480393373608371316721713766047066573895402544577118867884863223239094665772974261960703980515487222160380192267061766857612653947416196185747190151791293460129792548026384062501546264930969951950550569582069082170530754073606859679108660460930155548679074659159940189971651652015999091700163150812607592951960187729994844427469834420296968972858821997033694264478690355391963575785518581488926801233375280790886063426029002458608028247123043286435044531083491665887215912959299880152184787943633792578819575891819419698470960432343779356493614604979593468242853185324773451068692275846291430646082414874313231643880140926086272903304129421838115080033001794676963483108828951765409180435645250872796091022205265151077463131662053671640718507572903749657897595360632001234278658998002663863076941310972753691378568059277773833610999183524927513087735911640722451346083901323807898402698486116944270524854257196098199820035579882296446231207343985029179709902263751337156168169512110266637907610355415585059187669841295077560847443029028618064996702084922416503411617189386711259705330171473262333334713183211220206740666198888566869161470279562959487909982408549232787705744440163550569499189993945962289182621328128506869098302461371067557020423854405182144835488664320097587907682300657032525209099874329378449316772993356553816081877761580712557888576154706779182066033670174143223488884494278528122569509814853880924645888322403441033980655364610980388591609912401178624963611892558460619268772240542378635496242562490134757507947126195093424760489786446752366547172865039061688980868000711242559758732391012693564204652069006287473792804384482269171182302045915500192312393397730571968318499693099317965038504180066090620872841677593387978881377341167225404097408730462249129367213486024002810748914426406162947539645968581843001004599834911428846837332823287953554407981504290503418198291833167263078787752202817133866097118965195287021474142207342234721161973740643840611640833542152044756619825425329242427113848464479830178183062525806703572688457955358010388065118771998925766736437214461435070626448496735946542995261041372315086214336484259917980593581003600665408360700424824608898696134768342847083633685319135700742036180488553281662124596016792097637737575715981714120001345894290069531353512383881064607541700789557819184390588032686247668785461210222813582149221388375574046177496371381191596020195167824366618465530388443392911644459321921296146958463682383499502070946361874259124429883629567505283383562289076889317744418496125016630956570238528793593365863120865490976071660796996342177573848583546198313472024143681615045561694678091642229122636629153263384123992808478125033414371548132468250080612836827465970654206473018840453781335953014701344978615880238264297253235656796684198408591079795877437035161528258407341755623095862238041940744812903258227968855263514081815622235892201060662782009525154242601016702679989075709869000319650130161572161259200078023136140077228017383343815948070212616636640763269467933293658255456474078685020721747957750622786841125617643333296744130411806523233007157030104316448334812486202886108348926845787199667693057142599481911616768253807264213652148118540511160816963751729184213698137072257990523977392942634256853348806415201896226626892959735389848185389855311272457654309023238005602385021863731999172212290650215216880558519490401636388849977357714808000931599774903990187936228522474858554894647272475976192108795886125806405289690814850333198277820433233957010010825809515664121101905691471521091530115616372067078788801949855412487707641535249376690693054779094337649847640894085397296632058992119193129130052560484742591926440008314207069918886687364215403418538845687025105557852451031609690142033358300055531914617893356584422622313244888611365290304428707915880493692919110921420568042883754501385007538216382320903031641245131929637343899522243204977110340897172976645029179475426023382371219349516797916181929447269207395021121089516590331097412011671982091328161595917073938834049904493818142828250864475054892341591817865117584670697115133490076280312347065460756669384970357677605285821258726835082722110799656954240507890516212018194445495933976258426820601102821310298011517940300558632955446353771426586679490117277070504270583962299700568755360816846135700792642905710213324746936354286216838481290802107734658851961172466183433627301665051721164365041768881972723747928945697744942690592970775298166474432865748719210233703233941581716645838490981975106350064997107597800902192625580694660308432157495583446941698901924849547559198366995618070875219792968652466659217880755374024190838368593948310343213965200154924900874339826650294916482028048491659448040046991394046117381062967139873898751852413171050385457473056989391522196487628920792046233789051819053676380831956947417809296986604051097152279747315710305065066116304025719778815926488609944832956094416810487886303995524092812708584547256917272484147799534974292200395770820736994546341493919666468674448846505570206905487606845513094815416258851069679566889558410533202862882238343460454614375187563598347233610121810657190461487917958483568779816456202580675833352935791766427078326139856909430929988942964475766106821102942042524831888082877544564092987430526099974955573170818095786232893443028144727642487755786135117503098566118315822765269709359607562264624565284557812115724020503632033946156759687353955813538084728128461639397385822327257987979034308146287459183148638516217874420073153921773459677441132051209689304800451735651110582974734402601842846615443467794183290538191465066954786982100055204978655422188800738704985137924093306376302821943863125307952311730865690963583169483081706710774191325840062634610125698605473728963805746426199832237819406948200159889226640415911874121203238742756468984945181520438533118068930312656999129999590009800607595159490213082761148399528582067488617000218173898376367650009721637615070790682990001325916848475131749222695615176528065508785449351906299672530568445050977482112926599945765827070640819115211359640885414217556801843864672530014008776248173704371375886449291620990712754217989600050500715250237512017226415418483954987207633742220110363240436819702047395192594709762662926060589371936244245472202779283630121834940324544727757371890122654656172629493017017497491396476591865124245225487865755135985925544672614695411148696938127845502596103826533449725253550728061760460824742434108761455466919110068976294952854940016482203547844600516124852778085459612219165685470007035492985427939894204561731437401297232660923674194839035432687128326647458130738298156415315133197281991670401356306841172119510124358166190128814623209335865945396857850407908925305916153424167454149491964440360451069346465076111968779551048202154353886757079681538266539575512911172658998302162992644642284930733055770136957939651193002692397907041681639300228440631289435572643278927481460210772982838129200228499690440268041608336617800743892725150424897657184794898448970416222050107954298673204196301109996999766657700488571632418305288787232910010561087572714963005943131137898100249081322816016383415876443637386993981246303035326431856937621325526135097223816724284126071459402265115374747906663287173096873598955713310203952144349015230683171825793770390925104777735887939939954926071902136403151207597531673214888882466624545316176817119717067925370448098935382556994751655553804771942804823429628716101894142357253036596869579622655221817822632163119974582446695034142337879641186818487013357789989208615107535509346748939244129826376660031293118312115630990057168687727342377761449686786809018894820904396721793160801946029435146515261294812711954298105183798886025947188300905762791896299691630449011252316242930412256341473434733979971464888858982775621519613278434332676780566766409937709562211639513538630736586516952347711810599218309251034947356928638011011108257608741195433217844529249780826045814837663466096249157281861428354140761655183491290481695997552983861128625848416955723744962150215120758406196266751936823965351051736388902180852349656061061358658342862384767206874253398858290602553584980749424057990636825460200258419357857474986464206633427352025209498939248341352273658064042371714174941769816815384023639525732761430928015647140350745900039421926244216632308817650283501700140478344307780561489195496180617498905371041425834960738517163778478964759031185049010262276858321712901229009801712284641544378839044197916942806775469930733555601315922752963109680779307965910597801813176347055386298282725603583193409565635842244727212165595471470764354265464225383012401590135048084636644120222622034536013890826935766159174401436173850145714485642842164723557598224800439144094635067142856015282549930975120221702670445918179476232852815119786220257600292301535440123633151369021650391736428928490405484382506928407023935208781886944219386052832920201916339016287752405418694629314672176078434814615263404681411360477536886135235084675490870711986406875085517478486961302152753715961457750309985094471122401102257603940798857115398089512778479403938390266656632943191517878828113550110911390796996982782261717470311225825568806964812369032642372634548066148297366662458930744180489043739931506179951732782771281216183050389285239368888385001954305542434346913625301173072407036515235158384731402773684855597364825669053310841065852601070480418835740946842319802444569303924298280462899994264097201671105417012175511710921579527878267730368190899601720481610966824949814884936033051725638969153940703162703201177788304106738251206889216056591399083958373599513276359011729533321328004630598709488019710869928104223785975720313156828795060017883952188914012971556799716280543801798462503384449604213582329212366835822178036668839947513047558288320547006574090493919937746866866160920778248858911734175287127344985230761764110421291262295439464434470269682471238506551225671453228605090909017464850539276604848884229031758539303343891612222167884538954403857727480263259774359693563154722450722896971041285045762396218280507770409750874914747149717682402668337651191722955755332964886766208016337267262367239287312631919500215590142118682957822647629136975703470116670966676501366860021736875299320549706873933024515646835280033769814396715221575142419172576447341811277136971615340608602200390034198628847575436788753831820212141687223020224672110370551135598070205419260268444440054761990528430879002714975352233513819903787683074107170878898053896966569616608665903120174653080817687635153489916094401203245530370447140089940383445758375986104098441469752517045066916486869838565525417635542355131747019054770942090808749417930274711436662120476547042507388514154139503071973194415967961768174161384202868156813598494137840029367161894415690952363543619266131425667266706751485177470623686229750770633908937192646643706709567258956372578176434522686281264521295484967378485367102969335254758666958825508045013096419779608381500232532694177896623128566207077392592483706542918070764824435273156194888251295910867542536008817555302476167596452660032142826259646666185001842240259001887186230693488411963042746273278997667993442034189595330543024269609255849892253760682812647872038572205732070068684617188037752069738061587403777897888340631146352093512807909249515968616992055613529355221836099132006463010149104560271844779530765054976507134517717238568165822899945171758018241684628687091601671269252359767457981390625732564934833903210253659605922976021430058104764882403093703449662086432909387016569863633940003500477099400457187606068574051949152564703517676919036919291775901966277754399214334843844817587504243225094264506011961907962690897472026464527053496523738167734288629246445755770106656163531915169344077665322866041027082657118806204978303583293625161607239949637286543282483653561743832933589635974678479009273304362673837701418096489078006040796845942390624553510972634363812980090923470115567307108190963109479294610504383120771666103769029315470832361380175251290510531171084094978836184440179000559577669277753978964659231623192470941399209976194096163681323020418288351719738724032100957552900617479739717878322671819931141213571653684240011995018418587938679670993694663173611587530689721368834057858297979492140139658573046766762264496340139966435599501867848281474500516476177210378928590531477999595122106994303919710266333690382817728764628501681941255486546103407301207750028533146647622310750826751526074190951153344413063338809081772987771176242325942124462412459232135997157688896161188627890137618945512773313787607807643510010405644582328128511327556780977642344603321938576568877652254356368814606848442896744651860352278206238328159060416692036469364816978183963702658991072643308268341625193896472752641729840825694208457597157958710826331629978699816129629642454091790595145750192970094108721486445777631244825172929208427811470914199207173120723316626217215874408864032585858534649091277207142172127798813154504527618135056019228104743053139064015468320556684606428009458230982714130665384959028564761739231438379347929890292217509830867449121381711484096212425253061645614354090694665114654223527873995904015100166098167243242279314196355567375676881774194513009915762593730382314409736790293942717128702336378007334289087415639534520380939348102719350818952650971072788668357137955310361489765850014020149614609734863345508668589633638327824603613772437549309714680510516310758552596483162624491212395368154488143406115175171678943145181258278809101340498178259085864078918259919416272048444495492604681566019155608600108777752658847656262268797883600076039114068313923539189452801559683835576437091006676037639361485354643276111202738887439079896919197622563807918900101027957847161719591043052101492457495153556206934605761184093551884791750493079087483496292485399189235996470746893354772533453769547088185092191742885170138064604243708110916847681769511719084313619877599324549052282212269423154923250503647033432756793891174595375991446930776144789370895328839951238053881417120076995767841027725811327667947809332515981379748515600862492340517647635329426214444094008975268219735032004736226360502684080890965681844739652973370387229442466041124017070238118799570910599590378912663348715088334239075316327577915578472210573176992478183952502488562254983015173317462399336075350493929139537771036351036202161113503073239285765410556150038590947822419572977450196514469018725006674434967024556004500880033599535995218927082752387812654050256177394588795193620332242345645317176851057197155998423576966810070175400435629432638147036784633272843964107636950669904316169019728510195674816862063824566340390829488559686274677988665989757498683252015743645811496275680745695908390523861671440741935976730318222635968180202423339015913873023939325915646256168034698044767038033674853086835815188830933940662150253402352551755399018981539705703848208832609505889210063281455032755679779904679184970703540448867120487617658160334639744009265921920020099392270109922610137791249469561145382254310434042356318803467054383306526633515067244780852954746848789941093581540462585351570658008576349054651227821157052293810680641718518668959768291452136478968174243255053679778132107248357776586159333230967142141310328831723850320884214470708605813848436271506375855875844268464857125407797273447558595985535467887096559967783132873905237936950819282031973383792755387406886771099745530113897081406280936662923703748037676871139437877699978705561169562845854082675391419982279472839278722892646553298729556033485733360480249934547234345093272500321158108497477760382453233076724100918455655430164532439839352806203581335745265134974818138798250198391962431868919498342759191960274042011637168013271997148111156699561681314088848849385496765236207173757989640083830935786897611756087536903982357231708190591843252646127553938133021444834303586419184774855907959914342485234062215338064288527954719949719658008144460885171329643648662232692882612097771853505624730848770849732884286699221831498587236835448129008725121197585500174268743635311031626259544878806613984370975055901690207536170353110105971545146984606777913943143090254221043499477344269632553217230363130925816465584958756741987377277970115262400288321290390074703699004252335564161496701237420875325168478812487300870657956269447183308867812975277068822151059266707099402100577119623516028006029663363251871398730791295073889263019287869322579674766247490284294867612045129840470059602786905049858720620871334583969176548198662307170125519860236826621089809688842029770189654393265473164931297080585655839630319648575717017863348589832348718470872615492311079981727779063794035753496215389523097693811989460845990791498721814728713404830378874784589861736470607500340599088608895509076844460646759843971166699419294537452123904619526683942426036678299769329755146982615099200972509755271607473682890961319911867388631444744250448305996550680664884414572633536576617879505168664738984401145615078398744255404364388601638154261617901134945875185454654151324340763351097271954888635581274596751746582441989011246669224743577661082765073049294865121516271252179070111696784413156382452794134317336255852336466113650215900892087020438575580485262776831336799670798549907218903595053276628570974198458273944065261981115961528328059076216735462936117069040808517110881751732705479730838237825167978782327167394682515177751315556962106040587878084170439843123266186056165043032159532539988507592247790973082388498315459619222060150772779024070407837341113297664346616256107285495780538119274918702444757307301552922697163808940917168302495084104133980147482423145361335855435467450354977752871421424825452270745604139480038576406667655434210829099165009367573010744883776200635591336870617830219385977486481326046974677422176158983787902576044341452167287824196230375466779900275630440712018430382968925763520475816852463635505714155058321972717241173576352836852142659193098197225353850052257299392605277935637539982491162787041871114539152624788833387529211533094023272512646278188840909886632585970318173723872120257920406479637000679930473589054045006978073231017360003770765586928882967452607974120924389412208023682748331110590124040849625227959442968147877696729100782516100999837612941569432501641426236974083626451832903579911387346646268510712451404429375553796007334718549014754373461909524941392345916770891558750761469895507812220967980088712229514299965020804683958588258235676673816095843992815898516648519504127310755938965789184376467649876700057488711347897538874526050303411161703070379208233061628516939345064082470493958519567511270299740538536065549839199578827163012351730065938019121487660468531359833280965877603130868738184524521431739943196800623094788761521641460747648499896361867056604998218809377529058432677642705675446335881087649111665432982834303256104991301563821695092398568373140599418695418207495599669149060956516564321639105064036479657942189808142898996582645349975041018365309307876156219549775070795077962079215732048500079268528361358178823210756485208487202431966317601910341285762572467021793630296601108251540458298752366720526830366428457341526179827048247356624688489520199748805822295911339799179074961892764182234587719143938091277055364243247223308439855934792826182862220140160332509342482234253205024905414970915493607023459599208765978502772775833158167590432538524167996146184781494900247730039708474300106868034694535488351479883407009448177277044236031633231733629048846258780169599813088222973755374173586480969080281169856761949981697663275422566824064239536544082537169935927339014584290088591924605375187300437876759177155885473617486284757937173877809436771504886851143265862922666603643482494131499428150797895595292075136835901997774431782446598573119867759423377256855251925126544568398590637237898128046796428740735312412709352419370497882400781024104680785204631925724679196057936946751882339562274742826202634070493406538930348269560133388266920331387337779688563825384520535665893112281973670144095887007257075868914511816675685108743203038962485837240159201843075690752999960689489885859331689443201798961993976621985504938043940378536131454359612968323293030290610660599726016765905798037481144474160136885366296841528683077971215889856615199084232472707220660835655181949124800001954866495669408015147818498505388721663352917520352943770700769662271280268912975831967153731004550162409218634529035602416099875805448620128207615717819080745840685721610657610059188146148176789097320265538166349346017759875677932704437958434727003878627354160889801110783218299325976182723549359572261949576572807966605984736217161086178434689050336827193724777328109363357657894524275743295038125690126295438581770537724759366001362939406391270273392542588098214944982043800289794229738442749535687184112310968641647801663979017080871742653017880978137601951431099672755159594047636551601102712099672586420830997723348011151958602464914158495178438686884296250302084050984896544414176591997181431610262142761979989129162116346833996616987175158464820881319858765773567383760394516306136814435161395152922426255882427434172706222320427033221835457634036473800749481788815589210533878472282945404169580086683857440371949407222506446430492690579181594926886177149658104436297797562050390671097611490922885802025790111234710055084558133187401720979852190683432800021574281378536476422983494626859876011722671440748781528302502730468119000240293285697018303638193883452992138833409657818545675833955342523913085079195392707678270859515637008742629354374486369858716511611905343635829007228111689961055023598945196010360451258348154197936042020104441610160249455271809382050665198245024115491506191294791919006408923768443518156756770136351014246658462699492056418411434830189118504455394442359194385173065589215892062919335419157260733300577147992980948059588319237435535379539064832518624291689555985665174040652401395924559168955299533426590438941946724921641359022660192982686333607420335123490862431552537155550448199891331949291753821530403189576496947755983460645214891124685050846513644026306435876348746898558889742818911900809472650362703993981442391875183343655116996990427991048122150712873121052282838868712815273369874632204577869380235994162604573814029366997310063400289797237167941558096363986656354038756458505674185676013003239589552264350320327609392298952920446762651543402724940782319779917518406096068696358421441536155223441880519344055992760874858491253213407055444097868195984127287292497710570020560754137310408297689966927898706584803683784921093095680661728452125657461951528274261327486002963979745336330983354052127809086739948454184792285186077186728927738415116680109998174857734476549276913323545821390681785204746044723988008666640251401912838492067157693624750603817692663316232016618182791809381861429582929672735077270213660470476255250131821779804512290062923534260394923708304472786568669468752947088713116420474527974035256948348373250101518184572442032952272778192529659902589474616923471258499091362939587841669361734723778381540558894363607498981722777128979962667477614720040834861162963718826340250995760482584411254497317750446382568179644415582982388917061482681227065229583874259333630050915321390613090918557735978372859279671984743447040379208768452906361962287242099918117597160420897420926832222050126666437381541116602588252525837428085415560388058308584939017300587099772210717758118239094399342691492067608378004544768905541718852922318848972866400868053052665302548693464124282637954632072199936808742476698723568056039299814443978747044832319337292734407814869088418251399518528005643690923662689428228841413127591243232593744637402812700445887906148341239879318078328309442682722890326255194930466671043925030595531610535782484861847753875239389359755393752092797197971808772915777113076231611052148659928907230293992475082636350489176533142992328513804290758423298527795842989400507696558337466696432117578879899583530791701820093169364184125173585013143320047772416203965399854737839321691539660678540260551837124385461477743872367515296105315925634867758251184573974938381552537885181170144585516601029021241588276643350140661007762509342816644434103890480226857557816196874607676141425801121762725773217373542146793664154823434301729848299760114213541459970795163376905665840011599002010939466727910793148662404913374730004327359323163922137545163105161778584623944226647408747547870245394376278497142249467400644779532786804657146240218412050847917195161895122122137891552602464437092326185355405780328361218210130079721143909521205397115663982891004783064233742182406127762366900857435741113236842337002894204241964592634714948837639177625167551775468521088138759334943272578823172854076958805938398122833366457737257099931661631964808409203884604772029261675106344943572277324965426939972024431445382470961141891163728434788098359128566794741625459281598325505933801026404456769357295477392999284780283859192070591959820054505768064918957253500565287626115285818130845775703341733419738448803125009577489785340720796666157126238737323618884234758852973790466107324504591650554790493735225616870779136270815160652244266339076691966472253595163639523354879667259557670929754998880180468292053876772549191097314960391620993891703558915970140613252461481921800919932158347073154453665032936102476826413823420343890561956463942853902352844464900713345423480338401211621657415480190142399935229467112375945406507562572012402273420062489014755688133868607942748597389596186312887428063374665099970261851823128634872734457615582778380244902108373478609404659598603590115624518739412327322983330963244450919993984482795074061947305410348641233650424440653213670844587003266859554822466620080070349340027536017131829688590785440329393303563023096633162247297323263832160161292852665961056488888881740803516326094153759642810868067697994712025748575737932881960726438196283483962895875174773001916258438917459936978345006326409599685378529989768538580241102569210395028159476012595084015557811857067173863723765472692805479126883953721754988815684139549359283895759466628576563921495839822490785739513430163332480925239510444379026481492385083311247832923248862151963893234019008273149740904880122507741117300144378667683066082733499931967866023324739823867018815282025861250701893431173108041709609538192285136526602026142609002695638027485388779978453043048813007650384214985767589812926950893961966046120705255677449690368536228304564041316750921726891943848631658853164804127739006046595067746391638407569913735104112152907693783948056578041674330260386042653707936519806825706819004489543560430105148534685787784773787469061943387312433917718477744708037033111559396275611522213587994335347993415203872650293853253678779265370355867595511396971957419773757259540868650540658221842211675185270502101752984893919167333886142645171809298548246489172884216051175767396651559069098773290413780374000862066770331302004317038872247485800549665197430310491751175335683603611342009391653756592538583184914331578625447560512781518679149591848567983208833669084966550845497079141696408974032863526491083518512059405911742560133020191963078270784448198066722318266964538542559293928286157583038724580905515927707562827716100149062437943772271860883777572347753972497394616487040395051695880470889699404288924985251920471160188024593636920764855397548344120294787254774562698758013237001716899144179859819264874111557098424558449620038675826437954866167502710139847931888521601746768415874389904670920899790918743539645190947833414825792507708318277461688691752269766725615848830227933566020578579671466211899399487827246112991973881476527841693193190296724451029247493310670411329193857359767692329720860719462494659857883887203054433198576945700373818425954374222790926530019985605212340722559261911185405316908599712659616562910468880883591489158605531274503896020387459460290458650550415497609353516331976073826404351354133977977261409004493827217012798578475321626254200509427698673995539161496857060059721481524871091614554887220214988623064451376957775612945060518754244894615383870530538066454470204512749748384156743415191290086815104867958218022240411317460160345677207772877580931768679788591357966188368410562173790629259002551874766131711619227128132720938314170258622885206725646693885681453214360036166013731069111393457838924785529241159140898424214599577400958506686168417240144234566502793847129664587770046446285087859671416764305051499738325413413100401555765060591803894857146831363025551533480425102286538704388638643687404011455899804073163606607468951364598818817461657266814232737629913551850911717135554670874655423432934452881261176919679500767226032271953136554182373243533151038841368580088145033635866068201343882667398926279223671390285296316616532561415881532479258687761094553125324548557038765761042222891712568617620289085140543598195868147914621560650578307633519465885819113120792239826645982473647566425235041548997448697656260999727965269498303134543583952562289793232685020550297451944998607235121929337901123135965958375735999281667943637587648777027434505401605258345400204831631281091757480539396616560903268705237623725659642861298622291522747363250215211936725439195791889699369536609240334933109905836190549834867435606540742059513740367604493927200841647779042405680932994223584577194531281406996353636640945475082445243559092887162397162965840780934208381612137219375590935921001780931808767022382852336811584190749455878322745834887303366792816870293125122862053369895670264022541268466191912809272834852841772628803135078093873444411957123047680382210115332364037895323233939825215183502581342873985971448067157008023328267022466270395712238895728902957975544240730208034242272940173852061433048738374795497271915062770846587659174676701383055061540960962902944757020552122182055326806775262066670421871890433066047376617037072838971139919625099119865489332468697379728704323441806051850691279414983351583277615735138443411860921510561292293386899005044836933641644574074945726103522980363565005445895268998827299326598377414530491176857157296777014425645108212449476237523647781271961430272512064871333595926345940992715513043139163453927307381687637123231590352661209213434256334723072225038111645463177534876326114604813560628072410223878824940100025748013341030318418675585465410283088493015478420123888480467477656687204242764846359022884455031001640698963140767831313542859973614282986345223040209294230657360830017400787278709576811653804278045804634234192412958329561657714802657588490395082278376364507182463893848373128135436814807886086571943291145981746517940171318395248156621805643682824763401737621752698479733991255099713762291904570539668783379767862669778603254924449864819294158833505029859053225044361189503831292027458271419181998100242385655227549331615956385274481705868817954010983622330728734292770559309103549026788544949314633218515268291891160761128909792375611187928956043149588677178994707545869748461037659307845757347357023884045507733236992410537107150332484075064753235457912612656222096424058304492309536816976574315927990472792860169699902821085719751117089149594211783191926655067289343146087040332419585879450290445592879645597282155308243475867933006204176147107908828847966047271493084079148186835622011373361911623985030697725707883024724855071424464127371441809229343469118006396747798048068029132071889561990211195432751876191759965087466399849170285293317091772186204526041792074982611261376945339396082234824179359468202891700686311806502138820645519929470564495991642334294140266165080542231063154532092774609904497840671274960596143562605642784014971432596784649927715396968002490922786442977050083626640018612739637611526609004983885253495077736317392255244944980167713914509746261616514759767683918069078957648398871634296788971937353116491870799748988264934295761025509220460387158214772451973974506021726955773058369173342031706209552790377495603850397140489651887001271625791846009822154385943876433117509202010554308500365729938979026233925168138626406724567784313704242686138617753127335050225867193469213927154780072893767940814845411169892724318719206474649024933193490465217714308815340546209954843493569786764906679708761394738965002093226260835653508670126958524128749531947261162764910977677957113976608085224780265660378542909936051963084383807086544363404564698974168223444358133272765224626698429548084015659031016828389267422884218884007016346869110914467269045806108002818564002805414877408990102199805255243297427495615132136238681490417426343034245585237555159823875017030769654196152603943853956308692680182061735450014054020547369955683310968999409139565653429675429150804845124864773493175808363462067086809060549001879292641282479989139881921497284465789579364396289914425349429126576132883089930133325997846594072613778302814455214938604238189000823601472981277492514191745798740015642494455821509953419712731784382486279123586793353501152137847560272161326175211814000918964836795038978099427518177774200437442812603315469369752066816766797223312637275808371961149832330576489982184330239173085250084835310985978568848706310287701898525566328978430023454894902823573366200518735669903868439927988063437697314212009718907985633805144635931720364194002123608276437833137182002924577904223585997267434399818839768386943558997071549802724916361585566829720125698625065630626994015407232936794172592824985052383608059326138319295077675367608315953602773625866370527910869261561845567435977987650697935505209803990564826416924661551583863572475064209946505306684233104836930131294863364705437434141093944364064245677154836682739418088392445410249463149310275508455507456515104908789596636869610820050321101627206444391053113355773292413560816606138433393496841368845268393651004793269456379817153705389644611547806132713887454669503741467844199328045904547119658748171939846925483512908821951171480540151222117552147011547769625716768861273101094514185498485783615636973760643527362561882369091387629610736019476581984359969963369825210253961217693221247796911227699643381602129776985658734078178638372585261633057644130744822469714633284410726769225602945301780084310319028458742901551374396993273930687370680325356425482085125503561654097858232322231020115952224508060551343259075469706576615866700222925304133583160492022734549753074895124923392116480246392885491304391239859406480030093603609451895349379580721753899538415647975697101464572229228580002914459921364700147119620146269061588519342803414777164132555959924016472712698020185659130347343315474175341219621478484557853365605915545788361733228798530371326016673495609703639139137578290622423868159021072929161950307011918790602800141364230861925639750417039789740436222794407939653733710312765618250297096555733225252571791398560262996949816446933668872187696128033989708873407773656872727390532433339079793777840605712384090164201755130149061251822449546367150976059047483966009560289984925801005917716282733451800094991601316676865818678555641558200630878846524784615795338097914664455323594417670348499123449107473394842998950173774185144263267249345220916153374187850387738432139273628354659841161007165093097360051875191208384111755432893309683086033724283495804528030323659463726191398037663332309826290057185659372240530753200987915782455707411019353298445847486833187688833298978743602336392168652084903601807446756451183067883968817955811727681396727846201525814366034951794885849408278164074177213956903369908722858910094668896456323955306909496434289918517355671396891008272517052677958537644611474932794942232780411413013798546463050900606522146593948506357462064604818011268673271487263831424123866692273774278110614783802375650026921388261939230899980553145193565025366780683255511042602732816791757107598492531658471199126602762142692047795754361229070107900402603483807302550646056165685492028131278745986494112944564530800727057346109779791124644214731071109771769331549119433553601568634056252524056567795173118395834941463292235292137033938537596956028393128700861978664531883355414727887126865671781742645615472982570629652152679466158791530736265297673141015498406205266968632657524138576569764205673203750494211191947194863072141410252883632547350123150165645185785749733708451734101676093512138711875990192306839473382540695256904879801293896181257636896416898152143241298707387310796454982130199304307948146927803124247243746142987407052161443023688441198635446313991038455283282274254012989706808083944351047432410176045387714270745379980186045548479622023860077098428907873767680704048902846190749575270216059277257173385807928473667692638611894050741310343919329823926412475567906550171663205521735146429371590494401958389312957941368885066549128073121596962431866858388432798514763685074975852828705011275596535543001321640080990084389524188974551386344641443303975299768544650380056397994267469810091918782770568928720480985383687578484331917621757740045646055731858479561808551805978931687730158117651655018604856652098593557932906512369997170995409951967806164625803987740526731484803997349629847884881837531609228246289177429402691939418433766929206773064829527674813347598498071040698333842725268624321935287873542501262529605498373215638212868314303327727507505647149031785579835245877940308042138417802678591639300246749392959110881056932372090286834895818884726087321016197234600435793584846163767186893079600600246921176958801795192216053849187848874251246008528073288173928287592051721243304918021011819146555318751813145233131542230669517272791238902904090883222217141979841247108050672916330722908113088396337115240624789159401522388555008064238935398584512478462476615725577282611342398951207273807588042786199632184172220552341714195365162353488982148870670064149460657377176486871786609684806992571930439338283223388864475227933132590895426413946023153999415692604289479150238131472904176567019258175580876345269021785030195981873751455297880089523180331626521358153096932617232436632365288484742633260566421619970121084624717234429098613473602586975261290329440694712497160446783075037963522363925983836733094512725766668800293596340770588211558934440884423601967058278482296939593180464198059911486827415479483326648549207730588196599461697997152245931347660797595191534698607419723005959780395478767661147530585195779148161974624340701313320684771449323824545417652176923587590057987308585371199766341006277196008059467228920187826798710726395068434695304394339778075429703193889155142990947853706818537666363426636453906303479752232933530111102818348200780027391535959884413779052235954918565146487599659403885662247474241364532379188837282725778144771570419860699028555752488137095843470351505435582933146823707556935997808125180377389042906764578741414708764404858642293981305285777666684257024696204999885757104528141307724941552945912234260963865009671433570406329499918309215170738599543909319636236656636610555967986592118235283489541945455752185705066061664614695854021731726136624067632538274378099839446227693158000240330302692902471108698943917894471384008207895037704594678998789712508030609795980103869086131114548167498823699069334615432014211100629796587664675359559078353208508728714897839934528051105466904075721872259630686270604740086814822430220410433823849063549467780045933156118662635467896570089717103785191066499839409004370006491006607936103903564480408224906293581464443597818740343372438821112930324242186151974208333137897155738702974821915522417547410674322820935962938130915533434709219748067018343190388097405804400899296480693059735910669166622387582464229598728620524757482261285645870492396370125811297305373880092340826053474515842115971340538070428433514081700656824210274097731537256181215516961851751825265328725725636320454678678188595199219130191859214363890620871522674392913912874095178157833966121773636858878956777393692808899219919500772359470747173719030805502781807129513965067013724896410321188658399520004119236663665123908672276977836666762411693551414427901382627860069910971756977647050756233472610840045385456254293566158425448483277267009243858725021941565668920113964032158494371345101624847587423583770564267122534336299672239431521610462718307540362665272738629499107583017298364478144341702502795534520063768864038531499583202139982933572409664200903094278764853646733569494418909849619725256975203672431007807209412353751537401468133635850872648504829891283854808943171414037754015929409197377705790400505228849254765583567701152799805483698450893530933007428203363934462311224987502070109016377153336481417716086129662339013437952831952430431377775621755301099162955743785321260908437250225276758301105222036403834332339346719904760753322605242203051447739841444599188442025251249847988991225107699116797481640484413431765489251853985132196675669045469016513659984829379823482046412373710094329111928561879373301838728065022757074480664595438152643773274662474705412497687423236296835923851100555102430043706474767506960278804392656518470426549686387611336943386412916888097676059711370490010835418769892070965921292798040407302655799495977218105875706846209688408902276294525197283017134586145730500906019403045000761463868529407295546556941343614276474127579472944622662949388824214459628703422980668154695039016095419682468684128179451644468582116936669684972228257997950181910908119463741820851606327440687730372568248693347265423211447004629864059940012649755513633781748147415904553161435672760528004096455223829548622280268250130094714406950413019884910206443438997540749798186703230609280647663079449026311395664421928861688248339847208746781604521417198980463097097111302760132357029086562047169837052424503500618224181221724781177204630643399119610697054829645735468358904407392102395561446893823298868560512767844497463199432738195954273591369838512381807319108773214810914950842898475941939153893991994768498457408570292887665901374132269999371694014426086798527719538898013024725641695917944999290733505668177151831075884543371572466837059955621916017559077358964620262230379715430335993370442723632652133547532581127118397017936336713067521241593177130737485631457912997646176817728415639762768761759467994434075345472046096072739180608583444995406754856091312859252566726618713492099377162760593055067543820433885194535171973803701152010838008064078115427782860931972062244288849657370241087113266222850224566758800067948325032329472768109317668665012238468736782318573503803492919031309446037932931090927993493263478897120068716609367255421058659705366238810987115288531524947724478700197072381253637556989083873816999282364803995455757435678896617189867642373798714382766851528300608604335166445700298923709668677154545605328657206813540015196471564497046239611721291637345936085632461597370907014818239149281929905133628144554914611919031980765064445664402221357128617719086793605917152015351394522617880541226632244418094336989203983306874351848790823077045025414583194581173421019039804583889424364545565981744839557650434777052766051115076898055315019549608389080633838466169387522789268786940097049439907379046796232401501881992728476322913957100108286063135100654866642118711997351986861068536219193073006378189568590540124311655674202477984253742998575283148486458135576508515436758687892973881676207762717427980713572072386551445307042442784689174843798880190962733478217513798158217871527475735230729460932076909811660080826981410926888746303655405236795270129194669477916209528842446897855323341298052840250277514955719744623852939284442781600098026370646984976448379628072685057842620268466224162944574841776577324130050537709840051872086127278981820165081868122069836337261185167419175190159445916252092974548023389117196755910746821234030002499874146514673669459957373537593477677855340148854284841345014754974514679692850318520453254655439783482415293973481033826875315305034959158111261401240896435436184903789983315022456173657876482282556535288250838127879142460627859289168409090550420337918712247291912391396706429659059285719324710899467491497160242077603766267759540046450769678429757016396044082824301811965210552143630549294524727782150944634072248939419595808577144109705768832268854714302439337059194205444046575403159550338680556756078001274640920146061437062613241340467038399953826591952304637948325942635800815876600629958387284804734586746008438742431377351090682976535863639044077756473183176915784357778122797564491497084138465878374701217888912967104588595986545752006074007404646221200508560874566641110322281554541520031303073275534225680470938007581202200292835514596230146546924374838280407666636349489550986278612359207537865877916432720465582770358851624470417192410810660243389228761397308787726451873629367584873425218535700402823070270364732245751353883233328853649549294981164502668856502556923887937255456097517163270895860099853030566209603620721331555140162183666359531027937293044667277470152353719166661433987199100768532198608031366870332502829515926613593409454145015604084189390745671932186764135801407484221219282949242247365338156029968549223593699161538829785873692019296638531557256400087478539385678862684916806557038986840191486760134897729135750514550607251967736705858832269004550023384441762696251751479254447457929949162477977187253065019568228335846911374116796946256039640204245422793495111211341345064369243016293088381155961444468233245884940974952679142367869677986843057663394402567957296562956919233407605205188294792829348218588840287408879114474861614724584353033455511545846090104566338297546636013061207318202611857998438184052330050315267239640674614748180014515452927107035724148390510127742861292147853504410565663990584611734592216320363408864020940945312509529311569773707351676190027288080328599180432374031177846458771358027868202064892869983741017140341278892959255230144108483205082766575246030354615778233441335853326210478289734672052725546296476565754275685740501889502218972498863930650481949999962589061142243792202636940226587650279261586252600003772339548717991119780257358803845827092063193507998168893134451806451530140154214712901714830127586129934739023251706481288012854134676188418142670582742559319800244051133982404856954752562868544323624034553033019607054941022737282534882171131177564277419952454118282474980857390193440457558514177164590613442613231923915738101591858827107503209404525691364822707602310584518416450085133782111767408518407406610087294753562268959374674642464806374298288808119525821748653628154774511634284775495888742021440144301767632929079932445202813521065378765551050443706061032722971696141528765545371007073206582914345082561440790318210526827152578122667284463388445556925285162827321989560936925939655453131108651367282589820413472691531719602395507260308067380836521330807268458861043859660312177154160467038850031469063079914664177996381683462851750879552844126382907637231333842344035845104398772236799975592023218689490302524857074901718415418764198336581250591611368682956605329743568527760189284898687067500698723261994000345976900786746342186721600335520003730921200003781561514309650640151314284301941234025370663510941225547383566185529530539694281581882041976208761610301331713371146784004300923749791937851773662346287950325370474374921586677838404125791366980705801115952991942604854749836245526490806271068657380092698957715506639424372470447154421533322840394013819733857910053097824125150857308772887334775064168178085759363205826968058563215764636597919588127870650160103164966235793647306070748038469810363574610558489228319745599166898466309227280569314730977599691934530262374246340195330589796681526825236935657198087869022216760588892484846652251400034351444818256424806805298751111982118872429491943037545668347537788654994693244358471674672407519998497290166013586337849363792360726598790134911245629039152999935268647221093845380603871657322761351390696770497663280497744475355916508357563723214224531853527389077058008798610291224495843189138350823365699023935021425766873842140504147434847110401405192280508596476433344595153399567481946035202662695115517908851992983752809684591104868794395996786680327823033298056841985493091822579852097081197383616361100555225364808121207815655410112785344170987947230608222060167790064066769653659343862572188199882144662727762768316445443519601710462561636379513881081910824372226099037085445270261053475688139145182437340879473074805206328886865728288848951461587469740796739959940934746175998067590920694885375865614201242356214489546777201669076064052668534240544725321969834729368322358031857580993256525489455651397432887113755143180523790947334304347363322192286868542499595611145253931609608700639453441406186997884161581332082300426529407492879855929876086194131619238439284592597882719481714694104863003936752472010908482995700023759322719169966377381650648460958035052567338382342867635960805276417247197804269950740503561412113114452734760816757363703958202385616266866741510843526853694490237903669253501838823519691616571446481041762450863861293934105839823730411069395971881976788140328339277731803709808920512730556578081858669105992269235671323043983145113701358479949680526040207241625443120725902366939977013198946558307263173292200818580388636922762186067276054225488944472926353833232992707863625038607618726872340154898824223771910356142944559891512564684389885365178848566512696741998762558685347283412685654816439044613265478267014531177259322201467558941182609742140436728634576833578962692944420478642649673531851418825188323431666445997266692035361881205277185411333998854609648199764654987566735156920618486710914136144801869214955437205282453221543049475609683935553253493614800868645207856498070560982747169513007171674226171817290310439226990054331094254746970049776685999002931231297705323887901823669852563488899957251294885620140129135739686376616910581458054283424082339749919854731893953145618356730534660675899582606244721574095525061262417697869845428335099411850150227671526299972091636176334106937566508253456413844827996484373053410396832391552339405906898307183675861833554093628160556104908387295271593344807868825627109793729860517455338896396187902869111125540664929847181048444047075313151919113807363384152815094605796219846212015456246004396499187367706457777025239520221852097528635068996657353089401054171129421493617228574102641109146085441123105313666663561493920141061116872837306949209256112959276730467005684141481783550809367320190719185243516036209039078135975955658319514419669716215957274089759108644656939688902219139862289155257489378546287458956356637362736348301402047211370746057562283495487631729284403803051423753422571753441466374837891106664027420421918325357889991101947760750482351178928427520383395711135014157220767060498096680486149678993500465182954404048907344886021608381184206359785977277973484674072602230315795432900329012914481086145193967644988980977335912997960363630731236269552211425280278956167766960080584434896171925158131512658299119456800598048877735793072781636631470881420791934552157905335052148941399567301785912499703238563597103314440963289065715961543081300003471259028797811744774496143938328614893789512448225647079403100698800033215787584166827473770164044036729084981486618320107023328870870618431869840083188722823537908730515905767434098687397834997991135172891505192464941718048197900376668969692544824626326586636420154169458208863503503600322814778959425195784740029221974429083230308000844747463097020940493685870938990080598895198780948505282777756607682842302131058846381159976424651945303343167904983375775348139015210644682715108767190945135102717903177181329495311534844807901882441065338926596167008455606423383613936867316726905302557818382081280840127943768923713975551375087091340264624765289505290297526142965121329836259318777515992687828835290339697650545352033652038989119778373794856543099899246997165581026665191473680106159990944501906374130788445242138005047724133760711269617426809240719676669336137455610222246923661985996780146261854652044323779286954546242639153297464847028865698739496378685160761794726098389869602152456963779206016449822390630499398620390036518720790661379109826443351938239146661120259493078755310729248563133079032800516910572469620402518529675986388307445734727287464665427278555418186528181737261468645536627527103762495644983545024663538768184756594631625807745537234782888073350296308883756108956437010151429586568239779548088505173972515073906824871548443757510311061092965304096336322737711603529904772587334687028251854819510319792387771225668209456609537701742518301122846078565527661217019471873718446703788439953056253784397680184946544205416776468647606586416346772425396861944949602051004142100920264349157088166944019888487336419740977116770165551776756290748514852083781743002599000511353980058265170141975859021986969284369441082867961946618434183966983391769318511292527328832450904160374309115407272789634960382424441094674291828003881287763490110458820137758775053433924005449855917290031322528818279005267528819119254266850514425935166394877736520381291184784295089894677035550310379365622639595152367491818885463714068358825271568287861121759228431614726325536877415783542858839240822525883677302209430224294116389146924656397418979893990400310177051030777644797312002067822992846770428943118829382901485899560986293555295972623854266830456754612412776778636299404730503734937171942654508728471862354737337418400798339252101630413871929107741996295123370095604839949409342379149533176751311793657906324534287886649046552640983302028065531298492615560286760598745889218448135579042736460621130150263838784890051218870716887493227678998870261272994627278799473105599060779523358689026177990503608661223903782889864899715799040277371711918968849981735859515042731005747414899875446323808007511824051815771347352625493279834247104396875227776660495267378148496493103998721421056463926910997669959185106707484220081217223286150213398757960576718180197502557377545754214938198731463856676149867078754031012537824956337320518669748129794277836849646458457267647640850467977920932400253095919725226848754124863266821367022922391731225347392931895966420232741062015306264305157754865309841436788131673091215928482171331376557146186087257389308543584873558487558286133630764895010572776367993654157088330199369312937974823856064523717443274070207132590673556181734075010792254922071874038140843488928539574028098353819801555066202864223692421799148994858735025436058241528521847210713151311317798960361184214693179063805996541370435889883265641018169762093821929767858937862701573426598613559418338993667719057198977213561586144847937221249471575700981527233942628900766707309985185373941644859250717459288359643756093456094565857947643575242294438731672612609689743926978773130262292736850579926023305643093163240715557855745361835027294974588920826421548748153499050588598288295666178444634188157985501738138201444489737613199226646533804899047270811924869889985675830517915152563034412869031154395696626745235752008148618364078339327882523850341445057179435999177236264359432636506130637166382878616594034320471483415537347494133299707277796521790049279281087061439193188458722712210560512183045480988494379466850835582162935062019630217501823791527161722049474051026656707391830953192169318763810524931151991020634685816258257656977136839816500802268015421567421111845921953869311797476578661043454811803223152912588596026715346867889633935235199318933630291874983485665441852425357706933368295326840562247941773072317468389935783983214646475094460473849131096837996016296159602654678912435363443332594574484829627260600159526101675135199674907758945215358243133794550319370302962132634768083628302081917914473721591751259662711024060249839620358079602883793395140226202153144051324509496929244112905920986826985283626575780603794967571293510000992439762207041277483728817045109195865051803168640758892976611238930826255560097981596961039157807831847738961820862821210252902098267663048917775643810356243516891176890974210337237425688105710323328935408536424827997208457613104675111218113402186570952651146129425130530020950385678478070275761406421753717090901548064627047751412131456311745239375328448723852322285056080446023512339622032454737438038811764638669598002935533609498456627376060296670392913052111928344727690147307128047847270545215081181039520668686991295915318694203554036789812349833282373231121772006769392023792438233008810261160135214586758907306422618331145275422321699509493739277600295988716485054206855535122434857779994037020895367384594634323739724418278617264479477078794659301753693449260136660177007360538065153688338545569000539853047340322001722873946594746780749851801954549829939444344559587016944031279374678616503551870867072474377192937319153390069929881159941662326745526607918409294360911691230187021510825079401294972408143267938996006598649656725561219634470836294030450590998213347070677211229173292912344206444782593361761466889045749730751774304568218448465524042966670042179194757119727556065999412098800902826513744998696209878828010668070927259400956433389850381611027225484904740511849559960801831946668915414862714136999048761712354627677544122689103239893986409750105570222729658921763396185832288399732016153092847308326872541874307801638300934363703969442699072251542217904042787449634918547340055619956651951789611665565691211111714797495524555218065274517285144644580770513461426884130390315089359634322340955320031264682209220334321745173110462000458817931288157720452183165081999876429371761132269105125249245248782911053783923150208422205341043910490969803833259142442519821078491866189434057911214440704826792277289021881877283814113774366041716566842511092717214896948265446976149680137518412978022227875794486216277399928856427361043394903225526689671169697425063690531107057118190417924567935825369049516547733260781276653461002648988608916273903677199031127044317408595332356206147713279703277452894676923082320280998502791304478301265366839992056370006539801574494549450035779578465108925641460808151677288933584212895834434033558437080665302040193597223175046857478066414274017067413051800854943061136401142579265483952359890897064224321348609367240960129902901885925979652243475453963256364664332073083347328016139786861083041760423059303789530742147295354056748288203133944050072798592403892949162312645561326651263839867581397160846630783270941176436227424739982985224232660143132742147292032326951889142922316191548385213003068364137682152464970875416510745149064931939548054421529514080584921528340010276218119977861697160745901885739675956637423048498478098597417026095084259108666153469093499792663374389381575858761726880025503575131865174912256379059282021181447368157616956913948990211952807604667582823952702039349360039400116142396133827049847217800960306819861031520866438987262834012241044349688550247115657101899078057125562627466011786597850980851044763873043382714582535759396932540061360611624331211268280562509649636719656692712226410057299251676665797735795298340564729465852248675718415160562810671697396658824317081628783399684194339658474549842618139028091857272582138420789406229588652589168269929609278663125955207492964039375952723396834943038966538900560905461567392334311285020108273883298789912119636763829950454746562420980758819756240763070383128774166103378159292391581611102060117395350883799263210433823267156285786637032458259742514383366891263651239569393466643254108870832665792816515884249172948096367061054653507183531218447466515421713504705571995372835127378615261306499506667800527345835466170991496867105325965776698657320464530485703953399576414463180691957226608471866815650824686050955403305488827397614528356997692498757018739626671448985419919757902759011661457864986489853902661948155759099031141478896331731484388506557582355085738422830135329388793132014999739983570899224271368444618662010912258807989599773885591619212156961350907451888583678582947694445965401356907660139136017996465832657084347005773034504660661440139747741747582855342324369454576011673669028866701165065124152145761471067377873665249943847754325585209573946730106844399756357029793732599184930019318615951927026971152279808218243927042606490843377790769517197596402314431753944090826765107007461509096816655456366910987204868474160439471503769282923148113281870250004407974892879930149299721377512041356266937527555866481960065580426908886076538421217153598508991993723792581474153956218839344683663191279773973492823203725282717880367730599953646202219302791636683723505431513624963505867583905291867199510255407981849483181501479964012720342471819235744794392495145469432754183131316967254841162781425220150406213218032990980203663587286676452509610500984334288929972558020854722616834029359877813914751241004528565564733487843131458456895706785052765702616823852117988854037851633784321298295790591179343434731061273686179515648816944533314099609323063637008795321003883709940482864450322799555839132924307258728298547564777422382703842167594191951825290265330520275401926151327865373280089393962345192510311624712216908205223230471303698880349430230936625721945000806436772762685528278111968171868370859258135070388980166248772364176624721295293746286603029539806393870697574225592157798233788387552569147160512147712327258910802193375813015363810339010248741401636886891701979680923745722137730756499479270777132347629176184098870990184707802525062749702338843308432101856995698702827618345378503276603041258094983587869689513348127525979770770725119112699352428510635019666592273537482921418174647530235110085221853889625224984786382213925066640608963733950639464254707152900787643094565144018428611176046346660574481754337262738151410599102429278954209890924233260442266423159417721597748592627676911243806178619276499668447646696637660085520784636721240063972861403913914077110660711180730475145806622071625693604762382225001536715087720251494310778816739541885673890037241398596279576203136088454788623034740453094011869424213189933929001083399603306948546911851229715250733677603605975538732507044276881880554381840155305704885742503413596594884902355607431480567056850365490213961632691641244285216928607805127540242472703875372470438776864315960820575264901044741465352619133543705348315657216505531666003092865550433839423466861512595188180099304768726276793344697048341390237857746953208810531859257621149553694635521798744753319238825443749482481622731324673262851020095905076967998158509517169446425374796293353121193300260080374573894161560850433975798569428074009083426129981862006985121917692616425140503854935780760843568167484114665577867066664704833354060033090210411100521721416538075091232205911300205397942217746800665748042970679589440661912281966919051836632519676863853910721342159528217877022346562721260265232397204232970948869156053355007142191671923360704568418803628661190503655923177217324430061100537001678348036966329040774064004944018464089844675708716841516263678506469326031208859851592504578777605597012526649803710025402736635905429753004351973183368383474979223655495354968595569510701837550000225625194259630457338815403326238063710865644785036217733341211364693598906706861579517886177810645467735894987440653404238671466502955428930892152013152683596142893056845557631806282591632623503137475709716426393605870939966991276306287872291718789996461173161597266897244235007332589715213305917852538372827606245813709702853251512778286458572813956069993632904015644536022731829660190022266187763407621721391359253074085273614233836405697231564703003209972129084339152168616811300129737994638449897594287063956657912697160555449141542934157113843459498951586541439217112605017307029786171200825119706410972788689284624228373192352373633529835456680506189433993564734454626035848777757401648135295530874559273295348974850456413445648364208406079617392005272135052776591298574074573881167722002317709035774718685054393889842258110156991782549458925653768824470212447020583307786353601956517202975044576825793191784934922793137431866946432273145508947829585607543281551913064191305466607468406723210758660559075526264128458074430684317909038423862523823527539199779787254446743803980884874641401602254801493800864967044906670778779743087566381325945567944071555315817027555499999911398935471788970736829459566542776790350418830864720390385977454251469882788390927322926976622815518007797047430484094434274277231762090802221553254310094788175441286881258477998476105551797829175350327333293382693065160950258022254536233329079052569895883742896881769465520810357876376724734287275243893708499205544123575493801391314908928819929527812647208818311158518574072074553296081325150249009692691539217570452637749054940557361179520201357925019226152397773576502029570168028486531461774063847518637052854557300925002717785842630375571146987492124160638572984310534472369589602431644337182916067290160818253657467987917031504176707912562039989718850724782089671425965885669191963677111999157524393294508772559516802320090840297264599017778776626128251770738734661020932025729230804020792639662670956951574738480161901813767542152971845515506228087338742939514320898477063408467342299751268192329714384426117771528438357704020762032613845496252875352027347141619035048948597066751421085315754861330440558498697028864525653142441820289439112940765556341717136298134884953359968745612470714572827777511085896076342986801634795978453058869389207049879641446757575804258596361701517840157125323089223194378465690774317843307256869101566251463259745119012754544692240791673988347546567186551002400611413006253667625040170825568771804582232601363994007433277273497910313471795159950417680326330757627202536245015362768267330903949119220866572429889210556463054620670256757207137216946587371023245537429797897718071267842434468887805015229410013871280005707924772500375506320744522665863417077466602785566611550894625479023723729452947006986644039321213593172794762116814969232982903346989314298867791362324278903575472876286200169579662185837682740522851478941250003773074462681990559268560394766774065244538495109285588884182767752777405858655100568397202157823054062182607746799866862776363898756954940544180071344073307385210044248681184952003723679177980432037762383148300444313927920623446331369731733506611442102021444712874218416293626535137391912633399251069364332706590755149349077099961734635810155171049838646843056590387742965616918904785768523838982047029404670925545355098272567834633279878903682033024925620934860072958002811467758242954618764363223845967566446965787160282697592148906040521517997938281319993638881300515199948405741423390070183661269519595011155254410082482933511884729607538481163894462712275280741922552960181388849344393802018397144559240943873757001082208448200141386780785505519029212280530076722350740513545031646721570133655867608648479621872047296326428594817787032295874508734491268849090414561758295710136898752117014014907134123029786180256542021569717766316215235470690728667455380373543132610917020161884919781307484101710270878213987208341067491657067828362170691562836023371014335212301571779146170800569600196508561495713500676238921382747000259079398897485341191222527155472853913419164205428454919466221345149625854315724500355040327631653012882905946168655565968389253692743400330616555876108910597615781828333350343539262893405046868909372882358245617679518427092422569878436185544165960062489218027391424956680400668586582841677315541565986074324900171753625894428586190517827782570999390439488277838043771678202945120646071354681138362214339807372902859185501520421223966198087438753658455585858869695179111506053071985601138605818492342983694294251865144204705074203188493158590912620690205069666139355331268869429631687026902063113025566175454051304026376766897410059638795005090439558113591459704068933067090099767973119882441188682659660703048109228373477273796143439368039405571821831633650486543036060393846378836563236702256812141848306390055104239980474511852651516859825081385668827777917661721772068149459483351613808518039440027121015536441376190692424304853629401147489238065831413197110450509211331223797935178643466398167515498825970020678752555525765718186579484082375008107780783552884952755758467176098657020038650591135956098651748756352149666117612220628461387876118652536583550881301578366770405353297526451932156197225795965199616629162053458194690665958670521976632554637340594471570866178452349976176871143066257227929576365671935389660470449012735525481822969881198746623815093623209412728585935652045650988442852487815201605406904175312262969180572374627831535210390054309216770330473648829801346131887020567789450236057663507467789628238496726933397706612214120885461848801944322904761866770866762766206207585350094603383429810830769471577764690160845194548543827670238350024975617070354504618631232653472929544011967172159710454878705411466311858117552241094521250666314439199191399113431535558469236589732929315308309734613633466696504670451966766737566048145816708417003868159435947807499520510767477472967682213672843603929184903683919900177592390436490208272053593893635338360249684383322357531520678304466356004529629410062022112332854942195406096882304415723084613277655678446398798259822469387023494125343765899215245541477521652785497050678274372294609848948688066917887362014311928206011973984378038140271716897654690490299773011790959320799312202201333835239162313923722422203149205231220610718493311629288414514199806921410076540715785170428629242986394984556650369011406778816142484777249413503971449846764336641071182836523442144464631029483979124185292392210213087131842299153736319766236428076554145588091902634210469531776717120714356186925598232848471549671753778420502480380852088064053127215520059292082034556493416726511320704609696055161436976146877046851853984489821337360294101839893055111837593326532498354842069683721908075228833393680730132381397890515182969673489150685599294627120696950971266747361069781045722435485828904179208731702244653888374834512254058119372267987587084351279743843742637276050488022364077164175767958609412692173491992449128288489735496094131926596653678463120875579795633982703279962829311942574394161032660070953699794897174903617189243791968587776230672020575174854848649053240015996215942613716377126425762862195667800843979539773870129651734728988881336314507819658713303866416304988274475248920747027588201163929456774363997008559832720676526164771852519761026536273179368866859465270839907463179228945685064356172627127266211050210706097719616451318716608216864029503666434929443363117018264871621210569095441466630843306497363314995770653798125343762510319321159893854380537812027408219661739732294778871913732659846675132442998482007309382184247004965933188829803015400252172676767833327109872233008308633189222956088189227708638851431921775654140673806171352632720144567289226858261369195798891610953288296124234088550118228580277156174957143820452227100666357507616482903284976326534080256155423095456670729036720077253380550811201804932615799786750709166922279938835394114399173631215388434874802850085598463629816638331052009648252087634859250775617033842993817068842947635255674452407937122722974927751954292298585200171231287193780218464701045174935229339987781533589111331021657176245219563231128532215703047763649520654780117876174789700114938292414719825614994289197002319155073001485013517050611621091602589572290417720173990032358384376391240589425980723905562089967115540948987690536577932815477300056257269409871770514639507443148768115936568932126057480982810995587032964877614839217318663265298988293419718848302643952510544776287600395849543100317445181985972294747501469924048645493442557711431200234793539509257857821731628465791496931782644302374854948254551499934498978513943512639630260244344911494069491656317440884646046212944584132533836063081793436016787217898854719020905303430210634486596140977274410115934154942115213234139620820252200909575315812957701272602518940323200736201169194262536840710449228122600560581380416833837908714988868016605114047142891170379949072928298002688110661020005745199993801356651913080787552791371162828199469093353926443175002135855298944379151063138525536723246958792763604070902051837189482728940185480664636563160028574106026833331000342804681475237884894845696874931863679985745226904610153060264380923753760148018857932904922544955298614036353027712926839462111670335001862038934688960506195368755061688235228179164633195469410793847418040885888389920097234546545169825265485257246221987204691933004266694310286785988176518806895497874304191515267566552617491449484447788005506296074219182661088115554380687851078810005474536814202328238351860615988671910794884732852020843735087568294254949104834818693882452893228023413768881174686005582105997665094104907306287393435325706578145494429886058184448329585553420949863001913405950759444229185104887231182109650423555824723018541051139992631875307445279345539547299895920390599799469451935532644115005021998385574383785240521559900761375557001155764624546755446650702318688734602743946392804182002360467973848071314806093341322247417802482022501423105918938284662604717305551529703303668584894999388705512401886027101132200936520673919769194972804228679684369374945408822381104298455714644332618192210893803204376295225867449128934936866792935618093391276673651045685611998707416114853993715124360773707585690080787689045650476292194799976653207848793229197836861445575149009712798539467687556310523652021550408575139919738651806754132147962537440856179128456494383341187081545711754766331025226847148507798122494532055029908788933075556253722971662796389878197581705599935692298741891240961452523480145147838167502761767647882028439067071178560868930095345230927259979096073667635247371691854883738407942791168010618431204450060621033916964520495561139344470509524177075147176615898861226475297153894460346129530970240203826440073138611927496392336716396848433765740286091648689472299169375378687505067284299030557272329092069630774697787924206350161389160529508907658614572834911907998966658005489204511761407314722274898014415666691054914961112883399835833725723486284106693113125959000224008612230033420058676331906009836854995200141924287617611239429705444060330725350277145295424086689285893247161955583151453311696242707264089157610126852233358683879455574286264539108625966060714742135426828887368319999702879586619678144618021746664995965943045852381216737894438650742679704944085277583782794446434487498677043083452984022561191485815513757498238370328356914705820170888368194508311158665782049201423525270483010775568630478230218786586908473591252128908373089539794476813544818130684911780763441994299107363638165711278747643537987094656083552520146345250981386181065832328392157021937206673331121745654391753334636216293981442276720258311066175414767839634118552473305834031990937883655831631667235331080773285335967256676915884958155000703039969019145528475624381243923243361669254143675746161341702170783605363038397962780411036530150637467582159091377559767871547192750787249772733368417793275266258396453390175100334011241333483871998346693769486971576650894722326254513467096533009711676700901254163293147103133297058257972688154641880553538205365908814021481864693138528958060157934628251676265612508044855802309216271593024866350330341391269411664752697137317144722237300241351801626662920637054032366469162342125471200095358794580237019262854442734315714935387133496538625398757016198856902084484446691861953333918074461379297318119388897178514778930593186022935545651389309755694621639501196964180013453204399012193294002966707111474290765386413085395122103596535207629559661582916572521721864571673909061024156245036322220437873188593912792761084872157252752044167900348221401663568805006628030111343853791484106259160714773429006883053080326171384594406060105069957038304535036076997775567458233169730723229209748253441365516977767713110552055224564517773579914172282381188447823459626918993422262338981486737837401218922070020613157036811976324739553231935828637905375974274836407195394775621575764228348508076247459416272853328611483148355207093421264139801836570722997517345264353369065854753979158626277509688792218137465669323238724985314455817100625105319163247574693509281194163731975260543895293063093151913938189063663446267264860037153564582915024646487839635223547959732910256171252500095400293521296834894351012792832158819007952792602185383503693441227650232062997965724217500673421272510631401983028518401012775061001295685011342437326968008821506530300247938128230277402833829646265240173955339547836841118713522626493043611555423233832379132070899384065835090006014983031467987054526467913723251481994921860876927892348691563887370816445936152644343024870285821143557712704660241069461038740952440160325674859750553916378118307161143895316779358225153091466994303186092690719234845426988246807942320949713027091116170329139070732563153410038632228932248992096878862296302441540594727615011587343764443332078074271100704954616183342249035144866081593575987628465878954511125499886169753855320418390183945316427858526687697621005606336971768675607282703014592467272193777679152505243277402048943978740440503954163215523623772359898065574096026551805694496474331992519046157956049275265103923156084351946648085404395548863876709466104245638004115576497843055325849779618877355074702483625664753694635782068413000251912117629766803942238158422874214143386782184162288471963566654922150390177432110546518324042946171790877191165653845782572627984633609041734393987351967248604323762164159879343910109038827686575985187561477647360440714979111842516682145978678522761410541395295878058652713605184867145320178205112578619954497113829244461045874188915211838912748727694169150656451955406184704824055135611298921594429124185715125576233672571724322640156602646487236417398845236189578665166268483001491552873474320364132596148463322239169531215490021002958586749264599475128519880954468183252142816264430749221953048437942825894402278296869190669951684856729347642200998141144713612941142672343058071664982922761851407804397244081137349858629502595583369782203653285213403334834374879678685920770346071546775134275352232560757224855695224920837605850063338944388490000057728185312236886164804732953949703242740432002929520082402481698801378950439142973353570228401117729676119613514822584569178719458019566857406266440497195376781348597704345270077249099407300029939797386264477697273419631446057660302299802327888133601994835690409932151948343964800695017017019232787885517098442427823110972329244477015454271668564218162544252236314105525026893708336501845556370808004670013576764760896879881250637339739200154500222192266497196878674836807857078869916017911873843332340052914453449061590600542626710594098642674516532716328686864164310882577422778588340511106398891983583496115405417412873661533349551737736023028993164535691659095546613561823478283174067193694947876225975551513190395382965418997690613800999019979307504596935732564331007781729111111360079903607180721348911772065613001732348443978595709521664408168528663201209065667162747821586990357810915538319564901437332454593155337182492544206162144932910011325672416305581596475486537931700589498653144980857558981699061498432733781684363276961782106315708995472160249658080923783164635944040704034526844064191420537162332766886760885876816046215062800379819632921351497553968767265323907558528051614943977203021832645795496731287642268894320987138942827680038572181375069275776883336674685328706813780553457776547564829511199475437656327063884200076935499730606367886378454960004059284371633814294474205009616616116267947284764032967912591852181263052174787039966896085428455713417295933786789917917507700192727500410491988873250468274702677399083705972310392554532693119312544573882045143052413050545728805507123871861269454989881949922186625752040213068329469401325526368419132785133371676606286015293347078591952527184697905725649579066484579333598506188197486980764415663414801743347137499203271511266256491612102027388630257528679186901193095550775435743346718119132011661448260944435201424482308332985171363992588819073545979592359063320593694534339797674987684045049878466739115914261790520657865820255150389863631697671242416525022167548100763096314439122463000373568688973872198518801570752297564292110516104843620240977035758034447171570256421798372452838933169526435469208037490831388879705147604308709734151088283950189790968254726487811679594660092810904129284114453677551835428961811831108475955300714084675211452605527475982634171269919503182126699655108593687895781566533655429673235741564078222526747219046595345210589090736471433476551678574322900468087805243834920881003629700889746423702895125958373646542209503893733207059858007219991966147829142967590411829899405232571074456388979663524912567767180236557513790119047868206541843040460445808550695732716391005291398550228048141227729334944415973107646192521548892863054579398787267507249017509668418959402524444574386788560284592882146168905818116814996926430612211601537364075534547197324225243881505232710477171919767920451994326352914730060000367798773383857450486578418268958462232314242632182391985676521911546311808067303775472399220394028248317570279008912854799045743604700016382564285502180378433128093361833843555133917870579440862627234719251671332393064317120221449792586579530815746447018436951854994454367893217012387652950495132380900358904045155155197315000418516227810234294251405065938904302602297238982357769615757039609332100672407634790031918195273666323477986558774793908882523948184358002760497412886177837758437306295855318564472500639152357567603704250131605207504766827340562510187349070524303761954116581850460767814655746798290661383062899673054525003359361306518554944411590808467946938341683191639352325887761587688483075306280009978885052851418675494640576345709674426703371059996216110284770042337921447254442406750501218445668871879651682348870268010195930961381380983545444610329873062493949114983479721685307266490581419338409107551013142111941786110795733981600684660750113995178939778336650360494582640742674932192205394456769940909721890334158263721533084652012796297196577903543486710119316385240761570399711006976838614673277463356238147332369538182186097878549886705069236203973463172973943040382699720167564013805303985352371571406429525432440041326148548074827244788260736047610461343730329958044532303889049879525575967446821834014579806029362137879659031178541380484734571010929252717880521426277664443159201956779825622701026797134995688534716277259554936510802604242102550475739877342194966276916935479774037968954977499999007469715252958817289944360768811214347095120000595180214391145122019194241890753106137882955562774900438507363348929141599711973561548691900668739389451281678446522996485200800977478579347423640608215778789974276314614251953004917283881351301260105666782620819524146281219600210412930309509907360170290027526181760059768072697018386206399154052772511818687806438909807754250586552505765358101428454891645836465352946630466434701226749322703550449865527047254608500317611729891933895298978510509640435427619616221986787868212117617045468762502773041463056822034550303219700089673913677316921981153335303635106779564319267378915581612606953196322365280396159809961106972915758931515565365834257143922235346988023036578907916421797499363961201388301582277681416390466551735481415867039906199982238809931797962994023631528196976650431219520847306115940884420527050761290225471113385460001536636181313568711647512751389755663373797181098021679634043261935628797579362623971258517389600320875265050240511634327525892736121393241152421866623750542428882705795821034230678517766071909831499054167738128293993165122200099805553290923578402057816058870709194791558746405612501654365421388922501316675786601551652133805803075518528724965334937461955822247733651987202998554953245456273574877715052304966083702095445999687823194294102426605622264644602626582904544752094931678624990133862094769650049223475594898611277270231067943961003357278671599767433874300613386530861439951184945980312627438798780570929638852943776867315065489010712758098763466387824209005108302942168467936413068556475924766284861369024425907163558427420532079340755765010380081663503891340891096841036872147445714726144728408184063884003627190662912943565263944233442999007726209685698125483168030503033206533923966240773231821624114463207242780585946537211424436632672468178189458325350417476808485338017406463781680618774222439159841680102686711682908459922028454432457742043528986459643665137106650590640967310516352004383827296342147516769275810454123274032401769429063723182881108290050555188616168145951892484356826163790191964337897673833134096532800360271786393445472321864655631920959235818555221818329469178084848512074977908750135326721680585820581187668460605556932706721049941209484567367796192563674419700674598595138701664500088731917144534403712378927103386428235341501911219737512561972330216108303758789552334615137892320616715753703957644795375315115542449691824842524382461969367354399112006490748771581818796953751965988057431951259482744796635191605535258738959002301949764075869205405346169302509061823137289688291772735772548602022197349683464348660684354040707416117996135397523037779163866812154090536395502076703055491595979146127494709349877500095010013828295983072743061781778366978536868031297921056571917782646066173102524496020761179114138799732588908333264855772092067319867229624182048062799937520190831202527582092137412564840986670332460654148167305871225912149127474640578625077229754809844193915560731226952531179617612959871399522871556952748038715300251137610606735481355733255006914120874275237096860664521721003107081999339421531354661542744576147205291882614844581173311784671540506589273999958281197897473961086353322833395616070224426466728271593735680173097184439024851519570330035462014038390116888142306889356475053262550964839941985319272615241386713931570435745015154107124476528072617341424820107833870935386787835028418936363175002270424661624506555785557393734699723737486539033568828081140651366289353602673900407167095356340546175022467535434545170605914871702991875366704923446414117423992105739702922626404348217880321833577427802586566746822150234019407235812970680937781287858814025239030810068697097549626858867598175655029036577003461105401605946879481786464925079087964731326186022918812721274773257637196272264583285736968958549622330662877305565364897398621745797570884713473508080578050687344316332311111257254377166779392750507760641535996191257949941118991192496668687200138229135142461843213656562308910130587288664655091887832199767592867040341056192180797460905682293556935129777849205232174420038458997627952030442180258477604650804999809656844641447315569734137640574080887202138476584946475117077518094182089505141651826951150966207769663615049844597146336135941343043352967836036818322146261429059017381531058348507831164269934648248412751383462795712995578675750321327838045197614401589764272256368244421159870293854412121600798753449702965337996713102278315845032537752818006023619409441366989622408373964388882475804666373737380108227922119719090635849664241773570160135825914226360238056394423725962438231062265205675918506403746114794874396552310673629606998318475561321381059745077606873070872691511062603557079891406213771688794419771901772578844220400604498798940325413287665299463143076012457448891009245390158557265651776868331896925681996204082591218599358315908835785694580737695747524118927625514812775541903291514424160837670412041007988758011683403604902553382873096884574116731399533491735022090178272036766595288502578002344356006576853394962751986474530430476024704625250620121802633930077922230299363400997946503517192174371773344029122396472929624452554844754619882833879235887930713709724580963428226907874054409130592842417735758761469511101425408851731828881723878596303478299250620077695465445269612193243696067311323905428383397489759327631007295720516836164407784367637952810215932632838218190264785112927087027420493040292270324628015385233858588181977693932853197032928629085826224929661564083092261424757731824236026361498110624092373243217997479297600845395164324115776360472562249494503414200208004852797250726238631258070933921942541887830269685175852871208206832968474539746527983029514733651305578210811874566796991718775759432220199670700944022492494273432972079894458950376540356833094287483476835788574888394831776683390727822183601390962567469848267943340839962425863977266247281303977717781081360181981457601949829094378127799601793559388447701307598574379490548671485950573655538513217725645844584583763932428467777813654365407515734707266382250244798990610869222184770364036740532928013621794614093475930988446286620412085094939626915059767911744002505053333769494209297567056594843899406303113631908811459868629574966252342809677162434814068591176982094700021660558350553594774757387273144448304975784466412668555798646695225348827972634390009544504961867649450592108520353552323614525076194048000458015587076782120723993044658688837568386582405262151007275838714301702992126388721038120838579607134617223206147159661646676554078496105657129410248541442427765369586440078726884614968809548817415042947028533644831890891739188844466691222179655651121970761826878554774697832461581033901120376581172112478132496740755735918352594814731104591964415337878272074136142729333045461113205809211559305861849098488613579610663765775349528812653801930051751322399479400229409685023585719521106712996903420823428561968922721385083531975659972607019776430898505735022964381120555139061308656201282488218651807716422398260326903380943636571220263356655291127938892971578351916259486587295550781654637875504303345179416893701218750431173030687950564403126233212277374669570000047012898739409409040505183412332081743550722916670493174315355973852123281882837944439624772888582531805553165217146779186044436208495916705838882472094361257495827646764426820289037422410562383790444368048014311702633755711939548605470653733761422270167521092622549850884285574912761985306016979403795332559129389953829748585586897525293147325882957280838373833449006130113701186492538866590263806771392560216911883265170569766988894713128238827611067141784409558050266828819872894303529337096067694992989502330074208528143115449565693685145040011352714375852446256961427536194019645554100741980346187854404760860094800530580485260752988322372278409676752299343914109099410608232353788012286816688710275009259768307971707054542459375767735695703256951668321212416893031135207326700959089952462188258828124873963692918610587241980712736882800001334073902351564592438782709580451107027193682308073403698719849447490357123650475325476548879232090160718890877548874832968382481885034688705549330269975153072294611773856707872369381678389580129967842599024634505936188608115291810656265375800778957311433030833145815819847297797218323565130444428934875598121756923197684447622623146902008509267581441247006505610090802078365953011563394940315106200748276252276540796581637592534938453190429438886901493811426836876182721713081499778489303485573353126288354534953481127378817987822612606534623526908894699810664715054748754220912475084018787719089012389585078774859691663470085077225214338355988884852243592176087653205341783093356288320233009434448306665820026352029131107511956466635347339492204456192981553678992664379056442826441575658041205556795369526556530065198952678689774660552398204947466434098796468114802641785919411923337536384284195929439246242930174267036457184332558301998378924411644381902258949364506977867544124749743314918105632766945989444523726467799294860659985456911688228114212878402703724796214203093559869906487261906452971090022544814369273704059487733251814314778500237830792793895101971057330619395162238550672901315834388952210669845044009330916728163265447933690045126211731117168497290822428557378097642163564217675756116587535766351059213074010533027016584305711905398875154065700462348418490436487272858921072211883419092555450178884972006716001638678537519024375244776890457277423309023881855639163847425867475080012874774125861937434007354588295164467833927225365024728792209170635408447645210201854558302545617882919559462736580748555830058922770111424765741773237157443400408692020466602118902298123858101463849037581072272278835415121266372474405031491692953500209130647924101037845113647424251058594568429970419897533694482004058624683145959884567452418392068556679109824113591289971729678520662923558171593197167097529281856427565177950724230932766282147611191328999193466223062121558450490993476221360407555353101177333474096313362302452518650751836131648077509853607310684944753982198365722846985502496505191261607856784062398383800529890631046173784292859116697675745402661817467729139047695928992859242499834898359177758383283983075025006655856984896250471619618440190891628576435619517758476207836689430850098445016435005749470107797049217617785062332890748371278492297819522502763323701647683176655958725567048209874214970248930049452176583515068412906876648519876525847467148746924851120341452311899995977545370694511279100817978384039704255965388680659629650254932590872841298202881372661106811612407905840731218867409216488924342541180976234446865052171692565074983389646773411728407110388305361115042893831215911434523168252490842422370534306117404204583236968894860464591682323030312109229397742739410384332360782773705323117657152099099034659343702045216825275121325426665927969293891739077398779512976733272569329349845379148335811168806276785383861755512315590402415643637548085546896610313624322785540560086041705477254681449838805460442989378997475995336427178756576759322839451148362432683175778562809700281674496649950076515754504623737213951146453150136483811104279209951607753948181110460914693466103344429021640645852965366611012377305480779829334722842377174406311499081331784448256904610202855146616913144954076847492613863564189327189242927197427275827518809859551158699715143397930759736818044112388032429460820368389018753147852590285859829344796012317399768055848170824429358150530184158716905000379096960005617841619972209748086459961806384772916279930166213740083318313380096249818105315539426750005600839581977398126114966648361295785878638593642868496732371751734210820901178502127479387647916705420759852557774807165617918126854388276384654566144988707253163369339886349129384780321799686022786667741170284766931639382197620540802662544779181503335635951069784990211066753480882341759257589275369997890097701275677650867359230585708803481511855305489424996072623116349125094158526827919855085383925922656068297757532523575329871135243416105315026308206443911682435777116269551524971692175671493726236395455141111083359695605954607005231123785722749981169895814021463754504185339110768563935827651828509632623585041479763475247300553013770820892025256469998566629281202734250744675473643886516339157791438305841859044026491656549197335245621152623063320293828436227806887312891469457170481036715822925788547805621111717060629553512100959532844830443854640721841177332730773272653784731827940182403256487331526749183603439762950306927968749395898212868561718138665092765880485139538136367902978202395157181865421901711196867963188950504053823090500782793213932954361951410988530429138309103178312786770669398721273449909664894310652603060405462364920966627035180904239632462736625224424849596221062776133398772365759883607044956817285692319326596200427507761982113846698733071091048388705044549188757615542057800391974637511985466009455990470599239510792752925564993322381988235046059206356968307663643686565995297547464097203574489772774797756875775774057300112567776364376700524564903227340257753624910732288607120475098667035103275291466261197120209950765157962539107510707147777558085293456535919535528299262723523040322082313880240338375341150580094411411938466591088107438400739903385353440944748062245807362839307883249759374415254533539459947931590695732912003974211896950534497686497711538851027904277726478453017053394757099194740048950678237360041701493611083943755042727667971300929756512746609528640998589953054317387132736827512004471048755546025134961614552160501796920314881429105077466573392455135143261913386361094305690769129948259130652085346424020671866759757364021337913711933666316826962497968714352604768843927285160337809822747253012880581597197448366532368847921962270055579637294402814297651811444419123077601036173255179076240226152564365350281385822824054124633243627213619891947721400674050112946333105864467295535774538239783325460230585656189102377938878975728324916772111264004598932737977936054219481623011329925238615363932874199689417834184630034917720809705862038205740040148796035393128602693362488376341664585086322524559149152617422209629602820988933002186879120598196566406584951290577495984449142723895875957405711031381411601106319154837977089907301904374794823849711937881061622967980835946352582854234753615427503539055441710090634218116964469497041410768632946838372987662635730124229916469301763612767592737417606793474907438986125869985714397720093032432484624265369242249465954560605730504524079222774517816736600827060553785656787765640895758181796802196216634051858508721099593899475133467390780614349834705216248455668730308520436454729220563930920569575250080318383452015748556892507008561318724471905279924459736228740373482885534434377738897161813575356774137637048163343540302849540237045609397314287036272715443880037000415890506611800079668290830563691256441810727085898063976434851432248453163325242410945548501451971451976146950211299969023502883025232566066973855399971083352960280044384541542599644712318182516293403918400704718556421349040916510216134140336075921847767510440379978706651792419000867946716685610497433269168171055811450905046400266314559484968225195684584140453774818496584487136630180940474527297713916945697552207828675392211955283062154981501113533938118993073197991617668819332858469606484031017302537928222050309576850821670007061046892376515945334021111226049035579745379263256799530890009162077946281944808519564093437728976872672266140390053437635272430250344892624844980357762702047776204676694326929203374212468317216110603413145418367009918435557494200514354072893079777836492807051622764362245356951102159323632060923484236637537493823435679977326091466485041029747627278585201410461996231313256591619703950932074073844266851646206987390268156590914105802650690669386883110195372599415725942220079185672464141767422895772249310043275718118820825214720810438569164924104326240416258699736440211871335017531276781203728167280510213688663738798589924429816348511784776391203845565876857648196969884795073700520829967102261129021816981216922695249766569383450960478649773212141793329495326767536166402014693610407973530032594792961587401914810956448712630427054020359157457930297588421341819845456580864947359882841819810905382123349162171516697715089347216957562357077642530202063971381275568187502329143821781522807074077910710007948816771806647160521999267950738127468479420213583483733044647616043146155371960219587541997972262542330467822549362633143375184171253311119401408971904882942955856423056500804637491425504193703664730092717726533669753461303872731531376998404178484320131039427254073128129818160414424420495760434774498843605368280317600288414114706000947350212887533134201448681382263779577904657767329612388055797096584067222509398121216260433337378511831275021175914862026572431171363390896725315661288627774353991405985175186201206386022117501583650785636241007677733947935768923386533117667119559156813842251984574783737579247327137447478313624223638420294415193409795790074344714514611613372073648367338358911640538456064938532084591017325075615653500809660680434264116914863139820052213561075820285861320337000663838866895367420577875714053077980307523053092738848071151228127207029482720492539736289766511255386781736293128620356957675696748151469776746485049265339920525796857253410958619461879100927938727893449214792367100311703772486510745228817051871378812812108980009198154480819159880667757393688359227912551073216124676270561916079194670689283247357696056827835193836736326182334953804354706906881180859928927294011151675013661265649244604549027515579917886626237284654801198021530742261433221367230035477699137626260983913768111793645745850937591788129951272242634463738149824695007230910776610871431482745061358095158099327793856985177053766442548367464127914676609862982088266328278784016882066365170510548015547925602371830795293372229714641293057323662608900066249205726211766409537369786842646236298945188810361167441413770396133107886742593783995544468652114776118381083995400546788425674112768954931971203710607714357246222175979826020466306015627742183830545618695250328346049448516463965118700706780265296783211715872290840692833160981027243134883139279435994635698056175135461422633949581390494325264170964466315316268450416733952921033562906346596490500220352353352309675114966721648795855230544662311741362850941092065722024620637750024350728664186563509711758684962073088723984807216350037583061195248443125540977663964471133907484271171045374290933271911769363749160093197786999796193002846747864038661692257367251639878324531998802568401727162462165865629217193065122663805749969261069106732948864225483677268745951978517870472090641560083260774925735071110224857818650870161388193922679083818965786518184525855484069993917911542292424352216984336331391208248869437671017832586897338161952624166410324337479712056630277398109007779010936567296556279022113932386324825985894606175698104363915859641036190065241015748189431748812495265027461610674333558060440660330254857390788218869112431573974201278124522649619415665203701330879763525319376074667343181336305850977158830304751909366189560590433087999543388560623072693679453159330837685507724758638369020360785447474145478845295553765797110182029546668352830597840727280242830326020859300937079264969898693965592365856570040317231444130761063583633952030385433262959885140635060426127843855976425029295704581415366858290938966741445104055549887525025396309459295874123649558327697951852077146950665480573207960772383163014889789632013871041864375401078361211391499733869234757954751359862381613174109866754846382413581131738771593471757188742296360013690948185148497948364696867899311148176714632952264627514616572355280481966864758291121102776929428494795903599609403477690801080217877209615831351260477448447508801296469877262562721182108657059244535357079935191821563088537074548166643518616835852843750971603925132214444614022139821046900826338954681453870271651311713116416196983737372282125341357213782838141293386234009343644489281604811781883722342647119401520906103862182723112596154156694504720485908322108833406086468435855845282941553659688649477589750193985574643601619808345058126786539518359946660498216343407451323191689684306036112271595290115987314807335228416837558864844873674787239590137823534190950312446449252157113858166283608729700995197674790619147995803444942707868623501058652090845989389831037820390870627853461011054061353779362537473302187035708973416820100059154761287963155291015665360498174198741638774660066207073638561015258225211580776080587762662006830828252313416072250814174073519771780926453929772301079583510981036025505927969045159844917796313037895627618013680797383083207382498018825686506797449126763826026475194110559155691031304508817394851026609421433732229314268844371128339235277735303674600941376904800974127867498699918911620861780776173593309038204758213113143906409399559303323782785880354786383882551347587247642595439944094931296899775447667590788906824134544238031684208016625054087703027933135626278220428981461830270678807201456453389981261226568389004795776925544566566374451054465946976132497199972443117702252279906558545657108582193683586219954404913900561199622054467444170328650162635506990842807932944749081005487955340716253460874841318628140864276338942510030451656708509433538633710557236565369327131492334462729724852535883881912636963625298852366835581661283469607536392154324461658252991536359855661526982313946137566909574872198218601470950907739491577109083407024063227685533036547937093729912629360594409101051519509128930369131989783568179371127930956102147531581904370436429895768882778095018351051500928544113510198410083547964998556945006207886570154860262233773918550423286993397928539267780178442235381839736188624709884394238963567319349325968645764407753352534029375550256680292054797114191125259128101534311794718909221972040275671980533801389471480423776356968418015931890194560594313376858616384783106707803921492683551757662326440556097850696371093924834893249815112297797164048491754638199054935939664766902963466549231725648642584704511190395157371083402495610221444981381534907910987660508627052638963598664427598735844311336129845412872356095963538784375762744531373374177124326285039296932990011237103513222855559201790627632245418447120251440957163520545271663133434234582140338028975504227896495661356364586372600776192497618422934015837074451300989438372487487727814686378189758850531285107493969625400261925937366900037986125607635371878864052524394876150178192524178756583786279347842754020613297733237694239552627059429696006833831742309967794120055459000632799877227504835106561104720081430998069182514437064409722808385423426288283946502401933703697664061067342821114311053241113295615670775065107592810824628105156723812026886711286553984558713950841625962596487791579171247339738672329235449576663368969520694155270677963964814223071650052212566557777973851895811029950185531013537088197718011631746341665115622695786797638746886078802981582087925043995131519946143681492556545610661879759696223151928712840723857735114844592440842356346258231815575388602995153468902782637691790104994087084306565495945602206278193623449536916289872523028903605184089543855984504171244782571900557934711707035319239412936579453409738269250390178952076718644590494771341840755636335896086487195925075951623544903870243134979087085110207119609792327747461523471942737629042249751176407677373377324298460590742938341415346633749780224080551801357306838270585273046854201798832253047121121767571522320137718957303058576525456461690610048417372987519900178661638305772803198909539270448973051156985791473347445834943512031062019739747533375002889913074652358813822390157837429629352732389018839035672862202685865760972731919059448724051359051632599513616668536665243301811307194269132673777237904199504614610037728695483012911131545268655339884260482152087020551492470649898743666711209319741163340156785040194936661532913898234949838169902632470794429218327093182831469792891660139730098536618601949836363188708596226740908314789134083627126596459206213060602002029407828594045145556430222480773111246381469406227359426495557333105761847256686069224801439624428808764601624395914051803500598286325007327483893830430560310578210743941370675086198950065539162710131827125402212865952461518405632336640188547271891710225344049910481728671915761524863528850753711509272689506594569728714093814717264640314129962427603419480823408325189019212314279045282485087954799832943755014821068591510677512522675796464899627795373011129730220527409418787226876542719942244427445425437888870107124451989235681547431436580987759369302164193636125718259259370459639541990936424174817298507610223735151241078789609751281488358471933078696330073572580927070216024299533413645884362158492879653256579018484066649389445769603967320646606477315540484823814015354163220067051698109151607757976493330333159446034731413735833385672759356784269169432906647495597851489634910403758813981816516548149982399724788886160997968104037986819447536007916734032585591955513337505063612320640007912479085084461982705559660933326508235585249398994308059187746025843765317136278161809842996900851966936679373954554735349056995702121168982817732033747182904488607963356993534503767715995885098022709503716057670667801201847280332526451709580081572526666681012728348288674037108665559809740074836016237896506725153157337352618867452862393839897076617620857404450288332864039204273467577658612017321453282152157141436499649205409058466305665773598826711678435022877715218082360949937393703335154204048645426133721874121610777295833179497009812542619229701617205804486630233764908177393683447204806905439578292488053125219126850510687826979836480379097624527889515486324200132555508505186793694839551522291164592539725262689814397824279703243437187489839107564978388891914430948579546090238228195581963347493566693975626718187539785128128555118786446488396074684872118741652255838140466458831920996811036301078032976304528042593452572644867853895222607260811789373985997089190154288582582339959722004127280213728588013393068825418205924140959923667789165514871573524545447113563850185131261712715345318171489461518279940970887092133945091351680534217759019481728128140054970028236145891806117917442481214422820234588435888255584559976548526320052748278875941845259332753267687546345770582919538138768024990225117531238028594272898910168190788123427341410572671773389730817053893267155457050695066660518570329083500694002309859245230846377129135014148070026658855438463018953138833220303651320954914562542950199113323507088570264618018330885205257965932133232059517936848138984535235803625427818797203604058149580959374565325962796433848207874234846366566495737699505010824867400567320593766477063568195268024784533975485236597570966313650342493825148505103183359510396663767230166736847182513661470803760845094776537950200994904710578351719710260993219525240737850620871007569397053220743169060538662854300664138859884330236241950426618238559808338732154849945589970196808182634597549130204630012323442978314276080665817199256789187156455399741919851989703041047846282872950629640213646352622541513601592263009343733835823225441252824650637340357698646666697754696184531883650945066094378635099144667517548795272590295471179302640680217327915548663317873986192082759213228328002774654978439749063068904710894955725086363600595336254854345929237408747401208488788714013721851421290323669707699546282000528576117836905780877970682436691979918179914626163186791612313286179431241684906236492683933189930142339727515999841749303885687652787042818908132278037727409277505382038208570533335877682661021584402296536253230422394733189667647056477741398125251144310279676777284940645564050533439695467945375756529293715507181457316976776926457936572474158030891070756773943608896823864582814929243936756690984266819596457799902126576230057559861425753434725849891192711541316055181979178912042247496884535255792806225678904693276896188602440700561563032075097130884650418448473534876196271792680735893388914329618225862656064309694725695421720833227327442349903241048115383417416831582335766547217102932415339490304792896317528276848662231810701123005521853564718945123471371318285520339323648609304043628410511214020760400241542190001589972102222937217170823517429024715681634020990071742605529627519540411469496482236394927199461724485245222438814120018311396112548879921573240711694510595099382729502691788474399682395115157535840725313434443876830825152232570226501297621865320315583318390423696171210767466157436519550426951131642660893327210336089054982404204738816922513514922614378485697765773363767101313720073687663972177887549719223945885836334547176459067372533260251701922518515784041418445291798323361119513759956033237111992990678175533999501946300060201969665321348031862696722148819863084954579377715149470794001283658819246416330695191422226548376948981447498467815984344597365475898454158112007468418994056701749665049272582968433287974263264654068184629775547143356211992289530352671227606259432115955237557592126373038418626013437729289546835012253514226052387817895853701902256413450216443700601006085496407551759556590287337548704870680217647141338880666801232613606937554627137697563940439338074499002846834121459655705947964408045640479462346867068269959120424231110647642824429567901426530549444012324281338917225299519030440497450417626274140047367700399253055547871331470321045152443893397439514974761087958855113847306200229387087752640851248104813868776868465262410741079221247903022771030966371782530633038955638135848101820468958867695953288880930057179369578988124046246405074680701068283790559621771153704593082645274919218628349289146023550675226682112383569946135104438348837365360211489914605890924226460098334438972154520775384620982536737105500251329391591701618687158820758082474016151077551442251559903941541971547486348230947758905592373858882614896079115662025650910169448926463626038578728216546352298144292012104120488541269487490296357674976281119282141328933112515773843686899575270537889165607216952806940190391088763856320790155829750699769759661777929129022742883996712033936525237935494695577194033958357721097250136180787442814556909007190631773231066847369886983051944210521761521809137172215129461196033890088544745774926210163784105589041981876132632843092512495249184320759264856310615924763726739869667784819341951842081809817965773122160908725901955209420411979289350880681004892782165339055502769292493614986562860529739435649075431164158506157575934532910474966303409488153536796398335942108022886087030514810219801610851011073171706145710814707531686233693114650540574837695450576793454578459833982792274332638106774623455593158220363589488821314737259164905932361945241163807300833753254895027503585935949331731525646673757827015237657516659402454079202050057377235106714503679846201338274033294313574848477654460156704342533922432431914537584160702135016460049403658359955718013258000559992887195790027735825131848213955887323446236795135807542808679726202202807463027302399004640588400093496195391838565723532548847018774095928688408474620445059575831545266521673454750705941467355481545088037622046738303833060068915846429162012221891043673007375911377434078447724622132944780552990682020569828240332963286907137376801063202621214181453620297750341884286048363415038573744823964547253931652241350097612689149109356799026195750326879277516593531736663764515286383031514152532471483039411700424787982987015039534587277462197479336384915826027879565128162591317599409587778400019433288363168521184331742871272586406748075350345249777177546803806789541004369245349093992750371003490927394558641531434492308766342292478606651109143533936474433081398162540085940252299141043761884437994172364298906095894002264153551730180163040334429755665884582141593341902841497777949127392628641526198367200265057763156927061683992851584692196048342912967179430348280274160217078531093927704341429700606771450149841767839072995209196079454696528627002268759005023894860595925690173106929113921916030124326696420552350968386671264043933752586764570930524734280136728369170042511638055201394677404413960623947043022389338428788556738018480997110273477566905211885250552076408746089579201178608498649113690750560385985170554874528192634013774054671159619806676839219962035835129284661023276005780124421395285917977436248817381062514629280872762494467417359402515286006317927459068482418568357213996013834848552279811925459674112711026193880377857511865159508168154628994198190639512303209774699099673478966643058687282911815514703220968305600019420835626463965396547857037647531875995736245513430430792438766484905140618945973733636658608629988222748648102178585012997861517147234883189097611470616893415685397856342300099684605948335973493558092597025555755300325762150337581134117390702267055078106375581591929812418506550713665218907031322864249787859467622005404772301313190070421119539150734037112828103874159067996224761809809831236340845941503505588696204072559000862832355605313691789464142113970724422308267019721740033435085027560775647892141733569195604596440931143996283701672796847678064402631760250222211813413821612515842941823566957736396799640570066214813376161703318554991146948381105584680178802265061626667274301622632362558742822650032071013745576109679156362955475648867914609248478155276563399900089923812926575554147682143571731159443643666828185021681830292035500047340452672188971924722998143328129544069159083922327363817445486663031113436993986910398815357848682486300405265144528612533514821482953392803847871511126448126199437501414803496873512781477151225443954296346299301149077065847211882352714094429301128565017332713411963976260231652894171338409855128506567692951170245508903082536388639789258737524176639715633485413009139667928643301543245693760666420694130907042360384121338193165325320780694021538158298092082943343615385888511266799417808823633482383432911373195230622920744941115425541786386482948332142542097811050431039933076047389852331220694448056323253452954272403185805448279060684249011644573166873955701146764092668479009487912516856573825777038465395228283938684348883548919440385197430055908973457408033600758628680285059200771407881969304283164677030536332942614127568471588188226325014056736335434654683951670060344181190079434285409154764834529963305773032296974062693334648594671073175083535004451138131473598237573461582682977293520583049992043320961356110143591518700449527501450724112708341115910682464895634007252128656739045599535109156816359420948984401404667667790027221398388533088155249638643413127667336694403160598673489980281316252042573677675115241588882503017354773462519488331384808080144264109044968721708165477271654723220611887434023442465571704343328099905775210679812747620109265468714812772551599612457144920597091971863611295809182670092204731670808416185450324661234284436843848100753743266004340574159458321163090800446575705627586498215223315153181655304131754720031728750511298646983600492714760641652595307263185571688520456363536039047734405977154278777974787541307132245393916891733316764733241441175628882390141184175741640768125383094910405051774091797329726368354842388303606415309056707426929846475252029562116169298832847770598402642440145265019588754821575717464904474283096174488269930211975663026432697912455155412355379012166969390245241490580010544211467455770465555783281749259040590991722586486520858153336223388510437717591551232574716011549468766247846819397344597348951409869941728881039685997006634587788138853247213270651584028721455708297694307248018569187392840353413630179951078802187303832414292656283237676389287734136844692888209254110334218349740614289490166108227508051758470714526685249730223516692695001934801390578431005303342045689197444502091336862120160972825458081215487256180211571394676415727967332875297699050051835965907595394522502820325251991218204286140770691081093492805268372010338075470943233505506283285344320340091772461200760950853151906964170188608184682622837543022520679751677744103142436840710022318479507910818458581868417991158346274638597008546067625540190581170607190828025482791909358137627748885165709916753156148460659847256181079467806742367153966398104002063567777388964289013520953433118043977644492983152688236942068658523146527495922910451277089745301691863012683437851226427889306113681894695765747882655437887509647864837888285372758761713683037343448812414915421296363734313237781539306756558802313012449804763621790609220154638848762891417856636086093704216678024067934917175241702993065574367278681797878597118704277524774991039430855718866792689696128119336140518910654162050484546799320028501070168450435904267839408598473135988252915593420464752649934856769131712821166667920332134491903203751914898265118303695745816591341108442476545862708245478844892844517118323415730757155536283847131785804795620623943770295437605332261139024468263461903802840544142491806267079067930628465644387242068602452416760251539949711974649805802196282805641359116261249185124305560182879092689655312178348813423083136092447163237845361524783744570505353775946198112417779723407740133795211120797106706322925822047985709853295343097560871409525724523817593433366005246252273236630208461060995288917176019995595055711117927628125423583426885055535341323197252048385234003541547776294262482500643475875906332052933342746685102765821568786737715840517085340276324493972110275629525930867694954246910557094592924619917973416325324496614354720440079809360910070269350235172209723832534836875816212664081654694479190110642370045476637697897380539373514458445742083293670648700394630624424930028699055034818323998863878445847472774031681264902654628166865736639250595356054247835734084464726257029831251737908629472808171725822447290461800988199108205356875627038910299153364060864708504164886035419680218561430284192009559681773955912489229345651496728007462792692448432281596140714768533261841389327687174703004416004642107816476079503893005990317939873334420730106880016827177749551956180518953303130272436341261814726935506620643993710274777134625213123864325111343883480261037506749003151070349039682815019084830387010113383812595205188421021906114442481494802322652782550725178639657854339927936834354077716326573689975991620376780957137864332574621017013205495983385019607173637120290221976076689838454611432811630609342423058883872358378867728859507869409799878246041704311052987220736352012703879184279820152065831952826077699524508870331832554441427190405153243624304995173663811995450641267758571791822056755102903560870753213299417027146219449282991500695916517610174153070650718053950610805563936387166183329617876749420930912903207000395143038841707731256930999801379229776070624523573663798710167566598519234344073324422258680340174433768612031894796840508211987334620669343103013183172319989548014007556811953630682559136639128881700438001184245637863047658479277921136429552729517386716755559178515975545908459049527375330328872852789732568305162463157930674502589573055556111561324168942775625371788264463662772289069190941145278694536807066532931482732805757448802978380070835641710866340917563275041537501968990212128177965855833229690324439371641081237282686627330103136830380150816287316985090753744909425406501115469041976001798747374116141621250563003101836025647261338949994781502600424971305292586116849338435963624876722549545234153190449906117961767160424221976152346413685223942905635175926014250027889669166339370169645263015536877851227773773145760411011796149051768392713115911627438682406316712540315220111773282235969756305149284044751334884513420943517937916499810256983580666524162443015693837654701370357447602092297043094682064452443310582322538907592054000531383758218599702024082467238104328231087287371588534056524878638589669206476534526071623055296155618430887353877650291869550354330041474672093491942676295235113113720418542997968237063757144208960494826722722209271959042264141510304875643321714164341355353109200715625418782808569135966991981563343781359645994381178617453196489409741327480111555873872869642056431808288399947849892836889123027629936222180665984386857189393240989673630825723829055856810374855938008950378132937822994280366676389465734441492505638397193355310261704833058992474196416074245816755896436108549107877609309028390313464859392782701551164252414054023114425224021764343399555078632860515856126303887236145049598277702014761365056460472214057542044391086604396381448527383774629386255656339156012025460877265708522837306928573984622726695550719232893400831582505870332594691280588137108776122699792717290738693064085826620379375762823402400276088375496588025986050412822689593458902963334857489618195526552272399657535524049742724463057015612317503778525792788655455621017265269304242532336407005852410304166309810295539615896776148423366678132222997129609002395484549594012596568851357798407654389041446499823636775143306578391591707054519760863769267677334224753365523114045539124356716280011648339138316655814332839764850240131338954389542911093589401776119631523140657789545391514400234522369631112422759310963424757831561068241392141640433688481189708145673655948333956687069664172947159820048009620433643672798298034492736559253368703732737099514014625489614651512159738009863791985600486810637632178199546211453309295469377708937753549158422644312631013033370715429229175026165442953004967502420743034342985152404772815817275394104181650022005368082867189996382099664703913702424526987225594148980390261674980205357005990642655780890257756327686595373891022101053157548973961617688788118767696241116741996122011991649762671573920592416723455058814028597658375985264449001627848616056620765679439309080180391107883168346072700425254888808259582259174946430225205873400043043309261060034974793171021353865210232739325519669364778764280055257033862707725508165543226110869942133103490505545670507490168894292809622164128241089338419087527993675318823725968513424994117510228440877190851880962987925569048856990755522734833815090064415681378378456993740336468467140887563665774569014554475623841895819024570051571073964733572795902976462833150933693893698039043473133169436543620864758583322820675727260295437513741167312818068048663259250763378673636193824033729167725682971243708171980087029884694660243107485628163198980796802403775183611438821143559371195061698570862991535079326243362069571835446001850759317122708788815871781470847319649877082550193854089335509716739961198388435513782903933817624668152485173566260673047714300483115410067925911444509515669213771679393597321615359205103869387182787866421813838252732483080063515027647277148770832360828553357626739805340077559303453351387880795864633381680755798797751840821878812590192365573831805618337620046648112112772759301202827417115572846768782289974336404115118206310747352773745816554358426522030171418529942599709930293811653380233035093347027131646365202635957867689930650191494636343687622084624724010191426638655369573295728862799141486026039050826891538177325880933313779548599066280890317677649328573725068710460576667260020706258464211050984051199879949397315475044123562653437065365898520401562095949179326888888458455844172166004071941069662118634116824851182511399332906373826985225622947448832691434618585492023133792236407486577679635977631205024260564478265449524789550678092427297223641764205829916710122400508304049540059717075323139099250532994750705383578168135388847026090953909912138398503684393686546328354568936924487915404342207502237594887476816558155853271069085881551294658180169955451935844811551277768632588001769293521965144078058881748066484441796810770319985994679360406751609780923667936577593610473305582450573269641366243296566254038662134547770320816564933379169599602442928834032591760346658544005327947360100374244935401443875128489073363081892888861208744255802215361140855957305660232540079448712061879216507267657194889492199789094088082782036604703830963544378681534344564918922880548257019059180189546550843576251685573761503795511732401148004480218387912243889040394983855873059147946919096291646996364457464754587880149704215463282712209093393717200566623957623921617112271856860890759037461039574508393099365531134056563113472946354593361539937785037218373540108699333965060036365976269745059910505729832464348444039465887321348653749019255656156284428376534868529898557338628626765684060029496225653881038992352834473918221032680069099779001239142113613418568618100854754512809940966329907870184903927253979861777446853317665318602944296217493747589344715541498201657915128828888812588483029688495461643111331874592692064089649092807580422927349838333791338214897885453359247975693476313960603720300933866435891919828058290567734231611740770328044698407380961955442923293513580755862928593423625496564784296139530264641169975013035449376742044639626263827176259790654888944753884248064567476451417001945884603539195478931525471988994267962645975152211138259416271201649043340962732194253685238461892769493098718411575873873519427348839469542812165806913476199507414407597423983671627170900360906602762876123225818602077778041710245498116045604527654074593025273959710786553168855119589516852807713511509059592221212758630600892444818620402145449736539033766911856232040640054343220605912311625420979377157658060876841692466157986187632572454763810147161087676260828503630258350975042554067853086919731746253748577221539283940432083984762671362623880379952725123805717722942740998881974908418331804302121038293623084039677267795987342978245586232548677314763942511320957594215163870305233321781036162211218589788479488573116400386711216962122066995434569395146636085137377047576866773371488158727276564980012901473504551726013802614273785751947081652038851771980214781614686694323165276287045753790460553510773911845123141747442215131586762098853034854628761220251420587802607291622731283078468221640737930429469682108050102291840588936208942723854132325673358591387792498003838545009447012506216916281560305931851569363009069812094694799579486384847027909150047306082294238579623484505126082232081784845606193365030261038382766008937717153039969388729127107238471612470170531222123555155564517876912018333560861211385605919244972007895013139082162889342798455606232061158408822088108399773503274601476731814846389962945717271510024736966517447304246058095509072843068235034411103301329503141416894549420776150962228563637336051132839069042173591515943916392127605579182623645583502702857002917336906706265510061716640969572927873748619947397013864828125350347274958709296525933616755235167254351897100157963861090251207757147765819420329468963108111577189163430670895132538580059135684923888584046157118570973643217287649822793094930576440874538217495433948104969085914359995826674674795848585934002168100993043494293220073298381089600969030566282344065054264032706067243027964054048522928026818580707597707144477610368814961493860926356723362352414242651552089694272083655890830475871454442541374606707252602610901756986650632634930373587829888248169285088570023144089610502312372994448352424435008322826161522025364296400615357738686074672814248135257958292184781186100479771953628087932139074400481862032218947839973599043489307172628285732217208362169764709316592514946110764318683288133031989630009666525790240990736757150328594258639918331797705513232591797949720306966398113236143644046700354173397150390873171667328676247975980393529742396855796955667260719468996013342729771908721458163248989532270448373612551801710338218054646536181005007232348833580427558930923119018052938711757688036451366170791841339094318128422688840239795905689872430625029591604639360885176299843695987044118836021807390904458937823488810796860897151472375592442228502607181908155585792439699639866277093659593274947932742639731769748298862768678814777806122372440897012590890430206904152815905598858366499200562997762558238627435309550518788241718675350890732052854463299255591596935042112916783635025062635817009937459236958301271804225505007689959428730600248061194008869724031629281631678029737984504475014217167272421219598972565315133345808536806139426585718724410982791463227385417201750810833311883819966046390938100483191054643968841668526992560289730794543909091124829888106888573984909991450809213161855520186879759176824619082934973930682418635719755113374751899260938723964419181655969401424111781230470554239656603512961938571343975892210462097648986270169304185348019269812869348737305279339459297014813872889193900738069190705786298983883360889938009162751112563553324652075991159762387904010918568317392451084732132503472134727796642140608447970635537835960572598301896291454813656953804428173841935593788269044200741967697490641301691562631094475605696307430010283571949029828213836641616018877795273713433567549339984350537931418975564465016104614164140644104264573238462738226054197069881156037674458524384488195983090298530021073051839191393139374469026538447481886834275083576434898337780073265421965710532020172726210386407729168710395851303354215599386277518657587518893970333840687340037836647380476734723915504120766465282129956604830078841206840049257684009940657837209691726295167336505209628041232439062099261658366374599528830980903805065819828758623990655882214671441761925881118420064284027273479624060853024185690546147537640976735131834663728360559045518801294625868678373460992384010980595317859187566502909885284114701013062224213455134222968751023929804376569605117096828760089682738164102451217425329509249881855374190613856783958971807548775694361683746662570945603548289608137318675197761992598093486219696435243506202074148314759228191372013656746434584276185876822336323389291960057615159256409469193735885546827421645851319192818098740660770618321162147100192603812367279788531323619521135888877440341354153941827274228020855085222860105622795518271232271112387855266119890384517370668774071202779031186652592697589568016884614920093673264742438673008152180874095244620966780946466493233138201969375482606865190319592607807498053590414316843332162470774156696958170944971780145592904240314841033271522768303807313725873444344309619578900605406016775588730442015786597569011859185875030990371305746908723212422021627739766464314450590160515474676107023066488114683348033329037300328646171123509126970864566076301283470660408973642197868392468302800156322895374832049946986604253878779298739925785699769503276356722200406575085239572713297806475877349384587819276039296280826292606170114544037070003280152184268760247656706149778428130941316927712806685849113416782461046936836453990023753222189985510298029835886931717676140370362842850623026007859266758541480356714175595011369736924496720177839030984073027445467101442934146645615036128663811392110965782223601189440032233657808165041351646602346165331147729751751690062466003794884590336804695474253859210498005058122922415076856803030500905889197207133083584223783259820472561817599673490652091379602842437498183078744990502763131992183155858682745239325200288287191024330066450670434094846032822890819715650823651062197931069404900719574908708866443925056086698033282963572716062517324859300110117025179439987101400667714718720041774904444735825028908200269682102875130908061279925547502656525330590535034599613672351270884313338088350230575659024487598383375488640742207093807197756232013154666767175328638633098996653296388139447424230958313144367546501190350314362720169949975245889573962814355285982589232869403796990879404116814850251029604530924047293068971461759717535402894807626046634343690287232792034259891062411918152299497257607537529088561788296467333476705298645087842228169547075932551156943972981649320536735562744734082753171587419699208860549629161111986598492960924209189589207860313741944434416015776379846505462676642943574152549716828343778763252285682949638357620280171179442279874169671473064167663509685612524856116575562615344584624828395720161888317461186679386045761836564243243215549798141939350365128632524408066786717000094926143196934216421657926550511245169660564151125301323697106243238267816102582715359761775970115420015943212300645439100330830940782633144538159723856104503601788760887343627296773288729554442883452626955288782880492848193603741961701186939086108434144449103707069624187107053139271876441847503574366334381823156366627616994318360294394984028354293813839695303888875977961042477763734535444667968595179225320365976841673294364416853063775281571409673938213387723697547560359736220654891834274872146204572359510300122394885311034563112147139762131095197703619258944718036236926952821980246767984806928034780483545516738122062449638193325223272989313583887365174793324693306862947020252777120094875235138664178078350159649193541746943713305193497318852617829776001046995729785600201237717244232836809600387709584783165418270761963194527004742487615437463359926709164667102343006462027207895252784913352615721325882123022666612575821977181735294754874546552502177900897260682321577778916637706655595733527370903930968042119624875597323066701443172307936286535288012941281726972612060534405316370469543172384867336868292047766321317394386844011530920674012698790176407020035509856420493245156433630848832990911592251230408256285594725829382236773123824625075067255410862687044806429912636849348151428289389109487886826375848385499414573519891703124514872783467765678754797887285935009011279691086024617522345510915757428437315875278082067285042976300707329400834919630525900283400681775367502154927847618825724628470591759701778186628296215835703846076822540641985695942216184931475364793928713000521166806614226007997879775807753367927812965699359774352108603635400638442677941385444009355564481818116768547066095353570926170612150649123330374149526991496995493620859678740602137011821086894289671751024441254867918507842643274530314468207130598889952162809919797112836619479030742267242455628858125686792904843397769822074166857834013692914585701263484476960540458760857620636057452173052266235838319150753710516068561388710142012273827817809214402164071153026633611104619152123309533113019592165338667819025103235782782627222519457426227899451823123594062720250196492602468103289235310650763400361542681780075700227509517751343169719380465547959644382335313220348241095682974414592928238189281810516195161605634415713541260902910310490570781557123587135767207035391973057189325782931935898852267443955291286876196889017513369162299066296043031436214044975216703670645565756975403649672531465394951801562550290945552756157876304918585048045817675810451000547197821656705407134452079521289535968970625091337980446244819589392123842760636933720671855825265524187246467397370680229621695161814941574216107976337793021200460877332667816876922796000483863728225706113212068669191690243371752759430869344472689287491169487706244285444070662466661826639890938175118296682753831437257175520686031849934731556869302811655585408436003438982859696982523011647227856361145363232699746761808756595827675795203176825967303320848782209015531134763271631401337241670522128098708924859220863651440860136373116147043455400590764431816219436866910145497889572171003775106442277077813752406330668117181448473404015261242696376614426508113254841454223042381810136459821451744184121170662137897486448894459876583429389359778290845155944746742409973300034969854196416346278147957970575945348149079943046595155980492534617345252074763513922747804417872054486792480331587673923647125562694239175878756227011420165001320524988716556066799365961207845065899331624355157940513539883037631844725602588754352106144428536180456629381814222610035175211428412026637094371332436831124816503215263708424668129592550744154491104291911718242965515260251477024149210289528767575697832490361624517482498434927482247668152552358097228040763668057214458055659369632944817012763678300072688825555587679420432525276952228146709990767507710872267599023711295350001873251275769802725334334664272151954252460995721092075627625077165113997984920053916181351559290837200152999387657192630305892983193591607023099585363726815254237643379452626962675267295794738448928057847125175504038900782562121467093240437061886141337376100855918698063227772055263899614827535305416645625921675002927938686121022285514232729053357937241135660220056298176512440015874873864488172414393471074092088909463468875812744515876655645477790637291247254203171284154033562194521771429979052977454997948237828252126525375527954050033337638364626862632612011429239783042433470397989032687869703939241142826552386060756954380780995748381792832494003226336502446662729466938495699582884981754753304741615544544582183509024223414153270885693322998391288535753102865361713470449950925158326432371968818933683382107181772273073379819695587936570193866198607653199433670309521460685902910563097110422247589237027265041433406708993278870733337400802281844363225530947261981668639561176218641761673263597345094236833534632617054333351918696551126988231746717391878809001177283772961755970592300982787869326586000145974456232499953689609918818502031163784393620197625967933795020844826597023301347167965084918966665846075095084655137426842918383484260678548195821690285769718121648458900400432913896426270447479226693361301615642620519776430621109784857473641177571321389916523951351638624733918046095396309790013265942255576858505608038941107634793528725767345303196712133874664042500775044288481878909322836013881984824244513681226037683226570022254565591151785609546518325049632319075476134016539159350732750559532902638413997108432401938512459391337130311467829023795604949113927220249380975919410151810594988601341026483658902648910412303957202541643076154870178737225757113526502146805079212807295857890349969825773726865261972001463789639847901280096211607364821753691628059981298418981307301237463795698239534580571719703175694714834898690284874854078399742987611226522498293710719448178148134007547415624683868768669852397481657451521335700947941412066494376366496645073818971453839263282806222509001365344054370543932713421827633708996267997260643281236671735481127021116702723801558423465019725133570591479447550393320193645058672472383086005699583662735063126658883990374602404409720517637710172486914692492801736959756554188257170235332194368326239034733401190911555572040745874764323737391768918830984351880330049961133400818189297275475648060268609419581228763502856802590669469724608194773651619344195186653735325284659313567276791076669090660071381034482706121477847844279243395163203467806173669808372300856752791993875172752734306981789002490706014437113614054550698106876759568032244869289806185397171110509216479535524759415089023852300669095844892581460097252035793199124203084749478976884823403155023122695718348765082171480551490726756639770017467093673514441392821791896665119303714304535144072158973648328512772377181636790076844377431971211662013084588501651601215631403932417759377845700962718772739517476119237279200529992716720112522827695812793003357773294737537476367931565922263771438911013878190331408014183047245917159734286014134420585799114967093411842782670638849818378837608788228844628860252433717811001289271359391972880362024658761003536925048584725861716435773103754749040982138238788799358699330256907150702446207679607347420412833673998485714130271730800000629067576642953754103818151421978324907147224959367902418859363204905863087327642567081211083230762427981330537335896315964794882496948308216250007809994964195049787914119677148863512052668746108781353440757280297467761613463821837013793811475924514538495384815117262483652190091701255540817170372316852325900178329580511098697190093911103005906848168020007148074619120022496624863733279551370147852315103325117816373767711615259330198199729396747707844640927931520904159926863509117516189785286975243670879575853568774536510120892483189163860286243644299533149436462332917233561429182276170269083460729942953863679664438874349088294974571725289602441025760861454362703759386232638769184648465102830682514846775490579807431711884044205863029796344217059330571339780655606997403116970270702416114143814905548782240792189022818331883748799477174991502068770939164057273251183601451264719848137183790319975195467687647763131793259930534243281708565325196154791867706475223223561366668200797232124798532617334581814332985660976581028881933883658461282717405461208752067027116570566189708936914154893938157523402302790590275207589554158626554881151559597317563262371041501050987001828267011930504407713650082778222778110832922948930783626191397034535849603583359719661458876272726265825852561040979384790536238415424799792672457057539367451043941410956972661187054705111339871661257603075209223189672528107071403776274894223620967232179631470525927715205318459907822994560557063116466720037135276549894831443130638789818269264519201191529484172950867824572553145010469873516651010309518401380637713246170781285128281421827459422917112560559940298115455601226546855807918869030601220219519929738717479741358163640607108118586852967504686910490267069752056474585414399637313296810536886166422680469989580858613497551962471553830042044698657471095182826820588786579337267419738693775802582398544952650368027954456343503525926403254976664514926907147665949334414401643813544168862827057278680763098535207467540993030941654023988647366675934102503559069583884685379047745857560672732050374940916726723668634462038285978680349050432084595982602475469661821216752597080384736807021764013035509564039856130526575154207321806433806161228142022122356413180221235441894751737759100532707766174237889204812897015249109450893359696275665915010074385927193214376617508176293677620821017680645070411209997903130916563917663185308950755103638221717093272717724099019722031655392663790117266500990275896013754143490850701876131135015115240161704623839857825356076248649323900097885321011048155511481110679805531597059320054181582245462868522619130250223393169474290811482461269048536265907623445647313139302762153949648716057744801527865381833500249553117376345304192709793354638525324423170828781924284574148949196678458154199509693370062555396358909100577681409525485916055362756091839488167277107250899631520580861477102403242909298219889937981484122281245199614825213320788843678492425997966013552927982399805980585202980131457751729076797378030045785179703897142152356774111130934792206145587001882365509907803166178098896915149162833665269429608090226328593216736439261251307613289687070951665183120016979971926645086939431266309670066593162625164311790327460849412958546043097116839671772929718889901233937651383276065106384385967168634389764560771959906645371023488799015715316776070520005351997140562968981625528236717486096209508312860702873317543276834566421422308320692037142928348525156926904656062955906360663549407641781797416693681756217700388993268531820453516181221932992923043793737859416076467553889074343277679597754632400333542214670316248447825571821366752088222927023902172501936015744801651126512014614796064687680970834864865454800874051177478949225007057900860033489269002408617891021773488783610511613577928152365852968689441985079429100093805844600238959792758135536557881940578525182568853630018661999175147943153847554569517670731322911663839823025458605733978133467210323635711008604516950676834276431487966989801505753575307154095455878604802047354008512313196833314625043230148745047845506869296023543252930478515592104490991705785792532450831779176261023993412156802943638941237703740321990797684829953550882095607429257292739527998480475194828212599452369250108645580839282399869662084687064334577964748289601315597697822748454168139320731073787699203761608499495693241758046755282207620199268084178676393126185849398876064198051429452621676161037773697011049652667885727519524193314979280729305720279336414981780980340883615299352344551798459457714600652538160073551535784547310029676066916126722358395532047648491271587096909869059795972832746264238108134171053262189347278632731622483395763803906456427286991629650726061611239205901454577936999033426042648035468483269656808198227654781053365192641633512450182100136060940018221742330155648363953774485589707872191775859731172143553254369742160342336170414114812606584929875391850320422088862995633724538798876555759037733493189027061290781683600184804134172037271466135462633368674585597958119086110809573155076540390756522291855771293593175723599235017270195384845981406361269035081889550114043653964189517751649190669526400923466743474283638505716119219066434158991025879021192021439704079739928365274354858771951637828276757470220990306776056267036734054559798520444903809084501173427071992882049591535209754587242816277124023493626279449723523290801361923983518421186058661132994046588746499180217985235555993285465046432252425615046871860157897346821634211278033358632266120273762892129500733998247938500583561638940483070817209580796631872232325906840813051037531450297527810908539316974097559311932829665086145502467948470843925967496393091369679775248684957946138250868175079496982007161561745060637785683064593234039389448655545327106047934247717872285888592477332805950159360247546167514698939358867789772628277968094697037067745359714108551557563416780852297539871975116966798143353757604047788295212588976521049012923719198911537237884994056900016622176955877267142893689821225982858420439566884327334553265549835771418911817039847188626419537665123548053594907711595147946078640051357020421063433126304677049536509980007709388524435589526942747711743204675090205262202635000325447365619693142558938673996217306421603379460815346986067534351783256879090073432893456375564098390836135999898429290563851814680199297691816091863246456018354045328374528966763532719345806839718125925752579010541262309535428907014173964919688839495264069880213073322655611212034595691176814236685114100674104365896647043689205209492484494975594587093161513869421208992413558124175594707968413143477184748414981936831264839273175459475789744128445727450364685329223329533410787953233249811986032270273973181439165357953443128843802768713259522322585896680295350327656453613624765557529881140053095793197513907181837598294219787207614617047808460677745088130741850110304861694972082488457518473996122061009195786803971461390411358419976329789269805521936608636125721891136568748832090235774215410293577394158714620711547076072390046681678258338235679611514263795452116871982477785605724217538175718208186151416046307765093476342245929380442784268741949734580230975151605893054345721506538087442303329281274144571323548507532758436772499953788402102011768370631407313841442204152083867696019115580948764892205646669212175049762571850474019602651824411812696748938745834970576653043065154107916153036711864880744924340156151467812001068340250869755411973170364731641418146379527941954626806277173395222380674187572806140904177961263030832046387084288158473666667670088008395253520522699623361239197272928237861345873795505882356151258818982823668871834458420879159913911636780206616682568297390250834942341945296830208561718160165485046205058276699975785765695987226670493599670642414297021761131341854283610056016591393476939103912103961413508832741533075100896914031114198858252156791344616047511988482392857039095093664700755220651679340865323211940371618563500483762124539513871815868786043561998236084262211321740647885102123941488616543700510748805588862247990191045135852138047727151149912827857059148210066085275332123727013441049678884355037732101077815927650320079600792327885788433409369989183168989196192054404330705445916310910646243344791688557061168396665295333199042069156222926386114323155227219817402483534281067276552325402317928971596430690135624289339245368526817859613528341530035997830912431145671947629306603705670814321315058662387770532462567497902232550981976836236943777659004879715323556716598776088208797814135146216281361309026247755276928223712814014699478517084520602097504797236980273404153172434701659419018100893747448973848229370733816869047474571234975064741944029289137076857186969000781583832189072522576714072960877588868077266310924500885093246396359192418090829223031748311231263906987783157978696755651495302381765424464660006569021899169622933707274193626369848597072491827116792044439610680142574362230204569428085061212337551656578161723064778195373396133778125286416990814028351523781095716074502859369077616863767574506947491058878948138147290556999423398326305265448100574694523744006071699058797627609399642719818034791933456348562786728444070259397163882843468875338344468154148547000796389421861444435989029179946507266752385046641959080789493781898534440371615674139076860276876772572481005967250697104357207202918086979364812509696401465765491737605175048051386437148671455580586964239393892265540966176537286560906177866352136613429934486535748463969573407666350262281737666258077248430276331529933137310000997376868089762119001958841943645743547175157936108553101531251888002425414165794753121839403795606735498164663800804005789241145555273793085257109980458593232140213938468965411491654066037495243508336312706941936409818405970387681126666114886165425751558749356899794353331245739485787936509053213738552260717555610217954774188162493157778212955517796293447353184472520560667985051782438312490706881045414288545401660617623104828748951704893966427070992348024733950314540600634620574922107681178486419564533167004938128443364128410341956184022666766411167976937870181858553705537945006355719291408538220822077770759921734380427149195534400201959238335510569229755441734328648083548736831611699599370695374841343099315566138399295305987061245641771734293440251510153532237579035138530643834018600682468877797040380142691644166113083826239890357944884069750812075548191123167856120930997701640185319721537946844615872389354672142033746059988018400161069265467687515698947180249659918599895258076024564394613797792206142061136727784856970064732003379740418043313463523709763688655077130273909517775997703399099299554310404631542862876738068840273916147912801809274486802145215337807515472093026838603005623046270762467486128104732849387391588160675436297728710306779814017183753734768271599108508094427876620082654646349544930281469807292704656870364268951291038749767047663831592890777381097339433906859652402925744955499458875691199946275409314415739283153118134577639130580199737784963411568623534385058614966706880137926333820568450577156387306507753732966748244259021233858170820261592287197622988567484789180530707295790563031857131880021786060524952500363186190864946113869938235752496590246429277095882542247040276864842405022348012803065530720257235353194001527036061551604617666317371032718318285208173503514272170706045513415161179438199604884463393458731291303804035656889702437381244013238638931616703038160078884511691088855980692794883262806477193826122431369218978449304340210245908366869023023144589244035334284153169873624092745205668340911331957156046367239187511085953709640451062322418793075507725533370050165928924200328819839923833490712682119746988414497299021079789845320321663668106033105469619497453679943163505351625705175739276808996536403038358701698540254640156881595515346465692658521994213959809782709260541935685649733924035705802441122467292341371314593657930472180029311453302276781733904602721615376451614443977249804909615232845317628786501523179883148169369797460528253751064356320216300702743134247497846781777890118860234983590441813527491550258850191201956956400825817426227177080720116013206971804661737610436646050478662358461039547387078216121247229249630058542719604620231976600885332900116723534999260410837410524962123571719658555358357012815559562057595125851253372154482680951963270775589123668274954179819658353078872186758206711272077822425465260002346913062980362565630350215761292826694660714011047788976111101856312595854464000920207416859595480607888318022017430243468901108562881645881463747846278205926535802021973964209131466009778288074533256490383586387187987534778508212307329971718731212690604438847471859521381990825087558546782407932675105681092147970302978745348408019024086536639059734603519491045934031158563823595592415847958042813507744837540427348945527703925967547116514972332429333887669904916934058215036381232590244378475122548512191528925689100520892908529411294653721061602370152563994335567598526874039874994216513868521711899528153774162600098464766684198999667249904339798086411484966651985233485589999830035398478616471009295505082103058092737072875927480058072387343681378092659661177047398761697960050460720049417099766841379762828160410768462040367294056198771974543465916593751075074561221173674686393421880364211485412217756377921971112415051215286156821225463966755629629975787591868223430898450640737126308149095392210068674025164756654376499056564653603569928056857953992074983529791953846069429810215487504513364386971077136281841697288987584455818260204932379728504589813804236927739756991542305746697584236809698955348087123216626533846222341742084420573231664227647536617422698665800161377652051745971882886636474266069445543861141664528126080660997629262093616378436028908921675054832518025181178484942186134128710357549315656028865388393391857238929956924080102829977552443428202560123974309646578147576788468577915346303774369444863666165771466220596289590677053548736574059543843555970307962877894207273783560810998687606749801987529344622104647514969093698480539951584033652779646920216626576049918841943716837564822047513420308132947226961355892240333242287746093639879662315264418771711399122768275508076964202399398780005655468879521173952820260112444292908649527790255404894573572920105787637044752268549539386893687455691171434263646099604747624901833465174247923791416097401209093369081107584680551893587819065968464782657026823475707590932755717383527698841547099295836630522900278786238496783919439980538918914023197205447827331078807993403779950246335169650689560909864874625205306033726873334824556510994111061261646252410329346786171169712510670538675286077069927435361097915281690420610513883749173624158663623752603796025767052398217504957987656174146628672583291569658608308495039954966742926477849467238568692881062862948477312487380681701258832489411600089346464382726770653049917141684921296199758978568863332531283901758502705387309679095376820870682142553520133286325479519057997786297522587801360813314267805419202677845980813641069682771162644277204545636562504935141002486759246145869080552472839738567731425197606603132534998063232176717090646214492898214273154770503979982642164656012049280017389532228209288417477924731735193527123797596250619137721207362139441991176789490271642409080581887776613409642848013865862331346718530030476826510365765229637851787897182010757011733360499340190030198650343363177538727898043115059126790565977210179968824273231983802939778364928700291427366734874534239326607564795800332366770328284113336829042330293240831385182014445520041336495889318808136267268434502187483489611206092523264388163841490350833655747890601845647252926043698443696690716844529622996189957816658594669574758002732610263591661287137631950643422546997848836109495306138978026072449634477525929152652698754250356772749851638644373235268077769579022665782309221550296697611367813633450833965425182782541561990176677043405885824162832255828976913898601835207027253615146662161281639094565919074925486719524325078705850477013763092185157729186422845955020679845314841836636437825925859022861446693267557200766488693346033987774973581132934679339108686835936681265009915079367385804219594674046095256148827990034507546525469660709262596529052896067389614138071412661084635301296155837299952974003824724587616940036498222891372138891758716263631338160781293160866508748668782867444061743362700649005444250681703775318764854305311248138301925799870378429895278350726045829664658526789276603365100748768605307609493981076700474179881185020945394167380000061900321114771320669518758901875073363718838491102058068039744126102127284583839923873589716850743298600283872016806242651645640378733301020656715498141503166633130938157986282797643673563916167073052827627616683221258756898320994869804191846048811729057105388833237058796051691031951029916107550179102616863714392861666852527401151761988176334273956537205177096520934809749984614994667243338189078169619441293652151346420931640213536821606213819661576471132008543757636356027901785631546116475256571793699743142265983940284972252866558186080203821605454673103833114726559822874211772580897789417474823151923967282501731897525193117694999192559598515256519991351423037500742468473886923470304604227559843032707904453448742656774900533617431953372112542862015648360872059920878986697871833785763424106447491940472305584895489979270271440817574682598626272414839451342107632562785401704835126891198118043971208984651527944629862941821393251468983338740145128651689424477263614180340692879485202975716993285339049134225211663574334364020682930127092586339491863660783110691613592014596538233635875955138525522339745893333583429410456691916446465670327725169646751943362813952269437983723388259666621110872753439595881172532370936086833990216512458584154247830719084059667235109139440667935248627477548354126324061913637586877149556707141917448255004968335276062850643705716992877067124826610619531659770110454008037676092685343382453590647080223843917905500111997691351002066770461903367360159196779370777287294523407788666995866637240794610871192818859415389571302324763280765926485838660077230760099172516490297925854950803057901713353733831763463146319614017031099288843931279801161899492602276447493477752376834526211572544779269353894537721303256288005411657550097362493764494710722099440894324407569080093909668139700307792902909893887852674367104255142810402511277174985029182826730825314886652466574883516340340340213887371398860880111393437763815755510546888224181380235992967458429813311774372409700635238892040638832223567623752956357595809310308015538854151936876186387901054693492097860526727372105890449368076838013734068214343213733270384132579495432365635302576339997356430522896178294669636780479738472295741729265772125919975488828137990242914880981069187490767235851380304677079835216672077607534709290575091116883545617664952255325988877739153344645542621783951671167873245035433796246386884531866802203189643194025545745126063764799131472871961896086931369954858161716926076128134698835396243140390373417415747531403665875020406134467632658647385479965169197661664308596393348046693625519874023395077763374408265393024460491813201883968475131352607599045698221423086471168391578967864723800181264896176317009537776927649578791508671563176229762735530806796486649330414314940284902904210153841596541375887961286432958099267109539702315104597272764486402791201282447267135149852161897097130540502106454501753123545212637015587644043784967819357562214294785761588630712079102339082721854511908667541886533722263640842376490455181197364536722425133574115010125619426448052070091487307500765023529346132155208162036801761976501658439531712771976058651201014515116818679302436272730717965829415068456347043385105681114647631283725176456269433737088817692274118704545628997655546882768807190877023315955245842383155138025332947229885908664424152154885785076110016842347636035082370038513460982244057472474429641227318640923136182783519209617513549066095780409609038189668044045716355951590118631386117656474585997969755782631880890269705692644361617914801062299135288421753989551609652169746635329603960934792847073896207515559442757152287141466325114394241283366450400460863608646059795960616566054829931504546545487139937846377478337781558212324737135758940768707028854468698592638915451063632666700368956269129251578117976630394900534820538426811740235143430419627488739284925309690984122338991422484160909379917245310812319528503439120510346217427357089253486416261141817611311275201402651202910348056371575613492538799116524316808375586118934993398751201532954508222918206253464137831777509599847745157084088656102824773686084325987497472102818979868818015426046989512866651807775049018617387734621115125555067053217225066007518460704233251233623587465793939729641166456509943443861721138685936645594625259133659843753122953967640491701098699420087611481307002049344471489171093087154299958749118463047820138081246849240512961128626578562423031004481083688638761836444910924270703209961533789822595806233213515900379773971196443755048372580549592038537757125525202120552382222964449105488347325085164465754150186163463919734243798268176436623960355050351279644337763366984145412414568144907262653202199520851512153281486571200808860971084621652858914396443468169639240532197496136291680887318498438002159010749391758782280074232864578542619970314151124880720620619864288665957993980360540145484826074143058463403166913396448769063646227840487105566577930602058617703732996887447514987427958481128818781776824473926006019195043210067384440531558638659407633069875453944386799112972018939334867484857036330650719669476369257407946969087775842547019205732816020504922891577082245675765679632616806622156860354656248754147503311031727136682351020431137650940155903370901498013171819217291893781425622687695728072606291399451165303028674690111749343694625747039184708453413260520484147189789062725869853678519074090686856330929753379190711459487499920895347603958075747590215342175751776894593448216385945183598635790941354653202014681982508793861234082023378727062886469204293111332559424760836374725071569678804424971830140665752155766207207319507963159266917906056374904390788607949907298800556483899377509406426261539349818997096004679170785370900356526535214604868431952972106411674695414696976861556560404830677069579893913443389976846891460740990925902907857607262491354329005893435903559084445994054204981770553849074068732350332771463331975255734932037185063820664976010594459461604770288244787276725008141586404932784117855399500971913002071971837809747338460412898725621071365774736271575475778267244041943118705863410716697670753533929874557270253712749050842625668744746148407562773241376007819506782724671093151161545800914986405277126980013123350919619201416936161696489751375392398904997611352463062257977849923722560780859383567085608297707903153229941941271108686892628241173411133080509327204288830381867367350755838032617178968435609538581481616077371393871506425166237962010313118506029629009284720943085803823893637185254048963670870332250531526905089245828813976254106090764022822081362919230029175630817250703342989636833021488736153880415812436907526329606898013922010160004034594557741925568245121754578912630136092451222400015613629320255797949027935359681193549406052855087441179121147372561348001768687219344411293366591957935451085886090560860764617746955586186178858799558475408431051703792064898182184832368412117967914517686638699972494608066606292817593488651887070194737766753176028925774950976440246403862330243503967936187329322905390221374402043570552685913010656505190477089706320968892000594106063585883233199737859706421970762365241068305604255039989571222304495880497387323127941060087290026450934958271889451226468222899138469294387424030936209141094126490009098410842520356389480992884425489319736626539012987056628631254371934889168785824075375282403728558498361017671190828257882887995655318542999570027013517103957985680050355276002034741395838895466617377904789370982239637929716019386849803277289145689288855701591842589550482693433420839629373852153456948457777993136833418948945202642089043332465161167846827051181032719605123942527575536475512987113781347454982751992803465882155076925509579198062228916371500612822217934144972548041373603863266577179969508694032859850741408134516496572610794250290768094438193300258987785476205792838430551731074792893864587752487063902815682341151762707100099842607036366726996714032886294651909675630243607240276879256928563093820976275752022653586828205062717077381209195821732459023518078685948123806654773033816655818374441070495219784468977829992041568904482307483009229406927760862297676692498619545442991390537249900818677374538184450026292085172551850721232672054042729588916975778977879670200768116291729670975728899809570201050331081030614441158820972120152722823668468749003484482775413278839100596342184939736519565751881514542084954493410750771019294476447341607430788858317846845285508994522548639484959854206368402205910816460223330246279806282407420585693616082289012804077283265874470353217034519616529262545354953368573314740069749110155530793262252121656119409654311214341027704469635013732589155904921081799736046295782482090908716556785708756799019991500044522960192454629091167795001630538244698176586701712691031720581671666551075068302334952968909902391990216786285578195451014579311346278642579506706527801781712145158213300892990724669493680692272967900504348484727694940781202530839524705775551530743430102963034274628900660074323694335280482751006106472960431246763608750104139988087951363552043987108647339561610215664559386317602978736346170418755043310066290702798841256696609571695045806447646849904804664553412666866983233113088165585805510954108475665067570349608663766433713724327214371458095527803916370911135510746046046695824918671047716052068860635245312555410232478641374614240768349397936386044915266551412679534368736998960179477483358962532798470189169167172746080739821126901767145889586433900058080311799309239839064709746068553298772132597202140518490046470567708465978398200376551563734691635580701942209797804712011926623914199954491234452137340843756907869381703572985271398726187648299141428990435384184014919952292626461023816626531510520322831003556490211431823708731812989313375160406369860079328739767507849014720443191654809505356101355322090088934352093194732148642110706270026625832849978749658280757008795675191775856348017661277245841749465357403363410350803116240857645862550730620489073531678803702499551201588011067300850414695150312464748560895196688850042685269123003616555820432000146330688135255741917963325828064343286440744959267323535360050893269534669762225644593075350856557368759873321541333618657467981450410854817180828469198003535539770702038343346945133430604141964015443157212136439941168964613503633339873107579754738423412090128257370922388429575445018756311460312973354822492703851613690727616608659122584583874621781798403304345193225469248006454863116819368490347284995305886585190833881481250446998411721216784789838472820822010194197901714734983044672940628795135776475196674852420507701447329036850722000935457580666497993900114583545055236097465078144632204050163998428274817698429011287607617119995719778605817732226879350026616148025453390288257881799169701378654972870410721653555722324641824963491121866290900708839675267234167981899252615666586481618347991129582623511131192766133282289447796106279634100716554616838254418288040063711545388953662559691545710982859776692046947927009864370637031748653702489763439094744901557844061413725608290177749592505842401642930251049414126835195549166628155742890803801352227281653765305708329657088974860944588074211276591723366178438497719100110020617947379402613988335342390979743348304292824412078893829109682473824882454625012309663066035912431006226983743856193445449760805012901608380616278427603050774821045773507081194111184090835078287650876613867635818360638778785383822876913055151310936298065596337095174679488451214968227392085101221723935861189133361783761732686336950289566151988526140098071099693867012455455150344503455504083790814235529041276084163160328346456593999731420997666888774935690904747025795583262110636479984828448295586011569462334632442768167303958013009776910694355273851947850676100160309230707997415662160909815365079652223134730885105496989847628140650808431204762210683502698566936756102125484264413432760864631700056809336887622537605525814204705741800066151284531409676736006820454436201438220782284285862167036616740727233939192939263452040164396559135387621738107779456203314342495539649636120154157765220599638372349233469657350674080395588755711233270068152630077203641920835986190549057421591672588148272985502614849696019749537901833269866599545818255201797367622288734252255464976849480238930097809620938705116804082277524320494488644631905707559385201270164404197359678719496590428337983140804065382064379018031645135009887865232146039356658341293905565403662571369852318622997966830791283546843407313303915769290042567596564864568554610267647983973114177046060017546018384780148661469185202751101742554745034355335047052377960149413338716644401338641785191299214097212126151901638244491667537477419069583922510523217514180507208143513607720036504853250894124656144611355207192440715778033794904231637168379190798971592293284356936509281372751042392180601500812837942891865414026799794374196257943618122827168075416903748171162541446076669948577519217159661895887827799247421622357868444722622391473060129067171720669465252392845074569081649357693524055843843411272507800559111841466301195116861173859094380792947091893769935369795108804577458687119913594009948733782913849710878202169436712942931892823438188580693369135840067489361384080705588680528419211664993291057885317763262205074122667490166383658649953459740246100813212477611962200136397932984389017607790235158016582154536161799885038913954334773520093983910356244591372558486603485478038668133438979050924368511166475620045380348670511258110148675535798891506299436528953115795835161384602283479625294058280923493528815321790632987190185526576409513416479482709611595943625543630015529291764705391938958923139160769446146882396823420946460329685566268164323820458786548623807901585255563370233356340233983366817664641753256439118196748426859646318785539313751774884663316082675434567628419794801182091495914124975650160821314742743471551060672905955063006145351198989834772074161733969011862091673568784190480593441701253654272789703756197895998550825902136538079739347269971203733749516280368373824339249534193314927943833050851124502661004105784228918976123495414777258273853705303237994517770371166280293735046699621239014134135700004517360210006231113133906987575939018738366599164496961158742923932116648726987674901072440527616963512238825348391019924217273554595797284787455061403728601355647217382590845730955801663258884364358342913063999966471701707084109020218601222246012445867438291085665454543848744467517717445800766356882586388495120335201671837155027939939510855898487360835715911645267670234417987657321356564375169338695055206532394869533240397729610589933124972398085181645518394890243931347661061629801165739795060516235889213149259430308964026133817610188655896017104901173837456024184537142939027774787982025959409765884076652767492775028882512402260933506060641272936892839075057129233234208343237026639011598643014831530608883691384279626736701044547319489095591864206472706581033492735705907464720477096244542529855771793528001003537318493076503996150054781783312558730729314696014735803134620431794591126606220247173395668139657773385241120683633929098980118346438330678451141919521697304415724245607521702046918504672721910311983662869882767125882726487808011047011109293581118380147945348470619875264060352061025670717130529382029550812597371813941773533636733539430410426553145075578828376088601291500042938611047113370348565485721909908454578613910327651423344003852787583443898422026732619012503039397742472059124083414024464449793624092892218098221340706856031710198853297734058798890903569659942897461520681432532694417633470287015008211269253871760349797145152166961608472372693088437282683795019655162246639865975093885040063839118950611224883453850821212291628600692817085219164691931902335713367759492276853270953699022000831616252333030009266449974000542776752614237759581703183483837982813955092473259627002074912527556361885602290623229627072288809671460731014837889272123765700695660458906809676260411754880264556484860753137929546335120878922139726688321430116363025149430856592343283113588423959947165071799414632566865752388082842446033749837670556483333122167723288027503154038075372594012680801119372091476188685665920356633083090604779384424011859982647836538547622152842829974753465645661479665293685124462015073053900274583931434187028682468760209893489542039258720024023621689502187775307486684480926037672086705008098427257397903597741072432971156701766404137207611281859765507783920734273071213416747566493867966412632749850950193521665590690590566304008423415808435892734826952320456524931923982402974408420905460532979889122072879313293826938778680987942903928424413114856639431190587972837280851703193151830064811115056105862638469200317886892203453029766069866374184567244101707313326872002356204480824237930728796492359070698016304238962531356482414701192629077627340784360666424398483089620101977430147696406531652210770699434334621641535400943699917561255071255461742485548693031032202481100594258560636888534684486508515195479846663443635891856951019237508025050492565340279049643641093144781342182972483752045558649765336808743654557918146217303781850992862073085354533542687578790671126187050082686199153099850612531210839709491924875899476534995214342550535095835271985893530113024430066434805247634939137025237972452952646370746915480062942305179191473094326132522528270227270338558879823523496613112891174283391194371606157058030302879890135563146235601353004685637820305083762504830125942406147323555271558646290491558811609287894698454649536490938204238153497821961713580263938772170242131783090848259306483633922684569957881999850644670109043263202362305166555640511100169220063155510654888144774157168377692542650809648864451416589734569556664856817475072765689375419540123090786678068725369389702191056820159698424506377117338511850063786558425853225403818808592590129256435831916254986637827276307823578779983665527833950483326206679099012197895635958837363294027012119394928515372236879367045898443121695498077241223510239967206974921237313438325409362911073918149792893980812679794849240491262180448997337744360072282093494662064243772048643886352840388636209245346726730878350799649388864187809104207482828191014367862088990732631700017634742207654891932263356178454100563946257021717045899197289946155203600316991047319543928661161606485620149393828006904520822440948966076722300086514388002441552075167153135900273481996063835232508122788764472194351058116879458738061272926582509948993525101176743928508189520280788769287028910835112485289391011806462548657833977593423167817877318677216807898977592049263343183984095791251157843861206111158968810770645769643066592495622843796744842492639432009989450176199845457296324247927484893256390575830399115070608946923390446517778246500486279683115153136072325954005969820292983421255241006408046118871526377514504954667422378531215941513936527825785277169944702688872394633596263387400489113300802201001119240914440031487577458179967863782964541089465119475999824389822134846416515336497957094128511578580834559920831136283986216288359904751533612539268460529113823738986389998563722112286688243896299192730438419853782880394103992851267364311159558935217044140149354376349083982591958107993795131033387374470255015762043074445701150610813346459127019553695776262480143470674420008765149783251588020833305283477587241025161572121820984285865215947477788646462216885156999435330784199979714007406356989708767601160200351234022338783645231658473116969026104255668733663534409862847090412506950251858905012748929021632393973693984076349382331294583376387651650979045968468349246404525377261373578114095924263745139900963746234201441116174963177030794764027965616746359813825390543129241872930622409781119761982786835676585006621537664322869497296590092552514621692156032083756227131114265531288599272435247621772184629228029984404620569201236892260878710630322801079130840751812936940469940383123236522889705203996049643503875546464007563702025010924836884992389389543644102724060929744304938571894870874709216763771215644632796267128685020203940412025996324421354186922064842872977589481629288478914974094252828556280830187911989507718257673957658204038949878312971144075224555531181226302005784234855670414898934106120320361269287725947509335299256837239219529469959099284456455766395907653074432944675181927364510516339930207754034475757940586096185218476581509228032491718293347531824029230834584696032840890665446305959524220099154921800970595186608795062505812006684256808579423681239328292451385393720201046016757777097201668856643661034344360072999610705011054906305143189276983325650071065336028238875377677070372164425286301214102971655481494546509709709075674494766484930347802388729209414555601084660667080852425618743036568132035467902088162793427516265714217522683273400270903803891536852146259151194046143394377236572373595246757986834660343321732207541519495368059415877268498749327582324019952884382883611767967463326450939807832285907210686045462093580657528920537253417216216399432120069271906541226259989480430834615576875580293865771070024026305406627020122113871136650430454806338929734534915126982001284863901822880790197490651651175512392417892308734776691823481839143742615554709126573318519143558853121615398988968111452220368942429163600348180920054381791673544254775162204321851118357006705167753967673578057356724297331314919720818986112512180340709338554411571540114143226729954885156512174165183408714117733048835153135808267278453377605751779120163485633353475836557704341045256333300981489140361666932850627718146295764489134712825809740827234045394179673062864104691002938802351527799511950349090900959965094717630560011879498726436845017727594815241257682493751913061117092273578973462309101461079420025034746337446478797797762457486794967940696648564748763611910511006487531342218649922344180091104995740585376212902395629798474499229662134482343038528993033109278126135586504898888012276852455161159866446929866019016711910337230608948545602645209452121400412283289933686663207025639189111883386770941819759462911608946213611625507842752513818217016594183713762478478328210263307302119684953339425756128744010389373881902997980272895192464158806784164035239212802881236993203040899376463323511288277918816861957510270294923792903794068563300226494120996078809280149175337498843255112554064057429299754229304725248743408471733715140512052440413148363951452704267663814072392249798355232897556995463932468586314921024837219549911155571806966074789362521080776310360396261843929427870221049092056128414310549846750027812497768531909704378276411424557135620746787849245754862089680173860262313025809169886793470402086263095260277750357959510281621780848721759940021833258141670114596493172430199744764352303688110577157890896289564506416885846085785123236368399953768646164691685298854912544319965099718375136245142721933993101356032820675730087888364449787397997694301684148416956592505557022829382189539507906843628654420616332013233162592823522039901008026090090837747382390140118906856865771731906383223151375635577560478981832179475277524001466161314965783062458282114889048071418322508647868245725532527928160421264074085653432580870396400097936096229572684238147802114366061156587188394513885599031452288012571306485324666470922313689097527313560406861551323064475816654080969831818197889823911596007786184450947224002196236558743060082178951832648503920428706710198202928827235614363817034703023622915161036659320243196115849778395600421131711894151188473619901104282026640792213438619090562930607144919577817013558373789123669231099927809011803575937048779069374272957135496279409655438389928204230186661147366876112529520579016237918042097206127947492815672623007087586707401158062447730777874335954802124725975870217286532178799755684875252488853995089001489960954145957116618260580770915385269896409521557391645805562959836003089677872949361609597888729133123297328477205559236209580539513797354822149266137676589546271031356444484417516950568801773020857332637062015755300219492768777380827416423356767184798472299085747343734538760231056342498030138705126843691618106232291049732392755702215290053469307822463725304480386103474006118738214586664299559591365528737862060845499512621613227152122273727786618882172552308015559242299841372938744322508984977774688070572949665414178839727198555162236262213127877273462654224835781406429285527246696420273137088034285501838214656665822259939794829366565054624752715988323982615949191696311753299116583893754422641254717541700687429010792885392708958635396413246584614907955341824958895134713474115374296843938500731360019543753295942952463083871275053640230766193015657047965567257105759290791099396448272830462666247740813172600799766524992257017005222472565630003924892330550362864246115544876832129296197290835098423721064594580671720913169400822997030505601053665418755933930488902610562823980786572323640345572783137466246429287340049656587891905389713798986952767111073931229383598911934569484070748041781544171437324790991936813647784224593437699139461861812086971844037067588247807320561733905887809229910361332872903718467560539747216993370259323962775148385818275748196224252642272765242362814831609411026205036796874997274406119457640835878761309244589873055648300141743620496552028981595714301578957144598212549109738456103734746054535942854232066828143677815639820108830309757940697558507759817729808966027602176558397994848083385028761011687999654229836908434766925145117189728936742751855213265779509318403358192436344373738813431307011816010696522769764640851164036858498181878561437068574436200817807069915169677924371019760610118930896787593654197454968893534976309094795762778394751532965395162656015163261027720324001885376774140422967920818410360367908457295747340792995351015211267109030142542795547100892146950211868153402162134202116774020096693771863141683541811744708052567980370507675663117078892826159856340311700182520723099413342123093700476920134113446527707483804920273269084031425675809769153512939203001523771737394640644907951271115611583636264331306490475871944913908194076915902762047662635324773765246402697256746808584043770251058790132588732868296758150933197324945652637107152284126554499917978974209464938137416180253017283921066405940162255151892794861261507568295588296055576172717848408005145764283689537732347688721018264953811660755350300325122878772201259165361575644768100976924203123747480824313446850857056510137282842686869503254110412242700403186677508846475774631697205485867019873765557799715962357342996935601936807330044339320350969046238508206101260006428773511360611398402202548847680539676377279292052572972562320514799389220587227684447027139440223693104875850383749812257805881551099532780144457581721620620550466378981427780847055671070062572352298701584193340282182372339547501233269445753868936045417764917035343267841843215698377757330613339985537158879152172879915676936350038028897259521214839053677534727766129872261857135612748656785717183004470440360005690148893734306109717392709467818818112607073598004588927655625062013230483691461058075763081081418077142099813936859327074927229227090387597972937282643281263070166002117764514356466841369408011038468242914204574075395807766870814400137994733054174668235262400817269547546248796181901857218438208633207396687049023992629487257133181465877587501282842221690652758726764727290186128534675204178014410187293838109413915555970265271891494282398413341289590927342745953524337707586331648212043594110835496724015317556969388726119925910531674750304710290648617838704218116086791174248252554141913991794194016012729838393003012515461859344284895482276198555983120571896946559261098092810860190953789122774120377530529744237127142233008944006313180315384390131820745304204665852228084890645554687447551448492274810745707759239623835031563321694297787029698187327408327853119701844166331482374079454912082309749971583507252560618033114712303549718282248440087191081620261145527075023995343923959838852858396447289562975688371414530573069864577814164918011575168148675894129890004903859009897468217581539988682789967251512336987476553664904888809624976425335972757560426949719751962904691000507388551822294959810400227971664036252882602233183691121276906999144332837446294764449699794163089194719355635388376405044658091898948915428487451567398942795290239356479820606316450914853694009289226543601476377418548513424664336270416202818714569913633415190456661284407971106063404468714568906243014507761906684741674730616799222720771213246617533802065875693053947950405977475385989525277448045779207463349875748664968850485569152183650084434927518303423295133520792046425780149985701684814395300885435112680439843321329880909514106275284251498383974593986021474577633735270318774701769616274420517155975168208160234980903858986718668012367517328991442869758701592399195839715443801236666420255387822711311559390160495810499678859353186501194146243530075630592164060746601008667120971295997641069692770036529783130421912832504139372676334442327278223984109889923824194864042826299332007808088724785122827796501913882403283245935910266737379091097488065430933806306392881736980371904668569443132832194736130308141377364724614139214555833413659162326340353066682279881374047665925290488794692452870104168836074182553434729520906752798235187005365481301382694052826853459680730261481067243246620469343021844727322258446620217071665269263603876308322979258395338877280428650188545863485828224783817934904433537653980253442275740995252626846747905325212227546412831174107171547419952443039693043865181651147933923341500201762831634600989011728026801310113271699928406205698473555222772180285187548748971370675539248676308704162130957807607729160503781222916024293501113891834368550706919781852121017378385237958653058262637089881358342513617037790920885162272586829189013772471438159428726742809568181267733077424364845761914165411813111450584721503233991315418913621440452749970152834524511079465931242251191828609680253007008436599138839716495501735696555598726141855314421416355086550163677079421517026945202975664522242714190258889340893130678203340555884088055413549977642037746043987348422705606641652054249511818340808653489418115964024403673765639364680112348152321983900195173951561385019720123761001352913856092375894025795876037135589205943048521675103904185501241284855734301346566386579060720241972208268124275181761024809752039726196953677425000159095696205612712218414005085355027055043702724760757268661497062340791995521819934677408405880441163036001865237859656531427894424315390936096516233683826635996228311162477608830673712856116540142341785485777955158516129075576032569939307612579249654141245910434634421898842651563207592886940237164697434008916429561396350631405154446638453325346438297206805913956839314539131430464637015750810052451750992023548240242057215855723054592197515642476618837009465763916302930716345889563938867649707403930288866996229839160984678009211787322147646004902481082724098154264790241002602368509153855656353861573838620033524355334171238489899914158066125363791140054098191613021154632429281356247284443517065574817925514957672957156342944864044279315008432945111944892110279364660737149274691776186917857756431284346386917251963813201411674405099960757355665024443711103728799440346123466723405750919510656073744979948635394113317812365107032550491302914553930670731350267089628890966407927105201646872536894329946674689748529625159932361707169850974474493794360711780611233768783066431225954682287122109966094047515162300772746061417863723927698007926527045721115970685949906867960562039238216608943738539755284072651740171761954273488078497480930033783126413814722591124734871378143952169589668662723349672931532977857734357565723098321059720262108810150847005747644624880649423490383921483933886839225833733879671240708751074859649726896529564506300677472154099751170298921651888707940507365056415478904274532176055525107329756962955446531115919414809557523513237525557518265773658366684303420390223595324373767371133404109474424405935323600957830073911910319056672298731609403134337946745468362025327378479541746161264972246702143576842567365446307336760270792623194551253563106752769180133789620352572874514889438991701635676238425966061637815274682085342675783467217403450189359547567044049988591082253107052679483920541265472943305205509958264151013609191528331166645256359023168333336824963218960118357080340020525053159098258373713585441733936845886191269191691795246091514646116268060639091509480204952168009079518312487861042846769070579391108526828314574635623654006002438898891780310120258180487640249662099977568270544359419853712109162351438623755254182609619089361922117402204722519549753758647636994146787221068910263345993855056793203546259020484292135313370029870629351029159201062632935336151011617246966438945782250696297342645159463349544817980652372806940634388171394215302350940498149963220932437070792882371336608277033958874267311588182478308354401911888681117388916153022175820725046362929836905912648804124383157736713431024683059857697722549600252595338397714403463172807233506585061946942160839133742184689506081648018060772903951617433724142791054079353212377816185746274896119465835921957462910421920800339388591926372700771093369507909447711481069577937955953106607881417905503560665971415275228116739395300869709581059711540065568578742997307541212530621474672596629449610553880794233275282663869547941807710433762626515130113475878210786744035831416501479575971156074102465797967332304288186443969044334412222648715065007102283667789743834953516060820635099438216706204831386800075204728001112868580882495741128965267644082000926001990301041182592422214919804941831855312957451693999058138344365363309776231380841231560338877704372835877187102305696522546128773528552540993107063122108442899663980901386364958549981142082084506259739398393593179103771858896472268562206195194147462792872898188619981706550290579680357510919811884888587564573003151384322783809731546160590277112310982845707678736397367016450352682908040943076767216496942960724055421757561206456498516567334333797049560745296728041485680517010020811081212261843541665051223550481207791127409852905926160464446246559287601669963093502534378339200549220030186369666984020085395381689894958159446368865344575842930366467006033259474845387914326066959189724417441757089368952161070056858629920529397079595022906515550280350194923499019687319384436557535654318875119968040296346659098549515072859459774302773569852030149498445024615738868103245862670997686510214436458041568097888181958251171125043121184934113536568571358541166217309001271854930137422502737660331515576419397266644942169233979419636957370842584091097827176450567917818395586119316391386397912090957268744910106116795966539186902141757152654868772714947511159329084063754574997245814697005674046920282381621972150007169091797488993659941381364672907976498979064416065591366093110053995093441944337175386586503352200145011409330926196298210536335090630340012641488443204520204945344212922053482292945323283636900192501543669601644782910987239161256554337188412065382103682549427160626257998693075390764372392346740239440476776513658780940022229271566831785705211463130734827197534807724799819214938012202994538934553136215089240716573672691990800404704321239381368537152445856607155623988808815150441404155659916902590223933632941842720804009672751441524009761103958471782675301285858886434745482887669966860119324121602446618941495130085645618073197206804794132469019814976761272587382391961013156517328781626596794485689356908785376275832206314622364286185577931078542393603296907294557237995729564776797291887183058890049631490434751335063244816744894022290088420171636871931877472407499070804625191378861288221381998291148683358114258199450409456245287092616791117860371079864766525080284190862829429034043214715500186149219167956651241068218807807162631609045161439386287312834401465950926626791611095780146363912775798172385030594920602958747350524139239605219325984631452106819898205082221968064508668850287720752089180869049177934787546267931502383151149269498627361596181313832393873431826207864829408991504614374798539914013939996106988229325146733332193085178895532560196170923697471141941186586071856373819754802665325913735520056098441553832677829032896333966427992314777328042080279392255391936336675359463210244186564005020456741064976253545594579991229015204429153394673428497365405400467435024534034923726470327378921997198029777151798405006156890283598095423270041182406905564020557912006725259429808257843998307585639892360556262971151907053771771285825037279072898759496642739384371978700863597991211596060348666960764441640666080654331192754760844506875936846465341992126482114144945312318440096385789940882663872093152146689967421194446183842572853397812378166855388678722733807739371048108163210363327936963088518367271918629738019504472839003239183505100069809617700109681005070553431561699553427132943431504563283440845639949424558324495453126595283914252797411807702204010289463929771550936817807668214510096701892422073336843376577997557009997380764951706669788447716608232163527104729007796816253272683419540148164903642229329363123004550212707038605606238890289622914161315383880355752902389221205508748957091612708808456490116050862861327471639222989254479149119079916798289988922400406100569533031721017874260969425911415638147471532501488988738637452920494918907163169832200783347122268206923428123651465956250269881104365176596957950905785661274847859630184241831225594972559695466768325730544153623183557658982344477361936792843675384474363350504304579957355886658886835776884026337996870607175946360931504817736468215882026819639277352360588355202226112699515253364287634411343989131439678239953723420442750667672940541855052513579021516713979104413473490940722626311106782497984399043715912510700587093525349235181682145425273645395382950518418643037757229579346864358198468164670626478293245378372566119426126571976992624066964432866041223056277028884963285896352301050477295897347253484835024332068030740855298368294401165791799845784104506900775558870600414931892261805571590129924203883331316383449215219970563102356532264366595457676781611054789780798315874451495418261635743492516879250255556714943456800108325758051221099809989528979493768860959558250731347050012317641584087003362081258150522818971463311375706090562398851819784332945346988512133430912392263705781837112513577605674009090013996393829919687314172494668397699654133714252488290352925744489385970276300723149626543786692802465482998167708079318381595788452319372061630133915123501317433654774262879134647323804731283175770937533402155858959464237421365339591542105113758994765925592098164325428115843561433527899491689836744036265901878478709304904610416187287754574021874807240330131933923058412203009935522619694786034088345721512990187220489533667637072315436918936743585510776954550789417052068225145326352570729103437364279974776218947416081581739975870043220732835202564278720293255648843386429721128737218472234880197245417905966254003216280575770309799096086112724095548190827698721888260021347879398172186421977045645302432419809706441629113396200488488079784356806953307847658298030583125889303718562694710282686811942635868461367101019778379012337698964697284341163271156147025299534402514735214067252807712162398308901903547043318402714546557862825493244884453873725917130206821986872614159218332146195612553406332054784744265271235276397607655640602211596774622004944468917190431691822772420545771110467601227212384740315405962548071232493853061498343654400257427038671722529885413374585005526493471352298522214986491631938246276321238068939956346583271281054112609236338535546911127385302442523795538853640360409637068101276770647944728610974234783105143379119340076904243516282351289186167979254551819587222095056025603467057912009882554314805394732711648451681049996551294562871671035219506121561055522285562651984236939911105040461151849295745425061137304752081547904034399060233470569953681245935502918071319837380341630090562002084493913934191120112395661446011262671492946554717538275972157989965146630633103425281744045757073904530090882011320119263806329951686451312185236052530223508371262767174406022834296516909234664029182817451747111719380248119207401585123684747979710400210368722051784300478194314355913328578020210814582545132725213221198601172544885095512169889648835065147907711932709761963454560289763367569279808564975752464484705106396851338697841218519315444128433523542900186094837159963732718356740409964986882689578533577539443853741599252394934912835322152536121438121436306708886955168069688822316205125210815405149615661800042555120776147519877021433144581426292615184290113747265900866113736518998916813969110838767989979920447285162642211841743871142889937967666493041809022643132432064280374104133167373968250521527273717365636897245665910614620904559474003134905459687481765400639860037366580009290626078776593017681331593943086715352356681200937143590342718812563066215111659999740354651656760704575755020554195918004236568134364322726725837133464315030869882997330408884296447390167984995609039860445072392252169010369699681885201016045104532197380457346044047314454740973409285177999196530349501879513159258061683678900019736148873106952737722796312248401192303091281044522021730208925859504799805804002054611776802153468668716624666808217597734865673823975385394857938393687326237388197272535121445919555760320090952515765903654384998507140536882456805298843366628085103359101629606456291514331767489237847991225428274086415164500467137693762033709139182079043694367247756235576544844416229849081281891739023739470562156999388459264491059024172199089860121534075619181104593641077271701407472429163483659565801738455650707069411274541689325418031819399800836505620475330516010411524074985613076246051812878602069398177047181194001208526252779842719314928263667548590988706544010870002036397468007656153166454737992477324662285303366570702887440688750336102471245172168553730411730537680602274948462183008258539186878176899935025862393172904466311745128522491552008594471832465250418711564772405024634681972833938010001985167543661014144011753379115865244837253383905189055021369413135892548584012114166705413887266349928240220082881137132185995913176829140793211197252799118645238430238122384693451690322173493339811522285019958313745585911105009076672502721888260549804057315447801896607253207468814473556166703857898421280732766197785203826070073376592848853348464371637727975731909786115601575589969929734974583054145244145027614897260991064849711373039865596910008675855777809445076836091959796315156173041763760055462862011101089616596220904803400304985838667665879175062098848910454643061792665110242506901582378980140693312973165128783016963363216122192150578929208040994039546323459568736134716880058849022682792505280218582616111550513321316321858474742042060677029611515744405485134746069024019433077110039286397172903908790952144433387585334948429078708403659896718361473459856285380557720533981845128009950329076959939670219669886252734545333540442698373969562998123094806273124144181186574772205246464146261671235709345977044383015752644552980469163600924610972478447931752678203199652601213554031394474489741935529509995157937384813879374201897437746754373025948434325971039426369769401604412494533561530824687975298309140907058883333695555744648087959724126933545209703160427629501067857178294258174917585293948604283776043847872890461945945018811791150882836031174634485802441734609176877766311580475420254305380870223274384487379273297286739946234525451397574776221847069741993712395953055693967383549065441656494243048631888225000952237663436516079141240090157730000484911673015106754833257034421729996416852482395888912332429336036513898508419810653663105174308956242882257775201820761059715978403996104613969439252680785896876889773522104719446334628753306651848135238936905827720646173926446720076784376411816289011132140490306334687668793247887249710250702731376976942874148820231721605858472766544962989330586764214409412056336488100278148582596190706949608031232331580437982890065141612103627583556662519016654607542726444610101577575694467636476623772785724306369357117755103639379682396980066680847633817714718287639349857124278634884174181450809146291004415450006185742356322341369234731071919038489542260076469227794896923897172828398897832036970279225751572465734830261747933957580492698873020169121940445768155907447075474967047126502313085830256191060243713381346233362261122851437058830749908275431510991403329048640040641263851404735543126467646716204375923084932652078144998397342056860924127495946796836714707059097379854013395933983070406684037317368342891823673210634649014979245093178000464721713630667108786156032313799494946037303467166760670112904326014589207154215101966598337345347638951953802198801385271583727421294097435986114013625296951110862399235357377993960470815969886826265327470300417032140644587196285457219283609672446022454585914490525088641470859243080010578378953774489418414771625748860864461188070598526227410054310053830829109138285923807017465911852907019715435990885051415336655811944296433319413001015592038938586157910060190237004491398931416832793291939807735345688900619006967993495301915088246705908807432537579751239110150286757240098525550859425495800052898719955159905468633969557674333409812857289508867204943512486568794829074838084202589331206715779356783985538776157139996742954588262872449742257301980026303027197490023012867373731320929291364711853680113559973770290376403517165456201928212445755606393628112816486681357073769958785242972683514987952491897797525296508810267901660573989014831456064007724454101178697493429588141781888069472828741498478915791069871588647925857680501511494828205758963754664200708646014895537334274477345879048185727512994246885058182128186465450891638675468751146571609375512683112661291491322290972985993757911417050198103865781504413992378773385687820919286623452138366713658754325072424835673333514417802419720871109006672114223977511456817797375902352342886432982435971845631428807280053447318469898786801232745463725877181604931485669237754085944159939191527517681985651798418552277107377545598328501616364812356658769439062136997913614663578826493542540731038421859610443065372271723252980350499394440780216596494072495955192594281755939506790645481586489681988405267996491425361311533281665079493965285355573671334032894496128568600512462231755976709454528035351343780811742613777844786675351724501379704875326123975986191034838128387324368024971353413292074078969586841946317068468218223255251837756689369795381940025151219942368662202768370831696965655151798310346450380452638483944157475519901343622621983508513289647106669950412540062821573370231182730147234121772767196031273071910431483441046757069116293848185628572015647083184697512523986782342454365178634541224551031496131789493121814955479879228814439149018881015290300321654697858816991316599781338655133642461708838601683453136105247599150474299061348474352213504199514702004127223693123740803232120053548809522297475841927828667495577346726026730810776285663921988564867175986437806238300432235567435996395764477476989375381884205320022597358548174132794616381273168307240670556563811920467859028372705207956629883661334007887417761167620845398002641544483882681206082957993511625098406342484883818196471015721295530522606148075990193806370179341300920822734565069836919211765182309817887635432040025144482689846939223231278795775523129634750545725714293597463615797400479959733204559026273190926684936744370949815217530594357947114185561108302705258363420922073425251326337916295206514527289371953664797251302162042469669501513536124861210970746110133399519054053132825824606865425522891153354652323679178821870169944546804262840991925688865664125120658428534176604308913208425869675215178741418583750769022993502171656257795239347635517757942991073499537176073441365187691391435551331493491660409983083119464558853513386760979689328847203337455490738929712180376478204210561245920195247799537990564307029339285425125328271213344876268963074463152709419057677801625883224497314186039938954650041327890084758121704787923870242519087618423692550538348054711165718490302566269060036012614612601416430159871707215057598762742393444412248910985118658778103629169838150729597635569565109624334502694803341473400378462113054790066400000607744783617082005115156896861146774792965974586530225055654603216598530471370583071577249149199086389376620369197395670250972279154883773232409388602580149917197545360266956350386929427618764721314952461669512016071085320281702711071586948309546367898114659948616243520847103463775041997855323190700112810240589212595114442887302087492387141271688864793104796439835889423786201494147299271098565342454206046462018118279834241918239836515072928700107698372222185540178648060976990423650247212386196046461843052037670769854158999191970012923925251644189121847203244997433841882989857142272899709222535279049668019477560443016424737922118178458745824392063607355731476765071982462749702661052568390352818836697989882464632002657655630032848186483078528453171462492174641205860208663974251478571867276125607005159441654986231146186219487181081128701096593744558596290970312519606649201714642374660661138648160914019837112285850283184768570045048858707866888419607204308420807513368313704960370619914284097260715922810242839489342466219342441097792048187664243838872772212194959841678552967217397740758349491192112503691224861553910639277163517699912236821201250837496271791885513902444302101944142425528553256795224427949337828636659935229738235375626419746537689760657405105419128266754876301903383146331058339382525547520442631447197947131770008235737752045550972344309491373153681567823439379087834282183578681908695920928890638047783847060054846829953679850512927592505385650594861480184975706635317586571457259834730919929415507771918091111807629674005215470237009735495158216419937696512613071188937611809025247484452200839832407235968711541163239623732263485833485381126237485332904864591734466617671869920082556279946390810568540935701284828962213583345841375281001275878054405770777181834855886180505732731519731809355918281730296752554592137075729972843692622873163825864646642935972189566257091144599395331628785880997148592303238009341911352324573442539106540889928035130811499930735411556345141305025943740573866551803728159002256396187326069819492389462257661082613846488097223778749884367192615074717827794832812820666225974378203733973435214302632442094562839814820149978855053051861213225343394196799036302077473027646563079999766941816877905236583619944280138358402581686505285382805881225893643280266559332444741060959682987625679220896891299501358453415463941770443294434443092560485617895116225960529087518657853399693608422156568806916479374132185274183879991068905038790402384619653160578688947656087864697783255895200184474815088851462848196808043961870590218189399697245839746889448676359658586150585713619412471969734976562037810581757052913606375273368782170760621024421677740121687082892283127599774522819552227963972269274112972759937974205056316390919074118770284205429615350130263577103786727123643528742070148087005386336469215178821521379080806420594469908793867007409527193711568659168301185306458606578620122331985293768614946316621596348393637391083753986525008197513479717115028703761403474377955730014423903605531911866717891282572157381152629439812613266393658994680857951689295790001750149101288561008336074375065431612588377135744689472969450664122836447597321527894448560054673080916280942897213006130241408410956747377225686398410099112486980201904784540515158462867532058579190241858228270594796189542219015003929043343883154329544323666044519097181438331684833164166091459725026019126597273562682635081791473983466974868527770951690356436478413062443536021469557209397348834731068497101651846215619245734397236006723579766408944401872220076438846218329351471182907357599142062332124218857760973772439140123879541162226837685079876099138763079017784044096023041383849030049812626141429609951484655165129847649220650500004581426768221851812565476297773574725367287611881779909834182595126373442644795312748332578210846316868642145855239050086570836212445901534619686399417917558443248859930596947896134099749438373196407981235621774700988244576588167936116220149421217951352749325099860686235537869183574531327188878149390516974844139714318795659908013460425440086021489530099918450935325776420749949709762123807637616061592064682781408020405647733654088201973593141450129267885886303083342987302917856290258852312182122722187151396497651606404524082286329337859714244621804124729112817275066334185160974356932817527307569423159944654704562928434243758272481788824587165153965940506673194106542974119268961506605497057979886489381017384326573397982980008356156409074364280568229986913197421308374265648357182172002826799678590650832972598265276499412248187281816412535184367523550926085789747390899794555805183099690853911987825070811287634903391474893563700729039227450195760667043133300092537251185235648925860488396138839507019351156674507083631842516272759696661487161732949053020918198381419614823418178679427181554806493032274589290784620248215713478312709528454596693824615586038993007968573389560585819293841791982572773938654885788489782891016810653180549894961315375914121738839817348518497302810166965087161018431595968172980992632885166282026195972707666393163832721515655199057385047200467324653261326275823847580588348635870352328168361517374764059742275188826049702105091071084756633599591285127669572060523707184490365803107655678844239837735139768036767037737971934647814545387972044980726761248429105001936494899199741890901705278898097627886952993050794254537177132829610842499672404797253098523264772971484967258198493141470743409255143797802282819130914510769643870360506173235815037218062687002707778941748600236192230741741948344615271193051087505602783777794619078379411170899939586818796878509113303728084424136251768391136348901298768114844087432488924980777317812181304684282556491353426696307651312180428479822412140349591256767295023050347039880408188406179600293254507955884639921741375327863070897011220920397376513418641374054574420092532567309636194361990530641377649662337890253447186434250796824818022648243538484346843596124697891692368292182408341830465296347333648470989502071730848648683510992272663139877324338949306014508553066713411510825540777278402016179065185487093587268519653489813702282007977458964823024958514757918505993795340646809707172858881840935297689807014041156131260878751689837020897572418370650537093425604399103894285196499078062362701519184948968152201385720955146919263656731099948526833221658192541353893281480593753214119940941597237732684714118018707355038533464031525170119394587560528923999817735663719705936631562681533393190516768987957433062568773067939734702770717694953068109822383474920433084489491897925813333685781070330452440214024078695780549619549987316699148139036915992891724513305600690154242628924987121088239326682437986582084320136843166231944865097182087227442896228153833076194752114397400462691192385034696409763179015301155907318831064224846809879951086314740043803312324952820704177759163433754611739510974444289762627188420848129437533385747901331439987256034190303204048164787974240866074862847056439734137102856060936884666196730962575796054938212420750412530283502179854602148074744696812051896219619063092673749524630374717860032907686808164673839980738495671305907833535382240640712571630736760958252616264443015524738621435116404929418027710330277041094963745956126315623443476753716496189336423390948446539633395341341765119390629254575144264753711972535900803223349851201445389178929095228498930992841443197557753741468201405168095329436977026212315529864089308080802088162380723394078435493234773067371862774578804143617105709091836124660924348028062773502554671777495948056651009969567353067496590537155353300607672567725579062798466157390145450061133477997666470101925868079640472054997109775839097605565561247520861469777490177444763182298003612525148669626683665078007355474476063580697985366116964625782640973005037635390779117966350467964546744151484649970266795213113763907484852155568709395172278960913514228726342169661650474064763035789621798326754807989405970130774110476040999365222472513814014883602622330732327577207159633793061910603099421547828921552093231381041118189926958808648639516130376434237922149998196035477044948554423887104310495799469216076429056508974122088006645504322897808410987100707427108910150663486932318865024724814613841825488294062239799356829469696753143090433888663121898659341361898306767816860455221191561103800249327564709301189969002665408250406356316875938377319609076848687195059760328534355339408936401392970454243660395260132936735426009819869231139308856091699858180185928190242205650505218882594396067093527197060693181793086317393083649434897628396959724993035311702956788083769300865202605019337616132666428358351359708219390780747539241884438887327546698852523047839469780092802948435688637348226855161708854909971657633437782202471338643054238253715620922637905415212706823461249566082949572552237508469380480418097421351046391500992701837670115052012434881963457209210596044867255627450159554210053204370879653852636066306714741533443017759074307903090321155894549408362070955117427006187245354459469492161223281058156841642221113727374921770799852672919588610254357848414166785653465306774440205098825465126126747241081860044441164737246811424527769982205599040103294657443399134120427935373632698884102513523800490676722297111675955456675249048930051667579528447322889772238397988245468322527272989660143806852251366118910186847787630386607285159757979812181795187998476776049058309515543551750479411539125859270507172379228031211097705275108741742634711797344556773316079081494060990566950494622699278709916300451272632667701044817093923516034794833232724947874181720081531045934183400115260068931733252685997230959195565711671378763944035327526413104440499292724584173185757573411784080871291075544697515331967864714985824045411261525700325291468903103409827285916626165473824735532481595897163097577161544634354643040177311361849827246663221943352690176899981211756793184754077178784811266547044492705582532220218133142126121537096483761120765688582868541318329727927233951851166381559592910522358330601606017027361088372101903621946621379663156099497375299726994340380627738689888017739362166008636911071154186193310769483903999156184669644202662188859732325423011254054052062995691504975706924400480763866975043635366126587823183337448970527939757222345110979335201251811559066925040700546355960289304155066353743306608784750918314332561739037176348124270155053403626121757636018309997426982546728677337065135389318370142349077502515909211549411939616589044057622345205144324109983499219038873350526236572673360407678878201267074677960656664138827049399714113655092125765995584491178399127247241510518337080320188653411468644970393342981572025338524665258555892304451870414829036505572000087137857327811681824950003092513430088751404313036060151335261844888244179890652376740916795575960433093582834433884701601907618182270141243003884356244325720986641053917998486678914632440195712496740124166879505620770890904158913211094640334646708783389642883387867016029549016980233776519635856439906460964244261363666961376828788519677382660204156751207016848577363254134314215038593164035117418523323040235597573958412144093170500698611741789546201566120695139771974854839386107110216999753079882701820965402489119170148318456990546846635866540715701435779053671302647115412327660650241832200241299739766718939312553415869723061264885598665441097010942274165077659749619213645950659644106154469250552146690254183884865003922686298867860412871082828945458257192092365237325805824555098171546843659501311477976062461705042647517397996182893013611235054237030867274111744774092130950745563040269626053476009581390302363447235208222248425643836921994752270006231073274332469275639314111808141084800676847060213954195507990112304666586760101777513296216246327570435744987356026461519062763344582054151078126236047287354149210261359696937979607128680199212768361308221064004280702165460000846245135773729069457829296681202759207049956336977845227317408586241599797112043362786328783511218544749643944406608573601096257221607901658321560946808233185350061034111957620990156168505499998128964421241610089134239464135593765211259824322926935481041286328264059114881442559067214871968075094448258902922667690461158037279662879337524981447564326396531761773756176614408070703939097394736091089206028472279092565796077487330312465385628763175460519438614782393831908019222666580595047076041894389802304294633614144293668064774669519585545528214025874600883767946946508151422294257592452323568718172221029281415961551000476035157664660077993374961446001610942267426236576609312585443909513140071211618176513583092139608206343889625883966131769324896505599604603423775051226820849425992088910839090712519218829830993746588584364448558554531204893484164071601719875821142146232833475800424254394983283989962510847807561712521248671206729922424676433349724167252397753236870480088835147066292020841226127312641214198286171492065166034071330952370939424824721128986751258317181258414972080409473612672642209350966611751443002019291716055274021526546308880580185013554187855949450713380360632684882294103297606118389550710690121053354750409090007976322417853741574817032788264387758865663722596787357842795469804591578411210551525976714105407500364285392961309262815723740021503187914163813925639580053473619138862509996301132633963832895559897901646261535146872642080857729923146766410323233806741339498169939978365325458024913190099058324601681674364855269235016973631276158095426245449277689919688333803191095076618905250469609650375962222467730647627149271529565700143961191314614131419629796707772564529619221026318403804901198901707472499998812576040565112665865171539957276768006711900265034427241682801180254123839314442096218404704050155999695978647244753149914873257796221366361203584366355462661839400537327708240846811295109505091311059377780369447322930839204093405484837619690011584014331207306306449852059106035831576663252061560150967930964659997541785578898681900921802470077957735276508292075308616619622346856016994469968366499676780205329131065070731150067590492832863759676943083882672055227054680206150795544405649664442051445846932952101534878401251945821537767269901144974298177883257890831597387916392853475503931499207053928449446519265422487159268851961452381873136092252223794396915155238584672939208388769161185554767203968955454223710556206744238877627993864352786758913213144878442602741224637967560297737226918618184186691797759340621237887311395088963435510781831634949199142907056144567818672611004175476661182664451423383215054927818206557459556185897073639581562720118143938482423793135964474412967889298478878722048003696157911013243684011926663403104262856000358428293895304568730281018059962012597254472985164203488647519250245306571441639210919052014553743762877008127121264398165828588726127260994277419248662335729754773725837724101079132967590023242961890818325251647905838751956395360509988429618814526199611388816088802736662900641756002095994444922924645980126849850928124166543556989735928681685091865148892485447434905021546337491796727856008712559436992830140954869962003369197555347343357317836123899931625114010004554037941343385173354031784933240361981413499330334043211870650186884668488283306036119851013328138323482723289069173843391289228667122782527634095541783601936343359158320904994509365390070972751886456518865245588022725867325013121035462966287315739278108413488931093036550647079936137952565885176128438718716287246984654243693764416776502439319785723168838650531139739930071820583715718462525192101349505642823956557610469351585117338523219858971830669698326704843319003948637016011407643079878704614631145253720145662034556210733991745832852302809466819808885301958665308883312467468083427526717899391727661362012328323172623224603399206777453236978761259264604967367883478672333094192376435756491244513223214552842161487555240277686328712410421198470808070001344688502497896032302914294625662161670068656222861420525314609516042256905345934136477667622351340740767330926283891519200118249383306736569873570645690838833135866201421358242871871085706439832201790789449946296799005272973267243290057753724769831127250399919366184529363490760867712129216168474328623635995110341390888257237261604233004056591129518854182670334060285068645202032686621934214696451434043476983425078985326291977046088249179156206649650673929682348645029889999448376501695130268519319648280016628740561397307490650140884517251507188569935355751916161027294184573609557559568497927717272205721707460234765891375781837063136282853780714222276557192375178327923461979101450368652167933366877157068987466894641404745297933194541035410133242975414211209861681182808358749311557995516906490609665774711286014875124686460257640425902569322011021562413363754780916969394690620702319188532673028940657214615809496464519486637861239329442702124573998792414004053852077046671846985420102419089397050985851859899139178510290980964168596596633202995594892839212895795183280795840296380353581092484458369633413366766110557193979048253257133609233453834873047893281093164447007344206391895355262853363471498847163231640262711534744085871491561347958805567728375822090127648127969141002879476923511442797207166992463873658263962294185956760860066561451620112415036466897499511060441076290734722815412631056896900920360832925118364310318503015631479287356028103784900519561036083103562421959860509104263388770856623090186827766171377757592652380332645707512997824127130016418013589349437000933092899376952992682755706590115320292032840505230461551593778279932309048941141961498658970447943977919465107192554934729122407345456909899369814992724787630884030030855984833735892526176319125314150340335671880773925673004982974557655076361311277406202369549339715252599281715594875827979817739709338158448180573834486735885613652485278895367097390026472445349726375053105217086276617666352118082830077469146038378878805393155163843030488807127076545108191993281086079455581371496628594796126430259732003563954708247551143324420553542576090542743889564513701043463640826089631425018960056097048899552526327268758496054827203863695146243282755760989113241064783787574048667023868654904619517276774449935116209267133892430991253062199006632114801776050990119427466227373605740113043473462474287120340701136117974175427337197589914302727509594054975284492514298685527228058105491387708233340756604240960159020930912713237622245438276386169765144316519972431596547473943571911306895528790609403320226612241806435259049239528809583960156679106710390097016270122316339824737593902217681633555761950796519131805579333534946453433525049270582705388190414819561961586429188847504801168769645731565776396634337594028484869467878497587420631731136306535417257014917747268505728487943543471550859691612532038696284024377008755464628929488817109571711342208037350059227684285410052700417120637254157432494627191671198338171871912832061951674699950617933001937323485609264055503547292643156675260192011496898708737409344952532321959491388159500726143672848325032770610440947704977287669015113655507932395788298631893414422947814002927090490965693842296912744158813752661350220920496415829068740877589892901941411204405811452013534276803142595372475250833397285913317230218848440725253098467971423451767493892876465307820383561618634750793082966260860477126719324040847826256363799239184849774282144582883967660382765554722138715686327001926449580488381518661766738114498134261076042844060371358100837055045004649045828927361075576007903229244202865689561800705073410199159154777091236898006437501728533228000437545672119089208858113597704792091932541253543540876131699918664083944668066419532808480256080167906647149448397697037272265975713936043642887631975435507465240182072805032199568387785653899418839143383123757025972930564676327366061547128379890508093599533524546979027614689083274812744511584889641169263202405908704362324512311187279323046332283784333450801431588548025641614114139764226476307295193912270095922019520625140028916806223671430946397833263947901171274027055410640542300506729827198000362831739471286362640973249392041480240486225945697393334246624389976838611480446802847940780086758045619291099452653469153856682446142009289457554824385344664711204596640411007993697590159352692314378033915354322983837193048962516318167674969862017316067823945530620196874225345164335387379196210572467526903608713394841269447051798221475024963073193957196496827843373377315807867050997228272926215850855579029912949558726593418924423092586110923268688887165501917424791581233045089044279061576566394592090213976794032452435505887801547359557111389702495020391303970292151174307745484005359097346739445201167889258127198174444050457212634960654747076744551038829758772801102681425224132535665520206342144509158559927786341499813999386902788710066839798410603695642293460264715376243054863389669486498170707472056378931110683500484948188659161172931758283775732746770033248101173694865519783687851456695590549860979969176442956255310296116505644260756810820467137707455494340062488589243508423143812116139647577475326761429517766118856047080085992116755495275390498270813787725216571693756540873338815967686584383680755863072727781250675950084957227427069724154821937185230035147349886383214223007764418666903370951659586583540678004312601580728090645306117611373676026000583280772395082327446991977521675786604968011541444538436606393115498610210989565972091848691478291774837892647930362309614924639225824913418848386697159165779041168235424452674741024106270364311550602763005976937378103512046604327933526054591475867422328822934162288695840140810391613589401061856282833628656000206206127884282796037439338147385268918408366312633419461389323578622409924005794899088172687447646054848401978841453169137098494000021780498539012656743528678948761638438591260672316748848133413042797749297140106455748053691576111076219454897461867344767899551754119968310053181565158328790496044621230061303991418122313677872563335192105503571009562482094152445215141572167731143644127699942177499667613879770883966935944360302291907794263092383315128058730356997882885861754831143525310886164310887320295253359417121466035890655988636255707628411738729930640858175330767864571369696617136540079856590850765188152964593697237921325201806053111627155959642883940358523103773804993667117294476005861961753528820879953445493300343744803479251927510561934780783963070115906413610401574370061999423912856549690987522775440370771786168088856896887325775630345875606848529754112130004996079373399010517045941086976414153677458694731613231340365821883428394804560381741368855318937809917349222569176275751840729520830368777401937293602236419208356251515760538920917309292450027548271963473779752264095400616196414257559370705477665142339970926652133768748981193503820718504724688377639061471605171137877786426356571422849284676180245485440930334219971561406563278710682884502526712843871672416923344629445064513708659621854017548467388595971596663487532595016596042270396913779885088296415499336893446021803077404818917900731349949672612702322544761868767852781859462327271995735258413127717463391873926282904219476447580889070464016143718533413462231916800587575832041893003487075406707843075180648936755528273193315459132088860723552735741130979912750054768990949644078847850521997921609648001352579586923167512807817438650502812687625093674454765121900147138261004167425388698898254751938480712429518670856937650651000358078634550710247299855379783008300350921133119055544764884983199649267834747018088049929936978452599309939193809637882971984392506284315432727094810447308064840136758550182434901398357160280105071106173050208550906352349579191971770289134656122409400122339479527398748235989757651491551509415653901825571877695440544761062427645876317069685673059896560794302518080683424824160098589887064869889378847962139393054325852081079681670438581984329831418771499762194524226772401313893853862533868798023489603374078361645374883778704862363466763947318188226995847495739432170618773244082044771400785659857979494360909110261990984728431177088862917150799482893993662777897026142385603738890282428232356557121341409098165380978459740589044162947362573519490533746369368470719471431132303142029105475419594113581032552059855470915102877836390711183847144394145371933139610571038116830511100980493359854642534610928830922213039655430296632324977011643740382461336878360688905773421768180727849583657215104247337344104716752085817047190663790277743738044616210284316476438602110159766128395113906542040193376222656499581305435531488641569944728899388300016144845085447328445676666296002783461435145449148304317609478387907002262694466357006785659677894347533888575913538098580904629894565429574548429640510860040746389769127622250870570862132180082130932386945360068418933115774761817287441336646157341736825106377058332538177455234675522113588876442003384919764545037968537759198781503367119401625511373339217365618300975640571929665248230291025070136583900823078403394656247623553906916443721927258681807709832331759020630268746269249621458801698055222004614092256522703822994833308452041457684951543159410748125496516190709561715382425808762927259480719237427905276874132470797556311007844632255104994517290976835315418003155592635608404611874674873086101448599303674444146695310766638833253465842018308689535102001545699470891783828270762520150392173091160624882742982518757308029689305532208739294337182506705987787896954883087451362872436623908502533619301802798632943130330005092097609486622201136017728920974761708710165555212609594420740255591825669458587252189613307017902426819453119393025007083317766138249859624548135645908438783314960267645422776876899857126843270198045000399034720234759545576531836097157708191248236860813157253768437147230711818765057574936123921765741975164820412515490550593501643132048558178488602165147189181783175602530084366921979424031843833681433209134044764851711175457957902651957465002878145711232369146624507120458909738925129152507319397866201294055539796928283926819507810533858446201647688211711883701858185064794888659794584110207683940383776665212504203520139813858710149530747309110812485908634105221990526107711351004175869607252068487383659890899376496229858553444587523915245187319292002952009811200185265591280363237732283376396718394127324875269252638704563559123046391954667202411699993347466811572812012647843525643008116222804098192393856034826706994926441357943740819539943575896296693670356067034045179011679780420447855532353859443209967594053933306740526154471856052953268079711440905239000249819909024549379601658632586284265777749577354252015911479350373898371932289289421173503359526889521374077783271021447404275234349271241983443983721599124038577378332946867118247238159496030103596860539250355394449348481292737618467525080941131852157358798175641142341831623951294394016078360144266754231545722521395821567926639230951646278691320743197552392136763879612715902624770732103863335012788737114199442735057198766522176571218578996530428774467840389119456089954958588135180870903352848176311919208173259974484431938380304799219655883746501282932535020340733798942826835816605301334596636847224344377188380751992146874525986408572926526477057507657615511280824302723307437277415850842290297030249262230998610102193252438064411047111952400671495165899495696572123671332329075438747364687289860391333636105269345209442311310889345629981098108391474072825855408725096376392078197855065127188981280001877485553850489261313850135956323328324357744965954219158678656458976823284477912066550412147135576351286939906128644571295184970482403123579320210403027925059901538155097989835050410057232878947380935428381332601440092806968731856810311820598143101244051943804232142459648719198209120359390451011884864624324141878575450661470460584723290135291961904956344684439242704350723354606163973726777574510493217353905662532348162671021662135086305226545827567435192680051315582459414118870392378570391624044001868890164244347520497469757034163279905199649419965090232513124243763503249628718238124000092491476136250731931732854138559028207513392125900492965992784639935120795458700837741119281782964958132854002290842256800335129412679584315242973810064654471691436128352786854205194951384214000964872055056318183833570159088533623073547492457973949680376646343530676714430094007486659216116998065019499092235223750997566987956889763132947923762610036962413346327599923069755320150204579253923971502927504151268592568755524792661662161693085424673478231770439295854967850414996415243610277524218669586868045631495602735564791665679206150450212013360298252691550166011216118848748039928441720002480700252827004459518220122066967745824465592022081208104645902656990586657809551634130113156393704287926497258075915077914604149225769917451725461639212974875642262594868709506369445448717745696163999280936458008454927978510301764023905901741300837828228942695431086306201635653174892360551300974897195069211531159306244444839489674916609326683303477684940508979951139328545893703249958649860799760362924239735533465194327871207879575972406556309881925862411331433706783362894375908097422570228132814471229355670709766741003778146813339136741018945937358606049123689257420013946167393547594389420161296817923083111070127138002829537294345859612744361842091739379940238600795511631018886421129246867996850790969304442350612116263206897276663087795840265195195923902122297167764040117900044116295188498653151328620070788602382692546782290568942733800974717678715880926139046484051389157462697296806131273131784498744418694204031498488144416127175945436937695895794296849990689415953733614776176041646994246521162796528103413157012565695616462733606241593769914727008687827254066704527302348099256257278926643822819207231235115347838610781156188465536361410131478775949432843871036869544496459026458407399099820863394283059458293200446162329999732764711712119499973817476964944490776947258369715880916830731687808052991726411088575170319889062020575414425970104397905429494553735945684304478429408370256637198292128548296075669760584395105581585536814609640212253427303956226884462407292160375942594872774106974839224138902977231400287715637724778007396667760215867157071114498404653353366390161402343773057204314785976257195525472430424430536953869612576583842425408821114263878692597383629229326442985782800581363806057317390442494939009675573355315697128015433199331833133347243375001412377601688222362044586586098942908159599251547018712303871368136063943285215859294142554416769136231872129234500311010946973454982333675562757305609604470678331780518395196160080554063001513397267227724315461245002267002710707259203393703381140385095408742128458462768636089230369976537509566865310894132580275591471175577898750163640818166597052810745250086627976179960889630211128969122309554634937596017974551976884656325547645095174548636893987265822432145357204160298854970519977920608826107270329336424535063442466953068074993447318312617487737924384650871820657810849738927791072973210490380637790227629221783581023287371166308170649130007749743026670172252414435932043712039255658152035853997833157691056563035368339136635357743160897240532600550873454068729110945184189263515741559517030405950561345862414206479675022238979490311304429816755405784136347137065775352830476907005592206762873812084729142704092988672054757812797069076683221605157169278661996033075894585004106820637711890609094439559394327464915074824116184408296094089712544559031409287698187800205829565828717778343167469245048921865311786781635838189606842827727863128525523734926517963245680246004180885515980312983037743754381647428794731535632391059843566410467675261698403202214056855854054776999991716251575152381622516647020207131632253727193874398652968375737307155309050108059452790075881014166660013049935581785078866079769759428627718225854069900679047616615014189265690368671323186851183582790032517531131868408324857292037423709793969596565156549137583294531454428396851587091895305456258832075256955790250691506668548652758218383736637632527299645329311851725582596563987306143748646852712138879015501657482036864721282189548401595105871011373427037484689394922074293228395543290216882182692549986676383003820950106724637603450319502905011254498098156686442326506993411542757039322653198005889648858431301660453622722919511852706646866838909258774667737969698338045400871411919703573391990650539942364681372521968883946914794591571677825548381348763994771186619683344265716101830157163296716130283836496262457352780448019658339498835461296530887132981748432068417412195366344552684283256773704323742254467336794162884070877442805428997595385136227918164093227162983051344361192251718391976517199398480388430317645885658040612698914619933963407852741230693386464511609119606616796997237014612194788190300694381046558959659140460892058280214819240735511385068218314555117506341703497631107900531918822575001779754571614220843017991125293574624044418094772191130782399557165970710393202307404744098522666335212708868379118378442012464695145218156498657864929100898545656292018692094419185755119135667216093664262125625928789789278151795601561290902352804995056537750216617835427951699420266809060356962504380608469912952950398206733968209798074820749629076612051431216334806828712592780590349529387267236781431740656077628681135289727212237639691480896086466121361088468179237767829198386123170442670165618063983907227034824627944633191158357998060837013953851256129465043717056372979098224803943884623692799751583832698254402802902145243536481462770552047125772481780880416197486223107176097719988118817611154827654285261407058218534200063035208168905582460501038489638638287421485224063038258903702445856562833781122860427607863274121690308583569542102547400906673675490213625224546620070784610883025046542197273318689787145222994314703252411783969047384110941160032716247198781914799829495403254296958113519994633249540976835081434649885432689258080830674225693828759285916704255027915987412939227738059669664835912792610056215539484828955829951380216233966760629420248646689211744070734404029046810520608092185945775700235555595427635240445304672294487933831008938139479229384341437038294905501610779536106031951597070480411846805337573493116980981373332101703565127865320908533087291622677828307311875559423723035732086239142141126506094727489868973270305701949907169879257756417941127036312385450916883075750150677791440187516006504793567200057295584336917025987441351139265852989535340246798483552462898300697152931208291410158383203554940827644351607554025926058171939282627533663015534492198072109455489987270282038293746530013299363722012071938387431164387125672822487604009466842854260132615739580628645350565572300681005239709186734446446754075289504532911544007143966702008606684078493375445168842409623517140346477946868602067381985880937297960486651141649932625715659479533274965754372711957497305210455943679593622602140084035527012315505460994880735247913747913039979283334894329364814056914649514001932582742866086056852494727808736739378768189825421678575757510558289987247951482167717628347286689506671905861846267024125213876906067417827761391521704976631030081623480999635464465158627126394603836786033834116790458862247909964700362469396111475241438161065761565541190821344670356834700372745581025138999283519210713993796111928829853830543378653466726685699672153417003959698485003835557488515843537036332486936507057998008324339902361999300089889930758056938981767763842124153241578835991321027415841007611347898718738235263968825229024550247838992824251243683301617448908912963801184852476250510326752403813662928489834564839705626083464832428606755991308564887656139722912358603544213156481393951499351084873453797620626326512012668604823081728050747080600140696174666612669611358471929274357821101918238008492489255905476758133471056420873689032980613160243185664026791548169973603530340501919564954854008290934834416758271998160812569886768163532421231252882497473614962263972335742502407685397509698350257054629258824611017420645250288540497092902386866444719584069094079771041796734657993757922663046053758071661202600608565923159588312413986895701270164445059894371630795483161241497818514930891554717483988535132329619016380097219443800556432561934724306211232598967632917508253781854988375983159038237827259683550614894035636061838617986143613317840632038037675393859003557225336137597086885465567260575715100051706436484945867245813183419859613593622479191938173410605332981792997265778096748789721715257482814312210771812914202151694899957382724480963917298706456162517469618589359738221142865949319618275224015294132452681599755610110276519386714922179798487851122582125140781215005839000862891147506856470012307168031801536907800691668178652934481901121158291382899372563112508651047992005413401565153983435208700902229136205489903926205557173830794504414550698488657027397702892527685713563054955904391588496035844330214700177519167143905324324508536204964763028805358203571090771337257029355320406469315951423964698649966255571640183306806067604827310333803123155157985349784709727061476197008066978185709713903314708818150968858656097821994749345368187593032725958732318488495722492816480569128014434478119487817008642348098729805965881479205771196308208850922500400091063568837400866477375322267196507135134512154107800376658588626217464350985180590437294622570670611345441182107870701813373105996408525936202358729548401999774645983035100443481714858578703088657612514325909128145105679106018989483750334774235883351621997107053100191751288041553521895596902622817479513858352909708558923578384124653022111556380980309974421784032005022292362054119311688151400587875944244329619657515374666422621747364405171523363866403050766713303678186844121545694770149587878270015520081345260373626129858195676565794311060132678318574776738066698754500879557149719246677191903033070163326051100252654046866664423658332237121701395524430861462324057937020688187192072701218217478578400329241049846550395660773272821027286791249298646089664999269527388534194513255567427323793492014166201834604107151618411444268022463197710108310739793498136752598502270295549420265465013130509010627730710744822558184419797134950058120546505362782542151100167812495263712591215612451988608363732238800878306264910336952306847469529216877903368108627145953910181050775304465182024892377172771978131341954636568384358228042791588654563154059242078216631994397493324726931985658423044362292788658378066388300063596790641877195270272242992787851815840634592577310921310703763643544766414625246507345903154832214878168050982166239049393380593128163580780777570467396761466749781784784625039193930776152233717948079257572770515333712896062125219762824543826120131586199238964855734291867743367638280397533701125527939985064866134202347250518412018723862028736358344633315077938622348029677752378216286760775978551575007632003590467408329229027261646800935268458673181271200882000682030067705161638809517853246250622673532093833906193669337722191340579942337865841734295638180157659789162772400449209370441643909522998810899410423279803980602583399969076333721980729384206908312277590906081801876781661577884943114552504646702412080371464339649013206630338931303002201948123945899429107986355695897794589917121931866020319279295367001692318403451535915089900885720828555747466620117109836233905467359563064601033248358298324158509630998328882349091624980773394250686432139815959292702563343486854335022926164491791650835385438806203893587008832346016923907778144774276033425988372565569736450292694884550102612570773266654440102194683552228517430260761705122519799103672135132389331258793091680845497616390229356216098050203315208109392259668845822747785747993999808961482323729438353022209001525789711244099634895051166171630748781571889611909972501621376402504351683097374886301865634506036175910134375497441303179495645567440279089026390493010208557458219157369942060818639111752292486492818980214657541122277108125694697794022604893635653426834982706842572437101906346822203614016096697254489518143248651444284479145932813293574098556348669190202936793995920549250154603548155479031015440400841126147197966428084482419090598125313222922824715482258748128230643834389916289537607469819777918937559153650993002084252842612374296365963763372294175784196763395714611313415205459978431569673200832229954852882310251970562726042361772187752830704524459555175916061332193378526853504373439190653307692002460293160959761916748693818219953325408951221323654998336326365552283364720252501657357586912514144005742082788185509133443286678453366177210484514416151028241036184842369771754337540661935281605244053015089490685207060048789665147819790217476148618916105093899396624295731725006595799687656098092724956112585433585097239258317063868112121635444457136879091101188672912072417055100832063375945302831303033364099344600120714294367715018348967605457050203307362413448298266553862403592221660776013295368621696838421697609009237748651518186098982903160374617095046358065232658390616861776591493124145883631181812050730411617888310138894709564455163841504564315076466660516627074749810830324458103766281119645236051530800189510189330839949161821745285332293157089119847866044963539193923505951590845302193493863322461787354634279201129623250776808368378279551316489858386556667979521377759988958859108910780130842482176609510232606377895427774576105244530426174637838549582078105346025846190009903893181339829728537608897480905209032017204677881304805699927253041242609343846581545011618219683376851983392972288406620211773301396137270831337033241743050355226175819459352387669688263269534204574320964107281146102185567326954260522118367868567646985287592423063641406520891004512375330605231140024190211021981158479164930739715579734311725419729204728412847743286835922091101887863154521007683025028478031567264015327966711119519804207115132779533776031903440703396213573810729439212771137716092917146018230930944507379588466228478833601092966353909989899774204005664607340481319902996373219073356725330846344205458628536786263819493938528275537064406231839277851602323595372958014079997480788624667925492259698589343523177577950334189255718037862935599263372154820040323167092844658697770762507419901921525577023719838508145379787292615633091036962624156549789918348493314162769823052352060791838166555294329795583490729395223961649743905683615083745385325934620210512804775535555235852148568712461386019287819851424054084234060064959917518250525144817045745095493581637759121304182613918359537160300468823373348637564744879413641053652492799129606990616366061696795911719430135887990057509975707506532117282277583154874387673007028012929608384995399060130206041485181124253081558571327711972056432711928712700871605850661923921478821276562339196401972282218932805959359457769925706418161804765094432949161062019900769371013950366868814734901994457620022799196263627258317288567558268226504354641202814050381945046623407705777683647112456830143068163696562463452443665487151111252299180197554796204276625734288439279729341827379337176984952911634762750317667515220859934054023692376170454436667542772261051245193174028981534254116602849006000786830205861721412451128763455156532945989573346701318630101315036765258947891571917719987996322676452891355795042701189313108927449033347596784207887861078282338874740871274069619490543405870086509565820495466389989557943540329866389746598578434520091164674482440795413208660991811167273482865999382553851157778832924514525846635622831855394612200786979809272563350427238893736503057626088995874928868489577172235302690489797844456066594661871097054455134301854903206878066502397452476703869552899387707629721182692890726240459286998208425012170587628601294768117266774531202175178661989008360422238866929277719514818670872436494690956973296037297142169924691222592033805790730992872636599766065691600552792716143190737245979282989248529930974928493713482095414511932656057486885054311697688632258758862784540863822393611858455560864428422177111600491164286997382917298066679961756117902246269651923586473582678333603768991869221088566735698937272348741286141338626489761851713715783270916062520645142373250109581881279488103747042765112705950257792992672658180812961312318271319413077263679471493113924002692760525412406623858817801877129258592832484881973228040769419749666882418056540852786773283230357840740717735755755806625972223790399469090658886201933439037835556777182615205295118347832649394195074128471377105996025264664408036044369409580496365440465739200802302996302799125764405140269751764869471307603225051138807134586196744330573407309970620295806564514618016710457143595350540749639506397575949808023175221348273963453311068298571208818314239865068723064008067255276577050719267114060202440871396575665842163691524030416337265207449589066604459603436148908086973436168307521089698217704040376551174231435787697213789849353386918189695060040612851714153293860495821787051236840269991355449560200672642848023614294897648199831892112118809536652689631396511541660416140335477886691820867164878773582108082957980753902380777442231852877070430653522657574926940158246444974280738549726530640632174346053365940741567154596165391051913986995653518184959246700116154653440436232837377831909610266768315178330817112697907498427575763538049331638081363471186651825260402574948144548932724315284561730023039917794575195930523015596824804609849585102253000791120552397163272268987208422780829035621418135665808506843201231525704559112937387815141539525271138350468664641527691131051290591914886534553542794843571352537473231224364141942310533478786802569720095030546651261605029974143676184297357673562126355894222184551995040628081015053471739402689398603129599302473312965736348346862380275941299253818441171322980250720997253365580879048609968831472692712715774250788051551689603571798528384324535050065122927261193065553778561864369585608171421041507591895866055838717336342697790142516764379880253593249484871016264571823671506026637760949834529400269846169669534361496692780715741867334908186259370547950858311879000708745287809698137542602291684877541285128896409881480620992540043301878057747210628608498876318264900892769146486277554071475400442995299001474903890231131959965297316504019569729025898254684872269368510823850661844703717441653964878255441990939075914511704809609717232827863991584370824382461515088667612154763639172344087770092604553542779945422119143558540686517108546205742155805333370726796739156424680593356787591469936183251829957415673465719426139689164893513255244647350324631505006169320707200300412274279874214545145212861467287386619947649054879591538153455796323140625035596857933157998311642470286915871990064769688330359528697275116789641028406076607163812194385616371469009029329626108862667888501364905852839919166381411893193699310788490672453114008907600024440766663435892593834519679453849181232015180387220474438288711646879546584065824566466873518968851263924334534562826332236921730733078331679093550906394140493965163728430815026212227783554811507765372925685978592166611073307585960102150880860061905017441989790984575631686522068261679962045359043171555496799560889201495569276584320448946783171830883107913746875665774938967019279860323914899110239997660114827681893590657815725119260105380991251037168507605550217836954761757784841447142118369211314753260547062030514336404287791542717135274771354402809155232005604051572275607976445134932419309555578045166441606743019078701579877850581269546596618765308797443891529017855399446171115809974049424647548924801642259285412298203122267979019499928257296623426157562239082900113266511742571987049312177712278165273932453808449083970912208950269617123868111487362311139792209304757148101328073505503100949358983519288498155659874355289594756104228769954015387356110728428005276044778227619184696942365616152824505886367825194159444329015052725954970205384786577572410300626646032989339816415766383274151222260126887190298280829170264439272755281945883180588354666925793150466207664999961356332665741265771214005815260275039640034541211803840967467089451151747712999304987751377039308493327217360220974460195983233079910772574454172912621751725907239544487014114851871995906240661650676562441691226160658528616563841086170538019988270963850919163283637926710348207472913743389645117708744052446463967746640276954087327942617868939613737699078900444856114531399827638307473909344166231974884131449386920251847937106334374687069752136898562932793420954409390704829076042525460855237419062452542688571983086329698480188071417746964228977934786148625951534603832193391843948410239461791268511059878428200606144620787148382402978921392788350828432019680827006913434362939285855983256444007342900942032073081899346394833310168090632839706443486374882545967435109116823104965617804834872487425566120142334254058135019652296119160101797231789667298387217927719744002470512067418168134487521135892267400163840697348025524561119079958279487150339046000123302657864794879870285085400425912796301081956180693351472258962055407491933922477863155347535899746367855135961204577943289849417113902233027440524947836090236166936243505048746787681852923606399859624755102494125356339035592055945939487050922921841198366558592085187012139372750380636180137145096875608469862464609847283843803584420070355143145179233347925604957513009673447124800605988934876611187405951362614737882998246048088160427235376587052534494994130079999392624632433143865795487226547668579523435478296717326591126397779314868403248680869184884309642400431029503454167345853980680020176641459292412427561625868010314827262813723862703374793155093574352569872526863844241709931549302803669386344581146847447225785825165530130171084401645202548046017060240197409297117356415019463737506716800915950587561777217629876671143219647624988628069228669247411098153717046236293160442773880746968656457641900523338245929731098644453127898111500482465865920620243446791468611092850407979703803403648183928392581486256499670306093521557881047247944308572424859835006584686131187918834535076418172484953629276588053601156601601594921268712646162758108370558829876182028730381291227504909152407837587294239036671090966271498666049545511940990002362938268816305858155156934168509112906477908028611924415538106301173973409835558052035087192116172324929589945021618937231188415093469021132511357836538474611453848321632891278855089369686062273122757935390093620949706200619311054428384109897971220086845768917167206046121645576303604402585490671867753922250984781326293120721842752165098720081121349914302456493863373267396756368267445177190899023245627770155219086922047759579102652177160518612517959556331230214365356088531842027787095160783334708627607354664664952162101092964287122248301623875451536726720400719531985210079776106867085184496035315764080916369761979534024275785060739894574590438910823339589538640305493656654900287003172409166660670267460580189700460623028857779337729165078855118024686457922882271419031347547881941139906377569706456772928038167376046362669779269569918127461903931213819244467396148839683756579289561005786320967812826847304459447316852454497715703735587909824503883175394779798226120925892103963450765434643728272483209621290129878986285095797564747734162859480823598742672383228972165278825217391694723609882404241871006199991064669195770635480457486352398884487073281501110428929754734485768649397123790261428306524531333961757619759428302691395309354234928307738372093845972072755774610934079879526934707586139619931731819329652382851535443593252844776352064905962470697976710412028173110086709403478808688164011331040061303131780735784283136579980124693838018844852852662353576208666513488758824965982992117629937608079187531204486421498222953571453825295484607875711402283337058966639237419535087109220493137473901516552381636207367690813361565203953160928929991932007077777217728717496284858355259543112057113647464978833658311150797078669139218985181631871900252103469538090582650424446589828031657612059777018540945981198550711385135578535743230515460018334640899060850947393521755340181130727422619439037667209733431091506959415889871513872169456840783601788230455404203101247287452646506734612132491021656196314688842601700727603846366774525395799822891727811006310435899284674465225445669425406193095940246433834147310634355284669843326987934326432886394406815875467794057107366483746968068575024840473135000625477803788336912608998111801855325841037255382454769224598208342170264653297238491519990291402415168801196317554327857450474903835214216886876959154399578950946654388718091589547137946485929710541653315900376007403521497850165768360694576410266373086023541610258922307647229757142660453401443075012943917356180358102076663432030059509395940621678435743918375753142695150944403935999728723023446920305832652660700936509862435783559697101411592695364489619050141063728573466803007313879982858084567371413819778572057568437726450207998630479303139545692631556266796963371062780916960098186865990099320729624438519180284883325804235416598209262508878043817941752213777051536477834258643791012694336575829065006902641119094426172782152798511837853745728473245538159486545841118392219680519817865008707106315954683780273682819154182650696333199489571237477552932383614670505785155299100331793434365048214948917470749355024264777199738700764144238644359918797792910408366277610986813354309070255645613528068933396275281447759154204010893952704901160542039919960758829474857344729638926348935664209877653893778695962656439997673054312995660445205794806778978213650032547775324958848819197846047486633825439086869328099275921745447467122994428966800523211495305363309518760284741641592759489523398655754284646444349740163836947134524049421591003523134573124930308905210265118513050709074842261498251619692008235675471493876299982176724067485238084742288126914038442943658154586486122815062133311718782860967152819934855239463650260105760654065569201288146087646547828034971713917715425295543717283581739985661501547246587842192462427805989488981301561139861993546599409007433712543040324271507056520049080474409182437374561450179367680687308790668314559420525129102939543886919636988758155778913825073203993901108096542545217011286983212405868230838526414928053027010926720635030746812728375211070724443456526446261833268327739163722314410266182858201135308895115409186011997391717772179243070400914513330481271910758344847051127210254163965528934855130890867807915583929929515118443334460200873815616695427976843877876396079029025528096301418596724172906608490384653981443640429489527605193895881123525997053928646370121693252918696056006159119261602033023741310338533836821038583876317555588040383291493463442900501056762523500243276052686068190597208050115002545549701269600901266524833513039722428471736474751639641068205248450120622698718611442112269365901772444288328120660115234581693756678220362431856793737222087377126909165620043575960713764984023075873828713111661391862825964651661953317394755150107141109960955392263667159693699987087788114283042267847364041479155224759501204353156980415209749440618462881217031856698453440912368150577610615031288456858591697715654806428649865351008323853784904196791238155036655070869862786317452931680962051936772486371370544943635041048255634390160150194616036904186569160701990727913751020459458262436680017436822351120878971206598518703917148508506626330368904997079743960098322895383311097564582782245484141726350993466868546116632303047703323911373312011356499305404466628142724193829342762471385365393358688393636054892083674497466646977829895970551190389549915853576960132691358074526621594420991778716416560681719621289809253007838927041792711703898245781516604232967055789474909805903406307837964098297721821667228019347286738782692380404705537323901873130437818050867359483014544178522350457529019714753525101577202421849181456078169494217169302668972559521804503683541809185345594819003712395430848191379890642163552609097932835689230378615724267057264815906749407979246903197567943380748639186350859411726023150392912055830780804352987462373606552876228077704925705161169607908599735742256480381031997788026012732577170811530671472797959079833256377775473519235280705223676795069254760853885017845542256837162018905226033489886880455916877227392924326957149655096396965884884649201596845072053763496836096248803113717099136699587909563448319129766356424738403836229097970772798157467672530780002363171714441073938619707568449223770773895259734296297514000784490591049530410958451560790731264301182882481659979583838932724811969167790943873890227110596027838368190382248846145388756995611752655026955555462787046709816362508529595461785992659571226660126078601856566177237464299559458254565602487006110140131016205233045097437189948654664355419170893702948787755544316268402355954759862995637985587695507877349541033053735399264131632310032970212347011004278475251554042569738703810578706669550397893720583820085529233984074868992979649178223564760014270466335079125069864752035135839294466251021381168601476924679773816605595291501374261614475486038385918632761967635718512718451261100815329743640104822702693135307291444348024720305987874197006615203751057087562685668447080714689155544057040227760456007895947598313316088173959072694935817711693734568376030015378889395762844842490521899450265737421897121701572858886925263789316885642314321466517177164315725754519754726486706633236092591090430918588587264614862865170942605275904117119059362432928347944243388864316337478867894401496646370071615399552086025981037298735446054380940123236133373361808813937847122531877404757198264600655654951383347014636819501368961601810644667429780141607075917017548959579412171351833609664056651394107405541336440973116890330661755094543129648009855314667556217039703993356869774055281151368945264645942486084151299366454667095909726499928302346149734440272175900796133924209401281498147460215364647489758453773247216629396856075349714752943839491607120838568453209396498665654850036196561159856371420877212867136659211388819463794870444473110298768446060450628719796611995516679889674515163048029482685387214785610535506420865901492271093331014867458266861468505564412810757969024158189863366993329339155784427730778777325565335246321679547190916856086377587981100584320750286194673692351735105484934558746262858595556634471500994516137804957781154386903776314507635859489020536598569669723384665704451528504547535803959175276778590864859222649524769786978200195672785123060558500946134316885252850479161473051003986448674203641871697247303568950564308887695898092532498265081646680308263062069208149292481900921493851935526685848208909268467767466495848329076822386583594444267395832586370990939938081794782202824430852128721533978611671942352442648929296820315258071679486356554930384659691265350308643425493856633611104742562154821730987195727595194728935290449551065932092147890730681695286977084409748059866262671856157661937032504866824525650239669871938280009203532355509857378508527937153168728475882108055923981840049349909471965973719012400963491295123781381592731112816727541252756423437329317146784401590383076275164198674065062089538899584126743525077959985502779077548164006640834029993927599137301717011621183719398459661182060199943024358353025326797897834948539873323026857273261398832153037507173363349145436200780803989243924838663449175321222913802100825132355026713461190197217172819866548162858458926608142942573241502557372194854582283645474512984969771446578591681853142975550207571137869865705410565281133017592733082277269942204369793357431824087316474245810791352904704939594653622424962173830708351875176086269068356421880145623593061714437203145443725664165921391071468984403967436263440148013619640825368289895769035467904090838068515183819416820763811786891247224147430581451888486087677353200587066334331070184602412142349861281748498910319300806122952668980184816275003451421419601404744907072055924361721150347638421393924822207837525126775418300089819832470194128412981031006841689904527502269661725343018102051201655439041721620973824256779022896788569795694657893073268123280504790197152364935734376949162315856686070689160015754035785321025258624049484777397414673652426457902627663711062278226382627774455416046537185952489024985885810498680937186854812557415146502068848441723820832431917976802839465134690794240848227532659275524586122455057754752287247461603804110288938223975794826407940981128332532223284942690429166823877690047520684466022237618444731570665702146589669122894780410551075321574255059456152980994884304020689430860340704939214191190011843733618025379049833191117827003292069595801454195087022713853275954602133459147845042006486649642688022414768568940118807950846661670399641591854788768220313696270751342320246944985508789082684668897181736965068563841472384204511992525417939981467506856044699054388210271824152096242211316117901898149511874140441552519955618761623230354466797489729255761033577961895223269741305894345201968972688921231863057607625042795476877738524385799782733375299488558617297476482819074410419120112509337354591639226456137102184375308866846779310640363313873299182853844161658042603889482321214185528026599072461877834573331904704109252130931599428655891046084051569834859041477574461746256441274702810152328506904583729904445037332592067058126130091694023453920533696565320945140997044753063332785316638202008254915166805423473768794516833942525220762006092603849987765056816540223445872493796592768893890520194276562710649963398959787274339134182947336542346010433042968003653077014635901759164631122592013963499214228620969699150785288684850122691700673175192281778976280543919400318359522160152271852774117372536814548548806730675682567253975831465649532564208871066356313134368270209008598838332802494931024500578078035113677070209608537779527779876228655220288270403914907816108318879086121486373788486452764455430513000009226082393694286106490449386619223463788628029699445633861989672863958669610248723051895960573593352857105502426407476617568419793278969280079865294497857289759231400270447766763599754090770329428548295125849353163452679810957682256268760215774421243551272344314882357421174253917731466534152967912567814074417214670122088954897765868234403156484291920407240703263073687022589992688052908591714887606743743388896085699397971721596302000205893327925531804483438717137689755273027743740365609178585257932540399929063233376267824162559837272179541393922137173456731252286469000493992802391355303679251456551369129817386948721130010253115346127396873987134752361362209782057487855505210794392372003260719431357170102326652120883282373199812933299346189162116938542560767840038393710357907115240179817484701834264327152226767175870007996695071787998539980274597495971960694319848766256714978930045336637646122626334332824557380618359584736656269033396807705914224367075246987535824657548202229353312377457886551179301059425041108347679489736287963864837527281636841562286639027082144900686930127315056167976716070167692304240666443134501743637514675581277096566251173425488468871145424549761946409306580426695177234214527786712697674363119043921219885464356426202796597088563992261894943615473270585325332060432644494601599347858508435491735610484010258519402666633161768425316172178891080928294781811823670608046586317934713583089108683425219792743934038088462883831209866700686808733822999088269046989798691452173869479717129964230074939181101063669742572997562937663646870602732333178258689162634042938250538615148755455201175488145460713674349186088530052855798868423714882178810018920065208891795419749288462741396099350567904926524729261231340121257191468710964592564403880875012409758991753663391548121147582884380098801303726049863630102939082647595401373243924393483269625888844971734461422763551020562279883458409415744482925354551649280008915910034956010250277958976567242994099104730476619225297295827419399307189894733459414383989776688460970656165758760353189340075732417361631656068330887227926995481807169096135373189079984995113087863183308105833454363096007864978467622451855805976948339635473539940329751797917176050149128294256867528787108049108710345768693311547970294793871500226443216189548255684162180897874745793963659046922945765659875444191925534880560696441078613203259295090017003247964680402025201275745861417204145402670553809028376367009761469430560861728625389504826722997012520526265611103864873197765948228589866185573469295489048351794191121842422396965211935320237402939552281573257289420957960398162968866588131349469780095751436019839169949887830563162285675323246338969366235003004168942337810626188272124327595206439942394745345774521795391295366480438538194892770415196827244224689537382474437469659086829275864520426494380261941191926538779135499499130739951025888814723268493910826986227508986895254014450528325434673669513828952415208330117349842201625952427522243423165259342064701504692710596596682566757005773876788876484821982415428497650877196968469322659324088496300738230444164150712489432127699906216449053245281947850804685754337455000921190209670728165491604295854998276421167581449820781400322425527631683963281814132806656121357805200084911143790653690689404005524511807254797493326123701115373620114147878740895801176273059592807624330242315670091000310083084280496785262496000843557219491286520822478248809236646899286565060604148124182083448456500777365574426975562846322064748128069624039201114732998634055906530488325776360564262058586399407315509616350626497819362016309337975296788390225697491196096989875384998159152592052810428471891690213017088708692374293132974442489999694731502221688118202177102348306310039244536319184074043379861174805173478674478671901307940251321363990201857331488766602645777837116236830951986283485359812756345545661898684482707238861727644057859645357237120186374788575335336403599312643641528198237199188018398569136087744289824724746113489472474194128301715833996942003521898281338508979251325459891883595576602214012138236720324583475736588499172645068644498137172874563349351305427388718107099517845779939167887527518940495770762985982711873039935297384014474686304999158634909966054956536698540418090117433635173896004047806078959581529977625513839881865284930057802493169529666629372618664061876741363048199311381571779869633613295395025397714054217429578029883631297613022885673914875212290248587809805051595478475466630452484904949997887622308252583665973876941402116652004660235923565594857787707619831652415176978079919726765702991063402716634028466810559788634612119494726160849503179486786593222493541397021080729147656302357315455055642500022941423865439877891047565414758757832212308939778918267534566280468227253881159377420980498599598280936237203606926418152416612040980275926961697483914530213203874137870043909838454351997729556717922377697943964171414493962935451638819817166602498875629694423995162197545902984705601366439509712645746474536433376225297900559177379568387050200780905978221376917754019843797115543429211800447771917329321522042572860925181971219371379765539325251705486525264440978639575825760725834806242204404278932934572708908542062757528840549779101631772802256238466316843507496324089315746830219893283979456110963959600147001579336392335969775666137220259266186428345935796390773517001558414840535968201511735596405917051196782311726096441172785908333657858478785438257164368361263625618739910291536657484002416338581648163769955752006424025374433487451128573184362149760527515732398311940651808506106995438678800181426803218931885786146882561092306819010173319400267411354406917448506089396817578240353875168219944097378483891468680505172175770177822297639646160561010014206801359859322250008536261656233793488450983004577488894275081547163880897900555650427977521657140939839348305812287205626561144383975693032389996283819110191286624418243038518591643884522642958710044296678396245942260380282370676642104381065474342696321433732699620452114208890404189912242392720865369644529434023952130393028800148564400308746026493596125862529690647207924520648527730119486542541877781741025347864389795249115694068643173574455261865407545376826305435770500577902922532013653131850567383678492305094982112074703333347460496028833627050685032594952725238521542126621488906709930072127924083572573689840550416359466165158148208398988390949534107798136010306749293693766467947250020941491584513990699488499775270017406641384538846191918876415926254036696089376926127939292085736571135115266572709525900097198428447975775879038312109784197913551584252616825521952531446238208827918052019097197457076179310054009061560610459195452554163558787533782661922864936824408540594995228739762639872507812556831650643346951657248264491177074803718719070880403783453467650938164640489728611769198281894319181382589572839966704310253561702822945941619525078367331755385232496644717823406866708940186976800610047056065987719464342531859524162047592361154098040074896637408479351508685453643967763191008177082589639989325748578209025256020266227861436595673042265797750348389564787066342936713450746519575457500647732131651383020162340933362276847196410859542378051609688287940340949389378209642030758208455944965801225872660747544534683118750087020568599749492706365562905804261193429169877471437023640621908705591410015352319262417915988597265798652187145849217770159761531920629292561619346152197712390358917370820377147666477434921340444178671809176046499439575652161574887505403923209547920001732041669336696800407329679058077599811071218188157578278625392855225063501790002311766525834456239137095675399823798405958283392449464499478262301178732922955831261614688205737177729783218038816682095229723174642625522927228305262274470969171171258822174259397309997542906924771567756568568471840163660231199049645203285333953366916505266999231175119448568575347224324218624319422924306046799790326978735219934265916943135445159609783129362226077811943897893797891737263242986865587260116985024076751785987990278109423470500185423071811296270736494330359179412235135527701120887569944413950878929500049452975220623217013180051545551320679934630523463989180004355734093010414265392144271796843102657798378974474318716337512984943985950758530966872009475938653065944512192388478123494130220610868687670253140639434587113671150570076607614035862136936227295839984609639186459126147045558105602411007561911069057648994554268082945599429467691140660464414656553451600017246950394836279351932432538762066045492287560813753121848646444028709164225331210146606307242023078041721030420421322275981008221766601510952918749909203004742161619654051551787464051726078240733545432913466272273893687327292420572367609239124370001049308383044138027882357791862666188178259693596639864939471360797058405024260933323305548295403407450196564675024168330900006891861287607092352348491912521191031279400650346065257850268288869628608915214956346740363317759848813975683519902743232764953720195486361336065148269029126066845023781052080300485530469904775348973393692594035440483727688909158984421116416614177281075784515042975435261679669823712349405183000006011467703324838883294471743488963135186240551904300588941512196849917632244113491215481877812153047854423539348846649785193712107902032967674731884882598432825742668229471422865617850496953127797145661121454944670785616415448283661591715859180559700086028992780400249365390997206242095473264603261035829170718604932252991410850582886873835330952243339792766775646150524755285611574769249421323393323804419920089463833771004080150083557756333868378554168130172883571992848188417025605216259319078922230488901880329527820630385507456235800622220171180639357091506694370259828871575098272189325998705364627987846237125762379859984237796122892762295611222556645976095925587738920823477957851287069839605447760341602376208242086257555752344596648276618986292383828454881712199579697471040100887449105562080970527723656205827961313230050620375073985449769677059151528098488764684797940875048451178430046573700471499476643426633755851785042625390621912498720915493337415919610025819280308043774736448474523946267936517168899537074928863794523418752186478410599079084902138095709229128058707300366855790194117960100897541057640280898638300244118278366488197825808170852202301495359716793713447088715526523717831608864175460904271142980274259789312217602359543962914853887359859583203479992822299542159198333222582272423688732545243641550946833356872095003104136873478073170883177112543210246854624976739323126745666675781578026616282298047423598595173552150485418579091115457128495794742797839350893077416556132115833255192017292347621143214067037700572288044908227543683099089767667981769444779590125062291471647714130866975923655089434753393804777866614502022231414300129356310864780885150401343491513609192587139200845547058775116471481736759515529322086765060487240244638375421925389430916123149298459328956007101724069225728952792104894629724662661332091040091543998045363118533718331665256930107328780188963877062485719871309388114317039919374654871208790521122515995633270960771717215123870727707155987264125789108953830225911034201929222653988403384637441560850882726791318115875385434708765091326342535654405009203149692896547380301950284481002648391894939928295545486531753706584838339100612149873002543978146855918406887356467122486012107827915015856317482927294635447690152017754168602434705645495259121534738234438176518756683502411250201147056181811794485200422346621717240048550130251167799758946921922287846612420466065721007752518839178309267787842785237172288316539626557566968586694860320518999947715552903096334766527860368001743610054109844063709475676282910421845726925828743214906596613873286097039804546657718062767688867588249062943345358651461074187915902274533416335161505642103464877863053541505667687926183330888941847548164466751422181508281319004120884591962747307504624700899493871214730347323784863807155875443004508270213134234237371583576386587034403378706613454643663965786897101757692291322774903284655169034960133572715364483583342507968954996353024101622317023064534149215105383091977276218048443400908301942309441227982898571454578624007111914690371491285223916909040997900176808519583753326832884657697300786602133431685443391280371600870212454591819379955876586343661975786447438367908370927428894082945918644444163609477245751593163740933381440342160590886887584955216789810466763258873598464258733434684605651434057212721289472058114883159506551739732943993946379203283781090483659399413808851013492097079005421870439536432832865422479514824414979233751205184822158751683712455157177224922828123992051331347671449098275722636949185500000353756525595744350197461956700750952697671190510005186726231886308366728678321883824742310899494607332300764238049038289234133471616469224508667858737258051527654015293845475711929283906561752745445824618721010230975043046833900343746647374218959062032578243985357552339614027814725450610022259272075110234763314190369060810174552444348189675809489116458970761627924972359142815419809668671302461911925911587494400926416781898163032683151761243459111479797979852682349050481422902532065808932713044936116091474811229441106439562698395725571209155001326233802823509927983484253857429204474108397098747471175200872547434475015955616730718588853093146784270527470999452916695750168283917575047648344455977492163403917285976215913073705255468720030432832616629858898051336511543599657709703422007479711837909467111834390305657783053803261951816673141783273229929379640105137474915481738059165080797273057560845277206044553270462819066350723071185536936240394277154188959638103394417270883339722425702955147075374099172743129968748244659830448137686239392474348729252319709166403731763073766728451585413318197087670704120979799775275071380654351887442825569479007396036589141247074095556099008111310681157288111849850871556257272046277327736431149840868182988692788851527804247840555468814312342662457037973550878623099683147001651470648065199309231001245824029370344762979853372478932512028446875928214299051787028047006448666898123426567142059471081883944164895841962207922979902094625287665341248737187075239102142259617013581204374027038517059560033031050036785374318876319755698014746335262658586329539705103878172744175067262754779957761503251734501593903820153720444005516399587115370963324270090564257795721676878990613592978452330620986377072667076812492189899765434707500485191816678837395337577683935148493414477245642814630381468642253808264684586299190307353376081681915058152119451751902895882999581773014992403484609994888008538463378509822444818268499932390393148889935985875038613435845702892830946594108548562121716594628202119165149345609989312844775740129393538226196212352936217146405463178805944432242268615458776096067965512752777292302490359817598594182404747417796275330360762050123508102868421567003851743454693303024115180711118007285187184764896130495601786991906535081407991616486857219533846880979317344687011463869990695677467537015628383751955848187966944898453801437082709326620562464083164951452082663626289741038182901383659864145258711341067267354039140705184297543062133706164758871478817464984539166725462250878301346560890167576648218621528392936155339853290240841631100052746901715621565564778615679107246427787321630668156004825530578942317715195761182520069763375333025567716103588415096565350403759801050343095989485957700741486722057605304273981367456932709487372072184782978705946382671667024212498144237132233139075368786953338603311520987223465780331215925848584600136765862744352783468163068363137140742864131973988533691856585607443094280381298797984362257275065832850175755592281817638283174465881245921065152866042082930449489871950591426617961208596183699548585950896246927862494571577488110663932707265402719368673268149994772259816879981910905916440651643406250132780091644927015665939826553498150353546617964708474707691991502538242928097903329218530322417934004816747370954216365723061031438647886592245025647187189236528137820903311966966664476614955564505708278434486049581917469848381815236313431089965047083530653157523511344502917541147493204917088568855496553313672857138894836462879823546185005559381602011298932594506817413494771533765818640501334538702857792117657188800659716581393415402016755613331123416445098023384821790517793602916517113580674580800792532958898768237850211167486708615029617059768627045498412891744012005071046046753602314346229987490560067752587350496883173617190288264422724020510832905556382687085042212859152609335953530808960272381777327780578231598118713241644641761223664874905022822624100218173176564645426137128699861439577451439645029602995407396231665132203917363620762805328988435928431439809879500676500082008696193055372590764425306282421215511076887718647122934501241504432661617771399821081091814753347884265172053248395907555838988533235237071974434042438521939101835403930816558579227804862969329971578853430290218215386703620529846472436265891003772619530054009464434161363791962735101968052109389861090736522821478778062740812798853200697928928513465334668882426389472022234439904968049796468476441848309934253008820152680143854854055563527100296726899344690291896792749408278362669676416513694702253441526282143566078191423021709669271707159391038107903196363198546710351968839891031394270810666838508508897018161846414478656428277993579511107601874753171319302184540286959578240910030456191107019990827866936746352221121763005385901926801972334722956480461045314835482678377819155062529477089182836291171729763627746889141091885138590270084596187409149914463870926468580254261238651080928599102293539245573631061177317576306297118417706556362867053649803845642485443089978776443992512481504979460524821946619668376390576776761395068258484823059160347487673396532125037736346184707324181203870747004565713180105702099428725123878259662270694898694803909076587647506754856842848793074632962018285063004473142991814540493675587048855217391410471515611973457635344692469848984864563138811915697877189807698610485952231767378725289473218066519747187594238120704675395770326975795850608589035178900545208932996022710696978290583207622859685880951588478637848977915378574172327898014929285493690881208052319275082421684642042073689756965857852799346752495961843420698393635183138762430320579101566011027921564643519179449044996440999097293259612438418112553041877635172114972301095033995488322537111938878903585234013941733975354511936575620983789491698696904965584454783166016281956791704781628583407008056833875284614468889916229727752192589097631452084130994003578865804404607317748247735443902771023323077273630799242598772042633346532022740047185131184056535394602927444346178858451847938650612923120134362798962941133040179368839060598652844153994510847840755941770235387171867723443921805627848867987415245168371995913907170634813137034540135321339500599938359522159614416679251605452048629610677322108612621177518897721308061240874761004932230654885557846933410316367384930291999165291858163920392757147988236017022425981942387333866860597634334111955095002571892817881283851608727790025509666641262423015787037096664303103801895314871863175440074559990390005979393069217653761947753863684956183967572739218538351778886973378482329970387117862820708014016939715284129830049910464417700616383536628932947329985277727667788233298573490317328219548902656810227334253583246331962139128090126026001571824724634398548604328559259918159625045284177443930356750932614941641049975973437714296544370823592615041910202463041136578306726366348652896132760677304670036317024878392827057575126699640522208645925638353851354286710926768307011706332196745078996898042076297687538603005676685555088229170364676915864785948158575441592779838884178051452073457364431767683304521084260019714657245541842701414394639082401996479561254310313181999933196737900511525147569279538962401234542867674649466567820571212579341454825101199737057922505040809744279666861011225685848425878771818588056620772122466528918659076008267979940058711404817005470554259162320221482258334017694673777763265072705516453655122681581568232406030689510499514239348086148159727965126710715984810428233186438155403975793830832135068020884769485191255093842261670703762423253495571458041734313948258965451571919729025070297860779546009046784717909487346825079164738083055739526920700969233770080826296730836170295915469460045416034694511680751144049541700768105259325009578622817705069455776168272876291256493932469359104773601431692055766067615550355894054453791544338693710872547832396955600048960596875298145004071094211388018200825203850591968949682785534945417324329225348922526257653338870070807451044210458335639630061602301937042055917300503578449249542577488179285863520792748158663997477751606210515894219451974640370150083142137030642788582939313721097182078453214089768603968232960860768966318223670282026294363152882111429580972551134404483463909474289140619690856844093878701119637480940369255168646999440010400157165072041502810278044357614681485253366586615641250657894388304354170957556357279103051444290053986483274328737316523376948917228770114924394604707575841284580413481068789547164105360298996604456140570844839290856291079930606920202307334594174141627195945546611759455849008681611720379480951180206419038870332792465446313548555681985697130478614099995628189476127897888379498470601191292697415086482108950164210851833403205676887431120658470753564613794271725308333407755227870662778709973248411850875639786635219574286472334458227391768928401086778733427758620849067569585912268490061855524531850529392507000538244088678164821356560992623517003203926125343277973289751151205006997763028342010937957989111753801614026689473927057739587192630753392499704384086253757808252802950954306564451597691707585360966680571547264204151308934990805907292119685760216748747170575838868313572345444577470573319102711849908888491030674026248533222354772714535953157990804359272145073675967502955382388064684718362295020300369009107082687837099799502380050093956566122819127639110415064600717973452499579431994920076952879618237588326502560848052882794552357560855235369186285192922114853275111906192646426924867552183840685684095901331129027694014613815873419578678920976640524156193208745635366924227644536904808210222580732372503102713088271439903807419619497689697473861955989316224600959749487856858837276588621235636508892747975408833581556202817830534122081729233634346511299911349223636176700065940991293426478403948841454602125408664939059154277781743559284682984767896530023037957681406308202756345074013582920464445735871744235158633742718966685900104260097832808564694365311102996337885159649889125611217303255433909716919715496216338260830131902907396467403805206390008248281600563604069626595055051795418121897298081119190884300746407994197794165290908816213475596296785522506227886780293082190913153203300776409762356520125222672520342526373651022906231497893919939452283493899997879222446952889684371856255722692577708301319141297770992579339936163135983609040070387090937672256292657241600370281358294330589688631633904724348588089860253030935276668461269610899061146103099019734897134965604347029779227056132819631856570972604283032023685169083625326316300906111275829638488973620717655852222321777155987279203261531340240310451247564083239859118705112421981091089695518834035371505096927794518346124426509894708728932573550694964301181872295808767667188772868322608505645376583232788577161032027295240041021000302531149332313893144999988646853144277008644780539703865349630548504802703235832297120566625252705111107126109315584538168975319778007944527732835832257858723438333957668164643250963250311244709339662950392417066129234150062164218075283730400856765546312643424823770565023827529250188479053909749164901231191190750013930644354198794861027203746013799633996473784792274732909704910029338390095954568593144835569750923796818468067544463628662541424504064843079717250923959969356513328578208571149946895132097916068681439638071907357845246538985115423950214765437032041788028030074085593018144521233375296909046795365661254910188035593869900223035914323608951732179856513212293289130799454453048496536612624790244842643536490141968462662145383613787255422320465472135050877541905759580422028658867459993321852211196909686006605148442098409311522969675458684454192723385944928525967983541815431848329158253160502124132634700202089707843444274157362480760941194234775954850563398273397608147899167283991564545875180606903359800907154002308367527241188288822817669575029026915081450222915658279015012378514008118246066556287049472550598093870002358662398577284892418338667350675588985244974497079378842523541806051538490858911593653489963372613110750996012116948982658003439823087453202620614231116971422284102586416081067634656051189834668168289508224986903067580857872582354463929335476506575739977554454550936026196893313450110810819657168140410986335588413130470540233800618163474856726457386347779377984087072351347004514506913463502452473875752232882681374000261326677475052207078699327030243658800745671627754374112647918028007380635869141817444236825996023635922226077029916499362570113298641136261784533832057164750728898492123507166322807727957956861973692863508420759166003144201730672324956784171225423385216104490596959000618725558472062946824915221899636052479241795570192668008118781723490119976145425357902509008678792874014371484658210538301968782608595283161186936453074632439842902407089412669788180834070235857641866155453150284096569626669176241066591562662858067817474434758793492338361454349454602461769759169060514183573369593091011880053663694773547809327991546048349979306112325200723633323692783803022254269415948203494236799189977575248610591547618848468134569568956337358608358281920324262729033898077113145107687122814282680448809312757555129103144969112497181110185657330858443122214577166828392397737855072702410483768100307513744230928853277118776532641376467834656929411779826749629282703072125195828605601458758685359949216310755388144254089761564616463085956400781647291797176052316146294846393685959940498227071154895164772120300940137439891597836382972266848582783575044678393421508499519565365901114005751061431349689719294005962597948962005055399713930383426920429546093117371432793855069624838207565783291663728995960381281458915762930329127245038256481457854783424339158708886105313431966903595922026786538756094058510030827629341646440500333688856756651153257246377792156262582238280664661039072790973020748604361406557055873107213143041220638028499041587134167326265493785208186929102873424675892608437116861990208341004722469987289469905162036955111803358511845566795876582864682295874098783376365005470452002819333309089741365500789302907148892733134797583471444553673178142032403095239072656670528732591649967743894305449792983130494782935782854718037666887420655655618130977485187990966703449433485924495571492389662019185108132229302821753276479824489990399268090692446673824405758948863615680403552853284384937033336204106492346008286893481136876815334723351751822399629523938458789040272596826704265866193158630163966092116333469930106583664653700629285315942401891243162630858730300698905607187751774306326425129347100336147583937702966848158465625871854499791466753878138301859775605385012124230701593883398372922028046677810481661113381836626332645338354297212371703317772825020883106324479892011063587658255991041541165959243539143086507714837223950094970944086044845601972607860049816155545144460172929725259170201355079727672225549968944908322410854411239367226196045523252106219418414286422402308370579815121240149982574026506388070820848519489990713261449196650094599347627737004403924596014636467107841602721463118910460162153872030002643962658119665719387482271488682960451147591445537245969358827950010770244503947685544470632411646696601929709161432015964344577105903223818365838402682479505869511926301793279661729852148226500463172134665787091824707503432362861723095416684783078667846900340769198593262878602918441328059066030235460588731683532910060075473233475117511660139608345321449227762502260863216878436465211027644034317793327287779417667357320035306302342941492293056786455735877931275063151983282035190788282267737382509080336797274655359351377685319680629401973800815575298198027569322849891316363567159274694691149367719502949708000545422731720044971168870672144171548545225335391193900929956467553876928175645708104296458440233960517823521257209503995580907303857693552176442141236470149106218372100393876704859804627558512300834348523998883737060939840977183113032647553637316220643436623818841772310219455483305491114876753814535233246052698498206121035780140310425602170022088655296059887616345277598405599246558126771364177792550085417880506232417427970046972987454145179660194166195075024127642892426368596764027577708641935758409570020076077059130970583398427153780033128653601291087092561631377987844687806088207748472631599249108526600268011494280914357150602251517142009735256116776384429228081297845588083390598921141165905213065079314362864249425777055331868068356476879214402046282209059011843037552324830893141443391609155889151999574146573937270189672644969376659065471957703560215281296701833798514053747955094328191025255240532298217326329935663097243147172735739560955817351771581995357486120787149321770356422586550825612745776156495248909338034401823795920630017983958232354324036484286012966005351421486032036994998872683666716215985681114607195865089644610933818666611113307447438857792876980397316681311117328522230305172742444510061229668945287210909533489029682940714097692935965701407661674598465842923084163573362148432090330689534689471586936910843368966898817752502562905726162521037623580104539644531838776205848970965437601879905345206356820464319231722942918913937195410604471030814176071583473348264865416407637867019597295779800977054203896427459193734333721783860633053371705534369593029350718662754389230943113171178291716259185272173117700373098611593412929549442487321300631951257396035899974693306710470755683537927711787485627001394295925790480073306268389608278898982633187781286579708948162364866048360882253038010981447013896415559542315509733193643803766758972094303321484555657833263068658572430311120571243410998782237541436931834529143452228294919040929213776493671292276572978600758952835558051675144688679135486854937891258687430515232513849069509486998518149719641897357553504896123509950024137578284875664810562374203916377341435448443988126482563213490386192284214337343943392321255844069878868625123273740534959748517953490154440960837108274036087099709653095371851495257674748644391485376776501388556728859708437662019681487979920212430864324674460381378122765374521724352157732445460803161434348509636669868422985808874566197440051559436461580464069201938354293392793538824604187959876871721983367414333307089851747585900299191855828753923586982527586682249813233535441669155224767546049795914786278914951027274974762571962840671973448769139247972794646370557379642871555961657352678779265155647093575248579810340368451517458455606735913287177467404653585680703867800439037690979334821736002530513186949445824124439314029620083142429030324592609550733567278333696086172231440940228023093259485861145595221340233827115429255139053231501686339230337843331124725363693515900104058457172148776838374317406437295662817856035585783128371799099484475846251493867215065841536733918453810867703871692672486694872542662168043692080736690571363622430248648390542055861004933536462399406595202787812545266571575951874790165910883867807979660074474873731323876149228228026900744050001643826940215845285966780841706565166951554003024740247956800309222033550370699368948042852100132503624709672182430387264228773672179095465711504663528687798389264469741826513687448879565888741764955361882871158271788483802978005980732922505208671818923664872753742926000776875124984905146444113027861177031138213732157478637720463402406308195841015428949070393238881680137569265500356845276269422054332477954580274559712026883768279868404651512726761411894066546486206359623336151149067150003406970459122826724604761646327947031278346258421490774319650958669343479895149357975238090669905291654504910047603512552803538106753370109512887185522299083734625690089048473156954157726961814613342038565195389988593237595596186110899066833081992386918956089664820107948457148236732875805254208330922661433503485145735365463417678092555832106996347116549218921576313289156072286100274478658784360677416532387252202284448080916416822312159894907045310404173822206506298823676410599560790934414090004544741820891754082996717665689124747484443806801399827652685344073428004717135605274628124652725857710600287986175130542295858939927384652436124568078399584469746508264350665237983558440864818122148073229372780177322034960438034193905088053807093901002445846714863181529422010220962576186650335143584357802822032229064202597358314120574599427780840265429826190404194141010683706788042298289313801482045194904205254043369496127861265583471666268746401695128243529852068251073297196989792018399518704397229258910044413978915309667485925247056132439235945667603459256362955256686227532930537523489764381235068897414950406068033452286626922374015038677219405926254517659359244879116880767702761190168936514295788032643783286932591668632476582224470094439726192576360281601529535690024123236426062397816127231116621230508396774408335800322222196945561863049432821088700192408628034684789360904437856584688591338064171018675920328145771280487857554955519554686885175861032999491373208073899165873841018479363800509680864107319042457239683719352950054153349623712918076595053587290171532601531739237826818612699559281689370098853289124271855961944420696547831094148656556184392764503306638355442194482768952502987301188140612216914264109192458310469952527801664953973886880413798841658375649546569262370340873501689482909163084985511369241871189243496432410503133211829449246967137546878754676683988689542257192971639258002862800530419783894090362957239104359305660757094347616822265945019434232358830657989134108746054751448926303251922195635802475351218500575360574806388294928218221418611579614229754418967117494773532082637467141464831671888028890503773329510111177608372304594688566362832518961073330995288366675554861719851608194632986791791099977612580168021044328158663669788174715373754642632587491761973084863032791866595845935706606187859993996999524238064284057317460254105933974121582571021999129102598639825925240822188666247747405840550233549018028985337089441225550947389615663713611074572524210939764687814510051320207579989151774044456227067210250193794903787879032953709179408373052932241977118928597448793648883618231206258888900061630414180952473892670339459419269268408401013274297815545217942888241754181140263967968351973403532618076638972065441633364420240249102571316867774156339697176963270604956966505228299727294726103093217108768722398552171918348792442195100332075376565092422611789266550749909826039496524047408116265607320273170016395697190366982659638560174734599783929159845433821342732779877072320537402603684040471845611866803720527126866489194362179007202793689973701742444788796261090962079636085199051760273927709406611827121651637071761773923446301104648394300477447341262548708828204329751664672598933749281891657733695764545782436386683632287967900381823731583020977288149215014764923551979848016794942849519741015461589164199956128367284059258950141089826410036455459415658189667297676000644268989567437472188817204763151221096668452910174451580041696915370562463833032133971283447930350915431925738739839649969604372746630535615867004781817652308675313745450915990068279263109466037927241741310457715798126875669902595317634533562066152323662015215688087258173472872063208143346603078179803031607715665464699979097645699993247719766234223966755109648620994923049817420892647804086460341529741398053152973330025126976220222424453747073588034336504849251729104260095141814661472985498936976496576112519020927490909282999179303446316476605333846263689506844174020707091704411759730040981493572425055997257973968613887997687480299819023178849835333516795074471758215419228615368153430181914034210102009955324721797643371181072813098281703293093559805379097060043340161316255639438275756316698465086357293154944477504874206193699917717470613626420875375166295026110792882450080706416780046182596261435307123274539984888121231377548900942375486768055412569307457615578953961714325300259926500785915365819034282869567662992318403923446830872492381028011818898738825251375704811228589439777863872586326247170534376374309733563024368085750211132758352777401935605600420874619935300271829221713283454892919560283925181728021818365016479521924224257152286174533801085108411075252327101835945309493688307895907743037947416727260913290835532612953740660551130309190933175204216425588079182343052646993602341687380536875315754999870739763247744853509770421497043402573804490095105325751991786764468145080604105836149934552218314634284977120936843002595404106362031358340832977495577830266002488414790310628124932099148105645510101038921820988136852161646694435626696838165623256711766294675143260626047372449660316376207233525015710872947576952135674758897401622620656209521423238141613515924561456494251272627581512726287849577496863487580700030228360826269161665748673362642582081663651799764984268913474435238816256572843853800224577308502540390023615556160596653661760753987495967440060095893111031424228524637267888098880251826604312511220571314538586458753347304361703035742492711817627237159184768793645978094269103632732567967853650876297645073667641348388811409955343416751195583201832444787424993074304608974178959642597637005021655692519375650008126377148859093070889840455137159605767016893629834291563806778889472871669634545527242037055889938299819642378228802992218449002705103728243846544558256430016111586065718216661898133121963291167541829443007395582137890900968828316462649346631459313849072388906081368060452405495214752472018359990242182620386318419616040021120749967836330812686444035386971507533384080983405999017153018562075771949902085674698603414648904465613514792125229289138618081230580000858970498689194074763580557976067534005627832897809836476990546896276338202385627833550151139948232810758261073989856143639099854799034339586697411350090342594166947552296208443031151313067158274041641818923494476906582673088941489975995751663211469822318834502992586229604109254449297599579358462963592512512839752542547920361115704253553744271020297183354214257705716530486614099361029195983458907542596921998012958492312366213379483075025580588281000593401923424159368137131865561555620101890519935648621426894871484706315150769399498993480850412832214762167489659570107334772241750616033939505655121529202575699184911644328663901574065455668910729772716440357348808671647963842987584775738992537185982292501568006441880169919344748432375755370239323352047686316419120772085362682269127411203289363425572261474452594109202958185339822251025164882900962443227742103017003993837669273906129943531223582533483644866674012848831996125450513772425825988348140581189481702507103075133327441113936200530080089457691735732765967550673853910824248278318596053664065320914769784824385423983258349414305825968470614315838576569601169717988041209484942499065353828787149571875165560103314464413432076738026528604575811901983515993733590276047448335663517798737667645152609556127083837964274702768753790817815943916272951359840721686094729217152546454873445825402837484547896460133421486912116652462131529669915557681313774330847683226507585493588440395882603841126066296921336481734938693535376646714345704976324202863659807491295685763180954996849183378107578695726657731068378136245709504831296578291594715730096056410099343624652727333918848058749230200208021217481468230562714710185583607210073337550907787367126398444516211948476017801846888766866836511648583460599253446821081206007522914108886838945399563681142650066953720334782664234173548130605700568845371881395651650654843597458076058940615796638489079786048135371204353216723060798452929991610116996831789770794033940604375137835770887685460623172760221259674019635090114218043950220820609646181357124948465508237505858343197038065132430869035933950931017597666491526317041669816111989789071109725640005100977696236339248147424778981639775362142674344917804064732911285271819083640082594952953920934745866310831902957736740837465935366280016670721375950912526983480126236392258116410433609035363120496888394691048830397930685248669294983715660357892090034814526986354875550673242744423916049645960099415000797743057620902697003423979184557356355529482282457292858042144720150021288134546970489907173849658591900136849032437302422936473035786093343059810182289121823631679283913851102378239630367224381426233612021520487853981333718962154358476428095640667783356780945124824890836487141150939403333992708599560378039569075872089007541243573533086439033138617979976018595236690887954857150217611038539973953478605993372644587433957453239920247058324354584307394982282426998208635879663476850430789506930277664443366472514580286730611012221136358912766380634361464031060175105233486967832731510063444054749937778321367845226751593088805515503981746849799682506768841976474430147263532987125884220689415603462372067130412762191146107760164686647662938330349164509969614891106737031311625880664531723539709971043626790378729989556569503837779532909675137014369764124452312344138299529857242028388647057175301512440720437713282260701622139683613571181611413377624728046966768045683705379578421500421397668517955605249758273540977017175644565376533052339670367623202071546907079310668570023730855216121481458343877259692005367660419786572809436176643058877005496622488495235415579505570923887686871555019394115126305326178394547126070213616146650188085968649678245622189698833285412053352948767416860422795062717248639940612417865922251880925406931504721170055898828130102041499570913324912653311342285950975283488088578587500896323258636178334460420944838777685944850485558469106624626472476755564367708288109961902692836803875947184925380789599820000207476848782518299669667292479090088778864290106325665649910024923468536779618582629712817565325052255735754285617587102109505236604389866667495594215130255761573551987931047104165498117463547347211157632594011148657729889711987276601706950488311986798483990328145835418715770658145228127022143817117381183695897921263845026707835723905233685323202421098136720580727173733593714365132030693393157460936818177772747796775967626461707629040037133063206848494014850960033905242244467895328612751354376358283120132313146110915069527970266111043760520759346253419609816190711944012462033280890617140756533702567358284568711174491525187160075187586679206769605503693854552065540492990873783034783182206379818223739131713445554650318701677606445370360645615858243364722273751165888189325313092583010333541567816719095317567269735994906597414392365845292579863731302821398274012293768156457819987564137920848693841012595556556662705484033226621266043047281911604179587348602182745231476849381688453008876331223445620359139287350459397609689767697482346581930142410209417132663841116914900070582192395930216804594483965568404160249363158341581386733120269412716014711922564774284419387881891048701967741704413504966205985521103483126988795219078426729867717011359682536529838996594460880970567959716928415419272807055910891055523318115443078712755606654705046255203045117851311523859790842768762426986935078449124152319708902210054423609744431183219173266909616823280710424371796709972558612561615047180334176281453093101450882424112229136046799380931640210049362820305963971594842450677738774601924152319367052077731798500232185747077686449348738216993619191771908981500563644800110055602180883318110700853923388071125373063485134972234221795342120678843401777626537306054404587136036603656791835729461115434825648703788862953874109166070762846737490709769072426388542965723840790728289320549972634055021241149639699882361452215432567723944004131073820235434133661494847707833433506035797600949751252618092610284684390149485163099185384517293410187081129743841610035811596354666272691177727581531166581110602284748941765482064601025978257769596223212551316740995513826956885270649521848707653526834310170054625858931595004523897341549688033427906347254223688046718458750592642960238527260216807615388914762313635107046805027995559276418169994301921724535078299659895869860320601717410636937444223278355728251781520295282245802079938707839532898272633459206655302056835801079057156387274841514491682420791716794409787644904523148225053543605675582838156078656576594778985579696653368361740944871420908747150952299010154139570557791268129375872486353760778644420011679183744935363732366836335338334250022025814490121126341823992072274758515576710087518195033979022848569731550781899381449166023672844858103520990887240179309042882036646391351061070890816893718772660208872264859347512257426861518266427261766180018994268251416450820708779515350602201618052450115763053581585309676116577898038758347297381124859872820853804204218731441363800641648170332127738772904415550119600263024374089359172927623174611436870690775282773888249509623700676807072133933697541994576029847367148468061599467189297682613603498454146360169010862703754343764185298139842687106679113017969890878862860368788721942148898302588934794478297430423716892247526844342159339595255873186978058051805604629940877635383715571079433753410992338364348093417426576230872419643316797293719223020611139623642390338343855706707183382967777889627484573767453764922061545394867471643208980302820705788047511482097650799412318504641771220079847645244796011318804593275967001327737683135429532492072298801966259776967355467605471112455198982171922774823551670984358182148286057708340248383879864043484026033658000334661609634332866493969589550636692964138721882163031675616615810272939834412440735877716395725773570092696060451201579045858148269355167667672298351804121498342179854157566820989260029203732639531679806926057657377565717151372169628878457888498677923489986291225208646605375414377245958182065996655950559138640590534964790162623469199507738904292404225568410398758500396439584212019871128292334211198690438431872357203351097786089154382042809195212522094522125766552791252047829132180969214958943012414984525589118664621332521695157437679368518251086329305413728144015580288975753245534065511920840597827000620250034945668883821762904440028993535107950750914991318332823655156147635588305756314111814045553875091249283742957619812748115168002961095870352278156827494563451306090857716032548329060414366821457446757566856752408027967080070765265651504993777307909769588222363587637422860643970833371930583933321445761242670495946196963552625312814632748250510940273281083212833712084663173075967906382870330915610527503739303044715779014882928016132929104037345098250151218622418730774683638435344932689452644615815754192822550596440012098686537434506157172865294606606318486050014399002910573167600298111589280284753828088620196100692053588648520700173777779951600912399684057508853242345219663856176227003731421611682523971089929137878106454266433974724445615971006052973500715059963093881681855201866104326266877551575518484079441135420723746022558480054304072747458141329008786424639410941547426516226919671057226656846873242136425463805176835922403247982061769687031847568218429990624642226096184126064075531047538380076331482731544662963907529348340053004560833613440045496475891288833884351416949252541611333808551423312397985926733650476997563343577959738327714920965111402433589260094689076783601044356078838784458881491346866894395376315346359746984516358240621692867642625026196852182234215148346846911304216676633073543171975080786166861539906277257102140206991646396764671997878310843147870815367181424072796372609075790051095742555789525106760527766046275165491235159301672127368635509673589080396018257692842868142362312248370111421084131674602886761757962825266623690619440124550567626819522264206454058091749174439150737220759244185781222239465670432306972390118221557426543211219320777723465620959652936573807224654440675887417218709872067074746300830031679958387171075893266803953145248943108664650897970434740849973130621469892580618076762493106229740582172427667105427456066344566793338874698126204032137933179919411573523256507817567181254269966246895055121007760030745105339931546303633693232413379752995700403881176232666820114406818678122657255689571167511914720552405371141507549397408628694041341671015676544102963347105166050057130689301859993555775963110075627891114007653157107081349658021331425774052606088825457269338570980688313950638471794045920605378337857892088670992379463100571503588114417921087097572251290992931096049788606888547561234559673166215621508867461021662371872347610182435365653260977972593702933101804953293303387245448651603092582175749291091691729693811008965401907971640397994605732527302927091320510196318391606494579721217741304532842861667081242339078003318455445344587882347211095346197796745022954714970035890572967004080540123461001708116515808004855212702555630639729386463362400521327690212365811842627210868679204485657106914803494207368015580153921194758835134100522187126924815169437201760866044545946673141645398001425096443753673650042205622890939578222432019099668061340329173108061225824844782284882489337595046606350064752661501677502588063969493835579586706589795009481190085461790653080211173958966189217062407168466240195321587906284342102636310036160325824466924616301424115809736877494147470046856809016461548401590921758894105886664884542002492794957741297400719974413972637673419254098700689427053431301990228391021918171428473817338298342679750733700444294066177637171829213639437133951031030791465680168335186361639037453651030054392802470291404641178402489998336415968862466739152749576709049899340280017049821142657152248027627778642041340883449544807619500071889672434367877325977616853780867375684181504294717768605563706665622096210978027942278589400538026314137429861043619231062229377032999973132434152459000553387861282288067683485104904201170838634644247179683378709227185291212851892738333343344278252353464317267039578595240411260072188892432273549533280346606194855914134371309789496565883957519285252011786385330177812762894212428278101719908136332442667228532703250774393992699249087127307461963014032730126511523974406668770952783479285117189305832359925984073048035586116781133666745700298712860658613080920648822660253627066384472542493274324724108879842553504874489443583848279818915432780587468333921021937489556019248509917720863802481929801451474300658490425332095601966920079386939716597046442379843556529335919387169086694464493054710398515417168455257271131880928300116019258469814525206100549720322964384523842824705012597591452320414246718769055697951112252611690861159264210238399633197016087052506283169960301801226813443022219089655436386451056048141190805451374589327162295725512552282241807829406145993718669531807701494761120874054757100755593509100763913494986472964874005578693278781426418345727497178787050149481575402954828426182693696034043606700061668122623100992445172457198677130255318021986829258778401248764930851590524807097556848017146825105662375620801689200281133231742087154705078010423491952057929953428003430431672098416106830435318369807896642398856361448232660640911171669495887721076576060643847058106101145689720797374575870030536526834922284517000858554484931251455459360859674909971006788348163876068792524419123596230513678022728089249483417620300033911557492091329841221578299537432172955276262328361947803407464938825140883503100043541445906199503102598060189503262003686808035419859186335289942502620373866555850986067947588617608836205791322007660099193905867255755561862187553522390950055553269846731814508858247048739202298133019925396168482400687360616307672494499010194912400828067013467729491108157800507790721077083121142928135058704238063077998017326524655336335669505678356096495702321358886213330312920753059373095421127605718663150165740036887890489459894497926880489019413964348461266022787788174409030894447280449307039312436975617115536527098923274413724143909908319968288431633598819632841650436394546242810779298577717610260315758509799052111778612326983352748976570518187852193758356897274438381139024423236682206308765218828621122989959063688221141053810740736291456273005240990057192815966184015553271643714736745652421863070405991027048136919033543401900072139790501861074818141612263976256370867834258523423864678673495237862436756952979331564719002486907080831945812449436016058339336380817672564133864532230978685708153595763533051744025870174740628301724948271743952671809884733202482563925372646718570310614130613197801159855823011532835251232788038959344176398449847259107617382072384428483112513500273509048397388346443793766087431717689357353735961647121842310955295663264011525490700135152872248564133521974911246297945489368947688311900243339551827279505628944315341137837701470694155777034135324421034191417471863513202393110660063141123829022312283996569076745658209788861647468472895043449118055990323986887554695845512767550016022230264900508271400887244991684680428829205611873553056446476452290023465744890805680347705268803345185686835533465280734981290833520859970347904578490532504576816621086782548268225182371426191185719973406374669977493667754333052302355292768803927877033281081528411707224015368027541899807343782457710353205998150683303594421222446315762582433290377280619826884140958056894803059849397868998095385063663225613387998121812596986813734750757918778719394039968352705155646300727220639244101724714879902952173858003492561225980332130360077840320504034644660711916386939079713787982447480183083960399941439020143278691473839433833180121282489319604797299263834546348625540035926183561523966736948550799663765228420831829290672600636612152009734735762358194329420093348237223520656027362897451022624679577629263790345292761493171727466283921854307628169745994615195544162991418662943461072727072318053906401497220705811332619978893116807996115552309935539569324275566930393261088710897664116056881811867975818460481647411974068929167007477896437854635077004648797429983206078705253987906069489171584328364425085483151697753621674921327387407738470116757272911593133430814833685364725148698164705837290693200856926745840033414574600924911198056412832561348825326441703889909256209877565028399986304895752458425018504733555961630710576144919094091815668157966676802962933757020686031229133366277152495389296019846637053113822340993014713358936170601410118482770452028736101983540254484974478402011687555121700290833396376979297187963282383325343689855725960003273161809049430063549481155757400905690820798846471116352576713857198332174731246621236764019237201486384461286473734347398262770220132763362763919064787137908484749393192658762423629332220844660964358321358049326431749765441620191206103235740258933511177069216819061012305904869722033808225286849109412221016664806973412179017875694531437374964021458780816795207196008584823166234615038605281873152815987881677133844718455694429621529611815094596820661714367693857139475193551524657545664550067473555302566898689946417286283195248745339856194512537851203149007436493418992022582866107285564561331794336089198738744193088836993821337174700886547337491525858353602990129427277685980199913259473207997749886031013470687587240796041326996727839921744358674759149093154438316279680216202191111132719030791580046966031420438156430999199127252548510074603042242106869514882256224003946603461381143755143544298063486743977412597086047152660886494399796368136285958362745707175252660390231089799896180037896823727166095188840664197465430767156065989544198390566439117871734839977214715024773256607591313828387922198157120094908134225996085979772533200728309427634315172320115937872948660517385383733989926026469988317198525267581814630813750235139089389863399650412414940306172475450078143754028037223503261410757885647610591255357134576327450618439006053711309230173525944299929636675930593333596696783012473857479074369151999496629411278674426665571092051930942830930775460434307516919569185894146207772051860944440449677620910632470304735639640476954024616736972891416755710996243413500759639985106416036098685381960945776888922412363649870626333705374528277500343396661793532661411466669620542686939726146297295528289351271880329755904423260568303653692239967796572348021603821184558766949463041929023170247337511840095820176951799304915506122268451142901409889887793795730108931479632265923915126537443352854177482707144576265617330739200050624523214989237960771706812722264192219133227892121155836934835011501364795675890827530401097086935469469878496056939575960331930151092431220728965471348606832731338318211511351543033010127075671555861656148189342821102496479141301881462138443002810532250658513356809307128718271863592762847773736059619662694648314855739438036412144777924497266778098338861803276660101211332209209973436607024354183436270788225225202323806132668905808129235965121171844093789175160387575099986749640311854701815042495897598776914430106236337307956743310567700296003333880625984592371896601647961109069718507076958724406536719010185739206947023672131046040741565952129411704077091482878954658526835519323157304474755281713211560109545839695792808659709024763989468717619544109092078648277493535565024194263143377472649626791363396630892986521434541823094844714838754989316965771483236021578780700201739559597975786198527124465167545959826613571156712629015661624655355843942759581162498988104316782202073373201925431954323697817382952313780490319644300173413063133975112371743688257025479962463561086483302125005319908892053638999859884232832805249512332611339744725626589598458987477598506762142706084217534682660737818426743972876013382284293712511403842823151860649261279646449278411909374223430346354064054790598112307734631178283746493613921988911013276103882937392495129753228635203941440220590454356959438859428978814952973957983485719976606008365441675418430353139192888403427269613309260878949086949206226587109911476555404169891187945548821227351667217813725605320162858526954901130441475445223396549365205942387473592299126548949547784490326836541834107377314459384284323479521258802274259767900473302245728686836130735033639663611353806114511336940939986355014719494979592982143459580935993393005290630008082226196215177735915384338976281103703100910865480771545248340846583026080437022298396330004113220097804876122376428178224865520189773298725150439709569499528033747306906601480339500257099328496021958583765691172636609400676768752695572367161430630324633418915720644669473432612221067276828151565198255984451074686591398285458285650238028067860737262628147414708548719711397934353533118840628187643021222506173345338222315765761323053926474152584199115016176162956999516481868521199292122807940814818111213673939695278614267811488442074813226247661671958153185540118093683334347060047301880711753127175246392288590364439296710868742055541230751975722611507478100559036054789658895469068258446257668703446616881123038207448885263816547470839209124540914791583415851956600752540880227449976418721782227147969102315544931753281650943279397671935538235865356694020535773383595562900417286824693721236670327775758135424736752659712323234755796103581083187475336241381523263741855762439202098960212594296680693522900276401053582425600381570889606993044066579580883379595441017185520518524504692364697357212729654243680114094289932593945427674470586369128661281955093442265853486774360328414576488402734443809998718404102316335013341112085582907527383950597150578071689337250157818828510756764970323928712442577449026020713377382520168554193646679576744514904125015307156949824534364212036831754483738458527215315292766373208452581749481494775546675687606997259268954677016673721959923481407777831074120507572918826261622531414453279231967229115013716471408395176341989187554916997767057013242061782197538902405736109970572089120349692258301130951207859697651897157908872524019737147106427908467603647209121113989682217774018562441493051503032762194350654046107331622428601851092926673952265404066719481225734676313757159687112984896609678254439662776777642645708410444265467293264656258850746287168732360801741462214075816441055692823375361341075078810483576003616845491949183592515218264191694552524096014566398165099400006222979445815794902120647275346656780517378997160852352417220832520580052713972894193545905823785804993005389123944972952615533017355015366625437393903891816448401692185089686084542198158534120207021999556099484229646818602000735073619821488709546788583373589846725036262647488366365160379898120489937615697620389219955703193352162226904201931896844132879367549237859692056048763751260034927485048239923326695868962629760834033012733803114596514246797543668384286100313114221848366032684148453527991887868975737882351537520995998041187022769679080338434337350887435067310623970722170290522701891681945421932390723792232487246669372715748117576042955397402248400483882905692360814849028402457725741955283786741365819455025398083825134018194951144582076261415733279101033874155476727808776394734507938557555583306414744992466638139128262390573871756363048047823206847042457243107194776976631322313013486717841769353703416242800653747098963050648121245460902639217058674587328161386231732401162889858946402784571640170247725308051005565490254360034563917024678372717644311320324212216255562876486401107801951888145485545988780499652628641388441873973196184608381241707305805295380077426302551921301737776717718188849943065103402050407129645260598614066130580273097868326464140405561979976910809107106865681202904886913662888938386761485656380459597855961670217042815580919136910428655705351556358633435272757270419775975791307290801750115143192212911891907866256676604200689568201877074914846351186086253912992472438794283883682591386883125744674627305030848248079492242340608666726477402563661230332422043743166995338498145997484284887222016198142546623283067206636738270039311845159768340145502897062937520140121262046500440481373739245306011767706776057140840023124192383105211578612061275918490797048436994889085375333397781288152881844359422213784236920101058376357402318831395004565907822558915919062327722361204100312947914776821997653493191127365006584986269448253047985063998939358490813130390626386928942896498447612925316774895392726131815193837801810896415276344113020572990875195502220288842090317030494539065664457149102634518804570007303292231812728527872361609800491340786397811113529063678150857939491812310962399415194788496672751603675059564674867239782965229678139947554498830257598440420463420068516501500960483572259005037026548306859727355413762168337749106751613683269479787103404648723379343488931812638544485298003537196698859500866057310027933636440563614883270735667578440269127879196619244407767090629731371080537769619240163769776882942613879732361870895773052200785566544599416352309867163812860904438121914831106185503451292366549264531242295452461093549107198918722286517827984754985797509737234025105178147079761159393026675277465917694749664345537708982604332886220336694239036594257868981566604370473794708032166483513480018102165854180547171955800714972450173093816684715279528248002769179442410143304079893575343589982472742067672223653217217293329560178753994365659131822717643241281109290931720469880878683253586622240936944923661026761971144310966102133985936543930748014148507674893948459930212940731374434048980548318948599106624559391865163980209440496113360745798526459031658073765011596960440935797574193836326750693262891156638503630377016826073547643462941812020899726967017437497804413143571486154264773199991158540495791873783057238657481104952583977274685980800541091733967333836159205893764483217952459577528347142032128815474859650511157421446202547757573548927388242878448204872436746842937819878883026358638123128046737641261281142623231418508164609042351381851797201723215070383696508955712983674104390832289247265731033771742713205251109275668618696751320133204941047435300023547462038902285539121009184123983840915416390067871033223689516803901104656888515409983149540581148905945885319129940948298753869432605757350371986059214306480875638582548448612353099452399528428561154990185572670542980353652579006793082783856668613878727424760625877600694997777391570469781670032192396061340653071873591205750427191259744059497068832368407070198901883112553299762256955146901483626065833358416929304355026592097651483240815087615795233276974408016957077591851402536729608378947290753829875646182298612298823247311508745951776986254347481468654389718020749693751927877070184074406097471437103208522968720626068822718686855825194395689412780453255469853397897455492866202164529278960627581420145829417359733753379819764810735106302404299599573592799928261896933459996311391067941691575658298898077472640845346472434014856283844026967298888318977259228358976085858535917174796862449770515367080817098345837471008340544156408941593312616021161946436626408150424499882406413671332433591424606577525902406262024167729962933555768195497964566060852136338772726240469599627690995526401887979488953864456267194675134776832503876103099156388258825945077367091196024904216369553424538582627380940850669010993465403540090890684803435805071563805214955886185997369702921073070623760332942341749353608340024504361891212810321065642124206389021315048611576241795651845089720158432076282204474728512421077603783451185057642855776214099935333320691603631474864340185343141646678589456749626927332922447783642669409458246544756986225026944632865086325807847483048393623629933730096397982999255986579953038449705006198643234445050127100503805571040522439854465296787564116116936129729062531622239822398643998459939839780164714590313935810315224437042797674396361883504063691496678327845756383360864977348595832501989643368773911373597709113943716454260330826571306832159682074337385135343582078950565068912934870786522094776643254434763602643064639893350603100107834179502465491344571586661864991079003865447336288742570712248523139453585063634385352710562831346258581735541481891200126841794737427216355296553911688889251520333816329008155699852687805940289659526091299972724459884886931757823652439404339523521508897369070547546893439647211318567439821492177643185399849427119231492736808776018327072096446642208224814164038657605141950190155281142626978320602896550536392926092116518819815631469777762118293678196144077530119706538837328025837175598654941379766216586853754304590030602307571447542633968835197158649836502807517244204843732532508453556292440706876593440303038236389326411785261159401728873451018560944664944833445616232734022757813104625209201523898115420849641481372790601642741373468245742738590887476365024456520658719931776206341108539616156019185395559719723565492044156979502365090730943903565455463705603679418661353216935176223833494510530050541717956327345440684129278779661702532839325217349659254503474846073271446489502566471836873218126985998822731287329115497950637310969824483650257136915595401426473393042813702569749535540068645999871680915252757607221172096879113065383035410986350876122277502110698086579078860153524670967098259865297330061746310745696548590300112469975032068692370050066347060380383543853891744514402019077136455101689842667554683391975106726464645442796598992397304968631307788249884001392093930530625247463413669798604413708480853298444938020420965989894473632815699967662295207801025999869033201464810868687263435017094724172329649093484118785622070933519621863395262347587994793104352982614044668570286506792141065755227452509163125740510203211299142810284531997046171660253893499579922020821114224862196975626366432220403779703974832301854300971318420102768443265037186083947554563011398949641109824119701931622303158948217655092923296679965361561159504499151646259684421280554230614238729716806371601459471598919664869520121229065579425498862810684701975122648677034539374252963184939879666333739511141618872889264383579146654797060101970652039528799177789923416256586578720724234381232142829640447356755370966750948445252687323760617141729428746152705267313075970693491261616602987786738523945408145803474250106641483445029503343107146705051435758064144769441293352539757775744734642598489524077631156949263672436898649077044070406654937748960782811926349431684643883427208109099431360702175405724502052606116676216243142313657021631858009765090790905969839476329776264332776195391162222016227318534681072528685991542653838794140122085935540404133613739126500859840812799294135648086761139357994992401498325353917211957141189010192277707278691712283336173878631801644542716136246558610762763127529888602623538702933173566036837495383011374444951325181459672607874167287660852816603423177833719968705950444301598202958318902645405923491790446097497632359486186133454819039315006472656080094227464722384754720575200070804216854265831799084177132918274898587512080948622842157848930116113643424067323594725946371533440466802678122638109136638450444073332337048897527189131192894061866845904512767741917763286653200791075591999140318961321156192113502001338756423877332509125639235467856451803786141012225350783467234479194981543195512699071490507205402427342547456480854340140500211212740712194494080204424451726559494341516454033631785670036980600717658960472551723471497799714043079133692876000404134285007386248741773406495857644260005162070912634048325817323273211076012169109940003655390883413822484059527171979805080328471868312653145415581992780942027809434704530936364239533140207326648618395302641730432574481901728232188559119420845759599244725233477667426369273451566003600119642564310774457408120791768707303786591190148775898120755092625763201900839840263957631981093570155611855567726367475599873505856204569641576012568398401821449333400493509809725392606520839150582629453617300865168486807704016729911984840839230285648210153081657527473267162914560824852952969744844060077357611164036402942490294593723066567735770689966765914089431517924895161822847992827504604361139534671406464984189246322961598834013900649042937861345312070781192845171360714037603449466946968772068974028712819941441918609615642173003406518356796640383394098865110719789530990457296419487280955641191968999835696483228450920080932263274185857006112050637215811837234977816137104643795219833263017004836988335126932411006889751067575234522844790138017888547581964825388579998355242963689586875691419294354050679453121170654001838284022203133003124997417028876868674941374386935163369642917295970335840033442264723910014077740457718454008030516656058269443587496724283102084460024823969936328252513384882909022458922354598922280694396039363200583234100632384949093889713371125130901426063891330198278728467106651708808842085991013271204168107427866213110703667794053845468715125582494400962165239799320538153496635052279417218688949081767353783853975904566204839268386355851127903509347078082613360698845605190646495311217689643446193726643237511330491441590047140097602369378142992814702348209826591818622403752908767016346590219077429506061075340615118800413174701501998945046037271473016084482071042828781533664253060567963296169674762678126853605204991140339567911073649934574606161294009653974506470501753293235099156029269176406762023835318223428353416315834578820559774009819251854363074223460181427779915254945899532160371671119091971399564262765215295474345858923601705979879095349861255321053760978398452841971943722918264739382559345078479639009490154197287484812467858032580271230611113795586817700227312237154462948532137784197030753387646198739208827046209866118469663416777279178862347716890944755755614065490817099233993259707247743054393868480387475337598795328312755111936592639245871250387802679793214234272059017222393374814300628677347613741016072938994967938857628095543853438280925896623452468979007813483750017439581282850141557184707186834931501172223040003130735198331580542430449497557416974304274103365268198667007081920075402754280261392957036129034922322415905994140105036911111631361777910865863090209417919646242735159188023326003819463327318740267077281544307210163615993252801666679680775407034442385402378622695734165963304250221318788575169923908023651678415756967718139253087739105160318495652008818318163263404123752401293943511489322789074970692620455249529136595762250578445238555373955558014447805922191965675596551361219513444959831644186034400253838273704266223180768168764303977391003854059502568487361596564166086601165049150390507405165082289435813284340955700521078754534022495312565545814180049631874694961781085251291299761993211318258104185651271205787746900509492383585118244997143312634257576453012812153752409371849411343165552423246136960232700487587258011128280770415068259013284262955977344179124141936862611184911431571014535899219046298630919611842374711414480049580848871687501496456298208784807531095421373921693140953778764292678069157801443120469525745469772406930524780952907816846534314980421059370267589174315103265282188894021166985927519803849983955107478003052701004856939750569631721193034162556050904315724541504966612754291353502948072160723130264568436176837266148059253389188599513488130562854854002581658555691651577219533825795138756157326294057665295302910891670005848082684254873598647744372996391427085358945196275374939768516175156432865459757785034330404162921774890671853411741563511804354436039424969875997024966869565093094998321364977155715974960877627519744021392998342560598143573609281349356454319134214635388641579462894161800000644103328833675075700516538200666635912196319865627955441312170163780567859636535395057871754245600891344559168485328392117092095338917272797107526095392696728245008789842331075373308541477324879188504715075169153769484956740504082956420412347915456683933219834896245564979112585274494537420128751290140496270530616580987167701087756141845569610007017015652364152034100723557280812984839520914457272177919498097085461936247081766571714355128223259839233189502802007305682153999621178942164519749231935321282642217417043430877018506514342175845269152286392544511774361239554066531892484718272011093844008020748299689768987821074335577425584636358426053994381248501441926568329326274778144321635030334476093906071880732422804843605227484767212784713109747217865824822333236118815792967213856878535393565382495705157150273150110962467574005005676654407171830198004777548795050443837294337077286600313611421932635888903762436274918096556609527015440449455514214452312438426871970425655606676819631080716137345448858319108472859337452293308140449268416099440606943429709330862169667784034468322503176907589015552496589188105703652910680216866693337457746828536408077877966342936902777176660518707856461133809410699468738965958526754641521684180477851697684363454681993048826284617821696615211692242248557266575071953653703902123919691321391107000235991491723271148438157397623097021554563139835237175519313990680695050611478735522288767892527447071289493626046175539404639076977235835990106803362170477627481014502402404401548325766778677602616935018637883772911783345322336026873763261276712564492200120265817331146990416448472099499401926885486167239197077194526620514983131547339492580086035488008716225304536710907833197618456137064735401840576634859444686522225423187644287329289795402732754440448623161035995003623096690850878863871640330558361137203649263884216380676624582086064773597990545743496399022667501494370428437727172185701984282055738914291587333897932958854685038258201004573224236472710008451009374347850837287478461615758270002118743020061229575624398176108322711529413209230062662278053428073519200865691876139899843995705822883285278678886862874722013030532384382708661705781114666888254371238385914163476483592861709623242413973975890077184821607245401453588529621898938377766542680320104640819367294297502429473901957549162951316152941507512044540430794670804673334883281538316271776213549306328090466266622881796777783663805811525112813714074799620308711563372935793509133683507705919659177625438241390562824215970167909623719538217543515475852959539566987390612625057347610934347534848475979348734226512314750760225350726279461467623727327009004445235450993309128846818061816940360761113680318464078478371725230459785616526985766342142634588402770065568438758814747706076914181039357051108093102113555675359869544317248308205925346303960275043663718539849134151719631144443184518760379315685811204551073971367475832591931158463948830641615228100396928301613867281238325330434402659715670470133506514536353829579344200694593216156197666800644568589792374922709134597582212888046445628454119927430216080667143250206454973501522864679534860978225016518415699973726117990191663270721616420324200965790224737167442630828170485822322325510504229856052250678663473717296855630959629856494281513814070380259494916364882634492249556852988401498992155844922032204721382067891254278111536082760041485169554353760778994897849508851868735660668621639987600585401828284931047902694851792716459164600370369568281300207685434320457322364711469546770502121915572211691123781281635518905274896417534073269721887740652360249995955500452420224313306604600805471797467853033390822473349869089786661629996994980383059236350024506923577925084383231781628604454532196924142654283363971222967585007993116487787591061593075187034070225592802490104031308489813990073439060022853442373682797250058718528555351640564161006347039770071394040031174662660381734487212254546207661568469551782485491822200991909727174166307689208418774525635954077408502541155231296139386719457481637644633598310160556521436905238476741025034560743997096224883837716501363842853456305707059482585735715885068918035844915346531615842187940406108045975016494744416870968222827287674194290425374866474936958036359265720939825615844801788732176087427853943237579164016585178092401199357205082322714552340411724299893055291490420718458528474399751992449525975661825230355915436359135032982089873539425377547365710327237806515566816856867582752501652447162720495553563078869180132975959430948428412861972401536112237445619191766472147203864627303851001552893358846458819250481878113601626557984186521979698365666587061927705476274816693639646749237964457615627808308494726796974240755973402370570669488538235597644794383283696029270371827798700171980377545973796393387779852541221586842507284862710059691827392523136596284047064829362620756492916962017385552826929937619123495979693477255821523992950422235663414464133240550491064714159770945307887275867623911627166415645926025471187747724307140175491406639590990492980804161748794623067984377118756519503036306757531071065036829284819015104063225642181922341043329152089734863980912763719328999032770045029502888755626452037530709101055635325598226752167342880888049953685159318722742766228534874257247412483065699487297749962184082641548306719159742943926586024562867697360953082047993282490545830821565804863419116910560828917654619768243315991711073557149507800003351753651648418262257590845249640443514270818581272999374974723822289418399060210056931041864569427878511963396200749174545504799724999880752949580392050512089966889069109535552283740085801864549762414881268935365392784291603151916770403383017523830113733928198201756558797073330347032562980085937979390298891853217679943497463050027725659916614416794411594726466953392170436281559132431993778792878559960665633955271247798559734250341568574261354130089421973551171956966349960940172135632471319660981741710193290964387655414094901183898524469878299525176224256656686783220019050013081403258450504106574208555237505159170539548582528378594319329188985070207744329573512494716921089783298686470199093979065693589666301368217417303053545398561384139219697790680336858529719166268912073451814085591482936823026438271559565503437183943224058236356042622107530106548002434656414689424093405233680782380947630178159345241897858859066642020429867384220981265335493518694705399018005252732612021392276209935312813095248221638060694016578803009567713272044900118442998014537418868815613365280459816959850229945340415676978341083737348290338916149393970073730037887853695621113064145032661179690471365071813002610438885356060305366670955338108748290157814519754824096782085449835730191447357208279383921716745166209546360802911095681744545726698362036069139699609209909746811863019037252824064247626429168881100164267801500598732167935601614894178480582635091418162031824642181452639951729211145854576411963194360875066279491804952255291045837380295096950221585001257142119251860138812618105550753981967102533619546501197478156997307507583533583199938209631512786691521159957581035315558537342045525812382859742905644170086234844015905503692067964714164043180604647314052233431178960061847168375235261270201277167604749697407556234023179812262645913570735727100983812440027461126995544367262143877904468561259425673189501288944429400412043300123382652005055215829309299297016106956435658807136514441526808092307732924007460267980378247843836242948021602706330208669508489643665634654777793947724138407920046794630355504019546694596851335985085272311558753770947772901138195505814846730374694897206630246723210639725230929096264747729213725739764538493167967776427351582287545959962355193772373225544542683082710366170529269393050388846337389911357835749257573165435003615497124852536814866901322247165401829892665219822816089547149875539938480888287106618958926875063566172924335235453035687016170030179096029109652048920298548715760109598146285971656550988912767541826554987552610269964487791063939492297948020493729753550476758347417422583728173777556286663891166854999143279108319750378929347665217464573492964313986922555246873877298679981249970068562545974506183621383866077677848280811996603056409120109194311435151530214464059676281113707354335298139816850642530735443177008675516063091805146085936477659405511166539999519242081240376213773484951229715864119089900987677563567824095640850245006528078960924346553823440533316181346594263191833336606938875069398661905050689266811215622925325706412188745364093080794516193689925811802851790939302693159286955020565504011910183901357472776098064554325645303668166198630884431157038379515647857000766442355439617095279141063136080701168895605091719474603383354013384516045781461490427329977547521520461346487111127378398178289024817691795995100034200583549111699608912123654759395895880380011038837880197535312647387258535871684528343316757676928041680479094148096702629824232466259114469780862907367872244976391446761903493160004425449727965512468094119964429764654520269531770509881371045435360936354679226043137009115722656286486414908800285356336156035423906688493558880850671958278390088553318910467562278336088482648238242921181532778973992499491597502596563674746713613195408612665801366229999999204022151493469567807726299765238690485267412649405851402873385866743524776105611889170636239564210016069304219555390500900428839912257518665403519275144161998340380375609582480037362274357014618874289449588619933810659826905130018319670305310369358013996517963969413768905034336132732123412004095649758956226891975268971320961961261335939393210344623404831503986044417143735160958304903835258280938864226045916378892075626483801738340055871625317089357124024825370795090965295526403127557991359620907632534759988003691431513160391547472597335107966705641704259371454782154145621677987744055744435240323492899060375937179626531255160298860373902068228796892577419738756740451118859112960555020586433262110934151737498396394530811389416188751595683124826858096266195527217650517246567596344070123469647548025575828624045955240224654417399777147855109795936863971010718842059302802619416742618601117575909340538934173757737207914064323986065210486980982263600151463240251868354139453648958049560486391636929080922144325137001205159546841448901363187093056927766308229607557799126414673980936071862538942308639916546269947300003623438965912398588559213535050476573973081021926477577861954796571999094231276464593860797822822641332305528855259571581506536633016487578331827226237012826781850736841219923300766726244162662511959944388257256429047010605671464178203954201439995075313939856502469453276187963663778376861419741902406845605048985607313483442333643179529917178982085975708109679622030872832837092546614428960177027620005345032008233796083159180765746729601203433317509012715429642440283144736272814911133021582871671775367821012173045168873891011062007014642092479464692503685896661049411474260188250979255151089165801782971642957430863737529835136700366653145148438146427163160452036522793798309958496085908928377294602122553654689106318115288544239624674764543382593396606457524848602617999467022044408630594421028515436401960241893015325048950953635650364842392059817678441694731027011021072671247316818208601603628847485741213233046483048846553560277704786125321607515419233080613887945752160091607970984009582235628729279760100841790064624229032448557031460866209757068937115480503485755551925819130999031775151197284788706415919919033425267825705191001804092653462196006709729635219578555558616948748487727772976344838759415129837175956701780941246653892879766659226314685686112742375016994402279855419979996347165760636291286556116293871388359190812556834605760080653805323151946072950450741580021235442796174915368766958739644716398279413353415879009302056521427144212790597241981518705931148174278759073193704866377549023402039375794924100590832255949324785802274497585590437016518925812297586173510395549291108069626667177079321149145545479362330097610274674207947168031373167958678718141916451403405045949904426247345711874770413539464663954981726123319720525883487083584703268987113766411803780775262455460349925831547871630057684476725160407617235847612719576272667901230712964028497543513034999760777789098460896028860080320061975936673861352130294820233702570167590203924963085615945607964482883747551335764765017523950678499807114505722964139733911278262224496074199053321098724992365703858976770074682381863851927695543438580908038774137090127227590561745558237094213013197241329227329041234750177097848712122305371935167470639003426239302613647161216153729756100902854816164146470053526873571349026968943462271119861188214390074298472428700066393662995328117712490108645545512489874997496792521375578905746576556838365123087377422147013693236502918933046380571818454628999064518598619649894101957186493745639083239259528287701716594734157816625951333748665281193201335710987795526081691905603748762891139064341705263265966401868971552472896932503874454153028111624188866655705910633926167872658876169310922789749892397598027887316777205511606633518614183551358476027329221508848235222707869784882623915090236561082896310995816669882442579370111887961461521932490019755599056819160372128719423115038774776762862666464164032391199160111883160201864615583403313956849958278801045818302811514179284591319660663305693431961483583546858946741938040846826940701078599274160903898920667725297150372293468409417655365666000445405412564421891176242499968679587495829360346215936168522235368045213451262837600922678566522947216201176763903055131233647622571502664161172396948332193345175152510217797478310261919451087454693367991449330486647648562264110594220960646328684351902114867637584813300932136904287610932522266723532431548923423323671846619402153705494597782739705671209297998698348112447649739359131784320777778251556999267195049391487905236744662540039565438034375106193916580976008861409200453868539384661146501096303752553596945068623772106974736602691165258199693260365662794261379755316019434242783971209247898130105394055377420600982782270911810084491663561628553318649123191634014486574773466768773913935762577192125933367399046163505129621652096930614313064720035830167624484108059169313023286917416708293596442970494498195206575476306050927008289308271144745984753460597803559636970057565096999232539168557108912615254356972653495733867156294986649447044801470711572934895846917424690398825649700513592398491948230654955144280842869938708520929027205033196590230322973617755414134725025093522724493360050397912347310276246535731048328968987344036837954081689184121154572309399702522865714338499686649069510503946330396246085446679787221208886974190957155954730039089287732538811965027623786809733977769696896990697624887549524381223678163353492616687708521632615231610600870635703384524695867452082972835909895501539650451415631865685170308666825806725454101141898294984837341856326935230733645215126819353247223168704297891875232684034056574089236117635168214438749297385400828800418839086900044253220972910511910381423979022049960638516975711314582476989088586574223284075085403898449412950998243081474673222972060128941683619834329230324425251560284243520221897846622468824550049847662064333153385851484457607146630187667877881731961521791731702494300053765465089080124377061646386917180184637835680166240849359676009979591652887591740817201196769324168119479167592178173046174932934667525513167248467829087828001285178163808340103101042411872161491465244931180265062984420232946843204796472538731387672458327544574427392822347871073560347588397189495872006934665029343176357037307373725788768417343726654404977431289065321437849432127474388705450718927646947531206922589368884507566258459028392066272660196071552606372393238136664013042803616370803984055361334824887229894488028973736623809656626997228904801877591529382300442133012540214671709393457942272935524025334438807898222663021560984412663424507441182051684035538725230747633809184336757818174742612723517491667808519875880081351601672669038972323378268706352934731274694998917245836303701859597730375829890948472185135195432288292603147587433785643531374213953923358808856672786072498331739924823105842211128664150456568304296485192431082605478488128539292072964959692794052444460658816357116515959194160940908142794056112720407730631043994688944346039356464181559201358028188729359843113708456961826966015571771162746315946183913651142184056038848329583301209954542458944634524760840264204456245687009296680828905426010911681682915363388664311323466091140656553343354305280339147255864001212519224571024854208931132554591568007707518779680838681453233524107091546342366361962409995197329925331845680465038932815098847094689548851469373010177031173745680919100906642523272583591426333727553389098536622050097508672429633797217393818426510665972032260534763432881082993428683916462411745187132438195890562872147909378706692692254647606178930464752670019561510661196447221859810222941588694026540588802810966472426453420770996731815187466035862666082308602842111046850231588253686646258038480635195927912277521023960987725835875394160370159673462047011804473490210640769565770574757246678790168146164144080108978637821843983587007212558808203259915367202335900110686593254333346952737880497525929476540697326494921320757102130147908258660158995387648531809212815124365292882505589860299185676500055072980979186361618843209438202694873902992387917257007147393746583790586648706785290421147161652901318485078103608853755307638258867707427404970813428917825224625904456735330388099432976921640382415676119798244759138553754300656018780168184785829008310977224083049629321976892362077134113481736123710649576771451000138986826398612710520997440089317268796605680118529254715987127473332405642898450285683478861828737436734203837551593112905988416832854616579997287552554063812009441598307712064344340484969527633617263097294343876725344648262287129838568585300245758674051088471235413429703549401195292167152018771989891560493621373216782487286560284442329590289138518026920793585821535880381932579974663447771076699418201808264584755778371420130159919249965711244389336803366596642120130628984472804274715938361567273038198623288811851436389346160778458039387623459662387018037516943616839311450737133594127012179120801062524658951104681136786935914493524914176284620229335721185320973200610881500065843266793940362141002367600971679840732944408841364081121114211665434304818000569550243639150308157519628803983876665941020379166703717856025410498985254481349539545615168570918051050991692536296821196929232421351023688663788963522242859461587358094484597633372429737231735007648725514535325658197565365803524539740619483872894691317790800496876598602630107374457620217898206788730606257229398355229395034639578404093775950402543818950591206167243045693262461415254953722858340884823385429072581928468048579312685372580876270409054818516269986782010280266963782233079997065645722457818840456776478859898265769543490151663257260009959750928735207220049067857722502762301873103611453448844717327362546722643746956247059136469951051786822001392278619706609046448666475904225193909667365549876363760916711960761953193707099424550903849622835448754992599508862750293022103715048988037469861590808783404550736348442999328033146404872804904307406203958150666320511222249327165708270492171906357532699955611208713806142480530353739283535868142844705391454103610671240456100987587529773866766351311215564950821332172136613705139374367686467784285839063652525444885074936501541253442366634226000600053097966381754874419845754835808122496806193431916642717784988770803643742413976635545866464228726775100605512972978537411256752730432741704040495940067706254850495766049506177936544072674601316963659458930562656709472581094908651657451554668940283055587365859961028316291897106926529506538659674980876167230540041169117047478139727934935844296248998841130356854381138236836808539441447863247980032494738219555203118115855483983417046647559232622299450817899784602681430700822711078370236076862503430717945623502663739021703100462063183866434690529233211589094761655180398362210098697422952486009359225142183583239000160519381295813355457272615340438698766600016692448454801387843726346027292453585044574546734802214400009937598408864776663672880623096498920378507133820931435889110227727400985483218799060268017744034032666004443269379385978331375886165861996060319209456058106030727705012693873055251915130485718087949886926743728239005476209008426168382913310391774459701999062628718664502076395299175558862216323805798247880418070558540236053497986372197164828976291151333510509119906982105643750898924648621191261936982542767589270335774440081174963384743357458744163409751951962102673409642730275599713533716573257240537107834964880835941485192941371846842588694123045911298084366467697508260327106194018962303205557673856016170324271279098265848371486758519835315438431626204255493744677120118016677134922735695071533475280375718144632835515770669959593033577058644281186841967772214934390559639018408530460180794949340274735302299683277015385412747024986973342040804304392562380042563871538709126903658118244927260453657366376537696255844611913985261562719643314044691798225999189969093960710729421604238258678206492810421812003811883168607255937144814453628618047670715632224037012055128719439534855166332757832221493541050301728897213359737138421678862917447992863231594985699466168609233033052816004547747078790362210677299938880049007495137696423928667206854593989771190172737445472764281786335206946379702989627043888548666778202119319060109287101398798562146117776255992686217398149823033930801908685669424408974520178967508472279265301556040930291027767709718553478190224616744731835703313266816665283856823101283837063532989826103616019278521947668842951309325176697702208944108468951925327012740431260437380445066522467753887977308637764983472168828503180068636631809370618094508091938584851536086953775988526103992172936442224387701528697740483506542814161007335005690632574107183067834495538878133490330798367431812971455199992961244944209920770015793516429573637687960107214961083078100644146902130777047171643166117863079534624146666294246853934760551248104496040172581995143927965093337410173293520962486066524326147589980029916256169684383673664719232416430345210994715517897975420777847897520939891254055054621213464527431716044060145225167031736691933856425865207297027861928518996850300014211448685356371199496623257349071467346827619365786339467846583351792503418167951586619884307245675153155976317591389374953626050189457059191098900013236362932920945815793538311291560166674744536810488847713090719741365595558075684347311779948155876448202120083174154364171755851278086976712998087887845861959990719608689581408039431391965009576270259136186288213438677354718021949715893190351367828219618581991990638141306995221670483317329060264190829072623666089587978253202698183817291542495982178226018005690353753997055712335627948480118750605081943558259129151803412683137020239572742167703356308446604351307044775858574642209798799113648253773494108830882697505635559341239246696597056632278008084353160436546158822704216273668435405072521028511818994497100472859706439765509078997880757416554404393925427719167358637746680910868366077719996007932174633770882943927980906372656570307278738537975374826372617690715664988286328998207708346174525762314196378169726800861072202920736029231302882638133524485572701576381234094645483154586798096954810154275356401129859104690857910160725842206359817566926951191617467940523216317542902093402083064876533746939658911372796829487982888181471442510004955435867231920182880608478400402367110994399863782349275438753775748877532576584027708891414050604428170757278612808506250519459979055046040947624446934748715976075076074720916110405502811598652863384085633657879410393454769226476863434877477379624068820944439671846121589821994141512801462338151997319334610958510815143076896783671904423243515640691207484055076041883632343353413793640175709678980482486662025698964534155511862282658760308864709038923703386130398589083811232217916434961380019184221528263112505108395399715727485480772311259684443029569821984923090134528250923580203230883335419270596941220472785533304190287025875643881853638472941074928957464830474507153964996636549714927355308043442879827608519683080620243594924382650077286446719042176722687455207975050678970866764436347729459248274457972705830296117339119379973667030593590669443322894792793985591130230668151789634786617373650731397200630179532817554646104068046978092293031642016940333125569177528849211941792508968632548522348963066003534163979790819235068102281262852474197090910696390202445041380884513052504116740158825683681520019405999474611375349796568152886168265320794130770633287166077883756859594264689876354081628475834347015068777137616274459530780877246777351275884316176138512926608639228990452856003163743224336145696779473997547085231444553080096899945596086537184892209442917904439565845011150814063750770283771360001031262551773201593920148659756132817636948083774050122251552432850155923844240764008800684101096163930176851863219409914811131980397881694041056823148695533816795399337718214499659213432786649563922436245518508736549688719436066895741169623639698422983836573923931352527710842674948620493372816582865517529631233965930836575090109272007910083429607578752987762298027182626719178437105122540602163201980440873609005001010175031389742028532648700277101031075206670442871757534831565267773765875229611652345443151770044739275029587973891605104895087772027206185041913702296887326618382260469379125960767468082738160967797766393453583197585324820977866014519881376252141472259298710093073468820664075994525105221691629980314254370090358483457712235251751811401428184867254034406123109476248518663714843935461273103419336367304016579580130122465943865576834980847401380015849967981089072377222947716681662097459736287009841593591462412482922467275437132689970723900845775614695674900225625427716409087733400616978858575975898552789802829655122441413475888264939633466337692586758383818979209732845098685373189000897117984205673852299560367256088967180980681067224731659899540899395470983352510068530038140476006506701887577335183171220928779271406582334712832074186919982207230545420118136120862198216013165169971215575227805427109327658157929304565467377430767961544061833935862092701583676365083455719819667572936311642141138838835783221668903786360514547219617963265156779711185923987906701870804664320409315596082978528028686802407664762869885633992194029325835374276978185013797857163156126235845497025163070332841550973752271849681631157124054434059246596991405277031400071430773738914041195370639293250477518243457107999886812424775040525697630426330853866045088831614897356992477692248695187500619271937320857019692408131174711228248800181955419660925349332389545990525364829614656586262188704033763355575099856877252905366137555761856938365135999452823914558893343534813957992107069258060550194735361898279053096572380902220900052157729779809349271230488412965808312218832245328915373187773205202350022056975436670408971587523864153589445272203049425625271481674223771714937109587139473011235823848614487055374726055428186161074021005609697596326788270737959098564632379895681360037333388692540708109983870727747060301152787934808196529236404252847751089986555068161294567437812451129767925067145722325880229660766159013895169139267802938795081877539946631305079248261663128239939546188793099972623478719965367713070460585239129453883582298821727102644343212449111595393927775434649051644547603394154840775292480666156584611742601553608373625005012646458723153281916109848111864335316532674136574369542951528876698454266974683875442336004024706450748243557097990983053280274864075477019801786257224929328540107313978972605860460935199481373817987134647055334695050847423635311006025162482780402553388196248740839344960728246748045792894497263828054026158044206329531294414721423496807224834273375102350811710035076374988557542127553330112850902455715785846393742976730731142784465057141669000146958595461405076990744758954717812068538070985648752735280646470657148447788945697890349853898300845077587032285610041383449301736509249734076782391389533246981426950443510627799467609184866243131597527648553282840511457234776220600316002661483651237237694249409164145440662207316583241327798262204473463299254175797194629967021406458163899333279475483361975845204596104031767251385955977326350616504684363536687872371363480880087479713626879329928315543457571036027251276729775510934126571395046828762623924297095889481438650191684786590304367052867760973836459582998865842455481018618146272083535177337562244344762394399595074182173742431354633546960769760692025262048765509501182456582381947632729826298153567845438947920406233582939739141589010895010595472096370428107360632236880121113026508749757160219813207882887328465263113555782161199630684919575973924483625529608467512464674167916957701980958204561110914629380905047397861803713287343519833894294920763912026799301461450518449919660169465649453302437953890211166129457906717892437652190512245826808840803196555377736719597016027761246518898696452089011160610027681273712122857626886825383872874077453220524189483466229471314413005135194779320392722874499219973771585142114228597881551379323551731438130123478584460594710186127254067374978485389621577701621019757864988290545867020128837415069585489427090066165628126367640701776631543854736739771778985802345301187710727158739339766388067559345872456162309250840120568471259570401028732923058763422113914411622318315936778939464696480745764182321943231092045504702721719850282481611611185579620423368885711892564220986898028873604691076895801216081147387645675339626914733815581178153601113584161599443585833008380207035779033395512348057471134872896634357261425833618539599585776095260028844349260769167410144765804760005829000108975478211795391957769516445543215857145008203309572094026091174238442173288436044426747343335831250891076600999435559961536143916882326049540634605294693258262164865788901980796713200567675466047106014902348847837328843518712876839281606170401595866269999348840139002250304592260873579418621286026155631340052778220882974006543623206788293904281051393122667344421308044138201289088837812006396533409892640254411479731844532797147832574149359684980130411950277114000823658651150175679149960156511029714357523230742030428709879438207671279322302502040584221279471063483040609079733451844579344140211301972722766945566472715012087467982192577785307224290579330266818151125839049181523004058034122051249201693212814619954751239510527792762928553072119344350283366325334319060287798497329559345161289310782536886912093896390465084718032260775669186438657126007757842767665969015533750937972440070032325950363115549120381781874411602948633282374741311037963444900605100722597248958824744802682670141635967359668721184737645860347747535556152976963547093210123747852736602422616293926030520816819153526845510427898511092993728492309783273320457416714560614203253555777340716258542451561432703851780382558617306166347783338723832258290812784349113265703643454801262118347611236538032001952609314787410652718071840225345931928824382930542184809068809903234195152046866543718876156665172501535160666341414611982737655754496733874576308308899120014511752549907757613007777531380136897877694910758047817523667574555012978935803274603892162860704941039324596135749168708491444601144575436348094799107286197731197622718083545179876444254317201960468994788331507116698862164421330249050638702661726482916965901135537244711382307013224468855165328351049272398818825378307734429867314223022647288619299851156924088357016099896728013348184630237283610459174973739827518733708560241922897036502018035864045742802786433032419392367428406416476149141239287057572424979049562485627187785769122103700757148753847026206638707644639901971449243011677850793477278295086919128965957837295291143386593823128305536280339237159356183972719622255495005613974512495200312366523426454648419645122152571593728838378008426423770749122165804599273773087234800144163793074936489714833477342071424413677583477697502275931041305579388904973336950132897955686465529674944995167433297652931478360590686420109115317806736231291453454673119161475546773033973237210749197457992994282259595447470523192537037705245851872164304814342665975832358671901632778822462929689745926689900395779612652209849262154644804897775204508418145733122503206739957973255268566955292129430435674529947905016854285332900117017505806384350103224703118512384353981259135813756340488988438627069534041548153523737710189270037289268928404589124299249393788834234373352556499440898405792949697951176089009059567197564169949085434344578001570076599836978571179756607661195209428424949474118794099536410787912979952403690185013574265712100877739463963509326593021150109799297021147154198281680349166083574920269006645571760927836646091508960285756774362640666189452521156175624743077739882577656518691508371890680347177996476650894510405883012163315596071380899235653886274846420764144563183312742279467325857054488352241217762448820369081250389931159950982069392402802199592477826410330498365843815061687724696332127985083078180505535792050327811511823538902529795129829368344942902826765777154199533217261752183672619259424414016304833990538426117463961907053981154472521362333833928525815802625854938049298684103832201839333111074074409127034596869631848706442926308161825083527383229612140090181289311966484402321604123401796489048249594643769750727148775966473965532838412689626949402464852590127571715251640970165352533984362062404673748217270109485284324459057375629844410913454542031311515792039421229371234547810461387398150797980853936131405054947212034149020538286055085148224887461269905451421857916152425509014768745104767822385551908291110483066280272844211912498269896299692155053783963684530557265006708392424941637443402990760268270998797869120181003973794920297497597162846539541822817817901702744568037129765223716496952383462071605598685901543871910061416173766563928618161572339720207086145957676693891108457885979998283341288446256909662408343985318448150506025959185728922150967479473696454891999928758080117184590802850938105898903499261702568925361688630259621998328222851181197362215154074309942485561638964907159991153991861315165290627712708436625547564755443939866632340110803094036538636600044159843734593594967331582193425127335243899658095754399150184563749924031814708874385569590254616456995861427824442877210585373613516786470140104564620195684360018202695310831399735166085454908521935485839090970797434357582043883784575100673541607169936190586548369157169872805571777642016369908829591265073359734725239351468170010728977727810572813664217654972358808328582623455662027999247933897373969928009806067569410264060679255552725094082117196277973963365689533048604521209491426849321114242192231360105475133883951941450857743091315996562872422199566200636716975433592582398828250246098320947888804762827165453315461837078151704270526550048136433327458033210436651467987185778193744236444430675440057768783559287388616465476729004569567498483827642658991137961405551796858198852314743061768741565046684048286756143598891660498999595030226944313874061161804290395331942918054120071142844380578940970704874582828992573341787209487782896455756432485778714672261207032476468477334855137494594071060189653917117286791907501986344699586142176522194462856228159629465869327518336391687730358038776153383980428582810572079076483554239714483795067113003972029951759621487410451300441728044382652468837904895339376737727676669840860150005783191599626422683834385642018549430351834602209748419161495367562707695916124992199870673961094853857060028835316512998365849251250368573602893800081546088603321472423413223313842667672895873689471903904472762777766652089497145321948781291020210638928452918432932036430847001163876105684065707119585143890164539896734157549002713513935046479445398368560508279210251911413519012636125128424282650724894064485736523242796989298024425402325209485446637413410273699219822997132937289518689970764719181054067157154162802403207503647475778049046581028434997239898591539055282765809022717826692790686764483681524046963721518875914786381313734114140174515162017620261535987600691902429253934912221665255527690836303468858025172919851601653162800793004587930681007324035675097214822904306409491514786726668759786545721314476323571360988773873000579305585312638417710934626576670645916252473115509820112717651856296605813822246360214784632647788564491537085396610591601804483068770952304928508854796200069143845817710722228660549391027149100426687246244944378241725393918596797426379668376517545487770021721036075550551571478233273393209164485200886449009632598424068878148844299070047283788196455753530172880526570990197396954732845541271942582076320659734557675423738842031287479154352578339719917372559690369812111827092535579751064446220881952525217749884200298968115743472807453282860749751856447070345932465230409773987239863528594555740653095788681791762574727026968317088505919476774308490029310992612812747317064349008437890422329224617967735354572869816674299577091190194357035010342091001594756718950368255222167101792875039180659824170142951573692904662933192359805322802963730331540056898180586863123079899028327084070742572608829657977229899198987441186339853787820384981671048556463792523378125687495829509077832231627522007114012325678817045197529558415476163495411579326197089517674953819336076605978628666386024327751854333153684734163250536701956094159800460175561401812685178473109019575829346100479125197038579600921644425621303821779733825444581599205540995060520148834807879725887180052545327054843626797423450903977413674226870370767547092842744334390124983140821179711964210589090447162728158066965618536221471286735845564079570387508547879120393512733919503279711259333224548499594323427675986104357978186546741373700188417266444010165931925846420428963666365117693459426021060920832733192569634724416389282321105240551754904289485549740457952042566184760764790270158789923454196170985234486995292479500353182527556267263343651394929338326800619554415343960790804741518678875232654381584587840218235650466082764696760944927994187483823038723320695726062084144817843089870680929489205780294111946881576044364059476824034445210434629422006204314259203348386401896846957682917461549244936443548862929529978313936661192092783112769760115332299576450386626671324440063972099134917477292460577455948417840048587769047118720227257549999065306843239537826110533859610833246767848771722373848960577611838565118786132222400282853043083873999491215730403026400696368287349114623064782129555603655254682215436639230490029063656109207894276791726095622127373559977497075955938504701539933948034528957218406265622030328372813766872883199799305694775790993889727192054818250098569148224270132929593944292548293304692227054707055635352017940543394947396333076090697283250073266943378688745635142974210469050755877152080996043965317632418272956759979232648733600126295021119144845279055345676320733178086371305705106940463322448486877434101152669391965446036229904785062730591421484759182238364974814791705547602476888452795115267658620881432710421316260623460761121032261084173010145091875658497576430223527353137001300353807601436785458208001722556675645637929274887511477173198991842219485773906294813022427726990535243259657957006531487588287723766603351362301242584188286332207504626805528315395130450004639536862057094445609097753197330476901407274833057660547561312085838665513430513172234906729979485623349067875863216450184194682360018532911908758469815437265468642054591003936907328583382432093960281000302678342139165064352513941209373199416129397436260448373098667979274994818416327164748200704220066721970638370186793200824406903364155134127685945138155054039119900230634045682389144299671727651544243696834783217630884333289278490063885249452894682089837035827239175526546610450432388943653847403864203620084725671150730842358133632387597037599192394989729825695167174645596446945773331586164982393140486831871369210386116035016227597995754686277831628584391593497795217453116290316503749336691209510173224295404205932331364732695332764533566159701570021417108178128955715855004134039672654976222406178595838218672823257718336537947133911038923597372812038550308220317276811511389505733441852385904153567483864392265183049925045094654688470639562840900346379171797195892749740891499298971848995614262571502797022521564476393037246492069562222087905236986042388314426460312742305406662184159720308431217946674317369862934789731852582761509287019240432794903152831959694432239374620174665512351595150108909270259443731084055202313573522875812019511413314552963826479915741109750649872285491858666123074167383123341384524127605711777493724688857653911640751103044624056572764892741999590012089427430215510979310289669750255211336574557817168780256809918836661863508903384012895901166819085464840607503338065382582837455979672770934320118608708418511337806571919641058073282306687663334030090807705421023279053040114065952217990156876366236877702639908583731964248086699494416292497106221094505329766591064660315927477444749185505013734166257398386347208711555120939484570346827118532197226861841379731323610708530864075947749718717810961079927388707268999249947669900043744759769561531601918169504049376561453333952098452061611375902464248904375126406047329250106448561173301605943308516035680715838530304652149142451770265034962884991603834071602828376584854200941787908547716238149107089484094967097793071805242934445852905985804217151127212231923367206738329971569510834556266366656812398214615429191571429922360950076653634336824766715355638362234150790177833605020073756790353337359878982630417182875036965360016107870462179807502631077115041828671989571764417914155009698221713329477497472832917697844502328155355251300404911193461361667376026256469221813399555042650242498829506580382047555966718875440360435569077777163931498765125583499053897811686009804066862474652856385473150754081671035885993458067102950931509571523156940149752285709550962565004716129277772539072036271778064722061259887035045871761302876358362911795383003073996893792032940112392346340008613584472887157363345912859481909073089228000574044604163953053472926851633178908312052986001617191651084791658262143778594984781584789616605729202161054036790510081294813597459260654368311610423376491862906774152284509230232160005081265128804818114959228301297824627312029909593652831264287574722788015065261201292528260258029594701019016988090978178486128703789719342317817812926356854641041256968570940241635577798717484150578239306653755424228797311468022073125730614280553665948720810092562823247843452324785014960046347432890020434250655720751706304308980514423655502883115200533228495102001230251297897486961915782566454569563977110241591185901779323431664156283883522628110385247831794975021803091815256289185201626573179243574258525400649846960524818763027108735325667413837958167741283106590775334414588235935679859896772754482235607425533687845362660222002366749150028172180173888725575911026827564653262794599894273936226719292740328116842713535822450302918364546725934137046204312176328997989097080542006246648763280965711087898691279069947212005533640579429915550813227966241158548309176844832730165975763575696548060741658165001735899696812961809578599060184424916190568563678125861960905947771774532032695935125020912367610930123860074893895488848335457736685087327756840020762430408917808284472270433735923782067567836259823661205772573279811576876669378658820070666501868151840080395686667212994591213502270829398755674174191127908389334088289946084051502218148197895252999206829641771204442247740033272824802260227558399967248903942844736415597124513594923485303154559489540434520360848328514654747529295332258938923061781632352809975806859076410296184901906115674931336115122226849300061233601260120667903645253481254409390080871023327103838323739863587198130580342731970052801577174335337316499005780879896993291027941860830440737949609101170940561893037370677250357165306562540101816875850720656561257794537130833262461865918402693532760164341666870911202339377881090841573230750510316662876250109162161307521012660912119350248514819940773415705429861357900386618611418109735823370329977251545757212755457709385725454523216684348308517937373670504550353977447837665001864349729979265105714974253505307600779952265007909024938714593275697703405154197071716984448807286526932878806574281283672545238924896837094493491229191358301409261095391812096350090617079467207639215707309515807061560271717714993945923684634965664189683468085787898079542145540896393327166300472005125456671566876592396287236181640868249387597483418593716807531712683315588372201806376050846674268745352768918927189351562981678976443865296547109429603508387527915714361752859770874701799863542491880554539359601858942642743938278212660339876553584440284140156291623963144730951991328813032155701987714110560133562266218379049806295938527987744008837581875902787972778913726701935958697360079816013389021921996518857382773927341616314699538417969752898100153445882417669240554305933787729744046913497445503929732655536336085083364892958069592250169893636375968716367491538360351344900081078034009565136858643459523602983427089534967287380820872466365045247387160313890062715878465259242221543715928462384974292919289452180202805179729095091842617905978321917976371783597253404700516492964900250080315738276761207720206546551295577125758501682363257406662161004770937683423504278883924200857588000808917988882273967476446212365979112496821484668230509409904179550894439192171803077590731095500792375981531873723375289417170768604563009238461820506488552994897807012891403260311263039654134079273901342809580930469884903548300923390740823362060156020149341746899009115609656482094128395829632450928070373260245867823605008646918022957446172673681759605192834160011436983424116772538681516266502367141435931690281561297275696457411621515487787815293131965559918245092592333744691614750997377700907542133324981913264344127890240416355552161729269517569422522141405570901938140233211327491758885179185773523962887861332527985919106248314445138825246989869606201460405209676888327227038522740105445072007983599051476220049822233282011626724401424645417968682272027810871429371191632319421709834550470116340258891741432276409824208154607690586943110925916560426256950920111897504175781174028893467451461666035635876275112161238074407185946732688461613618352978742591423343670108872595097220486923920720346278834807413178623481895432897706817924824679907553461517164066093619605104566426839940175909686786551050567627037291137694948207532362630625559890610681435468993461320263830662211202522615751684547537053643968896724020643737606192808013725232169437211672368972223206198565755820530256244038812674967566947014738679605982758201757812392357329125784602580387419390049942338139355846321060872372229669599361941913459796099128432147832437538353918082662269929775100226551354810306706229720601030823286837040087511466031359241293195323782051039048623747641403413030568533606498462078998561883044855235807874013266425971015990452459981136434817031452191649504693089431549754345111082919460092473790385665978997799363455262573182201156041681409575078050130731620000034097304231966345040497317531637281563003923971595134176904461286267826143074730958931225324467230020097811766140196371067331406084304136772204873717617704132451841440521825900261978367003018100262108508850234083267331620348392583910146660821644232398796849469946994066087448737460099151163799376405744746863501081131902377889311699356384570756791323295824447041324975020138265311998306913410823811451575204589167816278886974458611165914650871706640557435495711005915128417328871741316715790516863066662069896253739908468013981636915802544041181094358217249956993207855280324687547359224137326873436328457519202023683856725447301311733579516856681759493143713261851058503332790992389771120787950371195166742896869796958133579046045865062793068392919138953289503043459805953992840021921706087520133635779911119108720744022309661112693394716425238177503864619147074570781636465093120332515070267712088056747172228602117631446742300105350689093827274098263378381134853305165583050267156988967233910392277133798305365343561643996991484985232016206154273085075854969536639674146057566621719743746866004012087962443705009259155053913776873072814985046892437644905846633109535249756678200302608835508984923470892378497972984723672508352372611408045330748278415195380078647670820693298212455857292278558713641478461706915510855728806035798690629956496106791918376521173113252058628056022313814705354183009565227381530380719793994836273039635229959442365226021047864793829697564867534959447879924730412768805910024895537009679701084617476153393279879287300138662393896765393883369738440044249480887962526257080121476537956384257693142092656664020188328285132133614030355134168449101535253532720285998253769694736208905761576451845375508689653827705479766404455152263802992454970430620990250615753850113595657655325824471682653294383731734381700305580047808835957531513059152588384162524781496914693017687999899295415326415710037123400791434578617709766733630074405165191683122791856931616739018740055641773522014663443169786610340752882581907970547114506899387008802884198605381933089169060939551569931386022732300289675582531714561263685442789471592454234963142356048756376959515969239174895472239299754558772052151912785348240466889611115143596037406778677751320307557014834728238414108961627913359207686568447234406170982793551425161701364759467371192509944874145216557344621362708054741371307506623864085151820971043056906783566449914318221404725324469250243265157170551328349998834705514584224498671831046770605330987463962217473799794294690707773857232695373056604918511160917762496230541122062118676032939176457341558273660861414839458437221111727139122085222598136574732399283920541273269139958087620768493762560897509082519468090645666472238256515159827157817189265573437712819177731268944491558700784405491818160222043371885321443934313979682015103492200891632540353305162464496240535720857877001042030492813139549485686392621281853844675724060436016207372550213191236224642350261699799584058186625333395517742573817264129057335072635810095508125485625658533686618083291404231405253461328692876124311265764237660069762077184430895698151305726799396523687710592975546429509383255147807488903905278121130491411132639195185328020856201156007253310457677958001099283829175112213207458715506687069325245705550531304545015247056985783031879038468734842911706127561163345707213373593781399487376408173436183879267896900406431708618822499148334470093437414599705924114437677313433464794835686452673647807216691641734203443084520858963719462075347960872294595409276679555638336146286208363135707168267029236575721047366203646672406204229859529889612871590499611078721916235357250552077818859962115098386570689901787326021120388949920751971089870019785628103370539036023635988882532152183632682110662460506110186167978017130711092863451068975697938797657788345795624128709311442720665178564091125332123418393600024975624548698183447141369379836023417750533126920592634104667390070117572578601844141932431474165877779926083207024325154684209621325681565546228383344625973547531436930841784400125269674962737244409460101413467592806349947946727309275486432570106717592264128280345665494934296969299941049953165281137929853766908456857263763479744464744773210499849399992875045936854354199057031488374848577431466527673745379519367975546150604662836709254744182347118802650820217241608523668833520036667063217974356700082222869552757142540105343270322848022494258013618339429845858193835374579761264306917186504795985541176762138128938655112563776887895001141381902149140495808153182727163387369984536471385635359805327409461925182412037383374282141710291298121675542888029235265526837513163222388352758983610699056165382410939676010571999225067622016517090027865460078137706166531586985119477777706315076112040165682207746869832334939304319500281454525615237171365324891125625665159968501860351759525345051265280030584927304897324756421883365059847466813558666599058536295957089535985484208984906597035419522689814129149825466686812159222502956251413533314258744724762477322791720515797633224245949624244095694356473484310441241286187169828998635688095447014810098692107637966715540702068438320491226750058218445131159011247247902436991151561140536966274977878476319768975660084300356693201599487315346112826688311948857997099976561588546918943366822046706913051879066736394772078954235429175915805839771910937776709243780498965526495870708303438551565808360489148601090666771716565599588736575637204706702860150451338469849169810954047032608019297490153925072656524388752614135823649031210340805056835964659128211257328142894803915185734704976942569897527601636108246785055021710640078246538875090776784956136807502815530569166828079192176244520818133928622435438154601442065925558254166694814590830068928889015767524876742631949640507746525992151637787199367704350873174125599422146027520886649113206301728816160086002563213791075939779507990017418746182229245606435071547807382209210422324292834045886246909546486399690993789073318225278115874076462975330912242281146389857124786891350613044537714461327864829768586816693232340607673982648038872275979288044482647103580609600098228893065195592574300151538532806496793851848402827516022501013024924790397018630859443991171403257751302800793721991239821254790377599234024317970631451347936367245171793834382143689406849397002819570912930077122710253374539295933423811208189483886597128064964045854319172424646880256303763780625401821692411689697589726340955263991788121819582036329527809793545322390906932441333480094986455501003380230698106465485927956554447464099482667042727361149919745153668809223079921896798806521234026009808261518461361838297236681931428126451849030866215312702791671572354936081962261848350277479209193001018544544868111648909539250279555711381406486405830093446821008987235945832267210789645495536911368054201202394994463938414589741503007170416576864810751510053149800291089194258570921743135321793828512962094127109871131303494917259619799477751689964883508203265503575345623455517002847026298495322755775226476097641677031256651786345581286404535504130262771508213726443684300252509163581233310647613519117706413674389266115174185981534455779655272909609689675591952757731358493470595484229098640634135262307335671053615955333444923565884135469691100049216782109069820958101425092951425855300389913157013949098663888520684321942723123761566690626230770976398272226285424075418128485094338385316627988709306248294282130655993302291911261809390219587373068367823482016373375813176908256084379244703126845928515262196452664932970295732019398072102745262851265734922194261997395215612291293579242800204531634370187557510986186802377619014891347524605640666529350614794682283670970664481873645122576879266985248972147162293247737717964042620169224288307432106807899634582769546723618366760544149950150025250075092999922709673029162516808857939386331513124163847678130372253308517883922560684143472838731554196474703649542359707930315122830103998739698911805993311041905909899917004967203578929887226552119496613113103656329943401254465207667520157778154635061350116440721706846482458350520300862625190019409477709303343687434007720420227618340078849543998833753555914749380953080205365487157440487210465298990178449226226096281999010685504935880006268182383600659221984144465523380703949152410174044716999455103185255749903986681618358820395779071098896620526644158495589514290371388179511048269420243323497687221974920721283712195057870172720478367096049375566139569870330507708533932110260282696060642002884472727217208726791094773209942052543619306057980799919733845763857862642767636239671924155020465802792580253782929370619480983663387999255916442551198403596383730447974328806944100458566121070789558437682501147537174480312426493641885287231827191894147268544602138697222170304624383695554473525028550252183857958818199327172818471347658536820740903020155646424892145899994778837461458062136303011261068758349407374768704160988175323048670858448222785889898914577056402998207523786386537069808290090770791281053410845766809601964392243670870869225031912488501791852546067220251566204551996035286996324764596776026374312744937032352811192723999952225603048929769697553124968336790767607640454852728394158121680745459258419157806974642917971838660095492382458398110992508756931671546855473818348954259087383393480871741321155646600247870622800838065610071744235851041809694740406225426040024019426828310024771386750463751052395796406487119968902056453346200453774509812991792908600216562411222415512916547456817352454363948528341115974301658572133033477703952293869781163718894617536972604137494046444292223896846582120067383894493661125134461504755954916749056429148499603527133974825097120405901878827226435896521332416832831531189019625565875795555750600730390890233806146744312337656851115043512125587223462175540550574179618039473173499923329936745516728749472272518088321006918290179577333443233553240265146563373703457287259325140272134549342977154855459743320912446621077823565487905920256994891742795952335775993923097196465829179973469995962991459420001094861520918334079936437643756897173906180793042163407331003421236997192887110708521996844471061544859097831454704331576907121991947688627621321503283840536473599366731077910028888385345985717362121805569540130107765611976693361806766551446965682016179171147499029645519856449522752615411630019798556736349582852581551061713370671458498888742649594292592177612858983024021483889851930626944017352048067542108423578240190169871527952333995693143550142316694610462147757641868759450242133369076589369707038034629479472630605895486468831283354372963809498024035760116331061674152789140325304892897835938174859510083916649007592947098476908076983883958237467890859448199394477485354400038282889015638913575232668338196147402726083594626134021738704548321751477609964523489474370400060730557597231842190404602701305233270318705957399136002213525472389932071437935164590610967098283866911276875740261894433200474052345026450001701725050896175125616342996528280494387751217001967495820434441786931385682467987506615582678411921300078756682789702242260858191892538220615716447265995817192031790631923243554765730701828223414993267566161778603677003627217586085325733267996513202704739251765358717084958282064853890918630947495867059323224851319080141288449075280592729420485502622715503603263407347817625989234031885088060151008215915575995884051060043633599430669220152276048812572013086558731372143512606764899814129348753809155009634060659661383400309686103349069001394259351978538176191394521178213808479596333053323952220973372237130075764870722549224438259096594123010892749670815466496984008255654062083008290754626364891767509590888974494669380910547875383109288000185153681788343236238479638153369863415647040188190311712136985806774605243472582984704575873263469192975101589677702654315948628089008269030949125956870203218340540585071975339368664766354515606586903943563010734809187432714088753143302688662775543231987972553059735560168056105240756232566621972385251071286216204387114585735045924462828250558588276896288996044587210901605366933005998424676413064127756508652427294231379936904158879908187023034645983498656127568566033160616421780994711294649030419957248670677341124665300477389132384800348855456524389284314555980954510317280745295792269927906540427148565098745942379038418857314725348674063337058316308990971261805269934226370510542644819835206986563942595437087446360452547920557433423398050029481816963649509149925798343282337563410058599836206596005094531011060371368799729661873671720946158000093216757246284608792728759363272160972907161067929758243043398041594434844865148435224769501950578070246241360448285020703631602613182515117902616566107485128005057831082632808952551819018984162827915042753939880857245330941376188310973563144244013742710129946513373061350129799950394901107794535681937232703871965135098936776004331936911519424274659958212978921247853462776785182431915583466784154922103968426794754793727397451211303205296504762307149581185924106903160044847862370178050779405317382606978512896859021413985960092420129359140556411171356570229569457487765689352210712128972252384924813353801176797113288840656733510203759276098900676032906140901794345723289469445145832834760831982067105385270102586225397121141781554661630055101656509832449983275071034561763285799872440724977484168248473644951994346380727013578935517551079377908209726455965460069881282573193414664178081461845695443035736116399856006319651386620465467742548574896122955699906804341075437914616069293557700030328153083480338776958686073936596083886658166408797104162490909047043341523743034408873153603837000083094072726119576140960211323852180822273829631527876479681267841389898200931187890627656634088625758696210279224616921862410184528523352362417460591472349268180163510246410031672565841599442913123234726759439805387250644476029193577252480464684097653383931744011910370237202865794831519922227943316013007386892895096708906620073476385219092721118045323250164497510551407765388150939393748548931779566310511995649535281019795230435726316779486655450864923652313634110335478548869492780819959768646544101597074881190203681961923111002617562985368875463952490723167261348003149518354022766451653541619844008110626653863374979412399171392357932404008351534096391968920523861903842362455315379177528244611336049267424696165280568066882494562318314503742219883482730354105443833328084075444603252724463293701111470777154773763441258619891120780376440060586536000787319776909786782452003781709314751291319498830715789677184911812366597187002987096377666315931796946705143594832743976815711249467037391239815499990029777663919357422071656438382687390246106247501276851047733681491135123166115291436749646321837961248648481566489932846546826481921973042970226322284236356164528384067587222345963297041659313419442516678013603722053584919437866240891608331189170284139482819141730014783704565800101013595192400839976244462840095097503511080527193058669234638671543399343995730321602127297183817921763144165608671753397236180749197930943765057812915113516997019333621023846847971351713081757852894235527191199501069791397728628297274616955483439555126322120480948248068293355446723768060337435798238786003737660537996534597266405015565943202096142294744607512078290887009409242147892696572200755819417434416432399052662160893781442029585158452563921673618929984667376214780663212582490492019572850342438992619954385273942801419609811695732100396251610245567637631700702676531444083509141401098199042180692866721954548190823668356412770704105557990855629309981668735569242279663204082322164058512690848828285161282334868795584920991135028636695370094386875256437276523182935667693100683128323346569184600108437707126184567038753985753402516495789015861249541192853580304224995067164529384934686358362729182759091495912655194482251930903621740836973265389673875405137697002473368456346648030370230945452484394759818809616773332874401605058765789883930067595626361434479195314146794244392082303306876364647705145755293127100709841974487156392479187223989774369041722687407179579431332752256262448075088072413783297684852652424765556150387659637025854738524079890569185087341425276943731446299554146141467376905865932251374225445508800809982340869170958467193805744683270052215329386328202149508725692080090744111507842189831959952712425942329354630696402136355246688094898239671223428936496950020412774024274318293472927491366817738681419378099051429486084294621055505896083165288395218732632223672709728139040704097144161239126795886000147078482480395926040651791199892844734100919397960516566764696412691066087878216638047546854718762423528988070701825041640922557921281545346854617760343831776532003782785679150425180426194972373184900141193982119828116007191847497712222770857038605809225990901006802394148369013138703078306443523076141459489918027254980616665945477623697675021206870987223626317910533191513995037685059196802417268305245773489681132937177599348205301725727203031514396543777293428946369840492261711370469541625091449152463610722145126009902365937076923716201138413220376952605039347943792614605368469564744609627797214115325503427077085633476260157132715795791160753746451592645478017449537335157169791454624962912799493193581964757220558074631573899814235183483774445917532623831532080861859469703812108362976186795176731213551623551926552658823933340991627260952742606869365471320264769736800324025312175369873324802283443139863096460903082884492905464855732725912397032520359085022847689543995547815631770334377278063124565242297820406711887013126992612522363020799815312963780344107740375077684752650396889731582011760887874832219451050106529202335984499838615100935484851633254302706975375246517730665243335351304889975535231789546212612145404070581281378335526173523332271485999293276192983041795690346978628890037327154019684887849941749686884983689047831166976055317661382150644548307639550757954290031787634892332739389876547888230146776928611365883737291075993529743194343928422121688919436988689618977724027840076835025157925855095638045614786789083216654193840568773351444776517950686806892468683125944495465719189895024851435517541439319536181958711575085127460298715663050837385538877881150795885793281428765100501612459317409135111520070817061831062899463019442315182821133880867011591567378049360378303431704145319689183187296746076213663978734866397441612853201549445554896896587319247175818979487747339074885146629036139195267835520447060953125416651816247883400970306899690686880986993950923205389177251743089956209476530143478240549734754132274523520340885654100921040022036762244451552002724787783694666589692703692930025207650881809483839847700200715428453603146434452295466489123151987446794008766949485417353318750049264506367300625655738367384258343681016258856457633087315875814232685064420354145391838250800712323669087573694195821021344855088010944209774435063411241883103858186921097181732512724508365193418593724129947307618490789614963418615667482762420319381812527294587900296548881928821426955903783519177767988663747186392425187314409288602728275959513057897621945946328568556343281917456181098978694637900694683843456165233238457447168928228295088629832761867209553155501267532014786971239161165353901668945716452461648760566536417329948787257021477809605200120087813111113255401095545392982118429313071146481969648165401984733953888327739411966916909156394042664136305713780789425101424879267817558012757137202502311938017916232915283019433241924020405357295153242620890925015137719807375382016711153045483739266721569348901589370204586750273437010910687683616156785382571698532412498537614504083174945892940960319686677369566343158623301704866261883402966396845750918316499769799091688399067226089743516511025511387375099489166230098064293797451307055094884576360286763130155177489363113092231149344566395466945172377330886156666411173178302617827124363264720846028477806032621622128152011288506678416661986935472288209813957697693661322556058743683997673370294413787985860221021683147573265653868597519267007568354297159162898241052447617908564320522239178702295647212651566489159156762127561440574948161040155874243455869114249378379461698110094143769581330054776900388083013781496741394219443746103653605881892212635499578523985112622371937815819411535465728732242347555146157449890535285399046680295296000750282666013793345531854557237224600502764579441197384132050239428002141640396633533012466334327532296685116272132216783664607756203277281274932844122164763377741968857015107666425268286751998069006357377783951990146915933679564404826985437208545371320723259035933325741362681540762111912781589975515475341900728976921161613535343944990425816075042013629351077631588401922447546400557123560758226645978187357219223750921744081172836604073978671541590482379547212656088816748026158135366939073937012494312946111088732947659087409598146437652549569459722369807531377986183465685086462596662020858680991695281716630632871733283869140530014460811606680637105472961058052526667134240227422174872562967280241092090136900046822585533768441787149842362159766198977709106353826113622785870201710009599437653093317854294888558245943310804395394739028474443980623434874293580414044900736394338425454565267864853053561076802969580345004708887943511548138686259599951284504980503035541301890521420726885286916653115352994407255492922561522394079935345981987386290481804159691382172696526695854898152540262912421951900015719941154692783008576676603977078968013894091608168469373818810888622772083793929264178248280326553707149825451882893821289889598905173800326773202566141834784433072169972378419568847310911061271440668116084741053928649577889724836368492255748988339205566564631644741140099072425710246712235199429981084534646283670763805638794133052719341909436708749907116513360323044214062095745755977722377025613488016795517210369724195490066467237104808491623015536767063246382774662564519865758417755854557477806632090544083304614381946178750321793486726780632537631752593738347572711189147019121810525678734425170073341883301815717231299779542425743439731085652724145389706150175309816328807164821949467138993078926541109568287628400060010266429626347550606280352483753756671814090522231160027891890109014052265119266541616101517712247295427230198624194572601646209255366189039330688344616942860293839808132405752632871462546346043581569679828831743913694787882509124582244392851634101235429510506671149855682760501086233932170846914173564417003111918673086401699059644406016083183950354088588933484866073165524148561366859010724124157364076870355175369416514534722831765181314700730843371141578059330335150944123935335085788198498241496260494139304343494404372396785456484047873271045259270909461585969637463120295003961983406442846529757793241672899990046831866261057519431205068129014163661622952860512274561808238501940369887947646555380950162158211661824800860440729419130534578303535252293635193950942785924934417621181718892847727054756535376538577302686742078860105775305335173949303833503720786249616580295177756007214534775609541070209679557143119043750353480256785991940996736319123850147890647855714909829211383269770251944519725256652644404858064352201568351698930296731650268778567207190706504600517357870010494728038134977292353796337852091426767786036054631143807761747378590007568971942701806266410666235766663146458097742055816367575006518595360760483659355448084357964705643081823655756839837925691411550930445535515789998817287058282194617020832784227731815225894004008802656176507481429120823813503424518113924359097204364370291650490516049922088987798164519476609570263227547277837928503877811409834990400104082394435083717242274077006474370947497624644345434315878083176194062576265506803867390605892890143842105425736081749073495818220291213964071680690156853920448457761058396169262859053285202058776418982326334833213472809315229758784879207810830413070091650092781023573208835799964049293738946947878274517337026007311316839310943072297367555063465855808265239573808743665302947526183860623551400872025290602318918370379162625906954809788539313563684030617131140997752698122044844990055937835462696888545389376323017163743533640655987797921772512482980916303454965161165888259783980513647269047492976487296920323882287274471499402631374411626332449042637489906579846403496791148680306658327067413365992376229428308052085012334453357583343534113078261472105743566595362030664545116941784903426343049127513152612558110650714394138076332198927773747346883945934249315881805605998466626199705784687294144561291654290566670496733219115344431611655951200548562490384587903560454034487032147905135198444320184373619341692637953101716260899000468019948663480563713458054540521756726865766142704927753488273016927214075040455958277543482614128310302070000409483098260196650143359903597553001160231799482373198739584800577385466788876301042285613582464961575219009123820331814019897198360122287473164471558029702808742270118623867622535264282006111625366657933249209103847179476028587343568565586218799364942588092825905121856502097387001045089397514722213149075848360307009673143076026154798797630526745117409277954632991316530147005532180009576928646930190259600019610412842113663565068518532300714972554293830927343925825942019878521757869032450560493778693663874324054539438466232843859579261327912097673504580834008874500193356454975486489074186285601058915490989662712573348118687604009643988191802724037885592775061086278584446264497252590321765973779412336510112400058236078706458241383131684002456416904714246816096007559706289069668596746092597694862014588003632407612833022667417348993468482844968262381073144376901479569398572730458662101605684438731944536243505142222415974401989075445167835298715020315126953647359729660051018942528442370647639155752161920693885145844956695511120473142700549590643889670930986296546595043304349759243619677722238843492343040284751680698768808702779929324132824312625108866160209983409426030262435445189996204296390088450973497640880696715216463647936643627606668990682798830259860959726995877603375498358097818611455298909919247489772151220415065389991461222820868630179733584520716414141955023368314090754260068163661430539395368316148797426670085926831841225443376173375698592042052154037716159939551066247330599656133761647787840989399249386713298396602260251494865049255170015441631544047566752448406707109349438725425605893958396694119272115714646785179752051373011750642951290689246013788865941127991312304053297977885985941484739540359031617567891355418418973374911632305488973030661837136297092201569442514976973215968955017202472212706570393331008382709462906051587055660378735732780883681344487328361365155838838937511386506382889082558532513629501572422676699747968682659296792884712310135251406496571038716553961707466315078789861262672377253614941181327206427043995469790470826688623626591563972270561393734618726658919561561002190703735963318948417881382421090385131529933824370538384566797440719551643369779237855080430725237443167735383527966448669329645732192668375258798814050195838890822246988263977284972189222132306056044111032182387207497420527291334766199700853163716792814547420045396966873676939292588763160015900701842917787643408570718468684185421597493039427474220808361955133753933178943439870537637714325375517473059095923149626872860267071035249069194576432472179392119931259546459916673865424086635077171181067832357863134889185009783956586747045737589461140493909876351914069532372404200627299815684062129678016209295919477044463505281313052760340066763980614091970658283707399653836168226564518762954792394839655220877164343104536395972150475111776030201800767774748600483438869373023641715134292378734199273584553195357759449339454911917889417627779439498846538989859011561482688788478260204117451924764055772974861984659527303006537457972187958070583741107375891800356663100260679579934172980765863435633775779339601100066891102543287288441362293059960758684715973509843110531108142787394157346904805643107129681551424740520825541457468128024243107144282794972331053103203098643001832486480176371756079061794149947354755457860462317561174652456668289138523160722105040366610655122021270536113647462567064885458228887733652051146404385362073661080354147086881995877447525287667800209898023713318790845192445711303686409730036160030643001234295877063488244753797328997185035487071731509639571592650904852548724404316002115420729372088531899298327759360707483080908775320973858339500539938775688660247027815859057116500852632279325621335948604479915327725738476770821097113584937934339110289989613708871519861656097971056704981528386269342809360866546372392648162009306919413132284956370978383717855851456155900999688325380852784336524746080246864496994254738752625133118074362861942915694189445265894436288533393296496911766930181899456039414386921688395397532409449743762932735142027267379822402546489989063052350056135432052165526704268525060204752671337844659078260089371036679000813646420772879535332774313061529368859283608868213750420514687796744741564405157810381361280345931557673610411203421229390173794947664256622612499945618454110896747851248618856972382863495953969914233306385569820892644815062856800020874977586681239998540140476441291882683390683358058155774980434988483495585761624630835393920872815451983411001818498553235786176808275337777656592443197696311615853250817193493253962788024764993321615098999654542778119093708409912641956941900018808893722898550761142572794339895690258125376171425129084498514556457407888801471343696423589855042478859908111244908919915016614404603153017521684995683244723655989866801249038702389067155858048877879064808333321313105081843492479775139941301862788955423996404828468490514878505794668561785994496169812721872737274158769837436781037524462037930646939149576322728238154391224636360909739380664335078946004214623880779519633656263671459407756775220469345139905526386847393184084340209983689026155472194543250809028445141812731511069886894307884016057849769095164045684091875574898555138301528796980855041876391737286745273205634706139211208874742620061517394318881878483633926286269994465294931955646723664276008613268409172736351844472809363548461926961178418556646508464469380375007253747385844790193761580541132262034682023064463611238521944889373945951703421036223206555593613830248060387003306333745977086505638331457204925816672465052087408328734300891530082937627543278477244085296717696521392458482880055107319584979381882758935230672148814494226869188007297162489728477611002959399302438367945076582663375297746570250007655720447182569883467621953609444254982947275335069429917735252885395157790884409706468575980635766859666001462606334744696252766835632052578781995207881181567954166321624583280312006346505960142503775742184914552471362300359097730846506051918125088011577983477316666110814760892902460601716117799367100431252641849223616534757575720700275551691397639316358402211965978769141252381502637792103482110091162225561113650731028476220593078041872692738144823710715963072104373653785436898201402793068010283966654294752929947807971772873302486126246035399921096062167317796136684581213523096496071995497298136302344430205057589122368423288511553545889564898003462082919874965593389960550682880079570929660824538953938708999488125253511983950742949841393440679091245468751742976968483531182257743628653650764753913929278304627040634604231164854028123697697281577171141174345754925246664363752173344839527322073428130711401936769089418891101362553093866121535175598476028511004444669920543042472574421209330215952407136964256034205465423174203318257021636944578509794310991466029112222874712574337494831772349626165020067710733561178258353548172948655893478161698923870848452611995050217875789332371957358604225520837168804027585849936305157198339356179372678694522969371237083718411598312966781146472795770911586801950452953049599152270067611498237685220448646612394177413173728427088458216287687226109299688317521175942440516964539919323765952434636480746705538792466474679012989497682177401134590865903868446353881823606038388837611780820430256246517959731588800312929448291499431399715905642663134279632950146879841943033295342820270954130617570324657601874497833175665582680057406282861738755972415766130823803846990170177549523950434493425797033242544291439904176120081731103220009121773997569725463100410777539731757896923771674090932193943839905452675107517253279296663732554447269795130437343961775384967873473949968067870666919121462037684591552768398105934051489666546731390024843205188293391809339398217715652990641217133549625441119265025236869099878784482321565866825070063950297290226440787872594508597682590826253009639557902034430765294698813520251848246731016093132349664060054098819783209490420744560015316119150595915531216620353941947442763058171801022245710009564445774551933842446215428173915793278528716315874338726643804365910433002078337535588594749600454847418751362424883952210940809764733216915263145028048555618975025306455711617458464368955419912777928563556887097060778375032531658607625235624559255257139533736273729645279990777960633836353736732579470158783012224637966916798970322371368926457723336176976529958546393340842730101293762866029348152061994941852818285401755143472813214801872223688493324151945338805084601391081014281486821909795493409402562838786740923190377958500622356559421614739018311649834707554562887148391921198530090518991078698749338379171282343351311330274505979631125891038841133373195494138730070168576478966677491032709018873160134466114327024895911103776140385179660247871240122059942012436875191393833789397604095705359375495270662585243152332595345456781512408051349659101926771447880679047339181444565107647126942160663629057038162414984095423824250927575843893525178141605020497721781850298520214252414114047032419167093150820631991065405307235004646201555580861840990959473668495843470275133025472006866357969971954759630872875644439199382048764705705956552748294665929893993752752528879267512667853495333634383364278087111072572158111314464444471673453563030893801103947042526822895629258530694493547782917325289708634691274979485397929449507431856885053770493199052092223512014265999111824515429344441416992373720263202421949001344029484676328940988844585020404424715617025055827057082583152344054003402392030597079972238494585197127118387988350934220569411077214683828866646706287926061833705512343233400085834297196131198708851018278627703651637240432863972996098380461958573421763997572695363956860623708235232648840085815926547269347033015696028903946799091521765421675068106180944422983632486185718465847030616602604762600368317314888855729701592635036865026001958292110574664518930227547919656298892961194656677092599022522604370150648602536857860947305705342954872083610918502070626513872269511777074269962677713868880895760908876867740213486764936434435548367003913673833222262525662962821329655481122138594413308024105683800391338901650227056904703997638809321746264142075783800046968684359750494811086455693321085414808764885031033258203792475339063064138955375235651123261772537922120259480349981777416866291985134654235841050133152815157574659398142199099960901749811193292897715748637652838657866413357164219792705121240325853549137852264781240428267066594926631166884070801725127798283134641470629652503715153969216633907122855581009319202207071940749449186260605975098599428625625935771564265130261965268747594253129340020944635875164739566655879653195145476683438916964014801273328025468315451385842368283670384685023881635291041443577369626205230679016201080761688147692641586044900916516468625074952710163649561687191607056683200219582564311904711587769032450799924158135895655678865769189855120946976966676754732132700137263051679345353667828951152947721343546700956969756799437408247940276884146171530147255526568492129155538311946016443059554145593445292396798595808307060661858806456031599699399619737985742031020340892212925499832616189700173782865034035533017299130192822048499678271647684292670601153963438817352750603771685324399027746406501838468099913644593926840449649575244708294343880249988841472458911245642911024621149418856811951884874042178612757361164817203993056678194947238413660141633546623525287747510767342732958847412334213665662277189292085681159488000570761326167080043917659535963072229268638218662569391624703509864710594015548638960425554545114284129896298845059900561327011280976593502248426233125644467705888058133673341236124164449951014581541917198592087854932731483634402922827459939338101065733187846471895392238852254521990053231957405319338649090325549925911121588557212079738857241384320402509927292446079977282524792651211675686418514234373423606756252614331853247828392848902295388371249910336342909826021938498355080345386721369325376942154318526946190819273245119182358309457815306942632807458271212571908264256555882347052973142445880806451763212166407223405639419640589623551328010850857624550267616327050503419616317115756013521958449565845586702129623760420457164391381110278189451778652341933210738785935930081360747416477145112475121999298591477668480501593866972206328822460187048835962406908001098296669318945821305062706250615360321502518299950726719557468149563778404000140945230454233058277224503114428952781734798208602364510684593829505039509237097981940792531660756580261695278910809978236400198250920020544731898809069753076649913982532608983163002337056676038790625273878859747965522599242233067983766043657545640026386857339631428076525327353829378115639221018131032648902106574718937981618810304626618450866884817603093387777431869400952139472460308942799331438507378422421128290885149671288237188468962898932797489250739684764985898820757785032489601099460823820822135461987141252542351963992695375207585547738538116649753563135734511156482889085515111400295318387478339329304209444224829109265748504791923316244032352718611877598487621215446545819605884949910457861791122125123007097972559658411891312898715906537429867355149649109359179877904178655282826229242504174163242540807293283821283589999295028016008695724667637806445222683351285490025319265693526507339921094786166976866002368336614446362121650530974746383890020162560765683278993734976474769195361605776482456321741403020774884539022766883553875217830373224141641002936523046415696687981762155941537895363824069067029286371940851913101078720296379752155017652889899197095571678509576771868100418665374145339551463711760045296599717468614763635786801899732800563156429931218685275227225731808581029440046044430499641076780990327534681832093580435664043455967200401226473129852917308359125235119334931275662464798978322313257818182711388849651956215820171734923748250881019791098599994148249584362578324750135239447874920582195041259459855973007461678528440287328318874117593014837333492915030841106017658513568491087051124308483899608061728018376513835068725804199953343554041972649758928980008927634915070849534250548240882043320799864601274270265021906013320453110232049496556015835852828914369575856456690507189719988882397178042508884859136651863390028397618073852529873631946760803490439273820511782436664887458355188235240016870590958770538448891436187488060289833952186642017255906699921837614982494423478942384253647322078415572988095700911652189530174782587245183119741256699937360432264710250292152124549389962104332815902780951904426039154371183087810009835315741410460210606353246546462283034564362244305016226346772971088573863473434378910476472717856458253971818188632554616980507783713735600092751513720352046513478482075302784084920084718387604772736908578497598607159702611344781295440474106272493990913585770127884395997932527385827819875905157332925118424507346463429491344141316162907022140628212172701929691187870733385595342847241637767946971144374312968093199530619992865368657971033522541425600420168431381253464405129086977232916571032833229766220849094651234321883040523287122396301624020193135550153515136368813408132896243018991137433957830213491771040289928742522946928536368661167349392771479313326706961727359501689094461823582363538259411347985835072956080647985637020915823209190674977251145161005700187133585912664485666800993930284534112091004057182639920075971829293053599369820412018204294207293509739728122570694267417454317292912599065323844858754352063154383669189842507181279181402699609716061213200714869884681959905027985558104868587174399269388672742721258342260218206268127323391782064333861988500898412285454020137700280096165100021037669060258906549774396983150454404277848392600623385286080543114008008549112495099701696793403289917021012972860113780067871535449220267686275031003092185508261163025648352691574629700157475121743274333579682302042401298095948459726674879576176982475756486397831122561153858296893757028154910770991344167364520103063547898005963317049145485391182241772228078877792308705090747606569904185984490432566714233741871286382747404390517583780400027840170497149811387677111653680856885088748263041784809708890295204683931610509338590269813325086216451236854599595361947743445140595869943775198373604577239983229732259163307443199860348471159488412269921094201890891960718588990613063300009590714275327891727718111124922292189405133285423181601862025382497988359928089230857703404874106886544489851326644708506391360918662677647092051974501720412225195661406196926006180199720318857064194419940961937945543397535867081125107783234097777277670044571748182017437403271134344565545231412439207268041168375107950896098230406177455536513385411065408779455624662053387989281395974984108846275370246422671888737458924292922878529399303009603187302699562617034402900289609021315480812863205964488726588062758596286417183292693157785427902036965863638881221333568929274078717534053405312215615835784819788042298732572650463155465920675749949888545005046178717734661268953394482195049195310744433746142239920562260156289907289356791948559093844393598165187905376386985151407496732254542564846651643502207893594924657632795146709866040445233751702575015568390186055498270209711445547977325106398298166054725535649098598577322613220159681933729169346742645128077898770888792028538536723650680531946187239040705538437938970751562186368871692176178202079043175491100339150338043432645399511409242593015662891993371498875195841164626120586518814367458560394008945878072901188026563850333024276217400012896595860566992570262025358080719235628801554032798966764799900564873696182150938548604156548288313717599030209112368703105200626314078101994996036061938625261264170599083820680370759692291509481348877802935474624653326048409646369359128802182002974969449201470936873108865694123282932957972661608827462916551537800448599038110264457386533834287952124817054192114840732687005174481384690646596711702070664355638460216576443091822198759307011079038841326351752097664651241354847425986072786197036124342303018228349706244214360601652788134222270933697159053556030558226261479061685497341561917283305456235716078338581205831378984117246464031918535673755331740114968560600760867493959683244243173170231686498813427229605644326285921723334927854132395212863397059769519842001545872889170045889262958124636299029079954379181216808038687623302432711046953758738768448851426432541766380023468883031842389905210568412757670333057524210198877756668506769847006139726168836635143759522997426975145570068834680904417696008635252712822356280771293907750960509338255205589721786098905773205854850057585747764201793316344465832777018302517407545209842085856612343527269387951580761025615279933805735165942429932242047411800636710217038908473564048925186697664889092862908358479814626509160973871172070834378770905085308929209119785659295410745224954042149576917245566434484313317578998830861363877123044413849551605109425471313439468434602425922147141780417791237837632347937037093812424421644011217478629799807415980203110930781613699717939472785298079945442288984152717576289548660426714245466510070189439395872076798311051548327145508243868118120978319102426813648704242015734700690780777882247980497947492132984355307929428416772447393852936459693115735651215881279401830375764193141902311767014129381735007795541994821950576349068376771121410072203503486865557698933832777291727871970794720537624009122544335503823713387143554055310178925405608054232573711034529863894609849859197916907094457582135246558427161177284699209854302882299364228234145279566163208724677268649738431354498805708823759918832447186042287750948025232747630242879182902894933604117461009782762027761870403069957760104511035000169948430988490371002554224438343109192668729798869302053220352039038072053079152462357796191176454617534217647593784341066418364402071773398960161785758105348234257947183882357022138545414497060212581435931892933539242175551114063350373994067741581902209660276936715738265194440478808992466745981094619784723188409697702984293543326570229234140553674727675560711550519046138566568657842776117422660514367868271502958637514240887833455573076450552753420246606088938842551700419014916486881910217531418582892067248668965682194594443170443364366311941018019270846657801908704220150036039539269529016235433927896840749165069623698650988812029853132078763026375316599456868089987509314849327427119138225227567562555633825770834528452544356445385728691015330684360572514258426227685623041614226725394813861124865010432912689781779946963099920530753810591506907038001417950919286028750486235997933904163414071046065279122240466421226751793600977582559907643417923137812797181127870578383850355270740465536742071147567913036890265001567967464529770855625106077241923274601886479706795721599848723149014767264418321760654200806385593436476181978318660044475795092640500807411111424572568388562950817607649407551231691368860490084302817999230182773846126365180446828273351966309608805336276513669962968984916070836733571909025278884948540411001474595523641938827656724430997344642173193414555802681205736605766698915113522392300694487109511473200380330118195020886300043264834870469310790924055100646269309222773677423786963675766321618356658823637005737605948355200211883052395376787557098385065359603362918180457032215158511112920230988476264363307978803009444663905363834799995484232944649491546767932751301119543549040496144699805733049876361853704931716179623322976988080681988653830897869866900500911332994226550931371804609194773127902861752466025029240995530954300553618473733521490910437770875205677377393735386453516394476951027602075094981417833716597046690852529858174495533026678717364259849836255804285084470484265709601037036918573695011418991992670815929604949253145641068002554697093486382296933222837309775602913594617936345696687239545807238401369215198755892354161425310218656996654471298594038780480560786509570710914096862555246669549159418033328502809420774108982316107799549546871478013232403161260566919054587030199930449658287784805611333086649653455637845872098844316302450755416333733163193608324756413430268046375998764929068640235554856145536853694703679979364551572394501046858686104266192010336447559183872312829166748494594920606519633158748461625600455390808006986684854672644781204925535202534212083211845943687935190341194956937351518920375812277010439648459389920012094800299091872808469224836830435825534303557549269556179099567010592947766066651042703603682645104002342446716500821569946857316773774646007910779859646864275756504672706821264526806004841362092456419662887931677071293220439110491693793702862959862221078825670371616951713683027055775013025240666041679534156533427671730504513345888174478269709447452583718879880323079796621631405996228220018212207256915866124637670338493891577531415443726872746966473345823591385012232135031847216521933497654137555825272496333619710076713291932813292208541151842298554176746716874449786015182619933506853169245522972347172652833100500204458091749374239238988799546691848297631027412817018446148404034793857705897906575001706920197965127218772375204884516998721929816977896281293657184465921562370929924232280830137199310144031951936286378236397555507881015743104049028265193100474491961203627603899635872483718437673470579718669799784054694997243525158814242000926702574928293298886127537513783523341729683420677750781069671680208874407913557999003001141463482420897017423903382501441234695670773301892802378561387326293846178914656637139824923737289343284818186844817066177641408087002775606461166023221555078332685987557647559982878356787457402959088587256055600547452186200319846274976793838690917547374919022875335956116857674674089305669010257849329609026921484701109457987591169489393549326976547632465085221764889285472067693898923074507364165999270521586541559434351038919189401801220857849717571432164645117893403212119430522336545143635306697930563102756562180556260453500980244548690047690441107317513154489686903160477740129718681470193118246182650557448912244085566266212324425966306336949976588262480907894534346269558324858893475951356202057314478851873907594922865448360704570684042043876603257877171077044228485283639532032048271871316730525019778594832984706493121532180217259695412840391287537978339874803166475609240413743372055167851786381811864109546270963198455918380237193490988819145767098812994808245847633669387819806896279097444621182026915343950704039389897692037767231833243528133300377643476555637381457181777052600371592959489083683748011476931777105947139461535654926859577723076314819581172325053091566953012171021264864316613831406954135230884410579856920486676998049365933497243745088101561902933229732270465127947397940674145508589636044190892051132446348755486038504724157468366754947043550202526106117449460040849475423789655879833032641634857836494587846284412392586741217017938618134878983657019340885715800565790487871800635501836967736834751734452135879259970985021606685387835927764576481439513445212934740288940509798291603826553376295685514208608070853705446159559342955850567103271755440660371770225304448390260572298456196774218363400246036444710240519063768682813532798431335635073675954922173556156307545280897670072081504807833009274067714477540098324653695158733200814236362772172474395252452879091459579474632032728287293376827891751301163271920820858229064855903950093622026148738160945380935928353622916796179495695913475922981807148782004187434932639192034315949702571219857280626768295643669279662607732292515702450073575275111547455508160571504796917092339695227781887572728986102740090379044101396051206891202014960262912372604377124794926926231958644119295477197514340648067083009593352176195597780945160381237754824453955671934000376986258094854311290498604933032489996694458902915862458607678418398460062446126516022134831830967379406162819021650722476958981164449470214047086733765915793451779711683323312078293755132166767181563751410168053287877543058023615046958864943273257744262215682211059428857152963379259595718711449388559547268579524345773908072795920239774925052513133399754605706350663524774463904281849905489157228692469243822211834567161498435702250230125661962338041755389387208398185426781047250190400552168983702038980795355848095911757905124039615002374072075240342617048996873762619253378513524623315628181927506786800794074068823361146042478763874033138754043095088355682561920719489049867338644009843263474931115177731380614514416426911308982592987910771153512806054546558529515519332931638682788027832078198946514441992730522982007413315871726942442419526246320364244387758531937717822951371261009209957240287604976874522378973385530116416733269344088826344821094538080682022675444126190336271196763617093866323649134004526711007973983039827738256281942873616773945671228344083524455759598593969918968859201612737066829313002669285583741926154857477968882195495275408872473704431840682172138723239191801918877322641889190033238529038659351748479651493290559915278730295150586726334591188281618051920643957789862659880853990455179398065565466510567076475882792496227228096681063081088621412789452826796380612422195171042750038002163791064482009378244950301335724152911957861590723763578025001644672234918032216395210688619802896981193434774600576187292664786053655690843205211928898978925971947489706522243570241388923469361485694699956588428615707023764485810424887553837899498332988546459247084985476935634861405435718307117321503531754368319369479554320274991938134496299874617217910625466269358090402137950276312250127445861345850011603816276425921724612568926020344881744799960442792107677014029522045700729416520277135840507502963710052501232709819040163940128866261970207417384306493512614005892519752832460232576312984803249730347338631453853278448196545254448983576255615390422743052563384824015940173572198205492857436430021683170172246419855346354151751997003996524730597486057090526450108662138586476185050372601793531961791385594565440057679354478717951816611185583801378680391173169036329243008545849798011392896603782139792916328941276183045461301336353728374098886833836791687221181618776971763821529635070371624265287554877281746172017728682356325973154967417721720381310644410454584487774141521061841070659732140546004500372383067779080839595532465188319241302721155697822111113520459245560316618878580657716540574057905273036683511415571954578070053838114379134817096603384164174051451041379384371599061548086018685746888821977877845547471730439729301621137428113287290984123918436996728291739110163129744317165965759918222066790220604846278812496559531368517186778827207076513909317041984040339250482758998433627631621095236359175761450424807935807723181944324338663367903703916286370778254167044573414104827718931360793113747295958642281056420642620141121759529794714740811445238371399647897467537224211678329955717524822770622294357806380585338722456600007812229027448657820821690117620272247477367215265065542575835080865459308523830754536937323673420436638073578861391623070577610164358782443759030093289159927395029322602593093202804046657000455714460168482712737803002453860751523889431217891359751135998813953552620782636377576422391917540553618467326057131308507704731568978566707354018035310771626439975038041651004042383821174793747030471461277115945805841152647704988430145104502815316568897983806921035777760162344674741741086158200809234030957617413076319053696867174616576948521256365281829871564623040282583942369597250851687205171341353192458752060955896354329530372039611899881633855167206094433549732317549492859573792210492192969084593380774873584478935437961535064062141719235414251296434500272461183387392173435132214477365999308552399176273956073903648686844510442885445732795965871591147986669634651010966801332824101949297256195697029676896660769848170136684057101743236691688288586794728762974049040671725202336591207882155594556856261791628517863766714594004725819878357408023191041792468508565923008865227875996777315795292304666751787176466515087587619572947519607190554144387034225008393492436737733292879251761590192196584396326197338643070823020322158285881197511363698033744372561749876897144489161610177558957496080750126416978056706375503369848840519737076590321827418558309141849452846199444558555814929828434948615418131004946471057446938620710658588343483076905941373056560324345184748161878125302580406738880116110788036103693929870746973953262973180787160724075117870760907710561201533752113217562340899877716333886778162395676364180166793788269442735635804646326756565293106238554482226009840399671455703619217964081227355022363750150987078264162803580587467262069520782842727667750948803828701176250555724595926908285144447207189914513375384670503127549546462709309194448860214042254597204452042399341532400000601145509796149804295245167887087144139566725519679593999719304491784299437907740859505173490186263928179681011074411122619209090423004071874910633354361796745112099056153260579037636866719046486770334359856391940293958853158362513270840373665376762746987993264039561388068402097184071074897312449315497250847862470636457168645928196310166021640117347247258162220633575757692792380261879059065814371638099709831470504861169842771571371071796498770051093577001903666892324899818070899336873308878813430638493264257442537374982682121342471000672665483097831173507036839935582987259272115972376503012178985801900661056468140457831991268891356510444457099149679860710343949785143992883820906466272523570674650023624077597072819656276306180611528898736648164642809010346722171384041849703281396465440003001838915410725330387821215425636704535346912277677096763536566016162037168087870426695600614598429010719097596277120381955774986815978244860518240616950284259219807882160388526310268563930420699160640713356999379487096597703439515071488334782305214157436987850212182686194020337975523927843432344387857932400455021226236128918154267519723560217475868112873958501359449805073603343961290667585524109767467076191711116235832659524546059422731319986464686265956680223677874888420014280023556686845718375800612784663137053873454413480367149803424287417292082875433511776303155950696667651689830244536098411162300716268333988266290755397843192978551764970103065177448445006547496522129440143380705639312595164150471949043187969539257545037646694179520027819600348497350525104570109221527968055067050436969815833454992132102052109500831999496520253050596701877020239564452917804464799947128048746401767924583863480699630207471644733782071576132106429792934969590079824550082708873365580340762356102426778012645009330845628962003275670810117985212765104131295729675268145162244657588280416529025289827756719104790876154493680414808112378739239786116092421690746764857373645382011843997527251321432274840478239367210012251533742031065108310456330225738142065432827013242907475433702073521857054390186759537205119887977437865390573097495603488680753059367627916350374434458713925523485651950466288486204167527531790704348505050482823381197307222676453034334754955936906162769828334571870410649813329744702207487290477480137196600393959901808078040942225175068868804716489355281023298494433653725248398714353684559397164705733986088218334266768207681185799952314575710495938725350774812233310496147560836226604383810641665999468654630784791583375657436893240917332523790415382412637761002889438190076283095285789282085695937401552178389947803434233135959306530255696269822300513201388623902932780247735107664972041419651584763195119347582660055477029824703586750694800174314278162426327452237168660041503568492154010186483180557592170597229925414640329057160898723998812171349195868313170097657565053765325657044470388548862928822612901355872939343782595314066524208076212036680449593210061059677396932205579640758908870352996612550808279411537941995447725697435556545721470301102981654657083934296086109117178334991929152311340941905029785600892115737456543834476818506462830402928377611384607592908766312049290178458873971526905346465744046299633422357195963180630029172018419656404629550885279327320942869196396598203854527261671553734045410621894983093214845470556217495871076541467186271019245768916446039817674140643368115220179948387822985135520190450146255613337272393000898285324154542961108863074084208543302061869664914997866985346521701767728381188768382687087089297307477092669366380958168641313600096053726527831860325105664180298537984077191904955940971659910831187939790595533650130785204555528392204022992595553175288224844064072431797591850297460399574144434158704810033832598777042116935435108302822516096219013876520110290757917482447264498592889552081409182428126176458291533819178074667406135861472572780414375819790458146448240604950996507578677032712222273602839876181427064827949344536132739503663165031208043286634002601804776806535884035905721426365389945094566207213311407197637746216007464559659848681888292433090677432597258882403280672861065912570513182664172609302410824422529191358354183065788691246279194053013179864172507095457527477902595098908817721360168836567493253872157292069138188918724559927375506534951822472561653078532446336836364694525692664363189195507353612457096352310757593039513134023403285014596550496390967869525639323725050233265518415370176538522428105192502660255303081669244814897136538843344537244148388058040648298622311459710345434389430085914965554336391064152789187583305425974984007704810023397441827774987191293965092718954148606537373743565468037283020976958771237660409126181180207729198279544254722233073214212517754840948204894304323849793087902803528282005332045402197990928300935843181949278085414868658641620565529828908513852944519778261220688771149196280479802543138415672609716268664785961075394733163066660503283208563990611290954020531016586955789654854439937629424550526514099011837688861991655797969773182312039970844691552990968490266120709482404677153952944781989439067297858934348542122549796113532591376318457480646764228174367494186225830867994687897227999315595633890272509198028076768528205083397533577406324831602228809630306333413363081750629337190193225001975610840062576672224079065425228429747964684865597922476212194131838707615716335355890798066522911236415800900628212086007387899535807656843091816630823254579972476263183479820948588375171806627795335414763012284764989012075393434568462690768203485091633210316453178913897274591903196108582904842767762851506185281636252912660429764728571477968535640715879042481664976485147610609468245586999204200622003956795057304050336641519688659796616857014595572486764364838787953374347999786283901187666402316112925096855816080745468511355053189662130237824901551841875120597799073464270492646911879911719158733197017005050829869268443332660559575804153857340674459379314718904589227704742768497524893121083114693834601154297580462929230655028486251132473124283672423188047921895529337375843544850892919323631558968059948903695321282006907808204408147294429861718986071985869898237679194062322007900473677483050016453657784697512887576711782680259978225176720218159996916316589039451296639233650359288285005377009644018604812199163782616808789740581808036544660195559510863462551661542449673845569818781158510200989735265024831382987550856811989811969937348825319812311404113113057253284769226731361243190043349309969127331168852148852529362585173461528183990337412250906450039183091732835972660112117262924052947248297211734196749471314429068086896395232554099561364392066046784698961442135761256701065732185479220131796223235714477497999781019981271671811526986237664924711337582268056377428770129571729987309753171701341199422944226316785650981837958626899089382092355747167048893525888395077012884977014434379589494307920465409672246350492481054492444614360370196059042099642398085789845512048418550577135290363854546725728546447150683818045786974410492086049868764583347339992486162373154617423707012217084788683246827678203779761224509430010975713113848656507136072467400588831217661533304546052033900363047616530359683756187719352234303804756186875591078419906498213221593425427919814501350668075715708061442894903299960473620780292005426763744461938028174089314967333684943369543863596928010711407822869535169187819499192115605942122125378274172968446900453888371284193588012238303550317734227064178933257593833373648086112060304631092657486225963745719893082410153843712458525008170097599477857674892798574385909380332706646025470468528080318661467156267120520064469318493555957406158264564188813044347807772999976345908066457244985893057676130007909219817576973868560286884967890611006956417286968715038515545377423214927298390885539170044144361555633190840111634168394193479476332655289951194243897713783604138832116399623686151893982955810843166506468230334050604408965218793862298733026174236162232717136602250667890663266572074496903400108685602609146545578316412617325558646750194044848881979616624926284829683616666807678723831302850046100228004756162532994486181222696751275770929491562471430612500309698726781260548493921921024904239528779440157547101163753979779934287568962562151380530431656974878666847085233999457890182173052347011839335305752513218670145947664055975812925572232273555255364720608881825723287047477134818699452331651828234156897097640180314996248107663681708756969523673754211478406458195160817727432898769767538921255153446203551311010337075529756980669966850164771084888861811142332896350764379180794747886903054481761903329274934419647676172297394643933946946198861336322152856001921192304106244222691679744505018326984638010363064317339363174473690780890858375497307672942648667321116476141407303181420677232446715474381871344455784614478520228827469921645318822537507527674537853126885499123577529623427816366037205458568775123470152760780952451174655094162626173854641064038294071539896787785952216262253243394174112900413057557046314759648170594257988029464407535199169798839113409786007428655991272713705051933124852520361424089597936066957924213117409551488750637986527772936455587000551588536550211600353063497696002596617893292295681294203105174749440220201457965922663660494757935691049266863392136453036939218710941996909825211073606253672894808375840356647949403351841727876681039125122686528883439117345925683163884573486284787999182228332116400254805591478707196333827747195095824504083212246322594091927510698659077153792612208479108785005709083372889392979647131125535576351818325386735739035019405893255350268622178785073477141049688431841236356579119263494310975782884618377993821348155312276839874875328687668372985432179941902393270771055191175601111105399883841525341338681840102452018960682975300167330734333471158191800423753412146345213226862012963715771423519752070020076906071018728844814512420772554678280708962316187580282338575414181815156684625324775654739327554689630316734858383050182665985677765370671002144768827047974369690402365189467408439009952295165063086419460577178808057923338830177402855318380117278680856083671343135401740634812323546581402907860409624316668588359061642664707930210985735760520462357029217819310893879962105202969376815261049228665764580017437351438053598689293350463662496008671223358392597027748054278413095084082507850356220841005230331592962425974822863373140021458265756974889594877150995590886431433021069088095240059796677811200612201253466831619269947918148277822744958229701144371716027647923498932217075592153898946253873552945545182760164301576060682114830300557345227745908202609080494525033584336946702406272900280140220341794313314847746984278695122775863014575355527833525423455115476740179142327287495857852876010774654496351618710796351106631187596128683523371359485552894703891903113935824741075653810390291871259475896471680160607505348715818170645640812804232335936006487355538903584671415919961134663797711097848029666054353400388950871766986672601165026050996536775636086283643307469616414896112070467987424661319857015284100889386498998658062601482103069007023080318795271759812074182802768468018591560737163450959266138511742543605535740716341795287216665340188947284938809987885701202756310825909292526515853569806005224338919224824022670062775805296244315602419619369351905374794193384711819845095704861602391569955732416396285848985933362683027597448156100067893776480049111141014446088034024768145286249779307236237635147739418556404205041329513943010329196249937725120987689884108555154718301300251772874558345288786743361290184196631103230879208502729668718765846562165489892425571343194810318869256578779745021401980489993076101851154248968557190518519762049492206157489225243791668545835309997771029372770150738321812279951553766531233179315411594827237224509332520990373277899203564218302144098345359202901080143641904430331116628141900529674638825097724580997527920293284564657259350689397944335162566388613646165664108842355192961773889264238255873336561146634271628289115127789399792631181608211012593662672673374917961138103058257108575793787232578220490482691902719104581822966336126974670649255003634813087276014396301138844540616019089654423409151155912782914391319872544356251115657994067263753099247326249109037418589929913245086241763805337903089913786263075925767524742562125650807335962999882927117611771486864244481540923522742396864177719938468036862253813407081557261058247704741644108183914547748677489090971432070932473094889754751566306621795812309182821221770494425009009634708417952032802432066280944598958261762689270333167127123991521966457635959704978085841693191103743407679789398334624608810482008242495027573208541867397911898550249915333583316469605274610123889329500101022273669603407495851458746553030728825519752067534496718630315103986088887715421115414431165288860474298107517144597602510184042019595493683816552208407287744556538986771326346112113170563624149137985625147147006052096678723131996032723094907773274587598746157626297950123183493389359985085372111869179336928407453161947142364453315513939916059858605374151912436146733943167665028863680928192193264849917736726136197671102069664372448307121517057630772123249008649368435156061221111936967412527718229068681259151925070337014733180579866678534730444814962513657388080972157950054330445365044877670844904852321129527116722089118380384051733288256260936522954317160877887586763565648164926515389181392762175962385687784326660312321804622012172418033887284492738702447300552996768378188733284490485236767551198327557975776938576804910512456436161559933010147743966046425805793446295613055858917071221399989258180518337060724033799546717506512061548787739918118449527244133757246978814311605912690565715907483115441572608682317091864478504472934409321925550004284940179284653658470324069483306954211284414295878188756678577123177627324303999860996054135672720048255553945359883199236303681966942171733113766385848586163450555305515885813370607567024025534245983670972607630374510849365844521715261177379652970855750343192162194796748878262317651611426520440848703217363662913614004577745049106955937428613918339755469130117154985661367024359619488552617678908638350855767295376986647692352398783922391720682778403846953561992845547839914926482349712466371669179980231220397520919284378310511449564028335516833559501381232807861812081361411558628203798747345260134808733691160122767004966585325060598274065906847372143009004646318557643338374035189491183809880253314580385014927678417134540182991076049794219266658937561335202825931346607542503645509488217714756144709772892307853197590243258226651296019167206957737880925826333936409517025505503956163214483432632801458922104256944506617300837353126896181622883285102718196231299634777414039519119466645095006678023213008488563656835424538249010393067092534715424946589909956409611808119966490475763143727136157232275867783328601389024682002715850811134540050195492789576042724936970254128034285804574073941661058535484579182984832819537847165689855794753879246142574679200282231144549081158429444857534381859450226081741910512685591427477899781991928707856031461085529465058259946795166044286124830344040991453105222963399750235362869189027173049212848049709085787799741343958078660989967204769107263021906293796780883264006611392367463470693372953304470166669321552882779218018747352461234741841249677906949812802210490846403573594776509411542606900255675061276865158289951935882782456117586203534874774563240341875736454602234832035471030368445083397188027208074822591118235041452133410513112680954126467030118036119314988016985221561559432065766973115900985080644190824923213188541008381418814070179378105572453435893256151372589027546754896712155349446906451384204891788916818840837880269083044482579816110517483737214240163177422283091332165307711629499961173324090678283517276017812938695147895055042740069454278914651605043107340730617342197520012450379121812779917131392776605686540393991188690885401595572122816213672032901213277586661899709213041920088416639786026184220618855590695256463528383737561831192648402522471811064067171627798643958250655121102955604235978043624793419389172518072849150444873235137445284518251412079924656528852903080598742917727479177195458093272275188328656327631025236803410551958859921700700634667693849339559336733888555626812438822229163609276536444324619032483667642827592384094643379507897244207352917897311579125010542935502814308823157451626592798444363992173282825738040696090350645033311914128475596240448202098975018573468616284789217897630433749345813785377643198048145217234760825763813130425664087270892729191387042340124923977811526480184599989765097956130950466403938194967273382055875279654733131543069894535934611275498490431772313314537668541908345635187467930799839915968619280129339468869055476671103987397790243033630121511378132768504005945487389625157836630068054966006146492676091971791213611014428782533118547572570191118768363719665261503629270010993770217936305830697821441623334735894614736591730081969120412038568890977705260975808928824188352545023666317366300472799098797546709387513123212571428730870285253592254719198931491839987998845738055101763746296337498646229231911476820165199352361782091969262689890807524491790078301785164197351927886097907593165878417354584516067335677600012072338083951953764726071238404352323162387707727361358062125704640506145928275279251257858631339113472999296323000276872621004450816519727396567946584875306791047778025071050752409495733405144244647099496673533030749302222282972673914458090396090997194861675145303666575862802340252680383236342017186777528673275330380236329542188781221554238421804515264545206364299084573685785153083422545750463121548615262393319011021045076324110301404579893432988537632279399181097540599509454002901654088496541214961849942718322535177774641845212530825523000737347104601071623547131374296925373704610075911741204950512994849115272190399391524741276233017114689888014708787782863059145394263578189333765958650672648460265369729524101800699648286721743197497256684065100476662710562449516326750850634776893130596678924606303792797016180661329085810809281066466670027905888290787469011376007456825022029438909486222669816707318616164553197151929930983602121342892596498193421796878863900579296778270976100215160379097215158886673941304886488969806898346189719392005604687325708060658915856279544248415762553472397729991606593621126374755684640780206436395836804003561511121841846432922868244747313863753677773703588903285292841448317600207394805465357056676724738298283218326552221927082206264840619435181649439160319861393579138063344531739678387410139398896522057808494908482175522844116054683613770545813506955247839829298473049635843361534431006024010417032212883981165846064047299333795027773801210788360178232916109924137638572698128420589020708728925323529107756232575171979046419170350638192965247149277344973031404422525403410118717708738062710921156890566976201222726244577635518963959864895814928570385593835926851448647127759279002124773838165172111169536839180363401602575750996650730562357139587612430488244403674082305842977265196979297828514919298893982297788106692572665673867623844298399597842027197497643851423864238652224972231317370530223150746854295744378823898437441179033621292177939063691028223414561867883013327586350749502157514502772876968720824107294280244913454553849063296722532618652090095500543449307428668731622989216251434670095784677556349021503482272011043559815972110733272008699862593367600608263061043440098840353350027260668376793512665828026316464034316423515061273425525267364028646733167801828686851030496271922744448899830823873722831370157991578756795006188060525246073533545042230921000516697504399426784937279409684937488427271565193639852173083837461453503722330451693346856588260965419192330360119316663257846002804468489663178798790005764836675143313764913356392445509360397585360885225751955943755538398392258527493697021357729366301317171275858077852392843822757054837619507585762629135885716971432537610039323883056603758383721938874869090570151650584410569139631072865445968264264252829852802914034063920746754506139626181509246335708477878530133519962557535154755571822869834638811374968936829860368578186059909315506638849111299718824805923557649364838167236877086315563021481983091513640989585684140226815516771279343870837553931688582174250016547322485653495309342913917671675138318699158523776045762187727859691729361495700448984308379022813053114204946848559643649025863876644462739497189728749111529558909260184946037792658784822609202909319841175437806121408847837429227736999197560537540629937583778180749550205729594233409658116478233943662199181816047713764688902272231602905695298714104092668724231504894141512913524557253198327873214112526687477679840558301790950321913449666732329245298908064676351078943693823778035849765980167074238179621561824068797218935536917446176717845009577711780282306825901093791896457051896512275868269772792651474042446787502721578029483124036985469035110800754414349541069567460802459707508427827514260367176125437110365418735747574434567424508077294385236963192367846338166830407898927237668935367192202527110722167962139780248879867559871844072552397845172911588817709513420102930943659018856491277109231331228371819194585622007889482585466848306296091991302137568938259049499284077369403783607358037623788806515295715076585839722089164071848946137552260774152672296340282215457349662466323295390277970615298719682183576567629101538433210905044765677457814154859239249839523547374486790526282957634870434205947382821990704122408780286890437127177839955081859633812719722785141141452738772715482345306200027757390620018785684849942237690566163078162185863055198362818587743488366587954591885958150764550560775224907328184815953464640654729033944154443888576900857982278820723469276296001957907750421596731769488211088663254262223437190325561382722166354200861596163099505715647781313907669846212299573560087598778961355079006203895915699276974486577886644511663563606455816564502668742470478914611967804112186951873882595311173357598230835162871691126585566289897451255736224401880167530513000413315293508907782195570008271091027852236831083917943553673354839000165661645682216457739510720189939076718125757155447597462367209069014169894572150274020161560034126894348104795368769486924047555868077830629228220850207989607544511740903261307137281170740761981499173446726232925999729956076073618602181373775801753335094864125988433269352906023116214974040295178319365175211418473916521396045688399519241265502879793487800291556656763971486126039469038473726256698789769171777256848801579244923887863073469772373560862138953208939258074667846950384915535594328032688311673549688670839421231002632546440880422400069754035560918850595090189470856261660370061376894341629955515331278507319815797870212942458352881805726308951445155208811186620999573687755590651599647697743829836554531197018803761524169372261755636068748822679741197753419046722852806999270493356678439242691323348695656948456816404389477704968749187091528276595891178901031806340048238669332421696588565223227394880959390341552652751830076054914280186020798317059533862489272578350675341148124316430513229109655825999162690277283969801570978715637614204451801055284946711987567522794864132301658079014547333214872911471204968052800568214148703804221574569106720438267231413670517012700497945554950696296636193266703864325476381684781194063997156564601016158889346348823428322757851143564070889432979909177804321425654211953493070534105116799240214213586352233614437622133131988115965217093237535039867075932374048458493852272545219790369972879905112119677663890130674700653710849730071215913112648502487555847511154938503871348109724926376374407700851382363568175543984082516513375067754878758767973802377532519635901958848839891699849588346373306885662489172250527865346926333717913496324375246130444327038762709574066628116053711483481953707656112382098145771688646550145676638133914957419912279021720647532149093363480854906908773447368863321004044315403125309526769091043628977357519390224193431733577566209293353059096817249305467014223992380677531643328397726558387118827313073923876179196857263947813131291993422788502733052562224252413775270047633965075690011222427525813292396900133451057322286296449233384913707059312290563226903297099957957641482555936889655172728609599117190546960919248207461140603270373203377849420619753423406602167148098729196131880414379129939565983479431990361128790977823603152948044789482207615153780565271633365853390185926317855094072667870591977628680884134749479632321353011521158308310193869837924771613684037528570230909215985823819785174464014349545454083900303048947689884563778361590515247706401097662120413697587790250936110528422737586466600421347372660296679140712255929573104478471934356005715481380624206479494305715758448029778760446297610478935221572536779928163343420450513567591924247287775422741315044308716755303394487221026470321615883670802863262388154073390844314406036800126658416088993694875979111265368977704240383602615496936271100860212324558671659991133366204559480545507122330865124457163497504068386259004302656081479227039670292654038110299129443892443767990712910483098395000138388886919246909694982034493000931100868891627541599456708070959943716194162860373226555903432097995312442060980715189159889998107872890119643195554708164889357688804033607274180404357527438849081894258305810196228537032871195215049186575286565405475094077919911974050984304595297072727132881370962710508156151807080851751626997523966163996734989597026936148386595443246706874889986799024889113375679013236049550075652490064923157336338215047993643409747831339135974262163331199996650260067411810015819845228253117067464478036822629156454109038157474889236201004921540865085781402587653611160689642513022944964456014642580324875041128303197974263436952486957033622227697935246748605090105663259887006761785434240276308192318638637715407121868372717437733421093430404387343433605263213724150205133645914665703579876149943509425507389806703199589443558340235252917660856336045974957497471500057730629367766139918664302478754706105678556841592614697488075883632062500813729114064648231160916380475117424812566596845937621531186553240982057124259190962858707912943015226899384461283969196282585539927546321686998379052973902338105970791198415668883562125923592553356530756323373347963211701324227153645308773844610537096552917367556676390152547574891485603620873816325007205135962834632673135267940748170559252156651764191146617576722944626624197684690510528859343527241941330882967238173477765114579234762331527823600648476704429755374914868691368812287007566515586644503004954180049467165798800128244593251700268611075815445717567005834810114223795308550590965571876108201552925908470015000805014102680485885008168968397555169589600304888222360705229082156170291936820898107587297536586740230723357182484680232876337748457530380421298480522865467113407908828050090727465725606904853817439018573665569402476465369727901783879691643338350745910934387643867290793260369986797939773358963527012130887882421288331761353846567156337562753566372051915730997682143409906230708665124366684809182631686753100021954421515161003652355236410003969871267505003181910185663757947848294185737059928762904427371663899802251446756339922186256204841759906499462770560863130081644848362354786806365976516992193561380232758806610798754003653263109549075663699937600118186946896256595430082060430981667952152805369988614223741619151909788649986614547321425288285769848180398880522952427555025204976810126471749871529355524221726367303422602356218280846727797496519631157329678311480016903540147516420280378039200536005751732049362932514811209256801807810031061372311906100974073748400882618737087870827375574578198890149264539913845032898081581502682511203904939665461727705882737992550392842651228431470352976635785862342864537977817950661066716648571044800173208360594492025681550788240004565870863321423503088766186292220790599332506034426885470916919943112624454794313205535770653270398281667474112545481765686145517133169886901752468640280032478018035169459221481041288783680459911837641173635094645353043358140071261429616756417877351024454221012746835816774807507681028620773017268208747869461909712666290969662408469878296059348194054936767540989645314117995737404221269601131337892079739181759582780764250764987451481450606641382307228578397987016838451951622960883821594092637431712822966245806242188375128153675934665499323938335430460838537958786160627559794020562191427729924817400155492481334770147302400336467017797714607858413831433450874308129822156695447996470459832623196544055809796727352751007628113674475735079677512621293068744880184823863101255704920286497304993231839981441576446812211684484102640448042609321521979099340487536201467791725029689957368186988376316211067897142899247491386604239353087457982407118378531402286326357692775008913325425526685070253020397907460292199034685600737153628186487984880051583438196021705819091523572698819237422700016645299420036446902377960307057954135472204920902698067443169658264818614759278862161288406029756009725104240872747394201141018442723305767890118929047358234802901304299068988418605408173042752249944991392015247502737034781459057806973492681847647637591482059183935449501068038159031546941746975754843771261247254404911736888965965221841062622134812329611770452187635921255714538725218301355985597030347090774411193537391632508125235012229319912370499843141541382296441091337994308863096490749925425721349342967260952250665266237400112294408142365153653159934515793071944534675291161193708515520111241424343306428775862194067175531708602891734064140821828389515131207946017783133105797826845228372132222256843386057336859055295649588718270318528600907535513636724536840990406108604690544485477474485038622918074684345907474018105720944633750203138656695405812546558398979924107830883921288747878667105548487033728391278525515961560639448750732596956094719715083656706576634478653782787657844842448580370357273350988677711950678944356080820910170186669209255532586905302090690534986870909996007093744290154916291450708088550555884351617743643275205775270967968585366502679306904605780514597398000006456582126255603882214439800731112589462680819316524558721957718963682115144047049889500465150704156382926710582616588372206051183249603226065730823348724141270371645373603573480466599163626469689778695201156547365592004890165337761199465714403965764077701446201015612417833996933517947653999335918880943270038068964421910739729759867418555319933140106193606453658073028845707345913070103682715959714074094669515810243559321557714963859680451347605764740547173080844879460236126406733352706130704979898032207576912389586946241670450243933176010866422193032265643262675818315688819233584094982905342452448947920541510455756302787128510482513792176707177502050410740319821363058089932210911551244122246346934370360532923604194438712827487387384284452003132129322825981792914661249677419793073549457425792036157226878622946129286815652752713388482376013157876828166412040024018297584603743057239666217393667056860868872522081223666725086213069416252510291086971727199631807011950588785539074149861660921123347624944436163908796097816814707872089344234246429885233087886555296674267256963253481972612269303045775469876269415165148517984744523591856798881409186370210833450065139862850528681006120791229233334031384852807425670215685543116492933848500947813462394372037290902619069235240644137736676366620709915108050454148734391347847506748696606963472273741204414032687232296022771947318619589503350078532208475496262742814518704082223491670038049897900837130246623904489455233265638595606313146430461548255825337794606834458433222055906650828783162412467892682731827482708629655146108031483721419448788147182675413596126002354640113595561298253658133909669292231375827778083110116054469095972434991972473818562948031601394520216828769294839930706776945864657530662973688458283165873553140279476048204812440531936933640694035499311036907099951396496211357737910646156796376014099801825951779126539425157085804752494503182283683296324045843677604610366604931214008982968924724744645104253383360674903253817786140664293385343910433409198686914213068038931278195804394905699905700506629003642209859332027789568361035909319996668944179003323924549983740784685353435166808377137492934667875599584360089887253459585434640647165950747686919249319442219890029759024125252613375016266004515763101977667074240749051424232918210767694455375260441341253206000083362123070245773243214411755476549242178165871106967109230683605656192111628675197068104376824268987821077706123775069918235797070811462268753064796921314558180715710774867738577491142989732648649906686687209820525141894795824899319545458258875179558145754481803725081108241834125323492630833976570983011694490014227304290764733376090292528166958008825353218828037306177296256992972273461101716078202000877689533034313783849683990398491396608832208330472762597292440116437879538489480733748460337476953863219531884528776945448402927332170580857767721952324387681097982096400618947560641883976995617704870931972852083302622616045223662872438851961527448501583623545509458585365779501440290376670680097486668844253130109560731870575436356376036007921694145504175031505573920713888871938475351448938628000903258149676456732887216691871193654911271828165970849731627094674348983872469461144842230111444843445869320845044775979659733132917675513852827901316187321863405167780552134106220097876667717547811830976440744575674651160575918399081178255081694312452106067479039072636822005462846635784360345211535802428496652879976182799560859083330072066838792070943065238119278510295249946287881802369050296441371261895278822121606088723133923731413875517041807068873375534716288914373909260360884008570799195229703840490750096407694538012880265447326254608524821035411280297710463994822704733217258414872002782561041734221189127233449210706540848176099272285303170548817512187337767541437213814618344735967992500117944101778518499856903839240309858569967469431352483866769652579326313005230889523730583876675984010536099669419181947873381684648306740262661370730456261461122436695376061919783997434774119417617275096551442593692092760681106138986398560393864725357537919319596489049659131633252424752288566476635063007730775226138027565898141555818272214957388679756863921937336234621015100624748599612610288916497302335826166884732195335695442567765401980312754636783729505583382125251524421024708967093222561038512345200337578761084846554270553939886590194655477300221133462856729470002130916122559291789945514102334736259735882465267635576768753008643628129400138911836239613376475417058048661966605077155237126527036009605463056249582358661770960141370825350223747405648289401946033348453205352676390361598200079749594735669508154816522055486715764159471460634113660021463791944473477886794381416919141406821898263204186517585017741043145231199634030293594893781292519252369179894620133007467819747396283124517203963762567856055935570273594141294758522858822190347655353833357922777400654098440192018382943087166723652354457876277003611052118861556205186409082413959176677142041883467908707162241406518557888953763997826224477855807253302806449246771249970335810970082733204280421903219564524218566925075153389281838164857196588440131043161478581982659153026477763937006758143233674335749291666301851043890178556833240857171278362878149416118583211686390243243517383053083916790763595141474757552249540415239394330040766848256254904786608703873031172526096278983756393769051855954434436260127743446038207623119996988244544070899624658583910109747287865586909506593882174231424104267548355650060964228365044909466991424947423371746786271439648611625116943834259582762654368754365998653811209527938716708777479687263590740439989660361219651447361503854950188189975817268148597581505385696073078037046871052965100650540581148335171760599279749377617251062833483818858947560197813836600143876043949365977478439305374359461494211140011136594421139338761480047928257089712748336203282386939913043854193539454376250685614281420584840428732797089495772527952839547425763794625966012059383114612111849175042503793899471807412277889315168430855394104686575820889804738124798639619200010263581179986722127405540747498438477405930595749953305872920795762699595217019088350148692383194504563867907014973190439689247278072168025697149332691292979601680155763473669790904113711010709962404056808346382791452743045099849594794628916298168588452083503505145552622130658757590177954646365204145498647475160079310344915622631482048706417547360401129594694134758400623243107688684620650898360832907021375369675299371813265582938663172941431388194671895987017206948604210893007817444039930990568390845326037668933597504349844834647657649566037410039266961722022143099672114021850938851352255274643765868493889807392935455314095937024449539341028708529430451076527888474664082720474969841076492281481588767932405924138663222984562909992221955644652060238220122615892949982557294854223510013055900853081829758762813682556716777411029609144993945097751082794132514825333390442633503708384227620180381206496718099660406598751146855678252009422055009096541362402179551564166124558370823855920458465910327580538945382337272086979729171311902021471797193637995603655258413449873734380944223914021954487523645942972771595371032814973226187892919818126577298183356581732098820749364420288930478519276136812266000635311861506138102044414791437313047930032166052810724268842335545130222362307000755641157498428948011097516984440606146690430224423324082940625562747854144168102070787297919606847512173934358366954684513164583826654631567131018700556602461342247726335241298853828228171247477397196923142196967735201624483079589277254935207139798213245688213086066267721954175315956048942983088300875830620271637324116287353963971562102649901488434911990262628331781693134769477164314732141513562859420238175074994469701685596502832530802335310048940694272696326171480569995957910587774447236422304087198299413119770688888113150999245587871250611891474534973496095519158527659535587342174487971372157225160114297587558371309722888799072783467617614870172967890455550260595149705441597520317117531484625695220297332234955535034314694250967191218939277371928001315756588096835490144627197523096548740684221526180422542033582308021261932089206746203858720025155628207250600368945929161594977380890773905060029127813878587222415327515795870283222049416458205425643109246502159669531513992560072743485409194896633967882901725808408666341794170088904927429364881772660645747115384305142909568765167767695648201757372532292878826622619694456728336145709417529860674626168652813525463874191222745780870442306758373068267212201885383902851314876672542563424232038722570926350057465193494229848542640553034492849259086654100742300043730742252089248148563010962865010797625542001729832302251190138907171124064888700858460440280065860010437535517655015644574829062752341527407690618401384704563765955322739864269408600811953673547252201990866046825682743607163506822248254662414491804357245603811819964774999701267961165583201683838191412972403740812158119128113282116081354268246730290467651604028361698858057236029752824601918250851539373496416826666077644065549105604322704972835559661091541431352256215228028873064594410640483774700258041711046153538737292109298869102691364282324580455743545982776609801416708024227764856966476395671582360477130657506720033769190031648107365722040421265313743282018281467901931034260960260964058970381455376305991161614997393015747306093603625779425304158503729812033825355591948350442867343661986133470755867655259973031185469988063666457833987439898184746133882306706248372451348514855016858494648281476341993460035404735916386914671879669788902993238968871227472405831376994535242128875945163263705121714279768640791449777881753318538798028596812066698180232150723091421609649719259354953016184435047338963814063942733750303124008137601940807868060925472540755310002898215268934036009018286945496858187326357003598064058505100058553233532731269254502398341128983548913515325201616128815255544321051672270834113360987135878613790061231682319474259339105258208814174631769773313765119161009571351650783446782069083615095847421228428143566934388366540463585874416165404372366692837355905376723998102117103998136434595569504117236058055623606140587872646858248388951153333087037107644542349912391671026839198676065083310105822279315710444826985245083634810416538828424142371715935160839556442742307943657591111125007053335462261341841816459923268850695442316719829713624431503413140499161813069919432626412034859750800155755418457395793402998468643610202312234593347122044524361658632310125564240364406113805093366280958551461513993993481132080665023192473246028683231260539920310063835417819958637250532842350478576226414425811363307438456678698290516390299656703502354809499745236561041562683824121208811869911453314885523553962131539462223320642075456271411180677473551767322041553404244014877733242700159256555094406230535596927212434237642692492825340221772828330211295603150169220781812163852675667530918752042060550945300550572482914471589151984878226455652083588432816220278122786024102413340974926767399259733405275294803996174044244191678089727040206960289081442977811345213957565185924590598378696475571853523508334224658024851607498931633494511140254166929984870398662963442252823005964054029807596015836653990707113937194669148679307738830967875575708910241791853724299906278872414106148794388848169407624615478149745290600907482175926538421480606781172575219015636119264744265839115085372539661756912246450299431274945385362061467512343805617059068946995745535693538219751711317655042297602567486946680298036130544254310435242763560238635437614398384113528897932904281551088732822918414325278371336843057479829153428545467111949836588218783523034088244969249795470310271268944716230880741062239636592513083563107839741905905291879146859066348083548831015659082762052448959665234070098411012855365270773956960322522549931204813495775772526512177411000248144866816410970213546015033145520352410935286628526844634340879694733080843142488840892874078791876777993849463096865647457512011012395323326420799547426550253529889342032313064431486567292608179554790439652968139361858151285810572470150805855824049806007228105638521357463308803787160941842442734258639304853568489675907051080489790883767770607833269469331271526783590819421813556164966371912792613915263927660105334660637858304987930919067276818266039905728869930864355011933103711713179132792057419187180132364731908312148078929749333499041476119692657794057106257589723498281188214697860627667646200186081913725240073475684452107948930201700136204330556848305645036910206789591135858725977326667614265955468856030231957282367883918230842872642893092648813724029125457162941814768331498217600081873244107629509396256540474834223916667393262827792065476650771734064297754055367373569272389990693479531537067492424008290602459278443350783713667800141905586675733827602687298421849098721276280204544750276822954174342704118281820365947304793098156421625893893963155802089417240767234832224472552020955041826970341956730913806274571143721317879638732490208766632000840435345506917149771841847142448987653676589289429492052576025383816044411095207642956245016297364987491550278976841518162994738192897448314872344176074273645430796934713525045057679967447221740012470180630807175452488254390628922066762133847405572437756396946629086069660303421487280957704879262760906168125766021203197717840020067641031946812812506354451986419553440738047640303517848188997746502121483153970117697900428535766342012101447466725986734349274896170823077488627475530837792805159879121276419388520077587683270199550359157857380134443195684543827570095116511534132835475296579885700207308021122444803826859714586101848358983037421429288611836809273035980971963870984034915374467216310859507992382329706070449374369481412709067236204959852035394542966823035965360867115836858918093523689529867883140521088023943767409485073090278596423107308790568618726721794571146133647360414066019395164178172592184663468034440043294943892075936884573323841258765305928841066866484130833865122008239024707474933716390540005574532718633109946416371568607534015335547208596597677229764922101045206865517679826717227174824571162520250245238076312722603992357900129911842856745449891856406744665356929057268933425476697554433336458871473016796071363821426670215038806317631677858655616457024339334030589666029887444944571283625730976428504487455282649683073141291405729799607526184721409327292505758899395572503938505714339069593607469271086987929557349596980506128006339201551540677660978180798889459119090417610540671637833529998989044227013198604229079700207488240493349485614318562596442044795107970191187532754148936646668650033850681147620897131475642380895945993598104237667495637352059777601042362765676433050189656085429270237738677031654298952081124718215315715972465426848634072540090473265696606366969331983368283229063036825033965462630627046033086041214593799889689387967949326602839478422274843722014332214114581301461380663403908351605272938297003472594685159451734904047747020067249617592966614723971845054976268935944501057598468444019444970559444031368056423176449721598214664034502977730308351445419958488877591904578684252698946275347288781847989221403191805670711963206247163992134837504077483247535522679380831724117303317040543694938384407886196847307669405440289455523994192028334903851478734757256918027101175929893431821557427298721198864658958157780808283080672068130923790049300770994764600490628597320747413641304757547644683891741225527600377547329424126547017423093098260763269971729808160110604942410676526544094645903994106205653564915364628766369225046998957468267227168239880385748876747468254237199426043449953708212323690746728637084124138580063900792568291744366672795869891126842010795386950359583693980397584867181633229501073673983984045718796598089115562842793295397077224096731115504195487500807698144905142859117590044975050651341410085056564242891512217621750733589783168020288201090529272963874153400235000217736369509596674384909085883097643532010030231853750831713714361569638514946028306730354252749432105367448439397164894787318347148153371215040241011863349098962252865771700937540402577421511516366819719284854581241014753530849025855755971948137406085543666148591418375170314194962360746874804230606186278636435861577833846089325102019776714548785548251545433750531385784503475946872369844397839349396108699613554095550257104459215358759452932785694612089859797864489844895700088912600522193497807281349398505479248239781441504639151253471922389644253453813462823010948136535846357223384333606568486628876114295359378311656566617364315606687238835101328629340569598731296553884045823242288516852587733331232154662002737898154330416394285756685159866813018674044162388812497406425593283463505955094480045797643018067820735599850199068755348065131276440254649126762430708365060036410215878042594753263352187332414277929472621111620784933947667047240286992835407055986433206662339765077742521667504691237351394190330958782712601090038024888689629746156289336649068313143257290921984229912769523718363565083112695213382711433574434381421614405760831361488796595001374827680212943813986121348193716117038206461816594235828225673196762061980918086139326817976710033172019186536409470826728755008454340410107962799443063304122658357698434921138055784910571325307728581984032148960604934534074267817224649338090137178083457448273732883156560238853236555318769567402966440993276268445053870634348097529189051811704521749574306061130854740647177884495374891672808638199997953751574928967602856358334024372320911697949269830929057686526139980809209957214477980622441212920664332124009175188320689902518063216486672387656337515616820112140598999964700865466277233507484411614609815808254084270576097241940303242714722466212904165383040664616680264566359531373215374008808349764427254242841296738697679987929679786155726940792415606157940791899534509336596194002638235900507395326342815677038272264965403613133930009501338990895243740700007916966561398912171875611530652023472061252484137106463813992051435458445521312353883054784074590301785625056678429633741649173280830500634070691143223462935792724698226759700857312807061511228553860685181186588942397804915117745015991351106705003911229372313433240664893391386558746384102605343668044944638538064046058366059862733883771810345295507202527818841674237251474115580531550492044701063384323216923997676116495295065695784030887666855501585596372694449775786542059311169334870989472356299163922870041114034015281017010833411193202015424745110604427437893707011318366370766398037338398407111373166183152086196519446061910291792813057196611341824826215245795119715120380374106583219748121271058987928622998352633500676280930439299365553085238909830646403255715664095668162595835252938670460066523263976615924477770009934376917634508006569482765786018483938502211632846783879150191513924599416442623116854922193262597599706414953904416718937070993484786101890063435751068291413176104404536182861667295073185602191519636060155432164015744861481378355980258161232966724779520954913170034547063817863967979645923448187363808756958988868213714179519854961736457493345213770634428731910967587391286032933928265536926839674223032054244731949697940374939416548253357421431307267522788114863109416304125109680775929422750552693321067672327658516625966445502186026840043074061056440890922888361708420132525708657177780638368281688402099215453577041641333188861410378146815002498527075017377131745409918156735800539375281547955988295655396222125213731224796377772105359669692375513653890942354907285778578147846350336570116193173600714124132709587321176369997131138546390338297649739696065299318249491149376705419307730883164195424331456994027833740983982488353564531458880525471703994483982688629685013555426268080161081837966401253742178188048309288639335956696731097143841779540665960059283622017755749413262984855795799719353752267444793350282699235559170995263809880229680433686846920462440407737314027997907582521911825936954579393416970109366437632128496167644518107179624353713380447553166541006839522217029362516495039519994978593392398439010398552102275776153651344696387099827230723504297659934077851016424888866597894425064358847806330176696641012477210223186325396008894407015218155819257936344369323886883374946074473450277794066348577794414717533926025590577169556037898193934164281858879698026961345983092732933369820098046741868375508321123580891240842582611195416495357412410735994112443262688634382818145751577191842668813356679414198021391645144209297350436883106879140540085291352283471757807641669125063630184437855334311599725767596049940076824671981420217803202297038232505123416185658789998121295996402216345504370764964838065469221809802486998094992078817711358401047243146286941114502866682739918565519792750326486427426345600821914182514819804548934731805358393690948739424365433103217273256220272312843834403500386241566152989586571600370345344465648016190654273666893320202596203884428329341410162966154145127070216857378713910552846112488223553868426268262021163087565864929106617066331544011849972854701756024928101109981519366591293445822870844801376963692701160180141270663714474441035493463414817499929228328463464808936300792781776230367760452395265803986801565995312791129411839024195908700534115190999727614022968530899262451813229905253739905269309256268247135517008933529586478908971696215970348790339121029420749249678020285640266270851724483438668316764494203786821370684150341167937139906412790772735192911832894226041822028628552038064275905029612078126609995808401848862275525816965936369800652641438881883762909920062973915206656139095628406622016730293350539525873722319072022552868172446586943216340615456533066931036621174718245677023577000762718794505139885820389544801219745972567900331107509387339507183652774419355556596708084694243739981790793023326496356265238325564462734122048722615070727982578607133618624793654043511888059526633046297493677007095522121123115681463503173095665738829377731006182305472739361206221188614635060408090184868504904776764488675033731579204618035101644820024365202708003421234139789103504072508029844167414998075653773728267837411134366795134863305848007071644022100670211851280969286719832787181604469842397420128428984021488868878065628627991738328368850526695851936227360761080289125559665022185510221856194028732521121798691982037734997309715760623715911927468697582895169520370335662757593200223570014079363546441634661516716020601724415184546587048297663580120599631811595346534333922078863505306622730818834317571942130510890888925162879670429111397731763034283291788432780451753062623289610481170919887104546256239552373421306765584337848722457525190748431015668056827953791864679235980442409447346501012895335705667586293564096719883740351265081483441385517653904905164420502264237378075429344718826218206090197896218969896250528443109117911126175071192684896043982660008421386266236156864622198252424739244065240040679811796297118667919510172694643932265832798609498554744727536617866502971264700551889999844178293510705762886312550116123025998412300008290286205486995438370622208524687682737463636761231752834715485929024053259917969755599941905330845779458352631632956975785822238650309143686645545113320040923463652145174003446887209136332207498822112530568628839843467395149487352699838998455416003494167994580777957056403812773119944350749526721572030813495602411940388479607093501837582197061250532795398148193083551137879796127304030595444136197767880173350421159587128822992095560885168866695150231724069533613042561882505872273224620787933896474584703947974660332507956650224495592077525001832781767662638866340830693774048152334299633488900432118253720555850567633182770370922515490543348498850969211391071035278021237171933636462357968815697410256412496112601925451628452163222258751580737942471248395092223358754380164141389537905270928829011591928360863614048260331284959945045315630232963275278678814936934483936365123948456466164703743371863895456687447810433204426391179462738637906723066504997597539553043351628516819139506843381155284027913977241016432674046098893448182857303049003920846416425182861732570502683049665044049754239081480624668796998175384901182162415739952279331503259580176604064604618402008397517387179056574634307266083605122009907122437169257207343340058665091362367857989307010794645246218844427488491363014862860886255142022285089335977974435983730811076997923625781505103125511826069483259063337613076246585228190686395851835677923220653139150409723934200479315921802321013243628055674251459387980197426258404853895524958558890664003664910535455945289100030040779256895649781632907079026943897870299255794047606139647142050900737650060377142547855336023093733819968842890846952478293864677142536153547682672051540912146729189457378483226628044761422674146463100222671589342589652862118575702264590709052069335990122665031006917918903416199685078657855295849986494913097490380815003019238772471071083685104975253359619944794315092372404738003807287596094463881860637923041564208741498281463046391334513714762701065370845258427957884803037452450986530896983994191668700608022955248219115073902165382248782481290415620846693377647207105884474070745972618597656527603451704620163148760086581668620036812959907473331589240153286240900149681665813428672950026296173453070384919478982985866316342221354745631547615125381881799139576160871756179898000975622906462478956638771640569136208740811640102646423484166809251754723228489518928428818286173538519057212449487054212817361616250382818599723464243099680000284073450454638868226506026743693285199029306531630718795456811409034855191266231640853001127931974632326773520297210104096401421852484071086778964673245975410281863823715805395396182318367028136992339655912733861834598899839935780160733575719330579501862205951136924568906591084356953850085571838077138259544820557112404300715935673256763844958495475805957487738656260747463943795286028767380424413766529402258097890560093498577709876188346955978148071254079822135232568795794397985437410356292710585037523621128111404515944715506146854217832683585459106627079546032916157026355964123446088340623324097923146737886987256097885462117510654617253342902284471676475712990514148314853321575919996454395006903414638972754061772952024965940028473815679665373916821477250338590986972344168885646676274606840364999070549546896331142081444569964533823478839094509773686184433744577688543640008712395332657647436193257723054385786506271115291706251494234402301393450214747463427196176625167017909838162526824122057882786177616777785228348871991482007907791903199990319915375416317007162534697433025227741265522239373909028337062768022592928075595750018414001772691219988859199115568530469156356551988636092036354378878603213167887036207509460277815364125388619400950250687751854829726114493102118902361699692725800581284374300305838723125777205519560036467629007860976226768594771814706774919323861664251079004195067924923818246197080731651364063102460096110042103413928865289559393261012939260278565377395471583232350510316144240500454511024852083961392619090147892819680701030530806921479776861171614753445744500986887922081945179487803805322554981150205325584431760026924283734805540332728463273434299739779914810648677436131286083893614142970571249762406370670197282171325298094407776470742433261094184818762924643276482614644038952483114734785420700770522255679440694381420498033099700963470123594794414034354730306646464641929386704853794928394128778894033233139941835143183928621582348788878062685308598637586459281301296990550793659220492009705139317152839857389269658313090847955047483153500009905476988668091842006187383191361857109857165002120219702576092181790370023094001939905053493911650004501531215032431936584829226103314890529081225635340199826058402443840106291566190700727459236367628008580807181532128166224036498867736193887559391583555614450392590914681547959123750380247395351227998213699812887379918223244645720514454938294294560865012250572840429573098924969382881055601246655210666303292881259716660520538930717022693328248179884046246349558910681938593344937177803555898469762755662465613335914746680446038261896403805125063787198750671226789702653604066556998757357963667007270096597436804693584510096517549946379601412993793897271329591782529692196120864644630582655946456287014365473690707282558925302256192211939467345288957817134666509414092832347413364897775231221813010416159589616454529340091902909085048769356534706321770858093994642257018563376287694356201769286112694752880726222164262210004558720884766520591977244156722005485581426559643860237699858078866535136401376423106178018512096946889083237871387672667228603430609582921319749579170201334992826382207769443754647690626744191418838787379251627271934263348076749791998430790484738419466696558057936439602263004355233146846218097869486147284130104999723303301843224489045184620711615729077550574136997594720270057982726199276739898128511073460173140112021267418368996467971689199726383738003964513889742329497393710901754593836546451230373710713101857312751741385198017941557939194237482034348501495582389677689081134602827168871648455757681899658858022944684920087225175732598446712035929134041315694663405041408318807402533043305822287554695613222247650108037497153285001821981016033389819990900725440530703350303300572728455475424023684850220998621693565405874276910875266038912208456605909962663463720040288442274650334549257773165422376655698780427127968947572051968500019552575876839730153088087689936120828692910373754751089879339692020978555877341271921596405226101726773228605153130527365322585929411359888907189357314243590751408240372731163394681441556550296167571569656388089379017496247243712141874920848523667256241950198800148664639424095143915760391119508409996933724915614638630896137657467996051429952682640065452835241347168226119536134608035394944332585346814752121177952919758774951521564593333026223075698509915763432662937929222847733419780030576666855229797231550657706048015576855245773081498218205304143393760024618540560286382846176583852829452005956415689831861182630914261977741501420324571433100062810043224185295868844159353570109987995921574879717508303157192719435686459373286007162129294377254907245326452443671395860827561093083230528882353181104694846977046765743361452592072995753466212455436522499726449907741516757818922488977033912760209578345979579944508145565964794294909631937438528829584602667990602764402552680990619627562773010189207120513818445028375238068556089423528569752037014132621967160604333345828007015516637450820697296828122455079317384904860503543627494994077031611443547199825671009203736763540678275489677285367621594741720957010741873275025566880559130373900427213718430421189597774609991007890966601302374160823416720855995291933512173607117364117553284453631018347431126523683801813523297260850727466537480932399516756120740798215290770078030859849410362314867664038080672046478224567369028621255609178543788833562021539775375108238628199890548884628203856333508093806248485188079902258938402142896457721562620711418461137680661038630229976154224611607935505673699949967956853158845780975175031805652467982389285241692077892327552886131065288784961584476495644157897180070397801881632989712370307349344843024992460696083614589333578187967853490042200187455656415851943600574916450338708551435419879393804313706681688733372636113021702133200104866661404524286224123243630738186188651218552216357155333930298418653058925243896500093955811775987085833374841818467251060325398190270971591659266923289972946626195782427639824926459588369919602091935808083124130038930176673118221611631721917420677224203240060299854881239826251789618109700321098869879138517818263937404279614498187748573173447189655566647974890958826584706982894451875130388056386279493388967640935019617307021946964343601875751735115693643743969400607872311803974985499499459012140896662464694594775450444199936745297571430389180867991572585435721718853781639251638008818727289930206401997710612195830975169949555336393814466549673825433611147497699418345178657727939807189270071713629117454096781510077408548241881560341027965514937850122821542559265477404939926625069003224009781656740960223284102254519620820725405713525975249984085582809535290874372582754106377032359721635372323335107284275462001743325094747386713865804815696457762236525379448934795032805366839468451137091210235109606877112039703667374064341091992571845149920107505863440016711660544328233698331767424156557188009277093885782227924700690564407508100625641126253049920843432793756291754085686912465372874660382426186773341692910078908600837800231610807952194990331928985371448369275157861232395608659855092907969765642666746213328567415773921079302423356199790343700934693123508824843026008799247354562126109159664811169867006857752742176005225982782845527042642234743745687782192530228016974408016277150057075865993456246377287369845059362899907890357292438253381110338770559708847745437347844420690604648545161903413317732954505552253339077753736212794087674729928048768717903229443798455410179803890589840939603775470573216987877672663553136262086467792158055685985196213641779112922019182174118642618602911272784431043536760039375530168133897020307413091101809995583050463938072294263717163793720811040245347738552615469036637741631365667047007543401823487684998226761266437453667678939178925054679246573853690763887477228481867700072898730805839247013486641396602079537795790787406275697329991897285160681045556148861171626487129649235165524384913664582952363462468322664978614496155747667754486535561533936539522582916571468094329542440279605298122870613689866268852614358507571702008989334299927127009295284810646456405726951344356694295049708532558640772432992055656721838929843044422548535765142249876067918842348815216560730057532904534674785648969844860416434935933027169669259001780751337978783368502809772219327651826177518217105072104882285623624033986000156048005653920174770169657906152642214608771417373451941833296491418142782286515626397075803906664265519791609623187363538329934328418731248260648779286540380996594710486069210450640415442088751720059615324998809750249884076703944706988882808643060298623157368265367290844939087972011483445096842959438462848688653206632828951344620512678531803446685384664584432549430696419429215594854951285709644982367807615974964731166819943590647884471960798097680924770397993882956857490870102765822859351982103403927847837928884758536760659360032877828686336196003090671282794412943615898442066424922240191151093619657563903475011859771098588270550261797139817046217302496542617940481375885308097747785158116505331309127792549679660968712257690893676410882068219174339165881037973939903003643158083828704028596218756775957450899947696613118864999905687365937783722963680885090074997301054599068822375918154370431640775861076534480358456086682622064325765682855075182423378010173216558098954560647894805915941786535935115378180592409798308998137857171258461526444438780187669585137937415423500363749461401134397924919158482920338517874287535989595394759837356558816562115293165422144190109446175353280376862966465669597208000883899965200068030572296369489370997889250577874808010078069234703079790191981160292466137262857929293936791930634851855964024003188042094309214917544581028448236807564142812335884961922953770536178934826139778243972982017019214154948036736831048839447552710232860905128502603895213068997422155285207653583906843022456596632878111412600865709458769374929470627511847507824969313633744208125675223778294950942279734854894523138492653724739745748735673014133105069369172323988302075025739058289635807979192859267960942126162387731817499462840230292340373776338094252208592422604153306016651710266134985484313981335671312177548970867431741018558047803996419836496289507036152576293690511871610389086627302732126590232716609699163685211012947018686550376796981908714051432830749928858654244617924536249086318461385143575250943387948145521079919237167946690385760221190219539911508695037581548330218437244908223904560015087604020347658600970358451418234611823829194715757199856073105905967416019028944255336977746989620118380443983236933849022827489127369651502419058183862402290026489219040137087852293451841194682269888108929622394440682444662575948018971231442313569044888961602761792514037903789429989896544815716239609123599357795780948735946945114796750057389655193866197550369849512879078120858382945453454074006311573312879361438700737970881406330177509525012557601181025720019788908803102697373218807063109402435957689129077458835934518629473370932587427871966369615925053894152208356013682697973992851536616921712549792924410090083496662459982063939431559882837132070270095596053910107483642607250270080884024336833051807236499889146858572701224673571219212162295494402819008507417609063129363109312498473401447391200556790304875565325368192956877326353972911556628357675892444031342872560662381923149938442315859688063245863312611332011126973053840251201238371831898092029832920500700671392710571416027099514763220599158388433274471057953988468206028782743120914954143235393499818898478760437530703615596104474849268056591399497632480490197136001267917840993156403032055477149332473455412048100036501375308839202724042848866425084676892432347039428497426453476494398304380869840892994372286071660174376155226175579978344062968704878191223438836238439163597676304189161917602089395941238796559488069309757913972961620696090509523196091058472418184561779982131687606964838422255986421470003056530951486076327904807312662824266064726391589289853189082294234758976180054246517484798228211969148341440076314118097250407235304022105828415250649482592145618760489612721354481887433312452614153897194922164070835755492299388444956254010865606714891793817070204148243376292886678098455756640196142113198199252376614859083122072073666026789264799301052256388947149014688166285532269140988885834120191847177595840303603499228021014072987573581616271057714075774641322006366517012904163907526760955694565547794834294091983523269590132364875843567162138920431789269996604853946999109116871769648095948719967123427300411296229076662462028856793578330070868739540937647105606255576680212908441144258336648083092911863528584577848392736900823442043881824399350883237725259293990360387250702420894423840294481656438797926497872592417810611248100689548474273441901962829027922618859646222071406900472631316172748791470665373780979955572221805812240742867874931872963957192892414886844561755305939803429741928078109658011393343266624251135767755174776087182552049810781827364541801327910701651815217268117582670911911494708767441956063448449230138289407182479175020784724293677515175444627522901816929981139587870117493144791998712788942909951695870089838332634623675319208024911884538617425316414797994859589372251942213473282420411785488451674703969673001004308971434112859674057166436588133962031404974595829861161321226486065506484662323923987070380910240298118622749619238881921484440450018820196092030735941510506094819745846140679917447582108088006755139550227816506281267917292419964109821026295649839110997269320702472820276287050412207711899847741513562689342518415504908937253827585325127234338142949585827086254975889062851551568818737416897747300906873892644018677377791000644238894621192468664155442540792590563255062711926525776374402205633186475102620715396124570027929286977289515818940513997393111006469853658035973938805299478537554421674273828399291047588523004217361425384150330161732573679876255258924982451672274886297737473238325196031720961245217109149464191758967931874343643227782752429771310184056271387305194364600949701513669771710356359339318014502335455535321156117236271926820080399420985803042324243795354537399848060491631403705401920739376381867610095904295227576630531709591892286920103380995514308595798840352784246084668284142151127392646811904325659488349592982787491830364866807702492085096070163351032446337502311293505987617937649042146071847700346645716462931883658361372917146593406284444486755868043701178382667927490055013217187957694623254581408004191824066383112465510488191395127551765955907684038849053293894006259027806972182849306753379264644623725461051944996607982728190255817159174361186060652882351600989166669443716972872705134512208027767560998617043755677679687013340453088678829764847106770211317229546043255351662371682178042307426008480733472258801778681536806908559216393634893494548632024307523390178555016803185693778258992560672163262318967794608545539562306697105355832332030630031543272256597684304970490511931915370337245966769343470542260072790690529966027039694400775194910290918321382173528412200616143809054718405381763825012627543358414715657786549965857568786029683755733373044201152899858130468889217112591042498718281062133641417342194286951861032650078704488009213537074389026876465961842239590448010817642953018718566367733259353345405533953569121120248492367036418370933524387848469708161831571331372743331691336381756564735450300830071256763163996010989112101956625227237094752336295458461496181313652047489074380520868436706028275915859626335096401503376370651922362656223240856796126778802075778391813692726137137115213609494879861923115405229690146004313177183322758070780852165641058649477659276533285364632437359308541824362858627038579810333481777822760535287430734701522929207623446180703936822458650415589652176298042110185907456275933414778238852891945218319953021852234921911082580947993057559351422118018576943487412785319910278649322543348208518652812691789142338808221701753968213467169139146480805141016078940456134478495715570453593661564749858156834023953727935176751546767928170480788759854399665371248910841745767490832488736068823728305690646745379898039037147817041143168436712950633063373557810503081776893836858515203900227040557001370781700432731648842901705019817824654975629599388218471904933778546893931098140360562428885470466527794191634669232673879515044904093879063213846245100135430828374055679650622812942826213696639303736215097558715712717577611421785980020674012620451176136834205300765989767024588166859752408430451455277536243738613679868045784980898787741657260387918751538465502922650820494789355655602066001698053758586303388965069983067495089145380862657951835081636804635887567696928466879451593512993312816865649662785275482112360866833785663546199558289162945065942303231941967423432366542448299621127949009262994325419139644166504598105303699933496471403399410930248246053892581001485517622674716945808166437106722966157266491317297856900965066221734667842724699685191838995989999635004977179163522999786932941367320379610592731179008513717121415056387793196014315461483572935405776041876009311242959163092021514424820846618862769411480278734323512854409108073438694040850791092933262200975410517115137146866528794520916602652548525132921266346764207179423091848970297772528621778189856432509666859464511306462467796912157110877473198376277153584989414042676135849211123704728683413574988772663725096247359943059874401740863619005086622811699244839673805381545280682742726859094984889428224489435620154099614232055647831327161232552707012890208852811421191687244111865801079805345626190458153482871395475099798716495018300299499529716099046692800025294662212061113140009137871924800327721775816449080471104183256177778204180198087325805276540260436732869838846965694659334318697580547211892370602782933960009843284750706567664881591929336788477152517312879608592639753292065775822740868505280496810680644997410684650243456310904452227742848734319586713301359238988935950286171593907792088088058193333656649108072986553158022263737204405595049808051434202187548413549931552684974102300309197214107050747468597217978079936188693200053111011517044618367365984081460705742727817883479769672571694093746650050987304155922698912576040936955692703485274369332064828146106279869343578565901320141417511426766458658254968595964862548481600132285988510210148713876590652458512266809368881492081191966884933666131650472431477510401153869580757986373637697255301288122396234553084279022515606254568830937532540618672377360663979060569692363013616937910305154453778551071516314416243035353644733471066220628842009675744567010935969945447320457680889201989858102212121999970703911337037840557831643995982754867820011221253072691878498793569079266153336642444596206347647998320135311473642376706415944505894436257273529403968716384396975275585834489485906957900370590171158898896903513269382619140696432764721670634717674919144156666625801386053283265704816664292627953849644514024287069005396638591740725980572628137879983720478212869255052692251693944646910855917762458757702547382357303775999455838857781492557069595093283240007287969214912076616112773363233531885273332060098284549409569168168487913176184665430935280965569930428636634217768302022645685724340005601304172295905656911674295830648395362938051244879113740865230666407639889339857586180939203157951304396613156699576032034957814733495992534153321084909033311840554340222054564167786481105330984402863199346310564223638939168081355010846840102436147559243412820848159440009484229879287771945510301560146696076013071652581285153498257902759443615584575591761483004960983012645914978853600416609075086564640303997925511224526559861032217485082027165838431993948960859386309369448927603198225065898303033944515824906136747889028261608880888857007365315979562715771878258704297639480302698327029167435317106304606545649102751384221437242760420261100598849782703504939546070066799994253802504747197644043858376730066009342038078867401178114818128987785574630847133204891590645014834077072438851308110023600311198727423252355409221890575800868607232446322840819478678812314766159624040993656415592488195435716429016097176527332687551545459470435382543220921199942861878311291615746770714414935426446452202516934512441936221198371650540543901060399547271402684008440427080297451696311436939263261958299176558922267126868649691106763226440519667903570018686998571288683097633834167038191936220106090773627063373877987250521313673804653049030715492739421945134445191501448370995025520501165769916125915900415016056030141869892610965874191476141448704771565281222328679682131437522451115626438419602211077920413070627307735793496496075324362364372062362614661875921571968354741785535961096841822538235703370521938680156648062631061215410605757410369521276127653239675775989437058368371447113343573932872758114295904294548921597907051991882501025332713157565940974725417518467703680796458238579906511828606186382444102218406052819541469368736265755531640892543658587242371155007399661904242905994799084213151414663309169988842886655551696000383822327332146621984727197428443732570981558350360732661684627316294355780743649457131615309827472686434373893107464552293253332156873068595886026145807663019634111454424882605575526228669899681196231832860430962345332335495868731819176834020261470643060243623727499754893386434006589403874320358860937975881185865557128455194992365488191724965376079569653785920004332109665237278653106242308746256950611582291982287944334579232069668211559696108674274656388458122888545773624904442394171873883686265030263382713302751692142080939248934428762410045177507555794826317942793069564442515965116530950450555882311738086449486444570995881723105000474824238562193067914575127897729671191947263130358839655148114825413384090636917524295271207934144463041039647421999439440133495512301539136462032919817670354183352191389306545867122319619261477948024072510089107820892608680559989152893318262609559236383129172990323753490591526679059874095227322785804404583665038449532254988921766798776838849444916660057211386864886998523033057109124712485623663167714252385682520953920735390614640485090452026202938886390828977685645612757801263871731203884201519186998215433748948048844924024179654091821690455480222142169948420214191345528578979050019066438874732551401748152240279617140135898741400422939650609672386714194820789285231639191482370075764934993646645436022758350716562002084422911087156186278359004657791545994986315708360660050771488192646621436964743705818762890640412359690278774295077394929625641531337140667548026317650864369718803964168169083721006012754898549336910755327639598824586022517083400941644392487505217983801253436364966172080352109224080323348529823805373682053161395035515771293277797287529775443343666177874705824969168695767323093961452809014032730031023120483789826645711024748957798273375405795733122788567524897243173432621104978508561528645410051494725380448452975671293322243263117262229019171044354866375307783145758235479441052734017124453337834563047226048678847965088907237326730210584286362723450629837457178040219719968693825172156863391508669169337591743642044596972975026970891002471441366437061284972718507950310200426961394560297676414561910344883718736638118120631502239723211093699357592120553911159943656150971154329778963080067585849606674553429849213440925907968741014737765999586043357154815912730586273596339955400973330578464491738719075378529220517738519093447871651121359175876760814300142471548583156927658980953065204309031539617745513651701254974930879371631233973274334703644700519944834755134259428279151240864244875748650013773006508418020334535018098678190621753711833190469035972250694736271467843412888848068950584282110522081950653186322994240008371111459640727332017266032761866910247541966359859954961434191852637466662972521083245905722808999693250240683067300715422209052518380551891494739707733858918983499931628837430963269133453979422916220896755531328988402535472228631255005115808336085898421365737392580707891645517065130052444088629688028497164566974786625649996211994727688771430941216859380822014349802754163504277228701394552209623749897276290973449788609926594761364144247874314338414354872935343203598307335863254518913814559310230860625523084474504821845399303061695973345427580148136450906822887722218764244809764738023976596829634682237441700957550500756469355886559464633325203312467003857110122989098995822316567529236925197453040206191235911969677970859154964182709658255458335553566588595883322385178429128285094325753833150668389777956956085461944996601552086008205111563718248086866118484294559021630306864706701631902690799430709172175462945668107824961055702034575162799262893440119612500668483789282139012383667926171667504927795891007784056910622533254120398997842369036196694326813585745699364340550500121953597714524116651789966475594348313871572694208824780440960815518976029309534657534499598548526416333022752820164009334380590278033096225690402499582959584964038272451286445618964004751386275839587248501221375452170115673620546520692299671052913390930452321378411048652600639202203435583503468653150722373536691552788008612480453078863867100726142449548306118489031717805122354545543957540669427725035207931608473325043724090252494154655631158912637187129959196992160448157022447583920159469392882848107581705767500710398753488317190427456362970689893291536875184017330418806477615770124222253369938972877544461336533955946552422644967657700914326380448071909948838480742565946524541379462732300692283338878777614922419449800855801690732837992457464936340559645250105788108878070881515882908337611140175117194352838656291310625733977923639695297224332008982444409816078807195672270701916069197703201529699548481720929861190798367807749468107777726228606339620982460293382765000514685696362463767141787133460196051269673687105439712974255928881394847098368064434814238742135301215573119522901118861035465559173242889981720398124006086802898849373803108968653740315795263078926692394255890227710462321363777503493173421732756323999532222626173537795157763650683193020079549060064729318873991048567676646868964361006296200156301008627074019392006155448403046119487831241480723679220176006638708879570000568853441064726810588487951393683098642101821994249411316428699456964610570577936913631407857520074386019067538573282245599562138683787192864655552877225431958731850232113951068539822385052510061340485236605783517533453007173752133086155716173596935448478972596759652220129579947768194139868233821906502330494951499553828306053441883276060319291606368522655059997926087288203182558471254591856778168830952586061765699089060196853073713455704436677280570768513916409975487452938609705544406836701552585780879662876306446335306838338583784267109089460210649937967774376119069402533481777480450384434741893634446183326076762937476441072856008990640808196135867919133747348907968469888541314233820745501255079543079625785004678254717419883526984492346048978652010848245748536354887191819060449662809752872327583092876430908546553472274571455522848901395707238177750466976460728337751463175047357893347198254554862100520827433290213373004910900959962223174013585255764216482257408571714175163666063509061928611820657325045438836460303854224102926446348151852187930434890315215255940483029564723716471858444479853916961737443111435973669549870697251491549484956719098254929460674068540733042657153593364785435572304105238172672231712925987394118058436674633375888447825496670949294598757696014618509960041461782468573807687308308623305678851152081259211489741033674261582130641087852246029086228636921553058188824625088211578463401485876138088115132712142479630918588185780492926605116093584271372033973931806845109687347963587318316858075787267230346870282429234013466695416895267983467636508504777977592407222382284794683388571646306729626612910803116300392764800544485633476835092333822766706025713737915585796588451224128266922990669275572388828540097560775108597107329404348262160048605617175425847310019109260578373211755827691848239732614446377370951797679909866623322718436685683244145207275940195493846757916530562736860065207414522258963134338140979900269262636509137805006863217985390832651336146638853759369636775815044455855973779246820443137048834382247099359154190365851786740208282622898459369897573008454492030173674142291545340998944065918581690917043964203492779727470206237167219329013197935933246530018289231498561930812462439550584115403878751135346267982936795749351916930582545988518757940824907928861423085264531931634743969930176361248425328459192373358631853746936496651453688034683700423779580409883132010922874139836948157146471764589605730908539954634568152692520155311958708330438183266451056532146135217273918081146760053608797913479065549969856247833950209030705393408956724722891483464016446147451089281777708804501777524442024494724823690620670449589388920436480686638813916783795666771416722109146472977969479431418229235861591433008995424902467843351015005468273261046418156859074627471961571188375286552176029902948278608882512210109069324757225657852070634649374613779625443359400409498600197114533417784295802000767307208732619957008070043041078819566193863775968541844269243416048783656553617903625159698062565389596619007872529550322105358767454744922900190192547094551043021427867134332222708235333526937050077895885868013206373937563107363904673964580568581471419997813867477939138965692083117426840195056839300641578460978150520548307009574090698450242803924617992211119793807008276149803686163759732595452737205874231987984977680778856862213856229767221672435946198473438033388465079446449157886332204821376220146840581458861801435924456007519399253505417179981976122658102075767152261595135187154344100750855069363930875258897630569956653296000819456722873160225900312895815093929596828205797787395241534199518741533970635785862436531638400630891555462748241707216553999650930533637725212283421767260193405692107104873434010624517284511677440641098151731041951491633266557276646113494353307875725587958323070627778859427059183754967090820620911934406455342172543054095699509187115002230525630702730885602732976767437737298705828380719608905428268721167251454201681978852916119161302145056151579355140759410267696254345256526945529704005912475794060144324196678915288710772150133209189231923881220483103365227397558652588822127504358818489973629254712203960803264753021189035614892671408219897835276850068887528916216474615224651798473739329596860949445752708388731241864614678348949480347083675170978145780342984597954106226370220532171103923229385978326575978870531900646946681975621187271364981785482908518675005719727294574778608285144289924247683378791784500898743605900396895892054987615690433372130669072654397241796280692579049264080950734442726081060731603505348359101554030278462725332414974429858589488694756321241984997030494455799812071045041053678594901366447906098562071482928436526916521883799980786908313002691978985011366714276018153436871228454404684965637645881307885330075874118567728493181460147115173105663990127914230995550469777622553809776663491721969077486383117689656588682870478339269388434667745430004182195648055861924731091877490905613650700989886955197491652713958507975773538244813004604032351778651687705755469268347397427730574554262885575176112140353487171220171641604755839882365958749083032829657069653033092283739347098109159889849261509551556260522485543272044986802330402573888706311931050686281657435871103777841437947747358843941249889928595381714980779164268869598844186914172834100101885832362210115864991830652613009403882751471719508757241940927623750375055579334329597309076340761595652427652774592644255690805056681465032679444830443695519355256263098522643299054151233557857128670765672525987635788018812167303772519891174788169043064307741529314605718888557504853495896150583404899254988890358460509583351565114151719451587490992965785753121412590381175667093720700868437731085632611827453072710878787336850256388864572288553048699782043968656862219697221850086548770202637496383912836763483024093093606350334097114614828945433832380805499935420759181153522280299782962553504777565048806208685564928045192471724452007922017936675296734977217152730078268478317289211648240520316209559038730720050869374226482725404680396973438061865750561144514923422902974151470893974326649700748089249823076521214749628599546065317827955227857543074240749677868084025128363424644412530013584677807209448438110056654668500532964793554241534501737861919385730047061842565037124208874042733991135523079629570512655074451241316904650240445892959635654263667280867977679069612307401169885342995855649797852266968140913638523026905723205876304962209117840868514333708393299893810036118165502932868794683182609235927968282849808033630722710338860205043955966596116912243614637533426333507382471110018640997100858886866210300059003906747518937194642848049496455899641966381256777824464575296819801022801695249653206266107170947435063602955809327489829257186198725972415991644510884190944491340294590872752019149449437558914893621504515487329468247128712246167259889231516849574491955929514926365531665983144204734698816502882318018991470738936975104788897718502018270138262554789859090204250457758107615937045152112672491545524281500667871111902213345283753760615266559971264417947634663738469642776482533673116872460412960528098391609110808014856395656889790588620299577917581888960727487355322777818037084745425882359158508177816108289976774449364387361280320739967618333078710826118906486963849103628681053915567593323886574294676554067791932408022949446423468185770451807288963745767754927240188046331550554526896540519795523085983685927106422627355704566634876176108132275078069566304616630494062917554965659661446594555778277832223166701593127485139408601213859586399126868566720829298619914193137757570377810127638121380311024102963620978449655182528536189628009525636622033633422090097491000652450724589889137464852182778285071743411486411622971107601292099189912259681929939069073233251067291644097946835789185235701725391951661468839435173905611854044471133138702046627502319978476796658709635786655130803573701901714744785180273871495289018983714615490164949492177366641930619571404087981125444031712762772531561873116666891539964095497341403141967787055097417650341566733242753498474142608982750956239435164092170808738681164938494612259416792026894989437748570153546890070504225752118818050736952554484387875726563877368506030661893894246829664410944036235249790273583144482106742670176485650379440642437864619770048436616207612341655598965443354013735618921162538988858951557480171224557662435359137434913101036175969848021680566329867115604646009477587811560934803400873666457433849581743209775191322855977761515919301829192853769473496055294171957267615313254869166995568435111082986263427763015373669168820684364247556644287126722057311904694403563940432853424015626088640250532462200986253603287011172614141260120229959752793698707458780216267659040657991395114762202899104631802152005381789208188361066549003338537469769287690974930474043917356096016890795742985389481326262877874586075119969802293882192496557329923086837982891673867769357120959820708801768083301906885586011215751635640610338116905453112128044583156203687925217855816150681850105023439856502276313095403221108392072289179563134723774361842572204556957712201960079088916426578241981049252153116252978117111258360426707475253575972942747220930964193744830620437717520885368951935796304536516119232601235601874363797586061458062756194443643781136792603171570206726045684480851781929620484867225636776166327538503105490118193863369267383299808581149080357938692972963622741260511349371693264986978157654649560976979788631997252763953263765036407612271370776869613363034837669267970014203402426522782379013788376355403100637854933217787855828552922684210002877351338869101598685246984446128577948152248412241926257779298667193683515895706126722189863444882018050099186833605586863453477056366323340115325390587335943600384262368107435013168135573841672580820746737988869718916623838292566488785520253308888087225622985238579488326040900733883544881294326825113974431329079111609101030302646222095279263198518286855085723271566529183544789595616140547301042530186618202478173390154051401357546309797481575029354144352711655934345559492973245354780412834601478069745041494312384551814604019472628877934380945493765033761881320032487603327670320078924371642088725092187956742857018702218128865392578719966047721317407062866235556900713415430457526165162947151955687238045150083332777720603330052593097816070547821167136962759782009956087425155685326345933633821221763426032272606997004813740640177514512889826932662840998053072782795632336926143027679323672091944052752964510744781912955865480466419232422195573842487450954981034566111299040944884605105100803258325614088481821154046542774323857747482286017071081922162959136765784540817566416057169169708104711668692206078789822385397205990328043400757789064959279497667997794837734926931947383736681277984971823465746212333165401210920089486689361676988982425096587578597450000554788101623052168263869871141038397235686081197474613624008023960059153134760891726217302885271689239928250784085646618920542337312984616887306946154546566848032454255682367179470258232995776578821463446292635730073649956192309303544845675628675021991029707129168747265923521433217517564110498166416159654214137854671217652368315495238282282071873503739782276160391967483304031892839559668923882197612942525169639553005931092459835359067661381211544640074136483706067962238546439321246792995148507982618507790553819772018567667714862950440344521908334984402493258037049563345935192209482348388222883683514970587918075914175167637000081530910268327419805925635035739153456920653359226091717661905661280438707975117053842438580721674498902077677114573377830270224650365811450541270512745617410781988991172034666596835740466449800621768559286436267646305737661878894032903049387485504509498952211587551520110218976977809756766968125727292306170714255194911362544028321747178149485542174578891905371241050649274375944266577269981901376077020509572934069785931562579715485210874984904034629132999923915092504108147928575727221995477317317698190838687536621055055033631267093290183442283337253610975645267396682849557087085518064139090323670690369090962521534859419036316185135569591449441125312499152956335353021648813498076391295222918758784802019710404460310281071410756502481983807294439467189403772391739774826743498928932335767559927193452836636316136198189895444136424928166050034554792116686976003161011617806978214002952714211415325774841552530314724705630957454872547976489607848586696940384369241571050780454738876931123121558200651589317384865345054580032017826966913394346965197111270084937665515692878858062658691217372838695378102254427177518596122047865081108193146387654868053901094548621414270448752135458072921246975297043771131722876385309597473135192191019485053174575141774743701280824552992423500411300073180771203824742269589393995867070827906279305008952573357575857523944718323052988347204100869438024829396333496854310059708548876160878796625785480127103355317727526463599567554787983182840243086591785112668573861537971912908685755184988978952311539292176166072762264473009329186779417597621813743741834803194758020009546507584447421170355819573189258140456878506259120424663946395883668014687187012688977556940801409367777031423448606269949583961428238728267525660572692424690665309835327652138876420916971843575184707072438827909457807553115942662060701161722533494970122254779759957562032788348801730713072776146263825096534728523764463576807112600184751907257646074298773518157185116850940839013839079185565293904208678043286542156636163704909722114174261755862639351831818977853926425024360891212487652997904219217284444530915973076354429827387229029699827773380369885826675324534771770262141238703475653715777579696817194994128993216247272395940832796991635819774355819922407517387540494929390580044990491992609178210628600137872777872902826354090542394803953491195286851160800377976733561444296612546077042675702528785301030780363857944587421908721730693760875007205118700154027325507079698964160680700142963289000205559779508768521377094733382717911572015286077547033389099498942524564897102008080741466546373175043744349076173828401318908999720921996513336859117392483384672638204647459092269846748131836638409059330111878188521444632588896023399521578588882098061621967215972500667224850755766257078086186474047586317492987962921535829225888481496377435024199203925291331928644814737357665793002521179634324877162809390360619573919164033807046094318866204480203602715778656405802182598755435572316068586074753901848918213362178411012717098417196911753425400822696550161212425245172079384602599857795691587717792185804648266247291916279204807794713346282679495664721933789786416789331695040782219492302150805734894745426163065355469279639460131928556414006302808912443052338832990391190739967952627037763279228258059061212861965554777773170212672200748830949871668019190485699584310570988353202665368737219989146201606122671171302022645358220576976797418533667033995535964236363324332460263277789415389688894916617693552310199727744508384275347172374320037277965363071513514567066650598049748456088760289380892316861214571771624507774343453922768776953781133427399598637394305456670216306993567540162363394320619877136554100577364965491633596595724008512396034537093907734628610667668725788533897082293467186788759072599783992134734331893902349219577407451308081381019611432324540456815706952916385854630135250591993794224525682940632510898615344628592397883090900827520307259530187063514003717014255611834449788294047279711284573463336367969525913459241134698012807600603131100377614965724309424854624684719556606540672637089745838658727447582139514952122049413502049022768465754318826742804854192294617291927084606397588396343585678344340997587829757540183717233736919054542614034022917241290793971866278478464931376928920130137295874536457323269805174877072182016410917166014837675784507376564640846695564733645294752753965699571966412340789672356295958204094596765398046065720303823132889537673232016864531509232935644332189444646854417914730114904938101369109217917372268640274314850669327104628513026640540389289086155032583926364476799457953602430903226242521511864408504063235663982229175191415933790692225652945453222779956833474727554665474716636506170349282860361061908435505410667073327028644502971630535301643077978573678802757372595340388395976628957244513153235748907425329770836483071886695097691880823919939185154243951177761167190850567245618519365165894530403687860451170188076329831823268749586727715092357206732881750072290430054576487059444722560640399738011376556688136056304735965409152925694347298293010521844927142950371085405440279346117282883649820069438012421967456330662148590005172047651754075501664731741706157542172485719599679048119456855132659703622722368561108971440689565290199172752418108033363510201888248306642154659804735311572803163431115127266538537483387319593398650002505303819317685320790555193732357187798271090860210113442046600384355509624545822037936583303622877449585811430793811161626241382090304152449164799243618301269443356195297426709042336640420446722676052865940260826507680678328629213529284014118454259035884280098388269779841599363991800281109826201316187601731312435048083765959833587478343790912371986159206347210409738784899714782099823651197749831275927487796524795225599154354181634037712134967480138406558556940256382064668202458827339912049362361941809458343849108693746806983218044180606631693603541202217261927120672047243514287550557809089292315060378950286208903751328735027060049306201864378819627293386191624205613458871991200896940666439373556202271427052262096558110873685500057778510345507281118617401028602584885059637663440926020905729484223107846691587507595058258600989559270080643762710955824010312765357629830866214935379064764223833672041670388117828203947592362037131598728344874025877289997124133857743376074308998420236595762290433145110686789586229120432958939999630018885628875880862038873325084090522866496186217661854739775956173288447751022873300329490687581046411447749457323484582187843744658228314615897098789622217437513221885741080698524275944916338801113537315981559939651395975447206520026016876981002805585578643970227905096832423685255441757956487815487824218536063641604535690287306596463283452480840841131966760890694781670673486004073624233623860868603012391076342992303956677310306832144940452834035605685948755716265596219990375632533271110727773955332345407640080772163124325027921532132883359936201252617430815769835063250476592425169526691242002034528604891606355887102401302611369024205086505140833012307272786732039647968090876847799344620718174603186115647741374352755966161887416705081063755008705620096336543251952964983306497153125044010847079344875763354816220314633923575113461255067264097359661977962800255553673309147102643608392864234965807107890908669769813177422328333169553887370583108553310072495329351913375380197696245462195459742971255391164538043491013477342196336144054127108884751852959852624785222952902140899057624163846792474439673387437886436243020899443930573569253511251186985188606940446792137050873575597188491061737135633247118005188915894354122613930627705563843481346680341645922029428937811252398643466948222394966384275558246877701895459916402543592627214474019472059914551352617710908858377900933658645827586237590425715357693501417975690399980607447058849838501541707685500527600718776725534597258207207393146182874373102771353725115468557293031169491744773640877101825772478952851738576022770060739616532057860745629151719642912691698901588617035812857250143399244121163123925930839909307064593263614991423350652518952517252877403188719089562327262622608896376270991951108521832866640172674989651294553605083708289460899354960447563896023746083817147484073727508224220310014469183444925311411691124410181880332103130624328558879981495517321375516175084552957617203034054227528471576497965482763098256017915304595007778874660303110210602355844381673722920432094451791131929380490599551629823646403729677337554599243566873057380270956501191532314707198986427331589243597699577066758819415607679003769084079434142442043389195097804528102607240526484208299393741534320689654768295643798298151270620586772951023389135840573510996695834302532500810420575577794641338638529634799436095699575976755467769100949632021572294954957360448161958293665533506883663479893456922571525017692789270303668043108843117957374689379429261488168039873562137836025585086596237402396042814031749671273413414997761317004763312842726509127556932761379376625633103911857435398904238658084899569768482468618776174789693746660732186496745443685599373610368706914143341726808811584810403372236427923078312102720426973231841521182385305619915685547398866385834035187779874761204678584480814302360225689128008190273043475612608133025382797106572834689714455269908635715245469887068902266783814606543060620408417396283328067923017038639095458281308061534195216158737524068974565510886506134303671667206014280071165314167323161487022574835112152989009854682760058939225485834519006024497249598717379209567106756756196456484596992702814711154607169792601718080836262687466213727160225051031501708979816052053843284052750133490360665920992051877341150941560724180796249446362597002962352027614923556974257324630698144654882732558697649301536076439164463497078546150784089171820856702234218655217597294995970639039685795520013949684453001931846745013358628261725967300722954761746180834887047521748640850822861224648904807358580095923017797344661357858443918665576941862593554256369004885611003816448834426706297219321755900213106604163830198691477345774046787328483736385550262771564363448758237653240077435638891029060974784226606822707977499810031031576110259582379718286940169969881846928826208387153925489525463796265249258686984663252681594672719483812590749660357534403869817281127556629723311022244026359396698189001404817627427418257747180890214949761459989335225236622401796969167084452204024180687959261289621061520763327466432586585801128974041071784152091750504922478343893382924834085824730862493782992489509122545428133133981184084572561737389780070714416797027357046394966181265336498570818148416416513408689378426836660945958410308880095342878858396366637943803391392499470481492682218937318647110137528839542002478450253484605171558503292187302660695221902992593155027970966471714111307183321212424981999998549449782153673375198323642084279040455578283605195516824808725229448545097317005239569745860299812022671958256187058083316613604836761614296893965244367597366608585988918994961000252980019524031449641304043058405198680390198893501029618387499018777178342488899805852749578843817625867183809778853288954046567286988491419963041107616356585889268014093023141500287277206119440962212846119134345194815386052038403269681359693261864536213413347152590856310103662173886305464430049357630757360323521618973596156115859525904235446914398172171880740982093354821556031784034470125727211268933894598047816895881323255098371788238707529820554945331505402132012574143826496632121293089156884521416130888008829325182053170685746895079027617370381353793639083877021512716465577969705553729613988459972890019828719093876232747398009769061307575778370278379635352728654506046395562733379293640632758096961915301957083221951692066719139489046817711394199639299844866359830780777194313135414136972865968505423047539580747826477032966193811758012522736144340892675235167472925727598615552417647833921224012954118018864459605459814795229769584703018390986921970089606277844863751611503879911268097615475383000355216997194042861634174989284245954916554277079990372081710086954987929586364441670855153028003651885842497240108760058671292542901804236568977595009736406217015055673876443798682955602236954277469998319046738843698262522927188485224711085496266319839683523334219768222163051638799319529908284526624604572496203674660941479855060781669966603832313828789541670665336027432749104345153030294399512172904666826849174256346107607310274737587833072377336562359225740951274217129902422537563077104449389452086531410673036178887791476631473669340992860944206368069367581983771167471986325917927362058471849418359460122784322515617151846591019254143102441506167078052400130763773062258049199183013418407281182751738847137037709048280620196685487341613063946443216119394693701758014723127797023114153973034514493685270350632139047148713437668580106423637315680039344290388745913399339519979095959581559567876265942913573601706191186516957673794202425550655925175290793677979982727599513907823278437396112724227199929791309724058119461256854812870272647118885860373994641497180119946103015569357394146968412189994092592316141744742782963757393669575686278392978011832596633385643741102168180077720610118565540386651543574717308162736158203330472047723413352783839214936693656414908482722709605802642634511233544374480151429759537147446230073984473736388126856687660876709883164770316370572180308892394238954937483156469668105942657490637173941709555441830700026088742463485603917668054733776219264322751677075647761738401115161938748144742706476567523097332245573891641874832459620397753261453269888838168679641495743744365095753560133492696377350617501894547108255253724916837079105556555322145581386601112273016618125831534514509628916478376210682316118217809710312520637451526946338357439112134410789516942038279695023643257952444536205083601755970159698732461573454124231986301826826040103059575790462394079500393728409571609200041763067855078766556501502756279324209154576155217336036599804576593972787724070295129653105792529181870210476293117042163539139193066337151337549283931510755231524090012504463453268355032065514736695331679553377302535406912119058023121837007948977479608937252745361368258307912540495746060133793993659704770403808178798098978687637219843109326083875918613827811086656269057484266274025877104764388126986226729236079201994150835420013730162423893834207194187943636583191598740603201023526897391121641583016209953233204630489020476149017164669364726772458005591135038013798710820035463060953890680705070288013884443189049677904645245948065886808173327774839810011148087016320268177392908635234584493758837828766930668863378723584790427905082249771977164152436020583254827884250410078712461697993929721647861591573696122629124381462532925294920942690573802237468294528556320054898439632923210415293530968591246111477287659774879064180248231360204329553348692979837283988304437832571498411864326299039637452575073913201062985383569462483137068293262697059904699593195080307009038180733482868679947575434957694346852146211332287920854656156294949374986118461944490087638050359508779935540420742832988878163451511373528198336275611583102427544873313312349239702995238860228124310868476323804836392615972889625070320891079934944828882507177992231577186114821254467798190444644964825803021964581633024845903866364593028785384821634344796719371438855709455521897078206563750306316283352091572577753854532800803241056850607562784054573343585739373404865105808848878282168405147123988861427194122321883162609518237718151692713647496637508903098658046600176993574669850873756059095758705822920532997998898813741071172344953093171594975559491423074756339986480399807144138228380659949193334815203652904630283502434549222949156331055430489794307941967869432151546556693037087347950448465418058278252081502575188557156842078958964267279710772395092244106706156285453970261195057436712049153433116469421349700965156764230958386652211533818011708925354206200010754363907128647835792769498303516006398638582484897670197753970772113511407140381726177931543307814406151771511757990638670641891234075716703824014107104299678250590108537403588624725791239857476970811147461841193688426680697316534137678804541239963796542131057152076566770550739515168253676093878644981149599921524823311664294038432489724475652592731308486961496189205137685775900312228567972828807069863859538125051539515079851617989082429575402623424206550363003166178761891154332602887359830946291990544801519386223872507010270032355889397501651707799601757391520853022314783375606305498549319650937035190971241216314956512758569193058297845266516954397904516264942110622963864001867703802433795075129142245322636729939103328313992323701080214713544673296335264793373983440512028691069458080070742267395629564097277234695085562410568074885263809194940225002140666771949660512655685665052360630961446286306324633368385937866506134673832226939383499237729152690860248144668198001805908858409849750678185736757044745510060693104026922496642522023911848160779258774785243417073647005305004415562549407317863128969318153310388285435476550393804458304446520571694474971308948178979394855278555527899890393553847553866618840863214252008819288165618447928097872232662755490761471850837536307519278182869502815009004014844092717652365690514117986010634291592534805116160727319848297052776466119218247426405664207655283551587673833819764334957647298465419286130746849435559382566400221769986003655380784198583900722797472265376215343540905011169863204167971459049065262744768052359785897911035502371197330774881447132825594718550477500574292077231452369195718890267506804514508960698724107789945036631113282880583892231893819521151878670043800739919622323544336990388066683075363634279465844713126180343206838234555356452581536226195571318695977847106344118219086814114808659035042919344143381472473318989471980680054487659732192157550689613892494048596582228629410106612371083034161148621838532282430976912420993205200566867595282462668107830989913009313533838933058870487025899163221736642635058075310157306531159516908362701815021988402520040994483273370985342560914175022138554488598313937102776367028317988201336257140575509477645416556993115958707419120260195156822521503695043587361820450296852121415818289747866635747531731019890345259582766230273055648212716529888372126298805940804718009916802501157221010796415737620652248969266518389617680823255263853488943637590388315113642077733277967227520098279101988882142342664714327661661002577949284395651873746858490606487552875621929813353089987941929119677151506288573983034323664044631940774647432946773451735894155408212289949220939277910284818103309898628640567569537827300808793485506219463421635987840846431981383451728496151053600108949387697949859790814994307125451500532128204856495521432952331566343045412988170037305713988389477828272296190976401388383585438910008546658924732521369588393948374072349836001392947123953877131665572354672221937315551704439697911830987030210927044692923785020372682395294722201927323021259565865865520314206604911500719512650412903716012503427095353128538175978157742726251937296435300566678550139882220512736096271473318726152147331456435659834365869976162369571873619388074897670808767664417519690695852258317859725202937090748745042191845303483143565642715491956294824599101000446211086113242992791224880808892705253942719234378310700176873117662569250302527542369333852382468659752034236010446799229319790194731630014880638252362973600670749043572101946256994310769924836769163908661767746957168196743445319427151292575643590543273966182497631286212489523346412013301421180469996630612534097401245112188036728848545822816878755866327906686559718073054451762453573342211555357649948838745446593119942274402855154588168142512899471827662063701980082719214150595169345090901773156157198722601736701002252752182370327778912579031672437607644194903838865976923221260086981640134881492653116918311782479694942288274804348165391265589484741960814480505228128413830834367856490446565795454750757636341026332915329109779730167697912756797097495111193004929085444577909742726938822910478201976911244121865077838939336058611948344711605998227014675184337258517215246727617066719978462734165817303093517658872469032179675336193908936584637673023298889218853297311783937454339520130834339411557088572980874309168907732299123374246799277930570225665641497860868555647001624644250731963665261561021603961320071283412803610479928632117398954998825170457811945388570011820289991999762415875092932708120305848973273812276892156957889206662705353662586140941632358906805848471419909080330890883357789814353972227907459866718325588411108589657469184047387785614989645762801538968598149052041137185783433055225023123252742168723152117171569398366260995140296057230015640249624258507660178389631018916116113222897225155014058645103986927962435413132283187174508460917161567881684678283257040151463561163250350321062836273996061877518394179856604510742621355957754497358311878076898086658856620409419842091366280432135902936671612454484281444041089257619115879578408748145409860895465060215269353693261480248725292662432750404664501842759729009150999347184434250696341242915125723218938955479501268421456771644787723882635576804845923621156203153234626332905059248222839410473111890096828299440709289670598226655787914588165082730249737388210711003194242428877014615038526088743900806370692727633919863373483742664155720847062789098879652644899003103378835289669229451283602429988201776655959298933103287530003849326731077380623289213418956604096645710630906402998920202358338772183683171198251815456054302864611032219760885543388266857272373703697209998250638703714788755065285395996685764124429795326771950752199226980143914532471943474741083753899526481386866685214069162230812424455344023896251850841624122088435371028667727571333967451469863804298746532885394055359208445443682102691150229670195332864274915499285688780829283367898940289636908735302678269542613530457281646942554920534241975528121178345676967147425211701245434561390234154667453368782836457035821261856070564547171369228441856160076986204594695314959562071509608864123050011855091630614467060796274331315460549552848333271138190795609180291615494245675483093058294495869784409606071350232554834477465376148035091635303110799351214164223875446832811724766922029195233718654059419792888836660630855808677501990822771646866118262163813307552885966181240669597571924867360864511505981965701206524693475512983360774263326804094410014733738796247577905974856658243274785562394684679733876315167123194992077516485708993931698249946029277634979026536473118066714978326213370938176853041666639546027788448964987709479909706911660105619252922231678117543593779282423897677487845628784955177076546221693508183407029945747117249672695014421762000339776072189866748971830897080693152345955675613198229834914880697558417506405842230582885758378836684207491412644733366872597261254110269368225081423054524901785187954815232220754321195361099827871206986959416721645513261260616226569821001087524478176613355271927061672739810772724197356461157424526911905625158223700520970070369077398785626341341873441429845727161484675268799476792943463219640390417552807582995172772942079007125820057542339679541460894213091889558176776009021373314524114331709470292321694851344731754628405111345089081053496881359364516107737156048881538463309972619372232394928969512444546145921988292367046469320594105556791638467035923418860486691877823843518412565715030580288750167578938051320232686694461957085164773385404344095999117091988120827119797227074509016099457514102619213798265784017813033351666960703361196675715427855893040539565868209171265232307741746912044548139012060942042715468480656310070379409968121105408436939241432801272409726762898982607779699173749191310840390764881967451851078287314588107476793679261812036946646487989221266095290847116329956436575423749381337744180299096655337369597739205262439765250458634069421485042132303251491794950855511304662820009819902535464463131131622460927901563167752203222275678850841999929726378871906769375355486190650842395786863966854242962814980913597532814263327882314967812572382923691669919902028774760233043354336296526850546901391468517201088081567808031989078391451708230311220017773563810413783186072673736234106006005698424000279786537556099784042995949811237291363536803310843353423086536918626406992262704948511609799974569092037772026162242630418950800301043483352854299838830997742683513638707138301750880299612196551802596068505212267384758729982063210783820732449175694438432347031204897613528504646297107400352649443868136739016390605652021418308809101895851447836731913719151663834220826177295822750214588171193159197368700572951368761091623350004015100037248164054245583460374018908994052264869122339877009205525344964573013989472915498750986352989845446692511602851064926830178967042436316159569537695306164007316385345903834601181609284035838772445653721456685952574614426529416115587998786789892177293222098701669317665851519872566697396848211659279313478754474876323033453140768774728344605017958176703435913417201973916769523639251696639888720916734692397606538199132903317961520127125219810773677335866009867610306745183779969434213469552124791298948434725227923794976897289490034335383564147992938842448457366776566273234677302966510557349261649428690485977616683181541027561808352033758189891299389936894286066331897420349913493850951958987125787882685785322891878055545008225948980964225152091748400829023396407526983784794331273100794162142707364798612442255593854977883856715947667458832735357579742583414630420260907279317013362315123680482195096398784636888659656439908795290572676187652242096006857958226904130237487189649399762425716073638712186737388607507133767325204271925272626633513558761580267129175708942239581932460833787181258797441010789071038034923335782989262590905051716107790396399741541118675750768173257246120823687405530949751390591280050207227574724502134923981785900072764511453193208780984407984295403108874923656725554767153527378400867379249539260319172037148927346353992523000609195732993209990720547095606102808046496031600299310206303804373647731202166113614053727398401481391871491929000202291513992863876399436635831653999500258393545036871832662652506772506016577223466434644585616797970897859805390636401195689503821823913671148387387624174691015221263368532847039658154395940777653576484373521270973750739867973505166625799902503301596294604710069666717634845023860602515134871866047726136533461352717988595535627851958208685544273969969359047769406701568400677659757230913498925081855767318698949002144657956747829081993858095664710850736734913292076597205115382381757117738666278939971852773154923961981420973653202053008356602133757880335332841523220338722240386599600542515843710573528757093037144473565301026543451077180106186996980061384808565474397130567747236090762138532838199991519762284033984079200225844817175509353494899590200445648867041469774810481087303261377091060992653961010381061142952665534339084789730577787756905205957832339671208069986199887938738876844758167634664502198811120508876283833649235122142447092693639999615518430520988075135691572830238849317136373354628718280193845112703550849298353711608536902272513407290250262836970719111216402277065772663277008178246912769669573712814953535979224081199136212317128304741808411151483325581167149748865042682058681392480315291160292477693413212192118309116625515444602584509248146098419803828708717221395384069352888284370624003332214583153095241522162826607591819678673987562792725657208379914880276344453598410337369617952484801757833751111618046265482119248697138509913861470174701911301287093844760067962626709156675971566567143212465665645072021882855539634159508613996653954803803146501643682123916998939925740286156330312639348661807583111307387074497248106221307960494188124471454147809481126852151376845782269728934921323383551860299910748533055187338280360007029630208909712376800096487830707698364185917142562048666553108738657302130361525725483972200552934370084994150367505411311485259427903525869454432248282990605888393449923435091204868984326297493621294434033173999075376255098211918100372537682671912748327405082747911322380985009654895582651869679834323422825156790354472443294731687276352292975282758648737180442650142586084280326945767220619462450404370946319071382430023135126977264721495024104531358853355096608360139478361468185428578733135999053063026395870368348291283815598239735506751002935637660981674580308759618989227859775791145751307846235212315820023828132885689562503278261288633796546553050560762147121675654392973593186807623992167875223753456980581767687485141537471885236673126160805888638644319684942166777408467054419752586635695228531211109147093737947618095334384538107199762026931684178695904995787519236410923558870277946505686470262120470950260262937155465457254766934728207109095102705695227978588996732314031719449234037638011090911924120283967883746706414296541628900790113013580694361787115110776985301396437997621983721499142505826480722666671082107062305020504782719269061158770578356925247385596103090328285234613835223688858254233106744946195946903727729083938497524169834324216245185413709639496293999497993381233311168394012741458360164175470675772921592481298226843689948888991842571728300958990189015156893441409048269497857590824919349927775179680180653812014472980694765298597609653382497189687414021388055771079344246937057944038493507488048126660666476608264406777445991384295032674905820260458975357688750852247140443442294021561627691683570752786969721601985226919018412167307229221026638499641886876065232427530932680181972773430149020729606962372387114211717300648320665231078876450803569369178758187227646709751329309429837463336074468406015190420979170586135492647064666045797407517279097798297139838424990869731437101983562625494830101471438859941728205071737985280673409314936597222405818255616734667311419395162631453321646348347606676778992219384201804297871536520703092261692580598311956915243267850922824582501722558885574275430461104576752597645789145445958381683257587409323515463679478016795959498103817868844741684687592764593439099440735915617174540765106593122215682865998213929861105462679813137476765394633848620468765146242179130857953446968563556245603876049465814307294775869674455426688104936967384727632651622681117814993459549007077901073680395967072986100087217872983973130746051080265618470992916361084915347718680301452735084559064568365138744153202887610745138861894853730861820710889229302116925021973473620235034127887125876192866246812838561097983819473861049390868091565913157628330931434735784107322581152083583342801624949761234403020601605299095706409454942618327220438794277699435221934164573695476671987413169082887209206967379834672416287377765898373732151917739622500720858417570460927925018184382525100987312294452216474889372528534073639411045279652826191915490615587909612396021571609942636702710883784027535868784346021285503404277627012923142158116990545785181397689209476402063026808438011269981718076168845465825570990391094899261195964823621292302422499675880283103391768414688201080346817484683730846328542322921073220681690172615472416906687870215337620637683440523973627077982653213627697179786121325778953222694859845239945427289128860875920068468530106874770383787968345818858628642371076924563723420793442144893967235460736964535692326895225526829092165396635198728034496248727694584082990543622696989637724860442288062224711775548013784251438870794344592598200725607169472569000422660397811735618352649121275752052551444824829887215353526843593304450493195775426017011101784489214627273265268926934440612385055135039013335903296808576074283923919682945510654093106272469793567151154237740826101489902003720612880801044702351403907824167157421094765549152840605747970581968485131878994398180431229635312742123388922558819964116066171828423182219161201740202265703332097509479934590958478200207140077130026511539162121605650058302577375091341447204445558241140107024603014480977493175685704789150607577199022706651819980706241505366749891975565518189304941667265758812257995642716152634492001336075847604225894673280036027567152076366296315893197662621371442074766826669404040134938681216423388513112565352333059911177455894313247564983947156658539063036607603778102643320878784240707297723714731252525976419601429916114089867914699235225435089935563137925914812356871617896339305445056315086025604992708308299476459374738259649631062026081096793424721812522147242452940764745984712533583987740673023346905806664175797300156397850151662067545284651224952020886414175959653892958337594990998680766030502716698408727746906410828760450838731861809081226419633639504940934396615682072597194519150713844325819039398000108721918934488762001769722948613056664734393296999277428268779386194569105248046370826312062046968913023273921263371460693005649263299159020019859426697559195052598903254411989184036959011754773162645462647942054792845200352394283587817836777353329175795778015539971028981413418726089077326889601914321496576368036028293351995871169863319053900599081551842193224358139952616705691207239800220779563606659357851340928613852576410488136977185397036391508112700540164958188314989924634216983882180791341695089483871921993374640256953812128987611072414106308877010397259265442481991804119721956530739779535588198803374717225554710983677687863318145026476394079760537318139619840752105104170484487840439566896810897515799507751983836485986400234507025336465952330285235831376133677680849604015734922922926770588315099986240150420556763919466039400389163024902703612593306240675695070049454481209091428879216961409545854799644314388933086864675170520921930616450151039475699704937305556384228350343853447437906319873324062548742459208501176249410966209072166723661154130213905708981655668482254200978957856415818001365343272573497740153038218692659967973782441252508479171959460119473288302928569146256141176018709951319215617865541682311527491613226416476016195571562023648594852429014646448052933312473273123479843391244375203409193156640922983228676317942598135292196787761393015935895395288879265444973374273548375496060118301659601402283741399053390889446392315235982185286575906045064908323379766026297486429517704932515261955756263973156577820632288653674192976918022285334018979188701496816946180517370704849167677151539297249236581498625493733670542741263956091764678309450349557991991458732214184716128189437063201735633339537031993589053409922685759207500454774538195301181970865041836157082077582199675337760475367965751594339689723417830335930937289024496237932838338244962086731626710221676946906807815629797032035254185966015433981883000116414460500952527624584130815928485899509596888507803390187911984823911120258559681787197977123322064366834685055969011287921422577335494099683680392441328694798584161877710310976244721808616493456487677818424163575862579466587872408757736996879623323735494567398960078103075446908257107830599214271885306055550051224235399501751223235488731934709429175541162416562936588401781019266149748850778332920373752282505034212257062487311832034504730364755471168621101508762095248739117666686537495853764129420553517134510597055320531208543476983004882672655889886884866537512920998160292026376716117712849955812535198113956745596804425492074072274595535621145973787416645582481081806447268675636034159369116531022918737825749314671631403395631045211313206376251533450968238102976935475007102191501715493262429483252434219257653273505827358652611424531411850982208260541782615438273291635764414521078778282663977672125503783635373542317224852559111364165389175557286820945864340248654303790858585104601177090502786768078251504594630897927914724648744011091865536054815771924636866676920251332508666871464091356803474508835422222712811891641371910025833090093190309545183189847000745397292105089076026033655193213076188415471432373342386700454177156117286153079966800231516125410698022604378354877554380495885859645053470607261176447946124500991725871543300709951538087951020974228430931293782558790256064829707559204443671574753306387667339247484627990526049011413561946628693111613685689460465617479102752817865161246037686681616051496780648164273178503500798086122568449879217253166423454996178657937113082564746494440301262268099318796695909125964530895681537730912928373737713373131314585645758022982564298011499708044176402375022724537892838828851742255807251414831690113375434675620348098255637964376722634402374447767442811786303847480786842328409139602261478939209880577665568865251492872686923236498957234071865932836283954119621799492581326337790244746164204428928908245822337166267196684860810695594116698564247561047011735287580383411800147056335471715101521594691248282420174949171194291270870067350619542576275164745402449144559071259215346153398916148238668129441993505441421082480029582172256385120819703207187775688021645860629535600247035471806033004866358835936095794528886686716411716689507271232121157948695284926664149423874097224373380541395500784650596812162012140973917437229619542569555773572228103127221274102535288410670872548281866077906308055966404874624247592231943549515327906219410177540295782278863661629879398976353641917693492365424324343920276552279784245604032507411661648470968209054007558700951842074348424131281623010323786905912896015366384901053509981455230322732813538527435426063753797939211319237374812317406894708504346037562019919062595815558968977143449762620344663129903630849810438324084311992568272367881957387286133876808930330451646277872089120869200460686507225062397131465196921229954086542043000323789106682548220336292074664369011956313017389897698922159216140935608543334156964121600615247706280426274768807383111256024172678312114754847298640485379479204140032765313892694062389287836528676268760264362507783820925045311036033489791137604120360844771619784352118340583534234174545751618457045794060322356717733714140773088892138997016696866039401161535854741647077016230780105027733886873696489454589890444269952215459497540540888787038533742598501618575111700893664039292267757694274239238583255316085955930490495855780388729730113706413420100440931330405357887593844294944580896458383436175903312721238968001785822292640266757666701388304549514214711118596652062294468986398069143821393873424256225798243467483012543152540446015647552657640390683919805259103883993459343886967146068368367604773912059702940557892949902497657460464092354169637015135162797243481664699308685654248546429867414391958995654634680343732781312465959427903847294314214922283644546372187412679497184630491868700376973464071843204976692128268447098811744741676181770984765214219740337446134343999515165362755181761958266179011954728643428096006645309352642289291203944686452068257518867645826735385590571884519916870815961822989354677119981569006206597091822651277120466645425475495289817938693858282853235215773618614834300433756692636064054482423839680572184129336220526362377853392519233111779650951140701320113596714420772434887990024189625416558045552358090845730660740469214708570277032105698904746402101061745401061801402197688545357531509772336279026626445091958844695758491357693618435811349024879248666087311494036947388768720897367198744929446509519302180139356916732321791715444598292115616705807650103370788638791797469827413379516830423120077556594014276715532106624633090122661284517400949396800727634037798430030828593661372498298119645510894866116721474277982202468475465777166457190147307633143086976516056594127884639958506305368691371926949233591022412933417410071171947033618233125693246485364175260969507600360427927991419777519137103075045099739419565577354233246561907457731444767353231823720585341160960160069005316567890801092894348721870156856004132083204583555943937309424367343572172975961967048954841683461402165219489140171248286177897246460383188536056054075389258936060426476860595366341268921154614418935728031461049902942468678720577837097076415754322893416166335763723808469785825086731529607181848076413661582336056421219872584244440251610440248998267812587522804765158202343794821866761926729178676347964022046547885896702340165162447791778026026753440254892354408144449577947092733959824860904182512076645174126253484968210438758887967790131944622137552225849196390905112462920774959609073709030086356746818067326246927591945568900527698419064937256242002909938344312589429881701095307724737508272852763944046441376503309504790188433971408818046075182431809361661270283672896699959266177688047148443771450210293015184619227928533929789425324123114521763063255585632902432325832494451912250925147542059375733109255376267983641984756285509493243030359257720744622222582449244610119976499773848368417271794689813046737272353654893293662327348020108162566588511647367054376287535867083951529191969443981030836121785611756573791110124116076269198790794329713798536998652500010651470259195813600350070074773008923601583667375865603265073411163480679388829925099439316767866096510523284519756942644107872015721805277959008444407344278102433468915768558026998413640318905551570259580415415645447347552101152493257163287024698917379545275887898632992641483103276025389666536049104858394547510014049416416338488368745921703708287720810241355556807086944300234926097549852624295104869679691375675958323413719444751429548074082498997317352056988324436466067776205151632941429576064362889527043582023651723045796945413457532855672730342743123382685145544167829034184778024683725927183590678929374610526256971737344196504166013312984406003123200964104258168667874346578153457708061728880035844535513988209630622845922975346475569448782357126914695842513860948073380202484537718234399328914906190733014307361902837922125609799912700242785992019649299078632907021503189294742180397782486674739111908181821128677886817842002787913807956723108819925372210614378964620342472695278682336643566618179347966219801300289792490286438511496098591597040604668482968031790050772596242402747286064843298853693654608126903836622884729698192526678466897249020099496874577779166503202230531987553870613961115154679644257654978819885534681408072948562254068782428299392006811065660377446946324944331440089441966852021777072003685505523002230745565110063979321593069129764930214844293476732100218619734400989755359512761642235217361758412646569078494365636687925151581563777122703437501635676473334051323294009903385956945053665136125150228927935761537118155193203049607049522522755462961256031596411748063591072952994898799843339127454875622291253784937386435838075130557374742919127840662802293545386359457283538039045885652216348442464392556257672804584067225035411287844744508390655637451266330564345978379896154434616268132165188155952468231272957133105155617733522748051892942248578931645559345911406372785036483645449017455769141980566961230741098787111259179768493001819923071020938712612165372066272615369622866410588368019491259561605870227432420164746287365145861739344500956794358156274571536486156256419137874360069699981214630042696554918737369182374293681667005922035310756924213445073160267826651765490932913133283412997324164270004017863323148053356460452136233701509150168329185872325645124682772201665610293537521659329369613640286777646237246812012793791891471628683515640389373663592756917653490603429884197164678313392702485068793448701905478567547529298880829458364293685117410856738649621693640794130435253432898431220380138370394847924505627616832368298705814676695951304984751020896407575202254212908818827570839609302689047862488904837985422817326712897821423689255663135232429812990973384555493833666462585422263998648507755857240289075243569343684596813094668656922588872330406076393083449704515751390751165834132149193206500776030770763220594505616312965608235615256844999060443574177430754001353151566771479256486259928975697707422194440524328451459255136679371287451383544401679471853082548783119818810340836536123280070445348203981510056670355683376825251834670599961384611354117484876475047261534926048372790198698472477627228285598729343968764030361149919951513957870101213592216908809909743000576296391286658434086946691177824438382131153309533430244775630524838047957931465152666760079586015002168892719875674156355383980004870780337552482382618893602282564223744053690505324993835200870545285348719845346282020709985827776418598047847537461214674793991823869015451055929526604650110098663404775339440231989129416553607500520418341988522279814743439622297552017432284363752543941651708989478394650172275460968462160655521510495884336366464230784472145579712786636627486696246018530893370896880148294109925643475119193146346836867608005857691877970824314932456935237256823191185585051269660364632308574412798483988714746208946596969435494172864420475934111049595349104917184780570101929664843289187272638038868181458949088221236711178754283835442758784001839127534448910728926707142008304946637552525105090591737674149140175454065371321507528371938461670236518342300256160103385985862773464442211043773923098615240200717541182378831894986768685857879114992890457822107149861538483238464275904428709041896807390716655234112612893553615702452220781567630389247813649754681887782624169733800149014375226383251170836833878804883721718620599753061035121326809767896750566092788670465894129005702464383352356633293208371014077406637364452693504778234606383887011308053271511337308647049516157489007258619418696037409038416669854497444527124184824781113826212705373109771006658890856411375047567242436753827372709697839630786242010552924704803927848915700032502538250759026356865310500191793434548829462130484796969807921472531436124652424203513437694664665636967992258911641171185619357750106797847710540215582907309321172528562896373355115948408313356427812244432277289281159107451063000599898292715094788966361321341308845395385942139983422008798393212555792594419672490516752740602754689165338097019340458127356253449860521649211328224705707282180615854081338402838374587361147758708121636348805263558008791691383267434717633995172472806281666261399711735996294921932080140417738463210487217903112342782928608901410731078300532713109135251133646877673077980085852562633654893620273500438280502115266429967446300647820892142483756473478844714656771884231653804985524036673654385179746664376211153073707155495222283235901056049907904987788346094134251057117946601440370656064675254321260502024438435512028045368480703410822609965019611297852132899705835598411547699448414889605689705289555941984415508721221350236682900843323954571648997412289326527894770092434336433262948760494297741893370710325180811413968908062968684616446682167548983783951784110589231732965777585496532412502716830522013693611946381584936042380116477755020976210318530976465759300324632882117960592275503078757207172882571552832566021705858822974704363130691608024332422340500441603509923541080785747508335131883105393990603203753336042839640164124616138965633288269661766513711771271587050990527114553858064443405151006780498889200517979896465538945946365174226134730242817168910796555834343947779908627392244477460757739873967684760947235307882602101369394599301835638071810918954230544842163736241716340581389692631875764233701567520545964773442887528582498540495029665834090912803716929224652121934578313558036372981371159610148663692444275320676220373329485358859282386943437841557505979096200170089086385098183034890761524654568852654203743948923041599505589877438008520393874880491217381331342942797971330172001497962208395028326635402474296243044052734614574153110782019618402965395911994667624949125212759071523163692478258795754974574285505724817870319007941453861171435778257562607233134734153344441810828034606351133857898899614172697851529910450694046825495557159786125302730076592587088449488297255524328037176580638477502185197012288684539209041672144631230327718295130153200794732337737757148255918517328768818697027750618610579018402763946398517212927341714924060518299391451026934957023729132672697312252607506245011908394093346002928886443124540885388325382233198529749682237951864262070679771853736021880050515343521646907644456236183769008599561018713049773108795511963625594891478917492271070448820739737527107795457578980330752313767609825704894047487765325328225543774734852375537713473158859816626966342849209225950071385036554439944568454899240569017355721520474691464710004977498926626310931614076180170674409911053145293557823642979551126451908240443731057430178844268963626403716873180564274918654703116356621613144720944223834715404309189166174105008904239839094346336381173622881314638192709371983815895332301409860243441981911827849933768664001604423608863661348657417952786137038117723869803721420820009217732934508156752431554767390586845515684178364637286299258131958377861704014095167679943115789547529626112163565402603791973584249493372563690712993986835680847736798275568022472070491343866751946879754766317447747234357011873087898896262454523083312628401681439045002263391918462074842260858247866893309088766906247712466917507121459796635511607367775875834830926014221883290506809612579739020327335551295135188258221947513302123797137975332858941733524304163338823632467838696002986018740472182749866711521899731946891881244093070453285982010615064122296574499211800804793124182544799680771044720184986220996600108118955030136355189518881650087543097950349046305104423280263388732217459271383943209737263533323024250654531890372908209586435211674002370623053106763351921297783408804473050082991220120696555871997034001929203783097250208308228223316356035399850439951968949448072914587057352745768368543835190689277501420304252956058256136622383335814608685809968439956913952875593217997028443446727823203530091234101920900596293173262305882003849290897698160770820788843293065745780304983316978119674326145572551288293057354794846351364612500603800115175261950597018328376766272146349967245632310750852883081759180472418289303498615657100561638216469448690046422385610788066311848898046121373865767334369570890160229632220757590906353374772661569515887796238772352917289559239674309388724676095690426944413522148895127762240160887869574998337768091744595957135993122093988918180306065465628606246154461891857898567186891181394599054811513411856371831752816991750207250897983475139544804082186891616559578038946128464775603371241490241288360533392379066732487799329472665592957772010377989306730903996909072512241297795512605392136915636425568346441483888329902257678682303171217797086383761682385982841405882912996981982264036668950509747678249518813963443714531310923303895564137600559607549855013799763390636239261769112995495814814339798476038208121581674542535878699264505522079381218012413609375271879357239880867526498310110809377311372688887265487137797779204713705433420037365917144073688999549206705955324059318449709293725443038903809812221855275789353903424577885686909338125475207677578440208070781756120603809745241961224681798962579390517529132188191358488753958416840977637191488303326428106421069665349051006881397023132486889372934276255427307918760728271983221605916389195281210675321800613148115264900918181312829596038900225350215204894013430990539225872816897163513330781674451256900984270871444291458944344484709665941291454891446841175067003693369051516605038179426004025034840010198026312820023723386433292183821210504848311065229192383515688787166685751968745157530820950725813388895296196723306980088513882514748391719901415112801912726756588056228989192504644442005279623508286912406267698023546340486350562295784351732770388345802713190181692016754322112384573724905267041342922115227612718353273618966298109310689110432801524200952599875659812203546369408954727856800082278742054922243076564185969596637493515881095923212540110651894325008590088598265664371496097190535206293321647104630160905467678395923211112469368661275067350481179893093637891032745235314885403083816876719164623589899266418057328819207821258567253838939493894379481540333809633713616623303407059438223109977991671268815562531024239205878233262428997684464923544910875486093603660320245103170077086955317469435835971815883707454154858336180581625848027557094520906195567696461944484717722551943839903550394652379672919161014090891963245503072121720658572818754737227223396757032924685261611028682320595395579727997096123667016209036412718770263560200402061097338422582113552347890087657684515220513180662698682256454640987481825616534260777108888595467899010879229727839779478424030060621116633245810567804115079420088989782956541983325801126141614953211901179710922418404817912591874656395304479766131535486022874117510646027277290101846244152083705192377517857030413485548929208523842380282092636518317005761392416111974284528491183167883304153154922937793368830841684039472403394551439643388955396271538480918486705760451193329975398868297765612047024862661961298604191109419470331815498820624014003121221627500076288196354947354717751937008195956713468631493284574076207464845295502117124340918968206282472262040372334560113348276605472546681557152666056137934858345345386666898714678996460223920118026302831600131579419877690783273546128400044012766421634976495888654358153194583006034163947508513177127837719940914249112047561213911548626927413070256621754268971104139006512079505945794443238874423802458081687320719991925093913893207947103505787343033613043223324828318770446468486187026388791245677376459011460335108945034516502483752242106357985551050184558851569337598182289127676218209509120110598740241415168881113141176700344870036299508752652681554777092446162164816562685401397820676091723234357104293622647614968596810959116888269071383339083936481277248399044082270548808534469260408586761889920363966298703848156240428409811190034117940808985033444571905488009183515767459675311587520042015018635092819332833591967215806661022936918693539414099655219863604657382284931136778469311593001392063632926771827408267092166024266387560651881958768066926811372214392936300280184749598534428450318574754098351963848631816902650403203406240761886710529357509202267992536969581108457619339852224334217417854829574047630487936535765574788637162477994242028420151395471078571073558893593469780698715458603129103072816620190477210006006918075112363947449831914838523694407505964783910441951428811492881424597079023726757439360990174926841260144467246122159540905955322452234192577829304068259433526348192299471715800261681535738114948426399753261253519107437129106430121451384885981178774780575626267292154266621977212911067740520863377146233056996224748519581663770053555280042792760188541913291146160068403889154765590031654167743375566425207478715101171810832710004914600943218591592989787852737102126067396657393696811990619389777967791130544736992218957975771399749380095632127095788316642120510420172619413695301801024811043755209769491773931266002072908332362186941235851177580685776334468516556297545678105375466993473469129287617967609516063370975565259518182747117108528198693667464203561708870945113792366046540592309876795465398779096813284514301319275842726103014674351291321325236686018951205832910506751863939404951601199281074110253240712626843299655786923494936114727448262757189903489416843433049768413778124728456106871262409206434593831285369190697574863570536394879792453160766544067172364676140927119711858343050041332819585762445007660422935997367204376358635241881597613742943827612618267804523212738808868770545375164700039343219671177876679336979933624764023237615049255281848839069738028146878031230051776406165006307053746552067341496049048719331403857095290110611383726066744610430307854769931935044918296317464072891914467891073001007382579044056119323450085930326088732710097811268388034164701923838499039057001834851999739097924128410304764668966284269909000772599934117963885019009176542698586222224075944403878428997785999442620508804937126271640169622768087048734672390628296746728339234823616367270534352794769569226800304319965660030085628433563576839261120479306181371379147770806711524181081978047410259265856813862937646617952767383762774872880646619582858250204329598757331046409062821293588821986534017554645259847590608837480798133069240705471033757449066074724016338733336649772557246520239442603740300944410776135889247178212682423204298661148589338850685021853351834102020635598133637478032061687624263334675386896385026915245544144135566148555504269816983831050959749662128495737294454957934282874156330967490260050744427593909467867911727867364578752416397848997478288796870850839460479254324126348123552919586377252065615948700188146443006801145173386428481449381210867187325169848621093796322175646826411536823588889867691377469702335613631861782636376174460755949444365174439815090233625586842743620553080836737447186810429938487555778246238599362123553551952667113210689543374769219673609805663960730002896148011323099478386717205263194799679666808446473171572957522213405661995922497687263754127419843645119533335690724918674176869034380863240107331719325844216363956174461530232708289559881413745886113437563512774778709953603567186543646860434746157476277148114364463848052845845177129017272785999466962902140573787620223026421682188349168569253157491886157640025364802360648618673704843477957208964731272163539938665930106396452711580445912390189657265471603076494015071430792299097619493032438262763184290695372044221216015571675232599992234456161819939450776179738135414936444067842377061822137494702138244833458009510844753351287266854610946075520739248386045154197288499455410932172017327205979181204689100114155048369370520890531237831519969527910049387744162479723202641517537313318133593173023940371903984380921015624329799394114580304989177748972030128604139578962292684942924771365814371877534940802647602073146323412811621619012849340529336962997410745506206164425716155830652524079606758840749174797053198302129809524842943908723194117207663602925309475593941380676323115417724816451765439010208347655189770739299043020045774824727361953198175265353732957226860168709667575533576728484126266145815137030913571426206756250722492040596175867432391222740625801611960350588879109193070879137369090142522681577524659782848503727102318287270351397767780149719908596426229792667872836655399147825703699188714311286376926249437686989916979506126410469149385844845706999521514062952896788667922604752143621814897335780556283338095617405241128439368279081755167498345879297239060788124085734865545672449124552978366900771980919281872701357380949393128413234321842839904830783157885092898345945419363825966840190007643231980317558203226745172346045769421841098464673788001686529895297214994704488363778051061493352745536902578692374839122121044648577314772593564566880258332957022315740028707233900531055220016909848728044642566510742194404347922259522893528950165600616121123861259827023442806253835118327543554944303081716202513090343655711936552168182108006024364360302097766724466372117162724236869838551057490762338354723150693275806665315215171837011314435435350332616442544136683251734475103739783077877156779167171294555951600745427838984014494705985877530643774588455933533863346956436376600863706196381617673598777534985113398545244881019564122430243709521539898286851840122747926429998542136452743721534702280746984356538547262179097643775331639850483341016858965429876740735922184686873194786441997825071180617518942836260998460221811908423646948530529414738843970879066637219342012406627215055395848780664671207832997427480179940535065199907217063309786047319426243677097305774171177191822911312884882500780973831198876827924328037260767624063406302822278870295258170067542335363896949162139722212033949042267789933108638669980707463130949140275824454510966222127939706614924321383262735347119103463388053733570045954542417464921855698365708724718558641033005243201337955133995041839702841162723090062912654385210150283860316730676367786984392187854070004552840324469997398028236037756585537541064455700161994373520321968374307317274982115225239720191627312871034593212352004243745947134532233857890971662715193487810803006245458652303404220761912951908067878430684631400856048086425175496254876148383649628788908464078938659953570680717142385778375128542571734356427967294523399448425944146838250997151428611287954233464680911045014059721905911901504547841730937757995320441242119160425406189347521929992600635154932250186229659172465250092203369314915343676929325387953030003157269163661409265481441583105501212765971301453563855913800815673089132570146812027742485524483629527371594182337075534982771446955022089172567699633664579654389505973766159109116276666393172941140678642945101254002890276508898121486388037244504788693124920218100577573487171074643615698403206161480506990256891570532424009548770234015662097671606950038074860440561032579393505402511346742144834124801589664860541784249591186581974634263172859353664085032028968597990553858048520785871251387172077546713655040324741690106952056947454497036864475406261150352991552377531575754085787419168874249919058886925992966382649221798829017846445730970830148803466204693010115111535611312358598247044169442191158980951717648062121639143478068213831680959393368752299604409391747066057769244796477266213064910890936537127053635700917783291052594471390718004325411862127136805820210236257124884949876284382551738870161192942900054698547046733164036232038970251854540537257052337095491679979424392095586739893032093359620724957719044825417824912485500524265277740343229166945102369428365895142801280400757119600471759226463280603302599158946254484391813043576055781090417455394141796090366940358134466716200487939207315318518314319650269547124499392001171920133801384770738243268171877861979795570686806618925561150912368870584766619699826269084028396770685014429053795496501437383503862777295899123715174466865582658654533848283257595690570961853807769204456708733284377907173710594635954463264946044653125818130338758876440930689197390645555656227898073801203306133602576451736379191994099693943270659150757832394982292785312516535984243571932322589878213820830643518276141877510991956120874617765657329690933559159598147173492953429549097792689095555082579161556448684256999818373283160987294317235211546533859358471624103614897552457059896243327477176768083012483776335540099249105439604953398722705696368902538783376635313136867359160226585432082260037787268268542657586180023292137905156681479544111803285821165764680093490145729228891699361419383495073240508712903819572822257688395464807575558057448736637417808875967428851631414950430926156648186090334039546061684097433918701542212437282585974197332325136048926323304636447076640020868056092619276571855196728335699952791258721571324651496178620406374722203473961940075153549507301835242174326269113543833900359574950408495293167036523750427329275489484695993159280837156875587004299972757994138654334573582294057161379023604125440843339423178945264007118704343455866134356173082459586038339025632858192056565419683637495410770568175974251240408553964931977792145191182519091392381238535435792786617046790797087842380135213565465448210065109363069758668783346189093345151080404747030158738565144895397572859834326667637433922524050648332403752337705673323183438238803580218524832992176134634606106267707675788163386689950616803393347252196282237960111339371030012056766509079430490863550912349257461837316581052905255110092075466362059731276976029160411477946131054263634306964418383491788033071343359747473828972911841062768350615448311813758508223201876194242657258293912784527448510657129489977820663999930341092079650532581764227889967454659891003067858705266538873708722652552013073659875765423557380085706215756503185003708924768641063999751562459667677646538663739291485156544941503667117521019062092789111323848276762300276629296018702705370691196928519412150034775869590145256936881591102945353050729476532955663969945099680725460099222561429765253905524015330770314978242431635607571457654968209174441147178717637170079352383615854595439231943787930910790548157501555171042798783799613403838178087542956345876694260728443544677219436488611820101090715595461813446093192127372968222181683901934617389213153245236699431278063269367026695472074068268250407696096170382568399447990457981042115721080355625645975484205758698532305892396920883463910090159648542614707116106015770701724971602462691780476127192815481904767544986842917565695142387407209017794424694857901572514700134771458011949926517475252411535241653062038684186345566343353160991387624357242881742010217648812857986110675971320278567372197488642448815632010923631981828994133403628267010143798725777441183053306780705997829729191980510941686463676586987789682351397176637499501623867709310189215401660693169533844392169973782083359626181239729598624438223593840072575111509361345368081935764226793471654942292822607918277274026635007065122559708201494734228077796985648642145820080257069081440978960643392130833135327487099763821253926832146577800709016809329541386055076638428142545646697832705433970270679143535509722385391044160172789992608674953652039510353541914246198523507587730573946579115504926077032800976596890155336737475080769326504419313224522425055004228380052054486879891396864564787625447294350964673778726264738917617497965361576565902599510792627888553862651772041727655371070120961936514881494817018301867272472136189436905038594154555363933842292103412221790859333548199728750194229796477796594331978759599758352432192158915132352771301962966358360213688026367921811295976839985184995520903924083083714295256729049029556015159881540154419333522808055875432639545123759737520182632835446453251619670970786969754523060112043786261444617544218398394912573453377821765098349431887705417183978455539313998415509800576495159312899223788897941333796166055047616529689586403841440272319132193164203997888009997257866318477220774459505088718540170930035136902252686274816230717738802407773958645395392418268036809932593656051232764366973222637582619135813690510857317923879689009337176732825476997966291004873438866956809976875107336719841643089496666378802886246825078560977410231372165682754463149373386015062044246638776081800673851683827941016543580030918821592357812567067685530505435383161131622163127667950223667596737368953891593946445691256812942315531450448270376907895634459884234311600445132469551706174648115102066694368383625210928627607414733764961313825824605682665946930020511561135314886744336202320760054632110213892060072551484919035435475297779553600845620040367024589525765967495082105720962195774361732940112051946078152166251060356901057561533811139589273224253714503835852606432182998247278764036705803214009887738101557412406470571034608231066524865086182580979158024423130831094403123230222539551723708004103326110555704707247621810972830411630249485273396177661418019470081765986855123193529934185898074820423494354200125004498561887024279519477179162885599052731754199632069742264104866628162865033855524525453898708282399974922415265028174867891594871896264183534359641558152775894681673501375074525569515327206079064452510564030391244399209345899598422863225075860864515263491124097256179653427957712583961155935272516291364998985365923598173867850567070349671221700805783209965354528552961817460695197171571692764691663954679075874537892935902613341467698139637108404112263303226620446997848626097734094709217470701370072418171877951336795149023307966558247595862122126894604885554638708517067178765962244719629621533456798074838642525484078086740305581476589594373476026658557143163646802026457264872498355687453324551120620895191836289077784715548897096668833911203310896193482350989269215841190645119246018330522497768910735111243963994730267556570580658845144220272525007338071089096193217063180908458481392548803146877822267396113527463059348052505241671351510305384913451670172195925717409464386909205712521870972475875593973338847958156602229615213795338763821312243609112093936328066505168676690244198227654002359684343134317339529737272601758415279948439201224787379018629364544272957269831883792859443039145462379858133367719073064968350727372936203147659877285354492341548595099402169434877046998991157191088312469683142182195600496261142225234270336056588589527959056669725477033077297349757088821179600067109540702807736536802412331888148781581383451694289700647847430120978487842678984571767122580918739842307293586779927108028507461206760474345071896565891898477843578538053482447044763861056923889287545131552504524944923417703211190618156445818845257696361002804355982748669570744731228667431274457004453059897964684728012786653950055791606714895312971536535818712105207803025345735538339281200554293793471871022455056011217038207689226450969680601727702722971305385623934896221563576782184623671080952031727881753878247054020960239258421922215694241141789172218723496794437317607003247232529440943370604238397880077357845690073170621508422070025159627733200172309594663586543356914973053676232425704935466814446951589128621492626075209228843814658646508009257105728132285291823877415228200494269288969727297602895170588734213283742713629522485683537835538567873265263275235814264726790807707811545557815416215111987033465460957655845556555818879301779431050909755047277996813015752783933643257658473443352658431586722215290362991794123059354654630528561641166829316600896643917541196012891834355417252894788968880905061590876460775174390368615452732026020096268989550403060305409207550579139707941196057577878987304563186790069872033421622498686826637355967712647121803178054454430596591501415204115024726292442763455836736857617043276057376402182362230439582683507136872961220313473356685397953129500069370792710240400449708014150910794152803556475874290548484783309546489371472817090798536702573975432065646026140550940756482970302820550565995014417798732724928984212272660344476945748183552944056209077028583578871102199542369911761988031944849290130386184357361816487500329458281405732857172378408137018879385047329407559653470584161493872272285921876992986643424870803717739306140370685661363561155828045788233505621468388055595651897568607571607975302764779251121928916657918504127855530290214780097058010937020957158001364733588399118998654260939598698090594718238849698790338921334505893831125297856707052675620436971693748619099661725273748420563516179550169550129962533221040162115962839395111223087318391918435599151035698385527041368823865893896764867801913547397034268030356980309372183679270329873829842315420232762730346365956810862869160235477339588005756124473313335571932097488923023573553138228303738122460010293333218965533719080410687273430479456409115488163889197233007578373524100131046692388694853871654530533409374039469183421852914771836683246385802953460644351939018604816504950070136658929970484174052938585161724057008893190739300740029684259808007334776137491985973228911689158823891000568889312190326653111800092881332047602339546472280893316767076185558621888394573653632365299270557090992049226238188408789042777601556263851218300578362270634358606479671296692685454871638311914272724886871812716404787830014227329575270852602133849196642439603209552854242695640032570028717793986243925943535499131429695148546034290003891782655253391319443447648699424395776885028767766494487548182217719696102390179491193597053003858737330540277928566611752417673890895686053591210320708367758764556872026339336909285214487710080296482414782501205426380369935863942280078722870623339087135128739370528565342348657513208463158079943371888467439126002365840723986871507760453394637895137209621076818495537423087547066201801725604397047496781671309181626883777462913581942929648496233355253533271396941675042745104578052740816543909687647109386764510072153573782822284260451457466718057510338216885448776007895203066429653667751689557659534318041427354031416180175644125364601890295395714442551057306895636165730619503214601143429229936829624385632623293401900664006521420097166920855053307841865739889968903454477165520049772667261718516759327919779155222571846697435165699796616131658360464079744880979133685721111106816183183619733530796289489617414811573159263303104230657236195021984875824319577878980912343399580747942394552566846736136915888647096491980260806350537721128060617396657967221943224570671218864554591228928319690945230857365197262968628855523247312945938475266809410312916111300841965206744240738610567240554697735213654322572917071300034836031579722141909910655529539993353050636189951580971511594228694205081121838810113703424560813085021045022081052811355618782043297208895953048738639784942602557030786525830021953389374964943340230240986457358312106978713799730395852592460792973003055315324821378425264464700439690872059901759582450134482510685756625996029955719827528059891373651146458186491511490311736734061971653861398457311186486634259021390303878251768459421133667733880294030361174930208590915477760464265818610661445261415387033784022958570338010767245586023979687646636102651226839277287320989130559233964676964776101529326118468253741177980730390280172875748883151581294080477870490569887594576619394995656330212080064171985614130522426444937710677356827104970162891980277897188523556959100189103573662682139222465718620279392242666443770904938550380565485143034968446421754803276619687946574877641981900887273687723198216988990091191513790569676785288114592377512381496064922281927336907888743521105079572879228529193386256538636289413716296417617132819220616420648253357490421221723569618391837252160657782013634538386697053174696134605513423346616342688685497612691901175511755758239485660164414159462663160250026074880168906549320102680138922969349681301085559011432436369811589918494685580983089470830688932513680967350851512972965148789009867381367343115612042357799072042132605304741481358832075918673519920572813534402390205016205333153151751192529936310382374022596860264982873560348995776563752104181683526225698295526551111289306027188130766889475814312039181663602932845922486606706261550381565396469534845881680575198262618467813165900706467573427172628869432646844833628462140997730210893532854795525885920301052681048311015307758397901123590767883550452583178927877737467893216314598304509544385652377994346998804900584868382709541276176879667809408930292576091985477919967007375444781458586368736148897960895247793490657029038499063566375208215427917957118505599119701283212364983706236534456621702781229584035072487849365336225923451711656049378730547749197998551540928559210981037516197119196585378369924213610486170104396765356537858788620110383508418681561850086270330889322373477240264782633037797006367845294611168332101573650428840058708375902340467870886015501105533131312682099805574121436855692286405545563318731376474147981346033065417331242527981967823597797384618745838470500087886043935278440735722412426382869668623284908022948164491650293189129627722457222310775751228110674771163937641450738045117059382513649982865808439194981494536588214543333834422059568917660962084190215713194182312810120399758239275065224100080942407939207695186593770570528293053625450013610693538781285399731709231819747927988831230026119319717790581515216189924511360319671563461156980048412013006916461018943662496981589258821464670604443264462183060183351447781090993215255339497965525013749764425657220231915147249273986370894919997540145605270821591171060826794918857078200012460924412797983307646517437338486773088804124954911657759036612613374647185130871185493670456986028281889193516508619663725167163880548612005649983209785462451038125918004671822380475168492793872601313514912739950365035826771829767218575982157695314701040888221043529036879822405450167959455845856057700854117264374661661941288586303029956310519102450981617899409938349381793317511783753745811468247456870869939080414807453025147580890680722723567751747161889547173368669461074278354366956966366288603896540370078992151539156458477013139673678832050739684444223281874141466684459799226584772881204571338746395946730491051269323591227058230728103517535204015928578628479714505434876090241836036644969820808605562031885427173580382491973224399939307698738401869777729007085688449753899720679934700855850269439005010871835865263471578004025391579368288662636248935761990808350877712417344137647615275635398400812576065500229614515151402216285469613084092290990126532097350434395454552434872490215002747556169680459777968642205627356049355417668375223353068815100980855309233221625598345726718391104221497790660323278691732318335561772367399952742438679159704421340456399743820519619377553495452908176891117884735623183416318949704983706996478765729643792112845121771140871397152132828118308488169808503888219734621509668654832059026204765693602522859108328711272281055690563225244279230584611707099318862771174668316853379241392534086227614545623855006336465938228319007483304330902063098435801749782834265739675378745421363497526821587179614270912959462622476317674900425522172452181330584003132215755131107383166423667484626451080167001738008630695246869787629945978038295617316651549798883793584999477788253929557224729969949919921448363431700028986329309935600253450053830286941325196882464880394877281387707947757899937131010024998082936304224499789227002342975235950232965175671481271594406899976068056552406436906283942991550065229661675228977649723697656656764293178627578506985293583106005505397221427453525322665521296705383096817512765631342697530969149164189299049056972582654508698167033213532057869914104628186238184044428229427646930610776104553698749210283776542877804568971373060568719672318311994521886902825997159299822438506984837123829063410103779251782489259868105995275799450274287221228679160376155843482010204721082946746163579278657154879353820822163573050623893472648550680796097482897286358355483847018057353018534791243180523975770359868543945971740779970495166190925585361146993142012360951875901456432977060815601020419712248496358447111832812790809741947970874530906313229026392652362319166869208669665575282061142958346783519687003155065182556591069117957412766397740677240911564257662672166859560882575520449172195466122328111743910785628131479680024609381790347248993390894998682222618344627649947017055036537342402345575190377807804104183608187669949757889265765441339542599767112262035022950170322375096435397683399230202275837691379082617410307576206940370048449164889396459597606859221303061984761533379955095637854776933360209372805628571944425251238922965626534047521699215988795335644362773444589268147826319789223010567140011117342508795983073184974576101120042087867207596449971063391128532143394525042876847473171563975053286589316282193047499987747757061506665914543379930493360402562681557734242547895209188803368032157977239902827681731411102749652160980867785207584872715910278663566224841143304059617649548924792784880440417411598520308169019961754255049841021286874977980278440637032308325454671764448059619507293791443570165735240029944475763203990570756180828794035360878318257370113647204535548762618018250854366494014119723607089896607521195693906471521078686361438788267362109905154157603612972426824543376759061404384914925591114474217291579008507370594182742167793132767266069873233616014647962739813195477658717249653249191760566810699663916567454212281346229339731364119452991484662689189411215393560761805342266072851533388932013480307047729979613758796391073954443625230926592926574144832961038110972813039256417857875358110907450053474154461460966056170505489783761577456382448410856768190623644819550180459835043465812460704006829111079284118993368516957983805234335382383354864375032042520007445894580498841249011767141477496249029694906275530762256246780130472290176515924749921883729453761505737061156573356308800292635887920351783911063816905635189121022092783722612171605626976512079996690110911226754646665095369296176565158506374896433544083763426229138242344991506386400100326902795809026745982310980595142569878997809340096086316900265389933220774153210266882218385938554667651233507376565906666980970665240055617283199792469004782435143416974105464888784387037323894021274070425629409344689326096743783085174148668322778834485975484369562252317978037704309684651718598023066256122732087405114501612650581677920086557696428485037848151872318869684199687197066453487301365328724309110506391099999982412926375801306488139134945071733902274086716322453253782724243171462156307603606945219002144693841397217754914339791689792648582696802706983746317847709756879354592328625463137630237997611296470423981615530662823049563424109831666105112055763316157540866116229350403467546220037196371651641759878848353907756026072678666444274647297532807712725548350078934126429139226737789901306831379633618554790981261731414056894127016481891300266310623400974290245164899550470196596251815964945845244097689177085087951000145673731048912380462449995012607354479744903199738475562677555448718196333737262664280956016774762227839966941803269656396388380787388755934811902460677633298820250435392481655279184083527937342268386509498655500624854341793360040409525387010076432076872629820889776472089106043834183505083725351678275028790284056872079667481371929526256781842514590859616675817287325608060168641002353283620502432267843480434482120908621618322083281333683321143884370484189257876475206268300652012383537539034908088685585414314686023000083543231115330028855690599559955053543939533832137042209659463286619724045832528043017663716817172084477745501524980111439772171295166403768013908623757038767208110389942573105296469737193407301407641248517282633172047439847721672536473731850576909709881633233454776757689010011203632628793435613960464339510162861877530409748072148472187924218394263649728893780341082714160048131337072611501846300636095147431512154718048096213742966129176385129782832347740608872287606358181561962449733299316593714165895856625813066748644633909976775123259202943321709894062947452227335614210055927147815869179552837138005070271985921686052899317169252211854205460217966111600440514220361572261415393068418196535508017027184075718887996804751035170412119222770790765208263809796920222807574967857533039819592062172777549983993332389459741623807768162092433571858348089997451489846359206617822525962431691171471055874270087228504218064938410749771280537221450621091844468516439164033754691039197280930466402226203765400160979415881874125036011868654865416910671285318766373267186164871560134971027307195728022138353911388686571379119240742861136312007338060506326060702292137408530145386835891776822612216130965701522634113359375851175963230199174303657649880086625290932170175869372085356948915699714475082877030377264185969685448487885052481416959762154009529777974134085939250373912815651115890199009658321066771596821375078865949242334047533064360529597363082086032197004114445899212852637173419742880263249536391181076540340753259088394618655113319085008240404649686924870146761935013514168861533570912004521126335092803299841203885075175300956904055276047708064721520044588068972207496619409736385910522602243340424330042739350979973569668481970937543973397945238587533834719619183782625233451671539516981288317265232068407502109903117499410533846399669548383560418292786743673951886942010409883924604091299160089299061044170459042984376750639259374569096443364332885454496462615027526846501765214087718275537072148829152754492877361755426736335357094814970484211681508038525834026108923569943266826947219700504685301491303436668175844951792848670509470519317372607241869262707636272755490799601844757927597801488520109141962478823334153642703052081309955068557849044602340154538435160514670147158790676960288492871163657515690204180376618485729452905938523840999649979298390463187564019684174594828646835967485940052260373288372605162388009399066908415542532999769168802063205483625680836893742497511053509866240651711081926906273457247729363459618746077545207767808122899076642357166912560073569379308193877422770247112443827461874641571847494318935495306075155389437843810924758566103423214040318949009070480883780972146497536074748157974009853844549965315541578264384126635013864310797314989584183430588726389525232161683713733518166397003254623873505335350505679112138452185451760475974419593632452826320813246897656950127350593017608001474175935655513634670195053324907061419500455275198137790639157332947863622512921852047633246036796471696079866127173828537245517151678021582968739245586528201297958290891572039161141944929448979675482774859874444733429955186490555387636301327293186939326671043043786849893241580513067979019565625703440290958741282366989379519518374214979805280925163762934737225689319704978009378767177241697081601800481792421842952254999507346430136700515364903989144517266665149794897755209267334455658974692635802221057927851090279867071489373151358125250629643901906178745724691660191478137470621596308678803206969617416036893970463967215222804439233125355805763113044112715102126082979485270152371463307778824709950919560263916081408744028014261553357626032071623710216970544898578434449253000748960637395232432943893509617150042171596229049834876453581999761720035239274364770244599090864871628984808418963475905043659574355948556472835221218386265191721235049620095039699253168243987386592367849609872007374309855763850603172110385841889786357616622502635541929646983963563018407013126232459180584758656418270028496472887534288936543228506375437406774933609944777612321281822310502741304199087812506961054972720469097614131799239596135515829609839323951270241023446828138584715605050197662754830396542410495502381116387124911825699775966475713488966074113598584456975422024356717752355353507098038034323127186866753395412267658636497862667328813474230977811236162158275036987861354670654146160749504427175277767289444436447351064477348434508150872842009162594972532866951113619250565430137226198610176784291535604070020784706880978067635940473824361075890265964171724112245091166789400899590059473998967379260536818694339187236827979585877221811043806895360752484766674815441632933472988585252542636377983452060890251486457068309320464898556184351461857237229875516214567644086161009006515710625837309207095480702678820280801274475876954728271413875686757241229040274649374906870102920673677229630537772359154995361604142126743699568357237255271113556494509306956558267773107336952484081717419061748336373960275334714189304260290570898210895471339189087579325755707480868031444784782401029226226264448364398001749466940517214791681943226494605256179571152405551060087240931385101993622385163849334660328938313111987944353129325962787319352484658646855936813216017047861484575001378549875749504949304697557404290490148611043810853752590931936263494069029313215697035870374614345601679131762939468189240228860955582659077143358227102478807188111656123232243643896882447560234044314679960429062510461145057503469919314167477441334113171397258427691565344990922447390791031208245819773612860795431617718978687825481870661689490498960524173644458269104788249575966294733516908872054261065550121616369313271793974081136846740536698840782231309545921591498589525725360164727730690765984820234828629359539138204195181966044042376571075978791630216312365678413609633967098462572325730069786345416517534794372219339080611910649659317106163415954174302609770710569526234148050042606793373351212127490507725515934539847603918558399845731123725339229063464970690307475068378076532971150945062745548325470057688132367907831348798933845650050294126614218811644588466159557881642232610038218985141788913203765678424280501113772600992269818374709102893321022188781328067693531523700215372748056442714330485145799765149227353227439540035045457463960255939773925972697143763855951190550412700137864221669513333039045006763939550370153318441888892012885977883432683960521852405308980626677913316965969548974892407646595743514391275783302395338421396296725983941498500951347574232179870197024785910067439071107645492284930834771225303821264722307924387182618804309916246292043407219003412587641805355861184237384357372745335980797580630064539614137623167579797631625580505755139453074509455822099360323383273264473162133971036250906283462357320495194756531575481550614353103439811471433430068683843651019298243124608937466707511597174214394125088225046635503263467565923085896966895908184195871745054725381310525310079395096119449176275730455668506692505652533886626464513951255590594837824810234473782566823380292007876122743072212336426882666386934995206674582015027194388055702341551472355914278873921863313614355491762009897927754836611486655186759466520761221011399096927662591835906446538146422228292817583368970844767648343236350093170223558767397534957211713032461479071275699609757521749483042852691537766726525366416715984275759525767235099996879472406201650918810103729663320644880772077885229184385549545254329451177585872926719126466141135413926650558424557416950341732769557007968831304565881775903065891750408857605372939088189187113544475772221372974518818940054278926043036824282904192944053722772308395135898255558606867707569678555623201247757212093626008917616889967348055911892899816716263984833176190203286639537128355779862685233715237221475519749770952567462779500976698190835282759690608037505425271333149266770552178838960544820991216558065432250093839114311905269947934597083453738814697230062120860767338754817528911676895671683631060825598954338113835773119338759621755607136102904465968974069529494072211072203381058131515452006339871709883589215691682486149697915840514753538701690152009705740436029953521816883477447561863038626948057191788277739235664771242670315999882876062823796924685031568443832475591756278737893060858910938047624592937828620937568559748683174494986995178617224032331426255987760356574035895840030412060684568562857336685506250489120171008942503126045918863415369402781139375747294356737919922046395908339442433520594906942443631615201142879560404278357217340326929142139780123699916037939617714163656502238942627652438614133328867037948829166523296191183746123922817711116955289639378962369327985211246872961072153591533879371272829996671431815663641942065306352476667787608705470230560260511966456995968986007335682699629179967556319075986483475953878956485039357996252052026459790954613824927346327803235437491611524572547909205323245312066193486678220502268619026634858386590790520244462005922100030400472979828593647212024685442980242791069583973147357431915015891929879294218398350834832770211116132699916959021182942829869105181227623617789294490323103257803459722750238803286057113360842798354593869191554334703526176183195707614420154884298638447844559548897659070127082712031959205487685179152826660742672587264310161771402276087116538160798869018204589050280618581102696415667296546009085626399173807580674960336723943879876159222152953248489939742939643787036099044648141927474593318023629120156744031149442499739930271227164236024104963716591679901747230813577555677543132669934991417698561361477156628205154186722357133002330443346227850553001460959118226136720994099737117980335894600070418413920851766289433718646086776731813868393906854173268816956078794140350888241269574602739393946851252520082485170567939208163467278653433698029887973096674995604836531237813412765562426587971570768484607387007680601908171864668426082080903501569791780438110418048760465542666688575461964929200236165475918572084269675218175679977903816544795174682423094313337757189898187429127480500500913682800855263544925606286047737940858355333551708078051805279916074043558589605344239092756604193287234495938043222832252916828484118414618548314737389872237434486320918643186537563724439917710642252025374231284360320636795850957960877462281575425354825466193568278599742227624971793408024841754623925674751450516628439392345797786087336764440862124950171826175602423611230306993766597199826793956891229300161900868047235957111243473815870287700806583488797534569390099119864741162365261623854816561231480078733765384361732617389087654292850371850781922586778019663989902798660412393510729876563845697763390697668123660257091986650513356274038700605536092310799617332099509527491248117401871642021472873844269111027403903928383871281413986568975258867727481395148322089591018700261724704973289922673855476066784431678845808091368559145500130870903713994900038203385591083463556716776043240744652826650253171242643675724497878468393752023910598384182606483486549287188612331498278784335027593413373459029103469069820679262839208696795596433831380139363720844172132818344641345240440651499627773169086301680885426466474916748425297499902753603482837467918720602167732541186635381142718970241278789050475486074459193950438295397074037568506615569172772436764646978966909745419343719907183290690696951744587008075449721803230127790630438267596819166173065519922220687775101608842405835165913768917714863617698972744037142974999969371214713886524974622084003003553735367524632489053340864958548559359653416199529404277842129026033012080375819945475158933788491673250102286205755565126036307584341447090867500058577090256747863368595524418313817053313716638950740321830391411968916543536279238018093128883675171842613286788664468319231488970163545644878285843797530549887242143496991368708852630295616839236901365591120184641879861260063478067807560678290015934766502124957389310440397133169470745914743809454658609212836854293901887941908992780448435502583796617219019411815569873610448358254316294462218270617930299599620855593020782164426152831421918264707542833291081312502297265330589403660323648665368773545671872813433886304193104973442565864045890590396562629488678734764198185274454421599016356102663597979915715953507651145861118383622634640755871374202246730177983265215527442399144736188000294335178407472345472335158646266073678645180112445473992724007328109830480638858624324827434848848565654576357112913580303032306706033986162306879871562061355455475703634842161283052615059387586400022671667376572248451317511930613336736524039814427267145944176556103829931047528333289672900471579398686252691117335337901263740767380664001337886650508930802799005342271061890483892140366963957412882262511166222403351901669698022587489025876757127465198479539103753845188598937486642900265766069823206171890846180454380591371593450724291655499211799842637039583430900891392137741419412442678180222372834267976175506751646483118216927900704540533249780481593159383729137384985304725886355592152036703592455494657636232186602304958607576302935762503005869840734106228114078841583164347288700522319500643359470735840562526891578964940815461046479308320829528943926914658866001822070547648625667040182600907167566193110350562345764258300678548910828710360134025856301913105112940051093623585890313082094008372439160784831660269248132867602256209744192977470047966614698050846045464866953100849070043678692689575237573944196530920223818098328781645351030959030939054958390583380504926764306949665557268254906795167227461946831688669619915456006091659873274303305248954825036264748261234555889463311811240088724975492704311338819578563539890315793685914307831529132152301472711487676913338028074509437885955560295053144205065269332082551983913439732209455813249024042150409923324578544699534093155369516069180644994308662582204928073237089669010621095409493307034803412871555437368466559006937572110855194206807102984973939592831024093458991973472755813915228777155046797962254483581219394303065985733804720076973197611783802808402642778952533747851743322472395944026649658237578649137142032401444326138602712239355181933318923223099477510129064015576569599163287981666892927917201637823809556125306103147663105022700025179053962431041734458250872292485658287724864537890792930264339990484086417821163897986350674920584022730042093577988217313246465096557337978390959292590725626336262254404702723166372934786281553687558151887920373002089136389666534371886613462306772152934810942018531588438196985216519270301480392668350846576123912926666780851155087388509341548229669284098976102711147562228875951755864270845723769027958989620712247682721745247949557299970410048110429993801208787903858633165084500467929368847662720967312005020353974964073783090047405172419812574516267630789363441670864733641599486672164988762717169151571211704985777716237324743757541575806186554120296748446358088922705091625960705756257331940241937781409578389766938769767574882863394475210965387063377325137437419869881566414096584562642993181192696467694504350267886292771090737225762786925175164130397891030347540762534633571871927680331776528467343040648023870524388109283686395116494484049137341241902251487024165974147627352945940515138355068417147540079399036145310195853474406415385404723138287671248183118819870824973350586279000893302836294329329220562456787949629878456768887429298510858394973909034074635519013508569574874319607409740516951398275390374012926069343481383803329823680324392734264015279412307407740506177528260244288771601000568753418750728234342253398855055061108666066457784418986402611307269986834083744797793651371068307422641377050468827516137284964209040155866449936823058345732523003324592255123597420088173036795726862490188499321398507310005965120041098412443908670939761386414018858735321666803137007248939336967569770193949927892104518071126823825936383795824325049068127179777171638225733800255215064783329300849808522906090032071443580458816765766351311868187144033303013477747419974227719221778800978537332078580153442134317038579221095468967379950661635537606322956463109824079410643258474993703717148014577928359687036732831382240500502692674820339541858444895470415468306312848026767048545390004305905309295555230717665409202988879435235551764244751905496280276835166458134292753977409619306749940554483175896566057000919272590197530368178851474431592588953055873537052634581593002142479316358050954162373752040232438772890833177986598932994913030602526561152315666472164949932080877212566701478101439452635378716069594248661030453077620526611941197598578846539061692166926188728070842921983927358131504282480855160504520838154773542948252496953347495383196641732642463598752130347506579140623176542275257042104054437112734102387848794868647641599036120226171992815794556166798836441758342763520615257992831797152233884872126217659167164727758163212333077911154603739450243676350729290453557206282074200667059312623255542235300319532685531279053700456354690995331861232142888996911602614787662585161854237609099762097311602380063486579802129836966271215533921046854998254183182651131375538639712852496479915026013417714992050620315491428831080543030044787786747710858490398013222402296861509853158766104452719588480748736463104777431051298850432521829922299584056864723141831648137448350852413712011039281778880069706224528622755353025149907373913252737801296548683173123824290578770364538993455133475195854080818349512578699124639197481182429882060953662846107672826313479772750152554126979460276019541271910504859050888828186419255993498232784458955755815397194093840065926244749201933393204634832887488107120498428221619658601368816514509811309874739056547103641720217410048029612101908493343375732875581912605118497102382503501125855055333454236749451355532267705287074839718424163922619088870923050743006954107022581875229908496498915747599112477775816233033108928955166588682347833418195457538731090847131474762430973933737120622260948457424652072360548657587497465284022306717084900922879036621298925575761850573720121456195401111169799239034164206267129982240947461601543150713277609424698487453287945830992026471420742967177293324603511125004630280236471114725472070703575266483976753232124917958110825982517807247023288350027992083949066703167903954853492183741676048336193503632247939356894635849083214776116071251676105526899897934346095164133565510362206456233460555686411569219870159447363146693153714714344572775533146115497448744856395399909859303942781552784872214091479485298633231231558577448702065320230320750212323215684072095770528605048279078231125044181422588184399954285841399644827831803906926950096203473526951250880445972580206090791260055573132699224321441599937664851668277807744823378925173830292772852407258370188955396214184382519744915610374726479826043514271137374573867156039020778251151598471209855396187151816464454766212930562528100832082334012022570551550142946670427319116840813445719209046023611354096700382670617905695084981108767968041870695130241891022881118884114893159928543114907190702713777996173845097267222743142017174282868119508081946530563853342025465553820770677670895702040053784531235787902028379710755604999263730874170835241287151065424041830626959206001393931036413310786181887060902435347355366103876601640118761887635614379275894512783209139791985681440618441505944820647642856741661697774120414445626130046352135260471755852156277525139585047557544206095596545850027997776002288290667827145878284119608979505786066330400762538902166266646686593791501507258409657225355777459642427057918821818869063189739020932735975939625589515057707538917552784153878375303611109914588715568859034839113692024290916132558445434886845611723030253043455742893078884083872771399806228550998454542974558241930221858356404894378218680112531335330509969591174005520963181935057927697088362317407253801323666165236754396696797777913458801567846963469246495822285832398926849445985630958071718981449096390826669836259903896008208506098687394463866945740966797373729211438176112070652007402993765542602755385232401015377481828119665489780737543823996120703100038178542339281950755254759201220988195206666138265989960359610483609661139767589274369079500578375020488612986186914865613944380951884326391889083521840046418121320826736112885285654723864542146749787372293675584119141075187008587641929624221391348131928682996967253520035926515757611924508821311823675619679918653624563362065418127600570884037374287611871430093665545869668603749270128930366230605817997445080397349030638269152371758996741450286495525041736599562323815191603984805138405266920936923814175265680859980262433286105688305519993996164271161649488435336307266819667390926883405029026679724699667786016907794865164294524736678651561223071177991237434961186503205449467775895377035200324356122856717883840672508196495873357730464953141204152140434720224771537624326917377605699158292783811253829438254906351235287612764915398978051558375690961402663293171808771148691413296958609331071807663114448270835729358229467549972809087465723577412056630300012961615669381843929413083204625793628224537964729717422317875641913805885498906147478422102358543312790465843072768486581725215939218571677367142824937980783009805756961583442396976575460002744616457944785849572622336111102549804644178902746779999230966316375832383709692030614824907236349752126553198686068352524944704858272269568749652260711745307769126494984038589449252050236916614951182603661287268839185772643771772808223649227565926900014930942997048231954898573736306263387715921319902400579315542125255497999412056937989179919106014154158568516341786422904444972437392165539945809688372831812131210164111415974458691324012295287419319951077782609262777592169056057843647131109536826041217136108745660318753492679653109217310471336327100306725460779344245239290142894593143594442554413469884472638229743556421923954795661420408981010510075937123920638478506233339868029967585805067943974739979680674789844894276882689068777125477128524861106718327262558890096555170397509182652130472522583362513045003297624547968677890884266122840649947731771438789015926534684422819526277092796573484500013569980717775760640054286583863491696222542869984915595378366519791463205765579649957412810019714748695150252740212605099032096055556656915642453751333261495847205756576422297550176024755910843098764179809067683324722281385780095386612959939872597131251456904223891633638267237758641132289716920466785501937720420154777047644509627389792252833274602640862090685193585743616519982342892323797679799753155387186885114014268956786619418983655825789124643925015408702733754858149597553496075325093288795282851667701941570606703028305255879753049471298714810971610517006238165027614151039155160384202152947390378250726716823378957213413777714697808839167675102087693782034836405347169896076639574747226038152401970804204924328828240539272432918253591153966199940953863619764107872538300207418712418939456391934180052150419741012243009587044018822703923544375223796625447734045695387613138033078110503939853616400521959222225488345946083802648165272588649942764363460021010008029470598371048962801555702361335380600011248777784365985174670922633653425113169761993163885728511873842440390945401437501671247445224233996306345550254504618678016659670234513661496040641639435607094451343560404571586464737146667582402506825583387052432318013107225786138587046541388015304481004913149034845391586424758483159604989462531852266131673040439823494845138324679722518807137153763141298734800990028365636058820572168183207522059948246630728339155558064433230825519537263578144641965450302427925221641540946584328778574899452796434087260813161697609681738412739632857730719843261308293934018472403958076498367997793240538919990586767928568943485760691365462008615917343171662456016168657860834047706731262129304247069041641535538432321203204429191495003481325590132521503953656180815271252944773432544015435439801142741044950676043180155268515413951831458586964839567648341855606417216107323939757922340881882528552277922439724715560120240731452332434750675745394670985317634428792626359446949475850127154503028865229037704899212467321031144596617904123793604332322204408639592786660050020699579992049881937199379845164311169710629961575853626980009759848351137185480034744757315322925641068677342665041884448257302568405663936042805087357635975552110533183157094014044707182922937914104388589766120727544938974447782626332963081290331088927644111801830505952892607705066806163121701983382454460648998708503787911354478362808626063488145339262740776508123156717004398564920403008271583256700516648069920514580922457946549804539005732530025011380403667165799650859584294236985087155287737379609745845419291774708463774333364864706867249836618597707432061817188142469153802006859527898609998301952324726299480358725511031822725152155371467319239676369269483988369461398449760671532731503025029968027655944096505210515643197589225033506512660605884819467557626735581632777279111183734148145647399092652367208417484091730928143701024863035678975517187397873978617592984878702006043726196958475002112440282500207024567358580403178569408357580214688866412519696729833190400569521973347407583364911849797422208079611049466455712673401210479647848959526190944748017118107678963693671587642757910414169322516328840960322310725191985741318499118528216731599989649681358478829626318663684488688471258532219105616088895518713604991743161797317836045387547952836133767661739271696856514474055602377482831822014016996704818839623095078621073912421089106876652975750473676870313996864528906145199546729642473049199553834261635811238612612793839400453518906614787731963206150429434530650011882639000999234487852793351272650267917993643525541614702419676834150706558061332272084434527312736697627189126747643109966296920312003154285306687309797937650141329494704043056156478320259221811806221420213233126162050026523350867700778305999004174113336459692396818832227392001126657728021478062836891336945204740672699475231764408554239566899632177874254753437125743324762333974791717848296044705275060843417299549797342465130974616410730044408649042737885498272182242521242529253551216329465220592913927088600277494116550244307825098071720242949122324056579213288370824597496041042845467301810929286365875625475894424136777413930323456310539957923304293470377064661254250979742439522238883150069383796620726626915472236184342328557355235696193785247358681651460587021197613762669511698454905977495146820737201819584337103609491812042791319433379049191336669137575080313006928436330760526654130937453712534531288769142781620191492693745942403375477580946461173446277358283073653791078674998133330282625995943779360942841044469967579649749729493716798005887393821788845033421744594391798943955794307009837384659365924243121287731030980708091948952166172144575766082022419679123534563901948771839049301015704806573487117961273902695780473043525815366353139240349400637036508841067578569357462544958781895461510927119138534038263387617786314320392058479402141175486078177152626117908083321740959164770345845524640617017429515056803822862536031738807885632930927016670840962567890896319096765459573424539310831330185859093763509664680172656754644978240456449083020779437384284016442142477796083062181651765462107054701759171131216263167360396812486830216405925929389493792100120873360410826892540295406468644953023690246266213254981991448144407939964521303890907068463727546749960989271227011619209118983940251843967726010308237271255062353621747252467678746136669225016636004405735616747269985491428281299645034566420790638005813801933314336063281922314671593998442808942603090462177085562198206013493295253395490412043632294400560197646000386575747577881013200479316740799271272744962131337714496766015724248096690634183506064295290109121175017548256469308453130993959416371429877485586162161575681828774413371887162437891799257876155102868840787884728686521440313962020614142861315289383049862126468607510287315799897289732574591743643588572096586830507822356748632074432988506092060820210209146829377425960498775098788398148491158717126792437086758280370018729768777869069330241755173125481817320180429613627318430214150832593016496933760145532930008893663328443640014714113510080045376815094140383868935993825170204300226584834873261896231141596972035684377643217146843279561716164178696243135349349389285146464062000636831421510677569806401003260519202371436070838990820300564219175362158322558043647585694759128335811912513121567122338507550804786149578777470443732282206342019933859881369143907492012512478313540266540477336777582496366130822805168467238129783259325709836429493722846049890550853335598933860915839409066791524446867490641491455776481175249346535737189747711652995991889219119047557782495211830364734325452810705981462542738614209566620365486709273981008626952117202523434231439073404611798441423049462194759189379233777287225079039200726107028707632290465428244893891241721201520682411255307562540277673735097895147282503928935572131611759085315063534381242602380848908670101703850577061348732535254355301629528576306977257995791656099750023723343337679349072521954558995890866377751487874986986368388413637185769442058918518561680385052835869325540973756375966061669868486242129831634635643903539300547572804146859805171025929364894665755321492159071229268001548313076086039950697665712242243062592261274206891094960314449665071690766136177078166890429507072562250459630968737312788891674011415715181785626595205206208820587764712120129502380394261028359484998321529340087934471526314991480927627615614536950273764365917741595401765825246157089294642303049826710057447492367646867501181339432381941330101356214100064086249717815354839301232505714994833959840659168981920945586320364511989913269878764036223540651670743312802948529698382616059077375434852758586785884927101689049315817359252233521429483171314399623579367584410956142065684670168656645324521162403373154029745149036757453368452323329132983916175029774335583939397081483357701391679385719451510111600453179397017394034359029089557208732622489104477648060867284873144033817438284775583241591734854816280762406354159403004020265209427578635044331398972357717493252125921587440850956798230502119307310708066827580227643569949543580657733270916381698775779855474774503346517991423560570083146118433448684664835947175137375142948244321495094558022770288881059923739900076004293655581691209637983511281308952318305209950795244803219863218162986655957224488160041061484952880414956864595269439445425943955327412781387395048242020311208099949185779810347172397306479504544716201811709161469155714163371745721428255308074317383281130740527229711758729937925109215011503416866282293109164979112762567462012394644291126496835189034332011103012515334594036245468561489544244595553065387489907977275150749970111630538254278642819156207155391818892867016965765290953711751350816527195812919001080806520717910037474031936771882416341930550280837147690944123290916071271331979433461860798905043106984538733013932393641803285970256193686928004937204726966052600330957087833922654615599584563073293170716894994423135260639928991023203948042310309422163561848052019341335850779227289782701752157781495355754929045741285348272750518444249315426040881587157968111560893216774757697062241398179401578626430397468356939637132070008509498528093763945629739579670928255865960331668989107547289760613536271329935441695562805568232144058792799140996324958483063664261422967283745432767257100888244954100462298625246947068001798340210010543229194381128581712750418322845343338426840884264332103301453608161915223776037747517058152923983933272147462602467729858549554806983383037123957549888285380349854431184734211748399603160069860735308645455563562976242871437819266019472066062636624587104880174305906621762414860771912103719932792679093730274578110097964413673896216970689462899355313661254063617751577072639708137275804721115062373973515123370632330609692574068049768721264434625581554058451011555879212906554783550550892741050449824867951462003913062091325668681665713190648206299886079243984793108751505858058047339323089968567149701015766165386277460221827053445879426567766761786420230954997688059607522844425143206293675056478090840795795031906959141615385053354160373248020273197684177016022671460474583372852051042116477551307696725996680653583284751258318850174739839254813117512812373289267492747083604909986458050599404664668850559714561673274400427387307954503107130945282374709303523279064769243849951758519859254782110446144012611890855831298481421838514556862216895794940259089336875769880818015178667345588378691429877753762759029723950827817204473246790669500578441747780115770869775010733395985558903867481976728020491315958460567637756370008045301193847730377941240115457882365740970562618805252447678953022062080417425741526036342145675639503193884914449101089118838246435006471459174226801851844038114722943924788741360622289877205436110866777392774744495886261878525651637527008410191122351600765069579522022782219354813077711099248930564965171156366043373000269575474931875957067282461760027644153708074864553843737961233425960967579488200557222151034852161113173568594982286942866363848300686670968668063213913418190781208997607229208585979205011940204878425039679090144141388546301404761032508270082861236202537028058239779961582111324618303610517808905662398365845940662665662707141196532221016951171720616127161127908946718485446146090600846299651899498224629921590750897731600266753217319101099689085411434577426966025415034636351417338562864626291351625782183568177325464919435788604694958629058452754720426076785581024839157077971655942286182323038399396640011472400105455198022885630277399067760381205060447466859297414346079481450766756180680314447792541044033772576653536698963706024436951901678546894949801745257804384809530176098267509351401059571888731258535276729396012243250591588318951522910828903468875209562893017760885140090865939895104162323994857871143899582052294122584753393167279799678600442385920336264288864693559632539771128983115731767809593718882962157174102298482328957278521701464753218507121403930580939958005238811940195734843957193352228529628543114150513824054144385966334757782916945974440741731080076145044121083934684497656676469164465681967660300638188829117005749911741300767618843110426405482313330163144665463653336432003580281315388061615211910612256557105436280655663186371565945161454404676148155432132166496539956363502660161632644234126186293480362789098668279250567888956744904334162249944453210926946229648777909817647255859409971493235580213172208345185553323454516973850655865840639216676957071496641681812297500202857798609981506694580862234020488557385125522368141249771155863248826475668747225686350355271780593065754765723618589279418137194943181635879091932435336940147302832486825887932043695567943532303906622107334721372096851936833700786177436624029631704919488459443076149539430383069216493322550986959147059983044920967595108037099429003840550618784651549374745125212753517200217757276026939438826356323779715087192347875834707935411984296993974890524767066310342686950567257106191619169983764529828897870547909505608436091810926531644284117736370227678013431360767137101430620002900898728762529678194288486585146263892914325527723858194523401531406275714308038627616966329247032164789165356262632871410489087304537910975047473288350904995335042173031170504372091659050635948887990393840527476334892026209922825800196926233619724719632472293093131317758815303269812845300640558093266696361249060497930742961152886929499881235327177672539082003834958827777423085509967798517723204895908084231851160071698974546153310227323803910437401103861770470501697538149512424694117574086785072033385056587483986180513981077344210949220850461649466495049472579921564152638049926940818131522057862286098951435043806119028246517236057748665744959251791599506490354781354977123823807053422433057264237411141461997670958092879604513230753901333443433770663311311344774667060401013596096435755444506356953071454274988537604336624528495817545834279918408380537469984412529300827627326202856985140450560141330373110843266559482431586849465329172288205968754829401452028477213005222648082344752228174525378358098493570159694490962928702441450823712467304842550713442946881622580777454000014525372919771790443448770578047415744267788816773840962424367468598982729879217364600182074138595833256393246238733981344320624317452623919941422273262873630095117901580756045675710672760904281278106258663169030456260126835720578273245903010327432830999056386773739705767379240151794683661394530151986455845038639371858722778702204353231836436430472856296175550546433248089337755046078941247431030135293466126592408521483079010418458728027556768648677647527950060814694646655040149042861112728500537582583253846693317742888660557873301967339290970130759657335070983597117122141235029546054131201670313539211640290684851041061630858264380206796308275376388792809011364271686980147135654475179705458866331619049337491651465157015630853036912922647564201192770184434563025239270528172033641873550554236607631312928996107518675330063847246142441933619257850100928779862143257183482368155740276594919490792445817862682141205516080600760964807590168659599570388472649453455591767651388403113726702241366876890538557583163974791233707070339684124575353803875213223069029543488359290250791834292789864186207016440224339074896584780289214707819149500510344638635608813183951755641403387122280977583078784038695466283157583799350518082336860697343040643388832908463148920981183482353513325051754723553383363323734481434863370716006213593922355768756117268525899094744099538589978131732729619997089647148452467275458585461377210255719986510171638202538020326477224144068015302294066157081775354593058919800190803840172596796046147091637928028098536937490819141322213293038799346863107008137319786930693921080368049487146360326161557073666035822672632954448937527006808664417437010461087107232533632013888294937330916613736801616012071786521042461336163192541600977884363963166133854602924160205900650342731931694562058085627289422864757434057168115081518574164246764682225061010908968075810521969896242782359877719123476176912981582536545811215213334609182125451765226398354630738209258999267153500171713623561233633582978662078821875344597165577306647113674786392520785086900030794166949608931411665274339003582814933444738509523535457787587798853848550903220092159885459901071432363506389911630822699657655255210783674386421591532280491969395855099137162953332570014924474111083148241293902889329556972074247646585599020030741959701818652536634947156357942594132340536210666410930471317909307500571959253037236838464343674066239380887705184074647310632965674356513474677172995973800797155547735400127571204704093110241280749923876710157831636619388054935342080884628042371254102516900532199619071400327819055655441762785669499318873375072286099810240610524374487899462288256282230562266394845685825043718134985914662798012413956546540428626076235660216650343728531466830601344852415865102301223345252011481969250016190478113820849610592018400205595644370470714915680076365194713519946854740368834210423031649285723642200620957419001690982718538768179443518168132108272109128158544781475114396610983750815126766910909898180815744235421388086559789218127555392065280139438607872590457595935316740440198812238321204788583229840576836037685915515946646283221310927195970392395164694756343728060761589574521900981110787755638348606963111427585784333851929248974846485900879042753270514877325303023163105233722265210298043983974846130143230544689415662117031042137840641451964722395065735522810719939367874773515208486169516825183380401852668170887761181240496501045192361226089088307934032402892401354007711138245720129928487791431041658687099552350993772845485495466953336767250612345350427242682899763898518038998770047857321300530034091932689135276951634540350721569302050419566796137196043655236699852370440709343606631115803089821142668445388366142683567504149431049899878821304635804974724076690211716388594424800503506088578122047511934478972627802396500733264008542416623956950411413784532134643095688423635152260046276090943464200086032147992385937770101826052516739328340312118163624139096430257503771685227457532815386779996980995716941222320818378632329470675125369683115465920323734885793746517273041451656391112972570738684604661084201215019977504498311214260807701603773661529901594360777817863035368786767212449153835334310015685521809793135889139032736907836990754660948147416550383880757035468369673803468130562253927916921820073615325343837756464619268796958008508840849005561177856567513100361398198081698686935099563919975967807654689057055668757516389951701720315469449512502049303609029236568576655590663935365309420015042456184127424311414905154641334260463175467042497947522194109891503882217379378244590254453230792042605839719601845273855455423610289455806829127828779961858586160073338626021625824853477860312916626723609314417341983218245414102862373485964813572005345238060488217000861944609271803676656132422842521853426315071655938053341467159497129983732994506429317490561187675087942990039925343033634303427254529759240876377813866294793895922149491387067433549541461122222019690866442118393129348859950537660947595345381711912773729262946288493750204871113451561623442126832271904620974515783584403490554856229482741503441691797133691849946442964041118898921390576815347020002045471197639201864229620795984323189105070714727727986572338483340935600058050104042889739276462376898431170905307655136538867748221956516235306667202767538214315951506405611930229119632934809023610348891950750944131453093399929722853530329153369165968610414918899975248266184843479450970780804058071809155900916717255969265020837246294793257484340871030249987654481623347179565215312181487680955886370739995044977280844754548945834300063125358559313565160554497586640499684509452500108522639250183071674628288705680180433629250741595859846173714021097585344142439398212689306918875622790722942556982017459772474549545982768320969277713694897267270608954183537395092886811637140370686287262444357301103617142098922028778933441404303337539314997526718241817175536173206469609648964141517052165771432189132279649504490015157026203819208654136371760932366159804137648009494824630152398101469812204654688587525975782806722480467158954945884873448012642504440364879934093117006963260467638946303094579734027235666109422682294141564450299179153055115683945102160352374251162719559110104568348325488963624375366466082920670424761036212726875534453652582729334980494310147046854828262085293535377715452050012074385813492304766103783267803579233250908873186420685750798918990732544904417266423868846212571295591077507910290220133302893637808341974683188230181149653145512919267768289057429831357889435439394748760807649795879430065872508634666144459294866114009910799672978936250464829445714699256890539547898755770659507357689398809168393826775015294111245913502732473742281359993762634714365491147881456424978159585089813899999544743655135634712359030984521879549003356443152205160366803021260703796141187805636718920562675273880516658797624440763002616371405375506915083809010807357142442140074303780111074934556198375074180598383475239287965163255963719233838255230471793439585674775437787465879356138604251779102681851904223550447155080542072092677063821147757321049099676186962921645932747060756854745761646656101832348318921730666007081765411984360264787467966649945710057791224288937060125060493531603654624639511554979491180062945884421627229759741866418082489108176779884588753551188660586550113943085878615478031930882178103941192912447539130652917449472278967804265308778574633969720394621738483911991195181356382564149915747971552741163233937199700153286555866137435782939106426824560048089837456289092282405883647026882632307731455448713793399351839216278078662376348630153626025852798675862937535928638484494919468662550879913757929571379059917960421028804146151353008997693338058374581864167325898093803588514106767674598347084188323481432436717594066182821076681509767583806285707491280912169285018126257047942055768367794769492909677449873714174136470581808756570860202926529074899447729263351787203965635237112246529772938765239728513388189203008013077618917625152907447180976581095429217289185616633850802529854731087891550140723632747287611101930271082045033293261496140198903974249494076670523194000027672021201147547868719602698854147946612427801452946508657380051921274501470301965847237891314615199078329115704591112541539529252476554913411168485394266895613139649056000726918722048583555586038015146247974845495470496961333602116993533464341380943531703972662966936013829237227949045430256759447429121649592319401243974334079353758068398438211296443663587386432356249102365691363369677293044811407785215205305578351783041900477634862141066516527148746758689228110878754018756205440929496530773137973295561526001962446633699858201559511873212435535973248917135967774783293552451439450261819502854030724932403448305278856162632251426125522798570416118047760792471460764928421053220341467959216539758408515880685109109107748466231449507147915529947789899262792094654785452961521027635896126769759064909403583424972065667459377763918536313380110207960611632955605805556184423309403031415492978993572936186540159178413316582249757242221462735717304242168178190317626047871813962584099708405152956681491165583437075489690681383767328467451837971670383372978808085889885370868903590546511017217605719967190702276891879617304229668570495390760585896866577076076361902236313212180093977338735330326288399029854438755420197219875558021917282341973735691036824956068070116561123105659535226033622983451534915199109442754082500925290551061346512343796014403233150272513066304471340405125001681003484249651574496083699026142444380907658564055673944963698601547104291667239613398736667083719240264896043059772946327661571141832942650168415935600174906143260312236178587947859873685045383885137884262058593476300035050591337567286309839925584154934767542905371230691723638221603335916289158175916271997947914641891280766996258133948239907404329081210977716958919588609912561533368204488567300195936356234906793774765743175603355515590994506332649272715932864127047115847936882867623925139568111330336496620535801489807528780012709011735778236030245967567926097227040541459982432552359784983409729062977331215601296136723016235998465141753889802633182560394374367622104231185400651907576210107676938165032573739367122737538381681981869139939483142875975405473952613854770617019732504056661057598862037399497894556846306830722992985798005590055037613719006535598424868408407159805819837072172297841109515232848205861598828948384663976440529598180397224313698839363298007766933680876920104370500174926321930028481159273232778489536194369751974884818009194366702605594033491061591937138478155613677706281079419280857414425871953324366300360252385406619664627121700942879870330587704857397126797567976462487177933103944368704988563570480299650590675050418367506642911666468857204200021011809950638786853350825770598330859260504206605889359761640732862921872490457114587349340850364082450215940995055049895285545360880394747254406527443331853884691289681448814850905704865077654648024472732478726987363754144441507046246979491646031180891943796234444383524041571110376909567669561407501804556868657529478758395710254395152692166846804303942437066095786833220356047400149227851866143588212238623987432271753105184132007678343601464678454068847005580749320306425956816479589038040403051500462003878810524516860029191665784387495164821674211404564278256347574612788404061824513670006908986773610077207109870162162765662983918129186555285016960187565344039580509084254753964340626667911340952554234464790906927573784603481916367246852923130156435828954318324672250056615200634266659730770585374911952810171052416330384073228158078684504536214106501837416725725642186046591727482312942756914119727334954819511132648207016286435692501902602205311951615557267530568209436357549398320636656793687602756565073866720164399448110983659383721687673390672686606540479230314349465951190095336175063378494354988611983248903650387586459818322264145958733977980364892463432052672553686354681446365587344863569339165522137692250611157384132299219178228762118781390382368111469542261462013568916262939502163290930928095305538863043072849707098438903404950300075068643162081776298813645310147283391836793635735959805522323614003029355756571843936654722862733104130401776661340901946515570913342381670852019306578631392838658859282068951009410133440568441045876186316363932159097334590198828784227259967240756604989181728631861994326180024119272304030925785942406824086557653506133015926565543210309410323756497477762136248664888481711432787300889122344534733515803870026999474851519607565726435334746320289228081616624845326765297147447882772883355890452968228224135176462478197848592934113597566127169799495407908614322801793049990866710473628352527940132711210799517140068978088210944156483576700017652545449042165143972369435038908878304804008752944897266967560637228643275073665151083643272025919844420752567315583720706831591426576435590226738380785860085802609521751163229976618712888072575791423920989950960338950700099285884847139271817705434833043348046837020571261707204730695695256561884881736252544709628519993698218630213219143755450375870951121201303105247865132589236036860740701689590843707081674411800689618198814700284332183725248782337508684051471670518186236548342010317632209977857094472761121344212124555168269877193540588045750962425400666484221334622517843940364154903451120488146424939885699127329986208288784990989432163100887588967845627567779654486613288392426194982383450351191569236217800424933467148380226753294634095061371364961220902684130758392192136056585677226870132192597456541841860625228376692612176765781907378036453044887273365977307977108233741426028533935133011483147330909902383586300965497749486337670651625836324322289458465254014152518689559433967074171230422727257359226510319304299616137397905142912933030287307578524319028029980542270967430646926469701792523849848885370545578638452680610114374089415993824017755537699986293187584831813808328628655849889040888949412476531884306201015405946256996200664240044989989782390182460317231235515330245971825887975129363210534997670196137039439207917086393346710287948568330315578644024652345819270133484228138279795739007156418972466869953370723722061626327475698526636403378817213171114998780686309359984424660296175410758235661552211513302494154826636636959259796679177392262900929466357246696526405752512421414771339297323432457224275825696953288048711275871172954995730687134868734090377043204448103633155593721029090130744159975233190095997910500641451341069234616527326818366674703254716608378352444289180320510414912641153125153257126494004729126500183814732521661931419528956932180159760716054965232557393041433629785967465703237260683248565307396198324036659583143470586024542439496793475637819808150982923038714334393678638356592985565049578793899315166029393717352057315126743903885489380882278970361508922591559243026551585654360369347561697969792563731000157619822615381854719441423371812812170565480682135059771425114487890625714100174585502235108074517118853447493304057774620022876158991167049699382591953670337621609263789880672630924067439217264618008130899563392950776774666948205738679359026560137994596958400275493505791160207966994699517086553393155832933766638396140872063284072292701552834544232127005669663140886518807968401177351905885720038203614511786329853159936116417939649248177625846948135616746776719451751764299841007345312030846944688113342853610957878800552234549311433486661866779580627464337463937325015354739577713936093015596581049203429414479089487124994466507537135937772607162328302368826627351594803578804639780873110736041439874626281931052508117081668955028437026508752320231588194695673402794166823391679016631861910531809927579876756678526171744216510117998920530355646765011283181352952479854485631684169271277209671460351254714624576079625012802712742756587342901357373133429885235222071947635060906494175453369713289386363949181846320869625119913344662081538034684966470102854832344612821588576374054677399208927009786244130559628355568904781840460316875962422692053551037122521169409418459070877071017258898314389213496247693627831649933060951778494936051656435105679891680198148304412552272405710927744242898940703430408246752604042381125819002871869567410323244292595529595296121039223285872552527864597712921890765597179496827460319103136081739074085639811120275757485762859564307168066870043311929808033036882235618927094546113036347724518708540685809893303356394804452696181195268825013115594009155585243422493720024183840267843972204103986566916290798751929855352216683160571705075838980193590312690631828320997049379434843831450576323916673233502453115603689461422803480659718646916531011962064327769180249975290570521345219360445641130540960768395242100985619474780364571191628670096472796879818807095265986066648608042373183300036287189506330206417153778865169061259169549354378498685992404728251293455578602153883399946246855196241759670253741016240993735348985611201108682105717503741350928896516713602220261582854421156372064134707484546675888720300737622364634502895695754251539630194649993533791810899653591470957816498405604586295011996489460017094957439350226663822897313693365690471494229844629570983833691632335789685695832375924877322173523622413822622131739323062124362364966685279335582369233506672653071224252345918841648467149049505760408275813042290557541710736248556742591024295772104261913688900879033061612232031392718724216828831656810873795906133295510049299976768750979438687940304048730375570502201173570162691917403327641255822656075513552281243478121367170728539531592815179357221612903609615136133262166224552861470090892553600800123431671172408151019758868078284078290245830279777292157753031196814315879164838729529131232733749026415109083989770720528837241408803065971014705815888015867116153444415273029758163933008533469524273311865697116612068174684387234612384039296747773598355795702210339091251246110151824015894652672468209399619034589791680128272768620166268170336149241084538205861292123724309443664484885265829410056893252097344732510164087207109678850904838827830355081856548425590604290169873863764557419437733945469570645606283868364577412327525471363890687406698403816567594550297222762858117660323937496829631963551413943510557837305734657786532226852616978638448808787865122788549921382014496753864090203462872126693964458458351344357809965157730373191951992437300090003424622991180230200806334765902439083489678449431028116284929369230614894141545710335462739917181200837229342686607325191118527542984148806745133874806285491168273600170674342319733173960329831774398794641362723146278323092507285034968022778059085612883217422241894370153816759238690482102875590677572132901629315933090774332079353847568731271355853063233410472547352549826558682464836475516988341626224232594398884080447870406299840140418936098421657474919749232021629064237326110250146323823295716989689926798629229973477922257179829984295087357259615699654378913624799421671834312183015666707077819993124979746119905504690248879446179961737691384197388306260865633541347109750708230301762669338271355781062963729747396417432838891111492971870916241073085901470429484080626961292569494807806869926725092273177354452389846343680248773083373735656078529589884779620021187362336600050084136807105974317936210959992417697490431901937398951987277578021438648029584436457950870155307163886254836449950862077599002585324733425819655382171211524796563903664465534705944912494817579596767332880628025970280695824508131869222979818143964003028730035547310641338020714583196601483284806451835252006582710941043359500548233973082918187057141236771557821289350467593510007361942653183698850922647522214215445540965177448841147011787419112507765718592418801264419327967829117091165696221748702091265223038814892971686603845107220825652365084505295814189570355688207985538278587885197545388812712539172539502640463453783197103659184048087370177411108499035540964524096491053284242033344087817292949993229847750676930329903589922610185699411371687937505951844150050018939783854668508624668286710587447225157617245387920120616256367283864633312407667385303057402694299779560510704344058288385491186030336825331941907340825405213378525829805819350120503025179732640446004595033191437511550774462068185433833958261161150947952797072005062135800189945208823938220679436467102285335782373271469313219164467329912371685909370187065804113125849465329282344790593217279206639291540543112668152841620410269055049611933174767672120368942286247686204746955079732861745459422530367363826423789940150636399692968559439129527682548000347805213264832461196457357993167706962300843239036763876336892151616794467728650573344883227797520862783341676384306304622343642441222742297539471701499846372117017436982580455705569075105894800497877244845762346781434048511751208171853007496862619818116277742517499867899986474052920072245749110992369030538860496978359450436892227362075401771360865581273783908813325750387596593456957621580180626514373477284753511383261056468284620186839214447824396030401950067390647633743793981397054897974839883766653642675848123391633604930505380796821383252005848298597305334297437562724582485257042175408562319242445850412708258872736454330083757996098471063688099315771515252713825832351108542470521793590354568635432748836813341525551609517809884367477295844112302981871855249824915032712774608314117993985630740424962899847967621840441514854597018930554856337065129534587489454369404043826046980874303052502268288567946904839128839808314919698496296720306387042147857670788207836962156416618499975044156040542585315336230464172709481094530668223592195332179613214908813044676863064101223529114202843834613393296464842082453490234226526059389729947039373529404199682377013813000612808580620435850007862509593664116494995922279390141854390916136884615399124971904029564720597268746087185831248554331458276558488131698622520826363644302015487767292966051650453891355963957609902056322997603100258459689095089055405427721160926128081031405290400819391840704981713802562487278514609581147487327066268341023965320531321174981866847574453879944016990207642516932445088503829901743112287808274179539308038179904891182660136778470476547226526592188216355004275059780031149744865974060031660471281405536207518369749569626942980243027545545496287987813898147568835443995487302473522630459765017720343280810301507701755823837413570914741981639248345276603273060837709368164673646454714301808980490083958169886350621273877405312840544007990945316054206664180644713122341054727033668617571216910258971250062975039143321788065591599209129463196695566160263264087547958988210272815013883201214134145251732595616740624678203816657297385180113624481490102704238569553546365215771606371020944256397485529036400466756523064795996431184453633935723116680857738879957518676416816735210978838840314148259938833150739724691405468387561259535587734942714939974690595756739878647201063887465283677866582665806893639991719123756740048378402354651686678342218544432963215595799409748982443650843789437243464782353963430144306615623698087289664930508387925187684582886584751762797233647139908551923279791274090315799770945701067889635504268180566192431801961475680082967130230170520950172804365737544251513896865130234726975075526055986263631947712913799819762276179458377939098141887110613923435125661044243517615783931860565088221344409874381953115720774428083086523456106883189907599237393284955223849764508556009634750629058271380993715113884870711929244276466352234126741829766097249496015609741070254960021557027058619214474053212447779177214211392787061086815136680093716120735323508438320649433862185605113165173918175806023964171161310865566419213931199195566726067486062602012140687092940358368993188872636409235286829397650869807555112570675229501026108273209407028484153218006812548062393176577072680681424572963692513710044266642062874136687802564754565127861116781198250820102893719004437218587583836278406502618035501405768734519178825417074943744967054821697630864077294478148788656923984084337621879874418201000674252902410429859743920628912997860167412236963265522988435179669174299800097376627197766916802292709340256815449979911738249555027363948715655786199511812809334758517304269635036660614891428519368739240844804794783041948654200226804171060549981277688257716069967566997343176385443741297721042134973952091515098687815558259566470805799339077142814236962159277744397455031178262311223260710768863923033316412329306037985085139602246078165995464749706794332204362835571090632497686943907875498731782991895935226196203089292491572294498824466118107558340200536256538546738285761001200457700731135237569710205196850729225637988138341522687133924655391109425876755458281143900251589526188014689293589794189429797107040011049896283738756361939272631802218436429803463830039781035311582154470427305173078794379800332035376351674031668039579231884789102656515718128331127642365337746701398416590423767463000046766646311627172668148537364439788301437815610229074744827334812301181455678377233537097762674824008806139830833119810148747383250777857361997241083465721708592761316463137061598846587663798327867184021450453532642704672447007181446271972262758993068746553486920103451996180035061620264602129115502370528623776198899023958333991421967155312148038514628404333623517802577695996201328412523195236244191202689888576867539009178154910825603804594426015593161409506715866421484919524094321717403906016614737006925416742019591980329725875075392884536152224379593484228456939533836791408706346724603309039424702531500444700963435500696720226804084802289078726086545918317228494690820088977059380262836706828936453170780823189871829073423396639287051451708640145102040247051288122078546736301988250511113325393434911363197428059206131177151915677447290231710830228452999084068258894232668799794129269664099054759053062997619915534410460590210560151409110873564699829590383770510584423429531686809544066751689832957946652224849503820582428261532541018651128956135450077909640549959661273769160642533398273616248849140982926412628083252784212342838570649413656836805550735873759492508765977398426360922669644988957706550484762673402092959625897004290077160177542075324372613950277542775380385379114273391353014306715827047266204663225683904182385982052315094420546040868456434465241752984286172398468922065899386320508260651883648362007324937115648794595004447894689906087645404335904296760683797170105738812344872535705905033407907555571042211920533986761122513051858296154266008340209184548763080377681567710818482095788903489229026797294920216895244999994002519738019444855370886462881299181923730118950641661612723012390189409005414220321284870143516726473377310544853345808901093993686181564077718426749906168598326006014320900872054662981957093722855403141533464000589858211146707538947097860377949315092243145973317372100827136729067454811541985877239619470255582373376802649421200803679715464492119777056157645055276120348995204557592017311234868086280279049529999165968182258947769582248296664108734503665849186527687925980185394575695611448440482492035942771704264347635018277401863596927030004968053414989074946040154728773132331006611679224726206845141299612291031913303181836444606870760699939589396298800560392500287456483098672530342770478688680298785087142731053527248388446622933409369097812082063582220089868109457438652106792688120442959726637882092016919045263584279869139621870267639554146687233908523717226642246221704788210030987293557920807559413654434301506712230068322722618914141308768039376402257262407792334647206996087362640606955437633661560474113418864175668979553117101586005390016614373487592015553034892426733650249040346837709480550032598639977834432290325179694619975067134364589366140532030178821092067495141657820829500340154992108358081182291841829640676563601201092448350982242986303964748791263097723988244635893502071814505532202514218717948460621936131514674870676034666545857427952101397705146417909980993767748550360588478571415104673621429516905520852159944776134184945532421983949807849553824657020349386795265591431424343346596203985145803924303469845620813966522817869976605821306148346084254712739103903208982040738725596275415978426438717529063164117139896857445364667589470824042674064449061760475700948379982050180376740460405061567478548420817761375985603479837882456435270224870315394849778053296079559420308864786078339801317325887291818350065145510541288763733902222532177441952905055863521026637391642661062073831459539415911332648556096485519849546952621864421421974939997008671612668727809932170666387424207661755093234441738613255161290902174647657565402785712713985153863224150035959969927940293228784400371587295785813835604446675448015779131170252125443195476070860951395752925184291314958092365116836051309519597857627696815345112152293846527758647062466455731854062196660009158218171307391543282752921471328712285333225149273743712961172452880810599623222209973962353998536656802987801324795569537793543738583210962125872827782478929142038498193676405121396405247547923995159923658567814043043838497592184068147869813871737047030373147884446825138468290990110024478023542437200555118872291545891042005174541247977105717058881424344454987739358336553309106324065286065009470911622761749004643940058558990105598171917298920597500949358682030545859700094151712274633905747063324685649324143319220593024358129077941194620475969687731892756667107417012214147019758443597117727659590182447112794173150704645062214802197343344712564680159282717428768578132871627236537287496663913770097281389342273430970703840055612370884067198502776360853153354892580546212875891343596308678677774251847398941097955744399423663957216202563661307496289812465065586883618713120021362491574565930373132086421660149300979159659936542031472032751909750484999804884015550223581087827557114122798057492385894603586370790204148794188523906786203497385652071506434511743058930491415174549991152589017429541145459771574586141604833634681787896413080131003679140124109256707267939502181084785352385470573449587834206763615906015343204759732392669735342729487215560762587147550315138165809449011287941051987833821951549436907555680140864888535275632713643772763796337238581678405061278399205710056691682607275286365849643499818723448455161216603314477348563307909268160351426059248197081536656430816174546527515478052832059780830459175248634210293162511587344495160386207732158607465611896153128233385465970143477475707211298970609143080495843371585974270613328733478878799119081548374609241574965112659895922263626971398445595391349849927275106623999305713254144764961671894101369309496845019145364949888519806380183000430054091519381596694426676563584787940863585377094883068940457970914600811535800256490884454418400060435479095253667556709645027447407646274031219468625826513615938188512771075138752519836493922097801423097140958867239942127637878199532619919131487822211569496367174103817526202793170906846117518930354780204255716220614523816229508381498785002537601252592433192401236216678658370512950859930731026773119245291060295999791988509233386782262843808377650284890188323917967417102705121310963003392507009922098507517949425752797259556140376059083423360792861990067093240078563477810969059768842232867912864149938380460892473117826490668442155771184612253120412248166070281099920180095839466987434602285100712052402582202805057391136811961710053456005613590138734621776736990588230384004121059030663247585628875598917617200569600852352597743074474456125796980170630534467214561672094039544388184209402482223856354767296502382391267727184175488397045511145962141466004727646318586876780507884918206442493921120913229039011651994548114649160449633888339839380625586730625019139890509083233985872191262931544592403867509176701481351987080929443627987937655351551615996564542952279891101899699594320169491877375730352343019114917007249654465658864393706474026548176530264987886506772379489758760130886124181197376932876460980739330720105107747816988789203126359972658117484693838719521737249712795262247403858015945855659165194305432633131939053347951719432032848888085984711835666053776970246858102180381870339873315364042738882453365181231311726303620796648078162544291616001931020744901356321855174737147371392815498857490973132972807641327926108758052063271871155966434841097387159880716408169963141307202912248525219902780129355557744829747557686525571896992070297854687681354500544748587244858964889074013113708954945519041074759797170259046341715771264806994286169592068320700246871254110990203801921214282080606509671502334280437137170839898978246824249207615929559779343615508226847606939900604532208847704699202704902930160680548730984614536536258951065897184232216610600623618652649697818454660406682815004245021698216521741815768015053615698359356407078044220919873420142639283970681692126162186385855465455259846035414424326984993906624881581834555220560907075712157625931926518633778209978456969334998034125587789876590912913404882042744160910423383347558521732457844687323072491358712587200447804969235909205879859239151906042852686546020689478967957189191952587004908754401469876107096604449383690097791059957859287343669776841045387720314386309933236507891612447331947622382056318391526161868740446110009052380766273595343965567889923393103336394108149693444980418765900770610556664824216196777620583846233002557147651466082454133800494363169018895970172339821433054128949207774070983764831212771079213095676799258178824152747200891794775595181042655775720193194424728063345366633729921838229482817662426623613441996206713140987530959487039156315716428381846336591604672730307874414443284873942386119898742428407997529357272538721754649311553128365080033829473249391396846200649784232423892417684349132791109392040964974676248681692771695774975176792923782967196568137234397879601518785588817058641526344918032530013978973546269169399026551208555187993336033525325850222422539637833475353381289430415876044463962492799428523770493610905856077044412846207522225818867501359363472734455316012396150707990530321406027391386508004360444984641676305553213011181505550169290836448152064467059635856219275733559327620118608075491810514363715103767083110952220556754644019520312634359134552681267246086045757375968168232208539437265419414182189813608506759009060802449499586140135445909612603350304883264806933964609232095264305347449703937257385125395560640970886026215942789639657159438119742014173709562869596540772162739476712710839011318456494146274157051331829463274451135854608335613028549666659188131024551840151055169242131095605082113166343354869214148359506208995292370174218797412170683537267943185315436293092255025294626751270928695159482107704400474113086958443295610686696017411283343038399182472172043087694993636482240265489557064567305947013852764349618298939624729568397734027617963340271728577529845036288442528839425369085115623976934970116681051337627516592090937810187712131331097608676273093630405006468140056606709561537620476251454300387790387018212638419605596222100886317065077787408200287748625083739489934494443652037611425039529904509274978269898874010134077026655775073700773025502806000640866210030496563745538038732792710465966372951368761534266397539790966939606430133956677063366275425369316991127752496517211464615309755152824274830527950366461006971482595134297887085318347377089386118235444656786802504130302031470758668191036672293468740657127030368274257843960500671454493035411764839225542424419073956174694970129061337036363546130997906922481595351407986179725498013751064032114885569638016727071751278265722337732011112664405534823237178478895477984006979188063673579309457833454083733067712008472878270173816883817434627789833395499273704381858856362611052821334987583461694859570696973476869947209414013058810885223089313205070290580761194470438212407061782847280734462129336095140900367649424081348937960245725778607223809813185618951345418782731945068234872038988649191130043258637677748803214628207573625564626289612925744381692468839870579916696208568544803769448129356398052341813181037897440125517278665685918452109078375744034349115323807517205360441254867479257175333644916775657817330555562004181418297263163948997423641687615471040655682058687666884403476045739222608750032178271883555683883489936856752490638509191482835751216767136441454212979913423355994982884801633694157681029825891132375780956257161203935935699135016452091457859512380146757925297912593932662973096601795830403792782350498235618574583026958575737865775332584105945806086837219992350382781712019400306923015177991089280723099394058619854852127400380559126681101619935542950920960665128760096440095226908050572207595696610916309506163477873093060290298311170848025614231524335233790679148731362788304269411842268334954674577866979098316069267004585942944631190394332034680965041347905908740077110037298899606472594898445661785424579417880784681068804624599202326555078585328590592690337792523021173418857744139953911447998777591554633716029336217641011546480950053659705819414415202140664302925106497911701509607315638271021061446466965005671806921066790006238272142804418917367799094784367271103743651166030993307018214338597142246261138023860137820805393171101119859289990981408210927127446854154551100318717145455638429612412560251147007521459363656418540931922197214353314108287475475103205794913915122554753269135903281520503699284937984408168970998883353732389639483254994446606330917897245660164252364430897137543676062027365408059759805433753873795619176344579790428603440963821701999220956490360743493101951526298613607497926928721917039462070559107633135175619346956355214721725278708275701620723662028412005226146924595388101202440171474201142860102397235115941686127119777509314965937056423383108762756683332304662532649304910946864998443899887597300017213064097987802737701061287922695585554307821560370268614947846509934377833433928023951318470587797734743185462259616526154041109323385423079672315010256380077925509356252244454922867087177564537253090840785230236538261385525123979062144495385371828011056731853272444956787523975374819617810378222385034626245367444681887142358189897469721537338392714970775326280574210020551077324683267489252634312464663687708224303126384093047150444298029288692945895939672791262500755694090855878005093392656842829930254807122874494296425169536349473549187581521528974108633804137360374051007787838145225787942801986358832868293485728340214886918852077848475902211850043274602030899522966824992180397461815041352403022887008927326045801898702791578356638465372955667444504134565310595581718236364179132044282856089772979986342620635325614090709247291872336836987422789438498552372608077696932133498664524916973577990095498182841716626941048025681322076504108408403334303310149796326274706300388679342518445848937301900265459084822758196622697538589158430912088790477140901248889861277013029669105974196135426716191151098927320771230469594275206268238229679424367255164746727282046987493632288043560769225995302696089680320519845609825544731655672219129826079345649009356034917539218248777419515663111693558625103803711416859506216440972732696926926173788769814187895851739314233334459379080356143660023936490087650790427049279421220650608954994170942858317328223600799716873601931718035489724076508850957427958238782468786286600773272699831237298627568802161257942226154225774684299436573365520412001514306914376870971867098682527826941340132075744466172705857413356398993277327566514827237364855235840128685868255614810039560862933191843211985805863989400278959653003444839586750892618782183108634494403473900894361138164078418016222943975120973036965290810429242856572552645569884732065324114152124229766038123620870338759615082994677974466963570934096364190731353514141350077472770998181934171819466593349658958979224215987706461453794439895916276181051142764489583969209600780922741572969430497855878185222442298147110312005405397082827127513130098650811973784774928107208935460966487301715207599750262873857432841668307844019570674142190570127312036148626629727686212112294858003511994050560317822951316304317315946873892700554278970464815610891818258139383031387334091566579768918058345051516802042846500950108133410287960448250462340584962385885885863322006228814448266887703134004925951892578768781112863706505407200323055350353381275662160628758368798131398813952956843111258912223993313006283825744897630942177780901116195529320727171432201691745823836214155952016682608272834985007081775816582793053501785854313038235801171114526850992770317623003791665148715037734336313864394253016177765778835235042791276499991617436516244015549883151025963745395897647332218559772736694590911567328022294110060343188618035341633448373066215594664189781400530834414560963587112950110920088204167538127893277423826516939914583875734471915432759151879640224630101190209498867848786587534012987568087851094261703041552601010300337641189122863277949394589206897221025583511006754678389553538955628440915389064134517465641642164045855461779706439591936547305824667927928889044859258027031855546672992582571272780028235005825889814042551396201241858463219539685197042273906305918156835982144998426870604643907670990720358308006721466050254131110370255122672105626900987735977518062386195664298155319662698950963611675360105622574280503056509023521738212575134119268688382797276652908662205799229638739888620122461098631083918562948323934020278978395270582588820552433379158095274171101956546937730310504213566643677620217751961222765102903738340112077561911752539966371810008627985522925201044373288807997452001328562830792247158293296487229340212666206489286817255508437362543179481126601594579316478680436905826557896888148775486614278880079934282740983051498497348446030717573832357371480907728437399819757703915988183524000855873764649341866987188645079620547046376894011699189364328050298248372237905275861257426231925510071583702017804800408741912977629670884210627280601828497621478636840813001028677157540420245219906472888818418203564448295768982809446139136455129305630477140586049603295872656788583133441536559844759198246506873883652064209358997508368088536336193902136492378732420891520463367565710035612104105921903590221116175350946480816703931687449208796074263787925988074201086209176477616916181748321081492425465059910739576316546109406395000882431798256010911449937388593954772605008508571353859858158599435164973167794064742174469193904027170724122262728520074556787118466273851298912160412871124374197500675261086770281987308853551978640835793838835183884684682896421387150712363231407286088473659862287838002376265636433691645462875944824492734101976535083461799259473470213377020924050225082290188336995791255231243415669193660160335318164240615193376394189733193874845826859793806271855206772218783731738981532746493185160751597983035659857208179641940158708405278765332733456355286572765897402613190840926525836121866423238810044761839529989087706401034991762280726002671201857468079876972222794109363141133194582046412597038572083668889646871949816780294068847896892990234504813505057038472913406455990094936051030189895910721843627251171287127929683091684196677093936942348564791927783360795186111580435427073164837418240962415540145922182836231449657665878291555969278311977203458952086669164759168454748104432466077253968571837582389837803317022756507479634373543628757922561723505894905825402507009309672635141766406062401578836709788082707314656184146106260934809141837294555778608045813140527814582446158073930397601669574152353581182876952551264573590879296702853147224216470043942855943580580810948907691849650543206422804995505670176165433822913400815761975064066574693522756338102291757957099373164963906032125114767376035350558354387810140919932759243625278290425761745740141551294685454957322423041506526633695068710390947539685970888127790046475914588671581836399463085502152887510859104593491191427238137609767850799649408165606101504970072633696967662804839853257847435781576577656665981623378505481140514214083135406341806766755479449494642143669107518567488065552739623402785970260892895072279663810651910633165434606205182362950120376868746586180989395814922299563479081024105597074751817719671275663774206029366565039451176717625901601845068675422965112618074423227754449323012353016465785043276905134296950229100651808588318437553548604063567422591716804543720559171693431183244147300884942293405895492545442996100004137692251722919534327912904815166302112194702683396650253026317530428271941462917337903750828444147336711330561589336610377009504323390805888143411051716505342571129316391659841108055011558777034362322906352912998562044916190427772138316338911307601298023327949123964115864178693113341293692551661724837290862578252647950750849433324509445902795061131848185138979113626484280036451016448536373134047228089553590065211019158877337153982938216725115978414066133814970251453150791182816264714444649041186775522696765147258075816398620979153508987671684723138334653621021113515856361598115351296897415260131347526286457787457447874469719705605601199297392592773571411072957447864955328653744422183226205167270186776573453553660929009010626392994942578328944299425846520727745891383380255218718617385561925896304438368797864297349561279572263738614817627035094572140903193735967764887197683234243120985836604469873670214174440417997544948309132443836228749179550863834042328254828807516921747445239762603033138415881026352409027165878391017391282123791638848468910219277961572276235202340729035698158905105425738482202329802487449115157479597231297192998380508808025743467510737752470720577722188385133004962411757879516631079006771647070989277215256702060307483074623942429720784530972554754144880578097941384728259077313357087470292099771928301830199909395556994474381636953399408999102787890569096025926713756340726761840218854958691681314381022593259698674250317055907315403455015725867226766196443316456387326979903694723716716955552150494901191613067077847326536880064894028433109651744269651858575699416513861009353104483203410057572507082532558126561323410004172382385935237966787555358196519812558835774595166661823100635388803366653917251095272734596111190039302437522454944328079781320232298912784095404341471024601890984411908986533758449386866906401297236248518951842193943534964974768674044573064260458127687245458849923088144600375344241384034796467048041423288113269842031796944825636142711004710362247378275957249702004807752824897142137702647616980430391996985898426773316547776999540408095872697436283227951458128926702218376398081959759245567010022173286665925213219548925690135971755559707340146926678345691579911571141024526419347521938446165160082988000499904540324497001575600330100014987964345574426256811947909213525688483236677324894898269242024222361888696072189385426826294463974049875548634912604193667314909081046286722206921548827265128645297032002261217517252371638904075172128938262156848824454318911006416103289393517151881367689577739046824161190719974296879978930189176492111734424044114313219556301285673542873848676202037583305115650418890647001524584636242505508467873088550354906005698800574916013506909834248747249590689778974245016970207800461676758382945952201437927776236685928243497021304737293297837337606186712443029718770405814999076452206419666612219313485916715031299450160728244529699923200319372814639675950799568742885736006907462439188937320184950666128774996864966787020260977138199617295859955490448962709797210161840330482252658314506990802835715620574108907759539055537449571832972433690656766999748506540077877436626703058153465334027491864066161176968894354130714940221919796491364675944359269941716596430279040268004887814835689647616730065156386834061925011782309420261296254462493052735425153100631353400805630409772172056147782493824051407987006984411063320173214576212289541381624979521895044289871315264168823774194398935613978349147390581074184168445814602268570441392079985130280228624872401588070544546392064965377098839323352528957042570154830985244471749234908085897051388222131327902674284661680835240382117095409480091566738927183880551222609802515104912007732282775997219903236605848643313186342036077344191735534662070369687948103883768533422475779262920234703757723113106864070820958018922529304096267400821919419153648939867940621186782201797120514589603375594573622958816713003312804620633656179194001755070883201949008032067875261200670848643954065175189218715879991886831719383256812005772812193099193020160925028124030061379743162012726366043978817869576878026285300764052106681438647550802796129157706879584987491095858081877553763407063728707772971208343918335766431907718602108976083902482899953470714765239995320396762788267536201408894493828547756074630011917651753166122747099165273264925426417781043475487685557135744558495031862177694806048264571113736446746291639974975947459782612610722639890171267306173678848514461936092167756573619190599992367729078497490250822287779237610612213770772275431905231555396338274201983611370766688177466829616534478582093063951455149722540894561085401456157950994433201686648702802777673935066176192277526544835058224869169201266079155791218176031199102177303983194167708335277057496365576121046916664694378637985075421289317672159822578719841544532390952029561343618119726582146437919184196073980368122791032389397767662224144946592506047556594889523842267727762820946930979561733471507572988477660112532304426388782014132971227128057095003637595380190623650051848724270873254322270251741174124968044431094379082116370523756156234707639034781477772702481026990791353114419461886608921873894526550829319682650859525938823210575655716128800445110555603428692840992384382643823719400187832579051286772511342292223254744998703988915944197097909306367977740211855297145635843854981009866476786157075148398994577597952742349199535642199653249627253141910127799714772485423253900624157975753344523743557016705816163936066140628445062620216739662265128545035330927197533507452656662777480304256669136091017994519274315384891230913026054721097136204570885946560428958199855550047517730512840191995310893042274856179592422166422394591956631789373266497439730346302799679310815234137601363330801829251761454289829017657331710243129246301886786446300844987967305008985578309295380641115302778100995086603068000774797977062397208331218957298092193278684015490537043793330371278297146534391891967830421009605114008511791537485287028801776424667326507653282540970455855094880323529386897029040163810367532123723007100807491620391019935590723614007361696740149821019573593580858588551533552372576983700577422162981733599656321762013811446086652855326927192574264992778343757152780428469015430240526278785843749143532836065375252723151742984806073281960700853245782100568921322590413932135763626006652469534941829776688914562342454239087205997846226949030821271807378696116241373704917699880623723315027549469301694118930608578478197790600084369296836003210816496305426842808130846385449050682691650664969493975478472272760176651635320220699983840111783865691267606913904147821668763770243982204636796685803495483749867409338200138808504734118578026521183033911704253540735131421319254853256985098902123933579370642705621405848703162244251158514500135321256398038690845305832235336610102537709004710832847699113590337351152083726397637625631374299670179176630152120134515911676531733820464118853454597276608058308745142254666654657604293393501770922253205743239372560175800139477786019613858923518902644630162199552049813179064348397120571787744038689015263797134205978159853229596018823418306928935399206366380255065104594102102692833407447499858533306631927302042253780149839098327341033932832933128261647566359128222733671251542064954738168565972821814878224903704165684541709231479750324956297301039107203472141701556387787967373614118703479443127013193444659230401237760918065248343019807274111560597089487500345959389816924284075321312128764236819636078629730884816709690385275281129401473162630040804490226058574030581915796541795499269669070941394054673205026161623291169785911586414669436835166520805106573638677405403539101570703452300726887180211867451209536481156799344601599873712582682990334494493818248261892217555060280236386722635787130974962560180046865253155542869446812961048594208286115637858028458721628464208738348610155235309946452792443309170765660344134266073922584576778344908411991608109876831054841095309025794247615131114565603373775078905996111729165106154887398611069408894619312375637532997746448023458789594248996493759171275106288795983000223161072983776016044914361950907779586447061920154831619231129331128368514593243688765176581890892566304518531244808002661352288273367072945766757356722551680468636026691580370609704241598382884732319535772680157533986635546025756477018931979019986614785420773260387286792451264010470523389083837927337115208979759955136859618369109669807429162281280183400580928821463187089328812908848064758434667448426932635321261590627691924122311358811079069184364654558915167300660936755055603495726494141271112286498761157089120790233097747933738889505835715699094038791518782365904443732516701640622209515868442865304862449575010468497868330092900491360459848989340020189221563465966744775031840504927991464047873403524140502531142130038114460904996102739485174104870834600760585124778180001780372187320692392234444189627847726460945103499418189775927472869502115729704574539412373559563370961605323855799912728159994199643116633158615118296161911200020852007514641359107437674977649658054807745943198147973506498956146204876201855848933943697559755315599250684421764163821553900409304249963784280918492260479700172449284420265145947542547660091198924866053513857252889677564551931520285511884579828646021110147051761086423964714456709080160003022732657579635347901099824674254089843338340415456605467547633622845421952594819260959148455274040994801365306206707613925627750219427556564790605254739320510157166826934569309392833155946258579188631017226110524324937904784485406414271296543354898133634401637337201297633501902951812877892022490934088371556594764675278057770344862202203056637347603183105380695249506100851686164995329302382878763060897937701699623431319243190477218529030272200786355634663918103986744555053052332667163167516537804646149144744984662002803251468030465327412064091692782930264587798579304334656065193361945672385880718878351751078014988598166646988380512218564746826627462998112019576929081796240434773723888776806508707472179427527851266901361125070793842769495735616315156760836022872721183320352475845851952184507006281887805089720494398301346369118265653651565233867672574607187698999293767314571094458331643914163964253590905315712318838017922885450908607392945478681827621786656041560562586632195174594339549855378364127922469496188687832536067590510019888114479532448557386645093339837210580913741601572869377875473134654322685624422411375311021665011406363672457523009715002778359646944661416204965343034900209597481549649733925380132445741866043387948214641480176337753136014402916337029656445057142026598586235473367682022580017920312000428972022983817779058196262633823592039509816782102252407231120395655948102923342326802093054381678020187563432386928948997058696373469713619354590563216377891634654431625483922669534047011156481631503622387838746653200071829199699712756928307272201808436699319863906753147489700007501270216458925227388677547749295691990902062057108020109960631862894895472766337400485618053384196949026208729093897087485735014034118990636066231290923885647550825311013161276430897016529068906256420094841742777008845232524841962971445372015058512558427966578726687878711846170373002250079966533400648276424627407240333906201827887008219162660439147607847023034503231832870089357410715804011854515421774615839458678739013916400835527742523746192671169682365324292210755560493183060820960512699962671924753000702401376738301113242987956811183376932855577355373893732906662711544138285303585725285574485605608071372411377206428107931477265734986687376280905126862143968255121292227664191254972690471365369702718379059720919731385388076805552084744873951191575370946838267500396067350740422072365777266397991532407679657558532671229472028456650929712584886193449142100083891613556173143140425733587709193999366273524424981164900242826117973550861622066424132424518430548588023771426930033581010760345873122262266847552893533078795361905764304104859871503664882059939850734377322290519995002871769365686864595902808518945078684537889128791899986440853957428896620597700943837135101908447808038565972475367792069625382624189202725038538777249973088679154279597743960702742628784779011908180754742333304212438576052983589822963493926481567844607070071107905129013062859239190833890173138560734644354229552511672472997664594669113525836028530252478484619929183607640094194852963071489249232729502299982198292512920996873686841869219789110190864635120188562148181934624584144852611532839010064837453407672244700472216718968746847656810371471442000407362895253504511349471013357441057861003845343262243459794300593031118016548808173354359835300761075327075298347991064840834000055079625953148905950070798229658933153589068395747695324163487573002289812088578098599052260754092924116931688938002873863801665560869285061624664906614175574403768978367460847763461378209852079201364555391559428932551456217645377171265222569461560658681635446791609008355336918585579062540634090383529925957314735189609836345097874477711492416683866416208548920469941821741922771469420074952958921989782242556123346606794803827255037571351935263427653730359270497632264545612963429525485603896458197681613532283258134691265715770750102590214295074650128586944510197290463553009058467564200276393891811051465263667914858338940369290290210639362783270231442016191248681645071354592071917414243881812653896519488766304086470256467223380829315223927202484191795845044450333668147429996731694112297225204976752211247181842110014592260028745815263014717426309106899740108002692895065302333802868122429149658382661544671734838359776663542150069644573135594871898988007714222051806991715402997722447520050735398298148726276628490333189721282382327744172525806650475983254761331607652725411369403888364018897064963762462601917842504001596916663716049944889017770639750011150045558096073305831815613889580551013127649084919734936409525682858628074240986042260789169308678672667092763038076637636414859724663046671897494087687159430496844416175275395358219358354389602696050912796570058528240020476211439305992272486774242421629256373504268366272225459934106993855621609124870844119895888011075107567760619987251258429474164908066655491823100474003501064022741312973974708170833788683175524369006327473189334049716165235640099496429229810707923799241796525916741975034248998300497215926723126330934560576772871682813926641571816341419984607309055193502126554394168440122426794759895173558689490736580985387894488196506255602098032775780903369421733487365796495270190019859156538326445490021383925880729384466434464176747103597699492250093473155774839470705152307812716467017719501668858651385290999490365193927864327623250942989991505253545468878141436656616377583494608463285837949284302826705329668449768627978101278786750271049645396924025846179535436085722451579457284930110065771362350811192180876442210453482556046534829943083366641875361529200704722753570526074809649499199254165074814852252806417731008047374452000063866533072932892335934976919374057605231464844787498036273975522728055661403086049561797231783088147041615605884100451815745627670553118015013955308522813587370373131582959608037180091609939567910277235393749325569466086033773661132104201328685916852883979762298403358686876921094395423297357587808695239470701183110903661038129377946089959395494680679661079691042420600068082305308767892608918454691883982600387501097758432535454378332905393787979012477869693719448973764244642739342742284149100140766017939495751971774005311990001205954752473459642982493354063840777940611423882362104731715542054654163737224332289850571241512558587930213308881072982941748149260378291246208646529394292895100528807307577352144246315133678694731941416668390234250191159419850285789776382075359113122672998372604269434938165761380514791215064009245917079342627326605816313654126168617233290179194571250553654777638322470563237551341650052189448729244221627809403078562446974795408110112114047771736163984407880659917987375578616477026843825097373762161034176710824462564223349325411022188059061066662240011806643382345481666357847981693896849865242371446410184628188484891659053040876468576399693091041145716286537103729673701963489921062030836475573873261734980083803131533855428740030628258234061898064288421174632598537752041981959831076185223193089851233199168889881761498266296624801422571878770517647850805226817335113596049349639105261296317113552514142863057671517083504200562143580430416129513448447689873656259014481601190018684362441240455045541165140805562745435952049099984914279611022499645990032496394603032287186584024055889169763795749638667173829485127649328860049656039191343424976601346463379871370411409354997927377235404758871071336763606845263105069234963984093484712732741765966783564285496343202826954536639651773821357565145012118984203148637747794433559361263171336602276010621013715151265743914750186791785281243507764179592662290269387890267039249060992012247966999403888449345279349552036417330298267520963877212041983438872070582958013099543413283416721536973892761796183693383025817060972178442778540801251081644199504503896855446536364262975475723093343494217556857184991489673476245762727748160233659634760782687754141369157699917429807082235388215368299828715093954221243302077301824171629836550581047921281402214272983745503098397123070852495922316934036691822948525303532067080049849926054614746263905140201670945337708245999873985978255049905743944380792612814423682574496766969283888886092782910934980820046767906163780342279425194370971244443242606266607005194271941989540699344390925594750349539149430977817104589507074940597515177701113117267095407783556110568689922771835284138462008406765671801355270420277221155137736436827735097124480144352941778196638848077332817403746251314316152086183708555642558427644674805507141353764764267278103940925238756859592738014469461371528736773502867696261033979727630500241995628011683674786731131901118780854363424919911366086087236488899745397191023423760488179504646866516880876165240333575638489114690444900831884032232033368217760319468808618488068537355570833848818577345681162774247473321659618884865294574803628149536917916553312721027809163974891573193519812653133151485232559925681606543113080465150356568703083759338629485012233698477916518215779231015624872481133738611354856236843893677903351256986243072927796355575135454146651137460864689620539167479857563958658996571408702872934093804296577405832581982317734855782627134278311357907097388718768531062954041225104097176017152670647601374643787219584299299486683003937800691253286546299626695297880267135323893029780171532677185822444815148219351047810693399937949268075353529616078520264748415878330591639742075274095547670178865533145205611861799835024625788684979152911193615165558791745026215353123503289399310523509357892062932653474744544821247077918908518707528994734549974430200480260447109297883727695840105191480358741313261557743423200290058869875565181519381352344041303553422783662415647995156186811253045040729146118374280662573012961200566255888436449453054483886497358226690642200681149088997204964408395618586638142900607939466102832797660784947531304011204457500031552206338263953366270047400301782087545258153298548521441360257122907743841154218429500325976590386620592211310947299810982179830338439001555393571937623893727601112672719181218928369805752877155790527496356146250198997156563081174834946085770405164027162503955626740546736068862540148071315030834113121874717578516597757924387968534401025514239304571571096076066758725525203693702463512585947113742730782404011913094760621706061728530143743102070913118357920379645550964684442086223802285941487079803747893301105853802371650002121748543560170376222494353202685365440824544577296593053686367062962497156440065735227621833992691469588842625311829856636861391014010064775294221650931628865928644378724400544382258766546257086361606756524027788753338412141188193007968335287480348824821893120424303028335727774810818772298375281330823453950172583208849757864159621663631892300104268880953749884819230407990059378911473701514040372632760791472398631319764862083352831006328270766109476314693586672546244539707113024561683988174692579488799634863448497552130598115055306464176662737661195169253835416000990476577420296927163557891457175359651304018760590123304281099272781603585000007265593412563460162480164203563442530189870654580556050205729468137315726818799665674606044767210398769400472734068493044072473474487944326638441602111564377619790772411372059639302028316828437193084328984197473190416302728110833578858478770168629992341938735938845615251401740628564124418251107071675547891419483255045215406968185557856361690691531770956131061612463603082341129429316273540909550605317583848814363180879541227981786013415726252938275772051855790321052221543843848121813927454852573885762813595059685528917001851096358281577270414692089673113672809637943701838739280349249125312159802879920653237274895631059383286865929059117291119209382569998483558243715390855309875585753103514043538567612759288323302842989864931460941501971401716078324868333222739128885814370643029957596782599657006871323474055184513718822814689514292382781289988529042794085102599616754678442577463551986573056885773111233032527349764297870776222004195476340027375807240578421108821155172811379307508609370719145675622814421436208923420928162494716202203913664524158791997752263162096174737894364981187278430362923832721543527732633334585121700185981305173382445777982330354371070773021222938719073858512096355170393216086051653771654609858166295346434330295902847327149844695461321996990979819600695187203882706877396520197036506939849693161778587445696947361572828951691861162839467464404303850751115980223189157326577028819418944928602973058641189167795674168761172140179157830129024207908129364609978279950134556665797716852234882318708567672619985596789376285100517920016627647397867450413354115247430428438499793967957871702823260347880240338054042158948452024019639959243263644129849042736857446652226464433003416823435115341941351724058847346925099920875588142648007022906752780589336310093400067225205866437320603558623121931416228943805201884545363091631920406188716759215945539874638697588459213674555593558965922818951088539694277959528907324869359021243118305624332861154746476321134691491681787058328008511274365374162271303499025436362368991136810014758113969824482194749616045797912298673036046881071366699529725734861657669039048681112005766271987975480168104131146314791631522701655794140936205350293102162121221661710457082432651544407960000048464250519525491733207379657598104064608505017019308793759030452348971531986888602506345698336747722987095262714678751481463565328531244475132006466040100757382431088692136849019722491564774791991640939543326495949130728737214738573297538529878578503942035339371469058463313832891738002558939590625118556418746253221157412798362554330165182409856819837912831535374299726111396573225112595355601983057148390663085645310987499406589319548721778076003223629272636264848187337664219324705933884123704791814296394993857171605428392325560150153334190234381434595920802082436691402753043647322713431374782396557209772989237528990198641272746622530119018801253626018204166507440314750284208697080057601591934785263400321308502335956773638187221649039729587199295058944058394972102671206602735595913186200589676297318596222548443812591097344993272638340031690497594355668691985602707420258842076416222450924431894002390787199743378715258014058768327951962135260912257329582757994978473983232070608871839183472636789637147760485358349250426108662959928018223233475123109311259821057197569873762840637450719701979226154125007805119722284918972276071638814019257797507293290592621593393475391669353105068245666625467667270411560470101113866518058900378600476698068593527748864871759328618903763166862479718850411025471289904071243203781776058625412714043839741542078347225009565053308447590229429142398872121754535914272365948037143572214972547559785496328182761706690643425727198361370742875106118780599631231779242295248117436412646808306170540567399026780446147407941657102089721934217881611500492082060348521089541455148918669513799344167351022697743959096494828608978493840187893579343308879427327507841424906314271950488107304654674236231146375060195148811260693343631254384611163133837245190855334502356286091450495510649417154312240270069053400942159181943605947070892070954092164913094826376368224104550547821735464144677538740348300562866871423541751000795789041458597201606899574103721740112797414969716108898690261555076793424495099041140813335455093538154040178170234980040487827911025636572598253749088915114433784148795415956873498951725781051534939288986310046788338515985817371782409372178900991366197536987589528194671121685382991624772689978406352293010110766890471290795222685771804277436025933050754456178291129574838116964556183681816387161281475881716994349050291330214569847150595448157372312747396405303347979715111964121632690684914068784181762861990219180702537744374200353315427932145360252674816319720058927344254761539598826624004384853984167341956056936317036131561827878045704698893035861614045924356007731286096398521746841491531382815413311894488029391004345549762280140650569126235373931097340001977485407045394531652054422351401675594212565664265088425718714490466092593457674820788043746638842067993596575881770041205453337136789284289883245462855043922044121644924329771753891489900898768257214952339420951891984194574506644895011302012248923713837355587713792463209705959929294592582696400210117105177729052630428966873918859765688514417634939383386954726558206624765986611556560043765460266025399815761504912764218174111997992327227763541069628748844477331628798042635179947536116852038182939240714709066594776483198933671934584783923003981584105719792932203614916834283430427192514483973922639659527707701280315648315951956598289919166301766764727026047619018271856570943981780443238566334942262762796266767681784904200870207747620767170486394058236230380864971594646482830936762338008697120451341129393321228204115482722919720346969582029827361097587101369521382831606942905942809118873837914698392624452067387090181750371136439424085451040110251463344905407603770298657810465624615299731247626591945849139894940258737176844855477177371312054479206148290754879155527376039828129886724469346374527560057311947955351975926299845881799529793538633082984716159178540843453582151496207747440161489896207594183456634301189458677429854013872686943204572188223983820601790707592839845973568171807651599697953021403337947003794067422189262842567609588980253434717990384614988269568064058157792485895159977747725242624479287820856075371172829429470697627039777830347017395951079312732116390704053344144251569747939388393081843908247651906320777594851542184604095254058328850711060639690470229929249184282821491570417151128014606192988507896925706374981099573817777414653217249100586635333492006220114178502142016565638875247409967239986793063909835270580699917462625209463151710494235477358073476563531609007684934296354397287102230151708930142185657437213592030758927423783613765080657494283505155149734841737767471590722771552145491531936594597646172899733608439994327593732245986172966978618924942192419625565075486015480713779904808951661393399014474959544887745672765562712836814567803870744215161537585163118299994637004249454111681389528599319195703604059656684025688138315809781343890711588180659577740934394921496200733766605595145603887391193265269818535902233643272419809247031707666793052321838051185416612968789692556030542474288357666599104364644069545415127856127770509283777940635148929561564465668199212236457959761979413440835906721810203369525446656543076077553157512045697997437864640652694526302021185724883917511125932167304019328423539447692340396583580361122252141679064573502325272863806851902509847534505390435262024042784974176040532743473174312177731292052387194887510731669126715929192007950023904320634600570184310204928989433305317903743296022219766958363743007172233483377481201435596115941569213934127620046022664566451388463969421626876991148311252873446611447000080825916560816935304022811226718834326581973899776871360807211833824155100692660561418222674479427305614155151717287014375022289686518786552273918546273091453068549488355042167977062533031160996125323559055731097382101070778546891141700684179955994059606921130379316421523081894094359505381815383305114029672693688546623923528620565795964590021095082714812109250074612219849755556495046364607947429416366873764635672176316152873379635673497902383593738683510036272969524888957763881623873256131211005865726716865461960357755522715502698827091515068566807018830282726267231879169031868719944910934612306677560912355705776825873263265567042385487505823852192268584377400318570327223323156756137546663811918115516270369339770905734679726601016905923729399418808882930910826447975089462994622748848479221391859401420907647275507640222238001785554931901349216108447668480668724998434166177359064012976028436972600001763941203418554822623948134742037247755275303776505546927207493709131853568286973497614655024250086137315106395834668801755005424947738220593582673024964236125759365403508749628153494496821632434008807393365560591964823982560312594053562997443784754596760682403281972506027449316843982121089303573836200972948254696746998942649857358587917150162325867687157676106369364870550546339511413452038777304628098022826380601036359430633922186596630412267574589933942216159822071509014533208684052532096360517455637093810856317913785018059903731828262280843582228084574328184578438061485502478699036560439866031117729022720175772288420471829365363810998904579430557287909299286925768226779343376121948682425195869427293916196394961631422256539847741597984669231409295223654517680944135106012358761619984203170365498476636109854787551613201205847838619763428104412433216542989004892936558408825308261651426125648693462190768750180704425508496879226232406343720869040273514727470577241867124278713344015585486482464096180969959969850897960516131791158765816509294297566733517136674490928212551987211311263100764366718185951460134187380303651458035911846126305287917346055273922995753689385063356290527226668054944326556731501167351806732212323428625801750264602899447088080709847223939967122329476014930828187260325267588517392078638298389193368698494353159127251140320206845902140045509879068695948405024213017602011598128525344652208018014881816441038728263725806798017878608914364084314783613291387039350299089342542192680433752277089224183037764414478685712150217673125694211896478023670604371402914746211922836065113632407507101929620607056431193769616773732082454007955376974517479865092333182089644381490507826655810258130531525822026954864355900421806162786473605938450026294538664783145161418601109108247737276938481559017360322516481649241410708638541151143460318310452705023091168412659769785970349748776301741675133091909189386677809690615038858984822191075898076719329395130255321557929944298748319711055400774589871332400524429332566100196107495187424804012214354565837843644423598090699248394289465236096703056160830974116919700255397210638832699398894346812879505422485389670152039140307117086527734690568271064469357914784751074870475316843247940976615741283320747743804543001765803103511202624972837319408519002626563776412290452602224036944885976074361156778674833627777080572244648226340320434002535893413144287184196700905568625021730731182474986676627448615403946591507011456549624858685253842802007550143486291113297056605617606111208660006807259854801245906987046711164754167563527647194318479189754118165563668955120163790028776792829554905304890969303485667916804540018553397981416035071482677094138693509077528720223201366506165290338955383727443788298668111213597987458098190196620336244197757186598825654457740136859198906518341839785057451549684175177676839225986602435479003367784422604011746218900387566335155648147423374767959401396381641828956730610103430690987053239076290304032238452938751025465305317900617482740327794656312072110167851822306377523588513704294605139127628187291816053491752088284509339218352483448833439724726110399881015972119880728150534794477840820102450360609913686371835644468295968322917897407149319547017899276939493578262871189912161264280405202158399509553695466990706898408550327678689380663807097327801492941064801406141243131209706062134730837871349190068869710487793585696775592429278175464626401905202140683643214690474194203022414144615311281138670649138770100486265785772462545390264989844359240044227285342594678122047103989246991866942604523890700694026754912541036880771865717180886139857568148963013216523822768966056501404796691523575287766326877015887820154992820718551487909946086620806278629244254818075985835861930766303993935095110268648075635602718486037773511219647014916889529644410591462866815693216354743348893224246019868196026927707586657990694157946419534996675609185555990443658024853732439852394581438028669227435850112746583972364627027851208590764937709555561377248065676847174439434009299918311330941970538950183382247143471593221826912805578611346469447296488730415906464807904755241637091590428535102092938742614039842127924327224393697411794759474455582030136242535573842627925024794496286958627835123665764220090314140900930776539408160354832221423927675375654364856203638730515339087994065053884478441793468438701411349956862163929392100000317135154503497563746870839328102386583572328874063579795417453381669002994401430100179241085869367773764941224189864178780149430043149742765487629711048756280790421745940334993877055582928642772915044682532747843164031501461074787768833031570574932761581272239390087999906951256833138006045783712545508835051657753654270609902287480877331179585898196035277990030296387314630007169026099365021504532859690421983009850405613679162100721091724519277242628436736562330928332517471421284410671495554476792032501837419966240493054120538312358069098835930971305065154551644760197427527578609426702339427781464481887775384148449453883266433733439566043505272211239544787897840128999919118411378253804450731742757103465442769841889734260667238099212850217566094250139829678528929799270940842951794696273938054810794993067650553978904049617948791349789774638833182524899449245044910579998992388383076331752753310616592792752615459349076067826507241463400239754102393198376781288079142509480194932229415589204385433604616080279605055532895399226712050372540588822967758069982280691837777567646870334586240994635589823436453552178562857451328360686420350415573523239212975607242733464024226141762971327620037600515385701177722405825650743583031286590744596968847480625880301052317908115349156660735091333306837984885447339796748366950151433018989857403745270700206007282722218750949969272672015673561552736242460678513348544373569138509034609466461139836252596383996393138228348318904959973932318280974899934026023742300743967719894371375513872332468680091762855691525350150053430307055440301863961820845255281033898048746246502203168411602462136154495336723299300793173567409696956920067765581790473714279774725864421623500703346042500750240548296115183905425863095349495416572563900571922128858791341947902075330047998424841831748845483664956171197688779687644783580509774521839396605524183732887115793676801126835317850754093076521201272648224068718681286999030079902937549609779772497771342143707502913700570056176162689553601291334687609741020350548720535166794338565411812312723808028429869065796362807648759721139225079042265999490860483493663632209532091401839932358349485230661063595626509387398249861350341928092418498635843259559492564895672906878637496836122176078586232397211701524679675702577585341803783057672809817559808214398893165453376443146278761376856084867090331644951231937393121476236527328273879361749459361786604531987644110404201375325339166033346511166331526047008794964745218933730194049748309982546635852256121134388680028616428502659923656467301000399732473957367219081317172208899302333170667736930024908011691493669197990434741983776033209202540656538027071257173123535465522787316063190312492523700046098106641335413538108513163984497473800795093111188165447017195449249051510621333290486746648084881868603253161744793545014901988851868347287830278419432498494851583579263289626204439198284827163278737609424899684289889014724450800517886617950751925258369631657667588355969922127096371322279919047875932582827681258694469517665416466572186555004600543461366447065047346454529726174459033017312957394731067726006354737528369731704795978636977593634534893834608645205721935485592388415402805849524691703756540234903555643874895207362979926154046591652260788889140584268274969205836952546900514395229647104527238754922756282021738372235057015013357225434190811697125512476655103947969323228019230694077544509622830831752082190270799861808296502021028132743454961513885603384522732371571363129573387039525109126069502226291314730269809111071293621813351209142968614216364634491110305331407985892662369097110122551841017444183768880702071241110846769617876282417418664936187224875498909793638290663161121322264557278845002896419795186089474053948282604707366303857926368418479630878833022115706248501006508661325046936003787500160924427687282061652066716335896309814384195220074445417279850473627103848575835807509506322664482566654681948388202111969191067430041546719789379832980526513124670283183823594295689539213041720537528449790651191260927920510648166038822614190687212073296360023987440631011537072268997938598962524826045555745744269677541122925753940093818270147168796137232968154950259288007359979891868111888738999652461984179440882469561952687453810874122667755601850812102383617638719821516402487112603403361853299230468118162051065357910990563712970202373510673419579809825144562522680647950281237966674811476664896740777241434082774076440327425092868008856787987599147615194029630754391106498391620809289850632682307405637127657893368840217547562892414154586960170049993128221670365114462469426167868285403996745331453744665434229785434554310233415958662991787475543029843810701004008651968531319823547463195817616921460783162116527569045707288781928349105907742106006335115286427858305314995704144946811734206591104431078397089783773544325410815285812619523236525128159178883369342169687825826855241890207557748837568633501658138661881030497145299050396487382159564466454142457725522909031879631386755886018707962608296956331964469173568988435395567782500278414544767862835166343309405185591044878532056952925145102786905768389873932365297687469333045743508944424079719365835306762372563791815643731971744919628578805025795462401450290747752781780586559648793476576399387013884070830697641679277705973662226805667692842007112101543164266468166294304477809950449349532452659369646790235248269027137120748582607020275768124131585714674354676969344046931939650952439755640615971313343515102553799599686155521169362363281836867112187398905749322809570274741488031950661294552662090251171936394979534030528987643965409640719221348088724249437794918895950668018064759634374588072940892218603573164791168165071662464022104577101380311045884995297370564674510154807391982204055139271582139270913664969842767971129603861461768710039055021730141125261632131301654199113201639918074556736754832584813966970801959357050447327269409058788266433049734113554663677633106407898270886928249350200163093086741906990094482060218621472452939992415080964265178851598146526722454058874115170607149554504162792773244432845659202818161687704615928455771745897520335966860690517154884027835982847629488927729061276909277320271177104403133934941902365200871834458088579601878436700623524285973481335006675759967294047423324595823871967558567868640632588713181779959163643310072320804817194237183962146929466338049640023906333079582342964065002007533735958301746177689896618073298634545828746724578455798195989918837565727276271535756161259983876189203424467304211524993906067473837402019614620414473716066045551379374857911336627714577957081466051798494090243921539203109226730395115679808190237327193578462942201063422231194552580392052241764771633923155098889479465647542048003342993393610256328212051405268696488108850130792094315079884944936903457613725160885700707621292829122268725424935510972559568959485002264076006804563451643835226125084408538367764239133760274899768285785772025162890548820057054539911591304210207557887955187701575168111127290525512670301363509966729893632704740046698905920883234445522045933082972433724027467187232810434499401022756979321669620185944975210804088085905729241041323285732364857892261986698785088047881788824385829809355828846375037229954751698718712205139415465479028200918228649118489458662792036882594542653839172759378323016925288313073516194482511510727225040561739976591746923678178641397053552070169500937156557802486934606282467128044978595970583826628432727209286527792022948952621420037687741973274581162368573031808366163214004112671916056004653254003019513596655724420378599478594562208467350601994113406832448966495689773463143202189706609542640946252348571427729849359607890241091068296183206345171341817112903104848630540709583605021632551471780109946708998593963057851243376701050025414343384303559417036038189612721985793625048952762383195055368636153847935396128811340957750574659619338237984271199937875435807318284712636847849127636342852306418883813175174123567175885414110844426987937738975637764005671606006452716829120514144976206569037875989914874785196701798726932576348296220663469422460411605130008328709888360946297896835596824208262305462324218636351812223864948326748671092373227468323683040416452201326244224079356253247349471542501981306547591561483991506336533891381888109418097749489808621850008150256505624308869832386006427927533995540499914342034268239422510635591612355541118681362356101377539535264085633155065187668776032761596197796710513592369605867650332139287473729886330253066047486055420536593213818329332794913855745815330714721740921233161364191008552992832328508764925898959796195503695718637602760998921634225216430954665330872727896395361395860608177884265108895439647651192557457839225056677004708236410658941065125384690609628287825435605266966261610081900464594206517463072671075375452625487384065747248589711282708725854976702188397879405522997015852382789066315500995516072803184368001182677577929531920911498232347652093641961825190433554136161054610542333204984546941082402949505040997526029287298052392701145737987605160501902235782820513585125035015606684554780792955355572752258735665431833441815301611631841107633213215075456347455673782890781775805213240049341436695720608474661313992943983083084284469586142035762695999304702999736607684372472534872457709573080613829521133345671781685724187453827887660664804986996602231729887715948337005443206428694180971092293801056174949469983918111710997187129109733577524026763940492494602096000510202795284172186327051032303457488358262131024497519401556978629567161353168640853864102999439675409554606139152930306286353177511881379211684069048986188311070096248627000792742629049877787662615356057635385072931333988703345175775844416149105816009899435019160312347013222348138745505642440847606572084485231697005721336689107138445428269258437345913568945083581155266930202568088585085644545321934343393012894814501541602792963568446414387152207589365409388861814154956410382065717116278759806476297085070839428506863216154988480827642315606069405011728436605762538654381214678209680814838103754364564587658219031873133527660245748495326832981742693991148975797038117605508973417404849370481903011834674549482462334421281863410090820284761820881171897741766760692443888871984339833765996989774417367559481720144650632962142041777780943208132984601253191323605742597644091315354185460960008933008189883806980200312841837674043076886082308297734207009040666807262960534618983017596653978455545077921787072880131483711327440610353583680196967842147927279907650613673252093762714603208583318125650266022806871229858651086469804532825014094378344423006276145857319702672496161358774729786820321833831760999736825853173551706143725787683203417690292677732439870243971488133572144695378796503870441830455101698875149924679076185959967177653625722528030479705686035864803071255280102549454903831186966252703633482114742261491573755897883485349268958309637936268468839573154329262548295797316792463389728298952091068167587734471836979062748454798008442322138861861890607506971427867503146697571282013130833654426724977604084166346907773237858418046750959599174741525961675972251807640297637740246078429878279909482278707311427765162479210610697133244023781024173724938066578002847504068295136591920240517108928639918586728563751958754358563273237212095465757882631926604824380174314069670711976500473522587702373951565287215722830143378018334024797352055806974326924332140727982022519031835688714386311967805535226373646886715169382620652151649147214475624978754189122529290221036520881188479323397733450291874429879006833171399536423023065898172357967913332891787054282659697520141327226747707452683089893575557850375532905078563908967496486338501017148945577611424712914567972900807146957582006861856371085299445827219593980328162267188103966972342282417779455372479657927640328966267538765864910109645912449339538108522395198604042756199462473468482930128774209180873573819900498135087468298549741087986586708211362124190438316020488061121862387889044356901987207969207955871931371379260336660415277526671490037295819257301150559390118017924356401486806438373057329340996223993939354456459596651487512146916447704522886381320602460364102424056407351852833154143833568195928532835110468396498779433866877183584549748254515268438228400665420376612951000639279194000452835931745490572312386313417836387830441297857577337001749038008499026709282824556549114730817499870059545572021673115928288926752372253972311472204671011976741980302734156795390685900113779273255351967000996352045688856895216239243942555484960940889283859346946216112212297793083367439865762739707142160468698939380983119340908999834342145606890695436020957264021012988336859295878346436277656763222902380612417887091657775523140873752431432242505009107881550457198491341765526508578675540509563219062991237979675783116482023935267891489912713441502934296277652498340718762838102453118666922201392725645284664731212677773190267258785568823856754126822576997212303180907514110978245982624004501520683507462110291758761162636746403715357105465438379701258717784929607403235830962098190186097434119267058653648665404848510371433727443941476123371671108497722378568656640521954048580596642489954349162378207596172580017771516269905550309034203681462269604677083769270487014293407398742875460159329477357907919240736441748610454045579159176177801908068389332135765042143329748807707458105700725295925015539282861076513889392897499361024611713721307543082283342435685808714647005531146322828261810523601052158434619103226822449512853371248326990923126356883931114084465517031341307768001281067095693935527467673436741302061967392125353768736336513935427364814807943864088184590252941265067640844741307753755210423531712586465062985350358853868427321781386964383248590857742449403580013121164101783340514365906864865792219856118124951745196238769947966423202255422548267213001299507878403273069317195973769028089846544184137437763807844680382869779663958183540735510575094230892792027792254893800370909181500692669998638601584815434760722895938305791277444738611499308034337786006508797306010412187010464287873572531039171584904391679638855979356508618050996955335756748986778990636338475265504766217397168368893846523230477056742399464817281735121605505692186824244168625282022488890906299760527879559167387649278046820625721887410100545319711995596702498611970155671544675858592391533469846121902682265593795740056662844281790686931345828124679805247153307224031791110549113843815751712276897469464488617794509375157222694041688138510157484618028261530932411360690259642596743383523986004992022603563214950327557597444754102210759600757497609268701055530078322672045438079200745179389335959336892151689159089371556830852025525435830831294556003924510198873937327038853793614607077446275642018825517733201609977308651278164014899132739701173036799507038080036332978207514088152924839179459497192845426190961147662804519405660200204629264515911215607953956054071029903311529140218019700441234643379921662168939042029099455577912252725045888458767827542825830097607036449890893980766267041418283948728213807279276206370637107497006384879891021441704543568163211375372957759024132771408354857945171131690981070633227536260807704812292769294408707034616209006990734584736996675368878420579748747730580274437848887451642943572702175988737580937729665972499594979235452747543791261318187198801723579333206881844146125867156749109660817516740053432503084042612194107472132969672645114861684856035048577426320418627174887664016083765243389130786377716679828633309191766906511723298720807401649312841707858887058122000230936962339921775364376940365177983114759497404312594264821967713712505446172618137930495395991432137565005320264082862459171337809808047974571069101221738849205004146763080485037923956394508199587556069380362036155580534675733368521912966339678507848541055742124531277924605624108283657977511270203652639806938427513095998882470957023007580081959944340606065912905269145326212722599239006574291078437995055545567601753521063147077723876750529697343689572799351431797086291139477370653443576084499766497787004321428206487837960667652985464405226443312836197860315145246048867920305885292756911014471859151564437116408052204361933287712382150235907273037791838903788622435325992594267842770686282751899979710075693940197948729644622392717866887193741836079062980854831756361177110932352033610892529507857260554493774252919567045545096364761451288986036324861980040023150032439169560894518739793758872616764594638016466029141460156115024862436491486417021102771487917447241770922288431779647241066636594309321969856602434963988545777179446259778422377612091614897257855895763206724913032356350722503240197305970926002975484336768800173935435696564889133458767217913471857998493007461571919725431847376337461428611991285000056825581168276681394666575034524526407418382848829795149234361628843826793142177766796183665352823185486114790763280573214684579357427513291705123537840990125190234357213077744281215298615368871542513685435367162994782045431173613144724436915084042651672142686537648547077377807139314096826751116612706052870522665447767409459471577399350077485928204957250336208525918428005836704285271402538031984322270796149875367729147220860552946489663085027003430489000663803519159150142562026737846916155809872493059145694957022264418410567925657570553000996169452555894625934272345320650518035827552606604523488318144665662508166349474303277323246811224209822212498948326232659045274273398464511823180646927074720640714170997590944063413245481152511026278386738791612770626267452235830504337373633771196901660809461613403246492372267974227760487658732983370722169873032330005772299127665050813486703895550729248743667631090270693119410142109591424499079149690136945374154579027292518496120055764196829439765171138624230322834838583595612934346091277290598269857445072986493872997609769182362364140242554488138778979997559682313031523334989321788691055533835744937977799120377581355893293800823787437005601402017378264925748369420986557457847497119120052276149617631882590374972549879365520571475948292062859940662028365602475133377816190396234971020378956552851918420731520361505455209332627625844658024961112452421201491240254702789729417814841521441931595737353960784490115846822892134446413016954342964282400694870107611615116608329527570031767748972413525539145223670841504045040865118725642438067467548535583280200430771026125062451944737150509145874899237417759866322460356891998788316318629752506494535528332443098991750530113933224020631124596818201202683345277003279036968098799242902211427499327317956971072749851621106529973686331626571424240383342735612390487872926061497500487608489127867336638111391280079318344548689198896045888752347115237909742357496886477204111388034641600941935100401545279145623791505100708609415792817314548291580737401122821407587067921017968308225304450177812391910337949458918945447418242779627192310909403932776470546824452103969942331735007191897325225279850345035075237458592077855951067684259931816998099856214866014530900468269114434957155333108197875173221904235029199248416209628758146634227111283677103297226370195363198801604627807323498182784103881236073520308087656360733514276951911010853303050073688529062285566205655705133232727132127953041375350672611017052524891663063976020848409982915169626734099428452604387404723565091959815806790426881054973339455225761530866716184372972204780487580665050518003567980486948593911332870238379682075455329747736180473228213043807950437347355949059688213190560623932577936844397085441906837632762381254289086361918018333008087400465652124914426393894409604432970704933702931114038916294341091783550688825220771662787708267371991571346430486930143651436140675514230139636854149361702728580398743232220537731688394295230356674050729569724505490638292820064531677023911812505407344117245355205716961164487275047666639850120709748976631229981105370833046166784034222423945548140421578886159537548883767447524653284465387338937022138202755957572640427611972127257618412289098281395722930486217081290276827807809875824705411248070131686084526234014923561771248102956518630896469921290280383126886565262721300201194531096742959815647570517469788742986440252646785890206076415409539262437011387788331916806691428428579798625836747653171633622066711953943672836327555416180714039788511510049106089775239398389838146339194451023015732721628957835378384033962779729926248187406080134422575062935022491211766191591693969249756445208390017515716439549565223414688419863792839736406463481195590178473942023438749073885445793445465863728490720151692637208513883514510972236958466058469630782692353372188865000981181699106809601725286402942402255961554137363936014736151531440765105758478622643996593240605157520603780186601649657921331955984228184864873238812828075292251557861141304931212979757461067436906487610061834708014958422454340451885894724754460031662069900217932677213670306834275265861014073781937435470439804054108239595996452133607838807219435979509808002070499679501164209284632749003138949793100210253766596203252875233940057059281651889382759938073744881139814963770618398570329156040422293529695288513550009673034751060661945604115194674393933653346572254972388335984435556551345751382258299762913243387467576272339656451744893479887486853630078280289528374441238074394447546474829906985010537110234361842097204444653181227857211643425375290761924304382271449099793946816620514645524507133022182416374588151726074122640651652630634625711228640511684791575913897972148298708724473965741319800313932928293395431646070500310185311924229170807284918186765383963467179501116806695731231608175959383659675716403459586624650650527697159748394557789856419139719520702505999154803255368321402780848871393329250283233154182989120779080841039937705210770427764402664092290779294555866255442380917867261539137127113326728755217919805300351390492642980041482858718087178786652433512492397465067844011801381374306125588546289837192810979969003103059213614908384763359474216117297270665489381109253272932779455298809152485602615101829622167098136542993480877298867005894443624104168686584290312495200397308953991379018510811148707531588033962464836262547258989490899395803831739256670228700495925611926181786709568716531507915273920752053976701701046571484993507420190337220502161874211232592100980914859908494181121199817689005412510651350294599508654961738304043502212552684105319076266411769198275692264237788362726455696811767405467653454625562249790362515127898018260238083728822323498566609089647205440807126673280308256102025535479288760059685905148396455445420243390792572577541651119647980207265020461888329255276558784402776627594676182472316050394294901646572834713548474414945899600981948953513940435020292403645179673903443295826754211856350723287493949028603793998019727033183938623983394318389511946009049995803283222414684102625222432024726172209215184875946557198614348127908192483232332236792931837307585518259070158750478430722672404256165509707546123836118884827281870217224066020382508609128563004429224698123154978283003592492846370536563359893208799474832580067664565095665845297872406496676925375185811768889156920651519747790524655662728788417196894776025995994678747584819388355992711291482492967941980070733839432386160325637954572941676161819683448723721368210692378488342691694421168880277878914973981221716755889563873446267825348501372902012701641455775336859662811120850401679425068875507487714591669887031386235272490558775529895684856807959515668845541471995943307971473254132249224319286200717195453364566847983591662064466595132257564688506525391016817017052699154178016696920030299647234872094064155595596976378845135860115698415845090788641923815288593225427061970104724919371729613009556233152351459622256053741201771155821732133437601308892008094019595464445256286887269208908067249016265973305152320374782875441667873684756387043835106335804295514798113817854534887211898251835660293692863158757050348278548705425776729062382702166433696463796431044142037953860030431837413148345669499384608672222235182127282490662049669384548253606077497746927063240364402178582620983025075720667620512506737631790950598564314765098376707156747880164493470512062374272328332297137906001701628312383291546110904078639434606387076399211321057358485415164237680166483705679544792526632608585313497894413240594255823513720676771385800815485670188912184924644951859456459230975558450134160184985923016458022074168103863059115115934538761101721931000485335198077336400758881319488047175067445640640255678679667792676588687921878420448414876661689652287004934682474783319571123542965313407495115294120237601924260375658222364552341483303520570669424952793470894023096683983818821178593568229324708215516428738707474077849714620012903259762660650085791760111007568754626474708767114745006216488820904599963743492108529064698211637682023469541035581659669883799829213824871500277705845977139016792686317080098882944667416792897330636420405413326263929547687644492718654386689358107881613172056213349162467686989878336194846172896855990127513200239687064612048823972111080887192422567059043434718302010642456483808649955174631470915190611054620528814643732906780498538906898567996851094973545547548538356432422107798216286883962204999534747800278060047223665019015902768800832662596095198156309632088479481522381450383151845683858000717230171167078330270388396018718494835036205746082570598234622424792471616774784904447866397227911878506635378235568547649987761204822262916853687503690303053096540212028773471911764843390637936036703459239215333777279067632241157281698912358828275144402817031727548756386308263990508423476265776297233687656843535121922506981761766353074787096577461650507567195853589195073219230554278064301020916388868340425940958844991170768683250425530792777448701414620249331026034772137705355874786896115224850624424172179231297135137267936753738683629064892632959002702272143525910629395130915124743058593592647114410894565312421793513082911839524771222735204048092224357891305591122707191848216824053822935373808533842909949964840693555703658534001218125236077885505832439125988769687714059905499742789623150527425019188191140063979158450591718364165832767932952083322704598060523099853028123063439228157140192839798114493064565170025460080247502710164573375145751691122804574739189235394811915084602677780687608400722655586045453737025856888420057085654118964187378053506449755407809772075955632165746993590903796431954305918218897287449157793998097391003946746150812729063247446187739309735824591955516796778349884497852116539287576884572665559787667861559737975386051636818081096225334335073483064302864087038511023308908056498986717084916752056966514504006950383024208117592522474953785295866091667692533255818612653444177280148838027501805914400681607515507143841871842138029650665599222560311559775034939160960320999476990552777534306715295085982254015064596594684234906544313956473847348174443509564006489155954961209449863887759460759031797609863116908640306641573119659847426868042113939337462620191588071901260899030074412369864253594595948040059869203318950808746154413818734856198963188825827259989491363659877936695371579417795636506226266520871513316179292117528168387454891209552367925110114846019497448396163934466108489376101661098909135614327170570832354232307433195365268779175097238643269122186632615834520479690991714826669437087544060031198347462783505927575438602581738300628208979367103865253599743553904224183699893818400391342395360602003469517993338791206102014623006662549743228213149754926684050045272374817925490270056160026280605396958052820799381510537415037442115639759318599813486982506838227440609862791298445212679610126005678741694371905075954437301406340059193652916060927618563092814937441526145533673711560479663013792969094674020332615038357963243758910075830063133097158650841112742762900435289775337065216913833264371092245956672548096367471997241043450098252023472144716106679057779809249365545703235921570300438704849805346598180512454980997677051820521028255849345339782507688693260402993050122023943722262702315906364606339328948071738319808505945491224882978611402599050696667429002868698823461950234850535828400003704147938369963107271316231039766431304458012206017516879018483604603008062870032161111205569267004541023514029749541728186966694837564426846263327350772152934221882967691029014290806431277293068920390918717817509803651813295855867257479258488345092680951981330475523959676096026652970939650703082043800860242533361410062046794499832129518418926381896095126052449323472001829850256658753138112877197452406454487548265439088232231224474098736146713669177396825184609875429883737383531010271983510847949291606594166547553782913187441621209536508295802946412910136639797608220001507249704568267493155467290268142911519780821365966406261033964779254217452675652805727756983274326610169251364584850422878796032944964520092792410982815203103088723824055427009692546317399993900869829364139679836068805645105890846293350585913015008537834103489517153182644035580359605928383669230168800734544724913802138224891189004380806179754746925183072111068753939953648086983073389179771205821440685477310095950908845510432802427119611594457944240167969756790581436865109349225578098581720720491278825144395596823490623037992960956698421061871663098418228331684333848499140986734774185641589269744024139652807371576291807975956990493736627912551876093258618570114942610718881637213144802695104946761033886584450708614780020953341143842135675819064696076864011091998229192681888778646190569453219502457017162059527518244780039166153697744000729895091725900600037141986477343698757390400839936689511790973046417126828331192472916457528579798323815243130597536841945334405977487435466156251154875118334973741195384254453837062045699757509624911554683570812560785507495183311512166463692184862220556056257799024482270520880725324054505798833828098049507856170540894020478784663366903715760528962357270874056634325913289528710210075120076371366006561766547780742270051451895779602174784868225215241905779724713809934209588702751016659804609307187044478497486101840039550797280027295870191104574221251373729575951151821742692384975786478800412413829063933095517744090943728085432976861105706754557031497985305434487194558380536298791180458369775237076618345049328134865633250223057551841622796539785561041438753621482450064522357597785689958138876082723996862521387518180077413366021047040389453258842892618035077003019230594584317233657399095444746063095431754022337548531919378292965218358379116488807579940727005263078762158069135993310281880009003492770525251325769121965406426637653738432611624127016323716944719792116730231430964281303970116170605842999447291717075584419571820384733751873657285182764879325747688653145513078187837340662170119079198635039253405713633442459872794596828601930960799369250651273490784381073944351936145594234646321243591906381360520992518905016213356109961466754524739054457008846294360961796029529186418770379228561584026894470669873612153833697480737676868644318932287828321922529204627569957304753801836391640784483682911313229722693815578937209677280992998114977548746851711522755726672605463540756711527697132966562155793516463268835199895010911138635544814678446191871006560375580360371475308360374698832005805081795614781652138373355522717237350837396482149350724002028413806012753981408298932964960386698602203441958711499887741722507160388004692930553463957809313030456192674475629810855415746860491342158471848239005355819835051475669572375637787304916563512717561470308472320935999196452034524184241629842853763505069833738409052972596302588858408488561412920325147245940590694528054692896199281322598007873842339811114339538488937969693855196309298570904244205011271532880545343224935738135401632641106332886080545340802387530950161786539224721349375113435270269135099665222065311835446228240238413187286296398569075015582258562615289164726348916103739179273801439211452005480199223121825921314010239766436548502213906399791913512899841855803863882420371099599862210501873175575868799920868211135887270047230069353842098188646359135503089580170273109694283094578777937845081441396344645524422116011233489662768139334606492669147783605661813197602966319737927083980050785444698321345038794823714992707137870854998474706389397204659492534209288511733611273003309483203455774366423615995264374539230094630092439325707759370619575519903486670134239564958738132175881517379944767249233112498319083381147888273202240926187639878910280508503841669986221043469888225680859754748090133841943729936347597261043222564251893160251222358907104740421653199042572723850125338600909077496382585415514258283260542897456954527347672731845535329920153524022637386615595736678058549367514434721598749852422217395164172063092016548680832174394533160287745119089068285385746820232318898778376513319758076796144236562992780556858617566954865190484994838756209990996006238137256900613406658632794936859209039914999739405323389671779327143875373800319411972834960955137176788868355712258682639391216579052756544507345239197001128463751313236960310674030524525837429819277899534486437860831151973912874321261893548550998650455331081006488956958608298402909733659586000193018402542808070590540670982754016450711982546376651023238758091744000772173271078898748337890743189367209776073113670151812946704846141461232950892436926113267834696983293270990311094523775558362707449311024304682437237103540805357245318733299336873536588391890980158263812233464058415651719577703856206084416692094600486532450528344199059755204331540772004111303170698623295549639337922413662695419657231696498577401761229563569990672903494441480063853448837213892979602302318001886857593092208591930667823846162466217127461541766103619682108574717585905241549555315301392718831473010811374020504339321316705606095786130981114469613978124711583123359770792457900001228908904921203263472996551044078374935884087521007585920877258780576374159601146727576702634918896615811682781167375285604650051743298397909303228639346799943359702407000498121743163681514698507134682125189472756414319946098197844399821916812230824759147674243741502558010112487486371511139402142103488561626063409145737888542083281992016150018176771677026830787321129068897561249701664676853978383927702405550072756460004344475470769629801135983412471435323668385621926576956026504766011361668049922815113065901308367473498705633644672333757722714213216759153471569803955139135130201305032826448752768297924153032876006481057529500276846712943785771414205130024030672455587815246748141697576194640616600449296377116589372618525004061402132076545260561551075856198706853273983548793015035437244179645234805502133787666204829173919788319725339736472354034268334229927879654714718743357789256612090446921692504455235850284638790564610582092841781531592722473377199953424486369997472061394709557044610214794302126749867126147357864146559481976887371314561750058409770523674005088009985543542178137840600100962660066335344758636649437827189558724658300017019953394775231950325742852710826187936777581164562469430263072885978694250077072223534492062773715458402753445430829960758779461379491590694646449578869975263175455536938855729895111748008386990936971802693224590116821872641481225032559649701803961783357081496507130200698225439262663579480016002134127536792923246112656558909869521317901725457365838014608091627316275830729909535490616526405142950905861379071030460225909266477972928501645979382503854502275302649588664331299678447896091010633442340528907992838510705314992957606346881202695109336926944779214742734556277704794927312955119520298670404738271347541400193199648050242912234767099901659004358920295256501312752580324565912745445519271524393689881972577643904350954827125128016383990079266893999597208718531304201776984636745583000335309187175781425760845633898902304436684499877973214577000877155290690724604977604888368413896756650787115578777085316887915164122765421940285347227159176134952124857156967213946320097298788951431877613293135086940636917138599906330080962745715554585118343054400189223324782870580949846451909184887166867497993266463558989627438667294628343053720932777697049898263064388928177316920855161828834993002790955252747882616242222142849098007075788419337391997034999012740612601576991207125963174125510362796753252418643493394900771374188465494563989047508098451352416413704991242891325831532842258040846061936238674929107245881000427825844320578320850545225139784560255510576071814398367164353809506185147736024063686648127729632387837486221300441985094509668690909361850757749793704423530868375452979131469111396733853840459021879614639176224219479953054588388363723325187852725978485305672221869679754640273915951761321569335887524651441659170944565591662764648496656821742626666893651885571377127170356174485545677746671323422506977679261037595288677709170705255336438331640567755064604130046761239731772415388114258495298036267445625066314120388796244601265655356247068034873946145860809342746239914932209103776917601562274962795315303194789293264185006412507215395667812079072375767826204165130725811342195119954248178988206465980688168486109224635228647197637297734160338232390507347525971586815197723512152590156289709831969559159482335809453536690333408572916792423246460985643549238703022646994043042400006500955013624539846474696412789793361586298583999772426406414314687036331823745477698604686359293679732879052425589329370125832939966056526863377287901794420318729801850726421941898766870069041670310439076763271552156660694173954815227331908594855677862574535682691971328765929917462750378222715370335966023507268930699106886588661411439592619545384738566158047837169815207616124311255304534242966515253705108027958573423498581477205958437565110387318820771441683293741440048382932145154723597125337093058651242542759300579942947856840464581079004000374031377718641606057678181517282260457831154871848497316915331995652732672546399150567196714691000722015031414738608846145316109811715130439559576445571414512637729971113954336438765857394125279960194471075097201971023119875161539638354809835792285056056639061525507007542969489910258182866147160992458777025457654274553458088935251731627887551641441315894674107483031736131103354631502372021145419524726230394942226189274460811474588161035862361477307796651579998280263843181579173581234454867898707070685618939950531019716652364091486030707143709253204221178116364749487795217318005455365701795124891485595196561983407942794051908147830704456376609398191010569816084476543696214651121539745455327547965845061259459937928602726661929121251829624624988586014965025945343673906896345246425723884551862210151096663883957152246209672328236510730853771060378814494707311275582840293795745267060242533371290642505825738354856383845887472766837471830384583152865992130167806409541441649953138298777754571478527146541847885781961060056721341288786476317474636836625134862530431261967970736965304024878308597508588290355157324240872552343869702553418499225893578972455967646498765854333589561156150163084859070422260485438696910164668449796508818724839947582743866857250256216282422743527841572713705677403935521052104114535827299361599164048639008712945838735772506137736373835833163326967545663345053866900538622032193964320918469861190550220845323966674059868009443182687010548631801512331883947997174845142953652431005869469482507442713029011529693665080073198130806402448024572543590241805660412175870122766633175319659222558544019606817572785908186493821776413882492248057593824657120701406543157373954437594616932981039548639186281339595872909279276767748355671024274205339237472004958204465081782747293044455360727955284544606150191403032699920063004557621233125874198569045962891920814750521901197050077542689559650422810291532458884928482147743647964892210681818197641341531759057698435071522610979075262755814403268085459431423713856372985481571502499506633427844406102576619342867389738046241251207631066924282540776475199931242110340271110733780548307221267375361667299211111030424263131445950604648049868861090792769763846626642000046823693674756867315186933235087863760312761270025613567901183931681478648126961826279266497631432926276585587437193548966722833172774887978882222582379032060395609988124469775487570019495277789072603060957112297353288282179413221800544769863363656077761573244058874438832367277106910322895435680865183993741156950289876275838202975952528530069783684529216543490289072986945549809999628485832444280104774456494205384654886474074815533874543657463973265012976098531866778682577768696620291549702669675935416330928828345591129607406364535709650238083504348774226589024340714415410296361001300224875423882319807227881853374467930747968758236706344286368524219825226082249510808505505340611220136492838128692232775059815313503352500464300333527856871459929861920391196720968096558774989397780292268684848222857586564576018880696932840552150888353556416507006728034321157958302551513003660508756063866665362521117576177951052800278792900863836648211003871735379442394231893126280178145161999778425823628497692585963295381354091176025073935038655959500018774390719089018146102113410105164302378576111807266495981577493876365237398937374158822028865804558398762227156045423760605906840156289200760992223664076802573225353095362690621161677023727318396569118646705274095377931313646448621423574712449780850651704957855934296468904502631637590931368565277273622715515701100005745434050314892169402524752945668971220702023798994018068767719643875020843906002907702405402363888900233451206168862727493034726384817568415298807754537388119593397791635125544428944301353776358261662443710202253466816227323374180747706294365772753130689749009261466537459777246545216950713633444384258890085669131727751458337883641034983329783853477340502883945141472443362091057637064652652339133481967476445834158976046777723627349624477833799153251233173198768831865771401296802851368731745978331809148823701494816285871813060355495026702843012826608820174698910727491134668850591748492454985319496556312616947612936467305990900145394564539541332961373648026648701037109449069106063622755641743433000450352610153112962929379943175922797310607783488834049126157270517898408170566176507758122954363357483733497455873458315433144876990581002842655077668860591588371553786776675663037384094577826387869806814345996068301726643119466235782074922562288094261755496598933016228891624141788741399484492263742779087200901979059713153662237872391265387718694754590469583940665154008998753837349189994394678549799148479087323008760084526512149122067896564128472189855783385183787977204439065509451331520656353355388364626800027418854001219969249616664045164459115384889323389143551511043875949685158215942476180875244227626883568033298023037072912572979217424201630321051898986963707980572462701525600401057297578884304909352032096337874819992172029817395978168167638280111327127054263001905273920167221856299359795927419428076211916009929048132230385895376983632389451841493188975612738972499205533342237964513221153480320497905371168142184751559182697423689495657688294934675774431300125969340897622936198206673243494902694302174893317014727630099801737674473871796581972464232365824442338851145594743018243050679535334004097720735269073425731030838082901829199223778994110822532368202586362201213886925683219376666601498825420080580175567414303433086484736021181372221352922801273289656829184255978416866140568941339205683533523528025880284222437067105938649898736263746264660486345380177197180578705478459215434026594304246828283214683715742439877410886666997286035930205752514386436541802199826039498836174621259696821302877580500275584562997248002649781199426140717185807500108349588179346551734910955367474386833499102070433161274824061493056029316389159773170410606881135773446077106191036877306771175855295159924328906928552949540368710022838625102417562173463746073543455301511241576595262986244135155300015228044220932099236921985682554985816297307026300501448464622168226354889509096986201050257231035661553453332079897168812950542943332464479299103077775821601989199649942137936429354585243192223612501986016459864969893025402052085697542476410223110105102609566132581159586200656609718707001224660346878383149101461651376503916038381194409883090681083944742517400964074650395082587031729420643814185175722959977385574874241329084851866579007778444525311817672971742009165628299754572405448977555026016521831054546698069338615904192301844030488840644890488058506558234341324721594423710153125249214656355779531115868454237327529621231145768891769802768121062098070312489642558178844764889593277070450225585090184755678865997979601145986432873747333442897868764261079651795153045485698500077681436389988695120639477354533466391367512878850300352217897992653276302509575584382854474057233456218001476336441138925543828237778430933681823298053876229434940055794289707685751038868184442243752702814081457593875775924061039099516179167161146348847202996318346316156593881717183201099511128427510733858508463041857865912815718922935777708014433171157139326291832513371992362619661063432848081972857684290583871395426355294932626754898947710163321987406114996705134628375003592069841843485289159622865581470157605968352437236935370610763854785110568487594269101181686503151140553558867446761300147068084387991564450804383006538601949145503909255489807355480167531311566791047091304672055919545880719255741084060707867633855188815726855319897337229675196883708102888295468817901098064600486812321747040587606338333480629097643591876430538434846562134825876140874968165920410234108074685687201755383211778947183701933591748302608356427322946076234930697859044315666721227092559589430216494540633344859462644832013359740952242366459221819169916249376058146518927355663404912288671561995704867906476505822464446051947847693134417249934750883869307675677118337081827787673459891434184976060465712657869940444617704230492081598459870031704369680119216375298777151006278447405952090989338329226920943714111155313971992323439904190392854444664391380735441056030733009030865226464546233106613842340871177310985670337422999134691954344997406504866041243629354997659350252944263120212139528681299311311567300811921376118853111995951920457176662293899371939252466065598912064303939962816765643976667739917787922073441922178642224132393413869848760609797149451556357131655837360180404726882503056598176365047691699011651922836835166499448126095715266729636284747615773284952088549932718132859359782882889525675099881093122185665255563037747944065810652942373652837429212866034736047470954129811351394685806028702977864636279579933514653704505962283214882412206096756250253305542105879881743254449621825516051113680310995570570728941500822561861841496432580499965554111234960639439535206635832625819355475968423955524460929904319388776281797956476288260451875577293851433789842990432538327683043178010758706986220284339832506123519045293112359178442882232164627084758855458991896692865919707994941138400564620161760517403343548137295416821447351157159559016964795875099546276816549273044390305691122403772406594967412110279025317775909661066727343181436331338731273174008525681015446407215683179699387920717522618639753189792029418968757775285370500605487641739502891263396794278562749086706329002047206035018599416009086693657958516919637264719085492423817047854373066563699376420859285932482589464811403993971883024296612349849650673583643915478106649951009383849608748857405113432137057321926096360044080386121971018007613638077355820132236755007321771893741261952030673172340921315961317734168202141621401545558932056684327004368557384141926551068880316780590879062956829555770523170868722299747380478956584399402153006031978461590210069193511066199563167873889967530572581430246191849717527265673129111615706523333901898902320194364605671053851621081677002830229271891327532722440236777966520887047689857173475530240586063934012284966124434951108352956086529226608134110905352087125473182844393846577924869349623418757089721661994542665879192390673580547442070977230238879426132259089044609711725117894306459543987204581915143592541405862581861969708935592328987741215749128420404587458659546265841230026342804371863258835680356866958600506443974989129898506980108881456095510881314004899347718580003111358767262655763859880825202174666719026433441010641662833773399854391172373972192151980239133590746380387012637573299861090238728168569948779663427762789574320969006791404870679834281160966761114781664862215833202379071806570293630254792158059809095854952230159202987162765522067438496773122860885778168977218902263639827954593237496892517588662900888660883246921258330698611211888664371149972108034580373075247599651916430022446401680306313142357783446709499987806197025263311179011983506033621409832531336804245224928294310633675874687224916354251111631468430219492667415490679846709881063087933614370126687569046553294167035325442775084553265030274995449981563417468931004292559479861266077360326998877695109222003900398117989818364460339189802231031544196641859240697108975219183527396234713039121958906719216611155571379561944905221157424972636732914472147409892184163628128940524860934747111452219035127817756111264648329359270125315810675264166359749493339338988711192505186160597721687998645751064702683476168283159968134324722427877852492335521529425261835082423284938382822837975876310130669468713037747628334970285177730232800192221990729930565566268516773269408777739305013622001177728448733209590627797643464474643472081762331779361642736537544722446747220224542699542687348193851237559058260339961623548718812632104744314382156665866770388333804611033117064045984388011742814143747482514290621401675362362702713184837662567444818909616939204966999772431163785450189982455979559397525136803398054252148716505832891668141287179496590006385540608282086150481076139818374001366499320567810285692275501337660405915887316027047399692275757412258073925847551715512558403234249676317739365504150621510365870164065321647768181882139730929788035371543679177649491383575983526971190187538955130622210825073411266602058509024261087386736877997608910866568984030223515246112185051357128515400026355447153001054080119090364623916094923813625140634486071838483995948238882988050204359437484128905307973969072918331897686768821498270909415170815966328314072120518006487877888171003253929556741800898902423777769117233802624861912123803225240152491849236053542627819248998749101288651949288448707161738320945092463434325150996494805785724941583074888519596613196093958882590622424239709360665619136407902571332782043465087681998482127673631771123793523293324257729382177361964770872040245498411042125848314704303075819931699546593855639762444712160230086906809077118908949205824629115159728721590896803740233166705566072793843056786269352528593576388522882862187571773422610348763435971134128743763128108266550177823315829085139457364412436751233759859543887260909221467693381351876268277999719437675992306832790182359517587104476633401912325450035985422070112674388574697521383152879457312624044904373472915712129661733077491383467260417929598394620330276908414660820812015334631852256170202444799179766030942661756756890048597785415970590229264360866542379070081736777666709830497401945834679791338770206342461152738741909082881128573570091341857825673947342411142857520999988836689420078261583543252412804558598547882959512222163027055587543479640660666667640069423130633846477072679126340865357097243624652299758023932700083156780106544341582473485713763517814470066730057078322466123563580127752236165425399818198486362480914035190704320134391565386590388641225199497005522668633037679563888523399144458951031687664403386402957353524565676452449036967704441958881167804095188219874666401138840196922288307358525260413796654094476445137430707861954484892905676021767871984512493954335313482238226945073835744382396970360500173145893616832546203110545000951643705614254736033898111898539538111152281767918797630234248084559151207664218552428816050892854806518024051578324872096153131185841240327785026616407362024697365228937481072395812449280508555793593644305058030225455041640260293471327736415078837026636370913741347796192521129897977738257859096514326126688150399481607124391880677760324785411967227209195628451343051636538751685298812981118416770940244874459449382868338000884228788649280262419952531050299538447299149330511731089062476707197780880737976078009586339659390392067531445781367340623360445025984255348479325879221436702879158578946934260538757971851288670385210130516042093182366121718795586445585443197764217929478060107367428674405004085684998997036447051012088311790030423174632056750251615972023121787475256712536117435383373968793518711428289804295674577275010674759695337971696077303239412499492718454874645163664041093472953746159815652147297113420593511013577279242916934578976303647304981418755191286919383730757994249584896299336528528002639595683192136389346938646251897334397291174342647824417365647941631169349242570946649082681294648538972519509617809153620231335430150411868756604106023621934339959004952117606380613676588566756305778737952849700198708034472984172594604810475162141139618013320745072054482125831136400666917140967471273133626114147518588834140245499525615513280624242096933875234788960659269301979022404678190388253205177851739931707615112666705127105269830317658707604281963725594206822232019076769560658039335014689331785119913483525293958636825922380182972019617018257411875423117567838302773849805294353887057957446038621470388889363450589623701150738000647949368888573598976144919785132439411130407030721269960871835260780481042817297823365943446098990983616343454840003965986615686349570278288503020703324256396118795185865677284502528671334260043254533142887124725340283610023491127024769471026466533874670255745765689518041606814098164838248893992571014264262914758278554384525407706170870712654811337121857194013022731333703741461737376889500406573739798188465848659100109207041832460714093439250942428597411382236507067268820281095146709642553030194867624662415508318066790272905417837404591562015392941561950193045400642120378640770785397996779024458129561736822927880386946808382128093651286819543211823335941903317577463770206368189554877860517734558434238600359130833987568400023100320213436058948325720893037998526695622641548814680121323232129884239993139690992628594544543536538663616901488135358393760735362643544567164999622574603581660963922852088838538869605468019457120339122145678337155358148373415704738129732815674602926665339217202400715527530186643047651292593726106951302300833243674049089575438793876737502557982895780709822704742806068961479933771268546055010708467751070894192877617564063429511514163304731697435861840295410113930447927597651230676655047327832306978162967501202117688289057892141878861256253783610647121644976197179586805222671139753636856658435708496968712596136909324657076405776311049530145678005458500362544608563604692499781882427454104317386156839028674743661018006988881323964796141027412846201817076551986727633499759039759874885967524532134213841139636317506482868733302927992968990882833657355203965669149954729731344701400327804266640246862888266693051353537378533391637440994358051651015067900299562225108247065157815680527524155544282233370956249853706168578272102693707644505250348148976594533742170277053589326571213370607002607890896394042784660055676350885238736753119787818051361633622026237048770935325983800632500375063241457960495180873163638572897144512521958120361591841775975584129871542470881511125303512911955596794578314816449278006172325648919773580449623135052697663275634954330361746147276989382449131947117650946513239570303740233878012939282702614056938873855507298436363119665161854227163597812543726074127772230952894969622982683909146142163746195568224787371991354519372848630164804077677833051414551987473861845432510040087945792927991534106811221769811816610760174394242473790721370105515445032526845758128569625605447356800008896982119740862082752898789949940377458814383842212006432107622612177448966097593377351100143881340175634859122956287508107937948071429193158793608058766749433554560272559407423495554270650269168584902519503575300320044439601307206687984185728559939123658706140501052030779663488865301348138431364077876696852341231526417905104102942445819889563986245500869042159753575928056742673738229880786685883810505269577977715056383649170247376537911651811431768017166694323771314522891380035675357769480376104894745457685004954792407810811735683917334984339588104811778637805994877877623714244253240073676593151512857358386191578210889200844166941990898144070460278559233434245099289164013691933180536206757368526463992581424128296508672939471905974546857873996941193255434158431955489598506323252448777256016807482265469426329040332207319274583872115407984662648244772111031180469723345268358134362458702224846777740863756088610707913131261870886825938165631801604437594339815789918327442924641360495376317465524440972723408210020479834678244152268301326463130952496878048902837738090103135619465391724482519475973272535251978081518718266608958592384882176152078544803784912708209436599878781281188733771634863635120180146614895574120081208094076273423656675245053125666749393841302698698405980224308636809258580160101794708957029402776114208887877571613319026068820764813410468756449218678435848917991630189429969193672548020901266298496615993222321053778696559071948277934745710981089385409526659146350958326138522242265774535717437081279558206478334844832251300597593562074373050366306322402202684276855782772661496833146089998730913270628022269405157803600192690395885567900947700996970051696687254565574614595189360783541790742170230290636410641269146232120624942573961902086615419015639665113299230274220910297507685384568380162633889343410538256415171295904666827847315140445721268573656898422324039296589898805131053069796307294210426751200791841767068751354300347515055645358598468493825872958744721113571241122389578347877550963244342906285306102632598727466328671997099452503316480212275169014022614133554227893096293349436540114230225107333056847455187891739500352965942623257580403400504357434433159029661379635709600741002286194332555451282692648363570879866849426558703245698592113381439224427974626059156876963578741705436884297546609414541423085809569834831513532843727318471507597210734260439293735013709194856365388322474688573214175292310485092783934727007362237601346393120241733833293179834020633493772101442049981915250861306153974532098896564114364615713591271239483385205149652802467599715603555852177309443582437556562863795891031911881905287707748508554217829473094283217699789419886728697753691388324381260015507655720075054058985963057639559304420742450815331565927730445630980118777105125011756473388689529936848291145919303638825510652224793697808642301219141910653959382000941309387301143142214663536871575436785054026996448163572699452829881606482815664372430077601404477881829202745505754943355780508509505695166012866128745744030353912101344490856102023130023010990391329932513906652944089746394354439314755483021795556615703092647874639967574724900685909076924547287158020079553978485837422563279419693776118727949092747837736597503137384309420926724498516829715201411460703854822777987692326264701941662016974848015254062293800084042052320967627711073088464548076450545688276874234939519753169767443574717165138349860980020874510182775827822486148656308146249687652141753446567720588881979379110375421573044170602305747311323992353230773333854276515427853483014778461307095510294340114640519170555492566739930016088318999804501064519215648119315153863819125097327151786230595838841330889301224592891737601906709117637093229694422964627596989238562661886669459927590752648284585335966877425480017599475375841549983544194465332991816355448884735000848588202845657146735162533968672968822693696011488007508177653032171005466737366442748604673271835579495066353534350274015674533726084970221046239690242566012577573893993425426202176144245105414080741728927285763812909206981982481982219482009951159909926860340451846842596654943993478865121380526468528504462165701932317972329318785159920175538186528803393589839265273982644622162409516961785595955312758813661203574252466535717183777331602145662670429569864879816131776993954927092951457645940500789286786920098027270555626832119308364545356892357756827312648541871963838271893421135750955376103124850891574755860073312756255703798151370530901720208082619420748584335619345297684864536034860280269101663534668115734980176938007988435648504753448977906259963313194183864325415206976350358219172291762025338535284504290023080952465010145378651306226631484200036717723770522158714598233845293566562465788979985144559726932120932109744622857153010119194547659946255630264527247205295447903539542199044669310288380832466125163662627635844350524257264653043867767787002729318494153728915816222337353626806214618259883862490394135077583965890317200029374898639518465084621461086014925671367934188017623793054323292817475783825029283274252569120255363464136213825558113351712564344651977848796445996518806683443973840239749611665208949131404075749959848096250624448238240990936991185341155055394438921618332731864955547996720944204016829728255614186522129418200070899478186555745880242288848885685538263636968303068847992636035509063316475189188428367673545506377089447521791752151030848937368688925184042903075945693574583832876219902190510741296828146730552183856388630427257675845327699948005861982663259728599851086041772617972448006139671162340778262655199821761350257971312804376770640994004721039418395636656774838831300462616536626842604453781364751763898090487463298282223460802575910600881020237140282093763658568072533765622286253500645426177254345996406643119505935864113929304189431660556322765263882379045126141713310664283645102111135892243456432855960748210545097694416543227560239514633744870104234086085783605644014664758872012020799948633018661815798087387631701229744121819226610434748813885960214154207489675452256749479775129057070880623626740494872623987647614367841791898649632217549175233556023932900538973872988657144199683324182515454727692646036268002298319398061050096050207298307801447594290600118468843161424928553920327380655085257643739624306972548824795035932479942821574937572905243496090494065542077264641152596453073215789382169972027569726400523815002196245775088709661281715890078280545953365153556465139337913259006325505219998089481094483422216932057703652088150498608996841004454314105663360239248547160882175659074838174748725222779405001927673895099048370159165936105582239613207723001792510543258285915280043100401048550409770677317360817963792189764513343564733008371251500354818241383023565284763876865700798233888780511081346476430490621672880862850757360626852565312185882924257473693509492117168053886751851068556548027841752463741303438089329962670683806297673250528814481451403957204170642429087807660980701125962390401598231377542090291374380624916889186408830562750284139952956462907520712962562569197070866548730703659758343636496077926910890741203348765626031821523820554817659073724159671764353735405856726065293826500952963895416309827572256581126257912165967499871882899046222678280369109019513539190178134000900719800613310163144293344634514445124882700790616135063929128858607518712486264394748088961766307739120169466289906074007128170773605952083884334073661698993097169753463571653379913553929700386061434497888164013692263379447910591044001645698302808534564266670088690285248640365432646733986361939324960849589972436694652929609455509334322040117354305394811560638241927755738102009036510597630975720166987045558885517688360118599155030813518399461576592381420350361945697550164790102280418216287334857371447716901781614166049895686480179342868542541230392678481350854758098623867807904498266691976955083114435970645261225219444895146724545060294964458062815046530242662940733871195497832801367016236188279027468163463580372423378596457299066790708669776469403173366394100687187869342190112495341998766339798732190981948739838136308786139315246038432452908993831376653661104154169516421328216445776222154637123534991592770384251775500243197048598200698823809535936849887977617165329533786602577320655617141990535619675778713665359249782775814820705129898581195934236217113111246830186350971442164880498192750448755660432609108036478787380909042594824116820465352568371946230503426976242056118249179456038467482865166273064815694536807084340708820441040378805942221503145491083433066998424365493902393496478872636846047196722783939656296470566254725627616022384304955779765747633604588687696456473644896004267260513048204351820006658795370915930179890432514729858841573561027029106578289221072290016479760697899911602506922458564725522764702730615191863642950269419358545716259391088515598329646180327262536896053674066281310756318908070036970540963178518337917419477718644621340343783043034109947593802409228609509156276667514547289034197554296375952856920493580924713976241700925068654195236902177848632622053412904329786543129313086955783377879527639162997087372743731574035492570353761512561880447061521534070878149845490750651371759903338119854430502540833291181124093678130756244081026594787541909422752887483664981330731895281251010283999762974896841943962601395910157578664700761395382917808172904181129729758114200264051788270110055358896545541508472419790702048741857467748235062452522812388403721951279186039095497418127128794766756582514727215480731688038215520050741941408097437841150961908732572000034370035793730125954138460903421323470714582669081037319363072867761088346862473630494796395903714558660485163135124013161038338811795462471330274496905233218018948225776003270054978234533055682878926096219427256795109523383761572822105013280327717953097035901472684737392041982665462047155006491239673463506541727349878554438612620063787705534613502736709055921082674556439902908726074682127465333082090852026849720890145252029517243210508782664698527154499154300020131890664750187613987042850161885219971267518636674267746580076854783240311193904634586287089466953483686735107490165585688774548211272497976260839494845613589756578149889878443690495772713157183827349484775736059737560564921513580662308317109025436958363422076596879667967926502064337619056815908415199693756810055849053311177596591292994321288259218527855936415597549938016566377013995277882017603790416815079044661101442863272552915420455811915180887345152044580981969303346972961186687850078897951676220372851871138139318422680090323527869765742247448987439394820580625587059017318674353471791520397268215143318758053736246413640925729674717947716504424785289645514645459870039970490135403184415123539964180174763261731609407403492322435780635683423755411926375253892092811546311006991387154205101431316730392519843600413098162493248397156957207794609124433065379844716419130065967897545052456372672329785174223898886042347290152723051461918627790208819756961762333944114735969708592070025311668428678056838567183343836990831197209616652217336434578882356118347823806186105886543637772570898435875813703987652573032048891497156474752482767541760668466039723232226366491319513738973901095296922125581272941428928415166553381391844670810467335437963477620970534353354008808352865137981648233849489238501640590146397150638820015605807559142671156421121118464806266627230629171186741496644769611729876801971670591490465712170338840863655388375445216757469604243839774881727054868477983968781928873913737799531525078032469343300246766537870279950519581687424385759885869273811850563545895116377386170431026314622049992963558746388796851625809346761931023329178440306205139283882309900250082035129753008940665758138950734845315065175521228020746013950650448020316973646600125322656104279418420313629031273571020094968966491600065549535863664096393732548455419587134530996171743019407901751424155022488371458846477361320247743780537656794750111323896296093953313183930309532365677314057770476127525806838563399644735500269582363092049276075776453389324367261165034979077045728674496198942947351910838568823238222360316422104465740221324912475240351943848509970555673019339804505435163527779411269208880832601234407403171684806381028877162120462905343961878915379699495905555233035199275836926535176030257801690761989200043634352696454197489854816525875376876524731089518516581856141448328165379067247025568060061530275659508305980988251464387841631708461320125789498849292897118587733227966466917004389500661705825246061778944243061839163109586253464541671155814096655037460294148341258591056068880824130808072299649275172591025758422814412336685031196535459433732378562766406633208471826820448949345979896211029034101311201096614226851809864970837180011806161910189127847879402232923637248577258060583740235967907389514612000280876355946322862666877712147134696639070698817214157003370265271185744447410382408340579704926885863293064187052064378720161142343369241148057421851150417240632444590983019066591987162180478472811060616195234875896856716942970974889244499129168101037134554985680329502481438286787336078155359292335236796377498090979981989357601386042692760885957950857665502783421057353809553482766602425416650590154223957602329518941729445363710600712045577793900338336691827717774896547820663658141809403362762009763631747472440738971877318807208374520388160611334254891685220207983590310506855681468980055103181548820116381952743807308309100365916236942083925661978505252306308947099693766733997835479286230491549497720125222229164287934560800072962517055742978297137244867828421554338657706673716999270174866835609534414681690658899825422487254293102088518347998628949771606700793412807719360724637172268231297951364030689468032425211128699012553833750879621328012270419095372403892271326257613269327298270000400690529503415380986276639209251368160895463460480394077825549766467867752825025426614255340790521841102770650029321091856522992345770137317512385227121735515326183754299763247451949340626177921128850392046693212612278965241737076877063350300695413912846961496074424322716703129811713736677464426831052042542540407326615342021155921454671131294903984725875215394979994106808193332943180827518132512403429866347110560411375246093776354625492353765706672771822800192800934955766673646336390466042476595928612591402019143155551259359146106817114165484148314532614827154708320348229888834632351150863630576355197413841640053448852923407977001712036115844262210988164209385219549159614323246612418865907970903144032410980797726548493860753803156022230222423933360285126858602609323333908436379017753853048895133892700864219668708412623318082591525743176455046045331172549766206461979486625494953032779332410407380991572753643760052262440160639452453398656723389952537531330816430635960163249682836349878968733045778107753089112030056339755599164158394185272702549291015304887968448506132025893811698548658112286910256166689667730563072397074461679929382838035931442793064724948918198079974127519997368873170924776384707012037844411387864373466095908649412582600545178563611385298126344704473582608365509990341549871639177625742854623383845452194270236847168120457765958852848933000073851830116843948272538475689222935983261720663751029711730156616285156913304364756749881531442551719145874023071618873762780117294216843803656390566887962740962217256647847206183418756436230284642267181002282177867891659914014638809306038401868927104719224057652993049138455519948603895772613759706730206197535238872038126879155445405997914498707507865254518384648678422321413725874266076336749336616064612667644962113987613556380522966844084712825982122066687941316873650943766311181376468509479903264722418532585045074530666349647117669504161537501820062015458247159486772369962622479520070823138456049953611730530721108711664019006791495796471682964264771236622553502936192361287560835377820928609837053556092424144226927733473075080154430652997809659350590231193253231787933833332196346244786380671429595933213100521907323622369789620620370841575567196153841662800338316422035674622778191556194763297500836756745180833341029568974929350581838155230982802848529291664563537236351072004303156899096493602158249721980433573406302942235859301650971262832869087615265882950257296923207486265628469493399088414720793308256589438799921423560216590633377124688728526267263025955186133108241734195131027498111168205962745968533112296200806362883336963146815343821851562221182426783850499267478307072878740399748758027649001445089166313203922963884386491075641236344619011059814746660806213745067732552178285327436134333062036798164746011803955908223268121499795482086224157901494663935905499646361963280366350827509947830065021833481501459800700818925621018292415687911440004752818626818069069890625274212549625382239527477980024455731078145648291698368119310597781892784436300831240792416518729331767373151783768696372111056822576499269634558884569203635485974041643733192969527088400165786260220516834208147263911890307856081170283588772845792125774652093671817633312565138071338877830386163672519233491953681705458671761930218962718889900935424754387125844434624593850965927692427578053304028656065544082307734689943679553426103287320121696369164133499873503869300355700684224669256594485154325228086156188229565970855610066023205064568287698885729851712427595192293843807630039919093098194333474938437481792496212167457464737254787956272753040822454412626103688638911489965130416187844648498555817288826963211570119968649683450606086504687626917281326658197421012940642326814768662698783001675660645444640896405304845890672430945908788472828368498371617897594956710894933045111877057989356336888059221287023177186757383092906879814880336703918986762259579036319023679193619309933942591134481364744169151957417363785968302610020650496373253969670173579628681613462586244671954838759614621997260042009841987623034800807541597171602289167024354992259944631771602396925142623855052557391285469404128314576415144968063549099881136451853413736683290549235783037575266473582164491933399335572021714727803701652489295221169519484161585610304693303145914400209142759170759805631360214003706137342815326279553867077386885566769571157618512804598796830959953010738801029647853680749881750119879428807926605869919179548884447075445875415082473018271627998077852106627021210949231746376377373973237122654390910204974070339746110351456496762835082475685010452940491269223731520018129146001589756084551079280700916355266819922156316779128299156842796587452483817843169318213723017747698724215312003683712986030844287668732788243017873056970617025621950483035113450654233501708110596000322921798284743637000159512898980562557663105605805243036217441119953322361344789442639143842340156443341823605622412739600430340903675335430341381177027354623100266025317209038259211361134055425105225348772497020445521222643708927287217951185190885585617936931312411607816101154477789061912182226149907999755096805788152575033095098527593181940330472925422124211805373696780837191904175211407264580447339038931138189734615549359215617101264001506122988953910992828903887439367398615147828883762511783524083281891944527367273363420609057187798746956759926731964878463843674201828802351775472750031042557157427518767304670430343225628331483384236162355145863477087027805130941111085166817286156387812623535645450111370937483494583026527850456464187062808771513544358514825826681588458702997885857260816661467526403463271678398319731257495386739202406751892314062714318205538969805829596844971236859573346017032757287190339416220872630105512136161024953131555889086423396670752017379905389688320881231627173086939111332984354460032237633630248411452337738456015892398535986306507462891341185527700927033332632639028591277687601979442982292757559861741999758782026688361152222170583530070925893856230060943336866599248723660752207385406437602841005033221719988332671159350509991541213414220777379045288331095741639755075995614889239279329240803095889292193306421772261776100886533927691361594059593255597869901234325313760350601953029553159325853576630996693066461954020860574849254650369470812258346607206960967984848840032363844406993231817071424009097419505816936265862694785104534568286013646625931408563522896694375239545846995124438240751915125868904049432321534508605289413203934988205444085781272245358177064799443835515321697019151209334631185544479206932126474177636061468641750097210279060395871719039507528524527490359992528739804211058905592675069560381992879521079539624584267437017412046073793938112440729943339626310744599028253704977307290566123405380918438881958671398229120709008785655155812782990941133907952971739035676220067605289764390076009433045639582963150764129479075980514729695338211152770504755086495077168885203486781903864200961178602790190380137642825396613261295832353800183737919522302341091649573104037293667013453186141586715844055144025820851179433620632101354425988066813323934223606727455418238932086748921042497022930122055859050834387362473364868318520224763812270944714996868783063210177893647870866322820796242659516985510939804750610850654622765209130894268275838735976500665208469528737457730654027132415811229855241684713046607441798538578367780770842021535725443968601601487747897771851740930248797451582677953916035985203741326584257910230570821078582255984669885137013485575639144552926304407598270237210638229752759079555176318139113275495410554528990724332125714073040815205837547661079481802304617355644391877510487164866122874867234293854852883173875069734732324943488753027887215313925336173851419640425741077397788932617005461568872534094061647445060480626147282794459055532708995639700688938145688973361526204975912363970379260961076206789029477098061398859955162575988355737091567891238941453107092072049080659707921152030672077081909999178699051999795935200743962716789311469248506667104181477024320207668400225993878285692072513826199654489872481154682362382883973790400520011003164012443345550943973911689363554508599281054613862654315736733596934918866861400567737028541232417223912882753540835519523635950191635209755144725568805294602780767021993625118532685080245075676488192436708654612453403440975116561887030243550769337590065301673397516871317204147435220396309157483954928009861091582145478772725573124818180102877237492785868719332278370467700085231074713709991569961128896304713084294699987498299237455642782079905268925194711144464496535624389763846291950983996649278335945863246234400757149023958639967847816755731178883178163420045522062650564628195590215048913673823985313268952714827807147536237532483530839174184128367813661807891338113437496801589136933334683819131703004252350541174130195212512618933952508222376467250525245910711537846439958767306750580012853670788729051921759096194092453239154317351468234084348548809974496396749891746682893451280477591449484367177761087947871390764922589806924401860502223478440828113626129221111104542165774369823421960247992424584039608130347244079224483039278495057672446891190306635541642875206040298907870929887948872040101291705724857501153594705467635882217292184580015593481116866484724587902653713250428954957822630563593572536308266993177423870709632887196725263056915124066970988705335357450325046339994314321760813078641053924199404886843982693204745694719053626259706914556878722450517163702705897460447054619806988276845139882729023065788192802813446930612040298602319069306228001386636677021088786598404466616998930730977232770185880727792318022530760379648488299558558759000768020109780154262217697550679300412402821690880755804823814270807181453099435379987471898046857286154256712885175690404618654213289952344846128229183647126845865991724482885271462519675612114593549809375962399843860401705954524869203173025409382456499347049953022867393481710420380241451179971851489984485271084350517937194464814829887064546152420443256697294115317122441402248382784684872582004986785276359327946230937799384601096030116946023240940076403901796517648770592615906533941133216704771207787481557904744054245603949457540166260509039569435663494419427183742228210256829228993695827220925065814156648586946717330699853912725561965346640249999996912527124965326041734140249151001962940986322653003431422124448403041072725541710699283727999491674731029296271242542445126882960807310010184100628658138786290951123667993539518525203729413901461030258659583756278549860121589515252583319341296313698443061515474754226003074838210714180230612109176224452516532679614407411401060544724329633873814635043704420620327144244355482461562141521530229851419198102711688014809426863773253831732613172718757783012050785705655313637492793536669841633894654059174230119286107049398018182456896647996860075821943025849643666552624860035601816653199327499950003712618074604913694731895416939552629494547900353008755322735149914706562520144431532520785379755157220829548079560917753748154782191343642307979175219207842875934904190737299517224995072620449861448760297022850998023358942251579092514824992863368523395251469178047983060068315215251924354838401396004125690446262032409697034056328558465611244882704312223330264301150778753523774230738281156557302753558444585690901012029590035669853481643576599000370866856652136190934625529410403459318326830201103547823874947758492902448761147957107491843480688989696310162663608595218578627610783946723012896829263571760498288311992019861601162722678533588096617282524065616663002598894266819966812458562799699320258449091296746350684747216008867587395172510510242639826535976087218610435763845320178575428509408066940523807035552514210208433972981962149128961779579777016880869761629556239241313965199741846954605315495572185138004288568991481802248532168561841943270408488414609653168794418391049559422371388817249250147372933459058412423659055567932943212043215141961675309147127701277222329543994051556153297164618705211026304797894942586204201630972363539122289664105561143709323966606223525219008315349229727144013452683136752126659825040276109905314648533967993138449207782376324126215796947119340169083737467590738859880044797428661162979068609774853251637958970873054459874444509777248355027154333276558124734090800804919848072049215328688658059076960881559369708794781874011734105475353906454447438272545416349486850238390663217200523394150332259348220788272129057677537370258150521003870152317858190720459231842751618847504940395024507740929102203654749424387290123452211702581566921856582107924251904304912860247241376809254586122973850031656807415180463913126610044160031733417508533327413078242000704645139664761500860284332757492029249400721369517623627118937601704956879734830810435357715802664767593417355583488785603176433369061675674905372897907834585647921083095587362031722037200545697557024556212077483680251627842318260973143917000923311154360844283095751100292862513620550522417257264929103801831563853685930516989701488442141480814008580517062171133647951231272742684649748974858063369977986159610313430428514651218542396678917506476452823888318837208891645294993782388427014794787025018589930890918557175540504069629169356671327138876892120591233113284722782962433743563051575291564040383443301601884345519197830182026749655966507383191632088871970697206417043479976535690473310804665898286745640392933696823129672257536701459818231105366400009182942902811278871722662003664046206052847315533221354581405412400639304171356051343799012483054119394455516366608679228322725250925124202169576959455399587683555552167837846996203826102707489753798226977685486917566231967393934357072760490511843110464556716903718610020773518619791077367424980266078486441257602567029772648866361850849751068740244391309484073766249943342738279468682590874727434093618769053641622046838647501297278981741695759713631652351665501511427761932139533913740694431591422791061337807517573714728379195933071916005182838215065025526656617338645434879577075902798500718312401725651059761959543000411672212118302799291671900242873307719861220544988794543084080428791384438989400994757508392780346722811806738884614495461877749429451488542047625883855330602767169855354556852403829998589018898779750429154077081207824659387936550466787307412061859064047473976178454874318447734002868841168159494358296772891845615107536298227658532715772497518415213441114474709029599233124600880705807193088472887137650034789496535304371557091508138408901432961971732912609142442759911037775306727290839665355483209241055796261531314869722414215814887546394852965428325923535719792369063997633041647965824232920013878171658098234643047752950888767875935409663332882314060183299346398404247555364329432605084572443288143351588630862978708153145631504785283075760207505572880541848479808576515918484858494678068229444530703602604099260025466796830066374641490085777651005747464386573231440111876973139739474287862919075566624866827660513799254790063578644184839488241431318811789372251812873597619587287817850573749824985895696595890881310218981100779627033558532924923469674556275049255289179744943068485181241632991816733904625953592676870843906264226710631112696105772233377300283798227940407450221585031426135264404638965184468799473130128622302906932818400068988902374260161091374630950155254494121342579059524925206995960695377810739336755849965117578862907324411204913417001530952685525264296408327736312856729989696399922966633685426980485037123488697943298543611915516120482891952446757892771561707175161071095306909683130770268258520622418235826598074546477307201083872470377281874932935542783346631921137721542110804174468375604021305653955706083033982535111671392790626980952723325680567880871219304786541826421888416252285439919134037480999532070942636914031912205594772077537991031868683277745459203208033052740053167466589346422835578340967082578754367987035969689789436237612191735605656446213869397480282234892116600791289142078363018392049506336791727566614868259551456636303115405815828337426898299281785110074884024839413756198069870463280284826241376189149583056985555640711311661885205474038254852730481727415552724669988188568719482176878439130981343592396873307508480895204655460294434403235745612108044986947125844270524097790669714995729325754436732440348395347214542590705334292848759389661678877160433723893028808009503659390769875840512878265691054007746008225269418572061594053411906317313131887189425001591423293863363997813929139472846605049444536359151578656411246405089086748856561814264598520355207756290682660621687252682012440242787406946875497478752888172892172970263985491267073016391360571213216740212702804312681744209527775468223290847823700283472776545260325124622281629919591798509924489156851561139796056798513363084176143727022357442364720366118621449005862939415900060440714405999813336245128236043787702601919047974965603487951389052086604184552917360941230956452817786369386439269439672873248898327468439181476107268588975458297292555255187203015438740919715565280612504268199849968102319644805824870715125999586285293841327585655291575551638717534778737855767234330540022035210575109401419995878995130279028707893765126202537114941064588757842429301473430247602341278818397400432737677978935734467903524462650988941142637536198512853381978454752486303172826881042296097430702989472754904469275842738149884376541382157108166735850599548236534494938776544925397618788955717341028828429703939946420234842995757280368386322975771274946933951410364360432212119153801275268077933161819476215588639647262098982262212711720640464479783240039115382814913677312868178692833347365066596298999009490082932271597835459847367494015648849022177914341477341726242080301853519041806872458597042876447530311192808320244356653862456487715631959144019144985960621487621498948096763213719511229428020192187920485152396906102581272437735005434965954443646938132602369861155494646642258199750201517533797592822238045815045558212248955370210245647068429277021157639296791282277273496594071898531946582423628714528210182961248126618311568815000558173183487647206975636775938768290377020942076723200443542884259485154001598098834060604421188639386186973928125835985229727610635121002417635754094313970091678069961061332766193255646514292822255160459270649846618652174969282922466207026715528882088187389610095974515516029817233728837862636069968366816779053540409636144828435960508135183067935362871871392460658980319820662439194448599238128570196807698145349345491869080997228277344832776449466389078984918877085046328495714519162303249073714266639891867451884524083554325153318492423283956263883825131554960039997779650777255457912204900241673935743651893949303084129399390631072498687616024653853108943876118477717208589521204266804944617155182141083915427601735333712391273753303501609588498057108546723985808196622376080629380243221425688165167804053973388282987623386329262744104280603703308436737164166996954409964874055888340629830948004636993625807756360023228799680883491657287079944310864760069909185562975369899579696829203926288153165500119401108205420869291477069014988800361289259686991163587369859993250088794126609323316898025232900335824302246562869633412201202647676086056661059912021184278656750901895127320529456218404733514025187411080281857438245493206853548526255087331321225320955711822205769349435087163108833828566960050880316705988494057620077528803402514786321746762807304163493714168054175185585734986664513385205354762323121993914458632554850848730482547089527821567619061910847587865822127748326878158909700311669938174165700005627557444338159537003283217330799426345455720994310025529547068364681960162869829697919236994916307153754373299040703407537424898062716352845278504241427451858468777782273663161010315745556255680553783182560797480655976611381235821974328030301756215424425770240826289238089798569887977873448076352565425675269537260999283569790916270517346514362826955443344874822166142248143515564548242141829495003088837446799847134614113470250639423208246912889333763755838351096403320703693059209530435337124414849701743471291496791331289559459795300766592957792055320543378147723760704906891224963069624482910545893479467070867754271498900291432582334013953381174532426492380657812878898094953541035125556613458839229572418651847949988085868297017410082916380396785174344943473172533828685311720178816724761384877914737425335692054986082814795061575505875616008344601650678245950513612987690777759836937387991873391861432248570736259068229665850485746050738139645611158336467477676890008438842922700335435428539749623785782319101880605334537105802058704070726897129671549211032385542078857970231098576394789379718719875785754431901853204735664674610573019498801714227830685410787482402440680216129948136657918411384067563674753876715670016025944338784146289430388369162519487382627146928707095959364898411975050618376689518153232168543026669006983714839215990385306311344847756726328074302903950836134922962092695660393341051193520666202005724133786710319723776974006550264331075453980739656605170066427945177760112968295241756148769393820675481172458747229217825201632424092358223648304513343780533181622268595292096908950678191085367405266242455133780786068380497571858107525083405413483510320306788660398356801956866590714297065004094168021901897872648359694618617134647671607542492697575304143530515445751039941179528073753653442157153765069913389839779400961559457872744405361787918469627637341044900846138559716000848385154211845476391812127422132817360274313357613795437812935902874962267934312914190299846193878100199773573642254954743596056553466050045873295810630983328284623727886455620556722698190556541853530144263191412726703852779253938246453113153519767582698434686977405933647047239532488378612402138338990309334327075028427719458615081673847120051087307322725030929420036109997332108998548706463373598968532226049829868519290056185904024008004178724590349086863653194795600238542474073221329146264797184280695995113097890893278402694694198631198839653789082508334516651614008371156621782154360508888198998587078131628340067043394166498202814595510914168213554791089426017421736436125408667506876733539962072163283834263606766092864138357271211946857067618648116448556454136406729861740872957386305529349840317575742002548490779691320838323714867270840364458103242889286666348939208745759285659154419679324759597504444022438196958464242598921406189498488085502249709532604563376959369147638965061411287651654603202578952596788883859565579712480419871057783484449216730706250087685650459520736847050180278687486758056113440659492113889575800343828980898693962462409177636487118278721927237747531079061173093957998935873911019749486255778449314463055229316449126276270160630380477221524166244615816267366068123085473226048387042692539829537778274127903899781902050991134467362510392002560249812901561738402148464619039169325811785024231507834964064558269186244067350118011069065983141370581987022524999866420958457958160159360847867235803472162381068337341438796322762750471949337742859358617768038199200214076984751363452119489897655638269833913960532871295064179614668150591240884170391808110813774338285006396045559562229073314071094186757170874567305374653274843095838745699507689569936932665096050111312277820963456470466539366485926293932402905059054264142985111324000501356096731308189784946204036711972526597673156202475668127631590508127780811852645672148505543812424307309105129086621806331786303855897946486397346490259986985204508437418371342543657546758893993794999871736148772617272060342525652089717861167252187886211903357354812489049857692439712378913283107088848199901927314310350590631370185081114611476183166203884783845891548113035047826518759152064222726193447991977059737732330082982653245193151125040547588743575683508970844165094497587009617123801931296166903246721794650353691408797751417048405740442412702687577432087443828033031817495423526682136282832271857237146997854489380381970156992807702668597524831781668281137602372520449022181611655472839455710901232633106797891305904485803951126767416964503287393649645679150831710805764866378669608670085512851439911682192199141409624118243106987279500220163470530868133386387206300251270112085878345399924372228360023340884010201131708702154942990967013016531603162547355035588306627128559695283799876500075400711196114087148977450282157246691190004336407343006742485339554576647759233569469241262192584744440880908480136907551021436412877897071042241670961262396178681034162093448948412759448002535704399346443415990604871065738417258973009150961149155225940493447697583508357452102596100873010390228300930655780002845151709690405224611159230524185448024984209854195337947876548739239993213026884472695600213524118221569011294883213242440358743144559872130307518021248468568786235281314149799191676032449844889100215804115393529840185443506399675134808968291014567870166631954839524321473657331774720761652967710797241810629476598663174293024002323951885718585734261174997539508066522820900528931790392973616094707149947090566206399061046206990999572127511219402811835555667370977780239888141982372173618191038536723055206556854657620406951505441519945853039268142889730032744819818949256816547277680601723128627911623269681334550186952778231421820733320846303953806564813016410060448056857537232290166877783342415058656127307936892860772383158539198258634219559057370281715479552974167648256092234679513672175730251825189322983103826150150490536412270312624673533520094871700950604983882965170082408499788002149632371642966427265705399821041598270894910132368520347741938930750316940041539655215044821030718086069199961399597405829972654911679552548477274692247918721099162014528445343196446507812527893419784051412707742340352946231719858562178367986678883309737844420922012636832684469286112626708440350494835886824598338758910616576910711412029910891436995334746910447378850416626110553325531752867215453046737876725505488122347746954627611124939178391803661224412913188774647910372055862938119324176444177083329205002495408529141739315092605471324587281203471354011770687555740907096591970229909276260789706876683444391810974198423286139676485445627382210564809810616173761143154091726521931502517291200089209946298630158110027429727069075611694042320221436006183228267993430246524999866841770016116066112156256725540232298218630809436028385621282506873589365565749359685172362146704691772444850160938304188586233715491954193714496545607963021747359335106820024537254188669981012780474879040985709301278533242751385739603986870981183005580103394659388765327025483385422513345101515971182819823778114712160226879939938862580813235471084570506075385182963048136941117703122837185553104416023091558464699883225643583725425458220231421468414335905080982672109585054318276350908040006186306356312958898530240922902980093069278606903041497766693703375018506533714781747432994041176603709425820394434925465141364257577919269526980628746815152820503059958184636402878714314492038613184084501365543983347329625827931837829895971154170222391044972178098314266217037325946242619621086471989704757926279786559283435935893790529539975205048542588100439701680042567785111858558340161008458406475804514715811710459148802474666095279889063823117276020925613285160415732754910755921972782441088245228470834336703212414359708532201976924718760441323425563987717082504428278264867992892593410491931049015608043336758348552524458036887730988235044180788506048421795184216863617895232924565241880573107429340964916180770781896413087916314207178344824757709704852338992734632912664837583976575035357768786255384331835801504286290298535479553722322620025140645408144716947263871691460742468106657862740766664554124574844389384778221538308989361637414550905122319457633251681393438109681966063392746056900184611210722756331562489207236342626242879000382452176618237423443411193713357546179077972257225737182154480247954508459473988804569965773760984593635331890737757836311738756629959427847965872798538961812482565505988834661214614806001956412209953095050048711857778021238385467355179034743046543867406390189213588104495762108158496910835581029496899237130160607997235522486923513458002838351224243068859364553167451216927719940727352341869833117988199650002523106173331293728284307843051616935909373699897272847921516848469049827023123718820698006547732006948263384018572502845626030675554625073674397165432230793286315302133860920181853362441432056981475089502248458375794399902621051242970757554424615963113121070187998880291997895070772064919118577278606921128532833274874049908617737877823441750864215433831531404503318636208423197477182941230976489352315590011971070745158173140547861933985744719919713724662746540236619069580914266750322582106243346684184327948798803136616209655452540916102657585287683725908959955142885589857053531939917898852927693569484444385456680507288737431434000127297413721877707029831300517048157953835528355971321825392038268970184998132786473713495521177640793445684118768938670472042024379616093874211353727903951813362186675940706519145631035606650641959056867738888686898586072678894592958829925657346515063204153888601300963309841061975886542890621252496262165306654083350773840986616216662279062272379090948787359391535765349764572372963697830175908822861340082967283964308503275098297676887285375069173573307744731197510422160178840463631447364156883775571237032047054136497369174034455864017807094183150510809321525073070600718881775408671167743715172862951011527499813037882579094061368591176338367343164822676236374192927207882392839036130281964704495558976366345009212808710099629402516942994063421456082360299256509323536904788062607154907152461627569478791973562998147726673379938679183815735503682133090302939429969258645534720012287936050846283208247840234507048087884715292156476262505363918992584788992768877558437620491812648533394981732750597260302183051509030582940004490194306568380350645398036552528460674419771824677123378852113764668888742375692497008328699693403396490258749566845873378074363592677473869607276823782351217809787038331258009471441701539049999654384854690841514214926812282303298209295976355700419920938772065983335862567326784653196378631612981124284518905756115029150009285285844327901951230937258545063982819163196024019012391972838826570783398959731622432812394368374961130744830217075022202650329206537024885349938338295923128122501593591836020964205194863528602822166523028623727648891672704465110831436231859239859003202389283833928555725778036070205681906633796714036777991138695234027068579777612060386250931663512772475161133304501298173861445001146368312635008988650007707925757827614193172817200799273055347528711530216170149055325779035465536088903767054087863037174152382261997413523692361696736324701724578890466842289193034180564663984432155696355275124772972950793033357989348680551008593261221048752396223253841579886693186551158132804392072817754087427035653770572327763805020791549538425444873428908725028543141940732877491223175738666435438864976278685780963696035353131805553469080433240177412232652853324783818145876839418239002173726349415869959803954604153686817135694488725512948435330159308393599848780806327326613051948526483704703422279879217009809514746912147241233386204673279634495465176811223802730974394923248266095316557801653794904063501124407382032587660966250786669468979974654142379131479810864605669114723089912002719334758091868997656914846243095798545654247323492295739175902438360756994266569302238901947034250182232921266346711815868576324594418612111806027599478902198692060198266740542306299272681059403192779205202430359920573491355043964111151385073444782522137324597390574300265442239308609079200413260171232101286930338280450941965903746847847518620805862297768625607213787005155800536286984521554381596544028682758390478230359960140544482224946754499223977054833577474933407432954456763662933119192936940712371178019408800237559248803605059134196180073171600674956974635931599619198859105572784239470304383303729927551652427111328423965741082407623534011466456203355842463950095794276063761099622472998281192656520352529478099753036021456175176933912893780529681466407560183657535803739572647533140579999964167637256037768979176238778845390106478783170600694857325043309463640582047997578445299437185046295806505576007453224734005834475355600635767455550286541643050334742563423566345049014397797355588461037772437600616895213713730100349151360234501723592390863364971635819036317013379045505392804851799436438529864980874877826466854271509754595374077226539932769867409320828373588079706156315790876429629471347333408018759959491490289622518475558150590551708142730027351190283514164172836041833962607946310854558148348736363682177930920208508185135645523997540967115818229116794030546775937514731184555644258732509878283444555615996187130613249677597394831967253637323346889973393299559493622311031406057702425621042524586637374210085021809670953425676527399409900816007220916898472971598947061663661409566202959630011951257064127385236749277255984848577536128576262006779229155414089593510364569117830286467947896513652188145876169965170993747227130579963143888926275866256780898720043388428282196877329430589911949774351344128535498669501639941124758769637548676477206126838201220796026274513667726134343424823969172679572930022749819270829093404814752829062201296566800547427499225694668515048544956762709287530456957253040836857220370385113876533511867441288224222810772172940817803837026127804115127655670122167876017005762275487457641276007800612571887190444170156536941858637325533374776434166342197710066346461979291384943319460047158969463947752367141778092774764498974798029039109613013036429898645266518760809764459742769600494224430425589012511892540384131331925076964235994740055802688504903512726433199994131025074939989255434286066870099664265360668191492168924029235667123971577560962951093850689336007176594650077352942647275700127976928415796945216566004276019592876015875747539405412683552753804560418294630476998873919896110407985720608597001999793028661958923830171307946299700376745722852057906611555716107805586625859141857704766308294265561511702348316634813870210450621559942462022234070704110308208967371698194527627839525049317970987950063630812581384808178968053001807424143988158368758704862850144970942008803285006761095018969601764236641642626266308579114042294714545195160604073328104104514619715103853326849963663298115470581939249529190886721483813895183266009601644871282301603311827703574481090557081518507712155380164077709775043727901843118961958010552417972465926707598445725948226268601721594856092456221954549191762744193477031501603196862877899441273192894801346424586376691458581727370605770207473579450057474384934867352392098983578517795259477691571683685560243566011588145354278064879515983682144671907669987292468270386856827813347382449747780102529595647751283414423965202169728271708146028677814510391618335467112726742496997708140392594391545342756840225770487031438002360668400706618317218174079543381796992554725330568304502448202506159811946353317056889299904193544770950637216123491032377026347144235649596995413680271599684829099307300844516058576296277131826335816139936893684545188984419991180058088281359892818115583553072132230208034354735412231046567775771298343484566848027474789521554347802556101009999427415657363730263165952393537107907862700749856955788910140877787650001660793717108622379563349308685144202287367337857590252632883095724528114222692337723158464444098507940170990129105581979267114492262953296537505944150990920215604457327367597613097220558382033161056589068580204909371373005925139251631391549430472018988863935131349227613155759350454602001276801570467142641207070976860845279070601836707247167533328996280216058500362317759245186629663514851885381502960212664839242994322036704375713362551571876274000354778945283726604020273270206670928818567345126788324329101384008678477193073916049562502532283758813534794159608698617059425887539146287799558888107062390426319938646752353619626085609588879897612884033153975743907185421888359711038073474893446808129281534055893486596569235563778835859890932475098665283303753404709435276259322922560948712426448226884326422772515973127670126907813006085621311915783929172758983560199071829196738486923179796849803108914895975689809213233433749135318137850727501800082253445352026304027176125063550555841949999313333819014312781753308255830014864936326063377083137146919282525474178632111011021441210767181703732220004754115620759415339782825355302435759252726356421455497923553692508921355180613758439154843917355069795643238003665479541362524142952720418303171399995347472674006830471567682705291792274653506319114438462477030662916248568134473640710963249863764811362404048883110911537918757613638311911861811272680810720859007858477095603420582672034016877392422792544214806217217940006516553797669718013126511005142852489949345510875542624052740834560050445449301114174841725076201709216986092220468553569062756356436127201224371105983837110327887966083594222112379934615276031119596554003083375241146912625457843636133027675296809681697052364934977385736400205197294062173615952853022461179144575166812429245894228884482553580693485475342728425112914118351646851412385853634038347104240892157371862779633244001882397637063064570364798331016776234695873995650314061271848547548156665512102305490522755327905515603533367542228818841023265905591634428513193454147056114388895703864327747821073613611078368853423815128843726778609789040270010307438674562283693973907272683197214020022586585416981701990947296535666618349088380778938800216071529239581511566014812846314424083978212928919011038223553298342418993554450039534455954678271336790564922180553871219704887636739920144223969997447066915294215939765187541907128574614393077985578717466585333295510906778082472350466069192051552898070844920803381691632511518609709889675884205800747266314718867914886747563530357062341386396605612281570141049747547548100523761712905121309011588010276826964071618255179439288479226427575353761140854632203498386856280934295093763892052985441858914260312426432159382333954797632944853013908496936159611076419389287334360168652907032256943299111997955757331840722975984825028428882888974133260468060116454407875452518235137979973487301222554836848077330923330684847048881613523233266694093967574559415518790682877560278905991042535699208511497352537663312223460164654041446816247961813034831477164796272485790391718724245923479244498536398834121887997564557437392599611592438976828315495143283136796707461609711357696484186844594766869470560837693728658801181206642655312391001606281535618339515523461445946663493556147393218474440236059999509995460772627756905562576014438673792040416558801702831609578814664864210580198900272714506830521675878700173853723298740767567202134925160041280633345971004882800850204581470150347329143215659025649795790288200820290759686960227787962448348996609537869012762693841993571025371003289344538723414153172957202637458599468930440763462674090274256151483167874513489169067651246051093300471523288729075522825945897411198102103167407459947290592697431643261055268477022760027060383307861106154231259188040078834698900909649421552073599099985099292512521248849846960276282535669975793760696751913391546367292228671016173984052025566861983072265466544653635396633894067141111920128985589242260308617929059421178573458440325948449983077137636940720624144889569333071159244561234133831819761120826012241926547167577973396220596022970888187975619288143459690255588150886364669911283049000047143611876419930923086394424290686813741917805224407315850164453626088840932310932348701711227487187945795537725671979264530590364888182200585123273504200160767027676714583882077764662047964046826020118993190496639800915612038539496668270010820824520717237583748137207343522191773406429069950495270449300669596111252473856695147939260649382641345398538172500584206274607301356697010796321607307577410818039749154902793407452185823229872764513008180686323928490991261346172523006499786373541331176431207748421054143689439896854084238914151935287113073624449699326033477488942789912997625953325677556827863824452268713084761029567188669504973084525815367195947942976442485501628175567981610818922138055159280303310245717996312218573832292533226440558989490875595944613965593613818927911709377113699804655806819940344288031925952906336127611772407985626862235689048513835388858899079264794698565372562876274126378806209432994357589265736160714393889486262587232529005719562119200965590045657910323733348946654631854473194895009785458563106566491244346446313741739668236456924063930298363814007690548038524137903540116262606714625916314425811175507227041370798810295752357306350347184201076814910384902123087736944953823885902105274781111373420395138731551454985796268893841590539835960027718947847232377952081897364590586058080316270251259353878728577562124326913438283054421274286044895618659086803853963547369715780040353997737984307342267934163465573847018955276307100185023936373745769044895804689783485647212320619435015321889263175693700416377987338446913830545459082240996350044956338188492933483846466384716950828802099430969139065189200876481958201707268701864089131611585009201084680248723816863443542355239922279923050991331022429972120811517752818825948305315034249756796414484208842064320553654124066253079191474995630533170032942179846105771414344002029774180638378205755255229822031316916950130689990381996449068258511672647163156013324360230244549030473451065607081896731299704951985964412832708798499404141468660018886577732918028791165153008737591633823814477998470639656121009450260954413903386342457192273033757639147992390025726493487265657668181300988199626012398177528994016173058628159314014485686595353362896868417937213137008652723415581007782874958849788866430844259988903394108146209641167496763883816208302682451657572471013699929114121113381826580979608859850673643129811868002612329189824471994715642381265001803497656153022994047211333001434369348416607896698460740035059707018802983482261937529182360527919977639196566913493440024479437646070045450816037149808521414123315970581682148311727869708011089551073316890127654063920548275721876861137524198535480102906472274446388457443396826948877422797231686820760584823130635648317946133262950166838630070850737465070141534981959127781563845552525362152169850000714524513503485412354275657280217884418845585003675415555865772823646799204155593738338609358214218923203948259778218961804766100168403884079261428158283538119518487985264550344746924919287423391983096192486500611811066261999883048542613410180336337619648222367840451816015998478019592525349307779279469773337516753112614730749589608904924647144566570707449287589523895698471430878595540884753501296462000059297913976461094439985845035716727111349919958837840928759114360295666776223475093098217282683679608168452580499438092048752995923645927060897528774574498117943707465015077337609900678850527773241896055689438637487837093036178578671872476804666396828562755759383786667617676878342544704352689410217166262404157183131475347862134354800340824530746116764445910084552940239395307294591646073087458584615626867257713648973445880802183180524155399159986444865874080247152891033538813333422799038046352118806569193523532525040759372857231130262659821862920253459418527903155346367963211123811022829116782729896640803767049219304228636788326716576711009623578485988542004522540004036466579122381504858514526152555884227745628663247148019097246115883455280129898550871749278208803307098557749645929739430783015584908906606687199319867900209197441947707677187947631202020118324049512155909197670669228554366362304846481137916810557585301186885267820813852689757568500637592031799734235675263576034124906479344991142081548299026355200251592117631633677478294532229553003399809133015384494608666193981288485063245792606074483875968765963718966258471860814115008951534066788757010884537663280581639962238266492638057476685111017821770408651757881157919520325077151762198732063813006568941294908553413108509478059486210801353524538363555188933309614780104619646057147330200942925796958074744598957970150973172243712115883988068750336409980045338618622650857052468030276050620269510493668237464506255232861064990885188231435533477342207427923292145977133297326852672004842851195553650729239377014745533551992059546672505675648586286625749165356275647671731031676794316818178075945367134001999798542367639529652294040272204303936214647600511578907769063188286192188961573661149603761461897117457088439867527062527786891289491262302360907299408209934962217445214828219975890738751971582824826391584987068234721835344694527311759039339092526931217495571098762325082575428633328220040773700906190554999956482905119986063368545976292936943308139480246750075038821980417705951228149257756340380304996398636055544922765313089630416742528425545330162733347214994689948228823136436734715044943407125028740597306494139921806075158738227572459904388325860744970927204602565325114369513456056018197326250854387045153620504022636289644809316312582656679452605141949291702406741684864340786498076293634540927440385418540984067341610242207565152503270675546135616831868018623066523361996398285546105390101300744248635919173116651140332676810290911527692845937833430311288483797992133449257645066254445579222326707451201871955549051777176855582963862693303891690379526168973094389658505622255083928953774518890809607811094604659836250673131963525821487293262498516225897317077476788696561323596590476545073471362922200693800126281251332359956733130169993845450200221842030722230344044931371016751708429764047736509490462745538222262163706603637084765686503651729481615125379814370225294236817444866124891113941729638540013642852368426804392649887249142160233951635288723084545663039473401914259005997005326424692342368007438603238643035760889076902272140443335674352314784378411353111540354560307790727682410806013118505937245245475752519310820961476763750566493451026733766336752080842344024197832085220293699075724860530644768095227006879312993309187628767624288905746562514949862234303058039360655375339151456140243895190653578103946108874131772224078244901182189374929292762951376285729299334829162319361596309477535458106421991834880743690630392831709240505610994667891705151515147251159699418155397293643568819677684787864411063946709788302523025042603279811847022287866584145145815665907955990514246046432008314728345015439923273478054123932680931339430909978146574245904211857743661824813966335273540296991486862204791847356509289938008831487663209481754855351659467092094188798627673320422668562433683328928229333325941749610062459824209959963436042553538652852513152116369372269640182064945198976695709019857696078006074751663914879204905817452514580563542492606251222463979440268200443853737411659909263050125775664352906697325914980256722362854868445006108058366808932287162001880888893565203061067187055508295459873280373898853591942306955106496379593133580632581358074799884650592957101966896000063476108892449053135966513267822514183781375288589775569588935767741314481572101580543557680907591497999473674147571147439617259963232758149287902895742327073430674426146689188124216864939114682384610189590531676996754151718168239389608220506498288609531526405029154939974797101502905161872029791282991885177848727773073721595343658496956425424504326552659348167334038294254225346521478492584232588081482041261048642310688920095809200102405852832658221905766485328040611289563426823959915950141395259588795701664678669945013275026797551139746670062693648524851288516911530979518297700626800642474920834216337283530675516653134867827214326700021315201767770126182118260593008718131513231593026522632130393047522642819855313016955194195379910084016153961648685835207159257804833280276247006871911419046611502087423526394319949543538128217097876869538955769327673727629294476358597593709768073522062810291291764823254772250155069457437562308328993572761137039175187966458077370373866579339059467069379002291401252775971224974956274933067370607614781735015893203432821353764353161553312137979899357865945088651914814153819300367915254681714141315739330526204316494491467693105600654263219449603619597467841106161316314912827693124374227368536707520208208802223797298694690131937412066846492607782273494833952538939170350340851311641316526108468950610851423990067184173165824882846053022797570912500383172711858626141784018438790064267940351982338759635316661159982597418516118459306359241104653891037092300214549231336752388050046362097980452554998814484453654510231518164569171328838002549109679602739390583483941067484119048398142359923568096093343300023938042521206155114040544924818499295846775564574475846206052612192759751147757945642201403266713237928412679617263002481381690342950860040683990843098355670263279345700544812451284488934988319245282913141715841094507547247780151352714154857245032087703298937535653506922232677971666170576601540099558568404792916008361457065221124387814570276644278760969144354342300751207031234045954756645710172528176495440522060071759698148628074333570609395166273764926809377518160675961564338280150978015839684353892117722599588625507169821090766434532373822453814326473104263635468240990745663938036047758743253929202805081131684310055624693582734278906539582461704068783917283162868889186661379321969831573650999288843704232103721091697876925854490754576098101747203679876083775425003075082519720056105236734044095695064830482874621092645281292063013524624390719869256822745713196709549672078177283675359968003065247131793088863377002048505874169797006680179144944472922602424275406095923979929853849798374797488571222188179550433902794633537928503182199097098656671556734809249975442329193261371908289004499544390064248184565541321293927016597679603412788092765933726737589612939555383961784637310907664509003216051687691410968592424925032894353822086321259321079219980197465800203178769945683384507511157144793480627993020134971966020229330336625925944613170504225159343084438342048819048011273053885328310139895118893529052226203327418782729909718289234975627751583730177314757226815064330245424231410383704424230937593471593456772327785119469883535291741458264522450432952979998000385470667984771021654864690860040039243831198896057305003238887281919081624275627931036144971052070669205572034550059558940458293917096761689297346744192921645040387683637582763903084131247526174542288720765676001423242992505896213060310865636858964321583451017104260464332005553809169648054003430208133698549244377379050031299145174251468019460602531587210603255402465237260897936458690180571300842563118567681274573199367603219548263552227103910849362616349036823846883127801379016501421696793050979622778551316728941836407057764765119807548062443366753414040595786717600658822849741203595639378952842478048983199824715562192402994477951014383150868431255455637047420315136817064715868425625112339895177601573418578957168925955547953369102128846755103272692524616444978466606002325883287069147254160308799181195681904637537321214309549669088198104480576610702136274577939679232236206761760702081220362172928142479860340130372434694353304163196464900697866655268468598038860463257188760582035915460285954701054890711816108993004899469961264866215667754430924043082961043912853459223811761500271449033676716379420521573096015727181607526013143814811817881819028453015320032995394102282279763681489200672943510554960415771913860666126471778365534619208783051983946635589008737764413616441150586706817499589435524379590550800429473909927215200664625908730797549968618161718368140741520942563164159373242672265179559491671098660116076563628554921964251362767514451141261212299836843256484730362162667613932085585752993470182408225792583324082496951860807282384801809693049608034171881643709058953019775050379574490383183472166447373452191607569226465980572215239281755240468238941089237149246481644283749777687673804665522529021266893546441118460038642332195181936699408383553057188830338308458221123045772695300955852799821030288290491411194153375980563200493386799695435834616306057998192954767061535153163624653119127299215173419484699508079627966582167845923723578498699282347760653300631594544715394416690621406503987152440073753832152770677789995538490781758946569293071640540268395140739455574736740043244947486783188647362153369397522716414386178318416974632768597155068840655290839768146985104449034798291761218836895442411573425598820375310676671633892918445956828411391448512093149879110218413867438010099020731849410080037575001840599694521809960626598851984703875880201636575390104852806022705447405860443789378101586227806887186597256078304884300497809867691064302270291218430820799839919903406071739507171258735291282428136509146327164518146455920533549897751824339555543963320969916008604212948533562951189499989137191791047100733456211004661957986665023123923435068078251673195704735750622782274336584706190989758655052681182237220230445569826826324763319245529345443880039395836491445242193427434506912539231749067014653295431436030830739990569130233812868941793208312185627427428251017257944973935920631913776840057292279964502196998880784671013655429402432435450699903434991382663683435384150881184489524218459503684213996337221804252020496523130201799592033236337589093861946309299501498512913447177639943710720124205678995657827079180168396386549192315043472342732156969528754440823208436804464764136995143357051348086237550187226664669079624369570705678374554984465149031483348458660433593213091844007308879757723858791955680127465912826275509517133274008030625319735910727158693320739433371291562571839882737194931461135918898933520270778140094912950328287959133472530532194589056181709024450676879690482991537532066980727921574778239651326649573623906420636649398302438773056366182492716122818348858506957870301138988588940789025430365766961888450634614562464803873160818321366391216452978644153036578883424233492760065613846290601088305271248460645480913671097851967122266434276917103909417844417063289619336343558610741473910440405956092854280908206807048652841767751111341685507843672484288831513776545521054644097595661107173522975758827373931676845161407826069472658791040923106516897808487376087732778799586233487113388900020366161781419863639163492188811686483910509115314503832719424239378410341492249419433918264640161868513305707041749484032585437325500529071104987990822149708493707688573587417700910249868325339455338452075451972392025129728851093043857657083167660673648626142037757382425965866796695836069349392546898035650843326854907160491748935890760378277766252315334589574210276762441799088550144976129154385844857446213562761102381370238212172838312627456140837932491453554288195522336508543166068428996766641065651188726646382811628774852862297518914046716293626056461634600546689360338349147671445025752604797108120190677184992738726155242840418692173714324879170725511320667275922961852144566605871327996705494882937855769335983705293172242880077936902208323973254305857897727753508821444822963353638854826471057900650465358568274659555256607040121430630545081414022258907365174846041198324891558630205519970896066039559417595411880924737006012517549133238650224657335904385446815752573582829391462053467324749478883101109463976126845837892414562930074821049656130010794051268993619888383874766910246259777190068411601069620175410778957196119510867235964019642881174588212749665740481749457959789359718398325945798579005931503707440773049178701607405261252111411545237552643013992983169998773886743291620924455329133954791502179631289890503270425714863339081718104754835302549629508507299714664059850470480806489398765043420391976168732053271127262964521723315899085603938069034791608747974043438423510348422812173620192533524228893756194043237606508129894711005269608961324384961985176098839378422088605331802630789279360867704928479509994400448222266452753317107160442946425290553756215629513957528611351568566843851171597297989470337132878414874275907090185377382475461796601926557702989850273753234598322959982253523947515696643319148503055051698422794201087391780797652455556682846930115012861980824319855947658447944431453150232820850438813578666089146556881754714406531253480625534421149788956851150488267308338379481243386351047279064179604941904705504643957236546830327666388290626208419428241074106296172311897796990286880386956705074838856653983395922321033353330071431661785076515749825058466809248977915756366807346842382175129880291703937867526306703282155049004906414691135832954910032017736629670923505267075289306277532434008605748357512890515298959598262815382867731433369111261688259267283270062820176987086909515604358620231166813978849350581697597312727621918855879430937230543392023569299725788889190205442551171857184651803313023467799156806672404214769869128183634249746234098817432516721524518152855500261312877704960274343132823394156234638180295753384343495576548886007866958868611393588164886831092849229431495976942354222859522661364120846327988389703783340770553212435479616731083777645808181313203103439489924803932887145079103183435346129148700643259463703556658621715706755316210241023747984119348744800621635091022564695625278325520251854358308665859772784536125558659173095442492391532716869179132329066486160069840670739891623715572151752244707885969652274093089787289384539991412238982958023998248235906798663203603444706576043230134142397398219899663327857225535043030840045810694969277006150074431072058274220435147619772788571587065164948455365116510878564857309587135986661549320888151827402969790633993504643906033689248415873841025649997339572449365498544651808580758860938009595183735377482433360013466199902924505060119643272345055043426475298736894634763374097562000113258184520930640111070598359060365069826212576857510570184929504738322348942230706108796787410930009873066481887751714906213450645300324786268621037745404260276569050995008284571882019504885288337102923330706829183897516598992986930974123041177493115042193141266434015566614650119584117818320602465379258092323755987338001257423146039430299858320936177329515173117340431597971409196531568644862812062604104617683995507871363498376780851492610440140602895828075158596843895775566151055584572561633459307458740620110530824833393134317476609369329649953244967291339280342829009411134004793089308715273911251227561829752514187344189360777847447176173617412036354683843111305966417843614768796474526745411231626167913709680316229854931919765476821235000288448207100356605969616873460348651886236850008207210400600900083816244672855260749799493766983911176012566891480513053165481290149410262323610532537139729695392833821385373009748885567274049061234763490213109984683090559704511466600136487077422659035541614656194414296455940071574480065865022994764897460704005658144870926733738447568422825941556348866939086384141905183261870082126853478903579324021373999903784763100485543334557591158740788587776542412343025485161795580220332484130698062322385272165798244729793311622436731142490377746989541740207802870915201845835497850286329344571724254030255347634154209312196841354241361281914496949947373558246889065173513414517145067703555698798772168734575243071784349710188014747990257834329196181135286690846639717969064530558292457460351925484435318352164360839308887043629062591990826744559089783874670015979509760608969697710047238535216968154736476928008577043362878598040119798908448693513850014109416538153011370291653228265958135454462212886378899705769211945145278422455912044723657126817206942760543130318279580501323553999539747620570859440386674961014632960958634848104640632365255374594379896662696860591181959299575552495223962083138994069873841986332609872793869824822754491952713312040762800394005489770722600519826308788157516761408218330331179410413203285147080840594613441296608722174353274253721329260162940470828978926287994419001832295397793033527209973950224273616229510990913925775967228741721813565154510219770876621882285097620298084590305326528462967393244969258989624604196696748768886303388907796573827191613148324257506695898509858381272054335002696395756197219988385704190943864158910542180436932759017958310444951864809620594638810349233678952155376011370836062449483678082499879452573625891196337450392821259381094542277900396405036011525132550444657436222981968821427032875891790185976794386077395680318443174560097475653468756503852223512136909562789233584383145929207114869855141022394844853224630596347488208159827687904168505163785957844488990858111042473477168226199211431290139504064600667477859395231734380569816967146417654922820140080271606306790648401061444286338904600599547520117113746354837796521676959003332734051716853530675649800138112974731424421507704938897177301722207732794901709417212354857585495326846641702937560771395918181642316186678601930275693205740840593226005364631961066025561539924716483759283503964443481829295877158099826505232848018548611269913552333497816600800887360964368610721439208889181489267458621304925246159041988511166052024054043960478372058528281474055430391955501047535474330627626104557753603619155681109622715469739708795706204534728394990402657755466036669809072726354079699699337427062831917621662738646913694950196003741647758082710410377002814348779075744790605525355732125474025099989446333889411600084209347879404808867213406571430770828084266237105668362614003834647791105457846019232991405311516561015393085640586900613899117636419943896648923536022185053726548702704089814979236837583754537062180798988787284277669929434974372830289562325233117620187010449478363672294302063619724163669205780039585172617320442511117656308563199105746270949998621762097925452287754053511811379173903879798157556730863345134780716718607080725948292382591104234767181906055976059833316273944464110527530922454474129994038102913879972410870782077599890216939316226022641033051682628035548995817432200008320420591398398915460347356613529812503541165087636075946875923867368898864134454781360772091549891432214087650992669022479758526381976590098611483643904717905023736606303036849722169322911784887253216164486007687973160397841646365955075211487419664660305417415073884088743114403507457602686484037579334468085517330479129180605076203684792510239170946080606721484108847144212566056033769493837151176189817256314893175632290200738144060044435399797810879238354659667909603405635922336500678231916778989686172052829909369021555748827863658539293646591247710411971545939227854620572898896640305586379172900128663646837381418322369998655994143895871179874509386398165549868476361713066420775057085613593251388609849479564551676553181022062219175164972147617016856797545400000728072674547790447344261775621692494922521009327534788083915383401295822776864939799383606171665496152989005620883611797656345991709093855797170737671039971117618873019869360139527124712507625511858127738941550400209330004246035647528507866339696061166826695573869076494509451301347202868263796281684499453433627541687618173835663465243458041073083882330938745698156791283859669166128120838702724680645172519664027109250008558341274211984684490039642426352507743372539583648539679130113416731528576101635979048534549427221560182128952853684288433848060415860043852376721728241579652547293682421891425339076816834147761792156334569495287785361498678113669542544712602327992127639280852860652967345586700354860283608878121700514777710737915848091926632006964675103448567800757504739920705884961089347139793840564599583061606485565091050526161875897324410025491508232572857717153375912916996026469444734349228355654615840974066366296650504690335720061110454611333573592590322118430904089729739777085815741361416381888040584357052577500914789847584098038080081989255143775726170591761996279708677393384716988731807829062771419693574725671153891673617344495994411443111648494028874122406990548861870217625013755693368759792744077271355909521344442836483373082435033573312605148160281499506011697610666797731438534034528027124997127447081294062796853322033173450874220963245063938070145977700438207927740987678397947953058694171614397209721000048963005833831879503918701885850862551380275031405242555851340577339711730903126969102490056287753182101576779268148514669295110374214337349993931953894351375624270816042125586625640278415446209585685962753050289431026178813490875876904288962691817186847324593456384116076868384415663879260395443398328218847618285187207398895471878038096890228248082892479257966930268634447398409242646342615512857323576379817404218224807161829414840677579555234536372223055155800981337876768520401505668934352115816936410196044650473997976819419290539150160371907692104071879536005847116104019030875332253542945763963747546115809285632369841125703372123966334682030024732952474485938698754150565401065969813752837868112771797672631212036516608659131845197907606331215595521983520159948460544590176469170043412973763983182050673142746218164717538397480412600704672323847018412061652882410338345095703294328577834790360641875400431583404645453318512361090167347939257165615739121226594456279069113973124882850469523395947337135892217397127836359356867740872450269619615168734787737987587640183681162616910651757316160230495689619345631276682291693736726145917239699542764822754032342794478368380182268449542195261671840495954125770787395087560933131881162780928584815967231515106619376136985534240391443799302292218580959882084929589452770874835396626467464645918944284966681698991845376576719563694696445361980882360120504068421678152896336584775627480285193204551189752538875787253803979994735179018100058161094992137742962387359167666371361063400904655320543649783416301401583740728119870576949023713086624928154317491417390446437575823197666684495875519677637286686058766872245971411484701811985655496747730207768717480699849865282302518713252475661760671830722985608881280217723850438583873274956374728190927133334618237954561732605950541828905662034121360627319367090902676998924360814386554902874363924982743500921032240242005007713264394074070454786560051194439505316914700241343302348866705030318945351333409057386508371454260645287079625998136766589634805715948775112859365176134632965485861602965323301575461165702334287879215149880957870654464357877946836097445012198092585550606181034815524815475506355781235837610090064425262300020966343769510966152491718660799703724252495483821817794687833036892112651918115474241273452775049856169579390742067529124857820939556205202787741604414918517619556355539027741677111944718551896316253392183856924543057019207986832817098314786173816615167853479570632229294006211630020036330323456382254921154405460912812914962988151297974038235514410108100340578835673879568955386975723851258264328181033492555412320323277281083820070412215827864217405603877603214626026637349734441942511953441941159674761870707105976187128399225722193196013110258920838288782908830116700841445557881032374251329219092102938998802173038377039563244413744884438510292839545352125599404249639139474325773502833839158901528600241207527678303169777993193123856443266422580803538383965066789994184390989156154805125272114418807352968902216810460665565619517669394477180062146168077732539751203018924382387812072879458580380546151727144618222049691016612027612297932739057753870277130311267041190499547773265173866824806899900637932979805059099302332890970100824775857816391013198026823332171322895067607794824296738785943561824315867579926165428204462150659447600802379193074696719104323142914950541232312572248057626947257553652334414750868294224392868031375761809053635533919154330448808370771281680847714900149200389846112562756260210454782461622112995959806528665840636714210866040235883587264824041557758698036910612004696594841353917435253702191700567903341903831880139413271752867784336111296347401406674178640543747760003930447233741311055418125837413597456473132021968792889346171733665901892178892600771849026766797152466123584170923332097861392435010313891710856146659558975072920051336885716779470225580550525231482982994721021638938012487292061770632653314228481965485383429264811976952912221412242516381432679381365102030879922245144454073771414919168568914574292240237412494424036493904408503045376937973105929317488017333498430644094131636337756203962815027393721898747025264260665134886769265599624042531268040942684388766952592199556633155936131023953183707353761434909849451957861886857059001054879917727377863836731932978188136316584722604647325697082847396956084758101707392749592479290266524653166436997911686567860125230884188006874328706570347622240247752479677693254402878869592037513397305568224022457753833224371901474824093303668921165534968019892664435053842266732906180377360729656305997693069195677339783668074936442502214655805231061231375674860120550979398898266616195546017722918550851996725726747861526195939223203353079760392064186469284384547176928393552797411107644725414265710704077631561957254042908986280386673291947345394541717140135359447296376000090298201010415466296654826089522328306901941551039556656028694062601777715202451409847975859945353204176258473555220393922485116752746203416938396976668796457755642060133813051399947499085636637486735919760002177342449437289782034186953551066182162028549911805126553083851277510354256086198404122252679070444906741560184820293576294334235645793633906675951290296781737723162643442803739118095735651255000230155683100660035497530983069730846968305092299757617448065958165272404097618907524474412932743807620598255285321027944346869738342424232011158233441909749868782733350472905723032881520406653464217101202312587142721920040373373640208448469213797307854556760987581678516988319260553306614774456807532895960752176254895472056392510826623161806437226127491234297659081734940457407735649756397977115816678450757987349388844176138689654839486626938132619409994381379663948787713606781680884225907213013892696652899362116835533468690524098515021158426123392116182953533357742347673699932592192289772276764843891782033099797711356219811624706817086897010264494577128461931560954069001138887057307980285685406468303227794942501665384228136057774359484597517430187230600589248195965018366414131584529282857644373760098424276730413968781842455216728491102982401352123873364828314811251641633329328995350250417642054155453319743847095309189531851718894662813361882354342959843551575459190507922548843695577331560103724159306401555365595531498939430438922807478634637697982926005099036339304931049984442429994161108611482535640599527980890495510776588752348999999932418612976095649129310486730958773365074609966097773912249770179845900597068793995602754192329815060880964950266630373638225790564704417149443304303896512457828730159155581766406092602113338901776350638632740031117800052700886149855232585142784568356420415588004867451399569792479609951839441343850812734936032286193792490289098930690632915363155241846080428141290178325946676212187852645123303665766590629386647331267741309978877850843352710669959572442307954487109604777911385976025733987525228418664925367108089026421489355138211730037983955495311678249181725020413247112576564407923172121555320581948919322072897106388175305103957849185086785784253547628247884605779425297437772781564081366858259663676351697471659100318982673758592981586588940993937328112179288378314666927477675425943543601993115445203294325219502296202233892220712932283793727753327960816636219454025608662190481861593407397771817202986024280063738423125546435319655453501330781313625816129398197980467146355533021476121437281123994776988748091654618861596186401436492688746316407780708328343876904326010160986982380303455876124674665036230079609486167731480654503214747053874823770333104782034939061697685099542605849375290915257565246525089690360769526049180627383089703069224607238062634835254336302785936100577574063472100216787076158718497355959640970334869812933551025211363642713255411208451232567919689399222254574521270607855725592557079849534718358194110377217489148747858313196381723383887198194378239017346383288568773634491364215679744852025409243505392795109743609909639682612524573495674467802427095270481499034092690408363847199551959778983614025474818262024987623306397157448538200870031888881697250264519769190479246379881355809033279620996189898233836031619040771802441976336544541544316587000384560432435424720466380029696779268246889753645608925086922429521133267204855739189830506513360838894084433184003638165392534694856725653930663063535840424316723544941705358769141983399279113460952072929941883039172700020250726606561743925813549807998963445451884534700179977010303679029041943706935396256806494818851302622935818919911415166100537469198577530359303035268133426662116203639708016631581886803984030025486068655712198667771149564054963723008362183695850215930117493397874963466997680153971623737453246945706264352688735441623967770127107498704384415465712710516221728724942011534407298052385812796074959906162438071515574698898788423186250211898467564788396190259323785739535289790641266272760223882832488721244055769733082790521788264433742930469291448556995445973837126478640109272977991406862113685189540682378233435359293290015586283144992188892060809933639229821538910502815535997496648469845679054085474832041890911818263552178410185656974398032408655765264695613513079339755657569146492923110228822624758111725920833577271511646528852867789553067320929473115510270728411546055264717976015523827794474690818831862038710072212619161703650390688425325149075796575494158942574670474198460630072016220619302053928604170076834002976638477497041825798408576696115964904745826732264869452167094121257246625280730653102482377097930737416500427319048374292610265921882852567122420927801801338921611347438021674184855225110336432073349550821515079051281149201604126191860865007885727477056437229438734084094142510000050470268606633600928522272603996088107594766983586689554055265217467204638793397732463071624058789891254188016399836839234516018124525582936656593456506012196710331214155882164866665509736079443449367602231686775284552676617654033688145617921835127757541521689704121452948868790954153777968776850422425913413853657335884132478481866010504103448850383669473602197746561609308702891654152028816894209234631784922725614221161855702816420321715657652243921508652167114336721575322194434776153097785062707082853560429414166180039264807486820037743208013402260866680451501200753265008091103233232897899662849109617007857592601415887724394072186293318930721725266909205943510671347271142477298032952637383613328610901420909620750522577627178751254531634192498309689493862554948213843670742178375493150103286675903775727520262652709898525461629334111742570123445371213993930690721977894296353349439820152822219920596589520611783470246718831232538697110051998542425386427655470948990723668852365446342273223526689299831968598566289797808230263272724706549124505240555104367452275921932263536825708398348255226734587930032759470203461116464574197388174717688170177816073087050402189973027226484306409978635979431916325957925754553613610405590830911957008334244473858485572654900471157791773851793075504681529626304104852363823066435794944990623711157835322643598486076807328526193718773179821966187543122382288967321381443583930630886713833128427488948606251095314628051347090460593921359994930510289162428909565562146151153029579569363596599807798035606198333396470817763827264914437435585941379751897306309143888473599008062585377364895817962235451042142529805118641809853981182944050370116277349688226075079715615981364760690223526221207624941091429432341599729636295016923549087374396022403887403979552127853002336643150589950826113576886724585885856795210257873376938630110947920282659121580561586821715012884990206928663837920661435240997423722984179432792234145885494232644335971307867986636650023396439726184649313326866928234789032161268902391347509128297730489052253811993936059380315626960242960496053223968146646419682271711179042984300536751621554642063319433964993889403744550767319104745772674844078846289087596195022771942365330386632610555595035019853514940109146652071585901257952785373614735018265836174688979703930313889927666818598286049520428584804628005159293992038779845000618077039434442203052585232210000031431981777620969985267560855738309909358458707556453455901568121481667409839611567766842553996471488420148707124499687367633466880525846158106677436989256200523731622508394648542577935325176196402799747243570832413811924102254816508672122782816053152516856726245731455408545548167825288922760510345340425350098376643864416437081798146934047264469813279032896214316300776028779098026217669630042319118266384464231552142595625262512902557429659525733206262918465286840176638965764674132508167830332504792999972478977204047971980702508685257298822092334879716145205208689314075769085739424242352686311206128563473855785140221545250137281699487813003477426774529406328290166654200013990180414300286906390976934130958660050782691077027060199597586417385767733469242613162419444790204277324563870061540992723658670626556664655004206924924899093096342510302274036757470802788457726804041284420531239522396476789269561634351036864610504983751172172419418872355358160528027906629400600569913597442641296902863560747073232011028241997773304135711865391624609300940884468768845162601603265189629101460653630704783869130795618737904860223026422500260596593051026890096244868048499331536806601599427902407410909271527552541994215268720923736378591131280450193316122993913783770243119902035799380077374843403632368242014106583511203489154788322492679665966952630252792490303025269300954090721003270036176404948515323642511109568660163258829253113005927178709532281887014500805782378386439973876985655094611327831788987304022350415306928538835838876968822408395717839411474476961743892858177415530913557421913810775560466201159201115589974271479443779699549150869344427863670799476756047448146745004160448926003533577474220234635341104350987479085786978209749405240545868998084573712853548720352802237938227107144568121066815863440119660189402258567493970487054261742767634668991922192335919847543640708869369348759910930960108087890667132985974494789232214906799375761943965800472847680424929113036958920797557788393072090836578084067102902087246723629168406578257620123478509070984540673163507633722364024115317580139888448633267519885090690714758983013938529449601173151341524747714072139610044351100410209440221292265043015472099808630829909018895392590900880980242812811676602277382607365778059559675710330049241919537971918886521130953040919695174084818649730840579753734891239411859244738856078845354371015495694831215968656755226463547281853254312864828431686913257345169249795233444707826920921725214707068477767251429492106922990513133125201825747396399534223055141570116819704994025647614850649864710318480561303598163816627561629065526359212874498265132546024979996783831849206766849776260034218467186194959537485467922606201582002053107736180066601693983952314233663667716736125066860083441429351502802008358301137281806113243950975918062449013999779827233828917265846544571396836529698377267981881617317666098284527257760759929525087872946115346820858399046830033891036384268121715192639388813109097744685174521342061614134513347159139777797087266249932824953216613905741979301453747685793447980443105751410149271013038178556820574809007972907298028625469229225524113893477989799189521159089321362099131619730878860553026301595710799883858315969232791649429250186555099794262284903668777935053209791748720629695996091381726128984047239135788731101221774233677877833964285494906705977611178094915551440477321537522854581610659988785414510521337286897524528512676685654597720831118882777768580079865853416167102278675284611277132111725555132630473779552328573623590309999662518920259548997056049240688318955428573511438809655405125003512524411578858362846537232034404398094596478268987616277162643170135952267846659454994143348056615910158307871459777940381561502451049828379447201024685170292205191748358036866522424829222126119361033625309382855520675353520983342225270244032657742030100768318087029802031888239440541199508169665500758544187459813200522792628161022372121113217289136848099817458880446161163526007148930955632256200636139661078340416683295004735811010236910114774492165674012399345647541124448501521391226115372543773158513600851170006409671059192536363363639002804268993744042217524722079004047101035807628148305539788253244420142949711536878086735495249632658269360406266692609438830390358855103274357134705323095834490774183984414496663587680253844461011109097484353848202038688854614320100657732163448593067207344760461067697797818233302992856351340586773146830809047479663294360387784647983097955472155402056726405011089292813610710524449019785271576252642306913947739280037968477661149140690883230016055873914251365337675631942351167335230762188847155557428576120242814789436136622312726805687588972677154726679974683821815210851698216466637474701236633150585196596866963734165426439354807550004989243377175234978618524293364312392553583897264221149751640746169611750149403663602490877732573258453924337785210718541771285000279222653541743928457362256662589606961589401646472827288576736787182141829494156955152837818319530583471026861081556751419520213047729783388589290362620644564033285087045557365915570269502357762827226091953552450628887867868215396543383832629510507004018122531650390160913519558875851208971070104180461570594680123912861955623760936810321309645896463483946502527302993896984136928337687520089308434074261360770955484044576714810688016556279485389716473698364249181992996386979447282368564985326330931081102176413409309134227138343068653127798847135965084481686455817199103194347439727634551815115968662870029122559895677721214570665623071466947228826939114549088953668666788667938537408277001741398041379356316885115075127159189053825701356528939976092553630564511945150028484953442441726456749151290280615747751258001223962008958568528378012962050413463222634324801869015038745040598691815974124971593934080684272449888199182191161191345255558750761731910869964912485899086523285362609060293197048901878220655121884241895875348095948475640345223523577657283112277507471322633017715130971202755017701088954226603720253730245698440065964629702304704252460035357634439322780619890214563270271822181714763851474317903009934806529675641408131730745239905182035989444442961252483643770370812335618814108812009422098920916456516458724280180307329969650715638357660456250394275645800695476057273256970360564998391627379218532490047307446277685196646228985542897910556857006807421366174614598295380459194330880968948258934386442701107100478739983981557779410666435147464287594502673155059873416767785975052887035418845319386051195022620494719174808621065087542919116652207531167652073672246716713996968039602157965618759567925594063940960648785032496714077923889646731750361682108090442720966383750036807886867032235629407344759239723843079961734608462780999695262467071277088380348179614439816182874962703036179795019549343793873605910449378561081169864301024210851810563322497790357394686768162221473023330889559228255345021474547154981856840085781418981222963144377386694957107362110037164726010958696727396973962467858284687850234393223903430387318244874630822982669197291217999020448445522886025105976268927342635812423136705267503000489674059750154012991704703922326754346287113090278975082422071385307840195086637207140725148962667042415062310013019952889003305774871737413271012512289059784365768965327064139216966816124097240572158912885603934516737499019061374562637308911501698817316034800939511876049423902880491616132430048897056204212358085484486552284761514354824864888021809750574624802935753549084693378998647939294068364326253469449295293995286795273498563218624841599692076853740646811044064128530623604925366390562983760464227404876608744188125800389128320961476984676213802427607651411369955210600912380380526599076392933638407335173627676936917821500570638716576619575514423511073707452697458719895266512952866452611845365512773947627999070064887434708103796521417640863389361200480119006643608579754075234821116311099599779790420057096840499658344788134548079982923885743527566141368506523821064901083810760831711389181745341259635606033546635470682882037603399117331126722151527421760897022062010162613696582831127896859796826341601515678387204892817985288237709568432446557375462636553381702289370615534460581287006918241001311847878359455428911476787114490652574816767012594223849600619816035734068905833564849037852617689519789680100590597619050057589435213226779385762870994083423070326393024827806253218281660413457888648840514416185969875304823383981192602346613890930572881156280834986214486897638454458542487699507770198315835744490197255102069498781285733185351768084401923431049676501298699242530287338747724707532263848511421009852563991955136113344857865779005993784097682668891972413161098884682831483681630385231219470633421630430112412786985605203449225284376927480226813266384909977151496685049596756093804762764628231612200894412714615206194634965894804254967393936042092242306719258432305682722935471673828037987587283937831742193389867861778138054478440261865617043003931492640782756279510962967245641840480991491221877743653101958639428694064376951482237673730816414762990730216159115274090961208388339374635619773737348011373564240762177339278121872720676637919467226849432009632356549376889678281295682798212699196241258165758425917687215887038478988815121678233169252286894508313425598830119119590247101745362767936460267355208610463796209413359109903415239680425344064547210020132805566331842846605454165023106354590533014398470587363188034901169634769320235650336263050650123786970010775833126901018165005267515622078796499622136081712268695897851777449213374545786214525206153231914080586580060489031807259935062964050238248048930432397329870235420683623892987670815694378224537118989857702345198972398238531424860130736050952201511173923300744312567318213463922296388751385943510300372003356119647716427735530990504349998892973094679039744018777107577390367514107539479654568146219616900336445616580915329033760025200872698591070572113358203148833842746034383354458876614484480560139487628928788811837396717201324218461318999605652459994480071680190201695291273453583754116757034989161024690605782855167194066527727229616593238565130859605830557443238969273773562329598158969636485270537089712016326964120812458473101053803179791604160565870671937927019330194291746127774357635860559759199890888419090509139609453350480422099931771383420723564960131519330729452920084113513895909129961666228556953164748517260606996276295911769513271412784641216488169419469464540658880274751377647005325574619110262525046313602336200120857003215723553322538744938945075046551846542339374860431624635612691551855708829237773010100522720367987107083677891688053730927028910422068748795995954907837647550634151170156602053079297509000279322810215045934183049822689564776848656654492922678736769346837844835475182505780244005193456851327298015277238094141473649760655604362688403271804432724458669110792485492315163761621395971041968155085791665922891685344873742150257661342370065395760136437859790008678132996403493876787753127938882260186434935561512080826141080560637525392435172058712867977800093339312491261494365201638105804542133578679000529519448024365061756481165144624511067328558817789258803752753475736354748328619404961121868107502658552887375578626806896001556331550775202430889239627258846570965591342872603002227907907100018559786029815946869468398092889102341142728861132822147205846708209246782855885497777255561746000041534503801983921223129882263632518078925357217170546812289981021250103120900783429081726631828037207592908308056145857255821795525894307296454841930432805629263272768082033966448678777115056397345608981422159995757843048599557933553069592669170706791670964735747303117081139202513083562645160434548872889140992468131577948869627796825421754838343700629582302570982587391206985892235605516601434112927671526940978077810390132909214322721204248827110550521041233360843863522054042838037224743483921315389523666522043939555337601046826893700946078585551758918338079680451973433408002828935913411483107876128735773024394526305335171257507839877248674284883450087995474359926250262560680464771691146493862275930715196915821278251961189675113737529178470752851007287035831602713842659715359057450800375360415032254441692606243291296965387420452016226531649506613499537238847699487682072971689447045313887528213733277016687830200034974869081195935759402974002320094902621697438287392766573104711484080612595446566985412392276080222122430323433323811590023763929829855964651489520610693480505140199175836821150140100292963116742548476752707084889638545768163625823093192255344213384932459667572583009649655826124859745308285654758078242856374549535482865642794127472264107507132557068585424861942439396236582110954483981713454457021865347105189775458754913175348517605177192163157802159063028081519540231768453163736034336496547601836395959908739842072739508428112964085318989759629448062636023676192450874529241677034623671361674018763450623788330221703842391420467045306805879453120466750892166230548617842371705909870711299509715151729895563953038827537426663766588371081905517609476310042896556519816159158150412770186576434160036604622828680947478463539717529490410556859610565085455369262345039517704438309348336810453548253228898722853292190216791227793392559615310471291146692155280420752786112832720975418983899419794531459288395752239787756135302713190591758873547013831932642092295411497969964800853014842251488163778890273034604335541402304218250740996859283092753548850780510440662673265050225625364901046297417291264336463801529980191663875760014685379436497073884266534580981258108903648221112101457024742484648062853473665804132502569406997954258403222078480710245062283732836154565924946760108812258581294902564524165086616347681321571190966857530726548581595616359389131806268819259192689425857911850467932382633245397063883955911257545698534239148563418314056207565012923156517032530042608989629915336987411663614810276766975376129051243896322733610458244108687333434995354339083402832165353514432002997270644275410500290732094989750033084480540953486560518548523268505986167923410383452963100522088173159327366119394756893822217725927213715657498032499426686656464906996343652166387495713849673564490151559402561807941084112852369663640544128280079326612072910004039720277870670946370391887200304065123391263954418522019555322671560185715485311331519486688958195880558039283756320107314289740529827198971280235792209071679257511872381553708818730364194833128266332303569133971298533471995621541066176278036999449766195802546631648555886284199699341512529582148792397187226547164465199835043761119198607625026795775130062200265393313670800876533284102113339422379659709176971117138649946179247151010405057369590717062033531218802201352405356178381356825102912746500906541708236133584163736252418993383879948983891999189856548967527760563950559397957425618578657096392629947927647848862470282034951958286360950684329830882905057882563007501513656801969683012365818295126954528737577793627085046879684032338542730661075481695826625541853359698259448966382266771884281281607812751931727027590879502778293879227103023440843337552056006366615156584826262804991266196403475440083634477738924785043922183948226455958378878297900048380444085011775049269029701121713342380168554897815448265719587276619791615993996503981200863437404216347274713538753703532408718962049476420808395982998914467454635055219970931480404634597051166133801143501213421874075509876219385624063248324730327944902228434728030100975662799195755463011758360091585182925527469284210155043351050296548955151991251345522933807300578802778275112239365492939004630696243804167168666862792370206998945617562029572786784602185750074715611919813546726922174539486028507024878385120237870649893232476261067320838036836443726976166114244200409681724945091490129988977742446714188561575166984167967406884929310730394164123700397872532063268432681180993873386093690930182348751576409560593590761713333352879559527320966312951846487385022399676426735936370701770815171582667621223443360042123491713651763408375792704716019320859338352880051083785744662668608068923193235894711800744920610771699013543423091504379023331197702457359609027243327799884191571928445765041439876421183268963057557563282645378254105652055297539783100655688029788380016321935756560347592984477119787124308756200485953244852544567799893920989483967312410798518036992022912732704703165177394607763337297761119294552554566062605135490259166317952875649968462203848542103457402722911027466070633832416995107686834289150581035598493256896278649705758418698222803130007758071560441899650889989475288467807060839269915966936976975362339216588090691582358352888041243087486821104479705703643064976436333106950489031203271764314303824195863101784804123158453070783130299586774139157802743873608455070547412071598923351352537427912816615736047353869571133598123859725338039776097076280480899468926118446931870278142483713610307398179028863801021198797931947923421128948428706747876352666538575952149907082726442902729124795907309223152369101571010922979749955849546763650672395610054533843673655727125720717327238353660850088427031961850337057565012371278026563227270363392623780837305596849117213216892445026224428811295899213025220366967306751895022422681328436937750251790841890565523852596561549737438330843540474835184922919300331590187752536054051353039132690180636954121848992073655849865658448978570576318821441476849168409168340123120425767622436282962409062718526299037282702133823927886100424386906345736965159117634272116422627657189900719672047672225066769069299908596838088485884712335427985431099118615174818482266249858833220255288787277628342211429882770534061686657789331836410507296013029618371500887812734505721532443097697694753144585142467852288531521080646235180134145914700634667917365467335002585451586966314827225930834476228808546139390710182795180042942420600158188323487427382285983937173380048162343183937717695795515954511487168732957810987048942833702023905581809475720748141963995017943572847984789540445264748588269584371722667350461787630341009407592744835039784130134520345174218089683507238108883077816944789119571766609534514750140995307845629139560083956941677380712735169918711874699761983546187543773839362297704824741258544344778385695365469274151924921548281723766670256298127633620950840007853238749264589379153875622639791392095989838983558192292242531540556195780583728072731847423615114431498883176829195012167647945175343772192417987970386001359832342646332073464326486190127993618258545712083922324409574853514300710013214255552699500727852851691226285458149195808528433107927055397552266434283643732775440561054894944725558434204530819496059313557744274575169143976681993630750609237995647953991255336950829339624417642651983761569298767235402074602147904526649447841631699020499543414148588065414339105870737618911784526115704706105907442057423822424747862768184406519559857119205123795948357269743121279407255717444763984372403395055072892302405888596460521337041138449295067976274508020277149626478663511720803383445189496695852883121715365451370629485323364851425726739854152386279773390384085913986862104375287658084393405563468809741578795975957350487062675732787925563928912704976153302369778023904142929983041185813831552511450895962513747449809780732432509247209488472058232586712171774407050308436333681877270016855721754620502216498564388551201155673476021118485511014873160545657861710760741651835883469356470940310454320517075110948909957684803685912640950313187977018405837309729635841802167130320816992373401325412276430612619095540869261791561252957605200778734346028186919112910717700699895244150292301132119093739142991142090760424079012013696029452501140213785985630008119935630764649951966788673089628038409293358650838275090176209094360744491757466888181438329113831807015870391143785366574233289681948958905831612069552569677675700483237378144941836795582927549018577920665437702160876977479038179269986016064177963531492159628510828791861604395650832820026684428160512782581654911970435961127457311373660628089047285371958665702756200839030508906900060384614744372138318424654008618453204620277949630268192769736417869634994965674346986622424887121762825151123040042562416463521651059504905403106493740855054765419784823290700754740375599115145469028291838994800682226397125592151485572456778976237790317803596883900692189486244374852510237831141754176119701020673321624945671519008749532408279504677795959195164395977817779832745209570972668395105888334302767808403744881025712652492952952801139324942590001203662981240469298286049932961575045030436842892726649450255234691245940566237060698965042787734599950999642291664115866446972762656580957752432312792636423277334291445886826169302746712839114307208770643739818124149322445442642731530502017381975489085631140486090261498935126179297537458903535377265300218647009572291307698735526175680222189442422332978012769059843474842079885445309176741254948482929413520965119610249951532272412761571666113596781921675856241266202926002202824712619144202068252499586586936051976571766013585104062754702414278609926117545622254288060174125346100604893161463752622537782758075808951080746857269632898876113784802836015354173193983350622503553809377249474702341822535650960821235660889140616863172375761114306724716478667316265607031527944061556967378833838093279294280650501587617300339090808779063166726766319607365080262024277976260525889228175223403889312039138764562955115086256043554482661116772822003498128730092552542430386856014017304658487826629445581606007820801387642070485681807793243415268344063057186927575855496905632566283475330473465991291778763454472046142437600475178045890288231324020561844135611423241583139024091074874040318568306956674382608971007803794432432554726189357655408667131856349898242707253331806143840186260664950657950887712769508624593558263639090324332479302077215809673343010492774618828204391968859491359803521474635072480454150762314100756171160930551163805968098755965087337182873490176280281392669456659865832987262106294732132201105417039371819268057406193516967936777684360734116845372006826553664299266873511866097996903689962100438224099054651150349404920709228948756233235001483363427613237926467725500038699647400311992385040653681708827121549462414120809972914326617971478915827987505246013432704981513288272953144587689956289200696605735446686930401787080544170623862097698231273089740293737291013789913081860117765572059874769271929573242968916199000687106986489647763340009863845777393376963419196136877747509867093027477714742674833675030509485038691804072614571178715077249213321926147440074253645968374982635060214638357716983699546557464434056215590244199611617916313990778875709206865746026061631689330086071278125462585631551208747493109499027237853465259463627668650892606582093328805466759991538848879476318298761376583825323497942541817428952581867527680766654542056585180324587220464046833671643239780478064473305335643817423305326403124742224854942880431047487243283740043096860352354586737306118795882917424113326952074201692116678376342281036143792624852864211255814891433300800624384196782851227243365957471396970520074665185204825103187105479072418662606505675292916348046534728613037400538768988305217198880512820447240824145485068952540759278030453054633141433253089937210612837501342526677926109595365308700686175361136810124319563101853683461565141146712935867004210877180493466616675489999581571399974976783950402542007821009829062100774517330491465169516699746025683521777749630048362791176554391418497778200751788914408768870382408191884186819490900664376079842980316679306532551182153847360480112832236914947595090438299560439263530740796900928160111475604179113025366744898882937986324329709369478925870154719559311752838302140683694876403611238462375475428400568899010518827605351212682847077826230206578513423595093880350766011410335518057398400928847014441605608057681626469934646597304516520014326954924746462943470721682609292333759204178999906143739586228426080987094112535246900902098850913119226445678111401981733794771158192888847936058083099369380990779635684598507477895272579820858466356143903251572677296532056532556358614625502101854708771609657414289412563088932799668641710363994501615534079864557288259513671506168017507477746919585819374948874683323756692866372820017257962536016843903028276452797545317837811465275034776939976413193734644454521219953057092930452184377641395910683235688105915300104440174942987513928287259801301398013035909327162261652169891595280298993258658049592773466974676685482652158540147616585759007777676083705291680853282627893177234832607918016227660827344464314008012659510921384300138515809593454610600739393929841361338491520003565680207899962386356601314998880814242256421530136627594858048737075300995278531965670160434030848874630777241437871568131436439126485124917256632191266030082980334179858367167399308202860053706461616609537896266557079735776785501675922820769076719494339793661654235709441869774564012449072186163969000474130135611399694289305112549473943212225626639009343097854521578932032551656687249599243945604722250562500332407723746251823183751877815735214861370059377530093960686833176174888287250106504896264884555056084111627957964095334741460443512404820132516750686811435740213559468515066082497215697447739738342960074837419498540940960127513833081087110131639562290339550839499512088883482339202838270034876624944733128080882744230076907570948294383944158670216658680127058982464046554329509724374932047245796034550410763374926319620307499522771008587956851855167327973644945997656972957019999598322166273803547856502250876938240085771623621277217997137072698599239268601675091294383116017972277677535007150866446327429180761032805130456459866767111350328759277261225376813910727706704609384391327188003149503821263593613600922483722040426185810026919051207172702624105264705469997973793482646966000479270392772276178657147523690743381611994209485152827860210086176343354155975007294191881537753530463395970139733317759239762630464886182945800978644526217624470441080964150786023191977511407267547557209496333736309333519396956460779138503005775307346019124890954467688184904954871942807326451532595365540516767889925506193232348316070331341362777132655776919883078609692618962497419817837838241744880059699735582632544698960890429241603363823670696452548329416528786388805013113296901353354118094445036637128341945380228274287373661374571942541384129830154063111270200854707723893366664488627083502202440017696195107093002450208475884228645989131285333188929180873625524543032207443683564393860538278227351618134120086951650814597654023519864274929936300156200913076139190223661481544447099286527583706753677414964594047224792810523048271871986709096246503063390697270726467043527496176743841891743227707616242615977128406597311001663996957474858786505168354100689581378362878287448505092041283961034369151361064137149432042266868056973548018314847287428146669853501955857863792636646378414779683895928321959742722495331125014585269450918356961177006907276238050535805471937675039021332351520184604358621394052116390020292282732736642996625094698858909551479797176644422094421781760870126405175165859365798843696974121789929670251700215650361391225333437551809609569665037508909771237224767902382903274027805813426789816873638432510438776678130788966755550688468768780245679538189599060129067789946999477200696947232275965762203616812420640994399878696543003878401204034383568384469525240889447680722343810383098884533438321233269082800048372522769489985579904996335042696630870356006704735044669039831235070119792664642092636143694942141330423970482536646488609933667424907276372164631838551798150833536316011775349181280687392154503397732378430437945475335454702858560482917097607752743109531950078930529329035152902539256685751057978681594969110893830648381061920250355465161469968911665268518832545398284653084413002958995127338623635401886567877392580070157252340158734080202981562414244892217221786590045202173860478240397011288833027668182989590871949777758237184407909146187138447001229807227538871067148238850609521487406448098789673082501146074762358524846827079765573445674622360539976108863538584874375781093088357023663485645697339364322330799140554325585244013953378967523654691833054560945325499404398057670116872043420260602393825194206106718673606269694748444189299097079166336543536079126014326571822181736917118841274190034946957789496786915831914276765518400054588470044122764096206661185772746089084015230174548071211936555026483557419953912623902040981345648863837297287385348947240469090255099708767846755221330860480313257661363893114266269932554274132228513727007808987267817125411642510129270964114766900525671576218094410685774381796450538937652122626839334936075232141718623493482131386511720090866175115284736548808225300640173260760639412714403451800964728138110470991007618183919132894905385780937698194042413333786522117715948591296315934086645545200503819344670247064661618443031045124764719220103728901017053727464558555413018629404068033299017376612710586288828686097740200786183487448763935890144171995152159205034409569813684166052829933882568565948470714578700080836885309908512968251620365002344358397173569545137402248723251210384829124746511211466351005596235353501154653683264404011043603310945816237195839475598027503962041320736112918928309361989987874469465800021287545353647147104855076159954653595672629318911628517139712487842195241544164250373711771976638887714611511066930382975179852186197158166930402375503730204139229464166653983637756760789104955682056598470613023450038068300107978450379428377588688164494150402231337985721312610997307464222110522221907068216382737065195632205552038745193590965416812496081300576816110315657925328241458273099742731865932259040904275902656872794309875846487797405779364529648223135422589873344331837748075942449978955815992586451083082008677021456442997106338390092397501939023272986898619481431108910681999228444553992827316497526774394659921749998522197411526050399298912901125903821259671874436869191813385763302268746332667465302200743255055893937656268399387260815150317821386702683451798109577755426476299053118139762665531273190756530375162744829681684025847698601333757836702544798621257030011238512594564703409881639362319964524220127733080810940860305576263734988683102926943576081210657536454702240079805705042765341176133724242283100377535689848323328652550039630525899521552648399262264520050266457421751777391392473772633876936183530605279187493633052006675751617366286452893849453578987898369636377736944695091708091383356697944809176719444250260698734774632099627906308982060550236754837011442791770698451458779009484057356387122182020961955328795829756264045803762739653052021275057652585465909125457339628238237308594911933145328802195978546652214761498213742792391864039484054503543883284212940569365230399086997752317900779037659276991821921126632253033353816008569161205603414515345358907380404541341799864024288046256069265267490359634951893995986504932432303867756164509778149357893997299217287979591593760701209060170824534044155806641397587071547980030052471311320774733827695593550651575404228255329857085636577576601019829920345841452458076325188765091697373348656456446272387196022558111881182507347185070120283991254990558964394997154120321430207797722424168474628733330761989273392640088623014534630645071114339710552923075829181836406955791992600486148562012303695805936229980833659428833392260490906048989514911841419713781164832856013776490372940730653719318813501890233441647707109965527375724855573279013809440088206635347018294565044519712062288404021897617343526919180922315401894108601903827509873024738534870282637481017772840228799085224063537437210851376705133966153716271267330083191855096913767133947422695831691530955411768326562497405964410135893402921574256460540467666356605441363722356679074319575502127814512078353689748186053256332685349576043785291719771253530353201625040837097422422543605921595150495714807622085838299701197186864763688204883321830646846941038150811571965578213613305945335513385675716566046520108973457710509111938524545507700055180205191653206077044069827602565259039111962195738180459135146076191872191934499015414056258875190413433782920591750179554352680703392490878420773428252695880972620445389499399200088498183441423156306424944715720497797614231864650056854747572658283346407512661712810077863396929331391307730139496856324123075593092380188377402723953048125941764970417608823523426339633694902410105824000276274374306579579029987000490622608378858531997107874508849247324247370857449021664905398552448216952991057742785370281235284010372625092555838332064761507197192504424679563739281370581227315114936971557877216321742275091749082141896492918536066075077057707757297378399310947750632548276468902772046209820124959152515176048932227522959577727595112107283185107260493771916667191190789047616389154010794663897287382260575839856757483759530069587062909682177352779380478346356902523348667865613201732698228084544051471761048101571692232052706606441901396112275305175417365689997305097685117786557969364129156164935686202862127533037862626520491968264249554600943963601834539523424510995104297571215951058769347086591744316651513885955093845713876795082712147705877356323468037148825462907920673251942842578289785889794559885108160884846708931953446513291513806343504493382212544968379820504935834484384074967473681633940273322456761688177367582991190268022240782263332111114231753780799994456857548603387517562834254595522603431465613743952228225379278491489163569310817974856008379873782515144631013875691868546048799588398188208150876101192026976234926756273487142826801038707689532125157817992705508450922400156799612550625770256795913818369429663374876573730444510494980717673122380190574593338630769317465930867358216499916124965045280214042549015580713741986564162551343378621100573497326633847100277119575120466593163854920327190695031075964697175198921312285915855781979777851766966971873979503070117496631426671014289711922883241220374920167361187706387530118571341848685956193344138624004624260625409136177721961283161226084818324225468931124811605632195860433238507672003257444070347463576564030057131462493559657318362031044422267803826765818279343588546355075418653095217447437944976146449281433002435129898769137605745520287400752628639268926592974876039372980384700768282624185868050677513205788244420037265776107282188549591604843308252775127627464751992950127802599081977019163192122587919064283116195673788430226932654978594009709672380511736535345135999374152943436994700220070829854935080251567153414258838912951111968614153331212604179124884510477149992951217156082437969431187213802777126061020880459514032050970436492307325385293391384970484949754974230292218251709767668061391432253875350126135815811842477809687788565133293224618397015534427981895656299775745816502114661460190181440256467689921281742738535434406522128520184144360050013078939051128612765172964279462451290627968470501591113403209746168834211779111930416894085333913874400923434913700367413976696858775582241595279758899692210462236304116664136279066684286923296677269709202568088943515056949984828110660742400946233918872773014602284108477778742651769606212332310455024101440611786518292511939223850766624371814933685016927784568879872898263026640174768332652775616864646459283934944534291334891455603651133374779322004077379055843936742435265624218458016730400408526811478798672345261498834249053796966111513439382403520661749251878691746180046943684635531192009488594461447526634145431621562661624436793787573446580727698640888703331687496891226969116716664187539414021477689919004297802485904076535154872825153721476184358592321046185677449492272106618228851667066612663751837142143136870097124321557008499773946752172833820497715792073834584507544020282194977760816284932066812271150732601524054710495013772565742164610373352605540907938234381308751233613031405359250926543174992767879004066459189077670870123697326050949252372888658583399989997362553608762425182766537227002372910311472562836600687506339370865681667109092059912751275417444934104788323217677478888606505127695691005506808292486483743603810585235528053330207893104067716865651642920053635312799051548439330608678514201891976089744892934789455435367819692117086611682842764227801406263197760629448074995145934066927137412203643813413850318663986646135097406745677251827696671347517716676613859245755944083533037404535277628861693414741327232784353551547488581352649844932702511060089745099515022858641544912552615115943014746540854162832984183078830422868980093501646494744448913021034271689957763431907064344016381510476635863994510197193479900539164647000485947953433258998558863439145912064578026607563302620816407808275514008431983705017157403438732107350426835110706340465765913298292266603974876370965620007384751070443155007222978921757657511594539132762333535309878925460135303341059345184227450971171298783957558857548096835853612118476329710049431410944417445628259067631913539345556452515833121954808108984793354561300492914404322037922746735801385088661820561119084851817501298501724935358539484983487522245382320605919868893484125876034770794378065510651786330411714096381332182598838395594464432256291517980650945808716999994779325509405795984714438151119119474479203055037761799151181553837997995301188837355286555205361336341458271972461059378734300336682896687472040400663273133070571923058054923840838939521490559277838075173801275526525524007215805566606946559357434280136863151179099823355783925643116801981571808932076020097924458886326768573288565149150674765041406963697835137336970920037783257659887909656089475094039225534225529212556336313152794958568486977750530587894245469373152137881254837802331323336244324905009418087905116841710834133175270434538597019480974265765305678198123640915408155168368553997488302177191880117738259928085107358887004304618056995955704526470763319773258024674259333927074630625597385635845176263248738465628151259401765324633567274954320458211675243623187938533095639472404371879482879688328670004181234204576779270582623364812951631849291393300022170935499490021851250536131819596889116087207616780144845082529342376424307963697561953141680514221724791603978573079051674130421541120280006119149417315520460484403978220550939921983017225855760401193855042636928726662353619916287609359020406191404508447832359776008382916841894690826685620578920769132174218021006383751244077420772795438573706720733101558241024227608827979148228109929747947551977030555821900268383236924562344509951475303038779674726474903563609166847136854037014501223530095835753485705442429268348074981624735913075817550747821547667941445338164305693244859888694122841759769170805660904318357784036820844391917903586481285641896565034844804085465900900334756009816975702449781148371499240086138456557095259498377969954160199597182760235520223945420594933321005997318757260575657099194264662577389568826139731718943769146385225246944418051908187941351344346076978919077266585151105310295410710377439102597811196093141409052622578783020388448456808855545887051218135905029556779741036092878638991099011579409730956522317871705618240370464621267542645417822232031881072945382498819111373231514609842899220777523986546287130434913305986201694689332025415240349885365275698965126292550436746526229489925498166019722327317664401466601904371182237026164565669912282023840858790228390604426864404052763018856939085323801274267719284325253502873894640004690125199404493896867414820042898346501846021119842955212313641375445778883343221423569587166490651055592432964393264468108604112121096685045705749455318030552807213188277459442049166851866171663362284707332797156060395760202449849644342808351319743810093181972534370524146037792005657357209386553866028829721822756671502081322767668654643743697095234933031232896948461536493701530928977139971541661489666143873337806159566971343022756904393390227096090649287661560861368341800022904798166807190910411385736586396573217611291162081923330991314484830381659864626972207184907690966299372134347426407598067558886275282849991104602192582535745619078920006278957694684441940953424379564196877445254022167242625946485990891400630321029622149306770456658170279783432485477028027756634875552261637696175685820520469342917759987007454565774959149765397580570541092863421051532527188238531955304593594911996748775770075429139462404605709946463619739889773905216209783127470979706877481603503834850407968951643859398086298237760172219875270169338002204526729419610739118091511436222446625812153389964343958015610755773148981137472948417440466024366226260043825809927289104471371609714489891546822374683603107015187871811990922330005082294383029131483097069441160997893049737520757283948439513425023044206553291923499416655264130911227321884354852326558936224324031964855648474214043953681501611753242036930128737396743747604098938121782741737229727615863398624060675864993803699575481239633551627803204192818858386493168639820222598753074803942548008168387997100593387648487011801993235205871560732201828087552475136101453522967378575884237479612538901424944804195723127743711056582962300807449741039080733860025673095342833462434152718557538929523418774137996092112801556081340498617651088017412694599019877140534267131110203195252140294145993065039851163129375574196873558505851476867961419458412920433729847500793358036526362241454845918219515090164624094297715548593027910518227406767780636307240786302539233559613692200059601034720733609455458921003293092245674488099154520836001320079202876627006765945533309975029244157051013936056584366860131667603426674177032323545252357554601853156029843775098243458378534336973036199274701532024755722727924616500273807138282211240293822209065319752653686862535523395210686570562558557690816978604272036704955672109303233956944410712433498739938903419440328599840548372835377931519939479503862877359292694709696958872816204345518167501510350443962863611318120917317547076195034429538760344143012167304821036587254430336000287764382536391058831353880524097792665810481440957194036485344257126614337845727126182965961856204217454792121870246579504459702349420061207945668428371602021176788654302447592217623176800019886293186163552934572722759458656982700898985335254467434862273676793385087112240093329522153213108538067734157427455116241739415652992111040722622891312537578295691695007288135466647689539262764190784249120300468237639733745084410371139669901004791429641055626053566632682771280618468204166201534047967595069527920372819163651691895988820474043310031810260211724989449461659875010321385027496284412257487349800005895101389039416230576668697263332899589562241683959195274562852381831391225502231050111249470310834553193965831070068265646993131069345190624064428679284063843730589328505567166191280671146378894548132302399118130862983691129832045394024491391531133537674051942763786165778970411481657700523424299296685523916932796557588741285718337401161642995899161964999597214771633950421324500837581914367202660612410513641671683179916446519981068103042360437930594960130998371828750191854735509823910949615059072608094275898312129331373969468050541617454082885248635933809708679256281239586924873333231850872094613173656234719631509312857554775111980477247178586577199048051181039944412925628132615639642418117191649465993648407051418069879132577200441006683911843911834020348002296728318281987419997906477968801684953957897924360316905481698548851785684649848047037768124444657814605891724080994900459349212504861797759389726684812528717913846375827898461736351462714715673336120136940117427032215151157800129843742428567364128869205158237794593322793358721497949844539535889246241133841561819726921520145307653428560559931412376374858694371206462403399535913823987561018790986492233531604020414981118879547430440635944124218671011080234991599158276625240437829190548519366441369212875540286538344027827281969742901204168237576904075749079934658628924006109364299596888796753414775897323703968096403242395144676469522528426535018645897773909193979214433460811938027209282114750142788197633058200450853956170391939661751272450235234064163109021204898143480651741912891550273115078896661730310527960473657757172404677069832585368096777944251890667133912947184735220842008513671848276327858849206002064232840426656224729819481606684689158558638146673438530394899323463505066648309257322247557610745852735390542078216156625269612871901316582917897037565223500378099416572224508981909304354216606190174585862362704220775466592943696485869746242912344293646587518395518888664498835682126557903238172821191146789091880715308830012801601583665570633629414642881047665079227951540428361646132503133185381197167681840459650111837719313479194144909417995606398913036277181646511991391453693318224629587003125812910496607217255080069554595278510045226056916525539951124109433333903420404366155564455492228453962378556366191451848037693047604048289579740621741177007199277642370724515442718881713517508218242507225344848457432646127444557839094815886462129866993771868646345184044256247786968829245701801956701131835827236081386897480760965640891865294187402752337425187588819452452664442918369632058867110794222618073552878593724862584481095302353953908584231141097955316837090789244815804480698077521008904054478282784426293795610272791247730901107134321818195432088920539354695862143411682132847764908674706404186358039786345249795088961251931102782961338098603467945701903978054210102020980007257586799759471979420838567493101327900136844811498409509835819902531170800902580670214287245785504877792785354101003636530739697430689039927855027531280637213217989846201044403269527280437368257596979062383187076406967369996023123591988122610847013443624967747993380606091867645559576364355239230508157454783092949174123043013989733426317207947133964958630157565831486221067242147080981040978960016190635535400945202102596165645699539408615274850126580607946131684617810611910558118899335453710617280198032169371778847850067752127302294940483541842589081938642904722843099075391528263100106620476412596371207782123345729106695549024121079568396411874792496349876805474258227873108915998899765855044960163288232765211177928597156957623735239356683848443555316302770061626755666011337450639809730111511226381853815097109192753522845223934968829273752167336732890270560082491601870274825993164402846594498443895855483189570675402816212900388147681197000451934096422291650092572083486565103687819139697590989519032777146174298112204578466667889949855417186745596488283272914170520771677419586228319544595839275117330833616232968894412608783406130234410954376600253039197708292924830782531952200146635501292502834396132272717752589750419901492503108473970791686222225055854492231826684740065662753571466664389449165432412121261074515009540824187732337064337519602690700663944026390091644734695810425688501184494039539984033853762154160391283099383987322716744368075261168775839887071470132251772001747627703617972990111973494929935308061869410686290946152688936394541239175593216447466047281354074300511398939307008514223861604065569058994530085950523252178546007750546466609935268885742891869727648498033682859114857028472965498847520555371266258691505423620550168598147099388108222827575139475476063092029781722130867110085872863665329758943776236589854566176703002625245169523935130235858869135858707363858068260150787947448135200488790469244514876472004470224396513628805524108299788587013174331512917744387138392490829213082576479381151651326436417972771443572633424796799047166435507369777755196184356560488231675539623676016851240822609225995196050884807930963743146290988965241717317413821239391269138387530254186506509153159827066023752880972983890243170285229887454500208986314886987272317614889140893360793454505706295038535526966675294461841363612672576221489615914335491015713693116150844138737098781420348103015678579888303670313734867495290035241441942590749390416581276065271776692329492111031409876703985332636294314374343305566534631176761306059779215150290850694964813790238465782649044426600332831955577856176874386859822256135608410819057966010718536694458022341012092936299902150904576751483088985033228340169999102839386108483310057127042601657738691185231979714407955529326320119806943158408581229446569363430585168410704778646476387116522607236757184191646885928284697293751238429456473457135034332273052088764170703024269181458155092112742640633256839069442274352200084111572347789037948973100699020535797943000453246680583011716112576394399492515512640069650927419912289216587386035418070095868905573427076946096066227924752892540313857145884153248580705311070385677383727112086172296414308508244733474182121220679955359303397161062225926651133484146102405717420907032774392087767414584904725734415367923604964329538871541005522967192780607927431608899261043754048471506161054545836193613316766280804079565958207500351767046545360876344951781734329709495618989647042083853160205632302868764340214592187850557626030194454653591678501023954462527754892331628841816772089807087088800247298924259808241972887110932479446355673525982480310915114865241451653986980588369049872377060326816968374791434755723965012640976697366180355358891704408217869497633635580486104072351789747614779999536842902454853081836191630555338166100598858117239233229873141836673202470524757618787261154333042125878326179795878620682678908479842645363691134258614924055934487397528464023691866110566538097351433715129243063993344922652045221301813683369807684477502070254535302935899823039246505887886772454842298037238218447110768388682212512304257161219353706179020978674794613255483337893479109520405742233434288506515278204034684697206069169769177344910979564100950096234626628006948523874816187413851591805687651627647092696321565817319606958074686790191774934701003920079902334400796054849405742493511499063616997812240513725776996056366310672384773291084385033895982252809355537423295876704127854153732095333383295233663525667559926608284214849775343562498102668102851400786326915318041783889839150774559341040526124655462243235393425226919653693305051705982659851181303873844855349049076702534173069751549486714424962375955897361852564326899204298010596146197067656920862373945756840035193128614822654982015154067898309502064690281265450775213632183336725224364628673058444020663633299458257737163846917902645851181110354157908627817859108671190434124965997865206990010648223126700990511184334757146022917886606644414670820186993089140265676680899439356763946799983192759011277462309203255604285217962973900987867815609816849677938412469898576689796306604413982455817612757288742971536994230241940084311638942680535859294779716557312743570441533615182262505256610431742190434283296816415983304028132964492567245736715731668711983339229480322876450470211270386263930138452852511509488446182314032844699034036155138514414239776698138915652592146276275339602762352475127229625549572259393809680775569756995579108545309749239875390124931338339988319884580545916178805743444002555966419196200617181406043460840521555079436073737424157351492364388206239451956242671912820619422733157766206027873373595003616997559343970591913060742781936478047460781118637289167340678976952547501848174041904962076666129603812524474286310418754205351329607371539331216792164748200799581439654023935224843791460903710733759415628895569712350170206919028260831528315665813099618066787731198824776678292330714012799091307952779177584692557990846938174866219280377346081118675401764510028072749526251054554460832984509980881082193294795493269994955295030416502741027771606651167928703448644681560192494835876703755584175726698950179614170704465370172411326939277989562300153789127099613378967134865632275163742426295494600629807317281845370175577482488463098498155074827807814497476430996154408610101526457750148308325091806567423206380179385818634370105498560708989874217326134756122959782304285643587596804475311372293338731731290349569770432247464371536287714916868942943240266756071125095975720958044964350410073487791364699561626507370858264809000841585809104119872186213808098900127688269254204042713781011974512721424717058237719987171828330564327942535567052450963225300829591260823566421389358246991285200935621915161305360153966122365036197467925495249521045866520113658199398248568121320376072587340675015992092642980876295655954564256727681188110138873984448982198286211665455375861670418500168082630805535990075681701873185403473753679741474412761040583329181387556764744896722583382368382384033890980438184650920433292419594845535721263725518218748701856484300465544856667942642429337786272904774640529692694127327307237215214879425632361040199829246455285741002854436558952324210592845619643204580559891618614621715181130884140700248711094345183029884113203930855197293217454259422764613884049576445329827874567309960692733588820793011864777950523744937140268857916917029408050119306393228734938971117045899985350871904564638963228381055416934370543624257746509700805931082515030360822836012765285243634664348470482074993659278872550599561661508534921826585910153125554703628778313914157992283465239721461176337412669446742717321023135080086836413346709778843918095683301586654281712955079376614936464716346990383930574992962955071693365188951692431842450105809588392170700200720918607206181141850949186107534691879073142018162245641944019149215583314806237595285243286904599880620461121831112671774445087684963734462912301873949040376680738125467722119381520468826284228264106787054809449072179811004769702010560860986037532567558538843840644670161678984544738495924016375493992562464179448366325794976082648072386496232520877726948263505666358197354144734210338637285256176924240038867038558800605495849020017939462567549056240855412213099517063569479463807927626377251742020753580553104215964927080591361155897861802630463794045214562441232682133026724400529909789165461189963861021274193328115295649981231216889059517883191420050894529756770918504346117868516940728064429430267034189870223632776369723779293482487636212790945813866085759366352075730308508041856289295219948197800059714298075051972784533167584011981887695088480368403883950173294970343607562952713170920393568717769723606783292648827469649690118387685610961580106722489924895284834949037923105267096726281850755725029389476434327757984777452325732351898640061140560367614961024749812316104123870598910858305567431645084122662876962407214482354494351909473043823787764040068036510482777642608581514540692656630110418587797525498073602754239787673447508607738978214783190811552245149141464030396015304419147365983724849537633869837638248865865133655439055206147784452503343679774193765435412126475617995797865761276284318440634711384050137206762505640028218727893928163677871040569554647514338244519202894479710053422448670083268654079663839616435994294570022059675956860754642075891707593547780802144170270258554392819269826014289352402085380634009612778538759701641403577292295066413961827633886860440531527144222799838894386150219814527611941052235216536869637881566177843339271247812753148725709615252857969252042189899198547577799275223045254019196934315151686183405018965571723702168263974831441507247278687093674647727499021974992554261411506419005048673230835246144213036133013226593801792778638972059545224478824394487823021504467680293574547566860042197269724968850007097694789975525756216296363630297407012990458713161852167619225102161558560480989231782512206154100010890200179856989287755500971091042080167634094188762742258670649238595756426307062933600759008919165511888214666135692780539969494066464336958629628395650879568636479302271212979512078064594845269695038735493799182907017804930451855291522095261976953994341770637105018881145077018464060568987418527529886890133910769810841189483502875287440310960822136121441585327698685269464783250725278608000540127988208987327531851750213262014729429067637159486584554397467313121078268180700362255289880177436607758631862029970433569307502757842282788909680792516696215703389017033345128121892878150172721883085074654842928642093384806220400200840243067378034224694472819558966235466601671225389887535456776713407619371124802784092933175717657037979422531461540697379799501331606587971457685864453140282446961661808462156747499611603585613128653533365688243392242392878325202790235123623893394634623914255882413469591089404542443590804927328902811111324800997042607961137591741958701263228609587421461875912053115757650361064022989336118151311515911101762284273295601626217143379906893567802109026732598490754489273311694609150662755223816101706412314616458736509533573578804454467429227097146578635484833086759164804857811094864056739903696403362019930517439096628982318624446646983555182754826139922725866008052075538523547971396727740195181988181663546892328612236562076703307297048269695845217394438903625979669012224714621873908122857934195975680695269473729657909089385443751103877370552653722116109129427224295731753238236187978073346245520153164418790205198737641986562454808003237969044876858969870676706292138180958185473648936080470549230200684157362924706023223422781275323015903466546430609236797020015186469327062930313613068667651910393233001143900639493561221631143915737205435252972153418619814932211967193013570130426616186592344015043564032600980924897540885270768487025029359041112023351584634958864356613486849860262411703788774709383159015174555163809651280054053916182120165905376633531741220514686495699900179510091529151333470214036909369041372725993760917491491914675260923034788347635015276973238182975226014637178240272390247941495504558533344208280575979281396954644814546896013273569221733598372393856009436799049072543612516871481760002317173288973436399064327901216020757152135589043126857487661806103126867372422027441962344861779636617759982465970394984452241903702493482953633688837934601438246584715649445026261198800431673388144515558879198307206325250629015090103451606753986639000612981241681459275115394459297392049509595205330987264429922551582669008331386587588312903219663711325460496976263420950961236689260043299216298872690312432533728373483552961694892932467280797226872866042214402074381386942137441565778903974445307567992232670115569897690272390888332209136317848569123212188359129158039400676344519982685669916180828516630527382867055523193447332849325866079316366957615727135112490330458469186355966921607930785625486784069563366885312200437233274272857333533847203507956314374569096622337679205855627432902057996052282497427563276986606679571870256819791471139240943625974991532268682355728847244728643760689348204020892100913184143846140914840631517505253765979850103886864798674633747334698948618859090472392469493919387341657196947043217527761727042580731403445816480125823405775512537319901056536807177909532245600587976336093777693569871961651265806123381350921030613637482456909100640051773636209776274239135516223951049905508134800694000728125357344301166901130997538988285221493298453979065540788375950367539605517942075262475097290208749290340602467217232011509220502334094669076221431611476557050753956377034654143245102805371143189471599326229241586718868180646502608583721483578852534317120511772096458159352486227724014671509867691288324388845815692138941182913262660898929031114856369789806397883132243733523900375950045084101706461234841422178975906232652447157553888257646046798311691420632118277249872340981644870497730961301806220509760166367693269337972041882595399227901874057106803950207742699529866421482759162541817607952844000512726540274951848350904929597956957636800205746842879838931136496916103069335014986126917441941605858636934661188738098846220690548606683375798427971503433901671984852730377009687012396643088336608728039115537873445833710924503440291561610621803934871561149285256388542543752058655751972386865975187613024995374695806636043719263681639920749640848140984802047610585529790042733650831997746798435240694454905701504740853252797065403963202731894801048171920108513261792541165939292457419073320436245705848549823900867871986268153559556196228748922647213293774055355216739400389195297810557451963513202606675266655436293303244668608609353686550691150373526184387837964835237689182136333572806299578681277666063118842044567448443788686039826339479934879560859902430349534703375444137574982775448604031407487931170888537706740038140645821781796793820821663133091667934892520070985643970605730015194358197028530528025560718134770411989176682913638215339937979325098668201469554747932392516158594729881866831280699186047673190270235449456204337737565007870996258153393403007704657776360068648820232681301003135957929458474423557436757934337936375382258428398901495013185612864675605537137901638239223126739578225541203859554204018173448194333009799033903398595842173342712076581595745956999844740670411747978413872157450140686905023536287244208304015920085287212217386084573040502756350015785062992529324700457650217988569569349321366648658548797751786263372890277565562474881486616563742058750616463229022126314075332442825576273611043448835619759584806524689506720607924387286766981766175823994850239991971179683047544579039003010430419551720340897117395369541826109803269721199338432346340711874308982509742554410039821880545119178644462910087624527773003595436828982162115867892778106402884701445075861067610149213053089442265616708441191246313947510668543901001070972238057491556106672166592813738814869525227374121415572844129606504026080539661424571719195557460435702203759025909097121010255627345956513506431213922071160015013447852042442750035715972137865521003427564263424516889973434776618836344312359024601359059062508026000656985334238293615077190855099719616881279584346992774881706828955576797130738418900482463510051217821504941467714513179456469233940229106170271039070460067064255261413124143045577463575929852386596995617281851222216644730621741076753474372574165791199078771062696317665913027846989928028927034502479396530383984198551541578987654618447908177054039983710154733993961104811850885749226227347355768410298992192734341502478969069732829417632314007638783936783069353573536047179981687545244339701336228457052150035357986985328979948293248273165264885948531067215740961591337721726232837905564731203547755405638146183877099536198939330481831703423942951726839564108211327925246068943158442736664720869889838951690147895439739778167472623605972128575015282696314038864173925415521346728267244803881982065685438931040336629193776528238356746132048978497707122017934155208022109365045176187454741440472330942386536722522764149195994601814526639430190991692478311743817420233334446052451485741948921439107177985216778666358111478088966654680061783477304749263865466423521757416590217991635240471022200642739246695713737116507106116399179245283307008791181087255449887577748651854521154321855844724228380169989678782911344207700266992382461324315737089991517000072680626518219315833236063332928950080001718795696654158390092329849985828365074238157713055514580773113852908598303986641550620078879792057941420648710819354847321180551240589336009908546606572732153456011324670655683401598272153732410683877828180656496770295962337622366708055199935005922487327933136729514093257790987050437938094557217895445431103570130301797514187967983136678787932149637327852957086828899868884739444076240959954304928025712091573793537684790269220146409259603851217550739023058876541645215328431842046797487886360379559787808176121883242601705797853735196874667245764156370869576522932146525999192239423380703187489475250886901476671443791228332227440086375607920816353578563885184920664918121458489975645517880547132877639907856672271087181600458953494050185643385563562881247332676717102586730046631689585897582019463465806813293985151439471432636423309365652245300840590694086738343607489672091925336126667829629420138057885798244626674847890997321400043043627567400719592726499918069086135446735358386034965079503591665175303799733056221712783995591948744139339897424772283654234156808453157850478667782894681411492959325597269611905656896138962670778091316128649569003877879835595950201598794859604006961849707241174044295777781514994135695359022597064862128275540988049569928441566963386740557131745004203484323760606429525619657086338767322099135093267000940942402482943634911319274069319531142530192410360836038736657669399813092830000549890036178446948872748768563045478645127872326910601173662515594158931718673380463378411569589210898900350949344232825205801836840740085231757319134269430719996986467124942187181378796193738347282561248721489142480464296369251645491847213912777705934901467278281592807305184707160757237196347182071963224815116418742127700961707478097517453984924787474010132480454827213652518384251730894237219444829049155041230111876551351627932803754995881230286317398406165939803924042739298425773564999697697485189970072258300704060444965656844382490935923094161617861720614370245817315372609329476186924828202462235456123920059392976841785061147729016284988532611924523076409640214202140935547817633358903429878921739062944892721889124332726056773502228746608989052381015446199278589992024948053004267937828046156884242519718600633107103589283318365509016222893007755048071043314253636955826685463373794955443338406821630290112910849662409564344821177208308140041356650943294197853172098504281167476987431839630875001856890337622803382791489999725583417378897408863858481775125674884741592244279998172230973405933321162994800857406051790485246851446133922362247115474594581352637192581093772773966421402321715768463224966337553225326790789832792776172281329062002117118385794518008988930119075253747396765917068837171478744780252707230835455399974180686923019947605719626289339250749089546996402058151553420375170319676221854746834005194685255034500605596102484373972304170854649739725818813204889268743048016384038061409663448354191879614179303227921762094157687655349381757816250933348065442600402877099106992698037670267726008590793286727200582642750247956579586076234808655572100448105422998178165038626352725623207673870626844669578147487520481250710967188211234859823381138139665822546265135125142928600025348015991210350436559612059988366352705950160827153974578186951721397873915393627110059915121410258554004365663759841841103654343818701202460146449537990403419770376249790122942881780380477252752686795385762944584396875748940913100861281441262840259389390535138789780241260181572356907504399669465391882977897533978057864923758636986353006988142043767778488830830213129048963514609039205731105955106632348432147482194106454573250310139804647081288496343080789158841467407240205511402169521118970703875631479718610723815875359503444482912706620803486368401567197863972369782521158548006489766028568326831714044161252112232830953307169207450251288285904627280463093295715678877807836151931391104969322856597182396591925826330407555301806958003187310309689336414855021811908889938916092504404001755786643953731412653729800749313047794926760065179367429713606635205290010126244343068420686476040057774819488854268123535148642564364131874992084627779949306460601862077958168314211601146191097952681219584124333792939549638880284007918798479964739380831045200501038238018656115747464188526016486550237379669618558659768061521978653393666439661498376858998680068065366861134857257988062893281781743446982105136604286820535790840121161716046019366525454830213743465808758588219818922607050252022974773772137843375474849342428025303515517936216165504981141954317594043015251994028036365298065236428387433480776558350918684786524449768295706828576022998669289874820546627227612143905326268315970678694249862142817172231924316079921723074667267631056279892248264760335431483791018858074043514759369977346046367137203005075240607762000622784868725923198924842258440608146251875446863633572841341793651696001193777153756786149102431987837073367660426974898739789468171002423749542689106514995411276011210165792227230952244432533489412416030839171837338501893070283644351199321885557840548555807556627765616446248323908980841260117232750389249151362189718907294980975658482228050553108366160322811042942692061172544228624088227540882299107843895825823964521949756724560503574885747292267823627714172787120927976797491494820467415744693132164109299866552184514685089895646131216630064378416544801709286126249954332987458825370345319923243199805763873688832022530383665993936872090919713883512452436313698466515783413161325131688089995483399032828142958115528091008220944964421692331640762313557550364076381579365771140424231372971403954004603717001392903607632699866410581064149598408483481271695719052448710770202037875645280193278011556517158207044851495959477824320778818886578481479771415975363414472917384124205280195181714181119096791222567184405637974471492257547977037132621615672616147666475376888004363142072595908454792705198297283519184724799328700302635663289193294326794645839420365745810852732528254206838645747045423795458453164513364433212850093347438360762651172137624963757004148287448327330975273793614140857413295022986260086501461558341020453416299807827978531684999164854198921173959421000229949448618637969535784062883425184148322048191438479092532474491357050459074773531512692266563667097206988066191426982767329792397389635100098017655127164284527719973001322476219758692084514804988876254973557600688509557562295617515627122066070570573591488530100926423822128234932168695959164052926406826981205216330724787170700859915941168056902522513723284599729493075784635354125764698986911219151143188650464966199603948820067521406627947958356531958231772310451613157941500198703942093833712780855785935982786207557219933522071139800224913071125954889922633643209406919259967384128218790357429528376209979960213630041556640525128219967783590485116779390844670092984170569900608439116303243281596660498844325486491119333060974696441852871776463418166082744579704960636725795478988802767000597154573682768525870555714153791155055481798416112846376822846182633950825701580780039042952115909425199950566404509314370287656752665032075788425563883411564182649341677761597154276193267604179410639768302641556474832167552403041489341055506115157829321875556727870617468027113843716150355293487638563182701071249809217950875381418284236462571766310723104705746211068756303722483216330137456319321445896678923154250730945024523630125714700727863237349862263185952879922838290289991347948907106299049032850915010371908582959182089746049582385991877351392689559119099981091511299455460111862040040286372628453615962887693632217710935022605337048392123207844365193472950830345151046649797654040969158632231670760221864023165579678849298302212771344522005373395459893904055156406723841285606202969036877329018724892470696497004448444337847972720724405120257836119095978965876419443808440531557711478649497960187057986097296584513402443855534387787116208779906146365931467048881063659839809083383807024210693881269987709342900058810404964864809012048514248629090709857580809185455435417566129500491422183012935025971481032610382169091229648296264682948775630675989739308366244212579631498566041256925878933218428801514559606860567402776315375103260227336803700166901330791960720123099138658375230536635294720660069387525802115878002399475817401252924044562997438036528358040720187190694717345685521402734491728682413824572215803552256960359183906717844262205482319616502661584793654369627354887158704208388838955506481097593753642943923572236772893640519407930438735910796080927968250169091808551531859387271231286370403379278269255247516263735222521181451684157722708119667022067732194393072398046433624454434865016891696014282918360988459030280753593481553662301154991508026012684078721107116779586656315544387494039936793575574333013364532505068688361922672162204039717127036491149086855555716222613286467726220123144438074861663157812471551111998647722804503972253290743841087750916855626047005496274494926240374250545291347460411745544239948661487060308107184740566915220657703247978810513369671992542470573687554646405754029625462445954091981869580986149701608240607178137268567596988269445012901405260463296677184703741799875092811404293074277859829220594299714070699956931846926612306375707273620308246288433837914127675135439073867179326783742053892815923096143828303325766908012876737535391343594026733826841348965018682256501265179951428544673843178072887020205102406410211289478120935490862833140072330627976272114368321338468395355700116713597169179275220213811601530462727249923683631356037233865310736040311408209019848564859615807463919192534425545866605912926976027008980891790009561836296919469315822955961399401152551470070721451282033795372889171930519709290125854349995714591331697797813132785781712250333672377371398579791048595691465447065180731509938333587148702100288959354213858548535975449561419631277870204130833335625636294470454171051339696953223836982355385013761255280816711346171937432128232702283061026264383796104101833708386788111785860808388517350126310135914657620070652874414696008688374239501538518447293190092337298654022290404991749082811306540818009244257928835094946931738788137644640924854193079307466052229577054402251091140248548907883596272866084256660841211237645686414759173275340901484622146314926135800754871239654805539469234351005695595248283919503246174829890137784402664592609397461833438959175271893110810351723845232471771020651343111009403413060999952950676201894369669233629681781375420568488152563401128495578450684603366589257061916126048515570528925816033212879390727175105818906322026187212927037068266934956323422649721001323506397781162616226622871451492310677549458034189408194806753454378840737932507214584002730972722306027896995939910236685335453641669878370309433084638876062666123202215277561115565798410623316130551089553789420263423290914545535003741160154469438642947009602383441801641007011833671379045636063505412681888703283264496658400519614287718184006487452016866033859327653822159065239260411391581466506689745694643680203151054093639264068937075317040490259163682215997563288298038778345867645802567461030971227341341691582779663401360565683013955836519701379334298039956227302429235986821045108694028017024074811330761295146315177797008244814484388538133816341652052685080180282594025772886858893394292098471532885343794773537151917873104434186007056839088906090130630341782201825064286738375283316959104079809251270833743047872025018882157739686382915033836169674584571818284748316444892790457994645897102653307588498472836383772003991320472355738540139841132789999058858261009988856691649255444506776971922035094219225960646888968252789477473719453617173004878354769349694239200507145486216602477082894703464785045027856819317522822440966695060031575770911334946653922850724548008634850377882842920779306137323184951145259827747530485646924251055617064997819073438898744370951250099164201370364674299232877959773264348287125856984206589098582922245860145991134290640655116136932620122313352035027824939050859795910760969251997220726802835537418018593519709629813499545103376341044522591177970602091357034155938353062948211647572995043789751448411428737121428863287646803402741136119670281203735623441582865728449215554482375812917246805753635480937672099272701420588504910727305605182613562217867582871302945386410848289173885425864777046510628482677056531588298216025890345487082777866416889948010389299172649269478096868385210762844678909444391456670270310075916243703231751910080573216380018561005235446186796386443699161822661214504870018186330199780897100340454932041013389120673489029079798178235247469170686042703430541399284303200367848772878530511742316682018040379225535698684109175931859494100240972047995144145519761422258002738331363938487206055992336955740131868298110033171501683779409900155067610678561672758557129279175385597843954872351620543553066799898154706091894258449745949780536352819170596277090177917116804754901802591720660697721469750128009997001248224720556024150331964247084840490223557539063026260410215934279302139995006819890762509993847199473424794386433209921018330808292062763257988223009146716313229140887231285911778589234855240069316180523086135220788956184549838899373754166951843892552822107266309151546311194473966051674347815472117899744421686585467431448455427229031655509085565409937401913481227417084348149451823874746899569786615342249201493141156731655603427644759334835493827351372888260023490944706563553740302895015082083365704919922330508774039995471868966692780288386039444930493461918920885190376639803022287654655222924643152860465562271521364724701830930623227061733565989988059805264632894797677979964501050525644991461432739486361266815071151698133048130323569208450930807629646883656346890840107363497485130908404314689678453914413502076568753562717614593544606905232246819737966827982926961657371847662520226047626014912481896131444427650311593855369715624169538551538566577634584625469952120787693461666858911023358147429713568826807260934177527282525281930443794035193861237814930570781714079570695579195512191071733118335333963084651976456585688101132795222857213022728644620634181908409192337325952930590830094960920681010411012278743779391667525438168993978310182966999112107903105705102402836193012708609816523783275352933057073395969176109123637473009166696368799644823479586408532840946105924734412579450520182845584371169076321593781757134935770725653655955597182567470384208058889291807749323552279665979369775025161737368475770141071017087972598554451002606394201386453320600296715835843274578991080847195101933945179185128909268079573011850162643568814897294870784955512813159038808990322471975742932896487949151358005050262437902873677472034497987653692373301354782570654857643969326147566612714400174764229386232700694986920948894592203994570487011287866094880281430127080847687641072047329975165334200657914377561263984733572540461040094821479808734924914989808772764683690317751083491925405399452924870537684209103168881196508752712686980332020839446902356929356419260743420394053414774438377308240219590888634311068479200356206218922485117709583977281570262278113339981955254779659757269956421649750384942705208916595364354753684520017714016301506277402050670130487171373441783144831445322494968837912022409465424781870335654037801053146646551947044387853515659696509189102012127822224620794728681411845710178947484246239507560269608124520347379856042535967580337191459748418125700833324672126626618534963752029449657394782742139887743480414597791215219938143069826119600721656061921589717677091771007010842941849134042143294792091098399015922673878153391659015216654479781622041532976471786684853155433089655650550930451935159239153280228746702814177971401639637630357490247077037723440852222291253315753429509103232488352327888250969174728270893526255397880537513302089321688782289467666717760984020011003752038998936253190192085335315124190775945608956475762499655657510620157998189015684050745431502546413415069457795613895585245555288032752614879949509364243146765091935659128209892492525432167845559308398680560068847060468355999370088337652409235267369437034945064085552179475278600067028007041762112017729751739341708772646783720781772399447676445401625232937691577902745748391448314054143067375003412314689171938594600411689188995720305369150648941556184632609074403150692711275673440469385152140462946256271251363710421584699485381400810951819589311631222838815840424833558801356186243812166929968299247649824002991681922695898045654535354989083535522859246857876854576497712077519622353063897040743603315934195353358141544474626365926765329820897154717458492366352398603774761935079605289831411141581372985440075980279617884054574957481133753112060520610064891238569023051359590045063051166616085572905530071520854198042904505487020148793393919932987573600291299432620547061228801051430154515377509848101471689776118675974680990955688246365873804404036792573689248118339692938412498332626161942760052442461573549772819236854610909073337221680340409404773268142272891711227806228186002041192188476176654336100441381773096764276921354089621902231094481714833342887975396058881711149776327263642417728874172366916074382664877806171959069149718189394020379358053462375294607444960849308497679402598698369373592136519563339736650896398890163629621161033146170992419194775645116419109944101747897569220649314383768703067987658352484841515610718079070953005941578806130307722001477163164042405090369800592980291808840225891236227191747841107053193758055161769725373928232930675855613083506654903735424923279877652915810707898584913271251460078187344968695954002411129905300700869592446541942762277776946602235797586886286761275007960293456085924200367299220572929262532744060218660230702411499288617652392412728470492620048977738330411878277448946823337471860253603687827215506892102355744208116215772111052100341265216354620198021911500730739308160364024118483718395800584147513224495331586198284254503913698922171005210578271094207712234758157705559885171594455392658769967847827142616280010615682247469194808414856406844845786578294650043691933921790344175103475575687353398485267176881673086150095150620057961422034714756447791444264819789538459264349411545705355018579096191304845176647776672929239572526135254791708321444213609049254514124280705444626986328625017757664771578042203187960013888131051037799220094939897115459262619869536931643871227376670678172769699182779916034837778770883104030053365183596110251369668639172917536185230711206496580354940718871613304367962385478647275738164333817534325789705284018960686672185177622033661475243566497706561271782071652929292247673269618827118328107786898679593192844953525328110152099303835261682173803708740395713589895972007593912531042248582321011548814698514424651035065883545271587495420968331494361359892309924153934031110752250350948841186764845708949761971546901815553605823488278484455109386986883077284251384906523150200955674061280756736512232123557060615729742650532493271255699607397397145891889512894476788375634070323613511053705732415331896122653607808131242938358395693315647138572257832458678160148992263227638845294730056183789366072906080228556686444565558867049026367133602315274882193754518309538334502420098823018243538512456324172687992518973243342523497247904049471474995838144743353828176044548509565842418025073724516448354630178112268650657954218462879858587514633282849633655142327158875106695144415304682611489141457009223801155926519965453330796831833939328459489327091838640746839712819821567775120371989534441493871568827180392011368196332321577067406338438327460339784621308324877591473975567581293856011525535569974687166135652638557401040314071022629557243061275486763905871487631827876692264746481660867658490603429243372180550240501938838056827920738827151336947131029583919801864828559461375548858045670129914170423481649023523425203727073388102136989974175377665945341688620240917374897688104748758480616655153720051921784168048422946952683338559106806465348610037951692378845048448986330344447525601183867936699709405305242403458633460211991424354661561185474393507847564565881351405720227623626425502030146705885997677569412335136976173829785576781915942865573729528352985245195673235758873644013484479534566937787479273766701207766302524098031176903199945410879007075498730539508747195243853251488258808510012803942514921764907434684727804233280038261185827159067217105023697424459445591753160212409696851422543279493474475288405860580929741764254961011182762166110546631436331287220194591684972447263349398799114694329192702367618150794133381051950137885112025496847986685923579927632304430291029254937692649090427001241399306612411488759566512073857276568489564792204326778127412166084986195036627512886735393950235597369838905939277832432046065177538487631282252242249616804962434349577642938376559238072181807072120567879469343536272488922443454143659782033019696686982762536165834326258519156269962333377414649073116373784025077876831905288322298641875956650802485132078756335140776813241913302187255784966072800509079859019571892536656927568615452106645711095958798803158125835112443846514291470613598337481100466594995238993987316901501194247061073642841940945935705751043286418639933498549477655973765203147001448514072975770578619183196035111220565403622376164506006274332904877124953281910101194085681537666085127090531063922417531146751389203026581529316296827393114179590708687936357365994152946365746635605590987826474634825079972661956302019081350137111782920661365947022543653439343411212453274719326300847858650440779073724344227385993936701013943322891809859439819578829360416374222463693230049120065615584089358489110194798470891381710035588005015622462465132982097231612288434071776381062562122833779257944335825093118621826797458838330377984444443693229028575748766137706434108180152260864881055347315708342616763240102543450962955162761659540425686102429813193117772892609058527631789526171181203329606807710545529638594604798882718786871326055982552179092025001514553282346752102363798499838355034577973206089976255519579639892773654010659771178196145345574199814790872937257290490035553812136316281350086517998130313508143864834455989292227937876349830968679374303824975358133342796497110355867669901266396697437059489788263662067534995637749374202055538300894749358113327633873499524406585023258836573669242490007234687744888192737763112838406980688669826912794164826678618726579085419829178443511121267527628365297806133469338514504659373797150957724457810188693236776744459787601925361924861784040345449619646041777968276507595221803035730249136620068471572251024316963122361815784537980497214571242788856873495985447764270492006189210430728797191740457945561925830124575917417968704354035950576705018829173645391141563195978430962328998025767119732549640353454302410405450551138729864732283232951100876202351238462544112627700611775032464392953003251754307638124609782870738022381745634168267556081868343409403884459932931842366072032217138674783847174274272617677810203614161072560815750417951975334840707668811086114576749631949428180585312240796967152570973753677720323102393863012496124556387226872875500544995165603129120653336690042183736556047469743111683926511654715307262124088363220224247258111893586959375119980166179698402477781316708120065383209959519683036400309897521604295899604469470715685819545572671822534944735732428279757611911997560731843602855088294811117733788225506955954315894543238087838017953648347676636222900971166582504605724789663538225279381195815819206737290008172040443175645589993459042268729974222334431759213509313529977930034549185678303477365687217982315100128419147347039777653574712914370759074111490343918581616161883353294737814848257108136871761923605755786770406052874171120458796766536614228381033528319283876910103525969561631942012550963738335950856180076454344973325252523813162732361236588897796660378573448769094097306113171784055170545452905335511931163400248175575947050144605463149474820840986125571593665870539252227213776554608889607523345100934318244357677878124967535119409343353639278999491628783937676276503897518549410043971759758118126348132676833648281827392647281530506835495398775273072411917747815642444300748909712833408561464630500665883751075190260557408317101244352747585986720724265183666471915019067215457994769467894359059382918501770322981930924696195937570700779836135128046815169980671267428186213155910864626879881948847470344830007306575628287092615006145822849091357833819204722879705983717892860344352326384586638481807619948969624240918366013884667852792967169133944815410496635203190613601224653752585575657503593680913542751275053848276618084745387386947215598258387080732381851233068027009941123440302729367419124399753481143989175904570547547546791538098120747086788051063281720963806925314086803861810549668370753207985524725040728787536938343501051942044822734352980797902148509015040363684220670379383124011151674541106793903258041547864911006584978070492950775730406558658646819380024227992759834531518106194273474025365808073943469970524774489463590143304707812659440110921607448151906189697331831877733570995165106759554190869714573275578896334711738853222509791784517276078722858770884513899984802789735366885702440974706508552185690993171043461086841014339872496568148638532886901097868738134535594931300576993972391306213325322665065128437004069802992742923815616784341831186939780926584009474022650224911675856966965409856869394966178766942067133512770002916029927700896447575375823208137708171232819374654300821675372491280310767625274880950563981679087101646497342119320709019597808253494535810685328801271076333347811141638269711443734683720058261273956304052084628281832241056564022289558184433891013631056282165569993774426566108003223474138259419196924514330066215677719051523948666519574279727746573998572668710666408432765664632201209751852055098083100898255480261687302959998581964708343738780370459948097380045598258209114214656642698843033041983973752153177375261893719634629437774937889959598426288770519450450359174739497677777300679519306037239470017292948556142240350415923278828628920198423517148501500824545072492856535484004040324428089573518905084331515498402533432043647358145005297768048098177734693302632564592559990860694974218528896112518010401552410534399968284754076251932267191276103124802939058171215465488713379767149846420963244494583769093343970100438912508118505086459565619273867700121997589085309484747574089920023897906771398819763247048230909440304354722480579779401111593430503000005386021763660259146404567355146051450171868110861448003691364383880852350270450082131344024162006206524770846375242577334845884587003038815250669202219749242431358758335156829715438144084356066530140090981265655966593150450738258165597772629065489808826590583282033675373504064010336134599381193734885434909410958285077637400557233776221775298211771949448310194906666332555151407057595799575104266728053148811659469961360958562318158286750934660918647889602463096368365770646989255406945565468399800551789640673330690325305308667967271567487724366337407310904784263639283307207519685711021799999803865324141184259318139452083968594276186485465662964909744498148288040683039119358455080716172827460210609936717215652043876274912960748746242295555823883940397440146896213252602025667691769531350511591106362998172428910437218091960218385430554225021710015602279682823784653504989866995582467102494652829825628794004113567426707497873937278967836836874515696127930363309034329440875787916468437180503444049712972097631391522063781768993103948416060770249335594141341343532325946210518567665342307995157860678277273911635470386296547783445503023246419125570604776479525438797563539435265820757607007100690583386501460245026685888463962023130426814314009125322604870549915403330864956574491901174777633838593614722745486539385297646179201749109837118072602130948621917298972726965399629582644883455495617474562021624712884470386672837983415415590719237809727430413332682114550114241523647773368672831352487997990154768713505243683591403186341830086386938507853968517585108384637382663969736250338065094937908211587502048729139491209450398684224595518805127757173995490264819981669209797548939782083075849798713576851396695033653994055582914911625381959441877499670900532614464386693272049428801776959437107050394810071998511418263518171012475239632615411738175625077271453048259684452806266061352147925975350638270213889007404371652683830112638399678814700046276170269250278467211985771910006378491237208479697153968444438281185011091372815862008525188780321360439635434022127930980790632447751015695149409988431016514235659336988158480487867513054934323570889436329134630104569522188054021289993373384202102020751453353694817060119083081740961958892590263044601101969478961637885825614267170242474813598704141670889596043201382936933811769734361566856829371211647045413862249356715255293969625729161792944903168364004860108169206101660938917668996174404078926779168465495157432367986818741952773998342044410936509182301583480213658337909371308868641965321056245265965088905776364373618809271727132851519297682962766986379529901104758716886040797728276704774252540475725629571309691250809626621610044531758235708368660368203300635337472409819720683079920105459654821191012689927480015420096898137354180917729385507938477772897820603956672056073084571783637354580951294902947466999941734135685466822159859456707075143398680359741831615379391928368105201657586559763978081037814913435362411674029846360083797797688269979499634507433824470009774340627759326723813500120860872086204601775939805683815972646249748312658295671018239714128706548027618708710819777022919773008411855713678036172451492234231531055315537375037949747291951899835561013016101935603228882279527864794351608226548758426651743587140468731599944584583799930188394842947230589390386371532716901551776158915661137617818751751591831870342372388824158270525081439709488650153860670241707760381438282213540961741993756577672577857442499419574629253616564828590865885614177989128704392803587291733812937725416142198780741539800315186758319364230458647275148201761417332613348479268753821349367078764747720513203643557940047598414011232782203715622573893281049953895353426152317330747760454876856605022973460859419011978654850519253302042632152004222877929555996443145196485184823280192972144349976802720322924182455666422794402425014221197219820423573314979425123888297085487229915862604264961023384415897450462700124239841797547058856971903501315274489859083824720291620661744693486384348659280159604723706587428261752018209501933095781794450930496006684339934162485135799198403769992929031638358072341167427876348805438436857632660442884750724732266062063577159008478310401091939149082206276612848628491768431900802284324132824605622703717226224198930340930431443908197327497676781889574088369839937328689347337205147105805110467464988452457698091449771798399283788209882961094977380605268944801680121551208833721026633605011539718566472320517608650053997463891278137571124832295635304521590926696085074453221981550139901606673073196483179838598107395013452691480960391977530205407336278518304910262011665061200155302700999314995422939814544877344246046328444988869761685522728763274995123255456968654337676230360502612280611901710290426373380410928907623946163257419467864746605856926816594730632980813425420822174316043759519506441342628581383438506140104611949875588327540685372972268985289886003009039532128802314644494857861099586617145441758205673245996725722587216862264780003128278791960689993814154342758269822806904288840549576521797441420333491271762436469322756827709344249513468555521574916510574154055747340228928576914399826350034926180959283989950673005067135671634752171301283269259151338089165731274172811525261642568580005056735251159056585181205204632177737043219308338648078112022524415321174328875031648571366889151621807871925244837730103303363054111625984825995286328892084128067306680561401968604521190510981254223696018121537436577177558412444505426815963399664875430841383034238775266163841386251531251647308906827917040244901362937976876772926491412502788818538858824042528619487172860774822249933848166936987268133035856888524341351710548362633346846661826216536259331465639551428140313511359243888598065366007732263752888528573850705688868997906794594341205687831594921288493105963500550533220346063849596404606953691092750736488930951529874887187111915602260733953813734525756690677389032098431636879796836169180527724596406551616058064249108282210097886216674184434750953741950857462920716254464902984805902161801352161413591642606489128434692232808593129746376448602955336230104080794878030352450381968982919942901783817483877096154982609180006257388141922035926929583511437157099226925293861376235456134386772232247981774542269674948836262244185567645255595040574143800702138606174335079398259823089356766315050573556299922551867034535126964580742582043033544989677232336060489060613731467054348400203503259893622381619128782367448506709829451137306085741854891303133873691707108228420528326599909338538756084148683786485069631635179924485659886661232410761114881400416973454833833304897663427088350830403666300131471850630097090349444762399422215903055436162650900417549260474603386029336747575459781525370029933056773356779733417029491834958624463699328349725141877677477232008123223238939636130309656227650141178508366125026482411125852190551635550910431643374660573403879727178329946789400949005267357023206182865242912410155506614259374391554498592371518707091725410749880493483731197947392347688230678213804191606812774827738937424836077956096472237928202542411875382755430279197610122947977213544157420980680031816355394940566756831878744294126530265421785352527435885992565825448731875515845125907914963828705011942752242313539362622589815837183094062865914621733538993854360928373121859310902634600931572387403948135387557283028992929484620595688567446524456951065619517326507859294108449318083193525954556539576041608910070274022946849427031371919571524595943026417622756958173999610021021050135869055972876219278662711867795575143289658198014798348070321545072804806039459102179739764047570123686990550333597206137780148654624821238463739913577742591973461282312195279507620555774705795417543846361071081677069888528296617645901252676297662459459075143183708770503864289020332452435976660064583030324078086187848412638169860218994179115071561307133222562152027875599592532578778455843133861889157161998971851457151420288237245581359686584458787808975202118094111031087501091196527494673564912768714749693379668970637195467864588344008966201245919143622875608515232467771725912442429197458206916861125357724439181915708216070048247267039031225172608015331701356850249468814324757954105211151116937665575563584700636067354539296505637175968990148470994708936735542111433922180595907904961002085473048793929916995299263159684668722659883182533523984551026428315724265600813407788795895367279774298307332614324730937103647545841934948085093719760178608753355925536047109116155185346246221903787881397495734406167550483452940310477685201557518768220049015937300079518140552566017397874875984575575397967172459299334351609721152386151482599465620012113581874850748912404884677992890773935791063331486377145813044207977987895314748549519074201922226610908766361568936694345341298058392787918431845029442645405516073486673170179096485346294741799272740143477386116503391751763467901903750721613953804141783917885973175336901122216485092183444339620172673755956112253509562479757838074669718343506455020694836402761736685531405971771215113832262492864822404954878711755578956876817693428063385340447480043557321632597784560329068577889051000924277015834181980524544922937119583282369621564484072451585226180102682499004134276872610035477651868753454491509632414067653225240478811264562684124968736842179912053087247566377327922345250294336690510571232229201771972138247085843422837121322245158204803032843535810316508926325109798719152637884179767592867440894547904446014382550397253690451545220495252818409408443264356079462442741883224314934839082993317281331319655512379610242874696344292298187917753498737203763503244061244193007126201556384492020504095265805029890222837164949923589240266735577603917825293166041639519537909929539747088869949622058841530105326581522584446761986927044990201882540462895084573291222790877164183352947295518771845058979375251534293074810457086216791878315041873269153421916219877560422776210436623045677847695064762653562693979226835301711044530264867131080360403042979216635942514603653052693664370380003571085336536653628248251866364443219201236247052593878483511047109703736584783417122052762624251546201491173670767195802442982208728833530171865215068312682835402235973212063705761586068525093972230330644058419960090840120776074332197999911986172598397324329033280998615955114696487809495483727700361775595507487542539607885006865620696373555768661405690419794554507286006924519202085975114257234067123341464096965586153242251050396370077272193003765315932389854339669523797026078366831420651906488521194092157891288130408510781886055330916438339918252541166570824275512607022110371609935228140376794870882171107939730974729373785927827204207893845813492111397558068012474691211567161739894504993187226262589292298776790886591398749234083898609807680711731663584804655753961014520936063651989725643343689959478968176856295739645364843110329753598948267525130935276800299545204456464168332070838319501497676147480775660930367095114350802005369279243701143304459787826367810519076348223705546133096198605554342081236352547542909521858882339511008208916816867699791510888968721627836186820413832861119754461531012359646392375521606057134922949670864593030265978123290858239853699124442575386718003583381843194025692948593372777474281543321216648795268329245787765598404156652816882250450732349536699666994904581483844206980027699332809322421347173620098859126070865762638451941835775280700614566263610945378011460899446809556375126416473489074098594360402986547973478469468383881964214709575627754938116625445542160603245871349665004838818725699478096785312022482555182772635755985683243773849911749308677291905743915938915323952713807932223076075077053326106996913614883619624441440744366388850218874253573320391577493668292093821822881268216581926966483049704729280725649660021626227440432275015469837190719248084536285268393130854225775640562751810294475311079862070358921215384962791130539641878065128796866196203517991266972303160367404179742510677587551636945466920482137740016177307597055129160107163092321856071083484702356868547850360159309420511210710060398906066403356722700785713211397484453175401569052873307606419641451105765980633878826917481252954136672715654211411171397766960803205462430293494152135855959655723933525451673965706661025753444271119019344475264896242373634727543781582661233781325057979368345135316878361440863644344672521338744028187026020073923041515963814080780512432765326406208150104797483352938332844164144197959769748889718273853649217440803669560147003494290645562443520701551147934082414551526127831943753625464615864390595343575476922697464189438186636153741708588883063369231908366967949167719449588227337147337983663163872117479382409937510278271469293736179117945245752981342138692995863711585044416992377291770961103792640175240578201755353298370496793248242758344680661490785020627952163317734478953172945350864817336973716723030094417799673363575536026626102141274904326598913209107004331403818037311757826030490996366139030285668836042259167603752932330514509933357691759035144266711618819359268611592355850394291816051254913582611751328632763044319086639164231406769145865619638669303921441435117496523300035358351120783847770142663319891327816872099865018428426858327372605670198172577762953904588334108227361311376731286427842586473781038792552209789525248944184521459046188845641552289319387429554235624733627712830396395818760783692112058983011974006436892530751777145597378817334435875351736774472979961109764778737840731842285155126892028244553478440816910209652780069507291121695348657049650509137918242906867236194693306062551033866336054983932763758535297311991328355364661716492196850324154553418693913284659187528328614421640756001243160921196248960229272097847334571154770252819670924866359796680629813706310980078771849518655262881983153687437925260050446136563641054328904212539491349998925311685689624801543778908865794027218755047214921978630788697979482347830496041356399001283398023896490083855285005558986797785009561349413004905449502288003234269786306536073891134901330100110229563716460649994851050691386922632499660132618182489016873535626520571275592188914916367544416816691887554799657280774499170904014948308880202512590537787174456050291113137148583302713522332294840332633405748286344699091589931152238411407569018285292257154755226646355701496927673349801160301873337372610838943751268147513022976834248572430682945249584758891607449484844833377293620961978905893569538367452624131840776803832881208659342294503057899456459354195800184293294921557990517710392592287614396431489329617828465138453531602993519466711009243062090775866789848349989159984779676970380685451133688920365967471299243940010353677149080183903250019781066002657211768823461097198731196419247621637378214408101484391803079586837821900885411299609340309576888027835965531310073023691045179826638731468896357455712747109166923028402208953087935481005000950563056928265445555227603233193203108410581303934802746291952759344744530802992826407082346356821038490129138389691769031661714005810040661878027161540944481527045779619428848457294705745888830342039001161132505376404286663578741273896504882182018013476317808150445593375560351262283708256709282595660906102056829472346500363133243640197242566541550959872361342741927006511819905862574336499459973715896213191598083913806258394558792352032902050100181118768978068065307296367986157941980204221567253893575069614439656754720610855946362919377447278714497625633887863549690088172068940192226201464797555246264514287190045125776618628494576662522526696049412918393530898088279769534043865800027006008227283456374198309647604857723308656766709673669308626062783309158215434025715571883811977273956141026553722867039289120559055858993578503891193375672049580501836877430591180245901767533914453331931014027577120571727812025872952697741076427313780408519536903500054523897222915514307606526101636375419334229544638149186787643497272817474033165545077250739410001960231739550072758280844981700626851977523386897697419141762445558760516492942565406572212536130024038704697649273998264094540468556355564422691936475908783063618381175064084896745192081215769918948658314929811055211780154439265636627871163734670646740978294994624626736407102468040684842972245725084375663170534383615966544113704769872484412869603832224470282139106235902519777690382919794215380081869811051321158597584596478263297128771050933809144413146392095450382661560749629210161592284575469831850739257027639227538088264633768957430256305994933191526485216151062106807683321533371849435053209697922384212154186042393735771129649841593306114590992173535497085583135321856576813081385323452984557982884826678546985011171271874017012122756344996392778505748680275816244877934195456517409941263967456554144711973188327168920552359114122003001579697309611653155599516771178176913035232372256108052068646763161353726976894540144636843516365228565823922603645917332573201914483437676039687597693530796489277392955929333515367395981188667885844231255358208853559216546200160729133380266842387506744188127215358043995362147535334103215303571867341308428915359841878690720313348504857896231384094912704542820440144620219451958715627896287100220665495336226946194647049521133555175067076680216917537413996549468528005483637389333727870625812412102078823142860235902485942898136315907387214815493277500360378291123924199234305580891491282643808366455640284625720473915915036670899091692701734310046393711292526137374999512133682536593771941962466118444202000642026463888409811746674577833541341677799643740849896435074381078136222315905622169470420154427299835513489118603520297217450229576803482117739755420616755324144118488940832661596569676959260242031989584844308361738227812536696617377147104995056520277660778898906729909739934500997520903293208355119660197481751291352332825047494129553414117696010851961559414840722153717370138379008266570651959870133748139097475379378832400737135969683831050475482531919724421329520515818777333294224737978621484825364127291871093851951441222269485943596288600595100221117861619620394866754093650403827335833758320347516685356774826354509949414702185726946593947592801624960857008322309671504169294266009913165994159320588912325164684261161490761969549019986746060843822343857381994735759562335930467828136255909393301866711727013119316876816748115530212824475945687930172134945593192372030548083438746247038382465153292991916248249402704000970613397331566108087446171872627582811445207733326619679257344880103771937433590279524680857161757150290550083522679239395561702131766248651971065651001474269530818731057066796068836126657011194903438000083395405124610856700323545145719597246231020694887868525563688893518671488742203400361032692518692889727851698285315601105414439699861144904068685811544027598713760934610971352926400134893731598370463760143045781804126119607590452532595234065138669844765172372231741104963111145891257909500225592584231958909800625866639169447054196113363343799313979576783248146099476845576179059828790942473988421802205976236924771614618891129862461114936160696748234004075822578187423719862492782958396606593931103333590309438579542063246574994914552499180552904867855006869870780049372549787274841571955545408713119323502296048562901164041606208815447118873810792583362592782255514082616632077014323282149402566530959422297494111938706795261759174153343331376643548370817665196908439381106935893748022624014325417876476704108853229705099427171612774069147773299352585485640400716839985704183534298819846131311318676244549943587844341046907401942025713917664554680049602220880300547576716982136233819367104458247448159851585251898676239825742619030897480720058520034343517893636429051591251383398402567501281677505960039635040539087396274768383875511108256878243928405954592696030311875482645128375844839902148071280327564728054380888987116193249898023114981009993603720680351467246319576734129967920519959826605667897720153170479790418285883417053122398740579936347894222853273447003154755007355157161447413810909645622752204165763454771854448965669394689831264253630965989841706964391986861471058467707101039007595461360235756839188789135338548114501592967649341696321663123025785398206556970793281777570406272631929581058053985688814102953093183488167060342129928826952916117592850602460388277532184196180983315476231200335349278807117298446926416000199687789223349746720250462423440840396943881537309707808144977054207302194292829538424592955207548219814491996162266721199251132486307149330786813535815510953939501024231608332439916506566836585468978857441315283642577757333263008552105073480154003075994327557767639474031425712375398032255641337907459285283159750820118263874478145277945545813571637432607232878060059671742234294427437073949066232944043544412050660008462033104328960071983696178808928290294557245044900845657862876652269904137303577546328805993480316489855456921932627480337219681882203604870919599919483809354792766077566937519016949513914274818705438727940921164603944273909362711448400797504978565498335728226885897165859906374045907504219777495840090709854716733947115601223973527444878077003409970975333437025907601552966346550066092429844101009622872830486805276899300949188309124017499026473589381905338077809283849749672261057646635933155542530177021772058303263378549987525793897505006051569838778597630427142162360108313435603815215752524613319896930665055240526532350501425968211628316895210408204442340363848225351501313315475222423082472012459792045905969724920125172113367945880367063190201198168130783368133067311993890851679862312803732398472885792542837087481914707690418119243622366818801571010519858902949457069475416627973154102933931339535608633563221462929763719144939841143831081777557829339496656656313847294304301151119524718223879009122251093536702651660484208344436445139912138087936108423811161818597213798985930276993267164899444005642636056420042482892261475455898117350043948825458982769130519030344478393077967910112318473779316162216360865490472645814617439998568864659597054258561063281867920682938759953908264304324420710764759431280515705776027356016899846060857587769142775674034803542084154604234098194281089995477283111736125102890806029446800144977633465071686882481332647319410939868382551909510630512451048522713146941061507887562432289966194824424620637407039526845658156765876326337822083091763155186179230526778392224943485092844221130628551758010997347341876983752170763041013300474097426647498793870380986885126401977513547653298910237035782015961397600511203200724967460727971300054501059558988233247448533971636882103658565767479413793670328821578741407913377514167989168093486753772716379734521890598217608647461748779277823817900108649418251480601807293779223501005352409866807669492789688177586095279928389404030775451889653239733085627969624876430983546294897854775356940693272395673569609062140872978170451628609436930849603668639644394489729057241228991806156703101305308887860191410981222675410843778705072754425663986217832926133438259493665299211850791861747104401735460218999422495072667664733737705062631240897700674645496619560671767890305690685436554312764809689854522548131206813797052996495814309072178323517129441790243391093926700850341099058105129808605362991220876975390747655029221104193888894137220256999729111620633057390500590968100586799882591548881290307396210248912558805605012374838320778467122202758653549981809639130178838454019455535969564312423905594963720239485149404674623943912046251413396976205551070516128695634549065952802334181428202672820225218647724593886704079218841443533211457116999283994260120146551051783677299329092810701911931844685429604743983974179221657294597793921271253640025878333099562022976403805454893007916986174619332047682002021356863963456722796965273748753845113788915069868700204668133060055910980423958424586283902526583426700972984658298389587264582962711344251123944034399242467339580427665888967060595628627608413762525595545388524756770108311726392637832555577900527723641202703932534992542043444981575062708103731632287769219784434840572207322953902156845677157420916670415573065750268017683117702143011489132914423476726830451410309664534342230916348266362116811245211236092810488544593981042983597078758053237927794110235680652380753803925843895267461180971126488313769212445423020515577332480257557554691208349753597923266574751236048749127938698752037986327586575824363524335338397757904321114591886767518075289594211618219368913641281089955055936719382777380264637483215796146812491998615110881888084702725889087313967999276877788581163982015369448711327094238935035437149417762688545527740998635520610777542616184320227591742134111757930626640807029357088981618382555663367026395223707510042952275133630655952217089292761373464478500568024135858797658267792457514366380132403419037479493164245764931153988479784365152274569892523365141699399281897234802481774984678516881533919368818283158982508892049651401949703927401248517198160157938740154885753715176730751169179262544057549968021175985441862457479293134807309666761718332053823201919769629854758179439652713904144720865098703294451378839147285860418632668754862793605193698851225759205988127895949511015162441626167675163403006174417533066401444616699476603338122742210460079905065340596051090159916864284072069883839773305079542450540400602300357096511347163715350218303854819410055665730529002228608194812032155217899038971657038367045811933670690719610562737307447735942775658942535791256537678896785190338049670901984137800362140178894777905947673064592491332842031933827452519102812514460291981467946855976244879664772629656781894247797602063819110161975639507379989354548467876689168257134627436658189850824171643444058423578737927603749520531622004883887333587801821251447055241114386080569506956021015308370369230851423067555334960149273393945653216654381693860190152567359668482521123433584716803259425355472766211068053402862508627274100121014543034910547893768771291901586081886163053364637098218020196664830926369166168376324027778848757299873362210805405060261874798976212629442026348931160021383638887285425477864668389137716763014971425871019053138533499076003925452438610376173084221126556189345110397521583078871817871400989235985550740929956334635266591379884946669537451032354048450575105786821535750733570910276805806394058603500871753483687782192899571862215024691829071101436058534738198664841492268086558954984006655232964216671223691677621356632832746653685940580043328011843615672529525853477634370395122291746302838889513159672273629258070214960631254490805556505932326487465656469607476065177139456045768904395228277518930455478990060735770187071013289453807939950305973736899616345869345886810965061570754766557280572251662289683369045242726631719556214532824158617805455196328914856752212000733436626939710455894441168329434943769482491746471095467038207035615142643109554032385294628613314945723697559104265417127246059335606439914121517738637729718290219637066869473567015331216594769329833596350450998362307021250067999424069160004577723359318818820216727885714664432846935907742669207413525293939100516029241804388867917929913528991673706438177354565187156062474281396209417643227774537327118866505205367519025328481773183716479872809232557203315249167784392558690217811149732833537937482503087156377710922819314244425255400412863623123169797889781530578540259024937147027080841142807685392908544629944801592484181632079882143979561203958294212579093480582270178829271232206659530128994781514169176440740135268035252226083241756661251505459525169172240238957954735588187614564970397643988663641667965635733409573382938301651485515593173900172529770639589801701250096671044301049165772629040679882276250921329177038408531365832861257505784733660031327149923501229281501792898903680313748166143956534717536475355530799849050531816788283814552109844698386433389599069872910266551337070208379714122718051447781212328415803478204144998569920910406099747640366100419231935962773270642130163370021191678515393369089595872924573401595811284045598460012939135885895632861370745571314941172813827960465675688425245988091543117517457549250867951249460072183413743157156407903444246320617503317624986327707735483551278145173319729513026834084686997292038278870740472470465821289290160077275292341416519049138489865511636310984260919299929308553643446851782212338956942304166681057704027684773872212316110396380779508783699128568587229049155135355269617495369064321069261153045249908845270019085913849766460858403048392483272474248926807344242709089133671928483825568075003667874992916589718871045819654330796743807665799132331342797806906160381310542065107171485664045668137888525639078641496905023208132678770704578101788541639032169370853585537065405356485167847062293469505733104669844582095305384809501186127417620324167052592462370111838323522953352502361764157457792391523144079806238512882139676788334653176063548664286768678898657531883385763454472724473064346158599901094963148098008933987568543761105923679179943983156193579556843081263048469700463017780584253488769803496159962621369824175156616679198318666500346413555961394823940376950887477930342008389025809859419034905811361042475325685539333023180130585362411837167894706388135693973405481401332677621551140464842024056094333708161418121211462639392963968301900104066010290762965891904305157586404624372662266141601994501871027525496155511352317275478936755055054877750401606375404853773023097153701414852081813922633755237277500760125206997277209069475732625502886855339849999433220879513718770892434665960589123576063204917981234288074454027891501232444753015731208999239369600163094868623343785881954870818754270754163021853224174307041127267401159471401998430321220807933738103153084034816373171252425375799063811026167429306279943411255980669736208089149841354087366639426080246960524605025010915625569872790425907626391654334089199042417406676371761665687245751082166774412188767931247772587020380452278641992089338803667640953446672645721001856577927298282322356899196046627710688953109527192532602644954644130025081963993252924313481901914842110041043652602799914139592044445216574648053173207307470646531653264179632348050733165158755302845010323716767295505015662412833798687090467822823396318822153293305977040488132490205273532404152361305612984924398449568404988145982301091688436844885304134727692383797183659109872830401569615553084305580953085479659534979901578165294373277535751647025449689998807520090119698953340329105884586399127228303007401755164176224112303894803983314560349871395887645865399729799447739431469040839386125553379700311287782527039436801200643284247268990103833044721707880259219648596249560498859929356887563289917096066743527060250946808905506131586151015034777975984009292182577534926753977433731529209866729696016491430021649228035864364702455058713001133993498986695324409270629031050280412302074274201342138780384366049216304031605027042387781255975184253895729369852022544976774263102060335199483996168819013557610230643224554573262145335158511349887498354915904988526171512890326248689051645017431513114630358616748772816932534818797111097732859640933924977998703651351175038751866908211333159740104610859766170050606348046402361704052859248613245324898436312228410166392008582376703117519632812778251257853297821329704580872772332448071049120219710295807532111447202720061184061561328631210354035381313525774994510521679159101879109565035007452663403541543139163908263669478787130526713903718759277560013593112034681655148467082552078356725061326646346523218953028988508661379893370034401029975626185667963844533834893410697239280436009164593753171568486198851416963393964646426442550494780748405144663447877504042934275424653048890252158117840780403838675513214705061138463682383608006406450461893616278038839136179735320111313521850559718721852292560033484813771456809861155045088640186139828381115614949071316088175081941703509979904504673929215410796379906497223546204377854302469747200906460996353053753059098710407622462318870021570279490960652771526910412138923902103840084666021554314711107302067730103461350878825253589854740374611482617358180380257246751057857062039530476549423987763907562496738143243125398085519244918537887916864351058039052069577040156235124240340603040137868286718171392636539335788509104948400872737554564029312551504651453654138579199437748931301216697466464112618102696729924279584454820858774438372367775051545768722462232806653120299920124663792441429529796617028007169723567814651042921549826307429296410014282580693902666139872564948998278965309583581435503811362331052922520252261272376652917225525193071503377088502984201150227169145369650163743374041156117056064119761698134341980947772361333934945945679315188478149102473202959464614969440407319687775247754536419182614212169210858977087487515085108633492072859755990404772238372368214309171329303475743249577439595525434483800971033004665305755355528344887666950955217483277768695126275330735026370419531443507130587887049526215623754700450588950650754750410292752298092513127878897861004577754319986717578676389163128368995923075530980784883203462590241889545052234527765112555111371935283916052349429371681897983321851981656292994221092444528894968095936174207025176825336262933210279863268156362928333249498879466666468983854292700124922896668802711414491614723389531660069458422142391457421840381376398107272261142076624890879776699325181700475126576713073254323779996545351040286241565172692578742789218806653249121406494414826784360801741145310467342460345393148341620181829246335157598601762804235521027800704405163623268249332982593435941232141235850295495341774818316099343814263769126001469518184529035887795635850629881877153902483633022571481209860248369850191857933956218522457828361965542725716813035804960688229907560983614824310798756325300398683790171915795753966771442075174438032398762155564400610438587709737663996492528443389802359592070636899734125442110496144082257155729972860446559339351398817857568094968415224809333048446864090339575235829374514243246834693414447596657345648159896852324764396148566691652208419199664851454613299414679605130429444486783748071913746401210295695608702300571272598337579499386768126076283493265379283281120517062179634721859875968451406900552436376719341344376263362603775057418481582696562711434053285122615054262292434186392102774534492240047140301863195284689941981964593649813999742494925919689735429574347594405473379945711281691334696849162794207930051102948237693483895116277965237737170952132071820582882986638747880764284729814236431915969353611548504991750380160059837977902489390945945949467033381461406831290842330198121914898712566212163861574687152965694675876625360072196366999982241307147155015521510930372921839791599707006893853540729540884460470086916461974153106344686972143893783704392627064188703301253974122861238960625124397153879850573576817914781979099447124101629152730208769319376289047222220947733645517214581954816016551286930738762987655403713979557327645278218926496718740550472004441231269605799258343039012671192301886013450533328812987580482077928354559524210826268450996696543006297631956799580074924498381285884988785378773728986595250244832123742064250913262935532215035604536680590934357534568580778422696606468467892550076496547635270854341804319917727455566442586223022151654136388541924429705576204219124227301731925080717718288613837017654365089427167666395134508084250340539408122248158323720513731954530846908570568819558045992085315680320452134893721831093231099496410887481271628113524348472865062924125757295995141671504989429008794934924505319232324766903309641146947549298301775967921034704878798067730555236356616462867058041392077976033426092387713333782856639329391306490307817956121429960916123484286235730890253213126645074321723070988740367250939646149643399176824862646184356948196912039300300592893932234743391142906961435501077151564464457567102418940971485108084773664575334018405304440015782070598409843474779778674469222710193586588950717925658896441536340912848052886898602259447779617851829519270471372597468319146275164947138527431812429948943009020140481504273420564225847121148655153326938785914472204101603921216376588992723759916532388112130760713220311761455676339178324871048436351377338403795372703252387629412733486001708961867869030661075015430805855510539080000994733735935680290857149776610897993548568737265494438379524501457024734319141940227161553372456919659117321931839438236312891638562095927516321210166960579620779097347596958124288125775842120116502494102441938627869392383202963983842909745814108832764836821630092653273353318294143979101417190254684441049553557195276684450957402901071907881658614484948356195791937810812568755111477389164733838869691739708255928388444233419678831602311457584027190992918307894466004603870571780641071605476002936618636553631578507715580016845693717562591250869181191189456056681135339998859183251833193305593962821884278854006678579024069327037547582383086787763394445885949923518400473494214863977787561195059583755663127600368503405383035092407606577098694927671380656444439594467737297569062155839951841340059104793752254964478832202393947016966298510779542284406401871430716857120480032682027278584625230692739651848876200521927159623960367480557152584891617552922322094358302866808405835544311389809187905433330853311573153302495869603055065497754601726358375858280888549219832474285304395963710600427419924212180041353114894925724057206367370260186931377443839645324973679478972532396434745935242246860880525444738113532408897438034312379776631439829366209688943925694927896731312227000313840627919897188009775277851907792212239017972268992814266116550606764010012338742350210130250364750323091822541254328515230904594598853869629249713331456120704580755266025813017266165193053078154972265449862012430946545963657562755812330237458361702479313530090554760165633110079466590173166554076370311440511219135048700936964653622995031401447272805345276241998407096706368808515596888052769712614831217642955671994552675839674786648334600697375004587736554600944041547785090114734934155558682361678615923615308813327146581781675563551288859588824476488836757098008563022906599930949784546095758586062366998309121855971874451161599840820714519409101323538466945444775618761944905946061417014101196142411269741055242371029320665445232833251060722692747711623532261212262232456888912409749916556808600914817880148368691357159695364340580505944335390619397015138643133068082387479200105304633572107902494656463684394462469021596528858673640713808693648455324791476121892018650435006314171668969812235395287691678858524984670838734102053770111552199841822132564847194963755929857287369275484210402990905815579402001361341282657889476710301838892672873428485155337412605781893983618602284589046289353643220346443388296953569767828517593415429352020497158476571384361216325505474013633349649476511865214216984149323128204670742782584910316254745533333966049433902229066406629197933817785366123829605474985873155954534394468165881654844609035327795601988693640282500127874042692650917972035170210256138058235057533876044092560392115565153127031277485226525102633943568739861486689017748300486341126625805790807182186545015817139245120538837717766105053417821708129671932612328948047525323373364275327332607417221918731572116246217634325953145567255158344629524405272232947195100855174472856389605066454746164751391817058134131719198433494393206078605974049282067357623544439986908947426221615868210787122565130169062738394798282323995852291827722161532264849692796451066936001540615001651253041979390137826581716109904676905733618116376441142625569045471295040610923164927670679336982853162122764378316325860775058980428393466710405136756938436342896493122735287993853932751654263415241900772650623177252600506951637667286826837479506162246338137471974021793867055633424678899888056015333420719737134223780541096387444109658882493053089926411696456669043156826219758353047603906953519552203786075849345362198950951601999037084275384396771998295922294816698474596298644173507763786856820600012504177968866897791828764992883721065254121751733965623698383813249191271365934093474475981513931681710719821622918828181574149004122440531970812264561213892380061859714264283075355369605727746140557607978370018628884741667163400034641668952115200942221549661605854803341498784417598574212755986996623797550487759688818400847917011404372173028041296021475200779981485195797205466100722509453131463393385831429640798469342059162218683495130835788392793730333879082153933578600656444937427230516558339145226116494888211821782266804897224037349641467658799819780771736945835608764850260984760465258722478920000251058692109026608110308338750427257492531181721647214399517471411100182068875506572188404764814536767721294516585737952092461262655795006517720064632854299162663540952894494722097240545365412562282392901731225136843453728307043014834497408936458484919521315400186778643113365373650280782103292224188680551547084687793627455180994388044661480464960348717426074616327176136219494292904676743190102298722815887102917916127830145036827310663491638176989300427122822289345828687555962650827259396023922864655559759172545220596584918945778160696228986987898135052487064437777527061138765778835467136150626259168589532961926183946146945414807666610629535929010633407068780731986683292272378833555095702156939199854267174565481470193944648319356035351883030657046017367122471493787802224936502109512436587959820077572217226033965157114055782859500792924413974482169841984133632543515622532993850538910979913582210021150515259218050267371012655513559507154069975802803103480397611022360338466353462574966883513756501840173206043032058899543142470051262042276441416397162889907465955569144879374767643802162839123080170019203281107353739226508926822535409655847416052790880966772726596606933154930576563129812728283198855006465073507092673990817347255226492743363077548370650692744986690735351728348128242148225849365225980860248619056822647559378360477814476703255569463106212406334120864057004921320968176667035016971615455187673005685898772025206140861813211902384907368959617123270148103337984462004513529791766424087785609874512353029866745380464278094203091554703965732807482349555898107273806093425605700258075618369540677576970498371735548340028391327200368063656601570984290785192789895390208162714724720885299512954882555662286399364522336734605192624763820291436692647165631883879570252437570492272813031241965839174808621486596917256823204785193807174445379500766951275647333515936989219955672773582630054252408064391574654751865863179193527472499470130996111007758017307131264485473513722714932510747199853637047501857424789713387496933035698571742033478965753492446540777350059248373983699160487767617589363391366664800936615666693281402769016117723000877336851096387811056529890254253054500028790995983981723499305167557502427126232858498807459867099534244081096930892416384799521049544143976275214525663194452803050747757666208594900758433066054056097769241725641406539014010184871313266647779289780511363403627012380718395667449871042896819391085857362287804621494141560043889860635020636102063712722444782476048919376413519320619712308598955184380462374098353760445678302414239995601976509236230035638391404955637909332341419742468443173162130794306455792933727208508536138511772368588378665300587674518548115944741058805245377708385076837013071934501633127425673636707717502626458476362906994557144889753087069191439022932187195040480456069245395186752498885939896342469237747677303001714660931768406728237934360531260431324987438525958559012103066029499316790214072182715977859271234874934495905023832030510444186154172398493850733854424324792302359100082619115259890671417068362925087084903598845850921486808190015955856734120359872744101877391251304064646031123511307624861425950711031194844939317790417760725689101982835208258991140425951311885122283957061488044510521983298151884027965845669364076742167906762592219499787160599707477556976160736208091280715840644674230463972337638539460671026184234727892812078190596569443366479100252174832737627277418758655052283746583944602177306683059493857773303299531715346498340328781740541587926341786903191294523162701339356048433522971586293062379872963688963978970241382136941259997246891779909246682852511033270079593447373892824693887183660162421193038228346181280931934254091276432369591858071040050190729461971852991133081870541524125107685898086255778801175800331745103738056433073651995086160861295840188345036663948912458681770183329773023466508028265688549941332465856417521828342556526904182200076439042845389341637571997293391402033454451387570586135322838132051230744614794805570151999942763950052538200695977733454601807478172524894962764627836071099090315170446061497474178085299556430824297755967400908617569002811927127332926892213748072734953492037572760317449622608050441760838512056025847597840568028640309467942574300813106827014623698661629264574449939934624158035292966086460103721389464428239779128411088554970523186788856720642597820155457088399817996236312811331379310421859281827215031365909439554781568933546281804999525819099727161470018661135390081541339408866565547547068789888143518647870881393962523604457825854875846738942584571381976706483400448832578881055609494056684352192079969409614191280712329195628159712634860054657407831732644018797268385570156799066913995816285321715782527501639220156013798492957482590528548797895107983024004676776950306304424142181373474742752445507009807942794855249248795782329314173457423943956339165591599448023097244994502125077334728478785535114287676506649381585584960225299456953873461347645943492283775156264094891183703472921706788509997924732330567787024915240274937309275102540404938005833707625867321983764861479238848118271159373999395843181215004293190736657893877579696214231283830506203680886695459588250709005405635181429536884304673076001849461466083813196068169049770564883156095181646728992579149399918225041164029673299060124853349204493117873539461005127419442363843838721919452006710449083228276026213617203884453491631754319972549955588155234687928656502580480340912294527735988619566263265950146878947205396441228398109329039965132495897986177144962120216182343010383842853965425778055800799701535420184952507653573995216101945084645309030458834528632887960550383437839579236714781708279054007825842468762224521237669628106263174807080412862139178202622454238313343676273261615342930296246160112695307251947625804791651508362634819033171857339682665360115738240118190167154625079588338808307071973141826913503590114444512989912271622508989481361727502844894644406245658993131815548819647807064676862706220847388055286606822985776320357127364179667380473940893583136122100187852785229074568385716347112056264663024461431289442460447380963072271077761253064703444414438260744695646636449764347568876068133511787256224606644828438826993948038068694946452521999190638182208694976523455173666827583410736235023612455751570073231569184776616968272923755710137778341698092750812385292703815145084104299575482097820932951911280731187136758805384861829525465144757621763802264666467651635150792721955577856693034212356379228397615932322820256957441842830552775072831388737908389789908935314916844001413585939492965664014739609844272478830172363715944780869790444115531086153750135615076442875025079613037303288444651676440422690294271618774189921288870550943145957865311782000671274416220955995882493260660396832017498651630265028674280434585193605861310924171212449217938974172505617025380367412720738593924798960173377476572093618000195913963369560605196176972430190304500441270573792871038415617607519103220898033008704142521994065666459945111588697889025499176842601718728071057682884040087976005401825558658363643998352812697153859200113694476275150763237440912317510766792654310729092668470059360813397535347242499209743310355838595764296330519784871746117263422482066078812578668357964364464181303370990151558692419725854944722637987103271899851784919807984835892432322699621264448369747343909105820500985265695235907274854381456521631775447006646303493619367720794970029412782753101487099017039620664102969563754803746080205723318856078871879815466744312160369175142912934497967834452769102040248678914843728531018496496089384479441154739325357723853125959360463754036004736963355752834910287205763313997572444129714172544277720855632487566271639069152552280368405697214497904006686149889047570891770272781002038897003402471971682873646885562203770181058795032547956411830235339456384555069748280358364706650887787721844803062934981185990993490397163876735377975806218265458993257057946872035105804521790535331886855261423580330373732703097943116294244657994674929156176765016681849304799900912162614715921374009038948982712672726852775742368727909201148118016777893055124927343699032531084249642905677023719382841800620703147308271412450374382260664648044918321775698111576147459524435154489126746672385934383091220918131507683550426762528251565611919921448612184100142054510874172430797839779306203119374274513831277416560116634363598811872595118093848770370763556329706985130367323074209689966575755384953310934974077819914315694172693893070027378291239250703675408297970111544909758474330850394554236409356341072299355768591523738637081833442930687737085700389526680298304543836897520673411278603451121721727603917499897879794785210154578614426587045214975740355066208566954147311302299337141417174812385206554419853729469621435411247816619332038463231551498031413879631961297360081370569013576705930103773527118301032609192434736079565617902149975065979211554187176817915760445563652430706997304456508065222722748364860013764103601749713563660321668292806691315839166363786868160700059472088291177559401909860220763445827206510623572008223012051322404422628050078190225786028671531541522585205000841453729629108367114435534384520099893746096230949882669101302710686681310297458645981542196638128550619313093394202623351319974857832633184984053408137079988297872925663995829209669293794922125078716553951711166946008749914934806296230331171484722055761222379224035670016460406596865315195125688250167610372542348725300068430219897307749822989075711674087747950088013240701546250389685953540191332991173627378391784642655900150054587234575901038448203637207973628186442382686163386220936021647830439470860105551927209129668803655048446464883105701666066989763741122851510282182609339960923529764640131667365213045049269677084507053119703541933309315112736576258741953427601694726623856323050727403583001526473213095183736632084616235495126858355755480122562160667819711366255186470312016318715208500266849101516965927382610004615072874247395882361284772613956430025190441289806281159514831845756121676272708922848412312786430559450449597309160705326098719882158506186710265535659230532611126865897714608461890673830219309157590975176198767690284638351077254391698370944386795046967584697101396428982113999432472836680413339023531446798243656691984873130246698517966310888644108294986708574378609381854176839072226846760851094785708560215657125121855761512965857221790835052388354132504647957925693457545491665616438624530283238403138885832132773676650956610932561210884576879603531891356954300674599788516452473889001899984700399093233982042178965148410335966750020765701848223416449880562728757380182924450625727334648224851107269007049580519384203152938128453911035513925491195799750023219002978143380489269525584326965486214751792576852123165579532925179639329775512711134975175900922056997688248846012516390484719747560382720428383484648251397515911071291307502870323204310581533978296852579608342194350762342772662701463478284335971953362178993283492078696379673297166210193772997288541342987972024324053637920883583979333600327005597506617812903335201165920826745782756688897493994304705731821828659621311668247149136490797603366691702070864753081181687592293749399904742046826428479094980957024655780886210640455817974373694300940060332163011693688359876393853624043767460662541340916084257112316893589820719681068056389045207040376589099342471530392026085079787930452690696946118498007425723227035212854433340574101423940492510101671247545854771921503211569180311977498633591499856058534896474177788107048530713898894243822565723599122788710255090532512734550297306157731687352040856951177534952738037392971445824434890643728143122457748023070314329409455979984982598889632259481402917153436107083296325432194253212524309499400709158850224562813384504368417164183627111360926570866443398276001035808882126643864533986414195411598458933570525399113417225458072117161947370124678735608792267508873302909473774797425417340381988504461458367386692632023316456652394102573989189649531099246354111320618617659711232416378494565354181480806008749261099042652154528673059975759359373176999932191104617052695816357813747124270816683448013048601461033899247345991020598027368873567068936500543434668279130772419142438936833601733764767242257946869132713294039333777332540773339601653592776340907473524337109606713156699661493672712716765523578629256342929364754703016037947370451426702343933239859295912220300952805425572683796925204850582039434857568988753507751820818203446387417900313179501495736339762149757221711086808397389847417097897500325937607546790973906948148801741415406063464746403532097688698921907077185684292631179425104789229052056826210817790168550786121152680026731044576045725428086781523862446208122973791301717482991026203784478608534035986249234322355132834329238380697427684070206466860555696895798613478387481579943739512489460304093064614032496469306293739047198113154756098836823159589517596186834909863503166435146744355590105506554163220419858003415955446441331154356099638092177189606131432634989061695359370864574079047476105027184854448299071367375329165937599885719038621886962047755725373299128483157791652483620801150214131671444777317703604682502320530611989973815046734819360520878604425764866947596023748734051547200617333563067564814938172771768779961253861270756146936958106409744723837680427203981700480303652472941478841295651471934958408752457573144458398903823717728781028290228515213641551210745820182640782423446724394835133579172207848790053641640345943446567950454391649658221559500799578148216054856793787171030998955319674762100071661855151829918753465382312460718370241707152563057129975591268124828628628220567263743888805512997906271570098868863140985904269631623433211431159019041645976326671145108400519320745921630393843657547264509237792206285636113202647894038321144663613261058530027386699957126556502574254617254860293792518591575304832880555260349046649718829466506588815980982797327354552435120466991522976558605445059888304736983940628158639153191267365210778455028266568989893732491086988979108473312994251311538861881403751186629485347669024201956771211701181832358342375734695879891381399694024705668377695883460488198304305012166768625659496770516599657282643206848304268064156462710231529180429379806261246894881681282174634866397058950088906240809639567574427148601401959526674337247501086256603720623226695098749842557588582689469639710983331316169380104112066903024447755806455388030207399773415294967469628399177669422059044369357336182689224221555090462156699422059802806656849226488807433857608631833909432523560106419833659906476372629724236061408974188008230057269312198339221142390302128831227057340965856847969497649408935090998008050667997663453331315896666883807316791355257463365782611328116083562444762781407741916262171023318801569807716113620856417588958677286021165146931346676576935988862452725527173255645566341217238347565183161025216511299932869220567652582784430499031780620950452695918191736344769638775693787933190752236446051508147989235552461612462372043273233013269777023514806627596080511883585053001695807381435792949132265423523060365031040654925061749419356343636472644351977836369305648674064633934205218471955607952654957876251794350150050847482163606900131867704977492085214783022210226056945148294995659479373374343972546339851400653061304312323105862017479764167905182630889488724169535593501631663923758025979424167333345965093670181606146546916362267069540163587294769434176773835605028320815116282987599439523343195039172960204597298369546501968912107542802182524307201752318719996978402097198109892827106688684050924238462817870958781376779530234455005920942761255617401382749141556452001347817405835708853267603166329455245939412628235400391259084918241142533971847213111730354221555202270682823574475634267567215692619005502449275521918719770606277957419207026898539636789179307208685211290327803176781514659108483707671205210166953255198606893216757903552466582743484399227479404819921221545600651925048665600490980126926777190864707066940357779460826860780987463990210749562162405592969619608394126790441672389695855427993102293891106080239061049998411921438173372452688995554960798177934639404772565923809440093387530918280020631136912699944683820570634879819719516543687045540289967703203022174515435880403688386854293308642215013229222005938499223234505931424679090885302517109599863423082072865696084343544149958987252083582948483009270827561007039235872805636194785032246368896492773090734613380687860289861994678860352188644160263234108130814481403140514115665092512342716766444453326463170945927337819100650446045929969216900306898740531786300879065951549158017009819784566820525921485334658914621114428956206958268555708382489924525279967034241573293284581241621250846065967805812011689811420682108514187533260191309125129436536411429674632843388040604178734186249149637625090159056668455266498402164202390901068459013554739750355763078521456231581164398203072529407128279657126706203502288157285791282747111585157879555795579757873319527697885449876111846813904738990930289048923539930401299612626509095520715115515619079032641734187993494629731980116684648255552354553682392697052766557270519353899126586899261732932476039640534024599702005007567313308247424178010823925634312612436201593404787292336639640173279909884447469555711905352033204570797045704113631685200571909187475639931636194833577276954148078469978989120949383263578974251603685596892238062574305295256159494239074435896454608976466316740992323850264276296900400907670096977813126527439767024790868004809400681205891628051003573092464541972075124999962329813874369334808078834843504359451164869370265491063058401688332361443952376075530426711114543124307279605860359746017177957380439078309237018186444060600002972150823423848550663759465105007896790389583743351314378244452758010818157581111475686349006883786680230562119632906553741707205415625579075503514853907498880131362843065412024555479691107282044703563528860759401142067972144989712785007352889348835359078578624443252171602980198122746273548271938133580905228775260404539667867250559438821060032679436607128285242748927743972246275566739796469749215187548881990016019414838645571553505024070058432767188050733251202573134397447017382857431037557705689814998087124454405636581368438242589695862211064235652305637366125471861174074743419305915107341975856023075358868829810317377214659637892486699949476767476994431745246353389365852816849830648309340967034303298080332837905258026571486819446360941898847095537318544265949409755881078713224699670791024443396368242791009572855784618338411998683480155104848783686555190697564094532141170373477211055571798595127017526609935839721423466756588029566309235877705104257883633474545286622032043582343330809004501210269282898604544298628663047404307250798647712655700755145991558772904077124596824867186790029540469549502537863075344767856139225930817286971040221681879497994501673383351420611030831520427227768792559387913888809105543804162277601960420489448308571123841735785795741742539005509824843953004205657348884622276235196122178356934820616835753133608749555583888049331144309248224236829807919429718763510450834833319106671432004861439075718932728498404639564171742685824895087502966516187264988689115478301065705551147629920927278855654661112646375931790717001205361436803615396681230036418747824410856978814677368903307198139811042874319722697043375582986850536443238590669524693278182738762901068930741611265876778274861287353901273046074146035210929771053452022523449184191014290832996698196309646825286449567923215018355951195674574393882979479699198909640977960397098222466403585473930105973817132436154878867430797851623864636870766039850887903652871492888975480481445386128480100728449672133216821300091110729802583321775087843396995008437263072958765017159833201772110303722081921713108873771769803958658810092166413004807229411555975071953885207618613604170044136156922349721526192249882372153925071361817106066286216216977282582667798460348543642899623796353535167333547571478758416853527039286491215136299383465515998391060408578525845171845417536984201910676317094139412720772438975911654010357291119691703768337018663284654412585338398334503703428695070314509504617990372351748554533358013209974400726868258003673944784353344739213533442662758468777262009329339988427096476451359837140918922668581259511023632430873476228883086541696207248983489428016922317101897558743976208948252417001048384885070689110297753334810683193156831014787071386054794039215225545101502103856543111268298991203718936496423662555776068535892802246081261628254259346160830920325355708414318173584111576047092638210323859453828436428651699944338360412400617548481050471959377341392442701641799136666712025210878212137593611130244198401853199457314011570378284897428068291972387580798825996653332501517369557998335184237664828753608149975846419646553831800387394833893219973656674690693534838631221647134762370692526960614966985382513185808915808596992900857830275628517946586729504132888199991771014435605017326427739263928381163277782045128506043874249212727324461808346452546420281649270130504669973522218969077354336391881369511160665801151074768155722597717156958637862417005978317366892017927133787903564355259965221947353524734917506310188528121389251272335529291301424747793882195596253890021598601335175885294097892506337852995804667502084003381927435884945259612889313133960254493171968040592228601432912577783513990953385380054394205559962625986294469248449667750937700011275140275705249902622554910880828643341832455613722556417734060827442324402964200328761428453191131293867428010987964548959843292775869446583740739994675840271116936497647467458205090560917263155902145507336068235844830381939553615085124307538237490752002910923309551949414010422719641627524962936803864111431635747761811395160666879485934590492521625473042941108499473766221363226177413632145898959893478128008613616509257939883946545740122965229407410793694587975221392935020544147427111454619160261313816375409221894326343157290308252636092866801493114751804829700230687800371406644161463565274578525747744269584495569960172376021075307022456590690286481037166694332905144974289924478610694591856326210689672771955665071685803898242622978148229278625048431576051369134125777471398286885331719363643131320260278476174056832963358673123810795809118183949129773988948995667506196138748048351941381347240189885042453247931680861448934980627819326154577463000815612255795619015051231030737350197220807645736690004359913020965600179002615444475141441016736275783032602105339268772968603622482283800122695828989787657437680074603949485885628777286939691092040299309015489012228770793696678960618947230982858416576779545986443614192261561057222801788607178716737499693163058690084613425706561307096255411461553932079672118461273383683153849407111349965930234186694204081533159449295562826398880124053826358563178950212828127992166057358508677965251116872798690763563015539116183181102414014339657624262739685273517922371985031715139499203236509326746921979247624120239866146132199548979316247983837578031667642953452858404316306765217590604863215615417600621866551898756064723316567652725540524912944897712992674013089975726909532986049825821306285852551668658278441173215970275336127372823864956218029373272608568387454527263530100220845982842100490579274161669829601896378906968428417541794386118587798330671519330521064913391731211581645576882904014335394289143296091781073358305198714453373800834263594449023983147924769485094672437863043939742176327926028230139447508764220956430581136831098609820802667320003529645407823078554432848140895645727631327571653796460217576179504511952627213056339388422978871755454722345785389859801170637297754779037870654743986991579271243004659514416578235198074662048086788581873332849454218470141365929925385796257093945541155967948611018383881181556269720077902960947584062656854494023005280310772529572205419114963107684306389921571862272740413618644343485533754931818509527323012819242408915729236484599898241038397114989448938918899570172596862156974119452010198997433521500578476642040485412341363922962034291083316138310146398383902934903597874552590013417025719267631813824740707113096750931548805419848673320367175032316658057741086737582916016651638997571979427326537088626949512356178428259710391563537113160373397361007408604005890658251997016648107142515934716306871568842969111728792127060256086416174894400075180148960048011982583110568250651278917906200667827514672044778347712202919144578346806988044302265765700569343881615375277663115447540187685308953428231264494553538524717182809463283496384879520281183186079003783562668959344659137849335253691687755114381177562970986217023759625775148605283444438964969249694300353538577052407946528064933276969853829397846379730092463223872280892514118159616406665922117325916504056162377360898725007177022915360216513937524472989712014214466801431656305657644442478307947372290264247127877641198363691127628050731704680897891221282899475760749092282664689039051820516335241734973708831327176830913444320534985997423607191749132459556536838428266005516892607151297043377961224467208545333694988909215719147810672321732784476939279819758688734292539505344112628650895512526696284409042656436765617503105709698964757127184061588803604663148100833293910204577847949566618934917655230856021910620486610246271755923374539122281717058488115324815143866549313576864522741959476743621618985926626709825034451735689723710465463482692321703275145841920537845597852867479987952622693595735433095602838585190752120493496698071092577247276380865919460178235091834000749516637344694939050608706530061304029153490384835921621442872296431580531417266634689043831534878148338451306654474828631947763163475865871899549180526774447598281118143567250871416087403212036664102656637416248000257459053293866384629849493857327071022615964534955651472252890712340467981092801090041635658008785221304662335233091198158013698334896035514792720783279747977653239074531623734159447009136985799029993753289994352259726012618688030029280511113958247840626914110339017912070195325755423353429477734614350551636553332556243512681038139075846921761058247928437885423883815860571421847047892935539862269760730166736843007733598317764272067396336739046239317298791646465454059382749329848948213338597731695996609503234390202649447517726599442108493667912658323588904212427755801232982606950992847007489458846308076713018795555985476600933262874422505308485022323426328442262215029209565992078994798515698014144857241107197000465799766879894469145585978600078134380133998969911049994906173692530579589546694815401975536014200389154032459942408861404994165029711334161719398752658196571754617947908538638401770546048266040632892262353262296980870897073928463065547133121456075753796707551448340543590157574645209244149743463216536996940679810410173683564652875103289267530801438954844532846547553456002114839462830089646824121632245721547979484614891105931669384116774993065191657460365471452717465129611121289344363513991762265166182959050085731040841787873001342711007161332099590275071812275887216365053345395152676107489031371719760130033771416783501746541395623783105196845443216803543628304986270209322242602399986495972661036092036157169027158977767145301547557068939010381733854197067372952507752382442035366753129774504321642496088291575136618743307448062770695722610921863673582933688196907457378029285733833933744814555006106519346809146527929425217624383748445914767444351227517123832543831709859852852385401054209859299884814629269472283607837464811863109808869410430774392932480620393415259836796516536428963782611281093768040176896316292943709405799112057297700009126218944814353075066911650959769084493482481704385869841073659531619713009659230511112635008255876291395516481278310152793421946538135517649121604591662871036295277143774280843420479415679839062441539859694742898890996239916459493615567449580652773140680417223567535835739267394462990519641659165349079676827068028810105523206083872386822147061843548888570606346270921282235259328222729129299493416075716932251926919276572980731206037808900019745398622531088873718262095135635195382883689202015985755483827904240994500608429678162734338866454903139316487291419560697957787101276058431231965059583630961161416167180241055585187266616645444790767016525975763969017037607411079790130416936442154127522573914166800826442535993027773078053099773619787107681301374248993690004911986254882424998499058507126114246107568014457064000621682006172033257329293398644271102085943739216721786759556759448720245374058409733234432632527428117856445403355688613404211476416746896799840006012453438378445099782558025917955024885946566410999101853982044125868317069068859195541220086287282044785056025011621189203953321641433728276208827779727684827126414678780337400249790733941761829428261724091464231895359099072615961464446672349332175241025900021136462162263240502985176892059829694061115608853037875578293265882691155114211786344186425513197480599459676684578877192525117465612507843854533143988877097783098426860286741751046380493869414159397338991194218848947949181172232439545351164439661719066079724932821114637155119844961046262383303101301840138093810584770926677147644688838420701471142558332029729595698709527090356760790322435109922616373080957898678521709154821410085257605679000507940378429838137226547606632636854453237778015773384755382886118632719825587416714662599302039449590184993025599647258614480985929288041528918950470471271140600137911420173156083680045008533644083154125084514890397451085282507732401900242960742088596279074342423948537286098787764976115869726569226863656616041935341490903647999720417671598157856728784341587661421238351146553821846600196974377734961600641291751510124694189407105309245717602041393744436228731888093285891054533830506522072937561840719789541014382537879559198241743620789191912329220439740184335653479678786376593256596185643930719683202899363391020496578611918575954416570740746618928113308697975095936615400266200762268659913935151511310739322444353774901234619835616071086331115541971725954735383678577087392325110371756849922320673274390781516578262249737109192377276821842144234942589406729844761603867161763150938303924724611975935729559168953300861249685755172057953783202250395334245115001765316401375745789995672965869132851310879394777519228445688057561603942288266585341126066672911151787894322896531823360293040473085347444042491078008895338954752274955145906581392765728173412513898558316449218180604830229459822426083562814497729638659828912534410716477338280029433581450904494716098673430982301510894798754755021147559446375266901716022339569675097462115758446482314578320164964627628666873013979159653729429394028030724789636755241986038555405510189211120903951488633391158854893592304339728672107934874794018161862604003770987181600673647391397918326296006387528870969974373789553714794828884822947673282489137914572896659128044713202661915672661318570122835484787634320801562763078650990195754338627811298023870272685089499094221237130805105604662967606018176872938348082748456360208110426723169470318867053879071100398177991280410212370694426085362537821115445180049748288531575803830952659784312971489669869159891780084759761790540019179184687722942439956886296079335540111208361550664360680914792184971160454132614125733398504952979989084013353306900712196184839291064280900030012765597927851304955293220316384328645403608854901561190333182078319648414808490717354720579614376214073629588703700551837502986938554509460167379599752582615719924524207387109320751909276109270794239586948429764264217835497037701039533751379757623907868299242533039084486229048879224696538621804121001283503460065583985206189149157066517624532646040733930530488664259759634584080083536438356574906301901776695347427205959666204253029288464409516035632241358306926975137413744085907070027975636863812964197124526637727996698185626681229207395267258800169854520132781754751072726289762641438518805551866800717435458786632240307351962386011903551927169784592597384932542850501400180241834866757583007018198390769787550161301193391135003674159914635750492927982228477172712497728355306841193393834948109084333135130526759124913062186456057942126099759018374864375057520739657614303346767014539506110060123524827352322895702170700072107083050809752272431031701639442662984872962025223548669077742923151682376715572171131494319846096199775487808950838579465560629102651261141179808996603793146301748992670362422772213606939491514203305923417648604352221585244648436043484360475356357781277215668334730839054578072786128134338308337128835152076669808015437916009606398114815219299847175018155985229998814610421459605537981667207666386852922223579747248144417380367208984269491111444185974380476366719642596775244190028493680770425195106400151161237966121197158211796650216999416625361316984418031330294868037413910542855694387636543137654935706542237610703331862327286465018843303420900492950290613163265631639929790436274382129269425615153967222816653178177217665327921202771045066651392929203460049890573715440191149262133416319170500006810294217937339285028012816683546964486904603991832617843927083176279789574094694213701761252717160368745573991111590419356784948386780354870994257133438874883443260613177263255652970742079325017873077838599170502798184974460218979932444738763771320125358102723803126470078003874560152076484674467406924401025106865780581946457251779730405386620274201725667615824868783187331726493439418596174762067975137790299268563711593338902581164833521513993779796517002204651823505030873796159993689663799885423185163744343557876595299828779595136548663902374563350920783168828764449823114789939973491598058619815333439663151268466340283786374990480166476908483875330380449662848239577889787380839583139929399235591338672227983352867620523979835413491316921927159343010068413131923319267652653564171610324756006216858477302743468658580650881813829382553485104255359924413280759745879434707174553698272787394730325102560123506062715974949534521479240040981864736111916846688619552114606782644549573239421992211216714025137678148181415590308144162300378214426485668744178836975915956266536135690855062268770741619573099645806414740047763646276580167305864878014896638483113014123712728176093473773116131076551492410704145992873300275777581805880954464505105357511831188479358804949573403513345823027281217458695102260988655118378709251931775526137330174500015595435846385192342124085301144262253621697145152913008989756463133447050619576285073423086986912427771054318836754298235856273405625831610225394372418467475134096348787574401963280633772658063462038978975458979276399647728576374724473387223029951632513447674710597049260508781821056922102162830582238158725232698232338360262914593256587949988416398363618317066386125759015844396622862325593861835370110357878958709499369123696184023281585512311654416016487970145076759634417933904164258047501824222346231530162709459531743414802119528516452602577200745651900338049133081140833564273539454893814390526099326276575907510141526885500973948527014199277214141598998491654803443631974072560693583894538166293368724879055492502371993382298071478770668934292686498571471787350030717362778271018341581407542246982046493997803024377110231252162786999329710204928396676244383244507084801628640432590223345796575730405757322952538946683301246547219723462484847817542325346590420928238065890392398398331756449701030357283919082785511696387309765159686763964780037653440800710221307553717091826441627001552601502643172747062127672158546366706572265354938007081700526023284850040426199603592551160531053190175302280775852320319897826181522007982539676582858280791955867935232672857878804816133012209845248708966706670368535380251237006178667737006788564518369698757222160381773704795482375905686500839314139265629911493936039750896768340721887948624318859917545728820273574601224650784406268571990648478354230920767481018861480897841076505721461681635879366968557361068828369428224977693394856952851954324816984780637938962356595630313298574416959969697352704159729598176413309185493528319630750747495526001345422531588436136906674681125572868910593296849994296726466641862768980088964226413823224371593143653764051943535284013679688007077996939142338934809960379450978813391035821622193639879841816380550940584335603153272504686207797715318849040107082855741437488427351593445192149119854502107455321193504067300007243838967535761619713017756455631273454789399739078666575981427954605888159561700569179326074092950293659862353568801644935700847732727097362800048826036867664065516048410814475589418358475325108438623480628119488740516170818150476464102559005009817043615512591401897511709565518494287761572732868317295582467401094234679485318882326601802233643771476620200344103578979632790748987205799905394964282961750249142469298992626656237618362359683151689080486562052053589324881235778105547233552290371424971569311606081256771185888534200742198407157587433040664751909923300758523066019243390806199050784065039725136594050260958582307677887400422426344321102019958117767273572068875222187469156004083179415480605862948962872948543706946557829517255741620715586907527211411893622415925109197719096465926087950923811338163228400787840047523277666903385140408045883160767898847721876523759481597148180017865682869178279376342560188255043169025910460469518306931212315218580007895857681177195641437682089606949030275564801280178214317330158597674521270399957153340227774324632265642546981872359166771218115630673572742646314181250356313985972437188435250345769158649762067456375034673714701098706108451650735549866602422095198774831455263438412683043838818669760035306894617942738121322932683825804270800348562739765679166184116278037315201586236919291606840818526101001371345019596723359415899228510896372684470452936237629147253106121757869916016580988944352357073889537944759364523943663413002184044978829338565896473215465360915495722641088632431558041921052722795816262650091227305339226877037827414167658243383143281270979522663095574236637072004611022204533159711418089214215658111017560433165395267216493894195586357757011879358020853791329723241240454535763090634047124297813357547440305595774898536640904436103733916000676942546956269318578903446378819917337460123725258870480404520811492222860337866258929047296021026789618714201526111989008128126634078113908882382964545967256998869904641167224170508338571834479490222006043863519293142049292928579262220551143807414705162035767384903736767283768742543626567428789335427942306232948010856144789568504500467042495716571132229929090376430538545348044142424212527253870947078912613934919847869004528362459014974469696706302358923639579761518141041108558020038284746994095891477176130297105134282090221842730646865832209676219230841006733376292740915374605749812542703175416773256379176237356562166860936866907652259732980671873045825220498433226711092257504320866319399860973617575837029800771728516900379849766793568697053302380584078342348648418274697949388267756274902066255982172844853596395010343878327550211174463713988476033878496022247890133870159782099496178319749177183643215622953891647869574064896455515341329557943430098382990512058224080450233099224597999208665251083880028208280595942107533879431995344151510136734570948907284183844040299694800827307121535326315819549599173575232030932547213089522217818424925573606925227521482719547474241571037620401835657260491117814236368585827752495520880250631838760966036285839738425938731577080925837317230464856569138377289712492353571863648218150908409882759313274701116628115863413407596822709799357522796585155090895619055125760504414189961632554287260589742672204035719822175924154399180490540772245373453047112238472109392771922018930681878294588563488177724424903831901203970099724559255090381706689839168135635570328918782520378700837931047692328775400766730994746095714147239879111318418264785459094358236461645653230836787881061210742022973125437222486350743220025020506264206091868966470117423821026493626517569609858459579020168754182989566166529324965623817375482413767231232265066618063603147930111253479086187451880103474131600889028427211875055594215351665875498274764549272904170844325642827852922159132339306247568671909140459708508470555511272104646981958483273974460850101690959179064699242871709755044370952812077195614875887986917352108147532580499745779082455435979483018195209463072517309826644970061549086028221076434795813207093658252560279368407914942229534484313715932524793353546290256062175203084901318252255125129044947704051625974543318599351809188614948575441779173857947508300199560237146922650340810241508215588709870961725431488262709334326572620346072492630118001908913759432338873596176595213716539588096992593844823023345034654463184948683463970781866306309978301865697574178091504587138194218121377293942660867804679514228745181692657000445503510134836055575778718128886592985897620311657905094632693061603817878386451549360895807769331626690973059451043232879489643457606863692326624792344592281605670489901730593508637485780159145786756075363814798127432287935620264605779622744645055087892195678284414093928898428093224813761505914985597063870177135981956148633014735251005950156780196431949836913053841189976107202263524639334600999114603967104741164044645356911630673174581335050574782300220298004791928956682645597371160633495254725037264402649214362041773404532451363023801415335424920038185599506047595788085000003027035955895615898499040436668361584889546230716387036299625508280803374275433599653616193114601196316129882112732810009924777288881809315116271251111552704522822752820376337162919526728299003161010945182812343278684296976921123432990167461108835905823518359968029777343012351934576887351912184127010656046558251672578021826829617433570346932962940021291575658299555978754033877811669821896503061994424485992054033421236072212511685222102020963051064662483242458897231380063982682798725627677245679768222845420977989103490715028860246609000316145127307650563160260018991482282313381001244879184200458091024449938148403878992293234432643704193763959830132354794314189096310257099481761148671192811825991944982140530937053499324310406004313406167778214371282642219876050814549016885903306747495253537561847585875443723826930344168642625071948538559947423989474560664846073859694401888838321366538465669874204123035638662343716103356302672892423603156777962857583720528316520118719305588419567154028265149331603096000169522744007686832269923000581621492199939373147590387917254044011292481748079211369345134623254180563310583071652203220352237656515171296378129756924675870944619859078493193921711111504814687598424775370724057825476728722896914021732406450857127106904030332519415489057118950144921887252486943531511888517221194890005552035555069590284926205355100925922920837283172739835593384144159795368112495476372530340135145252041506979497728306150483980855704714138274244187371805913652088685417624358164546585308814506676968291432188547170121235924091615838224517251599232710492509386276205682851700615858889924960863202572742465212819097835025598120860929687964318458570088420905567090036360551931155880734717630569202579905279848342756397507585175298691486419321279422247545421058119007680229911416859488272108118363807311169863224973158275072412302599891508430149630911928753166874119757915088158172730781453806083039037161789072856257547484121205600371661926190165817611345407271907865797129218668827544920091009684346593460477905370027210776883425138029541343955497864176541129015821827612485649446436904111874229584814015533080831233666528002764009762554086287266819862550562943086309716148819228835210578223185239829489508434626773416580849818002781350645090642980452771781078832936730065086617882734432982632158334597278687147443513535087431661177712254398581418685118989975322879043952973767760120310531234067271549815612103444748524481812391053943646408901802615409337441742173041830772549322692523121223860764966633404141140833643489299604903857189581574337709266944750815205849890892324553459933787234338392136134306275999254875842473431582854891970268931344804706630319752769183969541893522154749871742947101207153513636893894329022537621552879888634469831260204433405005474524261782297718370056735798248071365954746413400468057532539443837687064964441560323598091722529822691001181699812723931566207999042145500503496857064391602924251597542437736402733879949227160652886415616603022240813233397966159054094863041482252023822991810297228105403118430871578240670602110690790437813930730516812916221086284042391702652449007592882955457569877103730465452394815084720817252421086242449031763496073068310828612484678413391121476576088382797299738764365222411598800106431114541317543248408791373835212278894555655773056037677721665599623256886976389912414058923489362546942756795634248989269462612129760161076456193177429752313254264138089597919691567701473141659951522185844406730796304998208963076952989303946200587087060788630134859638439859869573288857568862656312196224937995778163427833037760735715026835784492109355191684011719717830928604958716691581562189065032232101094601322975111120473092736561387423324316518840525513968964552245817398212689396041505207486657675796902154648508806253604313427605469946622404151993345275988582827213387687760662774283927790573943974175416693596902407203428812534694569258976179474775698107687841200544101333581572643906533076753316187635218491036782320834083329579090928584565179564851933897075400053421223355625875891748954096202578375232233260695303628926498934100562783432131136400361405676636112688525356368604932362416221035956056413697381527681406127377166839894274422128563310898409673276385457430887791651850673076281738801424452600312736471566397114712924522268420032536210831791213935735609720758240409094508071176248380262620590488401742342707681877805229527789332205044269240911184866641644483551776890274448546425843653890230280429067177060372172841671965287087525846761834760922152399759533740608289508045938855883896566051179566746980225305082236844625722807180942591529772719385059829954986182215057285791008383657771668694978100738894613524904889514225712211534889951021880073263835072710832433511197879539657568134774111948329182125009579975814093812497048280042185426638355774622881064931240052212662563176073920532342613231114922096740954769072561864711451918071244985740900180502241006086980347132053215912081201428837778723920129584127536086568220737659015238400723021185402436457940903196046830012433046758326240231369378935268243599505303150100003643662948379997945123022825034329658157488720637875601484567475726200963688470720630400994773835643434346983276634631956672744096636861546534920570641951742371708323766198163482107314075604730399391109177855219708601348313622339271434515543862091978299379543781653437196545132769083958153161750435929083112103422919887461609694694403177633939572606869010445293795207218782527707754192948993599686771406234826460378506904381980799675418777194916101547501145018074706621975413960722555048907908937977775557503544285194030182405783447198335684121185348539930691045411987670454637225950026437014842012803915321600484575727005205365674650883963266703296045892046166191446280732251031714712361302432526969242012029987772760722637149907238526746865962826228163492216459680104443098977124932345328817760741156498876309912785804871360266653123503346726682259870639250431670741306181945944013207448121239814035656869510196568077957513346200639359184702163067279567447935794833467030390832703157702570089136451654534200529312882931962012669928998970917502914027542571812156197289548582700751901523063928394215820014126798460670405359887576161007864460135460252348203049615426943767456069398298546687911637836113213387960051024877648071865257970373133870808874105535092755181574484442871524184122385375017252878611160932722156522408152355497324011153091233568431664317417689812552287560902620050262773590121782691070306382536629745013695794074637609223817333122332038763230220370826186398632431666505215314999454165975447630039776030224387303151037928174016573660747072509722834711913071289794755394324027328331928571839338027061062514970830045855652644908052603330694437219298379933605662193682152154868006620108269526100198562730318241693224043412779360766272811854839142758788029435154539586951668528111782004417534122199901430097713413816844608828412267225437551852063965051928310702888278368247497850309811119139906036249120155695676578187621194473935734664321557802286467016071191844012146738518718420586060394802036004159435179795489711132306745278874914014278183578466263200931877367889238502640647538315688329553255284187786333050150154626065144325864951235610202997948710301449772514664570501637166690719933969078711566340513375411426740040444592328558453727631559932614198039434400834049749990498409226718764121690236620761719671024115079114756615274843747060553206408572174707026750242731000349321097602077047590923725358969053102922073501325030926409016240035281969773881344863025566917194605266294555880662565242628781560169828702220576748849961000199097384962800147610033106509326931707808730251792660212940806890991026091210880072793358535169198309760831923293743641745199393061005366099500848050938044236267157268548227130347630338035085695858127458618694561935245514809796465805283379804814802884841567758271579148774770608823022814893409977206376569002007960232231408971575757386989691165399984343669227099355013703420698967921529203632195647550017112654739158750271636844324352802180388807303071523570253923535670545796216687779540362380736548626115917070249665597057666423884714231946962309943809112545185735451723109826517508757817541412234510636540082152144810491422564116891482365470427373264887323267781518328550190939292089991337714197809865971077643011427466800088167404853740934168155612128820322201215661333368726521476960544519454178782307166993665012456909780240409042190007476403321381819985607542725482663271764886424411344785759756397350441699565570194774072868617088645494680312097472181331917586224525293078777381954446661059931327908458740346371783334481736147269384102813777569122394543932568187147109241441528090971546881649808454187656619656413579614790882665004183105857205717620095594504268474217961963757292689377727639077349384437294176218618012195816918886059298282136848664389162697136203331381641697128542969513883819545754571887954964152288551737692213048453370372567363142796967231290844140626428548977312433928053116793330777704306188160478780525523763886218336864192024857512466251054734604044841616808774934713778344136212450355856714411032946066492571151372481906233444758096043037689596823033075575826700146017608326798918896052333750893126253662102922369843858312495717037777063705918843742021699796476310722188381942464951913521619412528750621576138902129599483671441046658993165130926282683291156201049343746614918201972726855341953682270052154428305269319243523599990695460170370965846577808798877643429972437072637626179553971859393334903924376401494897846999650145051251675155438379356603571710021915651764003909458278154068807982311960989596530198863922328441046258643489740613429511816497124182006585529976709270512634315925298745248674180517558883924647301455281365817663060081782126771224652166435153357014786298344694775499188845175076857482713015071180142824462048592294718445664253751238285315362392865595664312581554411144766468490560443777101825482700130778246025320510587080985717432867534745713881733064653911500511320791804029566542004978030000773292337476376278125723468164806765029238096876034397492307647957973082835043669915073630152269211777281306296215740453646798737325377327213291964450810161407083952052838029915247672728257864898372077035103998753672256146897050531523788689938478588999829821120822807016095611012646795864660785036226972246305001394499112447664667888359429887233266832681188017701968888795351496557857028561188960134535669441281125454166325513445354396516263102061941868069745486970417082514683858727359337102893628385975673609575266718983808791918812724659857675917431750512551578040448982413080694140173019663962226258299732061046767184193089523526578596967633770346705455774417125850658995127422554304610436357119015868937749308774534998976652734889915261808110713520557182867175362082491284283092038537616659749841418674354312280399208620763456475880171035289817879823801958839005401699074400853768179006141570918560635231949795420406188886137321133028792548003611509308125170194291601485851337094389689488278542494659875781977578114352798194385462691356558054178841846946312710074113628734643245252882133495623144044141829629494020487997383963907579187520979419617885062759498251952552971053287423724962913114388127551878362397185150204572216994412738538141061425760543744134058254374445952036629274748111910512797675711992537401425375728310684110738101497972978979317563280544279260819357523896874738090167600790845626522178609820367026048822103242806003182790401503261602074947226987962801524154263102576958240784546649894565887786946079520942531960207867766029088095477122929653396122436199113416283144871951568513264291112839897573322316200100144891400004514909473844954969969411868863364688910156838688551711656152156665939185528230851477284969266882295077041222732939088273034470405926358893726900729954603604721626512447171003697759915441361917483288200183388384609336595108462677698972465856627234518441929832640176969092568783418371583586481236424037011223889011986282880659180006950660692748480087082719526609062050566688831820164020156483238832357420574860395297631316128441775431313104267612580877410156874515363318073230292759588364523765264504029147082182210823299544506768345415742624918475401814774075284924483484050774925586326635061061014237607266746786294453074056256125311191443617015795899071762004230456414475843220315732171023158039988189339715312667510518480446530035402745911933912553948331755957558064005488737880612530537565438769277310415455118530908071327496217968789300136467997035110626237940639043674890429005019032842872385376100972413667145830744392326362463975226421251403935166954467670450593949689240809414831968977152770056222890886814280610190517395691887635203288840596449614434754435285188295312775610320873596021410347047819708015797048942185153260448757508860873411714386509781184619563145947379843794585668203678463153109464865879112700317151230563482805460781398763827067840620206879686886068221208926035521867375327354559776148432118305864488035894530147815190680369138943594846072445687433615750905388796027701150818739546154915091101403695210854260357194073523086055965157286102712479261442151037669294639075575543881246161583560004573508645170592557705484822732749527718431065166385748368597859585075464157637427840814913333850749071009134744987094042556244491562953675354821839621212927152128710382594657983857366617550360143247903677668067160502625763445814650779801673127704541994974973849502370865118944283144451836552648061454481425959407387117605776879869978801586586911668493109621158719895597452049686054907734269980664268263822525074718784046554435070283377542793796845319357562455131908639894666373359561771520306247449871589980186933546191927938697813691057200962503961643450830205382762166733792027238742238739126828909521848539826424206533649560849560013349827457561233763200944701790691334464383337910311453156524587800413396160513328695520745437682754219496234886432743096122839394739041606092710243275937769769202582766990459422886816211230769417267654067826324206853657462424628034880563437175086246402424598458841989408122821282372714432419333342047161441625671567044213924907865626745541607650660026119177922528808530857142637480912352244921314417629864847672666768568045933361365397056538478241167243570218653736869448456849393854968909904376783924269317107839654048945514774245029517953228822331252700174448915068924257769858739069361190090824608188495195290088019679286374294360095971109689575395101774003083535818380220720142905661771388025570656616991078418722883636367749588778702582318357563352325235391356336260041642200569478749718096857156521193378783898813378717495212859151509011764794182047398137702312165063354055374164955641952957032436102975856347484265561663221830355880953364665758329017325835099399426922543276055239202739404697678128098798406320858874749647870727210493426577391478201130798366376591942660503508641596085361755062267585892197739811543080102074932457424034426978189105011908978370948056726871159935039660176219223734018813092470018574519143034582673116035728226298811222625082515965023809263593698878891533932523447185046745871858451213658734057691170519399621543578327383526803149850343653624066566415948448575345422890404085160416385966480909182758502277803382149505451299300167555006006729173908777374421208431309902368393151844249639755062087556497381798731347535888115329060764172846367498101834235428294051889779079807358978998770290724488013173910140313720225883768190738721132777857570027336714727291803354900653532928151435280212233758547580788813614626938149605397148238380356750754989774956523028112517302628952137202548786657887195637420121641927046756604334279701727117637073229161427582253535739417714999927697146150689787387446682832590046982368431808788574627941819088433858467182819458270946296320707337129657818307395917255611506682462373993142443997071761002291365173129619160033998177385760271417944006533461250345339401797542419018928740576938565429352268891811154841028642592536509716188152829876483938127836875304504864725267125642607254880367527476333856832038961320380042807913136080753886722278670968524895330555545704345200448889438890881520966751250570775053952150005462948324225262733793854392795153422797587526936371916519426890725445751146291992264507947569865857256832409478456275587913886974219451224814325849972974057373621408050817876009211063853516357847086468224929129868751857211113228135764203209933795945740307273134654343700501828202164292093546732849238870314395360501472372159551210677841248159281996705735412775973789400946979691916603058566205390622222487377240550079602280252802530829069921327801762614096060807072757520642209215142027166315149239396761739439322962382745371471603670360497613274375643298606022153491548822610606861743733808657774532135295982637383034538112439398320541276155582838774576499305334272425902709849746501185727159509180083390298914617619283583717399386012712198001297855838321740092543699687513629560560173408479624513706573384545105573576635407689616878106669440261137233532801358614920496428746528130157472213850986801324180244608821534489857028581510259300284297100849160767919114508315803073108538168876624856875066712210454222124878740200158989406877601455345966338461037944153735700176914461081755522304486929571016573135920097205014767550810035922808468752918475372296910681035421362359682758836785238121881388588716523292351063931921940283872789120915417188739166157898187896150102898737193428338650243656074217150741189033350379579530586750529258756295981728322432017883028780956607171053082115695966416289426590185443422518538772681725429172917243630767622892414532705359118264584994986118402612847688800347705499892312940906401446443390347873286087951322513897775344699084554256547704216896149596823225024409449906393006854522462744518618086391419190004846378204682860322114788120106430126422096192939264152016077700480894010365838231162926873378498029981728994538343552874351494684609595854875645282106702132307468499014486893471944894838595209136960922324029333382050922272023059111198164874763423515972958015255999647281191921522039953839152654533597598323296486011783242877106182205883172611464452919562147479482822651187414626892859309134539011478779788817822848139636197831590565850321909374301831766501101926292870763365314366522390557436941816778427409732519045483345736713734428402617951488630763333060202803788546135717623707465181085049292045980845467399164536202671554751628448587053387060589571232583504885886039113912497708553690547144832679858753702503987515594932401661177195423372309146500802651757868618750061336130268690540666299293129498325264702336610260991601277008204682219432771962216800896335959434563210801559275929638303734409729213214740690055303668312726630037580799904126939972753805334915690483325453020211900851324643674485458454623987486794069189406143104559397062357777998186017144460532365309191946405428898097816479988825808256213591013186290308662696523249578004224479233046472037956201004191751422667960582620383620087368862520531458479486488878837835828493087634271537778343983128475559944564610977200334090371463436343363378698496733373599828835712284279080596113198412492692467555282950616894194573597787455905558852310470403407245325975242987121209122155667641592230540374623899017306192917958347141865510396915278364978997210281147673146782320647020907998213542946939081694689749894955685468054317773024197446059760734915269925803532025398653008618139316468541621506747355574387188928227106277432241651723047296787792038882519316762860770382718902571915602551119733207039162838270594292396364004424999940802077957927813387640968606790669768417191553799708387363212092964906418536740673238416897660689103310775168006258161892397862469600190379610094814937425291873043581134281680985522899917376666123099927963550369427917751864948090822929602233970776318279997232446410836984959330924848729702449610037213721555714799653497760423005530792009708577103834268466025692953916880086798912820921932246474590001903433851301849928082109742598411030719854195176705210724256966186466607597985673827423579439559222380778208521897950656590021046789154284469254728470881543607805228455500198648073346773131960823824897703713603834526428117580678226314738604605868494965087228857036148047695419304842368306790312514759348004043697366471469808689012730377854883122562225272456688542212114906914908256823054312877804151884439452593252266999533239631652639246986486679735545740973887787179140654069552966963734570930992872714121620390483878058596341904096375998124656631721878896118999029996324317960792933497065102302632084929200104995295392177837368388457116929824057560700427662263811325380964491207968661524236544158006912784796788380136036493722166706683091948432171547774535266514523493446999194507952661576526321048728250313274352137892957684557172766654036505891826678112778628392815055109204508355389603387183991757143272009779459587256093989033169637977284343190706873315107504373544910191274906623739778930807090405252960395518972065763134241788095265323914000998429837186095529988717849477198639703140255531698844879448771075738976318089407049912226401519713940529018164781436014296046741407995110528447505995154341447303391584070079410819539660663352861366493719303570217895051995136900002663038474267606486766083857752492874004619995284798052082982049196041543208115594718732301516498850820702088902545015932307360553624777834355695859954779969029779422613905029754046607072650085855089728127654736516779782163733027584501915554208783713603847054570535981404393043151189016196945539223504092327193955857568619855887056655114298803377086898966290248045146650126421569931540198287234412818241042911920943306459328312421368078599194581125490499168514832660655742032503896537448127895897078437173300541065000723571037041165449020772891331278329727475876037811453354992240864887039079336728809008001913129748550249070260525676504165892416215221651209702382431171290230886278803209011091138241252862109682136498952849602950232428346362150515438416401980127411607861810809923159846509158913689563197888280586571504879795343776996822901595156154267180809508576380688066053877515397004009984764687635089313000086870968287513803909724649492091988378000481044364142794603771635281555366446714529212752393753524987162283713622687543152023748349805430521391375672540643137835947585116576381212475355281690321316390245616297525945628359120234980794506019272788804824194801883967997238813706914833983021670080733229654484629846710755310091451012080810878964123673229975579996522383071743639072404823795248967972083580434825782240531020344113195119453614951793848836026032680352576125989791834433404619468107276537515139919998399581989047105140186879753255437316034055242815429018351135256462159199325402968633795945243761182690206274707379128582488092057955685390145811415955125519345727620238048972492917906787539334346696824838924823423380039561061455117643953812110772575944791171895311854671428558207315858084296612712191180070503092023199917027031883814121041944242478750002925840750766407719452772055290465805554313726319286950587654155762266757671956578866982130675982746354332497303723810474378234754980911382740073836483781842232516902370051624130083666202866641613211320282522742879468562828127494031292952992773793019463819187511424520220612871778631178048206046091404260105363734438141576290669121467567016496423502290570881288692110414140943841735862589538211669410599472262798566469144327012576215271161328365318474503238522880936442365084343801916542160110642540759900488381739230352337229961588923343566416349995293143535278880998864567077815732040470703617994535235043249161821913611392871992821196130356163679084648861454701141248664485747436473534602696947001137349043191211868506499643377278707840267432387490442662621418080445387322668851430119558930133293208541689459118880838221532881252001618411383828429343259035071328121056816741848973507742414191819277403553149925984621443868094808196127643161574160703854444511786046105477750378065027391840453549396578453312324374261553543383833706404545317424314130099920414598995702960266825585358337535101919850680652824193742486075285526738685010659901124377130526571824749753595675588710104107740839300232243721679274728643260317557585935068296378903154160807454272258997630906382751384162513454770358314453035433861002185775017561368470680718369912631458456958014017447086163390115748284970476166331496506280713619786843035628443417983048385202145070176684008751561413486508788037881891057190825285072167414106420094948090894600386877699707935972748992952993365949034547393341421304485228783822391579862969351476081508875445026720068617905041903126219598285493421224535282203953563602165031063280849841164498179581931247978497955657006925834590155577544575345793099943902487123712428967184757656118933506710456492782299410867612871666220342263763420373488352794571459594216118021346526555251768854923876503260604947795883217545605116345141951125696264554419081157657737376853831829947314535390058243131720547667535545576766836076424450700186684950422232489261021616376685062298689876572471998181244589625359008331739924045787990572507133974173693627807803488680287336981824209840617032381416736088829411151067373247793172582616039336243363763199980852890123232346425722678672189122368967108111953371679478484779754164410050967923399373883152032087979351610048385415593003808713467701455639451717258429518722759704717445617714559060483332731735775748273362354997995856937938621970300174694122473951150907287545774285911684444521197809542881640103572409636043847717169737386117997240554484122894540512189407086422361517233385964572807344705802927255387035601196374509001133951266137199620822514584634247188644930096463974766001123807696892865206459824381094317520842219835424275173865371177387942991260047892264082194528062285803142362255810085373578473430863702065371804622469295172967716379192672656450064407292224026117065174349754869786865877220536554374425196811164311827363940841153242188011727525617681506175651436977049406292531416636411180360285520205835916275501511355769499021761067763303519296663216309191164718761611210494806318619855823569798564903822939489997205393618868900902184888393043718699313207254490336363695626996177499277302651248617130830026558447763851131600989094829196229413531389855171435444387905611834896050124714939335946787937286796142665466344435630499400761139550697029172316317358645083487709162991575798386347564840084923028268195799494363165114651286875886854400053859275325153085860911799520608294649290219110782469655850527959116445140132120733028060494234220837150679893525445336185096133359013459566925293511065349016185757090784994491469684616409244519145902729030252294716781743057973717045362599907735665350542541827158557466133901326588453099472846528775125189076489640856405183348121980528940950537100160562306937834499654531821525816548172989894495118850840939467303585664849291754427060326670020477024934030748168455216219483920703711710128703910088795085101334855308702052714924551353765082428334213612961895449399914445371085601098622442380591272230448723555860504874752422150164076578351170452780244435356286427465963983216507748471232863952082029498421333781144800044392309771187344393400590126642607453189647842873897839662631602304370963539964652534838564570805193487533527189348704883620383828488539715081427824631529424497875473771566659623105133483715622300180185547115504672298338372657400979018656306184917982730439168761900681253630167487756984139457468169630389851935211737920641458130020997686586888177459951473714669374673382974994647646772132557919469243959851120785744872627009129384690818573979277664336883334590785201914615766481225017694530976813486710921333178668569886765790668728148076516568156564730562410936495998626246286529234779109369759300059664543826123499618301473219842050849029278356664006867199887063505577502558161452590930519965555805651490643846813638949326273512639524752195749165481420135185358823939317188846282639719984686600966250509255914807278174817269508059890573166652493858903152798093992250013120612603515691995998712761771315823935098072066179761169122345334607516897294338049745548597336105047514877819455949650021876289974421752055522675434181505383303195570923297757438417195737312023167115158605856933179801206705981677072455188633708870827628413463465637134391311467702094742690275505416356054163290215534974159023918500538227534999452738960593345150472195799712058362970974273889046817759505974852445581769281700656486328944558277489368583724351543711334896173496138912490791237824769287603920193345115699131784982455165635654207549268735484542077478020965249840791518545528638078502778147125066103566016895847695319887832515115529640810855114216282750222667475040898583078766393910682328061634763486404795775255740690290003412089423226415553128584306845531563980229270344892099376902632562604448916870079995876477368919037355327011033031784541370767122500859170433578046300846972000214830548014366568403728412348373100508966642821631657143449821683492433911040899158030697195997910904788970807772214658981495622087128186725864605908411281564113666142241885709945004535505116844787908127870989147182402681850210384189820819450729705017996339923785663186013362920021771656776296803051142924760888769356978974305188035806781935233224000952337618426238190170314908401836099064937826874904642677022044788149965121910157488125696388317386584474208199971971871315273736084336960433408832979232135134447306624165166213438183106008793006472489482115692502476926101462985348048609847595071738803745388718915401802008267463121655520546588792272913628773488062892661891845866101474911900784569239083694069593665972352253142868578897814029706862237206764988894141192661968695661326281855939615737772068759243687403770982185479461838396626964549555673105546107894731139004688336167269572710706288935045817664714136489259766314361759416297063249936813822153797153383024482965559512945518322545335951755549629148892959297522320629398999247775291816168633604771242348652833336412822993683692812996374597451716366160362386365320852496582572049735033918619867769051368617281572244800342548373858800139213075110043898982392381255072349489586919041034459348182842598040796746108353130379174872251921858849599334215391981408537414763641559507898500568311552885931601421394719932698337315710644503929568033842809436234916927571408302479330783448482750098018403287325601463685917986059306786320723460014189484873493179720707508637124699685049619470950493265777154767680936366375773064597126901580192599259198178550525374795689023384611301327283412849652251526824003400721754531194372687058677849383952073106313715792215864855718694599475503406405313793508682026591589911708423025811621395455633136015846753486538406910998621476221386977689551299184066560844665443980521011716785324127634553193287568411211941937617481353957440359449329475771167112614649270334817836775172307191626604568519660244404743264105750466497225774381196422765698534045865440549269198212380196288634043531654304160290376179102033708402704605807263883058266030984654876859225241635025213968768412411964629528269874540636915995803331096134886932562408477864522102407147667174092969585902388762294393844993542457218993081051447920182891622991935695525003387633730860758359213170502775886883454681895289157650840506067772573903397977022847617472828619897521220332758284339057836667068876739785413343403460045286489278527593945894788676080640060377712088193502475997616317528411511736716645402044150677263822366894430285368582864142173982184858454876437536852342919565752147820797393604343608560669074158414175482017485591225890250107139322013971922674413203274809844478498553224746484533249305525258627358026283362185280528023743168707313695052758640906491818108267155169923606542456413063956699825570420625574374087126483020059811697898180444761821236131734192593050932563523044416885118734388171412152546270190889759645790236538014061176877107129940943786767775838574816919971510935901382264526689645085325773731764958273272469746388774338648654928817213631252959327567648037034870554523639541580374857317688559444454857743899817876236800149936622772967727086403666774681068893643288279994006806100307585049277813390614892102444437701478944102129745725053189118969942296020667803955591528332122002452733067428035417062206899953405146577185767500495922949205663696191056126810235106041643769141026020426945669747036823884539095853272639057965954513598306212419812784073823200808387728234150293501148444072576851473789349206627538957751832588901866264844961602938916821802075497628736753430723047072692515822585946653529684534469181411646979421141548831143330697467603361187005499609636063147045717575869135585433396714836473432815347432903989756889088477764673939541823694923856531677004709332150716681536717868793351400847142255605930373452850764105568505629836403763216188145128795143696265225031470228527330913492368302653691332053755717127463142098307634161740215641727859424244318749680714621580567363711976784256285770878576083571587695113289683862611603398421445981749654022090040658391902078631651774033987814068612007049124531655617989842340779608227331552431904881136987309409129449522195995919608351691345260655210809834840539494333717596165823529104851936284783705338760230604708271772547969455689211977193436652827381406513302143697027951160167368756570495071625018211250303834200137634592880033887942140798771510979953896960077284248430272800868083258659157621972279189777767466387631930814033503996024183153422926798131390602325062530885676290738906201515183145555171978784991257724740237805571420465641586720905699683180433263044093927776388649106512054804792706207481411144263965245921916937213398352508904097663082956344417301166068791595856296978114333649942196942207931231358276848226688606156221404591092399715031918373972926018510038395518835764049682982619244994389994629474681014598058384017677536167396056280548487618544320096202651692126193837753569776790775509847075060356891967301040165916641640054265558857966888011416677268262416612818842471327532361414439919384663802485690878457986553104130438329345641441878423431694370217049937168803142283034153712423423380938858340074172651994616391465038796962297377779290972015092145787341807595856700264482553428756240942116818844783561286708122560608720666550214805789069719356896069286771733975998573057185527397358773118714536604175093118001669997097016930232749608743328420576187976329808210475624262034961830258516662977404565309821760594754923499317890593867313126741155101896075395440229747658987585787419523602681849271884861624206998503154205395744317394138013016999451009858457450172079096458410523644567696426157304078229491923561388474612720255515732418162300738432470293713549502875982434830277369638812936706936117269656165233819999516165746875029591016664013008429171352753121358092840316803499683255173622501490373175059381672539324192327536191730572227667738564299067049015072172779052616355126957846055560614941399347273935005225856541115057710993813393534991446117535692907394041789598273404743768701568484332168217581856070391319468518994434121116563035638519977887061539184052561659266286325143376265589196073189385284421578250377115472472662278803188875826128651774397892041934122760990296055089956496846229457531380329447076475497832910378961675265920034661839763306060902753014330208837885331630542200151928571988333758364298555281130517776294958677493592900011382955972199456958602380291372602183209001120436003288333739824698299159932294708477420509351465925159686409276442838096307187535076482333035814655131832569921451198855412969552782091033626249244440205149932135158983981153764653990146893996500910958290741760248503515283277738615354859848755409181921708055166860608757443563177617313537743983211123203335361751267008470062122357240765240844169640035962579751978369846545369939358606622305729732286635824648164859906864081651170930293777026932964783666178236875436332569414063759365015455807399371715819293710725207970573004247650785860006306949369125109821073007717467751721036925926202176535795296702467750832953237293749333460585781010270434795350400957273639555485076448081448114896418229155881510205075563982719191954634728329454677228157656259807741380091756523144285322334615153015278205672169877428658132335246199712713156744311560013097878330268686873845477330726235714598819601404391250572032318963178385732242053483074348233432723291853395317200395233953665751545862783007205338194298568555275487600664054134749221408731805962596522412021610081601006338304234373059672450868712272825461179932397236478763208532808289476773668119358079502617315616163817201448062883745615956511971920133010146383906228494554796773518544581985874925169599959953640148306753421504207850123507059542622720851373744568417429328849893675612465887202671027129733381239758669944271091883933028322750514931227402530428088930733561209871825877121139812248641599449530371448658817687845001151869196012228031876619776055617777530859265048912738569648099235206806218107100942579283558593095086852433003563240533686194269415626966131528502711506327783461486530423473167511814692439848751898355246462441060726178734662396030486730999185869157342784622549137132051275050740115480581201149417512156735725154343469192067670496552533361066681552429534245164355789808334075901320660257149193618650153132748813477691983840989978107159765849414342660412357698387895007074375056657722681593058013437197784476226077134369820026586778817400356354616031365938241598377474932466818980593170911787983125063025843000696924343938212094312197804556762929591307854728074501463043610858040778485443388960045403753589521319928002840589012269862319801451892341147202977372969185162811781713814432780252045050325958159898732228293974348932889888430685031603502479181692968277031227849246039439473062933967217035280120425284156679794266792734274192300819538269841590536927291229302201978338046716660347193486884930648817789470788855214009985413018776093923901049787842233939853887280552851105603990994641131825831302251731906842007784695414838933525284617780075402146159339218550518142257048291284286066597648217627657159897759039522213722981191461316383763267796746785279676187396478965441073749667572915415185955261248715817863151730119970672849559066735964220499981477452866973791098647211986133053769397335259089702556739606847248594264039110512131274071755943109990061451238250096706949903351567516295211833538549612034942092478290179590843050222851163365788720675980574686960753500622970091005776578731240250028116870736874665813849574231611348532430004810511837641163229235429061044285436049169393048403018638364425818250426228555982439119481367054510973251728130228978951831607821107581459089007503660406205660283252803747084191337106459074977784667161592049958386959484676535016612942055544236833850700193546744991488521414160487072863896154178103957035100427169956052195324743637976152811331397933323264429108453548083765707207083115713385692906369535357655743338271580430782297208111848900278510742755459847161607464540312441932607631608581396701615135662912693004875092004597342105539975038375253839279116115938533373795030058131103654143399094069976182032263155848733819908834739456458454849111098518821371783356618694569023245959781160159478412004184775187020548664956085153788751739097446430574395574589272514456792544442215827293202278499638517980687218004671262866340484829837600403016635845328668052969646094173229549009063753333525547223178352902160006541386314726383497291386321349455075533112332500023018733789783136845673996429410812563498359615278023867551266311859923801425972025964177608127125464663268714419620256273178141515282930621291175427458443793610440494799339174074283128333980195375062681595845283785430255147249228579414744556096503607799942919354595897026979007562107229059901911691804371142658190159545619973553697399709486803948741870526554856376774638733787501976298053560870094064159159297748328645124925527552333435110319713198839839824151226748712315654252755503672058064812238112503843019874922040759135780519184580295687534696123683556304985029182024964228063992072136464717544711328175634811598784705932341480026096687128490691990031874273538353291588922257571558821601150965524384286485222511366947047773713753045392488238916434224770572906581357350083099173876362033870152718050495079500068502806237717746926422815802379069681066813591928114217090123719871671883436482985586519592758386191757801498822683526451831887217811999749275603758808149570484403152693984300132259614875685816594104498363753679802139621957815110118352166090408544914993026876139781741322575811165525563413655022312584512599844668077908363565791221737787977449098923307968300305053029384931938043343766067498301788524457230114862484357149508015434676407446282782400832728514087575071538084154302641168251663770025162546206391684919646015915419647158468445171146333357992320842869328286206508381605258979378355532927294122297816418339454270308332562161992167918319329320290118432597816938180838595026816595441860911231221013329969578703543795756176744838873369433853239472594816448720554621213003261560838077846803721067498493615831590699977563250464401094373020363668267338413524262314666342705614760368532045707720998466854559751507206400103417106620149086067240596719542364876348795027926736493739831300067690703308311602499713028371500098404071451796027427149012470047693697209498781703927059476276867854597044436420152277398743272981704235257530847289030090429344182232802867851818045108525870910241781814990337144701466593179044447848475774807918401459445777263627805800943745750214676983059170445702957584474512643068892737252320262243895575138249648240644026074077506508576674369106814976141402440076538592132144874145594401840262338188686209372680700879272359224164734084148666039226969584011664730249224655034544963767644286425443640773374874873514220947255932308390857291687735817722898533316439618396111796128739455461209196367162737842322545662031206973595547571873188495791231111285279444935159051196492384506069594224238105036935395059900509963091125973323150023836175125247674644943483914068600542903814899222682936125346602550054290887386367261627244069778399024103511803355802835514061257068058130294430704111898991014677142412382083962100985853420083696923688025643845368422486076663205919924577254237397427020416188665205140920853511586986629930954318168510778379301187075673265965553989302895788675660616829076222178891135071261515712499318980461371250975227150576782908524395150476296270686973805986419775962395163589397527194991920759527387717811226085859890040748097810575748741986264213270479066371866732085475423976323079661943321789584190215152203700918322351264940668101767241535995388746458468666273609894777547294878684151548204523990503582419003185565408275740004936620026491185427987813325903399264227311965840386655017371814551039099752472146327559179004814975577366647033150109938378028699089537204466321999814409468955014993330263261789699920313520575607175701762195955729453898368421299371711521829311851410585566157412529457669955943064184650001784538168552297800955666623854406413487426440730374134098907609408294748751288616319815838463505527330812482160050831122198976874896732478586147283741656209999948950263247221145282543406958799408458706263003439089232058840374116393855427686143442294686221214986726769038897329045634072539927776793952751163926838981678322325914908753439883194330269898127541107054175449171299888106749597465210365606717288759052424924328930371720550267047955350232240316515628627149777920572974651140771665038134934074296877975602602061545092224188630535412535035250197204191228883765776274911037161228804161691466588770588655284326182060826004530990197911938755786934066457494180163888062558659854385232916787836044357822743992664839598567771900190124753991195833202139698523359605866744794080948080345958316819463413081565408029791207581972938167453722003422938355941203632784554434573945813289801971721786234953089927007836606624808059597122567386156577440524743057525196589917774195511072464230284507900333185404431698774046467265947152215922260408228989127418532188853243035731585158689061761705353258036723392574148785328356558610384297376084578745559277312752562722712900447097635083628433493112750375050963508457019163616968473808833155764440659475249469219478400479360916659974146277758705193792470951197048536852281907131477035118089027632679347939133505573256345794976811392301604574282479751027520885345437894843462992258242375581441042382640905186797991623653561388275980035701544611869630809762863774629199687802890722365029234570786042322425527030764106371675162855144625470355610838641410309377170999073009708766058588782006898034161138374597103816551861326202241871000576897196822171013613697357215055668506545249794601186051443377930572148060554076426584082264531157455858153489847910241521907559374466829704090533194155193570586579546108959248542408559097111046431540945385222567515766155231018648354376512055544873291660407823125608311876560985924532680058742575881442096971212420189232897330289415722282094796862910805072910245048127445252486216847110075570248769864858074831065286635162507305630971266943113645063998190497126106654182861420022999966870375057880309687390543286464430474699428262851370648623632332703931810506441016499358540298772970094145723080980698544101299817024029739941197123605362879167499601908319927827419199387057520233448006553469337859006180007610437349281771774071819187699687380083910622039747436784167719168956446587280863846292048122573961470415663139108051933348629130083141451189592950224855151851020177931974450462629241538534871592179623236774827152266566417321561431689805243706216361129853763142478784655228668717028518498684224568451186961981391335874242568965681508479576145523588208031445700763388523577361869789449551432386132251235506415128927595094818206687828661247491493498589875739717739292840123057460386541111440476428913930376610675159685129969473489081445203088767016881240135789495926612841496590468226965751377032368130177210892536075911612644253473216992660598660643366953407850195945540950213177457408508599628204344824767110169561691223541954247275963763147188266228452071092429388873529050345152996179430574186240382315172538639155165196313177567651263596167855008491008606627318206166127093711231561898959709939803293674477968218658106984970446698304280213989406495052791549395356349180433544844446282139134344833780493366907888672320727547549525597378356237061883594759866781637608398346782171721243977153620499937764430057096793014698374106100744066317848199026132012248578819007364650916476283415347085804911177912117695186843021341870222484406551609670123817084820000232803971963858849947907785439638695816118616188161957135266465168332019771254614617676906226563134935659903836027130328428396912605976675548459864633312236745905207556645054617261242016976188837409901600759010360580543657512792676735961803390463944852137157005710040197065817264681831670829167989362868657170546693163830529114969775172249596209494962380251011616198694844329655013321409912815639440236785509821219970484104992119217514622556749362189436140990119200103721690795646301592144111707847242596119048320691634707543408049353270505130657294900098414761980705941780634355777418435817587349949045682467130762854872494737052712670021335719280521677901876916425385777100749586401607047286383249353412198024790822644710851986908244401048319596055909726563179875114072341248856539925351154215830927343863942525270764396787287219211264257966588579549171307982929309428792673441797716184160960764118435596913512067086283809312185182511371660404413184140406748888737260240258043340880357243995165227398994262945294314600884368936852292863033569161327439822113477539133811008127575669988579210365429313908794555660726230881148143106937561338049691156985572518523906423893385424958372657514580105293619602899809012565783568255052820901828989122789102901517531625769819319375962977495987093709558334125245129869304966425785776532844705090319169514057622882632621443235440607010034381956540091599187022964985153830270899034832538192053045541751985494325655289795662665777422166917868104705894815848386808105300231229681294788811284499963420823004671297574274845744699709430663199089917913512649889338653613471930167116360971602751791952661494320915377947372107570930643693154492033117537313742338609849249451140274229086581283428278417120614802297535571752614571761510669593655475183012703949433757908530090531453855606985752499125698328777281240736944064734100391154385069680001008664625322282808432583557691149819994118001812624808535483708324595766922506712085173111273977506875368316158379093948910729864277882059424634742350996469813677078808173183551942632413271127831191913388362046365846259275872101771522193603836036676473685589813479890242136313857775290140228653910543353939712709253587735438534792904034610948630753816864373884201331359631083643987031727137495164000501530099242843653944320474043475645173568675598561408283306296847589702839801566812355342556301560599112599634042030957688419621596927089432620375060829382305192926986178352802104304194810370007501937763062200696786711512271807698893133685615004710079305973691390298928430181967314370093240458569321266512014258395009589993352910561562387859972151629191130037619957966700773230026929836774007032603439549829823585989136913385513301077302940516267473802676982949396702296965937449078126703370915254282719135355053350241480660855068897133307095092588713729142530866004682369980040829420308526387158723025377491617414543626038729879774706626646256642432170006095585596075832735058733807950474899276398418698464982689339591042177271495032535813801084641712496906810621694635285180782088310468631880370236825635970566088637606171618191969223878219369958515033074317981907898392854416776473240825463150458802159810359119026498518947961985678213741512250935432848366269459451726164309438389780213686401856552481050618483436218829863576132753445583014616923692398459336393583024904321708722074167585789984848492180466232344339078298531764530349050132453565824156486680364346677591028611704282381095099850305318567468074327482676323611791828879578309253098391361476291064022082285569380696418021110592247729816380618165493969223638656048805949150390824353804405866361030312144975476911006012087518032712220439860770506578984371151874006457014503180048152742941246316343754598114281105629160698776722723696224067505731090920506561003072631061932156948611201504006853386371364169645631012032604016201463370082251146735337327958702284337828418798302352458113616599526549191636012243525451049732756888317307768038838511637168365905675216428186975358105918546618327390325822970271723517688170332200728919891745975395946648225727036565620964045310317934927279426738358493782026278169550457349514738095033781680698889004567057290890360312032764178854312374425711446519280010479379876987921078686320909271305573774943446809161553086394936355998844193705530770179463454455640289633273759794114029008210597189798877061105309469397055942632357922352448909077496424728778836248651858059613038709246068653799887500643378607331936786858697780807558789913862747918265795413258929844548100220886028835434548957854835013591491363460930434235055043322015499107480222573779066519145769306559745669602318711122438332992279270237064564640315529349966850858498652344795926361474051157170439644068621376883087212915890678367490341796283362933055764652345139034032954387980397823127772878756577157326583685368293770541913619238343146614682165032756659209845750118190235759653174751018653867048263376203067517818184081342097259214655546994653632015288246491714178700563331258940662204883697316493035662815619308029112150221545554811601142195814706858886600823805831051340359059217449400437734565708383916323324662703457063824375466127542845267346155779311398960622251027870201256698849519650441940650247950882595218341677106630741043744077585095368697995266772334401928505999435074088631373266839896644735983214948981280753553084496233765230131018304713679313815340018963779174618276478130924104498367950916808688895892901136279334432609515955706038184516255782559923640028319199113414944891179069952742177400693147298347741286476484226593626335142154325974170933049537783074722512805320323320522052878388586056701235540834697479563381111220746715005651012436459477524151568673540124189957651783001854638342167899730712000164156016684551492604969646805358959009348243019820913998230240836412191607931367609417280176532723773046879238975884555463483146877160258091256828384583094493278644970350954165492191595186334742030216198002933586931125861350979192149241318710936820610905230100931912520056006528069448271604905548467405870876908257403061604651088573521443371213300227698782557105589008072906606872377296461314218735567431848684026475202610154876699075762050758908076427375675212494771135396665809374234046660253863603129738053623827853455537783318044823420811662554552011290854061910490255337519733797072477887511430652055949907617829896637532585850744735468670772368898397463610702072553034221670661908086305845794371677429462300344937894946463677827356130510648493475221311482535523724800369808027790721947730107746042719866132317002952275467442843346657451125561049139675515631112300490138123975872473195334717940608101235495139527119760365060812230490684006573838477599226114523077107933773492548040249970283917271949210473038607882429106660357366963721319382436916706040222363430206045880066276027673491265793587638230422147002520376004683350726373511344836452999673672651526530556138103372173715484736735978223393921725294230722251792972462253118741618076247940032577163413552244226463628018312920518609307881444852355744946511190828375435444868954233893932885506425982938357044352511903163185579826671765943955091092160107433759720542455269067734892132344741391277725787427075956612068919549827340337447465979023091502101531126624728331761286845458073783716333467229485373099937056696457811760612066402349884808117768758366666111337628617155925417483541698858631787500413332058941786733069925990979044804453312674560565295598944205579605820237635370871805115438925554272382284004701812750626624262634776136121232621905311155643993858642366407118872852413908075363996938760082202261195469296704217496866579647307517916333337045825459115705727548533644679649041314201201168840475869133951376085372545633546369330570840726155888290805664703509617623640139244080972282121916226683191225784123848095170996220381739491300203129920209693534594422456900037652601877662218299748100062895612452005121683255107499079217285947365947437894410241145443942649588269207380572964947858846064807276968560181403809660421879359196173005918347074661546779447695000024064620182475341052584108444333656504545032703231115787736370557173069620262637105410861704282103568552075447862142496141093516883485369051423574520756508042195380083648779456401344133940820562368893157387347799741626136211937468680607624174086586587306978841276750639318805064563594360263085694256950900940638735142278924975923973648918104807613491004865394665504440545781007232014733772429247104201613192181176890427169973232839761229745941123337199793360873544916635917433764976440403488986110391180336036074801804893623392526290203226594659853281304233118043052047420493281770831724780289116734276214244061318818824947622436058753963368005034063617131043880873509171158895900533234380589271636114162148100782116675900112593754729457067546334626607473285917502927829870392052004101834031829824823559510510262627724631941877470501696327149947750966218262647734285268407002494475776508960399225032530527392842118975520310196932419777810860830326041982171375325416893608577675774383940988638670615906221853364131051699885622962308942614690355412858895989243454150171873007338358009769035931342959521053329731304498131270108679070567851016229633463021006261591581655516483813097639035525240016783182480401378468163231211817245885870493615563741784965974741220385489283731204892896575175648154368657137719474865398962765127261959264066177276082903594585792292539777267946926829997055111313753176353946666995645000016178307011798634867148969397945542665997087243392863442905022453591803791035145861335648753223609419631804765263712744162504631458782394523243579785835651822635373909397039900160373057443505580266139196342720565790870458906407269466728629204328373632562266135714340585422726519580942257196655621242432856855676491337939562232594421492852528408149290172278249807770926598092492566427353386109249243784226419591342806349142889865896052685595230062347086454579349292444676896055572225223526821888454431609865476463131040698049695778265902533687977619691046258190578607705429559856835789424064311695685614241895853290671869719269894798515926353869603432928552652442110066019426969118888888830219120807900955804024081566007220163753505582001076337217183756491424862830114977933919942827126520976911382781927504133720902972872007057979071158126676308140540095894335039758061998658520028789845017753285165019888024901151686192578299516823401778229764839032754956225385125699411146769755726277899588634046011967450266029092792375023227732310336028001452116718241658221983333980010596309703312992421977159590214054373141119831243468237674077981741070429911102552844266690976341889342670173653499599523917937443259324921863549987368720143108346723918323090080261277034611673647534714424901440675104230712848482745170152261653981660507398009136695836185263535856512679051626482955540489946471048899996284832742830857828579129622730193468523908969795853552303503586975996550719918404678927065279768311290550672788286463501980060627966523599177807836779967489912689750602351276696402875262672298689737661330603849636385341263502867033180051103773369012318514576772422042330760268801032723196122906467857547622342250635428467809630740275141388491120636194778740644396640251811040347643274990841190459272815475969437744579864396716421234899888192931165978594550248481624444976691136186300975433487881966370749939721915812836075301516565655667913233375202604035185139735029892076200595217808038435147210791750771913685953036976499332043534385054081712161816086057500222039988948958029812906673671327193776891204387866992370600648853161752304551578462450957980910515580117286738426872695040479831570418815126250661547872579933145706764634743068229845385691253382266387328999088190557257043036510093201860210854265126437275622816396845957350222205336819416479744747323820332504947269045859267892929333965026763065608652813281918028445071714790217972335519573693346126496240962879730273612622949112681432853445069583808965153409812352846683539864368262185949517878010834599746434864299738543063045344355390380663691639565725069558930946514549807943596793795129015773490830855534657413090555587353370699328789414939842454798837848139102505813749859981231533657166137279048195066378360193130442775868746484361657433203410399240042184509275898961930576572336502940641250476407624207635167476744604423965139604519264126306201198971567043385373610655142227852765732610008451776851271119511880537043795835408874516374971383015577386467008855830532882387816484264116352858568488798943694764719965943970777566586351113888854185086722056614410228419999411623775661318747312214303656891552074338273613970480928677168721235007775153182641359186410709121998137443481006431215683711631931988224460833970789778609621943521830616913365013636496065781404205421988407988076905026823147053671275254267698891658204940024673608638107571765242138940114592752902961167805584058714379973804265941466383437229693897094206214146234481261116821556382426902029654192233713575450496952624249690251569678879697771460189640211686040356010435500101424216427967214034551054346238364794744875546054450294099921513449197635619770922478377401118510341196858833052808957890348427102693349091178155506853617430161118706534832913711357981549094625252106134049272076232490447483731622890089000012003819522792790524433414196014997816448193136398990923924189353646698857231431760936343872218371640851687623049649392353644669536490349468029062927749010247592093640480211976589686270054126668378969925000239723363858727751333745564536351791087033924569092915091816189738455798193591225184660199955950473844913030251461280978182423794235504772270799111867854204592373886481732358169295315388002010175621431563440542948637140600900217185428336986419100512832242589980060108823774111943826480844868815704733572825587561556043488296247007651865152556887109301690072901348114677822567434162634362672988422707672266705120886306833825060318896891735495829284180458951839630816247858711489310346261385816163644583662324535633276332448717419070751142574921918028909845362272520064404988396879898059381387783990306052891663866853306980386633603638300717568978626030085507282708881649193257774006041182809520086294653063333871250884619347997133874867213997740877559492196848079156004393172098253888702214647820966696310176392135120456560325841100276530703366918134004368842623087535217874989545486722121503492959035244492590254531064041032207392641671964935885731299715249522616324138287285798619852260859007396471173166985422941612184963315366738106555451725213413145428119176107420775801808717252805550770541099618984555950197917010322484937451357030362676471364349597136256558198852480604724651788575231127616895607348040087493609229823888534780843223678390468339785713037019299031234109791920153402217568935525012791085996256425494242459784209982352754833532789845445433757261180078026681413242762050246233847418076957951322041046755112670508435035999662933630274501970014158391219379681903740361243712858472363981526971860652865084324806248739069483619563321344312980461744512044044113490829567428418505254272985956504495517109745921486095119644572195342494278480282065123567580862076589206309515241394255293001651869879693841695724423596463308624391841265032049085031769289296179054803704185391674218613417168707410312322652223033904572404956906789312670758947357412765059360034140618312857697169432465276819671884804743906149041424736551597308884604976514957037444920388636686855958022656430950009422192523956447673872507457496333209428254686298657481939537056032412488083035293673731658187291904027383274921252467212858140005168267391987547887039485296327156517028449573989859739046955763702625700510893653515604822676330442426851041582409917769062918657029608926741148935949916871590244713023877775788123133478947737719762719672338331448920568762865460601771572373547606619488959569499855997263860642061503341673944002971482977703871308883238174859525178646370601264625304763694341386493704120692921232010328919692868687353986409385742239311020874831811278322099277160650064489484797597111134100271211213238848290331746569926476758798588776782661411485045135264070974384517520651037311330190645542551997336298797266809559250364930480980421410801124845453072953537606148339124777706652793708867929721527507542014965295218440210875923011223674294975199978174491852165611682252202554432269303512820784002509272201826915387689480539793497258970427917613140543674163577129466218690265778280726745975838829767518452752015424382507788285643243130873208742015916908338447293321449340382929164597575939116781110662626831966335705548591331763377216064765603482809615037199573000629876845331948437278413426701104932144371702713238288525283163156372498719551429438800465211040399070858133182127067884895802804879717027755892557530116458108650365828677287656393705745686422833024672064353594038558066167781500936890036424836298239429189522303611579689220267298183866381670549667988279412835862079692548047045485292597921983935858017852168917631813103351165817416365801817012988211611060368724156752259723331311504846741668744926028662843920553191686650078903545921162959626024887436380626284236998158409042492702852665922925801243533752118633076557392657342153699199750351663622889625974720862031588408727886871081450267399412365077482536645837195679842664611440970529781839680366007508218001695179313755183855701625032864700077735349630020661652616773447410041142046687616794597040598287245785222576166512509685598232754677320856734345722787790078672570399856165115067967883129797257109359086581089637127229955458591123970014449937098687281033973088350895859307332715892789885454658405062629519010548128889964733097885525419701100868517713855605512877388232061054623561575957098106335286964050808382353844949720193789457583676287184712315121881907140990641792669192707141672161393985496027561236433030176953843632177401901840272113981166865152258258007793815830453156277517545959831058197377874034578254256875515879053100897429028250566264944603095804320760085728261437718263774805141901134248728530101597236771936853624234615778238947940827631842777763381949701472316445768360228521419132888682733321396811143429392037384443090139695173750919252028862929443084589023654374197582894532492220734047153743778320737571598078646034690667658612222246393186634632129229682235733741500175473437255561213997599979681480077473994549414486575797423786661027195511636702804137474965365288850916811227225476791135045717772520120611993457447838490100292090305495421560357264287140963525344362335685709514243843608889987381743356594646995627691202123683938470375676426613450729130727581117489306735541733824389551503628796531606856718527732966293394380980075933605170322841979917988752056296130074599634403642410330241278720775112069667704999517366594598933388965578656939215517767723941528490962243043493340679893832746842883525918575138603499082115684378364659045521711521680519661360483494603137340895281025376504492722870847866470029536179466598987046074800124254930027907528484756115508930549799726173571035998094546591427079304500808575799692662789195920848768658529331794310341321748266313275709147901667294907999343233874608714321526035154696008003542767654774495343783733961669761041867768822184945586870154173311207780948349373827067105027811983365175575224208419730972558965950492656057064358105684189540975294118378188593534224596035034170074388367664668418773349367169038734247341990074186726239858272706505397774905504699862321758396939351162187705146145477109922271758471565361308323358663001854711996465956593904686837163466164223367748387891061356458149465691108254340922619413434334414453518963275736385655825630420211859437826140988469750621510372837915611854827285368529018013090156221029936015408997295324833054644951121752948880331806410424167390152278457894395046854385315462159379131459305994614812388443045742646709446085746300676045849061114933670223694521893832101669803039167327234187275513591761092141115342582736431451250153226302610865571821844167273445058109744727014777009411050202122665804518870160458567115559155154173240371726174662432909018183069634457651643914038871359495582925097135243817717990513314434994577438374063498341521698413183346113277085227357792029388798243236162612144276037146146471673122303348576918319909727063107621424009266639287417985044887809122236610682572739707282800763027827360514088603139990238488431482839480858197516098183568791294662548400121281689487876411980455150047655164568981982168387775052700684998479338099202950866147386903442421960250526462384490104758794860864042872022060938725263920321773682753275399689234718503615587542938329023655851058520178987230433991213876321386914371361505284057296286671202687112748520811392610574962193829656379620422566687164132742615372220082913131526169657500098119216042236760195877830801722151219812587672959002894848000717322728298661747490946990153142991829573944638416300590710846051501905788960955078525236856374386793075171971430773707330150597618312152311759654083028349570798085929027621167755153409158348708528099081655173018993803843072480206403597249934312804437383187067883234843900984544847833546873176031735896366467644896702397003574798126478448935823904307071143041031005283299588022733521546574964606905150280098995224716856667616400364055935205210927571039234194367243429930403730026046668162241255178528650833601916891896835240139293539967464650953758998786400946960814315821278548528484451643345689852154182422704079577607863784994473508121345288108503614444128065873769499350956254501041858218349254908916509230110156708737098556717320907776724001894328166509138257614619331867531181756799377939185942906158514713528349885582199905334682860483912455699266528523157192621217374720634124102588361812079542142085316169508354547552994534713221244923839402819200941535358108146104971263381087645399098756872658749915696438707302017457462328050094871545884002239583082766854578897495521351957983776289388504669402838183550842038237290156746396027867903288822232594833810496502916849386815566705342240915120294471003628760937414972144231327021956555691229248229196917052182626694356357424140700716572837592192663254381288855315617856440979345457614009535040890519652236084088967833700937121793732716072781292282223865081211340104477496278697265902257594781864838706297291420408292514331240617349363972752426716830913076427092327514904510383889838210543542658238860513961345683316436263898240984217805187125008698786454478130832447122045254016344138853093781256407611640025159314496458319193372172096082153456320590940554617629657608383467301963158696550493062827577910455135685658666779352925706188010259396991826432981718132905035638251490479110041902878681775921267105361809468745196792549231307316625177754814770665603004115661513930277803036436706663053197627196779365881861461711703474182701181729833284593957906129120282994073677281109106881885578915942166987659330455111030769448803411413775286108192246800809085346192990448063387103040926383200346396056786720479238592564688536898188583127594592356689176767048002564597312014538595321320617536610971320951370500807960728091231467075787712283079990909440700040550536518311977370689401068112306389316797274603248874907230355857825405488794350721852574338103975314884952880967721170990177673749040195075820774254547328727942277380497420474129707507982165953369988623028418518866043505977788956973823396649982728608313001176235731692453039774302364471790424211214866870775450356866103191874459704854417195919127716526613032958335756094883116214974109571954134246323179291360299642741145667602025113622163473644126472038521975339211455952458552322777454864042892916547171294707247761895272070608819141837878003174136834136606341020681006876526179000895686434107966644687951121522021215485522787652090213591742814012293907501749196004982668661905344119596646814979171231531442742117165788828582425142233558183849432856851504026616047500121189004523984265863786295803131736381747946928237161406951401762477811072859037686055294587477881608451156327470903980317274270445836458564459701941605463893529190760154151461289279781811608334312925839140340982337713996178045168264775105869476338721193767918201264459811117388381606706439161208008962295144447457541376228169676023121834848609131587837630940877748913771431241356308475399840612149632469296922297293951966231069817677060263822144914542518376122539484849194557928886347189461357331307479459403975595230132374920376897932625066295755733208456758041371092042895584653162745271710421596605098636098728964429245574695839908399784696887294449595340206235901216408163340906009118694645860096377867727814071820797217354465998820689602682323929743995302818899004541004463804664519867930931391982980704949620523163720863130575191054283825863274090455053822393193009964645164856284496301733219601810212166620604191507992908939182555005365416981888601837292890657877637859829793667340431974491003269107810168513586190579758958878548304929673620763664258366406136909624198175684494886929183377383364465975427286401704219366834887050559733823774125257711112870626398898111537223093950316018367416564324525417165054131616306049946532836135322928876212153366462073653472272438472848255926343813847045785522067012169484660505180085002721973459037793953379201162947065570285259065115646790458563508844665452117688129178813539152077846880411509838704983300962788870183798365226427096225594575581261992486968002777774997165831513320165256369405479019038798367002736687482287100558834043309782039994144023027603295220617791180868341440285785948900001387352431603760828016414358100942334010029895556120089416351707297415682222900061215281753708706559111570752590696674373349360387071265978263217570720512614488825167875936567323850600630908973314519692002303988839055483020394770222286198760545151110864289414161310427351753655608268959940843959244500482621772138561410319426175326743938927760158100706054244472838589297719516268815272101659763985345758652433776958352562579384751218112966078376772275808550431733977973387303830818485981958445568366335578716650280975222297708785858027130284082759866671839239745223008278130351165844874843048771743607443788216077183435766318835650565902929835980931531385391029248938957824709632706287006032331810693662074134392592823399705103830356755804180623978280998096238571424916256887813591774549855895814611446185280760632895832806621408694621826306554194883732780067100472619824749571464884788603946837801833312020133028108024523885291643751878310267628909910487205406705147112533324698704422081778984001423300627459857025747986084669854764764021226657208848709000421982724521594910393263915066698520669991362618773958789861409525413452840587798594704310790250435748267987222623762194103800149905049330846803374930288249409279008076702851219174690734711083976590893699525695656518732009106300353521448669080298842536385729454740641968590655301524159833783856009291591429297951967910405563222001414024411060228964097625671592180119642829984563222482101961631814171273626115234788399776455709696221187860804951143163624349556159289064362641917112507015130388885249271321720989563723498077548247964379741245431481316013352580940881677560968179693834802838019878116813934206335303600605428016210874433077871254019111275214080501795434854485231115517739823227130814353727351960776141069009047361116014159576581191580281789588826035389521224161959766679027134341484172174474111554232099997492653715235703079422965080586660238157099585703075127358388539189781803059595362474404279093293448742011111504948510601981831153321727176518695786681471178498690151769948117130995798591057020073361553933462477496374210355829719356146304960866629800551919570948310509262829970480029618879358007772616527482380582371162988666406731769712721224446342424581533499660419682383560271608040520908168990966967177131175672237612229948083807919277609373760394416843067639264999606414050126424783545271344535206870380956694196979479139877006150791896264214849625298882278080372777562002453528055499309468136528636399192529818971799729497906510330817457746069220122658614772381146820703722148376052467543740846359465336308313632687543644367375853452940180101820945797989262475572212987562554090366092555767625269939496611056378230240593108520067081737126702133417202676176951318936028713022085828250535913383471014576916624047484208259842240992907505320438188938183058205075198586508849118727513640083301406703191632366603050135997649409715689699855611068570125658188945304197548500820795443711653269815833608802760234273892336882541048832107005599444972021793087261918641100862215573868638834899952735913540066277985767486888779723361773570227358203528325876834744151952205122587528688026038209263025315363673733720495601063267908729072874500220461759249190850247707984445288138598346084768472264850308390256440099718104111283808696808171463064968374389135051961355649411312453986433051889340756078288332471691965343981168345051157613141874206160922720592249639127152050797511898555252757040531563822871479250243899075973231795160723512183134775497980318865537719269573775930505145257494501334557518543329032308424032266683694124899705674136352832089181686018970594941546998048653035629574338169459310401945013192641565998580470390130682317955358401015088056649806417876674129822588156112489900158509757180595998128244782082676372469440345709682786759049277090777286561604839949015699194780938267552232242762067852492281634951883046041469038863718751446426502654751691644257577810048387392891225387373251622758003193313693939355725865519967796342695756670442998016971317159317809392177026010711283891456670386430257053120614874504886413193367539975725421702055787252005315853003032846761446830857427583683389664762380903891315539244957020578640674463157991697382595766773826729253750639408950553790515304521111975294585321353519380412396527048368392085911479651541498669529724154644164707545866109344034488991992166461399216185401664941340860369527065987087051340946284990064484043893103407217298243327241555175183144028021143400618432365833588219455099826035790763068910992740259855163512731069240800404160266241643302321461545407325651411802958984266266356817490278010420924288198675603273723330720689623914438013519567534101810169947501912386403359669039272091661791307554255017438353051494788557902625840347316750376982572180491515432119052572956624520636110283767435614518086227812995121506881141637476679462371113358930789881308800500529111697078317239226422186007434505920864466033906651436316519247506467472987743631151252747709471011373887015873015248370915705948182348099652032701339823009443231678240172386584127781016384734077600825866652053362324908628282991524333942840490607774612728804061927746191254827410264558597366719704018769529857432940180647800713705139930945501517234187575693894190749119482346593472364022486846997514263960082529159728584718554806370739628865494826377585719187072980051683382193819585706909438888570838996191045328910720964648147919637902548140670172867452232342051631857134538070188433040712604238575203594148377052697235211053071237345872619502671248599019856837011777466882572510641460856694941223144980636789661098017025725644311877364111267353689686474449844496420311279209867902875176761077242328268535914118449025933971507081755341270258855871620945824288760858049542776717839777338366502580980920227128530449337429483589368963608726755292203655901814583674199712180344086031969787221067999660445043081409453504470767989714864430795711032719207373791819036316880000750568231908597649503876663268076302254635764520661939477673263247845148531945859505794611373457570470244369205584010700878391108493238311232863222869527257375035998691032584376001881500903584049149154064635279170113494599942515610737171268871505084551484379821518409497026845439342223981329260949125478206262216098736982918339584679833450134951932590949351460526280551282434868711503327673507795693240420390054541749393869537103898106992580472364748281688765924604700679035103896269973647311935849394350353611099208978181222764417986219564317914548318554248232772717066272922841543650362345325632270416189746135736132419000815365232591977347329764707995409991029706108052283788075304911730098659063007563179815058753169428310911309801150841637224268320313502793371077072653183752122902439038607985112388274675873611115580515094353245094076605412368210086646803462162949309982590232300285107970266132467565923338102653214156742565182387114363951174517852717696815800840127360109651200932668037633342098159682044679180302641434897160211031365111060865568053853133932029711338054562119200739140504173322930714283228809226902656422414684779998161903777490829700549090176807804202585902730773798321418687870277084864842590534467775703362745558257488144254403483728815037112381020719945295377342840727276946154914948385803453868934231896827023026056425463992265242953385619494998417923411489327932055435050125526981075752366139808913064422169289993286716151330153149281706764024850279431631485076852269922548149712580843114688089560369228679726508350241722071850523778255765388611271629874282348537764292525111920710509004848205507715153460290772026044193896200225723306080225898999206642633408611793895550030137052047591971481590804326419390436926872494942170361105795813813527888297709486596225070119246016531548617624898879575211020305784091386944211278952145367859756248802350082260510750558564050623857546868166691345407254053489144632431226409474078870929337628540922316590665619238970786985498200968214486992586065853639463672132053488718292291480975534501383202346032506993305853522069019832665710373810445079315720788417239552492159429408381955928303259795974834468859640234813442849686270797244160216320148606851915634425724095015302392829735955889640218782963141142117402011171785148043418967737807035414751712254346874796646379216956640111350160965469033901010670895102417060395914856210065987058177615117622647463356725138425331265311330957183732211839315742019432655672162765536977550639049586029136965479806885276597437238874118187681095323377993013498682797925330388711758002541546037143672107932256027396792455590428896764309296682163724490228399053179682802242576011201053437138885278958789538909404936103054490019792898099723872610301250073085182257855316835478468560137037443650522922084925247439367287180441776581716628532462631364990754346342729039445129960639886371496213748000928775495499574086763848053208770640836844338407115476245065495141452807212956349191896680614823303549729606126207894269029946097908253059531160061779990138714996756300686770011275945027384992262858352953839112198964224351946759030355340578142398306578579721808487618518975094590498477394459836540517872343330452817291483186034127662631453534776448419223408453697246049238154742914316627346690880029595082032410737794065807056318453796139894944252356281958997422835577657231948302465261744067751582152101828990779878892639713538112610243904267952455421777713032449778676254454668868249276010232031030732854159777397048711709980137594824199789980368092877023972312539143182522600779480213134937993491186190858040050426061491482961326351724515300481187271949439367503524965274281730298306539099773138372024585776818569858702795906585268369021726139120720847726843050991150883255992761529782354430782211939165297481305498025868792150431533128916243164827919344450475577338055220845765876678774927375676122956814380086149928344369081600290636904350584322411579433883465841623133506581423458304685396950276284919172796987818670447924518636854518911747758397758381389322023239426970735557410516498032896553482643888371199111137166238815849197062572958166796556674498080236783772254692822708168536660328445772356688660389486928933820209904388014593153227697014061532874453161722898664608330731812230768253857857995138066452041817622754557921448493082130764335617835447166535165042332037516968346320738045128221902265595068677989590846999684252532750506710891737717234769290377410250385869041442596436916208328381599836722862934206483718934670917423533915984151760263814869488672884168761803648138605110359975501445329044919148368708585622927922151782101529006101496714286554705595748020459896682275954536808722892878536951324905147768618991800981033645220416395286996611962203795826625469568248244800131444818925730390214637666319098314585251816056037159053714605289185425265316738885982447248081073567161747475963786864870031722804524036095596565016601781864759144667949213669082416432681584477185329285544899807628438554516766809352813794998920268488405709742202364592184767957388124818009277240603070523086807305965245161956317750256408988116492503936884345850851125559072146489725188084579959161172344192609437607017396351471042032272787737401281964278054080287453638182136710605781649309773118719501719557664301492816949895410445489347068072639732940178145592690988767921101447057199734779319631254731992358483511101138987849820496506490505411704250755173645216104636418861447929386784115915538835755200930762088385465337026201014165538919512783744183432552014209634474740762709789185814671319399350032559119090891098804895847855718295210744710505121257395884378801636777404676009562675974352541895161667888517724553553056471246927874981039099383970381555373330685930889148527107694691883472744079376422847448647241460629922345480048067644398063974782605717377326292688646069173771663812984905031238610879831715212557470738521301907057743627754821907712856265518114603694363739576298066541479319666508195549286920721913257743947532621865248624290890993968579480268945562170438313392230887862836906235628782678553765572769304540728493551228322131227363093497305641227301719319808417668608925985767931220456643388760773013958961882499620320198664352256928458989040994887787217767742868860434891360842899226712126941446222518967361441686921994017632008265752664758994701685414962150331126687256614355497134314840338183255065725919130969750126442967618147214116527791167455444724634771061459662344208115310160455086694613649205012963837049140248018079123210968674562975226140539318230705311024609756787032781375519772340813241014938177668330843751726513946204432606597570802549703112142871730717961904709343916693525483495152076697092934626468130973392431221736816422619453112408521647499562485286606755324008117483655841751337352341322734679453989118177489460710067364507387507084379296113255150420394445174247627476341578697105414024243301637848229356800767167175560909782996038408236296598427944439653328129343911075390420384224899340183973932330970314357687433429188543280994370049817436011697954828816901442504783210750190494132341226673819437174139878030682243755703582673498633253775512218698887542815394063663758558648153743137591807721677101237077842612098191189682837896076070689372533134144519673380480659540572365740965955562362766313818542483800575286722564655509404864653492838930539337766540395397658453596396253284859079037366322115841479195779015716086288454902675886249773286353384119324384723548414707514144257731336455559663868156669935403212408286653808135192992544376441692819512651283234239059765941509471620345132301750722502233177111271473270027262573848002721161478324153451633146580406083826848307267755319500348712188946121063011064885476815966635251006907839032546582951521954319940477431783425847000611142517269984236943990515749012157221297151992114430539252724658036573224519200462069559386291486303935866374818311599822054731702623058919800837337574858179304878509971665082170475378394066402224755513379050890958547652319453032681638019202373611872279391216779008706872457727469945832126140727107875479402734062945554057522088285329626991170631749400772991652614193078646959482026356946495287487280370543412095935851211846091637325610780930211330870555940286920562478247919232646566247644851214406615944028392522845979008452688997418256322310295056809275816605776417226465952872363470868717269753266534449448450675806359753999314612612867005608285862578028454889760130105726238152843696082237657380704989306681004595158846145274341798432695158442121956916002200148654580581853343278085064006021636531693305808955139621923407767052986132521943438679682056512415742877288440742884265058451544453870318633367072586021508996890914158762545101899264694580052767744408414103225112558570799174142094655292874129798484870398128422938504420475106800525744973692730922646679423085484205550592138632965625773100942472775862094501146059292481438658234824482092853789419974467989953706382089706560671866276957213159558265482063076607519608457626338762944944273610198468551321774852478669027842411760914071685137005584886641999396080624896661936807852017495209632143167178360486224071933661443976543529711761947538936295672605647923667273617998085992060197257259236717486155623964316492099102561973154403187065452634308341840819539066367309156562917036988901301944224556012525344619330622382730129884585609971969176281159233814510948500927335994005717171356288308988360945661985409686928137380647054539078855865509962767798734027764142709855364242540905125354880770474870851370937580874983518565456694323007426676846227452373271090258366796323525532987503420999201510485754108452972780773861240406094527753767127599324457921266110433817826648223522913529952510341944095561908809918807833794678900193781622437021241332915467624613026897279762763848229109501964737169689283799143048423529428452205271953440723100726198377712106355817928585792820229409194371206079005780094546187946196909773886891969172370457202930554081285722411865029137558583900186310094797927354530157575629419572441573424475696594605327523752610306044349329732082293352729549714796885894150930783897632465054626321061617753232025115877557677480917336612111482806376808959314464587764950898754908613813465030462540456619435927215555151386600457941087846860176096628613531539592223156809376417710098273724275514334713882351928055509680391337784727516501581999724349187788002833909591905610303217134139368189600515638495106639749868495841646572063952559163572793739406327291319586042210590895273151806030395282838060948637254151932309126160086306179897403470323192177647589133805339911506541525732182364458307804398125230358541694582498765501136985448080715553139479373354815625176879190939651643150798748230769398531072038186894463783078683799714636997771014643392383065158815936574142409716302162754323619462665063869724962767984125138705459868614132412566090457400501854263204423449154588719379718090627101387392295968199234069856017878924164575108534465440905002831928487253757993433442409523806274703964758852573601283638966262442909025669463957963597681200856830505449864764661697406706531105588627011306581877994830140290215597130055015499728835836102308404416262625271794382830977353876929879326341868445178406059214968466011961329617164655114260149596650948135746664972986306318046360148976872834432838318402580346303519885381014000149026514554671674215347604391627406453916811058676383435998130619934442215339438683247433300442911274416287269076443194880542912540256161358470645229910179202178907522502269322340645819549285312293151518532884836514348460501808187072739892129355264182840897000480770513857783332959638763464283781866324500379822569012509505620411543697700691895926961023909474089068654658219492017782466585733144457005430008507777086245874693549520985105140771956369975372709283371869713185424855234022754487840768963515850115632091076565244680252459938586545934991141397459797764178986662163122786372540288589246209642199322907793182822557018552021520073517502881442322316959878729092012485294510037319792515417750925166624646567601474662046892305812690284644927756009086004799230941538470488700537639489719945808019903052182654813163396624916241993307887703557078285327362090414782689820705317875829532509919186499458061942143746500855654804925977471278228528321474006510595795631948014090276209014579012979387742286997264276708626876646058355188411442292877106678100247121163081173730915270609246653568584007793423082142862856123813893091092914600898990706178374357748421271386270754267785400530100202628835321123149996518066989275664675681261143646909331298547410638160896485179036228405586408707005024587869742389608471637653256664631749064347305861323927524146837490451800539658699324608247399816675790803536113298443289232685746545993524424970667738754389810827821005275076803717554437053954915411051806770978373577570214765699611080877207448548791599016308050985376282188220090417771205402895425723870947532072580585633929428345034720047030750186458746833720226817100530711594784213981491623168560454437970943694042842748787305746971239920701753175869230121331708520289322733521840139059167022392503986175714272823948111610731253195804110550950198162928554784310785784574591549524654627142254321483757980234364217190406561527758453781780270252781950972996075011751671889181006268545046633134864467812433239684789569463311045828388010658033178004386087957702585255690563091440211347714972664035299330028205022669325349815244359576036486222080262831038353305061994681586379896223709039881636434294039565783191376245535463816851422660400877356584139956342018451159170648416487349979252907011610290837187636743764012432590855928872984778628334543719531844690622656965481012190131432276472024359894530617637687115835150625302096166420179127653889154442729575686878029898441362297464161755000444800951086668322600366388967485188658994889772498366681361373483494799778935547721587600011403621441165724501585049240234573757412325479240338433817797954576977818073684323924175838990236682326367382313102011410966260908740312874143031109520674955758978368981329082973058945314625952977749922913233652011146038793928237959702211124930048955626006536805955303974098612289690070812938379393251619193488274487882369703583574257654704118295341123068577402674926568827757882845326571973553629158570230658680766920198610622060293336859075681408316916016208499338961866084632714748822433229957819784036160929528597917515421814969228864194271505687035761016285040151720212771915434966000682549134451411286187352396928189790412670182617799446799017273995620484294657918322322662440421059424043474158165357910803348043827824141967051256963472353470312330142978209495594227771013561354506078609186941834142740889159149324862935387454242650270937726362592920366050535438826507145347217651170376714237962539175048883534982185578952788355267203460721435025851842963718234401073378139510347157619979902708358953985832304482152418669607851029557913396261440214501788274612118689280708586842419028291705126086238571280251845451980308382514776322541574206762844093199564011557345612457074132380620133532865060834431443715482373092452010400489614305634148322490103830222193921583797649388185178758209632989772799131367852764021604139797137170736232009241364063338055462073417137903583210700961340161578829745782141227038851094525065012951966334789481062456958216165062501924192306450748189446247004103744423153977592823618233982780588247868203513715447460770857674540497039624775904908207211023857818356015437975503597320867426207207930313538768698999808065001228877616286298865556579368913110494221200198069784032981152478469470144386612700831310832343955322583377143087431948009852383899997324100583615269393685017762450826584553573264745131761704107818886761564329944780444457544760080402128790428775441768181852309165971893197102717693082094299371585573287693357833458983462263195823523464397878581436241400282215437774754022033952777076263753058541998297357127507000007753071882369116824855658985607589172987560681698325384002508177246210141163692526498367007289813314934244103467834675529544099841341252877993137302474673656709482715154533891572804795608554774137233973608770187561537331713784575132781336433513243146226984479036787444204809472747886522099459032601887020245063847534881881224157302082456462404611523964600891861555129032724250485356269638362873917502772961894610080291532077437533220221233735262270868697752135793678521948002151511621971361323437215968775596174355530767184159148256240343938891905252432764718113085637908789918076342895707502258452357360164124320286799044922766149792293046848613604010119956449977475979408097402605217275861717221438103557035231392100594870047985429904522946946623419415674757653862305133241938004069477169188039696537678774579924066799425626527303790905432772165090378569050147184593855208187675331316923072932854817740547191866537580304129050890123693758983544020571620510823656253618446201732412176645153164550713439676677528987893463116394048693944776682012643831511553398797863250644520479876229451807845036151927904147403769674435627234643614122052472165029491286376179616906587948177996959361255133965883077447900581499761821157314595451303871408538393166943867100754272435724520239819854119155789523865331440007610885355422208978261335939335582033569774300473472390585184647489039544773814018860182269479524046446127443172582691899848756268478378603879023605869677006872933158654760923153918123199097846735739177880441635213540876547348972439301338478801800311150433849888480330631258092497285310208269381898648722981703586831465482332668527520169217478790416995031707485977050792004289661904066893841863830567670328698954041064263139181649234499271016166320553363683399700836855526249317034827791690460251324623873181565466494396969193678277985156484096243792335435243120231572326220692524382123611172132949746342731756338257219714050976000285114342978351897493179931460137744675043170403972069048221779985423310070109797368326133419384289890286374122016457753149535236021815382095372035437753297098547291366396126242398284489854537328484249665120428026938155284443037696652879131533840049163504209700231910841139429422506615373204110065032445176756945192662381076896336784826700116953832382461926929338772916687397064274518211687030324418950975580845771025306193392859235319146253276612043980656937239873441090876295965767656369027262793276450211681141308635169911530586872244939806013389699343833390554411847077114497979834914996505006222296201794257960198018857553455635270718376423661083070187231719159263838888936914628019507961928947741036805110138143217132846559325607711073630625192997717000137743545321860553470979980526956725991673462332642937350560552905415451172653881681929575334919394419110135613768466995135432286099216960286244711953745858348679574325005066217277369427720601087923880619044823666051135895923140422525257799719372919721986165057649076708168917187099023478319452460736047774178326696061838469751147110978400357329806057578621079930008920002429437665719429286440452265904917587413424284488182454905459616779386184854181905184333676347676062973493216778567961475996413865623247453500569231023036354698621320309742576368372728633573506403838109053081663136883087045366138014263268086786572049860549272600774026176697796677508980614743560378795980605241774818049145627391553092231484965894671918682540650986192852476361669899343753266631126383620790131947109265839209542911339901867239864933565219930022883480749565403324730749115927267418484158424170677764564448991774868103538038224529632572879233884932781501989214463042849266366405485993310947225952206668532011666686014692192487464487889200428701110019898429511120309007192693507379457224519351830721447469886844626496629783602687903900490134720409799146498931792660851163421246630927752628858285723687964014509991422644194864825529827363542339876346463977865500787671010742062259033857918747166749455360482586486387177804275071621969058059963245585198517112462169077503733418808312735452031402610831202383851659108572394462842205120859011536992107979882347024346554226933613686767103671574965722754188238969534257853486147062164741241723743406040669199535607343520138869715839868685703321092303986108865187506980184990116222949738338224101873564711091419034401026474940251684192196115395266768925851582609684020474577527232609862397276599926203559175646605376814527282393942062535436049897812011852988726390954079480608177528191561552378742326610868236786970142567626910016118312687392990881232367807700641882844453040015468122736314828900901782018505954928586946814015302483640355719375549947058090169035207563904448220100514355298065210121965069741530488409427595241082500389481432462521824843297278933474128450013197004505238237051506079455807127425214473894295345096679941151243903618143414803313497296385720787256724444160583116441894776982682674979167897676356077126301652793027750716213968277265315458639291899117166076441681060905163805446772479834093610758042171604742655673696603406795323985406453247566484236632367807946624072689389415728102869612223058188059113084721929035215412075809069095022367816226269856933322281506456696048218550112866912601296678663840770341314693114735850182021397483776918193152783752935801422139282113218598952263155434384109945845001166685178155480181893861731453541371861407275071021561360675404560689498926935134134083353068808898718570054177124531105749244192018660723009727741939098903188735576540807862573624132885075336125971847013215658831975020966951314823273034836635095472987739099470845301039355836905628942088364175985408121015621907741788299177377219072979112176687800887997152222015766041570045324847279258989393762429288131967472806849111642369430955907960676689191979409529303271680676798673937482921421335954071687859530644505148789689197093419342982343041037261843699980851760335137221440697738462410456553218733356160480085407976224484431176556841806572231572379422056291546259270022625400923012788614072205724231347993211213091757280944099498564613615758280843782038472375954564097492227160251627241990922935031896619435674059837245557873503934842700132670785837816251488727996758271213204489602407495322917890457304497134069265489692434904575213357948300666441673333685608173574959067505492305632051394210431089894820011481706100716891145399297266430049013632436403990267947182571159858694480672167317569318736905802573905585182948366916877183229986542928561921647275260321321962541954152126288794511485874778489014817200293751954326848159733972369151498692581244515932254073923424317273087552035799771899253050922002436743078246060464975087226897733455108540165030227415833990002397650633998131353456507882689219975693639549144464523011399120707276443622593845791135339190254294411413958127350056408124725684230808221802390853265933980290423516469355357823667553401289126988999780718108884129873928802411782337125637264211854044845223255085782184514804274642762326367647785533281431159193508216710367748432255353700261846678846114301320281088492491465961605396257354485483086366388947851812434308934832566199607854603922698313184110512884197598352160330632335318726363917908118581589680783235593324963623185292022539643711533809626564131320668766605259359099406825438428673588569112108376700014580377978328354686246079235140609151543297860441733012818169023415202905817926701180655414499238084986024714393936959707421702305170841245940013163987566922540481368590929993383344198317134573345070637662193358783066645540161385453036343854302838957727496906586298302139178776194931847829088198881610193965689229400930724858392976708411660430847346959133358971690192044930106742736556035169651673787826477972502692271974608495583469676152319268082539789621176925687230119302956303467153472292012809871754231224634114006746314802423990589763512620581204226846935324792541993853094124818624343108646523893960316487601072221521076883632790657721826095441147121800412440308940223631024802370053423031286715738536833558743602980118200649939364540424309258719530805755505621622135973672822258838638661638535978958624649549042539497628871641483720014638234812915983354679724182557052346826235129293500676534318875330497491454757116591508822533436091306455718179376957007893810544955065306743100670215767025231006443637734530701890363076468592068604418306000419832853990317726519838993470463470632123408041254611432063443846419550420147734328241865181300822193180228137573391110453695601051418282530964805982972219108810504173662746789134033816709004629926011292303075539668444657276022327437826374881920733146904091781476463762622715108364145677107428668653592596100646069364360575522821367104041329268048686229944897207657756658008938327905856358301186697087475041345989874731660301454814602475943416460235421604993191619635445190246050005584291902489045171349059249343444925602500042281342191558495795996952786620812085990765883938945352442834665789850739660106362910871457792726447170199469288919569531587184744762182264912723608578741194821082824339269568327241785118105464951305785688266857443941832193799466247767316285646694029676171009013670951492684666179818936039252368869793433146013607959476437272156971696793972493572364707490452346093122220706253632058917018448744733347487701064278744853376666185864416230429554574654275115432432080242042624022094325095830085152636187312167427807016926053420098104427107102098717844456805266627347025434922310500489262596297510046942207915228722361986526449826562974492087477850067351781271118194591439908748675715413276995516263900573339343088904751486071987175674121894477457509477533946430689415914525434626130593639088243196158459294089099216953124976942725967100957182704329038703688183480541558790857452377431334034097417355101409973717121047003234216293788344962358273701660194344425825811033510266956154262522543302222780516452462844133261749120620575039273215503703170968517880236281576396515549070472345900010845830834900028916765477081807259320613354157553959489276992429690776338891123760683816770416052079115848019236657358801788561779694709467672904999264797850926827436783400410969643401304352892459673071613436043698401713588072923761899697452583563832768855192141464419332207920162579565569085390922322980399702269963769986823727018668714683700140530682977545518570248248406266253975499365825968630642685927936910033249626136074108201150831842056584936229888357359218863837528422160384995447227153265376538944636046020819581913365457901037083714693889213638986588497692345195118784517326572567113366849078964061188468632090328343581622962216122939409405983382540918059780341206453677404530904311970327188066691754900644044352087883633100441954227071720008372426864181960243251445162190785032861891016721460491469010284385359848403671829208808379710083467347137544714703156024154570501659288113613955291688872750822650069109361944487096877104926389213010912532143000555190856748966020046390386271140134515614173045395513933650862880733128793342034301486225733980138824540196508746274702371533452996583824323964264278056165327805381419251938812411871005893169764989259246123117693388464479673051821735528301636104901381099444130320194627896147285955954870449818299819257928181756616335506291280845093894042740551959928223055351127388486372092309750848323837006827472428641094878713065694402217987046354128893736765843942809246243655856453292766188111916491022439069973532191038256522949014409236301986748508016588091103630637645112376837841553566848420440805129852772763111460087683502762390454294514776640929928367702015516895034564643304622257315217375630207425801455095137096352023837502371171677324278718601880577559957825722635563141549800005091336641085062219154526134321057515176125969552277351478286945638221463813401890026797475496177715299307185728209772414313681111663249748180639694389858962522974821102604657558241362135989755259476921053887213643649897271014004985692396920510619249143586681804744564104320171085113815037928621929366601153361350852073476409204794776992951399183825788808714482931930177283709297275097660405003830292050008869315681210696239317430622584020272949836459530180091809512715589951028567560747789680328868019504777098792602371569674445297724744211368410115257384317072832777054829523973755054081493219246607972205730151760105133917364132876752568214566212593915490992868267099179966768288997118059672383716370058802561371895070021065849100228705242586715574860044164270113263902659909210210520362784072286819745430816569155097277104954310327538403086281591489710311569662388320889078262964621866838903778663678669850092354170955423455916754654474727243634207228672592576981669233667659475073335618074517904131264272851192698990992855056350856089442913266683097502065256352946637967853862628974249080370169586683531068222688312986159048847069877559185884944290314388893902582204749269531006957666393435930864797597641962891701578612045049491065535360766337646750636915116722481343414245122876205813898048644831097745240005035928331596643095780118990835546387613719685389636497577509220041869595651018763345161658923652951293264470562914710353377352448103384050391632537891181857168551195296188415851435244924107681648885911271824054286600983434452793954636150817389892438650333563529085914406569554936835721957807084553768958371672559227826148134517320275424805877542935558840665398431801731182011636094164591110621829700116504414317442705560882090714336544222736742752716557884554563441713741243967062928285005635069875414022533979451596376267796533657764282761650003657716497724742186574057370709151173513234953426298634992783015256903283885620497134374291476674222903561906857550939761651230799709338656243841724722481878306817821437298594740843747527148561152894410346837007191372085620155967109886885716412972291541360939578974804240966776327891928907182525631433515226271369358289741786356904760465718381700472630138118321877857693382725123843725315708696831764914416104094444619733869134272026624638329248670767931890189884384493679251902270947802412646709651754709855043497083638156456325215946381632834111445623069224056789519265069985403914967221400329626493118718796187494746354589605200604339585688293653793245070539758812986764302505292004761186657152286316783461698285154125665488869372828039074800908834596274217615675166783040320624402550202716266937705800603823193624654731722763350165210975457508033422028041086043372242773921411285496354319054703730140631400717484467453228476194401012693448694417843017618497214350593714182072814298274335178586928377061766279379688724496686827931407693339828715920558663134244704857058437292494735834397640140982109840723073702052830988086089995787852996974024082412132616185246987276413715729389978694650620703664677998019711688221520394745794396660440303687574086809062278477546131843223015967535267267100145158710306809984014460751589622172735151971437732204510744327023701756646677599147791065597964315444183973496918367892581492412130894267761743541073923873322984055816996747383390892845864546556039520562161178141762106909157569337590585308500834207308486330882904949507018228611643631303754150318216952173707808347847765690243180331176030923244818655958531676797643579656572232141073886978017733912656280979016910937624498367813664435157148304769630751195798057057115657176417606691516896501010377618412168057289319334913704215672291112593196333133463370375448593164351245911318718201291753258255019779095012069698945830675352779281574964060088878822888506472593323311510004242121296121375589092841531874653020542420084154026627542897583611552335561660808535291677551965582845957497361978450314244181900460790081053051309074431647249153728616522750140930656704326298787290542833311460713372665613047741217510847065826164426517632996937651185212450268329234976347363357795292148234913465404042721274210290377999869890102167421659680712995796381912136736473650944320332766085333669230152174175608915034220700412236542791227736829961357318454409403671824270785572186067043495925475725257616152665387348319348785574840222041830831341927760371701455106646037676570925960259227606819835695542746005283928491685618269609234574463462117918111423479764751233052099273677276029514983615451619500633535800308595591308973929549759853166522198633845792651984747815712546360963934758325234130641821021278218935204461067202057864909375387200420295346096695196585540998761324062182325163848265447751190765102992950393863009136125008279554979153540198548777458370856490245862150654823686401529044855125903768124689516054182449099139278848231690050073375075153719596644482372330260162435459241069056716465665132353421025835173240740039452294791115032218937868554264577811757254528494630075319991308953247150456412735243568489971890784752432404542825973496259001291714868126290408432234143090903897293173328765332692196056294547706117685950389864796594196002155726967030770643598071911771918527010818760369027734976936890747802422888137690587553299528644356185728051608035201854996847221668152383210687117623502038219877970402962261807156769822770951923545394064171756572805780178976452032510812055902215617330067426926047454227423031845682169626009449725349267723221001949657339254251666855949225391853235329745350992690553961616306972012385817416630567616463476668029037993835479416817848010256043080512437884329489513384259697986140789916208697301997692452309850396422544145533021574742347333580982255033715819715081150646198041649676760018296581485685451085212871375868490533495915781455633454016146127894026714393817288893270302715173527323507754035778457605780216895270289585036791636006937505862299427339460354754871913841876287460906924438569655288940006628677664893483687479301117233088156281968631041845380550752748740692984837109910404839346350525597413076584322869968608259905705747145895282412285309515830276125524167210154387836124286259379874016220427213402758738772916783463086180135044145562077343996521199425207287857710796336792548590875325449934460706060039218732991251325042586050101624539495424696119966004064091452328065956528534780720650264055250659048425260956906350442732640891216995773286360217282268957600922140881360782513635485898326378377631484474239044456125671107469441775342544738137296842499769203404212568354549430779701007308197904727584170917783513345679487021644174002348623911223366853314855422475800406324888127092238365587563841141061375290723347158541872696967201541050731687716631351129731691974989218716958198479799482279133456168777589429171305696520166582528479990871787030906941430332940244083374334935188107122903958243469760957234666125074305931070925901443585487151556934049110553695545629870354657923649978616010604414302006116878278325645052342890091824589862561720710121264134789696168042897856766846437929485059538912453403993957384032023088260875379454522546780202030984922419812201290902075603990219551729105732722156247240930728086914818288296303075467208807030437528051574737319977549668665124755703317680308716620171104653092015763922568752379628914586208916770529701397064558825880400761269433984290124618879385749748856732255345864442614343316158933103780092969175812394683239695338727625637272517600290819342046005564660418628066206362104057258434156933640230168252112188570127853599328212877651423641679461338480319453226198562685457684348146571100190974245641053427271364727672287140611210229844302393874094480233687577865595724366743149396057759557399960184226754599055815661065652626234228962176642499363701024989852559543490051949727672505521083030681002041936527473691270432937433808411509341648088575458232797075302933453648549551224224589335938559395789950517527976671689893518519568872483675852534604354989657545050194990694558084608030833065662804020175372550156821258563473155641033565000082440334197403342423955634341326977275556580579050830834466351530808085536394268238455170747455944719973813328514484601975053170626805739192374919749925969064334660806411461476932764744205407197784254270637986941316074536552723297619669505735858948085456355409160375275077434028725188563304334525162725645047718133278551222566144049754092255459057587037564236560275929670983246942650199331048263413697313156860875247258403040875612211437303654410079654779796616753176413929170246943910906257851337225809977559738120702917881501606019181986301346505834441468244704594739857911713517479361502217033024076969994081684445122808378017135001975094174826408443982900402971203681837208757938504368621526478592987684419908611263914900957598397446860579816996209505949062849930059576266040900007673638134747258615110245815729148630371030392650052833627839445521300949010193223868883128177625718249750460063926971151328823840213066627403010850157389198996505960074622862854233083577956692017654336260625364961383361890878084791939908402235599678980123443530719062157375428152671739361093186714333010399113511081920348988091912614207974990228489158322510635891470086102048600819847951261001582036582010810206021222125441685023290951849316275596823400530308059411413786654981573480791619828601759125890079828176545459351342546441350027041992991996310628038601753443917040404325893376044537489380142787265667254042084208246984294788306847746980340827279991186654580743765382666364020008428489282672849731038857823196622686463840476733186769280206812117297710983150852762301880677277987065278007411220852450647683321848259306476498357234080778401964080566338519685337199630562890478416550415441866009598093794164994995214640414723687976998670128621066640990009057346394925451840374312904175059296712785344398569353880264340887653195859553265143364597680243933922921455065902664903620788529132693077312129521029738787998290110583179481465434229462686485700501100945172316612403953786427383585417391519208282146540068101314976100810116844868107967240961443412750441077207388641230830025748030897626278339359910389638897431396737752317866226416174769864000487773056345303103569739360158057036712454660215512767940264327091065903293976156587153592549004117237671079780101760255006959062995037344450408886549024936960230392970538940276564309645469017392435738033767395985095104603180414206336543998612597847772331991790876952080514546873690701151388328395415989333960783762229174855986082500517152572367866893261019450370148577637864443097473921227481462654117494666139473307384803263392145231921215739012351774902998426121722169866709997042085178084262048808773332731710598710556563724753257913952108087696460371461186764025435522686174930962148389095611204651938158856985708947773709184905310231391714738632186700373071861579251160267221338041397953677674789928402813642770159562516077711352457971563376524511181454673688632237514416418710004670931400121203273680933919969689651201877104995963084827092330833154877192038685318700508546038181182600747450819974420473745367485838043901324873449630483131440538180788669323611573855824290525063979946373410089890358938822843687349050394844109238212410117928916396776915922194495489742826458976380680672002058645081948837479273688561684715268847781712196824852132132953751747829095494063279031820517689471357104589275654856823578430662344465842540300431382387775660700572061150931278509230809302142524762534833350897403194006985580408319595825747858013408562894707694869141402881110230739485112374931653571689460615593346317731639908272524879120371128926567691339137902095858070912492133385584579338979090366370466364216735324950662810735534359426304075318221539379241750973863824927180005742298933366326882854937972599606735473209913939581379008002491390709840129592762992519695033407441732123477308081279640840489550593609139900162719617390742937420521619805184741044783211024887966130428290270635542164492810963417899636821458238829217580515718636584060636341661117467511263788859459541636440612384184734881126012213789291681021605598142360864084821590622051726925365962080310469852366371615910826847854973321502708120139307896256088359387864596900789220334541614539611112327953492884463290763957382974402808037735176338338797985334775517218142820805234954915584091294219773761086915219998816819219614142651753594777966802601433040550588091953176781571988669231705933486175421152352854901333758667729191362227543541112516540497043843990769863082950303810554644788088454939425652712098220835263958763342792845235464192316402371500115163337379229617065879579691035968917086887627852082291321927568543806556188207009577248473549286021312536779686368114745658820206960633428769644094515244739289182386798718802671194433935199278063483302986178355552863288346622855330069292700350837224491421516404314516284778702903013348480777538087509258188304672145670362140969986565257068712958033934204940063890107912442615336873604791837993067764174304352417099668071525185616031499758012691973166971390928815762205389922906622130603351804689621411785605598015496668923656838056770965918831053301943079716163671221281879511600272995420418941289938575220838601505833684765185936795893445630668156160087879340844770680060103791054338883595939223526541943167518063179468475511097396484705973541102201769990786018001957476567013578473010487129703658958355064787003322224836707089954183613083531866751580837503949717109229267011492301704345531304655123917418833513993993228150438417617444270530047966351935647951216598701241354236539544328721189918101092367080702136565901738349418442120331095658496857327880985150391752197733028207019433741935306757339073210399567490438059618898181263011104447646845073480962516299439733785895267341890992889498340637973616502448786763452144968203167500316404498524803152589094733267904084282177567350998887736337386794442187333409705117724031141017464787206617097301918725373010230721822678947519004323382177311000568434551453768979893139814376016685957724482267918322663203062525273149049499396186933689900561958845321748667152087811154232740456939687286078089253517818670942538109084819632166450143290948176675272691467926198613103699326824018942785614730614325177610265529036601914295453258614767661859762544673879850459101794256662540149740751354102689559283586723099815362278639928241872970486387325608964861759298826782354933187532686294525004032609480822655411501145388723296236585050653210519354946384449541842389812573937661037350711563422031817810755096968797448436379160996919830586707600874324424033471147107370337317798687677758738275079374040786424476640150815630913075217902619341370228173433017862567362151127120331542943834481974083286511762662124354147209067080353611080566799629589277533444197997296737800139121545354491908069848948057695228232982234215397507639380126388777207347887247858533666193684728846099571316834022367725189518293245796240560914211639599992102504034918102163573761789082636377200761576653727981176966240684594604090400190595011357934882276347608022215174553701513900263464586920073537794704439001018562731753280194816889095162083121041349766195409133347831176482095917424159605971798458413795137950191374642961900032270641594722585991035463647560438797646277720609457896535370708499474066835510252560829437175902963499044278399907363322399952042292170397161491549587828524181068015283328667783470682432792750893456065855566263172205650163423974621471840018426105938174102091646099921653250737673222121857143849942507343451111360212155615832985716237466086080880392407719249537452167820750812698703042910302633061543226417254662244504747177792720854231325599145479814663493882334828071520841738200068712928807317265690963451302159770725302262155891629381781035266656674143682052792005269283923361964878341788765087029003910626266286478840765114444966117791370771067978492936563819512642484757433805101180734013930645369905103611450435385151326037599626402705384909169158108177970300141298450347583241971870979951275221429205569919345094378977815310283963847320656447723849070396212854309225424912759570820059995450554114516700008564046043633725189031708431879964095796283890634542311011128220601325514054995980716621397248712998918671766963304967679142714725662834405122748574384752076151598984419923064715565224401868744864349481519278490288419178719425003297743043085206157816508003342959161652176429090382078765475695200284626334747019451347662556129492709034865851096196983603740808993707032473149036575236650935663771205469568611046723541839664618048429984653227565597243842207005814656535565393453928149817821176705910565713130786978702017381446338991994563411988671844777074832177113795922767605687987555798743131188358358901817333531854654174542142599877054558736043262953820971877246556253614954692547067797843803002140546166977600678917946006032298848879392435317364533365496331223153505572676814421267312330979234867637508313636510802955641843239402770648729453274812657148258245144716610643184696764218888940101730551918917273869095888402644648257574687799889411186841476059217744611665029234743065915786262634538320160846146336565409693070409016884812418844836462529611941316686577746806593548365658764694539835139257471354725699400738968150546696261437103742597587002489802292198112801390939652894423633425632707903910963222688528658591983200293480137625919195807135570927777210867928622124328410275607697786316444590502160594756308926267876123297521914165158048998629454569454156282307621694724165919012447093675235320796999397686953310474549388428918327915898562585375204712183611799267303128344382371996156075918021195560434508324951526676241930207523322519504478989941639344761898399574988644587856402482197100578883634661331421555423106336916747101967590974233622320067251907167968089916582918871525967161698925625883749781397391533515285138157958452239322089790927984778061943737218537491520855552453104132543075645949373855693322993868507356462860446226609795682204026652572694152086406899464718318671828736606571205316283805196704918748968919224673884761267961840948859520109239328242427840707338792192316297433727125237457946731486299747622227922717391491525452373372445588374487260360146439734603397686785355599024432304600369638288344324795267213364377003987203023503646548223317741298997111313256943257277678398812591215624742054617310316850933913498433238065497827263924627679537543835499816489337060800364644235960272396538218682875527993907464223081675712983734868835605347073893855551380975646122869021102735875648627722131035878074082512814331382264557821060812260527891574691016113395762661330291154635805437855928336502332122644046988442471330599920464362427767251304170318934435453322243091219710046383908861198059751007930728413477618620670480928388960801227662257444482582375380481671738863752873751403556640340857308040053487180866915916566600586504839418090373976583177943253876004762264506810758498449911589415010509128893293189470405106018808989353140767503842011743918321648066151521002973853224063387852766901470322545244853949211035991771199981042449273810743922573254429776727887590657881467258017601041101415496114859509601113450066077448219562031841272979855433018996155988396818198030938962314737938792319611161009650159738555676425247499843777091439581647337096238486492082744224390718193246714127856323355408590768691204941854616227225676554205196236932740163437095100347658406125150212832792545787630634896897481555313966391053221919695751183300655016367284827741020326360504998106688922185030410032325431397596589317826983402710897331872768517946566722915409655691894560239081808813463370380868143741514434601050615772987266809443138328756326179440288308134226392617666954230384025688358007377816290114136736075268683572914450164399708376891841105307933264195420172812363245361663991598009014552114693282267011658531459499581883144817304893372228278780707035662735699936255081355273840814712585830407039491712291336278966731160220837587848705690702205495232251028602790185076184964862063032991772886168537060410799634577492917957055426458656415377007884966235006473930570212881651299925681933082436060111608813007868782007452013945494426019015101924714095921701696923245646880309140078272261557238357678474181645523206297632946780676648826625369297482144559576596330276559447288672238545103974786283148023412168103203496707734410904116872523728121105253157791253434924218179081428555037534029044783805615363491177140278643161770800006422202506446591991403136897709419164491237844515854979826608345061560248401994769259634369493619731597117671259975434653046785120135030638458541182543759352224563090526224628620666332765888073629881612862053326028310120694142243668753659666130839239066416744932825213245827231798950574982669023067862129104983439110221830697756693701095673395571342410810178343104698950060430026390118356369280501908517991963274156546056206844819262232195980714481861256670723737939963532548335808095858368415700141214205441491850563775334235782262032063809040183500211983769644430813988532271115290251444652075127904683298385216902141292033432032596609826585358140303600635839660933925488769187358291948995847288501978415536615781028456181887169854538162962851523461684517022478216867754180520569192623237231097807337270178470957221645731079867669563321032544438370103174472586788923299243970787301999343297191846916510946188973888804345667018335486723072041354938047705033448282300345145431776943056150731257818836572395819022340161054994843894048216719753269667974237851423293925353110814636500743707366548810963963829830709215805723756229240051829424043255220230733057031377666888679838666365375205693091542917362338686184340518983478061901640634765941196480071783744892745951061401360816516951114269141434002681752463810363403282884415036046599260919034984733255467711939340294175101048618271451575357638048115354429764029689000554619843656093736290612560325392168226770087981914995419918554968791033225440585729308759842296458518619546718124171581490018873418052341614773375450912954106320738181063368129760543268510623418117738056200478546361433722158129513829019241774555610287768314905327350133189689092493228358066262760560334279267281718715627284815977809765661769977258453999413446045413383007912678636800995443608487455723348199239986671918700467752780197164666945965417412948968329485100693035443968417196173777144864369411528938247557386278772480092523528485808329181605360974256901346802412460720887800052536544210963222955613713820489801518408173364990514792766662348406275665665504306589685742103495785497086966611059153183996109251046536789447224744953293322177763505853651853163351502117613467205938735558602208341527948671641442088302900253072022468535394639455015986040460103494270180108115109938113549422882871217461577812213756899231072223013503799397001079196735793104255089459069977289668625315203796424471188217288631200882065848477860819493313199681305991657011144205813034337074937421183001724596071672221817298536776268992691167453810939322385751687727584439887388970943550441456694433776651241712886151650987691050008652143100883109400340915638065656248891882817244562573091982319290199260727353849800286338638610895961479209815491499096965880043676178771570480087100546143170841461726421827141011947850242063632433602693730833368184117479640530413291464490735370218515888473717658751870960322310538976677255259734133579604836201042599164605393155466124933551335046345298945428465472183629581407165358701296327928329235088167914270951658072906068478052747067685757628830423112391249969891920194610052393035682063153252996877377829445729385678575780071774005099281517015047665529276733125366406720630956296559941995094067105411369138796078271383142869696960130461339128485195175697788514490288874026533375464981602017539481472030435961685517258395687450632110203328990204769619239343467912852014163150021304409584734532902827249360817020001450184314108239232051893503338147673277125032969558604773813997695445496253467585406762303379995339618867518256323552894031006996638937145003279853002338056812194511774757171695246568603883692787690315323741082933243994046185194475088220160651989545108402163960876590424185536457341268158743109549681266459677537526805844502411374365535815484181461115804845004666971984188989173343870001613512173402405400827463127870112766592071935336915622818573234893154334208199115463380237820193316527850548618736261778378951362658353781898898174709681276738364628799287439636217075300732593229303249918743443363716848336100025582663759864186922495676699730431540293240773763181493341010715701356974735987784192379626298427712412165947637260948341015757011307449934365716040247262018120528688600245444297297636033197155531744445486552174395688532237853459877622633256267602025701493930568289407788737785944780814498431498153819452459437695917479316050377261682899311535598542540102945902768035036507774244061759951762389982936755072904243580082348076103759871026675772742816598695520324215125511194208976447238335656767174549736433323083460301615173899175452105597871048020926602890593192657234846750345765494530743202067566575958461951347901359771289276890122941065874036207490030314163705581186849569253599315929123692141026737640740987472332550947418801005215284621090354852752477068554930634751084562917491739850472866266917171037922192436335931287930170789610603787013504402378933565095234233119075015996654324241231680768708793810218836075774989623489798182931691101775109604929316205641042129009289725103304977827892544744200555287403471812866492609958268121303530508874470210697047336881904073284122830569792696070075327762859619798521652774481996258516472370331040794282659344328056351119123790479309925062010037711839484027401165388823435221849536009019462113427289731106934054689988520575957279638909813639918450420782917332403522090415070789959567848677741761748978458840273172980028323136038459703145679127725841088014217879289337495482601961292582972528894682539172181522032945232968502286255671463489801907625512669605399790471535557538720499021021718710858667552512795166422724675933279377778262656243290331491324353649179193392387188969590305122106677086498796606283691568266937087742296427771039344866448174553746433033965831677867994472146513807889703949132614670831396378439899769429720819416308431839432187209691831010348501776072401879069864254306149458318689948736938366141471171228745595530255523544298362535240572370883071189102736342815745121756233411174417843071716387723059677728599552447057061806230047917587225352796041820686444874570537542524123648024843006274305825247823829680196862633540828747602323688317624193711913482428255754325960515036956911735327588259518444253852686687459066263554042969723583988305356300408732777208674569423624670101273013572625696651875619519752250768344529364770509835583953998240034947316919128278181378645001182645813864042578897934312556488717607470752645814696763515421793336947674544085708694684522000032723716089947425865553615423896020554850827975305455486631598279231522708185141706719471758239623217204950399664322812601427572311522183137890877378617500202389206771928938869442464221617398498563905223079730879422871171554409693919567601372810236773994192383104266169580192494769909203916309917723179711866337510476156740166030180909324033314121876636161062349780981734892509843930609022514820618901873899814717348422514988429859468573607378717523253493976880764891552299048753175400391232882634675525987396488737918073427096132835599843735101879541152039637934819145691286644111098668057591773295608421799150283738075958128346185015330164623501827254165611596695286845311560256171397699175438361556963569995279896122253236774489124250058070374815983322764612764689074736402068657320346836166609532184721643721537556953188322858702436008611877086578613649978792554645879780529992209190605473973530074929778539357577621319523354167850507894695234035524120839342938866324202750911813694062898231270082152341423197905226863532015805526112176091708512577256707478745294300357350129528899244020953041358765318723326158046211522038695598871647903107252409554295034188232153883178161997587830374243475778327730763266845324857169886606010327732138361765144657520408663518093269594526279302705799687746076293743383013542876263095969602236019281071553511020238687341578854025135740215851209885162006328284719023993204892554860489041927692622527663873856170020511295828200581062335175549392326177389961820451770963132523720072807394434384057500002190386464990691670661076571104047944026511403627692480271309751831224515391741101797236867681106777924197433047081217074202119037907491701596616931259253634987253166299413212903624970112758047567227750824631148358284136722051521293484948578406181216750058540800473665831122840420538249835143573232231709854976653341494323896336093980757198536408987538439407527410182907045393033674678729507817426193159031440932295124454460224586480515852185878144866865743749193108701208915509222034618430588195305619389418618240999546512707768697056269014529579340276469345282208963513323284778987546175661487810314690872248491297139588146815993580181361283684261242133489028798664181924872169225362029653874094397751189334008740510528548908421707508245099672471397466273544440295550359765761261465756400721854717475116611201063794383784231615195906288610956607153520773912208507668914009041168167991251950624554379452457342123454864237059648288802814895467991226017594328068596677123650421058682753115750168940617975956336847240568103199945416066337497009347859884860804578054551224540838130151621901668304867445217361385471145365123842941175963461611750106068077278202936615677122894738076101592988843472180009753222180393022854706424465125110807326884009135510692336199274668674353398187013368926886496229457044019654875447177129014388055027064149726612907224276622252999613728206193228144276114137216030602690225790583409802367090054048543756588602622813544354065666295277188857019851691039494155419810625333836064018757145604738309307799100224261766691925748966557895875650370764893008540572829381052248534475138825618806521146614833322884573602328447097764464164358538399176630118915504349489135380298358052369315622614698288628026111287490754172060898444158139936781341919091060854708639130712434254676537216650745048761806669444986490024583123419177957019913445209577237539644416686561685618403476168069046142100600792214105403544716104810315658949242469158621787072583756491032875217695424952107498689129483257552945563435366133873759998682052480812159864974448080669813234524769399304199444306159327310221523674721022888128846729369102648917697806929577041349740325566220505760852188144149895892305389413787486697257797748186018085329514114675159251308351752295596365172932410557306315514265707502118349222109003837475434465161620273828195247079404049066632905538056786409282635908948629188448275881102864324997672503402353334090929204204462384974102873384858115669329683833456315935213808878495851127424320474661374306279364067509379260296649116536368237105169916560484330880561735485209560533886738147034212768296906731783883238938819362015380565909566619421316990526257272478252776552820627329162380094543603123947642099107155172166597763727551771212465210847029259885511592816784023280223663022289459510705785433593029362677164418871435913941925856829942239723480085602558703759061444936788767551147475976669803061283900358674928162699380798773881181684149413527038909617511421256467518708673162993564951486735041907495889226669598805006106579842307153593563395377662605128841160467018137074325369953492494193889066856126022117752911352093953974260339160767782115795855105897359133608750208711908162842237252778513411452742351748652412632393307496579840612374653421831552924173826624203781900080095938660990220357246608577737517730051745867520842738636167430273515014313233889635439379616358696478605077811192778487367306697336795776110957273197347058630715001286214726900747618237146479870619028469840922377483163818251637929433952089581869739179760774522465634972966256192469694288157226868403061500432596832643555874040120901324732032401513405782739084978687348394418878774064094796381254070023725919397522809737200234904014974413240679255029325481936746010650421633682442676776917205195240170965307712145960286762694347002801279763090655917485668826032178418950719088950205942315854341052030332912001164076190256779926212886066790843028979111095308179337555159921464781371783004010893170613986706642530573054409107807812987721903431620070675888856184193085929239278653160514879697440555652012493868160054170519282037135656697566004286107440082101172138208850375672414766489104533463693601654605072617070747384483774315211190406939624647757861492014705271880618133859706496725018173118148578029054632028233474229592228800269629915406632570255902905667780700165131617957853293295618882520867365314729623417113153181300722252703404869713766023177173300250576273757154491479517356339107696696518043000198464433349401964932068996811078253542552196530071292436010859547518069579598024367522133554971753497087703034009488944895516356480673328571029959547630166362888137967229009389263963777837734454689085265043796239466740242591915116608695560694160573223880074055710719649677062464854874988064431601781460582869316287824283570898473282231030960103357835354467591247168979771978867417159053188236914885381369159973800171791005322211270894964747563263956463586509288009178072711599501996970449510525764342995211490380723258479159965732297826977629212323213198086330336431353947811188588387075158412942699906547959905803683680483236498405475686225718415182337719150168644306333617249940668373031883687929876641913614200267820435581187779691985719454869968740689859557202849234268779684774942220021727615416499343939088777184023927808553616968486278742176166962645955879184429722439206824929973142678693963556277040756634284902372362373254490253249803811132511741578891390937726956062740149631765376718653424174774658371562830356793438980639794618156084686075396979687606359853867626080135817576324759578523251110071250311737373274557021962941920954215085947941283657039287772527150536320624006540225324734039662737530542132870797046134857712413456962763327286263474739052678103812919030136685974540797693926615174334910448225559799118618117994348185460712165874910539332423938775118814412657578918912772760428057639733931090474542367903095158242080381539444095042488900153003824758472409871027252004885903583094129437676486374031877621457483297902228282929600885560942020154900464861828330959544909108731985137320293974900112911232417904665858532224992631121520652117743169134872053642133245136170350677225918504811467047702106697646760673515020258801277151760051656558967889754099788280345705934289138079349744198722612784108840541295838807102699389106881598317951713106686888806171392225005979241361518759449496011491338682646809791304222317253302146941165745254582711410098957849174475818715556266515510591974884175019822134404255287538802899487817136828424948034169153895038309709030037455159010567881214654424644736332402784655990337324627833688096840747807346640448341098808194637658597612114776701880221621349708575387020113445129376017586525065200794374485635913256958253344451178781206566684734726262775438728631859842445843112179836285210267821609181456261566096781484913637375479293704992578147023597218488150010883936626870290516211257107762127769010722121363765774420120371448470968941892897391122510724882055692755902766587483019148404221081904704671188382922563500227816047457978559888227050884451026632846529449465030187961835273355102746060412009191282710203673501858990649510537059499898246013827130340651506641672871091056706320166145804697432821521360815978865013048505669203505771246795373208201018072153474522490121870895338359628169501569472745830528269148152283049180644480868007324005248426115103057986463290660737943826584832329564713086961938469544227030777232635516816887147826769658987510988765826794711581184274577094881622407736035288546983882527811826365626207249418292044487926618380919977251478482636386778298747081741738745959789854970469010043834904795013850285126127781779638796216041324299017799726829309828340440856174420907144399818005533622309743696695829257103951154544646587570951019332109134123659112206808961141678721920607595888260268220338618577264549026558270591482164486815790907427665469678908509180765228437260556574559409095518630598148176843883299861536599033695407775552010996874532052354439000431456810901203129797019065839641451475522303703484320422070698433256299616987741721100376276961826571227733175273319452469272092402196419370885060431615101132999177826922368381602351309434887172852352300975608487225967875975348423444412907904461194951790116924538990990959494209738108043354770114131686323923164768601120888917537420413069774641910526421640088825513396105440902231760696633334796595675929741618449653190158207422396805973831988349155501874525066421232742698718354092645116081770890018433315089308985095360517716642984688882408407756721129684160229000611423099767260402358762793154524999449974503743306132061928932085417783726051947227383619924344542188883095212112054496582234171461865976489425262215732755978845600517935784010462680916035866313734697173857692316638345977595239692877569040945741947980091160646219745192619192456125900349601390163279216331676427418878888238869479810625607986425138474109316236953674786332927573158274983016407610503957070248873260480995649194084435855911188475738303273693677668427803742672150649549706815061760899336406612784777027372748314285139044724659337857589696874242579380981925359252308134978564811842765882709162279259681265630882520507953954260146797725217190652032293188709771289492579320672248100114350463944841580786803555713774585080189607366221878111463533607351050029739256405910105459628075638353145371299185521427094276297135169495412098760847744285059861741573723194216797799259562628996372421221674560165781227253539600718417840616149378752816475605463433543894278050643962435211042398000397158900903987207379074793280619396784276382199936358168850886300181488696502539328743912153857380486528426200076088095183542188814664424468957626990062568012106598809663939588349045218524388410968622371178663908143395953346452641376202417340985594646157705701826922554399690897792806778252207574794513034323175242714181872166321155285611074472801813627417465047598986415006296996768757979682163713459142709624400032221580168225600018177853864297094052166980166869554061016566443859941949404067173496339198272316646186135244535753988543655859657815417057640465854000042558245000464175071362051568409514517348141208242673625270925753245020609014773457575291824761409211883970094666630532124942019015189554821632498850928100814511279310067148345296384529748687026529996485295870186893515546539734818601161458769953221702320277148207799091684929876921805913928053707331007704132987924343285643430852366620383379177661695216642187190530332737258449002942486533650040437539850199980276696388357737410535068183834919506701219584769726978855218582676107834826561394306537812687363211514872422480922437531152139774450433117091877519839814709380386147573154090535841028540788785631926416637195229350493106169914046201608364944032593387830307858577093980959344330508529202326932673102948708682550176301790994882092520381936623749487409988112668826625330567174175948626523105027920484377759940664743304386449936091942384342438232478976401519117795214708103813606380857435253959285232048602077603362054308236105160951979810755789102339619116159630199087666051179000347827369096611055938487434201860341650967393221404786048797447575402277984696383969377257832656768855765088108559679934286615775652828120896850724504724772484814223813366885084207075449755822028900827260681787434406882749450470730039248870304705926561110964857291617683428798219669563964608661275842561162638916194580096989517262790945179507545483772491665536923853805576384996150293048345607633288127566854139917612088148046909063411375398421196152948516290143728857208168781371368015607509604410955621405945905480254106156443121612572982661560506385912248666328784378742031576995612163327311837950286333277946908204685431784140008263720448119080333901472382872711250474759627466727491419298947390029309294724596220307726117154612873640321403675645258886852685884585004075073127587730731641416044216062455760631043254131803922359276546537433328543865395473034749959753894263543860650495255150287723655342085723880930816173835289699916163029173159417349591375045724051874240710740309747364097831535009723812214086903146340929001860485257941990470113242694069306256660488104916382354369334967933094633647930901994490745142149142748298822532026242255032504456347322688982760694731083332990015452088003615228128162160245901825787953253678799802318839903664041763089130401290504127460790670699145714764372463296023972289415909250592258402309527472333919362117231455669186379269871086477324009318221223761805623670226016853672197754648255604131704530425014708677693958189320167466038013762357361738024533058539186514150966658478266547601858907652964065726732572514966820125305923494872523296373549831481814766617422390449483472701140437868178450296626184708823451337263740265479921877971775343638417735545433338761963944746293259848876221128987783223691436746650291639698129215418759781520579453496964866172148905247943030633135121372002253900211071559548338122430401742185453186256789585468345199969056032336902623079044868013597541722292383875194426340625423964456549477612148152787812846378542451839654894970442058494392480977949853876155187913605182681705032054159756782721651869051710737351544074312492184972956976092922544827710965299440660901387434650255986923019349013773651808050097473717698384844380793655673601431482021791527340378998878054294398452721358255186994332902566865905139069912508164776232452149903366224535649438144808782476424513674541554462881061844329772737019077753535636480175003451192336573019799073770684237914729475667112034302452045352968379663521667357311772254017318058759594814167738907581033791701288621083636043154674842937160468076460042642152731915333688337390364614704715849216497033530314212933016874521543565302313023306810094927780556967082383991830098626535166918821751774620132813657155627715553583597375614701137994193595110278244456782637501501420293093994629568166967188370949915131588347599295008118994327598522305264545336270377026324873880821695679827143252440886462548537128127069598602877119388854401429459454644777267030790727361124592232179785831948306233884055234313528684514695805086179305247857229909788145392090789562137945497783781211804985165947878510141699815082934841008419233098028815120054173605575192904672568805139378918684077856287547194857779720416495176915304725798868313276273524358924397975625971322474959881619454856735344949224756806603509132114483912926335643558000227340190791621290919736494534132400292769230325139140004534890556634678405380627106614143748960020480188172941160063357476640687538422108657818741142375147061430087193842139013251208872598225424978892346085831402132236436062311903163425443603299328116919177608706510351983473944059469423746440482262866914392325871103293681953222119668405848742831457151033857049278749482277346630920570005189379429049663153876852166782919087821957653647694941062071917792038278782985434470215521439586204514579953215177620026172785117037404394681178096519007040532990641558686770320116501290947425225985783254135300490581454429200616214355406189707046959367474637563809425064856747202014361326317687218677289749684078520080382101992555803670078739300980583340390011712332355113911254818808853058791942306800871924699541786141277928975877753655851894056173706965835030581207140998242218363880751823423908513778516348600950944734445942211604498141743156771303583060468027451273096234679345054669619754680199588609817929213704959273394091055368788756767787069137252532425736608851400101500019845880959769322443043788985337582024828236397976389719293136180218279696422462008942719813396772280345115072767913341061981078513021562223307353250121399136199104175045234283969987932682999157725488198057559766691821300518193787659881956282071832502569320599527578765192219824696263140451621490016967627913208970948413201207534657489130497727493919579718298653452888815943801956060162326689718012073034522739684364990528241527666830825114876105877755348522273946576668722241167672392846926682205393057049151473659220265332607545835872933391120100029163248007105828034543167488324762686175554068675603402034794067102074569438692101238431819794399496167657947917839447536538095858815100004573168030048899371109403923119774955322862981900860052997143683422341475645287163355422003862887798714474840155342079037529321318782413713499656316209548330398788062151228175737758129012805707384974420089948994990068103685901064196174788037385684253251784167004401182979132776948440037837863933209842306350183370911478937451625602901028594571998766641186805353830058016641715016737516120468329369371032211580528457134144028896864409898152827391810578869825521436092458888323805374120210546094567604961916439884797510211109460564269936281851411955432147943210945946979022132333808007729461150788414639135187420510407456199388303653385225578829940642983184311284411696126617158537386002287474435006392062560919171140644443188818116188594760024452635071898206099390634885578856573047589343762041590898417756248272044579406803869196226191956841980987946269538188830412807064682676078944252741707224805728858744154296577742959481269423961400847754791699416310584410897322895087898579946072634679224935851251798770156112742864528872578766816704534282537041372896564603508050896108403353946188933702356408108256551154022776046102252351319168798106299160258357757486968334635229274258767258137799811884736151385214582346703009607982886840099639054871573392923799138778499784887009351056183127592937731124006431787714940487142487348242741724827820605499492325865808875611579652464312299156872526946763038552286393219960201043432515042757622903694488404625541514614132052648765514700505883614550352410307407478367437553600735818640583996567068321955908811601809431545933972056123677027013931143938072566749122468197858331305599972173628692615084534447257946696353808195126500345886658806178151234410753557477662554261351535386785667213930919088910086019603155106628882769567149156646199453413231298384239027430341787570753664817046880935545151596973338390891352890801374334452504115591456879126901749418544491064420368592673041933320990885007215333896478588120087749291108241971348828776519400547897543683853993039899807096059507263638490659419410041062370440407764879472688722590728039608154616563305793806276718788462770804600463823428590607249572279716148310605782912534833720141505006366511113448923646550529962215295487977328452578630270874977677082372420395065686822904472410101664276793251743802549370579896696815693966977347771426551781745030577953733461614183746571204647717034060607622858605202155609287856625828382139434212663394729111607729142990149179623476639460001680674867397645371399317820099874722420329005441185970718277701702175242743117074663820335573298027383934597750521114958553215762013655834785320287427370667501358136832047487975501690894284262633248034454563098022761722845589542098380055961891700447033369470020720960452980270350404461864186396809456189545453109009108577653831482751935851568876539874144105668130200780304187075416488933366717312939754558744381833093843498889572122062977678757223360955684012400241990657501038423735032907267915091269379589785009248331816876792065805190381817193584224517091392565531347161971491576025575095665435236094984924338238465327435974076810326572165184699017073344863802767308813225293913786233486893245734421567173820479614992179857247356614871685688004693917113064844473032603617593122409118328454629669487746773546663023776789928486526519445579409690505150254618886376536693018604336489758357213769371297177429893887052669747344007760083816727555072666844600495538448842976833977043655559856304937352915839802507728497869048600168108757067778700343425073721031753485941491699412882581885343165514075994205139085118364602251973851190873157620301356770016498758532430103338288729110942023949780932631013268448899566158242169322800979270164218824640210081566319769010028700928738371020383518760316594687510349078860277938540415188799028800695578223190344575566760582661047506475464186357313787450300929765215956523599367692619032161582231099087135450802051379817910699014975328455735120990357152144004460089316170285664636890985215247378565185086730489894031248541823363511074065191613893455645299279904314680047809743433847137302893582990247171910455456495104856457364639996676586962728237501920343666370894614993431532624786923454761575101259334647000538218387172079730339375260659651817422902510069143174368855356396263910829159243663179231049069080185877503979225621294205451279185348210986789414140714755053854312636582389095386796011681012279526067513700257330725385336163780361464355787583109876404331153067676516769197874092987485570106217533414907459143204354531042376753981916182399140273425190101425799347182555958916621096403392697151521958581122365760863209553445747926695600852038124361663747847627285959542562062392617592436913851601951156807514001897753516865314344100507923048654281475042485566464577426520103944302339341319325861015143765058264185557272368635834127133367844497265403385505123762808191077634955897338025918432420514886086598873972872294727375674434528312423601248139538987731982881500184003878374782660136233728996105593157389437346973504183465642445646564228427332416489169705730088742685803146764583636713842555164190441756030147132439687141995297375889548498314462145683668585691377262947527840822934565157997488187670312600378811299635722437706588911016285066973112860760807765034503783307958079109990506954303613553933174928830652289805086637531148972633298957674449745996127450492840921571025092830989102832277576286682466585038331052928200947901277675062740036135425351739255708365755310893886070326324588786320912673474837531419627364814451958103131182111792359916792257826876235105930917323457716610485951474135119933823083035867330001939677935264588418963103081910359525109259999092557862925209517379473101723696111942592327191891408363861490166320812183255050662276386896754297034590407727964814778042019562461638463584983528548428695992866905812288867787543169580986459766575255581766259607279080395714362850403570981105852752227659820998826967249885167538682574289988478810415947113558902171686273846542532563076323117261617309741353851913483856580159234063080796899040392545151827143765262951951599550882480782329979328783778033713765741966432338891207483743480415128519942681333380399297534308907985367899657758635489646036706402508545253403564297044650685182688390545050055979927013374549760013943908361549978315762496780805288871752429058918965001200129282564458149759785736316075634739998227401805604402559566012667307596240352087172911314355173879974026572574639049663875342545975657374844950852725618292383786700865266793148322365662144753675372128677381114060918160608903413927818831609168083688153146747416187109919534655271853149562700835796440675364081684718506589537414482684395611117374794002465630231082444021809036963980670349654511459089375224740385505267324930578712465281939390931591230649486727034699788945503712525404542762929075039235834084591782337434813497709879881344156374892654147349403211407528745011519367234869453918903432898263963999167622286904536748198932231369923272620729661304467578025488396090361827306554154864338321048034784640690842554765372138897705591870185741897391527810813310697649236227808403297259275926542553129270575816208315969799127598766464838886623173343494321148250537659762753946965094742572294783883505262631906087611953515064774304369537256304743984730397789554313261333646936591080816086025682190538908676600421425535825120000963683469033849278148496157821931965777472769327934141717695943691063188132062100324720779822232266542940899649627344178775144132093169727625768872874964654540446803344707665378237826373144538607024364701651566318384482705753863895264392621390799611651670250550102702207182973337503585585152058410786664704766742671327260430001379869886792334622887496321868101976187661349126924049467487528084355926015605897498897207220480968792805539700443509968707993457688706928703994312061688665644633081296679778911317137284749743870165036112221625356562739895916788259714816644118117020786799875719338104227640213582925374653139118932486414583627375656896564911523121664403341340952520407332153125303247046212379404551159827604529976537559853024254850750347922184053358487527322636750428049719250067940291394101402961409986454539742263813293427436896435357213131533689841310832016516188647419510986851825833231577888171736807780228443376076778649270871235984009956568939497145846496914309664382329083126043586865027002114785141100285350399335647563438204319308252255904957206332472626678610693553589856612977595292009303761890996089352157486410687498208618280158634922050842971872220899704415512380054244464371740354426748817461786706677370674169203237074472826584128983329757808536526247155774024817821321871819156226403018926079657081802177036794876692830125388698452806351203819604055247716095275246177217081525475771273525349700092321994779002016035404015253860937180244793254399918431280413980653241159618913483037624924401258178962593639064916504698477761884954251639048496202786008108037508794035370364202414593077208673864606314063270873191335912421456053498561419794311494208145316345008303985207791412433719494808635244799612112865892806816523300841855898559265108195042667641507630633639640924554954611084405670574621715699707379023340163273870536390551824078081035284651488133106542774501502343228976133076531439537648070722735921130762857881175714742703801450128794389386244087912815543425621446515920063698386884139561862606362979680980552363101089449399479870228359151106431131498884840766554574665317502111026259414506936192430341500520794954226499752864921843184890441989128023844063469978845326137207605001477607658435225071337264167452428459597975032216562587738647227368263330286799570371636378957116014682801383911474219338899680223289007746844584880214860336404884370259070343638882230544814326791832042923335972951634409495082562287208410426752616449691179529087445226370097190608368214399241234603704836698070780850868071578752984801116539565561523679853928023119552575672911556609123136031644777942871377434940741301919218131376101771329255545627645989034045435755271478408263975710968546156646354688649712830126269175349118045296274919329574822185691107617294637422195864160686196338391467889007540891293087310955562258683607581404861565217619163197892840963330249472667547048152284901223336648341270757316843672112712986087265405072599451646705242643181374907771446715304215173100059299995462823638825320435949077863916084811511816229747157945176611752171771868242265313791136877271539017731760350244389470997700470429428879568896763718069597865445222713812827063144590423693805177703332272445818206941589308541151407210707016210965850069091885716946681943076674046005458213072057152807986860354530923702464531584347000622925575698219292136755556611529594320653139038533667421310632912238081496042815751470619747486373633809707112141500875069473285483138183829756633679547363567084705976719112535469745432126157882376586363407825700331869057394776074575509181077446573453214580551756834056062914026666641703703227523191611976551072536699963619171837241555913942350864092030845212916394590950693251400971226106145855327926040735604524410335719842527691405294797148935136732536279799004998154542950226768821011453432179009786661932047763682471926582700737120142149602763098503918216884551802594269252625559063609762303749506080991213717116175142516223831066246991188364696960899080950858866510306255277324313276932995052822115085528351264785592918225036101568816388167049684973208819760968374814046996452467305540181211645619976245240210860037079174326764292693765626565430893273970911214829127367228104350208117291264474840534502590481574024936067833806659121687509886127900719928409538457436681142835296399234076751896947300698934694651068215521821357139852014041170236316983619218563021050542476396110505427726443133555600771612319912747413842139611581936633305791796466127257204022568119272707177135387290208067376883199201887604531555980036771382498984760398908265644372379460159860302092467873194286553012398234321329531314194164959852394912915015438626981359688151356975762538283375662454078123804884302524165599858213434111917090982970985034023769558975264271182111687459444403785397261683292831138490473462535145745796194502923844996896018672449338046558704390800851111022039386221976293151548347072878585362504844789239922155030484789075074963529587449137097593335778933369650054765311305001150690325582516881184704284263153844864640194386755687871020653324159120014345423105173470484192087319418158989394387433840399256152990588504599038227294256332410671632147494346908225168671784455456785155652477700665282425407992517301615610416557792086374363492312188868182296592045663790244480926274468962710660250647775191221761492366531596016151861577293860693164009331256559756583296283397178537294889928135261497679466719224050387263655361190786994073828724862532043309398768775922748205236931332238556828363421188718565696105840532316903655776910355626081960495667111101734503280471943695575250147508170596365765698078789878984230102727360934908018954364594933622720255910285697462444919924415648556041394766102098749635004340389141570582669653302859678345055703445101318468909972339759921213116037130848233610076858668332882438017627368196408640719862824532120264573207766418846795998932850277582872477612391904749456309176534350452976526590160510898778889865675199881398085616621382844029386244822904043383123679064255067338818650627207260460521450115254836138574329830978910727937665488172421925234102322501198577760016325399408927160290008699805865841555223667057827119636715591686090532389257772852421433883090570009205399294547048651488789176220332879380245021939395204554511506009934654278784345306805889843170149926665679666125784918803858144107439982763993189885875146495533754922207880671851822560670369168041384522531215038213463296159638294197260719616199993339423095340994749944887449540505803582771624719744020611279473872391118810517118613914613737035149763316066918117209910046757728367945720413889559500992959022735019288421459401151230515142541099192717446118482651244763077468234003551069525322056272300687521010863204014086482560119696801205333592645037946672477371540232412803157792159984888514501463698202876090900677175298958869543480236213178326214083784921167104369553150803808205705430547015941711667537067429234737911895756731721643821673449679583007812685189174121724467610394412152012728575671037417176809336821763929312811454763001334427914181451793826811519276968774330084987708137997980854050585301402522221150434120493864720243369134760212136147227794186313550200105961488972460297867494115053686623308549226265772262992452292267118528577284610299929122670902767871885758623537157225879011102662183623294201622188619435497941889406143385740925578204879620836162363456632282318137289847631147094588781199260416665403267029938481272554486972217234103138111963512201554893923458706870125617565707145257626418238891675309012111481868379300051834063212961431973200975702580570789351378801330559926626656899593229056862087115350049671452214380241075316856856136947242389249185095263234132284571214334755762177769676808165383901976110240288059658982649458238830941739164588823598129198073916250937305997919423526254441594152436047474531712681621332170504925439256285565980922796651813781692244018234553148944596448831108355083199429940349395864699536460699492593486889079113353703465755393815990787257271107027244270029923912113889353700622864898551100638533593642813807435920349843189159453781568970074739589866174284134353478492948994734193051711882117621024662795353827011021208023390929418165393406852552015483788242365966889449018663829792541368244298957976621720193403960380828371136272215405253996281548371228580459983350026949133455867801558006270396633560890816295437571823418022915163357426265782702468762792666319784570409515049439362810937123551118540998862241913338695422451137649106691472189268853407262476212301634253070057698702914974232708458073407880885100530735000596765008305830747587550074407894649195544054879156665785274328704103685250879729503271312470958836571929415153494418735288922034131632205503253270923735730424374303450112455546425269214313378526998060054924032554789949711184624057456505786669915171887355293032078288895447241619478046042212063562909631912379762354114403850625112453839182329487395102184902263170026538147486592412644839521216541201603603813018864691226975029541686302036064980605165862147199434352101011394178915461491916574486485317518271850391081113644690616180379260854456656402540990549478336874012520137497576566892168603375576903234792306465695219212062657197094365382831009402174119764197819169542305798821464109150559840662125311240941527415401609657783714980951241722467428941576318923495418910783489367253848254508354621346272268670739143734423355347040802287146278067048921381207088404087330974944629185378918806377464624003982567730826306081299350516917102896807121559470497101960043679335761050693962474032887450863731596956729539794109452006490213178099192099223845263691006481361221827405513541817446018759010668474476695952528449890657663850693477846238135862516371599830391648625944659564172711000233604933678592063370086048039791429873878776777289484478789262079743920676831308358970450926974795175294997257475443244531430780075756446536720000501668414208532269318660400487348816385958930916555944358079054136158885234754067975346948040344740004479079844500032536070291641049754465899351992355802575326797052178682321542472160998301004524632505038007493499582592213586947567336695082680911322485671374061778328381293759234872917049278600979327609302193108428855593748969925991631139384037738189887145994158843300957070820123696413501155892325102649789561526786906116911267240095067229627339455088170548007148716197665419773518570204446456814078669231100452197150608714910544737137821035328567989829108624623689431513358288307732783281644809299971798069794936185437870064656023211550677574999069423530459235146993505290098541924981172632602860307278539165210360967756369594981600569842308384540520701547296514365541673088898317861310961798641406924770551992831776527135161979690289383576513162441790181295538749693536052816786211106442756799045609000008566584754368754593207586488936953519411100022159259307888676652408496565613309259657486866861589994328251702852525803606941045069547559664002719703404836388984558330658075145711986647756231418230696261610023841309471011086095678215813331988905088706601185991703967308965167792984269253035027854666145754045695412446984769694100113814588529679826767587652106116370241175504908991115475011332379833528071902275893255879023605556964732425050472614041676885958919029529151936962616443051043825416881436383735507582163807003786470285304033578264015039593375252340081594312726127478382340921493799222827190060318983839901741561489315149696044951312228100361533718910317493709617711641915547548847854160826142738391025978904432550970277196322345167985133236510966569461971389918034751981902957322914012774976925258817424279722812696898154817993234746964174557490338168141242084553670271912604252752123937904755097019969420528112234141837643784773552866102742224081583231104045104688272584253019272259131564039345683507744152500395188290804836661579902558955261260542545921059872458329177391196757475442915509565735964925181640516672356379010658600063502823230297022931671323269034997162049173406362935483336784099692502400502166066275464574269321086254759282368937429529951668414586207704367620350023419051536429120592333359878680176590176598025135914790501346909015601501930525781895778112207461170978904608439321693104155834986139951748155327136841657490290102222830192814075557714337166759086027070396561623886390771747939733416066522481170356318707256287396071273821531185522181761973495751331234361097207686559772708636792608567453955749310480406874309269980396045994842845730295974228398894017407926875013739376408089611772381717262475402578359950345434284655224890213648127618069894231559362577516087680894124039571847010217978089318102255937168119729726559921539464660871423699695181300858323796882318434832531431572752491900696757159276037363673619024440579691612732327262887485279655763126839618171802356996205314978728360186599443241852838154044459642177447653028579735140097849429930908897182087122991772526005967860434177860073022726646671326371642746828366846899644992974431193638598872970508522987126710165664222031610779019557185749574115592505481534813439962130106353818123247574770334216442955991030768157269098174752843639664491805163497141921408954466834128226448460931051227276669253837637938123228885786567118737774241270204132449319057155059509691107535670398680201431191293590518217202970072229979961772042339887834717200019445861197277960492402563986590120619387858034249936793524562179467692823823260653965051943886658680895599751310783061720474483886591465270656286748343256242482180085102341829652007911448188580551433355781295429120983684391051293685031896262847706709830658481293929769495742973530449086905753249994870916259266956490878849786281040589189923086424051110758924463051292361733475415736491351627171624048732589751269982663181075541134443373684520999098013666886620278079908585308661218929292232432530019568186711276332581492223428727992306800487632543002739860316927086974279612965105703910141049669940299929349601267875927781073264201429482073858984892206194183343265492431028370642937340684710636637161344525992148598025882557800472589813289711968608485026243313640479889944648502070035859058134023180889120122728766149780834337684351098535148717543524325337874179666437446848087777358652998688070555485432609464969731771293956461093247787739914972373770121034525890084006679672009272893334035077887826543140247225930488475021561863831774822157335909522096778897262645520961878197526949152533664829588885760222793363791710109564893709449248574824446437789740684641727279049145310475722261118606651266140602588687924843069784122332351071279802371768078202493543703576081069128172274699689621794721469628231414906758320093976267288034697024561933305586387597152596164726093172435732721640459928166072018296881279244477710606346858181745040872560908129420476066438125665828045400937884768822632463686297452219849038291073652099291011540103709864313976070350808860857978729225482195159095319396731235244101956328034699311244364972719331260736737355623675920706114852020225036548932448843275003027120506132236918976710537213228630697262934310985421810749835258628834618079523897084227014631320756219826316817837249744212006413955902105696926570127073949304926319929116548204981038483862985892498041868388820468529550047287737080994101830742736274398839815838950099871315789815222014201762574470703180354602771774778397195877632658304875133465339431421537482891364467064303067612323064291135873519430035408241056659945815355914327255914284977647743393236810913953031736065904232023020116514528978952952062009460390828210885223497447455779244234611446998803734500769130455553998477621475445293484448648527162345194778342670640406784211386064741242239162518069689867479919386934729621100490493144709986296659978275277475690424947168552688579841042214932537626055659616407478052182064654885954310972674839520626867071163180145108666878899113009499410039754536119491633685624270396694940209202497568839228631717039886429412514838732805688346957478247300307425812224690264898764383676853079925332131238603444197139020233300950881169542196103518573113432032441903805066834201364411424844315154827629588130258435167973346593395947422653219718443689125549121144587495375109420742324506420651132634059413507657997013261200449815898888489158847345346662815493123715169926918006160856431290159303939531056446394340719433056449578853214039220710236413752231323134089180740056592131507898077153186963260434824139954570784921708846764102209809274859554258461206164547339000649697256128174147610815146850506860814087892516285669826685433485596906035400906860594311597349844443194439174339015485536412477314514893714185328063093720326079437816426623110783289576343568298384494472567495288448730034197406927587428876090054186156219124184358079702939333114296925133992570237710962533251731292345583285430851333324678508088814520265552794245586629061277207024730406571156422832446999055367172631263605593544416867598780852357670323862856608933193485233819796810833382932119367080088137447086868430049789479573281873080131225858369187671082097794701001277021790407991104257490134991116367708181450666078162223233298996264989252826310198078516490873321077418485255960941795542769065135706514634999046551080898698738005404040591415908107623462374965822498798785310007900623722715677645441902530362549418103622585754050268382278733834052481677147662047837486142064210445338291952803946297687026932826885334788278769082635872284511374891915308784969177413488631091882803711835546686564456461681136068423663114555974094835285738409744341099171856566730139398906289847545365680066856389073821553700410673856619902610334569527330261655392428703942563447389552563171557500082924307586583762532306045699235567455997892903588087194413281551051892698800831605703362246463864076286099366430341941573761919852067030280426401143734229133689178103245579942793309263930356590477135130006237201029941619068930568324818099114481977002787347412170184307156585237256839854201533216908951745865165823931336717169160686516461588288289588703214697580741934184462614394291257313801022481844639778588725631021819356588207605005437681304096498461574861313098396768221270933546930726207913451118089786511069986019227341493261819976018505030180038911979147704906518398782396211056977957577334932801748275709733983590000513576076591298690420760537709929643935787461354828310070192665320387779449750852748890955048150751746979823184672042112999455123573521792815748113965856147226819388138975862771836840007074309016160841161076045665355633248658962156703026590358081508276483208488264623491274072809311143422511681200610367049806200091299015225613231472558667827146464952479867302828044454754209161993254305931719319564870623574009293585221939797136746939366623004782092816216973127927315394261414891261343999228237921395258692773745421463418182683496817963159392753739283515265959685701995823593489935695377812026726246058393247240760252267292228733232928616255025769565575407705430039954910343831609355690016328513946655981147509398058952601919151051852701336030338807218712243661883875759480172581971492248229263911095079952630767104515016493631430891128990005097128049097090160026180863959016865831329194353195583443101884925196901539404077816609254659281764525186119363321983040143585865051361246313387786914628786410830369440851810635342636523845053188443251355859443186919046377669058767353672196795564825539159304814663936502150665866298340024218264679109903053325391346320934400977462154080676110705745291911790386336072169498216956174625680690159633394967331519502837498643914219194154981806097759798302636551906270141280480925756891683279532801453614824646523075551897399908606878903992072446195609914404985932185407432078692226057508827425656740813120045866937173069419249373548659012921537576284716805394839866059921035250713475803550875856949008481483186696851349149279836518276993926816617073404637875345304438471373882444303321513824398340557478697184919980735700909021200103372877830921559212281413867688983212529349020164013847384589637113610381324635172651758512557229148695890003037390319485173094820064319552243725317873119907820023110817123911538076871214035113866067678351346522776744966627805484796073339056174963430214358250142305718996798239006879720287673557422511841279993653107567487368060682525596462218167949729966850502039218974323127327826713806842036305671980983902100142479053353924267180135607349350086903092497361316571290646156920206532378959486117532756262501864308685418801345401954446962386132002904187163069347008356292801396144822732665655325124809526277494706113494234093757096764630480524052349085113552102229146920777948930295481273381938289917447916934810501024848413362919468246114688863431242656067452606339502958604984943802957787202484353967825628039150689319133708748317556267325333508749264781706524690734756887513861889837863289607042951534642914872457476442119989961275215679160752936594099973569386755516993746896915364322240468374160025590831100096866360363334039959156259665368067849621781191048911403772262857544526742538734437101145283649679949980194532987774949717989218075927673037470784040344702782274028235877426827560152129657602940920763391518444569386598709433515421105280571489269587595004746236207740724016344875798739945710227545728782103969319301381978131073322327517868239880510924287233039202628161013742916410514901268026881158706478356365731303121286127164705409084536838193990853852138279815018808275964735563745211018533406239809544950416249780517710134888666021727118221041707636040053848008832571206154530445245406890985097543816434804708301534553249006930658684543564157733674362289985576578451540860293263763888321464142753024484605237638387585989532757275772066738456207185088600021402501134734009335924525799356992455875512033945904110226134311451786031330619509841164817430250923012246063227283151527200908930832437718997871258511907471478744117637035443962078745325705106853742227593012263258164118812143044920380713675927207695803887281893386100103940688714855104200708897200490473174164917363938427071047705589714330069705047838645710642490631375289003915363502350689813071893343373891411774725940480829442621480025469092352732364540312038857949585342935870657246840834021640115140488636496096966630132088715042726530597771713450063425336788539841418222264195805378926684317068135384969319143245089265864306954389029568006816815740915482454226628521090505140750870305198246309767837408538105168726008895904489772777049902135138574628208260809374985537142721489085903623053137026259335587218545543527256885053169569067062822019031313964482920293485112513658228402761538342591819814088333326927009580634241959137942666368959504869295518285823139166264563966930273515205331421318617933711167942184579394568031518019612894992884516409177808122135589596288893526024824123928269316024631170179832927135413777120583773803249422284675574416751253618584704085270932477838017138719514551105635976940135402334511029570464327348628761024023084464494328107295023949494831036001567861383434623867439739017106597234282418131764831911858557250984876418618736864225142424563376105159275803275235828506223357787172908633343918809650168771666811600594096981935542208421639009441709506974846907826907207164648717491742527911005022476217108862512469497872372258229764975373704215542264145717063975677705342407171841978530052585388093299992662304451928404946546052194986126706079171061389546625464109542747382756898815402103035169478747350347813054279131749748833049619753310488409244339268662127497124697097572492423591655379027435290049970408633033449160880597871014411040620620751674752481957854091981234408538930788218130963897108684520631356927021384727728897952227409338003437069366948963012429637103607587587669319877752375574500521302188171140383773900554753363891191836882384825078171451814372402386751640028826254597590909121368212155442092159537473681475310759858405747784890374645397114837615286192027635572606266204040919195200205913736534245145135118340680284919798974972154784424680369400877842185496457770598916364300429047931765397662485179318521583218681340376402922005242907999403825783035013072648835736999768121274030501029029826199182002259263452498760805476883932909111520859860244400906921180039386171704797022553393893002901575002496756908700865483299470733941682319699537535776210739290905557990740156028239529383028741383502627525672477660889532499879825086007403056459043147018386466670362310281478977666069598939668873699765870727687313992266215488511329358148870399516208531693408381617658512702064154592187100300086041589980205685166128967833158377221330283788829863095209628928710715397713529683122315007339409295090679273549093344920663534152406236472167172383172864242914858768008875612813936737471336403153567416467909075220554825341908543311404706278746980635547680970963838021875000887776679239967474671218490573389479662661489069754346169253483316046401457925521337577784900780180581359750516280268853793728533971900727081820028064856993478591466263053204096055481460705740645666894151736213698365575903576573023022734417877337830426925422033892027819459539930736032295613208607586198614410180009038442410670380009521984767920147216788780910716878141215911742491810430406093185460921430731180282180458384371243608356495906382213196915817591698501305533530798942082052869287998578239232337979365207977573910775143535164819464880913649124104366452496513775084039494925036253617983146807930730849499704280752495728017587056704200623264427151698299865830352351970591479434343672639758292999555896266594703900285663552675352511490852315221983468861188236015933520644574008224247741165580410126394024453359629258279065994781314551344510798845285038061470765678541758010312920872062670744691261629426306977467595714385655830259376074093741033588572587052722332379346806967152989674782682745264296903807827233257256115572170313858664407774095703650613803820152025932069151238961927590560301065506451093161255154920534074792292721746579309329846984300736024675973522339123439390447447790768192151952871630502749078632095854198132458491334506687565440612770339041444670605322209340223227327861754907363587178726961783052775427070810915961625091928829965227004534060625794882896736658431805929066037984348495962763359930696220585669159043419429128187387317847375239211534006077696772012147305292065161260613652592285905681587375170765258989696905923488283146642244185808379033636552617403330488686382204098970792745853952375512521077053985250023217278867223747084169548256066485674094350365777711327186990072324798662914459070021880410649936158676147102839345723662314505816356640161741633990296277188606969574966387443390142875541369613691916599336505746097662553916146987492456367002651951856188390924279805535398671915715542554552210880738669387098320892967729866942482991376309190110196417305830521223766255830688729699492732492121745692322186593777107829140132760429697048850007746911317877984972755152354231107242641379479278582987883252296845199037713511287703602154870295136960855491586153563962817705462468655550541123478383050789158659221815163206553062686647005093194527094630633707691335403900592982285487407349144356023262176552492750192428387421044761833897433166979071653217005082834428577191875436180794245075283622376887064214657667192511108137902778566863986912890980792441286208290731172814201281647661533740803359214454270666824231356401935195647766231268790706492897607949673622758685954137766906230400520896019148522491430926127166780489835390805644460385558443704236224373340196851444830124536537659575550019567883050800093953865653816426392996489828804046076242698408599472083894474485170790911921612395220117233363627462305249361840194176569374799115102411303787236166621458601727379387422536071010048843613429180366437122838182908825648350622944834507277352848443972779747263856946450095262958834959194971151377658027601677938969529704431730710016857703384841053953438288742054133820436615519296330427237625627846558837221943349568389368764411962525429363524810215443290294546940803896836953784020684671601281579684066344949857827214576809455343667144965977933172752701163901933216351005076843587615344393657126529562209500427827755266380074597854041929061638608232973534537020820937566040500795203685827958099869968707989594918181695401357059265903523443528868100376190544171983214732475521251842103681453658021720632259507669464896842349740056662023793656423989482339076773570274683990573686888934537326271013630018241906526022040705732791292874226039190812194222169373842997825683850873960936545206675465185100071770237656248759815198931881453262513681843692188793496069980744039410058258184005608086857489051634893819382024608117653200900484254418350264983405202727062881949456730782823134405803917628116533693147931960120740160339091646949318677870253212452211078279958030785277130554371246081535131070128528089643916568541002494242352055693447155570668968058239809527411548661562401449835719820600805533065989758419092180605914132921668768152688754739781384572896764629207781471403382144368287923174210946719630679384583303803348761765636106833937253650742170764832591622388694277200043463312282625813361410812315896623605975319485292082750396760969990172201827137644237418213134606789851182741781292429771411219078052561648865972387450524323403124647839724741168556108241094517508701183836060764839665310366304969828612093945072585737254709311677620561602657297484835269435380207057459353548164591897011904964514639875142826287041587460194080784907413988457185630342399089852750976626464883642442160062618290483175720731206834619879369614002897674882356125255367645167043648424475461906417705595134906899557529590913709386462896922715335041685212363871243486020137855944868429772111792584942820257779671674045957066004234023144915073100433145907528356005881338141634392522591961089521048377137761139958881177289963287381485703714664147585016707988486959764350851736771434393093274356434504430880103406469293076096924331306485783987531231984290357512640307905426293664091157115804886196366756411407167453184112662573336360940707195889536438900992792646230183865421223495336967141880505317993674447982872044437167818702255657720191737482325715651225397083200965521983417950293878743358245373411558009740580189125636604634868086569916092287907509287588692936514134648769511569248349832493206946332076609179867211902395354127531129795299058867575583479914986463675406090266592184894924683978643649031352910502646161980712063131390699594983317596300750605984940118257818749128294518966125786794377180624730526977707516334026376124204633301583521848191346921722074790164561009534399209477616687563933737932445087074271645241803803283114123079703543517782050974292987716285064037848015476516650004808949670944922131854724678680622158931482887337631985708065074082920712816458446807726217261347634077642942301500385174405664782937181585760104127314093026094527129528880909909809758744972306679441366559616488471405317721773897186103812067768766183506745932787329529112331256495572457838962561011576572733749014574989537781409031131653858376467511322006008758131508305754137601639371006171747847685580451173984489641374003626416229275144578036892074847765985864248791138533810257031178332283898767246951476118331130251930300796221896675085853926771905661104616219038791695757398567326358923920249961256366000215354995910697447803897320535118612912329709564567403323022918559650904136822451127944835412618629161976281327447844174533389070814311521043104001717936475897561400414144056373961197646297067024327355117757378072367263012030382295468802229820229026683986146621463220496624397830207579137066870027675924163714816567722439426436842604506694600309149798385806818560963278903474514748701326129975157068443242232493990647361519080837022993077463593062320434872188767141225685114992398080231684583976496741142159276627180434871211046430294350501888796556167633778170384667299229124215931357973607624360326126168879619401907231649053937091181094699774393163613960774948136523892157431179215825586507974176337800259756581002378105194029426499519368748041934714956295560785990384938904509821241423345217518046069689368483282001716996991971482177796869435398005294715348962465642934545794348842615499504514644973717099568144473620566107277716452342764350545384699790500236150089474487976735525846700091261493171525470771879623641440422506999533792185712294546718996077671398813858823321763067859437361271588387199139057896954306777308719193779472698238753215676487636036094438878906908523698044304164843527137298872839050862875173555627702983936870160233690888888136406070449804232477242140742787223255073220367703055436897403778929180832951306719471778735333828469030509366464918732642965336440693975584728747692661271023057328609939269061434421368137712078362110122678237931452371475202386599823275452990167082822180965498162276924258046090799183879420297505838027629778947809322997362379111553923427389470729611848806433525163858898550080598082665220753379333171765532080606787688318461714685904668520621538879577075256259123083973574334747446603091284843857524976951588544758153778058333511025262623603868940076496160896041011088606102997439989012872743476389101018847571789572372543020012528732947060340119890843254927043589608930106590700148840149283402727204386828095503101932415566716145641227793744806710900154383774220147680174212919933660424998009607465141110268462160425182498591822725716794068415731955452470036808119280200497485830852814199711015302837193942371032867032546998396329934178488163053371532755399050488730657124845296772121436402602236653276736125432624651960533181013299034195149850247940485160195328813722327936780600377687207595591662127361094140857813160103266804531426368417444164890671331765146207685868487692700814354796595603661955776969442730731480347043780050899595957629661306406467303232626918586380739928672325276410746055643342114872767817750804003632746019019737591850251140333150377563683333697185947796734922288242739499066798608926387647682035678714089365483337615631809499965582422038461322044370370452350231196208579276992587088606231795347000060399772676597622042838119394164690796856599404510041037037305851297316075497047949564362176715619271395991454587228195740090640122726904569721351700144511523874249729891445759582779704555314956281268821144177644192226386895749887070094128018278550412383402585234757425301178591747907308181903552627072964884857414539377670215775639230062151935830378688281900409101931337548549944364451227401217240234022651748714958003072841804743709069689379978167399014697914787491526657722397656778043115313559415397127728559726341861667297935876500980301035414051850636848828576747046833922098129321203799227586730269013493988890589191445839826013724621744614835375087517168555320843315158049651129246827444836294596848587607838333872372081947304470430102358138460208120613803664436445777563274132520698133865261529537326024889365979858187165485955496536716914562265290956206928583113689816609531681122180841960443250920241548272685517722901237445458333933551174719551124948236734368331354308394730452277562872009327803197932703168851071882402398480547122224835076449813462381688016262537865380311955833544161300686349931315000315008790034243685186427273414861608700459216175256650738098273593446984149635778970552322746248262252918557749528976941412934649528363018869862611396975301417634747056928732153455925309043076306779272972144774009691560715045258816939465038500141315224804540216555057148919889038356443500952036057418334947399499254433956692170361016723652016874286003903060255788196609247219869728135884595494587040438679330548772854538619564261445110730966875556897239237830017536614471279915453163093714034655749010166398912356886762443644324764733487729939715048321750875161538611720890936022199257648323942712307890141524581328344886338033404767003653091403944147921124736858202424237719027579754216973993031472412956979482177013335736059881988421708113299001529826132656862036506780838230450554579193027160322821542943939067442109751804487607508247937043987300404406845722618821728384325950063815971296168957735683763971144808523892018039826076026523981801387092269702505822350181382215212293344863444577429695319536274572940689922475523814569683647716751667622765289646919543189617862240616458550884781538340217904943113316245574916605118853440855351153759741184859985178453670311101044353703994933237560626268974931921503590707351289289527980687017893540592784506380576439518685129851957213908656069010609812501868071864720431100971239536769352491419959606261775651184977243800404520988066797899526261060853985464969396544517434033814946418886860804692801966127038751522038498628520214515300328501355332587966137938839435941850335169234056796568267705502235384221280296739663928791805078893371634849445931344509451857908131561194305432812958046341825325727522028003965444267237638335417255984689399610930994355624950789196487981512473399633184913135703004601678367862103008615117567413499626513495102179603228351754451729664759560249012016207508240465182909246499928348615956725352093541151842561472752065004698252775446680109884935842119721165546163702456820129593691700791585140788979725964602039928496170529394102622453914029366056951677865876595649048206422526662441191990987840274102271642352377490470349894190315773294933457235546678682071538085929989162780374091875206245131440340285445244137916387271808419739494340026900859683953241877345992289948594622811443742223732244881177061171827014295358895454047907098880419312460795782076272790264563807296844952552778920300721919364238155982933486932055940554206204492502122840189690988182890200847926840401012157371009451927621810887106462825933396973866964467845116400864303680951579152307661988078488882379144126925098896904342596227922939857306633003917075397911703260120196144618749587759692754971857327719331626697856864402558661710274719430052980996459132962796659642869810251270968636200254168843971549061328781881766565527849618327943040506577719628628068691042902798081367725907998585317466414631226031787813320706175291982314310522557406569321842727001115247226939465979040601068525222140728819753987010328090458449107620419316653178378692686261564979006278431682534584016632409130347751074217959281175910263004056944794951550904905270029832353876665047733803319250402882464311033201975810307652431792073723306146312627985866918726877156482755052055567498141637468031956129237814716365489192567021816790779747583448440372223958766902952538236810714887159362715879687522512199328443786333733733563010418521908355788340130636811634045645986042392765408123310870168736853833872883716264729608141550567222753237564038662191233069119605665896355376952928104648007894672779109194106782282496414322076849999880202810502085161586608635853554887627848077043030261907859865940226487518863233227511537915394523043647327412955516323280566786672094852229051961853856037586942155396053975505108351241698554102285006872297356633023308761543487249562607301163854774797772248920437255555784812404862234121906952045422197609736859051875717318874498428178902741358508494106518781779361018099190265007302320680565997749833490672617194681536368823618893141678588021362898054508921032141333111436033792247539077716889220689558077007281618707081817915797596373058595835990809381876216328425669780318538985040481862229433424247483329715320251231669899141761062588835814530737481326472280097096973259554934897135733116803855422670572692476278283958196669769557114546621899856344731391133858422067785366406133125912613820922030743899536202344554069232365746498639572961843085934038645363157580356843988475623111489928753491613638875722829116891064596116984178460007020375857034484651055708841900007825038195961635760358872240604092707674367671938181369578409693846237020243236390555992418750435997445487227667592879164213948771876890687069302572745256079668500443232130733100628404827102716695972561462508064364422254437176722463633189594488952605646321028227694020086157094072111813019620138902530272360424569583503123722688019831795078492592758763230450283362583178074090002113074852430561315591665086548226022474003828340792497876677891127081225732706441350230263495054165367679140152347174402386975329761549292672210978884719054693945568278165271743648492544599458121046888695589386612157856832413703291400222165803908790153735404942196977582222413346829920306472205633336959325073915146881389165487762691285210033818473844501172589660530376445067340768800806167070401164287637440587585672230330757616571505053883587390241922337831507950263793916511916186499969254452641340879111576872270731488281883631798072660151255389211138741797496152038878405788637597815993126630242549842390028135640830864247336354493123987755725481377966553477763462784726901342496920152497284047391523387338654474496897582564875098314896712665752816060871731068038544272465553979305455904971018704130756957589622891722692157825480584654624016161003699761518443107293510771812646034737754510184798690910316074297689238906453432926106740288305889557025864351818603065309455492151673204288497871810403224304963008970815671154034969433509065679713928985885844360549975120626511806749992960636163266529245487301328489266489212809854000585964365595548749424108667917596818932041422064259909757484718430440545615969541046917932531411064885791786966572058961831092351857892816250804837868299511257849506163262526656295726065203753432715658220705603876331911921902818011280297888955449780398948271610461759759141179767047630979107997469283305383028177853890118837739106850737269103723538849853699251250011736158102225476768043985864063752253598476454749411619931923302069373557553334447457549235755623965051856707755158369411539707184997876657910590737844306656184273422419218543053898712715681604974332223153330591642106224072137744782343443087742302494168117823977127657428467988328717181387605851377145180752020447841422022413461261724061259941320405873557411429982395110846229605839992757094566434490444531294721194642075570703695624439812083275562588600207025968732767510278957703075407781487585725112849695925189418051031406812251217390786595989860978540877380539217780864799021757801166736136752444205301656283957611470144799712962182616079920612175908200500301410967508005204079420839291415170062570598311828950155179233820399453228239503193240426295120673701745079063173028242346673957395357032454362845956579334111824002397264010875885110130532820112283650252120711868607203522231931892783733621339491813502310836057954779687926244978690957159490747505597326157811863690481070422595420275769810838772924021471129446633145096395795766290815882284945947325351329028757640158394451505458015567238179472263086710227720467933286107781868587624983368247669105509834728980658262058152818187382592059642363916740679018638208824619821931801000777772938243731465090402739042460079684087491610212151976832867505508048786002782823970640277450086830473236916769089663295697509980852618832857023653719272252578424970531287180375019773761074778843527859950771314494832993224520466329035004955352043415272910910555061340182680664934458808068611710243702895784141512506704741620427114380884074582060703098220682858059056196918957288131204160821620487119447352483442747959476024914901142997504802106874245599518597905242410508988074835901583032440759459017956583816286047621572774551412326591303355244932421799890104591408705305732622632206683308235535816086422995340008926941711953375416361355723178341857396943141100929172197418652823032815954925028839498073003934629161304592537916904065767102353997503644312486918016918268170909738152133492513849426881193786331886351456155459986478062388650797144344415029098055071324624220710895410074181065881708871491270886146136056659897757109203257085051724291820739116042049888208003214367748782147120417116599344738250610274408272773694073087393046510444602566037249596136782826028289292002713388702063143072352250575880655025159848565043138103762492001076591594604797521944273445690425382797203408031170606292954232779910900888313068742927366814225823717252355522351836232976364238220706890577268328397511882232512604030817407375030704259303249942983882810672005267257089600281884501785067926718366359128052119051633517601043022181937579865081335985628562608008377338907587707918084884491572259596205957869641594940020815670877779075648071606077098542218986808548250934653290438728500826644316549289877979221107031925780888418660341632002079664880483932537925235330230600005274170162842485313673377492800072865821994948434026582717006715191314643070652583900069859361924622019822289808531052798452009625813372522344703123244062428856593070497541202057525008961315376232574410838055676986210556226222062491025043511139239313487399973625772866655482086309638044525253778455482375084424693834229016051765432254340550070664423717525538921818044685794641879482855876787627438899323613855690894004785506654847589660542735428529493252941436846930104555279512457357740999839597149841813179591766154941148866219572973501741790132326823967548190974191753949850182462990928260440790839867731669074523768304167132179020205167548818460455408017546617193255956067884315291449679301173759549390788000372494163652579724511293845717284094001568232953889518006939481056300154024723180649909475090511883915938190238720968109258325572527652610436547833206567349803237409897686193233005086451687161012335802712653224459365227317173043132286514898296601239492167227257953666634982711961502978139759378681191061418721539521863128675653452381307867188199583770410613835639457330113386278074828299130186184901077653034314692146318047859453241791528373178823589897748890214307488594081824971665525233997293893721310710312849579137526317838077604648044541604468989793279733101102055186458643825255913876547186574210317473931857996120438507532076026350093463008107504872607179760041268625873187838677663667796040146121585727533221345128629392645497919267010140879817809896922047863957721360668813896589643211502898659562019591012974345723408203396459289875749376909805184391028080460056861593107872200678437537379238249243473784096215992651222576953856787492388219517836149462617280648918335735448274470884881577818337901451144571295794197783688726393739907607283934749060525493278867579201841081705320568139316807200656483782653192791813527912946512855452615544907953166668277186852410908747779995566082792271749482221442604554820535414523993569593623580819104145951508909352542769543333900976404844338087972883445900448858325459878145177976025007697313143080207705004415084120564376177711790989846782902160884130583817788753052006679183790373710201340479362934556862397730002466002190316446538873026704140890952219158600305520820216226930272659810695279997064878254678888979018572742698161451909141941524632889026439693704417707258662073061275520758053602445504740797656678864928063734314123613491565165310083568119141117545058712523126602837446053819428559966778600907750005140004235399684918420121082454427607975943868621421276483631646969220614182423407630804641611691022318910927414661071860840100472899769498943589749043455276891431022617663474133568970352360980835870615506189038663566183144394776960881908373967805748565119665034569007608066561731304797789961900383088887278842362376424417280097559716607911065042748404052139210145064071874380002768736481354911857356332910125749032463026740341880218328235357158776865139384912869341724213093655654151314846887556644055919063384590280789872928071708984503711409593405052977303714712954440698360273606504393842766386381612942348265065141696890794047506529782794641805290089062637086560956511429677935207898367429300288584239648739754411740333698265548613286778970358610228297904484899153918198194490216280612150379360330232409512495419540951534505889516357000881251685309635479134960632304983705395097009044629181577640905837169149631298508156389055179545700064436389962970939177066694561441335375596674848372746003773017271505675019637855201018503214606219121367957299292041243592226971663741979949770607459184295271976906836639910028160348974249054521453655375559040478820301601720131099343468521742684867199261443827656309840688647480935778035199136863945372375006812128993920660236196445405872285616017020182901281463985929213173827367750955075606162454390257354847408505731705428644693661801504966247296007193054585187433863486374739198339463957657014221329354629025890611404838048298726462205035481786412974393449910779779317170581077763086207489482014951117471967810069226269063169790742610673309709667349593849119763739112287931486142776473764302586672075991983615673616296920358693680490649709784101058593528976819215770774309180670660899717468719260128333287487698832041332968290142416973927676501496051690103312760109585578840183173009268096456352528097769342001328564130533685016486389178763482737516700784039776654211917336757660605746877467958474216368860072638842157365461268006440514119341627025448547424209351149793085181817847229822828761592486703231497690664087014431505912501702806461981793188622730157043167898695665312912533586337517033688452606233815009046234422053361729970277172142096236030190991585359408210605688203249965605214877850116517019104450417212767542396286271920374407836575873074659784669083216986720128421796502548471535631852948656150663016756931969320343368884288482616864965683690525271252076336393334118486431346361347554621662535625292974168370570500768891620299515884838529279134345042738206840382985527846723852180334696627599547260896229503312851195461568203078658099302035063964871196070561175446336732630969364488969768700495166213384978009345645746888879250986053830000256282392105791609707840417142721115586290013161680983363335736130030448012486411097302020782636821042023600594302242020103604251364397892383112737717368029064710483028751653903867637282329850586675587886804284008148266263530422068473288571204311844907094182004382661190236687105454997814457142913002692354742031367305136431843578798387562630178918157083798554139792820425126900899047315875883917288109856923973864180156100817428826069384815693977281652063270085562884422484451810465985550153043423560505088299925171625197595015613013340591665359961631587905383079696364064061691030180421993623082550813576063518046143147404880040108553044198379687728126288012182240886378773770900589870090031778132902702024433334895347467562659778302597511291707381594882873646887722517213305581631553962236940104709888236557042199892470410253532611320568715100648022538715032206884800384481050129714040785918751862395817167611956491248157658191210664351399292604715271495347206112262165031079094364367158845975479977932852868423378607960164536502857092211717860821662468261262850239392119411535867407256980137481204952664084643089073280122820283162534826142347634276798783671111411673976860203930666301809110127505961515221225070867896224049148890144966655859412061705284129687177058436494421956033094268524697075200436569078932434520343228910417531574065576982450464316019697228500780969050877947032982857452681921752666947810728357539325587371790152028159054056593765207423705206644877080716381966898305079957518741890754566902990367668580837981390520807347925513201207724331572628465358935674455744102251292271007781549353916962679149760065031154730881484739037862928711705281985254306607652283459269248432422098520076300642496198351362026396231113128874778463312256417679616273725670943044642585186993107942461836150325800316734899389451478308876202568154472633765676790982285609575908331219626410537686881233261390331269267808312548262465098526030749929718212448416682747076638614346129759723463788521343370791385500318807106400755582426530770484179033042124500899199068174657558103768004979086144797115179379257100515310991105176828702334588898965581573267334370938363107346839747530974325257956080911996348605216959819642844057857026061848361471748235468364629722503160188773159358078860393722403040043470219964033814406509462963620470957124684587702713332883599380747384053591435554595623726222483282360969765554917248503689242491365602519500547524200434600188040397037241829238865625775191407866904853579507103316699458386063362814375843218219470307166575126431001586748057036402362660383005468858780581081207277339544976122667028376011577576142999851826744141138008242767616908345125549328376321940144777147139555654986252948870026314115454539398580062685223509193816456746347757659779834528973178356039460478556646198064296345088291032707172267420257557544965384974848194592543458051128643843713269457670205710681351247395313763297280922404108258555236296947596848421650372659134862905345601831330878194545677308763501932230693903213094149463175684088647444563191442437615709545376616301487104013391438004908656833623745899938744234985783357024689385620804549968632515874548797485264264930636884466229988756462537412147826959445352660437695263843174795668894217400291924765981733054171914329437451130517354222272519914929507423049572714351714602796083092240868278005520018777833666767588466527053859752845079668916256306532242961960058769056613753535992668313636309555217684926803535822727839185102630275415933388925778715897917293960414676399387169136439965263231495500204337106828622048283934533522768693149590298563943962696439319078625684718843491860981631177915153260002779066072425339664350262703948933911967451294830622750533002303820790294697316271876162017064253509325666524000560294392208664971022389465262192168029926379736709970590432839462564998825507510012034222928409526012955786890197186851691615292520533499462228136585889932062245587858178719491709134053624019346121698576972644901512702109160002002728908341084315483144872957502227355862744171637256313960889509879596997751631825340729595708170284584040892029554665575492029851943485160641574704121126461835617176492806587434906202456531947455176600369871524372212325905109002339620408663425340838284253972160553892818695576312344778679512435403579044165341926040129882109044818041724827447877105396272273702605907580835317301807270522179570365646789155905162267389926757884650675613185424193062227179361236664543663180907053185605266873278187840977405069003729143003120699701156005325142791152947076620354729507742563192102904868847626018412617702538938337810065752183388834294713425139190628743722305021995872570033377241503712382066120543688119203532522297501816476477205228938589297973109392937066748448134451884711827252457612417203485349781082880952065001610625130443177690485868994618880843324289068706765433491559796713549581744997916767916052158027405808451080159730361914279622785566473887828298789898180624440225937786129915343162961074199417306036170744830317510624855054765997251697505419213824922395150818976363841130829583922231386113036569695973046591527148463979632850461581370905036907232559774305575886016148143535775656865947234972620947766083882582183484243753196550041422593716060247695116597928854481933823109330646072314631435423809513572792965250324399144440867637846883223373175152115875458423032855959437823566361701827240254861369680392346278673563245187300735858137631974782191489554893199493782160614284271243621135150922294316432709158026823185163289132731048591362190035493415576749527437953490055094566169270526323964166330994761635604798476243950521234516789960258728635521552161634119920249292310978103562613514079866520319343593828006714345744142964285474543290543533298268414395678646641566338613681194295339202553519226883100669964632346394129798754797553735049720390299661676519718924615836593056927033448871478348106936428656682260606528380878710373857903411399182451857338433145078525595457203800747337522153577702895241591169973616652353523049649830602122297800337132150782107955952132122969772637652695142715172628838613182026494260752671608916219814638641632301105406313401644330438884800100837406358553285068028736215173766288876980031222993240446481802575220682328839004733356988351553374802587548231052902678585235496499455729158718289160865876950078930650865431968413161298957793894204399134686740459271103993037058763192319065204593561102048170149202396347548207645603748577922819967902984221447012447780740986946989851121981399441673783869274597932941707697979045753485979273591388824100515641051772595086761325229297053206858810931384309845242956626635091485378282205023522767511750999611642518395481177561016670244954232076395563871805760651401473301601766662644246808431227643282677250925036452395564219270613217447771361398717971399411772450490027088972444578524980733578875009043571029477894879419814544744926104656369542881487603014116041656041082788906333075417332088046076089332156209125112403870539352884346035715430529589365330971356967700072833547478540642330753610127105353628893179177798958221132638559310447929807898520211137090815343668364915871183704374801601750359234342491609794711347853478278790047231410029850802316368888114974486641647879823360467759355238964490463922110335801048330335748982871400528457287884764337827957418262255579048804485946056661264148580683597802679196815362864168300629197450351660666401524079591800639326066353319695630146015248800471646331363093647599353138358164242443467281790002490448794467263150162662201057382386978520413243278547917898987939910007509430684309566312774830873547902463976439657565893745510966266570386071226774134478196435019495579235889690614101987416735385122718187002903785938204955289159520546659677060993987941880621721662159749951823082542561358283809282088545293334190859216310856060838411351393289073559488171313166493586999452688850842573675118954182905946198923073251557300904324500456979925328574612195537975647094894490127891668562219986995866826117192512439930244993495344444068583380518012575478827370090535389777939591194858511204971907711583428642774844193924844480839565483374058858491209864056453747442470926996356027831170762940625735995742686997234921932041659528173273451621346136882133750055502892182059803759676465270498887598213768834494252869073762056222547556718635952893899820065548490013459527661725687035088281468871455053099223523985595752053642194443869195327539008837479129760079550387128128708217549961319612105847700217486175439449939660871770368013455311399037261761984621292070983805639269395547368627934177263821638217619606133431831986225642181791473390887495477847021789276065572252615173440245209478805208532432755600226073889586148904964064504909789043167288890571314085847085339293024665701364756732654085833490203640051621178664342287801855918317715795526840440211097840452838119672921238689884017125305788207226123325761171755907082529696001872270386116006586794420235403634731855842593777636917882613413291227473179320117499992963510457372801102176138253164890651345272976700148278767204960478470879068772239564873297901501416733800214027655769014048029435774346733235784755803212385647445826261730292179804020403018967971078278282171557784780685940437767729988121397004937958605144338928982741949692716941283571996121960455331990937725154210787385813743318872210586430524090713554034069322006958709834991794582231071066179119807205380528800052170896024063284268727850063552512222518277684581476435660765496264741827479016936430200526668485914719408596955434832306516594850943598750967145623196397917027592309901142704160568318603830567478175921995487509097904747257382880328163798602560004517843044082442180196890288121564605395765997736276622528958568647984847417019217323193197831270402752057221703725337060129251981312806432312501717623309824869581358758736851909217156678775851267895091562136425216802877674100861249842565321660134905595982549169313633473261069032562689518148604880624133063396012747197156899769856441732229544119641019269793736476897872415046585752929039932110967460519673538355437519264434662858813975678478111819883686534092965496076743371547933975226059501330877523126939923626973895839650437953513147164817896612811599406923326444312787679972622863907855099134033324878300433014460123429242468187298736195138059850466958422514342678394044568672362127501140651353834560036981094418378604774226824253327055887159326435388276362365835070080176574715351522833661863517139914562269507921820460559491373882445231584421752125131160533156854109376203586720724721742595831614782472207285985900658439493149722127224789024654731381034935045737170568732825880362673868821226881253997293256991637657660574884833518863573533920171487372592937401813778576158321154105041745906946629620481873764957925753951084290578625863443786594696564973592537786334349556790638109587090885858320915273173846232433754936831905867506133880540226672794137351305372635383663412473351717366158040322929883841835018424658345597218552779221802931968999257423416443328792933975739494772955105657449120194271620942592294685737502834359152153861836195852473532605476819459735268866723727956152390240066328861281978471678517234052027091309997130907119690595405136547063118300155745839826541624060109059914584724271598670921743436855953991652626042917644196043506621975236421914350560885440775904611291109381921238003338306608479179753713157685190010084885231453214999325305679442661556465513000397074508499682235078132841969859835561790692156861358696544014621649188629101205328840218496645870381183503621308229291525275584661301716186691492029497625571528602793182225771051315919380537824565181252708671652040609362257422041510544500130356076020015919416719383910484024605225228929515566186800093378606988121010589357462736083717629178699384265417932016832577343483258303415886548533869232126517666866516314261431738843943089644403729335927960385423781477200560524751942746681522040233496833708085318543513726990680060626220670149854751605070260370969176887435634623569800478061645720340209810426129311900303376078145694422041375604444256934639980486526317539409112831473833037280621227864806286728608858370750165511842923490344285548466932282733311924715444163872242822824828413215235125708157652418215460287324298643041627739048497609300991349249569412878592801601968323462506009813545897132642328997724184620086889340186076800982665417038310064636410651507815587456873753168004536552611039590690371253362621048753255690561814469342589071509747619531095834588740251048512775796831850367184882560100815532834357462563015672125016648848750812559312535764827213990190694522357655993996538955509997758764172457009707936955595443528382465131661016772322224605754303924518901271273750707240091782913057092925302122005105621798589776008146739859151674714549923134538265647219346545591306688158364249953875026911947284763669240396290192155765725730864374001088958294921158720883901003690938410868833647411953883251993320119617152639268040627037567971096483393159395730640999310986709022125087912722401143840304515114942381105760517498551046732920496644437903309356566193379246968035718161204572381562779721676483273142665684992817142123146144808328146720270817334307889362414377796208887932257097967522339023012154074266030253053225575487576778590471480229903077569881230289783292299383640527479928657518166409120245000378041543347552974922900514903321801949954954373410600287501514455720130335804418944710660919347417327035498656920556670157041742589289682330591139789938647689547472982957978472902246893038467894407171845979952074057287798125985743031874695564550054255351529011258702539918640503501591200914193044568847450967543310195037347099064464306443766260454239089316646251530649028717705759939237292189279811260426342259733651667677000672379059620655218734724623858645425697569339686864883673829015761796406760550064858305055063765805590544153113208642617194640235719288950600456855183526536470870420972249341768917021984634737100278599136475702624638087968130685350563469064004979517743484132663788997330092899441245997159144076513538039656379718866718829715646609905505301410658724582209906666795942787721746553634445712596601498088415063309973540348617223878563146179169747825577491320567395887881807065714581535222591529403675025306433200652301236963090777751950209612999758866834320434485230350971570475836433690427674518335004342793759341816633674705013901306870069202246393787661666594866424337818073939178315645797621278355023328333263323346137382730583392238373166302632679051505074527458488918676533171211057577830800508867281868963797653396771593263269866456910705614571541331356975146552751543191086443684425932018309530137951294905059419731580085898429246228782618353585175801044681791753873721335842451237544804250769982537010118986513089260888607292809847552492509815435345716686484334364059867696807616201191632185630470653180177353833846411028976599936471938087760522237015343452373791832000376454056603631696676975460669151495459851761230590150637399506814218093107784803314372027465196522253049920064050959555775379855448908036325986394762831356723060728093352561714840498880599438608649881301612795960873860737728510202562879442673027243868917548208661405636567097899423583223332891335407672530154155818674819482342350085839670716390314503845467835397504034878466737896674783874487844864996415828690661728121658314587630085265913125174858594087829341954841883431862560899271138148234681132483045050599235045372805847783003688363308328487639947182847593658194130543691771256429499213499766652355030141704369821123706082682445296155921546331703737761061546467531639884824929899814134371479484052398876896596568793257937051224070875434896217083599222533423433590700247360133956605756867262866626822698239092255250064275278459127800928222292571336815728886018112232542337091344016337437904143998936248758427099526508056909503212330366695120887119139186901408005519513897588008453352600179749836706942470837123187449755487710007195047683770642439919300312299543182752967500317835497787063606100168162300474288415940269244504237564650921583187012368961971166497783866929006646557578169862717645144878890290916673506197797417086136732697368930583810927526675049924266075008506643677174525558796765454205225435754002743347049615824179414442320803115975636476478576027346601609274317623577302890248024156569749001385574239655146071874980055947087458240708850546536316216734447918985478479355234675569917334384108082259619451151694455268379173541020598946054786261161427745360187520570181042989173942766823732085676980384534421529931803003576656992052999800449750311134447291992465676576607790625402699423478833763961446766229329638694889714929130849805582463594564332930094250817228703110534448308197370746102503349902746423368258417328670240482828021482166903289079960621356063607367440831805781155103167957136167326455351643587224451935297855553405741890776213688716540432405586847296097494305328660586239242143943794649142316733586946076986520351598936059192476071993709454098199989056573264090333883376172093554241203419897624292340995088025029879296131260961379072296714361907274544207392952706306050383758289181096594851102068976761935447161512586710597116343881713517429488003383487881485235095267118529000797493331938892735774046558649179289491016428440835378526398500051251430535547900652420649751892962861337489719564637688955645595952866380153275070519511176224260774266871184646361721897096437030177711309141947677453337686101986323502212402346492223639620854913197360491088144147207694415124480387430551060552181093430109031091387179800321593805723144663833127437428779968090197415627966641514518485245207908176188355346209723819706289167168433998268982483847113068418586334158553761899065859503932486523233940125445321959400503755803949474602400602382423857606942395430171195079876199051703998481532376646699230885226404292952667547114038169467298941761936284580651589984477492425057175235958140686952378471662357496540194848166268298974445555549922530762942780289079689203095369743180363900981440911574668714716044460994460507522406384417037343252147418391910753919127565334546224250313001073704633401359517492503509569340740523276529307154043685858788683965941849666989748684014276035573835711558743300797260804436101215729584681223786462407567930377689747050016131305021338739936803412150411269656653416117623845030609235950374968383059433570931792720947763065730461191118176095021194555972536487274389895531130421551242942362343488904170197360467034924767513638819903940134097347992804762565653362411869878745969655475349817324304851522448520231657445204908271209535336750711971504267580993130591837363026681197537227689303994467554936902072609053566343875207881523628471104763761896667759347210645199283913229142594579437430737556788992640577063089024496048360653223461648230402943806834701684593958280569210673139140601647043420000670260841932943198522288626802535985710997014419553746129198035227685937366064947473241862891762088209706819271070549991260534931718501982711947896629651919479572719605252464900995141899875586271292271174791957207008851332081854077090689990502679731868962580400773563540974220556190879184951445333945448092856509446307182213312263175268311404681990912550684582239259353908447694304598426344239882774364302531322579123384090873802985634419539581697350468130496576777636883029315449915346512248257734031571991124582134085191649249185140228735251056183599215829320627678208358940308905036152169518253807953590518147051368840024389441090485416054509158579800363515074171496772031877475695759402566640297390657919421948444514822925995136321598399287568698089306842694463820655994457441187932024706156269872444528845722641145752924568536693885323488628333585484122555810890124831637730050492379651668817225206303712286350866696673819357316232473690290219905439317619865328155407559793770008617284262693606268415472397021189039715592641582694039772677719643472560407497342183840872051802729498775687847556021993769919294636459296071845088105373191398360676953961706545930730539223587842963219729834557520644342765197396438993531778531028879403783905252086887372549052323110700988436660771039814702728862503046159771895514947418984814061783553244951929571454876308972809541268745478350226807017843271388422244816728902352018686921137800677946511074930730300921747583890675404982205014858974120846414678176569811313449917388485748677314423542400100218203546429378585982416626056522940707929798184927630819236980232252649724810445463350442725648727701042904784519242343355817131830375156069030566699462099032413379197258134956263627672061440639154387371371983735546199561476745643669461801854528198099412614029722197479311360791123128794953795811193317704438231094458185393939819263099312958974316202238378905112971979754369828111200066326435910199289934357288549072787625414268323676543319030028421472546958126398688609968179161261917441921761899741993218901213856509856714993912571259838425565641987819685738009239289934908718894846955556164683355411720448692104606538096058604770618751314554743602259043222579425938261488812360327374271919272178870273672149937860165438233913412509921293694723487064868629966039150912391210572705658804760044972556049011440850874277628980835094112775144069703196114440440191486427827449574106836940250024178577417572843516891148372897876706234380937617256846869270084849734384313304018555138659416012988641075656048230100099811141135728788336992803329295217928940828069882200143869137834990242353061488078917326967763328387154635914473084931660483479583088695432321399078893366797748950809052235493991317204597963577061610640871829895210369161581507322221511930676674330782170497673117721508706613833299075506389529521658842715470829117472655976062902344458025024526598882507723882120903444944396250638057037150473462082488203490656432384817000727001505048346535703531788406790982328976829332811286643256693984410593808349796486688386465449245475152427448107170204150996614365725089135660312497650278323727622594551640606875245195438825046668115828799321451660441139295908127162925285071148187257560849960733975622968838346440796128902245043050820057156826641191964736672435159244281004354556185507714591791483990647203773480333488487576211479725842217536629319174791422758086230829513548313053895254235187545621646580828610579749312210345877847153128199583882705227624742184791890520644542710306757568122867329263743195330997831931949311445373388073678780385977670122074728212245923783188126699689420907108504957471289802175263390618153124119210585197786437555226993019076014856270935822361189074747394649692757850270711929805019208864947878620071256622331480205266971389550636585094143049266805285652753857375831765833191947404636969137044081358949034062495466813770993771004107698264368074633331845295996801701626734900230174168647269264696491457977367437650930622325501268229843067829471347359042180572137497608309376671928150834206624412323338230711569158125242321414816487644130137821565343559628553655488295772313962481781400945007102497839036553214414992163474676403052208916812294764068369888361345933914886919674794295554665184574851927905750870195825384075256555616452888303096865466431187047526706797996571003106993995850022103062620161611112490275245795196329778042831701565394043366181865192636640767628739567254981678359094528924577477174988071007432064497277780253491375676811343823208358956013043755581591739280178662136518874479773550206888618437419163504123967620296067005616213576910427580001708701596082618317959746927749643303398094880151292949331275208714864407824814865992540660692552248258181339618643527934263297743190236967720745285658341489705371795634551715273481125224983612124210604645692262768848282609944027476374394155619923265666451686339814820703148147861720509608822595462935267991724007954462094370005168493253900734768268010744548951708414728257558878407990565763428742708052693284323115172726258698562645403403101160258446022708876582357892327428910531590535166894071005541835601716687335286072455679030057950134935321660302470350991665783911315465016390901749403672136783375527720653566088850506462735842735031914517047201642877151343731057492097359138491607976291977636485734612483613340113000660984699784918307912517366991900599703813024190626838854176330288807459207529324053393359298114174131792003948446876942279217976476774502829231132733974148662963303338996610662640495066595300267429388465252168273049178330735831981278497291460796024129693964753108969475471346667282241917992741794396579865108345218154622611613559937141835266274869482929970755383820775436593811951842011222022308707550050224882365744324021170140964366544649887255506143291746774492316328761490264457395673865353069058891376230949513700569746616660272677303153211015815824900339665029185101969923725529402114375785451363488941841809165990153587303472999738097937181299200097171049229596407247627884861772453348373724165306406728031950785975947150886870036736886297857782337187878194785374983432580655153083749212374724514518253247429774768374982894769196310889128932726219275401537892078467242035579927993779360661758007497240662379912054458294680705850367965424591795367031829238491039325300837535151117278758402492889866684964547123215967064504877487513239931847309396171959114327408934657769317985407366413451709023705292076518821515815825895641153662053163163427088944667610459212363812420425398462034759092333022160861217901427777357295433690551136254487923111961753082504346739077473706818365911485781863727009343515673302875984018820902213894768204446866066718559804995477527903617465943601884828252638960363438646397831500860911901352888255087398789179742693638905137547016029940074390586794125810919423720130686577878353684204292109522015759527771638741238100215043316770964548354879958351655776400148414060703897093628732118063873948351126710733695018035546287927445905463125093954407477362370242907856455297490363063214266540819383815950430311157690150106626235481325415045374404806517640291822828609068069658588262810948669943512259916684797102750494479590645430438266446694322292178352349231567287707484920375144616810003230842956115618376008747568160797172872569503453008657893501428601567633068807993728935297881117912242352709192962275096856501390282872214260725014464131801835333905980543817550516107201490561351695622105999006548842023765368911657455180926685647528446749734446588688683083555017292772693301378951668354266456005730506277071595274635165032475925835423652370999123913821749290456186315040623365120318275382232835229300495322854177160597399446708531355062629594255419199881556065293426372399770008707288371037058992307975829628898554706447463424228073851630033827319240503176444100963803001251532120515447202922500755123724300079424925233735187971068906780639985878165887684885192807564602458066851875202994145996954235011013747468765144831150549722213278165450939519515997915628362839710551768123512535489491248972092063175441273746149697523017800329794220656964507295569094463808735380271711373264250089315470706273180214362340721562251828070116392537689547872547217162976989272851114003059216628714195285008882238031512851807977554857621143105316574879976256452172119866713500294800234288942676443089306884999608413704998651086695007805830010980750138277174365559779371306081149646334858072129988904655822871046758768202502223455856024771232675985089920725870738711248509250071833755800675987980229074559861808266084628393239539188172047437340272778922221291730871449695409830488088629450296485621346166448643572614020226411531860400308514419959334059973523804503321788532097493670289488238605639724627347582157521649400148159749441142713824257477313897723973982921819809585279744484933235353114405833485452249610029759198004300358705700060502215532148957823104891711216607759793350992202352602152611008536106143124708387019438546606513103469122437249270931469796827632634797653802154035044805848892781363937058265945585841539383594884330796960140696000952397678828775534263691445593574191197160168179712312263930703652335490389101231886591170147323403792683294849423483123847110936823762141411362835354672886068549249179981291555740587000651113182781366054705152835704029199086435050827493558515596142228343491135795020350534628151976092799523746930528765507636277755734250871819134603565819680907072898394136507639580686326464656621706157430698873446893468763581409872639180692917747008691170037185583773336171752751602990867823235578261881465388972916283697583728953709133461151659600664163078150463177976540727310770090310711034695066093582178446913873086713399521861243143274808462169064913770896283416093293668674644841613777219967660685179782740978982067035517732003448254401622628321129970006354280558401361893676276093770435318077159423314144076260133782106711543193871606986091432109550049172562369625168309397992533822760208279011050122391922942883760801110786206301101827092076991184506790956920155730998456669447303885141776675603379710062329178586400709699353307409444495331408692662243417212496632359702248179064346904404444861414482371785990841609407594880324377390260125265548981825303082024385856378413917925520567506439790729563543869039397472691412179490892232970881873247079727633551183543522877309786812386496026385056151504919535524440740055268495001734526973017350724122045027262503669063955976251156241157446944056833139792976902213612259891530805787891520728086182820091864555501888325078454269115331602729960982745406110379299696722235460447427224610892300586805019710605366764307838100534043503413865013806338620084375374143386748990775139666088571979676392810968933574560784639865161905255129819794656122044042378510475289995439955560574390123971856267349183008261680648351038475627648691313566620419821897871576290034777482240879042005463780711314687603649177138690182777817893528938571135572434261291154922717139799489339697263592049755123613550718542775301394109068765555972365629085535859891115809599212310489090814955801516784063262325268362705840845469845497407181915502512190816328666662411042794554811193499295939146501157888822259330086613020681491230521866346859929522658544190415891185065705419995643916015741225266357481127486134084321362603182471718000106084039502108761361813241840948625744412065793776356140682039568731366318291409292287293791176519604615104803458434294954292437705961767467935886845217971027765783462083616532612540570377548920833058046314533888917852469689017790802553369256753525361954777130133141592733407164515759679671820000519792394873973198272050346612954283779741755654086660626368794283648829960606506719812886766581850671079923544233499321768984315302511871127559275102321760967829508225400596785102258593815913028088937138794655323398076291746476088480111606180548779843002081886085415800029251734851253414897697789957080150174417683314026953657959548821317238780690033858895780229811148899434834213183199886254542159300226825625831047242677390888037156096696247156803035945535365172702994943182999027203872960017662107231083152604963501973596355810849264687603961880395288638760246057958878820477683160993264527524159170458875502864548130396426722723597021079193385165612005290368249630126359211092388466431301046582431946592773379951287133620401340279416977114847315257728577280554947645224982509171626183502544001678278530195383305880931841446016526665861681713199088586534072297268495417636693525834361590480398260257741017968770985796092027271159859565468132648061076630535651275340884424870902313230711042735980708509500501114006855398542526953161080781904593708087634954779518004524975849894995641450361620234453395485749382590628704972944010864404091322007293830121953746840628555088488389026882386122044405310539107871641908545058533038014093905116878210995260793629541441499468557870029404477043563277805085211027893599365880665511836168208392507822589604924391499510077305670465273043914141226670259821392775697209807032325062260249585008314447549382636746783128695820435453164083502469844955811219455077915008102741570836352669304428460868571242869510877892307645427063852057545769833027724946378110602709635844907955194542073733809814250510739711879984778793805314035346781234500416697929113222853760316944584732649661867759307384311233077858881464484870024124068978485857981199846168699633820151567437409219838261364181019698314275148953446205070583255304739139827484997451957345825158643011928209503454278862244760236018442663688354829377769288878238609251429660715966391631796403296016616833489038610037676108717536297096318506460792653015411310976419536544549308964096347929687192518964158057587099903195640150020091100457508992766677217216203651224113301156437004765872666481394493032217809027854159467776701612949822566627287995543525716448688288584859771844605277182825984906963289016715628730867650854694547102112810618559888277392691020725177504701260645079025504766825334420042792084504218532790918004866139005320393926699725960357285068200622534466443950233217223347060197184709292044110553860837413683708365683649936230981115326904659614607310631471764535100923877185156148892749426133009271033882706954971001434732857671906373792230674758781733571876182022499130628173391687239624586638355399060372411973278364054042702192859358022177314130025446596592066789603436540133819093549700802242003851171529206108114891411309785702578521725566273926272839012336068871419279305516732594640587996246097400948841957905157357092656720377134298943485653574190154903230321734049709445944033881073033877079189484901584707339514104784646201171600155901154973593705168498045411484695019319632365155832684961104757415372761746807716825560244182778795181753287929230018731713377156090573622551539126577743420737794769119415468989806355353773771053967194390838032977139350006018476932688841771189236462108367209772009477638718831264308033693374755237370023052800497875749363743964375452342894137859776722737484444519646282639983576790435894542721975499939296467973185500514246978692829783289280853052662910048973585512917269190349806574572945043600194173699983586854368313922711344177716707289463457602994382738726723814302267373217612623119724520597789037052533287297704649321703812261610134310902114204243058890472043789436928096467466133332802249196213243630031355234537549390443640687129933850769463695351709391140038766221216050383102500341543669070168045697266497993512892276790006915672632052404913188703191763586290217414233250866009860721937723414951206401437661169740675415001004428405551416592554618218564786297277627053134963397453129307677425860184748188205109377718870902896584843227964056031506326081162190592231758927377839365079875371526796098398349335044903697556025269198118729179119802232258356147681136764588963656039716181646778662646645395917110693187098264131249890076657169442352336146674229467484056586088360650676750748122747548087129183514463414317202190708061186238971353294233698268355114388157120910819608471294181396815927000278409874520435993609182274377706840038824406200709972046072814250797774043805968741640658405339844256202011876162590072817635122629233833768389073581537718416648995020219751807644774734585295845292747949559784956935716353640658376179058435873836670812936435245549937415070311091353974618132182751600183139960255154177121769807974588401796658452484259451634523042650137274395507097939710819983329050214490819055789242765011395428833670302286192401790507850070369792395022125441397259502330519801065427138224535193491559455755307608030035644388575643018075227058072091285791858937496398547305275019912757736259172121668953584457647010050955803561148159925362805643873881237574235316913601025242590055258655580578076609168996397696077577067070033388696339680634715361944501280675733583299164815593772875653838763469861086816841198975627052097891148185181595043741065313940610765137042581131469865869971597597321886828617533908664121776120444765015761879604504328993601742702330188786704798434553152979535377613143486783088003192524213291506560030690481604275804908753778388914685085728908529337453228780137111275675784283921498270630081120869079782839655012489009921978377568705048984017381474057013374836100789800174347552720565664271629787917202385511672276631811972223378007276133928923568884577583018712854172691734609981000760461965404555176770895034857789930238531285180075209785169800318824644951352359144815729024185875056304100670275293576671099373983122077579164342455419616509550549073401754813298916715427078444927491329486788377304404894209144828962365439099272545963483970149380846747006979802647944328893371368352056783912755511276852571813122531345193978714712111573225083923465255071064010023326536817746502763703774931985855191869306890777687874915871517838027849832821169998406751545932102962261045263600021261589770266321604673635650007625874150845222448011654019980737591841172944645087090365667014572454171676031207356278820172834206097352511173195014404926537967259256986205676107042142047570253836599848933919067676967941909636930162972506033067133587899537143187719267634891949302617586406231441348424114624475278344694734292808442634617238491962445734161079692673373048813881534769366420858816044023462092402795100226509942642702055653535539875813028799419410806774909606431792826816050667655097579636150131285356170142348574144644076774113311367728511419957762110419880644379549713660425650932989689179152707122756008150205538964134818113793896988274586403342352604364290483176984435796809260723791343764132219453997870009955337448537807548503610049822111905042067056411681945693316752637383083835409643667642757449488424582242720308661994264151823252630878527111656387246233544171898035641075931286519475020413876916530644521562470655573896403052107513183371609802892125852931345942749119105299591174687669217507526884993305037189594392094564144466202841997843128129761708586339325653545724151495012323841581240948712662716750138090848794774606924254010262704778959773693682446452451904787177790593125405183368692178330367940862329642982508193012490649419666297526783233159731193962181473120456790714859734910483977553663986524485274593248908432775724927156359184419499913596208076007247179097510311879365394809912628439887129406956625269386656392611366382432571505255871176344133777248532188463863421527855480011214776238739099883486059260343163223547261136749607675724915173891501032200859125126015662011713290205406490153182034300327449526090369075144891253248465360528461298894153551796312324240394657733552500813793559569354883386909931518593370920964898864997602094917036510039870297276191312088309732638212183322001597299895316594455517224734334146260793885445034026171674146609862401432974964065436102317889175065831126630849636509283730555888770894478797416563429467737838567115299501595218405390325175114742475637061254591473546854501489570045783292086004433956736645300780113855726654859190780011014161156260975750504787473553843664861955380413748684316581672687771407537190739366707037691018318050878124101534678181326823684320324518411776684140122340591983295307309076214541011368696694964202578355681117912294444912136671837034123236466241156588070853707341843527263055490727171826902994101085000962412258643557460190518461454524249425306661942791014923156950373645868173780156028830181373703688745714648549320400052620062795903851892860809049065580075965092330864015001062770099129363580238783898760346596488918435517833588794415023775029809056997437266074035020386804203883713934927348868175182372632933398993133993408005088734378124723690671161961867018911473451860417107010555484898216913499493671215867687889518074496897334858231629510774585411769900241966960086903117619714346527287632432468104408025858239241832229601416765335161806001842351036341087485117864367019131227162159185357882126191262532908112519976397223277417139913882601982875272018429759641713543105762551587735808609019824640369206096003162168956369379331651536044328333105943757169095576687078241590831340179394753213356087529054881498417274134202334048541942076721351554676732397818462858675918491283892652829214750334473465210795963229624394954116669034719063565843538611078998808189000952294310164413231275085250391758319583483624345033504879838370140913255015436795637482044746253845605069889980230713433612763702431694126896637072212960192086772379246975611021950574970273932579587642134485367254392241808617843116601290790417136997308274003458035105935571061652753793057596327756839562787718547425222265736672735493452548537976225649537598302671248093929473582029046520887674508707191484286745766553641034695777897585657331958815478156147566393817915826031744680573535357632772359425066085922366986574119079417901527427226471088557539777676472756545267368396735764942814507321702079276941608825702524409679057830645823115071258565386454100361514411942937640799085960872627174061105700600070306991680670039286807845374650185674028568824908470167079787399684535022534846215960942269463099394259692912073747125389191853097936651455589360388522611927314961242609512497358940434971794624078807806833140245586752346678572678190388535187855207941488205301064787741029760988557293204899404687926374376557602855261090591433473981216622414966596977012780078278169612110177356268697313180112982892894324600111009451134284087220961202141671192563626488062415567131737581616236370753536415924210878579540042730035659146031695142142950895077132388489936919251453116234409094934435603656580917110367801866769870663846868088541069970795743226419669738417051546721036027943034668489275744444473145654906836755059593167738862648945030460085513977633436748601766180627379647888189680501030450117356417743631292089815245290446604337484801899319799054920337852641899097636291972448793699264367502238643113302814764552212646619433184519400826129050899056398011107995416837884471045816577299343290582402429829522205357967812731032619701053370456813734783586606068620915451307780220623781432646858456240500141693373253296534888009480537708401970160734292244247084223384777101295179085763760374287232050754556589876272071027363230630701758272330812629864431000255041429796174554592063892249846991114051178786593026972609597878287976730062579214634027107349287616059763106710316056565864585339332899476250720895528162926752386596520916632200589975322011174041383463606611241670947037555773350644995833541501344330056015891831197486503347186255561450713450179365037380819299161809172273520253714161898050492986226762731967933682211948302460146845440168999429198883847313012777811634013387747764274324949938755618392602888840474312418390628479182872857797871777734387419407765616588842146029522936852405024983923724661764526581764254432055053539161084209205464311923237047588897775438492947727507573233412417931820210526380269113277421013346724123712607128910779008224334453473323944826499908206092922876928591132470452067615953310025084365228114327147194899116688531493596903842484947734202617574860646684066361425634651247277833152965373960909443248891674158710891071934701742410464876397924930996453451214438962297330236528967965812953064907245146479614131828283500372253395222161169432610743173946797593684025989639242487636259323100474632355695261084761584762354740061038521096775171984221470515191796522053606187425898544327557898869831411559016351343654421704885508501831064121006301131454483638728438762774172857896420612095695567614988861591704138643934599276209074413040990744844115130206242239479759393517045962687387818955489325919573734030315001038536559998132713775298277657251410921435956147261853398836670220199504387633023524352352375989820720167820056403281988070942333301510589444078341754637768819846068864110199421897589327757362382414632688718817927496181183553778809271330114610246699891766746066923120121760056458984938325331699720279150798635324421999021362825028819262336726756383294444004311602543807110970019226570859341578164933122716722459822724354538359796860301918655031867717292753227010119141822429402585670627216693507580415355627721355056393204628901401838509292137264225808476468671801770250602679864438161299604900865644051806906375447180936703291798592651061793406718051603378196248759907137767032644653242027701492224000279007971102831573883894783267096813538853871656064212101587690146924548715038693146536627640567908514400759182117069320409471946114292292082243897139766152032188533541808144226543083876247999078554129671020414341050020863525660883092561196029491870827739130092918843520721838580333960579262576170689534117570741408200454103296726384446965458117564126216786362671692886232419144275286581149203684570679680337387396680654398921285448639357082928087282428841455511739127043402210505888531330261764742240743727998395620342066629736456363704788047554144002726389696036065412262345620522664938979617325826374317697224130227349279075620629378474427152901638032599903618959693529950288157410973251375120071779517164340170282265524049688772582499581367044805087043700707749119795462496636339551901478690038751932917522263708348868244819446018700910812143375816131987613221531325423854695038571019246056200494398412290341552850898835380661563051415432983981434731880526877901347210140323408300898189388061781770351703863217427582219861413916958245595789478462212566184021717626631889534547276795448195014572342468204182364033925609447097230598223279205082951897074850297871370195032792374603037663192481080736083169981357733296706858407742727730050979785124931890524930387460395766311365322868834469456022177759426570218973329658705101386629375442435740635406972208009878080278352931454104715408517107343311439808474897620754935054317314135196523460927390511637214864494282491973047170878663243809065859465817638503183263702842066437062137835581891074170581763804672827086854353908732649701791251511722700015911999815200288996330458384684465024374691878578914007659588270985166413816068360624797583880214960851624825816551430232828776100905922031487556423052412437147344623368997933418260566983880120974780566039096687666916753428405777696726235461977954112993486800834815732211899812891221837055014053690098808148463709315695346245064437092233897981281352206097853579372617024606648697680371509703966295119758875407507528360227451176984078037705215812818763372549618738529494393429507105716686277950702247121907171523903967155243479395307967578107555093439363749274762556544321596950405864524742999337656809242191825081609675407437338621979716457267455443495718873717246214996200911059116996326550137241550940084871270626269974888109834988941912331055513122789650966703352902838541925210769685801806699547606248656099556266026716849952820818546363897626584174162517105937557297880619077154300292532696731174597859145470765601302538998279718833049902714325683356639734552324116296795790026177390473887098178118919477571317913685414105527793202487828287543628923506461816506404559620784989654603902444103976782883487551651585806874392876276391358152695458316504631880459365221724101012315606919400938115200723185894908513158046710450102338110948420844759739679252302019948269668674849622604908475784874528789722795143109263568638018105513313038658659864088073116231658565016678215492598858393190299542776632420969082364151560295564686427939646192004998385328174036314089482230461835966199334997193375816026705236114224491896484139947684274712454075126150406595148149968411214374303620301212270866843566402697704709547101017216129451497046280370809903280583059476990299411680995356354863257930737409608495376059066644771733187076760122823851914305589844793277225205445625551593056464870785695042617335307077210954643707443653694855699979700898516203551020191509428240524229287536650961146267076180349333910286036981107157371804749591181670324121732939253178920901721776801078611198636471075958844707159126834948305751381661324931952344241889266938664660519688946622079150200690661557377450873545536771590598294358210933270156902161030119649921079534503469700269444382292578802352962527884238976205111227214367457624264738820825619494509624334327915439419789498964034093967180877139038600880864876403113270054474862192292611450022034719645765226662707095580387472282524301757951233728143860715770575192212043478043113173695917124788352993981806832719934045935189295490110364678647291634396850184103196191644303900618647273291014018701564923437154412325414303540415022930672390212334472392094676722853378382878781669052556242006919360197670944445619234642911476448467978154678381549102623126625400910425912011272704536463758257730608288086662245448034462470195403618355600360166668213525071103840056613588011641410904987773802501780252604088548582905838121554590830531865304268783598129545251302107675395481185234052522870557774691736448268538041831878986968269044623864761102642672816578684478667483318783272189305088200341773441619992120199590982443551933770597621467674574667024366347288358880525052458697877171439490018623382160480359038302902306983766281017361079055049988627683896519524659453405328842458256230212262649013537825048133505012638901593460278487839602817382775352472776916056638853927772787507916279197481243186144541376778033170551651197372740993074320681380821508230382459583972351934846791243176226026969584844262882414907890496022453719140260140502475355108101811589257814513619341087222266897814849174742747464397320224947604079850076082524048502187998450023581112488596166742469484613100922146904285864431133311424960560057135568333256212517832617855108691560597254964939816618862149410902464499768564147690003648438199858481808425903205037116871328263055578694675245113319981042206799691920041227865980362011839148210975522393706234218038847726837264530337737506661325436240242346732848647508160130607199585146918178695447413523919854129589989630775992911760091207330793772780223778784389602749349530151876403728704310540960751518649431232684530590035912803019586989043611215495908889399144452091306205358579963074271024301944947523505606852066642543624094482799100987547539285557523164584076551553847352562597018424110620793652332284750016311146435873449474299895461766810507106190742847261279725365105059986931452722491847686155765554417150209809896370636823967500866719921842648641269209434161819736835407542739165824588316464257503065849971387358606075449995005133694358420867616247252773501376529397172528879695285510948669300808707255074382889210389971831521163889852121790292798570171618008097837391429996177211183688849504065803481737989452469202675875022889124814337259742590525091236656900903164041609786095828740801012760700587183503803564615524689274424472991436229556590948341298264916232034929897091231500228727391668044246461855920607582335409436946689391675836899432058270937637480111707913654955766580200955361474177891784429371828866809180984946761710832372140371912190312457970899924819388629533148998804349282971278885639463703602176548795869847478824036037048669614535991522604664927335526084951730391070884528861697164088013718271812617960820508705881116946671528916223478205119156538511371593215544868371822010589152743537993736598243081418935646779951048573131456887386405116043016858673476786435479352561215221761271590313365127898654914800469030250474455718403694065019768148629523095494732305118859838010242796403127702526526948422055541612914819066907535162684605876263337510976036103894695163885379412961928233358357699570758817261477458826065939042764652704856851617476739451386041964659681652063819611563051022205277115044098200595666589953325201157985786962077692290580752615155075395078679380019998385642456949411930176668630832879300776863048643685521784658066674187035127396043723618935862438785415337109046818041604476094187049598547659304916507777136837802055229453649513530486758644736968358541392894693454168811367505247629907733182094566846352795971520243780568302415240882878861126864019940611026734069843006968084562819353283087803819559009047245536404947891697524645311805026121889337416513001687277930164846328119100802053459378718416931740664934655704975191051943650598343398987565876798914560145628150559703880988034002488743087218289868562130961818176031046547902230476161216560303830668220667531110249634981754828956805269671668533023262255020693268395541583842374252980819999949098418359223433030646762195255140958677865245448739610357564161125568535621903248657873898115724653882724048374680895191661492994869343132734566789194841892494524186628812200293645026610624508075456929033426788564374999490010299221845287630875813392218421928833383789050579123324900530351000648886477948767168042055217660754688079463227101482933758718367046423518951705522630743724527937547407229671761949167613659118758808272443731143995239984428226924270338295603381996827407244677730026960692809887940159823801169595503150567113334170492473039283237094570643701805636114228753771012387010676741501786804171043575156519930923382065781607338656549395412690054254278963644981753945387940314316024857933902475705039054459465915429477187288522555258187228481825347847558059240079916300524353679894259700031747697764496712260684431114733692747269251399134872557335154087931507222119675227504139952997873101560356448376604737817947579304159760075189524688191454536942750565415085189004345832848947506792572906519146710123495187815715305423703399258720651197827830357222213739035598408248884117143378073173803661116462937883782433182261912287498277479452181032563525735756298466464363348366691441341058897660303367091398160996184063430023732951426146386401076390363538768425316959701483302191345881988144552385493516234447357526227656215245585643174493122612685006617242854864032591028113229901558736369527954751347788610286734742084880648084182685277583425821354533352378577523411922716606581220310474240540239751975189144639587309175264569717527575881673069058722849247894845978663923771365371341177654932378482485493642752365305899091004822253654815422754912462994260037815882698257330479443599700614753227399103066770167182829748009944399931063813020922270356643255564548707675201552633739014035730089036975164873941942602149517657814627839482332113750366072851081553515188911469933588122417462684828307972665533889898992771932686602115732176951579062061473736389531647863791507620134404017454777659682837720005900586654532562782746852490477957669168451765667519947455928929704940823610367758766465611174743091536899165062359761660520555320930234171683195873683803079521263086693580918761181815701847137028400973791054928969081340395813741474388958355466445837246309542084295359891290482748317671421129914179988391892432157893322544571061435310216811304756433140487898305568195670793988948781681365784785745374915325988919118278943229960694535893039113699016301882937986567390597586863095243686292933321060766792898919861106658204980247597183725322359989019856165253671798032492208881141191231163808852723404338434054675000174003942001111820999371381608144121586861595103029120300087720226880747286199853113771635318612683544439743097287614088455071935751207110645047642072407880201453874623131639124528747973345062046364576319527315596006395339923632023887915977900229621259798172814774991685041347194897618616918180668589070802906086873882652954057016962711690617137594300544134002837899425608969517539731335461342819089923232177001726629552797989295851617811694039830365467686218497314331853997447375481983566419734868497610558648973654011860160945125993192486643783400813522278237546000697880915737028739879952291125340740298082317750734194917948954079654807059607042921435353055607530029300567744505501870705432751883151980010558217744852371265680265143314244529750656446436468693738661671137841586758910413779846887632309400233481941850063911261761524053186509707574139864284206165370423094697601248442208277246033283928790771122946916000474366596813633248962392051375726208301293503526614750164410131953957223866514832785469641984031107103677737022687501543706881520542608727105597927388131394620523448213238054354865038916830684476314855761477704835956005761032725328501800885223376640965698062384455190611743390098778323224921052462591398223022364724249563889240732724101953655760101342868900104823724288777623017999660942305607797794693919997833398592305902463540486304855227038616116824160133354807508836994702464383048454789481211259340934942517738714309529716911730377007042990871155165954699579797758384396424752512413742332645258082311235913191367982730764766731018803091051791609228309884332783503424279801934215877535302030015563716684987519407630478679122613899319127020586113909151558700672197707452224214441927699100254624335732517834926343964187168728278303754904782482703824428134065870327172884140128833848223778152231846945051455931305388747585695376735052258143430732368373082183104359013436442697762554421809306122084494112916253263890568574871982736349954012276834893409286581001498384962062377438138407064979482477322673545305316091503840190501897345586371827326778321516121555121865781701251886632501138925093153945309224754551150928565257277654288093212578450416465383214664114752196014947619347937712732513262387114986566233426468815135713818269598748640566900792272816380983019252171666502333474016170812950248977765000229862954064794125969569179281971761143331079145433921775962295598530935032706037389621390373512038008068121463132781416060590147043644412241070356997015591723737783919732738954056743269240987855067752837000859164556895474611833268953055352686269949956702293808596148986209600607910349469362072618122037926780554439754235590713194493207731074836816964246464358423225129866666318458632658740392515536241802425294223751859135835452614496155590631106219106820700156924762226642835208874692439035902899281472325755512417806491100869135971635952509963027963217544088293297927525251557280693506645189653272800186896919456457726599661823957142638939495654568807261423421549171800781767406195625975328575674918640977251215428744914468068943315918171518325483882898158831505493048791946468901372930228860896593198041476574128122239066214256256854532488687075452146598340503600669313739630679066334090975212625125847599051413120741524373672805597682857985943424910744300066614804551591240812524922913181087842432942277582890215101619546997803143743182854217857152251387132456838442349358370711948636635801851933016472715448634533711944601378584429591381709331851371363107621047634614911856292542685926028234674035745567224007841989141178786529409745929726505150241557162181332684083201333448979887085031606669247410992134031590903283275080646382402757318434096864195150953319484339589846688343809509214983015223325324082556077788834723256109777960313844050041959835437544491074286557384780361047696885192605664869209341510623180553426548858775339322964213399707879050404702220559301640013129357329099954616753669268988770657774354277685685960041050769504145971322423756579161613370164926831099730687074814279557913787122105338766500207197128104885307773488721122080655278612217693386472794873294068286533667013794918496568091582670029662657345163318040304845987766717688814130396488706397417584138342623196008248141341698705235161918111658091845447175597519162818031642837637161927797068018517660272886515687262229323435344625310193626424381980608679199713676940105210267849428586266777356692580189653472285214408173211489280283867093172825796935937586761919491941194572902112730396165159013386688669292663538126681002694200729812430983494264855260893550504743509867227912939115108945595064577212794112671389698246558851913129610419512869732888115536472159351942285786407006368993879573483343198758985477801134038862552249497303496687028108802494208591244980143348541493161211031118459413426246845367850462409576251299435575966284974121457116100515258253946520350809205369435826768394758744979615559682388660796741418782098877628183254687702332008777818067870537118648954918380156046067618363686634155129541161271648224553430546141311449370857927851044710529423223103439055323783334646752553529931476068735806023988025423048038344910624398446965430266642402885765176171906724745011513503600484086599000408644112018767135524274446756294010898768749965634944296257704970901128068242578314707575480513853537529437396407853897917868899929013399115673050250472964569007658269251431031167356487779912957518031470387270598537304746581963259171015696899467221988151114032820508575849301243195933645651081736631247610562949934035899233721405025752413739618274013701504938718411270622216139285164454293658168244939027329050461443007436430603617790686165349805966782576449779035398708424934047110632837061074202837748531710179491056016671329776152357843509342783290917182188414052755194631708424343472355180683182130334935169214410496065399392553466939214276283243887908048113557117259365419745004821158152678866273169700194098314649375999603885286936607203068238170957284179365142319786064162937063225817237802551244978825010158157295044859902253104534636516405621991147659439800881767722001671033390496478014417158825946748560666843506022878173981504214775218833322239107010181975039002447421961789344732301705210519339450511972967097927672005642987380198302800021207286385083509513692746401038214991859176327726847674157617511416751537324095376883391350773436271337156305931971045406855165911776135963267897291589598443988330724663125317385134668687402261921119142418487134538073319896754036378427167181361302610248997551709451076618645311191068415188605515501493413278488566847586770879699547870783773516260744612828041131014820818149056615216007195994526145762576704597904152963539098117947235368593442113318466024269959789119662209558490925745300238584250928256918180534738826538576321371065469519757719198506010761869249978701953248633716745842349416898854914315533945237075537346623529955320572624759151836987373265833070484636734243226515772924742004435308326363374938748704845243134985977539678010584238951499043860753248754447711700708148476330642819208836063941895083532632460337300148440260609573664581678142407485347331058873239255896808137855465032260771444488871376324136125680546792498519591497361543114392383025254440526819598361852339245037993315508342944847961570777791595613529322525454675622675519869697696913653928737703381147666903405022522208487134068217383272655997081728935442659700754550757241722218121961208145165994340584714494405907193001006207731377864579625633859871406181477423937823229199027171438987447010126668554206512529371682000711208049167563000442178086299542100961959681169574755551571716255963144975361740881360649739522483264939823475688146361327514590722413630881897135598416811476207438051939445634727710031705553286060076893127250247382268428709328304723444090240894401166145297683494150391929069631664226171312953385109836890346459608859866889287832217265026939953437365777248945961983718885822290607129744534915556058925768556865254216785152689232696547855405871889751002472139872264271604226710373316765046882937429663744736051470037658538438384514577579512460730678319044694546083830695123991837042631666191042646812329922706727296561487351881217784124604139977061158064675476748091417284139848616617735683668840343402137846939576587397813862934552286305503075165347067679657865014008505713819661324311400723204348622205207836916109442400127701155427634181708975762408827940350387714157112609145388040558163600776527630157243435365887628104759273928664074478412206312754391380647690911957533068170442490505493093343263380027439146905669164138660940313444635759590701250936463399707762506450136067820996902724215716025146687536232139596551193262849854171134934090185264319014745300668569099971975257062424491424754338385367901914462271722689861490719002063179622624594168339447726780066970750882957785828831612346136381878300773785797736821165923693294991232957242077932203619363414175201239207353098575480391028684066003687750628950116046417437071304591314287660021607405040612214931567477884977760390732877865489172431665056282295215597023671756257490154351890752592740616096241068005872054411243045426811101379317354099341650282977619619392959757417918079385289536053028068851665618638081339408054748471960757914891923983017813076935048214236504363615852295270231404204533411000799175312597765386787542683029280963125045947333374111188471292743568697343018136682009897626625463325070365418262615222289277728756069786729195920303189441775344075932232050617277670820814344415683778530418235791164638381560006248434550215241718750926870884336020028090768227520961730430828710875702654547026193550872148460081592483487028992240949489583538200749077945479480774585607879968375680238528545158576742507897543470471309781494145808175593630267289021226479639979313880153867043189421702166329849828439984556236551691289393439078598748543239088782334775159125081068059287080156577925956992176038090679730247674262558072653231828243518005876135577454472953793574116960299487405663513620199371982035839962586412145106330825485104553016825453736356542751204186393920402391928052846883583092316586317159030656387889923191791340982317132600607228187291976119840333118265027222928459571027935299977430647346208918850204858614700996980431500537881757843608963121845486923538828465843382477654485746868822305759307324774617941585657352838896092476557484203377194560170420251978955627463423890438467317403970070276541671318183992329108393112653430078937558714961919255874783025131256842426275064056779737855723932816960821171362821310714888758727549569872237126787440859921998029691471191289665194360038360692786663805913250935621938635150148654618843895820126713919780254052317367800057057734912375418922063978378842585426045094254595927968217932239469842079792550396120440053652311627192338480932565462522751311115787476537733586897742166728386590942086500429266545408897279663397780113557924293386960749680383211535480643920313234856755643790577300127879773329931535905573527205169306792883015153738887616474412646752742545655530678830670389432301172733240120037444116852004045630712967832176921557820895094058197124628784534834862828226427388941091835954015224238381990121484381334739572014817228363026399718583598102866985548292534481238629700905923965254969474434514842513495706637504994737928786164668784271424463424965505693052667325911290151096249817657150841818381079210453069580725754767014405649190336374003161915204498713901224608852331168988275672579454428864854748065223254584698361292841608018843796405982961017648770699554326259711935335513029254689480317527820187200761457995232545276074500002519401002830236808344314495116551603416220133434544182638017879573471514802828596044114705646044826624822479004999101726229152593383671814964926101879495849973540874568130222845240405483869416969746623938496115444282270946351391229423404843729386871899731246602053964885686006085619529809761804329408022307508391883835254262559030389261462582280747371909044561945453531932223130986840958958308586172158698192678982443186357635580850372213935998919447499919353667320897716420444585231096997195679416871575902272105684149481557441361588533818608746927226413375024144583400104885881620151236229961230757639765024640493779519685140202523012336137187550668540513970077074520564271189327348502571208169944652725366674796183488383116861417262939895941476196282960672378742589470699636713250837424920104361751851896693027359685887581795900392677061326674124306870716092380795421717422172166870468397086051736006763936632571466931521134753280632785318850108611340541158875976609366675521236395547954598274096758253233645879471546174918730083848410378997677492941677975509509693664733639239018914003872890154736950934211830011568520709406031070236243913613536647556377083558371421475606062230839230383701237551690195216168123202141032657994552183813600375235980779998967468512208896635979161955279609189329137534252864744535216460384346839769100085368670552096706731223727396795938512324326148507001286948101939484435811280099757642046162373447789814346329489974046240986068066147759686229839589280781560119027829323501258000115999851066944123068528287218193581341125058611421632874868991630274292497336741997816244510283029641076257415505118675999493047087701840870003278354203114664130929287734440592873573133747903072680946103923075704669072891306096487212911549458083299077305004816132328525601508927899161798505902951361694690207911479454358403198619234847505027510649876021342367195403287006087814157139243540648439832473407977443170117447593623066134019925601261911169771933533172316803537960950377559306206974282887642919704646045879508495801026228205108289930273056262914475563708870537720151341466166523546347422556041980076385791061762119089816730702502187057474781077597810158295034351536625927525713410274910148130207310310097478173380088395999917597420161413384867305381909971807960692117200632247514856195662963714269266258979976592351636819392056064128864193661236254397806779633715711511005378693291788187633606511662777903724063093066091738633012234473544774463010853052457636755981220080028380893238111219540092682323115796505728543329668719685991755302338984234995222344718845716287701238142746697120853832910768875646992820615720993547826010622141011462926985998718082313332873642641874507498964219691210111090122640493781085755404980022743867700084779945179081860416811819859319563406976273594013548176256813047992991433965705136321806631592491650354448344521785920407633234074094238150586931501035590436787788798983789469517012306584498943977236087126261895671182118025494328496143790615159404492034868810794970480628085305325030054471177576857197154230895387364795393321602517418819119203518657650306533369656672923856119682833330367887975884754706862498587146494708319009444420448569984133990022471562802230227897571605426894525496241516708757764080369718469247697338654132542524807125184587332065181142732256575151828326379621898127603565236766396270768621523291433332466685855867038959912445689713793493412658453766612558430427921595888019049537706633750159808794136223792972516557325244818937326202381680046608939907863301055594177726948529860189320273465181052725165266633765449515890143754948411210306015937332543190409142517303799195203895313113829285765312862865647209509732221739406605725003547213604919322140909904220719223652399763841377287640605913495391715351492027483968025934064204826573988386854964905763130967697804672994042430309999755918483115669596555982703044615391268777762146843787788300860963675963226172521224118809818539273775213670001242254349236625177611656840579334312665875695871809749051505243839849518098209944228555240001836799070728992049483877018523248263353799576295861094935841663979359336919215801525960172554443800607334606789083650571244387751530151364285907415206825449590461381471666944600421936573930536806405045360461232254527010064997866806013539393210432463926393287083234862521607162998289320281908246530891182664770765406940449987364136947469567485659409297038982341539731412564002281918015239866327554343908438974015208680008286787638699809722778979817044671149881522842398069473659755146695008332721700502997821900378946690840792257168136623100455680158272649361095728011362342064870837466912159609424600212533063811625698935228751094880166711098334058887714246498261175640150809088448985632663854101575541966937753196770432247472336010598753824523807299942385081358233599811004063308512799941566789182224517292767684260830832418034388399783978499958325644061283251993811055932465501225529910512117182104903631453849209030098296166287418251937873920073494725579707722511387422188402290325885847569951402073872166401322358958019478358004229633386863632204854952659886824545810228871624424966785135513238989110184015069544532555232432326938752938831582801210647794079566037299599571211388620807470266768439703172794702268184745746853461750999680301085170226134208454270676939621141254406912769086663388280663299914669258922854075253648985248569467125221631022965031127055672085192273346924118758097392277810258895311468013709815839242598202059275588018173218346295284134184508135183619317284860102570218605900734348240301611499213841283116518930167909597259912413934378338317697419036912744835885982728670374945312966063913038096935654028358597900297058756372989546392313784154560012487586042521143844941661693938070245897991188654079925276851264120970255923999843338459653250006799020790068697938441659704388016580020691865378211463314966296659244572767794912421834315459517391480061689615402637272837914827173667375855099670873378084588541975030123704757969460569730661447796851296262392331720351559089677667544826050230304950586876971047200567951240947431957598609147978729637614871361376457168673178253495818731930993104178005851355224009907548991886105383812629590098007892779547693303074970174325012716969857635565956404325427542457723716661596831133407158084151082919665164386743893676476612574846986110236971763084536145386234371694219944769275346032997467731808328815601901802196926837236332910467550927095266179016790931931197408966937015250889766660454391935369031881729495107462520361210909234921723017471508438331202530103884719598737495269956346641800799282327578385060424053653978219056174588980159733661175869993629449402923208697261229423028469009635573924699664762610516433085228863119137734777608211603089415768440445888734265455661725149701505865552437569060211522461434571092120297276364097451987672825620378499828861695825657665866029213310302565137766081231826416340927476099159697038431202841404081979476295618167709509888933663614858136920995791898912274805959912322616479456813626051780152621062980626234453216424891649059521982795741342545883809095740701128983260700940266304710106943665093616692754672317980999577386629188176614379807855763523506347033640508699313382584337475637897706370422068320719904864624661837358471026291011050161293834800295465509101642433623387935582061151746199304320897003031300619747824135457699565374134160455836206882360945941406500017939755667335658487289947097602174405323086021356753098181785625408276840475833864747517240044645839373810315267296284003534096157669241272658908835154293704871835795371475703140858302920820215040429405716000915417343043746751141627500186184229442893456157002068680235607422870037457895498862634713185411952517944567197564961298355888865980308041993567894041186471745014318349221180803255290296129611336930398656574823131635643940933947187900643179998722213761449078065028574773557695088966140951394321119004683935437080078583004166553825446800907201106968564007404401293118612417269563439400077814935456053753860053078675414217457390048733866642713374418709690732827085672021884681770048754183584952376880520016566634652932900637588959963113901410338785597768122519279898409575225193782924637403738953988347088953306410322903768564241380096697740360311587519228111009484746741110239791787777811427324973403633566609726664554953197182357075450669316905392075138995098387662796429354733227044731244316339307609707237120825347487820922445373692809335108306969790493277499637776141591104903966928259281634155523302223527056701931249073162161627078979066692099047874728070490434562319018012531353322681128720603930838353774299443516511859629466534138840135231695189595984737117510002226575153983381719228051158721983754707452508025329641394665501905336348017045133303153862064445324758731494363433873483296935972407734655442475752575025441478442497432849529465891250001251973046750832928060275890805838272420139397008665968355469485678167696246599677984903352171610793662339887065956726235593674817827098068505261674861213853077762256364174668738481033346707162788430094306395553475434068562368357022610829232219653763720627000521119524882139568525227597191575086226224198146220614217067086366234005545735891979863551741147989808430683061445217964760677181595632834905210091719127195279321250766613684754368198496901143451907805007268796007069576993084483159139119304090326395638794673150270230670774708491060484257084616801017465788582583570255660563807666251911664419604894918308447802333569093183254190755874682087045744638383107872815111801412314623365731538084407977905335808939967178250957360395394313641392969993703165777500147908139670305784148733978380833478624263462648500542482251835991170951262449180644874233732615936105311723951258505141066805194720703822760455184643479680517859315025986875462349780361010050800470817151319667409918591042479786602098459469724136756730881111275506807111957604073712296280345889553782015756141044442409393707761402727462232518810960393005110404106022356224355180030371045949425782517969369625058637739507631846064725747123437472123851001852553544099871526404538776036926618322879468211208035604426766380964356275450346131115335070745503605710674127012345448594602361178994922243815704140993574004637432578588265163938703736662005874177397452073468406702144716255055680312685285603542685053475073946954753751007054488740432827032936780406972683525588715303158002733924118237063134051404989051874414284132343956539763217247246529442376275690236205527506954154789021582016149029837513800094317497038076729965412505556318750583299067384420999595725081560182807621680527067778437358986420732414567191908915514025586298923030456314933653678691845162073890152612603023122403650180375431697509742151693584608101440722928844853237517470836507662035467605356852765922779487047744859644462670426080850134508697131772180896800388707253505549626921837083381797057333878704004711286166063773082588733958047966212803165653436132568326426566857225757672346534201523631421957148388706718220995663363910032486735487991645439369872098189911060407822525257714295584794690508600704522910286505293410697734708491351434100109778557411977072849809096180717452775337681035563028719650930340153580425740345555850604475650177441351201780500737614685839484729680981840018190779845431122137011699912729637662138216657876942317459289003691964088340196604012573569290811502958050083112376175787069739124005143322645980744417410621198133661947249990111623543627189736678971722736112594091437204465109307939468605949786429381867708666034363607700271573776709844223887164702581696893075135882297013008034757215034757330175958013766023847430239846803654490731644922341708055184512541594454460021488381121293583206308865790864605188100556624097507416989336808304685260201488840247296703407887197170886194295772288912161825361777292389122442730664349275751628225328513213519193805704181286731079171819248753320276566122378800947588101946957565581251415385820847232239734125732092799401841651390923010377238437202665440718043870605347484078205228646532981355970478167174540761852136749023280355929131616330323301388596649221315593202935299750138814685493926098641820584892730205327146105744574746800275322553618795967105838550937983757875432349655910770845144427414633779112187546620104311193882155607018483925879345019476236092615420348254682070511642859064734163915798807033002749774662054293601096685746389464658189756676130403348201559703003954636789054823343127538747030112741266296414376441600734430788676394678969123615778979172915045253051738677880818219381219121146100548361248830317747968437650396318281599878933112451087356111092432473285491939058777815856826352549687333257470999499903262727323024448831897612077019940846456302795314199122488879455596108384284431043701375917619526979901553790292587827955882792541741950137341877367623792976830623813989010198577869077249578332531544487199443855879052398829062933112301981766586175376136460547132194202414659347904227245501902936803498632320745235115824278883748007119456309694169937442063329671952508038687747372081519624643838038540959398268157981407381917616592498495234887301028405384340766446153968329972661321842402166483574983025000407765786051796353900026880688910639852471201460021967954869952409009886765664721471616023399019038062042774527615930245483993764296214551123783594295338804507492346351134825899710609561847716220160720016364112838187192412601672590178138453448444530152785794090954216196783755630057052612130852912749952104568020650957862623213955590395952940029331509355007108946630842118290905779242893555661681664707529279912905312329684656222506028660805704503664489775332114214768213974884585154352860968958987239272839188465040139559631085122178944149113756551579242413698699770000776313692153644124747176871477291133707750403995750282232421891828200187414470472791565471599070434234739722847053699984041733529638483687676177805165382614970574550844117407055635355866924290670164465515990307392846138408741998272616597143904468690854690300502567471334247086091424413151042075555599035888338052065521536013649970675067205667359581942692690269869930660604610185331017581468436627342325960075239003274132601274485014572823110871120044915728642705430134220794882910192532814190402408432790767408875267769391505585745681693070697854612781187165837834279804138036709292043524639844769155058174782108571429995847148241581028253141932842814632491985039725215473946238689209567307627993576109479837785342833798253085528631916507220596380991333433179077131772784895496317411219494107433276842126039654090981264900851474808018758505183942375614160615444862151598325536106072358165218788287722896232510576404870857650275362426123060960011120042168479475776340776287203044426148233741780751088234447695857740136587755532710808991727031142842271458209492889256037602020433111540218926473106428584873917239418301008323071434320264939200923699885897850903660177358831837730495066857534384876907289171229777923792895539184167797269710609536311124055101302963807233039370312038801709650060660318656902264764466230251556599146346547204812902193609075507879176163688982465222763008421500432686748362077613452683734866825468653747357262992314545899604246398471948957556727497907743753311320791844939976891635262697457249374446790098667935034568506709978726438493271428069914758669347435188766250113271326472762765592399245959392434269091255179031120882470041679321375345395178942383228003907058712602745533777798791501238029752473367796797518861275771740181586744850797175090302912112486343389159059044291349195575441517212696350573254759687445358547543564261929188344488724533853919723458538182161127023817242922705891309911612805741908463097960000440526612958003035556579100883057458109680783571263404171285305560403382981014627640352082469657346783033398547452318606468455922099130393071867203236737912370356677671695805776762502819687340437778530186639654680374014817486010318075987450690112379825417978710199390278131581137677741722514560631847359064154393005299168614061387155333962053998754077264134563404286189261490879990597778502818919554759417402739839357391512700105890490184236729712313931565724135950849855921115982525739314191001832834268112287648266168734794659443582120388028987738311018954752379693254627720141198532340496206320379648648719974580263276366085964960048784273213686939261239283531888892268131856973232504447875135042010552670857396596955254957606995401992991359140133288165117732793309888784256596637678372577677098114521724775813542042833818909677341631256982601222755384406560085342290008990557447096605991015453113786547170658737151658182316275943290272612854834495533765581652540048610095701804329905783536153893465366831620965610050719942757623542810836981194026202741655097754202700685822702048409320685672951236058822404442495792142911306986852936632723791558560417491071135361923265259806278562996661922428915845935997123052228280914555770806849063565786737561605346333065658118510236896964011351105965211443900045942659529046341273364276775682477223605006377807682721502759801991871830027869988851752265024623674536334852962765844444182709177119904641641292393983508033177901378591390135279517147993246082494461302186072188669192182028180760416843979955867681347673848895888961794432215600316212219165654287306652864247798218962256228049077023742273341486707121405798714406706437075447443126159674032541071643713842180955580327161807318760779319768806302778243273506133395404017720260874122841635871438633361473948440846014789732844868628601789300099377692536260443207634593242529288577366093391936983469100522686174814492346157851660445485647200876800514137145479673935095984496199781880727808737303279765139121491553227336291547312158094695947095991242696100511285963200029310937824054812332041221903507620259618310517034026340494785038279076327755584316980830920857514540967354243602929086122987994740718519599494268843100670156342801030831778893913136057100661437487327329174266897535305570678890228183756867377218656796213917532849090716932082444511578842045693398514352677493005812670553099966325334705704006671117784246472895583131643661737679411693236214487590029697089696995676744638174502211443654754814258237742640493274461692972153778744536267267748319305097622234105671574064972114926523004253962229003041217412965555661002164339011828588194850392728363685774721473712269688557326133403049779748418561301095796862955037074350364956039229850579147934632808274219534325248713363525424147634078363552499616185425120794911590753463776012230973213597916527378635732712853007107232111503421430626646963671040166361763936686386011147295124888559767199404736188656921589893432094005919266263648026400710028616835688011623070787251383863796484890259512846033098857488364061029285311812187035460875942304672601598857211997777143386024160864313200013854537627726240395872275258408830530015493704020060394243291832115064384244636844115817363836672997104677088135973960062438116812246315252928503585278675879457214919303935823205563075793734532275519711977109589240901043853169060085004813714206953273790690476280972806404377456839340486567412012139220516881237917296822420917689831350851147955907866941772384026683962330009358499195868700155748816204253428148626501814511652666986135366888222288315008599597225647834036005637812334848457837484361978067604181510808470561636199914596613931639226067074587907156797096366387178217311585283699196257575870616457835742375493844319920031492676670508333561985163447448003588459052214921879165448494551395199876643255740497110057129299733982300156150365309883488100538114839506129010064075294293704886279380962100813098219943325721913900895353525844687168888393616595654845161813650750971219059457163471487495508213851559237699230070897168936305185735423138699333609313106979413962319097514014929134869770505994148121084273619125880571815531641801220243485813973063481582813374942419163738883033308550881560193524354257145963797533474305916849730080033433733699747461941989969597433551973335470173912652281267945871586989343942509533003979452399154375078271701112807626047416413960108567969962438085083746263011852504752536195442851532223642626978951667552536073707239569793212866694395539538593452725340283771497083273683708781462075360831155870338827570051364563917533758515776993857222384932177631038517879965444096261906281220733796026566377389451240356876361583641898182917779026199206229403796675555010072316916343605325181378030716039341701127463020199376402595370380894874846974445033006538757134334558810568386297217691176125666277502815207272958305250833913724792143348004287446458905131446294526900573262952765479291294022268159718314816673830026674341712079891646035839334471550065471978078763210423992269576265091238181947552230947814208105563811662901068293066002305616773728363494564947605399464454397559245412944565903872160063901912343978160916145514425609722555943414526977870152658891212349565318180769836799725759449779872798614509776923047570683642168665869554651463666155510449875547087309384739250633346214884707259145150401206370581032903168140129867563243191105894083117971714991435831420756539660523512650831247168698647518896689037337639756033404250697142036845149042924404762227133788955189029088627449064088573245140037825996657925078947076903638988681984791973572366547445185459088566988072170854245290573020179589672664318292840975001624955632266131631479479511228124130938915416765019798800243912324592152318891978986856317983638836404132427001955717361139495122554526526507316203155515861323149290863997619269946174468854079466301145821862405233193535650775636388767504806703893930888029667055246553506643583003415604008821213066968485914798732555482263943667237072703630463968645506495222469303275391119113536402731159240520451189452156271284665447069739590142142065259682911057303897566601199504632895417487695146493079943120311039961971570190215753528012893748200385490042673776287596618717554722577144584764861959187339936356747068854441146491669892301940079185221019383860893375641810219873021552321286387124890296025122988205704738656426641017274124665227457511671102837332592228833090090875130781845717646998137328821595388340469469767173455510564014173160990344707790994293385698797775545221570293881919344168357860029025554461915636637616450514059243533010184667663023404767509158359031151979617147513409307257021015485545097259370113245068244569909693870316806997124456028896792885440296522365236429589834560415145409564874900735810402889858996568730672818593752443000410786060959560840433573225420058730815046370088826422474624798831391277797728491109853267103432850130152542662758385287821660199454497213933389843329162853392699254094918584675175369784283192397951459698592217916933151434777291196743726386466611110771690641466669465518477186860383133901240992435433442213587084099698245307003735763988979696868803968061993475433715261604083578708034735827529334678123262114384296382790571830941531665164032733974602594703369518862003578048846054961757756298093209054990505235415796156379745783082212445764916533303841180937810698118417603208963908822533296901971087038125892429894075447932875791557834342291055485015332968347266934762157859826307844595578218435389730985245611351452116979712449899911520246205255324465472122880058303522449485972499693728158679731496171966733490585674678703495485440056151181300269523108824405058139306772873154303916381574803621573263959652444280194581819788137936088350376218141391076401620201877498740385410518207071632124782872308497495664050991933393717204760806683430137118999044051014708867249516247435990943825306553656851825631402197456156413414405866580820731573478517405955072435179454651586781153792965624899709497277075866985083050960841066279782737584191607746321731074451647070970801629229548501712870541837501830141745818256377815637300644539142764818793940315128148884319766592115952376092874969356368460723986216875270275025009625041452115113249039319794924386018379073297600125682181120069569674056418594903273979292812333089863840019156157842282735902578712078660582779288361627728158705034349679421106971587001476232630714004112960265322700647911521622707026406538247005721972858521490040214015587736551903468497789561941932916780487060672468715411950120006991992572697014065936153821388584303372092090320259267749798919118546708977968661789527623206949701767976541399475712275063079236949363351751820792105791374202141840945343412913100565408411054037109111199014142788430031729792075330689324466835447308294201321279112946275906315801643049231291874328203717363843835094785394414864370621070399163925104441096719882712590048859796835581980066800928390081859526130881081193092347452421109941731589898903483498321331838122372289902401337174614168874057022690933828590390530889697418700296737350314672070796914820154979796670084501909604356602128722401178703151673907460778157258625564107365433063500101186934244794036205279328892090390324694290200953944442716066764685527023728298022903872441835020866368333712815386794409543516569809886841622876714051140814002229082289714562847520264219218682691402029460750540000082364408274136187395765075185200726892638640090170116702202899283585245138952252061621905910585373308256826722510422809978362720510442668460224773116064657508037557245183484055450777790746781328350654193352009715737611106160631073869201162935562689534290891965182847530599614837085302138133343997107908765977586838416291023317430827368487912723680243057401778727990506591116746519719003291652662691163334553356220886749736032323721132313332953652756077878254680477098115822457037513517354033359731000769455367623460864911753893205456904137231585239858281260826006105778073790098415858850215371780382255286503592896871093465733157037624455365481176246673307529107337755898353328641487972164019410981736320075341487366908108182147726340823253916121969737558679716163678568859053920730603635285085042117207339948719481794727551134800570303782825049481052167197291329705794984873876838433780471677084745559492637302609653428970144817361257770496039607353891816147783979925202940470583813380300271861416439414588238163601449292511470504005268925207413682593883258322954266547366779068663523236152786053907374569847706221221223126643382500372947842116309052480810038911944976036513860290700380061644975182379515219678430644368014032201252469820012024462996246719290756474724417635123837530231003400236214277636142077483006785457192000606724121477563835093924153899434907946521694112128549106917602671951020611672103183612597947710598707050728182412206380820268126102261894882354234655197925700801127066833801943126242463420737367298892079966824118532066138272856577324234417602925924908393844889803427200049572914966294478479923085752846847870900154746260646135269056217770619397603683230703455147832801974945019606901323587088913144510965674722404046368725696919284086518327158968590569730775737005870716407590029773632031048748908716359933193548674341311837070355543465400516291261288055650054191605911594968790358644069449230419721411978068018627423024315540679619862120211504856038606517637893736364728435942287803176716268175597491913382594097528367831807423397380235611356442550761880421596025813725771809024783176385005644125077342717274480272653888870892756889629036984718424597830183279785143902004653052279558761572959901871622418012974349122472883428497686990790352576837397574148311978122462020177451822841688030111535620716938319625374582891155528022279173653677570651106263280910222260718573624513875148719618923579801901683795388083696719454438638930790940075970767250776993879809867137365668716423347167565173715300965341174624578221199789390371445711527067577022848000106331063967753444037687947458309791722696523245588400353142791619790775138305283899441000470009587397007771604771104748229076028193455154721932791887849460373134792751920373949913542401277555885559688448043437394680464401933569940500827772577980645024339203914257905477439862942872756399613127627490664979017245885425609301196991140741115498685601261964821941770275052975123379001824696696281338123826263271168559047430391820906689990919244797812917625651540407825303839936323995725861182366906004321665366288564206349194109750515447952470370106333649505196472732491272637867444821056114222512920647341485850209986436443389514505825751975028750280523590079195490818009384022621175636551004273805762093098848454613456976923668009725694606835676137297572882470782710620184105790805090173365747416816600333497640666260553246820312305540537187764713592736163095742637828988274691186305210427243129331212369900983649085575543956458500603933925683844959219034533948396644441576886093755496148941457813059066314449488343538050327277507776461465265825069509128689978713340416337308242575067221356335543519470869926374960724249415061768081528561310714154402261591564993393949152899076667731914820747896393086687307376828029645964245529504639753991955646140749712871077145610414638062073650762459009503361111357415001145985730721691264874435742156942173539142838831098921573348017987219475997678929663634989515000684832623642543576268275664350952056204695244846575726327819791575253498912265080379294496692144445419848205168570437220725303688255665855697442008523395507530309901853149589374079463167206257070606340496311692192382573863188771358865706253361395742870936286858825223430134504099063313365893640209447658915852041275518301796456646756064845019961615269271369311166324073709702590341124733731294732882196671034069570754947999181736332304818174561617106284207299936749865670929860041458887789474565325801218247418564439338338657508635797307695592442464457740835530941106155809513404131226982218842812201811099973447569913967844447436295122014650667031003827265874760636481871934054404520173678291094696725063269389881284546557207591194792978600377841594659771476580843151660858130416041213289378515178130765071080786291369002479401050420065136961936298040410336004171931880209803934747037538152172382512648323810964108576877954162669564938453208055336998468395970263687891087608233386228847805970833708978802742520112878699903018316018304037247645615105402611236404852946253785473663279883557398553762646826214860909697726160539098839629686732937439873231825305227828254208389724252465086702521147104148623806014581745925926206561996336079933802406657888086628447804400848613739261348756390082506503202612491658617631345073947714091072461677049942385766726477364065461444720470864177923056932296692371723540234046836160069567339357768238988291770169650044064450517035499594009376927140007839459042081101147220921648348389274925143983516280743186654141871238981602959562009786771309331474701816586493766698750856711770176473151697093640061153589332811142545698881680375633290217109747466388166099572647413832459378416499464256516426261680401601966227104195465499097347882417619586475592685618375041831009151167692823783547444081004369147331886089108889569217007306552285140238001122434399286860906892303030782102154000565344246421550251880423079468107199243185795312719810958100213875696730457124906741480018344211653800860061651166269951365292299407457802576957235586430600880706339656518831812762792461330987286817861839836770862588490755320963669677558584686536404058608453904979761089589486321256429907576123922487046130458812803047603600855165086134184229799560704781007564731542685917051776117758386366189006445943635839106299280742190052248909671995835505964866954190252510586820441612428048841540047315140079207547999130457220284506628767531229687463231265477988453709566804661255971554584537956089244686696021895776343408115848339134986598514618278886789564216474826352850952218758012362828395991464997692080736564047867721039568533376150989204739341739837522443108613635860065943938749543176013488188632793574728229721931913088071692934440922174858645193225022399378755072134082474549225757944299353220540546049248449676183534342098241493607578755028681399822079606797259833110113007499280182049200667162784760390032560315159494733456768391553669288041954745504279551410853783753502923908081095956269446914064489402012489096398226987478737132559659260115228515437755447196709632582342333807636780434697465415526508532409840040084263163276168472568028370200444729590913966572040454862294183822227450585056963896013074669439671191411975270308221475149858828726420611673258484936542329894666124527097827427906298855533622558664985913291783329927169156873152526398288786180430947159348966389713829807865549625775131322204488766407639045890738098779051157796870123350176095119228359148500186626184814740206441255432117750772230349816747083752142693065907637823592267432393364373169143718769366916627849061878193067299076194528434200861596777839847255143327616239164704804313193455578943574324866882677751338839162358754259372375708905102612858405725068812273477283956483997586974287312072997208241359104092152968007275518873755094612790956289348275226334042581913153816934584970583604871720476058522854390912184589462833594129374617868882004937896448375165140952380199902175764607225977393647907042566240514819372748515006136898160233736736084523576684146344738643374411670553355153585944910081026696214775890224069286098330266522935192935088360290739949317342778379048325997958005924589974834897832883516525195806266388024415926110159628829310962957961608389235776750299424354100968231846704070265491420932728112202610691904633095165113472066017087434632438978540794242240703886415470755123720388955207310160399242495071072623454429827474348609786826657542150677559229899765864664517362411259079414454295379404194776865966100786852776259433202359224103951562937638481048344905242685195326847764817918091616403037020420689665227399782459287065795946769678162051736329615446038808650202266654870761579233783509842030758555065543009332801856989422143098729772829298868809415911511073719470801530569955894325456127799157902598816033247712556258641258722223974207800903984905503079333373718074709714972842738716847574324958248085638799150645096464565941418227117816005594020162036866095075647737212711907261303472352221963558514272229809617918018930293736478634857248732042893100061821699881824954685655841814051222553806798494613294282828745640016638738375387468450165653076823237288491852216075743739978224563266722122535410694500923650292727286919297802037005680624070809308465808666072615884980371179571577207156673269731776627340538926843680336455653881395756389625071395054443290401250599471894167896283983142475865146013221237753533030783545847367718611528550281087929246267057647218538393837557817932360551966293589626776972751449487879420061287767556394733889506251784536446928497358257772476248529285000088952680311009405142057348731444383075050830299184878554421882941751382286730773481033837226460630539635361490702641687114599399568437011656869868423540321101363739530110135208679553585961766454176611623258038516623516702756241655759825772234987557301914160487374735058681529709476672273233044547286375682738892330564987127508981416936052311525075399621413038403483734805361912969061815700546382376421867734976031066227107949660768328621101789961911696654007916250872733268317412995601625535743522850966548575988843762624526259250500802825848863750580970194070687053446730318981527410884666655190003668083304130232370716954272742452374933908836925351916481802902529517836081928157087493739959714933950519556889173354847888695798683095160112912570969853722899188184042830906038753361927403444270847081645097744919135051716544105079544706417783276325618112154028388209648503281200318305438386405199771646272781562189599298114578830262303811620844170691875979439165724730636120984238557019697826039923666407812040922756470349803845881157470192588352948660138290411450935891563096749593877646969857164095003635477342266002635924739437923478890564138114112503735682141709842783858548530950182595987876787122576756501497111646118742748114993450957776571625347613129492157875062622336418566203538644529764375859540010926961647558688517926814517045452381362695030216601852699893690638223826830931710140984611664399296412200022850585291575170216055051666054241219395624570457307518783618072276693531205516312349070750329255805869206373042155445970271044675661257551588204160744000427847920930595780052943243019818277721771839624394324460623211571367324963633084248239896101578790727480190012698871685042540446573134501689225889623901910258437752680880719087658316482653675182331087128594513288165514622218252084442746740543632430028172385565932325281623405024725240800992887252300153424781610507996293829624415386303090903273242924449992138460228308715461184907167467304490039357472019379639296129009547149320951200993746407460165841477366979824431245987686634840511502041582169705250003644780522933377403958098929225652044492783610228189018295919823164595651588078448003315281466350060155885263866638384775593124976995704046214504756280049591993220492401575909479392173640921243499231192767307507443520553229737783895554958172649458481741021237124137854103905902293101989886152975519084069137422868458545865176344020751821473804653687323412819622807669047540920397750211063863135185615717778983148050551798215087453550265292035167250911552759555829899800934175550522362269831085793195857552454624661136690615492752297710187169315593000787290139337748109121131635707639786924458789987314660614757323946828964693110101610558565248641258430921164621166384035513978264945283225638095847058650234607557299899546340335454293768385385337295733274268908638287991174209675211592105082911075848537008614318296754690676846203930606893365664494518752991413568313313070502223564589299880618232835661544554720712722150963404455195055941274062831679303618712553113113429009858671243747163323887897035343579678200500388436752255416086238059265425221275471796574580874687306308412257391318954634032455370089264761337502369875917552042358025462858708465268057330031228089213093401784967181793179799784012589157460741185021343417147695772795792265471631471131690820601868992727530605297132144240521443130018086632388876098812997824797830320615346091081617595737238696637365679197706456932273503585066714966101519932235555596467073544699596573525822460225672784530080030497733383832517878087500964254268298967782991951345365495360117238260412706111513318320795436419024902044444407889601139199706381763754865403738533842787760707587046795700637403800744343632116461547185848476109366227842291676324051060955439884130621342066425445397351418326018775446569086871483623958284479593478893498780007415987571170098636026553992402077728999471195302638861400438400818246332951746870524899414507025939230006795974285889446939380619285600350915678199499548520370383465781774726195077238370483833881287534593977316301082502881568383535302994067503972997708061777937091645982534086994363665357334344204412156580095216027443647041439665791282300420113419542248745287713113786859321329236914031288300025408035597133222853533392573540014139597778551896263754324423850640071752162230881773391905887657311802817826320300245272622886258678614502455289526445953350467440273455844749189990734106652785742331613504084968461435117929273226362725166501018159360223914863105475871065076231680083275617402947909576626080699074688694589474627372053140630245904271548730685580043408933491866641980275686992948811015764778686016538813337408835697450559091443170123686487006317194271677112225801946781555467142286834116255620316680742769776426423665089872979597854765012540567993144320411795282688380597034281630496901109337093029386637142601157511132860326969147993483860205895073378066823870339411634483179567939164671011558683750630770285603077063361222844775840800483690521306339472690711765922090522923294332224999038238985289560186947766344507724126021671251250694984751761283261636716492333674317267595715032353258974388883216452460475734740682256778086664436054188991318155306838255694587561567341927387465221840828798884252192931819369988508249840361023938140797190848099361231299803852528003403586423947461576405305984566427084044135332606181506936214575410667816703130993340777121062626189714056887315055778141665556977089968359388318340737586740621159108846915066954282622294195632994223762008373247405948901884742322554696199067867306126415771254373117387982692366477180329228985103227888612985154297669433828490535260084318569391343234947850135083454280908835630149258615772327334777837053917373986747960436180097024247507986525242917643971688416810430869379832508229540866952369724855745158616886187058062489584370242415601341301153821555015680761184163499361515731508297312564681156548432820788098078958560658293341868516745029099671908283065366531607456803718829845142425895123487254875251193773484589759507651603967567454038275094191320550730558208501678070448802054438756214222461092207562129409111122942337197349700218196192409131593795623071131342413439710165411490524776012448108275352906907169075924362187010759131927322210978200319620870444732846815547163566882817181643710036208712424245628840308936033612253359602049951168637861658923151877089255945410895340959063356080594687752419382401311162256745268938454085355430201365526902709303335878531477272801826205998105296842748453406905004238356520152603611097460744149509693239272851554305530558306766930864950807632850257809532672288764182914049836033692970786896031167182111112378258383425071498209422617957542151299478800368466324119414042943335417242087614602079593731674254850512455712138959723936479024377771333873524981808260380369679463473861916702550812460273810309489530538028856924095451648581255359119931662668554184345223078680579325904866631462640698466845087668460626797894175020770166526204016900750805467866514933282318562973107186831167085296086734760167852938246029912541486447991751104913782444500381556232226663079592561114788709628160398029870314834968739604797544693853897911193530825490344971387989215951891952443098330329792680750701374989367216220345710962676001840097425380744638955310237539444365391945581382280607228446152033403234255206233605363875291797404594799774031128179430701553461918168391567364687554515710962438211118509603534852372506650891263048876250500129388290801427751013677913680745073479274100075583331709346609957974317565683583037511551244995791843197155655790966623687116015239684485899753621311287619961510260370684601155056115367487596896116272619505176849477594529249590875423703068381961800719563409357533718402914088796850358261710351582698658792464422449753731085715296063925835893673368066740296093466670072026189216501377802098562102687114402952364076086774144444943034379489101897606710178323968502444672219619374333544763000855457907628915014746481127374756049034274015800423690833715198735847807956749142837646502256092428458790778490650811431396293405961002480631653699131322479894400553410130270445761103262176015880428339380879585625852551758845198972191135074122074453010334046886123363402324955905912546460046373046152981652594460588902707106357352337122608709836107744057618895566976030701976890732470179457733410290670297012828429860806753407626927501142656868287219443991238376576653421788611851761830461273242600941621987726640122504196757644952385750009268894542675046981934632624416479905331853340989466865390251715419744898501501065233447424651329883982324562564836774663722078652505388823689705447672758473202883761450690649737827943549519756740613715541463586075075450281829934080773683746701177129963081284713926174976276232888505803275049148215764998570094912424848207148399402692622718883008766109302794596200695429748718566680567321346700714810390730564940027420791776841323581177768722897258103536993374889082153017859819133809211670333639323257593373531651909396001426978904657337140334440769382785330870642778056045033971708015160339934617936617935223533417517261754399312841110994165877277580647555762718847407588199537601791143298120763882851911513907345421675949384981944778332684961106811475279375266657402556480781037852080649445195081636922337149537904664750238281453258912121972282175459674052219977576927523919485834841260471196431051430385139837497008971633788270918634463966363115311615314718640263616437139404349286808466728595301334602129869413921590345808184491322470102933167298597377106628547414611332421907864402928027561423517042898381738971193856030958747899248845647049229699908549721072358513392487490878795298719743323350707863934818875561166078144661822456274986425332055876866860896116802563068022626585423569430473993277182802970476903189861590680417734149714868170291493070768830013684663439616665762788488592701756173916107687987888365721819736660897251930564494596688920714223373965590013627112083453026499293478712221253192721443336451435165184717040966946320815194838931197097581891011018282979388307884290820544205697247215552032186951561133343680730895387400992694529776743259356738100602732791170070588523601373242933933388336211859937601284560765319250913296132719242076120655409333979913728574779831420004256165690037641906508933950200143685531522058871028165145068539868794596111708406572049257671348350569961731947762920993835667096646252313818641263810374118946013270556215499237205295528196945044959205198619902582590824550682622447748119766243229845333522290283611440375562051629412410238633333457596320048641616157857445112776734627430667221621868064208890922828194176887641592959341803694126722747789412728463170520769493467376016436357225717018061283150232969256294657911293183700986966906093562495529246227211786904566240857593293858761154754760384286532523311408928899441764209789423987394089137602577202190721050099596943199643521018403231373077037190515787040482253790455194119600874004669339409506465715364571248225922805911997576552750288127933903157080724863207158904393354042993228174772894215460643040603950092561646587885798587288756372671674866122661437561673312812546287253441563877735915802810512392279266031544880234034274831141040120883650299449445024508783636867447551422986861999324203754561042586434417983299899191175096552980957464967158032101893234118624882884929671157949571152843230826878976292347537033887372908254120179344248901148757215513186193264975688198198332825944830501898719322546016212225894123808661030723838262084576936041880898293761788403948520624263331068361055058383730069844996780083087933382233687017898014997181256045312638220183536189733470713400716325641554607140944932487259470412852420332376634092888706681784598011991713734187269076168342404385478468334600231067325064495084085023052040081232762410466694119146596139006700829929126996443737932861373905194594559483196999297939505480699424296111547680327416854510540742751865226602429312724547749141951767814151610699399001245841604020787537025599734812516207639652793726413749520213626792274052373560121979044496330498414905693368199998171361300114451049217034130031267362476813754741284159204596144236667617811206449919210218096078077996980532857973995276712963914234603451212581289335876382948619760907567356849532239699703877277836627288666358958845956057600266537080895381910849450186369931439264708367142472611920138039998304187202076152697298217543155375014623400133614312157828993193723614383029837091148503575087807237231368388492687046447038406469305948440257583627173694009909159440981865837695523391645606081071425184687509849491975796729558439542831176964216743646238989632555237603435993135893764758295390556987104840691558754059016550029790684578726886634708606886240047984819024630818844977960521645161607910258389871362304031217857862656802812130852247269090369383986943239393194539896880239333243025698559905229197030178607021102404443715633862773592385606416105202906011726266722043190818948131118512551949758880274794740488695541574027563353003072563398293984976536726171430041692129065566035665138179384750365830399727516698826937593825858511363503990611529949516949280363564701867103267039705909326191441759067940250243657196853751607920159989217838147591181223156336279155056926623572183053019592557651527906574932682619174482579537901818159493049593950450614602024190561487455671518408161716610214735653487080462161289434619798036192600784890136948076470896321456535268014226724139688897302476831153934259640138596512216623468348936699373566121601529485141751266473645703601848150227913738333206068561267960595707220774103835151622999950227688730501424649192772641920096549806653808661830383413205714967142766239121510627254047614584040330786070778182832835078358638771241876121342704223541636312726751753765598544582128667270548570942768383942432515801575840637910408354776706936402204240819095077691772885221826205329661411525294300729791993122344764261776067483530132816998954224347968715514908025989335629684095255287231671800141671510260936599042402201447351083133979516109574205786183224224520336885168343764068082080869611783774903393829100487811848110163455888656241655385953851266493190594300777674186056522935225944217961860001883526823114592988271754590880009826772549097108719171948432336515394565374991766785371230295755922063777970275894669664451261930352558255840547398003451350192359271360208361432582432144069716146739929300909576865704779987201449707635884029436109043665883383592036267425970695882110021249700342730288398389274987822222754883071125078058079487372186110693092159071548505224848180972707114702194766556535940769004876027052723350495770084707352128950339227206890134358903016557965666586552319416414399960688521031342338560693022605318518139808472360226439290608848712870726089179698711220144707895461062676952099179493244708534619176849062545142110483958566466818002513947652479087415442129696566609397067318910348363450128831643396933390405644173575143951319943978445506064228088726545851156294412097927386127591005270470949893842701347092663691371464564278696440705434226586932811241811879140839110869321169927463832707270261265111276597661588093378308456188795325537539966212289202885454036755681422441280571091808587916690313086779969080401607636970195275829825255976830573089596305291295464203973817958866966453658221136853100644085343633235367904168991099960837127608193945591539244430387184397402646023801009581942829522801658056032070181646870927937570361753131755180448528089055288193184792367458506710426070466252997265022304358919723273782109842650065184836983967093480226046540808203547011487777935231460588120396909168411155577818262954565450703663802877243183164089808385038314475491016009267514059762593968358186109033070393546177909457094050299266625249563496754742030869333460066629895155915643652058122394356612054298570442853118269209554903744935475252874143427403658405230080106734163056728757760908101202424154811476882555045647021214570817036527563095602280097943617420459525984002544202860161053602578384730573397889672984685401906558714379461902442505556191743493935942841887881398073683494781762614315466293178781333599691498018676092950624337732211290216915632952508020846733983021491960598639380290871220059468608329942156139675851499003723653004322584723656361012508522522911793361065001880102571972138766373517869527403191633793733751934849027803879547394037950264898028442275698186082736088929377721648423941569859304305662115666495305345045800986322547395698154913003633960405950124582904780597011293194599060555716255880962371264305178236822705061644863765944864533601453296845606404637463177781111256084760515678438913107989516453841388525695248559815242425315880060761784458342377701537820237605116089553647142584434353253973169286934662179998103498981474358813909667452132401939538562410786101130441376375135387344061411544371552154410173996102229492656524519499733383927942614345849592410589764290893154004850405312161233197217541347914348181586248060756175323872830925508665878069933879588501029730127613843544844520567985256702602136985403703576140851442001530762861238564322199294759867384051012787939143007700516602912402657781667298139766264206538289238260363544011272866584527615749950230074090294956833270644283464963826443180037940969031935875155426103421936274254671409399419458024920362716041957100389661875061977706330652935205477036144081720148458744126872657333202784471382751470212531004216559235933761400691561375334137672433442901959878105566063245932874536708988686334643930870728706482753192788823075771157507192093225943809162390284713629618985453232055332567678997284979890930042578605363493664619564994078021063423848834686084461570173808076740455450240113460141050498398585901306454180868803300339287162875496578331400221669535970041112423194466004338288078407480977835107088003775554840660896475118376747283763548330488208437112201134948803074402440497344698411524288965555288786519483843193884805181203046997366639502153718960623501115951050344742468329050814628341378182380887310967995634952654295566814641866681400546033699145460730304891122291665392622948861992053624367281300720147946780969878108971748402250230012277389301122883983421932515546289298941130632708877173566254404023437324590170626343012792551960673028064104136521467126301530981072190068072041498734845520386263379630309583944887328068624604188056070352889334094190452656429286900246584053305548209222016676806730833069140042392263780630622328470072186704640732317608040764437045326646678411526904100725640338873015858986147574557835150514679172693755660116025932859434307868043742881261022877163117312430917384615494631849957019497771673096093479018911207890143963519444689450809865339886453234991248930906624852947672093677744599119716074650071425028575019298779387229592458459556841027410529843618743428513741728188381089536818317539180088765710625513716924901337418225998315004867665806372268833660691725893601983253380458139057147206213631897079126832257707483655949425549180644880255884313368158482119107471074934215671459425899477883829105896110929250143188640563230249808011693262350059252493946643475413486798302342056550190635941944739971837217037412897469689698928244866310173798722939781209311835187669507892608344474795824903813843370897579723616051518988249389113861374667286252936618470365334038099249780032147759897817619597808753413424278446012671901379680726161610058229461264945918488337860273310309660648401051557475913754299645072189621008250259285524718535188359600923526913843817297292431040693070013062715759777700915717370227111530713042707159007697684423653190801618563699046604326046948687296365682059547739023214339624878857277002493290319818818590190953747191581317688867726891870352921539253494665550338303080908031831344692981686465549040566338105933971819839867191889036974240186668860691794852676414131491712743792497467962237807179368877155474943024803554027587990234691938065772707089682405491600831721820617570658053584323075264024780857151110412327149526405554059615642831047982330882020607420876146077522523017108749728581123728602397578384783095535280280757863174824438223138227152807031550416405577625236691141477104937101558098842652191898218729343106781891523539283146789202480479764293472963370541194053502172394351185846807565885403410929174952026365700378382673494858975804325996601745170841521729618697022047256196272117479768075923529299500743229746121222335673670731017329486655074530022244222002348584684465360049237877508860427177062799574280694240197723385300277881636229539830434639366048959361869399791308838628073798382713344484900730436958207476309309956553961411334441230242615892569760874112744635721501123622183240006932310584535459502360935713292014942919979712796759684561270727558236905331400813341770440620956767327381917821373188627786477995972983443393107830794554897011642817835399647061655116694311665372169785076360375178401837248372073565608634501769823549251105001511947368981642980534544111077702294143351718864721163937493174605030249521688173858829528044936585365493205108236315959014492877351876367760527379117596572731604000888320698496410323025991269348209824414632606582494993521134446790307118388197037387136955883469243981709465751081535722704865019195518717243522847752483401716083556208914450547342729458552781610438046500133815932778457094147685295924245357002495328837691152123971285927174756879407624809659070636371026663739197393105244432585000346002421704685397612959946359371640282007979122506527512891687922839509076190322169628897584198029984366006192042275638102220102347858172838889761892058240637420246080981056908227262441145377507727822331125748526302743989394430599188258218131760027690867106052469665550797420981542361181054496076409590142397608385495209091637480087288301171761287090148996834710595356932659173381821903948085816114521752101324136988699873117771976833714763881469722204423824422030683690162150261898183573947895747743611745419100353347462427335253244861225241135712320251121744457668083281523126152273836835768181308969150991800309684778585443801558761992495234906885407666075571948882165838734718873802377033725122719129192821643838888348138669231058110533651715825889768749181377730943659558348879692106455270202894753409730293990115009311314340565385063261869107237072121447466208300605758878737535742467668569666736661972440994407204328588899214687082604586348367341269091718282498911606654162896360296714926641324746397688464066175136435982771343400036096786604715126165988045945527720097880130874290409578416606468081073289096881066210892475293864345692400949613648492240546319708779446593430017918080762452282202507669678679016553980472766417448273315214409171235384474784943132481712540296463904646990020573998528331929297561581643625207986237731818549499688691716988717214400751211778650420645403464082109094069587964100355129497151686771994164530719439674439929486866386673369879442759183308696456647376709145245879516507575859482138808092899323937753166417254155270666196868035822814171987292757199221616300591082992947651587863959942565612368334635639041316780343017447767810040003866384739098074726526748744489665504777637629283559749518600372950326458800798043730506792443571731862245242358233468941204434267942157874725053944948527250280873485352586823008146606129433106965737989475517956341563986921769870592393426095564145472316106258294986910524976524031342745021852534448289253749540722461437400670158071414364662962366845244813204723406421280697081172446225112094209651889893171448524767743214627400951092834457604825661214334722349579878303385928543135243869125775902266358592977369019633943733305827718219479989459316960840891452873333076258238608430250952350020306903392320819696570140086533390147360230278555433364699688960531443132502735082647677861899188947922788183803547145610034686697348298569106542718403204904441273298636713453150185814448311136579345756738394422925019945208912011890971058240429629941737585397726792400237890545819849001990461277927569116756498377010578067896218033253887646644025397697123788070057844109584555442796336516197375675747297417070619531806130432494115532616977221099426755748592391645703070199302125534657095608174633657101937985504034819760694697699511546762564621187329197843866467863975292554554994291364830707101637087340104677968797070053824880560125597597614831898528389137847277532864382445505155584501041775942239383906193457640334284146521779868396206214383562801656895105139434214418291882127082970796088882095542645021642260820471109082965715514434971942230896715227551714819713702633851967741869012645605450219225343872769209915714952041389434891898908333220046831755442056624734162800064492539055247950693557862813254047681624706930079690370603182640640199830901964487351714480035494296572402609124708940644408270642540088993421163140901283097418204999749962740219247082556976136569256113044972491825793853841980841007691226350827132270495452433424699563156887576663774212265838715303057117953183181129241824230467276289589533650871460574540425169102653342252778882233150570591331688771690612033255265438042909192918987307624183478426550369691536175688373137325541737688377922089243748608723547077000483659791101949153175169786404466929485442453246744212472470572564185631657407108799246226879833995268648684189762954309154872563735146409858084846594941391103269999814604049870717178835174509889251884739115492200339173345605704040781277109622536786946698124416023004419405689608667363589791278494753557610902531685704973372229400610147868182116360802746562401636940078138033031070323226130560847587384404515155591525024273371871576930248176572906653511287130332577354349805614343095227037091296195102118687646570188071913426104127792387265079003178342616558644207531851227875331736094001085141348762281849809928629761231365405402747603784859436363217444071617765471156637169529677083858988806710567407127182279911854358012811458695227171147970524260216917077640032537741247353909830827301762817853080670683025039676158315497005554515410488671538189307739729347800732403072794103775889473165465611612523704061162208565457269029663619396386879116206820764598222222706360736670359574242880620224691766269105750650348752358519797023656082112723564554235288244513099477287353802864805692396045917725835511826135569130941826640043456675271646882455375310797343213086706025512258649718169695883052247612626973983582591129035365461159113440492739174024992759850993373633374424184586381744404505510660364527778331373325289116776548232001272178856030262159123990089532183412433059707966960012953030879144277316051913016258474181846710067129088047137179092079874945137239260533502054442233339649444729373580992997692555058200690324661447195071543005981483348906126318916184741068514352112535700703379306359279290247009516355071098558568191353059710229434431919843857842217963265557223270506390564914304595140868270245880380149635616909978221001959824601434973759936164541821976172089294845459737047814149612779026266796764056934813508798494607383807573498586100629996108674993372322845433255352360566172184935694194222134234817252869584530771737374835963914321674173530513264844569931892885933723817303111940617582850164803751237702037934303220199177754788287088662212550617548042413066918117608827664634617616876006567507311613430719799999038798947775447954118005054502012786634439031144100810416659575371070484504055195921066003269983090076422994804046519712415669068573292515223124050614425389158865136624394179021529475167223235085365558817694357562448556829231691563193523097753547028698470161727990800497658903576191120658845657606140921438113094843411261698368533751214840608098846965068605985816488165475553484247165911799173996421438411732217602828871162840145127470795859805181789603278724838808687883694978982144114996426107576348081177972786506159184111888131881558204798514923429449051224042714702717507497510704477686361252708929412424307633509574714778338637362001717597791956259837099476200415338599098610649383963945902025483690111314184241562683930042378065220114737968882355873246299505083632587701855888310713133860475762801621860534807807019950010012032897770881530395707621592661527250438011487276774444106101121709015517529821148212395421565351565502743257978845336380687246858407135645947661712719120399375609320036456419918115408222777761504325293342013630013690453620079430814558142898521817338025096899821175611190809373267667243430694333077927572643648307803110929302074372027999277423510402790543724170780267397205236417176742944400066479507217371926991216952266527180726717440460410641501400909946561705479746825379844239904941344951812172146452728215225420890059385181120683956441760675495459857688548407563040272268039992807995258738655490901487707899079685501818954630230728168738232322413495970657769987662245688049175411970404320247512415384970467416674271492818813797460076012466405627896774705178717941870506238321376610106640179538687938853152251001118037991696213046996283829234002145004389699649717799109503596239269861401924547298717782628040520272655638428684733063613034461017554452379499432514676101594861564083796381873498043717775518135293034962167586572325046593580841148037838598801037635138243453505359777524097048452099157270064514765913913188759716336975785445600985214009706283917508316875166169149949645205351310612526399669478264199868830274034808888298203594511271687021963110082338462163436434660517488163743416850320362304181732623912803404271880228226919396974631902437964230387351410523159827189325236854572046768311084806165279326044056530767464924111282266495846694588641907232489851965580450492214798320002867304972990017148360943581536916240263375821757305216182367398733955835719429515543931709587157692719406772364816039670177393113581208803854032030384248298261811763401232984161528625746202599356061087265456023454367595918487150597647608368037832029422396688142895300808069236719323896030768837019578493151730695431660362246186892264757880295911212700742100591829499564089371503911889893174515385014165537487230817588097425085870722974931936316576216699645402452787679253391230027849831408551927525879582341280152362535560273963193076271944452082875809326061728670365292216787066629441485401088140575846160541692610947803676125639315013141456393778043435313282821984926434784328426388059516003267977529848044492345370677805525972975439419264280150303001359905967741805726479066443209518963011907305397908432723563029579300081470082291389966850429174309046665112738122962696648882138276529013109960546200111922039557128899572665010121955747770245607303351267483496639756716933429297293230707244751749697191374500708178881277879262748030014454734163070541797648375148250047560776949964853354089483931012494073298835221806165665988244512704802826173160519084837466683126610840736956584808481099267030279901116228366241562645860354010524195539450211475214373289449335780937082402424512832583733899281404015437496922232383973164695097470205896366935716679014278446234830392053217134252044837920569456604480430851046586840010635099927160773796052278665734575743638464082131146092174920826973710703132326015109293264947376302620727977548235296836614254422947293448351856413281000742154655723735308958661176281449484561357869177346411835830881713818968519940710093503226244411354697814186048286186198411650449816446006044763579248638855877952699189492867856730814799175452653246019017337916403351895227829762994229020087330372731419034748598787091352022508522051975542879689233503555948926601938909878918809232923906229167800290959499748888432708138475570338469261554799699793327547051674520047829363595893817881608529133236742336316204687447364160079013330247433411435797085138755509398620994149075610528246400134210227372728732427938446284643702298094178817992580588758149226997575065346848662058092590426634312481791926227864324735881110233188333205399367886454603907140112429342991611361922047560432429088967557801656936137965664240791060343359570355292863299418114021948920374735728090121692852379118993019638333320172893586251278587753618964853176131550242766292059608600719323844794286435682756379846056027565076214304025090694450536982375347683854324496611885869173516274170938625652114812268173072670063539892427736418495524771032045104964857885895167248240601890128055703584431451986723192481384171019656102085441169820235350464871660594140018585770071874752426490782538760982597264412069955599850680964903634778242679857828330973442436842898781540994176021817858179350188505508281100530928521850859711521998009692696967527221786291278262609152492036317188607068665486140224717857028506070322450455035137916106636293767128603317808350812944200515204172061883242725801527347747463159513307687807537452820270879834056944408242565998492835971041815038288906118845662660328989352932717541929138706680726623866220020265408142750406485164465255559195870882126207591360113987252001078714700529373662854549185727933830586045194203528498607430555375053414560525112801848637339120111874044356471563543002790638281545266344579450493644131638715684517322646754880971669909567765589510637564517472769093478411286457924607659492341823852643094142035316243611186298661982173193034969441507771128632126432542451224874812073524606824771339826318910014556367229457993395313949458773860504523321559792097726306105007863833356275693266741705526391401606538178637014261130029692269477974660546084824444928644843336172837921464805096705978838907677835151203035148612968990034314234738840293740842033896537652291416728798885585403347038968998325223624919597148080717171329176391761580337818964142244212723556060942667228379018054997625622910953906648149826381515844583492266897339062673523012490151427084372762169381874531021743273474003433495682361490508601030415352002316095267944293906643527948304412282422715229532021804319364228135627074951310760238756050458597645369819647362150165824034444912107454539651200532538461479367151271544890694388344398200556958456990127743864538367652951944312316378344625251375390343168231573763140884195471254838201673854737503509278860902061695399723271108857679131184870163768566877182092428686050704149746683254970436809678855708436567018756756076093782102971188438149800553950891684401822601324837656530755007233407465235798084484937593639613666562285997101330614937256769973699338342189989208833250650749222783416619294577221964142833906920168317210593422785057431256053678605014447001039961284523626320354009012611875415350438083436106567298147568880253609220017732527935273837812313286586765233572252023583792776751927495196007446731511354619985095763150278461678994721830936402100776953922744161574220888855092182630968105154013149384385457192607505136674859564500766635872225985505300573637992798498287435096373081270175750930331576743430065330640313121718864580944700117343450164954660499336553318750483625094111965278108655199198724888922005808940168606329197285376359529661704740728675634326182989557782714077721798684869050365942177422649901346583774908803154718675236945584452888816134855816767618470701299568188728657689328683356756914236898253346053660318088501071850964945096183525443467063827884361860762958843799923408357139395953965384073116588005528479035062054649431987425287557422706311758708482619913351178181429944201135900618785802730574687061542069227411540748159314003738858435217027931485804792082204608342551021935064166676631812480522850379354517606054607092150934134637702796377405765813963628201332558998751706416873566687396156323613725164303011203495096778856944856935215029768033418185633105379129671786037449743802196416228568496703551942698307555198308700940171618549554605527495697486545757129856385528687618141306022000259353374368197513703683873180553194413613708008065572742278691586160907615695977349423931874129006395064593108001509606315333345185152797426125672782896796149313460759274862274579043657044886051319346318294386429891013475972635090228156289745763518778056554535581838696918815486604848108817537140471298733927115691700155090161322308169852726133533050147322468387785583296800245505762010650189052098304848869255621220144262695163123710815855155584813987215842100385432907137799477386468349708955699569047012818490241542043772076319319681149407984175908184758454542396254362808318544994717822421504701931103336626817352820218312829915135709588760989092564999747916961585338772067326620256324310699801022737924825837079509448488094435294912720439920109858571458719211208184174284870914271475022200193135719437768017992083887716811896758620781062815117041289490609863584845970758431532199417399054802453545164260454058060628049264585741954088969780067243193864872555443778893414662691121233114325953356940923370543582612367286955489529266021821771111131663594033631597697582493043003471692925785174648946900489128937059801921184009232102679689838316335558510948575928631499133446074926217971051740505407458285066310601329391981007847727654163111190198001384244360291920371402611993509062175587922633691463790096902598738319361164173839769723926821975301566446740080745877756812075713599920710011539849382716484357144498292412261846265121190415935907969519363532015185061255923686235357965503678514438237178147506341033230701511637560338264568666718773562047752900206990129333907713804635044926650070085922671192852642707037432342305558736700673587700283164072304234541522458678536218393460521865630771822537933577203977839898879339511821918547184450625310820254177024865360191574975099105956501160386649516697475916434096902377072820429772409037688863815636686451171480279781881790404156972207225030049747195368132253741247109870028545176453145382317493704727898100520009118039330842796486049627305962989656103870394930900309121423422474449506521591870062255834993906094563190310448762858249250381590177203222072070778109006358007237976024421951231117312244976904888261255468798022612101381485239835700682951436990650872916163079882016403269609413638869037164618281033914909987228529023240377012317928715347713819104868468890299963164945663627361084814221715960792475609060968574554104578556033781390011299013601556826207671766085943367521329682489356007420003870312452617019535930078274145357569855468180743825805168341225028050144480089443177232033518588430856705023412674506553368445171724575121568312748940652093125256679352875540445429882953266135381738118983090864630367325927820304425530882872561493925177346109655396019379785660563229246201302140593874829709348665022797747572071401791326082125874311030807622968988344708927305840393673235160776859170149514692302144217473597850869176415813397578739223543372099410947309637539989954425229629858346788006173848417219613912952865588732378134852536419389239905284911107689892256594475452062445255791596540229739548459620846997420545620886688358911197885159127964056168026563124794860996920602639966244443600975745265072852456935401335871305547571923477811782841998232574942756360243973937421440726993090404516172066438004828105372661964255458343203632746840402289656699608767069275473456751608299467676902056510285299222587259850666760787764865204321661865288556137518863361210613821257515719522406251465536019466099019028539693984471588306278626751917230290173317212701040878247929579213124694419856732071631694062280661050046985697019387287247930987857904264072916531002367353147126625076117152455892607765062460190792683249381542707084494136412238137354315666871342090138066557494702763077186352491529868119170140416686912027535182426963962306939712600624092029281929877056698955729110809984872425536346004274835068652193068593123148392311900959260403520004631704489795060744637635069023176622325429463824231695055448522536161708182255641392217259308406407615094169974087663322612114324276503366125108698013109917199524261128668037132113383663462110879456558777900284816473756315532320391620180116368555631644627372524733437357991739843575514843485558992642409928577645379178072383171678932559248816823520839724421717653790111559928840129971877212923572722423308615099283839202861203433523246737529377396801212861725790396981740753166821435067364345869342649361222190583282254656449588348892883380176231920490453148023187166771598739771906599577334413014669391610557212096732735656457554156561861113852213927915549801510065834024564385193484967908062679658842426459473786973322157354472711986464660549137410758823110517286855453838353506769919752598729284942813207458238285098323451430888921543670317854195221881627321842937801174608376432381366229287842812191999840063268072564923346817548898210818196739107576688790177725401980347652796683688951283324769093118363742019246366058994984065217785409875265072259746844618847866876989430934923106837747949707023319105819098527356403672989939957852001723252677368881948222272427046277449265615910953326969540596344321691682022440744639393977676306908522284023294629490410578429195560974666701522786989648323923005789832249127094654621769425030944822914651349992980046106191801081664058888960774757239732317762567780693590049946439113283177189527473210616906522981772231119360926348168356249598606844210576021154012997267473060817091617568865384715086730555928137375347534444335003971139837094340632323214882729215423659522842484858894856530857406480320978732661478782637626392640362024229662183079532315707318075049150904583054837705249459456717691984573224911869513624257520939617116864870320585698999317248858014973356268624037589155088581022997845361109928768955447581080879767450355733911751954661213227076729890998441571772033708202860374540664277067647649579438695697791051419188048501805678228868015321531004850913025135031385727746598899210739273765262180488396154340999610156257156629772093792495222823781770853440908122363594379982531509227929609381620595916480821104589689235625263103298688600322349518159978483394319693018171006462587525514497582167796859053627982657374234038703969853199518691471211708405380976980299321510381136820050167074647517435398739372807122837865564519658775494967189375881881520444583215647784953638119760308050919499608254645369130108081018811172759849096005496358615911893887135279382943878825669996730022122176148975966323841056209980438837620843549898712195944592190908780591199963589082815400944363068543621401067807899461129028076900930288619027310047173476482257246758151518080921568409758744158447672969695837834546966386374230090897182233061712437444485470449934499061998892120709657140891857481009695177858880300559293726723173733996679417810986365757591682613885198661390238369063002144115786990110729571449319852095002123473470835256283451601211865410225240020725230652335227734262147821369100439554850664120660286361829890558631277537044610732874947518720826875828151009715000601089464393449723025289390680900400422744248371876342631001148703474186906079765652412595749880457425853230207369745903350454187822254210162849504811443459077773304338244862897140111839008579235614853410640606402039134459882813707690060134734709501124296040974124471904625608127432968407205342558650023859978769987620890378000792458546496891991921131748547045196142276597441146387878957444888381995933750249616385989676743623898974184830089819435010941941836985143925469181888533934772095511565910999140356795336411284615370488827542861045557062399321646315209606766900323906755405264502512454286893069021513723498285020466844347491294756657398867024714809308080855814233582681355648699725138522031722828561378049860465990589269844403985429735976945909912000147501351109292112988582213588508930190473733212602285493096666523133170994659044175436309565572943293357912610278686374809770758139777395277453910807111724562950295564588997431356091619263463754887730790441617210104298805033925780655413672425931714381937927889192232207869493054857029470654273659127472722393289387819891648863083433346120449963082509834494765889430937389415106938658158117595180829180241067832130977632060812023192970887509939255268450755493791802460672975189096882604027838944890619199213645775006248495552993901054336254035309648546202258683163505817143554703424115589819662221954434396916709713182300963795193125116718272322507174566855938921135328661263221852330035095040185012566827455963785564084559940968064024854239423466762918045832325652487934445623275009754434195823519991702076190617692989884853641082736115396173112874511877216775919165761209990223111177159887317931443093652593245351137126740070511898099869165756954004851404842086252048050988371085397511373290641673211501475364655542894906320056440409715156979876196187285992794023681993924055039277321872467718952349365725453694785668164494973657018228842208487741415156140505411124818968249947083866920995100205793464898949606211438951775276869120756044186800567617588324498288818288831444874567655583039486362924675063245178245988740823695978945101014681187311625588954660187333621376744887366272041858628790996400240641878526455615053697732718582660614586964282319727410300784735397000813946200559006845955360928007262367485779620125824315602765008134236789150820393799648071078567921127289828879770931795704126681994481755621953153040362774670081510501440709299611810624833050624301101240855436882399842109028877684932772193202248249498964075939538016417630473560060811385210160858691192557067737088023513716849646999821570749903128628586064948834932409382761778392456337023754581444475988471596084043495788295279949690457940695478961116597314494154496629957389895264282948806084583008561757012064374093291897249874267125466837487489140550117375069459633091670922096096232803949575514009797724717892937190936807187027016345249854108688045426899043779342672740870283504189825940090801119699321310988153153875296478907403219031690138856626386660339866345509219648153388749010120068333441515672450869689276902220403833382692957495792785247654950770727803829002948266369412941043337675022005548753920549758320465098664809590101748303986482999236125503067342182627637865358691333151324265013975656388858509469257800701392257941798887419366534410936092461153994253275795534960692999437989485201857953160780016749613557269670107117943951439104680021450515955303777722593920137614310802268276606175133554795135479460807355482156706645309762161446728004332075946442997496586891874667006899252045184683478846320413980850846088181608818845846803093247064786983378515226864052394029730706638331452014834345016492119794990933014396755424214991962035465430299945169740428625161357388875973952619139565018245220530485190847527160965032547438446709703132821406748632616256641552327675972197443257958240380640122859070274177011149039909139057089639705163218097869224163048723803498481626084597010139092924021688312915252582940403057575333327458894186358213142829192512605539808396418638686396954957049094197665142054326692381247778422867949072875196229068270198626428009473765142998704583802544445106468283248772218519958506982188239815628173733916461223270874159297879408343831008817949120433754225195601122023016024671256492588204777905882497965507563514653117285521755090316064553626786047307613682457673733100731854343962770819361030080942308532595873085969111593256985216945219512408378867091514484337269305800908763934900501271803665561747778632070998266992701490078677232557054277123647930372050445226282002150288233232057049593709776818581623080623457880288803889179860005668477843528003993078016377695976515692410311296089262668211742481066767886484494317728899002908008227574592425648037755670423143647387923158911436434279732228007716305470509235932471585899999771799988775781373705199914621378501256975179668173947977787583793858729514806119835813971176395339802747230711319229600281026445374435916135358726488853856316742047946973730166348615823695531809482445892392839507936282044821530749041840944096487558152774899749780327132645181275563158037104480261425275243428544467366150467707566182308180892725882137532154095146214343202401368348406489208239553551220719567994053096465458542782741066047600882260898246319694081469497296680551806830631766402853236940160577870141589161064396286215217370713672457923981721522425096823009285221804402781993267286754192699241259886505194436646361809430357179527325361432823145355919632113074404726128114456514335862923045637300148306220634748547512450333885572967162685078408605863418755891678647812451595617507327174596110116974144763480207616400552811389648696705220737015746405622458046904433401063418670573601155655000428093850563757443099905152032811827277145324556966727331742484328038052345094053495583594512380268426047187787536738378391855675654613335584835082412341829455045108868808634780378687161880561928563341657627302721928082818436212775277831948699769322769741853502303997184837402075863741971504390161514010872932103468759580970601433259509564461979792287561301097969565777976834375773063634487662268059759896024792968617258177387734010541952880186989827198467777196931166393748507748890084842634404167711181324019484940513771049219379983410383152761998833703194838250109381978131405913223873032274104747983274252417244578843251824809941661782469306398216272950896730903460704676004282589634012304062903357506468175815481082372925036797906756885759747772128191658503977395774245468442684472902116953824603386975242080164175031447095933229309757150604762069469355179087868894245008658426277784672792296719179572840403281271264472708298908017302472337346798539934577430240541696056465927360480949681475414609216976343025802727495605966074990372098148006414704191393659815629674813975727185990288455495446689758484972552296948426357786251626220424709133960842409142663689755904425249545605045910478413106179251733980413272089504920401008740117901239561749627731021780759230535851712410579616499957373189230563692220044035046880927495630957214413362225739030070164219689288594377986615967634491278733103377270203520619889107168102013930120580658365109889418544114252110350261724557108798372845543403724239236715426340196560666239176728393729422047253172954503853496595059144054134117632538375536797965184242349040418192381898225438264581871059467572051795103962615095017305028638489428958052574810518111463543455845958813228493591083435445783638639980139451456756934766620040040823711039597606628187042778116815396531426851336887523138051475112223539599587361555101254755749786870803937211982125798653998961180434582288369885005241646416363042259184453845603738620201053011469695182673840861692131729104086380582392110372264310707048395884113529873270522285811481070686113233286456896205733564240691807947956574176425001246846020398581123782861276754304532495676122251095401993336203011123665700445365206344479753726706540517159716459100366485593779506113913859549555706373165283413509949940098374167265293794112434456724101171436917500638394787885720830116321724524949070128657383516839502216050928166777320028502187952422638545529260057127250923056439236650680666565152074692413234971917925304118433608246199331524548791853862516135737182127438498312544056390591533489404175943900766121366445648728560614096724841632408617777116983427933478481424180847180656819231337553216134540572853234599152272256535238100672447389673654896681301765510830988169627106415805025008330627810721459447512612911037298174078467645109369377269829356697418419758755057508189093893757395918981015283156258933748786127839869310182487378716488776941102349304135304067953682576242393986771329031838960071519020533971182705092526118300051793446413362615661647709885083207855645243037721010007238956591562537745335271956095363224801718324713445121153025334040174405418355829261859835675388356690365688637146527089687333991814517099991514991369121053981010714806588730728554023915679643257951557642466338227885308898818262858550600193353614714855499004065553402733981039608022707643959523397714656334017337089805943747635130896532487368641486433423551329999246895030605537121947601501551217393492196020850447132456602040907403331334296392436595026458289203731566519411976882211786139382479121817516144671512310260897372219649817342821023883604004121964377253791603814487138660210220632924374858931008900578652300998198618189757020841701225395707536936840425285495278996117985721080598601839746221800218796172386423713974092498552648046894228409706435554726683239199338779149331087180604671300622575127571496320447536603304982220880543459243019563068242413625226159308987643886113583339844772912646370608072292287357173375464430198674560286299445436581562457183247417407679902752541102680840549642862241321827685602830619921210548314554306167217344300384615060515936546471245150113890769296701890588611035032208856152767304329535590226086990740529446476617904768988696895182772336097306136393615503788315651125658774867908750773387339601599130938741587800724536539263004766733249689418462018624014137242269572720735221507788183878114591705970939909094563683844924837787125341318374036163004488514594418605921195087394951163217568934962035734330980918933990952840078326591929534096487793923933462939289600569163000651035231583151963113482384234610258413026963353378296106170968227438112670808761758944421131372683746193487838238756611399320150716571096447436885501365942416990489871229852483366615195013464578081459191890339371575964177851996808119672563143924684330885651814021164522184873772223725405046122681026942939425284464580135688886057810294333893427550198841857387091279871268174020497171430205258057515479715787509783905946795008486766404391379701790314747522214828600364120838980320140824204800005200991940436510918255178203339792749162642316129635579272276495982980323255331475569552109316352849319470156250994629686618105912395370344135826171356149867510505895190137523906318414817317719072338185936077656390802712924137993126307314015163788220252728671647680984798044735837983159162860058975638993007273528284497560217797105796370106985036592841270263333882492369533962813543065760154684471527321655214044128075697802479328693724936553051471799006495610565351452449044578205222023097571973762240663648088105002308448365634914603785491401208778575434615172616522657793076550414257645343938933654751271970243776814970082660596020050545203518146701352884557814681541268431301102813700093873872928675456461281951326215357549118797146349484328396956336489261681831715564894579834545398303106587823312402984174437539999256216471863851896996605364297639106341277517840046783133259203419049350054868933426904094250973946129758225406868222659578447064388369223666146854267100572649619270058765089443291241535411314864390441100181541694259287529258046759725258493117494468326273874040418512706848048092167478543127775732338688475657656854592528897378306303146337688348420000697286201073443697403852227939899613941474853860594367488190945731393317334788216600519467367632418130558886441806502073329399396505086621094091001203562900010905670871956551812028608779956899818462191034109836594673080776391286276960460297942957485153073827854853793343585636128087927289531594283693028947467159700424227658598944438165669516617401059270812075620731707713161016459919143626743899287762775251001634200263751043899999243087677543392275230619964664378598757984059400219173193153615855603567633076264559881450201594171646821626945822689140060452891777696676687091477401909857723473313889595941159455928163865394354817661722803008734965873468619651070739605558345782742725260369928103212822376938019456183823753135213217703174034269853981611132860753846579468782427551743495825544031419084270245920023891181470185243707653758741074357737814664802812195770794876467174285768762391479607121001573841320972060956452938288999891050123469212153404507575432045073981958839680686636179249427038648302817903102053426529264554790800399508515114087683607083660588195518600007449628636873702372594676339446994058573870071257108763657128106496601487613163905330971882870760387651866414684961694220261494914270715541890671918483592079303677513169110910959480378620523606936451114982972602356010014081523085182496898433972555527194107418311624432106340574451052641293088718463797279853817973730700933701690941881582250388371800936348174995850910225372320629032892592469977905717479452193702382810025024823746835182058778206685253385040487267862865957457693123694457577670492506737023202309924549725980802407444119038525648643213898588273264765387431230244381850354159001724613129641841687703706019001147674114042177009315375114380074854038002039257423669333520336901599000542582804500927478006832296168072392671103842017405595406750387330095866512869920499350370920263767934276370136139500048583356564658093064217135454764473022660389378245155721245569090385100865020480656790219077408889835248784007349712921756000809165846661338472000117926654176133732782517323963257057640758647954422271162602333647836440832472819344941933862043907436349368717041196566696684095468655482262706528464214356499795734877229134847857152758006917146378753347648111797646061181980131481033554457181933911595573485413341917652663787193626005447548620539625686813455165114146320151835385253220767418486046810138774194031242427175085072077331675133051589149357321710547035372414756685774915430343226497013211353101998872585024545736371487641227623603228851424200429771057299709492573833820879379903643434527046263351973831698734574626906546064853477177243369604816131395010880451921017580061315832115786826996290349395909882563630216528673776995593131489626862179361433988674932870713381208850351218137662339112049659049740136883556886449874936168973726197981097103699347584155789045752193782031277786985791596375646643942542449764170429976799077806881695733593856363593187933424141081615535553069024211289736222701764501637531830599279333284172506370468111658016471183608937411416119652180988029738263329371064358350461873663139548318743032001327484185401343815086341308410221649259843827928641828902672309164182083259089252826429323469602260106828660124572693595308900467493913828837977810978293836647218015473341137203575812617201219689267612966950052136451734223537671692250300861069972594791378077148413560244895170341423187539212009537362059766403658291409803394064497338386019955181035574996909803245807341613983857812135437700926480698428117334071591658933149168825346940622546890126855737193202669832706495938428761750762984980376473850789066604452153556567788010247570464075936062571136078050389880140480389226794956230002492811784006738240330080432306455890520564580258337333573925945600590556590334771694003877513410540252414929185327403574658752120509142571397354511887010457821400570644396002492501505590103565455140097244079357626961105130684143777186307310808507791497863297954981020037005314847164377066798652371675740346589767536463297401884909284771273721180515505644021420151582714027745196289876666000391862741269820193468723004454868916961989238963823716362373841944410039334696210616734109929789804687186984471555761915618447493664800302383164495758451486468276242839489785580862896304751811846895695605703030186479566716174621385596489081917885471337606745913894214113938160558034388247078887983463118556641936812074613104274428024583590428312277737877036237505033189512984797358532410675610871697243701004774832698746248829027164915685980821628730966451596375308625510566387964701442826600325073213710743542951396281236811805646424731549668430439221940582668695754508702968060313668550519125823905449694998987488141935919581803112481556753761654713267140844419097347828341219381970075222155920051243835971445650806189718033907551089297930853654619516567269464341635847452839653073896854408705200911807699197393624431652551512523071460964341328894709230802392418695266625906150914620014852068294387227557688262045114240792445473087300581938125192767473955846758146838024694344615266243152522678617763147577804450435974008093466339150832740791975188663883023933692828280930756527984233000139780506044610165130769893503014620509421614280446302602115007047579745606601281423360622777270608250023797980981050686949092441205173151036834584974723581696215584112651726754533189788080337513155638155901040826053941816328749551379533115741004145041638843093986528914135876516496117912800443363470737075850748943869943222840490795311490163274428582627527600670154334873616707231172624530429630977730296786053424268724804749070002418807574545948489094026950218855341823443784950542185779378356460432059167545239445673833045898889712990519178372742372023592864049515243392170189815264984743654701574241156461394525162341306660035224160581887231281750774022162295527654664788637951109606066038082646023066203296224746475950518284925541393998912896247065170027569003440769466421767717239920802040222832846271590776411009986349685602043788202154057919348018818526048657202925810288263705704846220981951068051066459542940757747527777411253975206471909469371199257776396906183179186671974653910202066530061364367560477910566042079252344445090717650602380527024500500498507754892747097230311081203973742057978094847012074497291934343034494855165114122672141580768779159219748468615042344857265747118793021453450919132887072475056586091158234866156851793015354352890804334702801162101233391708868189222785445228625564466979133301775774419585360597531519650007830752239516678988142722028311330416461712339125504795235257146445890660493983265218840057591323212428870694542954324938387705576200804915509176329516431820346529365794358359431155852529609558876714727660291312377465366830098218408340309224036172193511248248334335724007596341155135472928003799680281196060401222330717063780239142108319267455044962102146099601441879233602600923400212460648831127132458293743210743469840414628554731063530015566818003421912113992057048311990612747338891892522593086175648810014108930206272000434428565805354027967298432350085522063588662789671721012854557572062941722557051083939764040148235003492850921138323389626119320770803151782452350865324330879455761050580913470387641560054212613261938257260115176824382878240288198370242736790175784383161156950371885671509204638385465171460960149125250243811710535551050116612877903006284774160758706337333034485917861478823805855124454098083842012892907054246912882767898510281996436754323957392086926831038342846226841900784640332230013439256260171813973196132352437223691227863188965291690740073273364893371036814968407961029569690219399173532806658260083269811263820554392562148863275058263694314371932146268417361213318767095839723123854057984696382306224070280145528995238647688137241848913557546603156561517416059459391995570735179362055732414884139412389204271460635817090359484086447595009923577190350931770159419719741129205784796454775306968009208245395564717325664438424238297817859174412866131043551937090076520843683389631468490865826514631486725572971923134174804116149826866967794759585133359760031923923439933070636187050424181353022757690658265889330944453421849626693758172162144651827368689575616570256557688895761235581495336571397276522805730136319431792587434806095137188449683181199345667019271882863102107856180986688029995208311739502409662832956542815444056049621703186198598165309639076590936906905760858248352397192807629967154175983616343646315191450144515389201893095368519303146440839228863986509076898604265766003852477526059431277769419948858815031340967903295796132910352305157346817911047786004770092709898983788205187540496513256390270664561119018940674415359869390393820079904353867321517517742777344687989346865332307066293873564928809524793417859348731721209357951554344573050696205840516287510189368852209010840617405170101905473431728756580549694465253554628959194522502601646843067346009303224555310721889268740648323038551460488123574942126404266778406499279448037078620250443912731094132155757370029520714548873511490083323248925183176884634357426179409993810727621176819508907342266160724691709789943614536599394098292439700460524657644480922514014512938854829458496478840901136333802110201254441637290312324297018158974963082833274654655333877568396882049049776538161885063398295322276917267002050392318472730771509688973258871956851634127666074772649982609835865488266506549335765085919737256041575336167240511190870682190975053575695128479415413682796789857430392077385993222229936962033775673285090719292310468333684296897547432281138858190705960257547574011713934386379152914039419569596776569077940646391455701903647906681444267450301417155343627305073428354816464987704450972703021112785253086481552232362301592148891870963804432290166082570806437870469309047691996013713307603018609808075100033443381487398556111746999597913519569733795827526021136431052327494483529790983182787321399456933170649696621669577956529522872710219027828482945314744811748235463217136433245677604712464231119946451789250644831266114980130430357414087858844962166362297565262014489034828715245051593528025548872160704150875180577802765169451579380711642487606923020444778085375291532939898647818521921663427921769496335076886138099262693622388164073524843726297804195064072245344845638121116169999421510755792086987678898629096649329066731932100081536543067362739738732336530933782555873283861668245632949896081728153728233291839164628508235412165589196257887367624663891379118878099104848410057885920860638300371770051860928128007548670435235505760752669137292222058229584214382111797590728337776335185513024922931201425307622804209834836174468989205745751854201138532845563085988707142571085213675026560098760539498349548882683104728292091989630073625277992093866411050883395935151298661846831682817654041232870358922564039273007149002447417969672734301509899981213535425592965389169223437605405247022779932080873250702263820500043043560764169550751582840531411050310636173630357031566656964706807724939763952407239696538513143015487875692592042869914306917791908799151360874467456423740783590259383078870917514796066549712486169761507504585961546025753877642404853326415714410095433882082641830211400493789083607641356378626386588966585105755631312180007807484906737282315824159594995100280818574985746314144528846229673270015013210057028616979891877681677955558963831172582679897716001767532203219159306488307213452622717377911426379162808986466787472733770237042802938655804638185604258494688955554109876844060226040023902780383930445132873350734303492963917273679110154476565904651069142191887475113426592713766401499403198732644528014697007511375131191739376491285540905007029162665332901519860793460020128083014812301171556055952562183819314192085492266447708379337155824306219108636718039441633380282235336442498245558298123433843232685120920216703632024288994884465986303091400520007808831470456836043941336214662326645843289388483194154398252003939185239932585282687294719279971407289566526782715476622703504551068151948535752871033966020767390390861447873963844054016609883032049565327476860370219088049099047570861866303520106606249303237795089395508784328728531071363438772385012485937748213823722060589136039482093753408022364834550467532705353069027893398168279944220055853118772445355648903461781567862025786525183902284431148431106355719508361481359574181566570219969270476348230214821554179724249243788543251859333119684263464782203966978643759405362015536624960351107101946021078379961638084155338136260785185993426337331805072998130876229299404820474470627273973258498990310551075939834638800499024758950854721284448637896875718123449213384541669943835829393514339994574610978687216141126015333983445274886612414576497379726455077987944476545439795886448261678429723619588066701266942956577399083499620353396034137182551693058260580684257963072748186567659621889056958000880293796910648367046826226102613443003257501294807564398442146744084861894720021304495693752888656342340112392777895960047324893456786924612137892722882882414376529613726459122625049028981430420982856557498300195882249612186393146232064184842287576820588016080750088470442310505401577482474750567533429173142789972305814349057768945741716869661615733038208357480541026056664017113774245847705828834659522511920383578999390222784691925864441695690921994631855156429071161669712773650822598700466552397176780775999257034820875795951568519938556822022002823074679301422200503797319554552132760740520662677686990722078293198107386518633613476476634088300059598132509171106328424498894371836158618950979612407316049978719708959390639608982111862666793366256823106268276368822565052273938317325537949070154518315306708708619997236155025990690895975094257834361977861098226523618526559583172202695718643781952140639929769410673110744486083229906605200314948905526188730544946534864109302869918240472123560462419572965935340098808333601772089177769881338539211436474720551617530731944521992365652951920773559675748400192382681420394314376116858918731784572824939536871923465339380660335498649312833571080607987625643068174505160337470554205332097618441217692124214058259816139612145373725663959204245533025673871667983013659817736133338375056134734533896879336737663128195574305657115103193465177351536704223648922117942133691939392227861434992343627024639056926152315369572759691614185260542671821782914644858822428178101425176951288055018780087923056382526398405278783012136487065198960982299107938415867791154742738474570414767175000171967834097895963167604698276945162033967135769157070019993936947958999999647168218737952394907920634926685799262101456620106183936495500347341417200286575646629630453543463018273205986240402780788859948945463283358812690612924957304430163822069926159868025774095211135659104825166521712829377943010504540024587227168345254372711570396932062516201993259123717009634248695567698626794305178750362468346946757675755520477260572577424664920073076892900931746144584617399943848258359518149507471459846180839713995131858413466923732920914936991614236434092634216478740919248478767932830054661524975202976971163456982058859700564794695980590973490490402506266210843186387773985806572613492027166235783808887093270042065411572057484166539416668239709231186398993477657909625336146293182391604776501848127142954721032483509774364393148875158823540154823016777946222940160131740413008966749353994521838205899875784351362887325735853919143863577779233047110888099680925080619872098883724482394959157834798155662962098263046586531443541218738713578248319885681155488242068550967025669030938878129927868426363043827743301549925580349921254357269460492972269278448561390230044330334929449323497209991469047119449151417126908507197858709860485653508623753341690928395692336192968363788257125451213116222871396260274270479808104944282517974795611990060713372502315582873080371040342758303417693014420418851053165782302096392972602198374640568933985744741365483115976858903386813952457110311968041116051932229585424152200988113815958770436999680884548467916965646110920820419999205324605732626603077957241642089103372372607979968708632710557550628503373616359083453632497552212807471855557818135772847241336098693731907446829870205148467732791932632068406903177672770546629371704489725868956177646845298086469959113304461613631199638253128566376242392135767109537341863328753622343499312722481990740438008552222380847041025723706954290904901313620491057769324788920213659921128121342421780999840670976239224477005047290427510180267745414259643200201737729391057357645143447716184992082269981872904235359091328857381978495121664196642578392172022942912255513945277365218822398122489839599770144380175588373013378698442212206561721657051500955333877667077810818969118339125450224597391430157586482600919491408915552127981662516118528631566714766123679474166883749167749975571021778649270258811772556132747135958452359828479860321823260354649051404175278859961736758737757061745589930467912756633055880830416656781303196249287424587177798067559035243727492045682862678424706559999622432904661569882958930484040578662523852791949950906399154810466925314124190065786349472196786701476061382989761627938538084916097872034286562050864394149098874846036920859280017910243960665279802996162620914141206697566278985014488066799576329895452349555139492888438251359905814495634839834975118884830876787936109517465213599043715701072761945793215499634506036975637132646932436726187238507250782116025236594777753916263809266231264552758281278204347208674509198816575213003103168923812999609876653405167582513977846933921763375355810776018670792121934710949556114593416250099093080770502748591096250381019036301867541508332942422071943729173710776391102387503150266093403793976910580327689367328641338407897123194150249606641119098854843859130730978752834426874425376674970811076384103929860770027807983952301690519240088050508846727197227711119643775337985419199989590390011523422884388490246630179391434419709382802139630452331066667287748514726219879142095821477937826408202234473162685174595807518781059695842781622771397990716340286511636965416516942735136127289246623404723089529223707359619456891588136274365912287926950752149863907874443648635602523594857277460542559571844557838235084392114795557526435146978471215453278766115520618490172859035569053093520164401398962786569951992810677783649260143046501909862412547144301682408403150018892549908246169163436012391303334288324425593679050450703208751435302469264419120488724136458135080273352761526630509327818948711813866376670340583442521946230868358836707083635743797627428902303667306522696912926379780549275618963313628224599376531568447859790646614221243082207389515773078240232557824133303882998390858515674856842407688363690850776883046036620387451337230058616267889683156715704528362945991768141848396005852583565130480080774018085747401947104508162362756641704309404784795733996631863525440206021658028408014815249906237152405535717285481666655619899327786915657878375369892386562241313249433509833839478827515904417039537682260662799296224812445338125738653314236632374428737107723968980901859015740492870511744015422940219584882250941598534883226056479212900338938962118051187810353200715641206778818232681871176872465202087107757122615552913235391415704988346206144790428969243287749160419820464436377967413545891572443601524822065522342861628604404526187006950101595307254426850008736587717072414447392049192674181081146927322320977889885225658786324417675009422968532322748361267576129095774786704381631555931675868496151821785909761871553426151746049860612653423329282792001036017371610432602472412362071861177571809969286268508903151417008847112726191157032466181386760848220930587271929859587110613482558490184857923996836481566024497163178816590070979977053319127583434764051493692506557657334356282674202690191615213604156633265155631405755351791582672594939004440986607121265534722735291603199869707240420639252285070409256333545404609480254001427972769611659496665915144010603329939670346737470673584831176683588597891962853141062661890086738062627332269492226117759729944238712627992639227333832160948707809113768243245663117179888814020274115886568877013525682309747492250607836595483251103812017216628308499397549678880563234610331192165598311698443638205758136774125250520860648352760537529551404574616091793201181107798934917016219220150959478356210081716633201854703609043392993268217771653994235361830192410404331455089936745426157914029570284565533224802696806328854162412801472976574155540184326652493368502732036315667319745367532921649863877021486783576397891929299655948275127351321170139059667649736559128962748259306707754758249598067400559074173647086402241309957911466852761828041331761365076913940265274033386541980425678957578906291074872885490930577810701806458241281662666977308957251082865068599581374884007374311066429248553020633060840530144170067478984883601661539121177728075473189287904717038762922275681437208127806127475714657880120042487672642520440045428400767378724582546592649932183863658389837123809755199162918764846546164780999592406440845014269836695927218262448103788676217718602447230153394323920430591080847415886041005839560306595669865242225438896929769025545685879699509128065255545068629143968005118419277233891546177954918297497538435156984308324804241326243803185352264238623225773111948439108493681571596566305246135742853387269600800708442314473954553853817677194953712376142013604924213790939846689747995171434248340665584176320822978161631985282675710806968104967624807533795474917801060512728481814759139322031803346240108526924958017968575063761504543368652329987940046758417456116616258904270631572650091543717786545075340028279829053170287009706403752214482696799525434557535476248986596877266371834610083865034919909492871305552923579266981237204372023043704562265470747440313234972231640048802385806028965771195549280637410654765741694477772487211520375597216519198382785657544547025551801759164028593412551406564957236985074545222304533036947090737682138828888690291820270844445941589441367719963760447190342619475711965987257650649916561168957034236180276855356721292979173473702191890418920778466071079152145253124083455689640082163687306461109201277119044995069988306730192157289793379226612341009559938703672272224429448786956847617271562956479323572231051339535970115102852582800401958013673542712040373273023690800976365279168759371243332919797882529597597003604949168676696483795912956837596653948151430771662758022700047208494592941418769821558400563235515280260929435894974340752715079924902504349844841962888626409498732130781328472349923978740633629776438263000096307275394550387484870103023152149925935389270447863902531280549496829380574830916363884613932669253800218310815237145869569752730857563024081402483910515359663744154136813269446376488074672588250287610119768407408222428550973990808530717042801774027030982158946112785343506456953264898102918728829702011927703566109552226783416863337389226917821515385485769005777284171492205700797796917138660099831727074050668785391307715242407544107563379855804035800090500621031919987867026560957862512602076580648444853126087698737796569346120768095145488308185868021840231494328698825663677417446804434242296445292061835974812207089593224128847149904855389125699454944438058881432082915158300515070793214815259684568319055240615311691658800396279706142797328993410616407960580867347423628724723942073665685106783825974168464567884451481712120100408387664803247370104468197049546658318741842005651082345557984818430239260329397102954975692625772292088247695791366291742936431770310048117122962663178692026930829663902641323441761374906653959743073117105462482931353199628192240314102886842787793273966737778199304158541081317874616393866501488770207125105557303464461964114740561166284622856027703951303720640923200463136049218930430703832409368184558255991303203988566641587564244620755084440954599742689536109061844708385431236764535418762150820587103722701881474067681346258452460329761947731524165761101065095675405764690484725738471434173003884985902700032754513221198441908510136743775098184094945764102375302604460992851805735431027407679461150696223240374987331894790779992992030047485833626823540427295323970515037981393117943706861681499217604898546066048983424801643286695303986760564860481421490215131408321418405822970874550718698375912605449178419828895803088391716413576257437419128905060739932903084977002419733595292137872641142932233116465527641405127800674544822146402440585611942334244890407534192703785480014180370082728691151082670135323527591383082539315139092939793464966566377641854799040673814042637016579284467341689090629413654004939354139727595573084532254796961426606346683609287170706766587293076452380298863279519895137010170030928261617364530512593969313654692166403015392623716200320429615868568691479558763027380153993155610742876999284272844430411788000649452772584508753591092335921533266297265007660591110714281208406638353208636529217891940827576208816140301944333711597805971861848263728050847612494601458158844412500749453443638303846043153830909176357930774555478788027640440908010088528512207370858447374015307237907699697725814807728347750747336188796901651399523964119177015529824055650306183766199755343225201376049236197308163435829936479271996660557460585856216387237793198943101440222824441910117281526642330448975099682541776092873999600574742969469448494740707961456229857773432229548694291656272708178541631859675289539355305460881912593804791040568525332070840685925170819341369276739585054832879550057803725471453322754530621537583153472971739468682120047489657676252047973547533981200597631049006873765297080194009364968337554097977324582576318104385315690009986862438799212420726697079214357549128685244865997383282145019781011534243131050725033496222164396313869772925668486875835935222065343032372678445298903789159986733247247241818670356629822298523868476124251757260864197407344522320152160170514299636678397277045729132505843362441031054299889948558160952665782123216490287981799612514280544971886753008527836674232014910432150513562928216841197392569410214626107416613472118305562034237135293064175446578774409986702355486713155447719572234906474329416856474627007426259808046693396869293382141006539381722489730968893096031070676439688299817344249897411397481916621151025923348383647168162873604524096616173117323081925066992527449337173498740435246201897062436010922445896589319158878794500260929741911015848242031670662009489614647148928419955336160619814663441995901819511637278610548258411926404196298490982548507394579476192456324269910832950580953109615327672511682692322820001769085148372809765493178307362511628108629782654591506213241879199505890830746082733383496365999467945063907102786416521125405524304556492073343966082820839994943705583259320807161656028080395888520908964603634288666394934958372403289038481045987022405315258378067963684183121100330191716545352562407054261136183612135747044532385876533499634296534873975703629766014704557821575939575523780322849869403272312176852924595848233109099858260686443233375016572733239792566186936593899252187222454208589962652927842391997546676154012416209443039746584065353990774250377951852027255292227196087902745227299229706839970816670260701475833028510982853598297070872853549279401080975653759961716736357397585229220201604071386901986010396270240621656522382112459285006402402375560902590005104867218673232686126368710749019871198695785568374143348703078250773952726578217183554377777056291435912244644047420208549665622396129757437919479721385546863376042939548928184094951059794010037000265450059371016128835632679104973440179499552316188377799335962697367624923342363619118582844082570342929021746517886460482682960039673563363158560083002940430123305597827656164936624353626288942362519121037526563403198610005785199353765932165184389134691124926655541175183164636818278645954701298097884051420918523910894576449097106892526915438635295703584341273396613731191698277901349537162506555248781063267891628638145000718265719789949979463559080574330919224076235131491863257816858038492026356047772055934837128245496465141618359504708546973447705670504708501769385071022755558196443291838454352262687756410816851094365507628235786774012925507314532745162009120330749924631494319518862323955217995269758912240819729217964530872455624768166842244180554725316557176070015457760715866710702712854268508284094026618192918616659474889491252509844843523635646388794721504699538570406460399496024534880570404142018637170447990025141250949704651776581853892903695431888784366466851917164434495164746973185881346778586900662967951407787183965576798742511062037975489932480127867092194906376478624355974846839628001951075242028299002433315788786470256960743965678727200471331958432205131123881397176618758702824927690101764975762887529655557131522843615692143998762419507093532154730296307735354679945635968777752495348827576980819863073281244174907996114761942886160331744413673859588516713340631369824848526254936795277937931200335772400046448111670021433977657764341001323602589962217456729015405844525459748939074280421601494980476437513031273813220479953163288895123273287404701166605951340238504891805068070626511315224610225170472187732777126375730250482683300139406117751980041833070526298684818621129973035487852218761569381905405293760246024033824257730548255291068048205994287841864466378475794091083746680619246392617400155269207989911826218537203777852433275412662578250118245704677755664641988669879458689632850368719045239320789484398892345174712479274759384802082596155746906672651158132188313629601602941738961890779121818053074137090194864304592252384306533691172103023354563790891009015184368223347779370089493304784112572318515675110229251359195127421673244477848971706481147978069714990198098052399174509922860617869291130110989818900948794779826346761730301808413516297935551059229383376842146381172976723831984601882911376099376866920603646895736417378868092676302579027973208441123239547553052044939399916346417866663525587916132097037121414919807076535480695952497176320649283929947678486096184744874869208311036811629122876775769140458100672089624816587103381766202192923036927798094169055890466210426102502779305455595095722375434642650853522770369179169139608622836910019978319916047979387789501991725842453061276120830149338629257999704378479109430239932187113084055918870976885623237112671354161904335391225192423641876032271008372614080459833645390567419430034081461248157846052391798674430258158452020255614765671650785804214785705133599254744596510994722871837569430014034804894996646445588139303354375371336467902946625928059737110171452153573408895308125065210649450444688093887918731915973941791111059789444057120280299348474746275279699632184290302307777441017975483911876401392844619791269189768285606269152798801823564913528756543761899663800602002609217054381182518795895667820841465417918193416154411211600879785748882050061717689126437468419796438439503754491294846679272385145696163273917225358660094721876836895416281946389808468243348311587211384763692862965679416346610578893458331003219017761322253018630335445812505750586997597917279663444336333980115320751064453447143908069073472211965783009407292130038811432447691445104684885681562068096408327358103236533694843602989753063490906885024055402372727770964848807117693365063112948173611102366418885978347649631475442073131801132616175368132626845430033479167823898001397218476517028065274874938904804911491285747118281674006196478099493422819805227112309730869817053381563048182726003098583870425198683033868120701119980841735601006822108711038751166549391951897150087611149739698018451020772207027795245839194402969870169030102922176386509806924550706049959817867556317593148157456594185336102890152335083252327584692562367481282241205554181782879497545567965222850420362917606690486684907220144427937762167557084528703600049277777805620573415704839214455834134204730928964092991884538437443602362431058947154992211226584556465159777450385941629567020895249659217785434175764918819182008456622182241877009827354630091830325803759060674567112474949237196151005728249399580855955997256232132593325429954066931897834195480553306320998175524976686146240274329947252519313982874916637964119192704880403938122756937727287627679425863784647137131106381060099315609242858265228269893244179529295106823658908094272169691055696620951286254109140115488124067599652720864482694908959594527013684380164048792414157351255082193589024025954556456990047077811684312131221384105166501027496094315613395242518699578320004043618177296043434366067220756702034853614990579469276385858335573334167400575526211962761235588519851346444212498358604673606319807659106609849532859891874518366301629089074592936878304883519665238976500903362409951720013621969226848366736523496172258456404197845000949570018602879187054283180762605261367606292781829100984597966851934641146882543834635329071787866184179817673845300799927598461012990235346362284428187794776516046254218914521616930630199478700018756949891597978924856048828950830272483943931732145088646350454965683366174253613647032647551522509013991762953899189434945775019872927118642321438854482014137631447163270063412888857910304610808146001604438512240260309142272154941017258075234133156496755070893620424285838452394777898074122074241543385922421480497602138194625977708164358256563937148184817720317202976126629632942175523744574895443959064490581024543969628591506250953428206574751511151233074094496875272915712039089558949789763067509464623349936777867689836635886739507803627881803668076794605835637656511801393641793301961594585780599397876769051513890548975063863914433453795376928566194104172759996270884496318263316518746702292686252081582054634245884278585805375454325010415644940965529605325573081665939392719893436188151175528113344072030837256596541080269860590385520306483671605911025929868195516441712863857010208324805213307938016524315346233722901064699218951075559192184205913540069869577660013931497177077265665347441373909245523348084504180803520377451235904017404451069387119212829800523953086924324300604042761020100230913185199062005432066799607559450765058076938639762568708234880914926854699693385503673223484103290669714099004043051398893246705739576527438911958425912971162617304624896878139354544138188044882950561686380152087770105572269564221805293367383990276205970631375965574159883018445043148694037451422956558898189274519557020469804762009829614900598190743679043251757097906471486596652309549928643186456338974646036427707374587521765703883267967901664279230406920848478386707567400124857120459370752958641724963614535848948275056413596636003498004569532461867851156201017969907044689718437868105939611765733339842835044524763892529939635084881732755818227848216578348427331813452772747058279323986247326456456732168859351766045169186341015550710415000745008578362958529288499811054477326949018918758029592171109638865960942848003874036360526205897272668879322925689625146542560952895822548212795323611891618738787689087882394994814188535766217723614540220272566261697488653781321128826630160764058881387988432186850905720416342833346308081554724486841466020102063792924166274313423927484308638971024436388322914458782130410573916787444698108452377760333320358385354997841609883278755371291216268627536710365973451905502781957430655912083134672276324483662266340291574672520192369964201313900239453299019505125033415166232996419428759385873581538137728747367077568358887415786722670113932681513773177401865246487923630789283142681099781806414021577211423249684569573437697795625884668856061866566228315370798491793650776849377607194789857730389432230755310314426580208227378824546027286760836972534103092286592803307816464733906341852193939345030746673166290828355224729929474455026699614934062839413987718176605540476947284027940625408506734043635721603895110088147730008030041500297329223618260318265227954091172451069729349238098512635236194275804041108338441433555112667289827349680142740968858230146739770048719017819073645283540222598888509539850180331599446685457551729469510387494674740100813049267010795951889718434243896517795870277960860445699340096003265229077688930272570900923290952015085565378779417295594452465604862015122301642340896934857853427586270939293383365778234035210186097714454066711445230184033487242368434957562332730638524733168027941024524310294383444895707930969840222910598566449924531432071749125585847389815051525319076204837931505880868822577783987293835325504242824890482170480871991265823787372990222364561206285877063190743560585751476016070854983960182034945571645403007332047711868076894988456593458662685593252696659696829541423984811033592108046045305211604771822521549672567854780348456578678642066934703408662658585934859951766768253231116880184083584078917317086669348743277599882210632174064260178688770679220016565698350146710843368721921889157723892981903152511881457608931881040729068001410929937746508470842252348849369525794704911503696471916445940580106311224265273176417490816474933862510876646230340875984584077734906848944286311993421835851272500504904568880857012103446432174071629070214812176390240119539672748255145553571710184633617465690230231658195854687005827292576198847533684810839110525155018184543094520927148493083856081639981198183887556200136629778493326148313623502833704623806126936705273461703640623862685041504758776420724753737579969554403502910941842516561563819003876329153235642565193203777903967591822093150407629821708795886068218564547687971707983539571130796575849383060530805256210018027752205049525844890484490225940251751059400229858417959777220515791370493633222940453693749802813188065982326199197189051336145418525006403702388544580725642000176174725954832011761401727211954572097840664323299344845483436683716444308639136778531096227792906370945632251007116446220147449435693442030667267866075939156438457390123248321925090614993323202552362671406105522516567659644829610017367338171628123060709210086781131131679447706413810233851389336516906230748281921116133513749980748834926094395849379795759296007914299153026932397265738336111993345339599630218119185778910167158996999948230100084268578696723746312062582615821575633194731466081116263165933890221386992151380608606032545500072585092528519883306570457327214065328410666365468378617330552742520298238885460488370430003892989912185479809280349799117804893505268256252057936309938601937100425853195169419578181186867006422697730067946329797307200815584339904712127417199627771548092322532632752856285836092583374657525675090784566883149419306369120929941989206566318243776608521325991741297902724491669697133936880901826597412493845163416996826888958824109687915082231379312758691764111793750773118751103483360486170156203273497756170784772345863420549002131448903162530617776679247652318947784734883368542574730608674328432461886406461954934433569953054515597676864895324814623655500986661138791997819205824276808272021712485683090460448772507825059093211442871962138748357245325111987796169793768772843896472568035588779606522980980841740163539490086514149258467958750323173049024998788990919017635127045708503040554574352123801701836309823943672011930099579933098526185870548925653530694090191711517862416585924346887468483233247142656602534262930758960915064677509976808525101515319446182014227460710246004697179835108638541831330969985808845927600739240881744360333476429563346437126662666733460406145266319141343545187819526152550850721947670663422688074933883711593562135681689800041533800721787512875518457791925508739728739902812895006176708405026996684051139132132452256314179321373486162499381633510273042490248394917796586521800224282109912011130950308943706645163904593097722117721735157617205786967669413599947908850799661943354933948088627487336416320022788389173703179760248116168852180256912680212621005810482094425735918834265458634911416455879869264268181178267942679926622310201653797610502818422158646533579484065359240257063226330145846616860228858222271584271982253013581562503153692109380115584162632950216101309947552473238205908183881481896614051827521413594076473885640897745075365181081361969326404349656219975174517557393952348619475843360858456563003869970749989692564824508479839601430469911503000423082337938917169159656027969546934657725007884070498405393967684204812215208724448517585141040515928012668283090452748575917888495707364350869179509125282519474505422034147895985456328701378402321510402813108486565425807088690408120467414163431414504776781205810954794013679713790802697433361864568260044035603134613824467716394984824870494686603773937153031560543314950444737153129161388051359261898638845575394719330569733271343681116004179241402811153941376432543086684312936873620903353924050290467506417837158793408017343984946300317519562355327603953780157937306015601567318542739205621364560395072648729515288304121943281579327365065864254440534335965314080177032218703634264898368513196070093675528641518712479323163030703882724206509870040733148967188857181072944653561886059352830565191644057855762619330529422873112361149559738387996865611414456644882789488448967167213914977764814698279577182048093362703222692810023093702887826994280498683805074460156597953516972731280639358367194320102547380402156493326588025653803313163508534802862220926155673679735223247634793972897343218048498717596154716245486939409998376241000453219101415204581472505807987451995841498060737097869868659358038014062783300762222893843998238929613819654066164387245972791007296412866292743651103615620241447628092420688952209943687240994218235220540542458636357865999754620364800689883346533459560115238087464184409356420746668628124875774022549272418305915547163870377926644772075734096201451056215958904632873701304846998288644532608979149455152840723267083635045478113184765356978241370640156535847462632143349493681600736155260087639653869944080870372597261510024005868920629961649891483899716459920589486392512482438581585228991618551396616870899227479978298643744383902512208160928378511348472220972990904197105747777865445519068894242215935524987582193254469269436752294188648563704397216319240014564320077140510278584721559252862660007585383056470096606764780963410616092090844198594280376604973144855770583935678714727965458831853798350023304345676474190854417537611049487302305261460449178220145856336804186451834428962997851528140464669744234629669489514811176987716120354377925394813174631938657719938371472658509646655141025904361236162130361254348452486348234106007354282111737750033488901110796187243640696660608719587584576291853646021026076260976326499732390376039684647795549693421037753796797928464516176740620597113576693100133316716350192184892732799613981071491696631602188744360929674162685164193748005904068706416584246631381787270426431232558782811110568323455722972712725306854501501513044692817602452348809743213434523912682626382273391359305825230650091011807949032817638454607694451321800737098648470143194273787374467392040274494530222031798586697952622204401152362596172131646150234653113782693814846329244470839309804357274710803024053393116996955370176731012711671043112011480708643635334036513639534701723710427287886600031696453182697961572211773176472717549955580634158127815885440139723265502396801138899911277113804584952632810947110096638686822780567363915894823980753994433389306765991651076844840031346663178533864303157001902395785495066575787876532743219161511366767116478388276713956249032416257249998787044328879503365265968055589409157301989075893475664144936614037567684628791093123483356856036000209427322533445646456166305717923722042520242121384016817361418543858770725528323670026065224221593919241718267809395084531669329782499714623499163233074434664957373440490014849506528434341204817259458849861176494617222222427889048091299350886904661626742089539245391900650502508271739175689489538050812388581202688138005389823042045013408868305030534239144576644123147458020891941164394594762459920415522712765326085500918381576899533794721982300866363495259691856368558345398049854751202455104620747719973115849751608981806366751945257986855516117172366968320871026264190506394558221648729257525913000530589083706912317527594828477257492299027673586018002816168142855471932934906275159421892704726260738978630396258349613271165805276776340702050446305062564688403365107538736730187905107515224696804444022655188861633703616362149255940701768002049217401387913179434299284476709744092478479967844326437626057454251811383443344435413537447933010645346330850709675053275973618410926969117982528650481530908439745556675499198998514014643913857340624383883080501361016168229823533626805476954637649357478261231383176565278645245406028321782615347862596538327077619233114021527613506823633708006337657071803498328038588035000235382245321368088197205169725809055915681470900229324815736456396397417112071829187886467484391114659412408780808560953673273820998687134349404366031779581593482400153134354711611746814534604211864421649116751747135233191571372549724187515962144810251246996343713945826099025134983148522065582819878992624914225862799009662770083303755223135809772456227248256921755014739872622480202073075246366811562537932025978149329954314367310273280891635055072526438022645180957286208649339723151389460212924826730223628626744495154174271018167666538768231878734025162418343782144220952804697342647557820108550904229435069999107592646971971443356748522611597190929792070574432505990003006338534339672579106865694465699360089338604389163010352327514338856755007770863531769229276302187617231948361673946792947952086876998653438005092424382973151735606250619351411590717744786830770954111626131854491941411297912475249495644721925544178941090259151961758970586830528949292264804306682011480704610575004658102280075713313474974051670050837721236814029228474243227366037587692508674812692627508955321035126286961528058968781934506600977972521343940234729166134327208572048649854913050680003115286479268533249168682348587901063156215676577818688459036353400633920448969189693155530746799598413095136463462226156432884853116062586465261831032697432264748308059773847509468647548840699018895761111402863839026509367571087122533881648569162277114285888933642684943942318215762671347021655305757381906558818672100024876749603551955759740152825536533032019736671387585666105270068717942838745389259382298000748776891368472019181960007272133424145703382546329122729471917072137034470784882258127129823162540305792549573775809371577368479326254641066533872526687783118530937164527985996126475715318726801750431255121129391798047067572507954041014193686449385135751786541488077236753488654144146617213205201062675827198459800981585055701807008553073272789591871418049231626511683296494778271642391220006479546830758698559996373108434540121466460179620392769224737499178347469367363717539963594836789301516340513528019045377655204475792239592891252730738736860041943763953769389864073805093557417382319837113747283148741548028383721627523730749045375713001530717085062404021829402593063031087244287353127423028018641340604129710262343715083196648054928172707828895590993726760637564325161638690728467762101160406314509024912421962182760259074727393580479055013526387899241577505129944638029691301368920343207940345791899784545030143497087328555180636898524727396940579728094925297893300413192138136591471269676753293420547231562510541342622977972368737923186469056120134447616722226070353683029993134911953940074463259202477288289300963605286003429313433635737998224643836631039994487834214471394051403112750486447118145644796308117789662488947624699844539217467947859056798336547760826101589760026905933968296133065414905947701676692305536226209217824590044899398510963667756597768289398016810297203054065945012900786287672816521319244930834138607084185414850329051613236154192379608802826417211885713268675631843204324581367645935948478904602826266399018370543677375484597373356568029442901558714511153483074486593270660965660295593391254381281369127755223439277129889729271859691257734067716919258107005374077359020396367015889358296936376911557300199229189713766294471861753869558873397784465195929501149018794879939676926250204773834376850892603173454461948441533478426585062005350905833256108845901298525488009450096676484538816057963379613309495151278524593669906316808425961874051865259749458722857228856704223420156170219036150722969281914920126325144953882626001373945799675894262703702065094165665513113845573523790235166338424372184626958152190398436755811963927182542269730974223097562778865282797069579623878419942798965453350217410743937472151599931029190576958461029447018648067551961016508313097921247683367951298583372513092848986603080054453265026144033758030491299053594829875151401334406343715908349920616365763267792199684339916593419258536128437652305267673559231584796409225305754158765007939319993033067571800003732363898987689749233738204749954659311578610819341667563258315383772468815962052331927732233279125684944199240569245164898732370851742335033999293928569220961945616667141279332771217724121448699523796961982689887926016366455705406045657735387020697503415477381966982616047857869038925147691640510865917575034735969642115856002738323433745541796223519538428248180823509256386776929885374623256886527428929828470231198698666850246811626541732815648752942545034246273943706681187248823169307538725073253105302460671643763500177921559173244666213061830448844469528327147902074296667727518739626741831653289853462172190741355500374266485222689387853582561295128729848082898257517557250821025776512630726591757956857254570188810040124663586696530678187613296132770529354235268799559581798444193108054845903085829282248800412574418677009794995012417627648852858095325715652466268167764198704622546427781877862664763726127356477431832721392719620377654208169440813837477979000547422928442848646798086611011912643045201783760487095212964427349402474752197956492250179843641855698103222587942803518184357560557464394540970782215210421551095873912031310927115259130753597981989365133693659452473104295348667396507794993080340479055391799961445575544074283650147511890893608033760091491163752070125058364487274787438673997686789095068910640208162974067423977431889069895188558291130250801372612429397648046157919438603139564327675808889135079584662595001537542923057879124635260296831071050995477636657447598448045854395649919695362385932112825978130408495013168741145207814399402419025321591686608267457104906465584299255970260867706151268113775936197780981279604887461021855084578136555065985868252869859617384817091566235992376408354223689038392691723502096703350059393400538547452084404623587519355370921112718860703709722460434892933132461879347986759877278545854997860265396787857639901084606346733033819607262378054710395996461299090212771932384503502698809962070286847364132136946910812500431069554592591204614479197732443142904408897746812839173578210374995987367822088424530494588515871390966836078758977391189346522858557890208315135667155586539725591327155500443572213728008088183942886110824188164021246286021450888844854506997876094737899673586657336046094954746919660243973316514996184114647702702349843915184000225533062399715511017932940080030059460528576807558108323239844621175392765703549471972732959717485338143410282144262256013724532772035038725528340512588623186565789601047110545791389784269209882257391729867509686894810344479967082292069492168754610034576266084095450564683596824946847724651369778459575299871766084108171681920850712517503484571203864617493734246735462660311642634926333345364930488261937784243648668548294259667590173941542473030333134785242789772553165635352396830390533758058670717000984623935580631204675381537402660597181745143876793839180631433344898349441410522264407974089924894239031851375162894332576942402732639298931622443049097390518365448091540152773830539447451443781666209910599479852690771078510776276256308452119336407367300096001584050225453942385039375898313409887843682237773493933773408819337414580568215092763752308025423835837094754561861062761361608476975170356271252755052947072904060189499178756366404754907964011305879070366828342039377353388724231956823470754356673446532566590903878427060031938536194651756606554434487477003901745301315923616647704321955500031593042381255710396982842855082718799045487255050921821285885860478032079035381526728729828492235780022202522092899756690971037852404213627866856387249217528196794494750404488675825955210621626259913751873792562299047738541362890320277349700956361475491214389876655940533523064386676533507493821491665154228818473394146316969263366419868234781360439932159820160652510750431972712540559897708788890305057892397172209230285912194989217536146758427426398916994107523084374191724600924385034328914733465436018678733746028012236509096368571697745271881551462821791484024605631645987052324878784038218172563051476392269020032423309097538740105672010564226990146962539409736840038707023666448046542657320400244449707503010818734951871868457943020719140247896151081560012517642763148745486684443932723881768441996422764951720057072766008407735698757178940540224187813417359106644344017948656963332421805016151040836961503703524814947941622968698603572325485010819363733030404464578185497052116907465274691475279504531958632747931306256643900796412575179077740380242635844754375386137167714072458013594415772415296462908702358575505765352048333877996349629411111205475879803633096654186420740757016440969497305109801956494456947786350259921587880211995215207857982136200313192239653796305934429861259600234495371086057867021063876266683307067048579323330125117132347249127845929579951559111421981481511694398856609260095108242192162437938629109165605189331089586088900058571894092939775043184909358248015961973184769521055461466241713093628994843264560092598697292898706175410278885093313897820728833493523892112042873626478581773667835620179972183256521964231784123522574394299428344726639351550749833499123278578889057339996167141740974982247174996240913664107796947382938372813192678755907093124212137603401340645634107816250933197639324249708077896402605308059937943935833615689667985171976938684277869524321987614693948382088797106816742809744672543838127465111469879820507858681884549703594092261568445220322787445168632558356588213307391799794367406949776600776329859992008086844472740800670817000292559109083793240675741369805649180560442951127801498163658223358301778744781843928980241894096342548378735806762887595342960468010238935133723678457816776133066124670968787768524960806708184840812935528371618292530313399321541212812424987433214862472372902053604353294734413913654585286576705283485228525109144093855829447472476809707177992768308983312762449624635579751846345818299402717428666917620543419875554183247790751162128598258412276410322598045623699464160878086614833852048217405570872918233016038678559361559186221760678433969791770335041261822554507038696023416478726943343054922538884989996017112689067944544378724385591479287094846004240855104500240926505258014188422294627449923808647549543735776196608555326493475802289088124787100115601881146793771789456707883009583156369790982095842367622186721194798807927800781326093637725065766408458028313901662908921338508467485714425013036792462844708043720196467449900995315902894532581850443150459581006769482199312030886387404224365341599835053101196900701720506998466715329768979301494784374070792838009799595010390213888890184507534426117154940189742615937911510773079040021671758385066779513867778518227023811786532577969482953469028977231347010035127757115995354181274570002538490660803399279377791035030553895680424738848757850813533289504970900217347857757613679173048793557734868831494934422894363215255874132509909484570003442371800236567662954632932096066954119166840044420966132499080400486840353869220222897551263378346295380034531575929150730615244309453786937388034535631659435313282851686731601242078176007071065343367094163634036203775165355597331702745284518102457283429000995938750429014070922224153571911579171026206337584305207752232909593842248512056195844898368228093818897131810881972391056114894132790510779143199349237529338306711170943699294967603218677562541132503710904721664513217841445503768051575604948445658513059092360975186835397677468135027921379131556701788073351762137958831199599791938627253629876198267675184612395516042177943803870526165612862292684898943774261344688107554797884682082136780060612913029008374479096212629140788161852955461465238850275940801141899293928159281219468060218220221744519941109731362650604183201877432099691102878526960263715762498624002557785929319855972075480719448186442852844080836140244941617751903051367530985603609599456715693326238116600600992537779831443636581076501884193000261830211323614904849830767232578411011992706410521570612719084255335607011868986103154928477381651909928576577474769786744557077281892328841122475305705891997655185515198788425156404937248989609172533752428806173877342564217235910662237394513455681529772170289123248769604875339945285979512751957113167939187147365106070781491573460185449460334530060242178783013676269019624326044911640511825812368170160376967486089883588723021978343704814383059967596092059551373996669881891393280013654629181278210488746990345734875931542682007092375210004756805244367032021306221550219740153885055805242764488355396529528295188987530863106363216525957498660582884411486171302197914391816527141825187712131469079503018329137086292999341820515520274732213293412200499305517494666321099997425891322086157994328672994627384518241462215608815666406121599730376309947896923536305949612636543176748513311859729708927502220153839371789522530754088126552333533735962674239161051220959327187495974632867150969983268687842163551851155159977627256565329589802957298109088474686456965367407273394199599814378583070182400356651303106565054170269361157946117542792070746874459916215536490173274889259673516424508034649132471491515328007509784267800557645267791169985301291040681176160039842188101075859169550095916233527979353955953279988974202478107113414535662264265334987434066391332118060720846499928391213087363942403121406402209630016413772847127407646578096352494229349163532580787042135295647575960343689084920619125762138425024324335171884194992479207038334995957642979681149811302984201975533510825743451423317794512679484308105612346216386468304780721314945158231854474065363576382179873068917722438259689791319987405541914299296765872243107692762532948348156373230091452041507728113151218441263429580174346776896101532411961926535757428506443594442318983300134168000060722134664182791660838730291404456942267597286445382977120058531682656603634103198270737518477382118549643946972086386028527564722077737937138261844780786883329813750442112133096473898163360360501567469272562310452096130679334106624139600488921758062161694069542714499433561287742342815548690332288586564189416825367005730707294253364799132465397662992039301322640517674319390925842371421942130460578669925663115491112941258747863445702806424572183020652093386076819015268353152791052983763525862936895188817302682824471121876127700159223212663214609274700903435504700583705870068556375776713737277343984964547296957722533151865717120015240498564154721536169980687344774913980748156743099809709193660957972494073172907398221847481196905533623894698828835264129620193948267075896911771637088708893693995678708418500369398499845006060450021788561952619578983425979444515219954546868832687206147009271330998551583071779422273996442231131074187853255501975670752483888554351804167234191491944010231670370897046591672503867231542537523728241629072354689880003565150701611660163978476776747190148712080919956687834518533967732504294424328269527811773834633793324586693786036784362365474215848761819374642776444016154255511595985530069808015517912919471148213394969155894915080366726729751925146330643767545995178952506341791003154737262717443331650867056905839429730234010683577052799465032489780057885874406931182758278864960894413549592174324291638234113447115063710919526625532275834811048163244052911015287063220707351465179417997205362555634200509662577306818379192645075162554025675011612264620096027398318169738671849776305469423954372612475172600074711216025837310224046212946595309438382114291594018102497779280494539671092004552123510507792824843066888799799714374609390114451759167434455853122791238083042719695051698649346327646878820049306192292222323494994443996454802620117912909728993105454346115116141407014884532793586434197061302163287871549808214979257859759416761351297077144017145834364418651645300954349447207279163741076065175089390039267141564230770426426472553920293737122019092915293885967114450961500004238583240931642908972838694693469951466806897767075658548345188710644063495052060779332436109766299744602816239226975914941763087371374843560322190928971163412742215654332586702986724919518370874591394735958914830107530108689218865201819874393785507403829883271206633224093058504628054612364592284227964593486571458803998265054599475352019874521411802257681320647977649605021192311985669265791008591383637551557702988409099282690701127336166496020571160298343885655514529285541152048126911557547682193346175156685620273210643619002570075262524025155213241922455998469272598698453799378898422566494482892944432324913403380964796051172519148488577274952368639305856782543810276180707794839917416172328273200283696629449398207706375876099423455557085959069533579967100815290291161204371822324056679715750803415349063951945020126108535820566499256696453479358683929549150284617884532412456214645855470095745355040127136349058377468360659079966161847676338149449202586861393912079127682075954244783720773544107015695873301775395414698696305170387365174844208497344539595857088515466653802710087790982738348344975413157385965479971268660648621466315056512881089112520729758291757546920902387706575473434258847124960083819991856766363963492563988791238274028234827348146626080366722574106232267175243577418575056967648345605887024883901997930637769159707500970552149605979987400864077797716513206278238870693463853887308537302343934728136686587186827585144071590807156610122708991632882055595731904156167850551651676007284629697120697143166562180473959955987998640614294780189745100269868942547617199984925919512778008954195352123731225693980171856204343887076464240433991518512994108539799343261754810867409904241685215302012043531261061065804998936930311946256479480803100144812973861612469165186612658563040801249700329541068337902939146854869675757165270545538824272083135162288118104752328421255109392095256895281654682919040481304507747720457860923607806853210926852677989642719398394582108453516111730828293133376419504847318967082314849443418455034406825438849971091941362196161730560695961072697843429599618736567985090926056321475474653571810496072099339449473473823671973967711630941492375986582801309203176967037936497353912789085396612825890580215608609960271440817382112587674739479887992720748418851986517481250181534645682434825139025368811116379908689061888626202064530006053315004267039960399210627384657349016580854520657505541437317514597987244742358235000428400051163652012744728801730082988395145229995836824484778372971157746523471106658310257087899118449287276551940011514900382744511930604270761323663566690206267675741216250210860988867341098401612938205318681066651910055458758890131882301382586963160437145315908245731335714637371532888688828003983241633867723667478987625914210890757262120149107556451351412906309238142848646252098844590886063893068608958778315963710759582749909794592497141248775835669366772084719415646158894819521927533534192505300901658974159925022865644757651198421911121104408304550818712259221385262625193068799570099769004578699003376564712468626848833288942874536323098468194787591877224924655474183727959872843063698744691026841651960545630970297302438354530014705587307101677168143004016381334110813697843852042603425924579212125520981355647556474429220592700832603264873569382786890780487737810841033528885949100813710368016542114304675562472738182807205352692354276983993690332513339305601368686858573921153813288538769341008884979999970304216709966473789432933084895800524803574732072594480364226044006809006005901487194661655851296070893470354736755076762410791858011673254264924086516408200061010771444616832236565494380726142615708113896087087362121391115592574628604476686073133557072132359839391489331676927217778609619350358517533728547475010633728819965625365440653451997759007151319319684450491618832388459307013454445776095416963478289160707426593586846944968857472919263551537198425030894436191810537786456244673966283572739055350766299973111626976751881863410097277765462668521594411414580536322955676696851090076833896381375802834174091469495402169643887993586156125177483272105122237865029019739204433881530602441732052531923961808790909178423379931072059488370547191472597318394264595964631239956206109894970337226528639210499662000956584257188956415677489944061042013658766946915484418042075111662654492689011531529842078825803451473594739407951115201572115312276498706926801197084964755585463325470338303831397468917837573117688918591344291641116849054506440508168004809848586548368734852817837778719408628542193426137513067763533751943304754401018803414889411980450940758592321431846122620313339737721400726888214782256630856772144741200606527759902157494341306673400177679010372697551792989767012063455397131222450812439752169662473057141390923742087221121307450327895134326563714365124164578885683296674815156884735425944289672290435764262362411391402674603160358029168677276474290281686291958425849038372848010695226155167841227770318119111065027238784665984943953905012730774457350453929775080119678038880594117782491874225098594312307857405254981391248050026307898553281565416366508071753071233291185728687692997445889714300140226945016409078181089732534308666420778850079138686428306028587436167017853579542739807050563020795675508475990133889625391471892669720609203675069098451928402934080322480022865921482700955586760616804342110405308202022168367861986427767233035947268270184637212748883877250844269811992905476155014793126124523246495639263287951621707142079060021008599103907050456567148245078711026908559176824771833981178491093827319188289388475794141111413957256713367645416527537559233887518857609116909374788801908517245236176113564161224644166587700106158785928014690117006737161755113207518742622503126391470630516518099872745098406302660027852766017419496460876125677299391841588077640382624036353389566090609145897530794067582270610421889142068498475777413587632995884718138275975178890435305526318645673665059032337157726278903843824598940168429544273377918611036389609223635798702577718912138027239744466920750689307779558292036713512691135261493795391389007168107507869435688570026173442927850651726577062387702902415121413833002090097202328480938191434047290356091784813282242192109013147119384325088670268839512657040300814721490197966095499333866406168329953005069257682665238352580990870563853792656093818132300279441450997948187008896001697250735240123487510787187061963828899656680589214386827794478841513686781613855235323090508163446228833275497052690047451478503994374222022738880534248387957150938004734712204072918886204161129971772970277816392011834682130874329000809333000019633128489754967310274439166072420942847527279618940901442217762097137961630500315688310128087311147640172147844652776279448507664460315072540163602954863643127723904972157007659053989014578446379622979003719783444997400143126111562443686451422095540841691476283308406626998395412364412366547651626226160490801626734754886620083464261240291974991365738116523895266123042420248458829042227358280114509769582535881183550592368955628319326839111499050693942919805423248582259554790428142918957827880882881105603559019425093640163546505694272621832410168617381865310997807288273541588152403225152173728108632169048789484199851440323659383409037760118570653750082634008196012494752826006574939264147509735470271952631509011955187959149260132020839368131613315924859167619678137655406130132943220568910566088477633290913073690699519117931615721103772504233943695328367981026216621587990785025138504150045012693741014947049007203315561737965154227357006682125043784403649210804338559940550941359607512563339482493690584176875582160925185624599592862173324339785310834227981336134405017068015564056876237628190334743850021759393572569779416633939908193320052908408098610860370771362529896311781080960858737439409293161167358060772139883072706478762202673534366692102311598507573697504556440822116054533101719919827005596997659458918132861432436154293083482848665583596597413587498070712173745738030774617547275944182324520422999784995905877947407875212857545097971918156676845621374472462193006853121986225887322246660399323489741982846296411855383749348327804800830337843254110441332386730595124970663088152394073808098523407069678219182701949625833142862380501431485656060619731255571711775599993803394165154005911152310242139710149909641943202124361201251185471250193219232252455785701416870420672941402297102559052976951859712279708312162419672093741337148372196696770706282488576415026230629442275888789225038188026187538804949993224017223998272573175421061816619715534947829475335450696076172044088670676422423665213651497041400904947642768418164298378751351466828689421779089894331416421010952417415792059839337043572779335080732320808306249173891552365114231364914325316836194119627474751027360841283076004182161069690189547616309413623778224643559656887490838045886848297894022609519837066473978121996474426675236817582472504877301549043063819637296997773003063151981728354748753605207314088233810442891920041861117386804882850816982130275583459442689512070500866872871675848058867286424229992286509528386123719133713459176135039908621098537551939657049896760639820165682287620110921846545665287153135338704958422628927841310794255879946167471838968528606705053760240000218555941199321310064669255818952247305417937867904845143583597526524133641914753621522731776027190814059844136005509606111827960029305377627658891129764833969446772086970910238188386175516303493276956321363172544531923006779554657102130787869294913101083065101567527848813066307044596063730301652043628125197858692118408978085423354506712669886460142032342357866232228383286058039883911620105939662750974507021080730700233756949068326525736099761135451418456313230046600627124127564056987116405264158526340607955230861794312316451427320911774779270981512083609079235778033600545115020728409380584379873107942025591655227881316183481277043538909829436700317452773091312218416535941031213017567174723533853444272132037348155207532743404907465290943665556408897290442145706805963721637765570576733007467182039318096009609720378686447909610343712171547942618525081023839018448163610421558587221913730361401723994867090226986447726097738803014320442333769276324255132762933178033122761855627246666309752522952744918931001730225159257308810796580657583309516444698348375325980822184424034577358599487641344322033033987179816568881294762805974284188484660725806167969337518192818016628876964901390846490567333596038363927486434998442310708796684464621864197719572412162948350747865874325148467379788116748021792259237236563969274447465046810952479341696645811119237077256010041815855237673359078574061293483629451065469404685226648392510057369627486263217342323383745662549687572389379500692275330660331416141131819375619738027080595720120521140174951608264924735086854349953970489900880287800131040861261965156584203394568686790141787208434556027454381439528465568344222290757511627015482155099130501600892356348043984894198541068239574815570118855280886978875662961887211610704729332640628969934804191594014297579136402067755016982090834003969267679790354701080425195453993931449243399702159765450913209172793793415872063085210784688859231284015784437705396442333877822314775260596555149815372532634925520908021426515021871887278170999216821919103721245993382341391331870508517637682394703842902175645532362916091947944973725556238261801493980520798504176306419054466411107021973975859270848808320556714885416031995448491033140873151190884423486173506325078678931746131727716176213053889019152497032440135881770770367084142831328564936082163504984918772379610883487839722683553883252502249197126701171245927108830518302191900482412475795708461830425261930007011774671931164933356968445947741284420764654374056329681482532226365546855336958945083301246895809978415524150134909393358229063463886891796405782068196364848994067691466250079901325636141931267745099500314024071105102453811104449622535953140220719945925723429881954221452516477872340015927598108424252078380242814273169825414205012375909743207244653972477547311669083677296776273710709811552098164374398778926828211545789104828704069739786335952373065861399321672437071987152510339610000416406224372404252814633893251307601938322067069883614339512297237315647948396625982539880831640594743065565260582668241711134773361972693880226126762848624855769162785596664535625255486892001666670355704899649465379350093316483472955607456692409127048402052737918383976639108723951037074482693756378768532804186065271108899902065096367507982553798622827855300381690691526654052467559833943384299165629164712081745820414819028923031515788614165370312193010933433079674211377016997746316770612513167327389713041873499653403748255325440617984459575225104570941728061852188108249778365824806686231345737172229048974949025583195974874752337872055962109216540746096043675042806676218304005574184919736120638743476941276847798334186428028714368908531842260953214483803745446297853961376808975057718314319867262163746571965947881099942096321852562017526437283199400619240003410067816677472376418935958613199976850922386141721445304225097804594557675625617896736860350153425611938528711301925408318553693739458767332189999579393819717422357359066754233527520618247804628883122474472115333575406055366417591846721121737128891326084212215465652214728548858552812945839216712187826101515673179012586672890809991320737230842307762812409489599216351391513911401227960459495997512773984006798360157742982625811567521036810707396139487255607917282927978002807863398692900243646779573260233629798254982455318059245740690605687247001050076337140104833962272739113275102882899069070447500806015126430094000061549286339097505880132627082166118172024984004193841307930970674551430176034026841971647189952645677643014085297182189917886326533767215366032171936035314392927941867617843472236807521924580515052315595199591104601075842693306552267856579158601322255972598495961401088699961329338459777722548895163565821494435626052111695564210828486302788614397288574009721601868101741962966815678141880519462067512286993161220803753763006970817119479669523044555817175971412116036093538817691946606454171689211058221705053931076911666974587977868148862067563856772898059762847072011233266079692235426968344203844860697762447725211564637497876185309016265311336976104502144152910227635870036401324568832161881943278957133926978783876382784012192789827875762722132850689069188400529455353156477551485211669701858526545663600336241902063044641997803846272014884719887250409651170923687837230084151702195201053751417652553162127176920919976724199299334692849288821606758664525003462544495020264441861977251921463433861468196425241333403505199962683122240659313012928991031897555433485285437428943389063382644077352840825494851763449360051877129866094105075193822501104233763909113705799912137738316734729255801802200896815968847369505910158656997266008653027534430644748154720568514063654282108043799340117043611341693500237681437500238226593165073004665486417679500781791604163888991200282641507265995439232818062152936269964941094285104765309021948908158025493821259744913982968838569415870730699199629247185023268966702453992812506189498950075623251014366513599834924301838443625752312217946496940964525651320015451575302164357686319076610721846144634007222317523057415029947575593380494417044589502655956250115218123281016195577473745870893312058099471939453692246161973846119061462096335726787211384500449032781412352671254714640999693092223503223246980880071616642500577351276803927342740238018490065185253453971016612151728186833093036362966847449412360595075983828574319572280326948767697481676613457075544310264889020389825110079239345503716924953111777203441634820256380693407938831381665325859468129064436143461221698496036921989077219013463398215341228480337386380164255091353176757881536837995434358028744546541474043478014379764654398296980081084586030063426241236542106907487995807668579339479324350442467090133097219125227292820920525059767016121343968089647987631784670703747785482218495186406066976642396892274944762941461909826294748729913633783950207963534622925958771401402471520299886366972590396448209078100625620205901448850878923764806915938674968848633833767137655716787022596740527207750937769646747937126080153886706436480276793690820336582539690852947867875227925686758755798411115929814312804820117560020026447170723759752985358154931619657671859761009317603140581944107141754837706728829431702692207193307786040888264561758965434266608112686508215437467174165751692753656451086173502152906688283806855581387472047099468784904914601261630382219164987001924895827366647080493817905745073297266778053217551268053607706071030285831903558599304582153547953902707845188107382878365618596994569075788476367360116474216263060099651039067609929302905393723693893891272423920729074186528386866295903347751823118100558608214180197141204444259201245690545856977423407848097965787177073975956433273495107666651091854973439490773261461116711034242982336323514916028573876376804949454110988992883238717053261247303936279585954001321335069476882750957838135048570219016767544214821245158761257985854870519434396051927976656006809006301812589751023158316900245599748632910124117054067181643715144772011845528241341536527909321235561486085489490640266215680934107923297575353040767809014204724746309344502303802802289488754745802442085506363414842357259173905747636180576006441522681348169325540047335084122680838697969384637271100894660057011264208490100693716745857730812727352574477241962929814314310597476121033339705462699096207335865052918738424375215556952053814045590075402371556684629809052843194218445773813409806713376248642238333453389597933362299032611834406715186765608120928504155890553685755105530753488139068406671715657316164349632141916200531625153630411327946805566518284216408358853735710461290482808831738976527914960080942244336159371180323402022981095128379140427908373879817302512258528257230929834495031186467722196121437108601225940231259594370689580057178807671362249867973315925444751609523561718332285837681165440152593858283149238145650426813758712265127351980145172652530407293301782775349984429715050738298296718372335296295336518125407216504812724790768025938077581449124861308800336001700005375425366270061804431947082614113973646515683707910997944184293317768759960853691698072338381011748356240105655109659205828851718511304235638001061532668084973868598235148928155848432296798991696449512506157323377460216700874406628889367573402603480871124759176736766574709671353168342196698596192675742288431603790611087206290602408484735469412915639111487778224115227683446158564408100359046903469456873569579325230968869059299751878333295375464199808417656931877394062351507713651745258318474082196378525519829283802337074782188536805519569558748035765132021831801362257518960445651013772065281930094137883059647232029731100547789572448534255428841593517636614583687130850886893340014537151139817261588399777706133663884507109959839418657864860519403489697524352039600579436445697426154842543089754010077610271727102093948480294913154404984927841348521152298151861932927601936443788574840007490398793861604610346653254977629497869690306345426810652418450729474871925257002164135376369507135660886651058719638137110643416374615004036965774207044781411414952730975880586970496290383663628322652869218897502855060235132750359615851341964861566725431572740104214368640087742753166063461880683240400689002340249731308909503721966695310542720037436246783017934695886226349265885773519577519251302837202945417149597752674362162040598609747752780898896187125767147855365697786666891725567067060023852519858316681503479230992015946921739329151229850452725781881795166013737992562185958884190092975050401982169153109184490887472862323177632753084305227354657386564540480328999740944466892504987370555217625564602836898721853061442896785512266043120353184406482695505900790422383875135282699066548275359460530502383640641866112065629606329062981191699084465893752971102961498944414710136524879049037422730098046288167621107615706737945250459478906645901758216048269369155300686137325926708273122744693198630924155737686288123490220100007280780707458400153343822668969255920461051351512984103504918404219905947369503410360646603150114225625331017045326815813237755126734104541737628338989461085452182140345174124089592486422481177584714738739284738677277887996829098792605593865082610288249098671950251260166864336030925122820059921223526490179579261892377091159813362988110664523000978339164977892257518637354155078453090723692337214719104182818667864954099448894844710671771310756046971391177652007532229389126034900118298504264028383246851609013373292091905866362720742641410142939161681545836772632386727990363250375953436323329341736076934446289388554839076533501866379765383956021866085035458465106899143121517979370963345722286537619782542752618475207651017495000224250373451613338448787490518731155801997756818607287731863141119764167973708459953783131882674939505318083346491930875483990256838297502554169359118143906981526139413813905788307692636595101443044033407748888967141309901385528291921741959943693167087434057540326645820668138809580585365679433181840976367466557644954182738650941833497591713322885616948289599539621171104741572370076533362984615191295281130142085301022400042427900369367921176940250538275574823763186447660648412814798442059050848878667819444345866128274681268652135846094111467255888122594773886587456761262139104803783992675147732102100728065167213100292316265443712767064421859026021787342813668351968413201501679634008530468183292397874760616546345407020454266870665856619598536091465573748490911440206419790874611599483495177700390308660123635474201379913014774570564514706395447648868206112613393226027887951847360376896568147686410959746878676338144919939099274260478935389396468848370349864895145980601766150279276417377223043861723223562108200107374977462358826256029209412386692164189602132694157622018204923312669586970197270431154448194945352079089113839473215156481370246398361840517158429858959709670292460124306142945260127796559337150014667002225819256971319112569514887200086507496079628072763775061465837334232844903813632097386152749668573460376053745124688843125139734466864993388910838682909106308052673514697561142761304979505468844400168130784869265759536345105713459071672095542430784401768471373373884330238338659366817438057453410751727004349968870813308639499066345913187726585184287969841197638556981775283424243197449090703732177813162004354195692756885703445823946883552752267800815032768288486988187669893613095419997721635317875229388644857472095000391417966291572757140792207177449495946534959252637568679286740403059283272106842484126360546672037499676434791351545243288102424019714299000518726728606352534043867552994316790682259225172891124933806764330324058101595511022992292611409658813639616247676516659463546983184313082142668914429317087603705433001786387668518086798057204262885820767397608030580426293108883203810691428341976029788666581051994408231306749217064686869756995829258150620683857068331798515697735713629126104757634607988769001373973524825764804329083401860279719401371848653043698282374335934490911411495704911505249581712900316164173810610848504661094406067393982670527344414352475994631882989103277612366255410303046836187868816026645124113726432023144945430721182186307527402887264806245368904564057410935421881987726471993329934282748359947985552058897643769987472350721990581554677684702881424750404572499110044119445831215085323649201887172043755064210566596913869318623217178669895138172548393320892075852094726182024176939258460571557468541074998142071086998388418214505894039735613629389988539447359361775773665973980215990486064103634458909276893499748124780642651236298014683400602063439416118681504549302498430519720016343843930328816257206496948002729285940993172041436936990186945603982786474166945346583423548372139986233645386943685856796108617683568513698867620632684840772120653341879865986505142816993708854665616895825674069369274069503210839504955775170710515528564197967396986916378785040753619318181572894200616084338016243695375110348662829079566630367241375038806116925425553324725110185529721361235527704694458781958529999416021294924595008916760768150581543837791797614803646700812858124618926031197168692914121166200861804162878712247325822801517866902407462284554024417759314826167100111867113397513540318403948419163227134646546822861722559314803516049018089941499384367607858868962674099530779428088649703147447031319072933091291758968659828287388716663243466782599830188576955970557235703714581970263981442383423363901865765838226054338028228098446105983547600018482325875410086672305106388600690015271036596566744951835275031358857080960599075069382366303865659996972358626861999987043897546985127046295831646077707831137758144625786471135110553552236749095327039937887208780737786368910850236746749991528996487493963747273769819164243060800313277083770371363204625157535072696559330333267456817214527501054981242254425297136400339578038168351693736026752502244086080840703439322273566080151700027633714553080251471251067002996488253383447246944463315923524811500437440111232314925144975886951463113664743339038438473531259630385678118774541527492401754766540970136473400615424492403653694470344903798628606498140899879780615114111288727047683237722661559420918359862227178008362126707821613597293736161243471377028675977094578513454917231048189206065866230459271084430829717709777138849649727556973396265226009668229683883067048988231484609657221040989697589877529926024380186921364827299079199502283368973622310491154598175056848128776414470939107823713644545079799755933182627042195689047650457933713640982268212338417071820654065619704422472519853691937761217157656548578751064512642965288624758493561994293718794557679944702645106145777718248018183616730296008481288195633310637667046161247039769066662919145962454903002749173242780357428631844884338903708974010644319170550369066572435907843318683266852644052091833633634878750650184010802100882230423752509012142549411106260091900512400625555372724375618192508371204535867132741464947786957661008108998606971003140664185470650173138450698089410039578136415525347834868068830325328130752211199324282350572644645919447414067444063291353858045876752868660460177484875042825715534001155857767965067291916732347154403053287746267183716565653186763842695785729327587459795834041444851895495622192771018839526666796232206391445761598337498504176971122604090242464433987211054322620963288914086454388491387342459816629479383647899778663979028937281241306590289971850446079813618789299397535300637974963329601182394216872541930405833603576699481240396237871572636605918507585133861540441977255610488779340797406968073847065244868923083296101120998027374734544068161474032603716592100825511135006521302311792301560744945755013063822954513562836085047693391034665892797213153650363115663775472545448871394274519823941134356508150187189950459081284592957352134908241668286126078835281836829040570968887766715834600671030332188169290606219219011514157920369825900524773040199572875484489229048423376683170547984681062248343156137619315135000936314133765133800249458856231725034004181481469166752029744434376469229992372787857003082977600279414833113745339711792334626121315913235806187099494234197823976312127293614727331791313030560206962086268674252175721104564001556466999502219766246186167573155151581117683584211813254047854072811723295499361402893784770674232166656837880959992686577745048695310916064523127646851365871259877447496939997618004258041245561211963241390179747716004464814988431611138812984181339465655717062138343992054171960796374366041191378872571859258719535274352107404035438444194443695178511360972583012862085430706166897224483632835662398349811729661144605671684819927851676191530768561354434274012896216317716466524215128854123519942303084339055934601117341175154342929369113312848454506674856392792465588030609596904732942688508688522079062199034478448349875217903575904976578121513946352151390403836426619991781440921326752072289550482396786525694774896380378786507054758227945311615936320314053828551656021335740476292734573390998702485439541663842895920617349035667737573779752018157455552689482835711266853631932567893085138934085686532303859172616486013534871157396645652995670614182317658804993406158923650813577388997636644368155356128434219029486911563534888948234288946394589072033056664229545115924187902409285783599825222636975655532391080202725268156848165170719427832027091261193235341703274420334298131429656926552933880888233183604653629016037901097340389278428516506515959375810537142754612841174650246525396486223992899628740431733850515951756660054670996721876598647945991355969462566486259488451963679344413066154447463628693777605002922868216629060152648991275025799637524172719361381293991738254528036708720049574245268528003352585309635806322125486168821398997969421818022309190389217775950522600038203151762525009956942731859587019192098416069675660220400241044183278076025042126868499017295349248349662498276160666369021211184761295426140563581262433357306540928519604167471622608613264214134230495193737506563989238778833055014669245686688176058514345109472039139106805197460172152998922696071280476376918672534834368130101559532537774489688191729947054986755715709446259224268291430164368355157955469617726754600868306502705923721313222105323357138961121904189724953496096212420026625161489764538218863235139717792578114454278773395640255031582585558371056022626830978358092308071244566157240127489272815343866817054412593259458701540042287679539534778589939296922353251468405381928272468149893768833532563152501981795674014011256922569813107816519024982357442921676466744155222483285619032924301188289475302080115903618424331047619366223288287120807793901023454720666890862176536916870386865714041934948673383835022113958986862600797491341593280939188823180348638804635323179864677393981713293953512672687299441397624943297105245344539086623347602040972843432917303207778214123413286744004387541676245649927721113996238063568129451852259186412521758898366137493457615612417984423562693429636516177746359057482325717223517759825543737359639769108404885768609034348173487853080466316580225839641033247930564564326912046884154146974669822562505874277362906431706752147469768547235924672502619245588341803944172475917047673320049561769904866551102499728519716454172701902556482409664794609646973851126446699986086517423452406905062862266754825084564603361890503486621913361030475972808729448017146935363280200463042331990724437570189919679087930992914259780793256953221534578418550576634032163139333908623178401927570474849377691519919147901668177975612921926591699998015920828358674950961644086994495624156352047659368525108409904827810099679737363313428988505180823357290364224456252998384760540737030807252150129565453064624565738442510986996049369870719482989398528618141762005069580303797268743902794082344820238934414135897597130439523687488576814136057151291560429115599631145041113944904914202322934950252462705490482793256279940551262407043472305441627379742811901601068024947212470988761567046340964693855185268170935069118694055878776656890622839370540295571041154633010323705060041051056874606368332741700981044597876782481030296082369425407865247542589523694099559921520141459967132845986164952008856347431981035051446338459003670459350133005918164210943688384730455090135412999659750177219781186316315023429276118117837335642738630352928287795582732091497004225023203213342402666998516924522733321355307982415522955691398986279557696492809639478664172468561404179242950483800258530899129498696147391261464176617197319489461196968600913248205324006419462613472131048401334887054239958527509534203593314777140492756468891136457943402757002152212251057891104442947636533628318942487002709928348458710292828648723480066406893986246062114832414943603467515579239415937941379233034740709967541160223068731457953615160258376802358127160813273199744477752916345018396377303659243543013745514301159993960120729085536346166570998294146982291867527390754189398108206769340304077199477974292670247781665105368154686053115523842143595582174222752907462560599826899685680093293875129628039296511882129839586152463209257334267458457992839307299484987510131293135281346317907756219586643531652920875693313367618531256007416093784630131348850212317987978495179512599496519663466810933743009000012202845982469050233736454640301845532266656304810623122674501585733568690614110709152237631470378576161688318657303585090950769327426441479377775392104607350568214255603285676753501739419232344126959383138331439485875699069781877002328421031598955833579527274338674061104069526570100685001284718793935690950147404869171790586884615479656715125494132512348887668588413572645636402067658185158560808158132995336160511412089921941981419337159865974979711111101729706347384640761830770727166633321580210238088083728244657581411957891037090106257612912492563533994242329422804959778531352065106366846787733219334999306232615303520295672477003444904294687988545901315454795940372696933903999023196271420080657711897175958047162641421309222217299910166095094223589340353424931839587827156057128127438662643743180296012265194284680140601435142142498764223007897138790119091122746138162538701540886564812071938115659512316525578792554616825502155057131083657665007086862909565648574472730165815713874846279063833667918771639289798424995193880216396436750240123568462423792571551153283546453363937108548953813918873267440252495387580307732910101164151554657811625331004523919305969088393251536551696761786017144897635686875807802035307006882229340978684259939376391393506146051842835703893946493749940993120161838808839670012871464346788868212121911442485011641178585755089164571118293743523770792625896686763525767326089394054359533105709472413373911906995048298513493213323168281454272743299446386357978458642010477460908543164673321781482779398182328545959332123017117684328326264451773569244600125583296408058674241376848263037145976273634582570942030136883966930329200065608919282962484811363113618437906640652533214609430808507168478312005723978034697514211254075420352349294941340977881207570593592213979441013638610522149974233728575670609824232500000869029307415513029328363656805363980661082945117167423517237893564693725703666061777149997920150693434434836802677294523832766611091165532011711871944691756142072131769496339103817330108868288918974182864851052048641403982823548397334250037326955756924704693646822162302220853104242202572410222502952698234222512351177368984964149910083728167052992171764974483781562150713626515593566243340022092427819496933894846216617779609682385778982854402694186324899001444413751405889678111912728190961805479815701763925259798171299080328604650222415615137931275825656170197617147167421105198498292395792449495685282888491542881491244266291934549491114068232384293640037916050525957881009372733360490944419770486699285301109833897230624940042874820756923982370716788250214352399832079294619222969487044464186894476020181886554247611605701805587988870476527137167176918901985541273890046724764105835579854319852845527241514022279399809790801182396198218758216463961554801056589674412214094670321213185802418548314689051143104923935912183108346704935377031454738183350887386017453920023627177545400670589131923640451263298075326618587202585248683462774853915511596422235167677076259833422289167210560169704944465962896138866548708446311743427651010075998186429517461668609612168346009647779463529542428092334075013424386242869211621451629705456421134872786779259148716346388828655661849752527010195562768897591613613673772479838162493148199208393035378449233287408921735755157834982717593147661267708574796075406952114589185977816321381879952946303856629537573953764730204806563170782941514278377282345600181939754174396280902836234969130728766260337965399081130767542842337762803617799902602764830761291579567848233012694641597967533870321621580474360451868005879544171409842123036424980381992353044749128087235564943107389924054050016521717275267323199032943649829054735222977232639913351363086386963621965446409764409224838158043560821164050855404210160428271505027540569981254808397174905572906299379378514205947041866165393260611751921239186226997190519347968729957228826702979351735050338361929447929757561266120281350382022041265314556948027410858762524165571845465982630341054745387211597329059766437166315030944182978947282692695266987997626170250344723291926570774638920898531028946079373521391561134612254379411560050568481879794622261116992888845476373517590526698982302773924872060803674959297168087467596662651084048749617049470198213417984610065431658821606714885942993417930014344213695900384653643155900682695390358278321065351253070858611399973911176801215695268331362700207436058780223058935262983629279453584942844721807817805594018412035134478318234925434251084285155345793975175380831346287800722122133593900868190952741780810259009824769266716193206684321449929843362274282864177648660574093545330039376895082577642266103199091816592175028510535296083610688782530491901020771786583014537831359858369852112023535253853982183181858130777529267322589784182185473836660477095878923177498638230828726327162017302970425668290748251853598159153159929715675693831535039467964566132737038579743086941408052158219581470827000129953930848334571738552896096571051957329306319687631759375048940083779081948699817037303930339006521134640280969809687798974613814476632148684750783186339066946304276306382545536849908796983257086786015571352646402331092209692467396703066763213472730207432785831410156565754463353030182568975694498592569823336311852091677011107504522188590102385709707032064037959512065658866558912235209080091753896570857158209033376295782495435988194027736839204108903764862267272103501034286443392750208850489597919695713777210427764813231749254558566887651437484984690436408663713883659146778886563442756485457131341159034295918100401258265981316393719330840722560812608246651038268000059303101707053314018063747743469637873040605116510257623640241684746558131935301994658867388564147457120363154988228651583898650844216410335535327843857626093015124091665679731904290329043613312008853965279211842349462327653281048985876859066919689427760187047644773811415158342677341231039560929236496799002567526821574208784306831821603414599772154574874661321050543129472317905365602516132673988651203846594544670773265082167898892317401228386931206326224658200872000911891844419020973319538003814660130299298306689918924725505249998571130008702236742764017042340902544843661400458865691955620410722824851696769826381222013692728902129692733843916289331436225818328520417421421389695728297958573005536270390825977829813901663964174819353786898999663138947357683753444050630181870383433701432506042307640432144960328173605185457610442877394409692147093362665179871957753088476105976723835491538003149840088577161517555389855560875321325557573026888222998018193765532780457757161926091944253261248197045195080769618308078678588692321140035715088844775985067739238808349480492658932732408472424453097597843480924071458776266862615591624215815423194008607712254311220099298629169060505671927017967092188126628736537594407699590194047539702298358318764337218747137265075000443414247570012351340624499567809157406486984071443483389981711235875086861348205088571377509384500648984038490502365882834387755412857917478882729759033936484626563251814283158526079612525202210062212214161986457768474473878105371037507609022568091386527355122730926706321751580497693247555802742542227363295094205885690794695349117411656636690523907235182392804283589808329988355325144642394201128313734116100171923297815748586318031046262036984939036197709549561981086940526659942996128778728926052974686516134102445004264930749016400263528219339374843922200709230679813377374388606198340836076797596555779530053427620349893983375093108320220438767831627542005397043576443850823373608779924362509146719571360493006134871940328476925146594964568697976345111492916968614696661601293365077811882980608405954596984927730778631268026011871779581719765601683278427616402200298431869658350358041680508826560552525240254874637314197147378992311628248228556464640443511023068071541661530745971329760868714658973322818380375147199645563066706613818530262966848365199414441431733162129293973616191588774221860324956889983495351288424746300800117304173479716693621412814584928817748773710851792457426881697221591836359872984182236027157615913621871935040025329308114062710618939935645779098546010574472439901261682236765596869692364525095078254957904142595757501102955799097198684745822923813761528524121636380839169375124228895010964693477418560899568537436627102384521739789056353707373385560805367539188559613019781103736851487373396023936477782859991532003583441629725825081774620325645952533580468435334482714512375354784361806811597011107144490772210604498292091802957703864059516990553247577336934841052938623344988656389297384861407765779697873209015115601692131021629437373281073133344252039883913997284857612168794312275009551838442555162126017503969873018433676427732993528357086492667786483678718084364458534457997284692206649390515082596670214717521581688696776665114957806644698550631027881319633975945828211746238065098673106514372219380892988716528457108199944114348619566035833782955736320727117984615088559548665101128784555000248562625111851845405688718176788361706668745571605340936397038845689837744601060651937542149315310081281787257054488862898112773336027075648178266159576060733670993944871221427750266705286925905220150792133767091353604339523804601163693035532647510726595721040201083403351958261806220470656388868243585210307570262523776099806305244595110049063731531689209826072193926731969141972604186814595970806152072378555562862567709400491242262057257690444882722732900114111546318122629304444784854681420426937441096024922557343045431746694508164561122207885541398776763962202015120265445077179952281475809136162432559552992083042435812307890918002370811098717820323415525027993306228309628089061489712437482204191406496825144067740058364573027843255828340138180892208642804551506601067651269326136942079995465482501122223617388417717218478390767806591094437499981001323133480455344066636266566796380407293477343884544007212285277023976456520317723524244138804725718618472505599934465427407986281241487706168879218050117225528421018965364694836712950320954721966373208498478847565926108527478677956106092872489147350735060608006654591042330313563177735311159601902631495214497154251331053266630469375816688732639451812079783367634731562253829810140661332377108825220151151162214387002891595628357484892970307229465267140698544384920774758879997957065017791844323534152610554294033680136422769679235948269019101806324815131182724886797202731016138307585254548535952005216628757972421834789986615132190941345814139215981255129358010990219995946191401107602774404786480777220466375016754830712204748828178215044383060166223909443920309036604000883999447531351106621622776374493227176510986519246062455881516962053482338152174131256972296009062076620281401993773574158635993521489225726709487084723393605892478347390112611059470990058382031219894165479098150334661335583180369631475076342095136772289314058372639219123835055296421766625565508879993857915036657965037418639563264515976073873501647923591397289129873845375756832186945497153878892233493524927005171505940744969041799021962360880769553108864400206167745415503942121286035684915716826971324227521974526837133253936872542184249150536944081562146456193253186882474769411836927255163494555704220124759330204856023403191200573788459632711263318318292920858915516759992122451223669876594255106770084164689771174824564256799709347087326361748888884832572027937083461558910189816440845373635663651967226042587297586805581268935765445498871787605685434230076007147734287849050326638537165659567676777970210795845028573411608416826422739001680686592960293016129457424693582801983763592900613519952012913300698686175511618126402883128733026935474206238183669645799390817183112614759879977943136834992542551013113875993645355110643652452719630358648607711096665572745941425939949308132994338759636241740544701053152730215367092359026592054790668299608758529361745612848043898397916409539048569332029875513434021433419916399836820004474320559970391171271295794424279540159809998418912976829615242707075096295055315407192411028618601460431856880559188374999702307078812720093869650335843963554085935290824188753855845545223611897819107749423368966582438765228892758509139498923692201315141446383522782286252240991489217752385390799652335404516897346346241025552602814435357224974308016578961232448567890988772155215216298750884836798676637796273402919356198043545060795354515842229715991157220188587984708420431764006213735307447364684385578759627321798666450807509180932036689438333106816923488187947701558471703136555100348762632706103784817119112883687199855843055395383132312979105187547288075018373272468992234313802076948427679157890592996830822743686066327277989694181762127966610875264292901518598443497583988944100716198910009345767416373495564253760808544549251348686527941838999427136558984991625904703387983707842550081004996249026318350114933008856541900056444835204141332042458464277106197012851900377804705489549294499600338889311503606331433751095349353363617460419784833033469440664921788609768240242009166142361049582028777285109140662002599022396458227124281841820207784843353371906421677466057358255203814422342537122780613134926256112822889470474490211113256270358895103027899611666727253884232389093051177222594070062152519933423072922282344472141992027885357878436044053290540798619210958506699439679448709102718268189807692125282013915363998215951535544607449080575516997965060561540298828206382934778685236445803295595003127989351229389322584261687254759228865604596061686082639383540484977278361582947297499760693631987617366430141007242533912146734341170823802127662377716171731107487699441680401802323481452779057271902310336152695246820309872414344924529876654471475100359485891327616355977450115461230291325103228254265556912310327119433171927157704946328348838168669853861636815076077393687556569829922050846985988509895602911879657529909300667586792576213571391396617252570932853917104047813801583564177861442405373963860322382320267043327955156115074545513848949072688407822531128017422514612982528404279567345203502203507616521741738286897667997201634528379899549767158007760854887457447614377632909747095226913768140425144970752605940505544522109890109885239551590976885201248835479744123733804992734449607538178254662665664218208557371613256915455696027657632769457224231648392460520668712913613124678842747966932679046984982903024866627283722299356445859719768303795639258624433347751100527230719135123622492205846931065758856541189470277594797396187912793694954575632207331411166490917398496705555325373655923783528193764855708198232414719307663380969092610133306237346942522978932562018580396110845648871497893262025655428952702610860113263440388555246546555786860207501142939366527546265831995112153159538690172693306836149163146141823797025583943850793874741969129133183374157421729720078661090165794175188849078735732894731563335979666126076150709872330997299291424626209463368015578349308749315549185645272366548689307380776198837999080667782390376136628512631642334472870808192320531293741692759886487157830346289944937968418487326926091278140689305064908741727754884287708262904569782549761369982657354233553227003992066244269521816549711764049468763093406446658924602977722058388604420770675725037626384246756094142238411768173967182332177335218878427413812567763997943865734127673925154394839085072049475189178811647433628542956869540849874202920903599739747040103136198331900521845985247902260808394488475922989878873847426889211771117986999483381158712625067948715979784905414524889797892222899904796416151405446414988995446362077789548144112992998494417032658303796165624697203844828801165025827764671023866263783243195755357747877884363912330692630155472728575751708799962685588882096283391825164679488754102222416624320118140151812240777832059949928800097473341435432096775263588504095442454257119345107909820744083165958017945968809111828493699169475225394927129037180527445022869071340716911581445508013905184996932060329413706558010473590555686211658609467441843616748692947265628446684253523337047106774809671835985227686021218954551171120074730860025857574873543948768731344397207111614604009392457718149526352830523428672416871475950143977052832774810785644883361251314118876893551214556995330787199052246849820864171880543155551229312082457307853328531132664134813951308958388419959752418152948265954472509387837989896149990282523579161682827511257623390647719508466201985262489197803034891853092120861053830512467605722689764908921797281299251233163297041060495104020268278841795409570426460428426898313415878176185574312698523774803562015116378589996331181784000983522679632306620225057121430882014441494272434935479988395627628589514464970630846819766982975522131940308128930381503571897848078184059587875993083428432959024882802301628778298360518584880735703092243172573900516189153935920218950925888459213689187557633381549353794594964119212569226965221420243028662640444371553303901592589781942606957017776591814357604834162600330338874246658245397563351990416437660136434896187690263858688459755201261647390178785972379902553823492440432427729805923477549135286967144267297388654999895842227539813280200607595770898933430531196243445050723153793557709348363072489717323054192505977277844560853089102177200787667216323384932761335636247674835723822387219623431321703612070679679974788276584550341901275686620520770183237579905905479411096642321621458960916798403905435327511950526312548597139635427141093264990538678141692868487901621403828112804439994680777561597995531332263382039823778298424715700245249074364020692026293889195228526148865085094978883607365326704776015889258410567993718968468911439339547323312732216946405734997131271600112218714690412513228360120154536158877858384379021108023792397183613753595374430333312839572379698232976848125364429402784332243019640599181729830982404134301900084709009244636311938637191899204751187932754855652865411414185098902020915632782652933792144951554316922066831039622180520829991683315063361189771032008108378428345904806276257997284474566886950156193876601692716541564581096507716214637682448351943973483507255137736195989085132189895966143734317290204583098502594107167151373682506732545933166902685398075040124695185921167063510562222830235488832223278689051609263117649508928572101707277745805234529383399892961788237039981954373478130305021808860838898113348187710189140342593451552048941000214326989881137688241673816159073300034501234364648822392415226431891254204990341346555669771757737470866014197357439243216726459270169258204134535328242132331614896501172597428099274144134998812855394555044520208456639700449635930207547791248148822411301451363751298484337215514541852264418331112224737981601374906018605586677623100404553548332431147902927272104062958529847689400868765412054494494985495261013330043383189257754208117050354787997359486750586716010598420905048893658742104465327451883745854773235763720455755291400800311656722713509868320351294919374894652481078941828792384705341740408723615370347512170441538285688618358248119385477583429137825140401535252819329653097362550756727725121662881079990267908674860338661081733034804056435870341932866749904350982911490185147591370213335022731131110302253127280308897101670965480125814605764364306410016504953984437821554153928162896170315702351637216935905920231138602443083166707137996844067969491886864737530195665700302599021019489952667998531244134077566503957330469041905759931835343590694307275632461222533795428534599601966672359611919799466678217383178224673622039202913523956607333263987929382281658336609238437465460360643432212353552343020927574963061327735230442058258119466369717610470731425053308589096508167108191495924648228823000962785440226933678029075142061581500417021301979918002496290016925624905856743331560773491276025352971749878278302638912377768429449633174373893873243837920080670982016768568298817053420309007911976444884165053856972736957106754710105011105665073492325392997816669608852182061065963697061633534896761331911897263807487878619413671093365472422269456932912634061290463006917934038248616655925285044426764036019124697574840496607154301593853689758122067885327705883411860449588677423902722985265076220050967362986136551343418275621216813589347536601722795647182563214401975775550182471084629728970906562334758436654917382799553851067377641829023833777745551248725946786749768699240963981148759178131429378281632145139401968578628184885588301167982479089472789929232515829725860681367270470602759667515292260851644564614638538245258625480705741716422852535533969217989391829468421140363519168321898089426632495037012262078766310488988033765912026883381546683475142344289358634136442528868446014568263043967734745901035307259617845866449778987764668380525390853457946791557944094005342501274215448312322808533038993460326702718135675075712210380981874989244961595710137110015306051091363903155601799089832049653043435533584929030529128474011472490308918373859383494475675358087974023047787109925121794516855460186115834089691372204880003642325268664491393758876791025880354610816327889736183630396730682884888388769146293149235624996524591271752632392996119280398231798545150239681074065723928766502575336351014740456493681041423804314868889833911905768013070237811823960810509358472731697074242598932008769609739610351119109131926722601967577926713978404997660694978746624170321515421216040228407265459228567261384735648022932220418928357612623808668552341090837972403216474654923679917969168159123117250943115645176627311971665750323200336128983269110910502626996516673146814391573829510913150206176911150270531143937895143250069139748158579755079426191555381843143827553127853967167447243599496728107081866975462741400853661863399700349565706822222475877902913563268139670623651238916491318812293854922370698528366235551159744481440811814130599336654648705470474194207917041738809086533848837592725050877683875258189229075351210324528780351010584110924465308768877786425196274700866769035792219607367906350127703643574235424491943230587406420900476172387400991384709281604036600328914307023766880845327773532064021619013157319958891619213356562169138851323570410455945817079157537903023649619109005694649425559547395387699851399784904195897307875890053344538581079093546007674851618712384215071429945273224008636644259726414257885006904445511462338734334746346205621346948637588359444460395409613983460452336423066551592093052855065650430344701928213013210165842674037438387780021618868591824520251872703153368501847463880115419538507050566276316808970254137319021790335244608573633577678059660245237909524420521213860651481186922486739025589660527575004864460526849147479780975487238321707283741440703542001507855260298733164066821545385729155791246846375227936070964128154757706653049798346685279921457185015547116559580027698365726428527327209646418257992587791223149600712141436912455625966003995312408027827849784951855718863113030326621041320509911041470167420093521178529941961311247468715747760562835155770704070414237247320720352500444984542614515545278975530831670044324006580835617714621463970777346003895031300487910182198373076432525519097652213829980717716429628828159353652268144475467987761526360977554100426418913208082903467227295537311425459392878448160046258476394571893461079770500636944033005666341482470353748144697915452023939466450597809602859755077355553323853575020423594097558939644892916884165330869481976854568511241244688364951913853499690463569918200891274994962943048554488960635992102181551642851171893065899349813079421196766821381179335605309736910342646028349135052353216655215074073581638360921243421325735564516337331443857885195035175382482944474493248019041581583641922752084404328057280058305597763872430168330190733310681553167542731790329414098653580433625000953332482454708511091600328772868381786423152333424562400782147231016432150898907832259443372144666819748282728791749963098144368222884857227176358046919195943875875232128757415856937084445837260740382476670878045669377389349548383261877685081828869092095018854263138124994694044767060630258194825102279215259029635883323575320451487026063950338913250285851662951210160452168461705327227734348481906676406321108065221467464676103004790913614609711000779156621220104425221427577072843926265673310781769660649917296521843923295776196307520354602635158656015420657151124408748217744381216888322668180692199411207424371102988066311239016750223363129590431300887886079912737097262811034182807313546385581109097593464861961275461827486758693822827714402842944997362542773153026284691678031456200064951057124275143471448699419898137417105168183188638053922851069904639744467126109817749941624908101558111287095787354450872360166433885715687885738338998408553777137339037657847569695039519990357203127226407855118599432630907160251941184179562306692706195158771954561538935900421222018968219801961089890556922017642169932477726238889100032263368594904319786528458342381675188135861962570098277899840239040202161010222242564626335803104445830343066731070794916032739477800173461061008088094869888829432792633073891672547279398079698249793520607459638566397445657996490184943784370881455721120461885472691915112831341077106200375762665357872138801482826697547190155840789377819924601608609895341961539644072259294765857846393550982387731903409183131726212607063880944641961778441597924134724783800451017196338243626989342345738102034839359484094592565740499478048818712331538148673267222338718493028376225625617421049072459256335464960264886819532514975970978690087552866537766581126144411343875297102298090489903467360832676408900989231217094829954740369548346448778824536851467166860193966735883517223010201802827227442643211380996221104919174807044211719563310968213556756389077527772630854848974169405553746191657150692925610275852941682759604875875929399859249958570759746951273625125283660395633301882315194884273032997174264085541001502791713933155499176706858959142865864129268251792700009320312526970365007140016500925684747998128280402450928963362758809358803939640279465999350689293061381683162298608831957882519453672148631188975229565289568646991419032612310198500213183941117446881893142604929165492277965822317505266311637927239383563403593353029319977735957597279515509379120675819886532159667456756967970453928471009255409634132797136805743606209832490548870273333974042313000348581214524598256426894213859394630830969615673757142721139510857017827185016795479590670829757977657985639587519458238924958021523296636624622187949012687197061815186566241112807617271557704736932623401840985698121081600980757046766326546032874632764639201486411912815272590249642628579153310514309386108695707187096545355180617590685398074198920474988538906804689818284514662065549963445242848654793236020148864825757192045879670822534367467292885765595609341632760938903720555552897268562036674255214861532928776103260117187275224823199537722705586066257285239075183641238749083603343359133204978434517040658242533480429289757168454389885749572255166888902292428314289967063893862066738719173230342233926282011940726458529227324123031857544258770002322670290351124896087901330229247272012982458362707941882668529584358957096473828537338964081086132724124485444465962649655017038550007950106435533833354511139683752180206509314219847267164272112354062452004174544221014829756998065966423142959095813405024343890177717516361992989213025374074491105970919676394163549305159718949929885739959928946044688631206331718611594273354551154245644001659958358367229009765927641965455835053434886028503983765322571830626463781118639751843488321748075188638102633625325592343195445859167100278425901007055663923598221981445365828215063006614582258389282164541743644262229581865350139094729811375377116913866237149019443428722949553842691338419050043487987203599317749695624065020159238714367729859838432175385643854093112783355168368887532378568860446184468565989885587198303802891418802619252710094792843113181719690407389854741930493274747906441734985776160516878657571490036355022657038617833197884669629985432757245303851802934471407745048833617740838308016062389877156468488610710771695173861175287924734335551339787497895382450195861218633199034959132121913109021362959980877930685443677654401016880037365048693868562237613920129507078653922623485146237125387571899899234265801466849982897431992266751674632158816173222451300650301479789964304286384187907593904176495203873208849139223660443705451062418986378710731620784768139965324647957218792806709482100938657898155924078417566551687273435791975841742128590387130909290579212967572291401711346578531863097734729242068097144059221379683316251673650285381188275955587949253727776143671343613230597029095580442561545227601711474217395130145538294723774422474426213940820022607900660810167675451994565545244098078643772307224469691654443514170604917432191497539703026508959819329653212363044280218816774929725377499216543904824684706721926069346331696066579299443363563145360010906169276156516026792920757039107551279083597504908748689450710356447018433284134841090921822488869355383748346188477815101488522386740682064532431048213936242693215109726950991732774350147957414588509695780296793204395073925028034782286148320650250985841176408960995381600994355327045794745069873998287148975831857854998097583565565128121143049311636745174110412835640525548209822592083493956899982326680563952803301598947502111097215414254587414918015531839780434412701514929091178371131328208336120349727401798504546824977397125334902973446206375595835019393207108089271486881203329726009841412588264224607757727109853944864671867653480765424529944324361341730048635407572343921048968036027861345667134915799687284490268894232979765306599241931918905315193603526011876863038301345245683275371213783537422854440349859556140527899706502934634925654747721432861055765389897501998938050692435230430496081518760425651179317194461379629759652176276208104592653122580523840580664495943422261383267639484973682988136682971833938668242261928662667514314740763744381068316480291642620817874742312952661157110984143692981046549538600900723336870877626528291161798908466310361092921013483555548179379915080779770097901698105891268967244295362177601266352303161715423050371016995765171370419970181835033108721163823275275203687033899402303505617432519263621763063915333646874277830097004414730390221629390438176889593516167590716588380047599487089919812007404339051173188913233572912437328748475970267892038832531295013260805337836177928685779846706526321804426575642804308401588269741354092473904874504877209466810297646598003691101479945027624071529429661502108181123529822546451260757177448676331115027297268513139950095792120857573367421780065819567791641766223620329091424037262442585871980744058534287556276761882540100480090424926356176962682809038558399700957636068151974617451909484577166362797821737173814865361419185160359545065758977868743429441338221699241995940165368188781901430518479357404815972937380188642678503181187840270668452909248898901634818035308826581841550004329782361749858023044031028014029324109082183566905995606513261457315169612230048766539861220050061826285972773171291595352675044727819966287037651369693022837355647567107028147584614188866944450551258949375936954301207495658671369900528454372430105635051968040746723474333492362951150115835301635784903376817052819831151137785312028541863110442185763100425331266903060528613355399856068822622021962935018560432046128582151519453836609102448607704400170050580858553752362184714906075235201957006759978718524838425805270391390867725793985263694548356852135759089879324987293669142588348743333985755541852604636355714591266835708842471550189704961057188002425804603706967513639372491309106751664547260270396852870050936279220097948668135679466663648079703170847029646103606151343263645228740701683363315507576480737213603623869657661452789378890608127392918497724318702797003891154812357772319763988386240425533038621958838629532814816356480846975699495089025083008884354808558806853600618218922956027281731493017053707925504518662357307395327812955315866836350454248768410521949321139543135093093241547499600711832316429067634187778808392235235490245776501833592781110245871138777600513915649768248281419622362373841658679434718589008097926367985957846004734009320678097317850995842663341483784117037352958256186576227550889422884513638944429562058882819166269365312054758005234345660295785956193614730845800543857571639395790390736666703273569959353911694497280266579106514309237896498403060159367752260030200336498267657318017802789733387211512064486205097030376886063203666517813459635392707326313004914133537384426112117479171891082208142295030947891748839339858958637652031790040708764839930644361324202399623195242574579248555147226917662307331431905270236618924765873218979212372897300507480506033572870409570092966031761065742359877829776069162674661028696387241485907490301069117478623884662523139286710540813444168611833043574074582121320553205949578597961699116734773334508648314835336769617191531223514624096157717012124603274423935046526587636065892352607595367536358790042009791182581632308067836872052792933316774077666697051308827264471292574519618937211192281560212844670210025495482101785677137138725023370754821439314189556812735831457473686529363483090241456210116053854900790731462714106180975670453930333178241098686760884986067749339664093357496322964367707140803239409202604955299949778087410417548087856565473404653160407403348217757549637384538023161463796803971407486309601396270900365074745886866587648047499270890755123181146844174042525307686221086445202204320832761726650246226094739467749266577223796535055401257537653779874480318534558240648682722642588346422527995749812662988890552315691535637850313906887545168623704053253244871232530485721966784201873630168794932231503939281752254475359247803509995920432946543915038187746241427073050353616409215807619395533646119398120614145564781217208313295386176700568681278739102648776704906621918219869685710057999127456522249159913521686612753037292306368679907436563533113846725257223690552975630331060980383708535037198131246324963966045642865652099774208442264639925627912883644585664396523251816238978182335587825488551977028811132488177765817310550454851775888891681109525377071010256259095692105598321636537865088160845977368119076176092608561831236823117154414297499454831565015270594529906425563043971463143045728762749259668381301893331091190346607041620543914452860675541708573830582921741206962030152411917200901193148357074970109286503062709125108629739071461123879227158781293508650882363965024934839470543418790595646016240125774224994261276604534926276166447044540249221655329513181316438669035020890644149830496515658994673619129565169052392128216801449173563840358675389330587590295703204882164536334750904766805974824132731990862008544478241924884149560727900527729756949997305645875335076963480957129548487261292474614189143533884273264001254792488620514199664173124874638812694560720280984498395102172496894757232451558878587067126079731012555256048517592827644952373575121037510782095480433273508005183143821052148113633383722683642822750279697279777428062183086854218542882829678865259706611719602555940961438494937369136479798597437217450643439368782774461443575935167910834815966548515385476879939406899553395130529619404117972889358531234384829137626535804257477123063292995443109856448714756138512553218474086180698688912961344470056365988776897349980952661192266300659487923852602791621625110172754296229206339554778051072810101658416129774637333751845881945234849069874615352841845763167480599795390831180865068457397098898227111158638904539970032926186384639569576707051392698197914997727461819242370612733486971688215421208904004860908083891487858817697531003875489074819763314697371162606873395441006699032701909096732045930216808333580550192123565295096818790524243687472241264372703144586339348714652339800957087486610793153788751786669662273529667628297477887937473991880008961315021962808754269790772896752540651004320315168194749192949151863263503759628619278644265601106455856241337229236636929988651231594235039138022664945342294995779885636810473346593958098767443488544286715057954008694309977968545985722509352557912570297439150193307908842452548902432353297797042083291392967841515338951225905310787100315486253039614865649840325288074464020233141333698319893074258794873766449307134697808146181304297870449948791175044481939109503080507433868732557752904902834709366249680820848447523521810494198351971279588253885599039210567310520253744473097659252729199616118895160741158280446326515812868624317391289264678533945614974167148631593000215636187957460574751767934557412540813803797247284057500784920200722601244199675269248288529299234161241389529926010919243306378941054308463852056489000781401068880552188981988790989034513292667615822428947886809017417726875675438107573545192600086000528853672334414021410650686197805189877277164868509058449229667607342300639582642148089066278810072875695352521677941377635450884346642879432110301608541194774744448428225343272554001012526687402796235797019968818836476613490180359088693804797853845802138175265981412188956685863851156063526372484894991602817603676882112025034259891109632576920632192464633398444858420373115223527398676647991253167010090921094958500563809833046474123288706047717900526831879159472756232430298361199210768516644271885749273553479274795095849705090173008065423078422982541011483820611621770922749166012747537225660758974899202106321813503262494292861901079849818035665745399554860497383232703073710998503230650222038724712837914596561720875945573012581366303829971934429933526264893078861109352726611182493092156788706843062704108317977551304998177945190068541270333254968893614517439404330389569836765026571203400215847827530502424712384389073995940783691072052557751059704725292505095502830406646467510589348410437136102801989409967715854320935618473355948908917602281474424062733848937847203015138803903601831815806863578905160055775891604533890127380193952934239244703210210546086454566606113110864369394991417995020730600284582095379522453292938912870311154754596358787054507805660750444413715158813714756152804183885035165960269262514326946314404647048851674427307643140287071856404708742344742090536331550154166032799101723671592626998830415083593518720300257388250089658459076505487510015148031340962112027459438200530879850355669642046465613082730555273236283191053840884880124800531751110780017220320646389508212352378968729836802897486003301476313527791310145959457972633417861187424384334497563203710615031819966789230447032902546931014622970016225546570551740055209943355634807856222630487613795303846340889767127315969364697155762630185373883378907646004120914692985931091883620913213013207701417018701558047070251605111289549318433301854413614969172220095882931369263948679498701171136656956544535449506042881861712035442012862529064839448372232288640236715531415944515144925309925756928284354120721270485815457585677824783903572054856993914465887264766179396637001248780119005392576935071699126155396687180008627717902030748070836182655315088715370643414544373470015499820414353134248922399051863093669662568244388065496901313114717651342029990752180731653796415746179333088821286281817062365952657162930306187694653849626010735826953862139288228601108434338977605800504312026950092870838790995849147213702987307769045688287718711373771009290690650182700377852203856794800110443740481395725795131134037242173782259624184171109846290609019214859934878233852761312634680969036508615822035727983802008186855949298993493842165173126190582629364423369937781840979822988614427367197668388483183333219257185819207293398925764570521208206156479700674732212665390077321173974080432407414205620083944150343101407908074693571183294218558399294405107100390503418621971301494041704916688585111375667621311018711457955069987399767013832553754786308523843572161727330892781918683032258320032581667440615507333311102668716661505250081067014089109867582707729984552266299681413258306970050699863381981895827830033520934032253876843564225691721433277842182367739722388320880463586167578638229511037195364988970843440402585496557955885787086603294207822785630361221925384154613396448458930395656762883382591690249924470635706492972140784674365127021933176288336724817357095485677421456443267958824872466195114629646105998194330897451120315658984582561880774920919196580289848142917666426842660188980750543233819127979333134550171294132686876314685904728279358329300439678553165607873550184329659069096792443162529692740291015703445805774756603124810252396371928243732816511228246736317345647690941463836221069453650834705742285619761637987264810971140730573291451918952307253210223287038126890339153528948113465601012054526009535660410006239772351128085827242847350151333450808069312595652650957280165192314070910993039850073409811684829897082257130541649561600578625703407229739305221800919998571042061172296352673871185229607863424216961053590923809632373262518443902202600691454595269726157779120704052277857615719020708276641060085515344487623707441910184230810463531039246965933396411599451094783662524141902481118601507048316127887951483227526989256666781827136231340741630001718924376832646916152628445468303500208910385964004496554610976503661621660999298991223074942015084146038270437870305096884148449406041963143449582267298270020586599692665574794551987158173223353220948668076397040608476656839024165651673673705261113442424511772100720357869349663575345879737164500817495240247387137536684238192045504825583385169210308534346714375312032775388518508566165197749025173118747952514093009729421455668169843448853038524948608732727654159660178095392289807509247579564594426038122103136618783585445990287337316877240819404632354409781130063018846641206761896985453139071189362347894120892342914990771543764612987030143376710607995272748935070945660646823166212611572608966756064581360855611140558119977540837970255300645757928370473372197093967385905991492806035268303869672994062123868010403963703601121583465846058305001471790682574828046180364986615424095566483814323537402683152765815302721459549480977976697884224693933170192318172251205227641411198220866672366121853227978588575953454813541077519025494353163295107246563798795482691684719061617164105746341699239967554516450096055977359236457733505738523020136391636994188464218844438870106658986436852928701141441247517509809997012661568581935104966972053099247051154352113418641721723688518862701245862943943606443158387231368543084140104687618349629876624400865074784946672188913177508635808799537759854410536689421467138181929343597076310833205087677339764705010766738659286619024167973114242664236062920677881592596555450960530086956618039513849063291160867963462030539934419572882663333212853638219786208803661705868709945618946559684467870634352565229440689524400842001238801028383163263135899077971337857280462733754699855770313353189176326517785845990244379514052635751547112772592118203204051063362820745111852937755287582875403213375955038880446809682178215880434968026686043276333182297116512131545807362594848788524203491011045103198448285680868229656738880266683108306783109212891850777559391305545632629924376110655576897938350636719791070285159289687390454128093546254004949009838158964961440284508244752718858888259587697141740608190963483150831812858451277204466231990636888757902690888065716870336206008615895535699564839151711672982667979874156808625572241273843451176970938314600950305780314909579642340180885896992912981111952334969341884818474341498411098258639932849735910627664397995021005773888552910293246052263825136236957330672230357919774037546345621334371999113061442727602938166051380448986955297651295412262753934818409104441888012878199526205362184601678211828225502865439046446782902419685214363208309679364682143235696200180087237599180123880857121547078851128578771837463936393547571388198614235643364199908169100312265844958313797494872009725265297599145222564201784218636526363820639380867950385504172991940223085369303997815121953127242987529648003188843771233959257501032761970944809461855315639406731317229051614597015539692184769614457181922376344796159294974333092919261887175949580128492006555358264370860157160971196360823758010820030492570329015460428055333317726320687437223923420038465225113436155402731553956676115526380384558793631321162265533238350827655577436639957238524257712799617061012393955897085256540596965707312542259241246965574128932254827075764088901767479500903278698629970355653397040981002099738664789568363183111004978273990498326144409471224998171500686005354870684433679880052412543600317233100495126139553104139418841353795952914026129191540175972574258000100407467499017067283389379282814913820093056044867006548054523042411074435584584942407515731183818277211052119587069943233924851566462669854034202941303383076445447228889980104541194400393552401654459855145405681568227428689561009080776611320938234917063538013760624919576227457162817477364325981900214150631601796899450890635352361627227278480737337030322390141001283761056246074012112881431451168245010183983684764117721895619989617682890025427301450329693004728478074845156339408543785985641926037606672837373556531819615835334147502548118669282389440961542158344170667345749856572267567952319321082597725239907778460057666854268803780157450552164481720951838297720080225861656003058063753060626297588695434950844713421655521532433002005718474316157977107017044210299981213834097136378549145347686230794396163202057736911814438774188236511830568601848065599485606418147354095411631436582879821148759391816577393335553328417745659625260301899644454046218286759866710384777693153505702775347203210727092887112582431774131565238684418604399449876872787916951375156280515642142119081419445016860804301062252127732863174203551911786414246575604379009531927715477733654398150609190878059362700078190897307679760549961464184886946322272053689231870265273229863424401994157020864369600661506657113706780679060824723542971791594802937450079023899726765972029847255505202767068074504828690425128959616286020234443014053947422734072664378155872759093653566669277395395077540804638575744621234651111339929422895493242917452165326412158943907676333424219229675176701686783025835689906743743969600727044555717581820041939510215869336378302953617833610237063815121454107771214653124695342321515811134626833650440739624896298804799548504384801119651849660978064025205003589838934532294709672046905915445328096703609750240611666549044802279043723793874933301349272570064063467809412651714365361887654137311508259476653653988021302147387479387436657267914168142079718005250157751991970779370672776695708369615725552540139953771658688183247862914389681958202125564504220988089179870727199308393440381303753679493345520440711265306956241187851717895906169175696550512342123308318563470081387632274706607652713194895349703762836388157920817690885917936829191553027958052058518453870848796490060757832278427533604581461377534841822351994528338176086405532932188758614163774591610754846822909857139641868083801097013089110473381793674475894857463451396429758747404739740316051636810251373474096745897733314911003608220102634523958019009269455234698788724474884964963819240269251659193988038326178308950951865312328812960250241693696943161285406697400242026958944751101921856550893333828183088084032932932369779343786367919548386472759357012699352748420427117722868096479693604902906576906789074260706623921852183724489520039601252795810778486874502524691037884576563753230863576291932215300295035461839462537879782631086045557672168247520988319330534798577151029451827270643095115416833388512008951618055618191108899770679557702630858260094757687950604852684037879331076642607263741608157461348528022573078960892484042955203104065244063910902839532534072634227619919330736791940783194581681728522876635244164226320051301369065971072828556370276576649044572708441586799143308765287888575776510365487454428126477962475254498430457608304789691979595162923990916632574702465208267294455072909992016145923413637800949926004650821824306590809363258057888888778463723397613035135846914351580549394568143012147031808889044295770064914390038879978915553270772370473247826178360034086876240782076676495844077100414208218576210195891200906237546677760552502853561488965012516476759648060329329277063164417842029560024772829035980545797646929314548785186851633440096208710619075244152725419539973745065343187027703095653370025072126728550750742814450435758521704126110097897307712138866308934846162414864806460003910993218218985109502885040455944417391072782254476614968217163706867950812342618031422335703315379302310322360392428768396326812775076135543294860462633403023469961112864233361327541067954544003912450804734342796755332869927625262656521516685604139056270228087686244953482014942923197960647313397620650597090235837457942400902525164009299168700990120271991527439046095181835710232166217665461240538015055307391452302916333153260771399688160748885163614453423490215411730919905750202908232609409239097826118791489264081442341027468157298450904423288419990866790607440313025735851820064654224790960200580538878023260786931597556730138615066535993580073584023178581801449825827727304338151250382046897488992060679159165777009951332639311064675509585549275490517650836517485954242886392584479956315962816607264763814823703503587816157729750731682108857814440957976374500657853317603142910022864397376070191426720340588611464199673161995732584016503652651607139559158202813640015646741985572425119314059758347165095762314893520440768233846543842061761194130935221438191545172254188356902768696513833741165156846518866894252793812679652532150781342823915302552889444595983336172873138086722002822230486794264157625950976649174368836314348813255030184955103572679737926895550365928676033657945018615263292884416918748771821660065450679851222306363475238763298571043806294602137868704007953673326918359945918542302719569830578680892822766206670421320308714644193959717487806857590376548518166703639286378856027518129970320176444009309855378850182773768990087250870470646449286518548931730829527484345559087232359800441392050830291861232890252959231456541937415605029518238211161928276501072377509247338348486187309633718557242908043797360047669378151747326703270095040412111374165844046869152886803333957289986760314326166444559820187053006360748594951209546521934286772950119249073446603962992928412043817313797440156881354911463748297549704455851939348655593853117538294050398537782409622751057069896050439159199331589316639337466016749032854284718680696474995835682086730729577918771559979821306404768981566823022264652250957975736691357953687290656833418745593932175903718316259895099886039805229607293764176811921366525236379802534381414481344918678001891124781281370086045789033264529342249396055767366069287539153941587238514692923240515729342251916385637510107575443621981410164088979210319912423017089249666202654492707622726010361301897033699924949185118198259624615746434548378478377523005917827527403910708178228051712921347830971481594702216065585231170676600150743853026560778804913198059071743462560479880862062582282613827561440788042617958425352488731060737454226487543438693126595682059463829596235493879294928984209862042689430210134657948718686466357836154121938178357001088195916067330047330435140145633981446061397533901020890238217682379257536901012898212621776671792020938999560141788918969563683432384731949270202442511879493025077466849051655740605081683908913774327775493522305234282579395357871921949589187593161684245055186456791585372922307873494774639221367026497133119176766040078753596222803461551168152395851045196103953209218161571253511607526806587630217103731807814627163734372377946031994830009046048108761363499841623849120277122207405122537960779449610718790746997527384854776135050026438261826853188236733501064492031320954529289945155079212108798767620796597921419253715401271767260925236742551140020671692869708476859973804555174553380239090185207616866997581421637460997683685319192582281866277843203627375774608319066578138325751853964553113649463182465690708089819539229249387877319816127955668517967163245022556466025558933847871610178403156429984426444289968546484371623144967717890439713366314165614527590535969567568797938169533351145867205479556088223471756599232367270134561746271229010489223889196700988895437243567730187911093082576491462444889075535358795423845538740664443828745132084658926429057818406926545928136864433544377938359291175125698688930568733597423586898795834009891896899416242970552094234291461191391518615154319007462750829071752992108466880015768114597341477755458464431643810901168091177454371639131812614601619284700496091595025157035946879427580154293658579855043617579000382151502916387689875846442987398126304720040728250273318398504267802225963298387625163700598842404738911209526432752480444871555747670979131402614073252199372305416966571389817691439452953239318711090034392323004782603994210695865802955397202479582192201543128136631119075521603308772472051494441952089984935892505849286169083260680060888573417196729749387590427588169993184992984189119375506412069842047066934485065507999362112852870515185413490751441371240921008049644699674387085476026560525549778078380840192969340430872322296633236657488086703807826271567713611436135939986562156365312618264915001877363668587264001965316350257720544122698337661141753346306830746464147024018180173017754535338226367219480336097717741569022031005246518031165607861853801965055074962007485690365695017162650070929527711497722674402121489397616799528336963816391325414035082565995037395488389161605772233338385143579062855782229006395947651487983227021323771912244594359771297967905415672072445398029058031777892377045629157382054724451386894271208796727963736745482476363849099935624328004357368595501010888689604040949985245017584044755551586457012226191439807250881509466446164497442395431435190436130726910912855637886637226797367067827269003008444623307305732892526971054487221446446158389972228729793312421701553931748504817105876798444699148815634757288240741586482394186134162221823671359574693803552230158436841675139654124982770992576152788742038255075388069033905039361117986047458514215236698203814213150036015903031199643186863286259812104327802868867688735650357903722810328978819310499971092020185728583592377375265227310742640948410075810891339654274659531054871288733840133623269917075331168763434710802384543937130966060669851813461509465009611894292310169028393392591687994219376057787074425911092948580370302041123922968595041126230119575910666025518772165072716207143812310216077961806680351043215560656330430981863820952818363244827511573433451179560291390566622179085168048650108306760014897874952639949379554442172174575558556464262695395233560822695189666237766605563004707441106757537327542896396918196417186109536826937191912064373424130762187187888086050159048985983071315478332133339981728982363853068251756821822222867896720617778048398252652638925484830929005986496405706332192790532737504669777123508401852563978711087879988664719794978542722923036013178648970240600256355549832167903422626246691095126417129389281060976001003032342876310157986873420064017495294615749034373047773978180468717318982366345221625053970869060453515496521878058086039571733306339964257852159610288848823180500286427966048602398772296523845474793104752802384551373634991385721530632293660138781883392081031165440067951593133831251441227116739554861024049700725515841300239023454498633358433038453596676613290115435554442742806663134750488807781437087848953179466153991721393176150888413963436681433990298181405524814487917768456210523057797617707303976467566041449311686716885999125379144736073355903931306065661383090132544914505843876686898133114520208731395902040127071416696694016181623347587823043550836660184313372087094312823988524050383547725616728198567108772443323467897795868366771388019842718025544008536106985128721639501176973075210535652237540033699082963040588135597332172784518328083583907146801315534259502731193358688158878995622856407107718398028486234494205189633793029365039347367483507193592934932387415528722264919294745287506398183884388900220312452159737842508858274052772683065226495644935211992124751011165638452566338098128463840812241955600769921714861298339182826498767956897233885005635018759773608604417915722943161547069096165072335846445824708697311216227146120390219258866423633863752490020521008991332924018422285064100420534495085482203943230278954935387273775110336212078720445482910124484492343714928766079945136362438739395948542777336927931308311817982505511870627251919183786122330133856425337564429605475037938915359921461315037581242496711295391848102096165084536103039463506614994599878335392202697055525137704372417516879944976887539712517812584965660061546431828906894863784813057285337207503120523634939967522484523922062370474072644324595608834898235672778421173731434478781145843741254997556945972705863697555534765724714479037745016010386661494944363299257016446673630092731978514650860943094156520792162336997784104715074351619650314447280931246938149917510715920541751717790534020227843389335510628887435464046908263821108024945695687497023492184130848370326622284804757518488622519831130554576392734602913859573435347461057525228170856224489001470988737155477329959161423884682183221013526291930939525846662484430685746987564921971451092620782187673591256664003465794633211598034973872028762085556235318437046549717539299126389308367805476870187861267121643284717273022704507211027462696546406135964439678109445967612870040123204527975964352887589887478396367163128624698715593740033980975356459578233817274589929803574153045459197228369407285477499462702850485047439127364954209483265318442171033777854449674127028832895083305635063479619593866768844028495815317103754618585837759671794750818627674511829990724520507556974740187487463241830918585991075781671583857032090981787559479941888996607319822519597162562088237391178676972085612780175105727526026867835766112994776417938552284223475314909154444678640299294431109604913293629539582557366054733237159313950445254506788270356319689308458636296088524694966381503023699085541365849277106095628831006558078551666120763510902917833313236705077676907547408344936005081433109417779383057187657250785670182519915883016984328761010593044943770505717838227145124951696414330732911531969345829253779413956842472115305033863781301470917636449468831684469969577056637175009471606832487253861075304208914356935117592619529653210588832936019202408802458617516224130191733235252880281038169030073620284167946960234020751150909101590489595860498894381270263392573810132275241903730656953813634073419442910617722486475125022856429772493329807787961710316103518640461843016817074842039318093449037447867570749064314373770679591320312619059438932230651178723384241503658540537236494122917441100402975556541722337812943154999758319606335304593056885780722268075194405339591670789308218549021937457599957585598331856934272098877083347664864554178943813933489459921222822372773016666186305154842053051681865064728828252321546425870381036564349862110710030100820300315084916751444845731244273476946236786955907768718392743858395557367869720330614784749563459879687033513610631530285483493316257989842773219378380969511254650682486253578011321053762855605099237917554933001192539021339647061817607752753720473092190633438846116002817829748800213898283180495605543057081053223208753202560908091268245635364400066583197037640861171584031085151896717645481120105237970979967398534208621100731876246791737011853100490033140999334703794651477857118467152220650131211526734413679705090641436059949918722675956632846134982780531390178246733711847940126050553191536729757752791020759111375560226602965256808116311183644333896618347633794377369644808619253865226605016440283290142627519521195914455457888960651736978239179201746966449332734480124985799083802080009025254717148859325143281857689964411564153355506031180628754267023435859029050706631923403684583417322330060638013236846231429064738969845452630106435973436436001214722232905812280228780589165052497722227467598052020317179279799186209687811330234615216242010044620782975678087816572434899437681427051082827839988651602291720326563717497379464981591086534030199729982709018922463998214655291085232198018214497980507561520562907449831864829494033742568981784103827105403899464737359085972817571978324280194621043005882366122322229405798455386365669222535002331711616325361864413195148225110570680205068953360005529418656874715070885778170150043865941183605920297154207683740442949014380029452284808359777516046925047108238632043534859748969784968797441499216575262927587048448521406581466633947122208119293618360903075955203390032688394796924293335367029740449628574626763627851529888351022641364179856948831963795687128998927764599778723851430383401123202967308638136413007783971403841623704480667324453570950829889769763646760973610964089072446777383065473175245464294399737237490842543461268555761102105061974897948178619397729932521916298967575544734728568918852210172695836374340841457996562539620461843486591890902416565606423088680994301644410875528893739166239292997280791618899411048420052051135758730272989390686812739641588749023476551149402344426071583721739312013914219890356573890319554943334689203640350605730274785111137594839267045724798883956141225800560142744788778644133476656371498529454657287291343994388777219601310547965190316511682934088936264819414973946760546938433014205894183657859950001479698088520065520809899163747539780206403042142594727474909235251959674615304165398238888053402566783873350391716797696481680948156792000926196122535625446686581620721127699735297463412953795654557935820919886848584409826733684331765091289911911526069577749522382531595326574171478210623677520331846826027073347309758968250292877579002012284453455515409896438362972671532994787072729334223343584131748252972043458365700457781172769182551918741642578380313059153678315957643060781541693642993850904188870214988934948865992494689633734760457505437648915508312723878764899513483974025091538926951207943285769999315592927887820993908507494958015723324355102772973119417858760440540100568846652405436448663101835772724815665641550267399769543013253584184218024834884754903054645147368872745301235704954607522038065350672785994303756506233972867085479818492616677393292036244482525730159710282527451239910030100132012779674785372494720338606751616357801430431537484422309640829803926572417013353579725955052696442384413529906667768680534942179499772278783415927207075612305859097340477669031087862618640516729505812939213556880622292906402384534955171993414176065434705663333952468832980168928863754983872113913052414486650151897857213358873261574734653345715146753171008036298899003374286656563199276424552555388806773089872629305700031552416592392815718335510157618213497371636494927272758967543966288165668542859683588749132425790492803594289342559077857244955473339206793829246542432399262869274463375912555235727349032885980648580417519979467456521010419302499245081141733138342518236187950449722477647013100018960782169232990351087351106400730401809298729166800960826248842376786688141654730474683326035992222590342359772528750463282595345195450202132131218367388161405952562408589147984201167814359146995497914788008205778901697372586590098919862831094224959612182945237248208866942133549347576417217574450838792626142038169291257757423480364228291899887655157858692556281611172317248034160431253806500280273550485520985008973952546390640809097912861628244871809076250403938147049860516745205517620400729687374403041999109343157007548523437268766359414062203637060675107569769564188994579832244116969050631899058774645746743551471806825786161668840572086812453416414661083881040867844588886565140032274705516369060915549582041471030944692922565781599300350371945087249545741205691395536250581501473861350667471037133713128131266518747806649666279542498443437444565295642980314392177674236730848494819060459827405860948151104440349314438797213640957145878728906384407744025422492297241859477342799955653031363190908744017911061387154388877391509436160946652681667305938140769210395022621027660734895067912708665100064309892517333659913791937547439179812058188454530623004882439962973118793375194335819991045860477829755735172347476920137225798931372623390716168580951980079395761924349354370245640156527810863468122804855528992320462177587153338221155065770406260924174619561343446014487373091437300294679885694961807193931298136484310455022037828656451421143846158640567762828212822427481325697294731108106732212066866825355367217138723598676919337980837336621916916833775287411256386724424876574126311154641414493691804173841587966231587309354456972113043071860227444905612465555144884246248925184684050999184369890040567791221340097022225507308294494784156587302593516128006604208223183040718771836603121133037794435142865859320122369861225217017064700951422380410531705330143203309186180895706122831990996874193552058680568451715668298451183267221638967334946123920399106888732278331722286268324140192865062919062930944715936793165789090224499462117053463819529724206274616651356558501851256880224482796653011787183431361439880092412830711305653610666285359809915235424546402364596792813631403472431832781493897137381921342592697564470797773123214397628020502054865086951986061852548601416783152330096012508208363043533967029952558031186962167356463786471906322755897498022535355768285420781795697141819808357650914756360778487689043424417906489188559897332876861775082185172057552366024906105469005477581630591529860470212064838082574001810093219657989706265481626769648101892983450540618750209059004807511671711357654428628757694317206018071003460614778682651904611335200599521592259795516903276789838657769022486778821119468167213422501905500662541710364571277224430623664131180548287946405042591760969879086781556457478899239886995878870316579650740715921552632659177257746410743722721792778692409135329994274309586665702872510176677008799414255741405152710937743497682562605430963260099771101131569566846847383172018275756962279893956787760686784530454051583773517164873948347375835777355593025859975744549085004133174190915570839771404264583589897179000637744145590552781466610869593240467487974838585633257284373098281200118424278143223580509767845110948960830740390354495570585541755759362922147480454037962915527991113340732909783418667019143627517317579010427889451842079895650585766402169800019607571418532584182806560469281822021518832952269621430385086826353295470609127604078399254840023332150170471834029090265329377007248950496372762381496086329656228420125476413700079292330837898700045577684868151667261522496695897179127661547343818155564963783002475209327096663624576281258772382011847147162773275865168250930060471956071423616872663881797826505268572283140512017466303789772089394945969483488987589768797571204387621959980659118452710811962579203393250563772606712352066004843657931560557179441806328961655549818485360104411562327836863599008920432137878119423550426220347584299031255943331679800873573886894370405611867189421891367665153643530274517468235599726156101962769975075753937529606343517128591075915477834593620520851769692875493094719626682835277726096360622653208081342508030519979196333138771465320301507416533562000649796772070774254121087760579475944507878208224932286041955760356812800683163789239112275835836747403348745406130698000187332865783212527191550414154173213264627454684268721363681091290717797629830090866198413750816576871220266888011042394860059440259461131754303428670021964149151045957239858975415718287834162870004699120536913665278773745660409066844679302985472708603655185849025684737666622690701041957887672587523434404424456519603007185025942825083048932441068603934681155318761499533878794782088967023545223733659249995723949638392330367247137426477879787247343788307876280377629666614284178679288871251436982839567469054461784168129493146057977876954078933508817705305929626521446912684626421462851206799366372491865186626701456807548946489611597584264350586331290288453610783297698683976026219329729814166154541531313728427133941787024605679944818305362220973737297736038465112135851576794552068411431328988442867509496852813413696040357519992173477726036106073187491339194819389832171270863689149711821772494224312628915404528461638901782815257782923411363024997253123771608735549807212015069129568509743680609943209177838298436664791446370322521491746714556541262143192739305966132769876881776226039871149874356142124511316280315957219523277310704604988473169324406951931156588742780323662558897472423798204650601852442255335610429129763800399758289140821251324971913404699504429199628256851652867518892016893352461764835789651159661032823284003701369398012946601589161734144186070418194559354056220832798519185458396099159129392690530490696616554578010511603494464618890993773365728710275495000529281585407652827906029114742372093758999830399422248663690926237742886370895691459912752089681413998719178662065433682155633856076232282879126416970217255996868588419128900371090659038914703575163924732218548955694004918708167657449501811429757583171170710396254811759915709898373469167733118049151796106982441159356815730123578356013782860280134189855270509012371752248329508106818778083612488240601818964138433434790736377393622949798221140901038011816722155865637106426832860580566481545723139379880061848431030891430740134466563088937774504324119217941127392842521399326594104437044239593011460125757770562515083697647160614735798237229185447364823031301858528084769015374904897038237879813137754057201623173779911841614324366158992201222301449549233407134789949635581861969588195863687941426468797868363318686688695917848389970424559140975625172580594941350841428201293455170558106002306302918674627166761796983902451509895924955397811062616708869689759123239859451953068413556869229540660859198078357039285115506911272672560015332011915223142953768008489315955611143234421751508152540635901204676918415738862081987829812743932471693480370277535103274908763036863421977981075546001584242530806353056590713840221323565476913992264392474275922780345873357862179822421485818144708775819314168105364799763321528970590295400274103504580962262557867838859648323836065968282282059918258694597367479078222487322492454853364865400940970862705694403184159390676410259903548062393516494408888461063721422880666420190606669166587854370403539803820655325952145428444889755464160712451835225139173015849660471752773694974575762851316563753199879623683249672090207017687297594928001344969178860264440308958458387884384006136111059540156408579685018191529894242621103700055410524654544154535846447812381466328576468125178308973293340821320744313860424615548193018289562737355272411821988897514273347654766596976504237549359514473045612192002783688672276306200140186488440279077660633551832069149817569372783204071616570198350809155316706867270164031868249499881296700518566676023326342033662633777720163339531354152523856343340819227572996023194404388765123245089840231211739656861142443963698276768412339714662404958640517063167742853284053908484157339223106116070856026175925685223706499739198179316299197857032416471525081777630935930908389007202627879940779999277643377005947915211755634759258107063205873451955565358800534805100869576907560010643971211789303821348222407159464343865846116195809563328383175592818941331699026329047664249508077947885237381479900423861867160696347545069959139569073218263503178668091683454658931183333026034070076248544321993863618172798115171427267716775713172932374103260076193624304217408768136519455683148613011705003525852339178366667237770234625098387205104821689421929310411213534964826342056969052011542832836020154964177110930939816706093963555083577144586805422786217619434563811769634070845266875174151177093080900002104686689286478178893383717792072807651156054206880187207225440018185343167809538878088690954341035369876172878329796698303662779488653945221626265136189770070925047466507678925463364608092461908929365606329881813355229121003478774070264773386876935264743157694916562922669592001045663546187920139143795408484488635321809026983351986815851216431422371277100495118582337278375842170804442554469763520903366981136617621800907995615815970322640262793037846318267567575114091808574640459131476400011801209938670223728899091894350901800566819893541467655650345033073078478804830160234601214978039525525026525992507144378116041757137789081692371177021295491826050907531802782326464498308771625107009163945908813727648820382091472364052584937836464677864198684862483443318940207094032625397473764392963450339351096220686885925967379373602298729268521325162649928228157899602186326107475633301183682852726015549592659807601483445949839752653709451931418734512448142414682295093975956500379588344754311880002023388564389711319753281267566204943514634343727479886774189855013079172159908765692476953010048967210925328776744811430081282043203717293987259695002332843071328146896486248139538544499636128854005600819356107921890499027785647245302768244530772253029229880259783356512009273484307513654568731043467939404675025355723287499794260994834053098269028682958061324514381123414213952356978141637496985868242109642596778467890793830005050488765607874007493363425839870209731463808627681439148430538882365905803274676283742946600448065913046775984916963791625531497753605089484549587456461466129257788246468099133368884987951401994846312564802462712189296456557070037953613307512883943160968077554238989062319956341260390562322707514002976773801148021459116783731313833213946643443853236998408645356082164686227330888139278905706984893777964960373301116766435230927617233420474910669487053167379577486637403177837036815252673341392673590332161132240380876750484715804052032646915931948200286729518328115495630361750142696624383825702224434076214330077158558536866352742578116307625690745118316796982093096454543288428142995092786766643837294541002268300700732688640989137004215990552552758071114344642780592736463198593685983292044493084442566193859691484739315509713589524830401910566285049967346453175241180574318260673933616983165286254119551714121804698057432225140673456467812071150013869755236026722769230340269362725992924494177633328661625106305730650907398782568386699384415162776116441274273570625553485428147466156726217624193398788976583027617211365479771999453686794815162105128518975485425316392706606619819482046770249305040174827735769595973509467524033256413110348151798294780548093665177405086440403899703206129393015305371261747715585173179808139884945100238935133213195028089041068916778947494805068935939295628767617814310988509500612844804088688823647642731699677273865398164266025949283838812863827663304768749594053727841443134038931702154379826955191650094050410022285443659190012857643843279788758521447863899498147882374353238618727249180581168995693528525433331832657623028904045469531530483433392936598065002519822888612293971656021873010584660294302386463572880450867923680151207521131254478377546598956186251238110693651481747444021533958660881981287382251799094694964555443130654250613210939519645143810035706397332498938354140456842672127526291899332001560267203404363905458212164617491818939119324994072733215675128015815559353523526073712023577607378777481960124316042033534890199294659401496660915207338419866609258351122405202370278284483363464033566007556646362900808314660641515959647613321584322408061625142280486723972813814383038430888013571057921048007123399357174347354068543858297809945229843282427265590100360077690343945561137191958274118132013900968747650162167260552047789318599746339441492727042081426310027760768692195395461799471611479439721694541717267277193244378132431574205579005848576686219199153672883757182724252571917682591491344506717899157655130707464689605237826467216428798476994471710746274218338748212436594443428361001077882883691193656325667208432796994443783917279032795444526783668385238029422959219288786488446606574634795464101055763028628444289990009491762550105982135173035193451927401262905198615340425288332004208651378716948701668489381133667988284225830426695446324320296292902120205662479333432659687459346435097807418081745019772139549964313921202520662017727218813553958760117279881293591951078739599763959397148099130084584754926851346115558616944136402832087076333713420883758424624947226749572744699831193814970178538204426800560156309087678425914646999415569812482513228560246383718632527553485843968927162828521487350923985737163751733053917712567829728493018180512425455268719075101799275569884143509228350703586039909150733402962923056118548531199224346456223436888030709328258005861999554169543977687130198884396259817326679801083490197352777679782374239741630690557966982405428922164109549291595110182307714948648707243084957567255183867916628317236097014289082273448079819538881957052510853828527682518171699827564841856393919387518881992716633864846757341119595086863453284563171709095012761197703557622706436382588572308704675513132214768460989991346994272881721324918669718804731754578849560191058416013648752184588163265596495876864738260265180190201017643250470894476443606122024110886145827376471219065307579633249278803037466158642289664610758045097730704190061258762271792665646037150394948496983065690892234313761693090537569323867153372036717473834579404837109096833166821381359348117539758709743335546932587160268683897515152116058091922213247699610954266746016549165647858230538070848316514444177852133477221401307833977039005250138592424775862478416178540868062704636976885284662981664051497564080427940430009740380263603627668897603380892705095024373740920176640331151438418411416558590926286949945680355631189800168681935533971827340246949753870712968496777376370312198856656084247164738443558278602859069071326535645455713039892363626723384362105004211289197673153905187412859257153809475519709454789631418360904471625439190821014231860065791782277718216796114236286210066083276350586013793325147723044241969477314673354450114203872431853726854146076045269098529699113741176880952000431177006465100906400050648155373939658373903755075475432327044825816485105091340784155094000217265536340144316495699514608075775080239493585364030508287906222371279903925013465535639826456695909552949867251887792047598130625231175136904904198838378032562025819897490431217627592155207221530121874969680511351611979936453804786131120931344718099065815352791243096961833337572161060647957050065092700290004079852811881948989822491384983869210894142790048653882466295009453991442364595826039604170675562438219336916652455467864962869351264582012847588212279649872665190789234138183752971967310169796930769437256652181635624110686686159180277652996859680311083841905124021849178005822474093289543300660901168471650124127381903470264096912770688475004866504247870486184831988191237811997713467061978645262951893864162870805635625208983841995383952199795929383157161224459182169198473714845051613766584923596438150064427991723145485278007931552926992037082933771528254303193269448052102569539825244043733093522183965552687832163969812752773095092125395960603341632073223422373172416640195536423216290566136353079012203130195557226218672146069904610689015893197818805476942797469893204206050450387214274729270337393795248519886124600940989621739332286778375401029472850849200598443228609334425488469288022731944245628366092870049838607117472572005002038218579265305263895685513099338222178105980190203665791131363907192825068333934617399716371306039613656197187433456656221553341492513596562454646612366903087727662880009044094472712020346509771691221967558242415248884313781562859293449260564670040685482924099388883946179046535737550775984117633432289867915726461101033721312611235874324728841665652951210928443356939855518056790904916810473904714604373220959208146493742803944412116507054389126316637599054444244553301679187731568701597942653913790879667986598380688067951684804462956273630413046252766063722058634343953313360236452879374102211264279548851947957801421628998603585177317608606305679746773099001991196979984407938509223946538049833528377042089709243988087440549941775294261341652530561704284553023646058375936749579760605296950562988626998681741003501034380587502812268208570952543550048490013200113139778447329122045319873064743602092832016419120423875519764374921279994909700545187248680026710447284691679912787501007080266233407741227994278081556182168052414949483358029607603796140252573460380428782444472979532733464905764393780990224315717467009833934804232397775531144067703121102730499995801281119407298512774126627419102781029848218814753435359376137621397758897227315686011361341528816872838182466967815402055302667182418384792957789383806881063876257893987601335432667053875674903204783839229371465629456914037430739900551515218915274000677855254862899515074596078547214342746888085412157409100765571642817589147199726058819719546600483125126564813460721390081873949131272240650944619478006412508447743023307516294480964174531725335196413518178669431761984493383983487665625128051210632801927294007710196977746439252125161132016348314656795314486655844788952236951037780293369372325831178997937786437307280202117807806368237057198630322405991600210321534376763041207135446950613988630013471279235932177379716367765645888513723233601601525539704359006615330534308663322175656592393000886918187002483837220291795629660025482122822635454329844631610108825190075452980400362036386805138207092061622839645524535534334708683541328133451242963195988065977700449379471222450913909380727500051737681573067258860008827053185756420628337570040065315060416325029291465701952759366827703222579705020721214333466004479027333381662582323821330527534284921576323542801198672547663249519472900306108501570255756104036348119551731231259633222471395388711353663684607888048342495417161859909800049661920717670337791545412308023152150257026172686116293718453444834518355334921601345148407499423895429534875457268742999910259448210930804395485416962776823396638040966588811516934970385975743783486466000837903498105200621615049731767240740291478261687070299106302136220778266225810879358113178693811613444795574800400092810915416654556217475360006983263646945401720647001438847657300022850572470990400317666550082227119428080246168450285553028517021706712857349906999894218618172628076664365660760884300447534902055866065811277556168130807661895927865275030975443606888554743649206423416307425502889621144537545692771453078848638053984916697929013591800246489331467665536099946782558820719895190617654877862898836976565191273439880573287073601708032915575069863968908958033773346279357129193216526812828576386936335664499206782401869187265357258768014570851085124673035627400254520343391881398522086904075847309159471133057944501131275893603558904744459550449124677928403977283877446385928987138987934759872584720032439537949716890086146350372763180603207475631185012514394427965936610475478879074656625948052725091171286809958584541254722325185453903625332149739433730711223696050316315494863374495319896595871638246833575011726607361043990136972315408047116583394275570884925177418403296338718472055808099603365432227294580026501330208300514348307874836219819770718810608689247571774870453514503011310650398061400048160337505604529703177356594702668406130257182985149157485604941280395184030198923897498299436953904107481813595628876515580544097959178732362404629717248496285473669228839733261800472955012788130542353505376508733947659153706780410886351678641052777931067871691779956214308895770245813048650084646960483755818177376635887052647483346473442589275059443877906889190012610675661443563053820009888295885227314092024957198793079538643363074752053308257540388864847382864347819532211919993560104045789873314955964872192119019418039125774559517306109651417901295371826548299625567665521248130353470625916646895379680922591416525847204141492378822964614285545526522393279781015611716769797333795337165304521376585789199670629369091171461148350592041993723012468979758152590793834901288867483463152324914678046722772484030304219039923871653182059364933221959328493345218925537859712042582118386688932956903369298727542008968299300233269876823103367835500108908987922660177033907836064949347907274371521708195267047473365912888128335302299859093268563316960374588718433679024000541190249652906147638049325487953982778689368401995116779629030750467696563974336371246326842862469170940785747896429231392882140786190585645521005240292340498056457681504291784030108566107002056509111931257688252383335436237457250719626906023859325229721553364882161619503413003133830259965340558592485855672584101931102524588618615669490932168660783378326226599125301533369968759528140159455682659928202223916987905738625894504883125348991231131399793925866914451242047974635324793072664959336418683586912957056939553722699652108791735285699975990434629055993125630463760459607815484677703604375199355964594914784655025762541861920170996715256818760068773682025686096784186576380928429920688463873406268321875343189927519410513881578712220213572542212627251392202846902984536067087647899643323043418962680901587364092092326456892305612471529130580440203930318754559611132725637169200537159841705138641814121106910188013062614737494601510596955786691375317192044019101036978948721519628201488886218508879779548060819907726818246183119858381643663259492999294117714311102145523563181439370441421019754981531451930519697222252176321771067628039592977985961291804447497644801023921130417118220436439917369661767032598542890782340975784999775473386549572582061232947626297766335869026968923447743090592409132933260614529116535913062278492425073155286593183551780866812096974798396189821961794485169531736092215534835104271157611831097099624400903297580542016321685800477420627366534134871587204378782040688962556874560563456937294832896084513779636073645882809769119337336198157887418813244306037166259415213627575338827541334798862067224823952578783469661815407724684107895485743318455150641177372443760861904081841564828632791689508337205950366256584787156533230887803155587660830726020439853119389667968225161375991058858988114286483123175908227127388382730992670911979318753173054682718580855988182117975011586047151119786950715384310633827031008079720886113448672324809080660869573983983268630838060987949099831849015512361870126475307987523898181246132825671071725673186331717424349631755110238840395376369015881190988538362304698444603901012954896269312105300368191690359074414809334194492471259541579599618584933410237025915050720378598580280819093489519576485708509285700307949644646963121280568231053616072519352878535446234780115055017525930624745677088034464846491809844916795749178913512703110488795186772881531831973958479946307123256446609753868935670462939940410125888452675623604002038652471206633834372247266230374203461444249961605560196958289534358719026154493054950663322299432743207911852013559642889813198686798220907738896376229800113583033504155208249666772740813838540245594712072810459521121999810895758670421417542617730179832420419412852253658214564968305329718609624286466410354989852335775706597747413008695089909571788198131369394014663871811723598749741028648999604145498751214997480673088434171730355705868381975913703861019454487796652383453908142615843750288659179389196434355261644487057978606701612558992404260231688968994125681820685320723237913451822470668005863023534701676505238225631072770669847415483613644570823367621963836404840174794878819863640572728739654785526130938412218293202784993262605064152359753272874361090732207259117257020791105359141235747029455890289459747112915997935163146913739965917420313376208573594150273454223008207691085899737499456259747627962893531451855037585541816238336297706075811578085172962689540479336777525317245384244502479929003855095531681802472404104335883023270183666236053948025544213126787931809150405731533652601052008469294596171857519259281545667021454942388789176567433889660882005215246362566656230191397465940032302409387542663498658170692517812107452990660330126338555812190189147105860456749653443014100539740720725346693375351613518637469437682340835727025818355637148967969979419915140589202589494366236937783777420293820250173654083373033495559651310196292219182170579357723170007961955727430375713225404649030057411301024825110315852277114174927421784195193770918180532262429005589753597113670140441971231116318404527054639334009388838050341268923718251506742975999884970709247481631861082940083612913710945697138380669285163036380155644131347838783578464932694313977806428564696216001577342498639384568173505639093077696788023347988640207163047426962345061142453327559677962049412951927297981628927851964955675423874313270445305204140124583022127738520041796529393194025280501807942711203986640461246632423388078388838820407847060327813040003764790854129013895185342535410406568301169441050265029839493339411319407089156158399057648873787549632276536464340443715413476405397731031523318365247536312369389592378323183369405014815567239269271711203623008324591259668818877872694818384177357094601112338002046937671965615675690248697482137983876423104212503925341084847984091404950407396251211192382101186106293655078031434354023600821904513414231589211279669187971005969478760648144220862674989709983111558290731338648874111570891216605514700716616355966778010775691444586104995882236799295664587683295208023325246025817967537345396940507636309632511985794523833544107666533861844732744390270443252739108039763612288346485459829332981261450676919767982677564269747612340012044117651817156034363742176233195659713143057682877175855684507065910561611532843975400595713971791511305863926225256307814146622592861432305887420433918645836468128636920670695554113814053578822355536252863744235449243278351965136121941013637044637670683126202990125545886884781228355642698099275555397899245987922483994355498555096286646148441623634507988006479618028996324956543119365098819647371902639520086486571511941702851612546600864346066385350368616398036306030125021092186283700083984250621151178590857795600881097982641521677320852927127962942629334115321312185130889325182472764952239489549499785804643432466590631616737459817037140169178594890428416591117700666253723876149702510579719894007035938384887852460391775141688201262006712509462462655553260693227828303991819793101718172829039959060507061261215776009467554550908822819803988102951914537173397454018612411161709176364206692445638214495050416187330302912238207892569117972814227933471433737658104976234911533590370303220446389889604928631958467179905769190425922385655395859897278531221133810704476341714753083601516289379540105926386687964170860773508613478892606181317736777693666986764628433746540400582044226667377511423098840380044017655741252065061018515464255345546387183295039316422408727281367295451124675990989840521708084252142758438303162657122316147549334548788345938498165868110031022007454805293924040880746891288790752611926651140090084237555216053066591452252131180280536715683065099356271809588669740000710856155841842560333244543500723920572789451494156939593509129152068957500872514298327857324218351487078064233082249038295549852767403946453538655810524772159525481973356130444890905319139520844559556929722848271773128592936485049334125981026196705197189614502683123838623632066114808706643557055512944607152635307055215827901159066775094056431021873797525980130589133674273712686240248192244270291443308081949100669145797133609800573390937567995484159754071793293967451426183919898734249564821371276391912954113487433867337115752324367921522560920276519100261941137660663990550485539617598629608226375487390559088877365101221754620925822386032881544085687481167886536554588132472967730799530488278757325926698066634300760395888240422611766796808524335510956741249310870502343644846967717025568046090817000173740942544245068218400806816323187202211249633996242235148520296428318542951841515281532476044326193403324355779033905181156718683913159132079943687536386430332120410874922587249293226151886642832157549706692812728882937906996367749471060939217983788670166120555931527438847610814201100255423536743192832538815352886441694113164700146308115952589164373796829154155539706347219587672071748678247301081571999203234165819419534563699613998936849031366122467650396089018227417947465226661999115750678451451661662064744640151875217573417218065912346773293341078312599801645821173718800563511725631734634597115954288732319116569087870551360554205714905144164024880708838731859206622960921522578542866825826386559142835708392597602523222453899559188314806857091283282609776981874074919185877872803285840705579333642362597537052440525838603652843558352604826015051067207869997070735724927003457371530017483873476589694119831882380311510782741382385342268579832793507243144878310509445175389592254769920453117632139094027755037296360635814714326366983606444502615265282876210957585030597791726405882739814511812105361329249413540396084151155713739258139338980037731420803681815623090137646261404242213226946030938625924793313415076067522891073696175604435905589806214716391382908579337318808883512070217522741446709059276652788999826091760037859190965759435848041432549637339701871844025764104950520340716289118803043566828004696961926775960376526871546472538806552209892963108519097114181058120340415187376119798321100025092332097792301318865216705848059155709276783989866993456186219045761387183933715420799859796015279358428290042927155878634729710200594918079351162366489168312712302896878169992361006924410539551094008438508928542795569945998988615549134231343713724321718555719044782525630440066793445123830162114237957299206134282466110257741227616457065062755168583151648733882570014007883996530387386100009530513221412638106646496276884927968695640551338917951430011377030846702807093246957827236112250647090132830262292975019382969926385177893172288024430882149957627292125788174584848495275630836411667638446135835023267038616843181360928615257324018983139682094203527871032855823691836162777508276294910765723938153911338391891934836235299104853574727016090297383727274622784929329116071911247461445165730927371959114173221069535917889375892029919881225235376844652785411809466493964611511673699032026072242379299507453520310447160928011294503455933027140025604916435305326198799805129796936270188730200914878827129553914006403810892590671194998089719131825414016059906384357187700298444037692159454861981898367884765232504962163998267457276820058901636774009226371460834903458321734239581745498252898884485263959663506975122117077113293479427178604525116203735912486690457973798808662504422535555724066019338655798089637014806067875012200289567953374332029534356302961582251381518680064806942851287781578269802270565625547852870912340728575354607998783000916058162144836033991818506437370333624568857858154807206901575537358168988765089973916616623925239362114875103636671721585215306637373379999253242957795983237186878972108850483649556176058497340431565586088720256628400128799544065494671910481452292599905410215298617239467578289595237282522959809214799293721767353226355116923416369468176326468377412335370417040701176636789220469856518919482541280831751156371667249404204655987594202390576062706669663848701038785786508202924763465810327216364166897205291898618363000934408901646630248564275146979035592292612592449714804946314832643390054291625973384521146572368838047885457944757428392896900814135877810390066584535089475980195332767775184875723945942492292404828323826005989119600871665175584456357985265175566877370618977589614961194538791888945048680699810041042473007010827892954832646784053203959716856063830689409295517394167896934274607350516689175068833934284161079269294663496155568823197182411686174051650636326500897371145985745019376990727966808599681400990539375782100574470007366376572221673183593121257765200240966237182168560738218994019325775534913064414141908359355364009148166359381795787411962296598677021087044478625051239591172446288754943758092213889717612778143456656219076000309826884490430531398523310290777994063301764792431176784461891689917364738984987977037202447205406750228429513500061655774867984779119739234960348812048497479701446526498111929628274984716582370856440365691171996953855129030406499555346856832420918544659437739366730297905472565995316118568692709344253649955681135094618877965001007378696976585951225373016909174786952136614250579791430395258002570834505516879898858606842682816538975360390831477777997613216864393385133663902661036596146430342857547694722768814666092933855945873264682922056387248984460557375308576661327301409991716767197537383077974032096351886128995454599376801866609560609897038343538220775502082888455060243010716148137494151259170553270902511585525530854833362807076620988260868572282252999889645120254573688691212688319693763782456497950646102880887982849583592157926717159348266634131145483565625216370440811280767814727310483619856591515029828881227698402554990327975638046431288997958892624195161382797632236652661050124773048328069012125008801697096421016514871358921922502084271323624013323722615962904089605913780617868362058639794480719176503660152139086040636425623951196280956573696258481299986740422909066904287682744787457621843055439195130443077165147988343000573744361988648740426600055193259501326262305209528741033439879341439940335990686349198473468450332080778087876104816982804487833737843417057972828907766731985776667385504847259379009045473037657336742325575195062042536680927540058199773256506063088267837403706663930080257016299639048603087823261163143797524690055433131754545881029184492053016265691035250743178655922060829233352272873813239648721505453063291066523549387744747930260864431240611749417205598048971818796545903685387913742650312040986375399255337164534416840665440798591654009426086647216434332889105601291892433624771267709461778541063706512757023684062941337828103523297739925058809434811750237663573929805248221138416166540444817789006789323750469483312491461191742446940707191480098314404027243745477151251158169127861073150082883405425847944111114325621508146377238456178410717580302738536879882346365586660761709724151669972828298401563259822738946820617981899739309259583718935812372413279986752306123817138472063970572278449872436015223616575229237951443558497015697835286942929942616717081276328778588450097013426250084197754330730116767337375786483340909303933354547447648145603633115554013951215236457376954364591751054707653572293797277149639051775046624036298435979307483787977016226235998389937603435757334373038314062000403253614360699859527468217182572268295705108364358753425244504894267630855249118044308384117980905083469177404120946012962179834426502043222142775045984225362424139377399889006947801917980193822126153230310033829335923096344221176235821330610748952835390934689708904896282647461183744481398984625912163672175942040346014459530006154536014880236814064335663552880924641275171894430270377935795017134607585252579387906666791128341548821531950264173629386259585054028919805092065282571928838041614099672943337774214761986554177647893988133608007211566825355383133558583387832925293520105927632095575540756199921776695856973328611627284168622307988155706605387912115425212103004870856831445062172860397639613237920031604384386270208639323817284403370239873543853895344096418952604630300865431018976548969884611783775622573733986261908604554712096656748725097398741575442546854668442692390294085778382168174936078564797205723424322242191549303393165407136480721262948092335025129099354865502996337973822030613789259105871711594108933459302604718319011308485141260371849570356193676053119063595242154068889443609283686923098973494072391676259945775032030207746128009955652379205165526905132724318487169381066292384971891581571751473888390152899106744516451004588467398771191670952112694942444407947262361830894885121885287474576383636458488817874291851511043185689987777183371583562423052095145410486273295517420958467062839672854057741286304704522953323848978104242174570150316921908954891988121162875400202884688607660029122055163699249802070329166221948860109470760724303277474265203705066303200425188532900543352533895406337576987091358265704708429919513563662856526657746043220025106052980810679943521048243593304983677139742693372608235651638198107419763666236112822020762002711501182916599839638357968369496629112676602838266455963559853087993947250725520966466966905445274671131365307620920070121697518225241143177932431692221044586251849881317321659786921693065488543389762917331805619961263963011541182063138983711670051066860666471505539088487778574813975742830621385810222361110647630989553715037897715107857074759043374057050230280442956742674786836432256915863206123722842579314495425449431230866952998980482360617748181128836453075795001174913182702338648899152807260800629310101152814141063197197648183646191775316624038818948560938600219811875762773559684575071240727656072027121241393213337956616724051180488332101862367370395971853280521892292630818101678476468791920439975940813455248040366238451809814621098494152204622273413099247785781004469062592767968764038266625019515808392527490918019695040213665524748329257504948362427738783373100414638607624382829721689809335579897956873896497308558817732311713429606955026120794715036822059918878386567198155234531751890487407826158265128126119406787864325500904633289658476975712157537176240711647810644632099375796343261098532754448867686852292422180256203577673937127123753774828052008841619950217859433580206723281631901476671756506673223633150229780500430111475293457476003942129706448350576249931130508909460784839629942425231678250779623098078427796310910586192475427274804736862449644946690152343753084498975773894346626430438888375210199996335108831558369718511615822294356005663724832253981439651267597622482240026272608995804358903859082531632297937012602710453997428893863593004809391149992618505191004634948044079501439288872916852416750453649705069310605795893603370804726986418206602738994202679956161894061641373321372228759840740463586060470699895421390523053217876281055385513667238680680962129220099646113048449884519298766191048888574803212129824800177232554524820421797179768270482014536959043189119926869562717078359929539643650538320210710159883139718714779961652062674169506635109657466696149570987861245377488893288771103022525216078681396522119872735830156667260317811131225058394556328264965805255452907607053033010847364177911666552781933372277235497163047658361162600020497525359765633546595785977978066629009300263408943857823928388957621525597470233950415836353132988389926332672614800679767055922799220738543254876557646944924510114959616228653687572569119643011880314509266967017460585449686482338533619761100865955238996398428843657216184236395010234409213183903144921580056242871552709963462901990199505311176374052734163831994522919283054808441272070479531201801935471836793363759462395901049811170233372487218072565470590591068041077038432781269685398913287636426452812753983036063739507660329017827150854022480636922123568046137940953600425257008285082764655342772849539140647548021528311141658572392469978256386401708967046649277188191169597431303539851406048906434688847959457803940664869969590218966879527872695509326718685632960922458976575867814565537204933407084752775841987067882256186819916978986485252832443323857656180157205641265385656818253984838709441938071058025932081445015656313521274686589002587482685467275638032584869012515970939143860506358781110211631405409375582140877667261584566274771790163667989013411556263268606830026990500720020066204723055559761840564665004955572991525511433761776410666258194286373698855403816151108046208035849289315826229614057133384100937017840577915654204259544194476714763584713513617256540401289487555331116923359099924026294331849752173023333295046885957974701890926690371399080072562494585233780768999524199143281735323776739332124399643755817314772318076651061152211482234181217564519654310684246523562515355044581874062986320152758079531074644168609407455927917038999664445243690739567417955065167987160847884856942367550389898459630593014160001917494396512826061347357389313273216197698549906927118812776454234654562635543560482155913671420599111540738286722706428423657341286436039488505836711441490402454612734625772060771845727906383460759391890808531574549085905410209519022332021706374998728579216123349469384591653991425891722901166715993890228549146809081107434043022292896599639029310534608372716123709362914921842199761669626883359218285579411409957652280615293174981974884902352162956517216637562065094441567750170425371074003746757929119732307255057071232213822680653343421489039073996935003766688877222038901834275724938162860405490804372098045897523693736867975618750323448984030659573019552169389680550621800411217946644322007828360062135538983806639753207712433690970352450394207349251085891256809547306493654254061503236174383709854575546215742810208318977314616292586152076460521764096792275356054687911290867857479629361483439017649510513158382612867353419480520219821876762179280435237300582629394194914950865395481212116161358372578251740461599790348368610175147188971568160537981738087080704330558222696642991245406212347593950044292244494893267683023024076652454572404564094012658796347518643508236879573660160967719203010582169843426049669444942911712159003524692829604960348672264742939931197631085754159100635520804355338116403107073153620041505908951877082996082837950707233737662497095562449199168032707610650376472772531186826753887351146363211147195086318090608534149121264488145149646211050280892874182187641350585794130363257586143985379383110935262163155967592847292135022555961178820674515607232758257615974530466697632549590350223260945441577085501208853163297083845338266851098665667244531941238285169883943687389515407731613550069511445583878386856890541093811930306503574786773879747749610659896439743967694970772255823025269177272770621038658945678597793531354171311276110152828955906102145362717681152649324866728280079200621881155354592757874603830386190738004630446493434764377296843489601541389618037951468386211408543690597710844279542940175424484562136897844990264724907087913631630983972345355528167841300869121652974214779459117784787854182853650476378629038325112062120970777832191734365432942615233550701534854281158241104637271317032178355924014643818066106296536399258237225652679004730605293834409158172581199332835783744427288972384863654706508837175743455982166586772541589529624718009197051437007841138699173115990233821755913704888369828537730883448642810075728030888757056208874383927621569769933409218196369707432419715809901091405124812278883484406435946496410128865754120434268129832382972343811130223737677212019301486351852783615857556835106299156925536870837157904372792994482168204435361981523537957458077604160361901578193526520115214757564719405478832633329069100882546701215025397470840394207031752611573218465174140152714645729929854595730533338788856496967417304481045003780996813504440468300772151866403872593983311432525487760994503629155866241541608443812158441960468544214700384305491554232319774827361884401096433504593494471858058199084290401825378568507375346749940210339972733612002711645284194724992945040623050586054873086768323291105801096472720254188642012883757345399486668584354841496816427395571022422801276014615876956454775637256821644426736259625868691450960355025469297727478559278308036777098810016890708912707473761351955646590151033251656094801935903856523252919834682223810760986671920815351011783221529233537472194249591710085234614033630014825999696734730360824669915261560055978081245567281030372870708383583753402601503697827654873014319825354850314142701511879455847115425827006653575238286783774389144615180643534934346336104513020576419644001979815160004478516581024716385343055826371248777344926089855658206735435151022580785444932379232386663643626377598605336517869594114282657769687931610869012218573799338247525967292511516084800162632493634950427317209957647419766325598752982245768504842061478413046981838011861842131249787458099912669847946302338819121809445213089692677229623004148102671403719065267393645961026930651527193653408779795107948276326915165214450843979523870836199974942146971452528135455659723426016312765106907913485193744748933055607889566412329229358354283442905773161114665068462198039692830999590400275772369596930300264604390422239257557386517839990722609236408410701603254506931075947339422536946475639271609802398013166139922258275711072100333291278415335720857926234669371544431004066090038888922899436757908663035447304298392199710528607414453321883892700383389613621211902824608678068393296631227754997490052818749999689603395825347460223275499687920500012918450576703063812537411439952785416177637364173333025762381802996069722295240239895373839075006361078415483113579636810496245985544881673326122419191409259700216535154084865979478765651834065541086311918228261361563033451319027044718847335582665663443168128272179350217619777909073178274925661508031094145391801480886870832956169658941568072255097534221612962511582636094068183271469775701073106690618050470938898149537794225948743026101446034953005378889341555892515300103895585568327400373570268599428165095530546924022464021793598349457864082613641074687945473497468363479691634948613707582023904788453824567153674337289449203658937771966877060189883578878767291060435666121806972745387353453156107812494431561109929105656408857185004198021016515767455159912298193480779237577138850507814927427576952560370267958367092914708197398420947925538861629966371687516837636601853424307854881446268866656394922854059184254104938278622605515200126122918789971342293616149628162840268626652145502256607835180840501458799764552820950588072827755024905365577203070722247955641533559481015910870820218944620098928501544878913435051715381291122221598063607684477112431092613821760285921739147972106811009821732416367352041055735939309298171251114609603865186602917413931023772464959725189411811189806946359163127179072897273606947867449833524260825678675164580030762983759634493554321457955595520892417683458610525342023570842375834586831691206782274332271470104298201380796672027261443164226920879445368307238860389963666622683738701952942403677425026932334462638920786482712688974108025238813798195771630297429893064374197105266539922055264146413206850777776944893063825703861994224780354659894795750446671760825662704026299881597496102132775977124012036091982388028384088618404082316713520075193564329859633585247014744249612220098831957704590329276401060266250099443137848953130350134915682233364290025582679626716761260357512121456819117980061486415241621585991524330488528469491919977044516751715992496376083482350911509025613489565492971102081038612261920523131408738799732540837995949627486694629453364464719938508751421855278269943728281629799493593608924057735807193359270935612178701103870946151226659393453722345627324578931916844736094570075630481709144978390946705916610713634673965498124294119715783301940464633471161635837132373257954552795746482745500046924266867768667653318687107039699172364792701931198119800075972211810256384809305791141801874136196815143162061443368452893453377292901430047802198631013313360445284261342121610088609624207959788085792617938425538157446866739788544868751760320108470985440694082333371982461595287437749396624899555351632144264003454539384159651016193507269972646088492666327520672207216379224505305918025340845046926175138142978491967360364986273380677195242790813018739462840451451389271681348683399967646186203182290989956854586165031358343926867411708942548567161593111630740018905327567233899627026237710862789173397247932963435407926011178203160118021172681919496590550712516923376735463086461108646816391573228150522113129086153137032031829249942725929895714950239122456623435774920695534768080725518528196625508368052866088179468655597414019651880163979813193104565181117515631786026306482127424537588785994501499917223084408431152464666370246613181645433377546323329523182942853820946308695735653213587399477256883801593502420110140201296182930337382300788711703260269750798954915043777635685337688225559837568672973584876293433811663684378781712621862615834559720838226215142779267618447934190698816856028411828046506245085324403202738443272703406509240183652926633133504098148196471106863487568249330899634186590803922627271300094564837916073899223366008426259263725887651209975052528433268163846908164284709882359323183770264182091576842906956170710740125050673881699636006587018089807584388664688366668177798484163846706472317568409183786956203768037903018659512872818374159353172948286544622006462851667444964847568284661889319084226648261750384670157072784660308636636618398968409024900416427971923199175528390545209307517404179849404442451800400158586461591712988633252103161100478254825300261189933335036119304437865582735369761404464505142653240113149402601090053909088147559857159534030335220054870069095632678234328401023006818354379073845113552467942915160669531372710780515217009991135522427923254982709290324133292440577102826815504641421530973735935968426459461873053092746034537162268470765365677137793635083453157156453136238184976428498044132475357096626568472132535979977706830804649340094622549271698953939490320207017420526640527836177523684866255328102400001010148973566544168353441706882605585171402882082475570184480238614620306900053361935699186796460138153953999885444797355096064748251825790715045593828224967166472687862879671424828498855712543746993893820060405211752647536468026235544374253063363164589557081411729492314297748060113385962381061381946533581508330115286520736970139460684122684642168444532804332458116025968264076407602857458301978758625360490589403287493092356825967901323886511361194463606927989067283701149045783287774604019236120198701857007647201931962347704040795648252670934584662235304328343788188972787596059476811479849121019767351124608711888061511819775735590581222355144069462025862309523757982154197557655121034624393524524829466389009023199710892940281864428074590467056512734595547065863629095801005473287656659875873419522692597137295115354883658480884032201462051208664489769823146044492925941594875380095202139423112944039021815206391436891632110289467175672651675282618868799086084400076228313686372611276719235727968355502093440757168765544436315801687394113327340641744655936642435056988441522994580720596170507010742333633007610021541478056816709417660267035700976186898868894737087492337902297730827031608264841178412922423514017800292552234028821963212141819575233037836891831129127375038386137954706207809996657480223097406207088096480398061153569879328423775879769901859016058532667976291239536966661472621542846407404232041285975671279612345803780308530226268440398704868508228079569196590609066099058384450534950931065256105427641071604174948789434303209888581024436045848300911592461511425359511483776105785045968794252364947621408406685504124465341854816446228197451063195048176556537211491365819742445336039349201366107760135671696539265834695837398624844794513815645886525674888058907577516204695480146587238346475802301731896368159460987803877697578643291586052238231270290714886199296454367324435749592419806336921275438442886304258520333693289040828835757440878983091476499217173571469190405741412701885578216277884789229735587507301413226145808242520072992151838518728568577071191954916543986038252858441995787960427456550861593222479224446787873102506134230133200967344294385425472749402210589098729050475988477145516191678456504582474969436102593059759062899502542704765406918933443941635058317174637151136694447048132752087377401797537683826855927714782506726285554856214624605284562399294142859763123177806634371578007427381931083497041032891687840735921180682160306704122259574278090375826003944633296672771929213589882756876697521035070503619737785904578184525471959578517884398731160742136782046081879579969878693917110938147862326366105190545932903947141584356022372990538684196371256432119355136755652003114202280237768947682022232236899336038742604045385058795378409346196475219601764831955977254012305761983186327555657750490339361023826436587458346206929180300570299117554369185544962126036659596238609731118176943174928268937561898357710178471785578735128871269883353400637236193732772463790397542736931708272734106179834494116639560521163622055976033502669638164787461375232057965018585352442546681885418803625654693137023311823854507645229192404157329461588924212901734605434401935759641057876109617836399008913547206151062388126778097521706414205067299623400041651710629379763885153271219988769953144022566740370625946754845316728546567282569720783990780297236891667834273117280247435334376760740000004844250173106330511782598531853447668938071803084588283041754633596603165209797096624418023013612620093609205181978246332046746373432874064707227408842856172270782927819991868237204856979942764823264334005392175162197621468778706659671054387510878641439786676772098070874424691377226350647833014560989713754306910176898843754929301060614600105843703583897915463815799036677382605323804526662307314920592861214721055312476148482038143687405014794738719971762897014805608840807786436681671937281711726175021353518050781462288430590300094414342198779869221061092347833826861638909608956944478658148285671938456272587184684052204466243907051611494294261696511766495713143458254894156271390692513391787841919045203453093871322716062860814769728230193941093847602671631229873835667444590043757542262625069908177171199310734789205783356079478446977377352751511881359967942835467212384542523967291574032519301444274539754226854213038606484133480359802720484446415097368669253681868555382356994207147183068603498949540023125164598510769087647664197549615534573909158578262938736430676007193099154540135214210592211742670852579061937864134547077389746238532859721908686069951846722212263688825521161282604271436107767187920442272615818335683606362835236548897242347713301126578343416653207297374949559817517337459372139365904004851036662656587324786624588344891384855306423689596643837764617034276021450497381968385016238583018503378016995815649128934285844323684839175442153228410455615351603013335108084664837075161609393833950652687240486785525203045452678965203861763405500177697328507588038856821114917615260972722303400725263704642915472092727062382259808214884803547748759327817522262108356030854206786725274161245507587980125974850675886730097212337768235521745291488532987108346946345431598437686640121719054212572965476669472079561249254739258281652902086064211049648984790358197760589637145536866671400555918057578376741802646583264016511818345675405776292666065527152849454521380575946145234786586012462970055695122191001921713332866901150795233776921366618956404980342792847068950257663368080167711105735030982366772625951512554581814892044985193443370522996539818390028207771422780964009037818863322016815189121150128947185120129721713002679132849582293198128575054807182073933946821846044559092807930752981162979043343220677538093134938552038966675791902946990940866168812656243609266997500941924962744673799225638310277959109892717472890651130032434754530350184790279224913745422922386094846084212321972856555501351845478936913288162304190837863592710922369572394825752064723215352765013947478950151583565347944242078728483491845086941500318936293938144400270106346960970340220632374723352320690740702871294319074790084415675437494217691053103145210669749245627933382392298627052024575407941001111957708904234423056455844159194068035203342394228610920168375110157655367503293594215953546868089221585672226541403823475238091718174828923420978622143836256876941489310010946318664266234551599741664275599308693389084695122567665249274873727995022242953751758113188684966485731231165738491973743235674907412771157972543307294253750669591865849916842838156977038713629208833019565724271724048218386776508496436169701304073507548472762965173073257681218833692606000997961392059885010523739861346292065714574122073108938257695930439455426396105611348535842547925278057457873082676304555224339320541424905139407587590789679515091680391445118386730958371268712554855165866563876917988425642467427396272282919775144324583513742866646897228631410929407041162278297765019987570031762011687964891770045336007380232487602148089861187800084677722254354365985505869681485574335616852236254317242679931386277338223308572007743149594061311118261991770703922962426429899238147052834490445295628529316304638377864164926649140582281743741195319093163613667860622350408878107290745999074999103784430029401062608760360417378716806433619217055327890884658958092916482109246805994303174759101019350742969449778270843890593434637821641379679613452930581909800197690634775598227873781476616203120137174942287543990702398494435818200024960291199692492163737290896061751901538203363981043123751573007808959511722716030496365587754485236886525589230758362625131164308281859764767570927412753575254900292343889147112495589754837122282645189802095490577709368011424347261492752923218908312500839116336047400768664385366580911846496735643928043828802243985903315108893557333782946976516878104473439499328185978560009655063870457538065101284568338812230527241358019301961658511246665249711380096524440781079613563041950407544027889890968251310678119537083869739841092580148831505626987684273539982618507044075443383193356111670792554898133840458266526859469758134177052795024671236926323179425114698409097644957231656351119077086525210714440075959198132378280961152898347942710507354660177817630345963293570142772097496819903998348053148025524117374153638338403935822701368752091708796612790961092432314032690041923507038117820364103882831152768919209135603817674870720064876554764359006264065245065936042645082275107351573502953769422661335697246839815240969353322094472979541573685703956886955356451579084349306966271789407364727591331119681517131793892235499580630245812739819026500100452310062495635749576533837048120955858484129142642279879290997917087236183724453838249187204611394201170738190772965888124432249991270945682745897773140880428618434973593859847041674520302039751368046543921554077108857259932593976327305658938228325674263865479852413275297798745954648016174270204066552093240068929442638964022513510193468035474862269278072484791275443593033523266805118334386284198744154792617430189307863423384412578525583168719643851151574730880347298249126597745862883594224989188102179148638166591607045342385210451028657381809329329785046519630035393994453073517016616336349924936925816735972146662221020985366485880991605351872105766806394943399076620558028877983397556993935690889473090150823509622164132797690154806095096355519351181582080857359992680636581915901692724718416534221708741721530548023838608441020086245565152807091541794038356983441157700051232938386718993710188441977426349813065914902207481838074834541675496486675345638856370051167292553656055178092120035352623959055509406314442104853432248549670775170742898159098148021319219128010639414686738673718343689983839934960956090507307698354642584684603121324837566241594167648931560257167638088338533797891721865164719292473696721105949576849853000122694514762722296672849400700941599192453412988271922214920560445871487531242455591612870536047779652642142625046368174570852777907717061712700483790167824954907437441319054985793743601716840800917948022683971211560946199140510697710085944911812906555874665464959561271431376401725372592324012785976871921709387896085979078563165500673206518365676413104781247838251414907638497560440689368353950178151514014896551041727506646567890934433001921002463505546443241074643461655307298174748681073071176888312290370966813557183701802063475083908512164356678859042364771023041318380373617025922781125940845592142044614385999597348060529327118678998850439022625041484038158090065761396057713587165087021791662725925846157808011423119786746134577449999461524107894638795662564473993962259854299992796516150301822304252261821666607418150419113095733155941631146146586796372908979341324490480085506451360493040007489642011079472065353325722596721846533047105886557554012623698717297085945521218078394141443621099655093498603581871037911674461931049919515589044564564546401533234362929636590967502214727426263658100373994968789317469340227481443302170913066478862482975865629371567791147015867989040145475061374957868574612985364539123852614524104169282513918651817060357580536745936265858774466618232918284564187888204165960979968122309411272790906299116839472009883769655894775987512290426442268066261763108481160727278865691330943733131710577350278710386517823659667443600771802667439597505738729749105629848527464181062478513910383831403314260811009471100229406426946402065198685604667661517380372923949221082805029580950727300296298891549978139632598118684764361543342709598312154647058150553518370269131094411541664081752098425281360307573584543203330455849034370306125057561432216600231420826345295167569637187334191539890889604487205065998831871249259195905745382305452095994703612160744072361725055638414901836855560193395436605236936569833921788318979747942167905342708597250794121116747669220610128848212714774345230191170109488217424249545022154746774068043780753275002077040790933143798105936371610227627728961184155046880242792362094121903109303443936777905617311811705988584358856024948646835736723886939408685012095054382644670307546707397883488865087398712351146049125932180570286712652985483229446956307215844376659378917060626243527505722786306762756743235158666141552176314720476912908877472428145185695543014504211797661383728792340289528389062273744647986646174319479883206536666325492601742050551276972319574205664014641181474406148073419007422872849887071547802920750192003515836220303035029752378131622459403644219052619618067350844105424384762579434966924493755625924647179519836632125694608021561379414386079898456625283863503874011277265809913352040862820402505565468639302542436122207895950806942629061486515629518772198201795516103189175430120072572636950333929959496536194102145707442340200285856939255015602429352613658931861784843067324884615899970355029574408640560306964724762454556839088277637073665583583631826942216864333000053299108092261966858192679703858470132916075451130620965790238573817411298352788941684089070715749715123001313899054082486422980799699086889310247077511478585736553707743678412984272253216390130867740138772427657842377896801442067252307758207001467806059178163525032123735355244645878550033652914756616619482661203106386944605066990690199179017167680761630953775002782549862524622597418202046379458568453901233830354059873397327442311556021638969485588950568608579547637840872711002357064074842370093028670763924386094572689019968816195138589614085385816559771921342836881449525065114323004283406002513971919043493524340529400603096139578413367191139230822063069224666619524560724957118909923670882638520215702132326940495563779763816293746279331908697064387971012893528358390415719042853335179929176159454830146967848207863355518990136509840405884298383414241131792964961166140699475727065750828103507588765110911526896473877288158874736754868835271762243117278776388376093582890888616829580721051161415155683987443123311990519974893679320545366032438759197168119308552406715822133467801731610426855304087122728415232103424681243807130856339525156588119731340261278698668531137872344342829035530723325543557423869261009345614005670825457280267660844000205912353696334842172514299476912158497469648883343291844955876588796085501877346761029985361905233607768119190892275061595212590391088532012728191158836656898464249461815879285710610520376956637571434441481551943379684581743200960339567707034881920711650253573391179165240534541944028658701391836896787394527250961023203566568222263416160935001095970566211585311821518617119510935250301015127735204915095349961918819146630549967609438967918526402974568485674561730037678288180903884171021460801770219380739776562984181159758444340030708673325922777481229816120486772076006174452383298462688694684077322708449933369234322618437399031748156662472051855638530458722386877630899234858019968720138389155829892462581597013739851798107547099996163715557877617253928624657887486591262253050556362997253434659329170790469409974911884037559680539813278627426940792531865089317696527342867875548808080258650048232814306533805426594538749234437916018583348972629537580060476274666647469829436679143880460573154482558519648016768514984743201439475661128257698566349195709568199929033033603434864235826010217299544527719310236178159650580933694501863441095316194796146885578482666215115646045042472810953188354527269794757795841845055946804767459545887128997828318307431511998150612735477942561454650158743374495813255495571538811422242888628406515473116967861292766454093400472983316690379387621060587845953955207639794093212950259603777716160709916893673863744447512549554746525411544699515632614271611707754566613054548353950410521899069273940238172753049014598402176631963510846641642739934261005239202975274466888003810678528108139605964025630188502800484322808200293004768845329785246737920901977848730150826166292996725570677800110111529316787080528961297505294604226099484416565830100760006094116666188485276698072609216541847211864899976942874919976789570218394018073048182145690533184164968249657376786110925698963880615942049837105516387864552814859411158657539848110770242617154398882251055001823076433656838605886818873684353997199844730413876173429723100743314682076645539222657062380921781758196453541887158080035569151086382716086717339656348934681006968276781398218750256045212126198186284505666322346515037321318690558871951091085230928973793374144485859815060844001361193162833339706331037366937141234702523961103730638034119733474519634488178419033082195933663131611306770639559658003540396182279782762400103025757599339574939841826912036415633880263953950254396884111112590410977306721265677836434766843170839828996531107753354364288498688388731108664024877976607653727602428307492271409771431339334555856319765336224757638295819510314210991819934708250967927084993452322090616214066337938294442724138121093180907451156781377005115128851708349286903186159544134370748162072774701630490778076103202754144751476108919287456124636223999108942142360805296214117378050742373258942725717553774234308674464441018157148297733607161310174765348965720347296220767394166055519588548756809204817582375999154083193779415310718601946434317773160340061223207218894907529343819477262097605441523162307598514216802464984553469918528842416860106597535316575873241647833511863056350264469428840897676804589998873234948758496047482328335975437743003741184750387430045215914872742783555582920677075937375058212673752075343042521663180942473620427718550140696568577805197704296141780619974902943271876857855798138487916388891726540628914911599116759746729653122038112581870691420151285661198169655842291999523718894145437605245460071534062906927274853353235409027481736965225641887678081708980742287074083575294515625176899884325276968970442981735598294291786407520262826212966284852727526611903366272956889137875410757111647379884932842753660237627877308459284327470236801560969834677022855488490180293316978171995269810882884407111485170021272864208142765782955105484605947176580447478761778377420426842221268692490431489646979672393048774985700904624487205203104154486762433142674006862203025729470125859999446022971295977796874405681049439657401544072771556047330228470775829240724105592637957840290018252327033522854546732367629947653328328642349768412988142872271891218671094484369587723557408054855976801261031564713634920144003645176259403059658243377491683537722763020847549676533127347528914530050552711987018281769278519157672523736810925796294187516683638665710559286826424787305756133629461292662287819071468712905881411108047381744182395149924142535346274792880340521137271355466086439371714399042054949052161239143912038600295985937033099687691436752902889266905260207907408592660441938685324053400234476623981386955004356372338599268779466256286683517055567701064986528742538342262377310834220814126726819610806827579936185487969836035119046858318299837632341338293048857321546176640874930773045965387687593706000397032797302247150901723016332480678060110645230515029011427470401682443783597778026470756658675575854579115170683328364123299500996273270340278390462628593798137135573542490347468109780675746047789241770072257936883074499227935085859725984227179385690026432267813952357242049491262130303893850239854282391825493616401400211559886130314810595989558880666545849297928184049627394663458783660202926019534060193886936599976471612179517299055862600722727609184488960816846275102459943812103737876567132050063540445460221047440387739057845112778880595530861187951643730356233223263786892749604994021678822677884061598978325062018990338278873472981880838336929121548076025751504973418499172705186968481950469577578867137793619336664673956793159309661287266344340881646919746607161715716697173074576164315723068788053128072115438805879566995173287059553440730736361166800776093013959837001234351610672379035628579259167685197884255119497770082032006629933462726332562827702290983809027099052196837501268076645223536510155976386681794957659148457069638984020288814877564014436354130204842149506287102675366566811890467502086018672561907280901349315054135678723160979595489163544002298493145128934868608003827707214848886605302066517018687640277347741405530537578975532549845238035921953452096507605769440262228939936790918023389903359238595949589563499566006785435111991893097246555880379976215646402445873346452074954125908698128067258130196488272990184152698916759879608473426099410955361727993687601289681135187580659516540447955903583918156688412066954498129654753477304749839104912824607868221730647815722440111994521085938753366751882286828092699316265404960362014989138240989027777796173231181740015100233228411896397040211102587531600106627843329633175483086629154524527303504056679015615828620561846715149786958308810910808656679347880817624016757206122768086443848219716725440882315806323629650935361505570880766477397669386848733071894675049578792695160474150302488979393037672415570152134386432031899293761886606037792044819952234948956476806046983716525181309588977712123545410253135249255747277045541485997247532842933254544215786634040771050594846737822298807270397989254402647056128420967343028930695194472668555957849032086320514041234095405082984198520579091389651906957904309825410623885395599386486053625825395668249095695570336066670312368429707054477939873633165594194555272855586911457634370284058296120887721705756226277264147716427088638961108856899094076288407605719684932700969472941032387401897821464795107227091359831431401006740136712605703530336103058300460543973046420732902506594000623207885369760970913181595397177925298426145587062653086642440044949601548364646348155514002874587490030279762534567361653509914351263383496634886909779889897005932975041207398815973451739840515895293834822403153532953125650134775949088826146268276460361546403289632207667449806783256337528645717817760318014184568788208797068748959782283071999134413741132087969451915703407314047333382331732092807405986083837510374946227891168457872675445895517844435839942181598546160978642300704050009562310663160454524513482013368205972387135039117409753150893256137244574470673439047616057693002198046238872050969126759034093409325724018032373778952598499519285738080586952987026510607242681630766238832853061305384264129209399805433389075392632252342486929434020868477623328034468265229796504650389060571033046750374241416004126682740983872451640528494553355997215249586722634178073988202083537109924257612580985018720067291777208036077142526666405648055904227182724087207969501523915209822412268726407741556912763309450353824471200779912408304444165961263142183023128150519767407086690242510948607578114954205324898654855951193908991433971579700292359117237472339282183655845898363312983775356086252296237901833453711648178780873627091852260051808665532459673555739149674629023018719200967978095636795962445530892989433756742829721552510344688938169832647178283153640670161414868621217403896680504053834294782162428771712568103733641121947042815378291726123594648174093213836922126155291838452426265703430682057139716841696530115800287105106466311688612073780633163694350209371061253655257305740506932567462348821335014265415391853929338869839722181928714860722155274722180630292399449988644031760705773199997815235829731189443553826853162473419092261946628141315076062785022638215273380638662189685881622452926084800320822699384006051858761303362080947227650210375617926685777628782801548309379396448498020787348082216081457653330242831359642284224286524107293898811551164234443486387558697837176901762910993835601978197450209812873072729033550611070524864481472061381710881278318863448598188626143952499118447837031461301777796352828526178069686917813925886937142698640348603981421904714194104996334662564585210023614957054790249298538562138375417742798883215788210389823018002440786815608584245518463368717764777914092192741690038046436512539394918943353194070471619208842789619317405482341919777485129214751024992548969296086182357982987071755799858809652366233806370001291867916910971039059022461619192359864635672915740267252520073882232705169319833827453689606826970990036121834145498349523626365942902923355432792944919103746973842856461882207620299293659561796609422492900044328511183532598422119373108056485695678634431256786077567282671784399255381597932594737776669646485615450500587914945461383651605313782923689735222151664820066025192615414950624777052768814307055976019113782707452609869361780701460488760940182083529019583340434657846965515674944830119891787195726700657946425333929033762438099628969283329619307672476760834495114369557788226879414994365429450851270873291283195239631863942948488181339292255358975383239263458158331282914527402065567786657861189103198721777191691490158321951397430299643027296966276700701483391375194587885187740632925666985886530051486600377983091386773756509764628465214875593199395632190099604002834868896745114000517599642875945146124383481333447544802323402094302241807690230605825667599613935158360045578685753072707054103481733772550655087492034489668876434000459514722005156224783062949664435119328341783580047187554941014380492038688332135875636685464749016524269265607809240422165627490516785423075505282993147036868840564001318886345106188800466139785595223110593279883355049931742626025563058275903125208379569839259319778473355055169214925247118903851556859420665772102483110307045025497521537665686377344906301007044454987579198499162634926670377293641749596340827148615425628198420145608096684314507211735169960270050141957091795099118060661747558582035625980337512571770858822418258365600977453487169239485932821156168283496410549890276200999056326664126518496183278576280548344265751539262475568836217443761808010529064438402441346244990690080225966583252099860827855046343999448889455337938515558513337735158241828790513224183015753549922781863008157528249291135882044730578721473027440737155793808128087157385367727365462607798930066011871739361548894381418688394565052449092326755283886359229181467639263545842414706897609091723874703057972766919314603757473780837967998932928558509383699044810859599747896883765114973907316485940107116271564493154599266237231049894413082990376347386850110368639790557935082725322857177782228599179898304486849228430831361828309450315452213092674620298407280680573706987985633127131386111357150942780853351277382092192430218034907277697569911364083144400363613940760786691204144546698022303988079075891605262783269937173872909423957349107034808849618627808699490416551125838618612250278522928699874625802452574590040428222365090826502391393018717725888904815502703958064120776793142233476726509746219173184131477292924323708744234710890641419005843535844564859194516169906031888245485549687318046747728002801545429178242661072432137586987701506956259662434382185816580483315791267742125712437693578657823331211532708282940387816128844871205846932166698182404099785419261058906102385306519354013540172770887081952042807752324646754665406972402448997641553616653909614454349852365204993466500524309588763554329152012420935742985236513774939963564033496652836048947194987031964260928533997038460078458985392946037971314649097958459395166219990871086009622942484520110981897679285659493564490320665381848115678266706112646398061215617832360764617186430179871932760052428885055680958836609291760029524310522511863656805917720484647886074837110042241112597040335544619063055531103659972941010084768442531058080706037515165390916767037856373060890480511309700406253454237277480302209374314255202642886695164927707785759981554420178258462730099186528326190665637388493416649304616823640994973462018608804128123878364537029649843787936685371845203491101407143508807857244115173398069813296868423885492190149227549608878925211071244849101271483336729430010646922922390412659165132102769133025891645193858735876489587969632403761959172472940567034659315809336554238372094944520981496330341835504129243602840479630765520973741252815000865076360450174752047767384588720053146348049484490920653785124001133579797683977280460240023802609373408438053084895474878638921744985064427315729680559737373391025283944838048516505130975591900502251745942883637182198655774611031690022477242818990857805322675592962807605932140833050904551273260594940009524151814801757683865361074477034713136205395803879270887797732072892346814911322015983457008343086860723126320212096335027331444563908867915809600522032366238776391749560562812307116356611795239563146076045025103830421409003058019705851841385266868697481867247238228798398822069231438050948632019250232627776284242119355624694615105827270221715168814573045604344145326215318978596325613496353598559375069841073983774450615681936724001017835583944475107445605238366783921373830667938044336392126996550057834319681125594201497764260293537759718785151348465413505287925615922549229364255131262735535954851214775413534039585033175165558321580678736546815108488905129479346642965663165626842680231716805297815725942483440525454368338970711158119805863811674121802438630091147615821677064529101132680081281355812938232046938360106635099273202262809618249721754254806222480657669478590642585409178294138363383774064843566051207823389133612977026501221973496385617779399727747727480395536557585704858509876730469454382446789327176009657356178618905849864175292985123127596894211068701124042138110148332914441203865830093510205189028480055402027150642439864837552724439707803270813168080724564929619374303389541141564619853731211416591484683382638584131351107915151397901793784923280668612184296560119080508608058415895504502303866089218876754274864783558887607354908428531504988157519552174194903099394333452086813189958187429627430406004810897290318523150307819962992258667340011684078527183457782950078565458327753205782175587626755921820554111659895164214430868660222991691159558333657192008359534855744186097197033402280143699278072660079064407219543470680063332079427538232411554268199925249479080914465894812220795626587077849803989004822967040391645574679459127571831997139479119494551704850338662932660687461597499062727423330174360844584314849051502950554377446319264072505613472488919645759830273406108876708112250391023551257429798982605085320757020535554676045480447986433822598452166781529401444969959343691136187700414255625365554696750974660848174501444863973682054016067468311959343624297851494950266299966516931910329125018029424882362428561783744910272994688589464941589369877316135757067272562862294653243243783934400341115419046166016775121998991319143356139775591547821939611174169511632236531183579519197813525721571419592527619370388121956948429437835767913364232649158660266337933464625232320478469954907154869618338553995086492715370995411724682128569592158429559849809097803844606123552703620403638916096055151475190486686064963194480649327852222402985590644996970069928989651407635406321326405836589996109765901471823925500594178735315080346988963246912388129687281006455183167044422729618919846970554977189186255462525493849181481902779642597995473163830862421745148177943830675787041719664558655022489343813705231205108376776875883530772618387664851717788204745590600404842390371149462605580416934883965917915018129890329071483662458779835204893664187896533290310682510047037225926306135726819528851764331222888648106397109975789680085751052005141847772964816077652267832061133554209928729167708399361598768342314984496458397184579162635328363330868509272208224489763393372683082183054513984222082275126593337703867075527943368648500567204456959020575717052535436396648711230895025318535333250228147287296421797861187225360586463016346841176902208585623251238875677954730639426381226996600257555299867619009052722341994219891513916598727803417272101921355065067289191438674779584671107750990569337362903344788631996471401481315733752624458890775215035411711161253467807308126154883983980809402800517900561523722753309737637349105617949573779513473709143040395459634098629122335875657677243944899126124701270326795047294544922446184019330867536922237088683433000684738448168571237097551205902728520480054842592076861449549394646191520587182184903202834415330974837390814879560236031297378252277483515002600906656249761119135114761446762390664131166308364170271329589219391009115980763344704814861219381046984074763893389388754723201280516275752350510792620379788761933854772897156928482423558775874967529274598532551374843787196148974620361329615986942971025860549787150066902184291457670114675942870711864326018063296816860715324030736117985059064798952583468678242378425185719160742287340303493429547656802158417135700797502961398592052373453619769658459315975980507299000998398454797571440594914874807642721413926266489512781266385689395400898492128278370557798932192870677203532199262312264291996834052963825400732354987510313812897236788874568601846674324753625127422149057364444655543929010009259350681204622092332159064491424200641684803830159302683783499398585731406812475150676445771912871421597743151361797037710119715650334222984582973904696571206614475362710186272367003502235262899789082480829171561065425196385699402874944052612377484156526980081074500192946989380214030731994988756918564686063627727652013656854842340188019644597720066542477975754781590795642826191152509390002865536606276323640107626220977784099299115696966712684283633075973393220108531781652143750785861123753993933819694388012010694962281688364917455755496763014793735884209585721987674915802196862188144793520396752178459406330842542376636400207493995556862408517364483403039570345550465685666510907297601792051437479017925156558065260483932615691359014523719142500722385555165935860924039004239868197422113086632294763515564220064479591330119697310635070453833647727287771203909496508122287879340693449518901600093853764885988994089552199639978316019132083850295666540522356478546814039239971752809797135332318288509841552901729582731307787430451720728053758082102153704890985404751828228285728575827957517030343353307441009480948236913763517405567429910399937517561587808751579032709731028276778539295361870940408651879528743049797327615037744604768212304009049954763016257357966899528430662944004537220743598002228530848714950753524809161528352770046712254639563417028816363983616718792312649900634010750408563348709116647480619059482998443792377115159458489467041310302902588484044928534782630618693684887195190303753250436992696138956574707233765640937118400109097975352389729149718151751675299249544289779082753616590081898795683351179164572604363243980126302989378149049690676298092513379254212093162047387649921486831715051560546077321240387446790806334734728595291750388236570881168093147507706909175385696025005665592274288239896800978890391932838004576958479679083190672621457243262906349768098907302057302818318432740182244426037486711180253543628112639114815847625349517547827735173063401522747548631019088670483758509441631353295930536314624114747540600130610614199672779249120048211294917107906504118091263037876056336812654016819208260914686614089085374417237647226900799189235579105211518606747763109508587656040571987074162130949501124833952929468336358177860703827065185968848787424730330404744336835710056624767985872255271860263790112095814936519762603464940572975085812743081590428155920575397398398694012133735218523850747366095089212825054376347543963039996101978353574096262085741595407766416272678909372679580127379459653927643278201931623680169442795211723992468608024407334971380137101571152653072495528124834056345013701703696865684095731245732675964365821540564543065804222606000685971025531856501213326145139790152816740501285039322843073245136709194528873471732761891662006160776237160224118425574973008381435537683540305230729980478797416016494242510674220663717051222271349344482449600791201285120909038236413258619555285918590023949991625634297268873805239215474135535744359911340970494658176265159795876085091713488944267805028965314412181644523188175855188506922208285482119695689804631847948964553137485679510392107002636817525437181410638402663009200444008402338863377466950593280187768534148677917551956152750001534870912801121847761369143700168905351618864511967312202839125497355635147145678740956215872128288726500781620496759348863311369740613000683700808412525253832433543378537624074608112892675900192269587621768350227125443270902645567103568794908119625815301011167947830739012067276831484783791864625637273116623526255369256243000840126654377058150075051293318012766497265095280191091562427501002293979779657903814276773482985747221408683425140379229097925193408302453648743964010084659033232855221713225669697658078692169055093744516769476197962478442620294256834079039993874215343629045727255859500613536645501662329016720518010548416024979006433139324400747709731083848334177378104315372808908676812225593581532484874823362023985268042209999696409834494789499553653772587181833754473564266257595787273115237122566207996298178099894958705521275810471341295213000990118878655668223383569871609558043911284857675487298866510729718823532964340658364365829480129268489535733846367121634013998309936824870999147585834448383166380984837745418260866962586971885284468331632771656225792692858298596413626447395395121395956370027563197268168357781303500420154207237252447379695569331613259978068760402262808230679167785627805699919993498776297430512654387052194818897572272440852490197561432495566089870214137759822344101508313106370265743394505052059106772237674127818392017111160663603485799184007423525724843831892087618067367880707241604569663940816057970442850532057326747892337582720535888471890215040563401950396514059475367456951924407817460260530688408161535304959426167679601776642530846427939790719890114209867743368530410980087291037078829632823608335804644562047975718112255939634743489089301693245455895065847244117863044923170395633809359117605546392768712944348179794761920903073086835799741294255578653816302442574213783889397870474167579965900745340669860639154669770316054794718224604245306282376818247041206652049341118717115219144780993429584907422667418935413607226774429857842415501736574447046344639028335784372030211525211437155322072821360779053386496433964966558948445012875282712049137087483300854013831663317016087727382934312833305127063497229678679312336202246936525341639797958814389579372956557872581158412271935417287056561637233130521416418702122742098402006022187013597689588906677820003291683024007366641109136497905667248105228780984800104973913075300439112906747013488981389368581615585000296185017572500245832292786870921927869328435652065850861373314158774968386056687293538160507303187037829421950096720718109269961572912322592402197559285452714289240996117880761557502732778071861434841097077756127133229615806608863679252490989818272710403298231774350965904440959650751624994640112671911812205123128467950599131993093112821608913809013048486757755573081780230500412427980995252286300247331026640645106031975528680051686837992710214640710309198612468985212575170024045921828240965201416082409093085818516867960355576421439494581833228666744936544067332799336809425315218314613525959551377208459046040593330425452503507281064519426221418985890417164579096402401839007594084138225381108398579828317645724372001773474230032705743787167121466127569093192243723562107260131846870226209551872321836592643616606684551544444450044450517245528691529748120659347092504561468247037759530530816776656762215690817184542333809651077466602642418238936915212330213457117844547720961654089381639653311932387588251988090221167969575167658461506694130755868318800408103826749537024797673849040837064835399410694086468619904931134403084600620315695416441289060079525864189185171927088959181956804633337050152465352602480927996143124228282006445431470783049161624804460910419429401400466338372268652162590325842345357621102709647601608227787013785090476772662610053028030994417769687636570019966245976443361989051484586734883031231892996328681861537138766849186263495347594339402455776765106305446840186938903382627608533267329756729964107456873796032489124869227651811224017292811671423082121602411960248132972075206813593773524773254667362835682085556591068415462750234164724264789382513222238897341115790530753129571553062802989183507294089458310842406474222557244119451586241266119959390732707496838473672226556029003806960470788758202043802797265705455422787828119715220290897708253016616112355848588577099160205185108486518258587677994832637988504769804832687229573628414839901242916420929412984861628330069801757456472670647351565552530184217249381730552999394660695503851711929682647447327161534919797214912964621845672185494417086704562424141047584952378087489091857720051857596054999210508149281786462090698605322126708361237748469450341027595739094478836838708890777262020239902150702199082022318925439287401639216937347302160934466726372077819868767333957049442270791764237723203078813991772189182896859329461508467097895093193999210002132792314239360034412582814967028429223436075248580340727322563492038609334824196008777168920494573594927952880366605431899814088841480926144795695045963918096011118424319875853362701808914077910951556763804513982342956989986057826830755134975756782353530052056709347618171470101951812367402507776085131505907634983733367938376298231436998388324293567919473313742868501874882925936732535515966683007466734287270142001202926924103438842314865665113172943580437532942962212941870972466831191177429128278249344374995382149274184248687232482631371519275092812440719762515328088587970817990048670701453354304446166972259135941547963123608844949382738245831692302429704787062271063622001133534769765972230140471963354145469849269176350615994950598795424385149140708279486544521538647034607276088755806554420938929586071572041457946759582065543591178305331234245572739690145155843286358801919997720921259032021267155742920194160492040334751220232772879844257495089305528431579193043221760930872507364547037918520786057441940669225556276747091098183842301411665774821356963964653667426389726146961794427306797843727170823014176561009767813142257317216323640481022896536334943976925511786343097130747172648923135322388263735663268859005088594181591383178501203274652905972854429241647314354156709497414580776703678766291770617716840245194528124493934031404078096750433573609623851865656682596263161707645808737638345748202672257975693006119539537861211517117996775725960397011190876229278728516688689613905116526714721649249902444534271454420551082944247742672227044083104034629128731104525025937645383136153402098526822533571382511074869955726243503347561363039392119527811149351212916481799755620551947349774729578227685349193384912946216758634769085819233442163703018953101081059248612983277029328056217571088737886857658218552597038418734822980145291672268104956263470745943286845559866467081901845171970577641013370808781102258550405145853197492623686132804565567647587770411317157559358939967666319699029863245082771800014578804615751692616008278486358122566641185911924742044214948079304612477586818649512240148859248905326645625562816781822531910483859506819152691339735940619748274496040025760974804801151780565331914985300306210913894104139769419583889395730643734724956162591487098583593157175697209800783383857673039182638472582721500824004954608818035769720729706041271686391833609032874133791067781876439750089496126112777627447015885122884278180436946393292750494076155986036030334894626987445599569310881402139822346918727412959429845429403143846359591235440583497940236725319727831208188085487055651045073356298606819905323727310362575217530692394663949004408317925062005797891289016394692894605601332494065355308305299550789078987916157160503180749486507320425331970218030544854976799715659897868702372831402536098960472269583201786630424526099387459448611162846633051686471274131393043631197522873083165814851910964335226888784869868777608502870040209618129378193300795583202045569388426308337640952572191761321191757650273383269040768876921782398344739620400378894305914536692454901084905300486011955560820832554603863872829835357152452201926820938818651034125451540915351482875738759116205035749603953388535151531321478236521854421341268437337601513127262334455336335951013586552198169271335700683898675679196765237597042983614752997228116610486426968761404276409517886386007679142182987875730674462045436065510774471601228021477476816019948370777149650508226704143785443036320273318506831398285750243673611611594466544150489275831956228521984201540618646798412552511087400386047102010730632505359198811844185594357510554316400091289886319102303017684187223142757391335764537429339757013103349252461737733601846669678168365310449865407650058289247196323182725500582973208604039020656588012688520153348167685453964312903855455707287273881230640811322106053462734266238122216248535466351281487287971408166988900905412591230302613490452042384679479878088818026629252299282736797647051429689876666763566445619323534407253047975197737249852147110720692503670889816341933217931068322888676802498781507361824969268092721957210825477660479040408633117804408280837690787758404733210244859381263333019005946038253869609524447396515445790418632951634877301577274209786317136398264530930671237480950139833041879400431250866648269260261484571128888311257199592948847069771133386392784919931393937810142825524107659850118317612249048882892456115413622980083158068845534420596030089557271049277494626495832141447844973326795760482392082629914915327232251878760737041286734753145298730232997078745280687917939429945809053353507769108689091313018772193683770246434052317429348930620577882157061113590473175423505342308970704903488562053960384790492470999098073882723630241423420489875302327828817822520442384574328738035321028201901300916888760154858258349851145606074567989288495583503440436721911814731344898706064276835204542923422600496014983053128686538985856712353565544410181050952531811776029203275664997056010830501196135979405513177878601476975176011668148238156761353476711265237737447025283138437336034333515121086856053409263746718976310913247573107774727116395620244495265510455890507802196961915267123173306361101109857180434602013481248948932142241454755612163574757338118159770158010190444805838772330519724263023293027866637555656101440002379818505823099373023653650185670131902251667580909855899560024225789016982600187984354234092707635550554420762266393279200289291511060172848883430105275861622189955323872509835418742007180622455629696967626978187546481929654305577040213923558124316121919906266853501948401463596697409044508190629427077117399724393996112135470660008547492702021853289123770197120782373775054047919476928259975156949137150207487466171159129466839589500260011983131248619693959166065953698874034714102484549456884207924634969892184805978276615896474164235957773019705816540188793835432213988674046252140446811109589349632346636098320226279057424264320721643270506599678352723609901580060522869875455403949369335762632376389839253276732729030058564912234509988170978050878709070063711489348957169980174053396109540214399715177292404981740332978219565568821300656275529261688215357878302189231607769012758090638221497441408864245411369805972020575086049633359331896972238991358336195174975591035359317939032813857043378313191587067411087419111294190608043271116635170673316105936225561253843477563571500179262269629231556793961049363184478255930259580829505072553720979126232053897027817381653377722060494843375033995169498485400798269703506230867213912080702019918971544263804098419865731014286605809938432734182841450307800330000828990070751638435287720100386542754543081089628881319208363599287833158837343313029941679772975034282545092229327113311397236351448474377645520063626141678171051621998113742480746825787638827577743103952169130920050651911716692649081457768034548713410151886757729473618344254149064939189008950011331316847860622795055448168570183068455649756691599267025940277684873692228598199517848332509678356893553045368291999298042202381321857569356373184452052009436640340945385248459513127903566185337952043592673075494083343479642795604927610302811969684810857840588856744629636762258741781234629525678888860284915958910035693920847894054288880700155932844504631138385046295218599405716802674019474628391810743033886160559327017582014487141040857947236970184763915603806459789165031275442974942608667620636904087719994149407524988649873228664301417083421563081413673804526924129671203428454930876487584057650174042666016714541212821487786597056562567843894931709454702760308058674294204100510677137269614864593269488334893764159437153326501157677012551678049650754310215522811866239538855010909721769217355898755934208452028694280285698598754296655346993257617190170326741044724986646560569113780328711148403537623492311282870645859963703604631839456500951079740001627571805704206534254559580203574278627650023114899353720306649346779251651381764562186274058785112474054165259105133186066077085007559669811630634217553784917678225942155421456428691188401789358273306319324506381313699015246946585539028837319683882780881131402429664198522008919540352883698489189392620653795431632038808294674487587543326475288640780772953167647767289233692522729606051771011375567948913734126881270457304709654595041920322206343122503743058338528162665984414959136825397625947773905320115158518009258054881224344656978622285797201261458444131805279028981235379586905887652732067015110692442422422863100170815097313340100390709694359366341774832985306650234970171727231369383551245162298588647520342127795143057838470309411006664201304368633191624598426741618488107039184468844751862691730449459593128873171999137136699043401182489610944162114598773421161248675103254301676454788784515030790248221120877775274596437087722193220547595190161387862579607802515735808260724421414198635604390476330834105865600964913664099272934894578712414872758531885500563844201553194596489447065619908407174998285321899027302548259727598779692290358916474395141194969334755811076063644800735196575286074957662060311888805573760769511494780773477117292932727729867270807473617454836074043205317461591130363234757609466949568453277212057011098664009473204616089899153394464371398829486520232907179583034752185668546339875411113011327489970670819219150247140079945696621856726569073760926003633662786713819412901793856219932345392571917374682698791546948473914735566857470491906425677935569408392614651680598613059789492177953615019067183839621913073028230646551943500980395730444111796168078359090000282588588240879813372766152930936353256528722610165473670447687082769259899696974507005141329814300899899416086318063842148023237447681235589129254017552969136523420853818056403144117855253891269667947575753780889324972761578174911229693785902495596971826009725189447615814042869328202859717070568597689472114202003690243350494795061918095216326852462910156154043472748334214098605264669691209244665621648142741972561824140391525709904000281853711771008722704340526247544777970777445322126373684802103730357423124955541896687020419371893565130628055944831887806318565497097016974529471205389942356227950222219026017644121280244712824887225679090814951756843845501501235578988556776902677367034276052421360593010258786603629052043160592496524911519408393984147513900553250834556825942651432988219753940364696679784564029060035441856844731540771363757957564987436987467136626081216612675956133941544000171851420541581540563524808069695989588064416775366978968979397017886632323312193983004006668293450985197389929725758262165465169413737333691953238626298008845498823876420884926775016560474388256373514619836456081619295764846887280255617816374263228764854600689677532686865993837075399467849641694296738835088238208396708899464288392667001962467535128549049901665483561239232518617949908748772113034246923495715240369496132940688444274274202218516922390082107037762541651913605188513134048032598891652440522634172140889992974473432192348433997059529578333899378886303192720832551706228703463794131014633936899737993129191510477006962888759546757827209189514188339746089925862007079442501657925181735331197635678013721997089820718265455539056770841393333911371657572661657270034218963044388173490612329851553651547812938506715433462436424035111712246467472466768930180410519675317931043945197471531878782229230316453947809880164935726143968313827153311462401405587894484492632547860201381153685614353300150774329091079702311596269007505125244451589808199561745478539753198491381974439915684037256626800805388378126903167675357234402128623763093988446106985688025304052580682395432862791103064718170160487879796813417963521127133714404600590234212465491531581412942684203069889533359654281789127673265916860130246521381683876323044675858939792922442667818658036426720848393541466342037536606149407288714431121120139218427805927876466629404679114506720300520262749092286352540584004039279413808153884141830924225176007699803637571088344060716430823278102616283290438001178337903493245796784965384598248078900457862100079239004569827092315348560036215411169190961782040185239494518298547819219726905410915692446500194721580710113548964233448464429650062941698206571099781826462899586803218961331686561333772972857708610802563724095709199914984924344263332609376293534384454878538565026417312021488297970153018845911786425536505032478993970697226536945390639585602175440404238598509191169256913777193583123691691721893268722865130127957896892077321464163759946344589562652177719345439399612055459529690652920736059930132431273023008778620662142149890194040406351135502587550704930167681732455253905405467760224995013389080715841464132591896487127651153109766924229641983020427211457802791092133916739953886425603342718893517818642641417105298707982588799557501429328208214019288761644272041137269656219767083651908588601133437478390617660978343960833923077195522690639388766107096493090586549220791000053382126065716138843555140344387444244746135108958532414530615163693614990932351597569131543945046159639896475952792104312721568768658895237463578616254658033034978144404080450044466423094457101769987667898409068289471201865220702622863009648097031252781003114313493831981231475427711823043402198382139688101787749949063277714604968635478310872923760569906812223656798332487272137595448937525532675360286265869890123584013731687265011831790965014029168453374483149834886926553497588885029498525783006660579866884830147283873893506842380840469653021679524719393854103301358490873944001971958371894041706746024419024687109056496086208733444018001077734158181275424683538591684694228349429797376950234753423089456258719699787981347678542725985672515383966117560029916721807169919909928155363391796263716743361165381011605245981351637567086950850240953704444068146561003207753452211121989870438102354465449611027451852707596635270219332064519184657403685620528772953001740229673087379855925428196811589423372263018538661906814355519192449922718343140867122402900815860662131334279903344031506184624249599307302186115702473749436446339409896387077068758492984067618783818911478096595701750089493648701569399697100097424763434875201276260862003009633982246597830611265603209438496910975941465349719997509234796314162374555420936156159203346234297026439557186712403428273685361902122139266561644385898620515446476244283345646728556686414220129127909802380249486461033484181397133785813327608091376319673828213776467148998075463059364041289195644653460834980415658891124534174305369578626412665819697380137154386104806915880305832831129844999657383464882094897456076035304101810180930675492281356201006767037648191852399862697169931765833833745370778306157676650280989285464095773760455539922144733153603183161755793619471936678401732435108586105121322681583375629131523999524504973594124897204581184610541671583440810342803198052479853690178340984030393713953278643556187716146212816251920872052202913379494394409452844542034717574135178434075448928719232281785178648867357891673427189677947315284161664432705641541083422219434732288686912435816963243279802282767713988318374227659669329855638933036890627178922507298653174376453250122249632970534280257249183377466556612108062595776121035331210225364494601702409208142387300660408725580242853839252753323518716127092624206277362302986659063783145385742367713506345249397171741459508967592581309966541123530569437319589742076276581092609362854039315990496599736262662532033688310316673216385782022385864148070368209411663019845101978173144477680999624272955133299681587868717719794122975155720727543969670904857894986644389173611771903659001969910122258518516366243681952108479600176849274554546926656597782674733387787310181915823491919340829831953991696200423537111741212957866556894639472287659433385144179297629092189966016649361184172753791440629942876839012007476893259231594994402085124173693361792496930053628428238241918148187609266875293016894656379206798360044157757717143173442013284438479397958186282408268664703190935780433620479218812264873789091343928864621833158387741910633490008481710788420839316235306734953141868845795558791380060262155814480538619431413591389660086346145620598681750084818036773987066112852549017066694853231906849480281115734875773476794434038690503674132277783459737639246422907408694172456470438373190144018548519109096523891327714728090578672535077096394828285602296131556834992266430133632131194050069039419682678590445246995325330824862313068641616206416277301582989468619598279471470194345595593905588827839750768856346397715349075075591289327725884758754884419712578254474245972259917008852867076476955953623244625771352185228667273216681226312276750312660199556204506348146638007262712062455182513411341182801765432812895629067882296220294692052381717486123338043968639521309713923686771279117302949384350631093227674969471093805650953699108369717195287727595661597880600251993708241073045124327539944000913239197230380400881820275177734632193637128886747500975390754098413289216500328489013531723622854918040067648508134576391138462324786316792923606908211518291588551369934376647777492946052065012567048396884566701576835624886417988185887541304767659692910911481050603497587314117268357709741613837019112515883366054356731386171797864552829367335952220399964787367549449990348312271038390740280400211369580216018249858337217106163771561820922562191255306532994750394623335683095683286753973073278450994280579887224164149929545353094963925400651949262632864496008352782256380475266753360905363088321027889769473677479270219900990944428563341907210918682781580815135860158757154443167219520995186811834760173741424211326130575821889593425781772492174114743895798541407061519295837163984026491987660351727122275456399409385743655626417893185152361379706442330136601840622636985591855411117238269493036863919765357569573664796786171965692519092758454329174289064658035590511602444232032852215596064589359360584610866242625563281849043096006445006958208357619101895237146271521725890364113462955059003488252715922793967506337643430667153578052041706539958072605505335478592199278087553407081750649018049405008151592973002622810253785701337550120757989969211841626166855137678238806924870799123355446657201968848001486314217349611403267750491091469703670348064789691447790142689329643786774138809779011821166242469115193873133445386506491373056856702933980580551908551533195958457184011774641948207546814019109770032551324392126424487232968296599896955751850269744358238271236752580630626191999290245124226508188141786916851936589582720716188102170770187647241406101026263292791672035157411035857740425541170327736598722027357692759520360807012599209737956908479525710294207477296808954307080600415152506598448527593856963407248226845842753845949933307619189275333023002729265445460215853775610402131349681438173340233164089886748747743846511813001566802396933226544726653107484704912581225868572827067029910629263518802278542283262434685195009578675018066046602188257540370620733549840709288465226017576725266522311511455706112541437521537782648248154648857568297549312296429108179290297713073697661920755469823719646599647880502367906818381862321673536841440340203018436322699465431148868386964774123201375332753675913281777170325071599993674777779297348345812870315144220458809504287607584270177652057663770800795783788545569371938855267724493318588271006258201066807461324423769460395756524409198849747672282759255807147174896248763636126027425054450971297415918950207372930819967995308356290686392127757212171084130575276782213517245624751169299954404290185988648912994762367015979965107360118529338483911901207749479095393456877945893408644751204587916828978775783075977347472752054110056087967797692232319250472693200645881806219739222398276299861460603178905663613650276555847803785039112729032948971727280452656630454316548036499403442979168555079766222591699542079501333653989397802798453673043265175233459515296952474572939457368394244044670324113190364160755184672668868076379781850132430498528127057926584524179226222834235511770958716839520228109552579833515496641345996106891885828752621103402081243092860978465109525309397512731854334754704209576404357698838135617228342796049303523859372436398786739399420513353821638203551857455929615324162636773597064022822801959787453353198527555047971890264506809633052484218513367423356325692785685653006849131131273976508145546814587383072030372844776911565656525481154338136007150210627378575701388581198934468730361383185017754476690555718653757785420551382002775786989931699270757915968020004190890613484967208876265711938155057955765738863463105651135541243164455351975567816675534987590055922330487815396202237055569125367359618521156596018315566544295595299776598834447717240203496403239001885883559357037566384878974903990809992608462646668600553856211331786981488181059015362902612454139328402086817885244762947621576697845007208833048459891224241183610242583105728112962261469647922773392823973288195993565319703918404169203250990857792381198503362322927117619559755713982820855092677755511013694133893802221942029347633163350123258471316589599862114647399277567189593411577825784209335849061122506966526589297241217659971587412580261709256442348649751684552405884436957869696685184600575495714129975663188361932295964774519533079038997395062227814362447877626684689065345040955903587907259467861230964778010464444351687288508434291004995817212742741974470953643738906683153651955516757730008848687675641589344945257927145381254992448444963993621683841786026173324940718277728832388470485523911556224084498676063523174362682425412729664736350335291973164202415404748796426104409091728680540548722194379199703339169142747198464142989225103429612314072999720028525663900292564014101163138857162797266411689954199342477897347222193318220672254010628016450691206019228993804391228232658166885155533288660997110258501119364412129463812575248424261580889103124203399304748548482420598544586335994821652975370160841534832860339523614937935323286636358050319621993934985731042200773287993850823105105428403543678434092378791851291458195546095477171093377414015201622677383867637010238071369789556176961877695218430298933806933073386879060165508694948899757823622618845357148207973708578120554732153743236786500886541044686714698505609069124882445403723899527223518648510171064281608925034069847418567238612787472225071230789858527305678491551854570593869837962314193041166666904994473495801145776100696523120264182867608507321584421684826368961527497854288707585864728462341823538503640329335237581357503121518457615137297110060247236129255469380743403598650795380820921974812559758364523811238582623142727765349067285373631504764385583117728652423354204314144111631504423080491983418173046511676027197272446317511966600190959306563584110449271508627922536218703489012513048077286383701554772234474884916628667266007711891489298521370040637664611448375934967144476508351959256245430531834212435554528956633754102892209093997906198894559624871172331328318402069554337602364405895070730482036095068371506298023908887073037717737214120206554933295922811428135487303074289489499614882695681076847116435131673360704474701609970354774283992915753896095499821683502971716929836878779148794203926090912892057138822360562277608649475898585938089427941108564095744650040942822182011836719126163993051367202283826908420808125422248576409425871082683631774337472562184935648055517260658065790777329357200679203718750196130620507330579117084440273163906805300440934366711125279890545584624932793101642584507144508896092862509617531479674796566868221671892915736128979562247148531508015277783787858337917637803998326774563714054998484019133041543303135193927408378802131397792967370048569131324648287932710010789532334540251618882154222709445152508483849187213693176703759879911289055845484529445754003180804691409297069424727594156076249500994888786126366454881394100137647627434945035684187137187780073131668932366420079121980886222866614177255471527640317033185075134681627782147449981312572312791518676254782055434587836671382914988082738705250768955472310053605953808665848293122947775898956912801729369203657201875100953081697163332411303791519021720329503872213793283603535544069100268222190661121403300722901261201672921040348406073034787414265273442697080323237976738880761043337696886881693519920419166947908032027244525795097103119641692204858018788603906320463245370125135404700465029638761787286697082603789160130693351941315840275572228357393056007996222798406635422475909980646138999055763545839941260066817302697800285773278711254057322467420531875678096716440380042477514362895411194414687823981672840770744039800545488222460675112630121053439846066149637080099528901150773992279992482768113005485656182947953811645615089871686969727728068248143770065277825918137035141234679862249989367382350342402875393598839740326350147232699675670977517109558808838705464483087242503927609462017516355730378770921855874426432706639156825725685723935737251652524316276806547311779085934033113854640914471332053883107197613782223472434972694870262838101362027326091255004937795181279911846851205786139785390351681981818453301170092159165688534005784182065431843489763594352698664611026442264032629194528836433061266942577205121137444447367859049050440494244661619624977111651438219930738015094172977524091683352687366563810310141807621334972387176830529258901572429499349581365050436149340738073708806563947423148933849396920906259638802156416558340721096614757663763233556406758036354189243025555915147141974446023760031587583282611187044652350992714309218221828909492375246171476342332018322370934943508177974134575423163281430252793054456808499073550003204008340321172715595492746437636116864108627325057621561607184268488910825642643459211930325243181659465698442893535418314708492620948467192288146917987050980612084662505127080194682685815661002007176956559390053750818109351157936290604457233712431466217568625003511919219065030204061897159525755337341547638477312994688266753618515590975294332103082707376147725122379465661033052194173586538447914756431284649419215243584620871359543468709572595391453672563213492409721999954402167454440974082376937633420468934866692591230179500067387289416436230296782852040358179174520876097964315095584488833462702955322011569304333583284974004555441906975215025781182836855241804408459275847352386264823311820642322742032562525007794194528200324144569834663474034279529047600095716281791160467554222740003749581496271802180189824432135045519376371222456232124170761664002057663393235149924749030891320864338307677839453724074511991615912110240179916966879057530014403298536550318414124176506819217170408298306861916096457612404031599093931092849415842915158419023291076191939577103428109352389985784312146876776849922147713139392611936802523289032209446050458609921033882954789369533305340367989251421649105833045115107030028424211082185477667557636871311418578841723573553339310744634141304279362683629606202251491849517202769101010593363561963709693416431818471852127427012737380361150971749683135500398180550535407114856248312551486025727719095716726826141139007405061622550173925791956311990061313281375428169650032095548393338250048531001707551717563405971016742808376124670773166517334142194540049620841529722544212510951187359886183490624447940325048584164513475221341472087081123276140381115569080742671343030548083998293281129503431475368511208551149269379995370369354240785966701597812493918000469387349682399600823602243971024462065765390486142550766035453407631068445864003310177807746722109080201238124544706918884800004176566886349588291994478279851313406131428804520046959403172864364373449253206058863683810874592127641553300705931760864949272534909198492264516410596907649939409774500292722864174902060869981565594070505669091315299413225035053842141456737802440135525724085091924113140150477424980883077508573504012295626050326402207127943068192237883490935376179986510158338198497157620215721858390871305979337877997368168213333003296876702887739270964047263169269545014164562670610057947275646220716233154760825184463572901613749615700005467966251741699813275605349970836399441189208215811595262064936684623491168463549258482948480550067376851496781057181328256608839099875799667836904735017729514980412976264414786526114956700121911454588580864843110479422637920087997154025138554413645651233691427101870473958478850846794002224470485201304181367394443196705730459600412825504681479956011462118221686211440692174612132648970413446181603313969315110885902533557937073304786260327524770881322690140195316206236028568221404576476506111102801281313618527687635646191010230663097599142432223032746311272172988221130844517250115410407704558061092541574599278810764073985599314511779448338547579488756661127574017294783055158870842545215131601994989002902161254964274926666313276331298126032425951810547382352077820594347973764290512891486788625161803455720473606379382975839315504195757816229628382997850356119986173478126966712884353816057218247232709538271685525059578543811709750727981494149406331998982079609935817070780006859225209866656808573305131082475814774013478464554481764699549931949450397651212634473369275873159254113404959866450606076260599473399532645619055564037639572025965014370164060409823195992112638185581097032997721513860260650237226176110946497681755261966417122768705802802563902693466571489268943187576209126854140173010666594312492852288696599060014747741944709875444314464069131498843621881154349970663700202620661633570399502787243637339412443101368728885913301049696458832091386349449021264538461848108827551293709762814646445288648848071195716404285432881910786539433968658080351437008713025653728902368033486647805654033090552692955789036270011073466157426491596779458936644126381133630029200385211947416785042004751747089863394757629164479801681735095545840512810564997557960588917249979493915570840341437222442804007824609769251477295919038723877155413764904369288217676062670963553771178032735923320775378170211421704229750139088592898016422290549824132106295026925750117553832597158894422294410412476930807631255765498500516476437076948409896046347666768819160820482843312542540852752186028180981667650179100228654872168124327130780268985743188164128644668205855992039074646826916429631423113231410102374093813989772352457067715549874870129299872085916622522997939628448234770708692664830699754934341510887258138192590771429464107902708575410817515607422000224755633427983243259097513609658486625602403558561372808955211211199101412948183819025587919416988930337759777483550176974476515586092278429240508587387643218875704841146586561958162421935834015118990966978534791391367568939684378140862983549797580979226012227852746193380680155930812009302156075167446303410538538613057924350048293446989119553447643127124991494030688939934916747790654408480187776387854635105184953850118448543827565100516575466020242172492102342597043223816023652506152038030299174341045930271302463317378792302408810471248043838070011940167650352153115362607374394100323868331079162602502309864492208874560035933953959322293640062759199102584690210514854352881606534281170997441309927590338659555430916580665464669650255414031573459062311634395205129099670142964540748838258700574303099160774149691315826114106722374180059559276384167990406520156099428262239757998466616469158844471995515463842750938970314090600648768394235045930634525178636803928644943178718609207372445888823650530597746376237910257627628609741148558504597236012381990110967979670262998609545009979225070188932935279568919595151089814023102518762089975772632117280545505624297238117461322196392316639993383872319298101778521052038854454395990353709133688824083003224276491255688436848958129504209822032886302974221752014425901710849362504763273729529170831800565336282333146868105372788402438854588393921052717495682967399354183770718386369638520335152958934376111331228364668228662132748594726805449808496919917401467121519493158644637452123495569065451150199117362619209937877043989754543934246055469219213343782616915151146569220393204758676022456031844917367232311418247910512331787484929921631085529250812902763960972512682041843202918077037999577319886604915057094585683803925778435124965684979100578893666322205677540430553884277036268368293708294386613219339009444835183863198641338728461079618455975238939697162927492290688599396739917106171379696695273794650699587291580916544622235245833997773386911851624238492500628952631075843788727022681809753036756685192384864251015639718861425101524047066522119364020668613341222187290423102424312827428546653883274494761090627018992896287993792856247825103648178520950106789493373867323704737348545622757473963039702175451619219426314370124238273113314741254474572610926356107482794623737944408244043218986395944485181789318796258282980332028113535792313726099837833398166504056417133882559401859522632717974005490513501425149945099496182758863812503782087832715405523230770845170572696210328303342976014513167626232355985016649015820655908242010943490636121940702696314839802176620144677343590081908949650333316605819386995351125855384593708827469185018818270335734240138020782090027818574224778822159646730236458650836025200295799575590983954033526062091504981781436942067580420513956492992773450084150713961599506281456596574561443053246023248192039923236912195554482721068078415010427317355974554834257163335417863221284048536326246924237058819850817544861471868432400085623426155426227734214159791706434437781410891342161181270282763677560923748798644752861767888595258506434748981128728410224034742089286622596708046816360633775648484079679850115039408216924257734404110701744759201730153572043010823127136457733879362801091148418435085836885474364343808740167147110666055199660200242018619135160894606930870155584313564241744022303890576603281313709467226044723943465514115393532276706305519212188002733333875649680130129735035559773384040446498163870105151391167129919762723590400111339566009966208428061296663314522559434084590787220925410176428574332758767745670102672508466057491736964909745247433379269155987451996269017638578575385413298000873954745653181730410300990605751834863761720421551286187812741278571714899978335221656971369557546254434703337271720099703225137908468039381112656558101104331823297686166114576654614397204304658889939886909660261360197660471018888373385425582145940340611650683282704716269957399614368085938989894741428020591473845791661813346550681605882565679353065683858695414979520359692490666202773661563050299539651745785200080024343192307480999014749813969252103024992856485681450652160266989358956912123747454323624929335476808663339418853263027932502978830157178637409840304161943563455227083810075080510543239748029315574954338529285414424918583187668658778680309749350718178527191355252250439996937500293610554394971680839205522994150726032800769148264911331680043801413860334411650565559258797342000551235996762527226741244045623368250173639446344992473277400372653965316228059555890585616318175350985042293702235896456406323198694098322033451830932649957376807977240074025650896952940836558223012427662352225544501617273376539644509822583760743692373643366650763306267979312271676161100155557004234852636826341757417132284339288854892642672472659654349863900850908327640004025642693126760826030591293105922504159721836370420225246025699197946695455751696546428115963126949754294940790917141270121799068767178440857245186262164928848869598084489892517713195811612411391144273836531407924144672856735770561793423629569753024551728986947392170142738732553129202854878813376218909776220586881365007572706823602783053666814182684084167440064021482163725739127938040753998599670361380264692250899993332758923228749821740646089738618443565365724003409714592191967428814665722715434483778420780042722303185839131279633732840290822315066202584764401642360290599788160338583879062719906216709883654850517461491702506783046425665943429157346187404987056257894493538583972502158625304247569657226204148591892986118896638917634652789233237027607266089416168765870943217737639721379183452567082338465421740012118752010203659985711197624293026515035852575995351944560471605215961953714733599018050084063374491932075896343201225866368855508822357188366392384934078863790591555173278852759343293041620684207726767657041203101394484944659595252739232827858998239539552727628332394055094491502782075435601284547419409774965789740314937025969978654327100620360833716396194589408807274968073699413776063442977519932832049264597340259025289247701388677419583573451195527040267963660613190095712313440117934727340049028542497138502445160858632932706630478423743686282712120613125321066874744865711494210295849739096597496526495018703297383585036195271027687684273452890055272691867966766280556455555134963971437600351651534935925422492609971148008728729434457155921532963953720740714874705166767999825618959203237532197014527685891484311025855070464767259647569833702640344188358846359480660142534195962844008847115719153767697166492259373253463080700471214802942806388974087639716592917669138973343425790704046041874945101942176664697976450258212830106121704672014519632634797367806418624045200876440703216695601683815009681698038871673831585032288973921681483924122238689662025944526758313989155290297809365756431075342189774026374221253314276777179470090863642385430965332983408589425486699633123317434295268387078422601213316746979963148981679123161485440497873426824892069011457315459306589735722233106127082105292009385622718758340898759815157255034751991104347505672477556599624916869789904927160141379146294985900965154956060872009026317646642911878819643965450439700400141003669502357094571986813903381563891750981814443602427420353532797786067889893577225480656540470528155072763144386588976253999704133637186906313538907364044123265697790307984494298008278137781950191833930637045731911406311028408562824569221819274714897100171136434347967175547290155063365692212725303907410001085235406191756757595129071216909222715872941897163646879481257262898399699071250481609110675200465532203396961113419875443848043242605879703878883109011687161704513904450201352022771895031733506888632399775288729026629507920947130234055905000538079887153659410864161907519388183613957548341038041773367064212731566869534767104565294940948412207028798834304756685069939327399150507223014454005707474719174586874942429552648177030690007242780140402078402754806859162910435156043405839367929443658599180617770434705940450067954189529542384891107466845446305305147908351868121823008118756725353662063549200477979981413291122680665806055816598524803541307640372268522598852722057115773891943197561400204815939506591506672562694109639995253960742834756338244167807296840555656730818214443171576788911759041407713717263825891626817312158906636890380817914313563560901019540710925684179752855383365951390286249605051523508936026669368140312701166837762394688525769617696448174115520925519722652063357061872274399376249408975091890557667443817044668428268388362613524850028527993549230834259738681156916265772336298923462631238604066870392852701665774097907275134318568354013145302403750141136566852303194976980866631025176007921271460536036408560348686892428402051546057519329470505646554998471840544203026993034276202823893943493195890905915718621648465369340259799189745704111593534066376704799755200343932268001978819437197346862253876357176337704033461570686561425816741480718930527977043838000478570889310524693366903870957356592564106598999582469773420198657527620110054865256345549966553711676858911077760143754625222109670577558757055359303205778519339710810813800774579919117288799444469187134954727149879121498681321971799442122037672372823810273425492779898511760419780592815389939201279015595330291553150031442652084650535535108997109410770758774893157326845094160828233990883605045109316892943953413498942587045939045473929133684245247449412516554193432228981228664886377422987241093957577706571781788142657238648050060397064429332674246463686764699114139025079623055422249008305359707515413171003855733002140625275355494764079559715722490548010160459275222150666773522851603347485409387400769313475046909231194159903341223521593775899864396487868495921221205965604180861724782041256190365876952293187134515933294899146557237041466407124777638494900012572485666565820724331657931942894863925420552192350111975425427547278505663141640458147268390810566123428387072491353458455827656705047054497376853045833681412720304505511043836005896309761528024057510610196358557317883576444906227428454448864673974606868839373221428875220972681975616849798851159282927761788629290671279696090441874868950160844133506550777240253097841823503789707668191347596842797087757365514411109805577156857664385418143978628418959608634092045399968248362779904759233535121621987149368706933018704739905674343843923974715743327922429842572554486517451182389441525301973227951194394723510058931447536920450243175476710835549444042191678194101074918000908143765113207999196184599648422897833674331501679624286078995567757104122877085930942333054078898787202846627269471953251057936636530160173033381716625071007240584245231028845146716437906808816603854955654152719798705530202593639128036501844100002623575810386112365396008753326849705448000357182351512149304414431016262089714524949424111296597689034581186616455182799781192331244126701305465473172047014006438302859090153576469840552978564311996034175819785340519641744744902799980551411034668081423361806499724800745990912407700172329258216208952934556098904288214611094786365009939520477739262184637748235206254871322714926127677893407184458404284956225711366693168006047706332580394400018368729841931082781543769192379850451964233157682177250335674875017296181253810838047315346050416169467863439986271285079083448389203233067223472927361459624244148654050747918989512900631795134976066544582044389929014486860049773439965061452745948129027610175868929683297858821797841332089435914707109724123018296872661582557695436951578536582351815978435461818707919350399171666950247656773246839772762995939962535918839024665298775848560316013211466395264866279854460749571646350386459635626976099439267849795063439452513808009497883772277205429710378111962564333217172546700878529163906104031530532609384116144072413179702698244505261600225999417880095635166917162274469246890270715658235245605177575930652296371770207524945982648893936922691347996664300101388326621177740300249146070687664310367805878080383914882867170046746461649986883508434940736844568526390177301487353855747514665831892542076781124087310369352456408237510780718408093820804383407028701127341073951348057139444559838399545674235716355370501998407295965874959301136259764834719308313350145522489086477284547960003347863833316942477406345271983209197474083612275025450702671754423411499711030167579626062725437601310188976551632407522403889529244216655534571580697757684599634255081919676128791858025216672435796635596992579208562476576608463861063708959673304385596178724127846548038621738661191961921594228354121539948863123365767305277918593828444831561720883157356294058034032347152281989264663208194037963318328312428570167326640488900809421160722295146084508714240781821968559878350761987727421004509203782324321124597199080976500179889805461055619864216647263413990405904595624726034338889010983237740446032748983492939393573837390968278134664739273943106298123206321786592840921633215271809009395183178638584526572007327197830355846233387281802783893989576279577883480064462685705818143018702351936152240990260185275545287937519572516890678686351145397714523830431383277214031394804157343526982863770486234006965766547444854612856403638021304009460624467402538886738097578623160280187548101489808583885099116292181557567665265106962744906302029210680891799494025434115510281300933275719722894553987702148135616865197733547068667148269855307371353261872280075087411422765390354664794327362914160454767092606393936114300256868414003403968452103348498903774782186132098858786216410957121124012953553558974500705008708859980388646088971391917993694576786155415708651636191478523913622641065097489809129768647233640868624690690480547505767652613640660389033672312020060543645414833781250353608547076710858163793484782997427649653654242628965457514055348878537925140776676588629965553715101404003938959939223675465715211642561269215695981984702911448774189030752689212066136904976951657698482583078084279746201938922350472558581462157037782233464265085188631928763143164536542317092216082499264867295097932318865684932624682049456079987706762469735586976532976588093769770635085349872489532889266548587877235096638891990985821213135378611686057714821992259680742855175742137761189814883742699489934938810906583714685061327164558499253397482126189737122596952284306409821790571926227448108017157179610207495261316829052165046484431979281726936046414734575715716490184114941255986430899394490418589597514745414941264725422420751526974549000246707304501630549627780617830011954525096711343103994740637245990824344628799164311796348674783225801460472999609033683047417665459693080765284144373223712446991482483167070077216398785642823495608013308527811278556570443907478286300815141224806310952725197175800717676884182113343277317484763715295813824010715326428777370657064669125571229978410257443772147223587377736422101784874422901489454516147529882505168151334116893637357532538244342800503089744176927774032296439664729293942543566805643905023615363769491520240816292119174863175117731776193744641085547324847944470828987141889759051134678064472256511568915038738916414747016103083588680383483162528420067969003633277089363820150032934776294952368837821835720025537608748233608390302484116452979925295942036404573840097459016545853280434644736686202688523264062266105285697446327553494883296308378373236581963886893681458871479086320318508138533340597985628956198057464156752787502467578958768754004814836076538198081755772707526295850752034843330075239091998595291375375041385454323361094760492066275335747541714144348461713354607050681448331651140512262555436349365339409113195665883954885563298441448696006683692204112305430737725495191820396399280247706716871699213486740690434540089836248882314473909150177328953355643426862854015714479822467408794714886412166600577904578126265464470771732635328591928465800751785108721645961460124624556088162245937207682203737320197340255625572884580300981151033382342482701320256110193528370012394418517724552992289883093097038436248422387974837954634096922168465934925934196694345816859374044465670687144811065245776836011234240183011119709933883315630376597293571274001929955698251902624498002970866411749781826393063993774276503304066170290828939250332964661822696492954684560584539928010504205193741214640779986317915907763731928372289847097053675190200089728708399407295607274934571208356124006860981813546631410873270161326693658400174825285462975715745720920637207217543783905841417411714880829232547214736837051910673694820743716651867649895696293700544690848831425277989517246478703098347476181144022725466697182376464646143697250481310966059440509688947495265572736024667035704336462301388693186414824458051119109696741310779553812182090553663381230279971453531714129324979637542546321153291240941675111875293777869600182055992702061550774736710636450830473286639105177965686771858431743497768040148995223678308821577361367863331870981227805990886539963502130954858319392743759564222753824630568661228327984859006972724399824716601316706944435086203087036001670170783289674435525647997149180197723064984765833140361869791654674787138658001902381416415839112716857536690230526734466761681952015338897284876851049441993119965451818330545585175807122976918727359783885913230609987477663927143305999296219913245993389632772450072236678727378098941570544429440983803224390189081132261454709274992419273849924606418550700656073742035725112330407668539293331771387136100466012536398698199093695806475710862812196713997252462143675899294555756177776586339580913658103552842479575402416779358897212879735848321178420862537176234966040447865233536808123289515836851713185204889008057289925596522851331831423978915185407079029878829035259109660956229626744771927617161164578389157573238674299016650345452245381628300735315688803817005265608167064360331760397656862499158506264900468184589836596643159721682990008112867441383680966599136624524083349305040416122726489346051986652858808083585390609928217241407657224291389694329843003624693851488937669311454406224923298507416184462682980050940784219682126118472690503743202216879403406109648286467272318913955840571530081922076176148077725839953252511276842611108475397914561032226609385801745854722741675756636091503348136649923787766763271229285375012472571716822733853044363493828821760172967167480785933270015125021304067323485978451935305173732348032170747400670713102897104417775313279484831236039338594824939608423198163539149553216743215359117777960549913433341961684814304458302807681441502292834125937627651874557687378894042008440242720235408070129021124057818576616878524829362597963132804346648025641129825025625590492931374186088620436672255288759604140717787116678787020460672073754239820357467541613067054930686478415511600117868978854659418139515930951474247416468520534525319160116547770520946515049056224371278551339200722388597489049323956355093949221459008100391789386256384270992228397335530711342608486046965364786199842531374481042229086187397043985182011618574877981399206049621585433635082089125674325040061670119993117484511842226238482200998519360145112898400800703215952219098897103943341970130277601750598927536897920266484120447328332530569476034504558797609098183175922273898365885718615129429300608670821047103492092137283818624750588294247659189052919548350999022089974298189001554048042214920907130342877540290046470494442914091190825618193918829339583052469730189801669645170963833725443375122513057850048753226916322475733302093282802953506539600821264379231074264952278641151932672543656869616900585823896533846665900764167857008240266314806869309828620741819805893256119690145859607598570466892804923729147152362468170183491332999544178943343314919478671069325571763527251891127371264358543908258672465547325349247808214228291485037147578106066511134110155726486472523482938476077261197547177890742226064828573672577803906344474431477319888685384420765894480554631718997677087777738868120089165106461833488904228841411202654192538083629534663958936583533362390632344497378458429227616334491055245573723940272137416744696229851162845813907192169778881000643352107076246579797630086836041819158738394402035447673668172600969745595692998658431368250388474244235969718327488959603607112235660468638816807166619801305025343676839741349596254892997222414262547727660036628601922250845902228914020129592447148717664007020297807448665055670088996662058880627889626123219677648365145300007119181887908115154775292592662692543633836418229830732721534069066187862924396800527392120947846729118484764164254408375786031941861605381000243758521754634612033584128266819759614571186936443854276601698312789713724442464844484261884636449580093038248249881259445744077379059555798717645528850140745666293865988748931579637176575265567157665892996936165624593590228201265346347401825395057770757660552033585024129184220758009922434666535240544439771141519893463606375743742017160471097551239451761427335989610243114334702255924700107913839304326993682276692737456296492355916925396787079568855056889800668918674325328912834718405823256034806498487675742605200149724434938598867448750619373509159734813108587807638779307315633318637614119921226777638945753618672265512636589080359166446308201200166500269367414052213587094645360646951903811137165864133792263139809742255387047699628465158702806261159153725584892356846771004286075366881787268023293746935322691131847161985755365784990850473465755141518597742451701507081700917967782619281318367074926799218656284104178326956823842095593915044878561248171762190112587005348159050393669620199999141687903439634367080040066838548283018439690737764740461062081226692789634937497870760019681899272557108481779302126513985481429910452323082126215663408555362673870686296911911996684806974884308730405935147044488738611344934449101233143927843669234381299316837037325018733408209381871845899818483891265827156983632907101000882588665705792136130345413422784077736211352990406385219884367025376017859275212857863483561150270930656649949069423108757668725807775947472408324529865335914248269979992735860318498532633691563665888842753231482183848944766775085178478531167850763980458629649049056733787558569445321007272731007597317173108133326980802645233091118396651607058585869938133180108157055531576032767882153513703639774941843403873012365466911104686619790673559328161005183989831202054658059822074686224926086288116333355118304497118806716638652110731710243228547877904892277898600276556641321721921722415154706530945154599907367023033043710387430508337946800814161170411661705969769445054737543670076538238780625751689770249016285593215151993924270604670697054775238005252350699317611803749686913025314332153186579301238742746294160657582700411990556949752656804153162695333782798099862832623782122670525975398668552742480363910590908261872112362718282802128819197648715293790902732092123344167771244012768460798537814776770178712349659772376953507681405398090972411133781626937523957681991588676269510719928762513410182412961222680901925386176183687609802986268568526842610561631984118715433012588892027236199461089719066172784187788881171528274572630358770597130174866672821060157456008644970705694271021501430722065320136604854136740895100138594162576245945404182736206831880728698080004277798810393117423677656475477222320433588010778525039148252958630741230220427254005117251153797856648237892422328407562289220232316609982017252497259231360856132739712465857681870402310398366205539584170107754187833077175033526450700321844241130393604764470250142006267146804201082288319369056220163430436356529977933242180855460133653528393863181529326290162167000483974806317984401519207329741343356641151125298654780241204575631781825786675443560880713835124507947448137785141464407730304383664058893296658660787961017806130078914330839163007494089785357730337401888125636819981688239747408967742898050236421832075839774181339007275427583451553044841258130040601576505969307320517954413981176273967112312434088005313802768481300206492036350629292215329060788572394303412622581443236452109226006833825468252669351419826630236428941367259380836244654132438268188002180383332122122394988160639509999451823803194382130180114229348841609071492211573259738038202823817716918954572802318184362454181121636656373312503821308580351850356088162686411982120762322291898451176985453154577418299451622668484436102377212068086620517109172737672427458315483481932097541101249705619995619797637864420929006482224538542829307680785107196705600712733604077204223543514619018144842078592952554134732742271502594246356237413820468920926422639071849655606577995085174867222247889977289086928709667706565213066133994408070132409986420083443292846391984478709830800257623783638635073427635903055162374940248394654111173258998065742571666058576804554849100917727802119973929537361757122310019451303685928461033901363354451736409603065979769626909803883341172488561728303901625101319671165623943552969777777536720385726890768280434211696333369509312786893854751984466473143030763165808082864623381683483880435051365842402847188850428744950955510740561266367862225058178507087416803223423607219359135696880952768185903320193995068193708189082366177277999368254063835766979739435520791148100107149844687613748784478942150751180012745722927310854696486190648785893576267749912550935006049231810675863085477804009487741164170781355953304473664922146665114567990335841400533215397161159298996446941133857879225276446098036753979813598092901815110400968529217905569562552142768547601662124332170740143487685588993037483920709308872808779938810321638243716587259813778579426589746302268846277544937233216295384409418983438748967318487937975820256950521686587547600452151135305069140464903232543696010623002886232413444911254884679046928096145952604151613674565212510426974679403140492205075041725949115467365316407989045032563306777499967362068744985050385256371837586531543080562994965546512685080009461553309992092604971119369657634206121300909393770845681966044741238553796420300109835745316576213112104906214645505118417456390037796736885613587425182239417992050778606588354835031882732006063867654781227914142462577009405042755777618797079369216213684279244168986350424991537810488428456001082303757978804790252559201877251719850304823923325904870913184664640971367266908207589832330412671144168408951190069749580377613213761247269158336079382494229318005852101045493726901534205012363671391634138469910899023431608365678068510070741447113775157972200056299971327082627450055917485969838392220503223129123123816396744359070599438004132176446505734004093141971667571036297362713671141851926130224053561431172959672892936038011920714340861741744454583246523586840522047791981018477670416656525654731270059314735673230597391118592910844609085999082265031526492259489859516204643164334050544024882649780822794096244124824161660397501383369627747798341859400883097723350786437563637173789245349123387136761862138551718191813154197263231011385266049673635781880633758900621618673053099552024097361809658555272709025586045739823526609815308804158241277779972274195980819685703903245455570073362474649793396444876539428671205894531750063541600025875921795717258637273494139097736638545216480779733535173724236841916204385743197015925189819437888201841551114311791141498857946232729306465257580732571630514909259447526122964955232060493009961464642084165017461972051536322296971738362634332910947096875561867462862542295234580870396915931463869305683508585295446265526955054263054149699065121536033877001371689869338737584439820448631347289749031689000583542629280852547130440392788388041123329140656008247066794081265264401295985085077876930226777769460463406148011812844344160432157296651577932447604207409004830209726119093736329879355215526322519219866017582789220520902695442171602566090931889733986876586812384022324551582120012481559161959596839970368146106003947635936146538335309712240271459214444122822845465012726331335550325400075092822013352312750601883265891496817571741481295254378327627232357642450579599402986654321748429296894158691988058424761082595693459607308185050125438720698116836520964849715305527218043727077433486848729223748151552328980059342160797417004954270245206569595335086526099853793513620828289619329423983781072025860482127183282377358960050074746762728755120380696252160447395868641785097217556435498093974501406338519722953636797107513904419288263540812074863179347092493486848001475927008859730607033361021538187299919499068275646139799922472636489089779543127482205427265632855943722873331284429316242767722731611579010499721154488322708900529040021069776247147302819006253964101818253941398811293329261440413199535494499815562038993973568629320601239479886542854103051044878351090235687591033390544613105180351187733304121243937669063323296225995953551681554433994662955100029467582777904445184054602570503505199649317437670828161065911897574691783078712406649632954322612961406195102161412310606115748550916785757540586105841533003344521237085482810461222507824220276278492643024618620839687188849139873480576471755190595413777623799878070202927934125465806446246858181880832730264864019315687416034904901176602623896619791926003858559808696808700331627833184816448031534015413979730691932511453176927109588702492078987668661205175222088939404026723947208581565784280706410149084444030010354679484928480293210135163857966285030787080587013126139645290989946745923813441980587578305015979767241932159675230298866387345487796665244334936426413602492016588501931165527069263401263022291681726214544759940039655004913363727061131024072476664431827054593188266133422092729894842561719482607645834179748026761443515137460341116952238193468293966282975173209649647615155521269900911501230517127093278783344843009332736926949704750999368128444088716608183620209072962551539860289740474652300331265123577677817841902434846772891812411305137382414436201029244879314787406968158346969064465933350382236803312799926356640318035523824242271115686667226848719086593922923161206841660632450362568378847821613110194091062829597136177262759974688786496548212254701674616646925608120594865953226096480184754562191316654246210974445919242682606393495682828446727196781437138893009870305016214125622321961737195470349981085351625605690515633181715170569681105398339440359216720883860725162059142493955822122014843266801940721414964374270394872910679126645155870607492486237862206803037911386062442809742464170973249711733639352749107924048695566450873052751284632390189167084496807345782330116938853332875130003281574776973305989087121784286003158793939042799707013220328120088223210533251088273226342819579257879163155868404821843806841368819055721897719804744698790919615793069021499585460025781727124737733543240486180314430371497188195092884101658767409158772943941833757914341163239073964904831766234268201348930606290461550469999292571550651063912430450589804948514332840351454089142848798249572124180565390332557616972982540185245460408554207976932217075721045471926091932103186046586521388361890759112003465616326203094559823130618544979649737786820600506669677988111055734971011944902445898371608396456722598292789642818832445389857833421284343152081224754718384287953403733192052957585849602385417219166340015764835712324818997117813556642095247390854646882259617392279870229754674252614347668866629515787804035220427548687555614619739708532918563841001643157586435995900331943976284150478045948740614000547511887483605656533383095815305131593423684130263549863038309281134159275067349061305200305881932894565461953535058762438144606353157857905047985572266969268004909392148190941393871880644298592946430758774213783147555555656178121981073662823679214910593494758541607403500403081592653897174761105297432463384963978728230717117976073203052206414170518189911911036326826765738835347163151335841420353663358404529726466363876596136009071764014080959779119560874635623256421824853079831189333784866154955157490616220727195608802673713864523238591035082611431049562389722065710502202833553772291374090173159636611020855897269535596117208358264057779718909458451450254035843650062692675906897384779696876232182308693384104953770140321376623703976842642682393094868897046411649297444437704616604184638645806365921149865411841760837038038578455403069403737351618589246980890307881681982554151206006991467047647149063025453853222380250518974924508615127062405438415773307857026290427460927351837013413907035131489023062541495723571504444796915244697696591628554236959908420776031358728669976128487234674040203426406768190520243864838562186884536466046594047377903871330164862975054723145961442846605375336933442477521042672267829374915709042088914140484319384303222780746273455144907191846427816519380158338514743080732390181574826845009336049610920677931049347434177227016297739964487740578695573591296619622467214425201165867378746854448173691516289043346700732339923030504510259389586462993601230257988610870376419193286495990364502006906267052231895556909215488459943620446496877594309429820957453975058989243239396824612896401943014207283907229826675021708724255376804692470477425358297452438025160405102640086800932365546606895673133230888589691258060940452700687694051587444503260656354008964916371023613328517555105083232885927462682418599019996115251867577250044145990267114140067618785130695929249495880326464717693272166434080975872465546999595701446236143893617069663669340834442498965098122424401372332655142944296603191302322294470091775421272973224485258807798207075542499438303738286029352199212758502057547703421359766109757587569930250974193805889629613074833941442924103498093570249473617838607793617184585227265472691186547632734785314702746468116665029675115384046275884119970737884720218028143135822172945958463998929965295398522636913753760644158082160477569799315654542909845100886756826708604980208399690758231624760757258387403446020142384291624979760642890199256175723825574719317775048026507002188031404862837193660369115306792108375874841090144435451498252651524095864249022571115513566975787984872451813125381503442550301581449871395731594551011805255319987480034169962502327299962888447855814117097111312197517463640938346255250615728207620646780641345767285541494802893137718819804279857906379249753068841811930035234680077907860198392976716153750118019335737428111667450289009318513001375903745236156005458400300288086258223853760712758188762784958838257615425743768427368548541196198824994691535890860002327264461039719116239999226574046283828648317517956719068855493085651320956698905920649479871922904687306389407946663390914808123328134373638929401711613338506854942377221013702980743485385521040719609372175587117404752580609691634885407972002591879789588506824433395337812495902638208415966851105706007033135218930289983930746509062312379367018137210453690356459212063303316065437906892421982916220248385857705068429276117636369448927296255302929640453587811131209504267302158093266989970957527264318504672034335515401290108912460841464640685050788915895922602108547695188974779834813429151544202101226571044846834246533169647072327091145505009024683488598645893478970798185506764042116259640761054041922722890024779439159919381372631217927954947386988278687465391346925465105916624391771849074839190934981510656974543472777516632709383191739299302213244634198305059710268574334545776556752338631584978996662913251654764938365465533843131798542846834518760860799540454578835389673090462844237767895548579037899006483763175428528260225618857190760166859404330902930565973347842676845806363181428487015642835141485219411814606249150734379146655882512193950404278313915267968085267348570667139192439791042595841404104943044503866811376618272795991458496832629306783061799122674574958010819305083181398085699946783820341437078363245723174391295097751432586938572274713155088629331264898705967181620483525957959554676859029625152384277014757909261875826063727490102913119189696075274431361677737029518801656722307480684709916469722588303219201926440177841098080918645294231968167822187999316429854523546510479044372683532855464853879017624666828057043562328679676973852464940774522333180223793205502754258388937052013258712123869217492792574275760531880048529965043727093122625879855988519531266040323925280592576842660282911025839277815757201379199939464458357239472281235074804242490953029725875560343432231642194606954017609840294935684597692843220392638539638656411824001506567253979540574880186439705493560161739355994351006640471809941050567408695483615685608457252309412733632763627579749799850653736804993161562248972200876405042875545125224903460441543426371416943124137450269096334449519119413387237126704002122375597005570902473953730147638382752194959389043990879354479757105656681178515798821492890586769928810084052417945950149209285908757315512586509540417432976325075507885685664373106651754255514096484515503184837542967832609537334295403914953580230161787568221422523375383189991711649589630686045911439632534270549414746818916057419401117402432515416187721186228169850073412232093852766104222343517439517263995292375942890449705779012085774701576272786450713697606538018797329980579929889997368940346331584607521674502184297001695478683270747908166067237538555428186893130785544963959095768215142560144048211555192517712177870866399026136419071278592183354648474711575302226766494694323332200025323214958627781062794671184118991679503728946573150367448647443926921856536865239787891556195650496514282548844405014160627137986305906570937505419982321790042885926267483320421492476320486096696249445121248330097013800828386228875165660859311859807649445258063808250480362887049466905768223863520456182232438331369380744680216751300152716265458456272364731484129038519183556445373904007777310572557762937552816885135045366591908318749032238210361202851625629950677972349344382576108539695757934726384372500873249746535908657691937294878929965887145388766564566780372128441877338201075494781229912676879821045042115186797063297769408623624929079556091692947199145500289900993015328223596413595024269497662830440364508390243644895470798393947257808914725010659393063797998112116597555323366975083287926711043847624925737727483912404557883641063472719070829403205870812772269327778223790475937944988896461706638071954599965081605645333446460423038972935659387237812945137343733650176880718444768932063742676091949080698712819028436363318110512322025571660539650053442231509058605081733797852297401981911174369625751393946700465048069142266169502548315315544032037389638955580025450089865481060911596475502853367308029324376163655472805778152922815695409145254742101606960835737646176047965955721738441563006657224912696200749208534024024265971576606444456965682239910065667011402329602665806687942220805934230269941409485323139340560099779932781694858128449077151874207943095195798159664202114631193747442904163560804181372215596298533214613336368928894616430913397564980239830423631607520675096392041963752198100362465953399692772399721736942931614077094532821647804871002723228378600834459858219352850738481451404150432386386872136369507351129690110646809490156696921703833367410610448616092842853120541207536650413643825809626381063380963304504531081329925224795064554560901643085957757889345350189948982637722774635930111362143696583331823783107688365798961433326267012860312906099406693151189934063244650719314764225111564342329568328088229365112096539483299711483129759275118398227859366933585458322136089225558509945552758507104781226398425309114474047305399452950673907031833596157737222084256872213816432983333088602622732444675050928210896468335661891974032064858163110040662574979998950818972672950817222605785223225692915850600289102035492587693633493736547900708345632802225053866348914916607393570365623739803826396401418441870612715277392263482378951057964324436741294536997478550513907675742120310977541380841237650413773375391822476389482414891275841456277711365709839634247935815266144841878060144002387686911200544137360492489677632054086396071218648246118246826832069133845658381783012309898571974065682103368714917270070916557723699082687563843801386351755191277561721635890532131739625109202620096089696719369472237261817946962439992644924868064320056165261643944168037503734116509381260426885651234035370138171579818601387458087802834339542823527196012790842486983861768044045110951867721997914506327406324210525795315107445812471643413347158327899628773372326391263818387907936389757242070538203355116947269571800686140291372620741059965022561294259731485388522934883364354955455180393014806207425757660727536039518850823691910484600804111201095360953727514525492449721341721880520877815410435771172086858954575859998081191548983644781210019317077319531644393427552629350842028747928213918254674038311336577198745702934595897315651035965218443715358098117807649955505919664019439222969642992359036467749347127918231510676923673936339858256827242603725386007910642157392663632419592295961782898557376814584913155095730037016956327568577596333317433551298491398982238032502338529542008556461848924836590231867100193378860557544730367258293350782739085151163402461978335819166147110515626592382960665250029922447990736982690187199926829890082371340470478597614829297769266503673608076417028606890780362837145461937609888367739938417290223994824618753215882999727556019414556631261087079756070564000551058967387236334928690439353082950455005166342252678373365144585515100259856270650861483561997994131439171354862267592255453412129535591160490139339738009812855825474638043325295497375294121743836596360351267596507493164431326370820459587473392738162576866724194015452920850445086802202670527214919770211023233985064452611198678613445011711838111188286290795095704923393735308512962745337867205505671105861235175638831566916301324088380301620787276008603805464410781220527031697485410079436475099509747359738276093006358918222628834352390089033186930856161243009171373097555464598811863171479243697903259067424243038970178788990534172968593175116611984508533171523640853627199257884092662908639237148025757291814189897730557862394344027520421868784958327234177955100884469258846423178580982049465073691270968073142855044916978732843020756674474228287224455499314702994311636392291052643016963797218354330712125853176312003626498446135846782069847899804304590984061017734687035547779306674779051858802699143894606943940967840853217400853226916456447033411465051649697727759942051186570711358135344805406680697913607230775215270970845689621928209559480450781858437333174650163593723318432423056174150619002478409796749628357878955347379380520743514725355022825093575770034940566266885847382826771030535721767435519511297338557840157729346120054342583410525859994286982276168342656878719496031168134429243326183785942272184430524731033694233341939612682686282437098660529390709272766726671730319884776316519533033730146893381268050094428379157978845561638711491074566474477607110625292770899299308740723729108760289854942457933946661137336329513973329895682531454424605986105067164979820686826588398363232540611507698952188326279259151195712302128345860130138494962314321506529607920082081377014733812232389501693937114199961489099812077161469067481860864003065324601554697657573890277815079659210592252922577866426502066302496627543440533637035187666640545104609438995415983007009979616976585015034585131901617945389500782716218482277810698614444838587672315360119435580289903274527918704462868917162897032710466317998367409237403177959504872994672213339943804324996352489486145295609896394763279512651796081248048398575377836941103873884593451929310524670398637668125874510734327408702500892600135757914124943573642344029180624516822841662484166555209185468374080921793350523245070101492957658705090045332885359613678714347215968078396955532244130887498610952491744098177422542428590334701180982758252161730804846349231048715803293799984060645036084191991744153070804104429285316542917285386568177037617615625000373071753208715098983185765768261011711492590938738314609787756775067310938450387657871787314501493589792418851976535088457323631332498022409443860194851462732171597729552709126099197091001765261103467711047358906905898504643956052653698250055492590793730865751353267691800282702665783560733092547545754029246480535790013381338204661284340995097384862108146617386820501933291218003039923567715424263340819955839359830125011520330753894811822861878917382243819213436002560305446935765397064519484787730619202509387773581592165688154683461271923563039994091251634232214422657611444045057116748689713879201014471980057520731344325749306407921954303608751648436407603141135621741807329572673071337546455717908231092808921670448705505225187838381869662490828809823958013589328730639564624068686817675598428049395220848049340825146373339028273072614145708945395409991063523963041192971877945145229273263814357387963020782853840106682296965436362596043674235656119295695858191811685428775024241475254802172423221152091243743189163255971885861050427151279878936447495614116431890223286184348808226223252507886979825654051372856827314574649124867395972876108454745690258458859969668069836383751729576794395718192339298612260060454708849688452528860853676823764110426908486272949754826309616855214709445120889667895592792211183038593124083601903760332356834358812163618153991305039149338481397547308492247448723080469468420014029254909957654436971748459574399524620652881519409979024310298217366011992001858575054732320896714468566908675399737347153194001321910683504487019896263352490077826513167331223720725276717769200778931197113728888441461101693201135568052013661872039348397598836965847267033721826482591692791169843158314823046362724812763618270153682855417545172125740491618844040193574800174930243123581803155395925985061742349464148560545771999247158559629255287745007377813894410539798342412720208064693203434324386884448637423155342087723895702010415705479574122216570841010528850422907192429876870012807194317093143898237405565025188621023059142888636995706023166462559871789592512067263760082973372863990033965721475049287294567727539399822173283678729239148046920665847661875712994148408835147036570187701581700637429940763060685362016454096104990349002187406576446698101884790794439334930426394681454317312259558227332856930850585090863864764345506737804478694882270661699351747032917074840682393481775910505120873166604114560465301688543593336921614534604963971850607487899149474525626508343624047969750600217688430799476852491793584010120029969671128597785916318683748950114442855068924036937721229146779149878982751447641613722494045697814770069834300638393651988954874004119135973753572631855266750597927770144724733438913680988215930099581630802251367471198778798894677715983392218390733492240154890292300536138086261862493874314896492076300227654865566190072151793816228679047944074669307507261391891400255048997883358546266447331768413541208926199374890243365525407486769280917414701643828906113251486700254677588719921161434482690983482838525022822491976921946363783621670932951214863585535005200473102011320362745351035994078270264494848560794347570993306248398660751316383718612658078826023303337200989311653333991975333218957781607540471127401877906634583371266336866719060416733923477722298951511860194861639804496477778129213667217502669876128097586391503397634202072127273810173023556763490793741981163195915042892241183138637048865597047119701360055866898407200424191414453509778782533798781010808356733690012712172657313470327646720103029495897757204532298374358597135251380490706289668242139027394770220383143768834892417198113611843628341296460314331806227472352417381647718661892118485307606313281440207988257746641705065031965392256818531927298881564978043507564277969207178257564806512704919812846360033170761577265129076520189427165981970974584703122523015864028304728949688348061037710660407600762192893939436605538993154751395635674914827328354725444431804714504428293809030587592023548816250149188152339551804035362826733195980558359948791266249893099274013713938622634616065681652657985646066013118634980456768157153793443362460415753483947418487637034286584454038758313389957290235238865425939849000137706048696275474546700201578529042774990530213594705152331837395343736142164200760296073025352500917259800475256540722886109101863641536634476405389449844433581771211074549663887327216655473551327347131490695965527473215655671516587982203480753604237869513784790861158784247303143577121524891388503646325265380168004240909958020304519893043079366896094173600406942516329863573819705237234561961534087307004939436409330863703727450825986977912251507937075395307939656592903023680500207621777439355287190661447604985222547285324229582728814315354553735931320784632535480859743238119058139737093147152873562355631589247518631843522719686849281785808048831116486412438290309412993936723136659284770439918041496546779488272289147479471448283816763253423139634494084375707035762185756300759564859834225359848695828825693400469043442301865899250449251966519231789648287414157674008881284306428247062804406798812466966378297872878857587071411284684162475686261706809375143464572246623469897472815757797265185624201461093032117465936009928355769217241736704015921268380630095980044302656021283717106362446659149255506383078708872242563782590137257747579427700179097282966673050980587195639741281317686939909369684434777754257135307192805337977387922522194989615000297354799098460856025871058567348121712355607471298898778945579053608362946266688074666739558021173580659353888530724693213964814545265855151995631147184814091380206352876477637987243264431850973280273438198967528788083337003432719774299604635765826348818558201265059696081142009572310159641680304180506093486225179020763304214810091231964491265466234727322015184312244136973036724679359657289728194320585655864062853447450731358681095111849051355802823155174257505780008976378961393856571676509748752888085803744779071366042105748153717444667373653671485171141186050214339224515659250140709893287992078725852089098420582726811233040215565391272981712848899292827176297438720742744557841376705161955250328445656667834250313218099725456896757824480361881378747920436628936950749598593533007651029637867338497269225827811547452827882378772483401178903477918649143246485324220066497692935100990708159265195086243593073732589931722229825487686068311480140406050084389702439437338898723692686042424449435835898545178093951611813254441013826439141586259837317326898216941714774939548174931204636290669437496510406911516622230013116441286126637245974545473339956152251117359654991471566076859936454649016671784072246032009272413627836063773284727364794301239369118796682785403130769281508838729727587166577272611845533836539495042362441947829478085895270416717187806658476169036847789003304074587915900956003389052910398594631048573719313020618321060673838571226789839543920665578368874434585241747613724022549086040401826011555596675139805968823220968460336158171226302880969327289606590668580164786331237713164784230086043409695549977540268470704893772667476861888086365258173338165352935912037019525553536499087082358208689185922143339252474578881010075683786867941241284206915784972684100327168532143390339825532315759131196015206918370132928148492042918058622365551211872546449794850610658507671293411649655992982245379497032773382258124785159299330139353461542236126391840612858984068636492614046597542435628312418885050856951049343656666336803151891269300119429741823254340396294321846257250581640772734885470564500288596471004151707779824614064243449577307177887714850432105304312244851102125082396521674053460575466104295187746969930554065830418336738220645267346715075104976249578106022720999262336322080664615242687242954217195002226433689683736173939982526515865313438568992740336937684138097558178558794288686963837038785420741850273585306449114297584621089357118354070143368268511499676204364899245772509880018203159108002447448648240593576671612564914600515538512444136168206388580919886819310758523604755446081942136700302525056491861732382428989177100662285380693946267506970098951112631548633434633232167115690403140996076291164097780027196004614517159874639448126325787179402265260821203581365547854507118928713064494207225297015221676823945782821560086151386692693870446263483559362393408777785840247698377203582174149070537546495568584718679933394936025956046966890783746955236205731601683752326194639306847393602558683894046535783363824015561546473353969624113786942699583320815012973591180727659049326081765137370405676753263620874484016439112307318688887206274343365382249129224700506100003001245100236692190864815853172639956762314651040961766455935746940059201381190785271007991431180575909137337981181728388535249201527830385239892560152222808050908234812859031996667680808134214194650595750715010903184280039328130913479039968526718305532171440570968364134183661683901437598782805276110963473099554305002950553632569842718067618641920655245981059218158617414918718756000911979211618280201779076982024901405524164974329243581611383388493819683670342721992669597912262388627195287883205646227988611452864806586038368467581536000170815873116130422552648958530740211358159821205519668080791759342927892703317410284673001080382662724164934033121034002670737430050982536845079630821288107059012763815627283281389748021335073805210812666629273664825166616527646501585853030671663614240722912179647704674402137767057746641297277040457255115315827407184411812281830101216400848837346606723756516556014685456582920141137727186771578322056415123943596965782827986140353031654388618438723161390475655867791438294891866428371067661587000679070473401420738899945997630898541170143162516223625939399164028622956138248228886231398082000085503386630953161489732291856182540956044595741595149280377628502613648600732172263767725884223825864543115700935005489722619797845416152028260429303334238165421363508567418387915019855004921983564709679114437197243335201546410078696142070536076476096768235563886705818088276058669752759456606270200855166328219218022037048602463366736508627872790785872189897264715988022427554996119472750980308670760832852558796255393916367796295063148571244230589202420433743139286570589666239379259591297019985347555639516669943188603854222630113128038264296806526035059584009562387635592619551067275489658674251103740211765341152703674208283184093619894589815600101863161989912117408020547492801954710749111504558576007382024297073083473355085218415626696827694237338618699637322130443448570112829156476089632396410475454592081892330080134292406570991012171016259510311725855272440641423742151750056524215286518683346053817332254763608373706730689486624690235632014721993776769155761380428426863648200268813013575383974676410331328830281012450824029986125032166638061342881331754279499918801234257087919866299056604054921463490428065260143628667745415688095202515126041614182702902890356260670964309489922019408544429034754321160334619147685309287499605863074859213009949492979822707562180879768171100815836286795282672054409095161141825972777705141937774168272817611926624881615780484585362713037802416675976507058252605038624166446377284975060339627346135359519205229110329448511762632611398574499744736751194370355920649238986239212306951414492930000050921850333216090709415804770193417468959651890531655711242268168513789411857365307015068449007743455237127786658008794433238032511647904023962712293839268872530679270407154792949717434181754462216917641274805698648838944618961405060553401973613476552845197598218573328129849379004737189035818348639120594807511280571649585044108994767175510530110443491509295058031176858274773650639114675634389182243149512499313888281638427340384287477411936282019247617346635851956431350250839799528234302393025893884358399101677132295844824015098608235208280823519265531826638423831300362329171582128231612245434314028683362890263651867002293666101490994856633642889251260441100982766351833981755597331151296211504308731839779394344860131364879988840180033631279963341398509020304601832314625980884026553984580516896277912127934524348749673462138987938465517967144742512500720343997636764532385621831320604338105519772152388136515239702260074988099543512441059455872321857640818086845216558567518231740302028381458995185893405385786962550668348472054714882600405263496162643390406891875327020157075416889906740616057173957411582853343279968769411607362092797474738683661885996779713242216629058266052567081469998926386381339954805942470629354081688248863408806653975054437194492181937090202952213737755102167340794447147137316707606523534100856214527669208998475118972651065355164225328477213594149649522534282187353015549765626483033184195215294247208950065762028898301985537083909127382856261720593581561372042085906518423671233226468567499937310553350836301170557737158990313373445248438253142187871985014621548660311268773552943720937008744552191661873402081215577935505148349563490586720290017867971050557198022707927859940453192481704969240215600896007756106564818765975567244485916643283246277572952147064564399660971225120045504027168172832616279984829009634595435454922829290235479596440178650653508717832137615041604032382938091231137790902749047264098491182836762694030002904873425334725207036597408491198836613187555984092347340601964350746250127556806302381089308799961382076839401193144824169331445276577678775133596328985469383774772927410783853071971460449543000655389965093974547859606521518362945654844971606571500876661414000784202535125962174012935767562743323815978974036358024707422666471562823262277855090768654741303522342334236078797300825629200378778313131281869879330338854436885519583352134319420075147356794260399965295943895469225458787438325477729029380204031728359381387743685324747536149758461372021803375154582990142424880499446584854045670296538342308321994522823967463580276595659466164614681659696295689965802235363112106745797205732741306675412601479338668288903531388104151495197347848791911968216424721694110608170500305763506739823486543367591845182915195325929160296521957982409424480835789255995313541519284821271012404538866327117876234159852871618688781966299740437561465381962266796370501860934958511394053834100730346627285121189600164339404846753103214448266618878767788782215917780285071255602157171512308871125017109583297368844344631134920860106343502758921812632039389487629538991646622398956109993886919974121225081719990906077565397488846782081757079142798081916966803082216640495223822177321389043582480151404469977002832440359256362978118874066882801621174373867942580635869138085924985852574362847721358618906652033606602665115795926440217181623036457694905379907777168619376413778272073110854257772542988670755577116807680060274017224668108432622281413244320085769726567877675201712300826397578031082456637389554288668710789019406469789288716876280950946899719919074758430929645406858877699865180372693359552690459864138209623465733961304081966840346429374683066568738624589131909343608135693543966795835418993140370133867791472797158987446643670230073681075545029487771860278174560536827126622790012475825823973960352097670279609980955220072860032100101068167182169004438367541861404383014842956783066514822525117849170209565922502527968667285942856571915598630759350290195033344987652149995300411719616756641826968168336347830113958308627903759540453991975176328704428905458040173757626712278990299001360781735639467494870824237084254982373791376306490350323999155881565304695493921048301306619907688940929355260213379849488546426102409198929710014335834087160260911078018372248278189903276544139615651595051561286920719356257787893924534153928633865479425270885343448490071070457394517207537049853491900675952643356528803267311820823387633881315512256363196787324697516203121516140981353570551991351124918567161832821494306751467321736341611054481549724210152573756075594369880164939426239026322239505820745858054615874129340659958186212655002754857163452336564118449366609969176917994765040308964195597215428853917928714910016094111290337973338639907561184474922933877330657651389260618140652653136233195300765853294661687649348682953099159528141477487037275568325560642731879641830905159463804772072063716960598108923982849675792140838783568374995759351376882489864041223843745874934502991235656317772021271849166903690585293843755322333447253252739877563052763656980120694240889826671550818670073637149748542057325058054650963258769324193068659044818814156836377080200722132743203763557939859635763162657657236275479360644010878553203177082910787828091530119822519409489995601470897774196413739562553698503790802802180924080769953542893533028427137890967930830958304377340764740018975780701940853431245403866609445879995600675270394461549086197422392925203116504631854949238172562794677717000648219542137755164215043443480834732698171678888727696885213478901218162556517599077429648240485325863803053838717226635636219203116889951123589071995497347768799857851227010939071645500523915994921645090839527473419456412261335756931315849544976950851663373230054344494032712385608599528539472076540968948144598848649488594447763314831232408903994073826940005079099872954051710620987599254655170234946920899613061071810055272135002217487360680252749272509012917839617330665008901450938685086738595197664181098977141542220220535863330064911540567221315881483399303828504592160770169766806893335189707696862083435057002137959112797603291958792464699105622592848436084604594451871960646829814076444851687146375113753529638693255917038491422497908738093212452919723572405600571212840005462403464649327051388512171833105707352232356132255818616570908734787265002221985429423941715039234136204008413003861809251674564652460118636302681915112191675750544005553969944578949874867174316160234137743233670050886941577139052055639575294589055599840069302597738817762766436714872333774190044943641492757389654176874942114340212323615313203842649026614492046535284471043150774442130718463765065372005389080803956094622708658488286883087854631503131307979438212515475405999954957249639203060778876644933262546853197727748255263078955457704948097976192651202987432917643868832413692111293413770616366783051120604242636214823475718782441153646216995247400733638154697195670330337848168087617191830597662444021840588265460020882371795248073773055733684649586821872055867802222258461323675886904432769935401957384250103225323343980775090694002828545119162600422734109361944076530927494010941615366004655875849643074210194043500094094844939980570588933787133895540381605225703475709133030464950550280477042044325273829688934323628953484976912475618169658776617637974084075001636084048054096073805290516910617473074922876363070288206724658403968114990778113667523660598864446256265555159062431279471654057077815345224144829743534699213810484456523432608821198650428120628767064330635796516398835726725294342738346814985468828716838463962804676692031109641974618097838105643071005615194630224750061565770598074859754954154896534872129729392045267173081667312222360395932285666335320312600200632512313182739096416841963614055411958413058859858508243369144274511271876823443068580631952185071357028868366394598758917799817094022327035435587317207253085322643275154752247098552178053684190810693204586437691242557738130631267319136888336470671647437063048181018202771476871737125345272816230157827887062560795799396977000638656084949433015955102654461355759221657717281637914467944210366198974642369034040224040909624355977179752947037493882539986151589045222485961355031513400126666433754703720073392056924552215748245615549528968105813522001392801595025648131557722627399289538939150320361146229817177966275889938844104204838067111640230602564221016607477201019751614460948771650123328864150247071407675325470541769410162890094997555657042960835398090892684088265134729602121152412109055239018167876129756818310704327546022316313518992463193047299167609954846401935481094414166903720112296521383570562761460160238849360513785468660437395226758950624795749792569607228643274322287401585217944718868149060076962129612777499479261328088484933622713208069533677576699090648439212323158937740304004990945194625301536283287377079636339557719072121796399653037022907760246840133653535884314764862590718186946222593246135935360925320133941935260392768888318508758650205096270512334784561282997242387837686726630407564022520704526492270146627092671017030553685864973638646473556038513017520358399390045764069922737877142218401646613047825267043657157442040314183996398976806347973344432176790397244970639061960007401795068325109076994281520038092300547919462505263480747865278887197790525085345438987375733860523637556341923086403854395181263081257553946660955030418935170081751637767793844034239479175914398369481736535394531538865145847719748910163900614700447715390300249582116864597556017095545595937834795451587177538646014394988974976921082319878774753578596657577630411028923231057378228045271394345088831889983138737034416936661811261030049110428556364706660830132248778751608967504887724155662784413934760430565225530213917764807834257619116808494870303049914061090368722921397732742058366452668224502757774814174663934143426000971348958476339729476595878455914369078924035498858221250595812515789102349072364689930214170716560789253099360360113243445001404081271690263508373660664507410303557490096324917705632602918640682964810868091021108729145714239505690348834884510471845987326989953934396123762148952007193119199387319838142589813383058020424621786940643588343408696547318729106086934982356673419798143392661363826404711122639673471073199611406931143114271104167580447725850580918993771757173710791258456482642174627998855570522499528628498538678089667094990623749042401899915732511870796405071702445335327243251755529007841048309829247324331449417795114476923243687629383007961538914443616935193890270114315690471655989668733308154382744229850794842108185574076792538732898968799795079372872040062703919126998726828544739606964267017429717464718224709227705973431063089765914064363592873752331055606916396700750806848935016236506805645232552501675937368922684941735262808019068191710901220626604835734592101112266809071226132575248490297561310289318776552350988171324573638481929283652979743235618906903801065411532841411767885796407609796293591812667898836838012282899317911714546308914422384561581953348407313618595913180461659719858168176336394491761956652372099460417813587325328722206699975549332732727177994203146687657489528696525287399805137124083607057213942456441926998814780913477094213233124509296439878057755492937579335160710235832183713622865650760134325027732409343167043727057044020034072894857621900560503460830056888223190317526783486173498994009547001335956157276747351904805225607218267938114967065842032328026580998488317575113382129138058365755029435447015579746650095738114353214181303714137657257197968747958137694599831749583289166858222574632052076884128557141618324373091875836796197411701833203588933221806768794254114296786091989160308097918345867757331314915479767093142110523385078568317116171519684975621028137269619262326241296557051758886954861567861349568704662050818987917908398140397017117012575251926335759534650325372350840139375478077887429799926496893031350499531436482856177010532310393537014330775552888573410883462022544693728205161772606983204300301652897415882594272850347983693617571088299930369541737623717752038981111362572594665331328732803539331052626237026039755378776243397714424906970496511265096738125516152041129140232345064357688999355583737041876528597245748526502410046310609955330410361009860638905341694003700521103440939585775340869270376959765087679374354363827617457885999493081974005033980062911888265836434025306383789547397423941246375345158521574110355842829786604743193336024864806752190075290346633363934354097196781481861953539981371144256385688728045065852730886860809376291572211712907620043874896826725873599701656785626979805611479839716547342024528812805577212025312098969979817544367128979502000008743746081417616309188830407480306587751785790359830289930505686552058171657398117054294046054069580472218836545694380526343662516341865098780146362644673459414023897737932404625922196039191932541891238985512265794406110431734655918545970707338202630781308360266094047934720212814215180689151291261424766220059239328580290273359823419297864369058018887044422940199817732361927890581716787646008967171475334204941729665094963809875810367007087476218350605195616232828326337261491881265063215148161864260934939836976270221693778102681674884263252913661854711223999239164656905117760857313572624932345514326259488301208458068312396107741796536780355104334843253570845872586193838247385817804829686556537808706790054642606834467390419678484007876379300936029215458456317267212306340684646193854351084239600849885197031288274670058603273999815792532038118936935988809898363219518479411170611453041876889787578701466001526191466110276602922381725800442845965355821732716150777486839378549978436570544032873657509122969162565806414869169370507282812199836792194077364402906238647362236833358764105987127365424461277287872993373044835670280033310833164650311174447064677108006681362300378057621311084549024123789261565671979332753392693925366576016789938368668839673825026534205921376044758546500441460080477833917161942350572093454468504556698537898572705285026249089572634413377020671813607720555873307324804430594183747927353179416727235316056233922179994350560802610287156890627853122545937478878483602130241826838283960080045845577198022905996932771670745092228711922310779403236301010323069669112505744069535456889222570270003299595031942369068964554818895474689246923350586522387655991845209161726038368565281326698108333805642032984366879349571508364904105586603837463206325752471496329601640125205161749005409228390218682662412081914174849800232809889155615172200525130443591700145625941508935372617592977133751771322394359585718617022364601032407875825244270329711772823405119100026050017185572505819073104223047383651574762927298681030396330099020507976960768066364582259827108101266490502264188468984874745817764975188763322916220750416760989826990261216139161368063183153073152084030933652613085732711451612122263697835572752280031586021364403596932325176127110668225671553415662577640159902741955395601465826389732865465479591465794818697513584486872863217548453150864735072197126677288224581062666953980159647498550931202838666545650582163742016697093614056357125363050068741025497362557388377839920498979768148356282110903427605663996858317417328968852192585462382828994689445917477820992574880690934694286530139555934265110571411845974238720820140630859557010819343613951887612626558573229209157805000934142758088324810165043108336797435778176848896356364316335170629795168745995111402910248134728702905847170568857367946641553077656265488503740611812948224596001844082988580652509415627773225977026956988123238310468045002187521123178827343613192094578665467383765388569955721290807150705822817525971461496898207273388930163493352371826129463636481139619921250572126478190991359720587948527565440477956645367004541469906506907351940555884683200745525460778706781644646937286038503226206434992188518426926692231182422841749102177185947380721712677161557617917639460078762222258361160023423544973479735654291781395792145270775604434953075848404141802757593858848850800481828659037509125249823852375648981729764999908489725514053780888642442251894228867597310112149866539327686096934823629264113772773663398660221344981354028451606659603977849941902539007449663127957910519238899087090953124489236097719747970461335068732949026414665517565308694226406811972567827550133866051941828618652088680088635158440722309554525081917135518705709453341678417514373581605635855324057745013027761223597493207353198987603628895787096552091409303295592509028864124280814417244073053170105795608298341475630778269630721335753570209544770783568266359051326611267021866671354072210133184979348766355858784627882862330616949590449107748649063347147989884351794435112718407879238888267781438148219150610485441582349761989965735223350000182686823056018806271479629336994647250089166172798484827326096226327699534594386332845572423477107599151044315220112451134750488160667401877889734686935585681476400930939914984103809126563792193956802267991664863924288243313244230043690911776650672639272585931095665628162763349236008611697749638950042799308610227104426632452221223770628275179190251373047421381616297249010679737600349247613143913359299952726897161916176814712363510338343480442803087253119679131977763484131111249384524234338092415938311304886761611827593988292269130842980838105554891759703410598387929648937117535712622123324800229691414335815233132246946634541125702125759378744867061823480921170033178130230161127179541304280013170812186721965795476831549752067700864861849724145491304268801742867006764816622580100817173429883693149700263958075787237500845372803831788514381148934319036953256344718570320708611782297078162951057820687509917609054819598672794839819729124635405926276286196013018008576964105991454013544816300482769378904605163844012422439597528442373750570326930955312649865863818749478242660016051076357837036775169754517600321669427627286625343098452758158374817530939022851956523755880256745482164339114998461449544109867984500926032413334349929709129769491607169079008984534656718078120537870792183776208718888160079896249582040474062608324249610790563816439584044059873177717616172092423781821434482624250870324925460855684234322556712469276847970571192596365540177315913440827672138977012561721676639335839779606686590677267426437220515140053619855814430632241952428170685613429769217923818086080057195416818591417122200915124144782599465177794111601183465125766167192248706908801088090855350876522854595680352692663466072609653293166857815869690571751430558688192821184203658119836047291614776074892848554577640874100885813898944567834840292644507678375541905835997075384202509568783831899093396799708441466514979830484454219708453784487761374277286777521281436493139196376623540610006660863374646615219964627965899111550632233787820206526432934493509681690287507371518508730045078087437418302756020763472304992269283536872434038792543871932847017616477016686214704033208576783244018606151659380043658043554246759271198143665399811212280291887036541294611562743196541683840822308054860408930069412962422729454098595411725440278722295673974739446311617318211676356015499901633310811094777989774885119332255864405795749445606784745942407669351458784149436313877761878377864224925841643930630179500890699481738602281782385403607225692210519361019496223252837293172492333271146528223036081852869835412658817195382569457162714923018787164049496318770133491096324830506767146378406800762207686977679262035991289882243337878426978079705501529343210373110136981872312202451310155290405860191050370273999375505124680471395140290121039759299311750148798021142060030527134622368918345074790829030325908727731108447828217542948559499439432748626498578463930137831909663861013113687066467323625854997316480943772629134807164514512181031338006340467900784118584418491507690511383640180477781675203296374182271656847949612394270763851121752634324668687281358151356225659087459098920398572602936787505310096387267246111569982876015785550045226314502479259613721362685340241223049896985010303202727391467931531412036294095477231608665815974359094930341521406999097320404503028885424511358344096615445173041124985374328981684637408094376994360175188050251311519747889731306112895178491283692680056060431001858148882812349921093993890330097777843794770709342477530484286030447049548476673805167888499434893427507036710227609947569350079454538188215420793116580168514015150237565745408485241381583786899635904929415744539533427283635286509060890266874427400573214130919917215735792093563036726401061279059037389673606443851874618418155940923015395024819737012292501010549681190974820800181238380432115296662624503915615704239383005628793232905653877327360945963187334550543617887628844873201773966545380064163297416452487305295379943714730507242058254714483066157492529159119699982152726084390774474711050478596866509381847135193438372661539495838466736821298644822884987610960141877534278206193766934710440876693460950732578019366320526132207687579304629260400956592922436992366571719492292017679734784619023959844980556192270249369262448514428006702347790685023804517586024816494670374182603716320995035332069092134573501365667050802531219345552705092203104421671828761950546179061060317859771111284664606898363714247974434436048229720085198950977402462645730209884440231252825741093336381802232559648605076347067917019387510672120672492385027370800530987481138824347445757676099684145289711420239052192236604426907416502780123776068986878554579094103449522554469643644449655502631141711375701915654304866840304529152871279894365485944400688707952654581331985331513909610558276301983427379928701133282314769502401645126901361091718041771226392920052633538685465419646123800638868462929233250592619705357481618009087043891987673520531941841278139709957678147663390694654848033519603424968902836438008549984889149690573911246627913462441029380114199728440878806132698044044392205977692948023860889944356157648945563626116661964065697733811367907036979420049433875394113749121422342098000336944266336074986999778643770207986788210098013974313615363337757691723618274910460025491775172392074398084427377524540397317420379375595636439584134249322024967842121774871653540131070629196740406060854323592417832050967473318035159540031401881847793511376669594473872611347405330800427991722605485566060076441018996680544232859501198880713519129492251609845476809922437065522302903131663975875238556121765628363247637565341733360418141293681097006665027924691469257868408135776570296233406068652539023116079092273184917839715108703667751769856201618909032597353576407719511470571562732186287117726322700723391650526915246831574522269684302955339611768582639649781337673090181352439255758004622567117871985757430492076428225554302014863421594577148332929228171093924234429029804435654705993854807423333689631335527584161795520830973639655947334024686642903897355092752238497548688909858277817800362878055188392152397834851274588770120194542429581657082183177401174145805422418967492588893170333597604904237671833640837371399839799496421532858459810429957996125361645047796037150103526431601570805490270693999872934451972753756026848399875063982966603563340927421794694939856679439388129293488080606531726993688748683398161853572149775411895422399494423636561001496830578718585770138067344972031896598406488484490389120679890330514984330970532192649862723306738942547866092885922565874083234893033838261736376701846870242311514032699238889660881685259881325460148128498261203761112819867479301212875114639002698653430802705270986083333809953977655599195017036577264295794705670795455625502161226572518269489115950929589152438329608973842566204048369074308673290966376442012008593042650406880464023354006907467119697167642266083263828668742872156395349095704999535789230538980012998234147376620902311611157446549354422476239183165426984966769380583843086398113239415761686599458754676916661786788897724439114556343154304380283375513790661632842888190208482319378154630858989216282821354690526218352504552097385326473703033687831658901515584345203982380507973478743540755880904471233107952835460215406256974516087098337896341637408108805656040125635850260073346588231751963231640529511224933266990264930577890061650517002397575512968792556363058444057890738674958239070775624904716913826350870698499622866400854875072284504662965057666662249074292122774998321501615161568989081194428065534130335938990260842865769930024021891746070171865081120599365710786845937859582778878560396482632900566596609267548917901427800112672185478989700450420225193942260892312772642910982734034364004675659448489922092336909686561498373438663315081730073128931531596162395246363819957448638624534013106518134222206898980444210554321805534233881716465090350534365192898529578214399068807535231745828805819884730067363088224986447446372306615391148841940516136018026206325236703195096611633574909079508055371895691233007588438505330095574479413303381012351102107831530077250096340412231357493570972083643896734508823395086513731938640345818358151852332109765997366624714868875117615423944126804163695405613072703687999863036377321545779905472565986717109985848110786242398771611329497395714233804678273838461898620413744938105612521824915684071698384230927851320032965739905395316906386206382324447143233081096549577059102660665585462404856836196896275891524010620028695232233363496242942484749137496940428593410727521119831124651005728763803348797505590954608122664570163548739916783049688786641486302723372211007638969917903782502128620788845228888011720632216579998339774392401412320396468483880753227358227407358809814806390109338406565680637916981044204752738383080941501202456158943554540069604748281631532183365122276340455509799897428754304485505287069839030693759265363112808334206657583224285208383292124607852059859358990671746321109820929154995198610188597654476354782965878451811746864171772946866704413623177982092723856243619916502304002877672148640189913015224708587409226123316603276797243364064948050470713303688811272429263971022128096923801588868246946511680283771875616381968202810956593655748006830706701489175969017069948773343556725436237471484734215392528585509242970890763936024871096250913020133436070000015756856163968297343159089283722874437218141216081052923472560756933277012543092690804412942478007914379539662908155569763251690397615956557425173108611605164060312209264190651147566215191981170151114879374078939305763422783426321082842394857644014992874725158707950459579400121596099239008067990114361260512777670577460815994224025851257467889219771771739839606871932839237692838603257146877038833539560173391906477830677345558355987866847840613596225723028335538091545101622149815401869898064922668217906299711781672659165342662296387361374364596860469218149356374660918514455721669941384332463770931689516686594992927899885179777555402130157832174016899890060582816189893689919155725048485006530996402132759040903751896549002334712027833880206498443933311723737530206003514674069321826084207431800645741654205372038315266231200189952870863055198013387166692790435668082671551836847048785130551001742275527281651372006894478226954361269563744528498280874694120246442739144255053698610169244135523886242534158809296232333111310819895451118463361221656364903070811680594248668775952402953585952257173757035329481230201174208165925838419603705727553535001654183566397612768304877300452746306476112104219684988076146566892468283739103892239509918143496641975588793879969986753387968433620416990151292341586896120295750986935113826967502093612949178822027212388509658561461833631945917717055246256792872878302719596270498889245181699836316012156825889344537809176831946740206981207389420350335376218142931306285120802831170753324074874708904624286544050818132386270262445003645917425560760062921687193854204453146358843962598442607971341884304915170315597540041360830515525084681668268140593547289905391643147508634022385190129812362986963262241251854638015640630397390461791544687798348476149177039498369046730737352569029852208591416236316183934038612609270023392161881145994103779705273451615200725502299102992021088545710409748591500029943001631612539409714989848627371302158826579682335800348778551786418395819024835428865739907270039271211052984107794801691656259902861605032738924422131661105389106196821148101010866002655553733356413922711416038074967924453484070472586782157785606878043588784635150936290971242234212266857957028058351407255248012669144497127222071543727074503943411990950344221882053698355731198450250283815484255164369107876452615745953631785827223759872055609224465726082390582723151070873630767395775400994103887440337444573436046095723398376923982161739825890565027513310609427417723961370397174748428035777817422242315935944710292529135905884358435160828921840613685280219545835089493247428417627966862857614026402258643236110474999802366636092584941668403752609269691662730050486741073398680578320171592961122118607679134319601505228307133265647890494928287963689514491024656691362891194536947192872856074265107810206710892737503149942323090496294818342786661461971444685137055664703398857047216919003710751090477095387347359365414257806084713701429914659115262962707380747662615301477496887150401760340704419102448404010427936713281573460559887322276364307578679628654342093795905377746772211125874564961152787259161893875149238940341238648161384663744873279831353409719848549585781924295673731846487447311941657432927215423181253527174309010935881118364239194170956883011275037053229885302850660195689299673877463010131023542566490160033924900462210187554681197574197231772431359458227337465873079731797361251450322374103347729244816271557529428880052291942698387186734434022602524063741990309860134560430399837610362247385566636440969897135016546111337604981244052101734139777695480108040307849548962464128005715669358861048610643221098371306967631686062654969838677938142428614411550710099502813173744717370658952715608299886807906192463737528282023994221987965396386998902689526743270981423101777971432388543132579427270085312783599651242825146224792749680956773273536335074499540191315584247797190344016044223680369880859557728881990249181442464486842624022215359351631551523758309227777038701565416699456071456452020104579682838352997924126541472573996686769323882175974523057605642020952450810782603181709391141115473609240103259465812904065420246351002850065526945890552176077791277539021466555396350146493437881942367002583643454181264154263141273161525142645782253941506012403402039998765984898797004499219935021952391655622829560091993540182574927517529320299554882277634183827146437119799344613095690913780860803595885041966159345325453851276207749021748218688363002952958642134165071654141265253338059908496875126199685032311586035282485274940199755322023679396541711238485738202328086011147914868948201378755279206576286053263520649988223162390525422991060920227533737982147414601475477915857459482183321735329015582182310836778293648037920884113054571923861751868766243139508016481107654300170324378226883538806764833211802727716781413469282221882292295331141647206622785893404261195458326992573176984223316807398238579796325296658697519632868194969665429294861958485049240396012034977347747969323851809095864829337831102212302128242246509429298963814242447033911026184609525553675438787678696775854746990859558015684361615858494632177612513087941367353755918986560718335225520848081958604649017867621478746570702694412666170913689206286751977130529062862587988718084382567234448418078279752732934319934740076423582975572143440027340209625337188115419850095074817637213138186927804858358024905095092331020677770277734175881554968060478157123251297273274212778899716222900280098898092619079575262022904333483482802438491986083404490847405101661690500240533331112653390620150407096638767388504615594911879394270719683025729521475207373105218057551438398158665369616483815596837137387732280049823583345609068792962152963286927973189288977269158982837894240857634642101769635664677373136898774229114901700992648724234586939151718816640638959289573788604809529368314433245749813282859847095225153724156437793189712599760335013279756488781775908262015082972357466749598923950672880288690793040059072499681903313777165457576035410668253205402692789137814518207703225785589684828581873344207186541597600869211973415137032852516091477356185511958606058510546481586694136190488476891888771570170690388737306367717133090380482294187787676686815455188447156187596217108707104214004343226642426505852655126172361149225696956083995196468501799338836531554669942353557576741886431405486564904661516382186229208190903108991708419994819102094279318023328769623068966890413224720660780047892458177723207333249662508543339067696779806945270661845783216572184424386291216397915590017235137061350229848582306168967753797919864690705157196307005714551674097060692349686299088231967205641438041106048924514897949754392111252186571768062058069284331067551350380525764573621794953461453256128732605987103296157587167177753482189175029284051396183904221913724659073438608947838732257170586573785952316796564138531075577604832582887953813454337791252383152834995553935961699765987106165448732212475262872746950878966634432717568079839382871031351944626917231667534273277996869172784137111047683048228503448372885277165106514366627333789559266025125889802312143206341864374204203035831274631541233359391694411683593252289693561071955843926970508933858529940167278795100077361151911589091354206244157108336432345344730895476107174105539993292136855053221601402806982364151122152560360187750670601833518881478164360717731110301981367788561176070514960164258882270107418854497297363258226460793885842429093746892189329657551570610855240133236473435915583078441891510553397618626768059724247384767075271853528398383745762177249958595490209948417884647427243746167874903002072098272428373009660530517846140875991146153242024650046797389468211352576540905957669080616728522722128634610434378380063498189946040923289598364509635692654378249913448255951983916003244095321954310674143073774668913265635200101322470641523555441215697127719317241299961837554705556352886962857794619893855344058448366804575798755159609460888482639068865881631461827720126592902880860474979904032915960657822851105164172115569941074717259319610434300249469602663930428918628399681100634074891059214120400251931186225588271727271727807739602465822349936608647419666173438568356095386644115258964104434374948429955703000500986379848179224030295972656676002362399162866528250510263136994585493998679759175261948782363513100350434428409165663347802490072985772970110707760326970376859545585082703076260887184680638459544126179501587769590621185886670367317015341629240928808140414251382187470392738631840876838106557028963145414337332408696852371719769893105102408012124617575562351798136115583508863607186179913063532559168068330929755192550714722986538660283940812424398790375608428823452847062833819331568575628549227968073118606445121551066496372024515825275398963907023315106003438817294206427440692062869203173784917227556536016301688273000066823104729182263323193674703105162486425863841700327317362340340406079220081479429387023820726485563440192125213373121319492262080757033455139838844624366658494481769862373563993076638424946983758447615290919256591637814431332012914206544353657161962523238635184714482670093882675934029849548435265885585361659799947346898640549660640389315466858610819255678646997052535114556228618931290098578945411949981336566853229095078655035337531551125184477060837503880508836236790320109812420491535213982294913274160412166664080861671539694391863839110032429648403132600353966587424731348457085325350174659614094014906556737825322480156553379121084734450762846170722979077126292071119578204744587582661666520876085708856871456489824127211705266248457696654636541720343773083977088806689607353894431635741503362296112728975676704801528287890237176390645910464503860150548936357668432802870605730919207807409115519979315618508751043773275859770139885361759233698145889616640232970310547589874123673592128961509280689624342997718770615825084112800640615418565965973982882536685009065407009917038544704969520323148386737911900030820195378801170489750398087942588870248447522516350657160943996313877123147461233381813142159899205083488666626497878800430405895860784608804757887137974566213253689840504269101628442702847678249496637758087336464182044365943697454009179211403911740694109357000652983257137132358021289395571556280387279008173224028581532161942582563122821242579412375540026189016246655260578842399827404412634384928629997132900004302057725418829756201036975531971746034271662222992073339362761297957468051385910064977194738890750035204478443147248357211056914535557651845226438336212001207364595236217469284012458093345147152078102747904680841679438895037269215748168612502415063327223802170040832605126976231284399642786882405857544127576203066811915070993898816317163899205567965629207908426492028903448150956295786619361577410151341502102416236520692832632402390547787225231805985478159431070944423655069749316034295828922676158964527203066286757887804615533766444188077394758634449904026021151498671017525546413580173342916975744582427363064971825839324185790069108949647435101943128628174978040430634245170364690541476559232143316010564188144824865273013702601397754213207088296970954698416765427371414401504924239838397408006772135871911700079162629905632369760793750997859483881131635812032142542714403506683155397414515263224261046903431184055343253119853983892675485862125927954327680602015598035511696442764448295905911489708383423657726377336155337694262380036352990683896104202608761772070992716061457735361569721741854163722297585591316246281275772981872957863663381859992814437528313067405991230128300732353753313464899652990599684972107439012792155826935414554105725967227869509923612711530607738113532742972795768902738098532491559405160738430148430005258451959796234829564207155497658176599155497552780420705712114905181942903552525248640568805161828100571961538644317967082555829496207720959790327213855507902913615917633873491911370168213747838412172323221308062833790347484755119013024310483821093452194267203077996717741864578912929527747697829309003115597249377865771770476703819366838571925305254844924468783297144890171917728368516097084865180882017169823702030044376997496076955101025502153515195749228148648367955893919993444936884271403869237150866294689023859426651528841409283550537943745341116642398708239568950780356568358688910973948630790519662588261905463710613400363164660797645789159009147828385433678498050075386629774923766875584054270024061186821442183486031623743273060565677854874829168514483093736579368104996650176887845555641023174008374963437151735318463828815992614554907771390011267408983687333159962509329427123104028519745843178509910833482010463184433992146238486347794681674178650229907231362171970152733438687418943788577424577045047454850508804360214498298701062626867896777974441257789276607986575542456030477771807302320182320335736649410563446960136201676153714592522358714594306138729833535217108790780035997779188629505252129354245998140167140308636073076790774025874188926997113569059536155173291124803772852989323735802893521371639107708038205416394854623265556502375682506194967459481468995934426725987085348276309706686587819939596118586952774195530831242670110240082576558057097150938321648281171589757444469970938473809083180624533533515852593124211909467625128916825692539266261302872385768214706444608037072573081445942144455897290097514112549174080344433492299406882525755008679507793772410143119316632320394917085450112894131399636365804305334498601617744400688886408517926683368360269084027565499096904652731745741170240211784057360545544740618223675874197557033046140376319830837520782886163299387019919455822945330434461217664145249689934487249662868391063375656459749073742910056858431442954173743616686147516565423335468096873029868434628221565828583445702846107983348569822727389055929906733222577181040580790340663102189109020661142648630469114776690541722932677927477612391178664952646341693348626779822129330877759636921786931327742944362989189942773680846252322455163183012486472691735266136275009600783539351339636780913831935766581303091240859105296781471777206392524217425373227494088016715703158884710639814861927534751842993493451864493384603462217260322493518460586248153149959951308588058492575281532245293210631125086645459306730240586467513577133010406323378369581322539831662533656161213828527016297195615174813454386080509903245324548358169557800898138641393191741898003866623742455114020924402319187880686286326221915435361115155952446053898157904721147363014688951876997757812725782195047488242562638221992803868990687903578295417199359017288777275404427508927979265002760916503115333257617975139064315322832751052634377020530305846332002155108967360132097304599925274353631128376565498327126180471509413179446289170096262280347550471872504893280567685940937394469002715642257770417106830052691135951876591870720093684549532163288683366530013956091677187533023526389537867010906589513108145210279338132254586639907847231097535645978894130475916233477432521297330250658957232957692531602272026563949676038134988135245229778330640610606998400581525545465764631112819088520828684396432306955811700807928234333227592150663570357225911316746539848922842834518381199519518933390260817305813959464055037842570389471828209835490476710463768134801932852735720287314838749358837292355675324678682173131522797124151412789324673137729622280233713273109282638622449289870646361389242954951748238228163148340734331542835141444025675027550822018956092278370450532223637946992245735322161111410467413138455063636381430456194743288173596023192122821576567380652680075214923148817302257041350056157476908307036231920043344990331251822624614696913924654604011970206294052495293812923749902069214647497781909022197988731569182212491100707945808350664944693969671813413314989827417627416248538908237729104076205549783814480358987712777423707459565218144295068319260465035516462207708419171241490012235588973785866160898827887964490877926921440168810540528950118295189398380895543596338717092589619896194499857802290025010001216273808976393611978245820250400843386036313614293511423418084156511714120668341409378238866788292102232644496457352121893627598104624821094513304868549893937926451777825868214681575992972128543211796840887923288106473769018068793231514600626897423691408481367546483995762576473677122447988625912614689858947156900772645584074336941370379740940898795460747443755529553130311846269079012947047310899610288933605054653521302340249266319880230078534508725593247942204534814546862258120920711070362034035850024213195096171878281810537809140726865868390457911425248722586677860387158484337640180257445004629746227902156823955320525246987483308668677461764243710216827706878813174622323458884354525683622926602490359842147043699862979404493490147656308718615479121984040130110624487807359179210084216010800879518448552131399268616976064217853403615574967976446612533039895360957807778741720703142172550122223278488465639180288563917043798705112790278912208448962125024163150461219695848196107138918516585879508179331133046378942286770020490530280433275352901897055786401288915403644933540906494834900340213258437728739248316059106172631368017961934856545304366225606781046726027267764130395732964649590292215481004820709918562689978686039760721927293567824572356620761613641934080237654159233332414073733861485923388227718929414253739785461404773654957426395815116220828017910231274619641384444893445828783644035181849066789988984154239032573677846565386856685026593433276499015545576649915738223228684528702803762459261382205146231202940701442176266267361568089537222741432836497305120648120024891675696964592079621824864750630014062142782974226965651306290049116871277209794296110056668333911367991469932087452307910600542857839895647568024537235396523494189261629155093755487514177313585115143472681074189970142597231013944941611357796448503823448889134829546227634159522152566632686109971589925194222032667249368900691844756485013404950470355286599462925795701608111775563088532816087821245372176297011199095009342948497020552925106097721715933033978221033828644074072496495628524183025629782334824902804000413389008728945475493178630960821424792199506282731438943577561483212491213252069566477106662471598747686790480329205016495015544220929737926016231953818431763046272513887312822043167619155508011718682601532158812797341780739904038569747746692760446721760386585774570376385584860759727376811234451194154342018346872233534950734925887731402828027677384005463514058329106036833633068789906065816275078762025949771096534902939298737785929878543863106515247983049813399674113175901273447270865047608839678471234042374317823389968124035919669665534974269978365782727339137855292028774897379196346609701159007983807396251321077658022224831844268766360283647304799994714522722677931978084005822574946534295544183371091839938429465593913395007462906237454177254579241476041409729063554665938494347950047539398348643039011272715440842318366893648678975692658151845903916438338700602134022127400721997601696791726022301794689008365376305236354846704787665902697158519105859691015754325086698727399386544973128130947438269712512131386945599481786734128702933666627622167003689422431785715183186539838111370990930994699488956635946364151998575866136830091652854972712467438452347059153972112934020627969278791193435105924179645447455273748454716002089683032710297144049698497211612662422309471279944270660169608823459236149434200537484842429746363024789959429996888113165386518225584287440330910183168034777744636289902484893352484662668094089500430819292700839698906169195282691906251609366778568605746432548190454316226172219828467088341122534219755710120377532812128182795217172262121235861263575082009172612861989069417596803912290429356238547947880095493591769321144793737333386057942634673283408883260333601972163716043275839373225484604548431195930065941931375067450826909188815692471323495711212078828025187469758714986356252719132222131569344544432829741092390130149976940781195619412903265474870148077631718981511644475521594462567905199253538154226850768145424034061994237647123445961912973740537904082016253212575075998876765897622309865231812752443948616745184149124906100608485742060753945044664047281053903611688865292909171948498960194738625206780798893942680870046160636836592023970494198324079991297276973257756372117038576691875478130641246800622237848733476067716787664193965875078397400461576135637386072610090932525181949987901090385757473409721103207115196176846339084704828178118788721372212228809047436395511522312386233396245825294396943110875195897310853714994189932841576226948321140310229220341136005116376242633224184608698650346108771689463271400794676345846086812395040734572571057764363822636526764205063353524686022173111638732785652870569539689672686243090627349488659138890942462486686965411412393179234112052727676301798810875871929391794122384774394721217243241883681461145813138993447334147317570529633190537969890483409489274958656868394775941442419246824038173023127145607767677692311977236590996260104282106825557789720724407402046043788896613601765931960844598293685001760466151572530931841253846703557123908150826753019862192494508066435367356071569362154710316367614669160282397065522161606135912478603003105341706471126507293272972968095507605708120569501092333034105324490829907455586174881786151405169162695597838675262234290988355445793474329298796570069761273335494636312647680869113167335924071055423365117476342492847775878746889024532195297591124741276473719280391772049705283131721303990898988895246102327096943524616729815625084879085781060772972481400176384293945507032167128704516983493705127592368297934634262652141842591941242259123541432503076578354430919123009874535417200970422903177609329333641722732009622917178446738717156219778821703699298701775537338167110379328096054770947225060798812423263703083910526452384041086499198261379225620472229547720798549026625337747343773531090920193061239280080420321060539438830924549197648114734661225758147965646470373111685968265954807841386187189668422493183344359334908452236179630918657852111711504634469611187604501655980572763480576980449804316639049296821584802453810100923312369038503182570978437672707369928348256164693939178517759957582669086809016057415315114234984009691576425614563655268812701504084663775106596917030543640010051421092778455199319479017099144974849508840256676457547414681506839027987300836017566732974235307546370015577575263578563480753661220878220641639105728448423433091443112231910096624562590401527658204629483536328448460567805235493064384394805924457877184792125697199020844136626432469062367295733604737827805171250759667775335129755703788233445534217868373725780755932881904030080610428089108657184426696793799502144139492276069827174896842931823073344502213237000890899676729415384213027156284488021646550156252435466945686996978572284476915751001162859261649426142253821451178598099226548508291387098316393753776113400441955976215993333705609555081522367270838812192619462950524344077562507486796224925258186720316373201693178119286248666415588141599092762219633050166391990940954745302547019493201662670525743769173622993403597299490662356657348916707719372324818803729918735118236733810056163438202619410610216009318309239632680136991570707283027770599649806482859178904821255444471634500871159843418727522909033849647669656470453322693607902531075211241669349528142322504971869370305961729804896865586210815581599929799967485979013212841430977496349354675938225990426701955746426660997364683104556671797336866157469753646588741867752509551694206224940841131480617245364535312396961543297933928584469816589433954967659465691513878584664509724103174301507469267258777467220165223009647630039045243701808802152933545592577048963002914044638070002418926765691046380356337285563513642408160778711896155822841546510058543288732171562474613444666471736169538145056599386716255033878053444913384996255104643852774601253205612899911788709320972813674888341721886315643911511884447221155124615830435469127714970152269272150881651476321762278204916646987996739984795728625628854838436954547804958523101255281156502662940548038670955642446978084888481752348791132483528627834578489884364726939695076077583342432856970764692251680953615786360187588393336100199593191462838675636720446432964881224349049981768794741691250853410625207545560833426551945564476202695135719316429848512867696141170537265995619826708492268161273442072481061902372760895857960432898251486841218319780199391510109610725689714642081295138495320175091176835756559065348177202672062131582980242644796401120077113787298241230488206487163088520822817293064153758704306686747364095654966591320023275844342797592561006083985494336009754300494514071047987684324971780157288046300810753540525442105916361600184416943598822889865303966915274309727357548203321283052240244845347539512844583123362161838067265864673928651522894383560228641016215141838069974450838878923571398698930573722142271833750086150509264749385847818434946385874345092711683521219024636212679773430090289319046428698136678853243744533508443227687511334971447529990809996252328036080614864501406930993137608409416489539901638433448474601270317039610051579225969406394539443905691808967464543348803551520970837303615442008799387431410100022667413966966170541820794630810422630475577462202436792606760225485716598593110263847852530852257151519287330455699828620075610759624770004372535880622486103617043950501639672229572068794349564775805101533500284517150774575609844881190599621474616954598882261402904586378319691691094841080413779492179811650246179395069886489796757087297415760875944987942321631586467658691634596697884877782368193723103420845314327140482764248222292592505409369512047574913335779854427117366086622004884940225516860870087298672400110780647233996304151859327139033956156251183811537379376675099688004634302872569927690450572112133454801978102385970414497287993644703908855381773172414825458482727505163138552748980517687797081337482195531331653367241571962859191343768431972322702237204514649050736149758134301093506205819223287366344579195521475128126888034513656113093951958384011914024039325575017668776563872174406159407236048460148712528703694669074851177669233793953837197248692545634980575559843492275409642672554278575739266691978275218827509887439846156486977798959852465758286736742584903960278568962227659520143663846164207984875501310293868275821672503818334699193515890475264183473600466109733152715400465363371224862386236334457107287992299420609293066780064606468219564416132884396426692891005933192877176658141917323238792653994650272932134989723233522820791641990278093811259959753509765862521232476636395795081170603738038956263719371310833049793221832265314976514597785520274108486462212739821315714652723067840195579673645956388027463052457942813103114571083740729651456004803626704976371533313584781839427839580820208644405274412531016929103601042929428257979173227209139837857285392601584086863753582656296834757565538526252536315849050922522869095161199952693090786086295925556082343658063174160256308194230898578325547012129488409904087322817618428557778127845518669852391010862099755179099448568636396008554016025446990758948231765207398228105259645998146307852532670711026156425410284100072889715442382727991689719922025252494455079900716506789462035160545402920912565000479478661053462541145539322265093705689136387193260147965318546114070846957336274574688525544941842625308690712825577279702501952985810995711653321385998537826602505809098145922705693699177285154315807889865370263816799473776207747206349194803430695003431646903280818901663570190824481085028865439054679876250806477896825060728434920364252839532620090820090209977843378715054269553420442525883154174596332016013809254349317397231703939418688106787730501216172043923304208072324115660808428100651457260903557253177451004998633327182297055452597756197773275558807378340255800624039895493949272939978773743153946841904767941730726552527609197074248784388521920360034338706612842398932555320909475754526472465265260177067882123185662705627072284289081001810625987870517623271373001110286584777138053796239388565170544320228498964157160596785441479358235191849553471108041024346642439123138603619020463303130285856529216338928136002060558148756567558894462966525070092652892470143041872715179463526029168388593582239049841321327487424253604889957425996465563283028526615981204797628676440848583496808289300207470632900816486849128814940193241640112901884558299871829903422521501815562270090563718302095429678500555778893388774266238273627894725124246479213262652454148757123563330670919591370161198690551383887862300502544347708907558786294922430066198675886693478823618229766978827096889796219597223532769994249361508160465965308055557147737703348784638465128718124073501048722177160994300549283334417109707120575329317880463474573918371628427444450735417711979814803376009534629647032173523381826611117536735617547433781116755415693261595833071581693220323829495030242705206910049403851718510336572068197123642650931375314729503095069594169217475484406859753122828220777560827994388395567044011070956338795452167628113247399734831212737297299426265753574409192943215364078803750439849500587024819607401687825300206871764294577153796900338744613911484577892607422094924983181613120772587100380678789833923289873037677031278450829669175844635475529749478043344570784501419549734043625973042948756702940901021494129014384366595660629775658636917349966823467843753493717541704690714643966367434889475902199681986927307775365188907470853369045431150957008248048400499680634400557837762570182388733050889018011634365018698598661843472180999629013953430938069626906158784910424395767658260089645233200690217331685138727924414551415107110818221516392449098386737469895476716666916707707313982916568956295634870770089747123286764301800350432089514464806079377408928685821038900025710451023709203284686723246787764945573198934988203047228949331942059303512905993921437016835054120913650230735810100769167962501117717779346885611737939104616943828362272742637069863906908198136470659112122844786583483446700244029716263808900326677674280032735668882873697139173662703051484770802515747943699221732540087719010363994888488468174471069024980750556650025435818838385203173735961721227335040900115504977580108520176960813219092153373813243553005138638347703236302903113665600900095789387667123260837358038771641973204220098048970142313934303289774584756735091592686478761456487825692567544260020363520983438442599917873133331709609919518212897180936164294414063014846475944698399856481805624381526466476930494996094757326714042609191424595688964483192520997897608478651463734304118990714900256892986733189874804966294557671048014832894344317152717130145457232806801107618115858300509125170729869772623650734391789746814161113402943452807486084749059018603706755865479286584411547238547958103830954572960585617440458921802680406389256114688969665086740275225745816057480778228121538914783116634854573607597133098371420494622547111719560287777670658527099068280580297390352763708458942079099568388838730189909954586721281073632368553476633172736011622606590769247084182880989268129280916147983269937088539651390310444140001046392602943477717296736046045102263350380543728334176700616057198978967703292035564115470409207183181747024738172439300050227040251590560749867103634051527094906805680910931610392345249948108760058297474425484557309067423452129079374539195033889063874532275485472970111940918112025537839180569133768206159483872696259853237558952850559123013001239897945613762572925633325106065752383532159330218174585521743889966571292388120406888907469530353269788210482604552709184762912251832576832140588914314410748029012249088711630834483803482617447626230059374222418026531977786086651668304109754060116227269942750405054283915867661240044905989731134860325701640049413045238970774953707323587397657795785296862571233851004351860588856081405792066495754945136142188918606278033863859877532501405613568788232697355432469766811148256137438187641182892317045132722774319084184411373939216924000739232196390559024302648431540280479660966162999628334170124756936683551678659142032414760186740843851439653334835416015415585172127515465662007064022625705559247457036178267110404900653874391167245590908937956943707533536967887997357538828277637769414340727756174226032193596244820063465982989700457382401356420088257416586643086508078718891601517415569444578866180120615417351631104504070763200994296713865263688202080990994329838268495005072589674075270368024511169810248503010312990581123842117017422572566149870401401089920204431889625065900341436988409014797000425975420979034579187927763934831480293240658055726818210040902122457376467018235186877889741627047856386686196014738430134000711467063098780269425631429202138405067975870862544255803528379307959174362858080659367942132273911160708057294042572932482448599949492033623147055535985651998588900931277611532477930374912605294995265109243907777339189038218290774659660087573004823782950257234510962166407241137295342867660679224164615044646447986632957897580559992090626840453733938814047299218449542717708776117958506120063342320919734003773466336930150678426609350101461806680670380402471158113071718852756595751427067486470455036493559932374534339089751998249560508609582523313986512020795982842417909851085078262395434772501313311169605706589701778792426657007630500131492767986038180632123213040034136631776181833167815681493025591709367997536070426621381574336701004144004035415806316120429171499807430819677202277575281246276131753292302539588912105853142484195476009163333655931311380312150506600520358722408529063588905379015716589611319171799844651896350721553532207896828534366558952009786054508825287323509297106384289261904682099134706705051777278824348707055997383413694032678082350890515137158922379635704462578833593175704195032079901249264997162426118518897718634344050148157219158905013326763118956522043443042198681030712176721001910871954090340458233016926847545491179385400330549192648260454588555862791024476712009640516980512618900651430984707430566637490558424235807481430184301715972308311861873579767926069169228779583441386925095942171403619828828706571640868253477515502384330566084419397445276585351900903742055208468392042272456212100733517615415941073816122770914943962659325169067636547689739575505021684348398585899811400737743482455665967545777356804823230007494132083765761688596933421409063802588078630626959195120188869369363075301985588072473840377178966672957944522479622825165034440651093667029421089013366968592093521096928733606530103178720544825571279572259860668567275241386703692458954981541330893398965221377788824620795633754787350117773237598232926235106002122450569247882261664135725014566400352899437143952077351333128229974818168459653583028394837510646000284180320911541525678380343807585087058084934811581092606780516703126105661611114043591384135802963277049506741847455520922785122251390606712631208506832228465437219698658457974839553011466025833366848057244127707629187395273486359979702889748435212374929904699938798822042306691466725370453938172286660984460988298705056915054258627430834071406744444073580362723682646675726213423278826599529477834263789539659019435296721573834115684829905444789184790039198652672497234053929073082144354042062247221011217557112367977780217951772073974234742838553911571638260309279904249296000953335507629929118293887189022780238950101791573912924938602382970762899534216449381219292321428788977716516572635396237172604717035554474609466451414912575942831212050201691932591943188236338245007722746024913797103104603322349205221454669167384675365165904593242262068260839056909404374966062634841001855341284227525991677030595186051813212184718575579181102388983067922689933998481968750641716361412619023577298420239182011670317146594804123920268725407500288561335637381762707523848153490145662849102175442015859104972148010909080943066572376052535740910196960816150047800468605278223268471784493295424352285695261065119509198610624670558476900526173450551920808920671253043776069011483856000470745762503772620313526597134922397128631395109627214737865167686732659986988913504679215105595891147435045253252032034964029774824838118001379167821608850416619801680092325723464648230045876366435773711791577205380449145435133918971437435540264490276245764592268236294418185075712909329322483958608846289247014180091612957920666694023592427517160295478339138351940347559258620130648628054130614732899204777285195270059617343615908159571915188715236488593672807066318519443380697474140909655369492514432030681569897033913649481651546838993023362433144805055163494192396491226579832970556516622655675959704373226868877682612876322939754492685222376632561004313262516642078666573969531533820170901735632704192101798784752090797008410411644911740252446993174176767543496342907840293077114874134254099200104147648217597222260251629467888172676318666128398761019547972688702819650243811796692895994571165893263921829137990465171328784255023063698107776223816391818693322948050641157608720423132361020058618287365034872306092177776994957682551240613594142531897275338272920725954885697594685728087383099313981697597573582199254480963407755674767326982221080868442846356225539102923940889467257805885265272716708607823512728294795897405947727328868972280642209002166207543028760308393734022551226150869018216877079870446813054824920349967485861314330700318488801346606999451497331960949003065659096887025987324681629205342888022764685274485331566065947519173677529283147514342346347718192094561590537374911613114539927783449199448051092040131762548277610148859142243931822193300474484026069745407176148282882592146384259099044407153370099641591175804800821939053513944521317604379382527639583337601256869745212202390573410666536552027234254038521459553233639841051456588740737330380680508163382921169431287673526057518602147952107808805193703486875662888070610798503416614211815751466797113165809434244627484340874009388124527260313002538133987007491429370870349140060001636039522617156718254785821254583433573249465246603684376285239694158781702087958928564378366985810638873179128356131143370070031426748297268737143531389966103226065896219588530586356638907027580062906822296859934289072420053230551655563653691598994988545725408238836254622352093170954404833831012231125983431027467015195236052615970854604635991476915864748163732091474934002842223353793070614879036936149943442956719226857005295376560972996982791186069890271843402728520860306650872168979974288576320522412234242378490766492375183262497827578326708419946038314447696393847966491821842436329362763988324116556631637748436994201555018034443355280605512011471425633586020446320861634388140164970735145585934075082738038951773581275135791534714288640364079593908749734272064490063922500086094225739401023534723521191179179645417717105207430162791019191898104490983321129387737315463730261938811336295960516569523096886306981824784357509392485049225361256923348642321528055085613709496078227888477718471872821272707360501194609819061936466854053068038596697858740616019580729416930241573667474591095392400480202419007335619409155141039577821528931679579140067758616971382930670661425619666398046546575720038224814573396884654633876902936883850190792974653327997441656901350359051435286933822033853102310155685139932007138383216579973613707247301931073073904593856293595437881089255649290250762935188025863910826194776920668694152720421916065634448662529675934133984194083753978252373180196870571741637608994383017285047896627746728189015955212883184752382988452910350627206329958760397527491437271417983295256455911148532911661983720173416618156210979041891644519917331791264554949691601548829082510086112456411808884167100317180486646914178862696085469388832629087670638728278778160476701673262496287509544305467026383596398955097317896720507179251678787197492285780534124104453487724649704993822576753933396575186208968019926047035037962157176964929483001146598990943400965189153241108559503768591558286006649323711200750687604340361985392554593716514072247582276940706154940927744411026076522902715799351117602920649537122382455273864689204112478955993987601900766243272881467575056104712556211691446331753152832146086647251292307849315440535389226997435501557578447674966278117436078847427148027277516766486738280939377693950805947845245517766512505091651585589688395637455028637275965932548303711705498031198711858056238227843016200431319124725059826987992071910663436992470504818883039582781127300410321583093922406396184640321760363786316237029648157572776994939647224725778673021226395652298154459711149261306328333863420280438619579712337956736813069989036967319000819267569867468639670316971603529786320637028957734801451742127582438142703960621119759728563188059057658661030764932280479348890872017762069742268422113374021376780776977299261783599718026585530103101555290662538966895010383908726135588668973751773737029798118921684523960861760011231287092056781000864727602464478850395351393512105890542801282215989396340404464258294546277434267173590072008446787804448398344716826023058168009879177439528652432564950766546962726069244906507860198685228443925190001460713203856033478127025986114335064085905733912051355765761062567605094409713412690539350639878403550042085635193078122810301957578230885247221959420735658043104248839901759044563414764853601772388318224110257269472812304940044233466642534340793395321948861460759781941088162975805922741452787291074989210523729254476997760189547850394320584229868549781295222696865445971795219131009036513759013426162889563705165899452864412387756503833945130355857656463853558490623077271378585899178814035073566739564177674314146907063824787631730926779727265688749427798994320480388741616421238835301945718804728894678994015275850216264399566006345722185073797456274741088691347979354871870527437617266353462298900269946560382637002175314604751302435439324310156008168113941895894109410610519086495670614230156310438640838042891186108668609021754874114268167156496095246115354141037224045700077786121815129587369016048025170223481479448306235467826110743557957594004139409316054598684364663565173564526643986693899151765488473080062030653273593383034163340360050212727689992378867372886984346743506751107727014638872181737212232507614898359820228978759841131159494437741007370772689049420258182274292704907323146473854719763604130125047569387117390118011905610016706341174558107688908581992909646993983908087988570068801325682629134008986129296474050083065396121227424633594257647588482501992670765279682422801231480395806103863865591416460644883184049710572909440923729255237653728594969032403522537418965799726434282025675734862715265939547619977651108894917587018972040038752737088191807264291206210485537882099351959615566914003140165949282292119570087898924685713835496550948356451035665793290081119674087217734036618400230682687237683479082213171892897802171824382472132245013527541515257998443265678808600729382900422739777686458647328713303122240639534909217779669852264483933258806014990190151911327853314694259233025832574575799645650936245215826943835416930689101910134257355969342808224703259262849932218371020189518994632569933329819027385137550698911180066855767887073985778211086881484222355155559761504954176257628837527712962884005323386161574070820305093373960034112678958694753585128399354716672157238287880418551841067439369484923962630973172723215677497293953953284162724716039322478633358895277515285152297179217730487471125479623679930183026540206121302242748130018273039671110889631209273205432555319947250006908282956797613707554591290073615967453692851397186298467435925222333332940809311673894394898230276230342893665761630820125049155494385709359942345116447960550817593483640452085002861433938343610661580426437777549654711573619545828566647895567832838850318786148877747790991251364347215404618224167595627798752842622500778887767377293598710502855307246780109674518466386457494994005293979956070491691522551233354697751411281228762431788443870777429646246690939160432469933845733161266115847561306173558070491996972311012603215553401730969080914517544063020884655474711071666788165242357346504865387489289599631634077589368875433012115888042113962064485130871641782347539467998694880556187757070078554716303433032126401357910717284708400270790800257944091679809701200013283131491356449080158617258648533256452189736927790410083426364972549064685432137806792145340142444931188126847850265643574203791537055919692450422719730007594793661592014116328257940620449904914557533560638747115659051316010863855012238981473530922752624957115518648356647292371379795176738705265718595250214744543592929419542677942420021328395020955345556008764588715464908196855717985018778526727767857354998158038879693951915485343757521682538365576287691716964782409123944099848527551432243746492758283127947125500889522867568995444366481759168318117395515367189681580360430915503665881205828249602485284653254750165130988940922349871718562884479504922198379908769417111515777183076960397817232150624817468192653587896481050902757814896527281781067497780069956889877643551711149397685079348211876819453064736616462290195480872774549677496046156329911590638188301446383413945448811296120767503849701324342771100555193941825561805808573208411013582737250156028573182678781763937315205032275410873891004170187065239533885893606689209966628314117428467375234094742533555264183454020299743355650446701025965861506406065116088439946762851192188607901248168303862682887808574869483240067510422408610148838239426502973459937245882467744843434881775609980928112187822899205530215227848162705280819423043665650469588842596848034982584745760948982083846953745818577260527809737936557540551195101470868699690806267657704863241205284151867785012220560501281854630758087159519788371818097161688911225073652001833927198618532071448753149695061678333906915627860235168387168090380958843351532531239938242574638977422432357832384877145319160457562197112711029848316256183330660374424363608377885539710201643584094251260326302126215736184573421827452255220019763587890754151185875430410032695764961566744509938565858657896366965531844133668433910624122031816458084290834355548034283801433194689205338372131089392110461637595856231927544101777445285546608377595507500904221553924167045220144750267667324785604210723735161411953211343736919718300513430892162125086517602685419313295407613025174387126608724081030774954237145734014067722381742796385439442975841317276753627680074394600218785805893907974622768621319520855833883190937455596899511177084124165643470735632100472303598946757800729199008468178951335021579164803025797013525789213268422115035246313529808384588050259221968565775319431618609074044796650156690177068450710344465301698998270144862830870804578912694518534876154605724308655004373872252188261084664378247433668978105375383508323460389854241752108026809863020899775316526720741780395578121470427448915251307547475971145209210909377391301126740834188796809447181279906191226530786011347115655610784428301428446317815138407955596055364579772222610057755596881710901900423114828610594088543724990350696756415735878754085746983980598553251998222676302519978241777981898190559294268135206839216282599782522042379865192765834014977868948317466196417019905870571222233507250151639942877448133663821093673800429191382706714884589674799438697099322845279965776707805383321673401087844481586509005063466028577825119247657329639987894991895750761179796819530395759204747441017891377330587477010145825069585647825461863241255523391689931110019599820416703600781668552758941006885702968916099418798744753873302910718031495471516113050722872609076850056177917043506206501693483558694129808720948997674822884163286416004332486848369960014780314644178383685303233794288238175187441121714977881644173769488065909771602190740020818037606091235924857965783859909951957233612035888624432595550142475777590087706193860517407038483852540718303603119292189353103156568511353501801357030263287163026761052676384446424171342136895910928185214169448502897423273561869902247645077206979484509759743903236311410229356213426017173364901484240385598423565572228291693020008300588544962124224008583078660275828261252295123845812764176918023658077846872394856717366848757997365696365172362487927357228865816556695478655905539360558817895289754170610488654590367883109972884152472064835735643527968471035164551731851196662074052636194274571995940417688200530000731784262951052458540133941154103602332751015561359720958353556267249763921797253527188908570515828738777726189463550342356576530071501421885057718257243318131168652116764802270632318306317777493356683657257890101323432820513230661079167513514927838438419931357146640434232217507325033860630859973067131811706148541579491066566711379113517578943279670779614339811144770161622118345782740316288976131745335817137189648841618344729308615965751207963648110793964373801079961637335142383762550585675741162111681735473739700497476617158900809997610105417602666967148395030989817799376062998732671475605853604711890440846030649605281474371011756921598221484861968131557305197927773472112116274684461655448656847813333016967769302155776029064447925570002623822807826406075694766198994323533985541826175647528764811081612576241943227177023931749610921879419659069945391869765153381974106670949142954455454233124507648338492331048474119500061920936468191740520768102444726383717249530488669831136008725514332438424568274799575611039724292955678789686723966809250896217517289520574266190887646310272336852311882617826387932158997361013330069521008608716654041001619936875614901862569606486634907038418625263017623105476689292015067316523437500781307572896507997498951451389702383396756170227658660677947984751940861701086488983605890056435898864391860024352725840068272291123960030152227017893782776504746667848092335807117734613250510164581133769748608893668521212754501490535373593894838247203164831465289943876726143807893740462301876373209951129799863489824093301437416375550235684782087948212305040785072563803486428394519765166976707364619826540840570487665023663023748636940623088597657696896687187086462105766248770649640012312995407938340266686058348865075048511057375341570150201872743691624552002820050125460154140076315851097830053784445315843428398551459926084914791587371911398560317503444251343245147719560268479946965136811116712821178282723382006497406259103347285133616600803927362459512812972541259400642261491907390480080945058991215570955176579434450685821764942481714233377519333159116955191016160524385966686840340324105377783552183141952070185073575943129591188915158537972120015591102634765841614803431940288972526452189895373673813880810841729012087626259696382667959228142785622542263928914873408993911304115175892676240521803744912764734085517869933899081431857962805062965461376078725975698698868898730173198588312348089824969757090162568855154459331101330993314529642622148251909272930703762536163214353862750665273886758221969428849609796700669999306568429969016465933730057144101152733699528463571933265981128550122291140598459724187038500647025661470618146059057753194539478592211054951039494366611972062515335904469552564209235961280818085773820004056504492733251626630239108661692243416903428817910464938819074335083916330474117052889424690742572980632830118258177622299363635565444476337669825247827669205754721375360716632459040553069690343851215718883021534664327622178324125468763691908407311570586847574215439924002082244102758853957864273914271691529616929422323995196017266589129827640267955528388210040752102136352764086889151374646564489188039510691420947474840234848322477644119487956466277466479692294452107915983098334435110340773750368215121424726369527561455786673721109796727760699987989303923675360661848170857407245740719121501887381791331548332408268870727793258935253080000908868829637863585868322755869783198612255384059400084181840107912044572388837147346653144537835405878649198503073859303518811296680582332746193561702123657928485056414402762758743761438040990837685023300100572690808514048572255443078394349836058053393215040027595593433828954075930534395439726526176953403760706622576648535155896085588072523990335476744689008359567358518354291677244720730502496151719483105065282447109788208316070936440755372175992822447281217387227961481766449047281569640520410757063488535097245795106708748747923371865346905992204001121190320900026482049155988845536347324940630094238569149385268576858174128034579174483352844369610759854976519945936539365017201053551278940490694767966191414506285602764377623367227084204494489878066716016221937258733539957749521836044601669313745486148121855072392558886582505583637781141205969742444750575186479508804255747602525331689824741724993268141663158302891458628249100027371503138905559331883460829948882187658852043163300816278444436784879433779899195829680167339546717534031762131131276587829438914554220271066397728016365331933454487802811485094899947327582740182777382731522318299654830930062612542280346021525804645282540768721701491498692959901004111591607326093108743665491828449131479032571795354721700540941806918343657849058300741525609076076989536362765819187315914088985103249721330149086533531217025955736221698549621892399498628760539034623381646627079549736491038661491860196447977630418646408889507847643050756203436901331600228868848368610558930788216143559114307716493742072528352503999690064614441245649134893001392390141854796932646916655295557486058036614774629707887878850127773928584515068826699860741760658203893427432891481360703288279786393706295525746976856713222162179446189779344231368467769303723190683445080014024075675396698047327523472705509819744578021812941401366797752774834073227834198251194354925958758608470997170861890287890197602393157888235872292846678896607323253659245220604042346024918667264209399124693625399846916413948687279903646072007888098729715810875260870921453216096734584022466654445379884437211173619939297855739605226014737492157617236511488250282008346666089253829364065827569341296861076963738999269784722797117828605430672605595330074597404821206678640557272365404396717785516433131450043541513927072084503595408526013563766895401288331816501726551748506782397938929297336266008163842347983289997170837215565738642419115696802695622695241683021581542957717058961545738270081436394989056321758825059239827019680592365093428746652782006421072984843617889772867608999161304372841873448019845329246465934026145399309752753080416941166736017254093147450317974190577036598954447123245718307641276933535525690202620288363813950834584560847327600157053879145380348078636315188935224768754010422388202385136198662793898754004382276660908847862666851819292555770376387850353702578861468702798243233220096601923226318929213799405032015829143806663359055836759149888832789693525196367001294439083778701124675795879082362973573133519383793844091864261207909370623054570773468281490282354840420632851292406915376868975827880130759855355989763353898180973992644630998396155693905615799340688971946156551924559506123631988202926580102262504752823127118040324922513464253240855303420296710767656452745448959126020355211102199421386276751095704929673688698623568000900297044099134301652357779592754157279326597959920281427323208785767911886895520633044266262662844930416626114284546518621085530574728326826809220325798757252817537569159729296436679339083016661891123853349397712278323872164627821244683122843814400499879365799012361726723533031229069009845056778458003782581267352461316166659066935691463917196699562150428826502287592136182933247363469665821225673777844242571482413107628200681841740810936381276157001063623910325626429706609269073877616264629326908582574079376121692435338676104570417596118561228311172758509054887326688710055340358319814662053824279977156824400836432815918386063508507942456642048231178245721176251320713068506596535229860391382912812754770119901051375196525057354767566507880701484260199579996708070680466568821658411110183598186348953544011224852765609656978197164746674305557985729868952339129912136463992415237411283061699729786732589193095370063593405596019781118598553833077046607692994429989447601997193032340427068555413696535683311534660584854990650067034077777977189680391968791846977583568002939266778353458253926823274283884799338682660191053153147800470089164442909251455812224648018709339239314740118033705439431341869969955192023990275652620276221316120891016773779060134345328235463203728772965616447712231007554541696748313442909710632187751304476469521503517264356366418059829712844057110160920935784870966786078279006179961091324592067414945548680877025537527738127477035831254435660397024608919844931705666788201608920103477618014232914199138723829091288626800770617809180173023199452569880103642112400025536153369591869839698121589900062633755073315205472591263823053816582969179370758455037809608373788726635455683789266910092374451428940468034533257390032934088640310603687722023238316224770638052428681028490399536783044255494785312461924776436978769025208996172235223435219569484458837016104533902751407907763956451167454601895425073748527836622128518459345863997503524034890142024488312942298469181360313366680346306799272435113747655210016751751344203426149420878050696648949411814306715946947906660636167904866720176123348040834128772161595552474923053682310587652519706035930618473821277074237336875327690074074263292582870278155506696647030904687151316914133512168888363263937146313966258106705579752401279473621650358449361893963546687105326840501216398433054166509153906733473863016838674925260556462531171250888403260828139759229218123672571455051238876199394326223026191981941078284758075046629124494510884894785066535523105414892081597901251797924719308718878646827768405922952899570088346460890085938805304323784364179314941642205149704172388020257432743316086452580742352592792560330528148376912491295477254231463519741542687455212504763263470606408939899181830965097628434024199482695682364064026946778154249502887511765476201647766660765397929754838759533147638833851157602265797679137351252975367304577276488898426115990442319213305870286603663076468141426684073808960435666354876458998355132317470121691739190337230924676590873831683938643244804891026964680511960718552751914071369451070918836248389700796671544326185516007774838569062723687596839953255267297288576520628937353362970430097127694030986051684420364349030746266336507240117874370063006747365475221982615497476774502941313851931472827904551831888566362008127666315557505776183884974077422763477336774943992861731102054648306358923429131921590696819608338347963835641561140525874197582581357988105265565819541094205050007861559765887806701783268292008380455742609135870911846847202018398779501742247636977634599903924963935486945333491274723592360936911335698295441239038009123058334342062655650379616922784611209797234180041808003816979996497622964596099976234281047861309708961784519612779219848630201037822821025427299227809631714520880781051720654952807690944906583803024056400357384361313236084641441940519982265612079346783109007320432766102157225483821954067026810369913944748261879406589068488309929827477616737435221377404562502775410137999453718874273932978883236625615564811470356269148870311218236058204853799818299212813836835661764222379528119444925058250530846156512937969496914913424589484761535914857322898691624222332244652291224186414530865938006627593691269188162579166326792790766134881274634144905357986120941552109978839203264057941340915891133884459854531286732555504073744676004236418711664036436077839540716696444526535267763400928915042169258690050910801681306215165905273084413960373195683034957748610397303836345011457200714057834934340506272980479718331135744059878074458225144643287093446848660635926695061589197259879780022687273797149231790850852217171918605764641745358534095441168368882215467707785084691559415794726227816994698110724800349643128697517792860950677408324839219109293396672471102304551055302459225608975968350882984410463737265765952240419430961998042454005471122827691566622189268419334493756433552593322940405046915357544235572244806412282422659669075864946395249286421572706850384271183679213562318633712268480233628177116470369354997088561056053787449354606137369502945469871723879938859538793408736926683085754900499567691017704766492962100585175068756275600574818724865458842903519464606757720738411019233516053077834906896352795069809112327791194239134984615260097964514293742221873329595688968597636354082165941722990539405035624042492860502825745251121397859942680374502924114375258849824553597403519447161174615658534366641712556589253398733141008973512086640456195107917449306608919166300689548304905479551787979626653980739342067898988029555667795570165877665084217433253430775300691992426290563684424670270932312644263604900021715351593027895734605152999364300076589437562751111574983318491006777722208691563579140936923151893136477625637276132148890030290414848756291586538975934737812093735448434234355332198053103462139699051599069958349521785046898641953330588731802127781614526461897545798951599725678273298179141561339343835933148903887293341471658792723979669177118512573003897204980982864186582267227469566901704953863439665007641723363922380400607824278564119670650824440111859446656404462793714653264446761824755562987459147485250103585034923409638188011272875884010433886498464640227560100876982607404507320569187524081579995264712127204760989567860517379899569705465048390304575298956549195112966954060842713948503732659485896331500995265721261839018448066147936339284455250151097791971460490838959823472275291463562145902271029044950238465313521467776027539730782181210635997690957398669022197750414083260568879967327560816891651264111560059182747109116594745871679420880294018357875912079959535000640806664987182411611679840238202614427272461910703937030763734842871823372134837091067211919475548227054712937608687235960368650163346653417781052215415697849994066896681415747893230240507065118950384571660017155522505086525131834465798781065831703405626495921422170413179403415879308942539248097403037590767155386190384954591336961736716219887811893946556474138591866857291803042713786476530032144564379179236447536324842900975658527814356142262262220126013267466124787073244285869320435119341252051420211197335534269265952840680158225419939714682704320764458406158200441509808401222009485170691239410005660516413988041292785087883532786224939531015777162194028051422443775191705022030898474674157688154050864654742776460049903771999118790595833414025760226845183431204512590022205905577983310787983086519669558850051772153614424747517634819682382521978835305958124087400385499869601941211430100840067932851001406693007276672914045328787461361696280809928732943638949820453802502030521538263040568370478097377116176689534435884195645384720774512299867379686203436875973546353144993425424843976556223906270025996389589309252296388925330700668921744531417126719171031038711892272442976589540508623436411435802618301008428136774355445404489594462995625022624091554532139785186624010360662285110145004850772463932798438166882145390835480527670093575296887842290137094141045402253990591932401302428058015323210342465203443415346084107064648788487786156610295042224345133716031516894103163574347760279011890274998135021295169114933510617031625087161647005324129474426083319300646697950350881312482376084234554463335210252341291210742715112316800532890705575764243506866209982310235172814605585927463652714145978153141918410624124452509370295429151642574721482579926204350205051304430668633079409639654267672235411221638105300921580895392463035914063385523396512150514607221667576059404042935589098447075090023691406030132976078233491676378770407905182802728138033942857468175486855482541146428643449202691323792486448403666016093201010552764947201228912895072936958973707028831782643502297356617226692917062685824644802847189960165076232723306271589958916206356061716541061164416463693371278305330226530434024605018265154969451062988413812220811787953052064385885522689454057988377493962621136301699805136702898206776345787735434306829800917528490525533372677641708989203579194827752678015902434306832492490626440791497670775625639120277466651453295747724046310950334521796033572123233558589017760223198307475140404867674551742459615288830499816958254012472570624386290590729681575203390277798477930003678385364129624770679251693623840931872471481800627201613520437101021100657716496553898103732005955337514636220475079479862068869081105442081639203036433346906011557077668750118549839871829052445463000574757874826195902515515304077508619006747263889902185735487549725392584417417112141386341044300799507972032672060868056995072604196303632138825110058980737122370286653204164837614867977898098872415879930015651703612499038519098343735242614607420648461316559771386085128549426876419120502562671185079160894039342808297063227293919742336077009330211525953486359626472211399806639131116096140757257160179720412359884564363257464780372456554835649601643229284160899943697884000755810039984443201866700439802739413343920389727333273142958758002472442290365993457259035812089274371386450283820935589890222456107490104690735814058842265551264884031292120108202401343169993873223164163128291147141042545459277358482468885409043679606528134481310770793821045253035757547357858858425179340002485159705320341451750559754437302541080293436059280448536953063205351133349693875707321727263137434430881635334062053046530406707112621764635147401616420059520740502274497013599469750564500730772005296678628742577337242548106444912798285129683881803968051441325675574651771641048870045870586012011131659348041145130632208836209319561703914726828298592090856473637127465476767405129745229646782390641440269415124644551451564593722283802022343505413072613073050489432988068682979443922695980656229987311963568815100713143140475089402297534440231415531718850105783256623985156400580150971468131686160619170788465367576567756217256889890560491433963059539667097437832408409666559989563176620861412684490697433136817969039986153562497757162843581938264338136203540423510146774286069876908647585193463293790844483429112048579856572583126292872534955381482808067529939620322171622529522199520447408774839609823708736820172983866508862445516955345740584624415679968737114472696370973843342192353133750693846660204669639124067955144546855914407339305553889838919206688093234609271473254328594269698987770068310398971036402144337748555960545771481430984593415309471489134536576898173794622958061559610535593915741730593945988153390998870918369818888852120555258259860852175720406109196745949911443712990431495326724347737566150316961692742890830675394846904403050464141983777526145290120018826258862530161505833049159011540013329490772078728358461150440291871487127637809446166532703466155809381479043893040981105731577093385811933464205334625782133428589997526060650795184473358096117265157066956859554234953516576785225260608278169518208240878691645635699370781892530191598859570978899561543044944828203642278807014910935409524193906433977801125702797014826597989833022730984746049578059850677813061523484416924178611076142466635515651810798070450343261836234847593549652314085508388434609356920223207574036835955036583498768780883033164031241716906400280576126711276674254478117049196833703916888365602389103991313576089502778377064031919926863478806893224152945762761222380517664356410895038109255042283770336631830571938160334353919461213979721859081903735447615457817364738420107723876035107073691512642079329215833447015127829811129216388161483575620921460177772852282795525725458782523822870628186591956141920318162084221200912525952066977167065477516330373343547430960693313203343857008146903337234489805838817677940339375833251289717535155071590646490745926999617624792499480841606593022630027981825891780422735706425061339317067512266296085719012208681297344265926099655744443800303709086175909925211730902607640453628300116163933569683426253136539877358578955963035846239176943734917148619576533619713949685026604061259944369536109677974968229453031747347365283508894869558867204928531614378621451177390860731758707380156145583605508666492409713089960791027703999237104231219657382224665485577969754641659901343727208609869826860589140508693798995499735649790944996639913174606282323575714319047326866174436918596511214894981057116621956494668449129504432057545489655599063124022259593298504541541597722333984389079692902262564731854432359976316194088855977435330389140564552292206697743965914630485506857042390832908013429952408207958100397575904185601642114896728852727681668050803834980075211024364632970570749272733108413674696153811910966170201620618577950896813338945079507751895049871828035046154987850291400649630679099975791286028228432441084835991171194993296950446325899223148488472144117452051119400253441703345909891514168642964327573770216815258136256147051710389304194854474987408763486273026623594696813103329929456604344098885747211373923120007513828117265873403286577462496315741132734975111250247185006262362418364233521953226542022375258734403278694594818113718316299101120163789344295556601100126235265021556643096203239262630915053400224997330028242881327293866644236255971893974333687578515148364021701587715639119305492206149211959501868320718018992317444867959050378388727250924456559476398436862106290521706427964810456937206830746433693280363438489796330624604549604998608058863275977568319894552101627279389550999516167767273766193814866406722252527328007543621020831472649845432704098103626054430753772887397691560343688848791728374769296373739145159239103167264132778867462654741826204237248629099353507792603963659806704296219447987619586995683458715914157340079346226265893448116757555560071326337561793279911422191049681518711146419715144074332541116876252469227669211019278943027678868158741623256558739155026404781577909431603741499538460231765597284704044817050673714630937260706449882081571720394960788626117782944417552695042150204351845597712713969837577626071734746754981361453097067770837728215300932721059813279638871184905280698900500801785908969276278847142233811737153658875759558631846405912775404234742535640232388174638846834628928627885969712650057526556770578257709729041974660494101832667843212593653129763819485199421092706800733873171542767682946637186184996805231431133086442882257474823796433960645600167862636291394871301171990277184100281582440673539082823700608811470126707470846852929093057129056170327958065149416159661804972811536996271400292547590337604086078773270030052535070430729223077275200276258885914439474792768475640075297398151399511155898051142359744568008528194660402921331542597956978180364221847059156504719784513957948580394908405257416475035793011155393774332985134056475432948288165832245471113243293036542945764496280399236478388908950549648070069960116040599215860517760073245535245734294360031966456123378776939160886461545465573478368780737348609595391552090116305090273482509900675750947399091195752819843580840549092591201614182801332821859324852370913670310971694998374185766317623167610307757834204547518665648353040856867580371474378032658442481092203612477353993228059648348037508000804160494387914710996587383022074212409745662177448947390525931482991984038508690069937129503597978734774850843230766658196924861573692692240041169412735093625427284516570471959467814953468849975496698389187960015612957048463454923713855470238656994490120676799141616103580453885654101470405983402554347142295363134326122496403180968104094761452871695631883431662089214824252417771813791698038769980773051669585890933112411477728048574304978449703712303999976252476023861542191865418084996408060159308743401361646721336968104103335741455053615381582143339177546166278681787210693578479069003927980638961667110480675456621057657902532950275404745748417622723185268468556448345347227377850601177220253249999578444889100396151392086143198759130450852050459814710171193477260350087457126980735655303853128406791625392070850604046536521880708839957508225422944511433623390597825117032982653546321235879625872002763461604865929842193425547068541492527617968404011683996287941938324538461783262939385082847655316774767573896229567827003720817737659776704507311345371680272239642571316816373078859444385761875365203251434909097052007517955390442647513373675734044437295264986014930074200783778422793131387283416090305453090487130087208229644823758986109399946053307731803841825069249367337749290988636943308886541109174893653698433643193663656561295878852340352529209194876851613167990529420751684878278711192928916080911698547087952882678575344915996440303943588970308654543428206510552912007672710658177201468847072734346950505343270005795124753537973417090100915404763846797814496074922117635011611284311424722381611288712726298835007604364871214770889241373928052212274345900741120253784771092184495591256189007874858228734210491079324748443152506195473917632900997964743087732097974740790353748522871748051494461325654482442257703554800515452385992268264358529619183079507924257053620945356200675598462850380701135383136573067962123604593634572986560136278239863841052812173779008423713937650036708152781708952975480378078064558949589612902190987866348322598857796493338342934173949168590014526433995014645674551128289317679453905654859361500073433520536615940901488937711090441984828620663616852935691910840558718272189698186960851201030163781731400099867865790999181683333042259710980310654435313737889110401700237584647674230237784930779587825448221882098477216067827054678530456294328729541276600869652288042610820742113068043406136050975650473034526170096111318308476942522345716142624966442057621850737620726594552168934675272908371400595232069470849536624013835237788925060661627688795440044140816488191819197915635533892729864596309240774447587305712249004813999113119172088322249423604480489778865395387877110579714050720227262126202150746039867860163425465207405883124647148580998476305071202130002663992492549480925233462414359991171013032336711396340325391280963934587445965073325416029859743593306525871477606955194211388013649488881945119681196823371967742516766554336679997201792033235519022604121068045945800035312191716091342744221348974724090014544431399759410767370050373435819137412356120608601726871116835868258192614552844781780356234874511419241579341009363472093088595137729474219889901423937106656356028928188782058315327844092670886798777996195611466096768957216517377785811006980556358760069368457388537953075272073175286584014284238579304860856697518180207434443529787097717248795370453205029439368821891059620892589565944398858049154114411565004583351846701895505571440800503183956975626680139548229387278824846787859852234931963551909795614530402221314690260032649056155243053607763353534651788406852657896963636276568290952189216025502699163862539080123177763865544636392136892422432449557210627074068162571418643675409396505821903165072645082295314673506037334940163954630164524828968805153902855721097854002745640474901832174840600132345744084623121862941284763242019217412318020289629936766325745813978486391080556972283326282140291303301775228317953751673676839273564421281934423633990596268402238076001744815993169554342941383067724645356895468471656965779786289560586235265247200589423653907253353375968519806832650741902236174027692638194265395127085661575680825943692781250959013139057148836871124532907555882213077387381226924408199912945102906023481707124436455908080147739363280453647837943697531920711378416241623292437692946383176517175319315997722168617995374900020147254443376368734572554896845263310060429008321334287130736655946110794678727190040095138035753073831194068309288330183693332800833913865927969140083305233388718972518180276945894872896012850010615755382737904481229837840718969821067222125375885002908142135760526741830407010781094433952321454698742735286009061566826023619057719051915827730973475966995317160579166358437375981118583698486412096845052420015564328266293550467897554769040211672216405355496323593512343046813360148949222171326215497354926633303830916806193616807483145616635474502577830599285733665608340357725608280759192938792805098559763799128256651442135623231666411023942888192528076901599633661843217369086113486418039910226767452214193461748831957538252109681804857031132882344396157410669035901905992982865553951885022791522097863841147656341884573922838163868547512296871615853627862690458300385669581806272661302561711363213743866513922005022445574128703850463277106311292178952435271904093102890484047295448221612969039457920225734860879435449966078399440366949816060557601607527461306241261040918152763033100323440203131183237372747671380086943906644657658556070559270311682084238271963615199294955548481219133705964330627889406681452941165035961701487463201872846488325100314445454666674919566826937325029910382868785311615431600292482846007005942388816579702705441849340475406708255418842787146308560582541624715602430763717297103760085146151185779648140868497728177559152213030402028928073150849298536389041615486235844524683874106914279301455348575013118685139889675679315376265579511854941131324255006365536757741329453850173518438433984159895107477190592887181285971847165573884654442015046781321853036870742638912849937958254013626042327911426116193053728813523682030187083017839563715166625866719362835359766473564938813499319004865264852267662089362902035233039184312788215160876832611620081704326712195826650340392607170503054202027721516059475724587797046973351887296038152980217069705693332589903225371674330793550668844369361537503680120661602080056671900631107114881231779570560515006883804098405160562289347314456885972410822584908559183923350011234322712358367282824725447584379580351756120816691416041083102991195312841396907171585208499143246839652240719558576929206828410531028296900521366163022433508466284175400929012369096637554201421374776184981302383413734524287069837542433216217777002004120141273710343938602121796453585969046593685645759233214803245174824810193818370200707276930739110609321682823199392805120037208815334182510629338411684385176666864240487258719001186044881492775743226635968757198032394834590351359480806060130000088979605509233970123409797503581328118508768130095676062238871586418751680228164516755141412479572710332441615066567372228124256040712276344085365333195644540430698673946638393451132157987456347916006574292604308552878925341198338794609448914795095303730391325871162973553221155461794705032207408801480466034413676156453070932963576285160857737132489679115038915430441133769483183396680360642672863937548068372952825880488036859881058266460323170758464618711526348827778787117982094282086845002160592359825598045470736887766197215577924726796747719600931204692972949293180012523249264995087418133207328607358755753746077585568817510480741945863235204394015259921584723612373538935360480760741740291120103650344486100021169603875071573628800838556893829367909437916339550736201519632668253597211534563964669526249803378027855013860419150370997985249512086435071389295991647372617923655637016446917652463826081852157651164633979511706254122373761692076064948489333320456850873228261888856995403074415989072181002846408656415085925906429461062281359698723975312094552753172185039133129755510446751895268251850371265502949917771215773364171479941685890974584479022841878187703617259863258369225282281168788978592455705605766958761449371051787753120468006270129404668917087210539299809458654581184971075994380282336793147893003150320030485467260185202065731160628769052052751939681523057705066587810910675003200176774247911643037868352011296319907104363978584196535597317366697391373156026079701895538813481368035521096810811289844636621007914160795539863331504786803486679160917626469070853686026202896610888749978562709434958857042533530224126586092007345013290862188651334130742376462646812295565913916470144742856890370196600514725739396832075462260546128909677230888616940601239344281681869522357555884692457339879813606909103456976772706728429713400852632806680946715260352320206642455379288361582706601710995846956818631947463020174804481103789086404261294659267668159108124882699882031803811478171622243938769150932918467160395787531419068107503432714540112951795168800870898318452658543097650858843001025563955951899927925017109471955006672603385493600141599074979761648492176741812271674989105536161301032011205149357622624905658641545825384360361016902761806969232775095501741403207338832446673635143988868081376315324921250293861824189798099490693474946439167554836209947345537328882656516414185377969604440013123474483274927818564523456473259263038586889935316352813600523379398104590807742256935048680422445666808960989663520396763514246308855550795737661214319015851240304362548142917954898780175653129572582299023142767150425300496155295063419917809425183406118601518883770395841783288880253540643399131610906050253340216259735387543135400289649808785231143637536361901574607743121517215983336895534124115616236787651684741831682629243725948402199386698427352050836105667069184027648855257746253680508046674887470646129115229737662163926575503376411711617589054591376668235148899818777067298157112710283908098201295545918044739991141750579965093978621435991991030135721306852430872133310521939336665556083487350651133945830840306171396127521443480018160372743239111623835440362601241366669511030648890885558961591714705910238984861054953428496588851757707560757015212476444648531548253797807828461089793799977815597624464939116271115504927625032901055357425617081549716497474618028461045766311794269165005148439492158496971436626039409500095896883421547798691844690068057864862741312256324861159149419229066442020120101715386354189521067221226030948264953189113169507415292003409464727008240334742198132349933052469745179460418768672807294165070605837451919508247943102040975165790607588358640853209455761644653959547733745454663222162094268804356863437408795312738454436446950254277609486942803095853844221598714561414024287209171362612530366113891567682051969338812545182768170359788477754484400841435349805406227546475593628448874983763454472216671964765200241766806971776636591924328853560111721643561650543280674190068538770113315793222835423781034294054727438756567245540010773114697172758890758144268613551740108263225374607154979174815894209951372491079844252473393747169152770346266259215864472966310655272174624482385053880040550198715886436781850622610804878125999013910448719003667475675386775347549664370522165450893818139372288107772223357621319350404807201806177644826852596221136350501455478579576939155397035652398305193609976195873992721966347281195003279718362550342391360337938676618997335623582927086904824305761892055527279262930162341361201511555224491542476949067757270328450475588612515458935993357934790950886780871820390453902905164832654308149763800823355946127006655518730491518022585810168949782844352252965730590041202384236536330785384863822843756012330035127667360535534745064679710532127099230991068733932482124537899625523853156639813289607250661494987127090914880557632915404469763000418408034283241020902469488822500536877296718662274316402289423864136504651299164409499584167190694402254281637896136616839849073181654621458875619974530962442302870132170145605797702995320593109140066442036834303005219251458380865731198929890783079223026953857448245821316489860241209602208288020561961303868881061904246267865487650376053068362594900925139338490343942964754037533012582321507448182217729804289981753410265421271418109600300193343906066292338101646983976326100244099829839878678973685742590454921937385473557219962103567148482110357625225860684717262538193214338582050509412859324562654973979136922528689106923646965665323830955041489382568353971570993521473904448397381986104787459595381347624783603697144125036176716848368841301672015352243710098265582204609777567778528168528012673086746688653131575897651117834797696988716344971566751998844384331336989580989912312661488828759486382977959817584345617980082798033778490125393481089137417484649090070873517121963818901799699559109714458676122244475858432803896371910574944252202030326786386697414058203970858493987609463133571027318515468750973713242256128088013990727960012143339468744138361310733364502208539432050911780886571469004463019181735983360094708373946996085473170998453198681817708343742390706429308604180939304989477108926246268159551400112644628345690612285858516356515577190233210575095557486312304106859171353716896306708826383107761678122821835795813025384019848020045666418602018436816325184606720976770669103421312796269603208178928161096041811958308406651408184673837851207729344257790823481916116422521894010930669700107509031754042332896084725494623122545004110664020426269420979154193947635748051864699724068188438629323396673215114887203444445616636032469591070567097967487724612406486588121224781077796663096555576331544783023203103948513656433719239948752269731362902085096904197225256499250466683264335328487408410722986290531836136363571867378765467062574853987324658803094618232696284864972491306791610262456179420991875293359124665551382015608215532982397733628259899987102333252258065548578432053523567190564543269168303775659999688683741906461412852822505546353598534038197796947145727614936164912864565696392998715694328823752650879400820208113115356445092683938640339948171915852582316515091189667817286624334964965880043793193720490440298479623273916436828394050655283946599419127560491013241752035604242024751435416892257792778488012082838193408583867152226407920515064871351367235798632044343920616424776133234897836226347648848638496487728705974141778246480159021656667819805050725104605598513956868593227737877400940737614234411850088863028889770673341959492868094064977042776314425847519627277539826798880901997568700105229700322359681137304405089593881541127625670666611030042178022971693590517790142249722809140432063574857603206564660033983809837530799171321405503966973682901615543671963985169975261226080499502399947071933393602586771244117404651177196255751798005189506334300062866256006157273449615313998946206585309790260357924910899324690427431337527357514537322478209422926905987008974761055656206656439067031905545937412977712975216983124166412894977563263334755957354003521677002267644700874395980301374757308112191430677199496593840382324274359938802860168974285861939342310817496122581988140970873736521784194826847762669342569376204229199961197425233657569413548128677446175818136742300633641045815736558414012424106884154041078475979882452070931058144688145543969040693206888505112821586874936538750143135670914314694411047300725027148694425553881489101364586495619170892891048452127984337242019247869931369234513702312198976001195068670826292880197872962337315235816482241557023431893130285848480790154192079770316557058156365193048694295951449754198717969398040151551653159896106799979500112663502878927824249835869781069490406232969695596218874747326740064738457684335879120309402147580044632336738689123942548132367841212629539674420553957824086668058957929762807573490943481531518303996560558570900764416349373197624400275799733888502432915093148001467673363758178463140636400795507575745654577296670149163227290546370523280966649744356285847383034568638061181486502393159761177679714791530659464063106035207194525760083321424694479592945947141297871581720755501142316021307854502975058745701878998097841787226581720501643804304014254167369818681181014873158822923695484026823569701145899799975081183184286140969222919506195069803577135834563900029130810538304083362063534679474915079341365561909781402901351509636708486964826917803074432273903256730955361868241221926561830733711619590204707433012557042218948176794571944718735469290157522070364945206177845193593316800052547426776475356511360767416027025307199181683226667531192906888757602103432586164544476640442308200942686397768625979244655779222076841631120896756535075527068193003514395020729906657641133283584069440099273293146007422929214513332100003027201347669144536512718847758707272383325939951474927423713465855476174566241191480235328159808719474961030718174859862434867956540898674518062681049208146081105518712500556038331753057233894442808713868387801126761799370200433855337634094264024058229610596154950145743550729343646614684796744961146265933332016602915097764891760854257425256156508519798300937413727319148825341625363939374329823555423365854339075659283205588826703974439148969192522810647887415252614012755007686586531609664982406366632010663284646689276151055856858672157031328786634067032068687450110078799316382752408888930662293324826634350205536716172440774945226379545735220517063877906727263859513275509424387833121726794681907560726171645116211529181045148318846033448985825743022718063439965085259847015238062679537391986860693663175039121335330234301132730181863388609454319334374222917712439713340362388195884666496028910833220272090133652109511548397077545904044167972337124426616660100640058741581497659020328895927593247609954965093113700716093054903788617374356107107763845107621968982571228183805287017575412671443212001173118299781303324407579318191485032325681390327196899859383458794813827485494745332612252064820854307531973319954761369719801690282221450920816571345087022786133644436759797854938966415022392551189582735058896745002756224583857816930179423965767984085274584500913260563705938304881467769945070184063093358673221849568398633588580142365926047601977733286059546436277495504694252034584224673596814725784603641642908134607609306421752105083641077309129593886237195811382882854535551777402472142916302105631190697210329586543476173791090247041015031989378815104163335916409393320992823229070687609735419386285299859874931361122455782951234571284040650905544245384132597996906286748761542853297242428387966525934736992775683039232246691745622337147668265976324640077585616690989916268718234093658641456218455424264707735853279532905705671487795663327902118129159158668234824286070444577062969335258699346829468044590688338156322972782240053130548121784895181612942542726278015129045381732006442761559657996410483898213497827719113732719586381084248228740150031692883151587292980945324550805449343999520602448922105800730177630620191279246529507619624689535981289068907542216558684997461316153428760277940168545595292557313919623750131186019155943179550590030804937407438839292758532172082774401527014935644558717712646294573517630713421311480090963975923918098297349178628628663294989647601454217382683838828249385852702895817401108100822707922641821162806993963200982893298529858565030389804688702542429019724882148195001415199845909069157993714335051304738928745138667475646701581178083272756140682564969254956469353925919736561857161183958043904230533847519478300824549234550735939014830727883140247219746444938295509577515044651300337886019269144693601420879979159826649796383532237319478312614942291820964160778557142684085713152911716487564119307976190040314098154011089348635917394816170206009300368495277443905797702201861490774545767067533997027895009382697613654137075226700295816883816065393103861801800479905414131609840669013905222697251488156583894213495313028604771155275997620678037641024328126752480223169980514888710529830424419711393574366825544299780631091079208667956919132738593415585282012692633109279344085380732771275556381856125060849678011945776109881005334681039987031770231034997861576515534419888754212497543711132091782408913969986883248925867676255985803170041154182040614731847870278407406268244534793770509367868985967791828447477692698323144813938301304060656101838975838924204214490187810118852729269608032569724652202255460154454313237424008716121059684964396622260851800675650898531600787342097540046758841898782672891213606164866185333926325194995402208480985967390555549898652438126242845467011153420758943878454295365892456075915758551472312329763140713402853542917955169379628075522126506514675265704296519659944702340020930361524062915959793948762665252852663090161360990436709835406656841368890169184649619350665470916843767361950309968208239944075636088129512798107696524813498079833827713910560489368480263839439537099645576671336251859579159647220119547637729333026290405314529015469170936393704469775000962609507210643347620913552090214091057454962274047839189990913724739359796286220358680262683317081931129581075793029890125772392904732782712482686761756257479910446277262705601768890447735790280934465217619456192215689393206326892536346343426979209583423012594146054188076778920439699524440636115690876731536387126266716461291315488967562994827543815697473101446308951447506126715694326329602819517729082194179479519059655922218222309027903409665652527150654428996959510860896959756175687199198676499541724997356020133043692141175032477352820316183194608060732283205478110000348410200159040439012408177288464506126032239696429212578159042801182253831756741775343823033027666773046657925886787417266914084108454759044103884578257336719254811086339035346835748913232434419826049097331606862908211933797391877990433955508684367892903255556545676026090610222022881224261059175581529652401454030699173812828539916355613209147301054873129154345724952020831010018904588664955043917982708431336483473346239514599204484124058515379050529130511985055107940678831292784142952703217584755347311193057517838211583676480409234657585963764468932053179507275622659607949387426223436959893821854524553055700669553969563972486115798666439390028088342329178680742280909822033261920203141475454345256128001289965561632427661760533346463193377604612811322386825207195338385709143094915206190572322582429525789100189647158171740860977994701684222316883245506079442045377260961634465391030086124409361408415935663799253942367020355471198879848439285522364795383042654654504337558778119827940990055768947141647144485770766127409944343596017472116952851339075676257762327665134835039555559377034662711225861110340292913177883648843609167710845120774238756990797191229894913944794157020110668023284735860703829074593401338942616726243714922910418932965430195755728907879089200389972659259153393050129514439347431804136884456307099628039145954739865091723409658720729478064796598926294208134945078586298418190216470623631101636492407959708885638988590824347972801760019478292771090577489160378779737854980104871904024766489630891046682330586533354435743427204481777334398105963894374091141810399461605971650983844381979584934772715117241363463880919813144132190843598613750409329222931842227283394762890147949751081475701961373568269354701046968200160938016100688006670138450645575016982045657349714247256768552429788472762595409666291023007810929676825563594494296825625305840426736585712928237925945697865510976731836174110204104002917199172025355310480722451898094890234216696937614436060404041105553496822035746303673303457766685350650666190447697429573865241187558843954012737299427714651291519398236605875735692665744825707119845733878881341882187232018395521948787821195275525514926821444696994891705190992470563113126927437664771454818756386314830006481667663118035790314061949148175210017658459784292890043556450453476892097381618372532747234461641199193437997166770687590006015025651122140898932698790072220696139872242164130379100200366041627845588113192987464513194653358457761052759578911585151852586984904626391561346892686392851292870292761313810579822544754842446876052790907334767401127936709112526141864516799426912855219812315423643940792636607273747587441617655092177710735268735990826233378079787060309875296673340937562732089525835546741232281730276120027441459275328074619933401017549592417058901443776078025902286662579722462099244285046218227242458138501251598367246555712364837832727403981776542980168761363270801207269836853913529863997433931670791888047158517553980465281333222459860832968062744068608413384926880761904328626138004241863034119633840281545252335454279918402530214427525703897364355555566511390955415836069092148739304067808865613992125029850839749337967022034143146238503572038919850424608500059216486072024930876226816066105140814950118534264212670327861245310073417359374695016429364096268388781049552569171306358871917916531110246452595916682435536700843044870725282394004314503598080290033237311430692484001183229465805153648926847821572943309456254023178418393364866206953857029933150774503404964532461552138264407046835607214295449929516094440152112188720898207300228842977330919986457536702864342935182879821275114709877375464139019445256334110501271406097256625137018100967550799105507586647086688118553529821667835345882962955013755409812287884495705726169734026592889629969056596992184096683138788752024433595844333181398871316889479021473749981905952239337329317167283187473383895836020854214752912652833085895164744705686336078259493669517002453717349492015936646438184557017894959778201269536572441779869670975824346132417994295642233974975294046596000830397806174991112108199441857626542151452459053634016406826912461283854926333212105564759744170628962723112239264124456138691429019849186756746871390262884948202956472119424445838894289217994429495871288570310949300843731579979168378755274313101290970697161820089488954155795481514751630671571649103076406457823465059880624537940160370368000948618164151051852252565590090054889301638653393493436502787987639262652615198157350977253210132406900998127955106078185870101299623268095795661197391285283635532766701902671956771340534244079164042490968722155928875002522914722954042733824670775286878346362960327340763506428281013408980460314022155676103595877030107431288084122122194839038288512672949215182875951785510483216852557027496564461001546863933157208043869688121380100600537097614697497896544019032169280961769454440840045703095278688336904280160728459963311775270732238297155334646707493681191997540322315179592547212468322992435887799051555967649928335085451457983176896138491227171523511381322694892668197012979535695544389976776839738917278081775867392773922864280189963167352268677052992176698768320894741189530344104777257846740418446276341703150738068274956805130307318119353559416413628365603740413777152190624276374855877672907557510899230074896163127206932463942891923435026407712484423629774702320794945831822089397321296306349406559684063740568497365467655474134906343081619478415120471620252905162308763047759859021990416061101756555868798471884451452591182928449545759944738953259627563820032326917095734497969008015539668653867226794549021244724372605877691173588540488260933663111741235275994652001957213759628199300555187454888795705724152367814396306747428317907207107556407505498786999942558617313071710671085439503327765241649291641448309386655601350492963521696287314096396105829983359889636150886014532700905742658684423098826603037479255605077671132474612998703402353682554303659368766580426385179028033074299270462643296739164572120141567574315049411221059751012089682200676188890650865411869185594522271947268693540767563690534158519758274493443652996565363649547142170454341575945564939550844002122980387621680992973438847935803834297221157397064205566614068003959276261852251852680717051820971318067281898276985102255529885445746716012715728458120989520138361118635040476368630620964296259296511586572508977031307520091639562515278671144241215005202774162576601207546021547373121454585474812341235870466375029459770364527531239653041560729391583953826656586010873659172530393235787025697111344984211737687043301877347559567693209765151418184855529261517946664428858794485778675262257288827173255711252153192772724348338510305097342583646896161300552443569439325926901137602044759209061070543952349643258066992509021184993650595405750807026439049543768580501305735301201369692337657431682250280009198875553777817347863238740830774600434723369063124060601514826560000958397369470365359754445876294241825186019130816692008510182771238465497756168868289378598986422178895008191030630639671803934107321958317414819209124729863432727422244975031220834664634710610840538835169616062268234129166093847878665016622611938628263433220541715909987951083260243435331251376503295803295309543708975248930949619642299008452138053825318061943199268838045655217148559002660833914153334444787042616890258587353297273198944709315733960382637393108296781129899159603108545813283974756761323444955578095472737593223269820588343104267154870370952868784131030854339184424240165253649603094544402472179937873655937064910448061616472002188669117162828398902009330421710207342585066412911628119102067291030562071655721264004925871879191755860399716694255949967114322656259535219786683120155512710764145932592136436689964123832381357670365504569537291904651867377274276650074751196460663466361670492078240547319769763390040604696053249437339039960695813857377307061211152393519233044974852646560778182933492126051876215809156029445394095302312414419266105724635642826036559033839558175466325893520818216162327750550710421900024066545003668532184315876637621597900178726058507484618379144878146491999359473592846454265330664020206245254744416825083193785196710089756317594576603960214083174201989387170468142599003612303706508094280446019582869278660999341184261221707231852311724565130920134725147308578544807406774964050873247791037552118634049399955052793860194973426658950880766376258066769573801918873442126521612942064056221558041731134436848271070764916976852233358433465264907211446620947183735835421875308426042393154738700848925403105185768229230466805722825576423240741673392562868993363922749038441281132953617179701417174427820965747174297622634041887274249251948639934125854609562977660204569794626244372166795498746868275046571061657714728664909892052910562979785606952327515124484216443938192497639150085910026265234029999908451813060634414777436390679722172849520433563338022483036272282675230093117144597489935027694135487117310143360580055077069948958576682190219372722475579628261949173389532800778737637455756100891061337257808386200697778327911214636429348757195468986117341471523071167195052436173873151440857920737325266884159485761445869303499153433261287945740726242343330467742900309713949047200791845777058235530800819740937077699730873436597554341693885358414973856985799317746645289735519241596055749951717784323308022618446311024483654897992203165017560964199950753845157674522258630368780000306768408112032622405628805229754163478888872983507986457586366400423647451850338328947651308036996626042817539885900705480235654239446025751993780897884441999987610371351380661494572571055368686179824609932732534191836485774712650523919666163855919250730316859118896255563415523564009518531710673577234506842112060459650895866000607171428208376610601267713596331270715944927207123739822850489484095742255118420602987753336699492123702602411734985570599877767344337202553688394079222079518088430917980832270318487700243308645690717223938878245155795145107020764968251664516078086879661989142690407435631397266892942563552391772344042504759643580326111924852103906153224023748393256289423764913483891702309436907164767132040445802608052259563324984445835770269909244436573001537306722915054104844139740685535916107353018776490485231470641518891191131542304994340610452327595142619764525032076660093089940204854137863672725800797789145435279615596204055491877606278743619688551674445065021694301956533801271795211154414545277443712963315504905299611048172281879803475161779771036313174418967240720207789953735232191205440332446393272062552485771155300159350621064255750671154571842446788446746991008588359788712203610297349075338164350254858348457863975943702682098085785605137501816451150615054817346933008182044827380902797198636714516622573126302406288305747206981700853224462043634703445381275089173407624759825169569688669395078652788353848220490504663327890588924205795352170239560330690319097017275886084787019593481961993038888051537434231152897993315480996457741086201609560119994677884560502142536283433496884402044190516073787114579634102147217539429901958392149551226497350659783260110891779411614613606720617492221453979507302509557591961183790911911137019752597722400743491898716433902214232704229325033329071897829178893854711544494571407076113171663403969232898952900372130597051189330623317831569078063301657177184830026914898032962619401885745500648276010043147372946915326561552241741285965799812997194452207234802992960255920941881659772027508416718124337822622496605227525577747050448314973457842852758466648590929304647906960969287991959659127211119868835096258929079949018574831382171432239703999307416211209944355003402110841407418512093485248329755198173705703416903862970904744977990884678780073500825235941580703934249917674915853263354132648200067963024419550664666556371818852910609699867268723948054552750520484632061671112599602220383557754112455938899153896591327314185222557033680595247698095617434856621097982173278839955601283989176038380094981396498861834112363556210638608393485724539091478273290879422707020822884158536652336470070229684395851266424384421083257618959583273032187751081276443853668631309496628544609418627586689951187300967704611567113225496170282455291284862884987805339336894215819901150732338995281780822850275477760129303792764536091648726297449901330423947866144756422152336529558002307518760444030392205297086362010581890343140773618418697856189038468637714924339083255925787480789757279139883518832249788161450822395876355771955187757354735673822133036405539384804635418430130368567162600028911015215884717167196162389734640306475288911638201891347206562272010053596135630563257082804912557390175815014180133689202495507633235815792975228234971690686561627089791936065949296394243210363820800004382528920165022531580287630214833721676412132741850057995494201803668905397207443681621150634885915709774918829502662287048895422098472835911127562365417583979572278473549134727095549443670706663642013342066476561282556666322867580080235273226211845368996380002609597412398921988421226880622004264003007892413642319205711647913690935761551677448162585213300778580043655397121571715523572577599203054183350905051172343044840831105894181540735804955957128120080516401088875158869865026980318080745245636380501074884671212805752126451031051411769384518683223957913219959169794497295382266798073887649710833701514067430746915681344536164410858292145495499092307076024333539416091005386914562739160610149738088219520592135040479969482933595337321465833831661497984879961459561316001299041619266167555896042827035838175118018740730163824506608169212871750573590452257385709880912793378457077997290832606333584301405437902880748500305146389763323793666429244995775911111280140826689110434913515061842404298375379416365293290441605077006745206798669948347053098856301334522728322334229914056264171146707055888561312304169986772813739200257390191515003975916386595860613322623638957263746281260179716231275213521784144806260704714214881980200370584880214684060655445113103777515564224777714510330660080194588858315008153544528448248165009493175390188017881200027707108969521201799544395362004805330211024849776025585556376852991551395139987810219305354527853543201596294550145780962067645856651661240816466877895313250690108182696266235719504879560855667747812728434749499556318159705222332786176751753441706449654689741499640737564132710557077272334608175958531458296413303506962330695892296630434645780551604221510248202087599468472891777906732831890882546577041107403347315105037170080754353110812800230961501137825071485348632904278519867304021196571227239995714264408892397072347005131608392219677223458166063605100914498506062728791450548474165126568766041831247742120516071079794921723346601405667114564283315365248715251262906794005067012320443671733765220681019766343124577877340634955289105029684096981760381976485236745462307255355128100417146646327496202236778199695425721036856468577887679611294865263126741940717186027708426536542222294757283819992302055229807100368820264495379607564662124085719976113357355318208100106300216337629709601564210901397122785147662001901472241394137150943693234039393746453909384431903620223592112275527253381798822372604672068731868973711976210644878985865134384092873450128315039083112611288543417466980493276883287205684703543145305333442438943559326564297580925795882805625200399417751838447287489047700576502802999831102265745278410088175908590278671962434229404115970700059459958335188269312341695823497294166383522296276397660325576911532463223382393513046823731431009560270159118317473855018808320941029294127288191710337024841788659628434979534308699367875663608141269137728245738256538836915398284073796940820301109254813027476671157761294644007048293362315057540505316792915381110791125672791241812496856221819109532488472598918742262096498467133957227578000110245075924602882438172814774571564920752904497566342468556908646369376460196034723061947528944206748658828692113413583454532953039989242094965963618655086989915188810848584174434610907857432612737812043754500996670137189718001837602644081601520340714206506696594944102166534671776386152210420304233887459645558055089641416106521186422395028038851676103060110352737935946212530625933446335732487854808474958282486497173084377725830998163378327461790994728156698372093628283200912130275473273474137926028831430978588148555138458929386906715687985732164142663667525102536356057019401897700427623477419327932601964590715993863584659611721898134809087120696264238276155532096834794152021685866625166943070699875126339474713381836285111715117388331671434835297531880167345217015248651215071812317095704983084666703307739977845249459061030938092670008333261000644708761121019384166858985450032716027805230641967150745498731843311208713351000859378371338384669478909799394013839744928796618090391672888096261037489984287917399498698768167460821930553705321694008489971117869509491147897767268621405158547256021460006630482592024808215505287746278140399848040600037090719221203951149782638193534476777488024905395938349987956447953135862285418025880990103032131086571001834301514137443111657951568523041302330003639925729017798925701294837349571094025134006178167711505179363222410014987951412672519116556230819525546201978722356407778209086006041786247470984662589474581313162728894391996571831084813013340952583739832209257905186180540813740265042560594444707780264092471935849569018849078238815032953680334913796343408789118196630292862187522359627832021634655668508485601825439200531119529258685151449643034546065899588674077202907952594765555788695610872785435281633619266925580406988649700928744632897138985213570266210002680412802371606840265119068575612241538922349058246813871403697126969878394528002921552841803538367191557821217803214272238525497946614007642539027186420291110887852408040521388047602045022075439323214979864746763738440548382346308851883986824053905200017228226661331181689758965752925144802159035178997262456895953762244516083519902961722410727026589671066825407331849037221434946151080357569698019088103183664817806670510091971505453489326327160469263618028529757199421205564128763569338612057223133877237927689097811815194570091564485448402308730858165189452761844317886340706255678675772039688896621872700870249535143836339580717972790127427770358101011135519247107438777851926801771854483768227408776265195179045622064595723473928659471158735125764743614765874934370399923198808389143102544021315185496090000935578243966884222784507488114818297757958682021093460242707015693696111843123659073543988657599293386484029441927451790866845199101290773385049739810677742722838542477913016528851729715851704927765602381832812124298603531405519414255507739155689118108175702993599977103033264538737617172206904256744339925970818979972240868636582915752783686048996556097159930338147688365492798888982243943545298627964431491348698230313772494375980177153612916477752976640606173868764762787702443876494037576410992866113593791254238716795183562200740310895688113245742386266693034129061479275520785507580094904500731833642190440050065924719367795864278325246531350038582953119130217056279964528625224085714107245130344177873053925828806832670972058798605838781681636769385518725511548209267218770362339788894060693107478056916201446683691462693764144936729213387531080128774802370347833869071742363625844020616030781154662181015902261499781005877150456499766766716767083230408883282548155510114895471439049728750462368841816085470879204695784627560480850179779327789726922605396996341703721315682990463511238500185922403973450974722607940815770643245799591197856117391946384671744211078932017558437685936084284372446488597206659717665524063712364860628665657041039198900189946137735347765927871703513637475352368319108242906923551918049318220191549204776289861867359890464075822369577477965211341735330118400892390815104230541255059611115117983225026991797761978053853205200467325346068196328191755349452420325895633321926403428325656813053765542388155704374992375305201534798339498394742558496932515851583063787972116705316520353819462934598068857208718171373862702055170559940042927568804719161809384678802848202146341131103209706377810464782202603368093033615561130802643989878206186702717414933089872012785442589473165540497650651860109281967986344892952864609908878680955440935791482967118248914046202475405211383407655373095421038291286637458568672428381585817185477507607717200757655038400050485393874572094313214343762628359656052043164091801170847531379696106510185773873855129510181469288975349222807792394766301503510982453787393284282447208208323163908795617701256017817942642957368378356319091692949642021434314514022173333740204311186521036829210989136948250976829810735953495967350124759879633011736151072138098437936634528130840370113767639861880157444171636385517399748552269226692742930582181482154538153079664350039978749497850120940682213447223866779991411657707835015265666475670709929554728038324869123438572018737492356981274407212921589914710038572826244033230892535285990645482413504027826725016265946648444130332290442457870546073218245045504854315904827929790125133808343315993067796998843750385364427006531046406570488127356853344152827001923210740517060286241292330941382631400453842752481986788662642399368466699289607303368918853708868098615288010050328079600444218725193638421316027498837522702230799372626384539136026363667983926982887943732253440659866575966647968375917003407831498269158253252886058613583527754659303912874835541020922628549546400213350166052605929662291725261053834988592233323650029777420269934740573457868817917267569127917320274836845923455240302863981952892022107574910028629573780507852262728579312758537163217362984524335886089673209816795213638860727172348797005982866959599545112786492156754911793870355753337142409402354181159450186853405611315659365942653903830266006806882427214585468649490857617260009773070812274730747472066657187981373067359153433733629219623506481850200851739358803777902139899710706607086074328935843587685254504975039179927271480718032292893259841131334674682537415198877292750454749052955019084137918256415236577386393987817220016573679626265297599587770339720770304364129905661916370405548531931333046341090707661760083632412980816377969850641777596920436735899806343244922135813923013086122557925034037108941775198692891602829226411389083381698188853911741417242913536451286300358863446266596064738835134839720690906545532521726334526635942674856442382274623889169804326311412188775913298776750114562014900036125410522355608299013787805397543844414299244229713297466947737216530936104240766262026233831511862690004038236655112907188499157308258675412479187186063548133582097223189375196690370920584383260506011385612269977994039373369824535441099620051070820050606776266006977687047144785236317034602081204675204451363173994843101163465293624558320931945138388721788341288218639208479188401112183887190460841485804630434483917899078967504203133304090033608778956276064462534278174426764905954007085369691851430323689615907864844148775967716262133633939233874536962997958757772279515055495393374950980511209551019985551754417976519190357564434026596075644266644515125838902893892546644429659364182668783707921325479215777985934291297626815571445424922656721190460116475902723627535591753002641795655911378566364128176506012763257995911157864650217282722924084472965446702795036470091217480240290243302307448104221132617860064121155984500786461505622291351286899828499639359641754653160899897537077717403652010978363928340605901409003339412159006372667376988851865522742084299542922188869318979630396179458321432145764911625873762171083964569945138011263402295527937069145918576812208633468721176110850456669512614258182549493337814813418885184587663411140253753015137283401753334389002270486575766352088549722193894544232091485449711573097351535652476826732136670308670403279705652549715276680995602630157615887203134528302507394739238534327395900966602036897677960439731845392041346234702681835966291927687809691786351687368001831191601406652384721808367670441423569029402267505433875753123932603204184648833367677486810171567780813100488288102605634813427550449279936591693687090024136776281405957813196204660189983918022576021155945735142003431850524631007953306786584528568987514808032935227161101805246448599407142548938797192068953760037150607000083590971069460331446077406732247657471912372308362358222792507415839465666046583678417315496485580722984885222277403193867021422949885088549725408478657455806572650770063087808354812743083455704546869635059003893606113282826026509307520056392744026352679398854827249837000659919095579137205763337229099920318369532574662567354177965132554276396586429938703304150469619544079816463469233847070967115927074346183568750308800552788096784668583081746656585174481793331696878379753229313414449315941187221090945641215293244412001916386874902573797203755941788564452222814017505983054904663570967121519191295621983867906949015999938352180503209742973974907669230756778268003350289564245155369579591338453407127145169327217305445476731649937186300350127426870761342391467110448297757637019690162845765510087630757116151083904452209197097000484619166718761570000017426258590256137437876617467095195322372517109221684480926179532573234719287264457086045923146633794649344496336522893098644905395956654197557783815224248285672528580045220163317907670981365048381856748493042052081016441393435340558543751164576667482006168664045017593309269627479292928808798542240918724252198741669874648568054272220441564007806719105843038972737838406398879427638522365413207385298908957682995237291874524318092965487754583215515011998968102140182501122020859006367894826443782472528091082974420339996174880428353652205737470934117561626605108623654345898295800545832384978124750172043481757716741206748491598369393390751477566102035253579478627538068620453821799129030329099674947084295034785864298854828545094493983431306837399864465033327269128418064675888634602154070293560742055473804752520131758738003050618998817117167200231359057904663442314481408653720457839046447282825595749933176972921115918823481265287068777125750946768917195986805127843527967846665556820356716877287582264068412010778668342051586632870063198042549067349373838163144842836779697879295779394708579036766778329526794280686768376873977917683771409184944406649529225078564783255996353326329439893565725356871548787781870293857307344097690446301059291295169735644155272354774674814427469521347069085700540705037716621771068332097536119062713812494143961543291853331421673379760435120153095121884349059301259718098627417757331654674666490964819577817066549293755338938403202400545523076884283899949840413757605451273841042708461101516898335878329968201434905870231019996780492379914609959031506710931636143399858181164173345421461368431400650000797775362841346071231277744424369127320386976084870160555500695025642455195667629588030496467447615753878554819876483376293239521926499909023496818593222690028506767882861113229092282422072931354374157351992758573866600550193027546372856933762863956583829118238281238922400139472047778731611898578078219031329473104091214488562138382201579300704882877895095230740787656149737403911675074223543863812898317420657608743844149020373944532218152959522340190489231073957480864846193030828382774451785353112651897889198371915745938816538432261590122059855525832040904337308041803239844651934834469482378532092634072297492501006177477879328764363332186148534129769348305227609943883530626556979458790646935892519497112702173932689351293373840515718024299859780653707673221950427679051967245056449984177789899908520308382966012026407923964464519825637255813075036815206214886635890118601021163734926497054091021844659927810448522869258995349160797410571416750058622044421916136510022310388772902886202394233261137553956530763854436503515771170664609360334951508355687067567811583553215900061846227930479993175676406579548287971712924306456732585323182754294174251159841548448906996733457138345181599533948956704900836087157596734722208928199213773309868033435946648570918759950237346620665865464632717224241357937382617144580562385815637065013830239206057345916249159142802110671201538679088197079552843824891067196481947737304253701455507403130514056432970300122757887927212309460736731032498258279101609961486635520064196228282863582002828451224051263524782691485406876127300781258985144577734650753780870874029089334420807581651420796279672447332561175661012409746026247105026542920038506276312430525125495380293088148327885172603800496432671336661703644583313548500559320157450508259139493590519502475555525160760736342873712219215614304432244893017930849942766060152105134382937804146678152311231038488730240034614644267585439411334225125361619443234898240894246319224637643393521631517464066869521900592305626690040448443720900009914883323378799236575762354364994981101107393513266138954757626940986146090668544537814578911931758026451101089561494252310669896101761227538951667065895680065789927400630977463321510635327513211550272825542507104514274694195093297353117204499925159567680040684950115753771907861043163313786067552239131930344031972313200058350154334902388815150188521357861344665676096566790383527583773724351598498750210186539552143122292392181071686053062494095717909596224782318781929614295091753581448470609504470570575383144053527852301375500783952444522095070069287206729229392770971461285848799610090645030239428632529469978382052224765925947095264203540918353334217174903135721637479570055295292108813833140286455211994557201049377767774095184844343423832412249184568001062931329715265494452825647778774896920661027425394270711907877681304790775232661112911888264077262711330612450050373310444228040102073371558571130271902582810005009058915382865876554802201197845144658739183214350824107215099162778656169247608861832230950974407515588232493354319836287626318425705546968022868910701332544660751119201889785911009865736788788095656813373238898951572275438587925813150538835348455255518213140099034493677144724340793838818093490821364309050657960998494330103045373590029502623389028808976474772865653057303910263295567323144276600554909558740593742851715165759946509050192597038034429336188101861827778970174189975925387735504799432086393758860769424619307117237083558592445172365694097059121061471753871843013081157953728176454968304563498832878169122681889027835614435518398888031878151416543505624850886107101992120344056300406181302734328009318136913241484101277721742254302154791521165683604657423715489315065523435888962370007470744254982640235089959366366972914527045831523230951228233292359762894972056581831874607973393093045688320006822515142356520522944246562028901569181348577034229224098446860495165099837007495969595785288483513993799366662146026672072780282412668962924855402904571057340501334050917877820880015803688689621509016646984653565490618878117705537354311862178082155779952260385764811451282436164587806379272223390671113011718317088646817075869747430607544222867335648691983186452543221699900449376540060260652627506028223974733098082437932930314849102142582262400730517886099143982485982449220468027777050890632362967642581858431628859467091841290588858804854675892000151101997443521495607945267476399985834484566743684891227094071926855004755158967029651848860591104811404979116848991025031134909925681759906062922861097695634775645199253394034502173666226323964727686526740623390974900993872572178196757493039431268852138298810009994642182908402035025950691723105965261210220810317065594639256701404726480187066107441823505383641295715126155093186098286896578026147338215553250835999242987034700469368659630067908743971133469300595922999531299395769896049701218306714969829143164691671945612160665036033589483374008882663419326432456624132638586856061400246608236184466532628790942864334170510196841434203507612235365539693834959182847956568728614316699626964245372708826269102705491387402664238669157695124838278812391438743837191092719032679083014766966797001022382503829035033217604111144302441959730450784124311128077611364789486567698943506325165479024810453695636446212944441929955218446713865553273094404698517042097533277578532283535827994024157845494926548233896487892394981463855684121524375311257554769562232511594987019965671502696554922900839472658648778182188784515881870300753838994832209851879989811569237808364182952745308751146817174691779985553293280159678342334994668072448663058145194986161210080557660146419968665827893864826179386788123422566842319802454338222727414823525301085522680543098037649944508627249146050380619076009656752318091727700972892876318108388068653266619789907624744755752694954774344485957980720106550383865643733998292100271578712778273074309007008996711643361024295521485581573766844916614515427811988361875363597328213142112119388016426303811030702455496219447368349806883313633472943215820909675321660902429295045645077853609785373796665138240263338756528972505844264009879641672311986227018343374405812592431371132362792496969955677270649235796801796366369772426141483863371741569775854580911388999573231218045047443675093106407471955067437082364317773767536471996672763829599744192040591110587085729620364401534951489215957871563577274423496297477398351161148149974745161366987803772488916303063951383619303204068455167503221816945826320572716194664998901174973065481149274359157042047621166666163122844971654230786759131161501667580446942370461113066000650374342997506065297652962109076775054158848014372856422073840383231057389878332018016768680418177133464370620221181360966684711929923762426825157086341601889601286897153823373220401537455250568255553498636809290208678981912314374671099998762599918128994565940008592700279456761277410628500508893472366051876420866206950932258430303638659147895307762552984402364226513486342374382424266330108216672382757663858155110778652314655990089275994842744684149096748807182987219010535083534359760141983891159269280778655203447495138416767622162920222246877298245579781761080429359084559208165230495987761713664597682583252059153553196919692300305617835527260038496905451731059023751509931406617793544308198231996116192749913379696909986627787530797687669560041241874550637558174960224604675106393108089128055621806469960794789443693491242675068359101822486169676558643575859423387437693924279211730180248703744559050818604652975527389337782500684990443114350860908002443284411046389445558560960094573049692046400682509542329724594607512180343570402752817438263795677546685728715589882979138770631873438480813811305644144419820088721100734208455641673511556597321570743890567148404504419357628240756338882765136006441040869359041921246890356211324815776333203892739356697435416317941450117347474932673191980861972740242172679502088132862477961839684528987617468203904107409551076345887275457183875426470131722751355460895158483549737695111573787586332798257649694807184349571808248786651722241050380745663765965582062032813538887797825654851377808722347989118308233223907565387005505077856812640536363730479807636775988687152794382650760864072231133494105805176846418963737106137717556980345293490366897862984508496677407430229523576240722529710243697368419510142094610317699417590149681364357480762932110764621617930661575563148000959927439240370078803218623448188235283076994697567122874155496304602612606028058884449396160742089738494294528408336147232441859257125347713251474320646062311191589636386522577606866299544980619662235923472692984831918747134719632652824358970629066058267059063425509907181375920361664954947069505056175987324536833428201568255729297616368259834631990757818373074540615519202697632630719423851549835729604862945827779078973265335550447273948501648559155639003638435570555758499696265080748713095188880647948483969476682088392678173446474537000465657861831206798911916515652054790151728354688318684997050925136193937056245022684750316111858610180724242056549726419127489096382142966935041289241791551863790121191237604225204223144430211988159708680264816675828239639822873339596046772637702922175610493332747485795031557296175407625445745168703006629891412020773012124558485154203629312700737966370324478338722491569893666998512479310238831344415857687609316515846216248592921829381777590825872448947372278207996215831795461296001395381324352021615823611395820189761896257134758148534510554254170760958128680828894731629456244395785073076783185221095818912387446775035722314190870289253018794723889188915374830454982163178936178937575653999672591612386217956561412465510909490844913338681280593643012701964832974150245748533236331585056740161215826641496571609002578195342576980014425626965405630855531923041101807929737372816259967416054215572460815829491633875536215792252825636682272212932661484522514399513065007287658443269471375905437856521629007882108255632252764045114352505596481790561429725343048724974768703624989935149672309204119722579516902343344340745618530599052294254683528557113497183226270330870797183158557401656676922673320098652490964648543692641604237858527486720768758688600345148173259719159164173235867636173117497944612016358803536336661575952873787793376166496759113019714487720146564310908834442725589891337699691785374119223141869896047104461344620969147850215528011858159036069775655199309937469723888027145315851196775733246528856115259952003982799687026537492642207013243338568098867967924628408136951770948671502851985257011159724677020911808080527331040485252720795463505875045775455566780565193949606061067221533626740116464457188634476802513404042274925746382651944199179148976310673945894670991111733489219965123330344329998810558319764278466560487927191305562163912571404382486387403451374529289746087321503497257340467718390979974098380177749532702172140646286186750135942768710388014428706301548754684876084211826327132392700406248347305777881216193023778825075139212672647869497730361207787189748021843286368123815323753457855211116480411352176644569564478874345241966997746517071703234881497918721038833367115335220495257161249666306298273982987990281280077845445910478016847846044488561119581416931424491648902558243890896766919081435510992181331545310080070273228449611665576937735292389592182230421276970716855221374299622212436949722510007241785437201565937838093851680567559835388275838153514725809043019544871223464310166955078825376721584088589017608832473509284083746424423535406551613922311154039143010556797542723177527017431789998381094963537670186043815819745469885699729766636793541219861102493627827995261493548810501009990829226363590245499970582544379140897410665514840184852882208986104320273500084001706715693261161641776731749673742225589892384658071707238947122494501728624303581614224391326023398701446623316349591870478553843314992039958115223638146500637475472542024732428331744810694480771105763781562302473210012176218635210709350370446707805548614600922069478579472992441197503773507269872580307280865364030299155530527468033818870171688499366779169083656815542128349974739475442151856511134285124975440187360759794497399168634447698664136195803454406728945035632037546586390072317625516839675464246467984617899035589374731018135347998852695754575926475549021152224904444187789696392082600540921263162887137387480927650204319190595088867169891221249139460731171672165121587609848529829187027084385757567363810862449826694230840842938564845687939204396746093877318331683101984449135497847163694261870900734529970467901701113461146725808498530469889678109982290251397548487651265526844391867799468710134392795679031980446949555058874476355625451121696558113619690728778838825929983732227609882084020306694297843752735831847617352830296039843904304430825897563951585458763259884919830304367434297094223364548543061738706731197295659551810442887132988888526351833346836612700645196430772872505055956546569488543149923628659930773740487853616370955319923317881357870399249585625994698209193528124989417901864996257108357440352626796516071713760365905562373244750277107803400175210854435831351671692099069645955325181144972254728674848992602306431742259245289820833640010926899220629075516113789179871441010722197484370073081048341119074807904130024273819278286989124752648178546296311873513058115612447239070327421169467402777671017339912690781752848249710716755091123647476815276349828486354233469340473979730719712877015631075385920259957588509222835177870469489985432274454027133838056184219022192908915765901140705554259177924798983588718788010595847914501357130704675736887037252803461809807598557870807742612735821170335448144072433815327879153936323529720330400659589525856602494041458344590327198115135134852584258617055898880566189356040026801696273522362695608882533836106050161789451791466305721140952850115205367523349555125795755855952291572685222325923647982695362865615698266035542451449767124257832882307720631757810238054647368827795900849709229194221628088944501400068776918953430319855646235967355833042283313712701838938560817017194174102826955080116383852476176184193667506851488229960935003594943423538663035349387846804052742739838531406788110594160215010411404196122279589949437441871215453301458368394835924730279424981426080840145163282074836285597210085504550528406173554928471875941614391882403763958012790348733903081539598586873797151423753570011871382469125809849407717035931065567894547874688397887605090938109416218047433098832745341013368858588838028748015908396171626105292433254177972199633446881567536392384871589888891969879465171121036879737451882705923462529080802040999024964708883896237813018378707517357821001647742636478053136295794878180823051870161961397480098375972358531054151872846625643034636528840093768455276840224918642513957782584628654886336436859038909734483935841835265347724142281905809188637622484497115157850558347267256068696753092408089983450985438167902150282825062006624315386368860202107929438623579365751215066213046313800775203134795195424413607736080943619709919422610762961762297823953779591999233782583018215488872025749938982316546072364825758433812379413680124916635818476228458830157283808981469399814915604866023592100483931591162374764120935724526982480653270243387750797521636715815722858602866182214299218956231003543287174889877350939477045373390572964216609602085566642252925602935259203020251511013107411631524543352333800578303414741135871064706639774261187180604555811213912863749646102318939535065955660343144158553846199724921463694758225306891489782761084597371443587465905063078091778351789833101022448890410017297811938868982013180609169593811904971215186808695147999415555970411609275250110501924707311580600072618737878819229821870477387021815698953069754536178533961456649526959802220172425927906769058367777791752432317379830483783478081440401348994888288151326098356350583963639097997896681031913245636923357678124434738115870607575845368140350451134737313643954266682133737327240357975822870955341296083286464111711307459408301907566046084360685507926762107788496512301586941224397262839788494170229013237454006472674194955972558168093973862048115648461262081743495846732790850092118988183233473570326212060514236980752246669247168716233990323268728475351410358746875078847212624867713695628400782603594502286817988466366177208453625774355288003620742420798496004596046504759066085985662805843139991984470668562281754714031230693662167797953018164519447523469356979058131438479762135364028486343436834682476502242199155138969724857683390173922132422412668409929623228796376773098743547180905006928268477464326396834571242340981843712600785123996272295828852165175902111955368867852888714131352900745810985988929478531431000073939314511539737002477177976878348764700761175043038337626078418905838586111211349306231855450833995756749957074667477576031903420655267987118456684166634933635612038570444175750364609572521660922709200687116020146401015923185106350617417384754041311469277385054770508539428882551948535216940406476850434270051571782059966804552271071235899607793292801004210051063138431378556905997400486632567038820219171849693581910059478297016507688805873572031418324042357698797124496240998722720623521556969193772051812916269053948950835622129878205416488199796019778858287801835112320903938824240244833881142122586938313903484437373264504260536070364263082355445000930406872564790893126443048477229405343292334574638057571667600772164275457724230510440001696687318942814261760580122763676131050281365835993946377130560853788999896510822886981108592590939675620018077612444639314737228925749435849903574378769877591750617871885634356348862673905063947140856369236595260986181828974334211607409455969207827533937699311891164813315289620059293336042423422822116031568857315720956851037709564838515858971063389254719554499907542836281243781890309358309383182411066928637885023512994318525861763175258893752642753650700604730147483941136082739570276903674593476214895219160897351799837106785628304378313898402208324459114587198733788478075467152133897278563434608597312640087790745215083457625646467423548417560983689347021878284186251683863197758216920905048256666290470782549207125184620911104066371579859034127817752333004026199476888587007610232426155912884794301024785816992406273326973880430144023757686322488566753771910393770050289704431926923932293841648842505577663360797672311742554318734356183759995741233603702312437765628938415992016209961054546832687372526712960586609915035877401113999267010290560678401371046156358205045410313168355818524007890788740175456592736724976006402231264962974872622760764387837140313254919394411170127611960770027514262714518816790009143767417055003633046078137601862137958919583697768661220858523522589899890605286619150968998646228240937205228161128374486337282886389506608596027715566011189199964223608395337006538416561120113182034360257775278363748751967125691207854307262766732936656299753815555057527994041622419391660487116524253584225068518087461803744601942486594814981186283451678005905446845157317426500821704735440828482655264088082411634955584838808731484485693686164257035716399733295680715562506198989452900442109502713982087335358598208725603675236709076309700425559034948594364798502330735447626815294098700900644467608798716431310186760824397396727970053754343875498507453023985241621663885143555011841340548855091694633109561480909548469800945874237517362434247498382774558222207328118906342876463461840426369155529793237486058129222673716447154814547495703083614014266792533413044178010786160952469109131888030012728402787278138413798330357365369429411151577548785438622650042993617529130304192110154043823796625600435517317857816907950504884469832182677908906477908069200274746086097153926625848048955637417058190454258502723876654279474310279037298695458686990903245444182760276455301653589691999123821254375089584398758535784429266096390319812190268248698060093732546344017601476419155977315730882187079069282490485768558293171101800672186506701813096706474577787171061570697445837331114270669115225883922834198606188336171339395211952247567321831477871343632775495810588521270059899272389604454499470047419973162811817732334255642283878159106560431714411476869280245361429858552884953264867065170279270639228236466330740843942679492803333703305750507705948549394297256471311222060400604191966607526961995057656485735547469659768118627912840997393219988427419845922614094379160532859480301382128377385026016148314835015831095414133743231883918664281258439944156976217379427770757318847243291078505441045514450278026776088605504344242142943526939344678640442352411943305781890123982875117968842928155553904154733669191628494877981894072062122018671696514582801156644578643771312996483563912230585435906024967246699198463566483171515619140012813767021921363390683293781824602206875625798733668216053267126687854914489732802974460128057012302824006508516531285006379939729931490372177308511146145490245269606093258551673661143211036735993068876194644839578526185773909853956378630352432673766911163491000789718359702187862965890688675052896345863853113000931728826718044365923142548775457779089378363326608600228619048188460863171621103963252172165414335041992693905576232789028288093112115651190730191758469340127192696479036336414747902700287584361340513716264912358872686816013223075086114915811788137272755042583211791395036181637097841010927493017919836922210829540120038658055792659411565179295312899565397712901036816888999546336675615837296648127279540666734515893382831472823516847681663515496579690928175096170189877766536632808367832112663890632119070246376626514796649728288245285954658920765899881510145772889852794466182835764499164389512789864250801340359708414022961174009589497560887699757418908790165891134413930194530225272643268151389168729675560042641312855433074091123590146774538764605173046707562862646594338989475745087220918926754625606905395010194969084820165720624101465635083313446055791652395818553937205920826711295420989387239051150703436274301601377582942070791011379391398690541235341636860459068089696232371883783948432899551093228022070879567439517673886615234601728991643466055824010810021906780557012787076910945985257887126087682666662805941074673704906588895947609915302357800623069375611938058257542718666204944876168361449498152471695501813319423194619902101586720297581636981747339536160730505548717992683589919607038234588057105911998693130918717124193502884050428701164448970239354185796853832316557904609420642090549035614568376210247250015553135233622387069703668917903638521643869544318332408353174695919327305617001863803312308400805163335693061851541866105036128850021966774416491740852015764639408299534348534061884363636886586394976570820073513925124321496723128737256383021287447388567341190439446775180357748281805388529676036611028212909097689540610731099209305835715591500556679958431785196640545473687084257587439385045898824549723750734340949037034055235959384416355452875600414603960672647580995647807718373549852212440335926754123093781535258532063825663523607302686018548061966877818950015749700860510755165056457602492544062244600331833212791567834848992721043881419030631952023263182954192716200516260282185253787131777111653245644620312096418830844575971263415639315244745295054137006051177126815068727098309536825911539434183883747568088843105468074359539133094405123593443355161146750395342083322073649756104996466461187086426815511006405928298014006602282694428741040902203818995974044065338010255039326872281441063366512616051934897168841158740385772643937405439557731121092906699351542748153879550148697679283609343974468615191774703879950729654935768479061908233833943088837643647158794871481103695662739734062243327235716554225090887719800496330450695864469436420230727972601433983082031646244544147044610619519440371965634660116810834193518786416673125740048644363785855187722209157992942768184422782714832324424229689523261482855482266760893551295790781882254913199638459389951225158569520269564574471855538867252406203306107906847897765025196042758072401347271498196128389391675208476049256500414632291588837806221221642276242833392031851765981479860040752402349968588940989691082581934765122718730152251018034189927308785355554815444331858081847936891367360491179521527124672039648820348964737280647724712908124077428851148904743719801281743302358841705091658186550328832465216819405865769795183077035592249295781411661832925534388541204248151320940707748561606105020413683587069576409957663080836950719925266971261060148712364382163684971699076806991488492598159645294400225390119121148319401188833182514592461298558531659921104892499832798378527322516227140607408080339402994458890179929757672389835820516658316349719255297788423600956332819374446047353765836364320310129593101961561999546675761909708954903601153421281559334062015550680201443798194175850901715039275432666396700185286788477171032945522023951457802861151648795347890962512248970318152965060927785764612453967654719758729410799704741862536146343408985516748565229344277350571401324053032236425544553832928441998411388880791333257404985539078128301917720153368265522353580356433959112097894916200295177579497984965492030497716613788806904490761494614243938737775660538101570076349849422130521951935208616790693474041679168004658183754676934232386411749913345784143053738526065000402274752962660557759710060679645991417862383915053487969324397348457872137641980891691121254556824455362257698448952830209213723145950360776588746313006036183922152840744083789391484691049710022016138575946286083237498144245501661830247984614050811254108521565083111712001525407349258354078387964878405777306883274203180923504742100122457051778390795405057193206025988781373183025067990826887721417133914164954090769578413451209733413870129332737026955092686227335791575374062256241406939208832584930223628875936438201543234798924936435667106020594948989307494281407065543391228107697496846238831596367876553018626744969741498559665606295702143382100750766643145376419343026557911266865606235623187928194525076894035869115919226117267526669773719712159735348919980326374320848564545309643949937856971698434254124929061484297794441885030309255020295858977107338802246528770721043101785796992441237178834560199359852233515034432842120798920757689953919852480804808672777754378515800408404605031906373941241495693987207472725281776517933871998080773153559332076747595655884126721723916261067277091494659270937071537011994088081709444422473245937170677735476776680184309355903398790503679305943032849360714157501506928734699292182628860128284293699035490093772612831800836715441551515668444878617510832676509768320226691366393687584528921074125369457202174559327159739035809280077811294373778658932003574084325357885709207253852896604050512625219065880727239880944581288843953003203648850215576767484205790144823309450529069659155489427167859436740895833663204637037149119243392384618444402473368011778172639280342956568408914709441795458417789226279480971906482418319239617679906855285274755583714645886685222964914584326085314756096141885655246067728688260820244377084928195943273236493601318996554784723208981745120605799221929825106035158836539719368665351890132707251507718472176429586298445106658132844925981792876072341436598040257984743265485299757713932374905076839715117723013937656329189288191086848019716695307821690556049322824637191069371217496021195969662126049810708261411774299158842300063321582829426551451006775824260667940585792980579285914942456037073847344307585858074187057320646966271724510236008196054399500909204898239372198327152474643278393812080079046182881656938921432095944589804274322678594620543783566906051111462769985528077817032851434802844198122026762973064792611516599659102655612375819545451411582394662549295479664616326283730116320909839426098991730443726592934879571383070156267244616466420211308409652296907565526850942857581628276241913569738446869352298788983891995467439590420308110846577010597495892427287384042258996203437294224716817249227221125218454834281746704951830820536126255955169708123706296810781088351888344197807095761166087391677620811715649931045110010491761583407881615469209275618851746970376453550662297374040224010303565648251254270348815238764455686809153781698393321179582554440559806236944208656305036965944084812889280781793074970134506362797299979006773364557096537008855176416825819105880062763546683612592306979237168381819984332473194647791692809206229032958982229130201550855688934284843557729853509358951517441803393970404097495639221834552203959983151932243417159095893506399447503778784428308181907310232829010665235973268161490730292105245387731415509152021349968131072708462510817976117040452966098294634507911660838978773081639971717450173675497107258950382344739095992593832152641216060204633764837114508256658919044679278423284818073796488651394397761027966116627017160790400687327978566658261829775268856462343720257367004593365922737815806799327552948419582752132104511113132039109243427323404365551577427661594170120839002719331127291298787705798154951704007734177110021177813870662570795492057283407780738506873253595512832163241551819440221673941007878367556845226721823255711532108330655010608902015250823245437421192342922430558335868081993358395634396739606639005773347850535779571187490971224246541391038584257157160988284974726798827038876310616515150592960222908919244832105328296712734774930790806488538522759864181703465654758341208393101613034422838785429765444873096076814692960322440917958937118252166816828173360829972346683533091709160048642237209938576944385277365563295386233172163397945815724922486177313840421934423955096342058655840319175742119993033555006519031590567161621818339016832760432605278700560882462241641242754093967029109897085688490075748534614049773375558185633923568340698325565719907688335781514492868547078957476527631474220633882009043081040272618215101576886064574170458921623415791818810582498287675264536958755443093824408134967360417603505863152109855924199348072305292421262252253826764723417588355575434254628912812342676495798549700929323046365175422773478948302645246760532112698292711596358910550243413654949150656476650988165424725053294216080282830799574539687365574624370182014727939899009229084028419863483077162334618193759343109971588817564594612560554123033425271444452417158994353184717259528778990554704035211462694155940793677372711831667521920198985828260244646185646184378315467839565180617122067243335441595657460334395369289836029005729245834907787251074165305159304844817968937035445183943198501366226511203679896524461192202447563080899770926566670482190448953049907733166743749432196878228458344559263953979084345345112244765195380063664252648802968372839619455635135699828630851538483355798982586169509155540988372610367979675772187220768616323913928885929066891744633984044443009175591769057561059552753156202635963260449093746075135278829370635863480470429323163361526542666992441019909175333311888993024357738495510689317747475859870354480820649353750113565401934169764817777701637843741276463897858898202951975430309400773134702289481500251187836858603875439300679530739330759287695769803161832396668434722221903094855335625112880303386419946346631790230880098827715226624706827877265082898097907708896202820176117519510937613336511036345045765713895061009378137749490346184200671622010596952247536236744233263497322727529892068476404526856086233553582759630070244034123859315789893698949056674956939021331755380064784006729701326798077627547721088915067107862107539157029189381192468686925637050968381847244358588257200419126129976844893103367067798814096548169215190306708070195401407253585488344103921962457405715072877255798004351179509931777579709648064347816312853547900075630394891890945974347219131223492853756190627957928502058809082315619547351354365936836385484616902310396003389774353695808586100815447147013323309036565946627092070750068953670284925920469973200294162640946309418105030487815004714062708942403113887811842348267791019454363927182022528462587852052015198046810567619337128067073713296103662417679149650971705271503319652484549260013832434703860434107395493818368966009650854131873512062317913972715559165985230671689328684133812573691845179517811359746440445145944064263866073757763491809608254384671448482174108613028199939172008132074322997192213686743163829821640378110430699598347648810712914837581627338671257384175078809871994923250943114431708508804486665353903697026235043936307901886395167780315925230735472514257021061584933268553717311882786785759992503366616403745197531891807639777903799600209363436850849930016574328426552206887914451279862714738760250308576677442312544631384366765469336213577172547796137833337848553833253673050506646937394313448465045124125393149933023507610600511188475856916038417162198505445696149110014102424165606527923043493670284476181136108204713065493054159471464878474693975569506374397056694137973796473457199422962591115958066579372504922507761118430596776270713791216237685986794893786929500255402742760115176874883237077260620959569694329328779803090087368236052980822203897258585729054360622466344083339180586514146662709357828336628396707776109275352210053525037613826311160110655741102696016651655344771439211126399010204380961944204608426164373489124747329652372447083410015162996035919965836790797659636494249922938218799988659653664740340604697886423225023675471577965792251151147281940231844289038894036578215194649780758901195229031742375872060155554450892720624508932617170784420789624912704404594856956104865463283806882911254121320751856879100106034559925611732869226914713359456666115948386415240414558791898171493635803503344091984840948657219208367078931170438324057892786747418984544124076811077366755382420020525883430428314218892121855824897361175485682715824309615067708637984858966251887381771743830125134512211654016960010710716638844916076808958585540728857725542633595208769452417724486321854743126157977268830758593653429071510292648332625365699071925923774090910684858374937088239300527850971439470581458895328839311563479542907050369640185113922650004093570446857855823223693886388973450120929990765316443351184829431499771760133503985677708054334885119279044490560779972642417205794803521620726122933121376810417662108341454121625728861918836639324413946174262115509605031981054818840785752480410697283287626498236350181924824937879480435548350009312910914370801179753263501719822123051864422276418884927505251311859332773139623301438876069456534742963194290443263208471004813949219227691697056350279296567051468796860243632498769725694466688569060618163948976670330017206768027184813503596326528707907300356541387686772479882314817061658063331181002393941648688870431091869810281074554455710620233903974319619859567608148913300844265569700242151632237817892092429537266401578913251636613386197845274079083062783044476455800684404550823303037228106940535698795737668335669605567389711831468603638971331033338400318445789233564120645670970036272418265603403417316283710035677251594480836493990515384741362479213265784669993072643193173012224632658791981177410776703636694618568808387193543710774472909968351783512463663344891404463384490663700061075054721893272960785030134026355084649275876050965153273931504275699153347433970252817133296572842780175363730423129358357595051619086163660804279045252314998370391067888300591911785440856284554389757057394589324104710208403513435843167054085458115452545277716147823253166902633924367520537848443417597136894423282428589607861620839543398651497456876537683691568417170153832945208712790355571242244940077582771452530254378015905184474378449601029052286961395750706379723419115294667657774213586498821170782170378651147830185329637806772983026998286514783515120036089832163864285433410499432378762585121484426596183909756026933644817207068283748018331128249030511560220517424543944348242343680336107850269981133742949885453528555097837379422570400243294430521848207330934963195981041212254049233599841798829760039087550000684725724216571763479678841583386568653712939628656810319778388084505126034032378022886296098361096332729153244824989560180908130797915343167475404928321769257025573659640697675081520855812712762419471494937296490888933266661665423604173629882677491244871461826891657250526090441649308380072895184936392363518213914530326380505370023149083319607736588670568482561123435226304775859543064256281669930615539868790699397137744403959368058571977491576294233740157783376809980253726424657290939043818966971517171506502793969563060111964718040692698643609960941966863048172619175598095368837060154112530257658688933614691908200867254965441537287988738595475498986518042508380572521371345320936237048873665854916176766537605053664567612114845620602068905362822194881783576787891800583816563069195060048061685882791669392196195805444720736755921460870794909664536184253833418501363991959150689515695180252997009898325430273584857042527307720137982587579782506841708471407070222527506187020431885825137195138568408234190795956073005514376454110953856614590237923571044567256434473901995389233485742771408020277004725328307675784580022228994634992892865146184478727961388473900937290172673810403909924611151110262937088472267752205318498155599794454334166450762807187405537461152603721831653904951550069912634935316365096467392547325262468870247742781365052843100594497303853563993416748895347941318825379042089786590223915732309261868216713619646005654324056326674592643654704416577072231782246331978837171077752530318581638510558519865469233187022074235281807370304434813818246554339420284657121903339478838536477992177901318941188006145976685192470814260453784194676686092911414889371372585230442046827705388880327901923999772740743704124587870335030884750988832802317922574463986920830198184366471725237794338836289404196559155482446338979373141594809147096928042728008799929624784091956745631172637714954039017877784853387911501836410223159776628078527067557080301304815714951141824806756020469598923181481638606446424846522526383271904882817768402968408198893061869923561798575427189838741524844625772536769946322747530195752221715780646219705493318521728015973993640926870733743825965677365565364122648458180404993338830480926445513456484180145725524330204899963098302366920835334942480181216890052303688371827081309756565536929219987902291226165156666557435234132856500682793777666204998623615028660734809303868061534645761286986009888770151009673434159812324971278908513037688868400804254286087069574903925597186256452392349418710406149999277378909246475449101179843794687895207026481049088041687545198274474396623744006128002753464008275618249410907475234868459523411495736607088113844081564728758832631815713813105229419652367151188498497217583036908146971937688623662192804423993287074407488384205136541448610737675994983303179774454737674657854522913907982931016101111725289648177529709514152034708065250624985598446960589427251511747260676314666527732451505635058196039418862341857429225651960127097689559484880349921913083495069099316365853884491832455854940424131517736056500185692994974050866906622054960920218693257547846591336018817024043314681208990549139812514624849181750288545950992884444358753894631213050530458552721236602323580919466454413763878518257238792663547724473088821389514171233348674750616633165945601575906921345086004071149094493898267891939712682717708996867460469046636173177806514779807444005423883282963915105538848331933366730352205446050212752234227249970637275766695492406235240605244324842923586952908805192492179036546837638745177018789327059816785017129441009318395721754991272849986129623503035849413136783241194395925574705940840146286353095337013485029350004247470016049064465990747696596209663402011550486385765507693571820547348672292871300154384218261252867181596983500454527633243237836607125003711962321247467931722726710505788877454216999245958718847600504008120516841426044585744313291832186716613256663373162747397582574136539616947302741426638260299635177777441575617551915196838350991984185621760717856739440093825499977129060998762102957423279835003208350198748087292348856629901702696864207010774634954482427043974873920524311831339763845755280013396635235297974502774069475404967802050469363798014007850530484118158993678192114018516026231004887362061306357518347476152612918971346687316148828786157769171957050731875375403549202254626674127524881258435933035740402979246075928912063591861471197315535938472433097187094273845890635439205508664131269113594620761976360895106726249030942291589187800587016184488282553490665587698926883705612568083871352149597851173341227206075654108984624535614892939721803738235232161477458668397932203275983779446384386761548826237848521137121875138474651583921123286236534923369613920700528696168883317499134336115379479112710410986397048567949371724643992465453397147533597137214465434701923623602466700964293978606980528608879665792096902840714844484883547682095870717979576455351700302792926509825602843188772087206815810245190021743094248056002498463901483007978900423069022802554112930667662734208683847013973289214922361641437231805498431911995984305425802583519959760533973133869393616512552632058553783498129577129381302717162913094904106579184830935382563388137560675260064904187396422214625386234002314816071182411687701566409093068704490735531100543971531548195829828162707354601841422314752918213881499086901795358721122451131811593495190687378032247195107203296133912317279296379897604093218428538909042706329176938783583619132852470839212274613433964772208902021337164273371415447195289968361435322810346892230280568268304187038523055476257619526623324077686865955393074690349534455928604343327906020478437843728166391847238468351364235042321512561417047994810535379124842051768109711190913460659539819218206418522330304969196689653092396014186718097232499484500626349057491416912046233821784478059020161750365474548297003828528438076894031943608384939262904816175425348783857101266627943838878995188970220017008741420468080351781643559331972226645412520113882001045949251135613239451614172280240764289972786128081687878944454921973333106315737170467537302083891023941563241691740117639793044280823475097678354507171177962985277318016317581734429191970970763657629385311048032972639140712389877043200098819762379431931568226926443903789493431945130495640401638861838097486736686112250898221548444128218768935518706920852992142903121499253222406701239266502779129218999628582011659506231372685073679919202708255212448929913338621734750475020032620449901096784741109477861026200843356974880935632559625056475234346108342186506980706461380219214984012530056812377615731227566757134577342349697467250321750132875538831638178715640257982187450169160806030802045057712084131239640835234478230170590077328407817733769819131312408526943373408059579965251469653544889444619162453370079723890080080339305751848164779918124110850241085801079131146722045868245729820043149301837267524967420818955816964860270812968297472882836934918999954701284832509161107542933606213960986829852659077302312244447493765942205417417000568454657359809079203768252878378662636820137386377373268849036864195805223032852534860834089856923076670645668638804983350820026040464196713279870069177843727658788269743998328225068661918481481088396731751889614364659564910787946367610544468305789191099854049410537750062213719661669743657634030492356082542038491865569353600844830923067528979519481830784354208553346319697170569569029164953376906138741603326014793621232589570431088333121426084733402220222725518531601933104008746128251518795124294143278353541954410048907732720779069447545508042316050712901439446541383630463495354630900649226508176525885252502846263955314757759614079256460566878362565019490156083150636006186285560155048999073437923805585758320172044355072273984245843110478203873221310872319159073855105846782889121504925182283535734886811177766707527072912356252124335135352978971611197747598502111375839721407943375999071015483156163007445121469075389421883447342824953730936085235982178710840147239065505512137436542200953928193138380300686912518573126356731053310298364840076071093020041656444825536656269652531192565116225078118179556608350538782099146847694540376909350338496791348997886671336470803751128505891160953359280524779631965822827939882395622066317242363123884235364054228914055816792719201905759751469901518643863502297214523327801554900096481609595604954702078934374099037300269767522506837767629936551799564655038753325015314713203493646427430286223281958472033323154802577914947749359523558396726260879636969880029235298261842937413867662650320561331107488890329082016975692747651165874930037950521698020085175309028282921130818650174454950020848253514157618459673890425362886596709627533080102665416202320744931520901053753614486138405445368782536002133005149517375186728232642350145075930629919691303124815339516303513218061633497619766695903236726165242569581393046364417806577510103601504474893933566194667763668896699479223267634822460398274552003229603342723485038976509083121285658061271802888320729243675492563019637129432753914754372353855733254407471732681255607801574816973497803107112235484550823460345799240511214283555442875390138122291487774344923634145343329035522236540941185995096115065259399011746494729577041396083802908664013178242625841566999659088804067287401921269760924381353195205236592205808713679182214028066141328121841851738161529731899883039035301022029025404628469488915788382834800719966077852868944545618741644442353327462093062336154486434383930194005256017457005892325003468892792238002360185546242306517717177958029320611253266888224467164384051174873179521765486765067871665381452396046350767589365524473631646376512346458325958462217758625413280120030839157943270312076680251362165317321909935378162555221007699424525523338779260455449915574751543941250737154239720494291627098216581957165798341561454194044773855047730725361695519991722591809244155080088053397016396328577971030376441901140330725291832888871722405780421791313333197583458425560080180279304006217611582828387726258234496136250748515294366546501215020048845733581915370048373707374402607806896939924305446331885154163343646228453280659928997623998017123467231306615381066216638411261058448056053209042007273906165969857615600889647531402672173340841814602102928929917230568685026283220806176926897405656294237227596708108735554473675806731152541415770111035702770280076318927085328799099273299399714943232975700654150234803121415878313948459582795281569984234780433387643794023560873894989139321005014661340000432291132803516265963268928511320140706352884194284807695882324956831262985027589381280955772190001342661100696059964778430448259009678648977570367861418915454352547647689648758710222179703215704117854861597528883795493905845127267589615000787475930024603289409578337880978191462054460588914607288748300952056224411826473582511903228241016585956413532037592035855902379474381729597510571204746889519143726446095054411151450857654415608341946674053404626672699496960414856718047361111891136182154975902023068107659843922529913760524086533591688956468084228259907024396099095162606372313797961213909814555338835135775253419691199305857564443346230302858013840631567656830933154656796890306482952461627738459052008460866265374840167254004795118718016225992431330794764508406562841410419969677385162847477174259226169834004651446684591842231267406906756644150793998832833251524141721698790261800328725308779281987193114427721242888595537884257721760969020895932794540844151200800344327770222430632174388764147038153056333146013139023355447234367247307833823832342364677390516452858338092060766974348681618443651375534643681717177299441987003219033381007780855899531466802441992291599248331529827942493256651594120474684036191117237859568967617728781073012079143872233488589661138941282511382502929905916956060074360456875469872285028535634960346942740275287554685962671236519335440880521661292984888761497546971730243969578363118313189773072551062687781404443752289830008003566057010473218836945114998083171649733263571074083407717764203709421218747132227430787439502832780997067891205005932543082339019684463627353726942805841999078186169248629107358414527420861525569370768104974554976608282907547699272941440630703546173632798048738849789196986535634662969342241342639042036258122033981432856590637103822050836013086748721016643163641589217256892682896708821477897429136298218972296397912668077824806099921240469425111566738210310211969468709151305745461118915377832278939525513582271328729422651130870696698505209288395513719353556695300428662851639125973727678423900689191995471046420433653781719260341140678408849373806944549632804025413468602616431435632522822826060823284029069471049472474515297284353174663482520179117228579455597219854549823072982158256988501821010333500036096011107703917027086093797882907991130620728474109022226393546991755529176087422398104078223851156136540186614031705243722759883209155445309356877859364858812440715303083521076697525698543947965146230975680040291415948027264009305772110716779427588945404332793105717137417544401946889438802465357300487285431045631339949043860037488739398076297097304190869787340420942280543757479129006417154063999244438360776919954449233981176125229521863428264652737618411032266186059798677966136895367599293799744875440518309830130786134085860171287982089728107918336382910169494011259816315185469693033693679925728228066841634685511293602691545317256727581629831897440817418550725082011414867751502830078403793208185010182212310097772706842887934494087925742197682465777433988278532383821879625513048846880822052720899089109567462836938544647256405957427717593722726186492641012308080845640099556657510554430486837821338712848805674708386775081982505751656630549309173891854640372448210193033717115167402524932572305938237709867922052713641779524940708309427648618283235866821496067965435188632136340772200015920814350330884064932975053264412457023162211580573016931667255111209495492338189357676708554878490948444997789213574302551476238538298999742712134289162911163221648622242538393064970307980128899751176039287249705721818898501580699353140164936280396598351935803594108336223680507946861014901278538687959626025792566539778890836176004357844330402866625499180875409150452203265528822180683656730767083075519189361242504406897174689591831572481483561088618662198129303325215248013109917991360767736613061725039746557076689682222283394745606636603783909443433720223607291599355388026293524770715489567260175614636843062046636042508897668519684983638268835224696169490186333253805756666591551420768486242577413331084625083244071758725268472718833390359816236966305007295922393881014555918311188354750596963523066645651751464795822681275036329535529600000032785160432905812043184044322109899403637223435252906551628747386886862514880027545345987256325977156506100595426587618237415027412799552919140844005784522746735329469025094783997366871341658716372520517675966687522792508261738912695717902900659038511217666158475137832724928022475195564471945271238873387216715819343134740734160917588773562113987051977257726425876545918825975336026540435944423085917536527282299553523094368287370047236805690860937516338410976307022114780200257286645656658762690953221201310389085912967949168750140415220617521868289137477931903167631275445396709689024237411565333013893228464073576744657194154912318414148972604350752324062193625883650751686148607045444358019496483982781994471006164287866751887247716561394729947333390153258120214104926691904220916181877300740915785668976622227692857137933304994720922016858902314120399478654467453208280117298225941697395635684189530630616268784687782321457409839642001457907622526202067686770964722867117520171661153868646761860320923226511324665450526954163725978911305935247839062714262946260683733593129610398499764049691410767731641175803257235543449473396837441908783122351643233057319695852262549574122657250657600146266920509169964267897567184703800834453448668717164321480748576214916956734371092484384028147554243006362705723072900204179378337462365048534347511320193120688681034307277804449405157103638638447985566925995924799426433569729403200928430136661719841297766325980312789462471711594966176171341967030796686455076225328692372138006099872429572467822361034350642678205626564647555823641861930549750290316445822556876306890109767930353293069294691389423492617013932722147086804773891606634525765753119304992592411861217637544787411219412546704011947898024956773696311754195060627955145385874195916412834350484901243716448004302247363573312848197765493325099233639979115420838525945763662367120794287114799492806841414400898015626657257552825945338264115643604895456128786037684306559605708655157598538781031897615344136448075348355622339738721929043401729721443513680591989994907003332718925523242400378406254321136367975073057139113886928681334893453046133404214400249021783799295931757048805633876635949731483754169735033264746077704808219854854537918077781970952146205456889216746548515922809182568538173723367686477736252713349735851119909108583184100141477946128574283034653405274482086472293817719411585763307886573571708074801677687586089725782737805566685361610407472030079567055168732280529874245724269663382829694347639687525472408787272564213361512312406865562996059127584930359197586002960986118533622197962386000770273815698092017838379508382595648000075257026422401726719410375715151011540643716833896501128420215647389623334863784073784183777757288751469309861058301629192885572960512190744046342258304220287752313512230535954178028125202226982510576613423392957376688314696289622858692821328856698709005858118976659543966668719411516570552429658780481626912241672593500361357044311446258602711435815177128824261179630822042290931872545010162699608857226391572856597924072859738207721790821951914637778403622783473003301177910026655821051554216359138660351834829158242264019414420376957465702902989771796990937573578999655353740630776218854555521796322760713034126580443206610265174320329077593928404287539914641014631295082055802571313867845898627975324394066752188191823660523264358708628496673548008412766692204481526920331629604493449067416009284336796935379688742221298934421232358049706151036349209461885512689900571362685784582146882512356519487165569754827837322304111238786877948979729893527898081616813853462257919560301702411169369749907024678830713504653905804636849326880526940882160619995296013788478313247377764754351913788558534651309638299348568915939842297190477856763502331714478514885470307482366003449018075644032978700049183036522462938485652169080735570846405784848536132466730577018236814503011693101387255085676296964392439413375941218566629038317895971316831159880004733814172577856325365936500114801280316785588374912249427099253858012744660002913371544741932347390765842282319737960044044695726998245193371286908667614484545152096960875539441630271444004342223466647623105985358387488799027660020438632553705484205225154861845702676144192812503246796287378912101137333531447696151453498118917710146573380369916932156274043415680003953929722430586998522914359283657725800744095361702621019587929846352979719261643054129732458875257907831743002030017325778082105088585727760054731840891722749044512463041304329920727152586567466168212103074581090689247819748247341650387644236002506929687560259118985750654534782434998052963876593184456836436081008112192505550454436044606083938497532511698435084365974123641768627028935291420730041829629864401196151420766903099908848836839868849717060003869117938128025245804714801415378688497573164332738432714159269434182922516604470035498988064235844456022617081328744772979062258298392006144812995878989672759145190346396112740958283232098658798685714459394739364093869714684218727552947176070607572891055013833875263734557800871129561714293315103245593557098737244527413540150940564616288696924641606067786370882131405979581398824997781867411640652240192533930868400381001804907162430860876590363388176331227331773442318570101260764785018451918705968425182907559642576032143952642378415478500373428557397188972445178618906273948464356469809703706365558649012499066179415161883235295584118812153743643592364400154603507182197799174045916051091628669826850162928866397640842591220406336988096644739666949885114731561936389335157839951176231097412187111065097151952880434909188110929948328276422749367116497714070130495916490042957875924058959509311938275942449824099017138047291448356248606673177479411133597981355305610456335725424475512146806722737045625493912716442955145104409207253451110601479878625040263017977186856712801335412075049550532084068357631544750546270410541665313050151189148829688573402332889047177263181411670551691245887283646105730548077219282089099235426924828576206165724698578326574721745841570188027141653038159633951705615577103036124118971973651269264525044964086562124874261338123507799396122065519164348354823921945713945399868485848081457268760474620272874553742322704731476906669000172934534259163146200251989019114798994225380798917191306204752011100974050612128707393654374661913928546721975808964216470720388046237704563721344827212620338224356068165862830351668609567902519861841162233325741931694526474319014515080518879784753442533601309937308201292902794112649335426604506098629051557936172173771367052652062461760581660362926249833727064169233376975008399623012822487331968099000381580644743318806144904683888827425751747480061228520311446036073694261641303372217749735871206484923654877040672180437713879661500509772882954981428565982230566013120424881151415898377192950484107992375228565532291268582915107745313406883369846591651554832206164891576327678517418092911134330600055796337459662496655489548489745093364983421647014415898329793419211004841457833162197389783336217797788676152399263715625142333836490601992584542588863973884233547104645155625961443114966732882926093972877026494122851969471034905179577193335851865555474206606533422481398778658302881090260103902780743650037790545318191693567110490715437342986411056232931851974400246291712096334347454200821835497554189117648839502513628797561855478600229819906263713269171590835920231865818877423142469694514587973620905155076462150912560426396779254990216689913265644624078641982560621909704564470815706955918726475915804457970271157231567165899548073264238707793879485427610326548169325814865790354633109575613506188094354691837586925481563691318025469822274715793286075208882143208196033467765277431654731498999901517405223115193763324811951821769454991401875415258966965598097439958326658740660492589162344815912698965151127236005186493893689580240550718642335824886658177453762963073924800688755709862275735953040039384180760781989579471518707686532470851597979398199736205596991382634206089381539794851572026562313114347209266430912060704373312878053224685426003661590275637841087426527827547042263425056839198337006399071097584754317669521892269584925030637949733099349101579343338898476021656525501810642499008566169350743926304091078175766422945620640181213152517498614740929412447162400445941039394425546250924685717188572613351089604501493952947671468354045632260934753254279367338027652501372797839785351637529522240361039624898647029773190176536386638421184962117785308751524231272148879335679985375385144978667097403032283954003412142764990129630138844028461654947628688735679424230571712177339942662598485304324553098493902101406940938657418202509624735667012662554267187376226973979671786456655101697716286655692994548748737889654919838958578933016262277420585758515949160695616761682975195321169945643379952205881763456753779880605757198822291237314937232623970208732443036851455664343369817548687123100641693088975979589502933399373643119676086710092777967144510751696785235174450660491597853008966328656546847183570648152416717218010626011817427876606482167871163104567038862642760467466191695448499492586233852901443228650701625106912509530364922998583681972792055375297971246208247803338619688890237313629563657502469306021224340221525252211319891926464973623975361728006799188146240147692702868773563146131913831122597454289257356630092301956788190769709910321719186683140720644260087159854324938391421394421976158821334740148196629777440411698903765977669507380219540507368394799062466823694464674713674015004676492026139993161956764441080348724153339557470641379277353827669916599744450499376599531078949004094405918993666874688829395505952589408069845375535401817438635544105166980911126507855699202316433419690929901355025380003253355227097316073867854602896032952179179300394868438229944597905480735259136861913568443548134269511004523614536598106915702072586758990445449088334924795462021916412342215832890097392811804283851807574220378443570424524002729140777520427168041454726327968056511619229082297350919295630049718990608003566831841535201984210659699093179596484394377282841988595351725603622060091338882079413047986090994686980170400434468854841182731598620838979134359729084847600947035895286984151823510252313127737365213414999623496402613867362177325809062193340814750573240248783875213487869035089313916133199092783818087424581372677085864960910617142258359570535774575136136806302436290466808187511694176900592237799917838341127340957229075690754338070828465686656742466351509464397420291081579478372954686121712757379183129429094832504768943398576473070800234291015252791101396266467936124032098701475471687198418731350207848754353234704699830798653005869885495052469945631245257916347906343227556267452115484747159065670171653822530038087685396091663574576784879444223285208279419789418964960799488621997146827002222335231148183516182171508830392537156110234488834986651893541470891938518046706846316051725892199208196281074206816454022729439882217376170419791635287948424435107690398208512976685004533993573905865457619724251996731935156957217959458438163335268204535658202619864695150246331397290032500199234161770158768833586892912240980148145898603608188350669952297719757886147177582252094647163406985135996931644356336106277041322565942800713784095488438257574643197026968158270247801557310955842494827708117618659444174190602252388918048442621800540373773476796426539059791171585083125010132976735234380466457638043653051731732088313043109787578752719445614761013009599634439533267375907791736193970655764849216841064598564903737620551124782760776761001397637374819021699585713623224609091633413580097464727484610768177250944144617423884792265914741984882389038968108388457303195730118359619540939422783221521514655226175819320485019689610332685104313564822565278071204036065289223400348261305968349322080035640186075199004834493373449278497836353455713721328263469713542887889636641023999858176385901084012485861578884519780765430312364061316799178490480642411332916869917855275268309603276840629139179257846510782917419030550028981255598980919841573943639414562237767286927963040207826078748546133726225811905164672440257501566662219409692077256537024137717680765825082960616978657610433725982675944766916036235129523402714506003790417814445680673404999198185167230832551118771697925788256668283548843956400381885048684745040832103461429544024815498997963743724237963051077743954079432838940302229167250070411676528507839448317686730292033915862637846366507882287660755271987757677453676046751745096135951492150939634284337324719759279931809001768565166787779134419219196183825594611330022040205279825434043693485078837009312243827854906727250749402338895095117808137101023375313162087361025669843906856273933192259276049824994268379837571688864074922420333379810073757476386953035437071594654924883145316545603653317919159177703155668392124804634321900258153159641521396472869224538281092030903257174766267559708748115150560134642777149396130011791274516269118413943497287752221098852732987307409324562125530632811312064574824125668021757092613859155446652997569696622310130446239851061960033267675610617140519874809665835019554118865899104034718593323963470668114126062626396791859972521206456899640951870969329405676308799729218838579952470685530689875980761048351976773847071613946462368398994771894513840379114297624335520441210449921129442943094199189520058134018220565972348000306818543166615349412686656875100031495323272368456479069431128642867745035363255778673272169583436148583028164175141554850740742854270923100410300612783527817909061239097108660910980874616709710778952325564000393514821158841888906554026519514484780033186337126741240703600245533261990454967162100049426864104617796227993618632879240093000376641448704672502044930241969144056732610538809577351480990623032787586953968461816488768757405505522561641050089384697967157305802899203527062483856964107572438673654176262695301925315346765197960856293474194037304516279104411327578551843643563181793167115646837687822445215514546971746397287982049187322139515805381373575001256227432579339612246112364832906368007706137920959477616790956891057726634015400418351271851783205986800216533945450798195586622744514102902131084249267057726671768711626791123795455654932052485480029348689356084346967714980362438932692430243611002413412954417278180459925967033698256913953088091242648603845979677707357973702327336333558881256789182977912795327607751505542763172420111485658995223631545404708439907320308116563845926164968585460890117656363799489896501183171147252479928428276257643171092104963705891158694041797426504116689607388069771281013462451075027713351120125324882681660427394844053520358391371114978040395655355705092634811619521475295042571488917783249870857119093931856351010268075243614292329562688258198574754043654683519351099616496979465962032217192699869532640699651622205587977474027390408995856069399831090866712410586064312781680866540280303209936938577787925779396049337595637445615149669054905222675644548162839104972269595902651594041744013571992296126885617843457441019232195117585919196080398639799234328072463515207823295144370297410775764414664724026798817166892379507395414817246409172306420513034002359182896980586245166778767909099227298640670863162431185847657768182553097255716182995226915403980694022028341381584584972892808026087197410897386469840199848341933323140758745754901832129852305666501614535469329556733436882108499998982223476139894511709657524789412407376834814266400531297185439878837116922012606460019413508728536378695218806912051423618121816812350905337816430369893191294344176864113779791645232536368785007604446360740374379056638968256947833869650968211376819167947999083708121461436800759668622870412076813571306943307942827929649866575467451896144466724387757045435619785465099474555632500032649701593559781107188578748215286691091758977679500532654904531206510316580843741796867193108099455611065014951917080325132943980584727424844493800734739784800088426569893055009739749607099776422850068415909269304931032809300541793800691242001232795937202870848821364761753951350514367271112592735563698079101772836374158145002672676256176002812610226197580657775506688809121497933307976755390405280650070630405067051436856924590098808688458837495173467054144058869645588134313635144219695337047176706522557649255125171594334859838808880700221715507712576075189488838319843289093188606800134210374398594463908316672586992708781314470706824038015485928476631110210908725675609576800961114695222536071390064787360223724990428627572701961921361732471880870831758866303853321881213004842028533494927264732580017166182416685688169406740193829103676782342197945061863484389996616761395870339763998594249675920290889975246269777685363100869611429638918103945388018592076096334249368005793585126598277678163451085535025996084118514684891734626780275904189410591500459795087580025405691913164065564924086909355733286469674520450013624978690521956648812662121020710028182287201492557424153604313425008843714958679280597615416410005851839076675066806477220354034950380535774001600454925128101534071976340945158637332515876404472092541856455009312651662442401688424746442708178644228963097252654251857243030351607024717815118476407109901232064738909947834086277015941841669640344070365901928299949452774974126191702782660487149906735448575466960769287603798022666602064720659020908965310295499689937257922674763206413626836849980228463245114316920396172852110171812463836074210053324390283553888245801007232533846805467475243890016693831939884932665810965444265281565624725077260530852558355917729740900589346525366523436534474441108637793675596100003194197554532393035340387959624667437885494534440909417259686077553106873226337197831754466926990412663879667354708894418158751931227609834913241439961651514498297679715064822106598167220758640906309327373377604936590315923059902881360137849195443625159685923332111928584231867593528717221579747256132091337480340100213141617053600385769609164443386334020630601017398844343127046919094401484857952692190184958882456320082115975558248057633026459167424464402146231936285626182379897588818584421519582493450118546490872486611582688018721491085825207645917984648507966203529384798583074921682477322744520759980702620854972860895853453199051834417822178083665563587926176701552275150382087370778112713100953412206913763613681550944756712133853038835613630822485163000989886451152861274078890326610330575364227428925888922234161666792198908743927752766108032599010003948472759478141767244893656578510011464986801073537636281985682044844879785388358944379136027907857515567658450788062104931981402665308355236772497690058590272736929427838689663659289243235610388163479042240964203392704009504174483945631496339267131073185254229515044893669882422113826349296277503367318298295106227877103147905244652824130202083241732078614996519468411715216909091918159510994443041025995736024809465193808495269995004222251989729380213767366938217809340324470652674641827879665319491716342446102424940341772658244155737319671893080275343228727492965955651049003126260104800684930776505195383106289449567784997281081407107816107752902679395180426376502036987641467665887178534230170182633924238545772140444482397989280992007338475782963650549326860166189577523537687157099352626825967744745536638423246112055193184189145457418895016755042008097567784421629187289763635725340381534005783167858814017667295952977116714458470670476269646210234893681407258213211507494433401909607021469912649942777875627242809988122098291944144184395744316323140890581449017436235322556121220096767062381728482107655756456892569319963176860769980418437503497891635056243651507021946480489207006342016473461200360802499685592031355008232899281007546025770023071253354918011576971739771173560385851102765428680802665969210696837685543802736147819648714687866091566914024251985669780245625255660884557516237412897958496008600769183739005233036155009225664250043528932589682055350938055729268568370734175460680530325210757446046216023716197925913572127905102314189542695375257328349919870323457129071785601442387729231216818356321902702368729797057896439855804368926216702329885390441039253540256190601985578024158423660066070618746532212949341624178887765666947895033115572629224599964142460292548670925623069265904547649428339039047787521247667350260826177332036094275806907544814428539938630226535327501868954288699571946431840336293279124047908714932685719205417187695740480331913368963734655322957323739284656202472420858852123346476792466763997754450806249410373253652486872634392505906313185296466746409090000276402985831836585508849102201310020780168002406111564357967565478613967291323920433113100534555375204346899030252482524951323542980364016577278429267085535854375202596831763527478075787142676005952085314425582309074198543947138604134582769589884506598983012374170529660093178685542824835536839957439214780878921365427738718953162004534972977831902062834601906637062339084103197351079140618305636845948425976673879857442026380772753190139517005603951040583290080631207145557246071565425634662983952365754529185889105121215677011510191829690235527830297408824733045204778368942281129494045695353596244896471861970685584927575024637739193141058657359199848080302646010073055146771057573906805562123130002356331326270130523780276385027344794813488666508317700431802715582513992011112618040032418215645041231070750620483475658931038430712440393932995996207006602247060837840880783710053340544299396433902607601797144656418659641965471038279830716343618193795754345899756451419703096132443184236203376827648352308799678381489630306728857862297692649596212224679011787658662465249188930553307044501843658970992254859218022553719085980486795963639086344364002500097238219264733653471959097603523201126256540747528135305989017404381149601744709303695258509773924881171766763311100150052417742792944019741858900330379835962858063860386109027579448112538420416383331526797755057801012065926592681682852368454468222072343627658169462428426474868483118052426882349940962443521857837748911582942722911136095889115879242063231132635351747813704940620702152345370384280185662243814340052936227032807252625585234075061831952134390442032359156815381168653291776361072043250562322111527739423271804474634702305587474208993742695853839871639617452054906003800958477130833175079969060167375598785195359699236401780335553788084755760052988258719325903451075624264988476733032327913668751684384543564992453734435324473062158549828083235464795084054203070262899012806404994588693349850403137293787643708866502008351670385424309718498316765501616045394971468964614481398471731681823869443997075081215547374253570867342778398116387592554377864290406114823371761667511206930668045046649347308419513257683511209833743050702768701425811277176881510396693582102543271810410907793086756695771568885226209843850580210203817889466066550380457195793787509019615279489548041883258123495465318799017233759220977132866381157919469916726484030031557989405271182701190145865232991268033764720022069924052571764944451260135367173725374275985475177320439531536361738759535530112758070752624117975522828457284824018296115815528728551617155311242037153462038673070349522296367583722998780926387018382342127620398062502791167158102296255606552637668638416510549633017606084454471799035866222776219636945416180939072360372220435098398394296913122405001160796903787794548883813131024616117657035584854905482808149367198727674567997210529723851283441992086192506818709563825426826595003014482086655557252928996339233599668727891994039806088567883990521866547429635207130524952993338604197592292130083977281200424618633664474506429724185383090560487436637791180719087368839730523773653217908933311368548832539016956904464787870746647258999527214507530932813344739246922483928721873945076201773129729427293389858990201847413117884035750855384443323719060096054657045663954513558209158480524720802616893389495520230323806257269725406369074615417914701097292607998739244994253260689632514317466470107658165443890384269752842618490126325884683013518188862111310594168244192135927633573871788476561154863578771823367415228968226720432043470480457093344351448943810170332968130013357395084433069149494220033359233479419281874114584720105390255970185498133175323028024144103669315503991413065393696494892721049927031607043122126719063597964457870818475109277476872651311412511522774333609820178191867231923907336867756409816326431728636595965836929973238463058211287886038701726891642814315098573462606756637853610594249021826353559454765466127563352294151020917411892869265280422695896969920294043763616976938004368082308764008327585849267166314555497759336214393944099847808017339220155060735552092723832551460338350431276279577484919532917459310023377746677097103884470348604556452979880984905571579860936411896116010331392540663566983970804260416481580352167093193642004191649702209306058928325097474749484743035613716298483045324475331851050807232162853070479855812593836924827640240776429314364859488152512796708201738289672633398033637794169260547574185840032754130810584431435561084202607738929321956456917939020778646545354557141026111830576946218377156481209257480467898600586391636395781650985845229830721990317680807905505493678273278043405956525233802387221852241631477097784639066324900869021768408711771819332768848883660644441549574364444634598700328454174466507441614753078524743738993479979406206112946388716671283264397335113908639845462093863577495048602581873073319094272479675090643573841473071823733460051273983996402017333027683062459640247311683661952325260131161037586976868936116829727516480866935609207513033471379008532369398174234972751622803303115591055257648479071742050259339596427658729312923081786697521452551491242276841733249370685869509877230867847331772252779116691341152388816406498071589246894048965766066060421575424128630263056116693928075796137808054457106944485106763122436626862671901672825690077165815255687356007679344713708166865420534449470876264157432068546081231164295915933422767308123091115378048140086645604638472983255585887251105861160680174193569756737797841317732184295528637047386533173823222977917800449335864464811832484358862157074739900690509060529548269665726695986762095922431279195453554720041618168036677435684180724556556751434742634291703694215490066701405156171618412640662608681869008758458354757484969234561932704214158711054852687169207792978498914557832028217280938073316968174126964122281647606195354559895849777316761218082191888233909221017687438173477108490839319967035534386912799808636572289199526309497902822487933502363781126004725880241518402245453829645174255173025365509323958463092509637188130957105937971878244812214944255767869654893059539107126188093832458777627048891303972667535843707706334040944159860608270763657119435569169965329518910517877426858057433370944252156792230351068151324606849063835622158467476959482248791422141125146245120559423743655029471256640239539255208662434775949211549286702952781065510402976006348396837609598166509042314136531199692457082229174892654594958014167917470041590608535447501870384532309326614143062268521092523661352424729053947776615663423404758786425927833771660046785881997829945704214412022793240350554246524359019854305960432278265871615276018258887123776891246910480548513467140549117407809180048553553849634317154877062060082259201667501056791185086418424731998601607589676780435046665429293746261952806045993563028059048603394526387299818461199281261992477028249124465003144387009926776587031553513228033327845250311454340558977283208637748263023977288877812395429975602245013008438012857506475252008561832511641469839999450223081068904982665517543810310609346964300659954479720627646544868972900020536918976289585021506046833825412555010541229533232691819725503403209504046164149929978243561038829416284071176345397656588721636070021676902448828241412408003322642353591819581146126899993286263457076577972886262969974601237643104960159425841323642920739776675759569745249663539359877006774256421321600822588373242597586509994719762657432515799765854184320405475296419155951022703951083448514992003401284275948017289723200016696910691882625028554040508255754007649603764815887049586120519074218769501464767318827689300518044187163389729657402404212036141263778573980795610487838675405804094349356964981143321812695772839755595580813893437768840171844450068847120998314779642747500950521139320264411110625966565597066246387695770234985660138369878662938352636422793560564513871814757055625044503209839423895216913677043044162196686972182259814780217798674639736653033486738073882806545568697037783327508652258216745275690740384269458955892587624737261753462296022331458727744783766643383293157088667442688045192988663353167503572450116009831662625139329157718475916403474807579595693365081553100118999406852432972192783138525284627072149770461196238188469203978027065819756021778184834780976408623225062619085514186090322234350206116862638118504425587540565124748437957726586512721759184658407528461309052183042666342014334207938655952689796216891895499143285826998162626133006805657274813978059492751234463378872568140793317217584891787277361799942790389789569035215989832109034695841464249461292817799310951706877058388013060952661062594883212247030975789083893689241908229189950719991106147171543641374324171829195405508956717263818200471957485118251965761568945964517711296570001085485656939120221112077587023752288256846513065404687158275302496040617824801030472100459930103658469100127968800099318571061761352933476661891244907923195312609971789660018124609393302175332419443738257348417448407420009295217318999501920242516593770388875311471741124722194661176179927632155613005084480484772006808523434716416885944121351116612648220621425851337248934477121395564285885386855457484416387180360101631489540322344466947240640350570947991244802891403340147827606191514046643327002952711972182754996302284101649267591539309879928965620917690056905509316111820484700138487354364150807287471078640429517968598749648261177419001001534798132135481527026049828989102575791877007870226633807922701748234755530042783799883910992861940043301106337856567809650351670431758734525943854964008180924710844476110842590766508728583170277095055297854559764142632432165962190542056868636609641463247869381443682752660885257680682649575550957668358735011459284046389945205709173615340265702712534943132563617685641374023515013735654266164355244416458308190281273726762448249239113618688233956632996721183659501934750126741640751926406594346653393919239357507594485241145438273665316607210519724049016323745535588683199563433651059470720294387635340695969559324511900474731090815256367991029910130848245554969592539153572406437768084947711883890894059276801433158148019026062516754621003206949371870132083419677474072701282559595219138939068232258866804255825207440318947901051975424327875201374064335510034255742708486806736229918243745534428955175425590642239293090053104940260733466592365421290005723839846198444943361115090394609865287933435367195751104680619281154509098427030685254157475721797725720520080860146561319251038255254879435800431524686667621550066336952029654072471557929334375399424194028570653984712989872282233469658182596792614386493934520540328936770612866812767801051080731633105847126690229524665550964675034735767209614190430298681113924895839910258321117885433406776043116442496179122510429585475582963766179081506327482843990547019846568429732160411170602817266401718340004255559047463153761465374079660442953063627279445302906780352038588199115870998219618611473993032109875640397489168054196839536667195970934405573812835966922126745398714696161161423165900200891879888137500253108519836438109828415648612518604373752643389873878961331931781837138928593358189625247381918441750877995582059186930099204885558224930342811813084275599696037701246791119098756828319939121421243566735471951823943897849439167772341425476837155874291275912411857357145767060968590105948875149921673054822834234319164525931555791920921096922043161307880305663388890809645458101182060654097456370795028001784814732662624297179845130143581000926970881638635922285907216728290524276547669520270667508651572962160079407264358280515417669059359034512480314291389064660422222274624020617031625622114869462048456689596445544439282297756272261566398431028274670605585205587252617500530773741907683654082855859615052972978552324192355215369821035071811121809350864074646913453163207156242299399266433595544398910904949513397821984472958645403575397310837417288756242915925830133236962238074112620826809361407805199037866324928653000879696257212275463158553987327544934621158522480891614910998199143910615716208994831612862534561313051355526101661319407011953999671053602932652547937709809949837837457274392749803624950612625097480554147680545183619621325504195751792587847528882850694622631220136113901897820530933854225059965930400123532244838334484129609600417041513991469958308992777349260835503912498146633613620483673349846132553386396221245122186580508803730282214222875716777172865428617949458435288520168716715452254288870486107648938075278292405941103983646455372502721999627293768664992826491378069703541371181469897229601638033048979437162236710674083227358368086375070051092553830949108977280171451938258004909353547093581976460073755480944269464543571534099831965551195163600092864576407358307407142476535399133557686653875449536222704241294135795330480398693691533973702894828615147503445169720361006746183581600082409448915047843979687309181596676850292553842086343847688038059763562852108502320782337791105959004968277890933069721211230825496383432918153919494469876595932597778267114832456666476135042513273534645540955016122658713634091277669405230061765725395999163213014292616955958838788074340418893312698917270862483087315900486861000944515490560765725241116214989505554927827539011839531260066501024402918501873474559128323622245993309410346177041512704723961373934726223522503330768446381790698406196785612231912867271700754816743278888689294182075040632226963936898477236396047416311352559864358937450687980044222713152545824359895672169846585342350916451435232014808129489508182425564145842671285867775448838999974647194790028219533098516203203751739361733174523951943584534235066823189292876823669183703932391139289250527940562946971431953331387924732280225564876403864295619409406614957050763412256799963225328604760637558016091474459435420025894447145757218014896942350060884806940785467056059220602967372169622965997285582732344430390999356081199650023458328174913388307569072454774203280345965641980145595827414967899178333417851621410059907082578993363805263718083536114282114326308162926710332815418566141028506210802876168113666822389437962607436494861469453676112050432087015944113066080900495418262943023398562154522316600331987384617079322432172501194561537027709473837912672468562601911761144606454979339280391306781004425430139075149553661297080866349479328495704603933043881151351276965758476762771462169196889913901958005150344739800673032677692160399873574848612216384390795278132461184941773352599037160992725280378598378918273033957855230665234134779532282769703470341015617332447087534114715993879215109213119775179474542796793638007338892872632538941421527445526812660950710239696860899363658112014560949363899392707866939901684231903678883516049587675552699909409537450168699495643814775758308070891365345360346602872711829609051391663517545022981958099184736985911395727845704113089752067411083432604436147857242646092049271764797614388762716815894113336483629381781017125070583567704835322414208121056545622216386749328601409178232228749041752341833000390137247088705310353576443941266703461720900345088873884969604374647414171235944874164577936912003328698106768234967380458633310089385476044685866544719898144917588690226593003083137378635645211237905140746603866123693861739397526598627907791957253157352343825969828020717491847107523096650188416594686475996288464053612229467133155616122840950373753159236254912201479206196232517409434048245439231879533074041396877369462666251805978013851761524789316962674828669270939637144104960319786689292610339029242647669032874384944786275115531189961741903278589853485464378821784422249779758756589864922506370352290324420185891210393078501561653497075395003775264844224743850375297950013459017639602813465550001473376167387847261087747225575682762692460549760700434239362034207312335485820423902888164596206498083786086576653608322270666588337100931538258829780148540992686710853767221832800018090704194344457942406820731755366019982639874393651871708664330135836962110166359257355672571805275082257812960914182028120472224310887717371336041837334521437791268420586909125392901989262870897820866228794518711427132101533028944745135124880347902208950871691799195757796698220483344821417280548995784959901805652058744607950289282945158457963248756399170169391578566707194336468260618730365583913772050609379462182558420269825538463412204249272724637283842047170852826587569354645838405345815428833041709143959449045188011371987418360799798910189720391719638578017172901248888280626162351909187586576607795866143031723061174620201399446282307107848427457860574382811908445614266983293177113623702119756511870666489538231715289804086309536711205453017458375903668461631034056433609864930047979880576090124544283813180665855218299026566358137273778295267913905250838297565481228270814634923680922165068108411267186878554190847386544373964012039965836156972520778900782642003662820170427304455813584187443410729933291689997508479938551770928295405781797949462997513975943120412785966338434776363965502502054310255699542412409193077274624647833203434128309415037370191609411897806983276247254362991684003040867729140103866201572879501545486397978602712475628815748132717239540053615835755559003341353427894945986467607157572935416807539024618940420380379997497398331511599682219255678083882938658565490109799242551420864528170166904942290071589876937347088293856070483887061004096059998296345848059941828668286000306867333273130094056208232748375894663834541263211065451162626474656176845160088045523881591726253372645407210764722938309436902588915399737090042012802662797288914960826077124040410244967826086204211755050227732649018664309438208118259954201435437476233536720809052843090212623773964507691629188069628864196884902115616836927735243780550433575458353863250921491534457493054959193861517755833062247407487757076243681991537022250850697920010743857858192133096786820054395568493975694698054601621504390019885127213341159014291540409399050774897292481325328022728551764197546078737504188909718671538783968738002732490891262275827208957861119524921901567469897681909859482169832120002121996759643359197897270847408932746803200771129867292923838566371604244178340994363062728064578309722434838407116942274920907912102546410548959196820049409608805980099344816459313460093257963681879743728169587855040505825283739243522633214416043715942409584812330276550444261599222570949100924843157386409769025243379362113720359806900604759412505420531147283147256172186177366686429335678739465311644167754886105114455456275841313403111524353777962907420444163229753090668364732524351962104425183015686321469648335140681645718123238895667444189149049587154075153853069367343800419598317442536159169919691359707966417583423957899886274972792347321104953536201421035458797611814957572912581063820122662159679938925793289072122292158131897349636890447812119197070839503539174896145355188831759549328502610438686911316476546163267867944341737419972797566291786603909172281499269387816253329599640212040501107106529927352316392874859942178592347974539583313236589026908573542809524944047547608797331031680596617794343723802567849080464368037865026760668072332447049978203795342535169745001916268101030208762704802849982041546079084139930602612669805599385796437784182875447591202686888662801611820930807901369088195849504658556169406791626695407623028903705790783643888665792873751390943203349943054493050844547916124104522336657563622861231706028824248623357940176475815578355887780632843153377548401250089027583446876404087568149404956394031391228563252337332167449986038893374874514975360615513535655529511723188533840381741348563325016639689622696901676159521456065418658722385645004731640181937414069284102730313703095731921496648243252545870140057464415527830542290333051248016274062282676413201941264586807370879175739065338994192584283148745633598580058568970809730622215921533080826324094801572483092022378177484221863694367754684357038943384848519527568181403953037364931005012669547675073143723104111834899752391534721586424666997153250909820903445844989130650615818721856889256915250393122958941829105789382340431446922663966884166821526471198594541269239006524082794170919407349477972722912954488277742692915105464834558381513829336006945065583824452031231176336042501122929482413277042148390461862083758598512730699392300489000266118175975530505098158685083434751288272822805684657399523530888828527829189996349517087217458458689226050858279815781521865646487024863170707658894988819076235841417817136378806036978667197243316954117198124410567368454255872100526396739816496507117396315687215069651154922994969914429977077329808433116833624648761909923845140290547768655175211257718932563908900814192963248353970781577578091754262214551097436205685643473716222903612360543051034748418657796099234997118847140694156368644541712265880612365908744198907895101942209492680678750784577355286480303178084348556606956137603633577436715997708293116892277787059592064781050332738524597449030232364621820710797308283372183341216141445528651438884847937275844582540445923350547234681586573165912117560496223747224078510932832384090615155512345238798623759171599582555267175571529501753029853923993169575737774585683277856519643194034708375752893873773892398699267638860252786601856111236951892419058546232300772052160672116484709478383135925019725758448837517650739838301069990628985772379223210167996242258389221446452204452269916369208430476751945685987456269179381724279447515148458729590234772756412505141509084803635953025856008021382258812335867022342823122977982591541864630200437860669366166302478436641159339222414789620709049190000607744802495853930713856137313102832247215346600065979826517253985177447462236320448103402573636536962375865272751895668094628724569478723223898171552123114636572846038739354443629270142140091470528036463145395648580418940901639561927157019859860619708683603384439460999227574316335813870593962324040445644255181937140086871416381732128043862631361378278577798574083369443434591743609651237948285402078579561326821464013604892598796745604700633434022601461912946897989723509217040496073336564529034008717352974196516830259083911493042104993388984358490286263400226915641008810324870792553999127150658698269381096178162161829501852294629800481116721764015990913671184350597217613586543637456332195349341579499487613425055999857199926322439336044734975999671829363675109823464687775170869737053527762186736885096186579250715101835185546658133514507283282898809397687462892159026091062284341010893371191042241343163339808732383638159045780561344434659832571089660166698820982005760774348740368268181683761011547739772092205541352345335519705683982417228081227368936343345569017850398620923366112012118664327279695387579039184125614584657878613912157789337661127505678115255302124467962207033548579948024029559155194544002727821137494175069758519206269347104700907047840738225056008337582275276657735161171258511282446374024014733258451437220906528974119361240340791347416987608122006478513770524556186715404689033143197739274180317612964345678409726336339911415016121361152272442826529699875062025164932306968769994910855603401919490087950736378385234687581299669854500657414398515413902549552951414967164807113528376409559202131717176159758866803327452482209215094947896979166804661993324003120125223785555566836942255266271547832339344853806395269082198993681264965692530975547378145382108103539887904070556281770415139920768157146614838828760344404898759432892970637394637896820051362282800436560114388072638692599755436543417577716296356533913284470079263552643737135521405631889849827154800257448373035464306023886912564240556619494764109940327975644276693837073241607149763459624614330107629187962149217488867127468450632433459494878030848233828677800068025537960166890540946878698194669580281668840030321509080131747214389193182968485688888920445628346519148054491202466966210555276296380231021750700898617877972707655119681158785830893063856842973485460731893608359295572273467792152503976081242282040873835063602819475877779331681051109674064589760180337052389619872400640533320867927521975265450803277374019169597122261998805885253129192082138045134986038569070308786406003794220033100994503612883878512732606704917603362466202605277668130136871528507823505983706933801912636239724187114396327484429276595351935854440720595163912963888782873493345376033271102929009205320590077145994017328599539674963910434916959676504709099353411116959398081223490977058534857967700003867443066607160594101950447164798939937107826287389413618900728481546351288130404809379967785270352253634202632787029164719063524901633930078469782126506483303660057393921389126727945811975096352114924637030674726501695162916224940149512310511502671942097235479957958409086314511000390220516310700068345189263395232163608621264586067917610525340865513969145122201655925327980328600439747837090401448236515561200958320084730632447296042856829925592124383104279613547030908994365575166150033848906877419220830936946489578529728728320375067227873798733479544880658644750336577952362339901793427060423493804766102358505990381905383571969300011866164305314610004384144117354428907860046607575733681517868760118250805284497555378697703190361020463935060098330551501118896147371802430413023274840059567705814874682927845604475062991490407304510651233643446162069361309785131572879737458045400034097814615522123861246854628447118526268309842330675030649611531026702445336271203758017800525980245433921156763530572180955546077376194939035692907572815421667521613021530216125310872069910336428538915228105524348295192913627410949873042858129186163885960067656804685623926596807693667544728204993679021915667535515823993575334401891583398457107818048578738800589020814298034577475524306902633930295809987159943900195795016901292899218410680016387451107642867815719396079548953278439395881282190593240814625087308397902618246734605416865053284150323757684430250097067123021221344779336483282601811717987082274755982797493894334971203278490855149349777200658859940990440168464387142588978731576971051342498859663627654873018620673361690567301763119405216916725236415923306484438961361317664636201857279591523114665419972041723790394528193369394533769115897708195465223534140816192210800721689491700690276980530001064885325792936792983861904058277476565155835401302422196596659084066787718759963090293375112770224284814037592281880351321492440946220698953353480959454605514741368121642519638669089275498213275648728577064233840622008632080723778657425873316933100966288418176031982147784036844567192273422310137484083087724919302232703566015166100440183590903222566680803640297430587773244552969388728430499995208634347114309922833303083852003294052034094397906236744966831007209625251727144395456407310677379634029322489272708903086925696240360340687106040162506319689129553151983287025187761778234291401453328686396364684366190914112532368440081493894983735054207845700388756389401854461707227507585269305810744187143528057166175239522838780667271498515208250898947300571618006042469287393176258522741523510201734613278200122473298002034159569289587037079864455468216455403031363474808131209154477620033826605348503153386607952427986942115034641123702819043466147735558508419124633608238820602180305779299147543918463630617367237773512604198256662997465514248793411597492438127873631539622812585408057069133762696355568977907202628319989666273026220773011322193110956193325780609685033691742546997558215984915966985506881155922076355255135773775477193562786774526760683118556654261095699136480480714888199716598687485285465981526668749165515343971728391237750430101642614537561669516443463658942967803586717634282894018617541706082446244093458528097910357562670657625342879204812980664096470838583619480720892722105611711784158384387418326545652718091239105631993356259436771215209067645561673451519073259503202543564418671128833014127513706123708459732195741515437576954501899848457082811466448447308476492822794775579191901806217006198433623463091374826661584228511936131000848914525659915024930634783222088403724111556395776374624795970785715344777479020634674085069473735742360417077663702963256253554759481475604323583771404202322585971696106089332315752356999293993051304355689107079777421276388492807025018185455216451600338007367546608375889451802035517047957831141230161685700045038411335810402715997369484107121512469164709932272888221293676957857362481043595557631939371921459092457151734162113884104571577661348512548965067180828815903054042559386275526752304179990248509186750172668110307434079193775270187476478609157846049882993664773473436532369538529911958470508529440826951676677583569835474925030114016661251121934417515340908496267517897067438971724064453300478137305374783846912461115402755818561619320335616471809439798564979709995622037522313433610147525185976965586115760575596216661111633010283123831690643978443986172644943292368682595761463887394098762079594189537380431173838660489718613454965003026398102027394645728096656952439744930742604317423764689204639147593620148606840386211203936120233850973376914813310369996143017031607885163916149319682950573044476865536260996927660524170112890270185597592127623065050176739833451627611394579912125832229775234349514810377619201340443898549773959162618357711408635002659372560610016765867160303163395682565587860188874328810833570418008725493366346992040433299117879097665586495515436200961965165394481831733126325055605360724943341767351149376993297623599291045181778157465841122303999663621875960548137274587126674629901010442293672424039588990760064851136177710179688968084218087095636655743891192277240962667986034874965602266830293254544445265320479287121893336399041271017719272056500598028219534985171817248748871139982779962925672746824245707807540224658826106654666972119587678280392063078586219055709718404927216316609638262754486046194000870483252601559551720690057494740920900603753883572311646768119488452046668802713191324230515216899671261354349116256235187758005998034854382886339433109310385689298439670579113983045872873730712245548508693406034593382491757201814383124603704810090706182341421333679449679449447825805096029705540202995138039878431127770011787109139582313216965430009766764256379616605313552180474321992379712611477866721485165051433818291494290824784090341802709152747265105278805031720020888555766130596816454234826275902123237865550876385729601880194501507760063532198188017996943597861487087967370297646105896018083170452533432906939247508465281614500005059417534100499069894093232569211040613902379368761761262065760524390827211621247083184680324612359518753522889873229217594599232721792384342067131518773767325485568126406405250416627305144197147898158126559611069445111622685755328027567296531898523481072085191578371495447583301049644349752064149407144607699253932345699511539590591127633574865151984212113449804886204970716090082786758458475251772281187352734503934570354887016322168878885172337072049675419898932653582862248488733652503563338058452084266515926715468680979675638260340167865772364276116406469401742127760652370960695342071462158304886563825516189875371794043753684745925939935819783267550483827536204122937853754359648560368780084515956351114335540944892328364577795011388898587736788085039650948380713098789846083098915465470827052571285392069255534818980662206566022430835769916229886901066399221569228759899845291248154320166776874167274968915619705548552425468481841673377768143827628809091132193018991092859226234671156892426483204136526143516017024959104341788936266020888068842232976665006695538395538598429119686562362267620478549762824014979093051199810572222244667322680854443413992326352572523572331174842845943033849208515519126511717234765106981148442537545361141579081378651631874008378839260114776997490993882904497590915109235795224372477743320593716744463191102014969065052307908703434115216472015586601685134321905334551958588314163056575485555654230567227236030709296950707158638965988139558620243655055903560747064819399761799176373453810493079204346538199599892333380832709125344382210015246516019873346317236992572834670991173482758131837951471496631888282248174582700161240746963322484358557161562169056016961446838626341529696275064405303992064284399281240735425081948874256510697431529877902909322079466397311027148657115075483405610202588891926515842578030486877576155463264025890374472283509989175956718731998950905381865045775623589869899826033298935098323724156230317046301065174154206971813391447112440991524876838589062728083181534569155560783516381263662033203696805913348701580207335827780098104809435935417498740148003482900056605261079909022221875695144560991978370009070986397201344848261774180022397020137993038648460232338225576882225006372201123925458419730102666388290294744863929264033398606324520162773786206516382136168106606966944216883097275855981885396253196554819639345569632092587052868939001395045038037184762852769396787059378041269632392908758156062627063430552838684078414543432236697391299453726943419226534711581955505215145078989140347870174888719405559286301199404042491520169473985530348700342031896399430691772354901818446557669693064873185839080524608837364148706959075571928525364299425245876709073412165005014898357429949199726786869043704282115838289611962492193681138089309161164303411917627202049799298125051639827827988635838162824081266774596676652930705096808525484760822795204244573281643597869704971940585760177356854036279130589619018556943295207218684638410519376137111612837251186104009730174825178850830455726444796822357633743779668690999533495885096160194379383666071409249716169296324216184013663596975422727297736291843141007429207704856935609895814592279757042055639421828950660690947408846718113914654805510511617925058057834774708764789147979270164645642926791995630603786045255067490538456074263685543373294894193696858657464968469940962994271378566406317482457465765343678777064261074367038548622772797962367240832485401330094819273728064326331778314929924967715859227685979906872137061791741524958031060076386253210192083672442040214580938043507656617335979386598474094390892924950781892404671039502333763525785977456501498017825221647967973901060523120241991903660151770541146945506797842532241214558243018949169800427596063930563485763193673458941078622607258439663819899427420590085984324767690746512496749013334762126847202036140441561827673006560698974857935553346901716639471795387972911585909261773876716549330577292987826724017250681128821066335431213928995961053465764164748187001857813744754592209000072566667035025278766910712577526603373268842911007667949889864640129519061976743662300978537339490858874053480229823206082729392348475671297243347409423174605544229960398493889129499709343575021643229047775497446031761525212996952576107273293924356999468678971863714844613608498297367761159309725532633279051933423949718785437665280809581045127530751915571973619393297078731294337934458935323172416211228584020374935775595397979893141285875473323757002033010152396458989809450188328939309639926563295029604577390995175439386237714908219114241052312209813950997627834018050078389543578775926477656672858946198061765062077618320635410404341580247668205224981844718422190986435679009604540531071751992462915762357636288333399370029052692297211713944078677979310352305244508942258708372035013965050100521974853229558576476769445705760374605165388304348846080707526253754380499901795232409014672161439238080851929089280379566550543160553100476508337349632898928899482624266526717264301273659122775229804356056287057033473303570958736956758732418048399318591776802200483504010968070082635389227795625140861005775845409456621784285318747429835160072152422455987117041151377428180760836168361084184389800901465937392334890267637333434742698826750921109195989764790152607558581462945406508712728939070408631560915484858354100131144282138206625901291824415356858819473430576630511547127315640327366970750980082924077500273049113917589103355707087057929744304690648270352199939352046436826808816549165374763765167472914176907354317301878417041629543758831791209767070191377011428108374662662407522421613662443748133350708742123535394843677209209985581624238948309070779116263696242789330816282852121187828417650522761942416996341296364473045905408441917349761716048991329363241669965595740674624154715837078897094771689905592947833502255845787150823473289888778845428367134400858712043899282482614849630921730964431445353940370315755086997614998161958775803481287202618455303388619538288476162303569824257357756550156322657594151458304271347885198625384698602213319031788295983609869585818257722878720438096439208368155622813754838487886164318078753044313169234168403812885530138914494266799791246755342586797060756163431605012223154694090159958561022247104542672674113019445626251014010779068072026216902053149858233248815565970614037544604900707832938111320186934381671934703158101842100171505860790966745142618463621176186503341204125969944611173388278592640975133169217506768658788574797940093651844266617329778975570197957811192825900247642193979370562334562420917389678024339141294986179512337561196617632169592505053214759945805607721538432424850232132381598304164164267011921709031916750545208864229310545745859100849070909799563110666019540120263690280189218136400284989300784349751125245822856689968523963579796018338768695115770787332279657398335969847678742451796265917157649314645356821088082654998047243800988421950450459791407304078975733780522685095396582128324154137444515178415684531306473557299486877939056876937801829736644914406870672199726502527207182238346717141390450579161573078457502436145022424083177317690401288599423142174224615687133685150216543391653805759411898433693827058798833940690620437254560955409393338597437310790479130206986875955042724739464077668638476397819948153514627922784521320290747282384076714475973792348824066701057977156978200287961952354867744858569007873554844436271779944980694538590963797990060024393087144206891352472942103625274062647310870372710268604337604339750622947034153734982214479636048005523499710594927624455034148757350681774120006524522224906194770490888844519849680442333586328366214701577416674682405703817632709302074385881634953610995120212902635464412266112424496432697050734389607777950348870553522537276527005860939875274147376919679890414171276332189243307335388573222610933033465620837584691892388670021225638728763841268246703478328441056775991535569312468473190467535012152420851182743015866861491295061343533343000307009903979303447081527088362101233473156893175075529294772535197765740599621048396719061660526536881227035535667872348673241859113951492208857725161363965902469838116577787522049533095590570769305461107003061322872492667253903943858702542483108492926360422796315224724497535927299119555714490452477369044062288991634152438782156386697506132347622318993274926302451111442819046236822097334880426389217848110520530913402008591480198790233664879655492615335722740859169802792757593513381359545307104726176926329351008485194301636460815336678900808130514510180924206304247989695477172522924861999322014467811471708720295223001461297520665593878054973995082734896402464852923024979351003908749375421156300337854652543066623564081708567136974393811170628425285001385688717673868179320959239220782238151149525879750307575658526401992953433815019705996008932907615825204195558816621995647250818736377256305871231059371841118742014211281859341431793249007572351833862392201464294768190264261418415686900811360871801921856337353557732420102541903628390066005765919994901036009332870201358555209866482144555030801916906662475341220851515242981770026035173406972878558798927410544862395313090125009255729040543211765735679882124710661585172961956872935211005356299516456617682241277886488258116173537901551749716887859886311924095243532890105367544008861840640659691495170624261943950898845416351950699393127423484002511935061326761100991756621056475612745143428903690574860906411827871197985000757236576948260232061948285929925254792319158155277296844070933141043978368881754386126748335132499350195169299853284400174465918500897822241868071939314989321728660316402276245368144348779944291709841729438638098668663149701942913692608789401746336294069112054483358956865479240029650798051451877841947933448464849282763085614788326304132512820493947426516336730792050211976837841848722837832908039532658570110447403385475915560062580467046106630200252637920942489245763980635811096922788234159730211805652157791389695395192859724371475331856910673584068019859660802413938928931971008527798365268738663521459442193307661225950360040775644144985293730794433628345053273428200427429373474492739343237494564232528264612699417529743797182461933031366122991398922530897859606594110911866004005325980238749434110800861828804009649355323841562301783555915879567178659899631124926776346440954338269255272899232609775012920051660218338539621762880083173325513595337990721062836468883555346094529550821070648587296660692208361454008512122919310283403860331205306073035150924729551906408052914035921220705310963594248616202347800604604906720784511700760508383714908052523059539445167105842944028649050422209008520061232280720034278768886040592754629720805680553342587362043656630192837845959453385758524556325158783486454752901897737096367584174382991206965689130049027977558998878557083401536572819411891969423981809569558908060714013279883270750925263354309245605664497399542886474279776320627654986253331875865069323283386876010607806683252780270364544058592701478764559662207418883970594466224461805350941428703843038351891919315342109231353906288264206366192025603046133289289301335373776574017411026451087379107679772390093527130743071394200210266415814134368977606150566978645775287739977961632944649226322921478993147417960850172190472291262896307932186411226005537936793251657153028396064342563911690657108932445898676830261732692553835671582510925566561819770434940878058803351562391664305362155927792573894927212916155952524834427437695268148418587695665693731901106035232062983038026040909031976588174721712738199202148697204187567839377225580430763760268109123202201072363882280107262126964372539095816842603260695948532990650278209736493402620652100065906382232574279386595733278631433380527261282865901152187342252972261456039998914178502872518315172775711970148925229660732725490973190744833391028238676965592920493273351008634929675568236289411430791389471504075132803665725676295706435991948966601786322918648219073310283980801648533291765812355786323316498956890240814111352973037375390051784943177244793240290503236463721189353679281234752732365825584919931703299428782615951076832455399346225693202242721182429468171253187047790537743285910111672821623108059300272840817495324361556209870161728336034504681593577861098838771563248161007008660180969609985556779845657503611035098712746813094800487759935387656192741963357652412773742198492089107105068185016424547786883718109978416758441664293775430232262745795945916565770321026191992201834785220772898711034857555015950481604249571097999050424347156973102371952551676180222397563090843139925802946342642553696663111866283424285525582035995670137649048616541137491408283907117785154646505812358678244972946837688335489286098569965765918783599272726611242938820755989097052844814848666468460788347164775843438004512733338453890838534922864478250527011813951161820623296124795357827621607412348629022386953401403222500724538090999992343154240596238513996432250328431789270639324752344113927945914149251885903386163584160218812794149152455526698393677994517055853464289707845337548543605323494334275837633615411675573522334176592664275541087373470194514882766730666567325129573119067042161704379331094028653812279275941883784211147640957122005803648927763470529023624406586770870173219174437337893132023294982113939797273397272464258540513326835486731218667521528215661507522725894486693418190145686036522552997301944945551925628098304104682811076342057278400461746756195944686485904056777357535097860352835871658974740926624654140995517928124007085528616517779632236270703588211138853189790439861195745149051864256147352691810696434228655524121719303645230573610499451927848064829136347073440204864065341757409497430403565079099984636519231830617969258533624414697878942111430672009736917291816201675788892048457502513835952300628400228776663804719736380061565616763311389842644654798851561976200548641690658188161217100833762278064610597465387652841257707404797232974825065001263770691091442496957991596907196125055113090116941259733884360534041286878840752852158648728630016508341042626978494466130723588310627670288764894562678641799155160837442574640975676446126339997787384614695522523972373695715914797911666876303337960635099184315593835476435870413014973149069046457076261929444710937186817393780970979981327050715833754947092511165486131073663418355297931564715741815211616611633375658004790411654759658995547483881653781544189556401871540702813783822257973719442747704574499373056770987268040066033008013773581260509550249064638232124492832517486436100183936313869531484248880664160062749626675600489846307635964490605395040221413896955099078123720106313988301943469295812202198570970733418715850610269583741848738327446122470309140914154933948122455166225484320255092215146561375327533039223110653919634641967741793489232847582696749127551163030404888270469235010397990922547071464518320383149626644947442424034428146246795592319095121357954572834044939878545107200961939294018553867313542007479617357658111859735080406775787832139810579043010574635303410537646382614930385555651898183899206401552871503353123055573934997599547814260367901492085107880039873649855259164336799481211267619561517184431660770120402603226702441657883833389419131780570339645378554293832129591701091963151502514401008093444145941663770760418546700775194290997320747661529386366557783159829190862462643553430190495241251878450453965443119164320554164504676421421034161287940740150246752394349909583236597080970846916095434376963742838682147514751572928612127020274995493522774186597971971755770470203111155725375823310020712883202412003929928994884221031762061609146228207664386788953422849018614888189348528126947836952432500359364583446145957612160977777510152716585909163562512480866921814381287573109473683777170289555058059247900293286385510331628264744004038023806781022742826634535331389128365226494446268796135656286064938389148997493443440728614931917132029773507970826415466700130766543288193879957602570649885846251475052859862638009203956896037669767735910494714880651906514632902972920523137804470649656513859012537380150958252241035867668099972081416472065990848963508934144510974530530001194428024876452831096890809345511417546857666266574240049488330361413029576075779234500146635352790537221115164799728357625027019535280350458949416787584334418953945397197270790896434110328150631528196530353758998008099525831833744897141516049862321978979784149785707044325283722500161161067170873490398894444195496933482530058823117159515495254408414015826030165612797356106981403530748277179863477368624235256367802049692337547866603265218009052825325124029364736556351873110423620004876856522385680944038292191152575640648204997845513218523081946070099375351677936958879555011024057583258939673085250847147363143905470678275093639815380988857758372114980400230590065230250392733409681947964486926981875630791085845253586117989830939734359726414336413740456357908822258723962697136304579231114126599527049330932500798163072894252403227770108164004913205664309524161735903945203188821769826459489139550594736630885155703554299436751800456343799863215355587161717316965329370758212146770812931681965175216578895657687175249186135228497357265836176559190878268335840446345379361807649856151658949074085264442828253385398980461504733721961179228117361162726400170844636253631876388854868209400440628819388129329362297725967122225096736016857068840258103336361602685470985597073798944872461239162490483280960394183276797091626076763735748605583624235456637402385944552310427560015772252463771113602426254215273800264496386659739178723800956332547543514696991082507074885399687275795143628597366194229852895785247985833088238402254932665085649852288080119135225076159927829858819347194621692185954714589802611539803484577244005089991895181853126241292307560322380639509421964470911033121813497920465020288939495081207610550481955233110129696055358690831749142532001754228828972967789215646028874008637696355001929757863301325049355514598631840479612899316443971430296676087279621760916287512791736685447392773193295415325825744798875658839537632279150823852114530598433748754481094600095145591657291461596729541151359004871389623827078752336771184114659876690010032130996834599144433494601621979306332825429993790447909904293807655452424955240122939295180226856497131906406093730420958154882001962080042888138860333074198712187194067151080167303218643256934208753181547385701130039368628056473453597356520264935152635753903387725670129440000043224337668846104558447828667208475190645500107090366023890302735034826868127679558116715287972364420233397545284255310076540373073281552074973092170646517021651448440200771864492217002447898952907974694547123895112284241325560699173882328422724074781982360844951365136384380602297941815028360313859341695771278595348300940744596049588618698962196216992697474316752681674622563826159371892659621148785412942194084917181091427000102754346438021524237957944745220046917501704369672607375548875976806464130414541045886809918066135909650858609114485519287670785515680915296973977127409068623299469328122638791501742835125718803426400587192368749148772758304963236875245267572186632948403766047544753372167694527555829050918604218859690868960927964005536219441847028938334244700699082354836786999563599121389734289952195185528106850239872437219562497661109414546353493216286575750961629772599335803068573717533811892220801396045938283771390221696399828692151149514251470223057256613879855354673775001044593661745158465692840999626558693785752225954484734472243939467824141473415860037372461851539756087782931871863409316991694651708381226086774090265572969948240536022776366856442517861627268068405703173394948837603364066302486912994031413608012163971015210350299436136224774105446386794316294188598626468844331520555402309480098018254462003211828893957260407541624437762486323029924602044093532837755382111985714720888012997174272980638041635179502392701856221846612534425038725094602464402188089057358400552791152854436056868239301370295756356371153606602209153606532727608105839863353081244600842253949955366583626722270062922715299411201055011669346517622318578516011430276176746055266407393752579219088231118529566758833828931841510087378967643744934694791892918716315354036272040753769573049906273493640127105964418239750353162193148066129984380417656090613888911027064229240131626915903899320737183851271782130418979253366716244125357731821745028526617450547529482897149687045637217472763356241179735000807580404061122621146426027026143836716550967612949699776799055788256673488253432451525609619411531039322726171061285241317419589384520524622305147744094077342222947881498935525220628237770494422904491833754321991367720481298731920282641729398818509613449221553588237649498382663774389350690134661746000456807884932789850660862376498736755222572448784743705874988288610855647299216903022610871086773463882974270788551640811913809890132887036530731284286808508505847285795545875041865531180420326943465558173407833824187020637097119862558915043420987165843955658425043418119889150345175667273660329961040180389460232874234103158918047335286434169449524611025380453290777905469768827294058125066154382965940603910353493964933507852510317265687452787368407653764014843296396428888627712673922389503048751432595404372945965197268117701839960347179283224852866082173544258221363801418096371858582663323583202897537804939301204329895221701520640622043609222240711896153618541203699048390352118270584692436109008444982589258478078402940358052744601066235124317127956735040933200760900464226763336853535361804881003197563309016007138036466552710448967602027303937170017143873704324345015407439185207324047887051038953004239811753408938666438263172594767955705092276267769357561044713006056727629669640766609778578698959842520565745078189158619161583728386161874002992804801031517952489767175685977584339941452978993910810297235097706880518836498614209707081436420677394379591756203623329634379081149801688638051710959196991367822912528195538886481407792859550722276787867543005444547528932255481477694439550722889910528633180299727093837037452164629267460732814543421992517882871945486220327855823632715903958273705605769876096309378757080553226326941021136653365264162364249166141274890725629268656405833417779400864957173675954737452252802443684944395375023805723784081223942785577154863840225718970853993895989256509897136062430181342696579008602574860840672127208493067210048421183642026723329784361258468054560412202212538855701389669345184347365019491119820008304917642407520142892947504495489833277041443479256687575363441667485178343011995129184986324254128258056882709977188995711543573711816227925828139846099504404372362201686320089968250092191448855145869292651757949179941618719007903175563491317325798231420593774339256729775750215386620843793849028248720627863137555868554491356738429190564878274554091229666021210240937444561263138431408501560783402781269368034125990355377409881607018660875464075418293755178169026202965929449936820336707096105529957202168986269348645029163880631590804159596932988855479703034471832033283005078351982896452839045252818476075371917131713125919620937217157041751591399476086321451098494285614432878696269192510329007988127958750024742253556404081430170453107513332260383128059136209779680358236237444504973360528157949330114921960151167563748630882111238582870173369258680314863284755191412319678239430308316645589240107208897472059713228840461998546694319831739170645807441502754592531950552664438782206816508559145791696882973220850310395774046412373784222174588749236890954633016540856521319883288992941910476659147111562456166608562669978106770248347933231720723756463717003025389200575660843874590156118361766731095892883138719090703289440449000074504742639082396433225897748918997099052989184225508169971224419906024294948584432528756541893506213956993004093496521163400586298806419681906312406687933559197869707404975788606319579748722710909555278444516473105045190401247536784229626255013836451161709722921395115221869461681683297350509705417180638263887254318304203619901444947085271124300403713101852128592311547702268733114471317420012148643846352564742923107008801451890719051499041445124148245742875151206468831187925763900286197950974324123358920016095664074610752309720103082159261748896394344477162228897876019955457554078566060813753264883190888799966133837841772739010585306960956838976915737004893225354515302432895442175708944450314546088083203855881673868079375777724325294792932345552156708603723939876688253967127131140134264794747866379207055690924271195332268386620059680116359276436702769612869439695822781563573599001613263824572035772952762895687604787291650880735269869219366620383626057150378221359891891495604602564645965339196068131246334418260667226490037236838705391239115310043587036079760713751581496418855801202069282202101310962324002050490591403185214732926370536697192334203490355112971420348075357892576784402292143129687571620836766245139451473127262492992600255967842372451207243599821144027957184943974621599929472255537937119443737233927907357302354272080625438792665687714112441242108174652557557899051557048082105275248161349652169898379723052839059494590593597485534322852418527620875577652237537941712331611153103935342943616356586234708233767050892909876008192934663670954394404538009192177558717107579445234933620998721680699777097977413398356810137592572831856750756717775877894818530310294713397771048835594902955355298819225819546540630733246557231369633314255644469131386492592088762325714367857182592664959013571760157665803751748007758946129980548273485694682472612539000839030252702293832772643295919071271910122758705912733633913085901878971487041670321936994527921605052266230913619818788969313758019774539039241180106856315898560367418575012684013188166356750979325021881727613466468123390602764332011317708306009421367333926935567042170751372526662798993144288001780764169686564215753659463929734726170992832612623816947852698487558395112390409883640264563159122501786505156917830388106937058536805796710602807170155373729755945642867593778308158068993884662635146590777530747997143696979405293002544123364318704243779618370746531402158503729370985504416420404105428483349546311808274331395109117215337862980683909049948120376774494101173720598580833254733219239104625284958941974593101175321820244273023986302864988108273284991261979430410343564841205086297353777072943697840076034726269188165575008859431000505702057179764006837575216744231133137064624874021283741711117067619129104193294790612115297058174423554770446954539273839484391213470063070934388432902169289407418053300220923760609866327284693036259677678482352283317029450610420873437719903916126913229953265613449912503912630435528211546072487465734762038314576326143258800935582222693573319040196965516704515736627206316172048215127048249968059363137503502610892741196045593464853110478847060926853507657508668384272266835248426753995539210543777493498541865447376768552960457030659996162383902619566652935540012406861404847052064651623509677412452839574735216897007035822272998947641118514958795856453322315489519596399559082186414178121205489724397155323611963287663496725420542741796635025674340363401602400278998904659969861819581628811658564757469296570151093108627493541587317128855478306258282141466898625918005249616796287958321568591340020761203963441464508929079988895339017613361044918176918576366078426359931815935019978649585823795983523698976357039879905478706649207757486732414419753904383348700907470246725881317180313433294438646808568828167630109917556702601020965113155304183482046702063942039707949868325171376043169734681854513976841620198054787876634981603856111630746650307066358635934348541292441731993341664326167607457592180072097377514645303233428138350443664132600473070648119331814032588977069435838895366414772724737704450766646374812401823811331501311886320965084295600459038616913770227688593344513364848445550056055535201289775381374481593775255959865441149778617389437432154540649218576044923239241208771191685505767371028074238887020879894469651539346518681412251680565811249745439721049567069206479063408400537772238495270079308166844252646823094519359687357642120726464509411159853529458066772465146922702845081955059520273753889209182503642322439223451967414524939479971499509178211791295993289416358644931752590016946397397360088807250767958067274654196788687092586989099279503630483778697436112372387572713466474698714287442692981432827289302537971158035613339608712805397775110565360181258579797306467970488937327544417419988040509962270315906380747882829182028842099494917034810018029778014391815963681040774577812697672957303315890975172278137727705582510146094335025505430069042634452224173626173061634993719138118152336611795434734546068396749451305919700661138986112028195301772061795487210493400549040410315919434169144978324181299249230573261844704413998735552748185902356664774880187765905212659311805675693133896022420059610008892153257629822054062617892653482968483489897666887578266454068814172064995139920708785726327437656501418013044895522223149421327977877041571054998039492741331694174338845299758963761630199673765813622279881361057324719664902758056011697052345502216944755405254467846889538464981497861886074791939192364737444950742803872497781524212074146560690941619033098712033494878581902157152271260303141174506359641433168452973726558733875477838999648144371118939856335189217709824804067364209584385789073942171760724875956790288233121518818836907286126087572386139089468716655883945387341314039153137010874216131656613569348326703252622988221312798092581423219217138683960451974661368196385076731923944234389114034458967058261006009822549188976719738148321149701973085685654051849565078522787945271344132472011734454060982098836065333950189545082088200143280807446224968489376694423355384305835189580544458773700883077958382897937663406534552843716627148858097439675457527382421725583970331790366827040282182625974435299898892683281723119748859912675251493883792045540458079841001764594801521421668904822944976608653565243415661570348388192659175338405493945292739646559892128412417055639112816368810119088291758207556990862251786648112876888554519580075477467590058336872744879899358439651134750941361156609627824909007705924159786141107921951784868271352633447640490591255313379294723609394950922165794267313719340728934032299130977563434731129302461936906131201286242139525286207851101766089486028442610527503748246658563104799032467379507278226467752531291723660197265855984390984594645289114014971783001937920133158829452736218015136619273650860193203137355367644890985737344027540455330180842999421049947541152214489936513584068524419254240194706804006982271148104570831977311954212852131950809806090897340046877879734257982274196422220896400888423609850810813183139232992227115218481344276883084771346647855305189925280117392701575915455179172168862791577598615537036124865727885757030541226770562113014472606179328547061483286287245119203211392390264794492098876090381761960119345084873192789247663988595568119920138654419080958974012767562420291850845664352693998124939828597819646737771566833829326901005299870327494484731773479189975683830555982228010999155373835887656922251477270409578044956052108221350871038363763546643114728956262461372218362854456957007523576899217319143507350628114642513845308088053307829737800099970979345766607903202503835917125418633481860047782427854426614052368539336035037860540037692069287345171873832720302870795250112159930951861538505766679064538385469036687398001316541097290051374100296831859474570586615921224504153712646376157028463302263098070279907159326073619288313656283605185668829271659378322342318479681716370146115703346561260110307415909996662682495514209100693510559797861840786080694344723976139447027296045756966659538436867721132878172540837858981699846807641208241667090829867265392072711985039163303084125807138937957973688516229078536847985531449315275958970509798298365420069930241191417560471987519858527548012714305067227972859923861740359865644951311837006160070079039267666647006888650205645319179325215581700507593774133133624609015253069156469090403855458635180070939845639493076198533042487064220763313063485388705395891181644585447724926124982766642031039208121388148640422001246248065557720109633288471511038142837311200786004155288159610515951856957838323980374929484556447559858688157972954399505355874613279258250504797019606449003267178186795605718023961579341300570000440797291293096256920637081353216671664795791284606412079268018962823252810653531582218913516858568257558792260195191697433596854843581058544193231585718356889457076822157083006192490232932105007103641919441093921643126419360453204321052726157029443056262833519706802577160533437423157549125558987247620273427827063589534359533725729463118655632579127154729960277562707045293880784180199499387645387231782416928574570681174435089497348607645503354290865225864368882792536661633745124008812623363768588136829648198114965403287132785016453761525341514898409723046792566617082144882983990891314495353833105433245934446253864786674015839170298309953714708191293252932686526616179266609156038717500425722225756733807429808732651773139574428652395162618277964610757360283588833162096865989199276040911147002842212453077801851765828603032907247969578947820142115941742493533080357438101230212168685334239538708169350455222312818210741006095431811962407120615989004866289832563611581289603949020815752236966997881679037531187265387983940562609908403135558805307705869593757756473518922119123775607754883085535968484913568841026318560086151899721352690525864991918891257463999324868920293748533697996638474657846337823946508239688623042411070255222237501625794411092214837673214953209094309327006980802095879496354275121343344109192499553573016520522692854336997180256621709339663553129634602008436896291436078909090114614155621126648920210411172214998010157047962339815427246271074818011891135736474961273379180773466717861508311868683224521072939480940335130092276482925410911812109478011420740208019028715432884269886163088732625975191553694001309836601541857682362523000470265478186090177413683716105572336955874695006293287342015129400634372660314331295093321669659592502495082390767556650333873943048547877986992512942341810160549618445282474331189069188789007381459029311951335340814540827602157164926871468111277011648732095401503044679993001811941010906960902455236076996496285090951300922969001095321006710530243370159813898898126523526836912231200641631066708727153078678267722247628299366802145010042623367607324834866590324856002565457034557746829061919258929163903641464175530314510768018347614320394612784099946960394674699330006736195747603877088134302768049954812866534335670267167509341510409389696350325563563340792500933421391261281076552124567834050949121831609377678597247787190604653670297686833655473107695054729438998506569394054351349168238394883807819604000449093475563401401411530492590630090759400553065517725112752061945829375106662227552350621718948459056924192888038185031708437398480746006929781965394320153932538063261173597391898078640837858213411670215869033699800675977217751149105933698972710015287555935037313078343195153077295402243280164716492280031064970491167879364361825004497092469206680755119086697597583530971340221897347493430380449103702317474304877158925596700034213441429280102655785273581813052562170306699326191891688587892595976062327891230386257317762341363538302591586210484981352298992507748014244136285145559607351712169968629904544076203679523050706715374648352707908400333031146678432274930572783799823637577626844723052306633258164298883925663198371106584757375899298330727253074802189681551760689974619719060062087236518888640720518246662272044368831069582718050666279006989717115905389472790478327261277805746355820216008340847560956199166195364932650788310379686295904361798030097441353284948339820705401027069935537779027486090502128131751552355130412170266379134754660621288711246741292946668545721495704084372629521247581082084931743400779615070989900125850059929656302344349050541639629060931693207114165178559722397073080813283972479021732313732053320276978717419061997426019026831692153636094240665173373838566228614571027583230331500972433878112005297505043533264176652781061430396980604137385688680630178487869347818887017031737283737377383167663766857138056859300017347886459016866150528356878561941747108859109567315472333292186336385354728247705592342948373582859099067762736645429445696791019288449804842207055001163274861851039345282863381277961570364862512171373279542761193495680293752704076007344155983069076085880336067191768820419001863113929027592852773319761356216450950612405938205646660736449153994567949535831400431059056459346530122059112074149169444621457323272583639327124558172289885225845041866137480220698578190904709352965394243101483177833360505401204195175430059328592122803883198991454730830039275178109639747903931844766319363593854757872398107297260356403624640988793464194311395018744494534036925097810046767489718543152279620708335315636207142965765537061974267798224190097478653355895303900518860929795418578223118974989558524752524921907007520156236287378184255845910547921999602334868549494036916260078669232434115845849875727917477846447381740506709696614309904677419027721236341205197153758652133707640819128293462274280078182920352364850057330453143526941912637965568890141288533770427475048113539033534868647733389957494063122211017518872154850518857951746486586101538469821313023960525427490801740287052153201008982114419579073295544083491774408294136994742662240120128572528561977875592094571026115623538540621573522702336226002651344311289448638024631667245956650361811538028398689607436329732415783475440709069579483128160106390320267863267733811936983081354813007923131408098565694136049588660681748348094772874885821740315806159794251175289684858130625414748241847410359579354247932209830984560964790067357258306197545670150726772937929838744348326597375196179412347683699459504697576302894936993369760715458136528426077393009734993743231017856291014200349587560826532856152195572750569480587682789893615654761415749006321743007207846560906016299052064305130109682605116229823087487980038157896622729980228066910326089115223783510617600763255064213731706679459954050542298831505008092607118556646967595208465378173323346330620634008305086969682475295583195919595477427627866866030133780962858230894801909339392559094232781340289229844644325906104022075502894479715115752575222783475418675867353699214303215761540509989227796031540978709204330319978457377610810349740204607558482709503581881475235279772280864781435124273773037836284482106298046632592453314126054534270037970327961329578105227043446878486979076869581658206857225156687446976031000090193291722954908340902279301940814697555754279955458848038119333523013358119353260512116580866674471284219426244292275973967706641703271165013227267637648756474383174694256062972666902557811530771356427581724583882869421796613220110015890160441364320005671462818572112006297899131608489275087751798817223031529389424391603536816253628861249436078508923130011789056716750444059269748409866178035273645472857323276672648245135369705661992016143779505069484721640323446839627966778143489397227376111070962718227632752261387979150637822043024005207892620984853539467367749168717563243349228573141912957879440413494996104104492056525362537607410242680107170103680882501394103925284272428317986196110941138554957779612347199888798986345693901672544753737078697667775248712178249105450803245232913292780694714588908881109614974135429750820422280389202600274308209474873424809940556339693072380245177935889861800599660719364975458874571020397091887958897682253489462541812307435383399802684897481025263705937774369098974583125790990609145974914489540786621476138162181876211562844413922637619745377356170768065685545963153049085828167344384036486043421725776903055004457521062839603991529583177267208613025168947659387485526295897452875290927529860724039358053024179864787636252167920514853662705302953280605279780859473171302641336749239724547546981104437131715909773084413976409338047719263986740549822551994231104494341867530506484803602337815203079948644102245441894614569457764999530526649883667086835248183851693894753186653839701598511883015739801338438227650563287264249910425976813725586218412173091913412866544476342207721888983067889808628096052823691830110617801520591401198598563057913172555964257521921357042765479353741790754446875680024478554233596893511681000729541365419842584677699247777672893290419841067618743033701151041463575542633314573597552141331288823015132036385993839709339862956299922125972471280837717365060400417365875261796407658149115765772369328840594421945899884057287025075016429153830035078327437386234088733174705908551668950369081310649653825234553302532261054998275867961859271643026719523156453263918624146064008636184604011678250449183564321272636891039252587280529188835675497872184801942330039044588977664054875446156022102674969410992431248760739533117111442731833165438957034227683834847181318649604623068570098218112766581663810548108281277935363241841172433467749830392797680435539573583381999521788828904188233909995893363785846022062646713702095076272329417303641547278296557197101460436965274663516441610642419585526817036976027778224340403132154754503710156570558807880132325891911584115193185790612390062786419148857143707990574247283820742114539054041981291942103625760377422764587056574484663352836132281981993836368540051496826900337687667752343679846531705358171712732581347152086811256567997891455821676493316686527584335533510019348057683128415611092876767590954988909816610487938955470307941225370110978751281252738070754015412123605001488994921149739227031035139518824067715154505158227123841295411036488333881818598726316199848079814554723057579253621893314348475950568538845474030566311304705886856706866606893249731519081569229082900614443817529263195329600478103424959992095284898628949556986348232507848286893716334019011956745567418047824825038728803369283145359076180856561465101475954855982378057063542517528509616612985130669155476398624062343044635718434793054263139036317507956281157963304765564649916185762196976524063073518143706156969053408124006943718073161866470199520975406631499077393473988161119923356171500129687210292402827244506115597471461128918680188720755696864384389239690883512598103674187293995318480297845361646134987250664854269437099592489366695690255599618471612329693480185074416603360968393806342913136818149722259077253940194946339797733582661628750011616917972467536275701332577207786562574932080508960467814592783288253660214908381132283647631360150431946618201950530815745346746562452562706140960634661337346783554660795232040522135235885720552269349184056884602675018646174901970337157541709373898653978364303138621749782788733400047933816833934856456288596301239984571095644156899582575335710804886792485746798693390958738483731861462955691035586557951796755860866378744028204226107415821485990039032340061566339041283277014265812098379272299990812011646180178690397160909176022165872800761669674768483909734252832019068960442722116581817667525047635897331506348750147861237890334621484016927344404801585762047131636859019232058706731215103255426488400743831631542202692122999692087530994612688342269503695856848416898292739946813644645739455552857358050793507480248557293861871809948034570474792366280664461856262092718602755126484818555882667000759976761725526256509834384847564427419670686540068221232968288300568352606628844906051203235176548142768877207596098159032465572956121269263589301713686904627438403067858614891410194872122845868478347431899258126427312149331079138880584719672521802375165666811043086304215617450562771764840528210676432324718637424660237551534722643500228561572295532607378142766251346251085602585853572482272377589861050732680974055523721297391062757272755892304768174275738953894668574735884720113392845646446425065141428673015965661480288028007139983210932250835309593040705251194089226340595066380463714135379962327399933750452917107576490028929145381046469435611385028130967886317541976678748854826329025750066964579463398889773196273407374299386134744038957976291809133605389897161607364758944541931581594397613293910924859256602720438864004397396471465925063646639704594368459799364316951003084138356242441525328050514761282443469952212555623903428082901848434023966561807541378170085675844159341947627744732701108365099820908813435209975775033030952306312625870942212478171145176337528251202744045590605013535876292948716969388239081618120221083329330612771647206376585505249304469473628928886439124761706334057253791486350308800509530962094324399279465042228633587906688508142596602353152226081771871448968086796290258087159826344356478995594159838326314869892552742163895752663234818237867048074317926907823564916350243160177562293532048068899188324984438462658683739725614345659581771940999508797315260661750568040066778295226946076192350313736247408562401713324852120669840020810207488154409507076418741519953513188508013057092712262170030072771700738520090551676358315197842310604393510797753803969400436231937781949488137251199345769353531293893928189575063377103122173679805620885839414858841060002511439189831643839565068654125714190421149812922570855495691088703324813789725604720886668776259454484704653626721547180465375004785117895725872915397550960942960961871646850557873505697616599389000292377739498976227024008347961600258583551518815789145110530015513568794178925468390906428347624680968932552897000241296670053467644034824429486008828189344096547932066030404570445305760075120081624649544481305405738699329995267387736044645774351215436608440509499328385572112579751000506716992372963807710519201065721028390894734458035285155850011853048495200671149514945317501757841221186785300173121456418533919171098977079240910860766499836960955576212238094526380188675506771263213507522449668190505380525795814800934028609673030644872894606780708917267839142294703130508842164387527801129568122931724664337509639883705336559385763073626972085336769614490101900228352814398126510251070626146599024319847855567160693966732449484246174291442729172544376198051218786227416716681269708006126267495475807757284771219603787310438238497331683178502118986633555099053006092514588453338248198658493983487216770546317960657711048539677295548772483685142511547320454267092105281311075018426224519018754684841723331090895927327051063459128656288507506587792935275281385158272364353243497369004278277250320997080426519623328436619749419879797204192046325982728369099685908229083738008272891723594948192226532502898827208285987639705837013440239511490667395451009172995676801735871416507721585606729347264498278816753306516028726328295150539351242343372427965954016202721275490072499571463217178877575895956712142618103261982089384742327801378652992710025368901052428276358724454264041862732062376314074095889732583950224031931632508559329872857154227809865896794767772033004326181593954790799662899174296807011308883650778025288936111192809200903743019541109131882249846776078056645864309239028566650432865951934178676993527054789589741732687928586648283860178191652865603696626983398353023069500421713314872738417115450690264470068779989589786204391873849646271111000561108961950171008870340953259706338529359508872314700601312993292484774735087310086282627863986292794351745382564012809729310682299823687965677895781059558296038421265405108591951630055706119583343799118058709864421920899819995717238317542223705041896399835845535608662243124953976287656529368840141429603257687105172801536213086275202907443964144429044048310073640547722872467733593302584541157346727075457288040529107835236665039335772813039234436112212896267558985215154534143553537783134583482102263828356985102957233645585252485570714074295198423881015953513696488296050651844231656515716299918105880983175474125684393268633810188540371229491825179160480840793723819477369562585281890188024739999876197757937807503288786590382411692159948978571118953745705262170589320442499220714097588449924591135355977246149122844283866363512572134550474460492845483675978591805999671308405482685779832123286506343779453841764285277046070886548011710608723644042366462006398522213589221392292909498802549666370524830181964682029447519340958913473958903989960429695308904336247114893886508684174421772548015142013955525921582414340179475812699548616943701937624085832890631980229754308156176232715287330932923986862523675164411395792845193730728973328867454992312244505753647162234005400005070864592479909737575056581122513426734533562634778274830696843955906712832884495077019453485343374136699348154361616041507717899516872842167509678249242494158013480646001738459343543717755235776061028895208501256125892284996183530538946583344359289416639533394862619119323070999438448888030601569841666110592939052289555580383310784441556863965912648790589307957388523614433821742066759465981731769247511511606341442118852588978112778080599038996806756144221682087005014486168842289755235016403505593474385425134080302677503385224013585752443426559876033701478051265523449908387133266387540588912932404178916392329409435937036169467928307124497537070066364733944033297878451925892364122695882176158834143377497215635570930497695973489587113777687225009148893574694916597715324701646087564801788066806628381775894195442941172848576686969081616292339728249291652847744021726992167575578329226176010338149807652557330486672999375115513818780065061151906578324270366609231924695692342225822251131120821822726672539201759824588142100447171323797135610146004133014800247900678065540347937152015269687910075145987899303930402678782807545976473723322103329884074314851758850649735751835608168105003709008133579561534537873835182388312494035090917280040519454664979781890366470278341133254640918644901189248627172293495099944420500788973641254892382096406229545724207980684045343167375738598925166224985010732507143331134634589651754601242523917996469734352886011601090584031825380601243990333792833059793680614403880028500452889632203763837457964078664978218171391844795424064314889984767879148701438916371216593164241477370403808814273256234056161516713869439970878926034803116242331129890353549982430022500205977066208575847370619708786310416406884043161676928808135039834925146419800297655060265104288780978807581782082084048944511390003455314247521935216748970482388255490131702864784891697483122254636964753806749435582951656736377561796180679900861425639444613971998068871821494213683788866657038682819570572462663053533886899361245650000034768593002035746625895850309108076568638323341525062585345076909991398663403088229796055307712343998527565099275347809187838714325927534119290182288887201288273936747171605140284606092954991681840843323588131704900977574863463140192278546777218638049062668994260575164403647669613085057001074980645147878868495136526273658621776799667190046996829809478750887154907374478026908018919266390735270922190351439711676829267898629028908413570940286862113068846399896026974504411768433593382184415976611483322603874869741733300077008218816601398362482899948925223644919935668378430050238496815381831790998384911782283892406101118008974779886039359479130036769344191962615832910483814676117468955046636525007095244421208456011216903375449055709109754481314010032010576650010695080198483807770734407952678330589589968375738593478430698899219564663873275148734380260261644661417123834446367641934440189034552314373463232434605732994099451109465487101831491148950192602963475708807360820038864402734334554085506723865442336925921333184164326881348001099555496954907131711759192466225115575131718508225260150671843016990610594191303667425441124395365689526709915731411458921102846433083997196689712222946714217423618506813226199534451356815857574990921939134935216172057338337842462855783297963440171639159732225775388251358998195939820357847116078800280142945376229564859833507260278686955800467619694442327964239542485843084344955491942065661805385729245739482169047363358317068795947992489487085870090200753163790886448106365863984567521113253752332816624485550879051570460040192590419308727757496724280192784643821361496580679196339354332489532357761817534942671939960576412154706685936539129135996918960008678580135745646584078752145607949113458151005895535355556562552399127022680692475969144940251045322156308669968940149593237499050955291008305022394881293481168736768643404313992161792820124645544440689561663105601143204896841230506080225400460588725715794404164339812969058489410192516282455555713599166434723828097482687243906208194163104590048335097320969680858279695241847742329872072870325120647579865706030463390071442800610866150944833751752711269385554905912292463871169098454177092623235110466291503510216455356752684068929516752074638378696853317287340864224912027177486211087253509225208668240215219746127110288581505304078367109956176358839351649624141808226381898664168087956520688491876639539649973983093758322560988558816619753747429834795382238445170758412971270750867103994356379483316781030658032781051716591475008491575925022993928087375453585064226648867385386643252540908075245755757953987870203479265609995198640082193890156700846888057810122368194903705698060967302705423510404090341114539480556179171382815354136909906155698946213317698401637066666052101199705950737212364136955274891550394751883084183848259751877877626241903409466928002226568924189259289582331486251859766450424864781727809339618289222905806179912191036906175496017366077026331539168379994642916136683390884696083321951779161773956070806565316754458589098237103771096718540181140873244418898635599811819068634663199861702491413178073247462817574062893793546144260623991457813238883915178313720268710639024408197055894133341109170785974300438584713475849081889194474096606934612975738205762739153686898733480870556987747364014069921241764768254404745262685433173949411787629752857806507607406757330101074004965946380563976830159637884719088800345169912078491485636907522167835352643841831278705910781892142796921147991556200536416950265118943577099243994623166941355250926006896234215909810278952911444700528138860972046900161113119300549581382300863176323199850107386294515528892009936585062711792891733704559958455920431052174637426704415242553774109581969885368074391451526223447831692559177205947798009299296331264085530755430395616862613925292365504409075690371000955384104079505476065729393798714216298939264062968769465741432673021482336361568935835168498875695871427440950489935233049735662436063839156584282130599847244961279203230178841902559575106479464999623372981128814781378799565673282222387518802917923013699618832324925527868322336068217765081175660143315312187588298935657850427772672171137912635336511605232454655493366478958171403685164995478549734163041875908762361826142731158285479625604798371660640745413255721881134551412656012206715134675699427633708297565509780993200505719538144618625697920292688036374367180288050015228095338955294084788145833942039916959184633966927603176397429412533795245015038508657128256581926893842913590459028281682808552800835428480730073120368555889942937138972223731550531737789418925344002847509930888876989998449085643518858379664637940901682374945817685601142378379297323029985212397293380925615070914259942102730409328913506878498832572382963653460786854835233069082087068276963186518846755316868873250641044213902427861638672102908084840871339886350699454714089215752680305312858006592378113514420873920780595297131067515600960919293105533209325770591925143932784923733791657397383564076999354247170260203027867289398313119908072953411554500940633184850729957120554519066766820226949941022996588154867209885862151928086676162775917204378965401111489805387535056438837024810252397257730449377313729122950811729280666580841492664484176764672646140422890746103696337833720567714041824815191440901374027439260992928976739772870812027149149882776782735548199748372283741723868401470177440866459519185866893018989368691093564764986509419289205506941845782447612505522968325850849378471361548721224937200789269981849234212344017073889007796088544145449568189747828214848783700680105627020657423646485662203643544646251930252375331862162370230239863802238171405734910920637040972357033211459668287889080020925940713195008834873935328790054600022897661978574664247415076172652643858139699626163434310407780821862643729902141419394805488481162208441540614147390528748728599907556181432157905937909870615318833464668170971706473997779622930971437899023319634231574508656908848026707652060590693081428209264904352541592512807515473319392176802378666237409176397986211156404813416924113820894885783034753697650890154563635016185387041482721325013053074232929109214268976706548369527970271060600997437867221633599457799752545745047166405173664032574676680673286019027955967164703155052865971518095475181753444690187627234543720123004763046874619587873999765277695829830151970304218009022785202755056172460469791836629988894134043738571267571501396805801044889280377995882342817986670817596130468069084315405610785930011005529061113539495255795061725520637494935920123550695753283328589023544890135470161295876154327965035344611711393349386778274503670662094995934444723408068324975090014960041742331606724673423023983795766167728547579091477109241774066124421922117449481309389518319792506541397637246788628066228670414974819141543038652962046098713420975752714965906055625540842052490693286879039472408664958960546503741966573770980788344951516896900038211949647139459580677903331469603408324198586620678412016628085380791522336363904630794612802782748475733780930230983573394454256102391148166523926015500987422874211595324077348625457155141778874304233443506864981627315799560432344660111299416403964644843571631975306723574509575114935920551792924786505084271845120259543197152407523664182964728689822878923094285064185265693833511425857675702506163986275748103445648270602386370319915003118859661220361285674844686976274159976362046119667231708361122724053406590741768568652492665634858510218994484150502317404829878175128208502567125276945483239520938233045732832565496260840208036377802847516940866499586609237898419883707247627709053679761228743446492603251618850305254355224709041614487393513467136168182565829665864301152642221148518040349463014662257323900493034370244832748797271692615961211785971891458042754117352410276136954075957532474251265570747664641010579703484088526351250521092751110045191414234884558024984933819979073703132746398024178534987772843291078443359282738395264309624724845815555428737161372539120989535251125902035656739668557216752902449964093977924925718971530473525067617546576060534636279961139776446398900645843282588743743209754299411070369655844142483748262014156450138141683469706388716152923777510686385327934784795461745052606693556359339593382671105745594472686497480549368216372986529612633198093868505390449225449961164906197762048816658333360124846980967781102952766152911042371514150123907580659050311271193038861694069922564017418368719019923478053466428950212708932562879024782904541255454157339601719996980784279561049588746697956145774027698789053714795893213924945730276804405621434359422729265516344784048891696178926004435199606240743603138171329185163938931299175694906747501552846875872439240390209576426199964060453628507891222852318641564639870866496470234748452334368424934803417779426934191096387607221870484229694525231433890880296415259739923045840592352006084808594528565310137070834783324954194665528110002920926934587617896950098111677919553351618535059494826942702001485956840653480248953022410283300675068396399899368817938854921485861344123430215565405883048378583335704228473749903978673747092924256386531056902867186057459002216853699605663308100786405840060000833047927235235132441831387917477167495256135045659750991568781906140308557983021975409865339111557679958041287472206036552755788515515379204603118033360573607918193057278605508734002306112375112530186931625012511101847943958026495261954075777659275553182575139116279304280333597201017134475081916133702986166357256302563037624719233412748281456956180068162849325911871980768949706231102149278734047197127040182626629564910368768067853291903280609052259317109088929232815896601050675852907942338469669453906501465509270951216924290092614496085861774520133477666635186101588653003512197385507027992901419296837154003402392306569470911001197399548805233597150469513356783760864498225709488175713121499385477978793767268128749383322358060308091254275626619607827897408900577467167000590555461512640309859615996927515502716165277194989294532206256707066957241535947346151109101156348467931758326872580550930227326023006742377416807515537455515541587253922007998783381450347268532668835096431675813571406211153497710116881535225133367417128861419611910139347551073300733339739382758376265478914523633278437868788512300304015372866304012277384131684768240223123345829745824529710693082110517935223403197119699420032492446015567194987516072220900397015728664754874207718604274556670358788501529148603313917663157931436653409296114382009906503816411649327353561636753573748431036553711002221310033260945932914463441435351123117129914122301657670187665357240026601757300537133555157839747278038172276588563380092847586007615158960495394083055485020449754563794383547241312465474292107026184208692116208768108385975988484277904337655993856076982773089251846952994524555174379623634032048361136718638833958119643792161913640900177556571973700524079890427932704688098312735079896033510194213976296656273607613314487852030754344477325876801272997171229701921939805336334849803197530861660419257215687442961722703046512230542434617213776251812508966275263435894154834079052527821236678722991367749869602542730769774759833025058158742870516180184380888888054323881740303215998811282627074168455783896692956506855982430879531574175927225790982187775697098139855158529354413777940109960493655711518286804036485714385948255537379417448217643446951013276674338368375867844033239196940409974506414473395831126658995076629242518098238735590360674351446560072479665888988031498290238218089888369579548467586376293336479073052234431090964525897123592380559089321037594539584110311796365845183841450655920973290296669502477564060225514325113946683321583858720272373429890626813372442230168030479965463307255162334080490111088755741631526855119799107418378589511032394571651579537233473629767924367515688261719352983157661956812661119536588519392163096786934654787077995191704866194315120578327953382341804175258231140671862544882152488891192191062830316302170881982451772208387819582141334451754787891592472174185884947700512354454331179153783239351128992407675687253278826414114275110384346385986311977936379916534975992851321890095251824780296746432086004295738495777621140510114397460522629620091669045081660021955500115504528829662771771902957084890194980768594098907491962094909949728163258592686542392369543973452152286907003792718766947750213601751179473026848070544435404581593742926077445689637195298665557428913497815290368660714923003594667212888856621943240254270936746184473368639478390450953543582656149490323505170857635353627174242760279852392194225370007426851404548691179014212423652244464135842448691055487267772867797574616031385900104296730388684882065931443785632606744362938859353703402682459637247554758489564461204422873486249519871852401485833615118229325413457474738554345119808216562533697956759383252258913494662110073986075206423636495615236817698622850215334447201514405051560262035454280345591119644913959939176871897616334798920761998945998676822472827843762030472476465680220708014874311513945998554788713270617365982669805838879382657122099234034778707182298475873065274022125347997179234082366769746395208870574015907832755412927450050614826217747507782033145494821213444601513949522732823148635628032605852641546559654605926588498142290534642290611850311490245234725027545245595694058246662296367129099571734036715077429762187789550413673489196195326927220377422556409753535014597299710515177214871046156381476901682581723934391054133545840293135172726460214616737660914394191803102255647854264857283001117772408176609682571357379764590986714008189838656324114659050881292301541470791222605565663045944573306509754555839765753576434471472251533925124818393273405642505031288788813699722194639162999635665671624948603100367827947299407424200884260493945890744107220950962102479998192685693386655117013528019012987454449915679293981899109842355495183265187252980659912319575283794262492960528708740738151755437107823624170561124090958686804593012652718531785606683324902730656426688225926913298959281230120455009472560078020257809229617754293698365587336285966482688085191273411790345862886954126708028256110209983720979483590307684128165062805379536796978169864645903826446108767872707284062338747206178100248236305778793309957526538371527925432058490483123570906469506094531595636142262076543361282453131658551698930826554509755064252157363585636232368315208593519459305447197364340482851087199857847405283600833082697303957603179202448115956588281218878210018868245413592884336019587366974874943954648401873663447815194508343541874038760730225850688841239312965035644252282062934656053488743003720585275600302936352269890283710857913947022783705843770150522624605355250970442666170916593000121698911435966491420975970451676762659454462394909074753257559447799710210564999595434737290797209970725626613499482678880229527912415553676201635577013949638294894942570766281583791009237468945640353910952717780087088490339476670392147964856525818941805233369093488979258271245719989468755383144457243071662288809216557063997210225612271398382484907780023792816373826605688301173110854963463677135676213441813291525523114319211283387197393738326049396402759843082934598389064079613171791883878370091010909466756615795166578576530401117941989542151140341290696200687401039735492489090632777729245621739205340782103783383313033556341998995204754491612753368084544535903092307176162456421533684382615649482165698672862644989222251969498361554596478740963297666928633604083158560231506681507279884085891811504485539838174430698414122321538565663155940909709707263470152303880229777932650123277261265827599115380086646205760850789612721903676944100814101534992713809153084841174903550045445663295001321742432989324265251685126347010559894751248829677743500376720393160094993599860030828421702810179125443320835216257395602343713368951348796818540252505301963451528809003602178417111847106939983116476098712618066628697389348364568204036340013226027674678579263069060880254270075837505536778758120428631528852268362115815260071737003009898801491694489755916346058246875113467015938055055896854777536840194352510006444526743450312120285234080359103975064122528229247119843413604544030686865730022810883872502117434895144497964419510947804880385448044854671328017157368040705878205889605101727765046357862693402369188793249206591206517767090741190086779646659631878774101841136029728097500273988407747376939831243666251479228762292604585014961149404939846749471412357039653355558539562627435602897624294122592452580795628786123544402864408304415892000242854028863950488205308951597910395779758097394884049698591380829291594260013095739928567713604990878855633864718577372241924067007625557256188198825501276950585835561269449649898631174614441355004630587770284651188307006749374198157983242966724938706950946055810276586627414936685006411878495374299307443518503451264198839442148818155595002198057297192141542522807164711589753671668645761252489273893972392816781614163164191325675426721562571242886704309284507704011942764238561483913077820396349460401514899794927334144261091956819833697227441520736239362465240307036133549674400585980677358315375469999056265853006515150604715069227250883591036919215234464877823258678748387907965280168564563901026062111244560860150147118039272641529498023622893502989856424982296880850936052481911384036888147002320039175905612147157949263565493792432314833966187494729478410101274152573985316914818277209699309453321632514935982440175564041580500960541855760389765544310325628621533146162234108773128683558605683764897339144472464401247502182563941252094377141792226175248885046781614886010036762971696708297839525746877917321020484783811365765323695418398108792635945460687629112476619522880466271567031374814155326957264241489400094475125737925558694560900070768024229052665460764981090210057858831336502797448738139168221976357805476980483363038790374213231933578745804518826708935238206678693198653642056175246843092572534682356164197545204798182484344346330752700034271983752041825748638882726815749447784841177763834923193443914476368585531078781324505718957187446851157638425626936370098769589875877867568656980316805408387478949551115033353833049498086123852311392399487719362398633132056195935255414024498377062693092460786171597257974286931664659513367155758326345420374680724907582137659431196128642995373923067659218405564114303297818409876629520999802285373031542129869133038898112560070040742551262475978207978508525577681447664699343577115288339417741713767666995501314577402144753058321939784219815846404779390497452996508119096422994443933024516242227557735871599550862566556542406585787113633423408975735847257402471515621750353326584056518207901174709600049886611356257141209637218969906190032694622481174791303586125450899123217148460449025402137585169406440551803585731029618471340481449749046135218620874950190684676807913624130358859071968278599622678123279530693864413849561998107092996995776999420891096691368535354012896371081306341967618645324696545074468140783659959873720818413863029488229505153281046225760377067706916332380418873508668587241960314732024168254305263731138145204622920580034547538450700753428764038713400440954210698240497418947438798491661427817696433767646253691333874530447641130767399647809216123558692597584382200905962359839418295810220505528717158281989913298379930328414795493399653191695434695426221131137818603568287468035554998714803472539603148058748703839037467983063848240781395594544243890723432180265551030283093419836631357896431017844440712008756898384443883969571279075226429925893942367071701342375486986900443391966344404492954170541494214762818622247560867460779936461760104206185672410788288316993579353107532225018609108245264174425656673490358365441344771958270899482936902359122075078799698098482779387223439699269659573214382171100995365527692842055543910218480808922363108028127999231109770851647590701490523328954432922050125750983299887461880375743824442686444446422588254850652463019574586860895965021884396962068717871476062108803717256800995404806128888700200847755242175351913792115850704022210077473216063439130885076191108839679602742303839475496157596130924790672621231738276958420383310855037003663587686208267996323606183046700953706668502347020744231121408601285318656633369490144274263958689050131920541329392574598737208752345477142252809395935105870501992651290732998780662686765893625395920322503625742558255451030480724735152234842711077508526205506763305096800983757532759635130339811427891237877425887392596236813455113920087255701736658228807270776881593560102709127990058451143945954435186405127352631305521693099980646709635673768265561992510041829790176546870283542346276173447261670100774253265953889772684398391003362604055383818736319929842535972619948323837334443985125387754861226348836240406341188502220253600866660401821600559707958263442621607909405960915127980176223878321909421131340822878619077619377051771992923675573935962077693949527703235709149527836188155160985018603387847404541640446409256201820290038374754690525614940861221844931875154859177504166628012361827765313797753450156945094200065332484833758378417209016644059766436878990773288447002778510969712402351885755127035728202757904212202487427687381568636814864249568402738387936855180996829842507631487856656690975491690909687835131002378657392010145629830223813789765481209712513983742202104803195090812053162707671690868526029960196245163451702238877737515687833757121993805643103257009793367785430290431636298964158867135123834974354936410844328665581831185836323558850195857774056468823090866842756243960303925454888734600358646382365664252262561700300451354942388467787408850676963911401809646146916228554695385381617574212861074428385966513615780805407483576853095191421426210833317763513401212419729820310402226772912176255396298360732671003679915539741479044994337355023578601813239571967612308337282677999003387364171732689193163193411537840341796186076698749299411475141872789461493266447755082678950900453320895797554365265437407966056979062791138109724575204858529011957942131234113231599280131690111583395639805442328059196199259973274936632862776245634372541003162990996552864058680888188795241216800272991015825088832651183620371406407309773352070265970240079763898856203885819738482431283127996998293501003960406365841099785211540902524650952619767637679695157369296912356672070434742273900475908682878874025098813999853981090984955032477506358712171382459310869658183504746584159097802998698865951213661237162987625809518333193946529272311557217011288412614050708659729048576569607599024783765497202857910452192969937044610270559225976149835703943026208951868887090323964779219041300256335558227581450778656702559816693467735385478503495247776035109833037558750062963826992209843103294173162843551867850771106585235481738470613928549206500556801453502796683663696090919974690813718193847223864213753683454783302697535786320193254824916596793748475598839761096561614460593878402548775397667181626602022445563327831658376752091918006593680846424993429218531371829783881063192866714403417506237734517321933260366495874265235751467520101018625957305119862200207960336088547601587956645719563071798971347304125287665114994003131095009264097500973301613727196336536882964817054577688820420008132612406401986895178846431252028332973565647827366808910635610733388776390437353624882376172952566020923673482696115444128789860182046765955304395890448714385048715591315239034022361319564388593454637421719665126095866134794561180937729050105230073451396200099953289304052203001057232362423044495476495095848272120056628162582018881416730918428113977098780249297810955297492674450792805993555441187242845189842296967051732227054756431794131047418107185889686766164041101523669898332302633367338370153049464093860615854754267080402644046939361799140262180195235337215012245610481982419299566049181874384066768985882530231182345693353308724842353373901220349596043773617861455059173535553736469083373151359293381301911692544745964321861597008908844312671616843335856289607297528770509737668883987284894751820464194975868644332440918670800485232821616008128239553171758316464980323970469799026617703749346195481397579260205694961086309566431000476901761135206015405258752002667159764420889194086802138897208078208207631564391984097739297566575374290155417818991067319663959812644113896580972671219563435074637212577541268878656415161635586815591583521181372952671968893699053475924592861883465246206472519763569756177019798631525663728252570898153063447886941066154893799707356325667992356508147526143727610307619880842186035042254912627779608387281201713178148239686135525633032459653495273465886016697920124198377542722716710661249659095415071117823158934104752790496943243499094309501836930904310086336391365094338444986135551465783452509180109573492192214932352241057283778259642806944510934187664130908479286726943647806525810265987156350828647314765471676901083334902403818861738194763759560081041063825598198562479389004617541894501072555849360430706033096507092435360091324666698140662710875642060522495039717142901964134947858030931290373693009482877963731216519093043300774627824267227180824661094344031215937834027655055573234926341939231432212350992929819497173658549158071434577210388674240266261899160808876297843765700462998049383844706390744338642210430231881782331580478159878244316987242748159879565592341204180636416194143757506978509787361322330194269041398524729573143068676089883724797435986497406837441541668522808221461755255935580887293512386618759143719434883329410995799447591251055941477449172483219225259681233077164564057074895347598747048022963601633986181135411807747616682867570889756105775283382978001671308994438069101511926421551466915132168194371623254013377489429348333597025534879996964383370332601838908413865068124874108436211426820344424393214166394631427095375795968006193304852799460102006809088823244577625850879560454035485024622172695234624705600781718804887014803232859949548934166984505633057705312849214464594683164256783877491656315499838829105945861302740432914518575304729669845754872120226727306525748784097033232015322978126162355900504633004420716712795644800233163613100238691556768789710046970051256664255415167027405734398187447761091254203257786360727654239924709274324957779931396435958036778585870830072624406737037158013108210115653480011683125197213836210478698823386905500258365886155291347105639111531385704559016469106756205832280171298790903354543569408554399522323799397355611982324104254802698080794269053739394554401197205203207219275242984203584383016623925881538412402038013959119251478065637689928784950493543507359919716222935100326951894494055196830484876085826357124343390145475131747254600984336641254254866643635316330426779168651941460981992234127104596184687508246179636953216990924486775053699283905900261731569954354041379769260492928729871718809633135769823042152068114375372274371818317931036575385065625474242283317254229886464546310043582871315196512256758215987144740855678205530311900366947420107997193484494688243176465391221876337604379842457644469161345283317222279001302389693514570135241465496773173000718377762960964665474563364451598331423377772171549570210651558417843511108250647286817295512766189678171218247435031003014844897446651159312919353997957545550979973300604332641119583505399969197641085077802867276493451005245716986091894551605595281757705743286181074885744086506359913060960428729714756581092821585134961690897265756361765697088753497640081242364061314827187731452667075977744186442056292820185666268457195764107989413529692376799330580131650508318523867542051982626203147384060849601642803653335082699963266734887545993456270216668965842975638912566371051959301599179346207949712307402414817271818770545792184439155166522913379772635284868532008133321100883451847145705878071406663105684699577657156068392793748553328464479831047201738683647309609670572440934841698737653783025537587136107692629734857257492982591324353462097839137449269161865356886240032101229307565750743038801125190328387936813324656873566996205809095920169069466270700626681446852784688168700038833632004653937591030206068555066776191394656442015803538192191826358273081976118564351556123407033337162892311457882118192531760087864379443448710401642513053585776416948558298051784739075797566334993983401007794998077939273666036951051421243200672210885223582374097118400435284969210998782506487755055504791392320294351659681835122393260317352587119728656239090272777726953276388817721280836905655376046896097808364286532381896852605923251249766239633534553060425123228145741873641765966064315507683597114058217969711219508027009632121856453294481477202057257131886664642468522862110890328725714004670417325297759245001930558386787792099913323098911142334198308487275683200867815848693358719607415296808290757822060580738112619073460540287286340045776199462700635339439308058955620952297445382713447585922099886962758872691511361532935047337739447584937665991566997372395216478425273129745520005018300222520363402985819506085850259729721174709702850452038839421690342482206596011742040478457796684456503923680935910410771148301486933702745178529066538080560238128720799710577112453280320086116996446174556934280803756855676679753162869052388342022002794491249974683318512672400361459598825179965802283655705942073100183590165140433751014367386403101649245634097245392700179796911206546632714936513217261155739473637570178461169102486059031170964413614179656281322115086651139838603608598805038383043940005401452067945738275473157828228965518431320935435453053035126118868659511433118336952836627003731017463759330865446076150905198214598185509876001681012257103437315364123786992018364217937755119896693310526759815737116338326806419032049945895272942260578894580895357188204863052807071394440382139689020721895441055417201705136681798623421493202940110231410841091695814636661124501239102715564835664170207266972755313144445284157650834789098347042132754224978609056276861965036421829399286725145248537376077899271125612881035049511440033970086264268561749654622692848431483055832175025139825325685493685617161793565047493440172365923803141370774519980465146693610791594400684272314353832186792461722286869879127334934209597459871879642975348743845400069494656124874910543364373279426374199537727775709911814242271021079312656473127673569286736950538979410258530639822044200851642393316077531487358258226345155528199776872001649079343830809212223689881092857525157967504031704104130742963429006060650852267541254276959865304559270357705267656022908649377796007766986681975813766771511575101261327521463910915279444442726292585655667179967982577731979908336199032621990829210387325963660802843241593515800518077464919716796778170809535537194240198065308895181733368585629995271897240185462488260351479079966894321504725744477608473457895612867857163818431524753938217952859593601894032001972519712184738267705891061935981306337393265470835837760342237207279276563328986030607689412349432017404152934025899203249046970034672533522401002731192825092891416523433660617748811242204736455346776449341699670058370835980515900806955634737686014861714805156672237716642998751710677012700114767181908018863696384090408297535923108156282872613164185284105361274357665909719384677079464282195393680907727314976846972870299278488671015285319587682834180300637753167373612173307527872799478714129948860277525962980349943759367297838165643490239859715366541487864753703575374967137038487038670030412285931746940592173305695279828664277264069795519604318383903974733006881360885663600918565935423323848645345287990861906587667521051589240428020120270170709676818281199481776275026065971177247906013259346866281213225932833976947465191076404063730826556807632640182990457189166384373880301614537115874994604261746317071499505484160158972454612039584372349150559410842053920527983173691814355989612196837355909899419736287310532139034782641370835902578355493844145086553840698416057701747097692637454442631372552737284097681957990544964096352540243175254807801707910384430812978818101002054851670873805565545265520596831804988646161181511494284031268477000654724539334623305729705028135915653883084898635469636265842420130188380759066384903743126577781973615819773734223306815943902707207628044114388851526466671346072017890569102637515827505334131023777639061085146483328319397624965552833265409187089214770864125104839003668537246229527571100563202252248018164004101541627040244961057985535548022517213002127359023599669934762913124272160289943350866116390486399252215501944498638563248492607737650808883643015025085392549278549395401454513489980923577726825909437417613694484064847859657874290230528538540788380367688654215080396645773026430834000874036927889976623760564378949263320012734048932037841574920410955413043071869198668910839304224872631730176114844060061671532065448899734198902359885667999062995785924240044390442813726250615740741802084460635955261236685424071118903797892828906786388193897661792798031649689005838822959178964674824590057958164562836841742020654877329031542581911332642625728450980416776552177307532570022865147219350793503909844588417653633576479144135813063557283918606479015741952279070679587565538174871686798576344292121301570842271329050065322461211283004246214073510974833306478287426694666564381138832350939243415129699949971439088069540659099220161208499715928679933213401235417326217779302264298197439040965114992176877292270787871713938722321878201517499007840476318159236167106187591471342509790156463486551532044904894812616315078335640994139899534512196921189513011899412779890472551714824051234789411128523801535168119947233286001597268015496807397764768360872817979411745386271933548722946028411353155168339407075347400587541316633183229390639852849744055619258866071186166970875795314560679975218135775429456068453056500235042066238856672610909039605893356277292029782179130479468975593178518819469792153692978386505573405963370376024794172820761415302905303082048901963228466972434647221874135180458711370875767077997430969321853490140711224468999104272904324777383228017592602679697578561561935107657200565265637307881473459821434262435060082723100874970865752575519137319737617651256892655351338441465118472283881570688161387772237920569787170188086806572206825052635931076006587094264585019689486262780513500447085966800530132344783305258754542168047661189213295744317271103590488052179888091812273159508778287430278897497012131071189867588286712942916682191821395154203336398924055332719165237594521549613030069581624268858957729110450405638463632615888310024850069127625125496722797469190198898232726184942559108004749484039935094197696493537579317829973024818402734014210959753516391095930011456666337114519406994153318797965363651942346394967752211259806364035911249325395757791820700403822284407171336035385687262851854069719026850702352988657420724193693914629649204933967599849011649850424226073736156212777073119848016412836495269468196046651036064928465846250968714349324633386673354868236567647428890216010942021273228740219147694029087455184248627793513656271847267900826536412520151983676592364261706197542662976301217307934974901273923756477866981893235429406741705297088024746350264938420192803982535377835182684093803555945999219001879155207347603563573066612854171863831326400470590218085071671135516997054276492642877375706305295116411542989000547429930840611731271695019586115786456751566596498410162400664674676895416438102272961847196785797290762038422953820702004544498231221130846603871047795427917518885671363678682804214512073438358027107842641746975695159006631987438302525130088149956326552872732559367585087471554398300377090306364819766310963673858776299144998529805203460163192947602596100770275234121372140542554292061705820338177207198752494467606728465990394596168202665363138942982478983677364431294900138664348968751228743119766698014096238074232406267229467446232564644653247737989453450692621882997647255113744793377682190472281622497447484656674885828785670515197877275241534432322282444085358090414012906162306332493418544043011127170443594710573416316816882295140586558495326964663238732701889130053674854420209340901004395176169146162641735241479953691945388952127978637541810455870183386786153367370409231442012099008544542214586739712214995286441693064331573148597413635000319191957715791785696718861512266685806435110530009011013152743034271156863804389821325301791781959557505254381834529592732975860772142852578999066456073814493910005965432978119606394424731455516060693907466304501267732309966424907838900686646284685006112308174496494106461861732902733414204687460220075658235065624392639986185430883606675154010712237488202183632404130324114977167105335559851533413040940145732748710353989985355935928747692478962158262415573460869307089244447596188848533399700944515176795634167611518421424170016189488371107584804385466649235928593041427415223468648433745880662662078915418393962552682180897540702684220418699804249831457477202832639522313163497075798875027698466329502162325954299679507208043123833502577917076410814085748537300814968104001407865749181171772221178160176425708243143405292379059677261602550828250874822814557846860676047555436685281263298365476481423264075644810729029612510988362685692319494791403677055512673667120671434675817849451977066679090979395613551411431606180528423216600396389529951236073527463114360036494297900504942630842561603463629540484234185943818743750244877608866860460773718676680140040980596427974447488564970996610941801862632631270628490423810956062094294812366179154569586312236895826882165897893594498395989975089655327888635976657390265355821546308776541490729607472113314429027087018893799990880934507940349808661834564478375296516751796703282532810467358321553713250710942102139084950528729731024990217709381335327434953188562514735667915147397043031120779401591653950996107168052273890986297256730052979011103632693167863201348334675700760564352268855244884766704825801413768136674976742302172058868467310830862169543261527888995133929246893635173899198881479121455633557873864446425776514267470259658557870347437874103003579144222414970701738275773057798829204538482214881302893435209072532561831547197382297431500186262144836877590681942199819470048267921592217228410209375055531356207468379175314538446033104095775481181830041802036429510044673543152806645389260619517317444316508774820293760828946422474456403427699283206937439464377771287670324593836248076209724108864429931958344379383260419757716355390091544695862900238771483334489284859874881096357713892765321014988058210957180239133329195351744649737532487042054764700279509108304766695858960458646654776200248647610791787675112372503239025726630329680033505979442657790304269349044306624028729367655461787549660867297041490536714545620873110204904518727779095064361272421506417421597811993716875707741220974867564833372617269654090420630244082733422904506704522860265922509603933823670278351354706722512728020071123596919271258005158123953411687960949557669582945971468126980350592909010212642039844773699798013405506192145658901926299199086252123344671755842739092226704956025348264756083005483302755536219211794018044888474354063487902374908987964715114431939768910334014842355044058375878215486047889583613095646629319872830574321882022811445539653437829740096616054296725099692760640112125979727668061718882655260271303018562226823586698773048257104758824898024543918567108946681122510146277132255842512218313371903836285307592540401536515382050721005893284361833962542349505308834711217576502908402105193561803413291479476926970866045398176973535778475222530805498090489468324098953567120570533551141979091743698902761854221430863421488041639826492676076330709193527211277482183289124612402922221780528028578527782408025953269395840252013144101693003359054124793137520984548629416732864107062293434065432070706460350501093864596470719331638945829859008955579874125971680360757390068152750673967177488377610905503018295456617552959939539886137924134336529450320278129255667304022428929832653055601882692596146361608237006113060646483499430961879839547937100603042325864492152469707320691078974227939389522068530296140626486475041605440491017260537674832820878888431919029227895442459301597132827443148861009286117170695052250235323387522680507430793286411071833479024374784092517643214943200188806284344873601795015618810182519404463585809947470354452536530268252990882561348914470175881122764761533298230049003299830386045008162330947179448930493537590568931745252480146770220860194177437969560955382475490422170783424496858521612383476411568781309947163387808361434978146071147180940402899405659350785914608295465156828472937740544194118002437402077644976312353044880021201953108272118814717016261953032411561623210811546115225142351187741050690275582751298322235877335224105812650736616550196368558780432344795022532704301814522624555445033034587259228074987542049533386456890479315024276362656587428569029528250172302545336682373958881264964969756414649780760850595040445110662453920745550136196403594443784597060367153008025564908441102798260580631908335474167104301690682839280782833146738004369831280028001875381762739227990624520447366687703717222265895430793900069929336395187039848978984513558134409449949072853089519740423484277226396170534195401610885392290814729281215650135847520246440602741674645158246909817628529966599388878526842037842199350969124039051137888366865745444224017141157652201010892117300286447346340805259560392628563504839712455564012975465970605046318839991879257576631809045964231032647107890526418182904193750500174842867283874821660622972922106480407424856488776138498517296852833753945806442040733166678661087328302289418369693221604601108577337152548442165898090525796600908848301762995462446588148158666358352972907881620353273489456898625569302525212835721204009021941790373525458664193679466592543166541045659971009844819619158637932420968169743135611969768085553743579672078832157004906831923569892671805422246226863179392223070032573554461812797223270163588687352785415781200051807221549683213901905181128563988002614333192544758595398247512851106331355659113400389604492623517140437739527734494462113175722054924860468687476889829653869512245950787424420694818952909291995282676551260403157656822190935157864129253803384873566836466447398474351930985891310675133489381620631547929057538496597940340559203485744710176744363637510630711571576784200469577790802961322960717310757612152495737456067519029219098195794635643856827455746044150730930269758122140131468329260953291268705235436305938176316938571828227930649984738700671090169886655421153201252239297878600433976518006995152518036721659728568389309102784867275306831628799543699061126352464703659071595904468975049019934396803669623934478044195645021940822463854172461853544921504581048655125560155788706191115031567829959955284818933222971336820819735644585381045946686054429714814157838889118196792000489012851034261226038175106810074371909531481864018949596791925580454454590256706244063164196163357513418036762580033729938006784505295706544501043146417951170482081733462422509341614871250436073610220638937537022081484274587495976388824633172400179848490592181952452497383641967448397862714248159845771003276650754968821328997580826562749836660026987934612618102032050090282753165647115056908100667798953807279324732118239734242630475542827594372567919253994531884624118509837789461424273747702023768205365918064968682461085057867444511405631413956889045689390387575724517284862961692057289542153543058532113192417651189984605944121460742268000129901246022462346629555884891627284450483876324922532438552343507834476980272319688599251405424016104216286277769964459459065419047120059030307596998088675189284600636809870438373471611186735137932620048400177371670906921524439303056781832284524453749100543316904161695374246851147725722607750100224784847211526437659383727556093296177875949927417344034382974187012279582822886252954857806179762095699735790704252960098699320350178550919466533311641912871772301446406056936834275893541516748204022646044704171880639778841585583038730372307679187437065635929979010678155068642130919897754234245458899842832239989603372780616041396594128409270871171420160749670557433456646517578911111262029507318647874434398826336604586165337125541732848281877038496990104326304365210941066124713654357952038244407933631629552061983754334237716352551252167833636057809578936472138473650555494534021013810158419744033537579841948005170125873108451208006283835093605048833247814097087274852699639160199633188789630509608559922062288191814940741860751187618329589313978665586106940364297228405166196415606620170336703955300888685065537387464727145454995056682612393383415812583354205982076210327949055531163636826346784543897430810559546075451590394369564447876504977911365380380554588278821522809375373768357696604383821018226336983431738453179389704857002444203535583952969157701081900183314430637421539751634017028233704427885906189543411051032745479130944844065702191408502692420977157906016112316701764335008320354092945252024548907045137172666245051171888420812286084407715848268038633877911841234731493885031692392228477112724138018291734361530538248635453407948334211774697977401822263903956542347635748357301596167457702554742036887674331383629777122746233628266354035917129455828149179482477011299982492939431324864341052419021226281783659427331847806457031742731121403628620656137765576834263148176351550902243718651549505248069921786566899381827561401013695749475908136712454820378448992554216690317519012302781509036748181699660807499026601270780198771341515387831041305893070550829760186909307039843536568864518971741070938852111140108652335092925093768505424161111854831378257428322662831081864925742088286791362629837831821121061713576055840455430972819730456759614871697658208552588966668626788292287819179326016222107942069876379116885036450347400251474908999398772073807488101415391194798417957274338694895395825816158956571174958590792413890712347538368774018319228094994181959933803721345759402093175499107929861938961413236958643227914593732472571895582229015180183833027689644001613925405384708766052494340178521459763309379257765622135887415107355974711586154669575760726184445879640071882793343702963585709045914893069135889669642061968903147576760765830283238567534181694623325719348275386317872486548107367055358769666328343275377974668177349233689824662835337939049747632333412452422636565794415572818988357241493538651244680479750044017365337679458355662860605154266525911003937646519010007786156567393792614268604890403998960536572655306689892525238244205768117261370512163615844600473135293559707975250853332358490465538547279027820109045002508306426581759504097914730623996044262611605703954933418796632546560100386847623115308960479088182388354291331200236436716090998529083491891996051948858412173613488788282867434915436562416867169244025147279569634050200618732628074429997906246363198437764941426597095344114540367936361912818200569301748945492395596287167645746356313295515501419082000357232848553048177735376060985651836417553060224152096039939175951147466526239151524295240949492553760606063528088725276022589953206367717621061370632850803906777690574565590294248369682771056729352496948766149746373923383274217548935445872761439371087615337478047709519135134406696055838293163130364474800921686342017643121646923069845719854685354796329353740320932605505767132198095856000501761549492668290011589159369291536484144937428578999032255393406324682732810564247176348407751734393102352323330781574324656526813491386791436386204709101090361425137732926080800720135810154861973631292675995175707138368816116087494234699702212261762195518745528100337930502541322421747378883213560569408824824022390273135420346058465064390408041943094243476130708171173187364962037643906366021908333843193752388260868106623184209035551388444047679595568903269943832268625908240747195087228585152362542864731498949037289287066988716468320077025000172093696636145542663511335505213359584151297705371231246851201354205908527014126865344884868281600482583356615549202233356822070161666458708655125458203929053922626957195569742349201767665667330194673616631794454725707576987926759430972452417739071769589120633303186991593555126588158477048543380554427980894833248830514769134810686221580740107277082828841353824532179055013644844998577168657469029363562641226558820118128245135903902473581975966524885221422286225326145417939614888853846771244662409472276051800176375090896178896282765128762065643274835159229747952691033254732334493759061740394257082561256873857078099619402384847957931592497882344950752353378474543504840384402812360194240066030450755195988657075199672516890722249018105400692446728828530859498161057670823025008828465802710386665812090679440233133305287837415004906570472433763208872480401696907366541153978757532504229366800343547707411468586649924407706443315384256845721941428768452547469156210667254094153388141347514547359404121933933926826241410266075631222695703988917865574596251294945618841153887375534256375728633044696706411855478607309732334228909646918360898754977166497482389585015025986826787709974817999017571089500320919674948405762426371132851597048899085171278235063992941724195341874983515982248481501595350914608163929663212948916944160853844850965499240419386017720724252208387900197646839060525208784468167737685186404591818198538254906007828148778641732658537689650740138642648288001476339903468156936711099519603941256963230110699173861408755006262269888883804025917813949887543747914801662092151298292825355699345571347218134227381960711135026897500087997277957478751701316322972799422315053214311155830437865052790447171957972301896989285703287046735456587938892085480086239585541632890824630242145035732634831194488497824277525589577589718834641090136056682057314150507665286289648132621608838730700361235642987418347674712195182330309920625970139474826750649168169697973734487268966286847957856420213939849033247202583484558867200980625720438798398165927015773791642640031342736898998749118921495253115721290167327511605361700848506397994963442772637286094925644876585658988868841783580820938798162871609876992220842436325274386548704396802164081408407536036482583346384550631182043646419225091626260511433512087945171873739035807381901971832849396520680458240412427984257288485277470105651855766020480643520703225517900852852397301376997987374772180487929554062573907099050789404456315114348161385924301642928548357107667517901588195339342871080043516363770197539241163165082428330351727244820103282395462325403310613245656770394003805435169393719834009944333476448801962415055557332750156827836640948082688938334245306598958967267990535081222497388550768634141951318356093379440280572773951818534485776051006465780273637301177162073570505778974135077863532810464568451775168662120476868920864600495528434507338259320470351917209341018473246143947318236603401861994759702320856269031289644772250343963157015991378908315959416978852947888901424524751836571444089607623280778884994368095983414167392308030771883653804434030238943038075351655220518431199248621923143019093224911042501141259514859468499694503689764856656536162424686804756767408602969738115809044832199725131464379219724855932071567300317844154550742573090495994319942450689631730084709460485139114000687062418463840856989565079147095716738234420763307963126197874713987603448913818965775476353677701570315551646678503783675310815759167327078204365601686174312059463229950536292457690774098275929839960657582479550895197703258633892837465270677099281699580992881837304476072771724119056668767661116359517460615724731373816168082311198295201020118398522957024364683018363525460811477544668084969697078739884782172417142679528871151814956354960475953005461748232346235609514032410267851433398520117960752841757206118896472720359638688232065451869928332544481523628669917803502211363885388859420620593324207829086130395286529139279740842590833474800420090958688072211946550722112959175340640246314793984283370483640304981489057100662597051707130041881144598302900295541986739617346579747102777504904487901899566238428309943143370933543078114458715043127528421628335103901879270448759980169892265226071261955308776797143446445357130325570460619213061629072857028438073703898456799782860146486478761567920660599897162917699253732460047647777944312280391672474831060819210861110347554264130997497635293008974466772917107110927392157113806502740432562977460746541055405319760685764613737375753274736876414345437252808045394708988618892854858910205948691279052681004365897675600121538887051681035626675006173156272065865339718717272224876617765220805394664445710251797071179683861337024952482167775746374188222147482410508626914088265198427847983116108632433476376850542303197421543563490808724859406361178063129581212808152034609152947661545419962688301756934800687377658642303320175586227015019575339285444860113332941052098453142138974291309432207387182808333400300702515317523629000998644260029687291637959497132330268510329452147036486041448345392713631821045562680310926480683222500974219690925643737066800164627079423758713821508421368069919762508417503899537343081547770644770576485731281580695375190162186666964681835296808061772216645956949255317724322279700038055543759466961967778448254103736877035987976903891444462061192039141438008405376880505055758512237535097312593466728044505955440424739282012369197393845225205553094717229251670148005183317428567187670158516627253300014203438831321847538734269703065706161716739887441706786408492143934264719741374806171536236663846501850581843539197481804764362605338460887372159164384903246274172873754137882892434909393674927568318685395140364133089869412509858384490650119294636458984234565245222455279993981344177945508100518972180012732737121167285554610522884550625593967085629371320347956946591355736291335928470746181990483585419787285409215130690277952624279367996403351625969050364777911659975670763079012966736557039833458997938147138796812375975739710789563378896062683357716272665700594850086556869968760254235855155536923532769794952307024314164068078390670684313215333655382326040647456132419295510484630366118344244324648102927997280048106818026584876810254675466434648714640244628868853407692714474273612818724126191545746865235886250134555399487647184261717734650350178601129837138350950380482635157240052321129105748527508372318394486447211495418750659152312883619909384532832300030855412183817171428179212852351214102264457223416529807563477052449040302364016260970526631696064143459415070140603426963002975750322203276855500141642417997064814365245860656493887362622165300381467569861410216779539914325068647531019053807861599136153156962600924299095110590222907487253253161007871749799832053590523024807832686896741498547704355610825943203320316805824372474538164355882400270481888572390294914156923786569664742119136699862684445695567185165511241070090324747503235419501584559213729586410600970547204452997029425300609172709740716239172392760533778127493583289195314241163049238965186454018585210469684834000293450519268016247025255615926998624808037796061513397418875414591986369044242688348487144015970215161420881966271094902604601173177561984383797911650693065162535533122887737442679850826368793798078223469399869541361368403163654939043824798328679116676248471416015485695931777811562199558349903127489408632693477646251972935162913179269242432618632203518517998753223579108801768498714289273525511910442193201314312829235303647531885651766702498037936797524609607322767757450963609102787123736165836802522649516171789421029031474576294957312154659982700569380311981660786894867445909552802221746441409268782235601680071715939842532689672261510869923319233336835588811521260754194829153858350543837808459732715556738039033345096902913400170526912659618380526205050006667079999935239006754492879541539096111388466475227136881050007325787171958267875084008734955281411523100885857872123015338853383655636755964634595061520015572451971609439848955828738379825147903212775590462455133285689475362393260578264725646362811705322670943994743477627942113104813258460061074914774345065211486641193552957525149399061112353837609795040181235925602204780140646397853694132644200361177053940500367577292883537889484668801049655782275486215237623205340555008930349746063490468765570169749240614576376199566860565344192304638298436943727070975257549935840049514108119944164620493626715547256056944527397367933328830334625374424356569680294897124984611967125241569779546467576466062096593119767786999988782870006106990248696303973199459703846342372566464413139154947795013283863265748238166767765688956129355481191962390370274154914185942844876596943808173897405093611389122471488841745773647930782763433719190033879833794770864454067788691663729190366631297010858501760634166795657656398957617963382426525847970557225565302362165418484050216008018687213666031249130101846448495623192295485699578201175063466513221967569081254079791886526635549405548242020815413327631958478558024967789634305379021366578005089885667886340802362940619410923006244778399836115690265306662336549042669958398349733822730067992291983456289255911846506294663190405578614697280188890358958718715547938959179541999136712938631753256090798112842442271356068523665435894653410959787993545781178890005393255780384409160616679475106246625756633743595394075338990452510512341903032195099733073159898294484934997072032967329062873453252013347277058375640998126984987798571008401304024315611144520605106794874345877635447954742204482250022783101220314792473653036879844689930567703700961324860439500097835121479984035864543158337227840358651095120879989008317192258950670457046550459879843847611423812224299702362091249913658624530774246762952225572707410703233242993240718622419124632442916373708937957330851070976950495661588395350177897607954352393507632093629840373597409918491096171647023901683665083084807274033089870404343243225977045483387187920796489634941585491682239273915645382476522388736188670777424437451796868681363640641524232531118025783093160967634343319448110155468020687628136680375187122302724160247735381676800345792365462927996153345683409635671914274017773548698686715267231209370497601387612915751851013353743996409662037143598458988485898658878826712015980277443583312730584395697286219047548082363713607883572714059644671247313598006679121780664711564610028928810467162408504460398736628554385142553669604502039988479902119836590766247511353552102951711679975254282522998153535092769743935148921709415498824074506456041907258723317859333550710679912011952056284689312956068286789018976295478954757817047020060627853538679075710838243094933273904355551419639238182760626067397121977673203726887259477345045001863711930461934218381181003163253587528868605474959398960247489437557417772274592936406502015788321077775777607781466387813101293798799243146098776190046769716640238134245365137419399594583843322711435289885136116486399480560804703571652313624078672013383920965459217598527721050531092471367803024414461733702142725509298458169824963687938371467909256796936391616342099335599434505333164023816877969949062142843455003406460659184446227687262710569771646331234857503476154758244813043289337682667060017185531321883054092053530228121446246756792561599047515096257305837786131656307780183785715838519286136452853940517395555922229777041016886243978213291694305934323855084318193410135771296264080839628162685805606902567895674899711121661668314350971510767014131658052886441696382792476203725518278645456821758152681833896035979477802325409192568609249630429216204826273601978455151866106772988944564399089879888223411844126520408248697667624276274370223632623038498823892753808093335263108503447230496695162363949900370258136368286131724228041327375547746495691534551537080719151243577947149276501457645331778743813369551759644005556835041689996112078644575138323478094633810087664770890038216826131644685430292215773400049557423097369284928079027098404167551582666869505165481767879602368270192661056527298754225933123252463756072355038078405557541801432424569515705387985999579128844357837208031177037612715816217201285589585316223013680769092607660998083027141893722618154087679141396766668473617271884682985144920858214069691495208206465799059532245195933823499634087505079911415256851521901187096998222862486184758799835859371246222944683418868271909809191768664981565024459458617261998133905042072976738393538303396694713215815591791869228109495341742918822891745969435879319854376048413910774225333933891959451106210415270277661398975683430262960287082238237578609198978400431090475500712827219007718278557125557874225109021157605571601257853627279939035294780075076643363136801072619357882300334505956432846159061958419336267844885348605452684501064731056523145175514847475497654022675859620330174361220995546259815869224278824681700990437198318305779137381145169035116404660852275279407518192164371742994981517432180577550829618159323145917960766633413452449110411298648735965734389480557625184142257580334221923462505955938880644606057092650101101533435965107773041415539783221848359935378990805260875556417719558924340658052302516741469445439126729183949072208022937221294405529284395393001886731523987686544456200217553003392023665727175649048685117944300616935420696225361768270547340877474673907676967522722727381010547754089798397985408843066129471105582515048447764804169316860403732425286209150274847222496456317236951263179087838120718143621097485039279674116491203624736606934353503461448657493597851872980778091426149862654292549269273109117972545187420311426890067847078561892283607217600176320382018208077725017183533627890773851875872836585966587544911924821177841895870443485256242556219184747267815582588664624957782457639156983030789999128744531878901045592948998350989847603822662954769692426616715947861710518271854245847642853172094735838975284107815177167795993472364950244109206595663155905764333469789087914854027833035553344489662694117186028071236232953188321337192659217787155155728176908271996345562326504905541813588301458714246481962921206219145078807155901309200518135490331710061929321750171578839337067053111875569826512275546691915934467655316195707099969735140729309851426006503340254287364105923217934630747104829740523081765785203689018676692857993170756462852387502497616805576301206193598167974389261761886290207068143983572015193458014307150811686196952400099613180274072434562789998068047704288229875906684564272211646437914449351094869932285970965426816403648267663335221083765409073098565126367831699837558576957557093324507426366144236168311864988216755378877498759258872715478519055729689976637029225856014773704922845183670710390786547103920229884335303553018462135780559086345933814676566839662985818367245883825037478646446727200004501113664151401335578321707414148314661553786600964725457641183094335425483585852936379649362098773318523027335699067394215662384260862866769295488511742940493916619586220280332516305440826384187552474022776969396630168992328381417761730270617468227493044826110537120413099291815492589022667366179858117454335279314128437996587448197234039745681180294735403253836185573940189763275967963438558381080558628670665334494534219834893828748190774742798766681349703335944528986728851140886644997396326854913677999537768451957101874980496389556707661089128497195344108962477571328228588127653749512052718910639641202122441400716834592903374345753660736175854050972634231350799652565607696065941435496347426760675000080925952030633195183124106570879848025176916937315175577493775889296849664534537872085764114218646440011529194986680802332470112210797492779063437675554166395572541299023257144470851522940552644698523166762369255671912631139732675520436452904638569855003398278618459632692088331377345568475616026819090109142299311604455925385189228001825935906115521589535862769994023377296313987613740003854552598922030790324156523687642124584937793674414390953281270712460351652926559881841683639846891629202417178774489167368033389950230289863126548666054976335834737491371385339576733987386546297640233981649035951573294733537146204076525171691089229991946305457854549614325540428339988606766312189051469542162472913391594851002018338151154654080863488744669374107861366734070455587502319812922935757839655196990659247166350027672856892123853478510665132333022483503141594762998431440810831242424044058773843266244975853694961999763189564882448136915770521966535758029304040798845180558225670603915621356361833494517242606072386449844778605685419006478089174464985970971339623950423147899299340870047710989442747431837701092070139678137190666506668130800802726545932458951360815280478329474644859121212932980128451012984877300657159560499402952670564783278140976563591879422165192856291004097081281203858065086189826783013771740108459052013786728170325163836481028139970546219754606791732050297655098484796830776417111492187135278964900168142347356859613126398777704928137804242295861873557077642349701555065770699146247564559441016515839449486294238911644283758490988868508557031250014598193458235229495795947098750470107450141154926496268540598451379133698032684460584336666667394129677507457170249636844532643400451373097671071018960815305760936356122570050142926630754382023856284363258916782554274565990757259582756909932635534559705606573716712864025705502996553618174015221352517167941695631678345619451388198529211181425387320082831282633322722573030850266310232974880736260780878584127965673948968767806232251929449066847881043916248149434237553078495111781364437074163310792827625510893896617363978632346308790991509942954913270398309383274031126613164601049672449357697657336295421218891583269395822524856813211275212460106448506692321438069192490428612636508860267400230323212650994280501967330634271278688412936395968492013340688833889150995636996359683674838748060047567539966188564163103437047347631451809669259393475557814011079224900783223927395456724996775485032736049138022163451352249881680093355107992707631917073056887532607602596352921116280070776234361163487625554179538532153826651311454073294486128112443335342823802859762666772204565180141028205021801094536779215249919273948291534365481976358857110483451915627160723964504795606648616654054303431194837612745653503695055342697428469301351638193302157405292666057521682263909305513776257905845197446870397956151491381562330990955869620183224775262932659033555820838239188391737670269311292147521991956437148765232320425532504233604875024690432927395985816086753403867964656828425470246912206251594585200835025119336094201234620308595389877232576356361693209740485378217019171418804645452836642154705720044520565022203163992280037859648441152993190554949751065717166131667852740379074553380077018307174589800409439779942408358220655485182155770216292209306967642203913416772872181587938500992759455487955389569592880398199065083489215156980710873196745367470619193603804820951729673504070440643971100623870274301744731521701814742656543286390324247871362118331996726195647155917736588344292404495467023465486902414654769228532421394374516401429136894929997252694854965660123123767161240510987070977398855302387759750633471944936767984408772788662943339167129542964343956966549790082203061200030155382217197842749289484708354567249765066839219962676790299180089518215620225921176338534602436242571980421743981750009558569741106846628401361096371045333530667702101257267160630526292827444418133838696766033428925493108388787163941957623486417105015636484726557191702546834812021206277311515355843578370154852363114483562940585601730886661063816097656718006260392959930409042739591290188267739710273044848238688953201501442007315325339492479822730160542160885479881701458947058440940843551552838963430649809836925186265069321307091774088526936172826029177539449007807296735804065561256669870266587279284804322558411270288015212727386037302953720689983900803227978502164648986984381419081913592366413259460867973737219302922587475712233713107436347304518350670740414349834013016111838764851352252767352979474539512391314145687839068825620125711735021466084387190318454419568662845463180910109952447675206545340193444613686538966974622664903764752516516003390499080733830864849787610776756752178573995339981025841740083633772946809237242316303465439550312929069501778981381104171157402341570178400079564437662398058715898352243842019364914064158883949637222031836624722440886252533843005693866843405201051643980324476857947647360298692774643257911127494991278770744166452643094070346884498061555329488349584667358636706897488010431293865011376109661478504154467993492113109821269809868699400739962232522353791249896265021190988318713597207904620779957542724374410358526210650364304244497897327618203584393988471487382712770782729452030079661467986256098914574443368541606165810240640021705957730871762414389325046233113820913347416652737946947797507692955743854041466953574194588199169289323300016466814866491490183767047119973557380418877193712708043186737233773604192492632711420811434167807781445347395228081557924545182392828870255989025635491681992548579364758243528269295243584313027599916852528461979259361907295799723337077764168016741168911282371909940565521827892099167525885498527963155601070065112251007364121598872968204169669262396593163630639599043412770648268670436980610864602867630510353212378143519701914557656597132150364427622897751135486556530872968558839733134392271206489516678470421074999900320660289646366887170069348572341115693939294930787815238766169913354176118784679482224164440922751348815350470557338065811975674725085483473009908539264270768792630841956475822907745811181490431873991120966161045597746898223999553395629733595457390792384359762294607502851302554723880280728943960602467138948798013114750018454580902661853320462545495406576070699285063479273122554856180919235075788172003413492576127667946765098167980235460057239880906498914039409376279115477705830290186498638741766019140497572842862488433472372275613716900771740847506315919470200664192302912718169413005724593072976096297092548670533338205526444596845845819469711729928367794393557837227645156221448876707856661737781364027311263741583549310643776061872430627761034986677097099864287772740155592916295160743235193327402668284672896623049471219804539001568007786034660583522580453568807154713905092345513516173433259394470989423628726646372796169579667617718013486179779006922448908465596257779532398827915580115061624859151930870008633573985988123906648054891738225132959247665509579118355627246427386903341848641129822924962406966950856727567952459887795224579632815993905093014484227438170464687664933812813405265676654933109643910436965516541534855882109751109324093740453826758237061195514088915975621631645057150171413282229593135268866849432170692390828023809446466803956909779941956794700334106783615454454732721812833687743239335658562544449421857188544221571275781672820511541361837069796697987891510534510289537500089464047975290094290519637271664081201414652420702629062328913148097830052620546879142669266657744104435506512558951783372555920774464473282054497052291324366811079152500936055192912791203394659578003078049441704012002462871109017989331656223690663496797913100242039974475925628949344878554628179669096589998612828885860366742963858832053214509464504692964941546129949379839560030249693913212591821296123751045921252769386657343378324476203561086303198671678144747309391948256062173523520459720601723209320099808407943220206403352092009986996510833305844777527050633624833318364223018078494822215896435883154617809879597417315503220398460705810098128933768432238955098116505134671978238118843915022715089869239168752221340195384809249854689653288039529556494542057580448538215605829576309117458793277970619101991169631431207375802869458775281171120274653475146602554109660039031066216978477081176921669125102126372321758775699789263865624364421579568382171158492765827095099912754936587517539178449834246661351256497213205980972273798763901605468813420566721995917327238449354821984031029219823963999882713852654635144950249006204491665217363933155119877466170726374484509124068229865766851873002173744063360735302581014698089191724274047744912496262977460939303316614106620251747638219784927931495903092549462483680128228984741081263419312896547162148635366598159542261873992539390870724099647429766425959810677883269932296758497881929334020384510016502365195426069783387958429557779950869843954311992960096412889781097789912290892748929628395316855989527185551814055074271162076386947287066119824877405147215731223029011813692105035907900600799522201485327279126066956444162190222663615861064104039835592286352520417206679464435498155174800817972107632382231868393976960782385982622156434586213916545864738635102973193195389181457203851193243393905186183818855599663414291489041042557536749269160291220854512774797230957952353168365032576144002272241332356998745263116142771270022341344745062154893001539687798589260022006460677104850935530860862756856612683710365731368603731204478236973108740484961461812310370556834018781216946085172296944857870855626233568863440968826979875701278927319126071353055522280406604869834390207591479800120515967204371710053943159233526053539079723965934230953781785955736942497522585835658202870077821884514082120464708773197936206693189687152799569174787527977509681787914727233954943061963331527637539638888224506093991444944719603273534464250166938652470648085361540224170755940201013448462646229943691519700477307634870600960646801401054816047828266414602402540275755634922636474081871031612646955971620684147751597154259547202306841858889736535745125762738980538754058123225347499103782883869550180332703157803465044531878822315609243098242409751117052010845545223334197938646429836167856435877745508537410838445205707632289847436891894595493393170662163738870350928369472247284852401683178085541274000066218366376891078683741007834908137049587327292013579490792562583343839642034351987275417421739344211465316836170621862644454552353381149633213614112303235196347064225124480006027388289852199275452906987147026256807836973386120626480315083409327927418738839761333490860889523202694494429760119467659980919553898581988454724712389949874139966097228864169430952928511549618352180135358043975354670229108690854887655908041832103271717208206171635049820836213293787920265521031026526616493290663282824617146112418392535455475485800731697021387878263036637483635788890609305075005401426774596888657257458388414783990641665228716529101730784530635561399932713226418661094937544668803711019965742210090325884390369094144467960702384031021544825341846583364042797216471720368951663772230444014857150616436888454694409384261407406737668217953849923969993771077379602570415477873376012535352384259225301374738424151863383477195496851908226546478619561851924701141317365221969112327241560649353218401196014085901887286956270798192863961700107570301533053443949302198775162303236959976516418422014847982442883673112113438600500223397706094074089776879799392288992916828826320565333421954673949253263027136742156541833847560451389068439949553144181147684272680360376612906701130588307004791766757087464889890722016419815120953804075846792819836817134571380754441008868868303171156321504749687870882035975522175812951696937690656577988253374532782656639665216156125499613527534741168582428983983570656091010917136281646141948538801196068805817993288351924100297325747915337661267483965304627184615582436122258394750570366598519194443065223055187849781690433707713889618790919188534532353938034076498453935657543670920447136042303331775075059646431095599849487675433255091400015276445845242013145672624362243719364303251913311526363964884095231224872904890244973244356285863289102369301221539660200266656187110132296638964062050438026465816749463020238335079831404521376525797347421476055491010079200162856673751189623186353729825436257097526677639871275584113223077440059683949258716539624803944915422170002209426807274417543314433298920107933683426508453744303708595451983971125953867437547187044312177238582836297068805520715894527268308732475976016987809945753854531931057891468312835446118379635080228562094444901047416807815371690242174270164997690277674777213125111979495137284165309567567652175379229361827937002857966315831671457693421779174967277075324119332746872791573676959940589503425266980561741082555690023361814422795047161759737604773427875269173578005473328837624398761740135068195100784719646377012310715340095242106395311619147593959052739401544529686265779605038121316748353104108378363094790508852445131270327004938093307553445321214554718158777768803797632958298846835582944256587635158132469349969700285133876413537879337826952970151561751877152059330575170880690769737426164285725834634288953711180393432861628788695853106425985346523021394416993937448037522664675830542534518332539454632182368598103978469054878289495373360632388452509928110801655921168620143594370273187823013839578592579534778985793328752220474915177220320356649859430947664629527734284375142345005001442925402285426373014948119717851034462279890185739959826918624631212130436789141558165457322872289306236826757210987900454147695389023811905443677145333348203334763474144594108576545520117837183705719526085163300259518468217155690197982716962876520931342741164648882105453010040131309299807383641924488839564802842394741336397385346713103977044045903529951397528616161930709162620784515818078922291588726602992388931525395666313699577301009234069894630102013280569645712590518351585826570264440967134894126256354566493303949449191381471008183549985717549206297289861712383909747753303940533631980496038322962494311712582137956152882938101018696999327237810901659124930768911074835391879637094133057622065710534916065460999054811277870443204969089733349365559920917331676932006145504059001721474143858085343467972311292331768623853937845448298746020813299014851767837391875530627080266006621468976166238212861622335317521779435805716453486546673934380656820136016019996725694276586768881211581341688097291231123456997301365713102027614613604758587589026674567336803134483610102660433154507061841398654997126973434033331265598976166940084325074297502598867439541461369688752448482435702940131113629279275188836582328302098327673930041495472408063943969378872397632493730690408936149390816530727452723519804786614847551830524508500945362849765334931064425688061483668839510100340532060910385217601761014774083336823033068308243291144047544381387730492360428085515839447606875282610527705299420364678276934891140050642654472277593369536093715562058789225872520086817840699890402224444518189482053920208863183514683296387793957288674709944689472669219219058123081988014401050026767316378435878109383213844632930860850929396810672348904160624010756967663674659599619193910253949281891645107041091758141735842295617743613316510966605927307304898647737389667850716526773019033845330558696229428716557072987796255100305007917352893372504631992371582633347854228832523728219009915013698266153326566846034174669261979312562622685169694757651204469156669322521053432855008311726857853898411803592280572979336067274862276317698366962841959779604603863891873046482722776496937371869269042482948107243949200507339529713408361008193089075878884795419992197343914081994030665196383812614390517181468148345453150418137173330444274636954370245191935198480130500242507719914478531513398986366920276042759525111499380353621864457054695550054415484573764342794502150931139906271975646591470609669431896956960299574581497196162919439931362735710661708512383084327552019524473990430465091511049395400440073607683597202602263013207302932155760868807533894869661788312879065769230230535344803723531263619597587239009737940819138572463298328851526734724894618821211404727603497803559188526770372843140597279230490029635343517103982593625799516695557938528328318029951719685871927501482710126396331091237872222398911780290424435066419529504996781156239451966011410863384474040820324119651453193246848575294881005760972743994725941494074275748436480009434761048223778899753370485974887078732445368127550215978433766231298252034745925769353936289386288508147954050710553763524947692789932419424053902757118253792438824059804497059470872584130708577070626406362799704939263976493448252569443339005719583612241074257836674449885299757141969081824093492799132241948520707487477358528062764255970322938365633890773350470439822773578715160111726917642083508814859150256272524768389121208687624853396902085097479910779731988308784183244908832860755292257461175174108170299340806819529668363995944996768098441068115390013931020292918594020427942950203046324225032945131220413481397512910895458601318148209883114634595506861728799693831887470965346880032747977106829264522375123239493837280803118474587007831739676754649752332530765507868833987344735049272523086762539398582141183332593951094638469640055488938772923682514856647276566344520429414182543957782311719010569222267162411217309390234405413140373272650809979380761945284251735020191727183413194413109509623384153642435688206610914267421152087696129197681505701349418235168766974202481862571830458062988715282487560078082554105470155534153389535369016394774975184199364432287645767290272085663275149047063428612052806430439167211262905109294261819943375122606915610242852592326555779987421297367504272429020139987146041677418714096786685206556568704158895143310568152429542446409428084142004212630942307841456752210715100220738449026230039748236676339297005813790695460675300026506448997299576319671002331540619918403537010609014636080029401308993428025013790051339742021442181200752739942802369120429457450106035898157483103321623878586616868259782582671104428605489560250845957195355326690800068711003994969030934253605421303839514184549909047196856959147960149182349923061470299478015386971616300152991171032854819507630580592904401056512641852038569494039856174313930809403307898715517598885339925049743802085554618849401847892343831311826443157450923891704321540559378754977484093957936849476729438083291802573839065899037327289038874395277024401696221607656840731868024856829564724164954390662748704473644722184523046723978901088037299259959247155870379235020752444755704531859797112944093669439096301113892031485918893073212419954039171699964634131855841261781708341677668024856610010678646842454367092687047873309550285158508793335644345916127539099346681067461551955910442382425007472009922755704453764579905977385428969802112879451405962044055914785139883250351198831422940744825970185779098648388160246061136612230648394870229402166965789690907276167164602026911201970910007748126018713860556825564384477284519194418998704613366884628067720762121407487063825452662963181433273999090021858504557068517321128374224643052331678668850374264262704921546169275857401650695949701139949659737893194222712983410148635951356217263683256467950790818265930157428352023786128336104368507563114048365626770018038741104036420142133727616122567463129470690991459174343940227150428648266885416864991524480573687728216183085155390213975888409368803463612532061968948686966870923745273379528975056912839720443052396321678794150101078476519212630594974529402589922784134669686202377848615794850262879654991725930309531424292865331665940075691470744028862291468403527567322144403408707017537154130696808709681894821421358022320323243065999068084739597593872727820215611444072208091654468207545262610482527524656169681668144245432804506084495846390877735582194072109099052049559749010081091242490579832302895689332529587568204024167053902375864256753643664447808646098353644717480173361559466826918697023143037225807797263763136483207932313849438672446737291693710798022560685590433846296630383253401610050566626366911019650022336813628862502898282968090810681133590189109420865322683629580968508315821358873619350182921503910453286817244905993870442340404425772226412539442179369140279820970127356042420822200556977204527918112515346696659759679732593675656453204445457201438705094875938971805415075695734263630476703693030970466906577410817829262124239528814806960839587742663178128046494002665826051034038830564126384093076281357306784280908695420592437787746308178812158789664995103261458545707261215601775770366204572635248782749945912729437966257766447290228187155741248529020528152140135402361480732476993274020135880376204695593855708980288492622108813989953194468919080895767299888113146132600291453499310072576242924071047754267955673616030626998744639395997078867539958740525959384588191013232042797886952161639903647151697995276749447533981517137910401617275514993634733972269659297785918163998026416368607980580732415550211365107361314764526370452103715966817243009187575414586152100321851689641779064142564218032747296420368004960014059389798812773339760780968917242451951819171122884295720397397913579136020037797471110706036574140708209020205824565407668614139435164883849528234178024163287186972360598675003868904796567798853061583680532988120656030127515245029649547700822354064215835395935359233290518553314894511588159092831547713912499510348897969744414646342553830220594557203729838836960856443605720662289690957085304251611850894127933181275847976062416283260546037151823432040760242388594756508783412360893245750122554055626536177457749055058421076448529635861664651443381598264293805110532654799388554250854657139981965335975343663434531432900239258537519841783682084572841112631063785110649303173312363654025739771423676505616662430839088155827235300250171385163439749286206347600499480260767500228502619938627357203849915793383576379061801015304615549924837188991499956663400895265804816833162595871636480749965254919908539615265361729894401121537345673746680332398970231780061441268509066086770587810142319849775632057319017503163479765292627789333821131820179425600320814259738814854138424616025898847163814698550073783599220700042958392082284414776497649398194318104761017695736330338304107406989239389174780386014191281879003853133942041349712975341067096529188523100042954987010885375500973150758610287744642918208587119992081645410022115710946490731535365154826161524755903535685699353990724466213226140396094505232186172237776382991700736112261780617803500449222522112032822038761418306203631511430505625161181271823946056789357685225843850745000094110325300711683290021811075451891493054966762691141682595661454817827890793390200562104348770354468567158348530532503400520610692659798825799326646658242360524793455360243664046666110995196359747146669235549665263540447821836569246415164651127927828406230355712036393705616481272043309255360498124802695466967247538290979856348776168369645414973682629928733185004679385718988400744099472747363759561035594624430129443392324066926045314570238108062571774336714637071358096281003219891634608688824369232362263404634532970277215865754335365082206279614914941427233087645779734424953653352942578116971282576118049167172920453932842578516531729272706805365132510200353271112687157139721010955518539640365396556902510379076685393827002211172362403524997951608351652495703012630796334374462375240319077486338343346299318334410679140746604846400559488288382319657797843488020607787659009591831340669418493389186513039101594102155134891713531163632716692416703726936313110900630086753047861883688275497533720463734196996912011450683006317938563204450281302624944742493309718089869856409387608113676975969643792192069414253447261918485487049069958262307779951645632093976265514724752392814184085622363226848984675033468884755514782448474870509985023701325238259966136069848093078952155182546189218937652735009369924695429228555932154846024391180557132770256663879886162504226954198628746400128187765090011260788423831181359675582971757671085848934513646764446508924491490150072748567589354818169480368595900396119646357385930658475228431087635778056461899920781292418937070887988497183745271816574200447375499530481318208374074604585704171201981767707915457539541252284626300425612896936333610505273405497665388986028158356919448275431437802069979312191357754107989703346635509094453509028229983840174358156930189979608835786960602649059571635060567293924085148931219769108884794151674503504205090634105068212794059190244066396078505514601779459209037592896248387588191715075767811302458960882746895558462330117605076215396555942539788795568403358516047726322454759530106588791498362252474619884785761665971111844526208817030726277602966003274550937149897572917945208498684511046208080756209715718727928848843993881734963065060534785346380775456158018856027859059465080903310893528877948382267292020751412514263049154445161802801220254757403851184281340334438794098863470688695383977133320918248611413530973638737329202251806874091846703649829588716066241442872225942666474985455416265741926119848673795849228397790935578999821141735638228191672148675729545335176131472465776231312445396402460012958251018505595232473518473818552698911711670392950539784933432751725793473691193923317024704667043609056897516748873375191585152519529873407590797107313481789843945557991938566541201703404892274286548776772841100823519645576275847870237839405116212010894960351060180020644071010077331200231522246374926710288492859435404991296886928590879830289865886250234447714657556247794480999315893044832779159787700799600043577297743898630987264806683373082511001311576157501126438126123096276511900527005176653080535577978043740318153731620419525761864769258938968465067052533509593114981006806563900220761421700938565485850426335080545527870378636682210318133439166032738925942726739082364559550692362638281622033593769204510056462977028990188833416143057418974822649658933603398830118503703002227007944801152040819439924183596254776399889407306295767520877286274225013610061475001737254859895884345695479052345167380046032132224677172155493508247403104478283148489514160413786734056720070370743497515306599534172306855533177041395251157396086263954361461582027193246821991427835718509461812699789637108806995032877851942878521740324837573779612437193609171015497826079168730668325359690091562851132706997111693915151905959182611294397414429616102922770076379317218201530312180337897684278448045684682988918548460798048386991509113133612563494432623093879728215503833729737046565384601998082604277593260932000372667311728128017409299185903112663331951947747919609752290594710053835555834138934817096432084273187456404574035618647176125527373586731629268285677482470584534764510390795450069272763213796795967382012035025989375078205966478861354250040815982681109754004863230308679887159775327702272847470003070308682506753810096007584461983410431391417851367683012878961819388336824051234200533658043039487151378864336941994526017654651607384858085266271518901287838483945819578819081873233166480004434572433324138808176094195019533719706701198197783698724902247655437100653422771214786016560003677090434313458470967784032306763007570991586315700250827241236241443559411451987411973023245119274258080317900862210990535740452373651118364759496933314516642835164140629890188625390351689717873659304014124479427373339676365941438329706983815356647272241878491769456028439532117917550617199082159214562822747127292946676306996529342093850155026954313766958864516004503650373659867892197387786291919521532627672237914918503698768718561495089575268335592345107038580907458860574483334573320999723661319406877477956024154134860791703270172421164950585648830642522047907149102031493922284144838894586270243395323095834780235533359940751444772330745560449317315486484784260733950807023866930251538206744303475982456975189101794418757726909843885956554959504694867865203138745881317616191735639740715359222788723903852521149252581325824621978865874424217173466619979390175434856533597740783370193882472411544213539206673340237396257400952394057275500237031720773069331591943693860422724005198496046156656252826190420185375385474352440186393089531415823802234261031479199351073561865025580214954092186521745678004128600125803730812472426713931868981351882185532207352349188221765657034713091537252042886605969110376856998994155582780354101151751359493991852137589799274696611441946652861768605462898680418643379745519235744581750480263768668809314279916851677164408195641649937824737238516517861720451005935590027843304969101620695148275264180947842548761113485193627806125809911706076282282289385255918803639293772271581992618185981112648448847966127210054203144586671572161217108943925001486738953708836972102482173899860674942783815626182557895856285718685797299901519525130244108098978879972975708958266985898507144205523667401368129922833036701397758795361788051699579390788707209086031204130961055618328754761791447662565943485107050116478942817251774753361042598330381947670579203240446500516811814778348535983545932618029312217255724698351178549855903097243588793363423708429543945156549212155006962805524199262182089229087221111562099166098184802304733813770220786410225312954845654916225959907646087889564296013853162684768618247511955511801085155163405870755266618098166574685129316189468724191496833970508186455441613805265975732115557594859746632442508289015007535112966986801129455995361132138337650811998848411735746614145365730166511324762556607343001661218160678496320387355568522428189034466921062148493028085290343173661129584656093804066060348813733712423668434429635546364098485358908767000783250192537994473916991601974266576398300443758865263862061574892740996336776646170447947517720608923474458359917978957528052001952774326578663303064067264601037096659934066925182570465532859074306601511985947077813934112707498862236272224920065511097093250353686378096924571791892950820031925020227655297819878101162210046912562067421891055378890321831371691871286523108837238907590399135918861886476978332136039509912658454753296910411706023456358522731081325099496661527987278131018288464579263436978053894990090647879915095496335451113683639264958313299870635764840197023790527308977848254049540937405342694218860767716547485608303246260415174469511208830714622927268467351112292093493524033702118036163411911925035987052383204124932401206023407863284598192416499942739271791542828841079129700373723655105090578672614856065001128590921927163772177514941777352507497657937676104129427457007553908247795461056615259754657667053592503467318046246802797784190541417739622747949585916452039547879889110526864853195053383464587224143943126501943741014823517390641090919728243179646634905621759561344223968357883831611852822656627186892980029030427617564565931005193604390355091459930075371865506519761916396009361653740984970036238457029129645854592128475789350104415095314819959892011498396005066020608843639165057205329182578130203788034385849845171719860109626623852765400802186836883571094768390878657234450594221185037612568643891985022006158080598548845753478519788636436197120195146849081287021515655437345740462676569764167217788467910615969495714514331797509147681772335796739392368491755163706230276690228035405061909019875504357163826071536075858452557976351469180195053860376851930169192318516339239098602527110074698035228607425103897761026919152307630551271101918400783502601397082924759077205471873225628847058937386773721019044298507029678861981929308826439471408578881105964479878261501930750082259571405767108857897160853755544872700931307951258110391621497217032674806324177830021274501302233686926291817638610848550229016641608274007007383808140885786847779760694594590322201034369295542462607319522339998850975287458390125718665369809022105043523142151188128366144556015629353587311761970533557423911731978566120944452064062609188554959969501164308364041723962646448727357981682667703809576414317757616414062621782934225972448262902989165552515471118701607783256543203188289902522648825590911812539628667861923075124965344612907433514279011659029917732290492483464738160718374854188441720425385891568161932544999943762290274819790541136132975028045099360858485997987878671474667121084371765988072848416849281846807993048744931141017883532238406678251487584959765572073044249769649722881081589018075681155795306604747858925899510406240796896196234044849584675592346552080786532723682823595322046531467894419429817894287822660379821131253789683797563113695421778196925323470158819232376938131312940244856590317882648716155813554461818770011324666125893749355432532219325289097069548765079263701579072874743805791835252415464833600993702577516686028945182798133910498343920858205516516166833731914531194722010170252818445249082103729991146901615620495316709351342158342104580848123493406430996161887759049866060159914293676731392322326983828773801829446906243148110098627323451472027105908444039519820358377955921175842811869366678490165073876435613993346936816083332307223335938167349429239788086328456495848935017795311887618229961255808329662035903138200957221115784411434031415143163722233968817113766645441905160136335386243820432884642627089063439182685834426582419438408303804063157803576151401180543137809191296149925224876505901814418750032399008994093390297477347143314294883750950167528602752940640700635682737343731423532513818574405674300973619018289975108044202848769784771641256099372352875499127644904795193532756382245064002389592829087423695738815225445010917800492768839798627966030757863259656902307196156538527438051691790028193721528248089005492614217635224769427553221099266991565589676129804206003545974954189854342785256321250542883747223068271835191758908992899753353648093592231118977481627493974799185865194229335524902689437851393717865904459387753292679654682078822498004365475999868404932056118099440947569138381370556956705493655307035833506057152630109161381422032586116428452054354399756832827355442962809772667715749063926851320738722268806826982929315982253172787761022584011714147653672022723056161110974688772361173503388379125238956996188336945324197752852534840438881394962291451406963831333861824083484653589766435039706246991494099597521496744852058195874632677796896904690336179620107144499032530687375724660520730241541592963281552615632876367588674870639827836186051406415944103598486927115672519413282932236526029365775778308472248029259990400029125321261366147912099369435553653523635312356334814951402523211345648464118709488289952359799256640142498686338505558277399075979150788129140805936606036476773572311499503625661458312697799886868817477525350959966455717435544727234877593509468101241062480033828686872600999988711816032714509985250864587603071426153236158045948817462542257814571091286234594065440813103180019418346270238550740365133696975446574847288508455268523178858061466912574151599448260998785701207947105106236890795457618401403597656937617051616196756126513355926274837676411023189114792136581970691177234902713356478057007273018490034928003947517770058586127438576659882945204538832836295898090529304051802404573145649830351278775632792542622492421874771755378968125768588228386210290681303191489172824782767102451318304311751573885553329798001057760736206125902935209934000766231740074399577777369811485770777871480599732040993026777926137015501115593149563414917927348926780274135252559392576531069381746335774964057814616296202737914265924501085845221798856591736701735335815597525756394068796796231210920689291004401002451058859690133290537474479490918258456881471132125783392694820074850965023718740962884882313175324153470003696516540599296526603348298543131070427629339624457620531865535165166374593814120986227751722835641320164863286961877018515111570248350215056144620202056794210987831012248776328821346595689638135890183076325534832140193522771523187660807723055494556497881544548543760967940269519501432667579952760844283514909297359978871279349849759200429778398344548738246991098392597634201173997326932979847303158458745201391332526929253540236252726393567651342392454563244101754518533255958333627229426694824458988544621794056510200808494059296310060081794454577914627982332138973579398971767155909036414900945699788116377126538025555535278290038930579082467506342457215299725747230940464778048906154236537227694009781985181457481030068495726123288082153775059969847075879622560857267527608173127639205337337556564284683516998382908752154971222657233674958953773654557241180617326076457488174590782968165043146186046672514981590534751395671799482402605034723004510221727258855760967555050074306183672716880721521461390606884127025417579332587064795013802925276356777568337486650101245383129717434246461380950539315469362810309689165126781322701169412488156454842712132247114404488861359153156635706179842756438239149392333508754805458797931382462247424176856530143755124732531895120966882383284081514662460650585423040944379915195272246793709881785550543655913243483896011430172395262471404696068000424131594636891158108049827383202666930218367616454098456399258300754274607281643330075765919330996711677645763845077285610142469807966153426504337894976042638506553007909593363437919280838670550569112128921012361513202988013542833327192037940044196628762407978832535333296459413162645831109487262036855773052039077462844005420460358775402966485162075504333387013438681599847413706712104268628999807718594931473497615526183607646012564335801660696077862486384558590745451166760821752915381146888115390319261144197738823987084483649798669765509019163421566523453057667056320099170479190093436669774391590899402341119130077895449076947728554883211915638856143784181424959357933331925575365223461642507787876926113467322449247724066074464537469517941391917760292962989909078681990224748980479054475858532887594498274916933528814370519899286043045848026327742837741075206719296427370806572289232151685097695289185265421541666453752711013673454614005177182450302095846846748107186548037454690746751179066012984070973256431333812206344242788100885956601986529188623643936444416743184680950856526660018326712423873522268915981339317098055830590042639531073607176154789279531729288038413322558988686453114517141155320587300897964007513195510370562702776426975165862919997252404488314561688283204475403672233613186745689591956178921894253027082288929211050330161833006325413515020485176006798624246935584749941179785910392786785825652524711448693259248583213432620337785196497665827285935940336013390181090905656200747414161918353606456385649909743631533462689874481014876784648417640488759283031432700784816544135744389004666179007509517368181739138214740726848483028869925484815245314605711083100446233462891674347518105486086258666138343227560426335312357159902994743842305315933836036691998186368201447438063692777606446302995194298708610325318060481717186594453809985381685391793175280979454051521221337611530024351047540566446085996928470974370972877466871436763617864041708493533510688523279878059905724905843891772747443218910311229691341769460516772434738710420612563760117422794173940582864163046071894674341444947952768330822462562205364921292311529849866007411924322218218071799706194332384958544221574325133683664006408472806443757040885714350132379088484858254180240436014440092204363304102525494346079144183992369483692732187733963746002255156143332739670513613762075420967135564267077521454019393448362329377200785026415738262144735833516528678818936831098330018439487792737912102790656552924079405309392450711600245991133931459963413458490083702901664572888869946112484403833017132421928916417617142642004523885277569644957105779984912194265804941857831886314522194245962522816276740025010769279355650437235052800641301563093961332294018337287042213361918816538358899435013413638392955221433273583833110468675221763394672877678775437351255533325880258604470660932750142445312712658027411643109819585563703549577420400426634999820803501157097320953030436333935611383593044816564121578868879169679107123049406162711295417083183970121827630842995467414086749121517029738192541257556027913920206013383205179706192976250026109860319994180415469853251238172208844757361413931749386945505216814532883758503750871891527254772549628894914939653640554963956027226539196164314096334348339331790666430048525267093923306285137433046785158938263301739682104050181576239153586643282029137629769083713651628903520697295651203908992817798361818263893145333365197579067361689630197748752181894150401893599174712298318154069416300657972656668298076516410160206175730352190410512291956716311539810749382622811100971695217208418493135061035390656380430744855722444349715739096523453972280469304773073647116252222705677437160679836967712690139889372260315056414893364798688005911133598301593103007571885317226256015234894816862370023179373093766438056375219509799234517016396052752258647863774756886004493210029253908173151994148316627840295819852103193083203840358342528847660320451551286927893398063293856902446342704972663073012735623314347260981371097315949406750272209786872259495285884288203275283763517777269506760611689511241535386059105098131520664082923665024794629764819777182928816830035961766276378752155650061561451576377946946612077017443545089697467810663183615811180849009500209586856581328492554004365072012972442443353353825176244227388360333180567496255415546935675017249929017600844040420996046504549706993921147149810766974860093856409931824622905921746347111083953178252211773297254992788397412025183112016530731815084085144667733450941288179936353235855680662595439253419428412746705609674948285335804861587604949621368256513882648578265139890102120603189495066076748494256634940847150337743921351049661061097615735676859230035915621785462076775003975117046779680810307328293087522303658090088679180460865451990600994384397998246032468908204519405761182151480414066473398244413629950309849630489556649855185122943811965753327899238476411760146250048736299425070394521335546229163521904951146083139912297819733511851892920486873155877421585267208044457031672093378157141300310935630631782945458698909616225922425391973169959688324413639357696003406483337994446116653937443606211355031073329232837881954152465919755677555657342424582765821669802552152495030032363232358112985759036995756420910479642444413874306561240498468281626798351574260081489816994333065894928030949992841895109722842401279840194791955960466607833394629081625542244504732731169603200980487460238627216953325237695841953608015073983938647803661176126857617165829788200284797068051553032213167654372581577076049566738541514626147083210754065674205621513975399388629464749064921753468267323853269121303730588636973217731359059154085307754901901878634033921374881829844764872623978933210388829186941122593197011868091210048665479064649443644864274664429928429442342451933474620389996797461516853670382306321499684230199767626676147917755206946139058312115315051907976796619254900881561489709263514347260596583567776545628228902982107132172615891837622075519626595157440481768174496150407594523432519668657395979754313038278806535622850510052703722381094129570759096764880712852020038860732760402897054986039734501558361612225049554913049127726169483817502546032122473541062869095027060545154411004419759514245314120108248104270224409200586550554040741584825164159971132316360256560267512370771464578569257061115694372910952427890729060779701900378712658132393450603318874956487995388930195996715455050140196654757296613202659770241625719249036204112523690216580243151726624619517567685880403019394151931261365112228092120391884214618166836846118660925668758697384181937270921480461275198240449927174417440247560244291513472739270089685383430399133277775430982084994217740673823015225135682323770947274881168400631673539944967755651740917863529203556117416855033092095050528849662181054580000789498946114975494682361357007811118572623050957341027631148187041370608462389755054029934522286663685870799503098160772975674198699381627587420659650512024788267021254662416529695693201116483555926618345470738627449295442587420216234682247812397521019759421265430045710703461557830222545401402201282158918365178827168767854508985050824542340184650663549281820853619356847688231392651745236811606861730687932235503574777304258143096390461015598542218809179604468017957612165257708152762996001267332560494775832761675109370683867644555396056631404048304945643405292771054353405215378453240483513196531302277041950467678191392263239258073176399451563225122869148217540504119078095846394452492309339981784336180778947496593217198023656366200897766137125856238490307853851724602651501466406524566070206070851200661294378179783347818415231095535245221956479781524378840079173605146459217186301214522903170811910132482323322395855795153963765028235276426151728879745676801677536537035988358243396399953428023350234978873451222555527956641249216333568662358404859873049505898546938997103702375411370256322595313211397855047943950616345187499886018151211397051981097325469716030059367376377516484905232865840644813997086815302647870273907798679397575024524979383411848599350314664536263023039976661953480142582787538816232827536657360159308012329528625747618352949905392392377912120788651796520418962264113083548573489967109659206368862051618196027751101081071620581441863716383219309347213878605809474186960968699579286653515086393370778908712662072236066254272181966700475088692012070157760876263289080903957061244928046115543917966166101242277777058749728624495622324498481168519056231777264531392917091071813265043274795013998504451445305909950559775412499087401709807740205414605879869794147143695264849002376118828793072823799157921604103608684234003460107584583240200666847143058573684858254754298735729741320082092936626340589317983750200631898031672604108226167850793744351994728643939640537032780302163220801969094225151153158637735042792488857059347896909981677123419400883605747774834201818261844458096154640194533721401025291707283161202128965772938878625750228126684787254653260450309721906282028213953697981027625633741636596367772850149176299746822707630550785909216860385221550028834470764266229633040206337539569934229754819776494206209791965444376562970357156117950681711441975241421777073445171666493716099960945262963125562974251111250224529197988076425771953527360972117863629138483245924257047657879625810302933552431258093643740549331421707668599472646483376697502354421781379983720599984689110273192876329919576553570243025483656880381731613713338528156161806412332712449725177228222806069822882427682452957433925246603406568251592069057727440005528972392475501350749272693008653256164881397761961982811520261479063926346045708379663408109692331942592759509854171054616233069894307952291482157866340776222942074404052409994072290011700322019683547114497264367539087135415947300094194588402835684749705617251992021835300676407436086845167241035898979599256604821471485242692048286635427890772161087227315140846582035563895342913496721991748160719525226711327828347353215942513264135230294383146847464803071676142261357388205282789142692397179814793706151453708483856741377868267489591226393812456734791824584122443006860104941703573668944448708669260178881558814103721556376257480352587493526891824942768455315587419617206649808761633658068411643327665848427864938551634578654364873507679875862762614644815700670182462633099592750001116998708334233203322063958164757992447263272411113212632943260001146780302653673750552306060841048355952257687574861539332145943300067466691660063237067305141033859617448931963265872265050407192631558430451398943474723335448586945098219835309333013295450073464885176584039252626341061842229067577523582363501609001305746991114102907724971227197928256583729364224480006413168325812374531312251425521653563561111845406505919439470813671137869181708155467899368015755959186195201111604745237245738033347686411775851223237582498908190660939701180669440766562869022521465973819310213790171470803610023681443852776060521979621847909119546779685193033096174231674662532775542795675749299169898176480349639359666928308133042240639846186003003875089925318694741834650519520856533297340255387967778235861126182871752041775257590812526378114358758764733310751482580136257913461506524694553380312404728152250412034654706567498950805584852981315262314645822794644929196188819771191158215270750144688795826029896576429644542567590630235682055801533927016981754515035778828560709050108824870118758697714753546616622090582357330193838796292208515516513132365750812900234878204166529130915057266525103824534445204410794384707906910630077849845432619711933131793864889349326694122772237107116133559082551610855028820081504833365565283770044822322649888095097790439048876417379028882963102199233375289088168585432090481653929827867896178740645415411972768740482871204041659281673884395101054642301875058119808331386262317197700478958884511200626875475674845949778449820541341349089833004562963481118825710289823722593098689327125015888256544824111993060296982466542701173328661667862928326878137605998990660774032023227769443771548445494596243605044315854936700449440857551534228470582986418267142531502551433031897373903651030243957987242612570194112482438814848950204531712641500044021285236312382517545565035325121134657099247978928161399108057686710386949691290535751158239470745042109062748825077114992019652744668976787575399876982133923017925964235183022568661255457520438663061046257536932815249410281014596798617183254082622313752047765013662026218516683113235621748218504217223721463604463416623498682820356559829004142322329962159187065223743692672448280046254441454334417030591731679367563270830543645237263937361954068753035834657118076746859395993110488406431687436166936548369368488467358216214992898539152516557297251699437989012480542254060525922539131905839203384416759319104322225671694907345097619161351669170079771478906100671192120226190530882948539458086552965447045629740333619578525382928888742713245049505462032723635337019185073818652552385682419751733468595443683087441074516219489097144816083537331019149909361772224339320778521665959145225539688895144594032813547360526052341249781577813950102967059183488784954309670442821109869141112637679519951314713679411247442046199300714851643965898638240892153091712580183213867829340235370265564998757982883905610765762859650685579908472226617034541346481550018044098892705521319002178014989984642689437717191685720489744200893403524006798494157100384978658929909807213993090205258589274237707105584732596944345057985379466831672067864628512826315268147661241133812398166626161855985790284928450813505747688883610726660902923152124648252133294006027339351548437621905685661038997712042692091386333029855371894445189051397284752935237912635349004982019846353315953040151756587448122315399745024754262680856610803401574228275344276752434358101085634104894898445023340615295496539065351674383798737650088790723893925589007481440462224183264533240172222900349684411173931149942142365775147885961969058714751759013450877975963977902072087155951990255920447683446311266229562069942097872572871181873701384825430490559113509456877596460044053147657041474995385970014921360509116875667250538200497462086671865336943435482206514721146668967594959591375554159784017520169080437405100882733633649116578497170888481262379921959922512455970258234251944058814411582972950098203095825265108921679919439176896087735164609488111803946695949051599271255255100171288440176436499569703378412238498755111168848043711376315607424291027294061498725126995357551629351804291373386205608771604976098344118954865465045465485545882016755410603981247374718786992013558917858477515309816984644658848058692381124031211465016463888315917798213729496970546604543168150048578842591891973559808164823254626153319202366384921162039355321130866453147837210086906627568977616479026394088493114284688941071800595176084537672867138184456414213814696950612237174864457309551553613819179633011951436114778007641724971145514354571483743462401967167067375254684795369836550091142157756275790272112648748811005362883788455321281165604893098962415998329902164086003022642738983476156303469297807978051098518074287374946619247513333176830601204711514424752071549609881947528445417700285934070339810261592821039635249684388240483840586657045433967106727882860783508330691407720520467254015663341512711810853604349742261774802102103184094710639283942702044799828471478454965711179266120290710824411357665650337575218685863755378760445682387201896760144148526033546968074590159591318612004816682428866651874524767699215782611205441769716535183216873888886675781304519090032915888408595399624703616892552541130594328457765436540454847760464693336489155338620120122447703192142947872902384080430453196660466761727414559274262287447369510363761534741596488151880595474621439079583985686799559063065908386532339687758810434821853825367396800859321763663714194420664520908736388282742869748394664413777632671197803796734970718812694538948413540128998194577890544006257080401041909208382063849257499117115435875133409576274846128540439342199504479977823008462466957104520763297244734209979774013095342084049327608346027905797627136218775150253710145437553269304848813135627442685256468085627449679461600778200386322622530824743057170755757464111956305470887369008723550926381943643484820834093105401306091511190818841884294408350940763828037339410297708099049704507085028452346925719018435036482555750552142572311531627991928700467745683137657294546902824080364327993026069597725207033693796064826936623510736973249257137476636679639037225555564431607141622075902617331580318938586080676472735070096093116574555112781157065583541865732674578961743259350943890020766543115388699411108866558758121529267029271343286210142529918249948901990898724519482800810390169371104914441448858038859507117045257568593725962133621895618129313615364332908045905260237407553271117403809035209509546745068150235569767733683373291296233387820117121327159847660552109086956171443002865558927534696655545194136190788307998591764750475225533051035423953032913670651594000710922265059905616765672698107893328571836947652146680693547313411642027664748592944802286686427596488552261111584857355370476523416890885115464759684301230183810327548737228756591012366627932460995897272494985805686076276174108449104871350348474023056242637504539891553090094937120242276169237700922923199081349022925402839311238248953140042041796460375886501318787568830892055119764420684528818025910698885186531551631683166413227811003004324377987767346467381801772889742817164195904004496185116354236120616082410141626102002054207219611793931988083806636872872110154871015876237307626302003010949827619921591229379791811999303299843691080531249671004164682095660392247804136236936068608627616691929920045974523621036692460495902665302294696636140792561176098359361129445615075431494313564791891903653665883685123271011095245419241368908044268548745022580523033558627843941939196197819397380558912995760876474434117188156046421407258542979279370998556731479287261552660498081272765146821650910011035425493319098631086153313608050027631741797548990914524449244713676356515887267717502709910923829737950913929405018526671891452956169527424589138085065641085688427687658281652467006570832018154540156314615976674232846800674051019986991057083776408436041326028374487272803444638516591162229502149004293992567141996575666535805048430745179116373542148452237995717359954068061150502219963972457731614407070996113250497094998115215323982857623361313422135925514471570329250559108002184869434707575982315513747974078068243931402175533965347524840166457295153772325587651409580677778069604086642597647882691541519080813236862839230317774139799397818451244605014228830661968536337827454476899934720354791073437332500455777282796065176448552494412313496370171627874841783300241142865526813881107981009628790968749827479600320729911085554969392119286129292408197131015344035559644832577144288390667808570496856578297974013853684536815165024267895036429820867507590405020174918479777361248890992296617803696313704280740061977978259186789675753006240908614780292120438858485903945915222931727433544404673410288573284697455866259535634769810478958665337893017144449035954859774151790666622898412134999169627532986108185191367306148453209686060471717593073359452818371572415394773094506870480658738987667996632601830996383607945176066891537894998540684517736031809328128279082855187453513239425920098145701915415507278756372811701838656783059314057876727107794902876108006576651184371482584761361442958322263247935927971049396751724272296188270565236506809119233957232810364663292485345648146087955320660450072008055128327310320467567626912149074655220909855977401731638110295562488102699711916374507832458697344088473857915412649507765409210982348285358615815917516686379135554556438305817551926488926239225897832146237525319498194167482231543413556896282467472125587172535302772242150883408227819393419383257531838666858250579589172502412894457155747777867233696410503008196752767262702374389902642542015102174404712160657236762822201590902925765991558104430688085710145589152664990602041685487111160488098318936735380710451295178652101950715408528843326059076414119261448193447079932622296653836362851956200283041343994524967332882286710003220896716905950113057293357245778576471254599730551842074295534904318860083260215741987081253144054726092962357991841930455156269839857677207426428652264777590841422868359574240668895311469096803168002644942102346734682534035527982757124655373044050665843790670791881328404883541114079720353684864893750005714524733649047911851730496952679207951592418856670060997572096717159624329763919113536659040867106421449853822079486819094247547930526439684694556434890985796498424631865404110458638031544141967417171782897843414562990904795976457587927228248200126015432407879511589956513976785036047656321155093320639146584682813427642744370252892989617998788157307131458316925489442234398120372154735623135309923422056323589465376676220829070654521997011191035620884677437622354816691765311751527855908425680962635650640094120904878542784027268345331590263750240342520795813036070774171458590971784654179676401640161359760268088665693908738081017010527490073903482283561077648691387741301567428106597436119454903885507312912673551492426392427243550049164329356580073982858758150585332168427547788112104066758918495188352849915081895052847610302999888374352233175310536652344868754536749691966973797140405888626886890536482440541478797357596110312272073652513375509085575136071325742861008821484909322034777137373022516967316169551560907613351820452733056748431670836481914258047824022400172501022542203840833694485484604973886061488687409285384722919906533678979638927398611934718910228790176886109683350575885605151687110710383196930521917843898987277401970268915510204913617851167089552090163478110528588290636760446971739813445325683284359531789116584676453276776067276926976932042768031984950422534940088605782398281610151113702723530823026966887982575225793631252917007803520045202982968796005349796845133854741880809322300557496780572076630246893088098222891413633180281002612923712198789617197629405658070028310418079170188857370320887350570422711270599831313551041806416991226931408064130301710909691678514517871968970115256100883578364410266273919150296786330955581264629712790846528146166785363895965147105105133118042986878950302066524908651677908576671482547357629903635067405230476847312849034373036006084900719228417904698693455470865913433838886211121259030564362244885346045802127542037285351849703015861193884080162549690273849957725904017940718204001803139178521296152761653866209951674549709988425878237681918606512693333262729997574139567870952516958227550162144094782834677664784481647662170187504982312327319218496448130675462384555345719663673230651268066473438574552392044008791178565154584126406666123356083343907882998772580399033921950395104219605597792225622004276769464471475161339780763422547784479907890082655750364942944459714323025584653435640025338700715443690650350423774095737580748374897648889901556635731342386637503293060515104864631891818348616033073943584384924977346578183637875138228976559930645392838461401449307487175577307522432828867803522763391240263074247227689223538573631635168390634651410956324340557806820003342232571317537908593023850617916999448143117872738774856181277063754493229654508325374068556482526952537770661093563206336510720871961976215589262008420395448721007690214490387088589455730193470088515356781967083340484450036400156996984809239865896206802189812386924695535963728574151838065989806109372555590178532077920084837869049266076707409990374259401349457785694596816718700984054954359569129266100909539112855597108600001216948215299498559578394792569563642610246060286175732057770568716928515169210154987862035664548026323155594763457798654082549267906833677535888643446208982409026008642509081572607208730764832493132821105215803748905296810109474122190503046115093365509319736805898873488782560098707368606260918622394657208303249006643804398292964625779872192653609493649857775176026783223212109867741899095047608691860483948242829124062552359657275236438974807015830975075622246986563539929603494567628723604092978085373002263085622799934449160012470004491668280350609252744699294172304553078981859143724173051997559523833886483903932156264690759218464397356447245447098186103933101779313876564183362477925970391578263706191439651822252210533948905750678329291903324372586645196092332157103356480489136131585443878045487766626760579508769182673380975626694564362616263741461578888477566683194140627948702768693223455173408985102041666565141995410269046641575965826861419416951273912347675078431544348462894775053311661622637498802246555561255769750064210392713357703950328494163572649509414206582370204304319253539154197628863542240030478429552109241293154125025450032305684492838732727637740724270025265151297173875788662288665241024485764480837764575894508691823534801456086571758828964949477860892697359056215738431839098159715032679184823756158491730131631353690227403198113028188337602551869149383268140566818403828075578725265510628502803035842056599271883375799758705873731234107449887348958307726029078827176930282292422881360859549457630374292515663126857471589013978703881875755022368533646243905812514733403058958499979017461525486037457516425578303640249624130599213358338363107734703567741864111433848423469966916927292428081976105931952048252729853704741294381206404442771342461782860421975097207804859398005472312566411602902806726477693490228928128182215547966564836463878442533888688804863924345915702240081854545247697638664791486659600149445203358279399705066726346795813649030988522456913333032400354738365996052948661985512224747624575698402786587695449712249616944880379738544729568327691138043200145735583738784802626770892827941976983834568982321512209789633695327057953153447279000137317009292312571078913039491961372497543558928042700144038845026894304445638257108738126495052392108479438177205956028638053963875686586643768736586624116517716192324039941798723922776031596174392628266936130734351432647989496416375012258686407712903632177096520008612224519014609993219163371468157855222239327963621021180519077740612774129828331109949851198223335449504825237045188359862270120261518968736154908971312803705856509840881605966092973675566315978516956552318927179779809078093715332425410317595319324159563272694578363817610488694993557129838385044895254533490961941280019240621872411344823271366020050921752055445908416689512454598711636344372714606009793879123299875754283155567316918542822540875490479936702806880169036610763030620104618801494813741339518247777442654962627975202115647862576806256466892509432021135648330536858228132310546149295415964589367608112637398551206696088377501331396521018506072649355594718699952170830863273636730184520644333820550766099872909352512513744489855107512994103607237126800211016693114545434671749150858373473704087645760977527319374286475957089345262692670459528212084686315300102429778201856527593106993426125331682746350009669748064896083787838077342911754769711678129529700482021790236421296069291761970590571194009127330466134420153919281714804572956765733637073181735624476788950030879845705346895354586218931652218173011868579314990580951051467770951023734871390398535794099794489915206676031015271500688141549455718240830185523913483468526729169145772742339413377911932943312994421694882096488723897762079495377116811822274826229600869834495647211150818193677510419301217426942296013545466373434906652956482254040469560910159697790850411454733741265648530474238775493481238531861099769048675671800698813351636302999958334511288474208919654971442305458100130117617611446928891309620813517899218515230231031211314078284121527100923776134163373523535728988568120165016427706877594657993732596761929410975077703295446836101649229711617000948323911782785226046018429559271279755418428497690205218187799461738997106129015770998306456209139272933960057828924588057089295617538441612813100344703176368858881244565626584605973696433338070040288500776522169287917118554997155137515477199528480592207575710079096033573689411260993049980742912227818501524142724957216088265968014275887616473190027730283454884818470910521060287729577222723446660330234613920867128922865649703068825925483706690722101329008806121944577535842811412462841722285779956258695211976146173865976158059096250105247916702875310490370628384125203361194587905755170701285681425753802116709707370572241372521363672747066995853013686388238762163385025008074433310557695891825479754945233673312520310950641004026119033200677646944087357109972979989304208365887727710370890238055920983190950323394184942175983955355229732746711793665230979485729678078632041771254448325318566458504194360796913143625552405697798299015197804764985611755049985700670997231227456078071856628077547548205938581479523816181127017651576348283705150438700371964224960238865389241037409695788958650966371884768029819835182805222198709765200712456533343071663953452948868524462479761796289843708364248485201543433766806332620967050673073823536070715298818664688883438375718445429808896854054700557750199341301352674446322876670078560721792980703892140007337255522982534764950866732703318884172404626583068195191009481007794542883693382149371928447849810843701981298166594242329911916646851186149429762079691284285016443298470113168835939819983497807903526882745480733025551206297591869413833476133322049304591904360914847600648658907414995217246758433325400731183800896739397611331093273277743625927236886918538236203106001401134635057961209836010675437372364181410459261615004855078051699514156712500729445825975629482722889133515879729928987521535474048446604875016791082554315538395222078541976544982332594568535547237340648804577183985890566133211250286595024131384762942311663545283902072138105357267162150304718294973662291023393870337892281505243492405685299524163198243011447127496415009600166312308222217181283445228607591502106345664144901091822550771729080845177507386571829783213538396609727976713742240212910666945252055067511960261667175628231802826420694220077182586480789063629739030696317886622904965556370817720812202570341622419959459252138911965545669463180445770106983859899451785106285176232377720682860595582738316473240363415188932814052681289693725146659412795782928082912269984612844918795252939279040950386302271083740480491780167116726110305521339452362519932670426139894344611014266438657256652812982940650319550753632540704565225185363934677100703292094091896429667537922561977293412383571744296960644009217524410736410450444694485493416988739840441223203096283440071527178541246315774873217427357905511286216092054254366627407824860992637621697991565025187160067088009254212490347466376342509373149038464735965936709329711156202629452252832136305100378471994007042290044638079898502602319736201958407299982220810604840088332213436525474060890460321655669001965644880119647835757558469931296544939251434752641154331270936795487789231267602722756495617690102988931986507018116835076289744539395761403365825436403045180239172559178869340592639252371611281388846378912986773173707973226846326969857462535003304232625714001247337163585599692008800830653875419558201234969966960500708425680848499144215207293620904364642787137179442950837455577773145401077306147534280217113867301793693488987922852108824447065281433039276603261168397661368074791981982353524785381562805485788477110863335224709977098728921992455063528125029858601025459840827149724930541519780471438591623871367963262203941959404852992937960256557632519928189889359691445576891790380394347473453750592286541064285772884028833435353773049148281388233496517805001412704558715847239525870439222877363697186676003074693877240367479450210074377097912540594464338702572016702626304604389455509733819181241110974922312107329027031323596515541975655867858715668019698962985029165602649044649347247298306516215832352835570166935446813081057950169662221270184477431573185025057894994208515508922991976664612526837065426513493945867418230282077120062665868117707079867321320851670052636126783042824987882523758730079015927462280415112349677549225743532912571188088012658371740647905989655744139940837105103188453986827528073070593041321942133550228984021173255854717006025809198326491460523292794833651548337705495460274592121270852354271248371453765183359007967583208660451333310435890522768834947803768130183659288006731555383824906078865009326411207313747186451242635723790514586340719556371604447850571156563108550864054523296671694550907317044235960885707558322598245959678831169602685323398139957959653515861179265935538382492651563657305465536027758945638439120698798309674918430563903080752286257948479612055213993110654931119471988337121885616136415507537886166919490721210812415266691947885161109103330071203971376365089579165780440442282297669537959189579505053181888187860318064922329766183495042101129275824122916934230196226812116335524654769247965995540804101216759537687105241126378371202946460241848863927885943098979303309429821885965240919921228031382651178932844196971617279737909286548762244270045211508387553452340877347743004052728029568104850255619016378001152757473470159858658075199695564024292129886568232457383248433609016116484314508054405696910748026956709186117088092789307242570265579732036791077365225167437513798422787630916112565205498124539579732460710813971961230771150271240767341788200159009710891043463698587016183016523192232621547367848020821264761015330508625944272030636772820942555131409115209440646314370215517860412042749668528942838945447860908645304375755319888866322182250425837288761781953523340126990586596438859666651480187023862729443371728651258656808302272625897470661266566591811130569742855880912695951941901728724413302745187390013272333023914989854132745227963345688985731680084443091817842459293094974260666902569329146637018010086699273094954561427999602781857532554590523452757309923954439012752783529215842516319259447753649978792777873281324761711782499626673993704431803137241762641267349834947127600781405887881194095236940791262805733631564559717972526678441290070646830783539816504045897299273112435397618856730166108017853169104145998509860007454779675059041297612045266021775309667219596344918954094138645741996945080946783964275369677537141206125715266155210968313322352509074613593885492838647558090351771131752903933605536374655156011166310862983235390803578469841961393393809589616632796501168527246663737043971639783123638480825559533950074560971685311978593289203835369795763485691118319235635198491561101579771322124809446217400784770448273055729733198791409979423375376810977448223466372123161716941931695772132474424099055262845821052005753767224517778148609931795804948884562263918908575009869827114254529241084160592570472346418068424856124092337036255793214508192051868537793608254789286718573975186326172853082224346672245478967300470064480603335470077894890859640530535029090262917922557059631547470861925974748431818270467320672765763162220902726399751390674925171499546126989969434218718987828586521528090268334594250283400127482088441336256798361143154339229104913985214924924996591107989197078249131290984052188367535083270244417256804196663984708779586761302275504878930508638791853642047428611511987419871832852184826683068353679465023281401850323323438351244535165472470994528772226245696333939353283387187822422217965343190563611781910194161081160670029685390508055040233184765189729732428958932968092800341417043486393190198556396543844318410210765272403753525212106753214775596008956506807222068933303637526521388685245202524692073419199066331121844795790748465981758325569131449226912540129216414352390486033399238776587111367596794805378016138674458366476213400021904732276140247280533373625078203708496738271708046984332304776986182699589067602479695130407865501936805446067987029063565139742357925649487594318001465466748451587094465191450191898590816945774727529395840304868984540027584832205212425813583972225876203053231015480642796149422469905181078092378098455586898200565199206396842321339621325416316567168594895891574462276390125325771024608323372971631535290590071296928353845604080180680293765572461358233158064829318148811469338305260441084334441741789484827631174995376768674343554971274919957796533059714591817679444504009960517593531638079412691108965949865407205762010844566117933599613245177775791793687814105526762854737105214836605123067793345266204970399664693145112584672366320728319424922380295279922280567649848386972633623524427095676282513466877024316075237765916018589936730478998695033052788351044389660713013133368518275108721676274610860880533876289478240021591850885639871583254059923009388190798091398637237456563978309954648609459235073298913030617567075451517328557561891918212672782897513035573523168938347604316785519149542307806076568610489666405737181518276816150904538850758146649673864190431182499216534394299789738193681507397003596424869495688146664953989236265717717434081727443333168431481554806412039207808536467896283439642142025609652363091345125187547245039157810275439239208068399811504534347987069474099864231913728630166731074027877718492358661716275541626961654020355634734423777126275574571209794515242972381069261488440177762875432362230975410865414906921377433575400284523550094226583639753618405361308151946188412648237354014876814042079020559099481675804860103478529254451988653093076249385250912034579827694301902207056907401221122298622406842579282802135114737871707926382068578577174947029521759625633049867008728673515086148555274220404831074373040031363413812044143103986483852042571954228886837858460904507555776581352395026459189332111026794986262677224710783312386411653120308844699082560311484035811893772607705357743313439349359314742423114604573331088445034794117556473518861500622548870721079781180075115821311942594179990025761543757028001970959324382053990524949386906596411564420541284154027240359848561162642723323994617529192134425441289898216685359732702039368120457937308867056124439461379734405124529120725621116035648438357164950689120743781641537576290903725210106185647173855559824098704740977371894512673001890810580215842697160155989832206215365413107650535017067647593625235828139031181562744632079157142493014216740216400266433129423067214809256591231120485733998346957550558871555146281039426865954237648167961802951018409398118008241966883970485961757261952402895234112942188292904200908235978414886000761186161452506727474657958154852190683596881974777800862225270561850116956028314255814987072543607089306608398266310962330290259736316950115667300622458572183662386574644528052261238703448863056600678727490195027796488761077151909954061929219945263045968035827768687763829438451335241174902764807363934662102485684331016579020118814195883285936405634490865487632411543720543784899195286641476951483270450781371604705471542225756453581482603378364704249425797512800564199012346072482622191513264974781172935710854629946534829925567185797451290271126611151431990864405896319245941514889022502433369719342645697643847595376517176401812617713448994617995006608095239395210894791763204036682212335510139126097387627596213742382009133780257051451248587640142503045115753373290604986241067923333960505769438464708616843396980796874164361595220961249026565353113603249935138490956931648980504077420014521059341796696128897392271713920521534972026997406492913120208157620587501031611435592548658741032121825236954980503395126903058023398396533090657971075089948716584156537161961378762161096096706749746724043490454109891053205727965822445167942576339474589559004939190804264544271579555543097016653872560984186617220334261513481664887815836204631179220941871549838956735216713735716035426473238908550607346818971358804340148510083708792794070687119689180666734087751368837299285031659716011110170254390587168915474945772254467408315267163838968358661311122776622906004873793852421961672418796761623499434034946194538055652381522082852226163900087775135539136932402744572681006429905233578532769769114143714789696518697918848350308869195347887736030477625475397005913380334721677960036861369688441955605343569383520401005099405431955644587116891909141386173061653453411843361511332952386038094408919460824611891029910003561453644210652731480034425999790656726359990653394012847505026399285827618598377204306351934664326679944394826072732120873097352391117841210509360971007345289383596423425663011815355501043277058200525808262232053159271651071826669230711434914716725867382257051008753326592767066907998669172984149567623723718820440089825454656505800978440595317675469837213515826149894747726722950786229821680914113115012478306329720201937812966415505029997525236677134501357760265610870109215483625345463819548150383536553143036217813645346998917405741164422139813400980237071081370223314844813862864483075959376994301525265452774720473336915881823060841544227553232954522204794932576858561567622904417063352079089426845170719826205529638822449831829232225253411710683098518619406346632927830783451248019965480682909488283810045253888231720797778142200324054111416795981885255574575823902068991800095026897009920825218132546705352660401800089809246291644197954020324752755169960351929040553109746863365947098853278370789375066812320538136890782268030840594088459811575540099799374173376625116789354067653322481614209182833859322333833092224365325781746578575163532851850629415582261828702377546060662982087175450447174370750797536098332125037163929306909350078646110527707104016045220744744695496993100481585069822238147594181653445396835631035486112571095911262767838040280069049830618092456986549051150207505399212793633113771157337662411800911396014145176559180794835067595188881794424044851578975147578007049027165738458224358461385867412918341062691961760172975968588953980782229913857810308950118579332131113213245785110571137607778407972454107860773452428394031875783376640142654682636311956640932697285200979004082178679754306218475056277535433894378953802104897351481368472962378553706285780894988863518011295560256051553052627953978025633385545567994621464498440208838273901017729537613645145949716652659470077106312252814489180646507930755509437629335449644315023059413098879958311316658487254997013348816090247399793251754208323468240316512072415189521262845901873086845650736901969080373930953928018587428406313674647148979984041441153549568041695504028672370524214904415250056086100773612620148852860728357564663719641948796142797948622334544539990718763447433428424871602461629865089482889936879448561743049500816815468522765215274147720470542472392045754111757773975952813178079467873523908070083818926268285047106649037499914323473021055825858958760054575693552454574062641116585671137671177398887480459324881497812647753181344878340342646396574606392846344694569229849067591518129710382401511410187863004886832310026348286698069614404510484510338993421489601145040896038692638509885990031409366975166586315087557991100277397752107785417262987632158821963841339955310590457516347233489567547509773447313894701823926987091261470974735238615322151007259010981721498942137972392758484739111553496645345966627377731741704838157842905016659346937151022293467918973701378007052971870196571584073680634514322686701002326149780827147911370886876966281064190513534288781710844387752147222487274146673598211111163392544434868919635337055009356925334890968827841470491919619124004541553821366713097268519242446026649540733141025982450000271298409514648470944902079125669290326973532723409415508110286847216511116301615657266317671109310058937849420187823264805058572525268942394608292606506112795837506781441187177116456126516292917685010958032223163591734973628485828578982240077361099119072612314852135662978578469108774711828936141086198803995539585383117944525942267373862506421508619340690694476879889991138164225922050914432054504351675989311753883427632747939296213513284827402929926201040226434993241308885016075098721323151694854408031405616762712038311165161629405588668795469356732663880582759883094366141797456032551194285156102133919561222172641529167572525888607301558997340139201413962493440789191901716419563348589377293193485098381709130642543802586376034391008649825548458361995396984486427497368464113736018759409981554355458451090378117496392727509592570428559332374770199076714229649319667694494008940039071980396232562103997715249606275435586129259154101762533030040639385943284680832652283251162307775565360887431617016790346389552895120497392118800198335486075914124617863499440224119100959824120498502809579813676990413429608737769713822388640235862206702151051253021613335940398223948511041458639442836756928443375857019125956197405610729845189143795239547450942877624866673258118601196914114501123916483264412203322568624280943155153778385465329077851576073678557141026453232612309290691601419647184967396867054055054187113280885453489688613189924793445025482430984354276279144534943891964691554481139864818642567453087746219364331181133097627666587416675636745313304100331839452870806399300381543943029038370422116829418204056743207096863172362881003285545743199558755988174501250685192773418433853266488041321866619137867289759823692825623969336655696366673400136783473352963477960856283020702622903691946899377927720682181472782882916147103112354659902220456932344560248451487859670018746428110695598602069568557959378067573104055271564901504598537207865053347671510450089941403656572108376280319201656255675196188978514182009338277009620660538517255974638303632162400740053365851697012598737213420523123567245765784120386350103673120059449993293182995931387041112564862630725647098002187862941894207188507754268857934499633994989921789017446633214188694185242881132858988430207014667632642896536244308764492755519871907078113245751235488983643996981114813205504568259285908594180734704320384422305846295224398916754461469341279064697428925875451008616253454972536073109493767108175194759033404411743368603430199937335155823464559366067281637687991915082576085625355112758351406867606027626155521227964880901420379923674657715141078117780671602277299163326355128741934050883573804492422825512309094200054212804637161686182756451544324995206869464988783087469475758555414673975364723420545414134499280245773311771668745901631679275904295152447210067855680442183921115077842313232516074833956339997260932028767828432934799606351954381720271362497617714758995995742622397310953353569618865475294152331531885913440785022804025955540775139842865970669413461594146127885668509850428212139061732694992691589065173312609808509955147084535399014821637065871788523866882003035805196779117069217717590784718940553725957108903718062159169913777084057378122736602440075849188508446906787069193574720463788943790186728678868821512301410275839432752216538042965534528501053536261815788519824432776545413677002983474871019106347253104888228913031146871990715359061793598168972699204431384896749942926210376591696082756476541838742031417315764368337793273621512732153056933201446874096076445212388754577182386784448880892119922346509364452682078843493878490599620532904835891100937470965472856775132888702707694873287368089085468093080997534375037532907544208394015322753598737053930973466427360590084657940357407073781331038309348955920912239671739124875328316310973775756055799198633900058739271061335010884181803795015577377140145221011970221907217578077132102497191423119615255310777451263313227754093522205650647371874649048199867247508537706987064291281856020440096504686393821184060814302495316248986655935140618661891286700432620836788823755205037328192211754603922881313170892834763535255963515781634834304046165239210150307614560133033539482975539311376883399046276503607831776491939222253581340322479875874487474877294253663466139160897750398834719275887113717523856082330053669004662656447687339597176557087386271418786757198206494027672276645262526032316880138650544818942554813119130138749918091695552804774637284839458608474932489573813786248263610701628668343271992044374460690791983275925589494150772795257048943891802562959969510106490528045216476988785187608323855367391697678529062667727282707786435887584972703287448732461381034115275890244058384735638348267636731541926370929262302992730254125144998740130252860983316859165327688992750975235765114644772875972983821091400679504124098363958203564314157739835693826573500916923348848836281277433213761012251040380133973007510572718264913841992452014390453834405425999924535669960596164405643760872907903125024445256746419325353794323480211468736312936301456555837956813522249108004559735037610045031919037859252235034479690157221683409176046198253958080964720889290562310359509033026353632430767193180996067891883457565694394794528714489596535908125049066748624168994994627941018047149410837219369616981808664271365985009762548309208054191626964694981921774851204266535787850326266007487158750943254310706033238242562779726873362411219614536244864506495475687655535505243970554831441840411959955857571232773464634920401726210445790855651311828446604169443068366250427447799514588102611613672573961006588498809764130391425613350035309826111337325009846843921686805743573674438158937339543723309802769985833632268507285963262127599078025746022859080810222529904508767305666533180299554097504020434458166974891677774132354050521621185065040196031394362849794416925410086549305253208231963872822817202036458836557980457579456335983532280559459708861289706517443004835699084132059117868326911892965919702700041868675797447060057423442756092180081532214404668058591905929168261574053579616844242179965146541031956849452006135696283308860098604481332286981151620800778504017370437355511059288190111340276638301623309063256207293599937349622592501239952550999195351806631120611895948149071806582494427426967545500698953093433560838782201924133671247392903553978752188574560983918831098939589472973594544686031522948621203041172997758207514897930715415463295848229747644616998574839958253542996480592087355644550187481412198870450800519809736925927031199968503585473507136590696452939917246458219357772241185142670786802253264948453171977506544708900669762900041149294473737868747999664299058361426067532898198719260701141059773961187491961160064533274328857090695631640779483654423723163435269060634939289831460090896294126700310023067251382482096432386015297285354458518427174420690482435741698365270040765910617261179572073760467664037987541441385847563132686189670150626913618025049736667648459824115256434124265702472017850273699487513668833982879155365651730510624664022972838020554044505436258843935213786591112497237221874455805617088742444681389198189822599517020206616546614077873354823177488697209174640310172293720059987271719859000874775194018473876365085851222928338032368599676488166628151072069295303206061252752794995160584014785730545798290010114342612710672520337306572149609999112380830894493869642348284122488355964522452608105767698286397457270430862206488393223619853670263334804253124722185672182494254017367309172277923551493940923855112592937464398318430919577356133539097024612928162738450716871224308501170475508924614904264675697742320933080659850330528968791333542769940138515102277259032900402205985042285401307373905195933809807033976842285921749878055259452522127935583237472890730156129652690715934934192605413822158852423204965743431441920892948098930582996711455224704448433384004142910873808309517486001646872874577092323554391722657950458255363221691459131907602884065934921898127516583649274841631924503605111550492956774851267101084693020590710882933682446378926218180311589222772526360925859899833592737765099166706110369533936143370770200253977983055889922681020066853638117596241465509267047002018226355657355570892844459708893254962021672353378882322984210938561679643495346039273268428246461686153032703444469202134574473893845912196011770989113317553880517658456441382139034885433731824806683676945227182035242278770312339584553364139789565715257818212653490070311247003770401449907188184110863415148241735557025994883631597529710211588894726875847475613544845141967866117488595005507515763853039823473172709645924517400236965843037182389979802207654934749859200183213851524387498955992641220837624147359778298141608400186933778065129233569454429077910938816271395322098606187443899915197650562205299690150968001848887697225408757255027868378351137973344280154867610602607129560938495939960209001590272649186140148829120839045559982595318080001482445604077671057213440383802933736863753436368348804365501515761551454870511937851442093150474087728148646499564120773524032689193606459292468616834105657360476664162965283826184252464770102547940522567237027018668055999404730287596825906462309070989835522225832314335691506989367618709441519366396356656329359165944516654907392537328078364068148904978428670345271827200012698128954194987209237137058064760302095788093605514484381697849519794100812740778305592611329388174185102904820876229965893565228431665821590262045300488188101353496978284155196043885261594125632446993480598547549536502389625239048709424436585423203997506793778659123035767312488685061391454503608043534569232757975282246488510262979427474708544948374832668935644001859153782881522489750742802118338083155647864568935623200288080122321983112177143203076936203407923836054906941321770021042118195308375222762335192819768455121879192454284363333606612186321390959191280941711429573674175978656185963175671459152310245230916281383489777624098961629391497290737213990756434401725287443737043606932033978209936367765559650801550078422426943918444764851422512166464939874083434037824006643186376745217091645822964993953499864709359106872081250956527715309677364252037993633796202847199052759744468793632052841162896915921720892275080401165843655754853940375850077206925706223606386666664624472264935732250198468227182598978117482174953654827150435365514360673336661172187000011842298336108577356553014303993796256713314382791358152806294944093275524303551950673309644081594633492047042627205774596675286922855075543785806827827811790727504629558347819409974392370730587954105386043195848416490666026140793407562603771642533349317252608786857393000167837543430998527101992345157319000814301337580281836069634687448819373905748339677189082569683324961161439192145303623155714340386181650866067852685093685760727184527256332284507205733875932947641275810621772997583307911772532034876546414294958883890773985765499427036142875047768601789876836429633823463861738394681453620148738868680509071212860101662602559106076414520657715896001134114524079499269574802652440457452345524869134144099722119943858672414396606757731324721154394101111028282006625723556853116265344536544246926891426771326085510426345879749410677048017586550945026238926546239185832003344107243258289216060425771091076636202441185188354003384403915892060733368614623445159869551447459892366303731470222514662716669990304181079077018910995014416157340710010056202822797870934632510207913081570596988421269328117961348029753151367038855055977682199568137989248264750773513471864893333436688090670717860452344968893050598891980259395109448718923074815475115670002608101904999367238808708869502964717185685022816652588559994912305328138974483942678854405545786095150626610014750471148298070883928910039315298121588569138535608204266962608056058295963817454205449778621060994326207095679728889428769987445556777836521310986660849335081943084130138429998985818700867166567170973348056469779540296510467486233267348133327082595228134679291449499195568987053378073708753739948123214022994460728638848822418655180000519270033324684987284023269094580221727929945735038073311368561531348650004476286180967072181732640151460100233521175283330972416378949370759831046486990995075838137699778299538561953767209425780608405149403482770993607862083912601622011225286892450192383617128170103124580938703321048323314542025195155883494347379100566268529837246671584394436542985351719040259004870907441649583162819058796690565797423205970982058245831383187650117098063482098968128161667094383215590634481655246558206766185074955526132275286917118506696638461879355804199378636793566833052608670555980865579639813214110609795685074690663682661708045205192736949923908204441227457285553918847735523914138573457311475238380093695895366224073111251220675533798870519004195697395562494676409771816882558864722346282096453594932916994105061357731858333787750061376339574930465306804312244209649850079169453857394414000261130817659568137633957469401511965622372296993024057869903690707955269258410015970197237625475693046117439347458164547113044695659447825232832901836172353265270906228374737146302690054748386190770417265508030469365143571228002055719692958377724113828913498939324455565717755814317028344550933638981403737722507657452776108581540444035519391936936930877681126656209782594990265722730518977516037511860805300392783306600878353098501685999846727114950233146493398468431031858437601156090028475757732626437930949339293887916147159934464727425414612458415516971717561452982666360714423479899428715312326787413462007831505254237554518366818175319947274593704882143879741996433543172339292381336895706475565502779536867452665844023401286278059317835978132748728347939537505972564001551140211574367912924815664931671327738525539109004538544127794807283274027944697608092949916528495386693826658043220752710470553668495668883740554129910497568797352141796623436261109329123678511244483286546261247409507584628045021883053422758292142371877515877124875245491916870066722247966718132369629906646268589034679425421655038670118498076908297864288745470528670117417923358822544591015059047620251794356770072200449348383740465920379183455656343414664764683106414274477523534009752813569299120787705106057405577978106533235949847403360823778817842562530272544035365710957725054523141116526306340128515651720751066453886760390403686337743097843102573586945251024312795504020668768713571476569199492042726211540310674103084634272479670915118666715020118161646213641951185337478612984782340247236984577529677263711687763186111398704267540709835251860598807438628740562401693783637541847569385951212301149248003618749785465039680473274145922846552411582808271485074406672976078220890441044054455005455399727067289584688593406115039130617035928228326316667784967670829988087777128677646717522630355927496638873232051135135611792108183869629095818938410063293075210001103300461494933743609371544262391223356869232526478096524500593644911530179239237372675347940435194979571998137264593198097905099180074951884290006246807897700332732175475302532724915576966510372540705583315257170942092953372851948507179785489195468784322737593729372686319446220930577639914836745689411463657261878000522501308726513952901104190703065701558927256076176150184358236720053786251195775022625067375449355253920765945984978704000867792093099070138679665193900426575364221308163619039709252540393015205169033396637492084436677312603829610438831719696929922427041720752709697971179121894563835861138787428354722176512911353144614794002059075384241312002855199940199384374373318841732886630488328277818615430013794920297437397163471775369838659309386617841368532918600751744307275349618178559244330065695391902411300694215591442204984822337717217759765329238393328712680028089618298212493659971303352497391519655798474871927680957321759687764319587406604220160625209353424583074452351663102466456508195562683498956601658049569403157751602130848911581951542612806268808133975980896256220372740735341621980164911610404491732361567205713547160453644110627594510713214932010831186270571689925206334145205281617656860180286430740772171613935197636586894678296466383990450046539639395625750207296876308977236091528017813243014357757036807691105857443598303034439598075511053799945546097336136524218503902060406022104497336206606515955145859047435283702790547229037613400407011929575829450228506251085978381041715078223997904233273711572946861282454352607009386346398272300939590381376447045555758283539302483651587695546690238164937503650316259291206926337758326715644329001375793513316729314804098570006415604972829233180487654309531019054835204690285638571434816573266193774277241242990344104059991228588052185978229219949886026270090101251768979453158717427222693003035559698931843064643334701580228311216921342455760177867747947802531481998795017914801430961931755836122963786122512827073088318377223765543389364677614684749039987273871286029570681009911904109291681793059805691579956072888154733205720406425173777583780901489837338353593342064495336675274229911154096957525884605337533975037672102539606217740936154835428299114741821144931295321622239174215510847373470136345076146778048858532104541170694798349737188500140856026031911028825291280278057546366769486234380949960375816599323023679405934936827128218604518291920365751963051411109725436743340739311900272469129280877219234084744313824441475160235757323966328168894810040373595148583100039569844552855260652902011751465547991049609427632081536697943398319645055438691898995909617815084454017129919480831046386929845852222556192496055562343079816933598354375039143538767594550377393552536329876953529467487671617801133739287484188479125675657010276093513602718409461572808576164953216569112999414045283841872082718923793560289126212940868475588314077419697465100406642944053737315323282463424554259011825277860282000014258272157207972378320431112644192768409881701311330519143696184021896886603968879295890522849125817001032138060020223021869180435626346498192939215151749783157917900206275904809135851214031992691319505909617068733866642629347950487543310906999429277613359962066610878600850741366691048472500878807438183455158807905846366683054245474910486705200570291649302083931914739702006502937685415292868103048423586629486567415180074190020055682147384398781871925165341264668780604947174105559950940103893356302369384223737125388073830556565734128537891098978064652481974139140803856140094857793046983656356288101747514479225210962906042099840084564945356550385962419302945301180312663224100532713918817193689038639057367789436489359806842897647299139159276563602184554395831231054927841737420060867215000582751483068771808339069192384097618037021254757205722713028522147273443267858942768047516799439702457325365906598026587220085197903569050503368786807512879267950035951171675339905065557435714602004394948195401299551098802322578639376245776412728070930223336138181639817000827039434177854665797865832238763934433414869426170260249118271293645155624931101010984862080624528285477982014406260321415992920721220969677221105314167759138225673053095163192806781330140758653751976080653213067394028045820667890620316953355291923867836133651948430349551061976938383853125619204805422993136507985779488553128609446807958168103962225477731223909359908841031861504890265812487784169223697945957946544013548064799101666088135688151399331376033156939596486040692336287872269514116281476387246783897985909315360209336526666527697400752355107619368919118131747292559569477919246167606162465441781364873949348913873361090929375420601104408813635736988500689907382616464884977795519086284046762671191442358595365215320718266066733532435513734184786125345458726077753435232217898703459145057684476234960237824580428008145077802713996102490932118600823745104125810048001955610505603032655655889471074413513689401034903222973747370199334625204530363079447658801071724197552176287478025342021214365510961677521738300252098330281477762892928839564715751046894940068973018653956580048511101724068168429366832902547654275915561461749531122844393937289028208487774488382457519696471203192651901571186740557731460119496344352784339114630125298141454916822027551287560415865010946759917469546550855801298774210573012082731815019683468640591269630698352290853861030856044462436645478339413490853428653229598629760614912697802816608996398059177469114418345399684503369673884418774771913156827432412688226438339500067100301418372060826558934253720333680356867643063178590429881715871385555130437596440787409664761212298552075529985079292583531443693087244197494328357730735373536066359179092353508548885606997724077668105000535807622979229615480666914219887489029197391727081608099249272974625888265647882922583473990121900957052414130429065589611222197237408336268557330460184980710435177543071124669446590267334661199188784421747002891309864925575992817971237603854736300028460440736223550662212621496871192428583983105321182661256855843115286770912618379147041793137422629212402932583652001561290772142550794189846272076658886058846869125373034285115521602861348224216274870545478523729538488638087535766274068812714919365281729646256588312443701027847900088040251681530362846338439250931371648214401429051378499839229646532957191371427980964511735694316571982937408045680851668763763721746787065329443776341056019068182936474814545641904875102454904400903969170656487009812504870962603718097812317878358016736100792243425787986456020385974209585289057830899796370926719459001772097924156063668715312304623041756912600787178892615740489375608403514993432010619330188164754669080214378824938239603256869891291128271159838207558244931395122966576232536687059404218549831315331966311859515895045528458065343729058187855618944824406577359822722303713923899559402989627921178184086206382752777519066681016050581864011500859713924105562667350514501386338447337436854879906468689143888609380680583908363024898714540839991951736725000019031388900717002777237849183022808856498134903353133180838348660630026685181076921484748688872974210257718893733379519673190296868037152279523323264241513945929390533539947438589005818356648048029044342678233081297591721749691389920871110583025613906462007651041537144926464337112988902386030057163743881073825328692857235275603659311364722526256196003422642078858115438182564898226573277263188065365370544418965919640457569286174461927211410631869477080332424358933717142082985169133217297529076488146034320200414915820508515590049223294911219996189003957168951633936726567264673045028826434563466137287708519199338028853565177668307651250383383766518890578964319606496493192788892962036386997767114945153854199500605883299699886686983832111100332176845376805915613465230211417306342437093016694888413162111168144811522627785090692249067449638669316326127982418748836913763009585465883926070284753743666751793251205412228065819845283503048961737890626403510972771246365151410999125151326932796807864135631798069629512424656406192492024083429777623514141728848414145945927380906925327947799472670178765727365022269609585052666365657008864328014803555587884356596224572510708833881286474544651712053892252500981401666045238360715449904276440010102790787273481824545965674987721442567996742260127899102743467444845549453001506568082617223405344741007805725990185310376151176538529664367707177689972832060995417423670865975910596815267594679936183135801097128300739183359568291915419918503375483088670819876537165487950998831455482794943374900680800623047284525777063788906064250053368858212400258066579870477781394076625121381292091299294229734729379213922524529419772846312008419064880818142719797069091695009663543997444622710109418284325099147404784643128959679351458196703925816169748631834135455774177039554520529789743003460788077087704738863418902329877910640844053904020687176051425637055247301253111740937997403507048270974540609641556415966326340429248871990772835356148548734474752916657425732135344229049078700376695122805060915151474742254489998325295652373215318705441476490799853035627793270613871972519093689288438193837403393824943079647830536283629778748795783333654390959253459085146343877851227328772706506355681063047627455013853603069393793185625185618715534223605287100783003395991685916207637017274046431322884041703565199788880088605746467542958761160426751063611425540330017597994446725387403467665902651397812815157427600708623029018957488493629851270899279582047724176310056309634495285103667579063830396208665384706007264538600023524828087685284062748871565719634735358742190296696331905331170658583992529339955691456275799095970601698644420116580271221716027891422566713873159371644357315359683996698584757406225726331224969785617856606961743705422219031377417165514582214586416004714280635266388483517555067476709426440366260909877248276060679666978329076174608694289293238622775249887816708242360413329700724871820309563856799968247552657103313596600905165356715239649661538345207407509840100072394424793574866878721899340999817482004126032735955730458427741075465034486801643638181929899789784159232026182810968553439544068203253675768715206516597562598891671119260084582320284538845338785038100851788845863668736896555092438977794844365036473133846471082980362318375529112000087139198221772925842984645795195911822891611958438687196847662521290326558781138368360117851543207844380103444729789303272688717347257026616586112014955422093865202929989254292344353245877460647241369308668262778156393807012596292810718197614733252218460044985555101975672098429458537152005964441766401949869912844297953312286777454926066262199110011768543053749027754973643402433630338044838602283243179464977371216771519603185049562587610784619120101815625532325581672782317220045289444901863216983164143913323027790280601911746729531477771425282076870452201953871941846855259700386804027843582319447730645900110035077663715440975465996810523278354651679442753673281375973318015074047556698169169503710773697081571128990971156044439522399976612800986977081361029678252947301951382679840285750743925709929463726917210656081765286679294669620214613297986711482506849974885569073515360446082037482415288394600688691615582574447132105940687660591230520629427451306950724216908451240214029382123891178388125417627523412746066203200050820048604758280305724644541182289165343084172882674537457482228530574699081008781934676558953261395919847871728976825159288508073608110161497595586718075707291841816659543271303880124686467420452779060316485315862328887148310144492709298387915096033976432710125801793959189824768199640635086852024879155140583604431863021820823079301849758673295324133306108234391283173481258481994884362458970527092294307474110971946307949984877692482119108968005004314183648368480935919027442115562682990499249700131570000869245153755421561692529459481279575404596681361681653912395160524364666265537992250746328791978959252426230559060816785333949596587081516630257765686311111531179238786355750863204597636673726718702265330363819088776229368304999605742886551332483180241079549882317129509707363779132253315150707399677270117847551276097152076207930676211680372764342300548725396589395706199675967053024454724973436445968161465229823562991537130559537235843049508441079822290193088594020995367375316585286873614919884083716723225482039875791266651666348436326051222083506052401272930885456309407574503736024002024716133893343194797713353298803084923314657207154543306998378871234606763701981198435559859045253416795036129928729669054714129609188435979927556210380137292326531185665848068198743820929294703449658483635357916333523457499617998656822981045338697834578615056363576698873016000199655402901155154579466135532053720599793757216939049088369852195154054774093090785636639785858457653527384398354450823090344216369078893740690400430580303452901164248390824484147094180409056064695912435775944952654844623877240663581889746711249789033925288584482612244412303458134673316432851732466769174845399583779191239750183919054140749243408596550463732674947769044675409636596026969595115766634510544982603357866753083119866163229412426328046727378320486882462351294102261449360023400225389582327700723779256538318474571310502808459539710585472247137598594168638184876690486166808967342531021571448764764898976298156757836644155186934391425659883609417530900442796510751228789600670025854059427882748863533924291835259483190220359363138088719357517212812838060177881601634223090661860223457678591017259508861125290695402341522220746413250648091440828161233669719064753025645867734936394995380284947784782537907437214123827334578512023500369804099962361529693110592755576734905285599146047217152086798937432746350108851824382820034189147156080103663789037689801871558790423583471200916676175670013348837214384975377134609111049281492426198552571236493539260726707630254925424810545439197738114047280157427105711407023439216530609190629344922445789179319381223374411969668747698284067842790081265123670623075256818096820790098076431321606856871970724683386279551580419104695570874455257563220118674309912036508351530727281106747558622262782823712363599767347817560523455041077638386464400494963053254364159320150613285645068383319381362617392845660055128068697274194944657275196299555602638832229780119704548614432273748008974623792066103175365731702533633786940472379385421648334650568007792729838813732614535837810148006979162821535030589457194999724947928893301599154328539736624431864303101272320212108319679791533084201480151782389401204061972980549684201510480588931041430352257467715560305056468230541537155020932612320660671167119836311719465513500877751415291032281081217081313066511491918587292679440307468124600008743808173971875593876805291533376461015742170753040425910366438108382089289718020342580294078619109031832445057045567274370635101011154669077250463445919412934900526642787197336418951108114666011384021569143892417658055888793048842704804596804325512907966653928840297993755504205594083269006248220040500461106470868058234277386099463317512801672343539259584740155626822413035040128437286227880256673066477585364913477352354031655565437727157785017615650003622791208564700953992906329556512952075822567933542212574143722316980038157215630916024237584673469012979972978239358346580438358901219356053191868260566866717839030334558329952215069512189080226991746584450351827949898909209089934894284824433437825202875080213929373910093251446684909575288000934229608029943492756511427147626523453141663950970835216916288217665524560863862772984587307374692483169133595007646719297568524873097035913574779379655992590267500527044212099916499472901762660365333209456505636123867623878376315442304883187995648799685338835744431110975114806790497771660502904068396134620065256661534200425122347366020891959645059785491200269945040640414971010374549902506393191578354997752392637458465819788383719280593750023304105795362840270357659682540644318489687067638718531366124674697173478143736307056418730932694581832009652159617107491407451873983661163191395651334136139158748407026390564620343923932295132080684798824889232929659537137227720048609525542813024277563049476331726945943981523555717768249351360908976425060302379937148001783707560012621241662936519217177399372651885632999523117850105264583742498360367922716744777472467629540316619997098877220723293278324367928557811688245532739575089067938596522983058867196710128224705959943551737001249239431439531959053227978596518449863248633428623670418941309973114177279630684962578366316504562116071075913439998457686855968423954926805394098729897281332447311523185013822030423425792881307184933280515812097723236048299186192860065214582695124083597338523426658553747302666120750887705410532069527663042603330168070880858160212931063559543592058044131132756988802333798280460177599817220643687938348107157811901751642324362917159987873327717013677616925523098065682291900418941744925828711599022083954021887136836866141316628088976817809100788139243600722005425357917645086080883384415101224329896829572773971785276358006435041980707819539373900723814893986949715041593045852041268903426484068012916551090885677614875850112365853766318271204042286458162806261627894141017331052351016906331789232837681852418478181810213078778113355139427438016318388283291126286076253823127044449492566875928796801284820383691339486684393713805137927718092005171068700760060419162296291064970910784809422387684015202888831897316269433785043754965232441294806421516912705639558085599390267431826638956629372887507991886237890947736484807664914097041669093323824206174960629689603729835808967298234352031415464531529411118453237633480549195968894673945812257747019408206114312113983990598662758145541092732661309538934875861501897027248289538256999835642059000776078242165568688001953399651659557343975406685768719675583785313956309845584287325793178081067817525955077645155747937548348984177794706193016527589989668095275826372451041990766703630506817421123563350199011960123259691831577185567794185835315804584612934645909943313960415006886176322601864747302476203112701504072142749566047532160117524909343119611014496364855001654142141642288464859772803288919552203069713130252853377921372532400388992153966237466491128595441625263333067910701813395740155218771443645797450266123807979699293957475623679884768577766661723222268260157231386997536758415083992754195680545033031987087970880659159700365474777970628450502043543506140807596448516150559518095872978034034390845901521645296575507247005073660934644843428414572452076971042749474344738719590422894148723120698543943634707155597144107048249945469154895835634184496998720194661070881757863431877075727279158622591523700849502730855703324188448363182622738475055296552550671362488269100625322039937004739448930793079293299805042497214525784449306977934722316269784610555117431370102458244354420925585978589253983980367222644431201982883538281281400157012682564013216714181570488187953970288600562932854487778658013108568869644064970433070404847752040857641963007343957846195792070917189079960500863418711122964637533899223576512675837458443247419048645125296012327039664299985063594266027033120829968407342838160303388766011267783322698773323036943739821028945133829674687402165104541517090699208886625371643945165664216285268199681290109503392173802234080874877145970389908295019128762481743227677812847239103787172353291195168606967778812002666570911244414318711104728541478680123978146432914945440120602928202786778962031305810840160007231202206447705940588158639842072020385149460804004449062293442294640301050981791257999766707498936275032177068427834693132961748298745606867949026212371885650710755508160247754083401730839725494583193442296760792144530664359602746299630281644950277366477213841055730784306267687970173599134257326915162555130901759875988006026864202026683860389661037080940426990152994614187437824951880729717155434996342059489166461393033741659582421496120475914602991868291806954607071300973613461527211462778523783190739129082156640975475871477517055616420295685458235676277483807840851402814477505300036013692970505206660206955527191536987113426461541500095094962304138881231125098161625911697499658232629709103501920332410634478217542592498749694807410604868194979561286181645977983218884513148449215258526083165979668250071307518488927378748135990136919425796827251505825565250815484457745980529652264378016729456535087265715821798054135354251585129895858021894094038925044963346565689816941106436834913312953385627037670980053766681781160093301416836193266468749860951931301222732156746011411713383706428499522006474933912679356698916167917145266854824339609851750885097566917937008792863720698789966440257702829912676036950120087772097013855282122594541467622162680796560417146027311592659409568815809340971459838884136612095971153490837997507653459720052317051878569350985561792022438177397610774765372923083712836693404815141981516859705042350883828295909285623350425563630198738323621198291153470426358487169071024875705953564186452662520533801019101640215078556561075518401249877357149281732140239457960563049995055870817779922754267505930014840709823209826899247980120850902446971507485541762922041140033857403821359010042034908630071794272859531647182168067202432323620825352008351437493006950561327734392912845186176565193449849542819102262516047455873536924843909088675799319054097630508704351376413479133035371005299172373394073963327910993599064396601197757965748306489992198528387852062733233103012149627512074633759071125856469278571914999813261942442607611017860524927116384338158458585892978458679198348845387945782764804183695998843054897382323924670612611577990480171001145047547739785413020736499318848031320320848299331483210329062728324473787338872490193670927768099441316673461471603075483345569036141373793876052186981049932052034240955127783192411701124172281978305119145815971235277566548524616472262665854582079556565769418856024827801689063211999460541349500393067065246847243854498996920313535301355233434835295297913276478573582651530327441853808008485152955140460958364327324491153461048636833732334903251206490439396691544854822753602512944223133988957074981919584342375747817350014784403492448115676239902001884867139439231070531332049581498213505928243804145904544966974676264402033852801064669848870111378898549101242863886719116751242610393052701125092493030892329492047211154806389000649246298842651705718270587348189591936040200423049055674574556184597005107389238247830415878228184260196401024441057896108131012231257618342761382663211983681852386221397966468518535452905337164735442868518464158719570360780610333437098544557135370974203278513083668855345101339692153271903119076784827308065506351485080575689939558156083202012789290053580312720176487702670868582563163934493381650193418006929259024305858549369520374401987143619556833135582336938696801413601660932740572263398593408752227499185315506598827033930979931364937674765244429067286069518275610134041966674454697491683228250257131881988831107421359836697029519404449459458479017188456290874518647387032888739075467837399172471819233341669933525886065712485274044379620607511638387143047740011154488525050461493894149913197608254220055378232097620832232798465786802034341434407674190735011469463416214455812142888057793869264013521670434092433133586108219586355171489674133878761174857904731999707652237612108689409719651127799495950247491984654674927378579074017194983968763910035066845802536590892865518591078033010783141307097133531630439503231924048485563599227985592735640318446332311843129291336879561764836888183462572944170416751312873938892527219618461356203472675559915423178925494649320836338274523078187785094447909148422819299984350763851893767348196143187352715191775202129099067603151729066060804196106901513590147006302069290144487237073207878507722188809991764225578455533016319921067876526976224181663641981681369087907735136973563796952848974750900121091737931781369758596015184663735853884024630165313038399201427645340419107178278624438224148433433473228397913080776062072578164347563486593038886863456752309460955233389481897014180464702212406365454500208277316796249981175623044999974829668160589917743994028554782447112500640997358934361244688985020785862287422230771759130720065847718783448521910470171784634170032053793943079614199948776494509600916385007992077967264796719722958902185859376205828380142062966909134349310031853971308207723893983879186678326599730670673347793816096514674767460939796609853287512349396052103189573722562112529666899969006965142057289241062143960058927084105914045426162155788810208779935447879846454210731454173310027444507054878110155996923230923686881916951114230058364019354625416339350799693670422277976948236470439463882823209711249743402660546346097602756614224331642113811751035440550326190973886214083305954653857292826570889567075111599623731831684899714056180095021406364814321067818277895534048717888632392964187851656363448754467102946779381628553538348556652179219286787537955863757146728627400367352038871561311596955859951692962681982606253593465608877025471350097433044901620453420709536404899981827692029050038204383159672794833413475501175989222895673188317470723406142519229041190768401765307204209099820508700956338331222507785732269230762335422882781139793694028954795393980917956048327610652070357590410956800696651020052223773230190036960708300466085818876523077161738193713860065696801848248673319332528674953279264759333332155092701869699964062335390536578079600500609612190718249484989061236831968698664717343446023899496309102069608940935077016537347692897591172894946778145954756014902123638933892748091636861117257638624235843553511443680707028590922090379394147553725228033127260710580489642705872134931435215134924178636902733513707754002702129790775104029953584592925082467286383510607229666810262295737314135828059540336588001397389331676499715962503149727155594926711313387029507113055178638445494366650840946028306150939801598865154371694593243752394351576141859197222158979756933755702856608540549296516366644214460151656302845566214298428585072968819372539212607880905459115954697402861748914242161637205523904152480333854381790949073441835350072846633859857346759811795500226249560315706891276360834020548253334371173084557858296540780101515100583281013408990833874666797201391483205123396603895080485392190658886543690738057801665741177759277224737594982093736118028446138461568745092475274586338711544642257849095641834544969016104971320694684268286527768643594196705275390792554703815871730944151231456352723043346915081301949056620990650164162869931037082141745864931786214001034896978591189682655924692190988583477386123942435760792962078836593971562173302733324229330233185507357795681063514837696223028002556026984820386209686598291323212116388801820206006534987759061766574069751618445593557272789373156451466867157076330739977671738112260696887916423143044930396242043890677056005209757483060803131379343587842661335611985569012684849118505867949069795592998487409724445798348056892303013046424817993351075098404656414015470884454205755591800544964251989948423274161082235328717494080282928802513016351277951083596365636157403117352970587019656507366615507981077404787600331748823215165878331946826141438083000682022916680129897935609122716927057527815740056544245317089636341499363281880965066608953242861270033347577811725396500500493976820911073070008783347084234135326856888994602803173821831865834418524544207885332690929498671936456651246650917244844215355716155001227643820143619147928130617405637334179991100903505542874025487515667616567103960188333982194607466557592023272926819917820313139179266030354609512828365562974563768195484951135056986057885551753134647773083133166110648984465629450835340344134689674679490061700960901833953399708117758166606884316396716696344149400989587042843163746228187459761257658107338176403679778108715234417812658890584266297154249002729548396789793069135226559888456234128736361888286824926453506146613191220780599378083382548372396855513625611972460806420627634802420611621037840279904328326013319154879442110995636825916257736744167231913646090713151786930939225366022885625181435714902268317411769344241189533737628711901516898442081684103776241196973511846310696222370164187842687614578521430241109445686679757729140012675491318629733993182559613178510311018236857542281847064151077608752279614266512361409971747905126938512671503678176075131855278839168149479990657455164718067193584976984317058932122347465256670874735678383700746598248532031562809935302763103715424656767674271341888391549521680649040297910959003925468067578938723960362026078852459660265810251276893549057266563737756339535694451671283419173601473660156131107071562412540736689072617430036514187006247707199333697226907043971138438519432617173038456463266005714731387321039249889061990377095732544152587079990033630799470452034496209490734653679431383609838699809049281616825095735264274788726672777315653824297899607497331951839940135474930630275607038649034219405767951796851215284768892541227238376293555147053926626417981729985677084420584125442486288488113525460120333891428950137223046788381355427520373897842689494236083413472466610949026804314651637147252392641415183211046306006556158409541866639505123102322658330910468700413782904020412605317600245863601613975303275381959081968780153762073571394429448795945679606141888023317580712377500038003812528664398343135451665158834356043103395685820448274608697339207176667803893121553348555369542825293168985699843485206760880413143357997165836982988106667130166204080069677850576584629764487638347114640337911888081720579697024132709111024184924094099411511353338139407944389650302421777949613709296420864461317594506440896236866759248200278963635417340018884366885858291268414359694717671820654186397828316253301432663137150851105490064558805957146525829093329938777463788547782154098195582692322335992339471808052292877868880333891682859182833121628419241548888968021127374358084751711497776959757045888766808735916091152806138410431212459694653786443991767343628045444955557104922866623920312937256653651396188795149681351308177421916814841485189397521427296933491281554544615401664283203301315435850301321326867079463062467439586441596343451342580378062198227986606054305505154365084163977886696134246343716477991101446032645979728524938119763642112094444409963244617365951104053208568305237729442581764300643045631224393651183333772743256665897660821207964063686222640382673693169390174141294234903073950661873159251620145704457975876421362714609858813080050119144556004436326583407781341966238853419279693744710537288890484473344202616302009821717523498595716129158652996111189786330675731310231489067523551566417905363579672006796038066563034662085048209417208523366268528688602128621598827594349379066845208544843691089825994988091932945918590453294007822594809427130295694245296037268565779128483571368393910843605480911920912214831753491496781019197139307449433687492308292717073789561453415709352464251765152418160842531411853005269899591791667441394006484642748931627399824683659524287853195042809871153996746293386488854953404391913111556237368376024197412968721764180247599082626650844726733484064208731645474626058094507891126222875309270887030670564339279386863405971730839143049847786462420573304555397791043370023327176208281918370551523717177793175972982555980897495380529080352012108212451999756320509262991284228613186284753036972294956987428169463400101487651937068996291658772281229415573268221523354563904179620289220797196486294328238268171597752093704438856788766594229672901260285610013298627650117258334454586062438193950257784184069517031058026828644711497804751246676145221559566280262586804254033774954250900345488421527158511394361392226019286594238023311653853184958120057271805100086705303675094583784465574285348758589088658335859955748579700537925402560009394772249993780835443933704150474854141179072352406065584808057346481129685766239402433041306557791834197931571442923966869174055696832220774687529863856120777773760529590261261251850222944086123872661400898140366182947996333736762147445484860112293548898837379024795160023434219606923173511823731336494204925554237047752929393526870135573926097628624410602707619239448575591103965589404426833672975431363605397741761890710728069532301896787451980484069350859214465520644093664515631320678071170348380375553485761534802649105859772880431651212668890146569188568686557513709294838063945662045023421251338998226080125895801067795714251530626961194974300471358242854907907993499860163006580219429043820731472831496884373670429578501734283665276975017094315461407147123756067127322119250597185275212785666035836170063679647690659194007199739609145392011153660429593395738283590905788851109871442070722921830677690210969227362023764138638808086677337153486547318424314224227405353168558276302511046167298670527901710604912772786145759624274667792869014758126207454376165618016893708887688486556327997759753789481509972795383095064587399863152395333624310054929193929839075987382143038929159496420093682967099700596583514959592017371624288918246545048551481991522971020372806537946125590167917626994273939857884838355838039713353792277061336770841967970488267745742632636272085237346027920995619073946248912526968480316954734552118637146133540951403571719787043890272861784906220327925741008280514327806865544636585214280946798604251299026769595944713583337632640347963747396873431508587135596360430924846487394423326441799976707277775921459769233470037622838946089519269113967951364202850627968540827379388691437133049693327331546661434516459442452029181183306577235606652776585361942708944424570819104841561359729200904987734688553913049452968321414312325149984196671670884574997097512592689542820612608038045606651065985595152909266131982948604290025033210190767753802270863273870064209032250464822659609914148279857502787358817021315219578815055576260189385792912375698614749781671882912387162074036554274871821093135551874400527113083554363630716347008532860090536027001818780323610061760656218261659904714899776509065596028796624165385348514097762678791347339751919623294272407777418643123305601307763521643796261611424638217949696328526263977356597465653278424057843568766316872015766800588858200289973669826308088154682567099564112245834314840265093385927571463015373653876885894838447489950675853396376856659331565904569776230858809493100021110580361180765619381190925899733381223865419668582135569334930418290663760029172794304319344368173395829409949028874071319783442571790732961480947079567860908761509690157465451755207162089899285355662782406107278571787126754591070525497685315236704977614414577602290154380705222105979830067202172822750079497376859216039868030245263196766304622575697878709613357765986623401108328335929950807757689337824596121988104005486860906139052966045705232127629693803105665855243300986686659368625431711948437224429399877990543076069517060087142237496867086736068864207180336447412163765611135223230238942276311404594031270804906221382352617477522921215591396499188417558821901482094126065146946820140279782447329716061677114885231448663957551132140980300271791593379574495914493715861272999433180444342788638293566752257518907604270361694454622327114615452020571420717505097842174209482979064851831384469635552410452325617515675997393882363291075260767134206441919731937355640706579393258096754106159515365605636197985716855355672471981368370925078147024371334598519401502141757655629271662619585314392512926919410928093060123947087063199352830088335616365444169434979304060119180579217463793206602835223494464867385617877041518051430611888337420500675548257778281255255042522194636261288831342204526512484660364941363526844879772086837348163787787932785153175342318699428698811104036171895585158760838534610506383445723907609788740692198787119582280725958959026632479389343932902317034616996955697358527834059507841498950392709942949584704469504855340063657122807036529187845813734660494000794311766649452972275856644930547664267694704798056341060153604433888855799960642620688424466390182859879660945464957718149622528112241043752622739074555347729486296292964662863400259453782757984029528565610823803897503298356741545198387436794797779001345233138756936157258597883364440114427525607196080384755830823451956882946009061560150235933709190523850048786822946245122202769207030353217549157268132335839243614091873814340118332506992174846258427797593370483038309226730933036589567884562239992957222370754790273800314715346253467888970867891180157401871210242960411347072083317987260777626359694152550664700902640012220643187390031181589669980213696324016296650159559797176963354116848443054455210353555683395613112069135191670900873557856586773412488956559881713776041558596507246629998405116293350051829651809807280806844755902913943761543307422512732354422661681322530751349827901541257710372573966956073719228678594168859424878927205444530486839943310240611741283881378008345522873713372404017715547807966565650618052843436074693070883550669946898067203914786724405121080590802875617653644745638511688612146691790609542630885215947989506642883387895380563645192821502869803821696537179565731306660473761812102699898506737457191553084243820096246507126027721415205560027689289490882379104246653511672705832022221359669927674490356815878783464528012971232236335027692269847698762876218374448013593539323034148803954684936122612146913487725930966449898936861532699029684096318438014305893434952375386468263001032287877083117629083996862429784287709065776974429015618347794448901286173635414023695524793599893255152926841878737793441502744687117519688592753072318010307976454714261434095891910317041802424928158425801603944048739814827424475795171541295195167726592435517893287134127239537651068896910333647962852774963293560579337769052876833586921581622235698450659136933697004505190747728796346619999986965205975210416226873368820908033803589884341698222552676251722000687978821422146722166080057834563232081172845949187939423808178152758773953644180996014081263990347352746849089905301312329748864635518159107764994937277581918995028047808213741760123001157561394228648891220538867861508675610585243642207002422873035732913799530528821568224489018795383136962712372790027000402327411202043934907693315086615651794874793674891303724415939227041044820621105415767113270020015669666669918099330574141132874346330403338172431844468700182178918935716524955799070901040608515188998189947031240082406492305343299014956491599616216518162365588590659629086486463976494718815962452315820744587951088701476665094719307996319166580742288636931390361862299521797167562703868447392822080553293270462786111933185861823535519856170231148932215957583972888636187904213943519809645565289940800803742608217337865963474453530646007870554337143055631214911362660391488230366527423833551099543574629001915571349921923609675018138764168076831444739759765908495948210410011813622659593715516484985624509620470636467581365513584477122672020229562016103673349688524892139383322388563635825450684736829670431125855881336569585618057063845926048248626213861006748234503859477465371050450494694902614446774049024194430166338696472085810095844177070933353290994518466220958326092450542758575235225266605828735454114657940162197273028369591348855013342769386333721151588986643153524060388310395659947740211661296441328016825278902416844935248085780755722876371981643586459937178061045302540042467981413414596597619153870216112246523391373547534646381622622806410903151898604604100301496573424308561531733919119414066514813510232468395345047854898885247500410780078575569212232773651775194278528521687212758840135721057579513768601094839932442554690435713815924744274683798790519244820306236152107427836501985080252568881511543642724001392231246178141405369395647124144336954273209788157627995599805110664170028405824870405841317074932615423524829261364223385402046945168447600299695878988456484339645149070315840689582304246307392487005588333117297960255336484131711844670329449601801027243101629082532311083209556171563131259518825037148569459141981219938633725671247661395314063786887041079048991554735122274742724247653769755850696565917415697412066936901131712181455509681582004299851715928619368201100390817858674894616491316172032410301399253058251658837214450881660582528494205721753828170559939124816812610169085102742308637721891365559883928716578845782742938791589284800545716040275981472821909801190556913237281520498778393870683144484366734760576396239737491409115091981895575550960879629835762735063958602688477125865695699167863941210843767556611820242967308277344979369042575954452215948463917717254714730897807189425496393493744123229206048646918080525196803171154989175724473274106623275409283437814359892721012296057079670295862349900972294548812081545799416127013429422433595854356394642339499490675919141095228684432885136310355238697757282251505324316979042067210982455539035288409655742438155567540495472895274686407933758564395514973302419326848146399109473769854068237303638323693637786662171037378046770058979116293293468902574452128395904933370902649297528951671465065266159016393547360387714668593374096285137115784982828686611793359877833105691766799626036054708252528122006877555648992443611159263071408383971404734608271228741601202161666173899382011579473644737476661966588067838764626973910544390089221255356970333477697000937278533052724301506613359148575069085716294796348693539483630739986835338026787609793660505717618733455603724576084247173964605627865768694876316946672520486162993596493870999937399921391398130040727448764601399922800023428621467382821475304125582059179471955007645947364201387982382432694600718341161032000488118391759137171552128298595994274468829947687063162533089972575563345368431548343348792905635657640850829298166130461909193774329201837506933271854791348617022619847296259209198848407519028454939425195632942982498117818234057274592112182400160839724944955733279540513558338119310774358582151619544253429941888037795011055985037006972575689474293859565384311376157214272147853818265347696822961625525437371248634712979620763964823415447958591079950304747936848491175100530257627579882800294368193822778419102141696713319804590114811832968475823411376689541755262356668671281442345380240852013433321363209129389772538997726133329901789044786083086096824346800153450223815450845955434833402295073212572639773765980030514735206118160296726132119392683095262668283738527996831280973446599983252892556402024593835862945509917908310360662737667863296092572403063170164485863706126946665435959073956904012642769675766372252605693602071887857195048703171569286484476476317737498446195879477640326315480787949469238665040359855457627245093213073268653362657679096714278544321748634022363717384611678856519945886377172522260493612118034624033095387750178303402581833514940364538633274290431920980217161241996138532927958258578236094296692155510613116073422733613193159575553680555103359021226869158354870745484061507007416665745014008073291324379938738579887723306266518151097791083220450394528527776270211838666127785977029181982230740842734850215411355895876174764049261099927587395626710087486220048906147137731823740104437788559538500914174059613203742937660263399116858183030663064361527944357171690549192655122140316051983850151612613335274477777583307701044407212511937721756121427498653033574846696511960609252168463468503764782991458605928872990240818406807355151128787413873502555979897293521189333915956306839898717153397691757767535689845801496583392583143653878775633565383653860346710045039155372210403588537563790619455656428329568031160987026468555566849210354004601847280252542338028473321683371489456042727017982283574161374866864034440532325392722242465871384420781315361941775516761376569887188226089096781693011423121086759178719799148269047286430037745046447202978083304128368385222949253572890536844870790671863847229041285399828560833356526304462633623544815626741426957849878931613577233617141455203710588164505607400813667545659195331906922094683365071844470685226457368328541294787169029153711886041859261571825788376382211851308239083867719998339546974934444742789071229693222179729525117229953809400295743630924371248512848110206673969277892336499870864942062655013936998087178548278738682421382834771733653399629819777698943565883159954184971043136656257546396001040946258860001450260051507291195237890261263647095720076713825226881749002650573763907897918418525805056812456766807469825126680199292003222975769206841003549693932054574363282443005524107494793350018990647601139572943254336832863320691700264470775142615632720031384846774386826227524790854600328349895864822135143765864878703951467225104621469116145330295210154960473638472621522633126624562486524100217749312891063836984496793360341789745617585952594163260995241363955066220029763601725744040886485241456995132310531583327029007136205725268030001146724989269565038242896413170472492546417919110662108296788699382040523919212920726059039085733940096986365339395873084168620206641142468958310638317043563748532393029235229807258160762391519366618461981155756755338194251940704076027945561937655479302592882469522569978938598704720110519307750129503555785798897941901049693285276209058819371425516531471816978430201931607498561218362794111417032558846477470306589935856107859525790522815191642706351653585476316646470610525567428424310597498886049768551348627954753377383744672493661299156148267210539342581141989763503547301082314509265500180764564654375507044738839149291011844908814858756548938313142293190891789796780140868963370586358162840076286932296011692481269504085083918004427944624347664345372135679360722249561154739288875406166812122948323782303193786607335538752368978833801945027472839514304405626153719444319002614215648093349890881442559823510448490186914667699549934091611320995686947523652181624165465569730758486611183210956276746749418752964871460765632767430037729650823433286239518555289545814703026744833101969119288092475072845423617157089087645964307084904509813723841262055515801715365943492050733994725619413357216247320998375956212059599968610425493724417974337934061379827921469342205267364469543764906366481035485977513134929002829390763581497348872568597939614138984741022349035993493502813316266379856174276454985029271045892606788566363623533214561210131276881768414195940268975479321491052926497709641896745630469469707334405558333109967976161530467939266823350460550091731420366623580867702757504778268985250561047995383165729531445627537942675349998772918615778118426329977289838476988377116604452715898815972394990027858739647033449131605999413993991322777443206247506356990491983009380043419178628849904440420970184719489228915106280151353666326947941238618965420140634063817266458673883541420916382066441161773799348528593665859822252144420846219069645488327817604162178899048472698311322283176614308336444627948930408994018752106731299706427332852316702548283963030178617182404824457442616500109242248346283459782077934478113006545629531176506198505665503103272662662624209907461381959396275735597977746741391791724192676778955836635756755748547378755692337253241595697043230021877728583433105031523577514212980252915917176929247755636331680788869978166674850782546270195229988064952979303422561945020684677231670921205746750140302330135046950171610494079792986511915882607950520996494089651695377941344267150401523177349881069135458622701904608240982046639120068488898094757508774049851260599503994364491575261114761344015704954820843946599890459587415980643521521068917558528781474226649581651100909725270013113050692991153110272932202297926545286472402138354545884027017620127161986789685655279017795092782778162387183059784535681730897128579080334901313928518359574337037298431062001404619053538074848585817126214460029233942319504317454416325143006184033877970485781553154861257110467672988719876230035769983596902217653483710242297263108054466736098698399295097885105834090204447947584831064364664143090265425640246213051494649334154493734448699994949829337347950953637888498922581326200259300287847010621674425482361468014610559994130786066694283297644445274943718479730664898541406928483938688383772134418284364289800787132140387883439130213289214435797366037609291275196987657184649456381500781229695554896096993341285611308973090809159678008861901499955515217032155667207835408016316416345595419464079790744617566998856300295693561956622168251967552672492213054908484837611735340461595553244123129990128772967240935999391655471270680779431345232250175612952805347029596290576316661624432874604709037493899074737965284625161687119561057270604874338678580737771276504876411143866596836120082518918138924835243779127976179240977566911709469440113710162946542693189035464210702240794973384438998092839628915604270202918620097739700440519790538318106439447440670722700740300782982686029545107865911732693042107375043104485322413436896547381682274851486297122290074022523851728659885333020249255932189836241318195324156903288519050502543185796069183384387717943488647540840360267475024013793327860148347762150807361357284282655812382470785531600624950792794663842139209085919507346851131658858988964455899328620773886355978846401967693897318617042089273874654789955945153522181086860352595521063603110951474933708783090062435840341399104097140203661516082769355735249219283210284490306376593613383804310203746927961239483945848724313104213191360897180196241979587617208383482569541466782926022059011771379480962727205755696854264989366397524848179663318002819548603997002528026123637590438819327425782207271130933879219516184476798095292629580666014976035970402914701012664205477979334169660276073221156360758745822948446744005509863749619054294283522523781635797369276998248935655924977439611686378420726114488069417132486995059516657320146715328061523807689910192471042478976992619942172106639459157894822908447206244141840854941496956060991658177395478476783268091354534673182401871045044970105586893158637467173753313653909861235810903099062743218581192236319285076989089181525622106850647473167934022982061854571243278179740864867484286710794910228137339974671207637219268082042704807740613547121351062714284852400177105552803969671023316577841872938776855114925477466969105461892803260663221617026342864271628196189770235286307554794279812720851066188702072095845119597028243460784535493619551234921939827746923316222456694902332515721322878778319343982123572991247728587278661932003739932445816106203696234808910824127279792567943288403951433301273241573098634995963868231584978095801200007904905742575987310504455197652835121601686616204967126940297875398194138866153475606123277398871153643632778464091609480400702914788087161311700280994704937527070184927969656323746374274061045901332669345821862525022352581853606654141674183387992908439035571200925313310374300892526774177666802674589437892930698487556226523400176012171749052034373515724140705069254109682491085071952779293591393093717257298102749720467937564371657986466925402101145981818572135950121291848110924895143821093516231343223411805355683083301002746161609976080827524009772033231764815274190745463646812396509920949787345937635427219350004681136667083938473966051436421028099645537319584589286779390857339316188254200583218260234084495623990448573515286251545559896644205401872964678252933576711932876241371693376557381926152240890392897452855253996845125272997345193040901051914535410773595171871282387545095716808797699171965701368187262616965420870513537480130056709683418895873937253262345989541779394777109588531561012906771787695502126219229388051750432345790686516329663633767779417291365181362053219170884509233355242189674207353928476139851899801849668934351862500661579714231491757767210038142823807647932373086093337702526950301976287152150884948307617195753705048341270078899134134269011123445461239047285988367275489332230087880907267149445824424344628969074359067861651668671420675003570453774472124996782135354298358049135401452694288701276576491029955398089840945744138535007087229415374310499963122396572391087598923481773594275743464428753843508557752608132404703692105307292812963548369213750397608468385001512642416979058634501518585246040613737546003558946418869288156023869201386219607579601091484621554942990349338827731891868437533709824116774040955007652348448095464427216594358299840714142595146644349901666266619923464405841522252245044287738807596348219760634047741702625527646500073354724862511967210118403245783967913211184073438290634590525156650442988241430412839169047831676242994685451313974904965228482750760757883094720617355545966837393494899831161464145842733656394464221419072631893321182115420020555890991450105007068348448271923681451476345391734429226744180853812693666673413876155684001803735121481133928881873565732779091715564256550687002187936003592220953955290486705825299331857312163694608523302059367718358813174420038652388807215591575660887550902461135144336092476853260924526718934385962524322843618727295094050272333450608299799158500600228391372400077204725595616254581188967863145977946109657512482245776451370838446565399696398582270889731031645557835538432037619622060238516184197099620604190548077253207591267804730632997648850371863058517924033922796571416319266956452839667366739612114194276552895175093555563112455422608894186205605591814040983077418467744934261872318027247725320306713420949078926921410592929402358524880244687160397281380497212962840761736774467101060009083592171533678388985502659033676801262816453619639448655600583589466536615108646337531949709995977066514034055765164553796736456670266660655735864347383857145578299907006061895356930983266775858644308773513514884213591743406536617677796111463590641662117350599447468722515263746827108951273765229731903619305683519774409567259994830747383578200702479203249748539639299118935983331465575931572203570544632321828174930744924462831669195262005561855795798442309049286319812494758037125834769206931367508658776821542259729579112329999111852093378013841558587320110508450539947478646732019610201517226510710742106946241886005469295964716152168193681157231738164567663199867421059684780735005906138273528019487372262949623738846416291529220289839109346473347494114352100231509099764633696911097453447849685955432730624143403174874967908605385446761741876414003932208860457931518806322173543192808143557258921450981308587862512238108088371398079401379273989734664652969342849033349443962935359450470239960292257530481323334529296445033959158519125980819265287956939161601114022253296799738252842316730270575988957139835213670040900737795372431486953649630163063233473291460180413234003181232454082845987153223010988343404423164641918250890572244869571863895675805540586620072055126848326606735972014870250503333988326606331432403280962246099417090000033840541311980390157560304655277739366888730846000142514826721629201609705509048614267265685554707223293911882300654928144222262154901863646451685940183670928223735363751194443430187399700283922876199303241550650739940929688584063114615958285915796821355332597102738582811092920599843528799667949798851778783395798454105979020931987528555178991799675828423210764215519886994609992289780250413617083362709095892490647250319433881535124254135161165139469636873284920010920284218207928425798837010771073527505545112291327549480523288299510545640663800687920678469377300402664322010659367562804399868503821400324766004732908663672994048451410065814460086846842559034441463245236858509735962653861667652518762930304045760999367159231556663220672591977296545097065820538767396299777168283924241117250892265726197920336177340131646742842478409050897247234787320680784323874450089998239302990183618622575974339764529286440695333009252279143915346462250339447455144624563851613406809792994326238122927389753196910733823181539333041232839064826655229881727994246825678839441789520927615734602983925516087861866406058699513238774124079492689381694803174040899934494053216619834617888640924201654351811828979141609789601392676347447630075707070013997362924681766455134743006793996609164281619192988479603195464944504663386553511769362449222713786897568599558242622553603598461769270831948658331176586601462106900154617262267606823020102229811847855076184770494794923874805605200059267063550965229391474115494920105356914608666057506833493793922914305868351922503579534245086658846362498074585617248631171206264632816670104257305310857184664830352755934010755008898823095878615485035773371871281240263564269807118839529027832634295641154738778670704032558404271921346208199524427047828913365957687938220191141723976265608142188698522295295326246584516884615233327967221461974129011038411450934182924831310543877995758679879427234132389092522153247970643785942901989574400219165742219685505512837232986236197945451441657043044567774530842835867605680293685615408576807308437166786606608897482329465808567245009423809483475029099926133941201219490503790891107801563271103724195774733848170374098400685557794149523377733483504621707597004233383177164061649382669616228288617353016924360602872895089371877938678729109708556936604255409453825500964950299270541572860933442564593299902162512439287458843168318659816999171123656404849181510480556687070036213418020622173614796623287383759441119162543530749618871762806398891796577919319510128627535806257205253982921513951678432084989288034379643868807776007196551612999082718394048391643578238749779850724012649788355661126253665822475158346924598038537106246396073687536880743462029605598956186471446667715333326976899931001249244738982436180976298796055249211009113581047640724121722787988104416791029460681731258590031455185138818802837548109782527361848306170019047401393621126767521189909010111441363026967808571125845805974836064684899727348593871442555527617976115576479641635587145262534273434142656609218644421475418483591327659654272978024416684407888655323092642216733085951110022108707195999123486190035599058544552668730726977063533742008260859959546928712977748565989481497127788098053742074278108770003326321739669980580003747569991918382706906136484349755158289636486379579279753598507385924152482206937600289028906179112514307428185087971913018625251088350539314105520159806603391485563812889387256735968104087718961171116762570831123326150168347578975146562069381991457678167772396559982881708735675429341485948916665447743263460661209216448955322766670380361660132074949557267142221671682610874845168546084307163128734569013572741989864608011634985222110106717608569734807780022013874580802966357260959713572394010897188765306001915829626895941763054921343562777269033936760787397210434918866927046513525789268862950151282933036164385456847958028902417463050422424754634397527470932466368044864375691306941477044913653935743941942893242525187296262495394911505289050935001072597579076930621308568058798781244462793941886854621909017372250436372532298296856302504341631890078876914257001157839234501451092644565183269039487344621693355074624226713155193410934428489320157290102892763275875101446231279808833043182623872311491565644545585913859794823878277726228967089130501943643702018096359564311967878769930334833006545068121846405887150546084881366475373471009169221382657430014762505405113232792886293091565406409188803186961265289862973551812904966534795335682758272855693013853926036211859555029759483240669352901781267740094616919761119153611618150771213942474176348352486787950603785765076423711614549057647028042038539922925064942111970571238954611305884616650758326599541957189060863200748848071627359191116491780009486043569390130047307060411393618770594934455244921354734828780387149306383450182291028933608787420303634204380398126730956991523321418445123511349435734517508740058285305310052240204386408816303539900067932697167962643794178484722336920471169773013806207755377976774251266241360384301540689721178220209001646528167883381119810494782899554790071355430931943318619993643198061947597262334205170724848270071591555107928109332022914111064907474026129748459930886611872704696985846590845223076870508305848574771928713113215120823695719357026931597370715914514910328479981304688537401959151867371203530730828195062779787939857569944399009879924540789229626244167772315703024237393130705970883102257385035422119018624631724987079283876743276761481531265972032842804015747542435456135504422925600070266026942065455891883150552551175092084135600302489449560515497494982038419936636865617019626399725237839308910192543308840785691217002535086927436248258112138686223648100398384626830141444226612845078045470968352280879110923143183539586109726248591347363509353207880756978667769303629574491517925444986475653194130853801646458935350000978707563641081909363339653178822557409522226161722267294713454664375666651615210270195691488411580214387543083572827033247109053219485139133787518668092319585775297591200622912491348754929444227897819903022852929955960622136679687028461018393509344725310355451743807256554248947653440482013551172183313189453251315565933678431532510904442409562957623477396349510678814552862481193174701353753349354600390757960432460549395753391774220074406553229887189553297281847489135427890298071409063664101273257996498310215821335184113699019905050026757535874687199087398491794481546104824822162935827829549910875595756673595380640801155331945565488411350609571167299847927966633011032754313772517840269346388488725997214213044250020821709158173433658999155970574023556874278595854504875967200132705431922075300951938084955643259108319204014395775832792274711503646911555971210315490771541884149100267513907722546503173308064668426406465442134686872809793954035584615876636887860819994762245311534126299499893440911304317356627810955055836063457354661138562818778048107634917089819317746258742548802873523363062617544646819392694885698669547600035298153129309330583049708350220572590913954604284318501242336363462761509399037224403260845941303396496533948314453495046904296564871708418072919318520368477894035911629377312449782625747247729411059365989867359834940773240743862434731879580008839444419368373479241525305994736988155076630221983013430134640477531486068239287033184182687437973993956192985456791091463563859339320133769396963510414700997966208887153430455227904621717110107612952493017020021580074126230446533180410235168611392242235669827854514640393404275153833977093182936410375483086148185739338203266470759487862426981143811392669722268288083636854210928794678788037215311220525801934241487949775506923808233095388848493113624993232588306054550823675930064972876971351447280895427743149587691056307944023002767582805612236338708820901193665946530457677487229447161750397882191555685924796748008226353653876026145765150425675215783534810634264135798545905250944682564565212884327556053045184711786832080346673162900247938475078725654858226100691209673284979178552396894731558076807788602594953100824547228057342624523410272059717674250447695624576204208726455587266330738055403426201041545331396464353852774658532606601218091188957939727603699642803858250952574818955599837558456268287827365017599268971833080432325121151243097861202758877649350281630912568245317129234297074286337209955919636184685244508140945921752191972051827704569350534300196085627587690090508797600066237118610436919709814019686771644519911487630449159626659657769826767270231239190754013214513200544219403242163739684735026635285784328988420546629608232319411936727090839245759104500051348961255083026779138204381504223175891799463636408045641981386874908895784546793058415477933184092255091346043654307952565933921778576724724516245124235634596213547873597829226729742746179534302442304136121009202730117058652391873294046897374795194473418893071345022405386620493825638508070656458259146777466369502748961424341788506997197991796742991250222098694839431040904531037854486022372945065819071919999711396962306996440415296954947319530466465376984714138830476388147839649806741238719049191233364658677674615636311792877282513719386148900673802421479474575373522897501971726188837576560918867832964779562475235278748234233828214075495100506374446303314089954642477947835775838206346762027988185358425839359061218377890578964581553767572670139915736384822097240495115633046333239012089688057522944516657406579046612452720318452230579510576217856583123817644589786071589921760229419822647752794867697084293162026361159559420372705593753303330417081308346433649300394717929434726893990519185548581467387068642335567076941707882227981157414151254866509421717262298718582620789498042059706635834818222850571042349084639708804915851674475842983389479953144270976598641161829756288101433291252027127111772841081109540094091507200353132474931042082687894831437296682046414125188318517688232024445558985180288535094541220663304040793801414912936811123740419321452040265662447313744627968719566500272394706670997568890363198460629912242058703866118682245202436480377596695499286674292280745832247304993744935813935427958687990641901415992540544751828118080674781431973094142540641696034115909956043722694763786494909369652340055085820303504959223621226847536054821829288238181758305597478962394720166735752010100938985679717856403863509203722456015266572913559286269068301881776831407149577023527460093749573151777391371331769508607243788062194046333683700881886988537390256625172196933907026423784161094880716305513106806445632089769314625231315815151393947009086928279036894118993481936548620855776533596553063257345294405144299776763984959405548894214084291372993473927556677229076577937986722758332966878482204949190501962537475522657734383977103627324067607658798877513541579397487014597546214297089800973105961395093422058644744160963681066014910117904149826106390829886891968272549283937772383864576294478225388965493013788069872070804946768365006743698538063237639119963919576357313083946507812133076774231897076385260364622112721853849121060888406815047309576435757034857809354917474926345507680516627225341161386648899617203531741464417520188741880679753862551606142318443962616006435668684673861711414116064323346133723993489328471756489540136698098186633921059726712010431098208885211753927806512339510228772734765259224335409620610246045476471772831372532485461653150020308993758551149819329460443405740726910836020076743000144815532662245066378453034037919476950872710394779972665657516244055305659484543966542926425010428990436885835365052963729118434868620375027053680571024264105010204319384812749442944774252483104305101685488953525203719903583903466150590588968292986008307499213684478312855753037097496276138570407749673989115345951006139303652947025067674856936600672750019655156747649959759394457117747625174499842779536319647325872429627643478497406545530187401313604611875893777084910941003524317732346964045179594740906333681123511395673446774670869555803678303009047857993528959588079644330299560131504382202956847972600742978543181280535835689433018562528910784106776507299571295326330929382337658106088234428968968365629593770076690493380197099284964717819681886347666030017160914959713112028897873862344607443703626751089439760863277608044755178326684275251845058233609206826623305555371034783750221447155480496945160961170705742582112978515236678099356000996743166860713497325782805521829240992567602749768579457585605221885539621158532513577825832593923266739405197575230617092036066847893573037337664557513625170883288191793883730555321511531553987541957388903785709063211722205360347176071826861835564483246616542041541354083604309591601945494756027225633199042607704074704878849422567974452516233183541284160433065662215314400481524016900561650495954181274444918241592119117957617180301930911589591191597695198812821915025784285627824727690596079820798740145295356371847803195700105036950125343143988739867202532566243747617507552208578780475391551479485263923870836587832617614592729008037640605436575844248103254153474241149235367784626258390953896603376414969605033201901964302816395824985294440569174823616925666640656572636383222749276916744247948011633888946159103705670572038748345473859462572106957952175739072097405379402063937057708064525568233173202301768860601043270754445272927857197988840790682813757431498611084520633541237038734069984930715606231635983091715163026466538422102864844128501516190155201843723590697561327026704949424345554450078046979989134308116560863024845951202740711520066775114343998286909601535958269640350325697802861570737835974525418824673084875780540244626575661663971645405728938321105292371698584679599573578880294058560225723142311845077006690050981928017157383683730606943656387577359939010474068383585579778600186342054354151769690632979627994242077296179862706029209384319451090631045097746035432066238241735241255336062309378307814034863833849158767304691818441001897355891740595483167541972300662554815211560652535341785787923029649281826984547897834277836465603782833704532408616242199184332468232996569021883841044561978265730666452329104323564734090306011126446554518066492086912632674328115014401623928779050294951461342845848725068261549388159099802141008957256205018482109969545891626913430040409604997820640773091527802266819437006962523221154150102756178336823016136107852886730650948002905612820247370101022725091390719927473973365449642043119933383251202468442607169978411859563658487593645860754534516895295908430780615834856923326733902585079593970111222851860121534085425473258564000744537631759799716196432488553822485235596795804980551620316178195584944637345502755521478353721297975573364054801000851858958861479614545715504129449187840871412437355987333117249237020726280579740936827517315707646931077692488175908468856606913318773298010079272886129451428830644269598326196179467996859343328261088822188446165859317685602126214781427794757743773301189539525523832768055767035407264674687191315001077940483850295493701404928346302041052455835777537860326781900645080463759810572384050245935355937578622913220674133070089980804534991433790230354129434046767133186475631083866608713931234948299143579532836314900633522260078277750989047772310275684552798742647406239885761835205298620154056132308335700741644757851788600535962077065890014326907728219728213198882100008543839347064831766615334820376820706636150818997161542384945977015710647973986603924326242769354741241246991044064217651839221433025558035742497619059979570075824791273159920934984871416234907657306027198048886979404103184064214042174538018828854366877433751742748480964493490424425216342931931967697492679088914293355746001191439757753346123370337743172347311067887933338643531803720393736850635959390324855868451951759369305125946026022355469441342980922539445679845957969345006748572097641910990854533023706410697513033820992587587830430099609975890327025102466634266991699569898102838470913242361413548458979094375381397871104074969776586100394926084859956631931254825849259711656483561837852771160237166560515802067964700836457041366643341942928984620974455223972345997054990748103063145860608302534788016174461740612815003944212857454507160482090101188101427502416570004542346364934017774521668502376618261829580778138394866177961686748300080192149559921601554410875063709799141109105488944512383753530106368743322634331513574811102560570429587338570308373125080911659238635378733188478239430781596245047464625853811101391238261041596196219530375082689590217581441948568053239283318439320583664744052848905321224568997264633003090998698630822195860088489971590531252977038078952502844470978267267768971330681021672430164882256702555349464901414032277946082830932026221858165638242552629563858621890324945318013272840949829441899807153801287977389874113631389162506518994375933371462219988690067581328754414891061208614739359470066290570973439364595338851477167664158685806876827694567216596512198651366451147776717896971714355513956160096074273834015458973981861509590566442374209883539575696854909945636180496530531099695260977032891241917029936076812383320919614898614072357322499849504804705502096126165101513825184064606116971541215790060753313774800552877697324457917796486381431243949729571551081474095780580633259566836558393585807114105576950384238074938819315752532348954400530703173218055016269424865905389966518595216683352995289374850723689378750748250792474731035812356026313931597768459896365784399822167852438696836557684569895923914264976758283445299075941284814206929953777101561315234520316821524687479412399611590644528968450572831744486200480201043172425942702868391703651829596723004151525043799376156905115926147564771957890730768719808279929386014897979365992363033491794490684036706095230026040474701532486420102538231655235211624231731049167090198182693704434388910904519370487897161813704313121506097250427302604134301296523955634275668129881254182745925001528478725715538710069434492747335596444301024397517272552431398165369258548472679153327491983314645541981917984288880247262811439291953828744806041814155676532926631763499197012884259171442801881746774605728693707129087111762866996240825615673743314231816319620345072326144121212533507983588845894015533907170149968279771795598328386997976806848635165780858035318330391437561140347645752904967749718242784721004232925871430054882554545224341947990843916545245641591533666138480494746814790297023620510451898555552238646797865751803737642074822440944080120185963734390129746105183827497680424429214043923936866569173987589338125283856176565402601248551519818260610317967964808903228580343687865820022480641870092988120504754825802179896994357846649093557250479605274147987207710185192126418732712516439419282393786747490362038059584649301070618614804214404569536100531334004210598456788992375906489704540754375613119029353552466276538003904074127345331165739264413120669201385206547237762843830051386388192974196956710898496061927049900812912144692437334894244480938536657757343951408630333699873214675410593235665217295666282882933909485819769157438413411830340992425730694048194835986526849466097564834847979810444428443238000068821236733789201494818549461809635170107246533014808382584549031377899333649626985123154430729128261269319610745862319392779514452910823596104745497694154613121489782129989483709567472708912805033684086774196091226847734595494686522521091854355395467779902961642705394090523978480649540804015631255230601948533515969463161261770291317221645828568938930865119188326713971941031502832945074529629352297522430434917035987253298679174190351636322585324018749608475425030474732900978586076685108713316759427859681710407403369272799228264474525830730698628007263394433902721007764474295761867634173460746342197706425077030088686883453470875938672942584148246416825256357004989304155794378756847359959051301592754387017774703256759454462922409893864473096036018199029497716302138444759112207908067246712748437050521418697066940563854348249352722232053071981857053263349727018119352891512410487460911723805906129964278851439760425670596072477788773710659522575855774800554442011512434415901513742588185186304938129097976167511193669963341025058826553215875821100370695612488896917651837721190518788927965583540223472660805568363147239745056134998772365140209573386430048936875541830390009283602000290719676136065181090303634833041882682397183895048895202561148313602385319392433103133884232161123299016123517333957578266564151169556358975379776608885691617142720132691902654363370901942248934451121616551461271037146068864959613591083127602255662604727177371911721780362926778406333323295340923135297654230787984780878539503986740379764609642435693238838636579558243675939649011065110866894590337633007448463619755034385036093802771024775510954486535920599106137424913489479541502334745105964441479409392828113412563132531022398344553248634520268932179159750084108312675433517642676745306783996826975310992072420174370981671029175924446928477692204135506716304699270256866907451014012670848211641037791224810682970002192279524274297717814458677451056878956740229057951689154404405200666055227645414468622512852554073077141751906331407978553474038320949991059254584594995678939980016298051493199405317720494852654955406967402396680430532195170533065596353803098512670430262626621576627584656641250091942964093577250192285501849449449360535800430202861320117171537644494502295365142842369039587985023757903034921146624646841215202556976945321283802915544624336169915807559574473972801362829473448790741031182209531485134445565382223631570355037206223646789258190958453985596702032552255721435523934515081716127464161356377214429167366625093142747108978708057772177417433201581579079135691730679964402686195670299155851234647778151997253880621300317904818896643554581027847351499327905521284851710148957611285037225478189412726670433566871824932980539904313714001516900768866058234776407636889388254252889029929423439060463600792444941536277674530438854858890670304562631461651438217904318953526793661497815705563280142560633821262509105726214220876636412827939846295384040863997036810123901601603017074895794191670593082265944014414189787443756307263928314035954423985030945848177113843410469543630907004873781827713879337869282015764787360982274255490105901633490259616002858361722511600185214375201504703025173007230702148107394981145416376372098290403449688545104320693094255792943877409198720695602847959919820037479290081030781599975289093804430906362619148424191716799673979479149616327337500111384218497627942573031269535356316509945277183913430606801726091341986750210071310174981810484724697403737525323719052007277558335424255722135165095763318955508799393646723838803898747101544477891998684999394932863425778938588094704414688640063113539537630024636188072210612829516322717963007226249930486844631184558870060082302497686865080929501616427384845174324819904920651676229261180260831756650069785487307630183643130599796431705019391266521455109107803364146366171143216787971474290065546035251832231206976938323451204831767925021306987680752012146000464206500843187088003819034370783155791541005099867818733510890722640136574965824342145053558065375076702202873805717921551279253416266994403548853519166234025802738691391782483818488869148019895906105364963842782783095607591826692575744946862973095034033136729386062987281813723240374098126160898573669975352128559368165429855417726968688190719009386622074887293413864080695023823202626079255777123558079388184602681754978051990075655942918128005619561412668105586019190825685813461153758611914879079423037180974395980003804561574336466674175460476024671776262539411140491460781690278133805111606714323615965862375284273271940484742823970427410740912468311110698526733567724202523619114105859718212449074221252881841756039537865951693047959436501144159903042627241484062558030593758657354895712276049225296533631467586701300444502106454276862908078323240297753394582854417370922981333327882854901237498998350865920883513605910758824816932793962733219642626540170620775572429555135563257621972161216752382876397693929201150922051429764826691546579412912459689096602484356250603100329481151973967108922181476469256232632115369733209244968765562938357892163193819015643573150838754113822928371521106476570312815271137860449110268968501021958900425083326328117612305562046244417107039834189719731790895551668712740678187869106222161892969080166326529239754567566394147264860841538453032997550261762963083530201203524755503152542645201816091981010598022927312507449539853588403061917594995206915826693396780359431845524170019970894829390261192046383678953193795109289895420835297051986671539832920619251457657305394640521683632736887794143708212085470439860947870915686369959749237838196923731295880374043003627256332255636087464316509396574027446235479792606496509831596318813358673113181493729845246681823274518327351032307212574080385210797663099823900929431141475976745199343423305379177286916931359217046129717554934044469981436985231592417942535481390817770793429318649853227077040194690279464015689921301527516500640475341143779348042908388577628708497782237897066052623655020936975431808125060728165667811805163715510542316680812124571374742662123300107164177491500379351409842346746309643983349863341106991894158319095493867509853863263571839408988506862801864485734295840186570590853146654733860307484619800909770066876147327494744328191585069979193853952599736437193869035458029118029731062290058839423742003678298938444721587330881388265514963408908188127309047701841332743822528124017601511915968631836613810679705749380962750663525054327703638207573673484098985710728311140097122220819253637131653494436490567982410133190784018910195269142237162757698826057567812691996317274202752890485426306765224609825743391638578114354443890830474681078424243664335918503005073983385288743697497560110270284088000853965807170486770595879391548341052944681353990054935179526942438658200908879348268004733551084213882453833924628584545960689285819351477334677975983582654306237228679355167518895594370113397529545412150827988123332608080283104794910057676779561590248137921987558106783846784341562103515840880562177575335035427933866162092367532590274555397310220911020537270733988637164807843713459777674758673981185682817301019273281298990005951948443503761649903033037423973300473392005257146651262541198563059962314728467726607576939418773139517940342351270472346688554190638628919258281897729584921684956746577116636577118627498244085028545661463932485629341986889210427530898572032381744294647905318298265426234187778305418268531320218158398376965726370762090696843293231543438431981589552342258709477380299816017065462699817374276381206295196578957979340579366128667493591481072043623705781561189475538522011610952967411161841130535116607131117732387551643174696461404273797943538272162680581229955132633498286699523466363287349845477851353490323287419509612027199562040531468960693556515205714689043319215282195545618736200698364373483661723059544616496790337486051967421348459574350002295439258398981124673132288338798965786955678688648881031827191153296648922283666838300452838229248159618960624159088487105653167358981084828746552792499759244829435445294747241006766140635271621827939410990112174728483791522035254630903827777997954292167604543855498076259086615490839214492775207998019411109379539599874788902821393032622056465331887216482852423214477662141327531589980768890319832992436595354732247628318572010257242666864706042778414503141458276428165507537311104109927040520722207767800371734601148245876149926110197105332516381524133205732548669554164570943716911060316921067499787985894077438991463426139996331244313258733644286943698835795074542885562690086423541978485575196972857826636555017997487585197965084623389620093935809713536747995640776056516048375764315607812509204083913873782010107764659540763993420110870427194147221098500347683726890038796615543459856980285487371487810189610799306447432372989806954508345093450990974214004568089847293105810433499987973593912962577374403475797253121583833728314004423637416601097424357008927997566313247781375074716329470793564026809599305928359469658085905349522293983375397305796602561885082211153793286979365328613218247536241235362564094757927176395768487748589016936311492670760182295613457541199573887012192279335183873257687131049511623041749844064161590793259444835906310498290931465968499413643641801918271530373688010870190612513048813195652380564810865678846401872312513962020350195349382169847094157219181803790900388736098730508916877052396516954681065569549023965711469145159991696525402060168082368977221027889283051739035428352620760778874772416907826121504280658433497838388115922253484485519783023660591543733603381361676948310455665497275861663902420512119919254598693447742712680844378957259755182243474460401164433696738669909280513580552580371602424356151209673506073833803521923353848595572467531968618739259433147527405958114011006053723705432344531796146460398727834716036053758038902451539661528744135010345714075433234953714718579214106311717380733945377835436298315920114465263436979315384128931444342823369179017732626578219223097336146264124721428989990959111639988471675041086627130059585097360442601438948497117537637445277264852443900290437442341646057191865267627244163288925770397303206224110908870896664536590592876954333776705268439763038969626139794091343855924725600868241288995740765426989917950785585910257585421376123194230994405824968531093833242303669515858205169252858868638745932113698214846092866544296425507245207975065240722968851052971441475419981173653076193182267497753477465505851023027850676628797284804024861698197833745939443906677207827789034027524478032297455067696100366880803426755917887131618258751407875905234771998577099241348650612344950547437062730164482762606623367303849706297688322146105158301332667192347230435979946662325120843665280009979354132461018672311003828554220715311478934358676507717463819312920665042363293896634233142356846139954355578703685939498508797252516721468348047770292878692592187187331465240697081224855674296739700306793690513314693848839063335914637733638786231452697920155535325238393227909968114539313225626468027410771131153894328907180099621941481918574763273345474070518776129994913236004731164596125714557633177769398638615403581633392911713728422348131803116735302584635316803213091055284998902931748975638359323108431246496668940030718406321847427953205775817474930368276958092564018172806866567105297136951553031165908877345734548406739112889977852016704146153468403296065678594628326001724251493793270619239778800221797492882358657142340675613813585334825564780713836333210598704462109879072504132329514996125864632183644578539457716293942433827450971637114115835678871433638482609932526548746794467410259281850707672476381976079637574208806222364949168738715004352759432186069864875081931807758076957301022608718974170545628138569267799846399348565798639431987393998335215107650784011810251595512304530585052939490446568628636448884224959462118177579742577238061636586728843113696841741042709529084115371664325725213071758410809396714141322496313343983315705785255520861837285804046500185631590361134799926457883743830296076289234262885135290824223547974842730995710900374962954936632798704573625751414607541779407715167917886663670677962890258071005024996620410280851498873898197856645123855307287160167078471985575043765911155141598987291078935925887662433351323798151019827096109911076813112233943296970950507167079283530194090529890544101568217582493340720317017904733075001682399831652883954927364317452353360393676507348353531502152945579954317027967346143159722410136457557865029726473581993218827437351391396558594398517265727237649280893439550377972256625349608196248075055742438352054485004362017014160354962052937445379441996378305371221391086842755521045760259358935138300933045108892542896364433575896467672438740951224595775668394117406253858079071601220251843193780901746405396253670754349537954837933144953445242648141122539094582516561967310190057902725896468636248769442727222115923847784452119960530752590457976769741498005089438037164161408702061897739843996262554301128785217411497882711384839595110155155462950576509975507017961716050300533239444529031195205189027286163689744069177390126212065267758271572385502601446470016037476707967621892136723669047968089379953521911161181493250368751943669171127850377161844731717353177421747616880912408170995306903460771543403581960625715202376333622896012549607307829097254990240788696279680348275301621095086288279811635463306304750817038655547989153637967859041566191178932305009798077425257622184769134417939215637142892493965681755043393006411904186223848761132521847307945804960087603247184099924039611309246253776288850093687106048520096464385904406410271295917634231170361157958383834707855376451060048054553814578402356442745634667476050267976514562725129715178925215215064439124354924047659439259149043845648368078296636150844150224884866783364798841064602061444934143660228684974136198726637032213053472597455240477006404344079841249154987093833583610210255389889393460420439354993233672914537349562405914144475530607506806194519348829237400615951131784673863741789798233336809924227741373311151940524869225309566357737118023702481097267044353126933560352350669436796162729152405899685863414210430419982247265603707349509114071433354800516182214369959725183586352679610714226955166024212603694433550663946113696835602967339030176003102809827986544061740612636116359356564817902026732546072585685901241643020093354480467929900794269350577906672281424516813128695448872848537881792207885284967181519339211973422618651945015381636428073762742905543455542323092297405198384185659798084518704073712693684704282701342601518506775922993915093457000834739588903134438515469118016211035722410521530563449037931460114970880795446954365621011053622449674746559935729260661389836368861222487748360980324243931428860325263501856221146906959668874821549711849298154784218078968513327618101030684716887985769332151910467897534815619543738940976717758580510413460009564288204350225771061581576651858551435594431134741963214361981964735025821654610749991944521091142047093913734705169958837591177346248412364143063990239304208635496972427192965519414100076423789169279054723570762992614273066765690688912361983489822930900148583559329237673127811690062528194880948351703994421241988039661135825410473721840691990972569934350209095875705318099424212229923640320124091857038617487872589383315623200855000237855745758899329519616025052216187148746913942212466248960137342945500604144595825843880143659613293192914889069386429016868370419562760083326182792033288205186942626499133101248163907633215472444226154863424336832522494359870470706466634308141844248578254088612882171506722483534204782459411660501081550141210459772298371253202636972548978276910202202548341783702706399466253886522711883680884111643569338087672873472938881256979568719411396410248083225434985175611257704541274938224789308350590058023365669248990528741409864575196043653493695347499378208449461979214195693907122585321928732950729662137746364928181192100794805871259337862194141465520057942986394041126053281327666918545471735291745872624408269102469461035496498922613859247903826647864648685923544119175856292225508703227541789552076409152894030250192990366505073982450604911949705920522838558424563074584863834606907013154933929710694195307040928893660385124552645404828550781190000617718099382044285212153944144655718904572333931287582876949520388376091908450612094027375678314590141902893153356367773423735251263384084378211419744359780170523015513377850706551314378721954453573051896075840797038040700571539078659985665384938723986956169198212544480811595873148355735822860018418598339652418034023203280157565593966885183550895028615388325058970864277189364381550445235794328374284006598272416804402390140552255297141611229845374507821408167781392068771580976407753882535189205778410597571260962896277662560216244994817600088352872554163752817898425707130557063716636575194262457083197306072644891155311580003190237124236478967943220920448430140988646407262588654835898608724797385809570681919349105385286289699331926611434008447742197914578851210059186766307779548867523269911277639182850031129772244883235973845584433595313010603063966247833114842196648881783681848308337202792968666177260881561400805762478539479395489166802961836391452178234519217011562977584637724584263259345233694257840611920691964262718503826582188845370150967699396127643443981166221994571658334906386201680019672096935888051900755707446232761690100290480428032824439548181299998397303173944271030957182830953895853920892230810565545570221547910228915447953373761329291845478451215782824550839669736002360167403437391542274474145556863283359222640221943321966411707228429269098212410844148965524712267839389918524634730912944204211165144721001851233609004690355506375528649465943687452527974602890317320407903009512145050999332736640195714917497998882118261677784489375234078243263884462387269316725834609474322480359733949488109916889076907244182174134861093158322713574875045540433712124025194937641064691790117746950554706795380040085009001067802134487725184697936073392388883587898756048664457709083307025635787228372232224582944777881634346135137261016893417120683608051982702940903346442174521959086250358655175514609729602795941622210845044846811104417060690048590148918443690824455016200889954577817180173366333641944144962054918330325044782522641897187603367437567787955735258456588223157859617559949726487890450036591053093055211760039848507236559740152445383340219365280799555756675629374806176600656139179169482687954312432115742474283816155776445666462563080982208920927582816959438611990633851417617544782994744058334437220679999352095223730439097510673459095465872203709416628236269000760395524514227281196516537441729071141570291140607445445817890753329706558638584121542522048595499632547656988434972825241599299375214891274789155659107267274467058750468851518447345256160743822896159849930428403927961034688583968234533908926582005705310089486736618419543708168020349772753587085788762950368183359198556262429255230179345911113478930256168827168083604618315542758512998819537098030165353353582645381083233030343986591495150190807084064740538267104790707665525430658678679302284541456271166235160524596919486613088752807712652504990118769667583820999784900233337395005269413877811723996383939613123866958700963734152517543295715089738950385250382932911194396625371596717754355814385978135719556329611842103649168307303627707016642037221360931187463201655835049968386788428749372646417157264066552163658482677631850404296689587856775452148238897351150657442932370520781285555536344826792361248732948510086675969895967454357627743693221942146425930818661005026696556318941639295144863698535767062070882896371749627636761704462581778332478147649942083538021672446902924096217643071359356220940577170805107687547327607093994904073186632177183130025855847640799523248887133659979110125775527814289870671197092117730897177026036732689730649142557144861586825256762867263962049845521122312287143525036105645682125545815795575910606054867102087519249922315567761285156697229417397781040305596490927941077008083980708644598772031605722652124327852311852926859032195697346116751259426234705598851188297866412248977139255485831247116199542495860502367434897605367109131017279332541264282167478235317990743024494748851652550303250190821476596093255632234424647501653972072132116755020974324923226355312574119286251054087806650959008737235923421915787962063064819959396038202546317013249317786512399308641346037237451646370429214482363826100816214036562794654189093667396762285815473391946348238515630836950556250905613117193582911340581762157230180826187399151728230377227317639332600640004354754930390478266007668942047604547753773541304593242151584723026346552458991156524745530470100200607505248126834475168630907182047499964525888287232697218372957937587821653293094515924718066027611506754823996731138572264830457337553276461430852965301830967611053507571370287998110765162227398858557044054237575249040990286833313351404161639559556978128639223659876369012442101250330873785372441613995774714211443074733368260069566875514467039988362438545335975169779594640140451670144446291988122111696523574204497183190902294866585586495524500529549675811818785654533246571923169783117145314584451097727834940226167340761064682254942299146257338835214614602416145264779758831922360768623824696171048261997643922133725093410230455537348938919376041493265806157269995894721392121820143489197869519317626918856515626154944989598452089273198095063165806062574556031409817745574838370035406312080433391533370614553953267748972218258323854801985748040641615810591834143730721959516505599673838203009829752636537950432379074373582507863889854323874185762793395075487611315092516203086936201035956848129550608953009789700036406795711722908127728574493303004811007011527890440364149163087612965849082508694024711961956069571314169353326178600518134788459550035994542966529881506769072742201176961813572838006255315795319124570831767764933961074739028724626289295315232785247715086331631473438021853857570784089119836907145220149248131495000649396620954866936026740353279409416980339375118616316773756273774165064644006609773896240456063534491938314017298855517448221839909856927804622700319452709947398749839682761960693013025379808730983595422826179414599447751951315087117174218690274065243670992467513140292484160905807380973503019513640070206207013120403001226860230922252441962863530246219034223327011617691535430949349351690964718495540241110108258406310454290935333372785377009067346331661001607584107733015464924958481352557156942886514144285553005429671972653882995076141755659175703764807679298418019023434936984141613336024958582148970491298653948236255134821129228185733420045269273796239691219370598971023362764586930489686088575292746400415426534654410480969771377770294573618051473669518719718371104816221834188617276195793881435409034714147212844531826360981953455340699388905480895062511831191204450375832981722528390627988512655412787633579836608851063690972331567958188952467290295813621587627651489648327926991805244438961010072102466128097858963866182771067005606960720068688353306893594150873893789784917023624808782573579620056919497000818335991240427871785961643205784286833162473295656048495790137616763467338368231149936340591509383778588742159906929448937643076471523110361574375387009416760853311190079508459947689713699382799570274955453023006670905131618505598911227242430991199427219368760191406506504747847092151745064645548672481841944080251302868320726802225791001400551265327869523421352512977804558369132146218001048947422144816658035300862830184861302030540472932084480067358749888744552110429168062172873784230874530076571945039192681345848767387589103276686637886907621055047020930995485412269744031283997078988740432875207733925493577361632784255434934924245268786295650963220941605159718713810698059571727765482091557872736700186044991405253042058140839541642607274745262666958496763347585826887237477032191582622830719931467232195464861151583157814007870922228577607056442563857807019239113915666069674899998827720797330311737932791631147141130624560413215747617755857137922885828071365125703910605698361634766946458706199577583775131638331200570131694657240292280403861878886180741340357605026991346801964480163023577187832459153545790720844446793236545409107475553346428176202649244332121145243760688264837994860430793386314496801553799220539482741287491574192554977456334580275855455791965533128764875063000054120707929076306684062128421011542646339673921176001645960636113479487336796416777292598324651246695541403199887609646666647356727043328627317228768679837545593042788132762186083052619992153693136441136777938465919640741813750615314987174335477654981133809504964250757690723334685240036432037420207106876841876375522882362106564582070631348904104400473465914878547515366734348585309996171771744927013799214849312641988699582392954885457145364973455583486633311056102350632069482366437856843423018739025188733107199858361430606832924412372661658654202058057915254093862749644736915717295955101023065386309290452200605851861280412891626893991385984341368613555831685624108289159733773844456080416947391662632418744943730741060186249484472993604842779569865649204439046964815620562957412344543580374545589511759812300960363623710961803327738849482511653564713306246011140088502612125429078011973275462926969671481641265140088603794647419407059145046290900834849813019261418446675809087016620735076023394641646326496121857036194571659944485989909173405673993242330276038010891701280139990669773169805286413986969851918457628804010480242721726653015521932688078592629654571064055875821838863842647529837177337358695527386081264599073230208053721181704653581200430493720814383138077738709119431619514976209521490984261348231563591182813641187740987990536476457329979726323776592754092337186363749496559684567882570950444610896302878694922164038680755311591347126512221902389391927217726260856351779393341003285587636543501385169729242481259761822187510035029504665586256925527185358717785484090159855149872491637512585047580406559174017856251870848013248725790520239262666569309584520479089495927915694899420891298139826573312381825877885124779034767255827770654753524463963215247703580079817314565766166147492476538013798387033821637980457458469420288574126282615131776547899947927450612098666666816333307689182257855647689857603530244196118847490993315392670516433456072346961030745811585662174556773403481491037182408897807827874711730620829834126563522496801542540428856705564180310505185773491492070308049014812161111769975967473302042218288159110431134940844156397063542736969257503364157708253172612688177985202042121674971354654114369866446455788154598280258844321576568376937135389761142177693197442018547718148482049231094884461521632470893696901503157420451283990065428120786382789815138341263407388894748425931179318863008866760075607547468524830653280393327607405895061886627790621611528035059700967117393022996420858900447119370332671417023204430900167961034461713854579310638318239621821204720073585476830204835714633383447270716486204351695774168644313665697504330104896283271434247030809741448536233567705390792505222165015807760301933212905546101005130555920269090018380327367163538630217420973485417405783060435977090381214463231572310428342834654506667869272062102590303158464671724738703568164201159144961094198930715555275308574076317900216406701896737276385083463788977879634424278818928142167604459716494968532668914476256824086102531843017802767112702570731240525450088993333741145670266346366249393741232032454549823616458954550785532924800345800014878902570815453329147874504383940395071592349000532941774959892898815960700502780186075880041874150781101153334488153743437719737948998047967552482073804751204753356684548201806209810011995077421649276373064175603053888399645066680171062105139157483945553681296719182346191789981497957873591584608462821943943758873121543071130855768612313250977522193983364558573020746635785283531699148881101836642745083765489945688257109733109224722667527991510240446598068495643068340902635487715386266917231064394668287352275157865136938793646793984400164047470086684679890379714331059907128236594881811434674828278155852829035295765683385171723817747629816267655498079644007785698641610694865210214174538970024356629859688352665002639220261293791978979165448181488142117566238796317235253346778285346714859686367035893640275695558368183872692689924743241403094435358246815695279371487744219109536011283226984157632551788945062043253773926925272552664990316114913703064021742323334805009614145890137071512871184819743152982463377224778542274078254905812758956449780974333162832967297220079412976059750559530079231771748459539692664232689126556318600029381149928964198794636682765961121094235373143543746738226500163069277813234852828226977957450963574586832706704528097519416383945293363978595843018521736812031277769808570138899846023247697088677854274223231999534749846404220648903822390206406235923882067352096499350693486036325754713431666996965503439455789894036615632730541185143142682364127721650060105081840450936480821567083045210226138454117351409464319550393342569694831180205289299677890751716488217314114710368597338851377126533162590659323622194206854207501576150141712006571249614697195352958445059097736356898882546640080949582690400415368240202013754772803843117176096786144382569565348029842132406704932195533877196097755672623779782658556698309231206991408518630170814911293891164897555585430435993311841228591792121586070543211622310724187042566352076352325994858944586831915410858922860995132984818345909269872792140395934173997635996028835409107319147680847362965385273185491894665558077204011154305960745117153673295715281005690874069514828647516730672235748048560001218016900856748699978578862528803409467712900664860905406590059613121727470233956181330468097397879228357351121995559050141267904871727895156805521909904491460941208700673394895362410608898844390730016451423617406232143098414373712740488095935074298566132204137870348190840544535911232097959178863946177129740424016828480207221818610497442908037988251037188603362502277939447941881987496031726860744886523564564477621409112326241757454384872855702310793422016473381698691080835396053419154036824886986649658904062480481471906759093122914235588390584805196849968511110371069241031530408693657064502578940532459938416874248498109746391650203135294581226623870341351398415349802702030221264667452341491269866288204124957269663301557877667469830183698809144415739808955786518425203974789690411157663128492410353816622398600346523569228363180337474407302989967027297474915249086070318894656238665247353238845071324893038604149100701544413004556939052093872180880526954682516076584115386334657062614671586624875517503613087344944235898274157486094933611592931393757748188525515286525616003931961986217324545829085447523188405265882819952689163885094523862265916728631652091557904709966805527409030487021302905112841686394520632294091678261693852506815181158939108332079966800461359211202822585239952088425455020542387475476734421715075146671352693640423422240478611617290743525127047647151823429874239539044971285696540384767795415508437690566123160900399214512478435753035931470683631817652626335319498844286508938758463587999480734275783043472326794513040258856614298482873286788637719132642408582585972004017850755933762568175380981260165743913167192702450167724018779007339256329574112703265972151388572509119395511945939442125575405468241663490033321886573149100827417070709911854557283886213959448816384002705565420620622901117325629365116739326138745568660107215711162541024874915827551906351536039835029845600383781059644554123758436457267546631641025319262562721029796898706635755608207093611754520028409652757430695920861342766385833354017578262304477700531347393825143925788828505429120188180729129760353857214709975628181344125186579154603654553458081581603493457938024006793997078222818090098877509058819794125159120691656950416386402775988372471611443163066558589881146523652278975348448912667623201732305549211209438257120588368269299833551214973561816478342968358579079505415242484912898944142167232613314792704005491025255270726935391043968735449566933747843974012195373924794014893836233045986536605950212196184509712039875777039163211893732685689987746055731108722933418179780609472640172990681068529857140267891838230275456060655272622402867076329551993009422922141252088205090461893926459885549347447362316583043388719272979128686164913735818656749638810587134806448025448166762421219055992856016957296345937101382712780608110491201870842764329478558030601461825985764885012870708652734786016300696687212101737024625797996776252703982656244353583846497691887118439480057876005666118718863376216689547507014017265675248530468415517008925725837251281322773966908769045230135827353825092347639798756749772063778881973150568294338828844644140777333169240623150778587021966564991850533997783637027900056495403500050227609973862138407124650685755160308279486528207160008501129177443008387199554939482797073681990439349004279297412568337126367723029785128393177861584893547811964639447521802091118211639185991357811939650655897194287077483437435444219939738687499368065427001084512051054630933686731878694227722429156308745049985415194187478911533027336757950404879504549008427062076539105284866745514342301317803569373913862743421995074867328212665387472439081284468536028303588873181618299161558062099819665634334223113515667937096215051445309463421422328773362878825057103611458337348523273437947053906152914133736233490825084507612261382401455139358248115659287244849317191567036030929837595761358355785619024607338104847530074382581741598111743673783364638962333674649151083027323617468742172606323727202923284127792947867577746115642629953237824640548951452695917479234258426535242678615986759399250508703970527786806993312772177429031449615856482173947835140499404348630478375816642687442033196186365283338783359501220252794417593337856697493626702582081398089328005332485255529365875304365401640183462184077888922340651677573176608280419038204002654741229179374419834560591033235674828465388406643880008402104999855449118935375384677070137121659935669589517159978717321515723220479993137242821676662823018244229019777752933740051008093967850224783256668413771300493877757272928926563661016641372653772068316512564854676377326953488400256304790842052109849624969241369609936414666413421903509989140943280490063258114739909625769913299311525310101029828269385451855152863760195408131322173811861242995288646460897245219477549523784033116960450884100387354759150776532484393816347446870747820543068457334593712307129900324183166809402713327963342108201123454695665064714932163558587426861334270637288095296527441437071251013725823715235362961545580469228488466914964590154199456246085861700649986879147102170858836139720975756815099628140855874337739532004461560149602995445331221621711297815249128488358582154619860136909447758626878828160386163934841507363263914417434440129221989872582945943958467467995894862308056531435812223841569773768533280457660395313134965649624232108242437122305620324875347121220746965938061256164698843408628564005492299069932430038059909411034098220656575351002676799063231682963335241864327663110655334281332565609923446732390025696264909206583260745592090923004660386742104783056605303427632239947058630622441445362434176840239570460067055739902117992021086762930639065085229223766450087842123148498413261592524200058640946547105241639727253239891251121109175246949202334000720368553254611570861437893462702591692260535865620293296194226025579038692806605472973010187593255394167271711191108401602449666160691093056947736783432860141748092102879672005766094475892101892201959074556253390424841624094414020353820512909792014936206645257587288348102296073103016902938009771806150469656472209786221808707770591568113661007751690402381435519672138298951419191591882098881903754401568731763736232459535780586646086344187537104209393641936442864274793224522580991059123817779464210796672466036366798995990603576480534424499636477506251249503638631697649288578827199390087449580002116103566805113062107499247923821623380445852347845080793800332546150584783073390576093375323305054844028192243480978334390862682390303270968906602507406264957915789733978592951357006664245062872929731448214578264746640138566853300244152193488280122038586016633490711440413499609657617845631401015317541488342707636367648373997878385248540395628201562245730168667626237005478998837106192965418498515333387745352196014045026764452577705117399680575983347207098938709215441986398858686266756323594836629154527446899999780410034464241781440093629273670912134371159711792263077179128791277572169187847912911865281062605122363530568554634416599498892337933452224274037557363351979737144269963264691960830124412543747299405642485123858508747444418987230934625369198495291170387682183717472455162509549099919837815429869348328704978030557915564897375685809078798402898409379392863313858527260614586880533595006849604699051712461641577014942252074308606506117323210006525756517807379345538442642357700501096098790998180513499928959691858684815901092276160497759066578920836738496538328253760371628277309196418253835633875977627374225232758411004454313246160396283622568535887291561992866941432979417969895375837693830028096450731947939241917171790207308028751188519269052227889054052181719403781751247094059846956928790010535546430450892618108605677033978444926380616003677389444880894459106888598252209082098521461710330581750604293495730395551186779792065199650695143467247108008074954453542653940621589938556529055466655080142772833001530837816847263625905228886514425666140189735437932970527598901433528713592039631433557800021327062674882979206057918804444405581707214409936780234661101248602080231122851189279320645449081230644223148842888946479194082606036829500181618920635856097639698210464678106372811002828070637226894340089751795415846991061804489911616230946027191571742439068675268202844535845285065587636726431165303743447868310458710549218260803776474898186569611767228815050024384868245130634248020585570574162288265308096011378366349702907722257115915506937385470492893579262399692651042065961804169469742722940720477285971571020734466963893003726056902401146801194724462292902568088364894394098140472482000838985099915732559561652907020464283803142301141760761987501702522110720844098674445024814303263019468583090434832570192639170452928693737541806399890016347171916901140272521325507083321329446527089679933483466710476783217117907022833172868593470112469944926452341556544547751163969022397181242095523911784459069870411038804687548282870557048630388561628211510260169538257748993150109234057795433456820722427179305507272235070907008763595233168038647205736444238061656602329612335033579820220832989057089496811746427134461332332982564207314118475983828655569468555278540423630524418258549194751169095681324292446492636396382046613229796867868471087647881786960402165530650650355548861491407520261309528569999751738706829340998328226127803732396930673810562281653187337828794842735735412871935833094058362381120372569970670088541580153663630475077654852240770174872684710401746198958093821323226117310245751504212550056103973671667612112158370173863755053325342581387097728609694487005163618213583066532438641062188266214113941011607271356782392360389393753264280313195359585125312996078954509430297089873488493999986694822372283147530428651736638247145436102229258552049582795804501415663578380420526394563007714322978410975932982294699785738567528714733633312371473327180620696669843075095068645823691242478723330870664320276744256063648165721531414791084058003390794026529437506919961798924209927636182151781840589262888016307035004791877479872575901069296364689812423331214408957672771614016300088906379011613174699998354446650643501257852527373343594176601140005097885499115296357545687973979218411450053606039406445748651936138417182407388682505939297024978119376373975358262096163653588166164291753758638519959959536161442231740386795393461825294367761691701214313703405344678744884264458765912747866839390008255716172295415783510733385955543923596833067322380558923903114303061372129707289982084404967416450978912465858766997149728283703692392659233941060023783134986345002215361119226670437420685781177696345833288825070150867518624460474928701640980075706012267092200218035475988180710231992113510728050098918063010513527525099630625817130075292141695221350528043142776243287610355143713636555132151438077715407518921841273840763312911329288154176660644037408828730241553148142929704520366691468336961450001939591973960250041426847726406786016514376301463337629427766233754862341497230406321329935130539658247204671536003779399129699860441935487077774464060640172796762809112066118582417056178871747455733978906740485433177681682598246937088682189532097807901847903037045028492603249174711197580996459029482822518487411830550309100916538748846243552192358990953641185616782026877641075540278006219395822416724059839893248541626631783176099430545688614964349812682290948457396910465893506155674051905800467678940528669245436589788718351620009388427463625542059819717054808128578853674338797353787737168191097679250800460102759490194371679241312431704750955731554330082993344333282068793001964297671881906815958972650760638296161557328914986674754660958735200784222502902646172260274502036248568916857002306878403395289378888360184413601693592937348018983595846277207037229405503818360422360371098085556561383704391201174402156472974059669426922812315188910263089997295335312107064513179391054468491112338809350138570578419191283811669855576939914992622136508686133676022798378603776127614786052584375014663483984170814790352365882419724839269424403876055366683216648896885249768843144561990008754672591926491278906050249092976745341135666740665881922268041582392686154712385813279487073470659653680983950056146738133443437137820766697363834003599742030562417441639170982268991654856082676850572703372929399448388883748723106548670235519908429221766335983693281783919910114017205072916235349137838604617301818288819748301384814461108938645110434211806733604001761731540198793799035407838931855176879001035941844015525254844920763786002101959705083393987440033068488394727793482151795713828810891053756864775645234766842913484514924464825767427042927009068869862987927551709677154410958013162242540891877755159393034031674673034623606436937579494199124372511602297454283827247212630216105121648242202275669460611373369331003689123730706129523566328159883167089414844112733014314751484092150834266936479702676519676249185803987020543940644425185204131872867917536877803409481704523253202352848948371543800743938192087416061829220095716311918851778513529507864256731657511510120531729057402585199232809251147164803350601505529903222069499402383474551272610261617502600690741910812798569666227284818482683782117475767225070863959871773118627050322024335330579906850696064392028511124431004762344672550821581529141527135365002949203396196165074730378357508291416599970617453275810344583258172447245634427024745903249842561669143731647093367043357500371181673178098530427612993420094207726510038166662272343100710600646894141193866270237751666775836759221835361285815019004599938350991544916581668231802504599850743813508100809447099287815954118457209711625441148630194427345708318391233374916843135286006791969561107356966086194492137704552293230806070074321493434761825182866423117470313282629922041917841771451526512112344228433818405478360430543967135695408506266991248719405781418194055751553843131318000021785204971862086863610307277207564156313626457417015431198445197698125814202636403126989422904150779695158192819738833035143121555432411657492215478466635186593445004908012785556519023202861712477060591012963147928283874479595601596380651565919803853751688879153259880063604235199844566767304898808160370984486130249022157670851407890510938354983380779345753130226270052875917902612062075098650197531498391412162177406080943768004478828296047152264341362731575754248204053730705308754453340361516140471914816921553096994427484223933052859107968893810058836143094087336510607827862523319843928764331886370812910461621789121584562167905647948591297179873992760809740520404676262704685883941446245842788353307808615419498225864165741695195184729257810705811855645508426912783797859227699415815522207952879741679206944491017151564179964180946892650443763192199741191146428618462957840792517944842568884575761702582236645425619629390534809843752869622100193804536710492931092001598283739143253939029183889677726323368471290946118159327170598065611688723492524743384388752947456427880592897361289835044938414066858851369518245777236264164335886247119431765106912374789805757581067258408239788165713356744943848450940011575329750104626257849523392559890836908062814481816152967383646643772687073324519614116034932358973020694404620022930529705885040670094219321280939259619148194027006146621212886848985419915567935795794727865607972202343351441249668261835756680951801005641684414482661081794493627503662567240465154319016099978037696141193354051935607329346850351614238905992891670235848564761718631480753957858192679891063063272141925323299739185944146746213949178545754975916820267550585326751061213196982580935119879807210365435871949877941458040604368111281340332747625906223296224771971764495970759587828919021141573546176041580232592116377352380052984911017298194351045237241375912470022903576766303837399384960639445483489158016330500959486377682387863731862211853552294526962842443852731711396863342524478880000242524122715798167849716051569730525790834311338314468495186945931302338804408041278437903565675280248329810904758025995705793855220604817997095920558295542772558446682367214403047423985719227010466064109030683589989271881982213443636098144333495161513763424007649960450049446004396830117120846611809462982110390317340416484137519205345102224218558142808704663916278463258069357733136772804397645847904318078119996422036106081350092386934076005290434935494052838901980425415679822183464696519998438514428181690659601813641933216982319643399532584718808248040093148698814726811338441768161042071967632322394934990153537676527317528134130788074401710344833279291883472269357587526071502450469408326470501296669332922106066159233221022030905590534866028826167055575468304678741080876143497149725564020483204991399777711203043429397768675104610384751664231139738883341133575865109258502865031029039512664648401674621009500872750920420755165797794374049862326017487442937510307332275993231935194670059405447687225455635805545560792343606635110661837670082185175582074448497744056083934594270562141524984714509457511506814848992438722488624438919855300200175090738971716543979691836569050236636001397623924470132986203975709283307286333865601006590819723129225015535241167848944985976277334265501126552596897838963248319502276264401068251002667258454457146298832030564640759892220060382041428767837313173795740520622130195324537866082096683133899639810410891912593333014744057704373298115176041219494569149135708697792689616505286821718152406399369091959839528025729466079294177180504549489381586698074868379718197355117215527434846319141120223832627300683148231463166405012063161800598612641231515995491249339702196613690716176342840370003739669645686133167094042897603042226793458134559622536614810195254995973844599107287239864277753564117483169422019901608988945360430672132164595597675986286536349832632321049221452234080207717335010085223266007616118436765951326702893793847310747216566633077285816877796679957102224630071096111193412362811535865834192394186797860587192724337814408525424861781581582518879304581502916767375460449488927738436916322631561069290746282048525886964453662901614628265570270602245614055499386863523773668385392295762612405296077680747514558171536745538315934323377790263857221443232112020911324710825679870399430311398072470048905427419941041175540175686303648598224295386137634992656140044425420082270642637910433077924591526226003316305438167455753136664782684457247925059079233915339369571469644651403886811840673569848029457157921447732168783514501816147609401383707612076421134515694711112325386657366569560204921147012749263573961152085544569329893682340367473312205716138498352572481585774556473474557243317932245140880085003140539067940296082889832867584263164570081911727513721285943837798682202180093704113054132446889911638934533379677913613877011909301216335228139481397728076081190804940197278024163966398405678161162144261146161883080110681773895708225538366927182455547789659218459779380474200643422687941449975149584397574343373652017266968259506223140730015208474268004523697819511643577157601865760824282098157773505293332716768241039385651399284549419195689024098427125568145245598851292737942611019467580657195987639695113995725341472255372008726941915366566469207137672257683103177663032707061687504595025530836867699975304240987972812467130937437380798793265609624636320363726283737945523769154280632082538200515917984968844642758239472972359897207900410109945858232248380721415108924863818604861486965829199266702278064449382282423767145232116655647046919633076993632184540409210830985406692476763975580488944840734760347640975974916375770447659194983026304445113774832693179327310249314423425540778863483019688154923466552391516346129854223107780579022849433998932620351973258081161697553006457321381583038899730781515066879986764264653844245825543835514675367397124802843327042675114669408083518613344172344795071986199064258628321629869165461156546024932317216896476173354885017764888135023646762220905314510679027045979002262666953850797542920924941192384728337085371182910103806340098933097157581236320689009954582115128127753524185547358025392304693739255933903032797251733139341007221760328406885055524003680841802096497907814115547219991392314669896910873491328640206795974172234241168455994764135626162812636605380272359174886090251837073084062447633030289435968618591521436302131208388274414096730361141174989167541953889881168510652501453166829503261361458407950584179185888093973446243414731725724300240719905279684926730328826934152452334567165145641095334419159598087152109982160096199499552127790193255681869430836382479877652767589526200690791691986794930847507336135237704157971731246141982206530143851592361992896736068199546303692331944663532016734602630105038150686336730969492028233644620579578015261563606238281627438490698152984551969463296923503574072393459825463251750989904875476225691182811184893232873777096010941547694508882628972559154693712396515959652658091788727149229700579318901249876849853077047482648562512873116985872906229619465748163146126889464862982583935823182830012460144158140431488667727151135957549737353604477871656265780189261580712137313187007250395533000700771675894253817265240947776634269954056050294303139616588955280462754373978528971418516351389364741290970511448615557928859829269616932993011328518202889597964481562980652504998623986912144147775725249098829971005226383607956262549017093745837229856019544419388268795156289852485116210352712481109317766136749315671656668644325457188036675114726236935387912641503529106308746766396650168114573091925271751874769548157812807871671609309313465319405850857688625688971475908291583551755088216532596779015833743593338819192278484634089855790143615722560997926194245051787833345174818492168254714559816676627330963526393165401968258775744424953928654185705020883096526273120506282563534639678642516571763185635642292435309696551342338705762026397177356614972684161127642484034772167788826814368682459533792979547191726336902339604129406743018302364572868866530299542233252560620245884529653820000991654033724157284693617681071067828708239951034917466407505505190067108837448353842527407807370932861413079185735153046783852485489896553057819386328813475998980207039652924550296106123202657237773478456056896820300923770500012529547553392461591870177420199511041828568603923416447506977262491746593735590642397467890660620244271785247942606965140711771009353014403210481248429328547052099485639500381885318828618442717265791565652450107418558278813288874918892024169148724794683338359251254868907669449347615976178934333021066743941822713486054398903483689422457814658864604149801156432652121949220528009900196731874088308573033932815119856437454633674788208027672453335666366184524366928149699213682202821147021179832597914629273276843194604240452620652621280323205633669161543463211340227797343837433767985451121657252848920175784777603859453648012266367898511625100311101003758940597540661026376728208785299122598119531032410956149105931672147336320004005226389754933873889311365320836193886311386560344181226608448050400408599664431090212920478540532233307163588411576271545704914826829842593800653298388227646603021849192223219810450208284755789659945761808476522433907680071677536654528238260989637468936175310134285159797137766614675111347598954938509253756138265537709331431481209716747408772126484735263182999327316949442368415898798564500744651432201668874781696278079339266906950728698678140032690539282956422259177142222095130103878628056915091738481311919775852914834047538918419064849393578986284867037472862245443725841560839106561254254989091437753866875984965933312729378337510479377385520412821245647484947984324997556925747209784635738626707696295193554547432217769069635949714551425840219293964261113104436719160295147576757636222815428262936912426922919093835383954721713086985970065619759920960958008183306138220932490096030849846549211620671830390876482857291099183553347558235103234295801174316896163265481880463561560698330206961105874739913087246585308346621551322436414879908128019704552960468321860286885408100825491928809067260384956883639643492911942742725875399884746522129509241960019020864718891088180766432232337659537355138736153725086905276297016074952203517193135536605109442208334608560111155301337241793751678287602458601624159667336736825371541474991273232627508687134798881295476010028377242235337906350154401776711557169250158279827432346770029047361581041420935944206209215914021312186772776503264570684982031066523194364250804166073114215759864544726518694139883835271068955169809591279936449231640044218152419603813739685643327084352350240947357981122414028092793678854998611953799199908070622934446746601546517678780142595570975937267984179243341970359271339657014149493055381582007549524415808994823386576079307628039476541846717227910493768441858493116872292858646158987851892460766777820074730181043006296421758543880278564859591902220257567208878906328899686229708634517662209665525908112586780330193079214091247874448163789217283082030650937746874624230262139003354952068894159701313618335925684862728947929950806110139605593190585204189258579117958575909402520588472985582307409367677245252243689131328174002606338261936363381811451916132424755266801646877823608381606028188030701599036026200765089654206078039486593157666953863953010373468699495004647723909561339772246492052976209193598551271781263039339119141036671271519347652804750539147155642999508047309289064488439888683142110218932143727479819576474996831150909915145972576462118842175150332600899330864066572733174064965804135885321693148517051788581088244945726986456545405216926503607390309855281317141264114196644780841794541353600672913065714777476150135851786040276401354575280731703716282615713367123406725546073531696038088330237541249075141018148270810211505659214800673563120326083306073014973532624672132120676722673008812408945183872858094377039599450302696267184236042170625671387989768914192002742980803324565785825892025701320019822310898582768480230492474319375974623756893018405671091028679292469914684926603600778110714066408354057115751814172555815892630595909347017198744309529844401519776537852749049854613297411479075085230705388004887555360979126403582723653672709049965443666723599724184702826148886329657697083022513765840872131450407903960723572111329173741886772061543109194014773115889861126671482562911037428627030607179924818544426453449062715170670546781024128890694223460920611485379347629862551425635880797695322969800381379408627562073216172328068950097365682748509773086067245171418902926703022352419231675494408795635244806880159470439521739194470898035973075469303948522297204848326187491572726184357178934142572593260349851662309531103121941056375916378579626939429376012133541794346673745724950854781678942168305589553720555538401379786442289915258930517633496550127933545457710468014685327830380665721585466115926627082112281079286543404672430216044555704510030205645858148218665203389983495778907232401737364987369313821231167771307711443746410994822100307639396611612103313526554644558696718847437803484269932775202027850887121283695412933075821173678244837802124194920438505512751480413735746758364351158804371797490715682515176047469715716357597444367468682118365221205080063214648518757285512467374313893839514402854999862919221974726912295896647633661062334215651258691880472879193527285859616492340170325646667144889826961082220480013713145513291762258656142528051739686013035461242557669971419304894806712538523805596261051083039590164068295623867575279747970116309056668390296754734398583593780786700425198394961106966595299078705407022060175293156417224071481661336311950550541456998128731200432084492425059469150484636164246167904295354922316254102653171016142783602366276422784105730107881664347614931791140613705624816792001216576439466848321737371224473389867335352463087143331618268658222831093778361653101179206819602024237908972846373250768206668592242742902494743342810949605797001592236216662625456208493825944372835073431208327830413182380407080498127374009427499343700593081061227685332860380255513475445483674703028638685022050106739226192857912439831479415740688673240618099069620445921554086676887389066764333608619493741611313562307451212224143894254772863528232657820334437472979683239684189433118903811780992159975695606066442420708859506611349736592407949436480218152405632746410737099049795186284053219782856173157142379230087990084852916227321150762651019313082783255011114833659157383923254216824100208228166932633088767954283015252230315853238044782985405847523222346473220049839240205399055971271067923715057439607900755303204227490510532236708215713613618336142555639981085807186426603203422916422209750022408122747402744005633721905314425000179575612292740346877283780314758427442591564371558278083974145258094887003123475146891088609294382262355431186785417573942178340963135192004886950675122386861943050515974535528565263029104132993786175062293369845799005188452949837816513589402369845837959311917926822364695154233989978898917038706012168523863523098379268793890080928343793889913254652007484261030331466854062390876745808216502384018644202415747080412900311559814200950347531975935708224557972795875942397038875870319175249599994729552326604591360059917693214243400735076831007396671345054262212809277138634220804432053360633133337484676674235828216511800213823462639392862306840170933093674853327903063350665120198783520518460221706347052533940776921495038425651874338804280496145170938205888924673387322819112178255396845230569943352858622399941929022617961684101596677403319876611106345540396058732774001179314666266066781597265200301466935483231082893027666091938590993474726596033027958142270671745647973287855616041729038838334363284694941551566877494308355377175664431598187648955134474797013570395830296003049843072884399836394688604772078039749038759769346442984868529448674311934265640599812922053525058044454733505925225101615386257639445315008201068036557558187125130766310364548610463314306097154794825746473669959389715667476749992976140999352242733889424575264871891803470598123955818899002268922438030944913057618727388016896079358188544519665601428592123125558510556039000479470062652898671959670132433857720813396223371030564280405175218816498465984821931397786490695633393734993029097012662919630065168953899248860121360746438520246190317795636600562329050988520649788230439707799297801984707796934980080406177903961321463717070111956576211334639036198819908704651311190522498844651660077804248921011440250395795558672799981538465197825824382808944559315745303073372436101213580769411948150312844203140029961358029506844355933709840753094531684088130382265462757389250526752503670309142645953348570320716779476607818849059472564623341772619708754782377303450490801696206496500663665933157002258355035464532192908329521922531836833202994106695013772869801291895081568789866929256449561863210994431231988481322643358129467538512965034684477409276346442401333347992119560359938568382244710962207178760066490130905871972373096150862907318682414045711332301258481594339131051055709484507271262136183938921029132422041116990413623837639242906610893460304837692768847493964966672080755801963471470892520639839936626354314865788646191416586994502451532725339717653901182687160212932599702833872392849815369650541693639620041259487127967685851489862513155721519640183478689326990299227917401827959180730643726400853652768350150968482818662748964395214650891707060559304906161776742981856156926716419997093690092553255303611621436658550230339434435793444560993701802889932975342547758132587805694600687958182128631845327698643614652917214163299793800022769524855286401975110581167242388950283043896385204678028270977994854708339486470980096093084160004390965112674444338259113754466889833913042548691915428510861025882561901861312833931105054461698029178726921656153093537765884709718231025658057027516284947112367696144786018466536290844982328485445875205739312721790654683649108308928385670894105942513674677473822824499431863635269435337927297799496898158206090709468060650761178610195287677728934088651139115532730367136283955606034313845143871709781687014052493913124291298930545758348043353208661303300699629199685481682906440983065293330243684931931072233628642288023529684730291762798206360674940929428230150246059104277046308505710767601593870342481578802144457651562839509502448821099567391266688301653792036223661238573977636020266541124859519246711770337586637043319608524649649590193372061667548070486011109738615522980964305325544086253914111416235747926031861070328967908680651158546194338688949446447661975599197805314273224837900473405410749912116558181522073699856499799977134451542953308745569741661283675082022792013030501517708336398735697308143351296684499339721777060511867031780878276875470674460997601245939031430861478463825821473558036268890339978096856523406538675747424481974147979134527322296779034341643306048204234453715664731753140906490401111242031212991941193162369888780907002634386669582943159183198417665836916827525954464375086883140531713952631494758886697271459215058919509815115336411838922504313502562257874237927750493532001814336113095750110155395434985926151836931419171617727066746214593162207433960063442463670194277856211917210836085757407408204745850449151475238650633715939870962621819275520824224443551069763760983189620250813949215772506979319382109617826577893218329770792117082676507778360615845834628221210761844349247399947050025390139164591172900443220533007329311140136717165904008755024234714744265793555999942251719580594346237049840486277402614822340444191080050959736425390134338808678983409558680965493299307761425179782456279574057212482456661938100236152459578510828046205885974112419794491482847720013029881280703084634073995258160515867347052670175057931732897059065479522174940281409643755175004799530872762550151261910439236034324504862040292433964588829026023627289837751722549108813378219079069219733240548998672569267939054640013502435047642104713919370720341472696499974954553599180561119608814240222452844642541191538717782618852915848156339414607833368231412251059070119265155878539045132592441762627996330506653758807076348627730818788345812487986634605723084481787034445166265368509741912934971093712961987575339285768373337624030121792335327458512112642516144442733501037312733516522779587910655323616561465246885661160448270057805319515214492976681860862387078750885684324666871615948727638364975771990557666031589099168103157418211643424260499859068610613955550353525418891740247044176094313159668165043448816072173924008817754942844067147961160390825460560991535184336409697173655586929093840284185740080377451394010761981405321108464777159796583137298022440584645033696564633704846787546173231948330399431152110490093542135369863932303609162721886319711617412361107846514274183180444902844432868046316206134686338141064327949601515914025982824016748483084743509807473373285203558082392623315798312816734298167073809668712179706054701061290259911928664571981552882443724076648034798152630846028487070613068754992867205685679624965082608005718613250477029916247716368023695283810809059607974619241888620509390399290911589304402870310011446034749852871282875465794799591053235427656548192721574509063254026294925224368403716677753706288172599320915096731866454408327007710433842725130754550611171913105439839010427343639958720005599967548912021171840488023794268055438549385604908663927599743227813428940719536704700921405777644751911374326045295496594647523262167975921088674745607142633128975053821576505843343772210236069999930503854575568227652791050126813477244209664316484435239391148334945275486744781991359036561765697611738797503989291360923471489304700554983444978595039494204679956113649641493408714233269138179583706559232624252138511513403057973993543064529278774771501699101769603116608892951953875430310073796471088927220447882070201522697490182671842886836572690885723625539704541522975080110373062718900695651081735215186888267670453220404765964082490672175458860708294315700488589766205951445899104635562996755425406237107519714969708032619655456312385946468604426664372142507079650681635122990567891444903344534767449011738590679671404688877299614070937229369719220914682097207645240947388442695351794916669266919052187582588235253910928632539344889565218007452941873409101208628130770513059893435141415539781787397120418605607309543919670393078556531018775582171080810615166742027662117810933265406635433341493002241690346313640481174765469906862450995918905143391088756619857372932680475779193673450384783370635263811195243941962396319415856657952694372332716512575539004959842105085864515946861088044935477048481586200549396027414738226599241460277183723919175597018855354944999156909032824174080868846120495313936865008799494248997428421096164536843609602256168494412195264621961243473532785139015704778386762486415432159065478272340703733525828008661520346636529231671153183475653994556643761227362314818257048738068651849633469290920471305428101025868640409848483081277811882777812785218526878353246003351191780299530488998050910070880445018234056746946972450774974047175617054248821420675289411282970948710009956816586592221582627269788688490434593211697666429032402833130952953430046978095008878155775017200855358942678338018553235369552458760067113443354103005908255870395713636175393849954755883058505916571468991630121871674468642087039723062018612010898339855747888380625064822529506121439720271595776875128157658466300903480850242792479829343169820300353868902537822172132644880741206186256463914262469951449932389770156902383415620304613005148504085832731634255694970634296683331132474418600198999635892565021130239236659772201049029948011182582762843165407446941630757805772348481772546782046269842394404694813058854049120278986454459094491925764055791072274765538462324836662262994194754853964944875252715587103538738880080942538437492545223188022482906771367103599622451691395209692332842131740412832316959641266105732645870024979854008315386253298808456190655730399892292893559502833933223978687298662700070287278001376523471900238236958542593279875121920888966256867926107129308730366933458217754877590236191040310260765237455485960801879002649779598433946402747075249610183341928724334554536589304759442648181028197713793466573100993770970399908757088784400461905462453599646098206326879291325081248126850054048141776494468603734252170698857677104394726136611913589651220423443520199787707195716942120597699180417898547778834629179831125945964000722992719465368439668225163062789371829293175221641109384450748854468116012198743389067890345072724755500816638829851285439006810885830510834262761938729883328004047379195112898856472069615436235926952797396735110033507751235191083887568452248691610493496681431834890473781262458481917723465732062842560709277010495019812124030192856088690996163778531948087154625515578146035857761945953511481259596158095463983721365687901840632653591142349372312436816308494170962954523781249703601516443240024149682265073974001310059918710221109094995035321893866465162747204157045457598180193123109649519118503504855306758128760246964762951292754279301456646584261988962773523837085867484270831791199054256377861431237192448959663003366181325687607171837383330979526253310930610525032085161143403752971995571789372316077119216367529993614434084136274446346872688294887656628192840959152381825715695648838074963832149929283162303759301422095921222442692478358045157742066576893629698141975078240027922118520338134207252077017404717944059432029930425187385725587880615215314035974615333436331176338101677099967629309716648441524248480428764213965483192912818181468521978504200269071012805565347305871982644229217669277458557605192299611810623702461486325790599250745969159891888782201136890552215628172457002686631786059352468356722467564611308837212470925117510857687094512012347819175095353177096095701323986741099448575850252423236565660196673487945809061529010740577755052492396112156461231945600924257235950831875970725041682427195045753948209391025595450955681436607562074345651503033903355427460870960247887510547439714645739726531047398984385532212509550659242684668712305092572751761267626955736828841966437387916930859244272942252113532491985851931050637604040328735800629667175428046050724961987485309187111295579404905211368712630140648840378536531021792177120857077684212773298522847958357441883607662758337096744141730840834724838937890865362109490335249183768581472632391493266341444228900107758343866031621355046202889150040010736688532582340617462021312379670876385240992810885302823508181259122804655264657341657737132808208657530800142860812323226237025455336460595217852386055801721696031012177991459014411800017901965421694676109013581177545601649590955382466803095062134229084829792710600267791398711829916122601806809661393661080249092385714246922900953146378764106494877456864385741717826410980693145625152735624866370363234864073618869620984061460065827455816947125167520104903656694419630542776976335392688175580552389116863735673220194995625249870068140546141272139007331673656132996615162231223919423521643250809465759026406848529987776933868312488184384663690537449680924457586688522579952231933925751945811280878121793129155918984650091830519877849678368550085369748532467509672070375937559494486211231796264560482827077208584587010425738981828307805673929115030995609705817598561317967141742894745033741884369549971006098702066265251113782614877105570247300517039973198030749673499043064717120249437690419439607001001798334436978798729868671070381496882126303801019384848047284722204295987912302498679971339260887287431909801450736250949401861931275552170802179373340704370342244916279418422849023599224591656480097320147704592002395557792759724343431688110763855069414567199175189422272330390006732026323208896010226243611817235980390425848831225150459002050101287632757694940500545541058210739241600202341978526154871643644574215135550926858532770000108550121862815244396314112379528166758972884255321097967605953149938816669488026262305094999933627670640649110008415591510695152709582646223250780658720584364041744119400106804146638514365183212919127960280079736717068986085201307703753577151917684390378233610288654920174767150730698001966566124768783013235217261390942284747287704539392760979076308764140374944074454337226031240169389380854426257542340779925102621404209944683920363465246761195662608351026853281389125502474518885215813357581670834148838977014400562082169893645106344420497594498112260577622342411888775940248937240223933036823568403298414132304411287951894455417084880812884883731917635900869666225618808702059577762176536424163833074819899902028165192166351754342344609937853519329041506400602228304674298676987277070088824604490014020477761764244346901927376164541608684481750980373627591835857155392220142242736584930817325444427350166483590646634646435120966173667795330047808553345547298100169954174987731517983668335308474578403481597867592192988992275685866019534131176090430645510682324799808504227560765734084338569554545171734318241766269237918958306995708465146199708597744692183593715071521544640440803659108849389039497803248985726274405716714185808452962124843015007576253777925597998399017338073431704627320000227020020763784979790114764107012949472586286226057913838317610970024465392702868049588139825778851755019946714143980829082224810566231030350051565729283668173567356042245383268679553894733615414424558533903094224421084965754432147256865834098899940382462582258612951959148176802501643498212429071333001173427015017535783816764723541228047254245869662401560500352673413753556637749546942324178517685445797294765431326567068557594131523514573829720307601806758376360175942769971589439311962670511526053352728963973427217798529361738098871830459254143788100948865063802865032483017639979368828797642114139430609604779977542492241887904002532890766234146147345967775426492230437010518850190573482624770186539747144016299847918921781926324113894682308348846587233057160837523231996761029290039442527510915590201656159503201004329626742973475174362199193467062619254501239758344774854612403732847686873530512550432823509393835877272725614164346595754667014134583772195551240386002533565480825281907481655170501222209342635487406793989082616715858148292884840840523244882593437298123168768162719250139245605578146008232660127684822812306793113153899569135370887912815928869619372680816851017693077885260122011030476661246650206295224120035151154447841834938289225287555970249267424002765588755155420826339535139448803555055440776816364040917226262710009749036369292235437037744124446019621735012066423325453072705357800572415981070029845141943998649847847377838599164742139709378360043062300381528196304240452244049592373055679621276181876060310093259989062665762383850696255519748724931594405024149534715769929442127559006929019746171083643168339496356415879578631845007551043611245921973019218473526626401692614084044956977776118990436405327090550524064564251556388835757499794090266222826487382920205232752094998683175599733985693922667172540376341893608785331977672280894532312021133722876349559485337557928253619105473810598544480059782959750755526620647640802181023616268159013728479984237113982065770806494720002378765031825524573380464883542504362121966098572554204048646682530995681722137330740062046230025108125007456519109988133240907624298797350892975854827087742858561075865439867014028573702795022795886507932321998540630827736092239560935970960486433054406274363814039898093355207029237393459450472453979910063656365737236169480582465123434387245788315288825705105135329979637121838219637387185509860513880197995017025675616239426480460018808569242111683811432798819784936832133035822030412635477932506031416548674901784459534656640227620252776773142620770088572679045546615939232835113593988640484244053840676566508683686912069584852465904914306752039182900121628808855656414268639033862412051648739285677582094364681708879720806206193637090404712356848423476638996405420289005427785388610575993755670429009652188943733763264988828935384732729639510467421612150932441643313990553696977203252185473442485667520478956880621000443068858049667108116338137826603637562305246178364543108416268029223553827790626465872328844866784991972788622382691603946272191085535876624983971837209570835488448846128847955946461419496884054215983676636808032407035116503208614321366115333807920511946363597288785348912017658463320734941854366715048724970951406361180323115200483449495878386086907478374062373259011825841555003332567481026499800569413785094117442396588710398549644211839026340850169467619237549804587763108022155349515668455888483527590464798593759296015053896851745649808388121346990784763429821504232695482825046156988572024597052821890403928900836764303057200434391181860026397274532708409841732456565828494399219036774488292830639946391454235757279980872790847109423441947755230168000660382074402197091834763892246676258274073768326572546925429749295664681893899334104577603774334040867945102867665359845131431135121406157917133779951763396629896870210958082608899365209300602438278590108055869227152359218410056374504928413486127436756252933225458968052411799690431197182478095344102475850169540258166113092375992114141043871185888517854043180556693505722441988888957459437207501590596186301611705249356417307902327420400477972233472149532901324909671653960748669576999961128033254133886009404794336736148316708758852376373507392124179673519153197668152478897014841986230262868691421006956572892623378768086580184117267402554577781540754216885396010747517064844776284025668005821495231247296829265210999202724935253614453647229313245714939240923418373451229930697253870941576223836043028141549396464542451660777864572228602734626025168874342828106539546720991934771357315269273944517639225262518609546334289506534439413889921015731818723731257379448687793655652543381734162271095633502622310876386737615264335020919955074912660379275116495425322394106172620951517229197851531839747793208007298710306391849153846045791351035459408158078624233959566441083653576530277081253571889151846667915940111105011082265429321930160190084795300847451988985917748494508187789258674145309559783485997109425800160890160576546521252151407332052544074898002605369686930248782439994755508862615820097710180320949559601770086304446341234249906497328442756131258724037338764577941853196601872378053324534997732077092887477645405051356791309511034718207276038587559336229022894798501212547195974281137184335981939629639862021072852583792157954365884125569947543469033720722856602248146621305219187635443009134684856508847321285592425549385732475834191402525223898325884840523095055725001702827763636041525666996024830059013517458990618635288203624574944797275022907668050339687876265652640133364195098789176090426467500107277235007376197619630680578045357465015313475339882405746656226556663498016649412915627465902049574592346015928724221280226166719711734782377751512069584892014427223350153889746531534969501491914555993222899981833312213447009846135219950835383510118111220551612476311738480546160048903885205095906448687533485225009151474903572772897523105378297122271777836635794989253990600162691436050698009044977995240174691959509144931260530898194868536595452404656374560270038854163376678685685621334236602152015157824031897433707933479358098507417016788320978523172261434830428184126877564229911745008395001588278322333111611907454435148718918843349577472917198428432398106614235151155365274225489328364078227815475055482244208284152710461281890663942477191754720628948730197362665320313007091490499593266290336409289435526052372748862491543570543125655488264563874380231825612300223513281929015536414721274163000167728965154087749209874507999703094141000427771602885781402304012545522998409885436425840408985762449289668925802839816675897456082936074426608588736228796522122019298681778626787527482353145775169722437649162578051305882052518388846364621215368396199866037642912459775115357585080587447368365079297648509300752154855730658385813576747896498177423929885202644547511555169450396791843177148625890138800169006818463727801739957259467022787287323916658997670716736430045433820294236844668553570390248859335088417137625866420010069451722881558606363797822438431875830585911578592767507234192428984645887309311792332064145062087009723946081161430933932852792806832261878094626431917205735682907699674443841375146377618950545873960986822766827956882527832054336095092252619999685325274407853866509608400930059700986241947214726959435778148615216009147353372570818592548422131519576331826865612925580846195783778194397381004008582063925038127090559374079462460465055769521601731528979780676300586702167582595200927745869558698154700907212365649162333942836715111957512162573548719812210878814541940884287218254861827511239115425641569665056662736867468745887830976650367609485502749348598906163390118623640963839283967178732462546209829728569186165205914664950440998869874480311302388210153042353004742405920206787759236209353619671366523827378180874886525510194347505119198181607173179704727792722417216891216130153542676646538352778455813576998954410178649821677846377952824020023331483230433927329334473927351928313553809134908561082640579704306562950034763009041452396762120609805070685744462602498168850397413563704600076837973761660631666547496377121978031902564435753285834680947765805068668079549501129995209767879392526708304007349970754014511224521740769593241645335575104222839994805537094490426276848996221777824936478411414129736143916648732694819215318196844489807379020235094138374650724271743896037969090235391615111478935050547871031646307746210343719770798196474756550816944479925483925338494248512547955356754971756240162163602464473372858242851138139066660769750192200222600524267141624556547701307569852647586233085052146853427689387692109837209557594002816192811971203045402013900106370455779879564743801735095573533538129340782060868722389301688959278470866451337474575234888600928806120870815800490183104257988447695571509580522909191593386111965282960762636647233525145031246175077826029614370819181991470011118363449006018074061444856433718241549793391772740107467546097593489185565492827415248746446369564487257594091093373789854031744148682832225110794255349931172670496054605987870604726669416700724069766813016440628723580433479388893359030324796208730635225051551900656775483121977976926141077505479175830301964861764070745587759154417276885584364101058997381921256930552782384726046357130203025820884429644331157893051601690295271162548778318094994118733547258443562051827737220225749318723049669975692978783634384040015083031566748469999321819039125426053757854944751471332197161434121582009335807479196327097502958960601411475024756096106494432045295791174193006600581141698781834607538627136832897683636506665184127274143643063229519077776016762934494821069523282609456191540837537493137382143940981113511903103983938455056212174848162572216732150041015358359975348706881213282566002646157987576190445164607553545338670529166549390502949824427802150317451714056016823637363299946544184756041950600836976678928418705756493831937673302596093248675693069822339402258746805601471205020773252072049543634116752957821575268296716102973245975524276532271237567046485940823191992741431305756173771772385705532769254464091416414373111718102731791539040820979226496728876480154540634946573954685800996318190000128914561338108850936393013289399054566881768229852466425521856511025195899178763520570791562105481085208952343689479563045988572441450796185196117248994918951122548098613153865470474728810611969623826194761955860856071183593077174566547718012982923996942360704103640882443148731755663038433677666290693006943721257050529552569331165628089299417926710381944245775955043801959831690143190997446501849977065963118812610547794990465526686074726942496897014757213288023389810165777250947469569507508372827299465854812964580794799475751625936058192900325734850415423031326982866152197046627844649967892621392279453765218854812379082403317340249168489093910226193995417150257327386214595541663995878676422031750429509161597099754789629541235298065888129184214836562254684341050263441882181585479541656066298710511847687962822021047818510687054464582748554136991230403529010159147383073849906926275957269930128745564358920363064129964977390852354636632135009659637590584026948039373247560949740000536937745199554571122236675569224318451994447212466887457682799962903768439427534581598068997000777040779159793993600543369041146951946821976674980859632726332433480231005902057535197135662001514916634416289441359762556954321657880362249048502887553133300956349853166641317082232984972788488266057891229564037636539948802823446276389838959826385689063667787966950961294964347593940521101633294088504935578423607617869407095742319449403640259527280448176339038649374236384706807061554279829895488520979812440697069086950301323304951311224874220029569765883786526988209163130033923604572166477018014216711974338157338304282311903401775637164745591141542983482627625514199475939908356661476815539193948755148747627468452103944190087806635540602131103903073067001802427604411335452962031253826114932991980280567156376408038215773178604171953317087119554582896882332197091392590612224320756603949927080744185885817415307008958121288273129422946604764036081704095383383059247053602187615916974892618674171391681984608716749234614289169460357432440891192620629692440616538422096916307206801830041586366429133630920903204794220450511922088531546674855815086553620583046404128910841369346259205871390507755320013758897487489482726410865772758404205778889078791061107862078771538134601920308184058465661583589805949850005500529131459288835526081370306549358706279139150773884619954949152095694781667626633281800617083940325527791031709574448080045687630386184424096802040854625305372365421190219844932750327942236750430867798218957739353723961672458552289518586014495190777259718576894607332151403370953918597962910235935042753298519410625768640239245257058409409042164908006576022888204290409525248844564585122310858464650685412597828846615705109105380077121068688988587455147517667974111272234645917133305891417773969208184358677919109498850297707919664838565957123716463449672135492799443638628961761866356695944410290525555523708310604459494749557986318551326229490265083796690146966963524963337479966656595023135198568576550933093865107041661435132148477077202125897608145407807171639827100581973353386054586188708742175864822324627608625538157398271761536958064561048172108001443629550756023656293737035182920529433367286809443701927111891146602002277281065334094314188214722638836541494838352359555819904481245190181998514465824507564037447876568357889025642827837332679521230681509747582376288648429120678555118671232361926755782601157049508251016855032215232921351124192034989864730954842722217139605613440655260550271929357951860789228745597656472380564326943563969434348977312295082384941543359601563990596487778046696589473563046634735024128176782974780217291218918044823622782275501457242221251185142725372694331556347716469825891321508298695712768712124867870797141302252548920289904188720473443653029149366952193768667481420175668034409441944564941566301784507591286779030926693570054336550558525436432154189219124631977997020478711659793589345687659205096517567114738648528315887036265929720849434375437262777199957326509526670601100564242584893163358564430794865198152158882750556328350044349838072250195048046872652784539205809824410778314265897880776035302491228708683377657152495631452146736954064185884335208964931737552355175577024595969540004106188314799244511864555594592257523357435987159467059471090120916418285942135909058320966319214199155965949076896768032108138814243014184485851820796190052172369676057401966047925566478552439406325762680447070255476584649186552124516746601090882676464730134852467025015300349645858874710108466694101561435313398669055308307666402551034190805953515298894428870312717791392683528107197123850586835141938830531189822263813701361074282566774111694722308749667087209583656077976073974426548473602073498210033668184111647271679464982382309401659831018197426140445628733447118433841569244546443059949366968638609992117860563715188253616088976262958310862883941833903725166479282027984753420265272320576291196735546193828560232737709278631251902902971845297843738070355154054315468172914465406819119983901335705008370232871750803980110347148270822874709410246556819842074345914575271958570054355581153707607907997758412721850467448456837500204038856651444564914041745115286774879830638813709082826739991593396936402921012430460836812581662680607911014219669083476515378350070251395168598561696061204809834571032714930138676684328299596610225791605333500235441223426281062506254533230769798615805785026087643486276981859049353361695128049654719575337547852296509126606701839222355496398742740062014295565101069001790213735641376749952172619578782168341418179803954334305915030956989246237308891041752837412984323772979424312867889365708614333360182462414410001325477796329910891473997934048915357517256448207382306711133441242602047949131387814887861727989037518632482371168353665344198852014141371296188519050509813732821961594562964425267058304079685903431098300690927214085253677370406556471048761743767115204684230176106742585493127428518275449985430652510351841970517285744259716553393617737808166189112801325904675637404415375000020233638392438652406215136842871129698546417464144456116771987891906758573292182491602443703899481771609736603961963921127688696369200031419015180370905949280046091426740466804042847026021233060040357403145819494966754626420298784642162329228592872205524424202702260934985291998273787688325972397858295341112359551257053851969664468575493737296330258525224915353014067552147999745478220011292444150682200369256757501767461148948733833756538711685279020966421305376578087494142179055404339613907391611145581510689985835585999774009865814295641625952787811908026743037116842750144338606125290257700984912291139034964805090839371280269552058963839326568812468705339895236382107529671893806106493626888919705387094189353279392394042341021178039050759994408157751461007428470689338621735936270121286785228187100358648548209777008565671410019800308589991694812286424670456518791716941921531302549640475942486186447663332845036707053918768492461034768279344674645838180088353595999305369149399254118411970585280406515602890366465268434074140481489150267138992542003227277354576385978354298656234153171938160931920310860495037526738851391795415876217455297522374821176410240849354672937876577202997516180361620230024292922109704794181122411712609966061873584396801976141114820369435320994587564842431718062292518148701061226181887375529939145063321802388963426340048354512817294333626086483159167033731968326624955017143796906320820019672033744339450339407449546520595763603402588083944502445518523888525870283024668902881750917033388104183493861722516173163144712404592756017988324853824758122556032675843994751851338185398155222514165744378215226870660119881595808502030789894252500794515241761385700228849306546645170413195470624947506090206374098184641953843993759695420172583353633048497645953951381535050936714817463591266217469111400438103383825645465642155038883790066159827290791053795242089556072567676999154986862594338432358342477059893205662779986376196013913403055663159038452792901196876364145612414081445910749082557925243091977316847276604278894340149300521837369166086598261369060238244416051774650544671718953325511813149688280528756670024176036514908084187523379022991790347594284583433748485110355804577834206164262153540202972134627500391478275869273396478594687382006710887440253570500657826947854762854643566610704828252737704558833252722767972397744583651165695548155591644370006419795254049118850860207163642143263824883629963323014912361788084959396740843397832349944445591777742613631328574386017381779292204115863262128392143331958548543508167744770869094688284716118196437827539452766492466389391272089062910291819228357531863909795194670673162137655534522728618726528634998250874742311652427109773456862358271062751712873207735572606263610499580075984418694534668791519498366604434895861036539295890614293698614587963631996827108483950327761218578562783280289758341764282290466060429847032511114359911948180597608727475653925208413257929035751844771970153438840768601660449379824863297479417207327383776337026090177384792071388800195651307845443000175089184622882271477635038257722335098382292719251016415689489078143791911274235333076387679102415879843146242451057753667305684621121296823788886854717708058076925459852870836447063280344655596870886045132444682016629491531166671385376911919804331090646453372102496329406240454006501127233057875806465597245478359320181463209039013804406580332859128304446537059135123084861588704478513359954475370057586976436544011437596707426655817321123889845607593475514853450304951071365397550920463296404883117978549573093559982102074017994756659898933572682555236464423549247515530615058112850154107639807909866644359693847627768894114846654717301287844064851275171063246708833370714765511165348856772890899772647610908784951366907435542022415961653062339792212078794280334880703280607941961018375634469964061571047826301532924433935553738055192296851565518323922533283257471473898199152217743929930253014718345379246540096088013481527293277278245442271475766802153095662629088870667618658149593857771329173403990180040454991096707449118188075436655914378962056911457373289698949012710146632924245160526344222394656610807989220673783614277996472082925452583330963834961795383228370097892399864451528321607348688971290404378220944633910217588234411738588014467412137598330732315334399658664840613940112120959548161007646180522491121181620954623432154048848765607788273461079376648528928965649927283447216845739735830712265815301605924858241605539214385421129731207656728730704113687893881618951670558822988096071360835114209508617450160580408879905524312039459362628789514652948381728030602179852128849417010452493769289216193192306165234184711039462611216865699995256115222727307762418643344821931683200536024047394235504193713672210601988822720524663891807020652756216006361677260098282410751006524336708003572896175840824244863292244105607931400949216862920374121210971290365683442142678290870058850365018988257690252405209612654249405371628235243418172699957064498222577674902404719644341170495916119902741667899306199011624180752992262421401385797276103058147442904453883572320236281445758122643366165693111934209537699942696919423715259001557487296317929489774414765551724347266629077479009395576863230925265149822318279221412151658648149494245331727155983667218328601832204711453191200772249770658433449614549486136513655668746719568965595832996555796503878490068366218462893727671487931183188464028913663680662421906090621969569733420064013748206528365575864261368298200645874215994343944793935354573391172805205361448310951366645427569150420100059454562007122965917323535646336958602867596412042196383641155541388468105403420686244487236385966139760107316645669186785527375871582024380001189013031526816967443021228273201374637966241459853953584327478024631734438126340094718326155195781604625932604317700364859665815603315403060785201661588573260620985385439985164172163423776604047342074515949575134811095023868635177499468817757903045244554681150542978943517939531696815666454252233174320354123109214658300926635102763943232622411427665009020972164615899724081357034764672028209993618087683127201539333745157770604248013798989720954119362637768363798944498630458857684697986010643161745398584603342382075614524651525438856898299778132460436447432959825357051791847247538024702935352202048749059962160119050358139637039436020785214612634080758248420506538712341886325006105876452426015881326325095307407850208091305156723047759504558444900325828586870735338706083155954213481915592123117915279487810550011726700985981457166954934303197910855010366342348093600825494291336147356942989902627226784706230156608047572008484042924692588714460745179710291075516211177858859243108270110327572609696457391861784573153009478906668049565984411311524400718206926374270687727296164371665083887439872699693426801419155693208823718836205563603871388786285649445738448212050234135632189763038043859478110404328365788545660981639499955426603856164170412795060864358505255993681056499297309532749516249027391403429889581114038269087553429243583103627358498345489816928238117414956922026416309259029161319385136934011107363336830946707135271910693367655880862260982498039669621534744737314071999642190641814289201684520688798660809045534414597729215173470963408797350875523165558132366799709167051207527503666736841721447159989700248520750693953705737969728146590259470160233833082239582729557700774260708398849648619736467697272199713805203445533322846387117048632549518782702954937234600079674414103121151124612782186918006261801539377098704134596824881523944839638947862587992292170256500460966414242324653911812118372933996737868477431301628673020610133602971370589052664469608834104409780984917764439608741355492264380369806013390313470167153350075186478820148532524244934902462150021723006677455627317555214320199082598032205341630473874557251589000075390835883620969822862117131726042650537202069429389963551841471201812055180856488811756388583436075076962108644085304878110593859744846864544288961620155561404843749895997360892024147107726245610829255074886945022466122063755947449068555450377660957613095953930708649679342694989335892399547285159156884941591706825292736869138183164606971225067852836615981741536002112789136631337816215458582033127463390528319754606187098803959404259844912380910157405078250600532291439180925351519200672284098971161914089006559747305487133494042315863119599063567060612058295120759946450447893598423080420049372667475254175802783703110608004714351324171649581010439949592463268150821377496230343879638494693753806813581704620681520963874759189852774468924176398662647852789844904683668456286489545072768889105142398902179786511550189262915020478250482085502032319258198860084386983466982367059380358069403704231928194002550374518881135306186802255755836665079227087976403564433935031825072039709981167503655514704971684997171560080640734138933607412804169443580938249234294153573947579467633301024913267025188490634723030689820500824777228688654580518474112682388593857664046402840597866653721136282149852946969747953405736654012175897038166659592661598282619091451733722919880032153261460539648550095946998324042997432453196148952751858644662380428783909858184263816502639136276805018273955109787891351770802096249523350526434286398183689465746176360684648843969850731639599041599518447062231353319308456335946263009093069872519525100597234029408467796093785315304292504128959544358646487177861547784818899448101553191366297162204722566050927316882976913155378518605574578785926255899422981490928135568889962931726299880553852883994513443972539884275666440305043835219261620321993857646705594766320405065721814142955859890986667565410322988635409750145143275092949212821621426601569521059552917764701420682478467501956971742749358356375407773976824894211241264319672768657619592154395294184938382697761898320486916373404844091137390670949550811631972046455992914180692638877465314668935877980060846601063027569262021639694347599979172977326920919714930199475547480652198390179277923542740559677504049157625801013135768825180475794289714966755080023726470666948083715954879558334600256801636194986210991020968807406982252930960829301220569938844950553960067688601883708855170334949238705243538460584303390581580082861316662036883790456053905239177116722945582516730804007450436478057546535363739010747842401023072150265817559379089236233207903042116420731196565930208502665554038061302052657748987198454405004408855943490374857931336314557249097003714624129094467757737900459533832158894559036014118715527031569723903790722315414246719108764640660139230564621597679963217483824718567342070504387054530777215342706759136202756464359035694337412916543735391383780895760181388319232811145971201453391423893216093406744861254550926384871826320501320771578690991941812760784165403339488182459425477183861510441477014049585344162105298275311185355817272521020429420284737619227696939266091913432964717784877440248537868542101172384575843087917602427878758274930005819710840336492853978334322606008707318160827220616468380952683818617065652040775827949450399941513874883499261678312054861890851647897075554288871386368799255186178744247764416353057115517088007370322367646134841033869804495079193707919698100829693526764254693619701002577855732132927730905787146966011894314504622659247728061167786742360713318004392836470255926746690541995853685249557112407157212247423100016752860948135959702174925412606711995985521971347148140258106986267283040650393933800346031299215883364761373614505593509259971599496187028180845460613779200701679524025900180953691844536204377753685615247698617345086243948706836813623392125029672132801753535149478924851098658586106678399334980853630862158846566314803158077653513975198801248373857580392857455382141248600338523831505037307320258946135677681846392668562574886375323147613828526319803094261213865982063801545808399559054953410992348784737537094826758807313582614541411329123490259122041079614845994856849292953940148805658778163797404063654231769122519178365175116277543242372483962225668456883413185472341575956431897478341840647946710689171509268229510923986907743027978198418341044474506678039069133329275813756253049894462300544662649739395465015271012807721065133309672684963446544281419101418138289132659476971021138301994002584936521761715533146399721733597079320272827620282992793847357539241086818158860698759712824376296458205880706363036165930966458082064550177775809621099136838158114021342075449616951740789886141703773949958418433498110702598619396891646070738879458850932312205725814071294359745554246972878401556141287780948706080504376400932688247296806578330413615898550712068686617641354855640519862750292017273724698840191727752814809952054101089367410464007903237962692725974703337857004003097407348644646028911188819331452136592416942031535942113945518695613565461145167577205558543987379013858256101272984868002882594968841996661021890182243537512490579358953944440958576759218461406557060132861652557490867961189440861126905291125020506148174198894386043023970053793487852440516656436774448787270962259947722798522560739775915794500560076733147778726727643639648517857868759334061787192698804465441488377063406580883684359812072561886724882987145993275209891947126863587550616670413296887500325038457494889852568134441292816433228935782711824974380520414236835460134961367562801716964033963668452754353735320860131510323316487581267873114703811837029247102337999164430497033181257197636256453524635536673469746725430403349514901634315173410648018294539780567972781040511419785598488625392978132477010790168667178685988225854251217764824337552926561590777306123140807360738092261886389161512165736383263054387534334619732976684379741441817626946399424895106029250256264779502581615317313479629996973214110231787865181871047500970491617744229384664868796421107924189352227580687761743030357948928637464696297013810643334489859105954433494515073428013471358938291184762620031172593014704472678626867873375354209110456856533764370864487683693049054693817084419568522338805226358219936056774745413795104780406376701299557535269632846489657420122960580291380815254451949646362515312761072674540675129716877284278295385854652912672826938187492424391234899890613096485860244210474956931026137830246430855349842504358908668236893017629149422293685416133904961447690390387134432594272622827617299257602714964106633458666056260092619891874474946410811609854774066399587971197155988860316707459684646896958039867945566709040155510612963294327367369451703317972799134103088297549645383730736395824955214003137984237492878257935454219081646957916403853049807407397890256360132153106076249447145001946134596839183669683694751262192745112866373059096775478931258603941938339263299435532103991886771955130549819752704436306804460680446030549944607038503346706021833169232864097178064156511047320716720439888120792011426360977135959875973259669664117921452054376076225663631712718191564260635743081782839927660616333358999093570106359079605626102775399674749983053533317573602301054322533949816255831071788801711151097511881362026182696056749137912858761170668759294315301943321492521277462332559696034580364044279263571556197518429477429290724609353184605917513584256870573571411247677821239947003095224720651626620072405176565558839736187766744955987750893934138763885674286619541490129521254276096902388694542253105585910357595557273843701769015927770301781558393607724234464312332657984657860311613277970891307976277696129340910582504968325356093309674211570336119950740900358330544954232429835843226294345885745061826461965828989539988516705231872623595622986730528330965959878868815830827230671525673393012860208591992491452322685359841346004542646129308229708388392932146272459853480985056312183405294618366225095584019368551513295101838812881430703824711818804813515110566507088805751405727934526089070390055329312233594589706791479131431992387497436974602354349350388248123683910881965484264974123648500394876854633168158662692423652701567195945716744972095818792524769253331425577969461796178538958095097941031343739154377199489316421877477146989865003449232333854367451091560636859384056500585554620922973952199235881793833542893334707439990877078061327229929708571645567789285267774904711473745341018270988918301160463276944156697091319209054316097342737156740391234497312451437045671675439250617482989843201288693307254757286573786613190167037722039157174657296609302444890259532017240170259972394294758396506491996417815309933265827464644744324429359465756676208092622501665877812014536155414161634166536489570976868380590143624720814341747827652820551598953734546088104517619432151134029334588930477971587660081848810659381005677870358836814853136709679821958957453642466963324904017288391894088592265449866796589698861763022762284489730019462134427340569150026772751923805945436165464993884137227287397269855241938558249903590340248380907210082573917592793418726346361045297803403944215102684127727796441297481672388946033732910999119222513961037263541835014986606663313937644673411710012164454453656151349012117880871659163005792723070232797753636483665021072470606006929419017813888948665781443044730217665727000535280460529793519405014348167681322680584567612639130689334828870895908182851244547427145113291920337641978156992475447326668571143854186369118491505525395782481762384445862860976624485032375201580377820262552023548848514739842545895960678622748280876830062703109551938833669827800576534453164913706120648131516303689910543026676387251736054609386134625974401204942635581789254239185607608942890678784417433546908497841898419118740469354581373841993224963284204083239487271343330039004527546945085898623513138243925565693768643672185427432963674513219369162239147139228659020651313236126227773986535383721862004657542372063656680041574984109913404841655481395324081897976783855194520969442155040360940020315085988404706277128601990369590968732372975855649433682260421937557907045346317459362200156092597776142929416123144784258211678394369198500532353736954332516584702614450673058882660838581923990575710635465066853926651572871332228919502202011668994382013689178479815871434367229690405375353066989894810435362551215710039341078087366241122513385281743591482172307928556050245716314088166853494595881416859805130050588066943509026591835908003595782615033578036746762146337482513193114261867664007845443727120780313842152824849160985353492051963965830404376432524375770455795900622894765028005452179350085349363689612485875662526052574832640916876436250397667673653585364752909681487923841441760384659892195722997616557707416184226534020924843404570493619358615889286853074957984287665863734788113571816772476030249669392474760911491484759330378439874066227789128813881364360593119191984581052750015909490323891380585889465501069873968107116908899663675127788582580000178947879366396816503527161623791687654685351709167846888479017654327242031754306005405858445386265242850557074019837875940422928391530017370775675658835579159952554172603639412449536217934645254816511374634002350212135060932251000668250283836882350542294771178610052442505115742412844185400579155312839734599123118511769643426663586689261486278638012240661002579521174566018026668604459197850606285417325305473569881459986424389979592619733720834628416654676344246767207564225495572657121781800114479523892029324616936749039114664515688749171738802583613185339430717959083778508969434562763943211731346862043993763639285470681853975254112129598563649950108858347459261905447650145910926149225278940472196540835006452622229870402636675653177160664248237576890355955026547250317134988943909819219551696550613823428823292221287653754372720020843065290698024618351495224886657784492410881232015783744551272559063276282165508172944784134145185821701215231161283116151069175709239304656048010070036513780976646484612303659109829083698293032301947200280613689472396026845105754504400047580625972039756466011060664732409086752642861851515037711436215247778760861358273990021862478006232049247042568400792112486536013401645551600665118312724612645121577402457158611147021974015781856226789608988596139688473757148062551778079969182935136505338313451168768762550199999852697245061679801416836268641357779370425941379094356533551353159380419651616605567629903872446588580706289942716339674807288255483975768283766350668519281774818509869402222524196592441401456920225043778784224986757908966003317541884641514439105937544516950037071070327470669915547831976081334211946778077936015698525123096555836725327611144100842655827090421143439581487086846434042373567832450287958125635054430238954990982341195288389793947436818392894509506292325552153117277665239745854935098953942619718568317678542579037628308112691172972441973188608917500961224884860393024737656915097498341741374695108606040211440845264531254805501692286974837044107630309978182646429234462652427248577403161900227158174947371370827373838513275073318230447055116669180806508124691645437347919144105803394777279103122090121432199201073138567612530183428106912662383380669214178210317729672037112806249167680619534746209386207940678814880812319062643965711274189375486434972262831911508162348435123245795070851139784301283346987742169345488167447670956273031812235473326662100965507385774709821967986790895171719409570025887293645282823259718466870478204461626818698575373293613183644831444854561562875887188646698477448910695960530580203766776598701788039388150568116750140611679990581404920071913483699811345094213373784598626106162308704942773451883852647484665699090239770243835757853890252768438268644662558361143057076407768371003201766547099102643454113319892847432831003162063809397852341819334214512422624307628410278451085627584187021395737612885945890659243523354480582933173759433710594637157831534155882381385574068056891507515725789630054692763528803138027814659898187768242839687651131499783403482658344180308339660578221271231904389867343050319907450001870713770600744899090863895336592554980418767820049221905260691998100244171434092470208144617650931787272415024558724703800930448084228349016902374806061090508568507220122803635269183280247381211496822546358244367530546947665031122065362905635825310156444893072957811695884874871608130529819498941913152629026218754095481304472692497733120142834361505618175025656166495332751793857716643032342688999099257648170737327530582726169522570954811895436674692313750712225755150094324470978079202389721009564066834194175497953394403763196820036363288071035375044995382945440986414667193510512730255812601517650535261443213206392601014599975143830604826686825895465054107534613270352461175416350184207840696315368260347011330852349079222261475504418475664894880100618674921783790507467622213113641568924936645964118911391584038883770316946297290613555828041001099531184096568759195718672233613764083680904020612281583868125179914065555119758859248968733577482066112154393236695161268641426186155874340904394378089336605562968394317368578588684979988951313972207513993115903496064812446439091583101730373853845982461736764292980573752356032852014286456131094086187730072429864046094356179370076345684860991712000383513239321040965310739382423670805601445141680067316632338606198180873283647657869022652206274508893952338522616106705566485586655493031410535542274201968908174742851449843275668741279495286381790646208623722658772948259559849011031227144390804041115480773172048906776747925474744203435156319350299501258607256258017898034097843316029293625716502263766637109559252537617619508288538199266965929577140504042645063037546135771651185151824755496398843259617578373822687856711836699958171754597596613054613769690946459008002175651961547824350922620925838600447495404708021329399982043347155335894739984642780967652072494340183074812925565683749580976219430720955774264549283600785567548964124249214860050228509919739863893465638063976398690009984375893111183883504901527872046392657189663173508691158312562200612753804593353630880602108633864546429071283788535882503192511484172030112373607736611522366554290517436062017581733165301734365765423770362638899654119161712424856916047541992572013105748965473594188502168427377735890275529467663375683587307615675865016958566849934209142772790761596917655368419289516631082673694598742180733915930445580496696061598141575195878785082155630926015936940507562035286699157268098037331978552324531333074048425663877049964208686206393198080204078777377044124929198113851942712451690291533963332868283824740680628178640352962412535309834584827883334982945437465944061412566142590309204487938565417181964558747136020588689970892422255841207251232393752365929515962340626904505215254990832019813445714363409036634811010815622935801798154281331122418934153748524269842829215459908767035849444396228159109758068337901501484371191293192620425618323809466184111630103449211754704723535771003519360492643142815004208608432241658957884861124397557668415175795561574129667003326530014686944451753387086681281880201740577849224944156914622247443702375774317264932184568377800283884531484939909756100702229163652978031590869600923036689960069780483472299390154801796941624126406073062413584433333868554026731610951799775485242720298940198865996517084972701590999492082531232824191397547977711912324254691166002067461193002487125267098670907293310340166297000964081218698972471960412159899049265248381988867089460480409520921375149037054267444771173541625580476026060848123881381801302751065150961275956066080986498486013195502364197226099417735220349953748316694053666099329213917567325334925377743566665238360438894486583289975272495999849419418765729268513969461457071558583809579932156228926104579017952131681342478427360175572209356460711098607782953928215454390249387636943578508171190734937869786975354770725102153361461685634789423904194682687299189397386555512906647370451864711376438794944670131606835402927452977437268928352801020668228902181721548461262022259211765753362634163205132564609455731368210068097904381323827198618098272797756575603744907231850710599705930427480798077627423395904048679702663628895055250625081667080159871919653544320008321411374916218196939584888048898012740339486212201071023932180237341486228038632438456350463699916778976957394470352902644629619718683737518398634899616730523021683650436071021652778255948787517730098389057481495728769043621935494356185047017755472043767751401905309346347621261916973532776208107538655493908629845303176584137912399928667854451990588681443514472229293004656863996768048639808050835192993982602951072795551631869944042151903696063472237097242874414326068099854034597530956222201463583542112570758020835989255873176175405066230734064981281654494970903392439636274072881466291256356640850733728627252313252787196044673932713815385500244464949520780351884063592799812403553208751427011513798364812477882563784444535799115351574565047008134231311564000900044250115223651689505658580925010677836879244268101980355837988520927378125590513546294215466896045535190476867137255823911464737858734758161853315197546057719394592908027715303021423083443130445370617006417823581762982603863844128357321425679476837907774109949699211801082908785591178464039767270996384665841988989847420064623983790349836468669379757557446550569952787913337166339641938051173226236062482001383299009041154560772271352395881027590408016135191552882151481511993465998506521556165846014372543561341672249471612919142043558207699965129594705178996794129724099118081301941207861978582860918028397862153878053763500596358910301514950049588406567860534474492008452600725990972542862512102287107271306565823486318155626008721696211210912997774735931534884853341280105242196591875302325664030485278835702912384977508350788017241211248589950889798079430383764790410123630601924452404326315107866943715998052960009983660935929023693367106527868182961371158296820089195482891914167060682900016259486644078124448513695941167027285447635396211250040255033458127215668561428102861169452959151918722613255127177077904613729358899006560214057585955778611965907075591317677547907357036973856556036286503731042798494530394275434636150245381599018567218141027301033041987859719662652525916529665660762872503611372318259862328576682109778097701937473684193710923110213647393489730061385946110149984543388715382289064480804105052104233311172905640031319733047131659091405737678988299955128907623271720380233646148789378779723462010404409114745111308823247094540121170749013186228251081821372897144911918749837579471945869464742554356176579988450888895155554705949948690351155689775008076963880428892986572620765163246353185755312536442938284170969320468378058204080703307591675826217404150149272223311132496009961501680645125030337439318524266700230430250954383918726243316427182146466613410530122275368204093263271302632702116591111391503704105198701473878767069915798597315319726984018922595857966668976032533574319065504170027182322926213215409378317380321325419353177197200822674878549298591027481709009547714402823455668929169722446111803720153091312340495146796279016000800583551890663693108981604777070680103776777617374998806999048392620084281344997297230105397516126838327324833754297918747799490149075456803540467708935550243878465406315835298854955031972407588877392651270932475414944785652672253690037036651198571678382479695996133325385913111009007426206722806075592116307283239348995388751903422955208519699608796605883106932399562598097659142288542034684160532481307108020587003896342469971971054925910036140496788265403840066505150441797386523345494789198127841092936831331141056691991039043177092876138012759499907119151338350317600043680879323904564050632363611547259070497235930146440546729536024820177563107007507990355524479796807563516446030002353333595552489242438494150181898996085283587194324894267183400283253110721013007972494319658597384524000074879029574416306256886736277736354063689806774943683264234298045424010076342928738690892444647176905982591005627358719683631157002626305487769274503863383855254035696058419406234091191689972786088758536035420162549273906218282513691973227421408772797081798814041703600742796957687309369312488106998348143193080772599005240873094468865256139698083501929153468922155307986190943100429366434913740612074765035716608987901100722318813162334727753140978450408728368928405653772072698640853856868628968851815520713515877436490151595513609477782709333565114498224275246107585576838517320967352948427214923364765316000359111189834509235080114830362558443595420677029168226578577091906689918652122214477434693712069648290732028624645914004621910933729026804539690633516660261206203712610979440762584584195898043566384386145383471865231606116767289724558658874145639382201248122101046729072344439117500853444732693596027073535811586044787023076979051021033359552084698478397259633990466177057149979075035064275272173967561483400063001370198033917288579406285115409778021294193176712094047965114175085138924686520415231564978725920096625251925252421552636052633370160489074010353903462744953200317119080709023683375430826526839569989045521886105339314558569403606043514265410862833410556567352399509273005493884682600637088904976843871662358527771365501507161769789292602650061189669252525624872108801206492102933795130248687041542549175400034202133008159560098790363960314740185452120437691513693143921735535251752187902554612231834234170197822710159394859674781194495370944195121856018364354944996178675287376316593081370980723777429335333563450079149105497746267524838728557814951181581809642945717196753261708358014530212234708253047660557546158799406023574483593947388776912140925705212199348262800390263299313678715288647722614889751910391223003218197424025651465783886196759545173361248187772494691473588000352852700727615966098311830891191925027644989937574148099279846947378208604365781507593304952671274471302401595603249717021511211187919838293528907221280265500586751971593463414022770466932133729251421883114901236917128965106883434156395567272272019072177521353336087971113026550659684085377100896019935112993203683799476657089984241943598733162214817867731777166846788643815753729269293892398500794758413066123580576288497077971214934025409016859916661712011001545791688901741902430040138078378631173204692772506449740543246188501849898397850344504622949670928598389215930750558243139845179171914716095658584454946830603034220664305959347916744126969778134588648015892461699567420983156885049007708517107717078246527553400000990033292050232725767898655078425865904224322084669942865665503664687975394730696316742037630975891985585246344297731630645137972157949379920871310528683285088184609145170511035180284226566552032623751532086472896133172271036245293433009585576887195662436599126258517875157782678663426457500398333571491327251948338095431656621101122308708600447284228796206969254453676862831082310518064613760381718355207488288720156327615991200682703690063685969245226640570806476904043018204442573733026550134395843710338151803940286586842010628361680466335627083029508128260034282473064983939354797059130421862671280800949012639244454632640686566460457419249208535658102614507561440878029651173216440937364472967041636225793235173515811115886512663767903755744094088831555037556309046868710446485439344722808886032213004937040642821544461449681421695219450090367694240135317420513527867375071645842916115876285965278718123177522383037383917878457388818857352636950710424958703566903602139272644450184361194618551515448260935185993467348485241481320642239485075707970457136588570643164028637078185197567059517320341989331232973049757415694552137680256198233446820583385199544597008495063020907493931069487510416179864200886662343081145014161387921724321799004483399409499321257400382021893915780827630417379207961177865785344885848054370994789371506863699138624174246721315715836101035822642543429703878822107048619707626714331106831404710803224614853128559048392513933255540892886745822465085941017828654148044611329299270681145568110341255826493866522499756221413220327084424360526213132346368552104371437197848794384638346274973975480386635982832394384118151736251529635584441919598423934837785166724969129017437578503560734621020882144955931308204817942156250900363063339455428533712226816385134589812202065640323555101433896250684443464202151529208339297854638179914163509323355199129350693489214703038934314568546322516360928010507810802887422695521613127575184946138343073898988660115308215402355235272760050077321471449792109595632108803873088444262949476052443735049119761590339533070156810609769353175947197221329196799902158547977137733931570192302111615909108463763051548966422618594011625082277598290247634386753393414197086686486235378632344906216256807756794035078276508049128597237413209899924599480468363306512833656709131964289533474549426876752386591802475274205619181369219076759618615064740964346095996575238455178945674129035782864060882710220296108038150258708216878728319157964333581837055365257173143761499832925946906163273427562873246097633747813082101822003476224839176204986425311084866752134450834373128939251150955743831916402728376211662696401260276735370256286628787654712605491086436653650212979287124510328978868987228019911132480214902523708218445644681757417288421737520696859839302848470122014738673896483126907047382083576976283668603380281252095628123689112757702794181760967685136817810183322946923064900981419026990374194546597756476166591241015788524948576082342879461877822876809218798927377222144176257928470076934681638315649047564715895566311209464186377810026322890056564773891338075271983205895992268139511534333278172756177481512439079841873688611194902361474081072270773968315962217248141943954362242270030372173020794554423041659759923091328051997722684206694484487441606481648672329053440420069577691882980409397478138237886814114732396959876761675917780735746278765690175184036964919180370242735704603479244010092115895404565961457475605627773669956847768984827635764200457786483890458878866618067519703332679074684175682484271706918850855653150336145232770922452204814532007085637881509172175189102412274860887961551429475408540120655798900061268598869993397470464760762094665442881514697122484109103498683353760988325567900205963084761465334172519441830984875588243703783983819447133768845032695490159433586678395008831939853914031552304968539690294291853924964966825677079570541928912675485234834387221675178135159187617942901042973366200792722152212262013865288308078869751407681095124229384335784572783959625567425043310454856300660631722363650050187999065741592887540633433201085310952812311368794376129553021946707804293189904076742798246534135983954323091230366627016528171728937071988928405435101435223078928306696739220934856040540543398870627417092497693084399244561296182505551986425350860623780550465706835334524371303041792731882178395087529334132114537778509500025040427145440549625172152064800346683070793074621194488326419945582201513544733992793861100262346519528463160939919280930124195918958948336139659408754920088784795696377542341588697076764978287681107126184073114405510384645967577803698600207749920731481641099239234063933955395180554637021799482517266046777305496382050668040091702129194771483610321325390598387941028376550556402675830312523265944421412891715664422966035306896420465197507893023407557280463922230577477496370371291950806183275511691076363608446426532136678736935911923278427152303391460834171597922421861919687599690129796926941931164594702837808911883472338693313655457361759306457235448696869976265822158902295020877284986539470550108702515538647642577095398367783687800338291506662090661110852333177224679414574449336826638566741515829456615508622675527342141894413718046110076300008660440681369311085600961661110884774305815063343106513275611317082822059533657262659463050459410018137755602299309514967084703622210699408149155576529313037445719416426325934264322825655815268333818578776815931198655378273056654170599684519101412247099151301512066025614977907746726285246149509584817003218499631819643309528762389096461122217723848659827952037167197018097044290889439675704299150791648950937849624952266013287721509333130690389183412425521285594081921397417384214116532835251353462812833394050067531622343927107699878708077790561275670078744258840743838012581619371807788840283658588923518127985653635504248414228998208907387611636150940844013289429608037396607647492342253475491906452400271143442834353804236290482197577197310775532681677175924476883581505837362181069574852322899073541340368814099043528239720658817058907556412527370154824345057018634589074438372634056394383377061027412580341690097405145929234245621895888546151358110994055001712819001926744778093879714649152770287380193978430978535364359123737137327272873479523624697918550046541516365600235998130531102462258443120826711509342084261765494712039193170203248441014817067793784766045412771846790838974437782750529972089030440614356837203826081164329248011811339225919515720993957969067169273971141893715021910784329181212322923139727821197818382079566407756292659916952649658934412484747340000807513708929919182139398489257853924144704283898610973756286574385838314397439031336817573743549888643859757238721437799220053455770250677763319429940875898214263928577795622064840585788437998889808631586546888232714108692758043538684496632398369573955805822646614381316086322829328544460140631339729270760047915293562046528219256508108427991933446854972103832046769358486455217450649818079923951812082194319584306409757849759921999620134473092486441281026908371563744776315117365221411414585270162340998143068879017793322761412255108121438310839448326739177853911253500261249022927221823403363716408209043636356460491459846806860093622511369750131674991479500785316313647554883189102828859631795826330462677111529528266033857774245074268332720975180342881756058118394786825989590699277527542280606842369478742320744544252452635389011873705872676882395980451660418016961472374596670697767083651380384436792856944920615899763513128956843027300170644923076929717747432198530956217551669860313540957224814442029551453541436649692316508335677004601632111429317917118273177796776838755323545066626823360564130677207620799164619999519300099726805975669149274442260265427983149620186699739165378578156008729498560631654209588747335835751514013990875190179225397174599821832527412781029349652624847629031512320442946534799009263995427098407710694820070441283106281766398923913112731390223358221625716206232717368964159955211701009461432299811269814071391722359642234887617353627684697552850690861756102770465849647757932850638972696447045597640812303452862393571581889905751341927192637963795302720294318332405378287383865004598229994651609696441015664295702058101549034780318790142980705992043813756846289522399549540905627328013439122941438036073981229186060379409321353925625108193733355119953197760012577209199383716035152530517553677606571329727612650745866669992211363980288323595916780482606852419280726218313679195644326427252971880292156635496214418804265460805505624088182877642746106408187651144809320784079486025525826575203927818957490561228660210424172601421210240858378499547944986407128845112256551689081547874846072933569940647411388128044643817275113578920427658620323299535445452794402628780992832519535602914628442808929131953074530730411788959945978279773699364957501004351959101291273212807554100152615597804121952710616653136388589137047337013507248428080142271573558314613714372802813708553842772276921410740951042301827168407861531391854464121665061437727646734088738665084662775784848341812381656857092293894731873351123242559874857052623394754456286600900646769010530499616737344723592236792291165009775471984772629785175844324856097122047461630087936604724180257124069040976530671959721628240509771186447567519358093431734795226941915656463161257968227848190469651164571348422259167896711651967332388130651497217109351626099261653225937426635153923253513703796463326376892209355834864199637864151841379972549202873181115749901014412890626833668287783088809828729309694188436211009449706276642562662264373948839146886956887523840503483758423763110820225662426752636034966800145722405311129772518012485975425709065479939117541175664570818495075565343647291163055216762712006509571700726167043862652785177621726793510566646925768017828521152953183996158198568317161245238501385989676102414266985922426232450093791249829442730109301297277492022941521576429298512263069324545786798826370659213108282058887507641276051151744645088881195763761385358436789691464236112621265776004404402519765781216041475826621226384688201892815867899689436516286780195588787692876894268983915760771673277225332650435115428023657709129603585855658625475803944408538681258769101923904324207668352125083721214894671005190323841426085530237698183811691754878872962729790281457191971170259316596202318877145377108607112805029684695312111349626118928318895069709024756541411469921040451697215773660077088373779135173475558922171980503970931528227696719417192211987817591495174147931847079966590183249295883814895871293659334058055286675895909908329400282145369820350162841527085843865431681092216813617421883007660301206393294946024444359501718070628809851308731174901145450271757373362999416989739052793229411251978060422131298819291854044130718198904908307727655438314734968385934369621860099297286292289486686729658658283269916291858215109747882248189428019669006309701583766503467283221410750846992061177567631612069241068267816700783819991748131462289872983266736954403241586140988687940272079768907739133763757887933926511864904376808703915710289475323096072955171452979296690688098577048380974099728264120537926127628080299681671774778406808858438256684722679913263215106112105844050224965325162839907730625963109081147192399655082393202578786099575289936206469125678162905956405111016429073837803208205583270080496758524505741577495095443946677828138741908225898266374004136493191658139268391076357899450403837378814411429699023196158751956478565815560372727556753026442080272504368947930604051484232646403199947829182244100645291725809121350250142094254636012105207817385337928247185993108280219462434246629972212460856908626641512422209986635009378251971309009784760246667928225048743393667154978629415482973700887894512415907290146493939109371267796523076942959990479862380703627567464055546631311812778445118323031320492575316308847543631412947137535288634795758949990559028365272743303939836157754948238622947106874413584937229402215324532822825296701379880592667828152476137341435612635089089040754423248122983245644881722798777174897148852588193008083702309184185154067096142844793603502992960454629993801178186867444133165470404527544363851220916376580822031016890376158358899277558862270914650293047182213623457505196247160439362857606248608096347751966699409396548907719352021590641940424874679132625930434463462530372158513245803799490930448983693711772743296435118632619497393759705825855896191973817418328078422095141001465322450932304081162305768713094357119866949671901986343794421441144722920154605389683609385782052992313883444015846129847298442927555845273598295884540134520025750870275755676713975220222368720628167146991612270962508069616611553422403741544324076999129280189872815283424003081762832216112372860241222972301032069272986708406738805310438048297330651753218612545205586345531633628555070935165638352640179240409153939459993780478606682774514062162704279163580691883973402574794634460238419735544875928666264760195083956115704822693021067856935813531148022359889132438139887069827796570614131033731779324552252954526774395841781915555628077984642220029971808092902139421894495469738651691698107427907462333647504589363267134975341814258468798619698945038776342834266282799708063623984313235494643207059349805355951221795629965935097702997153448591366155767119763451960379002180376706588469110403687937727096724184117542647361528839507001654105825956827688920147941654646164815349010403865715087273924594537563881853980658196966439327014219198646313590229565009861396096853781399858320752323492129767745209814116792710828396387937659392699312053523190446093277772910611540735470298794979029412256232052095927819150118517896878245503344553161799124336903719252416486470247445890136067402715835800155024607748309696212986671503259735892675886935868073040993421220192374099716397642570842875628622522453272340199530972467119559845953666807941368919144977706009211723201031103296212548789158399788526214226376775107138586785285578011902728360385022672694772180764164829938784746713201230998623125896327990401488819984071387317262054685356598828150931357468815981437163263705691132578613393718656332598511428654556318416416181295174467813429309153718925815883523904358077005698310132376742769081277809341744007774300703532162200781751481081845356657328349581577019341290918400187574110345334625087752911245783754376413779793301382821843950829171708495430010462653126436238564414822426413505820644715906627429818818756213599683331610467564248415442335819110979800957730778267236623869877450441786967748366830626907512524913651131322333797748537585358770319229866359908454985944474353569536383653463085603799240514493140463609526961428841699767855913511685536613587653544447856533031161615753382833244469787136610979515748663990036866577057002574678141702968646940697345980521058321401602009503409698816612068850191962460096461603857193517701947360367934351069624937877236664703319690210958015267671434429187069083608716668372672650521714056322877951536251132264044277681659249028727392832853437078213935510211570658963315961902796056700561278511424975049060841410744576827319351038639595324714552810827480412419794223498000439140959594873778939317094429254528018079815180883666004813518941729710358892090336703462050603657974430841669185567764604026105550227453095469808004393366227908969363798812403426533831189092000960463129824130990692423673530323302426071637494964744874571187468097151973536625951412489447152890300025933590121661772086205338390964732858013757631035454720597112243660063409435579969172227174437581530827265837525265132860069262679728222223718748728560315430325870168650851937924112694706457828585620604006541436900733386180574257417832077602575189619838229028228072159597121602856758125317174187887674037966974030566618376730764879717718310517892885789045070020000460321662100426520174924649878155191520246494096628431164696851722677448462720482711821838120051960316134826629823680143805920127553683169762364763451712814015211609586617814522309722012894984255127023952035765535798144981104849011369288730107541516051271058582201650407964044862882014988256443369779794892194094635459127864180403072480577057385674300519212532734336802498779339703603775329657534183821026186635029917436599172189363626566956502731996457107627701575304459312138689250493749294400961591129726965903743358486194142728304775093099156375622508285037151145183097887953404469379795758785219908961142591701085487792327861949160322645789023332981257828878620211212174849110343389758679218102015677704632959592004289060655228167975880437107320825349705954302352844504539211095034895261634118286514610360780234673990864952775003450723963056485143106014979058758948504254987477632391495159226736850079764611530225437414654163160346569669265429052732301570444647879734276527787277942545973201044306522387652731665521834641281321878011896515024896776149141414956880459881419382256350129055623500463303444096427392449047683458917945982615430355417411177800912442342813379468250055655866921126968429767482152996136468929893077385005860355028549089752760052571168548888751775903392963258592373557394683184192630412551186750616272029060209170000237891382583800074886172477643206279623204511839755710856242127040804865031581601178500103551329318750738710842606480382384599110259076084506166666319155641010485045587504053660526373096696321966702500216745616070097904765724627250127423834780559984931665174270126676818585870155865130719573448257639638244934754149052882252889381760817431977569867271225387133551127606480082105806618229156247414956661508489930024928482645476440529439612320835270079692152014884911410956355968069580451681011957477928036027312682545894039046872737726183399024658398179635858147052014212068880296953056139808909330266554628244993796137192077987933113692776388357681770618991320205506903054883170502035334115286216441276547419683885618519723367047279182246746493345686392280658999648006446943382035411776113256255587506891420083703340723407981956229836471285290983185638038587966215954707401173552907471154742756581522525807854580209307518055580993695806085936975996369556045191924535336244121497208573066424654466832984777387314267443821748645000551763945644087807016613770717473654505613045189671964239427436516449164358514335080511654395459112413743915566932118830537835565086334555480838287551978977510834027923377132603762624714935427273448896397700213287860770836381189501232037404438207444678718067474491660584968958666049996989691100102518128610256989822718744242178377270795128453965846392813264713886180030768253107860826891549251004530067171589241069415883161360742968662675610942053048023757039439625816739298782280823635349168341049355377834208136778300486035818545274170554931421728837885723490462336077478615711854030781640317197762079039961448034632801181400506285119385010012413147369908015160269077161496942603948946560376237231780985949026274115374615332456464563066771075384212696140524067392312369061735537632648075388150119813402665220024528899823594834787702234921789534605010557709220471892390308690083180357196986492674980293177616755517622915653971265663801554100111980025237436398223442728838766124892954884197369463348246127521626780018010934222536106582441397835141249785129986561389070220266362230364750538129376096873166239787706614490190906842367310358481730424362982499724109432712740240276216652299479080608807245248193906648865492514021627710412157251857494649291305535495865834325965483039258561837990556975613252814250755845081729787847024878750066825673451625947414487374623422536819410482665503630755250988126087408661522656605276417141143513264172780831553927918458219105980063311038514566618702874187525089140065563604825207237219003705180781341592611122824896170641452872423272479890710700397898401321867312274470843433093361086965693494093850844640920261245757135655237913726951843923893607429590535147924243540248211189167573008642684368173957977250885406730009960281687818617028673640943020103738497735100163839758977794093471065790802577300075903434559598241612703070664135219479458132936923165807418232154444649715736314126229699041738890184765061308599704010352754672651830894845073041262949921336861567745537038297959591441342896081336853831120641441333183046358170021848492928544153917388323324899591386452281359938827696715812745667877192774289138658432227994025513346220721059453528699938857506867758115843159844124684920001912961011468161275561027659726896248949522954428558542148666525632067303363119154560196134360613447079525503018824211414458741044419584199032435865892904737913087790312875810011948234175925894396545084177548641726824580842629090254219429502284858810987518738508289477236555356833298188553959229761881226435159544145135353957821379732134878848638630275690841419353257870261437214659629920123606069871089758911814031951254414445762463302339668624836475033889322929672214859369182296746633987933673601676706060206656437611229639791316789118728863532648887009521873008672229764590747805462379697962635070520006884464465940902060731815736095497176110189822376045037089751875847171402399191886196988841861755315333406865919576179437595250548791815804525233946261081990812628353308730128506336409375946520963187966050601236252201103073043253195652916535187454214466777036151037317066976903550292398909999222610901047692074942484928095970188664120280503222317168252553911558738064429583624707850471833575263845614808402663937259598816810709341415337689735118784713481574106165052474386307368884763027569582277485002197778014008931777035623888155318823384151853367193579348094334836079287515586728740335272122388114851621512079367364184001728224925476720581827064019948491144219709156181975598533152031500366527692754204473694671396197385565738761502221635808110550767322814745982564500669110122860025789014328890630284704370823171981953359068794758201848319846482866231935200920381093820579189471524680422162976002057648356167970396905814678512832666039694211274504750216537482016800556778595552324610928801558330526160561493805397373077971863107372712823470313357545243926110620027891178843809658202563861742208743294348898992905783756083418430362051302527178320253259813183321950455282024727446259530095935219792945741912923886438185842246841528931899953643399054236219688691005356767741021097712524826461282283243179944282895457827169862281696433194676316138000635409590896222163033012647172877754632345483848338631927019376275011498448284388738787857503718966077355496584482426207846259185252198958308596771309799138274954493848990751563657792712923266197675477858006024741685865347928393546060839899379431720126130751594568592494903502372288728517263353585503405648666880864129932251951100241842887983619062003287073639556162692510744656088881081521477776355086578676254525307210551948022588120824849038202576965034213471423169280728432818596702571859850436282254358824152640022502982023968022797125879656573796595282958482604849006121082053749214674297120490019893048338179169965305393326318886431515404132558578215674058828506473276621269088419602323592065092377620189324469769943529762191772545591891695900780317034559024355172450331768117001260779051819004505838603071236034852346342326651514477672401758900478035005965229366237554163568322064410275195262606489751847566037091996381240377094816116286830901356408159555228476798532403794706625765307128589840164322806846074130092045226117953468683331776192223468759951348586148964546374717386948200643494131896487487435320987292316516702400196211057154303583989482812197894812261938038218448033134797937415830360215779768853584120234719848396706167054570089443139206546681709240053994637270418609152788731928094825241809029894612170422703328726505404449258137368276520699106319517715405866198271549655381847622054665819519626559358344407420375858783842473328132150175583240256023247667841230823476272022699472562616316471285444975571425434983774450538326277513011955322454110334659806434226506297180043541640495870021939185436509080139900882886542713915518028509904047706936540861301592808359977976996328004860546817991009397972384544087374700726702291883996449023307626614067368563198835870251787992833940383884831798213071079374542574650116382919241834514669017994963982760767493530924508953556329822022761782590743441796462230577894494897393748394989831717430646202198219414189528077114108258581335438826323157692499902687782418247788362805554470338187045184522522155488293207460419572943481249299234261801257046957174180704870524330160759317973444819015776506829505437912454212241686387081346621633286234218706917317550695947807340580106572822281997949818615810288829892187519972969117575922422871409339818757566076782814277673864921083354757197905304821139156225780723942167579790820955899076194559418797850716830113815758351590050097785920459344010329892560265112769252531836591895336280070435942159343578677319680240605004441695533197144908368277423972500269424877111017234167951467181780509302142944292191455167361745333571918637126661190421054975816307162341941741726045375980559208520679947480678552381276861121246429243099487542952925218496885296386790294267416203588882958038560969100918481946326576790471361328971036438151391941353719652831079978245329436746425713213368086052627621851916241877324208032444184040579132505998446895339671171191236577294264646650988297914168389025140923105273614292769769433394299592139935335873257047533027906611116632015414259038503804444503190671025406984134682833099673166736539776073710249904488425998053934338134519741194422140063125194299000727939890997331358863282250626578069957783730521937443587554460012805378452207324404577687659545005183426775760047447242882387329557162330892465230472825749313806747007656016723200380438384732287826858153313797180222885863779020865448112066478221117665729554127225171036802328545133571590093595507942171721303428838880111691296749992845115240458606679821110058678695996943750459370242650441515605146996896137927274325532395827091031088761930850513652143467235830205711325777142658053705774102772658985384663308727592894554124374368749866992354563129928825882816400670254856285529783416627809805378933450844355900217364123297430448289521393406329656891465824000844417213493821435643422870689579705926328447427563584284054740839999424358057449496673251223577855983137883800892275308813284584104769785337101821348639895087825580336954684728299630745677323837603687849508839503110146655767481481325542440985154208367024934246628789406212084534479826125541791988204645292807528523820242363778011854330488084322745546406064970607848126619404475815091626115811994410530903574425471584206074204566670156435436293853062354007553439555792275314622258706830031979430227924543290416779793048442637679043740121615683211854622059495793215772945220461477340101714269736574142199926484092747442814644247056962876179853537006792618763713437312317994033805712226912680011234666467548719321188752333416688749068174872973633182166732910294851911511718701434930794670606232195837016131157955920355641840352711951476958472506657110921805719933682117804316776085906133088156190389643664912675782522580422909533470278980489401950208388060233391162241614346819070282980134215162089342333615879119252626030569852302533211331690114839919835109890588932219009323696128198115695659304673456794489900162412139696588793757752323815671354566801380166100604098021776413582925684871726524311938566199589181566064991957928742658873299583476996251722749183989092901779475838555197362344334881531769769614899005980398777509517624314816679899063520818919927495454690971096316492295690041750664614900591626250124134127774054568118048020405661273483984590501656447184243097424828334505513005750346348808316151416354584679896887579682637689403563586758303352047138548647832268504128822536486449682983250408924630459128214601923629202797101322252812905131985746608594000973982525609885220097879362235935060629902102619602501718092644440695381343354019667611212391093897703101685561084559800209511515039666107567908244048995478617349358284601386056354920897792169119778356295106075626742700702634706699758084268233706690092901561173874022845462157646460931363973527788104628693363078313347884429900622407612079758881163478445715358798816609070225494332927950860663053793094475963161995639707673287574514327721575080808192604513566141871478784638758248224485062648611670687003861668253419893500451095768090954038155576621592490853651785486043957432783469213041565596959694855227438200234085747048654333799120514178739500314695152396737470953262112566790369696392231939671875612143472520907722727365208471305862162055063305226588409285281878119101744639475618375616270538576585387147744644648373875318510066159853744326504398376330709588575704134016460066459423351065514484077572098025879773153129932918126205471690134179837995156867416228752545617658711470670124601609028076987310116893418575751734992155058108647471723498990578255835723665720549021326291265933917084623869457106369769729805782517600251387066914627421779850843438402897353361564035191796818397882414685028891706538113237204122510547950387335892372166311372729577379073640782755543072946642087621725707252083068650406765275352502487147213435777784243517680977257126371213297305929898044589057776847793337609757198760106240209012749311601143775960221414455598058127271383124630793998253242168417195761019012701645941460826408527897389839586248550123672236674980350333915291778601408658980903976701744737490401785601103736808766101264814897049647825995331720234901847633141253359964592429499711193190483668561039148871892904948658457389669978688199599720158249372840644135687452965858457037527233797721016026056696180927877863663945497501314454656171520923751101486580051485859593162540195588221433589006587918025740734781931021465458976709458607882360386306432182220833259066726726251996755227043043238172444076086684494029652814317627839982542521982359978659095884011730384249183111290201652416086410564513496049517789675424647676913859754614541279328413672541000737688472177838333816667293060875665616370349077193538387470278294920943370202056073698281938660973687849723392700786638604485373635054803284455482777486283350257260452450737113859722505671866827596000078825213686154147579146052113651354877872736702871969339625122759049482174988865482450398826795317712805028620138895377716860182465618491532442704030194007449538259128079779236522189098497116978922140320832368648718195978635225440851751432484564080358080415015949986541117449072341860407708418245740706845675257586423610853775464419339479245759956826355414449998054004060229187423516890456003321653867587158889739699287153575881203994072325660036920829117078416369934915872621809548110765882846008420278694142501952891753162362260961078156966553008357085828252425724316747981614336959988051756566465055153105060864014218407060340566248182438380364303393194892513154650921893988469506350221665050402468582237183170022046573636200508601853157211941445571004980598216180905272512183955916434332605681386797452170386923850139774237322990260581694799113928594973481680668697075824999315439437820452344152736106155199412141653688237123335513451787597937924835476790178667654424413200403839406197491929436463039399927969045701445313839654085871899282639505224812417532629324546974570773804779604551298491571477219947431821023926628552941586328747308022388101881084619362821404020723337175482375121713658097501797367243031948118775054143543126395289956965379149238007776623863149371690727405140936276230643772745286388319540477808192306982574003463684756776857559233295449328837548648176306371973990913353681514846664570229000402608136523231554614714520457165651756118344794945337437660399745090480577426451136782336768172870258139511370753251656516411826295732118869295485531367828586393465703532126253290753338448400028100480549202858490981437507784789868364253677187768394881328471920931142616099906398880184505307703472986751009914202488903961533416784664466189354326752285757353853514795120005904652522967238733113537023872341292129678508444281052713977593199276524347395180322854125308079888531818176031330228234256392220939539242334306040860328206808589492826298291124101175082431688440775560514518981354210218490696365011729498766479659405610052034612429705585243469538815412009252974856268833811255426679595169326610139580976838061395690597136242636023098570738983835594800146462355283463907286317590910049516046928215905834902534874678384373656880336569178774836991419853701651553375020428408799624765295012556685374540519490920958707497760647377534326130433552307113276141486281716072431950180245561393094564085090826006949447630045040139655024942237353222012033586582227472889475468055049301423520368129146841950464609719679915516775900718073835779441335488194446415130347988685846119507807125498934692247054260850720434596858472386084234293656043146665950517493478391552882267235163472293854298820213708011226717629557111716979497404522273932843151829770589847255478394824507298730480629928843078652653042943098384093185409318386087316050593335993298132573847119504790210277369962251693825659196258667793832220963511071801111536969910989405785268076962391113413261506331028833607397012816951017363157580114515829729431795439239987404711283192612232170979411265316107728118932190981114235887388204370517764396280894477675928889234184240788863722106665911093039833889219784954218735871661128435332562503189886622042133040341430687966974522521694814584815042881687185377998533999419780384099434164418339887876338964421364039896944470180264505004316074776067233678118677369959853011725398478876988573466109682344099379563303269574078619290340302870540090817127578120676909774776468976376228262095814708191444177406875528629072817955006398861132347171285553305427965103861731584640691086635462679218599845406586651919009942946652145665532837289684037004938678640212554689339858748764003831806913694121820911828723843778835632667726550375993292950437383018771237177620014089432402749043602309404268760267470081724319908226471803425306305787567732055736307556165847585419937987521375025132100129068632701020529838532468073238856894163316508391839460753701050319814579511523773398484699989795385992778967136409878650074790810266586029448378990939341458890270650559293998463736026631493650861986425810892202592456214947438862365930646008940759170348217211614709464784813220281572341874723556340209707330942870545279840371216088266686467973118474280577418382951404328479275598725416987820047901730662368958408097025119119285753259648024094478394198926865801771018936898817702577730068234118856874662551353341812456537050327558147918928047604870404164768482521901643898573695826886129332493139433285776739945831010119318057027787043707000111504050729209910987863840336449678244552919092640482929984219608334686222755491890168238341129104612833123846349182961801031858182155038987247482688260943652607987446693176027382948437150993499474588311916439940087963545640835097879105740234633382799529511028906574256512015702849708729000296858049012384060133076503243189413484427111158852972238714326913431224644842730027063304075029632127203630521516436122190126503539868857741086647461880649041990356239491663401229338082862955880543965182796542763838912698431412950824560624072014213989888205156413917785675472144594487491240186883220168006090759440330084636340903995563266470627292352190072300582799427039737521625944538982908338599572470956952662273409476385664473780795912824884398103810135651884991540011058708612278110970491905346938865386831980057155129549005344189695980443748993915986739546379129814570622078016960089361631126590120823895745371769290836175545693690499075920451136791991618716450413818459667220849969278164935498513073246271139800965472339322932270108889292668638011655107582595549358908259520567640400264573388451971353353562381870573485551794166464883893288335829814267679999576643934632948816177004201544792752527525585911779433398113300612912767854692610261116555121197082314764850262255991152331879848117739879884437430254738830172623812383420177882229403349477168681538796894901746303553375928326017522921724900016720472237599678067270808923218006976648811789060782331869529632807980802001612527529627630211940191870283087981045911204917272341616495056728575460917466747583289744965529636945385099827655103452384061853543092285496068288410204813650515779391218782170777250995574925611885077393725533540083797675369070370611990037038233915691873210681036383151194932143917204172091452173985137994211320541411923558900333395695120328027619424241065473463631893622949233372188307728909107898997351982277680551195723580215997382782966902159849737458633610233402434437161705359213267064680792850557310231147212768955810572029023714286756896983351008739643967148785397648170540715444953404482513636155821450791523952000211838418093161959045527610852334301256928338870809976042144070985731633781530291313652028736922299634905032562755220045426122349487557646642186205764919508015051877673953428596687722570255874773842736476971328664591647643935379854337479660855831572066913057944437742746998528443835810078512783645238169699946938875525546094989046260389431522232265772241897746423452666532708723461362379516886075023833916118286673145588272728466871092017499818632519713220289537155706609194770195059596320749170495797824538523590332271595699225311096255433049375904176452435410306144880659151034652918948660435983385530835974698788463579825321523585696375130557660892380888341887468293979713718599209678403591462199381087498942908106274097188597742396911274150242267945557553998157603138814716148053004533911988763321795579158963939549042211161302266725757153841763510982374556102694788823765146083011363676564932646621840307301847377847485883367822212766886177402967718066733380855155674725665312248061450327527217335083777424294575511394301747518826461882569742015134179141312413651136413513979666428807601843951631593951908412386025720015924048947039720733872546068752996512525757875810196230884333395811799326461844958002772435867236790852885708743646745464554588109384353346529270507906077803987605548424228417462153246661784269057225904540429252821395398731900516154919977545268474423724693097555554432980666692368141040073855349436865360060389876954522537078564342556178700306082633373858175749034609216502939446319581167921086684858237224468547705682275194760916633482567687008178852518038192407990529837356241112398028207617157831068651986132623924626688340347407882224508642366069995181650799642917492883878433946708767437717338623179914442216012640641801951547752000465486671546445973712608014738829640073363626310110856038414038513834977310716077169745533639209335864907318684350992187150603280926216532658414893925934204051967500013008136258698441873889223515127800380581533936364666789628723479258362001099735222850320846751890844617837181786694850184889772444351538276071215667939230926516984255332187992276238935079826302409266848453182635213597458749270166128756514591850402168672031303264088026765325496576296659950746616669076908809493516413155192937888565419816216660056899455363277394549319739824119672501047689859547515131675154627240564933979619967314199249100558821224559574393919619022472274784809329136363592031275331618759371957382161833411605484872226266394090547506950281755342412715743369506021415956199183592828772222322910529113597789548598346087087129039854101870482198575157553584107913946699752004209215119109076361147005382676364723850267470034700130702687021927402071374765669983999515518894103408352776949312151238525223708657360463907608481480458919742440637074223399508163329115546634774228052617910354662095433061471779890998116953538891856396992348034339432296100170209385958553837071422659799412896855862559414483955723911346881838654133830292822987332700797008804298919861520846055774198097454183863977936947808395695362469606073574778025872123153432508451679802568445002855801283865360937636906222454277433305142391415496431436543369102116609205309750420676083349429139559063054396335189849699134441831527401174065586430547707505557697245939024296976226084316624109929269913789169928785473917436465047224956042539382327612698595530882493119767507731445434507291835545221792194451476075542181381918995988902663457762543301597291708437903222911438757531788415352536532156484426239437551705683623376421400741345963976733202375599736448588381789814570037136950997906067286515520068327164640442397248321607157755383055752879781293964909678791832881983674083399788368383407216072366329414427406068870440924315500103564882558749178477880719188483834883650360985476978060558221780970488620377518481144079791982863370114844010169173831488550619010457336855687095811047942674925199797093117305225517411721819880665182443370668949700689082001918639058522357943257818863243764786710004428872002711865871038355144257481602856774560136422280815816951460861055188202841248252171797044473598730190568517527952589978784882194183208858423247036897497972655698718152895729585191958872883992601063000127734712104402052743582720626335381648734823262177080844143496448034522896496797971106059940793720899230722595700896502076240860329262031747059317100313204699110486282957353311531388515411018498765606950717483130424730634787182240908718278033003018604902913558093215169333009660070934403019981441294702083347919023904051295464197604158746725244359526278152645680120037866105831445771797099946303373282997848905246435055329688250955810874484259093259316983283599845680063946985206700473426015802809110497221215658847400843726796310942927164540931198926274008666367789123821076965912115538668697969420104241979930411140325673907613911917703300953674404748957342721823504968553433081256885446249063905277722968231071686031101050220543953752830696614786282303578717636663456452907227070757277877363908406223112173921432126197256435902804311031141306565568650498874529306539343023274734095068784266818451776400113876167715076608976508460053347829800397425881172445848771149376770621909200213117608516234981500789853243282999704319193510007186953375582539883715384812358782535843310027388426548937780512281957607679131101426674779873667096590883185222743102339099809495749778051920776188937199432492721618441192763574627382485613122683574315200956810310519784956950281035145805954297698607542845400009377379698407362260188292008625728229740523885258744824953093785398814461127454095769461080103272405866230363304876415929139019105817168809380036087344493020940074512075076666192061221309689737399276707265497500501931690828151637235491322472251062355772024386772691358268246771011061298273235081925854567325588559863806345241412458336431721199705025822128606533765692519729725562645847007125919065043354857695942064147886327585940342602986847516050737905774578077431385192818270114617027989175490456071724648150419625442429973141064971735048184597558626888955773107310056538351901587870419053745493206394760255296913208884114132472893897436954206196791562141317985398887630325724333583923228042454865851792690618820225969785591086981789740820166488601030438581704659237285811585859132737953103355645553301351882732243667212392470537800682786395379221669473133948371642180154839718463413434915401408261358888087530141012975741094667188183426893167217452784970131101634825868589797939146559191293428026248983886938501558343442690645474108266429919162160906486848681292892008903045566580734404874764366694101962326517273637252430273414302449535383523483495372651972427975885573240277898708087419959806522979925967301013436624515948907067519550554269629869531586061261038133694308771067317887022731528829183316098121220196560083655718338947499406913481772257352307705361599016452436351974861240696558455585108396077887159939496324916586420654588734940451464879754051877828809738799028474857916928524002947386884713765013110154924404688171446196363534381849814323758269463460331802935777594534784222766751808885417015024804441973361882431604844300757128892943295058853542961700832285509774281398712832658210452256586589660055487888852101621226918450823655494990582825618936691198916390428814618013951746621685323447363228217283765774704711501928810447425860798670870018441388205342180747456862006726446767385521043929489225017349823888079025766077807070708081311892481103536979768190905888396870750405129796585814530592526817034078494047358689244091678249443067860378652129448692398990037874193021393674366879751854026844501216563187805650954748998090863170148966754554819111197225158597645488673235074232098703671084743255505063420929302267531288919628467701446820577707934189284390979780752396274555599964090709012824544624967760194733904035541985246285101973599476226226503366897608692538595751363028213044323814063885374190243129731827388065022342224229953199391226277046240217134194031989621890886916735990683725071718540523584970454203746715115712974129078860516134522176938111314105591471583005706764846207562678121441669227734435451178712897521757492818503544900454747988507960422611893203397677179821602785664979106189460887466977384214616423311524065018285926213143633745581387529109306024643587810567025742760835331671767896983124736563590993879330551877035318943330725965964845063400549166538209312448190306792766122011205556836585421329000562979446189373674895071212803490637783346275454384007913023451353960239370035076191080153129102987968054924731077896805057823694487256613849924267567329130650455232682240806883457900577303590474308731477663613824171740467263897440321387480310539744899809031880338078243292210663847797495550897806496166944324959571655964451731468689638628279347335957107546983559486120396102714988653280930627070069796894065108721329579696279869787940766768469691727579658896136876531841903157776455395751198171978481603594472468615765859776286584193152306564976173797155437037891480800962118043807311936140950502724251652219761073592413177518887117042007571919176544263384249407790128179603550464460119465280126872774641677066276530935623974396430923133282670051387619439935700927772546141813938839009543264607452891752391398945066022237191592191352812272566027511122215939313804568106683396784038413823245051159760086957876957589838888717778679897172890070775679480904500554732557902382057892832978266526671466118539026787288283766326236265300357685631648551771351730614349144016933138884156014504911267062588169565112156810112562026013961795752889602943391877541117874113480795508831193878492366972910235075736705463173077231640625531257237685439703747549565018452255731004456893515369573750157889923448884144980590836717136535457699848393800242956801022849085907116435746456260057237394672208870507046717181283151059870738311701547422232228182292097634303567018310368746556140933957500483186718874987086923907671600647548698825241852876842808189189235783668186829779030333500636315830018807576574709458597099384411437133431359938795786981691061465699661900481308483850083763436013597745511425452834480884104113304304651042152490918977054519033195413149314776345578052031410049481096934798939508513353076758848301567171156502416261139253041395620765584937896408884722681015112232045269497226103852477362297377987078707097061083870474513629179304831954581109212671723619487247282646738942495798056217843999152406929823258471636943483408712792055266746339566639228315488732547333807361227309932415957846826310695206298096650196018219356306952332233006930114292589805290076812385091356953020180911052152889557784907781426372439607924666107509518522630507369301702285139253817203053357053181602416885017606671728915515708257044027858214233114573604795353512062246814055116058255118695317671853559155303417071643179695437872267982288190866062399832686478957992078585537314958374531275460819643959742831361613361878531517873857612851115817944537346380236565896268113321414746768851439115828180036018710269614304556296325545089725999925564477678864483166258867911895197004585872857047944137308414135488720914373650130630270812145748559222476826275676619893525673821389858971078254238708170355739216981280986341641544791640821649786987566498163729712699904012968994689983726065962039478916900878300958818277416557297590728269533117959153064019046113877105993264439499239955034294037297908010947791400299572807879518283336926112413597488095172899090381290119055568434148736170142555310262818830546337068137825168994803689288439692175487552197320961413716448871687212593903162491906546547494580158922797665878453586949400029850534958116608273457760055308167339244105493570733734027580679932568817157843592303564230806651469771015758726906679467292639489481913459734596018689554699520474793735952681497083553357857140341883914594158858056899791111764930306384834724364264049505001424691479561800938703516208217828577427920827441956728420112796410082149307823468326384621279511356761036136384261422031715688476091649344128407665547301001073508376148935385403926188358442698929028458731902235786821404021821785559728761445942732488590141089449985053004186322470752945431424184643201720407943642963541080605264204662735052231998250595424472234577643483308501758059885587296006437264400336780364764073216520572749605894833343259878566092305823961962059927097248982158356868656127282011893264856013732880454179696190303781691641030883425880563096189894803750215960515336628682554358377031441192044476459087423915362810586533128486548893919930249437405953004725110182066484724526306394646297121293069851419289316120007437025936357823341899891990639188004150945552218694217617845219956470528453719361916269684951910219204395721741341137784836871249421488750259680363344921068956541289814960101192119274736588699862109858570423546999569430574561337921581129547530397347409053923765984169100729786737727843508250294573022898752946779444773776457699566644185860622983053695014208265785500430734296435329887273998501236844294206429132412017977592875294530566158478485318445446275676303112793356966082767735343418584446291864277716859408723660003781139792694069773826683907410088981943947810073000702723666761285779922059322078372267944826558434453261844927931521152502279416695011564671921058368003879511291505827102537361522935904777652819467573325911832677851475235117441032195772088524238223601329696538027157779402326354281404258716317953095838325934961554355587661462396582316756501673722635465938323746988319043254995872616482765697848709838246870258067149982311972919192763869982266787613530368055913786100904391818276015639185144624013174158503953649042119520693473987513049694170848613837171201176591198017749370920241302608053401041439865270868859145248888287225563494910311984765251285158858512378094654609390871872106810999074102813415558329067505050228071076971945952156008421119629944270257785427652315491700179741968378824447833023607338797711007073615427659243626807454215363855710665362559899568308615852956647629886207071864530077307442367747642621859677276503480944565574429758928349056379585306849896091498482456642229470740417885803288998605824850112348011443801797010038344057465032364118102189926679900466278769146178208487875398459183750827995630201809398709481632436904211347950104074035295725182611820124779811863809241474745330805398875288121410387162335282824782981223800530293678899535974117047660385349676672197498021177986897498374530337006703481400470623871222288822004973960677685380317561207952415351182476281111384942735163626960625092716410109420720007881790985539370772400332036993168676625436494116144808990534024790047508121746769217619877237520257358803721743641080612995580746915873835123615143968929385878325864041612200374451301078987482168247681890263890775847526121791591232239092644782489629092055934110595939685198599346530502303288368051494099871486178605273613559655222545478448614727122523069733573940381011754114467520354511944912420338732386284824026423656029621258549318923271223635926857161547815673834479465599421438516358715529090834421190546499088298733107042048304762286437125799189443350366292334135554037605088544445313315262655607391672107581215517709742742191972465366102478944416321709411380824111765057723227282821103314501361527198560801323304245149780589106815191482417759770848208517192128057139823472950282933173228299234642709998219441451308862884249276291713146552562708135219098923987188183098780421464435914444067984369850141253679410618235169679575588898719940994791189764443985811260543059927411479486996141921198058991288464363658739983679829572711908675557472714235399567432387732536251908972444007646470246198878655765637970768881699473518113429012673566304707770486785839026399805563861975592795014357592992908027521094169310646976711502477077884637617675488561681670020128975029415165278612308962389380362669263322608924075674950348418333824119373928597726255786872679099575749392514835648778122848982888647798489483810317319831949136679906384927651814724951126423787517919964224336932638308298425955074053449897270775727870392244364702754192663351109570466115164681944477541099008366608200898319598848258075233627416539340487700019968951098597385998585851189930817599173501379126060285250249090648456491663964835708470506946070183332707491498924626894596453735231995242522337364137692908878707444948390997845594695642271389450703913769270214522714935694358670910034365769430836837344670560667889556145172158756264386703312503274467002342828234973060553647689990819199759427284457316194090698766544279785090705029172249460270217639736329236088275690824211836485062372779750672792835301166482809687046341295028608435585659565035971063521278388044809180693821781889975239802683069938008427287348503840579103525177659581102522933876317934984521939352296209167282967460822724526931968944956182074912339650176620624810853427804229508184440944775040098653879292891745948811329582260986226165314092345933954029832606304074278975276797505819022686035189094911739819471123969625279103169062351947895633069315178735148788895876578441225793258750092688763025646782493749754657998060284580301976556297817809673841525041295966117783764221548535289897384301982072813680405925540499842379552122505237818699459684346094641588982234539156491237753165332700376084010847156366004075502440990982193432974413651621830406586008928658262616628227955384724134535451099152706480652257684701698384238547177071573134485460307898450490030978958568447150851898741677688701849926388308156141000106941030987945948157747728328754253753428306905901001013514356122035545890124591377252979511483536539706262928763254498070999608355017726958176211387808292791217311889055084042432620249644528883820942493172057237658670197282954364342178359022404397079483419017839797838559220083150743056171654657944062785411094184828276837714351753100270648667566258042414360797753814130993459178012036947621149684881360927210081232535039756809738730592686583283053646027201899813665813570656856863654782770541249647443071844237536054623200503975156555212241632574761519673325104114863716390322397476327874587024116971797659041681240987645430805463926189254439817143676992465997365687485445171930740207620983561029714111835701942264562732365278574659415651237872249016588390127609275263256639740037694831435001562402611790930707134777033344770096803132919754062415024623884657108453885128989980288566075299478211216950110917717631939552334452342816187250639320073630406641201735565336164959065125454542715849272316573544152361516412302491944131751534116333692803558251298235664306634257922040656747432491684207775052458096042171162371644038055566901890893112898741519993428040599940437552236106854811991145333261201667080226713897593253450030829006925157676633202252114443700716774184773167393106309198410731742792864358302477585071879767891128724682538625618661281350611188870980815576402665081899804567446124091943760863727877570618147096286531816844692406845484392938412835081885723104056529981619044205312386032595577726389551142987339289202752239432791936184905499190527679931093271657393363741338529049929428234594001516051698493239775212496558554053223485215982107809055177990139250173119294503506784565367441968633175950151523129272204795389801428903512451647922125321767487360756004009755909039173719125770441418671540010917710445598015219499523807736760962001539304826685049622453456114961856011544976131508999942911332046037514613767016420253126293438779980291322740732649853140432215287281708049146332644636455685051666230076656115322852370913314737632762465458694449702788310443572552798234995131211238537466385163876941522117627705876979022810861381261976038963791946669786668873895706681073509641227422173028025540676987271741930888833828297033647664400374527177803390394792080508264990220202398758016447320965827879619893164349382655293305295313416058102006690712639278463296444020028525538047800967900877658130823714780537785630238386595764114316016623949923102402861667094069394991746339595859351645875537088959250877337550683059716313803757856095124992685285376081003831270190162301764307463477426898792803488761793009162873722585818978321340491746941242127656846776115436951018395611050796270374674186571533728132568787587354216149504375487364063336726128143592591485685412981761280110874139597326318646843539279643633358387593626556003233816957817596660371125179039254597922774979492749279820182759639511490976481049600851874326983896761224950282201135883782093075831396867924081482757734274553992739210371179842075220011654744900984856834665920324365823124253166897614635227633238849183079077373865858677597756140167302458049474356083928800296145070360158196266275419007259162250629748894129543783015681182147406291877057871328514683057820775567722469086800718904763350373984692521158526184095847790037708528211248878788083893713346661152065072336618770422106069993319746089888437226549013681684717148412823082075264950004444564602857460112637415002020708794410189332897856129555538177784023051533725923930238714668837525107248568781436914670257348324961925103323301492966506632913735163480652510571681102321075617689034557100986040634255831386362725696028229425430945419716758606037549246140362349560605922874827770880812676462588732393855604047508710315823218650482581286995316661421061880450430064060945954196719034285566563128987755305513880193700613154437164322029833665359655135539779733648007516157687931568826021767367583718663324468120035754037180752322265428692760210730563252245986142538281888427854265419323054893087673727459941694480246037188242455147636833799043700042475164473449544887707478144859837340113663536670399351573214497158449957604130991652816076875174750020074749370565916439761221873930547887050839703905266806774633144244465401319556731661479260069960797964101494859822152653845712448810403544945372867636352538423770283996024742503042636273499363134336971444453058796242928886923081621622319184354493681922968144480574485308951091037441342653179548242171461608053640545812248202875413044999118396571643220353038946276606287408062328471175929220952374046884939019152030921771763942709437407638270143064584508076399447909490165975096368578794096264029335798942230803670605713587360723997682301453946298182811539490791970424633523972458671398157056184217127510488199303437814438800500787520247054948126014682531206956273884391505803145398105383839093187797830834857316586163567294159148537183035081269935511310988673029051621953423547419751005243025715503229170657425406260935970639064692476470092009045189336712010606560855056093076275365055338506010703520959623286650922895331984193914064552942661091207790542791034484192426963847783596202469600485347695644725549195090125501489269188699527428755158779645421714925012708800272426905988686729616189847570678395683873028600013889719546337213874198926206047662139758540983126213534136390719943578727097752890556307081177730751577398606699239621404519361399862755418181655779258039696263994162861516792988335109936143998075084919270728871973643976912337473588708851154881953375236380672718419872888092562249693490597051892056918526110070784182852991716009991859878586449636929574937470234521312021634583889599193531124491574239095564438136609309910131567717226411013664484454100564605855429192445779278151345371220958159486804320347385715451754375777253993212753461597898566733093899716491920084955021750246632368523877204044151126034075183376151085400487997630251848963036527256051530815089732230483235630158273457374699361247770161602374367175969566763320915685128363219142300457425266525362388379764511251069396521506246942419142976774275843454152752516820579645149839783653291067371016615062724409525117827922046148369172877274070036530199800631246388543330940044737062896245703183477027441651579757739740178303548989236853300075200721831819051975263638178471303695259552550645660091881518374877361609287176211126302576280009425428427362141114434734334499286794491700408223215984250868756311572996781457252038126276604303353436578221452757840602630284690119673111709626935622566658114698813936926344484077162860786687199421298359973683709702562199223739146699890759939258128386708626207902136338526699166423489860774623803054569424554956547238642618233740062621704407824004446366730430840642138774360817772771051720383616939125584261181352702797429210123637167659789367439281048450784322178627411587414482901177874744122840830817315858957227220391570581217149409764304086062040623332087966759106661863647438917627058238657757760877870851632356617918487296221297440466965938404223417405502262594419964194910949589415819776369053317668506601609372786774260737050867410582899329179021391229336039155230670848669180432296538495609720284126250128233069876279264979265549538599153265195925414267348453468904176889313067587987272920922336099315593706672747868272018355895361533587410024864323199575945119972901160963910132015095099978970420004150356980644442823915425555969176928431040324247375963040000712545233360555247883082842011046861436255303134480011405181758705382359162667882001124666989264890966477207642404117224073395016241528644354460794493013835705084988543080857439327866034454299806109068480351987746229283319549278480418743273471365051797387530108375301868893231096610887305428840109031244461913117001879536504287212995361509849186550358585263080253038592076893794383081251674278962352348417246435268623991445126430672828502218688029451401916246222165485490863088176021110283272128533748530664410294105821881930410924479488892877054779230321538564886034529990448533881782504028048407647673932493659238841123332622252598666047264939450875451847558752986492067258759325407054098445607948222710447538651602487270985463238828569395180283655352461335064059393469098307327036654251931412920666727250632063080351978747494177172172515090455991885088827520894834169344196483725438856694599230913022132626085551606165273590218747251797551154987453516443380163094111480688731937503449090226958310192644362471260479967833231117033501976352750120530393145577885464818658622446150721660500194406770682713821221321510124741033169943339119019212168626373704769045482631838492603034273430123734508750950000898731929237119901701007384889729307140371237748731591135896055475142366821917748941299785243181582541910983745280239927425542036024424902792919496390483836857103371803265918374483764918573323563934091692427657468108716185644792912246293066463642322979214960073418902497641301490243427832076736251433043819542516758333832595434566287890332962486760196305561805411144430372773914852208202879624288760531836203975006594157655327451221067797365131300760783418703911634352590617805229370906321153589845415255379229057523229709533863602800523539856308421246503587849524806994782098162508736368650340587888306261570530351456020906966399594108929331284898492775084475458138941437319188554224226570563308717404813150266001325062671064081424407269699134953860419788714211763283105641951538582542095180224261974628051896343653272477682291180953792459462723300599660226329904750441666199191956760665689604206168871532145275255228340963352822060841647431369654556786376733675565774536961922837956027296412851699159245984279324294557595059528519796945627563826447579103951793950535791045238709650634095174241500113567627758753607785098796584151720134788636419001052447069723287353363087014164450800603932658608175454596034329566570100773778117278563134643842482719287939187362767673922706673125197708712434303746496604173235393238373620880294124965221078863095064035343148566376089029679056226566861193163607210375658867069427527824758439532075048321338417998047433330926506933829852432363570982175238397820081743021803483356446841769304298616987669777142091813124695958916041120737546416849771841423432473218137332660741534650574497852071943660714934647779846095431755818149872484807267883015070079815317386421461137226480457173335295874451440442388286682306822261330697426671972371550615325760197455866814457896519449599548592742643282448663557565297990999044019709541739473350667921952820381518394695543634502898457575293402977036462658894807246988972930605763441928692484635342131014451707383770812395227867007766973274615960781674356095871084755558231004707313742411137541768957713336457591932746195210576108514822829507020966863463686352929509345056139695159454782798509834702841478874194365388678961343713833523251809768280525039018785268879187382650336805416801128282218912052797211931930249976556886311541197554832466882889715220541454828596907814721580215228465835802149010761222502632194445016535088120894885099968885565152883409298498774581426899434008317500038796021638988413140979270793654306091300689705214686996788992780005351065543888231448777244407183886605514267218262313398270295662029611990809176125760422671833512077101643226081867366945527457654909288974260534534908935192721425819629236433503711692159078134576647764580096496510840219419120467959711330469854184218652823039499870886609685488381372863816274956881016052834112858502840481602443045820283265555641215338294974851549225767155610536703160038364629034262102724752381514720041462630472865754602507344515646929348199456805629288610198813122862452380485919695108211228318338295398858394591157758771531370588922389905212050955843090839061499102431461139221851947192563372541654284434448560948060458900769036944652893607176600747655920437701987329110113753024518687323655815597533521776445006285256106728236748593267888481941447835711365863676150273700641027707836173768480855195700534961123308747317085970376954615510256926054733516769052943005224800124912184316440415129529862603626785160013060946475731656469944144765555688988091810083902062213245091228573969255483013232333457834408642414150446943095240859469583697678844261065273218894072615329023891963505872207071456028172941658990905159050061834522128808869536670536923828735900988619213862972553821455104252460622394186795453593738671377314050822862899173942658645741050708800924492946100580232137952501483646040183646328195654631639607520570525408540999684324435707689757585874070020986710030890427712443154949113507527745721119986700086130420519923916934404866568318931408532653210048398009325160618543495278586375594488538157925625888732235337798440780980781476389699564933796874772415500552244310529741207530877064099757955286275703551195354462763057499283299695808255873634132229847459418590808374271663518233225803426483093249671434377001756032596231309014217426844207341852555356377748351330396988228654411770955495879930769202563712852934875662527342688321136594378017502168239545815024663188705270528455709522721106814988168434992996048061819350517818970947368902052709335581504477325170370246147212716786632103792141944642205912108005323531457682609300930856632996737479633911692569232996207967421193882911165399650977644939712886650014115968543983181491851349549641216437964916766419486604151546969369098988428494478947186233050531731445034627946164937804038618179202071775258770817065074331400900891121166261364813648075334450735518845532644170986567768503817142101354536330412029594419101525989812417947451630554163974440394042308268643263891639124389303666208379651762008614283396889589762688231789912299395522209891357441242330525612195730606710207238865900031218229956427700196356223025709704391971215786176946554532189888653570699070353697766391659228921411763070045501951095712858700513011011480436850973522088616292237013891859512223915977011173363728605032796871898269513068275282917162341793875427955672108526964889811321118059061764287274076327591154882900689514487526843227701489653078891822584091941522553770611281881681886461414453570655995606625944995473628367057427324626029487641201604648752116855757600497512910711009869989422012142348583859985803117960483255396021045064368021997612088645348120766053147814075854911168322027572760832357781363575510387823307405937164675387207675310985614456343758828055077341703451184091566233122264603624275453127300858624621384156518625028494815196204699171056053904766486269805460112833165296702171561742313096128205642461015181510848873548625510947719639246592722562351168798395962883938823778377499604836576570431685334149689321388225130531880534965875593359741151796190618129057269228708655039217483449637308148992514725900288067008329627291879493957810699065456377021504342023027578180820644310992885332073609567355577723461289034424100581798404528612248251662126053272037670203040877907436949455714629968448640403370290596309420439326661593627640450439829802430560622598892424280596036890420945560587905977150639894928688329147258233499408412588783495383523318240662452938040560933182438394374720606781668078599512605682279675497244513869290529676529560306038020537159342460045559942680613582657228578666808685185172371775865748573051255077007109323767486095025683363018926291133688036867529240040113129146583877770899674728036209630151105349385455381311037808413418579049125887910078843689046240548366580650444652897851940558901940259803924867876908556873957212959041656681400609841325855053353200965039809189672217245434504179063811400394394133221130669644318777329106813878690757541158135176539585948520152619801560641624332042923121226306839979629972569083211207234289707785606840459424355116630843330746966395710449820481986911570165388135790275200079385843183407409481428719543160780365414354653627343151640912037849005059858176430621475429084034390086937057648359895108792772426321789785247655334424988298261861883453956667368735225175960695893091835351847657854351131540417698678209809588426512838704746265453995126844510496314844247042575805668872954323145747697655628155174072501806100032113190604775274099684661124367348595612702103758270049072478552751050057036629469631832296074684358411932825842133762454337952726262498666472239476880593119338245818609506320865069378760875353497814744362678485493294568360753642865409684653965663351522083986640198607818665175731767583203203874560782814688116066479906304368116112367295633314654625337191660694012465232811633312708041367434334438344999132859454519271608019078293043862224614017716712901517250733614799133953847629155675672798669760725810923314044699134435379787586611364226945669277668395006482275151471634210739288070591173721363618858602066600225587780210277524824578369601619411517080831624916021946756004447733952299962175683920457689161613937946503322171674191687318820612654984110369132784261122200947855986615525074812521462115431190274277572523989863457932859932174343446958847133183142609401833558100917983198205254403648630817260512064904028918147283013099581840447587438189325578079742976053494505166541715536147099140832263020881568924849422774168523565475668731999124768455603297837806925994731803243215229693143515836592773373682351377376506243508053472304200417556410287621364126599082052582684636378977182023708689563353661731101455769819350757594016340424963938496038808560177091863078243858634896987731248321738358773035606901420977947213755074738949296804809040854076717002143250653121409363998640301455275406850121437396284371254804621097075590137174895519484302317546700071161019751860711061598654604716096533545441464384609989725080503040501193776681294504409871691286352464536148105436391413056026121917105519084922829513985017670458211306632196158237311035419853914907917130329295275753423735973403382201964610173540824053394691675300583886832805700128493922944825698040420360286676269104045952605959638356172563716761935428145310647602828892275113068995921174695196303058495058118143453169553602989904954475343175243933512624427778400692042156651892777094385004914943501929009241746555052795036348663014421016582719553343635264896823764256813092273789713374603696742617641952176014982309060778340797463822676049797878906088118843661999626224956072918729534337533731689547450889040814688238495022181472920535321941496352193547319176747206409555903197727196368829558768539024003192025971116908005727140073252860740609151710240493149566374451073848445813149791561378204023943965518972066034477194027332750923627781858911498170453266272022229782119429323960534087053742697861341376078111249058595258348815666706244212939416037300757123425808701642306483365162251789253506568828559167316987169094864175545395602678152140270495336303318488160181553531069869632346045332809143929334423549090546232002279980203348308372818950009470026905420610606953661993156825448825049055463929885234888018358980744349375273153955891568348794694289545243241608066665170009240577313126570985417440273418423681511120528285694851881699189021154143103057987872868006198496230140244779032886748470891159838625982810951607222279395758519278666684209159258377856331318954540479344669148909996647290823118863527642409378008625004474898414997563386582321325843199928105088604987964796024325651405537848118425985068627000098446442213240871053980440481145976090368921728273734912367285092940218319456160795034671793813578617155118266235441975243641628095895677162558641626313472334705342512746407659077203859156455477302362800265831275458235518958870394406209185187432712160394349779333041987330362631708930784018475399377466181911267401421295327482656309699329475395806011179228581811373522448998055821950825154471997725610440590920769944382180250356405544935042128324058176361245786519175111819471889892978431394936415257377081167740978256949224908576716934877029455557890716368377321845966620819233235551607325408460297589455175646419785749802587292539468773993965826655212433774482726813072065566124625655566280872001896751207509022211186399248055651943655239936903036233620881225671516056562278350353023169496537021085900850418617133560044962182925187779027548143643503376777481921910443963632913987826871226712069281208657059222263370315770207108201934061327480700546939928324142345964023228550135922952697804666174039057313896538895751636793055223784941900602432288163568810353547701653922972283287120439023432463600163657933571240335147660239880718906925996254060617398464264111329017527690167943859394408956537303305756359901512137492306091536788615624273699932568308432688988728156429257249495339338235088147876249864775200063307196480004011209384538850455868128993962335018171208149495016392130760319942668987312847176828898677895567070153766680206271969117616166905701007730754729975018447672381513945897958871160409672806317352283989664299861827082526243322440067169874498087546493296096464954899951676062042766637065143151702879157729897144188165172484610151032814694295968578586027587666613096675414203047930126187861986533567423487876744407050375073943983598477303857082116368171195887044207888317596704454968732568784213248561654908756098409821936293279612075868305279777350596484341843250165943996143141136667591388970431335735360860526495527966901880356650165497499384956891243113172298607100909273426435613597212008846543147143148903868837616417735176146598688350937054173387630049532332597071089280470663369432456988326137299729954419117524641220583622286118867084009034251626687631451488455402414240935682451670874073938659717154721751154028034299649907391713589951398881137528807239206402090709502055849367378306106371598673414265967056672242856265918966216881071879177875552714400890256043461987370338569249477934920634249398846129832686601910025149966598801587290560035044735757643859623583132683799119206434357562360169621242069351708197435688848814503554501435516379144789887786482334298591927845846206755746104305889316079714413535013055723146986095751812427430963589187063254667437465597493611994350111833355595401168880927267723162382276810045708752972392823835467701681920211634634951382271651569873153249595997704490364715011692543346304981934806484301923109450242396940360629955442964481125984117705090240497383735412276605003062702995985172312379853229290856855305158962018121464188345637931899142948503733323394338050748350260214224584385404304345257385906341423608292398115995484231157015358874897285087350620469552938789093041544219042245664910711171448526400772053064121051809651475721244065902110230613115310619343611260357234001678802891393228941577209446795978202478022116619526048535317499717259634147348497138778906623449705394934512097578056898821208577130457353287589077392411670231667932601140441692539678961946262736416860390750932561234458227218320737522194759613092530485865683153054767064216843428221792767480581987959039789654043879129083596090060922273898145378451837426206202671777529163788053660799522716074740906873217476251976426228253229421816814281708676609387382370274356105464555030222434785961669981721646725616884309382677553260234478817020565713091551932438537790366996801624307447550764548284641570230581004943538708433051732362792172277851853873851654524082155994279691518216705240538357695361518385366060326025910475816369036592479100918367717363740934978794431752335789965980936926493443892079015333292789256546044312531424721726888927152488914347697463321263783968241705066019772075201439903801420431660935655333385925048197884979777890495049487811619762833657579991654324831188136543076188358802276486800947278224379480536132179857839444041519704384693097182777249429062975257946958130131793319042160218573381560909045344980284565672149303823800754083105064217529239256051217604704818222111596881537472142251741216963454850809747831420665328970231798738538234674508307580473873303581252342278202494941039073717538878979026011431032525168387929895879487397038604537972831063710233866769171837453421454036565984842196896241752777508895114853076214476914094766768324346082139422451952371231643884834226064927421608483565936092233592539138472700438662936714849231433877665126793291601106792061759857375028966452111289468075850443629299380685232180807737376930685651115741381522359535397671426185265575030139843367981538376353494832509972001113059686410343104797540187133111600284050233525438060889609719389035447667010150759837691067550015877710919835602913374890896017761604530643959802285302593626005568856545969739309439195493328107600434623808165546382754230674872562078998773236948878410935075427646249925677041572124296442777735044633291091698964404984180341104411900764929362061746805497803035016031832362027782658961532307215509642273287483800595071163576271945630913522490442772964193306493071913957296356294287646663190337963591801380005248554548626219076002350504616751491893784554945282794612292079066224913379477848523509093446393795900022971507080622743643692916317733550819756201858637721244515137134717709366569654609676264005457167494722864732984650869551567221440225690704425437999927976058979656959155675090905196086746069616280313406274074200637638866040915472184413312046189212568091552850646588421064649855655768472104110647781190019430221872967797156435934640796409231848994208423973824347619342265313035857078306622718216010606945935493723768926704250540813966162298681964375152546991684856832214906496678461873854903020135697072976816726180567173911696445859957257733791347992799083471943477811654094450902758431298367234100965715837361800670396456661834256803681546504850203507424112817463473119990293476163556292612483177176119499432801279102488583796701859670191323606636377333680026706476745227491966706643017457455254421523270305965763786329230570376982645537885715541361994929226609491665035524658025129180441285006735078282896235500118286162257352025913666154766368364399859689314310029229787943097164904317614949595066639151430659595848740765739298710480286433252337802901691153618162633197777726117817874706442983064620669480948460426191764608667012176374074924919579643318556777254538564585395630924493543428703210257532996898378914572331912326788249783442297354303838448691528622723108061594724728876815322733081203061696935036330075190019489480219785547708427711963222102146938531566568469223682587760383637464367146224712433863668391514135151900966726179424969418842750477323967994693649116046674015239817277555856722693474142740987632611487525134070009576484249604249307106528257172480130805867929875631201209201823996944761092773797871953331939524731763579615512784699211795569787872449655835719439172541792070539633898381165573326780160607822996283688317693948348580551058906709833161057495108804441422618989854797708616535143734102414501112456648607414796086692105676511709936291393913788991638956266791032182759626524701028261821108767119881681862256735142236321032264611637210858191599234738400470027466453580799650630926620114555445871319521106265847203018429668416746829882718546066700256898728275084095845302765506150474736378625095872806738446257966737293193037495936630319986332132139625056255822895741539486272756494554110077287961825740077630965001156325086518363810205634066005765336131002938052277046785662903244646663628956648533289854885498162715668613345786476283430740069868872133135246732704336626362035074817055468334293614184159789266518664389521697217139461596733106656962030410494840587962884805665429092545571227746193951858644802990889502915801928910804286814176613810391319946983763160299913513669524668467612587601693783073796527637177053179692544896507162263498383342180671324194434286763052566197005583251078554447942088249833234252659642471236342462725241429727560425322172607969039513611225040770973940722688832414669269156845324855005750862888992542296306127047126514709171072966374627157591982748600042576386767164539667738852423054474598858935894881643738879036328247112753346760274210350419646799161031278951148072510583243370061331964281375977601273098365838475996993386598745694813861800037006358906765871605983004504315074336197739301331586886618627357010181051473031659710124848498486057503006274598213757085595489961187620908072465294809027984000577398365371902244200487358095692839746342850471408691116362015207652798406093374621114776653430711435355332166043123078350350534825272715953265733346208934337454090250464842309637228450455024240029395709943823803832510412273549893966077931816648123767150922883035299192849140912425678536790090522365185923134218581987526518036416847090994140764965142734637892103288192832837876117674368493886274865283161486137497031751714187671378646447364964473771372301010404095798485109030002656996039684576651048903059000672080352663691719768425957947944571055552224764019607122192492066757709258301420234847257071868239382912167638785796240717905627680675517817936573546008782067798352302158284575092716583988912987823662723353219263599102412462692955282007274804905408290186494682004502862971643193336080446121457040576229480812440812556066594180442393502700077268138047184547543442923712197260035715271433468913816846254460878824116475872961434946835465414771338057548343220016791645216806689825600684562948098121238899450520985292823675001826116196957974702359157389062988183158544972947096145903532916944242344794513988526492142316535156258577740676408894023178991492272607234768241842920402815219356120636191688136844448964464298931910324450108290729843229555789238720968499422969306786762271312804024749919021701359257086652416471410725687195762441583213818918963980575247130084611477390792024543406965039304265301013896948590895433016229372957967940570249325484475360347324227995124440988133564374792520372697096829827307814215884937265087808362243600934128394227368968571265220949844696066559955775268944162671372218313209803282906760833502290601720996922899229694670019656598146089620079750800267625445624001834343356081344992491981443615359938816910463968077998869388166915151025574733152218950718755342473104981215799568776028373598400141883673508058139477170641315207736543235554365169767353917382727688145579167673180489056586743825288615289737132740052894357810365305348421768536261630777983310823041766344046343278731559582602748056705252882682938499852287380204989392313407671074458024756191517004241692371223765752937834396985519461127554682554372593795466786666146307207907412028985663923637274096568850875180255722754362833849231712996834638943802870272054431452146628910658677644759705765004852885786009259976384690090168326784491543982840614614638357361752684896772803518962685852079021813602560415663752505385040551554686102957369783830795225841880682961944383481714934813257355726933693514302187504088448903107603363476270823629135732393321389187575028515447886711522416498239111430720714059385643693341503007398830131166358803565410438124174882526826480268464103313455537274925750433113052623385242494223903419772394524509275957300152735242228329333438157929437096752781990106347191839310416260256572978756654282988548957484002670162969885986043359283264236054682196086368855978278751280726806649702567213667874839191267376500672192259329636012065502728945253717487169388069779181849787632553539230629080785177589456920516985056743080024378944762163982607896094802811233383492884252052522732345575909715041954227580333349178783691193269538486873498756777314755487483597235886515240481805001080117933223174153684690683302490032995687268907680081900941058354112483768363868516369388773104257702456187757996846908739708438052059902001342961375315673238044116350856211816056541866961755822785486610705121081154575208446996989156290906253746753058652551744384459870392541922630499050051970482642613848690829050219940221684274925781208633527050964929129809311457545241625064198386811039041304099293761735322984036758914908619581301646289557819431999083529184592320946081553262281277961423009435662333866372276102067673335411872861838089536588572996632674107357926048151262997278864790965794955710031793921904373590511941730655957741785511182164569360773466069483571177665740268789462837682788942898524339610622096955278146789124835284190038233527036908390424535722417974956615194605621379721513095780066413007869626640644777517690006197236950805177226435322947617027946282383677371231774312952347534586921489121880635518842875112616856570385084060970460047664043098093518084243594659959950688077408571339673069891528276534986125892096404776628112783091254110438796304772955555412854046280102116721361112844416167074735332797291966109950938785593249288653930180005432182880906124487835547647329358876491730836014973957234708985800884172232711142937460514533338591303937364284171891508465681556417274499168013083846028817250057595752563300789282268633301878376672481290444147328034295371686913261508135273736680596647289362404495535244175673140855948210773554472673844863076931552930668896428802923997009823171756634748364732852974832870801803980424958318566551066852820407424950595072773580075283353497571024244817196422646850005103158132769081248588330398665070687195174142496783689937994129707961935637715225159384554600724211365565024736810767285060310707624846048602946940918318336154728742002061547897092646173027049683479210685902208185480066426886433556244533603117360278923629547543464251149945992865070872611499091999100977506600637749679987649628227895810986690689686577991173389500040748658819863407326077232975774535991870200710906750631914897881775785183323823286036550032681819990026086806339793170209348950428135153899696365450860767188250110259581576630151819169015362649890655876915366637968999245198508302027623667317946301742049071150802712368479622902098161461850746969926939797839818960301099746991014348548693372206349318271563779282054590130104998568286381890179936840410769315024605157894818001266927636272089001306970188771755352211058255994124538286566267537795321239442190654444300302299443511302977704960427866608488595873629343502701571820313402324770880279221864119455816161454820251144163758560191831326075854312769353245028506169801015552177872505291826823538992016186997934745682054873733734186794364286594223581901129064270630125892097047670851352671854289176534886347498146671113803918198225544662847090850866177124295096807676364585509694917492638028937500530656885628759952920084692478730011675914775230631557699540075198429638411777005375031955312588294855274749359552925178011931237572163411587962901842888632339909609058752123820042510766975125073776379134081192975126345056733466659165586615170663490126717774831705943341697740543170372347253772928829654388871392332104253957717544617673436663115188567030420704538675326365601251492966387027491301719399091522363572499806930667223219193601051029948944383222011211959783308495445556959796249870028631959652592083530563546763272261375996929447068932856015728561016426789223565837048649483254775054477922587508733976598009264787633328899937326200889443044540259790187266231789649993629091700917267658153506173092919673774232843825375408882019471507819385833910670553666060445498376640580585516417551736866994833174039447081596775860165601391930258373684197380882408874545819017285295950966511369670564385304513682210140380342610188151937377688282690644255673063110943849328885317758523111650514172326835221137069800749813580430286269472233919888501629021584633761850931787952507786798086253392369753647342131042323548381613105063869879359441725684905214699290774639371674927164619491579945660378982643090298831308834128969441173645800029563293119092038670987472339287658886431043170057816085184329714312652530770483018427482519185101214013586034763751767495671518816464395355472216260156740127839864997626742756470110989050599410085390099222323297784176083922197863445934404517378715879002943546373417846747767743299010150842226047364906848152650065419665557580326423542264594010334645219247518232456189052876862826562479328827790799013470596930685506565107173475516040125607193850090979923929911133577804758127188775014702366855677423430644684494925299459248866291992124018740119550855467818277431528523277233991753716611739346848433854648504113416569276842004158375245620029741464044543447702376953329741145716498503773304823476490175997940157193844036988213554058665650976395035820721458439887455031753711562236038251897045757630352797643754958114843824826256479456704511917484329434913020396024065302031419787241223858524444418293432798611793032391252564385715091264723477234582606424995953598762666361254390672897304680158220503602153374263397923616469137607810250859739359041465419998505333532811441740230073968316425370262734015632464893942392733795555967979751078405340842763280837653309792880732585714918440003963840036470668987673502219149870119687927550839439543185995463636452237096963482889259685482171103239427625149511231550232403253475007163717920130963493994085252157483816685197606481236528104945818274539410348374463665249161991250926748052412727848932945294507767750285963022943778780559160675270928158961758958655503552863630935747762355000608533068262637829170819467064547999513335995550325493361260796640874649810970510591123226671366341400179024230528394998052571528541015734967311317822970047894359125373703686475672346854370616970246279562504431444134718726294512408467448523707178475254641667869967890352369397112059137608984959928483302898389594506801940408496253886763542396770785915110176405928626597314321392654679895474338488653049173985878473785089198253502815488667516364099493601333390511719246927489974780704903634134579595934292616236711232552430457621812581962639835098247955486527925161510510818516903407142324716293653048576639326147746134483375609676895275251714166360131519968205499645480927657068531110907064904397887013485026907819767711156654138640488409146134263515232907361482552762740308420623274524749765564048827335489670932811461967480456512586241522833656716629200297299689817011058999115896333766004559287869104714211479360284474218221812166537001286077120564656251139374461711821094794404148845198717291126819756753379870085255384467053168070989380853786401919339521074305360306863364232291393837202792374566899913597736191381231263448162785929968680526366369149063761136408511320919278086522708387891574035353532921559597769816935892436955763024310889297862652873205803151405965298614238391781602365011186447754019925668737536699744348268708290889725121974215377117215251488088051719818145298744886616405574999040339755115916213630160900240858442632049945372606365892392569161669669981760549376593360357579580922057113396938724051347843130170105648326898836361835061934985361498065977649121803373245722543168317854195216957861640392993636222935365670422032313140627782008584080899190210646587822958800266674064845350788394290444892859661771263407310995464276031797595603825581669109485170639579024302468567091254430178978874371958685569456730860209775063708414883488304287233179084766342230606306124160134422716347487358418855174328570822806637900286252141031668032654083316753715634259987161938889396508854005801398304593047539296929036526315700440413928435368324810833447887059772795078459180453890294011329922460454352353316448921907775795537153303714246617133805411316371621960267250230091217119719395986193090291360920007879780770907089420389156870029076634369212010929305584146462523455857253346125699596006272869036758393038113450533862831751199773360321141613222634047026370572870825497851653378380731811435054990601054195382698156753955691915981236728761524526564194760316947835078569707925889424116667861979286025976858533615851612215567254428794532657444069959126054664572192948618833268849070891882777877092506867541194382978836895345577497441730103597841055230622806860797804334732476810186259652088899513576409870533660640031969798469425126653908962387508258019003388805216552667703071437556364271590822800533313037044681194137273228031721157956079935104915098400233189310876019504189666728081544614181708890788889736452470736134117177451648744187153400347525632776987032361717306985902460896321864305215032062296806377674471904571842223555613334678960742272931978847111773484862155980747565579590198659184425409829228319155853986192254176809366433528904759880503881038874691765854814705929041644031907507478830040263424886090779302709149447930682398385829542979574026748232593930813560572728522726928413184890007366518037120606428555594945047441902072543870379451037057770010861060828794256385849181527126031169227348459297934370817431606935201599227993503439089906711035226319025392487830287151261040307196947784719604073136897480498673166515193291356033370110480514200863492472638367277955275325833030435095497961668593720352305058242664460668870167477309644329690357021200242111745831396317695519684529916007983189247177239820495958004526934128298975762827646150708163123611185014443673799681379672021758772959986417021236588276739934656773205068903278576669303971641155671409377185360091238560558388961030856800065230433726281815599973182163964933107552914347997489313242205839893381449749116629526170360872421566101795067700234478873918224921667672968263927371417723265880595169185577224481256256354556126931087616333020675432288470671526601191204841345753165835358130567036313824818517891269900942598811825527083553488648375638239839642167485962729247419391395634380406528311793218270931888789198974806501018833748603037594818901165906045472929458850773132251181027281774233082697951899837312791319303749699552898615519618074512851367324163699241842124251362198011721405095103605853349768981572137100009083634329585683962175923878033254996844743841597790070665794550146746707690173560235771369510488276013749460245637870229888974785099832836080713879530994839456786031323288615578142325733351490579998666237073227083952335502103466449874418031288352309909459987063573709364618479525438998417968096877770424743593295373373407783042379419425455294561438333273018588225667196414058464562936188283762159335057388851148991911583379117722748961952043044856221166694789072347844558651887302847038978419776840316558814267128320213966570533951388580227651025333981626047676523998745568759364399013174521828309337512556338900020468965444635766060929880254610683345683724115829316599736411909268458290792112646621185554718128287533833569225564731116489633691137448843298788755995384702572033473937239121320436883845330662162989944750846704018437840478862380235234223093514497075977144735586876687663301657928368235061709291645002634435315798783341817464321443767418734626042932817842162176964163577416351916730235613241997825777237238159985248560766790075968184872742866827594666935086396478720761502133934936875991702740794244802110105528047414246633743575710320971222474051850625685680017924479089087915048257049559410206624395658092127877356204491187928549561047511181928397653370380167482430150773525766439418223950052178692384244861992129396659831822937556166778387542541923335255509823767760891518930173272950526133404727307759640645341163172733461904121209137575125936070734975974442587805654478905204070822454386612785706323036239165808016543654435116941319697402457476220788552552454595167693950368743952341337227785461192525248339639027409117016835899870939644230004112899363725014974469862174293116920346956309810516043872229745877436461482406237465075846885862701527266904687629522329059048974261887829815141120206792020756387577023628245274401414009533903707770503455360466776426572186094585218193574959319326192282219435290490991835160569281048256139006870176007032768835600548285663699734561815775816755811694455763979131140139855481581283432854344918613660373149841711939965924636560331792116425169782279396458020497577716138767981636679930174702604122236789336361466157871033530570467959969653467858610206216849339481998938320348511733906769424061655727563747110440850589312538212587243135822837115910586260035440873203923542958708370023322419024696922301093556267105126247268019784609779728681815730253282015014786773004428310018403567548737907506610649195145774983033915630112276892626568444813485199186335332203616220997098297364367124371113062082391520427097397203552674590853671823948058488451581056485729855137713447922088785539877210543920209990629746072019318729791293485659245489040605009057969316362337607121454966037395100371694928315739557694595587180895432959666429562836791323795720420793082621892316513048120928050816076931987484631798589275515347980043505074156591679385899613701012741336299329133505956952092352845666722488890867342159323154432880169196690329321413025697842864838756724095968668083857383718078818079356356243649709441647888433327512181017088333491070162743498794938490720700942360101163364900811126631751071545075903111149546830821911512603870083559210823881427177879332464287976443291093669816093049321404013381580251498566379464556659247610567807348727456236077653715022926012862103582419200018210191985393626066492360055706964448239236622392195448141666241173471945970117260359107618594916488758744558907810258897364625882115139108798169315281778196895847786731689271503915848380370771426179651318632844332840897685339198117374787646059890632184252849922135424354819630745195532843242263812047835576507511302831705111136086325487115367306886145360167113048916623432298867112239942212103209061054995725687110987181696891404158419083535737208682745984863763380891576046802399906585296289403011080535484056258314982524156313428900228948050106014256819609525892973287559752851703413459151146003122859937050434303073228869304581743792215869928373254483653173059238004671495580976045128004756322173264433282345762693667454614590392103230896533395000519409333458512999163940009225027602976197642238216783298673786178081748123481397492164983645631659534160179710830263926829757579802534797664789991850471992510490884881419959814716598489383504229676154010627227931216078806345239406443171696420282273698658272178219792716068591113365030080494931026761955642925850782864485792062210809926414390902334755929613972109936539593121205047254188530187334626924044180959152670278162576853085101383162133121280086787261580083910210014284217494986183104624060661208669351427380585608756444777900741005913735646762764688259635055654886590976193682767246906953098644048851810355123367201577174790695332527657831031074607572782458788385151184290077792337787136560119896161088681141196588363779422161815039000318091023895519811014652496507492211200013338932743982169280630233847772119384306705981503383849317495092758841248915495929658598784881135829319993451097376995064792960354019170430471721152320713016886963583505664187658192654417047883984072281337860200438713448598755104788007430358005935552202529742307682660396743313112686114223034249058196353720609333682890177290313901697052544089435917360701448363622683954440974304888563339279734942810511585639062328709582989272316240435988908282674367396770103003432524224144918716347383316520633003558053973070668143731990010141022647849697217272673098814403447622411628801948439483258963590836517827940234294451988829513444194977720297059207936667073093614499262440817655090032379869427111131474475006249112662531827813397409180085553362967292461636829834696729747723979570140686401105378064601931837369709980760912797668129639800322669167068130669034935602570663475953796319974505364942675005177902150699990384506092293499096973139499192628830235111912216056377208043223937009803965399000083570755263296484161112333291060768979748893385028824985459065769750487182727455028132640071242286164821140141258574325120432069633634750377574799008017014408119802802618555061234471714476506372901220933170396486736263265507097511149701379391221420747789049586529451309274688535548223885329296833566913284532259713801728367889511838989995645222425536562685408996238920576056314420623846590279324490544344949728886973635393514933498987382277967253101424733657144883578316055359038956978728627558673453341806289429261377289208966870859706635651077119159643335019229975861057600424742282284295592336678505538407953419168121968344739333217077611235776323630612330020624509514758010004394272245164406973901132954787468613425876630023783549328978192140528772712775010352840890142239686089246881663382670017526616174911840796217669036936795762968858314900393789923769719339810348127989516077854233126824955950314125791389587279696888201542524276589011026139255870542590729609692333935943862230154474244917434941991700262457778283844612751818916489932823096847368781231025328735904195805185148707986105621070984936115788031294201725688576947302423899092287444488539868443938405051058650549232389305142631897349893689108467851293841639332843521286017952071591925108428584805178714656792276162520697672888488019976749683153834463144992900961026658180856594141789356153993721300143744025832400212466907217076875559737885867882456634643502780630196128188378804166538515788027095384031632355209044444868797941153656749498787201882905050031664598482080489243511261479364238519713422330210681556568804523055539879588915526468560746888921541558727715288918279223714813436399690380731304626752320946139404438787815739951053742746376260700281701390753437876234728336046521663918504771828530803614922048148703160377724515157489454346984940878587383426163046086641046316305896728925820567017765597709631323732267893579395855508021196340203935144743311204719637739402471865914157490375732514776279303406588334070366862862378938427514853454485130271450129704603741348846456986802828231930146284796514413460579211224042556167439502695610620506341082822386351845676001162215987578338081271122435417421616451208018516621420754223516661984312687947449631351861811919079716526451953398015329343094992489264576404498036680155638096565377232584897403188010095184791969661880602006498147789194550411306450808390897889320861880057764064095696275011641054214112147450886082968725169197338257058576658737410689954010317358554614100354327077055134851584210974871665967308182193095212884320475952206318030688590354524920812184726774565674997566510478952212991173660084504067858346260644135546363216920554022730407128550773798328265245988808488934268143523873270761470400437999472804865261251710870777834678393702174352775881213871240138629019485429267740385663699714189637257571872452361149873542248738403074583167780543288173684854360757723218016219326684882390729519189589761144744144197650698847178759338669902729474968278558508921110226610899318148113238169810979000844774937415875741835522233853177326981500877646457496380625585879333858970905368133370335165360315525735120854471437015738237524373955993678324491609112539382543028310112322704453316767460277743233218441940932306487733993532838569361694358731658380376915785093961362357902120493441349487711103750844559042640978223365567119454357741384438886219073786177795068241123098013752853199659924872411289725883903891157150345513911872037214361747607020451327185224740533549795043126418261657924755261995501148450037543601668473048774159542981644455710362511050270375814749422051236980660208167742640835909081001793956341644868382831582972302070722505099922162641573008735793711749826932759275349391906233307952015768198812408019377366740977215453186332643099439133780416449327866049450354799007697769702873689811997750683412985878072387241886326311478039433829897235009988572349666585889564097086632296927472088787955944342831881398194724379720284494561139297935540175723555690857102078943739920685632341530457622820596318952144614034578954500037272010748844840672130624150474320355501444406016270459516892379164551737036468257243730099199035376443221098357287915006201202564191245137948109759644266620668752241683705467430184269115132964480235375462655141762690945378819728830420667831898719906546506386160749477669527066554276323822790679180236190447971200754000621621718189405633141125613488843881295713177741260730380025792654132387350137702326102246726030093033667267974032126888171941940119617534254454068582766676099861239713059431859241387628220922055654458673345423467780456837155749563809619950936242515956195732551240744292433175695160369560782255968515129847234833512081660387165286805492997809580587979277460629187253546953546217929659845131006529020890853737837068720995238991204909882796355142504590910791700074185248619706693243155351495907675845565410979404777954993611769368068166398433755714379985296245079478905632385667302443146418699053326283093169666583903507211489230983673043993947867295949843071380419509308698409920028777923561941153120057251095952916540632454395150903312932211294406179241433358517070660190581948027794870634488161237820501996369042939093426786425509599763973808475837231664349180365053655720796309358439322474346525510207521367801167049297070504955757475357899677345396634894305131361618556660888914617078456797337771279183151415818350336543927168652178479759649788771674594155129998829477756938893512977091932232218466724610916049511384856558346316678364200025229591050091917431970951297412779039741297613657378330609206601271722141854601864858211638331114505069627066473015958727952131691033636938152860966107093391140053936383390546228086114169291466162894046548286708128679625218853221947888345921359640003916055386689320299464083447006635008950461454795520308704149399173574879628182385088463086300395217694061300307634595020816931023534243720645015796863922401653141482088784077447157319474688471627762915814270176295345680072177471908876893783583604713801092013808891937776547670341134471712748104788563758944980260764702408321059736253954633140212406077043504118545115078431507998275432677198187075393582583986481603978168450969490834730554318335543716062764627136968817122594795083385520071534641769299851844843887568750722031485858230688689348965990022921388355183817828820138148581148918880200718517698659136480052311847687372436234706804344804879221173566276224932049415213050006108340548858903251531699161076467516246535286600945886598383904482772355396248757224836761508415630004148082615394943723929573150765097939099870618034127021440242349084517657019518368745887149915180542328477214671610983328096672921088361986914682422664380737880488638722451860204725734201387566519088872394496414651901299474077418214544755629182549861986712934094148060849650160782457581813832941387534512390239168899224930231568855184073751609769665642840220187955981117542345133000192898870796670122381880665976644156078479214007767840218523474574951624671540859116097299646684705868636508617658848161691744771046030787545077362442630426246956588235002233963404274558742214274326334749040463425288925628061208392693037550459083539582675784589597458538357882789541599148718680296057036808708960759008551815191001189400116541776603672073710516921741887259222936681715928722048851252801886866605585368690841041951685257426188797917461506074544646596131075481582645165040795727782258338625719044712378803819508870365454920857787910149085584164382430304190944386314897532417288846240881292115813827454313868394262171628686034910763818074415740504591364752199074802843832948111781501732476314429776347382477893016330914991053637018752709025753333374119138015157953497885870097278040718723045947637154202611804364841996449351367602329900622897413724524936930565460014505927872408831958053059332813572235292190371941550493074372870435381108877296323340801379966942044865402947184928245023661265493529535851954650419912875345986409373582129252426711196807028746543917284477235202772798409065882282830627158014698797968399375479999961703957181288227617377151417122815704255171937771174699248040775840226589525451604103986185612413535660134498495453727107833522840440131521383078295932675712198672296561592773042133250707514794763045160610066160080209389434831853554028163180750373940312663665694418282262695720508649894986333794304362908271661291881425057492712755862629384035633429279105134257608170722732525032199147666076410067303529307636728808160717004336927368220852717750365567926465293757391307203109314974156743566499158696706399814234543855594169876373802378490370516689243608537317247631627604014051989104467723062211184676169103773186271985937960493990932000608342381743364375136819050277188486312824792324706541375023963164789668739353420460394913160823024642654121584294761443007281578851940354134224977021559222682519016160981263618291106832688706264212604361682153510102281229468687730989628088159675852791675912015375765311470657260385241279457179510497379710770370480682616520439119840456913182746978472896510629750503646268947712231014224905659391023481756748113892792594195272733498444849434509953360603575815909617509879097077748991801936935527276309083561715406195263584892773553068869047051769632937783270718005088137384686226132615553713289166232590692590041866932689022284248116263983827788632852688943724148719759068570909276945857538729824031594725095521927584672950471506180102919988810347398910964374100607084443024772398607015616577253943202591306817957377739564855313001336537213235213499382897399757376473463691860455807081755501496373339713267898815919008578965909089323520203749709919946240022606869242113906932407247585741500768075171241797437184649783055422154178421261724116676510155839768884250916337809358763054999983427777799391549237919425828879301474606266434820504622128780407212794845648704169870002204945216135907538058953647227220124684186186753477397138541091121753514098353875516677699683230984281855917958532462387942859301621111951915772196383200252250857628143080223530038785876316392995646153589678176789270116772284383512675204846456824179414104339066381351396571306776044607180234004729960369563151103724473154022338177679710598310645802246005227165897535864488491018812693534010209360983333232146538835133906583916341416772661305063541702791518749956653181225780963816467599402398822784798529337661093907442839636955322660619128866473193237413281925698855728618301377890654424845096634069261663202576678635444096866003450534288228553668813582061659355080459470528283048598723013792497577157649623228555428975679468900641642269274493851509035993140540016412000196202040146567585856699609782167502436827435432596852815276323826119946443203341985071995251062990971309504488382520511914281091875540260048252830859932179225666495368885730345424491494118511338646490841531508329464825889973417837279283671157517313591916876209870430449055584805255556252857541272676522896692866538598747955268617683690002133706417648989536293147281325780468237604746275705549073497630577037990627125547912259573073116646013958847451448564997437536830375156665392751840424319476677524586601039461661915803887344965822008848603641215513647638190936191546842266369810185633918115515385528230090274979380712456929459446926327186103753422648017649818492720387505655612907472799966040421925637563645802855049549199952747685501611239732648535764615979168352299887369352550449643278584168372429203412197448574981282031795627644890425603850633744535798584353241894927657550083169615605608909783482104017055262239035170336422691190424856711339856824303199231531729908577033903715205642607566485780797540948917689291213619812188680028297064094578860144003167955908805320093371439140816311327217507663625778021487393526798764992272691032834824401086361118097229430386876554128001403275868039210894691384342697051652414422864180547352131200539190004171281267183659099951846480115150936489170166176086536519987242304472126445357358360916435659078416633765220460274915335232132680296753127810835147990331169702881797205450373884754274098213023217983902925265770324050969630046912614034199681500555088717347128978187847684832450936777140130798897690770073635308792369883592771446127242993012655860518509982278969931162755585749395301702045250729966561854711960388133992847770333302813152948950237891192899415086876167619798780692216692480718920837828406278002809269148112715952766473655976501954559208709085835386924934380579199545298307981239472694433623009739854913211863657174269129776389153781958476897449547040685633293841947987164428273546520946282181023563610000085101349206294289541143092504263761750253924838290886635641962072789928441380974241963972568698027905956015801450469914070453766352026048203058122793518796401303882131250438918112421901158358536222735387675244169236343796734716028926419871725091568158936599094213528694267027247388235793158161325031581489374487575061656111049637421872675022258859055248161373518894562437617043576287540857093059796933260909101227768389838044966432461392818335571199630678736717778228553755387632302366709424351565743191763734399305717531567687233477586706845388405709891191549715560510556049614098866604227504609996886406671419322700448938300837413206070761215366329958666435966577537659192338675989446277364417972104526245707884484244839446778086499520820859253688608014088441507094286379300215270194741813033161856324117304682042632420803740398046072907111105137571098903349417750829070857347911901340346028681441469083320926484722129238019930502090399989103713555394470173891117509947719914454852874962693149411835440710833114959225205724969980110543348655558181535021234776375975883448440348690160607812349881647855850884651947915374386176435965763601272398262510553877471109091972410309727231607681403378714717759881740788504210388835294723773403186480568848969130430423216050282224724874515565273274896591529417889360511162705653594177355072978388924974914780056059979694405711860968937417626850410699117987835672988372581153908083132169269693296463019823542702003830124154741970488794677103806279212948976123282292907095526877155272154618886016351539102624055072653970658042473709676211115537711302291475460465170875997019755323939277946415699474745987111598123612480768924411316150098529483391290852982303679357137329950802794999382726771672048385492379056735980017970103777093403392883002714189259445821139609096699790185694716447014796765320128900227179877626873529978829984093844507709905143318996821789529066878954924451155610759216038645905299459213080035898196481522758947864202687842225647660802054493816939690796569535258505013553453173523421706615132061281475309260316306396876647419618080782431014331486189990302794311708903126839121001668303954769095452286057928900460049013296922586498595319882676129117955452127851023834871588407689034468867303329410309358499312205880611948925361042033575588994214377883133289552132189217734073841051672679568599526935461209790884199752398589648092014444414685405085443190453689715597825130738088616953587229647954559971275585675982345519399865139344177788630720482694858930687320473985304321797133104613812140436458096019271835345965785080553677525659921512241531482311489539031152022915128954922654668997294000095816602988070687098445396918584180259272422662870953976502345252790809003619610482799842292590485028700855646908124739685283400637709901463688492318265196494180671340775878366395807864861264019121618518765880565419598803314499745178182851152400343466283859962887196839525280424749536296802789581739521885515619037306380488996003594052682134816662903858415551444030278522864578688668596877866741314732305187741708518060189354144849718183445162266930688547539688636186353917555262113317998490469357551200306279274702006656158940677759239205252254868178333137408871152275634656450137784717434927400663635127572270983516660323640118668545121333264353953873026082854597728261780065905356944457839766728196899532644685996953968171913319252230479343910157018888512477580678221264884126546023748924952646530400118860219162256974955297506528177932623064517807017922037723103293428216530771867159475928886145711322710524208306219830148472287541854216756785457754482501865201111808887190836958832327490991807553138944259034509258342498420399530573123973503544396034617998192300856354636124011531149716369739498598499070036662980413641688229813342145244930129322575655875964292148506641048247382830891688441821200940862428500373315988927909508839448519910256709553341387326971720961796458550586606462369582738554661361982215185186865940359020342261141553257469259526019937241134402420051564667887293948124849103924940455718856378577000748904946095382578348386500090339207163028582885605297414130930818992645775164355193235376456841056360265348443727064428139539917309157229319140972398453970374758310036345280066310256757371524138223147986640552566106971912765198348477932757541228950724956646711236229257724003025990921623107156560222624618244405351081268285246103141852429722869667573475032314688774608581704103827123025964833133313867101230335393806524408077931877841923420060518099555051627383072333725650710207460466418905572344138223551461823081430624720029252927239066690623839450391385935488003498696097882420604293554909778316205660136493261800918039331911687904949374919629573409964040749272884030050729213615339231958537866669808185671122257885483904803029326997173717184383364059619577505011217227179734514583695025369724359786479481769801728470590656281996263216820711325593713445389354980919553913213778075840984057904419472519552124478434487793079928043879008778656860959615029877802517069095114005382530872744100053338847400864666407936892645549231495513730353746527605112484788664573419464330339472211058340589082235741804331659433235470767247036310335178737001057747639381408918973595709155293002981701677340166140914440444479737044496085525455836787632234510811040690104644806741987022909498687275077671234505717017190349910138406684840318499686235005524379118495636392760460099212387151108706015517121468709349969596786224055022208213796851520796869076931632579788845148037828356796414924670815128707488598000255762511279105693396734363903075361777570422030552582797598477226298911332594231617561666205310079142880994999607956462828186955035565973619323198601352272637885344972067890989962981174545428342155010067586504388317077751630007531156585202493925280795973134119440804746444984244549851468575779673330035058542269598158462063623446029910281371505349509059277680767330122814104025456270399000059150930400827882859304960067260043370184607572441421563701286603197983209243406694980985604020964345450657796222418121117278492540208046100970108983292464640144057272581856537318141687478388618662162944669122096951697069379060018467545849733068687907576955680580943141048073283139285848218545095327209709059596921514064444062681722820812556344523161058112441783536685722184821021675975834692128114912600972150865004110067561793453860923864804127239473153543093410182166342111706514570826157204918379234579451720360670681325493992474158869397512026339739363337227788453743764431222532653517887796733874455750122760716536547365385225908431730071744884720148052782335038084690906496214451997728355010277082017414768161041944797288273097161340738738004851158609901596002357992063045649352040046785368982724005758274769488557478504398228094325486836992464119025930023229827781871826499192246994942468835024452025523012312679536053692194836616370785816340240195379928324638676503896446114595156827170406162583225813331547045935695498166904690574867423021649348191142719115022653241048288147611646261066021574269534981790830312793756571794298983436950313927203889170311749114082698775487347011895215294303238236901174637646133881307567103109529234255640022410653979781707896307421261942619650811699353972884906948866940934802619681488058763803906002195576589269483748382694940690430301808120147075502242007271593845330359932646231234901286811502511258750113691456529528684885776069439961076583555661586768482775628516207725715384197842332900517498227465840743812264949719111272619162806041984183037901764974592285087458393820011525468699651166529764909928320149689331232924392579447582412505066318130948615668003323615167422101613721325449690051255625830301579449838104701301374515304789459732875493119432718908110307693173248764398679299326343199975149454978271944941113962200667882546678457827616898680777383795104397433757762581559892832934645778483793542084954871540509116683423186367052750844349061806329291178728017640568244731661837944767757926735830162381391502981056545151166842544932328601549754784659057160198062862510792265434698736572444765858958778002909197007763703026970047133872330087639967084836551788259276802804804133318069323290751076790561324224272166582078831819459034921941606325661523891615073741700331842141098235853894934705260053106720980850073261169442988295525743401012058786111302800007155880509319303861621034402671192265170809300702270567563729373727486781451157094496083150600521929848883053290777625602519573735793491384036952930713031952108862252166341364803726287244117435174523178578140077348509305750194930181365265317769138295749348206186792618232445124745086782470365920960844911689440942617969160021265116882532797938834629868920296669058319435445085634816275535369243952440990577551787052187062358540044597308800313895128406345761534895702595576316114093195377346230566183471414844119885680355913845033379381392285273173735758235505239666235223851652834155288373787334633370530235865550064516551226872850271714830410251441255263068809529507865358707810726321947167240159118685745594656617305308039481155097388871353598710530870235478206923915148315360331206947937866371124235320786957716713838926170976156517309236523929025656532150559485250772640249632043687767555451867659356895471279777110786058345152878985678066786424885291703685321163826679654892137254223438856274446646827433662918888268608986240808565070193563009108227783915602514910903989742762125835513694472389466961215120337732635847176814169071528498026538424233073571279583997217588542352158149483575683663984330779777176966124268819019404224610399406865164945298271156600532643070397802077133886512185961042572134588697112191783452072804785184436598428479078152237582527879244617312222385854382445373346168830847322942366944782539497599315582277964547813213010887630275283595317966834945857418088159265374501439014947724833680764481333017827795783002161391883521513108796491361453834588274152704798160368608919516947969060423140728024696711043460101065493869037493354618069771844877509147962453446050284068792536018890649218450373247142656991547125273843612523884455025169554442067470012967345132650074477093803995405911311208604432665662784817677734959087814493952397056925465507280367978660045500685727532153618215093406796082230788311001297104400991065372713132439808123478301830579251001584395634877131171799454894784732282854055995893744068500407594074136050588951590595191198014967131028983456419267216611345309796321807573323704437511155441272533323947000954602863927982104316313364416635839668109924800783517503393047230911031820840841066697565710648391850257931181220392748688896076813897256879491271911485151423048484286065611564083511185577154051869635245019509874144561606249647014443204288958474274700872251306935763199296997624307895349656347209467569826971861981279154906896321173464682195937539349470711218753664331548783651304408814851321301546030127890093812343262742256131654876783963880195898646496519248893586644742036552398158940205303786258687346143572950866686033638202546230177685603013811439310801690933286872341690870384169667317399915952046583014115226306096278408273593090780644033555061873313545984411396194303114476803820982602240319194971521373538228293313388197181913672388180060188447941986578250631121330679944400734933995429847279201685681089616495163555394765385915184857508828130974324977779750483703574878121318822686204936989189556382726935690526540476901233067400325816360669322301784077980758465383111602111425910429505420539194164618347160726172040072282956574698647803534561527000412147908178551080306353360074027350423281893649784479274641226501750731371715193505922999796406229699014314054050815261114837238535600269292827695357921629138586609778648549950682761515508337550019703585056014113880901297070425694189026705332322543681562717270279318988494699101747451515958983526886880278485858378658919494072844191418280083045715266630928562528437123600777487193317768418548069817727271062977380337280777587119899864174111355343651053672428779277512586928073110921036038522810070796882627408291487791025032298104844710055076761455160215850558606556766448115863348929732059683905705106349716787470283209550619416525787997033069993991673106642715742314537634418795896937990893802608853302607296103391253584216303010348504171322170707895863268424542488054892912826042817533166642842699154098020851656870308561984105932578847538883079913026313705951043350731192615703455253483869203376105585863517698655345116931322314987214679954247492005719874056923035479627615895555651330220307946338426489219698563932572499999224499010451004623848709118504787539523268501481306115917979006206739968906755093713069934544529821345403717380735241340884180304912932825865081726782328645333089723146916095587678549528845843519118328574462058772657195572484971709981301927873597806201591926621066443100219930580032720817277389687048647225151275867873441264799861918831242127623522584085490695347987209711548055312630001687166782213105704473863219156946340073740578241544050945125600396841725573184699348670745892689382426089879490809402019535452536930241137245092356220618153280819100407545948719588661846513501922732073717584829208187436488254521372448128073292934094013800638957463650818922624319710517750634262568863253858067677057726670937969329833720124085839058762046852835421037874948344381791384554173192855461140391364227266878203987987884551062775658630313904893417803482042655179696442948376999817743289154343205642726965607891368017778139746340813193786332162316966604776021000872936780823385503082778719486445315117083059456294382846323604200968738632438758407410594276879324010449796385087406367107078790745439533134497343322720385472304060659918841106781481058350315034155109365188434596452992842303094685220748401017640715516987457621228941007142859445523354558484113477109779722878828645242379618490963589404091205706323458341160926901857419455057867090213181594987684375819716413772050185884762225683110590166116997832026977311322051882926587471070426070588221753944688189652070502279198521855446420907787369726213817010366103701854388460470605759994358982414273830633707198725913889785049058964676984927281098408214432284583228351450416249739802552937124706255715500112929294881798277468677463758178598061543104479497257142677053012995499709630106419745533061136966473325755516658659107257308522715969455886240490013331200124268834702272435280903641255104918480082455789432823657160077415115632030414721158168679496077440183837107112941141681673801846588492209532837184641091007342186777495121198442821126994231979961815892127612942777513436596587869368476506619491282919946528903496687790735056473759282136444745822497248513453702474007981917560799568237919483780582027900496789599150025166039476365359313156649127965675515339256017468016156733261517432293556786697404142350738324042616840302634740910145667143292751410396853619921043062889414739038163181187525407923226790283466748995183091300482268130289146883210057904681374192266492820238434318134786319641111198678564963736488513141726970042438050299131989792035738511108996582814845535052375614085798778599664412061239729362581354840724481542282604488059108181795700844049961326457259488625120817521718983830406523351569925110348581431317924202634258121422964057430259164823947108004766294250071738058609733172244308637710088495880420593116953504745914342261836262145557511318859039890808933135760760145919832984365803970659133674929472252766515939017391499916735439995003467451898317789850129107625624478840086992000275539024422936272496165162323166673698999303377785596410794341509036187897858968587099846219638069575760472766051768358143125285823524336550693941918673760451970800229464556220719176150665312032365010760524514006258944429193840401223680006845832130860066821601672402520073797287998002228808012208307807084523754475021492028516618144141079934574129668915961479146546061060318591980428884229145716716063221260387998699053515141395904002969202872892376572187205985553566571952152714173207187431538672947228933673908904701300906876003209100507493750217108897473506662013751240666680892550109155668788590878505153116919480066023957788960475813357041327394411885225806869867506208349199609083129957453020736905084279488576701378016798755534064991113544291308945575929281354327613519644140961127553029379564391793265446192295184745277728272117839524941136503017143383560863382490904525654995312189068218137976143240605010516140765453444731076266926380168528798150322897435634551562398799573464244894672018200396663986408331786179622810358307010129313669100287021327014437572933691463969379238713588583614735692179173648409550815177571143924256948544992490932818674092572218743773311848867150662321616529804998029415357484318551606160565130648543659609842424818880451622847605808412559565144996799768625756277480147659172754242886647052683298565381127256296328561944310453570657307113893339747612322367364176407354691179357691562701425687216561782093219994350871085032057403070224360477148283787754116455554967388902821203162077190501514990459557425361539495173199883721302707340781617684008914646542417867350367171298349143039521450352416505381833074894382406328899211152368232143642115707774894971358250915273947476463693121322033361956948778093141814377507650130584498257358858048816710799372473371851191787760870364081880965125231645415873797700753441199910666230002774627197642383479916466867614725343923640477359818702722710536464231206074691781525164653662619827458497621232743025750033062811277902547771513122320233269239471563339999732902319676817573742913184615782677804948037646828568865109813742737946890331498815825648706458740907768858090547684401524283565323334535914877632303843595732511385233585741259699771482467044357839773457981287493047758379208359386025069880886099106596925556484779538332147804560916176248854543206891172252468532846181232869091309863825213873473570238556562572051736820289102986917795390627032030653740416045582436410555177698834877219111326818145225544342526533831628653794215672834842465354296566978995122837284993324553517935716095118895583735530310403336359587606153804452510002132216933765971263782891450778070142263547772332435935226032973293015936449577457910004187600435732249258479739402921694202245946453476112708900525284830219501104850092295565335809866237304141130438373142518730200678783767419399922678631400072002092319380922723821034765760011468592335447218788158165286335671735432075601947924366216493639641090837121868979851644431577314489100858986067289303527815211734168355697064958732374172767793941642673666292740288921540724255323693871984125374856294895013313405948829747524085333260614243608277470795296289237026465714965448682697221994365467923982025579374712793281707504927078394384069584438870221802555555826271354060840492596710022214942651481144896408917878229960210551060017917839831808734300311302784981989991053505256482480182562990790510080986682320801394423509238490885287753040082683594769352556668041810474688708988268883276633985696504466898053691972230668034084191033063147297094374569868301945084486678412598800431585248470154959284833797412217470905150654431891240778583203057443293810667664114452922934402045673412212167945617914908554002855132809961572350709895000704890745436098722231689129485774999933507870909623758440336442995046355310274156728686039775075333026963904473608280348340308546511215921129858497019624417865785921290314441787372653394807491618907440491754747773100257360629584016029832817838314914866287846347785185904400319656828175232394039268835320561342252705265470138341890886150797171021604799219449214748633515136996018181224042150854510426043524139436399643743652062285915317048279745819919503860345124346509856890057569581111530906475580539037793571499697384044634777617970388288471096761236009299239025582200326698530504781027401958646632872698685121436167208734753773950462814413134061246718336712053041005603388252568798484723527465462541981581421674092386462417962045548781362920910115096737607380201110059026379354903173561327383545587128173461774195885949512193521213237542908934235674231322781560805659075365820532492812159212652267989220104314748534240826154954947590940927379627201957056857308079995627816883876354398022511853308328609214741479753419985891552189599002995345699852999677401590901966736408094951133464014151500556307670757649289948290765471185641624886365856564257427885409081170768273232024901855422674990279754677087750755087754875376645689991321035847814423472479207729141160989400840649915603823294307881357260430790150604509424217659158692672878823999681094543033814181164695410428851447353138773964945676967968080343600630694480614105793025445983621747313479442284873542236644314903717047863352566600794468957894809776469900505376680972722839067448745158132846633929425265734569059441909243517762135025805439400098389036127839687985537348727496363482728429674419486518161029087934580675635364360369275295103278141293692664792309593008764036071481098989887222892680346948546591075366523345902965672252656753160575813638897854718047979872411925484554745505834775192454430563334403210067876213194806420066548505316596628583395129980274132859499352883387445789244514056334950774845462051561519246445680993804506933521115845806804062899953438072590168908412044649311351098058667486092135775844876353166676458690904095252530037760431574457241892860835502561163137206453739843785307960014297853169234840506587333556104648378279556963776807445312402510084174485691865421728205269919591354604836348545624959867197404732493872264653313555872461499883001502290929786921003424926075345651796755409007608051866233427172042121343273346794645234104043809149138011297870090518781122889316047575050359012436330612944826676552611702722708273020616819075748556341170126329358787880114192128871797694783563750843236161051047447995143629259920388239027458294476201216998776517843644530181210552053028103968405127606200166527278968609120734991608217205837478533677966348508043309028405479254831655033584648121332606095545692934112932498094632721864607578600728816007165760245210847592308140299979475704058999787855446977501043999227509100835576204340558656049070077284827523500033516023485927963785437947308246128746872887727715838016358990716560142473175721714375915068718651386757678492822511288531472278388329620857229580654542607467729795806717800119550680538095672693590116650181002983051128156697410287653486438546464296765350334357712783544924373172339086907795487310612398643986595082530976683076640334115693359763632915876824608974398142022547410053903288034629978284854379232842901631541734980845087732738166629172823279657424025227148778102413276129988967805265864937072791518337531941628912289174910033079279079559105483293106906719762449741257990506210544750694185866372181990809245106843260426347384492967323298267076971943818619625146256157916183546985412622942801115637150380895699751153407580990966705286168836447655328318794137023730893660060270894870716912366220556652468498583351997899067760024835216928650335719499488431669043868362899873961757440091220493093543499614797228547849063028546395082417527672264745274908622319325823568200413805709333676160953558724338061941503157153394380596275363414782939792310606900033091624061788847887891703151754674820653927421668533177470679796048843179419076822425964004784918597005467891769607706492346238247909661461242431243307358247089187245979992805166394680175072662715468793082120429487630146890450216087380673986142885376649508942380595279417776436911118818352807298358367075010981729446282489788235260518800927544660675308262871620624710887116039798741341536985872263321194063536875984529138927791789864069282252631771881670420497213799189672635233266070923652540943096470573584582613700682970776422923195193333017068081652434498331511348210910536311857427271099134081834541370688363854362494843031803765581635514224795618621621320460149251876772534960028033316327954906490676319074504244766199757534900485975282352665209295350960596759520814029245618818615610661304741694996324976380288302761942279492310373343209506995470479062863925497190538857744866203362423226185891908673498627965781471716085239646394527374001567287067592308161716949870715353120357616431079333194917073600264994096272684704463581135904932392052402434444880089733963107767938460700751979606628708814174101150289018351243280857583470175721183663566936114807679510158428241567082674117863047031317759768436883191103044507479190129873959126758493836786680061918200234525760210160166297141313253662405415218346592360587105573421405167413816199106755468475510291869266533529350182575641740888776445093343425364519672289362619442671625357650047154930328330734802482827680414836155783709279474752923976359398382621785411691711433731458457861192501313966563031920105374023296445830250184662800218826401019288102410221050664323206422076351499087403453781642075197984490661820402204418241836278134422118449692445213258431639736758864826730503858158440790675083742978335613490072754970670264819473179268761649909135542900939107261429042700287160422346031414015909084917159618244123849771669616314255163693898266300448066649075195330546202660433107877173939073025514989705184474001912642918243230535187917057492246061970806167567314081734687331882642644562295382087678452617368557162523168675547869335068232418694373685521903255603865525083297807477967507466410457928647001745031581555847047355305761806411746253317006644398215720320322669727522516185262317779598843958381219211588319552974173866344673845659504631269249933358902267658228365195481502511074942961594605654906050598953307884417450050794823017397970191894035138125664217297251320055330586489536528612134304707347167543308618375314543991047044590298393537745818541498528756156516412692016593041030466842464127258161843377647302801199014190147173129247968542386602466156850976382897025789841723693223609101223696349975785760699502807232643747876554862227126687427902801893678721891407408126063220862816269663767289057541804657211702847810744954440655618808495617356762435070749314934622213244304508989510682305212135915930505323737221573698578374097914739646964118158251792949784591761878451509840479766962979806404545800220188667653316077388772377803814232696267453339856413707009687768424816527519366802331113860048480448294539077928482732240454186893476422976045811815342121490784219500922488796382886165977643109554325043667094824014303330089302948398306621838143051445396034324104633713443446681969512701134172610363234772136567167617844953480724613175349035261273990190156048061968169062981686830411914310340533561038291630825950708888958536960628842721735779944272760100052941649621824238492302586033265673923342476694638089513987633043370025242610864314654863503135412290890232261323459841721643268359891916319554561811054707385805224093115711355033784038343335552493191419692118858550221837252010108308269578574755578143824286460254201559826644248116988156559246521756947935501219918971082700781405344822499478837558740447158025262895869466380141340237991874931679485500434134461334346884147741087619381523124191778193060878536892173342660845355034258045199879119506196166435325437488177877864617943544932330554216869005875637406489762003561534815557052896899598788025235445311301119503054668622013646628834252380925485418536877013644078619052839515413232594944639500083188843910262597029265740119626903235737414855532269431162399934503418376417481210989868110987695780579777609556424419075430547568241580364189538989913265561182883786634411546891476776482075907451353423923273593725643042767396964685267216508496010341701924498449079536576979681203328640269951740638341911194030242114228537344873395649873974784397302124410901632982513115757443746766020166636270795110505301536927032024743771778985771120781693766920139072611541506192695174429731607260721794361291375285932034394238906150517290337336778175511794422865833009208547851021666978271357721419446076882112367939638957339541729947496479545679436135466631610711954394465495345977138072694958184721541771199344040795807612009898025859377853722576891545056105284829772252998711887469174313422265581347795930802420365700311487441489511474332340646835998216702430558593535104746532265929719435129758920546564279585424280425464446865677459221015906370274055721343207671048941262484785990509841319819784479138373947767729096231137008084410614199543960855822577412365144255209866463716059343862464412402989192830376180083348898101509716502089637882562035310837333819553836488751678204426608670980796294827055478725459817307164206762102351361692339580886015190265110133096245104458674396952547394993892560332699020078216595195252859780305564466887125742692668907916601251132170054316725402406634328461724941751233842200235236177509099427389376843150074422894211235739804219117554690619950355673527043161712067336835405123277376034314953217426493210076884143091060081115751168318892583716463715042271152354558387254521422863579409286819204415497703976054449298940763303606116818388315504265093687139810302972245204011523044980558767295320077116137810824433257804824971439469563944701930210986575459437158639986496913143287836705361556053823991063341968050399608447588545633368976178815923504841157995678228431854878340778297250656672976065161026767819675274220272190371183707945762909154822326939609085545362784314745057939810911302176228344154574359722266849241152074866104438468880630863608788151084744057554169757225322135158070483311950405017442076739431330151754357297842147768405013709202292933881770448281233160241531130603611366287214882099651567061632793736300182787931167759329159671788511436160332272397200135891717076710446170822881087500724212341418463015018880837688010914960360856682028294654595006806715019788537024595265844533436923698031572794552369869407176041905529758905787119574107204840640786977548503940979924810197431056595591660570008135791617375460769586229537455811741952216421984978405047807728188405288690076256135226237418706717596904118871138478676872276446830133944148059426070954396503355963914074432258396449124209658591091545400855567268347519221318151873730005458339724308292922461134169293643133497994601090929525513177370213926100874120231878628982978995704678505875875644236790027339218696608708862465442400975812855630666013298559168482613988166246810531467141647808589158753499104378406994222867765370496731846726203461018275422482243711981623440902140614424707779715272810286997454030640647668621711642296751510863546932954103249566476445430357715733382965096982931128526661851842416903980514958214386977996610553415377076014148397395444884126914226329796940677055780857600517788966487816134503645560299873297184069009363499565520893812393930609374491260429405941474528882710895736312273491145349669443302847553636204699162615109554044669956712742910931061306378943757765248148854700349188078724766199754357946485746262978277418113082402242913100775132022650894611965986316711332597250760570827898738908714167841339716379463689993490314818878816215455862666700209281691726985630245471446156883279480973919935825872005330146551888612034698176619021266386282278515906040207483887089709640789507778552162272986757955676979207334464499724962640762648124302983957072521261444550957016928094917698532011121941209995592595193132955011477166969132381117329249943658814692113993630731979495985907325612067532723827072537214639706896620088274510288205643139380555495300584504984595777869281069640368665160247883152806459443823205591850176548994847887115456275340477388057726575505760923639663971413809428402103376339729461483866115632008400263594341381848450412964148128021534009725239679044151864191679333384920985397748021409234298307071988699403083490588211839650205376734678186488131311370830808727685147545050680305526599818907516368176966983006808734686134555012750108133148142138167461249509968031815362054963247817787486442135831048334030533981214913622144907082067784379752897982571718709044558718795418182046763396241319210439532883046604461910728102499829747255280188070946569670932528834153493125189672745663282761671736649903561687334472473544333098519485299228593830939802114321619057239143975677792708524820248592333625008050957194486530580837781361406845647930524037758716256648267268948879481212928437298566591799061051626799267271858878720177837918900422711120512889666214090720641628465504855056789913733942334613066822890618462351309124782410005855092164557001170873313863654161529677881148853488960660988970357778827087354747098682142781146805575023697077145058913349190327316732718623100585842847455945619929136348111293829255227853953981460305500916026366987199462805037690650129339910663330048627894342777841392418810402716883417436818845577314950026760018569307253179035721104283832300529351242993058853775705091933971263357192029234269008205765960808517762159436003602372181580873301963008317616456343894667637733028824611120571101112561563543345077374867765760922585811589843132359756018113545217876633240656654014845450337483133259164187905842781506175545843789855879990756834948817590334573803461898343246391044408636219769025190991128237204945408956740474524802578319958213136759761358018110951944382108042735484023331232657621660441100672458128751081003407600382979389006164989240625749139377586672495298116418183168525969996527464818884737069685041761366412680802431257669044090925148638024296665178015257871862028794421346724870548191595805855843289681783948775556718253037534998588987769361563090611758564936783479089602652394905860556636556025001482182456342762139619790046861604574872663451445318609112644086095513405105416138338261079875618046868609087940101381796966408034042101436345547058895724860581819712767843804312653744141846239189391425704955561039899579149969811927131416886268242663855520461898825091925733090687768459096856361140506653761095091330209976449814978497680090147715437807800443951605254226266205400069065166972324249421767803369601304649887010183900212618813390882406369271829047804874111769443741581849332756493521235714098784482734470944827100655510432092992817652800784982245875489878745424251946077380314551659532910653087357256344141638028355106440589603292882454232148850628533252013270418239012581024027447509977749133254058001292729217937966877585645902407090259719876097107763229157084116483511409318935878174044451095020143856635302192566317384933192515646713455142317073749553483077102024790415345699633717732393723038676548477252047659780072012321689100034538951314803340701092248154747078906727104905242258455896916319372844328858437350508442316038459810541660939297992163410516782928290251415544949093067991254616459024597571161956686678055797758029456811699113839201036200206181940459764535000022186644225524709870686414535260516704772240482922071251225928990745167176386329856588610802457215846923571947977132068409907859180249060204415466003402117076044664894924065804584111601552900586163447791481667449132026329228039747126211396301147181145260917321199252405563731048873262443880487447422471901165921365575607514616525981805705334807576787919244834696574624690765146378135840644404176366568983783412363121213169145642798008236783826817566717806177520465863629894385735696111029018790188770336426945969973416330957278211822879443603939774342416586941979071142680048678345495216893855240545558845680992350101662548177163889961805696076172380914648049666049337512999125881412505243276826253838620835634675495983503248478667298199464813678737614843104449360008031604365290830810245051072285994886698445705855880145395849725019435798008846113152108112244714468665387656777314120209340524345542147630976173703552621780187115531077385779232450423795324699321155084287593958596810875852666785325073037818278655312818198519800491066350339504264398824240207635290992569591277599648457417974887400685126411727333522340577792155317144445135876401143554842356632046612614434039408446552080365523795050970146007872904505288300759773922355612659191056914929684268034564568655664501826621387365106736154873205632485149884922625577762199131486235675736144132587668885831623106180697311058047990805194022743192779734831297236431987554115662279320285332598162259263763259524680516356920155991593860261890205797642939663976353222163862382310641266232112705283120183149387752841417222786525040435023815638586914380804655786266368062508778518540665426002563913750789966079956663916372205927064024865297563754693491453060829900335318363992284636703443627955072751928367904807206751768147808722597663141965996730277477215867991694950599915392772696094342092757911399536138901827010982884761292568626587687193541320114101360947853808040447780368602542116493648599160141345443547456100203365140725743554869874821538677183065055136181165686917046798217952795205831075064676715188695673488022423146685972070134561318028272926567311586011395386949889509218557348276064541196421068314678026155373254189911977238215393875712850802940619884053591469006783348227845037084746732149275457071257665014777027014738263031511638836367263563276862074045425420396203007655643868620514714099593415270249650793057780962524209862642350565286079503371928107422272337674527422138688321908420661404754159568748838042673413902940994983723843462102372780880197062947072446590598635084412519123540695502697824079366719670740429106449083105564814131640905875925522529553941155705775854491056088136023404589110227039305367798373032498439990561231779286845776905526109730798821717105432146447398254692980723179145695861407266043899478113689000716496607629388873743432457978042102093470144804969747077755842518215905806233905971879309365721844890799450048102432620762040655922764318184094550507585052160865002090204688239341280792653194347130274333647796916812929106637973387000735810364556866151345744253383295230066884933852513799348741385049688086817245986933148653216959944365501324045799099950562874751464934020443781380976653349723808624728073105230699219414208735158162166587279681217960654024674684956863941967959547378368288870109059726990242280387457036423541118386316963195425903962457883660195425507192503822567109512821899488797492998506058245307090780738405522049681828143534015305907988926560113538713160041436362619221319688472700668606611940233750271962335832157254027658132180544639931835352396043077930324323946645602294533636638850261947210779817653357507308436025087780600703305097768782514513921811823833336439753743280112289458598772393094608782545852485973397251557280562764877647561838622784786274738641925639874186258781799031400288046754763289321874134307662942573683002845995894294290092692194340865442188448518497897386840188880222659632825376314080211820599509788440265973920280002767550648506405219526668278904913613482318461517578936987208133106966780120409243858732173583594536351907521386086777370964281920895426282429287130807575138805378448899602426126588497792955374587781840285849383789346804626568504253414411079310397650823411106399264922001197191058884975581470473564355659521220890884771297388375523744502915419162164547311651664588881220746517212074817899110625993641402780758996351324967471832646907095271802193183070044430429152203420627055786574411455153731968761933488583890687497239903859115662911974077182719884286791327282437748857129989001502587240080780436847964516779962517068010879411571145925434442604627646805060683839891222746063060573852417518305111172305582520753047420422095777182690593592738903113038248284401427564978701170513997200102921095255722529755903178891072097839904938659800350183704420105089266955392219162825999604097796244583812099814341734406735322949370327206211231872205114116205843809824351443435330959919835292863316948398215273349732313623343701506162964834387642758408953769528321257004266761944472588265324056599323855026511946375900053623491995322186442886107583407810099891056245291995649308832276500339495936001753803886302653023579314213385021097896262885219141655774263260966507139507519299302797547856386018609117095796091896923365152227754779243541266801881901484748420611849565364238233742223789523140197871078778726851968530028948081106175295879189866270730121226304641279181904654200822799630700735164557198818584305353100324443646240929682585234755886647375791533612461029877732416696462987562506325838194769874976202119168955692199290289171074228359626377962574829110485334486383893851226099997647352687579309932062121925306367089754816377154643862736504323202710408649686904396782148554930855588854230380224787641737333576332665654008454187394433878877918115795530709353802847890514096105914615855077800128075314339895937711795773824658625467430330709435885415560196523988430778919040243107686886760747608896119701267673041605794457779436173388600889063801497422953098458024524993679137791327287246483976276673450974636190747859262723228196241800844332027324826305719624085480845648914279443950583323891142138815744710138393651958744219397092942055850680584277655779045516286191564312638900229900462373881494071323717055995397089501596358378586835448002986295866381733929202311760179602918999211070358737687158293900962624354124785744264474479094928067734500740316478495486918483352588193165429767952631341589123006734602211693121337048954660422465015086500192359075314518573026437671020919552495732531958861085707920657418790027064413329025497612321118857768411593043090191686744868685890332502608953909984391259880129756711214392997703377481237169216382258207586011434588987796619721538799483474542080518963515461790309179279491106763884356101923639724923778710173819081652633580094239824685283656227197362467644489437990811396702140546216935945104404576151391800887719481850845650424978538894421545937850814980921426481783365287182274120295132853165734248720062873693574784320298120170105956676189014220449534495276855744720613629863824454825751674397773750191711141191487350788814210488728755721247688540437297095652449583123053431401982023902839530672715402411793931601948992711128851005052390695851668855029596218816914503086687761811665088672812511549177367663926310023472898172541589146032112912946747474423597425675275484841302870539093518359460431962059145644222943451029408311680172263258568407153394318240107150687363759048849238456875894281834155892928734801141090220078658566932811817476992143185621907945529021908936344322663899223752225031767533443853776682035535534048641202226935828061179990707255465542482123297432534276070866447252734084046394090847535534651874831333380135778691170269003459277473396946926722319237285211155662378217904969399271903466678010038182882025171072798624173490958246556784830444113295545331217705455974305021209733363077810277387153171672426684968935947974073937264309540379445000634607568056872109552307316100263999484530714640038042804875480261903629271405339833709318343326367980463806758613044481027879566024679205235182429282787424309229314242548767790566702561205877511762971331976626234869266399543931212580717728779421363697314037186529504941812547684226075774606260972208943301666667809982440896332901621053872905404663826703268919779650566638047729077058835748471944710483237912456829334708308290892842040621094677347397678056457494394366941316035408589841085626221334014425408036111798928272969114519137509602862893130580629858278972627096629242020235396995525461751578769665579184393823199236821886342292250635824568301957237205443046656663625316192245008981036094610510955060832164638075859177498853874088207131058697337165363733426444336221354394666144953753020275218876816144957388209207276061822928915577232433642646590926728002325158305408464819810702488526837273156801884582007944394110924580604520821904444859096129297089496831323234025419741256208067387794137406833820672332598615697223899723550237687716268996125362946712016006241197948269202717873066574827747662214630888352739257449493889721002866985704364070473163802907338273583449372777126197628388208546395428090428359711746779512087427970353090779279140294011919132988100495674026401395281544238544532729626328567616829726416149517133820380387959178665304047571952808800207470105435007818930967451759713500993209414852705474317232131650508386420812302028692944281145027506301458651327482958663220099541441015504680747137950262158944744713524620901545701711236159318014896014685091366279608777068843564745410856988058006719249631856492504784570741878405945295220471261175208908766527287668031392792272591561204343356816684576210325967863442809491124587636918678827017256007697503160414515061183526744381618873312912608524689461365016103625786417783590002612209244809858609155890060579600523383287045329125273984910943896609822426083945031371864259822352117992468063506718080460853380355557166503949808828916519714151303028394187769424481687128732720607392133429513460035212053143967075021777631250105077680388655218617204273361177129245299650478434553927341274889859335199801153353052534807552158529409854511384116230754049602200176809888923113733832046942685231363661511776004373732681737996565695085819154506217413809807673119728790782443580111666140156902893337356631324660084987955229011572130833614577174632732992147740161922067972728320398063978694838711704262822958267967094360118259703304268758654127816089217448302957189367800675849647944659914487355037789867123016553148851817665275527386142878407830635785749046717919192898402437562357439255890745884718825026341918606788536971982404628418192770202229363900365419341031878071013904233889881398711410055492628158374401995473533722261399260890819403326424770840645020790936876811859965758525052599451855125706230988464455202092594997047499590694867099164116781734676177987932267068907134812076932076285624949505400687063597764096227115464415778575101357076452921498143101253115050115767250560055055934970176868642853045550022414394986989254793546256978520700681651168827412267970124207541867546574791609212530226836061058391950934460477049882948903369945462583049242680261675230315436348382126949336026655543850549501323251169741481402920555398119585246168383760461347632111333339394815554718933310427285764469279956859706796909748624664031293476157945195980727066103596496090394899093834022728913103255797614528446990290240020901442784295015999054533778216237403441078569931262571293447976432501627493320478470586828061524317415207364533812344091695603651695594678578980160190045914970186033163137355812580179883685534420713390677546602809610301341758863446654822727469503212094588766738255479983231834905097679457392481968288259741191717715729506948150360665476752412747850972621047104745059883341488820944361219722315578582002055766750182239007332351499157284968566430693319127714990515231144624254942384908599662567664251755169844533766989673760044253287286892324334670327379999678014756196445008069734377178240928379034642651173385909767901902909950534089862577158158647378252744720260402531038897285854736779456458818890615930718100551704527729020954696803209506574242411264221569650071581530531907367254041238381672561390448595322008859946458436401546728496715234387447090815451168094760999799249077118981941892481549880960312399019352125037885190092440381995921815180648866554084038988973877868771450951622545408845463484831900813199205188482408657921494135389124901661979823309941423769182428514811360067156685760912126203559096948416738556127015191830933895436421612406145269003862236491335401253003754791940887564807024085644057496797507591445477942868386237503185479842200175995995876171334197042946247487009391895518416524414045623789243752215316718364256169865660730842803114324077937325555062350620025444741984166628120802183267818385390175350201679732448821681739527972946154720552808757730025340421891602237589557435306016963354049549702925349835084502352117835687496407431091002839912938178525685022751001537790458801454134127187387533331403180131048316963904323686608831421668508373805693262432613551342409381551273941371418468461326272285605919079782347292263657006807520102239761103735088857850896711036183602386378422072482289573501423290724986507928384985549786818616173726860970849188970992503843682832834910391899539067446509461855832567944349729151022992617604023588919922941799111887179308194796649744055646495168811750298268705662307022242929164929949421603448172678716719539724800914659587901450468877837746311950492718719359449041167420784790345133777234034329929921295656041806418032176944591387073720807194414911856582902623352405810691606341526898320808880464734020931907577222675508891664614089200840717708774354296227277957562725567706360228526302514043556997018889752510328250284597630412591768946756712913087923544597206342447506680086249933698819395516641926821397955158509668819093613121905907804449346688349728081590154767649727907817459302664462104653745790373641912029626041089747566991051369803814649171752916343719455118462478676987314549440626413750226885462659258248155750115554339506690978822757354292361875797823033655978842071796998714031920199558698566959951784519383429763143439652966757235390363751258424710742883113652839517552764470035970694984400586389259319491491148808686802023708984616836990171522528240411435171939116393404546116243847972578814637234637246049708395446274993822447410213851590585008053996971883392673229655903491296992901896524167712613480818583080136684450424729176081727292844968975486856019464545160651613823639243876718957690956498489585757321105490024734289676678204637402910914059984259984007292920718374071454156530170265463396391501902188809679639927367480480591556545307690552907152132653120960247210133497685032296844829348686227772836557249536470462160036393078667344074980349741309687364059081526686827154306339328153874185044220416650544074397944615943516281736317698841324310159206232958011761072975609031438532629826963197543348940323291714083074458317808080044772980452193310022321439645972791504561311573545781947143757321440518688353093463743159695277598577228413270792247261779025562473293960003724853781601965476379361684797933212767347131533715319382227593372936033037367192059923115421306282280043294053340240996332162863397222668174844284889280947695674541674038168886887310283191847429424606558266927517290874302527287333080213301796765554098385841946940535654250246915927330998892740051801533525021774218613574387665332957215835635749895758881264246885838344251269016039439930610286100227082177377260482721406599116790483008831692391793869075977946796292054579194928518482414660680887366199162919309048322017728019023160089958871689109156545321040209451678017158430145913585865431013193132973703880213229679702577559678832024951197783514253331113163534410317108383571972969689902089358274018936899016179458571826618831632809293942811955716112650645054850268887118825848017486509421838939173301772005067855863905961157870112054774577689032864096468790351465441190938805336820119746970741728782549191359593043308304663743255424294707792956052847698169426897626290203537215233219119536378842090538233283181491048861622544936184526670609216158312105267345451245556428352762260741576179299103371040924055036247476871061924724088118521350586767372085242351319902283294556630972176965306025681235275257436556861983012053042786556384480476572220362082582049717495843365690042734295523352472441008563342607185757202277325662511438404681484975231675038523348491269372756075574928092859487770831566888762746477705792861085728313288467788769191964131271965486682063734226756663331083883097308803742766257886945063489569901586079261845671757275846762254859670607348841616787019441422546105501844778228435016878817475925066076572934183213543187714777317596999739024496639593739290639343405523616036928387031111678903957488815297082695914904990875493240854622413296312012959670816488920478760488961509462336459210420487185842469474844372243235464613295896441620901408638265728864470186275753752029749976820362580124710896531192217486597678743441333583535320211614720215084418985353185896546201559466108431903896771977435205964966314168015954754300298366136392995053950864090372114493722324869856796966823358441309045696971337487223061226748633939361816485300833732289033392905784316222293357752171661925323135422279311868812009551571138267944526911447410786008980364695210412572932031135962480951233619264281835443301691109380071717660466511085789082422433783264070008709424129918886706574652452064889674115356347580540650839290438590159096737248769507093517243040566481875243799237162723156477361007258997550792338850790915300147998134036225450343455089977473718524318508189102234535819842493067750043929867708872209251449028968432406575967039986299089784657881119632386819764922129204866921365987368523186606249218639541528050468732810383001126255505247753746003117045018521323097695953535042265646301241958381903952012730407990732085102323133917511812171675394330631059698224202746594402028997440591708406933135269580533573174299833552713447966377430068506467521193692994842036515247743121817250450148129751326783685004704482357807406144318755220135784854901651367286672457455401515783213847706024891281297667744606257962132699759696963911304173569194810357344323138908341953915710862558074151904537263117365209594391695957426171998621182108973286776306832078007698568277959065086633099530081154603367776394690897564622410925800976476372257250200446995622475404070583893341038957830298566648090678665381306069764801419856034661127667392076885590693517677098389041484232727314567453403873764776582109709430642873287498673623007920858628401767110537356822628802868366006935423853442577163373122338804010134148855240443161198330920305151200277624689714373292973428586742988763391675551580068554415371877952273706104390362863086879299958417097164735058550303200231616457226658798590960828211396055764679568849081748788612351339163391668699844801052341110833247657488649023446769985641226393864258335564154161681649307407413890781083570990750017862433679611481219578917523120339817700637249771033182625001263249479245065718745999151016218220827796288853951473502899060582910884327356694009988284037753929450202201652682164736327416473443473784531354186037812188667583853855962463216401651006774915062008940428046124680273750216382975652463254412635227542753978939163461227848193121392129934221128660891833918080073120051696292103698569141761952010150065143544467664010644006372137786463441546972483628034339049054350929453560686974534034202404431203211149642497098934543640301321731761785387117288453464189092873560747140648485723553092602813562811882294451812145992095189780530561736067066335066596833089937554413933825802435626628697642887450129534320373121527106967818293227459548986783017093913667153896970778482183530822364162998699982913130644725257315845307551183689033806381121392946364099368465954272366916669400420973603110714442577335363816074439353163576384979178430972154194410018981405402251797121406912004037490386304458218233825708188439167994399098204481923738714054606262500901175147056434092786230175960993295280895860912045304496250658068802132263610494844922085373783185421468575815632065454265183618870436843511196722682616674619428788261712199352869824656673037536777555701291967845770431835190580063636913618010896269532990888929580807434149026993002149698962108640325138929899285146799143779609980825212166740500546288131357905351100612297585021182946346175982653406055895451787947358156296078146175978052405695128069269476159619816645281967326792310057731529105013665259523276486453452144438160829726555835184867387620543191431524715351796201514813925499498586840884667543908362176014024729390294536345938038806151988612323675741454349408159526948426751628417407083930987857244470938993605025705723820556815986988239525153156461367648055772690447468805815135606716640443388068343787090967088563845011733561735538522343130158435816834559036615129656389788376766485802694414463119239277548914406853004180802945426222502656843705609009376102483061481139736472763516470968960599190955864238568942979147959188293409837012366483714414378769367186973110328993799571052544159301428040625910589103999832977855067092312335147116022336986964477764217918624459712859090325397073281176361525960395819047138668997560193476362961937620817765310731157036321417473150473792874136514856755108757112638931565654487495567025743501189505512469516315529390501752404200666766439819708058364540509101465283349684640182461456853599600532436920566644853034428777190714071688932247383166073434837304331620216260547654831116512485109584918872434776729839256318668534381432021522810106056014264799342101086827844399361486405140173218407174552188214586196254288876774492166554697174680848991730377002297679628333427565771109030023090264860919215332930863898745055893152492598458574882798686352633495010720586185946938093670463638864858633855199184362335462493761218611836772011017134451110929619062210540859480180095646570351197615077422609113312417993232409298774300143437601550474381157109880995689193631155243234737946337754151791114741589029153492051354334072675487685251258061250708228571415448894065644388049764221815412767222722681678435175520243894375221808306997841363118878181033908708568962217576303409035800529037699738362051818466370299376676802646431404814822213389844895240311043344809567441077507275620623558524686897178676296238254752559620473988844519748527054304345977023008287990101670496055896657025683322727473827014146268667221254486125364206552815070389523517293775282705748033853755283568819180760546419839934577671474441368045195585892175199130353868359887671579374224516730312259076720619425005764642222670684526267947278859108555476373464008014171168397509545124818908974871256792204549815235792101788770290856594169736797150404428682548625980423322643352437968887965132589589203827718406666837005220409133354035907958271871550259530123169501976557214101955440389901939995769298325782191456348736342639663217491887874521156477873011026744848575091893361386842807640681699175437400230248241619203769364526147730354605528241010032409169596183643340159892570565676576574776090953742550290266768794370712956546929519051928203710864470181379925013208471898360620001278678366717106019246986599118647814941014195565079826443278820308957525199928005025065356012432061977073842304687831163527660699439787135914178735220924473773837692024747600111094850244160282463315933272952688837449606956933419075490971021911353711263295315988493827534047111139108631639418990896412412007562919793816304515048078689049150380943613179844430234766358097365541381914936782184682536087910147034591866630374497893387532855272147979139660144595515590444987403335304805013800041167769607476284630808969319146121069646817096176062273776242388320059350755860337620670956528814654908039302905731255965578642789220005365364223800307403365687504799375131659728218721869259554625961810230980501585054371646394380067940844995334782121258664644743592207281119031671703063944260053950598954423757385708720885378963246215242739304888267453294204152905992963143289781835565125006046665635045795722175136318773645395585139622971371542833030408866303394087556355369705080317626013125032387781544768782499767499627692154424615537141740713075990046611121089750262218704783844500172654665736115931772875672520367037165407821819004150523752953842951261191430178468707188398296308554227946451530430530276291030436659983925096805188921561201625815810551419495046965895032732518680912499321394078587841464673050749614885786835342684849545900874823506369514531183042394516813049175259647885959717180150105964243286613590205782374278616841938207659907431727133624457051634687538692663143533749450512182116772628142923118532287916519608465592463293626478642295065574880072349134619703251482926841950258567849826180057104025912821744800921059915030874183424755821266489090882267238569508779778927774202472365875956020750375999897493822851922533756452713002912456706987070935925481137542544640713354145800868658004706880775382998233314163152383729718575650319338734418592830975242608414735358868151890779717782654661686106477867818533295821974146400072685509722712471224646375897960787052358382710184643481504423712955267505732011607236393927686248764714807112269473880681048547008544145781966610907929064110878718637860118819462049991737025452687382003204983162356314265288511057281058258633824252057987798323972018010815158101223941672912991090152917979351796739188068147232616965691650621360287597701740685167176601903849169849600655827811320554597973756611603042193131051891119042857859573517864388868836451696834567057682513536950746660583489770310249460498094493541323657840495223291689722687221289408185565325071529029223830611338098790420123971633119266812787266794357573652019082113144285823758887055837297039721132130903817350585153487758137825688684323445872182128279031586677419808440684794522023671294255733706857182408791806701837410656839520802824570186983166487578952550767911994735392054979274364546861937205073677703577823271135785059022731398069298079666559126508836568648528959967317832989892454813379718744899250648785409060517745652989273064313737086709828432584160069869876946361985035758766720095721467192522255991165448852817923470736014548347542280831650748890311892324121569624681270764572327262891850954317752886675421387922738259643126391678691382475105479630902818275931716074818891497367975092628252014538082148031474065387602011270974946294986443692450261771745946568727953067661965360496308982959418816884725425223123739487207610498723182534200539662939008162948491566206086959165614083568996120032780433909780385859500082925018198082333634913970507803091331119139428408171241331308441898238607522905218358350570978060395312281613464974096322745237175787730518660146480962280521054884509580414050284120910352204143976933340740743698500850530662367155430093960519404137551213113806997714810600515239873098749393142630317226107619988116229349615673088904493098237552750238525890999368390346179459790245208962100369701075704752950005670182544135239206190424202773127109554316973514456943095869945336395808656832419068738012505901206065222500525923725860378068715067564265331034537619093199466606423230489970021249154674992676274843432684180573918422589989630098789693329225061173334872784253970228842273552907779235021179022860578205065410434732883036780026975296378550856373128147729083178703835217184238083061809441964874086527773978971203655075769648380614029587463779632637154695033730603350675145101601150724403773056131706184595876917617928116669542475976998566921048354004432975433719816689851309551095912608914611484322324753293905373458930105592458811351332954040118713608483900049404701867500905360089429404681087219743917674580682833136482621571268241840797669352561002830468798523898014719924967651677154875953475772270978639916097323255580504358523907696732549720658735166247643822759094284544269069543453119501455808902233118613935798678123772997010054493970365679198773222189429993902276397574126835028298568050606532139992854667520814143570836546704261243970724803622467568849760281107244540519399109440156888507865171516088821369741938274896943378950297608975088522465716878039886372233988145752148866879286591901904552671229331292088044812702548024555665901615219238579686645124324797671483614954353350042664698655084231082451092022375275542460094549537075673835084610233684570485992378288863059814167174582795531953893222093984212524383373736816101713949599186927408287939937364901302632882925455695796394012285981356386311866844586285741146257778629502163170153788297505969155717011969915613445407892013467928602004401313205603929765941625260394372128338484416232956422237556357426546199877182407045269576647335524867098554511400010130592801773433051554294578271615808635022314400534229328058711993726749959187920270536637589651653709252133267574568447618017506601474306357928196227281301486556745404711556214082935644422398286193362864963533622158724164964356338281282505346273509266850489222185874040450890370791247918133887064123208949891039638181297140669482143484829569923179614548865579247095196331793811286684849869957718071605403021912812162512916468844547317919491557974827002566597083234235437997039594317719811928543190948886296631469154828752227569145538115699400059139362799809445790295160018292201066817922489210017468915936873566704693300498474271956451246195809106839668261773410230168385597269093158024235055450775745461018777057413224109922481781188593670681841708572451777328526541359149118963080844750872181041989336838162633725134596492068203214583336511744087606862365873549152922561608824096812970775137191989733144646147011504401502220362582060317949970777625812232283949387735319275769812115844047464713675974910813236316183732123729214221824840294358621131009129308132841661839635221911528730092686883428861822018795008062109290347382697030627843060531381715508862640237553632718845497306568306024222171919373838558240765669544843593093233229377816482063421450130570296027449376413924892666563874051184310776493449101902879505138884477965347858136911264612964284242146102819971664586904632001945208251682480103046850919230987859319723684860068798926002856335710955418050349140755039288351105128375377144226707662495682608261385641628991886802520929012872431147591944455077357047999629077471616850429039046352594197996358465900694976419955340015710429875954510606844177010345032793954723041474777571435165130965734399716554753863868224405897531662148834311124295686561554043758024079188752529774168296633028536835715113702131395771091524612486627983904168997815003256294516435956449351741181582085509902453119026442584736186031024090313672454454348691495364269913975536739205698668584215480806438721638309523759156201930821836862730036213405620164638714301834293351183384694825644204022111921339527963724796943433175541834413391493044204165854266090761667990275599624244401633966693843211037620616825260522516345410758242546838249033512151199658387347094654260804150586864557217159388042868403733958205576416268823092370788921682568650969900699819979839711257684023948869536266952662764677539420082942052536099712569935553448156994774916171553187366897414929821778527316687755360142156518565923032921679564430682694245530926746184247673367831009432760009858443540103538303458489180661965093231223821436620930083734714466857107000078351938360046751269403677139762645213146064524842747936777070519032568644722943644169200690736207564929079678870531086920135182831420450965387874376607105772902794267467190829223129725750649744910027283075293188500248159806637736341815210699982049046931066023045405662377288762033334579301482408276089942485137286607939455891213033472319010184311278968485940895643746825045365084265024145091659929851241707866548804463511832717335733370168987133467210320406331271018173523501041907699954109204036575768742146952259282455336856436948966185667946053382522943485418996425673200227041514555855241273721578618625957123018237066253776094683830864335987656799238602451684178761598401135070866503035314554294811695768707318756169898181093460422830508358706084050942947451390363747709974063541856817361309083492841310120246870106302781747222957529647536139484004720980820734863754975141346505564947821570744372112697376177673312208818371516325855940456808693251942280973575688066646552280691722994098535029122939985929114561364977820441951835524433526350968996745731928187596617426753486510754910806759039183854288443998913046746929148851802676375026250938489193502852453659115723349558818999877808730426984452072509374979976002231730709173915798648926710779149436553142969709414261122892750049102982329326098985250769785731749308035060362471862362743740043557660698199473958102998918499625235308123758994512574271963349209618620993811765044821799100386418832279567742233273524442828233649465952003727371668177525444714756186923531539569103875889956504603083486053337873504625012585825753601492476718711468844975875936818239650627954024128419645856105466338457338737882676199308479637210749194116924863468791314103412275674822273369710642697338620352689991228982354555376210230245072038424730345610425315778042228438310949463326339713394772237778731562163549561337629658886713856588634543796177796034287116486878691079106966549334421565351445515902225955050336294537467479106542282457167507253177310850332069360211625754392610873566456277004573416616880902616832177771112929456153445972501580406019694735266733023320201540913224958499248669673400021509233632346681394526284548058429120158319671566735099403645447686716195925729824044783995572100943572069632568251183240711472038436738315774773931996090288301398653950255967850096832165621241856078829911872587410955830173176090499393628144432155861077174291007773435570697596853497105393757467565760198203224941438038380054313919373755342925607466508837493674847922343204033095129616456731857744776390362460655684007263819909587734403644346881706894578581733053226227311450136958117164986359884329895446532015597294372450788411169213616952533196626669844729115239285988168518223958412053889833564133833104788776845469907903396357082197434909118876576685159266787890308001267602554456858237833383355559841617723173118238065805289187621713299638027997068772705440846367107636852792924389074736181759381120019322900864827569720397690735436120200847973392857906288442752842037898047002735829165804866799603706239348771662684057749333096244568533143308917584213534209335496145976859907479807695333390574469582084974804565699718340038332806927580008576309782356562509882686425785893550035931383484225413468971976661979087122743535227041708951752662608562220346196699927319716414844308749581747905264085489481414521689542420716389734577332827340698815587531953770345758211418260569907019199462322931171331537103981566142541244467817619785479795711427642735336188606219139053771373476540065024757539973006489774399097982736593719738275480634047260383264399152576011691900272595260618349513153023300917383145339076152683183880813028306809042244645909398446597184975895612358361522494079263033692436875032934447965403310119341400248996777107015383952540251762347371117917292081486849965418631296506680189595808796828636982151644569633458966142657340556415510491223020549661256832139400991131929445152221503794086863330166697908018121933807805137742010276028282797654532151113873789133342620090111581490163295658505052184665832772793162117460789910344421003558031933470400915731333062614728255755602194419553789831168140240909715924105691180163774151455523315674866347572243743313587796841223266744395757534868384857289215804218895537993857031718921533729114018944075266014092164247882061073306829658422653316755336795432537473361635429208405849030034278769560583408591207458210267059589444845567045065460976512381965291747814414963474001030779207008597171602484679163186911078028247438906987094382298179538615988731389749906097254022724190028467083552168843845326800792606390782233415674681224832441563695066884076817718622501432782296947078963043044969944759960651463924240748065531776850745079718676871688451882179672543642616463444790481833433312692979437618667228898020573654002062180100559122063933687748771070796982258559287931905576421937269954355152369846629297326028694191009941632800176252147145934827269945163062418292942436680233233330437561911336712209205757657586148370545072962879494108214488912721296052011896978619648545250841375840926839597397419986187476361207641359240584575683615691641488216405177009314235037974243811411512131902969430675644582708777502974915501934322855361294859325339741589637454336079019701804941779133458766404706489006708545649093550198470224408761134654869919482677465098917744052070648097794283857220469303842437207491508171554102847740839689302670745349375064029066420345838911473551400014802472605491766038932936061894341212116115746630502771985894302030355341557687474262170348070901595582811630309273774479018458874455723196277281046985556454144441904366993120495439149745587167834582084183539016551213347828210093924511072996881145357848768539169972064520448409259969468149023536430051333209539155184819198086640211482354560595362214519178244616742499534780056582523440335225440498975354675014363011280991771797576935592014307458304498576826433903261790547466845222054725107945906133333314951763338516353102769350734233011706604562849952336457791025518706833568142097523441677093957552609226593684041451984563203640617223912342567492544183128100422295713166724629808858563910772856802174311827060207120818243045987016193713271868278044094493283268798382505782969139784929500723716448280565437802332746518274222118978431556321144806969898435500352404050910733032455685945048763293211194063854473827794530060399634389589878263028513155248395788651522462052863899505707190494316093422401376837552098134139906736050448393446686010422434996111147506131500640357896437776168723955013321566034718937186093948607999242996938856690749406129033623103872864588332901922262400813910202481373646436685363453651179899521709733165145895082624004130060655713909137738097404030017259848383736742409240934071740679568486239679964741004534161014682921723108261649789803603148170859750769779083464434186071402830085303402227128543141644659786487027632766092201403058357990253790318019906958044245664129950908738198958633653404791849271485685585685058481733976902774714958951559455511624176143971772990969470502080738616297909268743599085957034908755040332532031589392753466450118079868035530026165572009109237124857184502950205075681103202843622467718558635537936840985165104252707606933717351278229269208840898071478598963809826949493009894669513765970132654455972356464522771830183137232954163160627527508347435888578246240825638380655059837541182280408135488257910398198414104830719515607855279659922704601835808430385614780146585171547433265660275702498828567912726378250252142193763774323084968621408539631129893402437767248049899916230648311414161569176293205768872562118260082077727886155208344083041362534424568699684687132955585724029968738578662210867208097591194287503234903138093512044099501647856037361560342506084968967443476506429394618593968225603836189467427008074114099752859263500322724110052015193681344201592771268474659525606682039497721446281345050438426415065262503606347811406529368587164293505868645639743760295540363731185417709643924954391770222450050062961565104913156941371784139798506144004708426211907295331444235258711855216176921345489881114866292481255992558348554411708116566585076746503104934587379851979712991389681304372677326952398157643205536583940777849251534427084376291375541243989535039815528150145677361523133252115186728153973633218244641745803862355946078295203518006471002491620987951029102820587807752179101894173919087127776162504232789876004849967612114943503234922000409883438809650290099960351812388271445416381704542030640396583894245348641334579546447613492804546234696298679465516048301520654150779538059114170137743485207694690369283676724722288474268510326142952421850646325560431813883647945911841449169911086699277807496505740559905115708297908807527498317287741612871940335013282913816245355614644437717454369459000953931188227074961129158784010348694266205238402576000353724815266136078984235727004665656244845031327314666041536446247408338623400539755384644432519847551441325072409310166742778434844453949480026027686176342440005273974695197344855922918828508513166437632725169326185103087789113897770117098101078216269762936593664698854451846823858024131256022794647785249731052604732014041982163226425277295278264407432232963373076227536127434398316754882090028078119605495484764775076324705088653192659239784058297016541502214268733570656865198837633507745733793790147492311513968544373882708657509753051184286606024754079695812713646214307092386171156789434255386590034403146298863350056898596955747670911794442612562579107254699705060728749578475102296175100273023333977953669132450366207325287138250068855802300009752699707401958586134991462058931503220544098909027932710169512555285551092913782055843375262598450001012495581258684668318487370596932498820490000450363323857538159890585998074169842741185878812506234822013721365662789678660417287639322387213733422990046507570775089882462272261620627081928296590969213051701874215644458183902275028043022788461889556343096292178112815858585951920125323561422697617244280980021431789974363808877337143096382564883285992389880140482512197660942223543450491268924603054412872338325663065461432613330553547517160177836467322502257852956669578358649431916896631354521165553737296909701123663013174643522012199212174937454054970929382632663214196866010256559903554688865591577886704951069764361234138844058997433938750358841968473561590708055662458873118264530260493525836409380476784893974845657660449464182335989920323276414058073653976365404308349549030193129842695687214923866115408389168802569456164204928757704130730725465443643917128332364068924764061638785241370607864025189237311477026513558905391369942716066772377905164759313781713888175827967059294355247449261700341784052569670463945450336684948788992642195613936661272677105681220213281282682589307076875474683591729838562926030338703243240738346475690109286252318006611477669632170931412541813602800178364723289437908832997031912200422301094228425439996096358457926601403477166161177251652971711626192595773738476308303830140872730801358253679461874626954624444018142481518121367010747903684444356038252511844317330598972427582700377702772066984401093115008224918675683873253831464505234861642573459092698492633118397453760009698073064563584568005744512485847480989816897954428474494938265503482222070001688011046073790252557229792924545639006598197741048860464334491319121014797729991813178076537570739319118840671228817015860435576456428666581558749737594440972623806249838295563612311970408407550472820948647866024399047499540395838839726149378070804358133578728542197155816079628328623785382622211968027145286042241421493470342486715335378987125344161188984408618308452142453953623786920327432744957033249576016133826187499034718994979951369864955349157442054439686859781023154077629905989893870219788379915313921932669621914881418217433298726467948477076789076691270150350467893884976885037987395265597147216989706381834978851256221263778314718212286461456646891838486300972867569584441197796024141974883440122610334835426835871982252905111999653111642793906156673766170357397762500777073859330870279082083484956137007121806030551178310763855956884237586682756425261387404623822973732741727961783420146085994988390668193930691541372060910872674267034781446369692367404192828009670673303039156318815030938476263583696847631577576732422842326285113537024077670583746696481445724722947590396493492297175130387064873432019311706644097872978337025652780117269952231933126220725706250307398946375454304967414025560265985019478640816300242799744966648027033144890097561768548940045603797947106028141248093321579013118906404501637173671913969560901258806029791625129325287488644561164015015315044895032023859087116314829849224917040254053432247244586302425974122242221589562545534593686166661659002935207035230931624934222098777251849409859254899584816118228189488172082875376364549384179825893616954904739456394356905793583829929299804265636751245339764674552398691526087967036948763515890285217555271011770115917458101257427136619276076106333732233939952404620154541715136698778855543961273526859823293926559363304511229254015284685059638468431312941606807876537712332388633384145715575975797611092314468226211586322619516746752503754117546404006807823274375856613493731028675379499209243938348255974590380490166834308511931186967480257875301194290959410445688942966141843912490029066743276735728642787435999627540213875554505993830747902884973553127468037842810358764892729139007603059301940825385954223488534056109360674651841117724174526643006997759143638052685916127411734656861364725145193244339769673744490911827694718741604126754950015225001887286688613865836928975444763354818647692147365557655137269010476453061921673682066973518336662316158838769240141881278391442132100168733458898365743518983700108598070356741439813891710569266111783084575903244469794050946681083949998233049562305746483215615150089250658869107680803004273362867930622791984608063297284621622195752718547826045135432375566404468535513909831179044522366350894109722435308115172012978887450557854079685741104766749430927482923882356734906506883346423902128013714246793769522089896532014329218009161066448634675849826483819256709611532066013165718067360637184260489664486077037179559697190532390782058214740053765543389558054003145207175380468037968544068268444233471077299268705671022549647677597754104877508832302573807259834793240752817931585088684628057543729171646033860621985146794655323341013886820962295484634333349933387848930441691442589125161346752477133393469439830737104652735905638237177672128576505639962524670670033030861938800490242175762156771565472947660941693651483893881031052800039390781634605009689933983391940993607549623427071350582658786151078561595818344866556412922557495685614828636244537115823519943736081970898355762353772785641364543290090648018379291728365918173887318084659822455056909725625364692092265788787848804195112255202091168642611859560474942842372569214345117112223215319376301104364734748980631194817043320351332665232719908184781579304357367958769070432501586521479739509881794982927015266338106422048506210561018491401652661682386457732387737777149315742952941650190436748781321453665812988710629340773543249585046707866111289057666285522843577188423959660734480683184385187452992812482064489948810867961745953165153863881935401374219845563155142362367593085273734102952406193243971553597742960505648741242415763146291237254152506724263830394588173839758488226710225989387752956289694663364987800722330199334750888427400390222870062494514030244451489807440851466321866093189110893719384688359093415128051097603033126814566075918528075371716476836333110157994686476464701385105940116364405094133628434309209710030649569944151675761488038399437780339393812231423429986084478408474923223209298187214087125023904183061198748279916291564524194758714527869723653468642838661685774546079369334808488189552808602147974849977338353676557182217826994485381443984596461210992302108100951836821893438986497845081983438615034061334504232138431930082540998002472071711436682987243294753533184559027207571933422003155611795368931590087486541481433938445160695144137422852608705319378174242988906057407371779703165800386630523460642138754947367858164475470219808668156129702475875525150284339977713915205336323094941886300167077245554878382267592046620674301028096046528685249924537719835247434504382314827922936376007200124498479208710666237669201312708519568332227942532117789062534905498596554077241203589324532880125336251525163501002652598740426071838217173819361340581865496840563921770972879975422351789194016767058087803281522159614775590603946382705529902839473412438703730394252089475386626961786394699016883565509761113952683621554984273240121476538299749256272745800580717208222630833203557284661121361630732489971922744951701150011184900278132105681130274091685853287744142725349738399260061949269651441264647303337374603057758904769611783920272658398785016727334490894587913318805165379104982970365526334688814301474820500343182223330254759414060071494618832241901744500608076948818946888945830496107223876609328067036989307925840311615401372043487164308929761356280217268597556455140025957848688703588347682758560580853153609501481930831894016959713575942760261498781084927373254562482886085516268100980276371099427937796998943027298321401505085984717333684964021566661922654180308303418868894854308001442462563505381328775162655957439955870876880175399901650728136270815103022954899702050738150285111274198217743811962372887855928837777601908970407290911497627440706351562317041968691648238198360585077681909299643255060841840495389991430378305933841265711478781527227092994497503448783568137833053985549020420523882526338264882043600088200173648295859266825436128863222280650983880741744320508316700678701146722994059695356484362363848378110116200758841011602418780302531540078272229673004992675037661043546319444242679816777928528801492893130424480312796333859440876776396080381334584828238227753455712555693737908369344419660178374812399873143752101032363910108348385696850812299245877715110745334259540932460617954862998135400889281695212460749771702422868963016928366213557315619889315959025115012271143139988468795343609032822809980590681937723886835589345162333101955365220393118778743693526994380103841421985924796492030234758321898602201627849626010755311468265162317888001826100786462858927027998254180209245162406650784053331917036955007350433714571142943766086671855697952284894341404816108057497108308139275346524516493341326217028335148997706601775832158223081555084197432958673371401419753101135164127855781016439264589059843175749240095377112012698480901574623542931695646102634867876532769184938297007346240290824391304779519845541536050120704801778396209423427765029902189654830345600014727648273559685263130519064413400650107507267473736398034939817570084619473636019800048526876673243631791513248745932992938280548756512048465144305880572817712962788104698450150613041244586221646197296785562770479181711853797138876146765091028977316981974967086198716055889718973773881674143099202383462715244261950767702189756209615410932397208608256806457234055313177520113533503901663096934085045299895780440474081021877060308541897868965670698516467396879033107864406136436268679763109840592105019411933559922563738948328113115273387095725794129846467112904854316167573279555253629730172989131056396063955980399134470851188911892591102956509869111091735758837018896524453856789671252377120696251108313431950389890689312181347619836090898328033618224302606487878869430702776984436815610349666234213397717647988004818408802300839773240167948415249995333264677834149890254173211958225517948024552982454987305988124037978096202566695899463757332245055505943140729875131891450987236827290667434822290500770367666326136910660474027705914826325358766373452569881595807748135645335544740391574071453283301092662795630899803744530060304085387708241604735134334893075301908263605372301806613179421024261282371667997882188830971754249455800242917736081229622329519640701556663912079391719736124816728824598406645138778520493107485254194474305643459439021796034894478480386318279009817796864362049937555729777901062048341437118575015786275499192280294086095394202844825332336974745783593760708645992180404735993522952306153474972349461968704533373681544714988219276443383346093284251204856442140546111312835950801901737245939880173542465165880308141113477293740258612397965318580659523294666313624383788153606573213348500402362941684129512008909749960186669953907036456871601267013950018797513145596519006048341760188064968396681462315295694193063862235607731044581669060645887021170415225116699565440148790663142021263697848918112519801224090449954607007063026074296446812050764690999176262217891154477352578785608507675323808148995346256229476284619134800018871898590288877952571929067145624168482003971229813571968000217260813365568387870982558322725341903198789936250754658610327470220481916017743541239100284682769958890202704933523991417647519217799998868413728178098860246468668927591390202755953501232086915798295113710157785733833057892433346174685344369636495698472303041943210410075078778677087121130948276122141460303180801915638536993158033646031135190726984850881594592378151045381641510761662093055513631587841490810054114734253420286060877051003936453979784478351239965575495308009943712462807123660958643284906241450802170993170902900091579632786807389842158922684821962205774533636156989810536951556060307478358366286721585318263338708588798949522511373868900910085750608573188564460106512704563550942902937512666127965784728059354943669468668083110472012647500927644177398306117521018902743273787672684187710408767410677859727279942906618875457348130748289585336157979948447004321610308188860126642770681574674328734033390743595553262078731457589811809036901864655775873290373962866394293657390690630512687931572839834711122378486773086538464375527333885055579480410179896308167710232562970627857846011954900523460878534083118262325732565868327096967809518145071151904448452423441298185748773577721340921286195603851302147863392718011741729796984243054983213200774793912117157173461819144853426008722411445948064964691809419319538317951620945408618784983866079199957792590960673937814002563191063717774607990765463471391090402863412604254361460602336822029665714368171858987703871102496932230550977450899095031357393457378230427430874861530537267913450218885661702260967827196876457816194961115271922994545891282938876639322546901970992833768948290071461630212005342168103872875324952220690031734505269931807027250149670810038357004269012943361529387811605414279872327876213017744151227061558302239893473362898196554789422223963683490506855245988762868850685468542069433243726734912993932728842028103628490361118820124395743918419860490567507955261007617814711027404240556900962080006543737944107722791291566896136917521384050094318815276757710573256803709583598274175318364883137041720606704960070810808061063113284756071890281047410882097914247086474174995559004466419364854536855209522745229177709637240894763392377846216397417371851315659016452364555210067802330523226359161910567126636741433303267246297685243111551881770890454826557677183134771558567674613668921548136173837880822134062969455771580344360995750191441627166355020756012760285444952597486557267694132990671296344249804969081668647779637992772685372227982516510427339115146978277228301715598331419640909119447048278941222833579017832103288405002573392680423709791370439579943038286452659494976443437825125655270600101745059343328457230953976476548649531103592824166997785833645344325086808216704600133863171277063271023272132212445345538091201431193965019785634829911068952189364921344530349633773364246632466224484198599531664403762199724496007939594219001822980519267607342432753948269393425250797302072178234141338614978140956189948755979006843381495852281519791027402411421891747797089680351948941975713936543061961588540065401106497084214344604758726881117172855351184305063499838595228541398551119514575368482009541058515562331487037474452539269622616791754497444505851187996276890794851068121273516967688143963225896967038963910307443027692343583816058899493365694540131129439917046263094040364950592499913336168514706739075549081160184935582815336737613751573323904050466224847892014218258007482946332102872694536280843637011301276370322282464516607579228374565942062667242172470731427639714212612302609007170989894549598058642453186115567822935055300112873518263193417745698983606606037985294658736404160183795480079957882256954177320716555397647036423712006414755512665135654356448066206987542862219960259985703390082541165570519159172787816505822418761950865288237834562524130377609020408811055511639850881858193200262955364442729880219157494976804534020396631614919081228955735607704905276076647115384552774589660645287304366273816954798772046657659518705663163197828137553525616051288684326841329467178316294560236440244920755745061342484251211818052119368572392785813478145409589049885931417903441332875204943464439538150389006738734841808276268596912312419936094817848336255799726025572117472196094878924101138630003356844214208763191092456668348394373140459147875386819820961451611188845379727182525714685344261665735613274354246651491486450582441284536197773158612074683133526082729350586078870784721595988315487079321900163476294492688139006888102728767463791045973935733126934945257480516201813887128104118209581458552930127540301953014392730411860746077930340834347060821590030407669979086924347524810708723418745231970163905050182252146610867504403665431611714238820312421204508650794226496547641289969097329184839115515835175456754529422355541070410297536237945021730200186342236212973620631144112129249026157022353018238313082093746720528508554463664408959711116395589480569753484497334884366077828525359546238425735280817516791820816339484083702308208603427126426567180309574866230412339114026857315426621035678121143069318528599441793433359965489112085872074067113460819563721866784776743728302294989372862888226454837396426270982054997877647261359776265228973999464896541935436637721791299731250305109110684266635648359558548972657527925293154209830332711610050000808904634794361054182586393146783035919332428081517311491732660059520653721231026988736324133188797628880133615102041499946453049993207114500362392341696143721248457441590921125051367944656650190208688905443267447110160700216372964233820092845060081563755809173186882146480464590723786267063568644445450119608031912898620171406733441404107757855322316263597463650975469382912016273564810581897674920560286649394662039457393398837346331352780315404090202268811232380085607930080455852288832507991180990420934527925201870647412210309984607285297845833455885241079456954171198272056125436822186916510053985920760194206807735365738540689584757011540430299668128141567395416977769879775210933064395938653621316375686542147644792373162627729786670857129505382852252552656291978182922578953382381126206737830799807225672239099301083884156898341911864812999839276289426362621743890541315271853101304959792725060407106359405567987401897440197882475640109128000185812872869408842210188444727792732975751550250680853562513421808358360600534394372712000752034595648227049405937524686260991896929343969449795688741868160652531834280293839001935925990265466913384442418338207029510168098150352926077643229233783810128248010898160247187461011362552631606069154461631797887531417732580795132155521700711771574386858808776157509603431394273110594858434514486851362659839711840658275335359319315476488872823052607563235398914053739945928982921759032556976712918948714600826827437973342213272358447393587528040450692925198625354524247370187949170128534106606534215705281429460177954980410082984046988773867273908621798011119043121810952549410427948633693282738026113268918789973455073449291385347642173868444853809055020777949000798971936544979294976233144038311320140391094981291669844801769142008558571999266151406532837766958053121020375550749660186843378182353024944444273841528699561227019980668440293043004597990771200809611958448933663498364769745845334168154195340022987419043248409529329274944903055056273904812340150163199315588448371009451448930908776606663070309246418237174808406911947523284206138141512863169377808760950240667556972906774300967814587519789123024528060902955847171656053520455652047265032353997155763931402784136691058638838388265137562377149009911863046043091576901389279541441539175828207688703469741405583984260844444687799621681621722793936954141904712486164568764057774775591289634840925546196373827487235979030860734305636444591381886493017117599064171393895407474367799139472320586193301777738376885176131696625920199957116073384594778404377188368946382207834007907569457119093594721594954199700365435169869714334186997342369476186392355106849595121531883182758637083020377431215618471797149152274231323817626582464632118705673900487834793048879874463112742967100148123439339501639625865343663839951638370127832997052933144478308326620752870629231179617132357584513606144574396737723566428434703723118408002565789872009494996802643996871848422421377099177535332004761454190502805699211762932731474236558445782496632413737310174584707892793655884756509313971395605093892057728897592214245564023865656317264884345100994574574320110141444858353921947652860817185886955357640926775346073428512725559547599875364765925610395652347206136029190948341300529007596064163489143121444016471047557758675568070911583739307284087919186314146472612268145243486201573794397289832167276944921011326452543601973990348209986919200175302107720448732847183619585082351175026905797021883356085004896872177248977519694418584364976702585862225675186100420551240829908760892312602146575892454803130476039891011838905224749349094826930824531521284444730617849015441453914297413789524446090953687052665642245019597091835007438893981220025380006444908159498730567203912304371959463942027479522146766848293428700382828534398773542389411491083517729523981678599243764627232803261555676412625437204801952746422148802984869697123440611431215592099939453786715172614154136365933606080183211567108796327432890905198586385489317322985688295320445466875306039707003324034611797261518519659705363040587094215214931574513859055319220996450465762404936497142870686267628372744024027103405561913420609469911210381168056371826224373944134820051853138319425332950401781993509788596731081979596839332969799181367161272076610636410853893320780872457425463175531412730320234265470638960741257077463202081142485628404186713141283076894327948032507104750768057318567751994505486490313646241139125998079632750363036564606531066842125028152178874027779550789951735384401426231493132612377403672998149018795814740584078889113163089952198904927944276441617972760126061028643882249327722061413587669915327197007644919360859684997326829128230922314318481644326974463002185643468159595857109920579751547732079331727735982996102140074975850360355585893082436791476687762843625122523597377412227790085662436455069232041245303521207349139463775233688724633622918222228542497205601832935668506552598541305431051318191591625160997234956579053270326608387908032970115045854985740094297160086488908938456904652071553076198544145058246486540782701517492734125375155727295646011477982293793639824647158230128958237665320287542256325453851832395946796843081186092528007959673521279444510755661388864837213407177968382463001876733962633730150464130480999496926211165194291046086069583798835785318802399995058641811036645340642942156980336786705973177376230468790584676043808345186982032622896770506959870132193587810797721368611174291878773181983770942570392295200908410527844121181035423053293668029716773862288652999445479975490761911940420307069148034815324068414970463808162088777637501721107084373102036381223409109063425042079602236946286210013722946504506787208890977301833809742197030144684699057076206436117321158633852558358222859232688330258237529856569763052687396597942410960949342113925180094397106868480127553931304454940080064398259540125198918802888132082808966961305402051145381517591323114005789843340129735884773551061607792446599536693165877345354436173012397464794680366235814257835682484685348308901902031061177095088675635007981752727582916385033869254561337341018785281812167506090765316037519520394811278308223002441556805241808817787740770766892255509158253542856935564416329048632844101590801457669890425564283649980696754707208863266922785145625528748351094549512308871471368529315146979437040036754539212065440704896481271914526801092484221895330648325773272146255974116700615895752309498552324988571911589822443732279374161799474760978808012623604857554984524654144389364148684605679795792274664239951530661723760690720884441865379448909527798637828494685653096268222631760107135116629503158963802691858231132502280729471677060293007419997851331687425109074795290783073130813594658382183216386001785442210371267223913340504550066259883641602937542567830693802477403493133671110453442327853868266807154671914353131791007797505921768017566671367864271686339714245668822209419573799523937631144425592924346089063445440835705235027585400659614845611100097537015886450406668193416214660423753842294874930920881750585430581788459173549916587722013053652292443226843786349502809236148269246853876096591739360593041396692593129190843165264911706944970291703953647225923276000963070257984185132917643795003951262491837979617799077775196258914443217691899271534977313748511335642728379209320255360590685110396907942431631608555854027640773653309709446993533789251583949268114816606900630785631288869869445631512747913302897535212582026082555012601155923755098262100049859736961451110909217747523484080048513298696782375372680912228132089860007781425390101015327356361335629017368150867976304479270786003636146660233417120356412523065174944173010966285262933786042967991190857421667559315231895215148398711088680683873089125444088328267866513786462137076488173796510528388203043681526209111311409507974522055961184292156934140692756967341565556257320961477487631055665339083242653187362442966903631726313272094667968596751243933741461357424559835812435771059522774339545691322727416823455231342029810144377158463326799686320943806618343078653838905300798516643299870830292743745079829288862037937793992007640984224361908201840668426744639578202533411746832263059599466755340063789341888625318134894375670356375591992534602973851513545712050202619012627143853495861119514300844831831834625792972907765545464255467559788073530708442515678309288904147993504047345547395379719742730872586173665954788703175084441535716593356733573300640333006595838005386537490369530302523131917005669400441317523457796506347041344281005781351774708801037556121603642432671779337278374009699300639487483425851835749528086361244498403607793930196021985780211648914350926669418401895143164934456432076229233437328699665533813336869670818219723306522943810568569924036063469882131260694959095111131241475393253626516631804461899870884260413862490028985871713211673939572259411538474486464574926341325727013404948427359973819797605324976875258819681954909506777675389335735060160051970022175400236190148267338123668310773104779075256843880934844306658362223148222456612177923707851669577322241388894599005618578404728703858252036544393708236131347991327586255694910345554567620350124126362230118981185158750169288396908275395622921066906527731734793055315181844712637751947598314040384629118288715587918486754356902849910853535263545992494269568331707197677347763554395669472202086298687372017111398615220571027559877997587490545324545169420248114178216230096267465254170592168717255296271605682860204011883581241768277582040506134880814759818612629565673045917416737144814499120113260670380241667576954495203510783717931787932180036609149465996257147839543283985612108548816371521188834509408748718943590777502523609119372838404844099573093857159253667231507777853587686050381306352274849784968404009561777192274934507495460582224386578321771530198184735491726991786064474648737244742699659624759336140090556510509839048631802455702253002649413068216559280709577835678287034333176958521660297856208385381490746857097100420626166906206664724983353518261541510730410765911262392636778334031555749059264028909793520333889910528532024281968329370269168031398698880908287386230081097354227435267094645060263220841760751529050771746680555929674247016587218736972939056638168593776178754584028343790492788860928123610475823757475524062336173306265892126136917096546970874456883758941039010116292777993465581265580696250405456977898796918969313395888462505167307860071304995473798385536599970378056792583999812916315855011311269476512189588514297168998583555694340495188541147534591161682048059774619194996451007178179978253725494412734876396966043446563093660193418410711445048026009234465140124023549790628377504855016354047801360108090739330099680960247034224555831989406878628938602128080691070128267985642425302512199202319131872246619077085915878571338959220998851921086006906932869555257745910812870858216861048799981973805241426195080998960872135344682782953268977737643745960004919075518952526624183046642533007408597224288873161712899559415804634255666580135428546310023245177126063069542037786145030373873248296379713925123692046452224570083565715084502510478772247378519025215402541194876435940254961049169704091406685162953004293688728345231333308040491930668252117328797617202491572717820936449174340428859242117733107067894892809253018265498937673876489223533375891866628302925533785513233758996668731145933828325890883856137853267507330100081228827694163274683678582014470528705925145723007746882370384235282698804610414366282036650795555761834870804152124654214019116783015141601135075249813749166199243337742610009918779000215048068115784318461043355994981358900877257357057093062550543214365223579589181718579491597706670795851970507430440545612841862143685433884990704378805183757810286259611345833587570332057769881409503100861496486867789484716971495940654090720030643864142738549205516498837528668894584666166180223013567702874646300523447439866932758850330987946860025280274937813240741008234171359143889578242050705776035129380826641521134854596776999331428333556027562103102914900083075307950584754704333325571298125737009933904346362348678252009476901091715852537791017471768535469526271249098476458074348796618851608104224656431453822214720000949413210211906913349711940153271847962393967117818725162652808172795642453599785023707507300072378536585685095906075839528455908017605864355718330817043114110067562854304842590877853232037532662791190879528784211118648374427166179537611770867587353098961232967227991716868990732775585165527500314966572036767052796037587010961555514787802777964406558441564987558091211503288366730721641266679281522481542667284496434917538216978585170574166400073152903900314050150991893835544179640085881608281273967150987761647457272687930000280831134318075384617754500075531858693643409354402359052536724961179331687381824926623182215422683884556271786144861759298689125494241650042288337357605426468352452086733665782161368017786944855285994576046958042949911842574244873440384450013836783995574719606963993916006405581574076483809260552640326080039179287718285621301341715882821201791122934431533590616809714491482388914395756889365474103775832607171275359621944005805423704057737474359578027362040647002308905334469490407322481418130970750514281089273922555957477145487112493017816284351829290754564741928164899887517228089993125344885363260426043160474893221992848691623861234402835898827615789624226946770236599171705096072145566110821139140664894171402049172777412469877887569993201581494475532202630088092173822833147758858847336566352197118215456098603840813308128262839498752758590466914571845541172235904656336124385456580570425515086796103956657601413474839223791676465594717023897789905294656420231635251449837970149382009378242318974361010713531522768860981712434171377908512451346353089238966041934152054735872876086565173437840079003358359350087217550653102150723810318173060994639195040049321369947460953255428166405090933889846044260387623254101281551426504271593604547783228219532191349674093567405573956470306561838891450439290355452491088344692315088041723267067793242305411844416862817835800981488734291908784016175978287655711442209322859772448963000318776169090302947768481416605246685808406927392142316413101479964922270143322421166938845863920178606004476141508056338928954452518606042201072240551642523587210569193456819787386338570905733314054415104831228342630871054682792208101908649327553805377429725508561785923123252874983875375563717663797023135331309559845497439813710333760309231460468874182513148157544952372888566421733935011984587285706547886302885151439754207074000597162522699872954553533600799399678201741770570694954018562050444611611665439196338006386538616595999596623519118537138925683585756693767679810469020144157973545928296793771600263859250309273166019078439329532856511411340314771264787162606485684764543831715663362471642959057521494514048494272883766100958629336748736092531950658005035807826429965166239533284325278980226181674701143576926911381093908404435881636369107109705137418819765705859327699235438610469293194919853063255081611053126624862451912353357997608350582902542349244879675103839015323706549419133721288484286933894280563940762545273742698022039022382695098078250741563054492111769775075422939461153327164230221822106456664554459021673919590103567716231414584574659827744719817375022860507977166868843196951272282755054121087537381051908982442393996954536260361692519544328119199612911911279935029562257135591296119789505622337979542859250214466746178704069739680774964552673920421627634914603518289512684932242083886899955143944271684251358705653858718059504551493862186916788052726041628097107726441787501823886281802605334293206901968535599417625061540381045245275094991288773704675255996905908761371600061735322480651513437620969454231219596935476905222017041907884569918548737569637053534365487173296564516946128698952467619453101914298125131493502409209741913792144984423512605369773612482019208811512156281892008431258993845620649717097470517016315285868700231308570808745313019089268678757184207060061357465550382663589540989451350812877812811721844352548218518473474406488495065444035837383643275065791060675421682612570689259148578534679675482969233692005901654732458699850192790210631710729470047576700653967263514203661640806148080670584751744196216737570031335920750519199074396302401546130580578008584728429489346137296263931947146857611425569633452395552141021608928813546549470308034591838585197860366455972241479391148998129594455138007798951584348823789088613902935711097884870603301804865428636235110685638611149000581447770216102789161351027555991625499008769071051436913495074585381895964022244787695312140234191812228634840981999987497966282061981304773186489855992378353818432918260170881668195250372074477862642706238422824806056938518495765416101491081559740156596528757719181456070993677005201315196914328267679397163799613092391382482699736238711633954739821587591438649556098742695066910977371139521581758094626770661637397317427366954509305532795360184553582822930055564339642183199740778261671296768732532561618890210058385407847955543397966374928356418236983171693775914783613414461407821995583105020358843509875526289666408732362436282421205477196205417822934483665942441829603720032083542151832833045864666028114625961972455791582049803869631416957837874037197597969755647229137519291306043545080142847429124355380754046884630431987981530682821997007483786351281741922226665250788105772798582016843270062477994981173948999891602363660467666473519486760201629209775115494112422395198743446230283986479616504400741936279432783433825753363848095239160445530855123932733279062763804913705175404912083360460746356108345680980131234844633814847251910114858210534450765972813739915098895036911888177789556145318267036113577352776641211148235900577620118980776785188538088242135148429095262850475585826253919170750702862679783350562240876311368126264053826222640335666341554401240204611607541989837400145285808389021471343127796026846166406068982182497324101756963949251489973831449621101296794273786765886756230839721047013843459511305189048572423079327325756974891687259595356100552037095226799830977756145010592426705445311286037302558710660857128293873682081065186987397075003030062102187854640061132112275631577121247408177510041486539256297512990908566539799729044252194636652624391235173067819296191368077663619231827873534699085168852629522118424768967925440321198413636289975973321389167652611323082031825176272188585533741997116669516760932255974077118625780993531388304181863714003009036623816160662785345527083383703245704530574582599424061518827500620183284128743405871164921494422064468645211848880336527957029155793369107377582372765990779731791595521602427491538006128878400682866105629511629101206222432264809566734979211570672589227744187240687213983701075479312273277460650123544777139324001629284474094235765846149349148343420796422772134932628693444345278046087825360216249521868088196185740588544816876615377975814824173428412223556741902939998083045267388139228697971120864189763299717873794796157697398887896567443036932579102950845390748078359875917761277633411752186347986038630808047218374160997153513921613575585627944669681607702382654595524382265055281790055331023414137604570191636214431749740994540586002645159448569923945035202140322239320007524268524482746873224539058212546853477418393273601890190242674171038672206317741254248027711057845663580597152280575755487910637435966587327839307778409461900648399404405387245128948629834550208264752821984709185841614867822148704330831401576221444752511139175347784858141271090920904200644825931480969437342343402909779178573221439401577642548052434889357148047701273921743933049573990991648831690698567932656722969871819246896469748884094527157467390666465215115595984170723085203679700336281735680648176262524432487413696225789015277619143215148549891865328819666480014193449483915785145353696149511614096792917256487001497150710499703883116695476709452171407072842397137773252067766886644297278211911896236403359450100681452152252642077399100975689681980011692132420028249262582976933837285278792567390937406054141654736443876207750117695715507134168197613347877478244686906594938600632756910266404181730284133355456610822619382180408946731913378573521665287307287797864398481270649014294016309087302326208761173304691135310039958502523503619552498273685019991621427795705945924281615896003892734759604120309730611746817033347880173532535925260434638739403910911009038471050953594019487115829182142955272587297630227618298214494483598089793074844755825861300867327960102391539423546095624056470725725287469606080746187738914202064078618151597795377689371547817929105783870369715104612683017410411073164501075311306241010560677232123209232906617342839481224976416889701302931765033344563861913596810964069228793942597401090972010781726527521314662762519198607413037136834572086148580803587036851197594416868821268017644366980917288416948888462895685718622267067990004010383644437142450055077487424568276791197435144917707378149959677775612396631733631149313124767168649639753689727490229338752461823373193001878388815925307666504627608222568386597443249787125328186838752331491238233182349585734338512241575644845270077521877665432518210398859108530378042596849115980228807128055200563625346955536736443456012560537014218146080086403152529130404602631935771215365752862977014555232439456901128381292469650636380761234261515391219804320945049644355553915551855033132923484069214748696057785454884392910254552233804002434299329964012233561352149517931960127033210129169325696939057335950725065152600961219960119413346106091218086212086833141431138700164194228465997469491178780592249412445704268112096586058832519294011882614251975759255640353401970649984887608813220051801622069449840674839033188783979414136295623619586420269789554815015728206105549719575612080476094355094459442859545648901594215218165660115660764211655204864945174004652519672865342770682221233813839226224711210389948252717877125253071844769219312463031296513127935968793646454585858478445054975267482771118813442434983616443153348394029886616045861201507494335104716578852528105043361805588628757986587174205667571548470221017142588176376840129528363206941282060533116023024951939465522838930615500038235923896001890179899506625458715254344696349505765710839518342098273421651713171143431620818592220645645693683314498123390873348881967268101254109431187124727617036921218648443072318913226878148349677296479110730064404017993143592013212456759303614379125552886807753503558162654292600279162569187210805811026401045336800889349990900954652826221547385644920249148892833205574952927567325666050953986168876084059740033020740732592738170196298520813386614474624132796995497157887113887575393355463523801508223010368077974000559817752331816530055451299542245203263659758696834050388405000303854782532366969315245246775967638473245169801357553239096632138952140458674238406418102666540922845350222170686576576506142502605855233960150136732396241530196925413399133950941805105358510390404393834120372002228633193819116305853974958520235820583261847771494575868392808592981243607897584092834241231013816151566179580646256940728075524172264099670700247735248969362359230556542678829071400320875189425853763661338430695180534371783594186955486196202640613179636773825711746615764975208603118421726768898461189080977794128251377949811230194743595554417147040646256972394972498008508036664251361064994281409132996043335116991798897534803479579548064645023366526005232727614376491188309948474219654154933731836012082263283841593549117675656827448075432303569883801793645803501106724877887156908009178661549550034455971858564742944859644029743027631709744966833911220791688096029098606388559860476376590803568697317127621523551855522000620115673327902249710970729761684013628593083673174402585527727812543130533459846636126330496606535798076694118356832068594828145842178686782066603878394791727249419604097934504446732685798874006236727198977790378717923205465092315746094601540254116682237612125008781675089923909533876478216329898000628934403382832584314986449108295054738786236064637857373486160013675637164148014715220465734786191288168544854416594801801589745937202426284873291050105912991450396574791344734608278399515745878500269436175943457287242577223728193231958727267782752946222856477040591159583985008381970618732293296539671796415465641752382743652691825249073971215035712112748737121646616069943883722818794531666470241910698876923646585562269831314911727868316819707682354993376943088610193683868941831614367657958358848989487180558872806556731173183686602423925537303597365736376459147502448471128264868417836702574462397988267268816996932724059670544055774416558339381947236304867160919108540228070046822766446439832494777857839011162581681991896602267012486013245593483055061811562540748932226289939167771055232450663393787088828077884397870191818093013768541210597209332944043651406082186137644306781080126214313074421340094201218462432832158939312409911683853025641891558376827155495713486108641828402688154893172941436829583494330973435769982394874002555032621565679256830402040209415996636005120779780815183535481665742759900190136932235398169110471023697748568297466583273241628269659542333881087577865303107237153015834484587888249818649883831105735457708016011904950179406385813203879950101029240586324666923892491867130929423409236177331313228531399059370816426208891839827964302666377684159046337500114192555144833153750358096317237833126915267659941833346039217628586011869869162961443547258639398894449231431847165020827244930089191700097300853862583934351279052118635231700592193723570719932382818027077488462447849457050768005939858126794802410982342818666297510767517011082487877541905593283138164592122870638865627684046336154565302170519606063193025717216268568720760793586153434159066838938534995514659286765263443929774798282761519337174891282966705698932598984804327760387386493773337229876103442114098667379636809537814790965889653892091677677630445671987987482861450827684596320073895188755159295219738805947169523113779220238182597664321296460802330551916017450339836230872059736502132176085032120076042389719688223284885138127171230340266733074769639095888387512428913714829554769437452149158236002341809785067914203202136128397420397420617118572205150996281422565325432753931218886174278145168332016973195240052992102803777565312786556044588410472231482811820522432111075760564600307125995187369094017969255075715155439898265942237412276799695628904734931392409403142882878091630009423964326495357625817990315877440180778044640452602983307426083363623100496862365925470901032639115711281586751311351624944482460734855327052855477386591288712539916025292760826477578892429831894821500230398590927093291382428280022234350006947251694511874567844838811863357113656676107043910824391725158380778941555358981442776250260645716811880297037581446339076984104568516129185381257819392639392368201751950513531743490173579737423123074971965753574048730701513792485018605063561652461934544647878327972517215507279688332706437662317778369838247136303104111509573866856604646218742845197239827845008051849219614535787530963736027605105260832071317981831807109580167618386726744298749710040430074279734384204027800170024640965753007663425582860288558923644400332718837503612297164434274563463502117115623921919979460156602179573259748976926618026105516103737352343461146987035523331937597761285897792961521775932293997015198141222625785570344192271613163989204571895993424392297465962905487985262100215198011564158392331585135804017533205837887532801510777273454893656372065499235802520891445506416713236140852707973434706820087055271913591676677463690092241562062614409777376309825050997892257720544267601540553581339968200894168441925803405246821477316282403001436611037607671844693791212068206021067473757235656909677046047952749386356562008524890266871033951738307240361393718093320309901701405719243054995602572397555182032113831109166895092517404022593330755657152926342694602776179253093189177986000131026028953370640382999719300483606062602087045308630647896551572948179791958456265877682861577081522312626419500331846840147312715389841082956738268627560233377040931047081855610404399001605959306349070261243217224673014589384983363210575363451441664346087376600484589067679050686824923109709162779672025244673964426835375051570197732058317168158599499831079021655667775428548010485582100934961745781659704725048619645500819751458584559848033414675508925485777349799733629994646328297968944576549354743470186818913542444818423757190679826386901052664669019072121896035283091819602187756351536663676037178027420521729139048380688232336426163628391001390717056586315821318236194272845041285353749011299333465507685988743910250153076926331391436482026966966416655684297009104919061033183510499342334958914545205893994437489460237767105847992600399828781010957704003633821060266177045823137419938752136259120320118124122264311419600147281690834447836953287606401712465803079001436724801514741700334684096525880930533731287516582189315442095075820250725602889411566249484787032734251790844126902838178695664759604276762118206082270985270417904090650999071543534697888440796082927186987667654861364990841472468177991110805548022467148562080648250362064065409395649692564063498729608758183519453823278559714985701640176261127329369596608027490876734468408768563654622567976979602935081035962996638565695882695117648022775688433896206689203857288045198660735390886161502672997415076360614577142376646730909455091420818605957163186260207743741848823965386276678269023338410823704797046540535093235873643316035989374653064845048526008536210758698496283417587949418415775074960316254406909880639328256628064525435393441257681832129917228744144120041575604708776161678494825292332399275652146759147805733963046937808361744570425229920254001733255383629009094965541213149534799036895189698662054519188264410665768785792020070000872615912072372000386457136808339806486191015590057090635832329502793415685900514254738365210873088706674821124661302529042286213568612954314737504699867404176229899696426946593437764753722354443230148167777094172652666300084327106632844238518058739030595811381021451684122410196238544661251817560250341748685240247742766381407124708612296230845978300720039788135662782147830373020790340558039037582587928469430820735692377723194197523188111144355943319476175279534924591917942385112144150413879786511254650386513933182291073259654109915129858976047949983580807414014833265741314668570847937265058407494192480944610560052963265260265859067220460908781966442652787381521170776235110521964371638751808491892078029194148518062668115495363698232297693318526265911836715255272306540700363574185879241491407574591358179462597715866372456756968549080334566135518151843195937632899351976899416999349633930436208756410031363925961609253464368070529976325693890847626241766300966099270444528335469462574080535897485836465018675724866213233758644954608780102498715614267428909502297154991194110501876362156380794770164271215862715025017082609223744775138883120155958972310218432634808067743744484447440560744163251102838246103288890926170906947290056450558437966216378177438750824600800488077005910205354194157469966249014426846069430135045233326916276086989476766603411338833130414547830444754845086417132658831135977739296932234150713093818525856811433404562582534092407651630615303870369137801950960546528008968307462231578518205475972419641227737647875174623755436311651374183215468276287307832555984307064293177834351367287035066278088736744362035889593066396840649802010984747760011513466501534726803108363717105983647372369935149741008850008808169455991549648169524065137306165055178439229582479950712187189727922087585859678520631059578721098257138843283608911636118763525364838624660486866114439461072762006343854734636668242236589291531056709645112389694383917596438737250647766988957946760905897457709227248495100055845548398510091361173680021599467143600895458137527901789868930935700386771485704277964574540573392546495672796994501595035367625361872608068710445531046245172520987723190047225073047764643921090661994725278452767975359925921671051187646672445422322753216704988124577379429323466189806902692589145406670350937061640491370851942574451399327671864257313790663275976286245804372309646297920346202495913400114817888436757520280529034511686626021472191553662078522959426637809726968694272097799516683403976145564960019730552984186936335846256404384415636341383885974750288069295982403685122639547951670011169462396266908125074932118618887623822214268047720191900241706847103906141206152458393441385293606363888531592533733410114504838262125564328649491977658131341604035264672364887991971291648519706050199619283350902413704573853832345347837271664853968470764817875990026973520177687258651820499668406591885895476049453617913284784742702122429260132154625018095065168644769041902151020791023610065818288842247366677749303995572274700431754536878867589958009913223339092577519699113564240113565646268002857739834622266603192025487078574703622320299568149428517610694937167724100904364453921799526577864678553656392809490198637389194304931855335921684389487491549744627333871539136403953242906855517348780951590886223218263839270393912557523104826448667873560178947461445496539068312527668141105052528470638731145115067048471393980829066227859326264003871253484275786153441233197065603962442441691923894944386816275575969142427319573537354084820251880531965546862223295625596557098278095520759055336548022429144253286852104111938442034246058266303319498628784359278091615467964733843874633617584690856424524506883103526812201115568070007875223805304216392437729918518716904361755470715716440816726275311259754226985963891768272792774232335907846883088293926290806761125223036419397275370419318571119781905683514028554658567267181391993204563147815377097416143153195539422815716814227205031699499502741865766762501833102454994551762696061995234884023192708965713275671129758462467865708965279726020153371348600142401560630740858095703731386669264891694093195142842736907622601567826612267748006261539577484238872098021018514996841110955930176930569159648387658430920511967095380676857536918513313735782512831242609576720736296941399779942385384974228801337421153391914838431794418854813290373027053471217728700087291207318445013726210076951644075423988492328684773176616473685384257172975280664835392695472749039576327407999171730107043984715937546222290805147087639528467736177321262244631964038005368181750877677323830008187927364053393428834050965408432775194482853452290339863570499361888775387183414634527763771858812369413543759679584895575779566100050799637448134809657993096007203712049324939542284134429465001878715379958644337775158870866559801898255021120806838297673535440231322435673995163609588921719913408979380583069121686189575185083112662373883919052442532319643486312498069651526193657097902301130707266314255791705166360684997204107636772377904131195919342409697000340518298391884593924048067139524606945125944711046133862562964676987140803637794659956817709520892342315082547200548138806039058846155882138399265122088271154778692529666823821552364505518708056875623581253351708818332080181885199699227696595458623326873629533776739201399165277891704315766612894286825670955226642283359752377084622080027395425654751465076002602311302210351907266884749814373388446473247378042650956660831082154053288394470039640807494240513340083006167964265615215124862811485357631899209734783166471761437992872498885210748896164432112795346233912259646524612520704850751354415725417795830606528573753812539714921587177970741908236852985617124581826304000883056159039018295054825211258809402030230673451357101548941963035955434018210235734141126435486745192751927626346451610615916041442215358462425175052658456449807010211730714841445330598402601299478057684441568405989457024726502251769699122413881527623230122929240390055478677384647714140598437050235181952525667057651981821448768666111440138512342029759638318108816554567999123318062955816560393388785505242467893036332063782763418488665259154069662202214195302885983660554593581034404312385311345929094074333090745683464312509214812042848097203486489881287664714832434979553310215544863611433192592533608507661697563244757874018572933056327036528585513929011708155649821772862393587711797190457704959677371276635901793414971823038598714256801165057298836520912931105225337706204060664335192857066966994000295749030912552825368759856524307970328428082812284467008808245910204266759437805408693792396253519162563053046415202232158288020548678823157636338164407481655849101720441521114662918746680344408981619254976380289508714951110437721270298746880301536748821470391881899315619143106472106326706968106479765452496523971109634281360326163879033579766857617154480952623431871375091017784220774086126452577960821139458568284940117459154758809278213719267534844719656930879209361166534858027450161117449720765870115129441699664482688190093200861598287145535008911945740746844827333952991362325042966944935889831012304448020187769764658815013178472835531030041749805737769233276278640025211485167824752437622870008186102054436855864157613316966082359657986162980539921075840938684983103521446316253048889316897252609562986094155771625917524149271625872728703813947144535018413974866973676716314134241587480756258579768206957088243025085726797077897045806835820369084350230900298725130695098387436687188358321656941599235357786010924576321234813307856910873816677071413561873258180708573757374007693071415663561848496198680295018867911587388341098255680459412743885761408678948676924761292710496139056608917271304028739127870351116569677188620723826914390548415322728818231210888692626580063598234762496338697056069874271611999024145176533582820516363402689749713145193597694073747959728156494587519267648934564883591689665936191701099205290133956776452140440692234116620448341402777179795486830888741305365041496025590533366686638031470093711596541369158211647658140420575336877836751781572986193373868858012539033838835228709783950976821544015500583959869991259773720619551037508349161276201137351787694296526482068027727008564424154397101823364692009629854321948393000672899550070552776782872076431505268947027138378017033650662449117431808072304881663498080978695199167917379161448964065108527282128192722274975378266231383853532446207731707124573434213928464151136165214247478705308248352273055571002584113016776497052590077989553253441022471298091971713425648858661657708075737496700673179661293497872448012575679961663024846848272128953888938323382620199973815211629531848200600149543882776809988690584136336530021722467344517012276041956176957348598516088779185887411427153630503740666768139145350226059829386111197892375986926001947393509177771664349551980256827264651005628716994588307436585362324605845019321973268602000799601112862659115797143874128909526223383955718970865996985431965826528034607972606299056590467676685942495283397339519074393892643924414806635664758019155730257156248881382594850063450785000287020301170426893485615349542062050381295907626281105721640576062432258158393575658584994323355897500986383460992964761260181076220358270049025458418207881872205008734433510917726321502384105744768685969283809647876243090922819267492596248129065875186244181013279431016459203864750076067479183875767558329274004617995105637293638415921883290228620341258451778689953886158796741366464916623778248085290682741910604892815028111402903691478403970777849024359734329806043521133728176027703584713824419874297384545938184501348634652754444585359093638639811654184840734910420535610406141013204842046312411407927689723259236381783312202030201949986320446036819560317793524436250975973201481322932286187032196837697481557485463332870443121006136437952449726654443523077990656056948785773078093169441449644696892072149755394990568205229758421499358465495642548741979728285618249626310357460813242283425746271126539612899251001805906635819288523870415391490961924192920395861465870733246973095574928425296645822074069535298745196575491253929747840253641841426922611949456885026286055566728584245797874536406740211266963146603677935278648705736449235118873779442971602221880591155995549456204508777682446235237086987086241385635289555117390750629587183918134583308263533194317824039895200154210938885827071065129524065765002312874568736294315752353666472033840839323352764303755702653196748695768720027549482020085272806866884206166225432199699683690729996214929597716629080056184408022992097917149468602737713195726271511331161311673491994112861360555759890127507502283867007892932319547201315927829958640016201814444377817589889854821670135757260128415649940023374041257527784760608443743803281286024819395557403335461876006362385613600820452964625371865672289648004637131101468745619562762644455048310255388787016405299720155451568254161777824988999630072277097376624399862180266971352674440433432605604655770496668570132650131668549137157088944274012202429591726536718665441224926125701624330352687287584611033107135685259041578673162951906567297170775789195655499169525027770894259821558593731390451825002286125556661506858800950920351540398354191470768465705081855579945545045507623016912250968467549563582613253624917888921793670540341230718775715018444166373592980441907596569563971612959202070873748020452761556274649376906233741909072239680855758087845553464068266448645662618767966115409066434601053026816558734111722371510798687355968470184301182680317955982408058241876516141934561264732261763730280206134406339028470517940614333582661332920574188879341879850868267874796152937903611538393274852533909139742491563485382853720343785632967791843583966811814780455304703952028620425400546777847407514579776312155616183598291177911800716519276666279401711069626795371444908317599216172191963193761309228170449139844042391583777592900208613367342054333872373212261912390869775487694178821225420079158983508772501043515681657006754726382865096096182189260835488543761421635727152182054878943040091757836889477208014822720736225741976704184281983574656646480096105273655959413788035517112083942985345828097899959177602451991045952442682394415383991540609832411438014154709799551919360576647487072149533860023245666198297502542560615932454801966122037819027294632144877770757274963055736438666522822194832843069995745760149470369152261875016664380099436901225931163352113294551029871431663668572068841609654598119489424776454611838129240649417336534429355997350438087773198280108124592270478360015387348107209564868847115333671560275559419862870714450029606830887912078938792853540369357581494722318404757348014801014322117327808106756460395155080622636437718528452638659585306979610319502724973296717589696139414561823339779025813735171985994914681947057482381369882626434077504489410316882133214684146696160555072167605639740229931644070368423618433251386707064453942886869998195052166818029594748829951139654098387888123781922246313197217926842650204362294356625293777311751185134271472434555275783218636239620818726409142124520048378734033964440881099443628398806017997926886518710519662501527115775868159498959181670712047946378955442120847567779945685177951437541229063303419146329048630200192762902835446137187596742376863178555910913126235716448075828610969039248658873099813595568086247461145261270380431736909638353935868013129918407666645919680927662455669349268725196721264841128191565564746494299155876978262639182986764825031409294344975658190604087528640231811324897512303883272384814120991339874236209004574162310954908305442379182839544773968789712791316203361552941325487827513215167749053883991365599467593380708618972786153718229163607699318195157854844036543456941373718947764398307910624425008019140941554201398125402466709163122448354033405257469854322075201187453618136833620313348499964863521035820081738844701926822044843082658968156535904799803699792540704595402539549339782389060402426559988234258690326784677758946952461796532639832559512043063250270661244626718736267630341126045670721410394773831413787404245985117503079059577490508814031930464072492046425609626449170093952802965719194467722299560900585068946736628828098149668873402371692394342463658017850580283310240572576377269812059871822252571758312677966411503524972050132853179722974674432086430697880511788217998593180300064333184940635198831055887519733076157544724981354656847444237714148166555523228920995546342939317529057671542405997313881345116344822312371968444497593310927898464607615845879040425019355217385758760403402694774593761616459515945716513889596517759985462772977606581202142607522898459685669023029816699911199496724489153340542670415526253841813299920871417318142765708379236109435207819965111723058779619278084336818124431318890834961988878976809201246634950920680715979108384763798488642954332613869792155049700319107588043723682325326552095952911242660471194943093358476381499628071824260018692682787244920580259847304124812243086007374111653282127022420007342864126692965946695438334438554559034700707102312099879079506834852895312308498276557339893389428350946158728918583645559237618948021980164959088156034316339097547902763894848941499710789397984594089786123866261398983637088018024412982237935931610325592306552583798199912810127868064359516264938474084131278727485422702945692586855523789458070746300328518142936289246667052471175812555113500136812511947193249228139481137423440663213969395390927233816363738623962918966759606341862374095634866728146256078418404343091610763139816525008616486093406098490059805621313102576400455477423771228174762793112891106191706228792868966000511273322525199914549219327772268716793387597922410661728300784547160712392229037539855291995915428663612054871689091611402670922099986364733109220132021165215026704234994147059898968160014175666073517708009751752548913730623546404643210962919231027832553046019014435531793760882804234027139425538968998066158998770117239672991446385674803646648621773078561015734598696267806013801805574868689245719983999839703704494352086496183391233473595336392505108730194146932809308902486168401444432188317274999958397149696736683170854200260210369624008920512110858855829360140586334673630280786228168199140307529583851454389921581630703745890170053550257203023176762205543061133304217361104787122977252176813477352932558572275898117904104659679689770749229333234167983551115761257641500140245567425596700084762269658253343044621039208900504178496406493603910770273594161218099891198740398629280243084889574055428703242935952570632566610729890672725913590558689442620359994796640118911244666566866745162200399481840076251266193457731675125053298050665747720798798120786382694567490634774150312435634475038609442691734229678795883619460999828365955901925534614315271146195333569499209290687590947358361472470219674873157877731034778826746651233918580872336552060078442416900438839151321317438255490196600041925707889440821801289105296137853262087771234307594727988494130810068323419817235557158034378883554331889340735029941249273345626067632823613762541213367767777897234210775512569843055706506973774356225690436781720797255169582732241703323035815319048765201350044930672313103982535848069927122849666939606284994692819025874322952498147713780916313601809876659642884267583328802046723968504909536066030085076833300263830363960571934814933100588417057113524968979084749497435490696263227258973263818185294777358980853736777596235718873042510244824792111364703910482244162347243144748416271216508091825995200773913645500066942812457572588171882752199080240984864101881806869754180111289066595768067506662394939124988230235699367740639973030085238150029067846178231625560500800279911726078507031402274308009915341173152292437777397934866761083996066325080943855250204729026412466625920534107464476847407974476743951631932125746714052272137048085008120698687509851310121851089724646861957146234129355858124120161046286821082424511322405286402232881697396648433345476242756261201936329214242273859058458163684263599861758167904022650230824473337813629025663793639080369031093867236654051248634206858896480944770835722655151074923301350203843621808945237533604053463604663092988832844647579743277179003244810240024501873063664494713885820624178541251900436265668067832662128042890259091930175811255892158133908433844721172956605343193611668535285582432042299870776527464166849384045782607347514850619635910349546647666808497155144387748477200478493167277299047961434168067418666624532343247770698237037153269736919792690710842016864045569972250569448415747003162639977543812144925265396766510074412531860369429823996938968958900668551013350157407036380130864267161986431689409106176024905114642570255561300125751321895007030038343705932726830104375427874169335627744177047666296095788698393869697049208910077707661692206225538895751929850606154883698995337754121800651639427142423435215477643742168862099926949676608265101080363702193958482323128976851162343322347173719514515785163815688400742947620384245528615601490633469200289598257394791236043329278010439164720374325686938580455269144894553063271261275167035882614749863953374317753245592361231231571659884502674646087498506008270126060175036172199309154360354855015203018858197106528569867984372585094804670439250292824089860547881901875503987939059571768252991344291542061165704451235412469613910175748972964142447760457506299557768002629807925186976284390101555314981360979660596722162229819886254099411362785003790771702286212849309586008294244529376806978490342673487500595859484819838984815962920076604460780275693286026390407478733702346150773071445419843492438929327670344320270471892684851302392552602048436080110725452549584527227132092917763354703552461209881174878108682001918330632415221992276729472458606313543107397768123991066784426803667362177301186887859967384283632865004285132544761327540929322262860666899288659438234019933974399864164140202948609829936620061916434912521165002201458617738091825432784420291825755527127308402888744638638795125416013090792525423146345055994858893143939252783610805910107608020700369452815500540330552778708136736438599086555917183078002144235633359201766833664151422861404971321471975527370323536447439754948737222917990034833875040483382061989658441615695611079832461016224863207971158911715753715622180663130093442589561597120189627120610943498522479613069836356098986600930598708427526777528323938178077463106784065821068064214463116681654275766860643164519676424498075181691602178274701935974878714443402660266631214107915491836326518501685415908006298924635933226777552665246556550818980080822960063624037010940595383288288572569318637172734064200995986274707432040077217306283420880689421678539943155801799760033589176039335146952591780652864883923110912212054360602742235425479924785092041490394806240918998155646829811911259147387038646507467210134684744036352045125186394695763857842622312520484748292709822500327561878796411590305332789418146613679549248852147962140256223677263476106972383598020878253348929550432424641250439816601904070129861807103972719261084665696001954238081184403358368469157595554240592760107934195972686674964406094344333352926487251021302477935928280479226943423980532812531536034219422519366503025855155038034551509355529139282382951316991219975422467114473157324947691810147010861960801857931690720969849479135054325592394546361452521241234308413259850950623534198883655962757331702823618143484312775221418411366208388942070578117670866096854557288119277505395509851534475580333025520135337230225317256589417149916529955640458159314787019221492909334679897398829052599449094551947738586248368665559383021224468962336460233671937771879185938305413352986988475054813753850307210172954781878082327997083565713111875943578300389181878764360084102603885030769000543424256194641682335803143092909912432099521689824433467771518330324599091803993705975437807217421947412307830102792877508100170588552239143107973693632575820239230174908669045333731067946450490525487782592416205259520975830425644827500731729322943250481690575073663286620667964728273499564520815046613461406871830412692581592283390286600616416000679726558068052739285661219611189719666755474401796873019747871918171696112359444009387860768269960414598464646608577758451113677544857498623305417870102941099306877873239533325884185152976797655302225557928690943484521666952128484442255559664095109265109991443383340869327333744868338056576526827685968002793457595197654485261932137435069264106046944392905774479177130334047843463540193870568672111947774569483136282754308721435200921068505159167882632727961241815429683830979253379591325689329927256899561142635053084518614542970336663058008039396252082938199732489391078203948460755889776043047605561199268118967159302729282886150510414680143067482965124769005839895986771183923796279138623092071805605118619628301829538158635994517735187279927740192464964292263465468145275724206997178074260191110270895540706792909221918163579627833293732563863625155521405757548953775328458160522629191276473510333177134537057551150217239915006488260370095554908916852952925264531880572247250180211508568853873655257800973797253943675087594174177168792570911576781192819791059622607509880946700185677361542156436564691352903571717157647189909555357611416698418748155370388622475495649241405000241341520224571446948950252561560269592622421433854832883891825435807493558189323693864218763425283648206848104198431184977519677579622281515401768417903140334272988211557892392188313554933032836763238311541957763820785992171722992434254227997306696635590918696139931894431516239431322324632733420322973176280813010998602731266233856320119754500753176740458052277808181713325634371598279133648150042452622158680623610281669158020636446390707013797268292934066340883454961797641581065784959091166358298424515321273551271608677477834518970349702963159134584978567919124750985383665420280330061823240774400039406776888796755160579904303425396485186907299355884276714710373960625132512997600563411093912721702472054827797313983059182526997098229499491043248126455930098273065053702337046091033347167298025486580270871324767429958190494199015588439399165545646610137055777504223464290919270205299941579123316868441939155273825071157380882629551835491564542738109021000102267279285341603093197591818542759067547574062960001786270274515613687748164033239027543572960950044924464277855026002865808465152527442018604435272029477179811987108893716123668322953452495766473967541898355591195449974113334144806259254513322995597273801830503448479160302090090618233642885262894352724879216418224262911040453461260574782281271250966441231619461471278503486207248632218342458702558270436447548399604182765071719645604825291452130116907674104505127010617236486980387683383948373563845538366560521430688429365502941651557743191296196881031292385801902000588322133200347102075211336568510031575459638252033322490749746001464471655606543875263153438228441595937060752318254805645549661535435768994790834955871617982587067346344098259206555097805245769296256679202158210133148958805508858308533021180025680038345892133360332057631728322717263536720105114711896288485397063460682926869901101484010192177330960094326786741411026820392651976194018037683162570848975431984020945548996274411690588549936370665679601143264047874175235706091136906584843295502891616137885547243328878105100174760934094251577242165635256416029283663497615551411745247865503036486529215914159236459526606139517797775992057328907719271460031825459993425575942149840883444126336573620260630908093258424354831914156263371253468915241889896974505416958355939732641988880758684756851625975951501242708996250071321854874498815706418577318917873880412709577880491091116341376556232396374128143676215103290795186786747896566732366206853714024584583020234417859123470341371295018596363550622025760224707318228925293351019135155908288437352585140041927031781636971829460008203590402079550250297701913908935565830362847760158250060109600985561230075572607227329221067968077090511836094420601856255065914354674628323214578008507185023574735585627559967560920740018208280663631402304967413758009960885414093112452526918516708202542177448812283841844012760483041251845958119137172599354370704505457305141755966515052150048107854898572340492590895789634612144885085050289609015021217929038729410857647863637995382350047831812226531748836422957163119573537433890259542488782603118990388896309349353460556743551396554127435475619682332131306479125154399200601715672367581354683773619294219828124468915157916128236232307289197872603437306434662913790041354736369567874480545636500633866183651816470276775554558978224421650744533928868621329916318454377730801052979432001771580382210216589529705772560511280038105665431533155158403285611205110671581869759689877144000099364635458935676075032234616190627525238651418170201965773087477896124919820997644031607268987760281193297173568510610138788114696767624575519448711438775704656680769547336056169985705655609272114674416318809183866001030935099938237554659648156671033535571212410324837205202881556577553398438276034247499490896428211062527604586791362801233856149785865025514305643179982220269990397101003599002087299002475286656691144401105022000005432254964848182923141981245733029400037521529135631089687028541771502776599508763696673570738105959126007153508967675855905880430749233727991578058500946029054293061666736749044962264274629963394005836494877536187407277917371370329809368009059293555866935915726242636300231047537128791642897090605054960437494512250058373865415803007000829320975986358276917853889927719088165722578837499443510162104221845658374873019474537557802387590246584061951559624295448026954236666234351374563873376680401160043560865291611168009038014730130223200739039909128375561954291331118634029077534877331491884085085729189771838596752692703564296614897752619785510206557629308574289397863677651171900987069229789806404495948350007906413841308689199758302027634502869230711161320839997772860767371630906675938147569436037477636617626736906060455201908036867875005121774249725705979451181255027685715721880552985232207063122124509456292787861816150019694263184952280825847899795130030619219144554934100981180903687052286801822180467041536967109294264303830572614607862307889038963032012512618537571519662277951873559169456491560101828604803884577500938547296330381707506741415043921287197731042633421467234425185204024711512844301546848481575683715855780808926157524434610825689623033903130908199043316475938442535528078936608740530441025437171137089228749695987551600133863967548357234164830800990244383013588602557573711470183220491463598609764924297990417000221393465936761863220102919893168953067910678777720862632277641643402794981402261302552777814101851208178258937774719212076098465064889227565514289671178534806474011170824351048779415604296150142529440118635171728467638599703263153855161990184436062003126765371835356338522649680821350587719273799807405234180426661607389673718096865807565600140441122586016305927447828277706895042421064159056667782760794259156923244349523156300798203875113133235960967527745867310790798684538900653975024011792280925993556568858624512135165567606873144829145736317390865549132232264459035718107789501226691831645473833942509152436155744473548608897506008046098148884186541590995573088739197707460704660711913063454658963026013205655023290388096663501074193347157274397126088205346214396160745286296340933376824855184039317972703519432342240835082356226354103155505813557793943469879937517731707463786969542006402147627443608678362869210640047395097337888125541234895258083110864922823919105899017173303318215645204645920191533262857039618197138388769325397611689690709994100048971858085720955017865208563212760647647878284849463090190168821117425928848454326974894591773392078945664801825797933881854424676359275607515225754827497272170650860583162533578023563125256757050983321168929158912917780462318186884196064106892425817911319796603498125852458059735953601398131136966819970925297513647049821411706852757757317914057199734834370552982181510525462360710605470007995479921396913787804826483218718857007782956771820329230548517027053452319033531239255218366268067750036155326609371793210764775938471286303610830811417569135095314072978123686850473088372959958733972875291182723186285468867364531585116910820046606004452892109354375647501549349347076313027867469066851295872414880148226323807954271888933991117142945213432900565475342432179014944332440415989800458662515679795982925207100330201596326915812758794599217401589407816101462940295107854190979662232491948811267744631982453794343440477628065955591665274528076551872292146960990268064623531394917350406988632715699003885577252195553898592669755691156417463164765840599581701979234752684403335189219231172497894916770047060508049123658479801338373043737333402409912569399808917247378009289217134815587587725740507312496708137603459919515572183866294939881728132522297166533411117757551110144777374210766836166534103044083278424447885340338012573190337775265744871330720375315675556032054578448593424738663354347490639159716506839144827606681704943677925627312342528901331240223838445057558447413704754631653665527672748807349708822371209323758949966806114181765854706489592345086398442902947954161494953005957760486281131398818772367634579531728222096398889773640297365791088967948119909995974785820288082283314058805107461136054208119226022598751859410538578137383304140483006331597987837537009336596304244244693261581084733286742100267194524838737791069851461918207273829988615838764744024480449819726784708201200106935178477964399012983921065606624659575229974358668480593638616012820214062195090069322793094213724898712665178659551176992181955631138691547659048466229413860522997720290228810083800295043414605097769274273846832446439762836545201288309559408317191806752248574511938109734006962388934470388776993081806269463661055267338004531429117193589980273777776247873526010510775728878838463728324264108476399503898097704828681641503554232394960480112808132634346831605100077247524937939727986021402407770614292837990364865027181284736043094049566756466859155147529176246556311774549661839607893836100067317329935899043956828021888431264921463646794989042738648459297079482202454845101644366089778419967702503626425100822943297791520856090310636238081120681013082854120956838540042797801054631145565148163095997267094293462664703823229970085929996386379143951644507652490073960632426246626957820257426286670588099613751112836360878005300524129333865954580508554757638840776744280801722778411638469560652712300943815115469191843094175624184011195035322748914645531987026722116857119253263887773032555461561021543168112793015344280557049001619923787398734460786894315680897980997747556721161366383410260321711118279829672780503808398028798333443639599132101535228233887419601714582064299460912009566841318948581270741719763790663681244850959742731019182689969721590731184323234919919556966813346637306571954841107483678891746253116247648781679947302011442379858914817346928213487295480646878516562936877884804393211014699872276014033970325201314871215139645317344209933037975815353852089608407542948626350561803044043985986713388078147074103989498864022702367544844258988398498328651524135923783256659205415169143169579434899469650263588680416514183476131022394613342684932738571415369709746624988070824653328544409256966743915695009999699936327638426752407004223391940094023415383835548264557718016370846343792164608979281345934230396425038474407342449476910658316089608212792648349865200769448223857378471646964442411364956269310458697604494147806550132463977943067029635389487803237618586530221248180817338426736528087702221817070677524288121323157142547033234294539313261324035081968085942338024467536038370817419130317510638964902812148978641049080413906261482227841021888518429535651838305874043015956362924399024922197760350250295375133205793797692715219812411459886011897243794490567410671452793030884588586691233261844352861387487048141161779383446089226662009657218368041210305300261539130902695770767758151643279696417258450436025546547244027615323264570348814748721662490524013037997663722692065037893417028806458783648754556171361478169833877836606549019894660673402062496864466718967257148242115792551441971231315786201110709665949724279169659017261536987956807933977901059989912327412624306404645544725195359187222322942342076908685827300039225623887358523920824684892201118602047393452490983194718633281894709555665024608128195112086080421095883783799590996939757084820969356089392819147365991069001541890801002592924439940377376692097034981113990930325092733044823385870231793235299464538849714467868571636057587663769726228369906454208090651722264533394872050350108722185424321646580107253502104199961948521285817579994546192952961087661891902509107499016447426547796368223151836428134169486593907649087928683701692803164075359166395498450658652294138817218154468761317472979636591702808560544991025876797204459537889429483497648464210584722662253579927250513223111731519166695166019560719508121160391453270474594049416827405742333171666239967069169347108351616314948312651137036248076083299506570499715087716113614652758280225340413840085153676834293058287696624958828132541579109339298142952592470415546066063927494089817819665143738273699030137463083906364242797701275947091487539864185791612959897281841525328949257624448739056252361399329518732246410041466262947504762186994437123832643780770184849927960005270894621512707253286536099685678582624091522141471399632436036002187642404076018637615517327239471893426134339286827932572305746546941446653765997263644421249376548041568636850856246871182641063690910854045541365062035072429935412023600433055847802114971859830031571606244161167641189780406657948779824058944863672208829728493594764339878195674954719297864370636545505540337982308784956922270379019569918691873308578461327801083305945997469411162105973443863806069872323735714335274996429815688426495411603488990980304487029821228480933954622269202704983837774219486457721300854001668101501187859863273675107312604501046048691068101642218031674545036193682439539145023899179169004858204479708432366400649144891993103903101876163072220998674950993119535790665411616956175812805039572741751333029301111643271371289067159786860720408241522884207656873922696041037027285666317209777082054016576121019921873706100971876165224674788398602427859958394216066438847946560412712768847185308663497738995170271124885979857258014354695685649895717805162465833952367207202694072526599622886248048170265615616134986215427361269423735629744964748796043859495051677350968985245503332784375041488461281847763801562410117933988097870195406867588735159706582978816414633859853293611685515608746143224677326818409493258163119478155995206713127866701254580941551800196265363377065484769297089301016413024768080770814241534707342393589293882976809161113586473398171114796315450832845285180369271651822669807288608975708992889956750585883728748382323391428682640499467045229372883361733895987667003617434692637823070735506014529872744137154625676840071402587292057828503612135876773732487122953321569868980799795049740309140915988431461788710381473379273521270240781575966598256410566849708771641416868251023800038283315140888608018900156331137613509669052476164143365793236454018773758214614173731322065489517564133983371793136288619026419470744983004565581678891871468086165970209998139502333173326769750304519640396063205207301811117081706555543696161253198170641649192707750764370559930424242721933333477503264835925107228729297240329430954587785918351221129540170969195736281722681264406464824751415414312267301377676314495128575189798538249431753668263750305976793393102601976626044787725123278041917427058602064088578564007643385786163044410442139429803999667309186307450498435279156380794399612445887006745597829148893125221641688921020030344981162474632603408750486109498375410243127085563135365619204019421731868769512792499081951581374443092375015965400728231341361022529043872143363201560220626914985936922231804522883436777147771102894707317583042006554733847619862777606684065890773119354640118658171271936475999522578620110978493424635365018344645013841086323984752918762002263639533418547971786213234781755632805325014393386810108363664541919276515558607287975952458951341079495131778569810374287936446804696586033119342656040486484735311766938333197554191417480517967437804372172499386011484838103844641663728731678059122920336280647668958997490859936537731831475345631003461044715348967320364711019144199886779043012137171339255289660377907660994969005807983640492729379100700604367782143852068688085412810475623977630010626471007929087974487658070498851348239903149100639458012641430097711014194683513043837404954184861156096539544709553920555320185984366951764640449810001221475612080653545581687645339217720334925164004954078324212280822682718284766128692769241430855089747507426107760067700355019534416482376356632493406041862956210175308605246283197217751478837082663174436150750497992357925997585358627008621977232101498456339647950684127644465213186998807453982614406072321684869016321683833953683134095060521728785024951265178033000389029753295719171708531081296625252470086032376343008108358560849332284157576903281367310914443365928202915745146050004737575287308990277683876914617191518539913862656236074297104348931491082183809227773270628357658417753257223645923994277139926970043680700286846010865179166908327889489596388813009418867237240893672308364148926417403017738306935686679431397502341545087854881693353273391025712843018604046949551932822622464727866862274806400510299196992950037361578599588203342010082024647092564448075068408194708117136109629091066178759699968763207457008128035017712533213445546333742935640043170328869167990551110521887563181572380255945087952014791582807748425070438109631016683657329248097459875580067194360093453681559337044163612650753427012762381874971479967300813027576491828835647596467892359696412179276003032116172835444764062929167194264618165673174432307842927317655006664470547488396493676039964096798310667267303107582959957327988255958591751724562049512294717364292212184044650615962603287069756905886872912790862107198685499411528451224227165965344617131529407996153004586675117128549376403875379133475908950932963169392362255384840394779077686271871071172317860880186647491893904725338605284548578290010832752815612746671619972328613799236874143233127278790922860327078427083603091209504913718607800848074257937831676486463977478819958143738564839101066710541501109709480983689149047130762686758072748563539628772243465915104218530320966340822180291721266829371215902938253729285290893681458496189702738580103411731534393308384231628438961223779707471557869588024855114209028960324800849602247247612754729028171350937049212027419376850670535784014276292076927000761223799999973577448953969312425192876589091059305751227167114218773158667865905035458618041012039759352044194960569615801200469052568510316985112128848295303420184400704073859010038564710753021920824156632182193279755874032995742423924743640001979184891958766803843545583917052509332523250038191414665616583115056964629782807729073759842794988884862702421465874084259743218362214037733609811450661538879856078964828917703295301960066038906250943109680753032466839603781470373238408845796976611986321502135919118029889154812812647056750097964743604398654913883229595885936222281659462331372360857302757561561236879030865381298456423894054488392804548164998874917890547314206253872179039922526994187254144528222217740213083023588288999040830913579716231303933611020895726096720799591866863807079451458372585312210142882035644320034541851946067433028148852924912601355001692629063913095426121786128554570976719131271111442257338417290964824475863786753435679899415392283657371739443128618975021423435644838465946814637168530628774060599097961738372462200450084089583642431482926366517520200691662696309410267676956123412862641550125983505413756266434833191146926931728082120746516461614729436662472173017806044534224850441213020533483358292970094439229904532467387551542427945773410366316723084176194499747185597891423840041648968415990351119877311186931714395019416291152584516839208658223479326557568225275587279537633675172005245027470117237616763330413363505222058872168375008085681633309252069256447417990315579591939236204283402129062475121092596611629201498443925308990931069876712279107548029782275171360948723156747623332761870580213697173122688534783261575535470728823138527623625616255462107914349467172662179672803031685469691167707475568126642463147251922498448921141927911361178092438210131104623715616649266226595012439945104036757508611477974458769216438146162098617987529196539538029340280854357280175454051639739286349754855485847527521539944832920825787404663601318513034328226593738277955444566294677186656725160541517178806679390007183843402248068114337880880543304417068758215375533393610058621998713649616279284840438064072440350785118764518696546349838010553072691723890083800690265920140561308035731127407771496651298584481825736579538772101641784284560766003233439871540197652239454797791652186004574273269049504735367521639622794990342376590976108633728175159700168162332416459283586604369740965021949674758360849885016573789126746475410210453507935562997555863023745488955654444642947339270653326186506113733712805873639741456594649173027682658574756237546757155260459950309526508312069651778566738485363876305750759968253416704356397561868632240021292424639672663761636861464674935285473172058882864828807792211426384845004013305503143808905401159611612638118098543727542585988614828695541735448076651406905947727053828697035113854711706370823430654750615979948069112456772761403804942867519649174498539273586965930048974626449544827870872223208728734707316752748258362492296162033682441700207020775946716609431436825147305320954394391367856226414343260037159667764963127456156325517946386486117257665459462712104231376163085402354917288891061529864154447007575588744224528527581600978862133235076267514326881987567521587818121634208373741085808205335472825302031865824549984903781517247314897251311404375838755336226193072867728046731663976258976045543563569945414704111632733807164640258882557925004416666237158490121030790888294143366233570372362976573795492698950838412390249156049212022725318069622236643160753417244267291307572399458887132126999221255872883118440463522508436056307070976286900206009894568222007616019126329122666742431794646324685797524586758000725426061715294762788038536613902826788923412026839569323117830844753003984164085155185890929693269290259734297707229734993921423363689500504119648286557439813982336238908512661316848937106921078437296612669170937292245588407283423402623879995128957773950669649881347695367045185778682408019142665440820533067154362466229697490681821034163837837201887341428961281070328937635972631750914468043914384875586454697250256282497799166778623455219373975207066950268391194568551983601891753707366809345507516727642329089396470483954856518350154494480836952510658946037417954262636157659980787941454991602656510646120924994649522797901292989304921712154775818739587547976175876192409042870805415665869125747157206399408631681116755302823075902768680903362880334455722660112702922509329038580486899560063661234765269958372308619578476222489486958604654970465112949869281219716756094959027562319459587506457209410661044113384783031251907643399964727776836365313636853698287320796306973569549853278975978760727348402824917651298598352338337843065759969116509000348993889260999361409889854009077559897457563217924827806325279783156421798357047233155251933129879525592932038547608075528060129565002157477408815294869138175368247699032663622415707367358576818423475366693445303632994749270097489359195843929871416862398983251485711474557142042138072664999902517650317613580239538198254781466189554285333086889791023656327629620223737522600228523494109424104988076058843632961538820825101836867783067656866822599524990414363830600923029551652001042776775088692650451447109268923395658003768508968426116401404322260295239730290142180651855318608644127058406699914563701154590949498075453018388760862086205422507474321679414288285108450161748052375286278571344400508029062873020935687904098265233508837692624376418781057377565828235967151405209039581913945821514306109317448874743200313192314470804902232557786232441080836176808333369234475379073515495949033374971521557147056706005032014285210928457180024834037753404968365472986884951872914250598358781397632049250322475578732457283883910266746867171022489580787868869934776108555147227821400968531260518596773477984996528271185566863739202445257153328091989340300869253073957371683109326849359769623542024929672265585533118967443924803449523931227319625690882747402666712987986788213911989771824484401272454871951180513610730744486947445221067676527337219163477578248405475911076040872152235564677090118493309929604528245753224924880446453410366840696859989404122244328788963207523248481338538258532500341933761181353863927642924597715357899460786460402752872761954467733674366218867588522871469642179785338966818998291414510268028022457619441783288149249814544918995871832501496739346501814908575111949278338387459064181059860355172967249565412785749528745190849372797881735910124880237329072328016570380678944104096998417927451104985762856551029136355718369860293770412258485238427843509676477662308549915550519853919339680758283786762540830384236697462380125791455888953222256296539608291645466749610787249671226580691754637591813177167463297517267908046052077409590402288198482166171525455501989371800123150793466099523963535659074370013021800876568241901675899590541400544548032706689935524924711904693555842570651818752563709890103602152495876098507831532884953253625803735070368143466300104219585617644921464381701766637457471215211321747128830284872705238698041363682112195728833954989898085959845597526149239868699294143515661862765362726487914846486652567316705499179401067978539606473546371718722323167225472931567247195736728317513791101339522410933071400479360566264150371286345415302792781686590713928197837273708625303898620208251914743432624387286028375218033816121022367257165758087314740406408471343682827724997674336748448716326208408698650230160223561816859501964316750037659338403196701576821185793543042068741523106140589461625942855189392488493887694878126192110793492391672964526849332880444030377332756000826196575314147206923560718326631022507972157906903261015219458280258803793235452865325222842608504069717782614429839489844060630498598982273535130322069525684647243039799046564455996492906500744138795834930101570022076892865819674567951560555932055268860046438460856148301511691075903241201630398719721579389941200405540507257288939118637781678175604399862056104612026532778516601348288689438659839379115552623314363315168554262077010554128821523603414431013902000489145385602669679434007980973418006082376957805984682753942490599564295388355901473202634136429016520128657477319269326558165800981836177846690728020732525107333379546303505132245046527398257812906930940308538384480802149966636572799027701267343664896052252646601447192939157108285298141974125356279130462050031163493880885327554743536744668266658260391236035641210954519877471875127309591794467995258329374055794688909908425636050997414291564258904712893909604764588494815202027636361666584764475466105971416081187256885333431486824558395192773395079026527466803640693066398801319095542176056427864998065950218517184066486128823462386215115897700364459585032682614612479693152851833105173458082887571244075011163902804127745653486934410679171918286527554641934843833372983626466130484992928962259388083335876175419932075781654826167810122991273119848294183450776853207462385654903789671845712785387773371023008241512117578903287002644360721232302598376328738118531581280871841789350620027914618054655065512813274596577719199484622873735580366332987544939682570990642038904299937600169593982942745376970169413562934283761169147866151535444491396613296479946895512652718650407389343833989163887820554145551828148854385586370320162796598132859624578326302772048975284380249417612929805583754887095100653442398790098344332527020566140803616616329442185954281070657534047376533474177030448261550593976046382546035099820866707532521111700537453059783986843033604078372970277792800081753225278467058173672174548198297214182154495159533760785529872364818735479509641472669694685081518837913233305718450935130848455977613036050193655805334615104558223079180755580875576571703096268813520495208027797609491309131572578002210402050273303684519390207967341457844641380751179709603252478391936919655973477412339584763818949622775488034504732965507676547929967578106274215124792560198016587147027714699831264742715834450085830526718223078467523273755857957268416409853499741077610069566656963243354791389566644395238067016128932771896889903836363387856202021358636231856326647761953810457985734040152428393466958462157246867960335132812384883839078293415655071550060924818146480162500019449722605890462084085589625945499193073606492517989831541528496002824242673600467435611626543650465815359112836583303082388131330530801407059184119272156380572937193952688555102755795507432660068404377752476634287238193227617437915508791052412032576837080485707164233560524318418765799392236334536706374674552399807798788679706414806298744950025369654322814381409069941944623255689094544321080831690600907694425897933584432406027432451616521326987481554679093068809609084802753230245381485113112243361402564879369689090995611778309684666211441126747496811035711067829912462569332210537446198669561567181753829628519815543917041760371356762212314104404520825348901085524359106337244194206153210427026299817892340244842439668205094406022319625065882926036058133837913459188154982180243748834420421002317098505712896032000603075753531781147835289941832247458910076127320609262118604319487986000958083169682746643512551004520178999906500343317436876708382525336776240869435888746580619359169874677750512081270279354867204428223701596012637800920183552648060716257802026588467713427666576735735682483819731909304655538320567738328863181049049414127998089436321999912655259095477204136116057177387247824786465706572922238435178179605221354626334284304069946633949887347186389405190308631290518606460153336474919043188699708445157982125153373385377613069737203875457923895759241247157580952165486892544335912229114522500315784276083856935760212304884185700296504949806774391840182813666070679292851505109131041320202139336016125014420212283832954902321369339387967669829785422360795707808235490030100523064744256393212353237110844750231057782142384851317606634094868692608729724597317882149846254634236111596574899542075689848432603972468948403847763455833701238553825981541924851734277250074925981696129181280199728474876994023958910807536193000835147813445332403358982402422142840439995550229402523327683239316519001745480368378874781211248928226801950362305596634050140568513300059938836207920994973075591535942237460635964583790979478222723667078510721221150854142505450387792238132536587729052641364630153059133877388087317827345601055727616579886969640454178669490496906298146671820426302852723761843949739502833545835362853779695602849132679813734566100837704875909565651125113039582290884174730187278124932840101783623306016787048420017978848545551977471311504381347170460777524142867143758167012463040736045093483063369820263027833229363767159667772821762385610255737181791358719778820255263320970101456954794049172817591915216522349573598378097117752332814841577998446197882439159617485359213841934112483986395792441313188567240202193373393115695858046048081617051449499352483019422611066865725195393446760411114023318868963564699913074030464293106915048060551756090907772098701798964643477187536395504482891691783281295803812359745573124953186816632826291280931478645922843022443157740748562117462665925593334520571488687357352662499420899270159789745086117501397071225600155185295964736694373272271203131036116721381517580202569246009936284307396479945865245308561827888871519644261313050177711779210049887081637278949276416503601580884409672552587281896620977488483074002999000548008917537327218190177744262796910794526176479788411765786889326857106465840384285825597930965027809073023864368734286038643532802824928414279260284673937634444505486093309291542915058082568566378899056069383818578525997770784144758050701934574956635846960435887469645017837102654306942318880393448937650232692802806813611925356913005325815482579566039617118227404936185720282728814504760159770397386667823934591819837806515305944923640822245800550341167755885477485169817811636838963785086932898382218623142031264320883189859633813263477751964118491333414146354907860701022834634673238086183596934285539764378147643343139329951709029903324634451673093155142783088932812746621042976480487446293448472947652896394941085858913038747831753191138843558329495629543612246701102965097047900048638412423354006509842236973510208910673961667721103943397445803882015201208170085177985621089403351702646954752901577145281474318213914826801031169206190612720832604867988354756353485210862719920851804475834045912569590049459914272755298721431317470248073775771533895316335443814781171507228711026079902331337989808174936786540948525839341921017493540011858122379728999759169623201319334896721942007160343666906766399534346235197581232016494882417331558035468187332896227845556124737988326602725117647714563143981329710022360111458119647244267782119254521765966157944940313461729527789352713176962178394294442662347183285594016266222023089821913001764117996061962308436611013615882620328460004952791807986695287384181742677041814538598345331630061901001300756561305299018090466046448397022568780251173409909830429779534779130518062119414599296267358556667417830233432071897194594541817914666575579598010827741819943316272340209862590328033022050812852445266624663237873145808765437333021245089082669809705044343375774170353656099743945526966666002148386164952500607147135372540086761834777869909720634336515584357390484862350433004529084340989882590515748866870782195318833413348991933907434796126647969588006243066688902179829527986431503876018026601932453804207939773192988396064314168981678648426295669695802166024494593536899419428058237942637484611965105093295101194375561117477785981583970584410362687800158298521133306197267528404279048083936046339598811608410014398303913832317913607992737075374736382493993841202105286456775719228773581271289445936045117628335992180506366394835463633168796286260905006210824408446633962308555219583335080689380713656505515328555514174836680513090281092775268424809719867048799860898921402620208993172887439904600883258598289868950813508471005385151637264766129698797170751695639603587856519015442062271091027536922254490372282309947343202059904252183829684572585987549195887194888792683272814776992181817762450139235126444828931695818024444079557711375752259166325004249840135445176848656589630429295075181848270912823377192426006382066051598339588432992046811885388147590602780221241262007973337559783449202883167511172766606185840879348212325899878010933862005835061511502777751396833133416238907699031262419786294929260241726088989403627427142877035121064747369420944905853084752828213730286258040362865604915424671281721562395078121766620108646926759498536820704878937953151988838633589212988048307254930960859836226804590708641067653364849446478415387746723034105173718390608263140994890151471499838653503721525149124026502106651185447430121375094567404642212737273321485300107779393800000886442329612180481883695787874400622138516549359416327367285693047619726176880630635221003595761065767865037424513167234810744237756373876211068045248300479708276521586417269991040104576150160718928045980222314166645851063240112325620044670397444124708230900935719086677200991951418209494358095501917799262007764841804458027388029238613114520265831811156420179269883301169379501130394830689336068382371080632045700708127002334461723593554565396324573676667019164777036162657605276057455766019849439157738238712187831084900301197678389081625703712297474548451534229916830543985633294333168604263554777071469711312906557794822578456447921108965354040360572044767652948992359651326963800643864665009728814233752581220463199815854533582479761590270246978267614462126282907938775157910177875270173852054961213218202365782539230715318587343305869686773856393256336334066654466654252463249943335174544212652139765472599746309140610992782627796755212774600505127024149811120792103416425329829372851830561486830341065425792427071471495204798718143600685467001233363545914747216636220160078982792830198557593126516162513352523267417427851136476235941105125693653685804106268932690171102726552606390498925592275681585379389958673993155838421509838421825806508823207145466383376847195361474999389363314702992487330737645614396257006293077067178474454612269195761019234238082283103513423586068722316281235827152374105430451324353783922655527247891713742094831921046311348137157855078566139206508580790805114020293944410886361136416684420471479207065181536479194397893274957217276804673294276525052357843913425820558129495221808651821675299106926136415538350192361605043335311441441848442171361271890041953348571443574041443625971726283530882010471764074331228843281244846370696397359092627044623149278441888587536363900133345429042168543567714804497162354658542732033016446400416881428110958770045002753848176457511482803454550232501068314460637577001472833426960741133920889508307737939568649228962101151271728057199697359998233632142090037908322807231779420598431675991671004244890744769928680811001266916055556026412707529570506293483273168141045858896223154357028335506359183586909294100681845829147147346387823274129870484383559226165060775716643720768940359680922619437529810555317188149566672045951147691190685583983853573409417540028034132647473823561622020419367208205422291773312293138238613974746900522464024145338854329947556070210706636399869865470620810222098120835711935800515403456653824027179198481466269792553691946191001112768137320944248581220608695570409462194015580916517045257372067810763879704174909485051406547611465266077462948241047503907244973981261949009732013110799900496096712197964038998864729059749046013989724060792370054358243041690977786641668243882871261470805136470898647085814393279589232561309625679481133039914686448493594282922085864538003104299205822171467866563009462455336991549770777528376011550329880929298165017432623100788825012646222410693219410722687887863151725188890548415842953440393317941144604160041093457126698343940258529575898618792604385080482039279587496625055576539851363279153017016342053072499789047974293001460772784278328110847857010321021025338759809550328935661476868404311507455312427118473920725695420532034403205281081742955231285410115211282483927309657670772240633358167564933095583571483843522987134574184986362639114741689814899242723205266967948240911800326856929964007107305098467872632142017441499599455994074242675161609389543566916924196027277494637052632161541279560110638180932993776331245844782838887623818452408564654581437922806049967757417065469636688175853914113036426043671904018621619895406119242973918171221317737442120839251831934473339660885343418723777531654347164705120967007642974960825680798839634784813115698473194198276653449337101459281629801320638701748770752031424184687544403926566185605918383957624165845748400828026732216268386754881190128864428826070037593246633273206060967002618464129994395381304465682831879949838181491669748346425549171065990113043205308019375847704804921309937072579036251685422584503373846516881919094818359524062426638487831079086210700006347976780399361719613606752130803414571959582160538532739373893069363060501502215507178086607388509421025537568539345424187198504378162666960709024105817127818985368102116449039814185115881926421645544133752422182114026081148079491301001167848071626109708017952390802475289629118062533885768024069478158645069050287624258597356453870091444251321972564393539382762780370411360960813801358469427664456870447819944907669411638234219013299158324996254786625326889065209952379742277856539170593197271745024116348652807377678553526136303244987647734813708690939221384108227777083106941555452396261832015885364151021479119018789113195131037027341801793640023676962383593271233339184387461634555265020945087955447045201578046689995168074509967185419565650327019464479556602107504173516984840738405053803463622767359545105204883156691521092312058672450649475741589323862517192180059450111380346779752162467053221011659775375654904661346598765122798212196367861287040826966712863589590707450643417735937170727699742656296770577699911532785252337027187740007521848942191911794231901607750534232136386689132814202458734867338732817667780916613043093463628450726050330765864899132181234812320449456033713149409948348705130981339344210347858951185937760856361519030826600501335404352069029072668968293257622629408679957517954480359239330145627026462969249702071589260401689178459646315774110728350756390576932651047737292360079889093714066627754410664698194788197540874834294045418421339447849500184385319283987228687421619368070842077450731105532987180066222415913214929186601747945092403665072363180482424823110676447897797109355503389581401909978403178519894165143145231257906960161969415890815953806979936150331946220881223709724248175954694748842474572996520238586860559836544703755064482222350884808040095454354396088936296141467917996098679255638345722132830809300677830882411311135235557625099267010301647121927484303544675192383864586784032980199272426999635689232978908323954454857476545751984990095372043710237508746532664173202260112542122005431293993237548961067276913500252437929034258866254057756705194741709362372823463645628312480405302033605942320536184441655832111765064555536739352576975831799885937091876038262725460187027687660406719100204643410537478195067913000574901917750603656155157201097372576036612193394997538555796634824951644032800707430480487915411101990364115447680712993718703986593411107036984195008843434015722104532310352973164596540213106230542169206688248993713500925230592167921835329322297137862420023742067928933578952447860224252945730607271726276518510103590204216832538690836489659441347826754762490335112399568291026465195334728799050954311003904797654958207056848934260828802250289325124268640185656972125804818747521297487808660720034130483333872586255682705341752891790482737469299328592103065088035355049006560701219545505849565005815525367642634071252824825276451727590201347468289361476931129564440008217724737281265711734102597738857887834646074072550939726652802169550970649748186162247007052391622149531847510006195601298550015088547994625158293723440932938863329326065447932236694584506602554034546778804314801431035482669317168890892190313689343874911331498838138566496635800214379533362518435775076707337930024289095661323929018579978373033466112226331727105756464592270135373606110746138378298104338605297940304673320078568333490134698525319014444216125150756553758020716292499405704809325918363662844459535648158721413101193295643449672717593202082225302802331818509042230966591755135521722441343310308640580344866977333127989820986359171398529010560262244633628764134228476749993963788339983463807224005692768190228784986426711489190700962012101714348235946015107214091613470464583080418522940900339810504430767866381376054698204347872609629291974633424107681768735636052412964483038116673582415088006166680484716718899131657046265851593303928973433189106551387640221072219931473143891837999740465834298234566050773878098989295989340010285725442517902735718489962430592322505827788836867597153697582213966471443400514965510781666108180199675790606975003036676120166738192495269942455273477431400636358714914589170575930845686538884059486545413328995457144991515133626699680536670845664211859144171378636942840483696513535974776958869099776503262452271496920128970418025580930524680495005007351096696534022249523338012747358346754134627441457385604488577957664058501096076993022866450137420769597437738180436170618028516349001617554550285463711066040835171165407721305927023584336767791114348378506267871425334837459754640419937109791803073555878447911037188932800896221862934664035222164017568544527178164689535000395558833420700569793647595158109655709206941740090332709782489283387595511330202391532136979634600069399710615275534372097275655674072762886833665147494658514308812722044569511044195693248433156415785096464596484610782154053333713142504023707962441836142136378371189049367077541535027590459371882267996057329106715575911606937479754275263521647066177905969059951897337208613873769476734047011887362162188896987649309639881424460150900323926329157745672179022410144086014483606081919515173422531735763068664521392794300814862686377228337687378262796675301941467389721239737857144728385561974992122197860927377527005870429360016910452349864656117379855361571311607512039288691422198579088685959875460286044850952515925319087006308916757458691134853621475050453529549513313626973131990771892034252397214130070431782046824826893624446060411376926875463262997932369749885573662184475208620364943553553221633379669527134999833703631687229224661752103408441108449312331168861068715496081889936985831599220316635755868694008332878684297156002785700701526209355454859525823091372962624637174664310716359564781002555306481412059683071684579865616081930077990381365086518447504647626057956040993292913675839178944593071077201968319520290123464870226372312532796550825120660681831389146277351312446565260732806162701649146044475056503874738713670511094694987809352828769687913775044398769825756020148449018220379365554142332746524578044916613930264765451629274991146540193917550198895705920824308668433561185542315673818049673691735939546974149046846903698083743472485731244100926177263345447890126058264792750534528617853737416415287920681183587135462332538514617317964050104228281705533831567600787618716441825901376576778662273712639307305407274373762198014732813503053252660570362039993693920785847171769175384435718619516727769457319771415080423474070373069105450651038610417707360601980810251574786768508394698539300184248452147353570028333505808246831399606698091721855230839065658070996318119603945215095649025495401256785004023775381766782855464183532467568674118261740714538616285701094488660953692487525894787392173167584110570081343703883616052092012233636304988987274258066331475627662197344987351177971853928659235701524738178150597847230069119374071829380929208358557132473299508634654119526609424712425211251266138315840623337337394682616078735423093971434185515231368689167078623941028872850853631626650112362065563495113097710741861916395346634556077155099679592298756222667146943953570802304193987485686964147139355399244022355241375588957600199270879570960986210200266270618928975482256009708870242349797224491855846566463518176592897296659188806291685879924323446811425179203358090826824960284847936401623742120940895409848842821403077803936295879622204309568033943053402492122029407744124243292187360307675246544681404946278114866192712188698751622115484855926570193955040365531903113090151831270101419746090649839606436834531629489310685419039670362547988708080988820644982521987569297753751666478391443570870563535166467123662863513221152251796181226210087425441349808411323349936275102500805110679363859983430890116547155084470650206189152642722784830280211525212851976220178271756925669805088639324963373965648812113755720651971868864077931448576904990955294040420606086413946949550365327996160073230622275057601828013635986035270092159242243485910330213682854793490909693330217096264075744764505377354289259512805129546939521280948114220193079872946551724767238316656129946509120522533789047737757111044381194114973949604473054455796533143840272699332172404718304116225954982058742838862079527872882983164297475676347875261043425045639352024677463979160280888652602693433341756401590697708269152085029686549221988248724205402406787564857859144540424371571473479494253741980467112906531083604703670634213888613220755075970788029138034644099763903148929226937393720462716394194690709823803481101658541965168551251572068466895749670674602337408290105508901863106392953845228386817162027172574428779609584869060734317539972513747002498570677429315909049410390682084045870669666570044175171758846149010464187822436767478029666731984500685136592906032325223748021023614472436771456151129778569561339880312371344769922051847360624821313162987914426032644165308425017279109521195802206840452719781984751139826090313652210127441653048935512028736871028239582883736773995755440910098999883762532194734290044122170952234596658573289851391681284809911398366519898529231132444148243706854751272109558848320493348106296788722606390428998830901119031282071572576504983034899773290678515590960555367712713860983264584701085476189256295195648365248121949755512311521879619570039727198366177193209514571046506829700502109668126294932774006618746851209163768385270768503906372549858655454785546655155171622888024759251611229829905315573310884628713841099361914931681423317657637469798194359105851663481980217171261534634453273533455159741418814158089534875122062384184229963377684304652160501069605302689306310674031709741751451348245101808494988521071487005066897913578407725442898805749370183854707179134690960010302214575119573252057092980240001413987929068482155657139713232243218935070804499962996181990383395194627050656745759890913677280986499056766887322868067854738777216115678181622315833392278227089203584803143638793379842171587619372895285350775048738266839535481560987191021516779921941359926393723390227907194137124291157553462124120800410979786502292409585698102941142527753576662337542756309589846480493258258762271328013160342183278500036668963840681424888260884442843718222884258191778626673268689511250466002101619427249810194840714949059511647581530538614188856677257945726612487334540712155402593755018313101187123188706544007838002706140425087776106055025536952920995948342993060263512789836565067541699494657071280445507422551346390677367273158400441864853787430977870543421303092443359469242143617136687930219361375956624559943878108338351511612160988808102641469675629337898721399260068897885061486665891126115613083675602635362883988614804134983177336665163657162559703567718477998681582641168580158477624771649438949399086813264708037924902748944577805929789196519607071878850824040600195368309919989816182554258537964709557878993074171081414054060781015387485923174177789471576648931787933331293381688749379920303110238203043025575775471600840097678673916010167904225067653509427109414388544004623432799967365632501822222583411099138206239228579333266090268718882750658121881961733248263978045143266151470427999533969677675304027213265488449431184333217429071093414265639181074531374502278623575047354034850900113660697497203518358470215597994145574661723080220162204342695428064392853137547023458163789201076455614227612698939722903156707768662605908325452882457359058592361876858947475848013700199566398104198506188063806492401410205741146628942678606913818374136557514270749875118660968589677554638226215596599665467025944578159119109267089909658667389669086489257349202817235396737346929326064777929441573072029888010512706635985734697422306554525254275572800767699609196683362765601206713303210769791461811134148711518919896765210987129311487082873544185149877608133138282334007520829689785105909363312782688823735059844942190286752834220024898822104527544885816588213273339034508810655843884879314621961257059129374485003037203182447016863356984774761320475603890453718973299122532238043116497760243492619173225421671136337954172188352226420700101984907873904155566086204643942871088987705535954757748397313955731782849488055382557648255160950726579973593550089991133293878160795775797354861032665501337329919332466618641231706984903653336941668208203851138140377603091342681795797374300957004374537977951244847762707971773752461350021441611454336061672509290417890460171572777372080041195119793872266544559703739636082888535405321796609376668979950719467577538998816127382617241550117108887896266841332695049536045919634865562511920864124222777181872486330639982229692381231928642842544328976647686518439733545454874837222277020959745749785311255349513704899746761080112359554667960906760664559134277391321930535048675872257748464306977104414836939694033146391498512526133816038810709524892806128517544367043488941349904631649236132326272721460806860616563007716490352872533250267729928747922211593751477576815391983152684651882526800565215935391395347703497985907103886592086293408946904439654448518550929685608867350736771125586337113477606949881378677701565666084157352216686286705219715406458903804984916458856533601809898768969552767570214714598022806416545627654719621593747769262518887321484539926670688537735720600066520157076385643925323419172273407519464653707573836206946535621894712284094435814368302110747936351083038233908009035352946314821649505627012682300496741222697064673399297769116586031172718812261666621478522368876931997756910600537086766115999563794831432191016004800635408178432726619882013666214211226750587717405462521879099451164554177363554217213616753145223778538050587842081529656136123981563290862475551148028210742375520948051505145625793036337099924774729776425131492665903357595096497119263273675740737435022919644955512086524275378744580001349149491772746226422731567452913663590704334521072633307109895543240540955542820793351311487768867328217248667319201887709488654902097048980177830245002944249463753577695790528872194699128049567309211065896508409383154967480236897293791821640313285531376440476383821997742137562112256450974373531573220944764899612862158770299982609663303018715357920325394834974169434748630649705506937894092960308926380903578819587206038359281455396563077112050915532098696319111854130003883806876009401715053528326580054908464342513466971292850963714161399012208561519552451665246766691332975547397791509369458552923587549425837917594391169934120969933830635134496199887811433509020009388470248843353019606810010827523800692932364404137598898212772293817768195213166414970435948641691089566786434631247548409949987563986041119031590133072172224962859990448185110118570174204325817707942156720928135113227134822967906691136984948011258323330936992117340123823807915347942407391341688056670764530237372985642559986657974328862336319832544963334208645175760173578835563899795728864737733970578602278039735491218142362468629155264296264755802098267847522506679129768518588398100957916424601046992850544764006042248628589203787080455609846396281709999459945858476465823039465945080098918953904206351141855892689629666067200474398589501525210450995064144630772967112375858242847918144324788690362602465338218464309205187842000294661852043853817364742161173514216964626285638739682221811426801781823213309661111510328938184085102847794323945639502505984681737305747925233773988777014469269811838637593429169748297235962179830888836583773224444706548711355572526603375117268725625974801449304983402874090191957331071843175312924198523558876374056651811934012707347435904705432547184854332861748745071469332379224045851462327210007222721889236964583471670937876579450937124282908813764781021238749773375780719741831352106126676253794295377305682096595941474656641131953865534327247311654479620014740963053274821594416246748715378973399611631893888235490744051861087584641293398063382188946516575274425091871462701295431674932217425097645607225588369810876528892348751594541243127173357368023658835367759484020229109862755175148280186088788608010794490361384960480556927290741354800073614612967710597387443361951117125828460545087626486986588210589848795732405209602377084962541832197008396205139048547822697304727587284876620843496303290274316731554767379443542821177322971416780933586795743869677627456992334752524301907307803458872642902965040838225597569792901476589754953253577943803591986721443748092256071207547854584832183186313641997668890297477666101981215533793638393890789087294409938361638847958714849575406386974781006408455670695602640064681343831390853658782216949808839848941652211066923598738608254923387950054072731563964446899163637408531777054830475527743089105902083913508047398481098748436694081481503910947004285748819960676343856425318772971694664368261084828469980329818734286662480885356201136215130319344004214999460734663638861523396231690517984941707709199307962463142595887293238471977669498717269389052359127552617647076607501161171030311718418498446917024125692183231039052521527688875255846386478923248048011046270284333105258873527866445591417551964625029768485418974563913772642308032241343412655265124796257645977663894726168736670328422877131047748385403019381024176990874270557553303479391994064551649713434266316283715782818918835181902658918897837357041854386283266852507195061318357452302848460035466469065811110452875275346989970340598838958134467190756317535512293135297025272248693958723310785577301161072522634013460834727385853577907116933662885416098414363460563827607527671349528100563333768848250508323070002971941273770459811085069018024193711921755347818485798310753960099154793219281051174881130893949459504450211662112806060861203431959587563214791520608678273300433791041518765409442182676426078766438662107368645561394085126033299367235489074595057261969614647626682862634383116306628514309308644242540446300457666256034273353271233367490970119739724234363812240493867042060642102663303821403071767872485392458719719145311948590864670333008789304183990601796946686666657706219739629111856071228581072527225230396945793317546787893372382840761696850829608475124744850194754430073016311826451641248683806053507369696969792164151201324417212385088331759087673787338330129133764153355693638169535755210260917762137410314636573932462038350581346974103896007537613573314512985406372998714588535157915926019116362276987276251361198793599129569625126541030319162535331811059474123367127545346377755139443630727623135023635830248871430309368556627429936463021896603084522115740679881350658942517975462028735039324822485807149653702010957911994671007248752880963536266591385503174187352445949010655866043907493800739930512186881381147613459251145165088017335095325656565968077373927593756542934604689810707970994642596774279016540190326852323697343208517260790367671589866795225253667814725674643307927230540729824161030619256198313170425613900046279000040328074905198723610206996810901710513974257894373098750659099671465130133394527822225938060622138060264746436592088140600846419196044549136572270737245986477302970038148720813177732334667309584407131213834468050671389044059418088245616552888585177968492091719369377881844340372782114545891616915327891255880862241933729283197716100947658159150465884595818845361170425513676613318189474379729418699729327742873534499361276001705565898188487043602012561823657824014475260610752580224898083598217766681537698047404769074940061042930080379965478182183702902026421980579990214761886919065398468232377336122433645640846242921541633853289723095581270177436098837145711897283683842702201736376813902800204448748840203702719251897886365089896572418560159209575702495294101741805544239793040207317447847427764786658025277393973141749871660500511615536891228683493974448238636215986238815651576827164860335445795768588055768976338504406488273747488681212412937457055416510597244469603403556632296528578942286454478523282831295549849610364559861943892540825976714113371185370034495997611303387217827953518988416147633249438052291420665526520324810085057304613708537341562603350114187284966395734912142048317787589744363999552916343758459645626482535227253797002864772219554167892209783799906858840825526880710796350591712637347891409907954823357017813860755756456835881117763610993977344013963557701792711907697633331276312346897637835955685695016839185826269456450843006591913962085922922283335428136583363999292960879685622429684115800205939000341616604987326291795394204871504547070578081023341699018768997552309645236669840320761106154072448706652081380411485504959294914771230488730273774479536089223780066216895421886858963709382521524918120800003965601986941991171255480755126551696652454773055361689681708154451677636022029491832839323180586861121418843774963069135910041255873466014595769642574688464155054939709192990772744544629087612015800962740772974536099882483815365057744998174845025826816339473540410215459548762759377965806759500311339930276078586079442001335526337249421846119449679099486217364044745628807511982346684097440237238174164484320297084319410240095344641953750010321359528919601340207484650555547562331628211875142433885032216956077261402136583212619892579333917755425566047209852080715783139331398591387812767267113654741583607630360375981349961104705690433866612886697390991695796628669124635960697135366220090793391527017629483232182510669838852583075250247892734795533114021953551225845143430515944502600016559618821131427029124913450366829770899170304820115814426303265634226898683962142243414015463794972462594989776107162910208380388642572275245591141696210281013202138601512940062431162306883171418975951848775897838291463914013108628781589657851088150941494000102706057798948783422344276944709347078520422894427212791729160306463840167477229221465748266147314158592139582378148376326875884311771964914539709631374391886770766221079230295670046806815780430654420711096388045299453517518074649628704609486433213449930317819710390415651846501269128668042757570856221924148274459813228599038853857252756804638577069789848689442741990255000076011989958575574278493337778265321338050341409137043216458410279233904450570041049723809890043280546936920309154979571670522179144775577141683584775890754524981694090538692233745005812479069456869259826749739444724536226817925138551649565831298084015487312668659939125285531188881674710061356432928910721169150659077943149942646072738613301763202391724491327820772589978514384671299845333984457540923094198225726295469513397585812150609973798238813616142400680843846317831417212702648484585882234439250239910834229378378190803871322097311940773374560799030886142996543102879718173533440130675962764033945887779947051123274715736127491609145838521939536157418328741942262442652441937120575202796596850489084558952786526589282292854747337437970406641208166775737034592342201857055271611847583022954741219092118031844982394200561041934629054267070431128274410787835167578657598688697711836506036243909584407068258876554692110817023102192575558309645527954489093924904982443709138220797777323744486108951734903274656424987039974601870601595223295288491128509495656194587294990659557656139604650927668994709625105908988470255082064680306378803169819912574751760889861721965508306350355671724779368461297569415580155893733674942924085756673581907986672531155052196271984819982684061617567706658642857123908261566552207959052726934713328672571664741938349728280917793585106761554697461447035405669016549831410810523053760887592428129804925131219683893542120960031994287926430504354486499000583249475583089389342885644765417357194188290719906278197750976120762195452155363743333282429027673990965880387762842090095784040182146176023001638798333964717294064374774973495513007298200750338802782879490718738567297848532627594904756602413426093039926593306276112111413031531763408568058172825727490389795236648915251052299309015150632745753290186146239439713838295816812614295229974880306868434452504502689757450626542855352615156535105061699354252995062002744346251379701120879496368304302750831914559761571541874935676625258799921157501749406791821204497152429299044108650351388219275696740460374896068662482405238469617809944258290132056303323002829195944566880371442413515309327184105651090245341308735739132679614010266273163254886876910898157535719500000462296864675915385795509693644972139453082090853006179111708262810196569586802437310794489194842379126410948971254503108297595888964873882938236407651144022576083486992992522929033184038296813528048252510256590468270893517347667393213536964109898345626540570744166334669590719567033129907409431128478187557775522977819068175035259762617720108327214715757853864539735329674482606392702746982286411832666410737209326270218426820520476849946959372661190921345083391560634318158430299384931709642428625946004517972661906998634427687537980653151653974847473912981308722165142406202103488980415816941854930135742833984984165527328861985079803680963758436571339109492844088222364994916823078636876816126093761277719633490550096647810829538037271350183123195306682916683291778088860453594980124243580301083246082916052669112972091018082461282947607798526117109443049785823928576973346848755656143854742075384547304964021707341065252162334468663711692651503782303171846533628719694961734772741122514126556249743572710224908842547738850288065596526334898746752682570428044408695619548393999265470361404678655882814796713141657634029223597952410743185924755715262536056548542363486079591490506233122383217959300431985446465347827723068970369495774054228231039227259669599611818090692030550352707163231605467250948567146738618651075999993347601114641657061749841826144903410393443197349958905349386742209507434207625473881495607867739509810012351073766667804994915289709426572440450786865632774590277363200132392596857421925553202633582316959752326454083984135358385492579060011759670079018372706706141316594186391216924480304390970392729046765616192075131616300567441477773186043369933127884758931945897241588503479319576013584106152191261892457988487690140045911033689124029907274257386109396622611017312904032347593135121974844199332393657903790060551564584916278224773872302371028500984954534381271153141261679639611883456511356966127787874850739440616943319651195572899873289237754097748338673795597598369215257250726042035757253726124088608365527109090626483921376432378793652309584522025529562655425550671554661422132986580292853691107353292520742576623576013911516282596575067208467840187276143402717406967898379318959257055973023132662178569458332121509768672737932314100073802451715340199790434223271262941571956680835006454303795065008730723337980814317070173970047824415635919657814191674578462190702838677418766334239742549910617137388789217460064873182209061243220478699339969416533355374522168450253834819849163747518983177557506247218915133881615940686827885458232509124727067041742492255682156028591803052664008278866364629009657984355891515145167158383903631274015310092578779791986774804793709181896668683607029511441943462532230579326938259489980459666595978557522144607048521709388504307524189331971939730491023013743228862373745622183247114280513453812851724453958299801536590786877209239816564846979831058557634631437691366011987083039630836693362641676978402735853561376811516232299053662519596047599781266697774417021512571430699993376601906429321005666281167070791821241022640263920554233711399235644228566763166152242181558300899215688170576462397288399463560303755357515337960798737517982644811632133893431070627421161459962890374915998261872104501192073691219404465981524988309971615667450988880392805086833677731412785669661250159078878123890058299209877227474068585852503211461630084683418098161326708417168182537802998585680362308301092454162898180545016354679726182491643898739431761068235311004255859560331437895450120348908330045866984142308202505713678871949515391295977559120388997383766652016307802962980862009073974635713065422646494684716426371197652087536193431722028649537433113395205148407699053415727750208673505114216012335992726479476240852311104545262509905675956747740869767065535583387589704963219443325674226229124224062210496432439521041156765771670033525068562753148909054402876787017147521562339161079847635013412460038244044056854895801506068992122226342798730883240281145481397749826727812395778057139151517773299357813643352943739714910969877688266268639729060699643571257926946725770130702820159646963256569957467411894315305006237148712526898876747190785994679936964148648667017908270404375470716479247006495206284028847629970330738408678218718376442999321697396822411225876761252759685316500620112481628882253165416487170194480035040218819180839288660079721405836112582013086520884338850303627109763041654181682371406061026332509677153158639101340588562476684028367204367219278524390508960509318445578538833579003877513968920972869444129589363769361423426440381179347552375773193847031071289297359420214524229200707413828304375070281067907845936751941037298503019478910078261113933285418076121725375530949422804236068673202144710771230579156399571953150819548211424957155132624296148891098526259156295699677878543931257456814764737380142671784801283409688173779270834030647220939277007889455258474967112720721569844036670019779023305088704198493856908530279659895945539940427891370397193795068266172572647631062577317735051829098886105757936740114372709852171525464667230924505312393610882527344826768550733966019786552852519647887616644160853938533305211762172595093816141751514333577950547072478678922109328951946686070709585829694550119712919453277841630722729509494420440451974023305997045308718185964240388625350257983717089655692958594780522245202183318227536436315349263001468347986916595378223838739324260433152996922929552269216533881545623932007113538058785576814495811238565327755406479149428393540090502587711718656526833872409550947456821601317697055829948904628447566363855886246563523359844615776050070044168310551830670967185647381550836309398625446574678891219890436595422802266798285288098569666529121281195002253505914262254751369894263647780671775586070909659357367567706526316977840864686978909926831285659440661963627458705832201007403115823194729456038655647506795198455228302878597727272279974335989197960194838882329156160363589017976482368296547006167296226099947425217678191152601500071397157359365982886933200084337615108152052530420715431888831048159555622526731808792661820598030281901614375562325390673905497472433703677887730852461037020209284259018717828821092513978615112738945463895136882139969134023639206109205967198609890633614339191704018134381665788654385909841976540048472498559616563682818131357451381068126431457310093018898433129855682427562822193655686921591749205724947510838282998743892059508053803611647798913166683185409283133922634778064231777222766894539490239927103343863690168662952867895312104926934088307939657221514601549792051878424459562004617844137111087990704048722425384574411098784117617918654822488286868413260041865932253506229530002459605651983493133723990846611781648812356388860091103425490698685357832188799259704722128638983271334945489064369605882757210494452756438523143678203876861928569090935215942516845031046386940543873255066098709739519549605497231478101430818489810884827859543004209476756908422293423966448599081867978222288119812609984558862205680114680824727343524543276742480251527446037493107793053252007959867885370533130462542458432339950676707317626740999411992701364516169590067019902028634239871836304418778634844409876589262651583771404710639734508830029274047443346689189118588193444075876693873486592338246454468970079533252983625389640036680171633804991256153331123196371402427546235932254863767404261911763654214050384426125964189182633695180495891915056710363970741421576297721059474586457333643505462519731464688610952802772608200954604615453626315098383636111951365258451017157939953681222125738792708714962688633151714469067885488919159109759147275790729464141079533699931256944226691973059282275729629709207152330049113644224376346802455708060702874510262718112589480403264754159188530246751687427769449466493575471565566971787096638838813340914542692551572768736596351640402907853174810634444030467888344769846607481060791139444773311884497890497281857809163036399698317049624801763003328944181451092033999960334465593367488830834324161725399692153578069926820055812836539578257289096148762524452514879855282924207072082581586052086215236941216756530561095096396028657165622644078090290172485670144321516556225788492437736747653888322026266255910444993648463900312256914738594305915054542066918454889653413589184666012022375926415588068641228740986948533896134691627007796825947236261327353205997700871509330461776234514912430879862824158151587599663810646903275247433060622561196821521897108025999955407543253171023874030557504493188835134133609540259252345245937538599472418548217140567348805494254525368385348943375350667984460061085992097594732045445282870697944654563111280179563050371023183221195970523056337608643690165952995444524086605239457041371415180991432401264378557469922033762431988021491661015530728139547083569365645939788069879152865228967172004493261327204276295276024972384506144739817784842667564927040590908560204642517759897001066904326101313737411952298341829360000707576040578123766679093319713294620999336038975665158559006502135376204366119499116599894818841377279615596572513490482796012992924685046396273625069618103279862905822676164395183731026812552471725623135852364115881362875729954146569345358914256028196022394340480374829660675514568766926483162978493157955696976066292006142603240152394299298231865167346802087311266328690494211977669371058122854679297825496129899135042713230367162623424635397428430644422620559165673094171855203667000838777035270830807125049364935711960306285308986535528756833546757992848333304542202216712501041035914126430052887726430509439044297204356568506113149081213804621657087569144907987490044292917158776518740010216155094672251080384419107073939536566610576211939836720578178790388271039063862894264218978564189596415409820373710587922642001862614804410194763612723550279842408167321170532300501125420013411266973547764273389341874119156535983309528704449921182997160423321376928714438465405472095834560142544772582762183215814213651027671289370302980848377709943520425894625645362438574552285625673722180020226934643812748301503943091171971101139179841550914890664193025965141326427200156482487689560865032387079060595009021020277280405947064826888953668307691657805318357654647678696958289199207889953237769035231798027837184818309652943464059113777094454172798426031467083080341093412154586679873088684706504844679859228362343828414570236995611571050303162214587253082028252034933888855973616417350502167608173560369195599894966266446784595015022965485728459342123252996678120595608477788208389894787285345513768749159297495900519918324065178403750512993817440285439952653233046916371948251191153421732296675074246880933171970770326732059732718178445155519743359501317401767035192871061351756268741912727911514443370597892879045748692901219137916485741511116376577938449484706861195912035975846895433937974923384421244017795219446591835237540625219720331879721631561700493879792897311910303598975046107386766750998877249143020883761940988529136390879039438442432626971413290185120987932268524125404705798399373529193782347023156789825921295410199163045205279565533992954340055036559260166672457517212425957780566588595963229839669452082683907046180409912558109705578137176567058180341423539105427022285649673550500766557391300209655575043961715818796293676394952390515547539368584336065740959193433101241361087183319120240489460879626986532203162742411406832542168001768594093637442532014553221601400089763000456683208355542002857616761781244264970959884494748685552051325608694156066849200105979263720259422304095925438749915337436122502569527286717517119090343904199981716396724393849437908872166313578111429570716139249867605720039718080929481529836030258935813371692073550854851104816750132682095000857165732899849091409806288245819743731146784428665437723938297699088672224689669330448624180883433554157278544382497264522736605019953157901373615881663953362325448082813750311543159269343022044243972293343028862361470865427934279531621531875245581576182617959148527846370704733815256994925239251989510284621648932128889490484435627425939346615247032392713946025655292779262513268284775771556587067271091881146264070797734034717415030464298606364026920943696998924581853276355054027544910100698995848563621611446022752439873649914639321025083535708410927414948991943822180238181435593760564192622866946208655263864915702456039393506169427769427903537969995989150455395724635494739102781481021248841603825928624396453601120918264431114616794452779669227272816735061362416020295795419253368310110433061047777250381277035854730821640955275846012742005496389363349062211507689671589177407303567896994301764961665559839594328023195607250603106191383634463120397819627979989432711342046375476761878623042859123949738222768034881225891249745727847703340029214692006812780324119689008690873755684107337178480662256296927168148692559354298229651878461529282172573015925911894735441110855239283892307073707208498628399736382816803600487706349812201421607880966808831352359577634274425459718437924075400401684791374214459173841483975786267237503430347971336208741464459013276805788805348195455133808989000770489855328478304536877452812715687394969422628290944118041372761918845403825706684209556357617725799229653211395115965797872283213947384071274754178956211219105463881042752137320041781811311383597849967149343104946094504411734219710311638689682284878847889110613803743198666573637613957213475343574702983770252347294780505347531828748266005797700532547049216702928163883054134404215584948819212079540283788673838358322918703807928442063859509621655914145102777741160018210526839914464969274076269935609708087379904027727160825607507950168282330328053316401645103143529969340266975463576328946973813372524167532453119258078379837178321043934327069986722200910274549646012889892217206976626943751770787370147024411087053016872565695316003318284102999851993298322149772374483890582360332379425664726484289081808946335669411643110591485521829113964706619106024030520771045417787309187452289534000983644722616889102411451141172680115323898311881324749086630954492105129370905655765162209903162748566314043228228356742637543858939813305803397170977648784814741155701842979791295564210865727706684441330664413069289783546873984992980131756321118865358508404967639954325133607073067688628500007942407249716490861602696529106414552616585623814119410155661260437662463680575962357053999037904256356770970122641370193931282882717257088709998629988751079966377425978849676108924009331068305153456108680439849716938324058310599494117551362280669452354427623919236113183940209600695398105487321310982613794609462728508730325494444391747081749663401426223373318391719680726255395425147851242613242283847877148570263667491573708984227252093874109305277494574119144914355922089077794843813062537268408860137476800999133854513279358709316362713501855413247950855084750356569196061792430552078333249537414429778807034063674745129248445579461649207078723412868672892873446373702064734851095469537213962221898069347432342942391044035181958749788496875938876780441781976416242067111470105555254633100469629947434849025113121118982466006617965670374191629924703903634131050724615545600671150334079727692046368680082249903481660840289696354364111607680485368398953263743079294080933283692759072554775354919941798196993791256406161899652061974099746445733624538921594852606485047150941913635494643518024684471368800410379643928314000090428329964934964297607393865402098974524949042609205134383198039829952631282833916713576358340679478010418150070001293288553729910086787805106914407740955956844772086608151390816303035547471339392872328122314604636300333343509261092265972248134142923707194427887380310979300943191886016979351634568469228118891926644313465170980819567260238532242059022948686273403536166660631003844874215106350913997463193469716233003615230362851934055235072999000558996930530634548847954235866015045314382453090157994571068157615361912117762285802686842484404114958118531653782766830168132606454975042580968539290049371118854084683296487835331865471069963193578508470386386273177666106898705650922665217207909374426603893380104797494404790380935417748271661939548508381887104355696602748888824866547907227155711299580698475949029745818833350839103378477047727721215133601618627942671381647400517972617686222167803649536163508685473077009094383014981673143810382117869797629336075065087252652488479221577176045892165184488258616994788211886765838165580691478415836653487151866253663587390321198994273941542977335185001272544528800095784193244602844210524971658956459023315038350173549777661202828316982073658986803923398509108220874452310612970678585250121250208389268598670884048154868120794787727490059363167125498062143348785812667220650087058514673713534964393549363740349153513659784131802258995338433198621787126472784068410623319145647812202941876672225813010337148992687663071224439582439724741629447439425295061649214823972331202378362736462633759327380019997623267485800557020408110207759715374615097435960382806306384997697001754895222172578009381402356846969268264056744089379537438348603067636745994644630745879419101566836687640668458108864398853397561965099162383760193144429593657059483054125073540685592691744398731212200312034352630799457754351590401261839529993470573761115041080365110996761449433874655518953635215496811670421593854529914754303790329567390810045175930431768227396157516071920895811314006623684687215133505846396453317459523944644064209494380261727859278197859644295680922224768037585918405529957553951211132872609325221595998669922826217569946446070499930442042372320159989015862927499157200747190616035502744142213026745365336278735812076173690275208365924170980616295067103732733284148365783058001136879252110217120596984123903309495440147874166994585208019617870041152905946849184292634058302606105958374544463199088874963680133771529686994607426131858943591613717339041980698991378380331038830989068873423529391852932850934292047052276334938937160928588874212027247315483861799674315473833101565703750677576507206626494537293502921833999706466522034367092874364442387462184064440255449450405732340400108433700090595580052937909842574317749304050092321146743777626726496692170341274309865966286729407039310177058451307898555556259972695864191425873907961126923729770778635448583071810812516791378593435392394572245373420104134412621390810295939819204945715200810271195277134697511449853017253451203333288858134431628052675985845406954834465138834065521523338147313328147555546580925209297013388629807863047135083366617007688115919376258577859115837746103385142744870813573594749218110999326133422153185629163903556983937985057988579838952037074796688136178976515204697262968002231995817777061722723987509012998277715022952217509285714640087613762101139591791249402138669724858233628246158660916323927438235663407034263470177668623355641185197193384487136054976932144748536085787353034843346999265884439062896545257895947450263337584702924694448000986414980620856350322677504379887155940741427730830587638943619713080085001328075560910563212497148226552474671269509776324429330148034223338345891148328409774670879888564649347162927319435630801050340248851844136354215224415774702438313941299342401785257794233851315628952443315312731551772269714478183533480169033492283688512355801991903122859872916137070229304077500179333698269618443457622522320442303771952309687789276673383889781342254884025603032190651770455224591016743265049047605927303169164102147232782599789474961451014083587962441285504313714629753668050106340864723650746552199594978113800128647387600534627750064367502122292584348642572250878749619247399360501543724714162080736301009135259353059520779296143769324065181789472359980366537835465665216014569286112081553851053842824519574008294290774972082576008307015979183170050117887992992292106954859699298980820574874637274060739934827623871435714768358979205133710955295041866399867471219739663842741822258279106966356598353208942684946601265026719528507678899116742048322701734026684822823637783788087603373966861253519628672611802414303807359056121698913929425211828543836793825077943883483359371093486794727377482249600306367039439883931891706086482685630576748059394710177419123258033077653193642812666505198709535572875145614034457923523150025909399300112489702922039074314605386428719856681924737207090895433945639692585531160899979399520241911610797807853116982030389476010449406498096838590085325535699760088606348972005888622043012576927719748317987096086435841229997131580941575625193599515753435439911364032025628303729009037728540039646824528840530959674163355714901481615476211132081088520370718680657786895590492272147364635840257760820512503279154126971301362258917164519820239828599122838518684125748039170976951369463846457347756878305585573501841308996377311425737906447762690008083676523579852720685402649493695161939227523172828334974879234551772550644261738708730508913826713152586589144863382494463750951199570059772518275323100588611422486391616074990050650364794921176775721556166417468736938045087307433187897157125558855543880088669819582448492136122763875677844683136497292471825255760839745379052791507334840098903700578267005333753735536495843365614043634031282441970852542258195474732093961873076015783479100151240530779573336028248821835775156155871313972463687238332883147823279104347970352527244516490814490262910340191569577266822833566304142522773384583406190455516451673949490124031819418649228436193332617219640104861091245855108769418881021072972542414132189979894197485579113091442317991436504816512322898075069811520995199488123953033820322135069979554012354387750174553960110938097989666207097669027151408312161366274182131254930858439207722574575986411415640599232337882899367407979415803805270593411432892330029143602092326200324465598285913132439926002062245834779810303198789235377695977875766463656844912981787704871658562687438828874474695153238083833781911887450967064295853673454912310774274497427544450638649014013831119484068496285918522291041559783860858296788001575087451461697515571440240174196347784151238074867311398548393169396144900067819151848483268508266392690634157502279103001339074028500072796080958797121487636649284530484308585880345062416079155478292646798181027837293410325168860784863919683714847335702441494856756947911901019195017700171042916118853735089352050471107793485604452480065589078388946554621920885477760275244504071871115107298430274502327273127674703196737172613309241326138123254087833581166041357670983711185108420070197367688639273381268810643073360783689549934915545215077265313770851579048114873129551718770938730133150237014408938411289949956639743270367480500640677156115386998157244335929901907029171508240552898485899890425804668605308727662013160071672520838287285724779998312377010484926581498530405633274867540228401149605232271944356286011016237888752201423611867889958841729769818809366056990077682058766000930655088360462334113196471484664010090740606795099157350381914745035033317346826230363976643951331907040757590428818239835691564523610389108162479512929868248633496462473681691951975982918740149726066566863051888524433234676273796413780426987771889618911425019422337317033898159120932513497761846481992055788844653922350980134865046471834157080039220535830985598129560168793139400246093798015113604230214948524206128226218840147181038528211813053331754250684005766042464404439666284732101845996154799603701365253526817067482995142436496031782642747741354241572263829326146824007925171448409166345587446480774143360565425706223122085068445039452864386024441136494308118305098848489018763686278266804420351645027174329525729369153059485064748000235559035651306569085464319155102428244947383413829018803033334104787824238695259772136902135056631668634658405002245985975073620520908515270414000304815660536902412527101745086976013558268873517278897573729041921551694906091213155481264885993191109962362301438189098405138692938049291388956906221008287575268062159879282967521432999002591114241107109457728865773763504524288199470143749479932412176179409035929837980115881975464904641405117306582190655219849705264923171098496250807526117083607400816638190249885833783546644858027377460168652786758765530922828248927285214281450801652110156754355882354451818888841025048739559667495228205801344577271753785776710316898024394801206884128514585332530214521068323169498270141756016365033000943096438950548524401277655215321562637355881605098017244259657595297260128312631951618047860228556777028833933974515807465968874603424391279755633041237469549800992696859519328113393168586804339224512714735552002066449642715368740319894570719204707086992429337975351859226104235193110461263902225944875549526750485310072192434936699757095169274176687469785419730036148521676068323483961152421797637568312784967903244279385236499606497293717810663846736163698331740367628931852443519538900291817999102715181000102125303872626395918061864524421517061554109440913277610079452653636356448428894484603020519317516900998596856214197294757279494399514303515728092051153263952533151104414244173972106365628006235163319336148301075944927992221309465555143003610732682699018318456537619711824020917152351647166283655526987849482035419019263220515431953303617520050374056045720989823806661258615782543138277366310077401637338101709375131457927497530319717315166282952144548294824849306036923772535200117905281257721910253866746370265495141041812926156969219751807257679090477998795462798665440881135102260137618056525506577479826379599559063843773998698514670127405378701851265360004974938752808079049208925460963628633148821518484132681712884105888429087947166865568807374790801531627237484183620132639457296776176409937664926513620325632562287515567881265886529465824371641448905349627667928924907215188159425842602890786265040415204265827209728954466930086665865577380500440492681105099301618629817593562444497879425580322341185724825254759039531789188476414950664911892454888144082713225764672415620299588250236295543241966777629705563917512510430070875204153541450513816283708697170909410341985350104396033578454077205414744142636765208915780517831484875549507678235619155766574542494458202983615664391998337707173622867523030066386762643998544910243507185993347642145786472119426656146377632041103381928992139464384479078330960765093010084799093892710054703292190213066780264809981555287283309586392060070750539602242819268680028974519934343328442539110476007248556338360497009778716435473319744047342543864447023011617275352130134745357647466239433688188940002776620005778090031733880792000808033174505280113982499112696473773728159703981709852235221232825810919374637981361973679094439450903130346874082061229693958726357235792520867491097069732156305506901461399723790003780163113899996839077976301584046394700966570219436748381905750191116541692944698325378444552371414596345193143302011045539221613040070876115286127664977870871703993153275672147844413745069014199600888290916605306837488652838603936908631350798342053010942042930182867750054921744173575253438301017269770360586837775726525247060510248266695776963092664656025906516763980582761947301140622630257879792797251541637960029504113825449917139739607079426318579389617583077387876041012746042235668424438208496750083933018616986983305979030800014620714856989776192382442402776232422146710992106780132203508726665845425530731287353948346932450614401464474000953502268376706396957952849645920136906769933170714486252367937379481659461531694029864350569158140160008323526773364906916014291333034394273477339271581849727577676033511462898794038077088525231423032176320494384798259764228875900820299513085835722334598965284862214405458821851170729037197601259325371574915826723478501130436415949285721218169175920111559701717056393828663323107971280369382951601400399252115388424982240671985870398718751220065855496707348886649552229600625155956917772980075733892626203241477579746516119491518157378677603859156146147141568492922817772176607252209178166646248777429745927354009945135354083270500755970507851774358771864530558182831300194744283505561425900834463666412439865940607622456086950310114605982092926924992434248748651447371242551868251760085916188458818294928654974424238282445360589416501085113713077883483522760556127680535060486913349068114563643297590097556629095753432849973767744868788552872910845128143998050806386382105905736121624777340427092600890993404010183872873901786236803486878400525433946163687032398906558837714433456669519559373522682096738079690722083810703844725016374658695734785003745372862620808945296860236273082699274617643540668511311147740993939478404520253716616914118055683465845709842923065219170427590809037400327571669365082876147699032538663571682402866977098541314642001861220866702865380503389698913169987883419732583572791135730834052308726001675015958712305061390996286790170328773865111844927388555359994425575849599856780681582037149341867704880638520376925877321886809967345785942629378201224927308394065986277866205312730041392932354096049434604951586973788167579036013019882554566368777301959343922804376074297303585094096513871899402796485917906043366161770267851455017310013005293245155654545548201842540450064069696102440765190029063878844597958222607839408534689002147771904622441756418867924426715976120066070775671592260222522774759120098697480210587985272269688676200106175034320845354882895740466249395281650625020148032512189609354743798177734544165932431748556853814941909049178744240099944299263556477494341624519211083098808633796788763076367489143324180253586664320067322690883931881820559198416532999973018678142560279312460675910044393924372881713908343929444776656105008612624379853444769063469027332505923099923884281326654466435008766172756942702281841226953759488150546355040278035670398668979796413846386027605061391319036122571169769163865570962078868798104870246806996425941232473109663716180661352031268822375456045981189237421839172058587315073393201743842423429800719651817810953587152732384555662967241918514637809625064388222527345055924801321099098864191362192967834401554185881836962251389726150578960310500633369985626370120961216267658869417066704887793378315970701250176004270866292940981179761113196705024207016349294104009957357280178745715238232228812914065254112090444186822458177491563229829457861730484895228736862664388264568259898889566720915557330094383536019440997058477855471822970382481642405510400504180924804990905990826158247446815742785890939024882837002305616789080627113465203408509421731233780663589879652841738916520743358305817508946427752148409968643040671256370608790678072359862338141822837843045730738257522020374521872568019688091785978614627354685737702994441745878879788759002928354035889127301609727690504857194963732665749512768977623354813027831500343134192781878418553753008676857716581565666163611683757417666360076075975447970134637636150930819263909907973710979421097977775024942082177848637120818918676927042135951472503822494967386354374676688233895820154533792382522616501865090776176406924726934587486942875180279133182580448171908831760675220137089810840994848684258165247016043902996537465360723166724224196506204091737320233061102324677575126170860949164465532464927087564531838685438217666491577596112935084917030626649780069246882280414114374157951780228630486714896310930070958355492407852550465449816214850881477968698158765733016744016927620951624333617940241015617875991977336353036625435033481495391554731868439018858496416922685144134836748634839721399246209156716300191709017087120577115095137992757897752154449439163601937545888486263600869681429236796574566063715004637806867963986043688260775757629423420511285062148160818735154866601840622340574282259849697603376867589598507118750829709865637558902955606481961196266264240047776452253142351082434343734599605812533166369192780158703058122446128196883751285170010503787242249006509858808764601126843310670488053618006747543654652541876184956451827455099478857133738771914153061341267617469368113360874847178834270730325110438087073873315795747777045150180612540011794017770692599091943036273977393168651666773929050475949841878262700243309544343702967805887183273532609454413221674786241354581287209673733915952217958704625083962333382878129934953747366547320522015515491509116600126918126380188644802933472438087324822349762396750207341879312266003260624534646675607268346106113031943297681719990885499823113894401547099720191837681089772025569588014109448808835915550283671312336193745106501881632340632238310730896626702663708512251607637672583873132975217791481240762889075726683492743969552987694539342138610753059478553749321338574382912233839975713261770995128260049647142427815654465419023736608198551012916253657925021155565152949433663859681839055868061665438800113655940362406890618725211376015527803992697689202925021602818811150331442675225564300991881699209044846113597386973939198281221458171545857721890795831137556047073797414145578136766406004443262395753705406623274043600390717515019339375856527867580227814537433703519581235859799757195498197111699356973803002112873935625866610755346920572023696652034952122709968605538584245944657391667089248183995874401207399079812272837332820180602402849434761900062768760171366401891032114043019449497819456399215612021410104933382340293038323687166710590112231175111589092247852573006774044307074561717276421613564575015380744478913014446402567415134620257127922991130167634809114605191813620816373862137523733393858752475962194024088746117247946597301861969134253838553354063981120054467225986016765867745184239483587257534115871466276849610627817230792720744726447560036999295617804338918678446219386445168409435990810323873729505112513097976741116819417174229427523572414795445618205892654193261563846675887899232015883594228647767917743924478937909512725465145850456729315048192569250077545722778934827947591986142724510697694155862284794506732103324107162930700822072766566731041818454884618285606189136279421388819763584995556573930957145420512122790946587603686767692051348037239751169172584196195208513736095744749516490414257906640240751284067787452785008289342716310253265724458640547503086896595230707537571361419602033519567159758322291752013859170693119698174459476071653940434606722427181258390998035191638447263803620394256306000098645596421770472591189207900868771962753912100928539256055763111797073310272076290237254530371431318124479614237816049275304583064987382453347754421995731487936346879842223067589813116002128107059011349146288848962081205283362298655341011421358468761705199591904801647443720088947555234941751415590060998090549432541843486622336988879525162304568151683997440280642777191169187461892135336468618345288388434592981947961764460455068548531513007374434721178915727209065631722767163326797322688677360991322330604240998711781868229334139146196258063464780902112719385716234635011268662265113427858015345091482116835598507355687799637726892853688247282366405826224124560828503212846223813493220413538707601265814544526757177403322134174545443392257170046388466767556971907701453118330920485952220526703028136993995344603846057538272979213608126802081816112792983194258182792849561756659793648283311119281507551623810443720982282829310160973689622515815444034226202463224493790945753936002817910054949684547146035502328406255115440314002593918143915627819941085970088558650348761280966828125115851558262178622955664849915404695267275905716402788547460120399529774506196007667783809473317351863191546648871685122007399771808458491536899298713973465659488320837633907370701516190750619544729198105175284267542313002742135445074313023135377971435380616486731528546561081708805035193891033028621065192031542205403904885024324039502013785869132054393519722551639748065625205378323391200201167269223826512933908785678154076838235281408254532032029971639002314878599674763022587126546491970122188420022493622580713861843550151783774161453649432406868573256854690075808543798721987828282404758879897866375250708360610510653565557038797243248601897292434720196165095661305933128579494476737412127670675847539375638948052256055119573529807827088317798101120408188015687109216701104513217039713720786150940875199431566744020968165368890940067614686614447614269125213486885038098457251992241226546680720987618943807493478156608418508411154094025609293110212081786600515641889470036456634648305430422118329066756510882445435011997973747919682687678960855396766815381391762480525767169391448793642469974173868862065131508137052096245131463438617535471373259601388693920044101014677272458367549075257505296211721285956823395382119628001609980592617802553907660728981602678818207387801267301537008050415264772924562248730926766364921388530404238224704971595770805967542263829263584490850057622166021446009253293990026649192808242617423903601792496311211315028697508964331790735334489040425340004651753713729480661113917698345612413872017025931599604440815242755152469087964560525867420267946287855027925869361481188879232239926184469356771907446805519237355435129231376264297898631485094604057847722019161776220038194914051870514659846035848025074276933990280334257660336331435334763016390721189645986295488195787391900180652258706551277600963027682560659276629133958410824539213227987137310090855304267169422644660257753491087706062145135245145348960277621540876444515057176132116587226801837757276257983053149943757736067302085968472182641450785336308847866222577051374725911287012885972921242930410947929138102841829279747841541390030909685006462323369541884886103841261133780406287278922950615049427202116652163498763790900896458699343103475633424535344806120225004715999126739745280678306110541016706193615654876197642918334775704662426269293365116713926706020514961423653971283183703597060487553860017261705106969486307516708326512863339466949613121845264826720213180339996239733319939925007649761698516012153282621059558761808374519247191794075127188147785389636906786836892315702971608703090427096793465304037369299600727719333327413331109220803220078929744035802811822222866384775459542483864560806849913999503440955360088334712261673152001201617924932674834890731858063741546149372342053475961394100153436785274663708088407248278456274608305799259357143466817391725776788676536529827136797433049987195408286449774851064946481180085885584168251915991049335951138793524248785833746587227005934107625228842610399854933973282820638854389022789700611323719464928124625102154628854143896816843042215893452141592543578504811847221987211730056477487862528907589704544055492437747978807006551039971222728444346193620132587285016819953891248453570047599290894729166214883663317145676528701618958734456143710660868160466048328415224022526516629578699870666221827517168488468975070734759502470550860157351860296738329075639487447818005967919087096772652434454829918090622086605011286579053614572785949162683515606690890061545594965566488627816068538932092312272302822529287962466702065150362593375201550266891383068807555180541299151460532835873440651721114506048417542332429325776248994362274474542415926137703812832116016148196681782916061360310646135036768310998772539666192698824398887546406003632533504147010472681817516163370409916140434094086041509298669921199832413004931915850190502665360865007433903422490052786508470887101880414975214576736787406051311535186404641638631434680136954393695974050362407386737756160223369957263644649963786187780263944870534450517229836849807828903522567708864976909110916664730938125350352019387785978139870018470257463075621336491828424861581519647897520645258354589290957740651461350808813922602138907514616474392811833659216075186888573851856005678137501452230355375694015819368298002071867824189022022969519529855076346552957137610902132907212558147354702413960963908189334338403701970294160136497159769530590001902237121171642104158020650356273013318814684030410233812227791057452980032843161238794715924540061553718616176002816146388816237985123595798341166110616509399460790772096011919474101800434432126171039159255003680660336929890253526440399979555734078675380733968879292788730771313584760714598452856574310940638324291631017895720880001047832224603730850557261094961205954423123357342150029739976180214932149724801995624619130880737856022501072664902093129894913885901712643062203773294866375137646789268899144336040480957536668873406271039988691790048825826121010306601379759141980730082108930062841714178867850580585091700945897741462437696411444523271393938045685454795751451690840487659172156007529592269697566858861335028051907786777986821451287766540602337275684612299355140816987410794247514435737748654199488396028551335763000748220043625436878460281610343114534362834130454738972735919666534378739859884883281878850701395537385201672431054507548611928549569458733952836933056260948640912197752939468127159587078959417433137949420600687732023570159952193089873055716404843883865784096308932570494180624115742951479582903663371137994410643569972098223714043475346482174130802244231088126597939828406260931960467382909057209029655011926158171159445451920675565830075160050234905680668850274059404495512198930659638070201662143723130272152124028392529553217342576491779655336970894205937936147506748988584994873169469375501474916573466337838196503726382404328802451031685825594203437101435194464615075675458692011750003622879569881059062982406380193420734068645753339379962173293115141909373161378281767748269518833840680017190737823269817764852017688950376625882442184788662000580392487917393579439151455067218687493694860654729037618880851486030009301753124472307035509844534719566843839945556409429785001787012201289972574226778252745658537130012426505928190771042358035826229002004758085034108146609531906452278120296974371544814106041847295560712683927343403522225375486214853426000173506050752182406809537727567769501863561737831938483217378226339276495968418506380084579469065450178225107802476608600257933430855148107593990349434269979332493792292715022281670037003917248846538805946317149389877171899498342326815676296614757686073983049363920498200676949515480605104928288313181746802369062402544154738911639674727999432623238120257278905099899828692917633004703342900807996448419667080500831371983546801646274161976506609136768220417887624451261411043484972198367093589110115970971613869322927950471349632937694067154392923716145885913360941612865972744216915078763147239085903457608078132648496984497758160369240792445693643130499374183969570593004635550641560473659691195247998324136442393606822979696379612815195049716544020033336590572188159323267474347401008726721894010644050652557697607379886681570658295416636029349308324658549226305845077330371406462609777164011037641022984467499683575717302235436931586775216276295079538119341659619933350712989745223548301412209994948844809830567995467197053590976525381532156413031408634876157510965359847431380155418752473622226865193942585556472367682409342356475942437415593392321317784457386949571417838758674959900007236431348558450790561751940821525996670811385603537610008203882647699668535056918576111359482416449629944433796272521336113041584330126608256937561515092899217509549139278219380244443105348557520182279443261155567958241777154830084660415507489380388513348898555629283498720713241760132158720706785813556669244764528741854319520093141684468072188992648282084319169467923439190241511951267086230200094444942939908354512201467193683233791267826942517977432880870519027318425853766369606147641015761854316983484850765932640396815506231343975724058443457745035642871821848152727116861273358135060124442678740702234558152254843470420553160278950181138030072640362786524578593837757357350501620850599037337782729133879595956139426227454108421877835664364421834619448114196003377334902840740383791195200236110684162755961276551561170947835205837294112548972279084515545424129947820401579517595067170991989131949229728945143615169117301431117914058032351140272122484455219774464405099383350128700030863221706574848380860026495367184026166678826667346728097913612497362436768765538618815837582036366686015082466372012331447359592767159140283058018009947397951396958374987936781818681087926371214346884245887951513431566906881199334134311799355315429222724089773823752926965047528843510675942748476910598931247530292981948768749519380538596143714110931185601073552926930837464485123235995959773465811158813827076146396535035202929263278719537043761208689549359867661467379164024955878531932848204253883251305246227542980911274051462383037692789823858433420797525579821334241888301998540644370458372217570953924318093970028725386477224687339690424505092416541936329309423815236873280159877446378033489068861454236722538026681401253433605920041973255454947358037403573346286230207578400134108017979469187398882462870397878030491047242632757996611164978880849347818560348472509529772305603063432228212164186985650825896140896727654176832376177282282173219249824241879702176177949318783073758329286367798583600574426548558560741396990297779262071861373097856205836941022583307909966335391961776753856622628544367115767757414804015883039505814760582974992613251147952243087172673527601913969614342998740543126237511346765308057883591173627565044919613223008594991545596112328452876738803351984854200869597738448236675540449668288633478298171039474544009191921057812841760459607495192313102222903658738635393009464896023730774136010177019016023271479039464421071754896668079383731971704649452799352795304314141608538076538766817640900915472601703579497489863596850438694587749357314421094073199596376568078552305125549154278949370753930510633073791924300755010360449343477276191080783812289796385985996565814867687245677552550610510085331760427442558946716221835309066281615104130421690304036659061724602755351959393591755597449144061944085650080712857851553827729415619308066312833070559423909628422031663349491641074349499255141468331875043232335186682326543052443510727854752791590225869845258559836256808720191909965747302276144333683746522189579130789750169980332465469748957170671784131673287236903825297195224921471058079961463244635703688151803367532528317411876702465532213389015441051972891188254529363165181718422414278598793789807146685138466689484781210626369057281265274065201200296325303475459820061802139346439569349217761799484946914316208332418237269013061801916310127550910413551535453456420948169118094807080610638641441114758109897962300725863416440534490322549658051842654852646480317466360014639770453631264433852123628125823833399236475419705320751625072188157284437651034847527133231229755085021421249455445730169463130811573745285187809691713029977188763375658175610491609090195538158840089733704179113113803572702806077504567211768288001355782034069574707986432889172797110014207675278719461734769576606376541541539248856146567317406358951320705531466414383578342913430676654269116371287738026086820100537857826432259364208490126162892390679654235353600362952434550893145457417515581602422039455107033975247177242516282469843540914445048477887327792882556086356267467550496137694167226903620718879860206168420545805279141827041887214889419137700975271356055259875454660740663195524327840951902063333191783344800384069224745530238426815599845196265982715434689179170250282043910382123537231354598167924607011415873698557058618887268141016234540171892407769442417704863958438715729792133311207332991176757203413672033383926233842405746616604498587151509359574740392147386436276873586705053136580629287587579736685314038434848472195073179377333882568105495611360793080239450250769394280388167789645017646551900061435937226741444365090670486269366596997519939378644791021250430744199365102246161792007342325711325297201036579198487311963049865837628140999773518858645326933276595988198085222818623977825461208186274800282330554894016368212618737199533760409149617214310159972878041624425588837900742643969397007551321308396168781894834714574004087449282573089681761036069979668972609245566988045183194848379621062017987108126349974049665669638272779371336453939644279455928896296960195936139230729925500209378203929151691323280769357951556666763392929431194828009425516278882061098620961373655027959559861661287162622128382788639799787661757726556616728923121762206175263786402314500960285883431353681649385378985112900941045977845735464160033559092578252030793098930625990814234991038316112720951572091043790170238366205324251145294820656687423508131278434562997684490958316312778345606330679768614783685908705728012961685330468271177019993152456616987594395071331874931147544771404741619413509553234012582733536119752699314632235738870996326419025702121920954874368049699435587595955352425716208441030803807238143611959136119186546183941772247331261722268867034958164645552496136569138097253228976883273180698721287528695367109775009187618284824447285226303175930678245085596082908312057559280071122026530518749162889940870433574297891060516667133155642394573144222051631080905105092344349047812943678851801938520629856467172550369676038128141747880871327760407158637548540519657885268150617292600593940559286712463721522540835005624133476116254269011372074569592858981332191531022978998749622087645294945135352376431449426686939925153203648050432342172260895639340064380581551246331025997906953846097831246308242485839142383677453862612950018563797722965144069216622945146873837599504625784254850776500012625474702826917330152480323820067925583573240145252160253539330193058857499463439841577816698537008892390265181551008254337291353909795933693504940678843908848415959716618823513555227153195489899968488908100848526740115217591137792576997823195910840410094566572707320958974232788172696516099375387960317081502648631293523225073217529088363244897196566276657521278804356725442576460923668702044612679180571991417480873110053907178105122599532867891128915620602914255465906288245393364253320745738419945656231418321537451713313918798671559917999756658348559339122841175007048781836631834419994853093859010081036177046737892900945529425928595203298074222996645507402071855823985493508753486274991967442219492389371059836018557717411941730975939017629103877503055000754726847379288275126003269846252591750169265088677801686685798203668400409862714907909753143501786301586262823871102251984949565324410883839608032841066731523165437117509839752834024397804224402345543141279821389258628906509982291354704938745659071044752897835356747545092321188887115218624057161020411193345092664792387137864518570590303797012836564159986300634206574895488631539130045864921978728678260290857884362910429901776379429508720853837904802306974114852873861969100873752485106178271602059698794789165163302459258840255109177507058829805583469972554145476753262764975266433833600675607742366112704828038539634526931755547926691077282957228185697421588148876593215927768000744960443564575729075176797302021747104799062016810421531318859434418066422954157672109301202382801126668148893007151942864214278448059087208364213733072573449570800500735473868530689842591886505554940135237646103294965943555884640797599671850111451142683111506867183965836250679875189351400941496141898745992771215927290974538070197888428058948280105466958440251873613672564864368129987367740724333673447775752977985992250992056010284904110166384954671384016329114132773807365753591921508161296461438209092330969924421965014587667296447996133058176391355758833626422541757465697840897910766927306480901511516633379549407266682039104257340792010771917344260946112165009420845179474518602608727905080866879734223124426594596854422439069065388562190886990100555167370879773158170001674667588303405106240525575192867141649537740793613781449373689681402200716484813999322801439749768586514822984613088699637027390762714589548199183676173625207885234966069016827510057294300645470116094249836330803157914238384530878360678273235286189851340719008847676340624013034911356452860059708805645119459033875872731206231934933970713858526934516203478879301937867314445601634256293108758848416513289883160127576494548945416682671994677663362223265576464281954417816571589118553357399466149008333633087358888957759869706049977737243590739497936311986194911884121832040562667715446470625045190067501429035103542865382905581368454450144122743451334629570701930449281429817888375151879928194731748992728608997158276417443158238106335326709512121170611156820766236246967791877559452150461542160987068163976241915719161135586240807803159609471985968030739011476729490297778820118114338035928690966100173066494720561340409581795286867808820360101284055765691977304819914305518897710901526877632435417491710401917861731504744937663806698195258190757111359764926187718071812200615381306064056672111898836184969711259315716205862180215732474303420690234844965843806807481997979259316455739961456681243399675698608280361680107067333486604059351079158544777129318409533862215997996579993635370358472422128707417512424622931814639113960139016938238791350511469609494860491258145309559580375141711838723074182875770265952313647176070826843226831441304190797607832155085562860761575191451024665688657438987522342562182429430092933115797083140740827178929942496117011181878410765473328122930048860041828796272638322077435968734810845985216943351945703698787071582883767649003045908125569534150986532314375369921659747182756054670313854591956195613699141824388462444842889840540998364135628167701186203962759768958855759669938944543511540212170253130957490656542923533737778756108847097221091288652580106892029858582984957754652032052775639273752986254020578031602898783832143709806918510073965401085406903074124737440898821736184436840955187754374072746962130590244449346438917948953266025590853322002973135313584608830626743805798652891529934974340582526638118646343810154236809942301043522862362821014254792269389330965893063482064522985117470279947853177550339008230950589859021006006639561784646156854704417952371240078230375391585870143130736054143414608203902943499019239529473174792224119943715228299921741033708539222606749741505176598874279133454820018717400731572134695423436758291910828977795358483497819939911989740174847976065592920957579226408212430892914550569013316519161157719512941562990102730908501571646174660765323225687152206342990936656467805170230852435994222128042823983485702340842667713924705182634082009465874912145322836433595146835294402606816151879541927012250563940970992748997481437121895554191793744189264774983880688019904589127847868001119576863605703308041613571052172572702832775802280679885677597481240234193193277362400824345162861822853493447705270797796892921591258196918557840535091813934489629559830542586917998199193811216435828595384488270640182689731808000492426370021094569927159406075657970385486433904594295720680446418961413601629095142010425496631678740298223184083699535749574113760635782306166950157086857708306176543828055803935950812572583597016241919300511418189268135391199406505507627009303241925618827104328934633317848779887508696817868258247580288157054638720902427967600289359863450889877255446375129063048611539809247729005479364325776638750341042591905100816234449042868539937056242474992183964633990544266019088992946473708706432991276890517751789534213113193759267613337079279804142399110187383532713077392506869290879379872318418006566548635086881665585630560945410747335176742074418939286501273064130782029996453227612083180642569432454106513296925035548618383512778018060646993667280029782527401631276502245820626673778605997508059949889037440969426991371414730309535333457126021283128195813912754746973387010460334903221021147686103993538482079114999873416527318499807984347541895982917734483354530803871024529679675353283613012731827221809428324895563030502684160114189807239601289401012846802733176203828194134488326524599282283077866773432398486547405724003545670449074816572218460941018536766116720751764914611478596581434873063224125745127808578422920609585736558662828160011283978718656479356348651993350753704284482690592198953133058436119991588446581219548673294549293726247482787528639061299630835673219382303760543405573059243102586258534919847984154752377170697734596542107117371327018792235368835738999014698885927863489628840126467870571505907747887039803087146722729494119090079789609008565406152847096144898629059871086788747107582166030279470846593041962421400144087966345896712209320196307935723141559162100648337072921915449314766042527032331772847306293373234657529976343126847201694162796313612866023689704452624355618941071989250430141072599260174510283334292197850933563129235699265972736355474985559368029065360076646131662306082778313448926962276756653611320655818891707313031392260908657795129383123532214032571372041849032027510329005520584357851299869985272284017005662728890767109730176368418296346644968737373436130355264959715757225772096180608200071568913974100496904119661861123086311970752305633761029788634391066793431276674071103290693241387403689961510811001685227364686608653362910310143601368986580198998027699516076460768585850752268307419029103502592288794584961292585143373431548654071194584935894727587176306874790127302702257067726140084197877223279595635606743327561573876945335467451572013277136042638851720533439725722071954467437188654830672047668499605012227171623298399896638257615225023072570693459202952612913713160764638250322118066853704194136264634395872575452395005676932438741683472957186426041922727109344378217737702446701899377434759298141748288676411489807484656752590775903527584938099639461827525295611422293264901384528697117397871195677254636315653735319675192493135796300346932540579010687150126251206738944959028215322737549011690603115492910743405064978060085730095595446781242292477054206919356832672247972159312121510412077766757323094539816439069503399718375417286800422909652361816463357312176271979803399941337237176282231860059577211264801418327522373718321361721709854036821741811796905613703598347549601429935107255961916684137079422995509566149664588769546776233419229894820405974521948026998120309256342703991596149610814598953941284864611292257250724984803451352109077475300805607749823510255005875256224757571018642557353765495828614846088525698712900238435831921259839624351943568692894105591166950293319913143286730275535281554468541722981681070554994007829768834511527655616183772861175878473854285826856233002512408952142411147980659476242151648395892054759400366538675928125325202718732688066668820500692189050211209178564219632876203997904433089633923979261756057760480864958612534706820327615916666227818117712286767815056634934454580964835208797466993004064635874144271419299071794750305020147458502277160746690836977321615147404226305938702092897993869817200378649249404314683427213894975293769385373965129906471956933068367217221559119534110777169085757797195718761368923671822696865597783096980385054686560373618757510423153386004568702316752289655802491977653117395677439108320590837930256555540756379992916638685859926572854219342246640083022684967176761648918095429074836419267039565233396748656326586636041235639189446999208527330768575399032689190415082570999025488801718205149116923960770696200627916083242254198107518587038966307984975554558375189077950016787999917128506975225869055882491259134704138076014893507622708629692054380217071505936996985264816780805746917101430824529599829858147225367799690574184169624683192680491154274014778170446830593548082819382314969128628192359569656255154684901399915097465042890079735893722062630935759237301825429387327191423137076507171557343452702494731074404545089301861266261041373307895237141117262363455474796670377306982348301107938383816942002370020295525421551480481829309103202153866972776870142075540991181670383378446176457935169138433678965089999874270922205442958125612106035545094825012346215197210504522801019126709853837923896991161200392662427581327796675554406070437245697760248083876565155335678863650664886864273844315730708546018777550736372830089753572957507310737241979706438155156461893813530319110291791583814094937819929923307750443991278420633790798517964390759512141461056964296921184356279274747362498131173652347773531971235539209060003503252297962265093104301427427661132591808006861967227048935011531880274140790191546450744345079189583427079014973985573548289146014050856492517403548158955018762241198164724265670006956750767095808252413383958798858722000922458421741584781122301636863873876371682989073157497159602816897009735578924194349259466362019841765324448540483815814999542887058129465260198658161404740786675922484062156511559440986215625408844671312530916776923953144078587119148239225306349560771936554927531546817754648156836327622956483914582433428860181016362743364077515794431858127779351813397184680457326078077046098388067460291138024850553221088414270202774694829371533539297004509250379880127943305104298627488660049190447204861137441831671027438506002538494328198153083180510774169248471426342347367095997050772921570484184258238486090424110297370088959497619529137840994136243853121589293753150196159926525162766958926514092903151609424352710302186617052731286574271833674725395059171003615739967133370138744765977274609483428995688922358973307421924556918184510005958170791405931420149555599433040015548011625751074254638536246610771235649645425655118934984382900775699742549732058413930447655901883468800083096897660034112705640852342884318219514800803741231739797094654653005059136161536495987191938480011239714551427725084432887582869499632365814069760664308003421482162293516287128525380151591464846473868845945234696611587202096472474322445808918800746307885362811236472585432225798140687295594735531878044682237597939111006669429101001525023247857789408303044409227184989245455174713704554691044885868362715121356168008409680672850569691972725508447226622255887369505463321273210647011177142465521957060464440942951388324594188927071479815933913846081560820722425714475396303783800301386769955746506408979595454438048010949552071652247283000439957087082336998956861562301084334721419408059354624850228750840460035404471052398560007157669215607108495166844828747515584964961194873202713360877063783657655572503103320964060139856396421851536564794346426236724427664851666406343220504984790024985193875441707841197614696659821685740940080850866084086009726998046748433236835611864932418664376892338736972365426768197368163153752366884579908175785636311382662229787179727346073199280779322292760726576424452267828647343431432642898161384067280371621692598836301082432002127593082867709146979517347850789963690617644800958367428644116022596065638740568484248283906706336188699605017651985777652976962992065872995529406090079062545830155719909780147305216228053091680706767333700205549938931961361956879441492233541172936306363012987077028509167345849175820020783915111315600833424307269210572782729061806472348064698752597432417184182933535594658901120808251795098245276106804098345706532299840702096872498735088273301942862644380434824021239435153723392103211739258773988342134402700293437978920590654948537413980710186896534090696095379540347016947259753108481435566507798856124011749930679154226719589771069513247862087184169913706108540748913463181429696641070060195047804906864014453408157558707693428356082937482486435174774476187604438415598657565495679692303480540891021948309231261533133405054476365046793553868270359853534330789726707950681023067073673341650286346024337749991487171269348526191209402397630612373024113905111449513410486040759601267566418018569969722178510575815788047570572709110155258255025134643428027790483955029388125451780380560562025532361075484315353500378162940661251618088815076849260711408975222685659006400707890586163486006438584353232321583301194525297808629691394259380414766136703722186203622396253976799668408863058984345684978626743896997781367401344777872625184145390383704505539400878592989524291468995886170792688798622369671492369470562780708607413079127716784195246209865677293347702622847477495543405508589344027646151994131012923325497682339685016802945450398783758134524505469265841566972628031134321807094156376964753045218154499735134404732335190456868382498325889661291980480864024841087477317234972944744425457097675150400649568980941966595355127861820012091034192515351302304381220944640592547804658371185432050594054765377529213131906011836799785991333919579781998430049226489767470341154878343354974040532389967871533636106652798262733113129810597738392742415487543743154689687419217973331924639964832175447839326116596971780105805078896765742619580662074484710900108066443856923762462817212471650062710939935328514167628327803426888291244881313738652330814449776900358112038307149200711601569612440277629790379100539684682717392674845273301245352805506907002736440184618686147448149860735947992905556363803468113362598664501823414560714099468183783717830149697297671421519317238459933709170160164577561007922487316740776622842049214348952032866456908213194394465393898543397701951543224957967985631400799534310386282431595004602182339132689169865729903622421705598249328886317208596505786408507218189259790388375962884382129421637880340519442800172527141895173631534028815737767589966790615729560161360959196742907620856419169437749804845537271219808964615516212927753293785544695446028118827726444937196494526773832086551145327983833158952440258315098542746049478641639392609075314636156963957873123779177587004234107281169215799853656946511934534338268992076831599026467118577456115109212267005827163462969481296082721695305288466637656378686898890253943444937319098650532623222589492777686696098105905100623025173050335999705669562059149195863390654928326270270475370176342281798832233415869604760681668653883970919003333594015179375478544154738692296812694000910876976584138345113932721557879905368694374805446940409391269553679755251130877156565502897712341774053168807108123156317932710994520841675111107906229818916081898568464326528477754634682814722056254428588496930997883292464670328063202887723460605337364928899193939154055881588526228160398015909712796568630229570541997490969717846374517012955700828119649289991463862565342223681685005979008441104189026788376234216641428472512694036419473799563448638753464266531821247847469094385942307116401036511124192177207519416087499668637873514597428829459277332341696841701377442171030030034526497088028911697495953578678674846955254265709036292023804949386918183601470154884456066668308881318728421721395995120596161161601143858142642126589014342390173131263494970598477806589553788781588171549704304388601452750522479667316704649812029809358707355919679480639292689690356964963444559133069513195556183921616982576006947157429236668427957461537841216091097003361293258515753846351330252392469189219025262766792957390900609509555155016105727567814245420368117590958974697453849931796788068262290780166023025871767563234498545623367008356724980263066479474192321478184338553952834089971309425154494204546002718953541287201045277689894824748159439293662243964455810818373224772118810672413195278155457151388728296403441123176882316895348581829370522246452357016718097181276349325992833919135529703931176657041779938048354228470259862858242786206221018355058646836455699014009981556825051178452752247674077761607949986856867253171883290158341025052622143064776670833032653600685398611167752669360779696911312465649371885476436327134284269180517054309814460455116228903726498849282282715516448334797012483099516727500335223313585147961024404354518912276279805938571453106533251899715555070131338072301858576025646131434350833517249875374480406022972281664186433453694324289232255492441050365668982619261798327936016707414326078998470933810499878787071261447276154459970561665766292708105937495999230105760694835075266090487748587562344620189355071194813427556779490141844184315736901416156274614849569017442904019178141967084647451485160201304911671394316691294591003283502541764671722689878010221595773183755052612196458755508845015866222032580284575105102525816062702184430248899801204245980657278433795436906134901801453148138352723566535230211443775946124898427443660066464652796712516282981820456401658340752349157006106589365454415188223084912918724955719687136840583243212158407937045205947929891806967999276950810909762169532187453856424135630661135419805655813426724666735939604306377638452222508358244172593844081842971515565300502560879601325439133038834745742856099987424257427554520581431327898632242560519712796084435708570930648991870261149804562645418432076434802807252644330019003660869405282996423555145061407671061837568298595231473426878958430882417366536393113648175799234076359438172702239482612516617843925866177355477368361316839872636878771916013220997156447821878050135388578657002969264058263309621676431565086823828812540771844555536330378959787785343552217213476946132368510245627990372371591403816756295727375672470463266368792258464008084863319574063744410286936162178057767936125326325499175918477189381583924603568285283600425634393340997658837156979546244915816765357447711761795922657022300763836491514706860457708408988297667529068386625140723695768510372219852049710936800487351313045883503774712316375049789820728452180891706371962638591957625228903495591564542460781733829803703209954792443295879425970335056233869166621452464483172644957370910059436206996049080539270753086661853230596720596766258345456564424128866962340147289866145784107489781525401148902015756721903722676116490770424942060351465062565741016797610508607932722489536818437847297430750508821949281783092465364390818114081824581113088352521414713410010251548515678918683885629392152621453993376909225549511604500535742451460360784009252376238616755076653695010821412613444930160487378387565813840142018451780130920901321023422622875861301236507016856714270452756955641837156470655217404156921920502184069840437002920315222241046483861580772465228809184226635988219601562000838311144338447105563741778576924107108192279928285960576869675512943654952397294904296001179966234586808666493409058251474028642379259489688645111132791543587017751859411662193004524970185980593508728546101790793721536421044740683271343186287863119073917410273406204876346952524789994060314994522597189057760106388687682243483382159124430377579324278632389410576595586067698718554124739902821455758570640949103041889416499460719505983369204834157535740198212765591751785663302973053125485190969789705857077103586988019016148463781188106797317396152461599709924590399148377161746967094538579371980978037319791540944862226982971954429149772023115832753791674111543470579951851824757750744996982670922354972288246995748530118110455218888469886443910321502731881737054559947635026852426573076059243957450938158569592355177484742127120589457942870802691483698477090710842189823837184731007292919811570434099510241599546441788277007277526752356583940967575724445864706555862633053286817921218032789027111988335398796578815409153078996671540961845646126023013606243328129332481183575230441295078284690444405454219247261930590956001592683389180875103521609324969425762898150986734552665704471657703975115297397967058151758277940606909148942070068521229033488042911562460152229794051322238567611871973305509934960510931762610139076404427157386320297208539252209816894608814181298183346132799005873861172129406639777822564482000041095613909839066664098978299911801778438860229006574993539576315530973532663313919103512222673200759741635480032859942811232396005177224252770446158371163013756238212196000297057797321091400428999320395041446896742184973492610641002281683716802634298271778201474937464078913986025855525925875353172281905009755981236373594153285780416719008465780189244287129112832259446295666050450943941724329514284043145703267598021985724777199123417578987859578439927515069174228503637697227587587779082536929324833407723029183560202584183484190224032631569777153082941133312099284978819390835739817432942938864733547822434336949981223274332492279045075206432614934584053882218654514564313058751804399677642545042309115200025142868732593449935777480454969764659696723830028255057403057255317581448306166114518813791192414040737091372609372964936659481164635843245207967092195840515661234725225668580476532953133103695292580534432455047014165118096406311199916298363493441733043148595168675688684474550909231960880815609077388887269049368347161705989220658542018217814676136814703845470036051354661808784555287446105143615364528101213867453079671067608283715855327522871684188602832648328092687352613670078823690752654048629663865180939605140043530127874059125872137416666926520716708176182671703983549448913276265847598893127843550198371781455529949514135317608802894129797619856699657792247079207641542393399549411809931583186963537295515575518199646703493999518129257539044542835527451146897268726654590199019868931012040633338645133972647303154212338574576485301571655569073418042185479634603236609051907066553702828087640077311958131615408665322184343599476389856805942583111367925719877063611800461301147711857945576088171552156171536213845193848267868296675147268015569874236519633171702523474813359482160732191118970633711779129416504289529581896521952389454362897986506685667442337298861555477115495949427516357612552444718929239055078588536927640514237398932678726459097029965322675648890490257400973266970396253904069772246492635195853508318162381155775278507940628065006035358773967992158628748687602791110960004834953772529882460028779520598628718211509928103975874785057703251697944164712599099687897011599092891267674230583310782688017817750912808014251438953386010882153196572411865063377835197418352450705150568319911133013132185351098403241833477237537607223694375808432958001475252203586926532501042917147712617956316965861715681100112397957270440217592792317707048451490576452921902464904337527537667444826984236636964736159368274320187259731057120860598965990518524799537657603593123036213909936976892879674835635687811402206532263908788356578182920480569603152975176150511739284153752878221286787980591127297924203635990587938180365879063627464776647255065700884459741596026571721620440855734437218246442904654743312505201864567534409488198884980666644102774959324354093156436290769533793019583539182005319399431927677723358895447696875301468313515269613374239830393840309100946574290638700663705680128136299026470123815908812733290186795452293963271829924709085049876105616999396784612782329826190193684958799020062755114456332968266210561730938271799658785428718245035606775151606352751456195078453383365367267838242157290400334398036994617549753730140095527538433943190928124412024942308547793483912044401398622599876202054821492484525221703942757245226410741010640650911958959844565458777650547360203885126386504326389784439916774978533640668455313716486991115186492274594616976360577032238346987392228556945839640958558760954223000846340742441016139797154745505614072632648678798430437556751326816243947129298726781930914213846294026206291776535192813573383209884990139907655357078942797109793638977126045895907492754855265988728143701460515640581089449259401810891605024300770412636241852715385952092638305554137478127347047123446616091999897715998049781946001342373030365861940879042828416655874770908395573895107223886394846957936028289805407439884331876757656937965612334931625247444595756058201669713431218856841775011751053886833945079745460168807764500645967135854240682839889844625976594656534460047583705699285190233084231332860351824412981458792515616369364766687834949324161689872435386830673839102533591577665647359813205301738126795329529966639678941597141230525635350442122170278063947803541606584641775719305774301624085313853358451027783657349424434038450386856235123365871091816799922535228275936240782388013328053880596548031593417202058909009481155284296795999218318817244214035982260617379789931215105505762847932819561582202627104349102631399322396843840622889714215444385945779202517239911881291892178148232585107511441408477046692662190789195217716130252482806171659239287428244369892503536479979969670338500275800413592418232363015102935587064093902852301245562933550062222388166126712335491244855353904965509272587445289303725667811520641302279354541302470422671177681470656033840300672676166355421637154019929463971297344449019287409839493941652625755152291623116246858755469420230645327963261777335799358168603560891641674438308474113777877808483861306744780815122130128750428561404204551394019769256362912420046398287364122675112356471288350689148345273644278729718929426558296417901795249082179736031243176049525543525517518804605398755212533679454956476102505847473334304201704205518090346205078130932623237573305796577078324268226703585139957125561852722210133595185845487512665065319902407305677848245533971544173153869977520083820767178789275329309622344037002936397272300871358801086543674627096875982794794852447292808930970811533068648790268040154395319188939175209807314303875747166659774949556305395684593246073159958730675169549479318710489177758726404091078178834731419070276241734902525103431399554117379588972873123978888449276406715645407800219104990854366775886271734379521450848888191933662954746335759114568818342750733080168824402868933290861964147156065318099452785218401134645237490188593439922097462887950119062218614424229685243476742936394513136462583188741411116171310398767247773856030592977234609893601259068729061176298047007064730434367768381674064376931800291230100851651219256908605563114076003663797341951410527524579609618327550529300032242878682144142616020079125041239003178580324376921466958070389766187405830881863655692617231265814098104041620888162290900396843618093390298031334780800909139476994392126783010827989510248435563106273512685045665373485117888224797471424850859967174939259108328624586467116920879400322455624190962312732841314033176725027040917669062176556652131790244652720315444315898063020501428972224732021269814966705057541400354362291552604842263113058406133374142029041123016264523954865732260093698506659995848650154913178588847463423555641895066682657510519019163978673321578945934210584491090546984709948246004301249696291404257909190701953383595258124031698576279640026714787896424285765679050437089561089968897634938623276458960293672992551860752379233067436147333531217743724372984338582083169718302522400257894092880712852584850853820374477279278498426161558542619252084077073299859514660149120360234154955469583983531492589502658200294211505474070149553060661704201012872231192375431089219704473217758412923110702374681029527926534251604650506746601421008080630906667455558731770407053760821056101087341254092809597986822766783597390176064144922161189799136820952473168049909751947595598880811777067496069695699375211329099211004976169738728331636113222802161059597007807157878634143945375838269553374933283968687458512766356091970814484705560504710157779071102536406138483809049320860299640783547520875569921234419874277211464766521132567849508613246670206603224184597230073674468353733507912807790878882846697734658183756471977762415126942901578705042507005437491339550530391368931238600548241278310077596506797794409715733804132942274552955208826442081704555956735734823541295464942685057340968159788730337051746429104455433125016406394802489529820408270137203571821069482689495033462184442181228111988033034947801510243683012930375183272498922113568508175783938320419001496287990192488046248525470664742917015209632942911744269831724984243342267992568992008642144778234118178819083916408497340242935898702811004148515927386483976597773616346525039124587223543222653299534147526126120330515395904913708867062179097899585431290765411599905533981997875484238577505998326542219477332116677778169245150973633636025456433370995406502390767569893130031445207249995529510711256399961838899450986730635254298235151299952853287281279632960532582341535772829358491821217744750557793409934295913766552890272133420207251661143712174368911273210786572974358786486430185542789881545894069738814525314673966499447508476345461923604098490766538533017950949310138626879528043414481901353939952875731662015266803885976866292022759763599276255151962637524871779130897279610226527299370155665220470332050620927776798858153878075392873025058610492842477995546779977469029666164638815657762970708121389850671613403808452978593430531632205974265374574423762704688824365765618478098175461292294994089270209069736907510766278921619157081582462616457129559389411408944587625477487692844101067823211413287963497616518608631677517414926149489581902985556179867554624321657297044348063006703877029350724229949493886621891080237401122674575567071581419759283416197447381201427283735834082789743446005882012980206271012152495967792743933555217292060300164851858823959917896799075291758908637391292529533336629835505908134004691006311046729432301973751640683980513411494484262420126910687644928130259132580465951383587326142799291365297213834011426947890558658984364717901391950392777728660351091191960144167384049729166052052289657906006264759983379442480535145868051442785580595012043578839999880638511671330255726467235794548966218708819300516229769751283219882065001140255722552969992189658073714897332904021705744789123016187442412767855574113561408070510168558890252225499085998125148657524179799287696988828328522314621279208887508225102922240307766745315956277759260829084576926593600700485915178508078448458036468439066852451109096626126403064382631760379154289693767815052294307254182333634580090696595873288065399958615020022382923711649076487118900137289622688435799408752573133921313065856613249319643846741254036982774726785927615432298661145732851547931156324056315165151071027191816711610871175488054871835970754970859525197186352342127624483573699032368010092392262783866268283633461625704123886564305245310564086832149889852984741736840074920655213489857200699215865361173090980708404705601107879260947369797402978524578496390947727840163740650193113497767468290383424740317563947959593151003728074721589258573299934190267673848331278356348353123637856286741393070606181787080881975425967558026272862101267774300011890593056795394682325160643641084653760356477111351641413504943681533536533976830989760367750489954955239156964234448955343239110620825235322101943114069980616369999093965012728156187242929289977379545239981794718912859468468777196866600213287522652684557974478283580455213154532186119392060740813188524738126650324085308053274930905181967522756458524320354044760532100537445554507203532218565647529680021385716502001100330898357109014653910110093578585435556732888753571040763065642555925528702421388359034800142621376801711725585772469270113056243213898493410146232613997498504957832709892620694991705764628988864236717407081007958153441566216960040906473372380398634315750500120051400092373595750082069335037243736465357609192813835423528412922314529270601975107142011403956432346307546022859201556230374064898970366994707106245229896083938688772039047956191334232421481996495057398588235219985492771624987346745510123462025847931502585470509443332334655261125398783702640563448776194673764793218550729898819901546646974457059907494727475672277187726004700582486761374191283599309474461910501705967133929349666844667463042932560756047665669359946636425304848865325142155638402727728410866765787185451121945933089386230934343405339323363058173908177414627301922303095064151608090626181719590770810256499206600364328628679293030790330578509818743412433797172665078729386037681903943269185032936417897927531800087445659002716381422068751563163633271265128664880154883446734240031998610130011293623131887502766259361420764040505427573326045952039935292931636086258479475467404220697346025429960739328443042243298192358382786710805063569205265571392021802450905933866018902399698144411637506441932543063158177606658510485091692031219594822536847308133477994847277772531458631106553990925395624320193184485589477570464665286864872999609408671597498560083083227614008440684337938301733662869567828512853721333202586057138257488907647087156730428989544069957971561032127461080924251951398325840642069716651508392717573878710211838395827588319115915499519877253583364049796665263327381340116721765249490146442917626394682476295154622881004079999238919593454716788866101758553138089299405338025424039469632976275928121532950261973085013539265527295544909926713286864097570501172764899648107087500030492694375982071623796936827833001247968777162972011528563889586148129223172725567524459247975164593641037905281552307656101306634465816866410303700779710450133360579784149951796147478139257761040663183911028654727161460921187617693122355072346205752367306022205376172003435262797036875634634784728969280997732691774435757506230537163689962074272020241296274219835624734890323659782063261695670884457514095691590828410199159029688738558559892770331793029357237387490394691796802585289085658020225594212248637106241434917635585658949969967984335037177235673276979882831706247685194133500409460053612945905434619404284513312166523996746359870054890277450653400200059536488697864425141236607945788427168128682216998672808755924188228589859530517170783306490581057942260971962879858828432852873516320553086093772898775131610959661631174051930786704510911516215850221965694550226920880642635224189215243739924675716411438331504374476857512527444658828140897758024109963856599174884286496620356639936987689624217243471014332270456053597503948634820344397793514636936380156147704558744344624486555258793815629893112358223667913708276507333342566888028683982572202618630870355232547006828371237784166208626816934325588963310203001776279536538784984560978608232308402263705445678084627213167235882496524993832323903013547148140364752349539385604030008836124615841086491604110807143607381554376706581834514630709857014226954245565153228499458799385320066151616191419472431103918348871812269653236801371604203603540319783476325388416472261517350043839766274820428029598911318453354825377025632775452156922009959707098206590255623906693528941509283754808691015833088977444143010755217042014856273907434846247258204018402303202589299788731407711550343116095563233026162665391907781286938767702124586744245922513058304522030658732960632507606965456909165258374010086085195605614373365281841356770709060809004333949107881917428862514027620670744308754302153147229844582727285675471681269918059967825518306017896120721801474477311756189011709037816115166434050054211983007770384497238313442602966827080912129411252460944545575179421696418828720493850640532447022300314964980857773832764908137343246255221923871923113570627694523316837640314084249189805469102183979177427289492005214142654204124818425419627555857343114739402222462990244125685089524852032034328678314840096014148495884116303260113113216162411569269607929946786665392698988275536076700684374214803401210155792791572252408139433942881582127819350246761323390143261110139132349008998396448657770531304666281507174452473593723057166033536698889721686133718389791521240995568587761486127095113010354365147311534919164541068477572370548982432076536652527353236867136465682484507879799350577453656140474084485089812659289716523692053343236523308676888622741599985895884992910795663246035994914798966144492027184212425148527034990614590975314853655391164132386065386328674039808757333653617966960930105136093875611395810394398779741425482136675252220137433992221123746179837023020195145565531205036289975414865713538407125133129788907475199221149555828057731842090552486510429262639102948636027526752501967417368944697604692055456372366545193621994395261041184822296962601494182214694637672363899586237808406938183287993699699013417891760624790993883453424962155595561960912246469800508281538873809081518991277518513684844797443074426171498962013105749993027438397516953753397406187834910128562615031504721307971699645634235102054482832319897782116155907891019868377150752971312968774939231890884088259617982299855048713802761599437567898539090288036133132119592184558597659513128407734467675671761897583374577331543185412599251848593124787732374914201755293505935054656839894822503951541322962155318961894219748257120154370147960908397629219983441136301284923902008245438153163023638818688688117936311544739884445315907207232902012905839126787594017986357064076411840099073244721120018420948208017754531215726127313256661646766911706058522715952584502756120900403622064799765451160906837639455617650354956419873807484698247802838604661395229005563441313978603128677813524803427134420401538434147379948851773483401345827054467929287633889993206325568250799660078383334860366564573680454420498723188033326726708089878351422678841915068347872704788377599303266795161603361027244630586153989703862799956502002124198695882047287691292340922233210228385024285536567370783689256885234211772805545800840691960406383017023032707248496317736887297447945791434962241732241218153705286023447378558585313419757795555259435475567383296804214496446525331458188726947450568025914047107314529392466914982066722407596039904495721358975555475876731330931324276603749856560711794902035419064658609272989982252843316223502939465796901775430164123644236564023619479512313959289551057110981179324542994324880299821100096328498106769916482011361149911148864997279741249626413127132374148549633863952632450293590285990569771639595732363574122179217578154681314137567902764147899733915332004132901917431577713068852672406460656871649566347840190226609485867880322285800861500437842153458899132648473640925195524493289206425172737892502484594257631227337722889131985974240242581404383818504281561462651642460547731702955010657323826949902720845881153882714891033783818431091001097319705805581111166313477467803405845818206808905579919439720655889458213343561387714807702163873663531146633089158659679230732864850577416271105079013240078836414829198967510773814829148362789138389056886598030255219145706356759194683646708599298132056574219203163172857403870391839334611265449280810773513927274510177441006937723218001688786560783299350272800455298970115572816174354747309798380976498323582863173034309411734265666157348155341462601985301737677689553877028007162347535110382493080825763532619687980126237702957087463784256792046720493710537410971480891892177983538657160098696818349821085756263835867697270772338513662258629378762870665203766280507203366692674244742148470868070733665727537354118546559649327757250867150507438904874478642151839051776445838735501829906751613999292131271000495631525803995990698764288922161090757923746462090551726594201212580782283522603467924056254758665113029079140162141535708010211299232261703854219889680834706741180575345186678446133939064221876670861436566085407502344493313663162952555968928394656320506993768587308176196100138227786251118870084761414606819193154233093357745524304445968668038392544489315373752670628949729460667956997756043991183437201683364454425875301533593282102777764274731756710043392455857840625603910182412929344923207870191351908654688124670821306756838425936714548421027421379986451806157323299798020399593165427914045851190065036660694976184329323069982281940723158083048487827657418117885482870671631379630385054129092255706986736121227042611191764847588874973285264708255164511547616223670909804130307527407663018482070152934879895465795083294141994027504492166087465424100617572177032066632737214581092962444492830990977132281502660583904609176953822287092948031190090278585194023251195101009404915154078329941560099267829634936720911136081691708697133873924630303059907123238971750321563994373655742981606109991005814143481823235647546721205555142510800534932223170085123766800085962159482988422554281759188358718083326162539015698743343069829870052673628042176321231293572481595513312958145000662322911102083473756434347731649594354768349390694963756067269918538132056762378856402995507033080909772576109001078283857342281007655201280308131967975135215353590276046541912992605152882373208737933101955319221987363127635323598213705717395718348791588969590069552220241214422649124795532687527667749134164748564373435737777577685695314110831043355486622964167538691353649268276152371346999715449739979747033823023688363076805835516787429828783901091719284644413847835530954785793488173189190289348480740052588277740494772684495021161138491425598929234919954218484752897678186267116209038449330166905279047967384397753464611562418441363240333981085053024060395611194763655377489281528367698808355607372382193435493749772708691601530208834379182077826428092701995277580854811441874578131647524957711406675146462464614566923326193196486569183250953752754357327150312145491266229685459734713936106106596547960615513941804539771200538980831034540108848520362245105424207886627669012942708546869429995126483846720253347378197507487769082136568939833783508964881807577804520732824952356503757919372968026437661481031978143117499108650138657037901697257878135967440128678878165684354618236256365386445877563073151820158979265554085026791497111977155507868095319089647206238244827891980699741185026777290816060448147474154585206719963755664132319947435017063245356200402485977708176913389624441673296409601167291629207254946240416089185309645692995757783429858193517912603708889115505268782267002293345929364743122153681809097561837484424795686388261387151937035428119272412638809832268961715234526571276064234957292521434449825449121487876981241708002185485538451988300783813534324459947972509677302722434967135336469653148179336066863519875468809076819980510567950344518219958770202465498916773542157929749962991962488880989203168868286868339733599167955540381855281093040868137155376932111401561958912504609554399746912464141358668786333909585539381344447301619515492906398368166014481509113461453568537546041924478633488980377775063128443689632643298521964375574187995138538568453069789152281774461590448388891196357539783478351776581537681852702830720449773275794730788588096189048810232288639537999819416356765780808631443891711249500726460796737995303807079437621828915891020922567540991792788288228493106787215539243821818335341804170709955193727386957705181707889729840361261298856612282495239597246774108764825898482029727433511680978905804034948595002563422232791390081350743472131344561006866223389059412527626179749350816533493523370331086037399466055378871171434264490899425897336119288278386802418559539535548763071021356362249884043426287160536377500942976356867855045229502952016953161337818904376650038764557593050907637787555202249131319201319041181156131045749510324333285611374682145097345985069419847855301194825433885637749714211491951874240893195237219912490208609866340969472498185218628820831713593193072810513905708406923865828019289458752256268385975638435128083922752100160897610210739806405827383027341121058475401728675277360066052645580972154480234197469421789327798223984103580137305982414068148190614733744477435579137050838227642188596461129762816412292064096657734600809907644801757874286261642987818952685068995062749612509828059223055355898749629647096254253736105536994991161521886756146437981720438149129794858877994324650309901006767997903510329472206249626364730794059544063499405608337259113528099656149512228614679166560732528453008884974650002495121175474445801214089049447092922984030775451156779491283948416251638678290628835433868978571774239949271875146611514679579282940471714091587056098819204147745119946103533033869534793676763977841103975473619934286795734333259737381898860373301804881594018338700300972304902462405830191970924792695182030239715820439736650276064085172302446465002471033957020637421164525169588841427449071641724707354857949442113187399368004960518723777436742326520105337303992825636009278008375850568742811574833818067405360310571602161265985572487117652242172743156498297069754264526645093409674857875056025082804265712745010377472053433477161951092630197496075832720154558777151694030316648927530923889904532718848704221023745962750064214316384155312247438278502174690001584231452792739891481197235952779778175131313109505052069846840989467424518875470380702045899176915723895871760308452530171580187598147542173976516514999324459356930764210938397894925227836975572129548552083289872487742293252850247814682051867307677739365834549971172267114294488563660637420979962535235213484321475124030310993652697200775037769600243877850639608850769735506312445510550789274221951030233837173482146832048121136831455623171582104242742923264753364563774075474732752634359421678224129610915240691685733371756629427733278424324426373490002400813462035750861080910518680588548655771078847269699451728028853450919547428415061753279905151299494241120590583457333207202467474647206420766185779950743097139248103172103369925185055093230630526388318338256612601475214474933801272059702862460424971709500322452287976497348570837248487275460384594679324720030067943896762818871435775309189398453688232139584628192122287077780340754549407062811895946368443550081612753514705109211715750635740924030191064098946649250357239968832230391803366659575362411968510438511398485213078129990164165356122353268432474101666130461674686383935859317472048724591862776315699964295791309546904949343257618593690324232325430617143750558115714052279511107325957425477172213677167555326160661616149850769510456304469947919127468476224871414059308551644811576443720807925412368888571502007954932777847877645821329960850897749460509342699545882708260527899112146185998254747773919903374500123064889688018016449905914982398805394714660952675846964919456360197770212013936186270250933339764225790793852393191874694475281014470704139743510155907813391748945896683942423397127437404294166134973538767365224860893538572144412043823590602880434166916460877325380971548407928207134767568094994089652944842982454307436218190452480386710770793489644206303457243857212368569586753270384545665749721818483165083501119855474941939683518928751438714862448723799484117785757433115128045698086073583118986174067285141073406767241481808588333334930251356836499318467195090875666030982044911429197316945592402293142577327222230341292883339389170818062904773731849971941378591771263906622764449420019486726727538180705426795875182401402853642544913841931999583962173551602065009968601627931467309126224826329155510583526627651933716485670468029401336501992970337181661271998088858980461231938959170803336941079120577919311462619276853142621968187031123296406779658740019812923176278910986335427753645295989076365086060709823089457213429168107446165902728382778740133386828900289076734781828629617464022979499003911291467671127676519791166440119960108818100510450641884308983005218185289604885280784799893545741684171833662020940083017967542753873149013684559843630156432025755977922081390427948595919992515944669880648527262138735943361347785087347908427329312607783496241806109991364270393922902238030718451541884787865215191112271477728187097972590721131833472272638327525736676555953857222327293410786771195363665698304994206161846921587850259885553203672924163427428856694094840184005360677891340163718962234185029025301486970630127735059170142716719550268954902658725914499164317997638288098408447365708520120538962264877600198175930564249961140791932636960933259393166331155284189414527920157852443643649238456701392736934740957591247037171887369943538664780265389020653408632515161371046356462509341311572790090442538126113707959476436317517601681527142140633641215625650882683263949266605307519826536290258948752695490305225694286442681023735128158261429974628668114854786172261762951153251393273296929398098745793153102829918926418538605334585749010300678241827174159203463716250947797425639598389206386728442168045024742289209704625949752282238021043033981233543417618607896466624739336044218504609742893749896124902416088639752722719142147911271719071147655222365154398920733373225303733872629454830267581438874822808101549960446557249644975797900517004011304164319705039557611344691630402604939296954427542095739535027314816929144636808707456049204379124135350429781257669313926528293148700194141794899240834193380344082806708643893950689012113551229441704225472649124990498156720559099022838269148260327364056649522342182335393903362203832626694011568396214815092819242716413324029122971565325387873578344837443478711676332592422739445146173711122756747916554732996592528316584987225820843605567863258810004502886290841105748892883599058746668498959018665271946993668288587168035930114959416794918986644646828159048276960999768972414764825059356453283580462348133699679540845391105904021208503362330084827370616488730165367825762023155334586954204602204979156565033516650304757132890402594131917928135630017110050331717515775544836983783637334957919697532391359295159024227839605911387180242654439177162971790621346784404016810696996349922819248669118747319939831095957700355008513890906808307403938879760378558940603288207226414285972705578066494271035377419880579701002723659424797587917931389965053257724289610034703782626543164865319198972181407244980069989785669084247089029410681271798836399611486242654981292900657727209002011710874470543863379846786327871370031871335752489652102619412873577438769910070260951976314553924339679397811248493192654254236918786962048536553569610861201056796732481292605614001975941418587680849115836714446695128019424374893020587327699554645963300170714647039821082843414526229912072039461226529563630069156489385388146224995188019871021956900160295314516290215519084451044815849134246530942720350408854229547019407688782228696819877179051135769510294528056442363804555448908184016651164934448509910287242975477580758850508555262956116293093273900865335054944993620749948396850981421233041121794875617095346828930743065659361405474851716651785820578993802971592602839364130444825177652797232134723776287110089704490726314662027671853707572486212780721704512673513490218575503972507948270186641358744381873454143369064470470345087030444458951985458726428847559309683797869033521978529434281154218680144564923484879785354715748065111044984276099741933255053945470443058584523831759947910758097506135768152558332094014263685835147781359793123613075830578024815206536870343246714631419725994625078859373533899306448862038720304149862955556135031551336340522459010469017741148479505970351949509293014122975811684215653213078062838550969690145377932858140828679182580707106539231124853304240761064404659509232251017422275038388964027308536801206270468787651449462253217766508575696731603739124454084756697891192043878966573485750214452206473664086187638856435768561108908815199722262280749681327196912873545361152513833666953094157932615476187677682809414527359823877656290789791833807686722893315186355699410631755716573218868821289395728030361108087828410159096265373661705350712391150659315880013409757882570396186699319840856412496960244290947285363147329964907460683537054072067106445802381103464532479208682539818706816660308073065096484446103538817511962549047292433037852281866900060474279914783155265505202742567716546539152816580680588295778784203796579167506440901653928954790862155040366161223435770020788764060780864404087374968686511954721712315196766567619668576891356851986042164159357535614971643875299824095667841647643509975386132118649813564273161801906498829325766030714030788170058366614125500477540715958289255336806023742759988712003507098523162394626400429961265050845683020781318494918783381867169617606629999634493397814033963584471637055055682348814855382924242696137475004343131083317821803516613164053295306686669950795286901290867090104766939022405583187926499389541710174405261190374836875037736844669351988981050610158719450342628567921657148858644033687108266045679193431897601414513690549280245209996666091639065749419077515636029605311989030074805735701319926768813491500958682429827116550508482186882116378734365500790459228521407119733186324239075358751935127062028203445523270594107928725022320716677803622198393877351710997401512238399207641940113541448218567838604700137911299753834385898005446370757772926703194363318657196822039761231166054501804504761220589124989355501548252639188758943054863638267691580123246382872765018569819375576585235577409513895132128416440745594457890617192065968072297128634612454372150998580764455893318885740080238704894112452965294869332381423549336031821389339757310328471535374314924901788319683857471659701207339312751292760490233696715327263509947928371024391036140029790123954235409212521009309362458537424481141308317807076814999143213467848172195328715358155973956748870964551239281656342829836306686198116986829354965245044225870397476181790855786505989782271369145155906094472306439097913633960476296653500249348184090472925881317834683412954030418985758528408346949084303944480041640730600189980744388738221461567204209324233132418603841373218174194907954622380872835867524124732850906724652067082261352725423722238844820381017613584586937385219020156074781553994807365939402435239379518657730642590680868164409147757708016784886433470668694292470843441913612060479797605815784725072835662108855509164458777557179403377218779515432333939352983196507625769730052528026755939107443777141778084950500846207757888045608071379577143226085974651593346539010137296832544963973078530592291157412873914418577973000074658831356199201298917724211191703780876332685431846803364162493299221998557051925990998142341592488341745537242983538147812484201408605235809189304044255400014361710902840613645943194255412166880564897985909363164788882176081171078982866664744306654042657017216677437563247253333358381446061411403404192682418377750422941913416755708026013548137680282668344718532676000374111563055623901406219400177380833497104831514268796701385819762774079738993166327102527258055641139378873489243121479173008084082247234257609995257361310556909250427219619426635053535875760547582577453200893690407942242493626629572675294687154344656758400024444572914211337535965383795903060046898511908466049547832924120773145349515428422752248417878175211215898098740344461655208403762684822626494273012432263672824079016350306685270839320372518103512921155194296122035469651233461847608563846726115382108183223609307750481763587589967215142825875256177161159498853712497220468009877737304731202199291821578459765855320580516577409198648097492935948335141495432267283492678454366938146886223489293405843308131060776013811855012157596824352871769624508830277054314005507118268889392788795882132648268712582153596069714978152074777320696103590383498314632736845124175860972210377644274462091091428291729609838559983129207200309358135010920514004845094232217307431607363336855113774906429534906605362641198537731526067333668495661305792252466037338166673222952228464327240093252739353959085356705131008166982255095176507852202051216741544053507062415188911080649861105233889734430356631768748383601318478562739244591682838197618930313277331276170552450760614803346753867473159429572754897740297675324071550626102276239415164416698910127593754099237640687401527579654581629258734121610122893492855228260095872500712692248972785000778115818926482604299964168635303638836944748994281859870618702932124117547064388766453373115487167982514737938371596246270061617186093334303308910023631336397661840008851404596597703328829972179560896245581569733546267881670500795667905835799301607611633001487717409188501230951395685221724205139303133603460317623324344428709083953673174588240707203411700346061040028529066999386899355715476899537635665146856227044790768698280298385209834706522490598436391630016660048226148625497528809544373389587969220003532384451225801798237057794146526264321957404452597992388532414825610944114744274963035676470785659769888038537472321130171879671659144788174410524299713228890599243066270777174561431959498874905557402053273646881218196896258531939630940378821875290963207139356217808403159442750446584601470912001215310759238126839844668450952569725548951192931233633871205193730843470672328609936219682595425933013957154340920200563922911279806697846316988782789410180539234689558982443340517721277627126410521618686773549706084898391463472853068269964928453755316519726388206262551261394405328422820952484581747043490619629570115717306569036222254172848279603816070212280449424509363424940589181874509440081045870125389958267068239731881083102728142784627055641319045344850315693373216843205605608552295298985623803688493609418076599284979438060427295074562245883822167916206470768239663350114474461512934730334590804204395111670010267870978216332048939736275096573746157690450324682726371355614085214759328645669105714194236010050769561703606198117253651220151775577575030147476448648326246223815077419952046475756523704266637112014561783741552023563520865843158177183506865655576262986547634974347243226451730209474336540314512106958464049120672248804210271953036940288972279375300740190062616998709951483627223829422976399896129050297112091589324557360083239089427980800846735880619963699182940097974215017908370958618887940346108129261334185757483216624931645002468162205877663625169037718526840476099966986171218043549906330601208347757661152774052314287296797570290856149116090520776878186508775989404127036911989757556393881481373790607324948543293502431850121181475272853076477609987989841741239357276948562610668195937550376687481750700510141284783499577366887717055492469828685637725295922265160521962600762636233013730715218769472363305721969164600713807477334043061318896268659120083662910773210813993547358979106763357171565418162974112672244063063957390084967857433982392401234983792259392247896576557045580728146713470190065606033617717300628747260651011469879694196225188146110858864776209469089531402117626751022053959645482157431242440015235273344288239241937348685112517746374301579454020644294146617509426801561954519216701327003985254879107700859695969750901775680480137376620984967328132534224216378820899896680073923122321156803676669624856460067455438284852158692396271546884318717142073488879623557869118625088580669791053666390384610423342398159834618268423260646086808149322435162427932698266721787882971498894173998685272020194594540361481193728682779569825117891474075538194411256581521807970875062412650869737331458416863058409264403911650489330680049105763246298160323464623021937320803659132232393425906966973981853016127267638628972914315901933185518202455493886699326600269291534461583894759833428440355550252820569108159017592309889334433192667827443713901583257620325395736030512615511017833350557594656212590524244785159193608262989824695134302474972452439055627656758694117008739587997837492502245845802784022725657791942231396651776992225065972467252842202501189587146147097222560311964184460469850954919674516159257874252357167321293805127492941423611843931631455119396537495447039290430476479443929571636248987357899473481896573836422112386909429545723652250937795951485071588899488869515688916419565741256827297512348893225523298401460108524692992109311139719067682664618488145992143308813539436700211939456902012873369507199024603695870773227767019245578106268803483439190406472837171627010787608576324192125637852514376052814659436251142435045573433715275275866728578728502792220151139253277216684178856744104663426447759465781838508592262015216089166267610319623629282721668151448682774337958402710099970775539789543729325733735430136876371995901557759904986403268080071576305945940832811530119492342952635657971755843375236153114557636112998295770490189014011795138405874409373543416770140026532044271335650149289064802794342636023075974064238724781421899264672382817985674805629320637789067057014776212017535199163196902604096593906789461905239207943040857831458142417755954235444678063061023285483160418751872108197390545013409977888017166905930569940005724439499500867271395990401835364608826250247076477838872624575837311833209619400269589181445431656003606990321035056875564011815594198685354288915901920170237340416882340078557969697907659929666740276798557743259404388580132116434572703307728029750032653741988457128624249928123835884922667188711061696676077715475890676980794043762606392719595442742774226322799900254386623446992939321702582349850756888427110002172925904620861398900618252454101618744194543028039286886266902607236523120111044489311455714744720649391758714345609845768648057682129785017657493567688095452811150827070480968587706271120047109341719419798500861711251961425829074898174303783083842722176539478325065603070189123566030667960965211750818277410439462980585928248499669041398344584516358180531722675652790473017525280425622645286535620930536661067561357774497518559833234928403418258347054123557320840479954151793155584198914836639895032352892154131853995511392481466241616686345518979492214993209061043581462312289636526670931846693563982517184579460577425815326427415903717989672993911417481657312873301186942470066749031613850320330034936521362089986983185872310945870011371547899387000474135671905006825061969015317316603363712504074655519734874676203686843339302386844792305799261505804712343142881630509403649473447904589843868237518524256952060743709477487436561653266912453923401300338665033865153043846095200816625857560897573744460877968132847703167627989889975571352827209785426309376010172220584362879713255305260800223967603440662768158869036157081535621920607073663147472280448702006609553890625522769701848225168346829569370686549712217698749642577784316553443393728018360970174818888626086167539612494373215865432479029465932072285479573728204668698048653489010945631126778668072591239446979283547056349855305184743334866992840761062747007648537882010348786049002506194405900049676880436551368016775719554340370759520845713232327709397080819579925841497538796886997942047334090931395438301453674194724431574448935898620483008262807050210774535432140968199862896121178208713267743743349578793369759005343780696676392083789089722854216780237474727400850669363007179163318286886338844455366442210177997899575390474221344410450987783803101655744846602847881711945062414982088170237539838052584869666104349829146276091309664569371251276538508269418847758137399829736317807505449053289384137067706514414133142954923117525411943815278632246708155873036460884898669758083573687295201920245565595943272270078900156484323943428224590658524178747233339434219039335605112520744086850240954927010376659847775098132361654490115251301752058240723886548640219211818781622500672574913820811463049683111221632097978491262846973421583701014317277751751006376486102052868723583623399577757818855270368319353319058924228173822299604165727991346846134641544647219774050082748895498959965369752261318981984429059069928904130906326817587622474609986522353115361271562947877841024009445684913906440456636819928876669724188738937565939183652359619302163774866949116750698082173688283148353148781721467174047962276722067902929434976840353593280825930146393394823255381620875139248739767347593812451295648270386595099706583627766012605785282848681508393339810212988425443539572882454460647289314817977251398654300215331414389164467400463812462912447463603692758258860365318420873638880656182940294284201934838060713812880092563427420536814624109420155457817505256863059775629562778129427716411468593145367030384582241232546267463936349997164411642233622892716804579706288662133153859829436689585811761506104085234366746008609441776735354422267564467666174316602144615510920515555650021448224379459254644832381391634138439351131746928624545347840634848539694407542540148344586913296429567586698381767141711156277580506463982152427819845354715752556031136960280398871660333664618794773962976839112529691619421855491364161956831214731102497092284321507484555463924616264147602177983489426956855783062821625465691339958481927050423541441278236799614769911893583234267028850737695951262879318663543156473658336104235952391166759771462459710876881229826780965384432013801105931504649852129303899917744418478756412512283200357870365031279732551999518257845696319888677274847576212296755542403863473740401785106753609426315923615977389135124436314022350438385391648943654082941730406688489077869880492277047857123537207962112667245633339682322406342010389953801471221212256177534771230180051288645164877882693736024722380530176944330933009129802174344432083446089617036359027583264831460236219981614562655631158407931572552044568779175705516927365473107446896604878629554272928604321190578233672241566494136265694490392216427564249762152598842114829607116959435087739996867934930898124419310239756809677650086462802744939328475052561860721662356694123430622424727535320441573936718962469904673484197900297238820146152759301297745275000654412663986897666198451896231989675861906912249776988877531840106048345319441630776701365234112702849084962282115662180663055526584208759578612125601965942655522443429788694080753993489746000832240286798779843357312134982555585611456198355381193654073346165030044918669792849809874898389551531003006741642116513470188514947481955915313071780268409913341543741294618544762619769846420044055430614470170985991881856750395706409832951307460057428822300417914199244020153576181757606658867435050154519948759133702665820150206376613207209276002692490171896816845926655955519009133450219002835540733619628892592981882547394468909995935417534350534316599211158763252760461288085245532788992933385190547721376125585212860894315009156448579296904838495570136787884094048797745011297715437430371702728145043261743660614622157762409124700768480337414788723011282621899788669753824350036085135228241127523003297270811607422857657662003890691046599772552326747547165891177667091481134927451285778859336220568183977793423021457844624984264085277057539882907950625978082058721102986444638367495371179478930550849637086420891078877401550045921770445766263461783710490910493678041812496686400217864775846290994466819526488084672384676494465144088051001185206608526003390225876717254360734929402838692086169381089654645341253836518724877774514077658767350430714738590810508914477842888354201655340946027464341318695737760740230900264915932731271285754254923324584067169804144042599212379053183436542657575498206515494410006540844306312775142535913000549330639606537010275408376517563447928133142790104157740022644212712955804902897605138962425300120688812222954779057244577041169944364279197147260824960357169137886243184080847620017370417607655835786298194359901523107729850926131491508547195455692817887532541056482756044482390093014608176419106906813075525428452426330657973121304890734985835340227198254447904211452976614345737737672627714812850574775627939290186832032685002689458132220902784087550801915494814156714858354368921479967964090145347211695748430976779242033818799186570896702846863619893710805968371001002884528562512824185544939629203758971631804343985846517461543818045864576903506105235774033808909574223118999569366922710012903630793352045848171695248669516205688459078754820637159535448183900233118593060910680722369261849468762067488873742380650475348028528342738427270021380229439249011724587030115253096443011156156099345334929944657062116059015045481538223306903276436944077724113204614720299136936156958819665550291138519951885015930909687498710928525709094932695592802749053897560964868118497530012355060506113958548000184553917698229875612402250427325488706396085226359725075110665060305810118041759480403788181060419278283699654765220012231769994898106376002531903760485425282759049678262895531568689686664114682990676336389066889033519158905135068186149213377117485086197914050671868633221965506348798465465560762050906460414134470915516619975471445512085701362767600717544337502380021686667911468810869362927258778008800017817779571790686584291567878577696023017391874661231003375252693487382380148074446382377801875585669145409427048812275899323067248456054370088575664944734173436501662655111889183964582618743950854554235424749512045013421728426130374080109978796642093185034962535859849740943428820314740705222075021857880730252789613707274206298000179618811387177567123829267116138534904450390163341933428595874083128753476883086204499086029832295839934428801594890803048600420738650011190880358251402537973841935574543784234120563228709428313499286623829959990136883605484089281101646883593683349801102217323699213477648416982658808283045944491687559097653983001103056670059361847597744874139986577184006376058249935989877157076395339938145750972010976521352220987695232265481192106380219898184620544542823385065166366450676977017468292911199954872898030949666237665009576023750722387832165049001295144386959047370373177234210021553041986298726024958650461305067799752187423076929227211434102122993336851144285024367990320532888311776100959776152347064795101545614119532494489506845328378943897127873938256994188659027536785019421048677571236500664980909842515735015123711319260467656174127983194261585362483292745912749516228080769215767321807603528346163104647494445621738379162249857852265747806414810146287973879466386658264918110868532664086941552628773131560419315392467320642848833650523152938833143246892424517049897083240283270028357897474066868289581081745615777762936270604086815208614746304765625515661389745902893706282612986559421143461474103006206109436502391535094002380944441859057983749311555895126643439857870721054529243492684089667794531233119216995495308237997994510017245291376772075669553456973000753672327028442279203493073449314514956119148153707452706610949842221316133256482718555731720961047507072508830293027776557321850808690175949119534407866182098537773926771310138999274224609404189067413163802685663395016961795858362542900477428086281355855080292263865989971688466943400637895719199053220320083122528022287620800695790506928607992119997981454985081680155079614363888834667373166438261810754035506518747205176703959656133399507671833430264888296179443416454274206216550488402934198663167961325859798697929875465899777671738041115094322966610290339190546604258335890387249338181218741687224903992520664504050108711570990568838502362397605297087147952159899454720709559716144192531644171710829812619565339788665348776668935501388331393754394831318540119841758305957556623609181446432977946762062345069873964608337221470724577481744397439116198772270767604051150086203106755340052551979656033421688889609133714656819981666259111644071250628842884176010982971426035545655349784252468627006172787911697779578283937571318884439927874551288200709805825801825820785502440829859163402406066703807726534366916316828746156546100513250870674396035758041273546381753629396882509501779193764392440871562587427626126404611274315364821144423690211680112614663776513371590008429212127584378453602328624725895367253465051176394665210291860610971213260398525158989915503026679626451465589999356472990564381500140840383300092346144356089027558111324084747284673878032067532819237800596239989280207786175642587127169873751535287427034255194485895096912229699449451338017881904741439096556736432847593931155400581081659508608627209541996426857250485930080822277133990709144735789908260999772406528773415999353189132315055452361284822202163121902454342002053455696101774738331544322118655373229259796573039141491879195322472847457396304875243085971479912208386688633207298052697966846684993069476523610811450107023654776221531335140176029999518261107537339384090405958705388164585979391630697599440072832985802731314040536344254240903074628070749282914189238150946569694045505139098483224593784848274029227281780346130641491154831204405112019267248478851550954095075566934944877756622666839852348357513256568946204049727598137642690577326552525013928375226490208355695050350364780758198945903306380402768387188816009967881116206636889318865247854327724927178886410467671090654287450168173188685039257690028824678366718579709210940284204937311993335481097608525195529205175632144755973752806001611646288606782313397842294563830206115156502600942755624425585477328395975555591074888979776910070419455466576778485812425714966122857619822431661369097449963400901906199033891202598696962405223259156249016520528275491895591321495084985021004392197464377058834289411410255667624740585901109297865003559035791407523859384680474372221612129078537893922251287234706807561449294528681384220984727142948515555788231622080135523469417529588332611836840615726065777450413346509610667241665746527840920354256938918230715560402455052132651830487901587957560750657600873800656504304584691111710382588338126339407092693221804638516509192469817105756581236247105448385146725410313382730593135644929389730921237301400255663423573078194966589592517322064966176849821347014173654172712699819888506930002584656654653779580988918988699313930236383353753162509943524144218634740549770706909127215633491632393804969269939232484686392083476614946938748518615184513918698174883181356927276074693782540128760537931338730333364462966802402403369191924177647788720162766905806503869012124095914426020143472428687700243848195187040975982707696448270363542437390541518118170671716318888789236219802691479989430487233703085576404005943570583064731287262592553243269632459289097566317388559133380125488382819331535574071332986712914017556164458645280526259189774828164410218156631634859540251440069567409103936504863382568986467903006182825689797147884349874688888582549250029189910014308518915176940365960446971680798363872983293469550129252900574081722786954857709049609029783486135152194933173889118818913369514117776804311363503309947652704611465478989879589065218787565287984125666090773459875731811439438070167348002340455231136694982519033850583800949162257544447598644254730806031537610907671340620662761383993938224336487372275911431211640694706094256742666562603054860795596726199627526842903714511438050200522526589176972486366965854989421636194833837160464173195844168419014612462639909084786705864675552400249419405793758891558400079232347212803713072513797214906390593558102728231593868841912544316517151742045258418696093170936920052075598467776474316354379554726569301074309902944264583978042322975340309382923790955036522656607323263342872200748399535069462952831319343945401736433824533405737295336595330035699011159107143162720274897064118601911885654088151267586761687631088439980040374961069981710421945101209561905118277038387165843230990244854320885734365914728974634088483443029068430353693611238652510378689678471648043306912778871921511771751633732438606596552011207656054451622721195726898092740226447398128838950211274036033401525276741728430115531631018101898074545862305063321929210849032949125116869528838696088888557768093822736838824683654913207289618102532825282154020561210723319584893272908138692253278509331573410693505023275348146947176745048819192527979082707594583376002124070870727769158465484367806246561594064680446109949521539878454319936049463371383158300079350939942202736776387800981316944829730699430191056392329354309635376443698649532586037339003391653759297850294000103702443504506799160638350311285621701220625960813304199405345894763106401521046555861919187026481398342889740746935547544144018225239878691585546938368045021078088725276685504728477646837410285920368811123356723083644053237513752818838614366665211462786537210916013784111292951743917046318165742951465005063881179113216176561344580126995987371055219294595428945771179214504315186895850822415966337589613259942337986115102891935086183576716087313293437755847015558934393389217515274511452945491786249454084006861671280530209101300544593577576683376853554423660396454135455800641036402796813934629800156707701478117068295593544689419980395953425980269770161025621877048653150345964878171100551952174964529220121344085100260616835806513978899545700516117029209013568747078715198295754721129987835917462022853150863281802458323045537502640020436570064264883698725029055047880750699009528474271752246979913926607430935084454933616715870318427507059387772290077698650197254745102069464588500174706519052092362360281400800875445494038638884456273071022441662497466785784185989505581281745852945684832136879028719343073410717432586221138266899823079814631374016123365076213759807465722216388206863880397566993051790722664878466970737795498513872876622374911215879269785987927790445559125881777010257704148219476042503212715866294663203243301363360775792745205912589927083346576696486187275660962513908655041457720445638695977796437284717356878955127275029640247989068247392304762130455521632767336273377796842425520379093671622896292203239797845108132006181815413693789790140556929537146807734591687268317350466294943088938314037243558934522736069277507215708293909311259858341711407005893009587275979390381324972288192279255325125571528772098158825710770132826420287782573839816644003784640999125684906098276122794660701197687334713535880558511110136513335362698229091980304722768102580872519699823140239700804848937024345368817665318747729433882234059501897131214998486088908943819044439672095499533363338693658306858320677610021734333343630389887218721249014894954415489486856623753622550704065039643356148987755154801443852989972391034515239864745086246035297720345852849957796962615217288800132195908645879092927181232745871505473812576358754837592013392309211092400381203147562680844423247246543166830390285968933779410104733293993314850453855711842654367987941232622420856713486572696136911350482482594805729860716734298633015451329296375145298895219023342974973467325332318914687288005112086151287247006451493943382599651600707205229377348876513660173386972600991857445462257957633926015857846698265733203874854717647089974069627143884531711475355794169155926309421027054379066237317656611182404612283533792748359197520268543132252793940216501176151859732145530686030522353860204667535230041575278681509504623197262452862323838816345394354817365751715717295388689823802790156443693888516724587586732982502008613934084251277815464196770098351582529694880443621027118685004809033372774354985976366614142612587322630273028315698448978238948733731565494163014815469405779641933115266330751062954085988328329171795107471915569387298147445832478375449511009824306832006179480223521667828588720097246740304610280105339259465680183526283146635544411946899122782477685023134748058085718631255182532268581650169173482459570309268894992987297623059632201790373897508066385604562156060783440440393469443815107702554840363221240255408108330108508096136163913086958266546822916763698202430286870607951615990168831869609049701551572725953353510099945147462100537773992644252852448905545340217617641693053883700205320342730003654164706523904877641081853219760510029523677051496620178580898767175138005133586125435231766358252859994667577614789988903032567239250733958997838132109156606102820189611660841192205044714738747061436851190017032789321564072678277263317352347171037269294365154888885824049884456472654961270972349225149538504680325539217365514485727317990505898006048050518556887650471318922672473002667666363559678654478999281529107248855087861319193138506084678090050095735415507850609702287488680842567964258544760486257687029708536429790981890723735966872707006029221129810353725651622728757636544626430301705766886241535572565389675789842122774844572626051423585901880597938414462387861340423254857014829844567641090297308484006919077760980320500194613026737358465851782249200130132295419090743653483264303974909354318803244015978898091768106036953421513212934910504570213757615121839482023532701408421411238152134297541763293277708217012729773433175541220191171764070620164992919647765080419685359007111813084437221592731870195730315970782517116308171152509607513464042533838394119971558720373706739764636303826005513845742314028511021097388227101653985368745758437189586607046560763293141306176080413798026533977366266530393280158975381485840435820404158515528182801967669094716774876842033174107144420468861133470616204111880836143280720468736412950187678992806000478607361720515015442085103625756436538732788288825389555950385545746528677454258720507246627809453284909970538215105322529833853012419950149116589526842306869663807015173736383812037383465374958214631741892492676614692683586857933650734351636695175536629458328712635332227675363507832803760577232282730910297454454505509050516701433322432348783954380710289437075673599276852993730800645436735590273147531459469996744083996747741186274062799917284640766080543200071746132947460452508330577649172102703344827439477074398740190237848326830436457660514009189918001704512446060572950907034806446824431675139816379921151020304552973717552939076259160491145808645591287604102983415579952998870378805914580199623765823795232673296262743928980523727531230223106188365872544895344352876424086846900892311377244034754628992028251706615600372432080939294512944114688954736951609463426267269737679908918850119077382472211507381284024806904827040283644655114005043346241674663693549304428646447069120246975246542732294821003116309120624213857919350387970076807444052683231227887935081817116552524923368800852238216994188282635593873992731531500373549655714022081884011383637800994436282401603481484694962258614454045111424412140822687115020482557203966287621570681579048335412148102819004131554377138900171379086884419555659501041814439406126071172023810770964640235917533585797931518813784339975868407574417617166777386150662665262454945560637970650126181070284881556688569027767565281864774401510884223943449770002181906516624680064335386190894696316245048590528433688999328373128815959075793011546550246829092595185207262380518862175169797040758244022967066076887910003690311134848685001256252127784235083819748581167073495342621661503445987267694265077121505491790033241491080315251950492968422659937320482479528774230114613998523608769703327581226008091641284656082114571093728391882215881096590256748131904954732773434954436571337371151294191925346879346224872316170567340519106757430053135928429349129031423019689290303421664288258661825256531610231001457603582334901181678091863006083744457713544380537776648293428015225186798925046065732706596046629176655037242456461139657818899070053082690140964044315670390768414019363304342201401062144070904382036375323955309708619674956074395738104992591046057280362210545900043609226117841417822639311374236277103013107351014863192221419190890512583508701258553107626809948748817766128415543823133781285292837842052222393107029953696127814518178408172028949991838574435392179008075442771345605038494780217796539354764630186430075277489417222583118742375661603552696786081719530414135094536486875834740191078248623954188260706799868369206289774663340597593828728047700113278391738098119793206558511247311715746008253275485448311261016209151082634400748730545355525260682258178781732355848422107843708730187047274904396385625583239554569122066098026281550290474307523941802462099612131961449066547313721742705182810603121099878917416259173240686906352310087160055534984957934090907232561756412275744433233691950462617708811578563206427458754902080579388544238617007456869515340687620541410017690588285158637635328790192680154097397156515221853627627353948562305996774852615726108095187349321909096889616635593491097951691867438563131228241493371687138713556351772475786876768251723459373880405848927496820291635057206406053967974560855367569194770482200534769020549678631207981271651367256485129644650306811145236555943057895780111998297482165259937137480996740070072165725704186285354258456008003620547190638123531859229632869998804316153071044004848980493499936627446282396932660747880701848200376983498731061914932745931828358667536098497650457413212731371484178940189948032033356810625835577911842295070782710770515538431546497068976431650893662575501689631805189133887650000646039337582964745204709661677335771308095178013616020099680744856320681974586704752650599678651799865455779981238932959590116841591801025199363932506364800032558535074716174873534064582597121447811541269613989655985910693974510880178602272656051715730436245913358068422154960986127603842058964731327059991172654671691532858552121622732746277026716547608466834497065062943180909570983606140112627603703428105776144980536656767407656701091299713477856591695749318030182568749769717002707852691187267423484726331986858002438610124057822167578092075662211923300615861368223578711421361011638879250771467216528508640070812820133582477360724974288455599787724535004522587490182906638664378670691116161805305819578787399818791912687411868374967213509303564365482128338891813372069754571875350869385715218348059862371517686010396777422003175477182131883897917882659848802861723954969802922851789729084700627799466273190380137377714551126654538777920704948541432084686114794326759398699883127453931493151723099830797566542773327223238178566271682963642564186817626144978209044421897122899291066212010348394627464619698711665732294931066236212294765155815387002644328811315421151421760283525140467931041851552555687659589509786406771428005969859951745984762211826128693506910537501100148102607781518181456821958813027929639996601893050753297052057205947030974166476381240156409799694593836320593181059325290345580495004864754169329448079594844424839476154149728573366897377424747725269215336317254184209947145315885946131692922251210679754464330644589616177667285755572750307801211329255328856560093227392462324371362337377749959657970884810776915541349105235648204142689402091471101485383676188348959922705031047288617056194047495000845684403069146331298423642895442759039940930709325409921696463120155897538787175702635771371777623308655166823418163294816955326542717167442501081125935259849083250030944797769631173580822517794255303564290405684293694922895135052737078732687227821686953559563943910190248710753179257462858080407480474717517106286886646507236450364823927286663777680953054922477058992299289963606493697324300796453936600956011973797734149152081814223581234335080559770399346316820022751539035623863828008422986917641288992296314591077641180162784770220615201504598882448408332885061389197735422619509096933216328858087213629442613366988209002737528839161516107132183591433746263172132921857810479295723773365217555890700175970589705108676754140726446498210070111045434596703531075886769836585182019676906385682880289812938805127485027025259897409619269655232320646424748518528718486978687172421729658734392743665740633524579605773307249095089268625346000126693918809672379152014744320178513114817291648704751508916202593936977923736976985378690208240112189595624222400115736693287649510799533970745678778003387262320973469787017359547068729006872088372890420940008054137647278078811920683311766119797556260724736448646305573587450404853042298031066973037767758330343769956558629600217253338832585065793323141264323876548733964163591085403540666611606875700885630459426754788245932067393799715700154621378532902708999869919327187433830975189490073691049313841274407492435985389386034772203325504586037646198135846970329174380425850201686913887504072775811760680024975281756855593342534320703655398493048958997226481314579192773559194163163670582791800284580024177378312851757967139792353911513426776390013610350135265764715491600513328014496446480805532852789597077873902909033889127593013033287702753544796128839535117932109288953659907218245780508568277892324947940947569061576191488251204682179256152328359632275359737320459234930363584846446131700956252994288515800970212621653069761487371452443481976559427910600370711935051080359479871744074123557118064633977570154785905501732153200330424715746682464679113759586251357436190290387840027997945814394197346032871046227819711622294179253756635784384897586394246846666220512058998851968779579389192232793311461464238152380359717942281458906527277445328792094783837777943829248733181535651686255029102991161969455678226485059003672504481381921699478154636877284102222289047196822909428863371580086014898111875039003240951185619390218344190798473856809240059260133835828262797565007390048452053721410634088610686875571305749722886493401728279010933662954490202697032984793246957801859234147152890043354518569575524007988176342951712235670385162857426905094110813853011255301074540767983285456995629666051405920474474848873494502407217720080641347747673717916373840196021613202516986117318735882537140925153159224463377521352352433018686383211513378788353478371963886675509881619052489184146317446075522124857838445289559191948356501011646001196917193069405333395514383148121383382555574897016614445311840092782531034605478547482538654111902736326082136463454798492514846012736704391766962669381760596990961846460924892647361906252180335004524474469869097871515073116476663571096938044780028220577374818107133835916375405171034052491687910691433716643100320657586520883727943537695806417748090571769935637867158913295196930422758074104999228604534761028809216013792085431005200945323783877367938297801105177060887764308330242621381957038657948427409211209575980719055455970952302354197088322970741778958155835474556762419120723705609934489685042606461917662789510252743709522414380799544527024785376200938294285744051005127099485311961162849964147669461169585004678504256438754041112520092351964618825853347119515815332475509807459146842518759295894147114841470600193224731230069510971834979956193376319577048930999903726319926221489187462315231287447803500027265622953461577355404994544014122607464768182453702082955214258103855895410763223762409101441675178563802848339169064388233423160074694453364778137315115217947772375606869262683226671607169437573397950207446434720758117171561360389009647072992748975025263425350275464205979006516400613467699332105291045484181851181033583653158066645237476007622783174187621206127996917760081342700719746714965544838543340240529212963133438354300289437473411758945431520736339181155111850309893223151553231363541482439855365531527244039986993447182304769635930845190609368382328335462365660904102859272850630013900088433916504807784461744178215021634364860865130515224551662771151430286403617224189158903484724685711657316574205485723714119358690734165740803094882956117008094290390223940659296197245251195582537565409738515140807419695807870973447060269601841146705813851680892287399042738877530476182916451033407143055309556871697376549385171680847686244531052636838354955940328465359207179118846337016613358872889045114098985276810860728652404895225928909247214196002218791540342747573202031966594174990552650639049049987916050495722118766494253667372155927450011281048949921364062044192021229980145973465023987408500062961648056894612029977005240450993430159651459473351438895498162719154685238293022731983945549643506198990452062568853392353661787164047554286484301165222587479942580546546910264512063665305525714527105616023157049586814087473190121130804057592564996052559307115135017902101706503648589876369947555723490349562029970287922176516405742061380572600210010588405237517688699450990747375880217135737223467184374381542403343829724051778249591280746549427332927361568106834943735374978381859962570031058514346083494792367917141290735525337861337443850816271974285281109524208306845623836983605269052017798553137411335830862709879011202010710085096823157608023642514444406894233167917692764616690311923459079251212752147466100438412744509562875227724065359919241238495756925744725555507656345709269243046671112083064768444014430296660371485172470010234440386388272937896994961412619891599052940579541217477260263794038271150599394325294109540448777367616477729539229350229564335133368443675792904541959743071335899557221756295252991652771434146000869041337284560071220987896719761011219111194880080732195596096088756525540675906861481867725149262715888452901975031447548481719821391641900146157321263085791377324091117288742001805925349037170830918543145247333749396756175741535072676681942414284443163000162386825090590898370571401870789937291032207708174023709666719592933327667411118223060350848954937739969622228196734838551526336883393603347989872393503331593620669610420514090553384314312331350091145712979676513671501542607750820367861091505884673424871280922171411911325277208043155365821974825122351894229501885696225468713116790331678917798858005244798424594344606044959484119393180716873927221425167837449417279304220426773495642349345489208960344573182874594628290274922127260844874668979040571799742339945338071789153541934663816116772766970483641002706686211532043351189418406382434526416457029824664262069646058479216788966289692566863155314763905622082810430436783165992273217217886969293684542959038140012103215217028937180535646393393066590029139811508459427896705280334328816082404742747266951970164658645874504205425003460760951056342917476021208245182989633363338335451494857104895555144240717278825461799707263864124838217080448603184760500672689051382028654727077989872098998940814907880832010472735079045011196896819815186740531122128454798593089455720076865277754384189309587417171795702373271321270904602795495568609510871577833046959205244961605883878193719260956098975248715152998374545816838620369405623720213901096749864003915499217342879930977229313758410793734588495895468418993133290384438232603636557719438116946986431573724503328268785238282476489584108837982996756986054427591804586573386681336324550855525987546395078214757060144491925298403434227978851181804113133415682584667710628354116458038064251750578710824262649004969113834864664563284089508738059035058031339078346614581297736572917963588417498374891153833950075667769508161396063352904909050386899994955175832241647984969313863386393521022591807099058251947405170852202255971645280339591475734431910161264392910837183400229406490372198951239155860185279652602675546315098560710418617460072115112202093459307722894439629924259808937104162260098398857908190245264805720559399297913185118287646913840500030765074243846198339252916454016014151566732173119986642221926316000556801598571401055237273674721412470759973482220809097324366233881438212255625599855279345091604335047748735986154412327637842391916387193275891559824687645430772205292420688914809959026936822371918798146888918933843160426406442722064937667966703241141037659817109759771437183471403530783110812234686817128978300467144358134860574272728232316541390063325287914953738201514428475474600672418209159819449931250918646213088572324201984949475268377492868062557739783246343192780262527814429548975664145597033348193366093923969683314726114973578129311757166293336638648397718588050733761275811559785053866168348033375069930020622710240692829277962499074485741281055102623043787007996509821928609482607644093449806392977141275356302918589472749825829007977004647674437156633799490601520024537124275291583485733417238497823063133915399584922696745006947216930546051276127907139620907104543249234496144618615623273518972790333753071164481771318678700362212123749522528077039321020482039920054456626041486145591066126545926909987508457184275276733885804512318473485441813167220460228111571982423822530071816627911212156731208133997947736171177746399983679879337057946912830448122483082031653096020856985713160128365119563267463230633697656619436755523271640209561377875019168169983091769356151085157041300361649812811050378966231636048238903084421172940483277957582802796317894607687761629806657536650709552669803198865041556068563306284180363406375823962436178070557076265373503920095665971613721952324839162168993786213880548682092226658067895893438573437536104094907227565157003998547747190803697212481649196017329237930430009429140767161479911005495050954007831071992710896529829303819675509505664484060879005552716652378700633251274325393179195015380002096033469610447260860196914362706566454315570200849772880260194542249487259166193726077725679532990534033730602315251134035641760718411285493312254168474248609692515531306917113150181413596602552632230622361157638424497377454886122910630631070579071921773194407627417514433115727549628270561486463246780930015165047360252676327660806414108176844446137295054402146115426991230880049902623126048222088089671718082053252322543387234154873726355990607961910194659457591794768351177117350386561378200543718911988157220433274991408035124229421736460181843631128139663508077478800491180406231637212109846051828393593372338548074702785295368350461504054214689237570358659294698712418202154671313888421123597582963361733942438625483464146037974200528834682803109948170681509595616933897798140934964197347432146541664127787195823937651923009401843517228604427973479207577356377463479565448813686258328598015021933706172667746590390664510653667191061318335884437743059167293752015232316486445512650851889724290273384155281816693193352920456186351198155349232128999894000073048729565926465443075510102077478460977187515854086251491962256893577420131877024579610548335274204073518649267631410674424704154712987829342550065812707566848672442999000048487024144328659413621745451421202711171807334621580200479630504120361171087449258825729786750053892647122455935941287564045474756065008970696087957195456706792090701534327613169689002040561477103130220536770737419742834032634284337859085818808699996613328919793732140076192069557029817910864932541158963390430271588290432320388169904437072772052149483461790482366091101303636782299472756495384885568559998726557735642661306416590876826267954251140919801853622677005005469201069313084589846706728228471804998567480818377341618377710788705252204113107694989724543388616657378829018344268797193970615318012548227257670889192118008660230279444728253641163088626006785893245451917648148895685497524062307844176724260716306760683624239011554464278427416976801246127953663363166412281187794422429398957663881242098515831956592294793781965108025015727521168301367659490558131291513132217293347501280556079450700173715734925447860565759530684496684343671188064797195098424184956814253786291187566947994952468965524290816690060537805274134669542163739912715928889095027231404604546054973672427547618442568110563160646703298231487923458033973679677521172808738762198099652940559669164105754644306641757912008739300116723269510454158781850604091941545657775368284380196075174861724734595154658279910747087650937375184054284152046764679477637514553171367321437670050398344042912098952203590284395946666205777717589687088525034674082043963943922762375724533670950474084620026779190785455746879060679287707094788804181744625610676629297665285373655235351725894409291852510006406019964264259252825432085679891629950075766241404060904598358045363757806232823124233424832082832742762553097545297206232016291695072534175013750813380190826283305801585367497279370529286043481311634741705286190924474479630183547254504626639644560048993248472923437437657762505188971362494956069885000796950379835453727611213585375406391210898058532902318571348783216608796519746068595403105333647347254664633456389932068881595047568575039320771495181320338026758633697531616060517133222208305185520429818188147321267488755551679974203033999122765655400419327655172867281014029217635573887835826890869627627492764185321241581128063523909012931246714451975009165075346216077357399320958131879186841595344643579201531746693058004100767992298146747822096275818407732462113068036942966145237146800066170347772621960808961756972515487563021365192855849190956765608806636248517744750011304770185539074360937259471934297483529561220287870391237244041390334472598795692398106501694245917836547783865202077920888487367042968995263967545192344170822449863379549120303778847031673015416854347362563869463205789309176042577365313309180658784457600661900879852210962930346177719765766484473179926230425944028388265757053511202163629241551876856486055478144604560007493852675537371161468074666154766112728385758636893428982952730393550255308047372314175526340333326499790380414371051408881997436365533517101951943652112597163755727293078520790625817166803537258963605602413034482043079162437071438406433905560258985583420569932078516017531028678638743932996325821167952942238256568037719308645790669761356938582007694865901222458183182886086111480510918029170500710654859028996664643415021639509523162905006517031374275876938397435935809120355427921166331461540291468766134510446286589288481839817125433455924700331205563466436968520257092930429135354409192118706392604638987903315701686798350843456021631816774532112480721420967282376180162627636699014399495851345529586640353239734163505941348842277523358798848323810625705075106640264580401830950777230315109279364909851516818060196924507941226931846694976245601026850117470533815462247588059781390994504838411805674463967790663026645736294043295626853275637430201068346194959742172104629674233999341954308078687013963235457055015186084472685404193721017611035003009709686985066786138667430366560787816136338276042846961628071606491272499836339585873016851869359856972265780172730580609025606211536876445577916632100141643699883595201007203871566360694785929267692847709043162351573497509842591043168327512995790690866535410500304206646009423804161029658882914189000171437147533620165280185717581181503259669668163378311848440477107182122337120841608625088885058851156708773350846852100842634179818353704133213270783390384518999786196811386300295576919520725480487527578276027198846408881678624515504164578696875504640341141824412556551435354716925985275620241523061140671195284948840181015812409689152687991055252366814206019057907895362072230290615269998620012808207551224869193369709269541928026906495686919758241367603804304013061561635366358383526174395564900767238528322113339817942831428883402310976390139497476422255484321857187034363478772361066877110079764683215995806099911891067962383859523102713731264864213185966554310477549174384961432935205216899783062558899010096940790478015136712371499194013777101145619046370528371976136385109380636541996979326852825477850439030834482647733736955709555866658786287425867186999409981647468402442903576090244880314400238273454391065502364636366513481338266830957383200062675897400530771606815334528749958482513145556083265845518883393638581502881903987706051998336797673830548148134953853317344095880444193214422474655345080992669023057987738311000948529816968587341954866953524672902935369402870254559225429067119318790106106709038972444671779764956528295606289091953776021974381192907029727112102960716043806419592556749587819257466659261824252452791795074244816317302748065474632109217127028822497605530069131425624950061883080953507431364414063918001653950206732203257752633040996984175413043595096728087881851729426260323631777770474060333773745486231797662948393552088522809033494193229731539453980570964413516032404607701943531410641625431097923341691614211527886876718967828742228350852915442294376401276872857875263995580436207831094074826316061428855206267484740054082752199231777794982268439051333564513558492441991014186166790167306769936603677750881744964077960080248013682632189362993311617113085751187663077994748750474444132953605693511836605634592536974499850826790951156898194958629724722486759846478938645324523307649084164560046218901678698625920698311736698668287618534720055824073996873863986580394796863240124334564426398501151484584088646146203563544212827367629608733925163817029885596962223488955836590179674379501892316081075395914385496659579380410619882703692563790943164843731320896098984296092268076292077524824231635757306291648931862203720643503531824120494603710774718765001124050349158124552943877642432832618750862382854702428601776794771713122755600758026508461703681873604186074709067271660338962410299429107309498484692947737910152320404287613847071032028801846049293499781561774148336126619872628096896781324404830893784916382242371738348680237186020342605625992588303355958778277461550242372428132859258290956680682030317230863226345023638872030977627380513149740460745701248920097399198238889643811768923685374222720433756028846602511557769929633792599101005216483485856362791469824218632063736206687281090814994997353501102336601013027131154733906208685355198523508951811868376222636065405211892394771304517371678714300162142514361274832274480373316911233640952367213642714662760551607080220285722914793498425890133405896348410144133078677987809470959757186133789003761879884123242011939932671208809155989560361944210533590768609000343829315119386988758683726800970468111326713285410621734176766065369942621605893559224092823499001154676046100171426703017534901177986062068050112570803770268840908815729164128463197861582769316233899149102458701642314434784578311793342985814209365548559613806937502344946754338298804144132826837332809307613548095245416984808205324389932553718804146757502019727198487184579336109365199433802092659677980653665850979491331168918231665233404992298287840115682453517535863972249112934638159090521013676062146322849995516713293519325815613610843189099897454203342745113776621512176892392711184599694123750401492939706894947107262380775536053497914561796492433732380938577610444212522581810788374403202980648909229458529000879011586434356062380770643903470943590719481696556817109076235866566737158363732463305486587954313084292303637349672620951745267765624410367743142795966291022021257863648810992252714965148592473770625807852320360706265700960695171422549721699603650521570021873019140348013821215211118732718772329579631654625893284811476870149858472434201180956626455828241350022391284292124646792006776239759362957047254631624668950286414968885066483965995813799810193019211174327057213032498659200540863484864225007505359301909804781116276241660186568239566977243383159112586559341294079983819440015770862248074256561414591331523348292573180051077729868288199300711452885121794238365959654059189920250774376899229945419635755104492564879280763909028441976878117653363448865801869136577422364639765338039953592488050386467466449793004838934100387306439836311876318194978369577337971517735553139000591016714063732634888343736852338826302760086819868760775682231554194868112384723029558879764408531186372739749141124390962701550529597877882896501311233598017751497711255858938625985799668893983148072442858812035693597145053143191896090253916216286143406466636382869312402174198026633744408450309882426693730263664408823323232169695727728518810240535579389251233963878198623288644547162679871800611151053692398729947293655040082677402990668909482151355982152792843632376644482378544310464157532932004756602227234228049974756707331242854806497263510709536350403395854391923282684073397361619084656639908011983226376437479182997884127686798595717086979981272047419972420110469759104684405557096886191685825773602962755527237841850666174870951619749616411281084346836417188972270174305395875962950704711030060503345651785261483509472890790695353597045576858869250372240142940436085891924240361158001234679925018320663013124385319995970513060894124538882279690496168112700010791287808326536571844186459824873512051039009006395519506134661992768776838263761122925777702054579669827191888962150990249237470240550340720194583280506734911690231858829311465562164969790847609457694207135664345912527644386794664704732991274984874280875232934606174732989383295099245223671434371579240307750678235296627524201507318332243867118479220750141130146646583070047516412604188814513150994355677995779382483219928503612265957204819440538071233887494399378735197483010774716765981507609356441351264320570073160959618133958916329343934814821766006530507407036907721961667981258740703453841060428547410113388686403581024415298042368904457694393468584852440335861310393215417885610293072725682569514382107594281668761744203677756576289155323396585571444993296289000952687395686203947746386189775966686927139833114845506564753743097091672028942241765948111021151003393717016362542189647056299610167251471480139865769503334672925852932519960851127638003201905479761976907547840387173477212820069141816426110462218207148603773945696040634742021390946357684882147683202637706125621907175238302082993031268634240808468985065361444892701129173281069448817863214039889194807660290086079676998578344610520618948539075830032214033089552472230993683113068010864621059671503453625187995034085631757322697234635150206929656823888545505205240060736996282882120069531594098869322228885919474703797920309278136279810570105190615708247864399421657739842105632779420924128931215959611518007823584727603611619495855690234460512138571628813977547703452949647503145672598335298320256020527807826244624480521986431120910857076135493783974228371285576061052311068566755225487728093940479065847338670082689518666707238787051906039126790683044165932923504945689019712604790038533417051952936412935777251986393232496467580577552710681459097455669747839604473920060419029405553107935993559009748820566686958703987048802478126722274307025674444811903600550453991173985993332876251694326203868805510545121651999423638831299274632890218029172289666533073927714830016329895694599894599335660549924103475860214891774294987166660062356629310742092245458640491597690709873389508457715144213863458558609980551540728181548641417023723197333360075085454489603836028559722419274612590385400517426830505386627209598107596566762538250012699882547310312369563753208799752858783697661430813384684244554287178401303052623555912498322223358826208410192001735204700653932957229409190589629171597807743296197618531201760323345060339540458115468572819931817385169942941532705016950686455713555945776535703377097101117991458140859479398098392135371260650538440568125688466256519080375917556567196916330907777851920085879195425709611425991576634157353920604681776515259208425828146472435323447973488031613697026180167379059146322820839843708089044453147722592788688443656712517584681016028942559903435705557139439746827860754825643274811938421589475515121265657549907047697192710961746679222082742769309108688600890204186661138423357843531243159142084775933960637243706852063325790375736266475125641083947100559638751707977578010963641186604496637568761184180409221018979106388772189567461389783032025301181390226008361622573126755738387112898042119028722475980414067576278505538874508685826013396517294051100622605971631687262209378811472519756213892966071884962091650027978759769853470727038293518665526253167630991796740550601619007171594135634885961383885110960902528188609877248069714562639354319918931299802202549240477822935192726870168432451284421313007669306103840493588029181491548138315773651036221196624345836205341811947991600634383717338257279710336403941620325717753597130592702629249471849352671004101767452562828287648727183075478504093295295220489236015487888189333712828734922488058083512178284365148167401455425179345323708690925331032661709430408012073955544779147773857183164248711012781531782508727908240871799561682426860669214355500768114039951066365679074358668145641098018467034851751299690075441013401735261904002583286006768732814701346508522752998756573975114233484743312467945726352270935760494707888942210786627116098099513235055005675464457097486770694179669561996910690102785162893450446314198060908359764315273669853088295681221774382558645060584994031100517680522332191074430118228333778623596343280384389211689062209919864775019583874250522792985019692588788710409218689498231696834930781737937013904271338944108201887974819168316915851596998943937438359590547910878527925645818043471447051248833572508669182763276001723695137526644578219184954955378371072576854582790965438838050998512619654982061730421868530486439697327701285326703023366866459392028809716877199610322057775895852339670740880648563946369936918964573244201648614007733709547094786722719670401017954781394274647738320642889010455697503322570852183653973693342725648609663811581691920811243833470688283004028877919930453025407805963187074354013125616589681475737309837638514734546860230915744165429166163398234660465236703979425975378367979297909241766513889943270556968564029684236937386121954129115850434976823920493837156365296346001532817454933294324689342986262644431421873955926055119922455715879670796901957993978662688728400725322383688888217297886421119089980563057491769333169071682055457790203650420283117550843322532561731980209381422600540280215928528330798204186228056835298029403568074117126845619242059106986507072885214352455888910966825984411360264450613130564526300743041303925304845432402903100085215812007135549302074569096329920380962349417431971660848689387568664672203291811604338730344865714458449387718701804636573228718972238352070141901004382553826288970823368642017037473058979738825047449395317586235406222753885614377934190557664515458582227231022214885495025947548351380727540166693572945756375663919755250042616771771096929596140983049907051697532644326842967831267346402593128153635243031513772712655093114236597535350447145243393908306163594664443093081785954252698334345128814388992003238671893095821889386932898499244164958737571819585762677070590118676387018015908651963421800250524542241283673739388482162057006901723698728541448400624262044011278027424178672290588411110956044786790312739748485115762736217079542415803527336068162216199641038368822214207155452451570900031091117433001698351295449691277796821852581130315788402846173774412742274834206035898305242854565940628838271005548712313292211741292088847018960251049117160895007005209799388651379487247560429479034803808906203888784022804752916787891307058816376145352359516334468510223557137681173787007890998203985687429669857917592987296644277025973130269334884240428773509660196523170457117699958290533687467381242306454752644426441327398930028961033606052480697371191839859852312217402522772791359823225325940701452955278929227672631625812407587583574777401651855639920778704701921433455080781900865775473966217310573748559548742450637829888054173108095867903461217846132089779733384863716688428146022662040869140275702979680872086192960950170348037655991970296761327332635750966668088337700007015113873096286795427807757699340750033089673537318532065490368752775009297702811473190579991905864547796990352179788493422626784049369326074352020422930647557631637433054651513024022404776387134592747237723396987387918812685112845170128204274567333960700025827042850004444887721998507250276742139212387393422392304157995537609506007488214595195613393550540142211397126272766638309965843433373022068389229497958051491152683345960171231808614134922551759410725727464124214467547737001975181884748927850305192027245264003642803832413179686709649955191531440256104144007821753139949765539160176909951982663176121965895765619820309119605681228289632305433232629278921563480230719930852433809680860029080850569536424459481097263374060149688314405622028847070885052009509889609359219395521318619750937802283862099651229371982497268303516449997528244240153892697465380279196156729811415758353676551812281624055957865582125608998367073753645071088513951562918809011746913153549024300050502724710967118781231352937528061055213925529761183360966639569211131474533512130902648237535549410807183666966527520442375333401308228693771360113570582136450550523991794569202349933941766812913564601152705488491964855545534273626888292270750421327924848484823939046781846729752735743596570460498205324292072858815727248332840113663225275592106336288904691446666326845692353668016163078760489048597551066115514045289718335852797699540882641900263268146027059747736746037526009583086442973161609450453827420012239033392850123378865842880221383242424880115494645571084703947779195332307541626239493535530304885963510211855034343844943363997223709383778830609457715046454834442749428653038055056232265653163784798666211687183762396913882193684379554140458436284387938157547350393183806702684195336388299467526688358735269486312553745177492150970924284863769917875849079644077183110030839277244890341937275094573305781959605694561185092555854487116897365565403822491358352019158060781509319805604947405677577112090491310947745781852713739480870912414796592954931200456349794811660784540434220595568841672241687842379112060863862318693208929810046686625882396376994683871689705915292718974637304367625611890527738259227513645390464449965846414337144725804124003641772760223777905514453738013801145351527647770293502986646204139930539960746357515539787305496924689214581571943597804717905859241833483086857590201845289387648967063965284479338675585274485370553042361283118697228172775601610374705265246561673253247060549990192747565959438270466596881462754331966974871387028114344124292999912787967030375274340616674912490414684060910291619276546623547955290488222644537948383025445732375578358201048706027774736788075243039549796085759870617934270735812820997852425202847794419219938232177743810778586615086190109171339471614475746402038207231019255610356056704822190830820970568338478124800309069660273577394750829706116477939106954948636520746876793073067557403816999979544849311208568253709693774785180173339852251406399424451849656112998525588295364640981955153949876612863273742084116299403964313766763062146881483890397378775909807770396272313449487871634255011127428415210495887980334497624840426315217327792518029151384445715986749440139466927815278601952124499300525075115711601173127496110396099136949155813773598291542554671792060864091105723341609995668132028886880361528197815474187310099004647701545112641849451927250842813240633040222314673437207857573056578813048301868412604368032194408175646439083560157250796919429049533343231892351655209084081914554365455895109387981674138099997879938105114101532677419332381217913053698155048632288692403265683356868338739963310454706026184406225827723828967371105566899892791613740934137483826157203566078613718783750843593355698189893566498913962386110588674006491909798142908206650397801114249463123941216997551918618615383357637576964323164841814062838968530498753968483518965290732463642246894239067542177940776046677607782904428052094312755716475946335509614039908034553330153690808511313477160290530165302412622513656543938268153101486099180843936493919740878081785435197722398828161011913658152773849370588840747139253551034194179256661835229703430821118411115220785541737477308947386252022282315768999802102944946166684570161428857251191211986851253231400419362296988122962481143340860844236444670946032507633852004694291085050534761344523652480414787663609733399990023617931582908015587631337447769424434031995774600803542713867306686366002121083179319998187063373920452942471896926283147068613356854742927515421850137303310529044216870210086462242321653744166317710590012113347429786589431189591349526543240634012424185637303033140424915753404103996085104080796952871581724776074301976704652237566746619719680991906091862807297244268122492288529737522429630523150621347164517338201182529115102690177007233691416561895022877320015692188739267242085260777325196088101279488570581304316460978303748923924523454606132175300419610187581944466049327863824646815787186537095666901635059656069431589406564131490835393515181520612136663644668927398436674329822564853208291145783651065717475181882699490767535345889899823486368805247714920703676000633148231711874340624091545704598777913027049570743202356484126029750744115094822774656326604092675556957008962140373701507604852257307270055339685047506321136897345190512813297583337882282016583664916025466320746747027606192528534767380337108512366918883084467276872957165570482752946520936007323635550796109701147308688328810603458665882639704568680314375580523398144442777167846797320717144749984398413270297610468875693194532309636360783765535719777137942720363266286317809952939335772874172349437482239811494099775446222638980555511581522764053007339816226259837372503629597868275050744671187543699290111394160393989327528031508838975712540497735773973766496698113538615268099938414529081803925664165550160836405571678019712594235387199671042377743352455409670627369742677123326149054100841529606107165722426331584021072672982682016470912342634196615297570908158829790130737615058148345513551359449871650935946092209902393207980174171713284658653703142324417350392588457417995540300968200873670546858834120477320172537266476758975665764245625232557281957006754175409886709643063065525201570804745831935362892321088993796079540575288181543796774215185087247215181778239202014120720316522297669339920604671979307159291651686712843139896680808283389258375924111692219398268643377453111358674049364872089948390248462430538582364786221598851638999164781961639744160753993595859388205934173360355649681654047398719983229622932465410721198695699948083763041608354151560947692767311598704943416137739056269426412485768259229624730680700873453736782263735072773749004901429851200821559348157885860650067458071739616146602817615992555449618258550567882833733474219518512648761259428194875850443352329736636076642176336770071428662012717682150318943567148182884252705930214851514814309091466622872449795758687397917760941972851839785789682183564191490282530813857370380973781409907951165493233169567020105312641862078546210888325304448904766658708817783565199137646409326920184080723853244822437476424443170840323525201305217202678287170269278477023623998539252629232771360941182221092025316802023053476092360095517685922216259493884984936515863751589600337291508004009114243923840100974527967713382248698884565024975077322879778027828344052792007304072026175658507513886778710957867306640304842458019630378139367532744551315916340315642529271040527702867024787283342970067738745318924536545052038988696820041299175184572724514071089899507969417815873230214388527363458738120572707024528499222090681458013469600153652479608473888658428347335234070318826960225976493482775733254357829637764052651656393720061435524696152406655470479409173018403627043516907599340628279439978579509498095268571255701548353510113466261139701605680380021553363498362313703615979417895197535603486784903511158830762882508959517726941169113189698482891832057229487132014294966600278359964895556963091830269955989853665128423768199165026056330381768210333990422502702703650919426313886866137686518495990436560478230379869795053770686339550251927381346397428688698959254636395313514541311164311607005087329397077094119071377079062573051880269564899642910862844359625554592111635068682659488526048647766181502489807328665899633775042389431663369551500854929815936477664524949228140177102023605940114192681494903706724505262574171871299169442878028938491569005584800255829505728445852730803361394070411758503773584224200366516785915376569030366498751494904391419745838583935329478128326026659283121990148006620605405504683160388067873382393797032024799733739169974069767049346649276294749638482330084485077809416053198913910150999612847384353206180083549269740819840592859491659609403544025919487027480840951746260295576099755371829371493335364154879893546646732633047204846401909197895380472606464068513201933017046573724903750491043167941071276184007824627031267156231814656774802987854049049032148068501145216550868599070183214367980552283723016472798448370384661960245337660099905052322024008747847477700975418811477463453130596240249776386241183902538763590349042126573000911850522992753769991393101592121654367474212265459390142260267274746842256385935818045365411936303574396868039996881595374760833777423063486972022358266353868112019259936724498529391586143725956678280679752509442857398574435859873134429595714686485939680926264673085128413068573541778893863395354795902762310005999225618570918536614389964267425148700599834697946432623288762403271295108836062523870018087850800039625379819127113108736299407987714526591939545067651270300017528275196600104124361061176543686327861099917653430512390573373460595174146751122907363761640604899062166872335160361750769189653937138000935310037897174769193021287732756346410741659823425567561072430185033753761427746149746087414890639238767164774020991617351194712725711989752408719194026767569899977817555483293518776090652990566032694908724306654729787652669054724126272668716434380758271005175390149757344758779989544469928216773541641525011594109871128267626981595591759406576453947648085194077644256528528801453516237469205635763412569190396519021560750857003912942190151836092855452659710539601212613286686265349982952175226138114238594194926987348798431462094855387347173685492194297856653541854933227404315494010205381406601158614152978205304165425611082312586075138345033926050408162754289889416404703506516187989030234461297777137980428649646233402355403983776347620639304632136866389253347474225655536342715554106372491813795909976144210698891752264825117161745004489644165967745097029196950307753162644167255152539059258613057338523180691896467750723616538604772300195184818372198216208215841733802779931263993696128892190330280094221208596687796092061712168184203978298967240861681336439749408656715624374604910397404722918125918878948291711277600968909969512097992884747075895734110802304211339161663654333180766645941955284162128060628305691960785367867605468535721357046477780664328297197207362523602134553731984455798303054340796379116818891421615333788450680278829828242359063605827458902431953801058292178823854063225337983634599746734604368302956507885497200880658629850954197924717968437825659848588376534732031130383152702348188062365601120740447400380619252084041137729713109499180273413395274508545860172095950861212024826515589297838244315379109973944391301031865064865279792998886334868138176526278557774510014545882882483569730173494144816741670087054486062450250857816875452927810735912695557475991121747898365742341177493781365713703137578161386483799759885166529794245798505241117642861510564049467774168623509057786900358528117264744734870370195254261971384759171566074396504871893962300055933600860764325607479737634095364446047359439844519449823112319338566428798183179877350274733647790086244895815970333986366439399903842962690193737088837567427201829755320726608293531915632529148334481139946660191275874724446243652832652539697337622371124102225375726303479948647221066048775364206985804620511158828955038156208896986129188712476519570065848334642963422644317373758161553988337310566947610140363387622231799947868766776848297626214939097355415114952472135204545608556979695139909060805635294771181218677264388613821428954074175511423963763158512159973202220581860411769363872216815089037124702455562377192010132796586242259336371471093225243794892335661366850644047681296582276155147080741896143403469872964339643343741410551698069853538993683172449850352756771650602493407813458703534303598340691999061895900742338425772105138846394901859274984694622253024953209080920286279399368020551317045932373884649846469257967383340776316912696517755487580992699519696011612576395276877658121309295061316649204291299062334754544226075652015422688584252383726041622912464897891843540359068737163707714483473250302430363225187863087079120939084468481135058238593243009184661794842224024298583697302265756980082343381592104729129797216690593052139504139711218669706021340554405780853043882286802054612985911919625485896951405108023051847941521831078020975868280759543356788589910421946085404210874952504145373600523812990837554409129454532829983876153681210737533814420755332469722749712808830075321287049360885972441442664978889293856920160326218863860889436375667496806213364698894937711892992680819952681000302197047148780094905987556718533293900504835022182817159604586266054238224128400504569979504178941332193961621798546517270469870475519928625921327502073814277793653893031972686502140100792509892822952249936158141858893498673990933872046627212344941907379643107864301540419515075889411645007816867524795827040158776313151585633242765406243101286233592790560983660855391635006283020401569966700142503429991940650661933166364311620454485194658687983708823434651970715952030115256284874723911765569874718912229580914216831556650053714769047326297170846845315865913169479723720996580747250029094208170076260788216235944216445681363368539745762574828671258712138666348442102282608608414988918301593958308971445452584105097008132757321244413910239753066768855765854810808849878098586618422611915594598326977305097322212060846206614674866737833909025321189026286608125733735973184623890740167237485749769980663017796824327886967223552555926092038950387057140356285012835108179598052144532100516349919518759104909952870170016706901839782061965067191891574050135929066569456755525705035411727111004033012906277903749780729999914665249162405837342402029062258391997003204502722279146429171442490744061244364503778531381001158493797698877484792364533298779070915168378709097691272728765151121277028441898222570341668297427112649183303470798683600018481512107833450158332771160893763105248325458734186585276846875954679685736354087411315548714553470696761456084093584438452212620268521531516534485371419534762662233026114944561061345156340076232505184031796633778570628500215753784217649812514543522141691461683403571676963779687052021808437081303030664523791170444068261187234922554772508634117139832851868386754688655076342822111984010381105712589842504558321753909133802443928965369701620257019876996022286829301937548193749761619426531515395147067945569027995108523220335891292039819603152883611777129587238066737192190355437411568029889744031940773986837209314368995306461941967346884964387020487690838131982422773362736865994112824869779067335991079392219817666347570138042448829626707615335735169339277003816702313887087019876296935735755466956809172807833614079057805429558040217284183334123309509389992739390110394188472093995952032998198035973485862833758818005551815977663194716590457057884302808728530402635727818889285127738042967215194854216498436965128166143281998246834028422865763430801515330061907362292055927563366054157156404677623199708346143004942378012341240010980185881470443528308780293693585456013832335090202134360529379085473564285577308504790182449802698897950812664610962073879545408052668826030906982905479959437948286235701639836265659858040909925052983546867748206884371152300991352997187634748416599602708297993713343282029329805639513628237411466432478365887154825799737948382594263638148757734027119311940671867202743577059769054590232403370196143729132458205622205832268870347721105003750972867017781873857647568256376120722303342967492290556685290788041223183646406823481856745607372264065777861219963631270671832019525779084790242939371966976954061755505290328557348137407657564458046155149900095669588695005313277842312538058016124931364450749249152081092062047828819324455523709174518764368447550411631193403200800821513503767975945012365879100442596794576935765835827534940127018610293066922265011278044017612704140719897068955123768194372787991491137897941910596800464182173054140646257606759805836027830407988963031360947050099293348915629310468018969486203550098639927443331239316490498572938089378078811391059089355306658247118320183589860138827808793660959245363736008148426643467581016624301355660449021418569164180617624046826193831034295361691035553231606280530332328106243343523739189381733507254801282633118153729455254945596589784825926019204414692949342053362111679538793806308073408320540186942092464144978479839039355182086928647320184602920442017729292100562640857781897601937233117975943922392735587442064967473105786224767281434245170804138171944199879014539463601103032642790329245028388226917489192412615888918894208649782805384728679846063531492637414742912893760243648531764451757833946774349303476812869527928939770249791555026775717550130578773739429986787944054091027222237388841077972772551022579258699280797340876386454655906958566036510538423420445813009343099809403190512111093788695484391557508808352097569842823422176470693739623366404756067312728161694289870514479738170294914144229424731813318564155010298123395077278099743994414906506790208642860444057474598924383998990475363783124580798778289585819720982415265295817362663028392978871324203396471751239863364911844136529391422929835162950444065994785233026630376895315984760187670038574691069032927567694144604857807749111946893791964162176137711850996444290924334899292399761928249238648149272165746961723427054520095818651965503040834089136364656961432206522346762555205524205439148252370883457356704954492053683350834537045922963118925892531479224401233840087359243452448677259969247425274793484133674460638621153570338502976424136014530175697262993737142043453496850154246278546189382739813238380366641494118160996382268914942427896309774024997950808444296355011526059551170644864750745969305405139065527113191824054828081590285956090848633977147852590189633858542931719300997849080513240973164186514313093128680042305565384451718453853224643643120685362232111765126230335497282000667156947763000472299829997405053860106095395993308209484093561448475092860602208594430253101027221651525426661951646851586383129155134321689766937822562966345012265729069926441277484702732025963482211870032406426499184874721914744631062940428357051881627603160095138309957751126412008190809296704613655559583521564008567484047480653982943820396021236876227976812170711230619539935876054793902412030995785999616558529531334669717158013625848834698562998783855888849282165232956788906543920584447288869107341638064616720716973639540758752553881908296928876577440822483579197566489878064473552442286511373792529951730230180631702192845092422587169037176755553197991197926971508974558960883343045377452484618358116786948476052318183743659976206180942080912256841863335208304673660386492355734870084955383317573491104421557463788635270449643537538745418182038046848047479286663784437274057289764756643166605859385334525271737898690434933123932339097152299910934010493494868488930872455206399463614086886819206015276778595846952409661937669154360987304538162226201997846010365360704753374173025169893934162085276256205583033962291561139945498422291485871883396002446093716645176759291742564573538971686782911225678595426654025913728831983766274281586945861413591630795624957264283067121315462386874157286073457342883674770771051874174131794609440431597618389464542624607527075996955183545696814175549864406107219312933338261013174593637308404274158747953539288903443294087640830022052636170916520545875186349312908196407437686770852886228862588746426207365595515311854981580796035829146656857957654262961099663559817437207208866627818307474909280340864287556458955828176548777825866922112997084656153437731009922692476267371650575376970040966794380376106339078341354952614003794698581092656598839612583994756300966741441742259487957099974635003270541918109530378174572765284058323299925698422052645096534788199826903561977856748698985367847080136160724654178158667538864465442869808208246667657361481240167122600430560713644996888198843352025382629010401153481616732400056648763527413476979200333449939502283009021424760956477982233564614302490622845356729310540190497973333884978249130638443240494879061768852641534627000479751572470091226724996801368360713173990189658291948522436476602548822468852153191634373218099309661301696490016395568380695061517324421243219841458449088629467710227625634059743227136855612339941855243452935834043538753407921589362972438531281937520384971379501242382080303973149554635517491747640990640382904285025033521518464877844038556934226865181514377233527815027496848463801537221144557032174231089983078594207096595052047339619644489954137541912609679117983803582553943456221967471790598967408041343688372792896476846384315352294652352909921474791973817401645483673274128692271984363742168154215573472581802850435943882854974535110722694661874815120655764732420126572157901186531808149971844388624182833707803060450665533220366510576494912954061133276225631729013154652642625936002251732112066639333765896771013123741820128535869232401058197316225329613357935172567530523271574931440841393074248887601986221090898105108777772552155985237107686140550369703635822128921026895988885548373295785916104394303619443862830754142021280867643745961764008131483364711376000168075743082941352449440339633436540200872977020237197286735370125089973032530335978305336432767911273782518046856333537873871190759121266545695725832091300522301718265265041754780256831181591147619506193711389819679808742769045942276617511965667437207223287532390901549174536473634312947395195312475987763846630919833995336782526612347005484247382986915027880558941438618923464217793924925206317413519152018198823552782675006418420280500155842176716207729601897939718617769271984696978276625550054421302810631597774957755230818802759451388030742181141019991764272859376667539602580627295599936990551630462333782831785278069015095781189505468493781036841407433806279720889881088464273697548157380766677147464809648308318635929132820359877145870685330049614571941974002945497092998712948389221036892498912953439845881227631030391911925481118460002950880396198777266427094339618602765499696252615204489129568277424164993751815419664722629334590772945413012189067524977979133951514355143296943232086181737613807402390275288905939504735597343399883499833909051969521557828988473487127903142982397731621186217937385891830620574927695871859335447005270718221757499690885807747040107090412600047369205102834652684947264502135451845934802506342089224721384091001310581416570769357098764125553569318747109233035269163443442619235652485590384450791228258035623162826401780615337838117582402342701030194812051453056922801105658856367174694759690881734857237163892082679008253717599283570767139088305249598736157606389096033375805178947612405682889567634047273802590739057814246036622448738158084572164359874508980215525117810934979723837618713289669815898809184303934955491320151604856800780060953675391764502803464991890097709865340944935990282575531595768852594760770229949733417420101204955334408379492597247042479512241860519374872825538612173810892700008857170596275091981714404779342453923060612867776874358837511105190744419892740246746742669019892836113687671010721178672088058446771907550797239965816218703985560432703706215694063463599659886556143898272153988227013877994261846446289571947998413968632499736052929531258958684567867549527416467309573585578307870012549481553165041226047012355688276880937185892982248313035026128229836667610352225879778166407151754595330989729135160036952796247300665609844264998034339123768429232422600196930536979555154910996708033093798746341741354165645344288069158037882909468090078598195416421525765659731787373411784887217118707995259136468964084070041642182593806993502319220684071255124326673153236585374461281485955041349966768252187154952255190056030766019322183532026190681031822688684578702281513313520842691819914284820070388519078025907179845510554386555736386965694221198064843963944305385901800475660050561851396759667861686393507399756945162694225969758480499029028169537858384829878936408329402617316827338902088006767101423846386868644999200142901234155944466869347409265378658377407975628508133988906335653021100346860540746528219057999874346528251115603187217348582889496949521588198892739919093324765495782048692796246735042510935361497505420066688903444613392744340510624982761501094190113563338250387994882552169107058741697047062479030333929058052071934397947311292115745216438544155609772808406404576561760924609940075439032858934424398913981784739277614607696835868749686092360685264597583965172397223978312018148937789879084259186454951338287111340456477793277373398205398844859550452415964320357991286494718777142635302440607012396687781056730837781016478220037823781713552694027397889578070144599684274857808023367573261544507727532926213075453627054396399541601414620701680163165002151476228508708380166493701976584789100208377197170100350037973487324286225899952185889391180265891838546098987411585723814669402648397769055890062395242434086222681166300818261247235978806102503776942319461374326980404144231089470849192878692061014120169146965677926654549222677441293269122707676372475938812724976316654630042738735402452324068034401547602711792775176937567586199326680672286648870047198890767861683473136201787243519296757492638314550406358952201102457386567686733373838776134357950907647256234715655951750381282821750468517871752904484043519730818850661087404423208281693105192129339607744503378828990336437913988539875418138028535178985824347167509196296560700472314574723549360640926670742219790486136995865715865459591048624598661373438888377054524123274150052897002299070988458341933000316768382542909911045566961416640639503185248589046779701319111550628671868355821499683023968562907565535823859793842692479457872022755852610163362835447782849078936453414552614900226626044497115231546609678489264775613133582336587737233083098943443836018159387118807229319045045216654045012973684067822053394553932799532099818379519357621895747962796302360355978070911974001295917789554913500026646594201370091854706872163045615653572808057990545096240907401537526597165154955883315277850515653568366669350407244749298404895712516096916470231008021967200828449668670778049912171536337979576627050881168306717166769294351587021398913872403525791826198556595124974725809762859776673967897879890850004566537926177418575289756293699436231646244347630672821513154913453792382414126358609361844204432749304919197274305901957003569633835896594574124280865441028055913852575572994552246421091825596073277237830560941816150375561482852595998228263415761040225043932403328725463282645882600401319768039175025065926828680767123717110006403449982136029539212875052411012963123158164045859999024774781949609544151912141234988117814684189805098637762590033712820232528980072943322754350949743121316737021472958672289334217447870238551050014226908920250587247247638235129767532373201621828443554361032149302293244458626929525323856743681343096612249155917908236595774714811212909242468813463556123145037632037859088121207370880349797649198111002033617626259614659384175693336166449308105625638821792524467999248632982027442363152913877961508705432302798557721289636589981943539650960977886116073327321076753278931143040535189902252432618274165281989074317313497065562391090636537735823648094472620775441392074837259012126682870095690969086960087503698604797690600354033803472886434589411321173345494484103909341750246663564301431774190319939905338030556332711781695005126323823814574451484459247691052567022772697981008355871712864444889833179030405777038292844660802523082906653030844049303663560976097557891298129102603425811207041416741892713331651945618181958170822331488585942004054921763510091323285196638680465188728184955979651957783481336670862563883212470181054247985964631162480575191452251489137850705445193256978398619781183969020289640178878835909207503367049848119712060760147072239661088800149152292979101098652119008466434755404514757190545801997484737573753437744423487436675208975588132707859947130120435715167994097069193676979180754851731754508545658156355352783933316208697309675846526714294634291844367680399780297309418535680001519154858343668087965245227420654865786455751034724492414031497439595417318100337975090481572229050271256632818425778935038355810918582467448419302266670626195820137291649706201818701815951619668506180972251610154436446905698694140904912074260824397113051274087958683510052415050079223510572223725944235466864471066218138321955324618103090130299375186652499307624413741498307188457841216466348122180182337748529531574996696637156797179577185172281306279440959053100425875445067207311976647927479481327594121136620069558111706547893773022610609749652432090933221043695502232610306726894694276481689612025664504462824060179483687763794944688585932493971886566824452166690556927818455729707884230654214797804931827185393970220614457699293778006800478680283776518557196682750215903252050171723670037613197160908332544435707833687461419475738460112970700616897168594542628685229126211263720455595316862991131339237022731601092794535713539458634165388695262156457018783533376942082543615371186895024549068191544835206275756258407041400973133343267833318157437428153343547451768996118919877486604968415266007928776191735684536779546611143707228675934574210042732497557114255444729401734870912940689531753293003540111874084737197077468958192360466314197737607130450474465875319667277998761251852892488781348366771601837013381211352609287910802363987355693845342000704297712673753833038880440087869345590896537533514674577295365499426384245820414847946633185423286610568976266535886166282120405235484757782535828675748982698179755711973962699730136311393626090373682944462383341173119613676385281064976035984223991342677161559868920432013928548112107174546649646893105854066104004402420539722151547659783813718312751826982896365230019477958636965738018683666736986580057310237214796426207002473896269237821686989004540552508289312133059288821402095953934819452547818185426444203874492278710716607609843594816650782240841790118767812652807306081571317946945810917265264721651074362287955745671997831521281549819155254243389204286257489898083188536476279669517812196364856284484439831614441319556492901529607084364881575889121092581429116025808095763487363551699489479039704296584502667230488244327527193522575572468622931427428213003371481948335412227808527063637957223995118813144121574973646952062851888698885147078591295306987042292829900223912152370127113683757937305182268512385447124730218779882919084570947638819588064847630863256192463536096699621633928071232123820402767256451384190615055123885323230659061667422162029013724577868271699792469517690245097743408794921937173093999707475744321289798871253431913150609067746815366424754716248368284216765279064852947318608712666403421877198292941941598375154931407028220521139793593763609935921433835467531227679621682047406823046555469610587071520656010585670226974532377927285642972805149895487083659442467639715828578743357020408290517300488660090241564437916001028607070996449015088356914308366386498594108839133721162249758736645637815008970987825927899859121602593204584214682477904176508686089802789522620466323773674572426996300002762274296032626386327502918562287849093432569432236082765935143190223710809668041606430711774055975979867424100178285550344976640881225663459160645896561434026028715068813821283196761385857324037924466737597317572696111483470322115739573179405285730573518598526935429890565556147318510855048106474684886678109280803996829639399390672573391803474695702348837900517458210844192888847140339518828426704400244788045603989247076063476799142504814968417761198419774035953701522374788548771388801057284052422636061430971443628108940356963173082237530362721963659314286595558153812120007621395509117247871593490466328332804717438069919938710117018169515122358916948355853358842499989490125891083518451305750675176387288449977466472887590076260311364931584358387609172250779350919564293209408397286865634056261420730818865674371723413938050891104885527134892740783882477318900670176165543406360856059613030641205689440277574146188693896776129748004845810038568144490790789617117546876505243482565795131085060456180053054806113678469814031923584860158283999164961119468064304369396631998001187213669038562213057961199313023345460756491642480104941228618099304478383225941031097912623622458937362915382011383006002422242090354910951398663089452281032407325402402060678352424698378907046367455983294152912509624246470441498760912012135640675103781985548797974936249181726242026975929831525282459821008203542942565908661051670683061683294838691032661718843548279162345866510987036270145266200318072524945564174745422741373812480343248108767651450859234643557866252585571836478264019854370702779677184343751350958653917620669309598873331573616602538223453024944635564790643930800531937022746442141396174990275184570367880066201251204941354062554516841768756092451307090261502471531521353061017941077122986837644306145364704793566915465019317902457932504181257798708188333101063849719957534045555261836273796516496429737270355174460446824748866054795348741792678980113922483627830567367142811668370356327256901678167087360734702512704252995976748184700832403622458532159542797795795552677707127737620492923461089817188284109201811398206948543742389110460963084936490416578555188302420058265378620473553773647088188061420285822207510687714474547014030031156494049963525738043677466881849024728543998622367415110639989624386369450017061996695013696354673895182889677124440478675914779439936359474199154207366645355481693480128773150311893523514658651257267510871513174894038432413743681173829502202634988360452947843422980763049196831966014024713943803978496802254640081311975370736056695000238029478505681867205221042287421573875136679948195020467303915333796619185113754912011510451061291850111064114395535646895088476426104153027487509525009359527477908174811594806733549690441667994263434177344770777345784621703599129982627247915883270952216695917766017081282742549326137746060574628218876306020396274112628371446354288736583109817471231053931468267869069352544340314459964027256054945149471630414824686608038613737646873129836893225415629605716114907457844164885866739246351116979812377144424022257795416036392546673389164409578049633033446146170241224938301941046860238375739944897934350625874905398839751346875697118046634168646782920778933245918609715790670784671683646958963180359685016111878859259611009934632565050376757946572754437063266892384181914283566602756768945170062874878141458735087517931210671391739868042502785616780004589796107047553773599680259887752059931019520971517060508355786074527507706556113060562727946425146473246934897687313987136272121664034093866878153008017940698890208874909610022362403129484487471170560905027400382140174640741656216314435770024005086877647511795220937794316066507630795998929148573218692931424622612856824962057407049386779736180764198480784609097071506706147492930405247116452019629083313212977066943924157146602946713395180784079026316057365278525849029499638432893790589033529735408587421126869363984472015602452214196511146439855829565506357418900444344617868964349094066464821258956732126675062631603262929080367885276477279043077761856118124220306795913812818864267559623452710484971310903510379908583890109871440134611289273251814886990681296240053618689493992687171440678084196435468386583578867432211141830599896729808934997512804352105615261250251403721124615309887926397087745461743181965133937659617367735160554131505708883125669370197181961181719945206843650564317863336537044052978654610239671313969381353733494546895406380061525475700293329753113736517874779171781322389727740010256701122694998970822799370944476185306313144690806900031895730724559765038492536346596284307539691146792808183528699944667651818430037037537227255526163435815383783055951391467827945880761561923695486115014567018270045555448846283974319439819476954766664897324568478373658205943086827472374496760237869996845394031762369263495138828443723711816355273643140713006723014210964333182023078842718151550708979385714647732881050731803575854206965016017064775448385975705794649923024633848253365471785751319078635917717336295342211768648336461063476285319619088951270692323085184280158432195865569699467891325205160938000503920308363438417976564774200064620365842470521177266611712400870396619000994128894250102634433662253919616884672441623315932436645696623600134190231895843157141810967698128414467139341757327420554009143392015316245591840146064666717655862487273434286587501274186220376784373736393512985952526194721105919527174261664472129829873778816910829723189757975351329941922355661278651677767722774339017413642197963198262586891899255045091291704953953239904001108977628074725654223267499315817277036288644795413704288254855259667450319346488986498889422495925478920799747002675527250573484420270688708488342572501202948295702689072877217692743394072382840580800764086392633804541836401413747976825171536354314923825164825420367855846159547314330616550291746708177607683839347784268808912015920797657840963594185710692649915175691090170127982957011741154258014613656792883379763321298623923717743834426256210687827615245566363754865130012318994913131298136532282583128743120117158661118954882486189189243153642918715040042774795504985390588876022100579601838328420902997681821723475552454413513030193104240327624214539979490563512314920034250854453126402075973950029439561019337870758524936467809427713755192780779765215110800361997410600744888355706001968150843374734854382940597668862714624895835263518498673840170295721963607480851991817989788794375074806738904543367182291248762854437763107828377952735620052672763875348674845800792403289034804653216559100788903266490188023289788276367128504781439154636145977780058961374020262986520093928112316656530432898523569101010672382981638082024299026362302350012295305942764297436046026112440728544423962848110488911254427318905829510232577757018221120609828453875503761988158852288577493615376536708096232287701895126981614107051092311961213107827876523251615401483139828433493985626933188328362240926608331299475511161321566793681226484890256022644759934986334736506792111245320136765528964221013291199480038774341152057391131276261277518363232194458991556826804314619929702419676559731891272266587166795196607518178910435925081202122902931473219362660368292400207693686058965243802836312452633756120729411813314867413770627934352886839831735299458412184042000837259457503359741116494968127054090769087024718287912488696130974460439922273592698249814815895264089335204021717125494907412793312675201343316559463122995750351638751490746427483227402727952111616694245164587223676894058049555641864808917276709597777472571700953961064570815067858218412226181100509840704647298243434801752581984149414456642943412293735545499942993906668632098830950805789240970984282885439289808405586116587753010543464797196677323758662908967308474631597561194543425303018866734670456927585669805154604453007248519411834171917574502867493512175202994047511193651445668438180816871640263926513957819923683792885973549279359863157080431912613209711449789376976444242854107855354635637155283652662396218602684279610761487016859056689819407618674617545537569329943792823101961134981331145624863825503738495332444839242843491644845541234478055899127457309362944082494619215751468411723160272762132409979392592417552876508785380219063378992238298291697134863729176603297285055233062042408295796101556189890771496959615049499500787564792319578665778445659946319606912371930107206329718412148286904347728165135287909302857247837960639743231818262000434825941894358233467459655714227107250468138479844338433313266063739317318826870637328722433491274926503843081098591502484813258610696851563816115963823139769413800241348469348845402719424236249185619388855910225698054317853895871496434212817906771077840279445490945261915110541102100605294596298972138186623379348554230511261821569334955011055891245718123526900400923106200941490634989506572815524660876546997174616136014883462048545259230844053928574409305416255562755929754529569775717125218141484715370957879147103042516963622285479438445364619579548525367000243263042586390748925165108395651478646572759358897859777138757222285336511980751206934581455573318135344055378180000508668920397474448687648136100002676083931045860112142404815585008780808701731614844995814189809058125715002522197980410857312155255734487154602517797321035857346548996830957545591788282719693976454211419648237975419407838628573946075174298629534272728046231681697376719628068055542630583845400784814344198060561581303377638214867974074004271249538473246747718367350618808777085942795938046841355478370159136215126653604239459162575536158655224820743598976558581048009267961436023778556381398548895783501813896972178513629671990013678970098237412672323031485102038245694548965037385063632050695591322431839873501167261986889133681927769407155875413096387160249337156943354463541624449908465812375305467692746242075005173318226692639428497291359223388628740610327638014799632010743356778238999725042843282007419410129866799498682255288500889554818895594458539153801093891093716573188308681171625696776321715327469305129163397263851425007412429771784123912702586134783909316608230118956118702012080129038370659498640824944121025382143665162776417448274787782992282000896771346920157766822963548757474057613898688175037497995282283883971663701925223990379730541042712882200356139798100785608905901547567472687833668396251084365772086939518649569233079143203555804880809071589505946316599146516455816535047188550545970880570784372179580853851728823446386626082366438371953126046789418774030320962052612369436667563604557541011439333185617470075853936990137902267587829485397586929750256250928427760888091506829652234978114658131508062569646203051991055118400848958571729609345481704369118106422021135494392127328326448042018776421608842809124386702594848300411838671668084022178943968330278041483505458301252249872032475344513454109705518108050396082615490735647527292968105558455448062203764963662871439757633643497904989927261922011298048298952285787809210662876738497124416279170593122529957039981259056220741979655112825136841685351477608669747334567738417103044823442198671506793738193775525347892275659451997398099363343040148022516917122283803559060544391306494563057052918021037640198867595350843723254913841277739043675593760732027884144522158570375517464490249625679968978384707674510308773054316394695012881564841287990359376123089070093467093887885252131671490250090421823991028393908512110980676528824786114521420289749215018043163223404073648140807430077907711891238874621644648655761726236799989316421974543790616267996299958219091647870466358432171323544447568693714289283096536575322713647030366598164011839646989072395895059172513226590293242909622625065952300608559519165841056505381111238730828034014419533552237139992412816884504975260620980548662103422781432280753735928985896962898213672868250601758900395436547521504446717713992090797824788440736509275668668318532870030916930601529089317303871828758260565246901293175300549492054017837561817611061355775783614929266732254029390673912365232306720215631254445734355442348106966259963204276642855030704571105196457782996984852364265357187821592185992540517703501523866081482366153800267319898206455416718096724527833777003467204832068510380539222146488676320743971163064542819346929859791328275116705141426252350368626658100818989114574945773088458790875709435869939870065564898963364230419494257792991201618864007392788392462833948050797533526957223529125861482448006529022859015230861368402204480885829355494271887968853347064544445159337673776295935598010737012127728116843221466310985212949881371083803041307898302169805776924559826547601906295700304795449071817627546014083413065308991924005348396961609919500179895093123515532577758121544224149412782859341928573633120276664649577769222080043298488586758936803403993886166953573633649772502270527994723004461293380897104910605815941298032524178345590279902211712126638180438758115553951518764830879127056988783109877316271672252893331788251009597242165463531929846801542762077540838944171362132548000819517297435854759896390203273894938686828890080993067560006820393754182558906929051249621794140255386845669974379173170271334612726715833018579903929408157549066035735461996315832950867393803045078425525461629200327555393133748901423091285812992363663039395508592938980591200799546612877819107816345114084662854069433809865017561664832281698590759313647510421202452826461287351776886009918053630980221380163194982778859645485258886001381161876851787855182753036513971294003189952859450171136786623819556340382289445890408301092040820170452702273245535399866178685029516177282415995118228590117843610184842123947550200363141810467536015941943529110534133281618222803031841815222929091578288224022646533914926664852416216257700436463540093892091833289606040207404947989289065217685922329480173872089125399702899736312742823187016698495405151789678056252196766470442507170116132451704476807945965705597124024910130968298324958406069813499695769883628040699777125818327053452974851113855444803039408123661058893299533492062404034950930489166681723267259193361499359106601282758715635032028330179677637738624259446607489780049351516819939161688429905723971773970504190600046199918757663441307043211173840699637124900423830309352993642952082478986188137185444333398470119240393492011189890781488782129530802109103581032855623880350968334742914196529723848996129983714571801254351315760294323932987942102475522503626530181386997734785532304957883331381331110609766975411300961149219824025099092368847747002236914197052534314039477141953941219737624109196815298123430323748920347363061433771356563215359156373569780806624057715285044768996583031676829007770301330418059777363010000559059656864711722817854148417203677333267470035501010026930156576155929640688092782285846672769565090703634262895596716690856736869874796200178827013987774986678988140968765375566922102365200434322042517730902996387341659167658274638483756138498907255982054064231515992615445433329534824606941062380745508744753502995074015522325645351865687156675000290028098482207227691278487693647966177484865059727233620310175397511567626057771231557247601749640035788046768906967271080513355341396902264098001633611624915515827567870929369103400580720862256051250990088424629084999383525922443520161797883538951172186001417207284313194588401088280921520594701318658244653926456705116559479123639812161585473257894266598509962871601259115956182150178023712026562941497874797548519125339021877387281337749017480195435163873252596033435616275126254047658368006330873963132485954421887266586091139910099466379812469092599777608059504617487030311188613630347222450644764566895078619787263630689984671528758385658397417767891804628091887586595076241660865529969162004131675281081173071373455393716929213843081469439409263101854225528157348929094494711844607128653567077809883490474340683908890996890852833812607286462641694631238943428400257729688830391925472099122429271815923505699710734782677809253198366197336844670377887350427695378862272986659518570183392819565774531717141079854325013678441102639281363215631787401966452050159235492521815103349495380977926695474715436701218990625945905148573610904693606588426624671894225415641651596319185899097261083696802099203232276681701004754449663338988280000450222780529728130612580195238825118028389745316583298444025052776061960346921833802574591170709953919153319793684258941608607866854279787832757686523524843399963772198331551853871723462222601344059404580286000148543296666340341332475449714295557982822268384133412759503699866851477270112850917349926688415800256765839857609802004136610313986564193631289535371885952664313835498816165027016209104164452914689286393726021353163665963786037211153227632606625096305541777435313915015793373111652543688700675176500050054807909483811615225827550393545477194031035011997213643985875252410053200655475751174900955977631433344717576047010663788989608903224705171797431612347405184760297921365006258941351431289834816528234371774763008983051387404997234732913565590805758200630798185035639076814890758229679243136870481041732462848051433000406486299757773761164684735664927434000752004043462618585624404498024518225010674805411739051204256318426428776163091964645815521902925987112638763800564202994554271334839872460051391909151495048223506199014589464165215800830202966362107531901559167770801714413946471521406625588454327208093434955774119647384622869245579446041601138783047383430491143929392758381633910450747461953875399201129859001737934503717733654233957023234245227591183605746934254938449058213981330082274838408989235518867479765274874782928747894244673695231777348294166513694629217694420662583551274710800161126018396268670969518646376447570492179483423638990226239805149604956718829612070392229772976499654176526092339788645650372510031247841888908225061141206868652110308796626533183334253773682708515844369076160397716377425367944258879036305217660547210166534299119384439467716167825409530521306126817608337906224618242511064998977709938305870665497529395044079151537960055676799710412210186241433945361591038686775276091055599352381223088095744829355909812556667431972638145342085667650591301034209559780605301059087413417051685385930240204283920129544432855983474801464893473669229812404151092868618710609356287181372724489283577086927908839159452723083916348997135663079305166225955069036970383777811681053862074524020719549347236663257054688199206142524051327047211062177067012484042149535346261728398778219498660812288962752558217592782444060386982161334701836459666651637653477639730803709920510769390523260606388029437693758003063709430478431492582540197441511202171885145236810020732510645485333438561047125988973565561381937451926709304557996153817878769085502402229270829703065919101300055341385018500629997140229696979781276835988379745987961938035522659160842961921092016024626629439477892332230635950357611392540379359384217950437347348404491384903620976063144456361038410568938411628479079801363642843578644663689065880069447194409840703482871538070026227835366875691872472035876591988711918185712095956136701157323399707280042859164227706272991389409790487092657256442724582144775553928179623817406504063946197708837359270548523739619813905406771771719579126571153484525562052014401245999675780505319588777298796616056882778700815557226860700186842258786961105535400722238701425878004508479829787587457681229823434820947249166072574693085949190656810642124594864277663413150289136218231297188138090978874511110077129134988955506743169069617403924935595907077077504721642199628540720401585496528074774579685586487639845185605794116979521179789813623922594888866299833704977110211948529307647945573573920600379019046893242907191882877919755429184772972920175033264876620022416145952868416547812162091788091540975754346594491175551472020044673752949618745860505351436655625300337264500551180442807623816556289097617254478574080825116660332647243220106725246024659138544883236513992897067757766569498125707402093383003452776221198887147893002286827796813268388939102215890037053114304515418303170755551267600291572501098900579710192731312074383373565358378583118701180394549408823885464961959506255676668949811343550441793120446302562610662595122352012521052247859475400392970446180708792517696031141192730164159168785465758527368172490047516689842604505462242436258913807832720143781634128166154897628243515946646800624651979834278772972495564708306035007491017020661280002132299380209914931156665914276034099843719736536271119496192441093725996169372427431042424147652132155148923152514920200082530030458368126276638145098284086808932760620525666869214088156206536172167309428261792295142446142937481172472799189240884657467447692650449745756977402776699474928499403631607556458588459414732077338247185191721370371385020410046944172121769848104444308179129524716374640738932425059194238794561569840032960383723751453730605537911519562885760279027836537760732747438978993084489107261442938613654026770665205947973570176548604472499003834739081317540604423578418287085555575435704066842214915623847657572024943941038489796390484321372363766957678560398444727383577240868176858667417068914461504764112499262206248745541138195669992436732508762880726259526228754908003157228277142948478405706802556311418999256891506585576487073461043198222732610533908070469852821486883120031848215521636501408525496461317392187226295946238929971273970001819380799716915397449290693720368120672047614561990053603849808137628648709628762822849928489169767801904907726744659133701991543442010146861385291493684208402586626758544727652449313129752841258950695307342191450118527513265909725508392176442630668363419251943013579258522520726394325099958276491554627849259832608502812735994088160194007353031210776957328474608335983152000819847763891251439039992370742924896054306010845985120071015753381528595398872248532811838149250952680080967530741594802369093315336633388170817700053125070535518694253796862257998527740063999387458097303501389636574444309312006504075928726901696295385533810150769293232161318714825248564006514856602841309888723398936782338778954614010595084296328809339069418996685743730785625326791666151553387195479918794615264606259730849360814611192491012122241284044305558595908323968918673688678367001278784462128474371386522274862057240061948639744187006548402693719918236308036694893110428225737834055033289109555795762561253685003296567439727199250946855757617748882225553084287855930575388634027539236032690085769920750309343333556923167171226841589827188931466604688397932953866283219185329090470421332169548483444431146595927029830921561743758771924286743117312088580188278161028713014525323347206283296758360705365391513515799287877405811218897051305214604746420261800052414435802332805106011546673686106112732978184072663317871417764381299344936719048270622991746800822691835928570179172912987982012988393707325958318827045166563698666846627363347065698696657288836903040607488515099716627118384475449624092150471826604812275807678548146211564734931319486609532185614413572448690306849895928998481060496594890035924437527243162926297236833813477979610588737588362230731024721301031470977393249508994263630222420736682071312173437425282165026465911071871888648659367988516649775614366965521920278387106813615221375284829866438795284741791146769171214484124637651259059636064239729805118830907980522665808623359514278369578008253258924299935203898392134210337451198417654714726343195560192518277996831485640391856846033860718223216717050130738131255193325791465557682596285688261939226096447531231338246300261167473065736147127637320574427775385281049048534742755018403633260368740397587797578626360483754915479553669873080968493168873487827105825389719199995655908138985368052621590661046436556149892365485484008519103860893807325891386503230009617103254922595483588997521325317921842734573376035845154359575422787610841273241128259001975575037154286953097497501896304639993994787941171881380588421919721689688235268698790796527158975413866884111634755923239586659186474136789775197434804283328947255401648245871250331256245872116303930756250690163698053978624033249048405100074299423822680914880784243680933961909822580927211090695263579592998647585526972193087133342923366303856373697539869849372615306964559914399308336834589671117199131174362537311247521981011143164520229577221999931326736156999233149224556331844116201721923890861314235400159114420622897667962978389791744569788998924273820046906150655096300586152728589872769174440485089704408216872116110179589116930007956898978072565346583076607951470639913936778917299171788775888278450367359714023479237426711930106312130337007987686983799260973594025506791327389614058184827068885247324348179287062733420668378606806217602085309763655033292674341435510443268236790178938234442342765807511132407598275659709058033720225922502121976496772383850236010996790615586142445508267225740128855234687292406822608537814642723848879598112768508662803795323321176758119685957813114118878158991414275415880925567723124737309208871326552112874537054486729595775246350991642800476869706287003869229053654450546817591750097890219071065764408470126045011709448387964900499068944132860197178326421005555663104691649454158969072637777450911710247753261850818728447222202861933411421780592320388365112584045289388876176642096970218282194349043994903994650123783078192693680255436094838969871591367678043749220010479024188178557486858874729004566367136971283637127925520251594653772864069932657921548053686217130631082083315366725470602892887886756557656046657866802354706757286632648012313866012489744258641722761069863942164217297800943111171889466681097054095980104396793367611612008792036053735077965954393735402144872242106010390103715398518432021085243439138008711720282558520738756506964189604456006104334509259587207777853269034577959604160600493548320257303358855159005408891251728207800146633034045588835639933003179288631418487378081630298902264401600750747354085743624961597714031525468325595472184443201523857733259871491731590589175624262845054191147552395433858976976958440541446262170303641541665045085791417988202469524109420850924357831802335452381309665675229773090814789669311207804452164233736084023940880972083399883300096891303549505617971471329451076711799710676910581295166782631874399711047275090767526700987902948164831419607326716188356823943737956045451864405946831057926443186109967743901353594032771324295442677649402766667340880190295486365329374872399256331013107413918961247268983879653672329023876810602544807611415296184708611664739007060452379910415213394656815131145728534151734578609294670771485863176275227391261902763060661586456174646211166000453579144667586267883561696249860014079250963092314558063857842369451006195864009978865431882995536750318227169919124373640645320919752085776588023405524773593996927705693066899837255047309067694376267908621672900630034992456426213837836486605051085357758174695853112585195238627941727970816074786197415000612313277647631564011841383185863772830201588810096789342881247112750581891142177852603758634181653590603377320752001199998003297190875741875699591979182871263139220987841466536642296010106510692333101021497342712373753784070306701952067324620487792515190002172026515331832189870903121562249332679119629581150469554867917123420624093976347425564011724511582543448065919562226281424294953817235411692229712146420255518307713796280693402341813951178126222473570977018676981002722789475691595002750728419401098795588996476579345534494655672516480590379222483517497475175807959375343153316748597126023213899445680449354286539068323693085369233039953516001438895103434789979383960234317007922592972724490971110703688025206876202570743759981501483884684426941534584242669106053456755411457267021027876530314099668679185120101995314657360803596635018613706045828347069904463038569018575783052681326760821913075467845088820104547748291898892177223790212049096045337234637031462052716994046801733803936428020814388473024859277261833293119131576396178030867337789400994998445669880207664395182867319613446174343572509033685803899442601142655690066367228170381486536189380645962964232046718562511245055739100133014670891594541336946635556358971418683254831906764988615282734047591167442488229244824466646673187197014323397606110482367431820759499398890759865413228234832846146092264198139606467654748519505783014467584086399164127849649122567915928622050833462690686918907671596333216617719022528795326660282404256132323481672382336254734763126015219203382663077890858618920040287413054296838265338837355750835285995328228943573645692909472640433593604454200518836565925756288076837286337134622190887955139511156672724602988709185805745877693038030259008887264693722792528977346635988312503287884306493371120628121284816181890489696476689177198333910770015594070659156100217629906869739571978782282398025413678486957112970820848392795608606207107109909992103039539822432011722670050195954501037188165961999518484355888610782211986402467488918466981952223732718412947270492577136722994063909005323498259718676029628778110808760467836638227869347389733805322787671707559333252013682006972401975291324120192081495998615448524785711593387946859649311153049232997870362905344584566220163432918783871779276462487808801595315590104873520742957245770412656378000544135921607621353918583552526538897780506631155856059119371411421958247661931153905862645622722857559290334592902183229412213566438227231373093491738932860629604679413744142020313984755430110641643659945077164235277728649900319691341442489688496684746325095922751999658799630788179034371822627881602328643313907732160032664085608618719750984839991493948407661402458533865885093747271007575774694461141450220637041557969531562331740380618754263151817046360104265046392852957175931209287349524494158427229411113384553996009316679791287689144520943328649931274184680162549533535036079985517202730725165018469271470557068315849098009995009988962811760646066748508962796493422396295971607562354753129593850096575338963064323965635120039632413456350532196702257237244713425409121542643871161678671874106722508148446683242781604598924261828518450300782872833741960165337193252161026340069973696086522297082357312298724931933912799656536680012064107128052462098650982777524206985610923723790466134540213257928262214335547915503977181622943659797527486968041044845624634224708753552807197871116372720633423213667940294603379567103291061297412086866016645582312412924107568944951218666053823887704307366342975848590729034320437474383835489747536806934939605083530183125804060227175381687823110400414712549668349770158455894423042037599566691239361254387911446366600343532250125592854933787358127611685401733045733649757537759906256394053924802116952014256616644857583596737403039347043450287612360317344267323319200780399412905621811906700384817165251956507114692987556358582716972625197171754071468119643567859198575350221891394315718505027733992538887025265871631914746954376511440731283903103750376723293760893218502050954676849405285440675607215849836863770101820182613296960349030663602883960332322466766721216971060474077193255002667435565642461035790817851056686540362678273997994535819256003696140724228041688033984736848714044470456745708104785117331032499692630647218577418783479695219659295983592953441719907073243927104238149878880621076507541364210284598217745528248390540711102576672488484584210662056500986829500719386921184747902417137716956895541236721041243143302260740898807115141468930721981128553105391259479336059859554902463031373132584934123897376956509370344050009928264191022320505608855634199301439316535830505119671882845512799295181582304437686361816226536682451397625567846367899040374411620825128902853459261522428763273399847447149650960313140267316532730787954576402651077647099119159868658495182064918745756049247883480347862008542331919613820574413198653288328848963875897421171549253634694277190469174690265900946124258795833259001490866629184241757905445017067103919245957474982316451564957827889039504993937653295762487749410128766752440888003241910456680477593709803173051549654699827561071970286180784469658204769033086266559118384902172145215063287053029014841199086970089200135490510006709097335626635931408701338472152669359286493431610886220907646156102565736976336894381597924297447538566947828325331400261759538752670161851708180387372203507675837165520102974125862124152147338901418261391095664308116504989919152025929690516268712031597638602641448524920934223848635381794597458402281237285819480953768563509579409664928358834810640693768906703512398836610623426213649305078553094793040253805466713712072352469109567438534336634165958155124514852678445244693658301530044248138548864274381201150733931881842587237047815367721446372724929253829295753663500587833230560303624254495432271419559144460950846054758975612172203123728199812294122514433242563135652600595261954646195774656725732908548687283146274047127250949003699356715899451194577237888875445212958751142898018341022861512840859789697237093985627129538307126515879130630506106006564269323285647234046155515325533039716964267714600244498354249347043234253515446357540775240457322498436122272718661808645329160597132797461367470288117049999579658967409909943920590410220711902776262828482258926490742729496630028662001929026230052449070812468239993221973840366041879289829476701110831221214848412054404503375048172273423721097057609123659253445531047437338388210752019865954461726033321719528216534660557301764876637540368824451215127030289253680431387196607702617306665405491380649289993200857893622968302577946659762956663966957511425778374514845508609316610162442634511039675788923467851099479941267819194500374329351764996571947156451601564452143309235822376507823862680730378114366493861660236094930592412125412948743812400842543013586019855255847627001459227991091331023615327615786393789014742567123274531094341069793385700768924778104421624157856108957617791921927668939890710453131989178381624284956669118666888771113221187585475761434604951717158844220048711665175452244985453228779586389125078689334524569897057493914688372237071432788707722651783762426000901061343076756932091151008089516411363398482241828318724421208920047298105935490374059210475124410538240769745123496802187909581371306505293911164038082015701695844025012106284510396464987362878999235917565339337949554519954531617703572395838834361383801667375267675684060144377749912535996870865873701448693396733510529381956422498038690936263379036171625805303363487461665944533269232664100894979023838881365668028983962229918832000522177523811433096544365499820132885786628512139363935640907032761749595293182919252550532555902520876730640901134610739562173889109497696893192159008534521581863843524830372532316338219939557687190920024870955341598851463232458480552901753181058086800026434474168842673177865240624129022699674783552028325666869010091790492128545271839592597058644647855751622769110303174852249120362878560335725185193474910903272440011356438217808225910174591024125377131748461050281685488084558786845756428828890410617427133747620162525044903493512705314506088565503989003762927333811847491939733580730423786173573827827231647300657722160463749022739639662666629152473836332990891611063622162269415315986986860849728090286376587370456992762267268679343463906626581337682213341064083182038869622529604144622609614186723784779107558235223983017111028337946860850877350290100220957363131398770450304058384181830316878960400383829313960097475755632129490800156904701043635486909873887577317087268878696514977836257419643567262645627075002386157622012096550917984911912748329039654951972121864375604605446087878354961078446363574140446505025880317539929542163833202801178036335975257678026540304712621609940603326193428372622196892929485433395119110706755650727441073016271012048219901035104864479443066278132381832896930057501815750949362420711252216377212418260089794675325877981750488874265600788566099452799121680637624990568120425264735711632225042912934231158261217882836143444362592340877918151833035525829460171999355895089006520225775645857898873620012110361554946698686309289293239028154166105683239290874358948773222204077630834739803356397772728441172068904629915638994777297188807908311707846977386570376146347766731403006253890627198998939881453609702646395878194655669685937623453320926849604513127514370131480502421387870666405262802218580957419139758180238894355757185358538081627037707336492356537071791808870788059273423187537176226953515063327727884338115201840455350823904295802069541605928747421838520619396225352758912063681784126143794022876389539350303756168906553700471772322210477520595197012230230010667004576405649744063363929198276331501308797573360318620104665611377709934555435680825997099898407673732413764449083945873304658904697303390158040304595668539405669254243874926197828606048462436609909938456595648276515519071261327614486347691761781963120731776234508700083872527033486738400181973294118374315760284870545861178448798080664261622555990428197293830504936813994356361695881196263976770845879718889380116461072600038410140619791695262261897404988442545397288351198854769317422280801698086946655564280081815465916763853578349991869755333832368272153956071328667682424565382741216763294170012080100729562024469639168675377207378742226004312296453536882613909478235082095063938301778598013754214844219142144455171250497397611997875711871769959170543449221362214895068837960139657249936674025829061516533074047834596547231986793154789794682728123599040238392632754150259623127648741184317762946395269936403337578936571643927507071409807841351644493893827019357916935955174337247195293727460335792014217692397306501364765932359185231558677260266481188754017291379288289100051372860897237973598902770226549642426320216031038771648305160253460398785572997547392253068889910719050269213539995268816428212660884549046409296256216176087183285748244660820115604096066090631658593792813288579052273185554309425310106627894979894999398697495401251605393711272207886375578174895013201540238048435674061514603584851002069975482389664411634802746285599832956730603508447364671078872734700676633825123575684514995240983652481520271060484721587083737643726874294697350207585361732931099848227215856954778275249934137728897550802713703411866504884881983133985239361852756226255392923919024501331264289114400236189543879434118948616376413967427591144010476341246077080719647654411079332339137620471832856380218737751647470758106461421451299745827173822588102283828386609512727135898604491145744506587910528169219460833220910657289981507114598693165104374842370946096174682702084959399261480349808033167143020534319936176019812321389366615470088042326523052935384215693708489804504745238902091916130791185450532910544358453816237961257229606682507465315575389825012735193188807159828347606874417294264262460160504846210048006431465477626725992882309910006608185908012928876963059118874141528396566315141893278321805460756201489440788917077716493877874801612412407084495284851257634706114609569324488799421013169877674236139534332763072974787735012145479504596388677993049571433312066850832052150418953230865073002631464947426330101923181284484871261492121456711602401475268110087372841148789429190144453623436438358010757484145255802390790063031902400688080622956381266759135490600786640763675536974193794825931506256384728379611281304791164517097690170904394825406421931041422273953992493040090704831307114260454707338127689800137854269819131627390742618787016483743750346982131001179289238203185409457401537979045068060602844062595694229601543042588217410333043179932176632388925793913890147991784646608288193719166098117892358865007478301134764607072336458274535063183207747633440011438475012969782739552062815375019772415004955775310278161419011623758499036108189900954875915122847835565819494027315533309612570913434193840758143206400067378466386765254005737516387587657530698607170180096367040728473545757091029011582965934360828123714013908622797698923923222656970261203423888908225227795507149566387881513702603897264061639905873148204366966366172212104594369454413274359700683626635740503265920691224990488689961298301298771453638149604853873299723989493543922931172369459108817037305731978423386726996546464219225256273931584492143235488785372835986562078250992822880556812367854346678205991883589236545560764112126678933303619000157349999324588398526930633602941506168113733224835477875539949746398911204509575603467149481916892470032815867336983033591531220490070775936418560545758033459300587499235243220825752614434483641222240244648236023312023919583085142157367771305349294609748208657425295937381272846455474778947631369744449585530189005507357316319573126069254899502503011969831429103651059003928098852606826147291247196266797270137319948576339872273584299103335585341970751734144461515432374201853001609449875571219886492324469661692718641386970799532369656491095688822767761673163176424217547662308144346642457184274142819451802743052461093537549842414076878548128542075281662354854820249493394744285548970128379083029678334662180672274721889937281345215733706079189621721110962663567473459999156990811438107221549844869391546657902595217434324886657895134514255507168139766306279955114778025291804323133942764770360400858857020130337343334649893501168316212447399522881104770287584350419855416257380469293060694962328371243292291073298157519413228359141790804366130497673382213525678489982324478315593883245070834718800239966772720241330376692349694714737276059751331596239156070230298774534278428806538181885590360918774644947206078137695759007023610278762345125455983298940356952527063801436784281723002177836701896082530209422064692448706199547603269134699053664545094097322847255384865939314858159496116209369000030073838332025617688009453583908630396628936445735371907136093196631166545463507960894131359284109160807505512889536147480016253701865968314017243358447318332403725492107789027220024985598243566543202811049188158827157049368460882033771491674259851126693480518458717209287918447564810697755955210600308094446785419043304028853285279307818052483200865944215018898221608596674265054659372074867207218355384894487738540399306794026463745512358990462370689324413259124547036629676478727893291334867235842381018750736128906591530299581869716146507749922991365762377307299851511231177547676979574628200365357677076213254953799177554224137976316508616582533404089629311613629024262666726326674416622844055340785964395773887061008900303205803878042922083730402837383008312856729465545974254528653958660575895541987424052832982107864288531105446071749676166323618554569963607075844428267802470995996633547599270395276516490697782729182512441472270696620558538715305724536328376569579174009072939192712449631126839638881460649863215849739545104466162475558212945044066666532951815252482776799228678131530769805101899385963141026333992985774359722477154495641204234832511508378117654265797688604827136310974420908261307756494500829875886957500607124690169790245722056829670871443476134373586936950806716119706550227862832633284885125195384225572042566951663724885338691595529265007289774014200658249425870719953306844828270213381598509752496955351218091006938748616969081463259815614680516934784907339467678683091251213688470783187114192441379326244997687178914345557103266673296744354485791371824021471576595153804146031275822205961632791711903628261845453871468538535002469549540709128657143971266752117391231279519682616207281210984093906163831552273586890416758429559136827460330052348897197872301770392135957463833579887308787963517414004855699166104706463075798996325410525034164744374306574448133026033745692227993865078825928202721699237306578589758136268643602084362127935638885922330595003048647112369256259123874786592833358074776110877754296610092687496371703650180292770527968275497098944232105242202256271496344395188150235518038347200268527568060942246773407396272570673666278492544077278900141588552065083251997804994319440794805664181936754459784972416581865005995978036238012871033534722574678402944212169560161303771846333816217178218005016034749382206205311694606590138201309914424460693568392163468081891108124158189053964461576505255074734718123877545729295994748864394271469716202428907261979126751856164291005771535029287264137032916711862945573645939176054449298362997421791957066473111928529277201461893972632584022144750300780399691590698387271784289764625318524020426069550805819319636731259286917714452145474429979217769506593445332125291229277810693930594074886000974517755189646604025383045434492049582754495541681097748316372038127224896376748314358963928456935167977657338523403753135978702302277879092685946787945084359052804586687413900512679584700275427731629982133980608257023549048299566697285998481906980219978543234035928959971244277802916602503515505242298006572384270092140367883331570690374405023156295300265698501791652730100991079941750836678338790616462438082720794172693968286777935906238369528217542627956140790460416397240577419654083646572884161820689276236477908130699768348320340384406658832946862328385885624467600401096665759003651903305511515059837782802872826056532325530844245405584915811515398267462502210493556574008187202557307678461456675655692858180298419943457565706821525791563774963258964605172340892998663131912947434451824216934404326704959277646590723600772016598496013927558807237974692529003605243307593181608137950414170927400203231395892595768006549707076798619886054492137339436484595471564635022068095685795147192503523555530923684682107180971417737478779534535766546429231417965435971146934522872670114697916556555797264376994790984538799952598438262479190143898631939539936784299403961014975997798169630405494090476852591062064054276377658039100973364233809018833503565751085464322562873903548547463381962403035968062010763111806818608636401375304645438820090295166537478662364161343929998340992919079621641334315286617322682222901488755540951606820997804004238337385364469133615513064495685328768121844239802722402016438064693452353218129888033023998995308049984926096088446398167646606275815591413142914712524463282515282106516045790913442938324227259246990152174815091564932100413280318745830242165243268040588493254206830121199032554696183275333845364140151892010793253618245788206704923827783759504516870171283075337857775641257452674655162823370884328125258831436156200579003944549036730915786557744240912382477371245070987234180649734801886512058502528110320669545367741637700463553881248700333967337209694265483534026258353171999174904177828957316011214326586351243722165615840773067256928557046704332582963985253864140714503131873862169861861458266976390828921886827736097777053891114376718712384791098476201509650306266238281821518194365074531470416094170513250729575750695343555656974144500481411112080252145910458450999290561464968796658533609034838409680420530857182363312964898678716545910898864437255963171520791660632937361324628438317304804340939731193303114467377492460263229913737343033161671602561920363648180169802956797192378394895178358898575206261375629134148739378366785488471522751726457887926470557147712389213400108607451168744303135763735411971084609914899193288356682744091330793043071005966513588253587725381077275292685879695196490402197956604171729745788108592998554415264814988107325063252483246574450827422732653630194855221398079855352514107073816336186955706815416046773364898862485162267748602811088617448614489079672184204028978410114520452096236628044080482509336431970769395818055382504380434865425650146790381410279004874469264806532140573609327866123151705089694216937685252640641749652575337183683702899113125817613958349687388377712573654812555404738958277699299985536849603524290441558808054420308857836510951927221163762753326693868300317988634658009764868046663315821847682820600145031142993235301615166250138501703955513817698678440754748240797568734173280729440132350826519524477933788568995051638760359982458109827581707409768947975811387604846096347599548789538157970908857985427552886428916616785935034682043531495784775663772519378612971879881346452432088924923910270280987318471182006893065751675331169225640272263210251752929459358157841412000811231091142858851569382813494933019797162899821815875271946075342282356579670420071504471999606259907292501485147938337348001656664036634013457632175358594600319278709735233967007851378927549990165798587431373230944650394699509387720423951165332164869227310914291919367625256645516552653966453496254131582469268647390085070459812356396102359657758295450521552490287229492780390658724118186246800814737625889965567311030504872265051318380394056532549851312784175532564399993693081923229414435968582997356212923220478998095615806878505421717503015187656808522449658407957890465891518734051586005941513049790569286677820476863991268152932841509949915646595652424244182016737849582087011902666859324446092063437934915552041512228902385950148582778501690457288299529253119965052776317012612914699950210131925004447180117675297787587438279357325888169729830238545823862631331675829661913903379421687456388022593058615901874240463414066144210755719585659829025005742959037969669460308637826119348824725865590499557430607011362948088545176731344007998060159415540596378946695158625403574394553036700575944860481263613198093371533754188716449875697549628062618942908024630806714574300619387242016398879034456341361318212079965945231158528743458591832052791223339280444983145259132822732217751999278664901342526211941176053572208716006691155313693909755985288107681636340597960589490600500437274399530404635064029962746706720018545111322229424727195549420516062524510869121524206877190921729966254143097569918932000694772850008189271113152314613350412437312096232291033023593543830905257280112313559402423258899548963210469556765853708992822835569798670362010914065126160652951391262519026186664791357712070698465872057642949487311808771255330274637447823762442884174503611227659745698203320731259617695731788039524936204302541738722408312789414635731427300383393052966016569436503153189777995961689774427426661271275628169124880182950225774575078566900224148812392617730842228947852189909611639188683082092706654823730212504623308058319729298868427736841635854413934425284939179454197971362361771769787193619062474236352974131064872579572013307776695797768323174737983109348929616148338118644097468697739482432902357339572715537028310228381953603091639665872681621679297880549694741805484785571954985263246076945972783027337763191395786457440060190349816965077771650507955353508643341284430359803512183221106378938511001704763925914818798084851913898555828047398751504484087274961219458178184061782522599008463030867750313097582564558112146181767930442899736455232768666705250585207647937231809722954512828749805231232455134231099691962182536798481405767865235488633073667114340406651121104746283591165931373646882133392671607215237568259144779631021304371936021492391774105682827664235367285063611395395440438521625975839625997410913686775391084362994137077042451452411799971185292674620348094267407822981099283734201588610837844602478835414487222907560427541450128285975141582164824764261598551973439794833092372786812598510868348227637832413480219751851446717592827635235079180672687918752033434992696759075769841816445953057689724981580241305118591557652436260011422640191246538585911987042031129393408930993014860527333256360172839001658507825435177710761037468048231917193903812989967227420616764368999601269627226668311169267644734495413587710314913185462244783009725111815987016774793321228707367022327445714906257629964875851528289507724879967961235422074677989723825215607308606091244044747795031333020660589109468597702654665018803903338229169181099052225026252520572006322074312244549657313997886260683912993052854999655775919252966487089602503835324057169388663881036510762444411351262870808514233916988843951087945402812944358371933730183362563062330863025941494922526030664338582216241762616345097787286135204284132167256541591952202879491963773935147292887511237887650406531997922913892463487779165877998276219404754839670585027683543086090334092344415496100781197948489381869277874556189945005379513358958033354156310447468797071047626085287496586819262016559563240117701096380883254415646703200839775303003173009073676210121975626953897544850592780666801222815660483824105921033163743997557137789666478336387638518397278312633306763754895581698652601322413219898751564151747682058324824812944685826077954659583990681565963482422365056754250609197705151979586885826130108552328863528512361476737051856612896690540657882982611799228141033915663925938785327838367841196430745104798040839539057253315143966324542691039649817567388953631886909493939366894831777902911208962530822571420299940655112015544370083302194481204760516163246705762336719023216166888787180657125368329819353091640799168636222404244301868214652912757022627869997952966820940034003348073560738090233433116138447124594544105024687226502820322488313473132312629508168137651116062265440971275434289525597819549442786756146562917539468630269934603950054157939216810288187111128951390078705073318918425653591232002558571172135586175718072518058047177415435047753597306461921664773720506802914074711999465920395261243357617418127983073982489619827276940269114244071955068543153400517807427411025557626112956419102153496590020077395846303959482209778637800518614001472175816021890690947240553291605708885376711833309680182994845577609668440823543985576387432453046617956746698387135826349705625690335245508573117397079581855113047714879625550490256093537763802405008728216463384778378290386108456978551997229733482580887688449370620381490433958237615460534035525109823620593670255410127358707143468719319331173286996895069985412351730445042434670027615394469034591597317897732679143288512778440901066865332709641226472930870909198943001924015298233092931092684512049966325853972502498664346657196899666831013053175120907062594249331959174308225377127169688611058515182457634820634394660015511924928848855117395717085373702028607451309636359119568822463758309217271468206726913873611336239438890906663936692214268565791125893236193078238097631845603363092290840480459085029106253948400062719453697713075055841753020278223046317694327479960483929315405326445713792740631582740184766689006270804672833442020147648713973912117786245469352948820881709314137680872031557692412599756665671838617231715202873941897162265836967570736986844994406400627652541859979741212755095922444176956661225597838244755536012042588200633532017580441832326749397457531017441462057074158565895990116708829526093871683319189748025717431858717831200850188396027130507300214434628033873101595938909290916396630854976276505670711978596093107176028858126413255928770959311922844172007032308306123840825295130865082948920312981908407233127151783309514943122831901304016559186296258032879606029200092381237360199808386241522213021074371630562807074545545969540670915932530566443241781068701345722648699918955953630520988088155739377456904888839864291260027121570222613294139543749102018037835678264645270382094347113812805367054394124392204531041902093446574477573957485087649400796701113625830021477095517389869995654015868733662161544646532126825850562467676378331830507659418276855178947897043988893756761642162762676306955918005975819524993277910143125414405509772742358557015105074170620840732486337509343595354135768756560188485429341495822025974376071267862092352051486623282628279796671473941787524390289435169890290153061210538943514050998582706809859147889021482840599357325526758133774293896215143717236794173015636437644553016558886484115642988634929278823120285870306158931242449841570794241611545178988557813609027739004494998181494456264046547496813577390166736347230983985110199115945880668011797179190591801147557615307367229606729189283672636432995392006012334946524603301218891310544583194587539399359804861219608854660367358371651926231860057604870415837841803649672144201432295703369580047388420188590754239091481370861977408356301325048606948431628985345795527857686176891578030661463107605036205527843071363667061495617531258288088198953634087275514498289992696011626259351650370499039415624451012136024326201513117269182628237714882033912196952137630535903243301671813925962177338088237517070844087330766435246983385090576948392542967532812892166684425176216471276527414943652258404626595319149718243528346403835180072234575452094536857047460274319656544563674996828748501881068450828260631588421246374435564468537443032549440279054951725298114030697924543350660452062078987840091310335701399766687804472314863106723843264142429716542436257611894370709138974363178541972577666214441047449190823143605829396383454822069031674668672158823748114677562375208097501533608954142140199986360145465387375760084939704052558240216183651760908918794230802043679465715637404191340460848460704094931073573043872344292107387625510414483159091228984738117724097841099167138855269303116145473512614911142416813532823731195861974623374408570846669681454004202916623371732827088441092865149370843216171514889115964190352689346540481943732791505540104159285177096963137308257297878079837097741641416958072897457463251072135521379025862847257486425843819625034474048113810466475927160440857109343733662300275806916948219085239020895937742398218997720682474708098913144242490861907298538600366882800111582482582956870836204229181454798884325213401941055107774847133463454855846216878782333441275706126877167228744303709125786479654140665202049551060270059275082680408896509888141829109481813866621519325014259765607921910409495939825774067173266744905735653144402548111599737269496206334392759966997539101139701355542254504041851534843879129102417134161081570284416311336010522044706844158117450753762331981914550910271923513469186435039626392563531026450885669989718625364600958679416900088948798499947617700467190350979524020080475152238443664165805825545072436986362902600526506824125309486541812769700230584767555855906539555617919625787787063385493740686424455125197915514568422912567913619784489228728285580637018762016982876666204284639845433807598360788662120146457398620139301175657243044412944759557558892533078143908238822735929564916331033067616154210229558748936968835389263405730507169464715138667313183672836176041253419996783920402587946073417169053006604589961346859289175036247733544379672334483400359516554709815899361103629804859832620602427790357413561648494557913195598957077487425347580284619227745578359697369618431296806016908832273107640285658486258745658313524486276052306198108116227892593617922011921109511385245739669430631283568263250551865876346080962215835594578945212698947563488029263436186958656253399834774887438614489158186195450360797320764421443486467076046244303398079276031323541728007368861258625967848469691370299943212643329278695062469576527670852673468167185892310041940809369570816354584621001487509299057059006592266333701884587825353417057863540606676858488517422704584225431254504404726479215256299500826813113919850641395321571872421108702877600097171586004962975067864695856904951080033723577718484908173593537293215000845594437739716923803969678883523529312661769501357569420378115027507681593768076831241080696285687933148348092402235371758598327453735692090556887652083833574861047296188864816243382597699238599123046682408407511134823394868052043436599355300545136803217402383418939526688338599519482785774255534153602296392329534336636708718485045054901485747903198797300761481124399666923415036233786370717809234522119917108814577129073458019588230488200723614211784644981671669708427130018450699523722256290147070597499050325822379583148691170530066727132933460142875787186698098468217119094839629296854458542554244685922105773622947495343226285612374783819319150067422032093901529909649353616558800957893033121984922740179632928448133034677983552466142281713819819639015234863495795054948298962662844150786130004787702907492195757748866813290453034942018936172992671525675910328375827230183484425897621778577849973794610246498525152537296644205117288829292033395027144001355106677353044968451205152865467444770494208947161947931870788838675083784480462999781712554113618804827366280434726561035564200190755953819534702288998504625210958780990751032438210790445208369112328130931548399126343041088200778427635684615417840279351425060567154626105452333861927399083173352244879285150597315381151155646440429966581669914032785103597872859370931898375977880031123368920979555195052510957659445886442338138839361503572072904355470880095251663613184308304770637592595041786797884520843985309792900481273791295690220778745659214560766111629075269636099379070338899367850244902063088706890462196940656521494867245037828747505082244756215618164832736796257903327604729661878976425265960228310238729145148354596898906574661257923270865472046950026827343832983970763564886212889008218397563024463414106621732941439483818168962677901931969906324741850265129642621487415074403487537994605804890817887306212149218024799796228631164995312824157467062006186907279611407547567985462315036591076941682084096819724949846522042570187351698561352480971014645186191731184628595683210768407668194576082861371289723626962232097744131134281364429739680069526934798581407973838755591992968163275585549313500824005299444900727493334943839023895027596683292900628159071055187348533401106615891593894566304572818698634924687397733403909681615038533553111051456570335696761675826731824992782107351148974736054729121720611640787309425316847341789511346484960331017695168002787241469370297177655706392499150899809619289010442240694828646442347917677229668483843107237221745225619213507370224923513848856720514529548349174002799505837268887968619818841574249819777525524009886151057980233801799846334977047978068925358316104530976387823105638998491107529087726153801360893530240994475031027823023868880507866839395788219284104893533123387363588732553146615487085610962095657647315360944970177422121741409419273087512995270320187992346895326758793595307520935785865572731511315537344053633255609096363234047813312964684249256331704439413094776411538303125458380105519646956267711540806455656566943634888902797103818490684862964881328531714455328676475185741418811092570216330160098221936009025738600229593242328661197865304631382162750064640510164651491300179466287191718172095847530012769700292696671877523056038435395686831217086824820407092849391235020389355602187359625620745352074263212296272635524081080591763870966301878813843261497173589480267709395871416472848990144774162433179583588476927317861249290143952606818361012215679030904587234062161351366214154528731039170525254115190977963632220253606717345391439358622794220192222682923781922013940291958104754584045346125195958568651177349969186411215903263225202408556435391625005033512004207302332576390474135691443871093947359485105167219129648915370158742869269319970598791808920840419958001315208418924322426938970660052196378553727612558228155585697712896167326384391069742562782995908659146525252051383528230444886947182371519372283674384282130730452170846108686526324144262631247205865436217428118132145914898845445734991165762775593524814033997217827372407322613224060975414637159518458181392893122024709057881601423992733818139964674829314790044295561417147469700485914699462790893735318603689508530482504220622054573420547901800807923311782200872505077999529370569553744363158367301630953256199596573401636964170385281329814245044202280819197157321026091968144872856694212194343523291183216674800517912687456271044738077683908406691586903248763702984509655197021081771510968129970057324423511804383364350062262534077525350004261131524135811122627067068594124678196495185137051494204926124232215728027243658988858919959829018853264721187150061647197776852653359350972056720740428475529738410615384954002033256893456979401538529115804753901978888841829065311942766921174322416532825301873211162528299939940121788123463229768308460904578108285599599740300430580095088927293012182317266957664219525200697515604770944001707391148212622613348407309657201604556532241251361390738532591289830563154582578508829417174647121299441009722920980507985563325172431127977130711335331525626624966453540450136783025101837947449026289896375976596664147099083423770836030976505714278375359255203453328049662903509113588083784721834851081535121583346195213384563960705039467339894022490083108015653069077675010616695644163594615566011004795037833824740197960314920225066085175654202981524230063977488175701594317730681289245865224931872715350259203849791376074866296221367260865850418152321650330520746326453770557621745893962112627168568954581990679729757371504602575572807728243324249552920844101402972646542595303545687444003992750216886062873521954347453028181157238963105141563354487344358756929076419547686323091123010594122535769735358023001097453756226293952688372107458213355619595679125666843344481425970048240059615756919309037906962070635141979408420951236673065450731742433632013930562740180414006895210391643617509830616947527674527097547399526372067161887864784070348351230627484883765085906291561489147576271187651139386855035889165967284943751756224620647544236337317152759684647360472687006880437971940670148319060450931319411643629729431532280471626310945790408931410046656326031803210723285411503893854929446152399196314603193989405289239152998102074985722583957140427260439079307080722368920118338243401129060826052969610998106800802146050761641872182093856674184595980021149188022729014494628192258941416509445875741295208460528221327596800012475935818141348977183418658158888667978622246925650629269846752768233126045608993553306515581513514945832461995556129871222782039795802250485286345734092044227802736751340703953860997812468304801680432093980090670822276181068422591218232498363947200356343786144509559135127536707988109201714656462190527043896009670869174642543686312306916272519246076835820635637413575571484937591849487036744390004823513690586018355049290142901205409339658373985607728409540584853944156901927600439330265544768379477670415966488461470687767152497579138663765791155308911138351568800318926585636524068670195673296060361203696962651207629832707025159677685936855396302558598555759144461008210131052322042775988563148872657995283656077102425282754321068458435731998885550388627768583164201791780714509527690246583582547095375697062193360095424062865860888039504390246379243686143056088437827189358846178625282149849936503266520348210957949488255642845992263614167838431411374292616013186400580340660752639706017990316535769790449672879046547961285381965342982240560093630828666829074139761898829600235602100111703221409561160527193959039635613283846772717830241318972815485451293964515068724120994077482751351821753761009224217185422317064864596398053714648626222377970184690039851881174682555244760314378442169349081258061085808985010319649281582246884025244474163673491247113504255238715976707128300813909867704141506847862344551255782985748882185305396649840471186299937079022135178897273187684006304521253935649647317548553537744951419760111201332217112824097397631635957445778877929311196985862879421071011140366830835182363972250937690164561492027531908266942767512630100609421858861494997773853411321951893729027544299577192117888347773620063788525331999055874244266963833873233582630267072294528543895301959151866478503587635900216414031173000171724660662661027169891183652673328140248490392312776611789242970793246228773945461112990193356887398039979585625761612262709490682886991484463952010635478422926918904215569557317096838132372390648016825943306047676669579578092757626539839016489270434039538429306512806186956538081752725584370575080673933533451634512817341227108919301392236107670135984326481164479619930599575611479168340329486094519783814639255292910861830808035141635332403780404668669962947491953454133623706032132131745672124386120641321437152206180575808700954614988697142316648857811212477307285112629340180332689702461122792163000972758432544698997857118134814599031657835603154744935444643460647956991121112960860867854951233043509747037691908586999735656342199580968357872592424165040857980830728034027555554561844839685503109010289838748445223796577819298387884512061456456378389490741556767312357116081633847923099750401600590072285480431769113119123880332565929804933120535372119725724385910471810451346357185941895492545867654697076996581382583131181664587473687171872518159559716791833009943592353158736907702405574465346104705702651371814945721885967351780876583103159319383132144917595117294884752027749098287245521101127627021285229946446591873046821487582911501444963434004602536031939275423602012317752804382867616133339939220576690396014223131410041360229965670161603429553116827885825984914883985586634117459545866345266818391513436636488249061066541321353188761602172771064845768852049083522913925906316052960753982294467257073980709773587984808657045534050363740406917950466177586955145552758082713730769948745460567363928460321512325520644868351456646875522397793769826357497002428357388674404251232097302234218182783195561568898148404503501939883983748288357002993949636358329564759246108448161983607478705430049259271118457181419323859057901626664222087101259114239269969218183508710018101979348739706091105365140614010577139637637980826302792463993813006914944171593169400729153923076651830152579633623994244322491282690669989871383073499099049613823370455315397296757065484454148590078988924800567320993897656615524283329889742596226317863686277815717459853855447722291775649431004896913168463941929623043866489399651620310476813694972844704444543201209254404379726604037082613497691905978949924999213650944037732282349965038274139104391598056961916087807692788486650265069314643727353810203070530489383935303883572343831909269806146424722367582497784595143439707424272866338664159438597776570496034858267819327992838304932780644971146667368026526330984138174715410021286561925474688800539139084288329593307083524198712807364694977681516479488527128413700328000396039604237116739804175369631925224464841726909615715146844550728122890178058508655100130161855531588417098057430566613801669188343053044306056262087596553710909660466848703470054771444420444674094105120743220750020359409800858291593704906723254863955665165836011060669358584908062454450100465517414276880415491263420956210280874264795262883031771403861620448681114556747342888779167579306050506724674398417762045396191643197092506759677957841419823650407496116820134329498964831417383624290309817342634371801008500337543768047732246785682184777681467808760115703113022207624306550892306175505433539090510459576063795080582828961667049535273250712031151522155259829190550227962911616531281036256149207684195314794667362491727575449432869744400081445242700771147534402890019907228073542843081439364945852633950382504104789672074627638506541860331479744532058408746849009234742883195688628487904172307398143353366182311386829945405533394622109438353894372133625135504476805451490930511549602387466914708851444695061054392048619231730309331563946339284808532211891009289285265991801547706941674113807539160049441323178551114867593088434357349498498279843972330061101351396239432252768659812324684591791005123033052722103101742355021323313113128782491934543410386489405530536567123111291953689128306707625745368383975490898727894920609893885369379126825012214801919242863305591184427191181786703106446248903285447542530533749481643790546479339152765203051149652080256186505057575346860760171896979140919300354785398478615640595936110220991231726591032092689868489870157048254837660755455107514396653446403567255603466935013675989064871277099229927891224415591425044234435525887464844290083053721747351731838863193734454954582412750781779974617338267700569499172052599588087576881486951509898232793011375102914617944374075275640705580663927542127568289107858972130945532260758823158532225118724067251458420560981616089888127899883858987957809186011603841804443393800393496024157569526600035773612270140211871320792478476203974778694693129247027588520255896907067194541086818705081255267360632307305581336846784475968835091887117202750762544562524965680081382125478718825975015538584143539554589061242912265320417225718696173383467517239925369348479097178333099141890224886080544976466610663602244344518137762650479919891750469967718548453513414518241251262620169410766667071856826273422314468142044804458058135113263116787707843195289158235498801503844252654121257410083568298022433348652715596850826928746818067145905339638019914355851832841563166839617050279464292294953709071961305768510801016879845031776198263338643794773464486711161188660049340354743483917576035114894246772890004676464352652600044320165298390880164915626688345572253462429321411825278510823565701332804383128537264329182540602773197552201059014396552328033363370555342009594355229081675374972146055771119170081840081940426962119774294391318940980361320479576008826764847298121081847308495930222779760519221390183968343908425981605412100604696609778012275072734820929423992800331411721926339446546832464778967438250449649838447366003815520946773749487478963980979791878047966904987008148901999006125981297921407056092148620018540191179997690999838029579589670065969189828263181659772859379184016662179584996025725862617746901127447582471222625083650019330833610177578793278427433840823851082679587992884206620247837808633637728440540941670604214942235124678654230208413575856265234543093689720327707268911610214561981778842769684065580980182216515937896056440534459465847512570944914856230568290389029422292098326978613221255636175505202274027958426798930657158481018437376174721510073084017987528054315677699513831282736795688255454904342308031619742788817854845650205620459586865101113651362873857716079919390076787744861435756116359661834899394872681901678191684362923607527804701767315757939024277735828176272650889475758248360147353086669625851269111500417050267003495908818490561002439804421092901945468803032245152175959111374146911088349647249175032380529179823028899353772789429463354830471491051986489638121101723317806842676376728474201057347153655966875032844058491124165797995747836424290225932874470610515793783328840501135237158466974999677499515603427597942859855426111120928566180088651455066143597272506269619884822007058877963573170723828823930406961545954577567289097548014505892905849640418081199308861358957215563425749240824326426253160804280805435435237581897488445298759087154019399983597807878658034677373254918558578316694366113273254227199155068796817473979336007768631822590391197703484575672646387908838403318849359982869505571306422555656232027975701769753554622425616661042448509616809035911939485741680037627028386864365479809920084104520076972808840935996093379379118944945731733102784271428387228202596087299583036353577254041294258144608006419758738914231370607621178525640202119497869217283514845608375619401816916580378522549239475664390426626584826559631031984485380827816685809519258168989920429319787404183008258358142052536663596724610681751872229652623191032687726103573415392190720127792626011858797845532238445554908920061729875901194217841506278758525295645877114989859828425140434039188169185288360915862272287748979294300953749629249240170918723635202736396813896377002123948594992820182897027530541222993190973757977761305039540241396900417374742446339966035925496454998326556273710555494632037826263709773391809319574125106975186632751988411007766555900446258352015817112841648334403444894425640449969880591202359354428202360690265254800230341498560789851944435419510533763236240572510261322397683948062563348539092609117423540357613930213308497727137285379352636265109964054588729308751004533444777683336607378857993631969356222886128285713321946095643790792304280552273924672056477213020762142364610679304403630305407683552517628132211344502690438354409977194002390543129601852092825394400367667385963502657560715194100703266342031591364875247139811636566673611739000480278639798256830116114316388421114667610902152274244670454631377572719744696901888288920995202306982173591505406130448775233282227574088356195356940278677928122816920467354174189628494998581309115499273326905888368440978175874576594381440626467390204904824867891368954763025390721442064827726448938040377942017794258005069663278248816168226646919891856114893127712618681926102356445026205396672222913146314305654239727963243744671401046564543854780329877404790891914663913575829184665985654223668174239050350549895874762267156233071773339569712913112814269257718896316492034670221548259215479308322814346812795016791414009124615569357891196912308584924988600412721675443489632246801518409847887518724955351455431453415935339972695054071909365414906886305408108825200625028174038893800732225663764315094545957474882583144170490317570668833875214128946702396470082119940676235388209275975226776991141651329404198720841723659677116350282864945139707311098309952288614891168799209310419800515292259688857746997115405988028173826293652276884803956790501952107734878557600829444848367626066675977388226177873548458334263192714160975841664278140977457229156701524810555243064234049476304475081233872999828372799177909153357873143398127811036194284957337735882572618607379850017220898796166599187841231381827189858376571882226497157399797514288843969100990626031707583178033651360066275377970575790732540617425551415219649485639407230887907461813175586890766844210906181299031150973414515100396051966248418373536385432091087626739128496777579264873235490202422875479605225386336707316655029108768161366600637445453982511895521286000715495768415783342889816790479130109030822564497655847881778546770902519918221481041263273876121000460343498257036557459418071771150649941791665502734583405798484509347226529537227523839847519432713475787689410822538296576290734624164737663575202302405263217591096123046789868518799399527051755603370051914500798296452277188799412230874472919406225098111164613568105403004026698796596543400337707206062712758710906459574919837345478633967745780560675643802497506228866718178670055290876228288061270461819267979035001303924967792254223961762290736924769124199498246005456219916136597573744994597940297665179991431758007386832199480028638612415423665125362296899251044159039461962907241892322343572829581954737051140716350124007410815207602032290601304505722914988550470966031622294154578988979555062099186141445456008695153026386416933112563410128716121964899524802259246742575167108417286186465023244295604444328714455901487065211214512379778123714172955043284530918615629080613169368075739683034009149079561345338109998431421722921237974941619651141979617622912769994604168620798048195440890737078720515396732699094215037870731794179588825241291219207334906309002131545771562529592816700150828677722158292006136155246914090442798932786040666342712659443818925084408638471465426986127649484280252823952742513508658500750690848224779849218404524978777764884753128383463625808277887886573503615495169698049595063925711839954702043528143391637757960010273900937270823516054979385923912315646576829257283559285636536069123215441944697989836777170881087693994317054274350414598195958893769760683743263172601610336485376634558663608098810860294270851874876713626773631120621754749934287352378375126465006506744310914965129560405247243528381845266882097473045765943684905965091880452912503601711106108823862243496029811117836618267080160390173942220092187293921703154916520559401055037262340215135389244822042877131168331225798839768580800016758894087104408996890430030474914675088167505913213119118595195059982529608221533950691815228943630505073512043867987077838849631501235501524301159697410154426153402375079757842489623528035718139555440712840097878840294944796600035042227999371615322916911194251714011271716868740708447254333426464407551153002172751901949855775206918733901098897431804469985455833852462404286254887247872778476660164501926470372111148617889614504991028000109429622225272007279801000316201006798747610092267243083219547180715708815838562354807067197602869820156107544387881687490778560429209315653846359220026421147119771899248599221789463363146939509032911528848577204311822960118137437911755275935133864973249391697710297451029482384676102216630361044338976380359965460020084890026102183012152969237204026913024711906879237340922431087853250737823809561347959642712844958601598849590517578210575733964328095644156070013943116690763875459473011676919257263855038474715286052831454601867809127930320809466442816717113255771912178331283260210980005473602656186060391000704501309457149709318810899129509151172594176609580622308356438384014620179987237840535396568498462094895154071583250992287884104495786693104894339274766212497800639811875485716332583615964421505190637781089368055230284139937186474357139080534874901916999936259452313627845000173373058183275722375236888602364494167620586132863561250833543785074594692230754961299983302168471127336919426579752357903767418412564655348950955771718679352650926949248574798875979280570809879153727129615738077001325595413562441216652563614458359314687925565159546376416984265642321320695177688530829131671118312907332652232011030027306154702328847786008636910227242048523990750214004098283100517861242918473169648730368730383813670373100773102353929181285680898006759666387137353052227904154044775024340650385724145001951414550675901748504392958974016899352248002188590207875954370243212970497295041426513511380646280743646558320730559153437539697962072360500838102509863468906668974566730670397730439952888594679035555888151602029452238171586841243010950801457018972663463866864897807993935870644738889250112325158442632083737268050784102870394538043759777175364544053631640465722547828868886297351428301318542061973402122230251127041786788848042924022578293417921590023672377370886598171574198458986977358827009227944478508054587236854439835178424001989778699170827367481523977924149876497480079747368691628601299979818287140953047567743245573030461031397608389036040402455398390896278299998952914868086115344073376783464658158003711326913974963505512065709802750562291156700890594730750871327149784248281988514915650385373125255404095680223931978871649887804727940565721171868792467761767780083213187215916779374247006234756577402442705090957987176594166325787440486583522529045503108533586158150128856669041620201344962689775448926839697445778220362516547027137116474544861901260463328094327646358570830305353503918895122154676016950743666364767358212982380386234557759908143693480673847876151554571394692874879660582743874017937640471298469558260427358920671995467937123138337084114106361224245902350444849770359324355461796909597285563809337482516511515139693722833612668484141685138639600213320622445291546400272430203920740318973735521505726087562278924182819949950860814685844754454899468680972950970878661073376659739251752232865843212941432478832842963610990839089422421176199416732276744175842186696077332954082594939319409969880419577941205993301161701386955856196162887194459722760874115891259427899130411330073393332206728643054205391645657065465348298747379306329097563667002782856513567470908162658605409176174312566026751007533591498464659967592152402830195222851468206545350639975328607288025496048274026459348242442307804540611321086059806379255345815725297971099593996738989779985448632507353230677554124219846627956770729700647339049635609275861258072452194485124725472496307593412276707044553300955106619568298416174671215084803844290352613497473254025376160036302465467041942536165689237592722397039642939139350670107012325605567552410825496330957356512657753413606143295130579156167993483605943925596984096412376506028532023702580904921513832052592098668512292193151469668707335851548830207542177555815451869163640754941968997570200709264479379641245534111260397650638593054431342800904007471443865903886177897265981733842192336419250341948815516641683140617385425536002095721157606763855936077638034252431372342165958450938170587654222642717059629145794158834418256110009269606297305391738290640605717589022123530617196190976694223078479288905037166192810458837505727924301710664780288195338023581414264018009007516558798662605633942784504193934733809557904013037669034333493946051624194961489566023349561432155700584411686060665207525625364299660158624649277912137843945918724894116888145628075819409405400959714716999353247684901195912451383642452669617664861511693624746901299073208124178245504622072976114060699378402017772680745748896666366291249742569449905044577894412783750540742511628800950694288670437014989947120485498535390718616593826775168132405372367809940405192591483704383093820072667397432083931832451287972541519737316346067107842475632309789471852439083988570178137458253853971552548608219499603851655398315264850156614374344291035484170630677410758615685930027190935904866957162409755035162681597244775379760393216897199141482269055159360168387973998512956482875966698167417202555736205929475323152225409623026355481205527710002973803770048692084728365867742492024981981042124603828699971359739060594632281519515018008259359649463459860468113534305089237601138067238611132143969740100489724127560678088842653082590553188657451349948265027620167830939185291263451593955536850228550663560268051273209793375184143009675144686355162837151451523516478207963876115979087172229347069513017653935674880134429216819939913562153610909426904272636720549978155357533998565653249269456151061097842728464750255037225321929826969738205572150979492323771485155540294871819336769304752821155643741291552713755885805261341749864492349625521701185734542975980468817261731477307728266928774466158842677466335740076313706253152319607466690660440939842230208267170490031427501027746693152381786590214944382194160280735582004595727406773302039003844132931580256236652457475611771441870811995977897964698187234215746268442348482834276488958478864733091043143118321563168537276526071285076703466658855609614617235287782087729062382083685322060574565405680792912312994380389473002302366080668231498410202720511453909809655950702501541565593730198202207162496999252531065448211396561449856746329113443929068616351844928587949248500260263248598385297411572035611449832978311579055919824128464607527160607060752848560156184677579041899905659061551662697386938196837840130377022846657546450181041811203357744149773660622212062681923552339551451813210295327158986492091005013355896781967921850976543617598553619056258601899461497460869998021938384138501920995657890003799097993586956418743872561883092958854100658713722386496870929915789268898581584832259845691164152383411460991102444848369193567312476541609320789356608586291865883410367185758613982135277606464229911638964683034905933015796413043611212816763087115933307459657502148808581162803995786008764310781525808313532094249873930996307028349815927796953087550174938584728423175519790162411034653200571947033437074039133981210178771950213761999172319611532660709982829396134104897308989867308926989011314347871147101105187876258496460546372955623587245808371774028401841563653049636847624098259570382694587179717248171311575825120187325825385628288548552079947918401124954726892103403313113926960920598998243326179094620766786539217881680435937749768564361563331541622491487859077223682855478020945662565845527091579296003522062042767780578918587186747051443823597860382353113512250968758492523235910165026025154783778881035745074423160341174095765888227690143632028758502565390924927549327300893641049454705557851416439655147103512956082173209704542515309367739571395626733874735538791347095256314590470374613755133398718475427582430432250743302822140461451490075321707254285879385959443257371411294199009761102888786456406953843269131659620715133862314481675243555620119032717920759260651911092251487198885064769822578501010147530963263156355808673172849235304275271100959764058456201024647724947560407981686587657789998657056844741221964891563525309504428856177387766118566026331104370013686720845057168136394669244105469531695091960098118511344210944516389856276359163887158023721406936034421273888516427676163066694093188544772943711129842611123518080216140315822335016330162595433085081155062164929003505147469795022652463640853430011147206444833661393001509837815237504450995010175654398693690258972270960249040186744984559749341439943925430078540936253042697464460483831248340606161716441595713430264025451849062685819222659561672026304896769372961604019555710719963738762130999399832170605743834759842955422896080418658838986083435490625750889321345875430390886206555500652643305361693173308623154125787133122229755767791951815020717300065275995862864792106229146829179182642959999829685432364997276069107562030982400327915042898232798411333162843888429481764255774767040904445438349979291895246559044421839079943280958228720554984902192642444407893620959590151001789920797711061438380073107239919180527221341230192631294740468721495665699354770708116349930556379147037368416583428818548941608599116073976619261685421185874686398277378405755516682221399614954402297613179921668453565307873644720142237842197718018853154982261523968195270601909493370678441417832267652798337705216473438634704020107610957429661325292044629510846804546910029352199195863951001818148074171128020915831275225873434452696677421080306167572508114954624456804540462480070647613819815363113973091424726570179804580645057423552588437300829629788783727475611706935748332859875023736262762918800296015496915113200016684970899814922702167264869177862901970769910688986198899006508705583700877259356379651854991124448441226182673460320510832300043938872290389247165679055132181136371599122028847879296734114874710321567979380298519959616959862126440769292899818020769226684445974084719842864198791107832666515071329329411760856513687729001215019893059482510098703657959402613656334541688577128184412464503590039067295269856894837196630292679657311884329981989526388397036498284741726937423937855045164367723147656153604632363568854239579235844778484315233935145363264988773142548381151927849637058357237267593626920324783238851528753952334358652771702171550034677251162660214958356677108007397351950481234068567816888681034038616164412529964031776762705491682399307557707625098121115408951899748525630828149545545491487493676960642053065615475389025065221575241643300611009007390343357086075834831183595106942357082858740488405618825077107857238008810723497863730720427221002270573426455118355792895924245472009624240354366541559701071175990522706372067426564346165471752914729526017794502983759572239531256575977090906733826130309136501464347237360932992718321027695429415970725307577951883711865369822536779950362927036414908978905522408048575031013977707394093936921660829632638319708764453097088128155452632192555179112080833883529450117093137931452072213699638130232379091825194365149150470277650428480383801394228472629145985503899378430542489867845712631189779764219377593229915894731997015426048485452185340655210817946239520799114172300100346601089069122345837404559962233685564872013169112870445090474778785272530447937189120578737090715316388514988563974457346253941870927283673506679212323789721802839559186814960409602722704606437990004943050034222359564633719625646634896872045621507259334302594029304682943114359873638043165056429729797521214567224042718685927825117949356583470479777757671879621556828020896567795716089368628566923949925153531930972841103639581922812542129580963530000824657379334107080314898102078033190492844625258952809385454876197529394813991209657970241346921070539733224765920448445284073217862053379210126229814724962698266259489761378833032276281056021244489235130691205458786170177749909423140760754915292223452065064505978956330120192101072445570083689508234054196309571552861582759097396717686874063251850324294855302819189546776550867531707687749632605332200162478505932723807016477542844370146327406284491846703657750410918718000479483111304124603476214121432154643108775756349783841418895666609653588006915838937701714817564465174996588647454338866824346645273928071644351445638360467440223818529872910845910771215221938623761733700037860981481491371882855761799107812707337535107029581158815315458112028100500273397660588746066536175475084025794028809912278590402775347567621352972589577293016621803874059588243443236130115461369988478575926310631378295518284479824456270833671593153104623574473688214882671620077997080339553774527030402943385950318322532859063996106741674767548030542486045672127070049044897762015525646386094299766723731544904230223850406444933576444205491780661879121268595809627800558878038161236208313815985722693031513316360433808936722547836682647966230543620756630659034682949861824328150337767612893649026738403530743242099338647979634395779711153812450955492425555707848016471052484340136313506771895770258227233750379927577823364370731788537578706250415874108339385768272044127427793910826453196653664714713916216138579010256110082289651459990244022185128588283273257209075486944593673547684126775847653112619983813592392084058226482982743989995209886856513165276960482435693030050123895943679826127177417951902579775445512761485148627492879258666487661863844942683647178045136759748466463152190861279594512397363855142841651035180917238281481939072841383845974561469616063064925940274082348681756659243067572621055905395540381223662278592254405570620308485694005727702889891638515447236043501097531250418494834383940383147622348099119045614517833296661993320460069782880485877752148971910404583093374819023077457366771050225628190397705139417825826176367539224713752699683887364785185190547549576385163047323907018684625827520547982559931796260253625193668292898438917289665296541198190273337908727784968715048195801500941670835984943124094994001074675803728734612960660120405029053165317953446629752977731953829289816419819118203900962973040867069737472864856841418813769832589640960629179312264143307741986265829533763241581717677023644689642154764873922674395203054756375883724208931458311673462460808566922160843703328972231860776196305697711087251347247186097215315303112530990086595827897824639386594067875850130114202463484019917617686103196085988814081379575560109719553700247385879017799789889248748696869149213200386365496614905895252528296513041936926731272901700342750963132840588927493473188305456083293276108238767773878771382499113122536266519367118188265106324678453112850056156699201598244149690416871113676446062640591634774255870640247221656245143454896847884365176925186326093333692870068595425446717360653711649889676252599986604600667739616543987153997766833802603247732618332631048289792883646407977067876906014335132376951583057953511375745613554089412860979333116106981090833341067118391581335619882634515970886331095758887607315940377776155375612123500148655635421508350931129539201293464179634693218285638172283132097547531547862438558069750048246352392530333318214689721281239296989164474891714691324651352422139179298041333950187749512572298569794435505285660518672230783445434575615880363608073081339022982520837457292217208841291860546883136109392363677667466270426820844636173857585872812411460466866046287387101434638748578273941262820506525604514476452145543484595026387527525634232478013886352278631717566141534558863459244624361472856532274901547379683410716396349768580627207233903444211369843588324864980759541994353842297465434693745702835725412932299511352556411062859734537214778582071725961627120753127372700856396382045158370140135218795858511472271528142764774929215601307816504309918036680393064667322496386327857171278535739899012090563137855931060767385592450567306313784833937645354677344998424910545041424298737991724819982029298728274831564895673713492937361815286592119217578023177977035561552044376101471682420703507525252483388886623958332698505268717109945309183421194300802842225312505654572598559815064166794146923778211194620042620831876267833310305198363874686182112977401086753556678324323736181467262387290256215162578533164911327352950912632386907300510956962066894360079905571129134587294666911616773688852693430255946163400747734652795176766721754461333549749733956951970303016466148997174678650986020832017593858132361709907135823047065481847351713003884557100005417544405552615231553296293103164797580053994418704010499881364287821679810127276890580931571917078383907435658995538664249133048847236912016292007822670510246294071849679251192864262682331571259881464510963060618502649790146214408763221644968993017197065627092821059279542433421109607679037039772631291170142204081975796923048338649039729988806696721900792415730593825010412697052713518928845077352449455597757811759210344742412338994717032644346690650681918890469598124867870975513330865367095607832595427760172580446052623081819171418985783747690231410735365762317285512217182591851547145789201488709874133892379371027580711429861112790959172456218301749218762705413732964818282320391384596781540805198737530211946236454310069144605578050355227884599327835473773737609699900461464508402186257663779483241401384072362959349424135183178023276436260515544853761389619481667052450311069188658646031425888642281542321890379861253129060874711552328147291236770087163521659766049034844739754360203046218662846100258641960622241021420089189086553075167633015578442878861018500889775783068600583444707294282447358093201976340969850899268824693882434674119605679762690791711351269327550353659487793576940159913342649147396732909048209575535052865960955199963049526303238878117314362847209199251967594565891769805103721789875596708486634882213662386280821582928758136265290024651161933714895612123264263767516122668111773214473570542883955581443093067099618269376508265976611683140978891190116326534167546047640518106389227262100947991049035702446002264089298910908280323531303163810702084949766226632889742860734750798401263411542695469534141218908000889483013724094465382737791570176588507485915699980586695561803177355937489641662658519735697456046819387822145884794539245478112541754565837242889423499031041402787714340572301032827262395233840720287627346433203401995448958993488820198945585199694345445678547577120560459080808655105418946101021891596226706722077035107354309581345337712460060892205720519186244769679967710949983474938738798979705968718614487276003964413622971314213102847552408980911316668736370694541357650464154017024002931086260440124638302854648173342536344479834577726374604019435549990009570493150776210766303793366510354622299346438705325295907624283327018128429444613870151477118421070240019183803233472835939623245135254582793889714039499394365406502977235865572076074558307893700847811865758098488451193358484416835982922240757263624593979684852405777189562714541321477540701301738238945693229754300836588959040995702542408337957742891743249877027333689781909538004800689791581812851366948460956668852912345507484818067319524310494586922914828223148626103668052376724035955514117615444446735573395363571502856912830671849765649732417828652786477393243649854748044908981620416392401556198871744876339471643751639405096963862756190630272733334498725795661611289136744536183863289914738514620356496884512670243167057908410868131196961061801921958914879299560833984586777781357561950485135849096130226220294797587508038007005507924574725101975804655181151168428430192239054280463245719050905675346284707124036007161687742769328072168039365089990437563157436178552297875904381762122949775442573061554755992532255657139699707052577667110987049092755914066658487564716963409655882904374171828919748515240892086395311902468803736525837334173240505922534805236495995373254869146807996175927254488360399742338814345605287614466624597310471811839052268587550534059827697578782811844113493123621869277319089070728764140812899529453806289307473200665433902368345094447157391391998044260101602985217470888750838600225767924217798073332400219873078173348030276620155508902976870121295510966817914486995201221104551970712559130062130041786041289302101447401968407602622297544926785492660064849327387118203396743648281605066603872144932902822376725902350407068119166197241989466406964667381078563685790809475072062739680064428738587553846804662319227754637087635912111556117142514379992601394517441005950631809394992307269207625839892417591551825831172525933514670642395111273878451488143499210432220204804822296329853784520911925502219805347320806547320335273235485528180749521908192130959261189052453573369094404469359169859682410986803431400325078675262354000973854017459021366904846178978557067305762827579422793600798675475593202467642408952007322955691617503494686735460943442983337769980844228042694312715367075103334259861891127224414830982397119755652358097459429257326688221589602115370288690044162278691870962359386660224253782498636689774004597879419462816490429448040294810866638613956239928414000256997506170381491155138138039667788748502856147757431479404780631497927505774251503459257399523956142891225365827067847699372613861214247677696725282493674958500028953375326762202921135952769242597030021303348290806544192550610572109724011668355067750200065545899539127345795018715690908235042408236164278959266483754220618077562237857987904640021172461783098023355316498759273600647661123843526113764482562311428609442579834903458016996140615649928198577871369432051492714737079990042242160313990859060506764031297015283084623290774228123231999362699509743089475047804021432535815980336355115934639344261936173341936852433974738095126708651842733630067980878400628063790238369275863472804452287050775114451968320741802852655828854624263379826480423604747808837933194168320643974274373928627468136538827088400029399249283227985342675351471921928336895106987230953500723192820623859933498357524257512503549265315235356794297690048166066921402586027936616251992236698697296405262698783400373211678900203902426559999884845381086150848063561291781318731532636669048019446168722242519343289596718926265019767053004876919925469725494136703891823024304865756892379396453133424909267408828915799009188014283680715833610684189910044722872027642619242056865016775104655970100256252999408689540376333078389557416300187440335389075685262075086308548663423352563178069311937524520659554000304821125011878290024965955947080640874658516307620298308416889260735655213876006950028214030860215296028360070596096982278534931687991919822136308644046199802178976973173837013956112615151577764259671801279042179879395133849260907789440610101482437153558478233788967629383978929851341801247826577457219836564424235834235071322094394679608124086583974589148124934303200283782221701135091099673536326563390956821097826234329636308850892245194732474840114408346890222325612561819713788604208957681966989151623333241981873888126400510244606901588692420233527239438683631458346104255238098966759165093674923009098044317749871790097013122444419110075124591786080010813467672326620606179490197162340387007354516698728094352372361058966256083532505497839621306104784949218949028627006612657363855127249676525620284708919487280294348851118811860156297409965869122322189253997637819295016792190209767693879664731592051242265114593474963020809361589802557487528966028433500260527799803037692343269965329192001345495299626895427655697776904986224135101725855718711420965096748206446561574721630808381118198531210837858965563426284924510353388331161376197046773138422753714978696601174760270347337714700834626895566077706255226798778980222222315905610391164461902520327536369799246245174352453137149951622794347142231553828291992900383885352275250748419062592890240762984685497736435173264883244835040542467694705562522802955504889901316882145185665681314923293538743523152280208294660927410803759208464740649990049780404590439442860202421863962245425283097732753023253270301416994225958080471687742941726715134871154070399707715254028011712853410339079938022535208434354866479570970041913743084199323494796292640682716066313823549304789940857862170672014295505740289313720935334025035384004602469874363183047907552130227912663505996288124150502862383806633050813844305911400511498316238321889029861232294363093450517872751846870794558438395564522035478357286070140321973315056594154883564768863237700294038980111773496505937849448975255620786486867368931915355346494960236126162278946207044296883210554410212870085609683038031091569815435914513947049140351389962859975485552637353432388692308527490677599893731874521319933531163185851336201009981609712032664559214214516571150913683399996321895643436576904247205154468438466057441595829124601063859182263850889470436534697712250798261449052571168938241586029122300865033991401971248822638851416791931800357636190430710608079072606384414605441657431346141320707100528271631104291531424491489111922075026434570598511073853146944912415300722515328891489783433036834910487310473973897717459473698298814299779432818750123035816654627073262145241442317655409732720416313523330489822027337479159835152185553030020925976342778508337543373162071641860747636002954944796753396011044832343636517796512586935662400470652852526538669535206569985292432078404274101372801321852403632025260696961821185894058046253614107143572291751598613819232239035773894190684593355854898020542829107515299162146457221980094107789413993273751739962090766470871835524175360076815685987703144261593463521478585809602776350250212373253304243592521030758082663282367307756105250451532920504091535204944439621596336426560942689647403371622309464629078471596746984221565446371893421011258250869160270030967344400117832307888233478031340303940384850773135975709938929978741538424796509756832635069126690115932364782892489361735719466680042647542379056253374922584944867893539940178167963254824186693297019813564299419403158506216801909994657398908133896164812940596728211573314209973909783499699468819183991237318336255498624768769068361740828175802660023672438254840081454110487016857404221689316535817565323005622561994797012425304625103665837560270915614065722811043788130533677937728243528303374401715677739879924086628126559821986437102701079944635091327583017359402986941440673537992208063035711439290478871996609193350128499412775105987700301267406753217777048352883296892579010260879031380236227898849012940078847582456287400096745496407743665316346230446556475180781210623401945066023342557203525088665274927801068749498547750536655777139619024339570893283516771723037085285380650013387143041037815955805237822946321939808518269026787531471789577844247655099901927365811103431804418975640960843208702361505070885506873278803120785360699060782013432563166549312517081705559714576295607468062026327126626784626690821544110292875535605302426784132779289232454177322203479788147816321411204199615788917065260282737568523181396018259632683117250397947840135612705404295485166603272912787087396865416523650548814363472325165898488445709236913472200779661938922757498959002494991013331653946581104859532559880667476423718430450764214819754012263176159354129294160030736581121526338083045609716233750189861841477696559325029840263269009635216157120951412769945646928263656623864169116590913240196079613378268452779798808599856536519329654179748272806879576816959595948482756251498106797513577496531253572742381064950085391715064643274732105992503699025005795171744215976207366268744733858665192154852320834730905397105811062957095666935398861741199645738714511448908693753453613053383393189215336420440863033811463334879945331448836291316807090031522043611163552789442655759241367634663658740936646216067809527310818375613481825992126474711896197498169284359654672735425278253906856573126197919987133341412839845208425225975703543126289875308008853091925106776549208455796245673374737563030104574337250667150862621083822804557828137087575143187449216446763372536113890323859191060434595873519996838938519089517921335405627974416819659834476229721910533994725946044148776104077368476037233838374924383829795864038024804263928416418764235993189884856974744743804709550816073647628164531724362388344274284603832931169248046695113493746714282577981306180067944598184176338799406642590151314878647728773790095856271589647563926026252134543187811697613793479434311177643533048923498503308578139105886324803076661500541778381376747670187883756052720054467130981768739493520561809822331001493968480067424775918699376307094187403670568732921591792176121076539890325462848504711098422469572489415928786082072360475588209169580800522554879390085493916686538748228317276690031665455720986616444554753810829669145077163778885200558427027597075067291486745203762056110650367087978387184567254189849852021273614480273399872222473078117757294141533748498112232680968297543727980125594310802487338489854530236079078777269376939875400795880166551096621979959928348373563314373104239152157608237116720983360201714513302872347504193079821007814197702700830583292299589173243109347794994196013354993917152806682914361049066546866476110864671496397247947262350312980340314086258717759372688983526118880591428822445216612021410258425975230585907388532926254778067671653875199556783144482825503795842022448589670120508127345011850620840247229832425150142632667062844481157865274515173327810878892130512493377320708879573702051176217883872073199229718221005685198757542808585823264414732326190140124998426559678270558277072959989251387054914952600726596666909293338001966975649769197386132159980564507725415527712527654982835950146516443841738537982164898502798099025703793259593336935736584773681528283022649513731002773696168806947525742434244350518102170314914926593234147008354342220508078921147452740927160475416969439711182955539633382779480612245735851239417769219567289969572405072898540206220618151371450505473522671503331748995750831088882594906732520855769214264399324875333333044655016179433623054442355837236253795475789276660849764683107331384486514431778221257405165964517796987470030255558358792595858910213523908167364223481678808670580850749203943941834475846166933743537741889122218997270783752378782768552364284417645630275126256591020330842640379575362494046647684933703116342088335428910906604022554952242945752871288236572069051938413627481909066995641030566351572427738973458230725639407185685467570248929324922205019342700055957224103328446669344257284146165994145589245362424865234864733805186834995223470153510690313738449318902969472433099359399975707710433168881162671511980698528260813409228218827536284487997925827020244748122167175344689346172519020484404396622200785185917662618864242216796384888356912843744703982076929442321142718456307606824244624126374577177672038274844833153804493912599544009115835042620885853818191270415351272198109841291281951200041393696503129853471479967959456278950516047577006015394737614880920183762206628853021960810616247862123116742084413536626053760883969818309976910298737923557242302056228176078757770246257984005618665429563963716710109678177289249514596326266628876541453688928199254404956384344951601243715724702346982059462838206477865924961508708627971133893661616175215455655993396071939392395964624391835696990070266631035894780327740025709942479833419677153820985217666411755852166055196949308218344763142104033731924415100981013910418528702897910033152842378758987939198816689234184011408378053933275031794111958063502787870046467750016074860573806219020833605785995156015904052436749367563281796116056959517236387281789054224174117463263814574312175442418968140618445852172640226626931892109146809828451455223164750093353749228266434661569334651665923826330100548061493844339889350219897786049916657889154959129501023096573697319141230283264647014563561436651327545530145720646246391686850888992135743050652720742202946107519499512025330792721327989697760327350283289716577289019005902896387485126832806663248414033479222366990635449385158071080326581441492543601773852736621024191856791935008018263297679543547773768545441669608111055527426205420545670833714853095567727468280233506416560385572079837884114943531610294987227343400806827282891592604032815720680025609171624158895605833352060857964505163852056812086346483151107735703575207343176336545780744535397190916496764178648568368698559762875147573863904462079619524559811877403165512827932735019422320206766753596644194557685608960873157727901684439257252258345118306500843326744546619901985629003202015925379461697273822949673293508871327385198421152463097004166565488380789479048779483626155997489293417774277222766308983024323543866254824474899659353638057527736456437754974658425722074323425440021093788435187940968755467650807839190452215573364682299358814055947945850234470820409199856987915210981090649854230688140322720140952729207272601382649750269149404661145913368689825954051538545153697239861698423848096737280904109567641792045704959173717039073956676230676023943155025006715249722236454874847890969431650573859637180428209716385635896451288755855837204927335746373159298319527594520270151936915159793758651006884942412966735620503609658073076752224402034479757430513690770181076464067496636353186505907094316173240081708635198571108061937804352752126597378046107398325893341829077826201457552137636260459356453436456517955186065302833129365203698102997949494068661688555106268633541442644317373117002081309233241766010048144174263607171546537398922203434105204380201081280624189923105797639076952507826301894812643922455407528446863552526726225552657663874447133119233974366332246414072639167420633064580377561247157536718469250643925607704218806637746800090750249921900420432197194901725473607378127230935843987253193447242298348870166843960348864314631634868835156916737043297487247431082733979662247785537741963085293842175388904004373453255386513318583059394580749822675500060101711130932983090389304295469534967619365727564072872102182390766923783983045982641963247586657284593562694473073697014682270977876549240550257003861924067887522922061082112325364334751315670945329978397868474560162089955613365781896991029507134475022503665898704749333648221786317644591421138677645595860946355304247904623852204527347487552710527916205302271141507322734029341746132003031603075961595369991918604865481173498746855973639821150392139253213085848372260970011129901571343407060102618345038259840375653205583647666119264176556026820539391730053042587500808716736669948920629305379197018116441458106349342107432741652686552797034544375668698055867539776002324742883832880836728529072619117784303701609994766341346083913792575624423231537217484723615282283269530942694389892513621120926377537164823147639837724060170285748014240244667411939829230487967821795103182540517376535056499967130719563125892477084206265170840596795262701807579347883683803985657327819647795544699788063594622579779896294849374635451390511580207258072307014333614185156047025142571017875080494538513291630209015317857524220030006120905917871181828309799940286538487969145719425334993352306004793135302247870178811664941918640889755336675669887888672784349376933962038399685458517327882901301137099900610427250306181156192183257571631110858615188020403191953941597564441440198019438236518320571529506967251570097925435943547287588708506356069704021307676457930614112792046981613232573961051471888607798409000045666511769067806953917602326480278607292447639241294825454060298400039908666569420866088012593658714681584240853320546455787725434381748355299428252445977279333886159613946741793781988606411330612041850374245515213363204417486267855648799618617581444693045025602483139228229641798720628687113885825420228908974493615902018026168343335523312106038214179155805337284633769947037435215320476248449277097526316938885962566282642676348551963873385978484878279464653514206602119467235985325945383435360627110411771271457808821233491383238364769343185618476583265554352907935065986824825754681297092311187874303444740928611043442590924565911729499915942609528034185222766941281024750746565416557998318919059758823828690791552735839765691039672439621885736952088648721066282345075880082056574019801696776109210037396030313832996647718950205788340375902264233742611211438734742461185033870709640039017606303428597174909433682256477101659409009279958323203284528187330290008476750063807564680621949813187824829796438841028812181652526571155211808902044923631697866980913139866636947573017207819621348784218574585239791438353872994647366421807678748891150946945600804423222011527721368259997689273526179400469319280463030360207313653037835325748946493584304606864983729436696967441451714003131728841207841828289976252042801684627207442252586438647786778341475155960716626147025879009339920204456186975107464953450958599380958950350993316417520227171171953303983317655453810442571436838042877271117044054340007951204963503690273387332273825917077328211032495055782808161819668934074415175822563654457777120305324827266688311724823826509825273555696174204314522433725345203590022960065615588533900740388783766919867826223962049622626037705289061774215281953076505236011514120026733323186568961530110146295008464941145551162729549992164944543276102442935181074956333272173062722398313114380924970745822165359728104941400326743595759380798643920183232562107030335808790171479856003116799809463197147939523230073291145080606128376413543625986901044774812943790242002749978799208741534213744314392088139696202208456033475124926484457605602010710458393153880753414371209764102090096911765503563769667366759522209992357171547092342605019239803011856002561658734348755010675160277464823485170323138250491401874575359200999868998655001847529264047273793764267936614811476542624875811086209316414784312262984710462815244388303958133178882690378888816118391975428390189323521625246341554617043009578961070252838328812452925786423431634275411775104535162482016984454239759752932314009211948161726708031312904277039419268662627748205900135399070670922729304027904272524076973873504736083136016361372481372325767903173799238085554034160171209224446892902524337050123761412861860731203809422263663455672381257761277144280055652692835379488591001059745679819090259629867133016560585664296755378138091877473559845630543125748770667760051408436694278525031979785364951998394697427250356450143851226036693517662863793665137988610241091528219139781052544629703949972532350973600897576051998512402384999251780906107693821951295332211020727028489495608515844703147907072389901351606740141352913713267690140258431139795488714826082874142318303366826221116708588871128758182624344582221735932292713016732787933221096860945579932165697099503217780975356049767733753558606344549222138440876494814180420341297911118409110366804322808139698366526358169704357316469700266097126483804526716608901174560260563335925404754288380742049568543446800045292205746271781718328204401598686070469486853601645863039043449828590535120766635270569339286938579491640114964043109541506805171263014770502691165718235328483086290076121886935439100300266320157822630404570811352399285994333453037614892965379065526253719854664033269943089552038116899401309965551464519770137343384877740811302801655244170416081844293719294398354548217803815089183531492693467321175928648059566224418012954347720991032744255100599110679976085366036551250265836976929555137231747712979946835480416583088399103036942045874258523164870676133300209213978250129231679031977129718885201495608761928659956337672750992422569299705546820849892673559526582134661974035266745519521692409516378491431670794419634727412093658937939078968174123693818109949682225941758560291821232916978291376279460692844487796229345158760118578513450464785432168462327981696746946580106866283798203986422922007328178016873512095077992769070087431324589572230020336512879978226911722239336528661816450380833264491506860971538827356892099624260794874467231770100442256591505787394688086931256611608973678049307471785879379412338008342458363712841601858664136388192586533053516703045816256819337134694178035780236434671926558869242225531116041028762822881237744552896095954895183641232756311327276742895794475148893048298810058909055362672876117601968665117155031161286161476895062861166565429107975258664928342465801149036591759547639768934121644076492689736966316635110675064849597071298296478027528023936826699427014121293955056120113135076890222168663700108607389774447709717126407821204331152785116007694022445503190463491703747470838271337715011657204366987735170730997684618255633802431639225005006364906541767667365797238679709063369541850247555949962337150253946587499797271686845614910520725840017090121979224083540018003122170575924173635090224520121735623308643853701298238572506545373722321038269385141572069954372680449434429910235643692735501079602631422493211253544426823700064262993858651675992228608222393333215356385549375681931384303862287212926413417795536298635457962979925606056023318077356514252303082431071567286289151094426773131120116984691200776487138660961771768248882664351114997567246416492992989500649072979594892974651672462779990082618470146907115534614521713519405284755355659577488440355087855725976327490907824350433672953101863971201685085248519823105171003759815012148244386488004936613081306115000575070552321070390918314035927425782014801317284342557174785336487559079349597300499348381612808724170934621159598137732952909394823710154559230848804027901086677250823359534977352096569294770888400124873386479238245179163610568221938136810873160515653107844256290333414604480268634864277734420287804943109475953696580854706137486408120461266229653024830782633210737764888032657865606093768819378291911077547889456601468973768888946205720536194390997450029058191342081788189777244092751098365879060773123232601075431287915747577562541353295627418844002918558335173145279231881370272015251856861178735684179641295603523772131828548563819644948703843034529192900985272685166742510681933307290044376490927952656298668837887826751793612171340080662528939826007172412907392682404222266811783349379080255659200743613903030543120448250131107049795609893447331859406845419682607510296372653332915067833136345194333505661240395014199858418357352177705703751329257949874603983291782774311155117452414893588293396380845535964725178885145249037608798571236289154115694404416046014794888376199268348847433092797765909956724396167404174613407247650654349254250932120111229969229845131212949715019570268913161458239496904007222850197794959999018852651241081409341585714222597347342355874058441247284225810536160458579831847454842936889221835353160339922479539439159550299832322631753383756097415022031174036922400586637169205551192567813266663555511755251625349129757910985495135258236093415086032576795646165716421919158343497996841411847303287789512442639611161084108859468227712253441394875599258820129522645955104802403492959925020309997563061335937065296694634183846969446073940121083288910677993600904178894369463229259321714799793562473796864696776818590560778051195665837575227251274368173977024815269195926122034261022516882116561337806850621574211687760869452419617963586962032491122363007999341406906137733779670297448423690319243773611387098818071307596181033704118849004264802854032570112794897026128953453557716070445951804911984591709595045746335402911347345173143891437541955062055670510698787365897519209171793803486324001585218803756599214793496889234771812802498268644442847974323359714533952661038078972504865185247906610415435868112011718608269084315019822213922711750819649521384552443272009037137417458765275314308527727554420346818062076582532201374360072689272362120170751963408222423858185157839595797691625598732472475538115532802468892695368743678650962938300287159860582862037536855175415536499497141684970034357768355798992543613220054623712259527173230658092135105199398716845193216920701263039923520213021655064460378952871225076229498262542992016106450384757698662195244849951819847348192940501675722429404240294744867300074967604510074329437190731859967180886238007525161959477816425807512244170314670375117104405261885337666472056661627910410184601112699601200070539173548421939032739201174916183208496652224307744271190620398876651457772408503691532706956127833118500190544801958261468511446595842994596567126859491697493027338579975651833660868141842456607117017605032172217580280681730284121745857242143234429844654486957848198959846102298828506447993727209686668226289042850266662236418894898862879267937619628847999670468295191495457509616290649428338863768243329671213332049534028436326213240844508323636182769559985468017422771508253213864080263521820289572890188944759625908341034473794553763172319016649936680314675352333821682221133775210509646528295009705118030432794447087726732628551428145345826988975272622677638562363241011721041272091310865712377549527397252528057630007810971312538270389772620810400123389484502795227999887578664938831903688305229568375060201425925409203090080898403364601823209274507622278491651674507727061877671379541219140950414466078964411657552263801585017214001398805667328525062420806009104007445878297740811297775615171611573303635839032762648850935171651619622424171019525061914870695911010258126888678007075177378451658639853198128376269970102413466978271925696338595218178543280310074994812195195460671207160841151979361039827549231066874478293886564628522690180798976464466269035945326835357991541868535604577651891576478337758558641504221237594678302696721449814434492999158210463835579849753111638013764367883854088474008435491561865884296853265345568408450284691770833572750642922096023710887604903294878687321122046641079073385284870585740241205139615847306381113133417901720819934967317195945561103489138310535469803311225191662669072379646885731712363388471986177835149476884527938881371912234563178438621853720909177475263434177511972901021542817874787746927717328974390467840112815968921360459052548846734817839326300249412864983825560027493805151998569942645600756001201934102065444553887806755546535781135754183833138810293635112160026648741842527171152810728875785813447441985161266731247259491312096032057137272509144542916113701298200174345844285546365665745953293054180323727598403922838966199771885243577541112145208172937094384926953615637171601066420624012666127495626230854813730681263775858090435365356240041308258957505477675335837266085010983943860209796216089552438261375025818345080380633446234554989968041968594534432757718662067545160763222441359309898358658241823148575551596677997442249840291885694237407966397935535215072766039152753951707082460479131703669074333181084323996710097155879904975572772442730073319297594281655263424552034130538603641074862511545617330504729933147779809943217339501055353629993048194215599130299251806172232634792977966115694378273803666170808719441509090637028695985377734024701082286928909588423423222255066199174000613111967373217771221712920369311072679596770016932282871961527925457936548484718893794519276386353880737652348607088998208064819290137313206621005864483346670344677333620679226137448149698293374427825133541152803811015134402178181978466627891125930885277382471620367421421351198430990440638905687104062453905445080786854331350543975338199141887145877641971525917456632961259584289939700736507628359235257095694976867366975257175477334314782476056933715752889142714236901303401957901874506825519598232176230976183554253896208988741418405194109026601415106240647953187517912954990098183112826336407730611353710565380492701418580708355689693619575225053584071120163079400471275415069373836855354817432517994172423657917346760354367735007864020562306901057781055540938511628858683089639628598862791800119516804175990553521505528128258134402521230821333544591174273445404260836094439561413992570411437488533946937704334630095054779976348218597867408040783606541215103003028116015712282148915732530541409377060084315945945980425854727186898222217945238792332483026183927480891015397147985273765100019207351119141195709524112730472691525765606540817193981654371715539567010169007195859688364696002633501920096886050809064863262918881774809792865912690150291343573917937472568796855418840959772883142600386306343530617130302962208771404984532370768710493354663956379463645213049846566971036706073939332861382074200828417270397909988631111307574040799171748432457974127152088775210205811369133234378555712774460946937709426392288418042067101902095337228127730420776398242368044205596505816420537436405970391901268209224503185787102775148004495416396782007564428970202822566810813049141231618586484783289217526926473329599476216882646300582528379826869790360316867695184013794417641091687883009889855154772637653563968840232994580100850553103389838701609409758451052872882438498681881755259760294945627205284823413371945351152399774814368309276400465962456639743115376455453429211788903150504355899436394786008996213109947583098389783238208014933220366525061657214500295478429536239824311189467266644989222024068281791765493002385345075772942216920026741392850398126437027544280342840041383380568145308513813605024444146857037343435664973655432574244864184458312922676606091683456291160149498593404812856512349835999449129486037067277008305365088001798585932675333539073249552815951652607321087632113669673797442682460207481062292455783264216399635311452689524720137124066041137091851842851813259837075153375600017450201378083339863430897803560699359825738161980985249959477846016946866592938293317656129794906045494243983464224346436113649805837862471247320823284259251487244594430868911469918976623514845853596760533304716176326211160947763757131895796049338062600993228374732517884380345564274208638650299423108877651425446682332005761819157674438439414238321386596021800876157056686415318172170045973928996387525767613488771067421511891887767085293074459609334199750854997532273424364443104361799037099487130751869093848858498134380138092484378079551452598468880470569404543541120562264019606556023467334546492943348649465091334478230783680134185589345625583775534762203200799956964481849567840352337130083998648896064555136885319758130804162352296811823903424163131735863700049703815251282806798538920059530374853707587915009196266709910482149486354182043344654247386467789357319073377976856374508545310211125750938218745450713554675523033101837122854380475966073595178744634926073657112967506249421022804901015668496551319324642754843768540131868869640478170915048203025402812075802972071775087604036006826166224821906071793922557511628492144737496200598584614091785890573864396402387176968646785776488955116048973359695660055675045450790706119193990340513873189996318777326126790322204438416400144376551086561372405249066005298728449563266566651432616932489495354817280294406548113617354770693551914096759510904950774750713983821693856575551188789176987871378418958928031399719666716766504831898919963867956822592847081030850066184264361547580003359532552051390734390318708444969583679075780316762661349966815172738117990886002187872969928434650406289369899091655956649730354440912833108647399325559548340361943084942134433416391001602223178598977184357079220333609056787698774379807949205309589624430356557043211620829567757484822103171693436608499319607240416072161351516125269526853130913900335701103470305008458896145774186829970981072063761624537073020792501315283697051520153209350959656666110287484681817969340242000291740710316180557233421359321406714187512708549724019265291862398888501874015091295326297936678776337144218872549134748522195237297462759262559026830470684957764761407379186954300992015586237771268791999847498747203720752864139185330079448707021714013912269978249700061328708768872573435318525232308257822814001306140331388290948950645824259968846211126492086753547327973994920673885663727430364210215846669057284405976954952506560138724726374670101846331489222178956277013980960783373743652125167295966178108853494809379235336846782626144742072507804788154279215316944940831684659869314046975257452813721452204401073463052327603504346089026146322096834932658961790050478893939173601907502983493127175431553939134750867763078706124312101825891484201081702421220622117158312923666680393830349393308911277116258102936978094568586586418376431470219904029899238352433799725818203221010912330054837401467415262291563392845872029453806759903792269705776851380425306162251237345958035089099909487293848318185916902577284348070117745544969424319269942732555813243239790157684458843761246598937907102307379022216780459905402715071384302056258626734054960780474187076779334362030460219016951931476700015692846992727564836791574294483806869442983249868411926399204375571058007244522547686889378069356679680212605998017719393787919509436906004787557029080091223693824869947131488606395122367267359761583052929724514003984761855544031057467795111949180111530052689817948611231845045969460731657020256689255321330639147990740399699664610290224064886596365579261334177195334426495977900406016110226880689633819179336718954311611212788180840807043067098349805513377965372262726086478449577125921626614904811029333155552697174780549641714698623565337998395550350994768740674543832169248076008454024977033996341246782680091415061039708456463286181249344523572904048182510511460722822136228072865250266108202019155465945694354740816186520532097899186242272505886460463138906853633600967443797751934279656924156377019535972448023937176581909210179086666534629825143101962053372360769174669479405474244383177213507348234485523039693990662448808327480195738544534780388253184020890704712061171394977679914557886752833525786199983063903817796414349495429432035325508155957231686720277504792743864431632629653530292062000274757582272945068018093265027050392522979018222620175181024180325997702167319676765145947368889806173266094649454521478396896272143856419117361719328776995512317846633429179354659159871787673297141377576668485815418377269867944333598640757276852523421647490682788837126021947921025913776381039266264428650989570559598652962930468278110999269853884034115239320943699735231498211666427555355264241317041441229557199683705848197106413371918103443269136619088687723051955416198090573799185993670097735606205063638440984943344493204937879457136950928600281956193361893298187607688470225138312369815895066841344012892092269169076502787188302168336586182008392499646214650554035253009639535895871310975444862473649299343485783980267687771046466375128733621383839683390028403968475232080943064996224679246750461673732057618697844570034648315612297669008666175485106295637883627624889602438483477526561161843183390638261146950456805621069864713253671436459888402537829511935498079426429974430730603812320581620345477568693187646901948284283430798312077029198665051958149301767231593801264185376435683140329087472196971231023409450429529661149860761770052682534227471522379105214641597747667225412002794374935117788051561771065788411690623750719108441835674022413224789256220335424223217640192851095614037145132590231055184699273213489978856849606804920985553605941846158132308087110988424974910914474211855693018657875369839745829673222006380484309278731380045157491126403204238644616684159535932323227616279340273443380637434973622215289777656029054935109723681554472501755230645311806935605717815205722460368445896367091520539411412356019496136863245571088893773866787215279613497539871122037655727746425977435047413534184983387095329031090584434991103617006965443543366848877851588910477060210109121350728698787163622941056428262492267954176948433487473600191612830227076080835242426724223579649760662590235101430426704554114466365278393354144395607464766501020469550654848535922808534062568399962481716387318594524697672177419805089701921134595650869570297381271569585176397074681121490527929716314511636640512958160906409543794036891533924498385099871443943575189637808982613113090408648267008022105660279411243801077743324284622402055950920523064496563377408592826139174427336342577670048442623037694223584250973274816996652914073060600495260309156846245896421681157459934759275586101734042222221457129022345445202341173370509806282592904712547944090224509679543262357053572778851293974155746554636443341597014060374297268284152203188386381648265173886008499798079299544758402146190853562415337507023131129398783612557653927654966238831332139337868980802614980288497236588810442754558236382543845608902779319936562528287520532026107268319464189322287031929323633790155505501290552377046842573510893083349030064256344357333590088960573579990991714451627037285108475873068492345413672937656896882982691845256646777212062732133165038821032248846177224645874987014230764665323414213945022895897976481086093073446142662986100606496401773776876805299018157972615849722625714867714703899393194758741908812235468770103600874839861651230340652528179336415267590868244141841487305216770458355915804781035873394398709205011456361541094954887254205936038026149864167015896754051517823470665966657333665154082065975259147278779430584749440666458317995143140633054314212682364131409578407177000857285643450024905825848169280883108598566582982261485186705075384298955247487029521117609554663069121529863164358225557650544343421766102194986132735869252726116717200756843997899324886082731638897240893700286380778273387042247867856395098197439110617914885868331059555700000425510991799419429881673974359675820890900233352261625778155120165281242356800764851592961733203420937891984128820887920026760578525421404708624832862348440028399685273308524645881030277716440156126128501269477217302013277364171067923168180745386149912817194891469137630806668458117156847810155038454859879220949151314081098552202639815974692051409125526930910526453782714623932966496513056935289012990699362650116938303399062783376009011546349749979833240555330264902170447182804145325843804425354570353023072948441135777257459104945441036705616005344177242346616852774983433114682587193788378115209004572832964323808875078918040362545095280719273690854787359928715148342311017927800031575688368685303791827027705362655665818443908898761443266223864216856109090160035374436077010027325457956085436397226463573499144238912995291926268831146516024907155621892190342384998113638591591785317017204185726319814804348920886656789881278295974912142494684840875704808915845206216789001157557245694291284892564847772869512586318133930000333867125530721645081264105047740654918259675139031873517583868866536997152471516580479071504709009339818844174071045564481122926134712243554876402078637985404688122227667236234970393439301596100695115236694660719404486853034977256200980966961802311856813555110847052865009940389758536609487946783418870261850554525700044288759678182466581614824969839422719532209391499672841621658480097409259325013450814074113759349303307131342495402715129582050920304888878211072779973228789729297905035880998717960545681472372530341758179489807963710353876720342917331784640219544290302739437450750818247449140536631325870161577390133704454222680862547699534759428134651250587319366691091937946977593898275418148446567380104448091181975831474091462502271830963100644022859167741342124460454423548380496716887046024382440088159180560586662653726519530377714640475812312475551868230909561109893970061725051973547997403859049622824302183101169895227472373809048499383293755390526279226693385920642249455685150767719178922302434820276554848462254831568687238758021208709132552158923272906041694195692631251258094760580704978071871253898044468273446408222221133930874465890491328667781308531638744360056336821051945848997475904335694540808043643301775619479849525015664875935973353632978288107468188473398126158518699949642615179024867463425368937710691670761557379365077889116605740844411275303539517662074459650035680900031040358081718546614309724963272004070573432025267376371862456049320740941282254569063284645798111376273505470920193942847651555385894708941343498436670765533352427265236739665497204227983768173815937375957672985707633887032146395116260276137969699047762730202827972778769367472107298245228483396217713114618933411286115663287737934681803587459049473656923648334960931488452748948346753700280972323717038260247823021975745016307728904270256849138651237341113885515183930685563741773269947100302480952783212717857760167130824545840713899244099225524219354213033858894019717173219671888395543749934341037041748702007920773651099572186878809831950145417886622584126906056305028970728412539457622186188979158586127462549232760009870117367783188751767585282494802296493018292870000823896850440040403130657494900167828972674443226027285341056994690258293902197394310244101873210351930078559808152085933309681064794065542945880316292421846524856663674775888323416654110071710087422837719518089352162942488874832407655949886736301553778724765432780394389123874812010639281873481840143968765353271770596217268584407195115166496682504214355626204056096868398390225865443303904958612373693895167953205338372770183282691897749450131248140189314286235519740266984084077446280906769184193297091366674392962158321480340245902727021615038759165212146517056873796509325141032273649540387222831575784957957244915278317467894142629140286819713381876974570025755432234870182072742721938723690184964086251691731543418380564458220993965774911744836089651866570047772490541837375727633901232487948538175232143378977925256819184436219610654278433886839710934399231457219618269000847422213747865394795132071811793421994321709185624117393325694426017301441981434486538203008564796688639996311303730876256744821164654313833087796235934949485232021965120488519250464998999833564788236798174110116470933938441610116006994711308511157465920276091760558001013098966890456229240926851908295296942970163118897761698128994206080404440846877783356570286747811809929601744242538848690068433386328171832839061356102411957973649799097781505696745022886988340378156486569669193885503627655490675498775638164693656996404774350499872354115244518758330625437243350332238350505177978379200963285914982791242761175207915545631315713978542106492941119001241339980284435613101720174056457024696069405142938405832458503655740012597962133812691908920139037813234320330229753029863055309885293601661768102916300204937875796004773667028500145884484244629574803763714116827121598120994743865578132908910997813066244064509226323666306849190233934940301272866603287921637177247352422628831059708487695965872482069352557920244064428608413194066804767868051259059029946302504874470522646248047994058630712830230989504833139088725361340785758011766269593492067776737536204244954353582648040160363579402358911755191491378843254709702570411495670626437094306614774453709484499091311584845683303301573043234940598991880068345308227627231900354102879487859398592114629479516807840249345960878775483018398774504711522420685046292727506711152864342129459684188170280799502624700939504033266546219777953622304308584286427144445850468585561499373970914930894038297949141611096438474377059690041648401000095458853966002602142319116832157570796148116699087393543329241703850322277227931031226911353697334077374022030064905319186489506757753889816585643590698365794469922916854096625584811906465559871718330572180161904507425934200023122616232293758026207902734434628880701580744316563689295249467570640236106342717627140151153998546930811476956753045691201895143629385661263309921246497210580754209840584879516252669931800506136653569680025418661985983984999476419232374099879785350262565411701847020559947379658055063214312655769107419785409420468576745259940455517617524733554937288700706153979070855396699709613769796777687941768324694464630453161469031471368331615459598257750358090705235339199019140949485210303765702531776778567807825777664415619211438736459399196330608286426957510500448154181368053492295083534641450595540353135322726200439025789897326641977606475515953358036676013340986320476471640909618477677882203771723885056937276456541909867805127695266528157159449917928644518408491865018018500617159312759094220635489252974720107663724614071041019381250171440876899851676772588470509554706503973061954939122612593424933989700924342280851586632108709509721430632975013746975583429218624007935592918164667958121036732510826681056570583467116238931976106147296545540889280899086875550457311541111122227477547287112847183949345341810951071922349605724728184328304436894058376070317113579973294038857541107772628640008787626114838147515292794145154515825876257802618186385077725560830066098271569948141573489838661581140659123160619955308678394211234273326126190849363902274858338464511853382950255977625552415815145650678103695355198009556645774429099671757507332714764066868038817460462041178984316862815299791361804519285841214368770769091394604565603790823067820279798487516723616514754801307304924933568463457129353369110815564060353142094633295339191886135327371419918973634959246910141640374397887075606237103832290793129799335143611580663236401022787822603093952419758625458853905566889127821838589422521745558526876532858495787958918165259582621171006734734451457628815018305061730050543368132781795710900486393116736502622260541863881097504838954415963382009035891508911000722664381628973514503625119926581630319172226043426084777391259296565489188859905499013985803499318072971154039846926644866696740244622449645639048473243933169786750440227352869835075208043773505687883787308577122069097503195971214271826840903984052731531101481687602875560182389808891699507524507155485320119688727025814010361064274532920075147417154636814881925184360023154524922243450660086449921083338204915645154215949190346768839049075495686733886189713608300397149500160440192014141857045130298439690485607783320934742705846120448952436709863788951475599495838503359501627870030485419563125228563520807698635167046545309971924184899560809897300758191666452904477940763269016851446315600382473124968549433968004839019979708020447364939499683910962422520443196458958604180654250567329851233199489199914739518098183110991506374435803808593543034845308906254820185571485822278137426182810558705229952232970938623123443172900385718890756738409823061818610850034770146521018296715878523259822456667613452669669482076924415128592716594241065221412668161244177677698190520506877550129732462597108049006409019260603765237758167336086504206170065657508747572973775877280902941724533002702912920986930454687800805292088457973196489476232089644247162456024718808440013909803789565082393980806117965874211278420643501759781336950395130725953370170775113029922376413279164539437968998102936797802756678095828191646030444676693840047345978411033333004984288467769623860074324948869502762636687668972060356783299158692758829342084477707506536533291552513106520420555572617167303441065946165367496196804649261366504253077044278150866108356175978802308945046805932098818147420682847627938605847255816509221830066910136562804631425866842800913781425710090005183689529334800751681941231059984936324863392731591233393139861237903153679068918845376642135817354238332464283326887852352608112249770103565862975874810897033919441168183148918603285220693880898351910362292117181025520984771883568905999426705933042529780854463074241764324395529351835442971059158302290433505551569335973942261237354371190125065449966596150101201416869236192944125215512371775548644496217012022010528223367155902697846814601966202717041566451568386093830742290602379427320481089018649398097584411164241983754350924034912093575467561033423287579259752372036657899507686899113372027006584394924932032575499072063539169652687787652359748827992864850965128643401700108103581277720594733740307274637243611285112317012639666384938261739161798525902678540521618070682076658943414295187850592335490270164974445386154099535714408019726387934665306646854129158175977661287603244430590174844927402623232014739423861566991808316093836909443000347459059815186102230646741108173665235744706828054976613113134229133394198675533776514241838201294794282929156154423410012992597037101120589793282092349846983986506380967536110956692560849927112371484474198254400774122810521295805469422650427244627674383025822911654708444628834054364957467970171909318825242180016801196729697937163090858418440254920808799255461974194678703947576254599996015970316312492654574509722418619509175198331557634896136697740865553600459211581269564701586140900366214249624162031588286188852329068506748516359335499857280492957242773043945220572416759857429300715120788433991507183400851835006997992260374180725812737356309155212737283105990269080533428145501829166705123883072990846118957841350642258687500855774840625566509497672041642971096497994017914352725677894333299926997781172970941924777211563032323053855453421781323872887688524769637158651555942458575428931027470574099632250522837509510982851583724674314258179023263690077151010958304075191048440877468956874531280510321953755050631088868559210490241894517165259673665742824566595984905543338591132594671905411065193758083604399099621758328310305823060926914383623387979560568078152228363156433067998841078680649557969059619925503401297976101695189922307842587137695709508640096529978294979963167933019685107516425650007140953152966424435120364424087505267134520553830775928340499196769462567381604985243717754091842304653393056583239403842271272862517015597970361448889413487504254649066942856005122780489124326122699001712612068960269819835155859478136672836793480136655959608049991205403357697231797610796238537033749674129145691016770113861180460636692573824749091473287214892806842697839592212064697653504280845998378839767556349367706877154722168773248260053629802899303327432448224922623412695902935989909136496785598069458203429556662835702459449751110651681414494379750485842736141243551880048697004878492838435457707262994555426560183210686005747021894623054074681213431934009256538472036922547579519160907313816610632372179113792809556357148460409098686955285076714470854617149211401412525550228186367464957086268538293956432684411624640354632506344510323825691515798903782413169467839659410628297593057741045120975190660862933317553006657179181739824355344481737626847897637864590455165576180598957685548486955563993085323730375414941537847835979963550058985665330187355497274364832799435597365373534446215536861134195539050420937722650474791060909093418586706906835491001945075096050962949383779628059406822534106253646934265482458481353933419892745751181460127681783787464413500311675191725233655782459162276076804456220724216634867659582523791479755038925267561867815943367403978006628744301208578898803110982126998221211412602532297739349798850787332310506725222546000499891531656619724843934657678011553903490119198498526861544458584334215466505123305407186460383012361551053141127264253820416239253014798971401678769384975890800387154822281202585235455737863441885125996483211237473293483465033337050180544885762862787981036887367255903019740868095436532254144363384584568755885464663900541942660003197149061433808691936712945905429328721287179202948701482877374949964887804404104425766525701737228703315985124749358978301881576889244039122650266292460444703509751577057345357130247208590696160593084811274836129278458787385311122744741966572938017531158210428599271287770608543916213421931259485126723532885017293766920632849421266321979477252391658454986684377309998754534760039547963784672915096330722467825055069334950692994985396000293300714646471508271944602877551363328235900528420376374807157374179810854159941559081630448691000689395706820793091053736548290710162369289213084363892567627251797919294593461718875347337188271494207854085931908450842159569640678712390783291100571592399702217888208417270975328646930994239571426437212316847337227663205421262711719662741623210421062441099373907416841514769206759722097506379545439513491709685413875447725770600974397433746078940159183620266114465584811589010997532463271598960555363867571107374925779909445123352499344206243298495778470399168868690141312958412653472087874061154922880084701859984408820087379395933947975259083687096154197873186650577171640879333521798428665958919250413685989309848686363636061078636818248316704116574177434590244667545849026396634540767293746244967936395154192986540229478055794826336804275642163543634624833728255045902278453096369780246614483611559189980458188409531143987643339862217398084091065128065482953420197359489078087332683839067346058184728952746678015577167206925352191238347550667437939252641815738907038730473460990956270245807073484202830808337686788028546381825783171395197571856030080385292459897405227574349729896415056692613157544499515916132845170854289083365271285009989903572091543987578061834765862444145976466218529435295196663297060736060080475461961583312089164556838608289206243953674526383399901643102324253936610591703365785626403880348409746558242479551027566353085853389941076280402059161806446621526623602449767172611979293853437601282202454804459936229184700756957283184929743816336751452105793990883462562480182389776029891317531468927703190027553926135473076155284172012394080395502772850596649759879129069485559326035022760298290619982891347905584974432028120216224949499221660594838588344038619821827653460833676577512472606231024242094234697923137344712875149025831095405569937035861071523438792883239596748430519883103983880986645147005427733406294842797133660302034855297676481212601892829413689806761492229691201610317786134115791320701262919153871745759105300179211246954191403250947978692458270030797516167496676560913264531515386663776453969877785435920194825314111797035976872956836503979880018368679591292693265922463169777724365971656730516681000384723486162660745712406025510954019008545684946904554321324585382711748759610413432614403841342998835813276436657902610762115338145139791064492497649775795246678431918213218042374587112369638196238378516390719858742052525060021406117094283197057862080139606060587540091543878161527047875929147788569459409524955543320030187648330896040694287554180894756095885960148137709260845384878644133417359812505170885962089828286761098775194689306571461552703728317813919307186929002090926518830110220361499009812306672507756079273159371537463854907183218009373364438238160553294004528973686968301516145170822136392915384464616223483826548056759352968882555537700253077228819210294666757848390296077119438746710466111856951148359933344427298081271389672079239520814372646460757637608782878483441453337297290342259681468156559862927439256334432954856672604357250366953248638070225138266103631479979418738242949378028398198394203294512020235402929880118822346096297103540340750685462722852228918438688478071534021432109942340931686009087201402142373308100449727664822688014173024448145968373532022133963694548716984580935359635269236938576422915849579147517671573334606078628153001029911952872008564321367618453211288427895520138189519382046409781095000746685350098584175685341125179547099616352314518134280090977880431145207645783417202974262018257773225203685477444814751030253061145212401198144968453636513948880728602631065617719529894719550722074840962450049123589095805290707354000459928833533871610209098488552198284203381839066957564361499600394873655243824092915088017270119360140654005389339506657435707076039415741726835719170051160357770589953438099864490940053358627552259183081492964753439579233002045737364821221491267675997849504634962572879167844856549099804443129968214617447372268624700910071833813538726089766680541971482638025142734635495277650741718416959119680678484857418463232298763302720099405426299001508646683767575189623036879910619607884830855134259885392138049132622838963811341108035097496117223783744583737116059763954574712839040706819568418684859545228531701034004996096468623308263280499964329434789666060226214324336456785265442430902888239448609494497203828512136311053997137373939028829640518253560841685659025576182630099619954253053939816156469959242598325411070331814284702070577030339129572975536066429800188916260364348988727026154492663946492164597230141606933299612576045024138689273694015589820633830723409739914699188321911153892757080435899756621132755214639804023062090568783573507193123066177296785941439918395746653542756991944362193904786369260691105972325466538667363005968159449549301843143339971103308810160614471902399589857267837760769377193685056535100969649818254646501799037849867988980856046551079619963003424027940128050951877016570094808684796435294873024132088340078545363017981944363080045756937534838917647565516828844781457412095030912434371463121202833793691368765050734122817505064965748295697608114278018870316089217132296611247495565336875225356541882620581870488812772978128397493141744086210913360348099303342132876012824367419080810078798815647773659798987109857956170082987688964547109591222128127864651693732743831684425427280225635523434732816972671771380274421233409591159185023260565924268464772089751626442998362590751558801828876138789432712581682486427348492519892981230556570183485643634950430321597269285964678781653828136836898111431900840576190237239658848027092098895672648129355515404277032009205167143417417038918288071979564171527829798882058985424718949246205578087801059819446900052848233600951912288506498149711328936650707051953596380351015477449020463528011735223838886206242035422991603595906724615569377452780565274829441614932993391924249520265090417781704219989033993228520691988132982878183568439060078716252258768982888507728523725809604193680627677127350532345599776446488138042694792089760658213970963943510983773142185576424796846950490797615455238248295545173594305295374415332977538293135990268556786247303372709382136649738753199080904033687886845621290142041785308532375189241466316220063496274262854252582510383555735268631310365100900322806458775074969099112935678436768401761444288790097660987706572815927777833692291781281619945458410076195840995727975404130228072833965148910933821524488352583539922604056066352206947485761676707050916359252589156378931672663728725352533199428530571140322054840391405478627746144203639011687637873277404239748608733647917573451675757307994640539906367680907414259530045299948627320103807273524215557646432057275549853801801864917021868875104167342322556347972465248315420149561186381061813579564936133338456648927561180573099160602521981141517016668660747590935481264595651536406067384420386651927971931683658992294863007376869240729370782093492896072660475801672976660434315955262546724433490148426819350382660858225317268553835239569875602554008636674547267571165063694769274430969625090399966615801875496344487807622751177509103030070343579201723365128768916892374020132417211826928618832504398568257867211221482835545844217986558345705115546467582572772861310613812559762892110734639943314584273918100300870859822511935399669116128984536484540128056681598525093917409419839761448613245061604159691549959239614468893841270146847180566303050528997189407171221289724279476923022133453628994717582995504354231043472486896458137433955661900411094218562035523663701396413926983419776608385721468022214919674426527997264257964742505237537969361236854016146906719499657724276904399252155533562951037297831875251333452514295824907857640538114912969948669739107587701583151899316512208148992133968878675591189101524251274887535931465892206082666357523577368054529549828362741267486898121322587372537827387022247397472609675633412317665619402574110515000008664668973130924052966878004002351589462061360447607782533353452240281102258100925165955747021052231538055642508151468754489204493180203847851893982221294590529261339000889987180725265842120737168963544054418701728854296000086570710415816208527560814351853506143312191065310135666777601135312273130744673936140717104285016544065909246919384008224890401484129093810211952509059436759649565782736713525746750141274174458768141010382385312047766081937873809336272919595031260221597686361795831423078259402009627908508714630821985445024990975184313541443043421068511006132549107788595502240299825673335482616495253623573606653812622069671846962578124808661358748789004245327657688956178310520904864380595032732081007353335498381950682999457691598948927822357092241653375172030657126408655780516973175383311032216792795255169377299700963997624278335454093825753121715036308683320677611070509444617884672453773850621170122909448791122109205369610273181988248359671818564628670014156974626617869794507051325608523766110753999424003679272035471986163789119313778230551420636058198271181802917326073467158569524375484613252980427473390984660787005740968894036800156204004365943391103014907022566495303541298525754249594550715390200995587956970997606530742864901948000964893456008348657404341301882932004375455225496648373854928730030172252282648217115300767046635666505400581130793695663471141311162997061797898105963851748138515121234492181713774846618467196594602895310744591218612356606074721068851443205010638828201984643373802082683245045467700256304093756404255910663089264207961007201854307897137429559145231900183191318447705245096183303556469182896049816464008993718945573041602751562822394785488250586958136860701293458764760508643118387621360570336162525898547618938165512602437408230841993398580083539988606458054615106564675385584711179136425861580083370251375304816583513237984360355030209577531070704113850740974542096089598618423681949280409947769410688433095723990061612224456648883577719458805938621673418286697735902718084864335845753381290487257616390553675047379507987185449142731240032234135070456376623631654110068130759935062223324380928633751003944291693592789360311688420261744320126682571747734729215519100206110520248647898765998499885641777447222973656309857559995089001066223193425738289421506538359107599818480681497057388904603232811208069858820626043235366283439070133760847628276325304699795760282904629547338044902490356778757719746651434996685438468780022184976959144999053423247044897415720314396800220793499054762972456253323699233159934267473774292103616637098777046372597388661223632337213133087189044295791676905978049166194673164308569865477192604386448505311463741504625173218589619188110968732985242526691770025351811015410648401488308916942440985376107409115900161023298429489907115769008355700804418968309490596218418129694376739199149221310446121579209330511146163999788092149839818936614712709846699132394542887301139645252110000327604180782525365235762547804892774582484483601780933673392103600842139482595462003588746330149435136139797754050341159217144951781051122446582102838614312489548561072027371150642560235776230394518090605124128544185425635936397272449789276668802680582975616414679711331529501802649420832880348362209075523791922878722378616417448092628774741756524389725954385498886791221975859382045573459313901895311436005337969368786260634001873159525052247408801898674364123260026929522665197965625029336342531989290613948145393329588823287953497947067338566351163401735038128925264789078151869386821413202816672673887180102843629611153324565872112367328547116744972073533513141498110906138173447020641625244334283869035863455550552867733481519056618204769835112264156875146257802547266038143728906985126421620564532424557604414696202032254092320191063662731693009055659667754736987343683089051200918091131204461192981127363230513649255988979415065085613395752546323153749192280131225188075043157129202684076294442504810749390691122289856708798844187639557780393477238177339727593673112944277477388438948245288312570846434580262330802770597564838956284379656906055928208460484461935524600166679164889762631005436144587225390703891459741363602318285365677803033621069809172304280808215101903095803035758613494708515304407072620704895239612002921467188326260160668866945549098500046165777371172179480149654333260836644757740853057601279408964616272016301023158714198439994835817503934057715706747594756405884945006559844032791533353672258852853860217122166812680887932640679388075044392129628845045821284198161177135806665331054080546869411219308672829548091256015153341107608623433816673856967212701376272604019855741458137190670154624238813185241917024360232296850248503414470313984868940745930076483729399387090264824448715435938702723545669147504692102419106436043579147520907782283622781458680026242409914689698639760546708424611770217596464044886843523197203561322290472058873019861205686859910212610270175907631819271125418788162812173937586334477472207634844326758543796199041522306718832298320399964816818378232412824828029626870343947988137429761464531571029216691990688654230416747585275929837032784958262308814877582910498463418690418198551485915742893174531139923725119763556100805919612239225017761270634636176741971382383762434095520314064661692284686293359792479203994075897283009245169357503504964816730586095693912013665679844894832731633240230825918933122238442436124988091080643260661114246225149095815036281627488823287597997531247670555678944285171685212627197939853759885347718754685381739844560350010556946598932254762521256289163640168005214857526373146191218834650270906343233317515930771451021798088397067648845503067965269251849553479245626772022916840593509086354619116133295642227861797044947236713735090647694780347265520526871736984964139604564596993572601769839141640516943370116892812216322070641779240091809171406365634575743779158672100971403482798178625003652270300875942971311371251969980009767657587997228644399725881829260350165938870256868104922714276754093770165786044289095661507244801513546639757005611464650738860771622289298335690271366531941266231430666292111273736949607885425745723612531194464244238767385045227588399923740644210466568046514421165819494297710559617521295423203456391787811706172472262925633749815673475427206823005316275364255537410260493213115519335031109987497220140034915315905878447542375832496500497365050734009946233191861132045590667686401939947522347627436197387711089836563171891399035830428754442762117883027969912693959048386758525260066036660287376340599977929667818998962312914452798457581803575261207051735209676598804264405787849672531557588863399581984364934163525618305087841431622182096581830632608865826953699821483335799647598503107446012776471277860478491413393651778839323454402654330766281700244189571835458303024164687536388252539941672765881170019037429045060325129543934424286883455116182806309664670257163911076980653297006808138650111176857571727165513516683027897354624005231014419119216676492298297697738932899811315117427500375308928224399402454267812829189660469428811199994096943344631268675147945891095411517333648427012173476472727856091802182008080866937283227595363283452660226062401817988116104623024771626767220428503557342663039763370404632363509260636679974983975322797403793196207753763188633247050593253257854140183967593300995179021158370746521672532829275340412915858081064408044260622861995247203179121758470968250903575314434756885697328409305721266326382532477337582005791138295570449803197245781583712686744685710534323431635717522033923345024961879793928719589585533165022866688821561503768308366824287829992184529045964535534244232282284465027723275174893715072922766992251493936955647863144237019536286251645417229573140212048685415113474238713609792609364221870295796755171416525031618202675674247834679356606550531849017334662077616306239862844145423243377879843385616958479548012119518819496685063163208568999678987988309906482261836128645574368684530231831217079054542072935620320588244708961786965695080966314377447110250003929908238137944418298895400586091983214710559262492887982506120339744539082367130843049688655705348624371602126273013128037404865236921992811253938503518865227556904660815946063031755500933426321210547993231918997748811526254308474329432859009679205568912668193945601032079427846904361502656213911212535291030040556649327702587112028288406093412591571982756909316651465717540176376876109888295274765316120989548228017067282860072486939755127060372120735723761388253228029164915945471798397688945505542925403338022768706063320320027388419755273214275685961310669483817841861954096055579024089084471013389151058191863915506446717852807346274926027939246860162978122260940675803458558777391769318791954897256105020382821041037477635703090794936799372058372803852499306678405793286882372719327086895442154030700122505300238032696319584218396351921251061395874866696589377312781000302893037561797228932429173586815340122426812318455753024857149634534556881628399296393082970286672145448720708757671740282092859777475916682276182758428415853766875344675582912692195209268627125183994086273583320563936748433693154641429605546073863016636628607863889288060224060878624320441752400407829143280397134009462419004946618151887923211526984023850928759104990592583239782708652908803234582807812830007261058830516940524453849578843860843062863446280599647587670223429936789110540508341146531663812107664251536008751095461090150177279519949642688876534583616878032190674452776718923118797372187253589887076751940381524633785610913145392334072568044967350751974302769270785819589979467389358280322101429710427671445747611874109811192234717949888328341678892562092690881172654550133527140799195247211597952854508337989083086159938929193387306220029799385899387592001381714822599593370388727359836153930736421007524952196443907766438805251504251150373824241518550944003345635502042011037466360116365448073657014571734973048781852035207048114047422481704663020589169029604948082375260743515995261315445756987780577734054140319522093359213351047007719325876423571400173667800276348042936313013646335011317284124707616358851630978182213132156280376520641677189331352517527309645911305618509108746501910940190958135529377076841700852327747425353545487553047888000842054535282190526307656995563666496423540326054247162794154152523023438543432419673212185911435651079891177951939421245095439785727530457720700950760940052880435960379415419915466313656150257415466691029399838507268968344582080757855731664561706931875988934188854648616269361768491278101566465487020713409019859010855513061911079199283625775501278636853010982178305588969734022979175188301445422746716984191274882347620226598474667734595196710077449927215082888695228164442951149175071119477531207263495757846216782704586348448177482718215601554160072227487153605398269033629122456971859524558538305473813313457346165558208746758105291234640448546883489785132366185583839184832549653260399963588415833406090084885830536069329189496094029249558166257567806685760843735623745806588457066444871341199503777427109249688621433350895856341472490629386417277740500941552017975301876972770804552499904162444128941659983057194316732709276254542893218039435415484809732144653778294319937425221612356395257532330747196937422674885598571004571546126111565479646742126174418109963038451165558117056583898205591942283594110142437930305068174352187193944990930380144307364139875910728516399220954431576520923151052600641883862219681995281139461150599920919671008054529939262100208408480863303466206260235828887849644539261226205273911429997071509421337942640527425549999240044344329946929283668441860767972041849465585368627900126864940745030419030467855657696963696644488456309283182156394578502067329263642514207433238986037733200098395651031335113553072669600222001973490461078467439556987809327846493546162424139402247257902034475724734076763488243991923104914425793819284646669371310250135591781388765170060681652952836990284592901500009912696027193836727093538815481256080750233039897433354943448629164656481678813347220055325017325559168002351160140480889570611699058226541575109752887275290764436658070609019935778208227499696505678102889289429300556447581997283003548644663862816180460416823512652991838892391827640624975823177217247929978068047785056894901870158604282970624762096670256371018384680587915211352264244779240407954255793376747081650755515183757831192296633080831268770179581411139060096587001031796915281509529941603710791438536693859504522398823437187002955095923750520575140256977834108868393861262552855457292005429098727194598695239975369797605283150680973587914732424881494323517541701049218421989584723445149503388462921491128922409471954418959887197341956239828255061383374426891669227067477438114107913940902288897508930910066431078162349769274771848625873248014801862074306859896985859570229675316829797307326968384492712966027415621166336599172369381723314240869272752832013620685661109806487938269677861753836491716853326679720234912305168182847066777767392124262031465477066581162627746458105353337653742131208177473857213807344280050727453762826238391676809373079551682434325630473528649690927274496242493206332078464663148870093818221745203608626853187611224745905674757157604483544600362309852372927230987440331133715286542026748916320584505263071103763840608505845460893158322711960370459525550247765984918944795745862598366974864755943660487800750789654699353033839889343881682564536353018455502802412446359218305595770693370627529264032970078120421703098821214132667927536237445570039237743309450177670543661606651271290253479426452245294683626217148427949618766054894832616480224513283094386517640733787886578553820560847861930223291224095916553296914959151673059671702501770406671728931302961831038485667912421844036454557284489151527481930591870885843478377006108262080121854243486584035683464098062278691559489870071105361997656312567523731337496947012417626665957987878884843802474804029184838233952595351180374611857607226666522416615502999997115313040914334131375690550189272641750536913458675836258639563724614813201543367736744314211878622308854826445946197044420473354283398872394055646713746454320493977632783036577641358957294493094614137388498372738902266308105208660359445717563608096062698518660325689252838247069717940759625589997626847429050637684516809772152110493220806187157810503445382263609171654167685698214308172278297731670582809052735486571297630133529634342495151478239485642379620072940452177215566821642172249297239676735658308351949852570733004364297738428765312282705896355242113249670277665938453548078338644558826429059575663268994018653874553838537099603617804918049408741950052904792425429007213899315979309717517800990865479735832560658911851309892708959384648327365509449298423343053708654951129732966033798843331142800678449955674429456368480387611709138271246516510930954225514395918059052440048234286294429035207523785221625542135369290382539259516929786578982446479077462594684901460075657171608050592893723723475939371024465598828614744601709693394767165469012892385790558972493530943754066801853974456446753873946849679259362496401282043735688337977819347656726442442296004261726893564137266236358323026513783042133837618922451237779981182851728531059950548837770275900956821787787324226496417212289648527432239042786266440444474418474832881852073228531685721103373498230461927365943527806428785945729879804685826130057923078786925722817583232527230825615441977653180609355498642131559817565024633435464985068800818975965968170930898564321339225345380490494541605226935982492356199700971712218958155793021900439753985758387662815420058158498504750211269832778836305753382289965841983175215314225727936095619980430291681743989518467371059003302730222113034661242472635788159011998658447813494913728307000793938391365334529836016713916195217175431961647838926464375498770294411905860077523680604723661947799576945997972500375010852583269400272978989625331151874507773368751682073190430493826053548760522253705768117055131984343958732673957619105560496233407788654281310913643188907774943583555785069923074433170092823838405890443391020339408318705364958133022887942263921931294671991924153099985558696671264573252677501336829778476205578301601531635345783002156463593646232887943446363344618494407616188910756082818419036744401795809221405959482141902641636229405548900108943377207196585071412186906795495959341911119570858525686846620038632882063445957695560235414971381014583779547675358868718498714848909498028886234609052984366861624770445487614418245615613744659006073523432271631402167281791345275706364820881523866141244610226570624986114429813963254638848923701655163119785641688585312367519062909235969158832088755415911299165534472260199625007288000646264185904782973111600427145628473359335149479855305440857614589535565111226181824142307311826171302006813585768927421388049742433286731158437760947345496979326415786038309579428746953985330718457276736715769227017105137369744569357748483468200821462050782815565468353263265376706929908444704122334605136394450051106350903845706559136881898343673908609375067603220082557256145099772246021768987716722943156712413885289240641170302690239944923973662350014014011767021029016165893737941220077377896942511672555349225811216640849098189601064330215566357309330268723912446692343768357687548874752860565281916955302342174586675355873775836783581038091358498554200874675865715220241026825206974878701759288795765029964811137428835567673133667569155060583900069816146423833998511507768908070422036217180682306476847516974509685871277271719505240458536739966777016482229694709266261552714858231241842457990493158993019485820651462017079610942559287547274272643145432928386113973953553520139183291182980111892797684301644490253134251013802226497827288256208016816960739923712734890254665153106357704821760579138939758124785251458895326809883273978280464635285821078760330008833738356221482061715262937006974961706272055196527159960709076419047328117836794976372385791095879818384153219927994872333144396754734874122848918276908014270683101218577804604870417444063206141607921485852234292382401274506111069927506361407605457530435486488652474436625108205471407870799507909122642200568745809794306906152159111809125963137443588613810953321464820688592554910828066931555173767113302291184496592940991665314850445623079806589012513999958493186817876721930292729251339957143259410539263700182248082948462051799589049970624357951133036322592902064714689733154490139372191679576400800627626526138553381079369158309893892330462968802498387299026966832859183211003404400184765503557770960923378239578150132760195720544716397127796728800706187704861975669552678637050056565492937157873272791457438239228933053246328798402765559037371522806040758640119645787664566461213270040258746693547269541791591649387223931884044130020975720468431521074148493543296355344063504903838727317355909906659627081921201799434064790283880770203905107154601466999548839658448969460820142362021149328932625916371184276096446726952469313330714222045378273210099428590535760125647012362271620402858331235834237827038051603486603510013679471929792517206624320230326194693638817296194228883545636247534947077368245378086904058237393665161724137081509170650085518546106179381962358625598231937344516886606793828003715482803294044081678892323709992803630152313614327081179507542479577994740694968969257163428577378888115061996841264529490139003779601827368056115366183778767866695792133164788574785456663737483227083809017607708454846622098597885097618397881045837057565517477167165049227843881772093729084393334088177950402610509210381351821163474375840368081022737887959021573737793935111378694019582628923790874749761599057721717746501705092310104422322203943683655285265414111761605426442503677259247321451714836036345456636285896275917573368424556093838973658763599474895963736176728786086322075307916522558253877063781546873978964317352054488228637302144386239546413644838406197277441527305782448272915083687232057336331080026822397089939514350890171585250856187939612954882733609873902995707176389499613071138833644125099892425359461149870468404677117338333316642522540812861039728453351997189904795840414698018902084839738262490599040262990946350483081455451460329787209966353455526214988615532168950494728411967565956305637513538546014049915768920401164877124433104948793814180778003909030576231382932717779189037197738221676356685111715842372488363714679249380839602259142263761854852131685186157146537159148900191302537414207057946352016783137058393571539646668356728456250236392059753062758081246979831002175316597008581690186965651066207525555675000805603326625980070333984760819856016595397339248338913846173254467119921815210246758251030277995970457707487492897140187576462947813010025124924057408585910599710823916998784380614848400689954715681510057050354541992970413653800992640307400993099027919880424532354175613067092681086775816240315627894270003831522616707371207332764353841516766230199465529533645289904707984897823574518092346152447687179382525067049508905644409844591242983150837442507572869164859280440586529591654655883464425066783307082500725653912275719600579144255197391231496968057195666339132857917372344508030084466082151526785384459100298228774988360468884011734352130811731289681779084840956297792359722477816922525406936708020198103062087083085706770535658947847813120317129029516437374580260513628212415938415674973038475019798364777527185674103542745370264279994940266362159097587538773342742730317677272267885116513786956295599345339140470848438222271671508609315819368054459941848744748718423100744694983026697804475556767163252192373098118049736841621490853704008807081321048049928204594168883392216196668613348924880131526738964894935306409787582395232065321929808017369018317498079440300794184021123819467800713496323604284284136094895878142018998730164514690256810283678962437924391438786944201549655355670668989318249798533146007760636608730321263002101523289863600392948863697112301145163438478758050667857488114600807970259226538348818543048720279218103994223610851141256226205087637738274840659984158206095662008925899271264973580823645084577241742024219753998344198057927647739961395148386614068452511827957610194119103448851781364223938861330635447593105138240819552077963104393607455191928456167534406902684483126998282111898778979491792769091103329946827380053488025748220072538551179078925477882631410568825364888746494873059739484101129022179646899428546292076565613360224235196878141286471904829659724967150865303071908898496141626139258193846706208714347739503995456997355461155786788116520570620884042454104807808176029333081993540967036566831574646526316591705404589635939932656896395164525885693839571738462136584500617902984807788300434686155880002600933030752329509120306919153095395530532463085321244955152517216375386332801596937230176468740673226323988193152944895868124737468692649375062231241910071342111668619894400563376605117798855362702114270403988598253315120832700213935929923780414099962221925228321621828400178967623068923528375455456928976789936634041709819966949833072889729685991792536862548226841848783118681769738959804340499852317193153672904384087930460971293069185374519672955165267153899600770930745775141487413505331010765549289654783473199495753200873740532924244848045887177056275838773710992798494461358507652978824819716680691910458027124318394577019733226765120083181475528360481334661982162359090012873209337268191428471560301037578428749363080572102126868434885311489101035396114463455757169505523837052440471691808155441729963843592972238350970885052679247475773215920378624507840296835683365099199911679830321323071531349583002942866419929076060995867965955495786066283877770261344411338802206492900876046532064129359827109349450105272283664312354216055260660198872500772528228604246436265488151126156887332682901763901813343957192580842806997574143160379312711928080620505152695603410885564579888298397295054581047311579403723175822414078285512249557197919658536226202004817974556362517772849683822943967476655192918835424674850270467123520449370234252711307414019465468802686735295292047136437692601039998552260381020269002671877002811688794083494925371073040103130938750808247457707414609244591787537154082672310287001480036473532068832382601691650001139765885120752696601714997819405405451847591357331596618826227129735804460023426010535101904194673340144878464960089440131034607924789375182232372969899293167300716667148683449851375974882273736469304230725792144168156658510466996152263124244387638638003673482194136964201299155641044424010633561916091068012906764988946216085723206079624866371920474815245364852431281375911431037194133418601131199669652738697496426300397137428914219798786343498495979897203182092498112697235540359485317015291622961340464336418177228267419562047157214567749391830162161260251922814859447783617982694561276251701280623138152371649869672402434551104544320333155034057732815429923794996909262161479689009831221529756632373161291642366915135400710312793505322437482861990894052651834795424912691739201483498064758975218293500167734122993574942658862095565445880059725689767686665349006971767089549886249774239442492749121951336606299099935532426053144334687080039737254184382736671556369425400856869398338549076596094097833059837421193405210117696675314504482112808508600224829068236692075173208023112807523128103797417070735523875240802453536851247732677133323395929766496274684896063812038811207854104941839392435177353485060614841369594029423398465565169255650931098233644313169556222472653852671684082991742814052634419835137516378344461351004690741735074721697239777735950212321761310596338618308125879284100540616699948255133126859263361225743318409072235240482847317129637472170393501416326874934293798531132916856498561615472553138962563324851809894113593406721238786698127848757808447882401246886598072148273238386116686231018467647957911875248169488308457943336113264797856062324782687823774674866072953261615968313633869027740686255274736893317665489780439748955259367556945017382832705788088452173761044427558963491793015462015265764699192526732124057585919558319774882165490078825236582322691175127611577378417205767281046561872854107859626695649302060226392008158035828358043431155818219104771931706311628602150881950994461135536674742255148985753869380348698241812198125439801480368570516290667013897864432304535520190019407622669573826550138073645289886282539298973009889155822064087883145157914872578480708837707648306449223917196780015813998979314509649323551051900496182719268283393734109661502223587133731655421623084489181128653141281758649394072217899955769326587524229699253583021851628746815496377828848059548845686213230760851065485868459336393372431463072537945732749088582700089475273662742375910685204159081111747294511340611199966012552926398277725965963271211286298069541610676917392443713513202321944321488047453084486893247123607407760795601203057644964626274281587563963545623409593708271166121237265286274990212334004084119188703048297469721860430327567495144768058002114283422844607667145991028147328735244921258894008029641838586817199782205402102992052018017311505775819271462225561555515743571459936347150751022937215994112716607977094643772908459209456268253777895944894687907153613056813059280204292623913985422034571511050760371569649001772252285237540146003693429613834147099616147245863807164809236193200156238251188223301955991428892935748678232740079078634052536346767761558864426935016128501742482901327353265646241972855280234848842427351536082758328429156466618070315265759601370960496417798161726312754837624115330511333463616371713484474341419649733726513921643339514177054599414275328993742991406945040175762851088471270861375932055063916372589393028633555763461332483371736659295821446835842725509728453370951794535224014999079030333058486832953108902192164971580851254135695296191904776973154140788384829452118170367195091976595675157492227395741066881908534321125913968949926593682829199755356775528732244634998539814800324836051559528057870630769485084176847557310388623488323496896201413329860025098395587871998518324111217362886661946813155038409752777584585927918179565029639385599694760769001170515285575844710229639718140583470563298462856604158679262746426159546523153965944389242637499511394933616713593452212956868408771434114150824206584618245073073755571676162618841729260234713501407746511453406250411916254790175941049139300247374217062988705986996099410808339273707288503871531351575671025998187275248135190321938824171441746936269328843533339750620377647653345182296290774297487591685536819184168630094334803196570595398732534091424024896530235295730536701249885434576451545788720419360461368808054193893662834890708051377187992145848619964124987708896639253859000958582564278007016031787683065588362317957394872772823173730317791254907648559393483585338136385044048601706932579443426663146255448919766359042016801109229759218883785738610379894277043268494295550198791589531309208719403177023257731482772667199681427508752525212984794641250713762590163411918871025867318431063852859308532765457302037009929788507298435108393520249946665122601713168757742951839937553461062437334744222459542463406616300071378196432759290626382270225159068750578207923766631468404981388159111627383115013573754838320900275642855412320570189566006061561381561463339843149733355338147550943433213934182696194535264065240518489980396349252538011556095832819641159983461176113303835670703272365574555318519582972178002391224534383516348073262209381724754657352824048514864223142395311180387557283399626273238607081386171676159253176279251710444824143130811055631397253960221794457681922958430122811679389483706531110689772227333142435677934814810938847288624197664769741080544373076138635985214957131203895579739595944240907255719677008833557370904106631892122741777223577843154389289336460995317865704096600226244891475427849830928906782970669226836244573000362042666111480617828704497103392679861112352794858795918427714839028148755035825590554355796313080291228426973936527797077995917845012661215520635666862630619436788296776175509474415433082257910630615075890295632326664023575418321981457866207096053966358040292546099471154112980705594772046280303488489870016428026985596976668066140252622297847648103791204733740390563123307473492200385778908789819655279202282464282356813663279738963293905014028906902377239748968245968483892041268353908202411501741519707202564356234884301801967002972842416196153610661642315743807318874139646298344749755532914079410052501461463157494334723276709622673220996096857214993079234512149115286482254278536551004322553265114401242421553485522255653743550499265146302395538368115512713526129458256524310815454114989088703338390560488820225643295407674511214508663811044022761640728408786956162600551053974360143754337559165121806626139713448575642272468180579288045122496280955675648950699295764218051273535722356871484651353543496511012084667305263104848483451410045175804725308362761725410175511945931798147232145613868816425850431543572613246668695262259881122002721448795247388253140547140624300122067164843056324128243166767420022123309957551947604793970070284766805573800523250326925778568408556481410889370463185906021275100394980917300060469996589374534041320974314654413068564688590435042587931454713357062287639280125702354512523690522033118349224478509738483427918613243877900396019864561821852177371634709734293008050453040441313983604793075370755943991078189228944795186020358571443415734142992792407161000446534675362095927749216138999411555284392647115271013366485347939327123391160698530107515194514648246918842300211900123062642288704125249375111136716323541071734190692503205804475794850153342402360554081045901314879985814715905639837151892218382541777253610850475701203264030848799431139597526780345229517476236816253138644320345943777820614605095146132452175824090534434702958379122720078991875356597183505554130565654639656847254221382136716264587794277615189030059855641718687766961776779647216760755596960081430197327594733561204810787478308508933008987039497235750232142898844654663163583350522488814761535624519526700655299671161344228640782556213832220673659867754805810105334813284081260174013975435907010998841523892272444976712392024449559940982441166445461767698327732525303662194353161165329679576415014370547015039598075367622355370385353105868603072053853263833111186702374087630882091195060127367432574724929169281896644357187150946315601872049355591568660401695909715421751449604322942245329176506365021985822826792764503980658687964623518858702474949952277367791270980275057617437161879988004210305620255522498505595343115960325298183310482846988760992510418175638254554747807531277220420025607079423125073682510335890793718390422205478533548576272587219395697786823011577218897088952893557276069580969731802655346612771903458735496884029827790297714645565699367629600501661384187756195782952896054133653373650027549221434534973555082582672326511941320021905034622171355042103373354127142906738296226614491272658051663814381765977993997962855686511174671279736568375132394266881087273098743248498710099937928831916889117217908293033645541383311943657660807369256311781546045949254449137274411397223446293057912677436586471817152084216864662161168692121507144522403153265751489435273684396097453193705320206313300380771665316201136097346662550073366048344952552447817633744198801418177344893965803369946015105617458815416807403902311469554671140002859779472428141199797185113315719205511570754803381040911768688437048258223476280139851504174913382547322962898806361747698442273303728580877788626831000043611309902731283054017978732033809912528667653530091539974493296580178862045886585987652841247507229289162062728786572181980910915753107934025965151138267337843629058636017263192069941300212898624598244558808301521075075742209894038842217167807110644105599362499207008769914056360172693140896141408895653137213198598211067736521597708851081831961708873841490183607547415698575908860366218659607836770185701058358541696876965814309163577203651673990494146359720012511292295481841498826454916701708694355878709509120645770587066695177572017085078076683725460427227831667653212479582222672769100335055189913215750754058342141578373080145634495577321837818287211071129362749499529025302357139013173617677731247492469742486417136676067653273977742806001838552369189147833869606080124736156780194042487669597084572636186714297651325673561708663213012709425611935910688123589786205966364614666284432325498691056539852864956740587411573133906165577511164961842819287173760171916355506516722144861866613086670958670496946199923640015430842031471132774255149291576427241036680893415536673069641020262024093441946813157052268337308594849133320444735185470492070555078410999687300768123405659747909068157659578430130197197192665127466363947998741663228537472917927515628343847637432419417651826206033142186555817007706768303633155987093110309964229296068162913999528832204137457149197615982794796777502936943176555045285586862900386366134607969681376478132018780039119369854025071647344426758514688887084960550993843094975994714621389005911609438296358549174400739701748088844610159657628258028766263922295016186475226727271729082797707862967219011987452776883847584722508851154463183590039354644251800875125651077391040636031332555160741329917621802709283721040606563475369201920951120690427126627803468411261484944709337904286191378182809263669802885114233503721931027088209854486057011863358887535043689053522961135801886472248249712019047760526428059174031100995515944775869285499431188384154034682518326623319551760836565255623526048850932376071163624233002952388873918181670914245521797437069066344021162760032913295004603974172777784657427813363519151591576384886413948020958081178917862035184322087712867551688921539698788665334621064170656218133748446165541695592027717886518482596819496106489163589341483925267807169256690550326328886134204967231428958109226465780956646240440016954534199869801721495762117257093586831510527499550307124229836503941754450857360301548233793116089331579308970189541263198155375538727273660814514192424453831950754949260311008868235359787482236443301427832105024513127468269709083642190904513995405462736071399612793438157820393731837411849814217928841771531293741058498688551368149629925504647406318637025086364493799495220412736213707099869134794833044273979624375316125240062180565392927820695455405175248585402417749617530337278698890599551955524657295381305923665630228252815449608290991890244317052094967307362218145591602437534765521931830739965355308402242790517149020843498230325730081745425661343549251235758654421031215402788713758450179289358322867304968192111322891864947283996333874938490447993833025311372307135883460292550461133194389806904130493277103814720119959602518387347468332636076410108928969134895865371895168469706823374124084606051747991445812981141559484637796764384540511190136574719941298171459555413881247474018416006797321886784854588730619949914620822524160752100922047019878837571614231914386336957696083256307153532356536305767422550119349311344270887108865829684822862152559086574856258892158153657061238563505737958018261460938242043693239592237369882187224311588510337900178435347182781798446478829809335650582415969838649781383211872594845862657619575649324638576682112653031225074013721780890353511674778378072219272631768307396710999890736309423449794761642269781226303859286714711816437619389430596675612599357537288096632294574149928349807772596916752176186839895062082715670685239573225922643104027752250844846711289384877013933553326246135367835966767513162277796836101801769571325685619233349106207842029162879730475671368083913771949538184476852571323478131941237060616937475353707025203049521212018343614774667384422840987637147134015635772836421535507271630271052155753011796049458624002266705163809222647771517381218194443214587954652497838826640581292764213379901272507485366090573146839665250233466560575244120542558201338190576024236152911312141704970282115449286371049122843920908455051345027952859583170083248357513872012826520129421182587194318509685422246389863827191362701474033234837626589044165217681096051821625518182184178692803941337108222338219431388554990274944496269286561925458541854542657479672121528132476041865866335454700123328787948433972691896194632731762097517442545807171293658516056561329327737836715605720761034262386579159989027017076074891706808064230095291378119454551248125112149884636417418704470624808400949021439321259778729521943677120488811556470779646059015702752300985738250377191582952515344501934935244012525765573124319983252796533344907610062219946291258829032134929402656782714954809298222151199036970054106220562710145256386311415198149816873405198315269503048623371953036639219901385475659344747567658678280427393481710973800957214235316269640744708360902223565611267251081065428676566501030687010732624449115681653506992780806563323645410941978637698428731272426174943044353311373856216656780642984188065228476227889209401953896455611282435399226999366672696108066033212587464279919154347245777105424696913410167622202895978048836852096441996480389232199108835276792061343687323187894644228702530756772913306159141753368606089945347517571422462691018274650544579483700648000832608152666368235322495941639596788746000998795424553190733728612195839542302531712268002719085635834879100956366208474697276745292020736323408549385589939061973608514040919005659921676016271069111619302666458082836450679297487443291152163302030885194144586610734660161395181682518159157811068236894366610695836839240802679792189175993070483020157217270406787600423453875041634977384283218626884754953678198472831930559927952778336545907644547199536961775535597902044505202204558141717450270639830819345668173728208653241961570522983243224611233383856791227845819896306329436587550813874650104829179710100437118758356851292762738849735279857333711317779813991836844126469241653525980392763152136379656667308310144009721172658535715154992209317848176559467475796814821850857339793213161153210799759052591435483133602138686656003243800994638314113270161857152907915119045410679051194535023044694920910816966059397513291341392723041793614534036913228362589903833565732542664600971410010894778118534587616167683434111371934477435117947039646458817676747374536121477345998932206832562366048714315243437966881132770970231821473656894280240729812732673408363269829260049341413612347624747477297499794860838730402033712827827507590988002961799235069947106551398932720865173264148427398442567092548060480599233357917571149945743292866093727714531060771506167113375055646548038323066262586877438993048318842476886904138396030578511200893204586837129005150258554774778061372476369463797646627480485357169481952759559406511392650384370211185879383611783258391374891000935820338527109907644128364572223696834992628596551753944768891075603725360114607605256841839415697152621913566648350909959061057387125412812490551562081528162241824441923006899649005409047542107116656839627346310518654832520070752317703544999616653802135667710321617219116070883812817333133500091277249245989925240970503609209139660802928329414516050159947091504837192414048182983500427028298633783908516347189064278434930502735763566208517908224176892556937050141272673509410211495098780894605472079815450976287444269019745572327752538203806390753785426246717556728408001669577510880396030999870372627004329001050012277689105741438733267743623736509551174330440276660482013307217145674911334626641323741795709348255987943427893930182411502457395109070827919253872388340961855568483787857092712862774357999740405395462503801327440331609774670666502554924639735176354281533258427230430161134316230964620942056624946886160752921785147105002344107702335608815684132450766356449284678083368546725984573789520634810601383312737390831941447430828034464391742437433079874831310566807479428159356472231169081024499092878413186040573987857040456856127722249552418793920784080428678600244631040668311947947108233915009158244390458003616932676562794372452172786520363659644853882669762727448686392028987610116657831315797161553106078922325222397444412731339126982833857975565720447391369743505944950065512946724290003929943917113077867502572249673128629826722784460323014418741556664069859310616083342025374848990629984004952476093328792902336134349080174345340582743059244819043768460849906522517885005333150543767845103145127966317644218173585974897116645540606358018175988045986104265532759167586605721377791386507617610119206088132816027046300055387708217748247356090839410570495098471533935355902374896343082699631173769359483354055071096107921557098192104372733292862378252508060991620371426429415199428426978179313562795615232051097963538725727426950074109639318804526732412714892318597249659632647222211030958393988673670837813750970606657238161980517121092886014214184983829987184514945742077623773994056190548455183805678706612900365629401711585490944006726665522582769380119231672631414534059119333898423808530345650839458618375581332444188767529241774967588483590063920509259182576432442218711949083122248207138766025774517004155598526921312706474584873959906461027556630570676275094824564749665695318380421374475812771475558688782429112188799389968547160732708323571945483365831057542402821292979239557672716043117842370924715966364382727472943063416355115731411182914356484427110079402492623228375935481636594497382694078632727827053364460991997330586801769693906713600494152054133079617871678309527170803113769539615906921272774594458529781004233611604920509652334861502277348948789845253926135531665217677527104727239086888781548359901296269874192036015316489780436686187502117029428260604387424298639340639260408636562751640131498048907140012767433314375304276533997189503852070616503865963193921558632591672221611997612918723556908341109961681854784021434829307810537483946235355389002284440358499528951451261713759241928201874920270566220471038488315114106174553148561844107865311795362185204240846717597359002272610665035227313193971984991827066447242341830871236949953006095045076323278085057044842795971417824771194801806320983216215353726338808652573547875748865983031680637933323611088665633320330172607438398122651873101342593347719950631326697978653503327808145860659740476828809587738951259373841341994738850656118644149081560879343989130491606789077133638114536382182891471071155866794668928807414097816833634293464643927012016416822548251932655776332914417506925541004929916196903364596425002785378527811209418870395349979880026480883296094783190653617112557431327800880777657607530362680816506430323003893881272994558716971184163236389072350861837858467767851484716292884931611581154373282721253169241271463968096245174669671102048062152932193242989448501305013404633470204026450218328371242445884920961073928637447795583578686004057658712068544798698600362050417282002912126475339928501608750064545891389809810595486419154861697454000704240884757221885151979910668783698684394792057892935983333933211211640983825183180738687959225401012683510006929465006219522941746138866653364664833719309861304971606191155139913574965582953628077219124257359592703558536515030907184079418919868202962181478363689566674165946351557018076257413741729409666540618966335269145888080738607158337520467859541700129605661977169242297808240044050281639466540826891682497772097999407966385431082237007062372932976379745824465320897021301998331243091173986844008172716045656406927898484987619698918809302846990447881299428250385510400846458042181603849845411171009575848508231630641234799756844569843749583588841453211350708910053785927523017776360112381767235149383423579075950340427088626413281065881482625361545756222376033007070844867788486035861283855069817141638640410757800214165458672360112738540740782269075313170843406882985038650469551067570553599442851905039412629492646634057370216673784292977074861903922749688443638246028818399186590099975542586387601483514666617135585285544597856883240512941396720715657654062246550214303839043324021572365259260081515035403283902415213214062612725234447974272844993994140400177698411769744806856811813778686560873015600413620200082832613650148312927347891230522430385020348628026488928162431733198438693389810403992028367024697154053408590123034376158904320229850193453143899243477379546740754165873221089916306640855569336111176944440714285800609278591310468225234090291010697713933428689131259594243195436662168628902872333716008187327820923470778524840028183304103036585284837705807273858481417184195587915592935490220960961571368000117806587914376290890552104987966666180893275848811004470589066557199611748417214553849143973701767932209928863618203281146323321601254357439524417592350243077044118174991253412952522508660926178256734404110414475583644853731461539122258379207277331482361931508941465826407073203435839944108670236520182316196143854368835518373661121071759685796282422094926988339832578716177878480685356157566551176270672867536317533632322278861745868208389322930247128350066370815891140587233112897802491258145754486792002241874204174984844769917170990721030056015388129193748639402182639831276500177568318688964047135063323930117756528394526157303723713792046546151548944302638074002043792469101644937891574592506108404393010476803099212787822449289028690151401537326987672745816684545703353262095280003302782729949721157244288607231944068165076936753907333424426279608997589558318676903427181811304477227484316901088638974466370686603197833715297198293215018102397356804637952080365932366967125569463080219182324922691241171799093037370247162505912763546188026425936116940656180981992550731258236042411475949926264948202226626011202053077638197862629078647986095975637628506555266581982032008127895315074092574848343603512217557014066846197558878534470158680215401419018571748200078242116755828914507031252904466099340123552742484759262723718573497902628083888233385285534030506778433425851790765639990697914343732947637200866295010311412826337833332377335881237119162119747519268107263141351770206398072703636877273716552381282603951075212924149681282609374795409025515390183615173907247306939476895247329113390120510097044671209958120394695851138853646791238555114288531892838521578952476051009207322343116435059465754186910688069810598351518471671267654243507706809730753367601306867020059606138283732070239529789282402682737988335348938215772551323993619348362333707407677933119383990822123788085748248652902744944108771167944403351393022628310938598130612660253364138571596717352729307702154790744490476332569288373547892384393215387539542531398635585884881068390929630436311136000390571880881896598696168533011651050909840506498356869052209147165973169326633488454759353716867896512399317890088343555459438016841155675812229688983215131769525343850383323639317374209865125423870756357139505069114723997662366507923154850182945369221541712889486147736902588841718866658709479670176501189264376188646613497825336231675742563194759691327525072680218966181855241511668207650277701764598841574645423511258436983379972637439299238344179349423833653576836994109076896915329750518744489706046212610044831642831606411732262306258143810074676512027747766516008180712280483145285363365390790050976359914108197468840935568557366177175667947068274313278909407787565823176900290472450084386646413663038869263252813783101248549775237443853865261877024258435977741907665427221604360754561561279289718117467034212661781592173804996046163245192121761976436548721903788807321694825345592860718288961611349409429910632545434281937505527400729767746874958621576928975389773489709324899994038902929121263583104408763371577026304690445457274485219556354130212284322876375814749992359486003683860290965505851153434547502828375586447517533883676829403113660961613802686179981775860171751459179210945006423962914596820963488955965840892282722546125335771938084779701781730966371414998198039904247298525681091867772059586407136031783060418904089639778213527923116761566374960634473244906260033345195055895010797107256571281505711029534821033760234999905454536959043642325256621165741472327542052857024424208193805075082739389243612771090489239081015494269239124702052047404168650379323186798186565113278973848602092174258583523398326851183871655840956026227604808354629990132274633035867361769854652274435210215099675866505171281622579507741935870072673289608514021383838263286944675011967229044132175016493560037510297549241425168675286530070631125245496870435221748211413166189995947711253903257798317393092129528479493497057358320887698283586790924536689024039725380259646915619548567964300765797520311984475506287557720506152374456508604096328309319833997769994656422364981029718755216682381768487699426197194610765421319296289421419459800123919067812696467815935122093139925592629394276682381000599806249296197761052514029086941567131341398498443704490097934909145951301665634774227642011906187412322048612488976765075936377791938846115356945476469574650021632349194405007374411982332148271731065468455936466982240375015332624559639422068359788735497494887227469678859879000778717530768975817506558703564036277974196013449432298253357419790009203451785757211833126871943604798457310336047704912308019109185001475036328221328850831612353242886321969716609826985691507528661529504501258926660757988893460986197564341505995561354759032387754514713852074603006712154028357337594808010156649465595545606098584982661653443362155880963169282928991490558625264998296331799630805628392494021199427111385503142742923781316299324518657523858729075348207477530286848238309169324195618160740159752451755437086929290096153848025490949666946111104425292872272065443793787315251383383263098909200214148064159605415719372657498222520869720000069648416528262344763879348783540228553182073439115865658298207997133144230109620855524515007446495202736709552735790951397093130764699300489917912097953028617728190333511538915693843428707475614586210328091352477383031304111009566271673275105680794513601236521685238165806010974764194297058200338494116825142956074661817399769974216316185167851648208512050636834040079165224012513866690854064734503914677979228751531169654084885885664026673134146001951852921149781006278459306826496055167782605638168925601549989271225063279596368015706998017262845556406350561650447130772834381569434205574157676386055358015328789245709670918718990826726354559832932995322153220023663779944933894017658504809674964126782672928268800467489467050010221625945383994478422330786510260764766988704662688614745799322817991729921276224119187195057436110513449993407830921126083677597247335069642568477519968346087070776337595307470842964197455944164020457719531947700535714379387929802614233183178614819444184117233631433749868313869691458922155898202279187401199978692266063673732982748629489243940829848254049980573786163903512943354092315671384828288369328749242238946723931212786611812818106127177525682672235597463045131693636402080198336568538857133028390927383643472626448255979199902915470478354716592942381710733415177189183388585981770749195937632605744098067366646917830744677184921641345434672229215382123540205146404209307038792186984460232290035384014798784564916990253387753029803673219499978142515735292109229662189330096779994122451998273865041159336345675859827826740517287370415494940351249801089970341074126221209421016654946041528000629509347890944080353941675583359101256268100628176827798777938193270392788517567194441358593169010418663008845955521831595577417132197644660428024136354341070429653641208711642628521826141620518425037536478276399740910543270222728811609693070758698455221637151442847204248212735710657146694396299208003283841432470605034153701713854506364989224902768249546569994057980845199985713991671626902309786438722750469891687555589066653319240704542990465965871136908598186067863518059453166587540396923468613269963786212369133578495666883091423686701014530422425479895946700273530990181391930220356689103760750041485843345071087479062914473023154922523149362358728225779840830015783228088126990351656050092747397880847542252929763718233263937568161530022115554800970170401700606376903594180711171050436453008096555119635672023261890556938630060956824638878146864239976197074820580034096009837986924018574593174441521862159864976904463980419987077586603929678008388100217298067878550151654391147464184565612947213673758305681800244642223909530280523475723640919473196909307482799782172569286495896944626809443033207961358770312632697718879080974293658974178842393095393254786853741374791484504614495531681415179763774992670012602574760475834814670418098737823588686029039211377213477331627784456703241208990107882370190877831581897402375255467186298300978355965663567369999547923632593873541548814194576579291225075261593676987918687669242288374392894125879720213526402581134249510085353647352390093153981701427111234431238378131930904669866288097013984636648572371464220866431798290031511995840997569376768969935083806690148467888567602536759174673687702343459191737790072870901661787998502462180310495211796825022607756716496582285666653260360280012681243048349116789523127485787478070444178893970863596488472819220650461764179037747846030060050395617173357329848000842580617874545847853961069368306098739319870194026639936048846085138236600916875884879215274602297425372822013518786711176030933398204605324564742426822827971461509577179187686395156245283323752656034698465921405044997721975626148742777975361666269663268620602943494384719948018910193981413071546093519293816881812259270758779744891506844001613128616762827141431976814947936358554609773693153355180562463323244075952009360277432214553281389862167999210876552968270182091360247555445690662819980079608396091170599521113222900551789873213565942696019071227198641804294294361252766876866277501500754304182746675963892233907292731591005618242882397545660533513500538231706562884951220155811371447556554564623182587224779264128473125017622125053485132261725724972543016610168185555118698229274403362262557065497424002085691819641642310149933862606765740116167928854894514714130590910782799606259793833796212130832830057154043810887048913559140241232739521590810005691877530163700267217151480637400029569340433041024543106726217866274732455639397911280949601400200746405870788273812376331147354381667931476632035801900924490941329499721193685597611841949808890859856065854666668622387286571965715403488361565226484582587546773735329270861697203795885148679463695201592800196123764467155668514425288069888006217789616187880638992938467979321015366710524491390110748161412800295049165355521847558746704037072251078906485503039759206748697286244062462149219616720833908990526902177082659351898971712783702737592231912418788259723444418537840571519162373318714399758918943381217110549822519742479820296836012495001733268128507904029926696237401174250972140456760811859342272589178184027719650401441321788392267606249740890761349632369669016271917713966299899478934856929686296744428598509749508502059540088093929935292364626122653175919204609102321849348450479761712641533244734790755362350139984113101168946458454721263714843653813163055515057986937733500600943919815781632277009830890129932489415212279829352275788879438438062219865991397765741707569212709583747419156634780886412868026732753115524155835375020804464017038737354220738011536560568471754818481838947667835628786349227301325309754831595754528804651914663132490559527027816359139433178799137020485013292757547362137069800840712532557595675995060036233989517004061706782661503461365895845970082691278906647337877941301291194537902168628882416934816217850272574401205543438141045495109265218261751130744887305043686514083180137500718894779670073531888518712983911409975637059503312089445451522052269880801024770047345526286938145270853683398412785402532279823365629465275163166600589139533619541612026007142993846228268251601749533487796144932465698897893317984873412051437398860938873978006222259707122309632885042481160419722398789328062805530400733144430443497032053200429739581380295452660628014895849816793240566115479464597062756637947098611064795941971338717513840024385832298133350881196582725583130491430975561689815401556860321795572460042178894098778961185149949373286809015741135045318047932385884936671968235567074705474580766858593768767418284531066189929641313468174489299233269563713223025237992763952582396646359739550547917585462578694684239508613546040597207819003003476765423426490336235519354810267932231656241190448675764963478114028112961270648413678618969311818144735772456282765018289366931412027447159148489298655540199956535780212443805319750704217014019231869737291307038505791231946702271309089348504287730306697947176465914256532135967743932200915717809946068883362258316383136266025411344725218263522294610741650980995416173714065314364442817466666227154749568461489540920228644175697724623300069211324133622425658874768138859511549070752244301752886067523570395649776411729107227219101919315694082324833932615141191327878905089901622079328821645135652443318674291843981196894406972368302019207410188176287148506239901396232373406205106902312911835965237517890189532529566962809483599043059824297046945405186966335220176806548087141029401146198369355886017748602961508475780209036752892738887406224113178468751406901445136033548315282409835497560636696590669389424907981642731292358198630725372732127489662548403395709913376036501987815199153899714620862517355741854153834658687666610455089468687266678785978022756991733675730189619648525414012842041480340726697371225348685956160504410537657988842620714562539294865591403717672579991600700037456583239157951405318210047811751414631454745965359320291509625535212844999786891690376403221756589299251479245907799022758992455269757695085003085798443455486986773214811707016791188255619339984808581168157556039291462534976464969183468067533661258470990926201909586878945404718714649478112035961944321916203757256553570970348447704798008192933848634116067578824240998167436922040143072139760595220015179589558333458706871491401989008218631665481396569757922659560165495981802685141472714210140371121044283818757539378863810474144119330902162860600256659785893587481048238316059920664756931810709381254101583740742369399585877522137214917969615124777456715839579031813903843627553198968985287008646543024368187843045285888209030278730498964911708528001956925766337789835449116713879039201620206354592863639244692527431935128189086469619355897429709001327672966518289540657577793571122425786700615441571065562521971286171008615909570623571789420960828694421299030619502608075905010412703915994560419107433846668848975451702955205885166952945041643185795755725469069837137980845901871303739446310024390189841769741099919837954141549513311730238476633567218103573947883774441971081478530703686293807148883955944607391841809815388576457374532070614295059055921609518506718456982888756306381035064704287633407983820060100272623220442087337699523640894215424055165539692651338401723055730682069545678412148586410496669688636072315097292698255868174690064874830540128751642408928970461579954525957168098583530028156030054859638749114767559860738088343234193966428401799199611352783096987613638831007230749116060270876714733730972377478976646073798557435331738463772380999996332131972038319362119454434412139274621325042063724702349063084947221909451374036077558809566301726153118566813968446647476606228052731009859556115869749585237181563761327084339223145189110525416018575126154305748098986214321280804250610301254886882180406447983760760768696718325542076214880490769357839519334766728223804987393436766391201822822499087820534371475549255088944785526583893335933393587894896866535257361769758379730644769690701077370318701320678502328030208260292426339934648451524257958060965446793255447235281542212099322930910549935712445299457867936636509650739453428739712675752093623633863489449337339247976738655753409727377671706165238674238063907260971694373013543495939261294527070081730403608756393953233883452115392243205213598886432115871398234918194013603446656313413838083869419486718652439300457807736169258176901162829029502267300207179269203293102048475736926229906439788092636580001174267514043243806238945003793640056931035550761015438708236268965377630083660789553603195186708736145510399349896274054806385703628118399076953852024704031636789435745779636612373381196987718322393722658981171081504152533011749233438095309042676794713096062257831202233291984931838960418830597413011525425642292735940953106165142523913090708316145981328092610880075846824168689551969905194058302675310373728068216197834306261029941937201289735139937791767465529305558608215174460114984854705495829603958042901346024534961482168647795458697416977561377353347945900608260437121246110902832399993862519354835686799083200068999432421553087396816025886138356912183609072559279253003458383834949288214851827984609609026065822807245225896003387832552695346699561525318437239971170711976971179068395338723034737823644734790917834612652135057401135314641979161898390875550472195361524268201240911584248798910936524507904538932147286173471404975897940165904042928271489383189527074223332193928535682129957628287791702175774769528327474721138990998971519075269899398728399559601450198193937096855735823447689263636272564378653174753065242348638838424709539341502141235697146636664524026865089835119191507762019242324807681045620202591254836249365065985956164632215116766567986413242426200222924971210661264847728604352109289082123954716759287240655562176926473876467751855887712254498021286558054660996788583584240592475441479002960423962720054151835645279775256817298359924004421955951940263478752507446113484024769559228529958711103880913296540062246796000659348080495714950302644534677121212193876352913784059857599757032618075986759546898120421432433581775260449238332704315304001942757857929753679388417410703987739810527436080541712719597129370936234821973772298603957959073013855032954145315179138312306155238655907012469190460608277452653974223297426693138568664078801268280873528618039981706562937409840757227247156105105552449944899806079708528733388632013167755198644203816321522531476309523754279554006904165751372676634036351057568186623976456764798463534279547848635896359736913095355729873867905142266835229955771124951456611532675805572016314089303813622940716988446295989727372727543848175619412160680749089013269568066052149696605759254964909032103903531186248811533935074486308916012916160918362325617791379392034181325794372869730949152608946147313523700790326775314870863959824445037353532206871001651637145863289778027390899328240765850141272976795333827830162471354498829178561046300140602305520227167565447395437657987476491212699320690882938318663315500104591080511894581681250725664341280181857372975713045737256622879029226634050430317962733616137795344818223518458826287929159349282467495147898877189140414654074491804417135546717839550381976564021779805731022478207990245258738058264410788745334447652956510216527334249179806677628717321720837456568761410063993897470733752790853087606563338498033831732040151251977324114478010635693754381993885594222486957222964801105928085243479671699162596321378356801136529408541063263022696823141625120557994680225088506183213315478858484727501138281004181289672396298421300830737156478780141268402559784487847572263413712837897376907594306091518131427807581732006838036001060698346788236997284138476133845548026593039644532674478300426982189020103097629220768769746417970813765858346817631409079917542030652656926046141167763318127005566009933023431135377949409045812113562671422687684868721551122265535862411455058348567660564240546424835144237053982415076484719300565534318563833654560415518910176524801677141812420982959963432782219104795986089531189025797349089773703747713385514593543197588054881001031781935377375839506975120687900777887208728088523444263312347385687075750517842811499105484944432228294945177776049008310187864436997704025104257903135825566549733808640131490092256227119348880142211376533444876675876336158580195164063058856759275686177058162705348072605584091647683186550875466236934984112705178863076350298434622099629254666653200200886413367384401457336703879206130293833794016247188764752239192397090536226932432909160652621573802654502733639678143947715671440590224388947540105497523299895397806191914352778614396047730082065623676065367792922194257794716705421817320589565408934188041446892093286522089338581449879080623402180535660865603010617247430126429141554438862520959194199615233018137470391896221771255727085110302391417191354644928933252658975405028861633509313543502556252245714924122603551691856358484047726691278900830131901906320478984191792729549813250236498016773223265627163857165655530999762705096765781815219588331477265143193739985888994860209703466932057704462633501562311955480233635625281316226128433189227061331142188386790940308487763421565658229902922853333431791529372688369844863998351234984277359987798781712116346124358362705512745245872383678985907966568928758935816206697956606850369843737691965911653015977180821946390686751231391523835193850317714763486959386978621872333192907266643956071436588641688294839332478954299059464404167009364765075407513994042413956639967945142075116444060348940350473321879058456204908422305473602684176392919115862563494730777634768600787404740639707271180634331497976515318360911942950949696671528751829329685557765703344114942015459504133425585840764051855935314843323379336858693113067344880952135845668738918578329765619843175075126106476307310366068209478620623169197839179961545225617188399180350353854222421633913247964550812424065607922829531419769326301699196848019748837367195260095065844953522164533581829790987657328669346403794119930969193568889714108194397154963383720624994413825633384104554014369236177050273920494866104619891301734183942680427040955689345160958532565647042197693672757983568127353068190146102519087469974735256548634546069721854070512221981441344806155772086691972045705655481219823043773270711491668551510095909500290980190211598384032234877476419117950968272076685634304709430851040335471205090945679213730429924952596169713769898354959788600234453634362931349695872486306747808467209157321331194239161985730477827392773111003044688925993174696184104254996272375114790168781649902460950670693654386029040859661919933755646300794907449270957020985655590312712482139702027710615397331141507516788268739992190686404177278831200497544767876943465365494635290441308518964430510917085486854634261164898890322451621554334910457776750077053067135345791884585322333370847141781650522241557391820599948554805765344079542709262499915657846161812917225132262682632529897936185995160587900633353075219052098084399547507993919619887633698628553017215447808459522585222673439567494470369223736656263817517598091287974831732608461386082907127033633356086763339665183748593915597336735227094213137135726581490143852572387651094917204785280615919799930759117726729752248789395409459911481433376416768071483706078700496132883140319150058048435185511495341521008577444308496112834239163612542019121687646139974063681569887266274878924005372771555128359600240425972827468256724818617124078168726207457584045383136821268803757280618909328580659448620614372214714744512221451733605221508695082943119742744147480450065030925065480634579126880308222693022034686646275451340346843220076388846744975366935856600499073183497132653491287481048027633965897331374019144556502543356968671133975194363735184961406795742463563899803895873789974812415790476073972941484709613355462957018038450923532548386225188268697743933857915323772246211398138056017217600939230856288406328656962284692346218682298153497854223978498403804904098488384441908335839839478923646786282976930208581227796935654045937524341363081325052112441874857404036001677529238101406461050029781554061904251455132449605078003308221949149528930183661541156045051015056565185854740343698196434971235023618196697325461377213250263244170463982096553407875481889450818367156422614474690523731864104034984164456091136295668014986766123359358412498066139467247255243846018988453952375384552885551744026594805471214768830051269021713772690993570056095876420097149255961750488183707942998534477707944370536153931059390384512956377401729733365678531479309295460148216405603114481145908600983672367113746634060346940161113497912289233145287304682343219923009984681762299950261386648225743148894368182269977074608540774929836458971037351622231905258383993585385615676102140781854807396526935890795724186223606323857953772044509957762428064622935798893461758698694861526279145540871634854034791647789105056240074881226922267396808294808822617176454394895801853120638229811800724557219262184519353174433163613464363618448922394010098456130684149462453665645982824431021266882292807170027695773400859601091790370146416353221901674621808492055557846950653596079636230982797722269548053075495915756933674308081338754463579096758386365816675522946730017487430810986079074911801334977789313095651495541146463355806585097433451557153496864156473235982603288566011439817198209357881768493842444664733275798972787706466244250168730359463725448606638888617836942466613933462801306063247491979155400802005297354895591586546272480793542567054880734892081888863709990325041429993280009837777453739828386278610365867429463357545706973512135009882954562159248867412383088308426762463132628417970534466780812243994247923267584963536135201027733510278935007705954577984958823269983677441080322343754534935076904055559833105242830359069447189981161933878165144543021409336686265789217379791216861193532557002040987930543068666098041898915647540997381738651097690426042091965208932147890253879195655406270304576333668854063573859261369351136154354083973558814831446681304905938530855240841856241367725696413117419857751431714512961813947123517486905994152774587026212861569656134915107962299492406187606349029223862991869872268649767347136583900844469091364588467908337886725843794517889496196503942516738471404676943704074392629731044181748834985956517689797092785808995480628374119207322267914125312623651743851753820134355455630079058461597064673474778834703159063290698501623261129467105068752202925085660426094659826136533001398098183662141979807557180119207835386503027036830150312914043476702172698440098700773494101295807883356837234635210726283533053797020631416761159606682632894044795471819613166678561737640713476233637409530038590758991662167498609223503747086003826678831969298899216933704258415524779651894141254711343858853530743784638376590269601297511447473683215311711575483390420615383237119002647423566576962679481023160772645672063860076985054998756044952182348189144823469508256308280578974107542823610896791958958941979087723225429679191192800858083608347007018805655488822515376504584512363716620303787754169305453119486403666565735699846427050511901664047872863957035756259811556080323686238480063417219749121046205734688763477443070154940843561502217393224642546900782422513270402944597810030011661499557936059371423962936972908039922849329414907525228337667016142962658030609556507332215138263878422582053130424059760004866871486156029949023239241715193280652566201622685418244360867573883465584533878410683694679408803659198975356875572281386558475958961636644854150100762020248626828837968661092334034290261577420271979365513321587140467509222999979518960467736493702887788689748167302128527953605242066994969533982196025589231298367281917677924570558831890353943057655759540008609052358514162247208381233245118317908172373717265410278145958762166471336281580040892353407198205559186150577061809011504732896512154894837021549293878883614788182767362069658788959664246856732419988878122258372355471641939627260007695909236295208973767668225890649678359997259195908390783002973923651162815898469832680912921797206973937162945313702687624270128945225332325097199456468450556156727936536764115595226097141709753390591809573279152012728698384211313931442198921597903779835121719940345881936022985316832435480400035423056230692471802180624884454060895890023526931074390248311827890761530513114130202770296945391598044769937301734809045509218251147490602212956066911968934730005248197659681962255036578737615305213190727162402497746596578807451718784763385846578357874176848184027062369982605915955008694926858429437242340880745162753464846214887227867267451894727474701596191383800297014552827168895503768674141954854195782779252552808427307545982478492937311398239306186505793695404201725245364331063600340311020825200737530756871381802935581381802237439686312809312936141765081097667089252849581505609292593459070010758514717796461682486494327452924591489216549596395450886403701895549494106715665815264871272631897607654227475269024001546863632964393724042537258780072234402515742170687886430476055218861845828540801492048579607069051590330768513712928888032222884611302154729362388564911989492026861922325060647011533145138357895539236375154818249132072439040586568803948140122503273183669879537923419177733107592713255241536205263237901961437488933850106606636086210504244904110378291240121335716251301888682974199659977182389599224140886313774744696878591153662597861361712508977595517487740653889150465655262975626735575084730984237190410483501851215119978025018082006109323573577147400034658816919514211874670464124918033974192494737532454342978680416262398805380571853733627416706064666297411135168194159832693731587455527744404404150775435249661575823787307384180562612720532506373632768716122736377013762837494635889905320689652603221061527680062644094775748320977998781092181679913622589486670124355636545867865728140504411736598000194436949248935441810503883429627958000806120252391232687329098431415950504791116143802850089240822617700973721100954850177160742969008105675491264923085964657951316255495068273360297059964332873352731132215241843309521388541066912736562528683775632166234369326923347365867506939969959806240144776875056054447141858882854269661824234894106534200661924806673848702295242389639212495181372060875765253173286972686800813841591969694016843769999546965065748283797043305409640923254859587627813581641889804563037468642395309686243087585098735398124472867976080946419260247789828364759484792298155176500874325144864603586607383780082766202910835431072691322492682156522251450240584656289293087258416147291911585949136106482477197689490279713226120388189257022911355731365503561611186852263512563596789398991496663936825736311292974354998672421693873994973118364971639266872227305023482712335518718500776837296262103710714767897281700496193794804139005252670012715511548732152637254768074105173470488540782330038668603317899492772769431878465557418785555604354843778307400049786448579673473503316830409003819663181070755820238829191683996381923886625307773785253198707742482433555094619397681263480604186234099935723565301707115699591401210046881186661342768760647565533624832054399952324195653294895420205335176243022653196961022719951009264388829246193183340331598940088175945013242071357994521841806646293555891711980160573207399127499048018724393664405739465972714833581337599040367899181887082876850366146878051028618995870026807926970289871125791273868837558121874542934994330864573951983786887145756621530706344228541144159998816612185220471788070778439437736654678820271936552084203499515850544352215133122599045066936727329576269913604271814905940295629166715350168142598175160485087206053191145048507717037295168120480350471741524633282086879058461449178676796298655025117863266006229538207290143440005786205723926739582228698371093693534882931765854479582051377866198656202312655802585140815406199074343714507211485355831095492017464368860690751037445164057265806968937936909543629357864300095805776007370958730663234708910679985759391078691367966411521711347623591151912504973774760615949624523722241355584632398322380956658666875490861183582987164025263726761869994570412285936751062546379506125889216272304762400436817230926558538902241216360016516883811493678055398353465890579072609200433357455653492125059982909934085899178309561364493445420723475077724524912635406817018880705864912216175394449027599944650979136274662260975886620130900905530675363587482154632882398188013005714223047652177963777860808147059876424346228357468770225475691199123566404883255247992820796087271528990345467611324643868652080923246094725542488862094928896381647157120073230284667460310213432066804192967519143375695347864867126897433917596941480388665943549690258970992329685778198683793469752809335043758428909527595851814340792443780499551656731125639089360516150890458903821087185076443159678572397352157433763469126139820651166252734989608703800310054209507041833850250794319554976704973943896153421934148273656314583789584617824143670382241605050317566905432013477189833143128593352995951906497807053517491654557187048481321840835825599436400464878435929480519993351539757997678795727538722477821241317450719336625885133991562928578692758705370816238149208701210051241351675788262718439952712776602032695220879863582059073394053281447445041579114894307482677780079738705836492886269020296182016673488861249574631209837382138220335694741489290694731792310446140395943458914102085055836298379615047820133104547978432128440700372385233307312118887747852472827281821453252562577860323297839500106133073646830172921502408914454832471663098378930081215645028126272292400826884605454962161203907313465447079553799736362875392059132530808879546520230124906665751045967194624749451629377930901223800732009283141330402095847501751191514598427051187086507950753209748331808483238497258834398389373232873951025442367831439953966074262468102448547713316334257531888852375659257045134844540441028287828398006853964658439268468355889315913297009268694577648261011153148731183451222196350533098029442258574818559164783938223505255370088711068096447965161975125151121862822096896733194224706394398594176798534369524721052277395180026011014190363753592385025133502497579831137928380965124907553776516612924755574797445929346908742885111560459621489729580425359910461872127814595142381762958582758093797038900894611487901517359541534917875336795243125041271570498591564506002371289304242451182080687276418931528584963143819043666199017336243897753749691242127546580157813204235579797667491311286807624255243530998623502634679228500473538842480520218312209115902260824967148280150342166973422935740967430249181361478563571098231671955691306918992831915297559963762936524474745020223154855985327505499607335918659011958158051249396121089161916068851145759687587332451329074649340473384332474103670338228097996363360653670809050688312286742751071204316340789531518969316740500955508642542998427854610803874867650848742569885400252878928219415928548822206985315748635621915931340693583332787289840515784588660343325449114812709026823858998627179316431671239041688229934221135411981281785417802523384343129940470752705787271739264874745702721366057347878191521513006973961838759034077722093914524412922360287060845535935433495505139958734780403514378734202332249119227459427121254080429552069224672112151712505073468389080918326009653104214664702009562697881979949316590742342040977175594104975271054189070418946437205834536869551101328017771216942821880063387687284684992024514785550700455164006987933632066296121458419736928684115724406853121126556134085089501304041657585618601930619465243246945837149848904946067499272534668109279679589347740599582345236542677415116765602570772500666347542364876666222850525827973876523960962625196883464168118174032447668208731781079595039095469164303924962281148160293286300930256406723613773934188081590350488870481802439292009545901257962421197015288150131835447324828473235548936627548389752000696433410682387749265827924473049583872951136878342121735689681445925039077014838455057480584871769750476421555317444212381767273850475266885151056744525071302751261507874745507951404512175668649813151142053642707243989185911960605079018387596203663585996334289551441436339237881133667747680564735745590775027152472328774085883268008755809808098004037515533899355932790236890008271543187713269098169592826662661119176618135321835079747073908158302562295023149934852022988850520479697697189373867759783482210615313162516562163619713270401050657861368072168294229556384343941544106864080855077965783489575423051688340823058422728481456013001046339643712631019257605140873078054973609301610806206577283512903269109713435523837791605382111732479377537637998092085580083437795483075098977958765685149043955954795705952026692549270246432133842739982475218597755718230649904742049759852862096995857305891833745931839085112672803710221414108318031783434751974751876676775511363498928375764897935416069411926150682274518963612962419493294045290683811587187283900209605668663582157474277971757869657234061916713296685158715750005724563178564636134310599359314619877967114627595989100397115502657228865089959089786717901492528678294594702313042342907831231769236268128290593286337700479653465314970070493607928940162312226627396317145016560846818441880550071386158895401158257865197095410496244430775781082038906775021617670535560391489337046346280205932966757224465728026063160649946556876210938380356387656940713446637401683297364644068093003308816057789866406285204086286896580138963028108037510151245555675998433733800004446177336720089575762436922681591540524958479548988219720924838159601757849386141589028046413310158257054485502078368148102542445707361611488359180047863423705993413261947887998902936477864299169299074563304298567725243100517220605793308145640221173825086396336821617849307607140709560903474645868094227261491782752125080801232226810925040672240395858465870855624865414527501834851363463076505889147822017298788512638782670057568390280227694405452817462817215760560834328225144632530435625086331397624333863792841077915928757126341647295353373993063606553655316018737004659965033640190848988596821974595917118314881073874100552287395954168086414954488726858109660873903132914753543336578986240347290084021055159088245765437301247159482283996400699349938554312413053540004210206308605557315594832607484844434440452769724252924188925051201602228279666616610764852646567892444012194191233609356480608576307408631283793308074259759256899000210782303335730415310004586345398986495935706947010938749457771688844652433834467745165640881539108690168446772810833930737290548982655161735482594431841181141810016995384448160688406317652572637508295564824833860978609557109656971145231308499203539479401581573356542298177305557707147410273439413371278147786543448606798485308446313028085142510695353105795509162965730241670255812915137617790428129879293659155872838845067844491841624798040967688452122752458280599403809221863682411928765891840830995172316580524973821119642931783599639017387368293864771422282814685193763097443202902906242411794074333542952453802263369141684101952034938737425374971403628406555632505559996004930682936112779020945495889573840950459773254171415140025163436500862743012982074406637649860651302218139770382962997671126296249716903351570546696347986768570805109060352952861852358572985200660173795190371103939819293039141994220497097880022990682137796127389221921966394352642343214253989923062566507985757401867100290918380443096186839648239736481291038126071921647092545291628591636413866316003857476269543938311664549379678232607190198135496558360909090200077613462416966699394844000448658504731046100266466756592212052605405238787207249453767236109672833873790468969985410363628413795122016711384232951363362836122132997802727825561454584204561021076655413144819184509788406705779070480560154900672412338359410527533062237814166192170170552160559023532520791321365484431498373693742197318100465112749776952029452533575030997990899433932730634655738912472944668479894668029704948559975416269110075965445483017068995618969201935591269390915332017030298501487910200343830216779620010793572677889194812507413210637583375665723449421030732297793600932011790876536237150449136951245595700764381027069777371329149988822130330580208842496997631916384668364243905217429465040749569146546805637689988292808253206455095885692040668376515787754808507775601713981686038169638207423365221777751260546516981466097280930531245984266389180331266632061107972241607025402442859212061409299460306907499960830167482418516103571749269842975318816061340564552491387541357850684252216996233394922012156401259370631197136743029862702819826703219856117646033495120489013379084171640669911028035845999565622307173552941374960878631272835203533778921217402048717998420741093567369030111853078330600935833525836624909817742597877005475678763307106713041800662772619069189721694596269616582420983463436259621732670682339053144353077404065909966924521961105836558264636092619933600865674056151430900126690286113456936148145757508797229782552518787931424594777484822890113359966481953057822129265547281162527264098112448506444498110692484593222576129251280418127426053434757305902361735511056028979051967826025125367268782353266162251515787457211769877703139695408783057815520425145729077668688302307788941669213438222318664130298047381823760102145901783505226445960398538616037265016762219755588367074898626379281455291752264728524187383509978033247142346100091500351402639815051766903008173045833862994796503116418920273654974988225369737099964803559919236927779862649560152469047058532368256300326435398395949884891911824106288002962640932170155854058520212057849518268087471584511800516139341942641611627542922787251673825400341219065000199253673512713245759825264929274725416936406309226323874334137154815326141400674505570329152590759857885678285390614579584836927760774353365827479398471502763044622570048727841679703829695774750354976988312422051774373011282065516429666651378871214551256068137970882227507304802892378104288012345556724021401822598829075561849044807564417444083086466561673303743351618004942117410812877281307705523791899253254732135626659913885113253383102260367545913043817035950383671104426175846698645959027787482783139252224432274398242742154670189855206862014173130403570230840054352210500423436909697541378478497445255652061123977736396583404487439801393081030625922524890469756164619946520845029726739955188436873567999062409879654018480877610356960135299318006388485316713661159886395794392933579741616362867551839833394346594106749541258741067393073294200535945029175593275194552624534566254036100861574418476993738759113893607570670044800057409199312897908376781716128435911332781174024842191732823874183976800416793117205812232363479479259944427840609656772716308925484560200705888059402917915595833360071622759831525356966419692986420378097260833334305438604957791354243949090609110381221275621082063323341227261589208214835966167896868209899149901038088425678796332241692366385755607285614381648275720405496159536408831395293613312543557460007472441847785905367697590820685216511416331874774616313663023897687380152492697322136134068699589703224089219933611270389634928433027743847463863821068037640530192769181902816981296901127038269281829412122384953808671875260889034380836570706304868532167521445111859449994292393032288557793405179981965902804815650955692510038502868034935767758764833557367812270009797084649693985597853810637216893397412482439361858470716741457119463716120708977371361371514410225851175231038748680408255862178043724930193941243952659888107305269516383141822369180020542877941624107550749070681850847927046090924486272952135242007187577269286724327424467800958070383599819496892185473638446966315431301634579811334082589069998974044370962882302565920745069251511715420129109241997200704134504080459969871535527240161672558598276961771748385590713507656695431859747292197456524514324563000261160786838647218325671872767578099184251265230121422199892136575166681172867696252121039070080949955596098251867146565392074948714833589267133613179647601971101584100148513618341281154565890678874128639103174592512036388083112225521057875793877049695308229604134285077096571245588658892542163563980338223715768323037883782359151704336677719890685159900689801493493796879404680395652454204889496032121920583484247901567555182827396009114807591213884504879095297085758141010128151845323294127942085040243250755443857692398078951671493765925317127156191391579848075398413961675830306176358270134710155723675857353552931318601286358562167292391597441991281928008703255498400217424610992212718199291001816753313369095618742115809494949736716947961177524104307121440388783061620564918854897909508751843436554162882621723146668468338781027071982994785496568317821316033696737254462433317442992956232441430172077544204156171650050302194355911955174478319149186714962160413875994168185653289447398168699730601532193046571788675141860926450789769166570059172041462803695284157414047344759253566396860551933219139952864243025695089742095784217564939912715666243241518496659983521551182493434743756392259710044464314287159331396215011339398667403394217700758795879975070385613922793316425133197608967116918303066493680217494313221551477951493221535077129101126521323376195342991682791658891452912766987703247715427980827306679891331986026354363417369064340583306856495088963768063045089901201059354628221895336888397388843381769949279686618315141228359860374900840583829669143348447911599268347509733737452129400340025732030424721751696205772674399417633342314185437696297930358249895956891922173052778137173260969633285125706251141870444407609480131386533644471703559074862074241984221244859681173975360164038635367617040748882406389426075994904550779132330488636608207381497801547622315781856994496817527518825811749248276338577857633713553519896850105528262210689223578258737847372584865225564484953453571673757291457693916131449892336566532467750196377762437359452693562231214169826834185226804062170002360451410429280447440081801580872288156956531742934025867167701937066664861942604191532735871043600000255662897346201472896250355702637413680977610017496370595287001205267673657321361805001388398276394117230541052151216304183600090904415039826419632749362257389391714718621237828988972526639123402349025372842100763613010628146734548987765062176336502492976003613177383497690485141587688596002766203484107293927103125905255991318727531456645938469239246166501509663626816774284088223288460061787085997860489395500344620305921172364790348593687737289229246983234623175789215842346381009232895335717587010340111853626517303068922938924246209968174694275769663193119481752706105275838862141993442024841813706595638545333369356390704175139968812202629509839472625970176291658702859216958196944259358124214655478106319080636488495062536370887602982658578660465083692271260047424427423235585809106915554205806074746391488309267063411769254765598709004410549222221441717166907389223699657445599982009874851748675528140277858204221364798585177772162377530998100647665353193672984118949957924970851066408823159467900629568848351377233202902828673952625845356709967132895141899146772576661695219484264206118293372330471083218898199934545545246289744117573573626536849174803900842237320597227889766640463228478003550412717022537222087819831799834067235477851648229850487554346129996731165985118000146820122164271236110003494942392968977729354088056056405737684483522484835689222567653104816144657333396350452925099528176266461934491072688526818697303959191836483962902083886324770442632067769343019778901016526119566702262813577361189227462201862891765221851574516202880279599578536312218756718831801836438246466236444790881723381668263867285382191591007462799657862017535214532218288320859859432490927464484154156274585372862481463619574234523739547802746455569762019376446796081750829596504361604393656035966225435237655286950010001173514454506880772368629184852369257826796227477952503491787520841516795232094873872395251901020166696222626909064317030324659692342004809354647641689310617092038567674483646967464563332097556953760829427849419687800958603900312482800998227146094508013136462413810742914586871474131755671580338771240671962580807267546822400932102536956904731726066598053448886699665540726114115539982971870701087103708069935477198931832438049460474943299980302625672376805999673162485980854397512413940690265676837697962032612401451799956131095926174380077282292967710562522110247749333396272226238311836490916907099524904432384243798670043555256877083151912115843216765691067019211812937581914913786228146951923420646605150241886101438381885872847382197010832300918443254634791777412254243817305388474970204633560935877092865162290084052245563902174653985293004957159925802304225200130902102347567636957624120187809674639969059685754785809339344008528015519047909594736666115103406472615743865317656614047672777573776793385890564978284910830120287996599436959065544798887982788593979180405034488692942138663403962473311574075129655386814264970048438860180150769805904115925640695334820356872662434256590505901787084780895310094159095924264477534803293016006474638235093074100090148852678268005826990950897351225700060519322873549398395038095530191401940341683032964415505980832280616457588216566686757705473102576446114777459984195195588709142551677007099151198571024249632235157033679420389912087547327718302913219701941809892523739356300929645723844628560539453401960182044695231035026834281175150034004819953400011986650084980669681912089853470472490283102676273288988793614618675931940692121625889155143452119893128267180501038280630147126471108509207135324305053192957753359327684022062102828213997834464858859479599982226976123362689330754797048684916433611938848428741673074655884504001078406806998769940811248839529605070400778952587583942632111123462348419068165075253619812587715751136718866080838533542134199852191159024634653567099867766698397839354265371076843573278751386479608250616376945708359278917662163788010942693151208516710835285285824708359565219761286256283212059047362382948848118443114456769517738059362543948936444981793048947269400208253121923281335284045160807027172597873278315838619518396060884137463128578906385545360214928171716402520624182581947735576697567220433414367082158047979786007359817922039513121090818384906724652598003822151943096640432999322927387206950973550822033028326623386173872305782299848146970788781940269483669595819371728367885129312644824586465571865691374346576079388370748181092912148437933787966811494351603702205390288976026350035612518520481208722713359100430236405768978284958069185119468315391571908925208310343070463417036708390608124567724150397050353909762819352101372909628741733718503805891445024483723205900354009088453971926592364015670708355222875914184735296263019507772549135276128707173079108534800175966108288695835849574986030002703213391822227436799371566348540499648979612822044658616756607255360559265763067291052457712345383587324381039508343013907880362501151299920608073963237963013674174373938846819784234960281041620380563076041527933912400429267483434927649005174183284371699401720427815415765731054931568304333949754056252171133941784845781348965978852464785713824350175433576442647797872698621037244350248712300896818450376553906973650776403983720351618913899603812577483456103623478156690818441163454383340286899315751679673584216010950972348858573536528145602918199400117203886954773480117284701204793928221755074423930707035022527467773419280938440686262106578179273110337912920374289416595609076935807376921385851926416424149490095324231531318886990737295489385740422851336351683169055385509667119077311325454817304728569445098622525917175072141803269414992226441152725023600392503042272714584785526166886053817771753151078154161296719471071203156095322182047805811764111357592770796703521492651717772226402732262930183695307209728209155598185751843306212267639210623725286612414876091384325476363503058982917408120929541161157305342370173882062174512962243863230931759134892777173534727083313522108969514835667243786699232107005350157658824766239844688110889232338034617314728542707382552322865939082311891833298333903388398471241655053340590189953913215907994442059695523915918811317796751313968252148247175762970188193399635096281138357279762149670099573646136376800484541798994012955992235511822123534219925962833015454239037390243684296634424330518030450287612032014168403860793673807177868412605463471792464522393051794580309696596016573233238666192051718826831902712284682552657200722839112382705001493692223282141414092696150742939516074849665660704015803877653295394722410178262053265874724589148367999707479520539316811624461849716689600611333695420393396996832673706315699194184684386524429699516105629758205116466996829783530431275395628581000375762495962580965141280245406507928220751938660872237365110509187802794634743156394360022218179313398455694825037382044985488736263304232987401441076342709553568781923044785594179532268813482617701526211198975513549328411407235497319137582837448580249929915745245533215699288076633143606772082466230964607443724882504145627939686154605129567048735862193226123321012158087521610681663104006065510543087135765595302529681027778320449571196032905522506945322530679526529237749702062399133316321178974257855463021124505229964059780174696865140737481487151668171015364030972456173650483577728342154020431225484211514151407244280019201930106370556944129927757975765226659795834211864960307706574003225629027712547200708048150497356040505903616860231785591969225863493861224612772354801907750800487054374266801853890000600364662729941215865082591708418655246433800474796088886446456899755028147737422176398930275188028248091749713773274664610077435192391617909384129936474866224676540570591144551559118357966696879077698414831165871510548538786830302710986253684191855312333124131869719169183412247389391845941740516172258601160796428660313949085149814860000034349695654207550969035775791900206730952406307670164568950064003421345112002486776844676684745618477767079544815151047468672785068642168184596438660949549091916733794690471758301346896847551065118102020967760272671726850532086207334469801400174460707074345168658605298816604049797886169338905955859204747982607667254663539740969809033468625932818734611503925528361649779126695481315293037761305747506913675686384140173606376848503420999634713421754469791994145845339779541671268790483363703288727738084225866823785718007667483360225263659064978605482985793094537401173931347323924983503730944944755809782742689646488906805543103658641626034135696925884811919817668531398676216796697706775383695831830238306938816284946094478228473454612606758522422656914669196473878748384237059773384654680613425982247444781011808269124138239009875203996838173513250005331698408730831687191864384503657473311420493101222085390251116749573277583859673207021218817949764505550216299434002453953573280920191608332844965269440611974782831893639636995779506408923488411759788728926203747705342355938965858462776326968985415392498007802938666072549881213900884853476346777467702832945891956375092341558338388150171799017318318776996098325601591754748460398470609013169883567758529513253189579690364583226381655265718987006987907650542699679504914768559976797526348775229216215411019713945529326664825550910066575891372781025600387740231265853355387646718488005975033187859492615952291365623412581010159734373005380295747555216384735452325537916056220031016922146482003797228297367222232464905233300571654768073317233123640100176094374362582595366497328705058964363240225060376739554203083245788640986953014934244065678093197501560862646284071805834874871911283632876592566055053768892802214702709398398007631823372604851029265156191865131522928531100749913673377494550841266529468381636602095438265258209067587414447593193098691753219190960671528713511996532269365860907301649341601456546508530228483365733845411707941722531432489168122211349671303709291759505781405644897400633980991721943903953431620207613851537697950185470653465524743350617847521164081003467164757386067740740014536958764056417362552728377685046007188399707768235585305208312172047828987527776296510783272561523692543197014259629663463813346936332002363318357394463232912709803996198647960435231189201996943146019240496193183599772723462114469687182921187790173057489303230004501468599253235458945003335167806330578957284985069637983302116401014787931098099634564724672766073470670980563035576933387209598991925996427104990758469484781922577807972052694547403932942375489149715356643712664348315121036627487212795450029161408137535537260060052853782091956181632015463507705065027605660608797080370196598100975661571300147470752816443429061719834500107643876072814345354075487680451229017513495851498441458247031024588676650584079391168256496292292797830422818753633571482032776875456375416626427820512423384232286886394600745557915209927961564301243371120227137724584067154565103376253995387856878589752865333662681621399975040002538245127221131423396553879136120950694072175376306386302635865610934210251356436726385633052138314061257312051662891804001219334640659493293093837818619741970570664578718116898664183827339737175252873436284063476396255114267761581059303734089915551050362605369995988773890922251823741762611943605551023488659445008514191953616559752283972774316556938076366626190861761488259196553186026908269268497423591210049287755991525882058021976398518093034883374852143476025632761000710193362909662340811153981792256045115007862326386195080112289650168504691401008705270838204636811738864820981079202528055175835504740252360521230640252851285749666237646054666819563093255482829878518704964401980208823086162455560948653226510044529035849192051966565898591640367970901151903708907501142786595239734496973126238817673239354240422749692714027705174715264438457003212071293444918944913620889427294947876574231267625951224111522449330488586498955692379661860504273914946038037668672815105423994572878451850311186224592014119219397805665634449489037064311847844620829694417466388079801057329962758980840016333669916924428634687346839375029448641601600188686075982219908133816678691595697328124250015613353046922164436844878977587797495696123701620613960557599451959723578332859615678602632074228199457941591050639884232555242735611730809623242609032137060158967459369392986088908505653588539725244183901914014659146100338353182520608388538552595359031809383594948488938169163470338020670848423597239160486262914831978018051743369511180540107451236265545570634952048434212329398058334478582322775659881739234521262116465613834333326399566794987510220192528306895924294009193601846111897249804837183703503439120673018246034395289844791140887650266800012074727577166953611779282596950248291712628689924332272622002956288632668863119929638784029530704072814516727553522868078361080482045259146602737358301320732562741847420346909941251220214621828483571493799517938375704329872073896578871513078236794436944280590819237637457357314688714983238081188443448568411425518534968767663289427563170628393211673695622699478993157015091688479310023135847306858975005789697182243442897415791318717130769906966983640371828387558951235273727210567886127317362531250209474613849636114723703855295680675286522636745585861891420908731919853268381947933014524555292480840182072640243450143037774173056479345977424595340060640531391641088655085817591039649172516908342050710360887062789649869404363519352707743530473410739447861771708118997475573962208923430510443967239688257707326884069404005112560898690386375956956833069526478961414494726830114725715148948403342206423925645813965076067832104313500675116388034019891771742140058480948862305627485001933228868598447912241378246197075441521272745766028154556838945928013197043262479906483677959676220151376587659027721278937710840781111225613389395579529400060828690830006952780640502230783747749887974822712539023899786230552432807832778858801932079839036298107173823088429098510836872441501426814330336241768044065789081059081965131302324837137820987317789757635462132323838796821367464270717129856231142644554872289101920007012387943694349747754564487234744536858591973849446182172166313576815637080420802862426404088260236581620731384486448380781975622029774076781410924201478910797281602803939088524457328992984809944855095753160222165715868658570139410084608696064722431195772805578644930966745441168270164789072396484903083998726661936780520245957105033019193968296290534376078906485242901756941318192265092064103961605938161467159862727632911533101657375524476175031066394244396996710492867622252180349038224613634285987488605508034020233705719326254009155096063337410544899910012085585372231356913677296007697824758655755256489712277708753434793393946774021875031956060325051255433547484977720428649258702645950611830747422721354259404519520519149387256963264869432072890305088994425180169446323289207155101498769493020988793667071189650231739642625433521024826738072841167250293530277355173021650633346417592044575332920144121606390965175067604916741393542396657687130562068660375838451220838503483563854341278002062628562981598208314142134865908920728878816023783554448594740253684877977330557553329827551908481993087080155606705749935274368421239210868694533084239511197640849556256379246931192446334245025354159191938001266567886982004820005012554674478512592496609312450301776781573432534153096511581940113821771056748609116039349714935175253516420342865863599839795062408956494900383156246228488156909733663423498899787131139752878732440487667190368051939040470603794403991671914746171380288579499939747854502579623895738544913806618023090367887013384560289520677269050938283195864207130045980590669712305206041496613130590812841654467979498397482630459646242470254652583214115612411720997838700114684834274896607079220013598550918590538136074310417744844163867300744537038353384364534777365948305226243547869471388859312954729538820177973865963292920583587902970363464194960295154083376053645426581908908817918715578448570986052976462561668306488472465447539698590694346650668928480375235917143847067104528674385086758359796889593046015725744618641246070260306963818632757124138439163804056746405201912996312580036961607630953515004327411748984881350218673377706063425092353713634469483936796647480834759480095628134835331084532920639712767346483727155240554748432264909426084155053640878616947129206108589823597899912735561620056282007787593595269227345629163767525189567075784108253609826136491466758949967159735748749418553398061014138549943050316903202354708797102346022551921776860977124265189476228233596451794563346706422089468687011426841146410914277227029835707141099445818378315139247332072195743353915715233132702901699150764124691684927444787363483433761697700854769194758995700464390244051901105285212132259667455808042741862337807961953394765298415500676532695325795571215298894094415141568546560358343312214672922700358449890900335002956695681699588140740184994726950347869324652628605191109634952120932299705633141133620351682903366861310261804030717665219379736606170407415957278230447822441924361762171290408351818355119022222881352774688919665398987441962382999576414218046088098570869904415113133432309772154049923582759885575054580308078143063590644937072278109291725266184110762261914291234952899053065879765695045075656689104706276227083178788980304882614272743316978069982597091890003851996255741679615266203121974243867655801948408233564659761745270803981728669128162512122030026115433473168937386663612757710366726383444710360178824461301287787762789220184149414021324288910367509193672402815947054450695611430526928391607001751990719232864572382860484560725235896251995635550955686343906919108039237025554699880138985133852665814920351518607825293255890005039189908811797219493466288338604662912693683383781292316172083725557288051764088960887043111985943894238631061701404898526040986083189300413394330906596518828389966407242117793322673019489541560051556802226118187844024546048637908690206358630460108474255928199865816548208064903659858708966275737994872389103681736193998418030661313289577225837860153405376284624331022990622942253067239918760019604247343634797304284823130097847541899001491826648567037153069833096699860258105106771750208467899194273200238368970769678044642115825047539132103925764059861549720278491289979850843866270967171505759183933596719583595570488896554419141192553020102863398523184614143731064881072875307228463295754589045064646546145180875183106755053296412549813285155518081757851390987650858688043072880881512695289870087033686500365980351778785528975544334674251702810034084252022280345631101177425107521889113952250942498972913274862099395765801479595512166036278692146338671752960525961800337277300902880038809935437395396926341859152930335777252798026977890745101883633935016893613390736429379381625126715207802068334507157817610004253123441768651628709796899368179670294473669386825950744388259056554792527152425335156917657736522325461719680195954195232868323239833592273011664840277149198287116199077715636259604392870635555851295712314740624307130361678471096434333630544801655967336020693265117208496597018771326254348395736892069331089884409342672377640935522900033523174296323283225592965706048375997064393249466666338321740785296664645822999360036086750724771785613711064419445795141200043146334208261075662125334711396306984441349407460296967569016279361499904001133589785502359827341583478876523528738549391359996926695980357380070775871562624119582637608210773390452899253857248751301242849312379337252736541297336537360942357828202121519457453892686092814021670834333766053089563206646206450148439084653146978709211950820212443102166572191227530917452318925441323694957614196582722596570042277019407078528789303266045357094207412964656226536684631432500841417662013283030620618146633330470819114995227108284110804657115130246006424975086752646242832788755818060151096348267687134804966436486138379479453670438806995865731828640808204808563435290746279611004409037436959137066343414745555129435345651224867353450173999929756368012913421480550831251103637122291835536110169223885996686909656129179394425479853122352458093370212096261411615316147466357718343988771244607917314821764855360855835156533266456101936692550058053082995818599063883339510353666983146552100469326023758489219783910461958436985535079480076362360055703791329913287554334796031249781115248712214570116594676647829758349652413371240456786650788011421828348007115461634926174239744709100845274652084040776160398369516953084329989352099730609049994653992099901260721318802110341576928009823352834341980937437997024627091460076951623981862419988930583285674367674066622995127278756507419738147560399646568141945971734948155981717830916987122077997528045205127817337810284801046653755875312658679771936031048460202151074631399504048742294643394582074723958850686620894919611697752142923905777905366383963445705803359064508829397092617206977492317750799743703028073444615928344777814554887242085319833847184076817073194821645808011963548613440743387505451662581688424152485723899368706597621273729742381210943334698502077028855291973379951785468451716886926868774527509953251299128288551090860149173199837301586393409541249166683498746435924043744201381166299317296376941035778923879252143081195418183912979120410802086565304823321341564544506052957681664584537283410391025925345742587256978459426449090318066610906476721351530973825388455732806804777007202795063440664584557388849174545353160184128293986913575403973795400499878051643928242210250945048197530647755081586429973325506270512620975174388417806093547389077241446409845623118902516262289439613353666474459070841617527836531167831883571504665522100944467782624178622405222484681509018198588439966085487947922430462329011363389340700289563078616991812365527034690687169223618514969837626317323310380405168981449694482485086551550291167599015306659510048508113499527483375492213806296166955615045592595501555190441685542495902556750243278755883697940488587185159007890593966286004653054053304872091956261846505312630707862620832248432282315809506077773305592321130565426280551638642511608267298256933206702871580823663752393293952054017535394460324519613812270407033855513358265337362818953434326211078596807458781247024114613550366717500984770793308156897617590600087522736550959420369502207373044719916833884731687853885376201807713940867135367208305976304079758577464908512688276159112141668864524169580666086469099904219838426540817957975548571920024498357646037248834550342817092328227867668947634436242263673145441708896722044684388377770443476238246773434660692759556972971760652882893822815648026836309099701005717970730908646548263696821104100392551639248442804311012098163218188690539168481542441122143580727673841874774408238293598701572045972569716117168378709030007268924756917260498403996836792665478289060079330385131308791421747430485992348052006308921798849561272088448553981460023667261162950819298506120980268219107056797166096254740107306165928577094100744760948549870860631094387070735727738527409593957677465782065969089716204961332318056202310572154347359682271610023632396984912926170776062447009872310407211519064308958145261928231967135221732019149286915598760965015951713351673342384590496935770131855320904403015795342496928741584580851056027904768948091283726109907622111696028898630944307902809458680841562902366386675094153288310154955891071908244662184018657700388324501259942961057035376320868483744227264638060893164326418413978230931512795520061466435694877944960838796985260408561694953916888352953581639535219808940030922049478292005812572633110561792237499570703029412460696449320022802497028256451286102412667295657317296274624651435986422797323515514363198997875019975758526656613226657914013472854720126801416089655400350890884833169821695145002296945369341881342908242849626998231675839584069756057962650135184929142779153403506528259786883423780321351386429704655775364720583665489610321782263561289537344467475986338279871282488740773654146543436270640838337011681714727784454817713857175071231328674132678641322346422740409658202071704057496945245061444982801089127409293311981032772093659859420330585558473750961808807074470884676319411122027241768525051123129836030931089902151261898125603356359886464310968196759676031483524320219278894656747848578254788048583075300137501192619957060939226981060044078867994009119199767875658796209812275637028698260710262920739264214189257341449835075169869468175695412583966403567265782157294115839622572339698409490794650621412419363929948342676610249644688930917183568731145016651831061571867055688808510816743929598547922576956268201397571693051221951030865241093433256848699391520903295024781835532234964162986225359184485042845654681633565586805402980980469189278102227460742373797482948560275669070617733326807373071240055845800644259156502048654080535122300535439577397969925528919735755996848339587640817529231244690543575077726153389946583415560266139079434647110575748855034868260185568079225653917111212071637196439255098711793794247019239037492820142012569144638879622280761719143651898501280599884035097173055539851897980806351207856214415877744142311156973620244911391538900445644924555275215011835594593674646343955548772916536383452129014498427153928179739212320231949896680678626380027566161813117435012429455563198324675371178477853035952853290091885071464616283651401267438181205299858925276056426391468841000383745034431895752812008052832231656940336759506426323717002442521524201262201863339430211359874666488351042174079715193298538667462612812698444860821552970908697230285004591628305611744218666887680107150275765160081943232576956472818116570681583593730106958623710630004464848782842679974350358063620671324140532828060665462382742868646416924568785733269504449800135298831718995011038250112108964298731271337051112178781778320033193943991048914880087265966011392773499228252810009505488047486829604343831855026742496594016377181076895446122902872800151211615484560378685831269644376353190150174838240697348157130896790506927901735411972385200771853674871303621677037406353421866188540981642089311252649630043979052665222885994395045867242595859253307029287362481786261080434923520345071820909875076307898061014643823887842702969985486639538445875303746238761238710300032117559532634278339865015192253655480872683363277857428490130124152597755006340304438926997346094684496762612366885389013101416782533918214506588979590105436996847149365583791076141394724900708835987384288829754425489919789392085965696327544693659824740337657735988270118660542313429710542308506114993950389167585155656208218991118609409526661234460117751274558303606415723549143598968447677198357842361705533718077476299071747567703202799442798550477436516891571458833153726972187193265191126767065684335265878453499885369558685649041154667574961522601425841680376976317452529013385675863753342094265116177719927557651253953321761789674536588784580329855274726092984231219188958514649969022867160787948751749971358036830805735072585250713305364671113220022388913092659419834213625497252824180149709089569839875751974986810280073777722406187899826562159069314999023147902428984634608383743465596328961383270624481768641338575172712783978821005395586418590904165397477287279566536889089903166838247637431824510577284997581831903431625586951910436269257026508574296580767377471153483450648449706381558216920220272857481995202654458847693038974574336555803358408266374228791236402087532888784510494829162583241437180266616695787489208896943032388642489861568880514232972891819345273000346406928615029889875747222547264056680565494743432076393961852878356947897574412792024866704937629273846355324361599755804840912475527190448189838279037823665436503634249209523518034580127561201919716651207874279070609288001611184845404415505974953259671933506834240426217824491097778955840918271976853303544775456849038654204011218073252618992693065686283252857360126160324318128283389249332023222268620737744307595760276880621889769118567848452793637725800916988092557999296941576239375692764333271547778278771285203218952855962983923347198076754290967147335322281182887040996181450007051818172155488498107733891663063211384193778949953219462784681090872310417535717895110373541234274504514881188236436839063537818986606069291010305660260309637344375048122563816944383513897097291119079137335121854724013875877015261856245326225382462324678808961423732126625065130266810294278405909253186389825315883464409168114159538652747319299905674914836669920373885438543444068284812514709769962210102370472016954069396670290310089723841179642323310620341130697544187227110322974649363029060709935635876303997263331426804241912846464692672450728455671270239577659035561027904973488161745477922428072496565873819559461812435022835139400302606607989944389287711524257715876821745556432111441289971533799838423087823102438686319166342701384697470360077255327118779318172387253889895364013843334912646520902679369602282976579502683064120804903826069019074501360510240279664583823722341998475937323702024769016132924007296389525417195885260650746952081315165097531130799359651932170290096693635573365198230143132799711950070284598422801969585359694494650064088766989829942552152143399866996986218506172365797954851735758454786130765789168628450738577607666774495189820538290698389425153639218238148604024210865393195343076283888045360542369142823093694070230181639227137141164578724963324071696430893550945550305317802108061411361387054262168567156240045595696006304670672174087909253958969293699075083298138372089712156254523889222401115817288948413754847386132420410074613478684845425586863828301424837850786612853194777634810961561290323341631067269322569683075290834197778425892946913536645515823075655809867912932160314915314293413859164862992711436508722779229937112596676621727371458976042195254320450765840280748707213460003612619550187522284822923261776709621399927556715749351623474425081157036687394119199364209199715905003007924445578914620846519464632580309461956592887964586152683989229002539495894351295080904604501349094069608372392672270074608094538202353411027640069906264035266381826669357401096266225673069787181251350752427319947833908793431115168313077725709753306030333603147608944572547224842350772852061438209588297215524075850769021953922684540700284739167003189947924601892539337640178870234575935596506109161643450979441707484922952527758095103420162602219578768549169317863730020659053467556397930380463935356153202831327864567584463151146017883055572730564743336098717068744022341656026487369908420268147420337018740314510169122217263871905039133067311350925609363979806262278806921115646655534905835220118366289052223378195838087274275208186184515822633539112547162525028705917096287232882258390126655469036465361348595455316312270777793067446043944131057063840432054115541129580372896350006078042070172767867873606646967964226214311498633262391589333125334024029097336109531512399172473693689974695940669384518810370367516468583165899462410888559692005343877090524012465287976219662592210064570877396887946845372232533515595066189955206217600507965316093571350987445406210096815188732307403893654540167378014682544161843968642521556606996014423968838704148308040753721541866697676729930864040038732471904832267451384178483085791933622067540948828329137256601776699620699345465430144840364698174203559864075838633193258638952521550581374680715671571685158284793264691567760596886455233704605730743250675951048978131769343770839495649676553634495097450480571446356707461751921457347728883233122758923405376226877459507231212047451308229938088926783962294158091935906124374578594919284174665833409654625750568369708295731314883020783092762906628980842564875122109325579744344582247348484047975488335619019097045449980055035379057423375933404427311141898424147835300500796023034013202613101326401598623447485368982795709678587830111678901389142864573182105273381990402388793699782243045739320574765698546165309688992611202697908637103187886613869147776991339305752055963760481609151810165130769465989093345595501307211911850277120214702839747291485577360768970589142457759438018511124051298761671501798125400377077641515460099663283761097229543049068575477614858978448394725393168816763774666987180128744906332270905360614938543511602224757292034939540099330468656404370512439924496232008215974128251222540903264072295971576776964935062156298291496138764064979617372159561603711553412492322861654087570176277028587135849215635823713894766447924927653307776274135640096388349577468035145267717764357095608916092097715275248355061503575508540438700527834844068865993106774754012468224979126720474090223820481809239952190736059564311675105633938353271293053368168981565988824658196543807050462339471606666926163997837575529745012275265345087646863147827038786922557021077678008934092958463649261524531127490397862471615833733920373558622682637926424188509373394695175287451296236735676286148333815308375086261060589727963481742874459670805726824940803898921859671879652499656919438306101435542996861261018736465983684009027289603480733088420304641991049706162530151975213145834680043498190933116698959578105331670151282371030863608215334367681929688739755419754853557340699954028334141830838383247932879272241903275702773912560430560347706534445793551416206765622077638127459371037267946141152100908431020700962219251962899140784089474353196749690576712218858187152073678186468265482954126034658900900472856429490794408673910796176982894303644535429676634578823380746585248243569754059249319696138858726835384819943470754650073956042059326528268430509505542165773400664027623536598950628124716851799488481398893549834016540889406585017174393049147814717815883317051418463852752248543181841332993966629637267868533011238239794850253261695940054095502514273048986033745063987754466767554536480695904824472638544042513662034107110273028147551334069662088944486965934800730014794738129089095297028919431051080764191480151064061610042015273363102282702677622360057222183677347713899050311031983525646475647102070113124625309129134567217014942254243512015486018414483274916442291888240891771451069987623097988490058170179589798407629134877793217183911122440142467101620989674783582727297930832174141419740372032134025522330820162058614323474011841708258169867476889217342454715914380870249381368474033068228271729867901393227738966386244527454684792112165697558237370316130039542698992755494870916498004987217536751527911868308307059539257826772501002293748477785337072612334202648019511593538108791364395325171386997694967648722347024198519270125133545223431001186206955139355747984953649610914965878534538562962433708921772248865025213645001546042146687213918395722604143842676388478457771825407279743462174617719844314776676336707885772308619733872688381621391410641703947433208722904413567472352621631114017407707789943180910065391491116300399968680710116219156268972012021047623038085587064794494379886632257686368858909328687366682675421280457060267321612028167998062886989263884068200064982851126952092413866040402903704681898994631142083374538150439180923629581180529819480357382755761727645267845341105224891813355278651317028733084673052057703525171965699323827022798054332067059875991674327407255429724486601249679237219971466859089140486530574029659304967940521739512956032344564234236739351714018514764129698039444660875019531684159811953079139650714387399471041782697408223257261169392482739126249334536144641249466935755577685826215778027576165975724392130270544565883641235991977535873168296431217167754148200571782362419882739108814789221496460348384501949104364533280662437616539048014784303310094937049543773449548862217153930519494006385279527142396412342180622333890001084593204546053397702041036202829535741120503592379870006091497798754240281636305996834881606418883606200871670112257205204466563909401996892724539241131736962140432941785942330723432062127313121109897711926422746968754826004918320136797922026549372995847491776231643345112410704568405673581355681392176962577465217603470082597163808144041081506035551624846717925190177622005818815819263580995182493092889922281729811852385568094960777439712063453754181137492093111503700256405456760925299953005948132230178714328608040706325022953423226294511775567870389033796322331244867067253812318925603702048450262754176160580356645680901213427945695826009800720601593394940161604405152676777265295672125109882061890529347704506576493651195177074585435175759090319288601029879430327558801619180050818384044687324128944334301323319339419414376277299547995582072495766107129232956685405956911510478346152427052311655814797548531568327762723489652831919680737610009068964035360288430642969934167877835776779680804528222049880609531284326276549230204180386506994405771314218603782044392862476545025644413870643679036147779127223854847334870531206953501596442786165873612396975586982203795420384096326667891746403913544675862854201612174901816085039547770200704313620369273944392482160546369764045914951572433325287376297110094311504389444155505600962519353338730326860791782490029241841574576021867367668954937748599723137615299308510379908920023551063967627315223643144391262036477652930811780368488374346242405266618261417811901810508164946699128657248517528794210273019399627904262841315725145112337121598227546539917953130642522376829450185012833830866994143242344362812250352883120927118545710845539182268843698792298757735209605135683132296786181601572260432244349597442100289189785353320596968822340803855462759120017170423573856122346863002542485857531615013780139166401595856108995846357423514059335710636484645666236980524220217350849212157925071725913540742070101974073523921982535508097844196044764820866580488381304434128143769054407902362490081813431095744526093252661434579935243315570855213905547409577416542919081958449235944212668858886899267192104906108886582997847045392218185755409384843208713882275418842225096482314676152247404135206808722704591864233776042610219723455173949117040065175131778289191569354405348460850754012663026717750468235797349693597261707211824533071105823024761887320544660099328212006666586612627061760925067555645411980837307921565002388241333587295511605905464817943879526907514112203450370944220251481004614802370502363072817680989501546942291836578095303679634389716748391389195640498988581192002189162424682450036808720083764124404878561574297597069209850845441039178417381347027444071759602894777875024922312273511789288264305093059179084850754126130422001226360646076648309100209677446743330418753934493746935039221443990280004117429998089666931513535066434787760576317897506848478012380977847071263900572213262054586439491850232764330617565353493431055200714998620350763233856112510528272840058045770552101709510189037758697399560410140583268074057178212900548541556253693445435060230894133895216253445546708788575407834059705639873108330043244222609980343998650618569706911186736315696463238859979845060187325219733141768037056213452887648591305229434847350411774678271637951715174324437634858421960832126425545491951991077210682296331869286827728588423242895504785023819889341520855067538949320831886852253809325718985788052279986757104892203996671437443247002133246217580206026124823713752124525961465774650622242656589322686638058751999561790182249861859824530408252034143226294024136380330448344027586241365082435767466968130703456595730416868490386248695509484759128682802789048886449755622165804314849522898029454473205493607305800767540202066187424343931046237691346599013258699002650559697990787903162069476520858686373530523840428338008946377374378440217919897427605257107191769353249694453118635180717313073385991452987016404814836331234027243548255253176522040653949429328722639976477794803522154177522388570441914235498609128286111890143802916450075744785045228225740878558810893481550600351485511429241270207545862941607683087224464765729054074157182343294960350634136059642570345343510500173969899226980396740418337574745606970912368643086611471030809374499866684872141656461026375489075775280933348158333197145454065742397513119127029194979481343256125387629389119158700314270175087985010882765381439012088254698658672282405941291242704895661605289569089287858802583587878621820003212851185914009130836513610506952423467335078257043766417446435462432601911716020208555961986793827062445329343787416427902507239358346936342358300756348405237202147575618693209935270366808927073925982663859088942199837308386833637411301484061102855358621177491009871913384934150306485154498523908733171008687163865141185633205285116612143800472151086111775338773761686187827941052675545792269997436150350253255972428213134678783910490331543957776345452623827626570318382248874383755691695577338642523830009640170608913456259848351714263720639042086532285586384211575868586588340273277280160309926033783785519638577154914084445997943468964725732911109207815139043948084821646581956084753342869789930655712162464010170637249199948386373146716795092237464477658992885991742846659627798936618010175809504254989632271443062069893634061600244812538417886065347765605478740214674698252216494170951890592779273241012880850412874411064464640770454820956980279761604116694743743610322544012715115369656402934936459438925588613473516458972184852184922016919382387210700944446249609416464203707996094323307453682197724234268545179406387544916427398038937109478835334443411089276193856866185225595548049257111444032380333621856708943753935362068880836192406651620508382579507568226668400122593801176304488089705641285399776618797634115856405549030653124996204935697371057226852554606423271454900024046867608482794915943851289992336160506765698109045155413281636434521600311664609388077213338957556696405223056949756286605290191687980928610044553493157567656702399832582291608565170987274435795829353978718680850404393090193962040048029868575039244301165899661737819064612166711674528662430694697532714778410872263906529995779621842319235468885497463311358909413053047944986740075626753686079421375367221020771189950521111259336125511077082397046187694011050584473606818970641744464652599495192522671043272400632349932884232322589894839338114548685350332292985302878452622388939384457919106226293067772273121311702116395468147623758354508284699695659650158197607021385002084503476066839495345862698217674665086468702636223574489562444757096430816509684126119362708277674623131488122507790840433185486971800049269895948957715187970984283703143234016362802641005824446553200549680618643568678246367916140190254032710994153272087314664539986818692855978505737435443104490777407469188342556428969805622754932922434111316720319579139671719303452685159169534514677555688030528892708340135771354269338472881113549872751419709597731325632012372648502092588720296455474474131090154764404605931629075899951702791068843723109876470751909721287903257373567506685550973319706926318745403206924292845029963057616918701337734154518361615033411323925305386612831213099422258061077865449454285948976148325186355462785846735646962643546624397997885281519271477580139428605716086738878118875298995747252901564810291185076930281957545680440262313063769802038423822066339858392697606015478921276853672514574927675405823062601120618700560819404553444686423414741381359160596992553651928703696412393201425315097271484640346990329585591847132839419811498952277349828457433387650983759176943894097765213952466527434054218017436180423796856967641450247449187962701875603083780222674598345885622554328736251322646508623849588447135802751109204402025223823074542501445677713388502406172576553062127738191119155299164905543294083470530444220664355978766255391511434630481053492620451511331462673435920240495281020534286749692938128225300440694157072752838595358790728252602819613450500513085311423944580978283006309038653316320019962498537456838396605961750468607650400735672996885517691248791032529259946985253637710374148151121807533648515792614662242830874770385965122740951907537926738520849739958386590733452305134894749637026184402943151649244412552930101881806223818995316938655882346403142293190800805085467938630254356112806539971864666603806112806981213027287752001603376434943107740333759364688863319311385376111742946391544036462335381958368441553234845098406659585615443303377166060824574600354038482653524629663646165504522663011513762452243295985455660955406202912253977428760797858538372304906392172864705089450578151848889628318507034070032207501486551678299262696609507678138493776444938317287135721761155250150371529365483371981507936854488730094994489483748707700681319955593355985534513641661440949522994724204417728959860807934671110289553781875526503462361255413305265504180679415159089076483611863661823929808588497533770630837861409108527569912487119196489358665091769299323155194959704006035519247201160565128320416867675392751490237513422907908562147241983726338516968900059707105958653852266842790199768103059866915538974039635404951540021526296784839504110457315042541635114329090790856475491371990535892840104771927050170752110021708916445744883990036869055893872143986354067989388628567097030317920200616828960256478005345574565286193969688510114409103935426897211573388146545442535155519497112430213242799445517763849289295577225844867133301932926265700228044248042312583872456084974503338665119922066780965199345903566742437430008048416057201248427942193111702177038761572775509852891262274496999102769975339818471384598390290217670969308900941641949715133531329241926087198776647164434910024869441506514605306108033228510356383300053723310688127977269598473872892414838879723369547951589778629577887214084489985944248912503332391213872383870819186999546521608644471131507014451918141852057876879459049084932219589100257268980252841687310611587382225505390072429129485200054567942828733868951519625796668985518037245057619210745621197823448248695839993031736921711545598288204094514935994690591356551230783827750754266889240151575927538618073007562415912855588939972867215988755207158939358603731022085838076997962258365834518331206123896776306176352806262106139793011295937319810952610312920388176937974567757578864025452816211818826190455816907057099365674196009136347780368905931544642622427902978280976203123042200347441486823528573071862115469005195506890619987141337456785347358122807040697683694895136274566805242524124352628707262589063618817471952725751098460518878891865024153594806672425485210252948482769119339300743966327469387339034341273199018336607482484893871085487078688910224524136524760780512855937790631438634577028501994889047037048086067718303856297040092018875141074005945364478636806894965173032056582370769215321432111085506927729702764503435455664310357875524850035972225328592323418661411105540033525378775851686749700066097068178709273588636105596151905599279429012487500894979401867939293937145266473989017456759184058212577302344302082136957215180450180814007601385482095766990013368172310484926112666299305987694745208498479356785700190049884791247852608208389081497379413594637812432519787874063099722348477873601725220203022973141971586546242742008222909193324354502282705747062627361716280862990924844949941399283904320754915242035008462287961128581817225575889234713395497458609052791763598439652618921522694783919464793431719696117601218741203068124063538771767020462046524960224110978018283758392656542380226902804605953994289748204023730239065739573103270897084322007597137705906090542026258899124886268103871828924470168538439537173889826351039341076754268454437056350769608349788202889960781430632377038988089320332653988657355800867154087965961342508345181138104985523215740233218495208139650066760098168394133414497852072655917670762591798228016028882113945692176646017409561004905512374465675241887164855998583831810385211770059445043122224387294364832369467558704069636584843564024325588807921539964166481887968341054086613471181814066553260473849924749957765365206156170330150566834903272962230046225210065196109068202992698283272275612304206414158648149586529499175471584270589215914757527846285446812049220265736387712420989564212458852335002551041149012021031899999521976962267568883076938364278978509927889488916639867675489620490895181096447044914279850631508123877462583038564817186476943873532376119987038455646081075678042745919691788349968063312807527884876652143891181743287795142541936609122154709036371111183872339167446113401222206164266112682457064467820955680439107212720704610351071201691175413750195021336290616138816389576141278693939579137240197744222840777000707192445145394021205207523901503001867424296344186109310624191233571697673535764920889058441386115830294263173639612496461019995763674682317986778375949982502571321753708849640766802945062108012970395194991205412203261584599267938576146429093133340857337649547674437228473079237071849593053399639934497452874673567754843691966102103228959418355667319739928622647669232135206606882886590523153161248256285191268329216418011096351137945779341109687165587064015501999969311792946406732553966726626665099438040029343954805865586936420429037039889230147668100803091732192308839908963088718735047567021933605523646419450184012800150163752215522311522667892159956440755918837957761236363626786293817523942770861391979886738555463851736170860116081936021400011851151039421846405906398664396908166551632444294368912048521658556588120286085855012726731863891265830519335462225377040522987529855369453800221357954765300211714561878935508302535933287774656775938639885560082527238840289747459206480247327828663558725242783043682575997323979302336805967450399020824748109998432949034816835973635914657787653549708174004403917882725777830071740343082695596851604359023606797267051130608697311867296446893504198247358047591520146427295902176830130383616267715729061080638113249689952315604713695947865012584970825492185514804697084054203120844866106348026615978578738427880825986597958687236424308033956711424295334110685076814468280143339758207191438278960532663347060090364507107079828833382038084840066037220595705677492901332961270999612367411616192391740174823755654714220682523532211606932574343622199982610030496172527157533070438923769459939066803367989163789853315869293174270621645756652588416935682506107426744120292452598862737045879867916006905271644001287481882224734417990600219743871845515933435190425931929478181356910031312452116086670811626247355704292559047207074671263569010932224155105403525182693620039119532641418194887641323994622298745232434582206838633622697791191865334644294589156565418612837571771788840493097715352431053148162334032019549141428692784888647254530031455148282039217574372141206840105371215055424323754394904458483307568191057127374804955848082216553287482628057363057387629581758915891931433632035997834608790698681272331134935998945612397372660791421884431188614608194517863303380078955363571195443558959046476529389574544744728508428330407387639860786650635786676331343272702906299967275502706167846652113622264518634618940184948629866250404809883228466238741920117815592050604992095080869434517802405574167477637110754824016104027122324308438782711582792216852765350042649184347954697661233767098795748192246046627040744009466719927291894829869297317145421993452073426025775120717388282176090843364639784368719006693819378561156295925440654121871549115602315787575515768682974448237603834146520706839771133648313646974810420030423968174353236584263030918210317685648267043584396276216362777205013161437364651399984756800345281507123702312822827819317027776511213838362953952929476065274066451726180750187675447554031709781075198520007674165637379751901973957598413966064937516313746387160285356555825382780122973403672395247107249855803405362166519126671149725877582941473946096027884060461688214076620343879907825210201630884658100745530055278014995119764296127410489596526104725990725780459775848848384744077343771926756843500727543811503278364603430713334409940386938434971618644476100592549001868981145361918665191109832639646519306125470243170928842664041753531058395242614897786864200822040702520744980948450933783491195732415787904034054298771426393457472787564552634688220821564437806652747332643117198367405686913340965255473625985433923547760821326507674456269708728097294548778164100325617277710623319448985533515669712753403090350745267422233566044461954838776776217582667849860581563065847077102619559146481889700089561486200410880801946264247374123936933463754586741449919796255908448382469303211515305235452759818189897827384766973080129919302365909794667423798676871791499569573060730803048324258028994810728592198065912482013606857875547678916133431563953058546018973440591255800411162264998607826543811577179771987489780248314333306269392274701471583955809495855941978067375933436369905884106735941592926090815833460089392854347237777841175043944451429737180009637598053717999009382376344833344968174138013938159764432555513404759129905917150787597545580354650812408817672997947828763635815625837723027659314454259111360052699461367293134161154223112687896260001128956038948986751278604322831096466208259234182544663979120803561191489987959621730842788082678491532835086745974465588098969492912001469316416645575392176761915076353187154865599220356095156599354374899333965006473549536922856368031956388934784724421395077652483396599219981404198740534482242462075491558574948759861716130113489269834031858110552166069504681789620179601151476588225784965802421632016603294241074841084104997417316700480435034439267365849698045848287487092216263263506449783052836099545138587014181272711936030531070957349174390638036753557832122987693128825197921263638096061589566310822042450413068724937144142075631960754439593867280545437299083323230221985399995212080327971017534899678110683195614846361530652441390808710557215668195648644864792958175384604227820837295435570970175704409600229131394060785800962017507577979119878582504920968380568793648973469214391336534290782202227424857228414189835157426716452059577469892092248942125672640510257930772664324124066680515248871742410246678629797027843533466326122462809346733702045599230855331278292761429863752828702001098787277908325525137666590944351293887383541865572667830829085210495468099725250895951166223060937918926691409463707352463524714298656843686840370545917495186581972534732992521189697355339041208550650829853526843125368171846021263516559422797057010652425466792040416500364370977293118074464860094153092996018431797121460691843066359052810340425927193933609903530626500367594987222877588614533437019462771523131321724594298045212283249071075727029420933355948891547837438251558015719528404355460780526577598658309728231225518903648794853831354198726692320226738844966766365364952820041364208176432983045246849304006151100622410741445440335287268368408719958983959511430981552889751093285267656536216685310643748882033408561431955064431432288245363909952207652597605113352525070279414634785884200823458555917017505123820714642395204122045988072740160781165152397324229751191974485951136481497237931188115645592890863986008936382294929129702972930034324539932530134446438337391003796293950285245446161484734105419377354293525204599405394976208764118159025057159566389962928628423086408287076089556499021990752270019622249336760913735502635958826813390361904312990057622226412385998325898328110523648877290681048930612033315102368655551574693249993678624631058941529964277470374329064771224396086292594275586208688251708275107409577448155575901657962580344092339855690679750890013248778041668013210213459986176485468815413099636145740122781553736486522934608122288021559029190228826234197531385367196244599946266673747980776246322563012579804616351619058928656301225348832141452554848050011700685368227228979195168063531138416827368339465934564731983233943181204184942557990907214623935578172727150995043918607754413925196929405999262815820988326059299606666999125465189407738049732222227511123417926030018848932379312740415071204427311952609873845191405452794384738560481140926403137777280368681339855498875904915800668695379185321041617973566563443208967985634977403404605508275632337321251945148576648686596071650169032332039405074481625335532655151406712602811365084307057810996561706772414882500930883230829150205280172825071010314467265880173404014654253190963831534463747938766321472118800625589163119898142895671205560118226154473149544414307471555342306799884678021839067738124008057456873497521533925260183988592806779803709630967377295025666645137190139157530834640035419693631229715145249415025984235304036327741992003114832779267455768643368918780341557129278232862519195568467842613076346616031020004273163581199316847100320722908023112197552929540720192352895958066823477657059809018272574149916773005450249771853171229433658046451396948633378511191389149595644934668923798949809477165970305542776924813754218424460680842803656901551734459310433119265331424714748869909686344622679307494402726034107725519809706977585530806974984222088909939102957383517041084538062416276076434802454874371766440303170797725141525230678403237565696652968953931506237236609220086896940279725615627471863633767728749646539120542987123345992551367492993473960072783565631156273566753624454964621355805354444227780308841146490788186124001477600197294951878033602046113790221094212644577738468800221003258031166208364866609218919831873431867663635458980782239726829076914097435513281385391867304897351150280236927572541477949328774214766020680617214876848740832949813915843896489269006548674806500903239407367904787105799924640470130163113803497939231216438849422159636593684398116600148968792984344657462241934846427165557165468266923513359212262102288738428109749533154673426466814359816055223667523139864417951690402722216818645119139224357891061981578148711131392458252078331604731502610887811493528106590424709483110847768201254467389096499418002722778793080506177730277170873721932666550278047184033040583474460955370537078195264411508653495447315220244447775197425142557422871079653685960997442361367681829708706658836533197766964509748414539347295511801703286287108096857460537422973837166001647060257610733364053859578160269894127580815689398272368487407420934481077690297081630072497633114139558597156189452742473108917822755568190010231676660243819287734679846447283469236733832885199993154782273848943378825602404154620008559932707414421468046640315139432330549661754731805559802975192014249085320201369390543554195546597236880755607976021767779125166903139419454472768612643499819560413930340618809846375838693595577934762038432246728933306726039404351149273467582192801678965237102897408434889030244222573408983829571585149567805549040139004782366565589094771269817706129295115979634056630521392829692401302124882807533771808580118752836835306746571840685478711194213553580458819190004765695776179166953265899668804292511300127477191471283509415625048569102579604577654680182281496263451620976858953367890086498281612232121395061929186186080275478363112525003296233394710375956147164225272734803002286801637766254889772604658022779294297989388096148597353858890658483229108445823370629577309884959520640273033870845165206419647390846454269176838412271840194192775809499329398827387158160016501716823640025073122919720820980071458701667977904426574442563787053213928931356974985661751976981554558065730845544549159617026543481214159010024433117631918798526070833946615893967738097006646929679457277623710098022573944923030602114920721314057251993455773936917399806133733152816450849006260617879715122353637834286500921288807319714640003431039055730587094869102413201947686468041916668907966547748865140903000556297159722949467539047891182869649675507327113556983906249324093984217738066694430120574112503014752125481917300361963599073058169262739449313355048464636003558601630399863457118617945918495674198811263838120459240061651739675218128158628442017061324179265228946101006442484177382140923876253360307727242746291970298262037119904001082390550333472356911208720002719141632043857589208484648174409377924950211536534121559356896975709206683175055855799997687741210062066512653438982097812804185743509915463342242886588644808971066202987404304950251094460710076758210173201275070084429532149925676027268965309739476435838656661773558691018684050168206679659090156208348576801898821719767584661275198030763968722880594856392848915976351905234647341100421550127709296715543948557206380163845722271233832544420435942917582647116887518342262503051903299097060822535824423988144903095630597499004901429732709681739674175772134807616836807439634324723702681306827345472658952990039562012753057749631755602201665167529235874501318631646321376190645343652154115578048587570326145916799391216083630059161060533108895281377526074855306023199488589876772918082959901458472518476926653318364022930491108298226919101662701701995049375827249897754067518468419269084505399526853385737869325583002526500642846882618061688327367756352349871245862110584753629104894428080635296116187971455326183142012613243841167357896068990949044270951041570981768409302303442391826206699025656545575835743049824661329978841953760991823632676078803299396737386506886264878326576867493970826218219433226168215261903699567125694731169556531886126631320510045088411589184549486291951853217057648307294261109328372691124098517789340171539342646383607554623400624052524592623912450459690297205637011806924367208755108800476378046319997747323801113159820756237991059363897593715669454782717169866688571671011244241821765178888619255946031698799109137219339444045544251381988852207375286739961911257424135443728383983867292557230970771457670929794933947588914193515059636843619884184623260560038610359677067604491029483106916445419732675295940663629656305534481048851609561073423433656421478613749563482557183201384732732980524024218363427997545524689988404862092801102263955211138528625881368293403606236934482366986601568034898843251949683623448880260395181967516173163752246856010799199218846885643900987418945069254430403728454545832564434563599402872263304041617569244693723375599151121864393896623440695052254077687417554060053002160017935736758621432451097354552799159303410101258548641230582867802137900028641267068902639467375872356725066787904555226405511158381611480412116828870768896788287586140769894995936273151181156299435293232539240646588498673273737282822248540567815149106495173510904418860144081598006703825481231144233557962705607501501461267098068970361697281144429556954283606367005712411900247416147638508325203969961822931306548669729074523397278659177762426775218382594634042950954606401913082619720008725898268390212762640523905744089259305983197872094954323622666002789553468398213794403270120644600693105600330723614110195623091943176435176869406422574856057973191601128269754342700010299619171107603801673232419893578854066929695000506987620453306804642815459378796115093316402880887296113415952215992119405996199325023790947019106227072678891637449831679707486252298502990051973512496409900122956674279271288453198878578462421910971592211421767991308719321919842035641707984083142545660758699148389415215520648727502631430248990937518172925017124282723318464317192664136202503106801285338758683336147980375588705297376606105264454267767506555428309683498553311240362170575121354974809236307304560368672938840965535829673456833560812909793607193408225535571841858568865447912447769526853567300167092042969871875206503145481995980093039084687650944252511690319641106209930567959781302252571705305640364212291437368851799375683667465374769688508458506452868644894449186769918831280055463437397696639520188036348586424733466865731638625312947260398181976276466284480299021218891675664042548785735955802767017754730993772041568565100619676974034763456681832073601519037802467287530365020479071120752579494748791225322974961346607848789490850264199183515619039855014232815176159285464740285041011234710861494646858862360764493178943961951970500411247244023933828208515299451266814327161104573501050755409988255274148604769363322239907244011261184411922635075642572235487719043941012769495472077064987902069548912983058611023869263975237259137651821793767003663685622945272751822851534400677207991441602901970431065309405163434389036072108508557198903363190698572570450135894357928632788989369175049575301649581069852261404151457508585626447193717780312913952907567347104364850327080690648926237086816632679927620927411003510123160728252657482511646639300977799133182825871550145067078889859348573076591399379068737410627881114541556306134019720955341883319368659424520762612549548128132416391595009381575390433252905058438933970552199369619392587794658731429461416241721387765578130860891272365466515405231446168781355469678601683636671217741476238779821785971159461218065267330890556010214658467836239443595068601001125897559306982519607545236752654902813426971341495042367577758171115826124764367168089355138533627913996291713914347334090543394082016492623801452263147417708655135048463322043437024821287303198021189589189643254700733425958780654536681264288757039281518624389045250639922360468614383944838999171881598103935988023333101389763546097746678957175717357229956175472736926116114317917895356100496686776049417557216191921902408108990576068887431749993540049901717613494109597564819753680208455653993256301202540279074252561715864375114169729719744070627055203845830620265926037864735110554523776442596061226159695752763237232303024397234383232363188860296114247637751603324057826909309773471022394686135223344639888870176834670865448042349231764259602781131518880483433390156229382204331392894821345757891998009691880392174427253821148142668686245441343103984774692671274850585554517166370076664574523682770778752836986730330424762728855936179779387735134025888453805267257065600493730892447786531293915442943070899796329727709219265189559503575077294851588557840352170626684637522621637201046542757220761063084177328354282856160879038418458736497098477564539353133425102701103723963789665046051202728056752723363137289335399684663022949421515497583145781777529725887810203397674040463339406255358520239181393826726155702512496727419279073051535595219413994167952720665590885398148031219011656064709517516900474621803734328437094007798835547820275119672596581366004231625122824045270730670087159160030417495702437034398307182651463463766007215441154577366576514864207104205015931473215872879368818782315111464804167788534905868643386119586014110616868165307860045995750558199011383922604590419450432960607050457357066335712530920592397270027412519091485568733364565277380543576337359691112420194155498977158882053989504009662281408418750798108833280909791909847526698118613740073143563417361051476452561644480994200320252423889574036655092300730271227863029323189086297547872696433647610115845011565921871797306819636267626910031985099243017041492532776761800333904608400540959393008842310971937253979519011250559664562019462288692833568437718670879814503661934619882975942110803301926830559482313380506835086062301879805616792353480430842374177718101199554988923482582044793470473427114789725459718064692765087805786750250561457760110578859295552825074800936080130176481700743027284252870622772880781099721448555400110026932808782083846788742520160210066822841975795950431483414867310894337077701746090435484026803556827450430627839048203424546817335128866397462975894852956752675006787191661827752854690345537266547136528020683278418205588541553262122739998295438222707853920733507688925295028742826326716824822413108544237280245689807789959432585964196687320059038437928798829212167364076759086487745329755531275136162148855318394649414114151886187200847509601860035444441140313215773978350141000187779267294568566927981389316118721201272135647930686063707118174254886206798513236916176556458757965620434441786912222365815283275104547855666915624251503802463658576539705165868857546880059823192590994653667792910624976141001541371671081459758558352200140014453380148128402270766900568634974377523894700321978728410076350180032587562104852650738975665395528686403557665263508166441099310955843717254288025486121314531282796538691475969500789655416343833714885527811248858288703214383991754215419037379442069771201316609920516927795751881065863805595055282215568882418851938100292728705503138011802351577139172852295070059991458705164358836055234079602166837558298227558609567853032702395963504178875948391999927179248582714535853698559990144388848783698405880169938999975819494131554465338079473634576505313242353047352687517601855544011629354151715970601131119438897155045831674613785946304088230154447917101422257692744154301224338010084553365064310186446308230117098666282735777386718898642981460099939749296775137453923094287323725300417507226272005776355560229089294210498624777187156330012880203351365581621732963832361386728145129956689535428638281106186434482081061666292930488849147246362323806138441875080110868654446477760225413788542010487867221595909743906248802431267586354478913150122646204234511091466716185421907677295407046879528740549353004365420671359685686219070752363850424280236012291955928039736322188492664056605623372701160205445848809013056035581515557409249546642972054918995939783712470197745225375804125043318025411967587660306713130479864225965979819944098421554087534673538461867405715850247406905384447316089087307030682683709865686217022529512474414426336155023922547623103527803592263669626826703823824204291111562070321406908605287432006517730979017177288447017845564252747396312967901055790893862920035745630066722221731280644430003885438958509020006759822383922832300610013632277508056911185112041694931631313963372251604047830635592652700052738303123146115254107141887342095117084743908872046718735457815740408207709015941093381803736985215403771049063708445631972558573365073789236545104426149846947916156069009766368284934188143214275215951395081793538139393578081119987106716832154484369359730185164306406587685952898587460580331690604586583285088577572584583735462474899244479260171201907728451754172695592304970761916136125646801699804990425907428685814886867463737288595699460499883534302178995934143406275112807671245065594513166720627648673116767389678757548883840879004616280886787851146230432700294876905751318781083369934602544056361280850781691369518969311172193282614843776349102368446846222946171246160050167157782124401741971354713349057359858823603202054972386950948085603895694193175576828018926435611650994485967769359439319478683394889055537574225640142263122560108006823897221328750836809349374855622629414356562680774159979256565510151056038378608682224730845169043047829908880518653642148964351860014392033441151013629531252181858531253406889124496613295236638962084204593628339870066281394753152536247006867439683857879282425425140502491566869165959656368525457179835232768162878571015302063616619157261324819777740780094305116463777935240549184943560759065704470814716071156027025817687145907512983525478361086342890987016131653975051949670783539489696471808161885319060424908715880780578726173160566107400849325679342804207651376472134456490402677356055364376914857793922181387869981417147718581589618787226533511621551135323712269237990443728116119903435483398756521486833704587567069049832681362742181919366607131608724447155135153878432824496020523630832072036213839786703002620026196475317225197330505874149323503176383151322746413961155501992306963301726310425041436718577197021968714076246153861698642000604644333516880847939013974286888237815363378452108576990026719915108360506288617776301192184206335432411363015416742225831192894014450027094300344712913178822605830478959196256259163728714229764138301524899026533712142691699267511920347723949302436738240278004490543165481619349702545238511362784891226772463196290105608708098710820322654611323678606433915026307256152808946967950589163453146808665837105121346961155504786128296709868949338886705026709089767876597183183007602318102181267281787714323006058675507587483467527737187103917105877711661708373349390296966734112066069577639312438926084565862241851887551805012410765354608587061113617290363958672789461065098181942344820418337602141704564564152736056504184524839485352688183217979284767021229684454556425242829340103057094992943541460177694668497918319977435706839906755310037905404530526376892363660122980728076651008311644273146919710467609033909364913721665837455646384342765903553233715208649606069339491634865243261642744686847552911169488384905878818498769296270617781890101169668664565809766716171237368032012879115013615184209365945473878785509741940812593605552757080232653216099322928491145746152117117092313403477426131031696115142174464066746509552210181124345430215291623493857414878433692367604896973416695139811246818840034369522892293151753141692044701484930766766866881536351262352478276122963136786744669093635416969002706070211477160527686800429148492933161705654907095635793692864230475802710235532617769928353737418324586790233418957481733472711190858995227062702320204719941679929006854320642652931338695759149057293264994924352058706462760966006173164064719355032249636652654309455118683854721620476593709475317120481400233273236736408714888204677441107921188308851883697480830417646796215439664183614914508705759998105746790425232253126702727876576757783714170461614813797816551989762959220309340625066364780248930380555902701923159419242800294056919933571551173894986087881978295613977360766200911450288945537876383099619529192013541204425389864931514350339651636740326148664314600542488080101108646054041732685526444708526699772194760233549655725843835392055573235688232982004360144925289922171215143744376485999642498214997950435439569571525278984962007855974327416980481740331473932195951391247504338390599692121082570497906751156701549955816408910464102143418704373170989826608730833094835721680974263509282704389009015413855686310187630026354414194122857840700402349985271143823032337254708401353618108237502178556526088052458714592918175440875286032675269785708147388109115559775373347302341977676159019132953282905560018412253415994273787211461359033380259087272741686203891075870736493241315415897905706039371131266853242858147242963775690159641616397792853988718462745867497895794070849632067812798942137404052092574195243757559239256261985049601181112635684933670376792749821214765463062968207411220025448630434382259282980215662405136599287918221410448199498948986109692945462658931654155962149825095756647097524807777779073802875700434889071728005714125538187151530604639325609862827216044339385611306652752474775192909664759996664180058261128317937160475385339991381690736701856689973496379915187685687873591643908560016249290300940127917898303851752952766300159074943549467865425132626810371386736864172798480155323967367421354666332122807404357129187230196817505493604203208001952107395555841676995751622478355009962234105602334092773006884513282437616715028515704552573861293248670326844531700300086223393629067224023415261617970553369437722586720432146540644575806977062791611098235349910785254013160926938371960270293827138994332687784340579886587594222698254250641534104301764185239656801264816319240809571399057264002416079857818613176227452983153275935026760867860879106512825728918588118446045549879734355353278099392033060754794883612792076466934372141429661999321358248765645413653971944013548804315570354770157929357926921291050295584036556374915336602697718318580571948532760721238668379140734667126379390973540900320974614497361220835155339629781036434258853686585499967221911930665700285478801112260022529633455022561159269060984707103253978456061920043995862794024331031042437473730046451119718603063018682490012303426848643104892669137269089044166546495678894933013398266579151301910470714786920536336258668998278612209795694372474307082035347297900943405592617974713302653151406030489197957083805003960099139826277377982705578305120136542621629896263928374117381287332359190066575781378733681862809926320261081463489964937524947957617929235594698039869132595427066294325802734768956876316178902479159395356216546730954734807333514029084644256330374796964392444414741616188241472307116443580085423320806654117956875744446457439847049875477185670566328074118258100870517476398326646023691616134482178502066162402257855972147410830249046287406213338017662618898295811251637754842357230862949289986820196883921107757190454899662919631890983165831542170175994417833584450968080457516563258832557702559784399117715363344969315120667405456593716490630697303199223756354446809883812396673819723585753387921654369492156812143154332766905991381446611409497450228225881013605577642839276345568149057522329705750482345834528163655359589749102197932915931196898611229112199773189076032863834570953767406915476292679285169323319904367832604489905143525565439382504078580513923405771496467350320548416661756978779249152712921031850057122755249061077687518760539192784654606396993161295613575558785220252184884675164742275893277961216736640546973623225709106403542711660774817375095495872956729460459135719820091901251663343770591883756261917667860136135780247353577990574950003437561022416388957548526401146107807119813198203685565913671438514834928062849590694140749471759201768265664131494716666761859482139738648652041048813764361208347246951337315851966912438340932652061230290885484356301048306022880654880111078172880340988625140044142611657366960876650353120657776471966932017229189244188330312912554904935260770336476019614057589525469287629716993838225937662903970198418361017493694587761705357469050641198357035813811562984957388729841548273741620279878613963122852685113709654267774205697316709961074345495934486739837397277967859790905989527809917938696225667994961213726890755578585452936138782210055991885656478946962922943230645154348240257769906202047112211443338055790820541830019837798047899852548958803526705049743188921063878650437612174632910276324684285663240035601951939807896727933088711463531309595410690266522085980790242034164881150838687973317380496924695510856761535203137595483483529966235840220220741244086260910501135052093915407634312576346771730982636557347393483384286494978016003926124241361965760508488731453669705551293878514982923200517824707321170477496519806875010473901516142248731620134244542227620521801647644564881316635288662699490487681658139746439617624005137861882603733795852163561716675071173343843979267804322530158284634900390415576937115816469968523351423373331561493310899631238243381629228482267514640321816117199374590524125505849006074671966226465288690913305124033529750768322893814568538615563776199622485356530621613881577753311932451779814281190917092596784589176197111737930397428124513894432578975065957337093191121338982137410900489231881488264866305806610464457286259229596781447647808010475228955143793937936885013961607334835497152164632314992771276452184893605478704440086552943110735750504780338839096024100528856674868419758939104447304808405276607053383499091034701870047960104116333521030080958409296216503436611068735671056890592756118992525953665443135650891183858305829550948624666238881348686175334804935682119896152753304694217388286368242388399264135975250573075036505982607176013030098442249401463360855638673570860836899090725304134881230461005015990821616370688095105363361873655878045683563677624216370122817160948804429578586869731013755653957089968624979709374949726253007425646775291420467441655107951077291378694088544960563618442533034595910838882320705781959901770101572281355857275015037907353955296037706059351466291482605358293467478904592399012808476551126148614867710911578556737882734315678934709611527945502527723293819338945269445844765858345866329880682630189091008817767027089090467555105583719805629583821016956315929680917786828930443528154278533706609972332141823802946129433803926417869079982295631457087030019695633916676940568104215914622655628971709305145895342326932471024259392326627247418432477178297376164377503289579249318474236428681185591741973770604285624402987268083649360406175583421366150141343742109069773694023083296461270289367155663041981915785522886309576582579819740084250796331474438610016280001284695468463990406160098233684783992753108522406801786727819590686774832463214268480039500273651807839557980021690586763443315553121831540129952430901509848217846443107953890566401555009486053504274725832793628527245840268611669584504714024740619941214627233627371728677325091177181028548500580377799194682638964124614363798265834790001673590900467328808096553886547372039200185631386361808968636433505279253123495688602718518343948324410445250483594593401867337538305176910341840225285853254277455944490144609802664705782395518015448841159017385990766410949929690537398619091582334178139649112184831195132441347956683806380532101399099398332660689240834749569794906225889870661510188144720490536781795846435832489451252522517646117055068836519112145221526187420515201626903024627671445035942417108856614675696067677021131199113599671124774405298332471027022355317473717577951581145487341004733680084833628913841549257828718209742162491424826292531907607311095639067583950096985239348449566235873584020283586110972966931559703506799076151516643852564333848620912482238507843742036249263476510388856943329932323077733695524808229460127131231634305660285306343418729886687273736870997766019842086306695637981792617554187737553862459343887371057656537833848271973747717616716718342717744908545769587375285437675365412454399816293216207606093779062258771678248732398604120226291183777524711557240791515920535823589794963088674114300728531568034160297161217287534513681644150225981041322263086878801364550913174812607720625641210794584146950539983782334815608881446006765825478573777444141083296957357676925556587896186200648834589179422795492602197225966451349043101416457547927489806546382951647992349383232893700464542790744014259631541838813130480393770468744154730694069212852008974161323782865288481693440405350881291190675666128398795853651917300022377176369420256991645240121864030750182029375579798303441360085265281630987331867984802142549513855286372139438702264535576034059296260444721047827309577430566673439203886564334234974558930361686188536211076387955628839515484579012152863703310110252770410624581124549570796265135390066478212941009256671517088670654856560062780991006395431478173759131343994446301512887582613158866901958406726018768799418461171430652210025202722633913267806002095755642146824228462014596573063392760427855011233212174250634004864575642313876927778795455543972249075075147384758699396554222874841383657642285069041684714097691582804568989777163073129116227497541759257814779887035662936732263425700398097061893865096237355564888456934340049492740335120504215078370916085680562346423239167022467411685556730012803050049607298379901342090504335233702555646618903485604162016179653117213822959055668518607211233056930447227318389169284805797725570353593883924454885313279532411670443087169914343888040323712900543465417841048443464655378370580368570264248153925118043009259269081495879035671057448337054366969363724171845770552712013953864044289309226654095687738548532805613662447089343146862026851415610101159201835388253844572149362818606162289272650401026948766352436976236608862674011796614730751304570402667154125494477885022296822871959768276827210870455379580571375420008957230704544002889458031356053141389603474428201450338076922709514274805678188091574801807303553287583826299446881241374987906339141976203525701017371013653154835239793673548474030362798624985339217024363157144511177342630876544934073046140494168294493418479464517900144479782141611016854051115545420501557496800283974858955239628275630534136617895817264173557941227874816755999572552784797957363641834826155021910970670410648915319273637052761038371882291111968114544876823115065758466709274468489434418768540885250157475186225763445189392879469423896278188676814358341501832579055267005220590507441738356373985833940276254184044018551160705901092131089852975732325613466978730820568617165049054247044499982689809647861615747953830301162231027802951479637881990400153858983280706995195471931146017254098843101309025891075447168033511198058273139291054131389910363494509470064046785228084378473646536333225529688890275001853905658652323714448411919606091687988788269692299928942727305409392150549504603691742940674439607563600909228602374836169524240162670410822585838349033649130582730661422153552398262443614641604269117895794813670657430076606583270590655864730137924872739007878977790583846635332616867596286958367942007194034124453834569882848832653243346679274388751864571803251976065630614355144715456991016827204248852636668050234798365990382943151428149849117625383736993231006909154432866663584549364944506131764877023362191359277569676955831175483846454175669175219480183694675730914814645885513268357314138770279861365333902121156698870035644755393648897673697438772944286663369166088754157540089877205017222491511360320167983844042544904296278604063210851209792288972120392961401816365751490975233286527810264903599292654154240531790376311562141786792942359611638392022670400849069311004477774249189735326572001760336128326086945398182116119878068626206218234487436646847457573156992027524813270654336956789760421090621795890079681336036594769019968310280380324330829214077005346638613696210919001937500176610995685444188286612095594445421157825403010385949190182982134721741876674257893354191674189125841270338717002589256599031052744469735375794228568649530326983343614739190772034211714247889524680126434050783594640010244557148844325264639800197455444500145596846205113638325419853897032756764858089973956029195752392333404815180227571712596362980905825817328942965249654825633985647858956261111132452539843008416035455578926581995920042174177318875470270398888899446695557384708530498428820590885142109591241700920962209625163310752154538698954815411240508020861752200002608285824657606735367310840169027871040151341778153846109279183001613055524065577063192538215956587224344821084387428999059489213602737145468104599272456021751601454645895452973969268238211683526572097651619779395403835053790499202024320644720453470464030469431047766679450328683769394564313335771837720240352110296787213701969991325147298224181327409808755868382768422310429590845004552493065109086871468629015854697729456881802895427714851835214773289354143701461267671826203977729315630935638742581977886604094314259838367839048155844269592349003430177291723926669177385797568440757213887007153581634692884015127020957389446550255375941291263410613204174559469996497872991520637546654673986096629809356822881244759841982866801207078792682655758595210878177770492368835229677588438172925627271730619726975205365749561810386889304139055142649375587479104650628104806379640386699939826245627410177825814001029645303610614524875574218129390491298059334959323200248416541796743156556701232186425918277886992607373523191739059432434124585811864871491207350282464150638846029659564270432111208265953877927232461386172983720060269351034145262488008955746202548052190498599918690439667431581678992684427142515732379828315174524821207525468211024876246291042529808687401463885399612698079551254174233538355390782090805702126416532850662303496174102273494774294859414244466160658641088473592889586221056138800429058361792931300207220011544054142372690179992639668172941928299888562870145348324809576096145074847404143826636671504017107518205980503394958949833895319827819333337768255165647894974064044378020823469826834407743130742585459127996233090621490791176317311549980970351289555743095864717448406114931617291968697473660572939519192439966140773924849218273945794276354791396829386315326905419358367341093807701432352261512846132116309038650462547787982330457148253013469534768989673983115462696068272534465315917523771940415964420112019280644675426932756982898507679386758245159671902277553465064753045051837409757752506784475039991701245457996294056570225905587915680059910107020045487812257038199021829502965458697983406495373226076259716346803451617599100636245369209940506310041286962892306101779536413950556046084377102988366405514004482814873415344130124937832155565402146600905607519134713302899201605715798439865178306552462848079506550310348184709921867455967798357668299196957121130034337859487420032951570530798294647661085357735294431197829726622317662848358104893001088613684028600236622680046700587161557604764156220742111403271156140886062290090078973352633468816826003502028928942808570000769680151238904168402026271753368632635601195549717860521715924497636122555700874062410469177137311723305988940434264751376796561160722826280488097787045904046355003573466716523241563852654939526297553217254001606040025616434687804224611026045199304738469259937699695929598510251181392520106542087478473678886072641378135705136442764433636664957173198545020219115759653953030160555473601297709783044756107019831114978234900307196926089425804787766604191449415868201614754534436389725277099782710865773867797067525640622947374660475049851653287942653891408801588203268440468828298435307023761812663742535818910501159598285175917416900276898734744946858320213622767360718736329777437610637491284507894168702059903116429554817177164935876149466065091715026636956376812554768296441391898955104918672912818321403103250153471047367490530906603642434566477222301632501686308764239204394123774493492850275773784625261375178544150808663353967401259797707106767634734057080575520340874184893354606371227496875699453889060523548661304939492673221790450770223875635967249457738914136223962843070931597021013371188641566063499035633011608930159508060948790706533554173339611333027744935113811880957051075913493178624585304610956979674582685341893222266932522090833599474856573000047357321721294099882013680267695566887839532662283686392846239774016882967824597817880967331994419786605759279695280557226215627920377263125835186608697923158190240087055975956393897132637068129948557328853830361090775523159490469583233914466802961420104286671055974278058839555453393286320946286089069401105652030346698095510903355044942010986321143156983505317852963616932001528700362076899739419499389071042305980263002374395817317378856176053338826381691359242773415741819756491311428147705637091796457544191529199630413017294168647087076019597208201236042623091208962541946571816635183100992718697279277097121610815097900506532538335436233027082965861155103229187548382202869896275863468116219264613559037180093361605192454275916735175378832490960644132036417324195221635855489105138767815506277923971009691724234465020169394882684294128513939017530781196288534216519882086814343651264116330496453984958557626947946729010075792953270414899535852357191855883370765076588179910669331741658145096879554435583926697939201494303582641928707222067912453846229911991803805140779719196523646032163284970075830186005475181264676918730763308428484450723598765052832485392838058545623210482684525209332682233025672381225686319761421287417190177257107471039056208160221791620801508017109855105958673056289532258972680920925640371113339779324946262740316964828062062578403826123267109000679996628945315639045135785928236994039457451125265441989967354332429034882768776749820200262416929225845417545026366900669631136229318987502963112989151382851293975194470319442143306806025172623906705299411208706990933730706335205047575404934599978869898733613223911622938055780966691866479323404830358532234226912425259239102289834307604919353854306648538552743535785468219223154639964459978021480754091245230077294383524397682364661715418108406779116032260101031954888363452412542373606238269207291080672987384469187311771364809774000342278850185442296573133877879730888147631411505281909412593446890767560809651260705614222086253168907892747260637064820161326505256034729366081061324791072196027270616313659691324036493295313617783145761452895425241940993877323164906815572037082817710681483068083818659075159460727357191713644245493053627575488680588507012907871351925836532466267057306320901203795059448329414911357934765345274996476206111383874148405519519570212817335753636845366367893184162002575517262598406395513704148257309174812974239165850295101923012043594669112121279539606513120969948527324237329976977775809481601834238506122174094842631160164926251276296091389349951805456656867393510314542806079520048465585704061827364992347276649272891851913659712372367296204887040467246898544199335390697512974920581258302695783137203367031974055542083046432210298406770897107780852335402618122529539246471293617978809810979628232803207356133748131253710147781190904631127773619762486898515598751289778660942545258713791001696210099060693591716032534036004100240999961983119383192331436485542888025099571678227211054518245812028350305473557257476539391268104327593610534804202215754116498597072877290547519987183135147433321930902553567794734769915730565040576844879931908173748345047821374903678967746919817570966410021123455685575523286072025772988502785996302413134739846990272467950316168734681798732658735348722852029712738236351806825069246226140373701043448532279763088670785536922901532777596496360136672686974073127952894576329620555380056791645813037213824522044794632394071478473321401830162915057029593145506329296961405095426920039413636953750172141267630507431859842435879302504649157478021650056572900886531333843407614562214622131087701930505780671846024819487309807115307280335397626244867146294137925790053037160073201563430472496804395352842924314530023162353558669761778184224464952948583817231047715455517125002705789954076360563725078278036258127303447709077030097253634701242922171943332369265762650521002261117060312518434760443292875931649399274289894610015021069788585320182368244074111261281618474591376772884299338742386620200004922564924773687223387019514577578474844076563338953015841972931843131862563707001543462428707792852760711243414884952167535659595956328107718623700079818824696738598976645100173631259079708980382222414289576446596118749044994130422789221521653787510712100156767953678734083058763040633644248472061575640745597223031842189586562212729528864568060044727869133422069056689422642221633929549503188063386024101850273380979499682472264537986449869591686729260837577438330153759406736798265273161986787811097219587886920906561054932333971972174682196364218889317271194049983191723646284111423979351032422571590652787781741492615805657814610354441211264275971044778906360306259206442296428582186442208206371006722009879306922174678909772853787714189669145536742224137043183123528013176588408890447397209030883171429437401470833860698661290027165741969535829246052875492730095744275611707272954920216429538524823404597767371259803816145655766643404540085920729784718507337099739103152110675137076085959627427752450681486916434830633001325937016827402913950426188083514921601664680118054300377842204492260472274048043756897640574119031094410401173420385410452029243973862975883635406541508356289019868501759345970801328139645759263932589745996185059190069081745192926552896628534329279781344767612989733641611268186132545433456953493154563855849139227149995627551403552699855413651235569017348558191277106937430644882684775112544037873600491181209474199066942034407284783052816017604488915669924505538148309579736860797504800479522406577133090486923927562692818190650928504781755421930658482123769170065742015102692661015409942838850481529710125833420937356895637002079212226372825343058028415328696979543928936272726173033259035318091584048828322018049363750699879765342666515688611721574304307167845550414924909845403012379534697839338492200995884617553553613295953913652442683896048487966030797100797181151744388275918016030827058418669931398577165257514280830657129118248086895554152971835621678916924521717584615277990282127620791934224215065620663195218679435082949010475247417958356151334699756145110783637472360279784731707128402103166985747868949307261885354796419733095289065909918229949935806539601562054317701255579419606364368948949010989253155625472408631055023094344433842946844198965461452912445874346252349378706468855044840829285105650194538071551527279235229621447846340133112999828083996561343149292401567620430606162940226263164404774735738902708371508580868173806822355247651276632708640125286934339054915708349173727272604333055322557293879530804171292769506399236523119329349341723395276373852482638167880647978466942137232702566696572125841948488387778106906283612531975565631061558418575251401826941734545916047923607511275099430477679050422848508350649690001392397663814796992453573188781108266162129059590126797390482922435844100010682526631487408143322580488628156731272700838835015630684020476915978991479061599776409861519678376104032573128660732148221503697210160225535960234444543082691310979915614747075163896585556622458432922111082884069387448761297596179878019615413775189353281036421370386985950241259324274782605225855101907009380942518981542486219918833726115950938619120616190177811746863910659043921266083231853504827145098747422104775276729901649555007043945450912965981366326848384466972834739340888696137546047186313685115238760236595570523982014795436198030116971428280142477653394792150707144301264736897938644251330268990088083837087127657488945225632577957453926256804107165118514865279318127820775545236697368774254030131538375233405248085796749399118153318743450636401604220433685251283274105566110504615812638916160265397413159989269708631551730637328661310936683717687686106656097341584504687695894377844908301160797758882190014789036252004685236169434769704586333062386836867816692265622536044928675816819656181353509224536962108381794410525507499346833623319014368921737497665107345608359819324064641783204603686599285054615281470233266224549365619981165782159387286587468006564865271223623783992819681610832470272136731563256977195924347811507317576000401567244193639002448332717612968752523131865190763644550971911356852430809826334421479578168589665152283937802246992560519121848140236397626228189110471643174478452377394148591659894343994363380609788192366911699388353330550540793502490676074783313570281558711846029711785107697356483109144696593663894166715499973109343051871447031929739925543305533259636353482409807242491184398632036476794329716638944787154890783614952073400497531629527721579839240775353245508388224807421882859046094727604769096700581631420937734849480735381603480648773912598983027737410635226261093559865621978549145556495169888477220246420477076881306654835834246373934535410778139422017487047562650002724544329145052476608737946951841618618418800934211425764365693483165825062912702959864402000796187363617065175344757118805986982253467777382919085641867378848862769166422835023695791060248350288230496119325159009582563277697758205115278734134921871501683999023837531719724773308803414661527350638340087077403899372274093845765503090419812126190550374589813769594123466326698726582868961197067807828154047213488790047324217578368206548558167457907131185890741549464565074585149680819292203141221118120230804380119094697604324545027663020340272162290488707693882404943244926383290964559010001814296795891025882008232649207631353228071776251733794945479358740328811426619694980632648010597119931195550602574898692494426882829296010600326448121960261039411410809514268612122829736183497313246925527635931561114694797965650398031773152488845786210556655365221264445699617838609679140790319000347432965317215330798833431474815673437512870568694840401518064198843802671354482509155892496093043955740467603865442281191305904684292214361938555658806259304748970448229291749745768115331243043933872244575403986482310422173093004577620149507013933489848214511920334484156620144557730082120988906309244280071742160695914420599950258775004143903157060223050627229121542071167558315436186667891181342156824784472256090206936442380092661016309660800830826307848403933427138800793881804272856641140928993355471514203200580834961687045339099733581866805994146793434070100298451981956997588869467556615251629341532997150585481159211994393182093521676200486908011778312617313797526408714794307037209995822766642327440132509527036615163721281963138568356077714790790641006168908094748227580475500216029041116634858459309883217978227994175877310338186821747031733392729190377085149776226953766269310591095298095406471511886023602920151384764883431188140223792394936227092968859964381870758756392143673388639508416293440187609815383448624442061550146095469563305416668120946482816073555278593831385328742680837951847222967558092373630797215199075708750674353985446653100784641441807149648931872189072816286053826683699687881919017730404372659975166571638377661004980502785674266742095034498815318429645535679502716823141001926033268773091136875635831224074540490023995010960152056771634946794780747399170617861600630808672697004393312864107324050974398335315464992757514702989276843856777999362634756595754824544921559427164991325743204659086134427324204747368828616974233503141668314032341037722009814412644453543024444480970900721584203071338710400876967484901867734329273270264983789689652761218245469047872979413000732087119875855075654447074780561020908963303915701382002326731588004130039897668134965771859739474053114744558226699792077977350692328554971312228477189993419196408174826407644033932009378149763792720553987420327492962741555731341641194057807046303518250129866278368082928615408008281746676447841674524612865342316476028449006167142876493344415402170209343052685740653389252315864633237747045677047529888162672914028626045584416912897021868640203422035169865923738788752264497691787180142432826399558135557222485200605380368749762935609666316603028573649293549512346821673983478222140212434306769923603817146099015806962279711468488024092423701656577574448417381430670087417792132496039067248554210253222602666395962353675603896261929565595826850408192124557659736673738079634449037378242119800550329448040003919684651134823789511565020035545953385946661572673674053136434334559055386891462218767530656444454999111892439806186307109625733679099643960156687052417731550850374061701553528804320443293273544635282271022332810337923557525135162507250895249353585558933535954094862169072084601274876039069720325913679718523181279164830935197008985698130610000395054586880093085666405011933930117386544799603100971087382807266562130161877891659401069648329461780481805820326356091754557717649256447411883677699180202678923604938479340941917395021877612719246676536808062680680826342266929412683129887843887019914915005023685576606814496859738253070938755221946134055508738051485754467331960560282612215571501797748435429034938066620514321570988675134430105068716770671349744311862178305951203628599756489000735932220428742318641749322400460727065536090576536856508293019719321081052619729886320504642027490383245566079703407573262626938426580900537834180528508355849001607810294278331177010182569026523869499566370467650076814000654715899968622052204779187057406527031937788701517333026397031900349671294022051023911954313180817647739338802141322799681097046687576555377682357831797981327773739174226960750881718153802798830734575847939624473417261744638930823854822976374811074491852288878074221954746595946634375874414608522688547370863820880825170419251810708751000819723618395214777325849451127589326226047140409127764287490015900203543588861188184764600165682140459179358910225025097697821203822008370034873818025340932337941020526789905807478443218947487074145769501706734712238412531989713714634738511460875967162741617981688401082194850704484849606970308885536282526971753657242924562222327059094634266546488912335964371936645179259677651594346275991703373153287519564975968138900275344027197546664344311465532506259247213288603268573069872799564823909170170899277910488260999300904598532695322701101599972454536044640697836868203088704331198793655962832890676668500796610202046543907591054391700423789211564600559494075443396975710809407032053552904836747186896370304676388706588963208461405890798316715168427903102005806392379068762815079457742602702556412998563249704509516125694915879459086135667823120959039919972594176997406493752427995032661605591634851170517036471298706418935580999338743259794949786009432864486255534772921914804411453828354753182763034449857625012670902350950034630686320373941256951316226629584512959917298981459315005896770587482317681698780715883826962788544960888647924841342048350344084442464096943375068969733717052549886199305533132685403333825925688307882497792705208861924404969665461126883005491157229563991808270918662815906332307040164690235427657274549331437174434577202162260124178096372810577946266308528611624524044544381639173494083061896298539371609147250672888942817681084835278237323494641639583733662953044002215368545996137554777594715563312053333269381231341234752931880118457491388888039002119360644295483578468540443305164307485908215260179943280698919062961316603064349587653151029807310946119251543333329000443224736053085620269523879672356052534633455853382011313101315102514305944450716864068039605836934379247164571690938887662091794783395407608364971886106862840764738129478371283064445018163209674154291781184367362316931360640563029890768740029836053289423443481546952323643845088635418904540600729016112357774093009991516871189441490880083624753333019008147403065405247231100612047952161916569245454040937257666105806022225897920418041063445946821455005378405892335099552219932930788492159049503961010858738172666779585263447435131731314643026301847705259027467852656840756338227493524157335361015327714054404415315906480134119332897610890541547664933622456214167973164445265755549716298743979632598572995932670705088287226178997270693559774825582661506352129992637093592032045553080122944298891678071933251261803630011058374005094969532695822381396606780551920358674048798807977521471545658804041599991661611106787656707809218041809613418897814705214739288086071821191108633557545820832300005924304543613704892692172782903347681185272532851115223908686942705243266740212968947293294596448320011197298526776346007767130270222606939476350529275910098371195420042305445217937520521108857888882727991944667323111360880983275422102309920177539265029283109053718041066982693394444088168613101680104338509647379088265467848143108550724557190502807763373051023788000790197189379412112438262867266902314110671958399193626437716245256013422310690049296817352086540795051395875100450619528304298962416140244538638488028059608513770516620277278378741250426633361234401248786044841313430191319974550063234564607695892243160055341277463648292717849930141700019870092806732225420616982347302855159337970952059418776520408262223503950173128923114762996224843258230086733286551482992937725567685207601643707395488689353629887292442105191306467885675479015792366539159557066086557157117208739836910479093983648052426960989640361762581745732120667345919904800331389137921994496888444444233042928697757964315176660412531094976990197254840721235206225579768527001845553329476683742651953685002040167850940056976793030256400453519838522513222870204762851622492981929257711716735770186689195642641069950448055148850312205630916192903938422035594084063763951909625179503038137545389082159240581733275968978546270277351327505960317395107860884029128402870721335704467554686807638731762467584409575915619789381235873656942119966075774049872188535833799907080346078130282855505479687560087999404009310362998730725963504334704071785792719810827440523438976284236806535404701256591051957927770794091802104618067248301045123073307244655133247972171441595647277836912202001846868731016926712311895774646820840502200606429821023337182921671245747153151388740470356721378886877719101251164680144766444160057253482622204844149889446210155562309720465494464608146459558372277625485647612526742494353426704487802068958262990423356548801763363598040105440135054483333278550314587560563939085182006547162761565072976158126287360254680947802599843755439832040093830159011915329194760385687482849813727539519609786662653730896743321965245130310953014929594626070351827714607294709699790808710148372370776804325273452119063425290303916740347760655404181128815223711967288215145585098004849123897790147495731226252237334350286105934580272676959014951996175105849405062820270095376121600315524140930730175019232161180185757593795019554040099136834291242247593658173310896513936418290571839317327706330925098384767337294163188453167212805653365955842833496616403580583812362355966805031276394971504445402277534850875817239191687900347336501234291464784926689564213781368904695905396309597895589290736765993789794674380759670199305640711703607858359261077571568956537388889811942915385585642219897251253961745475322216761609985988160610861197753330354571517617545267217222721026092812461455688842462859021296121243339548348697776809024711261825240692888122587750593383505140648026508280983930255711643981146439764563057878210323192283481485355066741069308682038602646354169140020379388902967741236547428181972221348380703282255422782480933741039865339278127145523892919049143425137193239299224608566175360065347203452794603008750741688510175224522848388742698008292843320022218426385546041034300277856770238615967782473920033857519213971887278653115803971171177409297338033370104764711179877134989707966837067007548553411506929850650448694619351585067626962776880528720876241397826339874556064649150422063805242543723623527315802379949326848360401355403766046588528853102818782404725848128996193930124145303520794833382117112991095474575771277844786846022359998643667395788588017393978691023707711417631356285524111514105157620059303915020343539060505988380499582034661839210072450320934620525402132799123027962776217224219731366118360803133047859564237085993506929524005741443409762364181167152225763827645518354102206166203489961771327263987280385780282592770115396508531919367901590663495116636655363763165206366068302691871138603721190895452909617836038368058535497460382856633329654695682381843075135693197085671875701632083649861049328975014959313841197147663702534596548639887007678430365614609754064213978536828565925242558856161541206329228585356713531682844068119830583494248517559429274074983993749239867319403910727118727075819665459198818711504990278583282983132008273610325302349705250800021844964622663383483728612751115734854632929148954413334133102274529667189217625695973242581210653005350431252821939190146828346053975202760799643127731886957201820656547553934670893828496784391684649225518711807457261553441442838896593864892821364759827731969914579512112843805108049585064363335454940171458740761279048305157632724049111887316496086945037317572949710484968125538886768179677584819489089404723773206100489841382041143990203211046681977907495275540607575705575116869188872041682222706233058788941884316963682350655604544070989389918840243409582950334675773096839301057357494128938033072138672308458109370150578556060069005461894567027516466886095536812462485300473609246072033602210725280779893260456269209077076565895164863299267201302987313692929025940744518146582780720664793632331404560468411804574198607875824767060931797282870423464606056197090535562889425802908380579094984998188484579679629257978740754078070240132821272623145614344764895575022214130196466813869812722701747995551136646991535426586304697785568936540448378699417103569177782211795727475356525994663432468573044210068005548672247348076362434121295886596862867696670380807107575876686083371233821533403415830089155253393936492196745278462928668096259966349589760856432381977029102388635855445131727959781855639293911530779208626793056112957297441849899083271318947534470688659408169579940964545554020554148227455268285396485552933297799204556954959954499638444995301470682299380095329392117342283532699737404887691084370497966141227617259193579039987049223613448442635880672850360454676838337095840812982400030223412450680934268864326368304393844627945988108373336921582237156452077237806591608722408716644187072181516226962598060568851238574041963227350091299500134518460235936546391477379656350252381978183865148448218879382655799033060630565160344603214160793539783400786638961980463572070874506981134812337165102574758369864247086376335412763723247191735609286817713429485416367720900829898901878505226030392337754422926241323055800863567298597519346385141826732658188508792874031258296453282801581080667229708808075336457711039353553260357094836039711476855371106502724075504021894052937630829947298637660447333380911021799264887748582815708887326062527684391694670734576473331866149081810224115203702154627935397648547811644891907131701562653087348143975384592843975335198324706645138546457166979278328081721915469759417437035022919493039103804392674982235913098712091134414095720183516435278976912207364062132040988710665352034519093486723947933587974734864112422283209582316957749828403432423817379260064169312472584715766315445251261560083501989775369486810690237124577269095126419687178492251930045705004378106948026912315806662565347758940534347441575836568016115051518140705062069611009748018341963825152666313297943574944420033843883189304593082430349969600533903800545146052639361524849228512444840556274781492541599571701592131823218370141053176264457002730787883491184972830292572480255130040605838805492335655632240322184048788559660405823499401843633012769049720938201763984532345268942773857584378415965236404320839686859988173631045834236571468849852498894051975603860394218681544186021172849615796174382525328487775032239340928874360144553016206600354560268868743833328363618621586589024996215858447911927683885984218301221363765257092245494275407328993410579165281042116529000188630221689341344929945832185411237380772163256496862394143268759622063615790283782467482036333134840567782283914952762711571801586614028614840868053148489563583065340197814549014816678141738887667993924106675730599241323260232998084297188415680193033617013247123771164279412773340972765928959157847403558094979647412005231848601326929802672475291465874559063510163661140226200233798236972947114317821880789376523988107118593007495603077800434784438730283965363447837882084364402145759585997383284674789508825461370505754210330279092754251567048725608188441658249158570393463256267379682285540623193126521468302944517774953651816924213243906616483256811328827807881866716815642574968659312316997087430841779372918142753335922450091095336384285158599980351037736668344178226505758685912605733963499824276103089338442945647335269689914607293867258064505341526103124186689009185407383075496565587685890597397491323799188214147290456049999182435276186460070186796869020390485807815381936871912069664208462934591602471307391740328615549667005480781311315366703073009884839003370840130516694614271695222876116003930549879666891390330601555665844877575033670244537243894727176040752806159077000689392561044074407126698808327293088621515993475669689368344628014702664831765936757734314450580359885904982249903326915124521272802374477760688560632491199888287099513558030698836078766779783976597979686335132152997553920705082450543740529598080394273602582233427702216661086545243359792192606186261928190496090654795640371571000418680573887426078392523817948714161780412807990951418127192532386056061610768870733412522231574618975403866934867103226592054145343410059167623858914794006068514921338800575519644068650974767036203473293824023750859132836783341474039457054713668957874913771248381987320031982635574561782055757825119509350087423296972022685291911240341780684781680725578118135217830334287905307673246009376703731379522911115078130682508756274797966855232751050650449140456285493699688243322864974665700040884785899782845933700380940439294929546171587419030164312747227707330049862949582500037217004140308041256689952691124250847993604021940471982879711450926819815730823618967915864791789187761983031384454855569904614537984096065774296433180403392076482866447631500059787240285993528599621728915310767163762009065179303113055048214733587247503415927024585794304145184201433353414053081141342551167066979407326660300547440142904437581797320517263719143348255845869515417180142912441072881822249996641092615050131449071492014981749596031714088153556278498654067392578951619131460573595357890995053145992419411575624779171355302789240977072771264611445043891175010080191094638615278353114976750927195030768217247947889996389803015080261376547408404026565405263522919946965016993006194960929311776126785776372787093547551367520717347229007773033049145530013117897948827249730457570091426227090444407262297400675059983695669969591768886120953585949832120488104705216746274859081768472079000238012889483784314886311907023106948387472583435346966613615096196252370347559756648780106562147629474512702276054168056270214112050476025867589529911800704001541994654409993630209230660609579615916716654583466702077125134468079627992515375910109684994127936053498371781363186040030324915148361261155942414399012298610602466700893733452334066089616420569737878388224151216756003360669493608155236711964601980928677772781318913591658275292904392480047392078195022594032668212309192099880003915670605038147752257216832018761211846005428318908600380659556002888902559348134697880566062054944080908927478080163739406075946557815013596560398849426348752058635558928458220106090070078098824569770533663980256901657645755588727442961179919256347155352389842176903687965957942740690944484015876218658292507907961841663679051036868871885975275776551911879576082916401310721138367504964079795210267271046614895747260358678111040873032301132157084092726893461019429772387514844666640199829988726088143575166295954804523049596629209719555112677781001367609999060254891499978451330764823117343024138894920626430117120755073604103458964699558591078334662354315088101529315545613082046812475965602146541900086902851390119899652981118429580642560173250108574871788290513522858493677139858434228585038159810973844752554448549830288956783997248802909320785156745340017258575414651207904188322069937958578467961828439398796170438996256692939487428740418779071685072773824112960116271861933248652672775437447219714492224840325376796367109372927257186826110001022690107192064184079792246685358421112932153802385546172061319754752407194504498071604401841624938278184948136063452177724002122365262649530229217864196287131847966993521208294589977428312541166142018651608848097740948717741207879240886887227553969874237145093244147704297193313215782535721613352321356230187737970050695913141803839329407407581797185763050996402651474480075055320358054655059805249888333191741416216190338464505016957852847672291454776951789007588361952537407953595002938220078724389906141384393967513225732936851800583740193571095188972406818802527770893850915736051709979101579261647032467328236737009899641558600934864553669761651011907661113456959389424650441829976745825006955066665553035699595534966216985761024563293708475200489598874676508913935782891578954247958403550092258218069620895468290200215849719456537212921928856940574578678068764624759372409397567363816720235644538699334257631543445632289115319980752467806417151821456545565458407314924284776263750302731124919983692093074578634551658218264044323794608192080937567905472465459323683003151458219491899799143897671855497627631550301791032444919658837169870472458792368994433536016196042580187575405099082514534457211739895796572746312827764165932093528797017767041034191157710485444968520388242428779157029848656759086206056641440900320242069580630270777844264158304239098397584721255129398477949359744245526248993115353679016674313613885165943517616079315297273070181013479555952152301467665506748167045722622314887006460090672062598196406544729489990105654303782632613100484213384743971493299316755450221041493107557892941091657990630675251592030732826459935262075020668126620512358722183528968197397274177893726113506902082454146430512295411374839576559735519873533515226520214513717076850710305544403378621773709638239865595587842156623060299208673277137153689859797619064585774902958007655027771386852265284120904302231051297753466682645779370503365899184110800112312312807403216789621990271125931632621336667895664161815541196809446233486269781552483798663894218114678085162422920462263917888698993207923189891977842494386605244234472021591249283907198926366917571319355368806011931966552131292902168903288622578560156437091692998896691081104900326807274166814865680201575564149250006659410274445902048293781253523458293138529527997963801150270233808476124597772855295845281852836495028756446454319392340173926433950984785748585655130211595551072696433900260154839763510926826472259516408141917498827256648456758419757620278574034114564705352004553835705346272492199028872055560571982846991669651951590283372619675816363676194200195878361878632617263113481737963580887474095093037559424091959672993438964079035429612897857463401273321180913009279297592038163067152723859652348464011831118730808036017634378690199606044743955139598953374215858196227823380695406327792391361504676510941976120104267359532015584207873952634285535163059537349395272066072091696066516817329178825090846923814226982578964461776860173089640189862747496975278021705298929414019847707631012640785985699418872992064913937515880077042782347066093768668271666129020424979126659084595448654438802737529116192957460197033191302883158888042761993648254958970182854221617164435728829621739312584429797549755120260360803098754592677696239233551649450381320007986134903568201202913709623214935489691077584978012246157713852222480054938186548990537349073579430551465994144785527117341249843532401232747931138641394292292412557866565857658290657455188843965911684536167951133283610435461094816762861227804272954018665127298478035699388419652932716333999608862913079200829133317578137357597904909028001063792991518275577230233785300459053125068785899690291314593416035384100435062487966906091238290114563800524147538955672929802292824912420329769082349984650561181233239938213784263830507819792246132608544110594304498682522845127856077557598661957053803799101223308740074901497455178215676558706493949896308733855809974225507799328617088483192782723469110639492525581757266390233747309378030404777300124488360207095504437473965616530904068113411802757236484533287296259898848457226534513410071620540781643796793917029844614586573067529408601333453687948433039985087424536932353999029523255567254312325051894478829530549914163395193500744969497550823057993795718684887242212642401148487971841663568165140954560738069848948023647245961344715914560429003164392278836163180614932444135996493924194538457966773624186143486176298345900748019105940145407950359550853417607982267895526727287503616354637505873773063941160997962507557892074147238518518913555272762530970160046280946781221918818778411937369441855530289810029726017803890858802236152367256207877485159921641452478679720237887052802154110578598644666687197219531809886983799978182715627029307409703039322240532112317022375294241515073336000683796499101751246010824962623255928229819656462579825020525740275632732563061897748022252335046973597610549866094284992123650062679018353039945214577568858924544941659100644099646223041667103647365923969278823775975476492022938520205590143881736217223622993912243581728768066191204331181870116143914764027736817481721197438509932210024347878272591152151704436712627730398390079259045132941752061798038106874295101380905702979636434262378760748442402352704373497289407754764359430272321783828166178189810836805054315797653099366227329170660142301493365883828596083399619853872177611244778253327512346592229740849722008767624587722468562716554110782850246879724639539466491679064779616977484946053105720114779457258385675347370433625507915574741311168892126890869916490595131905421859560537666561522890844547510908257952048057141980258971471150969764387896312395839360773011461203038607581533883558473992006722110333675036382517414811681372754414737201376238466611820775217544614578427184795994825477488107592979575668629233501381684619455025122077022523497020404924364355300208512359238013097607380675541669639048329493548127780969239457892701588927570490966975724943834019415082767713352669886898163886651345857227305027141223693040450369142364109626466522710095446728275915723288246172964629197455194854322252847903483912565802872274131229676946772022813199143324700212888437036515888541616328473121000162760384688697053652924000927231412476714069390612469857046870050338209623287378839092779831169628793663249261303475183861332252770870609301114487045404413570854785632025223041984585870881684229662645499929559371197139562038281230467048742982812045141633279732225025759515561323927815706091550644598087149261476548188234606772528136520763582027875530617728727860550325607217534477440242800091590890110043280523976947413349175907457671561825947606410097782867296220609922114222546853907071192751754109453196165461552703529209357717070759618760798307941569644394061028528904927106663950115860354005770048150578820399934823308589008466192093690135473126883642168237198443857416884168757712850532515208723061204562104404434332057872603569194796210949638070273426958822468260729011702120287231206924696641159799065518659260122203433504749960066344797076885343479902692634987893657861891398946199150475132182576964119812550287858439000378169945902149433853722345545807819198777913070098389288707526263259965401193588670838643906999746507304992889863200062978365836784733002372253416103976671999391072801819751554327827431207468445812221705224499314936099462184242104780960375404286005072300077089579535301395655277713510787100361688579810352495470628206776827206037982931110134304824237568136944532100813717115832472000146707608005161450105129444518197232988377504670051170718725399785719764403563619043751741812586686308751751670225654630356176453880322329905120355879848668640352292836267522256799379320509256579683229166727650518266002036474438643939885580429928571997169613532912569933564269088719250244497514644992651807474773230728604706125559820750492915071276329487192430572939457180686458564003628797479218556261558148128545162406011713676618133080509920939128963458744606984683001494139970987800858349312419672948666130256398186576986803310628212797707963489775124280838472204694563816061036288182220851239677381482812245124208178646163397797451785635968528349023528559573834278746890227206430393969222375371180848713636488603144918143632682614033563654564916524765759415565755995612706331742985480930069913546142433423043603267568080201751828876490172805002392380926603533251800306493700560448787985265543242513744434379177145581102426056519443832669464756505353342472752492423095851643085886566520141636532702351538802206235332337529132861811334590876029549552427456763839560065849787199888424087502377223621253306739667046527833942230709904857883397208829341765458538575269151543091376299698337034635875724210792376385275077188314575299791894311121571280883551517173828856714037029199882443907944391455683063490383663307255220692226333495769755589150833385917659282468797014049737168175158758743160052917145255169742791479405340051123973176238076467019388307303334766628483830587693936690701041912895982983217268225076632734419163446840338338989922144307478908574038515438925921933987432489441205551740543825273246112191088205965587510480935439416776869264537240720469381971656867740013644310492904348657448701824415214681772764468908116785873952222584646957560349750013459233243419305963766042639979853482575959455247559921423541225507159099486176197318124995743364022286208888732045815274806767915976778212509234543365686533057626299133245128385485056502280413223090612319711704411880489017405283925490891405344182572233674161138035314127665403064495621466887770518261834573667098320427793681335114726056086926972175820775993960216924471664490335120712486444114499495602095861180151102831692469314434256233299718869381055105308768269335322084033549513000455595709239955940553024573403184256974809991427360131979284376285041289648840517919696304704199545695421646106401600738634363580709737279201447297297076981997569940045691862893071030134308982224781925036812240868323251952645921499604693400002846034737110740711143891900837633162525457767631477131119572269328126814886073123767377371992093306060290673349044544001878574200958833417625651397907423796148047674998182346512167679495523336584079502526591109233131132676605519452826315020125716641430184106738465982992254529972478696448185618530643666389565681799435222163935840267446208196322461622374558375916867110292315609367706152936137258489799834430814180071078848724669625860316188796795928924790384423195901378133725755181632039739398859659383143381269618091828104992834954232569783352097517823858090210002994725697585999938968220330709014483337448928099020114345256617586823996271974544164011772441224352053467732360853572354116745918912311933756407309955827763602758939556251480406211712958730709077085292782389898064914041482222700871193980615149487373637498492281136307429123719405676897211820675982833792472581617899079990327644374208587947142687728890884599330863692575305448886783962887562632209012478780037566589979717900406884441258785359465936439916620372695586084526038324295263504174328797172687380189783995002086924426020802236773369241043033746262053915340735389152856972710374630833401643933567394851684675534855321158522982544428214616232905069619916579453403607302539631359366559599636265965263446948173115446385553278640999928244086036694302665158362991814465162307528656721135571031778357639398232825299360156864969121501221055186387080050881034794943738552933077465049974677405848293818214465708882698005104942998097155093998973332682655835632436317823875529019196917080459780688295503428878275932541991437996755869926578616293163361497298054489886682457612526207941501322611094089668445295551341991215242519416066673050723490552786181309059711849882837507889124712149724618061722457305136039223016699965646449208571068519266027326307900110478086345326802263237620266606117892326652332333996380998706771297661870350384653821911790340815445270003759547512666895450677155625862039109442648118055624894205088304028147331905912345032854090961186622352531516078752470371765558866957278298365201980230477660300909078953022894596138460188842672655337487458041889674452473224865703833618593681754778359468635520322983344539031311477456229500059922157768440899290871668381712477173607340430671880882447627664498699817016901471851489735265219412274359301691695599786283998580850444279742195781391580039560391674348956719096727124758851739729733717374967987696451390527361468707446603852460967463883248755452827379366983949987673761386466853115144971113193665447696963655542097065645790246537071022449903438135713534613022025837880674282194553733255371983307334237267427270225396298389761011974245511241732580720321627033401179500759304969921626074948243697285604927432317160826952307995697856960988131541796315128225090311315741684638852604559764754726288417718187111216132608660033082050153057526642871748900070292152521982294362532613225644003846500384193791105168208611228002266076835094405741514357891238127065801751471236227534981333255406975825613141269213199291949493163955987709146311826524077326052669249497608037165708648457028570009805292141897860841638287452843254629239670254827355178316689491314710307359433848025686621119474222850875973107252289266318816244518976204134962984264611027807341138970796380247124783727466187108402891001813293646548700179942522838499535047420494729771251090141592833472075706919196052804075779009505930097055946976722617981613085133367371977309074495615977623232942187242371898994554585600510892435750444052154839020976451756569807013702454010912783716435053449695066905752422727821072963016779969625357140520208142451534899951639081379389729387062657930152651580826977616581459368460218169600284239426583139174829393055749719965810323752517672443340033871470771573694822775081042902356336971435756569001318252239901836678448037940935380392991732355287272635889287290201318298105818856248411257072174915231517281246796951480125370557802453003293842362277484353336260514395371673083954445588160655502866914077485532745403636881123485057356485212950176025143500355447659912885668642343094514157270584070962361023451839775812647599843698964034306523454726389739878345812977828676912459708434121372029142292648878527294529126388672740493132799916468029639867780019132163450604628524120889799143750146624162814511776603281046681049556745595859412719828573632950523106442558209516842419477563781836204793768344830327770256848658756766749452543881300790310160030224349002981446083864991724407783321672566893264781465309154099143598802344738463968767977828961658210976554714514938561223802782250204649206509610808940004326827963119827431852455027704008873151093222142043892156007865736401235886397030145838060176944056613059013798240840977927213643589143008003163551459854595575678295921470303142499569749536320702087573889426882313737075022396716989227682442887059118176774020688630276727113545456735506339574613048355861656773408279570947754727717544227361288696233635640872539216326742040732884274308253660541735212164423628575512404554676076642876706306895649710934945060828207102625376389647928261940130679751172829361083471056587851831325591890439735089634209246440316273933725847479068411605149891969038885338883999516458945877657772604191004993439031691593103219427574777057139475531242459046065148484514743533113890140949365196809850015506934098653065310951031346730711723418339155363933078895772770736917263327199218885750844166876940946818182013961346513937816755621844935636750979995062552628922995950104180995135223177930990872844095962247260307900674687832074264488825866160058350361428266445461048326201873330529112142158033470127345234520784341367554098874284106631772563868796339196621921842582837755656004046729196902146424916407965091511657337561423946419697778255155043273859099633530611111794811612024192469913082431175908526494984940887301778932274727094390998140364859532783499993570808203194874152062885666735459186192545854402604086335052751828818206013181849376010872623051962349806230912334366139587587993087756020165572344036871357766592964570196283083566264850469883928604407797881637994053597942504974587986305964985801181847542046641695555885997701153921251108171784504647744675752120347316196278028972939947509905537548199285517585955107992306124866233266613555979309102440780107968316947978462040758717781582002481834940662323458755687129718476084194405053320010207839012874052985077620266149997596889240893109806769548327210585235900572586732807610062590975343077511683499165178988816779046023163269523181921938412421210385057442861639401560448423216839160719515281929840599616562935980365330104138949973109221303813203705275283844780883526293305718861273458676690997649426853779987902163433771703434299143402006004706543052948834931037357755463498894714145957067219564205499744147156761529835215766303267735377960773122111977840360629488709172673058731397294838474912333746412511890556282838067395665651771901701853701525579588340415287989755462303262608177025351272904127493361053929019962967204267289655614265454110006001537620355783715569992908208216386725095376345420550754231393221077780679265125234077714043067797522752074552686047299924307348831264037765125125764155681218855347065962950623111086945485939351685235640236514786547199270311759022185952533195151727134742615518597527729144930931831748333061096662442880870541775758412660792156199826742238967938910427733819926064386237918768407886667708010996342691033717902149516022863282965421155546776409157237120926115969584281851868839444976470825843657444494037075524394380164147358781725183217022935231116619709653288836541764861427342042460272659715594548827062994635463200366772524965314421420075067387242984741639653391239211738074206139045607802748059756588823594661520451891803234971201667759940758036886917199205589673411949826497498050611888161249561209548725723159571056701668344300035770646452659452144613393244445986221952079706379153375029308899825366741575737040955184619663906579463937105957827368166894772103129894015206251812211983408308606241930252196257651474045657017384509394252948068083256572565100450678223844509297729325599094969516387559464923501972193662009432678668471585999126155510315587061149372951140983234512636967213792355752155466786682052888501679520581921566868384840193514476465250402582969648244244137278438070004053527420776702563005675557705967454257025247611837508164293704920888934945315797091387166482320027931180352537860003885809023578998659223848282240128337537153646938795548068580795389499670643500025924858682011987514544847698272864156553690037706812443176873051140776796743006043345658954640799781736410402482617540891897287184811381066048835023333845352355216664854653632516148727236925793197318648607669634319526430651488678121551499092956590989026249075781166970023755374740818512669848977450644001394199223869426743856368595007503348303708285180959071405593567662010145857394065098196775329925930844018901654051600362979249003010964870818098812512809395501633408077981444084185788701474762061857928213990007338098233349319581831700747576099706744091133174818239111083954976332382211929519657951088396415459863493194026172326033040730768860177874288990741769647068086231455426293434572405414051188564263566631308724205154109977260650292061382056203670154295733840410321616780177885264772981967761881392998487313792512651565909472094237470089087511003078884356322000102392578301088818659405873590509422741398088272463027585236691958932906424541938925261550727717911788015440526221561832385633285506766522773457812691802084051726232697984021099826131276464340459327649801148899424288534413336485553306826882873810140691709286455821849760983232499699771049103642653240717490787953424100712937032079135672833389222997334211660888029611720474246660647840038335077818165477805942379992129660156386090805247215313277645747601913857075289451570114456647109518002511984670206429142891660995677009610092552366855502735537386963278178867513403063384205126065552915358963105184285109043421269641078581475919338852811236244678618736966649214807685831991841780853342551176055152004049294484518104939426882112649106711655942838624612592910427663288163007593791484577849171917530805628514427717018044792511052719665485407367381262715139546427792184979965898862348490777753803636996039148754521233486244192687074413801288992159796265446331245549950437232090174917750491224860821810541313710589462442128121376707905314426639723454154021428485571592846676958759395747080551432839840250627637028372336992401355314198476172945263337411657913316718201979183250909686429155237867753883110924485534092242594475779841074154321161718614466600108516297232344009391281186740204446191972918291120959498787933223880617648773217965538866735027773893879229763017705450715030302399153367684252946296743021090814058086895342365557224754103223092169912828176588850295183720469242780212432033816327472953928443943997839713058197010791549876261395165779132007019840654753451207161778690290648277171215734679438217072915312095026298629532735821893850135278137304641755152577348270746487238346314058719483412833350073858669769079519182126779250049020657862329556804302674277320731040065578260750638257767537794155530211538626475968328375086387513645516025500757558282692731521388829577752320717405752905508059010572952761987053858934504935289820685525997384156408586325184549988458129687291888264707813889259542010570019513800396235382528200467649823382798682224804248136919083399982150642643170918224934273442743213088969124207899315118449534244802653255146155151174640804979168180672495171276572784827059570797378988913057173145498207095987434397730301676298872428386512605251502627314458126258325822353183076629216698798221830869240172147953376938175295753256356555036707328051574337591560609199865299566441632389577450784240100848651614815659612599157078725082805334991021750358345699254811885670122746048911163736611301460276824414357795962008478628273401517512783440186048370755019407408232432642408351528050890775305912938387933136072455703854310333059303057052127925533741134561379719851159769919784250891304067637784011889478187058013078508864635388772179643780480694032998565767293592198165587717409793788476766053982726831271768887461957795004456183776347954147076295307787861809372309541251732121984273301550535756734068438193796431578430259063857470905003586959980650145851812735870242425245548941130482635780656571722852912383311403267371325535519207360277814685702518125275266099947166816426682174418120422491778223897532447480855297914141293096708909987641268995526356189676793494694357288557599409761641255602054755095891643468464822024326789180203553899416511861646760963346278543223112115268167841008401220308596896304937898932591376065791811925621082331504031028963164892197632113609157849916064080008958460412346581711840768382237760101399185526768260906432200914761729736984955157607730717788062734083330004955857773761093718803287314278805260989847028485829155609143168578115962866999192571145299079634265029479706415647502892057558627679056124327537990616580507573895011312914423542669088422815171819937083774976763922579839308151593080370680057503295726602263631589433651001005954361388230143623540510284724762565119180779524606632725486340187006295108343933376648712078384211980844038986090897723353720821244382781394001898002860109269905332124425054667493889322535535958952307391985664118258698577706102289438845924837755478517976167052396116659671374023709613410659773925347127717894811850698424620412249682176966928204799495856537448145655299395525037849799848083459894224387623720616339698996226523208950109704033408386991637358492293192521156784340661950185434862752723685851477855641467701603582120336793827230499495014883111988118433555946334645603710275197787068096564610186259447291702109228575030986378200181399307225861061530683259420033904180694193698605767636476535993841753500246558707316789467176364117229079710449004730309505910103180204953002428574327383021529541145103499312723005751761449057354876987613977040233339928778088594180591263915021044216008365673121258869735546018696308088984161075645641163534896381438309232369585600503118448559125233753123388950463396292995847603290941100781123228645358428039572712487217531922630990448357683203552678106627132293729921319492863869410501568962805599496627251935103427642435134397418358108944210844181098987308960891729988956590138416328310680960096172234820589824898533884061850027866876937793463742690647034220143125855620004385013963170079063712343548403870158796668336026938561408180344912538186530895518543210166411576040922419170968561132714723703809355460198491276837296871594625180070561160790157044388308743782400320502029598430010557108414761993758661039416149857744456811744286319744875258685234141496272238365182375331700129079323557387432244416777250204634371267833886511015931619810680288222400579658495925523302344894503849934617224688246033680809777160704018149028706915892750578178588227230924408155093239480563085536737031683192210662268062581416609943345105691285538041673112478910464402708004473338013482969250321329589281533208793673113867526190686562948156573151304865776130115371979170210386895386150112491391907765042367757996821799974138357810202758182737364571456250687396829320921216643536780044552085202939604967836160152696324364311927361895134764726256187422989886077707658700073190406890111878278592856826823571393082960395274460209554756255809356853501904290422674396920145489094152411800840025460698036702252249272429901459134095162416820212248631444522157759449041428262343176186724872238794345546520309061396166884280017472885340463063284513213711229955502845537929324611012658774751347651667934163655635008627560136685436077077029869787141676570030762553993417220075958365397034584008009903004718169671235048049199448646642266445212909071118753705172705307992401090761830270842543080271201515010120773120626749365660745974837826016522570048338043794209056448524611692452972874921748423403359897146714490562316309828309190074344182526761219786547211199495210199271117084316736163302708031105450046118203411155817722564218980828662707440492765497915675501681193037789699972714040615200924968707481326788325408418066626735578649908843134125008435946774840124096868632020100413279087466585077359576383380211408095635280477652903297412276062293982516465020503302845911556707031860098985075105457699099727862536373178933603857970846371848028059283176368591457296001671510886064780674199459436782678051803181678473698070858515872326464255485697706827538440453946723992041197088360488487047104996381721699375448558479432667625530477609914414950547339860629456011260339968770618536919801569720168687524472557211273098470335474769257331074327578876740468170896420583798788962408703027981727584387424187785528115743320055771957172301960607377416426978305676313069841002814113586136612315841187965068955320743981676094873238857384549496915932840633442958730531073181045384153956351112959872976030000249226053869271467795964678919682295455586203321613989683416221532886518233908513270475699211838502019256491217171637049067046771798090027725340451296484988660369109371054261553849000921584989922612805109467664962590020954114871218263584949098629823364591241094507371488261449025424596392606935339438750983037424092748414322367759781107123448605646186302729767335858094296501390669674158279251060770401336300629043155106186634591849625857179120142158564258914520646079995452837665395663236380019021577473328899831999801033226283147630146828422979047184280510522276482860656465494318023857020524531403178167507645536956693686982105855604800776347892277610608525770849701757459561437360780251452378689819173566317991576636126526994777216815126722557828757951502915741472704249476297542183515453858171940747627182517826204396086059028529410924489603052958183620733991467806486281947846252849237123014101036629285265392102748884024097528356097166117833402401442782369068813672794538937710438815813771930675398983339807495211913916567035488254639868597260811647578003706691968624812893627301142425435967037997771013175436031274234986568078822241380285055327950717188687752350090639783809832474640007239622462908732939989405886482308540265712632356939728113333495555067619579358892496740074842081079414593579954210643754056879494765445729868777336763363087167397450751962891535542118731452379781684544370500084361560575549553540019982438212996095336152559677209520163786420455079815376781930998734381397500141447259209675453977453106726385413359159661126481413818779177397880902147916523993850137993516179258607497003148600309913058970884948753750393828555930277208509156893819392521562953657484578585486424699508368858503097188265789311219275115856667271826813267023364923016300265203064689664112301565525044985880368366956153290434911834375382350738307521471333735940922786986644781265085644333977776904759845499570292929183506995241679465254835659033530817392346754880458060633896324190211753692086140658317841967735716825249341807575257538172129343163381499700416625764587913757435736385982614505676278192522532088800510311001102678478132893575506217565084279550930993163505188368485462851085349704264961149289650717309107848769313368576696479501635699697486444923103074815579793893750474325985870748407018057015674006961548895447152374722071313197311981786634332090984552553816817250746132970928661557723940737707881032813309772589001346823471478665515139598567118184279004073781331532596740892910080287726904998038188779296615140434273588149984169900047182853817440494849233170086482350765829181225318850444574867296010298678142047291569444224600456624181242974065840349228502980745872686905204545517384766852153740095971904373164100775996584625033228995554146449780388347146503560329494469842137830857699968075481306661452620917029258604616829069672162940878475263350319262896834779862132216771916673633248461710677127506542359985944104511861724079506721777283942676526712884083136847873844898395287319523297902755838297497061229544547706000709067371464685569244526725964500340180114791946972375621945664604348717189649042734350927902651834692566554633661482054228343975190859069416411876626325060526140426216864003739266544600260012062184300619646171268957029225569812928601771586138673919330070765516756192126297350418216967672492864374595555272264563742010421521810002245153149255200724408107873196658417571311977032212946536870604603413366392028727615796456870749330353529115576089732875171423056152176094528824430354365633662317781284048816404762713557320343037940828750887664101948688647792976240294773152080464858941269572522317192162504161384337762610227769190512136997900970334199059728766635448982464673834529135952569788283815437696452797968362293500617147248027654988249380467891223316964785900196305141613570521848955740921278754183750233095125173176369810071682414619540529061617630996148911245544808676105009728563412576518917448218248143019995023448407389662786747594980766042062669265130818845552239677811918955145126692887052798818490158533748660670622889332336118298011651483537037038242529050322607834762679454795126969302146062463251188314521193792399548073329722566982316551045847443542995606199538591289962756631908323508557415408008805787813459349256915667675773058996442704825820525161889619981895246166011186703186971891815051827330211476424405018435138347152158076921562659446519349309241837988037400678519369287180336611046133659484116849129503867549223122105298461300223424769012273274841848978956152813474336480606688240709718596358445711554812075971712532181656108346451394712604399140558612180827675349462832491078050977539051707040736715259429577110745284799650207285299396159025153234664953945290876342612314229508259804097213004185974943039939263224365590823924624751264285284156130833875923211271255042607704249570869912499266662641957719039654117552438745407859462224533132263121841593183332102969483052895693788483948916173717205908448776317689301113630745669166461089874764968253141628552936199776241221289634992765188334212544158819797732567005307302830453969308667222662584080040469065924696357324019191023483260896331208254020396769275395580227169279148901943334533407983011941839058113677962177583122067193868386706692480665284980629158447152556618905886595411993681621890034961898767369216105068533287926661544887674400088409953183159833425617728795274673795053733374041242619627455461344007473513138570463634107533637518619799523589351559559397091321943651197996190510359194869816117341724017642786265774257980585949446533039648101358494407731964751384906043742149032987297677374016649583605450320552734331094312674750223936737119533530961910559324750053042509605999430513521611384337826416432323344257832074192330001454271520077446967285247772438865774915693704626381262416625485108018163658855114627383093088773068189567720852196434792998800905861537786084071213776870668127435705036655800699201569519306836179924133333057816117694829039725488641395025151760267494576053890978685617812321010663767435111970646491886319856240869558295370188803333783101114244166229662617967443453985829418476288367665523007259842146963265785780302311190799158856014520777784118144571924412090494944165563994289399810823889807285579707131416205823947225168305093222520624047200187392599075218761336508498536064039660471090980333822858819037733993031732343156444639795599534876089324558273155707992193963176277787777092629578478870788296524324800314828371367933339266147922365275490264266609774696318111623198105086075131199665534127843076036284096763056489457425639961604862850463057650888582355312579549199505670735832452067242120361237309413914496756748928183323989655439608421615109540793121531217285264597817809522084614183138700651838710041878185672125192654699019537390745005075707560474573235741844997653552720126068117580501423175136152933211578290415482091243297769587127164298329422528118835879634949690644437008918863205689545364956877974066293337683021226450125602492238104379135047849446612470391685694880369937764451219427766613153906549576461503644380971128300893475246334534051794853013297052058796582030712509620401438340090238285757462472619848025933633813317915815513564481558664848354205069616967565065923648032060442992442493980910781087281908172560763372368230137921102301072121545477175500483983086445575176630099781527111641145500688623474599166345747231006598186393969906289570409517471770425161821383539547775413128053275404596223264612584319948705840318467728594942770493313120542076896994147453853180823222641218735209111912606841884772579100648917163767131975185539480942796707204962278397597521189901189885102924338891897637792873456064896117786796996674536041356607949808140024356542300834162216735287180610969049490827908373455345409164189267730461525009035509513871925092465797447011267640082511482770805488272853980769712353762146652522633987196488018486206307103009816979158479997566045729974882497048632422096453231405032427170311809510286657455123451508450432211656043873611764857512120253466300765471361824789725016336105376111860869962397269974141559213862895431557430588362741470454463039260770566972622700489393113281485563724144449590470216496932635772809839063063875259016485476057039349334686580749896077375776073242823987258768514583103393597064413902371321721147549774386279191822570659812565490890962410007054315523446205275813974894751170013216847976958644324729067146322891511494621838675319261861073631087864443734800246383572201379238407117944877061614903119592017287981172821219054569617350578020292397083691774398341299208353877486655764888956422631442184785823069238566158190751520235475074605099202761264555408063694892067746441419360102505587380814129993366884312886518602318208347429585489241633766663425874474107646097758992907429749658789267915510819922931492135510715613651705388527344990196971338739842879304745265839595361040867892651914079154169243400908679511064203631225430317630248708744275626180018763069478488709524491579745213868215738483829404215666770192462176897454021003876554992788240791544295523721183081902978948089539363628008289218438476132249417053921254288319391019377149254703522255641859330364717845949139030591574410848348560915612535351742934580995813658974687139750585383484154373172464915182654155098402920749114120622305442442502104685165981489163146424180988823413226678066633326586463507953367145735429277969027670112687176845217326268300840966593014000115607257663435986041780978493219269965152320271009583501550558151443983768669989071749621380938254003531215979025345557328407435241706621618765874600327911676573090443188799532416888913156196529546036451680912314933772327976377707190058556953548364658599982018717299551202062276582871457321421094596002422346787134238559915350886607569900081616852208668989235249612552577276988616948058168702827491749262197476196908712157128701761195040061940059407582944491344837816150492171727153807875335553645215167430864607368766986644564318574944808308876191363866763876806000028715391386158119367639360744605941268727829087190164591503560795342575478465058416298353327059530288136975632854337041381323227986977310726774337676992325918620984145030704045080191470034898092306680238844449256789390539184682031933206929492527732429322978890637914921884478274024941400458474856691815460755582184377970388788386439245218753963269675329376918565228815978819000507811003466774498159759920745866191204186552180515143407484416779874900451139329404207157788348244244565794404355218922912646093026471599981556351435546578483324203134869640657793411173197685352437618854694338487587597776448110840963233969518123779947342028514271409874828166178949370885775884875273675696435518544892207300697022558816218274220356304815349558010839707020683177698434174439425272039940743044727929078543860013037309405670363803441323466372778536556237540415064372807155794368800920668624395345280592342035099205163828797015441392902409759913906701973589616156711972714225268021879394286137803371288998945403770331865311154604109607285562036016139524120723189598349710251351968076374667149022297200078285714242610592045211710900517855441009762757629292462835401912421438277151046973489919611946113243309170888335899002181851609807164439553844754719696223091268825643775611873557248048570384579655423872738266595890915897247627870956265259872281715958680564595343821652809497397739031673859271333271837887890821103989975142159566618824428474985981781878922437472353326158546935384683695822057888057948348211193673460998987432914278146198032119235497072846847641263707099611479443190774589527494028330251659202866046328629976267526827596358687801846430789724944308910970199299470895876504968421782211631596368286156844170577937947240821095275281714505673118725055725451813230184550928214306501006151798867479886170096762757884480742994598602674695476294459223088745917368835209715854637250377691156057641388944207285814728984030652467644212062744997273762929901749471022104083849490400263245733322917716526081643304892833730681751468653295654260724913773725359299772628278087521118104505701444217379569180257401909077486291678937685876890687427943217801840693646922774529106125825424370937233593324538343561001955468003927239285253408413934187946171907902732729157492733351229978416879173713607227993443918244856443539997910207063612318026196216672748826911321751634562150097297373949733037591894518236529685403649231622446680951907544113865568679463239102835963247033588545214123358824779510158676412851323445115919212244629964104009185467109783562180969168950144333164639953065195584861538468306879868930430040327279289140002528833091752672185657536329635636758918916438318413890973220036150767866817962018490962152647980572772266729177771280218617388566564191743841824263366305906372077850013342105595638222799252756236319155700349875559454409884651325180787406058282755126142928106936876491361132155317985763630552348282741967424830779681037169326197143776590782202625881018551429720068232488751945058209534275234507402339222299904330175334842925768600995422669141995903171000178014802086386374282213701811249323186873353303581846763061542342913645424998812911433315889894701584546935984918581296274427122933503468733491071589065879443450273495093139510455007111841386185055011423922135010042378707776085797905972794196663974169949635345897540648819578632659721056085038195580341362951105040057580622437666958637999941072710519165193312559938553380145179507787761784846052125734440034121988567507398849567021335463741356035956860380041335129623466569787937234526946165283290376214302176819485409034243770908664363250109772081776712277626915619121623204372712097936327408282132041269975110566433620742088101469044475132000607635622004180792517000830071226058864476760500715146881330796803316407542651530609852186239857126248030225867784015589388347848092260399695066980179003625918150431454896784172204831401280605858241447910831369668795160631678182872405879688603028070267518956892745799483214557652665429796701917337903592133569249185385042222598391289662557354384098321692009116476228646389970180969149602535437983029193734839189525174876001449431031086595134581822219257197583337224717974026949901807285867809700168625800468150149529421159019984203145751632056327478276873638757372560006120703081435153815762030299021977440059546708506671801619785691281162366953546948454659053525712927803615937238246389778477123323759170177892886809640062114294305615655181137802907231087930505881767792195155615077860110745122285365109238257938721939886662527054774286045992028079896632881731709110938712188669213804397880418199714338738332958674540741432861891434812791342081251829041679963254667033475781906084125943313472788270225147626244749728692011705422852166730997176170367692330315880053099864125109460857202719608231167231189346827436212161146117765561904437027829670156123221544559543720155215696820178016123065174515781439788134072573898449764409609889225565334492535791453040142904785822055788478214896260733537046934598196601297974072911077917836106166842799812506752714655499363978891100649738777554816481392829805444688887596403464840946892526439950454162433601229906947949044347527911514495314929680035131318864548386208295252355115187347194947124470524176714721426185115758607044948939017934629225885624584259690346981189644758119033964664956417434122732574309563294052373416045289593369989266274596556288028550079259768884759433276529338942497615462473841062288378569283520071952247172665748331783301228288314891022878973350575934600238841879037047519898563484537399377590183139964756557217762536452170538296288868454211067290877935784625003260066123045654532468750973235906567522205297919382193220791019158436300042072024990205624765434299268276277058137980223621745001221757541913417296459490152144341388424852725143167138945508602079261718843961443091056992952063443536240161405858420820506597069781564454539127981113844874920633853132313314307330374410498828641322227838802992611406369543914756504629515242820184040460086722722345107585189574770682211955359849408441080109998714822083019164761650877565566346985105287516645697499898867966365962287387863590563972542913054078697634655053979820678721768614228223344871542407304000437761278243830248003832605853377928937777867955999224800133371181948263832839653791041699197170881731700258141195176124697343051617780803709556103915036666681178330334497395128977670642430635289093854008897119864234725952342589788665855168625419116650179866198288139176104424126525863777970352817622620865802290913382845524820419603154741125881243052009121230268670963064525049735858769075920941065464400924807786189891220059989187914312623843348070413714259836756712155987161693831896510399670315852325943421629032706530242421045385222422523917370429387914486065035050513524018108280822651049548246431767937102166886997869896264383331264306115373075058371473763236529192096951469040962032537484292245432690161367108132484491240325237340668861969496267895737600714078231867539546711220100227658250647475931643752570739548248434285100847180100723303906714599158095221996343456621451802787299925127274779005572605735268073409169401725278638765349284744362421147086665678795920296449084568841637022164184736328437993425748173832060919539206037445492749544753001933800556684915147988957879721808162015305134263500776498955598493978305826760013578418781169329933673670881069047392900758666129378639917720484088616602836623684965211076821837514697111226480383295991259924374653729253686822476211965963600206580585442826423708445576142258438017989826084241186012419512831369742445066945021936610442997152810548244571671558193444235576583540330995878767726466928597510010149541307123218259698975095035879923052752730605603152317326177711535149897231810593038234701646346672135647816288016461679809074300788701654684262430273019339648431809896554429214297249543833182739895721549999447323306022750928745063949296934094713321777129934950595137907984131517083619275906457256815802870186242466125561842364491006119395364036729540488018477564542309885742898725652137297803525206818355792293558332378283114641619144740395446422523145390940626688560881176264764028962025643268076948720414920778692112417878710118567030587749447390702794206738822040273712115810871911810056636821084262664422621744406096439620197649431842556126400906741973148995178889414318507553088798013505804335386699377869811638602642876838050732334860891598876312031516726553377109146030982563759706965524358077901883005715105037832790737018425195900682319146637351589254197466366601205948409043425706532843604947331699862624659650735154826918128013846081447923543491008015765084061662172397418440050222300466458386977891266419030439418177413687364213103797343358965685427070175883409898332668170608842403914918586161869813202826383552064427522499783321809754349400371966365978113331062540671219131472226655542524993604866632002436440910150279543439357306129120567833325096239897917875767862565524991156033971416624017879740349950614935606790572385041208605120514901385143571232450463898775412151823680831313905542465982072441568514154435654590244380239443431934500375012386088204578634869862757534611585439571250356419996600771930678090708962420041521624494664413269608098504233043557581859447385208185404299651686074630127383010822987305888032823740518375794381664934221040334729906843575525871396600313820917299791514409571410018188032705092928299349350988270376864741283514924132435462599288637380598897679824048392559076689248278738436629224256856273206112830453246327457572259933737630024438070235331234904377749900496780376742258813642294250218479194492597300043409614529404661324426790477810241674862909808596642283742057330857016580347369933671724774230861345594170714566544243657663723104603568124754834194817384634750695820275265351582529559174788354263591121943557223446311248209961004807368412216371066556722128265474871712814052854863016735881719005313343520542982865622924839068038893098651177226902283885623138823530048784513881351554311029853915760661355084138570492407010377022456669571140131524000012096234393184290910311782154332105503334789058605881977362505734405897795630039188222396694704597452967909069417689339648734182003623419039000396630036269192363479391594891555488831113588095135802935832712900915317861639505496648355326944731623953877652388297883805420672178674561946473321136009980229745135537539693455481600304353930617518174651870031316046206652091402374539808925523327569708130770809245064577015529604194298675274169242959760214959163031376249141443273458191859059637043449359933274920750654863082622755681856035600813498784614967021978270409324790332613842467503057688695354529189046734131179723176628812635504005517079380085493164563563265393655790484791547093514417236794534585530381891716886926012293748059696038829342433037245851879607853723839610064099838346622825079570976485575153663581942709669034209876330285739531934893897013474608456183120387838465522146341232293544936863012121479314229417843708029497978097608659514538441905149497165792318539447353957212861731215378216303611289510431234497323313658034017765874492673479059934491897320055993761142020190236431985743449166877819828013826300622880745492088360521458975637482458997532926547687808018477654991105799020912760974721601855631125634536841787753142671381320553726690698189753737193944761084673810211746992482407679227769126799789322949714418365531398920509768364173812680978141987854379968192702978040262622073506980709604128992657499717953731599518259389549447834880426785714949444417620000484020261878315583461716827541308756758991299665257656490249798616631171937284682568284159022112009751080991536681186803177883926460522259000786458547247334062173127607549617200055763062109007233231590567939741237286828756744546636451499098983560325603724160497237828969855450926501744135796664784335614749444221301627389903465557618938791570966146676170691160967439758521664972885947591877083024829261822957921605552169354998503522817106054605223133934749071504620040761352624728369771616769038106778437128711516377770795259631668156902019453663338425573547712706741890258316981620902955353114126672545694031231563355438504226591205587464182907395773179631961242768958566697032433487221100034057042644280003440506001999542825569140536592424529478277051380779583049665424048970468081980408427873183569739593679404067294037988991867573732031754680039398218651186421884935479073611825465996376957990248305362161292309821106328023378264250007215036202232421786119145941333662157070693573732502407971849157422027703355230749223479105093098889554549143156916952308066648658168227619654617873199499742487515861577017184194203038807944827231246722950534857698464137181362339375419654479197705423647902819600506596910653644241219047391047437650865855912021118050137944479345287689512487964150116917011827314739922853480115967574791858336201444960231520866232025208265240050127080249217394831214970185394501254657665944195809615205589802481058223189634574137499892513433761647745718335491166646995083099588780447240552274707036989970605120412986061611062887454528340208970887706512468118616995742341563051092380414881016030353653105791552043517164391159552004817797244558156501475144336025956466526067290820560775152446243570158219646045437600131988346338709025232362845354279284291608449772896301127179165880012099584495715692301735984120335197882696276327382291056932291789546536587040055842113868441138702180720979314555449553264049488034285927415301599811870269224273227933309943328771153184738648065811692451730933453848130394451818926475463871055045368289726310212421504784184220768202944369571387307328367383935619845064051437095381329933632693266679066023726793942626665771735367033284371799876671722455983077589060649166877529313120193880992521795644852920275743498362223646440553600870353549133452901763411139601649110307407090305697672799750383555080345166018451430031866439520942207318469799012947490402070869492450882800762858927365571671122238663926725196979383752324702870521842663750170815555506204136251988563302564267067152331423847969937156106862589821061933746738529141902827765801826237755543061346476464628551726114029637236913929270197538974863036645326933943440241364429623887401364358061918481257072913078009661123311533393723109719655997374506850219761753130420379293954160167237914373679204843058934147962840358779378155221355115956556154589562523566290985889158516205181109353588059600684658247175449310946035732261951745807760983381858957826061151407216315809990734268960907751804662392869091209126980027928616181899277795465581299185502842683451231432836111376166242964075726618367035454844441317027096712966566439720195657504704080295555774391945303163415893776092418796414928366569872727603779846852252923507043110697942363250705433417393185101018960370446759575831337328034340242155522277271448473124311459540063123789910652982834354037243329278199995925034810077590822795540166605291763086995579229671618368261636313080025857520371061827477263933387471023551406773553569943903985637381284915221860714560430020233782053672349067938423329487749544448632081237626453621946219883771860554993200695752860174097442003600020402544644416565620162556929521898103526195965681193202306997704808651439849960939893083053565151148571323503959583549811864626328059485764003957436007865385351370415295719836158726726776892412115733440422629979197448648050899601468807298858270967446131319535319928797249732134459155743744321331586292244032012838496084083189950411564574880188437523764220809591746118234752719416338431928442908720991634206857044604885543047321248959743092430649639489313054719989378695118980928659297431390029150801590815672962658863755851518020308813980236909391855575389462491651684056875503329104802832706495662065219286742210194867742228387964816963794948938230161331629417149570285649564183169837833981857921621330419630014490167750428159508864480761573724154170625772035638584670046722363906890082247674228359591640490809930888444103507078614447607485197959321590312726452552345975907561054609775871185858077994657298817988439473632247647751694107480639912426076905784873834866439625920095220206616391518487006983515189194869267802155471313831596681594540412219334727991071566686066238221742753550101663790166626449495600946751243331428295422813158751090440370356150751865812070284399467072334547071192744447083419495088520081309122198510831832540859025984522614293676305975758753477611242037021917726767979160030684329947223654253567525641067885486123363639742804171920633979802277389993254942037914839562932505135241248733360868657716217568529423289065733680961236077338443823405511169456131309246312112058054008302882843344816177601794361357903976299268767797558434903306464300505499915720758601226199623531955475505172259163257193181161718199693658238115890339438151780445266671435980950607378479763946075814546199387664713790969238096881385271478431758203740465104804765526244611700778071470583010439583490467414373259852574832349112573118372737423278923081936868271043184086130910589459509717836232999099391027974558434572607333212219192759591759904741318601526558867612023701748576630621360560642396859414230900466054478840816097542940912739816313635786600779439286635102280430515129563192621816363032802489465322735279005285900714237553966906495905711365228323149210102775977766522868797209752338994356347295131359042115728970315234114377457073490651958504743296690722320625298490636403357109113695809620788842363452038113943019435096433618250833130417998408679691124851253062661900883678077814246962325053745973866280179491205793589400413275598254770092911588915614846286073500916453947727551799929971091099680126402729794755578894450331430395971222874152085197094015551717532987813674703010832569800876819357870185650301496800236467536067293984402097944753802997364957813523291664123313917544450935332375733256177213264654162103995500692982684742311920155689231052786828259465651576573927734304526107051148511798029535779095420446846909067741405280396406328958833972723522321310864914713232340150877855550402915180727594534825378738048959735544549244583265697274003991969269927344069772158896253525941547614569776080822598950367464387834089922191348607230327681440411535389232448534750627080237577467655446301274659821665576917906436519565364638200246618068266587611141143433207920497891063587080242347370835586822851018235667921044959139502152634063198206954770795061721933247705732096630117800494216914644166864815640441156734534381065326503049554130398598996067703340428693321679089386633284575408725232945108797934296716288351005825408231345073685792794593676538036394894083674581522335470808924193385518921559066762270334652023664877938300844975635098148682106132042571737849955598361986054270695736912413205064057435553510790731792415639995429845864966485175650829064562817759966224265643932205302446085095088408021430249405956382013689834660159535643885722892711675127762840165568318936055787723306399690386237146947219575382377810532507003025100366819520483121756491872693415516729431801457232970527379057030540202616087068938581377341655606375641078431121379708442358790604943759513574478276259210363030556708493100374559235226083331915375384215682013326253714745934843475625448580912927289494596416529879983489575863678509898459955742627634868949082648821989550669252044337083235630655552475510726905059929102386611107463366695810479838436268567044855886281870176416924003018778556998387607685614447977695891777632475436410511113185068325288725057600605996182180689977229874405013103087338144133939817464437094197751550770509531680627282480226878596788078128892012157995598429191726418932880774381688635369107610498334934516631396678481562404631787965980764221645466279899552858060173914511819818007999047329801183733885267295840678054420866158302880088788659193082524027695474976641543837731296514396871270950792615702557846603960254193555989176095690245847398653595385709385433825933742907790021192523239346349426128388579539520079053847501283604742090613665861269331637302356759733020462631403485191198374504617581464602011962081292900230876015237343294307361953794787793474610572587347815136067109452599613111605536841792896166023547847522371115513957748032113129491471403638339346394276622294634636551757841397793166002970137815972679996209493973257572800672433427666074857750451641792469283923124823825763142345153146417929815047638024661420201175920371158854969333055623905986783240038212233226623829909250641676012201200606281858331843916673865990714460588157562443604410975807659996773041140415104675959373831324228663416741507909484081413053668886337133501701473286827184423946736644424109055067166225271666946442641248362465226207533457447262308482524520159151218708960621253229218661720073105314888524335223664080072098588459863130129521995473380849509326951970468471121294188891596788012254557839776783874476431787076277685777511260421462888825095526763072366983957188487071548880582966544962474132503433548848961692584108664354717253501837643850633900868114053906325847275056588903008947843560341910343566565160868714781822191349326387852284020406438155065080075231771528738059082136264647773874966239906421204359866622278256020438028113366597100623703981001763199355511919578966772465809761549819032081893983204775493502978704236450626531656036101159423522089828109191037106784516829950576921322396398576544261150796198253512865220953835746542758416738354983909744612555594071249006799624168769395670585277947551755686659929346375193146839054627303872965506849515861985648678429093794197058213294157067513789182797358127917838700775519236409198038985548395103081945830359763563266091171424883983329333747332929722857540874482866163783267205551036367045723169883825197071046313748293384602767979210918236696838898909906257396319441370277305949173934879576973757842561906678818633318481467013461818315314739658034801009363721398225846436428345543797001638856941675523274694818282127947724254854673171618075138622713010111500714375700550993804970564771926849636538394949846223980676341411837416227089814206025689375812376073538407014670068615613369221183499374831735475814651409414667042062148902169518124189410277645846066675940751946629657651447910119241710085856604532678120018392194328547461034507123296010677755967771890408602708134479175087512718757210862965853280558887835981707225606499593954242246237560912079829301895391499925745734506299613342825841727819280145874158231860369441946907647761986691013691765156191506846972828197658356393534259099653910508223009269608482996148042023189304871861178014998847761781804617030320297226272633645749401767906266810423541068565644548309584175303146870028402365325876497595854564347623450420168928481324625921891645509169939747858236834923173914060910532497389128229381368928586894944896437110087883829999293568430899093724966072970052953375604189351370472251920907230145459881686283596705007508834268511978421516438961101964998283784719463176759427693118626723252375220427828678587852392068708321675908275397889776754306411113465645146494756073283737545138092002888029495234881644578139978117488223000738613509277981342665893051594433393605042789805457454977374543965420812704987134396408486583621840820099014112539354402665764810263999187056117392430564630667353607889161832966327946822363127885478582772405706055741135814928904615029899182056861623468189286233365439889217405544986313059132351426827991965365392733389030544593810578639210244198585285202992188878287235344019539720753649516371829884169141192519306327799707453477395438369198659111044514918387775588373782233719491839354385663431539317763542226146302886919671062306835111593829987472847228324901270171029918642571609153338268632683855355062111453684588538951634892126552572877022486235949330539095652463856484539217652363182875979437292751995093157454633082763855944541614625513057232001900710315018858416166325422980694872075197449204822939189230299981888788926223269344330768039775823966674820408293417068086407368436465616075222743688694752008464547035919393246375678164235865374503125536114103807836837441024610736297803624486910656019033713164658923540678648044765470362695358246178515993044623448955295160483749802818548997475223845358255720312054307991188488694878805510287034048603747662139859460102079439244091072098358676907858076805872603894887362232617368263630273613858186398997457897405489828956448077725834127383674079947542095092629519744515737552916922037463296187455812229786513781855133584451037013289864696007239701642420047538046512313730001458628307727065067153300019236068048816843248965130091497538966693922732811534137336675619628495782396783477361149899170431767436424473319968238315372790975297758523292232299304413085319562341814963587524420107010149232582442819289880240473032637573322062010523054072271494340139308796706699341650555335632292833677063932525899177090188253305231068973263147760699336925143531437664329472052783935020877330104848965687063209402162377840419028225162316307958503265324553068299976588116863991755183663746383251288252265439812682274690520266340030225985172888213033831366705436023723823175851846424745593155359749440699257529033648569126531796776061501665971073369812851517744781515294168141954572653186944657543220975500150479304519431819471180353456759915544757153408646661386349918895877224838721660920764832330417287230898400265876849212947309134061627545040254325876215445718550723020612148487808910539015303413804327901047746447770879443087349335724320897187812509450761532718247536371216674622193488698757632559784590458399119624588637994683873390503796081291298286955359543486117647697723599437362531499827312917012536418204502944789520226038412288053506214646465328942758484959167383744174154140636999053187847282878925534318631232554419376143864590086798747462646370010433144453518038565645693350644960091289217941803663660985649862085300615391431033675398483730832364158298254464819195690324299584919359573337738275166506980901968516698492611658736353963609547712517699088562210062238586942449756020983937863216137914787475268206622094835119249712239734686760455811722679698103786571065419297395039770009939207109898897192811737256226666989043861934635987022665549780313156977483563801783876257898271608217439463279920546615833588453509451852242101333928790119059971316269790149664995133883434636904297322617458660338942453074995995028745400887002006155478607700030076639422086409825019157191756415525892893225992838635041950877923803421047348344340041381089010788499427071762104279226380911601954126948293650809421813132400729349195739563918321268595264381574227912327501794140031031839813198276096572540574153526690953466292696842822794149901120854935359537986249595276616044917906181258261613924484750230755093058780388498693699157827399552984333934782599710186109941615627928165217785243346651378866983168177291382409794700770253553765685964248396202692518588606545802336456712964707917265678745320292930730221884508341464872508552575513051646847623550403411126045402557592411192176433904875497312862450712379062586116324831587090498222626085526752211651640511040571593454606990209725160903716724854936863788527260364045828968705861787144275273031568784101200873323276904304946410095221701505032268363250060454902498420496755124459671362283105085870440634649764927846277496104500814797973534316349408785205943981671850818488048219731734565689066022048111761138085982018865536418048194647987525410374247717638447966426413688804302847363514270416875271432522043524449262110379890918855895216324074459044655890742322319269152063234774112507788089171706698041949857315776393270931932849762157380172895571042607995124933367810453689161223248614689517016604358312752068379071298091063851860737085496183031697876251348190133501504835573676079984585159508942068053630694259285635023696710094493596930505568637541749062991812556345213713528459702948813027407114746773749677807771965336110256771950183523166989683210286469725462459173117541678873189123176973675367217555707504291515437679162692755598896488662234055216954413376670154368849655348806905177158171932863891641629577686123128760583545978604324722686269250585856114263687453221887516238901884172171217925444186351903811427812555866245791437583870494921018692694549605488862752437607177213112974676280126555475850592167596189904388641256345843953976931853983024084929804410907875765089183230480364271434446664130301864070121490875305449982223257496772679237545905182929100835125693602002074168717339626821825371351255979821172355990066214324460122737459446835394158709487470519053968862238276687050426688460976576682841263111893206056361351215224910832246251580751292299243724037997314275397435926268441405419254385746391582156913661174603198290731860377540385472850994394109959910837140951810304690339238633352706598307233641181459467750502140055878547187231937516854957219084191041420900881865670008711395242090571379679424206240351170427859657180463908195962480646943397676507962137050701915013558965613851447800612707822110990290986815587323635914982547901768472702185054235309210732340309609917201614561931256596100945599379859111194444122795909469071667924750640979229365239620072385388770088960482778989029905497324529715978400765356512365788902072302323075749158271408057074340072906714510809002109750998187060965864767663017564141088015703547924995920196493274366481732687138930362449161287500044787854388342070033488874225096389746037828862060228000208147205467740416204877844837272779256041013816207277352567223593568227446634863339542622632867158598637381332986437513095773153176904250368317172234074348686507623455517368469814960163413235629791431641058820170244485441659454204576797922625540629971044607455845930437171414263700896564353913341269355280457463423393226774721140916159044862809464733676529973790523538720461899688489723514846031595334587431851022970485957911000196410985394283146542792061835819840869293124693274386198036260234298171083346816355955340267146129961306353274590007341068175389880656253731780217666333930152067890383122653606147276622549844809077845855385101897645436209442498989035617026997353697924108397556432030112603226146123196924796136302982737521712939715244650046335156950668265758440238096558385173999749949379645074341738762478089345589118926979773087139320631141124459903049757780788094846269211370171779597918358700215743717709068902946570758114562746676886895877894614610644964379612697221050906613225270720416903279038470763471762379066508457587784251094514863849842202504209049304274218404654366917594860679631318641518546951912727114423054629460544107003723928959995395267806301602501664592831516724608462341250402120794309487144628900708208795764375357183183042201123404024497410181545986647676563360866330209936440972486958349512605249535732119711370843186970961414258471429013538809595753831084046860764208071381039593253913953604166618714171351020453063355522696560513401658237239296539048282770340978389709978611809903342317078394864353020376138336424792808389324884555251078828950152356560348953777523962885548455448007168323393456612843875708946007065961297785182476146466002925718516109990681632437097806107109339328045304225268291278315196568455353750397800083019206725986116301673323557147520617916340623869381320894997283157236506889492653576441164107372612819163799677861458715993735143244452239792165613299570141782420220316192321422738686413474012088098801940863378979969498435085648608978565766838434734096785344699983453495270421426253210750025260809159070578267484633889763251357849643576096901212327140005682014144456942467105452462786094013690339370956802844931253861207583187423890932999639846792233530901760066913892295450781003132120826864442069511799190235880341316072691895661447633449438172673605251935231616057670167204861249563272237443601253964282642002060935090950636261694009910628851426849010266339190808163042606149009863635790433669260882089116187999344835759917475637565209763091336720239944321042634041003998889748040466267923261712311359163139083435276361605288210384775771302089990933360668124224033786271379248438751530423349734351728978927736978770548575243907015504192369499508186801864949567585291078462284795304878145607534805333277876946543432869179615802683802361888230483480066420450121175964611254674126625829990665503229172432879852992562381953443821803253552490501965886160570355026158020048375795337483305438249979038543497598460633707254745282638475458159291742090542637593278692904960570752637403557427436946879797905385445634954503215857461066551754700097623583077577310799704372906367917507650596525359756680807562696176600950762390794318071331796255127623622185761273843443052934324440235900353750802415680289624137158349603233336648923657807574702984617187016671007352860707190875965080352823327110632574506404327030203040508421985270826822731721366100802451569092532277837453886957007755580036488736847595408071752195420900579876333431189819054961085149316203063159549628613939016057216377223299838450289949842905605385045777943361333872880188487810290456517439578532453527447790074666620475542708047911116247903931454463868735700241875997349459772267539118790096079783527143798816685120319518640349953363168472009261549864930029634522160655496181781415822663001527438976221583729389302341183399621409139260722509937111462484670469680968875788466013477914798172188536681594757546117297064012791298981336158540256139403974097399638171752429118201374067910068516730356400651112129765371779798735583887442747675417290792500144223295243145815700333747351919557813416528153099325859559728825558782869006709463689716065357369019782034355677602454032576083935722167423946550759556950811546742701517661436832563187482065762746685436305367439296374681793164576990193250287365602012430206542283500425530091591874123588359644583992129115136525775581348158799808643725138509170157115363341959874028880441895065166907833306875706295847209722395947499698770346347389105699686300437492294637283568014128725740872348814622280018472903780138660411445713533462118971985791308059977871529474710730915807756938918777415513463108876192161925740838633721132680928346711192837176489780482306267301643722776424366595393030499239026881860905147690223571614426009139898407024456371007096876689635079501724895804124367536627690620426439729422156055392334945852568364399826708285792694563995317526042810374739055003578365859051976875521348822620053657567314634713359767067438134491075591187305633854108745551242607529859820874898834906799277360362265549107562226607004386901716536576660648064241873620406243493452417227913559649419166356211755776799792016259473348431339837318384466294222653950888531423426998776983632253047147943075943318792935187072497046490837459304951283341483772822290714114800144222998125705133986065053998118421781547199600696337747049900992812848138328242953127933130444344957404725521365014220725673773442255238285701813095909245480283689676060284763983109875396686862980640990895756297310525624383898176681080178417770235329267246513404282289085062862805680083177681860259799566505138468796200735670202613457417003669849211061389397413869010679919002296905909938927215946416084763591580453119374613449758767637948341821956040663567037482289466194487393280033624088077241280109948765645254055864476493738136933737054384367491397689045503630349291364042491599022219471935484603347522294621528440076799247051334527309548161113533316448108359921640303442910480291531495656821140600036039746267294047889466118326922878992191206069964616805918379072863290233458856919352505524484959355408077671512396324792322158149966150172437065372692837222023494899789470408719808438084048253266057084619321292291745272652740082321758271683699058998095344442735282446465910901477523265301072729314551477140563056541797834596541035328574271533439202086814124383726775835943638904677273034858551158673490225469874768754905759495615773101544005144232285388377655973196231539067495339169171589550939657722139593793145301560387550411260669175788845775055514670731105610847789217852025505444453346967702471069663657027106930802476264347191679307219764569432756877324442207293353792819809858847488505156687738229653775292080458080511600508542305191724837523496290837475999932002158745657730362681731822196671531835762539682270322113373037430134072552793417916687819624012197582605971090551254572366209978877238396057960978011718806257046757723394364464847426693409153981090942032241033331716225868902823592033667295181626585829225786230060547505902547507850432240695445230344015428936383831803463589355939325700980805396021524361245759926022396026341980439614424696412281512007879833024783211102456928950894807961897144706299461490004978796896046809236373524977140534410657857928644810856083475298173972743520489649544245830777694323921535551154760440848210081475135525564220380463158294333732863505655042516617687694167528376715627497276787318394722580553279357836339443322677076622037581101767280495811345264782489523074902912222361023540204690564500527527239873820182541912708482722684439672482663626763728435174531418321522484004341557038005187257074990296393411071755123481074048467193143205572532945811889502202669365856631485386021406596374397177166325694930916022728723774022129364003447017207147095468983686527254198444881372668805820847609070216396439184515023833333746981529222931509913047001945012881492093690486891095323710573234636054089329624676448583664149804598801823719827693863136782894943583278742490933309366790993130482472642982843707354202411789052852916459921016075863818346590252104530851595577036450316070700602790956754126401820878043539144741837815447944396489835068344974365341435684220015116791005590113184724066199692958841790622790347363919882153655602322259728391995144356938312006734256527638884645819297644833206484708541312075806699011369730650137401463198606159753890000333122120336193619032838229934180707332945821619970108294692630685511388737608725805964910715662267311506768684706568351698407954645157088015724963543400447303283998307753064829205248644137391322854298741409768235294668035203922747855785381435307585060326445167102431571991855395324797283759834745527190118179514954433797331318197229438975735511558451817231705154517290523607167168817928581655611943791588914511741214562169146187334488101228650029895332527832086028707651865886888704932882286034260235598512858522110401246005044910447133703596277165834183073237908549762659048436655326227154586468377054174785424746950222471334712500889755162367871714961984738946578526992141084946864655739668935740972591424095289991304756564936575862271208116497818059554406475639124185790483123207743756069154644071683969421405334382017528860681524165349124215987357987230572522843570604449990963713534834244906312677519836428554695847539509710211977855681203889581418114646579181050008498432919842224284162874468473988292315418106666257407117569958455796624674813215736048562077012978645438797289434186004706597737328350351740735265800390802555847346200347955353269862223476444733667506193839651594948486999552300139739018874343528907967595696384695801957868748265086156055383756425174269133999123748113250023494420867891831365351649029034956502890386760505927335682566337298231079902399935376237190842433237182512560950356541319936263500629747327937803289448161118377444567357431002622400065294423428035658858106512004757759017951635978741226747997855128728203610420610068880512890599755457969138675604385738878638573257573942243799055171620172332015287023353714912473670752357990172998112748774095421057594714956185713736942207025406921157961050597357485592131766069198991523326135240323759153329812732389822846160919551253270702242306949529208289976682677127160012667902882183284139995247519055547070973823683857674400033502230074583085127804437448075603455600262813806071051876494193694345805328640185745016417590679325160085994865410424362517271373897528471265834277756252727441247448970546650443084702734230497864368655096363559244945642318848180193219798085611507637455742102544421669611011226729413576714377914689683647868994632901454744724495100189239637899722174063984272403712712893624132245215352674610055911358254968363849951086041146037669053903588984108818719444617755272894753115827573319822955856329685635482245315110068644678800254108359184836171219333208741571563104824534916084843505338848410766504891899819580183704280362209095829376305639925677454046931550464425268911519019748734605555919241876773564389172086129200130296752175500582230723816974272897251858855062446534498737121512083929677454939006435530002577728311541856530096523503552323965755531478535202795827763678430021475846505942122494818253729472447535748366665743292297738397955165013175603549372951076677184892470648233508112054230310747576152039681817208179585911037263819730868828497640647086247667279694130785735788449941882072914065599886762803093210204938864218506825611339736111321406254828951604195735193244190900088422755133517006432985834162887221118786736432454174176770551755629568353356361289410720830639373151855643512065763451231299382076974317543836144725314849596429155199919335044465604075677716028890831556080158957894808820873522418684669571029506392696417242245507124276801868437451896523628818780065087679241585866871000995993743998417161158555752198184949069424624612755636054965894455753336706266098886729955531859630241089054863130999645860667368266687377783791830422450276265944765567920705269140817443193368326050612928743294824714240884187594896876419122685550241829172486850222575183650621051448372956989347630957870702789316493599267088961355043482167813218824605928582574866598895547595364437200482341689424204241525356703979440578649818150967650668067520508993927853568025620067224464542199204384785719301055854989912744984935362980275246109296748499450854039590902956155366372979289412551430085311356822149764425285946046308139675423486177228809376369271163328095830490709550177939775119309901287117190912594992550822847546040698808343033570790323546654551740500420078168731153059650807644345669052260815560638355531857828269327358787873437311987926551449442361106100345071718294666901606711622944040997020578817915362549691248484689762802324110360085663520145768427650792671249083375637216014606909956307228502126434411530314894872744305064688544741667851908666790986777788885261913192790223971863296277247014390688696827879305662469268588234234203054602409635776797803841901061920341053608931074738770729374332617646164078176801873209585393240085168522928188293820863568331722110062035787542729817015357549702600132716519441152975472409605111893871942988833416385396358062050262539454143944698224908494030095344524238900950157685831027320036938170975393021985077585735861383450462771293509084947303443948320556797706546464327213177816042962873690861425382248452385034960043693723296293509481623468040039184901931802021972690926149312175654418648354532158815290810974255981982970261692574727027450572371195011337460970583971781814109990310676504231606779914652259435785411731185375497199976588937462576909916104305393078212190304943427984837639850510157337072297136076080213622041988412134504158604627690182930690266961793321960696511560999631624993891504276576996440346090530822478409937498394405594578018135683273905561688522305382194732494957383552590173334400747204032580488108157764466678794471529926004114976068453881025640994695814728779017457778457603529603495427851008730052459910712181733634237016240725346835370523169663965921217865446442469670374345019182035037334706924414693080872820432382365534635337276472922420700285127786069288081587856844475900668278718988117556237881219964266104849904498537772657098450931419037379213859323926545709976702955464506932295689060924845039377449981170142126063009355273077812804692638916590971075354156429640469989741028522436133821700820808786784965075392174238690851630900464099779696995710793413576354345392016228381226140772689304243825866065197575000447528771629079474742505755250217232190221802808275829236777027848488105981185646028040912256300698517677193966739880666895585165735676668915331164314211650154823821189809129501422221936836573705415044488368181244224862571718833618591065544504479041191867347030217405942432592461814433375427670443904758991236703572322833829206295345613833767768987239601618216907292158498008694215453832448344259476701210672104449696428585086761307628539138389291878039921948645710473436899013810525703419693130423988793491852637895702245071289881064139100472111179439203964643819468091844953374753455026498844345736309991472016483686964358604691837530516603280862414733141614970692378477546481021891659058083923586633583594607839420135222134195696344220372719900876349925794740907251563098869080180496892775059453326627173395691378651893681884974497782563813897087462349414376235101065664671431161247923079953717397989675535601839291351750300156942604347329396164812607444976387063659389224242400639375966391968779270877710562793419347128118955976274133645191931696609791464110201371546191596413524596602761358401246773586281827860944966111794214777653931048666785423035717525944683502152913092944912571694432780640222383066481370474697729281686849892290347436275882416931943378563705810980127358247722933275443935268891792032751662247664987831884940109323523127638408029631750238084987078209750151077639026804561409659651382884944664755994375521775877102588489515812665477559128074134899748402069182233477297519700969602388321374900643823209554726096809536701670079519733042290179549786827490083899346280300157384772811300229536499310553131898325811915280862305894675726281299072408725719035033950043910121101657168053558698889026673382488177046670234958944922930414838228934031616946918655644249913516860624147136330771281737784694464034406660137352678886920091731394478748149569878354868442331041716777050336904899637391555848217772364420710312349751268049051574241485418489044245104086692593134745710675126549994086200997437927962489624132714700519968647745953286698749020729191135219157570061548813448229406557795884316455643142208916579481235647036868063096948750777259189484819222983203170848482100558231780203825796840687886017061159905700873990883618666776135374526137673856566398030969501290200526537074881076568996673971825040988946514718904094904626047022644882396194368602848162690212080557256129840042815981418533361048930927936895212162247625583182351569509015969331670283580283266770449560075247718996025542559029152092828077939135252615249693012184728486482335519247040222525989732322040505789254781424164799364808107179679939741869961351786661068661600901261629476217354791538030461734354191956579064490535161139242241232404456092449505409926062522164486174667212637953227147749547631386159758249295612907618911953202241961791175377345416585256776239704376607971832336317481191901769159100608987280647167767832103825714202588154576584950506066384460378393543795750991088983763346736589729831815374999154298218964462392470897822206468248912746775176851451055072355438160939778937607474301897185610604698563867299800691234286090694050866007387992550052269002782285882983181241040993100376526176725133770427684661533579478694838144908551027019509756482838768596977409314004402259935946366296808561632752713536120276385805633651409363506090186521738752517176901890002654943904066401769844598209468624961947431267818257266728396699337299362618104466733590245001930305393542062199498232646671672469951158581472642371076969377513283280216428697059722778421579284635587557182800690802003253934157655522970840736253739197710433919065386293509869901156288677846910302346353248139337887421354261870609837960000716460784303746924216319253192195830897156428289500064361529993840322056658583228587893402825906099039460149108605419191774673244307395366628265607437317591865041080169739203400079674556398190531848925628568842731367400848183114011689789832366302290172223460286073369455128531848515382438265497655535501862057149503800718508252152259253816115349421668723257625767012133394626389276468913721714608347453168551403967903264975344878399633136183245282786190578919051984186734785798205069673905787768189105899702278783062439453077753986002730782098268094482130837838391718584214611829114775357283982748307399667330704687494087764206569727587267867924451990963407750413305812562939570828018838677630368296910763411625034981778699955335395626631774036454356557948792931705358020951153935022067538953891861441796681739454674620373259051521001604254741182224688429221884990170377210526221289268301520189503586510230497674161430871695509619387914065630851284920631646782193988790476843375586591961178255304951581509900349879458724166284877945994993089759122996956587766903190451583645762388298516128790290228288567809663914684065587962864712776658232373716614863931062333402396795946167391134671279004205488430864864619004223861743719862601074313170447040731205898189956693651570010478745968505738564164654024863598102690453481988015149320136115332548045312110679295453533324731765829247748765625772876374335760385082424747130661677186721009705334468206420446165490423992060105580315697290093204217927919676332582635363911845282226764347958871743707056758164446109514977364494665150997841942462165160364401183577991598567637624475536319881361033613681177528375956284071723944094052756116125505371879278229602809880461742408722203192509259932188135307855947996440498462161448844204179519159396832612237278603337400815871685320710041990269703104700864953398154913108690043699550588611855849648347480594429034676364974598956665528867470307378951498243979676362812569022672080240220767900595836607595133151291259590152861915080834771315847753246733087960768905029399472748255774219830217986840119058404300202906690178637479584936018625586687108838988471454541575412863404598807521548440361409078212445874654743522114978952670274856980794170346409711536567521648265542248554559090028153823698010237565953528030131475232205585372295496912724713988221713803128814444958555353145044031801843273644278429658511898041662872435609866760283666484731808154690114539070988025831022563286436779003282684663355949164493323183927070522930172389384062935074928040233734807843308883400455902604636588370766646287837847913770904128523124327565376028372173581279965436579652449189225799792119255664999933851542798591566458449708403695540370113439479261671482343754034150367973800697652566586138265089765111808257664241227131429607584569311090154794426435704277506434387926716089870279608958868073588100439037076071880291163884336931185903443436714798440282355344507479583790860656099328326670989170815850588251284359473337822120799860363534355706097996780383000467751844485177151844157483590382937130981850747523657645828162803974966412100090601345513384588139229156072611805359435100004733221444534848564930570623036001600464844168113040725364609215183323042030545502487263566950067965016884728429238876731004632258949059021432460235273293891582262707884643035535894007833125639423274890261006289194429854509997819120045117884157813187647053308399825230619582286814819079657152844482369986672052479068473121016171570198480273648431105847117983299333269636251458088444763258009529365038047152870849772495796326725390868814352718601047987909460491420789192610480217969096749368385900792054556402603719695098363978164744949999641408399274583495953806496562624348023456944729477133122631921032976382149185831154607863700451900511790175420439875275910362582052701593449716018284786194718861152686588920193344207450657831267409819439585463725287822804346674876403773364901074971279451761958477769145431616040288815704039299374755669565281836950117768925421722971358516443499645798477144695332956132108601138927626508803246042047468646640777898870676966852860133113693385510545885880986786201456379541275688951997717318168667146506217493527510847718589770019561653664991980692980662491062919024172458632507791991905367768267047550424673122902525072744705160951861061585989059828723642601107991331687101770856342323822897094932140256917903455739441054680716322957895637189318077144859599604533503303066879276125216300823041432392772633613239013811393137056332350980822884365360404656807456694702994809014525535475082944828998454601684248739421189147997581250465874844471988831114424274083345931482616852227049187061120671168925089010103424434621983977194580205490096347681252703407211955546082505639236598417771596396613829154597971164659150042563279522620141527219743294392466825627486793467227936251297080914158757927297770937564088676394729639593361524447711901772061374534642475655137745821268851317299038903349261592656492178539336731518200035986565271034466703705077765653992369654472796959722813128185345169558422519164385530255554055256035700323332322124870753448083012854588613831730133866137479159157147102079958877193720276357369824099361664176073466011407664721587619299146623268929026070086415167643949966897296932639929666584964577388036425553814209641792220953275492155517623454145674682502801320152346245715110095293795527247660602144587217276751823657266720876943095626859333900426578287863268366434266620595451867480893183735641115784789685477302666393204986200528654182666637977047200658052929803078042250586130451350894705811948581237825976447418230344611863357762896249921503049476721697696338738297479896719474930151738789837560489419199546816448438803384047334687191225353922567883683807510331684676763862551950039237175517299268911703293105000448597468901416344815793623923594592853251355257469790299149996209324092765478271287098326120789628605283569371736550096603251514749592110273215179356048065926464354249960163704055166265647398248406610442221115371810412627345157066891678443136752266956220136308850123863075640534047090145426425904739460981224252719517796885323771273144044492111639960776456697110193924047757389846461934655278599382411839089792768563292139136453902785384399830051058785223116806997600918384408515528608471491021540755111079947021915301291788477902878621092002892061771287689176579605976745279843173233434881648282811059807162178010570729522666343033729134704694822352868788913309042377573850391110126936125533198023661086587474371276595908240249285180731228410229834195124825977465931933298541770227797442592927232488610451124602187979360401515751401905625488932096884625217266457037561554537624944222919616818465478968199835084367745777871692192802929255467378066445841742040565864950247693389190090942383695065778646823557836250542438123812969722997663896026687189332881550284469808919687419082909949405135768883972122592741519772821451361717229683366200380661859578445421503125944724593625518391851645659599349830856651624092687646736621438643696899786539704291353956201800930217695103087368589748453879099281851661537944665383445708054718829311012497595782873144886152991169764823470095286948898020779377181889475487422366637546942895287476954534587150025981953713013749450711260374669726491549590282127360068665967252793350737908956209502701859010949774994318163261342929529825269767723428725131153794597888135137353446773210000374533958559376008905383801809283616766945986154914527904555117787436811063843959962542452104791310387888545990133096807535021176437483426045471454807397634242906565040790640446783531458490467747730270210641698993670374437532742178049158917746279825076164371804962977241121359296714002526495893987960222789761844120450904399944960435908557426007755685197125226177287448513187273767102945278932436804016198708420488861747690191437214692292203974353039188801623758054370124716093822042681013378936192251691528290218010011274744880518144427531311695728831918159681559084340091553233946098033609506747524974218668090890287909696164974089977226658043064223936116777282337567109565538357808699171478511735705493817829546559797568984271817906285599570250098206093013075807911461318533001916693279593313998520253010049062625258778044223806505108602901071140086062855271350095882335611037966575684321293316594048594361262968753183649849259208207625697547544417934306346837302304624273223269529264141376540491932293995610022052117908523961869115774436709767910681159803898327055796749940199253803951445232569185028795573209982200318800928642790302723759948424823834397853164691303211031647815911586045499518581779701619518021488864036444357393960804562880246369046874452367374978098553800103626421418548618171906279194804837354610361638575449864060731473238234661522037918624506539206589718953912194903963000945011433776285377183015345665808720048219467227729618938863405824486680564420060990249642730696960222194050249314288015743106423888786048851739336948281757380132239263752646562510292581309735427602242350385004467711649787238028725816432924133068911870502102182696071359752290448561919297928258752829363568617810419101501346474174235102189864118090324578212581606315104670994796836733585575552684791794534324868287011729968394439370920138667171099537102463823538683556294787293509231989900273601601607149791234158865445614472863645668047569887644358221657112792200072949485361351869279901813550923557509502126648884477336904038847160339117648482488846723056684818031866358183438275766990822173283739048018428966245853082141594741916304286427417805066428664481733323392158604559180857477552331703162621794687375344837071210594244532884301095505369299767799360350506757743378342146432849892791927071247485470223517302964404802539830039973340716998734836321485311077879972224301010700783392666321421805509628829855597048449050731488484658330965707331501955491752742725559795288008579067560854696636550143928275177756382160740994162630232483225981476903989015119959936993086899675795856730193118838703550012715394254337844152994971457031479160715755304811292578838328508295652939970192019708130708609310752565357779761172751200955315502743081960542925370414864718163552781471688172902286574486894024598570741933621488438604843249505209469956427700667337273403019121634057543046980162932751466511234935902945823119326021526529430784765929124326451425744767682264392665788873293968494870874244477624943352882839269643371575451526451184973646258404308733743961792201809787828658683573119156587368308955934853381740113202206698133994774482813221024622188202886249513234063230847438052436205668225700633782171259187554914976757396296563524612376190311295057890465812795920162881507980233547579033376481514349653805047834697111673262984124671992933796516499024072861370758848708622596810818819843011978573481383071686977439042256410758142341405557378825833247649984939272770900243775594027470853647340362370462421536159473036629486812372856209588777010801551172238127231940504410356947943728955708226564276053231035356018541660287369054018853676486016797356126771289962921564486138687923302491809096295493073624408769633101507182582565747701286054095958644772537371220323216159688337453232235609596420837293554714891395794349758760010656188334350710144249510144832014385385161511396789671952413746308603333403940725260639818403057549071000634767782235585652908127018512294580535783879860836239898307311148794481478643594240415741288186818753685799573540056608606304650075796382019573215484094922627244443998088219651362972033050614635780393913066720744285055679240904173569643385479062020761925848553844202182943427631173813035074940207528552482502823104552170799992642404171440287368381881333942124877659567720492828127532468226589796420800696543914272905853513579918886903825848784151360980231978158937878986232219948738924044453742208031213053918206610817111818269940010587565675751924201554639422185544296072151250687826063891987684320072148900940594249741720430224542084073152902014639773807106251915108856369201026531961703740143020326025777819523461732577738655911978976013995288479665762363988225509805345203663733437924494014072107251370330815900286620279560047021992117739315962832821441083766832728809717101405561205823103441096009289589902333025965312288587372909621807867702792238834359230867416175598584417515744075256493015537138885562732364245481143683639469164184941986034306479559931556828555213896355644124827119152235718233424988271031684125085336726997411426199103606680682570407540244889233832362862046501920019148207279054180694890823492356729786731362219447656560526376771555705916039777808894968367350309427590469448924416333912427529404726471280365374959953965691779750756043634004373985679467640088513977906609815489947925538047806409038419622521989863998462808825402595896195763656482357073498489068038214764392538484159723423215312737353984441555621341499672386166749926412257220693873895791090689538836982586949638184320914598643778095646442256605892342433332779669958605645634005455129007853404074818411922068977758392802896814324241554453979630875949920200843038629997726666029041925378489771162138824557934432328206155218484108110664100608398591851285608596268289790541968831182298935387865688201199129720691969812286694259411317875272451664732433996481628668474834093425191427588706169522925760645692705838366137363067539307938222352398897571106569485235177881934132604912666099489527600127203221949734368692862167642150628009425752854215989900660076208050371214109460419859270356407885472928229021078848217427480735389898981363330265496980568445567322966491195051400479473366846823100603159850670816870534794958177571317805640815637337665075642481646457638869264509253901708133233441270895281239902005578070951726984069180762315737874621326644944779828064355890189008113959370864600531502882220669549564131076959026928284781801688371627121533414438081629904580851641316077937437997889187312530335074829411204143427460208100373701688131519071479631105381965013326447840184257808152125559555848040302634016163536858748812788533989867311996191780671273698418520278496558399562422779367946016726255839440015021211180775027641019612998827704178494167413965479042008414519198121936282967730216435920738008415874326665662467695895195093018773063179276679649852221627287555935270766777348423005277373178038803134363968224894593320006895446905617069895644408980486968214089838289621441926390884971925823424854576716910755962445278090592167101144003391023397285809186249253710642691360896781642172554787485213532887974931953721330554288166122440992467919817564053640733355812452025391250716009143365070958487559878375089463621623558920523526729070005110859636959184079711615482798392640745318244013384475302487359151008400568340397015274660583817875465349145390401145294202771222575161239287258106464967023542154808403685858376137397023565779908379065673794832991187843306409890363107369258372454606205272126263374146011067950325131461974414172305643720803649045297944845393580230387699411493832301062320369554628269555403900210301426938551799401137929436987920555994632972961545425852146698843027198945988992598381795182020788801081914463230692639636349478995291533268672558444274144016197119374859540521192343846147716956315025962954187261912528087798110863081606664674026477086425726876883784439767849282562732020263693695147091731531421638555079315124520024486706099832258633052837184279319295751532090823270675402707795730110604925269729848703335795364563648531722640418198944649608067375035775499230359206489152037667955200114030796679707117546184441366740480642175980367427394092888975980190664217619108885009610006359614461787676590517518686291842273087155171384351185137760742792441324878999527252182214908737889322855038130474002326719333225983755597149115120755527753626827566422134347118436558714031012155665119233400579764622216295495551052423850067167105716092181328555080072227591004853593954439923298006860693121542962242754394038129386502219768777649056890898936754296793350297430645657483169471686704264334671536103409828635397725179665640755681583005299682815299482581785346043928097510432342746470224768798416682767705921079197936955437364052955599862392752522441853590418765865920727088452618056501794407806773883047116675034533317511353146741795139964586957954599894350574897332383475049820680311674511336281740577849305762178994496271919433964795028587904835662952231138751902927645063808740757469710971129679092414884149049371272701885136559799437316162584642835167127046300333101531880134532755333438073363360571315200893649185927065400287466920170301433866185914685917614236369583341123301618053209389713675974658520254011808068956620842720625750101930903689824640300148963913639855861106832517453958333512096422377852572150370187545674730413655342115964584387124953198300521190685360698149592056413078130576554906268256543714132474429603723249188727226142060038998805918211486326049401643708234514452177536356229834840358244322940446854275231402711324015496152199321795126519620520366695825688813306250501662629707278225672030969204842804282959658073563970718305578953241917200115871933202183986775456045343265476815425058753964374728665533009238389032261479571674215309477885269784988073231632240659927071963369605798714571428316068984166528983679114231795196985042594561603486477489661602299881825087078596535047976848294256550886173211533489825284366087581256532400529523348072197275502819022995134542974176480859227686217441456539017398081554910709850711882188252041975786684488125904825217101150484390110004830671612299077862185373342701048524224125901280969465901165475311688205857704981496510538763715797317029982230498730140065817301151953791422683341732371746089017543553880855982337759725287904850243347989998961228990380000040480906063181310312242423512064009779860859019962055412553109479322488915350347410805001217838485874366206249348252102162183139081308680106830338042246506061086574509601956609714437096422608454631579444003268280780627007186411198838703830840220779244716812519859334003716783762405247555261232140006451225173039668213379503114848696074960942229540946545158682277521251399607033420935531737681233487027549851758517747164376635317680901020050689663127856692546026428268392308172768074036026322538446769780767158188958989603173901877729830340896231368398214201535417157277681238664923667151366393430397169601051228113490994381239946187993053798009362649015497962209718834228660735578404841627549326319645318439728980536274260901764394856443935487879735177676168304146262766611041149119217889880071908189487568518444393106787220962865706596424715400749389036063119115882669205719527810971552114443105104804230016742964904958279366133710681896308572701108468779413648193455259214436000868421468581457479701569627061283250038557663543708763029480058477595239601456670371845772430082736790765237910405526264342682067696151240466957468203535934215919742094468211886846470287341826646310166503016938134420586699243870005411993319055805971189142098530827858576539068973797122159278385651277719126796875114252560850839130679525615807041508784168897046739251573263808854003456623709991587883012630388393629911093793516780303901759369982039520928104293205821559175767102375637765559151015040755546053108464480186611217548027063231169440032438427034730624979056421434769691355308653576368994489888328369084438314967774916582557065959322722928511665160493329608656348839038297688567807137490175143700747619746427732093722513368383142414682226046594884416624179409068408855753138529899194580198709082358817803820457176599113551704893020376430415234561155874984461794048501190148099024030958187186736347635335364107249604572542226568201178266714265667637000664608476504951645844035857444914197387138930187638991055926621250139724197755659181552301597338665601451723207796026750179891829721310609127939813217692200605622078989091582740722521589447012474465465969712701075012193712680957825664894662102568075756024409890057489030645257498446725148421625428731142406378809538891296929956576080346592516935567006787610519347396963165860443619772047148387333341903462551864001588243111407460575739117995358627013875750169548096613578438322146168997793110358084124848327592160102723790809633733638734686001865379478403990327690441022874478197560707968975553566744287898902289109675259031643733954251785327416765221117925391256859773916204445723969589411278144364858928299092094936430397244207091710785832105204109794146132948235686838645492302162634936797629622903086426707185854867256617473587683419329710037242386804512351791475483820028488185227424809793937764790223431555372937336833248618093874862473545521665169649134798952656748807373070620679284294795091410490428484757101390875686428926808521628412255657436509269952767312886003095474595755838947527709481583586496587348108382884369445998261156144599686502263285136883782960034918851231008264338000073045471206094108775475100860661608272369773156259831972836544611713725236080087827029652353329861196666043751831740870165748642428194639053507142245843102170312551718218285210377241497836019567029760661434931119169230562150240897307594914067957989977270810743900184021794761822730727833218482716201732819802258525706027867445690318100880251774155357660257034985964245670761612269064174280568325012647542805306865925319403620397918643610940710099796556004936927026677480851979756165343517635906458764395659012629087214208379518221182602097954898082412169104319984924765481281052763878678738126299069028848778679665081386637273054812284534290564136786995445197060172036207912515605270947517750482139961605303989355389139432426287719212486833718974949423694227778340995050094698899939096139063457834174334785935045597824466409591435617763681030636459677015222507044666021635249273710735111110683777825304133149021333365601501059439219659622618983916384147776497174498930543487433390342107325368869221746108655134519267766698662924197393858641744385509050416181241445246703117005577699227311614156336888964397845993243470675295561554722518858408229730716175757543305020387255599411536084667929622367986848150488142055188416007382738675860010649140773908089357556098117293219461575215998417181345611780512844569320627218354501085336224323833314631210828147486944088262128314692195506998412315897062991185763297335158341308218429387894446321335811201956776272226881297899087649148317428167935739420675182777763247182663686487766543720794342458481468411793564190500338843156906631065762577574785536735410018424950191676387475348488438848140436591229349866571673957019101630231191650107547156834738259350073924856893317173753254405341494100999924952489224121445426526005548997636037836134184582009446826676344915854704763341369867071600815572353851129366535610379178381436448827359992366781102783511645919468454327280164934776529781848429438170741717411942905064006650806979898767967147763377006041368968061104930271583474603223957090806977232165600987507111700111057556661296445636744055166299413465988314885889526965504690663036823222611062224677292865883088309682863529455418709131906295677522157050342042838604342676424631521164644636136933664362700638607585341320032478255311838279454368249129546153345598191568689671780006639204564962865063715098803488370748573116343942753944268961725316259049476945019665479756647984206157117919429881732496601228812522749397638849897653670840718334652604264110326653142714578138715250290788271835456219906332431830911214288763346133189243625924789330255967493255239024323484266379308101800635007962434399175877826792438000518655484502375867326787657191363226511525505716127887223279997351028958503746462939114339614504538154229329806946613446151099478653761756467562022280569374049472687004896800362796408188713926504398224035450961217072304944667590467344503919810276918490123082807499214523942621697560231278541198898497756821935616994997599813406891509019460977997154984989447667450053289995797946442195063938097186958538511213684714996007795819863257645307402450325441427517432897291727700041550180712906962689669108367251826243083176890015361129541461028464981464244213753586138867386728395251427198306183242070389245814688872419975590687042417746116869200222134096473204500234875742537868533061852088898679063610346778706172250338383345405517409935563220526497821267276098698296132958703827150096056280243569167008587772227456223482666007649180776758486780967755879758996217035621504622027758114081191097077586178089685131574739403796122501544464733598447032707617455314297314825737679641638087326423133896144142743191115661817394019888430498299538138033691249713355192119966058343157631928719970489828985941065858863922488382638807104312828480522241037974714468260024334961355213686342429814154414559447484050927162751727958020079953179361395807060861014174999699871765177670255061265889155431996753088494130707307730046910688526292653123104625293462913449294332868573205468431113274788285414806035421486898996759420538592029068001546205059138541115524450332759956772180500414500261059584715962442426813330890533863251327132625975080009728974657932794835215476433612549806049831623708260949150923838910957588259750579177032118487250304929007823107522806321613384264149045288373946583565142283735591802773295480473348152061520465586612530982265264079094377671595647260425721199703753327322075849253969853450478642650743595533251167717909173712337914510695718005084560145101922894449941757937187664937334164449413438100540416443992338423762384220002496763841951311736787146862631884445303138280155451495191302140869504315498079760760464476511026157867637194516421330180282281827756352125533712578291608596021483574647761997559913722155426926968388498640445112543687434206525126661844673510598862584268617920812760638682860188112063476855267025919595773463996894794602605491387313550434274293379657425998069336474945013011976684672824561574520226812393983089942170644905577196984197959964540587635321174267023598576889355025024441027343774134816361981669262068151011656983664598558212610121535765645711444063161785054065928205182353960594603758781846466080900868266825635549979998374243632760340850808648951897243572593566586156441642854102353198773302444318383112118665442486077046738391416440398244668510480335769626870141399184797677725971221320659686600072136121151390643691625187457858812188776791516945477616330888267262843364237156758818426582965918897711129720002445878249581877438098182144674070243871548713257363717766603001822710100717725305222828343762729141491110558824861199041278230812634541903614516329575042972277993210123632829226466155761319607808202524781334161945865496047393484769582444679665050860074667781241536040640313304402638750200233618534646205885246077804338159873076452553631825969099023852143383091384259948334274834485175483685261020225702449607890942962435768669363540512206963365358789496932607601856983326040810400835762748437983685693396331983783177727621298925607235198757428988815697479072203124583028832589571756709876297375021854964888150484378273967012690757374017812106508862652128244048089534482605353893997256421177278714193203885150156884474587851863012508564244109444039001968205339385869686058515513235489144177089662806599899425463819482415042829927921967691679089471668574853639472509178423772914671575291717155170121549953425650075227128469784135445896589562809530670291553096243234042976180170330115696877029502928721412654288462414754539163747114078799880995647164730716768671262689815590361243976983098122779074244600819973292829020560047955243932904638002723914260045797699803239916462593116854616524156283972949160189047819322932412695963458341138690141633495250405496831655010179988269325536928689615369328430296819793087480032663921008157778555785380784008201629535572292019823397322941825415582514846833722163824971513054542477928370314057024351801364822856873477361267606611160007597226347458606947754052602514740576689121793128498295060812674731123690285886864123017149128329572186766253130854449619153999806202660272649137564620726451834142843148626434409196460623094925712140099490286092741377479916701351910899094272611633423470320047814092083086153915370299226841553126325812692487765186032546999281509254835861715908393718863992949058388121998110489581786538983280912055672051512853321909093936253374054535727075206552654168278518863020714078942725822507453713010036843251750790421696401430690949403076758043752615382996685084515858412078203503726894156660437225159300142242745068860553291451352711556492223957022961279356689176157388898591194411566458825121642365225974284943591418366255784698784122896153872552340480333301934799079549950622688418560815445513832043135107643893292028092766907499311602444859112744931529978817421730613149292360761857835760984684648524566535225554347800168635219039183401838456678295178283912673696473285503480841297832541734640281636477065265706190737656161021045253850183755300847562612469274810656843257233204099883578614552099378864878860560053889450815681464470184106971171151048550199082895370127862266785794455921422599667339672446114967978933854957093026072051742500389773158228022123859305645595774440208042633707288586218463455563057261370654155673508312101526801661820860051451497669443044205398752340153303155004596026998683555960167637032445786880186111744159698576122110021658935249095159781100688680120085860159027065875107085586055125944261308812059145691601521402430983517641303850272069781113622226356239764276908767328792362255458386258824050745161686863280801838385396027006074892571783281984533946010058455648722738890159874962489181320735273416840949363832523351814506660587771130625542865607089004828149377111147891399616335152131362720292918299719012418743882685589973377747177866934572628538651134343129136923448669779949225181364519905170507035969175077797628160858953628837663458790261977992151457932566511140273226433271558448185492669768486831295616212841639819976601234637613411385393309686214677330482398158431913040870549201530155334812132674155514803118157955916557018448340524251969151279559887142827177281636920378867011135877601593902685607281641233450750120910652279996298046026554054296092531107059872859709283387414486696675172014224599753118791481933146077237116877413791765524982932879655221545195518387878795365136225546253034095698158760542296841571983658949271174237136535019219284941937906214471164921230124235858857320617461875288463723949189889709896202971407488879650046494786064029637181243846871851490466711384824290755501990339321854343959212956026184683841112767553752830192057589309758159446840869647432780438404193857712567639904634229052433481889900567818435058450097731060778065017715308110573714844831019209996983952306261929707307711590614471928078685499094927519478647271234890136720351288647271191756728538122222163724359776238193110311458291115922161628998528583939118821999828076379211324925176098121227497635778447320611322465899286458425062301296288224571097975570936168934394711641562033321516693880740511579244452054184784016172116296950992740505902790116771586824955703134493316553239787314799656310306245086988975117076669419961869480217472632114441734297011156427613497007467867246412257908980067747304273485524983841214905241484666831259276583247044867616615436793194756466275048629450035933865842016020735187628703118492231343854872258093225580149072137041032550006921848112000965809971495746198685666279981229437704847294315726504532852462213519981281019136203269032974368575945238096276794860437087623709625095395093856068563072760597420757548899972325861004507190441421532347325581966376961740965185420157857261451761456320312414367006877885287672784777713474664829492440612985439801579716730133857839750241075310039764049727731306929944714206293586840630712622168751836262716961671679021707468869436693458571060085139215902298674531658565658228949626058594498801876920242903355010451742174125951492696947349511598763998489378775278355888784787802630616308738886394933302512475310102643815745246743333970063496789812882388845862929495130507918439901507072758674088325582553771757050882845137591689783526736107081500152616121590507389116900012347876225099613971272891067420618654076479937520085879717623483882432872998827750587487438093761980601482576179929999879780633121568774082765185418405546575941164192280600690181589999139278643379666428343947706131036526676541931900110420506248421358539184650524531221397190719183655904991527045394919973016002079552886484717256232362332102515475872450118494616417281042299246669618742473045162120491487544952962458653639598597376558445624977635472978875247406990883999875812811985674064500177097361473987591583260001029536537148664638995784210590948680738763748988277014703636598429296867276204364733789265505638054683193549120613016827688492590228007601822555329442400198028183862334851008375979460472690428447541103259572356053628664115897504161607868396988169858536401116314292575879764579090256981461211166904143292386639667494697969117521044557868250726358148737648687874317845275683742810613030775405736798769309331232791971359434601431004548280355396124973612567088660690580378817510122657305779204700444886601797395775139508980526897405158045788614661701370586904996585162498249198556327721421674387990786401224666749975984697573174210037332814725529931114091656384758629748497353144962083398684480684546541413149286155568007923819411114479837593923776698314622586533655892355418613513384494700800698244778150323433678445471373269244103903340046047677853099388325133466345190297733593032475023721224959266394611637423419084289588281551002473690502856030627320437866791025861039245267175801588465241603208915498213565973781718193965102091105420549592370714092535239739882541786583910874484267118181481655906379522413613139895607716680663633491230770750070087202563709443120154065172433777250865452277339593223853494661020577171852490313240543415982846353561702538285926613130255836892618831890598990190029451964871664991388877509498081160424514228017636688791406502346287720944377293954465553578885985763692828187132464902588475095029703847249986759031608567387925835058657496950438006609726123219812286083380082955147231232183027160667792925952109838045962276012121309558997139446281612092499156530787370223224825392952721959393104572771327577906952282620405577336552954575958981234142400478896031352565316822478920790386298173432462582500003517427977918380696299397872692987845942280286272680624406900105895246040159468666957617716371903973852164270779600466244933659412612824189660760796254046317756413096461868502226621395027545779719457650221069094325324992626914035207337521609050282178348354506793830451495980541648580916498474649697131727873585160039202648709315147452758770143974376200082715887945862177694618467830528838820348193215205859664435460214387887737849116547536427624347662487073213159375582703744682411578967012006684021338624652413528546385936537215930712070305777585391859941263775337353893783198348026386238602840122872090674896735074219068947026851331102973906448417191889266042313320697039034667276263414449553937939714009619738791481243159838012913274954474875047409174713983012539297750103103507960833239877524975060385396986905088089135530751832678231313075585649860347616618611529324193719805696088282001070105164141393957869503797810157581407944099379966178311149012766897729262886986352380917320247084535836017066055540580964896929420013056838949520626431569156030640854297942902371330835323252610981745901058549496449039426624715346575286276826580380147844795842696352594461354851946324058425403074434651115329706300626253333302692079524726246033088169639647100173214140988265242135819295194692260363842240329916420177699198961647968008335610831635689607246540926613843888128038675700107070634777904682936627367705692348563591331030139750716945664703242064748211120152009276634233399408002193864153854236239001851169998853231493108706260142843459400470889657975606846154314841933957351223445743779039700778399867194980673717616379766317287483103254778636043509934798402499448894890108928325564984633923125215791918035828887261473056168364296388172370905513110848732731707797716312792498487824112084787231685803100498551019886306750244243445105540810104797170037751357752668107991035617268222170240553527729168454356151778025917419239406714944783306204996572335888690194178251252043648757527216173578105179787074194263497729546342732570946767204494252793638903903078256755272385046902021482044093653622215317969404685477637388893034143581256404451896061006644969151592426017120995249863473402768563979543403449372801403819030886778063277096595963571027422522917640248240556714164076765088266957452081960188180389600568523107197543903134822097155305469297132469474514237977765899823691378185516396072002452247541700688990576730072569298005097551962356032014693449717061451468859334937522796480985275801065812848624923670410369888234005450118433100150458859690001001528443428150554874612108703408741526316340429745297984934438919659778173208615308291999332977802459708535613515674312843650886847823719885708117891390391156552122692156159994236556283332786201639038558506329026769272926784851407848951369721239489146221324009310070705285345105331493144808961686115068126275793886082136215594133836184004134447000511334228538252714762732790736788588938310871476804716872937561339095504740694384393425473906266110824641635898414904708933534009465504235758594160838696855651634528541441343334447152783284472871480682689848506458482813536716584709908220228543659317556145228483670849713218928154758743423756986814938330861953826872449648961690258890376882109741204093808808913126108775828702150404723114231330759729144808731093155977463896536854518037230173969346037613123442178040530134732659584450110483686341876629518675008818457322233908095125719029963233135203006181176387254647003460524396727622300719188970461368220708246554555692213087358646963246292534178910868610735953739721661833353328187907426720784555351516633353596626703669350826700697263974277865395870785469022564732786380920392320293382973439351236602816801569049319361476667320257538671990822913459666598353024553485833184212043044092910210730719615834838147383648394285197387184510009308263351898928355010275979459712194713335195424468181853891836034082490299629577531102591396363797553606980752993794618042526382741828886207710742525714251891113128614071786324215977200146193967349342355341688809159840378543863868909656785384742947585881967487747579960683718649612547039828015838082279106893588748992718891112368387223093868709779000810016279715796950872426478967942739955374587257935158148655901967028086548205516440786449933779356044617900031208478940636515098740937297213088281662486178781505107930717265050888068699773601017916285383248704060533728183784465583672638520986872296269845387238845085801763324811480565216645437271234322311979607494938508914917106088071575961001762611300419292728079284847070538684495095714995500244034869267204699333016159201857894554281908344071198597771606138819045300792910395429679962026478614541518866924395997721451368178949950122425277333184445878028172963980590408955119542699672188315102735905669961839496298482954596139453204772629855226559340912726741726414044301837279539565916771173527256517187699522267648291351480672099281392018472702441696050415117323210953153101321332745731292425302492283479056584094097031036409478691710027877432606562778425130887842104526264493565101104022490768438966508751952965708976593106930199996836255478994224300440660338121249436092301576637796438760572102092446201022954209474045128974237639916025153036555874498916122741013268239440998406411726614652237597720362306266307049788885715402210357177604309122278466771488911261629065616933494499788542086203176056013581547524192458415616651659294797331325718861752184741150353032294558279786959218556560236580444146528154722397720897693504118051595135691552216015384722820546440015078573599502191217708892712492923335171656492633927813022213017024632454087402015169506358680762434177504295835428372675828592492741056693459753005891783069754761804676386714043904940390416479447137533292465576000014263028183924987158985576051551500359114690787007925509456062735751578462052228844782896445845217886368403198609589059934125553840308809474525981962596038133909791117237042548656590023773463923168437084599101625811328424973441984346654677305605041739318288009419282283222256568019553790395516964787830130099225244006806473868817099199798673929259220524102958004132584196953850689192366025585672598190282811514438675575569763960097522247423554656074121773812052433081526183139253254107338723026924065362531319208515111966627138796778355706540768521181716028687845628060422160349615267726377402193071493982245063713150387835798204550169615815598414246302928791873781037361293584350738585368301840512996371220553914128422601398282682306949968703769910330831310059071135938833868159035106232872554960795754577556630801056472704633789626970080573359832832423782743986224441686218044294719894574323006433228070090792382559329737357845080137209928907532102832515268106244912082897725582595631370688947505305069705772584046701063010226075415071745310803412522969983288294439559810195352257747409685257573644570797833204104034187770302372146550903334159713053824998024538449151017233339914420038425637764475400806772115056807876318773560255586792303470846482925249081735933450920314650425791797162953791114693356232894561516144199777125594622624827403859798234422332607901555080970601510693553439388588484913197150557906786491747273371056639444901743326296210208251214276866464051048346318740302875898462479216892365284375210856708544367820549441842247230283430422192194161368851719567390232528175259131376278529079478492271186638858339291387185731859784062830242601037051394427980603360599064641959495493272724925247507539162597781557052677441696636184792344093272427139602624666653052665497672748474934741931677561822592615672613121596770504927659643742051235007755987715778912004216386713948750836894471301711633272704056637889310817712796689636328056821118529024492171258886740666255980640852199615570349822918985375072984031710787430446635774612856765908715264666339431614479789929367284207195205399349532227023101704871085495837642114245748889366408241002698546628645774065359530408426569342734902811199463472480838114964527821682884742282244855944937523190331558002584600148861238595868682182255152536815350172776793400928950119301738775078971381979415125974359189180229500813547131670563161831604096028734938811069179178763041528539886369651118270897351039085320446535519199906076183582205113080803882683003855308847817370156945327034919888907879486214022673765638814363124581945200580973277345701679043782440410924148084447109060854648431587099993658799993701954582933360291953369256424209541764172373949505866031150033803507365827963271386119649819988934826120754011555883401140512927859781669933454623752682157031927688464978687494372755234999744963924450783158744751954197422260164784057922198026617274295859158003287095640927198274493060409154863879856433001534535810405497759193519003924266961816500037426717757640040273553613884620939941418726954666437462548153783547178164874205267737100823288708419217611787494682977991267716422686841591754933968041756856361050882271570630643201694046136757705074325500111038259600273666644399582059361675860926577713280315739231787821848876545786916535057127613755444483874304611894905564564026738267893583623795467381895602888795516628290325502020971821879858245842716479716676607233084010356503609037289230097020494355666569548005974320655317388021428879112264086931277586470546084850322928349506742284376345277739734770621746022366239948107483470273676075948377933276058777736762179487306567761465566580120305244185977618906626164690514344323676666880912191592146602292155493502603720934059193931497782652615836976793807598534845333774363757907889336575881789446514405794310292785859447062377160192050699816635093254486544707414526580101675079350794422517785839851827820581857338551704649577279062695271630553762891306907268473425877430769721741450837461623571068706872956806485516985407875129040998623635288136120878317071866916551922161071740244269856264886539753838081189995116949752792917756471692467041645966499482379232829354655845020673749427950032448195956633801929629348307506153149835056767602876177538212247354403750887808083093077394242266990534694875721685090259498649841711384458414227217630409881870788946639878579627759805183421207930392055085705897039560961753550281632280999485898195206031792533405074746877223442445079250912947966270403876243498358796175743407518700347027354563729657530411016995716980346354340560289484484494071388798600703846961052445489930600701725930809272549930148075790882149112426677280292420819953477395032058377647084939716837399153503923508588980657621016408950731503685600704647553183896427195866354722240367582990090628042432077336473453362662284465214370698684564887966876097796116685997329600635108644412337576642463403060492717512334573151104452421155488158092262164305370199827238711884045996276561880633793809911746187132183251012080247633452167578637192359368255923934668429439108175484092566176127853493981641857273620402345200802828422964218133803967822113563979666641060409186243069230007695080896251482184116450024981910264723692593281837736488141569943890467774491659128483302913585831070116399187208376110666725933947226375363359258396038111132924980372753407332853672659690568790360195103051832472080099096891295212404815755289790017209904027477955191694496191717282347347504765444358682400001903695101520432872971959774917466954342292689562552041847078079161855242127955268259043012031469193793850927351714246896280959083963048604400496902052766294349728033898323029030094017167694991904797077097846106122554374687829952173382053764296055801895017541210515673311117786357640713845196056966627170326205525352615598886900151541606963495651668081058079020009134969862126619926585515168235779105925514081396420505752648689116752300646958829101369048946435352397565137710814840821638208375975901110050574116794637457946799850821992923043372479137949941288587854126020178964984921763196813630563896726880004656447011763250119461307316391302999655378066393964663079364758725619510157271871825189758995693998580864121162934080261368695148818404501256280469128427920203285540730582511879372532137262256277613504098210042902018949429773817424208280371295209691708245299956453920286405554081233223843929505025413600512170563964555021041090246395913612357157182456999548702495651779528923405354927080114948100157258926461405810673392260409108680546221558364845635626839672202599819838350388907804606970855109349267767399405616288233865511230206473382472430898350631795922634890634132320029915208920042571477594686282587114796098826019600263965729265855689078558254768638134395048410332174172313164417999036253961413034791839396492357195536296498625512399709998956005468627786409138698463976680739762496696764275878482185589485868814258583208866772897708509479027789120512813141514547564609232370599123457203504855422130226094048154374021262472643744528219966528949645847161798858021358732210750383427341516905076066264558982510746855403076315081384512765172127885438991668051675114416923230929912918552802895477341335107033312238750090836090230526208381650834948086514033766902566093580213305044537134474885525505625210596682549411641567158392251439602426116558003097388196879677048196247550662330732497494633952504460208763295794187782866772502785898395801507047349518096140186438897513721307308803216319053549444182773389401022242539498339900349892518697897355316914731124019242847392981775634991356131709339183844406397378968362731972081638704038913492141411494287212428247799766660483563016752308435432764804839216511991089990831485527063314423862698499122915311491994675406345058435396196483702580788313694376516557428672122589433409110652295987505467842229540842744528270687593030565314474316036088477868912829337251153493378750236172128473741995435662605283966154693563258715015474652943532330149092940578158890519643349008205930465531192950931157292671759557240189890954196879688284867016272543164000897908601444849094163087331645411889449318887936795116446772692121303091105947545184749775148417218713839900211816004562250607305850533958108358112580024251905591697415115647506128658654527465768339723555814894973150944459170209726629248592836439964876956613204113717976263087643089267363082360366141532768220175547356298306933996194346732140616433221384561378609944054335083984456760281034979415193943451956391131883183333360315459564740546407692874779616760342206396602188632421771721418499763152366291188940970616842109283713828337065312421431156904355906939401932227016043550882651269247066518208707275080669699800600034354336355337155445524650328878209086431126618155050156196175705067559561548715116241597361633167037015823972808214936698819252493651359222564144125586158465350980599502526496080285314225996763377616109054925793333141268724759248190286558403222486355929130359285168190299450881601956852723697911610044894344541827607638276621866750115996084515375722017963161165937235171050847030919459633067384771041637106099307561999287826139872037010519265479567212808063275067769446059240877244297463071538110768683467311010731120514330512863691834671946587989356127548661473045061534288603038968027883341316609727226438156527573274635653542995359611050799030188339087378837796776896054070747045100657558751962521837395283009262537608770538478412305085033033976227261725567761059816897640511087777287747596471414404999704220566163828362045841067989812302665116473918238112546901613970372571410096151031452191517447164701303563098416339696752149354988285598136817975947083718958696152752451410058594283546634416546000951010760729557824319511515417411816348569184563686802163654476996422362551375864145433900753211709269914634511124551038199669646818089763252081573891710768449585931456395324645753568312511836419129893512577355841110398230777811552699589407428732160527897897467030842873568583500376037269483789684576788545915950878758410485757058638816774547509019173589810998134382625284181088952588760709225359445962048001907399544934493604562112029583870196391157207484114127299263837869927172117069929193612043232772846282816754094502287522277513787041880510388882658575603262930898854536685951453379483905842938801396642628485551957886389609327690923757137067994079363347500224945114606570633137801258748468811273058856296416501202826853218995425162750886435628103627037709940450340331912177342493747315506721083255737192651391402783962016553005290166360597093171184364434376419262611439363368275545931096622411535565375219802876375468215438291564206319743175899840942091754332488300162200465911605019015734703670352015193322599578926238085469392543347624426183972907220599763674312434400040729610081038603942907622621758580830000717615381571309108268960685100731301861590564480846547881023006612206736422065202608371346597956708206623858278269388600602807213813304830591844252500808230525067036188025049943917472170071721292246833013988190963402026851891280328485805880814690816888638600926081172897572183775623521520556683523514226626490710592501357943547309135620850600744117447612564324886090357800386659784896273094860532738942211128006377019954103986659673580838225689382681292618444077288055965826604466347164906463718128450995061408245936643909787712682737789850109171918121127911154023516459245251937691556773504992275437476838926403623338144399029198106594278052132591486051197670454112450962779352740984229102236693705392583519876083232677343287054401167096053687958861401947581061888751925014321403044241194454474224998187898363284074004618270268116586560833593523591433378592583685453113680943576960782051975701496951655607114200640027939717243862625682174076761801953463630737517030267086813573746743221308706372502141822809460000323175032652071510327507319539897806106561739021462148490016603122504787496483328731364196764949949585622713169279867826451967533999986983912373169469076506986713652187279592076415987656283185309221943088012669197051949689226316903114126377769340856515224172460970189906564852797198758873574357731774106386884419320086506274478725866978153765982553550811332787986139240663062280172028207857064290750012451032640347561107942413672763611915006398696658326704333713696280708571122236887121233941699298954500599739372850264507017905670631968936527881471766483173901760945449396123973300026492298431829508217327445266849891267776627582986186437670994509739504855078661659646623488378168643836809985010056507446031766140943002461530157622457595764463838430601852263725457665947892831083977858137727307723451770685678451926773669931313414589560555030238683657799109032450987066944812492541440626573743689294838039434126591852012762028845467761638916162034688374688503630597289311756826516611692775483290765417075583807935103078217682315424228734668775952476091758541857069647834976994016517421848583170360173731576357623646473285859536369865981640428039289958559962321626863037967984015247075643377390293593878201937299961499498486362334027959352941931880900892439978285539738650246745110550475141303137260557311781233085651721096754279187062641694802394780053625285108442938780477502362499162137586586649131118888057384220641121643503021864706192970770904389466926481179772320780691361565497127436096375575257294092972503333246663552151792764953105554020287876889230851334833905253237259956136035125805277761436255287769133795608538918921730095392886652886388124417807454223954550917678710151299136535540373889171060733161233797750581593832893958688365396440989289685167496125553001061381617653626766306470265661277683189936938178027070873672542377037564032683785781751740980009110378923931956193413999496900226835983360174009502443698965816913984973101798528789913195083176315210642583910905353391641689470892207971347213296887499512331377569798668146259698462397156586043481983977463093562392868454150704929676055548706738434746771618393098200021737679094773269312713487218214266927539925030929454911377437030854934389439296041070899112543022340964462428294380815267900271476488059257906432180395553598585989348112436734721551085210779968130796124561392370725301428231071123174481391283999126258923302763449165000734682663987778163365981414310873285558744366448735949984237071226698855607576258568903472207126032141409001049796908850496977103658812511016414359215341797367067966641387228112413325737850581563231379067865481992966453652730994158012395799990576508089612907170678271232907881450155003549041994404520448380697631459812515719217479115653155666848154008273903708828615446365368494916106269289392595681070903522126389944354441304624647898439016863235604944064634933708937566695486379642544124237579652497166093446570303474679198284936061241897153327245697265752329848253714889679331890428888464511026858385149166064063370535656351992882237808634158592375147866598445265490236871018440359255106954417708040403099263746391182647401435583085260855501235781862134635359919204688464586410701033123200930276952279387835354336002134115123686194303621221761547672555154162246420469264723644777201488486298891869730014238353674615782274117896012991456711654101956066686844181527556386536515430627242626046236142073379707718764181178248914547973428546396373141749229679529984826776341187844374176926328291271913759451928532729894642620209926107475996329871452934615456009880962371831537670688462704591115764835553358187521604619170783355458193637264653176768059114207549803853636015846891373665878200654142501748066479333054393277975080291629989372771966086866939736076484099339330533511958848066140454949865179829936297351040709180834723500151020530966734104189779922321467035170238765259714635426929091007526260450220372677851131986453593489948672357488728939164786311384412864113606414174515036337622535866923155713317155332907088551269409048866424442816375961540356835510659469847011250023413459827743704694134953547094908313566189891810039753378820017849232026908405133101044805655658169875971319595263888344026543817243702869639085680839049463068289614315884638380154835518794286733256396162186517316553739208648551465265332283083607639441996203360387909917999196972015562725247800095128041626764584776633046569278464413091797545789015456515474071183303262391729060146885626570931497860942007065355297990175213071411833187527832800463812379301134324906858483014872986083602236601570065086264504536421508102391227979117672457955980155135951271907146589774694314535407139451433262848633957987701716296439345705039080771343853231717949218790893603033977912734532405692007367249103803928261456601443796639651936388108231944070656514297804970723968971489898873387217081422581738534565440832301917129031862119740934832429423789054540686022995917031146324274306367432664565000364731512327190775946196213291801714740843227006936289385178114871223319401144659825655720221177966009257642641994635740709886481365615075174883831593049982422737776439926803368467820461539149950296863378566439241545275029866226464954285322761237111047645960365418211496456861464358387349556549909576146438322715801377167508926075607381865158460168300148762402293876029429975684901776665617306805090790712583741123819693930241339581393646427671368082053253351004966042378851916678053807878067430702789184873814916577917021525393296163515191405712288745161609490038890009256568930524942111713012509582251374277352934022712730170019978387888986254173686745052005931818154166395640109746213858299590377117908177158156035986240991804188142615524984826876363892312834095185134601604070758933117025946971491031148784599538504891954015349100498449750535183925142379293794790915071901115859645960553379250167764567329517571717910627393496744044221123219198906111113915865707592370034378505475747979935455423843236351781822587945170844044366668661737743673850860580097669804074435452192284469603945255985988009767125752001694806889139097278267003342807554161168733509721182385700994518952441363158456173264376132684388934586057133723533476571902027568618925299776685572727787425132588022375987572176651391019014919018897811751648616821958996910225114757418272495041150566899081290052750277587741910604354727728575709754228361964110136760629964864216598439653127821213659951714383970644403769765345280544609063931901848613884140359555540484419428194980108809362094780451935058795041736499147270393617793447112029558869501290083349873656067290532727284174196362068791195787382509442215190858728488955989003911101306642460761979908114123908682967177668770428177682688189750433568635048062636643539468398270300459488990603715802735611933902855338334683427928137938132547353423274556968406767984670722486864999574548974239814227591510186701082468148024665176695237902402245330103127970449296695093597645234275213087398842883187340613186720838880767245111831627193516181737825747768268054741412686809960786063735970032546117104866902501018936178414382471044907762894685443026987238983422025750698720682882145029616884887023475909055093699426792299939416891236595990801627871986861658452785958256890160803262126922030052172793325580826627786223951415166513826834537714281977918932424819470407972443180025090380886838560471529806309445812340617574171181391583522118296824962911536319734081608389454017139179000706404118588060738243921069279823482901122422078761466390326989083449717250451270113818402230749491287821781552915415420372113056345156790373813714818041074708149169876609807359450974090513862860392508409888236648568064074645711396419859333188398307547345814977580813285944422094168599758496220538752517368499460590090610199872427961087245069835908047101281630563748485095625468096011469038616115249745348313941301632256411837156828476438003460588193532944066395045986115076147601674653838313591643414635662559508486018823104163435706201788499792162180763060517899229105109432218018825867966569308964700830640637948172795218950401381452392956334556478260948448189722261291419548536477888948119969095445402752583948896239205853593663028038970298510074658977876706668988459164205435382594307303027014097624689848209768190612634542480638131074882885970524277765727779664986040511729227611219262331688399992742242419525911671101384228741534955402990750596446168347813609283386783465584312864467982624316608611393552496118321086009455045745715674841555853735327085412433310292876960477305363335727294679494269789169118694612547040403436003649867428500486223040636304997675111404807610628025238388173680215747878999681045167279942715289056215674485184564183280752043038779188876905776956996058090295068061179038061597003464179129857340225244313957662491743962369316650174481012036161431602962052391294875774487323333308706847367926930619956417905164274385171959853165180874221597496983332609481291947484233338025003837977359464472715808648163318027066539979507782774357048549857829366650356194662832382281956783675434547793833170966780147099724917676576913183726910678729667102223678767676341089199934547036558836719549552028451581722888692024503869420112637605783981873637429547033426914619709550407591591852079178424618795397092243692288601443250388129121162640953518810613747141205980988624271676088458299507841922221702095145591730421365135887431165634236710466111974388382271346846106270739488852510891332729735594295550085354934294242793843345332484286408452813090841585150525475562930837770121639390824636485586748592129032906674050592185829860183762471753052727347726054441321475255682427955074041772052794995271561407959780069510428017770049251217726822964303050436067335589530719650009798354520576941782743515337173072372805575986698388878350199321446126412555966258734036302338247354913035726831190956654305678136955812836938106628290079254184634269551923938182208834774433238684890240053338633159811154763815101833675950803058939927905493608767811542292154343929660638524763830686834228387716651634331878087000943889683078055091880126048924763298750477457452628737606576229829718458718322908634992356772911785206993220687039304894215128818335184153822774506290999835105862234113076488106398245716540991743934792206700422749715228986006689380632384772140601589170339059523853406471670135503255922786477824086207532113442229919350052498748784167624587810033528674757430357367780986094003145049988873128356922223789012103714827416709676313205304913547965234277448535280965934922173546888197392006666283073772958103207560677757804347181477180262781894460938978357122695106479412112601425396597033681276535074091383793941558053345835589478323306537329624192047274280719869222845056691218841293521558457086919337271930312927250977577692877444847251336249642464563292514032547097112420349086239183563415134860786487034128997519076146782865315603797089648849147742931463644431404037138998649061499433941264424701543690822548446544814412087039594318116198158873912340423266819406865547906112443445805491576934410848526710761246696429969400849924550254770937365269071782851187254963566461795601238709532577597225292828385817703553316313508346911514672064985510054092250852463167333704432818581304844315428815622533518233605497036524428335088885333219124808164019316898979035307117133283091132119028997023030020034108090840784562395268479769525315929600822509574887500975425918872098347642504932328362182539070612545685976643572374070096236868043070631411082617504294695284030532246221387932593260136695644263185013053588713083502497223536556052189936276304287813992512262815245301579071535509579665442603474362908112803714728268879241963903032439069679975496821556394989920456664826550249381092912689772535924451283189180790755134886835374920405998815967106836136479474460739888539452814896364052921920097119653435350396725937602485124407243227308913510453490289894455334589345704402520646449586397456825867398136548783077683729999318064701859664406099791574661961531677020809156854644726321657486822961815358007854718657624701539110596391153835068475384860594253396939619250844568693189197520587273873421189822638085047660842809646511316684733138119758286815706480419198494606984474782137549676193117779776648369018601139363268610592053212938820016388122856243527974203712496353350680139749471510796903075217356587977326121607637104897037981559863124751334635909151257064711049316658977800811694877562804038245899107383410447892721694343537695274723887819732840490877264689692384434640351597783798102253449184128983081852604365612012579923584758078749063393535894984536433511842510677612263829890645146593261543005092414997688204598914048782370686851968531897785618977967418424834720153680084664773545464213087642855647848835905722535677188907924472735672372130404508437110889419430027841294890523961041920411277832973448049784709109389636125544791659294909208119111629581019455392990358278188499664624580690772591671451862898983553914714834723645036028432784960207119778256655262143385896834975974974711192742846482596154205765019631482898350557355066077077464980041898697160272837278756829284906984983413486579614276092722238745883321031581345532805487188556911501963775314787049721022522554372068041780107323295675643512963127907349632606027154922281765498417048262631303906857837045120138612896699121389666167710536771869765874775507175885649645641599626007553279264754437847066430653057794487043218432604022384043794704993523000110976812355311198019068056940628834702354774600647979839900533705192485413004528752870137562863735564683471329822498598817517270569430819932187725381600167107756143710467860266609759729120321422515865876202891606876142160894171019516330043648361969291513186513539451287343165654248682524336660395661883093831835602010391543318703048878286789011247306288367087227446531064331125566892015645410008548726634952623021762860830234761949692045398792841261101649264222908635151023231052605395356735442981334722103327448917668601210706967666491949570443465776855862934934902205098418540861723340451850404895046398270965516045206805091193681744120587094260888473039620114321903186489469636309883911069841704546927707091996886244477340218948149798683135594994688264870419212410995127317724299454298913458266419433423352678702128234562776374171171992268754154103646579180900125891785195454879300139587236300115945075204533519548274172403831242272979174639705882250930784733911391007048121799123840192966196794270384716742606655265487397489502849327914229501321436029858353691284196308655062381985371721215019981279544235808184921368491740656003600656076693985024966503625866434386467271030771301183027496700847575249464289121299757229085130844146719496246808441050335989539318061706403843567753474879024714044922988614917750068293006871527214825391045352951287280904860861915107541055037626856798143861225169412485783051792339688546657458512655184450341491962153559819845791944015882771504854941978774624431105345996979828105012631907595110475079082105253673082527148250446954852250990188349523260675869611965663100232513226131913421008817678638396196969069783923070362723309906441176402875822788182723128477672367195133469348883479741605935904467623894154978545308022036816165285921564339618238138750804710920200961273155975989027414519088838449887382079398457566726335341445758989180522913106600268385378939420845525488204833964963601435215884406571100810334573108766756144782972796034060330060856624177954042770576697417096249968947843368741594099654080904415825034934108743873325591002378580393237100830670160009439596949301746167263866207260921091408088849143998767781486158240302891752661071569514107509245979134095804259104333055004612772182982405058106830378123609574569093065981127802743653663279326151380202187245928941694969597472037155083768800808616423603884724661880754760350780836839370279295708054415946118905813055774395719288967388107712467304035523644269146263167988092045647010000380531929491678197221779222335170607871537455321725867585289909728266798389445373093788732357272283492816017085969632024186649489603307732636041609218229436669907768157575480131869792226062819808730178355219332791784286469390856681311307930045674292373593812975104837324744668504912824515418106092451135019545229536767737698441906737346556489410833834438338447308275470598800722830032607381527118688383938226029762037807006199713330914458999816080318942124796185475761408735215266860149472503083765688051865530790472648237725762879474914263120914727569081942477382824712334378212707737684824920637727389637028426415571218162659965171398192696116695971833902966281916605214766023603111212681495494686055074816486366950344305310531496210898459147935605720047620520947989795992649629242957607144396262129786768465322432278227349794651526776493536567436392819288841087454743056688369139670725062786730930860111326515915291630217149631412413036998623116610754592858368212857063935761200764495751743814795154048710194533518094006410420882115335036689046318949219925257568721944331396262703730928556317799898302944765739957215728627945412808965544903193837750359787886693795600459189998412777789420672953055079431207216367841766714579195157691189970759216997884116762810141610913693322953766725371890880654621568049027857952424607610817922114347758459550603539142507618628773267427793550563798981825475130734891235386515876474696702646286700632199662680641626607389075630833246024584479341973363148445534679361973517930627765770045666046816580378558086092145383534444266398832729869618556719511202845605226586675420894174453196020786318118611354243526529091015237203891069460670735689840364490278387070179688354028014332280545121030169123581271628934142927703841333183117318915431978805660836521187142191927505545094921889267164563513775714550401452239571947923628665949538514664887900110844401331023722458629437441070462864674216730254522523169374435395669309489730028508130212369660913578610976680933372108429394681478016426525331276405619188392322442420111811678309606145821287390749375881485861642619888641351381195227042273194946700675135840000103725359634262135500996026053930565414901006452891747816394690878168094818886299472151485952266249786560848494129256888876516912761891668593517669613538799699002338497544465006489279261393915400825776699901899286538998711153800449895510590703731626924090321757714397782232103532139995934028898655583965912882535183452317465713343969342249189132157473015279537722948231985740319995598091692600231512297522651458892979642738309150829313144936689021862808932485601675722405681206435408563621275384191138096493293711137018918441336362394201060296146246928467844813077944288958066134656980949984583018934667764571314466919121704708529971620943978603796701170200600230992275987104622533271008287281971148664263353663615076995296838236295749541153287293362523693271910192908402068397310207560763373361980603416705939956128060451455884212605235893733635182072163404291162250655171588749516516486970609131042630615316336952450259053253495767632023953525435553096681455381033919724303711935203547754332625035916980546211683287955519147202195255967526839265514814485221658172974312035640439322713181982689217453116134326653236684230242693771793030943257059648749293352745191127049946544435210662896052392703270129673226260836718160206057229558175447748811027154863841918851947574889313308679341230150246001827618406609031476902119485220946353300248927755997424665046149267350323851479909755568316945983891364302962285075980682407779293226041454059828024644987610303348927851050189348086379315273693925611517617423678112588580171254088201282944619423332390130432121247663979146503602878893748148741660862398385245446608873886927959287582107468190490865411316634423584981154702893701974605773804444231012223955452432652221976760873034417739253990960164386109484166845438984328828092191618508932319487029408067104265864613912352156570937470112056668131857879428087093058133503795184865045372779242753238039958525714807648374729063341069122394074313188321075283304259807499851754143373266742468556076462504625790902670435629336746097729057247279247676792539707983773575639014455489261803934951342149249501924062830395849079002729304753718978731207846023705586344177248126403212858036902146431868551439139731177201020563689356861707563699549734469618473493804465580262290531942475945905694478569080742594626421159645656301609291808403712117386221461227027763214700427178246351619667235234286726856682818718060166733906406382700871466744151042155007774148311652682294362042992373698404450758411468915865875678232294358219710538484375405128575291563607149947726629761892728529939349060418625564746837659287047986399855677126911641880990785323993371763918809500999861805511491065045366723594047362304231603733739431953068672956120367939484151724007173532983694486143168848402848194910523022222446080542428894091225504930499665441313223495863049008097860707955639208814506907153521910540345800827832955021074901768832045977488431774796947989026016269549249375992446367045264272714931432017738227799348573950118516806052038352778519070420094331280542262340126609353449116196269294232730333267761419184658196961275899147690746547318548370566654823855631224019444625990479104939257236509799050891999200715911237674763963278267359349000098008044703930967736527694831650997417185922755941964865021968358026902451599112379683864945292458714625980942704898226042962044236645031828529105942737274327550407044653906639287547675185923810355998631425979513512677323117815525258273789165115426818873084165952145360281067695806169481000184291311781739958666375703371004589222415799251379650006911500717396457179785357570194086842289973530091157514535276734629914683922607846436676606872683585081642262771351612579626074950377442172914441582309476978680389202489075653116643748401603435384635044718621045035228684193368831576780643053161888795605262656041930139562234880059731890339713066052069115006741131284249129098345600952592179646857811817170006938360716112705792084682780603612841793120698717169877711622091590499231039622608239085727224816023736314400479885347859204651325015315524168850897173390934189528594090470448790194428398359638427921511772407562503413960204621047556371619782753907404032885667440614406782689511742740910892000539756295242393805645625453652461869407459632076891523839062020921456869499353490437064557577140841666890954915917454837010660540975773738109975027706313341037863741274855261402082862748806667460727779264008372792271651830852218240499061284627875100784328338037527704013905225985824421431476430927749596125478830333258656629634858142403385492051379929661694913500753811959753080173435894996982531019100789389464209544154575133686367281466041898971924101126759962707320503607707064965206134274903417955138026034339030072563391760202735569175547822559236772330279321387270776056464330463747274864381160682104784231918332176308735130983477206206526985454978650089326176439651762119939574164669902022944377468540629785011085520095541800487592527440637243796612932856208793527933530348462168423046387978066112472918139431879277430418533554787825597353753576967277450142472748642405703969700796987134333845416300701621375897594745694215003795939265875515362561626065001375720089049318688911926537635552846654661802598726745383553220419785423551672094288033634689486660667529701030233806650230828390672676323657136023183097846239273403602434129270123696844783813778523480545176185706027211074548801209556336683411786291287336710284327189732297064679372626568836277300728378873966981938331446669569580408196466359220170719426065117429162207524223574481966064480261111394152031208862637801964743558147047264347778708613295161532257432877870836703776699591498079051885232779288923908690949334548311016421976699369192522283954488648572909147083189468869647956965564749045050855890139879293401371540330626310244634570308590372379764560725458622416283780007157187941482807502035184082630398230424446593401760547294180047412844319648890013304179390952088399512529771775738101821520191279076240207499824723522151324496323911076518200690381371188308726470908415178091824857904760759011565746469079503498771893224542641129277446364180760405368941773567622429255376411898302113072136286747611826451515222813265677285202179885189720404624080838731088809588659814437713201745295705874121283625342824534348941300741263851680974587963030326112728476730766069885534250621364878673061828491510336537362389016267707177366378629795830993996019696706991783618075771367802515804259731927596497761898058845901328355123509815413267153871498266174424955148893250822790629687787692300860100033842247286726428413961476900585592034520904517329891049403706575822034188265955494460482639260913520862049408091628303369742437545112242278667895346214811634961300796386756986185994576057761512235493236318709754872152303020849187843586400600461626689860674080613499564289101085102689277049433233253194793101667263955098308705388955458619817939769552286813830108581014958703914235772935391818249833246099521712385346889813499885999656859830783452929619633182996331453514577207914811106804007568299996041123633490290205465421248748146598075365806611178261830541844154284397274797488253553034068361378512663422641860784350819368946107185751880441022764250180223441741226220767118606588765287277212737760409658929007448092385362702024043156988670396591944330402500320567723713080935006656197472999638439710189770494431919064419384924043543521870818308372814863448317981407915691909606912535693160503807638792716165734549769665387934387682051401691089332086749889726320667810428540179869519484277480508324080161484783494865276708618037480131670842416487235123087675131377574204855938637157626912004081941842001585881738374232203807159739274438063091371698361874030271681887732796705713074142789515598769443703422863234782124537388714393471984862624993788046166264154775347494863737348081483650180642102503872007899478239861875333887242986138928604043218493393341038014348229578917767162195406191918928685806551896733125144437953761861720190200635200911922732538935027201316569957567864024977719709103607094267629138951907263193854741869081289002300664700610390771021966474616818837961656958709710957162549501775429754048168201342825733783469878769497578776947631720957223193803067967595140840555379318133301496966572427055429345658393067649945514152163237289519246799615835094996655994844298354319416799360328615676865689075945768482029288905225731668343017030681751770540245189655998120381702816084310821255835229002967238864257013879286457758938461865143201419643016467539852048032650768008937054771715327862975434216192532244539258551531925281557523959264559959154566553539455995852221072637435966238081933779593332961209510865901484183628145188948532068768268023171121550962757704113727921696951277173194703227468700652707946775065595407077697922124637253750500635080449164311993079748961991105976613208296612197096669261123878935936020646984534741522557736680243683742629386922621423291335790111723048995921846573104895881042731718574614747681288472034813410470518826357751770768237320019740444620711635232358312778343556522617806813205181932477417192983302512031586767695594352162828798823682970803294950737887737364432353563829530227444530843888597935092544986705686604839248373557774149605163944542121393709770056340518913915838381254627663273473574053760183898964006217197708719392660080690992148618260770753423584548025047991981330975867252576322884296920325320191332945818706599706152389782840730974823052069480877709953800045896507089599715660580748871848128513073150117744412663091837768086735709037156809888037005096353492184511799356061111047117291406847352648720804727827721290292368237477183811111224235434911123710057007250107721995329501806512783886714988527478117809068404496272222165214370197339418426137596963421753424794246823840861685917619750415796840628245854313370199846136589426609429431120664153710478638314734085317986322992449579276208561573088574223791281882493137056414749976014540426846574679663539159997150760459764903270381381884792367024005054497984265380358101801047050501453172994887937231618102614731250413005787282372082195003560867352033759082637989708080262515703940731266269815299344293849851527542894032313850755665632816375230627095046426286682486960831666289636858999023546212335170536228261101608096309960034225288463941221058272272214209600028403749155357839971894279607549764258208672711188698005022469478140189205569750713425843386337343551910544241540391702144015635543924881806947815855999759332600956953453646875957104046356653544248427807733111420128848700546310323514756198803256241709794304453003929292811246533196300380075058069307366052505009900348398288074317135677289048025917035072465561328137902252088162492694899092581263005490818004874988201809581630509065705714367563389610489745401948911925952796781685225491419965477361237614559336541599728272626456523416907902154832530182585875176727580807998713955615974881071346939462594906913209618262564837624183559950376645331311342736776270515840636728143202821830344320507351412950903116117997293495988613235252542022586505338000466466965321870462357413384732537792883277174293021066034244752480011265229929619902715906716439087472129648200091278379385581317133705230825841222942955154246537990317617348054258275234112904737122109463948545514147528605189753383313529258738465920454079126664531427439983443244813515879039991218283081686359656617169989065433748936298995579856328972828615367917362400155282199750767795599974811206881259774984972784906893809247897964309427479313760484737103408899151840684438878771168995544945371034681955175407572826132828491481802543550823020733738568450074504980606471478256278758383097824012616702566134751609365408548094566919921990098462978165920786454323521426987950701783931376779675236218835870688502532658282186837982790640744952536025492936844480186081921392312171501958553457387131149031737605685594123334689935674708520552544598993424064476719932089326550912509885888010653195120009239268465173337780653801408861542042526897870308013892925771646995673864711780590061912393466005502716006779907541519984866164229339497747930634912927697609133939270141410182821999659304345909107764022604901940626648524906741994299726766084109131558173475929758969051591496132700986187801928077911297872970431836354373109610805329972921308231046937519003034266457462350068258859660878408838462546698312663158820694463769325607341180624791392598655152400732459362877243147153206772222600586665375237697669218061171846591845105158158302052625203094655268158322562694335351083182664571752940613585260882873858386996571615926449937303587285102587235488402251619249035783679298573124803093997192054425776674821888801175059628423134855627830307004043552362047331594969522234576399698795722397498513301633166673950547825468983421499664493939034685379194146478661063743984027816012412762318356058592445125756337368242514989300546908252371815033934005600210064521567722607298248346574030128286442058113709388776344733725582113042120849122194340626266962687684384166325243086997013942617048756926536911515385816957326050347802690108691108480270323713978599686629885204978826102393191279374705622951643962740693194053008939649386658548342314935228155144453959926716824928341088036958132243152993025301216931056912422568939602347224575912677732444663319628704967989279117211514028291014665824662840844903843372667478658021085076308193597438066290083609541329608776678092705414855355495899924815947353598255007567846633737942405944683044405024547042178806616316460851938655699279394761425893253494187405388682323914588950661662941552194797328724115781942685257710232508185349188362192862339160608922235051173209826261679348628227812167904774989731172154850982705911242110259857395271423077617372407901372182793686610832723288191466510073044151294984934782569898225251900125649319884706391054771078113325142185588774348737213026705309365337500507053753215980181903553049454908653393155945028668851803311674879929643632996499792117545315572104409960233726077617317051329896002380599012856957536005715418789573602121066252053661229308413817316454380766373633496871068917710278389658786742232324352744898919451969872524127870842115317993346997618776571145949752339050039029626725257748811288991291241015002237311146330780384866674506845010601128525734353286707578042699827674179267111378010879583590263611067094085388191596668107914598458672649134399948825675788443080843011494610160180603143376714476737779144878417128320192621262501088198506742371116305589501633243012565884789199168382529336427975905293475745095699294585044083503141645491263006733633159307455097153779657580463585671335395543919964139002121204755838838213318136017198865913681172461868033886398562284386248128709083953529537149873696773564397112413537720806232320343866132508765061037208330859810858924106090343669040026632646667959108269467129574333060035156936168766937261180151933438665146985165966740716272282058486261732154896555283252947309919683314398514935525443557100040393630484015219428717379727065956273959920698660942596974255885901021415740678234778069387850417237732693989033842883757782842149683298336298662945518436009091355297479799842005541872362718137429278015633629894421048601215346412670267586899824487936321141079987400258874916233739334938614322246456975424617661383521227126170633679658975687912638376950088861773400524498110704366810013192476516613974561102625730354323275229287735282854454022613837415682420437834485030265631655283857320010053911525722482063170719280053126728186190132311161045140582579821934865025221569282637629761686682605587463353205606411922547497496497945037564657858683420465446892017539382457100410188490822053252139028242204647624007037320074733554993937430973982242253459228896493666283479948041576800861490371669239417200667386940850621653479383393321904638331482730038600251789109223453753581426229206936087332044285807302711774715186147237769797238287513479663128567348225643776305683693663081996484405068726222098198587781645609193307489754737438384365536646091462562827856746392225957726101796096889150518614858926933714101646088832808917081895379148691148047974890683470743233451505229492388570065502472375907294021682395928744247955043721148357920440077517133888327957620948972772752752195867142733549776592527039709929178709156297136152097373751879743978367269038190560295800429087759426418621710998729021180357410037602198264176778993268326691948579210635930958479940102559431770485508271512374142559214393320611477505003640311162831099136370822440174923911226101404082351111558631802743487561281516329920130317738981796663365492291391657766673475588685680064631926423683382922631731858003633759332535814023787590692743627740881454801575839793635192340150754994328719762171183840285824492826955535361913773723404638056896548311381196143728598305528781466534696734320443775955593648464161015706342073429884398196540543805218878587841953215030173202933469486762652538724538311007629527528155914182485028289081888083715559182908794666899445864503456349958180262683421667879758964389360888271254690034323275363646675700186871140779916395443371223404477533164693565099973710385436629174024468183140365574734289394130579506675666007731065236699852503866553956136295577892905721780838818567765755097293805347426720218277945535113183783664680544655550272816513073946412945642643555324035240865461312233595638169177971863043625253220399339175392138777942683324420788963998880258058078660475197306149939563903717291817749894317596511599416721267915106195783462146360967426236539928709730252477254399910469482955037641579326090315788704524920039540796714104445374345526275336237019812179304024673730295672962062318089869886346816330648978892138599589911175910864698930965439857782436042328197215116862569564714171578733600648507718726589876705587786506093802212311219108496132637130798882758940852109463016151147186278982412384872102981259022843725369979864675958870755722208803902473341838187085933020330694918231678019661011619021529895432633884634015360333300699538269878253379444678843986278499068703505426684011338049626582444191886779408524999060554427754532579864450331636426124403850392682978928217166702382589369881744567788450033375341732886511669784636193324803517954653136296318102139662118543928052481981329422116424317246293778649219036299647707605575072780677501205347496717988450477208034220898889799490402878356599450845925162768374561193006878800561888237461032024693143911168771925642088348478746277269570620405770204457026419632693915822694656936610721728544710212320967949119187103067838421229704643521995652735839376499600247136899127228707645569590913517391601855497315227090090401053285142578519021567453703919607795974132929794188631135205884299648167471697995125594619577402032873438497747994648931127403427595559481434989176348431124771809601170150644449779313919748849887542397268935675847898694746105609025800806072515227064897145855204922696730029348001348988914953453625995566399289058986598631797949246816162393549038002902510226489848932814513939612474006420432272407987354086443767113258543601697192573380444792001440081328361631418944085814779939826659642621518829090386985385161160099326642761668748653682359326587205730589064275596018711938142771412409569793384169483195664630147492495548617389341624018444361609803286126585428279221193633417872273963613624586187303942176839247125162526595958373537516911521761234376448522093128155043554504978907957322074942230160104699584795186693367068430503556034882353158593556951011278161077070279778683862044532691229861522664700430710591503748631686027954827671573228951801981607044804276925750354291874801368340169430474262130923188456903098736324520277537536805274840548280075939029237913831586764926950549688294301644418165416063472569977772225243185181320236255893198451229249410849151498543053733945088204032906051009856894572618277448588632810234149148574235602582354802920059346961202244254600499757976060276828344579767378287254635293247882481286447828509660216302791793400151182067250021660182956892893548192976115048290342604454171880197740215489168992776007149964443551297135383463228487628154567636185834689240176114691514470285291601186160143777557223133119013369717614696360188235860857874387718322321012952017147904888869125433133660869937616884641127656335065265885362824734018883209137321403479996347814559577450997221690864747221245229908178680388970025790921592467582884990577478221422190115805765664775239385026702678364244073238129733620808258370842110292498032699277282019042748604347538148806295777443491119536296688657238227932967667845993379572497025454532125177902745767306413806082533060803810325389141269769413232970640577431331008032073242585512632048455109260956953436876110186705581245308767153630162422035522492606231708952352822671944457675452612752514306877890830670761247248361256688591411226156618420417414983243120992128322286920115314395136739442494445858508650066523319438039044225849846050705846071924484629828275968266794451515359750289431663205926340733313553222467663907398148265329254106617575165071134784767053391509972852230086227306816956338226005613049434339652365760181235706698429559287234513173964684502012037226662702759128378253979005793524419815996935669977689586314789288390469592871106426898825308445717869550056950798605144056110432339000683182559335038889041222939744759871419640274168542332355255741163266378397988766026883383525179473599501807222907912340457569763242341148977300880442940856395789301558857864292644790892781034474208009797949084035336907162220767688465162671157766603165599338166510715845993885817946665635430652342439997228569042557871401883568722302559249765665353649955591086839489368303700950847954833857964096347013417652084055945382400954703933049024406951671893350900578357877802850057034551908696739093642354321468509030001182836904806171189792392810082140568507974901058312150006378507375768037045177428314239419896619817066326869765244895366502211442347538685323085052357383771399145445489533011029356816506554143350575734822583988618094418169906234984304332977264821542387303151825217095725521717033220839452949143809864817514842336821997004237554493887941046719178993133249646510806402674726141146677342786279407768914560115280694435895446707605833735379944965936138736667158101260874035818532595231175984613100431917351243546222899552527716306555716906019330518031111960426200859230016040727068825805351484862602647410238657146197493083296948901617452887131973717475669676382653752645602262994970371008854719217263733408496614764882512510667007465470222028012900391615286799353945020916998909381609243088387657797151692675692644373535550460060385792555723339061939297762034131711735417647300110307358373744888231869697489470245879759772363787135239738196439094083174818557836342196003291602748767162005709604725610991418294340003644714981462977979244058885082629724639812073419230537317842289525085455913727866044448502368211844866658627864669855411398591747889404743015627071497098005503128726210697146509662030727775506813113003952528888687216664980847192751498162175273657711279020259970164811604197724028724092251914021489309913373933403464045240471010561605939758945190361953576477584947906838258937163080293912554138494594653403261308754937298060761009615002423650156163856443205175596157882244626989496978323535746021995363101508481608231384365900982017340055843634856896576352044138013549771221360506041919183312725130669175726153850164195702495887983395068430926889161806903009960724089415844740298296866127061180301111357563181966284802169524945277980279584885062070301908135666224756202923509180736758659146270376164140100641117797301795257493680603514100616590931592846701758571391210580355111249581726005983290283363451032106757423852151490884594187829962423353970089681379264666778103164738250155076975817755550933793762332667849536580975838787452244838065311433137274220666584151532094810525320252475591957563728264198484754544053520256797936436537314872232299693929256575657462284190047558736854737887315516721715291438462202312259287132073384748850494913133458692573349770034827100914732033231546207809134362346887085757284633875360349936152067950730604771290052711704728541700871218169970007686663333978502851457515009528656893621043962676363173245195469636682620727899793450908530435907301473336684412382096940574094532910934111954611726977650350527809683658834264074350031550636643974534384254161336912472486230784098268087835834510533554223614523882912799669634716282595446477708489539845929462189899176585665484290970829237543477703969559109881258102264165003154736657780512041222113396304084471615143428014985267607917520073448087302305779835378988182345471308702253074996835698433182320636613063745728299210527524254272539818523221300748623841613763180815631573053802945207465498262114295735831790560439550663257080022028886506410110207048730941323351662367953020939774706504275624280279013419950567756849154034203541092210376871926506008541255393948713758702824147828578437758867333106798831629366297420908473780115890642581754247811058953480963880482679765287012975041632477909489565659511584846519065245710656933389573041406311779969600906364496736557671668969247644303648188911236261379738634192499157447647809165162980317029122266069106976273019413484089472674741015882086792652922086443101318829862252489285012069074784079064872870486272549013019433299218525577476286849850049186574473830957937576306047550738301648948049377860011479209758456005924739118038920923260697234553723369124398409478157692284582622433723589073353400786581245488612160228076717470463739046130022195368405523436645437776781832638638368240828896595095041497294660105757890222045957988822169547210277482386889890313258024685126774777861168133888290348684542075479565179644403155276994714712908480404221740225851534407257140797094859936599322562957210364316092413310751530871482975230374843873960785421770786608261730794818999009865006312785069747623705001355094540936680995652223742556180026490334812132502270744144869314860195636232986876412907019169041911651535034069588550430816580337712726476802785548452225645356890013540335391168532988847547610566277255400059166798368903828011491207006753791699731253901733741934297765859150583038870715010545076061201003674567670781394486339316261815932905397564404286589834742172357447145995931396706514782931625108482898711758921447069228322456660345447714029238666743789861618034146782553326299313171567090874693169349455329140987800010847034971344991226336584254765264093724327620644228887615299174809414171313467870468928910935553663245347639812756406154183000521489370093495230884369067682772471470682964737828386671717676176904127361431906851028766120393467004173480267915331312651321176986155164021861352604445251073768949986946997991806967357937294895495351760123334931304183011192598087029375583709485818017952898717081108266656660682120248533106655458662000172654708211183630775236418559630208609664031154311508868029573295325052096172381591124114324249904380208496739660887890710664404133561211486526900696880812985793181646831052276701052007094976428596404488584920269960885201978024547587865261343209302010321455832289747452656601278389589412600429814727784881654518490194723669327346122116379404664496678470506751563104365443281095510647891422677140450104791792984107641186753206774924796056685737568880925590852278893608451505336249821061873944323262172191111221222702716451443251218049286957650487818863430369061214156792755761308088393373757809222083634031477095776334425397459321842168295471446026061750742438654124912590266029942472977367604522489052152135675724626400882300636609057848833265966229619474388058026251548111666427820537559924763845531442976717913203399337481392708617007794567784313655455630757112708045182949278988720700859564468639150572233483951990039847979609916358045102970031030498956892084250006963725045518688475814744239126205381997278741351240502957617954684726854843556339571270931602254537793034268347305890096580672989921671564684117562801992422677335688722045991755969372574993757163756377557789773306950285675445523884832175790397463214240860528054711266595052201735709965041247960753333537114939977227008193002339541970950609185712471324917457587133980961096929853465479019671835850858396747341252806671748595537294138432864113222232734368539494657919056262758514213106394931374702344304867501230138247460099026278147379877401742192800176910869270189232027210743805265718452701026040214068678002554337045747124428736292009814639087417783678406338026842968084483275868471739572250135442504534611080258690819025610100065889194171372612685452673440968203027140701472197391799933366653211277538223995143989165842409679485463983386918248279042195483072182048038479794338933307441335885623790684460969714178241314179937838617790814958537023354370464940500667372669752976112078004895385958482904458404677599234307582846719491094137398262427258520037707045026983626833515665288598657805436043874082030396245731761682293138151492765190068992744875053616952115158218629021140357105106415628350307634164084681167220797760195602850859600621959797099997173419096858560272721310237564937888960336960159898387842303577771225966654706027966312135657197933519548420498713306954757144944715188241167036830601394514598592369481476465871140703067970004540988497876999826975562433607364393714083708600785743612437415176213128964592498116589651856572796587134973754671603407973280706344894095363238306644142618657234728035319160999366939585820093035081026433601785154349023424030466513278535936955961007664656011485482513958561601259185435266052318518307410855984379732982283802583662004370134537995604658598738191872237422017860671897523159042431579192894086044346526987751519959050867746628137154265656808973089376891673871471376475012333901659819197917797555103881755776658879021067007776774516260136012155168163067330547629841607071653732260062738382671158590253420582569007773817754071230500784182589095382565830909744185622324956649284481023168038349324908248761732457042179865261224722748925958481258457233658888786631003768109140215186115062816181450768654936307522794310556895907760782138810430668086026537395163340934318027395488454307556781154522468513537800243097668813352158621314666544631797486614544908479429473978009527229970899072685482798429122594390412165867987938026673635883789265590474166884723771423078349778247129137510344569105891518657752201935713357900858958190911189384564766404305824108144813306002956004463364120993163329545414260664776208364972904176307401044814138413010441331837238500313236152202659318044964219933534460592646070865291744771198809758050455379954840288892216345820605310520674882686472346286123347697682612550832188882125673915075750794856896271741922767760021037109669888395032357690158956741511496535208121232095421820049982478825774030293386907766052839207705105005213896960332529569996498281218224604458372951050230568778859725818573998003398866186317924262780074639439288316614421412317233994085932950328131835501215194673458616885233867459957509812894234478319011622780999835152128802681258208267526246565792465113426070500502865256893765541641823015328088246713966274417991879984289103718951031705920112830979834249748178567752119680491445218408121832872318489470173626473024395843968722849877839646868370839919052188506534311302802494415131680027668436126047199154755844509780980831801733581118656160579104637206517381209499143960598405831061987650648128111801015820221055610056063545681814701986611954676997512289969635450058164306124680347553986339803040912905113237226652526813231426033435816000934689774971390758054448271834484755481827600028436925794858384957363366970952975465328507001064522429987360418177972748293043080569140409457999998158986753266782829088095587226742262035276366087631304682219409913635156940635081185924122358951351018147621200040977713315193086020434681786322605811535850036543681863169331122356723528566886268940831050248633652677865247403231565538253372469566829249981189122935296021773468868669427111893696460364184990195882593504311179515090576647253038579807862386117841909651051652657795568695590351114638534256562490117650734541957352916689028414438524763324129910201364820803564194284454415904624043062710246942036708668020692928307022843808712220235444741014696735472272739807340097213543270006732536275605323737667050362416660065042551699355739006661872432126820030006370903408370184360116053513207789034399743113872804274882907393863091199882796421149188143139500203042121294984626063431022619973367394761599143325069849299323768098686010245716125418971133800904707127616507261744535764837298613538015747727561657941866065785777621888280198186430803490407752140764530553003565666960644265356160620459281099916908851086981067275800288400234348650152842506390668014904157984665572989916974530707379991728271235276436422429878696452450809769438839676779499448974581737937561852543796031652064338417985144395443478546901118767119990325419745892937114068688923222875088870829057968582977605314206399860215985026479445907324160012544432058798835915593664067820465450381089424323658467290236887662520896064269343900295523215511560810423017815345714549630479370788875177468200913858044252510783065353584267502536429560274915246266114799833138957452117689547122400335013446838744300034058703373596295256672283013275396290839906199823138756404415752803657394087498059216723445677466062698960294426959557346283361431211760938721277007655088517077659842625187326699850096519761386485750537359900362673794086256592090590675051891381257582330461362790062521456411735667408349971152711945246076070339061898474613018042694276084827253919757577921588875136920736468103651106046345733233423833339882852357780505135788003889685553752687729535397602793695714211741697840351246904076815703618990297547790673694366528713855796214998356930196915994665764415011161418443397824301094946826420469029148770007121721379028476669667791030777717244751152882001497846629961330710894625579316646387711269434906651162571295063246868835697461986519616378600314754817151079729392852232381490155755342966044711008044462831207086584026412057721475268799824620429388089072552640443918335423191253386701115759470800619719891328825620629933861970270491683904542044491313772627897999051518825735642457694528129183617755874784754720427419134343326251621562191849527570489340464412821520333171720692315342268522459886816195963939851731699369808958565845317912539377938445706974600903104620117555695432649448481443053338271452075798676619445118687016794104553812973325416346666528394898101767830218452891591766863215749444289034622977410995059203001173160796402340048537996501014560184487248866837681143707955478965920795870626099221299076320543520152985113022363461225583108077309064191013644285446927100478657121213305577116499623989065564691844734661361751830414857538164471593122495053661565741920825486588178184169444434430084086132677801381226657358720561345872883515259005633463949717090850942648441505136383856597977450600906086115727861332789415906386009552898048820403531638144495073804160061107958917239477333899253886472821289748096496954544189504575639758212208495524575694114736376583633286544583158206095678178806209756683577632537409246259926077718236511521274151805450278939869508500080115573520575015151746344426044033663002108765135572242236228376261731365368175501180560468791949827198968745722199638359392315813319709224438517400668040770641906093819344134879644613957569861371087172687241213412880938172190740548278806206958088462599985871161287952873730817745147312277467628325623658994084210375384139518960184823305739274009394615539567035330636036675598193106017981811779845797158582028119172363329787289583722532202124437627656916678016661244639201399973907222347215149163888537088129556445589118594343655039536302818264401118009022015663716887689668117453010320089804040674995829003557780693897258438353520549374802700854196598893178321464964238664129662305562149404805647481268255642837529937894687380027158597319190753417789653259999015918563293765567401390527010605252381072462116835814714770342613626076945921101127944723346535532379527602249862816970851664354142196439961863124721096484265945568826594804350071323896580891565032610784014320033116250721125221518968443729510852041223455814280261220564860522415394403615416023059802323475195471528422863387640489831857324671480479128196989401712026523476486575019228977481283180718017450291009769407925402016776228541548247809326915504038043064859911750301546303618683203683088019670461976100688607896132752863864915741718048742683783173762174911728192510879721241524118696956914549436083188898198489280610571906319034370511511084831594535769208553588295026085027541313811989006080130163822174022922280638174259500427561973281878831721177595624140113772971556594601352408102910871265995494158711579409902035778732844357369028870090890213129198013951414825668667485739810133451382415196767085631165689601415777225860904142169225230802009689357163566494041581359501787321096693661715435824361649962518858803663591835355603507873582141373394393348078534110667094905412810541987111520793282067195213249648995949311410321270887144899136863284581647468264553721699547750042131339267135534229943021447560559343668461382294600769061623848962247074583546388211664652519962965710884616582420587223596824438383406836578779921646994060310755547050148585457471435054305579473606285683628862249435412684420420936249275058951713155817459765130256836859798610012804439857085347961148888963421358299310326311554393780133574032908568741526203872593061680014546082183854528222013549972365596832127939799777590330457326606576705517793792397482167221490458845485481290601879309939547566751650138992999944140840288604333717181807491680788504986256212506601313554088252227648054036785902449790814449783021359392286011496478477009261387529759831396316751539258745279611634975854396921929670290932431614996456391048905582206731063324593981182160204247207892700493599514275599854147342555041704172238928373827175663462210254899295492191938826869493162302972098606016256411136943931683069227703032313752355541961821904670764991231331370187706948928899391046901738726493159513459440296649289994591426133530000536467326854437404643082186489943141648404010862536581780883909797054094543370978850016011890146213952716239066356398143217550665989356674314658334879306310771938018733064570781235435379024752819783926838190763265924127447512662666822113337269508648829605936448066300972333315158626378438447639305245498225061157520996682250755764048500059434702632088993703680530485583895119318141588728082840728865779112946889025126101210767704565975150451981224685081185617041062760420635549877440211315781432232322355488458949150216216574307617367165641008594024643945818280293223289814135485462850199859242313246684694017451076347150412676023963973964647730665737534236852759059943052034148769371156022173150584528383194672113217674697474690752536238637786777633468848271033424028484635222122294643070438581776606277793153332443315032001937897965556822547305800116978706769410041441422857793573747112929811670588896170199975544523239816595100262553754680937973605638628547769700741446885753383142452234969693028248938432842407828088429468375966585374333104889860714132175756346318259156557882329758068992107570394204186333908244117781677673638454184422578866833031815077926942222389041046739126226525879589999451415583446836933962843296625933980302403060058284580032486620712558728522363607729303637087770375696853969641366286083860412978293116629649872078975010059507285832018040400019154372369275845943459924268375799905531429539486230721165084577801882101209716561800355264270136076324803008606713497761761168177789022007279934201571345003695206802990291444422274788171565413110559996826650701470349231238970577360903949344734620080680380106577169951426250430148907717182826358755238794947133396943091510550159660257994933158773921236595951595232635683836296047986796288757518567866805986674357031413806098978319451218743401436867297749242380162905290042674203866670942011672122071072182523595379465096528784418660341059736977020054386305920170621305441754746293225170328742553949877387785332774520360023124943962269109158120856600411015265584873362860989674968897976560433521254217522314975177078992388010313821878843725723761955529235066229097988462108741151798750817829051010820981040633853280354900469505491240017545774854202770051792607981650336585344606281044974785903442001070174420844139242224430319508488236705711273058377559764798302776033660414041282698462950033325062813443595284202616812966935560444912492872409830269495117677871797600138351039136812924487078367226989476256230794018367905589538347730752824783698173206781139462462016740965016545663806699978622145285880952808291613761365982461219506004836578658676019719319954507656741412532270047627359199273891615225539389406394550900713026558723366939900064340250735341968333107836134525365968833669475859177512535363549558089532694124381509361084138785887636944348111915358099896702369073799710309175828778099294602935315419190395940575435131305549953285817755844100704046531776265607586292955754506041004817100254214338692621116458409966805893171929437809290866053627623456430963413644063644769936747433579684080268379115285518091027279416728647440126519540910503767054814219456748823876612391523593617077986952997574185332382673273367936771581806889976738841938086109504907872596060578552290658704563592714878595770625191113097016280713577611683824281399308563740228078365553479507646803610823328998052374755245354111510958698735957076390933157029826040245714918969806728124317725166327957353310242484067899027576327566974857788711528897389696326540719542521271727008182249392313222359228382451295692417208663915466479757351719777623470788164362722603462137259061869569121801983053248073523438518265455025110191189744107310332575723290485597299522107265440849443374121576722254566140684949967901679668048993307671766634430861558445193704382734532216262019352866620239784329366810746994116197750561700190834451155979645641804184391069616094223330782379253971307638077634394491916807584379229807595530417062575871684241987368168595760524514646439875327274063317093022263678915651141781411586448620490685116242245929611063600498135720283475870693185937379019461648538683523143447739999012755936726109631101422366626651111897707427982122830138341566017377725309857329048285957864684417487926648960883671045622254706529302795836026175249141816644110994023316395542137064986634694728603177732655227355251693937485810815350958734648975007961434544822609953257890835962593610425106167503185080570816769720861278304992635177948925120666427967126442472820333153603701382902217205943858782857444197563408508036289601961802897035606523140261682266340445311532270891919379468400599992767829269972534671693505399769741980528963900771526563048204722877012359367463653643543732659369130337330400159709857922012073196959313401068637023496354506649888927800508042478183670115202111531181229248211244000280047646105240070880459515746305077306194929520701866375165764506253196227820789971637842056880373547083510709620841343388492548003635878703523320092246039409470179268754843411725780406524061266823633763245589587496143520586141193495770917389827218848080565463520505920577197732878139885966217989251993580679319122611651673821337687996497444480884106462525883086361715000280579433870717187751808062300617469922022763102661183152929002245181267414645753042118521088185647536479066808839513965853071376535952275326337997348286038191090015276396427630749749905504220746391092353318600703232276147133798482101960226631500546383812185016208830327985324734189723162236118471439121943665639979712977502869463001431130148847572958294688023964208399426228326285755196457876900674679227304289191185198998492652446147014021790919341833338279996300953322593970733082220586107758156805247569913273845993095951043255149717901019237994135734115543099285565441816118832717033628879602638017500521443408327339625469587339669290821311160332162536230372020222456598661175159525177764307922606519230971246027867627612975011826429108530650998654068508825737999640912877748346316050635568486080507795643529076040395731938505480911510903801012017674943998470788362333905841230112386779047009040350208676985773324035716441178802276500506562425351732815983101475417935445107154671324857233641303319918678350793498372919441110987699373469175978962092270129275688002069239192269078952994983174034605536073832091148171741282426259190688351692077903545769923488922961273521284265497423198312247997710772696710620547102351487674265824070714039315852233941741513608443085505118588855956160493793046071291107864180818409041601644579703068014260752799120463880299252866701318139868556672017358082545430460834840945478293591893116601212777800446334097013754351044353447953802140961626653704549747915708750230237723228408581796858943066038760328376760050453023967705803394874246880886694639846623223170213608632070983708931160638386036240954031020489902427636711231352692941183912988174011672705286824321914516096191358994579493075980703060331781176439918653446722691526971075373302301365437798122804186080770082142383154567670222634557081411692908252606193052455627543890139235254821766295891962974187593787003345935069583115587155110426552233636251285414978912066304244923343418967307550461421745064930119794862376326142692070333140623610842240249029657226774609937738791596298976696036308095327777052406525172197377077656101355693248261561973016651949942282344466981597277533589204509791784912606512931961417145266874443900696651459945640293989335835745666127180617535225736518152804321740756512366781229360221255309260121690937033380177184500386766934119509164414385870110489982985811906897250344535975049920791385083781600155980318183385366975222280438014073931781167341832980602148790709833793615206605391012722621383791847028082480873405959698378394936088919225193170832155342999464701696977054211506662377959640627694005917607885775991845360139226504650000989678839391280142768034183029474070499871423356813186388685072165140295977642433606093876424112756234452765321080348621329209876930379776219760154649995931292558944714524233783317842828823050596478173183512098378692843499767913188005367122680026171175517224667573642719836990146354325030493645065647387894390363747162682051310497710334393918182084968986491657441768965301020450144423101806154462024749631713374082755637523731413219150713715334125611239279804613122535905305680673398086810073395379626354061425697699745767142687644244609398866354196809760771987363192090921278713806742859542643737948509116050042088668067680615258450469749949577687312950510166229838884344626040685643523359398592920312888806900903709605859164626089848140553921109046553667317162512567491097786216973907441088363477504071706277255277010837952514551406361633338635023235521167525730339709216383088857072225090964447070731324359077200139919849880080106083522172706902395775244667056443852714115874181074008237989400363043140030415966234070010274885515856045307764389979089056809821164702453529171723094860799564582875246668865012023273030099130771938619089828992124139006753258929433058244424061260965277682427479199305436103957605651126574408159881861627950889667897934787104734650855194095817062350088976628648846014452837280153813917667241079094498713773012020454329750881725970208015920633028284256806827569104289518219163977549749913573444674757996659475584334805889738077355503471361376481091896950768671843097675048566726586712539164810500147773167153609962007424192735546006029297641339557952949928348254677870595490815438361402628437267653525509416721779956069611157765533620539170489629338446815669968047774247838180617600986420077979816493223621342664221514267763950412391838146862337574024353981323986250786970237550646963148130774216585916888041791624743143382604882664417661118357869097350223884086575135338729182096660161331581777839346138238140003631987742932296578788835941785025152335714606388326842583796769360768737718303543383736293467025694677404950942231122111207826821399246563294069514924489533135761542518221916469755978308985147260092575520362662146850652206126663285995824163716523681662829224475608174501538134828571298600975386322705072939741140591181237642766612207544974119214490999971574205469185563988814087567634014515912053768113055245068392221115441162081877293734653595890900713074906130594576579103157840479119056401086575332135973305817060497872147178481862546288413486053930559086089981609760623574444128598603743060656521129315964928815212530432335368133803365160255246252433636143123918341163802119426902990989562479791811278104945788036735107156619898901086667076134618467434974684571646231187771455879561566063694069276083743459695564284027360148473562582314691416749733832731239215874086630262709235186875185555603093291931845034724758543877316873321083462394747793039613512983396175233611946441925757225047247975213083251532343456529341617174283470807246037644234674875839977930684358021818496726237629117833332711554352736536358073505840456166160760303671009879302876766492451879775719959311825783836018518014713702190842627191578357905013577565664351633233654050279194961287394724164320630720377354879678343163826966464398619765719768073398799619847152785521445328339861446945673734091473672203277771446725904796738155409986881235222087954054864894340580793060416518022358477829294497031162754485659441378005769175028226027017798559472512746606204300072476856632592259216949844778210894925259163569670334110808396271284500972401687387190777364581510923526433855244009981371417996461548489292775504405525102399234888384385137083078998648063358948756415383772942709647551286410174843158365378223893350463247193234211599566056868548313796995279479592877138167906608361041946629044599652515815294951571719562383894074580772719067002886845248992412209013530597847378543368780343608274923712979760323158640569951357612365913635348409882783246489931006400917492229387418262396490057336709346795653950530005475531878197355111874467524833424857806268129342484012816594946517054931843964808854285474450770629346109271025458415231320988072302664999157161048790726427334945490796735611762720620367067035416777682179855286541960774135298094700557832755796373193187608853041704928940163459354499669787771579867656886430676673684279114003070047108026499903424643335631505384674975909610264791671517661026132518758151879021672375624711383872485173415908049294078052123345698937288646015345088875504948645710602930880105422239295305667024134160029936344843837460948223493882872412253732563047272086762148147421632574913454936529332178548950525574180874874230487480848805003359209175902822725517418652491472562752292760402939992876095980604700302514918754590610906777868192184920151345354520708645977256821058673536742822450675778201693461569163364113436088130945625070896543924789050874734749409566388721428439753765194402037066587800671878562918832874874167826578957138909262362098070315277882219165688782744556953262631026395839861861102818315435693799184047844732186511682122254313502418849242917838458966292217318748451951621369540220814957764306969631201789990339198931328404510699147192279749850969761459126216028366045249208199507841439340117240038574750255046057929598237253998576260165096205446570455215338011752316222655492304282417651852557313485410338131990948536251592701286564907166044951559956688863918176615821372729277106529978704344346349564635565329548649386664283655239875730393878531180672391954574453706865943362624209585254715018478004365042203393855021784238237324889757670232245118066968483044666219615366429945758967504994480019870762392180445651178667340686761819102475235988338130171912134509481656838281396510052897207396838290780960372005351602953092352643683361383566636881664678768382833781999839198175332912495962255377388380486217378829404370993050681450178484539203951539804340766902885830013065687388313397136505247870358454749657582681400732160845813997256757920574787302930811946279389321350523693568953224395578933803722880655801497121997945199200322520194766295187071673982879264077947210027645823818305543683382714750089427206950648853847122676299698087638032621400494027196925734644415719907035853766190579764025190064629792604728029368825836721964154014231682820007899017251234991278519674824655059292051905910405260188170753140084512728836648136772344014635529981980840887205252258031097137043075396250032364796437338391511938788151973496826145298654910747151119655611375894943389895482990979048118774071656233234780650414914339390478203917417323517768470380323295558941561015689299672496058395942131668732404601272759426681941913456048532898837252198831996430626272446684928107585212025604257532041509205240723629934508894906944595259572574604989845159724519065631908176773969448728694368240183725526988466068952962708839577072438507210612159286605789074008834661257654273064968461607575268015663215190645483243102895728830968960686053293056735384577141203178555214861837646295025697255508135532098405367924447594225589143795644605232380145724793805835314573106231950496518645129963525166239355005461722560176504001152865957731807794082376907328222668287986966324445903260125470586847160725797592344159918448378355982047610419171007621636476651440407942242981457518052685051772386093703298185334063138629430215512844701118330361378210985178946272810238221287941319728284144032542920688635541458966586677965511171628417473015800052723638504510034391583760545922140733939175909979685263644032848666640445777185492163473026848339217833948813251289648556878284114761309191232902446613856297579184387739546271877254108818004080143601420928238442472926601492763795815396538836293688259673971113598829131209619967835485400212292876299546291046012284112921868069659931819050182501334783967282496319367919257607827819946176897533348238468146028770291415273991453312640946406002089344362892073466327001439949951388755840945027599122381184728060654248723401265598065123237289713310515019125768320820738606321079693482938331254997411329710520271796054892982068466152552750291281609848957053530767260405377770437046583423198636722881413810647134785122334251716201936998791801498502607762163578360056321507254789632140941434757539703654843652136416623301792976438623218174729839001483138970035945517159739981360981017987557532567306917206609710651457636319900161417781952780630828759866191766597378515758946725211087387561694014332310743252633528731130549533821542768828817222877601574028547544359022483999504480611540360073269540495385790503387952980803958809111306039386431337823831440400523154331990812642208549576060875196569825736419525026245245073916196175870349199677288745588139349886762081824910263566340878321278087759623037439308656466420803800098993126357106779378679173406904230595558656103429185112636452111877109984930671614188444460486900116531079543294218519199464428763570673435475366416566962767297965882181269120434271169206361562442090857422165206244354992330864767675909509442471833466612505816574403019890397236178789538891423348222257910270662497686159657178424856254180642587116368463319430288767319198269134723976948920049987582248808433964094035292922668817229123840587394202819560715214313559624963922950290990177194196732419174982754759988350299934318559215881216892646748635985384533409497411465308652718628501959586574779337844081324113457622202253866814977065581173830035379154486460648853061982785971946057515583417944664746545458928308759586279123919168850869328131286007349289332280483442403300033463762407398872657910352972177136649828095431992274445718267473112353842137469857477131752101032596922866398831347389011524900405276228975122279083992698750035674408672445649437625907393510952956130344015579470410923354405292801661465856491729352971040746918276867219999192647477059285030689692294798846721017485298346688493072674554637318650215041058122814068466864353218994884950820646930255285011977713687556035707003428482241557224520833612346712022344102906109747379067854486054177641026952614884798878897693601911516319235101090076903984098924536334581676539791473873574731619811429067346777099429505612353982009064168954851026894288362051541522545343522034715134719869777360944486388482168979540233071720395227759100108356897142249746762627889235600471401530886974113923111858180987512135227755290857725231839783725749803520471030100437216634194813567735532588018334059654289421543053939637725193001770818080597742167140617887156938624214164036374217206977452104452702558211709647526377477286080616303669359575141221423903982723798429572163650609615856549899365183636490437404970007426831860269092728400406388980775118260702788831152959715768065412512322401391498107027763868003489769961240674945449714422340019934028432029126429362073580652156910177373228653454100181384654549528784483728712949731043965685907436291033725191797417777482272839584538355391350846860140759193693176680275271394598786671888580897956413500243048018060614695386983486305778624824987699690740795032429067703758067513959196948230854104240491571272253212692133965104284027853891071033369219960584893186257568208392231336271907243912440881585059125097259982355869549743485242037006745085893983543802368515784339268831052511025156197388711176298419232991979350257615169100081672384717171866072862367480702474687528287134457914582733097545595615274086190968563464358086388119536037781107203066834499406926122955462290439760551665502162502530535701975543012439666197888411158658439192554353887304018862320947664162701868905100369844623712415911296334919449957498862117110997869719533957607204571051174018686638005892075958119548818590952430934547836982363013638067613296193152078242923882403726154106444646363273533558246972614548377130728204323373321803240878989741972948339556857495813089720814391007412374095879783359439244908452625818313395624447799551721663056661947377328567008934982472354072637557968084427327700818015953243070053908059766436256011820647818861361162195968691931080084765221562972201383269186389422524408850959112074145152670692219831036050407450907422481062039136130442087728240809002525971881109179579613360034722030363373756707821254023147545860706186619789022542692084078411516589411534265906945173797396609162871936989643624556657776522368608200389996046755567773473782515719784369097219307369512919847278687112200028213206313727854413489224094894125958803566577155341615586099354184079396412963371363429520150090271581631793012082132963658797283789615532188681650310857084153453693598564239524205718354967202036033550698003263158587250017572688040529607692941514530382433664641122479519263193577709699504473553905894198553182611458389368741257365970648201295672660259789942144848228008259735927343766756902354541471954564365411111560567678114169260306567162024833658198062518349341223535889950782917987978369349096662691546688744658738241260689525610866856212746679835070169192425883251521700756718657076938810781713852048536343411023860648903188174150322560118339739353670189232796757135122021820914392978000276277827817547398111011489323470799950112065902939660625098033562152951115275864883959811759572134207812287360855054427623901998389598607844245519231454065931188361934978899741135039658442515268968174882476537742303519434637606195378855574843161062861003113575373364207817220573542730883796582767055402617923919302161321951729501102338288270285386526554309175845742507266681694290178460679316880196604238540751396661181683424519042662956043125874566666565718381343068377905645295495141885220019787179425202113190928395451986042090879991092690953782262746842481873583464788598110902599309226208341025582144885409510206457987150941097945263792906152369816473723209971448993340565482650907540672510509974535702756575895670939161637899882935743751507113539042158031532381244398278215860226171459712679362826817001829446264560863463245440386916493810477114564129099695563913812249653167446629206818865608196586473087579313955902469233270159226593265657676138967593443594734292112294879683363004072943031381551389997847945423993424210511835795480647481963237719350159709843798764369191542127710809138868000775968713295551582187961290692210771744986727210474097133415384197466848180885554888488351440328488958898916621554281246460082223218221930158611014279409749076517672855568045432844805561716433591084640739902358059503556986945894605361340504269093166666070704154891439223894373629543658800280132784261481794470358742396364688479450006711575957437064260874768721754923553555022499115268092594147875973834312430286124227050787239940892040620887141535625021665445378362495164260495102451225953850441651784759102344654071293632912987229800696182690167217831791069926584358253983811600183571569996732549262010194111894101038741157522925527361376027875585721853461509540069127116587724550334167878340336586939143970571227400728607114131075602235477294370208867073703190927809549423556260337410459095175094766858894911789647286229566676845332605448497685342922928946050190872840315093443670518191017385139718025946755268644105507485954181329155537480802514491196201005801955895678863711877077898974668352633210628510391638448728531223224110005763302869553211940193583559570622753858877249601009395617555982677105740977168460086797761075687704614886619438926348910531890366556127512923095059116504706137905243891646650402752951852255318134460930276502627899027788146417751226672803256039523633873840464220310437508687271580148709919968615206949057223151456269711142955303644582867927070600425342447189095131299807898523235908256775821592425896323134685546865515123572161421923440527598882444353350943931604329712957828445056000514979330751710823390459100717856659970637936223936237504787313690782988828825572950390700644062027133341925975946837154732066807982974067276790235008532321726108747336053580788691839674920891718816517860798338656739309646923517382706904044410370662731040613992424530496479807156459779178422858986709198570959035091694280064436489176906073317596041139837585152876211297403317260621444568281587747493510736003354644569664808986332668290745649222196401045620115708589305992212589694058170817897015303988304211604070479770539982339838591109964372763738804484919574242277565713441254185921045527323380538490174393665856318896321038802719843859603008840910416312217397284811449287423628768911816164634578682507658984271216194130085574814039393581617225680431694358814028306078172498399789142226533856110545420291771170206785941066764892218674833733655651575170163277619082150050846707488226099846328036579892958333020886363833555207939771958725725719408644860348817972793518656441426832671782742086392144972544280226482622902537819155180380716318176525145706348016183127140978278252993028887064678906620656657795197256868680039048139215331390229076356540120452100992778562602457680669914976949010674784929672230162378075605962415680473727917190173731272136957339146615293321101049012516501277478001008138343392593896430325450224400772979933324699751069979169117751784469626690493241987789671650865293737033837563885099696223189664046381305578729436760687405175670281634906191549617758826706390058861133669035603994290986399074058735545818838223599370156661826130446807493444340005382170572149462916940528156761533440172263844868777498745373306311756160888840263818601799005876410340994721808290925086672752783486657055045600519929133023522168977428676472666966181243547353178831262017711871423202969456465145582054088241197025342383716511632895410155465149257484728238931365727521651991553030573416488919352670559822170765677117395979240597758557533183242027636100820545447631544498764847030539077131491478419019621164324752899543397030861981595811228329603294206952445509214927038214906621266121064942082963514002828978623889779942882218656999653875076160249024841432533154826248287613833767864903360166331200524824817134618882497603319242975536525093182235138964898725121927759992859549762301905932336287221958221325428552584130871852702612568488057020371103065160610868812994676564386118678073579233742834577799547498722980994089115095071389655564407775079940584800384488818895558816125674065097245740086035806105535153566103273589126107336546421337286569333934640380484636851576491389732645049216817793159949214124306833494976359095855975662351389452010936064897000542173902390428024040785825986106697168078570699349185391401532242402280579436596950250623985073738857879158432445448459938912209773636797096259089275325249787674344692718122449809772315064860250446715616168659775862615976817111858652968489457025861869563443881354781502920049972997175128288681510767677487775220057389065920414189892857386871130877174869277817449275692490390585567444716931275802403812083161257782848172460968585499388796532491032443275431937903384466156442494912537864184577829881693052571103554033938983020972014846914658953605166381009212302721412622800508971348856964363849128628022549994897186925832173944286767605632926031666695867334844233604119199150061723443720179284329545136797884036456332968788901552220573071782635996212704975970418485083073796742140653371506597519437225196235191140981026966945133727869091057768589434582471298302410345281786960758028850821925761067094627985946360351475481478080261583275202855502195163285147037089475755169423418805197024508040564959173530446143950570632433581505300233836546804162923182770884264118430511542101775908302387781851432507708919859884279289246234054761855601068922566777525185222413502544436973627507381281925700974947247806672749188261760582461264275422227515941332546547405669790159103794677828302144107869586006116206653592164268672018123896632608942243224524778019704259142147950417463040452520980352681764146877041483971131411897289697919289757275430839200766605626172649126203742423945015773999298779978387508461438809754370641762630681721574522537545062571790947261759733522646616806209553484079404332359570645579885605385311019138303836871005270996903968082491623652818589681108656684224200073521871458785791693486594953608183494041647726109666721211646050493956593771495348147818768247883085026081889694379072892444275128107311768770768130359464814071112663663678836354067044074015132135374548363072364612270436847078582511503366254778363364215835714455855987186736746807257924147534863716183843269691687678118050599013159405575583711985117960909547947398212365845484289892119149973986520042930608570514695912955357709805304076948029571868416175148830779867958078149959249422224360168716336008452980819773654142752947095381010539388830029763873818595986368514662079046605308830683504836151344162028226806782133856059873586761205219016880091519090653412337168575936601851377893669228881056698631318414556256017202447127683095896998570641825187288056210500801469916756224648157305027218711232651293060598659349269923098805575371816073462219401082270804997223893122294433348994503965144596627947898047839789580371985611371342660228137203204975011624777432791198838281670185698770451245005876166668822022488951151850635557192404852908448465367176217254090413215341063828419645701748694411943775166036126788533133518084625365157761915823877730812096715730342205842679202885029326924930341782808004044459197724652557261229477787077483774722266016972553957380228524500175914013734677242521395443529334705550224380279873411040360963363936630600507762863048794461361395442740513225972505572936902865351889673911043892389378554835810788303126797745024116937291471310962046143809987783066397326788973129931399670489392895861646254001580357970414960106252138255696576198669836910820441649737071610469199412760492389232776042668049855244511444558253341391743048186475093942117149161361717549447501222278329161726895156153583207229846097582036053462166254863938357586306693589896895236419551443500419353671453258180850747847377041612446748598390087403841258756818339251473602052993333152457480063494670704042110435217999619327088940710353494121879422678089591411026175549133408171231555122635743751030015935127897187112369282172179947388541958033127165654953415844967760341020140261440944614171916572487109901595088823402928884749730690435533767819839330431599287184544425401175224088704990971361792004148250352016416402383722305594062329103981466066575015786304632217758303392531997477564590524576328805365958597052689706981409017701632294909743588081281013609184092994864701571542057103690656403094933604894796603311790341754410625453135506181492430011027657795300384571220578672292618913707232557695176416798657143536566783508542707196374208085700268610515487649011473700704003819876713321551124306386394569511692065333963468387850672482197178528530061415349154735356529717764111263243317373217945814607677294767520312870547091971931944260637910554310401084746897880992174342989940761349591160506532219169194404365519964260698238284874212873888118424975211615988028239388719542696729120548153474599326019913255440279158300788397585447953231350984680068009044041857947216847316744387290818538554257266625587395426884679073384077259507152604283801803880835919964143768896543750045824896337551862824604716078953058323914607480827834453972688381354410790305917729447913859836750791608692108101264911737903208238147717447566685099159609312350495024097514903446614499748073911222126724475971582032694077805685524348402756753622148963407647844311989119968598221124559860552646654368102648527252860085757891040682665236061443540133786887236721279328202593837277129249726508997730152263216302943155131416013161267405162546585953615960359368299784725154614070870931501588580342639967054223816609928846208548075523992610014887005356272890057296560007234867236442205643546223983024616033159563066108148679360944958062070801244013231650397730263122019868583343489485958583006109955282262435683200264050422395271035630325175953406366672529546861999479417404006525626281068155420602870506648231170577759743315335158235658598964616459333015355462628765831609162861871750043679836233447830571402164547194361226969833194556994250639950513749202705642876404495357502896242090178986252804648410018377247473177936965261134985796056681057297048804316802915753134531960623909043594086064592159393065408558500521361893356421171656603537093474186438434360388800218315107791434018167810934374516430984639146205832948926460596987355609802263642897336001571022068542352214734293287598485957538221515050148718722493609743895795174866709196497102521633178450307294263867906620472203535411842724246098140087164241785239980196497211212269095258873312061600706376986682301321654760432537622512073961569696866172397012208202467159582810915157038182349218130638174616634578931412187541722458292551086674752646932810657924594929348406040053770354558647986002114544075472972428413634679123910372504018645808226497661251688627006812897454325459362587341202961094233609461710411615516463029668154274148697977498135276078711289651784507293196242066766397111851683317124786616568622855956392644243747573777323086357986315952976251113279106342181254092326313142770613716889944311722598438267661928822465284404826687829785287774368836968140505893923893054647120954774012217131182849069294747519545687409456703212794408446533946256131598339406745868264713802491618219775559934914570337629664834372180068537013159522253991937730832936610797605196444093196034578966581461991157158832107091283558295258275786163621630375870971786899179796790649555825544569043665588671986631199667417655462857608389295079015090383543482655838417742344087359612424753909602492791577682333163484278447829629443287420764473001129713167770527718503594080706347303502458898381069996481206618678979947878668536593700194817184662416233382012051474066030857874822585019241093261876941664190353270209333831200041906591136704057271657544430042152474883485382748602193032413676427335472227969600422564203316735754757318381142289733973029832873040357442889340994515412991863728600790193436906311511509762070970784380544247154301149180765351958349425957325813824328538598665996186059691051551506771494734900635538520386099544897367338308654783513811625219562574244740242741172803103042848253798194319125710713276397249337534316165058994644394074728686471607239521404366251876024490697418981173746725406735569912582063683758250276096618667434756859044653153812411127130211171474423379636430495900488336779117009104551945507108558505541907944049109556481600458779634092745871803566127084014732814676831293736433466301288362583489671646567152643309683092441093098462263762960338976896714283485107113868648103013979500422256154184994336888331138952757808354449933357487712195515910847615336897335186940373860457128080101134609746466765033717333585614516691383401278917305057941599282298958766790288504109607367660140151222926998819742203866815835847649258766251771412325885245194462597482660201782634780244116784433070683292566024187033998441985286646274634390137989265964091016047226731672152585696129116176983230575572345528120223979153340630141533170097845115901409708209903595421828138780822556423066525019252948624918731693540908311279817929704743993946633333693859907741471292960370078312275302214183765733817876291436383747170416099191739101726779687149471372338578723486495493880493863441429280612104519506734098427822204778161199903760413531015031308423933189150832585853060734127389122480305541467466044905227358486170852722510446611299420848510184152032946074807913436614093570875252331096277322280638467069000324531453894601313715414181430096370760745029561987077469563014037019258315720845262614402121359510602545376738634432004817997822728959862994425314508798498312503082305333156713100877486052634223062500975110338187036743344257864695451708332044227981212987048154032896317743938993334630887215010644457698905971381043508923618937727828116164227054735395888442985153345071974848845409524663135215949860018189758529115367177607318241732408471307749688593277006644120292796890906208417874079729678629939634447941765256220124756829414106759592031067689538277769735089363484883897581875646607593828151518873839717457438325478293629533283034054527730142098849363239764438444169571588812453293909299547962172826266162400899288631030050909995543639971086472122090222969981698862881320506290457913771718790748247915425778847501407296197008265613876953594096521208670705353086812425529243379281941534721841419572031269473850289815049407935828014542901833452319500078223883052299430343181926003091875866856650323251217216553405817526069993206337138695206042075974106710154179952248377747962369351322931226223023256661805478762306244855377574923626688661027944107822134814546321505741032440625535269738842654999403628010923540830157341759598159929070926303431473283818255658607856178710031574295394650455446105521501888226021312098617712076154822455249786425048711671179732257803215193379095708029566818912379098598796540313365448276352485619866812793093743947033154933100965003536626889592741002614358732713249948287998107325358637826073312270855554371982291774544887166934621390810256540820821133935280474565439326108754627784696005327771811428391804133582297338598305003466589116161757946730788179452509534476382570448682221547912650872890375260761630184035486169799857365757790759516306699363049757486509387100192915496237451747584120443393555660175511516436012297163855392523600640302529158507767655399936995002564707847880299192025141508993855765192875984620150966083226589911305037070110884781350192838378547443759320517621739797449153589476987542243019162909804690091207305196013433953139333123362911591096446668077409483884859279382318989922551957288024079185467637914257941419655432235646011717249820355752243808147567041778763204970407687190140830067397057095726674959569022370542276647326343992455936729065430363257104229061451522293984987255198054523149631882179817903233477798981162289485516584420192377374250434124676749851650762203625949277717383800886562996553425239771190816817614131118605886616621951848569059874797544009272823636297206308401515421793046718065425157333119542776203605325885494756003676111785050414202163300713860623222959757234883368504787626696255909912223975566223464076560498838726143702014768951722373982435114125516770078550084785675934268477884496894167353541557444445583815163335719833830389272454994408367096868443876961681800847370744471628305637211591022489046491565945259479745118011342176022925071895878707616250062883447495742347645582041027146796291950727176766811576361046443089679883943035048352717177624490335064568402804875702062485659471093134558697417535847846404684534514310430827123824556115720825671789623825078556569469719725919449128450681829452868108835101746697629675399136423459569901970086799777543707196508228875175139667999606446027548801131976641866475282090100340768054370090897671291989404018775663729074307568539952246323006291728244748326930219181053336792871613931000486402293922329514967879308588732537113782054198359231437152495513239054757140522711537656143871262643902781680138082399169291804498819744143175769728116996605491564268555977670305360529487163517348407760127519308199001490332745848278868762891771314035983380212960848193135268861580377902859485830267711167920782270308860646630029853737291596279680930701455016554925191366686473185918382906230446025960293188033725927676428475939228685136631107522703797958624010109301420915395804540151792467776914093381221147562059003926684397435705481079812561579292599924856866313897125832931962834147495169596878531646605417185589557903856708529463390492528544642568225792967281432589000965664793083257219578439470049587849426033454175722460004603890954708646090701142512610929742838671309411626267514206190385830621547794729792233854371778097016568163835981808355722035422505295037630551142337148458325696653043753805327154375386801838713345531722036063886804429216087705117192116321924200391830808829686111603922928563214421660056446978582122139750268242685788441393963445297758810089991754700372865426357769644262353238100802538289102796745166333376579235060264252843091968178847154795803200983775700412704151147859603194904295390207300236338647223444059776867596092689142362073797975840439356147460908446249742258281527189180693780109802899234524676567196173355666091614306960871048863597220301583331818091536684371309344115337432800173524405805825863516827699636077445469560960659533291967126928315832354020828306561215469403965255740254517878410398174993044771763675054762037635691892748004628474404622797908840407367172107723662415229301294155436993943965562442565647788589015446782006781192963307353051284414782767901089961996235509736643282068919822564843059116797301598640709739697967350206369297067758588976863918581350526044250417730371996585194267353623088312388207348680310325616818629147176514758191794270401136964491141470715203586834916714867145941725793132153114594540898620277211773652154341634115243316258167635223759315291469168269954181914800412296331824863153896524240646500737604248169318565537614202564521299592931236752222777513307120057444684481197585967137999123080962319273710216523618330180140756789239894774803744232373198628727458022588565788431518137195162128391538866868147141955673554397233008619776322321839961030387952060801882557369560243681337274193788859810114240425264629404022190261247299242173361043016518222344611649555060062020260717251485008467387525355006421852721190276582621856659770986710226391494105523896595791468032176552118078938220833190503700651299456041342167982188191369283367115484844090314122282626929669223649818417548230636020775189498019431042766576905103689587262233953394827622739476432551568690679415937412936074037345347574217845680848798660843029451073734285096142104861253280722552179684329747755926468403589449912411212458800952660658983914237741484635742069878111851293519331833901464120272624384914447453128585382644361011305227731005685600301595125250688741129748952853220709009114216941882586191736509733316241289488255192578363744078564178223576499755836104662745543627792950545549844126710788309995005761282671947828355535787926137414265589772305974819871068574899902247709058250861065083042546826295390882948527485377542413926324153474856465868782889469701125139307164583156163066778257857659791244116161508146199231412170827745073650716121259969372138799099842181646206493883993013007141243241493592408164699802686775864415302420162149702503691990754407467402745008570725646487125276844522554661034383321409663226132205307499357325454573534333817764791149710481372152331667476779683803184723944274316004977498941023484884120970648096770440115312807972742111430528262813071440213633359131627941203757189444824657882546957511735148159225840628822365462605241174019320342021191327488489714929026582281463840582726097861846026900285627254878893958087983950784898686084481893870515652913637998170481683423461708278643919909540643277993447887935229189489066469716050940713677158281737186064147329064290532775470528398409421769471220399428596217189081105745983876256865157769034783688615620733803782742647761804237546978569207059647162092191655278342561316187458560805859111753134148400442491515626618902621851651919808657692422616564643443900388059199589062106055879597006747913739935952310536271343943462941410105627206439557451397974299099475874073968509066109444740942867758290066415153180858101664894344731733696769307008949504385211639009187472181274016721571670878021395851687387924372607100879313386489324651061446285565970786273152889210545205417290420313827259867173968063029276785903367724482304380342419484699093653579828913980718213705059704290450353079298795665859648980989409925873711788065332849357580011078008541406783700136744560722806381516585646833845392165615723326988936619913959376896093346231067806745239793470793253004524761525970582469054880832214244766451545466493963444178511430980845144666707418971016165074361839336421616586301154998829235781228913580142892344904761733287442983273448158046767717689084676698470808842449193846361388500644430934925907165387631344756040504633449901680894757705803846056196725121581904982049517286175279419510310953698819004049151517520039005796649939350429227287572732442746332102846843235068010978101421822574463601352878501033400240712252450146896575177878278721693454536874056178897983895428419964050186748493628355425830291729683625470792568159398664572118263638504801742594005166328366072839498027301191841834265659685816391984589804931733851036310828742736083833019111665363751213782186093119028184710505951670435915449594843558121046682769813610039288438024258266010443501043479736946847914895479282013056199288008478676932132954277838732815687556442376590545984273664536220291263029115247638311667601563199704270961923226949423312229884174475070684705607817004932767080911797434874285519742795802114618588175173916211840688888513495325268414301620406596515666416513488019367429151035886308015123894765206372668012325569843099243439213051118659997374159024626594199759788952160200360566480743508902950684023799297166169600081897380026684717019375206598325596698106688423673802683539158998080429386523414398297530120550511935793628299848249970164933713854735485079113028831240309063375797363065354532273863825021692037096828687088367714253286958816205958403573354911705119673714438447471609733411769901433206337965391884194476726732132416512961596983344512202389900672159841769643051648285409699922122869586303946892698306233228574105041611584108820284700108710141265697722773956961550004190263585714115523763997242328891723076164430901988477787802680957225046305139014142987745691072343165810278286828935767719877433441705071594279428062098619775562671026786657839728818802099290813314335875670883529706741802337807670522192851810253151882498925643466794169830859897309621139906994982722619296407126419274451740177832825929602750829905678969028355927106259297285783486988610221279673750860323692343855150182318016222621400454838889635956991581803092680225153296330041756740617757578807831765587168209203555763885316235983698992384189954231288472750197939437604056813127187388010044260000695045369108382497345619509235412529460813016331815193485751290810081384530293206407174285063455058816222750040073587879861666562863377653609097838359163473160168432667136349212856808072766646782636610527016955104190578345020969771532999600162175703349812964963057591757638366009062272070966247583886738429292458303684474849359359477738866733728559074147881351174707944740097483701662393489519066578818545887002073186503544277095641090867956335078488502252572539391480954356987087074146725819430526736681764757883378367159259808480805283388106254400866896004999824930912575025578595745566657593209439311202519119154137146420763972403637538909000214605211075451934374740798877930824555648223208804975022895276058579243741784570687357521576914668218112212260876698000466004023847464740452086587764065242242794406383668610858671727094963506375224521766112924874985441201873916724585892813130791290672707470417288390921148487418336327537654041686511201175218560821175795474670077203338992283486068257762487077782965422580090977101385336480880623252122671015575202546157815180787685108227049090321276016789551244494368973936059672808921855270961213452109087369894386925631285873796623164771679869745431917151543769253390905002688361616279185999464752493471972376132148894900084069091303686716053921633539208151282813965230827409504245400724519493759878789745690182262033362884411581890210921185588213425281716897793368934358089774213349003933270609060838122924173036041030256230833502994277712691897509782481846811694734197269254405226364654000926880701525105876564934612942489667287613430420074893562226786840141171361501815048740464895286939368344401204895624593019747052201514855027211678822921195950419195268683703498051369819004110763606504962093997540491253709622705698559074852868925885337422013112521270060675213610552305545517139904867716020047371354885271397839474282586735327766949202973667899964471602955203137583257065617250860063485751497955448325448789904310695749271850670798930825777840700970250973345563759806522668887053704481995668927896523689792466689239891736982415233757391719425294280765114145810845548791042786568751398572004230887212704553092824381021938079114101823295911868143382821305446470467415879001041045592484051546581981074792105979922025342357533941587332669881048366250617574279870301070518850881058705241446244974615507575754941870195139670909572972070513127730566069158032017341901869724754891949895200777561050862630359929513577756952239464367430062478040523000948590059983227709223416016968726298543869471491994603421185781222263337962091476089638607634298814127694743778531656066047667130885559573038554281294708484841762646955488822496941912861301065401635776038013165820169742652188826005500310250196188710881588910277846439813303263253617861719127976810502521402760897849790125382607994367226429864873881315260130957624109231031459181459625256382260017771041564560949365620252588361538885660908350971962167270408365497950393442577118504864650393941824563492547803905477634829937366593335916754332547173663597968604973586414567670411198167970763666847811726597328978989876135477935227331676368183586662001102909906427108665982751287931303611587436456803984149997760542248262941108201601335143701275739057574016479571218808139013275770264737920945088715632414393093210882398041280996539242946697013967578832937258950661975428153105058831486562934725567252449648237165919799806370056304697596606474485139416400117600246585726067913506416501596591153833452626790985388282530126261083185125171219512976401154345014829428087744885686331514436600673001831563563339343410967919055836257667780222030062715308369659049098549425047919476741189386736286717955671300087515499023240512897055995625707787813710297454938372214235726621919693670487309048211468889804858175095270791945236263194741446961946528212329615566087294699661451613193214357002747473257173927953788802561140802478245979440605049227361813977797420715877365201571718749337071149645833083038588888433633780503598704704867852058818661607912856241626427193605901107247020082883780573922173899616659373227505813445325032721644021481342300878766346601937395640288848890556738679703394774139291074827732872904826529263415865227334340279843329127113353308035945086561859500857931475268755570874782777428393024830978400106705931193271230808165446020957757528115490001672269598672795551269516790633023797939101869369906272353032070054638560957679218659538220137747939578242216569984994404493063301495134822850421127909319120606617407336255683948202615115593954155408344411065929798032978708561081886670920105944398113362780571583652052518818085196663191076135378386873985030374258432316588411787378797178627801467073081713409517946180369333659171235045912789574179017030395359912418374504545600735077367316271635061656204681807699258271297439997949159781839563022017015298085278637873762559930876963056786774075878879866719396420594730896198960317153753427237380639197830681142469707380205921113413531011174602055384689923566693469065472665258538517185603910264343911756783382111931032114017272223992184298049773650205162604999039739096584603031842782507247160212589302977912922230921947889033765789026282706242729280712755527242042082854499032916995245416823409718135686422878110480627468079200153828889222524670043809102912184066697430528930771127732821398726107256581395413508861349542406926174730853100053707838582837211472676697065565094720729547090302558096607172436747616424974930331254337776438037071781763246497444988066623821682382711210123626565630823303444153948825885669149729193758386922292583956236646659314013206246784758725420182366380233232031378766998841483041414068968693001977190701512851128942478372481296076958748175889096439957284436516127349703495728079907192972488528292433528865823301622225957153307134361482357537622534777948051537824967866129336250650931914380559933055067812759415325870341286012419128927361344465945740166946061832428745156465818751311670052751334801366659765171497660047864312869344219348606118078399776770325159314468154684413090551814761357151296627002548786726691214213204489894525535790698337064781525834981854189966685089242844036619403555541723204121869289809286216662588895742930991264838953430247359359670503634117081429303446739612194651615795413094107931633373784970770925507847963564767158364057603960276453865489266483148496032483929991930256109892176173081563778076326266763998546092207561252388750761385161309690220779703725909151908167116489787099024848728576898697993631517877154087418431994101256458946236156557178887122690814034838426501095780506496483230202267294766290088886375191214256737834091495289357614999271312814154021208822198906674758423487811620250996595776272146460519551943013832275092624080431718892620926449439862114518029107858830910958608222411773642378930128639873260456156568537889372931727365195948161099170928410748385775297472776543580736215251329758893078945524605442477143966912616711575788341274553297532631259566420244417588404665685364899974506634866913040837528645993512628718878365249999681408154451964001999537039297081847965825526551523748261746329500655416570062258848935653565863355451529114949996812986247741258695170790746783849502760095291364477020935986428566982364607075447506327060012428466971085926423093428121581333712957226923891336858509465311176071453294076410675284309897296310833647017012833595535711403890561934769936945036956674663320043862338402967165506287790412412662246721054731673327567434821041443598360964554339014837075343443137037421533159949033622247323039030541835998218216428054650354521956446663525486192314820183395426265375332318658403389177061335383492208449855510666557271634906986463689078980121558859073972237899395543737831123071559344382459905005202659869954320788263262258706963190119063973621899741798816608938544273312864300692196766820171669221321770302628185648385934107223102752426836977981267219599555875338443368170343660300182841896029606285069979685794082630695630194353011608408830913622596094340842821454435341279604035961133439644530664953607434913972237710768584277671929637488366739016309193547854435226700366594734948747548843649073065857733143613837351729346653531253635839275043878653628387793234264089510932936395902793182179494484025000511134390312299906630385374520630722599860194146881137961798895640867489645435630621640748589046804150486574597317708669615498011966470226732249800531330321844980035800289595700364692902786420941178034109821856386607468817602256820180267059432571195875047744415185187512473373326366212293022367851554688365872797785897368943232615173859266973535291568242246790569153207293128300901787923752181047937412893401792779382636779850985821765748119140253885685117817293601119613264767423953150596326537289273394009749097059378602052531811701321995504561192347313531596144834240592489230957551573024168058826059003164750609320724035886268307592445526908890524693556396689266648139656584050907961629171831408284973506857110839611865558318645222767913422812991371932938768644116953377633925949597877680460481958551385767263367492582743916327326672542021619549313865692420187255204044023883597709778931987478982849163353735350717456684549286585948892511657531505786949902781235721724039766311018538862318620082015471744481790163937832881948345572079635284865652793301212547850127869859345768814646667183245210197210787331761589554895887906023796816985238401107483540206142950456687322278933692745468836670208829513063819746331086458775158411715601419799508691386040499340188635856181683370028389440934694743858560070500365895904654890261867016612986524601922493335314879887764784512160413088957086157185823640763993098302114292837823859465816059469138388123582677477965278338478199277910062086583955440787354576116090297144685682559170434237277046869730803734821863626768743607953441195642541880490672363425626255433404981418402993562666275304509129253972795927269544960801307802663586556823378036140178932204787136844857612480707423511914490580225811395528619039479022600196217222676704907794877571398431943603647414323519017568728086873129543448055897084467314424498767311026555470409598367251528468129390402757190936081968007963767637054127679903150723488900161350579668734418432197628567954767563783451850865082521125429138585929983637174224653086083551180958854297603391668095396341868995289980759875815032840691884143271508807556767295566459577293576363400153084261617597730820766533162359798720805243290784576105487582414523264374452885624696251655530417640632613470896046218877104404060309958160205631019363745883619390304094743396955385792035127336215606602239883863641434355088124739489129180656688995140140179672523556230515626127264829957115163974181695577518520485712011485823813924206445943442634861160157583839468222009038349141273374038896302783076351548521734239855112245472716103952627895865814783925594277302500189605001278344194240070132269233487879012494010681654209439584260161764884682513144929500681552346821916182771748840251720829126771791619380602917228153266757780129147360545044301779995342513471275734202974173425375018356154935868796516822450266747048957392610069447072804619210148440928010646541732859029583494706548463960450165039643727670352184705045355777827654958544395148571102360879226009612153009051776206069444018174534733153502131791875232930251014947456708258887892603318731701281049450601577372937342631008392777332681825999903480250757645296188435517709175364288236519772040650325408877853793004555728488817330906714549770821032179801979768428595577099672148282862876517721748838782268060869507311367777985300257618052250560563081852841466501732697758247015828032107926006048051855145587424822809613970832274933262336948624116173898549463753369620975441360447211534915930448761716657340745941822213040549958651256120748870901270027802268224776665156979486375186947040495358879470731988576421903486657605274651755970549965903572469090603770329808220353482608800738430620285853553357115899816275980949170786477861059779593602153567481825352381161762534961172612431670559109876859135909362716097008847810778325463871569048781897414230836007516370054416327412453949136604158686227761370034238031227343591814959098208513522224525754773346913002933728935260891549136235122124142022068631201097891009841191886302103370504867976598121534883978087454893503009458453225264730889132571922882298801681806502172552808068980547558172690372990519748262555450181876807923304025904029544290820852250775323325807472613464600785501701444155797780915411382061285383328495422008386200005109332460769325706746500021148210218701926259089848108111863805595936503317237009468556281232589091351259329412003035520852556934648621256193505617745815865627701609519326958279062894147528355457382205965331616476116980046120828955804597572983982659125989810051699064468075559339058116858049150663088396494629186981241651673594552523317439629379599952749520853337155857468213362615945058151587092668100831109854054904956571764304061870484876829864920766957524732341507727252338576032367475711436640497632444931218845410552866271608303425403307662818986394150501714055682034420562595308821880808532303482354604950810297562480079288896736301888410264545821701520900454175572901875824193213097644494063605524457080656280543384270523377116258618271386477978554652201442498287994595877854900755038581654478322019026009478803530590725840855982560632532740393572126566625383346083610087846825114597951238024204914110177293807310465570867169179617089251011672498309255423886088246197347647516134115420343579792413910930782221186447094456697991094251764652519345083782263151612618478029716098374827854556110471569039867362382901316796411714531327712716643117265648664505098298140204485150692045252550327972823688885325520886538834025053912486012822489312647719042982358760978481912414900410877598601462936613343792823461914644384531825791015825100420454152855203734403653716197480601015667096451757492524160013297987558582492772322498499294263794686007467088131638946836473728133966657222791093290222268197602567258379710271733215797629404106648668603519499335738378328453575625332020714371712938558789238804282507113938221463027510105422860094991647733094587076076809712034300202102119905176963030540074381139220715699250528251791848026523156016352662687819614790333238374878558533762431055306870763909709012890599584697258091701736442755470572703123041074929063493192500998639984833706496915652726184607645272584817716740020239070745243266429819057415015617775457781772174573349220300640682783776301923031487360347549732745104455089030313514661933901203486100396113861285183411484070617119158011317245710238684352356287359510065322597557288375661201425723716207479005162069916440928257510567574174187036346852639634418814877779135866090585600762990915320475838554264426088739660616181205183763187159555612532841018704083227626212999644956611124038245843949200884998330134964388225463150010208590859994243046661499913158234411185474284181850919743399051300492982174162359263993587503532432292592728468680801465737994875480570941438115222836648535805450351331847493608595855808420481320230978234613505050363728646139551452462308202317097027867148967204047268914750531986488573573627216661089783779073202831999328428998213025400872579634428221325890775744411001723724109423288172252487540440745877124843034316408793603616821250847554161867779285678632299980098929963542401358048279961532800603807946379560611490862133337347934684674500608149893005281318320452006873743522704663159078633089025054880782657537638190742145609081901188448633421662901211731053332859979120473983578771985788860206464719800243888848879659162669264143291253402115651620414199686242100556351307709201752610350471313309856783033912625952841061453335186956726627411714583298667781179928594742431222530356068491041982765031889404614244324629568475799454666851325877445231998918075182596818265677641510858078190199356825406542973759679824349679809810616349398639760696697830564843463271590058626283314006606077524745954909025620344291317206071784726925153593137973603646044146652938077280115067345835986315275134604121219892468845470107440199805112238823406098619314368009055807927052377218992642832997664175084676030184023417955435489424704375989907518904789970073606040453592281209905708869634130257891669748154074590239583468580219472240857391861806935974619055478078164476977486556127089276073821220409493094730575868649913456015405730529902178555372656382004181543910528190162814647241161711176664774744347312945330792810902783048076580104926443724556687963552636613881341632597271385028746332793654422584068192481754098948636491701642157704749071167143643358341838318148639100229255482338034604406005317083490840287791009907043622293027538731033350055936414060734667720305908203188275436623704171687235856353038359824788252712606076274902048162710354692139561671119530310833062278993335061373228136796766444936201545782897783116638880962824061714240722815011325216247323395318296940975990548834726475036688796280109746726982096239714292558401032016289573754348348874739395427343957323209401574209147311066263454019222433306463674250581317018994654790284024805273021895934852421833476410003463694451146878230720175501948654095008888493305211486723533852176609043163717122663001356301656544282427731262281924613289865773452192721597439189233624051525507433519815808831915406946796234428479283432441035661749074367776498833615319774746938723761559750746924659864078523001456912056116764235940655018244222168957435416439309634581667601264529737682821076282339292467859712521705643397853663798803727183614924957604102186242545282048760606334056097769461604643374691872745575245264121465850398822678424162639255159432871425306348675153547668589609074152805578619925234083816280638155723010384802647754569433550182739530505794520268404656965675710798464712403727665205130499738617758209060565221875801885111640113951981013919435248088807688950733218412749892749297160727279786420121475738136769841573958551843675697454543379101749622557910054152708740885668368918655167559356636847118529483869363577183454362825327041233151779134493414254555676414868744387873272996198289633280629310319631584018464747166907356687354887736796615501064649440786248368523155202339613803150906023423126452447961583104012213237139798846384108131971901596760801048996067335806293532595823190806966301219163634135399295066988424140649903848146116479066022101019197370405082363927769811471287563177259042656182696256167100704382585319932396550607996912718128605134773111781651234747330977953337547819539889299020095248407755464317601068736261181460660369747309960794399061334527389485337813237813688477036644846382622307248659618233190379017544403857099769493509815249968779717766482321769269972209619996053846592816686949298981952761974011015925454894007091084466716184783969240115278562445163409586179862370414292614316171146250817903037567717588975289837804059441051618934371819047829853987632021436221845083456568146540716271814484503773411711683838513269773487529172839520040515802190595178519173027944594214714194564359318150581338504608204455080019587853278066755872562597371075062841198173528972475680649990396747198132010053989640444019214715450940625233165006561121922079024795762654777706000454110755407978419120468741346894817365950257144733012437344055051663487116809003498805792123616683121927516246396796036411190542806107506454721433533670402343562006861897538441217456695381774257468446096736159105242560797599410440324535134110078504474592918839719924707591984019886187461715823823534611364746734700172366104576885067290791554923135008664773384732293464843222563589627496837347086803075300445607800990581653290476521863213987716041772682892694989809366609915230963612064985212080410988861086699631213275281495081195757458453766824479501736494486295671884868286036238844690497022645330723456966519626333740874267718706820509847009837311595094694451620349592762433718639802500506598674337261698368901228128874851967708894678423774538128314765955914755483799839272730814281533436649273571134180657990227417463859459890100113439629212311211795590663632740971681900437957000110219340733262545830736088860805712359309826611659665399508493305925366203502279991711144303221856327700698574960591221225001087188819744406005466340596694738357861610156378817117332579056170198866536244710956009549550694596098997697694996102739489397873981575767278017714862564127139878099456488020258002180960007789438390042940964738732843019170766311774488379505606648114750245561171244202075768310395612996945637430621185670007377997986601575408545645615315383779072304377950592933050123810868043900451437981437799522141969972962537946153448804960530950144369111235234673537327157876638714001113944085340562234639393746080731554771503783801237577527091979092253261669469865683415436421199567424348594603652131245447096253318866826686141485418824864808693962136636118514033061577287934493177318731381121514333073153291954008225355016582906721451776524637739256646389322785125132586285320031206754662938999580285333724908842270470508092728591643105256205780975514057751876666864258045625575273637030927457313083382563664884028070283149036751134828230920082956709285376296942310770069142168083283710639448582389290238679545345007280614795830410457940314565944366346620651891963299561266510485075733025879377049365402127389560370370501177621313222259718284090629395675184484026067179505777953575968733007401869190822447481989572246224797530957247791160570506191896909141899157064398519704946991609298253839433947089258034984191569878704494143611301582957251596185555605619772392671786420194461229247129233913888163675792650530722486954477238445745288364238221976848588432823748419913189615655218591399691345040799248448521967538453347040977168867638927613374878504022212770320156177927057397944362668198331072359896795043983639229214577209589334135615282647781018381816229655653322890719488140676719706689249636145687571785154510406190625337960424909803959946145859084120861999739378860446527863874815692783799483734552843571985594158801589239379842510990692505028978728113350923461831253425722237832268177806133277607448609297540109303705409363133196565394062562705616711984516563729990787395257071259639271017035958727351950601480237146439132772994229791710915750289820492795304922036657499706252609194000194268579003197951170345184234053996673693452475346551730242017041519599460238548125227794724948311250293921411243921842528613241803037031476289376845286081783350857191360520558379988580786384069064018628929732038607623442671532092649818655112039153298756632361395560452532171059938626238982659741566472261154078993283305180483014342163671482040738252656834253523840140334103168425987038071414201791342979470513745686737804244498086744298856422010680193252855089009365577966456999248971112766370769986650290104694509765368354782868585301689027304723104241727335406963266721813118601674680445357187226866702139212380609865864422793504262293211632459312830279852346448233449472989294630602760335483540776851198425061885026987630960557195176801656636269261264682585987757743665383537273714739581423758686682457567289445694747892067903740239188088493291850069455367106240196687488621594562372942437586589564871156685248426370738701465505589738083649602873912107220528278376188453061417251986935165741125033937771076326226868095806725315137637899516030311528043231534702245798527422621659028099169231679461161851095959181103970415110848170718507301094216023486422994088292627764810833422596696813188585830356063828617212697372261334166290057885572544409324719937155458495953848125572308119313027991145054399030853372943487756787435907673634251728168962924712673757191481431961512308365760655653345541775834999406711617940686681996128303329497104897816218324730715632710442212799198092195281903398298170784918008278349996240684762948401732739661198169114627542071665608679209918099190347351649349979034000134054294115656856778668010416660736303573293519843101005194680126705735406042366972477625489474998439334434583311536330320594790765915185216770380383803821531428690419298498522894946485552287027348000026649304221677128741023248549685883506726129656281872977774300753541198926977669335579088663726447480086873500299849434242987297339669060292365128336246311927854983631363352291469762775346577162179137062788348912554922984840467782854989674923462141666389948712087129260751521467778721336635773700327113424877352355345832071005240719681921031255327170635801561079001653614991363530538353907518909626424495263729685758381169442342740479317293367210523484269292969422841666007073584928755814991957755992061093293405276165518162178064011392002332883646370281557181858673863018058418513964312836781572292146638973151696530660084359662517786166595545410505032997057977139557801279997432475272407848036792654116672317539421892806154587264058133426223131169041796028098572483312357818715843710626254440905588116948431917373150633114540515433478248537015106048127506177599764846531773483938655266899924414064220105635971566830982312353596326340441732183190376709248472398881311776090915547113345445397186346922075745662619077067027043405173261745001742402918614130700580364888938701794932135829569574232280321754522834580384913636336284896229524416137527841292649186252884256164710899604168390728967234125235048142335662836553211006944692949607200719639406192655950600796487948905915899705756127843369926066332336123346749065118886760489663999306444302294740510443838789136550619871349907834673165950626697407002538389308553078089125324177769394252369416986620612991904421888970912294107392471169504590642839959674180230552900500422789060476773718555278118140688766731436492183956417282116725294120946163352605775166030789550835612925839113497117813570049066930198664774157220719418627660184435066576810066107637072392742699467903222014130756334892308168101753119464235503882527427787149935986029925063339415431462683767695966715082887323750104077984430129521389535400584688907061324550136434908944731725151080024664586786854949693868046074077684767185381417938532038931768015104102232459025825089166003814830566172119839766073040274123227422455671683421190584145017923561003198703446551987546301853246777770632695020404123968810940725707098382267549553081775203681402837732586448356527135594170481369628052159044609236594205854400172054243989725115803106364023013148496592571032096467241648946563358820012600187619663999487627436430165737562913636424438260662115886017888119887706629681968084013052439926099761289837024325723406335996127416018846235481665449997936626666508904160593735195374867745184170218540216705208871928326685118640293202612938245509928240449877182098224823382592086517886664274632977504706990296849967000166641856999919212053979743493049453618615780109579968583866267173568588895374694436655986934978902945175554618165293650157085652165727437515517214103258032866336941428806688379821593367021361244444632500096910624396487103353884046827716491451334763441166052199073725493012647907119816525308968453903529108121509059621798268153412223676519975250417929375730061319243176476811932549748202372279161562315352980182769946963351663847143308523403348817155531556244038615584293515708989676143913415328484682004960969185349290229403680443755197024588132343360398459688736703127821420641487115969669557358211482878077244095889208240946329238080636115540870880847728124887570002060145284566777981514179758116509824700437992486231355094739707435590005008415452535795601196165428835560666261813378981008974408086999061058584447949319900974433889175123036833666905732637036053719890495880191933087362219488706839559684416092065656149350081648599321925047459737190738507909106790775270190053023375808338765302113905020957637326291471699318395881377424305033820664074645248428319192781129310731676150786644691946966766808558770521662396998757046586067521821677788298863102310160293770250224389329403124420845054418945471076113174919364487788018352409066176297620168268582314204599468588558409227235167794041281962687455769057008501601958740942445164449372347707831873989209481794200427106575993894233768085799384114832802540528855291466039336235428680957882082544838005925638752875466418019507257173695307750613758443958837722535420174217214499873874673913063204843355063605850246338391785916073596057731212026038813791433466845287092196995942714152436786344481651813433175306989770652781992838882777865191791511381955619601147559553622083698385590275903217384140324159132779808715622167269446695583271609849611140557716881713853869769989390262181611134451491264814608304661862547625342056024603744004869147295424569676038579041924871184467921138607462710814934623133112379871957601281457204103808996535736088607491758506791935672378514642630640376168419624678692111701049735726366871632219410238942571451053428584875601375515770379227577469028891190882749133753108133477447748593590777781867848797846098799557939161197427721513361479732212180388849713418662743664573092642092296650327672423320068637190134210370842722564650900456618748455891744564142316975639181768947741306586446229876568707365101437256511552809265523226373808298011627849264985979046141825592554321171504076927296038497333045859642178220696393727427046463259696275442496204478370031670338158620372727976637280215931445913536288858707845761664630694053982985150316335557629866978385320503429682863887358903845984477014843756776415869928057619538124600460676727530550441878859432887608026069632771491107100243105984424916397688011482973142878115934074887229069412761645216466389450470466371630276721092890761246583318980374113103271217239826710279494840080038041106493809444789296691685005846009427823532382719956558272402717936646920985551470145633203194646728792231148704831600545241272627386845962965889827852997129295539725697782473622879445189952388798270667419143730236132751465706573434498439736180301634516148593695029931198289725177707494253965611752623730350575194610714326409560694734601771260701108166924191558283876836710980983181305027010907017511886120237823230633198384897870483891227281468331349782368199158569247544086891185518078871781540195896099658637021065455522781165741141224119531285218245007516228612943574516948259511685808893298352400977950414579250233488995344191177324450900369466479842474101182307548086249816460856784617935716494332303980060589020829754424237195195184858781509132537701885463637703072075943295628643381590609060778916983461037171851519212289300270877103418133511207192707923962760474406871636778138561497003298579757219696441940743607379008205457380490840382332707882551971416146981969786051247553483396238866901079812995104554261396424455776950718182598848828059534100503558603657360562871598376800619348827996263915920078937172060270154769141349626175998110000858645059060093691392661646465180846722029777721149087405719254103491130281129716318878574698920060883124269292779560808295683335906971166239936474261277042975476027116965544834883067233812029115808332449644040274757890149995379793861021953533675086612455727557223889805396803121944714538496771923338666797075411639148718973888869838033386322007995366458839706121790721414454265014666147217310488569388986593781708767472296582421397301451067524649202658857831266130239504745826795568758268339958671280787599524612419520463802531744429246799967048153663474970818974839651208696104081101933896435859146120501174518047835396801238258039999840645247810377242416330816486945842616550783811818229040356819574122327892003734921659043486008838067086569879170770713861431599356383820852010044957990793497523391179459277655857368467573827690141448010090006760403983166681851549778799045863900154594710257128257379829000973050475111003547798796545471116517091587511871217684457380881770873715550625955152318339874824921130074912371538774551255679313795515848259551872821033415722060576362998264709885780241267727743312449101504462933630192092631419060536812560844451916083186692919005756204459406918347321397333186402273191083502186811342157292280055672101384161526859051685446317787233976816203237917417537762177923230712783125383007204417649098724758556256361849219691092797850958957675389705094693480531203726895565244981017916543816711917941667790300403627839241815692324434289956566630073526631245985761522388651966586559323187857185184077109849923802876587490494426776841456226337052864110913358192159725777389483091083401682185545153132887871337768515130638242202855950072548506684603316020487287769602916574315026982035441676538541446151994322039195359771125555185592994197646947911555927077040641512649348102328883377722674482012997095288758261227201725792196557846340786243081798579071802666115481616009438443456746848028084415294483511792281548801044229478296891652367883260140590166210800350140569277951447055667714932690162360310793329961556287328813653340471964019935106699196033638474417475180125029244309929829966918512697584632167142914781644374871659646915748909456662940010446386494368159478082861721619343570053334768648789748408399096325788443592526714728453225631341198543686645128987194694254832648680462983656186573278438525478026233074072199426189919024805184673569373325867944638199807646891575718748149895017788905587555655926916878936074241419064900711519608729623398978376845430134063561422452167290975749868049999734711249130488108935758709889223144475546902830844706179587041998723977025473453481202514637162534823032188182088748853401311902168953024662153091687026397236130451511759327256539120763631158385906722660781009617860297707456561425709783113458003828087128313915796415783175162543877333793733783082244423471642520438526998364674225545937046148212067972128616999362989346819281389655292338697595692005315705345403784643963170598226217017881361226857466015679724841037311012725622426370826157361228155657891426021873871559397006263796388683138286826653267975969633732246809590478560693556268778002623789543040990697551583749305892785316648507857328198567734913545984392533882317825753667317404816980357229925185320705295071730060947565659905614595849183750671458549878162081954284681871489617414050650904534083790096388491355592799353149553873049113041522001760008893925319581327880081528693657353610435562914270143513160736232232372183517875308954943631866127380186725200792911336451729153246757180267280166092721269010750662520304933762499520994945753893707885606253324084143683558059073513966286051098532098690761045431711044612602480957611581153039772602291425975772287034981633093863300966590219071208056657431974811768292724058084568655281679106928546302202181403867163342243166067417418735346647753942892252472206973153387947730449220670800688988071349156601864935003357982255933860495070536124820205071341936589457035998483013774579163724776822576005313979708186581021865028784462309475787193556845601952754577091470574440266101655155264389729548885412010016318340328310384233614299551706213266067318553782853609379331438073946503984113103122823998393739748105517266928350818843243711515434058597315943962060253443273787298434593785894842866223009562244203818547613073933125912589625103718063661837850536932227517463465261358521533357052675627535446348376874991984444630693937099542964057819706505608479858134460878500146497161225131627573171950089552219354214955381250980305458959114081984388576972167513803461343991414205155039974712011137361754289327919197958363483098907461040357232071068300999786307933384299935080834237975244461381809686513776698982155841116604312030391232192850818260343600466663424407398339832319151658115775503968225629300289793034273395334251016852194901955925875991173490357465869576359542157659584483818394844799528158266150763642837652963876881699384680726116404263464018679935525610806669407364397392316110850848236848547616070672742954029923346192129099200434579722699415804438378367138867470160770112079820889624340177938283271314421981535931762904850976592525349272847607768530045964805048074991661731426457282446117020693767226152987858859533649276839120308064954250719101891459874973267287853896343813559895570057110899181655669223442615896377139635401756990853450469296243631158393719712193158898684132340510160933632146905960382985076235988629682893740008213127239285426662993960107087296148787570722462896197392627424614678640873781553238259634293808036213081469959428426754541061106707796630375510606940029674490363075205739199152794874688369416685033973507526574258864684219455212753159491370104311499280636689395067374508384432938138734892208126032080366934724954110675079400123044921395871059165540413276300607444016881349366838565251635317956423748267898364703489365403545167679130558596594129270206160010531467695988333274855364934507565119845139427016161656154385646830663519281734219585790170797820849906062395365905826228329460423656830262874921668670462836570440868720522604036636819748512993023737735753833557288626783032907284097429743237265322734810306008193380156091554683195577437162140279275844319768133961925544509009022369331097160679513614176953436716202102481723204642348857195820207669600140648018511574432963093189507461429166023807809231007466518960354772606406486765826459061474549580955671225626817554347476323695230042561583947693416668129487426358695000053443304745565249096210814266664052095837054561398738170276153483877299635226569186271492384634147662619375641296120138746393326522908022029837037486340759871661348907382119139623694332129043378956093984797477271683439736414810154809703045831891598617995594926815700370242533921061480156275392885086858978344607656719907139121836781690144210268249450289874215731868557067789449129136610325111800728331418906987117526370071336994882666452700947165699365659208380183622448158388870365558091145828678801591710535131679612678881062146224105765841935616073826790404175414747427010781006281008696163553139364700522350933217383603226584520204058712660435114658525094869759747987231714013948883791811747670177408560190784886927891145531260528776076639181999138255640732974036567101568822283059230390691101382220697251924140852841292928929312534438524757917627420083635164760842746531089335242942290631520606464131772215219727522845968438724176527859823593226166362362899430747250831838991083383945595949138692011617794045485501316888355558508252606610889103275763920160207775105698057738999944532979027087478374204002044521315500242837923143748284088251438295570151932869716566922609981293045771639740559478686473380509390012293151759253486494707615729139553450341582447196262072072321870855784900463674003809279332254047460925337427024599141006396156483675500991621262242099105653364697440930950381349730374877310225534990600692925323309633543538591049225709990743500695830320221921465973628435035830380915170644423617737789846088198333303167492839084320423886878424330983951194527528747449940593047532091873379100584239764713650449487498040109141400514934197817951647169040158929195094706829496643777728912670220532642155345684172931309407353569933547891138782570496744849292784277881704200436061892431061271632881459568415269953880429187995746194122248136518727118828154490203780649560126425222852896254727468631325861111400803429248640157710799401071038074015836926010996018911829575215868917835504878345568185871737443456266114813278373642679376549338682425649052678060410906012444473167100287212689195804851087741302181660564677744246771992915167068817219464575348129902328789662783209192966663907353186712508882024408656804570111234831109533408426516123231062297665910276703776876981252969919069200689970618149528545996941135894772898108112918612749123393472503952236130803505349031337296745687760881476291920704995274675995104052663937290010635014427367017415053182393499292866748149996297214106968302606573073529073961394130457486810401706780097262521105643082034018087961528813575751795714749127974999327718676759595822200830711769610179505788370828643481025469715720528573438561889914209442008841984208691102130774489334049616560490169866271663906836694156876828081918678417959537986657600203411198645631074227012532866600016936786111012339091227230399944808353206218119436024733210422731574753978261770052853218524657557453478014898008594358139740173626664350867890140477654492217655826069609793808212381958547619119818364924567330098707208468656838349603408858290274796436060344628435174457219038305337977981732145996481104335422162256695887271024720563825094315134724632299110832803266044623914877907996340469101002796390733151458123771430298028335955597461887798891175955727482724951640785573010989812264100727717443173220331054187402604815077875255518970190872633877391207231846584437446583446664056625602595999402087108647303916295705307358248659511783484223813240912084573887823184043475222924403310623347383108576599214516639333172309953855876179953176149718561478081078893979782245065590764118686354281435866709712499716614385105113577942231198284294766694590743751903368425472779222458940663008785074629718089671841814926529390104365714164368642474204967765515852317912455893992090590015264662238393643158559407235220848777858651040996197984051521689306538028040332414976376472870266524222669991611960821310242054300268705637819129528022284322401995557812563170691895423326323562387524465363404820825309064988044059297216238413909296132770137926262751828975044493971218014955575331388187984387469959466408630742776643437197804263282328751059079840971196137620610744888224470943167686018084272772123141546188404810483383578676728620409353471160492177594907697561120030414136858163077474450044921027085750726427119479916409668222971709145455639220998753288283662373303410190945783810254582497658632869214786077677998391024584178127276806295969890963656333276959593621884990819999347378930225995307214584986295250949749835327458487186362579892531097208862387525348433285427287884176337203585819610081088493659617453105981619331171116187738169166771849998141801629653565401460015056052426164406740401545757037116165656094742129546595980934278122358516886103483549701117862442181466392540446790669613403397751104799359309341123837807424590572492009698880941462649606611217610384176972461093793097233155868314371080787192579767046014826412960591631572157019002748856979508169847166782372601426768290948209390845817846453702847898165675264291035384627314408353665182463497666413154998974668737328626867113952102803962371443181619908300853365269879308776355680376534422975711936739703416437690032719783121345803628138871283129210584792194030652756346886457819330652869689371463514685980310389740561997859367808519267483355303415397376322155852963000155248412603623241577925649736271235533902901213196943910026875747039007068118808785673854012346785486556109612094037985467314306945889544561185161756328859979920643423393473409927784845508715092410869060005561503126116536969465329202214505273917056913709543221549292658972750979711996651159930260392910859381851555407351021858804094263764851487699397182768248666410055995306301916131096723485859035408508528231085936719669458815683309787794268046547218183330405910694217637350294246322020503932215402612419694605535984541382380961504083303671731694019754952684705732638117059549763883945730346575364573873527917891035721063260028717422882504698474187202352816425905381780790151717413403419911213469297029873511548281545735600095880659327977503420858382440355256184017941849892406018282245913259302471472839316255534744298824695143874700554175381055077535279730406215270165462207081951132074511690536497417880631508504244055444390064465877810793745822591009806756085895266645409119400537197366962524748266090314859938005151112303451775836018863611523169886012499867310874527454310410514208709190491488836157879756067590722766395653261066171411798470038246338659115814635532557165289633952352389425258052255712795670402155209886015351709047168103135429721908648251033905990729979385205701097888095772261718065061847923605768604244316340448509746106315734302244364157467767418737274801667121254002761316904911068445276368625394061771480008013646700589552523165850133452187062234091944754294287558270429984579158597821008872761597516963468799633389628957763845527598003082024963428013737404670115635955976938072882274758999272992938367855781392531844088244202306274379380916976555150563092423714447078723548718969224303793207423651020428139788846497559652548849225526171298937653847176166495481514419189374330842374479722809482637189387796094211883972724914994769485515384047693849044280518520946047943929747593194650994937812832026884429418158042190873641427193537741827586286972891639266224087224335905123368973810874918793299329972678263511502266012864946119182164991783878039160934426159288483647260523324460728590209435851466907608276674576357798811463043275347566538026856441781996412405816344757430638118906650874215291835811113351880074937436864083922406885560642969420348110157287877447495310295907280954025853366912742364733024928978427808787068187064255675886305975240301739211585347032378473870635569123576934437105765384776520722687756444979116635389810973201800563526055039972517084606110925603635725478523366797775807784161990218254307963652423890700258092860433655056875363663685680914452691624052550517906330734351714820314182023595942009324954662420344769013820613064963528421451576362635084820165350207402571029493579219310119601353994375004522609699226797741797589098290784973992652617135392099396704129539050728204937363806159088914323952121087400060660505343022373308976761418066754876927134006297007836148099280978143036306909196210464765832504616283052602805348749140211310465051499742252739958175004768393009183779295766651794768917330859372851705841721615657193896394653674128631554358387953385144484948232912424017853351086017988653822840428902777107691871338464395722030987308953706713022305046347809602752554577877266355942834389683662053449794591904753641100356074953842883111876142241765427920551604676602768839478779876980516482834142676291233995331692064885688896780898610634404325847223891377102041638288240515387608284532751380708653492886120406781972363908813637589053470684879897681001268771351599943390568802923259033554813505696336088001936106491006609604598858311957573720793019993360376932503962665800691241500854573434842250541174114599648685157337504735758098890884720088369625376879840425648253426187562847994629878659404311853800325735164027745286987580015263515086560804116199226832420173864959929573990545066660795693144080354872270395254242268513754317017830783365135331431576567706461030990650917045597096411930529324408687752790544242770395524943955863643462940950254468510227011787309561212428088794642714483377883810270167557263334797926916859682364884039766916553477831450817375971367857027307651954741460508212816327427028931662295195626507216444357153083740268624614859144281335649436247635042926192177864171661339715534072445064341286988385137599370463046634328479091191769308241553600956253024172983086659953517814837059401680269688750436187437925756037355899031538682889823339644639735967480867514757129652607390466063430909271318123248571886649320984964701929359653683481094710018853160567751342471485898396270306229033013034792068870316074016871871019091046996836995033204086141934037988553315373696659135118570120705746780493342146228177900924667781161367673322632474073384572846808333995803370289224775728270224977141462974110866251365742557435742570167996426969770034659945881591950058072589415891228289989938361799973223180985471683432713350205143348948859718698626814400010416481408320872788364858512127393825097704076405252182195621137600774587666407852746659021336776218131909309057269086092471355321654083500696967673843696894458535719390052405245208983413195608900033320874255888265137478235433275845598246514793208448739666642332493035124733823225869748836823365401404685298359565788390170580573109351870595849664022830980480278537984966916112600048814904974943544766094932516451336877923799932579308054812013566016374514647881923094516313749293507732903355711077313758099495169693055102425529515335434735374378735532925550863823702209616876374514520278710031367777306439009280863836070012222430198865116226505357307360892304982898155305342844476186638736041475500716541074006175688709762065664729338721436226543479245772941336002698374064565950592263365179809983164412204257150017305611560039138022415946216114669736354149664657552213517288186629027216693305162457159535219817759262460303556140561369318546146047665754408662744738149726029510974604517216662365759982055513157128800190570922417139898574762233042028172800293208603392385650001604715181324967232865757100244010447804467421225019222532272626041575129812244825336784288332814540034084169338820499602317704101869271895515012205392743033090396436077648402640235154660907754277275840088153273355958054404500794372619733867717324338240249923213490352706650190098621073543705224452339521339229894942795292752419038645767225119513351381833353661484943428989515922133147314500926452601126922318108281017711959268054133312958909082502061469642500089830445603488329606510676322624278713368402896539218414284747451318758938931486883013735040260014410437589583949463764539617131763451071137514331771462880714048533865515604988312435868202882262586546252117111874000933219930389927815989045996672352242732302229738568443059553554075367389565253529118283247243184678211066684272150804221715333591435915071409871722445618102543118091097415435848500372367569008949297744856413737762471023179591958789955417399197315775206262068072179045646943018917620893165684990152173578179096739914705544722996426191695772283026361798530311835298226152780222808000508523070808085424302204701205156942821193708918026321020255729427505988363896300779061839288051807730544227892941780382222622952172162628326409227689517228762790698097293491229263549680834032606365536329829520914841908556504302938574547483871136121575277342609930265699670406579324307563377588459690265010794345452085943633688253346062021954882231228429544278118492229198341148230806061170308685907951694375688686009829699665851479210557444973841580165131686165832065075874320080094862137457264457325001025422059473918258308225031860247841256310189002759134214222533907791296826714478164809841875496491617360976226282781564517244199875672075834657341748437149735109954532569947267863937546261222908188148188292329887683328174623471299426969399509220518532404307260883697753381118110476568676529102815783767393944357788930183311013103107412983167104260677549541432687167899762822287270458977227766847701454388849218333724530116564811271554334212123292840006648590967492482381308538694000896115880436978268418258202838257543678936752408639233197465849396502365957743026802789587225607664272414268899116934048015398035853804606834063676978122980414758011252473739077863765638699274840580844133124604286864432993907903821790678086176703493908367923511416718443069903740850796292080653185267201441314503353674642888602211852547286769635555760013650526574677116221077471120059808864904006088635243104694362888547992891884231389530932401777924122077077634823116021139504820312728364390484031830090899327849252391160147062496517374801229013994204624551310387405211027098489195464493242773100705499202830757802475439748751740244962061773540522711027738618838205998193518198331972203999036604990739676238324404141507238214465683276414315633401011536233760641233015647568144922771043202266611803777220907659225018765403636740137220690854107116202383445670359765126981817136204969152247676128331908450533234203121246486982078894861032820243499138852017908739982731816838173558778623031175124085818720791936992462958112983897726086944234286373816472215649782955249894278083756904933332637971265817914532182312572870094668135633402882718710785769873899259839136891607584716728338149315836403246973385693609103338509681022390947244787199003420376449302832625721371223451166604367327531224123333343633727127717846404305928453039583184625550001973506027632788826495609966750315235653459192370788934258530689248868435046938017196672463273141486822917475837698431228322026110685684313390759097359916433983987368188040767529650991484830712701899301127206494419497375724869503760245387075319694928568832235994407582306969292015036207384107843943445042442996648840363118272887885348334241845889231470963429408381814903934098158525202009897246060363967931455875968490599240342446130396909642104321150964513682197563147209433645864857857919694004103491241567684105671634088068195749944971858563689803684695012487438015291357864802714828010511639740970057365298104944874181869334655254725650136839493230501099014789837566690138575617017512590464761657036692314990183583538096008535085038115988188137355760810088702811727888558706387236961270632026660031980142061554239489661651918902092154407944246677546556127424681584246580660957610208427751444260247385801669029676874940349570101824622236134333171824288411191890937341475700568962038364379304737311432379532960575024256356424460995566731339976218025839590764541255011031117361589351968288605331003153368451227370407601607864676493336207982994312872150386389089578052217429387397543967137665867092694984341012595971427981871194306634917982237279065536404861388452919684832545824519941823735561245489069717895242990297054702174181458596149742798007617360311858961464478817433387294345622618637555458742722214246338499364923538563914312099894891083221933167129298717622220719003980846984597708378334882995898730113412579620459145317950858895705770797145114212676394262348202357129016139933383930431740713189058732764258726602668683189034582153814735148280509960667611169421051025395415724411479038746454237345233571415089822972650207086772180522721916321177483055984152668555876141582706501396871945836187089601171895927016076350276358772483422340007481036677024394939467320284454122803985410859923958662868957125169468632461062628406793476307831287511186268128605923821018712427433360530855565513254592759835269375231283850922454148744839743471429019880577391293483743259963421792397336157878544132995454866161322740036845737945507972241054574818180008979769111501171520221124470875757337373776429583594791726356466123825483318540901824824651596769323576389077935568616014589435966637513606167196638644759662020778714219139645118956761026870457973613903267847389322254054297563042115572561968333903705892695606248857874266098063352309996420921960003416422611380829460022512894439215042353055215369547544362426904355553651581255954682882803646681790594069391446973107467558253876664181920899577502614916307567157989308760047789822437760209293843042546537470994112651402342237858222859265351869899771332661437545835000450038199932964811851553657484234001207685915295641902893248608687933345525638129021189109887511630411725997482605156777558286654159663694796621176507482571662583724022186188710145567524193869300686883723707644317999464053196937799281656837222877319868370839788545615102129041327888178613582543976531982606531782032788011746674475910570184119509630668608729211108447561855164793918134648989281193953157997051307163011583809501945146742241796399067428439784763299683606700046412835211540120850533280257184685615900159438408353511410049109667094481182001696329337681112330922194698934564892856468795158164833127764998912723403475431821220157158890388337877292448573412841755901793422594778769528785771841749994964501901102862560945918711862765031202174096048558024558428376800975970213192525273154827014985675526019393451382147719995229916697460164765133562812815376145975257522983083094794136699635261578009137232492187553795268017175120373077231991352465111360543724356595185809067321408089229504647965954629838181862388890720255864601118224747824783910471672613502753895355368374334158826521031985690281790224462413363116861282121724611080375199923772802314496485007843626667821471429098415806499713231016798859795890830448633158471638794267382042377995173602989523375502493867347950110567869944488882806458673006191878623077541464226783488868075171754470808618926182014920445904673477187945114779780806274148911865129100873064543363644144487570454498336581969985426740640652380901409329730790386109398293581955548601681566425873252117404366530825859552208655667354525641433152741712614671197657970604530376801797883944000417796600680928913638262043649200022482339284400258225065419338544438180912253000059228341116800026897101309104561819215925293177203578128869123215314606530246610561607239268031348269458407839798769646538988820587875101262486919857043902169077981606026568994357012293404464083747060133558792391988539224077903124807878151368793599627709264835647797366318494899055704071856963418955242998794015402033565479732406834756673355740413529091191740610213392300233363298140711147428287177139226714018698930524620197118812822607374105563514914851889947581433708386043342896898051116076764949988016503358096741547080959790452365181838791824969509857107502971602609801416209568391534429039718320820970865354537917897075505675636877336505570319628356144623900728770925680705647807818788297985574793899918391569261268670915067894343336870967764683220948856387315225714458094308154282672731585154638782232546724422945489736655471307186603756734305920946710379902084040329622726380246912337054694112884694638844761964594733206379151426595926734897818566385997951898901381592110090140118471347545094020057902515890555224243879628683736556652776206070177608971468123059383992301058581065802334109478957967897547487282073986002842956388516995006369966214699540827146843466648686146906519844624595669746546085627009742560702688589698991830003495967836334037693791078286474177570908691727758789918050237585721579899284969963776415547600660293017801989680787037179034382571682853941173250748515380430475921286248593909032511797510706374879636166567426167944633767858702871275781753508176643457582621904923532483395508619225307015170294654408114466105568897151555949974140841878642562373921509053679448036476609844829230100914009361932931056238572254692232147436964008673065416662237136932692995508480216511454703456590935849673356395393777656526191810639261567119641286650309328843742634170248011377626080328851590068638845682161804253820520045676036069094493163628771733666870145341656435958643946356118807693972417611563810161505694735341746878281014471627979919528081783407345898374427618606070021129908480189872055526112372062707684646836753158768936823658396342775260709348258689380573272031088411629800477336998691724043684110351721160128010791875439700649507073236632456925337116428165218745396962971365582920005446119241603610009163712666900927069391996793827683936803730621401658236374586368857349961261418509883860845992512879145593793137600997481081859659200823043758513007294689641402411683546916813146851646304277386722641051714208518810460161258528130668529847668239984444824748662623377708588230935633727146674813034661439247606103336300866743000128295185300344118385925221220760859486056826373605329074118522145496360024939087092517174501286137371210993803804038571938372826850272638724390560823643440790321672190337072892753455810550118916194215427013626212786423779066035380637677911876182279874996461745410089074404223133377262914651002290872689208320291948855568074073610397158629383611108416485039152708991879239438875877468465297829233402504518703858096197383958755132362315605396484095282631829404329053586681326687987871077393888194108203494399323666709783068777489460918361525735855081643997014053094562869749024288160335874311031213238063853996813747788241452777928082855424324910859382352016662089499515245243737991515736843617919751214392184273472861292179777780386214859550699148612522392586513013573043556368077164323580192941885270190161736779819341102455429776647315288631529235446000634600010796015461987000856640049623124960482724921942829953123594877014243006295353350709361322054698246362897639707912860452899724292398087282166376603601888537907232340356737872659399233817323979687521207571519853530423809715620506148011567263462461545706033722194965417793793430465052996983271563703981366587316031219228682468837591022177940138711792249330408986506893716317547166212633691777780941999049532311364530380234611851152037107198108492809129294240645801371152219989048815433280664791947649760336435186113170529729287167734234918349072356909187567077767424785071262876172285779151053701820609740917070062911307378876069609442871955607177105965890762757065462725572971529836914052985562386913401705078772488895230839747631238087185932574292755072046433613779574658063005005346381560413895387845894505284815501098231174796175286453477505640605564743638677242182107869715054380856430598990472631454142602202574330241599922051689237159366237811480075544438710691521484937149047097106938544548809556677247858886915123150591793373835837587309813330675169591259133279989887825058143955651929552218207500828122924418439040934317317336046169781856503239726026817260750353375968420663728758361918145321553360960411633962305132058465427755320251959032028200140046552977928963559000601396457163673429762250588797254924136095690071030130005479837213295836357118690128894568064336891400366084700379133975397314573223281679185767054638326982746215988394852467785864634349993098469016664967382127915645753894555600351647540917543951315570253666400410396853793646806262922054820649898520338546690621336049868689395140857119640552102792862611388121555311827359782121055888637942012746962149513073634860633640876390824041018939584428414284981351283283500113336732882715667606747234487506031376081650120560496393393513255777563010756666605830936999128599361646492857085350936781448849595824230143383146388181629832805544017303962133536625744622348109866660454808274394946727226821969533075702521638785560251129859251931556765149426976181854466540009909646856070126109392130709624606933384501399633996040036866290742269662909375550093759284355412797353665911335448937337659069637715073667111163412918020330345767202855969173870516098433295795082606210242977464076364105740143148645616069814785917951613450911420470536346424358513625050820453049581452655909555085493598754276043615448939548438059165409224098507604223982365359301915220715911786261471336334486102098728982537062009333640896710544346794614670844015860254937691165453408877321799167513043924894063921139419080475185394336523255894833492059686479587623439269093741104482045102346379657472774907212473158971424066572341025787375111157591126878703456547560601922192826676820984820703230114833221319143805369189678067227750090622314591345436536755718871205535111535771359524709875578822245874343698340225778395409305029919233196165868928991173416933591443079461180150388406939677582434093100259333876981147701129360418478792870820502275929649929166580710106328193868481931104439532627659113931954846867307298854889306733854470676424734171095586524528084569626799897527176298610200613939950208384101003566344619400172696677473320026018710595074269001560125650536224342466738208926421967318940426861471384820587281215976439915055470376456414450908968341949837748179445930095503344969169498589558344169752179423170045126395631019142487477183566852877759056087924253325438332785824408049302977776910538884274109281150885948415232161872559058628555839940381365662975773546173350075349343956288715785145964747242801152961562071856337775638646035689294332640987597351320712718965830211569997234144070966689763361426602569474083417432692911904439506162685489017825821189273516465788157235164034798531111388968261858554197649854066436942164757214690952002620254988256878102187427255513656573126870803574763105089161690261607110242979088830229741370255702648587724004507828884257643046657120389795178116035745244838848712877540361811603635157410592852718508219491640759538303939459505207193024070286696498260877408718892266939941255435775101892193411055575888046992350018910850060493164958993233724459478796718047503461146157189970095921622309517543586603363657616162868584106363071982718603959173713139702532325583584811788314632777967622212958484728583520101877492756270005865377054496430616463434583308015808069679707674397188475311182493773611031985680380645524248355819600899712508537570783106028191745522423186409681502390762113213695513844536134607889731622468793387430202391725583475946658747902084079074241805965739280171824403115023246242324866140081336018106455521657869435036545257017792008584765105415159209067535684059278418001713292245604375031573764737717429194447418160610789638175897738896702178011102555714321141373166534600257077209717901966833973054465448316842641129642097298448194338770375237950484523435973513885454419478239709524420330100846564518299687889105850156650684365794598375096811998643058944560862328282761198503711087956788159125899175634197388321070898753477282482841792042850154201219145015962647704205953689086267152033156185846804403874965639432871491741816230136380927957157076944220893433402793627610294133495590019474104074575560310111334761519588793560883674881170487887176186145997351250004149740044202180756911628180093168910852648831921168807823851643399436697887718997215398303808181743787575471639265485215715355581696845729983956065415156091119213833321061353310171042507175510653219654610958245205314411935600087399879570773780564544143102695612503674191904710327237842167901426904134757730634094332009601194720651879202628209625940592591846753940167205089138283287807893323851141056818804781836662311599566735913179307939471398674704568723870808530076242667872505293616154481130480001151332195018446199430356046881966534613265310427815645031694486078122075122959348561164873210505266394368879924556821253716483685912285720063460025815089414061388677621524151005815030242665963115882640850764536415517631089959435590613359261358652280085037054018255538834339851548897489372563029933901347917905850585836193406242032107813695156848325561440352074749438711803206786357601265741216317810261304289376547130179140613817217958415194818630694685919144048106612482740164402635677897384162574622937077485723009709691054383005863608732104421852481661269061082867932616245230720737725088737205348524404577289080165437368509510568751131791463506855698427381713923487612792300765817356987682015407105137763393048208185579481132860326811873274177306346425695949311861413727991238688627022956659972288033567600667621548966911553019818728014474112220657003692802863037629874551727274703395086934024633090622586661460825420656561803182243701701195390107959417479069555889608502252519615300203278102235345776421734126684657236447191314254471901545118014157837611964754809073099679136438973254520277540519135670867022824903040067354043051964557394126774117304178747751334638292693144927666026090016234708627691614649798739808984752814328229240803793701399137191620993474257150942498006807542784240506478464135718377781411241569208198049444569284504546910605755831334649677837079486150137742747358555642717359920824839215637164813531627420212316283947861693107028610822526807136576533314921613986663216912206613419021890992238728898394248907614021875590653816513903041089319128359058053900913372108606496236609989582144135690237059486802485880734826306434836085059516168404156299859484266253970093690360522498962169705284719251119332128601554235894309835459576667972415918211482689319754165163537044154522054617914880391759981220097216235256255090056878192566650720082101676567291665697230055234186320597860106539824003409961413678180534394253898811939261852241349097152914097054209262819979084276184622854521590171039459232927069464270774732469183623217180309112743259134023814087250352331996957938429167613976791557087382959558772096358145409758045981959728708152140288773112738132881065211973852159735138445555691600540278992522350390868040612672576203349020847822790813267302806835365949370122890214641631897238036494254935059623564575947468036032857164135690623691492222797461184900275985720037544831117245134047654874118233781493728783443189160206704030162867411372952868125074321658343150891420163400380139349787111753443876468515917571670276756662122653976805279554487870053737923188401290051095951390442694582794386627054120103771845176494674992456668299957746267602937659182732037884413338269295672039096647738082134351904313890661489873029480135803782249206369285221943158602776076413766658503206536641009224355307294535122835002099547838755900066810813427690012891078641377005324402690705924118538869542345143017786339230966147431449409025834476887153559226978462959888780634959732244355164082062572436591593957424818334582090189502283724508679428024001597722386723737996685569577129259699076613048134532041284849831253841705219674111786355904998736623906106028544425833144606564353420558136955899282364184438588563812892686905468417753972349143038756479867521705236759497777393065266677340061609927630111326977964937925541963960213021816706141943783281182532937899937946910117121461663004645238732665187919722300683181962812535324917457373315756005021706426416709876373486445465039776769790014779689468137467741407090720262990464543978308841061960837192103484798398383034014861198184547235017323945170081088447935703560558183827104909407927217228359807878130313013309545048201106664501745283869460920764611010063892276569030510632533961451421215727064824468417480359037918510173553779236298867209764684664477134312278375552482570115333257668521218388710068252143192982166052782447571501159456055880914687474203848578887771740282353337977230223623159907701075610694801397228657633098759504129967355699744357854181875470980581813626867852124562436020030380606732609231328686964676017042609313628719247220427070391714551149769932590646271988551993551055670593034711107994012732913923901770020510047484548416405091206940210938994092491441647957012374227044076151153326096645502168251953433698057897312507701663690283609616345997882306387394156977045070325317126102637196443070495169809108088321096011128454946935742662310929012938541296427139997056978840106592534206895132160888941425496334807602209818875867071649417344146869698454347056174931447630638294263178136272787036975670437182350312907497789955842727837061903578069375146928020289294055705362518224614288883454893932536022250945947632258287141757622606547166114539955523674257684170465521319228980000302427156524623938787605325897073033046151747826187974907336699390806017847053663689293892771173154702227146883185707543767398203640789435713326470973197063513449048241878818420052090916989751129528747738546092815384690985262035168560840638059647164816435739388218322543226188832743512382061493333533421846854470474800865003928214091528555529663526332355883729468965759464249189652275459331076857649697087118537968501893571439480041750717163852557637749062000227943452630601195722158751705692517258864148304486993676840141981142026459100385538312015175557489061563222115537032647154668093845036843556286345174093071408281199786540291024337186104183886491904401477206868179407940670944229248742216728012330282044425421859187669591187696526514067941444901870417584349662641637480178212432662121447985111525325555811343715261988008668164668223412651519265573795258136581899908226168981818738854708041396447975353419156832791201532594667180195222425985921776084119440205362747640541782634898625986478892650249732627122463494124147251632476090183585261713684122261844164611542573767634843280347243597157034895540409113527939549177651022168654784074495689668800343553524199075900456365409714307937664490456257716384878047735153234503181022730629986103920810147271105194175116612614672631164831028797142534778270613813304326973043329178334779603154961421055102724507370550240684610846100618647157370105006801353263404527675930996008307058349423662728422335155594498096865893165170135183314912577676586138024644887575457340668924627894860626430636865804342520937978865926536224549938670147887818019610134091929926740081218606301307042667137877369918219383420004366830699791080350835206536659478208595289569689080729785290243518623049598447507582035431866542432154694609421081849040307089074123963860326300261424764332761739356371957576964570202703320494929580963194279832064214089678056052575826777386634674504350957118804751136773046814520795707363873989651729018157357807580879401597429847314742070391978597345434506807483429061715101427282933031256469719688603221043216901301894739162197370672623692890468732271316300253314296667257080143198640471440657089187638267376116490677577311254089368212631979216585371349857824283667835338104420416689031434444341641994228301427356546081452343826953238364174863459190936753383515051105390454981591391519953249889451783345520507649567975219588294350646838876568680048730793551670777691989957265859258559005894164776036967697151158107666321793967987781641830181367873650623817965562218956414904054811456267761146697007450028819710194458146553359426553435392216109143224579458285499896322322302282212552051864660683515693489952121489178010788726945161831051857475763085991521671737164811974912029823876980867642085749637643850641854290606642468359481651803782469257352276817842241048785707191808183364797229743960712818091355320909396520001786064979473840594707430049024270749426334269230779352112835834254155238637910110438662284242075638513030195854459699454247078941211400899356595295718859521286080955194992157334754150237439503251212339923234230201131668085189720498844756150874107707670301776321270361687767814502586729323288012259223095736896755843928391056092451093733280585013895872204842579207982421523813430332096306571839837687270406112854787886871604679885707062663600331141419465851586011923991534820569122575327148526518684701751338440181241404172826925132919908788567317681264341409220867625895251810929002834946980387033178456835321972009902017465235432845937864716037979034964441826773335452528592876939457140777384574796293611577439157573353511805171498632901977298225883463303012788056242795343890631004090470699446644358791986326468825898368556345961299077533990067374395402692429189883996614339166659201727619034070943862864239741674103727388363892484002649257938224169896174562337154841679368819997809849774651281071975632606422078520108102364772418126238873187771785884113394051002556445406340129549034865135129724797290388669974373275663477903704594581375260434036801230356457464468505532199198922051300189805824197449895370399738842038658471672654604933172270501121395070138504481178352576374370398864797680331237021964307138568587517420263234108440543343192921575459273371764259520283900124203858268252189862799673649535516667114037978500462934685216389993049493026002471954332841709293938877605413824175324242988770980528782502545946416003133698268884207102601884565919407452236693934515188906051647725136576923938349715931032321379784962102705241346651117568831822280428552427540889056010645585633644932888754807252198057694467562292384129892102355541390597524201324724456795938414775168246029121256930657063921977460180703637718432661888024301489613208049512272650756934470162041700072717386061763251765260694921100053670478972597176530992257445662963717033421540166936470812651416485643031767934467670341180812974983819884842703679064558162357729146701666203541140162086518977220904903738266832065557729642264392631173308639752572153158003642932919024997598716434945448532580455939653072522743197258290719406778967139301094471750584378318552595029920602508583718790729706708786217840808581140663915010082543373015528651267162868137695180317902430873524432065055993333848183940740687118370453208019399615549353143769892070730225022254267430719507614606535992904560515732612697050056141077759380834415900477921716819994904740395565941264279711456627683609579824030151225723280239553013126548912856652424610916824001798812669951520805936075583677861976753896665345447228630942518351493836828882801261373864686947571049812846399502977154405862137899170780603917972117675959726809215138315849766283496839176028880671025137156571659082744220573406178556367789286321600930078883690154562450172301392434373981400613172397868422484162231972725679906874638751243954154737424357447939902152192435767111941903571045378584711093737407724102753480133236156551393170199161558983826135088441673582611255683877468640804708338754145455053227744144071840138064474878257119395451592493984577797436042760364881252112883048113496227651425469819803154674764517655866558700393682244514553298788593517758340438390046853746464009416447721837531775962261237892496831005487263020526046305177604903076990543457534577174352581661275713115305960522716497898216303061728150845402196816322045168275415853288162786161994194843669183768849367785380155189719259100680846074229103432926327196585513830618901010434086503660840372203033659344131481009036861414730275517362559581722239251160643267987456099234212666191890386544705461656667585035148507300119118768118044508966007321509765955578909577411339802119083924671010336631275739013918578752905707792395633677203405991483706261962287983691614735428989809032901551266194518559506416323843570508649928756270308994050519845269696567823137483415868005277802312119016289572596256627173406221645546637604453494574593444647021916977534982528645991523574222113034890038491799438395680265760625653727975861860491251950040686008756116499891680221662758990632725201586581576580158291784745932182225250232379518278095921760031631453967688923678360626621765896176424990973890072903925259281175322190704268346352726319533233603788456000813200893735379672917926158697380692153032594545736238303589821019583766312309584725462095162532458446878899447484108427564178563323950808459525185235408758247950948166290150178971450985621844264205639647805777129392731512174378240601479665739908228078025840968321443248815037053639740848069347788219049147785811791140045193107640879552132491586670600930999266595258771161475296536891029100745264996217595973702358405452654809517483672812257648859561949647237417120553516212199529315869884427894242474612333379642624319042644710997055917854319930753335841733487018781340174026730702072049260085024236597754692926355266225693843057206421172819879101411654727133342690768286587972534859352333593822784523425945872373350979737842940942695047271482459500781815101411437629990819835340591145152746779644720523594506690611589055382560987382632026144420220092222955816970960326667009233361122412422547950415351660649233964037495618715088297072937950574497796390426743771061060137514905051427708526995901911876575506501696755644483539348661158068689873618249460722633365621930618113005591599265453252523957382241580868856903443847358701615164650012773816120729361624249953344463775870250805522078555674636439881648974618609731149818559926488225979908949950453819303695088972147309603794653994185839780880980544752710032146606207934294861681990436429978478005814039264555556726680461843432642480661549988967689835131015584693672951377820469811051180546039634434766447812561823612035716200662370144175757319617790988123069078937238872600048198256964661120885139300270089332982302071559273034614615984884062253835384392513674262473776183930052556109163520462060016731596852814630336162444259178419031360240486189675889166035095716701002546655761249294334541548901897438626721199465812099026948242306782212711844443634097436912161682518634591019532595999990877590330400770423926394953912392096522705579893218217449238793520700509758636614701274785459602169527096851174729085501601243892901580861206682837000141093896508698763884229129843465550933957421888583295185584914602900153377958407941382479151756065765147623964824642769346916656316227246112749860109275683284007804147435544176599890732773521457155007660675137173260896995770511288803271948582243964655283366977075470710084652112778663999274958062835797186595317075499454560187422705109069623102289970618444919219108521396137001456182697676219376292690947951047302013198272150441962419142067290886291052071677397696356735167548930108155693626341109397814585448569778607931496691030528198097996405618046045769963796476959184429782278928107927740179788827055365535766911135361349687431819070138530954750602148126663958563287139208937911266277176995221735329844650179876146256202212627817339980804876394083439109144151877299435200969529038634849710004905427972631778332378984601165701700609632713289494580618435363997930352916385890540563183298485455954521867072362360747537846321805456224156365961174474482503895381018633712520656455714177965817727343240036881335357729936903933815144419966908068175057488578940718409645976801582502700657702298832943391365509519780448374868258869533697820532832578476388308506876874350764470357500323803192078273083284786812764164442106466146060674519804404989957814062130057383203977098889565840750703126791625693166953805659556147636731362051104151663267303325684695550103868104938748466871384857606181129426578062430553592775857110046741518601485488123935276719791833986596130346070215701336471734826222190141141585459624026267294234660382550916174483136394949752030431989803950099453708974015444858206463413140118252684391362640858866141326447704769467256664734215051086630408854031477613853582031047859086860416357007360120883979711701527504040872129259167021225679997044629041848624661780321038327359524041117328806945503412739335266114423775131741455603323211251913440620289859529603691919395321232176342327368919649461770398023210655813213796500745550929213687195421624832687456289441578224038550131904444265589253059515098053256225867505113089389632576081137135492127954873094640647090592632485649315985078565561781109090107031917996696211937675532271713970940347318245275644205502723699591241803760263450135125209583342859320678172558818609588236007339606059010100313462528884227299963217982191819694495132503858037600323629087418370307789242813690313537084913303178490149199715973093486713751440627636051282530387113024137406238299189540926741650294935103192971644002743321788825555272500788795828773899115073359007158606240895614994181288720396157168724471400089458005041906141999798898387358959301965616613894285414355433757515001252984178620480352943636146796104372305330801090358976809121963212367013180829450860010178126872973627467855390281759679785824661124635827224640424323460384397329096519293194614302734101944637909800855824362932067631686481930501780246118176916205393851026967956378919524900381969509966823778844590436470769380776561286317886973723577247999284285479714414945683868725145849012219098883861065570385494194966789234351713483421402813567898156093646145585286561060842906954672880211910050400088025871401064408505824133963444129520752317764049020824213979235271059436117526691967901770640640292439261385932659086887406722482231792706126031068416564120840338267726502881724964171660570374338861420297609228450710807976421146254526969632544964570849963482345778562866235623928304487707085212082658644241319117715302206558988346758411770949628468838985668073590274451289306651736120926355276011452016041587901595172203688486974124476777006759973015336145303762341481346494150115021964712492488964842665327940222878798481137271061566761577823941470522604319203007353092013966263226838213918033673641791507155346505690773575369179708680236326073148925329061847456873908879328549324849239169985444019052569947632103227128444168074462228353716112565795673781767950757831225642563381621608680697081617636456177074275471250290581996119507511125897018784466812903825385999051856718618724887781116045710022594827781417408317087642011406012833644617319919636198526901403532644679634792442599346026137111499605012921082825122772647659521665111756986880258947349401913005005423930735763116704220795532963743185976284542197528834138746352232158046607051027856482524939123507850833642686313734030738085019118214604091373790435409132821855350882937023335910625204484817418069545594012903283648783042468297176309950942959833682735057685886128641461933018117484924588227219690686537489238277495037440796958403547003009298511245005912141994296161558356005333514719962769704218081176004247332429994814101370772413787393790328112378712496269616486824965505719648386192052284540139569915723625506514566840200325955930767969772858929775174356379840065616139439188462757485237669910334562934063896675055395569591355748709834256688187850232409175053569075170044452473395987492746856164820743508021411149892894132615439155509161854503010766386668060230739663070934334677071761231964827584557251023182716983480435521019875530789562525609043954946886585813075660646475363331456587622102281008977871227745097031284972410820397772059808907385998575323736750594200399062084200315737133031704806969420138019524596341567920875253266649217277040636850345941590837405709293987229376362101042182098649147020984423404186810654456057686069876899160031434839477581801842497757530598061820049837633066081061130532549102951730616454407726809682178762041045225708574564716902075764450476741309692409345589329062990046736100548927993193425510908154557635136000597039052531255017845640128913457465566027588307284709163578674215639449634987892120817234607986580337738730416098085493171134675920412440252478107971431033732358645307970512365430733895915624220131045400376574013589521957773396177924871838696134826003145768457320935369806016209184933786422091562455370784384184522072303721453734802296598283466005523189258737232365002157662191988770616036358521011603444442649068366449225396037393417044096012621916640052226704596994007326215069755314090859035860904973891108425191995648876962333741205077090485306857568329665749094260286558030328323532942816258477932662326502557524133024172416440546155016210665533287321148430293078768934167896051924470457891357222969406237632435937707578646124534946604050081232833361736162258046338105703932665050323995530169174080991972467832038622689156504919872922416125351860480154729898078537728664520137217318251421897791012370155357687700266289046261072132717021639633592920959676377840874377650450209696600708043916318274512890866918900165943738047972969433136260151691101071164814654187493173413613635603630938933331705553766965718675201232806408295407367115839535878827349424508198301304417046253216074834969487175960565883289527781869380739763335021115071642994475499242105187156085050738549879553679238886097586065314978837115019775918092760596957226687603570157280636403368359439239060062170600953889541958503725889693060593740669790682205383371545650013452586943827789218676814361834701912667701368963173296479721148857572519978051303808739622576728374185585336684701740630918387314660415395189430187833007889319676249841279062305955052699432021389728873970234297986112221269467947237412686956243683898822403374138730622215152265657285082322927196275368530292583551060877991108107240891647696545462075430149017538659488831040141459444601997751517817553816885786401999454084053873719154288586440701681912806958191715448207349368814079892038218179041081300525181302400388513082773454786176153238662289609148340647794953296001109723678743632692781350360640743399143209562959137543685880972395711353061823754250869945979204324231960400570897314953275410968617416388335010828385255915588455969595329103249392022487697337562905809547456115196781840459556982483470931891856523995080848110640674739841286336122137615343924645622352145794541607722903555326040603648990854282356509976575502892493724866760363629528793389015730391118361490720787275322361888521119007224597575060566488212003925573498438622884903928666778814309939094408675423374424833038426555277190950653560882843562375034047775538366700644071691910003928935696548038911688249869507770048548501873491594533518482903544499807956867422192238458492526309558783924855262358944585986144454539844274535093309666950126722279630858083457962197417752150405234711313841348368921277592738733455966822882225918853682704493230202941927231229301121929144406895693251597250000415541266429997257151048912312995441854832706653465810588699677024079069446047336548168582091797812001844857890331064397219586535607315259011683705963322305614133006607473696032537562863086681038901040127787658642309549482458292380028430812640778882609002150799327744628427652503687770264244675845605603230141255481538170111094649738643311586281899468434045621871988364665468538957949572078399954850453563869325449873112754394170829223188248633714483365118649118212703282226360230313727149447423978334166892446470487628234819512426581088994045896140064487391599762425526989275318168775608121496343757857597962465005580745382452153490137128722886798872826475965133137425726294128115824434153079251337314205946595237581068440351132801559541158096389739514509183865433310886353884847111876733761564372092455331318570424299090299061605813654210309446016802376875555217226281689772020869729401295175304560755426030259614276369011595636720731065096191416483403697149973065465672938444664997546004501461997899161138755787601170794544265999179666612808469793481959822068698028407729553139226802156840163616744373604574221518315166120410739751507457920229564857161765023559940087264814738527943558557546585162650518980286685242066451768401063665607099385750926767058913046473841362120667992632913527762699402066400804472997596558386462706715839778337044978042022488232028831891741477467875814607592765506781890746965207956356349134803654932558151782546015236270799215755165175404515333050113489861141871783608621954530812155069164476154751064383504707276642336066855571130374078324286984050072052820755184725183322521783988437956033806056444648054536618349538463720199266292756326819488875547722264616140962501221630110764047767955436825352392001893370159566305583619018519802999782916629311794806478126493674583007630974200816056610128593240636455270195652473630715570548627793137674427766180219631730282991422106003882012678306498996726963048530903576327750584958534461790197700430321514183827852352516978312631710905381717841340528094331882960702267696003653143336811438010304101015667930878215366813975299515845786800170870446755893882027049557937188026410184101190822176409221796045880376751383969646313325315384095214882873850025123616911157218509957821130476868854592660093094607601444742419098019103101559093280652959267017988740212328637399696970889267841580293701685075154569200958412995333903112407914540816751825616612200640885909455965573352528839052687171915366012437647694063068880664521053734735557342898138776363761934703378710236785437580481035935207424984017166811841432374614173017490974525340229567993713868691897849050933704967796737880444268192339580789782345744423742829571124068221502441015513985431233021116844777102515571183418967391426575979526310950209910351822888049280082376202358546556972261156201971179711168855597573336465500309578036880812741793293148330565401355223359566425814750947521281361453444185774820072561821160515698801977370608659219802232787167215699913565288534777786715855955342826850904118770504759038879564097982249583073586739606635709170532732814760486986955552575996051247995050774276408522032817262428469966065498510962792332625983796126478373878426234817172751606207055662106496251363629463457814665058698872737080254025703750656077836235419079334765488506196182984018023875446284906022750276756707355296809899374805450289708809515888348641798562792637162767690424679894401717699837734687400196655244282422759277249313913860897595060421667679125538294498513060422030862513950004793012879148544792267919581972433679207132467124506149341829669895113257546811985591449972806963607818003386132091000054310317594733705639697101966033007683357217334143403732352373055001763119427963721557684663238172045670741708519266673119891202442295228437646585463503869099004136931675763373631515418075128433809702624032107037540432679384174807605079015900157304381851952908309750732555834958297449042202299168869780925424590431732346564902039081066581864659325036132025748895587006376211894644099538289294438418170392297102566823524614107127816816502687419141083144894359090182157492120116646461306125657513993352876466412432828029193265284430781551581372344765771632079120335693558523560150947389424030131868356118172488027818224304297727401292068895465837999519354048608577361541695716902429797882348297487810385093585027921529913072396882141646087051928017866694900861868908695067944349872667708057690823078326914971099611590930001015980822629461089987358688544897738810614112366733802440096151162043250088228589847646083455057747071880377815028130576762206455960588813834602501694756572931602556112239940303404197696638274008352077301736295721252690491954695109498178746334968956128576756318673538580321495679182324999123755188480398242527086711246336082174040355232534865038690200354248326974614152117290796132382066699736624408744559652146866721341439322099450856465793066286454855483848502804433036134921137173884693304560458333785115065240656698396967082284820035222751443612807087414704469074486575421092137820069305367298134156665511054623148877453917714897791199730282177418675898234698929360950881529177579521200608878904877970996356923067084314493534696559526980085600334819764985527486376492635775144172806781027370080673060728595190355801131097921609819305444482553518854282730666885785995269434689989660318013778235390024991140916227784116777956183616830361262943748701815969696657439848034423493052466433207290473920910252223027604579861321390490586580883884991968629279838020724278458308325347752836140083666222225847828897257943265919118152332007102614046663319982014123607406247663376933736722913569952604839372030770264924909776657840142671891900738143345699834344452418229244709189901056750946301373381276480561286650891649959643465311264716897143505100797455454147216958626701120211354578802811215141629640168765694208147439422551416013927284878047717823440036350139846130114943334136881106948171471904336762308024175584537715464312939556778253875220541384187536744100298997475395744810256422267251752163163444119023783243227709110548565273699780537847001184310857908596316938156478776262437912008393409434424472214174296575064828988770566055728822185770758963116824560302165086657630739480497082567321550352650489772293481096672467905099996933155830620336600276225958214985704260821670615260981788081784602050412050129664964135825183862943118707938427090773631906414245589975955266123524799466503171881141461446763295580884984335452271230990319237274270530500314550847958875782108280673415142244055695511632362188926254471123851105492070305912612137007346348827234320078198064408813942154335563634760880325532697321479420750646050492041493416781117243210797553079411727180166515261883256705433765879502186413768818012435094236470047041767114238530834018785633420988875961333284205110798849620085707735099478707110030759749297056791736272867778406558791997845854389856585861539442422214914766845860453572046780496478415248900284463393578181982046790864142671241303836481325934008269849152784979961152768244188579496948326006574039876046083492884931640557660858708361874744417447810389572255667301030715560448685521690548402735725097264242205060899161559374908067235353483481113476881669285983952419617198621134629204323648816601471102526077987553704290360491450997069797308648411525135824587252893994952340818509164837572354112158485817856666019853691700450524807947329497209311761171976283410634458890503938254260104481225007983337792275720750899752188170343018296499081653541236181783204498476524621754120093426692176491262729507376109356024999227621296338557611975625109271535038073141127543603381434244045391251133765735616964853063914320955241544747952662853210412100262012815806555705020671010336143217619215704715888588062889662414977778662518454973859802715480377356509325003228995732805240298383467382937731502045665876181304975495313332348842695238514422550262544930713496339938538784464876022726687133617674734787630253128546858839514138167007619399349681091313923117286922060056918039514640239492419501460583286437706540986962445955601367152518662244117630938716636330321378852137411369789979175948625648675148989285953373158015263599825430342004269072337005763432423889185124311588838086376878817197797903253291501118027287407831321291462996902426935541870346018497262534448772029554619829462618243067140228719675161124206849909943523604872843284525462398138763924216111728150559660604965022883026452376273661430872912593947803073073893261861986906144360301548180767213604707858897414070738219769572725963660560697828028054565558542484815849372110544918409359459905513423606353919549522973157935450777687188264952383888207123340264471926152761211943962565315078759475578991001524386974956419015423223838202134796017755058220879728374718667904361221416741248140841964179402990723257449987129275408499231061828062762307309282050647956736392156855771377146379373524219314051923325807664604000595689212225237533593580014795749406343269556083615098529395179939706329869385613297109530155273076683542082841454230858188450787222539470342872102238249316169875866264289797763010851506153324001377623696146308578134122337171782668638107287640239342886282347416096669952682213181811614261478806805476700758400088344549661718062202801942972983802471267292286387128729588595010212462243772957426717270029048666338161598783790385573438689825479379336016278871486169439376136997802771239211467050424834324114724200143445787418362182148415000917504864576695878139694177006537494869753166136018578166540153791264458809620815147056597919357071929677802642809694328097645459920329325001805854972427007302079762223935328115777933151166887383531241335787057924416095355707154840894952836869751187676115099033235683400472962050343428282084600089501540982643784162740129971500259119333133366715239592750243104527428818367166162072330723770390068420909743556342374660440155036141582447657258191540371017501470704115565957788833259443787171448323997122980841154923276198414357257852723922301939422083686252618418382781741444134485688908101641264712725313425929726804351021876086311063078855951301864346931511221411045978611409791127727487112481186539523539156756232022898832333255779642711321564221440096840337177052864669461607898938275677266626664911788192039798798383858644375279342227968368649981331321732019429943173863931757900998953574631629878465868465268737375096951788196661539655630868890624068074568135268358441119097743577757054463817077252699534137232895589233420280957680829955319851290705983804266914362386359862745885699814859220778602763840540688372310044423810545623577347965340872607516818861372441719451561589797600719493486495608151877917753528728461469565536747669807433606955619800285031254854454132479036152296380032966058644243663636764791230956148700134458565541918753219156654580233656384782718328461785702728034621034402394972303836025594406522374332381419212544728518803588155309929165916642526633066813402195241632196882304113770856191072322709293656414792040626928462045738897198668171136668115016281588309611296617629887955562040995484592709230061084692068549493286969143970871910486569267437665837440509312387063547543437974929634554044065339356189382615054971339331619526209118974760257229549929108352737656060807450473055510704909313879588348120528096938600633682103220378212770783180738681563064014741385941394117359485270156088750547948941494508018415952435047931863385525807879946614944520433977505873491422521085175955199517993203806500651298980994502592290107117663613261839090816893252442080978403931806589716384577740953037086336884599172464219503526683809426415777235585226817093522516947822187861151029395135341447655332296565430138730824160573956788592184049024505777487346485378989370643439253154817983453614471220167803517726871327534706176115867692588058809454961951023881333243513441352191808037017879764820030044008574131465045245149542593020419966127731664859600103816540724378538602567881666314112716233224212594555265335025851004978579090574642632559576549277190305249016316317527504189471104232628929077643682023419723003082851500399044560750422749798701699210785529596756379145535039890356482352911073812210448316906828161834853901098234975729197195151097991367843913145689023295693325504910598005414535789094891419473547546906916260252210438796174335691134828644200665059891540199332878312427589486359653039322745464456475025632480437781285801200676300700066460956390588139725308524534802550585647042283750593140564146587175317835957587792424508052050766774764547584288865169154250451732039610194191413217057125354985465866882687736248607009295795497986020282123981054218671675165707305035409906228917964385702986523874345058784356749018513937260099172672362736027595669175646851849992674924265126608647368484796601543622651900982870768246759133366616915262374124536103743624758368146277836460063897986343145576287362480848891855670085996047204295411074283301434462477474727590517840677825414302942794508601803926983589091541881840363839649153766964997520126094258863684974856999532728848853304596886155843546532635856040639752383708821228141299660237699989703666508930529956261919533870694967999157192130994898199854638145721273126707305659319726677734970450208205040623018998102257859724022558793007716296837439279616339529719681695813719648384906540698263752967160232125330886527644815609674219173929858707436111246225250353718768738917849244249148958521553608183445180488845876153221063671713335224178534355232234143609568199171206272578977103106616666429610703741429608591002928473536345641379814157574224246963684737643813759987033255793768862203055719999379586688806916841783768204852604795150783801357747018243232901606333816306719005848318721867380458379848184794613519674450145351413795399569811568510438217124544393022863618448783209783401870799146881890088465381333370973691375985546532570485176470917280365967175330601757860944734837812783247925590384511092251575081956310691851611056652742148491037112968291374775142455527005674290832388540832643298387355351477663494188906378916889634129759002772307145204386226091895778698390657454876391037469155895953329230339754891408320167465113723750006806660363638725510813226256270155216851753482887967139382236742050032488846050171348613929462613850367762184981361738005268354136250088521124028984313773177023817355543807901057819367053671018979908613771698491323657233252819913817052884268103173125956536851276967488761840935850634200041438456924485085037011811120831078895108488024501484300189820719379141860923925566885603499798349015496788860881845894657138170016392285340575850734765255173975466191315125207304244960535216514562002627300697904036412882027064228160225697127602929245603362811400281385450854470820738181837543879509298799038301695996577838222394733715978263723461939063557645157031966134847677111863202624408180801859607457333528706035227418399843288347735046769706876364135185090961095629288933784293831291125563050993612625944707763869406169474491254781647629936834375306381939062458453891038904196636941000709335967673278786071501451090683307426749822512190682890392646894413452582451156878597810243829037262535879798847922942007696115177663204950620620404471248417872226269878874678022916940864948987419776628589026243406865932141701237900000425886239762654904775770701596127781826766585361139034516690908610700433313360671114897268331976135725154100805905444757297039792542588088751174512501596225740458090486857021805727165033443714814830731016517368920374514023782574791156993564822306674632709729944015473438383229722404459810796313279322181582026405353058176584373087683377903109223972732965335377297331563420890147222919051877162656902549638995241171981145432039448481784711744269469294794957981839666504859114833821399660741885821467224432155782720108544526096781160429442378882711758355276657313336580980401886078170457692531210997066358928362897167108158197051035039065248635951416967914729602604181250469274108136583897751794609481983372755022391856857708226763024751693522551785799623276814545487677616996497505224966073203881996111122821129454021800020679336016239982492680379688825000489995864846826357417477133090790230329266615565388294343541999098353577758643845416594158424997481052655538254662187353276025281402290646253708027112915112617422553041801295510181294450209379293876750705311378215975938930414415422584250348424877372777517542278852467438536475076838998204190869589387681657030778251209290703458305092966702078487704309028399014988868041877253957382074313153937078774969076555501581408534397256022904412136216194785913832149044249816254992332724620095780993517089062959177243454140277313519194925219647660676375376113921654633355361951949539107547687896645115630854786499757390127474782043096502158732785797422808698232452245838472509087186592251148969959285576318524637804945776103070064095188177929530048854641774123901881847366532859158051086647627889084543664195753156455061437370771688084039363979876900996664905771822859053065289375817961348563298839621088852483007333879133066012690506670816897077675196370394101533090495786804624722514447637870489298483056518397106578537598039556062515752595597178871045526085518327069495590735260184999222548858248811720241995267376651670382359005881632348955245255154093126768339075970511695313133807874042279053779500026107806287182674279367559181382578258330106637237678926165299698602663309988192985932186680854651446871370759650030524146834939330281344909350046009669091862738411609561809768565738125475129576820845405365027427922036677730723783185270785124060957756263447412109454972555135006459060546843384569602312496604735109226082638746502733509697354234600422385452214692755840830239046366699192891629032227329007557050660581377820901293587494448703354478213200238685319091506280146334417776266929172400512733732020756063043507576207514063547602026949428964200134247548371718613277855312943736922110029311868836476825603898379002737692334642303031004488610256246318187236258497720192329024111678363812089849607311320638748504244292902627606503534478120850684421107814161966429828750996504825262464381027128070518045026937303313193631021179004367270269020886425494074499728392806157749124115632308362405861706839600141108352007017150757040484597656653583118145721453620617845299344831580145348253977239964683084863142543073006042773918987061857924007751847860608054215524992661024975313897281423332622934318308568842640568266173884943845073920920926275378926629738821141699253636190718732798747274110962180333514115954623358842336901277144501339815279917707048962459098549310243335360064650343907983043644818500687554513081160541697799015360416410113480035822481560618672067815498970741017293798825387839390499171698023642345637336738141187655346982406569529111876242354122535065360050447905291092361026041213073744418316155531655538747476066105364789931816524725618632431614573420945207516897488491881826254721523012706189878405325817192108073668611358151453888920267817394785513314902697091390132632948814808705360734598833850227590059400392412881214524919994448678355102875084907149980584128645036903811841072772079365497081895492135026315077194585344814157919792107860383634382237169336581128099694086084756771465240955575192589759630535600545607776562531269351269857993872280566199855108211475082185475775233425954289653858039268047333565593776244134338841908300574415701448250757130975479080215868388119931515938293163440755969445996775756900349063488092013571074448370056976943162174727318535956972100445173646807377793595186074117678928550610863305878097904891927485238469230562207486342183746388078072130125702254345184177878384894535394574199901872506154683394447445584588595273289862090476632462669450906927847155142995539803595043369592330966960765026884207304751460163446057308045777452015497101748550966921117345297353325449118755382689078802525590097845113538788153196422283133463132021026922094631723650504923077380039661772266102068831366480932327955350817221454010815322804057019163430490023661328702703253777019729859814903039450267243146151674310639372666309114919420638184265265676889267028746607239594370046206009776741246659802091024175615706026089823710559435499480264762762878741770206859356635804010216838984978359001468627249248692743294785719551044069260692468411385815840061464806165142236709163274037006545805579709458759809052733966509480646033193678397554440608219598893894765155762367921519584876972614797917501631697495331779875833950904053025710682791193554090679223181057679739345303956812701422561053759373613153961586180000746204510166196282153273731871708101449802554844354299213915256444138035617124401666865784057171952438897785694097890202344639055695240109327457176913358680167208702804336896705974982096036037014406616584076293013478677458046442678817516556553667857099091321443994074977295034920852364390415348229652666557047714747631461550491946279045282500729600703932809083195126969497167790913070075927968199570844370033520620939491923881529149307713262274493945333473957427083698770039588029059782773440839598585177004710232911577867711026698164564277100759213992185132819188741492851159749137361864526026366824041312402296915725410621026711903985196201381870869398675177372185247521151915768224003644370067945101204016830657452540196446777944435564428873781103249680818414013446947992794682740683385762838384862765109027624309974892571418778046522754306583618753645603108622598395928737036062964196345615249118289884468993436688816216189581063723345392448862338161129421901147903360150321038582144571287344874554268609800861565049322186336100251696464088268959854219761097728743964936078402843856246974790466977915402215269726934247590139836362821794805949951166056975235118123165854627426034572105968327753014914824566009415950399723007308925041602168470286861665172690989716053810665838707219691411052202795050638156175391439152655744081409540623795791446028973532608266745955571000645809909817239765143618014214066602683246842317669286165233351985790985926282800039022839669836736859461010054221916124037002458101134842511502999439283732719560567419798821016099712353432567397884888752894801504858320546366843442799697802348715688533468310819171691692815642621427058812539143816511638694767050830564824266584427225824004316845610547581044390256788957798442807487864636088870160886290275362877935369815898145424603836930148993181442614435762924537336982032381232335759990287053158394064168360619855486463926536433181204363534542873012820807837587387431960912379120534828557495288531845496908830445884907067237126147324064982457142626157740325849210273359529292629209507864419200797235128126776564993807460452720977352527865342452900518228457057385933790249496162163137138059914348635942348285842734264804115713455416826078963579891179504653784441021275720715089088892079126976396297727160285557851414686953351982870729298788860169759802493244673055339627332219030501884418960542473001461512203671672636313516044076348106263334596451662409307032787169500221593904198162710515333938038918736073377529957847304519077846903314854668006364661350515884886651978584927028838662964895275790067419633557096309585820172354686012905128672029136530538204544433145575696545742758832210821276387901039723201832649287716867135444869751048155904976633917275606801603736205747514464748520845296186749322282359409542901194877785863816981764433891307637478678881079943804568862127543327673736145163806132990125457358324352629482497695802903731017404869133579074102405080389702505198686076997403361792132362487170357719382790326216061039477736616543626771134171338040058797819175214196535844413750356093953141306778669493049720778259179431291951072788325014474981163387385337009632240880544889301919299209209617947070795429959556955793196695827829706185564451618974095364435816594331479485336290655007693874734169397525248049750566816718640381485867373096235412600009303783387385923932649108100070306220827486207947958590072081223802920380808443942421665780514528894975790261914453345835726880323714907101622055598580775598149530644781742630169861013192443827155923845400714713422030593153436504522432135848070775373315994769303889729080538937679337937979279909738531572204215656839553473110088997597667901488198945427484677780803346067682736394390208332830561313022993892452600395576072104022394809818765393708963917193409309403116127054984696475798724115794158120195260424625981038988790940071038014815391557116742437925575325146222758612552402833806118303158080129671625998404461629646930788867810377800871249812335775278949626963994399565515442067884237205076075748634356703252947176030960973284560301712648569212412943899483336991544004532094685859073337617835729755901735102677508691831607635157826296572804348078705909718096586968973315793552279924402434637960422294600923519821153891000054509630110099420350943630983227971561199295260367802423873316148163169417753709144079356549889510684040792427503167887173967258635772006896423609061428983834596198105317043587421388951155868655472105358951369470897906578646536573132312317941671579363904819837871332644180374199545955315001886311074197861148512658477336580418326678522752258906961913820050737966449163075172412783164163516823914066299505316131791266757203060425719621735529001526511740008407212309613570683512480813582710798011181328761945550818673400703576284163263292242672036859575028677265601716658850693183924384731479553093433350172589144577031486433378653467534401172025523676672457177407366969896920235469534895477889785486441529459451018648338164410337308737787458098423024280259763575986486803948043073825158350593820734851282393221147005282794388254925129390505454700019911597805484076194108521171033180459283995664097243720998121692194922450690710711607255202693413007631890589407515206699793901916946651193401215108627581204312226463490092615143196916212918365535883028513152774887243149607584605430897211175095363547147314796537990712530077511077579145876294159556602786148098239233137515521231078151346822270027395677795977209361672365902963317541893865521484122866984731759587763705290588443310151470896184981815846681135583791344145111802317101577371159651723862438605174660408821464940464243356838371340794399133974463807682623925296274121502660230821974983412198756235457240767700628272877482988487368745759410458742003000873367869914695583092488254755433208402030973161096620014528560507980182088899117387807385764381212667937629786440024054608728555906012255824435539306174975188486046775124943745732513773321579470624625784646919068042609143620906221347070957545037131642752201189064436432760517156242345562668829465369491231771724704345720507439569716180168740989218817346011706181128020581932090450620670094094991263810004999251132544511231416388083299795461123276467103124294721897536329562487867802897374033953973717138247083053825361863672338942073341982928997067516407781601036518436440522967830517403157704081984490268224118424006166509825513671240400347376405391197665222903939108748681319709725206709378072434712632135958330036435493691878119039568153579876037857309020552346098755173486912349296790703685745102047731963705053767599122475281327408818803361731467282806637806401257009559915158672051796726109023753709737975457583436374649607850906221503170175864684047457146848198028986942821916810387775922450371070165428657214798507488596670672390446661703608593678859526590051788857798738347330419140335002562806365512076863201911712682869961629419623438804819013211856008237034857905404966099894090072079775167850830268055453721212920726358180197580912231841796951930205152071702937809994468788231921919793056880104110189000375487935188652457069987029092128453944300259986514450300403692513557938042046275261307005185272134166720187907406046720416158881171526958641908192240223457956884812465489126784226550483300523650494696862325495356170363083692217457870681060275582047538945274136486184003649521744354254922999313934734146612516197513380189875497644096108306421423432158667803041349317723232185058039156856451298801499864950809652911137339549676208072861731332168470712557262712531001812493491206551336582487229744712884559185704412718562490014928977618798587454907292760788186773581664515580171055225648784230155244473156413299246755346762326228818611873875610092003540106541292843165360841876995135566589474637480478888502099268488829104223452171121587857810947062938522817452971913755276444605106845128645070726343090328637350200819059931823341457814010834989304305937091062286719967788894646594003645189902121974995354216088036525215797041584805878211453444349551472342811405015946843982205903113315257004176137038507281542513569846428178097734292871388221906008103134424508121100034451101844659049814491844531329120666669787817364594434587659593471466034639404164135478274651286079147421485377366815628592287841728286279557547609862762994347423563728823416534961241820189320672635280844615083505651018521494816786264641739945276539364506532295251537361777776092159134179112773908695975626556102607714609085876974392623891152683779757568965419426122971746395003977324921899870110152527057287184388665329777974561695603172519674193226933406225519391072368933232207041988942816906310041279859750024313617418163672044553425297320481382871654224798893877869944533290557536164863943482400421527584361662205021744324854609625037491975060472877217905679999331962624447370243200490743696190167091971071016136586417771961300839878827327011762095888875837953372670715488283914242740001899044141141402529151905853079078878322112666547173115825196176800001336421543503976814746856478888599374356685103846957172982080098287157325266067542793228277079288716815731114613992383620458269679907667504833366198038208982466650808643785099244181531887720426444704928357235777877352317211815273420713118106740450896620782135328751717719037391621974620666396163274130994688312962553934898420568917422592920540217809162906045528745714372452241811506925448892184916611263055056296220201906609853215451117600553647397681560501391150702724296987695058664298746812288034049747957650503984636564430944883800704764651605539890628579115118374578874920995178411844903681901895094052486424714044490476095322759687478658185356489599894160223530004396171336924287546645617641833691248976708458169130909915486670372131564710967230219253190716053568363263198413493259406400249588609134004255740542909716213030801336595802820802164703088990932825355401469511583094896518962222996827297146073899416769110352626950135491872067861460045801260740988221758330346314835179480899080433770714646661295860918753755178974254111685562531656531975473053258485585046051699894281152752702490510620260555678992101972436521404262254265315119312219291620849583518280804025754727481589903263982973364780525366689869433659766863042881420471280969020465986495219270090787345805995405604435598777725960986713912297962742426103658778683452635133384893397970856390992679822420580202054744405490147973210161199009753627103111183393844573811148044859629793574365270093911738886954511734395363036962241396280729059279505429039990459450571487195973572255043388840098499724318915123879711638174620144214761239484559660648359425647627122951234042137943529293525669073503496828490819115390550141623175195649332306666449284163592892350741084996067397563399004367547142717955257898364709684742942833584687982317669456597782196781055176818124331552881130043599065571447378298973463256427017140279158799779406342144614497343325042497109751614231354239719209158306478285542925615607149195018614749749098212998686286066667461284882665642647452452314825130814361104016116696152306601328885741841328595987232678374390894460583150174050815932271412300204272568579237042674621733852747835184582108935445558261969714053190436935042849273331048590534989728492448534883247992659820432782212462252844036934039181100069902979812958166298933397867375551928040572293761054008390516961670840063947104114641664835495164086213531396859520657433847845354706460465996378223713146425644477041408795825715797323454082071507063057553182907673822999054627802199187137602493616722819325652532551026537281134501206325026755619228478534947678323130981923271399267158103759470559680314121199922161297973765458533561943917316128468851960682667920757153603116942678746023243500406940034051258737240884747304454320695480491885737957585502565800861362693035905091289583420089284631771427131541170750701934154652299668968982852119331000014324567057503952042460047734636626191709851145410772073959109731234299375941990468045607494158445533666079810904670103449670615209166043375972753984483305891553798659848619580074048941741298866083518493267262103935882343018555968305291968353499316714006666654319008310468024149074718951086148799482490385953467800003177964396439921964332440238345905761370269966880798051228212905446601666323710072261046423901836961223531059512870499016067178214940888696858827547744574052043165313039234211844250843364836381980065584930145739054557226084588490519302213730256088006534198868129030843712272839428996659380172419281705805151297251361976917766994655542306944765266543686084491347954660760582722388837010988651237999916387164091961374788472674637399946395336584435697495575340561596392404121646167936157995151944700537662142213295896953400915264094206812474629772240033337495771868950573666548978282308262695807671415935570444988276236612529933114514415532221451947435150729449086840593593608423684649461188613860712250487312948389499149769265498317302905263375065301560174040353700260370047875673566521062386203066139937082407242786303007470856283938110617028031497779945286223559864607145175450496251227187275033858295534717538728953244260509988987548838007161116666376734561355722832726121218547014619188194075714066263559328188472344986991154362245531899604695853743175498846580368061474763011274245992189322020316996379426779546453939987602615955781956666768266456209789283698718051515330101543870354242968744517573756496940907296252586842231055272987883492818454374398377454879692765143747450883012567713017854879769669122766097024546296342141691828057001681419966996642982506271504691580155279240049288031073141944075092528353323976046348046144683177049012206516872706590465337632637296738472979517521616797036697446930072839467648267894041959479325970556506688370315921784234859701186069854724700914592203798840772929068077194961130921274525665705127490079130464656949020347981817915936242317882951840408060747158032638028730737543800740508596272155731494892526560510626794361991924956475628941086675836679223701790842882091827572338815542934741513637162961851479141951158691033095123470659896853316941670899378676713621704430463370172936919802776072779231194816230490331081118115507766495473921960003132510336302691349352022126192033263757446226544559813694491063292780389124409287587417084561500798341200057680034074612808829435849567365831273761935296405516050914439258412071545954318446695940244860364449028172426017008475529171407562437739954849068842217830783932732860655883188965229041248372609360168194964835562893129473785162383542714031560760587179084592864575433223491167527694092301918343558909716708825982067168464185653526821492359526087478288085380248184502964322853542572778159984091885777260503851263948446174656158750506419889664382782829439879768813036951074232809723936485603053644638777388739897582771975213861505984839499467706580743965897534471072384554587827426139021572621858708083794817244806319865423706229541454463234453876311425385707658575850237062104321587156548466443669822457109851368184677819601436482822550667794274607275123179576893347303243163179735827623908862196718889289590102916136292469643785374094984196324177798039753006923552960816768935824380324374301600830939263153646393284753301195414101619178784200136433102050455295136949629396772284096013625430372979168828453133001744696520936633177200243021694937195170629934905391188255318745388481665520934040445561814715753316513612393386603177162553808963323412861713678957341373291902700219598150799147605667794658038066333047642098408153205901313945511642845752995702395332304415770849430688162700274261714924099159599709789444552092153745431358258663997572672286490358134137990092073186934999986571585529152480722617432365722587185512242349745810442713834234455894184835616391574029078297718695962785132776175854420037056222399218890010100802955242909233554454118787335874962805414440682215615543972363435354931683065760530217677089498477333633097771301702177405093932843696475708869349504840708862431899044833932515191551610194563341183066679966685398863362446895308994178926062170727422804067893238632683826569488688925200612843695057125387300072922014980264956154465806065761940165968587508042246302562620230202583516457272056497244579452475407762689184797776936928367190601693965025091968388535009526597960966603625856672205692028782667097871101471825332189427936670825380598942420676787489333253436912835412376858045245227205151577981458855040849230619559913244517192881447185139371834335643325175951435262036783865175927259265263799540776431811637819935136827652218023982616282319855868952838334372449732723778161423095025350884823606271648334317052170004036344545516204254938812057219769625129056456370846809886985381867103658837900650494917854719009520655334940268331037503834505909735305341619986801449268175356173818469783127796090671685584389610999389634484204275140279673493523060080754217798701764052951786562583392270725814228184404470805018757295603172026798112117756374138903553461580208052396142173458893260203025088530566837389913671397789082335430622536882144660415067939086578349159578373031479139961833394902846659279868247159501675254550068466622877002429606133402145377608764778363882067341106773700729641517325979595359750381663600504193769434773040090834508492357943277125212958912661848978748124874106797943482208820386149378377270682798400986525097969798048093844682507567977838505581386099048049995447710854330285177575192183209030454378735147800317359425504284517642415100025604522349425937914016045319588997637617394524419289032173443997347233775091053829568100204960110505674577967235501638466243444491942408613951590011044054614778135966452441595399927180232662364459781147839257418909289713426428508833375893748522513885610515313067367994211348070430933435403848974696377692500797155312854491477922183625239212848975943877519875210105666407739197309844320029140992986024181272094055480624748631848052336225607534332271339450032426659927941896219350392155526931692316806259250710662762868352059420528388588173528697361030238760567332132834846193194412354511267926987037124172807109793508996122291935210578540752281815196061885833115951306687720943145900748565551799365944806825742077764726402372025088697573350545935921688720629309177771607809323142424802463140609725077345872581905514413211900917973336971646522089647192951487533973048362559980097578271241926479769621326233120626384257680556141119643889677612001535527445952089273799352781417088619425279710606156294763663227829896960558999272096781833534262796328139722720864098280942815355079074584841061665184395769021775824673348185873364413259530634982980867906794261807497760886116342119138223472217670105894798240631434322770000805429873299871717710410877574197722887126796767714601894526645474591570205226154950133824577011388446812281622014334981574915663226852880065296368811558111289787734129527348178262767211145707691695094882259991332850304272879710184465112982856373181571892177655269709042726139404800416395746300347448709464780428948212018342733202313457927472480289054149854326202450196482684356379484759881411855554499485287103825229105299216927293147833143856953327045887598664665511140448662512093092453998290515968704541503838188213680108946988149764384721033955578259827363833265035717675781276042772167975059391067986625933679826981869854634159372842411580155231170330910401892557052918750994705913278383151452566339406982446860422656489306628982574615935161638966306672365003130609709038908284270017366157184057971754918630451994051559172572865782927970695057376696034152758293616876302620178346670673873417736320037803886950309784663688280801490450376260200111347248792649924545752481298434203571468784821916122464301677474389990768045741998369763255011273845212417354771933179916119860694716850120789074126862625314974163300127706019130516928878711728862756600955515439394940413830237316921795096999723180482791975276191866115028491002005276750124158364142089200786268968555255896332184686274604871622376292719455627800642332886520604859130835001638461692089361476859705468492051930566462020791299368476027581188628058286890840934403184878378964387989611146403418590418149336357169450148805339461712446341333750207979190273101484757607665571744677104314873886771829736626272548462187593155509722419993243458348526905861278417658165954170558929405605915872636239165871618224454084198764150076848775765223104944520957320362221553752032918470610922453891277677890438625978452590442353173210586931231281872574652300749834094159757546742611721712994738824066488513819847302724383820726283759648894694545786658821572999581723480715009625959007094188106593575982303824390699615429492983625862176666315432290277751875759079622595751913300551343693538940120659738944524955037121686180779920269891839209949479953175391062857953252880008586654846401969004659950641032677835633739526829208153278477044203201261258869771318772738671607550485184655060093554557407746801027207263151314697864432159475209757953978169513191634436983256500466824513066513849165015323127841874214180061128468708153414700527327611331795841383483813878773791900662975271320433864346377145401035310228619999598423980120084009941590214737926229900746955326876640566028854647312854836504713381918025882870463691363540862487225447378077207485900012308716394514059517780730716614221480456832529319361133703653181372541672531916888127897025444077736689805910035242700217622564193137839683639066761835434548491479336946087924018743783275280967394895036933639101637927057694954118068188191937674612018155350401488437310108680235665771897192908331163247998065651840902062141364269759471560140079213419464898005526468238100260878764767763816805020615962345992665844896705522016524645635695623281881473805881871208993606297342679380163934807218831832055210775080674084863764081117565326343466670603405662808741705336608500333117426273162305139977345376779552801377927692299613884020781241946321905942389891729817769746593455072872948959900423888119593078344146574880465179061630006080212115559206641321759235564622408522051977893606074036639753367675596863638533571145483489866255398842150709198999153676998870610179877451500480147092413019207547321512867639046883374522495776458709387892536815691661868689123037006671930002289955146394979689499614130685809529563926246633825358598619907968124921143971761689397282241615424223221910195067627578706962860273999034613474438559544814052943537959306673170602187653801217741152132125339863214117909755139298571370357646753386169654892290527814336611783408690412035615721900505020527273386282721972477231891833359443478658936309697421259115383123563663893489633833465216187620194718048236791748264293795196611662044973745102374492203306720442613699453761252197792215900581981177513057163542603053238858441716367295831441151481130137678538881486786261409757723082173859475254138845186567633126667868091503588469956339862325243442570649454538647907670131249489891095937162268709621538481166959555314009477938769205705357808708716926650270441818147026206804789615498875345434176969579119521223770072812177466743218027206886170357916117043702859858606137883210736014875693628463997790677351924945065776150304538116431300365223028197085123356058604446293623437199373444158219429229056656282316732308686431223309575768092925481085362604429996738183039709166497631822558478475604632253132081360154162763037755696664516315656127038756676104297041078214403169901412977860524337825432824760039550504641272133954908573125861416440292156657342102730055604101735681912063852150169642406119224533018760165026534804131636167634365845877279939949411072340751050406655026715616142440408216486616984045607877190130317450089410222753756762422259435019873884249275043700237426481942697134415128267133870192968519257305481215480466911861626183977809536470843960149649472589141685538479150301209875139180803013871048494420921632019444990892875809368054357074416638495117038888925083548922001576514759369437919980698563649792264166766648537371381007724673065551942768180262310393999303624235822195075648170117340811800121562994556018290958404284871335380492749232845374947779640754834915219814959962909737781770573366281113977371020481959626348224644057870772626521394468117472219925061831469927717480484730524150436217203171483675238384960776075266434707934616737913917388588910585896638564869335256616188514298352778608151372770951628541249888260160406198227355048264626535600563415121587960541896890964330472720506018816241657622845637281575476634015567891545273980563083236282988877645157803309174920615025762729448013340333732594137518924003087700845326433381969821859142229994936888328341971778321221460580281376068106345083279050855485518746224858716808504341834913618644698397748012714292967374178364868845613084803962216643736948022768592517584674297429890627947353956288366426797387943453200513523053798855367090288063127004093527508514570022102633883880841508757780677764936538938737045052173573153538263280843251497902896603876748666870431528003616042962297950284627961348189914923531489736311389235472390081773636352063597475726816912874752806306478491448996376964283980773408405981589426090379483848478879784177628424378069695908223825838255686104492636540956786741511142339360012162147622654423954911016996841451716190241797969587478393836161878177948914565974298479913459141285689133483498917506399904059910595158397947246394704515678941121616160784755248528399732761574926969482027336890729559281039636032618619546537237937020363667548266041797582239716748370690269236670352467378531266867302235486704033261824515285719703700468509442135703554563562523941599602125624148742548991253351064416816917811228743843833286183635402645423013468892743347458867996940568074452950267279017623235233601375073276190749154517040054143026645235212894013507572530107205172636519326931962461952124478108868733812187564146678874434578868328600811221347188092328383841030615696504717426742493549354593212674992008903433041287283056098730247828255748645424802694680860037963836845542864219915270207308782188835685069279250011662957204137974496151972060217268959330666541997117368358852632601507593454529871433861719309061265642876175889325839338247465430676286111226881563847644508256360389512869992959117504854385854423007247674146107686102947471950994485573421363416913760392356370396338228857466927138177654399323888058562153666177713507954787813267370879988646692728750308914900522285964443847875268012651911498314729718535351915510889680121573708863927089445596554999933669853914067957543683920234827916445976749884413372744800703922467512368388121944796300443307636712135305373024736218557617754111774409378546946564439016517462060531276118644338160596409428014870911047817933336533485217297932475421249316171902692077680355759378800873416874033574137342071476985267535151130220091449644430867053183102161084508309266036124664722939210904639381387499643978795288256588639174165017986635502334343572513658444729101774684849502494171699849426684706742438601225970509877417394750449791685464676770613761338050637606137065295559924895452757382518624465235380758959366437545898846888287052092293640863570094960330098230927260207308542310510968610763498886959965841418092832167856643236517976460914017117540266723305856658124247024334231007172596429618492459425646851705304861766205615036497722172112772717954222695849843563715333629970258114530788325145570342554060353070909653902622625332074430221459883142846801305472410985721271847097374740794997364238877804055958326893783709571897844940846852415482172107783993829573824908548195475307595475097500181275716892098322346642438400349989208873078170449201739809392229839745387023267809058745476461983118144972990073240072727565142018315921357939329446822754130677775487710724778682177710508502026429952242120121601441385176292037932262517668692204764872539581255347753716975569671133335730217195537260882381546871479983849898527659055767940302068044834929080743526314861592599465050472425832821496676549592600798945691325928083327266272099780894227316757013201939821411857307139477169656052348347392300165791154961570300300355905136441043072731065144643797148265022523059349439952767478767606670436776895064500182625453954073960906512901963845369035256335594650770338536786141638149421084425548368385240413744353165963791428184028880453044061865934382007571408330103314041831983765644162807400760421489595620069395244372701641678445964878142820565549163890546563529303481527707786963251170757441844940691539289612107536524186640869925229419688301652595770325126936992046790620407777890714097092055783256390450083349408760949956898419421490755975492863607961961389002283693712624553717230570586203832979346902576805359957839482630712258095970881245376016464769329829064848422840036885881894896337832619971783789526223022489198785749063670790920753751975389852677251419911485154347259623332834091160703619602956880228909483525981052487577037092397699511499311103987369044174326298997750194149281143129874541542354710061656509837268441893188835092226236766501848932154209639526762353535693312736367371896581574092607036721753014129851351271521237479011807495057153661451435031546540824622948988972120893926114103820860966641076175507556921067664272388328587341579239925953865574369557130866687798666612956875480340208043438007886385009669447524311217840161740048922242840250235216562752093610056109671172929169455027118020995182368665282860717734640480364569103837375665690638313935819364356960252325617965218810184864167391719971597548971209267374901296981910912660177541113198723236354047325127737537750579262540509075831001165499044094055869490556592231936162170392885474816234257014351322828837772010440808254439448337779171797950463788165965189605124023639822171656359055661108565289120162320533859985445651370228380841428678735060436376426269462860133895225337623929140906018508312575862547628815063467412411926135753892991385266065565222260508473442336165970862548854800068771861498868632859501004810236559249290506735143708460882333327099486447081962500780622420468778520502652032132333501754113397689157784113106852183848469277984044924391666534502468245395538738654695947192197808567862188556462152055680327805285878701565491770459846201833902991668810119145338532388944262819943402451673627940370889991169263742927138630185822299115580465989820489285633967467138806265417123250470202056450963302359254403194192835756836764172316498976030965192114199587596613147315399215449851323973317700585068557718508587607583466608968895676475470806723934330472863983875095098211335087458574585752971126005984576294362506009504843692767541004457397001471655126565707253685117406473196655535670651518780139841264190629486162420624276309451195715627587517635574360670403395754722870682920619667199319523077089864633565004696836437206695972280783479222577344088469471998882440729792159001921607541986283774228327377805034229997293868026739125597155092935909328417092763228642931609464388073028153411112930085923222894943909998215257784756984535433064579335686885757081473447722694740843567663618161544639698005344392852531921345530971182976119407299398136623520065222759241113760240676032150763065100503453733886825127139953907639877428629794497954418730112840276472525719975170439441994795053587185303849439283625822284169574007189282063765409865280058708703597260296733631234578285248235515239260019140569971635691953322022743355661430648707260741582923907241589312936151399163530554798582245580302554062024136426294131816481387486407549991270466425691425718859958299602198544267542872439249849777073770917525219106794318036096455688546344306481808261840573008297394460553847498918069622805804299772700739736397496928038895810640261917494439388477542927097567974154716551580495405166915383844929712841355900901358100676708880741325255172053508822845122324634903450571695464240535539880248495170372953846117430872849002675011521302693199758839365051118699096178122141828296121961278605240823185365959571975861374338478911623617637333840851184498649057948212656694828833946391060509788652890903737161702717747066098374068885313018304778848304306140610000571860206779668982441708944841473348925936374039227287426420546767158244019532106157621923157081908147523201027169297547513083576374094718832689866005090928777875818642653568308760868999907588323300887232965532078136513055837812234363269988322108614975155896763320781505709109937503200285908270606412637343468754043851608846868938693206477950456050744365534025971680976747477562546757503730070431910915012760114360681836989902037851318825222112864825247288196161455096484667488718755007624544546645442335927005144556039590318096520489079749995993169884747465675908362643644268635888709467522277174514732202809240060855184501627855741880963817253859344027171346433190771914620219638651526510074557678181703591258374896908840579801348770226818559379231543873268478613944216462052522769958246246869539825865573979027736500908456410269809396663617440870529462630031165039073079717021787123077853895122791117641329000196359204279856303749734439877137601128725178824392902583431433600489850708868664341248322649640953236016400568484530425344910359174512898322022761883935779210807884015009443160865743452392475074303922951707686869064585011373614043846748916330146306779885382549418856622486151209538052019476297917841746423338206121651425495469239017759631789521885385430097114054545718459046267978177235448505748802668671219662269801230019583364572846764183759261922907640987247643884053291400101603331817436869113191694851692049296776927058232294350587896605180914781754053919450308620258056126031234374236093154954009118539647948258590682402408697982125636613576190815848024561571168608819985465433275624434715297549364761114127032873658495371182160467981637413352140356108839515723910623768623761864090303706127871189910143478151577324964510287513644008225993810192970418563455452784331319407243344646285895951227741023037664284236857184780293418429351824103865788511068892201214922194155957390891130484308011709666157254699444383246475334960296281919594606400301672498321798843402440885223410694261883947812525792133537450903651739932947580828957660621422679998291927426978913184344195665103059796410264292585753500634381554520694489126267232837672811474862948093444354423096571776656008608801555760920331960013395778276216503437773208102170699455998974613567370118290378689019926731491613346253710893026549130676104002402023769231740728887965239250039851880810622525538846939244746913683277922183878710693164509959152156134206961828352049886634581450146146253102058834235275126573088586578738953219675065502936247195124200169400209486660394399723776651316743739145285667187300347381118122290119775115531662478500026485729061910488728866517041259273169983089066443867176088472714504415550543685357266671586768218484401945597393826547307895655212035596086347352716957433737781491844131052341432351433280922493074014591341364671861081452960708091177111037222116205888414551836332784409106567948804808687483427727653351059135699702181445453397441585236820255977447195725605093742154157996236966414721164695520540985916368652922602120506142660062376739369052865152181607921752468830259572133845915770712571669362621373070778526119771619811210041225031048795306327912440713352303154811618897838073136551161076213541180954722675610906018488790547016463104424859894783181252786046119768463303693992268844287757309380045386503413047393298770177531305765312946107871648543305171228602730443134956345642602191422987653479845490292334164558362774972515630973990263855985155891287585661437091881627846781482379968640064697926937234967847607848633787015074163220771823356625892852018966150280313454656731196820189314021754751802295704169794034776830520563540092950324535920422124099695920134140261381982643917185556233825335390923499764181776402295452689329282260734095512907592198160182463089309411536099666422637922920990371846558226662262139753451738418175473505740906153923438399732277371500254824967528069619637631200108742837043317865791779368547854756919718402890345094758247094268857011262372779470855198486075773250179169132660449285238012024561106798327258625230703121555812623707070486698011036714966345567271732641824567913932199956344779150222821810303245288614521491445447818052394284357351360010543547702612792465149803585453130836973490750088681384671906707182743847224861594285390950700579185429084671543890053195415946423874290871063303326787134475211771391514813978400864509291765699538800321193586887070129670760030952352794790115066924355797862952395253911866933064824617512119842915849072985819127029978812517251887973809557638314201505142621294918281491451354608990877916745330357871420001970373078790498043311105861060805884790898549804684509541676277259619173633717599089329257289632798973060715853322176546937287082407483383551136366890258244182097277757768878249479524610246807481219658484264701743979881016911310957331473520291603714938256949615407539995345757400274696952888349313298034638009623075653109716299170115675847167431667398025349100383846026233549557940428430001323310937377118077877159896603418583004268905322488359066286913757009836371501856288767776932373936167411219034640265134385458625773126242612342527709810176310958404650205706460566801339050045298518673398151723227434032296982917336700759168763574691655679262121546978109062307572923360335545182387113776098731005967266642989176850906354990057252964091445786183306593537902127385890145593856875317579635892119688197511681611477020910743194022070106365516113366517604400601423277061647695029172778168492886413434804712972420341207363122912848151047520814272990918393714457050815813504005975380570851676880611159622196485254324558558702072561021729706968554005319284944922256316373584880682907509285709849425079065695250624193923090711871697724330488830900479893093327416275080957882669772149725513501160320486316408122975657465127549377520914920551301145931269264906717414210006493314167987114559600184217697821334906390100164731378651160834670402493469677559288493301368581284577365125221647909314481086818175082203875062309105758134216260806707501031595872581520351030507806887772852270382341890484725461013503659119693250132270234777233279259802004427160229217008578657507906752738057022533968404203966242535161884471923571393607090777970371065357400403467768317398912186321229377266385934169472066071549687333657158142205608207281982881034411351198002404049286207447027913500439038327892523170649661583815897758457927094210303783558232881756570900443340227643889079688183959957291181655447420905521614332324427343413932131859399210191057628999517355208485290102239085408177553436525869125352160735405449354117071144716674414550376499270570732819501818038457311528773402719052902720154787202669574110048586169293814605162306632652147953157387367163163862846106745425120629217378568365355110507401959338996901060793038903642709638120982389253784448376828381646462790283048345774841358650850605848004262561013091354793344150411713607775458250544502976451077034330863099044705573139652816422599233768072380127321045450999025795778527215739643058559939830160796365910464507347453770583229040246146810736138166712559772477842169558868543435079338807258631337734816093095466455421745243362831601635980039826023939646567207750505649148461184491836696609392877873877712885011635005140703275041577495920018105198518913044104282208277718950561165005125506653943619951354124534608288307593883643456858610423784432631755701009037197072541057956864730795590629704792811782639257278593158011392411123969032454272696392143409796100111405728043898128707627814133110216204910138467346647811366373607585605014057636165292978649259498921066629403894057212379617950634147956872532218266338235394608013067217697265898633238540607905459303506952521142765815489347855317953720792704907794789877187520681563375678431213388471208161936718079049183502751123970713195120807226173657643073908709465344296270387603258604886278381841396027143324175454395832908081008008480301866054220311105807706034473831423294354060090441357252909333052989860496046353288987885045688689569092923017873942082985596981181541035560882898479246148400408143200761520241949051608259103050455305343774880722219519381586753950555714744535814893916748415080366212049101160220186018169991685824864660243751131835280203323268011260015287983921544595347885034703547034185490499538466067393125841592434755313866749763635573692288795676051037284853552338432455032066055496858016822231586714579740483202049661979949067258365526623815430523790226380624420741707639573416595944236486874398432389725246787505757331985979081282594632758112294495415454009042538683744768399676769082339101358969173946054690586862421080346204502409689747511230364635931997818089111581291842529596120543084579824176959172455937437829087013589242819233487571923362170324022985451568348003498975507361356837427366842029998472209236894987745198810690497740697820582149576010732365948636581846533969912223947418610208058655599011525913217698290274256247692722377948721717736111198558470147377548802665040215394839878222597910976551026897362020929232004971994091338236463202946033528530763173535501267381449520087882796146438144679292986784179615915488523874200261523468350186398558612682277078815967111082719496703845131021620742311291229293448518301950216607766579370375069028185803865889507105945020843906936328349499229208905873026529932175557946489994233971258874315973122420552631888517993851189084451119743979190754723545174685025931091137022547310548488438836682033477662830428690425326438579245769667896249974376684384983547723026919050587311291826147674859737388779556080300159847186797212795022125189472753056528745703413058375486136606050106610639190671257652756008173114335695514880386477323713674510855126288978216053624716402413783293032998103534479080169614035609536637851606375343567433250788037530197457440230958498909824175192342291688192119869464770255509358398688507556645979208471917828794217442640346173212678484144341774878242613739237151003796091078827127067683930715470876997221912975611905778412565631596780430509646007834830144017419669677431202256965923761987293256092032697592477056395973150994131186839117206777017427506490680482745337208396630008601555418251155425141966960243891054970076759052115742040869941855335625794370537591109368992102923145535725491345398100678608033751252838586452947924262243000343760587384391150031045026324582145705827999287910844648047591634432731854757713642991824772622851617448761863522344693544087371049013096388360947602663799197567222044811921353908471803908149140543180451070912295989101319785343385601670538457110929094984234689249711053063663853908266971669407099200105875551206779127022465778661768966153918797064728530783272121726671331687523555450765962327831793205868659717911220924321459304121089958356524666688905766729759100297679131668486837870865594402890055693749695094045295982670192929385663091388669988506936957327983463542284105938892093367503738707198223815436663750634033995332238096119245757215342726700343916920947592508981331107778781188160124705689980893590728979522375152905673720841868256111385267824472805125550765142427325041960297001371641380102115289335302580804475946501386216672841337236110292208758464380154117858378814667705966212050652674361375095523128933901717872743166701234175585332565411283828498070372328483474179452157955086875538907032604841524293349469326803594849373929417746555223728066476257885602486256080035857869085808724973097110621601871594586866963395474061530896347827851257700065795586458610315611855854672156829216750693777015813384505550894845178092311202963594910828367541362195671306206340490936828149720762074009308539641243255402835221690017552137144917407125306289220338080729802918923239509575499425569161636763493335207961808936223616348996506371887454232230942883029678002793881160666274367965226360296853038882176763344872141166085053362029885713743460226734598290053171402518273442814983268170215423458112395975418647084902330948410804407335683150438370750098415351752928848543567669168250450832880827749258151123062085800813981796710096417336251543674512192022642581765289852993498933170950254074374967707788384083117129084662477476553368341016137205776907240101923343518843329947677686661917873292910974903185070370642753886278177625208999246292500862969088963774422987405489712263332614466652709692216000378245508808137453431889098798281935395394711258991729489687771284939434150215885870927111102498562513497398480224903495063229268902156561831252672873295562028814764639656014861192078077522333606595390171093478320507186084028431741191017571310256047812685805251422571193891549816747906424521297430739368513258617249439964416541146914045703261341688296934096670956302385292275457101789689596595158260224532460211995543138008482892424341441684475937884528379188630598852976544562139857031337361706559596271138015920993643677515545826668090720284936049409470030389130870499898304286145490250297258532821843397654603680491470863385693570632318126405256496257258399014978698645428862157310370749018337516218633833691915976821174636055574929368294677499499589876343130871332580047012453753025530647582206143295769774476078830527453757367226979939350353935609067528813337024003118311796203845145433305774886732749056254433594096137421967171976094463173609302511826206513647366174484391228746938500249643193919874376718997715946876305695109260015869458062794793653431310590248221128269852557352560418747470547530342639910897812217940907096368712861712019976881465570577740735976802975798690152476897488033501417908559192513589330148688444077838537278209177661662214863312428641754525106348880109900785079509724436416333608014910946178926973666965620235065051195286699650862861784993555128368784354835088954750799695396110730598751991119769675519046159754546494910471530548911154708135287579529901001862287216639359076755149710843645279999955664736143623123278993780904593899642503354118801220085428835460842490099412397436719555357168266786030315593812608164234625588644129520164711833522489636780349895129986484812052051691088859413997391727737756002872866818855207299697193898814960828805014044031848603203584147020727063560374841382618655084008444586804789172612383742718097330710557919494908833223732844985635955444846986021129213424451225009405375026168510613752914929818540663995819042697867044502487637315192878691379903743218349426116887010450685636897493069358283029745763639589055942217418198581227694736105906303140535265442691677825356212074411763078367866996079020506543773276821301668960327955008993477218649440077809950196834257731246956043753918915571123357281152103870835805917678473909863438276661397677126454474387242591404978723465175745867455015576533286085392210276553226415229557112324037987002486564611439003295593352288496512436262482151304367664524538087144637668066575625458209717984975400130514552532127090154522719848389390403566107789181082760548052681071023135879434607471612582869797056501289581106426764651714582984323813480233935264507106188149109878278380100827081787660951627840203399218601724110730617944988512629655489659858495738552074967779806677812062560613243837030673471182091557814090702790006319680823640783297165160716385917574867063448259102136735539237058369780968262113537129196388733752010295640432133088679031179947449743778940729543593352240798678059071468805024696209643567480151963520867131537183408774830327041494942190539436534290084705261002667612191069195698296925293035699290876601185954933145218278500660282594734849343185671740754768208003034613520593158725634870966690163960966511081777754562898389429247945899620581503267372278851463766540381015370719248672151136597010263506367965701643604620625152381640866262409508148077091275668256775864686892955724463007410873777605480319262422705950676305733962701136372228845377476688888922317928144007303522033565262328636675892756640165564055975094461554619480870758705258179098466654034465716475724296226083950903515872003696307632904013292124042987174443173673940178199281892441088725838607780425476049277967234126691432728124128891506685552021651191030258652694155068998431095739845059819979568137058746408955675926790780988799514100326493052601015848437789669779559909554185319882606413183467190161487525846431445926965916570931495141020547840778838944762392598014620442048511767781027782423998984464146329303583629890737086962624207418131604226995457126657020739859568248070456225348065206571402282670137897662836936226329259394336968640415241829041911810262671029856769410840089586559985384879640066672576105907524096946444725210248249882572617440611763326807167346069607269416062431031049399330010571606387088540096155861241731793402527755528917668800302497667097679978255149606824608221511871708474562617251332940253567820020585939756332376045446620406205720681264601356807259507789647186752469145879419744066938181763589216781026004951307325521928723364180587145246090048085971390075650308982721674107243703985032486573508074296767393852648273213203517099627004367689078853029929127450723008467707205070034545128934493521923544214812278794945247031313790583161465895200399912601753859325980939188207696686505905658831952192252128586372788298831369587713242549962944129112604917149494853713258388175634635501355649061320381917960867548402042809778986089232462148257773626389246877345079353055437043272293351401546471917056956814403561162644800365546113321517133586523196606955231744815358983721236939996593229626195623906514808153299003556716914215152080596642994888346879064103790943957659948706288578527323733989807969338943512803315941051423615385844994607797119041662761051572252133801746348994139298897158632668764972421821100280200479098040959984221926917280991451956530188813206736697909266937880974853668123894188897653037553660077522150849274857564284454196997275436574867010859663621183871503784339416625450504843428423918217262305504717655729528656614655270479570887213026959651862762505816294197297871616512172347156655333465535330014007403501368405731851512250462105150643053493511664237760249840697213438323647062896085462128425898775282956566534467598636291947190598509817577391823884472360080015704709277803302532926028481683637527916226974420480506099788447938258145436539717866775543542603475646908688539122793406131823309739937892253954592376312321070821456763899786568460419072839485920552221125640359829972187909166518064329272092388393736976178175518912288559099906055414008162598301641509502888564337766089288768145061521954578017757482152158826244467649072441330058652118654226393238642673055029259812228774554203817862423975963949983170790394482880980324500726312178986293703131506312806183709044410266608373594824981391401947048867018586183272495704796188298126744767519314682122838990214527249260851768385358689138312848999025184827749745862282064516355524566776192235213904438386747282509192973981619026938752787272321107915785146499185618053341558166677619034179528715784474081491747948798894303861213298830669658272554181250127922891349729415929747007389092404043761734061326230378325665921743635197647424980612834915924092870827415060312643960179280642324837836277704527245727038736038572630432970648720906338523775880066193135305063027659974965432371805657944512893032733582232883528056799177364723774694681274672245828570798522606714044518867130949800793248722437177986199413793139404571986359177717612040949984929027623899996929279989564557936257025938672188282325281679017130311486411519671059623677566522819133368723291168835389454202558200215674090753235069252423912539239488660781592949637268607994456327689424064720536770954923930302830999751855294470619389827523321472017956311169863451837098910604768291190445329120339651761130961315586290785745992653203815312611928816279708783190430888217628768434403564135201183561817402914140304377383056493862889112995466315302315932197822237828102105778861305693208366810385778705603267616572764701234197135633732748232608711978525640757207435322363303185639789507652920276976811692684192619432324247587511796960368008177419268486846957356490296874226171780826546108281652707102736726184426341857119408556076664920920425934742675936803266985976243912957880921102518937124404452224674369860334174746418505897717208314626764963757962301829351888415706534370476171870377354061668838914475011180691173847861814148307552389214590340926379702370756772753079697785700208315362447425035533468836391341818675490060118708235810056910922888386175610426070053497171445330982992460218224964918360248826549333494785663086253128953594324702316983247980425668689058613572632336065769835516562740522804103226427747258426089033609127714639182968272411139979129086691102545063152776402564442664284740619865721563335508684589386521014263459630239608638715730032593352833127121578163565100073727614934736746372000895842412849008513578036142985694891518826577031749203057075069844356396481935625229273868862461252184904570572246736653811751692570468045956210986791891945218969220599195908210534533002833505180176538721859494705331190485184983388099993575628639259833385704913175088926873850682285535654696704298675054864827505772303655121377004986231706189978169018196001435902307821576866213785396991083516307555926995800395859496760129296221955611957988184061727476725121304226829537317640614204780319323261480542218503986428758358768307541447175773506908544116791024076404298960982541275695542948031821138918804863214206459808809901841993868521045506132346636592820349409618828578022755936650883607046628643728732246086800054651678058278756951131519428817422582275898554202862759219196722693635759903216642065733890862824536135684371297551184660775950692752011631582851710920469578770203533290186821738118232256661419454247168734584044899318984539438620367789262676848355907230637473733470414834201023604520141342227779614060723925648435486246969760363757062616780767405303488565238803908847170681698633791675029242781848393156724705933684750551865522529918612165532791168649839491452572588671614181589871629578798912177406371706196857059889347914438831595017232841269237309326136494422172396056280083681574318392873287765505885833291131000750185637730128260225009212451487429543830740344633965218426760857639598662174731595985292635735636425784223324839916885329251262488842064967210864066311043385616793177434996694464392826880213728019611870483243485370056766081103657653964666846410066718691405247148434775663366646375565290785783559471480731610852341779416380060560436996327339864292539097170943636152661475483703371610561731548793374513241257575767676420541640943275411961007317865846342728715251563920191447112105476458174671034251420081072476387391793541109519769279700845561862520451706100453804142314738008738648692210274333035766882693643246502882059330990365333683764159479383857375821085070114253067079966854504739120298182420261343851317355784449975693489643072547020817965919272186451101599700443430185774550291046352618868279568603544149304641296847630682063850948664895119631142200655108728722463595269936722329977514707364335756498254071700290852976724715993886186494965664305521427637089734518466519529422419590259894379129158048558754295086223926110745534648386662255902958102224521654496796887240513381073925698051453954302371777405868063905704674945413055156992024561277344855941543377828524987613960275234699618124641133563784590694307192739191569117586207406182344309104537427511193538765810908976537087999966226419952219017529260368423371426316571737262750653320969484070317331036284095617005316004886319462757520431009506241564046110252075231252480252038884340624480971547338629495947187510995625388311688183512632129304912505985193219235440376274986370541418788007192879086498533133383429499160643801850293081791396323074674639760587783449863580271940395129444291886402244524866669350189008856183196456434926795522243941490660855535777625138184519413013548017511227574903936667045315350845024018613900934322860902754690732022385325796247772084409742361554461742058314821136909527011502093636809646220230464985824562782855963215648331083629692458899712573056270086890682751194686309945113727303477599000437005376327332373852297708355317145825313911720903935678556089725010750124046771109984429654889704286060195328166031077492105481695008140407070779210429552923160262241758755882857913375145358679194923214895628641557863092240521862483706106634362509855752082710551964406167347140798590925661585183564375760341265497956477659381255903437618969252690063958506312461273260328113621951946898968602140657559278378735574549310052457344851889528120127946733199305153202899917637275093443517952047478445584326922565268547217133057308313433617746234242145710030194170585998414645096885620468219547032339392812774314065384322172769794934361005812949485876016794654195594092570983239919914446518294462526584255362108138826139555268302660417885427913661964172427971016196715243168440576022695486523318514604750397804733111804850221189123584771839642112728951435037393750686484231027291621571602685725057530228029637605792928297030426654904183684291715622100459866949148869757079080908011509186926725418327299822908063346545438584886464660859439588077654887644242014627624372258636828118359225029262396337749153283643255550047473823500286845486492937788733340215826911976454396641023104323787395564845601724921150333034431815770267599919592328178230540559267824640777651335224836485829924741717014140104326110738049692446030785681245756424885141053111810683394710967168893294722525182346111075844310135365142737324645220696876372376128473273293740425922849665120800039350217343798323933988892331571446520748675845481452801160774766861481816239386353943560715505752429560700835404231083693496640576837221618515869872882243195947759600742674586817630427608238303260893584207499104542790138807256710287479420383515331016465345533251560583722731337455747595033179690630226244087945624215740556289308763222146995002205367466164538314398496887463694954043175639089053061461258583640973935784599131405109448686551118126939614686224892398873019021553518215428875936456878575386537887124405405405981905623170445127514957916084636824477600980099052637835614185638427919876670808919388990688787023138341270447009730720372394880207526478370912797282000277753906513287629435519558894779993517368586981074110276458309342002203120155740102892077173298675501613548700101221607284264956403578653626588661497892333550323907610604897340478989715117978121844754351280316848381648843792582098683731190621610730608654180067583452599241833604418401701544222539274599724330655302050415499229826628432450952852129927364178852321051512648206407720632217067778852908916865466892522303850631483031505753385381411992031988323802734652909491926701515766390014029301404267488136726573379113893698673235177973400673923165684956440387769548207280243498970430651150233195378166957615483416699314270924808209375078140486329851921786908052061911175025246537083966546729415653011246169524041365034828736264868312971234460200637854049171106403744472966621619755114699368882274019074345466640618704889282574717161198069915499975530459200116766046533118936599456576056517270099505007691021998553568344346078096437683072852112174519837791925294685665505262833643511657971691728453547929635589142532707511562005887017869693353191164692213831658060030163796844026694894007429651278010587948711089159246473179184127807443255540697645568379365901654068523149814946747099553639003481161989683634952685575568599234267309731984775149103751012615401375852958925571287311140656431576181824583477082583338288845710319449907747571210925923828756325719850621547627644844886806858138853013604431035065825104646882971928149970074952358202351708389888344546882178066171034984325744530993471245426081068284312967117684455010722313077683987074209030115238139233636387175494050908882357258607046288104238656423397992758582731803341823724483543645052453370764900523386874942267429692139168863858654666342456022717580245891610449887476410416577962128383675209255687029148410200133658354936126338024675646234901191365422688767805129886883420458154366456248779143284645510923075024488706271266092460922764910215712265560450733576374731209189299504057406700009204208952193386476145053891958774820161328892108438271832100671006569351464429637495626824679738098471204639046469611859065682872122533153460218128290687136277694004590247427348153482334663356769485883268797846733389316614470364836096826964023397858550205445881424526138778291762538955331511713537077390523295903253406143149527003658255883047831846981605065824681259102549483590800744194909769003651596036829984328272540856027638546927652752911861758577119417753995930224421980396770764829684156544704654606200227289184856846593213329066418684769356079153677402178712496532088318058573816275017799007910176401922277900020756870615709535664411235376824439940491765435318873448508787852240652376764424957022976823985022275329266379128093459742955428872295045490169351748009015625170780860355096486332984831050687103874074751691768188007174077465444630469756970278803555242096283181386127273000189165713821699531330987135902815152508638438366043848906898803436673987427865870571496442000762054691289778290405067153533088726303732996752614815709736451631853530476909091524246689424951789506801419918312571745713580821127213891082130256912296362676480865644203541268217970773068848410900269213809010927894903273369649683210096758910480278305565449347346563747584432677336403192065100041318323875242514291597263633512381539055518048971058874910897085455182219911263717744368398440855854115079117223248515628972603937904647496580026040982865763681185378351059523902941399648572147807866860818145393845504728238541425685467074481091014885785959503160372459409038960488337123912286961517142971996264481644180516424749393371211748958742754739570720355253216039855578592578182092859392270168128670220299887427597331617828858069157615314517506350551044616475095525356479383761309012451705712107426340276265305748404967904268546715076598233669436087684320364482382257419963754350976872940513373170902437223178322762250451580191358472927671363297684383400499149858233677086737259672167789725046904810845402841096345282568924996170677637018831177722856233342176588818529684195021881301526306104467245137079324990189069902253001843369848301892147569540005383362142760496523273401749802894857993103952404305970650461252904616933610633758447214556893540369941103096233634525430375899316408692667480203178535150106784591396508676694798516123949246895850877005667699455173508196004414809574614115188957248810154958635705646598119768950043104528543071415137983541215024863194167649038692670308493552862787699696482253749921947565582215128529840360428122127904213350344180420379406730180546324576526953720319600700418127283449536608317596313745601117026281234860437023060922456736529583101577799787770579947352349795817856091322103696080731904848336295481953518389693530130856428208538550420135367174961551107034987320961702316908130321809066607384672928656232947488613658559227192113355034670946785496035566064546542916710206141576620158116288223874455666271962571411714763606176763357316327456117452397520751543466556833973917250672276011421955318113119153825977104659905903699977422228462537386673801920095311347841988077773519951452981933503166269680111842783077450328190899352860575816811239387584920154061761860893174105866652862417484638634096355479442607505947834704203426723323333388025721349656288339700058610587264127376581315838739058657144345660662844128536008441516048206153176519678782228089704073895556022564714318600572132720972318220286695260800346561852592026043223458449142507554755536468409017092271141959626323250369831150895054555485010181823754297550724306270485840435088591376473108319107783746317990331798729513747478714493363209416573497230653119873325225909925675815203299755291418152553132723591864954103179335717624140892322274481908159348992767184977500398809684882467530004967883136417170053802252315197237931638274372825261163656947368933005469866696637087613316389395846529557404294543527925488333666443049753632372401944806095503450004577408979737190563358467974227893629426863887961256077006298121487077403020017215912260331283443954579612738700053066308892834088329857128298299206053887046748303032017898135603652537990874562693133623671139791961259818688856646248693897396593979253775743807323775119085113944560780161984283527646306245794452644438498582920161689055065772808777283040549596419695888852813879964917647787414465609362364939866540347561620934299362086102004908359895962158917328913184530840385965828217864180513299999327818847887221625398104366955443706299159989521869169301748555823360598411453914108503074392690571066112469722393141587050227688914430127490164673254887133764038963260829146772805928024779246643932927773262438755856275104225605937377121068764703924592233030933888381410940839627919518427838027653412758109355498896426834256928956220546802085666499303392178828766565503424261511952199627117963341229054161970460130331113529557427387444254276365045820860671008808316691588210797090326822179943380618002897108136395916540450349346541228458733428144693023771019543020978873409049182757746124397089428763957490903265774566396682318299153010346956872786060231764440864795253794468723967008932978260543395863693634752442783446892310850020340669421008850534925120937193750693268049877718189460785342241596500030222109022361082572732605722847109592657019719521325934183248045178909694716686902525665887021420143307774009473365333756385530165125070732939382373674665872768474818788288700404339858481820526426787815515101085137668193534339432587042641647187198875933110369651943692545267635339733683620150843620200180993179752926073671756616481901917407960992522126926754050196581681662001992698768029678561540083014576770260092751329213201600032870014864271727882288381063130540707756689928343629019155684144279981066648427136202299443191748996718854016464259440283849031405654376360374819085943497109709675297367352288154571088066445285577590185713320239186297826137519798702355871836022042788564824728746112560515441834006997989421836543769402569090759315344479435463524481229668968423482685213109464614166184590644907250726368816970374703913608496758765751368834547176866568007124445032491442938133489775226663514200530010026740953613647672086100121886423163566899751232700726233852092526748347708295080955887198032376281498122185578090632219008322858171084472478472274384873798780416128641988427149274494449187170976141001297987507113232920169141226863877976498784219572768149756698602322203404755207057149102675756030559705521103995482415762344802787978374912142710028686480957160512995999265039947788747855331285997174880547200759284260581509137668392204474240900662784758524003341811763546444851359746391201674344446065215934143386141883477150499883365311544210827357367026303551143322945713821376348907960605936605778705253990131851112452810651520183608743132109312679168474596190373433715521197926810372378000646795652430141737668283892382966612524309464527801604955638179186628432592612522382324215947171672249834930382972287082761246957954208924096132141755416559409443005073890419804410345754971409877485992810327753271429715560689863671188507704373472752093761327754997806578199483783814652207229517420624756482909245118282433603845694468235606668172486761315113167047472994722756019601273319833465385311907001429390883417974495378848613879875092992469343163315986324960845629720309060369617944886293766599681034094843493247542263709924606991621880132973270798021539456890486793009414867052335244004055263620843707273897417845081818395145742304611670032426512030472767408605386994309980613004106116968185766093110254708902491467642533852374964211687646524829600033550871708125959056049638905295607112653821779524274194627355537766690603850007964313552608836075488567444982335582517211629242528846685994860319483460274902772309499596251607764186401072152787867424768841364669269123864309088003610238075998307553367794399381558911400877128179193628000077891206551144619079943642102860551322679177593013057051806041734720457066352939820299192082307996633653263317891167617608029456580156938189852555366590014587485076413373033669283277263666420966333573051903510425837127269877169007895207132417577364255394068867300599513484883245328330344265387225521533179002890685503982147758429207947087710555004370169806732793561448734356215241807503169719744221771509427844311156265423070595444545113734078447182857456475460308039891149465873151848955670591906475041035428201148319940095708374114495662661339308773313922389935973831908073602968244390904737364547191152534672490094613425623515524021799052418177024997676314405252669850328050704280343950082016627168728707180179777703600047193816645927459947439985562940209769854474791462392513066499969156166517297535509165711397414435449554489466081196502236870406192540744725785359677811454891476350745832439441343957518554332806835830407116108632881196814714539600483983575221484165127443606578594171846706328780338485768114432594335938177640816344014497559629802159262561520421588770632930259040533454714411177236342516809079603985371063692094784264766152994111402510845417452215845245768764968785795607184047031205406294215362935725814334938852871125367422832357181558566885603778128252317250591258682549744020228315402421883982477329431210745264145554664374662470011369382900062459050708384614204393451489882224431160033916831384540830501551573759524063675370933488035556594392892545939421642539113887654984189070820414967556673395705512683698360776937674434520419430179912646322482971258929391767535638484582768186408140383961570911000844076533854456423929505939294028929279934142691641298052780604614550571229184835616553130693691920706809989926775927276094566655704569367131949175972780412176219848678033163424130609040326117591042335644204455980606348839853570580899107361267144271537915777061677411788970866012378395971312094225118081894819660873150908412383317545898454771096035233968685294524573864375138474606513428840679759347110190564012771910394743697365318923583544921447013724395354831687709208876153565048861684292907870059169966755092001126227453864056176592423503816118971894140555611197898276780596354856256160824280275858242118255698316504265596306395305431613912963238213621154574924660321070400948512136251375815156987404484019354006175145905141018838313959760990698415410738159687989042337079268067915338258411122891308571904984681028752844546569405158208179525644705338678724815622039449304219480194787938783866025349616597388691366952901401496206440373532524318370354740096207947221113535372704970562875718193693266238057565051423485002547977627377744905647349772629532208845215331288030592624516863647555380699195550033392206410550551839429028996743481700206070983428143136434307725098163930115787739432716686965470447134616786547656116609784573636175934697219174951646076971297994261893744175724421831670229812931468692516372303367991064266133279762823887639925595699267223687334806339836505490744173094339423554064268083643177385475581632670593642136995660187656368862292578610119569874619828004458056413631483535057372747292460928789448829295698712393532661747002855592920396346152852532369712743546643959572177519999080666760919155989172283032822787553139614761427833944928631892839284741225691827751850416458268604906247350917824758143410844485320184237873264359430940330080743507952844693324174612689416695850176139325828235334350837438334227175815032679261801120774147378136587493558554798167595722305806947461327092708815822313365963915351230011028472815238400703787657989381617900227820786851228498353730457844146988607816241703909220134449552017482680353753310373814482506777787689422180253516967998619927556876237025452965703331233480307132929446491056551261699161212810849030087706450630936137727005120325044173642945400151310584525715570448698390763747801447575859156255152124743823681741717379866370057140206237569959850308379416536176252703470335536972999730170666306553223634014367423389536416161983333231773905930035782344774058462241703328611562705347327566129674050710178068121071105175357009010613640039263945017301158078938565388776362703724909593522196335255243339170690448875003793471534822000576621462635641390408419355249648911723864502426009293811565450269818347329772257980383936652632844325830087419890166393797810332176334437016690437062818066075150449477703041040344010923124216187720285762101750754342339145386758647384174620462459867487533097116170671940181465392344119298096619805959287328591484208072291095940970525852431887546377742027945784192511704105748936074684571901802924321968658937704935970513430774469939444721325309748722363322767123585784616732183212641781653800493017982628148390984925946290002417406532331407787957540574148195690587074041731276421328307241671313239479395899573583544956078822566504200553501657687215093197569624824421445205670405955784281191046436736111279524338913748357835706633196101649552149529261254731957548152526977903561408173832553503199286765925067223581560265314746958488446764582971973997808573226563349357475933542134989568540825903385619236375756580171341568002771766237258025474839248706560067523327618779392234234443430299101675679835119793957638134636354198514122707834359287271186613614752982247661130840083773506178200375623532883583138403650376820595999371098634020231065629595542292476678896395543858013018400945759633654397287750696952165966768002355106197861891831407470077161691765907559992405678059962435593143135326154160817649839772435143872347597665539903626456410940344361399384321457755161798013500409141488878022720244681605889346853308261938151080652997606601207570477743905764074475681250653799619017790561511884906403374511736784037681295777891525346513975463316592139507592885715213146384325855365391764304252853191046743247840728965124028042236510882083376081998667919186838448533648934528000016873658649586562534875294051468575855037363636349334730230308552171384405702837955356844119326221488633539721123738871919660646690919058089799563850781010813242372415291917368212351829958676935818667952522852526831470572816449681480136272334311880035308496953141162279043654489289653439126207628267284641195871451442411107699771161501340958142426883993927275932622655495407146290714394043437411080477428344614632212576489139885215685431068975317644654077662530121852247669163135848815854934858870850456813947797255961279552337681783617442906545939964758622014383703704331026553993224263646866804562371104590559284001369554831798946053821539767375855713037415393627180584937141663913276634425370766429769806023176002743113288883156307399983692729686680270173285850830731430321766082382050178895268197527556865416527406211956999310774004805250661197920221566628259178909462506870611223240469765441853500197772322669081363298743201926213796114762205299003435309431773527091930960486026724635205401323578401969261636791290263742737784232183842191408017217705419522759775682818654557642821758482663980507736124938059968253299226408785826321479640556007562644853431458810475733225525525299507806507313664226528504074025054272751732180436284796326803893897161767721828736013207870332369921628157671703739331936698021583731553266014169141279583632659129571099297509679339122389110191210637098988561968328968086148392964614052357123976500929463840649347717182992539751370183589482693923636107697960011470331883226697400353182743840664098850938150719002651326318390746198456703761040730250024563160927699496933666869583654018067875181182750172179683157320569961192163621572264187286378972771291701400261595285718061454852769613791586506649746719935349233241007702075581239447012677196790039432951899726606532068877571605330628767501370723667009932793045787441673255889266350257253153404457818088273855688222554213928870005291673845515497731903937705243278809454066118863140642771788595506888375943816817277618165131643538371533328380606329675561338211330336286083900588131726396558990418960865411447959828958811476693248882025678196501031257862038817353693263311629995757913547721514164742241190257207154572519388086132331065957195622884945970890578815220915911215429791523927228289178954710338165064434539883169249275666115572903136655109165983332151140487038881778258782371738533550752197595746595279977474422460884182555609909033129494788950330888697665615699923964945076672256462372263079142337660399633494126286996474618741523709420149178631256246710711786392951667093587934945693870856617049498040843058909634405450037270279681395743283050477779932142269566735291592949247454849414828224310180399916801509669290156575884695662252130782774157779696308642026812991977380645578841880227627621696575102597549891419181778736026735842747492500297192822181924665071200322991790829125798544387546853408686632977737654134598701921875840011964210861908103806764632606974689118517104381228551291008322675611531497060980459697737773120829412225817423314823814691199072470101167721569165521010555435247133988734290943978171570626718626868729706324844333847659356164815078411627831109787578177210523579545602475204589630735386029274040199064822555267737281713527228952325058249841488443839323232980634978803561178936142788382867955411067001645297764099614713399358702131718978398782817879425420444332192783767007784310850228620701754928264012521807584572947854360564516203238633226448707165229372506492428537949955382247758026464141495341598206498075575805350201951149929254409911532507936203729512623308201679646041277159572401454005248612639053365857197530656044331068924855382649890924870464073649333189045309951596191522338545693368959491514847764644635952866525073334011424705569705012940061487256202166018632739817500556187602492074819919897831454778941689147167110348173707808493027686029981475215455798187323838043042622370525015020259611951725673847521728091137626730203969723730764614313500159873267529461450672930307052206850067864420234901620171450493636930239837523111334807987766234635815868202834747214068463940745159040928555794194289091302776696194433359275457426333703778207704912978960868899601164841448255638690576164867616653909837222724743456197371883335891704646573279944781496719363390336477454312325193820570607731641438571463886552052339725923229621865092872735867105387340882446480313046634723797788061608626710663299772764010111652611152223524572051848980488510825301146536533649595878599933277900806115280254978510599918979618338263827538942256368194109242539883625559961672367298392281115789827257700839459515610423810934426087090599326270134068956681554749632252915093317065764860901893130797351085082883884788661033117478639727204993837803186888494488890676704098967131436392165851144728414838212326017920723446665719054315918127642631783039151485895039320670552608422021191083887461078876691067540155096640975952935310493186720871261959221011949764855493552889073028388339560010813921925493970372647773543692979442350179468745064061074816769469943332469798729544414555829177912704981015208469708509448845408633990645152393208453751379328780440647453987363919302039574892399590939359171585398113264672675853840986871414341971773583497365930127320387279321691206394829341996323292083168365768425626340121605606965168415061382067410659845060202493861542818325398832616230098201878811494731779297436459999678066716239976265060574476652000459285109139584364074036686822778925332004556221585446046238781757223541927824334519872594020021053129577413180280255159121273498187908038858776486848342856947819853459190574581590049731738684846437655532422951466022380492486340445475333482985218073591521537747167876579045788958363784723126255818648554834729294460458883961815280172549973625561713208526827264105829796645187952374081758997511763311812088997022087972545273104803500467753935687151233698349405795660022090792451528230583938081565407889501225801402135001615509623411905282046129268800010546385430846177614509292841767974796727378555951787823780390620377018196125757078441805657574614997699408405290682347726567787021919259548891165332626289667177582725597306015288390813434443550273746729913496156437025880384086488071606687110685523161460737320810939332041292372588543938488591095553461489681696467608027028085383584066324470259072755861717380391549450625691443353117198956240477507649288375577504670473577004258025594633704850024686850068798780370338265388375440855920687080847224000938278894718559689974710996630231842413372027157573521376626079344425282239639031942781785849106028553512262737896163502841292875462331604324866156674657862189715701771905081165549155105165771686214399263854763531232353594673610347017610990406612650569219982641940878244367701882593686409071090789688685181115394234757208142746229239974905213526899333570177779083128077169450603576557484386098695864008805002794370429145230454077263755624615568648988192266933076003589324601745977964274951424216317997113379483715213616129114338598314499678825946157519863887089233293077573068379653316021092820751794119553667519909397478177343239164116597989245576158186809842778126135483067636482392211915012740508947430589059008106001480650908350033634105717828969507748228234643857011585560771338446710674058090339207459281809860463093581557550281864448361530910453577163250670447417281681018508161304898211223639960203724555341350639630355598625096424898444202792887518168222202064485256533770106408373369446713157894945339908861927437854055489264707232315735595046769194089398960984584376530235549393745268359744830014585598687892983926743493792098164098804076821082723510426211209702670529678359702671372481087545370037112517513110625038276070496449249626027547835157297414850630818187509425888734525233255040298472580672484625113056121988454636557591088323476202143431730571152942583241600730164852986266814253562783719217991222998593039409669889614956886889523023279354307445543209835698995638210134056467247185588493521716114108994408801855775280547800301503158278931267597069401438081584770754792459141142050783654907079052040804809913669674100273292137548195378386822591123418574997055562366930800827217857929982544864313179056134029374208513355300915341961405736591960859197981670339127226081605489701913385844829237851959694416202927698242693972490749444031895028602335132229803960073082266788303017651097655780973248843907580077680122331371870135250726993756680246161937976208227102514818325327926659888615172335509568121959582693520806550970457169230517014573433356961015122937851660119665297261281991575710341828801516777127800426753767516885393008341903016986856727919869475983141625905241179611039972632814876869577852144741571126984434939838029254573093698846229108299936830587635252608570437198003934931682908074554292779401270625086433823733006783719707798921227990310877404325130866382496122391404999287768758889596223172604323499860976512512210931858410216115324315541675859769681781115010395914812991894765388706832437146731335843594632034576414661132975509509019171518356747952058309613877822281605305528636781240801352825381710411519393470024434407778694650795932110294787305662064851968264213209730558178837031432780291623828328649444594888511202360139888214446420556548385385642328642172397767344529750426388796039024153832530485951854846228372950282460609180078626018740749410802015784042275364126938923540102268155021107348696129472326437464444029749388936489941798669163436197168976689767251208045465295413088862606823863837610538677476196721844940838977658668570546079927894923298357244402019551192779849894828270034690765794792578974552400816663959392132611163101374021601932410990261410101078122139935523845585869255485146429495922788366115952729917381948160746929127619486558301574660601366554114222566300684487737926080242265709027562328672760680656887192896722144059874221647712415945641996559469795453052052980046399273028944731789856006635135003215899671105651304868275619095308623890633465937708146101232187326509580193848396948627517515175832567065361810971840556246434257472076422290170259423307138157223865201309962400147159890902557217855173949790261130943325011331881020048335670348593121767204437677687552915795523550642789231569776584113775656830977399471838438881815118808574454396418819930302808018120397691292342864278373608516283131244024163078880749199609638388977344524940780457077032883388995978875185633453595552797634926043168747157282123615593616762927652462317660140125234219972368639865982881490111829836842445856239608473235110782205061250933675999047688400535991183990999497687903547392958391402040991885191983140036538245289447195480077589908033257829402092142004974743031804039910380127737224583113184278307487237341495930787563251783673344696457449126747724222648322215545616396754981933274542930868038780781868948075014978588956408573323289897730642187047177482748963625274324031744199917849565554385608494608951261171227558469380861969910250766209366276457059937270820464404539128961346951652930102345548847323105555558236799972874700419017176623002589713811329161337261281198028394693655028666946021879776962360622216612214474050911600079055966640858516606335322791993929455767755882753006907310821037524680818999592251871761291240060718567260143483412754511027737114211637570240499965538190856634745125376171748500254511702824805798166492440127301801852957819778050993861224311924049865028689096930547223460384703327204600952999279769211927730411715802269604256459184115886065759144010130781324045741262770761887475517009764841551876501939879219470497278467755173310151797797937197266880282058660753944569526239329875734622741963180888159127810385760050708531898321022177252249200581073618411312942807171550614249586318719753227888990295763548026354564012012764996379883228249700788561433425386014173492746369235909042642615207467050704398380890481154937710794811029886649323875467738491982916292374436154648215844911326789791478907920413511210726294676101615639503380436018106572638051078244368785492556254639907205963332552766344261893872252980993464313957789468677867723864757348258305083238808982408412444427549307391476661171039631675387378386552873252216060725977625397810160680582253669227277436481738165154543440392464789928779850521402274658960144540500354836946335637183024523193671675347627556224423708417205016808482073680474306961077146476155369499175063040741823843405358446751131479980534114934573710230392823258255537536675377746292528202796184197630325870001734090020823506749807000798029604261726522392413892954102016193749762749933102355168737324580949944421937897677612410294602752272053093888805419837350439870907941198057093524733087792006344951131591626272562058712142653933101015298957598078729161201729026188505540317538826661798467508089769207769233862251622461062945668024439238412083841109581925684486978799691817928268910783908433301827496520247327651048390327135416381568225506055917021726089958212097901790113374396671098910239475693968521214777426673442432146064110815135386779408603958807890098149503308947196820435997063559367837788359028592274942539304360526298357666686601439867669452566253807859135693161124501680101441634695841121161393239530625323873202402971493665092662034094237458052429150547420226827466599294001049857887205352340899538286383619502934914684802242412661189931440470143341240004030368665353442850197563079296724715635829497231346428109358585341259084285470901219782374191531133995399274326360711614843355197092131119395465947090379000618234463971005708342033979772757104644566828379176971358134190143458393777710444412423581422246574768257375559423335578922596762358918961630400327258896069430353477349994660344083875999238661423656995582185647486702442173755830477602681203370689443853604935425671700087158502006069585503236176350992007271108620742996709232945946661115181778806852673331636220311509957229534892311261843526902117147802937290083482468396452652450704763684712462582819644250605040545899072641355637583385164384309650669503797086666132052267946932914316122084806823790487523331689901302650015315260119209245676105018072932011625116998088493846143077943922818658096141087304583925078758961992883693539674393926102668590171140140890311145144502032032600969187534736021642366848197264529720049997692878397046539216640024914919403599455958596236537768029977774445881654315592132988184202315133599054134629279501869278996406317904196165140592557670127918857333185817516085640470751195814546645204906529215700339421501443575123204631604505706294513177090114415389967892430725119777972523832700494126742187018084480570196019523900108984016093468516341623437156588500193236289374995235020789881232520992764040536474875539572756076721582469142823739207218576991420967437848035759796630264184937892846594419198428207351033072808810372569561200077899328953370080933717417397261356412997791821283219019488039050052001992672213687940586421752986728801559258961662661262881965085358657028287196115672771217196087178815155526318313509559320499736800163276873851599143267054101753770753526736218661353453772630278134813074795112031199556611442129167203909080085609842519695240727349009213797223866380295672013747227403257157428172663384301147487116681624584996706982415131816479745327898053458179650194391642013156365807607500476033174086997556492179845355060430196542083905891690709291805937124396207554003887866690257467978801098237865845604258824693949395266514075302874526271228059313355126263185801812297022171157720707841508649500047299079993126002328829923590662216050899344587766346133277898421665123581142309591849060541378887201018400883621442606895416452925384417486368989847943376728113453888530638563757070976996081593082521243101838050369221541005657263524920689341757841670090542352234727514718439951436109352691363908254301554485287043036216952676717020347359573688793679698548101815385227962794188142482911400609000004895982885355497113271432386541438465174894603674379063059003900166901818172184967410921737258924082358600826133402436955776956739925436675085780446294216251196753053823843380944687499105039754596393050660159653161323277951763273327575573266975255208089662431196220604616647351727574549549146051159039142322770924834905582150008966276926743343572570236644911245441538795575093937692840883533411813098795757511459393732112840080851049614658575334416394068880009203249849793469542583712257256457594453497774086360158060479776945881190760232168622036197737731658081094903400497090207046106200940652238573068995269901576301481215320470529826503448207828392548291577623801737064702406757957178913783053861120050524746398599820062750188197509613225335447746505475545877616454921365770946589791221113972436330937191957100506230183673505579585578981788746086087022051515256495582381728684780623724950469695067238602488419209851973734559057341853262198298678650896089249561589913484459817473124149253565691036344786371088214564414199728885827143682736336442150940490685638693839624130805658159652035980995672982928494324714431471571434654448228091120000970022600213917145693262588624150628722494150221924195213206876794069412232715358850243657147431055646882348577214849132823388728595035093242865433154578438377959781224193632009532922137932190454405808621612901005572100440037540616317021905923154909686674620064621333059835129336016367353826696822895584992881352820489093719747116738437917199300224140491532317117447010002537999669224600273828844818937031271545264381148499941549304858695525967194747332577553694293808727590949934465794724049821588549637114518478276806226017795489236606931716942695970169236339295420722228603903458694243891615727091662715898629575019608213463069818131306350011773131631137415051285072945260450659325234909829687909349347013889540400753900508284860948166691758503084821088076449422621074105831585824413729787651161711859631116343589501120488760243503818084993426665940690305444322975533872480086403369915832814639686840764487977492977689667537674621890945730585877638287025351097818744239923819521068178923980487105603417303589368003551439645869392902047971306221968178451145864649813955093819538441479610728291653779068034072091925186916900533501187306829708497094494878250673299518379179799760693709453416835938573979770041937001193409197872877914539780297418653729165802469456169564815759081273054458047006260110334333530851151920079241722085312565563686926592699731820210463215906527746047498055588539797485502382301144173795932370496447133421545024752705578153997340335953924971704366222434561495166374770841097421191126584169290895292143343292081893663008156676537294039442635907904885413776871743897773621898949136313063707771918834093800096858484399071349233821297236342643252652817036846071440615492443843833075054904682960280309857757374169561058872770390253702906035206095281063524767528896494007595221392380566154233772785204459045890942454241346781909643764597390737635911455860788900682349296449156231842737553417377531991803623763985739427482662823820795865789710363321683824163986272184836078326650792607114921544550076345058189437022559997156066072444354435922487554288193252095116503093066292210097846825570363228670157899687473958126951324270731246221681099878268752466646703356860771319720323722452971859910121722661589190449421276410470404352861879120732475643556328554606138288635103257678036057345730401964055947915153900302490693480343990553422775785321269982195513380871549545743614200616940922955358150578800279400409680803134216845272286660206807277124754394616930966678968503694694721065120419185043185014034952285680312253206531430586651716107383127630428108512723496598062324575758412197511681547397126641113135086689131435703666705440935146594787929199441585913110770819433926195643795158806311443754407431457029652580568910903668562977396749878096587306281967264301536034173205063006842511326490559082207874487830258202806113994895581543614381579150534928920901677116217772479308393933148487028327423595927316563598213704422609309012989889696321787000947239284233140589496758812505342614038961021092874995829975338237858596887372688121954694523435960464083037833323315437525925761280509772869500047010717878918177885444496668008551317813702223541501588641965894087259951648170322615436513256903275724614832934412269461170373679743671533772352696666456743294130424289769989322793256581038469445633052260912451406157299914348489640859266950743143806073103162809353436390134239807723506137209307979303187455367308892607977577118667187609434715244227080108831572913668365240290014694134442581355582145222656235598653069758565785551997655771122548877931116414324613330227552171392392887418809778078948852447398323443409211015694039658456523067621026932674012837791998192373539590113450210054776752788796344739890477246669023149351640552608595316480166861104207549186419481495816071899462956841620111034206573096689265239606032917605548329642802166838491847219318973540066691648270695091250845597535913989574637334119105957087705098064806558755383193257826908918233624231579805327984737678685965594618471527045260103821332153548790247613942130193595048788415443717130194142145862514724207758642464144484556245565643990557853905160291972988756969680665394210017081295389312235931777797908664549429399594676187053909387920706891544074351155519181684142336941064640478994213409766478416536485834538004541400626628121803780854508395298566051372710137712697801616929002863511810957021233524108379812642390807843775205214053110669793545271409194971000957352400485972886819468866593248572744929012872990876364872129339174239194641952950586978733026085204402140733477098366060447768689746698329481990871709120735460748436298923397351315427587213198581357233183190779677575472598533758477091726560037919061920650752191338783911779177366951995313502245678751896672618888151323371739371106274780726750617736726053227780125655750815034453735331592729615305769809183723232042028304752870271412852274029171342264123360313133179805430282296155652110270904876288027253574389831155956777305791941820014004930526190597403896326334187675722345349941411222456666178568849629383095435725731177721574300174093372922991498785206834483726576635314061379476012744261976726940171331967985347401345815816454368608819260919364990031189083354780717080061755348432189547955881649542000455710036843135121241633605133162226332726898618565870744054886536862664233747693759788798542810247485144678190118015563365079783449682839369221735662969248459026961397646200562571882578191212443019060718124323449600467665910010113422752715950004469214743965516748433213245290428216486916659502439006266545269324473557626762342270032517847648603598717366789419919385486140830446660596497743853975117975402121374792633035759915379109240031343604654532443701616560126061118553826191771517717768026155212565085763932007220747516974877051396810892501626278656362227570857029367314107714702088790390992279955544418319665201343044269155442462399613252130145816857155562132572109877804638870290761333072154174839819702127349391094880405419281916538137158633166884506178297093644812729918151864038635809156773921507640927169120441073026507307211025546880858058988988670079360785165316287786700786534345689984181835464121197563068154829430694000542432080365844639682586386512870408340508229869682507837720132984737117115589432355414008695763403701095444795908890291150172971968413289207368375872261715469188934855985402686156235620293402767712066186688432978809606562503369487800267135134836656599501881962734097799766455446231776783771492561674688090092373122343502972879665020296954046231914639631098522661391848185268081377403487528207885871236302145723267335978260285679080727182175088193472540230210328031129321050752562250513213337117789033330260114127177412822271487476896549797113201263487458438776161665845705274243688672780815176608092642192915380096677438009176574984947626276565651128433292254870454150584552977676086233714205469660023459770148521205642409121964608665908390449348293648141603231571818851742799456397713176853371912264489625310381674649905171638402757526072645940712490369752972723553423899369439317700206110244309348761392575498198625978317914087194543596382586954741878337665140105422787981617610662203873856885100133359111468212895530063344900076836527202979867427361303770716583822115001396342812877512844025699314672523489929040496844539339108925459379641034669213265736054674330580136017436066323502598860861765153415325150205236616718393144774759056055720740612488830272019897118667898578791430545341045741210671866526652627268570958899094821637417401468258190122835942419082110649015016585527714228606224929940036930564422635672055673698214787820442673684829054544570862557983267173011375978804354488141640169797328114406280012499453194024811840583325712182192704236687987607393392213049292994968919522776772931044842745868553833587968908421203581120090600878870732894145629318976373817536565454209799875166015984152581906485411200519171825781765616601102179771185827713680713561627913483392656297748400386040937699577868381214381999467997240726167510611281733647239474050114911629670406291336461644637108316509550024441003319864152129345584007030174025387633952847102976368461180846721850963133664992484578276724128497980517422436078768363202952600980226548384939506218883324511263605434410040722683097021435779217887948349491736544664208994489458433126697949387991165506909080619571492372416115010788628500987391423242633738030268016819334325524191849401543420857753523703033733577966033352461670841456126170110274510530262188921938332522582446433778504920376966917806556371461328558317747117497130900760045758140958493550175056314452265949325416000605737766352972473492810868740522238907613412134540648672116710301151927507573181481930974900003406876353658900518056043078233754349478447594425670800517895936382274836681623338814635292560256828855780509044396930745319955811746898839782993753239164509143079010129495910528752102917541146005003209519230881077519330143972575651759726507066934686808545689203586323968411791666849977141420838753408680553360408750779579988554874224660295978472577079440179747795926596426430630648182971100991773292880867070563787566392148406198278706048417248201936760933929414787093973572180858747996436000351772506311839925449585705736955128183855342498807817710673001687826280312667434502816876700688558786398695834177747984441989703616262167268692140473549081582912153896698307134714184985495839526616380790407623334464478844834165665711583722030780624490457138654298569699901381749692588774617415659316199520682882639083185219182491173811180192528990562620001481509292708095625842943127998547605609929334794940250321675774655879891962417805531862371009587741854779791131061111405075734398079726417258092383523901842507560578978228367493781436973390968244235942186606022163331279208970399814311085353698737262621682960164324131833379081356631507447492624177448972973666925984068332687042420924108631715005851609352494807826263446251322808195981732042247429924382835658926514085706282416053460949047766204386990695459532420124895630868881255113485592083446716712907916805527880395027566623017705081985617309927064632237506740186350035383920568770249837916612935133042427710727393858388124839427659826016837190016774344136336438726910502665342539921985461653506121791401728710017644672260742435803400543231938770824825221767320246769994408963529022031025318159712026979105524969950002719390304280389861168830134322950834420971716248544772076404022838943868955746260888822766102748812044536340524098862816009536279427874986939453622579820442486460124635635775865320850702909608080162487320186034889684823906873941282900735043195450849767202712899183952923833883529412202110832599811946471007721698839162831648199776423594513102281242997475173396513456849795167500442744940078199633669161298976279686381231860599207630452261689255806735168130893386857571786501713095585053222829672982487429835849212214696271921092506460436943544897288336277740372928974500091483474526146064787757374571334707147725337341756572281895887759937661308881592647852229221349548092287778340407808381303444645214581104460628188120739385039084576577658451095846072678784105418420727020035460941639947687299257299764352095235465850672959738624774921424933918292849438421748600792316186290349427206034865438526743105378067996741493265093672290002421052529281467770481761002271916484187071493768907873862624398824414048661550433928658528038393703455107484141928826119968326308088809060999044805913999009476746183068408200454852251127263222299632760959235947573454087397725676085143200605245668377906768827184687597820494090635359348281218915162070469251897288934117992635111271398302657541813732937201737542280741138202942837075308545459702420624199907387315666526345300293470106014314868343682387691032189605351750101343946011708388472030497943976249214568423851620622945302992566670402515054267363151788884205787059408619779003434098850213883550995562633740169596165255656026662216655131282140699491935182939247851678379624779818184532178923654753358018896634584763756814361964169808948989299226119239701354529635377751088261081059800069227513795866757292694259087677741985686911585781899857478904190572884963351252390722139053766278877451892734046739889148857331798504534542310258328344692344794051065943636159466201425131941769154110552471339427126471731711200849962189313414836170314850332288699911596242566055761708958682517721789999442851780818555621122702107232899772292504385892145387748484565194341882403529788454766549329657510100942142924561315543817635725163128501257975411017169137528167399779302149280683426017000300301561471385657215561943537224721397965669901571504162420170506871813801561909884317451744446836757535961432020855188922466514119292908574357100462922410342663813989853635660848335937614718990061746041385545535700736007964487394147363701664682221090611123008029207765983783084879559850809791508775523801793863267937814596936809846786676109075584394107050566509643396354928884960270077626640940020998356495014364588195490370324276170773710302740239671307345500989624933790530973849169422976721044863361101203130387791864231385857169317012202758961542692109584366496149346179669084001646142869617529839549152061973286529885922541346721776890922522060569179175440108386622561495961605049575011967852144242398151541221895418593309533121868177482710280426717098996548020235944357365977971434931385953761147293793089474581214248371812275641618178241165488079371790270728468042820828504835145463974425124256979768691902303185106369325757753651291158628194130004068725993783929767467737901999224058503697364045455298881059632773276687554857662911175831995187840711813456481742267891373315078547625063588534938039488464711018569145777435970251485444669857372590497339227420763584566151079305090687480611447017183782607219121551065031518184150277614438608576499956993166569860439264761201211604329429848944446563872782463488393245021990301175865604667874585331699969582801856052674981084215369230098900251681653251582998147874343595812794876580212593879525362444050658413620487778428428735714333582234574204123246196545281056684417421591569884360030700289696236606087265573413844168320102006698006912129305024632976930689682758098585181938654983544403930908391910970202416913867402142161074681348246429323993528409433205230348207093575385949235278580824276026481707737686896141584777455052477807797766029958017195349769726922105418327429945782219197601198293540147840494171844542877405168522348191579525997632108777532492281946511804083145239541565189915663931389152087304614730913463195398407046749912112826076941461394428159085373239601728698010380092982764674570915863604980109513019218004358943692931782085811766855452678645735005960507320001052339554150455385829551413253470396837950908255283675824325934765791807137700678215325084040163978977700110662568276959706745373665755781618004709482870702334006110711869875168631268901717690716927115721605525502663811221855957328540562596366935050736690210903030797212559009876619864413488258475411203180542622363314748003887524653980935591122448699520286433636875291055783768386410072587278690525801996133228335867915367313739999662674537733463361412040173313556934920854463479258354320956079338315643931818504508851724558331021528438556882906674060217560224471961289275389540522949970600297328887836054753087357994834290222582196412059837218954561479905691356251861092880026459328968226366070653011989408564986729375903074007632387289389161167302055643533151672340238812533412789217041306541595171687375068680933938037457704401775758054686280812967454323149416077455033857479970563065931956559240118295927853117744797981910068163084615523128852468799217504485997292246184682893309184279552103586915751205178162528890702013825787432421662507139907431742589591787751103889036972294625598315418191554890468100212545860480016549850393091598016998820368855716359075999194010697185498074444715039054373625962903955627422051546819089178437748344004113699144004700470883839299672630668651292239897626170018453635028603816383832023489273819784412900447311997065086983204672815315327672929799432386996418292996371789020413275953765410126955555824935303208074465045005382895252595792855480705636913755195405914845535563918831937581977931581082917981890600696121688053033464933026589417558037794979572866628378322337380530242727467697073479322337999730964323449262221909593930900665045367664680220316606182366580319801963165696633770409519709689276840612969921196890840039248332116616328879738331103034802043682662760407873225495194304025342719822641330400817099517922622820911905013001382469967616766958367419844639562000414569290906227822201844693689993143602323648138178249905032643854043495324591570917314151178377552299057002761026866973249543505578197066485506574900221432042964233542122756185050229939450383976612998145013245629778046272486123445572916328496676420323749536381031606614648761929681722456200636979697045244158156937590765025230666299301449992957585618079563370034401403303779149851180354076144515794961786435722095087174153946337911107456177167568281261770380583130719092497428571076861997310770204289285577465093286572366231692719450924835157985623312820643228691933434262901746374022692320335557820814469787730335694882723068603389452598070544969118409836921010738710129423616386441099626982368710787757829951193235100577881545178694933946944886691975673538008142079453164012924885313368296352329644402998479851524898735965260670143633387916998275367868632710764172244573393974672037045950940857169717110933375813930411037722280982099776193848682315112916734989333743820606729008259690180195267784377424828705618387851524238906381090224667734313854325564706868132767992351898441346893996695493969498402215449609155434948261505368006245921297041380040540926897664855275154600323775715984340260026759860897969997062236863119372064782990534567813237614015069997046965209422521675239473188865387759964300382666651063383049954435730302439287988612494896243696738108316707146205696849426365112427117410472208789186405710091210232858462146568780361001756083917625076117993106054835314879475533860998019385958964398432023752569716283687695249999168763591488877220524986976404643571132839731102474243627146398207995272633882793058183138207841655362701062380484717114382827936784345965959947160328711406715934464438078819319075603061637645272657321985878108340973954565702938148665273517906442013534217767025307089094418792447313745714457387636573516777354852415978377091015280872849953564043938911640100971015422705465757142462540498648755053765110710425045811243759133667078682106985563217234270652487162806741530427358971101382032415193427416969603864316366883515583110917477875721068079781119585488897126788157255883232585418598689836564691248694950751579488176121380997110732309583522908540762347585942451156832790766669689068385505937001951885938674604330975714869397843388599154922039634101779417605490747594377320289630305749430148914262324304087364317828601173072519403435850518223167062263808867590159220299110749228570426349011385305232052781208763401729523339159726186809638290671357970956453473057756922464026478560363622295373662857519467172530172113420333005952078275057499282768157261254774983518537365323947008437523314986542740406992464509892176103431256407086721985756618907246132215587395432946994168167364035478134325601952057964245866939915918838811038009369150819134764402977580109715232514702393346552070829900920031835640664635675614163852211239335923801472815173281398794591153823610708381613948158225789658888645337616615510124129377186132609374716765777667504728177032973255636764892252184545443564159930791502035946695798652335036609445945179594777737928308560704066712758797746224798290771488227440261993080298878899830747432466243107438888049767011345141750006299858984899490458306369505076585324214961909889166418855701768661283838771791866572075435180522574299606273085008914900621801806087103865258904009301156226649043049013542627175503726179646975679236295488209410929062003970856320335547954459701115373440251179951705478853224341979418905631764527084427121806976733087852730482228632744503951687189118406549888857635385973787131984472162008071986889914164131861367830192858015834831367628055837089519015189716119208920978355195463125858819615461360001287099225561808361349977719422309634668688144507877892614988649450262281397688260621184335315394429881117155811880509181616130541710574190658029252221203711849459277871896961942255924317310981383938208619053692300458236950826667716013522244495855308475691327016253621240597250711643789529785601460144829967226009540517730545881488381963227512639656954186515043388113029589957481840789781090446619371122075413120508080821835854209074338240772360947435819470022227031791325272666353495702529190163563655988442404338558217849855508756738544705381884206166429324911992151071722836008439948257554517688099376969663187595073797943499657402822023452200795886210024313117181486554419786205263746286234153057917481087752489908763553947987298740781733328515000938683316935719525827394123523138886300686154264265308588882086941675273401975161426471542237255357845347452940024582416045968185763674853494276707369943924717704322248784183071058908801908710265912813763875282691185468115392864297735188918578056433474175682492636693727225690708549040643936114917463745131110046560819873530745718812659099556021474961591076019123949333659627056852006796189731620653756064806133932853438497393417484479368911990444842314483561845282582316854929611908342088704779907401378273786628233201023010274765448167075290927032104219290437494406695504094631941575101920749243861285378829022693495560212478847928723211010396037732315952504788704544401060469184968130474736148990992856402994981294362081195627759868264944095601929781396501383834517190635198609764080502710106536418110110293195636021145382737374363001138230151114866699980813338717194092153279225082970085098338227950170577225645002769486168189325024458616012678988692979906172471437137973152999636532881790425581163456332944753280282366041804999613192128313158984483286520753407701129441399013158896450866278327501516160481726928549946241484238893106106034893624068350810579278150718326849534913879045724909751602466773070454887636611571785773791101309461228158563834813788008621341748837469305050409583857951802509236817872409219591165377341994154390158620162030883531652231571895275428845762311785231523199021615261720540091611662371103299519772169668535330265166032713028327908310478115244442523573627781595470586996957047233475720636878874687507283449201660671618844187526483678202050957719012989520435119414924317063173663504335680277044072422674965683718371811746677906404743787447439710330580452978699266657072382830372552373254113626631319013239205399306628847085178436096396260757389059974759962668466340294232237070728396521949623122552670509386241650802900621122969588369160757297933283243300284089199897173265375925904921686649571231724206110362775745866417927638379692489282636138975689911260422737906533423094339737632616403663314037452037129073384995804333915164717513432278188567631179531998638426582619890745479811534920799467600146968149349627330929659490515214323386595384000815853137456333685478629399310839991078855189731654781876438582598497260260726246646083473283607933801384439376681571748143226147597718447638546054041890711320843115967626150994866752435784121299113392381338631366502293176448339833271321948754427311464631384595141436413784300975733433623387238159181497602008544622471724123839067037312428975856243214005157567590075235532934364959370272495710774778095869284334591802913628361014091404829338471646660422592280221816839668880774597332329668004657537661719498616177075722775696755493581877189857033497475812536621329613014914356104084787113792839384772642552766694716079198228867104778863112821079371911648969089792112342938154949442564620358690538332053794119270119440763700765098690924469045520322690605640724933654509635132360546253245206427512130155738381124547589617548787675843201558353019199159162453246677281069230998351523332164524813689600366499019962007604846035077386753739052172884658743869848644988494066463020671709308288523799511031213111489945082801966065372475600569832040106397902975223555607745309758236883783297355164744806183155546251349703196128622735854248552382700408139447484034611352922561036053034432316643611753916129270334720487860691444608023150281049119043216136255070293915109431445770929078109109860442323320798482115647506372664942812457951301856235288802722104894078078131610808541949027527365280093954149490772427580820657244339817421962042339951837551872077042182495548190884655845082917561132645123970479667693312665843626132050506843051622317618632815354088778776651934672207672145200629382181600148308866782826790149893798536098120018270642550066384099095243361803434400525183349000728313010841295629562694571511216468406215563397437206289030326560828520135158924808117570841415155217429714236913493371559204229420686930494834571857703652667868084577363183588142279287138509076972398936498175198787726218059624739634485334718605443986055776165387864190167000600858202835453853772151812916464993479673393568240855413673132712409899273182180775413078576956198831858376264946367833040504913149211412167700207866888581470943252419005652562849720277040861753331618129333790016036457090944569785365013351871359995275758380042304495149164003437867376159819388626891575146693839388239463203508487036153286109758463741448380872114692633008377494419603260822404127635500615125948519983505871787362331473151511120386045650073041887988073320074399993505713860043004856505587089600924582705565992888780369360026908453204535603949894932538483947863105766290007479704994568193966799450560257614300388240645184300689611195090828401515576357493927030441474055870768705262753097701087467716488810844832803784351650196675611765282187434514398716610182566426961394400999448834400518000071576220982225415147857266645373210450484134502227675606806591972203202175051058786843144865351343222972666748651384278300139494814097313149941011995551500288408705506658099688387051659523032042507757438390911954680518137697791804239188327070146798755073669617433630718442739600842617959891126888050367911547538668993263159736774442689285990640504507634650746930500682583127274590578239637634086502148255943178443667483473804007150993333290059859540113989137499312684673418545929233033572541832023498612526935991445171157379937129326867176379011818871593316148908370062722738989771697610465289187992450066284765967636946146761785852493636251421836996145279421232043143657773811299752419044707166020816592515987240667117617412660165255749450241356091284444180330802021859991378249538757363964055165459099961740704281086191479678137217237451871852299786073798473395959423196776764890755869761053718403152140381035539814285026125890196419624472159303414467153857564763213853091079117375802068204822753702894757634146962456943644145202212465149288835121346329831297040154542201551535310445705808018926633711722910446100223930546664482683024277944070243414089010421516347965275654305195082028483640978060729479556180030764836653821951271525385381953036781860503212823364815255532286547953541111913736272413769655235895275167153001575744190764895675592748957884125589355082976271663641732654955171046708495000054217681711588616278394141368518762827033086600430511873616433538163285209943803286468229039932666802332304587906216698628797041365017793275455593721353664363402209217315602747033470509365702757387776145633680002665240504351338875962622149902707534970402477450726328778546827763235146831245209724069665546466557079504937869585926904530504562243439645382195892138467672768470166497345817365875682317207158651866823845847024779955439596275697596304070624643538003887215731418526412732122034695356202462082452224029574465205364945070244510916610410890913088420774191671098545575376738152637083508968046773980215642435766431176463477404359063717267100137829720393098112560721145308045451479272831225455190861479258019827771164405448994019568300315568269527524701124853794769576834782817931204916151875884895991240383277079236977418472993805978779775756454912672004367601132303882509594430203182479293848122881756129737564769912604032622024412624096088555104689740582572144077786596824407794835289645269378917338990162280210504326962824272603214427124203612439848450512308180604090613040074565581938811719715816067154098721395406180204677174566620474027763111002297761821109000429417554157105745189368557169721014123833825012539532914333246883420231173397796121299598536401223683153413098567136461687426149268371169077744562910042563027962544123851231705417391593092472005642955085914309912468876061617681321200110616566897641516949116601308447340446920193336591626164852954203477116800355931754077514733740830528816547138882012684819793772868850064955473670100562660830761032330739244502943712476870584368213768376450109551405147675921049214025260116627229899238499069433435843123348524609330721220625358630977520481584298126300772778124029913261447850658379906565570140494136736946065558045959268497850989538345208102938513864701305498221010286586006679984063577851803039337652857014096917783760803203318097156107695125284982728119840131045376779222734938562165508331389926210570023932786630330281063200031199656502879004252651672682177255615602704190363752838305388564659593106178009844616983584792436719556856734812546568784034993547181277931059293129526822424642283937096386075256196771279653317899890254917216818660542005902803174710437544850067207793846151616363194074766986747853959586828527879392018435488399897818890886868148503996093615788005229154595770670871608167881384629708839032623981623903224144450500558898801331087394133774226683485341886551265824379102516171293520657639866309698740241076333153016462128544884665793921760881716150487459107668901197697825681486583821901607567916354344991558484309691020003606454961448627393343651767974900812454881820350908677905869352466958246451632962094348901533984886372513612224573439671878381558419601556253542708699067482202283424068008390706643641275644812151796807100202117041105312900317935282476398777979190438351771037650116953831658611372975087296651578550028617078450430127062236571403596290237162633989433806370917067639220573772826180898429127067440461968190266096191536460107170404875881471145572167615051708233410742210546897159441508533613091705977209775788066024448306100717464234707634560354801704081063339781331411320659082034526750106365400040593593035626540365853921510073871509979094952272225805525323499390595678479983869116104292930602935098899955428156527882756233572572725627055413940544541492357124454473511755313944866260772124851991714463574421128791064927598240114089677336131710626562840068336617954982343222363133920552728836183380605458119786973332537339312543744119774857798216814397119975964860381902971118664643484057451431215703157394573272225893574842212284432973240313623912462044067176270881798075783759178584402431673427494671479791196541826627349676570131565724281508734272126988302518532671167253069858674353776556824739718251086646195634884670510017892328692805045355213176797394311082914614357597429823843237993951142033834838507760446409769570528859246067421410045544408308377817424619862439495842378751360542328880305363890855875255537648036952671113994551446425515084678980477360361822254375719607448068626662468288451463632711436798641036781809082598734289891746189044766891042433486144272662529049133176694306312748337872265790148349010307174018240850925097375799537999545111157540797843917501894633274089867497695769910861849395596236110606138041300960599901998992026667910892484111610684405311775090004912046256123508016859987703190643408918200953474140373615147325669718913917794014938737765799860513383664585512315607601750585838625987092403276301324852087263993672559957146915671963244751566911838770730252290225758938368639941718274025333807884630540665324894655981513985899564911724723213162578144413366630625558097280318516782468621947466973956828239035304003852165430660964065621268572243190356485718687944155901110705960977127783918383296419101708366042208084213903044366606560199536204093186790984221473999225931566472354779037869181615829869056423939661684373175065714561579415115774066934096788771866448679461847940295327804150546659384291261666360809085438330675741897226847894802605555716038077071325507525574788976672307273725068079558940457104413854413656711979386143408354416284554596953590189154535331591532914489689709286362828254164995116676738168385137647717456702680190421382477268407526058875521201947881540650578020944834863321622182332440253771090029167113159237423171134606073171466241044562463188109754077743049238495339040200682925568712504181670316555576342644469100807209712895966526111698931536823474696807487689796702252157459137111528170721627513347321274889282381041375022778806710946288431864975789985516654017479629598105721704019403714951935275109802657275776980823837450667613166321444455632473853308747581474506839810712949690336666578016006309752102169546262743090090391277110322358225583805363437731231291671559591796505479680510541769083711396320819453390843391504385884160748921248909723789754119285151149740909515003660716333380052480075144106994798328139406731328201985521043727801858800566249434361430717824008648852229424717266645602853810673787037971512892293680087227290657403117388303265333425122850161272635715571999881808522386231790028374238675452397208767420091601011986478888879227484268246291452519781059857824526843032307600656278987470469450152796854729240096784156139328245762113078931518731058923394461783982467371259341294214271805797246209429607969021868842207420979601327352528170825670289656445393532563578990622914394017491039733191062634213559983845189748919279490490524915083205366136613249362222173686409667503699777763558218841658576309340473649660179869650381464232183448642863157286553570444816407831691809822901896311699125771672173840953054774593456066493690372030716265561816422962171249439465779257326451412274542790783015188529848074479982085610803679285086627089790913142203954127518327976222608762773531000724084888321743012496775115812883692566288165013053602518435862621591976574779744849826899348896756683056534304356062771645504923340562241013257557342138654565952152587622817790323279765951593883360757586219685127773460519573074381337861879085524686059845783258580428505471469129887693761090161286936545420682411427434903155651359920575576434722774342153676602389892554297681290248557741085831866448490976931847651629031073318337982718424223686282635344433972568021754131458740995988632175144311470156172689191623103161345539168908158558546347566314779232909206181231019561389351128201279388693057731908079934607282013904248138057919151008247685775320445558542036442446413426076928582114715806181365883421588364816527220778020362966871709051503262575592528379738067931716816657680175029160648080870136234637960257211285506613682997062689838103625428870323309026376029121704348747957409171639751584407917421932559193402253163176292859998651370204988059486280252663504158974059971038773560899064377749517435368316050999882128674995234082590161364372250003836617583238941851860947133202038402943666392836559251388644237032278851000874514882368821829698627894866953782397145172241869728763144068858482687774600041338692608621467495634006308965687117412540992507785474665711279472442954610951430846476764635635376591686163822464696993290158660140130579249511880334415644554426711763621904316072099920091958467540330502525326640479905929181168751819642249158028151460682223981467160276196579675761564754992773901263137455082513306693378236875539312240830237284095666105030478863070364309716001062051537967595404638513361135158131706095895462808019895437514572020228423187526527752431474907765936623097849428127055010257006735081027414584309090860240356901177877759346825826099924969438064385785610753925583051055381806760326468900117563283518285664704970378383931885083009014487127132049885559576503295951413613780071616936501895592592885756614817582922660348366202526601333312062288823964745271365222320387471250345976125455760494623174526907141197655091363933446441492764955841686177073915014085687062776410984393816770221656933121802009073775476836318060113028295916040297001816943749767690618031168138813272336437246062891931416627206653408289511531333140634625685925558932759545983531807865600998721380909374733554725008436328351773376205710928778842839013440341289218387465748635590346108430011613695611637204194493193104308701524374790907129751537324724106906316831936487135273975806264588053653305931302746719596973256377990967375493408999327944422978377068919354209684444716619079209128802284018086014263574839202991389400492488545172542290786083039333849536626525899935737525327715924315240227744816996102667887351376546378185150486311943681771409818261276836398488706105371182344275246533030184661545185788533441159594825356788978701528369967711180591922415641667845893329309046436882253815438635152949684912076948001767166347010662992827631316290902348908686379559326923428921854211036766321074583112027242885077913413109810726709065647084263997652817520540196275579617757306176735103786080866965220478162094211691553209587593798668421760840956501186735521814655108353899260589466586122635284609300256607843260416123110241941045774685874920526063783131974657686041455377484782106975697056297843536829418593308500676435638815366279141187510519695518489198931010314571735416312464428507533172612276367351262730505013263964697037484452891248602219112897755904624172210163647572112192506378093288060997140150285277870248514741322684783887236594430911123621683270768030791304877141322669033682433805865950400301189489366925163398200599033749276483151598844328146725761745661341927572221483386934990483218177166228605246060741952367060584227865014011391198479480020658482026179184977084753484906218398995488774670127760096551079014161538674132256974202365060148504351271885509066931429145887757650639155122255145143304403714880581493267350699390719483321032407510478639011767034331965213122280340387837472468927119858855054192414581383281013083922146909557455777039928079435244914359860170264023550442538361249103551151545657703091421822559560191239379086165032115856925280903120659484206234796474586414020958875712690461283903656528452474855500626848673487835919293713306471384737607602011326887642961214028771105762464966273091154176880242084653516985902080585669249688497118005782143306608601422076927880989171750875758726598472756405879818633846929122730312126863905292464836462704246871053843554588711231837323089249695582715256819413176021537051317122416371362523771753359187627702974184324039509530358221121650577944576613773728538114333052366450357040614075067082844293390645932760641534618066978197162766349987067684118772189505765724007340767261100243986316010225330701659538401803045160632018834732357064315878843225577136027157289559431465594094696848212181906344252460389098575734915154830591888759673813677660543832173803982365680076026381926679457792553956808866950435157032922303938013161326642436888691850951894059377833035286718059890705121697332521702487818056362660748196562853125906978453365575175936023137576789934442330271694667969549156965485397558476556452267706888893978254917614076360982323523187797038993970726239981480740681787111667951178906419532449930978540086996703641128839678955306929048591701550701121237870216791878032750836122008585947355426367744450999559916108514257798047732906657004878486279842957521644941345795055841862410966303897315971481459356475828403535293077187039188500369431564019172744960542678915085605941880655616003007036078904838846082678553504338219653808932939783027914554303262379486361560810901065561597048856803956408989766459754450275973909359889976132157235458820145123948009654314456710968389171979378862068947500963323347010703092887051938643879588731573755247063049081762642176720016684151924664633359901064450963900167361574693686698830555236883184908793662329068999055264429186514877236600172331925857580946313677083223094824445250793090206237786915743621875261932874010257992810463893990367103109525530969463382141826225973315828504882043637943251038557311613906024423606963221573381422795199524557122784521399321578758642499557878719749415389251031690372156428566396164321597068313840326651049536337350990297283590072582978399779614951009771979674715735185066986911087643526951469919856081243902281271596576793404289637764229876376860098058335534378004302793077840085389809828049056066204976641598296159487019808192826110400177037962143333423122797829168899937140286892912823851374877968526095473522437591008267673735309187217613787273665426947309663752677012762159667399714414742756289729959090185108774521126675061003136098747639076909373533248466783634824924633912958208371816884635148503415403958206624686989757308796373129334751575377792201226792125240224217342576767596303078309205715371737917538678560610278898696837878863200440541216988532543498482571349625708595770769522907060186314051274475160230510464056463490881313373931421955733166727136164062842814610299236217433388346381437244002291156443188588444605939376352546713260126126343848792193649410218355822489856353717385110887090327964537058600908008255280576086114291747915868935347495637819625381369273219822476157579431688354311825402386280648955566526579720173084158501177618124980925943856540529344895005338589687684309408553482663457606882799658678081559654877791920740345095982654087365803525139930688282205899940170648593809436451320317803673449468290673454236410223940766847335712788788254073949981714209178557388695304573838297074509459402062473600204820106567102620960724219912154445494326990470900357327241325684269537863726484589238970630813567455193895880836826936653378663606350074452025666867393478508564574996311384709967570126641633223479998517493295781746690755525348630726300763183679538276723296290780356152814967707397406117574474393442961440215575617178944111437563504423382978079848492975579618072911177653077848813498158014677710909026626275696616197940143197469541965438332851429638102222647748999991493042737801976777384328198903139577539196052060334846922840559468654023993258378274548122229794350699906847535584512957556125404181589347952734943088783034711310956775347850996823042198598315785209540084740224144100547986104949976220034486136803563781936316762840155605471473523951561631648387097324026414749420348485609077810231093608288564036642318653306483272274733598406821208061318231697989402351426650587270034575190981331692407030086131541061606498495934706541285236665833067072583229085413504343682475193108893343402969262273508286799509236757105220509833084009976984047746106829649947634386772812599573352163181359750181022461274357156841267648966103432153050754536778995365444719468694996928505730369231813607285094211635394730638700916873850383604343908160060758858992357018259157107707194928453307701529943688141455260870787139763364623225985768782084991729937306039825785987373663508959862812744672140686989974711816417500696094515018742166498409039715448899978664383860686934970715046196395648205592814181927384218330034645576562769194044275580449493918746984174667283613057022723979204375191855122823534011906073688128417638436715292726073585526407842132940426503868896826455140861824779236799413029992070659834755112348531687677241103173930459216310464511209634862963973702381636684965863175811910759004085252642145737987658751301367654140986710079939907352729282495987036936830536543474198198720528528237971851005828173601778516142250078563233287674171892814462756013612627684363103257481973273112528931485861926150092198041015665449000498597360930982612485194067738839099016536230564716001536941797623907830549829549064094706034483975852097925444809385515308763295640658369375005303010119481954575487442729120841874059010994304730924334963110128158817051108201319356301708930706988888033356789176370430961546737687580290487019835872895226332689932130479752658603155795397378858016157852549670728870188004996112802069663417359718555590959931035756851107355275381305080442457173678017648935137584085304181726628039789082922413987273402164681608703185581182284784253687800817756535707494207330229325498490308134729441266611348665001393625028815587102313353938997931869818950967726495290898749792307841975869343854287107810226045637281508179576842523862325887191271664045048246665577812185651792747856338121531692019444818267156097853536610541470860606778584335878103265857285284952287843902811927637619061435151982644407759805002753042458151761511381663764768661822710512971100234921018421949266979592383159433052296138917144647297656690388873252686809475524556169065849111633750129500599772542574753943145880933934133765116773154994051319791624603160342000468072300879460599281861465463043162578822158644889533891626224998421950073781201696327631535146078948292347770490552761490269932258525971386293228308595244293348173971406723237249054599129757672460846858333501883393071609861604107775641009783487381102860624321547925068060827352961104296053991261196990808895397971437532350743632724845254068871369182904696795183801496043733668437388612719778041050216309806628409065871680352047868022460405345557573110875075653368566661437918574899459519468199869707044225846055757818833092992564239480448306671205738268068473083277902196798407082061056107741172700335653132744387137592675305660532549431000440360042104760823712649034093559426351980120131098890982011256265345212830952097365692545900279541559132361946027408189516444108913381885292518445257650863425887205599731467055525377307286688346494582472121045855960196372811370367616234679290064260480157383062386236034665106986031482124712503626960106800363753094790008437723068361995026614828308253683489682863383101322811109554344330831231588438057540460821979934991587584509971149204189332988173927589521418852995225448400137635040910776692560745862983994806985400746926683394142283070974083666839557161330703468788980103483379705407184878286201375613093892940963994989723216786916221851115516990763399145063030557130764607278954623018875723077932825559154619129346008766070667571853474101708051435924528401298621016577275244077013354458182805147934638860792620148215588758281093095171125710151763566584500882573995996528715415695221133905954959248417791779395918738286628172350421721254376432667132214900919577942234358250627931153304765836254686402109862183001315704351180704195230063771871948257439681479501442431934410323514338784404815692045269083109801658513090275353028215875289314711646705243836936997792711558421771594156363437139411860821029111840462808527737395607567806155878810795405306495910709077316163079546891703161933424183435121903333164598219600451101662772197786011993834883844326474153863347456537503680614193832186144913573226006141291356255147455578213891738770502245423533154644604100372861110440045408058799093685422170093366464475124810698684704405451438122281497543762887897916138918131612678252480028439386922448575372926865056065551246271012718708300969595643357905694275277220230122056058411339680073819429593579288312178136253065894655353347385044322384391402610269299444299923741467318168579116427787552292010411447304509521787826714861219624231419614901043597277033867197588361943072997510069599374216025933266340777282843404939251606249916216654636484302789397702928441106342195170454291064830221123786032011251138446645881837695687927916025614099406745781152951151878830872778113712321576925965154549494616724370149946523303911993973795289498735380893306104512590384115808121371070674587198855185938260361196559292865846596544415844586345685171517646183444092420941110917411488228558236447159499847650720972011074430973760891591366530422587122211952349533953106626674900734079295982159104715346892970708562950141359613479164945015209260959253378197970311929402661042177055209395614871352641531907827309527535605520725870661466519561261545451564628334036242531732407178117480577763456389659300008916551687760313528885399796359165562888710305957318278023635571791989008374478532994382668123720925257712625831255101636104598124336037717972913216040544536645849325745761886204023613672547278072028142616114544701063339679906587443045350198005372488921542205322950743242358077591116958526369037777458730845264392815229812393404944599928203482348409039091935080701080699353785359893017350723027451549775053103481614470925191207163842751475289503873988804849377005625028192369648495547466414725596261335417065501663888819164435436032611603086907477671947940882257680505503323879287830501282978809147695695767438384805018840770179686066726667496138413095893234114357086748742128511950727170779579929278810497163047740570367592631100623966501631924665059846582510050628688109748772389077939835333787977017009660987284090371667805966166043797912191962861293872680053730504839314999794232288256423098944552456563814348342416048135407799638305354213155510622582608457355910199525694227769755312178267702913347961890627485326442672856525245401147675889530416466910307121873357438412179991669541990274692461948185806994199913664893259259628392970423062126624999072421625982723583171939815039453120418747918787605047241781156646729366888588337872708751667339989957231713701895045600660994636784650248536135550230616530086996698749987236968135549828293867631273460147487960218003640445750397140970739042958949265792953865690126898416767304564849960064094895862130825420532451582775589081508597734909571576986579312487379370162833323872698805412729363364843910638122923378777359098553209847417745003579205447865552462126320836459707061110361433187606818429725761566848948577615779161772779192159717214928099649792704805075167707708901035134601128291760506030219870359805640950324952396543548361202247380607125254157679141243087784604769457051089830789309431695099323189622382236763641484338849206369186821319173135330607464055663626175681523415831259369640610642346570288616180116880465100821848423477004845389723082504998252786934975599706454535244209113657585990723126023454493550245178502176266834193510078533359694018655538061623637345709266647425873183373772394369278339771280161478936255343158031564827651004964903722774776664663402747253158448415193127588375670514333821628471763464947821069320576748571058349896210964090041934502417669987401030602791931247724573550692865751439505175800813377816809336939427678987801566101837794818881234212670688019151182542753576116766347642483217703276828102092994660335796520795948939739170650761294673441172858074934111856093572485373165749429914835505208007037153210816986360806562373065410077219672787088731649961189194346102504895497101691587850507723988985312441711053815170211134286691414629050218356471521580475089224140538587792175742783172986046125769439200951271604850605887909724781844622116371958992125585871542204444301323196029717819344822710301427778044527645193492168880189885251306931170708744682607264930396320853873154746625628769413174653009401074114531695969601616530466682837405539116861516141966084990092987436602152928534497301814006583396925225818718663365924286072979253784606243327547991098531490186953768659296117087696112143193453839716078787012511234320307376550238672552044431104927939704705951001741805855837134336133052111081831070577544654509338096824999774860112567921275229944527352966511563970825891374113091010389736961970444991582477871999534922043469472926467527647879317749652979985151466362309879893639618463015608749688441020200758202319277645573915949124478950276934951246794926682524696681054022156435819928276270934928022495677943789916384311100429966181754686176924836128006290431529874628263985863568424493256725511795459235008043012932101309000025817061031138725381678189127189558709182044095558711819445940233964040778723307688989017080158019884575029632978572994461867844818428088367941858599705807483476004617749086156028468747686697208156448333157051060789599572534341073069861594369079795825691835373117276134906553136350903313440704710396756392878788835189296801617734143564656832422333472354515156500842504508352275007835597946096242332519784489240962930448921264134682356823927539116447357164898138449525980012174341634001464812920900502603668079526187368868770852473082196419521669523773404890170093134873501389527003361579418429156471916546715870987702705940397462728594628052278080702987165030019662084197214382558917160889194430786410098507086149094518160970213579290281316148205795191936223474079937799284495120897091206085031214910186058873282041171332817349055580199741141823875588162915546192937591039455648120591015256974941976190288626999840062359398557829723645269932493781668838774390079434949985122868897106534748779558854077217355302067460575668750142435414065853945925007758833112940133516547313253861927433581690055309830297644711700083111225459726635247555026500533460053354945502367193279286260571420221041274337823931449633368951290021163300444913014288775563119990620088518960206963486298949651855926899856749225679441501651434529136055663894623066254676557468779974663419300132553561600411531276081903435246926626451864299112279055896349032105090612706629256441965443194102529218237981653476249753239717176394033240598093286686735170491023522143318994444922782170355305238335552322145506839840918779138541895320998601266125471411116112060113041086480728603395514329959051017430326960255577434788947352389161021286560520716730501251473583854641743311091108939750164840274685401727992393314614812387846509922873719900277700929969066495547272819681912281693292839850004992999630423296106215787775681770900190196192577260148955532580814290471408231871691935182421561137981724589008692827808607363431191739033685985126431893630770695367127225391811375082553472159676638897930301668358945353463037111577381545255038198043615349394402100524721800580108082381805461203858244251261372655738336681392336517424271535407710700888164549651290675599461381902549241812098780651457236719567183399926723140577374491633601551289237813910751931362249403650365305269274801174190019499105998273876231124100918409608215268732634933127086203878846280899066081838818314194639543355457216921368654812741679020880609093711504348036897224034674962789617950030850914162217506090493639642513456930384907298832337597050083746166057712828963899337051646544652531921943547283518964358687825713364398893129653586734908589580032826771471982510389173078194403640776995008644684803360051301043202356185620239212849216130813956790042213709843325011711140432203578999684773811597758241918912985383976202514137158876527667802476607068544657735047574055449026489402582546023673352528159425026059912851370694420859412980997229329406707818975632880559938414294157892619003284132214051926202146398146522975434405922156579521588361261416525331207134891250426879894539863446087902518385025489993225075849862016805225914729400856162365110617935056605647047157807171624090288729293358331757870267488277995844907102900297738330736270925934170873336393855825575269938018296266784695979391825773932909245178710586755609164584412597837002609218166598431869276061045913644996617137172221377257002187894260307133731823915859965992069773712928188073239571567051778195106087855107374611007765097050047121417307560600410012411116200814071278994853957098450542686774953403109520086564211495918548684655976165903637140068756872963847655107807668758877207332971857482547228097154778769930871926053823188927749828506621336943450695288553848193551465340526052158902388632800973936182321828457654653336034869651442265690424470853316319882675949969265287573499001604642363663628421926588769486993010911574727869714126667941059366001463164262306380432700974027447365436905490773436870463603125975078552405864084994650983287565653761993678648578421091895708977214515251752978692675386000070647873386922923777573317862899582853419099907874766646442788031361217715062450335580844060145378236200866521697166202807611250652870631650712232332511346387211647899037870823435433350687825672917621997005962156826985520764665749655483175934335227663972382499551498558606768936810217363018603790977484263235677927754131649464631796382218000804614927449383370936856864547694939803656044213367677789039713454972805825657384309115611284218967871411920317763477208027309766613707698056584700037270002673743887059996850873467957326426245910279294966674605234064731683186215026275565163700082173351917335416045978904464846587832806831664467933890759982497505994796628407260964446699822972829800019064593745395959645440166554671257381059452593951665810604645246494466832729923724530435113983191016648868927682327324697341262277507710379584550813958362349445983898902305325252098646141146288326726014144478445519244050272378313423064448629899804423657346347957579899671774718936418369455818567050713892422319281080740225697872397133789770136561216852403674097263952953495564332931718323466026199512414356677183000180724104861486432305006324674225863810602913064275804998652423650680336384067731355410927359736002143802755720401851999354943623247442789989742717951823707461908282216021852079984177038197189326057701758747512004671015951493179834529271766001750569835015148382537516136946229170377519972022731684317394662465600565350040708323809207384273751438044509362759034470069569130692664489811319435607363745247499770971447060728541198740826730718819961061332350391555025636162283165516636935434590258591112200704704140246538857349043768422494283106509488784825289605331286803613672556450042012336332163263133442037227500440616383363933579762196871273106625473903303121721367543006932989566360460437684546793928505801937272923945697236874071646884237388504358392927582479511679527534387036198199351194480102438710710379128042772537238614717894390972003847431173921544688545089703191760470287993158188879784174551858797717889570287665840298454683168897524121771544709704908241950620375817812940853648906320494258110273147537324585857572577344371133725821115098540626166555426450767317044859020675125012343822062463649138260443548134875965529435257849414590733453942114824004491988485500010663955286092426547850514253314788173940713151307953137132738475094420201479007130404731913610332012398193353071313918578258330244928590853050839490731651342961751026934669052155653593071020862048824692196134950437333492864772087763136215868791871072317940764473018167953253209499059996005803757634124474201649903537638971161916547927648816360344180214633981598383252840285699908930299286600857596862785759001499781453453643889315910349860293727387739112327774071664199753639996017779609000801815039130077203133729491600551927678991006236236371473980400302596426824539735359728203800702169259574446163179212118698544701837394324559883820265951545628406120458890883171717833640661840606277879215089808970004920385649563004912457836674750091885522756938264063997506137152478729675072869743930676523706744297741796063525167212064868764530364937920503808688918944707123424091740577598881407160230567131700827865353230594271274532063887526144364873500433124149124846390614519575156110436777478675401089889072342278183312288124599037434915477786815603962587203063005771760283597341525244264870952778034268617033560943073744146968727073574677602256110610943598441501787367421864222641494866278314258801320611527852881806004960807079964996840705033571295553597716244803953761094542890472286432998507787410616054216199891449100486532825113624152456631696696656935385745575896785018467460306273840100120788909059883256418478678868747326796993939219249331221197469505935652285027784214236105480962292911325339603124407740194381628724182400012271063676572706840755959742455339526960232508308271013277030400487214893068284026559317287817287773394443275467612441690084892107339833940817506217835304381083057484954461123155769512457746944224621964779698548259154101545962534367977145144105026940689410965715887478740679307767345755204114481613355887715372146875615685969964941407103285985277470636357655330951252298228097516321184476080348806715646570146953989724601932861591491422958388629762311407340419205903215355991490109589073027094779717781700703771546817905816339589975842048827967632063143579293006914280110885033429387054345345979130706723793355461217128918444658695236697056386838294564495260223296925927174686359258004509568023355366965443323617772090820807223843978100814371230663390953241290341657482937293747428888085204402838384794709714648200488305170964052011288805380599244137296640704752134816763801017194934218390173969133709975975340168221776191576493098682967276923202706877352064027393175604658576758822445306818797783300171262418107153874715481044044181117778118840493726587921666227637505665627614763929533785985751237845594431883341296627983601596623967531761578836469886228841323235194846234960480693981167551305454941806047990080179870581585421232281844458684040136996772197990892495222027332674575625240986147644855537290915041131658975356336393281108465417074709853291605091644904864251177206454616347228041195700578139826925382535318509816234728761725423972582878193726320290013808724962653941370288722175334992001382196818081181341455748347643623559796084448708605888308828683591764883504348582679598493747936946595493229266805692164667751443748335514847151303932850461830375124718910749758112990219483889076502323873814297391940446029319349844534587906813845660739501065436232385188885995396891197443297859632568626927948175060057367541199360618897614244161601865090371383759492059398043562425778495445335279201658970600875881321843735094442546790399739435201621044456076753088014703035594968426717744968634579324175096133773119750755045746971226096055536362706529734163788050704538367423035360342830209999871345635708842200494997024839756848090019886112076281291399407585141664021260839845491410847654364729489934424445043747853146700542125581849812541763408204936107794937887901131656107487651250928579156492316288882933382054952908690971014037012090342651627433347259129853471363278100964323450323739510579903814835830976789599780356487390880639775103586345415853579006465846291451519656149278248777727666122828651401512905258468577640313237128164757909969256624691947435834737229423592190352610147183460381587161737593850698062042103613014265361916407731240557196974626979725175723186351373470560365038598367684788669753378048887801316355885424091398302868155842133804006425850430301220367631443995879908575174130686356187008093254053279537192846701833724794213527866315533327496787782293782722340081053852071861230111619993271607687411078465206959155190325743418734953418227792050536986247309433040018660739393579521275383356075621331893358938286475656750828064486956553369458188324188576161775292690129853342116905083560342152101428219340704549728586006614661331971203543854558710155996577587866254227458788396783343270264989781615610077277010140765801699396044126082031511345472199048685173508073343851920288125658113293200029320522011825334887928942940674861603990861263993273471808593402759406154635650248089446113661521666106436088526706811798137058891270769007927499561501031398652518534072957524344433962576550665806170938783002498676780586396937367937634521803961667011229376033810739812050796472485524421616707072237102061907199167187572917927001376206109061681418588316733434805027864911540391445187156264497857259213561871008803532131954442572691192569045465986579068208429099926823385514914877480895516932701770473756369564662482247328107694868963465482997639029102162006254577477208293854705085237585826917304226570733322852657456707759124956962469400263960684921314710115313482511335878298171979280807219600504404268732255367946504414404750435724477206067961623300603729670538684189213247277458398350209063902376267308698034476157994347458166586991793940324210255551956221138580367425053150024572195295214418587773157376275603811654982252721765671986815168261184370705519166533442629566662824597677371649822829906814328817187312218384755441874025486078865034790854172406138030211982567237505278901285280898206705549328117892148422017301359673313025744801897942849432476775527868721194885724026534207039720586539178439112280637265472432143462930072210522065753811878846384941803233174063980536328511547377439055480587067580424877734736367198425333633757398934899178003842554964284194882002329424251450808016540753231354493582613908795705402764374289436589874337288642982828567492772370827741433235710331514602440965233107685647752148031933305019442616861015184302452553014183933172520244734283787959358062828039769622893835620003431626690680538883333077159267172856346582479127138608713219751612369530253060867359318946884996422850060577089384159453070458229982240982931615589429940791422348339087892322552772358313087640930275877069269878914606523388344364107098824237018805355413449378981668864614270705964001710139653311535476778280683911262211884747283625525840842673913341128554077090425413663349108040017852380982354695121314287164818272284654102515106132411778209535115264373310949902196040992133519190572159577577977136746484759724716157236365868173762574250093034444442787762348845751310833232729126441328466201840432892995742412520411153862948051572952030891666032802902584604476455966903185553426101303226314847828756926479411159075832488299247516246934595083814933782596495820995024511244248425465589888174331215556856544410926532693276002333321858518529410055745826042543769043258414962707070800592702054286377943515814503015939789469052928823828859018525581026391875343289409717364771324607965434137631692577466475828740147378562710679078390205864214249329661278865775741064340850190081024083591915201769157682927235414764054833991756422684073433758466070246770491304366365309583126525573131027503108261284335355055023967343007086083134462665659388009289686844819490752855282648544502929893000041053448453787577535078232699892281837684075574692485638951107692733891057562508239573099960474426834597250714561591907984866407617442164902267093936467661667970802933669367203933771609916439760833752478670290688373342515107176260632662585995173859839293998053793679338906604782390012243789505674416649827266354833307273966536332166521527380024147569973739642367915121698225064551985584027679999337091104341325355643184424320651411233505619030634152491253420168249399001457503047425075492860948089873363011246127232996051581252209330190562369128038127114996293924870551236491897613793000520916595362649474374175870874034580383376550906328216005693577399845098399568126248792240005881515560465429029347609167630901951695872621140498409706892116684322273371017105032349790368040045716128070190803988432744044489460226339329329652749661763545556181414044177943783345368645452503382379675804020276307781975655535494617879812133602817218464624866896623268700441333577765165412182337177998441414672921542908347331321919572593502877711507900824172654583962801240688992829503412574392988467563321389983780837647660238609300060423258283234106827570078067849715886758341446269882361324132742292123548669532978961450784983253617285430573817764536885416161206013138311605493188878395948313126477934953860516717385319748836030735581821556964804020549144101896247011463368606986574140899155092385223213879444452200670419564558305152030408451812267402770394259574511225144999674180454598490140899196085773021150670620527752639194627308588075697471272674358730553178256485794828717517314439824193027466540284144622591013236857684449548573998664246399688959727175456788600869648578863517544177820469873803124796142800920151504699212679056837567184003427083312365807858802971826038909314411881341573308002498009302136873513872520474596100483723251967846345206656744924769144997397421067645661405506526190129250857442718218124972880244201322613351085815126131204666314262220296815363358698117277476863180961526448826085516159682218486205116995023283690495867454849233787199352225764709989220395007751217558168086737701538915413437858938720872631111824928595584232863001089957018850877953058192852614314677354036361534634726153317693571218976512466847405970125842637395310090816483838856180879463866584795817868334470685002659178352884919161076033600089187350492275043686786137180800382844373318501878314571273949365780319634486168939478607891087270381989887127139494444995192101742508164600170378353007805831972821497392220296569461917749817445314775032351719532149562596805014854163232052910526962127084979684662667610136916921495895989314403658886196953405966731890466960618823226498373860217779854245691682685079821427065246514635135511288192681744747557790727313861933972331827563673740865425389276934980982468864107081746111170388326972741881423884837748652205833728009121865809874538744254691284981640991397137668546264237563122685151928282878193843003504962066695376562863095570921527586816844778303193598970532021130665264431488142905727562580577198624651057480975173329839113727549363909747948539666141730305118006471625061752366173202051979265269056596480399935712003228972659509868697235797871343165631326135849009890731890018417551775213380647876134912263269326885738353749248409768843562556658556753025878416498061701797706370673569338342824163707876378119598950042029553566253203553121762980862228260598400700127014160233171772324048522899062276788186075699755571776812689965005596805904278845435205168263259465864878503287807486230822994869972042133319661167036097166582818578762988136624237053651775316433257119023275011646812495522503527577324684615276735983399924490328211075222519618564542137227015496140604887145924717197893093127274653411381943871326791172894097560187744291529943656881362338090953286242899976277823293540852574589690406212702635796801064619348779059334624787832661500193411086568392801569303137913063410471572855506249631656496968260807953431718229550891673564942452630337355157106005542562963853949503137621660632517637430994970185270353790079400462565566699223932766332262608049854512344164990221456015212762330432664215537134710936630749418990672932683228049709160623306980722601894620611511341372946789627098597830928280037851655683662898424468535478803961346862221406123451547489813668534885891717785211503372805798726672052636467507932731029538802127334122207119220767984959276272039500738230324878597892137064787164465536623521378589927532379199845055843002752636708777172132818761755904944556666911207740796370631870627912735942133626450156898406665053571766131031524245244477972191419796092084809915643317992862310688908917242443814189972815869216885217174468247629847973736782339170350361385774396031900836875703529460048874205247364913059601365599176844161870287335190994890195173309921307651956994437092205310349342398628176998980668629844292505848847876194494593901447655517085781375527637994174731404163446440349424672904105086338237873499933172334079475989799311591770285625605121423423684785412071849985545896920272993165171082660117530238700553613322861905331995634291430494499931725290540410943104012170851284308637827075597045540681319138897593042763440791728567872966867415946266094373638996117581371444785900328782479353017268252914440693350036372166341548246836381280659206412427527270563169903477218224808370730259826426805135471341940854541657108208573355268418793202313672663904231930008475727319964184964246581324888864102803475079275475677024788054120183581673418991160673803201984600522208844066829217579561195396468889584115291969871486001793869741138856860115519598185737967491158113097601517904737800860918826629483000303757694207202503259013414311252673532702065727343200523366822175631730692007850922076009493498536505834455229024383375933312805552057642039857109021241612273140989285606606143774659435099064109242356501863091229652712165357714730417896439133038475564688351136390864446433812152244007385800252622156106107405400396793830384954089661024884569667752571501867720436769906334982062883695323139785125031302301752536122428741232280152857752157504842173487551026641141915056617530343264364051809207550716334002877988295257271869504508237243560262494050383555650077069389227698003045029464507579629686844991973484885542109098282126613957205886176906328477475011216916751269138652598776471054623338756375814230975166792862076370764199198673369813889253208056374502348435864670139731703441873034625544065324957506204629835096610848110331003601701905236174370725337227423353247047828504438843230755032135175482220269332539110642743518032807326733694300877413860724131432482892546813621770049104136218831516429244018997976472928797056653142627148848969419414411824740478865702523498909204051709359184808033976406186171181871316567459097664107151219568672289043625589947533457955190031435352974280440386566060993279765863844805616594551715204033718186323674914161972101067960591057904565689338202524750955734110154160414693015321728467310726839521658871330482455646709665940326172130572336236686201915163452337636645959723711231928473957736438552676726156307232876854327560523346543430418887477324193168914957687019140468377683852736396720541356974544219256325662689859820166248626120263732512512685248160785890205262328273155923021116581739471579677661587536893909958423632228495322445627973236616189368698772233519266334936111462391291168900850025522379720574224458291541612929201803631059890276637262433433748615542623137089712819902758037361268942539813050353284329248721000884622587307114924938148348118502746546220093745507748700856100361024764970867863857698289766569453755333242810656142864787673110832242023588442556714534263792034809631037414309503170286540942795472362503170240132637449696482137354927309708775071870727604137866093773332140022665939412791289479463131750570011432678647123852521421715333650650603584511925027659485681581768719833389599770644990226872513536146219359676427872197715605812928185920283115935106053245376146807329999467671663208178313203442232655771585516231474171191332039867559815450080582094915262347382323099924048856743554424936667057020523885229486760256930876095145396418335856718157690159824817235986264950943179249128163138036776640416011070125109599690242031699983081533658230176422397044718243452920817554465988626858067163988410629613744364637740741841261490644436423117274553967762114817330183195219847743772432400222653140338710903035223148025891470536215765336078462175274505693120393623348235615056830214897370436757800614796221142853762105111744328498019079275004333441632809583345619600157298842563124001913194156015063563396651006776949774655071447927237397572869013552964647012694731555808387321396097317485097715038134074721957420822635446389598069442691369595724666845249699304262182705300944576119668870375341370834111211244247916546177588099452759405579038227847754336394419673772646943966784550288381035023288671623465660712401035434352292630218349322918521185832972521221326845079610249045410295821538469836212230253368536909898083073099478361976928289928911017543776635033360992186156749898808114917841812232639877451277661985360226917065972393291527412596602505065359229739443158362552881652385672555289511087503738570462620283436738599960455968561709293103501829619332156471385661446711979947032360121940726736713332891298166680705546843790855070368702244145540262082463179605022647914332412648700529558901291385506044468894035723383745261343034494891790668901208701081451840198064536181346050645763154575846936728992104604746468025845411405623694799786012604377219465556068347381199690823074580661134480192866088423530309798725991392607841696251392456145171430305080594156580777158104164660768808343500799262255900503157766806031004056973782274936522232944278299789042125424805936534486191762494946603558937832579047786772446263541551594006365128959482834726959909174350536176685258306584974503101264190283750181901864082768955105642339418814559075061618851104049535275922282311439748246273068222731576627076509132794534973198738990570967123024557076733719764237601168354240443555766816017186693419580197574715304177716251049051219795917265657449729396162683611562110385123151371464709041483912243436994325721486419785760833810734003942640772718267719252652578543547924669773736617744113962836393672644413579152467137341017608024073948505947956668884912034231607379172388337318180928419163849005992415039380499094979666050020665833963937591472220750506131624858218830025255472312842978780883768039775677875839774875541294293356643874422361140938195060176790243092928771943580555642489814292783854841522287345087680408904940240504819356685976905780219874487295684593670443672698010486858155784273404819656377882920393381781126778828081665493647752801653803572083297903604278783730874045962350619708145866029365690291449335559509705587819696153564207945907285861762278554979254792801958630505218540914814937315934918482783130786423130762847341609672202450212184842479526250681513450190210138105954269820085305741301102659563155321966722928631422554826712283939096251307945380207771560393225483397610132429032823548574142888830162571381364818916164339091595919733781220350857887283164552517795141281778003747359540370359769517124205351177277621056161602296868145305750138711691039546612390226672597753520788265416634063326815047934849218011033351210428583783182184478155793504461234501022493144858172758772371638029889790972925765260329470931197163331997598710266255470913346944661386515051091546251060290188351379021063212616867596029178579037568384290054392448761022546821991393938418637502020355427813640725306675616491541423716534357195925808073160929244166309100185394088195767794287900768954757747360002781766330404614066317482575130324664293396293098115509623700050526262519523915943201937337346024712342451883250320371880761306159892646405083857485943806140859924212311762287911611562110694983369981741108202266828362426256861567545258594958293146333443590224908888240218146772003842772447040898212512730497893432018038647074374008876986242489170400423509285374972313068946792601639375310097684124301323957837378752508241912590442127970303265750616375261441823221235786645675934552049454327430345151378573266309997032595922686880189973001903565457463563190618772172504909062017307536634702586303466725476245295514269881781077432391089113946006955457524139744839887791185782608499308138903531748823753927908428455427815099430717973287584750547041948486460550375238366400768907154485203630250514133524721239042585538569633414473836205338335644421587501546640661573426109471420625082985558038848442801590289744202812729005494333601145160400380155288356278870376523560657371697718209423692319983915936377464528873955742276770479563778677616578391937732184528804151825340483014103503786000011698253511647396033459209577194328385315867725176768399097307116936464977511727322419474087587025511368665398479747623198315248465788714871428565348906393034899407477860008820448522089446209333937142557711995662840844265933970992242756203537823429028831012353420920715986850274047257590672683435980114144997228888639767261897577865189575843127765371913660028264374670294793331789529239805036878248246186514165934781347684459781772331660316471912587164935335544302521370793031354604515318272783119022571856372169156739476931517756027246859537343578574410363957355396137334970449751026204521502234689319868185959444375276983372290475963215301001512321885175029755290677283984101547680688381760295949906508546952216861909794339964016276057917621139622804384270007312525744317370096975270262756181759038146903554600274394484440361480413504250602267083172507842396407216952524836485599395645718380342377376033882188123779660560043339515851950605247676984968339721165552907006348654867325177543621295468143678668412382928708371617099708381644436108182864345514679421050828975949888097425348461738267322892844464319777848396216698286313689133294451732571459102569872175299010084036643110641883459994163611481450325635385985931676506496414776194539566594869468542710971121779180517947154874077674782641153233563502279983819215434442256771838559383751721892692110275995316420684277529581171748321404303077232425974180879565634953451000827070495663322679326117433413358097733134466950176062325465863538458684129633459689693948503316928987585835196627624095351959829880232388180671743081783184657692443485222414770622540433528321927737774922169721989351805575260332385848248517673417651926401306642114577760546393520190893555541065943876491973825164041549828279149726565431188523647387813969876706393259282064870661887803151716304943686696669311005236440269338246053127628879313871530003699461750479880718031915017861515082905968680613238085942738635944098592073766481023297194731944547962988824782797380613648901574757386879860287757473071635881060111884419307428053144741221348892660615091928288324601225603280390163661679107342990243640470682039737402366993338898314829020089177256546174293138531275997749146572980563984147689916099004920316934502209457129558541734194493369434462947688704434090758024127356162542717969602282092364820565513564385550992495719552076799731047657299545576634467212038671919753293514365912163187024870247469991324116387658461940120150317335315405594624862709667077418831464797251936356335074794964498125498531499866373163680808994224342136487437013304705740249598764512641222556508153731284880164174115904158685220450926673040601840279728423371029235639815705314287276671786185881322462929518212945966379191900666138630434940075447737578856686130708581735711014499895058412261535623572783985678382995091159504404876450727217416666929992543339127267965344941165128173202543246657673500988048891489736687636666232820488810021922755889193269423435633644063999450782184024981066333579660154083904851969276494228008985380785170152542020588342966672907646920515549589379556069193598287023962917657507534259097209666214890531296387110025815792286723163808435949619331609162924019200554281795080643062911641828776962499901401601916982612804932502332249660412511680702794852437168134847200821430788847152686747302810821659231171816641238071728300428187087413658225804137846681954443420679910753761911742527269384797810936713243117669031893742607237982730776287260886255084249396296863271240068026820418858908806820214107270515653548307263115907432510449594708093259453574683668695831904069244576225488838314420221196090021816383683764785723990914225838090063901609578439803276270893703190713207119810541041524557376465689031077524857822127876549722705607516487322530280342775219482234994272817862605900934439905467437878258942708799534864994495618029734469525629348329758024448603933153602958377496644432403158990001765829961036394683687188904631574345738475231545305247466182957504926791319749696136297843980440985123452246638465924116923582003940313609813699723159568456611953744896986120201542289347475435764301791358152083178301477425936143228408808952825875568538577725234463408399857075718473039638775336381739567736864684743574033156553129166934085688003195664234980364303736488276866242331852705081638824912884813971996862660507326109656143165187631623918978220700573232902065211457230257025454736945169443081769367324715040437867531622915585649740804392101529870604407696069869797377816727521332858754810690337289341252881091877908113882244650260297284673445035506170525983691005454325045217929316419310362100080108383223183270021936369150987987079271721978610815676575100901676767379352657168864538229539142982748193353100975870729118769080707080471386049705017510847809208023687449086624643894373524775967877333342402446368758244827229600450533511689832377546624079205622319056013437981574375061251421362200644869375326513643364285612136588118525417202183313442354328184291664388358601811535239185464909177444337521281659914575388300485571613011640728517225729609160391309365109392785449849200512271832031946299903684779879710102909893949821278826315501577206123547375689776182319841115358731865872268579445625573456584953808600819748725895180223845151821629035209116695793015235496133861512057971654669493455747491065825787261947397820244626493366670962699969635152223502105780802982204230043088393306608711388435125791487685282041569907514983164174232249803155936626725735180724307435900439954893160067061652221795795776041695507875697762971654608341037837400320819114485064829684079241667436414923684339445969177402330559336565641689122627467343585109068301972760519432490607432966623607483497650022513392711953641122793215120374427064469688414272503184840009600619040512988031041959986803573811857915620012971738457462227444511467904503723354703282610207963222261213577362274691188820773054527935555139038892141654822921873432725583092912775837790071208656041095706398437102592506048436360160022905341304493732686441336184364770305785969187982670956201280078741746514659170047666526791893071511431675754250651009208983515398913154883216426961906062073264807418442383217003042981034151828985401667519017807870555594735638390711289977875846465896510068779277527369627406903213559860214915326665151162982812375292752560619444939831568336198609795154845992572071874056535403598541187340333861955927350000555559515431623700248957986709093976187653760003474167251702156749225999305041783439980565677495048924247532895630588673312987150818450221377339170904104907222651275428546497290713426580482416229943424388532689410239291814721110652969155216073643586744571741218138300847696259490487016820171691052991953402704917518350464167589993600197802442378931561177500131820438877985405897846972182097257352719536923464773301800629714965515238261503470890240962884853804168220465632020326136869225934937535106874999765429530280207018333270506741969133417970464650040055659622549402561265916768310621801907453495278741078961169720207436665051255078940288563783001289910294778712953151317988362923868969498302429686921102875671426685766412178307112218691291738097799311493837582448876335407765170367339416441981359901971499466294263040190572189593821468538385336984800740181217796036420681167264834362345932217106859250555324022157330056065296875303550684474782599589902087326884125738880181693891205774207064570471349369791860045914429807538251958051711042177855243656243183997303181348111976569227779115239968899336717990515261016483757023121154934945925532538892092219321910508237593415405212993127901169433420373322110286755942024126994017722578875596225710782315312890966129311632798833531048336689227084335489104514301212986346644241872595024060193585244375581968564045801392908967829438195318284041688990294805415512990533972583008942869342451559148971504221168337050983085825801433162518095565120641628124773629979449577947660701164274849208954581908980465513439755177636951888373219796196105673815653921036580358571512977311292900180697202389457710062920601748991677507137520031027537760985824298590342394900817401471726131977419582458341702123184405458573500593146781925729377939012821189742982146914069625365160131411545919028357694477257848667627242684953630098767357442905050156450986013685072830377962054178494706162535405248525137342378449369722809695569405689025210621342396482767947566549648345213043037027570406927016567038391587525887203924909236047555012619870134284094000495152132757606843721252368048867740748885513143948001402954792391415587840664471520202855109708435433680647464434523818746229382036368983443049049717132479250514143552718771681111341905593728343626604177405118595866488745445770324963435248243496890383751350132693634498327553419562450628885144326829284283689948597978831677688962614611051992506965780893506993001245273559880100184871690486179302482056987386627842561636325096104747197162637940565237314965180726710624731488902300573525600826542229161400498696290832500888119635020517220385668631566658947070153250139079030937855970306105450680960707925762523168208576439458148955299748336682039610375185377137737964293989569424860741248300297061091745933506961443123162585305962374637392536571000174985459352093114905954765721352730118199478338052260798981314963765421019002991025157299583189083851604501303832692094055642761226117485617291918136194215408208491340631794186348191795204376411635706553266862210476761633868906537562958662265117836603904024185350039191771417123934234774438080723849284202535623541232965027495582956869854033014791213400758867493925462968032994643735339798112453015028036911868497716725910673687203574450044187062400555344039985751484406377266502952832644672420493188942728372724388663977351993644291961156387288999943378452973304070956658995396942177967179891553317131232513773749687108551984815372543548811878151315334622312522426395046248418662831063470832784797277680509594302942733724853930300888839621251275558748434103797945115417731537303218022534872743287973425669789762791184751495678409565777807230800989067497696865924965355242068760693021792029938598947947630850154844357754420885287561733732858414139586100194200692347334115837781256723158417534826035036498305032006358362523478417491445365982156010267370817710645280938159803126882525258635130599377145137672041413786716457870828108604661976923758118648021499834977717938590817905183641731960994342712267707562978031537399409482819667007691351215232035161591154398939519792600504455306106911104760720149389128194826631122964441143442379039446380241516146231923536631397661947028368871231876966813374930113442928760961506805350002433338357154509780366396711294588780520708529473927819694291861615958944970652209723518846684464801018108457467076578989149788670265463002001727473537210300836089770722394383135238782128951667512515269270174433373155122684523603583124862097767349605601801291656005185723302604301626233333268628536885661587640119302089798584759953321033455851963897573021174517693722132970733313597194878234255086368272553780354386868606066516660273621202256667152656779544962982728436924016129691168222583003799810782415153560741395035683086916675934942796380703079509499906431716904687794473349871910375788957621163027038521044095254720613609959887587767841112945336440812033028170110076330963345048432501583230135151203270805397704376789828058295711701157619431403497975459064677272790858788510700999563422918699151211373130085684667591115930205795314376362676113283683441311299816046102479566074672073238662636218997324801918803804115902016634914520939742418190576616771903528231952193343085490326696794838096681736692828235032956144427745126389607174313442793835004050828665792094249157234116542136563499614566311957994572283452638945211951679854742549310539125976530869881832851757987272744916735458033300917485128110113932817612918872554218944940842780880772807238730569028844669860865586213163930148254639197854374106859367880866630774777382233235537475083485214600374624684461412059520462199559256314125001641906994151466626932450087213810167385762162190131474464209524998725721864725929138324523863993083006371798652907150875741425077310115781298910362998906882568919743868451429004435718776381958043350231636087962437830268374342099485459969373379658237604716311945769551092593640721102881554616188881367729162346747169174488263726487466036871909371077795878628820251727518392363298728413283020556897524689949592150751130841268556486988999897125530055885967181298587781658896722052566285666991023166460463450613628220185397220300632122659738657581997935262218151460684322891225410937163695204449968433742457510970472841963027360373847370852020179188170151695063987569712388337684847277615317059191143499011948250044899541475730534972509738200565948303696018276564800482013789928793015996954946890226856757164983004555627453157768957883340127544139313364437550868137756894404374779547701350891040878648175089741220468632819937165219804944049037102493106492644732077126050296794050334456628004088948200895915010797832307805472361563877559076407564160955609158685107181100627771439403243072028233449640459109774513398414302524242036978439476308216434531788304731671421435958528163034643008984770514829745530536925948520323160444532073076480660501408588069820941214416564014959234935529062430424150546033881552651892366278866203329973189345620056663152369979479864395252842630846779994532859325320371113368972050857958967133399962325119091572343088164199795368411098568993715531526660538046177221331691983271872597861697451424469758273378008237351971671172336698878766147713140209341376209931092535839504637310823228189658046350593735324598805797392664895066504384467356191081033308605179839511450616437463391558965541578030727912041263070746605596610196092882063051892864075265930314450469614443001957852383597621359375967580299064509479256014787465238963782401880677216868436078829845432509388460814065335271678027437017204565961598994210923271796175187136127637364218913782267680544794007182941356176056555143590713464606835101415483593648468116561456899314224955645482775578651747093903257955491228947214107027803209626733197185216488314071689393278913771677751655025543920514231392878851791098193380145831839999223012139688381124532368429395844721785664555380620351889804579790627605884453879951007665327095852098434068197195375316401736658340734331028542839177087323995055295922514284459439210536525874856117683278961115844021145491830036845339727306191531017152335501061230303093358762295906091228156582461990215731063532738853473078687839356075542257404388354722190172446251463118463341279014347953748366775171651704048352040947536856547480364503441306526071517363622356210711387683164921214469690202044971482843273003679618546368787130877468885003054926034079902450217031822589930117038667597796422718215733863634976696849744304188139603853143436522280267856858377792069367305674205415263436472337693542037064137819125674475225253754405688504842924952170814148179241465989489198232567264421649479947809083990202963683330544405477320781544703068818824424492920357703299579680692373518546195324698830749752201992813670050160255376494849359055366335906545003086212249911221257504112964329835477801854060715908318092016194332153159943952261814258619315648355536666354826987161957780135772059428630845039597735601076050177172430578526752441644835913153325684392380828977460732305194621393654834557479429323404257910154125478599908000037385620859825000571643272617519975681639225368152742017920128912502885177380906184642703277657594059468683282880363296614216021276473057475393572345606203399019408957841868273749315788483235454949714599413945072623240213409403909056876666232287253217792763866918612183047313043750379843329092393767051964696644354966310676678172966362324796122395343521112777032668907868583255355541118828876443516199621123483016764724784842134784668856226554681243570694568735705504267307646100354246897833660377112586209740794466185105254963853409746140319479739325361898473233154204314487601764467357498080539717582343429225778902895363448023500837280076085143858985520495643584385340520228112912967049432520862183979402447083063176623866436825939558969199352057392908651449404051745573444260323096960390839607661515791624067106366447079446207057238521053972030159295158718001903019259869340543758232320302228218951726934512639155656187119144864156216776292506333995967614345363935137053488665491401639605495545726261833094569954831611072004319124181522377072741789695759913718323500466632508155310778213732950925221749621397444358818784204886128939822744758544187698469225250444918189886786622634796479927751778164357711870225337702697313315273882231111039752899709437047777803864576099396947713794738119539943074431242130834059533246642658714885173299984619249663487402954518601064955476640953296444060476213985417759714637878211155913385854571273137291025870270338413488435450790898759985936244982758312122605447129586239137916916599561454080397340507020742376996294420970990329506072521378840376325295471351168747636775662435953064157203387346905733130391931124763948139194475317219639726581037471456903661883401167183973887472209374636712977263437917733858976032580286521873410227759078321999490790986924756819817338890958774968758384316347814841924270706307147190481234648629864759867386415617207105346904912525074396538232633697412138353010055267723459477345514333894992514235304381562347042818543138794884905437265032922255960680853692693100810132828158994421016682702140577442855848458962154977886748170988582470042305243305135018263587588433934524855755009232220895015879082264207283542369645299015325835221757877182150110453816012905951904991793996526785492932625644536785993258021713155519126835527251144437771434415451753112582940824847363934686546835974549985748300980419370818804850730663530632665272979956547333819082389799040122911454551075430521360473696621902735003911351174892429296480086803504204989697233978032063076012444836649065249608365926782043153306922403699589424564003049067540416823965787554204080205711384150256840941345403220608840459897017486579931753277539397738568567181873183014508913203917946065279338266738540599637575745439103632333347371610936578449974846655782951555349845676770924168866772148593507329424389682458057035911806954696627874936305743738831624613692045172978583618779876138841928223402280655482677886728880943344406817681100986920799341337032348130234752414424502505198714257172960405150116846738411316688692980868341728186341139460536648892598976907899303817620896113597944795651263966188213350426014002918999480887969147553536177979949453506625281651164830765724712624907056327522550151895399120952200900063796009474124267394633792939314305927168936947930236713509607254423131128820860225881538269499995125940999084946759331201470330682574310519871703274851360811687953455845201453791177668914256371015266745027712617267981560422356555814689554393864487738047893692992764906307260801940260047705796913929730127958962248752246311321822257044398107873501994891994981347350437806423955222787187389638286529986996750108277404227484921906412340914162359854607932169551866208754246039189407942569504839815892447264679526678326706679920094044559927757068125756466347973239031107739475525659807971988050242156263855043871252222901897067980885181430196862253834341258742464617042359624598017671156562674135748454039541498164496889886862227361888776508157692821713939578425304927027956016169255522460119159053649108329026349049578092271666819781090841670961369207161545126068678874606821012593163775406835442475405097096186938393966403174239164026338602927759930782468878540458382273788971507313010192404556563430981583498228073072230748015297858759870396112675680453763653238130160704185657328352777558045604555730288285980830816338855010744206616514516121971337925742014347837076410949111456297024091589707095325020712531814078594092662637396366366866134309620732831837988129209456718794347413532301373333111284288572829755383062881086551506639132601221308829598466327667287338010295580947304388747860220847969623646708344991372792169580123746541222939826605142714400701447372802677827277851678166403857544672281887348325611034324622724750439646474096259708194754498218808885122363736302814029708811641480244097649714678606235864342304892457267776876485641724900021377330644010524067486957184032245856183062162039853338669036929643728011824398998026902111246632049341301001191284396995605637907332396617029137773309133480239543211187949730847709671469095101193398821750977574134983591843263873877004738488309659123545796755112832355170627499055311833563594438910563250856373450150322025802703997366673502149167971775697683310744390097425920843676376911113603085665672233660706493575348739922868293826762666698556596880140878369150900983469918723826218085219801848125475337007692949253158715190797244975484063668610071504524011263203329071954232666973725289310626768159970927646134746605920769698009608531436689157106017846402957654465354474325358329503075228431930560298617258741732967867175952348465554040847720567803657330583838549524033247957281374816548796568585825474741277153230281651997271553827502828220803233490327174446526526000274863334504573501731282561720589164228243636489143229923718158041540706359735863346834787215115851724188649574323570994419058520085948984050093544083965795605386004356241264190726313694258898229076973863977145570732084674236878065343209123800125792153428412285111343982003269348204353597862600476396721484608194195465228473260727380931861447255709364533561893088579278725027226523457475914093118202261074108334528661799062947317439040699997833803464553976699464685809501154537526771610747078482404329383659881834627765144157103147819621612008797354907945194581556140209906303979190824375828378170439968514326266351381382662181270152820842154263251075665505495354013130574189898748558741352494584806098681044226263203107553735549958012238861090509768951845108813929555847919945490447219693787917132112111868765459372412501160319347885353315251245947908833041414042926910221164451506228297284421264821459748292024687292416569308326778401598995986970320075615990544785879140739791308404537763447562037388691335282464735161151487068807358696989757275027214291541773732568710210575423021362909899908922699325866091401507311041140667871395867285572552118762732871938293865209772332545779814962237627145732576572216970195078060270358945944630812890063959116126783574381625794009126608862760141738911044062571198956557415296649042682844203465522806387752221322532566250668863742420943877813190155771985727408068841830219443816928849040446008623890888060411223151190748133042168855209727111672008140759593242573022842407698064856492877567465086065496748050149025040975037159373762294642037241455708037415267230574873094638041773026205507914056448160780891822296923161958050599504376169715300666162051029193667291173121545020927822157549591409685040912108654947349964749745423950182087204879002796100619622293518393705615145430348507248895213961944731247819928126667933133798258373847589644372276033098404930478272886110201129515487146083985277259832278801908235814660247529761765386061795586350337181353352429451321403669762192087161186744508534428416513261819798205222240505012303175415276732434357663116125270795232855859339396994591066725980945687589687966180634032154398052464413086801397452185184604641215823987584089999269426154854263213207590979783993654526149292418679731523532865644802439466951439187789595491614377862057272178314069528947453064770508945421193827615897197934191452520655427876836606587013867031305946463493482048429260907564339856906287136150967128944597265598056023530189564166932110678414415362007541541366293500858061403385768280550179159183412147008154196821121925659616789453575471737237386718281480963892673935825800561280833506028188476296112666004297200624754750936469013419370919422204553139520819557439616905241477748860444039384569466142799514943021935623398338552023115732496251640506570064923473152025511990038231695279724061470091077849443854045332300904171572433506951812845232014142899589708914813608420292494889921731469623474809966669509644531414159897610142773508802576197842194577546459080598259635939791115862917830726273133145174441570941520806885925185037807050245028921953589836549416817709473839763418976620698440387977756675731457413635863751167748630580682711148340077720512030322375993753382660227650793173047113032416912532906995998932846964416457038811572466647885050250395489571223135506649730709434219784551673060194990822413141474476989147486231797835467472048299829627238962918152899390989435992231551143975315818275941163462725310649837927816486845508351469837732205735263711140659808973098784118942018206105244867885713729850695982215132942883933223142287699759958924867266412165940233530663599644418372681306647778161314684777564223008983781260604856667459360856824986963974087771920992697023028852649206860404968824116164079506979703016644157359937211922110606181900781411258483359881287901128267830100169544444281197355274147692713026163870457737501115514568803275702118642990163122642340430640864540186182369041366361708111477084165342776809180193091093548653436218175226635605497004308656497804745977624260320942691408027800380241682815238475637635096698767042699450990400090594372891226844071546040283967615749009693455045172266555938972246161257594349934421095417259322461746925990135732469958892214242380149868769003001546319572759010713327379996510906132700055918251458865116743545048653333704810801185548926641930196295996680901950444919700692397723435816633947514435592445257205384317830726260521131092317618811993182364588407851747552040090227644315038134238521392236157607934548635644285736606400622365157036303926798178750045842218712477277869812536911975395259102675582519622057755079347866229594506076951041237466965482742133119491459960055458894944689894739809923812138936352856397562596161424631847866433040964151402154242979247427037434043413662887871057096616028084201884298744719555758290808762447792887524583942359576005976068923322017400120953141241529733086283296487232757083014327310507192353078814710883148286098445684290677500677333383068053897617972563184445587933395754843031598723999893637979946384769009058861030227254658189733323000582735506993248389075059177769976751422107840312175866339101898942083872660753695426117984719949804726839908383110566096839544481295658047179340555867668504355117296996949113346393993124696503840239357199282644542616051556286113950000344283728721317787866868452964228746375816790891183917527045992197145001151382575042201984901637826262769022972503520569256170320252228278901378460195658661128062648027583393105071743529895991776727191887075226642368498004505050815738949500175204439278534999973205466247803277088999267256381355615335945295256709352788379959086910742027104872338836186012895479077581741763770572197952366342436091748231773158188458002878493341008381853500314388434154828042491583493411678748582454841041579049720863861371075218642374039296708376308009094446813990656164043549286304712339871600470545098725385346324322366660671991764139758834341696017724200662646886009426054285259496775790927415225494582867595398056274716204897970653763087365556213876906438358340261856225335150305375677328396870280616331070078028986753168760144920273827577564584228935021402169569484602796314666331574714389724805024905123176024759359981428924112317336044497993013376482396640120216316978962724289928915696844551672044412266090749468229735153591516102491630036839324898120932798233020147953623680718411549520208465793312669235921638851331827858380897368654104264879116107998376325795751934278928134224360391722657614716416060208365247914533638875227992473509381261372756206061871672053454805869131979309474598617972215828420217494386639768041852279660702452948753604278905871476727320273573509099258779620381497298241230241039265883610987668864318481114219970998531931067118517515643500727840213092974349780455256778189130587195742005794541426803280424290822620427556668849396000234619404860720868122354702964367831272602088443301242601255703958492469588770494612370000497897746987693806280014567905775342559973151468928061433570291454976140815697055045363519661504679023668622263691660037936771016254437890448804522552677248770745430540977184559976135418703261815975087811232668672427967524997541950017189834152606697641361506113009073784529195890061683001618964892666123220252148587347421846206417750702819032600078329741464701319312003261684259967167921045962122856075742524080107111691940926825351847001229689928463958609030653999472233114423024999349914456243785532720524393202064792704476588889060615267347712981280427287091861967133499450558629731725770685905447411491308950863617515755215339640777985499924637109981466186430519760201845000632033544096233983417091327170276100617797610657343408882089720795185112248835161113445770695708376912974269077021079498240290452546928845643063645997180000427965022057986173937840574051914426576434097814363059023033797219088095781585657386268141534718767467813811995637703226641616676380954448326738371446163977963368986526950595022851345436670554622905133526757008054738916302088757896576246679658061087232712142830287284369976497835989240731547996697517851241548813706894265118035083725668981253275733827234899932767071748372450972712466451047832706881256010940017109803432908499052349959541410138058380617543945590420171705637920954848401121771836573605960251775707004140461992434285715356778375506057464866022118424938764780751217566900904281648857452928206034173276938590557014085164133849617109767151829860161850455585989043983589896050775847093418377633723387955764081765238247058681020094778851349753463745581887806073503598833751440723264984022762166508780502967221468700815601692565048885430129068573081227577662894740349799143222152882957790479478309164930721303170807580523413258715719263181973473864688223759488282374452450356394856137627584362774121939655262391368261197755433355853428054285130705587825384462994075734807718046493547479427161098089417231391722875798222525257410307014506750187557144072685607859690267404564514418845529848079800170343872765803342051742382909665554634713963474631208607194282721209513994416251427210549981311712730593927847771210022636050719354884296097551315754058408176883366941032489953719264258032752160928534679712764399331761983065002230928139000390943968365385658723009192265619819622457072482267047107423631507572309618732629917110076282705983330295263382866816144959615213640045935395231177218309650110666878385704156685595033879405187939583241470821125621637670331620326557736285160026579129330058246769265777367352983738490673780825704303410156504860212811327371166409134150994169225910079648797304013813203812722835830608593276276671413805190537737754842138554646279304785174707258154935314744866139601558894299774289551821931029229936465439968113107105888071388730603726120560216575692584308280004294633555187490634852661592620642071543494138014360788884864779032259234913304227565464481044040649471538496078202197892471694197633140275198763818982838160755527566988389430467288994071045192834654250588768968893392325296348662213373475380143001423730019387079908383860865296099251527583896789757089430754110580702653406941452945584131374987498216065071932274325582152326054189842409577446257292432881208731998709488791771972784476412546459870235973691852591196649651122959736605808806074010690025274070274862574805224227218445505237056856208866553237185705267328124250336824181309412052800359911285872261643169467470275192267154187433858435639889195052467475824810747849230349916625262890971612839152317856550525145874745894408237359452349007472137056445027306036162637401351672804621477005029607817948619258270494698696373259450102702057645667210871344991041373751580213553818264837833063925569450733240045195376296644354229249701079365723965041242561316968022624280367254898560468629960139796722710725804518259971540002526106883985944161432244733528233833164782873330534337298579115095277477972104261732851642795470831296741479063404336361360253815785251548888929691179192548668076989218538930310496468673741689338459639519094599749192902517389229220896108504321584755482255442893815623099982608885918993079568775993184971775648980342741833637326905747941878272815132078560525279715582140819552731710624659726189802098078127754279357341195815245848400080830779491860375850537678301477867377778538663307494831942404222062982043306200481309856483550962922464117126803631591795050362269863570077310047848486243969591530230452070210651376704697528892262939179779317646940894031942867626718790666584720869390216920598814198707916734419308514328678261053109106277386914021769380519076169632702882799022852788211393294868627085978179626889267834066792533360676809526785393402528087733820651341083319870212999113346674879218364178327133504611504141403179874126548654687458462850813213523082419907578084385513539177325853146804772626520837654445405313583422331481444988948895193538372522990656916477081607404140831134801103464733969213081696519386283200371278488878134712179350527690049965805405597721938290858816303467318700941123532457094133916564893133792866836972899060067114703797551301899900819374503658200257788048839041979821934741018474487799363474844370811972434355469330734777035129500099550033356392471981354176189650721072807223804196583663867561624126553413075772590498889161458137213893709785816539429321635907452588564167391225807362748769638168819763977974961783943986863576856296465522027808212039453549283429577488065612414992016047979432002039835567776645547206593178105617519450714840995760767714094563782706571371805292887407872404908788446410338519160978329369809172535227720070944348905451791238776583742025384657033861797308246519199799308973737174409124044500076657519783505310243777141462609204179632652361126365719896955716602672480275701558941400538350306535927257804208807637807215893537073406013734185765933409686631867729645525917419797983623980982307583308038098717059083724545489186811445179530982352609748632794353135519992568431174637102943765607990331131317967119327197873429318078018864292862375620798850097080309757765570770891955207454873968971620869891344085904024175162273956241626751580266706329072113046176054587263277702490533747529886233990048185776874901669805274141722317869331441092424021033613624405541469985742447751481837941858105137333389063911744545482259095267342485117508511611961699378463861926753886512240753802562464780493361876257486660845070937081222932678026318145561225950396666709231707175654551229406432277279168313635594081198287988885193115492664340019166144549838680593973792995383295280622465776435821393993881063694941048979445913296599091213728915243114096682428312377743265845227445730619910972347952442469474121544183496666576579337134423693330759460080130138720385375002256804849428412966087205382762514363638230756496428262026532635805226204995740083252124125470865084183663446383566500283247584900085000395914882944122219028970115595833050158606531026657851162490565893451890141844582077021265903892382855567647481049533458808693178561270198419333710888614597562246014807994704965034258994995897795608641257291615179947562340296907200408346210271434123639674423410587375699883623219156676125632175736227496509460610773545043537217363673344825025694563396527138584818219784771354108526852246129878275643800371836589526754344436020092667161201724246373032250923738927900142971179999126029959897391163990641499915753923185895618118824859216716040273876686070275957313416792020178623614393663772876546994786918906305079090444666868966698885211701708549984450444519584561778341079460162079641023831672771541772186527561508880574533866222616558011601190652150075170628961110113542939600776242446290413533220903777790803098149038965513958633101016878695759190561869717012269074057792873585170466964461434252818831593039024595980801336286123237209699071524578255330714128427454999856582890669593745233952080078563043919130899230159699239267374245213838536146097862370084397977633784899663482121852586894231138538311795551773533691442541597947220400134679977217771316560372450966378935716902165562230166008862292953042196837953420516516568949579491780831266021790858698890536206860797457116708324571780805181829406408171281693472260747503221777755520027830585434794725763385862227387200666141301396236659485503956907155535784470932678269235276062917010807149345777942857767075597743808587977331033169187009956206840293710967498488529963757021514857563194905756714415193790544252428188743382344638083723020757990176698252487107826431026186889048246294597628716056981629830193417867981765043844788991764217138295019460125998415821918945056373682429219056159007104724634010316266898281519434831510043170250322684850302495352865152306816128082028590140718805864082849251513894238817757098616834190411647129507283520083761611697266033318331833110143976780145188466226764886324785300554350209358331922612096270303924753892182795448182213513617316208364667513415683092058956954540813328316267244661908000987808989307331192976754099812433027593049670486090426399143480262379003447841642061340050595796486984672496981784162025372404458746147260968691553169957588385511766591215198481792986491786378835124611474618374790879450574448794110443448644936351901228059673930915235467950430478933419321894030889987554578676928594731117429332934080603110378774533932276557052372109699895490382512376658342660908690353048330085728664136991914069614137830479327750153325132989519806403706266800476480351273090043236537156494450367739697249093955068468325633177038176122435473287350716281882909491299037331574306313440525018824675442049847798662468317289742379277489001439619116620864919633581329717789772464044207822680485403532343379397739369507199611198086989630424334170763294730301617967007736755828311238951504202905373395392991553767949547392978802792979210120060945568082137454685116466309395830736218633264944150614377772236693700138875945185408159403484489206723790726074311196758712802127053606948122498942079231539814964081714864845298990790165991701361735146262730693882576970472916181759796987943867850835976426553314919719667953887814613217257351786594660682357038687141001191173291983663181664360694949214858030764711413538762772988146733203559010447583234193389026488058310135814492590541339654461506190601326776348136580471337967691901613561674528806860085384658432628856927214276781443722579470757669638161653475354522820992442026431650204046773614494586142408458275440932202477538337900868787488208342548490760923362125041690460017036608329351165262350960255799589852339270252184253297254834136082972235604830864015450467026543131900046177592842862506844009397928642606985568527039301223451936014624876441707016041971104665818970708864767194471049752554222483149841932340814794107062597947030705228076797350802255805865060983075546835347260479356616182710842950727459905545470346934093544255466718154885597412378800351445127394423513077533334380156728515430754847512501286721636691336866217211639772185631854340532824487075614959492151754495030994163657547532186169200178836535393544609684993277093387276647125219756120131636458011963811405699284233458496745328586079039023320689295307584232450504277395620942052899135514837926785965820463608665074506916410919355339522692806917163069667600037814311945967280275307941471219693679437098623203364773131173902587206159871999389334603143606146819083373412348027125780119341260378288079449337916666428327490580606500374186118099718432930892852517117822356445001166225289178272358056282245385448255628500468961306631193768336236912571142654468502595411135965717212485114042646940823218550226214933479882031879154485125726459324994024954714260247532421298166427663869275976246952708288336905369910617798943928911887300068913904941370016777543905295183006261087870054259400468015559922433153107541262544850274838383538276348473434005140571183536234432171130512050394222176774290436056420371227386218336972295541474825011313455325040060940847401038879870300714678246483156786321574475295466274401766107532616016696536365838303950091494293843447009570399366166261622704198360736522402590150608016759409345548194470929263659693973018876175694689422579566882616529989892696424468005149886059105091687266052858843070376518066442786508804589475925294321864429538432575962208838385783822293631081597973943560346481851010717286277713067117701562845731917944871067109090447846429721651132840485492956841039726685892828293898577621413415794689667958453829583220184872434043308912809758562675498149159789301058516340317985567262952505517414350972479494092639863881110044336125816481114365188082526415124100894871315330411500807827628643377403401163520624287696028884120021357896015751256004223531393741672980886177521884789377823330696363551877787639833777161760980578475823775261675024395106648392551415392312383805238564449281136885704827855065722016366200482365287175933559833136287648796175315772647430633798610382000112420660138074782458776205012975396985585241338631502431411091594488052885220581644921170831484864856345315475916263544430426706432103209983741836438496852784866506320187289094260594103892677579638840721281765189941378641660544851461735516210692250658078120702858954832724339252311275524969138237434789644268793697282455218777473988547922427230506707648324774119739613335122191126826032017840102481264684595332089471991327204093211860565467535236085343428778140072579843282285384229117384636524197086812925238782222455254056366705146274379063725839623858269666724005642629345607801592008772732551918161057134254344751021965899368643078447059093788659107990527627171947283000993472962098109552725991204413988856107518375931298462227792972649809963809311039639077542860237170336563906801050254511220459489780130401357610313801824212827489181351362401187110394467181976095579053970297157817217518035273918061439287277289001702392909536714650702502714608524739647553974748486982668686666486242188232971061154519797480084042038316541085129986740104852370920826921739165378392483782084242800904096157609506970569136686696597441029482292441884175585275203842454559411249843824104257294348795211480525699970397250697232397117521408297471654583525612515356445832702042458723335782787845035340425151915483973580587917591485882825298746669996803353555345981476756566963341660902437975215289254205719625542352123096075846214556402534623763780101824761072629004722756376090091504572259616780025945569441382437849738071061983967367831831543320682747364683516354145109140179249277261447838266447849161734453736341008486112564056844324046194099883517430354127344411670414534268646953708770759230545412956413797682890232775512406422930576904378864256841870197154653763981631326607095423977915242944269848050534165386467394973210452943522581748271539939458919966814726165496169687552266547855021848426793019432596964640204004250819484856096656915276355326590562821292548308060696356180237417113133327657052143219819797608651806518975596626790128295465641793373689693294478799201217138347869204454798358699365374707206069259295392357780196652832214738741911460191850876910764123357902759600611720394973427097115855740624974233255132704512787595406848495748693893106856549075226839841493803105856149859034918860034462815923263518209869807009968481202057160882827973037581294323553708258979387110887681182347412985914615993778579174578674059235560592376604797525398603763004990290905554684140392729999831591577999716833791386253588872461261169671804496694721587176026963579725121205009533558899661368181840732136946358982611596564104231680229445729710097699788110878458851235882543606740904238229561821826148813019887118276664531863145009025151309532913864121191272044321971802874887278386853849796298187813963291983134145522382740041784001085574902591731776641377380766917943005057296756214311302490170688193428769548489607553893456394447576368991652864641034733400299759985484059613465117064075055395621445989401259399221862114704164425211404491521657270382869230372268111383448239696331687891940477412070436400176481678000002929893641214576827887430819761690942357095518388618788327178855426375377241808726548893403719588791373744908730333487312264862281862161950073055151729938312640646036544911756924402741894788214389655070934227311620264057425987029968123744259260193665032049018044826635143691106312232105765256610423250392455507735919980115127812679421487305753796381357460096525874094270377205728454216953634665443670430821065794748942652959964582049204757763083206398786586208173177486577197192177588604061322329236870614209288771874073816301549343822784596031900376741844536976485721874783970952197677646397842283649338580653329545794801609774179700596658327150340477028710156802168990541623630859963507952378970244464906762886170261035245107875718217435670541311091744941001239841148835750334059612610861187233709028892290566221712279683130915832907494552585008750070259019060946660404706548176608384712138384443804804086528221163505757661137107955479969482050484329507692086693272040403905761888711014263894965651242847019851973404662044970489423024247335807558386698263739782228916024397726030014971656249220104703282066610162257244922827303452200655793578772673976092052845046244256910406207546575720193949044085599350210714634953231948692675754121926108104422758042776225148466087781088582265353758538453003400271299508859524378323655379163495046293657989923077281100180547865339211861959901228197618539088834411268556514965580544904956841862828232124410377599808024596036306141490705212528308060388283803165291205006309346941060629307669378599318986306353243747930601467501082836750205440109159589915304674059426418696352019689130437087381699921936883442410557572030809576177020226585352569913139023837434158656003267988315118345820930299407971615610045988398666971574787887466908042500133543501609790757821053403341568395748401412036922796160243277980673710286637547934179181138418139109421055430389065084564777752836081992859683509819860811714836738599583268150328248215267736284828423182131601329722891354900783798874597099695709555151011327307202905950440703325248532354063507780885131212344794190598314358419575382228488054545747123790152030059945134503361482946864679683213284618173538687498333992576974182305875951557573290502184193689133692005376974280158549975092800662721880902461692727668907247908006720582967777811195046790704369857922301130800483426315570840108417854870401270893142757411413769612201142318072262198957044173708656884511775307643122904471928998168264669619922940764876684521943278636487541676389575519299045326477016546141167661775514123527144523538603132505357982945434030875715218924522528590835502000439287393439128938370975043863959437430690266718075638697635517495979449739508866785052435052087310918266173972146234084316237760613393956713230177667836646030790085144176923687333907327373242360979562278324312821302305865484522536155180508668059493262419385380339997899244365221109910615340360064235210652156632184957404618453882615211067663019291618245770941478018688930071172734868869440729587395592058435589462120384194147832863310880446899612823952051385440675135282371442734300461214051451424314817022588836624580305244889125074708507460057212569355357550998563551107303673448802524761107716814648396948100243069933649141208663297151046978835748749525912027781917075008776850956608043494771235180429525782006424593461553419260294405547269035429694661935195353187619227135018861854850863661514835597619369096710908880540763568991335956908158142945409579671592147493619777484984099147915841459430444405848315998307018970988875316051685583359120032400372910217298620897554179494441243989373769569370062967435200584457939662859498804431098861897797583694994767908696179249530168074379405457934252885807270955607939736411641730627652182511696176965444450613332182008679138582540777095700602301762516281420321017601967551259083323415091701743463535853667394232953749364214430818499068781363064318327060347673120953217947370680097078657875091626636210861439078021967186846681030669853246680228138180821637565529834902405393626700150686143190715919131904787661699499241513868913170531946379801682016385001226612993192680494234792176529200661344789147367310851589472676368877516590044058873272763786393449558842004371139243739292414658141511312069669416184595217795575399651345915283375657865545410018607361411487132252825591757934740111438175411073893078868242680059364386461203165923670569534869969483926662377255868373838805390243382224029164212383922440991374597785475092775270980510486392546373345877272634493392297718183137522643331122055308149053987683616811043634420914279223062664990564949252207741453443994847877612193868851838002461073569896098131664413471018292249998410705955388774328553872649253186231052390415156415691911127281710341225713055775881816046421784442899801493958234220209342822583638875164879140398063427036351499655305870852576190829217814628466415160957912926887551004609209120314861079452668082638985471893753361241389533347461866685196249567559215116692706772872795997173860220283767713801364354724009983724583339602760543158172101279661746020164636082271636982142519526113935358470927605902387911921529599681271276354698930993473496030174849750564783364951264404940186872031894276610378304788946331110154295120831527294556684611708264125735572026524622270621077913830366017637004992423231840641538709593959577416695328179249376889273090528476194762562528677479390221088436619562576147041522089336680436456340122042179081780074204575642218455380396366749518705343671958818199343558604557767173056421599885603364281417777194969325544038061606725092497928425462077599965328332169580826616538665693364581111131781426821333423087943501261889551138943380097061726079013708071051781294585066672833075792431632526180195249781399905315187135387606954663233764854894018337207197002824402384905882231018429065542283681941290057995212463924753768895554411114973510656851832556300324107590012250498160726780363988995302127363927311344197904675573638238055131199433331274173097285096270184156551491194066275575509089279857308296406273807946053827068559283078780194757095285611480167092157093236999910051938151526795660549945940239374785898484686906110969623711957625998788503426339808088177123528258221173587654394658970699055905759647381080248503829936504431142352772455336565035841754798657779917206409352953200534913849280535203006378738237042381288566258848384348039120280084578399538136837856477010399492913403720695853916603510119406780582171386843173516042325735689898366887505771435081075708714902005874011759582189915142947291950336260345330345890850207259308652510750541257715254813944613894312373761787127177812188905885100739087689318893136957044349585797182344924227693516088798629095867518370168180029602274563559981578593129857090799479863635774749862806578572734923899763462835256268399771941220143322240635217764342436948472746204078645182472929084552599130667342800391395477641686381195643448560546709892794100891964640523275005317772569684600115056175806023300296380307024700671841027063952774460205561641083849977020731306880517727755272600917019317369739904024224829600424414636433959260857358443859513015147680957035462867438698436654947537119963464635491617084225725897645862062245354595726224023950071039649093015706530266406240284589613340016093832253131564486697729425127050003227620039430098609666083037404233622384690502341458175386915241907347884546158154051041367090818873809107269784869843005060979129434489314662816298487200600127479021031605680677116351513328468261428711930576120446813012364378219453885397842192395475916183740882338041601575647314370662027786688109510092139291655509290561616579754237044419583418723675409509668701419091240451599997661309961150976020471781526083097360029370219663855838245412540768706896167876797881720217527241956921576669428529182298691737340871199144427928924109568842120534032467866478123309241514477661712114544835527846499208794621513847247613410314601889279242344855000532540375695498593106012435223244489889294008675693084585873944539786710612326601599826646082735020521047238788640546736709282149269905448012737586616981311598842779885216892306242829332470191561539869921471496947045127647206885632858798601227360815370812370540354757988576981030025013205644632291967241987674157400601435356981568573358044793329942534215728503471067512745752699446166573891206946481897476538905537047543028588390662524476342626358421518396860165793365875489260021782778293693081834293215894619919767796034658447676158181684259723622181252444693702244612127563859222291427939762645351294158675613717655359801912616756243988629957801679182326040890986550817677642648288999298210962464440680291561289990891921122514711342657352900550209832921153170320270340115543907340010601458911718731933161712038028092955063677152583096121584814232671882445427585470180697562567898032996334257079158906762425856475086063986810875469206100592811150385252514241491095176754045544678737506001330977033214092091107102867849472719702438537851492583861041934584960570791033780900214174206221552074136220703853234168441192749371690141257383442481761244554252749269230702534334370024254478904519105478636496906958162120139353110968076758182858809179813370536796593571371468151484094683014491071207143045835139853489114846409188442442637600191741162634463296579947173384475306814533302272768647342441628693311442195850093996410490799257595188989769514785573938198304022325572364299341029160211525015626660745776223170228729982004196608246413104303375498088045133025686098211895786072739764980174590729981283238326553590713616198400439103060881254569069552585082248814501034837935415951756023310362056682814983094901653709681251390628721530936952736416607612977807529228732388802076216286009727730904579724708145006927060408122818707712913011438412552612940848823210042375802300282233548239897840842788853272465933355366479973858617297648803407469531482275875767472524961681043159228077026277782583268865946668112546940713619195436620182403617794677912236681677583592668930417487909448479747496854796049537360520081936862366352290120598626390043873195475131386393349505640409569970502397031898842382730158494503293708896907466150724887086261553263407815758207210817141662357618382246253585532082590128200555002910359842376400129215864640688603985953565255004224460811699043678803540687277587896582342008899433581510514019374090214903836046634734085455540439031061738682789524796649408301154116942748298253405085717533263975634832076925229286703769317513106566376162496854981474374371610336362741696989781618887936222825373213399076665615658687982682594640676325047366317163142263381950966459673576238239245394734836071563318573720559857614261486620839996865237573209528647549862508153734880846650262750489991855197095914859684853822871033851900986734455090909942038614526036674472759180849650613957042513086203705741205922206709612546747333999749451622632637557393906648475977229478412349642713041659521389770830190230850525977531547223412698448410660505971404196396791266695466473030781399685757671016919009974549595229907938729751272087186380575427206342895869765802722307891946386414768269990757237478993768553792283302569253392970156646893284947912183967375125793868461233065405837285321249552230607559057811587957922711072991304380235832401780700150596241457003278335721061941965353561356503319563954299987075003973788313640953290777555898780545662516308789975977372779396733861905954897200426552356090944697165815006532804281961170037449053404261425982611983516672755012585168773449362471020094895333464241302785918369248381427158075263521514112346359772318736292088046711033960504591947678072905533123212680919206394922897171048246357483275383579557905177187341741053669564597430292782473247086498301015263506773415327109267103312180972415491990956614130988455239549574397299263423902722281554728984752419399079533964800553227337919792274394865349789295634713865363431131819355425986770505416677783230096996820466264613112564266151668462515996336922155516691805485670646553568366032540261359138284180625905144543744747367520826745094130089814306820348421095692013846650367376291572894538310534861308103123191036826950205631356020558319680420537856276284433304357299387672210513245264113038049592197718289126928933335477613280118159939231556144059927137553294441738868072012130055489028787297576791400355387610705779530925150433179529790403236407397181803889743238373832100527092578584596801378873039094496650908668696934935267192698805992478155194535612778733054135697971986631755058819764596806953708159143204752161330327774750022490499392211270437539189233608704493948618410741583087616214559686787406534439924567562530332089134723257122142670496149921529912095293600351662860696460610791291229500125429730719770018883521459204835653092681379034640906511602716240727704460746248811403575462315847155267477137555600883822050941217304822793106510121340599886975245745304953856085123612553049904140384961111244722433831053004180135773521858893049395892727370458390368207435751492049846985975935963464305875819519317266412582559400057699617903067975630812912591655824145389779894135312833359154387700155199587885622481272701183639715964784705824071868234238052341112778862008929799836970476228860482367961185671884093041792592879850032185507174498733302764833927783653926511201293621645381913902314351211854434511145451982510556075666426747382478667542668161857703357058031515960542242247178496043547883213855176011626749515019428485501471897946466387534842477150516339895352000977054592783178078699101607410033462029934135414869851072577212302356619682244070461809665196360492639076099258317049797884440304817156391707223443670662056365221541639649703885708275105200071325113126337582506056242092786451067784767718062309798685084508992511394813550135406903453622452231467400440552724466957517479360349775714958490222460234942815888442864814521687044005796330409897918650196333518091995103643808783876597550527394775284549903351928760721614547673674696168576532463828760613202248228524242116831351912633990654982314122425081044655746766672042433285101250457111350687827084576866842437930534014378689404596002843338035464219901159554718366486636795951062961585342840062513207960153497782515442353295534701022577199770989575396923345145734096526249881860232679981287523947139051731540826564482582778053780228271275857610338021148479741441897400914518516158102531246987278141246240511112695002889195534820028053609756695155615478297010659473921538244465366308357502926297605162402153371715971726772312323268305821009296997777998583020931481067969937599272111841223781581779504050586048541405549946108754081194106301017650142934682267256267355239636794271490767180693962037874076052989524793560983246329264915009921017717174544276992138278892781723213269887992582190423842992192562338527900592074778449008770098027529691922993872744533870883221152703776970625899847158253880210977984411727220295536506884369142620847587944656616781144112546539222587592146574020329020222553057223704408622981203762014340714943193987224373791431411671847764128235363217790908077030575083061063017027330116842586316022977353268566944017673489839109517345684988693525974372905481615063789892100073235253283044816673321641670185014777348088206609419138269177497621721483018295236954385153443466882898948774646794145685475536572500806201318363030035324782768077747832308591140550538452406125104562662044135503790815117259717052875660792305673085213793949213658595373287207783136367987367651540550136459963864522049917344020620540881411514385241042037334839715053909129056533715498331571635263051172429649203749664401608280927487806614614229225181969837978482937325445768395254243651357772442982433148190843200887860228037659335139829440093944945296715316735902219341708260460260624376614307112090535317137823096321105864114161120064007386255923273519573355369360149014998464542041981132219865402650995134274533090777425842553926055619189981889835416320416463189636600364365209058573153232296874383318556424541657886025204530995187163449994133753948409984366033388719191945432061795020927283306895128457068469872955149600359181573422690518196384444351691869336641340966918573491807403301313881960027122838683824187620512084701957080200205085641011554443109027959009524039152911995856000577105280249940257567253754730270160666262422209124460382526284020774552033055225589664593207473743487228255707415756115239356197727085765554339827386946333409274185088247811618908247275102738350586936048030909070595411413192902681099042468091284255618333710663167474796896159979046350709831974122653088551143020661591261737739733952189451266048962327537757411664313202898828178281325475436346686365788139555006446886527560014450373595490743933012876617015060677792868847476026806976209563614912065872740504130038521930694970664154051287507894653232799666713977522496250150981486437180439243613782988223242646756687744004600350428010299741105579563169807479638707430116587385658808775713740756768551223827880884059266826831344193491355686599803916489281774680970350246784791753949489387452057983924486561058477908955672274395948217107466490397815379292737495070871293782173697508846523043121673812072180949094937153645826887019715069966525945925680865009978328076822209632142550016251426725297794436600710179310922625521171069539136488412276855496942921753544685138686487458896335305407706265068934778144575395565319042598786051797723339805378846546241078357383969493332883651250540141979136781615601468004560955142620844270553210663279829378523920228327943682135593244284761562022668572574318800872736532781580830499291125187121915056543103897976548047622807052927339942463411054262013007665630197396763989554700731899032784825240702220552255422800099432974132672750249942073519209304002718456817074443103306326799868886783353581485468809292647465159781018335216550577832787411262793328201805206759751225130573083185463849737086750699739437391812252082146616884233066527263248968273100868007905409406872979530659392641648109990291934073078422860639762651566039779339767035747340246828106640187296974732785229065930289024259156792628877163107822414064791293504515700000769348959360327018032149949646052954114083005019731703149102414525749929665340427893201325751298422090706048881841746365286912312012546121461705438742233559747725052409879072108425622091993385831116226065558612137019073841693803258231804521591087939447695740378006132421985357926907347917172753938540262149409540553082174989972473027470123605075433091512721464422610183814425378518547269017021591175529435758289755135020453457364838311086271021497834376081216636412862444600316931669110679388103583858304860251487907187218618560027493896703321518552939234544636185066055621855355685761437560823358438895306472282991834864459380501160081268476395854038725006384193952413428323381469680990321846185389229011806825927213005083790714076085677669878159094769549211377165609139890266720967516130185588695275475236892463971884279066063832660618553443149672162001903929319584093533678147033300926784550832307767784437617168658692704210554996532177990916989853796089272967912896113519909422113649317313619156761372028709880875897127543621467001634254084618221520676070976821495948004264335773839513448089944506361938970833064390382551344220647252919407817422713368747928429138499437924375417973160129041082649725861944310656874906279838236867596668528650682829851205666953015440902454902331832310779876401719064410559388500443005881252775774427337549215848497335552018508291039743958820949669602297430098296535378811202617674829676133349897964795451128905691354112700359907594569082724887682689596143169784929612149848058595129883674974115972454290911488057245562434182674295485917738122870610948668113082589716652648593579351746253255892766738625366580317490556073580909068657551816636223596801986472894572764527958868379283292553446223091175122856375679153206812758647626842037832634877054280282238936740626545480928492587061877475007474958947479876723521870883440806232530001476246104522064638632943848946760217486035457706107892042034772574815949480858354259162015341175714786087082048688100970422750413567213877951426679651672140731547767588508309555592042704630430497473122673508982047143534134878438773306216590845225480136944556823441841066352725552589909282707073384846657091868449755006090474104530990792309556959577276131410060205756516132475425445027773758221084200257694867393622276542963635502329611158217839798062162283748897321034515677566977092762553206279895679191204595166089223744716504165192625851236576854294115196329201452733165582596392644918858605373178051465154077830005498949957423315126233804264292982727252948169548703888398061556041572379428359797130550715508089121234010687553486960689203271986596340539605854055011505916160202475782802918138677867858590739473964921456245671229126819139787805003694372417551528670671389863174962955862171357404024824820016054129045209238466410809323834141912680314705807749238313171132702602587712956738544154783908109101138794779719394847966541824501849143933849118163347162422094777388838728209574020653601960051587734136177930088686414192964184512058907635971640954500157766670768033627262692997228617233194879944823980603930252905800013160075768508533250050559161633350184987243811263204386707140907857560142936162517505485390946601869340908100710619195946538707070420640758065109986138108843983981382069541211686883333999270776731099338217663854021880967811178545299885351392817332579290332707151242343727585908494520110815800146977710951374109098901108738709910770850164918200618103243267015715634089721102374729795768172073990394025294252617842967920729349146800834712786802642182418522522304732596425951578646608211738551145883528039334706635418735776930836410284611600566152739728549941017648005252034442268417239086050517319550306728217786974978191273851575880724611561123140995489559487540495749376059839656834469484807666784529956260223756301023943074660978300490398248685806410956956176891123876852642061774664372809817655891828168778229074802996985837685240917313240850025235815059564645813549404907938856047385956215437905956961670295127258873226462195660703875957808768123142809783620235142429806668265699308107637832318538208757996865752738036232597881631880223115369162817336501691021947297285663380117609372150803248955553643588525049691407129521526693076370125261688088740987004941938065148881250925923870594696723794731316025555411843063611219863242956589115920351735307243140485186905716362950169634624408109281649232127970340750397668753476409202745085437466836304220368528219235521852434733820559898647933096283583024912956707433153053295774828324179775390731378605323711604287538969097939818534399305277991198927874581217315159668372120601606618430762126955588299640722733121505283520784881985983567624848689856439994447333774390037223661273015571874470297929694033101730667693300314432928203551466104466486892700640492274591244332780103682019979160088768590287750518875035130809052395286076821232947941080296822438004001447138364741427448961217848426472541078594260959990102885679180292357131491470061668954870280356131890204051265028142813483953565247366070693365060312675372957452091500417122824753779501108946824771132076370511351808529570212918544730529345895913028629945126695678597490026307188430391463371501051405550524843600889719612508735734465017131447587029076412612647618336149445819124255641640029444818314524902052391922444687181882553460854799758374239020314248243380436526506521777844545065360068107031480906308827829908542489096634194953433083945403115833136515570743559032064103143731644106277905645513923112169228435155046652846222057477162595867035608892046639071250932174659636264083341191013247344180816215241187826901237815987051046246872025176886836389864566773086508996407055384414392695908772505727266624592634388859187438846428986633576045851639083756258996461984630428414903142911528400130585517588987420338612867390480392156728952901823654532891477264026166929869954031005783432515627112447930113478019868289063118833380303920937108068244742784188290931576347926682707002124037886962751407566195354304369236866140276917910596370362222653064842100281953672642508870315541658140269960211710265430382602880471142583323423764075206155294695844312043212350474867957793172717735454289256913169607225369533496543562120781972359241367825772949511204799601647280611306702084162369966504769133328137885709437186834143208941560671987166812550765615456841097846505707559202902687093163922438306226373551729571120355613131530281785372709043067785745055815490368471259468123941390168679788739194028241004645398531112050464256521330472060988170177996894174416147645339947371532128719109200336041560283578970894781899001812358351205224315811838971691228500104064964450656024167239202695218782035695348489278026514076455397340892448684669838621431580449221320715847106724123600219241563198935908861499518445171131641043492700789261524447270771369454988124925889954099521636808110452398709781075979235520486366270031551139074350102750608479265890378065493310501955881038957025530682961228611853141691044969001359668137127800508562260117144553640802445964590045101798876751252687012024824302193383615104250959253926575824227928460788518735733920789007282559616711556292137626184973243409309866108014254987937029893448076853724536290984335353634217929353901614037583772180184500647007400837873345587526929865064737659456090892143587568482970954906442823791497632282787458004911964283541359561018024113055011006947572519070033621691358414388745470689114170559190586684385583964043100995926453214081920102200038997782012954879270462477158497592659148973173107846180504446284226171537506335740987179850355215952190412866344032990380393736086046034883119258932052627674199166903824046480894328275021214830296814320068128363111053593575650909500778006650548977995566859886740923262527507305266311819779109529384054247975045662186221170971869581810329553127643531323109060451294001384942767456236174268051545685842024340698997615824519369281617481374510875947539945846279078784590128452164628587525095006457955678877544238255082856757311616028208441820558389046867716058289693580172295536412438861065182544697617956326001717609721482251695292770634722729939142134822676470060985736590138340455439959461060898094703313502422074136931696017968427813135624779259875941254795615638090223026106868952797017113685685275808659535325880692930173184514315310824766083745868608613397314408900706856080091636991559821594835892005455578073834332604466025469430763522111975319168424664189905329201102895872080907029854303427870168124272713882441268245943442434128993080612244211701904277253386547325675286500271721304449932824443555428409641370252726254587634856112608097615495742990850290451760336151928662809821073453443703607359526174080398616463324208317695765202921079339278001836011637200774464136606788058820971339938374395947765056014657320325493496854197128089551481661311083718016271509881563778566161249814646921454593922040970627208706534837325164562879546459189853306725183787514329526423008533329480063304568384100979621742581116896641984115648711032552897242706133839115733537771388823903489495309213098512011314548790040462617731632774720308742346312672946536595561858518568653572667958157119067194667543607167216370089786357692684711917100930522912339260090331706197467136516340876608401958710440797499611739735430764662546909426749456776844888502588740392702336503220883826445051115125157677481389888960053353422641242248964087629493798483407600112569202045092214764250726502757123140635808077591517616455705618584009762471299783194273334359439536117240501593335110754936754707608461387013362682533381193489102149965935856511856071029284640035113436030509743585607875625815735252797352927072587328176307537038588850912855101203013989077680591951231550873349058861795327944187630621850400224470717278320076387932127974084095253299514160750111474498839276097513654082271257360558690884867539216268165371835621074770774265432141772807253900774867090057225784435895800265800167525239026138743068792353838941138465877083550315939543336657767421673479092625728422646848376544425890624690307180585700281438415507527318393550811851519062611931153328943211602905433605985349660577552491527763846981739853129367965695263935359872682728607476235502245938859815689395344191866953424976364564006881746448534818470890866395875198345941446087483994883371325162264227455234961173247610878327363974972080184612289706613968630326361150399779138119464303966430840976604219428394632964707843596362621218122368563413241155658991404748493181058832159661725252891250488651516017031761739098135329189823988138740430530863076557027431445784234451836609330278684558202797210756124675547894030137063139632232450796460435323915714618116813323143102941140601198001759754660926406932140944867782183004233921782216883015261452691951186878782253335586360863457770289623677279271829962622968707211129016635051884275456535718779301255001172849919586949746043119857813068319018910290233636265894195946603609508591845051837802184654467453825122051648515250637321595813068174543494378996118615707128144913020616664870125392084485405039643036769156330263974387472159516766101444461451912139736800011460969828675881130511909506788505219815613336825323277534963210068764058366229324466188736487371398172870636459247536893599594251300870335044625013559723297033820944322527859471878114092301346316164272845226898119786180625340399714419894198541871409108397635863272765102143197982668974762710506313247448685395220104910518948428261779209532744667609424454463085679180435820718980465799307498366214748868651969661713935705098782618611306947294467502173828104950771071849688789615292528783316840572420348748732996783638001260396361036788734572769222780238587671085966474468443905233534382955655858954396977509261906379349899891168697094692301568233574780459853710180640086947843321095723360174488666695172514537007481140313108582109789943472059968065323245776759218208068858258939254506886417268077186852192287265580246724080095835156349807355606018338585735494473612435051336543523542595655714181740198574071980144967943911792181429719606516781486873229123320614687336566024234245241080515175468281557040217706237366639950371967529173747224417105070349946475719420634990476270263109708258102471930703439524972405138866095293792358229237328363594935769915709449304370185862362044757134362053852537935974232514533567396917753511093484646911399938677379753276416550533057163533631233356415293835228962634606059797065297351001319971060368092893534420083798810149284210646413881990921738946708077351581062079657049875688254475168921129814856453047262288221859681571708016441283008000736526149276669669340061081114472205943452524073423575581190910707049039155175565384562955754982591325535653765045237129994065224372112402327990491633002517242154204544639285187795619305515024860711691046903675500098629909298024325108418879945776582660549595953670880833570123595670575882881892103323955557138275927970278800049628539902440737203938352283770851418254358723559232226965816463112821200383233631882818021211505787750697154052158276009064217357522531600766925960192066014862538662395862023580230763868059444989528219194429096552106131830494976367290133199116188646018299805125394055069599422408410626921295537037334052222791088519639666422721167203792548119296464577733248649283233614109970824897496720569860794904928790252809014838486966988528855385318042102447980239956664084355064948999022173068748268172303751950484472458605658802791805385623239110008936388338176902729685057844024215720294180513026246222499667152029702270900003194104140432584772275185019908030205518905603378871723193155390140716963942534622111941580555289660619920415549564263678193765320222336337728390412951583526978741125868225022977264765293636301209885770537769425234493465040114655901724857814016335244788179874632728530788156317147685685832648911644865311578696170193358717883013040371866831142661435367881652347383484075558434845677401237238628697752316190024638287477464705689127966510233997686053612830251063016163329308491817645597543116317757759113002364205667185594015742935171784358482965962627368882628727159092026473345242768050430882911755193083393697360037277474002198976604829336830520155642642076367408572696134349768746665270712557919209200641366194507725485823441128481338330818105434217892734491151537420260263696273948875954164147598731115326039605080310096585133927654026834628862506104441394009055412804582597222919053509233555539929163658091420331096881354846296732118664030244195484970186250171035840533450664272747601328420548008416459841623332390924152600796755495350332732126171962763034163290447169517901355808493197007142060407021311588833272226349524265431338579098433588057564639644704311750366538355147970149956524241293653766126479225635270860143489150982759610415362372168015149055931074834472320531927060594106255774925988621380635351629930446952456046398061756537987204478256174011400579252003938808371379971353034055244885463053673073760112864744153382383334959512715776136801656673827840282656770022750667522442439417509766393771754707427620245554245857875617114724857461994938610738998288347546778533323982194390987431212027350835851205401392711426639954038348519985544922506446723440116577189608986164031769468557091503477130593590028647606630949997134999860631298673891966882590666330978852624720112936979318420534392721151789277557053522541162277633023612599023953607095696024594674153820400764031303972468019185621563492386466300452590489987657505091693067708625693419178268619621882606689211452029957011993412823377479274242940251472618541992578493793832679589125625260303898232387088877028551038439636848358513727737946957100142207017333480773908765396383335275459551085421881134573541083251848959997406816064542855107580680681814056864071447835180900421069629444694935956281740365005917655880198915224501684994343722272446897808622317097767917894314520562771544863189732390738628223941245621947207274302200149392906802502613548295390889780168593466817492268089838184108651298325886487705784773216481168353697696553364445643577668271346561219292627404501534859038676465055950933811806396701436758851879017921967830953838321062992605214965642804356709647921737883973360126204343060446734836373232124844181261571813136288399306748157314214432428876944717472663200460630244128288426028556236034887174914593965677825026404335740624629034404131113237007112014195667045953691550955470024407150767644727334445962132114618415502844677932996207331502264543420001207823050728402402736364831120979999199796697350173607187975744270911427927572372391459751592070984050394079848169164612494219439491115716284077929295748289601501388533877451323243648331476169028114430375353134184111094420078879869285530532868364716909299632866340279150061278650755140134990291573943151759632469996901837288079903507941287886334069157783356961747506367105170786361990757508791193909544819815559055127061225424570387575198902892626906424252348621036843960295767491321517945950424784498930605189673477314572922018522674000609916631496217249160384614210819777230617886608904719310238364134386245995518110804913082169398670582700401298476631174941648158056107542457066233244665017591951774066409328817455667359471438124317915715289259811695518768079095998000791967719670183342076969560804837069583605595151076416084199835246889501921003160136963534495002558958905355980601264963738524010620220508729293766747308431205857185161881659095401798005046475562617049350654388381302964978588147378588207835303915758641284758087859642055260513460794733177931341722387717651435899444458425971439641778791910115458537891206667307069082323007257170189160624575682374601272174885093507818079459428177181652744091792033609318165833423323793247816037237046064455451363001432423300604058917647899544150953772678449011376878429424739129016295827376030852729567397506864657663073851908607591608264864497640481287268450856720973757037917375817928956283866003770360698402382596393227427835570909122754044083979085797028794088756124065603123528397775775410307144094091271113826727679833803134007602906121281603599465855798941776501874730586795979128657740343095515328533732290158097266923409857980493183053365810469651039322958718622688890147241088883860438340938541406250461630308480203493755542136934508141672338249789785263962140814845540891005835107504933061738328169761520418599964110145448311620839896480158839410420487620513890742233499971723144455284835169884616112732042066168286967970060115578603917492725341849335849617977968215949677935891898531175466183189547614355154706281205467384196369737904300989196389599707442947943744184830309819416296249454884243318765528675635186420334061001081076324048357174843221277324720380131452597754920727515923724072817665399882148082482949593917774406757303767954209376686687516544814062554343322022751098619360130537272624077072968320190239706626585282740779262127337811885630806595535278309592184149200604482625946703547734598061348400988604984817975922820400092545794434436209718860297815747610411016070969116648252113836312025517789705779891577220427794832668320281167759317040120135130202966827829415250182782508770760803650440528127632182061302930283098187552211102011095176877825297396030631171341701403589056999435897181073650846379669763416274092118582360656245919556473602671190663256414011420943805141594079756150050327176616195294118713723038028594974778807042534419150177456684101467036172884699381447344845224189225040204688110751357767981324082742212911950698441399993942975925189938146169349570000170224344656575940627847421326568178525416666808428833046299256841223970217307532286846092354201528259012505458898483963463260730432288212825735879619444137114488264637504310726764459047102892243168577711332235265917005269732493148812767268202891892593116644852203063034043189523240117958710919408347835519337301660284656662554892518281936930725372857268515869745736916475070590603113991114976344006689304262402286521992964477603062533650858106761702200880158449851343399359953404791078465100891945528736780278416914331097485154470777021688838672430036199467655922375063110667705952134131767085314550878931054139650524543636573706156470033130216806299689158509677379034433685901684256391040368330509706154690992257046552215229894700650809490449559043028652027298976175049069532365839527399599717428293352181024674375401282549016669274219062621351503478703379219634232831912576576619197806328642446374779772678381820076112802823765592593208975096842206770620646846226049427687357172460704627276336287486621413095826426708566004257141601178964700881391606459030802755786092489986137998502872789194851483112024723095474836394574079560633345181675808530318847957582305099730168382026365215130119764839410063370130200669489898771609937118240143005406948994020300475977038329143614091878165451298379173968466874317978281016869281187955075847669370066097356845463122402092454457011284788241160840102043748440508510553349866545526727338984749869587296745878640193654572383268538670986306280989656013152277525874388097963120484001399999864609303538211951834926335557081324546582192255981063600043302284982463879730777881082227036534104618982740189343538221537549254506503393488667218417331520641690936002146318748375327477611169608281379562197568708907030581367528792975535195020945830924065829392117717862220926277992316723720843150321968931124800073041081375624049184652463472493909319399707939632291494513997535603564258514702481460251374589219132374605968523449553426467807836870198906439702625447086428242684522727463164183831035819672351474334162662636839711972897791536451534391449301811258873685801542906376283199307612756947521790104293946080775346997306228678196710157679960523391286767074347004650552225767607734007344038062421865353505743822207349869562440579554993191226881927025063103317103190361060016936211362416612447868184093917462445212686539079036486783495417335156719850767419641715915984051615901942645881532697302970847005219316420203096705901449565801499242562101288099199783338901253856799424628421987553074621938908668190665647845665038956168658338238276117009381337901875547995817622391858984990033614988372104578278361512633482014934525637416723566965782605100983384662668823338625203423206331578851789190042608633812726050994518272632519501732009916154051274773595778463718346871727560558980047126154921157080164024679026861144338987402432798345638125835023390356415215854404071225558820916214088561234313804958547348335277337779680880761755538077928208790956848742772354424049280865497219167202481261719708139166377503436166303412192333516920528023806683598580171731453704547377514192238864327121980828056624017551389641984382273560379722463645492307116494133701601865535661009383179534289803940563610881438855463347060154556481802749814223638566714178807467053358510492097412399057714188326356329596698507383282075606788584985119356828406096421557837506232564474461926097524586995706316134561186390794106511660916137206184505355381352670732184732651669190392153675863304004623861647208343294223363093016280317949151975660819927958559145852585697469926285837581200805403891751915200401998247136273508148976476892721748009997323395133292100157499623107265297526532661420724150981108963331320153405037653793480307933992608130987970760410600768436645994978389814780956229669138035171100431281938776627191491483115978384277263917587519015048276845992727841768006451126466910668466855767372336702550546296330037681257611944789101880670519380665232759287294526782486305345394379785745539671536626898374900625865855572528539632512672188202816584680525384343639043530407032769171629511449748294606244548863313885449930584319026707921745455944355838407949419274897412061569105266401443380959522595176188691775694291837002608757299699423445694836127062416637020790832012164043878085442950204350261755396816767140144986490693417139326057722893586511851191882170396811942608390852817847626486212273765284068393786530902474095821500940192907951639474082609128271392800347251663426997349462036979030340912807880557318588797908269606284809781544422551168827136033651457063548417676026111159777315132437066211681693212430937110945457062014366581351472206356228082827458108413877588785968146206895805061663101519036892457057739535994510130026590139563719473680665384825427371373784061608615708887903359539832520519529116064847467283004034433272648306997285124574689422236151812935049353359791686445470001332340691908386113707609979964120718908958977018079666459236666106786100078690303810596568124890951716415298807892271389341203133195329625276047327824958782953938916394878127230416753405599952885111208980814875969224339525460011040587608613217389776544853920891434102703632187351349277573547076226546521861429031915381410687076057847259364697493647169845672239794531184955951078393111004344385004743898796970744802485960638841123937133037529181158772655808413024517603906066794249688335908920713951166353031585105173684131512977542388041758326207658705216226654816553478618865121299970191171855902877811976751349756644016578479273157272643724858809936208833681517714723307440371513553391707224481134089134723578913924690470717207477891318577039129816945191140444334147231480837904477262961028186197631045796920547135251322258931565683233376506899245437457804359595751796242012684186314867856010008925662513839387074753937948949067941837990725463204169467246855690630036184952460379535950103299760074592776186817242701318987671108524329354973549112120522590760436318294080246059415901478787399668923690705177428919029729944402618701401123628006764613971377257083163282592092256400593251182075284239756547692968442521326094491396852260517680156514949075578165967975008716629943714168275505697582257314850921512462755372864187849477035374734022823426652437183457222696106509439502045456820201412487273018837278006792524514045677175295283667706530799969598642337550029189531886539605382676207522200260596340290852619851942696308054504585690349948083673486877848974842947450778476436684276310101591163213529697810386864556826500340901879845131300690204065593199161669502025597847943187934687042476707897008346919682296398355269250878358366924594772319508391297321544657312613763845585063382349117790484824106963554062885975250685078617888595022414000496026255575686510712428092726643959220942413768203480049064764062944130337609083699573523665990577424007213918476050001066838852013360011825650769971112450375439263868113312888014037406764854622991673072770924665882943816456845823979108829385384193697563424798580265185331830876630607895014527391645998828387942009487092202540190300023042334311093248450417752289319567598719696551824978739574124706591448733956101881538812237288315243759477100673688202159887459836759484038357338937872040693370201174557825780945142258890049109321459538408087249422265758151787286816949825662677003418449183554342161338643893323664018816772967104934434756213718105332949309439212490424888843102174568144151894634235116790675268158105209457173695154930200291697042701290255568617933790773871549118433160941666116605589144189823203716089215742990304770873426985508399605314444583475770673408196143166855825336973677983543531375145425106393445179410732571644313871611057995993863021633105133085450257994700993021517156040875240160120248638212770313797942440452171491510526521698453238533364047848836278727161534594581219515775630613262108497407931001792788199305061960111091577097355673157182377062180994334957936499933580102087116171538152161649879142947504506050516044944053155941111563136041075385524489844335521187829234457131055803344517778226955615268261030553202609562111362590116019369194961576526261278543831103083208857309871985554874417688469286219319254455876654440156733569463577200368324764478742521487302885266565602072216060114478023148880569282001512294021333090001239461995074805928848660329179797868526191692054370958249042009065758654033743680240035951574240237309309355042549244254963421305608843731542639134782758327218663104634459720831617260515710611637630908881758037370999640096037367472606524674563301586840724734302475145414627580931975171667808703378901221705577754484826734058808656380323618588563943656827376604055911316746002902109653438541775486971781591601722095327062036345225223355991927962064812531023304743063506530497888664258869839938739272867322508983309744390512037740872196380098297203833590753774409186783500483274242005996509743202266734188769481690865536525150829548368766674810706389839887901288728520547453595541793983002772588693004564159009034177033554829940504940239971239745072242902770974594472391744704316053907400321721396637149423542927772087484938102574300407457595490629680502581136411373461908713990840352306168136592048286971862766610396168947849154568296746807235252033241387001289893283990323445168432143535241392385245754861020210063665509609253899079910443833077576490670052815130386392415895653300153487386788537110992648635644999101845609017287214277590987305733967462339153798544160299946961398321804008276087651760599230487723463603455164121973936420843361809710221029132314979514214475538897090139249332035033451586363092535757356346250723480568535018934462130456772983175857393860205521503376232090869143333191458272310048901996144344632592210832812428447199548950996858855307448627545884632743180194399533496771731958634320516326344275056082471214659558918888515280006672895857700078807495085692716810285836393257766372851679002621461486096971282014544961437646229028283380867757105379594603890945066428109431504631608167930143375760557588597333559831560356980613705140035831221080915134842745033562026426905223968720193208825154109034515838483383879229030532358173799318809848736114225681138213082581934231333071664527897871305675682376902364621079202988748067705631571974814734439185402218737010141163635781387143463297660533765670221313983823757740477339430317766273271366695929491251387883830979277466397574623261103136202289617111421336236989324371369636578003433581906126244002843993260530317132835399782793423366625479552769819304693244904616109242617928178553748467482255976065553055301456407227098315517536683592712677103414339144811025797695833871454651607101963306804517698555585458097273925934383457720774968473633381826485242823455448737750129379319331475290020236380163749365458804287937286581843812400986719588728947152352230225022077041526531949405519984218995517673577190237075232222619911555809002560372311583218321438238285787040735610850331218553935936264516494853105137987726591104621607703023754372910906660315280200679274016504583001727030975395188283945298073361746132513342112684382029332329601236021680572586815710476648260128553833388108841470233419182530369772730337064168160660392412139235829637590814517947249697160323014218266303771803605448530916236028546349735452524509017218097651828275771663542108954239411216024555825166326934323633970046458131697113739970468244474277254766165670171729761483957505384913673133997818373179140901320719747905638931106438634933971378598656872235206228208938816271427650966549574574811688729407624422946856996402645034060534561500780141452304707697521482577975170093919292637087506135164994929534401213165856291691939906231969749891304647935591124458576712627247235444451910428563580959639874245496270670616773703070921060198670979427555396034150440518274331834346080207872059807725011032974210028659186231402853226862489318398247349890929361638764270984049964788393445089831443081181035170218852395155942560842247653834847709767212554508389288586869356040324666744512943044229274887313089102647850499503140426685489254332663708950859820681543172069181184670960748701985125795269505542978087487387538647164300975253720022714031596307146979280275878557305873078505520525748571644815418002340956263269556052631365707529028923315681327225375892967821907933146548684536778392001866200884488919456352939224638320248806579479524248019806767482265941873465777454806433559654870448283190164612642140688050723988325611811162610042069221966672213591693061764528382136022714053589749811792152666931567387877659819719962296399340217322579065235710464476681437951328885681594034924859972136631218949295950444884126430863842806097433564356176064555327654668879305703232944507614428454931673123797103636820824801140830596424539377485059546610969613173785875420879106438381816441335125078247740477187165601954748570906671531041176782444321340340502645417854053576361810502320806766042500434500019553623090381147927237271496620490370916946611639210335847794353008218045390499608228823995303418576768048071423965158571482867378590962244334266399838810988080451174287550604544158444578973825875749486534021545159209241915087269097594227752058241861982750136073858318303076826187651955817952413134122735120337074691946400142880392292063944920844879713710328462680848163682949455516313771925943974927878060535954406634480617319996152677338196957929140275932093859492897301612945760254970557212915009897917918832347933100494041485924083036038490836741104187977729762955982362897366233210341180896279860194820735107319284022401879565637247356761982963398803517241698007465134078799190092171025367006345023037001650903958533074433461335422031665125021056757621226825027793877045818094818154009929222435073285776526621596716422836362186956040340206155539020216910013416143263722768973268863491724216864691475122310642791282593127146507169706899216931881459439780801096833967831259498012730276637576631229698469386004400831624463043470496476692829999493625242116295257294004062016973418523272098275065123024850788495893146707997415392239470859641614811394963158507245340896481701265934051408605465458644968175323858295057619103448927943553623720344231600851200008194109730464016347727956884834738691510321985651974032692357236827572870294190387589562603997069927081143141491114749665188295966315639011347461919189060155632826094955919799571978909836407525159977781989020713214441141367768444159403831975345979630054495572547265705007409678003153333654933266988627793501484998636920418513846501068138621175133473033709847244093583221293834209980665603439884969817922978251501374664086965810771399138808011081727742158315545804588846340686254289829481004057143276924877864964920480997819915845465481135628247787387452608786651348045417401847562604710603133023722777586622792539994855295423153163178139902033580205095871952864636004239653261109503680930476957171324902827413129536197623210672390762830888993843497130643541039577086506742262040158888981288978522425172941885069877806137104841618609723693581549820037989960777780441810570226883283996888478267816432141112998329574428332577625514349515929327437469375196863977207904060462496128245299749159072441160904705234644220314420405855434877168565622304431601398771622322104837740495418058577884635276492119384945518482397728925153979008043579646474845757448484685586341976174584651848130530768389558806974901559097498546374500114179502177628166378441654980811170279177115317397262750565139419091757657662420038993743708476328244507379311136666214364330106244730693530226500329171267967339152344897465021695091675830455374896126498933290595351667399673179493140428939131889575788490085891146876307962049077113663796790828337138535112559113959807244304396409855638011541271484504723293801412553855766223467626797397007235621357765612312975084261241788566607762597677930624601957733882779843810864230212941989913307780031368277951978281525028515237220685470690332015843212331205850634779641613639879322653662312572755336976619897504223082992439103253664666740908211106186831684986816441332550250256242670102623863841670460230707198100946658826462916480318546350209349158437710067436680129760286816456040284825230625156352519320905166105039747761380920253046698569773411854700480175214869934648174784139260369955528248766386007191215338769991043958496723866485817774797150091296267520340461332712324001164576011363771366032234317916271642729965944660582152466356893935034905579293085772958562123208669372644800934354224727201746594042494747482032737104563223346364574957503750091139850268618412553846011961363986870731448572113438013882323246048100384121431432882958929593605715743183315730935656179786883189059037212291279505246585890772425160788299343749331040857923172641257450473131171047305567810489136286681411810422640340785434589511103584693053238612682179906595136047784520756148561892759818587423064375393917940059842241638178563047495082360291080455445781543128734344859939429576127083749070272241218341755529546362262673234141921731739063205341087575572374634075578528504201368082261780092841093301418894607864247614151667599183475928075517208241460097683142647725796545255348567583856551756467839577209717168979228554101148002748676362783473314433128418371037986290463210935125204453799834471038907247944024234930540329900664512623363009540833708484711075444845070652018359745966404093031904620385998894987091250111043131892467635350380143167612556226594843243070915448987078095693761018499213688315639787467317816017578707119808196715278164041830915293822170742522207707758393287656562186926491492397058091819392929677853455091283911394773206787530028924478018184475734523011842109390404026631502861360899365323655532845733925322683991845777162845510446097264403402463131233101886572135121425751413074181181965214602480515905229002364425647440571858468425454981056965659846861424314125427245234187775229455987958544711689797692248727214633854094933731803286885492741707316552646988090478514958670387962616669142475414427220681820680929036300589375910510579451334827716635699532223057527278494170083859707222196556217459177679820660467770184881001565315821375439683726159790642926416833368779338559357004176003993171276953864467365024347689577472283634975721516643691217205387157374511075605037942709704907923199814317333837195283125963708053746101574535887520940080603035280832389247777372224480122681541854603098063276433901751431673798481494190249655753078383592200468865820869715998146738739495763580293147041448906209634943003405538218998188442800708099127946402335077242291952394175277493932190917486205336996117504386093208416902966760959933833010919896592009937331030600097776542341816377879933532344899928959896766238471766999480346448904328435457546080671253257785202345367844676392806031407390888583346773312551368747366037530217542953729339534193018560987668854778873361758025755714665177697895919488676728560460858671609357095393862862980747142905302276746062733612525749599976764246292608846079638148439401781276677458236915462574661901575243741235607504595443079690052938756781530976038030677474291765933259354051296539232172188969770195926991591396492020310100295251464388176234290905749808546578775865820377015022570901758628935116904679858062895698000672184425625335321595150748403244842484314144203880342565563614679669834143036833838258126007074351430431679618315783352512241114128774702324196707253169168841089639342680997527608676080181054922522863735463846628903085136404569964956714951149201398463557444351726064542247326641484384821386195907949412862658569521803190383750807709538540047495216663010369882714136163960713530914026414694583391298239618963866345333987166049761789578164337487147802180245697346077463843549745756435528239936661230247437399307852514167227845954774678779219878254278909729864898610753459576171792699255172152985977522237350616434483079918191052258648678838624183748060194737561337104919771697426998684354887978316567664565982964384824763874638455695631324327324394835702138305654859044911580768237375702744804137738286082004171966787402431785741657029806888189322133336047633290923858023516615116994493498505037422484540106023872767003714351106844782463807920660352140078725304574719032657525200713065297652978908813638323460882007466496076816648106679371869958056360156894232695657383804446994536227002098654445187360566444089508929216278624669590517522768618428460120020557221730663805791491698980983501544565308608228549215371395733458184158848898721324193225325823966042139065986938765644390318562502148864318728814028287643018546407489293082001431104740916122807198408427588814662090536483079686913116211793113812446461865159285848878757615220206281513479322871233735074891132499453665057225886046445615857748342161297609017485025680875870668905198970094269442861447969630799228439124254224669660684462009686872288219781515513113098600342755825533126991597721996513467331291961942818868367989030769877027040405316980363187172998355351334182632620681784554887535774863228418915989906492072501515056213383959958198072394808160075921904172744095419113653402835409666807218853792952883470977222591988689376416110021515328750543848350972594072150974300880445101796727854674006232810526344434988285398658182039700816621135832603067428915450534573235949441722231108123863175479110234906880421338013291370183196283903919885365723612490161991857816011199760694240215917335112067111616855245573893567154601836544466218841586369280440546484831078206922708236500939841754779643458997930560202180324544261398362246621314326721944964537941201708867143935340292218250170740320266789677438633946957480256854795725401389913945906613064400726606859903228656846747479218288238690518896135174397410554867457675632750453745916749653890869068400109930705653359750216382948344107999840389046694372754300348212059055828359186865888902347704992230886482979524997399741201657880397456268355131305564940160895839147520787120355568065932265903516566757564489539958001211092859864026551333821841785538506608322467884778120354305360829353104375679340942236457112678898044657882239208567401298644354506618505832120493377736999463416708880490722400977356279033924588225076447661068630400441969190950202995289717334971707072451860122306691955435286010259510274112081565855688522169500686456322274140662790805821658210663911900377378430417038993535236858832022832706417140222085132638502172174799510305882721850365407614474248312236925406935454466980459769960621994916103029310444591066994367107404355080478597381518053979101184639151234043597391868569899024843073588771928646215074104771973622602206045360826608495371695275152961172801188016645712992370187269070408482025868864478003249932714455631087025951077274828072805509089706035241523098227950290333013818193470626699834842417597779168939225064566608687564460819872208247105239770437875280927665798527842492524904752409755623611068564092536980336808723186881402859697480286883015323367875105581474103215061343928702057978059152115984347867409285037531210197783958421245170137283609744644445413407740686417775416086493258610290113848576441197644149175416503083140393047893065578119609361448366534998069327133668327434082803982568875984098160950038496331578885241016666257052598293508337453426636225039898314812623861390445175007033458743017760805602006468861786062671996667322248890898925819830625033958043737074948731745152354040280248179383349358485925501158522164824677117648008099993007431611597198009926980266390131876636998550770818024644416491476225708417257224287349201268809146613317397954938465717446136725872724089941554797670022841131074958668363109067741614380234676729768125035819724074372269152081467595933964584614199800942464191156471802560371368053139990193438843616296263048106647772918471925045601935269834246401465193338074022903494380862869238239490497431750547320617838893015698604366174699663289617334494740471913049648123473628857732519753547311733347985633128218257521927258412652944949685630866242054299233653257409367813229793783294501719883670066551517719928963097721082197475100615099784483784543923457913468916155204953855590147531036553584402873231852137748462992679813214460014390316607337597207718757145553633080228401854003830552080498818554157989169594190885777301301402323877038491250580716296245267187489082425500215316738864047018877257466394122356428857336490971529580136590190126807399875799697733908654549773026337509478202979537503907728286022858270408581980201365259819776244982359459793474344765900292502491273576226488698716023824953714456908830190781800181269971796755846368882633420741781240362067481636748411772835922137926069735394563600546271715171503519959715977477617221315501929328909818076464641321063077464139751669581768806224045863315742877782928516938857547777438799770500372503706868990969507832879939731620168462488108650392311671199378330131159496479594084757715401457636116430291376087931300480264701107858731541152232782614988838429864644436763770144155527367460362426877063142788902745103005117144247404804813915439767453832541188849263234864737042257363730743375669688715078912156372999891978550172686717968937750796155827827158591331064930460071090036984710624812289967410365836555742923633996559375963070802880086489968938467368153490215033416435912713475127710864980245720289173599007135928051494296396704513243259535350192546979623202135563049566271983217234356835088998107762839630437548726082542606987713941056350523032570440064115761287210689421880955855506336633680288095941548462635907221095799859772526713627615131648822210997252492465724684019487354529058613804793996054422441161877637025682391900494783846491892068009011828097858160435503619828142625686152063644049972470205326965223757591646347798187469226698565359826589555075080804642588472817414731894889009046119856123645142554817732811595458432645474254234834182664914996781519127254966006284923476520705974053583818505430964848219192774800608553530802363549323815339159896536924096664182918670166503552945552440787592232919801777266896847489701378599994182758039979750544161704550563133102981618780508304318546984236659594260457666101066003482369345714745444044232309759416533690749811491454432277062235374733022842472806846704892558756601452820691601835839449503139332785324985516482312643254771144486437546693290886607913814271401883037649190118029232163818100983197980148422947391381192168877292852495527032438357971211939338114120322675572443112936864272355109670662830892450117335389849579872409150768736291768704791784447266113419029386938857362042702076078244583623077120665809450718299632009146380494835771056470429341611241419529081068098628450985523600536329981353471695997745227595046692909687578532979311943495517099798245135066889214854450034688096217795299685307423576768566439393329176948858580403285474084697638149533834412877617943575322894888643435627586840135363839036724700647532553993493961259730316049528003328345358368041428252519756185328947258263974104997401593829716082139630989362347246963844013044125823650193382067897799188546327955640147560891600518830201278461070550770419749589861271674414534425904970174186221589422293860643194767953969940389163857441388927989831806887452659638585818751156252489803669917835111683552961670364863093589446734125136597314565261099595559603478739416734346611871908011841949303911828079395042924521868913227977117758834425161334968281200370780532597700325204697377853287244535220454985813271097578490906520515276772489823320750321089312558519668758139163140427561713776563192097807100125106154617560197586119966975778240726658659566165419661521852802776903498802676644864831327851010645744534216390309086502617541826753220717322473950498458260533756483913812977447273704355903211234031296194083130897581177940945843647366125403042355270124347434345783344665906191997793779137869822499258527574112115587693257597691983002537335983852491703661147831351027314755986267754101187110891201545833691012194234692298727808811728937506005974861720649509195727078515966845008807922813951996407152602837294458586321309436888103011093430573214825682639029456925751914166013266317008090028526669173869000079223817325966253950400095558496069494394804603344618384669314995094269476388561444264819931425128800413412547749256205403147041521185702077243412835357343874563981364531034927636764335645966239472488465468558632684442613344926768588151431919551152316889397864637309971013977017345397781290233061138640807188065787555556138849800508482084680146834606794672383874868437645783831158691429535959488423230753695692837043997609026355397810367968053129689002452228367979817005397593575696044370202762369658172602143955713373969318284488843954661270220562877868586774859070133168968696836571154710823022072864857909489754660214159505027259383809204492579524265474933498469837067627802345190693156044824312823781696747340153840853560906228498301987845873127291835307763513854821602850895381602807892985347080819147209150014016379602031556811933647570462763009722918054478039172117252834185021198691082072232565511005793490155402406102675927619657602248297766355691150724516403118732217288721950705421903294288565019048905588790326241955129233755979731329531136453479324316159997738789293058694248687933278379227407002412638034119539713387391206480458402874915002558869699056669424946110386451569884084923594388360092106703244289696108852951788911783308087871811154113940556039213688826328557658530597967871538661469563968650505143766088022199190085211864162679676923090609798444573664084403744681036018023386015411820230034763266096592553019350879999162482701218063231496956387185306696606162007564540382146195685094533760547528081873672674866465153590918444909718370036207301277866566350348610535944480759657638784736512808042679412615297469092578018165919215141794662505890883368588498947999864026219194041023223410137228293612885112482395526326687531076449162891347918060625015435590910541368373673125121900703030688786370704151571108737220018434304253959022317295018180923033984861171898767194625262274497297093060981666129486502746691899010814049014825859519751309225001047536743960364583352861539710262524545104183372783859172699882782387639732501067080346142344576154675002031955888575351816407469805498104783417379318917770291258276098346950164128031412557933675070277821994262407688492360721858227700718800560118393794909637574275264395176952970000262365857478812562643567581458682138299957754230126617499211739772070668658514296646576374907221939212083578646450669668540819290406296809753129387868601677867655596255115759826127732617480082328762616381692801773262509854915630744443594139611045465701394118319217679145691063815227057622180684663988436311385960638881667837783943416071935350461574458304205863151517820747413908762432229810720138884447258394419953510185146952094318851101402774984610159691940641691225373201560858535622968199152469462411677456090523146569023517885582703751499767881552603530381685898971410215515203780502034744174169647597841402862993091573696972556060089542919613385770048245297647626168289791404645336857475764838735891034501725942609797661736364094408384777703467486227656573822236041694888362304845245777389475178249734450252928158098828147422511455470741905793152873517885688777473041625446847707824574120445629187378476050652558850615447031371612578979136239331544909936665218650297061666993815340465555079601822835298777577650355975107162879889217210702853436792681354289501447067072823242346266026787603608411964136376338920100840310747948849068051610218685053236600654830088348650733917789828548140356961595268284178054517658989242260743429325074621080444974794723742943633625659512716467319708859791019683872525353001670418800162713831869147004211946990165704553336887749121191172459081668725008402869618790011138074326726610185308835125312670302706419069382479714334753252152116199899496858397717827784091059142798286450276457083778151763852236369347304976433133066044053740857393630670254920895115288497558084580027885958538356510652694291619816731094482214811785859084386309468616350071499549326900162748254285459683513358094434284431346634097547682620723777048451335884820672343366111245681768075731687174689520824158204087325239898322617966389014598503568811734458359775378772658027318397238114525790212142452075337806826795438442012230775316827166762672116517816261691536419213544782255594008454880195421086425381034940624847080354101393418759950738756549607497198137895544510451559564528435103642710743545727193049539962596061713053244223876032114699212998496493996920039164349182579164523274066317912243282312670868864984373107396580489993841447372025828283783582303123988186650324471087556780642792609336150070158210056935598005000522933199257372354471077737154029244926042644269967448790694032405452865738964763063922978507235455750238690560851908300933276951644846003545755572590416083223216287843491915859194139496276371605674418985169379242170538302542641062742352520699596279401360157443403642421356226361740213389125006984852829547506346164414002539425415804043065767520051623591504918009663225706306877367938473093711713887856955743658875908455422452322376609588416271976897600973862314912625890230778468301652330489815639828975772458019798923347256453696049876634386381012649435575258576001981655332836192022540270888608497997569051214936813483631275925354369540634691021080511869626674935531539717432116839366112097106978208143139540578110924559534249022140235421475271851291698773835493460777890001136908313833735535673194502227011120263227278451968335374287438902942567124465567841510221742440838359952662010612858846032578220002863031546203034023879094463301713519670699531798619505274912905352392801118475255320221210726207080998431240887344235376490986748462360986340664273624059591683565065647697559961254877961048651726012692060679828627535885354920931979465420741385932768841173436548412314779521297769718709835787681734539160468057707271487166882988506253109014933765266135973759537278342385593364327026438052822392283325170406161409197919612996659407402478128901636502770292313265679738412217948540421947579265550449456492650313495351500050533850217855273671592467925744491582090146373190639160164698982516706051747631315502851621696675796859499910401748392841791636289233075127865067558093047706185374710352325771734202608833641586888668154920964521681007556202581590497722160816301124499743774820388959069328540791331514488192938774033133103447791940726800531652944360114773453875613951660594961934120246492971569737711559169222036031296039796881021427799576223551035069758117440748228691132353367249373404663434662383113863341295847273165897883453064963732624266272459434884835207218023242886214612855046855043618840134577048374947348353264718092935761561862844975908101887479900000021240659534736414591445573406090778144299382940957539645687556340710391066684978398019565091137653943372339401965143945392760002508917680061689789301008083361895191144974174324315542144017762662043805849631237878953563135767563650733208942101222311595021126713974512156825781127792365819838772375549312986334441647164348060256726625621531445662765398306910024738189293000259621832998587697125418505627210170906958967983440146678720572325815269131371490314402879111376483207583702958787427152729310993856358776512915914674590147176222159469731971837253077768300998710516115185331226531858664469703138141759237793944587963428583477178285747790206745255634039306365047461902559395585910903968393569093142194421062794386596884695610243751682489507876597546868797180325024736459179849813503432144360515086015749999081683011148347481865738826134338095572450904225688613116193951995633383132794303884238493285698468354191765513360839422125269881884668779849488494927039035007221091129191440085018117110908002646332383099146878137739698055658728813828433795966230295549416898468417342106050982660011588310300252602187088323730431394082867507665187088848833345582500835180637685059296070889008992414329732238964421722321755470628527143512556634630161987788042418394184830125796557047531175921893331451425546544442533751274917218754500519986653561807773586017655491804581368325507157631591931570464474696493924372622698934485682814338222562059191981559081729216483228520838188934138615097913744564462572744736307119610936689164899208678987065626416441536645869871062572932652145163193305144527699892057245239642641427845402292860625482753301969838765093886260534162963441120208467517871985977142741997191926658035858495796496935619055280778681124937332098060458566417528770555227478850559873141123606842445325158317562348685406058312493420724260581080731467507955872337585929907049013045271774580165841118383973513579291270140066588233748981516057461884727132860850389721196779459523726718098076209581520028973643631859254224982505261432167853454772661847800652618536369504057348971502030882748294073695551788795177660250443740257672757616865096031514552178442597124740960267897049702817744274791142037728772308582429948226367797456334207205656002883625198445719045883406718548471458686565221877930763277769798352719905092577150237036229628804315191965030830757301904626536005768514311420809922443018485595185850045357747661882421318152883641594725844080166385985984698816719798419285852243204917510689024892940614239033748056357150601975879557110204773214393927221701593278250463523831088647371273936911513452037112067063827333984339015253848987304448767117510446933928463637977361487987490285916710376774511809376362493111826680805524277690713431228446644506914146477530139706926061316743821122428358849619580010516257381282253722241692218935738767219661309026434913962940709627396731911235040680025490042403131288725453033019719882489213939651610743127841390865409966480359721312373488618760296510247346288811036365460710511618925421426662921895868074516877499856994798738555166311908415508363532370174344355999475428656339707620161216291926832648826517608065462796619839584481375144807888757164336926816358413570708394481829822886968294588085847399581639223369577603700959935685988821195766583516730865286009870334799616137810127527522213931921256779986204787374975470783739255714748029445049053152204451338443463820835953635028234330906042772243282390692625540351409726884302037647249983814610854979018836370417897172950463243560095959775355651095155269035616133201731472686935271929240916039550194701284244606980468305734184559317652386458278977709666420528025810794708652764441631603663373043034626437600343886667726055890865483591504666441741571021751112463882434217473354411246208235931645956542741394692133910446159563193468138686623758306489336641732635179209620587833303770905818469858538555487261642323234543348040922664882286396545147956661834270071258542055252063457430145009882990147698537415710048204336584313001094593936815489439025229017417978800342477366633039082242788257153932874694718429910778671695354912266150293055628336025274815541372968273588569601368819107423875535135508624173540823609332689172148239493804043388072435792580730268927161180472855068287951320268896734310402216055683109945725005203409581211223438087856680656516325213163411250464155503793266451232474479628905153283673515597425181799767059700130616052167704879202684001528960272679300387452901994566537197957107823048604749445683432621804095992053506621706142829183033183136207099597923836523079852171929034582186444266713406376859153973931852053117038043989803888679959096636537107513925029855616462357749951758711064354524383694328460757635509424346524010972613845319425799585346248256022802777851875802297631965610310342209704695079056342896672049353313128094006392370077066286561348141324947356515761076378627841337765560388224660773257461965266344761403883585214372469080576594741873909753141417996230775557812398547463886915596808089867204474160073273476288376121287625465963278775565915367104981185390155854166856870932440005686873407927691762115002730518900474808882822577748875291858477067329277682328529696607599899677150995877261870527917591851730101885644744545295440417734951096334717153212824900842589969057859655236909498050387790736451290606728327567014623379058968280775028946523542285799950799844074782281338516973780755773930478069847213215988385560259362348079392708974017692614893624839610251652053712433215605421565156106657396954791529865473792671086800646479164601210023899852706954463771176182263461584329169427990522781970158577451086283771940035929528020438884648407233363507983120845023085064838030718317882651219631372018692845422815619158027464747081506180040990013312798268355090029357938896355314054734519977354255669485809459053436020427776621741904820144900880155754777291764957813492914463679446566262525582923950194230961273727047152825731345670832011817363213668305946882265450943262712056408800469552142505452482992044388729987854139618891666702720669571940128764208645583864323572408994582145237223313667067486282174900237462522788466908386438383476688936540474885432879693179110248621847676635787901849548159173357786278948544792037976225655948916368866855048262398903025126101341102317594372639554559672948487938540146478005491412895116060992611703619691684434746893669076386739597710016981454466203777817953283349326089575283284402250816920839719873672572230722901170484629427119727041828351320090236177226084030225279134436985545055283505381231180730762815472099761726561641153606079663042394180514448579967958326300431824995949326954787352614764199729592927343511091661652689182997589505739792755841766595746442310811265787830862083518202780471189720825800906846321499041755786615061652047608173621985561673206763185036602977590740855675327736135796073513481461206490711664223475056586704023017862944255049629934896056913311878241712365581061208763895377418817941117236707820758667722191958278083999556558147374448590345393980397015413433096659283782196107475524977689392453928868381408037856568515915690534624389068199379206811712272425557139939413101179155028485438907673768323507479179568291407559238892578350544188816320369383687116433299601179780186150576098129976970800855252028751846823551158412448681743301286074260566859132222238104424413788869276099275988815449963623334597759637229291416397529622916818042811524399030620622916786071431605021297129710709147671915338343581882174184958718755523526887400629967786851627144179593423733136811633335008214883987720276437669457195303312599811667258099898415468191428568379340860218090084754137374208239800827833019004248145289079056790731199785027017886565291043115844854376627131071250204797121086526732133147968104362115218173163522295755636916858040489337038225021471440664993678348504918885676673004533938347166337331021686699287180798704804776172750575273061776128587496622970535631247362566998964164682948682091578851395525663736660025130999537933335159307398968834786110395408582277036947658063885210736006926978127524257157170056822361880482128873319705175575259196481676209788834209115344697485676318560234423085921175736160259260723062087197065398951834447253846460099721442479645243013791370150113548254333346705651161009002129502702797385003599042183514869689890682179511783061090671073920665030114758434405009420311092408435147596278788874604320966717703422232310378670589337991084613635757823111885769274592588286739501390729034688128380071951433003389777410026961205283808075825724605848140859529098318366642042854326044545771018130929739606503163808794467021687211548058726324149685370110039575905517474063031561613004906403555679127371231091518285419322738763531941315477410800739869875261099588089391782921916976001507845352493740287664647647040138544086649941723918878953461197861350126014828812573269703595297873711547063837189696093488510005510490259363573008276921574035804572873194092125855727213187549660726537461776262582208063523239354135635417027250828906407979348079350041653014536763492691605835500506183505193810070815594281279583153654991606233841091301639346723238246998604806036411284849835447985920850280747778380940596733261187572101517982930772216231672715930205763093742983695045623342101087548604026171672900167439419927023161821998264499613290306613571378399341292762750095886206796188853925860463081808585260395670988571244511464772484222294915735108007751804516646865701685886372629588556424520073478284825880190292911949013837422942125453800342017667722259631635136668310813750845525081031718660265828467177161425818021116529912276917623967155605046187661443250658456824907689874845274769269139925731412712164708990315008748823012280091030684148435395185069781439624870994171449038443693143919803054541554294291171786218299215376815060227781848034146344520235661585920619602674887476602852850565184602442568884306390466874467943059147344436937364212617648846060444364248419023959365042097126578300040156381079225752894675636507240660215834939451464477923234783560787121215610776980750267774097815671924585672689727618189252159518925569184379769856148203163812349019743961730408069693132555551628585345597533360666363617999603145274089322756146068284000722246335366491278902387125359215038541972082297614888386549655259628271462043133420361414428100515411324862545214124692103754712114673587187236859286771744138829026317979630172775924346802876250088407862438962640734955729578111741939222055345924125307483530067262643104489507059200906071502551702129193456418889454750972436766053267071222157503433425393824747182229987295457979441665051014443445019373952708971213684828996505478394832732566665324990454595073088359279958774956244255056226931594775675704883256085738021368901748135998352520186266141612314739442306573408570858287953148426979061251551337727990382138997055882756996639603077128574537469039882483106819469102867677877932902257199799472920736307759284796970871778796104455551161999321060934240092352431096582603679819071553053223814024009921257527865712256943639881937297074100285446048277762454146679434309145267584466947534362688123995516989046362427306555995489517973646775094206811445212107249992701005832619323932447611307405983315136025681231968079972057694254633423241563533468023445872735556592915577753229612564622323963562463076026847650209177509630499026726541836881534476389426522137013716679781096368985942160963719074621929645933945199320707639095494987548496168838143314104126350132272261371013340014455327617854787402342017546416432290370120457622913369247910464636387491086129407556353461568416490219291057491572552666982843338156830583924044825570400816098882965223289956673935432803959131539659343432577278742362378029297149938688286987310122203601607662483096184853101018676481491612380360237651985705416863221957007218019084419153377650218572357858997961606279974923039542541888251537417110954007678635406386186269024419590748383009212922652573769275949477341128547690527333688628119674773764634964796025264877641042544499382028504774244438625215576591680657757415949743435515853687237490587651537170052508259005364383047005761188823714822804681836953105011521250280240557996615907519977174247941423787777164360472481871082660011840192242343525857836669113170869714341944473582419884446832449768436659826461599931413384295644090459164733302554808042986133947095987839167456567501001718834452640297169013543620197121725324703845243427760914515988720762045772998593635664682994112051084404149663770751901745813532745728418747054408436216900612508576543718789961620921840657400196523921257393896718642744546831335992644941437912647136044400816579279118567806304015810561065539344854000015908101413561956434633260048754297384891764066382229788139802912504577270991055669760041319449284455206985706394367126827110337046346682570238766093832350344512654064680057650267752997600378030999641363468495532590962528858817640480008443405161934716026422764916838989200899702898862738949300062846182668842360476577823067881446593899506148393584777720666051099646054001117901910556973610145508379021156857139210951794812013183543112608634709915904069128280772965896390009653841277490165861664147116798671866689813979564128191476459945844838762035324085285312682319703817598626855869022615963150751376846267976071894818470666669077180023325186350678399116599299199384620043033136274528105044416936431187407226372128137958920958880146500971463866041077282510032451551445564219236828040567937231007356215170399135288011929101850840570690710653215218572457232487025188599253261184289316185995131443611905945359172036654790527279440833021143573089282348122582355156934066078974637667624696350075279050950617236732568275989936591293513950306065118963343822404864867883127826798648981124075706329223038144125981972848418959081941155078974829133639985155724448264650767344263576843101778017156712133367076284049579583294799387719394913222991956865605024728154672915523681940352331260413474427022556993071610545234807679856530535292125162051481766313453843617971208384781933723456759085431780453829061063778303386338406420556494812770074918541668249767772244094041349009152694044414930281910009656019352151645986571397806870424650253594374445853277792089504255578855807585095541142421838027876031970698163263479065057264206922327189367603730887942472342287057542717451927116466067798656006043394594873054066163321150686535355308231152084502413079259407727230015472574280585218857141501080276417042267355119937513008519173942606779533094087625423819569911113466093422169854618490473337659168244764712221390341940986597061525109570276238192317484067806186110583364091598921509886583794016977196069418209440308009753118579060832314496677359159630801816913793997794745220509563256195485235796296187699298175359085326524965366241443234881692534779847833041484536636702267643945389837852282271618590766516581802689113099295244922557723313147196035477814134222248107922810197632759018648963806140705911460940946310288445625771291898074855602243539813092991427133382266541340483105698268414705613586155052550923499431995577878732282418339894002123906623504428843480602622978928737850213620138833215085771966257538316561966637399900539411923536702612976201969836225669419652003500568810035691662992175832069654492578237491437148923489237097215093995932909478022237494363707736699694029934959563750255116571271884580957106879288563266019287282904429263734732918818707824110025240249786458552962902939936098847222088062981583523484964606291505750676807868904569941184501931796941026434148694059855362884560158293125256665944784016628810265715223019459822701753683195774824625577788231835238251795291900906048215624838788399879650461935621973584071285404676177228149850665421125234703597236011018957083315806957590155441405082473680209964799744637056872191670909186953366799838732092586536627179716274960091175361128548485560931474902168865750709972647626826967617035969952629512941964121087799982675247494914014434208012162375804490486681804447520062911565287534258148970009205975839520348489761814783270118085797763176097952709252156156779148911707291294352830365201721704537719749022678552099784503026005299023890450017309714523746819824727618357313913835987472725156211097640516745062777933825769718236565963682285358527367367119238831931048102095030802801574396443547985126466265456605095354590794196578842893780632661674572888561791322646369606653028573056711373757255833496942988491418977409723879641802688740439589502640412654382883371283217144853918871198941405254879516354436343515435763258620344419992113998164046836658899840101943207238800558886221243142395900656155723926180887854892694985296594521954258124364769390608303973445596091749997764259162937098129423749176032889858996811610739910116347814982168152541816591370620160566696097028158933306744671019037772148550755722671113622202956089210336598134812317794731001509066090165537910525068230488501403394416140294107580246660863509010298220844090825379547444833288144326528837404726570234850193445627739533384818874914220830360813718991473918945625092094446948231178796902998425218944099189230574672228607786828682090942101164525013289311617188533148083944963827292837985941730146004841391828489090501696276811234267247740037526482050311243325823078431366046656651318342925126170685640633709966446408390705489280822548192071199731015463005199478743258143523025639100317230555097016093212399865769422820316212906872462856015419504657032547840374516615713693025979423362905130594015906627524221500625429605212163438439455109420999098921988454309321366094523764220105928692832038086812785892316191294593098888412548549258280388912108924982170400292299226595974917729484090075544177267632373266166693212976095949972691066943123761372016116999087324881310296723289366517782900433562320811727228809838840575652300723219218999505243206155542763488352185384239889266506058324163086527907598006289084009923659776006437872408921532856770356073297896102691583609687795345119770737792942711667141127692430669632088011921695868121643892242763593181037383954351854805248377534432696541236748757440923390545651666906103572429444432763462716340347814371108557664727232426918657800659192912668328850624890303677300499903873671866139969865886650099972078879350669768129223129282354066943537866650072604413579348654542307415540797361171750632989411304986276014403079907890375324178081435650518026812667767264143279930037845438562174444878416941735891191909963035433044472388463185103862178930380255008890589980190226285942915733198057206558640352923130019729456461680347701084698696031784660051030974179564456748090043315497826505051194823880879713219407179068912667725847377979592076303561041081850529566949465212257403387032234284732859219136460122708894528170006769527259456245342848009105165771217518185591022206133097622957224941659416301456138614599570222120451725501682158276703432638429995226131781582105277883285993336266456681478116339627695492749702774321351818337738439418312043433674838474727161766406623852902205961305514251295066453238315479255212348795127895072680917331712251079512029901264384105862274025558451317372696787807571936547580967885099845560796470154511641095499795525659412203930266207879484733498575736292017815856900036433747446826690981469001798590721582265222988870040754653257656362116299346554201220368232369148951281021164315313776919203441451120726794948611661263668133791936467796733379047354138868318934384621642297474398018178816341313801157989541389282650045835344989810285772361433498864324633746062408641923173455777394432739339481701022291516779796282557856261663159612775772959764897150654613916502167177196307932935709220517138740409706343890286972936236840589229316290258493806310832504416518782448973970516567128026399155349504535125743953883397177696570417138312401390380418311805531897045078569795820115361187632344521786868053328595906659402703223720966607368870380542614000121619075087711553688187593498347284798885829094339977858887364939597485486311149990777578770137875520962938235229988532520944663557048763841750850381289706257976703544012726624709754126149900078632935627615098255072409906287366499204052090636091107826944360380679726207272760867152238034785106264823687997507804500790218372143497903038480803144537160737437225811692830328565647681101277456196900712465596448809019260024492282028849345048433552083645146177195870919837405262934676777714018477786692106651444797742125011597338264204747693910368305564719751475935607363807981316029453018747683274896731205693554903146939260536649583867315666879709075950571718264532097180588587356979900197629450454362795267503553474374242773204434778276322799100614341640302091328032712629309642149190811645428450034827922719697541252860524134348893804231724651872226713964634702933279638238263176444499033403244304723174075206483694646162862324110864573951643724596804112273088639731068511828207832935729200363908416939115281634236069578004714984073880455457831732455527060190364692011717340335597683970776078204541033153876718829705714621418270287868327976744649202466650040337346598493597213826646047374372761155632149431891035790943308194279811044610273608532732845203873424047075115207009736201315951962287652245597302991203694601782610344201665777483006359051976368513033860812160724980157769361022560580208778765293883422746816434617089723660173439070930477979355211496510203770372451084684338331630195622934381661376255883035930898620710015498659369262541507820378895656058662810382007871143550233275157781955035570484212250348051941754155171369186943448992438840382315053933611026145701591729306814830316477418071663004585261499846277804003297085435503261257349558236521358721218005997704401877588036734501846277153421958153823150666885085158688735279990225185808886558550712322555145571424828228467745271983111247149521241646379929206397802052179112479113572535855277514750382326193325204572117573209532226538497777555723833161061139762350932971296192937983646681988209086890658423030037559269643553018214307805052333564706572252265823270813457575567006287378113820099191060708863972215742218055894201559172756596245036592665113885830198383048769437284225151812363271151557148175424727770546067771690156303195950520585261928525688403941389904199118807437339290043134765920872485233362314707140576925931850840715747240302896436140070017324675667764629041688076606937966422039648881640269015722634247366831889148405094387488222888154643541626683988697963165241122619590950202004413543862790789138508073470983137931601893240440430751557712735804272957392515856844678270945873750757207487776683360986504425121250746546990227282219870899907334402595056869263759067144715627665312667311828683512339152287868182382357840181877080756567943546923002074519102879574197847795688075354194431647750269748855783739791863490688457335693673204811778085935956773953275193159256104336318166769643714338526344217930782304461657959732260186626623753972812391833868610675099752357909202140300570353964690485387329288750161564328753460464120411060249354827800234784777870184399344275120256171739828796258013879824053298698483845026488166083124955360420442145910462980181405688514030608832579005441845895252449249685494658771673080565006607164697844373242610385972605709812330683440123492543076096418686508930496776660966229890511840259744824878763500963620217134568094973384466567292835934348394663450779083230141545086846882615541695890905731863623666383056904773986787317179092298737276602842583834958123839601258710505293256382670659611662863061695958292344551707630140452850656882290230948828825335146522660681677812368898963164810104054698019408813534465289972753032338808690222052505367707543641574731417167057689472374762198479389898340888996180367886944421753433730588514939056711911741634337879556636406197855788830512741610025777271470969028349250164871675758963162095313106562890729344849731308278849606630328238168633671426965112441259359213884909091105791904443720926939055199416165968243384176537495338596185479141120547441619136035895887177104356696146005047773892609895276426579042226812914568984187094050761984404253949217561003124301037728105190181421102721497175717076295311735276829022627147816345577739044391546468426482423849529201035296127409270253530831207510788903763484305840020097071768078957807238820663371059193104136116064099296713155163597184978140055190424952696215252231450865364346460896104223001816452698167478894005784696363604678616651956872499599646115514207898521744452666337531563403952795651310256333897022617340543443700119546422077176761008034509699617358895071505936459362340915898703465093711185191499890118059156235208478029583560312641767024007426390682995301994143185695367761085199508873344789433233957015305129609877627759292784861049202270081077384963400409059764698929980693441852845561066356042783247360628660142458734606621834139607927529374431968917198621671329410997331735813967680244606826666035924686962388496862152516667951502527257331789505592464854762639810852933242217876329278913721733794683183683834578651095893516779295805017557891917258321853935889605189312048724177950154142796501353451478163919826936236870416202145805218864605302271520809648530299588139710488457713338210873227457301819284556530591882488691512642352109914819760858764823636631132082902102493000922253632256815064334306852996418529374716937416938233145465344437184414589147422123545831387764945685620686511885176347788830013053619729296344980559351066728285505487760585436109420823967761871599657308605319446271410809098691821874538835437872971400994926280404856229599806657455852149684898684042333146091184917212428828120834824443937259896482114504003450858380603559897610534168763848679113146857552321231847616224225797121103199859568399860428531356607388166242751701624452847211307750968859161293983853439422008751876506224455279646459705530604850681325468727853879478703262690545914067032105280383139075810222050751797823154835069235230038505277261272677312359098909537619049257225552043668978828487148855727997530162213582443123643979860617402009764855782461647151897647792517991996405931056945811009543431333899797076622150450221633072739633673861402169391606339962722404571357912382981117284579609961536507072264747265132794703189711995979453961205339245000516012909615579211071375793861459324730261778672786176202953190372075343340510794493713133188412510586505337507574788259214146395189415957063623267762978784749821966404095611079281430867999421941573846725503459528930846039173741964223834676449885409640520657133324747726801851043103509523025746475278175192543058038218716655334089324011695716336887269903506211782788113949723440616745127723060093683200925060117931958706157862612023107820010117902011839835090161319852336417115001332455409066419958703617305065681707614420820357614482441734120298567877392907025966442540583616961891794854703231362161926324790192995918481335088614325705794287400860392623124380738015397723986822107452151377949357782209670088311044403103398911442780734710621886582156363669362612788057350369453330506167120522494049634354162221648163881205377236276319051439688619506644051312071117826675310198342506353517226563143965558959778201486624726945634425032649736401889267052047540153147144411850131641434015893405573714945041781628583457189439023747003728991299999767158393726950386157870015765722492314578946053816780970614686527318197319843807699082800479003045694028437695815737102752436204422932420765083393418850562724474126309182930519761804229453979954561101030424680931451405916076133714300883688778113037986543746384215940240999153773433769807038045847613283478383919633679313254312588014746870575319495779902919074590532080108200149941961816686604642093991560706589922099005062037111800594091839228499844547888108031973384014650246305548021701359178279698302377523884868240348889616399549274332834206459241881759568383923368024231091020071171451863868646865527412330681101507053482609104241597382192685261191519024345986466049017426152152828661049247736936109410564021941981094677860077465729531332518994719100873578552231930442672164217074213666925127514041255860663862235160989373552531429679230283294059079417955040627933883777879565301748971489875659048750214153158573635312826837537197874334677244322713766199981245099379371503200580667706133857042762709789795992230782468072034744619891894559051110440210819656538744246852275861897587470345293283747781118844066972451780403973188351134824295748843228870284771305370456029724397744095202094366749499462870078775145887132967927536905745822310070599163624186450446092340797172957124926937814404357317233218216771701168252406861967554357126183417819272789751730111034778481649490307546383000394393808129828304146147139358181248274602233960492965936584371823012777232529315837959839676676076340013304776250790104098911109590152773214180750458376331810869546326216344150123567210793693314565551720765011519587753353243182664162892767117169541991731153273693298844901571307404984909356808446783368672909186819922723290685939158034711576063099040718400138826796632159095553302054435708157837064346176914709153766237954167537187187674211150614388078752777854309679694733780286436387214901237403815772925030012604437175007116198905293043934249548069808115231542926616727323721805667916264714317638795794731877914556704910496120791306084126097606610317406742709482315329288097085577255430616913822783157120361397988131308545546470748140000592457043878926605687432175709471453341423038237250624524995829300626837514276022674739794026434947905383428502073049311069725257625500101541268972374904971115554690133110865024165276358598407623926165731536176321268448646528250454371320391428158118540216450894178975539381062841985986092672736423372578856662758274329487174076131158271121614347184248547988716652158166722422939153980063349646461234841800594874557672003353270548148603187567506108435596472501864871152609892069589140672752117487536100826937228423215559364553488329614545177339216452151532069723461149787126365308624273396517852933077714477497386613433078733713957286195153301821316779405523520724499683708006848730593320974369194074379426592866853796540077067031595946562801862517255846138317177026274872858985341414828759570986615970248174228607436874278239739905114793973115460958164432667486338433833095567587272528277230067549013665215807206521550299581958799472284750529259779316656041139822519035389740410934604112304297121525694415260355053767296368956409719715414502172162452644659084660375605655998427854699278486953226299347601389845512714774626019841463329832235302135239605636232330256101068647106542839116466898694522320916543008741557094430843706117091946727046481468342705435299595011059345947570332763356400441703686227917133266846852255600438264868571571930871658415305494482787648339514041506187722897074386993208929183772448927395711400317794860179516650225305253349649349012695939193549541960232202517317250074198495511679548593827199318480260459013229192840683819961432275331664873838227706380977492863461755720677989774637534225536915944982273568928734457477234799518801460682548886084173001283451235034363470543112205078827534192901322480420995577809129439271571363784315244047508892871872033253385817608249898905101574261908086208727896547682215291062168648693383854678294212625861640603630699531060888010429290295946717764697318300281067727354298604077292020130576690328461859906981617612561226282993409282903218116032752689572252819379539247487700084139543315199471659382682493931902464582492233321837564061894104126093589928326305100997766562069276799586817649994644307502047989500159842889710136685387715432995902876532553735031402139718399303024729146179501998930568279679436427441595447903481714112946225576069364253106479976747276959911563673783125627093893401247951489173576209123392710287892356138096400121885780999902371113676947390189752113687726874571163478730231540513698935195670040287973867131734422213660748392914293091385006724762404855330533335333164593067134015698331271682831140319024710676735444944156472440320404175796661501195935412238345210134794625137553214588285319125970296868867042913790699547860477726113497593380273869630804571969802218669893004537345094100658535878258658503592520275326072660854262953506783917602141048066946192190862422319066295315504828720509417043225985223286822130551073868928432046622090243966620499332344127337734811576378014599115432088460102292832176249275714579882894519835424216194812482879988433372292460377805289341204501228136648994704110328403058916495179601221794847856982820569207787256988253589526029568213918951270037746822550939316043078238064917515044809849416455875335131271324954141002240932467159857102186168735192254643839258850820313019695201718684582416126997199349711991618224958114602558986525884697735128088627613729556651958179287232786425874273838486071595015417529550791054436783938355387533117607804037134232610906282839745902239356676554716449924984323064154566294730111106070340770952301834476122367682719855832278316918382844135094194506402970282266044940881894612605438674658418355339490939840051945957148407872984468552229233399393778202056291563834396664526959471066269864950532859330721001815267423051838746404360304159788410630135194856665508751353908453889099125612170751332339550492152093392801315495375785627439418018833813893236307182964394513874114877129063656516845487444932190534884032047635022408795278963182833080886662979419294182954103941033312047667146279240718899910402932384928687032720963335357470238316707632040959690471328561362076745161239964189837260093398312478614269026578492181349086852912016565016557723951288428219224091496956573328833859097502785652428890662848254088183456793255200466736680504623869525276065748785637859475712661419381312708339303087361072931484619547763676815658255378989830481702403355557753387078330861635869422955054031685851069425537272076806840837503824009315448669192980582454852862482695016377845168375149347036089179710731753021530220586700838905508924107165191271297399282377876268279349740292662070028201642305605908870801161004684956083721551380384143282434360394977815050025761195452047194740858317107848162689830560813056106636645598334856208431048953988844597813792552409611939690616456355454286083543339649068740509904083997847888547792630722659523466804757548883822797032166809289133144469382263957260354035020829889442964721581205731660276133781808643880676320031942559256092207972909607015874940831764101325124133587365302951561227191657126897913459574096303878800544662329603658601877777469209262627413789378530015402572793534299446879141184641344241790247838159866315334155316316727390241061883419791850386981797934197492326851442478583231110880933018336994439328572553563585753577250757191611866042741309408425028779750413055701151153503402056552860698858980875686659330306303683973248980087173556952347800408843872197030502599930814540971767164339757050062716027570902956352507782536980381828606767056446346331609615462549534973969355468614156219423480267870365555350862589777334352669836234209558386869379823325758817642190322132285281592633568020418463991646511882078758322614203089233833648918886600452830512114688945472591180158395342539422727488341248292167823475027796126426484561130388313335858406041907173997044437400175817407498294861809276167932047644531372636791120711088791302480249877073902061116000798824267823293127874397154971045273026082362463326451192169461635375329671226549517055636772563508351885545343074212543431472530517244427810318694292924590752842000287936803605721724219348065630900331489508961866661658910465071836523703058599776715180307962496870071865419670636956747071000276883764694999572913239580776213045686662507281699387581671334543509378948491014439780981555553824075748636067349986910404173190847196652448157287716826178038146943756357380359960448221217358722812945700497033555958341740312075292366035715151785675565116317258541259370672385408389505068933008939289225100972155539869805031965147373198015547922231214245846258375484813787705334082473806802609046528399269920827292247484309659872823278127756249056888778010018327526917876155669997987128409489212501435261657517888485774741481133309857962455625942230512229086554338058084986720448725517269707345864084119963731033447745806113897454983696272664689838642954545772574340099932653951255305777876058234209677147510480727113447187650709412245097042419120533234062453087926698130590278503153153619821663891595963266376569688877551685090876628644217407841431515870182984989701317464473063994916755516462327930704009810577805813647276313402213900800758776813955744385339290093425374644811298765090685589215441753917763733374039891144011037937441219938056566537654033350193716157735613505583722659170020594315753442135775230018017292080573980899649996371776958426666165975399232615845295863479900516038660948439255260561507192844235617234880051366416894609031090248242980669145845785901592704638319482056731221723929173382834115707693385986132515458831762302635830858224015382042740055281585135595169898180374595278720732914642973364406970988953743855245222809799233830554826912840290702424714360255562864323590092752812362697502750075751691299864882464335274364804198152788044716978182195706211021664804928511027781061067133005467030462185833658002906843705996830474332362274894465804014313686232556407034463892186835781487569001944627579186468150866124283350872372262876801322392874969719980276916896821975279629393693756870155778720475040257084689961636578071045104825674194952471530201391969389677670696687683808768133037637044118655947772273032458963950471040192071761758880106832011635730221390027008021399181797451013136980313857685201187274875976532121093629105170659890848692597876630098970031699905833521930911336343596817757874951817124574626626199223723325529857584890453031726298731491476073119667161804774838907897022826364317931600896575930037344340075919186701346565314970677419453432622748468239661582245377864717368672583179280949534614848327458145846488326332255031687378980855735691640494689221672542883553766394817621151905240524899434533613570235258906380754185491885784815288434532519819675134729199317804421362038784644235213487373993916118532514787675845885777524138020892637437203922917483861146362196237725641953610545509321083833804415781988920641844835005827442722558664716033810930828377132927019931650118112348641751693548539539648342447654361066903113481192032964330048898530348199072072117140340939481428368255514043408369814349714652583348242845070628192513010655594376332811461086721962252850805883314207601417157146844169411063233255137538200450720249211786635811776131534827915813969727959697159153490194131802838715762021859940015061624954369327381661313756859756571919250870582808905394162180967764017534997888264624290704870788518579018271363125823942484267320505045614853331475450621416260887460213048045073995791144409923352964569639381218688958949706039647958787026784757972409210560031682264286063255960932736210444381256712647784826873675031412468876653237287362929652651931722167286728193495831945534557680254239946722270757487304604857893755229161329849660658010685866837212354821145736825832214679236779477498026933739935560488679893843412554323380330717453681256714281674757428314040653323705166694497819982157751199777797839456535593730971561702989628035823175165015273505164140557318702714506146085608227142831917467252649934039162185208243117823205748265472684013858565454193556616439751960493341060744990704670374480555501616740813276061333718081247307826499633457589174922939824274372463364747023346306429639472185891252579809455289738013128180361887735407838793114683568137600990531621011321360711919346954201195085011314697561347776712224225058564730971293088715072287508673929832455814087844630887850390593602200712832541595940944532935776481503687089956404369326363923380681033633468374779514159805989065153311169342989671712260932945407395644641876704970476704027325986304190001877421191991619485622889496077714133890529702444703499025347165966868144680079386878604717474191379647753982003687738460914510709124428216169906744654800559621307621726192724507246032891937263112161223919859580705812336696619446191393372560388005904943700649209714844621161472671489855857494561877972072539323167872268272819841100162208998902319716890432082668066455194339469960551836787261376936921837955367262103858156090241150302769177249925553267943394566451719211622060379840174195296231955702777259303326794311749092705061661540238135455368871856339939378548294725256155449462430698001598452785545618709244948760527957046776688985974765597031922608874091884139543976723460303785299763726200723801231403774443553131163852681023949212144338964483833157842586177528946544547479909702759175768781623285565054259531992305699003433287572680547354215711871207127194027056513628634354860413800303919707115714047884213959044432364333638855644982269518503924580203916208876286413623074939910415662022135289042694213416339541635829062187040913586456536477645277641993230707853497206468687276829557970765357483142234017128560191044181265127520216246360914053905686786368847339710199501563065732788280442554878947494592784358114933953612823613345256516043258484593353772874947185187858841557872171712549183534609386469924361703428644451468812340074726238170303269980066348685941599349688237312033650399813726225279789950177254424635612339263229697334916188354718619414872557791261538451540728574205076280859546631243458494278835643106631433620774672649638764322786989856416265918726892307474458184147503595058078587541525890086745467875829494266985239284823398062391876305050808451809800406647306533875551920484802818642265841477142532219433844677068980356701474328558574766814048452951067075791508899231481932479781904119698646608187946422409517118933902473658399569407430641772898354056132999352011699563891844200114787102342729431549686079843965748245826914919693382181761971356875343037714251278953002767116075782367148109758620862912658066887201475229992778729069413533087511147555485882033494140503293390203776468536006652307556883717973447803798501138309058249264930099038780695147473204780501288520775035018989464143198683697850040918054596980604411795840724922496878698854832031855402582636986823856621607672846892985245345016011057759842946293039498996453042782949842615774755793887573810200563088289703456002916611105433020052559770995857713279676242784184647014543281442227287986534632537426532528944831010782656525769585712465614456025252973316052903961733443570398762268881826108385518813603388824278825722065146482479839427832433217865139454969547496041592158979344818833330354103936777709683763094099786777973874531033728888451850181553374601418742326683007681788293732849299255949514309458770575640214338863769123899923885042512061802471522816171877654945469780306335880328006790470013713136267527430785773877173973262426726932799059137576785341011535419885913002678031061074133614695804038612808792529149304248726307126277120055703178340716057914766388939108000986185723022033089427966515379100615657258579491601822192234368146073392335554771278573819307039302050810631970095499375138514448109435067792262392239806259157286391082481187036967651316503485503031871167107206348526172948442104029260027124832971117547503796040290104811777670835249226474929606796447448088565893362414438226479956393311221724138365273047354701374471252679129287386538219075568880169587527647373354356374726052915468230076021169467921468862371279996904596835245267622046868089080912566568503117022513269031341481214615928200413801758778956234089979632625129283782703918153699758270479842890408307765983775376661782623032131863440323053294545300162981374869327398390491066809450537035878216042568458723826626384657441519482816534674138607145264246500461269646576932465199391225960396101499570757694346952818037925394375120193915147566054804296952667870963401418954027554501243421473088920314920119197984657685253831048766786043342406418558908328903783167090665228542216314052223332961629573738597953646882017271113960760134167111604027551627939743281902316655500694969548187868426547963267747242734680395893005930666880778006022914255024770807168011072012804716456786429187475099466015812794544022156747199033903451659495346003879500412211118269435190233397078784778430219933234691811831606687689062860681021587611449617589849140494453720413889481725720926522588322885514991271696149442403476766121170954707388481203956666335867927698411487261701363740461046300279539905138958378494075459689266763483167152699247744962232826498858218390361098474991733393356508594312376468078356311376538002736617713225674601905534124962342723423027060362072888525309384262148969492031340721532336842170169149736436970968223148430516983085154840549961549221811029420110511924902281753667263566617572094850949045186919120843711618773270487015707839762857041797972277521982335268166244137386346705082297847581662368587600994682419524908367474294322425964077567237424607470494696360242656378906284173476212510777550172069841269406416108276728248378196284335405599218550546720158135142055396518263329560312494705351537852276825672560592547336438181526963426711026294516891120440884242985483939687962238198846844064421904229947596653085454354860858801125545628127894858353920561679945800873736618336445675735301937364292812211162031156513894099183878114572423747016467430501008130933571635685758373547383525726041624483624408449718980894567870502752081164948977456445693490854063897188728070712893058398799340021589098743033306722617103805098905561399344294825226131880668203567779768432331492625667290130747219081507087386757212920621856389786946549023546437573595901034166463683792815466182249513757849260049494756395575499451572970077056659852546479931356985242365430504377070157951435306321377581331288184592394618923374930700746214493751327201971872307398812927267687424760463425106257139481026958929646878991191920144525236638389286626289404071059828377994119977762622124450404621753829602134207593834943878123812345804222205975382159217711697496594264099024497839634332900501586392156520013947307583414095662284074671137917496570098827709551437466024337848493957657000447648101913204501918787951337975149775185142057931643902656115674509225591731775459824572128908831075895690039151916057468806333374993496593480712063999723197314086820512635847294745563900142350548473705826246342646559691482235895153237689950751536787550339890444119194547552669250659946980632266047518557946095451897442183428968189226771363589842221088559525700521497534485838230396471493934781934711000608052768357322058862301081737223698589608827584882548910792956154514049084144739578043986468054695388294976548278354352090355537974193453612362056638113162643560207947275237437586294335412582754984975608621628135023513329719154887821044825523412610276888008257432754405446253600979168035385560185105982763163759534323579717433202500344871306824515556802814772016644313960918855947939854794611612392776341043114983304107787282937438206201038385525901349326421267732184605703670944678750101527450279712999197672496922761913474380800580505380161398266935659851292662660625804859452054025950977480939757021306316322606765027935909182234198985905908483339187842062780674947793496721785220590372585056930846441733887032539087310836652874887355406372554561797404288275682903950976622554103308571814355122902116663830112751115373058791901134477486382879981803151756140934929846823806670504327029393951911520946806984222669636550843925913225334946893280556049169648386044472283810297453697541294223298983889055308363886322682506392253211124397134702393278049292477227831800785258465231794984870952040253955069088432617975086017818347835520528342265808156983173715831518990942739190735920099766176208718640440837085017126035408302965727000997756906671410906099076512123659667409653900019218447294046302735206492575304954154992842838161950769181953025916989745563625674686308287602742051710109751310451683641221408642534881881117292825899197418606845556920958553261470890726764796649844242640828498903989603653329407938907103667950418717528955063741794611085832536293736140565972624729428772071134104749240833973360569590738021548159961046232037483977874854948367699261194636804654940783897557620507621043918632466911345100848381692264567543571154196111574687716583489323100805126460919336812071979714218259183722934130260068644058398084340934612383799810079735943602342041052046198908884734611843569648111002632824821385032415940564108349329468996907603287710959764978011590013873654199871863584461217395133366931771240349702864637198233601160492903299326997124012683488619372443636261676476636233023798694020674864477162629463142474442175328644753620475978019840784213053975369376261207823105752133809489735671719785470788203809866458565010385421740258532730587516585493568208307406055176523210522050918215134399620465566867207221166433325025618925688322127147630728455987355138512666421182656134074783994999156641155003887806464822147879341503603641319180266047711247127454954805856984144142545589304232347601041502805443808670800595593066128532012581266013118885061958327568802783264134606880011123734201799972145612143872218453862637028308588793662098546296306647478390188732512049071025434205486832329503541085753626677982985260587495041374434956259345247379675737468858829771423295295964776978959949646079823253192848802264785215021935523013412032365301250269689472962878590726223534681462074011788158337800842875716573428251324336443058104660760086003398629685076749606770976427202003978417469867664962802185252624023319963776021844180874315019477627387647279557543944796565492833916961924456954748460256399483712085651873197829067782328499851982338664671609293599825557985460095333329939279257197074455041507361273114369962309493764166049683404059220347196840840844181730909721404965767574395093227683048206595698753402257723899930213033510337788936266450309621596621721824513423706449013402384467489113442842605051936045553083086260124555446828048920727577288294932099905659427859885809505431764829277287601587690338885317144601302423610409267126766550022673131924612924732179744237127342602465331097037158154697610231526102675353033195372481462806764596953381543483905692079443616612660085450171732559428919426412590313913741073427007029109006134713854422905325381815456465281177578297829563793456492372050691538990372556231218354419290407657531247498980222616350938308772994806078301149849729931615646851946900588350722926957445843790858590588089147197409736826812416209841514688049273282105357379970754735159985332658214991245732942650934232910979629469103563662601883916701387822178074639637509937420855880575200805668445750932196944853320977433878940810626997256640616180891851988839423445413246312218114079785804022062951958285940362943296020507101738980963591339583056866578872354791837426009717027533975269197056921450828080395805107482591623591893349067784069140795964089363742887245584936033374778549648010829215203380362045300302276503192104927502410670219647973116587565239199388905693650529756481273455627202334641230911299511422700524430524807938535822691707912420226341111441176150257245251786879865448659178005941787417276175522403506700046997094992817310738387625681845232944980032422394598929860108680191204926097827387712268061094976560760756345182023568473828052654684817295978648053418708797252299440120925322675629590495880638306920323532414576867422689913476234594228680450607366947849051572432228694416287892296809014103625793769953126015448764344547334720762810589830315410916791433416884460047499544710385398931642784365332776892137550287925768612783669033378546005138298348785069997332286829551079858721755638795483145790445017027951347896374661327223652849123321830590111281562472621673240920250100839899372674942498704231287421796650983011865940039250320602361395538937755831334557724056864116929857788256266809332076300580782378680716161866270236873618212734113826791139516713578955001589649650518880041298664580023809311093023269992626139034553408476716426338576571927034878926657873652154333082352944634954936636416853931937493736793774940724481673218908922088059986366700293943940667295090051475008342126722845166787559642966972628207248274042575528819752278150070485643575554654326358852908420199987857960695428755491524051438983692917809835987965195806848391701699879572045816921810350101070128399216412469293647722688363932329329954946362407752129684855714756857817999817255051249670334402552289388547765853545154064569400304850044305085737641555357520875703681728791360550330455052579259223775543534364128793238274774702443358437323658263271388660546640675210387650897691276954520406320537765508662018575049588246890290010517973750504158016708494272169040026240933157463671652828359836970716002664317990898401356537837070757186321490826519741271566436093950558153328533482328202473590842005356043883617745378071249861142328597930897195826498636636473208356240860751941924577341853686363322589827970321123427174771373679521119507546275410167434733694713855555197437830505873044704077635002798620480985618690784722677802928236902076952863803732842034889437198875523445186250025639576608151028827532755817605908071621075095634839424488906978475361993563060655765836257282974856627008545930307474126196076183092688978303004359390862321133680893631935929141807002255183530291756640190652893795106972235553088386068614801653410099334252563948881138330801630271610350657802308363261315046493358739084825394463023105412881176838950647557858973890679453445791675605957336809887728658522246656064664619690768884187434918176137761945603829362558117862786217749586185014913063389618853417829917525493924658726952392123937803323610230171848171250564191930893779455991700189961875039810472363396269503246564374444030158382193239037783302328584551739377653694839880814506518901424391155860102776232974570623313160319957943622722146606411859806506124789447276858973178114535561011974137202196479726100891119051018074896264935695601922858762095604297692600039453936332190234617702740364125782012803360386009795085913406984204516270498525521131017272453535620990433046783629265595627813108568868880737828240200648112173928654806847388248381820317511487454606132379646710576124891685142563200375815749221945005127653156412271668619269248311943417978008984184952547613247467281304127109593336082184536843632966759924926522857812521363654583873510034102443072172868511296668735796927749205550558630951050403277068463699988183558971208792288819172697244812682004416324088691671614496693277173880312029307859242804534414457606044845198351333219785031690294540197373390607899917520287792734373795829712733909303307287965945234591691041312510375742070352109369018230021421626178209369278842963515780252579701102317382937912882420568248859697984692882777521706864471429459008875455073088977585096323922102997784441204303415536277018292551071662959783118235943674214817197307662025587822565504837423819592919465331366954846192711932921753162553307872815203947417373847654904239127401542976716015459494203600414749035260668377098134073281444002467674537047260830858436039735699126580237270414279194579411571856709226643862117233428447250012844673818112999002476717034039141657359777154550370310253510200645435683589253286606581811488996539278460391025780774656957815918074824410217664555628465703499618567710884702214000202970476802101346254268425624722297916033270484393627259158304540894049536417436752431600564840181839198125970551899779660551468217753710059965829147832128474477482469070341160979264264328707422540636860738397443243560689390128243983215446977950998515975110261061103761371952273153873720847133880650178040761717115191160090849040710330443296119960826509017497829678441282502857776508904612773012957583068564181876508993174710347499759326109467269165852504577321484217281596686488117057571195728489457232513936251367656871773285308879145364127083404746401586663383098289590807031326490829757829951325939990819598717990343345052130447487889900951624723861759358781438800445143242810438648576482248783222504391952948783380633053321087796298302873673631117747851288901891648709309099389713666294430041282011481380353274264035384716591438278437678614089845920471427750612313303094254845345390652491248055393750856036270367271949138949670220819715061333596604431271761428307766852693898008266261398236980729557584720091291044810131820159304447687061127771566253150208455797000059850983931424803746115481598554173706156337320497010275430801783635865304876198627797017785600370471552507614221395093221570010919041321226502107223685450455308832500797497890696908773368543798098595954454496898975824216429265840494525115213262995229706809711357455032495093826322649354172608184619644030692254747760889728966033761921185948360079890877708425353854133017648832780030316874142006130830361231287503929257155535168352261867128946600414695668174952411819165632438727438520588871879117489615116389046802104904047925794817922046552753996871729286144762004756744034457032650056818498706437769468414708960265835751449997705098467356842194530528899205302569843860071433392574339249317399342300809305518858768063857433730919421155629373576439316866696408726640478031192332996775067058591568346282226618996372527115506540876036787205340379105089337710430965052286577878711232853544321645489044062049279049698943919172902128982662470770255190816875711155185822182236372164485838157431701928878055213612532980652079827835130614783524288126096787456310667266702038545947266732731111382634594980443916163447528083423265499179862020237110677421442938269185030823418880135046245748648078426212089237928799909340410189145403911084916895704826898002613952867375551829907219955361602093079609301824693302029713476046979734457838960217751064452925650881711678518722351249566799959274677924455423434388066933796059561668338583143483238466433762512211564247871544531255152080649618966560441413137410432552935265316495488504307278097431421748886521137313229909625322841753276039124747096180012316360328317654677229156127486828290331302289485372124061592959637497508120180978388449680363219292469941543932582863408354833174401979661227548368003443842239336814792630233898405665501839678451932000573549212381967710739238578643319036477149438321035582813899617541725784747318099610539241985988254994548096011942465977339241156171272588808581568155031368756856067823693786905017006820272120402062843133497246091435637650717387323212540552951526186263638729692425391326650120407428432574902537188310555136789130738257555395741794248060430543420825399411654544768234852892235852596863532228687896875701468088963191913549365128610612179104383515517855696363206107394983241212521295158232662031602048016585317391071786118319906042892349157629507614683576729114157251092576688702855108545876823223121024835160486266512122470128431605898239261158480998132963733239665781656502349387948985609213953769340134623150118305082428386401782838768837225845702762389200779519673324558918264386592897864776021166208507318549077107100456640794282566499941765209992751077794595095363164488783878594790096800113188737070167981132251295439837234028258942515208412685247470927923077809740713652622390386829655673560971340219396011273546193506597717281782189038782437474940618513950000126906060792687325448794286584235177756032206756942230497531818630536768050740861830004200386205668707196684174788202802098407031007167106575688029614619271311450636296302117586139669436261362581929828801993441042655415756920272369369209063603035156772108618203790598642725838898534002361247595007555790787218874979087341943286837112914133643298606920611726815683125824820699232388314596981747731247573366673591466104509315564890494766941392208769341145438265156661217134366437292879138578122303503163041952561413352466989117678129961042521688001364706082494731615526345874909200877255854704881982281231598626264014671748790728538921762806318124709911917770452658627221750476531267796396221992937199282284699775358020373534420640404599624106350084081709607144628384615459661455379887447901803586896388478805171138652772490631091826049833650196771927352754431739268873955178952176943903046499291928015482532000821217281475767390541779452179282636671461431988268751594741231002236503989516493892727289710147542042527566443873234528678971930499304793833514309671167974692010221084878431752493344974357758700765273570296328444764498827098131250582338358616815904974513286958883961207888508345255546176936646427289404232229610218455047329672104775318384304182675036033609196800499671613890868719698560682985476981451865503660271984683665303113474511492398141291338364123435344746725916465117748415388961487216505855144178580671590074370560840880916472901576610949323894519310459634185131173537464478437741928177068907680776277686961576177869525466624720842016768137781355230679777757428522464623639524239556006721322442821823880313126285564621822060138570688807918956763373515001717584813713360270406532506182266836660248264229824602575155263589570360358676503550583098160288669890362401148751675496799736987480435017589319801093377996482509031689275245901614073693102382727540051752509228876383745228984381418651805001899866423909340742981601557486330382184815332103751157979897111982183714955836306964770240808494558961073370234978644887346446601626843699658695785178773293353402360535078602653956065204649174227427124468345082348374092288209979979466529130255989035976582207289395341172071114627213809927066035732346848760693697309767909013246201946493006857504622807148346449022317678096305957860059197789365409085773184244142551500594805602505408711214462023450363763803165538262459781657883975967759449092081389957839926302076181874069183120499360266952649344484718905516928322846622938958821332239134906111571333481733649049953373759332050260144309475839953306136588699868384876027109096505401079119077502475139697912968420238797023882818792236625101408619561082332083675899514020892628453316795538040665087998517131460522081239121250143588501391662873426262301970293969141754509482260159532390837962428918508419859066905988005193062099857214883145398471009210708958015915740375491470891408826249091468602483776301650678754220788979078689868438748256481505032223970719156092973973316389736418792257190841597490488375876253371116270423360639469314669663338105732847818628449584385043494686633668270559461543329192985281340088098598136384465080086764686112573578643380411318449522479877973154430996910618916829317067219169043297045153039335169296392016872645556843825584303096882034249736491433110582480880311501564438398225513483088716336639857577254151502707218769836002572031366346747278893123235185473993215837672945287392608438113999284516291814262390596374456434646148428463453856534174340643075285691689187001217614770304321016037469860065124223583379470111279257963592442439754806927116379857895823590251415498123244195638425535740522798740242655039511157113183648521376814625481918369821973014067712837122154869925626854806844546265048100095310107035045475899768021224530950040091511759178850518072771161166508541032749735685226798513846199875972043257484246042655488518854847112908037932525898483828027713160961734765745280629346879389380683346273184095350639562941321998005704482432573561502770468874064140300518589414606157711224682168813671259415624280111624620481933177633347787554091700668614214962987692151493882975977175535100999782268681882832518768148138705123023744892455065054525713907758425502566144207841583118563222842199659246716501343845485460189079192744751197194807054297175539237605776415464345598778370950806117407304520537149501368801444632787775196146736847162440101612895392051911797827699029439818910554746925066675423499816723739979236382728704362229742885350952182072429549330300683995594136851187063536921502215844818909911658923478598030395076625468107155389407573162393000351573765260221984669318116344617565892457186612655994367358937659180061831400593247412987270481484364823193322011371261156747726132476893350941226436364353877572025383237373995870274490023706103718813187236877052231966241417788199909641571200884101398460401964372872479705669742251608835548061210817458876136651292404302365183485872724891309338422777185688746258910132163181136831938331836398103458638349178767989070274202171535521834853534969102568168810085424843977329417001691094033564454551156403288663449897886619228484397564130361383873428910760265945358415546770016639095906057205495285608661944014553358617553957535970439916515250217830781057397347593015338134859107581047206841157353884701013430967258567148972440786482277027077370523271177915113835080556612962739547386471888836271007626329879738382582726129954286084582909665639885204959860539807485648164143407679391544518732033379360935168691598763689929016983209208312643532200724865897588030049434188372329853756925352517494946319698533271509318573743224788515796360686087511386720262594130515698915180307704930002683595628282090661965571990399615043621532029450505495945858452381412407261862440541087814997629761605387027047222753517978156582934972897554024612171704801408824733593464716023806310306248941439765148530997529518886150402049563336190698556799560686659672066125228463919942120300083545869586922179817858426202543206196071819149237394451948897096237265535983826780862407485403617034139590617836768433501032129059683420290816181056871481440912061309925275245358020261027266608945170775282412256587516939859198946879094265277752301718370914303190841164686775914483794526025433374160145772109022799331030012336356888858864514647745391319633908641390946625085976137950794432860011929536978717031179946043150336241127442447441825308689688221770960395228451730135802825430066838891311158828432075631212677647217388719432527846003207799066297678856365095505142858000355270509377069851801451250081694182053993473334006042757796135031725311440763459917231354021562358306688732917754085586699753897421056028191976651180476003646900551107525508786939634567620466011954942117336200850680111040048994748949678033987644784020364263809778404343657455317658433775190856886672970461627086271191400526687164763505247632215207821745839168917527508521666614919538902807176350762068149600569651584587900725856104960379996769912334769890123201861619321885745218862572400877205363776852676160557025586957132746272565125191839229461449721665500573791140161919184798357316011841830268256658267774112345314385976488169349369247230606944734508156724001513619042386062877058624625238419304308240190469972786097303301239029211270720250471019412731154500938108846814256533648860222095557636733328765019711978431033880614129500185749445363337830131154151624585351286293945671055789428706888752964990898532649394474206951818852191221602920914772336830554657322336669371813028539890760363219721480083181633867466243388737973638926562325327759299616820635697362508896939634606360892212205393167876036876398384759435002940464406613962112676625580491274656688713251871349994185224847418055495921511478495563392482629711654688830578513442625640283193289384204115251928694354072024973333190722816745643531140231201953293811069171202456832648798143269627489837368538844391989722417168388985198778665758936581558219754691953265185013175845816610830353151226905615816660603651442109950060956737007566129837254483262513858151946970535282505745909467016203769397124093835342138610660790015131829426884548729888925430970302410099549717657985096351007132258931389796192005818889623587329999802109181914783894972707588260662168479888970550311290306885257788538238338062361603922733619714294838058666173770003895566646815509423526617299915761013300284111770791036034378084814336263965626072867419989212697162230430499363588126013239178000008737713511829292926705709336641026062409345390659452361062300003885253349338319106277507943068872740644376692045239555905297012148254206475753027506697313029762473003496393630023960142778080230950323723723031354038855203786638011548839783546779061300624443119006889974234346295189483329473274376843391325581164622452209556557040204063002401481579298617246479556979548440424833758575018323918718176794394599465161757460307883927921961293616960629328757603739031980311049222041654948117983126115887614353831881520277389612633533085022356974672485725338835949144139850292600294489698684400524958425038111501240222037181860999659606590999309797922724020426739804902964356226153264028648195493654356531264018260678110426194044723425356113116733935511978297649430392110285622347142560545294424324628507976258784141759023564114745583205083157222877926559402811824448767801768278774949680764198159883509304792822427992128237220196152653880043653237698554332901277922904968442165227562472796481261915374684685898714244557024399793614346219854566285133315709550284904005594202821679314942687541798250509141453993969736987655566805367963468923109452372773151540685694933612034100314275929491271154935370288006767105058278691705487423540675793852547148908329194359115761991211593999250443912023238888181281741718848497597827042610212366757333932444068131621102499893889526844653879158271340004381646512108121825151269762865436247082256460343772277898741083627115333632800086015399332447294622339050387872866805894147357002170682650679258957679905476669761438384383401980080122011303237857869529988161791481404671624320404485354008887431217716150778030429058531010908699529829546922610866586564606858885473715373154176373120359703366312144664055867772526870341411531769985154497772632396901911836536291532206564854267270893928817761531786353749236269484542072848733861952614278798721384713949026778415748718903790543824242570636897881156210702066707333820356425234120534884957905208708623682175719761925186901425931514966186521335557365057992845178619739933555177372943870730281069563253743516842265750698052890251443483379610225441995509341622951417801181686797678914102382198834286213439854974843163858250684859323496731215825925029192314318391641116081292361293117728195872420671146138323498047729374000967829112590276274264913205559071119107049751162289833550054563948452377461270898649451911010137575342145375863968718274355135768911858402047945944594925761771542005677434014471557024742099744370768674521193682438515518283698340734676163876534162280958045044125408405388112104669891938790532858699957974461144918516605800639659723101843518688382947233678322063983756519236151840705775814642495052034984091322780087352930825404872602640110207221290401562613750473241336928736674382755421328538880884430777159964205675276097125182841581467499765677254360319691959995749923841382931929186730114534847620073224624402412813395331380028864110066490485557294618482890166887826034439416455390087868119756078626064118109881934579496851982811491038244169489142922976776460133732784322433191431541996468000845737733344243208534560909919308905475434765245892995309881914356636589336038091515348241492534610823326496420691453470760577965720136751929762584595475588530607074148853654468557804153358872487314849225529001861129676475584341880264765846206196600228242823915314954362222043717785696824866976000680385744934747471823261244763452249670029889976982731906036981596065919123409000924814850603181059672560965459004941826485098885805897896266290663697627921284083299853875030950669014028308750221866463980072183645566984787521811947749274952331660027600592543176518168471499120569925971297235854470928036090529165983287589454807754975360608785107484300984004903319180495432549527920883576998339409711608108580369386551647831967249790622769343862970838074166662673524261280326994625700808399650168107792670817884022545804449879857884683429799830427601551975458658151516274260636277806148932837125022533644404238057337112413301703755496703336609327994598731484898213128603303892549740971240211611206427110161007900413134887637914146339371733952316338940012525750529059830132682625168660778326242256696212499732771196613501977065509039231113034636441644278922500897009414638879476285805442736335463653076212797766626611289227272960977398183022450663963095223331756757041150530625591494639422726422747922353054969281984292112909152423547506487534666131938638452782638280368572282505938956749567983575376153843665274345494801811892715517408459284382881063784362276063507624330133275650003881382632206348085778790021877524407595543094518311794302666369217518070148354375468072975140704665835735894310603745103137850603564498758936639283652274176014088033896995236349563388579858043256744323424875009083847011437064227193356882327184538699600751261590680735339693272835459080631447556582142961884229579385597203010069878886041523146511420940664671687760287127343098724294771475750968588658645512517435198550861999677995322570757763496843408452958395644610508526448461729510439150155545905149208854542191608323755862157532966462464305139254852565736712190239884090280730145372891604775395070996143878342197895102026092862492416095622813317031819109800691084404897002871047809223179349763733004521330368520926480173376950947901152002608955757400742932620046483683577524190414981190250122267261783847557664212961593852005770390789449793473083425504210027508649983819268067738846078746305826663771244959384535029361368567685379112686232293622180017081271952431844437238506189438313180905811126289854160137653952365614981099689996148759233169143916355059228131383842586576055944669469126274872133034201656867558458764820236905703222951243039244070473157393749142717151389278930235831726044011796113712799738283054610630640819525443652262822778276941047891057652978077900940281817782222095582930657829934875163084499861593587403499941015617988296945431916075003532352198169060441201166847356838822627951505816186825070448812037217674697733643402064912945715608286305086439393810930566859387399319133438063641497999563014594342294936004180888187141015713377628190942256240052625754725293542211324240834961289103189192359642180067602030597653607529772351563485033107167215058830527546060597518541383120149719594127297913468208214422969632961844267569485086110388237477451329521676950573382494680484929615108013959642835258290353146720963622707910438247404444749292667470174727147832142485128349796790106053938132578755828638996283905275663348127992619736203446535793867503491328506953802445615727147061959925005986980726229177583930855099589744556270301342172734629669357462371219054992644365758460918146310712926191659545230620360955955471086552644167041817634157290134827388088256885145144934329203442509770580143470666070537774634785869320965664970888859767126559056133489918990177257191187105107988654273150774773146794825544765528571161433004590636661065129136232195427621562416624065357319355240639219594338247690225074437761547910608869635181816542296027130814210827725227869463997976703676853459865644489519779117359559444124705018844389459552968026028385276817286460930778870275504468898083097081134017406018116810312226240046198280723924227064153586576059016275636704660719855482948918983413822173009644283016483411630625220242697726453735659969212026002778064758753425732611511377161580537515733144315598077164597601215937078970733118069108327393578704067795559216135081800019994154579810050181379296713600199846893204247824837840200092171277450046281809609424453110985476476417280265331983621267771245792223640985461270512392265333070509599873113188703394973253371857170587172975688668353281205405320729052604723972713978076385481726181412246303899454511237266237797512673243580515810519371898479891137917905887694595698118677764401948608200623369458111993665584010931442586383348505408129909735846934873794735134427061584786604719494163171376900371241922210126847854430207702130299021485153664928660635374016606882731861538330392102652932036000829282970159488705461832191170896407947517433331437717606671943712106671107226177447159905804853276259313355203590786337119816011341430218650055081911819285959107244591475504658215442564572245817682427306979369930175478437174843208709258916571454880707841688912431634701082116385032092289803811813483579530867106034822427710421399958463897743452833992776472918996126184521343530409111677656994575988492211905688907124168781438123521260099316490288995644609559952086163620077342456319326059315489701156154720884581148624732728113091113316690206098292129566296652686337937593205808328461706462536068314822810869255807859333483333977052759004149972562279400396923842639468624949645889533431219624005095549339709743182922926992171686229384392791730253959340420879405346815759548455386329911805778543180269965198091845617611421560876161476813071284458013429323296045712729264427828236903819601066226558395536693653045980412982131819246022586149739705540535710026714309449750668677628311523164657529382068858809005749395071996001783449119846649950637409941789934472888667520215208294706620827981385364116613722311860897825964258143960621866277354457170276375104941168063728956742725744541716941209372337707058317776737251697761726794834730325487840507628601338012493724571582746981459630345945465791724196254530212392971232438229314107228473711280238262172086860158322447284198739208861928986066053648256741466954221897205645614929034591686787028773393615984667125165861441260636389223217260056776172041871734334703227423973187379932331791444638476271451054019986174966865079227927184983012011206371068414312406706036751903119899058484148776693428122767889738367760400195665187224514688630816586764848000888594575198246622346312742928183756088797712564303269170696738114052180978073904054482282707134034451723228327808623830435906388148177901277405008109792462198958723828926589233575619845059723722409564419804672447249388708842416631353032633861808411458674911111093508458813698760564814672274111962329755402947565743246321831244968194915430385302699727727900222649959378756418900413303170745975983748461528056841932886348469998324518511259704135724220834359411736246316607463330565267857089306436269509777756058197051513501590319359943353099747158432160343409104457677528240170843295008325241175631391582628873674859394598696894743092390538033485137691686791519603615821084905392443044969868417673713372201974294735817145062597543332620091869087082336439187063259182881681406283908836074032348548763098166642275043957695198548482384528925798185105373174253067501215081809630442054441003986177181645755809813381502477347369242208314110559885478380708258378727012038680631162516914659977209995395903734383534840871476315603997065491299967275222868654941035984688243781513778164478533129700186102086416344196377133020291114256724590753413658968133141696584413868889490330885936937690122880517606369326251785900959606527463018620735942929843029078510097579840606502206305864743290056313635461689891205126979276845446583339880423721500647426659708261918076084692010325742871450944577736870845633804194907495639301284046137826682013608863846653079920221717310962156177027878583132050242322496508845353878295935391402482161524760366375202447074346997662026061813151422221765060305423313776425800553401532531182332052931082174080631982245543002441800839719616354958825507890051099500176648931621581705268151863001730397429013845345045387087922199403250172816223381790507709984973211005638244812842706768442261505462098808514187263219198505364389430763886937441331526798701103615524707939813819921796093309388837647859011027382166352474929604023171581104705042462710121958695872354660437563534021432967914243474374726432321838239066302560673390925177160337543494980865903824320190961586372098639131102346257832121574899650981215975731062494697977546170971817975066122386008872285186366431215661077143781490918272896196384760231356091579114112300065530169485669249932819946324981714639125664418447448671158059262807440265815230162711843279277587299620484130864774590595701919738555747335319041367194979662751735624368170475865110390433749947340533380630641147788451992164014103971662400047841793231338831811458837762501360200743441999041087383549582528407653676969961040617271046930807505736827547742463486454144946541941854382301222021350743702984427361209999969614126969569514898942373157057110550735467460445834103707331905846142526121734808099631063837682938421523867468616104947631551553132776711454374571077799053200672192848107284442060033255860881680411060225256717187640919777910355567041415975325522474753330640416256971764674026706825642630921967386146673199398079633737647688382981623242429370864173502890586670799517351871288342945812406753174972476061852434658230879978075327500258201864106393963322200788211212650158497589871809804835103751846899691657320005506920963408089563499068041759118674107741229209078439104941900609828628462425996887717118774476054634866492390336908703345503664214638405402347529246868307941204651872584334163583176575088903075341015075027653689277658274516894744287263389231864703903835929879965571218814906634984461367301429514831745972834621755342394575397672696661663534038025947223243959180372066318208103019491311072908541724978797239167196877832281668180829546720468060489475939145695431451683126768573111960270420834099304644427494993521767132806548082348338057154582406697247197109800602377314577231593432268539721624258536614809545127848655525281792965418305732684656908780503971477617332223266032335456786032603204703795293875055821069785346035288391821652965698193148017594147546372763050080907525505229117300324932682010026733309405719698581276125294885210809733100120340133889442489559248791416778885111905227048854620221994915670865128316349372550209269783933991419834485827775605127559193144435266347116849974766705849868810084639096600336743346031809495754198453391862119075832766287144668798096559137845797806943746492940576631985405314309938216575881451393721667034033915478560974447819687950864052906260885464621873663990805160445233104947948733466723208487436094880332730546054401251509275850433241584961285587122104261577420998933725772452131378118993862364641481166681743481755855042469024522247871698136047988414357483037175799280266163531523898324173312978652587764046945808016306212865962018037404854668165044198530215123361804383085611547513365555399632048052183099824515215335452885859054437650320978873493035285362254340716493745186634641514670869397951588604159227226810506361108123265645663503973582771245141586844211165594339032238748828025499615104305473702758175054894972520694410105977821897056041972180479430420634482358957252596798286249770418641815746474071719313042888047551014938854501765804373852278127785841484855373953698345635798772118419421275214693840555612092212305400686288781841364656163194700425861045169075905349179248531014070977444403142835477459639959218713804087858112270049601526116177570813490232254864524765296738728966829615480836775481520516419472948160848368371802846657396659669852817662722608322301325889976033851610978673812846967790052832491845285054122157047926027594253370129982416323339108251204696480078665900451099884788823818102128838630134408775599806483080946590145832882366852965777259068385938042736749699706613030458939421728713957750658443842609882661030607920753694946416940902957402625463004717982509001384503522710879365021827853789652978927902774641569457929324377838145921366553723788596281662074400851210499492886852825992456482432109505224235499540354973515784665946339590884769910363233086291070728462503834924040569022204349735669692506408757231273968307931872543953058268679151179540522004057592030721019704784917842480893068829956010759246742173503073272089039851343440642227162692643096116183065223805344603811056249163768831014064099665851551034810178407301920672492209593086457150122706833434589447292665414584076593195955784619381080854991476570107869915280202162590343434381613079665852665696302498163770423222083028759327505779447107070255835189939844273693611584381805984182115269447144632007566953008050614291874735359881886221272833557760660894945553117290259261565058380544279869331926976427592182904453297129673851957966457651389359773386732068652358250092641902011131430163023856086911294729896636527518171250685890210527117512737021575541985166840052201301801404150728939292020648898275725648354065371762875385800555561334591233925750083103492163577330023480443627194775232560354514960469874779265795987875735126892975407588282397932464922919750364987812216711535224637615409541738661021165901187913138157614027721216067588105511103712956208704919902799186220892514831141623914577706604231033702698723502178152995849549113657212786901775353571525384472928197583372125091824008083805923077835713907689572179385757096009490376091206447201384940041677694599934322396489303309676809682134667786713714559036044292997656490579109942416735475792416134827424927171886577760121900818008909903977175046920935168189358145101463207795463689910547629852312530541814917515443166797398919120676568394672783994078681128363139231335962714167193417261446873444468330747984659420712904243242297461698732510464249428018071988905362429940151964854139027363090922095501748376157881482715648092324026361974154115870629014129870670905267455698058623640666475719038730767890991406235914294658716287025198778506653542070737422435979896225513417403968532760936905694013418920959024448717480113550812223023689677288111240978820053398980180063590175565528211734347307346570926877244125611275332892657837622870123311275172625955994671190093874475739628985501045368832099390460637629799260274870941658650153480538443987702078309747647874661812427943413917240471044156557899119937678346832211008798448367149704337383122007064557936669568569444236117658005231103958731930742142240666577594642165681902068279808695964909937231233269080067114931604416259847076773597012398128810264679597767635145236992671026370602766934310580395828611657304189753430050462636488714442045472883352083375830066217202271062204814591112045898061993489509325830465754311285301622556685069372695962522800013423308955743300803856917969876994708571287050003917487983566625374734884310397069981245630675675413434872494969637938484986824421288935346975336915559928755768097682747141098718785972470581527119289805876184477446955768520186962325815215883947050491166491105841252980234115502687122412401769860334369190028434229168150169205137243160967605539709844443085514072199512136545224335608842759996351320276815335589616048090591562660986664201858339594271508229853007202775380444728395070241845050675234861737407087093589896982937479949460149622427424440702276213955914908456582337474522935798212048448399849750734137176195940677857127980181052463227416334259199044402317133285829522274179225898747487740357027040054289765990610096341884266659840122243459402469888192110845023088378206048947081634259710831871217244034102843804337254970344854777048584363154455768184710808465504561262752019888255528895435623213709845851968650844273092531749763911447608475265221249114545903003566568002628728459288248046445449872924554431934264498248765217581698928298043943165807928547349709589837284562953289135168418610306318227566411398103973127863721296235834016948474608878321984392292058104508782104472339075132104449729496934538544353386579518074896763623475535794090239299200682474156315683743772025399619638368852636762552825584431780386234609996612771447932491734783311744553418755672448086713921585424682526762536720888606236442488608354644171448174485659057838287918463604027131752915103595131362744309740160208129387019444655795978395202712185471305227002145010625925614439741633205950120785080677284477090107970894309682733853567623337360426754933070003311771897920932319621576171463281112893418117997173940057155507340613903020300253087244578012492697148107068118118794480713001436122616214805917191668829775089523405425992307062028481650276725451658910518953181706322247826846144260499367576450561319335119522912380432640908774239840022571539272110548706078050586972025597203456267665442477600843911002340738469406214775055360925975873262104252426190498729556292459393023401695438378951532194317108799544746899295208619770503723782834343029920705338239836584741948766911522779783436170148963375714952853439178231063556482343102588513394760653164740499455167344074559806012822598383064706409219941220472334632555206817521478915813440829146581599323427252163220808371805996025533012937155947829558068707369397543126941229794645431049119687774600433727816640968648926595511126995313042597822001539751939966180700705275464916974350430394046843261030772608646166690695160139478280091178337593974588354848175699602125488169695575604569288177407800671017695018212386653696298207531813846407443048844885218650033663423663941922550534005603508934082796149739700760399457627575245963423603012162713142907965692168629907411088249462969726926003817824027655595547228349225052434246621675543634685265899415712561945942657347608644101216266015262661314739992392082655406815974485780737568189197542326816289450366086147846133061787725485072164866763997182255696674945219439196079356524828166616779677789024690082044199494806299320683978442258304207290853286994323348465299424620835466740877896627897354699448214643510195430942293936735653490956101677464354446570055616176972084756322342991227862605972481309040526839463913380567959934576368407414577017150604671565375599688587323478569375029416212039198330985176600961898831176200205888201215925394049866853520530147429767213786019203979209256404763336506358277930378369363655877874328136815943803560957406577217874355023828252514129876038812626732049945918541158962305999640682160278103585480846303281684488669036192431104367153719142067464316785641955594860019506138864165939263304749670482263278300238044803031567264661843813508287155605621092396330353917143774584237735401947245867991442249457722676387905447188108365342518261928823885722262532349409108152215149465608077235388257325530822666967095074555544839253641461477679531522089602783434668269803913450904827083323786517880561070335628861218012895368721763483569837685352797014118526491759069413218849457649690577560255314160527307610875060765993433688875240284367002355848633059006722696234240405716827898363366709576896104707320148379873211545736949886965204297413096593927012379739554437160660906514773437585870984802355311776385085364688781607504401390738588894881776373353249214534242830164855721499431145484744290678010356026018819990650088643331305849465657739073201786141206628056160465715400823920985845037663649444287907395808395858780911168895254875146241871165332086217082510203027372154712407268489123141777072933455675548031425749017999124822195188204158132752712483205788555388112828177579247416910327488728886659990910629949049374147172418928477635224270391463619577226451237816939914491372494117260521888073583384566054585198399198889377452487983123064079938680631282311085852384060917261565044904581036216609184524304767724815535211083082713028841295832548282848012594866839788915258872336586995120250100404549578772117345448088977712084686767148193523950094468670944770186718157855940269710928813588623630159111686066528677209541124469904279070756667408547147359011562515697839606901286604178698033915009680657944735599586649097799626587079931013859336977319818446106987403334160518680849276618462569217412658110112554880481494193649370128150973624477518237912495587143425387417693412688969660023235760137182225630864870616980241192886890193752976348340364630683451378599352284481810512675847031981036142799645815422250887047397027254311699029101418825455202012992270278959819297030178845518285979622622000516619364234798872193121094645516662140411999482290625519335318494106591360849155989164917315733439897138069497501010085164482885617377557825609949557128777354934831390815013122696478674542006837201040067207502817161071575426976289797971983880376566835468263102719391874551178806623892549461113207121485193859968992244884114609354212373791526785118750069106876049112807625351088378585949174527035616510367896661420951096862946463066005242814725188894423398508566024376287133283455155330094920225171500369884143002125860774828316193494063321304895149731588699233214750215355691342700977008597414516095634779786332199200740910122614878618376470128835047337718642797935516673927930331349017805081459982062131792542362068416995471247420653758315459887351643559076635872131771468885214096069402238388404802015456150127811947881337306505376788570726387114731514087850354355204658263772729894048878307418742752984260816288051117279224516247273605819737112175791721999089824337917401541821685732065275891097268821763273119387384114794896128369630075149408463115476092192124219597722064234943162801679025673797379927796901612558267686590201112253324843523272827040944073123263089881247504543264070648384947079930550995667038330756460855407721285846010678093854495639074465230376985011280675974981379839105213839411415778470712425487575015561706464380776719329178746563057125289371571318026483119532002038863455721352152905473493136355236662191887198938145226126643683363384159206662745086897528851931405279446689197428615493266466857007205366195626086242859328282605670669386644552030681005810834943505447478778464260930506309486918297694662325691335108538821204729115947672667309256599567402360547381866151798919523031124642976080108029176547403230677537743222762137832426296957127702374897814810577549260111890637515159595022075071890748997939704173536646100231273601353068912870514484201893957049977029165969288187875641450582437828893187748615415861756362375651689525534601260341979441235492534457976526657303416884496786480935698464126335475417934676421028915005796484717832228114775615813308935240840370250520684672682160060821969042270478196836926244059220280979314208726684607241158298936109071610270474860117013478610843214583328255535430720400155386881778221862442407712873023586622329202038734660110841175828091295692630638629426713964111820679967799962973469952801376379547587449952624030208969269257273351264937700316286388518797695957885101247610974344379829115900951521038614863007487273655841525065446053694710105838102138846285816587534300738945062136669258225282912189101435709714304021263734385917824014134382040031541688484515713881136109959081972252237358001089164976535048147331155052782451406181174638934915971115584822472954316438017031940436263242016001421160579382829675172592092473482310216711959342772972103472979917620677590436545404603536422965568191234651487628998849091460458934307839463280429894758173870877573740147134223372381078338647588426732756678950180075331460021434949751794830760956691057732180827854722556951580733423205488734126295026360715268420532238445159821438207103804365278029873275413862406480859290229295370187909339314886168420296985164263489174224569535762831190592633779194450322247934689089177529545174183375970517473239623202283098528245759826745695367800351192580446096350399939837395993262383354464256137012206757455823679471741327060474233215031322746019976455157134003489419640365900391991742500659158293339732797317028883780959346205399424182671381987262314065092409568326474093304976319009212449354888396308428669467218936147939678370814559640385844467681111774444297174697698480740164152100610817158818497371698432530867402761452476485956937908562308356613902580828675026687420074627536008687365449089144376322672163446299585861949568265742509814673572208465654895513318094607948454099211608104848060427013122070891911688930107971963588769639058859402262886211681604979397996689690320095028810589670439039811268233383894222312592892954381491899589284186490041320063427481056927268085990267094314660213457105649424020305599956848566802118046874505347802877135193173088511157154157109349601684606810048261838722355781622655826072760803917802656262349117606575883731973004785878893433030212834118188300975241933880803783284224707598793253520705158169231573079764939626619349734009590069949888141998570160099440999524375078167857428607563886688099403080740052213929241533076981333329788284356566861894170471439326971548787185201404110077228182014541627461997755616829432630144768368217443414619677490713266724049672097717256403812299886777098519129458743042898321124945382416108577485560093595411131259846289449592980586729689433936674776460001761427602550139258220187922725425672164141649435454431602566626849029247047082500801800810544093650095953511152698700442439589385473260931591445686777801570721267319191571942821625857786634916815338491246252587887646855242778978313056714615222311927871954851156366220296691278915768153660602458604841050362510557925214005449849472233326351548858755269368744439703422974107882303242738161118313843051225866215036056264377042615793064440359341190346844635115384745512521617414913157606189383337410659414710105972780623033300749403252250883079804918223792272206979383582594819009635488873045177473016586055344841672273028549568707021454040959211769225250435627042758393018928727293103940700908220501234072503888834572602179014249575178288098407708164274511414425391163040473851530880615159371120350078063279208834094232964968887880648832502821477878610498588052999930933431465016018932316809448197111856330052335951079908549359191287174482437405945154378979272136495046953359362681338247176311998450092599776525162721281729356819731436030275471006461722519256343384281436712408304733481654202558221036482011916492109373960257131078180689349014868604938434231533596437342230861366526057383566817858754404254086163508891911119213933527953190862106874057674929863229988086559750673225912373348950314338456043452690719386840962997768342875355269564010807320084741503934821779367280476103005913738822714824815023266568607760382595866363539502994812670449364157511060809224294498315024761786297980352619630844100558813658761927939572851097410525533767009465710985329346613511964239954479207648905892333579033461082396354389575240193221958607548124171558535180366423469605412750275956827037768905168179985453581516935791289333442716495636079961917954298710302627331844443347864943552994579436938774961319621666747988383898008660473223031625221108586319671375868142774971089083278251067567247733266585573812551507246006475089028358328474394417787559713149334221981790350966651094976826324634333349531463995826110477584005750916396553065373584406605358657567691512859582843016261232206200097472760916380672670650541646885054778916010918722251102686467850906719107700095480511651552904126326586629039110573605755530975940325476009951479812629577556511880178053275741388756034595162378402474732251398158120512834860003153465348629037655509130224214992331101936821442851006591836625540814799270102098881623888061562813249803994439713081980472069359038453967642726735704237104135743417912623920074854974692455836371604582336685106742236067142522361910797791424112781284305250361300293347343913262980040779565151279268742417489157795990547809032887342900041193574762522258666592650660661675815678002532748136359284798724259154757312294528258853706548363796174176573072245935318685605341012358674076740226937985249503613791339552813032960182414113852298930492780427546242925702908565548025468797066936377771465176260320719298392041147250124781023843266500015442642282415755032487182517982853412748099309153467959678955451019168835866458803541681280566524346914111012212238597639992601099906266032989546431428950789088464482984121619316589650960825342207329123793239520894647763784643655939824465681489119231734235150646382360302915172954819646577717574723622177201746105592655668492217978015879647597838846979948153643704589547849044009867460337946072905988332581049325228193202672105353528963974540499597014949497152178262302384974834583181512311210743395227916846120109950857994634701494860958951446076699043369307798168299787114868996042240163177223430489487246083722942438949228548180720768926008995903250903545268946730306988288171651497487459708828375036837665344772728864392789603760001895651625279533533771302204931645435822648367742596823890042528595089917552033195417530252694721523084668689706103615183467182721413145385118159246421627381912852848356308673742612072298316441191035737419546156449056963526972299860737963023256339072534178629793180271387561965872947518135679711066523740906547547420928728270360514037868873000515654588486881033063585434578001722527079783217434826232595096209367978721725871484237493266928542255119263864241232420485457051787286836231833776424440558795632930766967624944322195886747263824317319540461037372954322549505875577304328015221380488217526221652234323968509209946635352411217254306118123008501325517088802319809739092335461712918250152155679633231099512248579307603661032287797547598460045030260365654478320736202247924578672208790182243121875204001827901321585648555639361780055634133634228173368479400858993496662158867737143807776185393234630408847935941985090384530000960412366438365418700453027620560471963802296562919512956563644463157161611438448506491396294586156394348837170137944946176824092513756344063105254155161820390803950283283117088415723945578803693099692159694488067176575221390021104782188608790962714102097946805282018079305699477988697177671274821448735817786788117188240868027478058387440120802344738930830324732359564576966177511826829564620422812790458668696241837731853438903092373356170122306556296795466705424675152583828203471315312684547667406171170327673259270655604147266026448755965943180252881382921593774646730032049187327991938377520768546553538832063516333743507417072316489556446001941912809044607666442479747467511589602016368486462531909954229966870432162627928244300024441070407359994375339629421053863141202261478735525442964037387516432601554122285034857283942851452298969823768053828933927382685771254330282156945061550044539172440183820779462175065603084516497786601092741494293673112031408665925139409008569807282912810359429880366361728960005627197630429498447192635490918966845404997791450079009498617777365953446644693904496439792962432052496719453210854692082201301055781595128452434995544863010005457210073892855697517921406788188542245061354625797801967951041128673097018951417498302648861145691743770248938437429870003706882209979901425058504125118468980937048773878078568173490345588928544584140450561764667575624736274580332898145739144896196309434306810349294733553545828319433738693137442142733849040136434561203058494891064008655348161568867133060601578632944387879442962694521466499956733323952589151229420109274000935094138453576048144298271391814210856596627155029257655405851256116425198367488747735756507644661008637954264746501105940488867517920159295704047188565983563483207320270385645019043245730751079954249971884438237097116005157534765307283941851523150311354223913495112362005717860092078264301354999863317663600201405206071032335131459087601502945980992636701731301021322071380142852592134451012793997741812637751189376215233656641992833818389600804121696590926021214787121200585241028794938289553070439605047686941680125425982687038173087816864161047191428610854116032346793498536879423135433981454851500164219324592565949710956262796014825136959676298898744889437224317713207572592599630729316838018864131756687253043299486009893212386753715933858396239877696254746756624177264848691015283722258571322224307649014257891862225586770604502472940864499136939529699031065928319313234379236917236851166080190382887200910707107191858909994792754816046381317922497187680110486522136540520224061821910778012422660442900353693272960411670911068554708933903642301189210583610689954703847273199848886141168426063044197472279344878105417016349827459010982587721702086933087296775029497671359623397639627998403219621522288744932201025561055386953342840923905490594323711630628470125700502768152739744661114921433077354087922688585723003010189759352069949509695005589819433640553289697824952798195014456158662744794344242407230139917720081730236703724235357491921606908592579727150675204915546845132263210944212554435448692731255170890587504301753719293231197194626243826778814496114988895724634350629808023058458635884070215599447606384466657080449295050044877661051593491353715675350258502249222054581771786292941550022808024036355446831703531694049605013853686615922437159308953865029133268627695063071788143045316357922130854075350789671435968039318479752045759207290538019227714796607015084003108567148189705048192541823502450565157078904421136615243877898355780146682558941839943270484243321345057111025622319013655158952774738091310425215002619208105100910979406721081950420648982549594314211282455266955627116054613805420529270589366050643560167085304798190498922848143042911557519470834475186326587014672921043396511198655056891126291663965100678691245613753856469307100562600460736081087860862471655382337573890413176169512616247890979906661115041643707447078696319583835223135825143441148604400771237847463253350201146992699238987815246043030575587183464074726833005865467469745856511176882972974097918182179857211648695399631282458788542709865324284349168272548938910416018535133678664695416829222588669015881920833663304202829087138315011256271248918842726334886099233779727002697805936913838955839203003414569290946511573480697288942013428626634224718469028343691627796787235439994295523316324308780708209340673628628386992709004830035933912662985637452002725585634164728634125285188761721958823591402031645885698267730398166783816380494315523396898043927455685147901647364451670237126874645965180565759460832331578932248305948014054998731025017594338995093381591028853047604342458748177199432985198939597601380852256808698178871533997939822582977046733765009644166550630264050612946897070770996863142819870883216689403907050941412442656285264580298960555194627850140842676504554697595894863166256125891101982482170927407710480634992801645275584340627085412370233726056999344067147226986913246748622335038294987858413976422100948322829859047301884794029850951780414450854570923814547667266141960708413937804171255608806908457986470272823920943056709449563655803761004084702649163075232179924568588349317661808731578514393419282485803210497839849345320216148552616122427668442906358983423517943541434697995215672458743510910691519141920404565168077218914503311754452628967246358944815563487986411118673309531189411419620154151804026850990423413625904391088063008432163530224576389359499777080513708672639572058780825106842574462481752679300264537861973858533192018124792653874932678535280312231779877723971228413107915101740803680491927668860336760813179798061263982831250637759020353860998258364237248187217207304768498376548776827802991484361670919047191234193498864129525599865521534200982085164425887520323370374053824882815637188539347450163758202451551775295021145065110413594141833450769178895444462281589045329871395683853305417059551707573750152834546531660217166675154414667038565271095245317149987947868068423553038242848534114162159195049183294774478948433369699551688031135867986261808376426811885000786304447280570082400950598857237510689985965985351336020929681161312928850501133643497072709659867963865062967972628906454857261920802158261446506040148039714105200375127851833463292944359945375958059497879673939616197373351993925161382587892805551141075638490781821692493776917925290449641309515795609736923758618798189606976624766719868306723979531995444615097116874496565526551576629287396700141239112223518019124352038815466164093340286333713010063640313437856691148150720388423934387847678243059150117169581163154056031711774253927682193484581170074882265209222671034769838768600812949628099803926826761242998811543434286705838080401905188362749987844151354448137993892218057401526002491201139165357883346289799088300070128863069083614425723291127624030549610046309546056158976838394583691185993923696744609072446261695844967168838268733487229789421679332356256106721191329537992890830614174225684626649074436838488765620527305466940622659948406826328999216796801585558307401038051464328455497366545129770305433910172879679512762309970518140459470783394021037798335740302818172245621255641207321882725772593284335086653440014846875230040926968660140309649144856270371546686762651099286409721095337193510215212285645770255704933861851060164965314302059715659147453442938374430372082464903107130735331001060634458517571347469030034134636835677292364855233295652051317945821910921027160686643025049641727122188357657817002339514372942953180907362739309371045326207089483007739232217623894869982971263227445951112399630202077500955081420061492287031408644577688213820188196822242848914243516197340953376616588057753308567892896174252432121388075462528080497540924194740737240426451785252839724202298348166215248791506158313025529076775584045885055782349857191344869957056918416933239488156763796673265601577943548441862908866734037510340580043565029371798860753418909398668996511051911765253692154161333765921278998393975728737388363435957610227707510460192832970208313984476190254235475585288296920018215899817949823253154158209686399278886895626557226024968925022740299971023077199047702333323617487924773100699400628413437194478930451160830196180127908407469350862062133121391958531986086487191711441840512570655211659875332977044527260361231156983242946312274356073760275160513410936199423166785353485962617497060402140960062454024599775171860338964169723689738966975062520357608909903586939737346183323098135769734126810721607974565308865541152004531420258753409218012805140048663039944327171680711031409847800578949392680701952047703421908862541656527896798128637096057039103591810009237564574323852239500548832193057979636300648935380959179983085637407917920855509602869970287377319855181449185979771146445098526244292487023312444951929116839464642977034797620631870874567266811478846415819524139791116148570767859106637004978278371362676500875608834115951621496140722023980838859828668867073054563931023846273897666692059953853599424365967641413501783631117216482299725238813406167816600891117050188750480027248858642019307137732936190218001682405247451667727580324549019727010908811317961234087791700579593884891194914887416581187581632007529918457113725771793883657614498327217753683470214985228191016088872509755605233577385659677160814076857778863281618901024080304073260245147375699872861420488140321912154494029328106727914292868204999377361472832000506136264599347523673539719309551565412782519891592538624788588849367047297208485472559288159623238851616938147140376639047701786768525681001667774319955561173509685650507117084278721333024548828705940745512080391289843063610327871960898742492604241151755324851621178332128849669054017020070437740159273627662356635812225776814018786220306354524218968755620551744000826952719950431765610133952281015862867938199814865307533749373542666841088392293866463195218976095049576503869634453677382547277382304531793431556423147607736490595616691114164433962027703116647220377943469025189029166162154771104409093873489227451156477414690924382445771591018497930048585091451109855846700804941027485023547335185929368033363206803360166136789978660341683289851522964419128834387226386446067498019739525588835836247662711924693112001482826854568900276004707994996473873008675193921363542096178310469621336875341025830772575735220475084280138178983767581002567634704369435408021555589458652460604589988252054095712881088613696801978760732515486072542675592527074427456752586704141264130523838575321758150464318009510452411781760903954949074566515984392160893470134775447988144418407060502336235200685810744389126483072568736815755747096490404936851240659915158845581258685734650774750880656708301526937834503183401956236292006114768229530498112816467079973556195799431140900145990997267612630333075172635785489454598025063367449281078831134185089313492794959026325550883346922837530956813320848296035891112023917726392753585844257819636263079613457456826268093669081198052660550036273758858686379108044311284259794074607994962203563094387677815062430463543169835785883669565582485758340596551894736469998031141557157152563031148987156452195583299051428711940952896519004997402831744025085445948401575065429402800171080618890632538614712973927813422844254356655906300149164478261939257607082311054967797252919164064425939536808298578329845310440526793473249314693762493536925098776123021024214360056766645879469925120144013465183096394044549915298512631370230255783948811419526316231461147919433019813244665445738252394056111529020452367516361488611607716308173497157369146890301843945714386997635577689372440179191407300268064237866709251048126633162449021954356477140086197805095938124587589765577250894902249553769227855057889050678923110343822569140409895961824072431210364306278222249729259180565053168107285625510713710739060422092706409126775075994552000323476112384270241213286058725201371719870606804153513266658983562423808540544946194567415873771653203503637331049457484455931731740447986085962435606129701211142748268490609796152046282295775685374163587442525767180791338330804060677820840734537775585880065607104008946403196681611536553000667068693369551006661287887772093878603095120335427026059601653659682239768328534852611325489933691733451535560567073303197162546867705561799721618813005285899370508822456932160692242872970950209347338149039579672988147802722311445563899000698291861510806075422472276996438901154491255515225332961727564987562645263789698209388192183529401272456035651238353676699287769698690037828175763302981967533348334664547858721031627852636829125239580680918078845492198203933162320257628932675708199711154347907597245082487874777635685856077306308366169427251414198230441740223973065352989118538623447338250783139517965156749719411631368298009874325074986454635936475025251000750963716039913212063070646511407254946360838362936341395508396798519457875789463104674907809206967706124732173594502950642653013437436492657285308254454721776039420091073501280519297725974677113022321412015521512785221924064194638231390131841687245079935343912102604420835486426830541902499571399511647270799425374347379872756550193917611118914842462932777645102422958186115576551882580359191814482283914281311284828320476175302613821274739088574220713366255898574036246305593658531359045603413566005338358956948272571740864886096963863773067676411876354580922671031494766290300437402275775993277892243857563056419992946599865303455873735739447239385320341865631953925208316092892357744021552297995848566969068978646744776499578034414642116121598743213925309399561645443921520185515334006418144853902226648852535621247477593512790438556991500367998000028039897654795782640039429284489852816267269573403720217704848246700318491244633126182367795873590340044845061087714749419321052558035686824635804253560335241559854685896022934505321672335766433165064863670046372171033951826224782635562869544631623128322179325583804950365778698317996910502813596282951600501640595524846478622906534721340922560618048881390214525746949196730385661317790528346807210131355862037896033045933656073228442468087064466779033885066762894034535764181872926509411247541482664437490549180354787773393848831713826007251725013554497236112029733404473923067932436737344002186148883177084357107494934321111251888258608706019475280376408660265811533048823257630727686585273095774253659658273172394702198238862287099865006731244730629193883959978560981321598845582869327105128490379417989891285655148362343039269938312788140750140493339471904294167001402285821592792319493292293810974691623611720143249797127656701954201881660793522094649905880941983794597747476564421073213563801853882073312094319681268788067796819105953331042490268298467868477667444120229631813722423506689017748775321403525974068895601554303039730952705596222371484994309944605746149326403714107783293618541504386767126394421647891946344708542015250321051838200573522484664570100872756773623529356140071625335828834559541761129304491058320482634522290283252018904780221600885191442417908033843159286792977485951344465799616476271104488318582713399940843543841053408276966419813678947799019921090361619293184256485211366066484234112917520327187730996257376893541663516819884380443483914446501627902656774075834314509302896843458998011451313829785872261709609204485994977763398199098677930494475463805832198373882553189795772758989711577758719748597602763901868376782036835554947249208607685333457495088452542018800877821970607514227807722790193345669364214858893765855790546468655126923163170414088433814824243032036473995987392672301114860960789495337638795095392559391844324864919112653326390587123376413500138366902915400109976509929335830754098879465378690488191300705045270655754741996039171513009497112239526178027535646887739590004349381366723952057088640904307340872845851341520637692093565402332834110780388172693621498520109538590801662900699897260727338960766992147573554949116373125650449871856224597042575752674689282869575905484556246772041038162731157084274353900239556165866969223407004566972196301186407998975057801436658510121617496896795724007268206815641552741791650703096487127460377707414346388680142754793190134087327251714893646673046297984714419451906950130295363868401392177426079481636813352377896539163362394142424471073159386538716698366797090179597294915650474035659216889729448235602434364883130095100002017752821308453315638417808743458094197516372896956362497931132956864700150125753496931013236042531460006033298759333282249357231926604416881810184066472157331583400101508968736668878919252039499545454688939113803384785388169755637535365563692646167070996174342075596626217717112807232659246581538444945651761550956217277355854692844134084653761991326388788535524700967481702857703299815658862950072407658743937614164823051036925872472200358457431041168114301050938679167681040400803036399078843649156649579540120197176524375590534304081596845036343804603882512928089166955946411785950891993742329969819025944900821336195502603468996652198032462517766289112456044417371727842850663040885011112328206596314088528683939677905632879008638501627055013038252855431124771640920908271647833607528001107828501470583452074178187278870888302403480624668186141802838153180868445337492789920127915594693565836039380795542214452103637845604853238944360808055785784523197497950456812657825174494527113713633694772453778972904712010037856373661525416506254791024702013856416350006521095721245991966229219387350129231754894746989528396966789510409286894920701575351738943929615790019558464650076820999500653837113581847875484112212822524482159156903421653346255350405198272845555507344119005528763654522426602394469592834361937141927026944828348688268436302750879759849503257253975472953520627266746206010065274088894378976669468188391876523657905009526099735047108961221453110675560456811072416379881810536226686483559084427783668054292747064374066691536211879004556132022276112604737453300165674057335812312095503615429439425508135187791524626281342733084767891335828952235921776473275912233080733782040211396346290509907249803735622310802957780230930472582361787062153539157174437157764856229333670575143150488355316662911384952926978832160982139667833519598921237689809319001399834389556123698683245596843215328850752652190689641495264137799716108027705418821222962480461343693442287126974822621537625332006376436448214963337723067660507202051868441171441232295554995796017554198879448174234421096246802738879974691549685282017435767977841639299534689692071448268796060287788677387858933261158473446046299719858863913005047097158867753659711365497166033328466396862623315809030883868963748087160487311999015723907783592788879537416659667840230932703148335362865226472077339963424025735180953559696897702225675512912255918636829072083375433092480778067414657515820132305030883769861234994383624052573060777833426549608405178069801061227399725892120823663808623793525437312917723087324172229734792696602545073766020568578162423694457982083860732646221126650913286208054369277741162546582186926230786667123128843391386513828922281589793705972827255397540305741754188506935904356656514415155369582033587412481313746203981418761566661663269502284944311497233567137175888268675525981186611029667302839352637161740089801660278234414509228240850200053540779104992196999148052230191085843326682025602115265240684017788916749238079467451224049619659997433562626521052074081187941727005490116172149437277729740521401627047875096331191140575342162078344313243274707415617331369671435760087057448525443971361953386002184595824395763804700166101760566057072860108085563113495624518565693808578348376986079684824763348186622840564602988667605572391583462437350096495864170550454602260463561658594861781633348734508531951849017080353868602186164041646423679827606397960607817222477011777419118910855838775753727575313261214506658081509278443892805832250636563731041534248437343248751116200297622942864625348523807179766930963902740503148250981946407594170139071326090637455740774838937320871138165712019126247557153193255562817900473007201036325565212398374820757518967092240338214287976485024599795805133753155356007273456193755861341909029523821275187555935061252659487024551598812375430000429482636585672868542937544855507857395510079983299331112539820610836163322029847554614903506851653230086874485581400863617675887811498209183496558635160473022878507542794132561694418513511151674629648159406993903104562028639890797821762380330582733069740356379065455854809069019480141787212470983418873517613015653654456884317508706900871188521496482646615146502740191480067507611190156393980297264581340019485620700554304832277958984774978585554053055051466147621697231598083434935019179071329910486195018249623357387540529095286428172264977158095257205279120039760892679018873074624337050115311361705888628946425073412193760232377110869949014200664075094109773342020169926565767333498703596373977894523332670594753882907806307635018340416121853453884344946262865515793094933540520587814311507399364900722387070345302436045619753937987888677898719481901450969717985301072952661244735894500884840210490977239964206100116499458458293984334815490788523607147334217133179592343272067124128949718500821626194027911027939007224491944693967019870233409401727023482833129870513588088950896173182388464367366925670071031044739718074788709162009726731939149124629958994493540545838137927727742363647274703923549912046380894499377075944783024233654179018662928414413862682731013616171358741209149566477586045636377151965645013238395723363765156303562869044475279361885051666953364274599411409132184190512735301873321078274619736490149495836555138245964513309361771513543236710227059484649570913434806835401316531833596161535116737899423811903298822443508224834298077105718700712837698166661553257650044120924800022972002434625278819942795009950133557264109694275504003727016672757042474753926425351110071293246262879419543544750103686267440570241795346715047226697813477956949025033048040095530495840122247242807818476874690878302484814247276505362550077784512736077348786362354917024092659555372143170188144350098345014821971234826394181936735531382684814208823049956913973618998363904422280322785610545801802019062928938352585944854344946495883930016851614994384729516361864166261373188190160143201753337310795828778627053742243873876706509351950424222595900468532232554705294548724532424198230150018892323876066254449322285749446664450240777350607908804041559041351556077534420345251462990443727459114908125772036348556475835904467127848952175337260072612083765888012768390421001679489925265747355295260829688997767702483371076627488369903551557594579208243646452061667309567167168876698315637265772331820158534209244401404334499891663582217796192359295581956293178030955873595753665342327142944088751275071513441332814658470208332019378478785347148158252012763689929913418353951322237110779254178290704607777954337141755223688927450085192066591620862083404120888805344830843026380287083253813731653971484335510205801123497829535403644657164547761064606592436252620280107011340852701237938662811447964624149017903383892879738067980250849191862440042056358952873908754731790966401933916621444200764647113825239822532369872679321644708237360732683852161188283625232547510430668027213771526970674360003992014420992894631682315685905549104219543813726661228148676823638444153340669254110878543239310630121559138639186663591099779959030882780012194171534202901490779067506549333824898295031316824924409538754503488497406106317523318758853806187257441355789219636384274647937202379418009614107106174909097936554433588773214062342598953001184142914583553101205452122931168269656468610356834498245273821207440890818608865975236475323815033852268433211880057481165719770449460431325816791951305250014532642604822561418428743462594437379453514970634128892020503908789132146059192720981437723675677034827530291757316141290586432072315747894968886500523132783212973844857924461907779732511044418299236643023085861875013151455850923298760552899321591978308129237485418463888045263794509844791307555738070178110490592365316019911969301592753775508590208761937490894810283643962765639397620557448754431890683103563576032411797993666520335188126478069277461916564105471837875204969784839428774186460907179194221267088946333011120525032133519305936997068307272019233993608946216294283047343892094380557016722789710496182430361766982122604713430819448011117256438485737438923566060302180518736978596847686055785712775540863279140704225757554260113885798878898303798104451977792364320166964573532200234313809283220667241611576608298837812167850728505490851080434026798347683822417111706934331673377063342958215526069146670132445809082230717091262141667533384371561603344882553706975999395755017219671698335252373698455504916739296117028156640953127591343427976969532281359630088711686946323456138952529511179238060958650934098804216905702352619210705624815258586238442655683965529392144565639628870928287984370567052915246290020611769768094030357327992503923259402785784623826334863900874462980812489332896382877580373599912384384947363361488321362534432980252671424028623370391456457356429336793770544445791101413880052863972488922720392426371557052348209002061246682463667132634894442693951261666798144227989255170087346995921831398425892794321001726048240974529597940153813148278513517397405564951330667168611052831582071303768124996240700363418672265261492955463018835437682981987850269168370967293278345792818191010563171165448544708027128213835630126340264811291934935279302054579078013820662688229312947774928505915327763184558383283480687960918019294998252797677311828555913695211503949339289530576056549331984578516540896397597360999526481890209052003443953102181987826178579070647758945654748136994540335232919190819249051570068231160087250279301253423010202537919466212545934300822088661361953874070963258485892197504765959080887932363396099733706133139568402504586410753030163503026232986464816561959194318398028236805930510722390216041433771253095952618706239668919800434832815060426222038186666818384829265439538864295243468450953394013916649061479410966404612986905156850170867783822644489760824244340001798590591996441816586998776250591793374861269188918563148393035223404595300147747994197392181957786332851217387574158507942117527128530944018918995077179744080750824191940265363361826064992517825001521526685463102608437568685072736349107127148644850971906940587662718548246317645207533744052896792569764664571514878135729731390763431885126119992264147568964917037687847477066054406469172454097151483234779952972837092163059144179179568807244637303737943653390170358701711123252331533009760107258512390671157824244842502918912086083853578714351330455662697159475815613988831757276627262783570754811638913540645843259757308196932578359364137994706397927620681239773314521393958989936595980585143699208726313915986337715232299511293967368998775299615949637742252983606168395232142495526694114085571883985704355093172276940558552183576405624471644644849067461137949531761315507353560049921692868901028780740373579633631296670626089383782720479802267768220490842604934577185570371731848147439917722027548876020221174156172855484510085300463351432402811354205865475922981352143846180262683062843673684523107107941438880941918899124008030954473930823497978150809649235731086561238541696821673104893356111834155722614736718406018132707168231620227013249623352089531687742351987359962408401372211897407885386876266200418297012973338059828175425971053249084907381983150763302731917858710886503757728368330467252321334957735362178278580098034555258607395452274205663331051208128501914175654668292803326545741740654289633015872839030717094377704841693764217846778849619584669603435120652945280660448101240010569046462150795928689519774402345841821726652107895740614724362877055984925704566294647112155165188677877575006969174736666813856974122826444429485286998994775161988533704558552553319046032454923334616780326705865062157978826841010976800329275593106226372646416532164221212131732875342497726381728146393509373208683890067389828381158994906216697896943199701817704340404497942618100238761030584631791601739862916790741801724231188839258874271771239810159706152000067897525339500294205326144227387714387314494999785174340759140882780735491881994568993384749541141137509356589922423571940122490099660769475823570551059536534588855579275299097120035854318048244614110635370774158694023428905899124315188619307070643435825329696446495045232673526705447378248257406448320506249428193341876594793264701986528621978719993276854602286904707204330132717815730506187659022915047950052533047196438509754469033337535974873901512308842487454237002064630787785557871141623537854703924253266684571852386277848225251852629234156920608018497551100265426114881717897298831223664005731119585440971251637713779697296868298368946364710365816778949519534219089555488699110957179837192121658783709822737699126075378581589062215558016269438776298198973783236801953994801894549649855217960629538465679590447797420478821784000915395005871042651041239351165804325362356122107386959927601439695264279432660441996093348692717991979309286479493204163817482516707781765379001111807738390777988121235463413618733952179831833615476511539194771589567829287411097159268762034731741951088857266768670653402469621207535168239203523268859250111318686055216584811888772108008789520885356093145216690497506462761991252682780543170462448328969168614743016275463631937595029373025515392204101197254393588667390200419027679809095766322446483275564439922508053663613247067940928347884874411551421345582766150588831418351884820864927840383013069518036410856839931232210702088789426619328903698732111805828107175434178172289587562351116455909878405877480294387489637458049648899260270162534616731956770350044657291339087984484249325918120933682245673976563887570057563921380334463862434185698608795236385626470381224804081797058232397881196344079384435911439831300658236939696776456492263825152945307727752044456360813170062916781529759898894221103034574292042096584326928172030459696376548589899869119384451602442270492608709442896603031848450918926727958737437537184065797693070689638496907479881496334594691292986359017013073117115112627960995276675749421553742280971482553477877583844239699373783777033325780090410252211787765006648747044980477765943964937399892884503628505216593976347578790979841448948763581903004057091641917201484108031176652715016057702579087764560723749219978831557177518009875094065963248453880767537023883299993396916776214785957431491286576774380620777915630791154185990307595426392345908373246438552640733568388784949314421699837596978069718668224679588972686468157768819406006338409761205582093637521679856171044074428762919915387955421730498188667730606761561519044961830840956621044493857935081173654706124661666053233751294698730538519675893154727586391336097584618754241690046050836056865574494786971856057976500117381001075691526893102222599363254782640658237767037474172033062019671601082418477621852786022156461143357328692399984882484980037313245962515647967797095124871957730255093062532599276951988628395695691599189723167159417819524835942409622638839348369099775895317271963747789996237317830442882351290174063243900011818439892769411757714983271303159363480603970568637264428074908475244125823201612566035183380681988909802390561283441210316517381045268300893973302879454298759476663586039793573111461856255006007624563189192831381544535925282125795723511605181542217673114184912609247636204192337791787787466278584349652161385506437444500000186937081109998693508772591298929337189454112074376525301022366401245603796146405329669047049998419087918690228765634569342103616909841693996232762196524442397326355867347677201816544839074979473500472538978005719249045291393638843550985166598389510825324006409238220503142528210095168688078509375055464732541777536818531586448023407179143192947264924017078020889905485330014434998822681409505544175969626584679903164188134485022257346695050784715597061775961246146340141104232201355558463275599335820110846613310922036348873969573959027484961227067009940951598389847026230837295883457681194718781790856985171378832589155496289342499637062225959909163013192256616473560101779837063543510246836211789054134833859867936829261241254228876621994051790027754821689745291271004509448378942565342675977572827957956694182542866113623719398267442955638601578185393198449894498800856278248823610213885225168884375491693156218195501816021143069054924497194204111508891064522080651690367402179929903891974207716533889947879500274529901780209030892459140967632062143996716220096443124452036777733615146024497736829559406375381813300092586013912560824163486113449368552216531519877748787498881626541901011499925530643655450626280906885610530995845740056083453735016861271889824530754462487632623216538654521547904951802966658410010958463029801425394643653116945040912967037459922239639474447358135694035044788137786743077878453928152627211941704858074254836000640142463027324315164862681892438603340792906992625047132071623667229003783463844755357720105308082741605390566851360409187413909840206526144305686923956561815030554354986355842967357468249707887232765049680261003685627293944313487006745272754530844722672372948957542357350709059588643304607963130189357882526240925974816305827520478103615965242238809787001678332620198059902172354430772282075024342547570193832262005550539037906967259232877612893562665858481465616449638565056985092283053760289809767836573839326588003362963316941544902813508268547962176274240305223412885289047323053364518727352127328547838028022086163548242826321189063460919567189716489026798571762558787590995239380647203903936654397703603355288683937277551626385444899367648570263876239366252550201275397209203978623974502214074376180244009881520073216698249381907014218082039810020624840394301799947873199542938892431124210992553211164285780165019090230121171887880806558682504916367475886806462961578903318659043021257011903272206270514106275337254760407525793094808683388975899769704727960065748015063430200858430134793618673348701801599329682520293254699086233584714368493660214520647536368453471175410260039150398360861867393743734591034662303252804057974909690359142987285978965706771937688954274277947578135928600267896427373696453603647632773253288673923443657315027719956155209740389465079095454659418459033626992410422936292119789864963664656199304364485175563580967271621806262762747610942161441328285807379300363687261483229776353298525979415044905310925554791079326271164906099651077386171948176568405413906391981298443760497760726807894071468321362972535746501737028052618281866918444337359601903269803489759526196097394165259668358529551147916005463862631531291574415761072782172680679028136653109095260422774341362347925990694323213004546498879398747000561615876082305954328713689271426924245302096093026719016788516357744360371042242612489718414433866500857812707987360767967463857021005893323174171572536330841262643525105184901395757550331386035303911813856135722809780009397273652221803387788727009049157947259316167992745479679760855819632546188806273230327699124065666160371335730104572808953464146043128107062104534778358096469808555172463555334264814294141133303711980623748681883446143106727604929795580649088932480267521414902917963759314707041012452291558954959093778783598577423302901007452101725657755767869547583077677071357803946617602517298268665158159770060364795682756172898356210324133288421516213967318203602666626079149260636592307817320292800997750612592265938675471229232456415495628409084299962062574588252246661422223300440060339422431361123647144718053563035432895119138726777622612077180467181968780861836626657704282780967630845960817009386837403932286941114057580315663776570453186453389230594703937885462103840866033050786788603018435348230038281932955503431065691232818054054464985561212251601106127562436918069593732682836692778250041737582488264320288197959585390891255763492543870403054443093697423813567192851258925501632245022197123991428427034739157960640349939458506598378053256231946172379590652035396161175828674764065094839563239351046578813451868597546669572247770260525695600557769412214115277502090954764767597372269974449936219862440302667680721302441378408214563467611247342023756096398126107120133876352718592205253199806057674245602916561311809538514475203242487533777779585720447944525119029310027132828425924105266574877351761677041725063317709652553847626029468072885990690316874465453686205821021005082128385568968779843145797480020798032050043635845132373680107149555315547125232482435743027944985683429369890964207554521927777040183932952581674345257329060998980909354970428553305383476808337384510822514741148725795543997057720658540781626241698465332483412484894146686774937896684142284953260807312933222750953090570036929832779922373847219996848541385751945108829257160783922686843801501052559221207273948328360990094059896480505578684962774787275344369408430090527831862117013087757203803070396927158303122994249068928632100948058972209041627274397493866099661157524216366649856676583662727532404997818921537811570025929488652198216605317516768576070075986480554127012719153100388827598897778045558883228904849591490747296972141230265611629378454132396914578875438292752585337974398383064856085040550160047334775055327223277720377437307858605965937784112597036309902230060951024629641376386886616816263795120800165415593482340227830169556341052921177433399032772260941162374670559276351444787427846555029327979872490559442999375278733706561390147747972455097925175087063448153724720555887697517598409078294861439135840404814077297660216189976808818796163017105007256670770307186330906927031499255388030053248726786882384357596791086914852360316861213440131760283801822934858277830994209715484008590357068770680307089758999561830693429187556233134554320736871642619415461124271527007145396434086193629707921877274782026716831142767359422912150461813271817280819507694647010607805657266462021954273211245040462972508048232625969717266336479600729049967396342324823478186594374617838284291874983622034679160163763051972171942418798718072489226387244826509414391769719741560921882155569240779604244562249938053120603855947422947290166533266347914704996657901160456790031310623065471593196695844674204710345010007108167504886805694990154398481023781619344519448806624791043521227160931770754253074785112555416495877823324144431250899458863520447329744639499836651542072719245449735418201531995381268863060916915782004627206538802268097530479978236187274953637777718006755436924162945890255330936678322931030707533562872594418959327064812651294557073969571423028282138200249599433343130739960253904325319902910029815682799568615095501421073597363366115027516602859834576710059772783866319797103743452463212829107482669070386662425225741980751663152383748275343576004285480791829927804474648779626074997353300400644268316469819517615817721356690274191367266267930943128804231361002618852829449434281999831134379845734547383046624435714140485165955186796254958855674759385359745129847459674390967612511867046040153931410557421540663442220891051823787119059800650682031254953697018066017410223595269304616749580259462346183661830553844614821557794174763409659216585207602131578580500704777389637920043327012610371996063465252043882406680215274248657560817732300688842915145846683352154797174823752454560281329421471368447708156961282648908985598196523616279732945318470601905933810619462192140613465831020202408543920127992482381938671528666462348611664176447597888825266111788341913267824052093490437593829041161097773804108962803444298512328089484414873092779388630583043344263462331645343806354724890328167400807169730737353041878619143361387341768543241495360787161890645413263485239357535026229306478908401121956662583417973958636773928855328341085341204588256972935325790379510404294920324465550015864931782657636715697378392649588363075750573079188646998124730150470805096897141409311108771287757302157803833124451302163495848915496039092122127729240046270744105402463912746358475427620612869727645501523962920274825737637536377990555448026383361468362060569240089738739829726111932175848957475631506963782635377264928821745722260099695821031717055154497808515882522385131542691794544773977549348370997746817673572039606531559048031387017717689605777720089991245218434906454871046940632018220475016858230574391035221878634490790693868575862917379107438198282147162701307334176540504378596283730587993251277567369165927111993079134300498108933100446672830696674082177486375597638791145403799328379020710907924190516496308177038589871108366061706167633830397792531314312407966364428786398731378756930976178509246945180232647886349806058511941031421342067442761816446334190140179522700229004395990253219209431151974799354247524160292822329572530228900099264699258278740649376469481081802324641339017761978084912178577670481710582049934512536553106689655852132531050057682784545855061614029042153606693284842878497026008827804266621574341716530790866951142239350513370242138866885892810801974876035694991382998870702789349864355309784269832712875801327929672954926330808277482548289667396489511505962678411551786562665196951512678306849022443062318717034788952478115681692027580935022060160257777532561328362074300738983467898922315880575885396211387631872235151875782717588910628882424715503895235270130303284211762652904769104236203437635418405384323150759002279050124277700758724808706187664993789665004736314162431080655035097040600042658262638352986354382883172069831279151183064528629912822871229418824786111422678738579121180853495193997567478045311884145916658385448666531117732921484654856214185457958025615553600423081879489618411182098453378292684089297221537881947720532148477942081393075493719004675007181993233881500627887712430506220419969375170263073710938140284872510521021563063381793935460361933997629132092041193041200007049177931985759031907658319640268818811287229542550512389921020310234003595774728673517072347094809113181276653087471034523952534714362939230987709288670402505921019676973445757705446706399622155369600490776907600802064277022808094883200815410947535503038207593021768360561534276702181739551500294912412033993874989267617340434760993057944583723125128644781090558300832771087660998205094582812066463126125704975459896982718591441211962981366765717563658246074278798653790090950556976716478797400281572183761806824038504868395507841958785305414062633534507647148445635950397026020885266499725277896515462390864270764572676294228759832567731611020345107589795087197026171622106381365664532081980327221555474850485408672613936411165012353871549074524757329149794355549438627105156683272455011655548406958420002658759265513027540020214397088309332379499372259213691184297639912828830995541773628991835556904927669795554696723279812264778872787223021126403915188382896294467991829950156691129362236054512752225143936171081188509573600791968347570325863904977601643542086011820403860060379777756035619539388226216379645992776657002694950036895069445948605258643148206012919327920349385745283584640289929423014748254585585180992332048137502733980780063502360429313286136780799709958532312397343960585491118686275948594822772526425102288092378069798915420064940361219246791096178175527247335319256423272623899106989732568343127761622464766956665523152021708494549756936831669870018845310483066107198854009112344398749926311837149171537966187486837029140624916879504701208351133731905592094204674018972858048020838206575342555049208996351682876225574773684296841723295788200301709478421496603673091310997040199368139854377288536898863982700387101761617517088191381283881883737713866494008525352612459687086090928786276919373066834979944446387225341296025811220171452508605044133954866116366893181341730968471331899056334024882729963562413245885035706193662036855115574970362284548892173390660857375876886617481792715380731434193710114513352677756934051614628137436145031315120172550470994729368130069125887091761590902341677501042292978427281711101807312699873840136014715783885528118362226330633656178978875190859036689841871943168854731084889480310270672012149577098960562917652361394317298813923016461056334935442941753127350209036719680499971001031935001266910370238192636843591500314955411872412287466898974190429542226221903228434315808310686659247025542501243780450875548519282506318748952986132006276763719916403758705922928104233106954949584486399953209688707689998066283655432522236968255694301862560379601889687098321153096184515510446047200112488179258693353096806905076132885420342097877635031616686657836967072076852298440869683103949743444162762384033704817414680980086998282660950307240312017142458310382307074064453286442667521392244347866342432512335665266447322395380008668650749682728704841333205753212595151836468523758532816748703824493701920823550278562115547660142277257469126517473813163931052487092740825129107966129999291328890480520427893105373736159590458589145663015966594411334548313575881870580975837469033696022177268834478298871988384031889424201552811927694081925737668733412622026404948387630593875607400435288038787973812515364274646906738461484431097815242197706569198126210867066565779954326297533764474661007607012150029323000969534342621869422864778242429848033110756098545941916884885018516332948349933230414507845826299241669022540133110595292669910756210597523900287876622446933322801355256637936012697461672557983988525172872053292476686425394063684937205390197578838156977947376604383099802383426005124565748850917979940250644377973473987569445364887416321673689514274733549783087619634783960246824501702792759674571066973598463143575346774799605426219824358358926712545836227742351392253263930349120145563358943778235752281680712893724736043839953503412916915260369448421523861611256039108943828481269937036334860184980901102138594165838430137840242529286444390380303474729112753609461937917271445500463687980525291086767801285312210328111175480729303393946167031554925684138576701760143419588637895152908740984961978275312696780745675774253970747157779122340946851777956734800210268751440192212262993096432809701599664045042759080341906342253232949543339071520581514669133533322699190273076518308437769055324758686347628445251557444531675321341759995359268628302464671917941979455958621516787511758679863578437441721040516887895327093254356501364364197769809853971251315375287017983577736469485266888246786227589614601685751453852611173804774004063095199423033028262654529880290802343697011771932956799262788884728962233548854241661650393768039086233907552909621091194153199255788318152564715298710494918140641748696294651994764567559991481993287664250639491986218134595650239517466617737418544493395865205109729131326599751770059070392600917518508687915894824010326074060471020704392953802258289457442873998825805891106696475335405060314102686702690183583556115450153448801388476449202008590715622555565564430182397284252900579130669697699315433115169220305561148673460181406099516018777885040870116979451414275125239774675577799409903383600214220890939967992578807908045898902904214961700804902981446843457479168574716703702970613061783041786379237644200918204755531212963082149743082351012210488046896505193658248870999389746197411965339111784304770661443829043687824224821738701990844257767432664031676498973256938061905951041364006951350018839283960808634945879381403315688195560692139242999694557506624562137164997651533786276208186368357807691667038446395976528884484952551272454403152453231224148037764312808867544756878266454603671835989114568245403999521326057628676089228959203881668647859330483500680648671758765555621368503340251112015167328149052422721250122755128493314343129960869083201429976618689977616601933919784041794316048006746106895524132495638170532880608983495807412194876128233334108166217920176032983305108881673558782612106774403789777477908155935292696973731336951743539324984600301655769214174717238517069016963464132484099836796849486192309762278438139415910293803857035917422533087921833674146803133454125336316460848732725992818229019995901353032907656729306352344405614198431737635389760171983167031382055384873256587759265866901343007387769722736517904592763555114270091220886078053442910577787198883751265153020327741637674293224352092953588404771868830342115578139320648283015530769326590233692985366215426954472402192807929186803146026661201503988220024609863515319876640938856602981830109804824993510419694012292947457612588440460701980521555725689813849558735002706503257376431737690199932886702914881558437633672152527596250734072053406182128854386129520518260564611797404750785653563444832387666659067164392448568292909670308403946404995700957469519033266736660315525130399111280454248781759964921083690288189223731678876943213576017515875166573946805638523872480639082451522982816415355528963354156933787608708619687814993839975469961249142598787859905549914848916097046603588127223278108643846260903589789549628895608960704053205397094123607111565579401477721331459856605860250229018675635617562569664526827405306883952760858037524455011152306731791143762376431715901519772791399657065443373359879911062056488160526404764370102519317424198146373484959989623221828133101428239817306114167679004255080072333735795096778016704829986990201396115361584978236349827025956026145352606027808218488071195739827073238232782384561015429542651866811361537624075171430081497632075021481957916239037635524122691565322113220361752894122271726294486428884667651696322601786597854821121724051639678847304007042480706784751756756018315865740038084647236565025128396065712954530990329893075331697310222821490079959141054894092555888642411314654722128714867717773619559998300976939307587862078040351278249297880290843569390856137781600273358501389015086489000696245535275234999149590514277611670800723525116937217314954105866611390028496534758983053734879251371741663588645482711004415227202557923558116944068319156113554849229885199349116580460507560561596264930590958823962542708880668530492673459221033588161947098396570196646085210955168124940359124504385014094709246195136853094356964102694635715381770428838974829758702292522139694215041278881474288335627673810361392273590062747823869487173515449457634001033480270633757754421326712487003049056563951041136389516982294503185055474470639443087411481632846631353723495302178822766770942486707384278076451255948901884186292190117315150477377025092032509146899859146879770086394773500494679563753986543170966425253183129539914324111849996147294219709097352442933312848957855223178739508711820423337521345044427486303059096240247603541080732733125350647963001803164351825453950419957212098142941166617223433352151024689534076379515409641553873911581016471374504609468333855702725081285579683363195891822145088504271998783011156923560860477544927338691184574282773657832728518547573635471362578029417194127163078301326034452727493325320423180901147145634731177250676883036993197013976666336805365721377675400032265605666018844883074727399949200420501911742108979173952716763490012446086562653048531401745620337144610198934708081048047666000065402308480667230336989069390568891453616186026716968258316235765371644979285366513621249514753951465802389319888985941040349510556691654566545307580868489810488609322148035080158933472262807241519831130914540261567944558899396465343499885590824607644286303967018519352496408427146725048822650563867920459917522296569931473312724251252907537459563945869280085241837385739512204628714172067847002445162479059207731589247549234767298148121687420595039472503636396008372054270881830808769110954943757947376028438650351015522844523831435205035508999844380116763745452632606240402445141159352392308481240681348829293034432052116665008486490161272942090374680933541529838421146700305980322219498035259286164360998503163861101225310032509513852246012122193970885882018738849523272725723790676047575553149023630935567788800799736064030505796986085962547656838769490929687969660158278498352204311398010940746494968664756061471486473888647454392880993603973665101584580541638696444441126665371501113489809378408452935384315539796323123586023294839510932993502032585231229823712098805202867327604409058822502960226212779131917792670750150801832897417829406837182502160518743673703659956368898022516010273048069635672414230670776071456690453867737567758092446090442732655496574276969920356767615409103488120820892122597801372549441253061648331162640014507424925429727672275572375879121346554820695151107423672208628211881846408341578835262336020609506143394969860331424850200239698185908348685909978830994421741231908333456559166567393171951533976181218143066394057418546435638590682970201587573646492013264299318945426840444117786150625918290462690788209022510351282776657080358888699761697822026398424491909969973493253534485387527076040476562035497658884390083671585212514655829505162018080498657256620411963997886376664410708450189277580885100412796990793876312559342141452375435942720470544407663136906176953955919494674742756377730331824206197883009724181349339988393539814087329261227034990305060684092044645955665227954427815633277728045543810403061596235403083073158117287016893988294016470230938467221490121746179450642975387577457791731717139424738850923564995093427636135899369170513221614580696413509783181347707038941955884851404671330537247736554979998462791776335322498969025018166246795334332660752535299145976808153186037807720669299213952485724780914852725487351426054628565556421669173251814264968712779319857107373043933840117877154026267237402624503673854921520467281650983608003130025674167894985387325066835075139982664136790892852855476748291971712334308591271045469792715699925045438958504261016332476601136339594144565915772551152498382788787019356241678936494316282799942912720911838886001259689181584673808371587239618074602432806665923139361484692060536883761821618665833772691162334891005172238772622183676309040939228522339127272283473008889170204644581494816220016953984539488261278132353331804793757663980042396352437119849881768655122081918824328805997360982959392770656429740722257440454431355001222876869021765066002019605773609252391449926233879021565253721820210605541059135164654719862674702616291308718227503394954965389582454391593149353128079559761521761003130745680330195830896983541225036177401276784518669583705083031089477502468632717338623517897583277991345004566192382944950807649262462938255679399883745413079515355321720139928295867339579504507206826869727996541884776076989562329099867896118649356157555543811872574103719613186788037563631150484945924383196031267078035493734224379271917031091881840633432695170809614483236331611138206804244163823099734601521370093588422462663123926370776034724896325487351271345759945074645001832089104084151853882118500270002100459702841791855667055988218998562924647785334777490698794363175940896170832555709829790464245389680662784894515644547539462239986725080711757719198815817211764206793040075554097121935541472794559804919544782420863483164979075272811154429792275401769807371726564814167956221362597680744403486565752354969501684460753907109784161643770090432626676098548297731877267703909819863727504887757624006648161175100781708974348057248714482154022607209343577430637161816570670106458513455579294579001108416208677477002629463878281295992513462761360527322974999524165270410835988395756571289302361913437337004540560753540998530349050301624962400022460204923141786987946944137145657885826836398087794487099514031545373564003042445614275240555698004347753859115809646399074887188400864154445267430907131928348745511368365998195791391222414090897839334614139062510762360619137431646376399718698269456948231054161761981473745919993528640597168389940336976672378422415187493413945319728956305989909060833205885890725533670351693216869679889664209556774314953779490729545942416459226334593174434700051950034046273460696505966703917839672916536380539767138980000577051164310708239812841707544175855446818590079743401900864582171709217392543515146646223351046026122593670574480627870491154882554468755661865849684974341154495797661461944988858221038102640180232138162617538291295689941722938187062888408586738316578147180456605052280741663800917476668906056333379688944173820436436252510072279252863120867111916864551298729079095766896597134484325412507312729297547471455293808894893784354411452929598827026335892435691262863582338276879762279798643564256429359794729456378301633791137500451106655920834611505322368625488258445458584587949078431760177543419964664792550254523587132689198608384730465483343364082032651261573252227131175194813458198089551885948629628683944143288791281763113049798039062837966963321267760589846231505756164080117229914949525093162063547544981906678962558434559956734086151701753460726779380855928504147115248355420703508865136291858997863405537328233026376276799325358904825160445883141423139523534704356433750194808005636334462372485518343260591112145383436344628846576416924161877215938311791807071075132403749382335776562066588759475208923955541426314762939381655452867382493516044054535361396822952499614199122955160309295199062619031632106853769807054803285737669457828384949446014412976415191438718643035895853700144760522119672898631367748035502314824275192008992957137541852401202614748840993159330798652873761146294159355150354842983158893989866847240313386314232591027935590025933131778540875473392054754161215822393577757437545731334609653512639520014216004620509683850272873764447822534916875860282081840587505909247546476425390004430319342867192011485522465405918906198850161504527354772283529095425285078738155977362977225638067140060428747847821739873573211618782775606978866692841932495038344485849450614505983852361153666768721313042515874586751649025154125096205127964885853492352668946987434572310747172908998509469638537111755009737047972438872002404507580257666010111840313060320304498907802264928444724962922238013481625021343637695976953626935837971090442744968265960136843059615362903813303570698348620552501714397166269273204673756181289853305571785130296678619190301865164811530677940867592509698002823580949958967619520101981360376928906835663732931961081081471679360662540046591967078607564611887758802330443674025313454216925571061442897944458489399521334749799807052399211386806014261635979076608327030294960814806589793073910840211214967848301870410199266860008940451660019388109917156739205331847503175268560740510422632163583879206180223070601000625320909287363790086581351406669842514341416519993223257932769831501908974713167935439224043124699048279389276617581741414309878407002110621956391282840179325488298529649028560051388667394361058229962268872425922638956012901350170461402420425214526034312232012788005612661851298635040465626181589139017860683031871689245226644553247974543395094248048656439888036755358108616370657292016308826078464442797886761468280822739890250476881602472242947439806021233402592664214192944645294442074784302198495872865803560254362346008892117601499711258325329116840456476724774558303990715262781336246922468912331683420827021446387828310764225951984283773477731480654922161668758620519420420127343704997070346743955055566596102920214737936249862011682901958630143941259244044571307731972268004817320612269821755827185375488466855440762849607873946533619009357036366250949131647831977227379228374556962738579939825745550506893272112304436196688020736389968587141354491677219116344569624288124055315761099227850185866145862981926992200049111011994673427636448293483191476274934179842727460353421097896823805748914041927741986115702760078234034283969317687550245229148401379165723240188995923361929326187826460015662023153577179899272519810880005657458300519228469721936813327124143693122705950343612620517900586921217073154018569017610402157660703987446989399104788057700790924897258329678557733773520559259670478437353799267995188184100220651040118151644698422135807253208515642115660300717604977995382153546402758456122858035324991993741404828199562073040677319766761088101033030282673315659444551616271351983860204888438354632271858552374831723195853496862153528377487841133619442330356429002296391932268295391805046152185849493370275946127437148192810415743676722692879619597051019932570175949093970440196817611569801289414376672642023085853853063075006951094407073915862197171697815495129299049067035742999673409330100243555108017665241187216989817471423894690257816405557649149238056661136407984790634907585838330446950067089509265313234722517553019554794817072355521466910816825874067845061678319187765519737906013018216032878353679667504255836048910772465100612851376340914056658158859354348010337428433304748155846553669027847562277261509238069106154322340983467424223720835223746374856514049276265529366652571074968528748913811381035802690297072433364601525200225817226431389782901318442032990597207819895967521773972845863955548001543140026353400607475139114443601948367000781740438882892535637098643950528447446853018474705629495693634445927838854683336278103035948011292536903963718138185242913448307863269661782011547947213724290538345797229682599328799996669690583032183293522579588926479996979676382278021383268722595860335203315868145556403603196010122946860874214012423407939696047572198129487619606663037541988748439523198577807788572349310534473597435632007089213923416297257645377789269431060005014832428378301321652499842546547448266328158087231060521244916339424134760210472598801695627746458687383659577386800684038618113184725321710612493111288353196450178592661355315916618557696715408760229606020079870713816534336289550048968920733174163286875166920699422393268956531095773998923932988332997605161593649198790810264372710794293662678861220763685495653512009988719662256599517507282078147837552136912923847847517837529506150612714562622119020751789262928771186463754052410735653374287123524705476308226836506906940182480215779608434776350416238270765622758173258661690958179079880679781081838136855574732447967146256911811132191417093732004815047069998993328170770819456841752886721570695373865523936987704630813581442354844981232395184399208887107479632510399983853282806199200572702803575832956144268906783257505608673770794716642096167182113644018779537087952295161797305628407233958158642136295383684860102083265463514451142680973102753581473086009484757462318221291104937949949032658381688714339176029335551454813518977695676422883522164428263177033289366927004587502676934024217097038539185232978071567463443908208433779820462717617122555038187691997422694137255731594782788964030085956800616831540036632604162487010635008918559570916589689161677299416044972145437668758245116693620277593485358621093653514281683361869879358762508400419363712764026433433957828601007296142834030685179766564226531812437764978553409685557466261970822946132170291487333116320760494904007613712101365925230642666533585463626023398308672419605971803342954971778381050150177727179064120020760048066389570212685310095918174520421886881773903185262007306152534312576172011300017903957607481986725020194752113202182084674139333607061159324527653597164578525467333394021545160136505088865035208532276408581285045439864171661878678195960650844847654242867685062533210485835712780214414524510020636628768840112164252049332941620396897520550650846529356315177794950854555636738320450742611301245535614306408458421354345075417330059965835430858416463231697680147394840661370350839937766509024635859149409628323172124250547695539214212312297133269473602903128549333720321095367865388599701452802816757889477115208113856769095942986625402034787017778641662033688867773945786764687877271995365150963825961453679283229791913959943666812679846508531862336145622925708770630843178869985284500817432012906053244183668106916935062726318974357447524833488171586476257554121441680264646206013528642286158405758455548491889730023370811745111615282977987746950790176187311708057497108059011640214639498091605059230545770598517117589239115957386788831772770190615875379385974027510634965339018469446782511849026226204986984018221552223000421164113970467815445101631245168646628223903782132616474547361421028896501242137830527677059271093621355581083918428776502168353827168366468239077801419203936982135368894635188182969743140297677151685011682369489869798304803639847921523283359210894373943925868461743299935622991715654277310706823121132934820632196798563834601858090713978821588109912263110857191104430268460594245712837903537903367468417215346222651167281895612414229892646603239964045612572764799578024399218249050298891838017143616210138944515287278001185324270275171633351080976643354741948718791034737834535593806646406848250479001633964518629292371571974083663028328643194309064063230454813111655818484106585278549384881714581748099573608689331078966722720275881777125905053648568443718814270383237228471449153651988585525207116476685937362594367701796243288268310449009191599190890447135084764607064382424367592635205634871138588590480398391304594335970585550346759253038626121922912360095781093165763782950325083279504434816079181338547092646862624129745218052997449038712200942224376383279644427960515543220469652436871142971069287680488852904362820258768459517963481751012110998628001874823342420829474321572011513525142845537011911028839966049295550019483155181298098434750004015760473280749675285957772153379919717212082270386833437651875661768443336843426826543659382810452205365378632704181274664155592616429262445423876160620215837074221294536530857267934418579886021432173563444597974909319649622132171323791632287856282694869096680278753141250970127427915132171881332724689098103930726634300061712701967348925397774197933957985675609122905550996106288796663895469292366795753100616945757469673831737284810286389907338226983154741151840310358884254288678914196207618346743920380351633463704828696673025390622833380940788998728655498074138307213683001403695627717346655727361579173868456019110869571515099716454120920909735396531912214467995877524902447503805340898058098381120367878012207409026881398392195386490505671107360593648607297904827168503631118008784551315702105927286925867348645726568177709244592419706143336863328402866848688321325452210131650800467533458802368078602114991101912625323011668937240118877151760943866387619886061682853601786840830122327201812160462270830468226018960496195811062150601836155047729796287409892905114940294479306906731196328259715153973644651019114394269339737735679326554771584668931831771779773843298895809673575396694474866784802486273972098288205570609473148780607740479276655400191274310771676444993462280136809850944059026313299336816600042575478381338020895795393612239003057131699302027210798444148454753613668230062983409594915368286508843195984427609825831695091314696975036304727276920340597226025967866855159819001428276096332076416031565123037749105478233285458828644671632617123086207644474349750256070414044805984297988257655025603727266521544247098354927977839773077498687510847691637668491578420918923289068023476733514418519357523204218506100566972582981053039640786645869769486774843050386338488568239649267188829722682632706037085011236914379085647622938133548946583003336033804859540421466102292533080570038867907455859042302602718471955232484202312179861521984693954036025183076719716220330582179908933363376052706168750669109912976219880323708084381957669640481314520862039649775508739765379073820944580155676225633137947376216575505495998177827245354648803734142894567194700781949769880531767120717883417028378905878095690649397994995792337140825372700992023325011375018876761915491091081539510281701941487401635874770518365581728451099471448917733355004122900169287392059685391202165505864340667076634064433530867218865277760407011300567604228884130060500336803457952422753079438571237261041018525731112412668908209432374459569475241004264885810072537226570682177651598509089546683301492663975677715602301479599494675376476709852315655698386782586593995357322799896134177121223740902925078905386478067556068436218801933321040947164910898531832854003482075068176382959655183787955045146024195415659778851571515281195128993985678706250665978008024668032004217143511523934614344868085841848666957549290280426151334837498288056643184946313254616500516595796170346586708018359708381866296655554504574891972504719493455198780963011576539685553802322714779853831308687065689182567723819920156352478204349999116237975594485104014621683553208679191654693965924877523765696277366170691040675171465425951204274052530213541991429915978203210353903574566641193601561967918237525105788185062367809972146714068509895972799276531445463938370624331864278367078146926705245817126048883744578679596401798624894261260623780146283862850161099423207352437198778204502313612698174501062565431004498569517768083504041988876976121805456879488561349203751054176011294001668024259458481156424487005030826745176093842636969625852280274199943166337611855319099468714900895238684637583220684733039630938271330513837965271334624790473024328524434087678932084753184976941056530319975103409000056584267058884463868170215329807564694119838746986782317149866695456183431923775716244279644545653611520476064456818438415678118649353616506979830840958502957401638869214421348487119961497582844714478473412212897903567843424360986448563569751688458323179120976906841558500109346715617643996721599741540895152527242602641359416929605665185374868300942655021149599231089293522072428315779485868723895845693787854542840394354418113587508831208386769728257055149193270556544544179023969015633852370227439710215781645546436203560248100212629600485433607382622629769197973250048837013852362137672282465503570425314045972663896164077581459357753940555859887953198322844837909379786472709806779048512564697432392099555540931856726727262732083513711084551708497254497325790564885913185445274125293483986129934320234879263777713909551471021191512376807226370053727973528890071764578376477350876200376953811033860401282903770881289581698366962816907178956965725695395700774143629147799012015179384271682121509049000906969301852083650318340503660288197090174085952310290505940334240507114153374861345826608638339132842871437802845056968486663457406031106836997474418986914227648239984974216467789767787547971338064898639862444143924155749143795929504795049062841841145887182892897675069403977533306049000593517776374757989725735764076646981875873314107200640165325959534333957084066338045395371103733161681563681907461264262677563694427090904990737703599704568272135417482085070845865439512926989886104507075685205643363221779726823548377046245451712505511364341082989347726377005422268119131957229843491834543542821132180235862788991754067373673175583133072826101963632842158440407014005961565542855828448048063087407364420834283432579899814244090136361699183200329786461190831890839602942851810587817137381660688844418777925148237576248940068786312764044593287770140523404516108881660556912801995489646386522930845308359014839952959711716079521075354414231560575703856904405213390410548261547378697482303222531562481894919020966121137486082926215246352975034006802144174855883290613789323251149246819986754496736837526365620845608972023741642555734459280459142655067501067389460266729263410357434724867672530451917085424772909886810728195297057244825876680999294305954465446758130384539162371930138828342121569887128814896708636846688397681849381710507287387891501578906346677678593824273335770471364005607678062346834247464999458652311448719057184988198372367633621869703770954182326736118703804998448495715790239107790133848134772500387971241787816514334903724666692411442111516899710620874510655415411401791425228521409698900224083948652018144750829963003623500932750926291881170209539567952850013932837736605905480820346659547188750475937105314030348022035454635810476143158616955608774184554842479422933437920103476120147354053460411638573258797961612804469327232545113595139604773659370200576798271602030761600291994158054115308367421275104584432536820822659487715458003115104864007752329279938810277375732431889252554084488701569301318678205078589190672620239582406167851663245377955565257714914079896164245618124181565153999136127872531431370966341355177219228123489838978150226619286866873478990643816020675336221862584670368011874531316478662967414005360343415104453839561389358303718903406534368174800149178922171369400462166627362015712124318276519616462502488728545996033952480022110267033279551204041359998567464188986687389849180460625973810503843920808937778947296269901864642750871976462561768635677998553661916897099170598269051308180717000358198898711715083615763513271072555956654518908788446763676623616085440312069732134603508919002795739126535797133001454744074113446055517210621757722426180973400533199863439758960149953995721225882793699654860244870611741792539816700240461574411872665227914568636222302560410473999033342624034428522118397581364849167925110785833556345282144302569971089591284506765814022499158517854759047014827875525682897824445085297238933987335823060107122825825335752790790508821754119366398085681364468879225176193997486503629550222143268426993521876085249973303336912246117327053447990818325771568569373263054482130140835433819670870968745570284753893912836633919375099582854545304735840354222542919516817332954775181956591796646514370949170268312857101919522642353174990365164269514795747856605936380509673049851200509929096558805524233275303200413325848615307749394402248195130836668707770710848915047475340172879703302781378050397397410851617700654017756167073125775938733955774425471408218098841336543263828246635259824243048950896007248864181484154473325894722048458366896154940292569523157651440446221852405642176462400331120676870027948651966266064318967801984067714785177853600534711281758911123988706189034404274680419393486282014062443917474861261856943758965866481595460538060602733931173911219213176657103863195524819195266884207220904535969440753361365958095741717231652099252460724133419833160292601646615482339045048072913776379207283705247768274252578877641828354910327330859760820442536366375940715855175472808900322343595119841901926395863420431350975473388953531365484387228364384743489049971809941290875920070146919471481588344568180735643991351211216426723287776259065006568143087545236673788483795768506136442226813257209835112907225229373626834770095780879871584385093189906367101773892062978664817188505148438393128000040877188016506827415268305519193384929175004721510104069202034674852267469829229324880739048594698411105068016265808161327679783380873758023168870833898813271525912889344376520623659812330738860932063115838650843938458871163967547603962663002354358950153212062931884487781065549541049588927244018119274951656069648705427645863319708398281778283585117991160721375666248027023846320003677457316683588300512198448894361020378794112558003004266205887244951475308325103252738968734548931190277072463258492885218176163264209631712939085401438417591831485986874949452680800126307684698093595705963201237575758214619580543031472940487434159917219457291655244116051749671282382259631919368318981759325763438542189777989368267001824450436140077836739031449853908869756389636999097593650197945063950690489185030847541288458608824579992964702924790054477300858092551148458420453883846218980011618806973828378182196851210318992647773718445482897512772980540058987556177910270198745191521659765886458027441909517565659935108425232727501436042087442020774253073859987245886310473704294419039580531796078527656479014495785742708120452791921954724690853531256101950024553851378236812962724965104728559251759265275327053967563044062914763188867792070931601022939244930700040505409174928396328313012437236139034602316792108867434224338767378404741959071534540216746861479287174002172953187546433097731236317755798461257838856896755034781813980744706190951131677223743175981479486374639201882872092141672518918273656238101237441424370021616178306936055245761011308118534280202717195877831412416983315796314924562508961274060377039946233996451499294380029236378888012998675143481385067113269375150745657522427001580731099542507183879475712014074210966357023022833817100900128168903674812502509459297954773097315584316536988639453321148337009705741226814758789390048467038542987249040472665723156536644778672665136036515288143423159948866813630896970218253651670325856905481948018063738157225730084686308069439643329535305368758985865484297134058544022070971573322532961982187890814072838752154064709935385489007913471858954331838021635654689947716887615827444158125393079560316870461748494745906398776791710511097231360071397664607896180646301902872537564826229093349539927547188771644859798027961359191119622336470638428948532171610394933590433131653820073859654130687867252343691855364889066817051468166531195590137379397604346457493426423410311347342055930627461744899443027269586692718626291679337188711641665518626394802402650540856420194241792457797713438143576757537638588777552711009882349204516009537652221319831123931435257215048301086995046996843995484152122723266791404087515932692527975516894538428313793928852409309800316687699474163693200417708923617826391062290317478969089323129887847290630290467911534628496243940805150990113135581674247855885554672382967782950598535677047577757245361351312879471042375721981597844204350701983428665430172099144839318484219751258572691114681150948953450997732012077402389462563486717607925876222325991748074085989678202364245502963642663361099103054721012083401615232830393702183263090920128994066023308215121567122785341291887076606418056005324437082095623139201487747046627582635985332062933349793659688667274796349498376509304158047553832035409557425528232465073998526359090611874497231565154237448581379656270982301476214918837908449891307405259102686382929576030225982999614227783691650140590091094198445621559821585941107922528601727869951852500014911791001722295150299115651982904380455891635076568444382867366845253944302245392435701205092151782840390669764775340207579848415049401371752637148388616684639618939039534652799417806717871299852029894423996564433512856340545216150957897933879966022016535111142930380368221994132886753175562251075526640571814853479273107382784527621892497247266654682553376582717811747795588424170094974642297393204561985978520475917873839842655159493067978541484536312090382260719471825978431703913689773633757176442415678249205748855254144000262204728844246762728046686351828194973247611467414803838096068036153280089111852059356225927538647088710328155465981277374407049233651517674288798734862001571511395849838257699054869849343663035114857475703269588159119172202309693856268317797336925627301920964194123437927436548116355606480021903445925141514025318595125071998431922752390504344763152623138759606887393246315021941138072738400978603017128170898946711362379076889289584193003038568759913868669247135213712481375672567071172523197057102090844928348893687483929861342342788048518863022209298061537805152944715907105247137610759086916085534789761930865284559242578212280527738692720329475187314364353432593840344542520050341072502501796398037388725978775147232319739388984518381299735113737838639130322168841846719532044732657199453508284564305630235395981159291815011535049475372536046019041965891511444723506813760960793000477243249203960401236266223224089509500971839893956489604518751797070048663890524548400505908360888985780488510357640041406153607949401308403219245555518819131685666249304411334383047575727689334765013200380794484530891772826923737699548310709915041999563209796219984866667803386343945909284803430302878264017318265852934220656986485920294044178814443505196063301270334833052406065159245702605520429209057386545868683249377783906820872765210103739046263976526522727873375814612789114354099976546549929280976097749769098929766149174735718103436622094589100166658289367081940586415750216071741240492114642057310947422606001439954110456290442155571084638382799846534099822033141199846207046068585061347695116208177565978090298824874746712272230467889362872063295227986834371707610316573190366539714288191783728185078768110425818719287053936763119179072239160473717027214643331293426277765674200913201146300280076705715668513464091610643684317765926206586394859448773820348314836997797535928152583232134553963197643877980510146979748591433510855159384433146881643613604384528292979790114731630966429852816743673279537186204573162151057038707764713265912509562569168334537391871421144667773566967696481115386683969981016138089440480443774618289745176421114862748136321969975385465705798238886068658029106388274049588608821519958987236177222194206620841037885582016312589724853026881152343568068379770427942793926602020365689932888029411635319777729234651160038105877145855149503668462975300659714987954363109667125204338538305264012284830081011698251210678290729546200694903044101697798394968467301131163831105702967423762699663454206556560050025869807757988745049576851014565698897764834809941238199785720720850151670700437085373175755525777594929450660177874568854369848456396897918189825946554258989686161200622145136844257059536925475252155624820258132050890414358972156166766726725280795446157728374591474873117528112382979926282582402311531508806524697511376810230015400599630161760158725383492796744122421268203501301687610482970017151544685481525653431570643856578038964289873739447593441413637182058232320639673387244834936800845174989255751940093739425780203024844968957796669880708183312398353387806556331727630950330065866843642972468801355762424649510163267542585271619095844828325121119589067841852586105726186748707465960712681436502730441349177207493860756110263023436727587655653475184530546985000742625192415836250440830716732153113837011973269430748446239848930977380758430879656317962904942441645925042491493588024738304301008984975070007189453826723029593706106062689495837633935887099287697832700060470116530094636069308756640900313437114688023835739373480969380341483898952847565678832324178485883027301271921540289429750033950615870954871489136983223236289250657182396858532982904953214949358131546002985017457332270743531034537882470371873958353321181998423647784498745964431734314150234512215379522805076099456922478336560870158463826551215817273205435196401258720063174779856071340672560201626248887505662409571553050661608339327400890364957397724372869308802890368876288498753511026624125699889285704673521397124586798305901154358735040327356827378346635103997251551349866924448331165347154662919629646736293985735089994723185638182497373147944415824849721258684730544417283243042519736269330210880851392743957280720035533867273283454084275615504405660032766031427372679437307443691312645524579086234518611017522667148307872097529913947802297111654227914334920359729505809208020892702113890079489205409531842868847952933448090167961337263957158845184046428478802551694101128959045279706249508830923262577763938185416728290673870637913482786336588082998690661908448147021383706685735074141422119544181841262285410316233343099654508173412423764838325680083310270413114295495797674501048674582665219853142684564782916560305003241377999020679665652823377898600495510910635176413440448556349695717196125133614417969419772693015515599932044988815580462344139065384495881579490315505845666629010280482336700861393567654655627404493390021925643006640560969272920127140948222810634899092463904352001585697561745222739525411738438433953385833711380106274914836727280450055636480720044603329049408945856944000761689336483990324943463041291083870874733183916052856311114426367917629962170441401803568055179358473305220990816580665880662530880292976989548314629445384435189945226989595886048671014688787126647017660287389427291346510510589889952546564825339203021191433129889750983244107700347942149444125586804508520949777365621285912823392884561444436483776636611988123890598610882598386947394478530964226642460503880073562302812360636411612184776145219491160555646703328130749989417796863654644506712683675322330381453678021775774670604965434198894092056380456931714746601217074307500538810014066774878489376909286069597201176825906780533356626758164444077377849002165568597262876378124205825533246736605382525318551139832980020573264450499787796489059213330484662226108195062265617284122898164951532253753282445176558902290849666485643900810584344096625013366754735037800772371144199104837524353088073202196455495298979575566582567005567442267467974292530799659700629585672289800655619424933671931154484661964224906004652550950091918861875977985787451006447566800083375433499787528417267632551393177547743875231877539441740648854901417571294103698724982749577548417643714691313331871904122439568996158707156222620316737289062115062454309920221873811175772240444369129024876315570867718596309566771592593447444034736258396920918938889261013756722373633678308367314028037357222953790615822921573444134865632467704434053171630561594095085004684901400957122023214778607662518332047059967497524905605367751730174043065286351810656456083681028145092639063730723649866860921898469175081735884076858483260940634675725820511244722064514253457784717509186345894459803926127804679538168739728266086473682993993968712636389519175565127603423836141075265378377073768362472911585576173396154845605351935268679831385130720580395798397779944840620648977475090748088080617960735827540752560732696252416648836387900542776328716440323718516494293101120948012494332929383108649572676747482768933039068547985417045122974595440553146942424289562809173208641510611013002317265111811272911658260123721863163597099366525152298613876367827347930596915477322213040588103512672965105283271175022389205143258102141775690040102846952238637228713990970837630067669297759085610670121128360868971863893728152046076766815618584718398421449959285204460366500501225839462629304650618817946751278873873982380157242294531946951447162226113890047015755227336776777990154483830555409412318463237777249147399992370614756339776986761094757782139174510495381182857625188032271552845511552561189100427882220341597552152577796642752671107353779728224496517705167265389503468960846434086233541890459820683366034526718894698683155630808303708498451567152454838103320996646122292750059829742273048824605627507974042557302314977699281149984278267718303891522091089632209447878727177569306030180393892015691332679267820279434007165593312138397255654704972914533275348984197326909229022967953186139878083570955190690769660109507468468595066373139714418106836783828659777629350812821017074412400845758707193803264143286384911396695470569133631043087708032179960559366461633918353463727876274429456861724437697737915648520413456553896362895670301448066768269880347190941620352483647375369556560065351538987443843357665101733046687683036409266755689245719787286216063155354506692436326901139173856460869341704303376783230173432124580229090781761572494759095938985976493558074126951363086267367172084607962676463747047269911600752662415576965021465038545125284833970655569850667818809688432435050777978990228937569678609161306259008782887575614447603055326357584155848425222678262896032980123216619696428224927216806781696394822089057738976410207855464595344944211135397945907942252722225787940448781175995645352048465660504422344731087824146593616986904678719393231983998415980779435522451562432044280189878646952805826651889831615636655063097418259339459363396596533509148080805301653696926555165177331606677759072287325117197023340449581629351187775143359808228052229834594039200313076992454086483536138403941594845679644017024784087370378002532556203283426724398976729659531678947986955173090615809143378559283442797136311933589128268088627490349173942167587838423926925441001597891931892064829233997309492421531866860051840991275681330614282978912307060247076833189626430584378429697320528724697568721260291549872849563389530982573356168491434584082729389465606593230329627797870986325715461139395510311981925148206922222102408701322659129036218554051899019308422289887794900173284234291803442525537937008906771378673051278391857968226133989175643972510201534311962755371467266306878370631019059114297199060484758153867346978174587470791628019272427733256540031578583711797506908488781514991823654484191922530087721037537995090453764180668829174362297489599934732290443724599944698391308850716395774331579899671059997987014085271249136347133605905133585210625712990174428309566955007406980943477956803806449038957144261654881471349078532943928215050564996889018094996953616706048701981467258522654563526270991859636531256191169451803882869906625915750009137183553341157006795743097912703272577257079156775945505734424013776973458463240419700256268486959141717703171625885464785299096062301170037194318799182904698958992700571751239260688487940410681782505496499425706850115512921653691037875139396312962214074052389427046036251564721528173084817578837715953913151230916859655795897415342456294696544819300257987887757927329459184076568449347391401464173401797492940822700189262996369128879453669494112184075523210675195301441579261180965622155383166250770282951616447011581324589472463301441219850323990704739060852072967560093200826729502515963391931100892098319922093200746260169567964014853080902278982286189284750972450443441121479585024620291974539808893645374670043372611017283462028418962533791118816038570085043596125982314993382947046002604544164804545642367108457927318328033587380677152944444137107019774596993162145172055904724847030566056923192008721111829413127602971901360887907347847108285237822749773436512913449561717700069922518132356092951543059309649412172075105344393508117376537831924180076279048137387782335402506983789088225906026137593144832497190243269856186506099772400749266217732103474615950808239721219427531630595852472589215743317987457287616929115369395744059862131900116994122560235102526026285017653004119018935212350216860592101592391826774944917660394790804253756685420340718159690206221042497463687528574562928169892443776855929685356833942504980637924899008348684541944771621872226264045405471564199737162816744885514776871567529335911507443519481835315584588454860346529662127510475578906497618395752027230819052863978476579057741616261360565045488108326087790795141415250804563414615755921311243279985890130441155225460157787931473723016400872764794983257607036397866818719822050897948583184616896465317002442669717000549384125986495161165362555846927890114568033734537893999243650928759453398474217418379358786070957861808961494863833948076758160607179715495224165677521135809077188428716447601386999811833694489876411140486331140412305477996213159774104179758204725606426402984749944628151426700149521842410982368195801233812140418046530804329565985050580129193851874935197381194540518391119286078701794430939179855489573629606429857069747353786018537773038718562981475391404111957309786034083363364912890976827077010299369366918057967240619333863829008572782055764559647756386095752783882853786845975516042785604168795542378351097493155349761073155251623040004620601991099404082022046752180927108178188846521527046345918866319858413777488325767858025768968392191699347452482163504784370839733140956239737188673458053635008195124171733941092775780028574920802228175256250981604561729208623215394718152081816345154038469293813254799116014574841156959336601097037752464096267030798696413105052845378856826093919336598136803594737741375420761299916485201328648653156650791535376649360625797022814083249266636367070731050133663373873438841973942237145757796777070397489677622077333381356563518906514454246462819924298464367821333930409504391790797599627506008032360031656897643639069199294721499909834302610268706436533387590359957511208508269226570383233014455903579291815137123819678275226340583849456079576964094535828489776220168331227137878810593135510852089882194143418856607403712655515661598727137233820169034325689452595843323526495071881183255725355382640284331862896350527340918311214769982595354831477178431081940393999803602862180121211365417127493864897859648917389043815559328448631357903237191558135926292880603832473026308146394480544294987273636792797258428204489241986098246485415631809111173557166556190922372316832667366308533263241390425099264955590121139164946013827602575003653169996125727577983757713507941517676193145905463387022533869333164705168415234378669007519505058121780700585019145814722547063927986478490653781675690953118369697091500727594059857418679180243224324804701857698661749216686241037619546156800884873159812437541757350390813664392692553737082106725625534836579291728464104024993183889764415172499135134393890286279181981815525967291352469514609732385794501480707971345053559414310941043067824838157403234542105888328098705482032390197103107103998261703697629739252931032152259404823067161828801442252998360134242272936070839309930598861951602248836699983052002112518288719644652173896271248178287037205994847125058938884956609029656160933169168688580255305632446220946825452326054240556061172433410829909571315529308320989416248378384157397623271938183649640240357802286099793525783847801042801504521285040170652531716291664016535668571781361692215464443653510230299501543284086635215685377953914717174298953500530478659587857468084928944705138051067561513943768811257427013812078486599862966983639576314321646872261455231621296157753964443185874937442481227580101846988339842410951354593457491413805686397090703454686576358710838416771639431857247098390310777714795450594098248173007933668179238320573918977301920735102182067958600475290259691031073313416270691287904625519127895227666007433032965237345199678297228048389035913826746038996285985587512605253506791815789587612117174334878571352384602740513742753727479112776355612417550034115714637719507049869129435277660431782552771326637892384604731791443906041607422543100541249999830666898527356986374086987199918267554322196750889613743901801616864176765685455281719817698779235232284655221360458024697661453858333144582218775447223874156064592763469958303484421434306063068397549722171739958686475844288723262174495863029518746849812729989949845261204697486454110384653654789874453400742075907116255369736642962560716820491589661468652837977707999196133457088005208361519288276433072041312469695694904096454101437347248212844413602812347138011009003994600339038099237189428480525202575010322944390744721434435466047420615772476949372723640457754892282823475056850948198493701351976606342877500683701495204680765797444344579728245644869423021923275749953436873899448490913055113029107633015070059589117178642318342740832541431220352399880612175203386683052241347742338213782487350458783142499361771505512461805579067690805222162882546802986416732082061361638409371126120267618395593187059496908489320819727621771011952282250435319373488482136610048426221044678154420439485864011564419914458414654161201182778907085456808414262025962753834323734312332722813421250687806992192208465375887290034905070781583719973608849881393153554702608672350614816762031132279726863853936537702243473399934217304697401407986010163307264190992399700608603862180168120237190594070708147704365564523677753686721714470643245308968681809939725502580713650351671631601791837536726469932754476738679075004056765776610773209588570504718090354634684419861903243171872328389485641738715197778668149565819256607325030217207367495645065581406945128808871291743815176296219459805578856762511752833446857009564344001969037433537496773695992632775443040287368572393361331341775612925017259186938083264778748992646562953191761650649921601855576308216184080875947820499530112922193017622480855071029368411462738209627720620738842669588663102418272765536026537859270326148332716059086560015046643361414847888599189155065394454679807522888217721183306148194401723635533579574084523412876356712617077587319437838781715446413825064365089628786030417049115172524804799100326319873407091340509668232194201515845661535026894320072790541838212987919857849861447975359867290053786065883396407140178981181583653360760672559519753623633764320417048333221936691105263530784326254601708149398156312963542256392100296930444017267699020060806071140737670468432172522426353852398058641823008312169426116877365817489713528575657126733862976452188681213007733006303089267636892285042629553786075837615332149164879373757908814058068892357718154414072554135855621842290755465495167571258928007793928816311897498935395703617952977215788175346236712787029658871350810200783109711301816442540235266476149731700557805455771632323456214347855035621357530308890068744967191472887547512823536953967160848503032295899697156492860181378691812918534193078192061667358897826432414614297761485797705073057541279888505795020605563595824433125511257606327899505483250116793178627188557953706323586756367342879786313825539242137287136437257151115382680748345901281891690843166266404337816021759101878575677363042354210152212812986682233856977178665880898818113487854015078040124789919810164251851757530229285205110033663185746455423279520079401505725033200215362112085340007928284336945076467555081664119891312260005899990325068558827800271760337327969287703611293215897072302997694459662201364921174199129519410647000809165521438158725270455546265231944053810392780646129009556902577003041163955240717556500395881010193600253949001370802691490544289905724769208273776008822500854631767177689109298648750635060292970758451975019681410404719526109288773521508373580220995795265173495104938539523438161772359327364231000730280597097336867365527697208527375473867744700252504881843397979312691433862389101874679517876583164693738235145620163894007593710401429568120805290243899721196433721013024164572293527056035895768930203424813501639522298126297784684946237482028941082551770287241059799875904371844885428273850539689720679344827185009145849238004474630014201596486988035119939638195822861710262878390308870497565729207323509319137055085442993139752770451077331318663090016863633742744115082951272982270179838834860674689107248435527603818760479264831126608381372621163039286917939517483137968772502011289707137095672617786280423820920478790108655774898659271095480481563317494072825332488007658325753078898512074196070079411138465038053237011051601544596451140253620169557989374012005808686248897401393907898880085199711643271029502475089138905078605092002398404474259201407180059512246046991745259996539205679205303333712933582900669050977066825506512223703139560462704187383361308321315075920911857648359106565003254581345963435666744401473022829529175542630552186331450834586205821633244014775430225915550056309834516124397972950141995275359055669632041062256071012513858318397020348203220015353446590805453357588855807089897518915981734666320713628928993296028225192605595011403617627582750072217942743411115987347238369397558242206564994277333817236918690823075982614105618320681633583003274438810553533207818161892869900618246534674238477044159867212780739909065631917902223765030902893947047681173734316865101495960523097021133924006644691401559565035800512671958245161733361988556979043831049667857868425871363980673059829253763697709439412762758746959507512344782491895985260725357575146592409077295752313720212685640553009575233191472652959774883922990240752066839346808351012146743266448186049391747390510711720983070844762760940943667619106559247430447588407359962899352580846966291203870735507812460730233590182575899879482854339708867627986953854505070752051933751660883301586325049739553383142313944821505728598060245225888564577055757581973949193216559020106323056122070237984335963449872210222707725997886088842872260824408928845972814245087536213895633455596963972364637727312655373804873882432901463533447731216847621233717178690911914906847637702487050769493555011995471178079368354153935895713298710496766680987004363892032659373711116564829355432655580060123394372445269613324056726635085238595306828328098230451424356408067515512988975120814684453396961294271995565936635953951758856759788984728730027518698590842100682524121798994458954538872225780023275344463103564239785418590788801155123400359813185368219899494962084591551011623353749670345057547223525843711613825962749700123226546006932634786272576062177514480027340433738315485949976225539519385488402995276913164455240279753296868722772108295782561103015405078600849730949069192295019288869314712099814290265079591874252834988458403117163513532810420090324429948888595634616402497753125510863454196717345004704962383903001259151483751149985023526202615962861038836934003271499329961527526286413954319457579070880117876959631050123510792767297261058109434768718548697916005512134694151875389647854991318292874872093498681260044502653305004574290441705403655562947666957189760489551751818695265904152932778456410530421211654547415679014182094171820081724281119291794772396538776192122997026981239578993264241340711828787906229173208867065527732241252592776201243394874551997969673784992247748479112611747269420744275238038551922198446254962041118152857093927626664413819466092288748547200804983243408352098192659580082000222825891219202343894264766376293461829026572551233988488567997158679431949342117750473208298093089625541470498290714995478480360673993004337858453350011954040627950968839557737020574399214588552556456449797047793050207527705309060849314081814010496559054298868391825490773344715804120865438092932765516922357751084787162682940372122616272326599936549708945486179434468009094365555478147318130006183538952513455607502785530145799844516821895019999463826051541703273918760585890025889077323786119549347787984723949033522873869370004503328261658157415552609751109567652920523195904562334285956172413451419258301608029153247527309500727601946938175176895086936997071586507820280171741109785515999665697180972944313123861405331299613170072281117048069233006191068921181513957642053734850920479853033171181619665090240860574153208222167372324206538664266391531166105434377958833944752722810456114208061371616972796644318407468218458394203274731442401808735003410828989783423390173888180899019497113636890285370148727092159483049125512578264408420311554243784609763699200287462906498292438978528693188756396725846869729219259495640546758153011809811506010102558925413343549223627006610155867230535292058901344362572602383761268938909259695601266538738954710455652704443386757376219801890060318632084713243934799429806706527584420140621729035899735878374543721919070007606123760437659747730264680135748932980755957966479336924921536246575857977936411115064544173117699592272970999150669600799409689048097346519778298562115595931301838401557213724265690142883556805766412246645312195633539436475582952106739088905039917394307056696289063444010491022193936839359489168710243406122234753191197147483957482733393195771386743521215174137266100717327190423207345262472859208288466351787753245339928822562140866257031286411680876646245617504260504058555110754403163448655685951378192757936726139602367415671301338894204466399565278061512052566967594961740080820535810852893059613547401222554706300295104049487496104418509940719441635908351012045051388985597580743069432141957621875563471755956779698519667122420925940606711016931526358334952174433005090536844647847389364719407150225321256565115356480320020600587502159744402594375956714527562565492392139488118578756693200625101999822414416628154007420761862945045462659932383702671829324293880262554930478123632072549690760828197634957274747860916402056247152180212953292996315216417216500413930036697823812818308688110418894870015817398679115555752964467385275992876854618378334978326880155795791434068344478697740418915392548387320075283327931371101277189621114879826662632698834754167809767045453074514997942155376223428354734009105079999052554164956595903910028580375218785113305804188697753777057984614250806464594356281560431136144602206529462819501829649949795013164042609488014066702419676697650738902130699871220815321275926781544515435030942486013648033341362820227702155310781892694111899688215827335170905517480783776961952769421151977048559700170063564751932770469771223355157515786620667352891297260594537768977690560094469425014403862400535548904647919098784386557537525822610535760174530665867673626628880880960650900116824244942881070994296103695533494075624000345059704960301662063250705014678151111871806719016256390453024288708029615212043652504091372589460987562327922186138094868740194770773089418225219986449467082024993856604627735648472899112828733307989674044880492132509921453745784168873374665189045603507218327105943751232668870947521945991817694723747525837864217281299617045931067168967300887600147904818224017333687632888828624556476152942557866929091122589747298295833598499199068868392373683549396133440999189931498299397338770398572744367072011226683662310466114344462272302111084105596423024095472561363059780310658601521588090048167968892351295484421862061887059077918689353439518077617735206553513368140973114737896393635932622940825874760771518821667819119001468529219209997285199785520427448918039191668799757919907484624710757846084730843799417073907191568219561850456319569258719527992539756702652163389106526506063536430516210844803013087821120477184335457598271547152183145691696592088719621128288905146941720756578471275939363331743875176968703009267919696018342293326271201042250661060052658568296923764567120290326660882106015690966955331435074830816946323482356546024658001661862546141192523873340002950115162910192133969052780526114150784650080680869818413668132424708247096249686344986006285762533728502110621998324337826870793398233179681902017714365869544342165996455128741804915973026538274678712986218250994277281552860184562826824539056166560252636781009478857492950165292194319462659144486730040433420992889677801812171743226268259635322810779763481194103585336256314388875392464283970601949282613779819038515477454924869486427328399120359790893204959973889423226075853322136657295345390447618912217945513461403579476332670534294485729694175459581367949696059461477450207479142381640165481684760619458273683942832703505519694266546490044978556137643856931997003310075813956390875612817430310819179619047638034318746728215443324660302921849813247943258602175211040349166384987352254317600171969434246234624833649058371305411618877402669580071454733049575136810702477589232004161150964952780972796310371154235001139696570703012761082793688446815069548563404764893413724379242694476460725626352437166374060057686623588663844693886413116967504375384381097557557437577139476638303664100304977109974816181549770307650800070140719697695255472682860600841760412126050457406063907339919739973338284216598849972444551634387910670366811257699470574330796438480186826137410080935413164357269011362209133938640478288030939186370960262793259236618927836724640997033530916813426234773456066857444549366934547861212376827924354690997021623815072547985542062896090702340801316206071783374876946971624642769793046072832624053893259558505102403585512615275567546144908330269774823566716663681533709717889432414562267908534985001584847859336307385646471696425727344865646900264329870029475825580694078176974615604141352838080422237436024683140973132590316806443634784489050512904283464038172474404836665681385338205705491722286611687648371284455733066120717846460822455836059966275850216879189279050323885363558851836445298486752552356667798695581424922041809689232171288570952280645252210875010833465648633146194829026305995277986419959803956320450194345698450546935556740275367872075655863440350845838759087354521464942676317409677211573914090438249438676197690306277140325044738245412631541046160119877101858315611194859117842632923943422387920469334768309360832130369883207852778090322566943610894987455196119303697479859970914678827941753417231620571528434580325743326388017830701342129817633617955544113365644012636580345648806230530409846566121379976900856531112992897709969640190436764884848176410342129548350110321830528151228916009096229129144606798546056262185151319666378186497428480989676077411663242409653468083265298947460381321264880959631556173963899964253447181974263146880780200103238594815562532186938871317287702615729335525801906710061046735300708052040875069559296927337926557226282503699412669637400735824588979849929402519508979320100925886548410033698113267318322326331213413370491289195826187178583622610593433420692575105636510111971499207971295639150542061961948681532366757027293101881908884162409055236852841796183394874966757032560894529817943887645070862869336582957987457966166531672506175203169267111362657728753209345096681166646432553585926429104156513718164800343966517979390360470200778446832911986753710525089310531994767080383585405519692559388236595677708235445842268587749085141786644293678363700337645141722845528132207993704525914647791847162821018228331825336896018753277695940745959908848170578797454156268876924485448848572384001711897210099149436221272914472668735973115164391456752721685772934427812636527860947106138084882049109058134018590710739695737982668640156744520073958270997603395716354794703914222318271289338441423340793335020053233301435948622615044870154551452097257276416968896226099908119091982354074078573404327289324064603502422043584423899666801724424451988873844594717410519892752824811868592533884932964309524492111880062012477751077484688237895637851616805498495240448102147243258782997551699618671953392435828255962992323535226561535398660982147128935517473199313595455037465118708759176800272878554708873951900957535230814385408381895263198535989268895052534453462652564088678937524238204859131142705508436828119934618871010662426878040103698209858270493820838529963914263464859018026527995199467446191351865203173452394943601456338605298927311651621143446332274678202531471922401560224187326870587234390769196091882105812042554436095960490317095913966882555501169113798284191225653412021444306866173322892670633272546529321748884422987891992214117910286058459713909178564868253039394214916554201166449277427702245449132285061796976451334137161116123660719988456315390481000522239638761626040445691996448858662100955263150053097485662108161289989005276403851243553512047941652085212438408533128344331580381557775103161398811834138505692398681171920063630242022019272539743661514049949362649413173445765885742046426094269996092935697355073964944802190835507893613725998443952108114641310595883166087702757542677048259840009431037762987534339521890389815354777518899211521881860505871527046027038643694259109048328361995140546436701455186798414527127155157537148912471623396201266726095513239086083359153529423455043709195503873160230203787537532671988983139000272554069607561947901961356693647944900253975709579207440763965898624951637493721183691632011759663172525328688997824747330480999881529120499921034635266714567907440789154386582414281626306914138639967371975911377450443727293563228039250593372112616714866188329503789268558767289775384758858418513680128993138819725091427442013588448398229699156323369838916527775440251285444999091241005465806435921405505472713783417883892624987165672153221920882569919795667211707639084411031709528017433417247273942055163643624302887848518765367288199425140998785177296897412481780973668491609955697926718148465398001637730752410935176911166099495836272757230590222310185967086287028083458899597087504351751261696272978220831289403674927823202515730947975724849263666188487535470547899832080649375544190515456789572851879868750250242759545872664014019688340648710023108781727069721892130306900363405027913657148139417793771570636410551446958500857475904486701418008819828296460995983295316690169947503240266574702898010806738335169289764826677347668639301346868710819672719509662970751973825349267433896996285236310181378561004400517181412930382709618234038907945012184084213289556201198670591488561030402419391425587165011004249052053568792305860977561355943132697458743083429777045948280910661045432329379001912891650239581836607317189814495084571987380624454745202032983623969905794288610668938102759202751163271509897440820716729234133837774452078654755745553158015634419229513379138398910960191040862723341754810758306734308818767242734894234691640414861553389426790450352610189166877074479148919637400542457730453312843605687051747556136777740193307038697712313637398663880625162947653598867148424705939542895765939095648138631710532652102134864619322774570313629267411984094437006319121059596910456263857630516158466926748080390616608718170149112337351252980036481386300929697511330200150824752420716352499439424723026178483305362131055693079901281361403697410006753735341266370548048776075265267598939575555251208675877040397630473262285921599810247617773897050244696645012890507214945349495477354114675598046238239982120059629741208486431166790311253231130387105682632053775044512315690809552936365580086494545012960414940951815582819212333371318201806603935047196824968222014477177775503319635654166322313151612286667244801328202703173130470807784284488682117310977948617060103758039783045980658156312462545282382210312344464970108560195295798209734245801430878747915219279494603735656652434372251263394733099012542951140903899910014921275942472489597215449008340019173772641873792539855458240489265516574395937770047723105026450903506156458050687422403444392330490168854555967466590979506498815722728064866272487760782085919828712362133021482159927178717188055283354261179306958142075744759198495768982446734074176705847632063477336578166730917084159685136285837571497486141532331602030462521044134826167437539278962521219617638336773176904839290753111817963782391532173372826652535416696397219174507708732837098689698599497389253550473085809111243486981467902230150435856209423198090370544276551958752818470807490971856751458971515542002703267767720020546828150602915463366425999993788089366593623273674909171270104800462973665291605432542400868931647268671564269722682294331392573078055959896335285285402210228174229834210298206880129534651012331265090540560662304428094123388211271318648895567026419503882305154791271392791930028576421857988005830028284958044807323569991962834631016989576553479218329949139386216096566630301904597051364277781666611752332519702063383382697973482533642802748011165363682017017336943322179926402398623241003925761290036647576554639175535880439674361414338669817596533503237841262091440166791277624839680424359008877133797326047002270870580023385330898177718731768311544279769687156567762957611552535111481950742891557688015839016538834581263451709356481428292884636934631140211635386054211576115043943410811071805752773620854215401469091975407377153286407450346372094800638852217385301474185287224140983858040727011819250898015378627485451867353237413083320019635414121743059010188449527405363628137672267490299754069817964412060838005531198798316238432227358098845570459994741072074148433829843106040688739889072866063187471256728473767641493000935868436727813450823632291939252877869280582042651367535506292711558920617705450990185930499490803361220588029288615071933032316515881524027350907764709127728551491361915642753802054157496884178832212987156194669636572139010776932235792617853478538982937834220887333817149286243250382318153208395947144869492023351914210937585073926756334621746601761224009304000316280920141714074067673539137543692554307229992023376156142839480483116847575221203097982678174425512729628271177397539137746552411785168824514956453144029028361493824198555211525258187653456742136199172331722148808549282643059319914907319098150344931843491524884674560563257388721423199903400836470261125734500004711412129701270371136143387390114605688206302968215273146028173441330323514210510860373991628890798614320159319479970389480217771501472053103348608537361371604945571259796886236386100613216006508853682025163103463745220867620411408161399398014559515070755924164264405147906892251631724163064640942928868904201857516750526962669861419365213243880932134039108525562080215315258992238941475033705921208856288612899229077497489576275777286324334337841108930247956090136659620947410908369457265380134429632576705096509902982901016926433439799319002284365186066590180530719977881940754592292599294513333608642774909091283214007902212720582147315151950974470693377701270019371337365707363490744140183606045229161187998756480467714779449226337192552487487578324378737862848850634602843768804560192673438395410279855995352897775701876622900480826307134400427184465289027220211037533374919908043305945913662214493209808759085885562097979886639776336671448491800707976741311308704294723858816471896978335101459374274005302411149869938302561914278048074704836238284270633991222575714401051609431333504058754931118290549489695732958876869981882887030116940462730127293764696895484355436707227109373795023914194105007873685038910014313164167678359590976922825217267362351457097441273105368773853384280595901030034605337982605509374034208583547293951769953203120998733172839775882255015438084842274163777362936912804261274851191810568813624754783644137502875069451218705050778161137899532541849576706839809057073528667700912972948746316340747128155806899205506698243752846782639334083043154744127354476254326858240030291594237196258300983630705693727675386527698806461929311347002334021818505186443658954869162260122318237654310915513581075053186678080885581462651986836822739838896038497537942622793583497272967241343266315756343292276606203156461706597561937639169055490382200094920472891637667760867930213208898619472673617812355001463031500376895468546161553390313570215434752795298688375141504775218998078046800047082343658051246566084192369684928083145252956088509728281480762941589724220948275013993394778888262078305999874517625872102463050429076857556028409366750026335599013669999389275811078073701022358556443407201186178039270539913909552168946459565069619416803677051998671017505396176032845959761154696204514914690651338052861906985454534469524484443567833996954673008922236299679885879423504195804880483632768114231063647369006293883383500826332422705450632954026385016292264082622582672679752537479659453429376470580071285831542641879213786324722630977660675189838670787838729006839321910174705629483865097617706035222650060013691278023064109720070672524147743657406774748623863693900167095528624162755504373055205141551509213011605252228962450755544578196301352421963129347589369650668456053338519543124312130444084977915498462792570133510743644436180887144675568524031014490882219205093462495691291287663600986821161181381009682257151048314494082732382303731767134342763538294616409853420715750225202092347240940761988554206575504229161437977049006442504686917414576570017201338859760333677816606001346011401528241978844270220722885976672280266620799911768275693459783207465703694261408692337854808860711375117798830133690828896194010748640314623358398498596253331179916684035466291004623892801464461949769722387783058979938931588543242116570333636974956177395905368359681084726229755672779824123395735303139654817874174073206044292838440572686426116666642648581505193587615404293447781338546298592469717870471408580908791542998315596507120245063063131928525079082805540301814841223512802063317394172973718330325260298503807905073649911508066499107874367109504285337718572544199596722316319794242550875016555760412134174277337554001809417634723744395590969813783635549279906918070205511767971817661892985331469211363783609021250994946325228776368001717101438705869436301626236962144446096747504996686991180068535848277281866310977751198809802271373448749567715080875390688485915161310131452498614905539003616975949622293546674512111027851661507413163866000564018528404327935489336106608792328941820772073936372572770702006709970364693924486481595306267497173177078791785174574519926491796892735584793751677074765756604510215397664463143564540227981976101745004702697284300613765873341948921981583096408329421904133715166248539948275306531854337054045739755560657162571996401084193371669962600154667517527895546655080881577055182521243567987377921192183907656923983572116876224942359534473974262298927982021039528328388625069248812783585751586536904864279837773930723752167063926740874849633041644096112814843983399963328727116936533681860973873351447132719324305462192608579495765160276653545909632854383357603284461198883827317966516971218105462302360617786172123959537167244767430216152030364891111856264149144251312037891109006353487269079955479137710326679763835308309566842837282864670937110691578493510292573082708645150324361959051529958524457483873254070706644936747091737213842494706120247624402823489317879170705230374037838680664345657730560024239889405112517553950566269673073812308615643352596680727159049467445561552011474317651552390033591708235108048622787035628885126524947242414412858493308812499697522409670991827337695103415948472782057820335583331050038315255842352874300986208365850193884331431973384852894151644841897714118515625758394653810091737076452675137984933412525236979990315624501608298118369508003003007691561726966231302771634129291353239711985432813883589746923573426811773781954518994706423627763949287687876702307337894868164522987513373220097620458692181696904293535389630734437659059160833233768561407142326147371509825711661643679280707762507722655269725114056564462657614219568534247806804266959394119133443270201172295720342970219261144039664232010945916710628446174185659199285908695522246865967127170353863136082562349295151880217774372270530572650377412812382627487016069219046200592204570097122949892569307086760539541257717903357356314919879195413074284759199086535168820013018466413077754454966146196839967966231530544747998699187780425233417002090618536632117393863937583117914311246780183003072791526197394078219052062027549381792747591291882613528786458139785831032272270921286781918273446309844377219424246046946776853194177275580860784655843013819198098361268287137263513420803560057094378219476859829709808094546031765984189848958418602137582756450931384153208586900471282439000862390274447794032839667944451228009331654107851295139032440915894143527978188978252367731490008606994754159974930828431356163704822753727222149223353730185777144834256136674195627154032983234877483741678289049721034461459855555523005208800104653442590507552094223971969363169897244273125819729627372254840657841274976198439275610559573963503041932442216694217134538041382508887382542205273604534212661955187470559692444766873245104566374563195459664868550833594321242143098783826196232462284713058353871641398177722674742581473457715450938248536563401587111826372235371589806846826400128658521698042469080975302444462550048552720563530464437261021824389717301607467713585957695121049605715012079571156269957949091883092308670000040317587742853079028618710563811790438050131898284586189658165832696161647243635611182677052774919807307668099040172437112506105066171058499377739536260650105963633724525180513195771720802493421165379778312608643679232118100085062156476034678738708933807351467979606040876460866621767053437908614146396718771976033464454165448373425218772637310056762638231536866786314342171978491672971329973569416837413910743638460617309870987045406041323959360678364653658138358838701630992698454094721952387378411000070060825578561675896590319881819399061123771757407368004698424037684492634272520837391245984772451502893453827383393115583727284595348589045315473945872567804188920011990197827331967425599013296054122554523528098780235287035089180045674534705538216111487581656591531497028889558426062680284632678857971535061931586467257011346997618148441949957206824990651013836581767118223352074857279026021354082182485106457900424130790770868119641866679085495081571203292268303972630760941742198669944389099886495949218917105777345671906632807165922782370348097861575651109959480241973664381671540745044432839732471854359930788785594421549244269410232198401325772860060713607970394325281477578685214171390453214531693732133499263693455834097463838438337879648065493697653249828380294526757912489726520633255570395781667626707429888088086664814452004567899817806469634604894589500949863568169653630852954502270759001565050766906026535919336553758943691261630997723780405776273967771729223257868417258689518220461504660066878250214139743919717019352424526875462674271013201829936880189139586163056134619028207169826480260621250538369470078510399309381916804100895200067047107489119207970643776870584389295066523720003611851590010366439017178923631355929665787175022120591901337906800839123938922510690515943034934919955723735167791623795240330719604715128252883041474923313727731995720511339403171573660840289625761219157030713919102626448918384914720683422900645099933026834458794169922068702511437983539601466238899323694015909949497636395348395889241163990023416356033900195264593970698186421573045508565573498247350480851139191469166754735846704294607286878772662670017830526264125306460648215720636334250146650708824347512276736494011917607896350990719137274421763412005106749263484771908858969871438260082267786944290411824975779679661888663195474507935747921334849431158026843053633374397828658180067813547965840961077832566080643033511101990860439555669029687761166045632092933439986100106662528694585327016809084432842580688716246902736269323131342122092862619372993658398694533382217388415510952863594117661042207569017264003772483470893777291694312636143747086301945299422000016346512143578909274025976977100991679859528904952315833569659882889106055920954400261573863094297218980328946147688124942966101472048097714095304777928812145118376494400256198670563587434994359040744748756140295040561722735356593837893173454624709831149115165345906650024614350987520238567209392144753335019420888244378929641978346011474040753549828819637149610248069353833070004150875381553314075921821809334492573195444830427360463387468410095377130693904947091719957616558675551821370899673247454317305628435387931658679332757596373077291413179101819645413526452678992961571971341198097050500182952686530257162573418589913652757967444480114431207170780809717862725602835296566829521703830453161810642917743816816058485247243377365161081155290637904003887152431051468911803687146360454028572644132657191481313718323971227131738142249045382302793240261215115602373297693387574774021322156123951428959197995707350508998008425693362853632277846953603225688347512457548406019725287600682703825317051409976762951397571603471726232311628248009524467700805609379125144753111179938032995229375057352820574565003328110870347977681408063883413146774293180127554854784225616353377025452228871410146476930134570166030668308038660872417107110323661217650526152163942730265625077992761821218846298480295659959414024803793576244475147930350255859517675769228373508109503178214846896203156535835176386817690417048870752699522989648526193337234112670972360581172966220662566587876352202594120588434432660625323948302804044584472218386317656095846967399707977662464081907533060199404730521832614837276764633834177208327699332094098516712500190942033535267137668514782097597593126769985315913787403577173703162068005757654406821674295126636565916009921364432344438070042430753527225074726178512720835812126091050686692740511327481981197135733414050232809357219492396259035844706549033762871515193691016243420469469403399509237805849902839808577650127947951289120933421029209197521354694347706637840071865798793696069316953701427772816503049756112928022918612910543518561532906493093073435231835231079075537763563281918915431520862007074393181857349895315118084227620101347705956755337501771539661402369759829188122084144866854215234999492159799452637966455881292451349295759775058962711951139645941132062789695160027265463212192144315202166986336406746374563633847637695626105856320967456540978905513203944588204147417222370130578088186493886036390299434911330401114951019834523368404256211886156077886334741789816573061982221932468391276211240931376091321725083144691386164024521260364166204474407770336662964826897819044381874550079676492233795852308237838031938240582326919056783504954242183062654073367398901956928286125810489454351750271369299165311953728308670189492462294007497822510067203470086409395382752781759936737766241031698177564014392604126189106662622813108171972247680543603833630903955491984898400765790924993666769024904370990455491214058347015613889979719932092234977336976088468953959375467913371360623197599088258481834621690805172014162276371507545016897842458821874786849684583944796450046835204306522265756625415047549749788272554117099061065575500201521404057937550840021827025933222658991680443119986655473348733873393572839479344464675265285620644067546068577195102690923017964451093171895195158265103246249586289157267123895811196576253803812581882389071640227266535617985783231388777104157631229870358319335137315318373850330633984315628031425222960287067473556255439645085174450686904871157364615798819795532678187385143389060010180358705193329867744252696984933940053372148807904761554749056439936142479791795345436941201281564585395180019263847183847408555457751455172600924891577553242360735248673837382642173913218739780941249955075748321696201804850374540259039301519649149361205031269323858958913072071025267914683301698093888033418550769510723300062945518651497961659148851030374008874988345671871704066742944790929656977014937627516945608792984887213713339756648363713473751424477970347013281741827779572465781632242879519323342015476068257927770870555492220913122286251108909960989889752054228906534247015011891002547329793589408891014691280612069327246464208825592359308460722163823703696725923175092187914373164319103181165429430394705490855756792978282915916365372848484878954451414479649178306380427834997557971120132980743700149308881508526710113447719587923774550036383333893757926762362612931342235736132348156089148213742082046153252415840607166716824627326827646379540198597590752840488799810680185046631329064402506767547042422484778265307416326218014343636915231032718800396072455060178331844753260572452265003559432449759573096639901981409760652785933609678733388991054709849382180620074161355429416285812464012251168976064129153169448842579653076254427653273230213655640030513589165570424262833872922729949219521770282743669562711480696477098186187914139948409402817923139413798663611542876785438740563492758815664452593900991978212832036559634506500517665111803592923512976611521477929624712406263572628420329320802005393415704227396481557543457220963684532021417645900546665586718385695294393919654447159129021505458400313826757709574107764890168216431776331516096647251132180593523184230962008602854277559535928126394642595915816065403095337828187313856133562529950785309988603350008398203041466014606157056488247046310937286228833951708952488550461251475088312643402494050424056113260887257807817942929422279455466790408696496828812651141866093399662973173845491292286953716309093036157374558296121046624211947231772259302661871073222217526111024260957211298998919992317123476271280593324919547753521576110524206005442664916838070000984279103212904583808912992952335540223109239127567625340177709079011684530310167516112710800427562217650458729023977048162356004405017377145457382245875648561873454020327066464148205184287149237170477500291964066527235233492786346232520079522068529992181031350658859825829198285413850152398290901575431042186654767613878354535756341479186069661801618286784511815354939276376582332021858383283256881167257101419394535250028861020735920133621708266528776230507246195427194181137647186194076772503093993546607399557561640056508289666085776815379677609175813093203345176305543834545035645333772651043311919109797009506482690262055625361175500950699549275439471225149985330975233536175750754340123876742305969552588382080637557638593209907215685558315235615988630295222615587511483023743734341546580349543862289236035780436667668388195927969935171975763040271708077347187264226725228164007647136429963458088989809273263042571266652179854648193204057873845414759053952182189196245335296210839371271235362157957693368505728248586846999493688939541172576702705918369813424977284895729696357559586001566571224833896960477423078214806065404616719000415927489890736141723981975062900775019636876735807791680903567271118439050563881904577594539162886741072779235072226588008090300365674020120649903942371349076537334770957325107398301039360703120994118971545120273571479925271307886278383715075133237410427535461137698978800098138295212744462450602617462698463956935679384824395131665968627455762069267054826257927843420157261701919821672107490664118945032079257755744476873193274285522445532741158668649174613758405768028080649218806445425515345139342175400381971156171565045583831854074483257650548396645336255527332928365744888841579254736599300991203859642061422811574079809889687163293058781458073149475301249835946285302591289761702889969434000200430230720254592643874960214295554586333097507657606560157572147600844290622309935185253883186717660634818525442980472822331495158590788853325427547431559167940679635914322397870165238688884633493555458819341814107163298217285857080062239390959090447966151050181569922338820671104639062455773124120232213878697321823640022493108438022222614184568494451888039285391724512095389563735629530388339246958896653876559227561839545776359191900643461223141033899946013349333636527868948445261224264547881984019023732045454424084610867181018148231995953982701978625594489284592959965790291924569282422819857447773290358499248018090661159046894083585938622728562758860594495994748907578587611111624638053068609653985426983615599560164144435033024394172981748821986343761318024949148350273289870325504414522137278728113924400558860259722635053245265062170123918045220689371997390686666557761126560640449688414085227404429211519110282039469083800663525377953375891033656143119072671494619612573260373266547912082203939963781716717517462610427262364022211116838216477990221739469266619092264104532377263394969125284516485252062626673344031118334059355353553820557477726065461816339599190643962032686397496710364830520568608477723628622536843890957925489543154419474941011088182337411979948893604790505762436796235338535898120356831505855879586287081351941220055750800266655227802699560533686297466010945640424145894775490706591431751227068736669720408201598426765786881595664941442993528485004047693337375863542122289680431687792587425243907070051183397860311770499580040829123671092375432856901884202279578913146756051531333514675833631154622063189736127753390783800159314329698052409802762518158895873260641448613473132456442246414401964688058960373805274366636188217491063250226365957462178469479744662161853337936741072698959795529447845858843262793074724207192777652827384369001609641997661536471718223919790429398237995295046963196598767939689172758052418975535053112220628300978280331013486614407758130356320643628326813919101122712669195064615681903043212034017121729567664117517170097980030979123446322345515101934349138855648563146013855817278917335167335513183782182988480985968259622515599565571906156512063765951371192423553363319682662670788441806760113053218901891514135620569986113403403664768820017230717215024850644701429902986442027680133833161389027134080257057900421844356719258301338945627881195358023517565781360813662281543671613594063431870435810792583957099800994074159849541492218223283110334511228592054084256659061838363885481901065528683468401032598455951179742234225660735392502733959725634402420426297843873136907856787465971574355962226248404345620408523135366133120693165430022491715922299529933064069227208586894618418880410310613564142124387442312687199193579424781310898972269070290134513383212278322360636412489726137223980112659262357542500009252975343811162094318082977699701745737431618207117365128347787507500154990212876845384229783736112032329145760134019804541004171217714392447022314137169556698036742107642905950193531865185899017531756634655484064474627288124650317713013896014453176284452992690622432720379732493486357047356984547750337722806930986097549559144140438162336721680602365275723294179264141995505357150617413538877832280263609269324676679449838404493107858665716500139545046361398536465393787548123267853094711627966336185301179555340695094779256689382635283966353699216894098999728243529036579991887107923607801137109709504491187592519729243057710169565507370736843578091617468574007253070829707509305141035909009026617397656857474762883811005875883102411000096600610837363295820114130668269052523576543491771601894736195504617446790716731285979264828011161156399145275576735070474745579478406936786585910754866249484444600046826821599285197609825542536073839517608331085294127436198907958403598732933168637236565666281318993489795632456448656214247550206012033243360093338115956011889176602521118199544239339305092406829998529804140397708424811898543612148778799513128398509839129622899924460536915595698974128191666478311315858062963444618930006986743504142133509735934658051628493566761226886322615372952703938812937059274197111470348974143194756661895427167409630628718510837873242544076051412427212469671868887858222658198647773154199802278430859019553700973599829461483951229131472577223850900218579524254418984992791347454582833765318649870267420682865843076087802716135578734040150478275006908749056393620244150941138576812057587806241832684867044454006644972841567275880216822133374034826482860195070479396095578352796860420026862905118099942423630412084282330116553937604977193592366461318697144151003356306679873522490267064418869238237571631929657610566399153846321876194014396131600523840202718255967483219426684014539910227019858123943250711590899412530910678879648077417844560276650148944303619113875103374991183221340228845793139284904213831438703903630589527503137417551508559694008464300347512002030556721807591103008859274410182994119975853532434364294659139897962171611689730531624710603299537123031961888017035222882718711938035776978754988369337937943354878311770805038874213342712485713216602094907737815807487804795888858344163151346265421345222431479131894170614506301398863809782027937742962129638141023192177798481620926287696542866756083945865781513693989097370256344140554811669931744333186628665173143783344940866135212987863459535300541026931854726937713240210443761566653191433525744724490466740994064606522544300119768334406383938932274685029449891216939255643950248541421294133739945649245579640696722587003185084580610217800168221198809007888846529062553167676687493658284475875166144845933147536201454610291251331465098259444172696255936018364117362993841977535936818596775844611027054340974284997217241115459469253600716124329980198616393553911363900438467499174101636330760636428975180911870519229313087556345151680056277041947069639475996321643202875142879955825861192330410546006547827575242501772266264931020749946562220839069585000984879986780067372099572517693963272853132596059829466540384037571116411434474978951077284826651145043251679867268761889350515945168822508775290312908765963056948826346463664076193786861407119043457808720513286198737527382989724591812329707905094337320671060681159339599962765207599283561658099517322866897380047426777071474994319753572574533496538507415583382315289094946901162401979436617705915792974630420289738455627328448719187059506882542200468098935331558727742468914911187358998997563276598915335903487171988801655752060509389548056924722189853924037709590872367131010387931648434669921122000029746332178589959570204524900698875760751860793045321882721077184218314459250805080524533269629021307632259416834931491166417846042295426773003725454429816401715715212521305937191255429894308345262558815755238531711356544457901024331963960644315344004497263907990479818699739445333949044908986054582502463664623133839951546010296240346254023171262899345787315958816886720346957157213979869121521444304645081511549113129982776637839819875555623122533966787570780495093249687845536152012687469253461139581601031958865528178412408733612941424967127838302027964894674860735615571654980612050023959296673086773175969136738130032070085079292489706641087350382751272224081673315357333414244964494150475762724467996651335636790157090752426163590020209519262046030720577136586926778850943869333994347903817975120095803788211107875834520598231335979553482838393464336207233527078786695044120204832015819409908124451193085313873228154325872358201703991191373414567205749908223765954433600956948202746150904921728784854956610826881231663037615657986913813770949689601198108429718414524952186925354582849073468706606872598224835851415354104248515303818806853743642284662018369445801466961690866719634796917159469671620816036540480792267634675626211536357719529113694780941685285159278587419936142448390388467515788774782530813415657755570679854023276956214314145331275182248490339210011038457380088649995116652204657130520825824150405541434017941578181434581461489103199221770413433727103859228142794823103584068899239351990315086323495680447233596428911230900385612269541776649818473706276327757085385911415985053225263871690408346521466089928808800426858246197324988373869590900691273803398584470064635942854775270525999199146782981307520269529408441439570640061308731152501036199053589835172691752542634622415122285675114272119547248088133466107840117972844128027670999302111879014864818601739379880159989145457344944433470222466627992339676423116234768243492502742105879485487459590418906710348547268876992834155359493281218706794888723705923395581362688760829227142573246001094596428981620640460169755837382244688935665354898754237844527659090168052357555886839374153868329453016931971166496223873184172967249048520241460303100626780387178810752841464111260370735667802734961366106150971569681434244191593736116191743168691028168302175411836046407246882349619776768338032391012459906622132629194372630972178039586804210665538756399501917922409394986219035675167961544998470427608518133063106159825480339287810042020030000720283921110867066319634160896162334225749958020383143958762275683887006473723042863333376989339657436702475326594157994995769466819271226917904528336622260909773698933660439677086969085105794045996256600976030620534293367730476178424235953772114745250327725904627157990123897899886594674471130597614295814331750580359477906776612044087340595976622844266944168087353597235364027433705444675900367430192783262434099138925154792099207954839060402422058819475071540472979453294917810235386158101022164095457661305802386542619125396740502139810982688925178700546342332955564449455682859562788185889339847384468882756658792583026104530635260900656628213329156366388179824167286603023002413855338510553830675174285505569511320877043427623071210888788360797823306462554877223238776391611392170814270877081513734936199441251434462425230564436196350470562532077213421445157457016563901926523357232852034532873630718850395346073044771196905845651968254893220360120960829507592302535603665190688957666427408397660542447576946089540906452321489319686895791328581957048150307077199037249579169427365849708413523318144303159495850676818935081827792626596711966602202100953027694691351330225392997620252193718252308511146133898643508759773097220303128183235145072009822958382726976457190960037194331546398528292654861178167765998563438170421263874456897040054215901902622149522222563448401497664402124400156486982522311170797510203850631037244377960029621462958604515312577205490759491862478375902125835547709390341422323154271719286279181736551102901549118429218098550030493865818881525591334278920750894580873658581598989184392227584956088513914043384815250745051316835555115664348001176224582948906199662352949322643306191288389178936421400504981545994618583645310360258262416418037128169479038550342711337821466118358958101429796804009141966827574587395749895665158116860586658005692149177955086720286724087852069353013312515208104244367694418668531990524819455599867560058988710144787192256802092162110915917290945352459669288768543385800343939116291175058475782872408940471342445098438083473225448364244731821916740959844933912566423035179514612574528673682347967847193929485629318587139760206916813584107013893816021867388056878022707491298108948684059184848722899349259512010938070560199046962560366555128310228911426461109168708588875604943406850668604228028844061326005229422442252322819935485358564960212524145164165787371711644651000749869039103135255970737737045018479430153759462640567504865647396437241340242231040736289163332070998853178739886391330216316977920424615126090777817089069584904153232443477109439714072749604620928374211878097912706859061487810581362624488654789821936166955612742296564604791806847490063548020110938303936477503172733479605679769862253601431508197196556672802669573715313331500928669081563301422363552521618965510597190851268665566269861018671353183978940989022766914956707655100479010131699214960251442844148515084981558758007843861961884219246794396096975996237747225931349043831934140707141314202340999111207230452016633706423352641767161057390059167727398685878699308406144321460152152540182755438204275329639689688047367908273532211352235663278430623688251655002645221678009830149636654896801837192087215387103635956406150650794962331083704659114954422974135180776990579383296334414146354269222202799617520103627738663141506003984211578238074992064094176078582989406166615912992065798935855419619321753134225602991867242709252037559997849867946392529415995283253692706676984721632362855887757269281573794411831479347168419186313595135565680761534167026874103767362048467405576935059162256765846682096346811498063576715325334894999444106289425972883018748840570174801183801443800049744573413730665894576539082772184676164187554561507219052146679776338482244472287320226005691499792654076519200422298044149489245542349671944659719849861205381610193194360007383585109705706408704294740067531522911433207038025463246928533674428491763180223711606470726933827960305585394320873161544729259224008573891099955810204698817715026364088792005077564232427209013742518535477825790085308463236304091115623629470186316960278715430451488500752471248970932763508329904740088591885967275445327219382110167440828246150413438792791217432647903968544082450052513033997895740996906817956020438435839550671896776326542833990996106517157067363297566482122953097677040831572284607471060910659042505288469357481845819402747363571999504343061702438177564276210142838373675552125851263695344339462884496334050630689846580499071664187078476831892231659395793770100670361048114524219706606972570868551669666383059550668616742941467172419472234884697474735558835770185702709771487309558466535065868463707836742063580432366646029660362397133195753255959529563371349679841574148365000990127647953624485561039415222047173329071717808327521454719041395116468120781235428993095455891305600238178492531749202949233458890909165210244860921056183751475791995126477806591451199616434079037800049556490763976763364821741369873577240538431325340267691610075058278024414125673687136202494814607953416477408770362812444948078143304948059890297036103503075222430668107482218135506161353214769778973504946240838402561514200464418013389033437853723186002738107634439438069608346761181661179855528398103465862348289002837440211175117488946620001917845550914422015765299648866941620300538739095417627028680569742225022704312996212227909266237723106504533536867064278075551717468615577324316838441434528176604324447961263713422331418686466071594979858054208175475731609720170548974281125922613125064485015496219863432779937803870455900873305500807326251862636676792837236538199321608929562627979127782419886792037661011546324727856358460436808213437889161718298860182450202682891087980159149896632591593744299961166390197412577666355773601800336679324764323380176852407957238368710215198392451166636971429568791128880695797514217124615922412378727173108714540361171000081139677957584192274905134873972331233256442501966588111913343150721679021937866074877375164441707630687402079264943383164694211352983736974903727190320919006692889336482425385317681000133325799824919166941170911326361075934097267566335537243757998496913268242081918675844955786208464476385637617506942906688801845894617902681371092815680510482129382927717141600532036615818108312316535096146397156105134549646201571839561634957715982707106850944952003678427525393425657057404155722912558804297807666183405315887490474773780054271437496197005683307846079380891834266836561007317875938284759714383366725645118176687845584968517243741737321062565939150248111817352136146278538011842561648550442195226096607765599300477249921652640306986223278414686031755790902229961697058742969997497889811366461487531819544467165397654369676672714557799212901793624224846837548497999877588292722561164030519745543927047598799376203682425786950766863630214892029088381845809206836520282110840916304142134546129440044525120773720856783946297254869237539155167723755486111901131629519758394337599300250936362348816204622198340254103256332056072550080729481551714610918472066851666705596167298808237271624720385185879158845098190419279189829328165777449091470025309126238436481622938691675166752628742693235553262915218045796320568673288238721902651749599043355619283982375066422267696233776889598921374649035216054470117203103515246730188395623031461175397534158979858843981366546619993143408688284512388244402618918035920564784236616687093549936499636353803436401592221550918370276175051163591976660261122284865743418122812891210959699862222173307056004704621634410424398882509020916232697212077875780221984110680143710605920758744905183065539476753900431933181060040561845503290278483681892257380830966864986963582621070310818132191045186248255212581331351953946225466986991546147155368885403544458343535654744850421210765997981113272952259374272619702805020218498798943979475330073422510323062126928504322391226061116492528233194578442814320262210691379342961242684419915938055553860662136414188754477358438977099813072101841891134160029233565448240240729486901060577481057682605692726331089957026309575888684629058571990811394901195010314003796841223639064266498383660882345458413379733981673671508781492008576628209315897724319967935874632484623464618582609120389864929607895988985241921004394393126638125619057590669729991726426651316629428277734231466369601780426943146860979150926684910385688585608382958010184962546226200967771657251933757143760065105927070772020777547240725136885927547587744680902492865029469047276197560740811125307404513385549318347472206679435339130368630487998388603265259213907958847509570477894295269387839972213547505741565238589363735405148959047745438934975341712369790395422865360493946721675649186114835569075482728058111755511404930755466034009389322736884709748528625804679718046891303952453734285677636886718553048084292812014103803067878381095643279308148887270301797723226779378158266561524180316544702766291920318906702107006723511443002231927910974855294730922986876319573855916694358489324944812244715734035924274176007605671374195948980323974983058866985276150825547745272266363788482374207305132396710595187651733240273231167033313986292005241953327504208196213850842386137296821623129444403797238651507690524307465364006937671648569759508836078605336881978022782152460662821953120291396973076286772730703233696923541489313022573111167447262174997126388463688646469240287221149572040168715266424471407045610156706418312977580757911230442964619363028224416304566973917257459843800678825299328442716749383494816656662553832876697102009835909375233722243248337963242014189130029044296938772084739241965269499382248660586904576760369935478025384817332655023838973236073416676331260388776724549180426818023405451169142877206512720465034104959708748443190836271694150103662304050366687493661511475399065890340458187416509305487984211522407515689892610740366849433352086024922391082740332673795302142701227173144881682580995595383932791188686190393990933832709334788855174129286542343445784919101419267648308898284088556854725074099459574760897966519204053953927422099366143267137278125531155990574316129254999372333190021314862200533745221641196609407873055911106844005695665362811847708198010660491800491993457369043902226638041673949038897600554517823040531192554489279437855336969266992457566734026708613769488744650249096487483288077929312265177404990969051024651760049846183180857466819795447091380590178701365695456554789581687724755221406738553214228144116897718735997503384841938097243878342362052406080792594110684212432043676735801685956782283849372500778410770124490579211175788600612207186954475193718428186995169700479860434447511015189691701430510203914865773873608281940353418527439651334897665852865612287823009584238757430680237925408081622280157448194508838099843610332432527676745053236007441489815246687430730558514823792389298201790311904723497364937985962880273859746576892973676494228752403475516244600828567682805230430079022974679366934788985423887203494030499805262543072151540971114414741179393915940355695805319989787782019499342243909379881073549869563348735559227721114534279500723613178407921563531040318008993523314414598892196788084805913980411851059382804595643908725263285566431304929966531962749007898518868690031605609780642118918383140058136347555431925646259928053449380700025137028844723256665881337500234386112618184642692162045874670215444982731090469489941067793597208559796086076300309905303607490190932449180949368411435520888289793568577696739617374395027134355793057002739909920705813704758182232809745660905352769777390348774699673489111827802319999709386305118944925170392474348579779338221815832437699790482295615997598110384411980045596374274582019112585692771581411377261214984791433216497010954103028786533135258472555377038058803269886723289102226092085037006115599426243443496004615395293850143098384058713928210461317116847202650200639295850350792930000386250282206952872423734694157214842048692129408801388381190851152009375355188333480315491243980843936651205449416283706565450995952573385254411027385963342311882377244629690309997469359397120647634929671142718711512172991058362730087517563779065886691322110271640700602346818796764900197251157817698884122230234450063127177368200933085740257104826907646819863204837814761190163826427488804856318962330618567486334600746160841759505545594236247277784165043059256982980651487325249843044670911271376594954879002698440200162496040292694910064522580584899091619229072901582667283676491149313031478703724485959490332556964991605992658792346373044511809568339262517004691187396638279251106356315921399344585155953220950817737632777180814811262825024726426861562178263196996550248448743026982578507031333599010641941936650579749355260824752836067309433893732323645609266210861330995722510242154463382005747748945434221280385103838717470783242759666770637922818224615476518198021878883063680618758900558014170211814370619234379793898652401923565121296526399101319462550712391141550053803094932790709257924662656218111845507881809588047978541306590873610882572105000872324404733793465068765728784686186917222501149867305550638898417024829340445242782023574716045402777291358751389850965164977040232864305134936634784808794501246600049182735801344712471386693987401557537308716734163490750877514811824426418674102325807179105620976336145090258021498463892910949783533389384606751838195772994168777464700647429271221562277613513607976107812802898064658826003789750331751586699856810376854382520063760938542737494044751124446722993876195979129373903649254540195511507408167479771915401206725143703598732142681591606833989971638998554343844835868456851306203340382950790511967929337811904799868846299847682518057691626926954938823339876159322406632534013052413720185799269382452270959756429409853018906736833142408187161372073055713373867981578173142140701764648047860688033918114247184220369020303113246629176754990655820060849276133407583707757071956222329817183489232647974035751896103227802861987132056453481846764806343822504558296234393829312019460377307245049325871373387697585732991734354468993754859747422564955299465234148097263883079001247508349746325786236980228733276699123468012452400629894262539806790041705010069598411290983630159000636777418476668213797937869504369094153515293621789753905093528988073783293007253228700344619379457967160261209968266348029580902780909542382165703292986777843667604429688713046553133383711647044711134642820388487531643099476309709696522086285374554812427638941669156922474090933281261516973265038106816380210487192704871476265903260535996278326820029090422846501629394708257198284639227323947961959635164585002280366344231720523583079000515039223784196951568617121523316689700482937746816067618976321321162057688366954524186321604090019103825343960013864200853932257276692556829601044086229837093580004937435507601893227130489397282588868329191277560813267839444814041703772661817949913667741998542162600474021688347285228752431118934427134051523520885740097938066253730370881719663734602628867167212009673141197904325349284160883793348920339717644721727171111502206473657073357920414394260134802078743238415496587082339216543037820572666732581442448799364426959442500329669465420518715902409082180668987179856552098838162002126103418145314913728171605294334447563411577394605318651985226678648786189315954888125785463269502676841319792020327966823620877022217555702938070715757664887217408450290953701595137626704159157637753326058967620076970712265283859961934461600924469271490040698668978886362348684110259029071860102731109370701912088460978767042817217455646362110299154856441656838250839532337081494147841618456099228332453343027085003278445178231107911652929878615625693953281587931958987172047079549149118789231631940304663149671468566425188078053924308614418227029037012631656712313410599177945000171560185699656878467133363181963946636831992787180193256807111561446743664864749321771260778786862232264100953842882274592920573434845560989426408031190812503839219630883834777423082976861234746515129072785864288670623865801217156939773093607819699243344153812755245292648451268033939834371699811779200610698468285041027027363249792918088085856249319715423026997990610859096726064770805082687452625331641760628311220940232246887235012512114547693632650414983288537887899730570407567320327354143579493357627142022128042260694225983504263272455974799531420348100264768236689364974237922502790546221519885573997178099350299622948085582064325954036186911172905948218718938597889774873239119478075191466809407463466869047988720112527675374872916096188773763464916139831480719080833231755438149442245364576250465772920280572323033358732487992529790187105537585562911907797645394239005807915146780776717736603725296358276797706290171901670382678008630137876551413228033149770642749013472250739563282482915690395385016978780718359935567917026142283034408228343129538362592226778147220844503883506387289240010713790515291468629491205511886234059809414124552183516176345248587506020222049782823272816426444780745642052538213448525217178106300325294974158266037902923151760189890995238999118687637459027915333170901601892562487464836914726861413534073815278459410621504844306845861587155636593486435477836149092463932143917785206191387936601394114080460345669752415748746904947386073941371103028237199180771764933686108135008702899906974620947612937368925598514433409102114849704206451760076249355613380476663890121630173797468011473309073848561591956629137658752863497713826982757876620772883578655734084449602594996562225907926212794886751017361875286667767524143943654928838224660678733658328515611420384690250743258467492236458990025624674480275115922603884265076011589472773267116188924186324499621984910273268694409437967295962449014870070952926953592839944026066170069242055859278563809866426358705627382631387450083929681604097015934433580245408199730045401601209057194718006017004337889217687591868427887485521210816833709641377491180469436841828653445796885756783697092420390387838694857281120908968714590101112866931122358390061859284975084381997205519200284019677126112398190115281847979493582538752537636696599564688732610066256336197440610518809110451316824884533239235374851362291628283900881948354416738062697303720261522180641014774508732074913456630516862167234379209191371317976051015924377909303839922099347397964202642942688366460961915224817439894297985676639238559940503343082745215833354364859493225891037089605900831564266028830553784653202867829974898984066834568583365890553277289853760876854653444375106573167588769179695929656589569410402386824627509668707113749734442361979446028702508552736557759396690875424742227241695386303532251679170121646318751828783549051272533354353518279292415500030098040245083703466937737629172347057383232869243287541186481574559587365027963971866678893415751480453859402395670133941331258747025860942631020473359392101860260296973826876115900319735305931208242836895317273957541354182464192459738787168741483572743767474988228913305765828459155346254530708695227821063514492278880012719605536933340188293468817338985182364824031947908785534674882395391723293999326771921065243480551664723199168675174376957859565913961036763011580232726537661062157482864586142255032184143761137725455155662516833835581352465978413451830562873605098802533085154249283169030892874780788770735221926679961910769019727039053525008808350834711000150913659569099567819092715288506103329382182639452091907567629136453150813682003731534995887974156589052138660137003736407535740593448143129087906894424797548937295212638041727555680591023295628597164087481855014348749418889334794968453353932541622724866058813498712466711405120446876832046118658217886910251763504899450645703245848728422918228132767793280020703286450649361620060918881828135282654507591242565499486894652396789266054586600184742608210171906432648444045484357810735057170033186030031078736693295622225915492459872544967186598582912206113213815937532608840124207596818321052503672362923338148287961663443259581215361896003692579153809650202078872901128470485230675215907251013247679476713009578699870329907579326444345961664237664721962591739720634784453729655193458305644644611526994885442564118018243990916438140578040942513587304888264729878833761572055071638653224985384636262247373753796749152483128927558538391071487626732421710036662524827602507296177859774786981774498387569560204628375452439534487282428826831397954543321315215913361826013541859079420637620610161424950098557936497207659502094245124125036207019072915829346281737325853653188519598288192304126239398901055017828557096198062047585578896646626932305089821186428251777516652959557228017264435587767093797673373858154712050000157170641280122300993591978521344539072624964534405207276511275362151514008235021728051682863793548886849299523239465778046631156795849093309244425700819680197772936205469722765678883218056383417611119136366104014036781089585343115687892663295995597277634100276462172398699030488423673986352009474473745721554984950524651164280987516050692002805294714858174053367116539680457759039747218719177366377407122550307746355413800498511482616468654783512059002294439120467997863999628295470534505338808778825203930394956034390450419219482889229620541027444950931353971327409447023669289049675579098297897307458166577485607600714085037741969046485478587160926268003750133247244555728030980275600801872835237684687053502556983903413732487560082972645106065190865517704645991159296491854626030097996203166165442033935215101974401629700111462024774287733221880820338826487411438562881188028132118726723800488338654249345190291427633979509789356299346201280136293622363491696759384727991525430384075909650459095696490088635365967282168662191330628200854738579555578380006706259206700922921300268239109696756291415910128311359600309783467090315318578176238123877799457799498983336238137776489808507297646714174399416212513275307865859866224575320924244414798568401253541709165680095928765418242967882472441019737749826460200346145269495610662328927007734263175314799747489486954307347184827299508065312258040577433587938923180691958345227028374037604746166090063093699996596593572613380809168665362137635710930165820122672491012105883464148273162281423174522088229610033975784532122456586830901866733667790360776339956268491250552042325369311269456895443563817796061122136871430285984932212445888270212753843263643674772047149004014294337219834124408726749994573666655511440231252112657607553567024722166336449823622461910626497753288700534238453187375860864558875752145991339500427991081663649579214064178322596614398864744235507487721848993323072998379336982612426490377265788294195074386915651942208849632397002312850275088897223809384992044558377905640773327484077217106836802547550610548628392715176340706864676823904178571214146394175118818318699987624627338993877697037400589633417760093141971183378841569583055266487982653709964870861294168858275304205622835071524282507105261499669273703188533543481843338614752219396104044205386945726619528244778459471909691143512101409230687910045100350304776763154636177950747249726508666635039318351759284031385121428077601667064447667399217178171214362523054260489707354329247020641155884920787537380650637054587152068761515189545965643000506814298989633788520984812074617453035373068474043873831823320887476340315084723759363030082969338194541847248513843523249174175769403971086706853980960284897675150972446852964218075497892665298843418996814467995936388668145089668731794900873388748685371474484226359783915922520536528236775963304006184270431593071656855582339079632283337974482206789057011787151151632398068569578029046715505708721941697287612294602773796863010994064921286362302140403845544742188840228916724636552091466742104839940967527877354785276621587628287698248542981198793460783611432353555960660674095522397598081744230981101904924764418720369766530921851268885603738932129618632125498548606797122467878978452493258692557702497416693427573233257864288104841324169539154018388852184739119910633062471746853810677313484656041826447866631736396925736438964854564685219172879557590655554659101917111202066165758500181141972595318781027096673537469196014295417915094441390075246661922980369706916166161225686043843283370688651749993641784292422197052627641335846263871053413862350325791965475890419596211846916785653239436380838437224658162238678479313254167703675039617653317844126467422519597578785534224186707483123781562976614165083834898925517317233720395040870541551821903366830917599969787653360876251505579115911083338370093923540439779205678586430912780537228970784884810215903417012785534602533661885232680528993825813083401058639982941569262651236136547668001537452254961202775767276514814484705781815336125272780621355398042837651914793037078809713792988398495447263403349258737304136308455848309466814997460139995301783700842612772487713290062081684236143929613950583010618145005156677143521433324281613410296961031146389321397990273669484646224093726590529941950461066526234739785708797844114030329652647268751838511715456456802282282626198954492377901300803081860021058379364977740370219370314076102363275739019075389137786216763613071351797207149959401824670658289802026700661513300060124898091908551217836576778489619972735103229530590699915945575610482027173127548097536670727259122551499673343398112219483535698721981242196855724001888046568469417129695083615062738725988547064969370891529084669587607624501425148359666376092942265157189633310771320172473015439932237015515375747618963460115304428472838400675637834066099858452842234053887953187627546734279394001250841390066873441519109793928532114695473187912851359194520644483364846481263498348835862215383725442535213961606993146652574281441537323068175324259675200809851698382530804223205005266348933513204156677019910655383690256970812846772745163930418940200748676733384782635813831983716181126240789385019534336462699267084537764704254948601823390681629901454895867622968302142849713188507914548619111084876726871234804104425308282601854582637109273105773255251490855914804883664205444660179763162663121991714632926624803422380259108871604655315076423194688046025567420996086874802115492173871742311971160524014806762143821437053745311160370814282465381246136056081298939678174105556702307472413432553841831916419348113908710454692791105689610241661736790315628063163179524013187042681276959762083017609524357820589363562917169224103005208572314628415949884290852026626747377391748077852433930053514547942586389662900859168587008664002188789509122033954432369072419949111838489448839356495592831192151762671845542783747132592522232415126147797751866826479383841628643525653239406385065308065833387727285813788774126131746320857509073035291862860758264740578554981219724760721320490275646087740541588940768020907436699487444730576126010693020338909237695461043722670243915625824633495401560209885761629487382093816817805465240493059987133512608570598541776549646167672803804884909929790440329932784089977890457372483719150551717808652813587313019243945775085386975969992420217150710487400771794143203364404501485077088554920033665306817957890739141318867232165326742328165983606431938775869468243879503175795898430642191857932264373401784076755619842643579783003958181917148559218318252476427548191884003850771323210553750777360454744033303012088252879581788122372759667962671345930310088844492928331116894813314984083959886983923990972537609389489446900428018700247235062960976082646162154559766722766892468706757548167934198633905127942101026702550036548656397126451628976696124007557057848065132895992678996189127217414684193858023550282260987119141712466815410488503733922005308031051563151536700149031112314296941220206221327507834450030394391878751900621261544094764765305040793395826066897961397859054725152241815867930714545330090329785736239643296500812121776297243104487752465835595475371445597763921577844445767888000548053057879255072696440600469232244668170702194894655740935104914355017869268508101142607631850485981363803712314335759421645026952447130007938255273270753634375312812231199393133329513951549100151331823734453192277595771754298802946222823445348852834691808322641046478414529095583505909487438273624589460281441293284258278168335430876426046036051526777343862916301580409503181667813129100001766964250317190291080039103991126629362610519177169250054028482645053574855961499625956240351837226951999900764778552344777156305445045435365085338675983267104412201484824083406938123225828653825941369334185098199521464682010399357909422293724055361474848344438411524996558327633011257420652463911274183783841492654241368533875184464000639334859914970056182442987266743132928433301517657715380287799926482829921732500722218629660310782899561078970878585609097490129965208296315167083272820990273517957490810997593537025149962519621320307141062811415303712642691458484571238565736516638018315418772665274940237853469488337177452889358954851107879356936167607841347828401885176220946101756561046913525327270496149006165948752501839969175806334337476313362239913979387822964044594008597928306398234187890675661787665122139967049369683642191442981603125007655984338457945502209317292498391948357608908629292691014528726639944571038012428305682139001191104863776232132799814593757434670981754738376008750235909849969718967247384535249054549163212045070159751276657158510349203961273440230455296032774093782530285754536078954414860929773183580472256118327517152706705633176096743082414934320957935351486221902419053812325563065674921577516153389345242898314684345099607117233559041597629994180467559064808442276816534684017399587450348786364269035177051290470898355326989152166275718699207201116363201998637487125813777557818869921015604733709321494895292564972487016912837020123448642700920224897363341286120888618522139966489806148472714520969063075293734183951781865153953147121384588154125011804446420460207204011471508024005682221468667736943911149291949491830017834147742071765922570677308967577748574361244958340846754688440473823275542563342467168494105802244366950286798663646846413817368149655845928126661443299220637600195686670404978880538488346396707563575606320997921686446706548653724333369008311842133547941094326815065514923670363158811302198526004124569276311871214917785173668034675029088079881519123816109704855468569028686756852801918523426788446174617403124719725138233101661860851644455122309575247277946623504699627640911048812237483417912303708873645929891192628755598217470851184093673939454900612813469204777991590913607520122204579705792976629854307290597079073465806345490767449780359405751185394168757882751751347031166533359418025781643750286994748079612742108096493735199519137597334444187035059711008547945857498958229385881892394262961606920325135452280735338976067658098748693895924684286114430551810894651825365983277266654799359308542512920314512142966210126558371223629561344350677536328159707014218052264332134704404270663588537160884191618438549782350438912363215793127991911172468706003120254508808426020213561819789471489267772244146097688910477755612763009299989794565049133937038682329357093406595529370196629143683828889494944989019194193213405677185365642825698549350807499855703112125971671703754670145607534666938047091512734456001575450171795355903951836714169386030530779487517315187994684659261813587673010760235576450209180889395537220066642859326058406463840928713969133697293341116197815333767560916157970889833205987290316354076532398842912793403784719308091035747670033292230877519100451571711621020079074067963051591056294934838857690772035729601976706236561917954384403132735222509648220044573169495439702679923482475857530691510446146460149602521080367426295329721093051658790666135167468234925297226100491466065496581141008813241605448625157878449749755971825325171069433238253761687716640174511238641159567771950113110231087222256977383112420080577802098090147290729842635827433965218531714394479959505808697647499869110538769743136232708290460944533327517886337215048769924072196262174143840291873290811484214728935793641989952472699544656350113976727159021689392415347994129640824104633755552908060587550509744202427038009380007092580561726045636395362928481225805786066459324798651440934059022685924847878647856274486340300445206403917115887721672373684242300463491215180140298526193045551111190793397986197069432331559315192259325709134702077513983782416651248213138444804043243575770361587139509223728525591204871309031119418388142805776470732420616002662259504440928284101600915153583703804427336722344238122672865004673323551854698288198875953930021047455662093848726806257624857571932098512885496216174718776354032887683817532067078286596840973074549506017830801548863356840834726509223042859202407250827799788422870622504989991663427820118187892780023669711108960591099184263830716570958510297652998925790074420499535841892731373851177703188712230521809052821584074015728910392461561514709565775621466956551397017428151150441957678139640952513449225929868538661952680172795556521635799343825483240297563155638532796088808465052996559043649690382649439179875043720829483187035097421050379418812898333515450623187962421262650795961820369946675168935215677506061808750571937498349858942529190174209694577026546092782503994425369334991245542214555220903239317927798318400114833608760090014336050185481166382540583390694860445462091386115729483944253216779337431387920246895310511246464877891376518690582092139426893226443419468988517762686956441001539681740802235706404667781479148750250544710499846773628128783300040784803811051789220156907335559821279938237149512250262227364628288098272612292190137842897481346516467036815137000943664934287861676405586601761447450477116274667464351962186127993349727517888606788432516535673692377651443434468372951450444852063778104653011151080893306037844002316682541320783271046231797310086219573398613896793919259347575049591636276156437384833844830374122571429668326645082959382033845553911581710191513501906301312191954742198508640268464369937695305454851666623605861247174576335255631632400700322895927948814864767343492871191951740367811435051172083386126713694532112604676476690696667144663766610365764163603945940539351998431630480387981926276137711048698338333801097267422180918573841687525409778873972840743402466318693121373490103875239736905998543430915525191666521091683800672965370815406163270998763805356042406427799719124702269001946372298329580491932488989731104149331077423898629224123335210070034880522726591529852480167063822681605261132686049275145905026243429343348079459598144062235127302320592113296365539214263640482903173869490659494156759759916198715802885432687721844341568816862192153568630150607858040932567469304894276331309843094558778467679289788875912411390049896097509118380456785802697350341322798460370130766065836830767790103795130237042155006891280085558392740272798488664483907358763203947597733426533430979501914947443275364910585774052276319124507188911944263545332036588164782548721162626682642817374007900585442669843054777337732078080912077573457503975068024423817408414322675492051718977431130774010275293073498633112268465124771272401269074911229041743553428993734463687930246826658740366964828379575022058144513253998999193280299480012194501227408885424202086096116254553120943964220273790192606888230324897450870060387919140136032816067572114036389980788638709476981008505439678925932758877876274893604374605030533957522717595882503828891315493147463911189622976631714763999130139660211140727458290972976893445416955644205280934810140877123270702159318005319869056440414446915145282548028734849119278891820251046711976707055891622924340667724504365078494678396919446678885751410002502194099517594239713767888724443971779517422175486993380203041096252174575495977531061940601063211810914170517134539536386365246318670617859308493654321389863074418575662265813780808663620815271864982638443515922278776956483809838390352897806712118807163573466474684381543181213580548305841834601682800149481759619694396269820906117387990366394482453722666938357826852825800120984940330924565862190833621821774430507709003639251759942468241001448813613344672251209810150499098167629975326079642320954186015877238206755345547107128588889137076580822276154317668466903953972151876337959918492643467083609913557895314188822075690089832121710473369967134762555223291341527461247605893082757489328852223496891156573158331752582152951398977302293217620566276399247645737070804716263124055873977375408675073185699841585160884295809645597944728412391949910139163066845724530040029875371696172383461678885829609511819981595403952119386972366975324651856067324285335309343996492103288101000420612064808304806661472480064913023575143712319969439789705631142445456140024642538250443976044583728420526045070191362655534640099652052392344947699490442846347136799937524533029869664208865229091302677444231832111858556000195914551021004752395550982828712878844890889340917454793287237824768375249642194401100291800448158353714717186251679555638924498450624587040465151438769456883885593319517921399331314367639004812090798339397861961016200166080768318480465243612987752574682530006419342403425139966712630578908548608622733443776227740321413923375067680695287495807066964509224422263781950690173975279786218343243440337689279328455785824010357995560785244346859863142634575869255997450274275784258965329169292809908203928967756933648829717297885373239169321189946516177560659514683253535109300386229483735263814230474057841866768321598304263171731740770723075781130664082785789006593937516314734030299486385077128465224042490104744211862967892132910126384432228861429642540821487621971929836723079699159959236374495073974758035736155673228236361184356771874108805234844511162723986424397809519549406275940726611063499078395306051627045165973597798735339408147112716936739814914983481885328551978671262968920318541180037001711975572448269902091797695104178733035619194212769370770275270080248189876736031381120335535993286999430820017838903616598026798636321020359521048757624679334411778685203246544772538987133511224121830960024519648474660404398994860400727058814727864243627659667083387360440690795704045110394446423519256627805799826209344736235046238594573504522519114362612893818611479135001304641074485589878034667116461158513343288709917858473296961430820110826590285566677903496522039511597970640122219117905510887770264936849440948824186238261747602852803505752694912031145094273131362105120166789243740073831714785027985026759441389475987258065906590030396992965115976022714412137967103148987944426299114322943003427756995505313844744729843882091720983078824476500768302874089261206030624016242848246395312148619728161570259531618915153291730567289046003708489696812679882320939841939386769522560476104674010051872175376903262712816463489306626522114086062060233416814235546450143884328847246783499862619992568539220088878571681409665096033718886000271993752304631436994651909713925011976660156255868924620366331957359927045659659024508031441056344372704686371181476934274834663725751368378761575478506791666556328144680034999075095456313745866169427448992798846074505779248487886702001773706240227740179360078803751183273931305280767797406164278371756898257182475684544639784053148154082489176328079117994124497025852788598693930559384654570923357275301964588894594275971471065681557500459141221020732203872948085063442358691367656530492661951366948625302426993917369872714179457959778135713760832616995573961743680721280898661134278412968394145491361793043140142463204723826436456587845477483535790518662487238357889954345020446987726704231866713559785465862190973539335408103469673016552862480978841465020015044919507098568141138140942691114147672488097953256484778027507315149043300744454396333780948590597553621749794479736491807067775180640596455462517250631546577184546803531512147937209504318527667813354889417122410269525793049579942682369143962484340883364591643713338639461821737997581505903434394994286288003329747020582597722615321027029491233219806929989209003664054614945563888896346556395112351243510886625534915805253942038165721818929474103348702186007207016267322451259353144607336470407423513400284416098236876166663026289665303295538226661796060025053287399279492525422268574604431828835650100102647980732832440551608358509647816050310488866257517243555007022841051044252776207508127669724229883204919890695642603283165557464201444436525827027529091983796601152546759562770483185550805601640030885635501868364747924684487268742638458359585965030952197934235200751364704910881152139646844143952505632216778350925735073865814179619703149914444339012187726941561172341311015324317131458104422505534340083938959522663828901668861050350378479027930693651772024144956352117911064068066234788436341450844876457132553220193019605875898432889399037239642419148161924959575112632969875126803585728234668902035263336322803599401693452313997907152141986133198334620717940838163811971806702236530209094566060418774163366552269680107506719252715346679167930007080193231144092906501519625562058500926523043765780215690140798984519243134560346367496078186413001211858439755736128947210112963133482729130533617729743625593627593081179222306727842522281743720670202446079470033244404929205004568991331484632806184024481960998592269653362960872762405845015725685083042643816083737572410576514717497989721280832059956430527278715444151762440167335737717071014597364685139098210865093706322671681317224018508082759389154350367740810828463097077511081520304138049907511057065126849382642155689175744889452981327673970123252500634423590693545554685172845508680614317328582931014615977309855876522034907595837401402041494930751477645942838303663986629323937001446512416533078599280137403473885811184952380971802724178055113907367282762392369762401977675999746422656125530134800373453274388666629854747283812371064925698241556871618414851712857565012895261364966380996768367391187906861165001161174361286767990687375455116518254903613031835288099047196753515733251708428767810369899764314447147982589734179862182259469155534282820724893988495912450382837313099203232499755835449661671368071685493449082522470708601521917283930831823264208888893691407351458949219751930663234356796211127135373717156033646266067724670718575057047967965295036716749208621365138262884933438735913290824240014954882840071773915127227976638581314609429404229552876137923210005818469152633716632341640175756267746249909893950578321987684281448426039528575658993514539396073485209602449217530692487012493521419192770689408632228304955221613302044483804785522440848455650390966299128090637858336444376259164987436458857640650861875369465034819693701822407481790004429351250869405716569196589793784864755944326651439968209285540457180642807806514418594708078766771668242001819325977080867620111187279726772822850425417112363480163598121839644984461978872726295302576742493323817916565499494638146577258819016453523683424645276666928581852381982785428721227564327139110502046024781803030421663278633689250026000464067754816160470055461582024057366019887579373641311170701215287676713246190729717988133401067985867487551753538400182862471415320619570761836482915545035686409011398438202455943081838805682937482313959803556606797462563271154610415997953560081240758663437176582210729055973763226217906517102623163924101404185353714383858368814489797789228611116205921093526222365916741641455263362081560961253295227629491194157472406719277549205731628184392198751415938624927420147666506851702726408289806514909536129600998593649577890860181300552589271097468064176451894656856784324100301769109109659510879679692292118940171750553953150169438014336858729238769981285629978800327769298051347491490846194154218417194096661241481946299743085686413697010771863458374614625728109798416456463172515040128049450922994501476108746531742013562396533946246358282561344231823487860227452039951925893376757081513685226845670027531440244109202521099993412330208259346307332955379593119992511216455753831393358940812222664959415903672795383212163758065123030890421313312939755810300469652968564294137953464114767666279143448496245181647504130117478252024096691444081276293138629908469783039405601460883187585619822976959984875288064467488354831117353562863114518714435167016581040828699850052721377650051532535701060919094735951901919298111587082125182482280805323290754773848748565414587184253905866556647766995355078827149937766501486425485304670194847126209706943120857046993537578012062424496242837016767074213370496590237570934178916543754201809304772077220334556400610424795700036221741113808319296808375691024429063665752868104782999309998288726064553138353729423418454498693996189136388003220290490857699785650712244398799639336345517531141660036988639769204097062563084034287329390519851006876895066498077544786148863811105659022507382571455286161921640825707823515530948465253869695429652037717759621478054029152074139808600289812645212560434910414181435117434105141932471287391517788341623834762224727949048479613638841716615402631623332941070597751739075305433023240475142613237607822064425413848751134840099248812683524269896338166160777970301853058578228055531484172159033450243560866648972183447783873954476903552781001054906122599930920420068595558213739727352810240167611694755604812084339292059455172859086977194690738424309880562276855752045253657255157814002500943085905382803666523273654514101314641221649152859476818222241913286328432737335313169889088484520089037946386242035672743758665105227232865995797332088207328162023170076044455079931228054955159152068175034431946237561002925061072724889956396861114146230424842857906393354326099060720726605144152979944967585661981143528060968757495307878747053308655671390758669647446447003910112820971819934756484798603812601975062984684880674054547837434672663714431493798871923886704915539064721999991505686747341206636249072351134801647067851299702273769325142774613330175094610677188510994648575291871017939658602175307831295148902445625196845624559649171289172719235329579919448051802593010499992625614707617449345873134070755574538535174066130857894991508267036318569649641043770511238867706367094755990608682449101413198908066311712585854211207973435774128858566108953354464946853014311211754711198272550765360941511355464089609558360529628193856717352400836070346088046563976804786715613611907909973353281705765913561889561123337824584851821262992560648890135784686895787758609247615319838856029912260353528413374169856935572627941687183300716759371626837089660173237421911842791430080043440067123645358066106890777634742073293161660579530725568233641189134761503392597383161083220763309351506203557825729383688614032416153710542791577594306790228410678770189067128348401234690156267463758142919116062193378065439750836931893355441627816337176789344645926499071632862579513786629870251543877269041807991314130437454283524133684981679171812016896341077808481071125558993567979948478304913867870869688893005498046489291689847587750558782247542566993150102455478314930415199993797546436493810409535850106280971840720269788453231417256908139345474068896400820025504107886500831145235898334823387439851052175500714832282842148785598133810816879146406459971076277890178386606025587187157835095117682055638523000555761215690306447813350708114060736480349065307193396133389971202813531504046220194095376206748995591920381697517871714772974824337355300512493687431249799425454907213588981735732707185425171909516020956374767339914611452353679753426269773757941908941247806017136476055594798214056865575871507619087021236283994888873489326518084593436955502114094264109109251199615996694548660349636456773335544427334129110525356421105328140022726954579827172010961111473385807286284244822879482917685857171917772942359649193749330251429622475624667810977270971870993582724331923219234054894691616919929414863572905854068672267932323442044000731476386269305456541781488973270569872881557258569853879774449656903761222134126177217778402603957298405150288892849337029281930922374822357803527891899403224189860764163173786839298344460982282336929871090748814690172533047931859954393134691332519565940401415241091370790302526011928838234411069995788552236389415843761108007580440101319920106985952113603483452529536208249979480461030540039460678886384903806170773407178160654375229869389243454426761564943349309861514792295268533767238063148213610264378311907329801716092650686439009162027056439305351046287503261949447739941360103682800994536510061079713331044069559109181923259482018606721163084978627783763679341554276162115113879387279450300485047626562344796752256571279879427939508309725937400790264536475261726295804463144197857018451386598411990998138448762674745577433484762149959211074339615203816851705075283668698585582668525716553932352054790923507603535811540276484438311289399439696365270903827817951968720611053972639211981737129390982259532922140641356725035810067681907260985198323726225326672724850474082004845981407734698054603387744257646906748237041778961261801485132367930724817633552540438211566079217948573755706029816779985509785238536512544637890541017106466140470936648621292997072545252888363688731255216311819855215198549078679088961945208083655009925463574822194967254367801323695545460535841943150607583731468117625115279692887647227632429496426089628971311222540497921479419834833524709513255612351534899491320903552929237774583422135495366401252907310304811245931114107985327348517321832742352433243676889541625873848446606563759248575515849763117440069492701818616325460414314411195521775536630289194587380436052542598211461436312545628311584394521322018907964941921402037032575315651526363136640600578608742084473383010475476681480298937387484865455138581953589478067425262682361184061220479104875637161681480957717842744066799361586939158774547358896347330582537677844758724380994134782327288167467111059027864756965416037043790109441680747174138176954595164846101432215338625691960586285355350006969456041379645775469050811574611456462625220966302045716168964681451962603345138628987528895818691562921514580957097878722668558668791615764527029245641242112539647718755306780811391336276054068035672511114261534833101802220668688287212968078729860429883171081352852405119892519930691839327453638854887965616861826204963350664575692934726773578070789392132847009901632511512115223935225670233147706060615562174570642866838346279623403190443360280363319479874632125241876020679560853633169270567547642920019874673130324992788868586123587876875230572793377660774138004288466285504070993622967326199760126830711342774708634374073830525580975035084033404008848053152538773440221776410339108903085288761644081554810461265761765491953411115809698913459368030489950645801921520759553845930172281708898504632739942577847032474406158768608298587301940653090838225339782287385756949500572221217819091465207474383048694777547979920992245475100141219197826632630886067545332661047226202528873602631413367888828974414769786830160753376276262755875039247929531490093823985883678816102966251372958649809279678658328441359801171031430296458573959250259370154977559670574658062855924073973728089620054418611427239083052277210301629301329962417290136414425498305407960392822181835692007913103297771683183090602306223994861143945346068472297477606724883321342738702706562480798425780311315113280520870190731214304151123535781035708418159247216070092810104861568975163987928386415954439376275019922345050009028582732312870720049957269000204233510552747432032504221323190398343691909810846945112537088279980575630355848209569397838952078948894891822954473753558024113950553623639160707244282912816512772567030560276920273843793629289198678819951161203785592690190688651784414371655089908731842990086036543941751557624659813641022297594966833276914891918902959618855215584207584809323225905445629237874197962694390735483343479428638950074515824039412513392687883820169858707267157540812384468632287841596398787880612124173534953932793044489233070842807683872032227331993948411996188732438468429896162066390993780131895902334694144229756658357738995146153846761193722059032602707069759476478960660623244499906114010155621659539649965301366598957614297203999433331085324214250562494045141595193546595100966398191285001467060705908852134837830026611912039165192315827824035953706758099061588923588249109056437709847629512921725941817719252498086282343142051419984973597303899706579435925179256751615299378020586840331475253927540226265942304117746621879623099129942470077718635488009179944628200836862634341758204052583897360182852564389242882112213506913918252888367878090960118316187826137941837646312336907598092379407430736476139995465619750624296516658662148485270525095849286996540504494873492217803360641940342128690491891276613012159774884879496833442263771743700107811985920437806787177930580031012652279390691414738508018924443913555739538015070607034527033770086986901646567362470780130255205647444460154281884559030581664657142334392895602623685218591348096479980569671100026816723179943514946163107800879758111326504909932349815187091079499856913165916536903879466397274420992522920433416660159498062245433738118114439581588112283137000640145431173657343226216465113938695984191902246445972807397309046772822338817226093210791467582683388097222085001757491868602289783413774820967889486700185073954947547140288820799549704422925410946578591350864640179717399708508928111952128149629161638197054716617432373568173315591879438303464095600337472701394969877496372768546965633869675428472462379675269884214462038725527425869167213594746260884776983661986514315229607781003609637891874738374367067895101806384246249739045639648092058114683438053975863808615513354074828935744746370659106695652739015087878777865873845276161649155698637574883183501331834673105837943423720844535158343273823538308770744658323849754677183495822629804921826297209942532078824719524766746719605183168324057008850264184728697315675618124705043623958008973731579284589302343073702149581128758535848205873576969217778811418852177903853825801107301721918448000413027013101744679625881526827309238559720232843247375454546405680413168384572353609307776766269786546533644069616150708857090897371540989531666218479682816856221715790555933747529307534654380364092044952995873299088870714943237727428451458200316128589850723230939456829898832596888139848149145464850509307844318062114192363429551255370985247986083905366158219199236309727750129694904439477128722600848472754199600117072388486318749456897932364345908925452119283277748307745148398139282212318095212981390088618611727392937680861034433457841230677188478171612553905704914351885321046750666215089517204026661167241015719310653788783720577322973722803169691415455998984235306802628995642247057546730068139765988443804454303636490570187028470889822604442380883133420640496538324611950082716029847969227398115988315843808870049438321675286286461487506446850007771440497681290944157865629944143976214599894206748700340359210343612211997254019040981558129506050699229513881148783259650341771074391259579219202060845230614000321286576850139816051281138222615219941838182371104868445092378013296636889334792647922043605921644032792156170289629376290721829621880679672393867221355874033887810126242378066510786564190970061773838086778743686628075448065663215149855757882717598153151769906329255084911263765081928794963504169667909975524224730021077180771711933608389453594235830648834460337328827302826253879533908521454196181822984253814420537187592232076254233508304985463962249926956026054369874791480613216452998671399169307698829155223509865600875738844766566481563419089460394245201326505301505530789296184203756626492975131665391870296785569501457360179848542070534976582086425147091994931310670018009875778109700428086750417942417791256242674353501783907486727017301250402820635948613504480080283683497734586274222890757815602483406467512942496133248414024170934527175273147532269306290634127105285283328623262473828367534340020895876963557618486708282444078998417709656339756129671597297201594532662267628985015107232649909608766795925015994958914477517347027683852490841628895651008242030633463741924450198731861183305748498248057596100158348589828673583688908983271458076887950865433997444569233544017251372052043035596628255486182708085018424251979023727988542645271559365258807717197998107874739434257955531756660459255562516424814482275760208366309237990214890864073086802990398632097301250620004348003934175531611454191716275628053810488915055396765462015353187612762726901230863726821143892264116415622343850505163479849397746157968268983865764678721403807408274174095960599915535993197243838880643793061161230967044448534183378472870547727200110538740671016115170241068736760236064407585647685346759428801078540845597679017434480070897239442161189573385136672964493736416082454625493729259356957677356570616112179662290427460167561078901086480072068318229494924639612168725374909728285740799413224786902847000157194369578056734115023041656034449406147191166659748068142526440408543434785552391909179081914239813585341561834341280943219452547975344827016512108843754302736550132836005955080345172113309185641122085937724136367725838521318345354416177082940677581320232090005936810695664685748964430840326834872894677443092332924768550058197240745777666923536479448117501289252166155448553804792931185497227682665071918931927743138521420243785860233789845726601815910533759110645944642625277062598389631402519795870535031207099759989156416851471557181116035669076144169348869475387338942131776719001949308083918471544279725167980178714395805036557459996615913152208364078093625090622266452114155455268196776378553142297241064372945922125769660912665966849686734639253389329543210182315017108869367724977533239872992320812428227480344026942051941878898350467987702023031367691089382386572597497357513001669482261672389562380282100742450364905981710643599647269958005109535234429282101750205135156290517380031037292543991232248240538145218555744627546963996302064276256694960948975693543576383325834072715654412445426203063979839033587173426377208247066598664892144086762586277203142287167734428164345588378061355016248396606103060339517676118789629507002759164564554336007354360340319566221526529186770047305744915162043404557325560420052140401825346718077005095367101521381257096058541712254865958539592503602766228883180647656785352464783456142840933614623075547045655346405130756929068586072725507397320954689122247047267581614973402189042091247235070734569110189334858769802942893269310704489666121524461106155327178812227670438518840702144595836422710191407705672258656178036343966986656580557954320915880659859796200414184075127007617527158146547955040020826563650938441424444795576146315200434527113360799641404931157835204969995737860144737872240184245786099820089118743944145278350997024255069047726783209039678219788745276629006542882993427438483848062176730062655414562854429218981680200976624346530593799367032266229182985323188174583766619019602925788815533038240549758700249605575693476476727465483763939196349121754020490455631884087802851946159280855744480982060765230936672873820622450040181585788256020048070197743425585291044668313101169183150611828081356999616717897136034257716698904335996380671019486822305396163769540938547725320436525942760806496646216276053147307180729985836697951859624755566870123053580296082858245428652976987952263194012878990833503952256463648786670108376117931006988224844998646086287723772924177163353996404040704727556734978746565419302077160093974787487480523181822855438525776051597500506295623998352599419018942652709439796604605629519964568180222143510485102490115838439536174917103356601594257845366530721092201011467071451926207538667246430076116501808729147652113565460122691797993075163880000627120500413381309730195986339617194094630618451223270843812910347102947002305664617775639843050834227908496899405101659046029087402642812032183520340613465360345625647540052135745585921693661458137273341346661279833523874274869603522348990773246504748024168491178181577322738744745943488889701950577198519065822646502860482324370010305075769039064089462996361660432952950282954942133207590294748449534869340195751870269034568972328179694136771826736220228042545381964510031443026318726167668573978795423678290863541964603080625006015172339207476458782326486184236382611935468047673365874923054763327943774199789093324385562791276385083768671246467287924672185252531735655413592339404951301040531740048298157754648747993638453949214478935899196789730716828700719882655152861728143961557504834760199198118656853139648333280046293185686496027389489666915518993622263276854403100512320944368686814128935760110559562301410579305683921530285756161819062148279554529094612878157956741729216555010118546319555912877016050412233730918125670876182160424249845957444914122112947720534401844345874691650411136420121771049640779703380660696530216581158312835459049985863892627080758879981460616765181605511882323452869595535155741789148542528257975419363083054622648574766447047108860802560339756197496507937153186571948734656075531288656188173141074676321824514509642082542163038961849729433061826545324612658630731142586080569690758664275210463040990437243269741398387530165684775475202877368139605157548021182686455630312147434135088788917997707767695629767921210800371852728590716175188296236680487821386658464298818537713246193636633584050078262327375065974512960888682260335667452442526391517166202425037943178538487007688052396714289089536325583531155841401494962902987741590658810000370734850726895358105309374184419944690896273704929663220977057327974490012111382286522371093244230910027484104419301103345110372064188376396471495040537104045316408387257150591017798095682555385472870646114236400915288813697272823832321371866562951822303811580773235506841711880550113553721228997121885389842939456718657526359901001380710542694826800662870651201785911420656100688724498550059883549085538870712440245341537924904171281311451318841768379757756934525998628121012807662934381520105124186401691421236671072440720353075480087144366028460175237446039189117987228229370213840280473990166493070371065495879963585585532404031360131439498096437551767280214552923438750007782634571324785829953992059937720726525940446745679343142467070390549934245065147562898776312250558908368055645908114229796913611386118968624723715534766642479531959229871806426575077209422012965700694673551568797862568373779225120163331930390900522217819908518252495901981869051945176702260435699803422391676881966984070255980321032739891762286201119146985874774270214693749271601439804190790096100971902930985645499945117479294514134579542468227221549653742543677303521059353980372491016499402854441675992488211905261236377772996160710259582718222963066170290761842700796227797290939183528422716613193553005600712089110044848103212587470286972452989002070958460386726619457039183720434134173092063934925586796702569331372005156101573379870727930588336038966473337784597167495681665672761754244050158312223793791452533849451070376287238945096093013245312148877248973577770430513085040506912103681400555087295788508639817626095261755286543595877683745565328964224473787635037260361695291454742798104351216485984591120020032824512981925682388878178002589679981521300700791801772979248516780902952507120070126180959872689273292617699898584434800848457089090228779546271502290484566753485468605461587668166946087635413514021208850546925770795352633886530356317569361274371100044092857603114026605648196861387100031784577205062784932750631485784110153345809051744881480751612930308615281051011578846102409366456443969844594905810293161562268735418358682861281242630389329677262980257162505043382245489757815255299748287518412669343795090553721044979008079622474079718187736163463733872067886926721070158285252256075767416019109699617614827156531728892832333187804566828744998823472937518812640573422808252042951134260976379942694309351370422348692574009055338121568073746469100704960898137961497038627793649703625508726335684097748475961325810681239020201939043277653201884352148023805401223781083949637695470396643470777053443732340556770180264647843048526647423828484932954256531393830707485013441872771398221335247139333734992382993403809049438756160135453688839805117538299560423721136290239637918121671048404512509008215873977950679132669315897466216423762456508844411499629280402312603945022962519448429134170698580225785902773848921635405862988221841095699236692097324260629281612588302288493357453612331449615405592442485663368416685729315930575328335858622572422253479537954493277383385855976599913220138860191309835245734408465244916748126916050229330226857677526673824136204030260106386183819841703624198083808567992333566647859485846989286264399767768267953931427077994960033870106929045444668789457600224877288389683005882969240887654638450122127774146724595410558811027730910455025064842673894084012154378832250372530021523372226330727550796070097165165486771682299158894483690780640181959670281826508019528438332423779732445080926212597766872154660778239193343121089029661036801942775018731445897445211473449653669101917306387490028035917427420741554074813545560119962160096288680437005569736233253904192836870641495966167625043226174613563665163475658020696920746466326019920176039233724837763263800483259873150766892530610519327371216218965647822974713612148778199762381710892246003489668103370968978966031702582340454813474114238060120709088477477905056903378447473253954797661532669380839983906492632890384858404569240565164051660367841214550843828314574020583756686019493037123590466002953636039232378051596415585443639765049922031735964778793379043651243141903559932143845848270858613032090777703996867268959365176825410491245877653823610279307145032917858122636610201928287506280116940289154537436410222242586632502039985074272435481152072871094896337526222450954006331210165958441720374828868494843262492602785921984151799427216733130371023310491184844408911909899208348456211741196655936734102863370100243303817534310495706543382965442690910303723676615208266655362115421946453341217399092831358259616026815128907105280085171402670914405020729219592690562422522209120346294723852323963078700224409710323385306761529866623341143585622856940359255657374920484412100077281534971367192885487937233419213619274484190232288857363163782542374522177645353796865073499899801992058494140282496943510187997652121311888963940210675150909341308981550905173322113079101604667519544044664342262557937007675947280945009493665421296368911158710276193708414909954432706279211802411410571399198401310293469887939041517732127261254903591666783166572216233004417747947561567096843813321379496504731403907598980262392259586857932590775770598123640243501426740839962172474004786438648267584944905362008225991461147860928857403403088303331239905685166265777777602189940534853843755141155906771810389729604621863767404194677784464209236803079644421552943823528388855249295772550181559866644742158996626410293506569341138113154474079484338495619458025175519663368643339071690779642989609758691587969739757430604773779137938553297675449912482537515206979460466829642475115443222189092839564035000770803117266396025735095379126504575391584159824529599096766526786206617304052762965804929631935303057965134608610205907554991599371218912629875663817215410103954670923978561114313726554368029634457791788147663211373720267010294980959140686294777854038533117275559395853003525110778248971161232167732028679958777062500028290349444924646129176875196073681198275234074864483221602405062620985084425246474394140770280225059643774315119454835564852255803341236796468166196560563440108713489121436294902194562474870647947939834810904704280287025645193207685089980283421014492612585370671990901448618541110277189770893144803740386592004706998372354797525183482032155889741560307727517440873947858091005970393521625518287242011434731883436569841392025969411723449431867471023228519429273037364997719490192754926245555201777995995207981791791717287294121060115534286266829817033982309884292098630354111804976938463208251539718973020708396822361901257379548649075623453323288188737519546915801375149768374635855510741299110266417503768823370562696820098698799828984319466995634325597110230646055003450183412972483495692349693509418169957870748172477040785737591634944899407087215382695454245330578882213410413621094651831801893363519512864043979470341143723751405868846369728609644668376153693771754956758906543230664389098222903053643490497768733960562709997393469052523784224153690841660265232127770080174696558408560468232987472528782349315302526576169876862109679542008056189579357306190050584030463663078455111820132741827875700915816942302579573867721164945193690824564510503087770221253570907381909693175099970526973422546431290996968043373539230810733721985536908087484955612580270071584375279582840901350749622522710499758382515955174790547327632113323454604916369025214839050279092406879772793114213776916948368113200661278283022212117888082318001064936008152866625363337534795481782650046100681429127113488472855940254271474463187704759117252302597245937448491577280870718810172220226687587453007216128202330584880048941688556081776058106751718023463120092486451692325095802900746762346346135547243944591631148092230680446033672528198746956396673381604081549388354697740746273445813211087132779359198157277573086338027791936624007180168424082897080843679675181854053862252372594867483896066856428650639092677463270046250370545710504133549568510400027334492263534043240520229622608876057809699933784927850803272145751816627321974200621864560799349537614509882327752669875029914348813418016412361160505772684696812825978430812158200556795049238834554143270046033693901438206331570748664853349534282267408534861025612223085483016484057095030860251921220244244771116722197015513631079424364231304352221291666287057230756249646650727168510795295662737224890228587946064943018183104048887046772095890168611686430973268335351391022219103446869257436728935455732040484720667027222157089816481394354431789349698692235974018181480000591517491255870967990410457573136789886134463882327575295760192863400260755156916226988578622306423350960486529832282125520961116263460616498619264243538467651419634336071431376407426591370837935415942012294908000033994491477417649336714999620679548369598841685518279242615250191239388567415154345522233486267707183972370169755870859764434041569867688638574661837835306218062363985936595766228262831436786230637497090819375386234257853528536786353437182330614085750985807681260875439977231342196988968683086437064176927923035123115128331045784171682332793187798952749348095219460301480993643751951843192781416291067344026035715820202151769736547509815777215688305973849864520104931028093486410738217279447223203014216437078956890536885703956600249735495502895001713900747059878345559701965167144743748300048034136967189560732010952818346411418944149729727793290781569524080267186612205820263340502976668850592377735363403850405445923851115633450995960543880664459413357530405732754548265661257753326103801905785646765680505560071083326703411231598630720561509989080041748508450032834991646121996564841946666440689951129426872273978261559149376531621673680184803967497386909427690439463488608034735075235986035329677933637937884699669943319913442334092369153699995088421877994492918567506923609077183538155053599644380895696012918982552847019397450304687962132624865202377093930123659795597464267224693451882079185445831252606175468625911483441242778645173659973513520685743246607621977829211459185664736120914638562228729345202579496915409157337077971116001930919097359062236333807822482182136982536098207104636791014871225465082137184894918618171942491515813847418195392512946284886384530646130698602537592069643307237835836547010517721871528943164378657122828362587155389799882345873567011317799271617683099587149437794996906425277295149975995579639049418700452970543702696489917447992097534651848999171837658446871334496400892098151903529412710751736678334959550577147373561708941724072824299948713512607616911497680335243268994793409788852138482067398965639278222721785248513012925960109442280303112004674889668165699042784443997299003437081422345326786126005820351907999309180114063139673036681173712389506745583007367053944871277634639057839004376199986397543715451455849694813798861812837747225252128611697735842712169911718316466378667129348649606575895487393761641396685205961317895845636935275399644546723504241593425202200840576787642999177274183887751877981359468376239182456053924274092558415411891769171925124714509357236126439744612226384667638894513607632404123962227937627982824768919615414197657823196939061452278768847531225149742025837718467156573012820060756737567172085038701229363106916425954869797148641053581473852243467681459252820538982171484053665035370885917105162828707374580816109288068561290559968894615953206509441065820861278384723541154786286551651957964805617663955032370286935761251434392465175526108063944595381811180683020857055661849296321858686716870302227017101541542267345993732976481160183052571512366081407857125156030765824779939551774237186980949542784427095638615672682039697635984382996720950039657278530421699900811298132464976062455462682180452809220775307220158787919964695262767038938946441892949432199174411052815730279076021801515115201816165979929754870654207388416315538962534273661444258805703037662735294509152623431152021945392755573435129001513178922088941409555480338961363150930384208749286107529196809186317606173059008140653775181497359386492209782856528284541148761953974983751219027359622267424939452407027378080644689754908686690374879685528020606398462006147650649126345448762886412189104088762692508833882672010925179558828733207775754701373644769727071077391829537125804157170874408735746308518573468305547349397100977818394538650006124891787733468884290938591440356341040075639754612428773633158957561113438828636081073026586804680823346804797909640449278424603918374645455262380014034229204689484774058190690412062268949833626640040004268679640177983457820069675595737024387228253339430718975832416944135815994356534205450192266176996853288714705830120390685187553771485563863124536893832669492161029075112961981281408475763862432190594109217006315784767169461110111136343284493284688926860835906108594045823289193229883324050610766470357495226550559782640287895551531041044917060210102828170388657574924384739200005284386383093009654862451661923667939986572021485054378864247881208640404553925054892813128935898466985973672353674256340916284340275896907669571954054641261248786003481783682883400135341245905813694056875856700988512281631269025490685859597519422745160242281818734486869444430021216193121141189515837215706873572548019227656006883212778496435312878203294150905041979423923946450484289516278830220092900605132283426402435281566650577475549677355073625007006429209613446458104637008316549949295678687527429900778318586652790312074417593482174961377450794716755840447749380180786835770632230995816311180795153351057317348308297271863381926941447662099178108542695904080622162078763014091109173294179806265421762830762635681241860947669113415542654585972752546618537760479365373807698251092504147498534032925458415943588998281484169325455294068435393578723384368699020762500219961074691779716216541565913702337338021065135374891283733102962315867356913235914332167808131740353765533409896507691343034507074123368980193127315473999438955971143120107304878314661346074322903033446347671355664525927855928950159779262787636265326851401298990994548620633816479449890790838639671692322326460593288776775671760816390668049804552126796861446550176288980330136010579984355281937626092499045402597410834075559731262717262100405891808254602129992835869084953207901498760968835417591936518987702681042134882203257844895620251643124520281073302111233180584783327613483993871261398921820468313641474620016605653329914016892345017276404648033781037031515416019169730697671702954553644902368550864429085573730091590932339435213498757678671133127461076320505868315461929920983413451742761542193812696003586106383524930740777900535832825608064853852252428769529910561148979363487535738490954857361864394181804527360908566721727474254019220464909703015481083174718023748502309389974066061860853304057939887290202851635721071496398992415951007257801636976503039572518835702775969243057103705173169460076262470044356019274314342020453520514270644379092940472692741476622888125044236904482962429979629647002223537746271727693553623935649721553050354348454100125964017218305133901809815212597864791220963529945230937619974370997394121780593158639212811928978045344763030039855899150851577908187614038189231768199748752655683401938385400193204321130953798394768183138663439200676219272207067119044081885136621551533209932263846191506887815564803797254039129508555827575472735797910534329277573554156621065796431332365679940885518000780040193913905095138237769848272852704697818103054970275589748876393693210699409602706418298206640063608326829835658357091556510719852432744386398800976551668420355418036441106769303810458301527651266343576058628256226962541312892049838052299521498819893350535674935503328888804160093478565218807577080902720127112129463355766735980548822094110408874130268650937154559244263996483766726042205804310582419036883350377275800533778902591384690983903212105017885109499104680776208518356746988592691131645768572197101628427407696979032584148488693915343390486245431789410317426741860823668077672160596977219110451237814625681557188573635093611128145321074052983715426584641965618195960618155515108953268213219607741503076771114799605435491981276680466911648235040652473488876898313351585397189288880978902218352852631291099084230615096243507464231031738805073372076198036261355616732787981123715340373914337828599848476465998960570964750253130665401536923042303060312734225369073956992771344555377250355696834099152020084680873488771151029209850480520058316010085853397057383756830729951962012953806456970338586046851423478268790148118984382014681740346205164040181581815920256861305607153724282397660600044695195250233698621345417063077497529214802297226663345844079966978968856397699254577140960135570563082528810761136958025596591759739913017580893886131101452585435728294896485038788681262200936090135142197705479590079345607672181157262972054399461690103281353295552562147904174280741378713211163782941734134738586849972725397905753212753606465985255599372335218855374429635915950199929064208960692930614540740343018593677882627180869852151660552756450049496206112248551354998736852996662701524998262917910413271735268859054760623372726872320990167215873761671695681174335883116058944277448172750154678839591361886021905185609313127176360869078395498042825282488770199444311486601414012364088966099387539218134963619961279123249191108574543119509620188806005327023692212396757475150201768454432698383136427413836262362369476954281292724519151339347585945573873105009589650044587341514215789183859956285238786511206046224849876486719641282604395638222704269788510903846947241907095069911808059339420878324443760288972442018342671187373454276049461085932044981268832334978932812897934193997798798275350801063258015095647926167028798702335636321608478284825764149153996970005879656781458643222070507854834350936431043772590345743049440270995395413630475141165979895333549121738351204511560105168588176317959346511080925824622758724011239984202919675476995059508978825388098833133150113839235247953816501421122851372424898402766372228977026074743385610031326218059712347651152375960310486806035328138493066564270985304226753492768381313563219894817204611211886375705334907406399799471262984412526684759552187653500361604117334171433688716780321217855388012443903418199362405069917530068477617105013545464804419165100988553471870258745614333803714681994239058369694845318072330872023130935147411769985222703712843636645101963511238961239619338391832475045518691883209169960734821232687584051740780830283538282086923575841246051098241513860023555393980774114000136904849306123918935378826251803416559387465023896132809995717695015043388485024092793302641490295118743943852685766351024260234894998194616187058297040157355634332107227162232803529622257406411467917919444186334468676547439964902905509845490692216492343460115291433462120681644681838200940079587282676591518926853352213271526061453347618194602055180262282244897350528576766671419257909803454947075852661336856304068180429587035737158365982129014197645865465509513681550323834616615582947380471153573982687034604808181377259470853534955257433434778299906093315469058611023580132955674881877653184645148508146774569804534669388347190452169613469170228151689180877406841716338688683250211437222042384829828425767496050827984807884083813681590856626146358355525708017426472617872261932485262670795648305845646401139723239517820026600908650138259152659609910611871705361377907630631626090869600560854643379264366871944188699223033518440713530917261077599333687190005892087379951455114364704682605100984425826670682730891819769181161940586067872872132923869524513503820285317596510050138973859315074438224419927743667591849948405757223713816036645810454298184783166559500963102137116051111772907079671042123441123455872048729355690569548668916947277584691183037486280943968094850452042452218984556925710865628256662400704396893927261874691323497305619536327863386599165116414028734283993811217986158182838489221665245351370034823510306065866305598679549847157814093953263637168281172610424580279952415808086305107218141837976489092303814709915608871185670920586417887663942393089266367148273334103364284985910109749139772757569777928037857770052832827279798057182851006053968742446523096436384752425864615053611953498972306601880358345570044219635968035294060430949857588798955690448686056892817524601067480320713887383706791319132988448892333119575042757185754787468698435544209897395782467780528309215160473519360928680649613551727627829820734143129717215676552432573851599873979840814449119106804668993729735205513260159899509115045503737896775003971321803214399694073744856280244020810143990798891076331525847936988827697217197862602457408343732490327990233778113897022157279296570777207071429009935304234699312632272886099841018496082891119633711646070754354354850917811764869066369265118982823019038323506744779989869725386850705188901514388786830949389759550883672567896917837653063024985224474066382929685917894521563538113470446101513651332169436994723375919865037482788102694196511174986093558591870171205350154875789941105386989630682199867872415278912354442414574677919586758377940344486734611333009957954016716837551772349319231031393493632129579708497166483890993122140598220929480638863055469147040979651211665726636389285522390423123366547668493766358718260191664152035778827130861159999289104561139508222062797990204742910203587255070114539568053731931082872012538590957333334116800115562388698452448638444538496951147198207040730541590556540515744933898880005689532424105592320009285194529236821505289617991445422234906929166798531963476845385476585885566217996621743546523584133714718124046944006396274802066472677331695707621203375364779680997624534364314640852334498165088821992365483569662854268418366180670153993276286831958960661182425881355203587265728061495749125223656630396160977496823769052714669679391162875337570183386290393371123764132428338344816426555166764064302408424684957337020964946770950340901921032737939729244029801769096251966302812963784435168572908677229613265531955864936229312758387298336096495197788603274535324111045906283165764908442224166925583327300759737019066129168674198178483082350045915305289344041006946358950680426987314033721272712566093202906371294786243727977441904483913335308551743835712638061896080279201756831903291005661041363845222215978165728811845074166705331145686997712791038265757802869660154249573806819280251962429569123138080330515767876842696285791945889174812025251786332221856295242528275682388548848693006113276084746419288692026872248033870574404905220714610395018836398950685885054560846048035175689151207341304559706343660759928250892369145487655649619097888292671253197297810813231717974813930184715310105204267872533429972810714857362546043890941498250295236410922191916228085745936612909986735325862399500025937400428319954650598785967709082936560428309196443783950241903914145133554138028801995023706993274865908206247344535868438711288322648574172184659225124200452553495021892509063799236208624984459600344341617677877813373027422667268718358874830236667161411102094050958320325072091094126318042598622752571710790012797886400500225144203757789876511916592301602646979069294717290548689989535696645952345003596614646387458055850745080294723421759940234016316371964567549756431083914032513616232037275373502570931309740457106456236859577384442409109568005601589819745148805275113329328315385197260837979705165641296388813917933520016696564623970340525162566430116551869993551920901210871573698749805875081228168401927080994847585973938945424521002342343536697095508228487418595132264114754476327103944498950171815176066548657501317887919724329884034416481636429603199622310427268625580125727319658493176236002788773482844240085526067927943490527862671423407724750313170217734061860723758324751540704834442016466533196283979497108516213560468578025048620051299319246182650703980049719091168988885824829736901459698784673025679772569709103862166083870671162209823031641010252663504137762969271368212372233942463920745184222179627709469006390555179121132571045346964121955115296875932596766792612707735643804012176390652607850803366452240817177163706666497747206725534872393874323061939774691964656794636167618385734198264565183026599710544221388663518724518981772226350211395213620921896149094887174002945618126508267406853171662514497299143291110836811204409608915349266994661934264436062514560971669737011332369272427544628392226766399748923496128502105517556194564231427759868527005930598671249946815749505409810709533437243287675925497176874168834768705910291573588282940109927470859565524946154909605238179416513237372482623068620151760986377220542156613017783046471627934895311307139292805973203611196890361521337256934102330323031076520927704924966560162999089282629716973147956504345463571014593982124959378760552771651991740003757237782934115701274903775732769614690337678772196410358115522618661345645464769956387206235169207401464886273598678582543211074959074952711441150726572255067361149988640940861567748990319348892714472624332575563098711711052102908518645465205708064669604231979985918352059099146590399817536146669466679012105872284328465773306241241215568351036186480090117726239062806153546653179276821298439804968170603530728461579184152085839533076500672968546605276703009516223487152897296145402983471006862318078296651611950506058752598385634668547284832880249053485120273984272660822805248928293217584332437731235686564506027896527893809595645075852534931980852633181031169324234340915661711543034575378598779235433068252000646968723426201879252716329426709064717366136319633623082051505711522919241934499634596020242582459933021938255799821328380398708228485756738545499808833411002144831928954516984172140844615857396890161133833035446808123863373579828553214625943848907239979786562746082741855334731791474153228584621417461161354326112303570834442963132901166619387117360630370534914778596095300887267112861998597544410780080665892113326069554670816890897452794656327023323788208649675687192682049045879655671779793823303612509940676523466458644142431356732376103057296175897012799150351273605104343021089197880645271751131150201252826971768525953921491569606338198728457711139763236245673895910335327403525925542331593611873530554410711742029817756896346902909400650701799915251270991403908453881913613320330954307914806083796745904220682682144225037038670767137763132034024872379411739593424812900114855655796714347449362005805288127961453456377143389035675038203446378720689462964824387074510238197084813212492481103001381328469399638800465541160967131219673234252296155246055675175820553298102856701500187673470085368180545501792993267460203781162268547180920269340067323555463439430484636835754958118446614269501768540415124861325257445071434321135142985575903352188098143362950184795461162919566802175518454110847516702649691743484845136705321029424149578171727183118089839160674702525286229893970215562090408248010845040811650586637054829047899427224404215262808468439705805149938065311618138118753171711073188872959627807196451898746930026966155222722150586371204865637066991520986522307870799037089439664642879600031759782772111350024817920504319434621433109258574493855462971795873292818911807543137672306659467545222556977670754938432557441095735848176239405863536830978851036833911854500321018551358083848066545931846224931405902151619066010591926350795383282730560045835350858956997914242764867457313274723397786353280961395097748850179210928969596664599392473487824825473526801699586024416823329242491025841394528320163709851146965504614834850697643972148436945509998766594439809466190821858869810480972049520753548217147829335534339972722029952636844365783584931775052120249581410776545447783665246859243390670610153486271211886851229427485832500173141515638618929690421855241327687275951777960544919838531184243771435988908125856010517246681197045416060507917860774857217656565388002303457264994144328638216082078384395723374190198042951466795420996418808523303300947489575552004778472729519144539804445244247029853262185599126077744907287725493960548480783424404365043894499859808045277859399891447298279281646692305988619498539732120875132668631215723708866479824912241215789262659795198472812709290618641588616529483650619358458136840402644807524422592415804208404637115247530714363181181948483890003571177019571883767647563716977216393658951006249372113691061521338830711491938901103620985566350414616749014018982034825731028808026440867625095116945335282450064787522741743556194888645449076016025166130685660704986317593221195735363248101347854782073833737689890579668883309075332125900371861820096838248439250132195538606797573597390727113778791299496093371394937780443795313316639742458567479983536114898053900941879462339196382423378965175841220852959308180387321272901515870940608127201053765003115267168132444242835103313290582308697691907927241649580975937682314779697679700113149700957553969980451393454105875374861788749513126004567945828941906872019097412762302351357233143260270698571087559051430766034445778874126258818158157438857860392124677633927035861279589382396950671154474630715701874294019936263625050747347049832893210599094538131195346987155147810310501454213093997618356373807268247201208609608121167847381731992320736905865115726566669910798182177409567262595115441693548257361712192703130364973531070738877718872862679800355646769868737521674771228004074290010848763859810220282004089788100252382742487663077297756933703788259342919222729863011915660339284800341392041396698110574146491100778551752479443680662054627925896873798693488914283227352439631410628943557110288553308483391220113414875640784683503706025924520414259749292519544974632033559135753855284578352037720291059635567578822009198304433989194912336442910289253791789832652173921248502931679222761600370277171479413317821926569552204977739277304306249069774231358535464660613742041984300747999768271462152004054126357672003671853997838348963561275475634559899086738400453024817303595204888468953109336936690426234482159845724717067153021837898625292454287038477898497094794514559404158467250854533051173370746946775603501686550277556930528087127474322644101821310849840405223264612562058314983727043453343068499067717029091632735658489525184334001904121730275852367645285320780476976971024671127287286877642458572183735848249534170599412172206715558079932032206295528119574330138255547875315066632331990655694436920209438375826722824849795396751950668858655017894601310989125704763927434524725321984969820533045371949212947108289756719140182927462071780349752632080086413651120156459936904275162421359643814262040225798779241194684888366923696743664504874331538627311424204438657526271651400354969565728679318356565195124860089843976451232490790646988399808810267897732653619043545976982201111279090567783607115696072185223540666317351046730321389860963126532942318050540465572993086297050712058006433820389432243696130695928550926771286060066318998615221749775461320428968921861749393030415267570584053899611801242155194562134524465525854030465422502695662363174524848417813319620111550925183217077577738518790075569014378989878706500122050068113475376666269807202176999052386146888688769926610999811841859721418975483468482451000443513891807063018382152415145511924558413019519289250389653368211421031939266321623329380538369848124163325805386415037752145410420675762856578700495703622223149365328648691233108870304113495941716348933954965592482779460592924948680719216822102687906703460522027970100580725791741419676884910101501868254564453318275423342620353428474428556237127332751096802020134577055790836146122995688750663663331387167123270379195014046206469285687349896186073400004676374305424094510025704098570470314504406454850127005902825100465585072107681514686477089113405110490983704069500087384621129729665360407807254165963068403038753437111287952369137630237785629267765780337936800924579903002543338313525965370437384419003895961091421029431335770275633035693536825388359520501921036551095750196030306891538655128199308629648470673164418843034455079917098926926206454979372649554787068807764322046713168089510799891056629867870868899311195826780015752910849067474760834346871810428234537490292072191433985325271052061753104156923497121474890164692892872940935186973045690961734938394160183859512853556026096606484831767893746053316975452096143355939516523102397024585998268358038563461762549539802651994301325808795508208339796351405817770761210288452818146863146266231760052096185912978978719102406367028722578858653431684527954963592980804656564472286984250965122933037773044638497757467573306589144328307852223275137974395025344545912567349831121714721739176468621396099876271494189276772958882783739016689742120159428696072705589191064514933627265788299745135916441126227140111519210058770493333924291778579410880810665608485412685303701412405599130765686270946854296883472032980990091285148389700455178448086886215090345261784348878643243256839167769879303818304561523704473779888392085562277385097326075388568595663736482975720756668155878217132094142469111193974544031338230748546712219931319135574552488681822928171104558925771936421283868084644193567977945873649394037339191037415303245708390687220661641882944946309639697746466303260781438267252029599398916865741773733959836657363119971961985182425528383740842959645740283929187164249944587459186656993089354409000855230693407988309160803196452858099405323533032112082143716882255790024093565200882487025345853007112715278447582100596587002058184181744345138174697223168425451961343601108983064701400902578174761188745545020310306469633263486160980546969143675008961542323010506053937551391984344343572202222627075057583037853135484147673351421268385890821097863370800943491509196283667004406400144227100849241079326734339596779997187675370912737056044390220418901901389542950468199604562012522900269907801048445112027421486020560793306935919224128242714680386612242983209546179259380426291464138158691971257383698493491295148897433719940242243701270702461030580927251694244325031311059024824132000588240563569606472044454396022814998968013834167358653453618939080663113970000367722865375745115714422768575461311339401935172668721791633765600777757673470026935300210963477278925321807734473186671446012430707680025310211069236702470104639148298081120272678634692396210843770015259991689024563086425403143027834002913002113130961141617670172984703315959232623529519542059097397740897301806666943797359834721673169544796221854233963321614211878565310874731949194650565298969070746819371103770410741386109061778811203107017109266912106070754087150317540024890784880168458574888257897358220698396915438461667063488123077677871489916326472978645810598506359734657346519972441648049167168931489558647098004458543429464101349121814093009648798073217441122044458528798343119467666751733397973941202101279228984769895449928241147886664413869351913748962682700200486854193334312454907364886763707817476400577532383588039710996100031965072047025624560544791561381350698767499673161760345944155390899131214735360946217758631758170021516915701011417692183100667170117838262310446258963388815199187101961632660085037265863093924413768476040532811560755582352171893811408870507034839960690686568092199094392092781962466674942738616078083692507513755501169583689620067017820450882830950475341580511705133955986577897985347727870229605114135721805116530881672110293205932475049407405287375310557969783442705715250743749482754853523415898686602953833010500851296611941150568997950024819659212192799663482707724214396868199720832096579909257535571587028616317591133044757680381658930823407537398952036369747085763206598881696092952986915077117346693803726151465232003250934130703775035096553138196842181644883070081110757625474515026704316524071477746628316524296167189339868008172224359710258553382542759484199881737641968654160055443288407525336047713881519068227661159001925811395057110587684484595648917767702152722601848521274186983271883978811459920160076736591425217073944270115682004369511322115366812137995886037306911516817302491917092924351223100517478365388564272195910247699796558917141134486110767108826212879349228012907512457269880491450511362578429576806940989625476257236639389131198944337507103695076849751297235544405766732762546368772125264722605194904103119922237646846443381149857083669659212960607368340499322400979546274234018832395092407102780332453727962446683541450071133471266236516864668510575205868981067050281120833263040345087164428558704911825321629368888636779047235619405839297969263565588334591271814936095397104737003040101629190195555548290789518223130427944678953866120725912528833998376958024180795217277040912574442009856631187154931893482125231815112105413170321852517347486029452635793987357343236375029247564270708430023507502379279863568297521953398949236390615459437279367843776458376851460414861005125785274928266498963624476945821661920848397282673113859076297290034202793418727595049492939909637805582555534806516051692004099512525271303323166588184323992364079699555543182673432907470340648851348497108392518005314891179632923337624518746454866381495888112328565144612060323433582782251203718699021035527483552137132208839020081989403749782358418212704099963416986794271276863665658854718455885369660831527503439895635894871673758966841501235988243826555234938932151117096927372621011767537927218294709706249902516125784959872340853257066466304851096385454526444417501210209246787592969292423991117582432969209334985824473983161347935029559579722360467146369269792658947246071578950379162932496895750176337371195813682243661401918394206892752502815959862238058780936564087948245760425107795869139004351014098289140300434045997453998200315242003486604036634174655384980266001579537034903467430253295047091547940313927272680787422416206286020652018469921424215268038070718529495608212859325967759455319774309413796230179747220613267427691883817559280438901745326585436632773783662650373797360239394711884442721641281214332032103560005756431041540641608076586804321337858765053310614967423630953320587944348436192636887172732050804716545152278635119181046017435616094408121739629061129417111625395588990720289149496650242667314922970586888155246260497669615364394050049145146458235931776605905379770725523519594581514528134641049470735216275357028549563059948825664611840141959655858507463070645382385187819537819254479040452682627537601189064751319332963805019375725448265607951689111236368821002671957587311552619704835194926134365524511879970971276507974663638503196285899852300663998952821993431089074226251788680410894000058956368444384908283238750325249671963435842570494925933408500574707753544930162081349513910700285564205180746683343863841922450429580932569431773458559990406534756363555981677461223452145308484067650857014452009007840761520552395799904483071809964624060218644612194696086634042463928115461091119067134261589257450421006379978210792044659828348205822537899457576241246376038382712359716961743546697881769513653546235888330935025612303296525265462767801592080762347014921039719460209506893576411317416432784657201919405762637659810835191813323578989768436389661603617742544510426878228652618403062787211188338097912937345671589918531912687197525049328828884340612811386772735959593840860973580825437123726518109828436074689982161527611298310018962616281111518714019158552351616010507033519938700482838398204722240644321315740679297766438793725496280412596950870776778586392129652583316147014412460196230625721539296095785338437781418683322794907787642327670823991690330756167155717379263691898406869517847928117392116959502911398265021483909195205584593412624116258728540153465281639156182120297926818911406177782594031631617751922109647169803691205926769890778368631350408038567362145308927335063983126452181747720150744305891317082093838422491286366397382163561529227903058900746280005559231305399014657495622889205639338575546532636953366406823512827365556169741762043523524201762259509330198048515991866144129482651202792627112094788392371762853696433389722362567262213277519622287451950281297985563886684625701214343969497037222354385097978202629649799381957487887804727909606030455950267769254606952533745453446498267399883010381808854008785516478742246167465278248105697642966552550908017397338622985578996471020253284742779095504013788629233247002519349181045490748326695605007712248458509812741952689002796323610843092333658474108408722371937586852877658347336599975909317073126099430460733598547820925010683738565510084113800713228080414556255550314325136754865411707347831103680666901582072246531345909299400292314614747739037634733389157395427792453884660678935347443347627940689942279169361112453351089436903825877519418451688241948868474315576890886359655602534818555060833440172363333318536142318433269530835772424167262114940522815626143613325565915616298932764837028413528424769536880022289047759030888850901611196596189410325450500004573836256721004597966843825503473990687283269559170124962920741027532253070313718370865132203616872954635690973720707916462691201270500091724887881827851984801997205095470453079931884513589027938421365230462651456548099073542810429990959910342712730608378018390976037991958962186465663426018031070633821488462620861997201540019831175014911661893788273812763363038739105626038791558115985053721892628628003049561414567241159121902871553614499672459890063045326630358938932263327539819986670450115403111455457127333986152614742149112799076443825725591750903236749420742675848763564407054011628769263316521666088089904383074982423399505897018635142086307782115866516103494820049090838711360154956323204413042562960390002834509359502069448561399269511715122964859065387249581316268794620866850027116135410049658058051793256626958786372621668999743914601901486395148249849383182770307017780436556120598405609354113875917477124332462898475371798797142499707683213188068461600947472605301027420326366842798424364462933233486968647606616917177232032111970184817359376894991155416652630346377141024143674497820610855925947576090323507039244076998173209084973433956097857383000514723826321904467585964536547199891171009933574779739567656715568804306300219469588453124193887731002435688707668111486567580053290844364754515431992453260735885080061812806465924552706487453845025955903436676871381244986377650555756791467011143792376876264457721396067816447479029637911872447817858262378955067475760375344277780807839450360663231826370983738581630380452266303914615920061916307780110047575557960562508910949551320169479508709897800843547259290004219889487702594278122108623988979510792032563177823955178260381782748467623743701540881415534631966800471225039102094492810444671416861942320464916289150693025878979731543038506958750606740257084586764790824822881514750605186666595628741565610604913006793034026168242038778861942581535866815804916087731675060813147901467601679988943340380299528200082878666117363816604761674701519591556329848354729301643767729705197511020882448556157143729940503646351510437925089889187276968759016089959146120768519768692469958378161136691958955817109380615112068993360784781996352457232889788184872145696072900917513979305633953988736044206495237998195787590734208477732465619405440152326690545330013061357595744370622362052185813563238366058440287419811015113286879502632002967042059836256382746664420491331006095797384176422005009369657953915810576959160487149623660846743972543362542484800291175685958735379932093711387841253321197727433546878060824625904805701541664730659734680584055250888866376625649184161731647897613579166827650623593063558811422417111785167782499530217262883952123494800383846215690331587328169289074200294949352650946707928778556666753751694616365767927400529787070442120861223914214763098669435685534305235782187687713386823099412814248890817166694761014955591667199753767133455588849225772289522599133152818282219397888508700698679280171511148665303124632595662570843227687103141690359487956324647479163136418057820102702167202464014774687478973914754372899852526764862974921510320104221835042825016628412611483018714592265573010089566776433660530220828174460003735690656108886573757783092398667879654332869955779636809456170353179277688790401898503853307287723637561967678758155063525922229493376870972201453175180155358148062702790055802078718442917045939833980538433120835371325807904949664441400193455431288599243223378914800308492487532592093849962061187682080367150677573002701577493592919221691063394677149818456029496631586157426191896046606193355153923785524235187050791467755680737622348543853656918687292571053893137113454992003685280624698748436280296311027317466896273641990387849608937270126616481118661314599510146421118179273278675222378885806824316342203354792335525981581751560130059309270226045770267854679288086892489019460000648993272217130027118028369061132113213712413552135070369693013565752872011627707521633655887798389973003944602674749562252563272837128681542019374302177330940100156737928348992690377741934009432326249709655146276055184324571778524100999589887970111351262756816488998936818733366402372954134982899761704801379662009291724204808599134058020935538129868432530856710420358304420422770971584090770951633616725996707953257878993107652441485271683533845930613290588910653567595627668634357160817659939695415904564798319082216313416682421501721579530529954618024262516032220628708787866497311459716830778594855476712021277162917430628601935808831397469376665278719745190372271801873173800046882765041724264213564029615519612659199782402734774064578923970404385991097102720524731143971257575041106088577240829669291305194058166999382390504356075343447301024330359482484433437434339332802084612686719385710515605786080591870907509465553016700619774255528503447471186521012917040587249000271637662531983587963536100331170997593995467954287473187386643248042845089863742135198257701979605472505680584663585210179474482205760749460006683379983251406924400397498992151207508190375716064064127281038769613647940996261238341904512236260973174081083037211234146587391006469462955922176601276432487854287160797166445364741142088062078453622035295985451225400508221774722515003919157988765551929164388724886062966604251652408502091511751023353180371730308271881441180383065231444438935807539483244863262230066685978370621097836849680027846145112405890387742743880625202416555800365148861335830391607949326883939987646597898827758303409034050064564446785437794029898569799337769531065806691663242199990089064349724721275102390408214653406140120332717738916378676565554935864772308669950906623313282060879383324948679390268355669598577191394020929952750670926303368260885684030838048403261327566905327258952666449207976536541849264641505397162543385132045208282041209512991729718897445311289022244846928237469172861529340385866118917037368677097281825117411117525000336423988548324256683376133910244959770270613065529020623408380357642100408353975497528099588015266441053901548574720207523381018358949562010522609664425334520194656644226808494329364208111712629461525836452757352370300995855090631778211523664136203627896914115030100823561496403614755455338696392135151279893617133424693248451249316058039393125427904687010324676323555009696730957727619041898885148310019362137697231071286871446366385707898083376414961051513648695342133641284132286647085181796153195433029701959010934541957314775473811247984809371000503567548204486888295614974059842489835767655361719935674009507280067043701325937724281632709947689280318534544820149832198403269715976686475595558052382042997037469329280104865965942766223368021973542436218775927961352867434684701199314220768548073346921885380694549084357426662649456844237477137276921377312853377166919895622174359545278392726466520706151205357072535835325969539224778927275199095242735017272719236558512756910906551655285398647514990538326168409016372800549343538707973322158396026845220742234397254426811384749101333152418479403846122899819799311805205987868057750432949703912020446096259968925618281682808106537515825232880855847217975106934198352776357458324820185065666351578815556165979738242163452205020765640391248437905926246573735580076906950714026436581675528396557180703299773690915395325577797137781810504368208647761538264333176438358911117763005686856797984986997385614036652190076759716948804931585734502905937906439879047836489887990900943622335712528763930908589467207262847435118061618481580009113806322426760430734534954748904339259627111011812485774362776349092776673860104719440295846742926655305175078942861793814831603483254266238262423540614463509741069583172507829861963159349333819274941488946201585809365077788241728612643941404558109663508142156692894878482573313859343829497884355739091704028777143478448103336524767786416444188929304490046771623506196952244091224855578292897684040064991105807335424075307642595649341611559928995395187904510811987767603646907468363950893724026283896397310925688271118384463430071298778815472309071956288461975739655802340487328197733089684639683344362327788679549931563679851914080047748407404445235246473556840505521440931894082671280603680377515312471674404889980262834953090679504883904701480624199102140198157704137240444320543186776152091299904681395447432203508730458479820349231820049571290910907022585532393279989396232707323943871129694380373712383928594819420670441012016415924375616936658807586332563189040546685697289870657004547732942193412072836830925995857597540324060939539502222430489712800556608221502183453712947197649170358173919901628338677227504594090946843845640007439136574221513584169243025418325034958644147665547925471139305381276951871637244927365436671416893192637334116734220529597249149637298570746141842829144585986023074929891620012637715375896381382729742127067687442565266590279641857916649000028056289037077520888064499915026357448946226399770590851723090193986064467527977521703022670381711518675635075590526784143899927549137011295947386191762894849426170339546838867620849265316657035693576632288672760408098965466575266908099661646512365660283557599226605190832110374170228959369767808282979113869127586973138146986866531538159611977005535943540957143244549677395023034629593214760691168673844857198385209336394830846925642308224012711658100962508120021019068704182781360182934825281086472964361914907267667121969516965453400801570446267481603700682241997932244877628064760318074311495638351774666933931793201656540873631804608613976648840552610690880150052985295516794399284344431611918673299972544347306939568481006630647452193385564358775834285308537873521186724715207587602907323249569815747586277768431874212086496641762955678843927964416645938257824404506704898924602798700297435281318713222272876851936207857786029855154461475467159190062405669778607271383299070179161884283895042936981587724630330803984759307912550750543221736581193133709694974616456545649408678471984674624172659816948565057131514480892083734707782634058552403140212772416156119854506751611394641219665321778409464796929650009317716288796944152967511758453095204287566172412167827846943242875147384114307197130218214193979502984534020751689268598697692666146319712322227303122431457476707606429151994288105886033279369631343676493682525970766256157445084972367878640062483686887920212608122408213123814362417539655414987205619366927990171519995281882115772262380221876845548203701839533480861793952013051519676718480951605011372688922296850152120098317356250518616280858822382425788148416282889137505611816205185118336944138444149197204518443010410706032679756235936472366790434852505321363244543981092867415266281597619156429465896738967056309545100262549768327597575676488262501306327131834156828568116979834767650920683582938025385638254243888347193958205278519933428387427277522231161851358181203503872152004905641560440893346150941416736182415167569548015507130891423263555391779975894965970415458178022498995768655889301379555140019802654279936362776062772506214955619340005650153474846818018165601833418240111393760647745327308467586231319553277462105216343808887107480521286373672380407445061784008606191926686454138155266501010677324690164682141412808541475130130647455698842597579251838345096945997697033378545772142734651721920546177019521466027292440270669951933476054706520841818851887173452796179888145101096565490801637172033777714208453093892208429718275109817108615606743148798188361692994445453867177500338934185805576256188175290547149445138039426490468671290988822664414322368148240571365842066447330800458791929499256538845530388678404687915402700603730896906989626592902242981382163456422725382187329223806066166402449069595794192255730558054834818204191950503143747465230385216402597185839154758059333312290589101841050441835461984937681424427582301462086666487756490521128596654230411461834017887664290434310742182048396018358568098897753352129854335693472284281081875581354667392562369776348637015981205841775670619722693573850775610399872477375193336494635352933301248973420517688243610354104009606678481729413718657323289079354234366758203178955756433375497729444947716108434739197332384281530150805482908719380161734443311366925386075868053581955167168165063162414989451979804638538421885739450480324201042965497981024480081130856099222777095668851053441761594451090433664009009689797798816959749961310697662557399630135470698090191586080690756200616149927373704339296008760819467107986350604002733289403655881181805753041682276369965341238997989603233936944312182631482196081634856918298619733897304952458479184652402988344906759181433209737847270132190797438120770095368819665159227751623541054118350562283523458683536523287785317123663321548936263862245269365213347306256385648831887380223520556031098770323119055037727426644282225168395238581808581195002129786533915246757873024511276517948786071225326578043225695176402276668854706939038732555851562062462693491515672588215852809731576244835698000168185350414515565391037476619644875020497642949719810861093682948300054232231031136603019811884636188577470246077870361826142707226125607582010932109859085086357949774066001409118278684238814933062442439625397710798375933999212664351009727780294688535611300361928384696618823817466542895490897646473391701046688411626058524471165124524896043787554663842895849979181965226513768945942983615441190361150627151436561680831740343202660963059521881888334426893084332447905839304101314380952880857356349651583959019708859783528245537779328267280096650254765969758467794605942824377416759259088070697121825890232692626438726106582448630803383412839198721571690425513883447487854831386390952644114319525536958231634360348461271770994394582321265905958055004352051461824055826785333707318523029040533220836636940019042140272484549852833081920796702018814443210630196305247858507226046069366613030119502342444465401769184523066110649059159339238912083394008453191527132038467873681206216094451876155727839416632909456183789538064988380527231527658149542039298073534962525469906684299265471681836810913195394143615606131411859016519913065467571740838994188276804656290703414651506264764234933762696638797796632683583396061423845928857385795342594790292994936305913398144336448944033529139325092183465613180469087510818565183409763440235685497568885896244602392025851622977175332120843720466728371407015320361769683540027973441481666128412427851010978188146953131947844199216058678308001847618739442048565877415049964154987266309956284082047980410428597728211750746400500088608379375913525982483529698623130088147186438315280149157997103714022530028599442622664677493380336185758920004178263277573395567078204025913162612967608605831689734827798151504499568060411274691291969241838785918058707622104362605950107397300479517552781605241841308692023154767920056805992389261228372284123733357235594678066501609846757787744682021736180832750324914447234621672354245057842701621176220055975237702582882668873175805889973352392322653951155811192102195865410672797224769139016463325806254883810045346669354245991253855726975894434411607521594501089255859633689268236013870926936225822910566700566907223393732256488300696940671401921747545053877462208011471495713378309806520994306713024246815726440636054612560648653820447209025422658392273149312330904869892410131902299323545758197848355358135240054555661917618845244010795671979728811698152793635143700225759160787341398421078374366758886513234065185059218633128794408141866306627621528796363302209768699832601020465171596450488482942730601875093745572675070370189564706128076962350782179537826947483597720220311778951432094762491122169540929713069974769282022441075485011578342693225317866258758367937302627223698392910574745568522806599642485565530670412774848654790603266262923211871722745827106215524094762178693834211846463605977315885578601415651762141046109318827072622914591805044608951127263308294197883646774191569235777859541002374719879240264133878207444195793618537607414118287668994587915144573444376874730901573253125004759597609681494539726529270545192584109600063505946060129603218381207696324955779243936987350654391506074828674090013981962603149342889035292720405422878042011367376898848793919318308841281290852082755689987416535588758557548005634972992750230093328516882722206106178412126154866243836450072000119914705044756642420907594641681990122785938281217106320147541074594014508245094123724005066720368365697853690623132116495474465227121355301260262381444167635356407709119842157896201441772221816275992124970587636460337703899108038887921918654153950094458601177402117021605212304527320247815909831464726172572287721453049515359684807267540294749028023578629724296119995703078491969383918225180389430909036712319004171977509049669491044718399242771419150675189840415442646033945330589981758977461715816117419345526824819596176988546534096628844815328118339102453940064520537287291144986553522283950846913884997780095728975880982298171601976004445396987063141547388377324284347484095062514203800281643161060935887323525588960555303667955983741828794391983470260583542665745356024595855099956108128929152373159771662835669186158753562959851043199593259842127473742053724934831573404339471607044530352235281536518948965106356457875104234697746324583551363583978672923580555730702728976380918187314055119516627659447049095826158775342528505659698195172584013154395554949332649016151353804822719976995777088449879747983408256392296949110634815964881142784720047956726582073132591046964682378542359154347066882926462693412264590994628886380164406033296470827634261789673320836521262435030289042229906368591717638592156384131434476093252220158829643739476056514450049235228298034796863924043166278799707752148483397693431572564358706128195808211287905358443837070283713454402170363667206334301265683984162257920463426009916251314187319502218007434360358323467414388289988645468789460940842154325504292677848706570343760153439833739321728750552337410051119416672688598717390347912807667791241463015718416658162579138987059703093444547781004941166503130841398931449853837402445098821647783424337566211032723110599628571399900239545493020320688963095137732255948780171538830205908198225679433032586860396329698325927822758533003017613672505177094366776721146812275921423380049930929681219706607169439708136651600748035995841590209061055440905524680651388463535956274970081518460654329086188120020498187579951569686362212621057617550681682350327950882310049090850534416641345598148221313639447930999269714658858288322855850857209653015230740798676660115006495246644087135086118713094855029712014803871921781975361294422710751111669553666630506915108077431203930193399486282927201135646565068453691172824787620384392508498597982262538625184316697401037676285839105984765558244726866425349603923523570343145930858491676646309782950761336422597746127962905097320056289199847650226728387388560596586980410250195205617620120835447271772499446990337529450398765131823977469761197436577134736722094889069348602009577806129777592273517999093885173778477632756790211351752061084818911798971656164735010903472750087785815928252229054649712826652161950254033141157169864855178139996171832934150563233398659471462215982872981874272368094216242156617070619316377536570670151699657376139296659512851738423733033393316539529842925412180288756319122430733089850668476544951936139656762659012901142333676963866209956654081818110643354942035532441993130026699667405173662462001520398461655928240728618673773075081872044943206649763986682509420829906231908199223068418838091280581263428551609922570827762962786168323391109261458767476247608359660365889054422239376625106512539911207531568577207225358388374153462835058275701134589139231072704802040712624156279339765566453171306642751491502707946643239134122202681104457474496065814928067700325451498585566995095772235882409154311065515746259519471179089656771315431641372406393908839896753334149950971768627230212435177083124821847224789809655420743102860804037188612853922944062681782581682465186303863503598419616639955172503547249590537850271922898783241748505564574980036584065910685927666218131021596529005764906526644733265249667719007402084064609860002789919305556001019593865149964931206854109488337329925401104762809726577840553816278843343914466512208001890758903584385307064137644461355915465898460398530154642500973043618326776814088695682561869561719189088345616469692115212491886379773993990473695910791933584500246929696513071028878521199482543031569125013992093522708502242532924410997282457953463582663302771167830201735006227686334013715816696727340462656937238703219213307739453084453145882429249742793518631253028946400888174489752632954588204485415326255502867722459260056851910090719666170399103401380577202333972455529587018265709972555958220414694049686575355349014130833927906544586083478223544647592860714518093463779033061684803640001819404095145447188160828418794892979360071782219561301874639005900910162552607498092543395187890256230908343691214168637631517013518457718582311951517897059042342489099659256094414388606721916044923445513615364963720019856395335500167555017817165607451283317590928034421796337527994506270403036824042601309156663110613307155522029780937273919281197139517393727802883671813765826595711120571225420086398631435569219959808717188189514497379171857564314227890129910996303299120956495432210277878334725371425788608738395699779290947868795673024627316572330043449357884379579557695114386547903949251407360841649156527542954696671432099768095207100962541290165534013952011206752430227882926226539120668127544285241711134987686655735463211752161313438260210059358156364802119186782935288279047716882577765122383525066178567159944961509498827536925093473844343244849062115175776585724663748025312587425034464410371560657119324911148930434859721417403625443394536878735116207316077898634213585013117861682434999927277834558834064910379466364407758897640592345374504379384294481826049652612408523029904046461861452965976963403326577351036099046270005640486409465813757142213586890248298860730347837594574620228920285261864917704467447751537712512993946270649389642538355117266937155529175330015614786706494986075265900857292812505613429958579778085620916674599742537040424051242731225064947574370783377482823754875987113478063680351035337175715469721286924582351812188914262691011433130358122093416413903430942628082686902302307630027697897178129903374261106394006309152966875784730561572979078082916019466584687813316719042938883565446241820190917861393753685643973534454160329117382703257320662744122178453018027953945211186826554636116856139447293276457540652656562512682647440893959436162109974860296315999957231187649678505155345244430930749021521170458484020341333328107557704144297702154642891546268398218788257416500678352934544906317752778898949223963100551002492142916089572008176775104709255402975539860428135588456620668947127513206843792012492606614683049531933764444012634512639213716243498895637613401035852640121916035241329223835458507243619826762645274832486466778097896459956734925721126480946357339713000590752731579848546741139627427744579845128785484509863504808384215405283762663270126359477057085415095955708792659904223868478271324267747143802859789372131970321300822872990461209957878585934206571874587182938144319375741833639283773731733160065067501849118529082251465640200365549476012786519158998049159342124396703373689221973357338833158230355309408627857712137327470775429197762507893459547510902321000877030900539387084781957023897537052827664856700836338516425270015479091640204117506029868018786240504106595339132882439907182054034731634797539190174196738507233633743573919092187187094803983416234352726099987205395527389365077866304581098687240146586740194039279121481363624520092352318464972263697235383746568002521381330066478573471269290034440418958662288595640317628974809740243347567827597449589868989304392920204203993393126108041548482146946725736003494132511177168987004402779428392130052128457818641524328895526038637373107197481465796685823611628076369888454828014305346386475412837892422771624013790554201783162099625900635975493021908980144165030123064493207207034127806067051225369185031075799058037723744017437761229636760404399677164248285158855933834702362661239050731411810902104300937422761894077396638411192555646982786763595275305755013551528702600963854530997362055160472411163661976435366417730723041125489485557836583420027750036371938656335378600992967506340611194480064998045134105419424851327578376652801934009450671358651711575062887481858642142449432670962112672590657890332762916908378784394616172044480230835265714244760005649832626294667026206888676900990805593992207200185005204012600855088834577079263550577382587045251011268774210237556195218353959859719480950808132067712912859068338084737025714242365380261536780092906513523593157055535468249192231481652321640258401332041426098587537062373481693297840144200975099406910277579406855697015949418354026802550910210554415798461237972481110254456098999322344174030221565448074671984447563305929779600296300422004354603752293265340013624434879605807954731023552732847811738441285611686821054537332126951020659596782927690873239524123503403315652420318906896679113835129183713998957239242882078169194891116330378392936942792512378323110566127290067941368650040472568882295449808810070581483213537440107872111754482947585400720060467991212020002195843721017023719881889243709726767739652401582539274377884339295581702639165406407954897036310152549595632382628417518134743458739007592072309704576351750018885686240324725986401990467669064405693020994447691619826325102167560467359172762127922173746132459869469597118382091144558995807305686183254545531280921233213271124375062120548640736182611399525620359866965074680095501317219342385057284716546980250578645970659130112598419422853099235746262286959351090112431514629132018136097371476960762915929634302070371978952173516126486440599118216453802501817096124262384686037080039356278949359280808788034868367266968910268619412576127490513392422266554162844334622592514756349103147291746379793641700016117714038829677040682075182800470801628065111088408247753511580446545479526530013475859701152499716890530246939208147665084784528477990180293562156946221785674831430097463491693071097735451778799970393203683987886978639226832057988159994906328643796886869744528311651968359548215147908371166875842339954515099410256389502289498510275977052852236313729012337177114156308600830453458785169578438421222388964728183495183360729936405764026067351819669241750530361656939273819656091746330994589600023238329603914614940275315651194386670137494805007443714599502798887287832727583955518354703390801538182611433875621975880557445356388647643646405151291437130195614181479360001771335044146297719889474623373614188075774427707776563062983680552034343148233285157362131431140547101933948189342584959985997363277847911746569621557709847817212760888003006824122879140900532600541528764644942188802814425429465784148886532054253766318088861696214616064401743288964548740846336363530123392604203585967801130933163761538461526831790815627801282617363196272008435688197495262865838131731673678757515672116538056426328595923424432181415204412815821317798124107945796853079708671543252996477839430532099676563261864584501217841086242759212086968532044177094769894624157415785266270083270642799660514354057692560392246068320094767664776363918603879768056040081017387497028183814486440169739782148392535066294708361814579266230069981962388318743339195287896576395123707275363778853158376715515755396107349834663202022525736623955468777294493050413810424323368526597445270413272227479493806102009695843954968160203341207184507370117596690888015703672970000974104093231929900134675619902160021384398127532383247553228496835029999750380729496955190454147265432225767928919188807870419565945872918289541789278504886231451894048156737302131331815238859528087509216113744016659756812320554243383372838188967625445198407073689932810965975313446108972042144457654655845665367875159168092196877140751191324305904604710194819848027376681525002870891341206278093099816526319013850997035558373670032856914145352835340019361587118864932640841598743507968093207583768364267974895378645305635251205589034647587972410185190728108587826706904483280991022270724106692987629914481395295330788581917816814001830591480269452435825342510756813980277790644605248535759503498177016591771388306771248343949185384339107783521436861020068031639648164355796670357338859272367423764263372006748323651795937883093373755890903846724766694067155710981937712100738315532439104839827594452686609654741148436501135612515776194507686524846889417065870377529438064920568496153762935865680685295152598271699094841085780465562461651650894098256070654684787334366936230045217996971686243565690567480148468312079657887427807755466032573888212307652281587299378222147516557330608964858207987816326586676948842081178588461038067195771587428308472327191451255146707569691822616639779748444554755725681967917571792644076377200362408462029582588747009576560531164602691751780184763109538279162397990839945106202626372945919099542063323839993520149627907962515071945434865656187457518074971355936243741505072489188194866666718557383097040762029262989910775769685184292803541755293095732163509231971056269726304332559950365045134174298696352323477177526684812063475318074167102163054630543326449492159295905566092398508783219751722899984953406997356400383640206083747413763343720087910603436956053402050668282820826020700932201883749731576362147110380229497166766084241935846326826720848446824691982444007922152800141435882169874806141947529354111836745922070306629263943893563698095224838109108249404486893996745164198029358437020796655940343293487533963340047701553679596978474178503793679081518966445490670987245012568748083473126881917005223622743259291055052813134702867703660274998088068862291565934713919449072995724498624444384548790811450034631097817120574388172029403190746591633334520395396173925973571158690504708710929023681825784231288382102453943575222489756515075886861882138907340581398498720102898243979395264221066552478869954749581366773079830082842884678667610731146299185602710554216573791413843738302911983620073717759734281945514255298281691623024414468494839587359358709119824055638979138668937227249948451362634027186466371472376739020276832665778146772427289226893409309850334821574662018795919514650392106458802602540064413390863901145456417256964373071179388204265236018056922088075990656369220731377538399858825251551187404203297558477114256184781008305481673566160909553922016512419738700627476736862150809548495438754315451715162443029400392357862730346145156766264255316557907439634819951703812041557475449774182411625224521980565458826904240968782101873766557994794139726013216589121363410241362180705114759320232859442348201240142430634065568226315796503232916313501347696826391712301746116725513503285610571938308863943985009988043637305372764722578205316900255253562978432518381352162111883154257934345981630538477698567819835489430344880407985546817837968421547944852709277818535348544173347491236086009503805399970093506227872301054717442567907432059043613612088821600851823222886060051245482692664374742510358500021909160121163814810013930919831474798596801491336084222809390541950797246594866564394924597110747508987112501225244078868477548974177222529628779784262332564913209661855383686909989441850589204860182524139890081440952950493265057905730516250261115476814996795307690446185853668116897621600264584853580677489774515494482030423261887368499212950344055124281785668370368041941121050220389540803957008727348208768816062819268070146972931588337217968100455996605001150784740571372093856461549398822635138151505524404474646679972576679985717002274452988665896959961485734995012455179728569364987960137169442360728112149193685414544452281199176497676332381080117290341903859952959470695910577128351676957024549342071494149675505436871764545663836643842613077565941533981667590728905257589447259965065934008672600332786287508892069820827958796834950378652931672926069218236371480044030801868022570939833419023263468627785335604514013808615432965142727854542110322358038803979512625641681392620276103108619248662562587412845483328101911541710314507040205154975928173070372031878239567084957789849014383950915987119658779205222345520886270858985108551548213389373798519994382974789527910803454578106510356312107571092037825717460344263530654972997824396749631618376294759558888806176313794781817864944719523407082173200824480887636455391503228826847915387806117713317066513161728982399838655194961872114613696483594587087733444447058939954781111339428135636624455290761644208227866872579020216417298764191352034284627755234215064208766248302605096318440908680833524080889715996970129480910160533780391485975903220789300891083310425146297983683454654078218049468458938428913425741308702568527852643564391697318721131623661697892140827217240421501707240390076147280135250144949370332296608691352625211793342656203076041180523879694957864455529023964831717418728911922022026246340611600658544550633341532684926108343193002537320496184954206331329087977390106418469201852922691152145333787082773386069104051761884407068841255655161899427318002828365196125420635377019677441081302757817391426733795579235500796586249707327262570153295214533068685764604658857237923302083523845092969152540985361605915483973131806400888879530478100790264675100524345475064920984148680824798157391680686027236987952425596508475428963029253449361321956313408541065138291280641301384354628507817607880115456250288735238363075467097183755554911492336338737372096671182219027413883132095803014485109653985359018619906568874215643474861414714063061128224847483002693502530337117133931224287956363803757592554738709507823594622231278122616333028297482335894935580768201787297184454283038354435704384088874676916355397818779609587407038007658858128417291945888497954586177435989417561237328939152885574883456013703620341292259974728018622594755582044606651507214060304782686380098870408037174996176625831244201890107667763666875791733422989921366710440098247631054138507203256802254554561811035077351098114714860033482022416886277504752781796403744831004847543740768974445611769105732833465471399186518852959235618737809312834914987623593559555006249934410856403629690776939859583181736284686185063989151998070077671949743590048213774611997765294170881999747554289251399990869237156443741983834870417773461401422396387115463253687369181210210245415464234992755046426005936479000349777285986565093171065301305996305510485548961335695937114982467753744643306663967753341204651259529754068412465973184595912601112847047542955589913621453919366677730221573735760108003764127207551960430748855113578215136304784366527634909926246969788493437191249943445495147957775159632555731582762007459032110431268025047017141485864322176005196748063577089366174588960782558663746314110808674039465562902586318122612373286040505062919567495558175741460058130419483261148466487023965913568983824064303124500745063629642829028223773747520600756437029619936945922488830224718585766121630931030550484464621383870019542291121640885788804294243673080823948289108445859556370005385620624210214190632073389457758356622934181893852939924596667659116523130784608424317647449315841472520523482414801888671938937519740765418694226080736130543064328626038324057762875147496214885733328921579895088730373099384944778442991212052420390943786859931333273476652610649629536822877544241579168614067439818635773022122578893229168027532073201499658561896219175524611169198014637239169932707340531623575588984437159787010804198250187263249446489854327545051044605121770989918866853367027803910616588957452096475948011158485411101914740935013594248932354808060227348596198846238257564504907127384993231080770508213791355192315721303755340034642359761399307273122644963029354634362140732386938056391259542828785461553834443411281399585971847891265449448632636253357079489047283256193646184401427996720841187511406171794068002862846724458617170727079322438831126562674274464443883676650706136331722540921327801699295053938747183885324305173171144775796847006756859911860075080150491298852743316426923476698539635021085759018856164826427827218567521186880788425122036512715943452438086842184567611352663255131973818587230380685186388290327676708987947349049819142183897384176487544290181648104548097732644672393653759857078667138662194660935542321741522724125500543284414593753130075574468568105324747102180102575162991755442686729951170820781848934482843639173133661747252382449016932092159733619919094714467252065278710327755347674027846637741936531213215728574534366087881873614093896568784555907689102967324539275273700041710689730733098206616279972873239366007203731154434583866142297842779999566560903513109488889356128320619911032623346159966459730280012977500108495069938949725966464120715767275379130379509495981606398383773800672831635217884655358488548288060092218560224145427111725234557037734898171741595324489369111903198675102836810358232120417971779883509056303223846026920445741930964933578720609814302412358018129862078936099378783300982253770946807701300530578897941505088834381680066602962636658267994577822436967480736293076656702688152839138534873771821585709702440720802854531605838564856322172380103982321388441319002022339233182099751312984384634895957769380520101466235150707816742793364996974024446119447385468452250881203770079870438588706552287021377891031862305980856896767448205200140707338718484492834114428697819867221815954741018967894169979045130750869073683673579537217651603716250119547136423360341292529233711671628412197559979981534818000389497776945651052943499743358963817157949248630570912040598660296031298169031379521463220767517068101043132510289560483241554420585152233928900531787534852214481291047524563643225098772126029920113595752995957570967699748895698388672772825349716776610719180113942035262442212693504852716234584262535224357495269153392741363398494706538299115544516409611381152374382578989484318020617194925059703472628116151839780652405377807847514968436052252807471193149489488339610551556899337533774849703576879540027708227935152088142550472186369543464566554586124470097046373148664179589046188008531458007566435638493865871027731565536884231130265826603362690294000096558163975408046697428532426151068888326218455039309240502886961620329149879481009676576110053007608036967114858166649145305909563554779972288150978302811479144110053353552721762634583901991520829879847045679371988715531770616590994918667363901497842439964501696008929760367612130959021503989806554611267273735434660879052168100855248150399131834945099058979896789732739921985488570584684674790064457233872939018819727942098825889038812885435629853827791281223308038872709439863666289125342101506281681328630926562837517365282203818353013095553416067468887733919406027727291018251140780517092409748219766500692348290167577324942160888624117374408902800783780815287701091309937959523560854063020657047116588597642923828841470984059641823797366185977108824074596708538855013445634826347115734407861629513400217536817073866148580215546471086235121131091102397096853631362841160330843643503058603155662925562562902872329267085549702690063686695443564827719008974016991268225133187955400181336735180560996295226821699494646434657135764199185380522779509488720732580608149402389797013611290209353702439324266489966948148212538193183010304725551100897980912999670653556439288949747238420904483881945917793670983462519417061219300534801865571491346900274831822523518461755897647205400657921568012282403752633381663001525286162582600017040356925750561084280358054873571595378082735815687227187558334743908577399630934187403788272524651662447210892330525590889902183818598674803102560575294161733701584049208910666395963554064321761204788230081309978537333543698142577061047893713990243877539105986577311705543845638709214908302112996008615405388503422804202918062521701874725924431618470158557159895041829693758941082626971817888339005526221457550442009574712187650751194754518896716108369048276534672421123332384258624985656145185982968563452101526916995107712630960092947853054237749548008826593421585632117152599311238266113829857976507209671612581017561118220627978355618455694693490250334358026713414822508930620352714273903419600617736596984675286811118923425785926018140748195599385451447717851177483680939985487899200030682367909611169757021881356131704999754539316765204329513879417197364007347857244977054616186087449622419962991589884844048121991786497812631480872004655379594990957902729532905860105525959049228781487135973229181111225433972773010327623164637049483116217262254675477445007980054438032797421063440158919693202595703659583780525819101111611241679936526424174775208199490915787152226393535894449278052845889909097978353332324311123612570352325523061198469382110224519266503365842302127988564179019827717971622603486674968668456053644614382706435688291785905818705229770995512629843717632327874689791971778304351119136730441138720616137082518147060099264004432948011989767109964151576080619687275426656625717054810003344496652931631856536013911861896051574058718704327865509092467624413717807703346362496356818017865411607844059135678178592609022587176457734176391412400860514015532116613434305766438018859135729241313143204584984978041664178822558635114701682892241196014503548556484059619655477207916275861886441753428558341445382113744220001212282662844583054071239358903929398316155530866617558039958734347128423000624817697761881536373991552625326852641378710553065355969306810511879908431887756670764218508582816868745207460939207214627521556546055280244244528462140386051408879099071324171159068913720712576039278377363361915229854654393410440312275732379503400269840379154786926665463907066876895492685850651650164462620418823495040823991834981537401104843908269564110740841000992246179335198445541850197954195662019289525464492301711988464687087079443069442373411869060349603531159693812702078243765063889408624402422360135568664645608549698044726654690229726095527193031151720615977805247836995374699427833139967694590673186317042514260670959432543430717778084882317258628519416702314542485385243484125266067199787606263772023570042723127933057186649014910147078312757418705087425347514477129171118325371387547326403629497854710392712964998434593597574590093623681970752808044620106693126858902818147504141886274655581435631070808450215913160917053465936252110446391360493527630715178502329918845338224830498332317768516460811918948640521797920691108125821895130724733129497409375515346789161753793026823329869144373832186958445411898987766296498362801548563633352310413198453264075266752750357451283846011267892321046278172396572268256725974610168802541185059576793843024895219283576652537361741855631401646099531956544613171383192066310237714154185411174625508140908587446716232089947592484064523559089429056655759891177954682945049328176898481563551946512021928855805400467152942199868704713417511318566500640818987333809844377823992726448962692115420611769231741609258400948748857199329423176572906211234305374519620946894727489150764808034589112504434989653767655269149267605410339335764850629361788595737302855625493967888480817933940691915899469940714316560308643534084047263318438051295269619313233545254220181866271701080266310415077856304109656076796588428769381696856237776752119255587244418959815676286819713774120235345884222959379686316891819394194351076709360793994001681394005724102837724284216481886888954546999473270729019868770068494160346327421719947251064057696597104195415700770673120095265701536473720659017121672018189153676163215535130351309418565082175681174692524336665673707261514181207721153340874754673292542737993552168835301164588893223219799823414158325657801629528800097741766891251094068223762977189071233028960699312525594565355751262832317945576236271207989444563896190085729966526298116782865179472958017763745880283810203786026149714076128450304708923602260860715514976180785345464705825861951717896178211221901685490670466207473376464766288174458699717537079018888107464923989275424800244291889075013559446964678407668900230320072524385507015925410363577086288068561757885295195406326898302930397031281705734073429577559428900972322042944300354425694016716181213424140081051354357517490315393460498254124959246041222564800136275362759784110654869554206491088887015695359961097129199769035278398549237688540499820236597864575201398650264363987974341443269128367004730871598462552645832711257354348745044094510353148319293043165592655927756488330768006392564484338467413186997268238155291763467233023493337735690029244243008082093288814273303392083876189192946658327581656734104233465500854353627963123194021734948770912323488478436447841657295534604323756686896228531646339347324913291691785791529065936301257474498387277545312256021057295284766191556384442944619571945073590916444041849389356177282332804231502198130429312382287502089353672561083689316640097969943250016012436734093936982923848564205760096685000258223698038002265197659512322803564954550738962981827721049796186287317310757683319872051136256459558704801018102092760295934308099932985115925972541687086492088827752159409114713148464554360646704739768976528345116459421211593154795538281707389846130215913897453297268720005129385989848391340059659940490669295656781728574008519344196115774614784810362426776965540583360943887414811348572424938374728819264736623945835316369134810155999565325152141973046347745882715708454894902348180302688034662062262452735757446291073709165128881707897456285115793912949695110229206930199710356746256148667306646847675535089055173080789409462481954413488792699759285941066002206300643944321055755361693007870789331731502607180961241963977132149758335416461919582207780572589846370253980320778049793453523437225729566421098438855043068522340851676625358224240742775940135038831695276703353970075746535013911140357263220172548890921287306837519952477239360222181127224795868089823763948935473676298811098147942948424678554162693746078844282191021548160305357378074955136610756583654277364025735395539817514255304752164772205106625087428864506746313389461630841051372170335599365171686387116951160116034428716460842887447287694923620085070333049393709026950291829625001538723453686050966160006903572329675495684969544310430636962226417813317523137128977956665445407001347364930208168927402707487313976175726273899506705212158928763497681844404352984892012774441117254940820982551180226425456638146035931648010020409203194149852547773363342327554079549714266510867304836248421548530329714183901110215815662435709860522214504473106021964032701242109135860182818887297889201981182863185996348686594131828905039162611126973507375971626301629861530781111941083794419518163262239943287616203019789491032012331872331795872305885131435126140158917350602861983415507126709390474713302445968894493131364754958465225114758679545633035349179931034798231442468655297585450603646235906106309550812665536243989706695438177891882822340694520306106336721170016568522725552815553482201977193983788523526047717426379006260772172750389801476756836547362853492226149554149494498481598833531976196120291865809566817755126571173930062668249826950188776974464587184386620034509985906223131700340839049435629920514001048951049600756350451289348592226391309945075612264927702135625288763089441405198816326173351923529383472702391697628075276538927253811795895345878201566724446718626589683578310127339216773116599748323390242200426097435190473030854704186915421241028264690918789104388087820694084719555704368159383604784891333834433852494361373948497643397299124037358366763103958023514730319307577878051233236295725817601304708521967207112970137235111703461651389503197709845837830666607911612937554543912133375048009933931002599348803413385074693944677511121630399972721826133626809087000734437218104521325110229391977358999984720269688994204602986404750238438690867237638265306924163066199238661676610755643780671520919677141242000037527044012973026013411139629002125120708139129561053099961045116629493836163262375083896642586114481425781607844841362216764247304507710090648440440232028514009034590438138578164867952482094286044306547187231859193703344783131885254581623155379263037588351575544795668803205587656215342173007780687999811781703033183246529345428428499217786225343683423085540017862102755656886665839630679461136978399336582272934388284283604473127708504269752323091276356318884324885068454771386464603244913368961077487747088634671170780179901791122318379227525998006456040575226504129016324125932169020165998621636009649897675972637409533103142961730206706930372459116633473027588052696990674921038819059105515250747654807486806179942344717420297250410772451812680913873285630902925392692390464108313894040211272886390936984374953439887185694679255796326922311967741445604490456422653546959127246601784771024171233867020491900455660750437307098065425709392430817639986954289044770724040524434853256337987029369996354785183259316724280712178667863934043162400343465425088701329587531877059518275968207620834473953488340358975094539672844398130333426221787154247981003462419587427287768819092099786182221415514137277298483855740404558019498503050262029273592395202354661567310745066401425898365738278272089947880101642302421345435733024818736322850364812970057328055925612565532149106175426452309298616657885743687016168809118471933832162578587401511885548638843182385617870807037299356493610900320689360098515368095242910235644629827738503669647897673125653362431719915977252172798170324336327321712205733529170178376771283083344677821458495891761287886615383090447034403991880709367959344377062141774444030592457425803822417471899899034672424378982578348917414486157763590993794651455962073207007113575290613629800951040658289038807510378272849669611285190419769341348626965588499114597702126454446849529136783419782390284734688828421032682327960653629064221549287194969870343981908089239801422244953280846633469440452871836805657966811139354624521605070403193812250091172679607316444097558087029320646424990218413566681402391087586973449304219246422410998509699204631914893465843640959410437186816106697322035719763571426564766737951897937440272922318608636304935314384440398523171813064607955387991553687276003725974332044200701265014140386786283311628015824905286872967911511526045855402285347052133436082045096160290254925048811786117479984369782816576249655785771662850692329922894919602454182519164747303167103381261306137234732439732185136209356326793367077253807989021917526839141432012645140988349510199430470220420356213122114568637027184766399720403753999945797611825480468780761881332756676959664121633028891726889534193175806512605402286573973124593705172021912665686106456594627123881925155541999288237914095565391429815282921894740794223889248154986366053749992765015074720409984570794666473781766361901610821715714002204301700646163288335977804176214698016158238972778894074083730158351461607200634068446523885665672477640462919423355054412263133054434834633880057961254786296519135529031383153654166048655317805141326906686260259446407341069227089732816407304141473422729666826067596960050027688546980094351367621890556808348024033262825838504267371802585658714404302571501753183694627151398008312820312266085359980957001134873300875439087227118639586204253971797339140573268895650742264974858978464040320345119881545551247353687026369603627089263531429430551705729953319065357089233402135466894433838567908071810292796918890812155427634756904845550835507862042271915838175254998188302251442912164187303708136125403142154529771590242326833368919702646000495608278243289986632724519176731669382418077723450146461182728850923981991576794988373912141712804449934923768148562971954846085962288933413581249626084129707654714137069687328019678021707191974334239342079931648311909197291977376915665044600117338163842630937428015559227478893243882438876005400789113137980067449732697089134557404293246606415994421558826691867999649610005115351661438844971543393550961036345710409394650938438604113608371295728001702436033552233680623313424809648452434645720849188712142434638669103615184835191165088720209228877449776519025725626494506372068796473987947952617328016714519827770851697145188977303708923458202585025800138513923142954925297734226774928171598952502187890461459502209659864808568032233079164386981875350183848147388462291440130176567376922111992100729485343285291462259618330299157678958410884129415909271099463025466383921344496035492287897404742599248716457744304591428026890218313483854928801065570382847415905351829727618203242702862137167262104319280573399000972195722623998038257329009864287948638749243376275336426127987817081417695256149021589805902280192468048023247217690040709123522072586070294377607098935158802745486836545909820468003167802795857540414212411369416003502351852759464303195430467749226593938875297745580797475465763379386418376057595012502849645905018154797159601587107796623457231305735644503302157942722179210030564790968105809239052730778781901062505034278830129825418230309608718673083287712771998115326487068391822059226031845139466236438766015625561191533909075735243804444753958391932482838873237265383812369020240858395841339664263016825969614256101531679711383693489468392600990464641471391358081137022932623130190834562890541817007695404647986348006119650801101861471976164614070766254934705899673486716372957072566501071945714365969755264356260353393652573879083829936029774814769366154549972694748004719631360682554920726689269079121043429186508035445263966936233966514350877773029774788029260220811714112558098245574143286520092222613862697945482822754488672671147441326956394373802601422901520757451226692151195718315465322530898617988731485412093816524140362965948753891268291359081019173464586652404438913946303645866323919426973370866672320903408418618742082964231507716210409162448437063207691704576164527873504332541919267253812404779811912316927639204208686086960068549222785772350203986147892426988565388608938225886194752293091514917526892207147714758993825805353227943455527771202799469024644775974488746740007299333658794082670411699159965875840442957804142197231061765337801596670490452108025452697457974793643016424903146719475055204921333290694300187563789834724290135452559694774704843781656956516215383694370412070294291125905026061596679878797497697219769730171447463136370349202291896085687259659672739979236642529336967186127777765006719259558866811115145218135640791990328279548152229217360599105152292161257871281218399938384225963862382938392533875912571939028081271972548384457707285773043132116185526238018719216031923432007393744517819442012252913800449942196267553249126514733272940748137748519548004820071374121778356801507875751964622804976463223223914423627167666914263194951967411128237267228307555550700923931483057439682579715637232036110694600783882888103337062239303830408177711399210575383073432192854962384891943071221410655939968724837300049600309492362231032729141723881846315003450335305995918362805199556167279392378663391802141499175962328627456540767867941475384826130342621049002961162657937714803262898236692986236883607767486348647852592547108563251844850493146134378848364191931746735674862950474435954114034604863681852951710417010374568491003963866247334709421459826964993443697502383534819446120526730603819759734462920038438685563290738159234775678657106945856937465003776404222929120306794199706941492424164287283307778408553717239534872954849017234419084747690546428633083072097532988944679812636983496421410997790399856063930970503556019789906476130874574321634322182958699979995433007339703110637442011992231072971231514996980586361915270298329321946071565414504143849285194049429310222829679723217402992823495466199120139286236665358788703608406010117265713002890344069296554229825695334163882274085730652270161888178395541702717768383243568551808705589002874547688504362102423549739893447414668442255943049249574870010763789060497158213184359122107918836707774865570412448064187858286382920485776863202707590763822143062477478308785854418020903816000004817386559394868823234086084812383709199123943363363061292642109527792470271478279717966875793561324367293257150386942924203560232436698411902303941809399951568494904622838897120532241660551914711858691849770989415999413325852691434828357215502603861413531734425219403982907382475539596694042606279362955526943405954709944893080398218877380753166031536716928062591669033972196380258507853372690596715308508544983879298636525455905879843589760973058008628756061048325416337014288649945820143770734166462490759384250705313871905003652413910618198896953260206749555272461774776366519585719402870460123623057548736973341587825119442273213194804119067845750051897888692450685290547186936426964779952996733455368833915056046195024457932212125807672976122324991259661258510536548043190216362668261443448298098084634751701478581184682647115751249216514765191045009858744634906477672445331662783440876776708760802285885433492162336646585207908179029464035877651385306129347823208622783323136223429401220508598572935201596475049623676334617418017221846002735027272029786912436478449984310009162152093485664447433900229173714746123410887885203991016498578110770962838848814624714199969806439387219585607975234123943056060446805227177177003216621992198188094682195143796275831604269763860535229550088248401050287798985374933591761537564760106009001887151156805063604161947050927601744460121165523208350444441257021423823715261342382338092608256609002814775055919073133003918481694859119802690419011437619130450096076616354329993922368900463041706676667898885610579049535046617261664472837351930140327286079807841432301851665139430034778373376772970829084298982649992403492310591493857794165771289415445244140275317758729701658656757032991934979771474369762933292530839044668969798873296378237680182092006601713982413905952972173403878619234499190450092164655621042064911525152245328275747884218624646101785043430895963943190711542706005296673004998111486473458970584947602897903497349930286091910971611507735438863746657561644715309554014848429712127681568329861560805277075422889835931008604168125014734009362061421869564427696171027261774539875551360379017418616773089863919077137175523897935309446403137603797163418984927043812202539087778499173701086156628189515110735510267870731901880720390938786174194346997120531742070736064761989226400608958546555616660589355680215626883487397626861615510125817502040076960139842428892251604708755974868766667947600409620546033037353682222864299854280852936980089590060836148519452363265829742195195954436908024991069188011149673392308049808016419539721014901240951017174685649297363301017176556482442759059072647316710358182066828230458602884448317451812653855314332911927797043602093286093327221181500392665161735005435538897705880546449034614406087834614345096872247793236026530804523852161867185008985177518487672520657802116524418670962813279770757941177133150532397506984743739884047724502607381804367612929523927026927261484553765928142617247686514981776421171832381067197564017252963325541794810096911733332128348837349411307236495352666625571428619970344254517927548110471987943901058954044681467036348663831426799185691617043172822440131164208843902340572210557504594950575806143648747167529347518242394575823850108110496675472150502282906822831844188156257540065416617066212231967945084290299876434597337805811657084579118183463014058569192088104449769515401326753310746741409832186419940001996450309651151493751166694753168341428373421261487282186362175496341756565333092146673018663372987518848210105010690156385995459873665622757241142004156002079942811914704592870423970787296410496286216255263627953434793808698668550160288208609232740431303107769892850535166369237601751882127487799502636403127143751212348523894414365421493286583356110458196466831541260764385735417514224925121666775587238136026826343971550880424465098997252667003454570463284217961214598703592585268632620444257025761626596768188754564735662035665933851144007051719572703266549198521413908718937180007308538011162645696375929308767411755428593766874296599013861177618049700642299585603988786387086369412126945188374115564712419863697003837204651782293217984885295527898618527654050548139559374537071775286525911060363030921463757724610489177401750604345075878277838943623114932911676758387221315833300636961077900388056039426710656963520919300281421115262628382396092949786292928289720245558081136796742223636969413211154112910177983494576179781899222471697784718199344750463715642838664210383314770144280030065561338128134350995588527675013887628009462158298902030100593035663199362014124829760215294768778520346808991787400656613993701505917341120087518053627964426230354033149289837063434228384485691382805084056431007651439260976050487006247294213632956505824341228117170485550670507581399196000626743227593751886893317327730165348401172552574085443356400064137164915297617230656714574044389216125514337427239390004856188638162542523185171152399059067400800899733597034419938438447470454509157074349267815320845917270455868971069694356449124450190922164635812198333381776202040613845137020233927554000033098386333740358427340331424237090190615208974091252807651390534720659592609678691157951286502218684762140515996123047510022891831418041880710681747435345091875830034200093834986917868842415310131941872680083878555737179257975032313737381757222111609927055095722294955127396712797268187348431665294179286463141536793908859185088013938595161861640625273950035469565978835252059368907502155663602631946771253306064319762652058698437204371675351369332511073090584176691706094245417499291355691013324734597971223651442739452303214744558821125972970112963433105185450739800138290007644826514567373380070831233749585620121457972200890724478818982334273767059359530860071037063767203672251198865086012223526995738232945653944949020638025772805990884934383055357324649751372799388318536543483105974025810763039221473138661755603351751331170670402570076555394351246198801403485635517754611045361408168876472882766684913650950499170269181750501381110900498434829991308155696245075384619905850688302232856375900563694047087465958444168641576695352108498242606759347563541122372065827155335832499667317176027727956927402253048005671013605847723567114137756282278314301312486206339915787597086621928749909364829057916302722247357836611594890948580353457748308674566025204261211858720885260277314912047192678707164032456432570242672651154024069431232513897741455419142753620599015610105877655989502764038971658591255774833351036487130474595465057368394895947804209248287123311395408971559621893540066425886585807133606413207038651849032904668057543399219719158596530756273433227162785959969290254087589910494759466881157943597949836817199692158956936307942290411205415842891304591585273084782614680295500830482841651508176858770275007195530539219842175189848908762974188861967659757115776014451855536963513272134938761873341895610975804548145861645920676489345349238937075270072813199467355888438861458291112421253926325033265543064312374320338814031554527566762974125227846287554306062075423429293337303954851779388941425829343191870191987735688547148034018687662234478270912549718033401640179858135487371669787987488761629514104917431220243373228309887819560480493873790995367785579421749824056560996415731662650530715945088284476503567403177161458252364423964924689933463231015712139127903206171065334841774417282977285101949959146916227701900550466855703908196554494944884967826554628257083690532761424477601324847327329766634029363650056501799302456864009149291757166413133831310366524391247513823688076555002469036738223181004642016810501739980861023124811823303569498624681953482586633917791717687084765828251025147547252761308486318646683961890268156592798938628273322213645860302061777755929129981130974311773460378306552274863082819274296301238777695647010467773462130689406592512001970185928680617950988513910555328696927597526973480914770560862321170405772191833670223078208874363201093453909378993695147532243155930802432940633121261045989373393428363102810076167371735974152258146500893879565823527035473774836149704964360039210945121603312014347318256809269412361876760341548070669016318232325388258223389855832001481296438165628980835701538992625952932608216983623967042958827144003160391771837782948510971314801501299963918143733622315317930973761516357762995684523952517257917824776588145944350543942666005839753958049510290055695382030369986402044796131888204350661853045856056442945194315459599441922390693270200064436885877444437967421671626128417688314346333403737666485455230603813858456526524445224603152812920265600656048031128556503447115640654567527953696422425097474288768107179267850498486149941924459393651574830037698000299801033974192727676335574538850312286560785664201246235943899475938945795288044884472138760092060097308633543355836776487735832641864016503616150909195089965043922075240190056376478599461578591214736467500936469749997619263271275090677281842878160764926789411152095903720946360054054747047216599980688796990654408753323489965848179018745657184156372169167858197368784575766397890838922737406439929981439940147016037203625763287313500665307142436688758852871392732917676607896569366541918115024526497235723150952519141533875650521344451256389726831684408488017098308243360158015619594903326482792654685362650249576451198567190996525459208613658901965014024008495874688929826917572040013765165691684091579906111524107964720008225581593625586136934070789575919643859428729076383598452817160058126616439865684060054299602679584463627401360556899807722865105876900148229041044946623109908891231412161005766429045854802036112488200197814361376845304228849285713215289744579982244930340498235243515082761930959446917596389996984998189774517890189110880376125789300397924929302779297340315906187721832774794158822318784496827246594731487444829887142514507221316590927928548347364069539609435265731492629556899630378582869045736853397521182214411563781247228287323081899441785598750061847915652548822214689785532444354887430755090780823123250450746231686985452879735741999097554349138518058137993374430400229579045124149698167744325181282170775455985812044751312623244379695463138066691492299393951035617927991212317072165204623882665736035850543442288625307201780639660287883277347488462293538924798050179372597196257078163660497340288028306740344688243667797497485401579727562829914705775397630566324419814524170737908266994959757470605984006444483513291037478977149319842272300757458734986427652948945605184540794782993201396275059302730603162593631693815063476283827000352120964701084914413292490680151669858663318639012580222938357445247705304819343362337463217587345756977178561977873610858169355418775240738849628923530517689988233865432810476944313426250658554486308298897176120234743750485229308342761757453275146658542466334597957435278685300631023752233616391786850203551180945023901720791541112092063103629389554472713299737491728756979452522108848641553429638784366607567732939223036049562372532153934354792676983800476279869580711364360300764260192867616439664032291555325298930308868515237144111184659736989905036213993502551872924742564185737193592893717026743275602291106527752796437622241717774372420665960496796933680874151843122574680809304442651595497662767419934705798746486027142679530222697334559864662069540762072016303769213149288760226708692235202107639145108525041068828008137106055309089259988214796112455093727061903261879901547040886437807148886796019707182633223202553951442276606722871266826319059056198585891609701177359146976275252543945090745980942256438610252118129128590398766337449777408662845728854493292896547777547222106419537334817887943205594845437632763072601819895575082241887652870763038136490431273049053523138911401457203157715613930305460547346490165684134434983054201626067295553698693008047374382444617399876596258203069580582602311451645101691835071857053037044439957669224165598429805739922182738802576254512708439013962618755604556230024104034194613898295943259751908353001097640002063798740471357019888614809484568814887718101544948158125361026790546917515604123786953487942017116509670850793049532859143264425143673455657539600298499137801779125167206344474459014749336835408251445844904055658123270816048178823967916296354437395616711750861226577934693831727981244716619466940508214190586102031147254446834052313494061561069022206452156655949178126381414856479776716613613126536958912698159900497072484313550104839531230295716387857573312008723925497789845542899718135774733626357561583062731644687055962449569631684149079630546757511155310201609100015612400308061725180441010366394642120406407060905999955768471909261532085462178374757986041326165616145211387017822868132593500626599598409349254699151659629528381490234065359475558349474221003445800194400032847884468944559866043373299227714028538537316363834223021576024479554365659616030660369078629785241960480667428900481818257162578890158654322945506559195709794112588802756444386093613849048774610369126789424558957594334194092045143394689161403325243626355888229550973804776017660466829285853617584081782020167520110819122063556750945706843822310590387819492060245101994399946935638283066114680400775009408858078719910328479198312289366626223511762789090021579036711075167383787385484991386207201564623108162179231363154482967455659189090238403178373838566480535623532426949793500035281805648184551004597527583443741646968241467560550951302501671042065331953672438428367554335622147024167894035515867738138873377621160086028992925856836767305207640250611699765346950551079203173664504200471096317100728577221096630982558098294951151263544631001225440810546654301115686521981784524849539479280127229235783653321495878536961155583162102518225393863847536054705478515485395698696176312567701845261211524725889323447314121725007765074576653242449124212559044458692883328260849143354893311985868105010595129391374842113207132703231004048218898426610531951208627688852555820606798743846437400159442450536812829000343144716854081854670737045984298908733679697238625728018821385567650486068000097650200871623295895582873493801431046954152015648648274240594518936563972899306074273831650522518446185840656893391549326943180164165319580373507735564969622534672717251180094478046072851233037159654187775597692099035118838919977805886157057680853483529493866768893299187944613250448202719395420844498118976693949385085449984222251590013310646168992038360004411925303347589572494334705775669386984505575704828657280590194303823032487482145538706751276032387758985553294868344608569222204200127414231609390309155840571600929701721698096539665416967694856551338576503936219114139509650443142938640673964232676882721009505404895367140657883674750947508617695735718547300735527023072912390802356494495346367666436662743179572694568463823773883844855810515639017445466584883860489551287345491214866084860582973865818430356321329094855555380730030030923313741873765804860908642975795074420984413628748832924760779774951092537455131070857395534171238495291702008980247234104684564439360247526322382684869790841620325755292474678291000436747211377407674977507329534973557435358634567141741324665064293083747360515321895362385873950844170792354405389884007542608766268414991297865090041722337079141699707000017027614018961736943697123348866165468196906559879046510264049783700933571703679247104266970622200618848866188806013163749907347880684450411156622277686362165604543739886914505524456603421319698373439054519266526019959433364362551694800320315025872594829290658744952895391171269575246514612450554504701413557491091433746962164516618136774357725109174342042376791806366956918599410980547755451408170705368878519497385706348372173100418670567647116358200686286886999475047311303560725349997598921707927492935479566043779110878344443201943500090261696024524558197065216916413528937638733420019614704295107795266132996440276408025450244906689448176031297312954038398268116015248241059895015386809003005145523222450990508554682867766012199004867935911886518847327671610348519831409962401751763710064391035000745688198993103378018772580492756247242948917186521672882082373602878463925044033099712815308040061391491735051434265934958102582167057194982573590991817182796852256884203623371912743529509928110864681358137847406658281646039524684564667862129187594254297492333017467432333603124903016503466357060559041621126044558089694768430261415408857544168074432883672940803925490905933990819284472466247481098346087394066454957730560053138944557820937694571112851543195491283578535593882052299647092205504304847199166715310543824523235867737898206955984565040871851866577821020461723556637499330647423023286139593402569811545649477288422031119747904858907419000387808104497922152334980484763871437788759227514676850328721659126965465978184318091522004422122584030241735089506295381610648693089769523671187990859034440178227431299223798185495724017827835168477869054378251908027633037696679295544911618150544642182116452252178536026576642621600272142235424036036147575582575637194932934485244132710972651937529497179841133277070980154629185153073732234578714341865703832776689965108010120278323218173289036234554542088932227695933229776925242046805799340756052654395970873205585037266987765245999156741384455178411264874584379893187857630506198611424705931601366726955814765352211638351262663456826154680444636486211759170382312896108003820186391451035816620212096236747604631453533459694711667584559844455282386396946846964814257060700711844318769167809527902130665386227508248226532402017148669895471819344276658439239243945588146672987174717258730116450364955738044889169343911708600206732841383215485514946728778759299422290781814108305815002825396679768426232596490860217546149040562052928002612412025494170168052937109408850271331917373447283841419688253201442988229590874552418430278178229781886432483798378705944079799304872956647893445845282279397074464489600872697999662153672049713328794335501951184427009179484660751024315020490663189907777344355924020475857939822261752878513822589135049607896420160282113834076474045260032108371250886148944768141545343537853332190871556111223556057760629718066792432127946923509862611208549512320243124966356467353928600302955169395112421160461350826993422869115200746480473511323416226693455275555630314551481754188035638617450780809380563775675357121691921066557020039933806982921762532010308195284255593317414979778520520966344552092311368353354324264209038806570469214777500933377244039104369203849662872901420715456218839968845156054894431241405991576110589754249880874387919816218575622717011222776079350516266538554715876840718562002214599476873796950847775003470234509704663852556527702448543982175348927778594378840436134573466623133176954662019705321514193824644761667953147604970621191015893981961376298453190665379789642265823529440850602769184712198185563039070383371830522177026762636065061891143933653287616624390082728493274670898639237661164719937745355272593826986481295293187974211247936508977866112235994829899006396925087455760735693302593316581744122031067050366172649198567072685988841148995141853001339485847354831639888425154009916287236079143560118094722548379811048664823040542756903782282055705071213245442956374739551373886831869269189595258201349091754427991279362030854945964282796979939820959675953525090652009193158819170383363419230678865030848399304765897950219914401572381330208106503801071086662035274665370907117671333149721615764800341372295534948826066451998198845005181319577444640563796959429156914024980409821515709565758877864495484034237566923640727507349698495147083711987285484496344479860400587275049503147622548909051211627209120563881390993170172331917014069812356951677734397258292052349634124335267204787005867118393291124420612937123048628273640039245086515178286962090889533416673631482028391850785102366320289118307082397035403562880918734959396516862175775297999368285190402439365817298768886403905579166405239838628868900588805895641316844622155158281288113902216482926270945546201523042769262575018301318080689961469966626548159821722895055081436771675027792888788765117661679978931672986972370100315762995926454232371211006558830481524400927944751765702815236753688782702705926814443301451960633050154681690945872349345709202837202732601067927773737104977986299978927374567795862643986886989125885831509755682191236111882545657168824303831158010875535815307933315180987952245298787357068192329773289023237832168625440251296489664321492795646920750379039008829986246320446231528858825794892520726172115055277079541461824558762968068197369948865815178941844869339145488285739485444916214430900814199431501422717725218878302491909109110709237240568666019540986797140248464567685865491084104570842257383551984025103245968688369259858345762001505529738028051707303292291226254708877157060579974234839929032137876399251744026667713997032157761868698471470133112977472410068125031778046263392621546466393772736067629598727838499666648651440667908551724152621741770381964670980819174739591526627600687081190257674770255267878746097668053544342531794331786772352212922262542346009099436923931516272895941511731418282921815473749581677318225671924511896755830679800585976025499178368118862891230744749981751503831840039555705195017411657379818406504103325191548391960571655484357463983637373058548854310706710353568768407780390477932726840019205959586153396057855662999431906498483557023075306138526578686597266347095046537964710427824626190117362059690883320165339526245051607046116457800454651699074068486795921746597629284914393965326272809443062338764326705370783702218234327721243471567827544043422486631836276807191482677762036082683472641040675803505680175104674222326199044600566430842602584487784743080747610771189549450827745529283810165837065700014003586193737132918864977779135024698408946179281077081600116195519955251641711462702389169706870897994208704252773554248483409452302606127793219118994947188700341802902782834371564884600143829479780893580367367344793374876430070218175446630938633274876381600723222387477344325393322537645116950666008470826651421948735056454337068417418135907206842167318119067829672862647825016187351708983553694202595480049483187332275768705272583893009906621991089776410791314815033582359744865985891042210972171824486637874689821800098503148483163328731498897325670859709243731657135099195745550032882227216769184361740655500398020003573696028051257580235468058194532584459015441124145103907744674918919541158743880072241123380029776010991688454288025174360061334165446262007497619025630548394214354845723396592130635998645421408402465765045116919465020661482554249668875861991725580066253043302871473791963177330433776940526778293803049379791057479025263741168259243464340151894904672291969157378395971768428924346600703177627865589232702522506464830442182323097514299387568442272441949062762409583366006386557937248389436120325287692001407325570134025700690284111190103493566391350174415882716152488943592936842051399963814865291682497241439683207949595351495563260170519066716123777152347651540184327169890666762933256225241047207853344996469048074196619554843572753074722153356971920811205718396087365261016286362263147902334004763580836091413805859772112181451950787130711173815319800714956581978671692521368616390503353972348905757685936286408246115374994113119641774616613179921557193029469125020079433047690575788182033858164144179676771167685954786993820226680488386003289411801182021835872080429465175218987959324703392001798229302422942696666649422793407252358362668574705012108631000791126965287173436058869118949852429351036869070098842614510348743380631169277853240164203128426875723632957273339255059539176651673284699543442722877117036970477478438232938116685113472866633851030135030522298224077210940319062380150228849862077042481959010755842181978800921557620770825860697517620957342950361518515534388031751958252710935244679550739041147282510164282570561576263413497297201626018895932689288290005257835547829472481040400062059667658736905269711994873622020650151497327132704286206401972275043959104962955845718434361439393189521225693100104728954517389332202379721123104186084770042789105349082273349139142525674155918009229170060705294461556527550734691553012479197726875932861551348685780933242771659325854021228149061436518399708345370646349658416287655224603174873947809913037876859907510660283254240445512215408838984392680316696981897069366210137286658706445573766535350843827400765331636581264489766081033369635170478070636011067407869040090068991874494814667028937888382332655150425807396284343475621665499834628639818090659414038754919366385182234194400194333791168278546163258827953266884297309164016596251917872796516928864538242881920349385138320536763672476777997003181679918896550863628551676368842825505679265782120051125391772525367428440876709165039335435639514893301086789337850990783245503074641937101345126023169062778059259348805063057494728022626287550910104148428507584793469997464970890059676982988792142485669009835554255456635961204209551571478198265961791264972683907469578087349155775900399151346971400514578876192982916682283445291173691968036374912633464371934735751251610218216706420196465275980127433248569359647345556848570610302247017197040358873998361758725391410280535633908392530493042890686100133023561587584319710528960818621398430120430023273442991457853566816518341324285317447349108707931597919090182196742985446410825909581192657943197198277417547337063522789431430669644004378111414891133264892024888438025570992423852148506690371932145107445735942202571148107814599319657820941530271852829705465538711018687705470483997075606701038213290994447058242942280462868633549603649133929446030969239034359471718683026775909846613366335427827648369659461029457733663659680864338412860177699669336598235076920006208267124396285319224576603935962998954942111496392364667021668543222962207008096563464990406204455595289960722309325512273619830809879912278498054649684352348955321647450989264713130247364939159175894315261513726105377536730756367755069779746444754164236449961298404303552731064959701051102807952258010798232273327938728429672805411813670769768053295230194818021085731146196464090072599958727169380129577694825198615337989464137974617559501559987025168987561072193967011914203734858970166194134269586121876245943273050645052049640150959374138345406320204309684554516390382073856713185083380471518970846875892419337453699370105038144516367571969816927685007967024165249513851081431823912946120136376308682992743925729346376115062097981800517335144521109834111629742470346941986784865269733974346166881204880032580982651612402989624857621833617606481394400058623783828134821856663540169523489650964859314526939224386697783643005602380445650176433092931703479048002525763940748297507511296628991572471043699307999882056728385206004518220961234173449628780488276821861513527895992002662154917168571565379477650163882577259603854800198483816833061064399154085926073144381963616191281193933060999918910197707464670679419932979920352834206450183979263757597045363098261642154512955799399283274956227229348621056698260859940396120181635298914692285153054345877513514149523491654119748729011989048665246002290397969915568716714305932503828609804999177156048133198141747942270259400951045823474660597023529970504701371102936191564315547644430320341747155442765548770947571617863143813501679792881247835386281203126539879541889030364730571605413844868222542338851729600984692802699000376071965351619818150884408106326847110598213191818395525800213954766004629909416910719953280295395338069589534448942441205264396775118872688797037171593760997148328658143953914091465033439877133252191515582885280672658649663585307487471422007172832903086927532318099007775422188055298144493364362901763935715042323173058101516049218297070626774990955086825176341039685753885109318757562438268516637730748196629087079801011694329228128938092493671279910819686052168723621112861345867983107386603720818729982605969622642838698001189349361321133720371253714790056964909338079665006060153945887335588784120567586790837009657203733194499636984030895507268281221464495343748655216630484377363238443785409738883212069623907232788377212263123646245864926644150244913792522339770518390948713669970122213966217195278230911739413462581192191592809854167075633613806278502961851991585382481725278763607810547066243612756162795764515218850131934861161132197507294125086299079766554032685826231251363809817948497612242417199311733783904724309114543221568659110601532568215204857011419630461403023143419399553820170648533049036348376502319552917210558635716660921109295404403971631658596739652097848290799014865791892311608773650162594398442372629336375109743429319445338240827044709707352957338471515182335861163360243558343000567590303819441373869243049931110090846034601416855257189784425352817566042393791123783542938252571417357322812442901083902816578931083806896616921609334988702570419632111521961140331292296931772578729465571074173610234655554989874636170432837164799477571606928891777937839455336200450011137079167629780643285506341762912506107411849194087329694515253465670484407904723720325339002941668956051554260079979150380920358168050367457132472541948245684678626324076948484914439306357614608856104387439801020523586078001366895956936983458070498813546268215873322905633398527171605673114376948947774131496423434353098070605393892164940773973317605418166986750450083247735096809774399678783953326297578758038201934402251448953082122029636373412419999220737597980302971842025405078527159929240064335173772244934950983391301392246151299042770695298111830078566712123528926004048517505347522109163453071964704127515411327052556624297344966972264930832174593050156624507648909226418154697816153934706764851861223679085599946612230799718819945680887823935204077630946586544202810481521091110545066623337943370942958795136196866966715027629958942207902693309287596052236130530575220953993655148903283637198945390064245264053107615919807697251496279634274206025028872551058673873407315919201316940954629181202135829387219192876928699316636247980200057394808480841610663997619886915879682221178138669775926872388336771486500212419285310975162746548656257551508916381416414042419416535475034250775954146748763662260153243802100172301125382392112911983170769283218685521884028194339272685193400771363818904059901870510293299455859871224780641883032961452053697729452773529334923562624197670099782401106748621764580989643934253815436960028816126620535909397171703284923727007048655493880820424238788471410342392211629151744504511576353832804770892677740091579836750925752216865888214604164108777021172175588088835978907233169403370652393717088098602084161511075878460283175477971069475290307111557180723414495829002840632807594196491982964830907121199303358000314139970959189243361152713921959162398380093268822992148262457061541182143327914014618294745949682900679747254240885374683970744753964104462930659711206710870445193195950260779981588679012952345423608278039394089124709284555872256856261680495210024966394619538206278027384082922763896614429281883263396167856629842755400988543137686744575565069969363659575967105823878664160795039768109700987309780820554065903601995216167247553849302126248892325445533256084392525879560299495204070095723924809875405180764424697074415636719577545047288192568803031934649361895309939963376631416931402936067808117472301089759358405821766711348635186047373345798958912968930420201069812310447836234269101417551765915393455461615277426654981458867393972355949224140653000811320057067002186480800214714429952741862388151468249529385388118937776643866807916091745833936423914212324749223146908138005179343686237187221729289683931989637956819322015052483069294078334967912569007855373512798244433560847105905427190579706065426753543187103525191009810313985294185142268968788262477740175387431808534050556303405933570859312078108805794288293185868145867040501565559266995400391675069284255502697896111595121075508245564781362433691787781530543438199448991251721924197892808608812525890554461679935549770732178930722520312770545497131577943523862969635205945936511395851798557602302534896390068017517460766636850073899460581014946817870310678675440388113597247989206775781664964648475211471354608957492560648127542249258460219155636528259528550104486909146947931289238851459466101267388446250667816206563523463984822412018390545938611917403844596160864939518083043597593821271759170584117056764126712147989355630362871821810742870691716106087984046355542551019071019998979644475993116695382010014142390285349878927278226077562406299613115747001351032878947247264304383992675663513549420292267133639107985363637149450657529290215900391069594430854661890402036662393239509277045793980793600767870622241889677426702052374901304143988747171927386072790232982981962709969730675083498599807186986350915397032190814786040241685035065466117990602199297204516319855245750429439512355301387022711675258986095583058006236452807209153667570063524026321881152687357549648686851390312191711702626365729975585729538296332746556293831784651723218634014359634440085988339916833522935686036457593598608451039561014356729893525137614434265881702961163543299170885119730246219443920091413537104499381148681474851269544151498966730976532260497134130540042154617464143979559600183447552803675575756446955917745113724833218725724805664348431197310210280426725496255112705318498616245011246305685668588409780465574861015755208961489824608511428223692938140749842366747052037911795667310918093386636108895536701768440154046392741113331683319994477019812354118203676671529521736335076250904424361007263180911183659937130825027849990333471697056186829611686901730154453675687511115566291939279699576475565366789590417221326951475338560342672802086430613751240136752397495761259170795940583221393449713074936839264805909956219585267177209355084794903594255724934681117676853631127826443647403914465181768487210158423933331992338989295981466627781022324284270176341927800567188047707563960084718711588892082654399103983681780606116414950505177287243637688908677269523643152720909450060478507530183959150901053585547117435649686704285607897507203425907442125375750847799826125089118202574708055961988898938063655762116936839590680606773108748899848929044944720169573974335326590400417883395141877855435594337919115532933181671135558859026905997646368096688506928053440829253421938470325812976744116468581282870603433015106466823283681419409457550956291334413541237662718744007101983664890663616016307390659689453412292984358471652055957197815703827444983089969405138920543119913387444076144063390481599078119665674860411120296976656389972952667635707005257167292668908829486710981183847618452226333386833468504453911684996920493534592781907402454032394065027106139409938029934407403743351681977568221813247719586184716215580801860544860164918237504839780164383035227099700431956993875248580788277500249262402493121802812285073326631388799121594524379368214306868127778086613747375817090014662864887766168920870524340592671386180062623764993506001931005820108256421718644874719956979249754423978488338362835644509522378258096329256330365194784276930387524040692503135425399298629883334767379711612583269223812578917371450964222159560186515228420356452984890265795405767162721767898419096056211372856570985345835141199707965012658927554148993127607896397423957294634913422304443852055613046321344563827487219554105359627420713826548138432068281303744425515935075503502281735962226062385098929591598407826984848927245504637849476792657422135228472203413662953545836005831603240975428950653012435044931196162899451844052171211328630828372085967802986855927004068838860244902404003846638868363054727958439859843656217493787898979673715320273367196720331368130786298154544152117542605974170526007440782087171685346034782656867647207300151961237445747506472780045670868569427678357911765970836940989680624322455765050951825626210646562483703769755712348755158218380642522443029849561350211979806880054058386928934520409758428924467491793718053254165494193754523051606530166465456005097304186830773212521256934511967865188640008748358757321815854578213346979176809099291935491109950775962738096805325194326964368714280410350767419454130084490873933854636250968378041099743792810081084401944682067367428655955749393089590675672864575319064269087126495308287209568569125123863458612730400701625477987794269043110981739777161851259978904535181627188297625889165249076175556235329737665409420596974775880442852812172545242592162593074658683285123920773318268853067457190163019144481531069243114811705666342182453818928464730282604541901851725156664185519846344327501383920012200585786133961220585060330153467559133963715053194134116193321719083378889508716959254552985247953959164349828328264052219555779817805520207999608610155875269222557064676299084939763952217843302636951461812021386353993238982181422403554340091701292738830612545102022596984220954345306767128417759230628662916899888827016604398581830135410543427097485254498249206518537649266399390481294594530307544115572516367255549447856074998758080436444659095790215262879903122663895616786172912723306264432628489423211637235025375182068946039889930037585663750216637398464049796906415769175818644412291266875167788039365695904712499188144221700257868862857661723320661910478317673610852886816461578589845112185992565370702188376201931778323030698969198768688423144111580085335067555857776639532156380293989993287304184502192497402208047102657656397120985405497190876701644007736491188488466965747177001641623414930987451132218303261443298838912192355238918124310173783974908420194262217915897959917335619081965362188586463440695402044883838711243655113020314815055833590532347896486822677926342425310576136796894145369686771068905695437294211404203996617955421380269384556818902547658363978911414590280004439086088109987213527458776580965165629098536599695144220172418518508409724890706808785972716224957603442389671515389903818250693646174087345030266768705523095179018116013877341907383673159405210072389986149544278674045863637207762116938835106919880127619666723175737552063064717742319181765945964770572778348561774518353880900531131727304396348769338732586902159430557326077437364989831663096240126929754083819544962399627232311888698135181780787883946758097226135266017558267937533177125839607063056115249274615763328591759950973354615349490077135291864836902436552983652625576666135674770963669814867888515155149105246896982200605433670791328540598083677992111143186588131018390702361502015263300482228663281905941975968140890711851125912651639743220575769574189586267898056884132218814148306014910357933109778607096569970389413607742040633281924797842955065019192462622212276668343950090031457248420365591773822238572313241832828423396799278251631120958401138348180501538043161251754162171389274953961675195780865012613220160089755197680380393522769419491009891056163974624840618395629557249314534724455991412727187086759861194389036864912614193558627064639346594892980948726067434087419634066305117673306741883739753787105401477102429489752980634469217361053579828252882363839039006833760864687389181693943048242755379675886864510658006153932701534290470749062851376865530722471151111670154363771994406836410352586701272844162437549672583548746878183974735950022809596510555807563533974754863699948817168735712126398421846692383185749554099048947749018682558688273078065776586492634536772685945861538476811397929389237475731603405432769463158310522947022286919334378287101472342234154043218041572487892185697926400582543582508684004832826446223264411314034267094852835140662947085449233263097949018568894096325515566294185255878740521355851650636523088278339792929975146706634710239714333226132057860462091812341661030597666975732851579117713001937390843276840991902453510663399971993971081100193074824060280544803018391627295061339387819822051721748509550486574476873758245132688045730237877861958704967735451629506609971943996552466567738000903730444784260631301261464812792561194431003910505465521987989253246179052515960987016374839265054139699758035925348994599389987178538095012234826239961794137753878752688291760030493599011828003552877924971687867647992897210974045685780021216943894929141177591745750937622275394945608321361906431031887506984792118628311528708884790958640580788283845698364036357814787177170184305501978250670561051343197311021262085488592333055133844041514811440856201704014317417217384607360698259015968843340293393549313053924571734322599371125378498428414247741631743466799792416383472586460751326527141864007453639751300703639605788036883260218386877192335024373758775807006240972183995648284761605966894384909600045579837833752955368340190021492499835105944917036744175847315980098982832819758614202112068368762895431325932064592183772419231999435330243397407524695900045221811445824844633245084066316153650278136564542337602162511862680185023534254892778492902260644019121411908489631017964489372530143401356053704309745034633905471430309464838669590620008148447557002440570920378657896800176976930259668688778041172989569199778751623798246765283285952317442008765122141194487836979055708658305203768056886565693772028032523798114092708003743164668796182917439015192961993207170350876359561253018835603937884645593425023608712006198370431934113189100312488334979047097587636326727006022840735757635549423887309518630027423644919794496358715983705313610280780330921251245458553928208648723074587585964012223672003029949723373242802430363713687724278568395536429421922273829236948590213317807151255126163957510867936324335799061484020305735915616268367309838351140943635074199120077510841528744154354735337201021817404148235663211627876181989349216919901773020607974763011014022258208214466413629854214438476183706089603851537258355239210737971771616142609506853366116940127858860890717866087512520468954947085646976335967297339225772389480023589929753261391163651192698984179319698200808377895512534423336742258940351611167587590692365014609514677749729462159706206170998342835266502480701317191193400610059521610318232532053439504285447278646715058891143996366209009956770853990483662389427191475071336675515814673694527461523535110298928826582782031691144182677277904584944826206456399938975468821064378005608730700752501446995992353146758142839274194917615370217560564660408315004377350676805077519951790793683679146895868572540113153079398057494211367233946009444266816842614858977249630802481065777517739574658465328151284376651002405583662942846850043047491907389498170313668536377270689523578120015173173745844292488964758223262488735956020768170039399272642231496078475333293467396561411561075114970375320144241974540445838727573553267460217483808258309909014161170183619312150733048729845979893084102944447698597385263761483105889590371168294038087465050078868555128012358194878727433673755729836693303635729549111865154019265615740881241363358879796773942790488267895910498963967511367493257168511822736719174211218896776417864985773786386719314659053046599302764049234940389447369330533137595623756803798509894319781172560220891959613019898626237264307829658799275270271238782686461789568117948184982885962000494482654297201292230337603584268018250922007452833954257114677052279001598187821937137473945691479134343775217638934082726331294668240109773666790081788638397324192009325231206779371889007467318514121316000223697896576969975994186134374932452930807425624505060224638659144325260759692501489836651422598974734167146181012829377389174113139373026633038237281961295353773288695800690637562209109473783216833221954658124200222618755519659935098990363417364504229083743307932772049284969619627669827427485697397349438242832558893893218795998734934142148898102429247802597015955801751528766261987284781712255651594284024517096285260860741782659160213628294005922784148869447163907697932684576010570434420769532081285999265563638403690353185443966384084030546622827091212225541912458384678105590143460227806343617150901891822970532648793089742806521416471671332111897883027209806581341247535333644527800176519056259808371210105376790824046538223114019499617395523946598103728264121970695226824356352135594205352222035486377546798829418803885424694007187829925556145081010533888836313386196326913045713045313411075843551499716077453536258492650919814119212409880867178233486610689452014160286623586514719876851471529088299740366743727347195940807443166598417751000953958564453400178541772509035010146454357343916710242488734246697851115238036375115483414324834757819160693763549628401295683826947957492254074706011526429454705368512789514486123834267065928574781593704162391642429646026653502388384231066774169980736704039043559886413648167523460127000858911031517211272683410569096068741061469117509515395926543888506563774928034251037211187180974371840458395766791024529567532320017448676448287358118872270479970090131015315466208345147151177818552774822564117067156779477066136750107885753498547010691758020730918070220285938255065465146839366651695646623297365230309320018893083141174462008895569015726267460284851002373390866238016615047466443804616313021672005412154704285486489157374605049809276960654225750863654158034028659067519827091723296084442880075220856175822435560744279698819813921202502418233378277351929362815575586387232737503112702977080846455716279625023923344616741940559737001348287643490888092129126612770904853449470057829324789175910977340808808164309973348121441103214595230707825163669159489058787596232783781634629646165384536483912164961345909619481250274980807666442635216985807142682889911960244921584300358857109614979727015823283065083311732406273282556912445129743454891407934336979018553900735887144420994593524224204631786675461168520931500424046961543118769385492710299687717824884675281835823997977896987623091499240693387774954094404132648884459695244969731491760216989814105533818238202889897938210360538654702068456481266604617285490312112233482489048250772234850448926577086515886843849858179496890325391460626956133099621157691409497884028358231417780253211107005653079433605878805303387404606928572718924192556105417372362213239562073865503672322740739680437964417132112594846824591647861633802557136469081713631089372226390084750525340364129523807189603899450614457047960314007928108339830049055987172096263842010531482033526685607386217481139078326090264311008454388216048895418548816227773604892526322807434934771455213782556725259235414520509989185090784944754581385273377985605626503032002573547282053816723547484128485605288080003348936783354926455333324770230400421703194247308623838203023948028700141479152298303399126822308576265890180863339297122469044735699620975005173889751056490206912780495882948669321487269829805440822212957564381803110487786654682014372333901743679175883726557229449030109743646622994195384644528340900244955149925827827176176116972234473549097832878915033603597914964236338713901906250074353931835352924361375796175556509532675240250535250275441896275160215685732490917626795977134253159405352364566032561538881352670273217181884700275194591458130394685427404917879932550861910815602491938876869941079527900466134458296011986642518855373445922901157618678601558331554699178077116739509783138851911953557262334450188739639674897074087678659240825568821976496921902098877712245264124611609283462763840123853837253702904061733218047778383827695475362233896373881094056916763968894048961661557564977553299500106846631116377976830675603769177423908590293203637635162737183839020174817984276116653406557662063263256506379066958537337158155781244313321058249973996188389921074593166625875619749679436195719407124012250620312589080977802572330405496113545345260666600305712082480710269384455885517108568479918246915053658018033657747931882873753810821960721491566626183944183446456258487833738090191226297860810149766341763382529758019084321071310509592463983216688683257003755690007570111402761278597789477214988456787847323946566182437122823721524334092188173030258142397152811633452405324799979642886120941462192422710578162818646424617783428765428194216896670653081589832639516985330557961197379029283688372327526907628656734938618922775551339110826596315014690240317241104518774235312447219172418153299762074953386270919684654785671689033388817723429632086415242388589537456827988853056727991118745009362259020658503301833046132831826754823028247757010257948306001451911322917151202880559278316791992938811592452585325107288016759267813994573943061380384479306102437174223289016532654044351349341941342091942931129575405468388823843593705700783979175128411313421570719636033389677044539076436018595122037657496094088621433445365952922690066481846529046276031374179048201311308756040316183670428138300103003788721722768450563740297857632229785954840015981047074402518069601420861482534787940838030868133409793447778765229803615136593322238845826204186401507576105258583032093220756456295440831297252251084657217262049652359265216645292758322614770906461742560104906709076432277150568256894231501181219487670668534623136178527021029983883744988839552202017720661395243464642449285699129060314749518113835557968452110314172599633503172612303575619050497127256938020363462114206909462309330030412197605832071528964357609739370624511549843362761466885748690130139686635284668735330279258451168957481536753569050656746763579708131166494144359346781394561133491492428862338157055605289924815868536646624712246862600554047147376889267692290630199886734120512140916051625914807926337244194993091547823829598946404780657242129567304136272924129498868411702140457805135909066765322341003514211938881888384781618612168212504420639353505603176654630819096213254942286244706592499341277300747552874146792814202825577804153020447856965174505798247198715405115512869291431668559897159716330740072671924978604176173271130424189147454647876865864040109688249166949804843515178629448502356535164810336708957700377989462112712049585220440301020767138923766444468743760277921494147638972373984042399900792490154365539436745888916200177911659565376242258133214307669430912646238629884610172947901523721380780677840340244445225808697698109906685245493182440589822049287780250689490317860353262306352329981771463303373356101536852522890500122519330435321447684020524516499375463676350149451316657235269742943106640255398259210906333538561428491911467136932842267589640697945848719120295302876097506040455325989622197269545110691876414017851981207735512467799738178949067566445577553818869377401479902680508043919815149051006009488595160119758766999011086544118843015610365566025808598546087263862435463892994141516811463852206589509437267649115011791813420346228162174770260569191690094447690325079745995981072162424918115053962663868728522834252428930410177119235348687017163345511837602168487989662745463572235826925182761771293690475250310799937343380961817466906734557728377304039822559528376983221306092118534725643208959492825516772531651616753277515941959539835292232757206188164321466957416846700815787601532802928535630381720433931709067492559226333066318623931039939448710662347564670038651548385524859258515819541011938127393429218667288708592129288254228113713376285198653709809970666154271588540399484041382984494014720351828379007247334685328741801663957421735130645064639528957945234835253106651935334245120627299584237361161498440133900968299838189457819279843175139006662555435339960433401251837728297591896538736366630582603437555654818537607075541313000950994924009006504361949971876312972738801146705925281655522112738573597746375529977100058364614903992303451334101847171543365706965083714252402142588841115792204628167582136172253534800191735835000032624361271670252047206459612408523415523567167874884655775642292803286532963566711912234822558914010568007008915844061159778570690421090860549817928853463390264859480545460981545042722112421416369953287099048746330970733046275042775382016649778934578511314857699961756206359115849597256090369015756995805129669789486035938579986583432915687988122796185238804715163944200515595225538154504258402102659822598474890334006293922176522556191853729408661608436991161318485071160334068711991134369544412440991753819484233069885083431805864936066419260606596317634221186704422647599515388096267655960022045259121927153174801363122184820342845609929422108426902691744637258105997437971582364151970206582553891512592856353084828836459677028517602903542188001753025942321620750841794426309729389678638413670667643596951902376040768554878372146719992387538376392183333061862204589989417455181593914327026626980823095834899334009308678762129085893958006178532389008352598946601431053811513985631632571469865259240013322720700068807128584517910097509848202462405536994932794844069983439991340710951207474055792380665435681517830918628241208364794636771107694296702654027319735759590949923025408907405811236171209080191886749585671711680611466700698768641625264065104754352008255962345070984981137892337684765071849918836718046666202271383361145282810412213950747258608808249549491308524645051516864950339684707577127222120298217432270138734025159346189429774602223508921773313888453023823496417241781039272189802137992821641248170893723402628523165609966338763001929402220866917694799745637001270382628131177011542683880747015283125647004923808954322270708063261859215441280038492078743672516517757031298303382030128652224755952895525232791026202115259176086082046974626013433677442448900265149593522586005266471093700877103493877122454276441207372279445768304222146311177620715832974268606300017126736108909836882754457448605599263167253249015954081308875118926124385989334636229746542836468426759292294554386549897430919105798608160257195235024580482445550029365489394169969421543733705525988162038869708219984235872048707400759300171433326439941790261787141915595113459382374999724956436252141683024809058571391525820812435722373938019443144388568742850173176921516835131603988675199077543363928793010982812513685624252078187052658259045078007869898996943981974550894029832989926025606170189410447694500105105779059779473109534071296967073446752916288772682412515232596552383671517121662995537920949605560459542374826587977058040588900660300979179183351390743943118594268898152762021557786983119936798218337612436722400072430641595758303801327735209973289224569099589376067027598969450524747622411666820493044417118299968890670782909877014948814967187961583242599930410731903547992859437613738178493285705761031796916017875508907050768216058408453663725868587611684104459867717256583483616462689486496328366960053829062371588121859815843606110535712674816425035607557666748815480052382667481048749277393814686528116230390265556564430195690959053603671806565694629790535104218949129750889689630971599219433556568625785349157366948809217862085532792060748123470178329894787903036571515469710962602826188788185452297031578237630886650615487989255463395901650240516987734249511009996653306203399260121125942976612491358119687354853525156054557225611182227776062982946099548626624816092387000534440888935091282223073088041152991311184957856069170598762038190389931831459151346583753194317429222372721792139598961601034501842449050275965350288055087295210516769370061065273493278313871600773549724396707209420107939062529054578901476778518107656449765866948370298221685246891327618186171119131288401329772001296357097907461671551246647423746257705069964823214777977194561335394072808582184617857080578547860068465834610760703308354095280601379478733807886318877944188743832196870012643750481106162534377212341779735135795800739999862110523805292224029701481686156612499120736803046591051305724189087341223834589903336674956959932855358040572447807843020610832925123663256840794577546768414900252747026873555186113714193265864756081994748125737668597596356073098397578861460005548150075718154370954263089106812378275665128113215440725260715689095555013979059848567801819953768550533000746890298064629349583375448260406920536135957938483844187090589766310838508416337829598335803296447974779995385220730350807106500215793691755014223627699946084531678028763911042796875126380412938859266723717690824863395254686970283392213833676716907890462367856939257601106480137836948793001293881783581301560659886922863522352792702796108459863200221849133105874260770258443955595951525799225908008685814491149541908596380473399376851566722499530312083236355688832142796067599867626880358988735711576029761163861445174666300192464813114514860488740920719783192950649082777694812467000474921725452984714738136880463435331402009111116866357608336499154649731376365991251909560392392000629627191550110775105089860605402951240304432179120572070431900386923254816958371560891468707772268261395703175382061044873370788400180454763467462829907915162823896140251805220167071799541401540302707929611644527820752205772654569631073217085413943089295116586330012297498883071929387135190611108943140075152962588217881277105067806338133793671528361327885469965800682483885134887035221806093482402685757850415897093880503124085003093560801650432744774127681892303390631840266787118534533320494908774847505297900682061268088278983835952644883440519116112249497169414911814284028995978282324487126485646504869169380459475260657049943097524186405767517273589312195411625604450955948586512659241891833528261725772411615536856228192785304273102663164038192703689753759567629827946915071203692534303205886927742914415846007915744948365281563665340107813058230656758429644604660258721298058421876394522654118381584320069934365898626131626738486384913316133722031247328148809027563482321590038076880833059371110751922925945790247073392554966344671642430093926927676840453180864084124855734106935413674312046015325684763152044287124246089369765267354553614969567518129437885536920694125443250280769348671686469194881535483587853794714230764280956979283371719510741171105314642571634426054188305432957322732126242614637294399059684632312545397166793160870521061297689856939528355094058756971967311190814190659267769667010039420362844132997486358162742659666042230183410314064364453345709600108053101623838384677817777662660607875940344555992836380170135334977375271941906096074503995675698859619451459367952573059836601505896357982913523182981949463206612550447708897642981167366034813628241718744044318531594709148470450902700002672922598316009715454316103258992338706510117378224464308392248539265844426134530528532478213074207707667295972717561627687322216479174525070614927158374953046447967197242326314909144940051517677919913552029171774500567553559503370704080656841082076901256357898027304968188658916509547684226865193979479385462377804622829837519667014070690526376649749736749468879981137839700020658070820806067522642932819951931460633038240185009868146940991598088418213596054254486672497141155852753709496694856714275268130142523216764671470593878647103148113300193702544201248264299721233762840800271876994541370052036429112688061047554219584882107386226949540243335787052946112189612003318750842597461772729329845544498007597385858272437429793633146936349283715966896919286104412651166254106035578499484860924878363759683856899106915903971350030450109290555062824082122501823302375430953073962283244663050094205318088024807028690105833083571623625686120756262879167057170380010046504636875811109278018029776105525985798343049201757068291331823611614219829973774288654555808116335296077875651811147513825680942129771994426784725231298853971177148958023520813671876570467162669525877199912491087506442747549255852021671793701129564577420056700305653682789354223252376974699335393716922288691822003785608007724495644552805783306217064028403558508764172577355787060439142605136266670695070323426427631710014447792225615110337022873781054715066384257697282861938344808404103430824405724261471542504590185535950918205525429932996931107152333005313852794552791305524770994980468602241540541775057915210349451607354240794850040068773037241798048188328549587862583910864789612792362538444473475333840794186255864943538874115915623472635151993472692603331629979920022218424803956840496120860182595323731267607604799094735183366314658810486967841532563278317924239482145777387192869265302478075891971610961251730323596230547139807141136076904225329238984078810666914104348080131380961873367495416975451382201913941979872157518303014622776279806523087464908799797487488382594565813420381404166339444545074986772024548956590395864001481050822116593487962623358293559783571538855368116976812825573678212021332743609239783285957727300281147900407306311478386633051131030405602619315024474225370729348568676774496398017924835638093933656931638723076897439321498620045439672778162154905420772970941052690625219915248300091264426626885275049410425392649683823960267873115376174546145538956595629612057804303576125365100573084831482209426377188174334362347492310141810805443177699931739104996974865343632895943441514834571707572051246614715840914290517133018377545791005599961660262316711141036039487274323896235623354605338294620059132699402854258536089025801338166609623157900807813417943223168363483789564141894917611245931406332065212610255160939918064940584146015823790242095609772787661352822334195440526104647750449623740317868750731215791128886141873475237488688345081438828038646552299802070570861874670503319142237271277834246718961911402175600608060453020445471997553528314591996410387037115432567491472496502701395782045498836040124971623022064224958536329867602965358932017705653140249561730689031278825175608579620607255272602489904181331429674063238608048653401825686652833032469486902792390976130845312396212836793869618789395186580310253717810306704636411487006531754494898746971807594899159204126273583215703877167846412927418882318598157481042527098944571716502201715165368633225384586845620705860343408223413735460836015144465200870368598730981884681993874495170427414022683838276598100602487769815852786886523771011928471484804866475671294625586328647068679760233196445407772712525576457725506098540718589106887333245295207129589547935930174779388355487133743606004631476373763771591681213942978431660952641932635239741216920831946684659563533113126944358557933580429745715814759433847277180218879199764083544685991414483173303523316600113778051222131675722933438986935649330371367191742562262205692634258535345248286490959842635671944728790257703123340381914206947222465708136472756190972125108662259111032906751754785087023794719083543524042011041877919176800418970729800912403254745793338030694550424821641187362387765956697474212186892482308939206732835162635410204642378681551056081783040698201150571969510011134529869073566245636336455553887414619771132390107081925308973820091847195366628213530724344481406960773339202934609630364555928272291141470056183762139183646733898450077213254662985406431672040881051947939450423523562028938672038747560883807554401547532536763897495601516845838693788242792976543962013715746501127338821140531220853738233260984213925589888790895220404565721205239290472763408737590680263857194124890061796152187430148127337223778786690911008500335606126680130418016280413967914611914768670608648731448555057472686311601231321117071471312099642323543907344678028766613026622833093631207690125353572145345662879516797589843721077123616825949465248955696513476021482974347701460350316170919442309906481810894172666065629071195590735721954298243917543888062090645561299575407154039177541473389811487995112257930158795332377849062858746491056604312338719619550739923548052533404727803953641520844333369865791682409731141840570611931189961717177566438255905917806598315857876622625888256055883630117201466356431241758068786253722975387586667339285063079020279303618094892837463284472778952880838081515482119142604303822803079356145442882712737189405848241042251964184143328024783956734315872084231666318197766481338650384347297676386860179034265139282487064370316716084154478121189923229168798207711006209172813664037488907046062363995702274739503369613966378780952261526142163553013375383034014330293453982822805386827489781488144160543297871811236750448383929479353664207869849019252750966553963180561796357290661761983941970624036232026043683318365994131065814483244306553545297440230540838452585458751231329688070418339899276810540758622446537842183286188779613665393983220092949115045427591233809656355001106327248976991880616080534765843382190511538459113353133503116073185656629334112929058711582529584595389343645682614165676076329481409620356629393695102146624046218738683597595167372963950522429958927716843184266990976616777396744699927056189422313818382528481359132577782179868463041925501856150517051522766241116969689035775541585791640434179435878584663927550790701988799483161709828651370159249038046032230383284789251360571946665070850521321152905484628292416013735607931016726714098234143707059094198420546464621181575432161852266437517708122544227016048204280395740853207174445938805153803029291493948311758866846968575113373810471783393136765635713295842276358490924990988438136599077862939781203338871044564462168279625642180708494993137890136183090795966814690310895789990542278608763693081154034542521584574062456948827910034166923866718303533513871567402780768580659413217625502516511812418871777650977234992260347493544639577137784974335086026705726295387696375887756011320316007989051174922394684753530820434373544835495952972433354032807730220732876328835339142104786106930330222042596201510510508422032105933576768185056651839297223890465825736069988014378453844991167111361777761378327926916039485237896187069150951192941712492498817201146876904126020315049139019262430340416124483449352828254900691423841918134064653296785536311774404336002179701859952672511257982061630980315448024780985233157832529137245769274083766988298519169645387383017426073908151931713450197472564386796924214892689598921776391722662764203801467288649036990084980004937230749106279927008769645939486490102778153546132115689654596403256938522094751769044314522805881276530530475557024507425747210211731956452672414983961598473240507574990440372877102587990064627945904313034206992876099263217036815795085458953340151226509335648214050924033735642100590862146080798933234600356286526018409063955180291622335612740167891121568757574091130913084740705851472863248285230577704877467514874024850614902224081404293491350372807418070747063877024277609884759624185595784040317225609571087020030717168262906317286128582028106534545495309609384174276166196450445938084930740526270705865637994442836110022350873596495483475273059023273188811175903859451556019617312535100662313906550575058333744955125293527577864652561155266146715512799425128936312711982295065386461445325592016057626496182987213332050477298215458687714886772576801081250993942546274865216605349564060428816289552796030184466061896966411501748414306707038496647154649607421100064432231147598458148039021845752109887593693862504160918225151268334111040637725694020836326919245644951169738096672387026316611438314140273381126163766271922600719662288794287844232901928905241390379699757208656801573953475589994892027563012808559757166655177304294769344064536402418079911429914997725511293223142429579704191192825137037162125459117911106795315605884489748313857749104400445316792630988576336055691772145900849550815771683257857928858463455666216115063860584097071212277253774339185882029730815220833252941058594359364527879224883333327684209536209534338925119883661784228806604342995399631121979015280944739615551319947536939552645348074453387106986554380009091970858115116284872497691192994179321028346526311834444790948420330239208131160296475521397508233808421816180319544680210190893358195265799345249957731453365504551307723364029082808369363097821250398053020393397013090691997799272415070877557854347497641613934588343467172798845516856199996410886632091380644714454180972371413157431143842285847300681648030546240375746331534609208574138678884630414266436631500868011465959314710473774594850210968575253139430617375005743810588134483128666483210555597246588152204452268392610119296360593809322013285532478889371892834631509253897724400030786682302912883297000633658446679697921307935849468464090258136967702347920863328243810088618031424855728008684642917276410680822938497110455211438347760430872725244741400361023270888290720436492655524224043546582544692003709023215259515778836254441347452649679682446150644132974076790048697830608518054920743670591908486606554561708794654904601527081152652640018631197985660173896729769506255896890526994676629325958364533817740864803356893844417926762244720970915951482505953529921077575544261423602777638750966976442421429727460018623890498817218099193138973511136707587238635597485643787906198378310317393484892858436324257486681341943011680471433943736781882601647524148146001331545044229656342262197519365921984088513924074035816269560676151224710324889772353880676644568078353032341859763121057840552805959909751858399091338081027468347173122455940289408291226587814404010339040158009295036268247653326033718021639890256160754015645968136429411853890387608159685431847493619361703676660742045012048747294979950884210116306786547968465753899103910565786516801279225503726267917718878849580790662134926986724942349226484080547412526175444444915760977746323358202550210698034298728499283584720718141365542660352263922039737564509880465344534736139500432826743761231542372938018945103892725016742294263092100343864412932196463268352199741503853657097521868661833558621825692725902954111654601769120632785588877147753069437654179876727228270015501119218402319505921388032081372404323124366795625704142121497007297290325168126370318529929150837042931392186233748015227968272658351814163545830424435925909534934565093373514626705689424156881501671084957334984658293662493102143858648202635765396024137104772211819512951337241909651376088446480185008472993728463010990655867036288867001705025651630414613897238125940992265687408111610501818194828244268416567304722904582961245136384001446923399370134667952861603757782744796706773580679995849989446495907592811165355040555049269671411829758390834532572048766529647250189221940124196568287929683191247915200671296020335579637538970838817976115486541291289335968298529576862833691326895189832875415341627435515140860280236839779706521908805132399093306251741471221017271276992626121206175590901281919670168358903456932248517217239137408107777888238524445814960247440195497125918058610386825229152241925178891052020409334728381011280667051460230117006260678456447411497878429893251842663550020343010486504413317908311420222034096600261000353087647405222770331902015032136476891507397943776308381905799898909664687603031144473055012098631226320825319410831209495653945556461441215496858573857980532534569640166545098099695128329945443663552926730301688096112600738359054113499745787904560946958994047225178038882581466253611726931221299147445719139548774872780069938419162860959455491702273531899100353887333177871964431433710078217009467797709112839959220033929455695956293103579925872898929108514386126729981276042681001938802390703106962690332670341052420601796703274519342109649769834350492931153517166779503272511899788032231555116195658504749599259310501614786759734320416044475727469558187046946028800530657116056236158262171142348148627085232786714207039888616425340246870146991477293729854196662910950863605692813665153070424882186622717226316938672955297087766748182844499335714420838615395970039419299739075374954808817183107292760819563802737120482043242453741409844703064381908508094870871880895634878826854396301318045910368190799511926204901276661578687635471408320018682963536446743074826120952237608196592712048921049061956556295717295415011503356227208679034317203824890854801759318709100002470546876221385235036900181729863144786319742529144189490043067759476125321105091946477347408318195114716016578913025480084925595246387475249977152465838621070980309333639360152972475242448695649984614075563286360051684986470544171323942401493716615856108594076999577511684238323239434023923703008562234099040315018497491982858884685428160560878958081419643524179995479784670263374413024229633658706076431270959995626768052807676114661281055739454126405133855534127229762329580070910036297890923539834361503402028021675042444137592813910758987652175420923863087542464415626626858089875527097532206228480370363325193825180078172316049455701078802465448653721192971562248644697442016055547233224089230937675927205624862202598590189852190099556768679502544605441468556700863873905872788535402728786677021405569268606302063868717180820169034374465306118839161180324987019462656102863776115798131438752704626108538444170580526860305891842192015558287734574015000739602340904866048893333853118027140376606495468891041071533115910677560626089469052006318992352334850368546659485065684053919163696210878114619547499410316651332091549802841229192066108206129413920982302255648970581845225647156440950159347213174222802254304454453387538128156697832613662541557845742795005259181266381508432643555532959652717709963517018965012301857395847340330572281365044879864767735968994004454985420554930499279189221843091785386458533571699822418896984432521440853194695550545037630884272531910215988553382715950490867432282540696294841870386310880865892895754317890838375157541196839251168636660683474106895479968709165195435420975252489676395244190525547602075638958145689470274864836098385776507921801866460154780636606425172973556106230187446501024889402889497781456506703872934337182221378618413908288859212489380135521659642309079987782580912543423132840902824604201766351123161529577834686452945134710557118689175152197581052192982900627041652962862938640101380627649748144118867540350199907009828452247396293448611921815492690370215783701190896457860348059744392719715040540394541677952096539912425978834322702706979605422940305410330764560915864063593902244501785249039811955443348105055682740194534207246817030148936347956302808501548807298836114182233988888689133645639990495946038917032978329028543786364355541051165320638755638066921574321425145501811280176869256412331270210019343751163727189209649504103578740588651981178562210961362657286027485546090239194622770274902871988509318889030213602321862521664753317945905075626012045176073000451950419750841108277859300404908870048914039774574338084954814860396213720192261856766352068331653634366614358669962840871748074880188061770104266820252558089022847117647322854726424622755269737465014863507978388542181336543499194069261439374785310628283326224025699184778511945539849833736904144685992268017874636996457452821072712192738768444265867759880437504784213622524410120659503842787374790170125246378431310482816701420293220760240348265396522203198041111784957026360371263836244883856832695054873826454175052070594451464145440054802661902935364526821652894826033097088197011682164040470652464208641137217723214269241976141495507149815874403587593367208785275019757297354723366011208288140436231852399195478896147839264546727196609032603507596946553774279849329997874913953514691709586707548506900672615570611480008269853202915605621232747894308259314070309978851130042011306050334186215470670913056015251030055979937751835512602846479122813106817201655166269263971189918085948375423784817645055148472235249500663368553626016703098081792303226699123146085225505968408080047900270214253376786838802839357199354077757222886341023562469967605594393673911888211614578751143185606638606418747142537815487761652512774895967255540689240661721162900628011373691198457927916928624649852907362515751186061019246892500263094459368988591439577810399865400160654443570785386992429288363682652797473648530524288822974429187388331182338216405863427155375186556552754771256179701955459085731211696918735325600767154031642899184101817681909725060944396141458990500816691168608874783076051565022836448920162890611963702105449288969523321929233804521503562098424473337316310290121150280863762401301636418037739074856404831107673955923566821850942705704720289054843169492242803860952135660557577613734767499602253883090592228725957908171881612295513685235073309565401813051510375068983499972622251333450355231042781375360290525362851031531744256971233072133909286168624078625760998396379737268605282263264209470025933393312274061708011475898522750611438821481460234582447365124951173566370529923782447613400266402165085785921278135207151440489532249817394630231302637269292619737422450639832198708546782941579867680653607798769833894448103160412943120111316653157804780958763942261166084683446968281966955739888325482898814793588174722279993018173213133497738651891299891934642528871160241309489888789099348264628253830404759456381470343172636685385431683017721964638497903177410570403144403883544560208011392892419124366114626529741368365899158651565918270836979394880796403186368313383294055374889401128384701672532465107171775672877499364052880074685122730148946972643845395809430696167394405020758248208228421218445608750908374532220117813608138017218855109416162069436856389967734444371776268086495966449071573554580761223896656937731794761643033464539502968960080301056786233633429559308939403518881485848900518863608137389030788879683816609142507686385599122824512721145782228428714617432235256513827112467403552206256533966172450527238843512919806217918280411205418410952747852246953106460917723278315562439995496313541748585819296152743500363252680636939888404584891562217968344086351470587180574912179478135515455554427062892919999777978724298238708830401461750831658661515374121810826487677250363471866694145818724855998691720262443873225027060408401774587979539301654422124680730692216776280150034336872976742641370333042406040489742598767506605012981789383323160268713392999299979131688882706450460578119307823007345258628584618944158607725474462303917536916489738585358214280428394521602906985304677303732535541576627282874225205511134794192476705352789906178777295077576672587142778064568395506593770593469717535270325009209320689166145518847719863912312885135490223733355086096780401110549029906006061401038883260712726971289784225898470073053965912665687015908308728316204935836724754512781556036884892166793952219075606406400270978492837182956304396977475742766506081694527478669787083195597809447845799902855055628829741054944065085943360741292375750266439473033428479399070872111079108329684012818098152769733625435236845085228185947629040817512603841267525025381527705889311061909862152487003930339742257802219279665120598459750681218404705738702655795159861761692520789001082252664510807695926084650862304810190696044605617311673776880556711746377034904446790379633463433438061618274920699357728452036102183627544724516705627482033800153694764974557001323327412292374276209417760451198587260749927622654373897561989918650710342760096445141575320933562990200118792372266829004141532960874203392626512236511348794393623905134260061613343996654438585286349701618781259550757189177161873217835374028673986814204040825835650496017646765200924774357430894196805160163267299137772344584013073661935857354531916215606767393008477029497509796465537872373842457702991899384546676731763237315175146366313264312371590914073386092189783302100799288374658407046616482891185199530039407888539482564653172794341911536447418959575235681049243047615146663608912545512388696758829108904707673201890719575926591341071244050796659490784162023816299713221090212789106827412422304467647975759444168109855335335495546355287215124708847919618767392279108350823958739637197066049782213714143482104157609870587995645630060054125644056258575057446090341787168998247306068939709291897898825013472199083549574952020469275443905691403371792195590589283678814753584155969998869042860945254215872949947041816980450065527592302853020617035662443005255173644022165784883039486199502422238997505361109678760419829688995120923178443362308031597426619957768110576831247863431132625953220142386823518688959152031583306931976372044060844251198164841160470940845590051203968400656087563812881546472840943524876097900858044892092836611964169151002438424581488170288903909041877364928024806531252447149158861102749818197275225877050897740739313849077541350181510952665546049580011229899162795766854704871027052364279779681288226985775175019048772247534668838334849819228099469822544732096439624958922901524595633242426264005437571063278290482227686199729214586932025704684596280053372438358507640175856286873232347936315881590664964880867785706939853417079451928733290275209553222819930108875294232634682380159140653030565198102179500137266935784175174470041307926945743146296459310372424272254101482511155612562522188988662694258440878115268583771473186031908318806159079916751573447372360899169890339312689162383112462147554263238582557930365256991495494254087092488928031714727738440457074548130214188497208372471698423539782472416737871035354833859578911727419310947861874480277705470798395333457054076374678409468211022554945063335312530321303926687023316068473879089506914779878023345264350419768690074366681691748298109289442395463152688363918712874780312785566623613697611913652296949392463146372014417461930541036041766459967270511105758381474230567511334731858856364460485039849520897087585346667644873235079920840564508697253856891585121327125681383265260216317547330168552962380674873984181272954590789154110809292461048727736576430196263130751459208822827209203010867549415768303176878367203821130271893737264930299379529920641782961684135330149016072793512685127667264398114564304265083829094207902338203083231478402851889261903257860474211712315887446440851939787170061229219766940068528469417060376247973700123275186997182359929861535481694082551044489837622772536766822301005267283483421224327100999659836607528696986565105797746969414271539367608393950072991982416116225860358108492715893899428603431895537643526415780318003688008594457939393322138988968752802538819815961304734474547542179945199384122771816044024703172564852939253972256323644422501787130421205545602305387419087950349430157132988803133811338680430317694951582888779433157044370229700183793001441351325064325702739185592507985355342335959449482037687970206686363641998029791940379822733021663417695726315733363805597890013834161780180367151201689990128934969493047070758057686172586202935219778630289234857443344393743005390431089979578710827857132922064676700998981164655478974249113011916693002108356049935063010323645574980053154200728913402050921946961068855954732990409754376514467925892544353394270960224798636230323687120092067326168776183198075187630770813633556592569977768264105031569352434077636162609111428517825975144513451278339671857252331824724595999170848931955127421733766028676242228572191569777147652006437960647705156950194637794126263541551330351806345346399831954816623969753496969590593861966722943946852152128632231050098710865824823430002568080751212248217040582177282773149528742963913602009602890635290128162669519289927403590065986551429497898263275970148558478036069505069865815490871843065848432105650557432797007353391438925151174550360217405202681792718594315091419534942969032426508067877647306735666981901612908320505135839410712623573982944789267695636569032432995147548270747943355017956596751256464741913238555876907999390903954816105675177984747893825436123818187845481094914206554228169015379020768118941719446997741428185443852694815442240732199474578716214713570136590042330853894547631053204766860907604985916945575549766801837835862977174876427891086515902018322671223244896915731716856980283065054829084036381487610658374265034334560497059573953770184913776083717912158975521469045117625914392624296310798801286209962745425816660269271302470246244077705766695310399087174191151782132482217284332579125306740443789851145483793117292957008357653379066849498526756341009829690161104630027026594207352502396393274700319600740509525589141573345924198429852033291539546064130580528290187354513870450775386809578862689534599348534465495671386604460979505432643262333174406760498197165352115991043083109671185044373941874989622367036802174088410735351343876546117932060366638424275560184570670118627465740700358921724534461626973927743151231525275160752659017209040060089097608504494039731304021447436564579744392386929651576113787451921720787211274075888549661818036649610566117317368641086037182235076174478405798772859399179959749051190858366414015764643101411787147266835354116133257114843514271402779630943798488420195361964928492098126487825553267835649124514217095964657356326648995208054254955517785345903604471428989454377150853062091741780439617307049334575011539270394272859822803380683724096831238069347786341092995930869319530599200945888729877633834752097078165713016528025518729735031130869483750750027699585180162320434264411472251438766419831957838332440439432159986747438460652342217058939488795428285871067085899306652733356859721398871495555197574753339487394025211591798058596964005467774961216978276374621987109051819516225335126775651805814270870028673516929046295041872470096360901119677303083598002722012579146534698557847304850243744289379648518102860442021216013061260896390832415258988633606975020404469407277506937290479178266373864629492564629584908667356467037250768570239207899469961404053318037769745853766041875455491186695302078490946818538409521680377388958802723353343426656890727425144970320188227701091758290358488264169289163179374786474727089336406239685464923721744899756917167692662343550510953888977663524200200973677387794362897153412653539376777904007795060261267967514917573594013469582812529763201389505763759780189912036448980093999637479808570739025656809961791009074660768223651791925551920494446436932585192428562744922820462962917225170677830096020439869638868278417533730960258980340724254969693610000633293374200497027116025445308787944283270161891226430999450613562024379860134427389178592937210213777895364299839929997061512685824066125186584275516536581403772610312920440921705059605704217702920003148328962120835921414991430043910125169389440968372147949561145814769562539218520860950583537401690365593010830824913407842326009595591352814418168275570175505757396991690233390518518277676217636362325689402247188565743082137472858847586230637020944747075444401872046150371038183335468105587138424595147873705198518614083405664087442381750155120982888494082659587087835656837483534807701561510234909034113089260072747481000096382711147790359119446557503166862138123724292354612900811676554574331629248487946394173129878454047890340462737152899331720149464699643035307381830433517315808943118684939781555954577868807665462532802080641873186533275266512973123494723765826951094922617718919036142178336216971730765051716314959766270776019002779461035868126977365559861320137743354323614709782801999659408586041366113869053020799989971693546224959238689437493534253227497143581999729621684289893599830264142265286462182939356666845704286047751422187337064974028744097535834094566419771316982389628583826606832650896176842749134688396616741430144096483652250495948940602251143772126307252766215270934330174936156699386696369353590974248286315236860036006974123344509329405392100183965774423318363314821937996035049041327442523272526623311389700443472701241493115902617813955606115794126778672073286433884910431951411734635890408313242963409219255290773038475604362634979869763995780116766617578989258519655672103239563374317701314741681471333735112380745898520239550522205389449333899608504319153341816296708111381686560057039398649806042794345898035772919535484962781396976705141037759296348506457484444027844058742928607142029733163543968942337167280702824737247041885197030985784617640119446926054404465522356487308076592782871189775671826296169628109846793432486545840691168006407452007611363719652791931974928265102828979177229632856564286476400412126921278791379729938116770331005384275104100474872283279974760480344886842910024202878334529828299150845738750028006330190716155884438631780990182370711049652175259434162702804000829270159166184472430381798708088422411524852088908179641621137261957414204824830859111155752755042181404089028601058942315552599446702065312562467974520582511145900624740752214434474214382737802618450391232147471168362456072437964082884744620786835355746851376375489460137986971348651078714714290229002432321870371461231299419473924957438133951841588504854561726056831230026604924091180008978482760731397504103415590865774650813501411465574874727883090358150962148189394840050882803180571460563046171563675009817422462722928801252844020494798803890684091424547969819042294553487506927885722970870454440244441028997647274968713985827460905856128390183121284272242295078093934878568780356529299307915040986007536447375581011573698393104697258243000317986808874531619992185367487037483272153377969700188026599791568935880288751917456118017080942627796320990751625572744405797754792837660238890892489764670344214768747894833821171868058451717771423680889725380004419070444861317395163625247208884869440801647358737539786581914879165722342059942123521679638086334832615266334058631386779187453856394254755930431892145491198135690918789974186757246775538500528267246960459432403420029699486196187532225414677166895116223643248203549392928816061373721016455172338380505310504460207275082934293195662072922161233935878522417005336071310172781189171922927164708731691908093415276127043510846358618767675031453871902681141857205154893191938031732566432307153967648688022214231683853033003987536590912881625726925631295738286237495239348942418033491796372581199108265958691380534468656964185611075654743313695119865393634220450703156821669975869974961021050815766635335516602773213941803962662304616725410860688863925674861029894339479682520798561824887266389036838447662129160767262054167437729989395113806381885857726480091750475522163279616702119530335423214772178451717076248260775662750795451604862924736560085399129768347534868661208267743086738072927631595833703570264970589371226387722485495000262461119503170526169345170132412829127150416478963019473594428192962476373717241948143154182836382055918118043162119932216078250349625552368763241745780297337923602404394554444150862343752457262103336131715475408063618837881427630594106796044708778382969761725978054815952540593457121996696569258921247893261864919643387424057700760574488118092448245164572230987609305002898830177735746926304272511922200889077230147808383845439363382061715168354761919698476657575300272637211415406586550153226943112698998612252895178369076880018879398113053834133879189329070086529007264813514909929796092353357561964412600031605934739455218065076439310109543141574614672363356472092335844533022213351291889518472970241085819314061208734794419253331749162847146418971621464314352510287209838581864177646395456341324174090538185587161525319761427269581748111398981248092579857915307010627252328735879073662697666530327206004060684200673818685684158979494272375779367413509910370111193026585145394386614561839454597970120786026861127392951336943936316127920200710978224641778747437830672592833186292380321523442593968267312030954483787340952223629827873549188975656529825306644607964732891761941537719162234937201962117837856447873370923061738759103936908591065201416628258256127951547745211673816624973985143858720530458003094422423339065027936873330732849892865831763538205161556408137014536141969828061424759784178600796891292325275840605882552262499512862122190877322429457304971096127484938972179197843884969334352100766509420620168114829281026720625061841099991049666506491709749944740843749324300723544951408749317448884046003579310299879776364503218159507851261879502014210226405385601668034499581937095488097865988438742027989857396517199494352473576990153419586791247041841562991055277493948974929946148897900021466839616220857159067945667139470417422244906075725576827686538214368922491384181110043227054791182944319484430091621690055291168794916800823299526701576620847554059004132425839775865640245500255929446768987520858938897531087394832269219586169858966406667649342433039829280262494606293379003815336984788743984546011947643281573955288648832721345677797160937474953451195357809404584794815468329477195752798186126624392886222306825271217253970404910592223463610846288586810887479014775886482492598606179088393573401571793287897653164207642910495724216559827549004825340189521795203804048351479094430514041301210605943206165110153945632799542917661491905593916463611774631990589096328121546408175982587275557290625297710411098966785575787691752721375084286575706559977677661247128917871040418158941238105530309286281606326045873091115543801368332773864529089163478067841099927353537481344418226183603729442083241325230885964306680034131835783727042058553637288754533469267171020272780465881317263747654841017316329973436229563342445497283614319139362590227386190983598259380559666166880548176342175415404727746532208270597137218595060346209268711029145933972352487616377931066189058478597531346860253534919909242331622617734337271318613348217172132208502221822148717798465421538469887698807440696470083936723590530146113422773128029074861276118851403379536049902826029977746966307538107957838896429063087546219735396278520340350163679443136534322835706913639192083266021405506318102885398477293126116491212357662256728227710289336424774597953553682691811378863457300179745664656520699975035074622739364495717120647578443636989156495559155459812941482464648597928313655351224072243537587065106748178878909128359045787035716051185059104810331915007448177381207572574483109427270797674717148502889801223726490900877027261520319193673622793977778797558163287776879257552135455436393376041968630456387941625403140863175788520339173956685344727944283946745420539143503883093527747923430744612214056143515906167351243248355613677149383536880520768281094747106544658986077851926557091110410113262365248197497747296684967416019213669626504439893298340005821821051204555640699717044105771983968613189479961082838855357920208134215300952973722825333676908316313627240600170059297569801629404190180133118136750591549352077462177862076342599514328652362355393781798373361270518817422190869268608377171380947237551290354518543294055862363548132158618368047497769201512477595702498299289174521874494881092799621248697092082720099851963056558458878549510005078126776860001935498598545256462265658273750362168614655328205404343349955213904505939955854263152481916932743506938500814060325768559730434413121347092227407013103651917754990435369984993247928468267911849134779295402235790991777017433929696491645741847556804425967861098076242672822680074683240268268750901483734625216525082664009243677534069800916394474613297735731419658966534745873967890274535892473518550055004788615368236303159858411859422582673661467036121153694775892968506207821645153616991953820538395114426255675689129180259948847335871796378637456867613750186683369424087785665236525431396204030791157370577547072534581153548789769231334935100577668932700991703886413022564341840598372217233255321413615898342585713154414893611312559710015979383418152145146991329090511194289448369469096271735712992661845219216550713564240701301657106140397843765791756507133811209705640392419409954303017761628127822668599836987243079115221272454305818287398076930499281743269234869836244280780627608447408880181640926998237444691161871925858011171553038108848851038349485801858837159759289827378353268292940544355110515788122631653728354101885898308212964104780595119515535876247048291919444465642728956587291235059365302810798756128618551573394852849883813213115303345780139912251637532802276189180400141794249164130841204469036072522679319771623491276368257585517629819611234602484381721758212435613428323637122848014042794025707558550615550487423045615281736861229792644165185967360574120841651142857875951752597692298311476285863075510277691114454623216459300334002600520331212817727993100687382301231414689104424138252595921454496827674057332825436117319256238470936449507115635124388387937245443752587826573588751071484338209513037133106539536345988609071309925330668847874391805945425022216552669572733755546922406330364677817452902514067803727078866990487555433271275239613972962930713976369164511395175739378383648713888467495090982443592102169692754022364210734645297975942777287060312043768996506795598235810740367370693787950372333309318023403902646664186274887826828126328376279499617361781188096080760127103467253282001418461179488577659531668225397534157952030791039856988116909742301604152860696634726178507024795153007750786378375295935447121436297250394375995512833100292610211310042803688904005381577664197512637277974658773409526660352914611786121852152066318138834000551008398154459019810756566508704817465927138748037646541277640535371099436967052022535430441140494614536981067693719123504202763303426785395902371396571364063429775666775029271613006631960397499450106472067154893848623675097026567935659132245986463474247678006165469868243755311467128009874213745518876258525123721779135718858730862653302608226051656180387927144698671614892068926030704782555264228175902367824135934635334413879101978953902454508285663069099233465091788560199250696027658795070130038488031298727776900158741691344600368150023375537346264694602962882391388473743055506261199789200072039641132223609868541960709894773801137484198842437074867275788272675621864029767968955306191648146625703991121002572346798385625471141597545207453712092285855650460410380266890324671618610588107315248701506050723878693534594049411767483641054035973858326868084331792767845115191438619820630609105480032219389173293961396013761096939232017578218242511271915710947940229578338886160823660956053414075170095061866177660685558461592020469617172033489454165497139505890173519510529683484290627451060207913512289571711318499465041136764934928784481568713435179966872586987113843945269918744523399364411471060331305458381060622547115617432220535862859534561504900404954702139141607353811014400155288887061821873826018634487260573502210007607357409273757621125713799945807947760810977590835413511430990525672292143373311562082188215510810845013225105255223416614651128905341134521253070981725076562025399614694428800871733415765827811537725625847596589994120749416641041484896257902020441407514358908036394017530309988589126738259781650342874879627758990551027877371950366020324431692018799066778203217754802443971181489788027614502675044158454154908930943787321624156099068947328581372293154613562519653694603053677972634454256635377664237657171155550114857097697641524340400619349034073818209804211642276256782168332255623341726789642107196774786982118880923138445585267641842419974098219354440456364862031971320191242686458551199803578653401263293288770017520707574439757860774772138382982997357735038473926513770074477018481194137972943185806947708499140962677165114635068484413161817875409344519528247186727952766897396844805466474782112726859401481715831010821420823995076974651525353728274830131384638159211803778595268230116595031116067684428519481530135528926036855309656395576575370783555085650085567081243913594327958104577981568632251484583782621035634553503088423004665781043449334581779468550431391198764980976152558645998272390428943492355160040379369785938371610219041157239495952303222664545236471653898875215378863900662663629350930815879368158151189340221335417691869166076987786572297641917677297124149268614517159925582794979096360787148422660693915151770918826774417385839815292180776335835488412663725428843014045269618682626208863578874809050796348932901374760768378782013763896542483971045575819400188899228088473962421622505254130481190466042490596861590033455967800616748430778800068135574027794777730315261388090279480859035637282478666250994427143967611138893317322583036716657953562165151460488982699770356945879235385176405994555046465992055059341353160753929766178949990002483414200797986009441817230130104572962193877297694648908929657985713429193791578267602290371614147906280517636662854438918447970490451455130463990934765658138656069322992695638096506128016807119745079185101652598465584480323213800788465065657371244255009830312772173159592620668423878532909526921928631874169473931748091841393381397460097577398123706497431242805414192527699059008808179211326071567395849359507319205500698583983449695633992243992006046196190996217876625982532973825421227874015453810898934205886119766272800302452285061858318400577930612938896856664738968420599808097857588400249703332407550149222831600471174179029828623529818014391891543014245149868621909235756454007145988972784381378483660412122478882397042857731995366101450308494570746803986624312332108685340653858755742899736558330809625734766780965872549942067585312848219054892581594520639268462016017189728805487093920602135591669347545677642247914457945872873702601369554428503753128397855801542927369773355227779150519991803119917892895867013297090420939386522529735882399072054828685480975653147043996287148046438888763440360839548687073425247616585899897778429273766083673170560426470300031568276807286676669156266683550197526252067072067607924368831293813781416770414730763926314692671787745392804578096485106119348908452671735307365520488699621148147666333895878765904304930136479561307963702257440743766733048515075805545550338975997818063166367223760140614285073424524898501712435666145788645795841247155850002464535316403159562501316585019424649638088785474303405491383185854700434815764968581427305935721335087803798444334806382922111505330483390667326681428257297215713470731200649246382190405695112952712634833957849556679435589161345500097630280666901572191210546336447910649005210052271365308252953247234528587902585401529280456834804286364552991943851031650694456609973056417985249782476235690444303488785531274735208807629555537023036691237375934896525628303016326317387854217449364530713324685836514561122396749866544146641228571701714533190342503156710094527071896947187010363135811713541610072170592078189280496683481239320112221047988720214338435218351634539274827342236786162080052717462247045202398511967697823169228467586847401252715146941796191850184245640284810686301416780695314698944901036321974611831401099175830523072172155538276847034172631108522154291198523535632166395606597210956468698663815575652671303789937500252535973780159302749080657194387645976484840131708991265280737274596781364021035485102728088542392411160597635495967974466163123206008111201643065548469212236138226052348553615060921563704723860855358087430816745598586839718263949620092612251314111035243899200449928939186651664986763147245243500618960152809107448233025498202103651316494598739756092332407490905062006368689509157499627120860827592353862136099932003734213894687879080348460574410269630102878368056292222865891628929632363004713048729924169054784885165926201704714617044660652092007344125948696111045099536370341946097599496924855779393363075490481783215613481474476778857520379544061359805655200224505584914900966436753738313166618196005625666225456140427577623004258682281508274441622720183769378747587094888459049452940853873616681073379690662154274013956317524335123549189290355060880206822505530968514757441584642989838490525272683212725637567801899436040245980434640964049065302027380982805260497945690229040018824621440679224696795158470367141235197611516379781126762270237957224372279239516916239577855526251087652098244881950545572106027568089126030473496917385576108528529113848343877058667306954354416824408347350015043171498213803298097171692173061422471895000416648317021137719639660665216172115670217422945081219527057354411240166411351267423462837559485644651903061668955098053260278904248137412704774660902662122529570090218279270170102193588281190807058885302021689009028948573968112927333387177750348140575068702692773411159873707629120400706914616119080267927568019872275072185339762733149194777422148198562711927486795218791161187686490479061564065055203590077970130623970926400945598738952115161523609265718052759676500071444066198140385160959326617376733050874689484249964965081673451582609908350890172313093375926956255190755341732826102894684704324386287918185972413651440782196673771682173655563402099162233575792592022575760675030642613366720601848898974597525745744896533811800815006102228918392768145092974289039977985863761652721930784532565225279062477900878883674957137170313808053300818881445745133993846394826806057370827519373461141255424106581024795523427667242094489668769300009456707036148270719192007582222207981239802892630771246018065791098676765987275822452942981464663842221168156662777639476302975249016170431311793218507444782818340438715510488836672269509847426916974397615444547868106472432067901924748361220040446969128831803992718176840321675498287459961139330169215633635348569007577359410927830735431549181097629620248022877240188961113742914047848057003970499725892181191896788740242628377009311121295701297715876453371308480874466896896458023857701667145765747147306445239483389295220263302694067906395165689865227244280170737799836651039025906187162767738217831954025848159273490495051111383599693395030366509570804543486122384101183632779698429363749530680116285954614612138430097845817603785591462444314766014403572916000915963888258065634289012889625074490891433653726061169201169710651983170502340502465863475994426917133759040122258902579123395400861828687397990521388416048140864386685922076474067144510953072240364235785940226609320943174342585740599335011353717866257189359484034602556452389946530357059869019680857532574625509555854027274710911872124147031943419097077559146816687141608705159744638362945434170508593079409273009898446884746075579046437924918703447727751690113745672978768583553708646651519807824424683072149982200308361742656812250847671948411979389987405887626295685397772620036241711153498540955010870203115440199589193761651243150746901632141484810122851576732453553237578925989717414617444539648265835363003876925519193768853861417978426063791819842840949398174166369547011880192985669922640142956348871091390889987979557103509631620368198063111827870922210700913542014421286398047418893116094917120953539115176034584031658848561502620016915917628130233418613937420605200746544511463618926234066164366429725746131202521857520103682821909400083377029184960644417287045192233796779834973753330359577624966611635981845657478126112329591338209249279683266665876743188343485022947953538093041550962357821331054269902920349857800405321932053796357773306494446708491416528257612352810735071600377579647520347984944023333969568249929254062813010530324357100927432181288086987230318158440408079463388966256507125168488274226274630458110927798891972297208356320271327435716738106630551330491049150936659638529055075457536891926205998915832989217958700181808435279426415793490036239810588316771624302020254249692445358499702041334115353452955653304129078020426214347020021347893815326216549827797475731939096059187753196594697791565011290632970709451133903473933129826691320147537133108354655435419715987726420739853072038146132376322325583346000761373523498137509192642290477037010569519530654081151111822748214133408045626095489845027240821165317215241635179931192018211842265852622795763170245292886661074933141406900558494352167892750174232693293338540225459944739638123390073909319392648368686219271769828053651687864131519757222026339483987740916619360011415485049120821061712239779244290847981870871454047842077352312500065736771341395617802912870997904021844634288368539561799789543329300618478037683640461500512157923372565076264111163476574629449891047370440061701623129473791430765482872887654734584933009091965505875197833616188695651528367792555817628769966898550513471950056305082062852528847691877267371949969869175079209360907787641851063184676858503942292088544774489170219411758233152737899361028944330288596698187947179909477014483633839008016903158823685360121361573492179721633915680780214089102598026958093756299392913189468626064553487267289537110809939088249423043033618256186782208910286387723729674624706163709735811184208272088669083305391186884817867582925275313703094828063362639059259723268979542165844547340180773857187820002269609155059925598192868503393212796610512415372513837308644132538600094587583240431542575247036501931336066385169691997203175837125139981853513407902537073186715739886696001304964474952447623715824749011026880648424684296336814798107024357662189727486859314138204287959876081258490240632263431365703547085963199544236232293324913251095008124191849964527135111233163933395748122328239811569992223268765169073739079215768835829122114663892606732661519343486245186460485750025200383450946903339201165427556747378001597438734964422546395456912708921276024696948744414841791387534221411826057420302698658634527433717076900940129410236651664606774494193620016460592195832380734414407339445351337487186870347961987598573115702591365962180537035262452785003173623206303420852229008841356057498562267226274366645062178373931224436885867007439241717289392547444007533499737495605624365126854335735165504785733109280290095338781484767397532133706413019896718726334992988042656019736407316833054458149535757449519539919766814201455875634880831412497864013191488257121452435165360805058929361720335253047180082088520687693133489954705749206706862438094624646579850735210342668707887494767160416616548274019288043286163747270918130800590117230035390562436343425745239562394438162957155559448747024612201302902931411037712271410010577194052913079602877442501827803558084175210973936944986451024724283486783729335752225374125922278132328407525238191463994423098410115263227552296782426157716463964034413219248024574546730940742072620778747591446607695102723776587930153002045296133215939896403186252550969889152745011740543416744197297112524657949212784475478018168050440094244947664303856982537214446377035752467423913353889619452515647884639984359543251487604673273419774167685913052608531644954978177222201945548915975984230400048693251714399884646403691011851909774897994483301517070639930266118492139448876255818909962051062958243105543444510999674765609555999382241926142481180654303435287893777112822726332777883214644062346622272946584570012935079486355543683393095361391549324617097528672280557527697921898385547106320950929814709592179616105744497850020969240149300878505281270657036083178213659942778644922597457177772743780061570302558104327884262529513671895375035347206218552497791720432768590806985211592328352319678583803629507302804155470197064145304533543702390605862555758667733644736427866927043671363984834853231189549511761533795454651075397655025416431619433815755614450155819446649860003427620509454878496602404539506980905601512053365780830222525195506670282377691929263602251342649258961977757900459220622248150268937612686404106561206279307880004254876139435407760314368448539431263329305599740587062996739730878803844782099567190219493010399113098880593847976830877850369816104827212475671109164741092752738291661218936611677877155363324253440889021466805876957610774656395732623775328612658709440823717141731152318737697983820332155316942966747934783072700960759320456454501474048006383893815456056022118742618114511512806103118842924465164792940885802196345045801283269745239958739032272405457081284572993520165373034815494399752442495023488937293590245472271619601487786950433306530832604601635430580104658122106139404730601662445412166959386304880756303888226995001199580391051297498682174600107951173012761942753476513097017394536026312367502699498578156965289294175688532364715071130464126858664877400792391032773706023041121041814956758701029592679872420881358041885937137914427449236550689992240927656450089890024369008011610772644680512300702391525282112618195520367455931976011635430162284854285402009483105404819067208257675631012590060669252973331493792452928920192828825023470769212470213878887013833751688270661453332833897989643637656654657821142445399457024098342255585668340300583247058737568826168119581305403039693309836147495207911031232235464666657037888185090497059298230112915883552161337675238363120353930588265777749792831502158608427985191624101938210465978504462386607960365564699342660439233386987324150244144628822164625180407586930220014555291750894761783006457474051074199033138168616782476701644148363153527411146167487693397502782213530587676087788138448971355962248570615063777080416124406936704340566912660964563562021768225479528926758647838590595777015532213253431645501245589014076209817786424514991357316347361349327903088205793543035683590246114228770871121338069701746104966487670364027450001740025183954181926035936232507040069536073076924007546233804343797984138226538765896908089910890363559605046659222231443480497043645845106525303207126292534561591016554141523245579679050929269904378157059762286331273362182775351258444256059676124535238811118553276340767479536807697123118235676437230852323522904019949476702984592745297023379963913557017425499931077010471229994026905027922313169735867811512461960320278333849543177476171702148200535458334242020580705373473451038982797196244682627309376855459650748624726902537162014270118085401165361300223073078645053433342907236538856476126569989332894224789073348250680675311371445310340306752321814941174372242706737288643293465398581064230747600119436321452188397318182822749453580386628474546733424301892843717055616874550279346786305349684010765861316498885479075074463888089588713339653517209514600419634900703043904545749353253837977545421204970157338227452830383937470577310090715908820608070956851533067345596700519476008367575961615205449478704904035942444267355700897587380204299549346109054012437976428467117556906541698032431670737224979956950057232281073007459242508199908668149694473497623244911618161881749836488099059602002601936434912277132823811588346816249493277927877158263719035587424802258054299879787591462726930687870184470879661543308950861735534685319058625258759392290161547195279755332650538336562881503135048129563960655573449245532988840106491653393153125459732154974133751449279176820319009203997642541447773353524482891043413722171051109683813539463679483924466599705567035914099690734801978898875440769205482247281464191315019151098048008025482522370892955993631686313584898740961187495124566072774917350036367581583764979183603609331918059583047055804750865886036865251295786410124481716389299944705858629694865239464838067399674765967678227580684148442604502756446387790547263615995209987645681647105745918252932442025508676493850914007064108277071360205384593085731559533952252973186652019444284774173851795319451680105158380314327404603056897961082126442364876126046416793547079023271601170696060535640083728602378826948205487502062924584027625935148535832884854746449330864769009616771542555774226321193864439729777671753082377396826091032927940313152680347226337506820662061029106983809179649259400858158593047228793187099561930800441378327366710285757790301049822969561497115172296456344520715424552361505869961528886430849385306534521662433021451971143726018581762079522155150652666802332773530314625156047815218166800848420454166782976757723392695414781856557376339813455949024440293970997923087555229513728514611173839242825509290579655623380299786484069078455307883304021360124444787121717402660407654621726643281610838746568952103115424230876726497980988949028473346265405929161616493560282995549970481541816891729049876168576179751320353745990919032411260548503190065384076842737042081873481607283035168484719676687369113957890188000921873195440152360037618643064703832091864657743387382827679632335016249663372379962855781975892807138604589199401240304121953070381780555241018521416771891511979434200258456022592440285432372515452933539381979920880735609293806044094050262837828842341907538146650947876281810747617891191047189338354050832146494597051254743618050914113431417217569720792789731664322533126195647063362479269793569681183444348679009702829510501825114523668705934152695927338231953333787957514644899051818695860563451508327525467576673425169547129795825251773896073385595771336034439011956167519342048412370817152850875158056787148433749829452607845180024558270505314346442906484504664174021756641020061660103848416792018605251289156924608447473149214147187355623640817859250782658527237268611385392816379226948842305115960969347218996399814976201460944407434065536876281696575607484896813037944257250092271401223105265636595457981379965950592205603583051730022193252312675009778886409516194141732666003624995401638755553481526771170708885661825139608484908693403881495272460613783085361025123941884193710214025455340804193179225297489063343340941544425292908541678421427768222112999487261357310173949882306508834400908656083725938558991526799299212645141910200652744629897328783420153764255143095443598080790644326232877021761554153825600833736468494044706479030090525177479305608528114901755227679548297711784037091241250838393521637208090248077330953392713944917042823476924330890530834806406377418485041512513939093981752962806649866447357434317216770984196844759749166275327376252869821623826432305356781484848058588653302839086994971643397139700178061414140416357002350680231473421804669378160628018920758855965413711352066875020253611589787508979978071966246360028616616519598657400190475574679806872202363754965497428380770675258607049381603136517420046925965643480334075275448064313115878270410686228907759209284584821133380155188514525609764936772941762725488526407069200386945261556878724219274346680625250388383170608442229333092642940469795058975131076203032922434289866547796766250500524645721267247135180875524077381494379705357370284311335245046668162743653949952940932990812028606565284536913417695195499645769630255012182986720357173377634227358360693292891991796029657084897862397595578118446903182042550077530150399402285870902500288563167581801519892494857477740204011594066498976278114667805291309009163887409468610999049672443812037158628259676098298456904809560499597674521700728859865071416632584277770969096639664989677124975523681635957566856049847596075990220971447358595919290877232225382909199153113029013491007628705736576367657696393809648920924489301351963790512707363188390163096874157359364879234683157057937737679894430914310768628116537394397522202872295571540270342338290399401218122803685936371394867608662612668175229587411300540840707277830830555212317479238172344962303342011786434772843771290316700510877809880232154624222571175902795291517870392652580786239610222454489196209820132049556515582732541760120527775949728955363356742220472648645660682458820923138414668624953677152926732862481775815494033738179602346968624771683002241071021521210355500150479361818440211632480082839529446278043106835864086804320013898232772816195700402413637304267914524703107630606436374292745865833976169841064059342542618293703942245176832220667051810053472894296461106606172484805619542540804550310828590782321859289787118183241945185148263355911652310723731710709726917600959866816375069277676527063680742509012373444121699518799454677526619885499397111617396105816272208169887654459830647967131043483193513283879415041265290541431999753747274296885477996590432078177982550914805823473486027833963349887994205711787405396491047662111821791584578183302917006579065510599503963092547681699170588357168991213357149517215210904990950685388359245866850773029556392807682437842430110480562960911668724286573261344580097082479986098190522949176791481633198405322554593813276210429853188770888345787285996292387243937063031025564254349886081275993746535110573916934176135122789907860836567531052875609416133754191896915940838182125038458751806251065701214376986924738271455444538734421534120315391946243817644472663550617591413846912419358952600016074960037260585672810704369414161859853865199366528884889962665170046650016784134076421450259118688040776690248314263521686234054397173689691120355907240607138269575350710765204278526699623141245489706833618668041751001034207676393247050856125129407598540493508828443706150038425616926446445475965351858769398425862362013624545539410371801873215212721320115886168796803740721497780894967594597582150537401636153642258408899180168064650070737632476624967774490515417841317274567244330905425983335458619601782122596365859782110423153478109168822757229718488000979649608574356877107143155885922311315623851085256781591964243494726681798599583154775600665011884862433595016145403163468721069383479763499831915168589973225317540060298423362886914684654191826298256010282486959203757831418640426611086880453902136603670233657705951062678300014622622474235700796587510668396395769990577977999424706107824698934610097199844740559314704907090855850737075174639624017838025841446524627400974899308638019721604496773478009813358632785704419121808348218472047338623551629406968947825681828984663675673684964505612927094437957407480644364748955055975889287727432685511529218264980098328231476689259478660369031319585613977929256656407312074437008471642939559746423489482738784914335026707315983296432434363120041884477107939227226756747471174599367838090151242522184341662562883186945460717478527916822533473394668227004437850927516122404520121831895726650915909907912625603252036333652006959869275674234665207852807284570443720793455749730842057281903235453446905446665760242485325194786076454154337477717975598138043955834084577037946952718326305686450505188434156107624237240596139314437232443259067876491128802731099835522611284771538442034848621623199633424746632198494886207965277983912818993671453252515165349396568496783351733381845623025594408822277460308969679634599519095495548361112583621734020686953373587794608344832865617148011232897953889855383332322246792655185163937318797297500395805716082052645310210210319701055017229420102245793587658029531051505419608404572739605737145043994680266286853645943586550089072641263782865795508190111203080703978919682748101082365393851702850713463540396690766996057733291924618098737513686567075589576581219909819023299816962348649455330355613318851206016787953106389239641039969241173966923208142846469076081244261009013996015492542832961537240818608452038612235841476151940062028248276448728105067299704151600829415745177387785586847111079191307373573325727364358360560156078981473928766296672645355219617376521996658516698456315734722935222275657765226291204870109925342679498517887380300910940051870525175926694957608648239270790141495040734939400966812644309214845813201807633722492624018099857471262528174352005657362064056757595071921846142178328311427342501384321850833030246724981657473701389763070543166373127862495440833182322987921410597479648930715150291739053766202012729406894710718600293006398767155358671470065451405437892358397347796905773504714791501005507075406195845062357958585963353336845066332037546492075279306943177658035785311151318264218488027837961452998381427239472331353208573528228347136652448321761776019935714773219246422974489361792954898095950992199336807448094624594108026269193492619584486137091173262464769658600488101335227902598694496809367021901154065259478143412661799988276135707289446890301189438881653590663923942457093198854542142423775755829383652067041052410036046674567808181867779539457323327923299106262845964731213007764492314198660421778232164368979014718434860380006331462519007400196493596513503381527641671515767096375057940011526214222688138020259177965404819362056189988568928877225732842267781083322416187916785093050223053674687431390568471703905787230454792695766969754510124790078288868904344765674198311165875951638419701407667413653877322900824198004081350777894146903319476515321228670672440628269871414820364693579079736305417837529544633678298589002315776746885221895223027804768683643360644721189392089051104337740124517906826076703948371277295491794336219243746367149463718590024250179694451178090742781450272942400284046160928148841749634055213126430201040817125945652371798259795065002892680120536698224532487255330252267715673110734377394824963413255117863204580626416691444975270489220533008697742172362304263637897883542444411823733185126889669463130641554845280689618960295026039916526909304070897844443099133082782777908154306198780959522042662775862021805567634539476474715011531327610293936247823689064024988270260510046242803303578400586462157372426627646717355007137524745000963295486605030199039166774507711795868116544087105333661057362679675930070628162395738845885057700577000722961229329349074412800889550175508374030813372541096228497795406878081433722797203916289325687751960638706962932091567692236285614408203992261892249069250814695314974740952906189953100834766817794497560734333985058916041104244045678559886145447396019631858266799182289293996391737679071909150350538086593454508133055987950749832122360715013125775083459570157030210548510977222444270255570303373475640326955374760457757311918742143773778180316372760979031861370900744590709432600270417276713159867255976675913018471735349123350229117727521517476949849784472595978431481834677204930570513532474895515310211395719212245709009232647265870977061779899140443132654498772034147201590697000141565349069289492971948887330211556012116018837901573281541882237384406807618547031738267194707409183776437739818515362360388566893520146730397858228240906362825762065136885271025882713810474396842949262514177877179754396208211880522964774835567075740657340107483178827392774703810303728966169037258456227893131443117250244220098044055297046302664836855307102556086081431854931486037899130192894994916711517949067254884690507020984098298666628039922525322280500392015354223107918745922018500266219529033393459977764841178220677884302035161334192750273816680504123726752169776639668421447595000642986939381905896408829614462630868635132732457851657476596409308217901161470582083117192042367821932535472676001998030245229604987570624735734808667824529154774375704160240161146405693913074056345248338015119346503475237258445749350466435690333423881647020220150342440364978489969128686148291360170457077264512722857881852108827172683268121600208383977287081951258578251022364329822616681604585982764995505478196011495580208055041368522271750134569688947592312581836665323194193094291181902590263914901185818627529174501672883802945166437183977388343280807618297075708837626875183995981718122279213662603713642046384748459389510364763771674453606248373734212052455527055240491466796774488593226209306454523825272452752053335741100124243759749458695033245596300081227627179873801673187275596756182740467724860492360623354713825472321714457497201545224605027119788923813886278197684969470732544455771455369258426642970309533785511707125396855429950000777412071034118660256922693196647863633450186496035036419974188738407880174018620573099335823700939674824442899041035163427694535588211506455133884197423684617400500436858841573271311077563671047193133311416283180729117546469686083271113661752752404676375061891119530818197122346749870794372500559543217425863817637192769424250101173247027259508839169352770681809661688565123925464421179876504677672949740083714444478980484854886821722550348359549007812310511001005601967820566364875593645870529089167343298099454979766688005730013228104913716281321314094386013285724441269238366156871659335106867554315947437860191082910372905718297086362743624672846545353847764418422930484202725571491335173296881276823019199246751470197180472218856952569948367431551607497729678742144649152590556724286243919262295778257146982116445545488721208100476061736989452170374061586557180991083695513974060324768675393785078062326370623699496608148752970156657665358085973665758039802130263027302166916309238578848322766625530767106356781678467355483218144570362291633815210785621514104684839075889135817481921633907711396582964519235382091728926221612318216252381806975833508773629234789576847311839714008570308520449341797502815040988458677800912302901753028945577805482407879779388735438711510840119835155122787224617703715179604918077197999459317617588249813199596941271031178700474411547654366991454589073134043094418403468947577159086308912382443339633540424398777615573838384741989439726132529012322321225988515944881861308159373604666652842877262029422837461196039897053228132376742020928752892155291632941133429214805992180813955724101897494659744882756260861799070989729460639832891034310899304754888679866645184327156289029663105367490743959230580148076087939094290591010603679174918509310512366487911279827080031466273036118853363645365236358277058061116514296274168523480736427156647227526432491220253138387449211006591762386430308530290346636473601727677256861989197257467994708568367406337733758292431584474816587724388873219095895562224944124392925657443977826494362355764022584586559198797867497136853748921571224934034156021507390700608433557695714375534180246345338417208295645370614349942073769104674109533705016865240341323525567362219028022397372333310145667360354185025374493766114675164107437149315593629332028492421476016766634667387827140106121240511452436338056281587517704876569401383361873366349948683980120323077992362293074513932605531413814922061344622319910671019397719048001205303245132937835134210308551857139304507306617623131766328533177428273737832274891088611787428716279835482946893490384909094640273554362627660320377071480337510418842549892800556257017817677070961068306670971482727923336627422023709329781604866035870221146584573091336282669544646585399611522097116216340728048634377635174831618710292120329425527381748714138870788855639959926333554161762877415744552294900507935115270859206968891011723965713720115361389073617222999422450514501030435563903786328482399152129577097302420306301290168998089821540296417819684644965767895232731530684975735658732086569583265561453092741677798597699130393924401273566097943012358388452401420977483242182803906915310291990986248656283847821169532722270065045276832082823208298013761365844217989731412174323917200127760661234821252651116350789824674043302200946852379966397074999123067445577390903473519276320156131874959324482293528194238347674183166483579978544981021336389840172235257528279774464603621993678554356720861825433162710880260374271238332312942637706048583620132273741359265122480309282012095236267777730006048198978531012551829045449214127624453217480706020310138750270115985960853725598316796607049976174246954505602762558281543677643431145177559422891754849941328296037213949355854094572732030450281877841771246136928464418039198453261714349470410947685692795532291003789434386817043911646757528520234469369490209783700087851131176250920604436243625250430345920901498060009203061671504287322542472584368450327466910730882126702863354133904431144274442737996599621105973032441388895918590196386284497094724222485976534326138849117073620943327075379352924624596152238188832025250624418531851974720299174080057806487607282629980843886669645726716207475235621782386488469151295807316202064642148766366730067134946579128355722275266278775124707842285884490228433293746984221399972829518660470489077191945344474656850912993662173055783606703123965750370233306986230200784482322641579376053161934621009784322810881958049593307758589956243890882010959099778729733214912157176861870306029478259103611587281872651345649264660711325797825463374138572041228847732206312666113337911593528417374414698584502184942711546104590288365199031768097358866056481570533001366053071117494507491829205764839482887714080324495493175974383849534014434307126679830793671754178842722973387021034454818801300792436462946940056231866687434276629245451799316205339069832196633575791097101827601575688806119636768447565428151167420366454289426750293328417249860573347088475501297010427595401551648695119594577094427780484400562791737998557756364509825026295525510725549327757535850769601168824164853950816100260300560848590523377812924333060235709744236452209152166810368608261101605941187622921310528188889452289581042603690413023868203498129253146636060227523983903508433371474623315730864169018512924345336351266764896891496467229575618922827203364108560898215250339756418903802904726159397998374176112342529565870603429442959541541149837651338394213752172529761650993345816558839141949740957630045325841658680722758251886272171772451208935891492928874276634247439676153790754093452278587774279523283678925140336048914598902257158721463606967881363218077029992433691662605643709210190698223495839642892028440108650356190144592028471435453868133629935757548089008289888951768685829036977349393304424020766789138679664907344607917075869931865965150083118718701546823548349588936199033471711249968105984277109657957176332769178495010893994015687255361920844667326293107836553161298213358105005468437830740073844861662418556339146994970935916639326560543145593713806153924533167402215659156971649183647691455970785520178516687799029380627689262623830590651358277050564421334945553001618200733996966942476171070813334008969989342219993019496203744415986280851018357668707689010965871140437796076566679865815205822454827434023765650905918078604335687367751245991335773150430496371989630427539854394293710538756438307437264530413663079593802324461067658348871373453384474829920899000203994159030230619547603055344170735859281887173736271904754232388200063749847006468442111157976393631182001366680989254102170729093281934638931039141839113637843569782029129299546595554301006144165975403040162200987282730739198919042644221800880413787794411362754764782257623986074028136557756434798010055023296554024851991876693171505845936593319513803155498997266289451385096222251305768311954700449806341049960640275521841073408359881967014292765280637544897002608710801302588436787880702214809150321080299099841748710184552602445029870895235277403493336909962082745996527980310003054174010304625788104411371953724492010585510988705350775033326818709899904146484865564068540251479322379067802568017728535001143135943330951387245748395691310243536611344719896562307696175800559348324639065882638288642614990161011058580324131230132975332035463951993352921759027249582390956629662082962890991139560073068279023066128442299034245012180356410400602318156111420055967042370809614590693858632121206704817333028355763436203422032686003054584762705098518363246162016935409894141087395586619837236655272306363480659214347383410455195918234819346163782232203441683442061411948552127974467994728487250066524210322107243630566100579183255532357925896008820108768261157469554307002417833735496877993954850231458866626611737702933860430849197176791830991612265614490049183701679328954403936885343657340069507621228384916245197022784527197150611812680121124967470301821581182868447806871029090694434780917530727056764847764327149286233006341395158743682688822570063442735217918772902287404479190119185375585897278404076142975748080143934805381372626038062754203728280372158252693114253141737683280519245505890011904188881714897815467557913613229108119820444721289013349111768823436242224974270139141049030182977660436479703224718018904745239564154736838569721559111715691010217143940909167808171727427192952366149432149134311856305590236819437345555255169072677564758879471355307022606435776219741242770144045191067124336060798970477287401695098797133334314620485375607044420585798473215915929232389631709391999176489818055677745061364782962352288539455415739187870279767710409036731202946949070994231144263011940781023225189308498546731579316830933520687949593234179911242554075076982939950748175632675895661206209311571500357298210718290822291850430285265117685729489288019671510082383794492717390605724751137613136726743833622310812297162301096352378251092174280687344132169529984990819980428941500906457262725505888276443085244808208378392660277941058948115730247593072878064194402770335069826550388400376708268908982561991392537999331360724837012873440489343980754819626388909804534518720898056184350901055776934832040297442350365721490566727486178410649040943085837170615646965464869767233975063488350764307602964176899276497061188463745947766072983890075098531399386393151096156259408017352892298325468139778720120112409455873424085400372094602774387594046189560933732832702099212963175102742500322422529790869648359565377949042765210714776003925696637731139612645998774661468076600229525838782920911907864107349112938241584398331818176264942219448278941116681051466188561645905772876810969424807528983313283185069024044546861955381296250349764551893194727774141635310317405163827098862964745713473765727035788867637873793491937278040157206919566042431916418425832194904500064629724758393246695996541622300518350992200669992018699283363779105811846686218929062451550583238679308812781950585505362751481977387011132163655440951597604657141088837250543873327685044777483425118547190645754502118951847487122743910298936896367170767744307269403252578836263323832405304705590475157618853015366907377443149833604831813920938456860523851218380008763837499231146813253925985734307108020243483123970462413946100100366556687606853706525295462845886253796580904337644063747360429019731836976365004861904202852098274448157396912983586240079815707320637573312102306009564972032012130760002923241133096920341687697029912946692761006017920869503155896917692225576201360684633995820158409579875615142524108784048991528292361972982684295502512863574426641989577785263830803905920067434777223683484846574728686110693467870327740489717042511163982342736092314029084810723159658762526125736038779374906928276534005282400262910355868604783967480768547011037681783138842279035297309260276759384054702659763006197786322675142219661294601228311637969686819566624063000557180776794733029974076341882188489773496988139557458967247259522279243578163722014626639245407342679007292121828966440724703414568889567815513328526157588161934435903381971236425935068356349755417089606273978806012166909615843271234554655001166438803709291781160868901173231987117621620936362935774395728598220809474022373892408682147850630029090917570269096654134405255546605533262406595847055425671337012462505723938410043906864054150926752294124495980496685354417704044438940254810033701623379004551941458984662371324985423963521578749412293325901068120942560882386373231638381450332538603345454746930029893375821021478138497105520032030245477526016399252234921149424839947884316837081078121827701149210432883075620326731471837464832543154085066400829502392845839625770008944812720586811838922820526320324457224295569239629072643727359485244835991045355594174006312280394379844465335336101773704675082923143400563019195380474099129456778148348168309436850603850364188484017846684916623669681479618560576658397292856590120091616932899988557685668957098201806236679256463421764823019638129339733568132228554843677294446566392153803918195039484269874276188348777294533107924901662140908469520600157364252980785312671902948632131594854208343829371280441598171114680637987263436629961350719832506814591187195325529305421215494675131395618074891165644863028744968503180843946495106545335863730358622103699136676957871273427500491981474621547422629871833817494097701290519500184579899120088527045157085987560538529173713594870378796043156337463711036446565346964633075936541517077667251075230030511767765407856776113514844407376992130732017253353325876952271903429654404564342157031968670466562339832768989005401450235002057850376763276230385993642745255144296931982826807680829813767871339891045702049771863649149638499692217191262326223732088463691463394377382920504999546903989211821484527655450280243920894780099978063038718196389316483776859135910062509080630307435112363468994505130326800035986037013466447456977500479033880441825979612597115906677884679475563177894481027397030645440605783206312226172638492283127425006187619720442420128993287700739228510729160524835977723290695001829218101433956275614251060786060947597270561154094604094199330083703717413154071392363970225142664877603145762176608769448372187822146236069269202834421535530602604517370491421778567847629487763717120888402750386296469534098438179503772528100696867902728152800978268708273752394980809607398848769210112323867263942115740860335812198952940078007351288899020474905780661301921669617804799741417760989818724052115921672578633671475436285035774957141506587824166640183487223189662203504203395806093748049174362479038447745544110926457790595118454639454134561266169966509547568910504338451424586527607055231429831530280795192823556867423998938824459834225023698470562262174888020089513608763814497411173915696911386292161287214671047028733245060376427151878103142599175436660272995576271320544961919770045768177945820490502931733187750415627151013311102408756941221304341871017082377745943614835675336689560388660163806321458644615053823388229016768977079007817645704719834694800178848449531470301784322998519604475101744669188984592584900140155806491494125148426119935933275202574060833545908211867595071740265580658422716538940940512636484500402605425701725826748930800920999611071704521886096098828780867068093945497260991265126042262539887812808286163076106247654391226803397344043208136646850998141136781644828358338608902592576592662807152779644804998674559802574659414520655803645561127321993248819946867122883711950967964117334385151335818332386653115342678045078712084105670690877481085560831146655269719453941399585421988726188453334598268547407148040965921423423630503844172301803773251364063877976758136804915735248062945909745868625431122227969964959940923267826963701277178158623147575751646821904568914533202499542738577902022081454338306956279129514088318349058720116673773880984974700684638158302070604215214620619132652601475962305992109062084719492680288415645150968295727695971964210719176321304171811836786364661330883416159333844651729658056100530258372882525121296657810325484879333039491135417917405098249228180522985003004141188693257708208573117229006450512423317541365672148860914463786114029804864679736625240358852956193366224813362626053626344164408798356429395232745898105019611418056792241124837186114045774922988509611422104310255546169712965506926558897507571043547791132404972185400173251454090980125135938840297021620396968481887543926502626182109851382319757390887833729121000951477160818354050113707241349641409333444777138777964058359848501018539227529776013199721135455482805332910157588593720751224477994990878874790138634783201963273521180644484000623323266194954448990779124824280676597476969072124183692447119993619203707259390963706016814069657949929945643430503220280558333263601424590891848035590512518355418980582083276311663723036089142853942081383672095490223201432904445840115794622922031530365155529774122953034470859639065683155246015550827586390921103129911502513388282344500773141210410542872523464202783721574347838842570518441097644042410722818485574411024233620806386962986542994144618079555409756497207895026462344967457950184898062089029966268502990429327188735824750550515548966111723730328713740730529877707371792617812052536637361675242565787768701368780162262427095842052076879260044122367977700151435091252517239664032237527861612294440971186342488199841007779073816099271881343627834697009160185560673170613257394977899598840719666680644393409940036381486066793569871945246670561274176016311952118163660174145516332918644739101707733095847667785583107505798512163207459431314013071352527460075819117318089630984477182407838669746547299521655103291426551097684525425748137597233128533572852919656057602802023578585754366706337308137582593613775150891281845121636754852850132056796488974567180043373300667550491759694622668063320206833385719868335738228359447990482367826421488886977115616891814884068229270324503592634150720141551387035839635324035494396189912475968963700899241843207816809649016812192681872101930449723618023509207020847924363469741121854862005950303221387058213484672934838365832948120731657964558948898966498102961087287529517817172897980985113306888982513206417018498721312021385539974890869742654427474079126306046476144213681310144794010958307904493465869558242675788843886656872936495894154732502544109523529568715478526328541138285241069415212430349929400821981923257561522257180498772547754573343200294137391339545142064086373559496185110036193025879534043535206922693106575474664335340790131697831334687761130110036754791331653673732095792098708823974782199882946681295102251051335115338117851027669809155120194425022153033343070926297233867501871892550288333678267694262780697462051831504604202155918740394632508358635796205806087775055024525605603223730021942588197359714543663203025236877997259266209954016603646238039562406064958093123288741710707348118647134038618214652916761963151921905538098160584446036536142251366600113625423073500249212567437437470340889187541799274932113029459089414128549129671876024114966507601395093951656493640107855371109423437472183589389370898077820967030764677783001528109547368163174056982664173272226678936996133491989535988721730437081577855615731785067618770161743200920545733239815924394287884031085579127982860414078287731463156587728572164318269900326252108227132282477049360363636114232001537838791195024495096953018791250060466548197422306099965850199693401842017355843945108388939177477094831823582739245766516568767004322769676750662154303868761235965719989147782705708021803533944509127232153440590916570880883201845919265601356440362958661369937318806840195266563093455610069150558565202415099299012051926808156932579756011358645697537017416597457887903735631526926826282619108489964559508847810935948037216980657194132420038549886000407534715443692601720433677793673571810606189787433402773265296331604107043439940694560748807589798968629235119378959231684700837691228064710611207827153889945411043525613260821127842714258698904070179205870016590813007129109863363352608442957974322477711064729052450821675871806548743229862732349299063750779395687597145051404721426518256405574872917637092249542678499003082245153160641090051463426215130172468590475042899993225476210512101165379115925496199862795250664850529365024443480330862215717771074765511485578105804065759844543560361046419565135653179396993928879840123506986621354267882913038221783953292533956166504028936459789829249941955494878564776378675673779677874483312184167342560790901990793707760890292114926029285168684036187770535255503325724770465129334154157688666751173431024955798535946551203660043014293669087569399841674018669653440672036730115200855524633752806518199612044577469152351454638827472518897937445687444194412868476862332405029010445463270208830597926655431910726401489904824114116473778402584165843241862175143204611161604500209424391367990407058602788060286071423464121837133347398875036300096635369127269618427639429745822551940669777744981981125871542737485343662650061211173662780236488848057433080826835056075840208028252161391971700596896100400591458946429780998131677213400842202378594532754031090550615995085470126444758914533774843700087677483460508577760300548271969297397928036223577672708893927135962328782480039372794990658028703395127952654894829102718546564078540998117132075867319728312712297433574339615492074969038973719767448824061651668374587158566901532899857131511902801002268336577593596195178901594320284210240873652309738438079645251718068922113721745791573479673807065939210058585193014073740065417608247188590992544151237053372299091709393072316202406836708955855485935539094362909714617940211642380620285471587279490535599722584348543135846119795445041239055268568216443213134991527621627110978917637937513112800526896042343937926146628760903841174133086423965837497120720835870178473277717665196765445793690445871535607833451885835524633577610264034660912801796300531381805342771468488568065911923445468088062300245022912783763087104653798204329750665173836597892004710112893056073705804498024702071354012881917353935755031990591002971775945760852234836412830258138780693514438568538062964044829560238494484688998320615812520190137401647994018732821992816724334012482163126084786098922044395667746354592085705021013709322917324612273829666987874478117677049624872033950118337591669352636697342652437758744709495238436984759891405539886911227974224200949893392821343185194225722958075790787328567982164528923037530314512437009028973539441876860513115588892107181286898667929707570223398313172488436306323066573522422080262835224932295860535524289143674566894280089289363923143282872776225599960666088945297144400370926259729265899496104406894649702979261590807300414316157835236879072898806043118570300936622539055062474778474932216879868970457803491149751121218340721204707590365572879595752901700253080216648483633442334893008830677649564923870102557215482511845549783753363025648907572668350067351552300708291128081929224015587815032472643233556575334227517407712616864540420026467962667789310116063583074589748982313506217399437817717923704125414848551311032773781609724396153744472622243449670524695662426126683989989694188748364664539287263079767204658656806951859253467096104093012034853811920650309752570444987448700211206843221040313250620469792089768466668943404096936909719658952801484118260076095792860114627088742693348526787403510246874120750668878333582855353551339098610023543600634534165387612302737938203091449226331469127091175257653003854335230259659528654556507432448262333329202604436379177241604091407068082522686793400934880580694493346239076129318940885661701041465556629420744891656855620016465260191836698822488327478275593933711070623108980510317264398756783239895748655408479619239642843832096063803019616729174960711095924825518608067601736880371222080814491135032386483930905707224262153131359407687809652025092913334579425398510275775409840955496986421023138953415046397544589636304628802214204049008647162862599178909914749313588248970373086432803376921989613668335287782456790404627568128930359751581351173094219357957025685327216541746052765854450528151514504071240587142669102126328720599726444237550637135504159763002406572276417524990679537846002514760092945550885024398648912714288044120988104916860385359947212377835214987604790140737003395325804969652680680326781427316432122686379638582925447336281712046095691074788216304869780691152192029040881453071591467879755812142621640120597822058596324234400064339237957119491596522413876477788201950311577435600824543670680270786280429809104877072096400244208066860517835244071288253322433746730524120461447955770816268804211277865100576060693715916196655617640805495490413841940438527961303400564047760938775421482131561362923150347197264653542070189685413928183256444423150081396512082097361789469131429068802540291778910599310088816020704067328346006282323815720091839616891275700494281662663373352960915446339004100841531209638039893148222560097214510938658080300902169080006948314496890506581062245521873475029614389719473531241991687674857843510858697505880335096639868240523203524664011484286439478298512878949684138424286589277411276990091494392803741395632136802556923645352647297335031964781960353664685612583405763142117447495827858145175513426353331050009815144688137277293150025111446374721627741484727956674995126733879840332556942995667119971832970141618691316309776294001282036645312345581869519763536699129185361999524724254210043681234303768374059413280977602943871173496785696683675195028972979878071105150719347455413831056867039183658665349978875090018445619481218102974029138136427186036945092851774605748511591808447673652411740218543963325787449396964463523927428137981321773440421030025260772042611544108575349596311844748511528714845897423085590650988371211004230915355878830227760125011016964763225653457312834090359640886196963866680266038967536101998772247392644593608023772445740083588309251867969768198416855681776632080180831835502155621237096337135355737163341386990052308202513721371191487183109471198743524466523596413180693490290851549659820426067456545255069290545834925283063435807136491148582535874109007325872995827511690741307025133787795296190551181443416716872479277493040075216254104171468001157923515803969354934883031824973468169014491437003287796217289248383972330501533263555028873830478050689683339044197826151705921255700441713554992557221073004198232327625055505128694560019353634394602681106509968971981744264991679889241500882046385018415471695013153236389355357524931399395561669913016694719881603849359882668022122289488973535171245760433217295517979467290224600351792432587613351850563086875000151429606386317704412219786409179748935884534942943397164273395075850445143921634884825746304075142834284723313623564643189699617037122441657329148855229530987444845039823624266141659691377472054340214939221143230156830773932273698664477151342748279593932698799951983479593577899860300684729405424092126255044406192897832036056719316028358145148793546975411391051372224099966703098005196634392157745353389400367518324644935616540257239826255589330866548943971992526883806089511549413749005562454106911707102629896887906687817600514385460986313204987334530174735629665184218325390014998170906509097865210224486592246700505922716929267638864706451785137841386540018078497474606258457778230296713946538209075990365601287307432211902809049246181144062436147228493846794316916059552873677525763469164081028005588640964490988927643786928052450155546435935771984624348637009732262458758428988327783992732846458197256101787286417710266738488482766198010004710982233481381460915299488857522717191289392646891350093088445192438107100938677201821839348175414651497037666511861118008592922358982441728144856394857187930603045440329138819063787412233814393120539825704375901209873003348254242355405159485327161254371913201114839525944447919638999808209601268013206200491375141700574128722685398638517320122934757036151441514930112995659557796628261206064349348119409743714036124955675384510763900507794569992671792647609307475728865703248946649607077232506750250100995901215529632555634798863471274622528717675159392318079050734080434320098687604287594478021121648558272752645754481252811642439583663121621659895732669371995360957008584292627942919319656884771518244577651370304173712839622591759723340803880182818814459491703418913878496305950709324339035097022303866171796112277773606871949694576668755219285390134854257349170223667332756057895361671566546537416833255076410210385020642713468687035928530309820254412886304858166162186151301933814693567259859498595938643864665447366957348920067769695748235859759848634666472678154087537899141100887851537442708521382553262769775745369561314620687395523822803488520513196001706142801195896545052313567587512065844125301327705703049875223696546694883943319178291021010846407071719131583663186774386306372392168239377802725043943624195845658522061604894536193687792222734153648653167433903187131613689789413575462806592900372841219044888850614477425100280027697607568150121991670450695999417107386903372907180347499792986256762181267079830280065535101772301395695376256237791991310728657553776895330242522674392313396443321347147362017360442150021111413579593622095411985405317610431962045736836446578231160166932876140390524587353430582389336060626138540153799841599681401482469404416961606620544836242195179410512835436045405079603549683588912589207512451163844423052038438104315831853986781020553976753744641601017452030848341568153341880042296006885897656637148658643118944652954727795411704143078837677373626679015870333045269161038531723060840480664936174102135145585030712144514987928951259630792624454479942774030111138342975073298696619804341809685947874073140544821512698048239381064358973843508122659375668790178234775758740690960057127492350897431077111679175801588925291948953082633195175403824422316293706177083793307812912879713334525421039153064756211777111784797582224221191273179446312865266668907742455573724277705468402786990848385431021782797110249917272599411503765823193208523297220469692798756623738169232239497799573961944925687115468423504164974958915425454534812152939439278986676313981567729816341317058544293656533652288252319381520375126434004477378148700815652541768029287588184128370866259857408615765703021805288237197950974028985775752969251844605257706473413924437315735684612053007260992215727138870886898952528176827990262674292063721370979180257404236517287166558686492029260268248295077289622441075295259333279303321719171057221154241480254310093076276952653181059049558684660414294755678696011634411779839405544051781310042598229510638103613493521913720562077441208064961491719992675429357041044444416082462810887696643971736401639481549312201712624122075541409672140726458985368795805194423979235087926236852335315699659534272772124007316415710182605601515970592936477485448744944572908230610417796389861888000130614458264942673364773667261071973577828952368811685598179344238056601778100325671566453750032486774826885507279802930860398888805752028864448813994892388598193951589847671474794093324705543728804485750604982289965543906131265742659282046277210191139307414417218347388705221588222321837250990785274235911716694545253892242254161311487892683889928797223243017673179334539689558705875211999347437213431227700212960154237821592634723094362777631794770887031701451763798161385039851850118114664139767537813900654666683136108700586189404043246475389266859219035535375478883959116735464583855386827952180584236994425557090060906779844966101044234605082121877680381722870836231310271821028444439972601780265391194984170665395135382193197473774444670645640450531580825596067892462760901598742687672122161939043000811231141328478115253047221352794717925781748925323453668845966816453121200984616793836409786010954930933170680119502239797156458918169542548088043792803324061149263295816995403110563776324867528059700288055237451015909657115599232840480895088179738583559535423618850058280018380046200871620123757492056873128386849474230325184595340224859906743156190850098054082232751086155013154403884131604367324477898659814322413427634888318075174672198854838904073951360975952095461425927540275641920640237302137220261027376675433412412965186386982465145234891192258288339158282469695118155425425611495556319483904169458957565981002405631146969201031672332051046555396599229153801769133096442593597208993845313401954741414863686124607989704294294085406965069368599524201738183009648646411476661164687070307900154091619545298255845085931110496096889465392776222994473348022155531236828206902449151676750620141213561742010932080063774693536575892989573032907518919859722475714515540133800342196229486384877414792297221032997203617027095892737736443685309457068441308426460330661049994524359406850892600521197655326059524831873724716327319414848169001122027902417882304392396197665710600101841203207311301865296002853694019222613809307396966979510085466284964336453957147416084462135144635685634614089175447197786972603697127915644273362344122310421438789812536800346290136476703412108287041608378859957943279976764909170305030700186233846282965728412288239443860432712932764620542474791592519341229563937849322000685836643117900042082646855314225616866443898442524034170381336359069431082705809226345357030236718071674509311543571981654275132734166231161532137682181270584872025077112249370236951271960463213799489837786168872333821741819294953196881110325144565410281403607294230684755319947727067670380819400020040663051748302517294139095745980188662487582594577769063699453706796502366515744801726730630529782998360163407602581992880051481082401435511317610411514441778206845217204970093057621263295430779039840811775173925861666729524971372562751741125992456528187060506343287651137759668509286340195870864532961596092488033246166991172261969269660112502582612131690782004427633830638169909026043469830357640352847154765387494860777615144468670488865610506138801674907756178291751946568952726755357860896066119267384330209689842399239898961311392923528251185769756167509138639399726495541881827791578157053011154227420901516105322788877613574791279309184545908045328750111007636399304212394711032837143059516287212827254984683275695994442912290576399461617477201982881314490572809352469107461366970076731361772069775701909690680167526130534374802648824220368174692267159585397905077167100348663518111757685547754963648005469898974265578916544887273239362486665788135249566858884955479414799179220222264282442647483486511467759575508779825376945802546232279198008683499345963780861879057951574159979363572168758613573263852806148504342521419870690672604853260803593183001255485812792069246473314754922824397682095900238394054309509641858542538701711460748505281072355785274830238912056321767802047548408716492218985887249529476840464394295449617645081953120653792806398508768042796729947176060485642249715676693125236107962690508272252546544402886091159841428964616267528034751574298581114895950816523188461468787630923571203772569057666937693441174584537197968532907419627339283534895021332356735582569117849589694431273708049528865798223741202833669700887924866392529751939119414574370019862909126288696420951549301864371477168669278350756028138580067387565861045039200155292048947528509751299693540617813851709259820225664306177411424730944112666211345861442268339996580184530165635755731458647972771880745369598210237270371593546877545553121532479844228518492446114021291258378609337985003278167427624762685601543082739201899915383839013291295682680613201615563923247236635196644051916340598160433313982602204940857012030876943771628227849054126000622082037247513057519614392872983544123170601117696780508650630994561831388108905237696769165783674334594567009045087822016959157056469770155174566302230511367111613786986563671746780282315804031585083957445907256379452716687123391638122296317217963646931117794512750984799856773245630808666865585133820435838329826936395984866873030896548343061986585661412206778314582432806842908019574026208364048491913107859622894316388892060814472502950931549207706632357045971611633659626985219304988964475261150640828292004194039757390620901724035268236271333989254752198214915724251454169383065977831980389535813912678873495527616477526952679027908793660229995622498073734825547048350591662232487995892971376094464157159290461608425254492388165050681893719575901536450672103769598527029750719717148057495571429839553214000277052268248917025522978021377197727648805212272230129065649691555603906299870252558051151551814343567534857523515350337993866594185937081872137568177816429107131313447213295169140187953589475287504799390100452477456855122738633242946007951817169591515812556009205000606837843295503323372283989173483585406618405251924922527942789795602267497421078301624186705116075973921211957398034155385195476613559078564041435652061280408455257904049517680326355477764453100850986403704791061638512991393649131852190244828186263825140298660335780627950744035592707582408768524301116947163337544883971224033213690229096511664673813392645267161448159455908746340216861747229181347225976579693503972600308597617727614870202072071386391350075815743944457391901836471104335744599784496578139160833406100512429561278024848587276240906897972930365057683704131890598187293777704357502327354434877969336629849969133859032270092840152178601611807856757466875675237076390337430035364820637382378111052440697118648342458937302107411299059187700211369673513488773442118289733959906348433744794679923884769540213906473786822667746994189983934528962265983681367047691123043788202506069453757718758870775020426938327297566380054381002974641151090669774545739159396577948740504177149691117883048498456507434218131765957784926908046462600565126651158499693598256034775896393879456678068790343107413521328961656936617792133161658619192067250720433482874316178645464396071291789760853482075451126450666333703673056374886458604715539025575011419780450705958618392037683999980118803454387231105099439098437196748464557794193714088648091008955968627315877745889453099492264355483307134316961889028638105518685583744970484495572004047951761712711757009816491960197374402842742901501626707378357821395657834473811600033050600999461561564551139558384019748385163761936895672137829440622609598393924685632691214825447033856219528658716270570229920820624706008224469963188470268724885993699132382243803306324185062872341801511177287064839366813911002457300311049059498859902688268558620542463840624107764139588703967844844067065900563909153821660391218409937533819656175129894438530190654070364369671029776441361562965466515918761395681683125666785278318141927049907938262310899752417300906496419150715875203529072211128112294079228267302615271757787809376050010848220022822667015264313827133400827270295993911145691179291468366268360691862762317329149902633880880243420425493466696207154976494446520115700371041991229355236336710703019427624591863405756554392279068029818903502137319397530333566600322143632561379730168336436536130601701589673286097110892786867193377556887241735808972899309152581662998060346296336806139292661374745396765590868968987095046620331908848629191756439605431917789698994959824140486494442778063541551303362631201101273508509133829868456651508196728397204854491201435819505610324652884933625751592006557429240467893852630450547616876911228724170204264538018030313261891794921541700600627179875467978505205535576725460076199475854265050461012342417065297318490087580936073098784961917358211136163321489990755950562746241133822114109239534364967524607273774208364836447213715145625514488313686486530134449509565976816566059777975762894659173999644176954608248891108373177029470533446782078031384711937698806973559518630476984817089221606713277405115345740695275734637146028415541023361103230655923349615435325251919923673198360315528373309226711914873314838172641497991674691249875325772348581939458376092290265235730481607234318231675678885379580464503514444397495501242290673765613685850955967011621616376347210601362103595138987044359003910182900040402704626889542655283188919175372746100067014247287280085868108425358244195237988444469042168148649563208952910112398596852650389673273624104600059001089469967160130609335039897478133986066627654643179944681046541478763442519100897379886247328367532572638968941179652791270234224602332812411896658795554886992867340430054606882586832831369022521089139938169912403892661280303691637865358802069953257385109776978018678437089396933788803498773729502669688196171062967956578196496793800657377209573999978308210841105431228718398853652518350330619843599570627014565873070168640712720632239395463151220786737587132975914178525979010716317773847567298705024918571286455145511049700762314924741979804342186503801515172483782198977117709948465740877890685982611899888229461787219409688365559255283991562002444009397906603026126130913557811677356742618107351481524024945795790376289907436290722149455172719379831356456019803971612443391121379699830100970309882593574951190552805128588974988287030146587441477402166075380919119446545214412314470710102701749423328074009545678011186937103132464009080814200968283913980338251431524502661469738178236195606723217672032084903812083734929705441375926597788196200911666117402374492817842495761282281962185325248683183722567674372412979751441771225076510959523937456177361977780593745844299909227647504611510898322204905513157142640975410214335458068504205347088704263293209102085738761629695672124207307638438716226166357323475053149738135766472504678343000422559014213745456132106502170220233461323892599923321122175075045958547274570142344020538785733219083598768592297817763484862598885804318929856395020236548579608793777430951513016206202555024271566391843798604808733975099154412627061918930323267394528834437699634699750549521732422270968113994344330308117100034482913155714795267388001141101409705281072242459316727898091192355590085247745428967295699326255456622895690579953822053330432993236531150266048133102623038896356914023075719279451304037102223876350176197559625622184918299741994634715758870339425407500928385420450162080125245834839374011281793874778839818830160672279301509082828105004518515262357375826916044367910734887413668491106505110569125788768775541283167531862129065073380717351859952107214944094202250406847217976155247280054552122357292939229711053651246233918436932712521923690976001487628385134226735434130991310459012167563042038491013925130130977471387704769411826190498171919294344084282228518273193282304009222832089732712266369316561900412430292915074185888207481902170201977798317128536692586126725999442743213504925647232316337736831318420478827556482573288808343271281878817873426581574125697414798158214692674684434831018568839707783852122696907671830683772322029916672178425307430464270564948712195245239524528177106318662743436203243559392387217628241633426788018406881178753796254051585914986500916063526810732904184550714569601582170162861452019968786933239685753892527890034398474272437820356568941161963416783602650043714547626353642229143397832883859671003905054392809791837640718376547104164097889924892940984713680083521965777535959376815945005412775715423784381924414927265835941649506774964127574076352051044912727713233962668398354695660045256200480503456032524194101385623800355632768899260969669556128904818160243649517141208314558798647095078175796793524001748160329077943218478622483667191419645143227989926262112317897287236304323483490281247211828543166961621806474834309133361737221111847402045763646127892395555048941549133293021280176293169511498933783341691949917003588436574342771667065988771900404481869681563217104226094761448062758917203638928831831862592559658305683296546238703020439305167125682763345604276730507453793738996456202633482531123779536394508061405431441488180553615005285919401771001355190829840008369325077940956737880167358269040347913768496354437981817856854731540385352129744331341064580456280764155500735633913317930916715195768889598973794229686792715631441522764775076158439061772787099354405196526438010061677481999494612776559240313417105040876162732659610935105288968463174461241899839407593032764162171520124444276231837540428770787058742338279933344304962012307775653802764718718836520167406248807257908225087871353070919453727228913748871091496307202401933681231374172623184985773659554157565307110805781329302681019902843943783460470578880896387522768659095499793814039859350081014590083041596127882344169120389429931697063143435758761528343853332909550573514363286205565357899898472616903821065794003360179218754717039484358786132941768664745138797749064912032103842404808747754442947977975172910073116725773374407160522568198357890045491712193701215285811638282551548994290128911889030195254140508556942703261109448142386483002296151601767956660259618141212275954997881050820647500786486755480690001557357549250776577319322818298491428943947599196342702733640048639414680010855146479924673806241105038492079327766778815073006268891254929398145519791885537438626220552072672555243485579724476797160037020031371000492507109125773145238788477454939719596448168856871706644070135716044435153372253589302342537057401145183322673706022082579207335022884576463639395637708194363959450060133107290652549370449870404249775483035269749458228004486223987914006782122137701634976934018251385085363397087003071041457965308443325212803938147931376231472245036429429348300727187828007668232465867388990728040049012297872509010827415896695400349683246714127627418445752056511569262670619485006958526825948241585349520200178232102212506612642489287100691638788834087116294217723944182655660836996089997191682269236032810293820575791614113533721378893844989710044977786432939150129943936017773456158467861355176764828268804270160456116885414498737120107356861743998134780380229091280112567707818974233923904808890841202679178329878839484036874616216362482560254461170271231363223490421821620151256751605234550735184206372208448781566293084222131433447942331539467193330353083990868811421640152606461047316859796980959041113985300893329608809501187250961783795079893185584912238035766161184564004207142387818701949353626203730469955080196095640616167018608138100385040998758696389561484164836441530423127264914104927471406878395057151986647935853671783083307810876553556969604256304939102379591437549958412262690831426832968859811074965233385617693081254824913823155815871002211125013825559134752555181314677353577197586877755396236283347831346598550761829667848137151552658453604890452779511207974934217230926551286413146686425792673389950571684853877915512963468670587514781696299885322393559055682040395384405675070856341642448303667968641003663642323325571071073391071514055991547215116216350646763582501249938107810590024520147451941977941327602837941867493246690648325431370394835427550483182370112490858983750538549054346583278153709470721193109413668131868983415016629118412470048105341591721329954083721564529438620216708522510086687217693889308183634081162455066628396588507568401697060648440866045836577733118337383198109713234319403021760691892359930292375568772661781347170523512834736979359494807098968869469006035479228868909799654750925693170035833024739125377561475099915680345919966659378565046830653408274161854289930435532844628290615953912730319827423522493938515182380201217627811657007271163988422878687650674232208261995660781036982461189582873785349692052754797513526611178147753239431862546951173437559184078980123300324131555833111904567345688410160894175412326754593846255234209744604373853050693612470364719719713026108130291773798668376557960784016416543393583528651053668441316387755939820777993939617967413239369653001648725945558710856452853381348919873551638704766332209518792133451863650641798567397153413550229435839841488173607159774253503146900192645821603477034497774835186886341870916416333493342792519924854670782890221009950975607655315660340128065497180296603280894304978196639395200039413731798216213967805522069575153071846505797698675912950591858358677931278245831957990070776753673402294229854579812697050626370439510927621230861677188094919343665067783420987939326697783653601442393763751994375404369776250524408665273562728910923898533344717388193532444965923874555648796097917584365613229155711819608947587927308933828645702830152253402531942834020707462189392325856037779706804530060996124713510223339816078470547468731387657436163039325795586406831472336396757578359636351403102170846475336572113110842492922431777856422522303957900272467913962247770464025686018647831864667311617100040589803451608502861824720048072111489865296697454935717806964470629331836859044745405862354709125695038630855962476652621626243305725490430038332063029095100517505276674964420788672061117910821054878747667318199806657742950220640309320875761931079408320766853313125505661070400527262096975738507180827051608152695917827619155991823787273829189319195589061074174293912117946878449786617524877519371345012318500915682381284730975981038825356347365114387097456779161108012977236252445623807093382291967123205675693821217322389716798773904034059081190312560148077296536329195177100309876190932176296724419251468318919148131124102496596464668601192862999280355879145649257066581631548182915001298481891906223122267209379907068439976670259034311039603848781015267972696110121389554426458898245561572621085739035853297718721746766445336123532083887363775521958054253720166925225556026584533070499940056944418164178416654885107246601779887433771262002479871028769351875693050671646355473166806091750576145937235284617859823909820270441125989999991682498041893809325682587109822851931729893283454849580492279228885673918973848825303267766598612840864942089374115624645699136391710221471754168595309825942294184499358137713951391704858645617094944345884538124216609536854947406053360222528648581770900875900960142689798127850579320667788319092821821644280871528067101655549240154348487429348903711904133871585895997895404400142397179081370598277735721956785631054377308780939581367386448043192460603568729829188002284764593790481950491449002815555370479496955130385060439220778048073155910122329121283545698427458879939710931834677286743273282268271912447938914169138573533970418272246965490238503549944820863206204794031247444786442444230478693649213603736713166018258619497736577342022503873256228594163911046300427037898843604151321979046869344018909686891303060293977549389027087118244954274148593802288291614749783333647347086150849850265372112865603388956144659334493219781983851967518341567129150899251845067713134476172968886792120095881685223063742365431620069011831158487959431941192455785258938272999107769248175429825356382912111933999867443133187017403232119550987762913437542196409876347290184646786664140540587965203531649548461837290294069519242379661024627315944937314747490885182155966617937189926216747977012044778278906222261703901719126261016612549806706943236343430799617469813440756988560999954473127545646717001416551002783666722274890087425720204402286940828002670506318794979221586411300071054678179184712874083823463733215577271895194869433819292560031953132589701736334617856885384804232024064488088664418966795317079884211630395751698506856721728658867729926697391318420560933004936183466484655057742205950488906550115965057093236244339460857505895413826328782555203044848495316381632230355933738000611955109476234774105942794013439051365122611258654071477771379214544427339913978563628830266781408409139796864914405880434550867421895552597419233654792199545598626271174794698243175094097553604471491967247994321660528064706696564530484978054368731628013582684103849581763622647533644825324152452688136364988569673574249550993547122066896756777949567107081257171788699855969674394777885263169142070232327704935702245326269340422444118337406496616455661852977307494446414790096684391666145082592109550549216883445614100878822016282112564647274463002603809096266436396725626282370011417889983982922731220521886956538821357320234619733547928299580108830459503799391690483162192304878471653984918559454450588574020829407843102444384365493947056067431548405753421455453577956324946218410791958921084698398748553486219899603270592771724026552350930620172836492268426577817754535133618310915199987894199692571418059532680113217009164368344680302202918791033627788697981731723997185206037216141942319532899443553633738327609137243581663521023230688176791158255164595341802140360091038025493060907457711920060007226948380900805124411408252497961745903097174790851212711193452419386805571035150582059894465085439225617880966538114628837942920506679715425947262323276185266003919492213614254464225854442157868689055489721058830589630211415852458218722115218030556915786787388189289454569529068889483135502586867829252234111331245913892535403851456346931404579355843148985694920233671847578615342034627505836821830317370140089578540740671227906430615791900702826411582556225652436948685739379715240191205977613476540116823048603898709377269809882289967441914251595968017487260560570468641136628211102921077630378608510319324951574536648818935615577152678525739784144270047541908169400182449597553856617757772682693113062515393100289217603699606151365581877444080875770949842571675079431853696744053197896798930245112302675051170736249510394670181813213120773909679679419676488343389149537218036970705750435031549353610163497358652853071499245544771333984228445456250083477010668059647449626674259956524767832096567007541163408516806756520663542810015408917966782071320000472514223248118581586207275771653570869648459773782998511020689725070333887379101016507820365394772047905013457102983954384420435151283217468027679690128626129465302503900806028601786908053389446207237524933648115944330056927859245784167686681522251371047592437220334133222339646165467642362772027307416080412959336008453523903623093177156003353613991956498768131115720475161675807157782921730302840878695662605154064774866531539219428770533142360517007774884926069938607705968319641760589108907624806156526268187940370845954005772570982263545030484630316578945990919694360215237875441486027797975322817304952620198202353787565062906830277016480603866700745845712901910341013166930997845374866076963833114073222863880490531790676580516075999802388848270063326954631335506372750615502895143724989851071230907945370403536131493525577722448467457373060294118633607232478001484277835198677362902705656131561797478305835075045298791434286994093763749846804425261272784260215696912895231367769065469640807286577211455568652598091166297283281852059211138332399368793925978653784450157162627754586676991241214254533280970568454002479397505198905046703136622033521976690983184867881156442103987931921629815243208425134627062040981493892488267610117790094490153151539367055724572671010138975763092209438365387824772370952704433422679709058364565350390706717590765548522591565541110866132055109210047236799920900106079047122448896373171632066291088485981405021810694233250500689227769348239214974931131330809984532477944486257323489824488702295923571968770707887975004223268594084857406438469344852287963867408245808610424889691641113411602572785694231821749949323954838518845156297090605849677265661497567710512349231066720236755791065494997461058814689454618245500485164633094469792826755421232678745914618637354172533519342990344501655361348481524642272800598116859602937251666160770802006123819112414364972935887724654429619050324189839528251283234248326538053255091108541770603576512844621587960040692445154375947066123424827914460785486474184370572419271502073587101047948798325296627807748280371108330020873511233439682386395892353155005350617623607010941459806429598595638447283008934689565562109388843750351672055656447974963691049824840782692512500985485457532009118288292427694441580717536369230648756520240099154187956307606111685460612034261689192058754882009732272754318851196939959295482754714207950681380196773868761922492368475364069226442132807203087244623533058610760999713370669549072979846088774282177829260013917469146177683747478269260829915251068249829742028631281259584758557039864846021918670093520335002452169486079266409432305130137783965528780580853228985465940762540485092195519534506541935398961445895637023758179237049001534805105795612437586892039205020847275558787175218080901668737352211806352746373639733373226263069737569190324422524652399244545184809204016471672923413981760405971942777477053481495118816295399687545019643625561817124302137965817447313064526178279029117228184046462774326412967229067409802109320124039395485043906599370810296183468638927894690406885449690516059855694749672925181287501195185727885659945069986231236734628492802410737523680015502658296813689835224051363521249321170612569105252031001794197208386292044925939684125490850860616495817481613091959201860538820572439286750880118868943553661970358172713475057475768890705483000928850441086586616863827026380386879715986044323773797387394104653402210440091108650426508940036360425015882405318655391344939865978891237804543803171732049672277873620790804932253041210069534502377338406656122173943881242434359083204438159686102180385665205348975680773428642967042448319459785437921708406232875176952537820221882237306939198943171585791880252729545577173707710216828867890952366060957915796875504188696980356390880023795454257341351487554942884140430307872073228500515433077305945838172277878382921149431294702245114718220344781639278594206254748115624756270014237130558257921396285462747708103386453982351820333367027170792634910588068174112890458654300876286128866900847380245344552905252041195363265227284775167596353110684694354215032600881439592614916805889039360832957788544644373761557014393825644361794778087347886207359113705627605420742666803061154524335019678877440221856807534840401699168078869947159408101672951074053483721891733812400948233550330406125176764084873765719738595053962232350381584054615984599995552650972701385959284651604959858926090196147562130295658925980973308557356322461550662159455953617060155671532731133329397515857196417172500644551450702448567220539982401408775352248556400419378052114326182489993313274900038950597929161538652499386405712371455624636499164084371320645656623557717705968323421624490741641379403499417192539065747084472786905217120269792686803027259879491260263440346747220087443573645761912711793704827795886290841529750488762455867589136079649372844384372392540278357886103009417054300012403442343973320642153772553437265304081600995702673020745763977648122442463264985672196116133778658845595358594974815835944720426514792394361569710072432232433885029219595719306829082829250419667743004480999850791482603081308654822390615452515846007851350232546335811533367322062320164572711507069223356910050526735675674109144387547770743915369150468266919209112477992971080891368193091329514007619297530309145491620057606149442795974472399890609970709947932846112298597519467320252278010800377603057534198974439826652341766744761141673839044030407959956084342863116399581319335355693192712352200176091864406414274668762515863209836596617065541590497975995773137608180814115550498159885036043156358926321489853676781445859638701171685576176500733160541619513551503806294043578494039812264937610002138184396566839225131913946063758077996945720932276375480404116071842344563411926076451069486243581486252458003099103587440639745037744130557912165802438916756526954316155592633918292801864213107254334597174944748066900781199058559980078168859903451649649182995451598873648606062871318335748106433746048488428717447988081537866947646466822954028970572832209850985363889108245788213167622083796408496052653189446966335845394925575696149775893975518005894748210837295365625885273645677350203843878436616637438968888580361331044342283244786855032063613938929368709157817951941930084451907432686817685164339311362889955053336346987441293968365252633732765265500564721967883998729271191233848591328889851383500859496140906202459835542478736016066225367638195997644495701237163426974660261662220299047912992516070900173140344891965192369103109876382668256971461243802904362787532595389451551049260315035631468426989068787762949372677930188097678399324280625007615175284675221184648660269878199420922194908759969013870111112325884711190285293413209438103477797630704874930090855265278446097622839431601919477005087820693938149185470825459589617303639166479429417884116467151229007953908154075667968836415257016327158200318511879113962409453421647627014512639976658326090175532955212236692441517614574926666642152399248020942933646600002513124806684907343892042906065795692497034625273960553165117304383578840949841846627329117483929217069224796424387341805523024252873295711990765338860914353052211054544375811948652929148174670376168801828396762327446944215539538402202405654309258890752204263393036062369907198122524206058016370856160174057326616498786273766201367444262917755130026947644620848547564708617474331208412254628451618283727359210912711927677456847211419132043308787036939240092095373742463308208921381098256089851601807131375386436726014964926020239993396826358487461431541930420075653983916692242545169875920130988594009743028105412792117855114594058827920131862312078015345687625007188334932791265302033549941953956834222103716764970378005571780407396925906332235866209231156111425811752085234992800609912200609982604863570973431170758888648020595750189139593266835813180180680278679099526989786747936780860929238771140979151745561585765278097275301689202600192421139579735695726583421903708765200894692030404691442039043430879373861920189973837519157149906130149077745409447907313127142257533043313614835304134587492543861691251076064662034678587476016901880845484120552244125184380980338846873612495933019049180618714448457089298473269286030334752624494891977693472037717014547621076613046745331841974343471637783401232027369316855033659898123511640444877162862882090439198177320830908810924986149010335792533535843168928665447486712285119665269786391337809778565983119542533501807599591137604625452688283217789890332558729036675122643371489489220091558764690963646577080981422734905656501257718836711885022112263817894965856587899039069602301952380812994122803637414428341971591057957413397433649049336527035664533219883939434955330795979291882223857205564988696147319515639366551184076724553609862369269762206075000667623309836543285225981168012322050629243516558389845935744393308614481654362679394051159343046386757145825587261980329518950388993852800107540080526942256150385073746358638928491189095537179557156071264976947264054983085326390837502560087696314928715338256799173033413353724765381161100187707659622189937023689902775870887685811894322971954587551577810153567579972010218688697375658227399986808511102667626980082528830967205191054495468387017038654052110526049480612979723492011798022584838321876430872761236331024296966109513948440747302134244533495497043455484253966719595520015278998081772064943371667512313303337427695276499239603004978262809834538143994982804413564726589533931257904472128740343306997112575593107862184930124204955814612621331471067375086088710697940865086774401876802861325522427683395598045601738379805235492805861258326641923945690147599981655384234060606882616515196981613506478139601133140644423655255160099166437244002582500104040023722964145577878909977407160985495764167079488143433664705466678053400311969576432617444327797375344229160477299423451855995777241047638067989448025010478115112046428263314277513651416284278478591065996209776192100978743780121840881680052134477995126104208386226817172904029097555763495841520259838896087256068942843754473959608856453997348605335586546264595066764136152559048659457746423959637098347936979640779892584373514458480836558376363970739080152322264633663597930256926177654591261017395046774755721817117764988532066800294280042743096487650060816301130957571899182422627613710801735376703754050805495494865692326710973026266322207432175118452752164662400685751484975630131249812726037292457706351067439841990448430553053662848194396820486391518078194116432206680538409752756661945940540336060004049728422512180313357183390681966775674932530947686373477771089895432691228948808001033653075060685386285348782090178524323704312047868809535185558041800566083308884409068504454412710582713713334937608145434316619075153712212708522977283835225814444079188181833316340887747351240012311261672216159967304685643205171924658959776410035372532525645215628397835027323567363616367696296226364332344958788723115590623640869618715993619365400289987293649048269306610986499749138666018163329926026519379448719915995178593415514609581434851947399636586448637387080711249219009009053321325552750461951129598770381365956777031756269484923813085794699173988547881496274635622455624706930393553271894533696178681785383163336667054885187360506411565197132485286815271349554312652041237617323269203828205974666707557103301821877522498402464664471471982738781539337399004674159404932549419805860591844492510421011436855468372887015437566617063291063112681504141072972060662237376136947782447690547649192181864245352855096391652683643196484249411132234221340361322268770737453716751236436604266461553044316678153625286070934628026476340696532232280752412884697297818259101778829574958023099241868304391149434270421227158587932507235352998561933316743400735437827930550673186115774488379143769230498109896819666675075827774705195349003017597794385492801121616616869159041422878173297298893591483721108067063559669626914617178083508820833524595307448798604992620251881636029179540810156387421600595224280094708690986233338034074331623339017725370062657121117211260333953004827507379024668238096810936188771807405072721388328458477229750306532812471875587789602173057929064517685157215976967731203810038536805442081441508121306023834779268486010741727330941696904943827273992223903800844141481304948688783934864694391673802652531020168100372561811717894796401154761383210075053253894855963413663144606365138579300305852943143006522640483846410594634292342955797548926388019676396250221617762735336809013038194167161144669052108116835866280025657541921620416018948026327287298354845082103348386484242474563084040776718250576801457604261226470694778227734968004028413769208941686603646985234836965422548926467317468180465992238780014092182851210511031690860047219597820557524782643952182644222022490754573052118004045538457259816859965612445507065923099089067454596875599477317546708249395889745397383759642373880291826504513952447467678736857824551731122711433210343490923563116727862339879761905490207876222268089970402910194382715553863845945285751795191019529965318852629212548232464623799859494045808894411181451220910950709717777084639571673012054118092570702131865159199494591355223840034081776784880978189472807515220923946549663169428652301472346985282676531618375507492277948412858339556425533860371993575636515513250860140121857463818430407434785120870390111420306698864352372448696827774880265312101558490773675518198609839696916272923525138619752878187910334790727526963031358799525674047154506754963464829798112808129479617707948452220709013516506509948568328940739438188260795059512262048645835100459940911429501078991588088486405692942938399457718716011157198919155031315650449030325332634791520183137928397902491471641093102446925417538025752623101398889522961900041802955352173041290805005767298976428592607481250189783730191053793158803411636591050069571935082382721124064669884896735347407678689329666720320590227860519389415112982986684088614424197870549890959167863095736997418154580398886233710734048921041554767490845056640627935015242462982974018834402938319712701922861458114545696236795896958620684310870397926131696056234153183551357657276981538557939404136874105663091261810277657800133151452682753258386681607487035562777614656724079741159937161731371209678598895095820794540409676911943657901853697422817270303952917716261440706063110377781100399542803222258351820840683023684377453707611756115022951779006335186331534543134991956157866181444698674459940860974602538411177350761662735889966957471666677631725508891689557857069772502610163430340636083307679729797662274598951518677071153380609927933103332095630929233252392715017753014352358113267545145763536818112683540286094326808174005638241250494424433297492442073868426614888969630600402918869127331525530184725390756608268421793871325339507514105866541507035918226875712937436444282833821479161606558468822706803062966636988112301258157957880127905348282499101542867239949733003595874772827281928918099911319286225769162768397423864619815204428512586878486497649635099615166804347545501465003287340705289328558471533538052767786734380347429719085060218491800412923876915577905616395027495254721779498918705445320005501406086988614992808873185989538097398168438516785918216037436637450950610875920987638899891011699916123681923297777215611138389666767045981435405052788940869298204534692258303533804842731295594242554421280688747329106853769145915420490386108131341855366550735034680828163896975769365748027294763154076292654856840027727212014357548646704009661248118362402106470140585329396803574264404808088200890211398914799983023820187700374541437709055325509750584183524854640773023300782251634669308456063070132903503446567344011248950577426310717670182412722106600706039790017443719901242165180658296329733030193124310105861021022244838586294154701664562656000898943425983150234977669831573668503711393479735368631375137293327387971460763752828963921730508953592253486663780636708317666216499896414095444983975860469122121828084808723273672524533792277648140066618110982560649939537438612185327066388487754561480729914855867017050041314740470298318517659187350249254676550098712326428547583121656252209266023010132517576014712905223164237593190190694858634914849599894895388235801347470337421968738322339192536580661385150946415045861162472106572852232001357534823746356544009255602488408158686014359353243721432497257559740059547226157169212142633786970175480038215463195551635225117293709996961064731839130247939392227868746781928080108361049926933742072489292757628281903205482448855897595887705656409209798508171044367981786771706555613943080670533387974809462798752409919803302052425520110281225312966344920373782213310157822189848955539628894567961068849340824285734232426543459478297409882665151566475825198896301584817977514955798485872399881735063563972542870895447314693942844625221133565181624883047149814652259811950473874940791585024653830223101898427735604315777062086010771746986086837988818379049044726188272903524516868265276751427242308690666693640851561776329134819002738991927306692059659899610028948035213229487497422404214565832709405071014851823571383655913858740526448303447339317881549044550495459898522617731523130776303524766854737683139336694882341006701536464733450191744886554400113129930988372338520986998377025145163804922010743031606623460095528083624204256409623827178460529359649609260659635764812747485124543736692078739628640846338964047790537107477598882857539291584256459280916336978123247961066350092608810648878184142511367468177472734528515294147667921813316522938215861261361687041205577851388872129269942516227926936156663585647158656986738288914939840957202088591752114481169466012080247744470561892322361254321767031916441728990623986510018723146171815917676001232374362814309451419662791070718539330118492065814545698877089816636932854505211506050582522591683228376151880550183587427844142933916073111492790173317703774298411299600884107365255973098489198328243425733061649324117857266242619653985333653434091433144656315565619005363702430201399153288567374557167230296261050177358782944769739665843465590958443197296975063665521207671798141166714210889306792146367808501704756608542516471936821828481752960232874779139878035249407849988314924594905552331278766997431311569827584923421239455039554918453214880737463225650693025092313546302383446832505866984721358993000742276058254803467904102174888089908246407258011230003363887889961323525016858418955846112271353646291859136873136562954154789491017667874088171457141522781339947977408526791175041230577825616757744537294769867345674885981571692765506619940067603643934920013887348368918726623970666403416469038440932603282232809833176027291819883499581785731738455794998890569824671220570936099055822317777973798692323783713703053850861146253948296085003250189289470806377381311307299521594642479942670329716135679885755416309820254206356998227338546675938543862466311058790318796883140917450022994621048281943536156470605315877219492191855145502526430343351876910692596707989490938447985082261002421298945787391449973694444721338545691088773708445890984178095591308696720281990833417928345926830830221073483440551504712111931455869966171888799246758542416946447813602967204820729936471938117495902493677917498470856666556145452881348751173858873056333261125438099339648835665000384926444564098458202057293278935379265236243919387286383133370012063426952738468711168102594557911152289911467807712127213347068759019490374736991180544853856919460064140193926812209568959592047494648336130923487458200972994412949427939965163576319789748822420147930793818378734986115124124928174073507656005024137764530443714884943146809009973782818731741737485154875966925884710870581633519881557104829614855521510279187000582749588808789813433851441653390013038051501184940846667190517578445703734232712562871530022213260127769982949658905458732147676379527807917814909350868834212745309481151083794589922680182507478175467804226262718565330808584600272092897679095951007794768350809796012547061628886916274069107120815001035106377042722541947762229830734028808035655987726718286102943509616076563361162947325481404209899542200123446813728971849202568844119781512868952364455457603307149467567699919532049756154058573236630276621683595846210407357053435626609703413975508538990488427911758897677528028672087363161320662725481115370956376791822988429563335613649849461513441909052388807722846429429231605144037667149388504573925886628236604968913720860730970396844049072037894123923025115809008754880923755078829614007649280884305579943509570257269816781182943404397916173439506200625687914125985522236133267387905490661308839825049580991265999346101812391579996402520543103071634904662989653100827611405244449850400132582375911933090019316808579894982870636302645810777149956350276580675171982401474644172499225446413791896871502652888290437838373100614186044692683528504818128172936239325191186889598491212392032614915802847464693181611290952974344768039254770204452723009343988745745115979005818289035871067861959492288874485642983341978917165290712275130781226838988912075792550881129283331631514709348944927173367167571489192879069418684189330849100055700897024788451982126099740594483065073842302244424057508781844810388476471208181152938267439325709957557780698914980558564279629492000933595527012510981163226783668173231419825276229097258165790899916799808717557935768064993346025073467451685006794068891814407443746753963812284901672830410591175509096180472247696721747948343516136009501421615156793832264216010068150275991584579881268304957544760374394851476536720210114235331896079685279480829745371764991365072056116622678779557648853313800937611550839009660996539326731855729762109949684022081724653229019187750590913660866274413016686864417824810017311793106468318355727998473419256181752321324208195366717634408719052548982628186088881621403875001086239898545095548255909569515711548917165532424010803270902542572040615581472856135053623687556952572135222555629780055567127002973706914654446148372537838336509341129709129142488953326309932444667999995450594948092376655721992164322056452580592920298197031830507832548995482135164107771633485343959644037891101370324129839517964437762077081138552625787079717889913963292992655535364041807313816359938651308079733227866530768380396986370745960014748321712484900715703106293760070957705562474280608453964279526551341176420669063468459418995549587435405051904795765104502052376430298258669279640761928130078225755617084758989968188232409143823253509230268348078055470116873167630641931299473217663326794041749966920249453003084318825145684540634277688946295262597087840223291144103214286684123033284931078781276198715503970006541925567437730892503313847852756072790893781289511270489822797934181031259418978276599482216048824244578662129613404047464159323401416271465678561286315493022866106299988529669188962611628385257454447460018463763057666175665969590877895457488666902971411239668885722913922199369532918813959529513973012057960081554971899314890437739504961467733040651159583881170241295674546911160279979397735461881667243764837666248228674550261824787725869335662314033504102108900429434379265760574594589061731880117588550819203374990053607357860059114863589744411902617382124702903474292727274702167259115774248362257119824354281838437526253232979204140375456072915416209242588310278676707756433248099886241439344946619353609557470555675802939234010388119662872996381179711232699610932890986845676581214529112304819211176121183491718365482521556765867828885974953918906062021947820778182316236169040289038606665857624030573066542116272978470840919526507446672184297086129644528292795897945704606915123226690529082934454001730338119607661327295134257292412514452824037813706668575601695251054768194571441092512523935176921936908173056351835790367872033903255081176180940265895179804748562765995423021620106327638367018138281637632549699489328430284911732620307809326692985311225484119306885400047787949576755011343111770169383541092316042268389098780591477165904538946784504691955670123332850105457117443456952344595254657662164088706182605575203976929451686065266638772769811751480938640453729168130722315606327335040657857759150041621732889170912361367626575323080292652592628062119396243565882199141459840571452351402209100113185256163507570891204181071573705100835401129434146243182339346724923777295878362691082254250480730850504003588847552796877798863284617941178898384901984754575213675207934854627760931856384350715280925002366443479076845747518312189858169234860224331309170440361196082105441869970145797601230727407547138060395560173827204485518821542768545390671848922633091645012289170633804022220962214983726905077139185220772346934167128611459584172653911095071357498512815990642583303340916210524997469456404395208916311830000552699591332233313954630297231943693749749853807825433649823418981501332847369988176732674032822499961621235800870560699327552493341039942446417862477918130336103219585688723129854087505486838316842487308971493402353724592544639440165059100322697541062222491949695023939279704726674679331414919429973574412875987312495632924844155110171412235635406153766647199200411522367826324910450712594016582164253874704029149412338781424847650911815872431754357195117811727420430110326776471841992081568162364785338060443791412507160210354009580730493029314304624866409828482172141421125148095912028120207450196922098563768734948908517287238021457924506489854346004463813940758765320944780972190254316544768780218609368914478227708748023854644197644538938911758705601542639863777879787425119527745259752194046372741621732556996513398687867909948297193622099034879577160792509861953123527952934588315623604419020166583462495241340606640021072070221545005537216325838464397361971300391283213639823320851885106102190111010413680809941316671389402720861818410730234262124409306051572965631059976644438519779709178264151971734907665305709931384386013057791605513682023430066136705886077108036629141875802339088354894964755192464298400222819263241967186765153354601580297270994119429765984405219759320616402588602805754094438515779485031858852767753832616150368529380937599867987531357050557805325582203134325647430912475100413589861276207858732317478825528673499661106090145330490715217654284120356947348940043153317384487008792051416717331263136197376143361074695503131080956861709704303112085921397458591185759620329779491634569386965610399546444791141671033672715254017455311320570543116867300299066190732521078965626456834778670727822848918706706316650497514239406924431538196217707346399598810191832228003763841013990120703392919844590994440254216567941907041347954069605618328706678042047216741544395585424236456030306919083263110618453986313127691981782979904197675560380085456169129520445955432670501464895809975077803788285979838016617075281437692034146552454123821923791079471701950230742352788356160153542808927279234025390597435658541666420914918071462692673899171867493623460185396337540767429149342027496843020455104541405105450939257627924056711703113814359313218290042784564866137589195102355087598273466734016443258355210195281526339153552664293608091053688857676425688324070652105664247693876224805734739237522514637602168882334938336991466880272769749616859814105871017053678616816659574705524397434503617759134110306661510703364938049192841945936037993327618869194448390211286282098446822974213294413106805342733019625558558198743608692472291205091871283746784377169432920165074105015932697497997353660474592102999198344405065312253301173381285435934752130941562217988999878994242629487171557320751254671877664386362604130485437822656810822239980721014702202367395013124709685766890760399636038878211593291549937561369808260742906071189024006766750095204778239893710045129541162228749528507586490242124050773000196890029556167786163959496677380250822762802909418669428804516723751454684354782464727028760453993943711392604225295706710424091718195956738949375404700895438020757371170431209195077729777516780953154748216895434662930298331546710466754859611750425518606850391420966972438310076165867019768844708197258788546285568640044905678222918333696800121969880464568371025940143944065832553486212027641269200158863655492375841037010141253568122494650010537072241863498006269057004055107514081619679792730396874714159258364813968063719105104348699108655210726543968201135470809009199350330350735154518892499079591902410907373118874915993645031069027227373208666346277968556858571460246226012241781246346362651639580135055201246433683778565776911737596418347101086543846739758394481769101688929580533550361777741517614547049454778795130190674943895958520093884646276010303604134382042351061955506194325328550201867786384551640682411271744338819100789290277028256381613673204373144832327842468731787752019606701924016597795678550418940011449385555302997330782422327859760914483548183002992471775551635149054176982823411992155575164157674395164854310705863126248827934606492689970775629458188619689521208764709396781293178383299805618146212259227506323968846953902318696963178378534790981835952463263449777803064499011863851063223716879769845971553348977029216507731835175392511215934042670438121565479459033410885345890453278670840398165940648545833059336577191907738269278624457234669517461168617307938951240116669189934598779136034250703385093313860305502447535620056379687603922827045759088172852781121749379883914892845321382589769550769695059869345121872687270603073364026384112575790961627889068337242918830239829690087545069418931029739563689886521567544237683389728127338048519729759514364364245971376662788432682118443052691152365815729781513246588251997449243409004088378542705100314899513022474589617514767482641921243392697094631428905652369873412220536842249719325171876396578107506638258808286619844079810326851592849905107359643674873090474564904768184920204516612633886164066406777471751258290351165747546627957394222045392134598144457518505158937886752597501862427375858770384161363385976155342141339371844615788361991910716812723479508129803812092605230991727064236614248181002241798189328227870316658504901586019323123501278420356417984028140911776220783773505513793436738485294160984459169205942983949826241818769574999984442642042001248594911734213237675259905188546138470271023881231056837098154796308639966872273561668197924465706282521762614082879528666450425057646944431133556699472090996878585984343066845454883110345149872134746035092237231686037440227171844907463938698674546634549890567850584446182891685633432515936491751702312860704745750893054241278247403370884115142056495632408775049007668687087416835604893078266736785564201231044767804366174200045538920202411655458674233252440840449075620766921102884703360399055904655135387151330831338169233240825556948105060769613672291781504786997469606446332733009826129043453128657475593109715006686150123306983094182676120053084158839918148426596114660217711005842407733122011834943473940594331535280797749532568476965016042511074657312097293818639918234976186723760538724203152051465448021888470947493956661974668111995318124189268763225518310806080911491838031095168658683734280970680549417800724840039666860097012766485168712838743167250406244376354822019740110532840047176011650283472920262434552874413444650607283815739837392241000214054901410608490788458694358940057431704622146154836629929202396969188762664434354589564771769760378525803022873620593571899345240951524998438734462986243215502041064743438534663447790125514255602650858478727750024214511648014167885366804417490374195046164132166575168792167529495254545722592800294279855426687382175757200317682962745482777292066556677950029908875096222886397211526430327622302893770880481154424268518625668012784877742028568216068079708503935646686876085384111710272745576561709080071208366657340709805750277443517607568754913006726056891702077963185328409845733637646406033805651184931935234996029668466299874123917166865801520911903098576371053249680199639273978917150530987662663989469043753456157175431745665742390325561807987892645618207413520178850866633547792227290381814501447878375750125858460300680993014547506024773074173210497467871627953385700479915572675118109514899191598573584089239644022674844797081472398366653444821371934691800788506634942194922371796633838406774930881448662892375940988722421003178932847852491638431815437284016345478672515140013030729878612026940570563738387398364432695626494126071480977043688618034816037920823290761225194301408757473412320114561791806021674501405202603416207496267449752451061021045013245694187766897371674458716971717904725968736624718615627530773016438141146750294660893307553084755027985469350040826208621599288454898110416385696148938423267890391792330683000831923179816394000425965394908492265008248259646545192222728246139867565235493889333955589114879711839088037896852693762350270668948428505434764232633224539671385015907885869409880149028242195238859793204145560270953458681846630197609337657631668371450308394568464234742514215872478700854712220593246530673737669795070036787401959926856327132892093214911908854039441561220290152666195837316077441616241001954635121717377147476876980054089752594972747591674253785809164825870415255742577247171959377277471491412968759937664556946404274482497434129811932861690500984270214745191608083555715986839162234422767283920575223246699559377477284432272550891599745862124509893982736982177095204776626654718429808730221612659641155888859074602269715820161203580047794403650483181128775080642635221975069048368690931747876432212394461710383281077379850885775052551427063905261375504027509590866983684829773637290189265171782446163519121430833871934839289995112840997554341437082808033673425576560584178887821620507434305503756545892883220359572816374674427223417705540202371793092562426956153852870611568078545748899140762333661122533666618374018518930830528965153911344375279929593155987727047683148125774947110726213918815594043438822817839420602671615631945196607579305059735369752460556804353389358660229599115110374553865971569376171290230586398372663220951786535367564690640667023053135263960132264460949106412384631780659544998144444693287650802720709282304063637239101275408328325480886873801332055807556581001065394172957886404799470724830075491018384529761434255676940426211327404716533844785687911865715208090863776455384813455666709657299049208176186236781778253575861205425999071079585290470777398641896750584753084208180403218720970824191680029934464348569862400948728066761043158024423525942322569187934204997528867327093521654480494094830282926788269568647006012692122310890693843218706653969692035806108657013236306387003320631117320261341038072841944037813037530747272602170568293543714221649653928585564655060791370363412408171013979582877248278298280164037409876410733466497036120591986689782485039143016003402490030689050887900071394736750318737655215208633977715280126715311865066202923845292102173881321736817513247722538930750444958342823674499802668853207508788079256589140641459018675189123969093243664182366895624654224223102248118522542907828107272672198041557770367447825544039174916181541944562945818872499696827244301058817601172872885080109171302446775477120888530410457816721744558996596198072531679929474048463476688322370702696420778728575171148492475939035761584734090411952148046989162952653532207562788724927863960996268699176453774065837692825278750629018160838716118275145228777122264119269845299483843535815925013623422022817838323530295698721218759132477686526215858290308364894967516285531902019170124579736069657077612826724096903815315606148552895756647707852628492708358762455912571440401411812173150753331648281030183950763121978488695791651540914761897905910056808739018789954715662804843528152115702684823598882898197816414718676961710828052252901460430120347369848643010385849123360950574412187667227936097457395454221972220831645357308379130312730225440004703358794467332347320216811953142961390214272331931416790686058384230069273130618120249508720701551978502188883418659669120347032362662026517941491297758584396515387033348962902846122104210935453192631856461466975287099760400151740229382138359306111454353630445186976960693203666755383366569459091957378916397321451286703029685603002446520714460511400755082345737179563027383381376993533184985673799801845900592450630877717142179241338553649635983849005210502544690963368854568541993274722481849894441243357283751016637253225795332430424822491911872660849392477079587524804417099105166765411465862948141670392987695838895567143825833663599836419483228489680796685009486297687292314311727328073728442718844168640540867286018187692060635359118819252704210565152003606987132502392934816592167028488061865854975952114868539463317819285809980784759562284821776070600831091601132832490920281003066401188539032229391060518920146680109972483677542841550106202670727434675357957486161401549822265177565079256994470189711735485790723154191439785398994984999564181613888071692061551154035101918636146733248269743291387904498501883442422723632884129596971677378055339677487638676678980270809681544689659639399745352026285236196517851115823548640082269189942294901363491949902470071574242267355508128478661476742872750753330471460803871811038570772144273554554929600356738520094889148004988163404268746223194294685772999301674105303846970859656867044970016648918518492045239023539658229333086000946324659613781975826302121083655431858281139788760449386695920098838683033019639140690376605749547996217829963120608280073591703592937342063242541561856600424609509813660994676643626260588129203398625771688565600173244406299075333054339827634335174454734892866602925426457488594518885587184285795853767369553523726653836965129594672366745106623806609131160717186527145963799967302230354583301415328508256126448961568546344637338584659523079869301409653190790341750033391610114348397713798827085815864617341571576847824656353093748031730363517958248856290536890110164649268134758126231351695435285124389393805195442516566437480510692171085923636650445010129862607665069604667039523598528748134402814524044310419534407246567719303043005122233835688023275854716346123976318366457189328392900648545959918449965017625099960711181933857854348354504097551619819525173652565692209925304324796732447955609823622519807700853580237547407284182674132987702899099364139571332871635391946305865816405442644471152767976514462776019491410993248031403477673157086408288030677818336779362875732030023344161180105831666204662730605839088123242308304834130203586275404304343820096925572335629146609166052622168206157549501309451798332988904877480429463098374690702708063810474092937294771356476853936977286893663848088301795513688757689478467301960879955286135835126523781869337679989861995288145425037135920563943715681557604453681262257014526797816519046611533124165250601094073620955221331528714098445644028691455653694738242510122426939883100522035706684724228131563297018400991562203657366229403884015899059600498268413962203553861991468570353773563615011637694215386818032038247234293484703514361962697140104485380585379873936095930505409046743679859293589672611889456026990617742264945404862525773879953534922496432278339683725117928421874643436585923895164237945275516716965363981879154389804199958532751491055819124587860919992373742511596680033421045193331696090376257475334719734808535109264940658392049325581638561576811542236371589792935125102346698028906114818478097998884722720725570910856611543292481729168692839459732757590908880787744713778446947071230293342790476150674251909394193954096884528057669970125248333091930747597843253423614816223871220516616535591069479153539209240161509976544219878497598796540567296907512384745868057851038657787486963692600571033913847243017166371449333295401861857337216857663763436491772536621286889752333399634176462866529324791316511311604976013090942970263285326125884505224889756820075693499822616721126084960808349932002678838506012717563654481015296122035561607186375718939838942465861639235304829015942458003118502299022587649169084265752882182951345249519226229467441969147557127049800489363368562636251357626758443164614524268782340504922578943984445157208514664470224782278698640478465613272443368325904826428909770551352895816063682620633315747166415611907205299229299877259052895895120686723351460341702620012512712195026555726214362702575143669756659213641824824071456156840865346490134778696450633354996622723428927649782008328184674524320666725808181546813675026116187554183166905245031622295526419279399386789614154809985647782930618570686940487121311484317700974345825838934681247094911997167985168552059252398639317346556336588064921623836590988565386596652394332383867593741332079488952474407812625530620657282848776941299491581966301898315117856223864659485352823319185221472340954572879621209758097391307594274004595190348945177130816743912499087052272317070248891925345006097797907231035267333791227460081936228380003551076317817687954592310439734668573364254555334908548523343223143621372497563989850116925484764320410175616537290320233584437121685775710007462645433905374697729939156715556515373559264433748604491827793507389942144125052990934437227700712147250975930950273913298182186414827791918166327481410547161807374196659697473550750291199565547889353394745146567173980024930672729160052290590367699957745388630483313447421903763077841625283099009641055563408749638161935864524325932328419324131257162743421416081292401556995584321461993330982543079673359478686105384587099285752187030212518158042840311996095159504084257195295668462807415474582404942585816282625576724083077724897416074410933763405738721243202698208527533681807288200095619365529489096699341787793048835563119401807948012829405654394926120985638819024360351951033852266971077730659020359896865048721678225739384856433436229758201529179854340725769086767269784400746697414591265954881976931454517534050021641139924089299602694283313309793241586101441359591889964789090333614927890999847581674827326807565988337437151130240218088079632607384931649955292047850974059874752662866960522290451731990899753815089763635370079402711475751164840792642479780584001748875128812095227216036834518946237995904735221514353368704658992550223640857732339274728277347785075128422260303660931946065136202518505655496828404320320886576671286558500501906740985272807331452881383732456309912880540223904223536395460492953583737003960078047093676102972123453964489838814483588856910746348170897305298831815214754168252990472087407561938573492912000518537507712713591559874887755273789433032271947375394867848134986414244623152334675979033582316856602797091245373538216697864546231439239338289632950311038075576365001800655159078071728039563422807276337064747201527000998961278105990425532596785124056961443394264246772831923790068902387440731494303001254760431009348265878048806325153157189598829851462709561440175006027330230442974780440145167803734571474066099343124021235667494168167010084318955576328176646960430784699419391042330589223592526249144526912936065440609514849176984299344963841722581661295760706675497193175887217083464026245590628857411924603935127327979569079988350111388090874741712036423825287401906573447643111120373770912678202969916410847035569990479520562294128435251947203280278808013929214975164982692088797160024507690127320953724176786428881379704300373124311945033444607242036832613155429510792408905366410020606349293411300534613890363349556108513856903083957759102133381916790032833456823788571221638114333069813677245158933210094436207737332422182596398548664381279779871623038207485655233674051887339917068831781514544026216763905631645996331626547453836872226053059331249937928451951470133870633039881010628424045724333507011848015841880488629735910117717502464434672789336362143996849467506458383718099601827834729448262741362237799703895894478141195694759258367260825815888075718893469644898317957843114951939320268091797258121088651215900600154675523713463295854534987987349596360802609710135795680135729232551245670552916540888946658558635209210309340851459580629433460968997350618530054064557086512788102259925001531793649967892518169932490633960110580786632634941110054424273543370018727952596732937341252080144768872830262435532231380242772512322773834348832751890140699241705688121358422290584396085783906254742296905671723049262621043979906282027360416583021597915779131217619953225933105870703529037273912100135049842360141367533008365859643931520250567435460480167845165096584043039226125566460838834039017882854840075747336375258935202071384018245720068750659971526573901231232489263616508679365550954499166696459603072189923785630788034946425029601090467645750223983261811318383370871990302023062312971724366099900661947327902967752968366524113761753839477677681095043041112727682496062555691125797062921232944233316254594914212686812357258608886736615372015638385822895535767392339083209641213958886640932323531484709122588648821676814596261373037650792487362469489375232870967277763277570433271097957098119975420884354992185755952770450505960000509066176311459797026149403789362042392686268252240867099717050793567494779939765939562893055320672842230165179067658299340051871992366656233502820534904231703493546626133565376059622949924198801731275918123231865855655411681151642377957155809774670566698103734571598644638289101684005853641275562865509027294952992272921391928431763469061508660028025563611810224490115068291719491265685849028019653555798603694478316314206579235008711075801036466071396291802822378997671767171042627984816910326040168712113357088153871285811229857892336275766787233500648344005604983446913875867447462597949655817751775818086585024298905188834705708339975002585286763131153705484786185985717663819448887519552824244735658311316254408650236209413910054734397029783204107827395216102526071043886082880180986531961143317269853851646438730127253872901272870291630932131371478639371018382517253415231857557633876547718880737008326113456255600393552771024785491376716707356315955358121360315553859839627696710357154079407040041183660242783318379432631542311905299189674726526000780244147556027571893662285762065029692729380321178966467321208867750341476619259759322393102143693482862708791806624019146754566166176981090117637951123096394074305699570095448509577629686058142397963111600939188486618395650672618194293046086979834709302796817405635893294281613728432519967210145648171783870556813211362228475089641977311950587746957707937174119654300102252274936615098551813670811200189546371567956174735250953810794054845485843780525910220522410146218818735868585799043862613457636742887279352383850623837740975621113254533035365820734399280242194555806328741241565382122151914216674593488688423653212789716699515837619133201385100012746861400776894787659449699995590641794170606632940463598140438426702359453709059913906326703242150732890591275344170094947169546732848982312192433905204148455835114817304124897840405653125331897000998230396736184211614795058159854986412392195500204091830352969728587523914030839859875535754529824622032492161615592500609198784246068267819348282905935572880981146220888134505660562167177956059083862193920767112574681771930951891896916772772868927288872738574687978591484249815864425879554881410455566259140627809568869442279739849263051588994527270988169915314820697501450560487817386842069897709054929462337843321653974429218972249222929817692643309760294901750990818879718814096264878723991280160796825954354266950221763996218924670474493831907574211351969506671401074163527132846797159189665626603097502950855210566664722461031417003894071604535946970789021668778764201149735955969651108820452640574039319895272964396312592829926339213772058977924631197971769869964231308685455646485213278725046381618316804488338442207866604776217003534152415339835742953502673082700294754854783487178373429300173245284526688593266510553674388716127585339279881921990555161015186423763672319630223136120098819693259597236993248655442087426638421742799221496877716190375222898971478327178280878232697434832588146245877142148616842912451761472551914096078650937698304284731420095644839747914433060280235486873004861472243894468122644749330188502115460680173077734764917522253568798954525380661892714586511403575109056600750742916609489228107129389303061580957391521979989133274476584605545842804140842723784872389740128898226028149408836204573673857739484797968982276921494415800211981288638290173563744041774433309375600828198365218582920667059115194407852003375278276289826684283402256211593901366643886001824166005946762331004864333873659066967060338714522347226015393412717177441864974933431920348656435044633053506793900822158133470911186909916241601633343935463453492597412513361722635400455424193607646643958441968196269558481948417351977857335395280660728816442356510014437084169961657469895793329540762640377824731798933563155138469560815769503846171272291648220528757630350247580373966899855068364642985352880355217529909443163484019061298740856926556120454934412510022157154038407858716172492048772637129254286773733636444486748553933164556764079347466530489921648728779603068158442360816928502921546103043106695030189765115860430296377763523190365554370828395946390024340404927749254707218226312177230545502530326837042620643433664848077636292674350119629547681164248676943155637074430087002014847309013799082784953300922378669751921629823375197069790820375076381734279885964836347068470251781290074425727785311506454490505280446938762145047759627954996807217660254614691737182736135493644120586569128053230569028918660653618968402379941420586759390127183795311728749124531591634586004467875163404624104414539983337338386079454743681788309543942272567264675973358459151409873086819670635476212157133151732778525143664670827937068530511429812389736816084025725952125575523785669513028606227902781723919002724396875861153685902944565153589352447901322258119343354678242498920959272252712475653019773794041894946507171286474366027331584740367936899343171095349824232130928617826875429563674000892062720837684191264136262753333996395234009475880832877011970556450595632441586051796084049245148329247798652181265630768552486926857396643884547730724633916882053987007572885325739823040616933729649389334936706123984352787333869818234601288252582601926976195600465056246142550579698555564009343927698885959563382361176312461885736388911167315665007915912648595492134104212672073002033836324702922954399653697654096143334547978770052730276204722764007692318598729181465527983301844232421516078243009031902979037682482133312027334421005336455959330930319115334361110238288654368658880468966923442394453818622542439095770438316774278109274379705053951755109907951696121849762560337949560643050820896365381992811663115238323400962434379484669006651071426107291203243047103677584155172962337671659522742759682826783911410517080103830336874590158591399225014216976886214970305673441092391816115371477370198417696820284967953214591456080365018111750022083809860267627891735712987317598157231831839620565986182467987380981334896962520243230599377747134599589731556518235173139100672749977127686453115110061784639236157543685763296991215581837572307175271334254687883873261406614428303335210080087546227852549967460406093768318009327245055431431847372220865518754581984820865563808401998215099495053642805730877842913262659439370964736253314624124999078785763571816004248270306344777089196577817126137469369411589084499530854168949196398879343923261693125581352146692645298107942466185776957458534754341405721181391893447236780863064208352684006846080773582978455151673774763237924363480728723906073357178370542231252910949014917207286648204714818297911233707991268478723312388834864484649806648748537983167637631534701946447393250640684124200129173996519306958394918763097903930801964821941797010661467794516062699783630152780099507995048822993390137760483482975144459153719484625099828825523051851196588503987168148795452904422981584627803762507515376058946533285412995126345200998398413393193005860987806401255611921595902359833132054130749382949571400532788180420800433602475456748910074785271771029280756739439321649549586761444042327927309311954388969278002179874885987949906355563954607032631979873139626358863255213833375397475350931626329734443042628602177603205084921285138068907585906358961741371751135233703066664288790236393641128082142620603492681764078781844814587384360675696555228485196634786125374334311649323221673503538278119615958354899453317015146087875040396091613052266676272842777857126263852277624942224933111510319385178432142267783253935412253166329275685386102946757475071063516523415497885593559279913655408209395684144301287173356717688263468476063247462594748059718196587036776236727493556440577733921979920475524257354011766598217429743238166251842024723524393244867228151815640814198348774462628494309868815607568093171222069645756787509413866183066548617903739214687922303936982428641743661255472730078482215952426977615206916945390266619426068616586684870505454314590309497499963651492467534354390931131175366743316957008140836189862949364267226857373680195149380195122749342418232046765361187909340704599760510747547546320279468262970913990365003120492040999028015158502624620391386493409106968170716505915849395903182539540665370018802667376203958831929501861762702823471911629941581478010953068389536982242217376055342652409845435552592348771700974831149815592461453637213211097332605495859301160175693135200782492250303064201148655820671389558339743075661780509502606307798598709462185175640875715676051758663813659196953789593634291077933692630162011344546506019489538899292392328394859786124027175253507145784987630512769523976490918781880126597188791401224462732133814798777001465962581755976003600980633196803928392555156414297022014642124585804476918589676134017174696462986005687839019559767100311405600338593055415931298844528275131938151791715713064103695745740781261360792598889554445499245913088430678843789054829341469772598002010026513973076083033009991276497601940396701261607699634483363315754252794156927947574029914676367311080736837719010989898941499065168552349495368659210594001589908402005155728946416872165944859287930828755387395822921638331795036940166191102135957445384699185725839817679959121157637159846436291575648556183599896790328466927898339725120499615314568237826223461079432131629836945094040280465933823884768421972260996673882707681001811066613976505553651282811760549596882076587365558066070214840853035502158745439385296312125158721372945524668811495165660429468089008472596373060602716371694636460872566057404474430310605044796907707763142228767864858169626980452489335845317593534868823676478064509774341448414973119235166544353972617539916304894143422587433320310355412807838563028102522067964082044101724277772771851988336308567475936173544126875744774376833721950815063006211006417746568550356906765011319257820547328234168713082440528310587134122497862346864258843729278254079542771487523269209250311420565097441325241340896705124356528237793133731234941505227956989974319230620382952126728279530042375544788600746746478078832493577297187703703407419327884480212552481398914485474349729284904970952647542994901319830191214089050894215543873031422414081525856648297194055016655338956358874753226427978928622355830367098501142800483393000481295705761202180791844278747633782495019241926450208855615243628428775042439004874510445626883573162181131699514103775732880631119579954244328252948448040884883927940152089792798509196228074531099392150543411264757866796306162589957276593257493379306515928131145435531052424316790870817623938057409262872937591565035373931140259885141119370114553158459110706375187317838904078271302480797449721936454876971078862179282663483051185440192113162893264816934829512421213602311999006978628873882968184454488214717754349512258980862474595801202759152417237991676076472697603879446045477008170538836080429880368721533740394413673922194299508645254875996179363391408979170615772459502132297227517321515602747747708395615215696514798450395855356152918908231672404784148156379208304001564520499230691785380493579843763717540968389720683882684063147166347965839272094517383617680466500463512136794225393890884076653478511714674644291340793340062404715328965252893636293953831928316908548510371552231288782744960192242085293390451320942063019285124455830227775022356570450508022035697213470417233804310630385809264161326902147910885439449361105570813583966006854694726970378325910510441260161464899017781464454403400609718929653595186952077390738188338522499855751709472396270692529896632320627156559067827143150453034951538114809811877841400501361947006640741743251009099136144669913255985459378261201400193417743729151388500928672444455305524350837479335461858841886705253120261774183059403117659619772635451914257407732017471889464816587036035874368495262603960372244941911632586650490818110148196392353383362571489204701639158263599457653150201094302432701485261513237175637170985748008495925609349633463886246555706696361981249390894515749559630569447376811044950942522110708129284258289413368509228316738908568406638281161142460004674464259718733247666821638886444129340300775962105669894622246298266147612299041739872362434735244895381530783587303508090851678707988892164010891581443305224132389417755268725428389675612915586643519869347900404514149280753465273576522926068959374253749570644703565151989021503884694941229505159120752458032633981531082547207374719375021290922407110949715228667230175809386962477365969003705028499499455266110307548834537979411823972893497691370131816398834927831655392959626476096523233197162122611932805993261706270995142303106691112334920228209821401659794022625973556581649555311291550426154148361223940104601548294210496126359911278873733790196631134254170546018217458685215770966398355993111358482519094271041032762913499143364012636437424672441348865260395854061234879959177012659382835109090850590805488623305349539320815697856711623592195984875649884450932922693145700415640192081393096725084443536242599129525964266366513726786132605849576412811253630486221883513910468536386941584506815790612157515044213937077695023789448085389742650777953459064681813110006122100311268208295462071102765123911764236928193034294372924540460891329540599871404869924692534440412405385754479417271986352559228612208561306169117450027957411529388228719213446620075886708690435136063825868935979381392535618272663865510643524441523510027409887185488826689078585743541656196598205228588962669775351808062403905534279314498834207695894396961821138889842412029298450517929185435412709699261105176485087727843505744988030428902882359404028156422300516280227516916796688289952360065601344504485051376342431753824050989043183420237492175327238560603451004330368050950662053227373680330559144397002416702732650904740175128245610404075171390369022984206117100826881550756541743819527059593297932915641506233665152124468163992940832450938687438778265424447874549441962912185419144773298469946524727007683081577009794908572062430989726291992589320413941610261257203964341141519683472539582052042429008177826271277711675010099215500779156633868973705536975304917617751604410861348763647254084787961302600126272435207699667309109719483790314721935717991943668619969929456805388838483331834460051349864205917730435988814717299374073131863570863619561956430450277384253593346734336657928771980040827593717004962198518471183583919156075139517106974505630625822262810826525189659594612562067510125266404980489962652529781621884236721841113839587714923919436442335906031953240245366513070792779777356340063237924210367560070364814852779564985717975272874279425260760820665109092131428512028978643520359988302622825841305650150447057792189552029659067553712934823716300368208457852507032089007555205485024856585024077463383336553733810970148556037125395570223196299594065842948635903704444680055924782840977847409522511510162818782971063277234867844481864340646753029670446434903997445292779196561698226570587205907056413319724550482486613204471761093695092157766106095729696400179832444607389987978445701710520713097753771788821346378955314453536723203883883891317986837855708229054615405512137441727744201527133656002186238703719856467693163644864783755337783619249403477940132998302797344858248696561294673208774497905181535118926783798087537385315613181683685569674507524925744009482790738049275181869144337183894345530196028987128753776499036962967536902139056498861256726364588319958257052013646898382839038745691580814604379706119924499573415096935275287578323632166600277139216489604004236864033658843308620171559483229229760691234210138174196681023005558210870808723845335154344646937899743181495922727962274316695836487887360374068071833165412443532368487524663190233788761574811071113126074908102557562647919399458337533683801052137731764396837299595830884907320847253017441716227305566498192550408357415777282501717460928949917441415450089762091736949362469161981802541009575027367353312549847549301910494725220381327356903231772869588397380975511815185282598503336593568883774456772085645694317937942010817325318529517864271461371439832234170715878823366805380471219779751555310109949355754395825306713569086968562312310934540594932978352714190927469228187448396413697001730097390173963620527396769019340653216292883417442534140204865766364881597717665600152901152662696706302478479058077782720028376979855728868360298384645932638760934117776658687318467514888046799858490449571559513092290439118404433583420935811101127454160017243520907077935631157855877027478157526985061962781816915341895209283812834889890797699313939486863250924192859153565990518048824090159885840717060198007636870437382810276620153467708625734612427019378458979672618283327856786255565779603630888381668572875427554499676070815992175614428936046897500101639466752352631815139901793442272087200900036096313747851565312100967322839879589440933832588159876162187393929302973911972784279342455333919116865057193440529591565957181062296721587383691561254723670438121249955613829126875380149051396773261548760039414120052070470490671765149630067657411099567432857438659458094548243067818714783654068007000311594332862037022273281413091053267269991439348650858613579391639240253124387318961983804609609051423523493070472336836163645594779229024658834835102593649459259932661227446107644640737983192035585928231159513291291155309132297866452813067468093242035744917098733306838068845363630075492296218708605290286672184165368841463993738970817671606801393144235385407542472407374034555056481570485883154073900438224276892306612156328137706990240160752614482468039696862539123109422188784150336469419345847722053033231859002121975254613753510662845872772263418563004189682786534384576603527476817798110639905136549632183610122993022204104638161481542606851369221245893524213108526854450788159268426363153298026451092889099037770060132211773119311997068080329894304881174179291924240905523765185194493635230603590121509431039633831807648025461138921178471909263668309208043546196341704767596034649423915560806082573416737969733740255246097823464023699322141520981316509009213225681752099855082373159304364959806872790279277074044542551546224409485376761088652226224367341562656720254974172257709481704457821812975262200809792491545316853523212619956223722038113318403016499644034311688349474952736589190317190951093106840467218271013716590200600618932589768796881113938676956653145174051760260074467202538047721257699906737252952109633637020589356056917150795467394540248266605231020390827021373003600308632485238216802121533746926111330063213424390149455191694959345345781800617801325467724907560947467427585888152497291599589085744725448897166123758765719453127503587813377651482715587347792921812090888272876605728425121289392364869850871177726531495407092432113341436338751068746943161520925135045842801192155034587409253051559138288981227211990509748439708075416798744216284358217948524120467787299321426890585072667555904300699984663944740566444852787043966200058016892949171732965551299594258035761427876777241882290684665860110245704272929387891073136648841906308332204292909703810565279362796574880064073552954698068276856958258632447991967640134864490663898134552479634652081625768079087108254742481398120975093295041277879553249800853076795591218894259713182887420294238104436028097223734548731993197735184381564311050599914317806731214217779129822076331415383988077109638811038068302852336298921863549568648864563038556614898782641736411795163811293417566782336156165017861632590162975279990878002385267716867939184765470004308477673478448988286698434841017532656142395701507227544229787875660202325369313903656957228201033426616300587186551431164344641024267199945451007008496336490247159154916720650701761590375162391218909196486564909928757705234334076923000121454577016651624296918876704669612411623520032685490407604760539619488353995598102598141940975597020553033068118781790905120595608163603433338674841882747984429830182975182874624250782024471513600968794182774056646558821070594163296238635740056589079147909969160792834406451458614704553128069798329082219265864722752366027445899422165834133800115665202872191420149259891602076989856160587129125889404964215173706510537913769468684065150982220501834476715323805967308792891701878992822481369542994343858674328393842351334213946971971377693770356497569939754016596416775864854489678485145650269926524220631723176882284752083274315051106900924958266861612042958520301033363900708552933893775071908188127693794005361750862660832268025642784649462128865879543462356120324159376998057305010090115114465597865768580936321891232278746586063429651421889514011386552819487111907145144413287901319099711275377092347030511041043194960307874870397334880771903553397360193509291375594333149764949701086387557207181348973460832148911253084993485302595616672227211419898592590103339688025629142762043745773304309062186179845517930422882556024745105021093644860430818460550726959775229740051899974234695515172732047658724128150639086331459317753298439387296782065713341973021084630248506399664995478900273451716710579645113729270326529800934866042937629913960902206900072957509259121176553465951763639985040310389666173347825503244640263760829203069233863004128692303553917989334494250720023501653792710237468149802266442127533702036321950282406519384910597227410326368142088464055534365087242194740075951498217847579201866335680772748471992676161353146540851659466719116149473669822023260488404686912093664044282891971265043770716511099401245626096291780658077362102642497390720981829505723516961824733246252336202970927305063611044021798370140883195234150675998494428524400293834733413985762401704594569367933537361877773678995128537233031831401782303748876613322607644977546830808189157768988011180478257690913446369734933611861113760229587117174022805176130775581085100534902339168638949199046525601013835831943185287615622476515634187525859051413468495366261008068434934339102273903706343026606852390535072441204080106694638197301978204905993386108789370155681417860649405813704637989787062763015301569645060482489780976517457760519253115067258848954380819829177927088044962154481112743192935919104182916843927857721311797456844318926700275762708069948044647963083094330972575161408410479239357171293515892903963525974733388793358029124262104299762935276859381129554028924744505715408524660138874929527078559798285622280795377667007778737766759299976108632952707089405598246713409845651842215720522110581107958151629220985827862833787551173818688991566700671365575974443172465424012611580315537372844793219084568222554565291175220354396922311543086137137128207100577510422444052857456862662806590718321352922953756221509597610803255128555021900013598401820260188743325893867360548166188212029028081467864192283747720242657312963927785568436658237714043064289897645163433705452820684015059883270062793316488249150808790964777214107468666363914666897686138970125546264033743328888503459815017858050821570682120972972257073286560561652488186543629598099395949313517754541903404855194889384223674585271489233437671730657750532234191553667546767830872662949449285495604036204996123218750042154230485231671799643430139658812360865852627475304842249134140038519801208785466990154247996785138117491442239117796853423661973016473545523859472704674564556002433606662209045808371521796958736650899038409217037451309651529817169902186318202357580215249669744706243594611145138970702611114669941236751983349016491421580168715577313991029933227038873877859114358222632436157763154225734193967216898533793593640007681174628272155575220412753619719855291411024439197093008888668833719366003964574686809985150613034349522206038532609918038386612234994953561759360717137017260048380553946831815374103015395506805093015780713632361939483484833677001656597614440902636629717834002610933998430496969081959235223037303499660481297081888639334284976945677585617342048968058107950902354344204212619209979317407210151391616301669571000176828938036202887242005620897684772570166296548489129885860174186970174688784613511238505105475943511651485616104477288275924129164026608137438448031476592114984453874420385065186188783364337236087328583147571607241764230485865753013203009308231673717873874331973262654793533529976126829064066120645745471336480024506509675854995878968832753915247792869082580198755154635760998143854409254197659918265727650092830469105217373312704896362155996796837599053775737489161476741221169939040716314815698232945302888198006197223318581010968819562586314578136107962668345953638851356992326386329669853148676092863860589602345043103048740816667687829856888476040849304381132176760066298040050436825447167258603400697805775852872824675161347669460472002717781844607902248530038651908048327898842383401074038919846581777089095088973532477222432070174337754060138294955342644832047834411845151239879329862314712190877853920130756379293080529064603731746102853844095152267337487390928927374056324052085648925940746196146413908898225030084956210777388364371738148657459503414609024416540672127016190839038283584620707949206968025494900436980508937295396235652582220355775995459467731138514823360847132738311241586467894489453033182196135655142469095599001365812086531451357788395568917527632215114498832239815123467314924886723412742891087372922580722618599164778772247959381034669977488576335169215539014792101896377499650069479945057968678307386639279908775027238295290156002964466533720606838101585694538902148293000243794281411664779659058244615710951834634421670881606838446766667383791576030596409257667686696229333719167310820886370616718723962312373452449474167398347286759728568547721833481327327703746839849271893936611545633872443647318716813070902608572589365153441279734103988329661009084975125105199099527512401067495437276320514973498507532700700683316664735463236102798557226006005789095983926091697131667053902650160283701751320896733707672726414715151715854993816972623022836619410098664729706923040045383407989906647916589530310154294070149712950545167139352144882943492022067080723627334075827365676297205267773613185415925854770184313537395143789331612748487170026588058996172369440399091476671914369569956535859385784110481781531834368626054657385686522370545785487861415549294033560471392044788155714817728507615825124959569116388724903925870141751563112598653000410789962374763051899137514493707969353346994324946354657572883954431248329923110540059970289490200827483261265483849315229725022829691113888431825253656204369100529914823411848792456692974723811752155575485177869610650596632411048043473406155937923020592070379783865350507072576668314233756531070670572471075229519639598904258978113710256384068467396134289487208994808777038454036510850546382485883665798003537821803158021531493013093622024157967228455132355007240622589328166207168035435680538008076372164608880067640266755763355739091839351193617157148646092999992510373690995053480384485244618935275384745570431704941531324264491217950501488327713401769952337498971693708330465518844708405171489906450239929487025157087312608462872870345926647368167917589021096224510058592268509626735275115093894523411250010576394538174115697102297376351673521649887692342779287246061133925228404287187752878858317571754470982577204158955598647818400528695286765145598676610197667027751328177401176998085152374752233695221891570976772084349682569026582955355785951269708833116408617408375412713639470135784273113647846535785939779175512782743713628430271754886926925312043433896280905399978371835416487794521058432190117734910301021343371163827005015709387162821769381523381345057565727827572031227733532537204303394453724641588558642838042252625109650882932107412513827028736363407662166688600940165704293957340684597337244541785288421573077995273790064748538469682615894291387493188680755218890942245945924783402931041359357178948349069497320660596143808953504750480816214586099623513272988581182595837271638091714640645798740584022490309294261020789417336971791598711705979234741526209041591942621499240519864243922980491126267666782624122538224785726882006386886595299782383257122922423293685270344455966045443804297695648048888279305457885804239573379168373425295605768350922062327119946326478123413668358466359790859637982056934662774267909463397472984211980243038560128887724883202231994694209062498642261131173558537750938883210313064950896481401178571441299266214707568981117436012960852499549105401250409142341295162960554393913910918775000611014894202254012260979575019976036497709511594254598528130941649363890254440502071622927066253646315165027341052677400713080318989812520759675382466667956738840643649599215971356995635800736489635788720163837650230324571542484170219090854376922199026942665138267220369635689394904408819987243470760602289422884489601779682186135808081441058829203430326463104942654619080036712185292864625525567586487339165851764295488491515191916535746539999639626874818964253065285319107750437314353937855674370118685252379121332361575030483274651799652339036646338862038790558460855162395882612849610095828771547862539428519808439185561788041377885807139565404014373268068718947472466122812382333948516014523288161976169849986544767234527140329280598764898813887661853440597916053098720071581460312553408197836372608803560024852006286809658407166788870539052065121661897395246706069848601572565786521197936958021741863684565835553798742188051330696834371325898840355459666224244551750732592225632548212300285840209103083406790352065493211037142624738522050230114277278874159295002135391875769127688732661474710436584149026718725997924406479588398220791514300698742045540423343721746630795494831997764907848917565782524354746822911099919712855202762200697418202347544219261689253547604748487401484898382974873229322724564045681047911129595012849788051043887263312224279617818893709320864527647335462833003525331989346802388142714056164670343872307172781157725099191195025415446265948283290443901619914362087688107005022325307998632743935392972228717390647215253874538151211242895569872555126120452362581942250273834463297667587987353342285675074478478008023151170934320088717840324627646356467848599634040802750010102574400936280605945914793057317859781395734330172371825892712075073883823585365705731305939086177503443167590234875114357798188259089252090042924971289669978839971971461585977565517553828845563660516714403117249283371371492721358779334503484855732335209622926674107097042849272490527004848706385059731586397949471506586287540902559753626693267694579598391968644079369240770520664936071048198039200342922334859519444934985071490748253731526580288261472446122870643300797239881439310703578373562093259313125140482968444732458825889380662598854895955291593004242116597219989162677805467975376275688676509653255772422867028286074240437531106238905931171186716207831317806240972374559549758162272177243139545146166682771969215341936297118661169528830806122017996907984720472143786443801203475842078457236084289948771253032765638333949450230547039001201523987792961834455320378542289185076465457012997584392100428945658252040051897913660644318412407384148884170813173546153419310748453832528968535537757687058656294755078097651367754724682536307708387066052824751694724799170220025692591119743353687555443768347575363090213628822380880840870572717061140303127031664631550301443750548004091660651408377138031089700467783915446068064957950819270796014480459423967220283484684143992873859778325970289710654584286974772311227897993629006323608084796449504077101539617534836020938017386602610972138547432314583051698562519877331933132383018624844525257075957133328770613644884132476837340841221306409120978571880691469158957457289030366176022712261705868787277950609265205625648309120238993412302810942830388761687559543885474316739353736423802039618139567267644474373620105114997030602120593683748059313914311785458858654926898550644935357660311977506243095272600031621693733357283244144206832389795944023051886767577680945323825240649938756583510222490992135549144737414995593806025699905656899190139127772083345865371773823651498112284000803866509542785649944626601801944676146815902283513582818624657953441904747665841039618814836343355737478471234693566541044821323403179222338132336769659345432042998620200823658122384410691015992614450268989020900490456146078143926653358302967144271919242051756641178704383367443132590483375206829027865687344065994526283699838784793259303045353381949910040569958950262897903388754849726336538514246200322526112399859344862156210676683341739204301370886663501268582697537034130022457244548608451005862992091377107185720084484002640974317780107842880274283215363097708856787027950061475165600490490269858876702455203909708180577546205928733283266754804130200433448761457077134146144807029601876232803493125823822451979682504241931169872241221052355460686258531488023972660930029994355407957024491659128240103471340013703764072635144811692765114672750091277063447845676242484432919514062307550563584001076721432838366134315409719769579051781274314087775618026996741586749899775345119166075269102182656359958812580637628244210373455241675994269022007718369536883287985548392402234749860696471198637009221576442348826245970256528861118870053801050241388581859027887113507324381881346074301227530963138538747876302991823954610440768804681270776838430277722129064910633383904626295913478885203217684336756581502910756337954307818407159505600491882373584964049967980940003472434085412112766195142787162306086781919778654425549145440079188743339441941351673483000729578723269843446901034731363339609391451919946438043777763377448239285595175202427075344012758140852531270024200114688208907763073604600327920975618206440123288860968196748578113141531480774996888889888622146762449364235561005161613018962727491687122006415234910607877592007087509240343866293975365195325298605418542159534373636094409081093072902996793352643527865867643074399739638145788149241368172010480970495796669886192744727350184229469735613075764464457126488955327341372559804049939771143071045689940810352783267786119398033193601956995165276628565317511416480865084492295579039482082689262759883520954492611140597488263196842755431553785006614567602062523490490544387324371739058877953446305388200669780195994410420895807903348540591800692469264568434002933398049653073007833925862852521895265805164687852043586352457187132317855616350995236900139480629955236381764969634075353096936118908360718527045128129589073612841677779036532245825925146492090227076704461459525252751826304304546857223486496941449384127239389657358502309787067672241111453807842308454734279473946327108364505729666787030058882438634045642425850021399111478453024656775832933812798458312492501999898377602308407557128663905913688539089617692051043655565787465549815872932773820655644236356653010253523218654643464658349126185555234281267916898192430774292078833627806434509320019485797077747681594418521969998237107080203756076413136978201492166415342460910914313741609948811000617627082195274077515989813681814163590936102214592232140260009728476399150636467426172532263148433388696937444616771507303097406326462882725981392671983690778547377341241213428008199305150863015408027480437783448050325921754758875713698004209786673442770061242370222036967981111336626158915978102448383015803202202504085902567347022627485713742791242306407335865945083832051346971705698107625681627502812167062956884057533748527278032036677594470597727697494780909173971144917106586148846022243635707303815175817401467207609863658332126113152865949097103954563848037693129768164835529251274475240615618018062991305795484575384656170887642566193237977506638772176301678797802449218811855256968289747939798810797561010553585794481555280360390963162711262940240675121714229580026299283152035329486445297489031809497698398308678906510100973701834394636644742751455465001459940967045477201195935152595554343597069053408577302478119709010421600909550120344285994976000671442043156526278608659776677520284387145952202465363371916597978782987498278965480007789242757979724596644525655024574460691091989300848380649633228567837120969902358777803894552289837399020102345438946091833452296320345905331100918842345451478748426308049743891690037380941813952091456714308092224060669380863098692843269235834448606477676468918000192145389511366791299204791304139443176242868484299708602913952379074126864387115315602309984446023625092927319374504086846401265352098745900996706262843381175682895610815604763660157754897711535644604933541209934532996545096802802816589457611342312833044290335750270026183167472847887908133104023698041163374973181247916901937605878690316707614371866219004131807868500858902141628202667976446341263912111477051529504096418253371052874352832438026378254663602076304359676859683641950452927055295140598959197537435226593258120085314622902921720062250454049123052803157504592277060256776119641629765862868081655370923194525314335120058060003750213372542967229819818036607214276903918623172367986457660839524433796120025865693801896910443694527016951829820392530317719412394368456155242203858038564296663988135732117812936431539232236472534523163660561823561856603103695832048254685583219020174323458312574626201153988223282269689529402670652666348037446934846850461595404717691630288756004456170012206010694207967981531120507643628179745645952347930461806827072655046334188325528699981833812938720372487066696250180867347013009845454506356497826758923949236114786474280937472378561465919053635238986602995795174319181879977581363012637850947221407492993117661708603216687625634944770200328685896818144177781490866220981621366667217958475628425029661488676711821586903642817823276104015254903712600338425541293784349672567798134741023033766665717774075420074236220177054030073697112209754569917063557123393387320691837930757864778595588135962530063715450325644851467052144956634792373211976311648339098447437454268867004727545337938285276046174442835216569734453570517187013125745782337603542500578440772647677305780802714106416369940893133369785130693245956451726091892509112232278109778463188740845748909925792112345735744148499232889892022202882226371272494238415040064776591424471902676658900963985374847897658067052853049726019122530683462710092007454544876544440395150805773348024498419150498704466210900862940185293844286913876231801861063073946906995122533030005793940489327701590332069178412148658227431694913993259182534989363140539192486109868406794254126612941160243127828039296682407882434582759653821134839992672027173099981025252483102136552012664321821813930795682986330574387964398827224873298976728381269293911427503879951748554508219538903839459427102592105404220909585751283332714475283201368383339412893294054360708157651114146127877899533005327756860569731033800570075747608457648743524654204226191518298789426623041975107240370239306985598926570104471618324858573283824895303994946521980261936707777026108902322094676801492221186871367638353642666141034302044719006073855058175432176607316975343523529646256070262607754382449717007362536369499065557428275811464338551707632572762856011731536014679891521371117966872471232172410477897416417528857651368232375315934061247771551695311896919506735975297934336326961735310237327596612598406259464263497460492591106256822045702999923529927648786511905746792304193703813927012661742695057557573958256212978118661505886023417776867923404998924729508541258357329369368426569385499102381266873140638944040047608415121424271502713099745345902935875322126562376966423361585450965386870983815767681601951817792601101311254642298190661083683375445065643868098526647767867892566879113453019930138950843555709012574661161789914195810697583503204756833925668773669314507545997293192805365402655346636441677126418365715713973150922733812033844468639600985117775280881405684124692135515933685095413149501650821275504370964007862685565327385504587385282122297577755868654507805741497360374264051983443895644068813510048363862481793531223167952375576311921842239884385812385291610314741776977115316987639290529197303320897462408537662984462683170845652595809766400970748489182029347554653082761120636267829605377950065803733376052786324476337823849539218378973461189676492812117267202038398827289129477436893364674239324549428305225963119264602705039413565652915738603659912155701021863105943924071205554848474889077458332001387974618601458810700669432585742031599954494934788479987158235592901461730933681261599941847715250584016918410810081789905924665815636677458631545509539822049051029026923410937411145093457378366336853123278489302140899002476750157583435654430882790097862978159831368305634120181383121219592242885188198094271096374799805718131628230985995466148003279254078767899793077189912845625493610575263998617276990223939435971331253278635177612272731883024639091654001603976036192192700553103371110595033807321796485963457594803928878773807423251773085355805436625490780704139544070476598383626484384849763108656791599299412561133553194419661167264895633329295669046003029952725957597861806458744328946371462419140558866381645371275189122782906251138075297805629310105267573743924359391502926703236239310471653598001983435242494873132807136076319609818270398422449835899261118796531696227386384782073380893695930197979794081464517895285350348386979576068622312275652032568493931222564228069136573767252446400776935640577658186010023063728738858461978731002176412492864072882447384396430932979460920308477114126315325854074959532691587137250092871375747873860861163935710936967393840915142752256694191678072481189080982325538855171581822664782469333232709407228859651787828173232325353350362216015179520649395242490307382160741849883361040303561856846956973018670674980297048634363072038979747760736251068156495739286994428164565099493312472051799745184019458404562705130759806761938012291106388370188449828944432909576154013072583143576224713283968572992256341225482748681739514368769743004117515169873198849291339529554809568996423570784259066501937891576480950168610883020376849740277781345400677800167065617123341551927390811238028553434291092701949378222309219302773425868520520320955175953664579974387689348647254420196753934731365893911830420403560161283361580008547635696738193230068075867035552546061276205340979928985996361853275837964147630025423489552770880576826793241445718558748823381593626868299111220938523002257129154447093428909007787022257937299059782716815477202922406070625704695081941024804247761416316046113439072567032421235679599696565298934753773390619885911017588546903443029222828257327260086612029516917786973170288332291617723737387045864501284909311704229713915579150977208190106462306705680280010861922887940348821901266402358266060126685465010593414908276116980683934824439017325506985554616991664281133498055403236786487024399917137661492629398853376013165032821396361101802401178014466397392875785434732736287475810219056466420338401454975078993681502545692610030303155982173019953506976315172251739259341362806611374783286229999890150538939538342305839568448268496494779429724847022134554436452583706925664321635910418936899141806586131266210663913120885488799268781813622753131288058351865993956735479285955568314017932848013873249578225189899528326055063305016650722003311748358926894973195835324074200860689637986983623483384752514272491828219923429391844445630673110963278787572507517852682267432874467144524307542973732732487097617470420790888267047578873580147885699094472773071631014027055321467286158442616475518813039123386060869178619707480131553495981279884815402454588867805781460674464602451954331147535949751457386918237176764532184613930027698279003814956837120339654191698493623969106248992979762662303718777697575380094801467160501567730035158541605822184936675761764886618946045976444130099821323343226862502690596910708327338103544354334831849836913234849184493867299571553909765123182035436160973555489345131847426618329147001626360560183999424610526159653406360932783949019601294957922622254409636650936704329648980932865178203656406250711052762432305539171762963581430159411587550827475325702053107896080650453174990133248705570777820843042880671971040763693005659098950419482978489319654382752452136408382252661829122723369794616542983646058091967941247228678541643155211823232976814680922076926392615998718282825582043231107098297351962296002147345597149781052827273552584716029551255949433113620235473754493472849865987427857395307641339353007969036354236272952959132915644072060973725564135406406234974535532393025711847773201084991995941503951349914178908477900512709872777516470274487948662297495535559506096389121050545081547951083627749859044684342853127287928288968110456394127345646669421433081042237364274929183119497271042476374448301310426187680024881550309023576325920455459320888656181402150352500680539794601324496032955804750176987360245726744211417172220882737398905757056383416023905745510485501724603610035324090700627833586237852753574838952726986132571040282729479605085049824237516435264842240127407892248593505624406873912966751596915319284945599835226492378288129954074418757940966206241604440433095117528456833420584869785274436497532999276983990520517320293004848256996613725633109676266429055018117249792694936755371588918922413974865899085400289002759119024523953073346389258590621736105666302394316007239467730904446841821231833246043166121882375470980693370002522943838090116607060380403597474363715021441832668091417008747130678527337486554832328128925242761230152194652359293859872456591210816319948230453104775473577813871091116348465764089049768519330483105288382869647217854901196674527801888523371874146410215369226536797098524789741697064805224095373869965103019721860822259799678770093030424143485811607899476699786403851892630704068239389128276623299021257970488953186272100915296765238804920236813617861692159328468302115051065171811530960164799271300754482751700156587567159853306361897127071130926622278462326491758095736875000078108085793807808789730241391560652676000363258799401707684780875255085424819244349619248777572700434909801258526427663969727291336521699699256926003819717695776198781068623651935912771712761690513187654479437125826040724013268478210297989711719473547375113957616607148016680069410905211904121008065505909438597359738167072252834695482783671745784170380705195485237776645944011946114216641248243991516291212682640657511387179783638771413725373954785406739002267249923399692834905851953445769067595665993993184629954754485601740313821286441502223344578740759406127040408946775897744041783806230231676511592761877833339118766115721468678453650149064688181064750021354929623283796553319596386685644875189149513230578174283765891246176851313134134392012183668097260452355525824823879899459515675180744119256654410112276365439513005750119765284514058382428016271291090853307566667438737385484613429378344130315470826837147380269937213500121809517641428966600257716146317986925570015713964140214699583876824938833014689674259801853051498612525149630493677452403057795391734235607703518115656687386796336801011458408462174033357816583133574582842165436544800645084493616671669482120909113859670396412970316856638890094267260571878834316306033692274325477893392905729259367225175841414003118908847576046712185392737787015336052703556064306611378586782534316694749687733715922187856245070191629660204326942922272019126373191025038434436782265796019519511536617165007826293979158427024668138805946439556581901942647439085105201340097104289195637218036425986716344227961524033123522388158592512390654227092032953589568960512953861463424374015617000589005068566430807767178330826752195290992923572859630528056910559180768663804030757553814893470253003771962506229696466052836646746788946188060849045797236497712516969575066234187963944069705554027982769106978920653630209360791862592549677325178011951097778366450988903413239341619260338094198473748377849222182745337255700509271871806385520020758715798295546936868256775176855654325949247733096419654331126784002029608196684676381021641996243410084453686869374312844270799478386298847171897799860952056568056052939267605182101352887381138606835645537224045762764816015768699901714074235858841923724429817062783592899894259104885752531776263394483635331188190808163370331521895285026145592098600815517540850660680390467041902247553350115617318138557034286681159742429387195852230621318064941866015832461244917326674274079846867959530588729667693131097606698378513161798320160775982541073780258870390343269121719268057004156133083918184440173355927179832467124354004295808529740264076243811270484126058585120117938558438898905657620405691747890375806030829359393120977696059987672565175419997731595886077402319787039495932773731122115278946634994846808742755746881594166575646295930408876129694384546273307452635091421715629385557538321781943863121082385472738398665005940747781678499671320391962116979693814869550118025084962039983088439885067284815140806704447494010523747217405730979668214642542289032942336094362666884365101398146276148287460994844721241886356733211178579390779971156444276726198482498012779005007559005246912022640326149145020012005636369689649499996871762005881400424980576403338828287017653943605926357079463588696502097793246156097824718776130043569094711177819187458031663518446658425040540340150823073108230168560300899483012549497107104176593941213617287994848413739975470095489869254929289212070118825105110115719137416994316476575724392819242253967463389047439866409696235906393065473646169309871516331911087045236855942796698186867416081854374255150122229274416205686942522853527262501827770913814471948906035220182123381833240046797943682184219744807009460356100567515383478943436451615038726557863226899038927350871537556617500140485510411572151151949185519022241088487023468251873164317901019846584988182047538911777234380483403973763424994143171611612725258953546599148556020772790831104276434046336838304890608948853395771503510265377068579705097529308280617355090351438514189771270105622217392878192882967921328359371882682533999147078994498563126139212101882689479910716345235287981736771431457523082418934997431936745436791017924592350250245560920168552700243506595149328661061826352580763447348734267332124971828807951951196402200369645295093721631603530230473365398210167853151636454438269205570292679367358684759006468955778049228239232175505211697157018529347187685356327474327680415609864242713004845739775431989671574275468166634972260666846300549000396057860280164773031089792883946797693005958220362155992603246612225263611366488624016507959763631048892514745989489802604014210835559256197807031437937614547095776040034071290965686652833051763700605673223738885192034142975702929486750131393542086459125544090156980320045832277121600136744218930738285987857148034210250921130622541069506302926702579597350295280443769759794412657372796092668502481136452163007880120202303977940633678950476602182201562814037122807612649215005663365442031171825363200695436390051222754202979890824584132702572629905881626771963990804226286557160031327953150703825163148005902882422896112751288179317666299876507019893813762736764046504413059475024511548667476599196579134661837054956210510978956550951642189923977160029779362524809417967108176587873171707221285257727438285160440602732823440529821145971075018830060851542944428527889979366020674901073014965027793618527082814270624243515325615652137206059132669450746144399409097686350277986247174224837219153934374846269197293186243939484296352005378293315275980005093164920765072612914793084212014873132888487320138613431761545859430222952264197532262523691405930832048115335573973528770579019377038423813861718415744564786341162922986457404531904295183643708831330669617541565938825707169582344779254320592023419185088925170692679492115009649977620412882606860412726441763546757541174024866654458332354738720232139172547131004164515954086285129482338417579661599607177769900518561892019076961423032111448158952106835245721187919631687823676746007660054579392412664932216453028462330356712777714170903732827268923850499687739085120574981311853422681194509397205926593605876755547734438981723567909888241269505789804821218229883779657371795168746454327139931578427543149956528376160729440086111998959911424376011064000323108389285876830922411753620856202597441033368145234684148236682280204666060993521881893097202509944369849757070401457285683551652048194750308650282290261382303512996906786953490451850977103210542008189767257425898910791781932747098847663266882190498193907696010384040898653998212985039200996758658304135524232268790657411104786674028024678206095855651677023660914775480554681892654216589026608407888535305522316074302760255284817465622223368328438730896100730141046501472733199183885437635251729078360928578897287324210082314417298470494545831749168792316710410010384179567308024309137252701507134324867158449273095505335002792066930410149163049706427965042065643169304807621678749743284292799033724642134044364296219458385633214797464670670146909669126651975820711965170307273391970329163917016649081609388554267625733554445674623815781649706941429830657869066411715281742014645824874486464055043475999892904014196614648483765865869363905687749198800127201978390287476141460016819724849000080535382433241790880100889338306707423854835548827634067872959152108593107832940996336991845873022119284702213220305140917344072049671817986941158915723332612569825863066423756707495497509194051954730853879229929568508221840489685136234791878621491411878040320752247109296417742990974970760912730367967218632204206627872604496037571194917240968255138631356936958489150082317968603366260209252587504191365714199661411789633130128502968349775416938560605585823676063892268501335979895211894919437941562347200276040887635396065942667775428639096550723528737673601881490507609815084747715014682288056155866976794892701139934187239202539210295963883708055435771128747941902178247837566842997044841531349556842806276798658379568945939252102920097722807208642371058737403296068426505844811867743195044726109899482865485798462435093130997119366054523625625762507324377860650885514596320933012406582613299807270289646452743651007984249235217605744009870603749794667400819135280034088860372284974177258847699448251569001538411043197022710927375811122094628623726171154781389169010913777528215144392001605374819541025165697691787190390468135504133467226287703157630497926221062868624723185307625149746890185708580875925562873765069366554836116213004658913924131156462713850590700439877160719200788413150988508142572802291202460675564796033270732531363282801413819217363733554301067249262262986450930720327599336955469184688146560533770955504143569142875057373754758534669038490849642525672615321953403599761959502035877807579348868721943736075285586158579344745035631409218563080023223474734025277497387373054050464694595188565035026944023531324221092998788781326713005911582735531371531957689184185556108085945496568810377260586572454810846975883153380407824245114172079343955292588450071712502835887635418167385339283629074316709423612943226171411183286251323761264780121771974123738041569711164955186133313215072591642520129914999006253275315964871158725756626169881151787417098016237919859445594111088478546365855201998758156118520137480457392109572452255664653507916082395319429834441437285637024197126798245133981433116679571213591363757733767579537016037304763083753975641084318029228928328466394510505332003864611126280477768017306640452328160439735291833760676326282794395879978296813957738264290949014835841333335182386771273484539817323719426495439467301095026307738978215765604635150415732914483171500297185302779499013943877447008361657499323685836576954632192495777557818877430729841789446563501076358912610144235842249416741181449735293107123100063919225645865292346269985377967895019798192281577974538907601254368293611851542898334225828768037173403358537635893074981497884971335500133856174884447163564289854147362664132882550580354011161416311840924312147031852120517436305751884436168754689600537951565345003900354947649136495489758519096592362022628724476620321199583493054318630317940938617015567926440677400413696535118033256749022702196977648144197857278486783195396209123315930844962281905973955073896987652712750355186424141641467057759421226109418565288532034357294916249058880286656605133276900109257580618910482419920842241649304178658669302528729532797210006061262076920864031026632154382977394735038093088601849126908377698711133456466954531655574912196695696337679085790836142120893039506763606783918868579587986553917948177712484190322432947831937162934612653099731792312019630421027061095757726771762297716968074304495132590867886820410584332873968017066979743684101867198823285487958909287846328406174731699474360150939031226371231966139105546579222341619418734361893313277227999096963721260298285213856350162282367901516869598978908526973643114879374648957624034856831567538745896519242427179902453843155332578392684404063685902815635927799095362351474594380185062910533288330887812279236633852285861338967456101529524142448002483134168012034920013663833638032887565946772233991660462915653410068244179762639729732741035547289883435648013662331865262521048509861626949465907668168441095656585869158730696806907081685387366905336437580730023647364558474951796490450539404804519239505772480426396190312800366046245256645208272965865956712089254115863564991753353115705775001382882906772799636664055874793547545850424273394720102035399281163369678544352403431643137096884600630891140686929897138749906683071961535317329489955478972262254730223299240407027245851598703201118883887324869502710242279223949120125152368044388650392799211672250054280924455160145084438463542224918849477274760084827742410356643774497368659186742947928689942133572193189204524784379300245190865574922748161263877182204266489978748337177474294887881838013593822294313231096740351980694117064544761562961381656984517601662976677547417847584634454189714928858349104353853561494852497146487613332340591618951972764488986944010491775123058771475478168654293772763686538975360462121222415569297567918413245528775128683282346520174887910894908719853579575416051985645367449769336545640976837734349920837311915674164848613376685027634202824849708293535940620198573784575989885692615686329912652036430628731787979838271974022648760110564737361460328093068882544326949236558351012342343609950043102880240686301913066118693955657267912740780439700510509398648608089924075022416561443622264392746136579565001738064568567952899842096668151955351764306225476985339977376886410057506677597076878536553414416766880473399788285223464575902399586938231951516111378886158874991415241451945607806557374626431020629499128856859247649031821993912738398219867682464036794958351990285685930733876417924274492315905651911398953167544582838589309795517179826600433568389804061011387507036179080683730590969581841873975838236913721623746333395001700544836391531180760657199855708358436120834003987166073627848493735172531457014210051582128031216594952253938635168465356611523054162393330805610744575558492659770416008824012545511269795735054023898604711057178935473940767910228764280796537873188641231670574164718324115917660104485588053317216211460127818828178405590393897420136851288755874256616335321997159555328979305410589457163046751615143929669277473929105520176196708022041141878916800232215820907111604664128347945710308174677742787722170801579563681128598966077286122990953806348364867891631396292272218330333777406601128785786302755736239046196105957025673731568483109947235441571860075933578910038423773040315635578972351035790705454539360103745664962198202109990960022191670033284763953209479048538483119753522542134974508432108685743755707042403074602875537926465981504991794642036237258886157351161639798493499539699483694683235539256277114110427657067305891907033845740237020488710097182532169705573683844322006240588149616219147691869061023768362364640078882196595419775885210118600994620009750180745204517343975141258731929168608267970558540148986468352721389098767546616850818579331087734256597055726361525015366800232568159793513954532736933700350536220701970582220550388118403846636015027268131920225206971017505787225028292768406665437454995475599732062417984423439359277928790193240573495265471651388641113219666692704248031619969278390352157496302097807346482043767567372571394925334195741454565414388548114075563269941548805482718741749071649809944690485667673133867350020063295996711516445076389917934005451499324741456185754662167056545022138976567470701516894115382490608514033508886736842173128502133298379428844670991612039481616957635153622270604770330245000133466928760398322799352856373019322421082762683194983182047754899118227360006779595539266478209992683126359232114303254395752810266964910017818650625418567690387497280801387137643912219721660288485919990644646089207232777163402872057360185320038721731467847373469415353272366573127689839723637999874123383607242850680193262388408237564773711222219286365782022333137205672421818988651819673724651832735411526943001899628787863497357490477985461423027601360781289193060070209781932884164048439957985199139711484351451534973606862866173664403198134542420560056794559834406001721405636558911129975768454156129570767603456945475137404132159614698034360711631526791060020976017997004651329102929345536643361677830854994657058264262100893178641454809902310975829923522685949259100888709072072700418081382479751292536327979636288016443506948390345573609939296177717844355911354929505324731632516550334553576654854652648142728011208191453273779942220353171810748800017205083588294385753605464408924161660927785368568307977423511424748336367534827052751414731617739851643319373520763812733404997978841668394596375324543986356512411227499326837726950836862719640790125861650761490454767577458350198591956020048332025592507400682028805843913414370812676304129922371535035761516958886534073454869550676869399439956755412964443223256747089157206112348557394401411743321678578639396571877874657254541105730581059416382560764828719971669545391855742884273737055875923964035946068324598207354936149237274797371610474606950454947846855105835157929427152480067722640245554760395828220897560976514821859875034464729059352544514168244535399272009462200468228967076259994787070779385151906191339446336948796047406114605935808090859969146934214675961639314242013686661198253776872849589681022591252771162812949842712482194689175494374165878451423987377339309842291439014338016185629213320304471738973848109596022228525368907664035448402747105026936870724894813453896593210433447527646471836853273910190394500376812082443363302941912314217697724518041464227818918244254870092730903263595778714262239275032032057982944441087320441558547032938733023123475725453688828991661633215266828525812914588180968261057342444052666422467385030580871584681574251105120840656003980402606121877681483278644385323711858271536287451615122928313161821788205452374112615114166366239117416986585773789719248069525745696904342205304523666848674705592415151781587278417888659615940913169708574915874710830736492164808793393241911972118554395300492270538718522547476237451167928309482990745796792457813339894249173744295175109919353791131659845293843371646633486113253019937692232413396120093803717474047236741664470212641768671000826641883908737851201350769524002396780526884933830678461421213084895245426719125840144868937739396877107518201308018166374246507975326744926913969284618669123170171038670556775231668825562699006608048347642454512759208666971688585341140666472944972267094034083571513911878182297943294312114100325370671254861213908547709770420090149269699624801508184281128711241749242999956747203046818677020689225872483453860269387105141143544083282671808712201119058357224930648996072443384487482464863737345266217257301863190048997980394617095770468635891167208149510861030343997404328460737091134388951799065504136201895462368302584276934098328200590146090446447536870698416371886136831785696291846091506643289189085370644918283502155762948146783599823020310882274135468534734126295290372091846819611936409369089769352716186264473083904183596586571317920863774379007196663294574140996821710234905920653941936514436219591070997248470266429354113235713761598662951239990078913637434242201826515183278853881281614610771288217928183892875211315970202236267363512829974865690247487429703570272168743107851570558363097786708627211698824287536859435742182460525914427826950080104018910646257039480333339163994484586039755632479899929768954483658821026014973942664834847419601878770896827802217232910523377239565057010455548820774861443844811163704820322230858760802364650855365045674688511595469653495581874471367528072464262034064598913299543146971129065955776340411171245305350439142354543460040861915254165842456838846083919301794182341912177624811154155084942203676221159890051598693698625801939469040198815042598338376728137572667801887233848390404666214109804550319313458237725459746217428142740327824469923624468725140497018012760192168168073125566405453785082141244495775319161334457932068768485776736403633385550831647198340763111847066841906244454453111066954792245776944573734676702602552855799078194682774458489107156345965337564936431906717086653991148659274259754041254584055565139234280641875344807736871028000974483706756052881530391901287197809019648966648208134359507082631050524880637111047913339433528453721005813275423758410227431479890156414660194279323469146900284364248594668474713593339206643998374097163574263781472098408643362698619673248859346580742480535599971622363700187427028806640718660093980194027390936776442246148710936782713850778084115942818889966270830057619884996033766900061282784012072567663108029836513674166337305775908096374845324780845193088479246449665076292331204445218389010706235274558852217102472144246741100919426094900911625320893740494850494144160880806846526817288707273198735971202826979064928384389751432287073590690660506628192556236358589334570716659644577314792878575668445119784456812308086774130289965483857030272884593254745444294454550463780373068784555597853232835070953034185529538535414082794723610652264262129075592700151893841756381241408999915636508075288023895752859122822562201261636571174880594771721456183403454467098503524296840927604108145952661633295845825958834203176144331480029512707409796588880478160852410668646325460941015657929194602361931339604937641898874459444522769918296219478585249612367772295638984953625304130019106944511032810266918677804564153104765537549474451555028724984020369098498099056814232729941277721247411136613593648545576892150285458668828662361952428682397513412882473571269597492929772096384497285511636927397400536668097472493208890677726400579644373757984759944669472899357979611703280157530646627753719997519792011560736222242599032536476793655523763845434088026350010775300621774098692569328933535938116032506643678475150805288354900413208709409610299206709688317677677572705377117265418439266464955708593928282391596547502122284029317441519787995319784231596758239917228635324226272424073413080494275721311166766499570709981197005295260225755582881278353432103203161353997238134744724645393825118294896014871943351441936828703615938032342249336178365047765073568511167147864401825712884862325062746324802428307995130258372488645400386825869711196207921974015931512274960534744371200440149762547678822403303782177930616035745062964572096311177274999684288465443261053664288993356361877732479183593291867341390951597041009237714678668565848986262508562108844942671727323948082934870385258567099445280140852288829378475619531133356110827391116511773583208029479933734653757493079174589075909120197609963643440331295072937931276328389666698177835479276422982290154253047443856245992792314114702917324388227276904066696839347521949312636951438024764075395014092762710568536961131686302355748303614714018923361617218501409252019184356408620008116922853851446761023246907147880337687028828083405800629040934914776117899754497375115730237251959208257180495880116026910840548300884154076912923082453749021001616474362896668819078879813672369314976731639453956328733606395457851890492485768155171625270208770225517898435290073999446341328919925235723431043437343644099703698337262703195395673958079678644887516323558682255730578526877981378466100247859217835277649169467317021061827790019591613770902191385014616444760399595321863705499110696491779198255570164876594360706489446404377681258713963199326722712222492618603988104006090004454087769837726743487088302345832551280353199630666078412334659107307557270928600189564667747555951257149390285341796557789181587793277290450501002381214578967870368283488877442359777243016702910066346659063067726327469078345026264264736024187900054605837691587270012748093296040828260269183035473713909112425038513364916604287861020803375191173630540440165654452111466693387981816473804654940787114307482423142310196316178897289165193697057904335473102698304389370563390772366695997696222212484480821842670443181056770587462919210531841810904410462035463659449912869075689902559910784400770087305990792324160508787745080723295408000244218631407159421344417355181214135244404822484854557583922572865360812606956122720248181759357207324298151158903595190922868026211717898410824553816715175071117173283074959156121408879025115001396466078514224763691382471012412745019870113579472076848053226511752610977207406444942070107944648220342205071138761864127008533716371471832358517527169743141955138350092668717647144639352092715606851035885518430295805279734779636113344560994933751357252091484493739152248341643927186934190723197631985117373088670814097558504708465934603756653903878853839950733256167211911305548100421517093890363715739544691885208216801885325638588448283280219202741215060596416927933202375675969981123250681596854654560409268799097436279965157107899986106657727658887698236011984655343213228021725437709585043705931125531621683334063003051460884654061963777130207482651656059765365303642067065055505473806976022966556586795178828275584025078414580057290066453019451975522557969900260933552604472729344586364828404912289675151130601848607319873714505575601976347547426714193365741706445090718619868821786361320599954494537725814612456048508579902950286991337167130618652487393143024387895780068279511146271185091041902996265540139298928915402226039599897472331277696124795975045397698587533408240800171704606383361704186836037079519190740359540865365067628410663749216187562424910373149321149832497147857487116091825530147785852222478289838624311172267516400113057521560657571069566191050271540972442007387756548030775230419766170904513027983297263501508993103041592760316883677846410161070160016099917027094395611686895843705289972246215836312623322943131889410175173724987485063012350279576099298897874452666830581082963760505765254257492820437069380510928351775577833173116225099160460142642273856973901790562090138286015078246431566562469408571573987080899626231889472227376306394351129144039715117145176454354526058682198244566788936740802245565056719411815674811897645665951499737268262326147625138567889310656567844137949306773837096010634160277992345195017318251446638224014537759642489440412620520882869024545968698660035235045119764190529997204280111914193859873540679015966943018195045024489431586236291248954089533568558870317501151958637523671476324217931853601505344441775082816018059372523874897049534843767856450510054055403135662981119943106030613468262356344399343873299533279391316440286344365071126870409646876556227828270217165164981667225176150252872638869295761474967292565449854127581895686284494732726403009100000619813968578464191200561924030827551347326384277720091896680755979106083427002300529495854791853090315691188461874952423265887024296538482168894846180812666862618297978723396215293254615753623690970028234682048949580887587095164183916892898075301672024889350992326220696896609379816664463307916194796965814715350772687668589031199982890113383287919031732995222548823516575393107770374047264203015120470512897553401153132249332532595251566495185373515374343053792276508777875090750050789247797502334390232480680244387824394618012081526928704829646835344044296699708091170662754507186992967086057565233757554629074643498789809219084739772018666539542203567416865561070348117841557806735277614302907288499230400494338854585204826322339006374509863107816940419416243229475597030115288362782724985121845455904494010068646738192221605930907019524495865713353997214724790040042606067889558833262610585812876858633653447182285055617963459313223627533170696838764884512608356344879552726127531201227961724128031671027927292565948218370490540419054260903686979180711629006466164079499165137626096954613002998025057251052918964645236045343886943407942134989633623674291301624186030829903966449804157458104093938995927744724148856918831016753245789666218165979326811243952957788537682384078995805898376020951936424654706799277543917027794621919499175283925329297668512625009624396976570880286274103509805550014430006981210671537830608741650514317548033296163198720530351799566639364215838515171515564844012188099326021240139151038678560605092253440607595554040795805081887323714827232740721898573976357769046550213925600908370067443147354714699154403962797307590105587462346871157580402125276865950157490963144329773933554710152331345339131480556649072513365302931329783179917455722323665358265251897837003516352480147546375233794795741211198605248550994026455568289400712808301113983485315360639162050650387697770280298974091812129630121170257091124252065275339032139894381624592670284892684696690377922877675551629595481348130307304100259415822853534951965639350573507272358998715970777562146948449350336070190261099514219594092235158313627335620539374121244629773724391471395775700097214415848591200886413887580336119702661300632992420142114411390794741697727723098098827251692191728604326912863900126562416836466180104084553364511957004208703684358113544826822518558904382850550949426449454689416357753031034074780096434001488487418249430376973419687428523378511038539233040307016762080068300273767055890026022806807377694949735119698356180608148905201964890898045588822725173764462786682450791609800149617485504257033039760244293635599522626896448458557098207370638769122683347918280772552880833773445585481453645860531438058099621511192305279215664228969471490848873662173973145057326425440670775404137077651785195197366123784462466414369280479341193756354627698171591993217886421953622737451219634203612388242118479311333413565798320959031893216273912128430044552991588709551078875509303634384558610100192062148530383754451246884473438879100567927264063323015329410524618282200416545659090105365504716887258688319363428058936503057416572408548648912001673264148459084772906584081534699437767889740104384682107057860700151762658816292653491207989177514088945071744944271520305529484591480711438697397904128783451355195347110147798223100171273545504070613961830340419229842440640512687492544899947891444118241070684627132932416400087651760513769149471716256442660977584105271932943379921486793012015154230531703412774443187860852095953828411735033897873928988829644917101706459383419295716165401968243305744113704429336479801874351748225184791739226420170834364489575519808307776941565166111116361801817977679841842709849816918721821489964887048835864627858665447583034680248607664454265589516643133780130718041355670330909082760366002387866996740989646917081874031385379344404706571434916178516966896774773175404098481899200585832975333933112324565562339981927529970161276140452605349103661348582433800122036163588311459430486213375561147016997484578525898153370311609749300817208254205398025317450712914918298592361181016201705497650072346486987714786539661791337540734372039169057432646068442307392891252331419686529497483217868889265117722418139325968095066387984577690763721016953499353961967029026256415476847483737466692197285824741981067063690523732684512449167916154508459208191147936881081373056910739564984758000467850093215258054329952869625806008871706106497349365844447021939380938785397636647517325550164737350187562556058218198277702177907276027283675897866391241528735955654074574798028345843316514142489575527875035163693918927946220493079256119737805053031750377861076183030019104034666246862793039946965637912290917667422482539431182732034991282706892183468924899003608639176325592748830068025442802068593395698751621437171207541530304985026236972364259214165194170589345416351929590458865477183761310216818244178278919907724453374239056022782912618694012857854720681757452513308740312772496607189182347453328852182454248262161859586446254485653003309170161819616787597970546768141651723171078683107587461047076205090750559264983051836151104939773946649900542379352505807027150904077266703391519565088384733810417405912607445659602365611485678015878364349555115297720312933016926466956403430733048144604122825752487181526195998349214699993976548630976258442173891019833982782700263520099198666778077038754148861680104538854085568187659456201986707258662060005977885532205806726864190291085666216515878241377744595332298026485205663017813751239810226717375158239165246271641124421361112165183123993167707729084285248003208249141965289232205591313750296245318328936467933307765612434104719659977247854961353660425394907371168920332054830629023886135504469376880721133434953110315543352640449219570268386226932443895245127012583913119772707656640955060004792989258082869037906347088925009277627847225704093828917772077908529409795208409737268941146207740327607131812981053922153158311356982660402978492170331376069569406264656804649594062339083315188338605776453242892253046085424371591646193901315963643531532516553522811961106497233154213229229176231999343423297171211038585566587361703079148466492938506896966492831626592482450784039900978186686603358459990209242380336479597166255104538361834266576068315291609337043653590167881031570331868596470452852871376984086675303655290670281070649090428246337224167180355708402483130959622588630229125771312190224483378099241058096670809077796809936083711491187154307724035875971670862532804852519169822504117836072474584745671752374155824154769798464440189599525426934488856184902701364539818911913971797864884234908248639389439983658353813333530321473301076317332556535377482024269964059859945486268487379290114236552464195412960610082821740797590761442377038085215481435846423811516885390021916161346925012446874931878879335982557293275125954153883955163447790247510054771265088869317749760064443007936093563119808671483692605647744130715176115830956171875688293520717412297878774736703363892480637707278408402972228384027723202609870169665949360233058934077941907585927681899566425515072265722464073384050510732108831463393236146091893152890660763696150301459247722225454584758567823042943935082981538671933248999741509411714523375921619005325613753187309945318416028706292654825025171100306839560003355491571384320491507287748800081113557846802449141350013611784709257524972021131876402443409766960884009982884323444217007768198688617689172948830848681104794950117279121829509316938391207528627794107745748597889070984748131530844613708317046005550020511075489597202084365408344888190561860108282030262732241287240729251771812372153089922159010016568236455938044355791770436780801310396957717270292487028885927928561237553952205215624189695102316479540958294660563597964925965170438293639852719836951039592916999739953551543915332929314452803152546394869601099114172684006616369112770113811836235589210790451042757603920549235597506661335506560954589153383337891243572663900600610181465607730062580256299059273209891856292261717672256222139250349840849692893991612725479930466178342426787224293825808553042634347171305274969375422523856800601381821266016556970110123340406316932495976551976417559591276742658727389950758679400097843098912592298159200994077360698065256225869427940682210856519146769072091792638396906219764996313825545234819278129912141999243094520983991966247174660301659042462911851604894159778608186722192023756451799031754741672273540828590171924159194669216180608077472987071426183066273937125757812435144781962122421642257083124988398695830350391423714402819777451364346647954194804808860233047068260699423650835535773859822075022391429348151818900484481119636530048359360336882207495074165738976776640982902015080998699133463829151015579985155246092495423137423180602254422094770684293603612265000042499184550917230960880613907463925880809735881096880726130670631706249338534732688365494287295944901376613224135788333609253492237569867395339008440016415838589684494332254495065487030399785915130480447318505622799265448078294198403987702244629145172827844051063464446342949744707358312767981948699118360523635905923850749794336626025410585530940458641642798054356928277721025299172834614184922227301039650238974955407367449147963375218096247926318143071079736512596384573093544016657497807320997579841557321170890548353664117883427723985173946397441203791030752129063164429551171403202032869018569492093259116764840318543766269254634693183562219784632287507464375916679541378363829918682484185170433558111020648989422259841716951510012777613500619434916703861776385620430237212280301311230314190147954056783477117870377213476947199941503877233906831463853186641436746578116527126243682885291107858456342327974844842535405132809846632681406719601223057798610514950452260059730720623638258359858030406426791912018771872876634640352643431697278673419619730273774391957114845765739016874664704552850672185703031393968861536842652605875842666992352342644814692651134522058097175110180173071509056313260127390372047541773904514410163124363977500257074394206406171838493129106844482322646038247913563367048714935546187128929468428435237903555309629205540956709091378034441637070406376082151087052589325710026672074259013325441116886924901917482089990118774000405164135138923199184129404729507258642230325814678500394867426453102858395360893263914696323640981330810886442595264609004216224500574095780738977763672418757954462452545917448537750151005286654544825022246568861803026601246884637267240990960808315357834953562092952231256209385769997557833170047020916117280930920741278267153656908983092832070445164478258007998830766061577188710735276657712685678534614107906482821082158163438162413751218484383769834670951475904084964573878452835656722791193193558754156145786605940440617711406916742794649696942206136553251553632275482319023215493994117321150318002337035207807312570979303578064564095270590949337721155049563114450764259112836406148821189887368243623531426505748038945784812616866688223696869757725880349738982517881225477549718334114978079799075186816790843609018729873849931409174583335099077690106464715781676651363976679309695623677151026207563717328412972662545653976987072145707268133640728359394954561068299035746022127861620043819424288129049691163908330683732735202478414989220138745265674432406284319600793715813772367075448455169778959849300768413347669750941622829870166958243231715186416468448293225469510260458424183948184942547429069315612401714599501781792464535206687541095519872073383913721292071702149287294640816957293998147416235401484791871723771276354550386494527771844334174680670542364911083671286842858313398562296005641244516311128744363332188992347323528008952606160596586227266910808319913909448843819529799661454949262419410926888386773424005582800712568003524170136685621593125448214553953470574636279034462403230924507912155588994973001315289838719953744445476510295979079847611469978427392170934712352090196214469461629010542153742808001007645672221831187928562760824153055674677392946980578455695231534378830044073095068992977772176386725347691470731317322640702779721771743515183208678718600976838522907185031261922049673761373723262141144305237691098389650752181452321703990554128288469432870970966378894017565304510279745289486955385583183857946081067085880232655182392105251346933127698755005220519494132763202801359174641867891344674150108553903578799308140114551194510702543621857187137970735215163658866315623456099824149091402787051723219998735541318014397065911646036707165726128299977511361741799497020806013201151542349205269909781454150998965759087258848885606744121635085203637742468977837157626117372560248241141425028414454851956568148618248062795094457027746059846942216700825407957542772376009672178687748475304347319669591187957664849116772346424456367456829107872651338997328183811292541271102384973856350607784521228898272581371176857067936777883521169619150130802967479404102302815288912847560562749425568915191951244221478959434477885009473994639806059130928559088211398607567027149048939786801574949010063619426679219821097371288001659772628384929435210974241112039718397136679887804308320426256103479190001871465064996912293975907437498607539501293812813223379806306746944292833486586612380896656279677429695077071073618066401609477283362638589219276355204144870685311837800948688703692300052982769609716867315180123075243611070559835452007410442188988150739935423868171522057307930096204747610154578923340997018036278827313851364801956013454818450619222913767846287569582798343324084253117478949187841582033154111285589570773124781095565129874377544563961083847227428990554951228622499853987266523339468978163065444063964648468928655444746409128816273884776846428905877272756132484623269316434133480117839097137629752598134046813752598698655315940138878136371843312310639737589430757000403391198464249751161692292674293184636952656158774011998592920128351825469916990517344257108981603268995482887036954964527824569358124179351407379604215318119011351445430965800243396175273434452713269776579729251588654488236068733724608712784747555105377071526434168187026729083413123236995158806369786094843907229935609248293258032167362320247423088713175524342799188959115948228496664406875645753633152867573510370352526310350128590572851947244656010459777524795489611266812877317999845574979103238579925871247261891077032500099830347967704077466417177806475253998615952516311755882918230240993624629090486151369336857460037468205199874338720975621790845685960555444482081370900417546495350561612685456462103426519186158326785929875423568930608622737697813626806969144894220157643710600368592766918937126540804821493177086789283684034577784847678901900695792180152473514495122911593936463085630306066692999081794499128925332911209751203133624604197136222661014783929974539168968442521710389292957034088663108162193042490421100884348859732467700555486584733616266527172624415236489977482688194187125950965207191748545204126559853378849127377939394273899309583902026066284048284749773722639907461154117883025832172091260438748387466655507456935699033018905149803732791149412102820193288648052906140350240757265354539162440715951164041600494719223636443326418391337074686548071366399470683900787497875810986825131025742662174439490219483759275434837347249835751532148163486848692852402848185504052975101246450760288563234885235755859437842001419273040983122469574500097539249950045896090332448647826221075905102151635127703450797582200098940312177381995213970538064090951199419806339728182755966790055904954787627335354814696147375066667401641829348425636337826558439644886667769763508062113287941746100696205208371163783625769096699110414532083076584441356234755133614837165797839208296123167136908441936926861825809838730734434542254712869143368610707652849384128728754978471036306384637421402705469206089538437513669198235256193886333087703872151510535263975839966523358458439058536699060877458384189144408946901350023509777216557398185746669419136045924598417237489869824623947240957571120136854050103769892671922748319289699717543921771772363948729752390346453867802320681627535214692113130357543515346015421942816719330525069460621011726337656679463490783680158746280272845107598710516031405476463132297128706501586528330076089663975694772925600352306200461138860277634388319898489325309570075827244892881184346207427276691360165823607633019200893258925521709630088232978520370380069907617461931619300908177264086191461994072371910621367950749157869142581348934954188770728796540789316065386877047955832402695125187520481012946931211478515478119338808700983315040829316379710545928755229592827574497388391813937415884418014825928666794012652760395300660723999687605976964338930736299992237651230113353999330100280859168110185422131381020089709718157663725242562134605938191861416264980812538931063541766385993792561624571667086640299057177819116930781005324295248778648347284701604096874301883553928237796978051094857649511528632241768457201220679175510782210243372405313595902358184739030026753452140740686432100840918360029812162822408813550418214340896024640507088077541501004051561095758625681775703826205340555700632471075918782018795889034303068101506738641219942317191679471940055881233768934067632621603810904352639520889354204688983979550516730895057659729174462748182440087119066698459421915381396056876592607074777003574408917473728427073151254120647422299504704029654213720530849103671621334392497496064511806446774327238430320094921537418266778605550729710216777347584594033261411365483657475490761168770400544317549468616879641043371825111740371393444816101324212283066417635293709021432967267991909630274215009401126790027063504295720254721661517424827639291339249853372266584720628770410052314272213088340869601695116362632660850340917264520547190027022568323032104657162761267278251413528206483452649906372981821982873394072535301797943889822711490849784036224983772357277251425738526020609626968661083354106929092388880501824732427805674941616775157975603176523895306380162011611994470462723142640924919444316212304186288518631955002513461770105326481993547001793154675828462509649589714287757367318859493614113649885049108758611371065809130112371047353061279851973012920635600753401427066549300504844700182091939142058764444824152302678554087814920445988016917165616649943723531626804473664059488915884856087568909419253056293811362844508550883082985591693659942260516987209969620306641782435559478366039862153044303657677137671122140546954498133793144686985704347373659655597938678586617345318981954036873306696378723189956606311366719866732806302167866855765244355722413277601002828779985262383196799333575763668077746902502938968223152121248122936840218189845667420200149935229609880537825808561229981807038739394017557808029899265092686871217915655648606339777584301898794375913947664978193106021652801751677122687168623224242473288613387890801656284129740183590330726594805338374080092575248360501223755008830089685284666491125641154835173383624379928492718050658366563893584577268458526997863018672496724894053531927721278758120931549538196794770131911511949096665970555642560230755479813744082860686685936687066029303132262092227778116323245038312688536944590119812085428673053554550478696590203149444421887416626730186029184139914876543148287759310542811196260451967713014105544881606217222795080234999616580936732643791582351026111085104183241778967382416754774699948033302658040996482211845119346783113654998330456195734122085003049267728534293174769462222547095510806166209311617436692973996617664605678485548127482304399657336354265927741293358088894408243629875182598403415979359361671516401378869410969975161018857476968609760973116004170384334345962483161530956701220871629592015023024062632804525290069356094782323235763291478611747117308730719298062673031577581762462333656056518806267512457408981123169663063757725986645056628726296196537073162223530671317564012525222201450869179315524819873941862647740859915409569562165552320847798382983362274536511596122475078283482474015849818968398921279446760440550728746473358364976284360684397057881340898466502129225574789813365312049519219718982382791076815053964359425815744516844540049834102639168668578548630604812516366145503105171280334184255963947127655256432480954503402282315410825254705445542212308999492928062945065559959312721736017471615124458718396539658757554450844755142839928883237758827387155124469893794931055450265625314409570095726876402173440329609281701630246165486792811359833513608513945986992035784042139140713982501857049133507679147358886221960546405426217189917195933098950582770154995760692840318272829055068111519571636637746842803112311718469263507133861200146523789327220037316888550293321146399297746359845139204997403478505865865878984708966205132552709415889585479858066824167097879849345146990546197056561515391790370100013742532969050870937290830834832296310773275769472964581729574797189273762866381091730974191658578127507350514078641205998957200023851799401638016072634662592600130493182234242236781545957790942554503467055835367425314495430529653422470997039485545346268591995423376223302960333021974766295375268138514799496438405087613488971532751571423511824972192598087902689471408435358143409054176268055222866163637348365683035280149371992882042152487807769184485058653019928825634158159477461714201272725343305782269220567658902056366000936657299416920858151112684221092634043747358877149626600560313698113296024260810725611567965808643463164723216605820499428448295182004112357387520065715984208645620263583869454768734790795058165338533961943843335033864918857356191784098059245278519757582668212498375037745456615930746888450195326089361363830790053175162898487988539821662241619830067969840531107683941705263650635993081036116473026921315426613253692122314634833349490309284452224056388136025349824692010189186121954806852278522872568056259345752972621251716335347250842245174767274715981065757729380212222874929979004666504364341400304334381813261211300524318883806334043354886502528925680182841848888818431068241595051964329070871825757040429180705183594390621871562386879410399150828610576124584851057069048719168068507309188304405514182856447241477173472398595901369272230924557899140499480939454961595704249225029782274391213641925332339305002417170439732474463661232555696781590936062740454233583465526182047561443552127535534486253883286905744991926542880448718271347298419501570520303554236276360344073350806069122292588103282926184585892437622914114841479119783814398668674122771404156516012344018872364594739159898440686703017300801336918419528831336897346370360977759549334609584448323356861458810295959380931107786042561082688264311387267649799871413392810048722957911102669955678284265927044590443841718534346991813163789581653303691900763303908698029948150892787426714017386323328814965367709311849600997364942683075097702989149484042340584353018105638686285499569299416542720392478205944713121005993678615203389521038260540508425290511408417228590457731240414255342061838278122330559128008374974619286256941087882109573383588911835145477847327639417980424668331914128290221512270291684040672606791524977160042031559512352263264879842979692998309866320991351281241588770587762671932467318259096307095944685812424309976749964204205716997151589289749516750637370295067907630175501591313951796604016817172623162015245248830005351928098328585085769149952870441172267518648402998646274926883478524793016505629018655520491177570706141005192321518410605993586875803852670903939182371059188821313941458423023125233237303639261847704910644808187813800395700394256468993423365232998152633148479466622309040733813997230313811643306194501568430516812166707241831535871268829323241517300841379829675712824475278434703618908114251808522164535202858960966147655775018608778003311856570988592992619930849211731932455718012255576173562188277729661507163508539057041710457335159690686277591615954066712906725731140905738235103576194642525258326331560585134012221657966476523901914572586842523205008108780851863639936077175239742650094077723781030506242833967289763033822244696313590276013558146074682702828341397639943696268178383827775512627795039866373984590286713769506945268827888052499884395331300241176890371196243124200349668041868714000471972357720789342067970546825517284305759615055048189761852235409128085926422986800888142867387565049332889600973803623861603237974460015021785956426837593726855277651371165561992397990430522181540745957126778133597854169275505593407210797191148832365523895198392770209664614125919139888668582243232081224808759160874073984565949010254747453987794395346271601722645889039065967401968077243816252567226430379845128773720899465657189826983658864069893631916740357411522415426015946156683659075024336188875950723558029521851242063159776005998683526083882916905237175643813724250340728646203192915013290684678919342804074597111601778066276322271678640660095388156444040630110709660787154897709320208378853799977012471748663458612685364487833197823847175100236859173241167241368131047360383595508361075473365515937956210035376504355958334884803296020100368227687952648939430829839370897835494226604126379851503993103918130261465410210697462219379415431941595384086248154848297159673165728639833044242152835222713758943805220731750361492613014793425830665428762094850773928598992690288654813275506345001872335713810495188538908168977103228773015794902080292966786516202612973596027988873796295343173558145118403809602570294773489617626710556317536554942091656952963380392137879795290883050080456101826511967446703229199471186275880277794105771066717500455013000900861550968681848032282060946956824654982809789229738784448047898840182244949220131167418592139548175550246680757994487106809221793436736900396626552198280223362742908520008547893253759671730589976849514203606075091942247665657437885872221430078068640901747856813466901444967985231876443495065231504525125459924750000474092434799258678605256631206771919841739611608599267761170595027241618041779709802237006196506161568115136255149378696740004116468140923179179344952347330126965623116947233434678099791383084824436349041783507126329913294518225313052119759514044312992091928415981257815371274153486507374195463432530605603678456320970956147333456136444092228313150015038018205702780097202321029921545221931774900310981792669005871271413979981580132977336656933006406484514811011004550722499828819977762815101759878772442984724448852308435872939058733144757654799514760277724430460695630952837091806943509206409244916729175884692566061755354417540971916371834130271715980744787081977927868563785817033681316966751624599620090559296980432721946548450815961796515485573360552222248217483023687365297485104626213872979442489812885669916923385695640409913603100200429344315027449256837955342049214387120746726602838584475239960017737541476545781448738534080907451629296301582300511409449586604274053501559212847487897035525711636585691459133883436326111629184564286547001894782696372990046810089695869132276769225818436883743395829152565733721978086370311653707655146827871310278490078369575218228377692453606858050326511153059482973024928271876907323502367446853950650117556544848299493900271819611071118162590478005536869789351110742107075579779328414567195131666205264263266571590446564956713426223811753133430358772917689930207722312807942396778346662900214453672181945573836147266161129031877873081836523099376813049963745666486709052933998559533128677764579514927323483288517834312782095187980402439298087831564660469960083266262180061797046762959947661751497955779270076630689888164428303474575735935865082307770077156806968333653796827229080747738425348076057573304311399733329112250620630285260981246692854059466692351112717441769091429323043196634791522497661787932474041113850102551200885481713343245724368633027209607988834307808712435499202102424942859308923353000683675732792989624578871370192692514819402319664234444915976348180462324144975383028939005350787691081816494168861784342056962722338203898879298370192845447340410032506786493207956202189243331305777332019322964704540304427597016100051783681935754169174148078677697379901472574521961314327535172156476758649421233139643178000185588395667611268127224787144347593117036969745196728434062294079678655213469405641393574995088250399770049732222625909814524465575922114218158267991178054558792731681718915065866065877420385127718525947216518764751645860425534344303940762035319616697275635315716112591467950878389760505172558025404392929245150684089482217577482616567722742932146057243348055069503374287871610929930651959333048474622932274009358773805661163204369368852543182950014300335494896821099521477228201582838736906863745281514777532393421893112042900453314183842787340815634575053925437575829102725609982276181717975530791723854434847505690107151874926977219939516510554028158676147655790081478442031849235778021715357390188531258245281934507807115002866295437058532424085266576675669336482183466927932607235299040366264783146403625660412849260689822306135318988206903503472545769100454598310344615297438814687824366564479543994133830575089619729334976816566602148178164988181539333343921407944385370650929215011593807432720088933546521609134499441003119389515963514267056889410292146469996093958639316114003904739569104071077411079629510903363425052083852931145203718316515507004472463115682052570493594167211060498843378777592819100019260360331067951229290440189862386303348337089672558563915573081199446368042643065966529027146426238231031822859683760452031265004503774074744422407338169581222985999261459430630154824357512298093821322174286580947368707186322461604651655661241509676063505203546169313412501170665988013227133662855749541517667416323882413468805973529162609185939415895870011689953309026749028053101579425516716918227498210905592357122125657890329662310356383494992523837270054700441389759732931229013040028361988242237433761006211358788129176757499751043856052358226211152433168776550504058511731070807697606181122511021752575526381933645614797958548192416409836872363677187067190333317908661718840642561013707529554037985974679280974301098981588936050552140268580935512449802504094695257389714204735918807235636402775986347702546000414925825669039859351741547987514176400543457486023758274907139592873634248630530619808626698135880998333774861362165719538772037482965018071134398779556276479215076477533779677617158773690669835304464900911722570301319013666944542863156266196992532242643303080646693370110990250996172905065069759275823963188096217632951273204946115453963985835222062208272390135683214833819643991476525816751884633441952509463779801996542144541488208905374837317571951864105917819243135430797903992279584736237243430587445262460377828944761699833700114118230517852304455825332682874973437125319551420521858994541671599282389552661002006861733489296351990555169409605746694685407630999048395695923553934498416296711061164050683534522021172436777497161938604575437473962631681898356795696510368234247149934887427593926345310176783797233248698647760628511471891635910077013328254609982002492382241692969819934824245170738119846800420452875177287450361909981144590566391328103245008390198451641690382557683310742868288456721079841104059790983671083848391454888741461695606924608105718293262285380264171371682839756837402740110748572628352283880791365636618166710725416980023090598993987551004910836732517603612596534131894731522079899475480363638985288122396949119028589999501705644723043173040199955812001503028747932274418676504464556476973187944366209352531441157606604992907149206250158373770688800822708651408559241796537081738960174516839621826451506618760684957975723742252659716760853423279014540392773186222822237664576090650925119879413742583908745764617593180809058204817839295720658686305546420979970038490270801723468727045012074021248996864936047642182129191383589788915989375275515008807976452969248356684765689304769501596897703602996908623861037144355955305833038219293768844248346365748546967174630319682101231976087414389401007610051738370010373989890227468981093190762530141292361849274772703347400422922654011537461160012974535573331780255839716268640164041853831539184385722058278594666906879278271942116607561921474847459859725583684739263944317431459634716939755841488566414115043040334256159391129941638444693675976282162446698586458296009084432220747373772076817316934784522380842298956254161328664283331376581759066371145495135048972031592910996793821428823934940398459795449810919603217324914617363536754717472561433253022134592010728902483234538518551828770862891626395535843947158533770671832980252766939183771019651860507974426859368289422008629573823388083995190050261908573366044171904010913445226135404333788264371008076598151815810414579673752267230662067017641127468464523117520533384991350663279825320538348740973249856059222004873322146643319685136388763479998662675238214962274811511085171439873507210910481392687343951197213472751363403060369727728123426382199973164333188078114252673445106971911628668326834882192406521105716171096618065165005015531599328803081818227470726614686697832352384067810199368150124562198276591472355308789333854246238102821630320082081701487724146096100726192553956022776651392287700348142660852925334170527501423568240458906681154831441197062241276060803236738769324177604468438683021206817366921121225597430327854092171096222370929848717318145254094197748349191429228804969598808824544832142926398812725994552992516882540370089969843878898983104132483983933951301950545432174093888965002122887525302081631355563300504177782078595915470996495996529454592377413676434900677967718002549924314585275790249056530241511033280355375861930819337882539790462494182615896326536825590322837388839813630598539967810782577173016472608014408197360811624137626875739545740584304576962769683502752853148261104717012005594935052104877887028507681007490360150125859725949239061544231912772640008374246137572805808956811261557316554522366803602734174932995986621022822022151840340322226670876871908192251252231095405451586142138493233197289094737869815446155791477558284319541796999373065378852547000775756471513942696507490645817423092427144222498604699238523398384189738887500130053134054058626555195147539872401217445892907612316411377065832331339842382775328939119696665978357401684841801641145702760119859584757571696580714193139253026026287099644156245646859546159828411597331041401772524310319350422444201388181832786872776928917677606032221442841823699915363031136449457442342034537103380231156279499857236975046401564583812523645195122204213355441830908779373727883655358037145954396835579038710760342526854985063134426674197211342651926231167041461978784256070455781612397829795833643233211616118774056504083816642317542101672758581781715646773458838411966674100510064281012864768698578789785695839683492603573254695434983831711119183630118038331020549803562581621786617839694690394872896943709565498421234635731648167070152587747978170873913215570023062714043932563057350332986367316768805402159649092011309538688399642368821167588117149791966028026672902132713939563474624877353855021931583918124306463358809321341895186035789288694776120409814231689158058915978416213066221662827980387703045511915888261853729161500114465341476819360979100349893697882918269313175174722898174310248958204965069297763171581947898439624750487384595963457546845899690476651695509390926536095437113690338529658386032621490163556139569951305988348372458394376521306142790071415468041045237720866079587369819071662877087666955105470634657741399948056356436615779913112205967610598193560513148444784314739937254134000728487738616452644663741701106074449107648782896241272934599113107602322665424407481491989650504136708079682248920513323321008101562395336700725023572950263012523111479719002513419721798133191159087921179250680726476038154082889481622248368722439988043991528756956115150922560153224109137001129144238285260442997930507736366434274820074486779994319635645384075795344362394811190084080164982588129084291993333614691062574609198690848664523080652852899472139954563403923139934315648690360798717056877437462018108946556500023068768571308868133062121361756640146806275501639787090637821995136579369824447471776070707093666259052865832558544388281770880343502610466678254039783684241913880952442238497218748078225522081616506595151356689173768679396590828322102076730978496166795510007555207348877362639495861561113699767092436843577451176595577940776404531974569552903024748465628273204025168511660871604495649256791683097606148946974439624872370941098218511107652279127450360258236612760689802176401874275891396062573746727986988223526326401229755287530630098396745804664851136950661244996271190268449539281543587941955150412123182402809038780662831828377965990859535433539700110413107357884065677888866063115405215106166225363606507735562680017655682955358600671341360258658878015082458957400386150334681372660732675879921358780737241793734827583897682701017706862241774827192992147744472611931495012201310453149170115717812341840761350862955333495396793430212632517311419800611068234278300716473950436079234775094153517873205841696308689244797060726871316053965510294356702417323419210935054435655773396975116977316689373489080272584108345050118659542779923684953638591971419282996534365356672145735810919227827728362149976532640936670491399416489740734530573816372535081067148512681243105925415012148917020515451209719375289639187122133742067178956564731065834458211759356087335708047357127543082717870870912105191328847370112332487825984569436124221657924247483710558531255889216440697183288422758070234035001117300418527316221794545740983041776460423717904719418014030438054249286878458102693191775255903347815035174079413143120325041871095354471345064427435098128619359359610878769096461006347596283518109893316007393190181063984749573742437809211903929392194290691473778189462459539439861918711482779651454705065785131781845277709437816422630248498538519381276872663443110474328314231933912475421990102800164928135479980024859841255992529195592077930917755508536793842650030385469395806786233690354286570163775248567692200856567034414536800947150213017888651357079229972685781518186967127830811482381090244597904129596999960906557837848818503384398707998584896969512422091242395600949118660580769503263263113260311360775722816448176176339832357784265975556335082996858416556369104386434861379070036778329850844176157270954112696852313768410941178508683451673363884082359725247270793465149555404555922329350102723751089623613555849852124125803769963768233535851239831021611891529421736402767267226233674869432532857243080223471797458044566212126937258268218393918162708445565339146979828751184503220658409240933524164306914671760157962733683273024923624034795817354976377671598817271456393991340054662810331244419069093726558426056591895065900551777212620586932720870340674298056082993243089420971169874281148771571394726775368845810509100619763375035476554654641715219142164394494190645854186717689033001019116523177640092858948849953134776042667904184117325829462862772328756998677547118111077957684457518588671253041100230678378868447444594193380409995033336259287704591401550876955841206909240176407666871354256937160762422715073628979465128794876110638577729531393270719457190489489450510033670645603939704053364202344309556546469560177563011471475433677008207559124463915387592745269574247900030395874896880844939261291960848387018812265171023122805100169211770462450760259205493464733908029572586608820604193528853063352819280403024490675039182914525859403338418138207242908746726721966261495831270001430825598101942021759701204933723910713091836751766251074330306355462461258756383227307457458371976055442926813878423370634213205480594912335931968918002714419831981577949105399308079925302766718869129317348849756106073976714147759358505880824160713620296052082286724585094166347315311127322074611603558870842594330208885166384847429197594781262485725557717982933821954186575091859850323514765265218382782396733311663165823819079240069666126865322161163795595991041366040662305133808514680813348349411133482890259446880031872513053171402104671650382943926785812406501169061192815593814932066102648391430291917270413720040082315674662005862815120695718607863926146406218015730018063912063791298995344800302568983333834809679958721591852233612993853559088951489254490777670947050203204016252264415343337566119014270983434838113961207078582461658122953934114245712071932416092267713271374111205535415639856189253264943026673465815515820045200371281054382387285403857701891048195686529815960314624707547596857764016393207886894487864539941517361049926775344048032212753065049128173350809721487320819517737168199062186609406696047958492170999153714660717050214916250170747256737484510240808346662074509866250796085741296100965518070971810260102499283582074278259400047655669727915305235875376103205584569346114566816877664609415555436638567726589074051435153768521111500956209907469964331346898327128331957830771985314440330954364327875591353670105583132010248526383606965542821913951737135898143063389455482995452860439602808160769813794285690857930289746388307438459184864073801636219699808566020090764486136670107058104804890487722539414061074106866353850660352335592412668279331361156761714900529579899504785844111481507268481707003138973037619923876956595895251346190794402250433077407473428159848695291601793888920291832853499017639202287898284873619993597740513957026063184913672847771165611725370127041113097700417655783400411587963947413919438899040337537150990814342396196418095414606974222403739487365188996131337567994968653757871383882194464213301517346782529481946271332209267309158171576345611395309578168782357801521171431763955617362054406126045712798537389137811748326705121609674226820815033582889133431392400986670229572506058158467450517181169018446325056496173684948314378672555622146795073315144158649224801349816972263207577796311811897633730964749530014262311498826861879601385889377005276659921312608201746461203043442175267582865803483792921086861111466740762271759269137495497052858795307078034808168844087544585258851430273447886325568581952368658602375325446813071089237707997071303902086924805052933462377716616166352255354227820377088529613339986105056484803733239163351992170056416619937061378006922051166031942603996420967944494288694321555586312958024771251837920384164729914956950726362765233776130315698475007056612642124505870016838821841907495430677827668496121705800482049748968428627032770024514143953344570550491851055540255144039291844760291631484719470087927329295002510837488911249812203234990491021170026942221997047625922659778177273463884580716874803842003917929256002587897324254853562195101993792894846880932807682485050704240903084828977057550298680625105910614668676194754541399347815780414998321657976135143092353966647595239299009048006935126802807387658303816641017440037755681844930137172357637762174926213697174847183351596620852967059266354904716836181116083880783237205330528971846919978870445454029859611932630507388865065095846522741008969435139742023027705617484184693420539633454242825180889742391909522970148437782263569430941879387938615330307035975783070312921659606724021752457708081430657803391137326541898498018650476431268821678183046717897587382984722214311222269525266528263453384095473503136601712288992761572096960448067961090450267969628729851472885200809077801739246031833410910942555965868220330040271065261979816110684809871992795933808957145971054536297442601202161298603037043992661093939558708955409927904896981742317043881262688581595644072335227258578104004708548903715607032219525992234589164283603114100889524961047484028714766357590428744973009951722969785068303450942297681223668499042920683163425780284101441434059399800139421944308840408830893569758988871120219203678902767623974424894500213673886489930545537534376469461127784202578000903033917617706109484052148021818202008695489684512342889820767615071161139932262338162278300533212409668203901727793146845662215495510021916057346818772108376169461571158392399184531008791392230691320193572850224223728925967233477087145422054636717762577831428149690172233915908016497399819225472436686209311897365718407736580277451102857884445137733513508681659282912680012866843833115108282712171347645084391886918108792720067877856543123954688947728948522389522218728891773336500418087469587215444479114632794033331459838364448743561831173304213591630934365905153281347382134999070906816340937123664576153700140236382615818498138218149746486691162751616769333090842074884930272845619534459290766447649689254840739426622130261304293646482924435064323079811001263934343727182426111310088014082608318090714142209692910754893274508883400977091270525470902776601388919179806860923654611517951277233288050638105406920349163613030374875255816178332064654867705254039269650883006446463700122965884609156022947472158116514451832355367380943331712804999998086591714166729934741048311733673823174966385348898127807947685606368349724819982251600331521794778375839236565670004821574450291589796950978051002761379612163066517582859049999606023423728818425169388789540533068868788935692448240279743831225477240383162452063776203921263517069579313743648808148870123254396608216239509343901972085435187020007896291173404861216632802579083934386974216585006454690443145911962854681340175496538484693766461138372007954643905966612937126180892886428913763659151406226427221522673623231110202779936589274257156260945595254022553054976667302134193083385311683193356021895263366698600991880785288183717692687673804317623459396812342981702887109947831559123322718857992277282950204668089040237336615559027971936124389861355836230455681022358842794441332340083603926489382063209554045925766751772182408973069114858703780598873289115689011408431485751829297220446911766340768377666658468641704123905361753920036891323737425343991620526491593286690061754475982966974485899556317575654415247470158070399903037169403160741588460968195492283814461010345185929511482820892716146160729722917210180640497971932739750608488175208032658282967170507465345391520732423065536709808751712785949157484582082810430026115086959112431220888243272845640988774043902165151676720154544711823815712546216191169390589120818612683220402871172190201242397604540854301762594732186470842073501829478107519325219661279058389640177081729841503763462413984570562763512211607096818530381815558271851349051801604515035533384433557948103373565243531656921131381924929143954460534309734148569722148838764402689573026990659126742439924308063029280348015446279635798816409727692020476636868823574687240622684580820635880618913742911777333858523085019280045026862617408164161670622453611664352208340599600889313817771319810723858378500200574939721589608866293337466748185455659777406852137263673267035561058959975521949384382168231780418240659173511962670954337617365254134306831530800344408326826411346297680783340775950113582357071333222322516799592599147481625754752291892056828095377554754146398004412826000528627665100127135896317170567777191411365232226498114121017323587679887342528485836554629141071378906557762737622195352671700922970396823655238137956240182511926457404606530799034798288076043137597711532591408309566732935122342271064127675627781571976333574330865196827010126455669643663252535357352053345387154197271948427055004934696686017775695705432127018889910517263496665180279023117314382634990646496697121283009115930735245924754221675788257142442733414342390396160914610885695423363704756492809546522183464011800709292932056907460095994562631057880620597716377292690109093069536583737095647124345791254008924559347691133601955392471319597234053297693583471874851752101581099604475950412318895588438539719995449455521701578517608554289414692318802042092598875529808939144998316028792139420141547686743685547126952165024349834364800277159520122927951604226129552828340431382240708012916253399427496761599188926722956857420238820410780656084024649883134237186520703375922341846485713328253923649801847975863333928179181868433003924152961176176611761408327638757334707927301520216666607080178398826678917981474226217610328232387278602179999315431167145907526254108632977787754032300618251714084839456626161566017134473092390340352585371629770348424372143578934145849995319787549693720579720306648111103145012759424351837942344205766677598177340534280378248681581945893927744019318945724614187282432780177849647848638266337428203648864175763627744641570535116355835423043375382063924208622412170845925951750151352118848870513604659085170823807149676163334926652923419217851234493996537054951573854198862362323670001372270803440283086433800864333496423451448612513508882417995353674438538722820538964066036856521788943378643694236480184880631824340887471888573753180906607077386042572177280931071306717963613314480403930735470995287730808407776654806377544674665323373852872269807950527310386013047904683614217333997229750839542509160506673094553431118696372794074696735314055518865652023847084973807478542084506444195016466304393523889635645162310189405827682588300118174400946435275565306494770341050948476493718217597014737991782954402455054262418691273585159290444809179278591743209779033821436802675466293843356308689805235479317774888387758177394138768486047598224250408550432399907644214345703386528432182776175732336330399238714172593430686725542161528401253823676922984399474793373764778065740914666465917647131597820310094157578683236522005591007234152386278659177946604307388607573509483882031189469491313564218580829558952681875620119921696128173441427668341843405227327212284256496486400373382826139635224244724204592066963569350841459984136800471490395765628681130516368036960677843032560234144901544095170398307143136566416042242664132291528787557981546691309549514975503120949358758656100422686994736323249276775349944150344742458151180867547084280309656564305817349393525394167703243220495357613680597298160759068624140384874503561061787046066092861253252472839542815754574877784788287657045808877009198966130760465217342756517723772914992175262918260714012998895848317793564451464074824149683491307650470811280215604916288309415299570822166541475280706927902732090543112804747177495851410264318395989687056298951010196106924680505129379962632543069853526412049702793993522863377908105432927654887867821832700449144790440540690654092246001993589634990113530898784501284451512708230403757333438986473106873955004530410843392916273165482665015648882933996008076741029954504207142995685713381145184738894848019049452599404577444266776161919353046265273691823881142574040208098733267882717847600570759849830330897602350296516978569169685688278436122442948154105228944131332640148510220973163135876489285853629429734824983026064238634223531495937978388194004482384122711336556795364496458908271572378794479499244840394203799592084896550521330081663203046238028558073521701706004335548047777881667113671044934596825573963309177239894147976038381722135745324802290416759178302329625475370485390816688415190953029992048207666194954864897005528333724895006597988327462995024970806473896658111555860922076267305169181034210145906958873069045042014368640989100106779387343118942009417906644105828963291391455030347576887833211335261826315154137193599268465777786543989206739987832185310994571734122141773892684523856230215383475231487725185759922452500587167372246179039028400659241627591756357532558286336810616399254974601900507205249692642826728235931650528997973734603227996353271879565798576397055739257566202985286334788663892368296830061226399664767362134755120808522877365417670980293889457375200236299288612372155812999441457077722180210644136785090472206413490643557229443575099555979962891511462699469007379043325759564114290182668557111477272121091326421080834015733413303711482749928860756649338398614424224272278869128146188277177390874355706020935791321249833239287599048892342831067445100408618545367324752926558893708005817959219386690157970993559133679238283435857400816709692658487131071788856785192485805532029661329025291258371867308160500838235522898460252569423094365467747556104976308852226407589527833958724367526573069473017124096634302188304056218714740388441658716241982804603595714616853123358748690676632075876596763660785689286220932220490423420029154812792573626351793931545400604289523921300467909288033128031488997955192406210301197409087716328815549813370179628843994492355930351853126748061205014148861917825168679187502046583222438196432041847385285036298379979745346414839210057954057868347130265572942745613605824668918913789587062299823174105133862866674025698118934943222253008072806444225746203962930965195054757800145991879428690242578490804297035594244390074997067620385690365169381695212340901315351271549953981998037896480738993364468519133020620347373842312051550595623799010365238853522780534296641228009945987845734013343693351898659867575841189131370382692383293812950017881994447885971345000560247380759527340801099004982483846368802494571436607305021193511291609658214473372310712459977683983084199733488853129355434643444977245958849776799280179545017884157768159191228544111375644363847366647425433842688997049016061075688942687196707897644014126421356075900973266787415810651719587255206224766067861290881735680354860561012449308386559491666911472617940759345530116210413770556051564031004217322392531864892651632581849165007338354316879659127607101731689036243519538973079181906497220095236131513647225452253394962725806112309781639672926536100530283007467897626565345664726281768044665008116532429595607335752643128942026392671221661973906418426709175927044219565156504209728116288047344258760042556014536638768066294407658821761290711713434244560367519927960231040242875186660790408585794595346272292272870938785000530958212222014692963601542946136048355645952217086005939635280627161323060278738197275480269895176492550506086220342396057284036273794238707978713556896744067782644645862661489028748638592460870925043249705910005075682073855295764091924441824543036305831714350111593793031904149347717103199956110762123250083391069165508297058684004225691818483972872719219278300870150328006786259735225599658458269851606738180106990454038692640433541915532450020866438411383479730764852596861646551171463632011701738383708314062587099944260344607840292987657191614775336082536827735892327611516344793726709548647532553641415224059649271394102392587795126104882983323974405555183872201785591589402044050559476331900199933555468993673664783570452953107179875862841767339916886829065734185907912872627228116881284984296784403161251708228722234200142621460260435748163752529617500280127376247863206848538119550881143157506677535531280400454998557247163740177868092430157920282778104544949945789202681938957855103044187332088475405522651606680035175446807443130210950901807573818658129515268262394938414548008029575861755518329998652163340076861516971081749529465205422138649207665442981807605916375445650217755278623639608865163020952166879812160052759808946681178073462063209778661598445205518979460265797592849120176506157191746343553888450103642404787479561726246238655158470442487308735700833959085232287985140972756368894040171216489266625830538623579012615855943161574925992036920426496817726028251992308225183128515772062570088422045698893065904736778649395356632873990145028946608533063871349627461190946548489253226443052941375590119433557130959913129396359298162843302101706229119032493697320689890904930503352709408282204826403872483898723847343444638458735880465510168720362574145904065065159970666391890225894026701485343250580867827998216684104259954128393699315802369261917457301617332402486480442841124735419675426796325126768785026137273099062474708759084468902847966754252038222899057097117344761479670387886257273235458897222274924070888093121524812615782881555243230995163878665717327896494429017716551107218745823390357067603573777817017196918247091283369610182378312027590210069766934458830538066122009539165155358031428911184256387412164390135685686615830910554833261585695087490494403034201767767814877901519135378249225954314134635341662460036008382325127680568089467819647549098833381274318968448047702069450708611451468752836861263467614713784145183867433373929340704306085622091240814990782968104703155734696132192309179899670355878395608163097656878278443301517732010471953282288282960579869784044147031336328766199409479992381587648939857368073313581032229341574003581427976898727795771453470502674649840110408518905140335432941444820603284224924231641731747149570293263320765269143025914042188965792247332119718289377897608207303486475065218987016385625971725998883014474706709939695118321242200397539221764400267341434420360836800178802421756772173018442896368406218891716045654934047109093787905338332106051885546244090445584626270377193792108310888894799976865228490722183639456101594099642638636785592073052651749389122273269044782688197262658477498117935013015949974130556301405237404794179956368110870116728016384215352992270542538138313139218153457439815251755467354248615326304095322010263274349096449040601787399805551580398308114058627524671194216535634024409404033693194969360598355364848548042146292034354388612156660137751649620444937476741440435225830358967832124800817296972379577140264420112458357545272659348504487085232048060765972080506359273068893829278170485087545205828169638857714398180071344490561950913121602566434094776745816405580039760954665348319068179254251695089236759530129921557098887744983613494996230202322580042059555894562034577921586607898432948866272867512594681299596402052487849514987281581484092852247629877737551965396036149575966671549394680672578072573457141082595948199390812395178588805241518640055934838989411819380690758218005170736363182869531453639220949732764065892647377404144198376438968629325934869302678709775674536073705893109545472729042958291830507023256068426140773326911861236926064686649496379021860807103668187736163151497286790296523431056933754857625110181172297922197551198310325662267936948903879283212632050119038358923997524054882332916335617240258151930849953534770449578463459495949066289962632553340168750168384522073220804145903205645023295456250137232749299936755630064832574887782625397652220310515524279836606732756849823213347374212875065975032626574779973914680620441632190187712790907367560383880678061792405941994500963943744771774484481409011014261645182666721537550327416382775502879015516638461507723752932144822384100336032312150273961675155499523975056199596722408297444561545215488829340035518558419618510117083454796872137809865671588557953182472811579762461338802064478586568202250269602467229953861716545284867277322331462420427464329672427349581044488894023447122264631652542715385939163199294897033037093067974861058253143866658481206784500002268144536999131979524537675496118467722533025871687514738230534527056985182878757307546033014978749887311374283554597164480915272749750276559633183952582499253401985953072923547022378116045208636498889245816875114633356775557929862432646635790066188367482280595057542270772241619042989639765690784092590532794786470169329935792481031308380998083941263102815478102697920445879116990242698143705432687367578397441642265552562988627317298753469245464474488573302450770549070699246967100926074483579462222643161136113868294044042462650893599479789480478608918478662333555957610441565158762140592375157504944451730690370119429835938583750982496010824812328608049887645268399477869761753328416595813535126207485309762025861608102150417872635303430411780222786720720108631504845794181843912308320095344640474913309608193158997278497545785858560470240225123566361487592125577324220841938477931947291390173669018446320971437202690643169888782501979900756891565783204787072645616207532568117718768786724662755110394379461311333898366483151248763006700529074015159991708051312802614066295236091980787579184775501080567373779985810550537146013594631385645036131751738784126596228842311049498454322616938931965237784399969872899264493543252238533731119030978295037706011456761176154817895537525346058435570212241222331565372101879247770844359521912972757130448545397476497387194606915782074564046235776862295296511095091405041473826391952752659321481990588870549751229123880025651216411507202695271872969949348059882455117773673106992321915866599157080378210505450305572897893181293677581210349332654829933651788552863143179920828650505013280487654076999869207564513570402674244326892458589154772469177941089663349991512651730477663612350975318933823367185758657981353719357777409094359105364871129088291025590511556641465412155436416834762000639264734224747958126994793024542165557758474347251783891966529302556692959848481744756408338918555239892879517873482591550230876037775187935716098436048323858601286415335389305434397697636325092567048405750900181489151616364646825340273222552154833464161527213899628106689291326753399300859785932947854562515753125848452965543635469353228987659405526564284358605287447854615923212079676835088430475994839676982982696778176316675555433197476686796721404568701919618028041100846032354702132064713018442801977548353016279100567045509157976797476596802952493863411057540028149319940657634770130694356363231335686502521404720027251200344403474863666946017657352312023886345504597046478880458424829955227824675226616954915817304247885546854733259831645700810912146184516114709112331823167542920113102810821434896514654091670056635420687710092207131450452018454497218143383824195156466949470762880830687983520659185765869346347306905677503134267828490499463952273396316081618671006979085662381272013044895217140355954363734269477541149647734845880553477231773961700685629444283583257727099311759659172741809471388054360866515119477928161057559085291476191010288297699254585866772035679074303839613270227202396737171665654693310031826856895288132635613816963216041571113706861094518001636048684791632326333065831324653599603549713384178142641261948665471955604795230155563295284336242918194722410883124739507694917930118436563798268695698362130990013159279483709735180199106835537378096049690500165373904338424138892619450985073677588564161507271536535770658101597067271837676545555761705718811600596642241646622664686238221382070127532089057175064750393062669081799274664065276192873881414682707184788012760239043531907012716722959964139057205765000135395459258016235893022545266774229378073056911205270646396700909394896392828197435077866179430320940834438970598667767301172203753066291601035989385275440425116150378600922295963821025864380678385644987239131259290012688008322510037287779161474636611501317383079880135331405114754901523091310494544433216640064151918986065950622255133627023696062644835144523417174889442019883376774193334257084662335664979221899331407206008734569175163809108148047390713777294365298167329547836590600287452528082132448545720481025189483455633910611122546600141348390787825712846489003197406734679541350090116650907511778086544329576368967523077149013307811665386856053318062954659543543657889060307868185958921268860021875682261031096822656261411942217113060552325301346603897878152501123864918807872369821253131582006654363478071727790531828904869111661616672047046566928511986715285655143070199875505070756738676865776366923739730530068469914931011894702242986442640392982654339804021216919550065309900119387490540719700980674886747409830878018245381759854949794052298467246214581063283582523411332738957212648187625004689974930930681417585742757737189504036326456587066661386567025374714863722933165369230325692820247760893562826239998646874585302534389836365529339153555404360591888664458878439624727713230398247496186834071104942490987905164340265106684070164302075085090490511474135625818486000025493358499695081083666880153851611730069967886257847495148044463994922811145610340830551602332336626171570982447875921648571951659403065975469186847131368694163038055350140666609178739040772965252879770122942006216841284792853128799441778247205447559742034967025456444535556342552053949353359274331647249066435848586086261113798481121021778325254164159246185715800309133366707924413100194183103989061024413574823210959195749942746802465965210989411436976122666130583125042503671667740831245005608203461265756074002458623979221466302117891112232038834425125294331095593851326087871085541851599939228069552205214139264133245972266849330499481524252415838927651268423381985749458020159914046418053014987664560784007938864314711068956808346394833037386878468555576420635857240902305357589314244727849057598761623453377803213429581347750345884514762586016297220505376886552571713445121660471930676106063550568986404751098755681042661891921267339233343834217873521753481777367781088636840269163482167261169458803955045899883464471151395954797987854711571194568367608207210772238487673988743398334884361289926336586561821371645075191189864732846200019492896942062838649099228405276019209558500994815310052018902928944477825352346503434292707639790900364178020929388686779705501846258883013380897413819032799079008558428716071722602743511827233228607337077169142671910790368017960766794314168068392817052108899845828781200903438790451923014084450881380990318715156709621309209224461556438273152662404576294326574432820245812613007066993623261439480856031491176501103511775153766579288450986567999137813783735288775547662195835008524547731387464344742162115520488236187044233121611210700126245783008844575112572590988580093909927458294455429754391096117071509714774067039225341733099923113910604712990153664410301857611815394677194628972792987152541419730593063009292865882792707885364488071239462187452144682476027612068297200235666025078656208072186917486187101889945730675506698268120354017947362094923226731307478221715796786341212939370243666391045546483466700553425649838019464907305032127449714904253877467358802457204734284982463255961654986630131108959844076326235388042979949165411581000666361679862894852460781820921738989037987288059168363505177866506700419259232892705138264053162237848954039361535663977761092282588035479057043838680131707580828847628938615729334269084639963756926611729966116104895817516572793308472946417872851745070635710329945211609667454359991650545517350976001664373872201010363050645377358556735753725145902792439667814067200170766198249495956832474930499033073897896101841239149479503264473237284055110580631243311362398960510626236290371252083234573679321125321658928236037965836864644977711171244383201933078455331440414777030735439870431198794427676097912946933377241694857855063646229549198200997421534543980764516260624307767171364641397836233271015346005820011527966290710905389545541209188894712966010324019870654967107597648774655155174534983093429045175730762138198722221198352024557117883151372859900037901507458325504440749106746309755361227156022752005272976404175447520976955244158674228122601940798736525724591493191537684910802610765758876409868567683055322847976149353148883514559786794543249599327538420800834310014541203039647824797765578230665648054990248953668381181076142001680634105064852080148016035728637885913398916632664435766738478614658998625957798698109337343683439533376381003513475913962082303662740067865516686243503225098425811430542038695443515852213047132760205646520793345922469546513958120566224552315438211206817135868195140752093927152384970383440808095747930924762578700454388744665350089001028239712796360277094011604590819430317745230745168308851144834065404147845321001512013479118425832650329844189259333601499952672322909561834892261623060681449216736119356951445833679621319266146287662459111581439609270867854712841140751965400717397854920115533743439273046567797049211610717722893308041440304944998417255240748000465381543501372168088448167705874795384431899817854599320615048031043421113399572479463161664728141180903530460375088779057851715528477682740702867615546747376735797942569656778835067344913620680581396343918812261911352129970682278750000525307455569575871775841493364770406356020305924064239033873444524885014749346830913397867283918595896806290632785515314540986417355881003034855879677992925134955693113580576230898955329458554697166293530636762415958381477567035300333227177465601552616002097387895862934170491899643168017703432949296896454380930490846866540259203413572813661704463874224713482117662735150309029679369425147886919360488909882713981616055739228979552835064221393635036111224447969205728713442588051769784418902431685926001286527422356418133338018544275018564075668988949458293741545697050644797834394630107955822967425404015837012194260963527645313768971824139359177435234324158963987923142207490876129596842003425047464146411042403799291116805062002665529049687047192725655405417368485365575718646218648537896349078320198515731367008371355819479677121463943238461919904771755940168490744021940564894634174261420104228519163557706559754278704830572595518807745439852461676324269456695797010614919825598089196302819613638777884353446481523848301674370931559814849657227102563689117590508292010240846855370240439599535020030697736626790168546594795269457118313268819482761334792944878126094875114109820256192808156051741733394581954672139466184297367792889735570666025226467706172163721212668570374238921714206510975682161681359453514959924392755199564178003548792293909628239810008630581393534720078519978881970471716982741416833081166525435586514513926976853226481682730949332615486673955562630021907990757059844439355421030636289962498468979790753077526439988050489829611408025219913814176194596154584904035624302028794559953366533543753066247722655359421220744198984931480420866638813737103740954640655241225500998958276731878734858561680135626387711405374148089318513208742058751107250485607051031113349664570626755032362299390325637268330135501882170865997612219430197480508917383884028859791988690498067066354130407002519626522077774458224992543431810318112028857824458002827516335573608501740307038869548177967251030775363030424959490884886047552119756559748016574254250485010807821552829745187262797316956976306074036417074168809658708249408231362989919661781366490655712131469024029719411442745503827089707953961935873670603802179635813417690725838194989161148456368393320139179179600840516109316600690696841952972052649039326247243304352028974362862981930141745598336111447700189449470748040925092118436008765053035937138103257170396254207326059970213961697106208390231573896460396755029917387519634898132724447535075339696069646610849895904549348260339260763745698493926911419777829288521993079548286166306862181692840488925801542114526277786148560076959649981707409934616992822712470243311901822697446517771614841824946624673883851678208950251204758528150213003796529197766515157191980759192619123326022459843866437071791747879510095479507317640612530351113233225799675950508264759128112975983016528187656615829913921657886015868990572736533601721368126934744020942525025207901488377216890157251711064168178883106333217046689837099579963869863317582618729953720444414578924866603434910871907925446916837942954094707935994865075963502764501555663864697930880132630338376798617652911496581218335561415503884498014122375671712170216885390544610497230023311771156632876030576355094715585748147038441422696792270659704500022513593935813315968142614580307878265749219945089388456053235589090285229154581562727730600523367134920613905377972558352111469992641151443746257781607423864556362101676839674900472742740766616709047705579008760274580504427941181707360741963924324406497505332286607081297354904331082570466078468491171428170702364263718650851474603067666559279648543520388868260970761234967930626918510459289293241962967020960456528370240251542216387239530161078118339437296923531033191095879493836065504359018697415658068522841212440157559235672588125966857653608686468950069111168770187974585722946343267796686984901495904328642223819240578374691425911888699026517785094863074727272093055157088018616344621512173132836763583340153572961939249894671963231162740875694089901653201142962827814376710783170479606972886917878419148436353853007380128926457148778485870073634097678016921767384041300059302469293127157480729447697266622257704369841064613740951610119582657471014560698220664988968286341497619613514300184765010688973765115432372477819921345188867563390704550286631173229790553704280175915745990653313631361991373653610628719858552556379616278308412856001844565638865442085703611657450104317920801349945471262047454844483371709762154323102488970672932004985183932331793164311316597808933854933621165164619680907732986543588876081578850290602016955135439860675026476095399321537972789768955174814888862904988783570915102826496743033687760635850551089173431309580260510057857931948606976898593006959696572008355723997999496393356985205095423328789502912455755146441869701051402742224062047594187170389981898715376804365638388250897454134166176549322482638593280595493070535628976701594795597520446416501851726649500101502360424185068064198924034299490287672134510886657712850066708119576525322544875330532921856351340187766935898748059365849632399272885963423491096687890895423846397684078434461293012954655531392640453389111581721204558637777274418970098703479600191215034805872779980692475693339489162989955545956588658275693608476280532962748969818785416460252522989810421359674529364783286462297038999042857831186704623467446315124385151318179692438687262810198421295044926852612523293261088921721492249645502913420415018122995557350560948828875343164614914777524826517800316488146154490449249907305327216796459968780067454734679171336158418316373484852873908047616408613921344579810459777950728401447322491977008519882845462207038103607256237565905256248991584828512245746522602233346672845592534814631815380931876951147531120090234680417826094194512716554516633588385541092755619649387883040266430825291983201781994756909447115751024833492662105400761054021175650960448980540373983522045237898007724563137588161484387125065623279333081843109740682789025771284585652965157693196092028160187255942602649392920287637399034888146896134817315165302926767270443431711830921576882641739105824815071262144524540940728680396821628213168123523873245579674386360567809538852472561784713699729548379634496536765618103328990630073633172693868174951443206836628033467696495579548935504485643516148911678197110991154088212186583814675222756054950750335756608616486455618072642401454020846691164073343952155425708506485804879301179983498710248557374138989084017322353561434557767791549043393558260097628882729859221770704630066570259005062066645593451528423977496033354585993116879667750060148090630612364037129644327053423589254883976515788013926150444413148674718846367186904795143562294900336862645872674003278637122266751046842670973806355743622376735441673714730305280103884700199201930186072102119945710649433784939551371431446621618069015150394292017992720348084344344951875605230592602158653361796908787472390469733102338363005945247236244816719876905980583815700229467791938673347943233823604713853900867368630976544288184773385938764595335147523849508822478515823561921155858047330663409709060403194594107589495573588494400701440108452724637428774456841523189277198031658356620714340407620064790051159507601054618904581334659832617790975860811905800830344158410493333974855283794833864159203649530876935608077490467000683824477801616978903032027437878973689234249412474509196534188683073299715953204466709071108762132101224771674508327055933774405180267648081198330879581353740883408485219502489388769687530251133202157833230828511968230420276351825033622749709307031808734024827804054207229081542706678477067162142025492658186424766626699565171894061300298469056825189832740690333249031666044127812953339287954792934310423325929489746877303278678214749981969351213039119027050431074766603837043638168523413096195439034634191374273915835470736684607557702238665533712917197067940121523277013940176708831656298702459276734507381195450219581842118106564367664443255814289150022688736909525877556301269473182305050495697840468958824385349058365382813265410458937875021970606157103604822337521043257441546306194231196521760605566165073167601872922272126997224156364317060189279950531765412271795336052090143008078804362501119792665362573939249733210715180075670635016558982000918991981221814506714536476165536732584495360872787788103420763500493489639799546175432455792860903239080849284735620193638552656402802030787091862352395599595730015588154019454986034650315344371968388958756883006972371839119008881840734062684892136759983289677202711244404473499155325513300873146620449267356464287617238549701604961583696938436561754817681680801365676627066935473928158963400867872305146088469691942514736346251247469005902693128145674273287537463847488859644328199345942083901616849359223515367914114503956006900600339371642153328988824349012476198868307877048647313546308989231152775695721302389553579007632833145017231633361616068675250185543968891322155296688134286002712221986633748558066256039021278447671070126994553498925177731915197344408810227298803449899851627429317451445335884228587861593321640828654477859858405007946572485885511730892760206680743210919028938342009573376470565798681938818820996859017703458148686713210280720880915297420886545783216178156762168408746701041199019649583438152508792051151637341590069122570929024866773471750802585409802268859605564967815044888389064789231887929286073486022220354047458519446399884182876025520748945774407866229094882502689268930832090264434915990071644286795899194956737816514657167323862553318719265056197533438116140572796468140868344055334175678865163955762889056403881130863206231233499318664856724590764869437837795577333337775855842935102854059766136630076248024710282847249410273300621051730356849073286121362598721192729599010180761325243112395791232508942302095078734305666976035827500861002985080873338501973576797537351833260370087333343810247459018677492098610662297443934775105124586836275942000047347965395827492874519622814395083818555191712467083700437731721279248992535224603676236259109679857550346821566246830851997383916893864447648146348341257126024533507081281980621931489171518061976939339206023674918192100538450128995399741100688629906752390469879318431537011778594078695809278946830328600037632607112109669685866565604963916163594744616525549783809268000524814711502418679970041995737682556619164553497723651345362163932423835774169381683670247500660149651574440649167136738520206151515645568783374080355534733597779082065816620053382339759421051506758644387167878173415245683762998396008904181011422922512437234843328380822326070447975966116897055819113380274648953168155992924576214839678415125354185424536547318829012991808310696446806810848694804446280736214806752154889384162728959929089553035296559847374864806284743143412434964141559822362408630835506580272217960551384996703235237594777040030094891989781053384203623065940239512519997284422173271586385712013912991100279392743060522857768193849740548414951328437890038248415638796549779451467254099507539587259162722781924212717392741037412610122540804107132210088429604574687410275567375584752297186376382290911869551946073720159248662593908234902982473389717013921921755898370836297732432385441683410756146910052603882979822755830044108559119840168243116430708737798804507736404253854512567935676210846318196903820899783254363859875750386300935804048827074050826848226122704823165768392880620332442190181522871410242958964884985547977976804600036431040174478109321494643347785245865826194437709354733891757372626521005717390571080278518607972295713576965576381679926975177920271829304031483866107253248699019374557510892203460536618934638575663874648847097565627205781091589180147829631444317211324970155857501980595367724655093023372564299205682184258549179239165116322909514103195237622448964459573650432426137437152410103356579573879402275697763047355734369571601270464187444315646408762901371254543689365244526271205303209125687034404510444050508571877367296112869956576186928552436630673048064036086269948455243080426895589571757297067672605216187902106279963216396641006495618531983735959357509364637409215514785186386899596522587542922203435815470274689493525711260807494853145512723485345157774681127531306888683640889408657613425600728234701454519107605041679206375360305051041530581843850919598931456070605634753659600614306270046188767566007314730840535905773626731022098748985510320045157546588385552410962978575878638434557542477102613216618084887211420600850719202083452119471730335978024424115058634696939322735291860036112404152542889559834098472888404722276301539690087455568193812934323333506024098437753266346508369582404261901859067100615730391709972271902234862104082246169599543412083754974849281357030356093212495634379137995442266689880825935177526980155976806302761976917632916230287925205207336733716369697401826801943929810721068713886617508209669813046105219834918271948944706005906142594458781129747393500173155439329142246213554515276558783314294771706257524104941335132961461991328591635283200736885929633134384494718410687654146388555014927648117803376798720054817232773226266664360107538932925238271616296305245935056443983046764371158784983279932649341423657690618106848025424036644270935963736221931357265793346083256087278385557081444789727358184041695031218021957790219965366765174291075233885561288517428375052044364105235080877583739813325399517467887476599772074758546111472266730512087095168895194904731552688291419780067353843310676078731233419721245597185764263277231514752940518605320069226955795335268373383732493849386173977356463388470033364989999307148069761781101801377886463909781276105804788571170569907060503663171627241653948140565498145893394226100485023546977791385068170282068169137978261830623670850294661578574742219558172344772859407668000130550068756043565163763817893241292532475109953377031674569832933713341379916937675082763820707785745541567620048840826687901609787917874648229639356693125134065484810542708506696563121286152172070144546740329804784516786158287935348675134084496515751128431160754010656617904438228538199479188832128297891791515987051899605731294447032313949961463884153636033479891150818799207021127445109678477621706769623236626513003830380047678861749039735585678543838624507603268364081961494228340490756208700719862207921768852905339844862487105206004792470469683055831048536297195817937426361824448807496252057806439825157475239254867555012328171387358885403078846930735302176866600225699817143654143060003139605147279842007522785222602210178567276305472539176604590508231382074924654836786351151882111750131848028438855781625970762514701967023051070152437405891289882936795522827467099873794215048932274412696474433833414608316229621346726297159495627628185546574271000340802802036243922106214529653197417324809938462135602849119606548005185521001326294841331037340995919334457964150544869090666178416998693703037226779175188480727341728436470255008921932279544479104654152408347354184624726527613144847278853708195412600608030836549317390876657427563256815500302934840438814827775469309053004518611347824630968974904538677498188465455689160547802852300506848203235142777852435373259954240214460055864424349908370095990169275335172667401838917207833040862167929147626354719763118703101616778917430421993303162752606074026439847410214273306355609641569414713594657206853759570169647934147662009914804255348630567370240969802884157567898897199198425460995342591849610828284130692619189441268887410344547661496416982575964773332784796888270009557944205847702308935126515609449729419970571188023462560490835447751939443825596897384499000526161163628654362043250616154935090405709512785829319352385827200544108266234397425294607375817320884919639618898656698986429020172693931853693914838932973778421709438446987605411042022005430649371635874573422099674874906206060953090332576731807235759459178591443465816980117586669222737619342007127526292706747616618307785279998449123407604177813572308720647199127911530606748686224101174635498338453486776798091492010865635791134445539230837936885151717855821201224993675933402723578861509581680766917450926842905238959429765671219401916834437807417445836719553133345980859263608862763689372721346219401818928991254553535789502942825425630060937798238355345328348306028355055781619622163485177819899253521981948821818595161269758840954464395197396833253489195448004071873134622486126295690598926623984432137404619544616443145220661036255004152010017238496225021716482015410142703257067217793436396679667055874122581607411314805039648773375604292632088972522846314256644608368267250336397047359538252923745270511080103692243633697896722626813805245065403941349614887266781153707269095479369191831636413212239900789528357401535464993198958488748881663304390991743295894827054960127164509501577059756254093081996837309861025214728044175144030868435525841260325850067867446443460086941600479735645990013881220501286200650150573587468591867036938232346726987415055264297117411009571911898522487392652013328943656907894672130704323911770902892914737642504515648001534387415041583080273422156180868304766652749146899460931727645010207266511512111031627638803420995511603471128390637567245083285568622511692837601481745993103667960706093627382100707608603787377516390868641939275993334676779148070293164969626600892184973597344697148151060211603126538347223143672673754231618578047645427714300575832146752930813436937650033792015158356319835604032614543279337266218318402319199732119810495604424003485053355510309056508542294813490424280660842773158301952332961364455832023777013981052777883136052121064560219019915133926435681983571833857511670853484742805633857583019023151509549113442037242733282558799793546866921161607667159562546311859186763949408140146551358040370435544744448026705525767515386464798841851251631717424962599949791896199104802949061605020635652784397682116658904530324529489638221293968109878580641789724955927345068853607215528478123028540717770970997684984170499167117304597267588690089186203574303771814243224981896704115065199955765745584303479942181772823986909891693653889973206156003527446801440429918120290677889722852798476499753842398013009027214677554901577207233809994337455832944579818653507137739055521308322468764480031806823702559139296426921534294025851366382509870306173213369774486499522989844133514935640140080245007670537452958407742606312068780562012902015683501033557477697504839842749427161342270199297011569381386388116440254157923486765099712464318345104290707572234997982198865023799944866589413957239302525729939915254564848112802756448215784376213087314430502955083637549309988978127347354795627351455866697872617623964553629250953024189816579382351269050387960634106207294894712486253958335416285216562283650787358958159133641680219650197450875368135025221294035020654840631708100621870640135675430054321076333578880249932195494324747638932955224270074167509910361108472886460228710678012316592620217890906098710057741902292433091030391147340488323777276335966133964458634945526821360437069475732752600484757764110851542181692437723481316351379756208047253304763622707214371632457691832171243178588090650542542977102921318132610576648690898148651930044792821659864156663725648564439536174509804955875601188934587249824454466384898574388644245284438544261956644287783578441112454035656413006483067604333657519828388596416050796348667773888200082163769866095244573083006230912437197422893327780519962583791135542421620601277953895683409130467428529067185956814395951651238429611124120852623993946140399549759724497726551261750889054789964148072902311906915737810210690460096957746951053692695701611741966610266842040069289005824360977357068854852990614471699554921477701201374909333221819069428498774703144231173628571284227764863071656611288770507729532874454238118168734412978818676810182685543425823582516250737252482065932020620413984258662429447403257094339041747831794324848679331630045977088218083683926758361443104588800800718198203087925998611209486876682763668177982935755555639030969294363820235644633253274984555977672917953682597354015526908611516822248970010391638456526258625923555387684446796692543093484790186101602701988660221251494140262480884648534218189861280380959299230733777469746086687099907400337567241350095817275917563753737742668736838404344852654926812881175891822787118381367338421634772334118124120156630762445476847708845236021741242857294667589111807117260442630309303148368875861613707576203418838260750580924584955250135242517273312689562261886393669793688669159510920732136777899451792000642583914105538098400816505523760989137513052865280124097072847841783466400783664351116979597791465949864518004098039068132242201380716850053640105314294977262305510606354343255930816711721645831517487666798379193687019846671314767956872109866830728423235049351866254524311200296107126181537088568391293250882022184958526584885042631940129294312608537809238394428096070359939429133690067553137311469678644356166003166434811181514314474888792412504996883751073041181268436501984637299789130248200658692878481719909269483517657613526758070617320629215145983942715275843935273852514333375877279642607902004020482303380237948417218049288572417072884085776445433592281364497060770904538332169426259574097701089823641890158917729219440843448434518298309565933310247146721317359393094680685051123332990483405698855554379784758277285080511226680073724946528487343840178445902396096330531179674767210128081510568578399311547140488195994719481291805964174927495244173142338733729323297574528686150998575431958708898995030688278663159193815493261490098229890257242379974510055534943557873382146915500816851784912263711749932978957425413463533957158283877736339762142972358963027789446144202235921779559170090998401551131305138477260654073954181132872634952173962335998271238701256095010283247193755862654650650607182418896541058619622798092054350264307792259734159762839768694001984153153191593146172777233940830013476000799827194973984668544066776905173101115254597116874625220768292203533592464961918544845417184363437066852385404522131690729424990371009610131995296358054633104461915288283144165538509384832384824255481392702512515653834176766599363179267053250421893606752917885910906653009655891288419229808828295765108082316796891790283948919662922857006237293152896089492594680976883412432895225051942976976819115622998174220508459631961640402995868970786150001561878855528940314399346184854666870271995157790692172233003572632143566303871932152658185673793591050371521622204893637112046122452765383893000678227222874248856047134208155955227480575984890336018712151949342377760770134477946125889419752155620812603468873202350377240403844145713813623866669255962826723165390717571389057110851376570530112721422612769452161760957224136051655636766252471390608813510230397251771246181832991389401640883354079099699633027879884929252891742321810790345171706474716372128837472510618427048516237943193778608641924093031302806973542566195035073137514817048692168687329088447162109219965013185688884432626116226372814804893883201334891426246981676522146743827553828419761132553903884516929097213297644006402922566472482461850070914673298584425859348115826182632285334127962572460763577043234920528105671736515873979600560779655599532501896885003921628530841280748586160771703259808297859292097353988306876545314739107745421686321323312077232244949878099247868494588865285878137219636188557445606895771713131587617485424525083147706295798607790352955626088773068334277093581018229126423946656967457949931452704667617003387274124060442121615273481603171015935639275410038871558584192605446338060283916236373013727332438695720368771687895004762219440654345066260386975576615664899791237489930947854661788202372818583959634679825264801856399680421905541871545502265341731091424137058750657916281996897124851964904253137206637595689092398293057848941669143603274697056918879990665144589350972295795352480827520010554252028776027130317405417590582383717435500002734032689174486201213886615752682868237758255421091832355968821216593383272149178531546513074679096108043140795197948113562121646989157946487367385417137656935017647484972051169270683254068254110650679359682554817890165998037815996254591755388516225906831212996952830409545237048771910435621878069669459572240848203971101885053511439011331519549816147230843411224506106700652100845703672049598534709483142494852369562552988109012961048474643936817894078745178847100011035154632745838990412754538956979605719987550139854435635431079536843396557942179498276945172183829088150911950555253376351157026949553038813989984697431624929050241762906968050769130713108558047050955279589434394963383139750593011842020908949079111925679626962517380617063451943907975762590518756692745505829163642991798356635863502257027670369287626808878952536100004553936635336306813641895719012127093280944086906170966319297494249884685790250228900204660946818083898265006095184824257162295512127894651499328121687738674975794961358637502140193452455672433994755019746404232963021006143981083727348294625663359037570795050021087421223082580616804304034958973065271079018128870717477024564633647407740079666699967142810132599045721243478892102002184095520432485119636733033378866050043254949347333729750234314679913055363886275156482628774644304616768141411331084434086412317358129484598438527519839463421706442802753579380791715579186653448345934444643660455603959171413778490269078867328547751040822954137663654627234966872336612876531346984367202518708600218037590136721405112127791185858098995186834151363636674669978080519430711148624240213731618898728717061755609917628132453218697596969641016939273386057682079027535120053035553498667410416619038423678202679298279186744822273251184306741526569630826537792226364221145543087886109081053697113820093170492018945362463846403128624100678737918410847785927456791550844975387818088289639869635946850327276117709381169115967373388075989111414466637475932087112252786948041229289518430943915442126722005161912578224908464942022774886651489446427622747223558683761799002716371248251573959375525964531032060147481198823146899747100741793693977432228199752751474160174074927505294651607750025663628781956677439510625682997958278688224705555432122026564415553940817410931375648586829216822962470846661814671265227418328186329509909135639239506250841213435794922510612120040758412263546203430338138735835789155421185573303411958465579652121860694968668038497673421513139295381522387424972352742082720595890944827638395400153182360362780867384061494022871316754420763712838529460618741889160170384954974075316460741846631697410060425019848351613063118321424464452966081370711142084602404015542437875975236313655787470160635700953878369643676630149801137535242361053388454669162985551636979134563599926892821390464206092560793729696899641716023183113983228447009298045083631729287614574100844767972429075279771801082569166577677758591078218288613765689094963530134024152106331373737510918204092142519352948591912329899720437806978412871974773135062232194245903298178110600332929035805931832949867833110281443939204826114606859752231611462654234514676925180694261214186627293816264181640818941304475898513047527765286771419346964300768830524790025236987852148704678373796346376238978020100673415159646696260796476754239892300293115136807770362610211489386883924711964857628010492378308018082506170501763345099430919029209557190643167875918983806527523324193469266351508956973381242475754632682117920177069125138123338131295282068751519231779413750737298641682682310406053808465594594650780589391714961881070183963491396558499118427150135051399516473553914306739634898548033632946482782507451637598039579092606989496639911741281512453843870904911544651640871146834938466672133187137906219174392394654902671793267884166148856292245498765621889223662031577686614072036469692798515608588670946516708404404839817553018362439449463505407221900293778582725854910999737144663402364140199783174331504735439274890881404341393654063662759664154983360630386154469378270662011024557388528159751671226364733882758820420787765729754170111910744376512081859767425135240773525209105356375171148382702945427731131682656695136301575602572047813738496469190719520412763934507392093291869046076758189208067072850050252699857517343560965909522605572685530680320986629069608956608582111170103871556304319935047484330746168375978138941809591271413629567763112306573199410390812152849564127226056924704858168492918207321095452397060968856892807850136374197859667946117669986566769428202704566102864138525266128789464947475281107078653864532467015762999758158516573566269526003276213473492231547769041214513342638308244681204586386814870928475033559499757728206332358062671578777397915192400493194470267145214036130464726827914869749214548025984044102236785058841493289652669640134908305378425880568797804500637311381190293844058745392234665532828462202594180761113641890706102902491913238203921423319915367421463232192552941874721408867025643054323815102948035343561240026695671088442331536511558851416741857435686790237432974524440663641973649032166461309393453125725802536985990500962805567028367481766583226176875674370268578869305600768988791370477476622960394403616192266561515318738776572993076043622616122688489423577223230057223036244295821951537813586075094857525042320645913453798939227848122273003826970876412795778322330654658368249868942518169827211900519937092522603360210818990258436348322433209279669458748028339538400364328965348866754000099264091701981336617667593139920395719831756556868138164214150573125320063380435802023937698493570072014080702530045001724271053156667706066086429269239353026688156506380380688881976959805009123796734925288866628492048570828424888530915960110319329095312456061474651111589157792670202837075325936808479292107900390984534543200692896095721519899293665295489370123394609411851249294728928567920752409578956176338255875377130287892381270576571721790463406536720662089567320403569716663790110518768128869433110050654114638934446811645342323774519903073560750783037554353475565179039672520659966896978876410066470602220710645872446263524469055292715714756671140853800687336271865254089612616471345377763796405483612517451242006519740496833296248521951372968066308566729942989631089571216316068458747725328414553036918784317539393906155846871263629896686585144290212127258512859153907424904824212326813430450317660163387750533961390714500646369061091860590735488407881150146854763618778167479065370805795247254210189616727030627049694185684359072957438205644373448788749770932432212255195615725908627198809956549284920755688344364528199559302507212520265152775043832732924717441087739653444238028919003781352513929011701727375835237060184073892911103973534058337049050217855447233343111607668374877257553345104315827300732209358759447932656502925976792773983314624169051557588519496384293658809621924923427067430318532186183471901748353008502820091065289566145116967414141207145720570801683780962105987964351384861011752270742479467580208909371063241775933459891570634641910636982321094608209929665783013072224478322461192404863109895644869413464240299201898490920463612572045129611847398014779150607952851779410783880504707383228922598600967703488520048585302292789711907469441293354058367982519429928531488280102434191734230112449662077715369398823017561657971153152749534667999360273821386957421606876895698293481324931898052314645052225789594647901535050579166900784059520004830453496022960237210841833929368967800852442640835562169685696915063020317310850936505502044146854588469492554189483352639241485592786229042911900554317073625578950527909307219931574283383164967710568856663526936199445538764160081110006341409567224325471215683299632594444525849538039652282657702308237332229563625960482323776527588539683509087071799010366802451213071208331247190095231917040287816771676055479083652841148060116498276271954383415291238855201015902518892968118311141870729964478390544482191439507553640403515409502630740784735528927561062427166897049710061996427955030065944925432004716948339353448523412267216293143229107348450778204633566886295994069186381356426999268315845009735970242406520342496511399034642662035416595039455577951441532384347868519319658778728935518234384576984322653841629612654367316232652431155523572241376706891558517976434686774563862796852173550859493278490928898970446422573310594878422648944194047720961102392652801461679527877312288420069805004585444323430626963920066127525443284389493866049936888741986542690422169411389678915711643998528929696599196152918785288952284365078698527617091382612519745606587721967159281508419243090695822024834284833432576413714414774605921746557236388685884640316998745479665014641011381594127640611854262604268975368873884818538276347892661095331913440203756141375009834965110739377855903308312412647404990064542244425119980715920386480931251906637269763707754909392225034498345246876579467502594210322925399172032779075655974439194258220053757696005733880866143459062347869697871495384316350445675422821763326757980948210599144024269951860577417623789012162080619824529065841238258992155015464223885185365925225050926811713980857308752479443875957519790118469097642784284776971710266546682024499225956821375844739496583514617408179010696116058919145593057716177751758368268863613524734402837189351888803693024074334688820400107806092969266232094579751227526538212825686036133123208388774341765591746337309905042552400238965040674018752835097299651380147768833401014938792921407657402108356189439290490747707555105183511570216036242763506601128799728272041356774253076149454996553972218848097047257584263450653106336618142665275793137848815970850731772487356312443840466954613012133644794443286496637182968305246091497084103595511690623267761903586642491524011244124331761708459165454108035916712358508544141517605685585841599176810398293137115737196966305896546464424307964786738554510964524466720582944413915059544617411791520380420586276576148368662135389743210757063959791730924284179953642226226104432952116168715188890925823321780133995435649381306134823735693763282671780864508159005950342479251583869177855359154361360330016155567023934303347144926263787680499305986645511538898853316331050326336600292100944267938760816374897470721819898914917417080928753039215151963496581258238608372252241269514500344877583540661833776693374193784355444206889641382594249323695876973573703494383360752840953280757282737478478954286155361375425913907719919545519358304597981678195134991659925480466778617187375992977909296839841534355479350577087198245171745455996199243947119766198371217675325027368811494067751866948956082234258871832237372982499707759272368946981506831356269819118926470625691931407013678380864187169211505088632888522444190560760358226267223987400391158160050990816188581719800215732690060640235173504188208218065684445580171830300093837242885234091767243639362420396230709382427511428796528111082719067739385880246227655591595021671140863999683990053730384351136973859634563033330132256023774361521342907893157981103169362823226247291316950231548738208808655743401207540320045650715898806738320747152104482282447118001162643006267606859980805516195857774448859453326016656608219650395801166527922117416934859034053280887968835482334594673229597863396353206835067634629829295615392661265225744399558893656380922174175071465626512125995908069347241260136247740234173811834379634701927976492996522950920907674628860912245907919019783254150522614972036203310498822966471147595669051627486920608462258523254474803593095343254763459880130792637275439930086840975643804668290646905149211475154985947319634479501832195805669584131813298501611207615862592279488524951859410581047064715019147341588728488199882438469481975743820646436242825782938582761183665949708701913095128613606249326217948752924711011547960946552402847628340901637301486182657864807004569426343259140508004868277929766728659313727663453481857885820432842042548832890235514199252962905021931613328123522120192670999294847338648807271788734809964954654338629685925720339852842124588659640485520137559601547852942897633702810118061538145117950831672480984945848394930134788801899138693334068187723668370531592791461505195251827811733568510469682518454277291335929578127551006693129224575777809924129185575117232057602351101121043364347863146254541764482585117046952024935076322980410221649456027353387770583931885577043208675928906925466897415753638265312098796789547425198471105973457105159405477786971031831323529706075954311102801973351751525225826291263179474228510132195199682160206067539391255019322449336357890239707738785127174147693144794302849328733823192712942773481823072902099203251490203361403860696365991911961162629996767740907687056431289311528784003121590132424732603114425701598854501470940687521335766979910937312926488275191082768375244581650940953939913443003257393937787905101934278126015860987964354585083359024467768850972605735088073359596918964320744334790044291860297093940472460244791212834462560459288972953359569403791839654238836724937233845967955626720303720466037840178484974479264861375040683605560165799877712710451848092684005696636406478305490556992504246173089771370519506786355265860415190111705464964712037570350289222325083388346814888272688326928058099386849432429535176275840207026480040674561368614113397428635609886891689025935989343780191093488554364617589062252954011742303049399653704517515628010842603434875542121480727455394890527343930923247546123169188323902832718110209484216651256819164176365495786674692123910704341547449905870113936821886913187120370381259902535244577231547736972988300439371943523361642605479147643684648528517495160059279197606455387809529511255810469967641898297590105920824956371644478681697924163075834588338430302863095651929139655199652917268900998771199706050972098216308601433332929351184543983872616334941241413510717830548069755790044587572155229125203363305311310596676074560962553566551712174221281532741735759051114568812563443522546498196535949054318961362189185218020726910187102816832939676462421026193303507545839690972867791842403959227227478387392327746953847669497996720572778830930533389049034953829688779484496719983070131290984193090080351354682611238114863556090461349742055634881680804681108135896633164692174286797077287440022247173114864182975953029747461323602736815625447919570280872879073350261614761070245847300817844389795746364459001201163165905009135842821798215937030190502327084059007989538679254890149961185941056359266383556189947932364522811425496488616874385763621923540317472647254888100248866808663368054372505868398714597654879841457907947136040223713995838845013512110377654092341831714650686826292828184810266907562681936362691509628012810898724249640289027093648723784048462064240396658555318242915939322420977516678691062085370134859989609012430857488442080196629370954137574856316210730424600849396856187029962836847017329946343616447899534210590210980782671393046848031031768702903772284513562995703820750154808871330190651211213042101837013079378665305451030174984343506321066377535238153712978705539388893504682640099423102140129405274309611633304641304097708108769388839538003940008172873369283545501962431673730634841138395778425921741423154863323086744966770623466235524228235058204669737486934132578127814939588474460105769761082247690968840649204717884587153568453714500345357942910049904508906848139468492696682337009450930474254317633017568576092480474341436489592712959915339021089048253812827869633344529360684163002635451523239123293333202532070248922279593525361971292101732944322176112253168272149189197409692229325332759033944464502837024027246882445040422169028270062120739511505675166669168014209863242447069024688469330869725793341016116341840045312824281978287590430893504689677997850605617440523430071647337079837755052119053982338118138008638630572655706500413668165514806402597514132531062970567873073210270861320172622437135953309433749805269670996122018246982796766872314599636293506393387173502496000502844420568207994562529622383838379793043819372910269060434570650137405948994353054381593495084390376002560374325681011472100407788546772127504348217353548271047983786341303419011708237272581635050375165145805370170348441644121457519193304523451661167438920523832877993476539268139115506761651250930729925092178865654298563639371158995971473683718893810098570265048977640312179035134817141264986939564161798236629872709671413215590812213845135139730252337900649152152198625305516450846798049328077542155154491793157631164531778634200134239147657851495327129999953232004935241991373016470428140948167536952494353129502849863892965093905937632464339056435986561831941127393240709522332412766597290600543764719880025020865408506141686788231067008362238942122309696845590443325857619949561810399005026089158773749521656762460132021576052412131813542589753334537942357546055974236156698911084228984512879755510862490806168860311107769192742276296811680494861783566739968807428430459462881133643270898277844023613700237180622380623150164228344671404052614307830161620444949189831782586549446838220566408639614261417894006428962663042262286109164084588917266825903341922963553051976298961300382103008262894789648734625690199160348608364445079367958575779880079917052124074406326863992175390114517325442957780444710975248222464855839381030922479221162807595739164503142065726815899333984699688709940260184247667973721408980041993021170003619402910847299074627778105728069978217065903173826429077995310434114404830617498886438834266178809500051774756260132517460673796112934270226033120127582878181810141704497496908965770263218841742125646460942780734084012480571182265151373183957267057243357699023897643321009457574682820946812513114863350308219100734187999091395081550661183376793934188273360230168329176737128535609633675581777333752851712822818925336931126071079939920124808290289140629057772784262097097330262107801740363784299234143779375707325907719569624101414248466343189399850717041667354642908973482919444922828726632694181370840595209382520303238611597420280248994806817721873517288961116291560856365514282204195160291916473574048480454903639585583815054307895614949286262101724451268205090481819295173252259968766412339680919114936645786223984248956747397244406583585620005447603061450892507576924629481351436301696788667392772616721902429778557593191227343700888806703788118849609524188843095916916074390566080214182671231751274592168269251393942750270892122986311048850795659118392144594864423341765332170116349521910479309052294384972616298323982831128530574164932827457332822881814857240950383836225763676671395599714480288084218980359041210576433547349932300467425162108994988500508591856303800632690959030729582483241338084097296511342594294515325417013839432104661306535755244981228331489171745276335716629849434824163652198272773139065973566976269126764000459493717329586154102556902408865166202904075039038143311046689688320408013560438357781031861249212285337148031124171453495654058663138995286350719743924343392126400401686565271370083706925926703510944438757312473667562013492460347694130219167381331045986775922199120670538121865825652883303911255587130328050687597952531579257073574619429002141708481788100278075783134639207465975375842049725676935946017903253059135976199734888719774115371051743450774906699604398873688245269272004823079690413060306779029923802401417689722245759093251194260666742979102764426760938261717688334901519099602671779057284708211997753962584486257844916352430437289223432622262979099317404899474602187120319263213610904456630504066282273070923149535195898116121018672589503643026544891803001045812007043418977492254480066132429735290817413915864928396796234396253192501253824022439038134247946718681291914929242833492846147433543945082384877248663009865522148280168941256375127637102164261619769950504354244054771422588888671890195091265191591543096527578290186814625902622677043043209641292192978919715283811445871813518332083895850695441235805585934830520128051811024895770260688089604112550315368408877497418430458957598829194417717868604352205396136172826576593397737740827093559677147694738314899631246661572922789867236371311221233827302525234006082400755414117486368046337381320248335792984867351580695143913467508500171289088213428552056107247708181040560589307645263539145888558861609927727048511273893086401779086947591365175448397809908368798604495309505643589069913014337812166071130154732820304037472836704695324821594793005684547675193717013685800995866140012738291797421641338149345267059032474141782077015058658522330014353139986201017258536266356412724487191831462541198462102055050506839570591154064150514208941140613563961836024562746812073323462424557527837547750236118523416498319394046926637519040522521137280333782447524895214252817924549584480992191719561881911789291488484070824206105870787050694394883763455962775035624303580014521710571861852215571031710268520317666294167316996836206113887753777812659152926625894959714657041267158219016081697289681323495364839419156026469242063349519977334426971604920884421660871646216218205129606338571601271524157361179361475840893558703333201682126396318054808868805907539397763721482281480844124336642061179268778664880893810672946615010988106258989443830121758657663799470436217546181468346006244566811313350080304510346935969107581521461805139613065715539406051640239504253146036581738651685439770487591773861140550865477992739518421372340710059814336269954888225652370225125056816509012097856064141010105395583948271415531803497896550549408198765369912715636136008354898602374103336993425269655961237182635423122903233405330728106133845734518333043660061548431478367678446785065901979775051815837944626649817200768564137295012453977441527049548036205092128962220526118273482736205247536692002949316327089010244001809437016045163291287932629807745504897837029112943935373388592161915374743623966315935565767697232825538223474116352119325478683378661105723622521032918320341747868320618208259759700192396919692774897315453811448592638909387329606710016949562809034829866086571009356701881356503453539390194269320563425915451587893993299632477378544945877673748032060536804174242333815510682798394316964135136758819048845354180781989496202171400271997775103711334921650181730969773339548681035030302074131825426764257385396876373416195276726126043398164756201953067288025852475599865059759822100414296440041498043724820495022674400877422708475522956002597283973848245643929893961611851823140418890970957144721223640941421643915415900367630741674626036927999559673155222169033116636653409186523561384501445386826068883882933119240459591250207521682617704866544137197338149801978400366434944091514687720770526685858917466926466518191160472206597359346807723410704420997742930900954915219663938479193280514113581511378982604064956508730795485531207749959396221215467827802503462396832933983083696358008250948330868976309838410569444550586999591855378438361702182498764900842906463482229565685041178855479909593306646735700405256953128964592273583469339764096130104238842295192741271071960745276408681256776680509443839737504286492531481809024745200207798369084084585390274758879931586281312950915501893872956793719315733349003421409016895837745944573144436509460479019828984454813889973812159300855359103080104873150620078252937032526018172512041972902768848666650843292029662480180063874100353008123775020147478397331682876740536519076298643118011323159077245594672020496071375635208089896268055535085075289436506960454572574465539165963577831255456832473003511116836027645927269315821463697990597427516162541396073668978288610615720515912140199309605860062045738879961921172987676215475367119198183818625856225800570681821645906598240613516424576068821825783433535828358073619951808104063519450056031402336007696909874457536504045028780330754675249433948541302444426395839625710925779027608889816285127304045819006991168742179228953482147743233066407570021883245545790847927542208829127073373942813090565153144588718143268808899409834527386789362636072563305089304791673402468002401036090652646615317979694118053306473554664354400416787026675650406496168907921268409459346065481393124793965432074739991466480662015212661624968162726377807909326488338857212638748301783312581700197400880604075009910812331713562642728785666405267552386257562106018375649800834497345583084857718334141597345063339251902388022332554520429407697631542555442658441121561867519590197272229342397710510686406020884038414923539502942498642392240544429524604778628310399723262500125599134520538638902663049022565178341170663108797978045691465608701552523189651808717210930556430016572913046091372619141031472230645062846507633911297012894517988978972613791242472763700644399402709640275447863351935257208039493568560816437762241847658336422479003380734736192632429005717417154122377299444038245814141432825305381387420330471997382837064240615462273741898730286243248546479932282319853165299821492413006437265576539556528020334811010876813020662024654158643968876802677537170160574127308137110937704370752694935125757198170183389772408033724895751541121409012977158102059468982168552623061006051554481894420017179398458150027817681865651715264951347057181574105832888083662848526257256225369984598600565914745638362605181091372282434440480980865582843864791616186151386819419956417056575870265661411015689848436468751317863311313502105154014845764738288479145378892689753874303688187212796722489967338519902133440894315735231966949256153522707330715104387377325319302317839029135910576320627827750498817100458175240255147998778703302600467348758312992245018504777407197665526784967250105384146597040515040037126253844160804973320338259088425636422483918357093062256665098234078504299189968705636136890734796399332248698318572631714058756721404138045024178264858457489712087081666188562607923134798071409462121193048120761483664535481344198406447069935678939026842340601879352771418797989487939631981159969789095305400180384251166351369183940664148856565388082944781489663694671089783628118271391632832366746011376790303061100229460362429304449946715149785466628447911909621888784277529349369920234022554822498306398993608242911499454100129634852431801068354467689845128193767378059217814822362767005410553952508363341456557635528155097873815428621817368469218983045443780357226789119656274434499737972603380652778770291364682212351015003040386378492835589298627079098397405486139140178877527619549956833307461866338128455328890894350271872033541875879471197445166001289229611405157425631996508359663568525208177426542888127028303092745525997303724423119169509229910651161553744568974187428032262997062256856928119837772193441972009357775624096795287359176327124438924113328699855790272541083777006445473063162012665761283628122475532958367626061239704124132870924223952548500769654597275986011322785580130499986453360946551062882172783124638984383081617173760845693904347357639975555288588705722156709065664704166735178838593536972158559284057850110522463058052642238593572358951509129669354303593368298574536040070344541393600272396046349050483212724914457111092805726195685698116074391013729509999343876028299166946240118259720036250949586603257546134935406058018471394758776128895154760898681667992721982157108961635175897500414030835137630547877548051630823690801206137913921918677079949364512976958364911206488214527581886219185459119430594331656440607617923283987735492985633989871180771503125958647659858486944030834930471293278672916509823328389185428340077043917169983229260247112847634490172794486778481901841780036255714564036191502857061359609001233561249610252671879322954306713318664899450252873638280079083939163188101207166317208163940081906396822638433976692887511294257556104166894462130570863049185697016050806673480549921118317335414000078257420660955966930984831279786056591554664288319055857342490980240254346650981898270292249352735004185756592771240037998737802054628632939366540316699530736109105197449873745391985509803143825598289130074472818854243658628932035455775402624892771111266694407067938727082824672993578795640798603780794046462603545258096220290928889122559576215150278183370314232363085689278450800567697636934655238144698208759747068844180096311184802876192365852019625251419713273347666206352323623495531886670300819365208335886101858195438885443447427638538039724615638276311143108312368107635689824421738677755819164148224864120980777490267291004348547301554517400113547321067361021270267358833272117333581036632801712291302024682529543616211024025732348643958148689906835902464075258940963078877728350034059605061839799181747812355443580660280250940752160259188828540104115007930596648191516092070714213982264113640929286136080146418308389522423312874856584699100920264161899482295767297338618600740590005854747207132596358329134379850298172781831978808763438434962871729347575609272439965152961284369762810086546701771198662889837124661320006630949616231975094758328859976664768194388440938454824421884705642875435172617116186614706651091747709960372614960582373737898804835023456694053270449348751727901052143242197943519101649925799557252938074308653663267873526013537633922665029703911113885858633225027621978438363551336042788456765530786506441519675780831788639578228244638613723550196468584932828370352394725626904446456681406147351490446390051680751135454908131856559383385361112588629067018744372882149788927474043586888674171154091698745118588072958034630759753889917637827520997146387520524573018007812945301248986329103580636930244934160824172086461944891068609260400382916583462298960224495715386404843756515309858795866123109353644495561816008323887433561736833835212256322283366114694644445521770588857423862342614307127255908928287318461465754268710833085368118563460617952165383756927283263875838149284021053348022811438088476372623818564132876564982792292231865387889597758222280586956796843507653400415739782406959187032359712280727643507975089806648006220030646446855562654630298864560134703346061548523200299982522180847847675637583004171559262944461408144350826793088876180176939662441959166137520896724578254542422509078871578582172533379874461571299304170168117524919221605154401467697736939274544595189835899277449985747336425311381741412187425980294960040110102216157285739410414753211729052335265166916135214309707767726253288035955676133265210394119282524258671240250138946727865972231228820761218183178482712840710826019458480436965142262531954956603916745055289753848080707157881246249255770564438968937004809221045081243966037942296828379588680914448969140610931004120663412238532199851282516738640015336406947577884159870854659523280952385639208880573219053160451060933792622515307930102569020848162203972433195700541426084996955220851240064818454923530920975680956148941691672913012644169458483174411961575882642588920421118197777903773612619147250663199483751859671633197226255097568793617768165079042884682119100173369342483085620912181253469805455160990392485435809496524395263079750612925038324256117088572901243110901055804299254275663794164308491072866471442760406113163770424545051079131337927353190859076594327962160706580425671856065618937760913276311744363211656001367244407308423660374062060745893445652988361500995420702359767211461601686709338448905793227036921360617979437973871458709141004684077426954542807422445658573954429931917087911332925732578530380669800540190130155080642547258535129146260774584922941065804975183826959966052150765247599839223373475162720825421667529537968662861016803587468002408520104189738565952172171007809368747625901036975515023394658976501838047665695899988518063052300930206617491066893981352057904901377978499120099974314839176989984738889267192800117776270913851196195311749656661205781159251617117726941887570497782211315296359725190207370609173344350906932635863893454701914590444019989489556576814696248554803879173557369795690856922241452576517983097094685260888142445854091611173280409179436780708024813708483846231155449573890028767179848725067079215917908657757394575058136463347046028812003355100391254035057112503419902490365492781400906353802401638610346941130772883516142006325418968391037258638595863285605642186706550280558070724263800193890526726306855299052054023313063265698158733857716450801628792609727321019351182871763218320348970094114200691626648788410018292350444905390660369774164381710020500749799217628986968288482501832093668572089850260302579699367523729977062737316402119760073176656547879196827114499523344656846876401990869199611295202222111322712998637684487110364808331401321312126615727017549592297018396631892611623489793075474347355118024709693295047396414567361935077520905538489492485560804816136682922583046453390447980148577334083219659638212873521575617140420382556698223300582935297699732991884097151510833457099056635553321768632501557084307545259945927774832567833092784716836250804546025433089883017539160270898805609170739054282224079108529421413429158795108093359869813665427324119300447127642958546720817735388470785348857654581699916192839259953150204154158658980519930227646565429354391289069494538867761471802313476444033269851817553235139620682036673564885125814107182944310357439736797324487397959523511069044881537344398987707121910022640414498600487717387880436168371984257839105091045631850320482413351379913777378842236620438735699143738098122447434330557708949087195628810194866748635495634645485825153197903877774012040301660449104130990242350205715077332249137750275211116412289594707667305914025666305121634960845950269202659122460422772879643518315007290296115535995780605070290163086875899207655711038920803509649313750093017951439747222751204004563426814524414500250233868578156923679968082596171481053271065507854317247491074985657843896496704153761272679599728838286153099507682380877103300820521264741348875844608576121577145329996366056672771404224785037800889575893320796427781498071548018104646127599915272236558190663549546611115204097317857954453852016551699680343970263250230901597705550329557198788845852209715530992512861550565716684908445123040219924715713509926421715456095224019535568449505339799404676247512381379136372032580040859257333833006366144092080021495601378489870595350733738152974475124220794350523436805914423131542955302119720276618160526331738524584691690773280953351032225475151564765196772686289826502746756857987675392095212526216459345822624813251705743416388038823011958794985940467535201575720275335099130354739625119490486132821064506408169497786239894845240104920678193655537501484042806025425236939309364330567343308087712145309070355774283886923871673069170353210245231982951368124707036389467075766790803460771398714377020190630006505113871432468504130824304941794419300866004273925504535266949070980592366760657766522181875499318795087266597269222899356452209685510229453534149372028605011489021643892917648012127559664350879187068138783407007284443988981108409382121045811555516666687664992445673877352519411789455775659215952024120331497835245387633513157284885933389736115823236594967221996695698588534113067429601520570696779966504307667913664081444987874034079438802564973157712020569592653955093551093118918553708176323583258026729782574702741197775398044131818038812447094515422780281752703291897860423127232219657335439272659355299636741632111702924890074437532335759524914513265427248558758954850834228387640837364634154062431755411390406625123364307925524172499215599091078407421502483998692863529539261934390955033486787988070549838599775861705221649994136551481736965583919795429198373704119904753190831731370074564728089632916054498240890038124294704140463995747653047626547394181149365542093200955051319519826615206041454404945609622535054084136455395885263373174553864004565282587914933943914543277608736702573874475953985177183055835619872978743179436169400089938997146142484549327459781609328856752642061354586521215453852376374000053872162411768332105533139082247265784162130644955056096483330067756598786723747649461713465185229173217731748117688573507919356893346191936907087245720557601197250368967433226082986397543946154755919828719343225973885919949573851089284895947792760669654806012541650440048436907505898245974803793184072764732848537044235983975861486949137523330324280733992170815140801192268137890802226523443666844963897613121762001115580245448596988087010996557759382706782238229691330450675099121388068597264914450442074692529274468552654982502820899299303951359893791478133055641044192612189570900317972829368475584434068274908235892219181133874912896029665290527932317391637688707367554365662014575559063520129510415805036625950991310545613346366984062091484919740729244605098841195998002257094316909144789503486110335699978999854171167833159573319889480207067001961881214843510695776591329423283703309144491237400429323840020682322078177985780712347837516957190107952696713242817940780686443678520386354066410210394083199939016159166878234296558170739583011116103215077260405950749053452684328456641393570780217557542825287063520589332502278725618276915230059643807212148854321140767130980608847900467397655183438664550795441894636443040068253418238263552061174913685737177687547271008291254747681834398951767271025259397726805406907649857030499847091097054537486447489866117893017096264710452332974307415178679495971042543051752372161391829035543942772143163132414907904781014655957437737922820903568776723380096884850100232252003703460549075305256934132504531559731578249984727160413765488394518889826934351901978233033410115938236852816104562874261061348772614724798335293354366266163271391957753957288683649745777255726111962689584538090789363146185611670511850560050801796829695633953870270632698700445801067481347746923012124681341652352341507891976993781086176472517111368147248918039674429610308320805482740689583117080464336357060710165773269848427233891404613418014860262630424328362239363833496654980603934097599038085573077521944312769968153098200692084985222350021716741408737049396848044787891630892327513641792039396696958322200354511240947345105147813385331001985216649019929892461167310704358675603893067943070067725570266809204090281404790655915383552843449305647876186638547936546737293304481980977888435679889122240398009129397873992674439080055003198272590444252522608119807573653425412184733984756273423066072159466989481137621329583040438978229902853028616489590074384645595878087791639792089214740415203219473963673088775601664744797960553968715965544556845445691480782992194642906598051920621008815806513295910891339465805909878193191664179350835644180110031993389614967593558262349003390093582942081773798207635852179731438598063074513236750579311545539455504485818882359382882846410382598563566000215671333845180873239524343607961449616621394450118304222790179902603869492201751185260632487618734985367668908910620810641686871166900480143590563941987886122053275248562067996019875295704414679370592535009871704428308110791067442713083918217892815114219373279563534741197441376529499184211846328193778154763059021875420421020259084705033241629389882866483978415448942412905597775607198353861983966505845706332957081087277402665126245731654586225855506198512538679530145360041073972300436925600975500809770784218063092567453578040558745452243612726342965896220620943018239892038078269378983857333660073698122567282082021265432004947431439792030852816457591132305128073136351747614560344219096788164597563589340976263232709165484337767512775460296143394850547635859342674350194294833431284103471858470765731061835776077670009455224437404381930379943287606305982780972790747024629173154577438225434691257478762328596992297385037098023878576851957789092867722374309200522998000690260488127924809267905178325466221153681380757519299669842020218608535119956228840477044385215388316460192511789212727404764013093681229487421697861934420047108612224507512831548939760736954216807888695434117452383773984788295408710393516222200248508518970576423398937572833403039789759157818933378276715747150140348253920547420354182867276433929240273689687802319082743758860646809831051821744715860645951671678208807965234188924882959597101250133900400478840148569199322431652023926121233629343361532351079948001605738110134425580297997065216201029102130589813714651660923722322695225999005489023245884179342054261327991514051101990920003489791941644614788664751392960249735859465980768807599941771870189878661769961634562794903099330827658315048501591403579404214511897568313216806331804990960193414042831530656776220809585376259034232469200664843069683542030572788542727655737439937991105609689985758116344800511756085808704104463687407954828470748174915754820154301334594134696448970241817032758390782400836258693840486669185435744488641759744493352736844424061508132612683288501673056805774211211822657743204448858795603563039761971607210170172052897244232510166624363994554390865774961859140985238351944848150748808321885639309497584269831780738268634896495506453655759684771397393774466335383248811987790824032349559734300942426867116882129902794013843933186262209284040438941393363535950863252646960605700807038638108112216817708066663684609197215525641997709830407050413660874550828292487029223443301883771217508403183987416704193471957842050806121564154819502268415247963945696250581147165728949917833706485902008515383254063343226905718816992037818399689876741730418698511423165698509000910950751681250821751808063821828785977804550442886903934934194126245589543807185358177182091891715260499904328939606133484785095611341190895470873488798550405213028674376708012084595639075797793481675288382819229432979525129332625838534517249941580440491152128155426378917261264039436567820699456116299651790740547959867751967788773259034136615662859851728291489828238006647055077198496443279809949279717151118816744372525193445223826451580492641445899429572115315304737975204610885915289748229407088501190840344461364152432341254327539101097290494775751533428250743617815169468077971575292587211875338178953974318697110676393714146833229044646786642106900958777505701859093756535122059968735679426524092346571986749311336761418107320423769260151492856556715355039846600130921982035159240323916144965242656385305435022699197412412895480557693933350516097915411844872007219525500707320969040120907095047277281171963741904185075182239179160710586649413641027577021298064334590634699741195681944660185012674492414452817262764942960411795360264161850763337028400453852042095297382209636235196241143614691634896774099029861685834874568980170671403804017313662142241218208742635038943954326012468798071652896264111784350951673977442773843279704767318013364447115045740702029051192515016356054134774949607510734872221268442957192841585341661744069631591649980446178499670733335939671079381563927752649286425421375210651586731197271821257638104207084629917990711296317588370470373827168854191946685654076306710319154620393899173282084664709626664473586738477437197878263766212670353441439678652850327555692464624633784852244148881834080708688237231162965736404808869582092203499714079608055062616566041579359778086568816299099934022053041305569225416393523688941417915462655066054655733556360010697421695764207355845629812295988865120644662036718217529787767853310738919134217303945315948346244877804253768037647714572943493071403218575665393998052076915206968836209535209642123323593770258270695157359846520216833916534361715969884113678867692807256620622009452034551097959829065108487501399416262202388197363732753152610877522854948709859019777794489412461625897332079196735424983058817895682269394858247707215675501523483399167354110817433432984713607333425653992709094296438490955998295391447350679905412883425351232227380134081125434381307429587765663290855243221346787879426973584450895152268270857462904143702774983707474799501312644209676670320381150709601101801867532419710100295406123129300021184784669659040822859350706238802442245925600716458477050567910354679336729332719440278486104425281818083536241650649649964620807064901571356287362382995409402642202254019306984216410811240799622176816675135056438280962379671866878386124429403905760995378294367113519975098587970074208820859845897522056849996075955791484643419719616340127496352869923193257361438905071204690824370890650948213748509833246792268247157645163195369377946120702704253185462489756116606185757279939332475829387386971777855782935775746834328786462258388406156268683240539400679428716144550279939964281413569904797637304251635576434409102049113761879570446147499540627199132187278699660060663190858661272402405216522925846951124332460439974643434674674839731160628958259523200675062166218615604000658440214945076929579766032325036128685927628533202731590149637126798862116675394393590448671493750526426536044137305019363884528010141248478165063107046718736083041792816557101908214352386022219388527371928975918569591805186996200657653568688239238067707513511022851320087718896174342316920454146426447295980311888868840487375456533798669437152608734396524998874573321169766478116177238353517418779557018869058187690073528520231067231458232299026465002785908808685612252789992984883546864703985493332427126923024310638927200772464738912940162883485667800933264943019956589580842082178536974364670722479764370030130365096076309274557421549762216311835295398326060799312528311496991968166873994279590179267296073734129198589785004912089536443246545435227218271119436096790343268979903849862914313670506911126463020055551400575339554999009521064323123878790089882827120679020923835169730183577462153741409667167782400064426815662513338480041508681132131838982439550215249962805076414142050159792403642306690268770955213539192198512290270373023516241143216991164464042130190473968838208594684064257720581045094018546488282626236856526324862276819199372856913935536303021465201359068772629715654445272772650481238720252878249573585436699914509647398559481929637742342549775368069146503109448264252508469739985808899357468301908693065538165694354605380950850026901420359964893108588067106629961591583728160039684663163857623085696131259011820353476733393040998278090796046573472353977938842659254380279141387553390662402482543308513998536025185747418680513283964783600129507171042193114736589380286286716562196082023908618713061989035432095222533444220255521925104492166510503886153807860343825342755297388115247238199245681682488878599877892315723050169241121948209352452031104301388790948940700604451523593305557708150861103527317827904956731516614800371342710974091617110424099105233209923559999091421230851818007001795697481300676442021553032140802695744186386768936745699955132987363003215523691082940813221441655800261935612243634016282526999393355442933976820567732819296535255554572653590175061098865184537448419955450623648006707231126158761517728411157902772885065335153775461523971710207642148214981460020948384211011334467378578363606185828382263138427257050689897632612025913475043324551488434110957853774144442440112284057326861716124093487471661147178774719993296268050947579999448734054266943716537234335312374187697869685012050513648754186804908855665279854927538046257703924213507080104850587039351080369874695826270033271900564400698898222722057455312496820588029729336930083228439697576516633458424750933923482375249665492182448845496974351232864488922344874393843057211075073668598232751634859955492578330643500828191103514740494578338671227358206527908547170806146419160183625692185736965461846488648545988527303395623769092451929817337621943193813534913669895175118036677802484801703118076619038598800896743365839401294820205123103987214286244430785372875733515702656709228951940043037400641803084856529100931875506047659777200041163057694708629087365257018753738784671109643256253378835861738688989083586371051841577166136841526731829377611136851762873285836006354023805100390232719029782658149992734004630406534622886361719055804109243374630477421081168085031419273093321212077638958659588084973877170899583061766763372911415396539628700806906378331810039386930488086831423788225830439988503291414205968093209394420331843682086314095810036310804197704023099713001757271131948067701483012996107573936474449691173075827843584545899069337216824898087312775885499498328293610725320392769478192826236622406008650198524022188023547575716447998122056624259158817816188040311257756615892476195207348763917234335753683907379928429978841068495161070489075103595896577709062070083717627836317388006698733936507944520331618267566456952646225639851155344753568206911624821115852695734110953782454621334963504198314774318209536943239417277158133341267275830513580376318762671667371152357439345661598546265413172724654786030264555696299792134085491528019193388009160030294502344792031053278145236425722480674249822837124687171570952673620909440319821503889244043209522755366222360543231127355152440245890293368710818402683918031022154255640069723552579224140390481895990404877988664064397196979722734591689484319180034400105649555226846542051859127484153701818685384597506525279669151566118358210779031670751359559092149478209488631724339145267307592157839342887193771823631126998548563802651774211328328151216986156820398834589546187295755755219706363088820809445757950994557372527254603873041383320138007712866441187748764665787970234007403184190833679396682837862773708634536782561419754280727895465696041275711330961433574803462333777369216801783963317370307063234027468663797216032636580670974183353512926264229399451036624858558310072059456415959125107471814674542224605100479109564654025651333126742207544291447191131482276972979669418547123810694802432442326522664682807312648894568439715079987900963811897173445582667574583683418968172629406832251077743701332635456455313424832910699877228675188779473397203650441892644066070610839223403252827167768570406827005186297865058721703585487614359100524889591981073850939753214014234739289272961698076330373000009841819907858756074841011007730252083342538394541053961710175591843384854524407804103692102238838481928835615504048909448748256821321709341545956910258861384023837493263463727484115897938519743116146598485701344666296932732959006999849432589337481320358832760348749008398148212202786607723337752055848424086725744167246147946598063678532888235290190919120760534515502592421655638000987090759827492002015583449424077678151894778823723426731783815203147977445307470195035805723843476911430737033605852263173942813314988095263082238116092424002489150260953809662088290364531041485698976306012637580108585415655334045177394558391012846656366014739021977181431537798639153315452133818858244813114321276376458699801437232180017084523535275271525965811857162158772137211883115111398264240597443588666690354621736031522389437059167345623823387872008524227867522566620709995850737271648403811094577521964960426241340206862446779708418317902569353910594160764938759280520563140447275067590558944010207789837270324704339191808316150248330860668442774449352788519516171151023833029404415532795511416124176174997088142292326789817290833011908366350819437894688401546405220114190999358888675788360095898303985619112817308634233359771292217568415226013562174654031306601975033086112058293423082032983465928751582978248408290617587124822172989594926135233906812667526194137582518539445958075783479711359713906722645514572284693847190484670939411939297048358052127916475130769540057710353146464445711300910663033679134684914142985751820283703773653690642626810653769250230321361243415692951468263405985612768322950115242098715143432742312148813971960982796568048323699491440179297838454528022509949739665239703710153285535038087181823871971862113804978413532993645046981621042838423372627637509451077767558205531680846998145920902745345413659785737082369307123075074500407723213839592742902227673719032535221106488086809250742006681506674651407148244173316444990702531896004583658478053407123915498041247263261917065565460215390848702298134772223095974624207312762030446818645469288637100813684607623759956104624340872800693504277536010566295383828279046150240629698959782625211928032803347231401381217236706007514307137081431072140534101346633177236321929081326018529413905589949429845669692230252018686907838606932241437927697807707816108682098700047856452477651446348142998063265605699924798936396667994585296554280591499333405354218538283239515701976185399590869562567103867264680331687026290685963264330154598096387582128472671694770165649043182003350669269178532333307653136377181100448211676320124312766164562443870157018791169409792486908816250196398926176761622598371898010378864463303349900762278553898509733398259545605289050659275692951469033627733802596447155777437166829078727066911856468128056496587095834121828136547032886905373340273809799150743419079531270626289636891470792706308264238076482501481819230145765208419915961971583288727537473119824159414480613240542683969349488138075635168317214754870239407638904741180163406235795113652102027622815080692838893457129851504687093547676696602918779015424007486834853013341819385962295394764040778114778373510812488749129500825615316138403863192161399381789321680785764674005459344792271070464858507266231254470021873396283949894522156654687372417754362694971449922514329972577512423597469063541243093384228564371849052675668243306995906244158887493609274463816029332012890342245788656701598489616485985709606932289729184721300641780239269044370244409036239260289710635304038191957800222174032355940611719152063536990328188832730897470793327005545856209622340443523706941906859629780186652002550830464863527908778117157428156481315748411789164517647954214966292831610391220084315933776565582632344522492145353725559404230465257441975504671832712813829984800815908083109582765786368208202602477887095291281325648517439416110761648874398907096313726942221639388961602329065512958120426179741591705859344076046209709022360380808952429553295360976354387300863985339032002223993832957705341044125900693788845779280805519337566288194071024111391641880517878646133886076907880946277362729998861014717834680461596600162382459485694938485696779689336883812003517264098493236807130373688687261963980529362563898444606098388969018861953205724313460829527716531001378527988282065663193185543384232212634043760116651947906527665170556994857308524220576288400313897304996717344804329453910869394122537759877754952377708861890024987170742520311462802124763343576566610637819594628495463745782590507384047222436465163549360423383224552736991430464625668907718519446698305829272723891750318874252459639989171721282408814444434591873679956159034953722307327311289813769436026850055609796324180972984747859877351124911502271116751461999059616944103990416554491847024343086475555752038301495571140087230751360299507420115554531885761575338718295793288299569207352853225813022415608070433772030929168934943316580749193107193174158996711450749625032524403203056781929305845777361998166585444447580579157721201872611238119721839258123499765513901936002765277414288512844761988046634430635800071505035574968173063758020628924320835202041470123861438238656974498382396828259745919043460129057911517869885252599176778877088485314145287533599720054867292447842131015766076860026461441422596068648265997086462351115039525086884392098677496605509063533576516557553611098573165899841449424467812498971877591283142780644748105269921376197286847412627365861200203852025214351615123093253803941437427380300888865048164911259017106962072372501017688497225508046541904324018944825674693256711177409122501182887718267035973877815136995948599014212759573281573734155310685518877110508339030877337190456343869263400919659293707949058628088577583269431499394728781097159156731839044687277569884089311440634971709367154465015863404642992052815543780742203679585735098179418739687482954427874849321825205047721433079497036777783254909471683455032959057574192507868750351811298998891141983357103703105649653074710906807428620282582969066389146934276297173600261404471961662806698219055386913605343736529580460875250432241545012623867895730651811294873178184917119147255831210537075521797747601389451621666037700895114428725803611782088799928662789521371023102722448226718313443812459612814652275053212319665412653239437837734269411045291844244121107376409955743358691069781054792430308566311066308002151098012009538633401316471602709786962624695966055147256878110462815592164270518300906670480806122490881330903285640693743606702227426009328663317195840589132144933348229517822437105231559014043790661641892344415433112867577861628421050544264335349179979923195485414488125718704327325194335686866445280157904492745472174587553929739982072112901109366203245103594611606394324851304549789433572448056694985666445151695877881073327080329126531609349146232855898770635508432495883481427211121333707011371012051559690234488044864017291558362181319958536291388293976611634814048475612385826432323103748985813468160401336964220549862453733700975251506329041727475353553360780001324288463430261688767903660195696171680168394973203224958324486721995894330572749080875237238002871202144442053634032745291740074246377026472455238651106671329890882457287976628827303869240499235159863354179601344848072564650131660791172309130679378462389217981759223980599677414458340483697356265299568829499236487656747448180024600564045809611739082431216519265385811754119038935726593611167358010850819439993087690086302448879942892028725134451142665755075552975598310326729498739611116214431824121623095238733432862019443256756353392676417378171551684559998503165556228937850178645454481261797705574122195666958028186614711428414675760189296089636291754135585845238508191467148072799387635244938212299811264222990558727076836413154002746230090229662997328753148303471705849683455276116641258164886495387948980163720943069788524319442477322292755272082797423524961330991797141212821911917144855683957931078523189020036248275777894523968456466973301397997247453650550402420103961229651434578931575230038946732178197007033719347197638157181143336073622801118930986582922579233124217542825172118699334179170772204715578369582795477663603874922692485269287685439064016256546183596042608376167612536650176329673396053557444241751661664016374183567842100703191589552436459023778694862743398748386201400525472546350521264802522830107951987119542113049737587387485231003254573191217161314146562766174834301206540365876601710859705782303342947099166357657035445498026092476890517533155971768045184027287579440943136235468644008897348692840130210964281697015189349019377476918886433168467817254704833924738214270669728869240816866604140938628644402047073589171957658255328908274673758054500036350181854144390621359405235171172879590261168241644470531321335753727699240715965629760331366622325992159390891877160993977355279013697822915335665609129918639641966801518130508795248328055573615377475615728850367531118221455514877298639248950896371363129571076608486386819001901949050961254718311044414485758698522653970141159953247632076002683873260640095552919254269100074623984057665414822985138843216468833858132581569498212865707966230697899858500716269805416622592773007380820843011177923718881123576727294921676315015926775009517857443345372586793899798549651112138908645077499013366837472113546944384679017617093423851097262179093659763910161435915258220436400709078864445219130414984496222897983548270561602173356122109495705676322341784722171777174199335322503300484552342750819185034038279899479318146015853916032552136209787846889984454377644757827122031463089974991583768418451811871263523267888048168836119512966190818192664082627441672704964854613172348685163119222146183433296707544241277021234717226868803384236394028010143611410897865381783366954184237144413794431817028083344012121357353303022996207483806115798233611375294653765159511557826902960652187039652175884259464432800520400808124933045007910273771900780501720685576554489149565200394567430157347928049864115919067655615544443734677453090496188103455558216692538371632236940139136919723708000410334390384326476659493231458733937842808125028535713022503832716269014464880526443887755236908910579706012035218883083904087606458931260063336197612395729486415037543087691957816462756898439080099607393666520928995404334810881908713476767914330441241184849866949364544351521842039302746145600177967868668339488937710236783307450510998277965205073162019934804824903821609908529715918836901518668338135662716014168732745672303905126089764491610806923891195182402021169554944638766310380242873895156104784526058359226426938240161871527232331269406313543081562728597514403083662857745233680629725739429549173508231688357940121617464991318639014188668137195863211744194576461065330496783205564706799698883822119846915103912333664973633966823919076256859941912402069294672530624544354561670793416813838359934282367888089202369864341584946648860906889272313629924333274157347967476163461799613039843063759947936070077853411242386686789302930489401533707479076217758885211445632375014305484681518339366735639972457675974404636298682645299088699764443770679824954599577505709887360496154597490855123797312014493729405904736171694029564088675804761939750562574196979889524894680224625939226434364974098890491272917641636718760901830631059821756778019993473294372123798727721863235590457437181799010260196113163841181993533528884939568169726630870124337007194781690350498176072758217936174531435345741488397559339856433127440662861798979347353872611501789177334982554800192170730354002388250987669283505156775715340833507532627722229517554331385413385590689877751478232858126160898299625386450521491803910800554347373711701498432311369163595819278830156790630527828881132936166173864325240479415637159525812751964352267792376938036269527329200414502673699407047104282967818445021802769497959760804327930384657907422557186892922829597451028116700328610186541113151232699387107638623406508776100683005169125227164566559188609064730158696245070118454169103204381168585179623372068558963293637369929042401881762427804713519620252679541161543785766570399719494341918907323726644453592392977225288651984216977120132886822542153521202022564896183230753232983318167884110762533611840505330366910373651504645254455573490696327180815887872539816100458348774959821881881009174687920950735235598588198916346743506608602187365730027831703119641117654256806013925926295463060879788385338066062569733732306813462957028439510771824833314049444892158009826063686098606341877655864898984897868388047541460838709237403038340676852940799371447720687251450329219351004333365923429398674724154072748071685649703372655713144131822096194909236668775373576667050660340553729382653908109241447657927134513675982568547569272163576485628399021212059306931533968570802463384154885024083837353645215138465583746187417828003598664847608875748775274565277294939316019714225426848225383490280066362171349910197203340092657999784868837192049303347704168780905920033192800395862791809971962656641017608284363511197304541234779076337090222363721998710796548010616661029919698563180696420955152061105509543335313244851398663348184333858587825516127593299363070901609467276680445778570711603665056825085297423921792812917651141149527539540202945510236769687011002736065547166337260069709004402977600151611299581833378675892694808872186694454507300600549724788261382842274208824039144660223074203816629113717851482346316643492358879855682280472938993137869736363824224496190689029789512833273744766356948369953567514347717802564078628463111598850467538834381044527858253519891267852065193744989412086987435002165483586367363820201659997839394178323809258602052198613550387835013699229569138341282678961667299884204746500832378814854845163027700414708237695331850027040505741840350039056569612962223077303755407774697968933457725698464782984139598145776836871474299160752252317185460879880572692935729547801054963723062134352842371401385661834862563052164766788687668555283047603295884181416660814723953671436021428191561927653911643786661149776861978225080437968290429015056765562278208981531034855311893532775541249799454961996850903761403238729120432935311295896777200278031683215871477706465686089648653821271150643157159352960007657393531797180711045119675722209407996118437954038438568604333425044531929844723420540557292350156812734571055617285415475870039101637144282317723970987001679539090308199744291557782976901425239218208292802121679887826397655172832147696498572614921524505727646530591701246979598330393429506936323075038657415251972526365635578668150961259165271701925086941722084374305114661605489454423062304579504010992137436113205279052391701544025567811419734358836207519736657067529910300694106496657322309857097662599015874439605085876402329751445298155165803267646037888663092878052353740407795703143327621792563808486563752900924618455515957537238566155184359312626030534128745570072670719426253014894760896110158836586035058738707038720250625836935028086139682444966323508280470355877237510496528066228807906120210990188801071586305578214480007117084394609991597608231390731629229609158045725084885111016313638308497565058123805114599675327939753846567354057803480765968340501453306744225052044021700073806907189792379754780423328532494083872518168407362431151347249396034065657825374003018033909461145986906441807660863264070444713677689152040065644048410378618611354634390943132578048480092505207560944289973331318980606107775546985251052466566221201519115533541343767514394523097808727163022812024703948623956482365585404216216140389517206686271550158263122309585310073813220668612603030908568135760898562182359664349954676773784202989796097741690783084491118318340093935942371879886812373523255332027347868807676342821669886549633134222633698235322990496193043115496899286135121804051852688773490687584599192061816293495618781251572489331159094085244057759851859611574887225989950638183207574242264948374160558307152922924028629161348078768008431590679002643924636707874544115894220266729786168417945627564849745143818742500785294403555825054477575450064510164899685179237003249443425953367978821034661139258401541845089706337750063827638241606249211034246999619103436650248941348413646295814004748459957008151674773735742623217262251500230580956315764414847576988878227344779605017489017865654875927611145386794249467369186575037500520164903058243163092253281557133016142812196803128414998771823451340530332171735843421016521224771408111703769476350149747179252831562228374859644681313673452849879631832329105590117297767806501717334331204611451347196713647313342834188466037165195644561514419357379173066059944083989467469200375694873515611037604641234690922334645026900945009558182470811444982524065460530191931713644634260677380258171453976762827775702042325914797152785797302786313165640149055810884668225859759094637319642150676558321812489995223860611505417954977069772811709369087353617063941646441777402373828372451260218154406601682382527452929101752696223924799141900613458817094655236852119441855694160328472178590704892116646101428619453621962291070379967149234273061836581157392786378307095286974121947534496484165037720823922400239412849024799137565656276203523557475071960379631118769153373098350979920301238932300869785483649606336452429618886868381950192680533357692584270169199606302949732905105279308688017489724138525711252641734493680027590706390424353884369845150556253884066904768722277161348735083569730255091822672805379569837106153796347112244665761475200009237109508607629984992476281866681877746593125531914596041079751299350007252138035740383842357694251858519892582057507482021438299913552701433287515159335274821988756150405437694196087682682640923531247057846330244286612028271067120311527213235345498543632679719406060623141203868282295798173720802904148209716344053880728252165606222778227941412714190839268958321877296881428559612530779270828370338787809122871780265724129312946346543459780219604742759237480263260807520186505061394922774528366877050644572083572846034843949884041444830193419336990298754725480239369235208088008375079560335043259166887540831121729618878072087582956797972219678807449043873702401977044414279185335106144670150478168774454751365684491397851205965975740585005744854942607681440771077363491862963968928635892657152748506976726059698065705155663504964453748418479309046241188040296984238384270985614619963067259108031905577328089626638872536692843474196547062929646519814691336106445758637888662853800057099383642220313228466560546680633431186506347223608459447958240095462823074044882434136846702966976633911206138815946893293345395073738462875406287792784387259873860813791307897581203519583349500321759552987687625376249185887458183760410405956372818394891929263751772425041079659951621362100680382563215261297656170762861020359268002572736995705543747357991894724916650566861743855029883017098223651791529731149335772936189253652605084142413684450609712750521580021857345059375580321092953077226203503536262092500228061894388978119107324181260148799316051191844881461883409100294801563807990059973584490340119040885228326852787549352014208958752673226789295403119210193658702500543294742098168666216605235985276425275613870549067234443386143758466257002346711828162425235618928907274582092039499309630990351337524141212580392061837863113969273312333347889902346652322844863583964642164371043909978693629212306657925870851994241344506856979598256763820111527730973335204522216161116630330290903973507036251672272250233888197894872319849371752226357024954441994055242454774437339459840517494935628005878476705997918982504294215506490756520856094720620832539510222011858411333546784721626058717360366597121159179325639078626982979964199957826455429019173722955590518056931993927318500864294249178255544356585196264877802592069482807065270158494796199655006798972552276978630178840641235174722537223790902318865665795367829701388896084456010765051825780679275632110168798457367740914583917087474403931866218568219979134412978426696123909771094142522221598934136474167718710709429447507360434873865896329200500316334342861053101284987756016109944321766361067057423322521275664411829316560650354991175419234244410259727347859621696334805302074168407668376371236887423802679925779690656114756491790426670419873982440262125976198599186457281529918968152470143417212881630244272429472253788476809243911183439702486747980174774657759263019074480479615228702496310749979791449398347211115758682224368016553631064352376206779939825413047083459631637604171591274198643550549367061267290241043200706860778690775513018962456941219322365611791282036628191912418021425748063773206441424958932593960642588961679062319208889093760931687544539842669737921260789434240626036063506432811842233409182776035902048275865274681943139301589878540485533906290021490655901238742917938090745766741881120850256251498326853554517263711440586032547574170940657869266834043866316666301300167856775540075178626455339722878589090233745770705519093201318523138209510163642816072530996675247312817479239504481507818012776600509751719200071117395158659720178059189156471777596175909136694244034475798420763878179883243691737318914270959024155035820086293774885682368558475300000501638652508854308638401648137692701018510620428913164152651700919669221151424304629012951004500895705169846236933899327223136396304764685541324226489845822096343428664625990360782398222606948875912449293315103829336444853445913588850512054868764947447440838094664935891588518981256020429810020242745547956685391760858914244275026531020432385896051388226192846024478498154970196357647859320438424772389057988653594045347791836296493599369985205917293831295656199049867433351498086511739397435997461371893766134107326355689542799951740277733239705370198951043908443379626049168435341449896911553543709404788054468430554687245985893871301593920280077132218740422714936285695403707097033852885744379654569139090115948976215865623498892674386907491180956003446246188925016683433481977733651304333777897173034103143656423889470912437164870782870671099884447700146735452927360582113679766656217839821116886324195084307833136060785994829247623215018931149286177838844334752375502169886201447087520937546281478715127601435043843426260245264800418782400905594247076857952714081809364743126749909778068282657363288431118571259287420164343683483165767277334842582998242628890278577384055490711680624298950019467536662430002583276827278849535908957969953365545983774124976213558192464225093316523974580421152034568334747132219613511436198959105354069640991356263600846191856581981757478506513101594148411664966569136635411401317972341629363976232032696885285593181987137671924141406410319973805093920225076234537222983736146470100025059011557395707408614440672750232011761531572518330836853631004955263603083042456277811390845455529147340260431199753868769021243913861303424411764987251324964990373671684115006727886383805164049710119262297910294026383531050855934324443472329708627808779464456678621516626933923514749461093832824880433408731353098027643500210816608133321916919595280448319743272419026055413632468275744582403640929084157050553166587544540744124555273065595023347610375471514049600665090458901769105655778117764875335176782192545221749740382471360225663388534320659030096885285723545189309037291818479597322550861286268979388833442309931664830437426160981692868674192802914144376409368754311639488261110723988442336465415735735798296590993977326817185726172909645782435820746114628016128294703659922882488405000549940987310614263706148145416718342966132260393326442309947200795524715388583076499669351009177895429227529586723153545672433655988656233910816495276588084890794247362460768725182876824701309507554013611387064619205663310484752124478018510406378574697436548393932948222852109527119312265217451593281106107483662611496300781841131197226578181431271065672192143702594859857364174566503659486509940599407805060774840120596324690537300942172643953037150704237956985048960919216939531418059925487697138390217735325133558068575232878843668163940591457605950933560579356809564012879723189961385639510156384152863706537877926571254689019777730227169023860170843104945048104574657968138048111390820706193089367502367124383585936358809312057785751483651195134757710516497348370058451801566468771600044228098317222006551036060204639635199960145287152924202575352337081321666916119875872751450771475742545988230254381640995595572887582942890039471043965881663925490703815626236119812069518990221079704182031801921181355929630173826649083830328764633510048442803555348940671246458967445721632414143162476195980646535671037079063086192897352124801633495663250299437997128955318170788021054987256760268523756263009943739029265245789314469704183694648936226669298559985168716913515478139031444966036375073987256073606213967780531952728286095469166718553715245872639328102701915050463024077882352933446272041027910092477834947721586704934350395245143908511843745405441168877023771369344139915928940918633854484259588240665740255413762377585163501345793876447994278344042494474939329491372943001795307538974483498588823341311740753013673148769124805245999434401897480324375574877817119315926163418902146753147185365040026896309379609622477370966607359852837444657689698368270725434824805170178397597993175570553469644642633698702594802414892475908875454385346296654680497848607197389200626511618150933014201162122486297518848078506551743972332448258435852648749578240608798704651990207693859106418895358728937269529731039973269157094494729212950984187481016760244234637020430885262877636610193679307786317896655740973536787803056762522633364482869853835626304002260902216295420522462659563393513381561142561550296630182361394050386678020697526071925133369511738873577489653795977074922203002596317162873798582553094954581263631905862390661210002335139695327118572425992504529016571616309641050913657779421640153544974140677038023766702864595230402844973488589770331299282683520786318328696380309837135056417203907908887382075371643446867213423359166305522302713355806135835093294209600238383548327261185743781782065177072911477908468383878169994848556622039695845724480066723203025851921623157203859500923180079609900152909503228490227698592285802358956103516822125917918737019785867031843021404231118711024635191305508294370068900537049797795010311538365917235782753453209632934318534432616587411622002457533214684372595261393838639203736690456041562730414729124372051141338677028627003237539005209359082390668426453342024105290953378144516604690454892576850595857218873062147428953999849170159105157043939023011331512993406252281305563159593079205819667581804105542338855433456818768394544630568446076645418883513008392600945774218086504770426591708519297185946669159856283893138904423743134051963974811521056917905260840191188322728972166029788561481128218241230190928429284849743820269172672760489236407053869232090015376864655853562307174464788989229124515044900806314565129189055180267831848891298623734279306120294567995656127771703088663753922520037141342667358222536356820456014450386505332350544638306786481012433044635808999547779908003788564149701677743630673070725080124332166498728628471645023951306575837189756818019313186111125671487691539029805586722542649326610394892329305967878004759150647043217840285147816046502225499093512988963840404684457434305990291430336682194031372776263618605442526600552297788693452748371376852672642973996834172654976756375065959529532264034996366393377216134353455715158326937791085794935165565976451939919279649494564035140559265636249492943492115538201662161979448613440410252082875617519043819199619476750690575651652888662959538323085820689044982998433053466964572209091231438327537347903212602066547656103664807173989386144126241013461464799889560614838792379304355046896074142737462889727703703947450417057375965023418702344746982347891033669222091107560616208424312547329117980297927441973375899734854549520663087888918956574784027883564348807254448264811214643241090834444679900759322234054203006044582057705039472091229567727170555870064884530228789519928382802057923621070558988224605080278023635260276595421713801383556525588200232119986496202713328442014186837449872127196541972413992985790627450378112379655382414059823205778768918328627050746359376900408538876537472129768003169996447437674713157245293388001004473281795418084655359372239579787122900098085022290698851980210183825870102788764456893796578974203338806758652939082405369826470102418572542397328764662074201138924043952989218072056633590121094637208381221386445473496770879114539778614472449922408705493756828391202110222107059723526767544985157240399812903721672909117209969446413744341103343582097163514051301318217687776500697512805204899509438684282052144742118371951649707742798194059037566163445303241632247302750464459416054385945206405201365864029762307187885211798039821879769628844077343388237229350512471567549541333654791855485636251033750523206294348656988968343869851086799513695519742241894233142101082357991087847483174440664591356698311866932784587741257850060414479062712993775702038474574576084516973092646294835937589214289023974678577134095618410770934524270622561366754357682926289647772978890518749637314816999135835345804412238992365539287198832787307300770082720935186720622924462781810570065684968468889584281780418802278056512328276641185316680579972456369451981888968512479037469337240453708386098929092829575821429267141334899587619696370646594261682698733266780237927048523011039442213401701893203951938425064812129835843402136483318193953935433060186210292953638637941718061570264973972132326741499375475521943356458961833423040018376397014019983173940731196619181122032058889879768988049887726065627547644219778855926553436882828661411713276852322262053936218942877517627818294907262786552345424144566065956162945051943346876143891595141290461522994238112872878780830096727397737838327318409597930855405759532605530066483230776781687033922912566945756606725671683130755733113331988508537521355277511382008282013036757413684490354001346312732267688045588304532567736501153654145993301054664645206642685413426689151549505873834448889259323011826952465860734995921429902062103031656197062804654520021872414692284201083048977729547317323169133505093688755412134606559010397078431131898592806281479432018017096624494722435635339445579660742780706953777442233680885195381021750199632333997032183058636389280043710428939404310128206618567679423055007722102649013736090580074273880955399753142480473576729914340422753344401939071018490443170723754125670311815888098741061645709733149789421879312737120320267934705589389184940331353355925892628013931882793645368040867716335710902478670025797126021101530707114806338890997789992399465215307276468551311565341979379568684369947005060935173189621427684097561583061990063117222582591897055991645571998609665110333883377766153979643194897443731380397748287863533404704036407105937157153814678376717172294895305158285449523713969547516041255558511151437102459094750880640310643020836023283809569021082937134419468988699712910709524175960612207576953142392419396087363066701047587542483204029446464508768205676012357788786469799622039510251190077332308723620289572941084509308767034615183934843102699620886388019992726295028602774027915124863894734785547650510229169873539957636021237274761274302728614742623216642152726969131953766863176832729172999553833122601745525493177213920349097800270114710605899659968912840673475953972831667936411103008273421976696238186750040341654534853864143206104135603503844799472021184659664182449984070349347043972004871557302673773764425209064795095623865001583537133884313361044005922131974450971811711324853245653533711204745129940573841319050519513939049578081906980426345617857550026000961343865365571890961831186974748374963982525260753319008827318583838013841339701329640058067192657836061671914862234567155384466223323008320065961777201473417863429525156975717597379557095756355774056726173775427681286625109150905100961898747294697899077171907848690437992588164368230879609146201266730550424611311192391691138141045111794020377679670527150632740716579227478782162949553925963671651647998915918000473264477247453886556429446713005475778132655115141177927143324871714616107424806069752494309371674766464241609191614901868754161884171017243523189196581569610985685948125761932779209053849986276616105659705949452481612206466824243578465881172653855988027470900728474379739941411430655367693719126422867984680901262681162820362655483915113303014159315141764780076291794326228830977252713154116556233087282950694416748082336326867597306279693446001307232512565934700690268302462999085028878320962125266204050203196713474242970167640000548182956429863918258015490735173508229628033166199997518632438872144677314153223839601563658306386992127452947874287350751248993200885642996300030324750814626384209505715694657433484908525364637726373496354658786515466621270448682051851682416020992917225856284081504016416670309518501867121136518820807947333489906168474189758625615454342598922575285202173558097439895327496115325416391293925612448678141736299847674494295619202350037573953747221215935921354099958499958088274620190039490597484456289721956540218477000215884515765767230898153537070281597403445170832958537563031301590326393319214331958868850203498067537842461910947689169109655736633343286997172962432798836122587256295731122198924795280537351285458249645995649331236512445381501364902308833642373348552518360633372677787810847457210932496648506254193626731196506754494568719478216659480300918749730011082031385783755175314590235447404607769746457142200153857618774513923018116527126534948907017776929810699684222099580242068083022504377285838769409900053094175178025316472563984641807117344048258531849231854027775809469604505156974326883275987110560167063073442297364432941676247875882440605747021311642392126924788678329889630223432041068439727451647829449100621199851312300640124285783860496382398609885795712907429624020141892742607898966843052794174606672988368462805628414782038412864450303754099234733675745358721360078412615482216131272945523462157520316714728769125583813025605005079190855284821260369957210662571007189826964260417397998152008517094293630534653253921625769427647871360914016548686888476863226617222738576464064222764334389678032192834269447569784396021824196127300400065402120898058119830812930110089647176669923906525132108277140069847368665537381835294433983847436140420906152916653350071513268697623047416759550179338486405148237982411699800118976092458922566046082380535109194698881079762742362373301381030253627793347983642592040610587773949113787650653996744142943203606373555020623681761391278250834994906857454713186121938923066320827743338132672776010109488194806128790678465871225200505685183913528157801159944525755578056502928977708834846019341499979175995969224053898425898946317524420420007294132038301861681784141058828209770730472621734408384990924760832148264760844330485549976420769523763063813280311806320288990451175944872961217366627828707168835215557899873051088167746814159126784328611525428659111008433944221619386501959929108399403545006275470588251639850569453634755788718491970428326569845426822047852195941743023584616883943181304800320378005610785209356701817629816970276248724798050696537576887429260412651225609784683491546825444082602953469965584993847950183748126588380143629679893603145861497330143102797441717718035774669026207260826716530125887972112976685991304836942984981843506810988787025240897351467560730096451761630595718449167636246422416645393088674520629830299983203176535513894309893993741511845605423033030793458183154955599951255174531296426424980869851237661105621145958881192646027003316527848973129240678524767843105656516506292914238649828577210434392590356485950942537137291048630072139420440923545279652903387300314368328579213855226286026665592734378249789422663944284887014173260892860952588769946616900309261475950020090580732077346458743987030287110451884157358646273113581757341639736169626986225646973484749816721340483269241031255792996432308858911107322577836292280358569250189466945282649766319551066104993767460088794164230908488985043588994449471544968375983859582534178737377239015538560249634008354751947012932076360056392268208300641594217671094849298045898340345970075130558902258381419855662216233965483753566259789425810225699829396663664227831772062639317831609793397787798192249505406583766861775982242983102214736941128037206594076279592466971803042666124449178789920219246933470962017615807553830590324335977859251650895781177960394888172344736776792337554063462582086522699636623710382917676748163475276687242163793607382037943121886373691017344310519842188558322293916424096476288993550959974363460684189485793235048209173443283160922185821838814773135927790355218321887124109168792687904352389259190162168475771619797370390450545607551867033254742600027514507596950807564931194516150558321732189807699223859925715381095634186247721361183278079447820129627819808955437862092903493418349052105707557717512010881226812892636926130324675212663298463167782804469352096839697431511906091291140763596029620560366052018552434544699049413812525870781498865458266824891699652879577330193183336226687500999226608335802822142049314604824116775117064357758135946480420769597725701182733525084544518578986681003769222197695328763954785463063928411808418898158961619058204561470401116036781590895077050939795106369080717769870926577265495559656907529764826495329505602645383917595156715774447548090497677221630807967630037753765537463247567216058384764758849519299358296895569262884764881641431452722951291902895368279966359880702761745083211046201956594743497719368473473665390630245339616039574614531817459822200341654638641480818448432793462335523413026809454530695588092232613338057850483453894835926960160517485215323091911915510909097566643855696837667469767188757599796779834442138780570824245501137934973235308967457006698769187624173041196208975436282391937615022132104092044515050371975444120669816687694969976338526467837536643353425106080176266613808667762688128808691923290166710908326224755576046429266893811159909117046828682954946095104417298884009760527491337458844665917048372356086334459872995021339356818576011049245035005758223062148734519596911879680448735509742155269948432178522932894496777664690636208569777042452343253762507621277708303130716409581032332547725139372138198210941178453174626238094710356175694398361032529057420406107303138778092109772489049229379218386751164479482339988891705721177478960599785321095472183002911637718902805566814851308855499946623637569275963794959372187730951244461206342590604165032535782286898697597938901168617862551816359969912295608101448251091850010034236338200997616665279847844380795177905280893683727937357031279524485658091463983810369551650662726073127062851569422255318568090265994573067523241393118350647285631613082455840408793919397161814833643261349818406536919314081929115106712590185552323595158835277794258443100421470918579283081482319666818227940525421499428830537966234981439542911897760716917852295985414671039146966186094138409143462448471232521501846344433441926719892619995525433064568802865442294565407229920699471828602979680542513484380364067097582986432788231379995603512749815937976451348719327101270736204984763056201323037548435194833347928377083672968502735380372085661561284415336535346524870049222649105091302579100214697737477887509292137637748473205578762267703258060223579683183518048956648002532153044839246235595809262781676794255256799296266399591444966397666417091402136231887190234673580512737019547697096095144136448668617529511786399196863817652796744759286615303157252645747232730395678163698988707667701142946954751797843464369654960349881653264310834256226003636421806246445980650136930308315721224124290279420334044691561328204395664469021058817516891672145182437362680481498326524183758514907652277590065594447296506908030805336491633821179342398252905602628672459329464391519656332708511231033963198787305520691282039193903218096813677524416483881515099277806423944321123363048616082274371841717452359792508352920165027995612767175124761629499188364671560365500105685528095440795889637599547246311347591171181516135283673934209655577313719798794791139870036098684798560354787573788913641344907972822683642931965090711452698312338053448277669133247378469412588122929488005060428668065551536253315921958708680306536704428652774907911978078285324820891994945112641533057949272239976874183879362147526559629699116922005685668562518898287342521345068898390607860647318788446324847787213570796347281350703352721004479544759527346927438367920893224149662735196906007121872821133694351108477283399205185245373989828060156638996817611296461341724886148353393291215721960115071281773559482223745467561085018801167660883025090457501823848526711024830155079749723247255897329372691249516983555958871967529402800005990485579168574632233737777668330775727570518058846945884710663493717067728298304686565656636524813943465851897010512282548700099501408544814451213020499832070658938319810837437134789533866064655756579192220375070769143406622179376367440447521492874631534638988152572075151660585904894251145375508636973458763867863686383310213970804095360621625853825183461250003362257007368518973082539387957543855466469687964335533911298866747472537555823658360768309826621567853360601556912471725688032265091766683103523011506128157614764354145982444038572406778890354057052919545237150217175492753327341217997427283505793534596584945423164917629666021440715194446815418402802103600669259766485031414354445403006171725556542150938396611920169541225650896556478136410192843980560823658598626483629193793909405682580410118871670341422289054842215738718601508360907368744414041791716271404343592292090150461020113794016048906353561651840348796361847663838745982093559332373444321108874760297158587963907423706551572655004680473183597341033020192828509780030243416723818176540871853936817750305646019960300340311814346117673853018929528199822301088754500026043131778474618873147597900327234692172095179861622746675385530312252342521677094640979161999832099651206846494602519820457208791682206892846228510303713251851240216842362899247190174793876756045047560795668692984927212535686580041204652365853851725204711163526151349149938024591868089415412652349150718921377369114843630061200709781663423272810595694995925419749199920785281974964251727240381659393709840848125593702088685961764100691755111767928496850603383540609867442718648983391116898873411956274264761453713522059425860997006634931433340375116055396270737445043905700965639855968611799961347734157051068875060694522980619624940145744468560401469277404122981930882058167954599708174964851300100343412421221419776366058168267700143536010174945257951705802703105888167393160029807761781843104096605445034334819600099329460063403538153905159060069936425957279360525262722350670870520023111699530545179883025934902896796411669019018847343640092379297198124010748253444191407343882969862831071471511117787053487407367325047329265874417210478772590532283335366602064182255950596612857116047475827325034568569890055253862530512276765039917584846502588598746359047165616905390897225685544627077275017792997861543799013399855643308129333203212711635167508936550182219503303140643408848578080709316631479610092380011773803646880571677978544629524291837467161047628014218783548316996642279118309252452972067888566396671974782934438866397586769166316975634353463114139436875617104769203775982657687053075761811790587544154277623909079078252349902447032404138679041065602970359256639665085302946333037130801249926864817488857598052870716405173661513120245299615107724347504058593828545651679800394300683285565344444484304670920910956445743239840897279106274684844608809987487122387911630243289520465845829591175696105602934536232975730444504647637217216168568109772899102880073804044668804355426421551601879853828405475953985821078304434274934905562416424491742194752440242696773565374653773865050850476004115010074193773528085799756907390418319409451367095884041141702259272764424438405391212627653671843653400917247492223381135852151046884775031653397774094401132688094528421442349662448615541432643627812697560144585572774808087422796642605053830543339489127265155226359699216387280852671612203018568801809189920069983357361378650796254975711868475060104990480579631516335165787911130257137195249510443374443201423286275716830618417871213832628847111511535021526408854702373414139211204727551608727060027151961520762997351627435628736910655788641040211392643799419728947195177659835667248497314920721062091263035063267219574929463946650728472869769458752549619226114401516793859033027542883270811994057549989519184210040389366140435358360763124082931591925134715891598616612884707867353756794517034330830567088245528801200724790467203390556203931539588149390791621340937600165947768509609956789567889023572265558612976099207035888313665395804837058580500858367803218420160040896578461034836486380224208424346823216224375841734258068282354483584694726535940353869436261299855915662587112892485560595788227423701915624300319152520417747924232162038588808751552052859985024640440155287269115238769095781745067163856271090490922021904006562276728491440108936063522936920417706927110952938263752651302096030004611471730860919224459909263635570659575828920773229550884603693769420324344364446224224609336594866173997753247772605059131908467661059855390042486671137211967665579236126058407435091422034136086093961166621179614088116728678314946070371689389234231068099590923996126936958250401053391002059372333884465096588259465829725621603814798572749445379663176627386390868120968070373848202985255823386459873425309309741631917538047374717946338196186780289196301888738171739315548640915802712290014084806924630712572456005835707740686272350293135559469891272348878438099809488452681480893180378621626913714406732992062732134229504708208126621963087413775713585331357431159626849777139425637439606031983286606684482216555972882040722482697379953481310344256224431060243749825674663797194733592299992204088727546189242657003748721906307822494866518355581617608788266636104413988688851907786350059418807198429057864934101567685207122012414065388565252747445721604602088674025374359741775465935129098860317589855112821873255406627836565759582181832481680580473871504484692933659840041490109235302061737804112533251063968200973000733561506383988222083260886255518281239237507642159836664987217896555053517855529693696556855631188380341422687088691027083471846802685094219530970620316174740398962419195891762453342480259362036715474050757259204463807207378965765485413096128623677871699614670040730756839426130888450095980512107191015522340730781713958873595885081842509188873682921911225309015231651506982472483972179831651432655367859526315564738584572062759386011603265183561371687032886515501276435036137731757757929877666302261686629890090218436607885755721136368992653492038093578544434555614717941643705224461437238677187950742971131542075142405361260137103143617972883543807230370460838665731143412009932028799065222528301574829848115992806880590909991321627029481698850625855115505388720956368597247023428995388983802772291977073647456403197807517657144405261489221522817903781369604534041814141829617157938171424778746207600074620682258488660347354847151278314059178900736374645198749638995513180146985287991934451136071688414706991063967650225746396364363796769293517437867583404483395961719127070271283811270099473229969077159096753577751927965032861607935549617561955420912581527716155403248084849400006475881939681658971779936207856973454836664775483450753096161136911166385596124800404819057216629798019837737498718897976065737528076442842806925721604802057487228036387736219076586641772314310423721410837107996933683863091250416296608301645703164488269395232104180753827833736082315177534114737940839044794401075465455374015293162508498444931746908066898303198525887684696114710100510366834180957747304409213899375108547510461659712655870273661691372106259684939099993786756314625269130032645679977707269561832305813616186063988258147226507786308435584046613532634655706838244148069566237177938154835442603182988185381085773390700709475413905216342675448494425297440706431643182741400858832800819339478811869091552226945302295123480034133579614937246023507744171045929501151865969899014181858738456131240184309868938256957434278268392404800923729701259384335916123527871674377012728632993258159066485856385636685910420790794827745858494581626875654761254854683113649522647518314074930427393767053163821029009396667297086009211906144014884661068434526100366173792155145921265821827023889330471226813145144353499555925567652171970058340402254805336116069818827942676869187272424328931554730782387499262519553820144387691264743036133452304392751433022119225209361616295006202430748172102557086162012655530852651793622206474458940438313133297265345033941486980859291437669522139816571583134871639424861215350885130301737481925862561715954959699810042683643652242685733429695568696321881967706735530866873295893093690430134263381918903021678532820021933978954055762336437865904153637573544769489635481457738946117517770512465018030776441347169885156810529710089094220595688227101450268771739997869564593253239757743677173060804260142815564397304773316463737947167123114928366636526123322352946589312471754210773679057829429677274377632245185062289118979592232225748405763018097932438327137655242188650714142648171086391360473253928141702170331826388990500646862620817192712332482892065153840959443633497146079563826792965062031071423795570865852088127999088472736195498921344970897567207778383729094289170674937471340422413338112395134227824587958937738758286456081775278925975575555486514958850825398856434621430889374497951105035885757801963377477402307390015475071268955085798189901280145309211330836373091073395654242344262657177255837956314608007116017712948285563701669286142660342591120426906665455103971267137690759068670975368104085601769609488305120322896446105349927335854184301932033335488536899346667378067847506154926840422130770153987845604329755118779763520396380247344618737779332426905295855111569697197698447463138764993673201217119671856810353024424365945105747692704528508227267453334622979084910732218605018552770407978288110030039612132305528139207953508209368294745802593541636561431992728330303341900565691068292843457881048161012484558416695490356666930419869558829465092110686527932877462647753750245583760623655085665354889262582657353310776335857501012279069753776942780010647809258341694063302116496342908595995326544036887971435721969390833177075166380903571580164377809263152381743669021512446261785330834695333702346365872572578292385542101132246463091814537536978859855896068297397891881119895664860932554417634432957744407885478313813203117978963285147702013824156415531612435743557180476467786200048765549018932451146897673006604867437542332709028472285828829418242053157443958518299990724154914136201178192343498027910564788517645184760567247629041703693884435743594246456974165031833705587625883018831034169686578496924607972048755938256948848292197336618932326474308008188074329823587951314812592438531359113835034017078824686596439125899129185968636086832624921411250897723544504313037837843063882778396260477835071624003670710285131272209089304714851195953588959348220996989226305109417975772807992113102539498323481382790472473935594681051786614660673518989781769583540383782372129523577537242549233938396134672696836368445197588785139719070173634821219394604820123320786292401729078641220188465661500281481045979354796210751733265572802214739733527595037350774672311902180089745419537880076684719648135971043262269103593573258858209928333797066183710948704321161068926922068510142019148672206325101754601497456482978310098880818640978397418402335942326327014657153034128526288960460756843823663208313143416916212694329371269743732934296053150328497385182643179367725246878342351964143929473630333571070186737278654631555968454222799306838041750169726984327302785827201084615556715434899685924780826286505856804459411226362949075767906342485731799355636415612729445615804525635476371592484208416492361458303477918539879877096203672210531172846763781428565768661916727046464495886240145349884868656893556166081392038179023977253912197346812810904588932300590913910582477461539177881658936879436540013302091058560172782465150989497739503682179146735419473656249215464481334290280597799056693842234938641102508220849013665010658282219770076364623479065908182055313361760003966267093456002650775498371491474797759489046078168073796623689762967007771597727723853471187585291134156277558485195700251700398711508966668802666077458666271259368930248797051912441820559638696884990560843791512165669614588360265363619310899363763592905428534528059140175952660293903991512523944338820093697709459006101108115740803695431828617110807052214594799379771183892326550256599147309690771159725896885829982019269822413372130431775148983210610657957436244182102359874121397532878055874102966565669740634897866213018602323283186004382159855830101450969674658103475715946832011192461442040568537267802317948588309385925103812111907859920162163203667591678074697341914892378493086569381645532018835549717321620602017377860650009028006348676504438240639904963314417180954480388466223765917903013373597052404683246883948424682828482758817631875938181686531665999340396325458333624487428204590920676971854744363454826423579531930219198341893662596791775804390237348258262977895703878326682578643947999483993202155887716424421440800274429398991115410868474248033804470990875929574064059581607199617739904586078309095620951018217192209396938514869833471474061268216402358611178372905965447695129959310506379511272089964874972133394270407059141394164712125184906831511418941909236248972277421111549286113170493350573018395963095513516788549489072971655169088259838849306667274346733750309337496564573825341659677081117854887084921483245490512724302687874574478504115096956575370627309991572480482961556354525226018575366852928515200297280059834848580841457297868892872483559788830590747761858012572169861024028880757058251159507997858981315004583195922147303144524720305248146731535929211562519666674847728275837974509122251164326789213989435347709909016693205989224653344565550157859784648632392869875590355036951241507067818298740785514529216705018696285703813528964183664123503999395860797484944893725698015342439669852154038722523475451170751929304503117581159741977203431217768833597322650850541997496264821069379536584698366592714935124614733426822283200228826827822500018858204998560845149003164985420498179096984097871626765007481640971263594679551985547806176310503348027732766172218557614206269913708438850934280474285102555004555321114557755603190996817808129568660876273590803949373990317199838409205562697930840292221657984732212668366107097661282399593545150335315189485458529471933092270733399656064746563662276966517099141736423323617293180193290801535466022299417709521933874090263723736969083326676389297559838286927989955761014646197173251122341197753360649817253354046368102258677681500636962733420222265350574456042578693076759758647776621754188966720175983068631305973672013644389116883333441931852358331648145711399640402502586926516875883651743186769640567894887902670474190783442525808352010937846055095193623660328480258725814719740653254710206923754168256569703290143794579999359814838760311050230333309798935193687214363925190170306602051016436626204251574493472848134667456189048109458302883748760761580266830092104622595678861379777592999627764119522773363244495944563908672219273630886047760439197278015367897934893507175332357434581441712191357756802365787942853039276476625991712516770246117467570885867713611169545751143059805318099920130942344864104255158553850745288897806519883954015838116466297050842845927158974058408201408504062984741953654353090520521473842988869899896294681583313743845084396093455119543717621120625818640444967246080492369564637376406372127059675078255715606793212637571763977439958581000286220622780320233225393364883951287107210292917696996118199756189979128446539953458589822693898242956788986245961520545837270602399291483871097862639327112146922124719166112370800718762333798689326660771172153205310667539305219735559171641904035313857078233272858764958277313769353050558684439044328678343101379579706647670199206460874854441635317700555703297985897138329257063169186017063257173447822828730035835746668797441326715275978196287972079275238173333146778134709840437074973731219371844686325924164573647976677723544462121787336794497652321317637004072728314565149944482875170652160358810626561839424112742250589226191687852993742225525907076565295924415918336606761881014390467669341759972585135618119809296889533012685678340232127011956131994617538396309442003088610468244935158820449631521214809531482918747724331254902149761112247010700869123628186169321684851885224603820035322181113071542939009833117971463716016375507782694585679099991954827812871801464066772741781914764507949856649492332879455321034463914536100309160163155245521389033053225011960410216907075450337480709455952065709163226671625670147124683666544315237018076872858056482817035445147020408976183495070532645906721483745224416044373772751118405102455495911346364692550274941761569518614390258068479841035752028982611187439873532640072949741813630881333034315422047269746973123601111915315426769687938502350681221396349351896537271165026984459829935712055984685600255353951655136740941784221849286843725583107667175241385643915704670586964609838179674606193697685447487302596870270727256475086547159182681696178610042990511729815753078288581462536717501550128467094071393973024518276117482150714496946035993920618471066645722996473606460841881536642443112557222211699424451901648680543479980206735127337143917400037871719298364133891398492047520538261292102778050262015859977672677247922612892259553280519708682696180853118241826932865315361811610650285275267415672011132829814410741949001028645837228413845709533110858287038185127043739374767545052128861446787378247415231475079446650612182766507293933531498680275651377966376846137207921329569269962440182078376471409326664670355830274537790564311561695649402697451642212225565765026675747869054609800821680630004232399021304652395912970349195218554100776338188931663346164310486052302063829532202930202668454154292803856093545549466072731611937467177898205529646937540451646202041299830173735293693568458649960452259877926436383790536476174121319394232333447997442512726481139354251052708267830303139666953263950098447781304216685884037974552905002338112288718412816614947560765305807609615035712420243368451545553022477967937157143398182818417276804964162815118011033837709134088206344266200830621356557384409709075466509478401257073309688886603037761027733348608204431536796399906697866147351669491432650336141975494045802862743878970343670537505799755616864802113219138656375961530179540861050901435693120089072768539255002315769717626893897861108658082851567313872687898082066127337309623097492861177261417639083563298238537749912422028517548244949689472032129810431826023869827446341346254341668385392880287405920478717842954619755360965265049100588981903693991186873239964285354519201262532568816603750313239454847839641091492972941484241501526496086241271649488033978897361019904073511850450948916964965528499669264679882383541469275925980131636290873871122634563940719031847951992843803621744886290281425127536543779144620274564776603732161695965554311762196353586418555508173163792031064582567940161372421015978483338591269278438724228206782939278515636620497438291529005643980256862935543361928391601843844882863880660185195175611157022725674617159948258584847345219126458384273571598021811844404598660786476610306748420047431375374056591232830782281364490294975654676793139648464872921897576568015298462608228839507964488000099590005817496044711861184908261214727237271391685482328569199243149521980970571997798559839167894253030285631938081047016572793086571119764701417374206711982290364476417475489298766260772269603038457788518536672499443569240166882040292408526057583560463171161760102858669276763434813744131327681328555506289235990463429619714855442552449511495902518382781675365128060657536951958469920595771606778894807515717245214257720169625530976114847808385533445412848498612536834288228272269889070736037225808619016316734785812416780343704420236854379070317468799042816340946920786698608183539452930717202450270550918596060034671640468369356096688262820411275377887352371601602344451542708632077344180851223366452680525560841905151836908612841447800727051730550357742122757302881018911144545841920554279173016951781592506554046935797461721798714620047683369678335235148402398416869405928493675962135776761896321040778065512843687647594875084300045822367449670062468166878082874711419537133981793686891964802469694529421240932051309769216356137110874469452633345167839219664386278656942778605606383509833693921230904820060487282569018797425486698114853074322410882452399737988255595828873373661032430030678158486261210555266077858317353625295207076603555732586881362614499422641086164303139287582740878950424234324412405581122197362834561267005969580946617638779731645943486310443528061802002486202644963210291583710016306916160837732689505669290716710865712482507947873293494382865490146457490369215390203716078732780404567178319834608344237806398026194965616821049387162205903470398867684708275575995168159555307372249687637610307265418635745717222572822205503069618226692718203520227310411203988234287020814885504123941878131255948167107982629556157031969555948793448304729929070465932142105714166864894073602121747979522215775673827118707110355120198776271183427308669878877043399286596973660241534954447085434389669125881128763711012323546817376214736953078511973560343579566818083108642032556379979168913458011613562302956641577859527303378956407051096897319696259426473524611366917000222463810229528158083217957182554811324174719432898788702844962960974277670289234257020220267605773785789439091445907711566381523016381492455642926949454364149126960564698150603814665668349303055558574443325323761923329283461596339901976913625971237992950156778378918258993843102170305894836364943257794729827041599158537294229365032508687474737467755660126864740410800518994148510578087320258201154272016286080657141630536761624293360277670395240258593294151283066665226706927070591662537588597162819651548731693298814679495455123737317156619205078940671783325376562538265964925868652287187940423470626961051738304433872973093280245078524146122063525424771733005636308650987841286238255794972940721305786845056789187960811461416085023570883585982685627030666889435840806765144184211693896797948131090861209780126185635596203845179621009610436520515855944322042244629671672132578466440452576172858635197312486721682829946828967990543445162123942240769716683082018914514584462417870487699335518187244862224742129981052677349162696419398042018923976566457874661016606000152117220292487539612360093279021301550260405949510345302908259325865364986737118032916367180949942556651205222656739519881738695374856431060753566195074239685442528566577577810004752420036603947967567355537807801086598097317664055675456320868188740444543497971052965987915567797300699106568915788371713436868517228376196492823691904219422329840617527565947075667420979169645217123491218407579730091547054750262081906075692403650636943155069194317221573627688422338084235486129777248727317679984618508534422913691543567214988447102984835995739761731651400363759705882353855610005760129905845356580323940269825466103113243652797198885891820430280889001209041399453695583476152555823509714146680280471863454984797972965170737218493550028373884057614098404812058818880847497892683315307640389125310115930662135419392725903258007952985212721036817900425631368062428528654363505649481920865618776219258193425805066594532437713392932495096023459185065699934395132228582729895127466939547271372158954021742252758730028286416456952514468296697770334402617999302690597952804309961391169733853002434295943550838295037277570133179048170955445929239962953298998993841274263942059474019784926252672415845300448536301191287929262629019898879591037713680513829625708717738071866800917674421531839446813553053684520003866788194751373889238107828362406673931077180276667056491454368746710724374596533592807017189732359461511929548303508187921632920910725313893715428599409121375635163383405596738587144864622768412358647424461729821108829412334639621391298877424527043836411867146413661851150886981607020491597073627723548932996107945671509692329509406424087057023899188784100771341850452715066865898009307383377207708314163444774427510901874455892074209939053901890850655316935666407230960360023716834633826293038460703014247613857303641062888785958128945590073014508595704568184379106527257401082084735637705992426960480512204662864027184787732409460016225504996275722391766266158702579612689524187548903938871172152893420920664023717984760723683997638391426762858233923268241753300833337848496104544997722814834265110748549041663250633782952817866046985842023755534331184002483515582593704327066924283141813630012342156929550584887358436088892874588730244885995351936780776798619592558288359764671121699241012960178363590390491090925963569522906456028167663660828693305884217078173187008726659954711513910705035924849654660159839562753363388347570477969084708008069418069241960923880608918692571227170604274574985560453366345827699575692913035521027284634389597116608430371245565439945098379595938176570778158239436754699622119171571837116152032176428950161968213318736946218597313468345152527048785519498656683200155659878387289632840613040875409468876110998522598253005792927299372610102011339597981793126734754724265032860467619297292974994149380032318243198225994764420742202755406530930339071336902774826694342714868278459637086029856489317433388659276690035525159691407896264077995694858612513762404378676073914430393850684717251487170973399546351620024681152000609598556098418561312504644583217079515961052265412147076076830659083681479919276911838324521338386272438926244662943245693801553618468060390244900438384548965009369550063374364314125354241740562707864614404711803219360434830702886429069248797096742274155275763383715707558442253935614676660555323107634116898728053778693630479777714108991668716087522086337591221526262862905920535103230015948692825457100911188970939354209532934981539686137300897657900502260979220201500110621004710750550880490765081572704601181879879967559675024852956695553017481291917778538644071693798272834515495176469850395652463021347174991709542878023395426500695922427806464722914314670945011335703974519927226107657908573938902106566858694021674741212306877032318633492007394852431207642163807210078834642515025881663602999958943535320900411816671783132207511505634424321407297522728448105592300030741299231271256241411804773420337938513659923779429108422518332068674656768308315797349103018021523525024220230423747132682639649704334547050529544011361094264233789494406725300987943129013038034844450177429790507588196635156653748397923673886160971033722690383894784040076388664479570054417962339216687931910759565716623879783575966031457503343598727718097365444618315123034046251762259981260586596187889647365564446091564103200315297662539435770740315898163083323031713854430431136481025535590291835405624764324111401818639195762844566950038463687918181774921880580691015217930913662310274680803667637155720918850375422044291339016017731801240999202389941046289180617841386426760176398721542539279861850467026618038547483968103284497858901573461659762909573687380366418383594898423553666130410529043372805385505052647399459096331239044970107213460033106643648345137782861460089375878355545622817615103687175262583239914747971743050457928994113417684571628157802456552873809401398027290526003662847594811780216340051285953396999595401556012126631698211365465119985082314991085789449999180657088459452594375033484250212456952643026505971435675236381716637125058853505250753306785108083614230563708596061687365037350842672379905710373981052767127688282824635529832432048289125322147111992570560795017556256329520787829826689430738481938839080331352412794307779328097772060568843771264139269887196372315933274157502502153318923182660068326554664224264926697562211925830574594161946594433767316039084428074879577557912499342049551084096389340059173869058361198296167456344692222502856681339929435062663582615979706063761934590271475345507882942126282629398657464927080639714525315511022663982330515502238031049823674758911023887097310173487266819409151384723621068923614085830576524073798435142025081625281417930965309516924159211625514534427457939975729875727088542616664878249280617617132353023863546259891799095463249841962262186561542982447421708224158100701219018329981848906894514772373166561978850526709827469861851097173672120790867446408844593838059175223020314648438879277514722786906862738888706133151725526041492128073008917201419228714419098422109156613895016254733370248836367675934603579324751917093227191477355319983798727312005144230529973124224991977172145948110053008920286149018323516870174132072296485969215285948816038955203345763663528557415971601861420657109635694395020751275901689481709921000942934126292350435030043328078301893293936099857560745075218515069007479761446309480622059854180492046482446072400056042577028896822892418564634853716489286736005143477339549210123679423312672081906167572295897365321406958641733250974861147017531606825527102805556537848261518907682170583341396485100128783622741636192977470873908611619996536740414537968086997757690327213330097463824579197857103568930883889002816421664438656032404412396587575286787580731077546285455944900587919580896938968870014818669177721087772766325675832863292168521401674238476542369674750702701622520677096734555274625462721771759509844169597850698350202565378092052063138660985088032036088460580429272779058105788179987870940164343889085907012099194796555468501650983100314419755916252546005879181119380104126223062569845004753802486274548234912429315811570249174852055942497453393332323141927640568433744236811067618185264284017558201370811393420699157414136079012483226079243486618868287385755833635461600881274805422158442458227279818923972658100700194745310049523351871987878808680688446256112613664577634428516242037771585378944217697169627684028464869635062429623332140413776905061020246247742521971624221280998254729818133005389051562561506613968223847586261718091657793065110475271716180359331713588190580863002181859010372026174560951995297585891700456627731079570033373302461084755864802812489270583063886112017594245412402274078021840520220089295581524999061907604027927975845618253789786611543513698608783792885210517534710435449658066297129891629547644465810609558863514615199190082662860908111179124366797469880882198889986787381646951968645233627894142662722445066083348096598373943878394440457099010914240086816811075506666903209618034410803757767673770974711078996500036518617869771663109202832812414484040493196575157610851247992692036472070279267930556864082318250163649086026836114262677159588426712480393280104030091000352515558140734766546944624724738600788061845931230491332282338517772579518933364296794796078084198364125718513544083571076100776405531755163973811845416158725351940119308610050527140979465616178485884526211837084447610483802785811196049985932925804695151530743686034786625696853582659432461336095898248252427372720032828411023542550402744753464865918605125530646024109829921134421910414395907386818458857576914118055929772080998974967545576104572997676808619570612624815537476491971119624476117297358555015565256236387710474799426974252284381640338646912874697943745213667641542036341385739596645159138248253638928306676079172581760814371161267260971185610854884165023898172511731541770762068197997547548864769417219054045502633967124873348203744942878409955413920150479222656042609003658970034553179291335321153958878580108547795760602945089026307420994450137777676650719049032194863666603704430686314254023953163462885461843901121907708092258827844065277788250589539228203307495991720030865604676080782700964369683326317480980256343668586157899919594811791060005351160818063515409185695098049420909569434518550855931715116781819068108519601593029115436967649281843736698950701928158127954968726712877431277870259203520875373593147989484763170887550067521433755544546285739170124438972479322109518190206723991860471430533912242715784640246536951536558287296313107730315556137978834735965378788029017572529770645268253144455743626060753874736802976240634271017023455003609374228738970526166204489355021993978944651003663296539488613771054415074854403783192236077160104992178498684721013523028574740347246170589166227510352585961205486305773526801970248715172369446425875417348567901539892414603211283005802803627259278450185418060052791003292148825947475418077755275952316010355618725430096375306234903587813614593770190263116581535418611126884278109676561215705941499561022324400377188298450741090316946567145198831271751363011464448869105796896220637721084359059045248331187241540849979455807210398438676764203341793253115223874337095291341626245821211914973401824099210114731763985426061975068748802817011279044751841680483275768832976524828228466564023297285837582918887774517226233571575706484360272263939315852402180318689882176781566457014594057105158613896541498879230557837272394721751307795690352515023349580117360680970122629083028173081192056770005022886088834560944697049963345330581737027677269467622855959031170609710012685751594967697980123166645187652983988541792223314797404419786629339530229997629608131244323458530846321737545323055512870634878893607983178066807412379326455551559371246650863199998279185039536607267235534455144954846260747534414855345562200257323753040488002247535151301895803728900446064221503084989225241056477121626767063362715437680278539625376852948491240531134441116058315521046084872721949936232674655643471155305104034114277349891271069684149061534643223376291100188926180395879131870714941959308090986751093576230571652930033518167261600904396467617783334752743881978837375764105452679055314592679577840591845864415810590109387750386900423419914093207901323902954897836794752042178179185441811558445266773950585762897313531977482775249248720370760283499770138135359870819209847276260310105716234362694524818266718107459451757662024705403302503684004138612787244928703617302277606776307948060195940827641960112586333910409567144816457545291614270452740064850307107858789259745177447507016404084106757258000716595941847841192155612480371135959354025723606119091550345341230385421631529489333643595217772013667792188420614143824182478547919612269827548118021668728233452512955838297621418284230531259706540399351301587893394981271673818178379531698864639512772410540159125629047550397536151674965145228633791227908473695978110545024156793407527557311162720789558760122052704983477644338282766980723763592225995803987453769967846607601668498118107183880726956703733998280253304801224182765541411430852735108267272221129464306623629771066963027530573255293192138393221528340702242825133668690868906110277736231745852288503985274751711879253061665365531087478294043006405422983093051893679826716562023014241203957164531353997927127085510362713003235578390160729871803253844438134757240841990455192124829012405809668699520063264103894751961591660718701435370780882243458844061254175228567222335070419870354132962527948734794119199513478828535304864616142919630378574232047407235700703132178365664058858815248000070448883689309187372510930376118464773717237057349090185871778776300838932512962115613453445137402052441355953578416122672254898391451620632817897758636889724904751443495683670762589153324442007340759490883319694563098899419472332197525070288404068670308286083040331962102956078418775368248722991260567171792571176112418571243911579611284628938631844692656462076482756594198649611996279451906783741475843219496667000703360288220882385802667727119854985647891725703307685548643420260999011860801993450562701307324528625990493545177285672157468833831705472848414240135627005786575112887954323023626912277398619601940955926217724370637517899785211308842931710591797572931039442096925198433440972944296083265442977354568368537780448903001904403672036030902183288117660103859590626438298670223106006377575886496565068253934037533733896139184480062738530951203188284712327347979800302534733814077682971965344637683932030455330970785927074694346531852356812994011878838386305152572831482730595994467796467335866325257567523446408046696656835884923418708042346103279205435620063151603533318485516751431055747428323629140317717405775554988603355589585875810668340513304528516547327643774531033051424734604293988899239948348107511829061755354682131378937967712574093399731046630196264374405395827751755415653318668236884145521852570077467910634225405267048483677913707506264685505860621258346729999472581598377423698946047057617378553457610758817406258528524487269868312003386090873070704041928176357267251783390549346236280510126049264032181175097974821007317157133313179495316595937984836866690742442113898868409649839189756236678266255069667910573094279669399903901991100973750761687125206011197686269769392223211573035850545256498595702447540555983931359362107177969043948821292350984589204883325587071371181103341510486494634769814292458814692133164726473528559090234977125470247232148024375203929449398978955254538604359848827650615978168247155426105819143162517087720516349650130803044545681930263023139481020268274058291024248351039120256809525369370268563437682413736447997828055087814578331456642144599667868414297060077016405407649011127735670313683976407194985885963078142783856710649789481375771799585151579623608363571803171814338006805068056781718098599566277785074368369554227852124026283994141764184453602099556610893493578508468082097567160192637076861667728612840378408337467008462915611205200766073373398730484432122636932854054648869409640554761112530936597448143466092674828952011877481955896842480576520711189248116402731853318427616308513556428652482293866218824859915734811919547490010083764580453169694908851093437904085721341836333417644492711043406070527012363345803405409639540609388517100676198128013414872396883584859175085489902128023931042392981887905990111424928461788749286899209336470531365539974910712527069392062504175214842424814397705605858479228615704846276367593419723908488240631562163800910909943261069197022943821261203603639847705167752634952992437815587909109208282630287278825831714121191303434605306755842449828088194088101245502976134534902946443416965991227024824934468250847301750587955535874677935578518563742464151946357683518532439148392788332785912661212218998208074977932797053500589218102825388017618029111809692019705869066324921358474709826671748525985202337997755724902074399045570796134877377045570573540449276143745629576943323660351466745602148527233000175151496672041259669085231308682225720484916295944336584734500221976757047405114438435719091786172493218902679427940916474471101952145208667815556249868099660808692793524074288766545749755265131228743947354428623498917077028541116761784583295453347066408695195245809676640772158325678430324993469243490538943469045992526561181324250686071252768304894152302216452342052510795332276847079676229418545284166390738951045564149261446266143119408575254086105919418021650333278632786356964938483280502898839887970561432005917492181923616374464541624532141386501839494091249707314686535341758923010022769444366640234418061488089546334941781624796766814081136952961902125884742433942592370549251003174966110311297175659136961756095142133715338278881610024265006555259083100756351430689129121668333138034486485656107607281128916724747367988582822547116523824896804051164767472853226179271068192859784720638875304382634346977181167918368948328744309781380577007805109001845763607104628419871212500076355415858471713645339147251851594067509790110641346523265644950590516057396486440705408226644617807937196669402181583075645534768799510695956678556337428974213683506042477569720957863662894457652535075892364772749263533451851724228799493719429978286047301271017401258807150784876207322075770202062552129085112726191667663815543884233140339191213301345550888701452500472699382036416797048138493297560065361932671582447226388514602019846915276357989022813949455877370537333819811649007108588279490476404116863772452052526103448643811517046170151125224492276429617659200848743145681542333591943708414615203669657014545136279617130621635930463493169337986850087928479298094164632947082931470874694687134894293393264567455385419494214049083531581942900430782547604092758292531861110648659340259375209171459777778715746189759853807866724127389985482572355597584443413149991689300284718685856241987578855297206322616297821730714981785140641942699127628769549297530662676941859338818309812889976530113996815535431264545769236475102386936625926525363191386907170480941763196939683625544374467013994112376305710533705616189286252485876545295694894254268148437269757062238459073737910436002271811207225156484104312950402283387044954110919974734134537294080811073892718184265796062292764956971496554771077030473320403771558700550153944027541400611594466639416469302712273637532931927700547283308307166587066152259232741541349397785497486493463707025145135693450715181574627249081772099580296600099822767739214300820090278959490996967712009599270674070169964351514461171772462135651827370540126240479394988347655490270744822218061824576833420428799887036569035451327935997523105918450398970536062145255154126638766333181505870983808996337076960175247670600639694173501187911237133804385855590407907801526300548541740012864377257425305131930261909235568779580614154569056344496035669477732838286380257301695694508247256937191057229185560678514723836167664320982774750333420060262542323489453751139180164475706579275999073504681357960871940677705808044195686376422613328261397028193737447999222314339793282739235536056688780059415380966061779779713787453311387809832001126708619504605784355738035113306750404367331223165962850108555442094010882739251467226770159087646515740724857683194878454499651527093369168989239687029896689851533565330592212380013046197575012920130036533476999357621083970881398944600832220766216807241626741280602237111645946231050201777034000351123166638114569283223073774380052453268992279633100143230299903653217221609762521265590179923405027376725210764477812203540351352034979278093172590414533986123305360330295048743689310393369588155129049568750647288771670064196503245277903816316757471831025869917096026278832298240955836583524046184237674824768563009817561703437488616972482726496765040683914403010536978760143417350417049328204646987554304415166913879053391825874432448553437102131804448100919122168092629075040461770143801396033357154506599684306299771601753723315243858872682755120346769533474285966876393331420438938953761649823000052442010997108107897380309821607642782392675601513311648364999518796940481643068988859597966943628774568393066450515189546859007215284732841894331580798175070295281215485000335162205900398277984772230370556704087938287454146293505475894479732175046797309276380308209732387741063110651205241236321920627794447097841372081770374149831700665444697855062565323642691122736217883332677563360522353459869088867216942413403030505235278801320294999547544782641805719707233477092436665472532147346353335898565237236801451814075266444405896063703497033182335078245589432201018327523309561194101637415148725785047181669640818726103447423151019101947217933524033857924530188338994911663516543464912252543939530877991693079461036909523333385834101847555174713089684861289267288634344836642771548227681918246130929810435689320661490633887595074129743379394585105396237528269623712936003453769644260344421686602688410969914752775571672912100166182441104203611067607940806395963406357285320450846439989571824034727684221941617606490433546488542964151869301636360249130966737702134612896554158282897184867933990471181219879446027280096043355485314405616296948364268927984240615256764221795361321793845685010943719479106759283454368192437016914463231027808201247659423609780065392052753847945204991177404179786303730393561455281761479216578532479952025670162685822372167908200770249433934626030019699499831250176244497304677106725221819282044627214393036806392371150232808753028158460007898736566974416718344964699083031249151477641759599787558143219294815972410254940261732545534948079842499976556736660521129760136450612151445760707814588556093867225544439760072655586632352999788734311374136049943538832772782116453709580770224169712305196196241074442334989118787734901457813246170628778061703459841158500176830481099351369917629471418299471369287546688069925323404734870967604232666327927717445259157826637952260717964676887971888197892448759629474660785263512942202383130891941667732391521871840665466901773001299435521524092062569625870951502357217613194766985804056985110333855929037669987089700851106939409186313929578469062995928622058965767878869881521671769689363372308572844271689032791906707245022370228893789680233165153959035813814708321551125084485646092310872057241823931239547888036902792832559790366944561295088756009078591642490024867740096959414570604517886926839982823755904650627841662972829256553887025448487207024282548219217118512439335694415385378587514232684789679039268332682707792962431936368651339632005832674271161346599881552209800605572207148081805515494172327029137892653100001574209944610434568113929306638659589348110599449334105192457950974499354985347802787099952903850893729682124765178706586845443853679135549032275514402610674832420213403519121334835898643073557928662600519933270740306226479793607840429891727337147522603729643836800515842398801261240821493265507608782170434321545829295115054042168858937083780621018469731997207800344605691722477595494765562869827477129857772281695332585585508095944302614124654226757280126808921453940816631349574205358572038882932065991948169763745486693524653429910679140610771481722648011402919669081723464917534431447759346290781702446881480808425737028974586754183367189227798410375059678820325493342286124982440814146615747461184507839247432537156934966687063660955091409196799089099084495766886690382246560688394825348201044354160313977459300379211737466347306859212037090324556238860059511220290852653261118958558089355658156336151358522199895039663181198801681199742203390761116841584068246395141801801381174716478408302935759626052833069496885555696930627439012815669985153279920006256540774260700829144365727579914437170089226210662778362059372439588492165958837697257003186543836735661800016703528824093512514350323450395178589965251663212981658740506652462829309827524158809551685754585279825821013169705908767261082849894297448319256294125516318125760007859563099588258728903088607058345275471002343407266837708091203828722554669422441044251588726409283057454992716126493325521720641754769227092126431255569503542746951211625309819063611194324063821380210053445945949932010233268221945451344184552594103566624155733326792453682096016428155579154953060106384392360675081483960161960682068550463266241685915076119086226250875261154589255847185142968671903500866024269546841130521528935392929206202318731571908629651794320107774298383606386779624000111019086834933693219653669239090524788886277873315439816246856833405754099540216391591265209777317765743305981686576414065924495800176315953024343856712220109624228380741519416068585917847149789902848510582635683953146982825598883989125558816738750241654354396134757758782064660394478334980989326084349413623932366359369533625332307694836486003637426605802218183613469325836955381603654898851126634353172946768077952668532705374193166241657537945891493270680142883068926958476445158260485217601641262253215683032727104678772839154243153551845726697340855873853906572408101061845055923440105358722934955781128832386889087274210175266111915984170900456841529955466658987841088197828827411442112156617257329970903669683369419163540935227412664355972991706963622707722033337396128715788033267591176054951689031091728411093316302801638440561381700822733215933040025932472182662257353722984094510357742187367558129695068180237581100383382589876853078001170463383839728722422820596962603771085962660258113091842748878447315566646646958562514322593515219802097958598772034653617993759636669317526313438701720341003222430246154783921340314993691724264092993549583961717571971068624712536417213003869220856188127943262468273237257426963174961272553974668126729918739687183706379729950272209661368393041449848555336641812837068413622001728557851956666688529764275549760738596529853749450932918008410967269294184722351075302029022743924795606827490672768282391124658562115202702380187571334273730895001069866125048618844222769740784836340253733555691574832275233962331586178462696696068830277206623265531957207186745820875359628428566600910074496214922582004422841332626451250010102970074404690917941584209660024497039735870260438027112104305338649058541451706441387182281826206344385061259920393510380597433018766805283336301183374892166585012068043178328918116201577938791373064585314488899311782686199890131884472975566990176025093093452295188657992253013454829124340428960499049383588152043587769717344934180172449983132808088025702085603124678928558133313506995290352996104582541397239808786393500515627538249539393852294580049008841516721543354333107865529272724881001716612872615729536117971161211540668270560119568717482003739939990766848433626212029462311091582332665174619990372506900719298196545019556519490438789699022577929283166445330351269307905668140377292493540789687361667791728937441956077277333070841459976981380993279347058634201105718030850633717478696277451169195719070171328500233458874122048908532826197205819208107809826668810369127046948701969569244656676279479691036218553342296276861465451190464743046964332332607931401169204585238663718739629340650379126669529099465997623918785270882645879718494535178663712774389567320829162118603387884135507701500806586901209798291866486674560973854626494273643494204516404746233602477835495885961047040375635274258031677145624800357432877470440095688761492695987664507416345714646703873496551319857176997228634779006683185630587514595127507428666642249580105255352296761146747821806239559449540914448439070819414808203975246886412466173809624122473030373223019568831378460004006765549256882416514047708350531390772302062405432737738804952511286101913655586570206129826441896141421859803466917684437254661137410903557277875677768672628502216783471536967664319533672952659990832336721505722949170202674930453631523677920449742930534823049937394717696810338551117671208905236177164973296499102821470225482922976294229897508850390387584800890873184430670954638356849621405892260784016535685582970730490266380189464414071446467952132270241971546566652446778648921902253224536520210344838354430860766525060427513722075286423557207680160069491095186921314545558622734813794905144002428735590775279309949795382843201900698412073466670811214690463677570851100111760882077631953539527539996419589144037863622883713415142675095108613505659637032581875407721364794190839760532814415655841875945629613837800689747314212343646140043744792934148234152812877776427647064489373595257064906214030978916086477761754383451283412026824783455950085586076149281697217528063218044778403639477073393595585985265320917025081664478481360685759352235982349747360617585646894830494688840165709816804250579225307171039866097839141698788405229227640245537045909147820662573430984634550105911195154727460834996927133703411903932542307890673145864080786045798399973425541832707099747114891377102806868956478283588479430871292307116022558022029003959800040002387266952746277109094279237578293397539430242834549364611427669839793798252276015784634388476203708430139122142288439973773109836069414110378050249452259446278767788641040822220637789535634124811603361219639029014212785992801294463464102365023482598622345206716748547482862387877097561071085219782749186839073268577328755569657703104469692403294700723493721560381748747905274548892237250974670737333812159786298599286623160375140967295006250018657717566553564949331742638001345420898181274018668098892572552792053541863839239306971321406959574987065849191391492751414467727116043155433518782078045784080401434791997547413159743096995496195953489330529922870711914136823476253406911170037936467260773301285095488583632142023841116679688094459409454975203321914248337115516474093668951270411659621908420238702313741869970144733337890798060260646789326737018110608802623314577933007289850060754031639449990320671328869030808268562274321246535085992272854158903714021705365791909254455600149757642717700653293416311899212636390976923498621145627889003371590922471305543949831903937536363826270619633737882982825715206200774056634913641383625586352214309430624828224703772269574506722076900378279645126636325383366292420794971767765203127896763318407038106376221477598845752119829478011905642084951392325233797909882395065701463001182816501121677545356443379114102437554401792120456608397625076134404140825354489511163236053436444009342866997721570596273906707677142792471480953420016866954008011424070838470690577778202760208345107671714885147121731926446256727313797435333593906782768467799440501554353345236230082302429757238225105993239710171293088503784949285673443803147554162244993078898308297915955003756092271992256438764303211954279857421926602659244961558541650568814818478472380459459803353689076759366253087679948396386380110467365214687998846761783412241883588748499857542506619444221571295740034746336932741922567240786665703816755710287424220511372633987056769645927451322354875343889336857380315030259708035078957069657845840567402586567626259844228905179887048628743755057151976888674233496328168274807980985018752832274996247701408276804528020390931086241580465267890873061561315481097149953002435753207180240781516946458633237378293953817822415169574668629340211191766567794868758689149177351874308600957033569961278306675177518353538783658892242453715689258862312206104898911118086570794895153549991042377089687050753720144760877927283530231969314883087297786485020981804004743950109811628988491268865883540181165678319687374865337273881627231931149070662961690280895708062190274614727422621744716272994618703266306725155512759124692366773146431533120101835368551079431506293862322944502773526723038180066103691984199909787225688194299595578970500509020325163118746719791998135148332276986656213016566720488634093204784089231593051817901180613209781615103599870711158829052360006601215228383082811506984303487397804996887778634759849630892277486282921864251819164019536431594428704666014655604938090246727396370390509641047925498282536823061481502629709080527893239675702086204738554704369834395007511813972768575846724359766773111302080350585429452743329472488980229355209043572742531027516813828963931074669943629374234382829058682882772422311296543947024170146861890496697948871159026255246782290288265091677910047257573825192481412685689952495301744204275227054323907576967180536415673279841582672305801749728089041327656073365072065431786785761735611965985348772044136485061243474409653114312541777952034208368082897701159228727630501550353280510531560340758082985070216350904333800698041304526744831939861556439438676190763763725984403583494180158436675572206344247179127655959683506927786501321898061884132598833401524261090948514997915087033932621135830331612275443719180395368962856543180563269304397721919196924986963944186986549855802492661019835801886992629697194241068314505146997034810128265159350490285519345964703006356017168603073027716718805214214126568130544107492072695759501033520508733359006051886713241538127002335083103135813550735933317241909819361537529815719707796668733746800651266811582867809416223685155586416510301428552837094312033502253609605728600872973310856650415321298991055674910079950061124370994256397016592827699398543332045774746476656440146347496969954450615617801521513624494230613361722292638718360764794983842253131289017093955782598809423247524922323343509737557633035407681110088095626217777367207545698313530643970333541145404868013713245387023663949409682973504600713354157432689679180981374300538794457726870338456224585292774047256105830021218002775678660241648663427321698147570409584358722812842503167349634599309615277660708793492686868286951540764742305227098997521077968749780164268935123799394152272255674648802254041398397193465060189841565300159963640518425431858942330286949931421434713202286994097923235064865713847991315218156680772102673095013585286173503239501086418364485350265968132300242977723194182213834820955352633531750532953163513752957644040675830569950058565272601752368653575131746725374629651735166769953184350319440717192789508180871969483251643370417817885923258578362568635887426427641861765734514884381916117979877920309668859903451991381891655219566011931187681492026101722822737250333520385837438713751769032611272269717543980802044045867437656823235634850606913852529297853354965139883974608148908033637039126466262299128638849869620874296939231783486352451053526119559621691465124759689862879625900045075687719364041265659067050652882542658449342691585710480712155108324488242998816299991950885122764486809646911499833427586883997404598242750243014123634732010618339912195143642800452781542143482487124264426160653944255870156644496095488312518899195376308843855839786624077256881016585316765153016174899241891588695262578060446690997348208948122922120904544749405916254383577586573383264864882692448492824739114202308617070310079660489455463044615238998756010586846644894866847071058726946954621730347450612384718895063369759730400322498587640070744800924302834330298690007674612592275719839092015119320499927495352473854764538505392704583427567877656105454361556285097295386758400726485488748702816797529945271548960485323256844872963418137476544347773119807667505662295439137771367018963328717836049091156629716686818183982547046224599365988368606981823238140572826188565912235674343325081335398035053145649508905300792454092084592448977815715719760070850240581300541189730819868891555582755661976846096412284563637925717915536890028603869862447349281206993483562487395810336453874668946356925736809923734723396050148922768070132633839020920851283907123277360790589110380373282659220592754132582229729112580224462702682732167096851726237690754803932563412457738259920120135330409977380470682317791616384682017768954104339104074737636430332109702150337923056768531676075623744803857424591036981251883195317399538944539122551336660083810140721405188414984480954888949515836003632672642296349267306840264243728648437640351487417049570031606554688377954821397278418878074976146133256179109082244941920181027091903896150854003060440554980584161873104147239634547088759148530236996947030718220933604444280065947839426603798381468104857085008382193640237128577552928709283450549189381739964833998064899000781956829291486760818284806782093609949839383045854913904565753784782081007057822443409970229471687531990251700779781160863452867731773850876732536731602316972803268241170186700554122003262127060409527108751417462075227833369094173730654833262438434964610104565503836194318064827084132635110648871345431866197263790163344031437607761406927080810158002867656844402825042858606416984540812711842024552641808272271426641402663832040060061041782614374986581127214616608371661472100111970051123075463023540676038924391641070379264139043862901123481253538424327687198717668638629790741598447316342042305711062633211886650137494166881821111146320924674218194392556322298264844534796803134275571947510378408460800940203474948141690532457957559561207345833096281244140569719077524466056086054351648280956031239731704420052063308723377928807033013600236767005221911443107404765486271865325188818705678718424222495230905661291791093435463539115720210986133373920564355938520396075487293637724040529805049957123869153021127000859719117847940870221730094420098548752099091740355580269186133737990695684456429533297074400653910841404386017611269595950309073384917278578050640378520388645542261333662179707562597584694078429117867449046355680605397051789297514865428316172340057792689607039808377413896027579327683512714980549651509273638601747221328699696631906152341194516636798468608891544409245380523713218935882356505307120399247628882480727630271217349539961212405725332330642341813465792701935809539439646614354045341784570132181396803441493162275383691551568125287180704355142545789776325900413288206257688564195252704471119814669002169197095095077403391075499069125122771393336332370756563509660172628067507443239640663639396042438017355466226600430429433631551629536115966507937799123907669123896443463510443138617552861849817342348978069521029284509028135182145113191007396473799439380419119233547976336575094362767026453032043605399894847321526680850694039461625868401242638032938304600074447760035559032720116171351242482399810677108105401252200793288791563258084436910998088750515264962998647468774400586255240273835389747771851700280961175904221889969648127051540510005357829173158402457049306296036971714869376921433630744519288648884166700109324190614044787289431970004391473243172096073330880807160281699686135483763755921983446399973659635601140405806840325226576371383080262848107446913496002935139643038194273268018869487258833448642729455125798055026879968848775277427213189664567411637327837506631858092922087683616309368014585101389302587793024901129761947662822703024353046149035345515616732860174911160594329810567975724441588357825658750018970988141759120882923855430504194552380797418942207825017854898953373452600339465705998807285493757119438999080832679142428980719357118841793207316140732140668596943821070720364809657742386798332202583729090393179421424202452295743015655774308749242296007832035521262819600433477083724250602761447998100902488765320363190123385061095738193314167743057119414049570639661811705514265454225508026793745134595627941339072145326868166322295718218216522009465615066434463717019897045192668405984204587838083596432837180614630828385099616449387764263375308198651012409862962568027859520316205002355756932190912004081629551799050058945320459819622775834506230858734978583837163762366014878263829491052988626623278735379681800414916747086125106961090411740115263297878204722958113247328754639384940073540882205927030687665735556674377685829325367349287550270750161251319745219006540055296393038949190542095385387061729109689084221771281525337226618166425021035822475826965374914908567269137682143404090801412644760811105403333004374932527177640744042845055617388186577928619996003252955066530671285449799148295386127733269503292081303314131571091835471656520796751428591467351031840797534397850841524726951459959135362201576277233261525698583426226770353163226207441690243262110059617551577333178147193171670772297193912595667173198239044988396693916471538140165764004387514022162393803338671662665443403010780615581103813970274586729050212988528314190059458531324515539331768700681830513782034197382203261034690311304084503504950844924388778670714078765186907763673659306850361332358887493235960055389077167877645100271366890165464589799677587680831965660369657216623346618943262744896811454878737685290045197980248273513218166527795610014207136605383393724708227458444915599770232414010312076517892429239803214744460247820464111366521761864745958869185418220988962013452568121673076275561335549229876403687445766393256453755729370292017710940558601150135871832458319793771379397721956309015486429287234968597197153520648788624234874093592636197404769966875335483561462918855414730671045200744602428376056645652908224658025256519205195519251921621941080048879186643655627858218390484677448106767515314983003329437309982973791817870563432333515297383391730409755603685453420833316073046944849956455347224758109080479293909518402318043167967558447565391533901383428783804179152107476084476199801610015763400040294722615107408632972275586530204520876844367940427068773943702124572835491960584187445465505400194382645649842830218230763411177547516351349013608123688643346038214556708493367368511882728924631510537764043516340895142369087623842950131074772163818460686528490579379186481387423725583605840927208805674050101342611240103939385152774560720517477181673146114604921540607712224044174938482210685126028511087731238657698272036129057380342511801071801211279097607686094171442853220845507538374718280267636111160357383538454759020377757772705231958669072752995057070013014349155897271087762574128264510577087866584747090124330576612159336883047674894162830581506221086359378579850386109460705988521791428047666417872431988638840248625993688796216470115157962190008225239341789478553667408596309018487032112805114108399811600962035614680752289880716904327147853627186871791125474757820144470842928602023978039806878857757918581630900114202686987724534701525490897720337896851844028888774580578829831535161929042649370436229219094249876845391831153990061553188072754285917894499519529943425103515988205879273292468476272783223202823218628012764115846940959077454933718621427493249010242948157341565809920903973614393998500389637786671502454159640526909984593070480135889607509687280414399995589211562656082707972824954560070047563151116458241566183928159596308735658270530855215060899001374653630307478250743070817908075232825826249320989393184153777096796568606795045699739350318887047794553809760628569533406616744285997029504963404765479755698764846283596346099650463656556938953204061596296615408171168716432413648478585312320330803766253897333848919535899503571799881996131315148105594910060951843319141438786811305434504143623198336266439857703338217114581713489305331955104975876681895942527487631737313569160499043167748175343430913834030405217761134390684092007180854928064048883202673657745857585342221527671418784476944825749330108299500292581049360592860861268354024953613042908824939061930451717294653733783502486385756708436241835487767769880364155900193021374741869326478767291940827850116856260136124606038578938761097627517045981012240369561978677247775068858695068400754813961627367690399016511075476289086534272521922034067502649083438676745382678587783764930270812964662280129290202346203633692981603159802416580421427088532152856285533408060984292052094426593617635296404003506972261570155414967282940736843470074032303350599452093575874305177910335991939153387792574147669679622678412099463631636709788375620663970276610387429653835050164840441147459155183013158183803965271482384752205222445494202486735481335699967413906751929936155430109873477144508023631553555627699957465785668015704519018239891433456442853712634607117600638634442340889701900337903542985324994840879763671044171093203872321135135657386913178450467563641387623974314557782438280595149235543847442025009417183662764938873087767163028277708506301456723890246736938186188475058937669001685988610688492530735170075720741399413904597576265446054067294055808311249291262768982522919114086037627165327346432043290671691481186681823627275411392297524337618477710801645185229525914889268593234741060754115295767133191998502862875125112406774536128654974279285912790646568828749406096088727398829106887421376114846903777041567327170247517470868874902102818265018673779227071441362965546344397356623697465123898248354750843669379422278416763302597815083568865248465581489921720252828654397632764479454604278751830869753530767491289400894746557907281705869668771125683302521952596187924181350477106445406132417131830023579919517680033052988480570069536289407915531102113417441719868613105894604670548039005134761689809312333965449933766582959443294144873456095305115573566947928648653772275487203119090600347215593391730839345007083888754035774317377067230003590038822826318986985083845816679796184069726468388802027523765213596053286667264493089705278854130712248469365385314515805765006522020939161926131336149263691599769494578751161565097978756439736735891465926573209132844153806346834311886453790305341654665900013444330763497542690340313707056037173535057462544044676720089143596215154006681115472325403612506577680951213138991225746335225117764579933257651884655233204236650263554827054723164739803906733069887416005215063302677989878784782431881239509184052897032544358966751372794795376755937021100749484874016091387753326858693554503542474413593457105659086836272091470744597471549899124999643557105021594842483681808344362688229057713544288868076052517458873617830179423873622383670096516554677560629866706655990446119302149947129931009903496912265206923217884451675844058355370907987223826294752309869153499124956373633149982627205866496357719384593442766696315843029771783064648540869715166676601913613257590396304562073777586481152952560720350346639521793411145395709369354953270087252741644123047437088423516193728876604242576521097502666303810362471967167882635919510203256327637213582601912685051571666531320664827467393975515194917171320658217267933657420704805610072439502624986027430055307948701345478469994595778709390383746330144573787138516549668069910038439425049683908739703011445045308684753370408822140196778652450009143417430094582239660667375570140202083968197000441378931814602083322943302964837146307096572425297546337867816487310415979237740304056907951690604412881514648766440387165598923492368448323479687376461106969550360706988542208013770508975805191851374352693929691503206510314611771476402006753468106964437624098333885138673133487041923560568409436343114264188029357286032661618785183774350379229963160017388304056739569218392881107312964668882724491456473526166679915819017171179085658531085504666024836462444946115766494398393417613620349535575420528237806586439416886369176283278160656423857273944774427768238220845408270209392630766391839964611478078090038397640048854121086322274936082826817386510659270748586120948928829755466069004863555877079555324489439464375812252648532732576348922591329070148878400324050965411189230673488793872812220899902411841524687154895802483515509988454586984794846585796560445292366509471544601928601358221007621350519258104175746902654112862168030414348724493213780398689414837669056093579432273601570672370350358004817338870185677078222878384630773833201513905897941130806126666792157592040558156455912659547077506541396763418033985680372913270668828751189575440702040896854634801303368242340708324450622845039150862743177404324611151615512123613845328361133372507287352362370961187778727333135729804227555717322306689283848295148040384828929444947839662169586496468652500294522609896166556344190314247478378170958541203158120432124413399866347070898970609622295030161632112074876881132392396108627392018877135086758146137683447727719736921477162244257890165889918986735064418048134869028453864758113442850158152297595771598274024261356240411987949881554294226027358726918828200505393560860647673535332107357173547649564947782228667501561398106456020207722027405343912788452092494163597441576083764687893861239083856535980444512029008996912041532535561295347654260156932820701205022651532572737994903448428871013032270668143062004792139556567304047845843554871714771377347340052391688391531696680027882264557471179675602748481148651023178409052097406302441669662039618556074817482664661384042956173819197562251593797879796713743979874742888049357113065272730275066003126049648455996124935991862308038947023655146684159623041013915792486772369979196280229731642124319452092874499035151739959097765531577756981500605332724831970318528056357609963129833414241945385785923588493827817190608146971004895827071194260153227005493543122721983592563292770347796436178608702583148777357912097251855959167637422653475514276029813811649944743840734655822899810526677536608464330207307184512794040451155944284907617645439296116648170964404138002936855730061358707501745620780079648880665198602674999517443405333925546230558145766639016161470758701582680632155889633721204232766769681785136535149837380401642627122412909713889361700530255235549451898223475603008014028407627737296062714466689232563552021102285249407758297466452802783938041885777842817083992612986867759269790353314839990496119688294114505333245093135187076850805339060460237458454520628069353797578602517587921122218696822198078938203570447537507111171203974468924472717661981743918979451839844329376193523976194512061367239816168471521931494136288911380306972379412696763338888946402553847535740721775645300787873810623010535193597646679313077102764162629305122742909887189498865111649720457563867861872955162962128331584321848948028106840786040349915340371752171199869297524314639224034741663312943151811477742531208272383508705020840308983365583369315507559522940452375012570285513728323895027098170333762669096729136225041921720173122106771555664471919166070198899324895519225744105694404637799045515288960411413148687857867987030156708696742020638097844720085296910645856867454284798005209125567122869654567427848487089677882383805071317443195542419308291460496409751672078581082469895492895613998254758327981262706798028394206368573713663604637508501656938535951604913449914881763899060519851242220661576590323647327388597872683897735244548396082813360424940902195849673784887842819968556837041749127401435642557043321739035525189911748403800746238567657314190036617148426358146509523694473216930870320593472339572614931072765435776063334663135322432060558704136689317213559496838534366795919868943319155294099187839415251345412203868103969625977014237374226652599407879293253111497269093587953010749768032107656287625656069838855310645116683676798888737995452621937759730077803689135335321424134952990759448864742468006322677324867075472747974624767813644297791362201126129245477023698112533926243191874717552054783308465101481302232166482066636980579052515314735843407776533314058822817092416778592831207251712105118384834140623478903977139094090426602045685649492825466374130060919222671206496631851380495839704192470766763989397635729657227104514063995784017945197667321865023532412278617075652302905172655507873507305352434340749750266814740268802785720484740093375154243284538569568785974879457894188350859810382456174274162847987511840234950048881992528700365197009517404961743733563026172173133521955181651739845635944433707782889005269712696212013491993697959451186640303981509801215884793941092805518605873746927348519076491705890525566550693064977206603905916915494697743581235358536667172126015647524591196002736231611458904933657739992270152289976965230700296732430971315786866916089756590620764314958310355218078923460284978981597923689906913818883793887001679033670690940680216927262746218248291262337425124486551639696654364848951832373928155098310363247984494654376144821035841286616211337981142400040879731150463690941423400873729114799713254858002400597905635413404759502481477157512947581378996623283584536947424037930417147732513346271682036967490683374759941946651715043116158572030178205668717565853955410687380767671313521137735040716336658086950156142330087692143130918125585669653336764153332410428720482487508145584068193276512310328478311455429279175267159972186936272588291999493544693567114567745916970425235531484218750492055747708739986888372006480477617292615548656439376385386219834397590158978070932205548322660778948261249982772266142577977139374163942844467501903106519056083220256553969558212024819990725992819662600701346458771371997490003633033172358984997602891639933083004293257345071262922475286104390564527929234481494717847670691297445611186801508339866759523953921906271959971057924524832342832362027284775725899091893002703876029729355152909609140898970086932147199576261554530641213247588139847616360358575185125191650818640156284274899658066284699011993337442088252250676527533945096276588828843387815471841601123817148564982717237998127174405009229228451408435733909825479864485182563465536494199987779366551686880883849802993937114542410896478124596721087839245731923065381819268078703204633204976758322580374121148441624729105824460720259421579017670823274953390511278554299194717577334184957469906661156738753335700294191625810790220586297325305313783738214954516730708372014230583882606126806086245123909441954970172246246192035232650489717728717818386139383089181093823066615814443460814075453042807711195478987496871807722442282549996077219547907364848040410591272755409796418258184358336232101479184932994158001837552070767040963196697096598385729206423995379257139250589394977607092024816787129873548175551586412662041310092775192257743522477521555946897087728092505113378182424807604709967621206116963923943923593988024202327360878848634447272507310601228372252540317375983970989095924663735316638923999062250668995255186986468134466814677821872650875662791417528773797729614747809712207258264796066716527603495963122998439012882466347895685193210942741575052200765058167248869777009715583489855135444146958910834952077534834320832765347857973809980525434014447718515916935458935704493838588582883363450824735157643984876652637158077074333787525868945044457667646641722200737646119994873227058782789081595535958536941498011218884599578330787119252964483383282626479719380601460985516870504040331915112748885785759531404397315470231893316387184291113134222920447333561152915387433624622855266933313027092408760772008575312541623485735082118337751187538295355307500978362011712200674230587003732848238482509954500431652086818563115910542683992132669248476019371771339540655626835118879980305890471311635639204028251007266641702378528269720479751819827740961503814462418572434018632892824632274749974405866258441814631353763311351062776674224826203363543995152576337775654109123539075941590973168598029420830751293424919777856054454075879052099208604185157202643475672571590983848335169817195524303240961365032820386040845693860436726868035859950618881271344807529789824279190803129845075466383837372086081149941336250949588875398492269888425514724668923963565903891074960566355701205111206566184457401768951357011706222345971506638099408641864913390381482701231020220757161728452675174813223332283428663933066058362042017644619676123966145202619415611165739994793840941619861992766432210003104061085448702418491148390893256425691325181280007214358812789657619321071378967062784789059604622830250147145317842669352433247173106712582385844171085645506950621103798423359807601438106927576155038429855881731665833134780626602428910425611074802840950480236951955060024209911775023726438701489138691124647262632143733926269122508884390517694918934058334225716699792108715081437313126261062633501271214863979537231715703622318774687313117452628582391559462608988315945839173521204750670191776060459836364868776149644843287743951811347434024338952582064420097690630356533723149560800962649444696516585093704646291719192531879317502461640935476510486453735774446289468498841672310164803182784446663857899955161279102839089045676020323309096183952517996974032405857080483492313454608556645949510860969856508082496711570936421557660427934380218658969673629649223860476788742683782457483182202026985363448354214254382550246836669710009254848629982786885287315627671210630761445934760309868416919339960673281974790664059065554730021315379140813873200383057946219457747498259128033489418353546746826552980791717721278808398465358361388655691961083296843244779032485275271364278731058539882112286415517870946192366437200266942388105261660799502217970439039153833491692496367690851466144513904261678500755194938770071737572822612110886958846394331636818203849580812470997395874718343299851187677225754464653263817138324278394777617251583242652850513118378639214727099246876551407677614000033585585416681314656699092170062169986942861475770971256763919529625782554597041910525764806903332019597250207429899001694962375095056262159118237024964014384266861371924479392221777240142984756551137592614233869400736976510293693400776937981264349262681829759625649770063735989517886759658534742110535156088025031530421839899844524078556591426768927635596263808228431694055487446893285908875025064527149736093205417521167268146954412689661432476294596953197406458966423586466971376721407631361141907445049183182946855470690046123621978297681866144828295463551276712060327732050462938923455003710023563881669264794602550368279680048685941598934439817080738335480541412298733762148108547258619262938408389795875219105964034302629416089323447757812156099539720120705756242842899545193190626123639815359650240287306271472013028758659536467335393581975622297113526941540958919645556040897691008527088265567289381210234462304000361775336776500350359839532933429651154877876464761669761604065228582870585798310439080768004245590198481178133810020570507499326380883065925306016477712557967607922347716665442066943203318178885436125885519114357289479055287027480634893390516773169625549903994403842130311908203267344038745735541411184403943952127936476183944338082304445226363499822098780748665532108766519432391886881904808544370603097707441902564574140359516624384154330326212601766078454190879305614826164795151509015090903571271487466944407707047640668763950093196622055041568966699729596944864874370451444772902262525814782595747478612248094158156846061602694599814000562859347944863141324095974537677430420926339057182168735208433463589303066966986100998836718230357822255858048610370672480406983736301126473602140017208270818381858937904095987623805413170554571403759451848546191980981174603021256400315235783736287850719599364335924877765256701241532070995621245749473343803544134554484949884136140281645152839458945146997904826194402602212830332849459082308776142158630666130973439891617798812470161718260347657427010327412630155109614446716647417812827957568157802958761858704494406589522053545449236558663298090249927562817655529518810136567095406696173189596407063036563782015334391980090947350849223853268667470269016847452174762489328879490791241979672750930488190992764756479798198391777735198344211856415936058904643215970615270388517134927702821224120895275128557759493158680129496350133192533490992156151726775262779481069812437399423845588569253457028988341855015926712128335824795101661759848616243336738677685370708277723058271467534747739448723175580178946082857864228190435253078703235246041646628882525037929589091926420425534394001539183957744874531419538421599154626672327264124016668112607581212023970860037239466302642393133595628040545282048703829493448201090732654088040586719500786513265091024850092647529278965980390272999370724677863759367599648447733815063840888619494841057300518411456194780439754381549355378677840271034764347141467924030987552546206738364777781864405686406931006309886728939660150063732118920001620519725343809899787551458503119606693969257233744220033811743302109895132199549159552417556930361658103927960465333315164240795166015797310009049068239518743575743470082518355895375204340157133022088753786381632431031726274576809495922521287676947748487023075893765455825327250700330621390474106366009926521234768522352458000399536083771081403780113961283804005719066914785891232626917587179568456819920070281152229883941452416794366584685039622937873743543009491493726007400088985714088898213939729135327579947553833990480255896249158300618075002899270641822098411331154265916684099104348181629936057697256915488624664924708289209339392684217122095622431813976266378622811663431668062892149748222878367154584273103840032961722042722241982277341429806976929673449448638833670649634998644015865703425891164347403792111804978231311042065562281510911130129318802039122542152398447034417166302265013664224575194706217240212896445978553003927498679848912003624478205659379094102030630114102323997315028675831230438324871795796897946585315302325558240877568851125105626409867239220020058089627571028131386297161816216669829494954539386667557779462725042442492024486579284005094014398671225738588629826082221984029655820673503877425523477185839068424153336261089171902096538481005061279361202018520367436283801368367633497757207228806846338914308662081054001754585918310363229854323472292530614815953774345111273650187439721769216191105004298152885150550719495319362692614120587509568619759578111554565846200200924964241953133826550431630700063184698283414838271201637757026965840766002737762239260508885810978779434257075192117367802436512430245416496378705093640334344469368572486567610216834317472036989868624049378009251020435774481433668336124023337425357943259001557478247537993698483340537909523867930786753529233047313248613571847737204543326472056721821313324500443818163147682056516716507997635956474895558277169925547300013739416665569791711927271631031629624307564623963550038047037594572733868955651991924360085879389449781783266413437500681813203053831226145577546763476532866552589575481176467672281960972413479449388628041395049880758437925195662515883935021248815108232949142013927660084134772436504517753346700517208829327068883297176905975022318520688286200402627419424721437124200599697738576101564383380629321558872309917345308972908061470115544852585318574067990088920089224586588260770691454529185936772119738819170128557566915545346978325262248773712910803655009061514948341737688902126147435006406524678602031230861660758822279426660436851630078561971563973709378174399606446299830655989133042097946035896653188969474226790327924980713911627322182151009222909727342905367859931659460027268844136989153920059665417922123223090952508508520849031862605063645079604656503827715396198989969282863336216765550544582834587932301301550774533208437277562571455301366679405871082929631863571739293050783826690082304835023697122694380000572665949916398686368551026045930376579660856975629054752043422945079368701729478067022878624067588653103390384485380878989574682396795234878016392870579066113003678738173023408787902066000061187082867880314195224923130051106099622007755025799935967894081952257423448235584770065682537861944316391660751189369154561461135668260127290899151866654950986666676970271707170601220032546435668768999289915903178398823161345051373799664707324815895947709839376285610979752252678437976072590612449523915309878089983213121640573364766489367432666782218307558239683062860414362468058640849696984635795667086569347359228333982455308370859041570197695237769542296438401485696404547660526841505526753317608629757502291729047224449796561213614960429447349738112881399659349159733591948910874664729078785108297925853971209589334542060951077436238282584633444130101149361784646143266742182339093601874429456938616942847330408369986574244211458537462573578969379881175682540028054280383072845971720188361323968477583642084116518786420528995733576860518898907318822583094741753964212231112139288914915141620861668183400455088323944008944949560920171933190712042627480797912374257269107412753803171701927511078317716705198167542027319794033308889364814988320860562632346457074182744467915646513040689780493422467195136523900239661154574723672289635629300305414241332461283064061561595115956096467228896013654351521537659746706314609392229254121404613742220196212126975180296311774310079740502952163972038249918403243899121194677102206083995099020599526375342977144344623524169745631210516249968176739780974878815063477408631865480911829368402153978519855947833959849603412723680157014942118353248320171048000598761488889552619325109377744873143012196117376749995497171243542477492160438446579050914964942420497526959988644702475810019355744113497725747828078926062802956264483795336303194135208050068800096988982021144824831292819444240714840632641331565829838420455287575795043378223130477668952705881124317807862930351800710722363593123814377850259308643800404733902960641700697015217499320972845376760902968207436702233866819951161293076824339753930567675105333021525305671469889950651472495058699972239928956815604227952367571428066891598101741023813076649119884027464403040069655129378316269350466907118752744465068606388341509327862561842689583483423011955321126963147314568959329483454774816725818172657067489528233796450830899860566228618014650638259924357731757393875070436000166385876519053028874956730842833732330627611806127797346970257659710949993838314643611826742437919153698590137396469355472969884495663593388799186093632616362397319608324326497435580650258230784717023026492534595748219124067367457375811559526000920183861432780014619117237017915374970324044544391374661756350480909094969364056543256410496468514009782403420251791253373519239736601189152545846960747014599522268340051380472505771377098945819529453389443662879784279958105704874112945378852531671245641773458423192227037012895486306455507655625677982002637877105458514282515117466626716716807889785284450709437707682368985284882694614819571211944463351398291941662434933901451451320286284612947858205168626111129906334495818612458002430102644463387538539151138662591891043773092423044155508002915247719854624818821939339549655516305789482348996903344258195021660472987497102918560728558454387708227721445358661682495695290765018954367960414730843031260726346537069000225430380874548270018731881610889698683779010939152855117140697908116189740148267738528744608990102075989793055859398863868647230701293739206286335989460725047814231634705213709740035162029972153083686144360942645054635295431700640280505475386905724443352865109379073556924432061806160444130645832703181399973199386422815907902494013998613715005853911828278769903316861855323562241443909043893332771520107485939700620900426279266814365561888167132565043031792359065482559008600011240953324150808149174303126011830903802227293937508125279514985589830724291811172945446048484005105223293700499248987940853595993430765139916277959302181983878453720396584985208280311496491736766317364460981308877869594772139780606309052149843647472354733800045522657936923412555519495876557252147374456940784319687658723464988669426100077709485436797128019508563768819592349197051708536592004206581763205805071804698182749887765593823482521808076333799948788263574554657326859169185375529681285121469423370708290940027508789596920388674084454476569661686312495241675951035667398851562995856518864564137147897405505077772906202432972144784887464855551581765537948490620629930525403410744033288582045784236231026780798478995090937946089800335953824145605453614119253657879948544816370377674318376447307981190757859535802244524093342844511362586566935607684249565155843014013205188676128942776392677387872649504282888795393675041604818402216141005836603422380426926757024273151156715781805643521624173607870967480476936136512800564494819580920866097097372035276637703437264274734816982264509675957598441799459801540764918419202358134949366519560669151044218557982225084801786501647298550081201771124206488642768353117075769862600575681605742689013118744642793854884734535554695529144777017019095882050476775887865008174699074933214951360112218909248106989703244466156709274433052969494775173743257068952784430141939454288788794869363411196598225225012086209504900772108872132822422358651615156933928488573160662826962301929079821961833071348233104243477953235022435160461863353789194296122487061655907166765983548598996618744254152392781004487387258279182851753555180891417710671792955305602790031544927544368317826789462557518129358128419776637166862859073231565204132463814430245000548868268166113895248946680617469668704704698315505362223027916308655563485139008070793234567441718676612573631985849545242746764538639641891415735792962219720966451952007360178513941374819252581858131165508763615134546547270780879967441885099193794550243327411820077701147434338210551218304759020269375226463821638642932719924922714230068145517902455140554240781041337087142424181717792950877996542524077100703697148356808600141339750932297492086853964236122741054616107535853337538804823196071689355674670458898453623932818048404693250799213221420779532027686380685792988716901918326959579507231932347994380199874036410610050381954120904087993332050956141441747197421808572696347593222474950007792300291595847824696811906824397526959186254322148173902402362355697893636223828830802334328796653475900217134996873157533076366510469409180442004647988583952654726292419105218830255172765188814644744365233418817137483573329560775536052306970081184292986557257981705805269895521112501336451811435788916655155784533892877371787185383182396346415580376533089249318216600917863436539068427488151167719331960805416669226902622153365693356956437426029560198077220807650614198282063144809040708718618335505718079317218449240746401235736888750183456345591242724779854317908204886458741245912718184372344612995675668167574424886480909072080494133014206981756566448717114230095009795134795404870691036428235606932187750387485779280152750905639161545128293709234353870084520854874823513224437390707745316873946408773287729829576771615775139040397823142709264071826221202436020272406096844064375942785772743109662855840050247530359871275098625982784647623026755090361110785388325418715936549509899333216605497564597839401643150231000512672627412836094278559919008584297346736448649571860791561732545532785165084700748359573990030820518748844948683375988059600398197908340068454951281274822804378692275256842427272402784996357249525042555427288706590090300447440318992315324185283447431250829506636271062583589866796075224707515120992063038995130277567428392680055152929523261718047048544368919920200029510098579893935292467542942976868371829118536421120824793186435942211304170644754478950230540788803482546434972449624466077672408007181820758496861264382315153399048813120089096813171910920925376612347781067577535952705077565333761527357457434313669021898206572844979194950146546646389758573580910898533731979143525549755021124834027056366364164615199297032682280377190510401982209299478681475090337624275239973678591094463299909731891829993581737269691468408007264774456897421615174161933296844182206134887289673496397557199189465581259062743789623039948749617392120766735842095811696631866998545229624636775337798480622354026091007003796508537225685425344239169115752332800509975719220875316624987490639962202825960113161175967367690856445160527344724406407965825787935398480466270816857948144862583169875676312968058848753950326694544911965935558093878681252700318423084167841140601214456966574747607816901630030943059384339940020836993485919656959714596984386533711049641326182560898144755495666930375258362422113723694817558898350668123280838794305211583849750789887459163729743513967546589759611036440355499023628908281119047519675718255245147393445139602392278549270805057497673774419364600468541264218696974759799836698600555589085490296665926926441307511473890726130624469241523237199677746610513942314264325601743236451639590982559148531476184829133489864509506326482493007723726145052460962122068327174923624685338866724995759060923121716218715117659358852116436789581667567364089793144359116959461670204071155990546895444715517944233254040620302973968753203350322126754837332317433245696761445692491794426546791865529736623652994311004492041037492767821364849454765425491726542750588950277504296316123543163909089765730739356966208859020039214767277652843408348418807026045071743902997256124289930651364501845975296708023177263843075440539704576321019597465336759416685342466506596585039097971602376631733149608973524977962629743374537518812032634141216151342901726423924172515217479023944959678158260054031695702853628210993477561331889646520521966816667465317388828513037407788838285810172027341521041901544391734831633496892897029760946861223908397278149466323582142899257465714264110627737185539105953861416866032945485562671127922666710742030453172574009137838846574521229024535242996657073316481110724237681796201806145133241398814611718421068190709523826712346158117496740893044372520287422421512687083887580677171527202074941960894971976606679517633345856028447608780210437403596696127162474374455516997311193449101366406612221196205196774591263722309987380454499984128952134474327440241184848197642619471853116429620597371089025516970842932320246242284601869990089218990968460555980284193192583288274881109747390023310781970973107178689209169286251343596777861646074290032259338340564883126324944924570420089781707041171223947583052131463808284795866912781695737949154603542267265459706338175773102267218936415883059492607729957089093475726109433843494789383851144628572225703356929604989952128773827029722692439159284825264322604106749516258897874737516192525067054850646961932324459718110816001543822880150493954154408345134648265916645270771554881448488381986824461174019375280086779863892653644447434408519133219157136055007678470816757199813328944082793000287471110740946825660042661181062803583292539668805580110190256437219878528361847868513133010568402943180368253646039762645447997175928696360660562930585126045544782713619576224156638145519740346601758789709683334530480598852364773037203696646776907033058987568026529478118730532048005093504420183753892391988010800443457322868491040433565599021487275269764163686620756510474106524665649746502997470234001830166349350645650221754860952616106526820592869759118397705562060475586747286498600070359804071970450884513610153351192797891794868109520534564657545834175528401678943438995219734503285946472827224906461918836622950875843049669340674435200665608193515353535724431983656400897936588483668274676021604891145524754841737798152062261083472128793472755307999557399389739589390620157076379273222910649589358261311261881646983518267772783684138291081933061184914553819529377944529104766931481062361680999734920222686937292395878197585661164530040136099348658531211018002511271790062630840731376233266030043154460941926516792982710452072281360205692504707183967750486157669659430280662408233608472833147290288181249822855012771077653043159399869302928748751523335098922395741457670409424944754252772985193414059371189153262680510885800488771731312875708071366891578054294268121146659526327339193867958259959371941724654333411465776666334540582614642951917223987546022640019311550668705386006818964049522219193802148864750890799814233216059744560907894049254309121229961554183314273826230193968868051562522290892263764224273730075265432119077358233793886933889656317955076357657553437700298242154971716202509291422719857384888341411584680569386580687978738555949053126623486762846426111766252096260479732838776501638713919625363175790433745676098474005908932701606955385638617875244899867874818067740896847751534125140657291607710238621270115586391100873845578615646983599370829434255249318116489474550522012919840433343694105867456647957481333948718521837399294679705547696968957965248721256585077490018838655078667647380202367283916794134805190178800128908594437831574510745276762127261177268321340992866168064862864125649114322187922005096262869412782582093373226032455928397886073778322114615507762737969568954500724937019359807224586177719849945029857420010383192940827071479479757498858695060909237677555366260495121993166288634202443186000986395347509213221018063681025490079408324836556512402853958091372415260825698680846592164353837997864798819245813365749995535682793530016200961994030046022488892126994256796673294635528296869716098076657000585268192151510608200513773074141411521119846206719061492825133841299815539143115441715568277256882736061165036446306384755264693011127258086038680668313991238116486252293028786882393544047114940950685705010085814883329571721803629378661707375236100025649633353876350822478900688467381852545819900774438343347262567705612410690006050132250103488186570976987598350634809951308279141601374824027575039025647755677462749105462472876055152360107494725115672506999952431476545657535963190814148945440958052907797986332280184656155816866197181859523341967800278527422583872642804748599464293305956152584076342714932893970832998500172119223538086648389697399702065460569023635105947584305760249971174479161125925197676561177298154853842973779258172573403167406102417061339209004297458859774584289553029005027762029959024370764038437392861816680167221544991245686431560205664761776459052903765409070042165801275086565636552196463097757395309624074609709518775744565971799684457408102358433130595498275482940577946183510127146444910878664904054631093047904924952950137879855125842279748073998032316282814431829658901618203689278290054698237697574537949060769900100793146214613286504697248584101666781050690159309946551205901489549761507705324614406317985718348326027723765523587809133180940590902345367430704652790386380213700806894660944944640392127651660874358511148924349918390875387322167276268119096103874983773331618513737981470080523172301000519632393512401292051162559462972768165275398170152582638779609571281630574693861461014010793730405040534996628046302020295524336057584820736794811350110789454483140838420813066648564226267460037380099258985905562182582285195501670078963929214770933118587563601736040113072743448741543229426376337538040498661345981428775709213892956965448287865690199028850915099458193946614232614711881824969226867699210911634719791970098884772537569282213878455079468105891897806749950427479829783616073363088369795999561747997270208787020837827040034432699102992838828022061688431149377786013703767263187666496943577178233861262886193074250647114787963073730346120189424962645272104700529734943368251253128973045794900857364770652844293380979846742732903403872755547169092818859172885955516846020255956004714778378652051146515377026956058334515047965137574755180471790815141392458202108121418571290934609354214633592350459550097223056349154009410333526163780758722146937785082564634850941648869855500666019495653080774575726792953113942905606550463858605123000760569348083241749666088457072940013148109225135438571862390557733668806818866450043704491219713496810891758401614454990320352875781460947740066922163962448075608480291976528102661643794796124573892615619452908555481282389146522174943401476634467019876506315000461179857973263160088375130981213156950959253453454020728914579167988553275397209873107555734428324236713101275842982582957947694304582144242581373538973587166223125717211730370563597446116178064288379235185845905509358504807573753670855592651126767058454241428698062965894667127864907486068151634677917719717724831365590978486380164396551318136309541733557699201427862136609051178320912517269643899680326069738816473509894585797807986667265303213700167153241166723888729080815730388529341944755712021699402264712822233931317678257481492554970345999011978994024542222894865665571695816103131260720732141568841078098386270693599933770342630824066780345871195705316251615042133855194231921136396241545105580608040188073483863497311487153364867137112704867348687302667775606538590106492775497994758857526532240463685168800991279924148655088458994771783511512560190041354610562187189428600724573078747282074616385144652240089818666704701089740556631659974352104749818369423922493574391021463614411905192002153561923201824219127150507254065228863847551160800751510500785384867409266168253332530369452444653342211311327854957251382844040932917130543427857403784338419086932966204848939761971503371562889661512980727722410250192774947507751795518065437219471585944444215497034360066066216146914272063412378926996865463182857760593420718345207898027611388227780778977297637351410973388178218043144384883393121508385544131169073665515438733059757070493132169517363817659290136467963630302598990864684588564044787921168951717041029735921350785198856536540517700313633049498905210702154699216002525102034767608171982595585826000098805271535577807211718449996969121280914453186510532530270705472025117893797030956090057984855601326050390601079125903305985834702035365881971254297185485004521089104050495924751619302562583244056470561535056420449064742213286027763007749121690273541102861412758081386307133368600397483497017030176802419518868118632726299996173427113956091617903476230843353271843332026576529012645137913990821862682646220408154930302183208043473339312270945124927909638314949032341015610895825997395544320181632293399288327444699390460216125766430314874993367957210145399634647913722900555132021256960321557829870039874685004266221078738965037708970039395329673022958537538115959537332818668458307670021746702208176500470561162649759063769304839912015858847153207289991521571593339621648177936334952484982682601169682212395126012666757532900459577764464573711843574942243928160575571316833593413137793516225115405808950190313092453030355992013360207958404679268589658120361357147866257757068345826096390639083777066058457517739850207968189373480052434229998890602804137474220215872550141759879243778086608533034507694444701435927008791079641503720623069785047365395912419981279973146428808510732400528124471537659394612785803591697193755246202921452968705798160647395363019918714636011284291194538880378357393511617776238058151310481086223237004517643938504812273354398519703251220202961308081723930234025042453833325147170242199411535086036552148182036205129934042540706494772333689632977883353413389469157871309181118902339397378404031268162707515542588757865208553297471066850437232851991652469449282994184437064098247327299431337363838442791329966915740798788300410560676963539251607515709618826575842605063678123340740763781984350807534813267471664975252632592534860069270155551771167149859882857601672148990782932461799221531513270240921343053492061231972202307926858576651132645856667746260017557517519717278370019025062482093077592645399154784170533670237781498252251875499876512767490200042353809695030164898808499983297654668656851717543112274705734146607147280760992382881710338098218809806393160608398944933614424246396223625627432196519227295808361364301682701735620728698867977029209894509931802908935289962388248767045141861558795651451232805977573499436333450846754815791013716689790955952285271584523996366243913276816425396443991819037196517392458918099675664119804885207170705026084923712398741303166690427105067659870550256717505359452726378399626250479145677288835837699270659640454000654378350545103803391904331827419958256831612591995105157952714821370316322368926128270643906380183483916772487065281031469028105154013439753382080969025312489718140037035921327706266771563632651962894670054453064340611757834828197806702695994338687531359497458056120752589276400377576182947059884024989711703944836413809828764023062329671749492539993833509663190277193686746564650100725948100061984598706477835399660381852508365889992621051370595886170672215073274947221682620571605728490178063278226140361983614364446892188176594254737189020725782551205050983448516579269459715028224084287587540362611149263879841447672556072707609884208587554884193091947313976668198329284255569483434176908601150559509661163115523739918251040807837344260237647208395257776846810443353770015941008144256148706744570949540388508501197081016193391459655805182725992608980784593636996399139185683648843787242577314621613241594666426931691540038900879391378067090492467950557744235676442444519868429278781048074773815336295809968109528584472459711664479388461568140271992803716640968323399046169165421959789013389207086704530525702893395425338510554998797070146345532533609516705628873885830742143309171057849704989789465851131981277041899985889953387587775028893390900375996424313943088877588243649818136449458031394941233431442214372989823933930380652107218201909013772745821614133120285541356579982144084980522785350690583094875292723771346303755695427237051926845136187773113896623696936123946380125262205601728738313887107349865338800102280086776570753416233958096493644954545974236539559453268147322767714236839298891313505283188065720908478108634118142684608701751221442995097831283301584383462501982767671661582674536544601850859686789514131451608415385406116129968067260696924279788830718113987007783965363903983811642311793470739176333705243429934303084320319071237717989739133546448429750463924208514283057556847495606281811518216328072243870594416973141698052227209043718678261517577449609489123944923066566421205003470821093321646967601768328945754213398183540339339609808722697361113403923802076528660700906969655150951152608531757094303419039635611540492352628892613620188157334692754283005023605476514539202405479421989975104769214424098899046289120432768968917237767854360285009036804537150374353924319043931737216718930204471035049901118716184529476025369179591037304879690303995563924369135627612276841088053909421714736108088464833434262815021861266513488901935769953130995021152513095710909569413087672158503146284459707017635755162419223125235108975005124405479402668110213699332891020025808598666625584780876133610874148850073497170157141712325302632705919701941127342496529651376112405078553303504946203138966113482279111891230901242268933821372085920600478544093213370910801827013137374988254901274599642064337162075017772163611010024728993575334638369950123515988048474073234916910206690366840937848547558869751122186812398987525595164627138682017180083650656010676547457021942728406402409609604707280636531224949028070953391794537377010392815209508908093698737040161628927729752757775448270973109067398390708287908424083418725170477551134373665595471169364480000479504620587812932374511272939041521010930015331198301100068044828879905951354177182617359187316239039731564679813126479705679361407617438029230836355604486712988480663771810237892548512807645087462546947531462139779399955119274270395055765298723752883880494851220533917550488167653149177479068284927645304715937643390539280209987408194345868366362282798137341773315472889116394566602672569691539602999246080705120623254110161486868227991417677930033402065224206426979589131888088608034049520662052477871284923366095557799561776883190107354511526096724587772406775285778320265280454408306716179023936557953963707575427275052091573874101930059175266695154258958961519391043083479967308243425562007908621883853613983850188954211987677705723107268842614045522852428004467701970820834026208515822825504459066716726260313835178220495303920821340391889633991270891504185286371012710765161076494019725565166276850365411300023295717889007967618692501270905456646474133644691786261028112654209060271720064938930244077389858523859914899244978163408613797797990410056787845236347176543297820312088947225435152548322199875132647975535589662403104337082598233094336437167291109061376481906693541178100812053855620573778661314748208647987020929675990870596155644637175702582782476669321476393442589129052104110916248240655345761149998230779175949223845553140699942696947126123726743134745043962586459811621186844921963984231234826301118624974019289645604063447083872802199305809032892351175687374182991831162905523637422407524966246209877330558781436683118109935712699667969914389746334181695037265718063082762867861291311540410681826688087664291495170034209305252645567495535503815683218473451354549273105596086853178909510087318262348340685532426672669566734756721820214603676601741188741165793651375070563056669442511091719848573129305460056328753228626775606929451984746488611032876913722823285401363118009091580191968015931111020680173437285268183468192127394771450021114589234233254901899134967782315013206025760543013298070321601803657271364279535139348599159535549191896771317872158542709103342193817437186724588294166783457863250627773901274680313452577704529632213950645560468724447707235359826827998659999908432271351819476397873475293505322999261088844659871333705201957034955658897695981828079279279957612745183427140232085652921875419978954850249356753096076444401422708777499984681415010265171314121178370219920596642341990047296754316640065191295609815434515599647959621644953578991634416770418357308390244417806573456169228213070154564549158836575852438080542988800232809660265062939436086548446755700081706594695805562486384121270414377929602249086361169404272084001429107980836443139435633441571621970035172621924477085543882338663431716122431327696098874704598309323270118090470834344342053925955539186454382273695546478504834812700266470818603773948108202419993289600617384031303642994368194917733543856859322293442936044473895104824219454308987213482449780659380077563186216478865017453111923509977190134288254905726628311227672623942340757240293660920709534927798081263962343193060538415033592856365068119691239153633910543134821417243292928564874840173136826412226698707298679761574552432031522704015918568976921051602686251698814770487525768353626951359849028462983748123736144634324960294062698171724820478028416639756962484038545779602015014908152553933196564011854921830470820180815493318215242368689709630160660954559361821973269554056103017339277731390786080919724459361021517511869580250126127698126862243123949823298597001114421797495490914171352898626623281178696856545806101310171070558978996721174535407103179223646208036997015877533122942424515572611238175152007087905857988407471084329246512595575016216183537065703446112923427000075560575408287048389927831738323552157884856425929934294855905678050054911460254391227662371778804207144886787699657193174393333168012013020571996282774417760167063268302302569247270635969589095815882019791512857687937800246490273641221378807419186931502438015767503363805053569968553802383399813033377962121292232819332528874432624653489205907249852791537126380495299622349868159008563967255203525009880514865205288018411444174908549676896417446133540637412925099462379364712327756176325923558983973610962054549931755482599488158503079048508143787293536811370219367773834151103357917727292747752876335095114938107607793204869894031845804471460852571254348308692613275780553697891507022940383893637823090633946193739102452838219081455642451660156282686488089274717519475919459826641933473290566532437716249532238275601635272716049907093481600208449197159588835982831545016955671436988899103187946300073535105243709692378178599524233258634441577579103049573897881812859291206266699876911590310153940568658103891197724217736599389522931867919583247884731071582554820853593702114032224149757420545594099835942163921372819326158001608105349841174298120426335155059974213479429581559751426635888705481367639572327763981671979607121594414324910494592957558357301521230954543183447098696480598063279579572896916503024899439522617183643726220992558364727806138558084149402402155199173902306879033342068866299760660904237929672649127569049011183616844676034065699416242214050981300034045797549732808405467936969070017301630632253050955995039932713610314653604529172591629338603425391633910091266638465750129078136659774098963006905042120818461036933235551717786186546245034860106699560480316173696044224336572846615963403177421246793901940824648249445529209796903849390320428788563693782074490615161816914066713645518318047651774154412850257927000516477201285582155485762911487180241577769108475947403471805048212782593876907707106961713234920720165353886131604600704886716289404431766074208752446149412743365369681288592373005025282144299287693708935105023394597214282207127207877057298120302064423161631427714402045905927492636525122414468785552170732881783194589824625251075196599791813930679605241053984155309728005831706503121704824320524858975606926073021620814284117223474582664100219147245673265342325056278511789004059840594586142084577372726444119752125819624437501227012782873052218378508571648889526423686094284245286337877349309483259029044028500092490108497561740706201616301479563359725723791909550882850116265882681491269911704127780855952175595148774594870899108314513454147878294092914721433415885670965801228100021675349562724665362436873721485563596720819690227836477939757114655404822584014051871364289049394166865803459418893155630202255248561789006547079580005779689831349573400510007041168029255536850813818388725324755456621366525413965647126840778787433562024318612157260527614003281904269346414423092374271790917177147463394881950063811010741799169982429972086853692345135089261359452364893756735951509502583427819195765136275279786397180584569957557837194814202347448037975120611672674663103933185954042824206526865605682312715356695087249738562468619987944889565223447562229595497270087452065438969903340489089548710433604003683922782971773637261362700939427849747057815562794608402409095139560615016781874340048478579748017134896579546810959406803947818394872576512934545284362183240133319017646347819390488828817535588723157957639443615634753782889679548485526187818068575996273969182152683747695070129271456108085301449024626955844792992161733799785226054313174689850368901794132940448954526844200427383801330261317621441417396166558070582730668066670810870913682392751133371732959795571899671434337193801891799583034318418380800028614308031016874758971697698577890845538163973419865445088018041471163806257081654173386013927545976482068923186185374621671871001929749074533663581605835057863219676480041093965069139560604899207662756077295654574458490740713835802225080850998569293281036965983171137725861079762639795424268135284685272827459733087505583548871034288340568739371516538963166211810944966397588251123499045881313645107547432912277068032677099248988109802004449653077780700029253562111513389371919141205686849054117298342364102149534148726017199850112201454504197187928218747920357590074623412831775103979371996116091554669746440883206735378047367224705229377705550450259991459570345459323985191343258826489244134113918528836231734884483478084460750546691896029674422168834796058936079807279358632136065517202922104081866503825178422307129701017697840686051209509123794551479088447399572601626663189298143632234989644736798641159575272836983610765455602223398595072947994262989549143579794317690838263440192105449602952005191783281897250820021269581366617305349110934179592254323678179110935659738780014381938213861878231568272694331781652906304150993010442154319746219324622227547310006800558335224692692516989919111450916749521571451559640783187555329357011579104231646730309661554653919202049598418505884473379343419066385728358561191990583306827480589975971099330888112092466573770893719725234293030865194791547146925009948376899103851095925529616116208617970036751417638459466015271587115395285978582240139676005020844718549631374000744667705294266720404152037563995993321455627963149326652538676019576656816932402338978406844902279181806364957139246556025259732367650078770150255216224085038875555630688465446896666778901348066287986309283805275472386956641099932576762107526784996005064329419046007687949872129190326199203363950798407608447098383042033534150984759482082366701912135982844658195418894766350904012269201147470099525904765667796930911660452253204499757682067127184645324779946115003327889361313852217359053121848031763421977950058179802422718805521594795180561545979100234759374105599602786892009397281838232239223926028899003774141168366687002078795285115547790282635374359518913481597043166640506520029668749178949901110319458517688100573920627223161352097568449677516033724250199650271000065340193042784681067602527098370937615645845026177887667734601720031360072839565420811985128704469963649085258892179783161036607076768145246193207108684549988177457688728719833457027759410375407684785725719123017066401315013735843533193442481156344642862911643904899121721933150564083032601706181183705828000460512739665320589321002138062827058581180166244299988772871799406263104202974912808041443616062113226907140826171943363640805363800487679262551762565766395328843351007801680761455869315274034842769169958385828087020992524403224721251113905029710396960416193865302617502527599665575308806223448347070645862216784407196660675540767604896212680290313359185481929922493880432533451097720820814729458728593782489856440755248395900840697847708538179882215415838669743129634745415320943505635848143350175578771288100788984716547813158432545715408247760835795773678100561337269596205961834112700380595596255105640488677194988400027714390625892077801160510513910803208664162152196198962639372577987261197862519436914734681493242283007323266636081999915199659888256193427082729031677615973393734249949857891254268196460674207788548102612560458917587077175078875973246863734465965781897097050288238290933916321318030787537728969134463722313837070119416554414928562350347440275895027156986780806713679323423406730834115821180076305863937924639746121719666811500641594437683920787280410602845600711327264757341965098391794354069971078911616578531203904387215723260282983977869071556137311024360048447478534560619977581157782947201320030706043846419902797677071108435956556382425710232975885464472128525989075289073527929008738412290960725975827320678666644804705289846780042307040117203032433413172461536137844799382757309864515198349996689584951905573966563520513897932445282023775630602857255647147988018500659931779824964980771763725159476021801066561068939209032506144243209399453657393552576413283851004749784371859676202852735412178820061004472824069438971723452742246475589684723416302681976740798628755466812324886453407279124169441109341637642053016850482394996059082681139009630621284043125687138310057918481249185632393008342930198532121949389762126156743624888274403735529342823201897239037100101557042306052047341653358101346789192307195151001561534257235712273347161910706036518160839244923121042425874150683724954507675631764220276043343458054783991073031841894156290863258160150553477101311046413618845777227583356081328379471347302069603808394033508602524558391165174471329305048702393996077456433962557716693281877839507555097544627926643648578596847044594708418061466986543466480017083208354681935071060874020768335982169116322315843699509552791697993214384688959884780529406667661909234665997033766631939231289617397049612182738388915724545154742599497664848491805468683926775253539601040090583425364499756106605563793016988558213055443331815646701783552948224473564305877301029556078580616645619788829210147962590919850307974016943579756854941717261458204868445293423234195288008073295585889982316477911316996389152662933168233760700556494133349522520211868735950185078128976586133784942573937938136522807311824481132042692777573518908201573474390538541434679608797814101284491139546875676782539381424782967744824106976995088626402952528071413430918810787868341112151236809694220289440282029551181443043760914222220537207818518547003736405166163461853992249823183934969548456420368288774014120826168510747520763723402310801677309354642041391200159747324951094237197962078356176646481582017913562475620361348507559862143102268510906085468577630859970811237356313869044120582435192068771517254523665813672763577092832652595607672023693043805452013763572226103163450812796310320392514455740807928807080298234396242862497942851257739940875703974702918001462010171898494082786661462087250219975357368345439036269939505843256822600853524720425774607538516840005595134758564741855848971995942366166664065381629119759988147200061110244796757567415870576380455797075730305750443029708368586173232462938434579681419908857564497433396747785230276441024057807463624853517549433725142982736808360609979275416505094406237376731410263613096515498936143805224446281339058276141850325492748954406707908745192274262503088109906176046873651657714043554345048425423459011675446068223132183107274617287529774772387023271609947453283762755465070228148953341603811053001331432631507318926644295624095631926901774973427815861123553512110414338673737106428024228887111230267169974018560030157543886225400811954900224072251006079399574481032300560623898746324143481423285505801684895297343461561801253896644453483608687090101780315280144733351170832940276149807104352406964226758277313229955239532689661996815543117131741155860274871970693949409607646506287026176915781646296124496968582491639572162762704918335326231101513522490997310015282927978057547570430768805372335823825337960348399609525575693719850772889521287286572714008666791251786385556367675943753824987866560471233026991767436561844476492998215511529820948036593810246033493301227601858672581407884099756181320058265674606124030782971204283273924917716213671716806333883964220327328182494885662658169421806470186765333743023744232558973470242320456824369030621752540091420329636348120574925845999506014429286691051827445710355544537238199629993882091581704251538260891336211562698713142765877239875398298873701097289488317521522701898882861056683519550921110485967676425779464526809845412070762593971148079978716072615761587905409855780830158939176533015316092975779795571835228332052173957106406759583456255621817071584446830499671283139065140961268080065463384805232874047155453715415687356166233506739750423988778248772371534641698135639156478892303528223420643872302499528072782419349661158062618769897809182674465413588248859923407430850860406691445281035479041787345958634357970830666258041299988528979113350120672035168834613825882264753777703391142530605178850461013749310101999854339648263525131511133619573049318474131528172734383081637266262598778527518747852560861985014114007870577943967317798502319627783937238811293257235007590366378872758807227753445307452140339535942750524721671468794383557680568655863469287770986424293357012695091224440681890307600937664412297948890890246369419595257175933794217724598826801571489837338918094680224546065945746219703961292040751793226984683480298027063143337672094579277745517841803904940643025229567380346277060214490313512215738035199554045123787539742400477755927433809614182793585294823349737177286038451475482748006637992672742526247938731614583005673450847611349900639931419866228846825079022144554852581556900089928022710497746272849580136087663571305137859757564495798067426898735161986943843145885527161986373520452521321025490176638651256142800127298421787646335601163377547187654009019699825758637912074997291006705972529093684972383021164004162897191564388071934739607083869935275008691130459513950251872579064287155270056836461914133467297919743035209622836856044137033767985658591107545778187373596572067943303896885902146470979753680196927267488349208114841673268718696406249986776705666285848429765320875306672736029767788577543804861990898025733457111020405969706935565691587554234544585235930693868643903837267389775490493150723838278643093949309452724124112526157712732454344730248834637578126560015158846519073683748134851241107107575800834884911373424258020858767046958786493394178542074500944651853972507004141927265134030423975825419058877382490017713825533970603951100603595624550124242834884186354408231107228349017821068356335357971740666955383555355028001827310857532505612479626020094138496752722488255818895811035726154890245512022862043637483877199505209967372516008547631018810558582041618329746651114847473380163355562048808206933631947134299632822782286169385970019794670007280018227981542777711998048494848063348896032201168458221082488143883332926779368059612544123242814511375343981493730239073395732798706006898970996923337438951292743770029455164325273927491140236128180135082032336570986049439292431005119791301450059300003593579733469829601166250071051842944822760504899935264511059867994415567524055219062468434193853641054584000252064728153055573383969385466025911786697843118946028698320310134390558257375685147355187968256489194248943122788525083291963998952729957244572243399382871039020509241295065665366882424585636736793462858775589419825930942792487173647046538577585116130261344953330903943090730866073908079674698475420321263744032260044886537939232708266717918117647574945326879785294237762023556945512514138215218243816151997580160778271120581612137214984184356413707772734063779487516524308191224076539259413592909040878522284338651326426882040180387516615717363746649472641901841116471022797570764621267163953971378715653736289499767776673717542722940486826658838021935967539241072410573246567348784192860492372434960726683588981533639106103955628657775375068981627518056348547666061074779148285872613653212852982191925482238395898429154942174675482778684723772771127949322083944006107801725408032800409882199899190225845736440173622246936341392348819188364841987338571288588060596372580269742443269229222298721425007787208954307517804389074845710557270201251820857733150936222427097098075708915720298147208420062802854989152127990231592050392001301987506852485741910943051717584465106678125381502242586870317411572782548494255721530844845315070191539043763168223678099219200074235384354484385741699253089228147496396876563874762819665891913496407120671478094157522808092609146002303384262384704123281514796257725813191552581694240133743988117093123923916240549415068071197861012868919187510709292915699442812673346014598844593014490192535636778839319455673671592015582287787144775733103808448695330538707281012985626468365447874721515196818629528687763525056267109223396979854409086057109916302203434428722037016156843837625995954338961664383956714128333022121782297554456845463795326636343825302995633332873637192687137977461815000259259731205288354799045294612237218218564811811255697150494515834055321126428820593912864072881914990514301333957495572733410069209701367147286230294163332969820670303420988449562124368139728257307126657571523835316845925278297905760623235114638462038110198750843847760894898468831085508363167483398720043197267206523234483976272453677918018994448922985532116434157410789848320152651685446480640414275306143560668480860905270765985886020122205720803379802767368651155572652429247361602806955461457166972914347038850636239874010853979501061067824781865860456411451582804994433568261564774824425086281043031384051201897381160975526787557904551850960955705703876335849406006177016694133639851020140953300615722542162337669528899632176552063062675184063622328535495005153925402342761046812829542452325711716396112304183542493321009626997070844875591299830094142347271434970898709336537148206178134692411206864568106093810932581657440077320563083642719253671457014384353643426090468303685548169333106811325522996560964692771049649859713138448865259159525789761301208763259621276494953624819515095961181493194486752029136851561929495494268549379519427792878143408426937260933590539297421630841030368341665404683382814872585332881776769803273897823632967551579684214470569860966346872595496875865166572525242900024722279384418345968062243502169998018821579323986506630269011248673005831272422594624026578714990636187038557001170961145241852705325428900154781876105932589160589109755902866062294153956152413027826521000849132928159737982604643073460205175542847749809080193308507626171412306168517982524357638185118123132182996903087237830058753770188513974122369364215677967877343343178467971256377766039851833830713576679384969642508494681856880285340428697105430356141526024502940479820258816399438987457009385302969620989048122761366408588582888470446137398628736576504023262339068516187828702138021693101032984110616471033393807106473864355600054366752100696162656792540583854187294496469962407660582873416879814645768574635265638385322460815186257761675614074510660667254691921372745352062970152058370307572252526242656763921806156857954028317399588077958950273129023538624577209952622731277358550803586849393040556566276259750502901170928964025824584797168544745750566701883824452027258834165832451005844010167691824516159855946472710848720914995454631835633065519948560679933928013822238551726947455672900739676818729795564845723900035298050217876419558239885796594980637909999721720047060282157821567806371781625278915741495794372854105155569078816464330488978287752543300740704636466835165889218903335844600505756301887383301898578133546882788130828661435690925342426690302570009790200130631586500048189239131247933776520035107682543950357560146638488819001014968613642732005573373344848113547444380953036728567655290868986022912566774508135302108153729687377616655571031013834635608466152271725061916158011764246860357599596496239925760316816584978862729810382965412013266132464690096087845845014438917288817567565031097174270589206183158596208408695565708752004368931519976591190362263173230004366044446655792980414665915925083980515211362666703258858288285855235417286035624361180205203286901986530639489856085735368985306063007555894486255938598131612834263027811229963649467616270088009532681308142069574588094669248133847246349584770345810234860275682810740102959106207619249532106406621066035217392821411661562175989319645911158463507069488422994190344343897670145977482915461513794014641854150305858418032835510022058767720709169538884585592551904699572304120299881137361935031724246045503653000277433557496793200326677200447056198346690867990696821706822885788211016696135562257380811204509460887688970255906827113471893215570790784918071958667286436660262700491814582952403841090357339584856074167448827322047640234990171060436583998402639368062244641361836705570920352317086531905455832041404307768024752810156508120082566269345966308055639075949865510491498404228638373265929641901107366512616142752252427900317927505408333612063914489228811284046128026845892685843906967628870096580681220855015030450218760151723129996389694472067019120429920967964661489796820471167827229415958976620200866767946684135501117923284689050604606055600801575244982666349223585191926108354850369889655635551928455481057398788107800287132296998905758418492185406960638705678519010046412676713446729738250681750779708320739908503120392438130648018780805348235726359913131317345167866702473456458982340770573414446679655877360113975497093810649203268122125153401768155531855197602844980877307764144215941374728965689185081316240704819312467467333619658063044433910985493863939632969195898320485810070393119896493482551981652638116354266794841761335835829887732702929877079779918366350573171888157572677147853027751176307578358296523619566836845803998681604353339989900363347814202824135418446724863232590241476310525923478311043028599482596786830687527325621265993923515203705154406473447657934856840225233388168950920770187620439208334406933292867543310329522046532576326385151918445421414384049934402208909447503120155075444993727987937251222536823402722790456340398976529121360455954122093957323933605587877414522630428952547808129887141074783573973225079882891736428302050406719784580642299388801118825907870262184020085862608786871490926480207451536878251964494638996087744952516878771450613367560817307884390262475252924382199814380504213688234022076127156557230485544617142855028497969540655345335936762629529747914829600669949835340319728999187989639562113327883128381413748340654970812722437004821706807436510422133659769558517349859266791397753889049954276921494510435490963392223138416153902904281274289106617407528998388975558926473840023065644914223149331493420519996536056275053475749632261549372392264345942885921923296179434458676829761531267201646226637651939946917880080804548900087406379209456293293364300180914950330825175064674411649608317734731234583894181122226343653156098193861470097221576482124943555346478766849204327515375513076231383952721554378810150222057258184873579957399381087269339553830817127553592014131338808038170542595790868197144034262178572533840480472023497229721243169171400663565944739583046076942636792605366215086985079086579854935658721675040159051442530456421716936224869667613011791887215111962116485549757517860281177511608412257747698729619135913975468738111169200440599914178182549850358485493459827681048327150465391721366089523187002823227979642678074994032380966975980596022338118383137809641000883125259457929248312357289989129084147342569764627198948824006214706485160735000808362676982959865379564059613431674899806587979746911444330582567443797960324253578704901894734862041063616118755792290310033367417872485961709397660519277167984013929496232395741037443833695561444857707043632345809823458461983125423674009143934781602437758151326855809265482867329362741414070905995283118466893850098721215763498541801438865010450666969732074877724973816481918919564201847883331591222196354124594450928310045135844137797291483209387525238623131743410492984778723944382185446747226861986331179673177866470694710602961427332587389955290939941425790273707239096271219257760206195561263477313659996919095417932386545977757049929087380231940208963367984355674566561889228710706529543969090166102609941623863919292833015591746843095371066391250152459803811225238153575677687950393578093423712759635909125932943414003361131332464210194965846546534279620883894002284690483947355085650715209223934219202731304203879235184088311104719617250246766761430521775838789916969133205870903034037080297846214065850933267785997023035432935596659993502734061498438767539019321792513762245194411032341327996216965366731648848149763837141630080116840753566304240726933731956968119211231398085004200474437695069047055586020320653489041300935555859995418619175432011556431360897075561021971285226770960232677433689076334805383092728232029314757077508623115962451952480638775157435518332600684642969415603706324290783490588059407576043888723868284733932016312585669988985764197147697179534355047718706035219824809031881098918786471520551328177032671383364977413823001690780424498985434747256138232949153725053468119877648368690164299082651492124189437654690042884708270521599622555872763696340502944149606283311622735696346312043160487628109188236868286463706014494495575338665508184668684347901252328084874881077538643672256381563157115775505085849756884332651312906684107520177475590227929627697208253614156971114019682429710385428242264391587088540910963966185203184782592543762790278400831066667447836490955221898452719381736609375349843074432159094026822012736987442043499641719649799987920431637567123185178459661073343450139084860236776051984438653469968377566517439689890440188754248450219616499044054332880626117965122167931276871316247882079141518572912071439616766379206451334930743730285252730271357353722882421692634427084574544135346600957308337300337411011097466121698462420006590253000645493433837804778729989354438652213478790678402970063885034794173921327362049744725173744692283270187994924184575409992629708362332540825112444459526765003617130860472025932918074584261791333172648676559996124630922640676112077799653743545843678418592842008613507334648256841345874486551056200319267689150914452803715255035438236247263655405337937740142630666134472887127968238712664602477469630302715294481903277702755117159403065475322917633968936743198175378173723083266516194478704306382265251102054654432341092519326965034385273399286753194995985840478181422593595953396552394872889092588815958033361364927751210283535120914712876865136270825625980686696648357499223351248713388244686640091638031832942499216701195891361596024937976150899177102269761365958875750121363904436229376073972996856699596220368809543845195279182334618836213315574862295509848049700804648143208803718991360968510745697840879332342530420848306748981559235437566759922915621375430580924480091066754097036070768349226550620910154512978993891604996150315121324365358418424336916075163143248725271697579737085448690176362432621044257871193857562311701859284073255760124398727457681574807108630686831226179589447864882949567143379517877934564441852218076423678024548019143480198309235722568358804343874213127765624579954224877455934305204199541709449215214472634238700447513471059349084191045180653056674288851032422252149061948338800929375599580047727424899311732869142493228414749704496986153308003005503124775126570144518233057494804064598414368170767336590847344342261312069216242649470335773339196840363171339642188461385263900321750948719883491163392651968956665873114258995489159920972069731505765663476882116444559950624895642518903932999735519562601096353667996332290872112877100840087250938305854004266030116583607868679912423467152427365351682598442814369339321066223831338090873264823072058522576471166041015258120523604608632014134594694353017491500196079773280310780186085791745621944358561820529798556740968984347446352854704656998017539088116282636320631585853558191300869904839503454521377866274328529872338353556333115297281436999633999902873555553003928370582512031673069858603931781344170025429808846735361049327423685950805625667990324356905174508690882596380866192512101826429317528683674150226601556378132353082214420376814925409525307356932545108924935737600840234694666019219758442077333692899344709844375438425276160445671124875255601282129414634020793670575386584462766292681110318725033140694018526292998919580729427225953123996602769542345293567273898883335247372066358629169936010833276403658392757766882047820256681397609733134653409172374443877668749564097303661619047298726409898410950264700483627375866472420070197325422800817887416546395878563953477028301645875881696974019514013375771086793956847525066675345727201537015706480036844756229256201935609260934403557760067906514828785303311093846785673066117396506738689710236768100150215740766328832106531922508240724779681411671828185143407444737004226067189744380752439209595653545988661295731230802184847399752664250146083166908592464660123878589114199501946431322874558884171959970162894500096163172410811578297834998773810120480570413618082065451523174881892598087035606442077803007404005917643465913557602260484939604069405182278123242186861473670207213568420984530799284606067189759658852151083530653718982118572878797119694065391813907304416801631394840849441275596570470543356665145144860988105029796773047286651338252873714155521004228576468170450185805778820417378872909436367874921828481567957646618833782044178777372652428809049664775088482070914936004743915490043334588811811403228210747225296006856247297821076059513526142188023295806913627641380131908453864102475622084294996571184602013288482168781358479412481969918344377937986765283828327862199097907464800489005144001589258106472634651017424940308245409592054312232952815263002334350817961800919641402423712470859900492025262586107081603944717168508741923874687126326534072002671481340245716976880824716320990095568971825085205609175636079882798058226601729575842441531858920107239732766531650599847066472483863519626832334652400235121256985946240201966225202205130460272188743052418417489483598147601261372948824777450437195020058893386606947539458764343734524336292464682959079288533896653327601734600457483823553965537206148775676401103519382874940954849821503574036356673269230062591087350445623408537517758115820872102120813223285488365552293258733327732332578056236946436012046629861485212394838104557222744430033186335664205248538390191276638578520590198622348814034483415956121823609492073072804772230287371237213701074755907001908495187532875258604884273172869516096003189906452035519876916746880792759463325024955987773110163382977171118578348194382956722925119105800210713846713769792100073083861641478705188039467031121810005052711945263280080120082910879337973063080388111709926373627897384644234454981752672204182024904913385640804979430152987012042282660511898389767242852014449990089239851058004922769024475256128990469096302804406961955371049463852606293725510257876230996015687928357030969733885255003159976143647293938905973526148993208878863263559611453718798924613603429187414253818303931115499928073948420307160736364859472867106307811495986982044236744980165067824675657817550720299296337647261790839387691142760997256438134065489570728288804616551119435193186811262182850564690381459291442376345228195571546236810454948180330843325824384511542166451453681688121728490420573315407267893569406315078803281189197187127776058937218024579355293559114945573532963325856081598545942046087994361370350113235996183918176461141208634611032100395733849174595034531345662073211206155511538339811104328499293938463952425925257077896890332409498071806805472983913844682247682632109438164735584630761360090643016094096010580566662809776991137362459119949025075319185867533115214544091223082459149087986521328672045281700705587714480917436648121102276147250238562794624182086851829677836224149460084394970750114032499722069347607298052530745763900988183635302921992544203280031548964425736818401306138784249366045722809255163159070068736891375013310460071479641056258247602504771214689323020013052461670939202279390658145906694182548283694615303511361277788807414353362583900466980172232917918292505868890763477712916512892635791852106496319944200719546051905139675135286249652087284375953990867984790305747435729829175445455267830035500471489753001106553534073157716523332378804061116054066897690988346523414527395721501168010937623114961320325402280807771507078092050729117641509856691406421598299705002687219727136929188890660794133984372680295531771135989681373989044467865138263398848127527865696336148020318677364937995296809286373717756766534569314047870623276744115415211658272224853284624434700788644187004455002168158815289951315257233479435569206939550089364966070924727983202501931068284576850914600311653194039631773777857280234556935020239043678216265757819883500788689573199864873218604705772937230311560871008647208391900857182014338804069920215730328347885463152735278101380223658063543901004246371090699399844750436014807035268678734412742527330086759835780761373224877973642565272266539259268697765023631180847121787810824671251332314455651423703808209997468663743209243592091240502679210222676302844946804491201340297534309527268696305793430582869803269476410062134328773634945288422515633813028357064417721205629438092200027561499393533751027188417684966377589160335755912068351520044263961604950065130611930064098641022593661789455933412946570183586912521064210479997433235240721201803353307034278772038662989819697384171358515739210610611839036230169949500286499148162374903602389222971984058321529143831104311481935053262841621037578957787173774546528257392311012852013130593999668999417533265770568485932457934696711232264825717105083034017428087160946128251154003131726318786755741950705420294298610392054761400357966466682964843719797774515565801395779503330320804818002909528457366835568797291354875498298769780578508190911978645846489576315260865601411364637108501176740548886886931693605983186071890061706165687250587542844136809057356431294980999783703084929751676617593625970562418365460020850805110893563057060256947283003873514796625582597436098452576415350601122452913354073172475467090931119224967686518107038680191122317938907659679599768361826694605235181982887720002340566164122895969808262710666871723059001447503045140231888307742693065252948657851786908029446359104702517298499395307087982494045939341521232092845033086059873696636059094824392422362931840732803975343023707363409396060654426734872908703033161788186793723821012497006689964322793654910584458284505325930078742933981435651358934422300236303470405434977758374633461196873927943244841712596826488941089103375635905382015322426776179715372709246482367952309722607065966122973028142263351946999954251309230519105458831717119076175083041338465301457877577431198545930051877934813201859508972052510880720460260895411259787852486750413053535849438409487412798998041782199031729064988357556462591193243498548073534192725767543809675298737102940062268295618004607214435058657757707945765065504079140704079235203482413323947379222048532792636333091956532225125137087922589135151298624349044034537367834213924992502805346654824034316385073443003530190003949320619285617961947578845567389671595403945526167706821846235416895615205233795652953192677365253741346833978311365091772274109963524585981470009932793079061392614403823607238136174833591857394007821961930820262671993249191607729141617248780548463536398980357815182588423025442678791317555866823160183971965226858812808251520993731807551570949521746952853176052925190465200199873493331532352409026757970762475987280999942061053172799272020046976568502180190989987338028427685532503058514752641512489118157483870716390250198074045642062816216774434586050705956502143733131817450849488158396960373752891458737818170502170067585535874931090799767963935915133018347014546961627356257266886365595875847364610533327781682722984321341953464545754346187878138861486102158248946228363939926544615251265408681228626721205849513238490055357851324563614766879037574491970628497913233793732261606121354641214532742390791810577564635575734290992597619366181769362394395206570560253933650790865362162291440778516247691445247049671528314996329407803139060942530998781839455103541577138126021885172623375238363692194269832176522669095033730751493543487180283229891981055938919851865015751002556417695170656241730859347951406759938265798127360404455472912324109488878591210144791505431628098064402169403776279643818714718306252250829423182669468819985193567708649989618150793733993075180564056096078071997585165043737295884836287386428959246205002330739430770198254238259121797214215009644251307293370398710317045367484910541728053590544786715747487375033188975420300194022854775515032451729925987392795906484999095853465675144647206605834383513080430696357506626174662501997413670563802115918889307513889202338770914334489736710085646242765000765021117152042842823826813524056292180773601158246829184891644773802785800253657993305613733079939968015648801517126198124498134237284374993988733131167301948649476372603564281652042261402645412722876129862490601439284440108898810049795176754506135137414171610617202953477028252442751282016476175886403826402267853438907755114547682350135218573744435578382632500242186614337718340583488459313958302010646982930384785918521368118056286499607188393879886026746745774327136536972174453871350346165541056130956912152953951301273341944427805192776997552201409015399539878735728277557651577855227141622370300783597032121319939733508646976590180301224395102084782596043398845854212877640719851969011225814094698176145650601874452806763366078767616519679903830447069355995268198507073622366105019439921374331442440770119301887168859433923785246188649476329508384255915504569538234574405659369825279347256460031640939105068088310872131163751386050881665069772803073134283769025085318261474103286882347107083012468712031049438207661231283218421417501308752789103218917754077893379333919234516802718029119196727240399690441259309097149618655748553335054703340000028582881609133953861716369195524789653461176886511678591063809413539989711161436854891875144125674599029247593158228088002821783663077107553719524880525249655275950739787155366973833706416431363362203297935457268775593386379319349239967240677777361815109720022049389223954748895916529722113537348852135296710620674732680958875657765593632458479620560070720136155905284315025248314047411897211182372803670898023214357700165087039444322562408145138504349843112767104514582941619219186740668110627986303186527385361110504129266090291837682371043909567081392670206729472275132659618540306022952217412998407908358878870908355356762561250579619422320070883140376778473711228359154848655238572899275862274562820252016603537066445802953362366525616436296514705474065254766144193790475641105344873028457175276586106237685787229016393407832121185756850731604799535566471845825103857992625123803643322345308652844443956037675293452092992121533470130926127421602429882347062711835004099955431246676619417480651579122886798628087667282605867039694579743471168755932108097393452012223296742627051536632028007683162121374849248751039323196767700941179398074624486388231765647518504675593867530629310957312176405761636167486216155378582588202627134549618773007005938383105318934094804486093506839774242225027638025796669700453840354909106852260698027492881994841378766026878451307611847384536800889699094326670989865135114599332739363466859442368685080842794024921593078265223839317040560135419106782019846337423440182029062584912626324518691962735988526290348107879035809266810273035928921480257741281414679494953467191764968553548291012076723073221346168687129561893497898406307423152753661413211897451906698104038908056196055298254689044934959971796142290709529918934312827937914607819836632838775953572707792071010867400605493908600011840524643420568139947107696035138858494725292285866074775946093001627201112972826482255517224331101001282778031534946736043180937457780313739146765847170447285741307505460645449010789693283871801800119275132380691186499419894686284433170726903988751396560839022491722619512543068187051887479696719216109988881333179131755214735552359831334173071730637477928376019725985873077770849510539602633831980609617214636295093844518273573771672362233789158721831568889251080052179261898744612700682026254882885095582258733655616593325690388933019431392668270553377821570158170477606168551475879290351799458566405554254465239554405535970083419115129662350693929826851433677130762884568873551948781022175173429127749308307326512885177410393989709108303743905455634326632100065202318366950588904874850628794867386874148653751528687844992575313505298732638769486795110446183173267365213209505626287320646409461709615843784674345130193531994012367407821543879284146000686320177402141611081655755401528690697221680625944033605404276869195551827373728221108890946390833093110625590566967139234165927662129105506693571337127482136884824385122301483770028219125708742978101628189255991764573451310039716790379515120393201254261574797193284156189815189401679420260375366884709130551263614306638658899364686175032974835444875621329418366338584607914465260447916517869174274237843195775774198337404532164779717603357148123747435261466262293788953697345075263603105980974160812901485945955819044048512729720786949159939741366738466085543157493319724168534799499713915659548791841206190075354366236237709472865777990963617968584930330064957975161495336311658996052168055873479537812402352157821077567384572853174271593600330565350342731471834675164709344782420021653734260767154938809396820911699369409417207206585269566308810276910046733072872746182149600658721726022112337988097696806541468447522822548835444340264425496999707735164994953338139799937395540470882695418415665002763419045599293387906703943814221835938293447370113921169980148351661599651379815152883954523132116509345834432031384050958452179970447713928309592041553712928141522997958396728476434187811213843597976128467594758154572417209016231725288485684742922330345245025964049753765311369471038280406827762797049369369339287180577916186287799986024069620647522284240665057467354942294003687452902525804893906009230085573852149519743861101574672512805002135296887565351673028456299708790893231936197057630254763488940304913001316901387847558993094508562860959345926299876117960784980540853725823970496754174739040810885030211142729536302340012633834980898090838490711094465544210022684609639733006914879958866319508729521982524776354164938041754767899462794128757883737165808734585016522946639746692273183055616526464690161239524394679278762421024802054022085104686487370607674448364400445098572825430675332279317312297866443963696644261151291394849472182035619758088433431603535840031214569891696489374623174469426642306477991924213063800229395199431620959709477909692138081323952602440130273926248850567889981837843725482363352649113782950347537876568922982709994232956137994425171213378398207526100147909396883782613130341180276415099699854975993032175718156056901372971825613560195924489016760838665557795405511914281909332052162988646148872246069798807589087042134709153863895956233279492975535967124928022006436061565839122398450527179243723275007517038897379346009728423587004713562003748348175508999190002766818150799672126616227144409376530182299770130471025146441895924599405282456045626562061820174332106949366600212019490017317430525638124121840670473275741275526795413097980838638074790744852448873947343589214418679092147297613314665268646891394525836968998824068578617018156928313071997272456055460401799359479920810476581651173862610444105496080253133219187917142267790466991948135787480786145802244967167544623778081272326195421754087607434210722313980868474868442164003900298585480238912188795412589454964127327904781866330029780875167982700186404940668215401359198258062386572769013207580792800753875456953842472712313361700868583690133567517351844571046184642238134685771685918339596071251526907535235302296904872361842511959476013041238731057665365381400400014445801408656876217218831279307417015008264930302053125694249084206266013861714209553974851877397410170727291326712066725417917073062371749265926627386434021043878673840205271147095545976830612410350012577910515116021747277533640896420363197670096925642214863891203945858863245751355932857200397917360241798090597442929926386010749449600980947029211112759234240908198937416625788722672178549800742299268758338555052218960632398631697115363901463893948091557527128459856155114267824835047106237309006262894725111657055273908918067586584094460663569839503341637755631526978493720531241156013022217457205752681016713350126090685864231592862115224782824466079440945316351815013121910436821718699476780959666594701567237825781098030672664139448316178072836019236642589214997046654266756853527631701514312360082434516223146863814123029437356881613250618864700569175958892422291327201846979470971885320250397429530845390919418160257697051256462234852730516181892191535481972990668744073551346619848505711244619096767459008502874071036115925979669794286381646725890524031948013300514640888490350069436455587187776915222745322018765743221604233300882424947920595488926539015583515265365770858346124241023699798129678486013708488279935546716600195995696045915564942306094104388809038927488204932031614667396698395021543858754827272828273157764586764058360386560246935851524394644339675648494711046165193782998258800097442443942367029463412924918741021356861463929653711196993822602577869603259296205036759455994535576823103243934113100730048214894040264626948713358320884983371404679822107028272348614075669216307248811796953500618022875945234198257393947428590747807248554585595276551206342011395202495617871056526452749518452186692660316636704258673773214264569199856909956884681912558789815238919749407958882092056934797580653743324739742453311273678798748099115170542753413039728227713888764755211729459882806627265674403946540905953281848187469753321912324072880746470673203891724047650454949374889420765456988609075653104536099449440450552371205836344211245842085254810188787117684320002129830533291538881275273458918525419968995345716860065462771807216874245072114548493229119429669401485202547409581948492929831999351695307456538707699292313739097671105203634513383368080429714973767781240770166470357204421321917705354718379874174182477552474494150407045587408613270985897504419545599041999803928252761994599924825593562531662567515054527768886124249382543286420511575966774921207541833580590129398329437639605743258608891416230169393198674038739203337300151475576944813841685401115276830490034210596389519099862275504337135684661145068936534292903664620484043041578501074547307799852602281392183001843243998438382260581628134601120737026614071426855543341372498675007597184667918983816405820458454866032457249909654842002824913789808785126500686920798968374965092246080670102614650366390454753019596289835163290015624198178849594289308441696537749537370902415211338548076554001022929914932516498572290310166667546029040904932643980870427981975694955830629858500772750295993908904631139834901097137178219205403771497283933691473684060989969183824344530452921123571814394742471436920302611889062080106623854232346070944410764603290347982451342637428893389509329315563691670969079936534921063298489041025075048863341842961440393631013226307122022461478365927019800052463419243771985121386928933492365723994743797513130580887274771607449639570016273704307583968185548620181807560151259437273453506493548819087676577752783116024377501538617262582356943727712746667239434316444482563709479879641311275867215125281030181227973750355593897531920921153157183075037951032370643668056116428748968034092346282010357821217055049774746171747240959666748417811837194405460234910541315030271724170738805438090821444205836568864545909591168590708986838777697654516370523378522480722510951442872157294585278349394451661658753997569328362942056276460687886920602725875275689573031309144376324398596849824278027888178914626325440649771604840901176220147335406058789041626383030893233023071788795242540928291723072003863048949239352247573729560621210955467160669598028244594705519238955641874557002716524781235632733516867569790672660591035856082253202066233358802335199436595991703333168517487838543113692952454871218676906807390386733564024237932069024276604440891428806948995880191604472134588039978347893655055135622276087972680509738283701708859285134348054639858345990146170851675782708943143219435219702589682845506647548385199071963316938294977210798265709164898419050965994186121707202436746614396124296568817723789489323919439507836257560656547461465343707123414381222417798204732639187667816817516388114585765113383465289017252793451902856642858162299726463019399407774164983975058030114621802846377109862203011718942845830802346461577881925809931127766897984944298597959603578706508571189799281651104271657778533158028921723933752897079839493316182851156819000776758189713078270655345325967262392036995359684285940228582337063120551002297116227887619645570008942799366468258120074802532295909369122549258518332870638139517504261432373391698373811814559247196579109695869515795034439351263294276539829507590207726843954768350673716729174057594911742209762501268023211253893626208642800045125107116108160137326661648650707668835592163555838279802818648056462001557733828670185737536132385014242493013718900237274598467714739342549472003246266328114605939806044975913456561554432634060612068191012038299951159199746573950050237609378839610602499417028589641307726197074240688087190888041071214540931931017762651335411613424611687377779088573933246607596514343582563135097322191717550352093239723466993896470788047106402418523029665567930256746130511544501960259357239633505917552101778189746644514609652257205657030627407601713640227754057528641592362432469759545240362477351089628274288664521196345914217382164252369502547840950778464201362894547736328757046883785608331651869974711582412654254253051474555694673938371266337381250829421689049829068415812376296378371703084653416302771260738974361539906886227653364418476210375395776797053576244593465570855891443443613602409838666475987264828011238801152495683647412922305358167814006249821981197065686372504805379102850600099283211299836731168332056924666814517897190871064185409001071792354139485069899042271783215647250236457027028828620596798853183316932720133919932403150185191153467582375902441599690381073359794434057087571105011064940923459512392640865840245522318172683289456474641399583761828915568912886085006006340258492024568539041662251823541256677930140488197447955247634284074085884908791979871438197302161104983788692895511475113353950372368581392963209439935187839977906120251141053675970408320112098357594493488121889140395772473441316052813689015502957669808861899318253233314964612763401856558823598557712115230910014978641161271864973528194180310038110366440074894665822240484455299965461806264366617099817136617806070714854013555854024860218018752891965529354602318265686366419283227908175312849761769278206868088867000846812129993835935859030610129227374180496342940097015460913167403861722856944836459053946755480206998107952858178780852261219054294796896473695492292409644884365728345195651574753570941772958086851794551547281627294791447749349171558643252896302433264404099185253380472904203508484232300539358581611946476951662219722111984009675228153329683394562869855845860776612032766991417987158934679290524739710465540151864321985326949662638563616273861622383731412615798021246390780689668145157938637789294020898341840135169425664700075243376980949761846317824457635704301569952339866577240429967766156505190577819829602597868678326123902079266368330098352697201955572495320439370842799483734301802325189180737625528315442573990505956641128178031784955868185176674569155844802632066083507284993483801801202254802601767225391772311179388463048123863792231886420598385158742098148933571922124389449407969670661137028893721038621397189406856780296692301052686866300676802428032333475573996262315831436207400086084401092639041071137092257538975532022910634914775097351723225125695370114794809793797940151203268284819339695595531103151337860130982606545420233038073958895215113951253482861577980392801433627294070992075556693072877740583937208389973836854909153568439124514203843966106646413436688403643046747036604653589549769426963094224717095707548394676194526736679450879490242249172570930083603236211948053054864329804500098642731429284112514330823148498293608418042399539549803823155817558557844456143442303053308536682933522984610730245583518399657666292237909092092377130157009574460148715813698909259591565567609723952294079084431386523255714571698452315226031586213221652353061223764168192680816866075329813135798034235879407907418877261092735823787886999396336049086804962025816517069591372470049781918729196614922137147449613870496677635718711945845437126867746848161215414175490220782455850228531095482998026476744578390067799660546832434244395053690252626570674088049772025201127699436616686225144673582531800000582671400117706514406448171184535375135443896916799122191682575128029565827822580991442821535836136748222077188795542648908912435519133306057310208386222153868318050252353156674038408631903769283761656769429717790935292791620180508471632852748808228352940569916965328930479362871240411341280238835512663576049317149039009593462197521945421004825039667288856042442747110843063875305038961629327430981557583540995386761465654547155073558515132206662864610138961519172865938157798905604407725663532183336152566855984872685484142837068790029181811527394786206082045210124133763460511101711979062124321753370852317929575870682958649321013484907682489156059694338756419229181084732109264250876444473825224358464676489180903679924776180270649742524051956323632555885175430054628698054862965601805919779393851290726261195128830977241100831263241756787793610383394345833071711607730159524370315475085685851590945040738002332024185502284928525140480163591102571308331302441379988719648732965724321691090859101257688486548578625272279795509944883376241017525187618546560570355168884360359206617430543365267277149303616699929268013559071773745040155105543206891109319469662034032037686601679666402071746632930086375835075140065866899003360976773572887469268108308960658496253680841254733830970605913429041056670858752749986726776229618863251570895322038218689898180165774250226070069223457764890772740539676595084819261199500590112292407758708567246331787777304724294559662996286967842275530304516785330018918320038232298318033920570496596140541224554240014381469638854219735936340311207919671116469606792534430561214928564200961709391019680381749176805809403742089503996795385822973124069767529889071732355717712707733670887737228954423345455941564294808228553519346139033622083837801144473755027089599528097116061992285430040851454658034021040276826008040045402597852060501816347090848865518954679899459901134266549413863550350075064754193738835063819557516598147668237000353384829145540471356356233115739385177754790912876381889667244866821196983375427278491886369902708154498421188050011171463529982555873512216566728545334066621847320656148731304593561214577612464275120781801506913080215711512200009781115866409644577027267095857566735844576364122530506790896888391398424340166316351248998058204850535356612185910165570072296881067899707790810342499956592776314102013517123433231351008802869151984148466278205446638527379656402676651473182521545656455894531444286992496474923689162940791721826467707218105333528562091269659780430732601750591267316452190297275476551676148597525955576574930805116891242119427859972575745536670550162190645711710775455811091727840844283114777445727176148514702507182604173971156483060402957754641050289935748431322236001328593438919689930227449168945238596350570809535221968574153844172933303980051984303962012175592069686228202498161327646273628096164457130769941028921140761171045693320212622479821826637731676475930541202418300826627954413145478922764796918382725005092364987856141430881112880351059072067773887409614054771704253594759370035175458317487985492516813769603776357468869636600784262541712003772444543218912671610540999693860410472319118878574975497435383169456321956377124940369005547719751764655140294276514810163362384966523369383907724574817609908997716646249063919513422165549816426292844271900376155382855195642904609390856795667239678382953469533568411461383321903862437159133273828894532229284407323898474455784897378963770637706058572195089729572045863951705457358903955908824434150587593374398756108677095153304235944639305992969989211136046361693754241024438881251949327590794329124727425312331963000432684551624292737255342356704424245487654191299217532704205065243660327428358397044970870623376620677647557159985729406590590168357327103204699196429571782826647578101504057731259768211256755073037109630713325014070833781887325795879027522370956791016854455232380611642004196198111744117064899718479539142484776229770896328280166555701756516628206004763630579871926081698917806262328121418737935655032550889787722412700073978920517867384444844332059617105348582092204641398393208556800787610975294508894461185448907517265043866174231652085025778608832583449095184334352051369006886862492141881643009881798053136595531821397047474644445232704565420528417086555916638387094119624594025526998948121873929347462191994340258558329478437764525018754862890229326507116485005431878392224143035260171296482104713489077111437936503121395798970599936181708035668616961642835573291152960830040602752605016913412518950442857327234518052625340547349440393749508098873011414926409198842338618356958594027994750677506831675155403158425079327033585126652940804869069748647162911357960407125764724597471992899919673764602805534197967648174843936299845482138651608726045354509312666050764386306911810148664353149075614768831785058048059293074283574906523401349702908341136722069362497837482645223252133586483315095778338041936821523640984141122803562440570558539462697089758620097360359789803714225770419285685379282178482821634453280993386792848924494401278040432338012018125286168830293310800346730066420834646653143927843792027504681710069952964475530140984381035336294618446485889074233261696878427006562331813879347613444832656725153810768948990295826750158766592786144541349944945988046733969666006569184640116214527758418129526210911817460164297142044285664369433350614460923658382385600171235493503001522647432996080916400781508642361812228249443216536592478831812423110689082871325812442576113266306874848127454840817418105847784164739982481653967039692813410427493041028734250271157829432718167179313654463538966826996803454254720906347313913353165210222349722415945039673880159934364315934075440452481601407667476168250195207242453074986479959147703822807427668059793899274114745592905276251222963313017240259724377468611420453048427888243755353639420167993657667439207564198401811084708009147273146834976902559644274798789818792370892624744294121058320981764326398954188281494644828372312740154324255601267226742052975001637326854676629337921043886393050206434765339120274230507327147939924384457834974209075110752357310567294558104284068790776314213924769938805121520425101544680645176502458565407309094761343645746146178137218386673461683175330984541351966499464644786798145017538272698521870588097172193166671256642182865502215668552304807911974075439413410471278620446590348146514570737409360614998335565503823525702261441629952645497770967070132993378943204000378146376617625060309452454343422633741623202886186307382366138616022185638104709487231351552633635034500839482517087284875526299150908245192038356144888765900331380727378393490078833654562038421347782279083676438063122222498853091428668849399249697720021716280257029185716344193176720416127366520664923234007782487995906428392043789115403983357737836472958738575055384249893916887920459029030522593721346857766175144894763316245817232421011982144047050910027321358938199198764497052444568568649403044889255423147824170309055448190848723640051206311279096766486309182713264452834261756696520418890230395664551317860159264081244141359085658936925740000786083078883966326224605771088733358138060350705194472172342180039137352996968657370037925249559123516650797510342743639136939470049279087755916197504277374902350624284791385521996851447696869436889494590776612703452816110761664493868070303580066814405691563743143413763916095222741965141350017235609924975059681161360688969372607046082743114516144799790067605404999330613089633940596818730505583470503975801531424601411756200626710306866507660638127334314874972712474910676938467788038439309570946693352540539329032565982556980012438596162068242411871896975672869481764448893274120266898349070287753920892852733781170285595764676474837826720382038459078942555966280991563860520949902486734834113094329830089972965869858288936588567711619675045244354105878700100485530164818332101166308558436529621111827401023844270927843531945774270209401737322048166910520756763977791341149809719707911050802694201734734181066810601485539575335421296140692649964024645408054526535271905845491668340110656158722736690767302944507548859574524752846231473147779281354628217872848444913597173816127925534232767127149118384007419870981641310829427539714558456271481752086786724677875291579644229211660244355770921356274130053077635461283392994542777650427865205262225927948215486094607143164832033693356273786806140099406174812804222419237957755989762183224817674978842796697638209965383876346200860592287772386803465110943593419440991356781900495637119262043846809561833792731493488534291175018593349783706170405449078128625810274382542255926549630052169414533873293661812692199952114547363212216683424258655688829529798540559419245087140916851068706414048596898034738768295878225365613930081294766485002258317799658573251847505621403745664729257541605630896730511768032515167013383950304712901428188746339711580473223574012111042209100462380951987604248021991253047124956579738311906341896683166687993540054050835073010588401791687864580332332958629251253705928376516705839428392588122098199235630107446177095496946676340165704013589844063297788574531497479501739739307123111309662676438834923929123978654053912709096599046343585840149581598844145404455263567593688855466265441421998205683203563724291355163460592129905888534140582513146896585270826673913125124184178195478858636887994553619078138054957276783967541892055162529543913827700201836123041237335138384885452648817622265553482819352364196983655224089945661396231656395923768037984651169088720151242082218141741141568767108864576720857067093339495039588627876784929536070794440222157009665868485326299317171597709157723833502997079672645610777063652317149298100228240303072825001989287666117773806113751131026870837442985165298220963701448472757415609180865447607226484642396408098324941877861225305196713573477869724881612622707981746767502291799829756680499334245446510112285614420904950892380731151076883154734910497544666829533599420379916407407451792857138542777298143865069415653667014562120345825840651454363524857125382329332757458973266648244593635925739514467864911174091711973757033531814235300078454378366113674679932135192269733319530151491649700441171706036139715146272756000288589595448606014752758530108499154588602141326600007904759052946749361707174794545098466322784822960922887405831302171408253191517108838963691714971571613606017121608619505964750661165550561278891525206927051251635628704441723692249261273918898525080231317685896277853600451460464967297305016052498319473043981513190223002323196003697239074358355184366203256808224313734638143152241734624468137863892966814677321332068818368824093224239399240418228522040637080619830389687602858148139591911667695339888213776642098836007241920938430251492254864821241165902542773043661451062341038909064646008270126876206984364103877059741851129272023869282651383821610821978153880494032699485616528363259649515429469357505483200319244895899811193508258081419799531605389462401910969509873990296233041029990456001661225613484940545494070485926876199756291809985736978988104929785521835459001898499214235360311954042873503870425555825100758905940242347075421281716912816077060601396389506225167902619213820956999384160410216331437419665484116820789390702443096909641686574649442966901782045165485129411487898443198431716557678759807223970830348796188151568167801729000555976222191481318734146073367598056896504917700723981657394000456996832889452400458132674713903553540991735985560254076183688258766369735370740934754408547728203036954328038469072305434922090764749965614243981266890852334632087553530767532046208843940558259938363535959099084693577993753939373263202201361694197255504240716660754980890776391009970390999791051731941353542856097981821856127754278652130220500197213943252199894957315468663603738932721520702143129151715210524804566934777375828326749609836545151321072814415959606269691369204586321036345652867774282505428246930392093357025205501015092166124085466962347844203328616267262946511986046510854733653503409726472063278947137811676258208076327988049497615208646217475779294080935816092852384889741656292857350304700985579234827981139015762461185102149959824738323009579817269294115640100396852647585063611770094899198874814099940859514566072098060218772517107206391327979601523731539528899846235609239050833349569318373198421764411536512183979085273554841217226887851741201749622787862683445197360852689795280074227923154288466182457789858872785077030887682926599989482045658059095473633127690099768038152478447622664747877285961104964769313148279531609397044334538077278299207729977862164924354524188564517933764068702400502021295354577605375903887271761072296628115988889131652559839975421741440640456461414396868813196382609838262374357184751343306014078015636927973338086009021950577774365172071338331647719819830270412953110725756030237919323891269170738032984196929716063288236281844157280967638252896931667700546986212342418676924035506848800145563634301620441113242297721097688833304002129049016892375542988706583090512196632300606219241364880190154440805365192455135726771820547698511186368844190800099055592725706179754252274299333630508904778096395448055335379174761290763458279267184101198385950269837741799871505076892027485586837017311998784347689840000652395661791532260346396113525647921563993949744448559802502029716063259414913568229588734272446840123542869124753889465601356047935341971827546491679702447071006079954595079434081441684903042515972724293700171540208123205129119596862876254764816833830792341072735039740394038326059687862691369519152704681181951659210458899549045183731521438051710801417847145217318429758008262067754668868149577936979433364785966126937481820813337304926753270019249933429138749686828110000200236608302440812368872231362274434835325639801105819787534291669658544081492416406568098208815205753567209399320103955812138931406179430715000754604481391788370900301406279112107627735513047080934265858146940858811987792427193667464982961959376063890761880712270248883255535045830672087724714099210313472354235042040597298073234925941028696140387470038722513418813429735624291981703711436610993810804911454316601840179669815105836523037132864923706762762572812891948499794577631021968077776374235880566565284836680735542364599851938434485551101562917791761962243116228208193203793898044672387730436034095994049907690702445576076337154490632192486398348266672724826637550403676289069710114998563787127177221498278879410869129284681866179490810739898782323462241580373921183179001640991268916803251374400002195078484394745442788229114829254681409332940504843290671459409386689535067231199202892913592661015304191970185749444214370309574269495857082854418382924478388085402096376727292263496427447593682004716578045210936156122575985233216359820720888826117414338942871118445673218183248266305674933163811834982303927816914081267473178605941881630243431167537394915396512117383357719069821533538355298137941137377266764995263160205666452140933251887117022339741349696216057373902512813679428309412387274054706299296409360774256198357948628740924452131027023733523275402324247842419613067939776894411884533008339659490991944624772298322588975398915450541537460998467848701486111546854678228094775075815603205123371366600320626950729032800957128873425298999888308888864879077293510906708017350692710504832093265505417085186147245090061129929154170739476061977446212201923534150824853043818736935692967669876306515916605530076089906227966400021825371201845723781148350592740747146964659406531081637573653146185820199489501549537822014692566388719075453422857712388525785542178117239248909547053185051403888081416617354104601061852401319380880824969053295206429466126650115503508720982995169504090763000404781544808598168641728294654404421180734438299008602265435938244221659320446064583634485512225453863391827245354314762057227756893227623956353170672662674159815485955202463119326372852345654185928016303397203754128852652514350582881505100103976384743179463370243302957112266465910461338827298145778276325782892278171241782414602187953989949903091293296212295760597547062740190670300433094998788272204819531284792447711639890197546573883481661160383870511680058098112495289951284209151786885346668932807919112246359057445001825014461770678089914307618364664917487397271373968322798796591319277143388578963810829398084397297943725934536124296277188271690691665756712825982805326520014983875531410612579205880727460511333494220003836039745721258963234019023667039143461632430869572339902745624661897729488397380994439258756587512597011945300003574315994710897463957488027882698560918547159332233927883484014580835731262724875830114100543614864454679831025548686513251741273883615869414665937426754015705692770958982040922604179053129950722801113031813129513363783536388715365272310046982950901403370597658388839268896493008762265211311240591284185633998007418439128222491760026111939058212529262690787119271047125049657662262591456449951125759677749527954073766670625971963473070440178376629828421436421946577264302055576878013805744848160794025428017829254308987985331984030465782929034757786365233078110876294691930678400579393236199699417220171410609904092592533846070757765947544730225549888885648115084190053249036689249672702845564350896280467924857313159036573212869764271857392178342874444134037231313573598783243101315287529649867404156217161902059351934220022017450122913160846069332372676678379890838409392231556327891533521580059036922412662676175071575297091204933766485312280475727663584762746246385053886893826685550263765687329909230934614018208772531036516443123464111687154913320831866496254784782132872845691919805070241479018309768924325959303060933291823483083992833787722593734175923232751051027411557378820483695236260507462160277305174736593491535891369290941963003919409764970659871360655017867100392898576230851509452679102301265584425122087724963504209471591695335989176357366242249694378030992677259239351201357172199599308954238991853942676725308624193982686529564046860118448675355619106800538809352619041821763713640118615383375448658946725319410207725187414755118992704842754734940359240873982851679399830782509089370335200301709244212957056355376702628191846688496163929028612915513813470419464918848527386004293393189008641591257630958251168667400892687738237487966584162772073903260963923915022356830404861728613987612363522498063914626243190518792594534781987716576755953946120079338087319949005712699308726124228063851983919827576297203455545769615506031564918945958925319436603633681366718444526367054926660319141948855493358166419313769441297741378180150809892660981903454215029685631869256128276799640842599478159592576533524358043988655974053467094806145688709748510725649969581472096648754161878530432514691209819461131700386468299212414708386531301705492546856661469283446303446639465297934180847448133140691798300825442122697979639441604764989036295992399103607714277562025787190224887547105816405076694900130761136042304552427872041306411774899609081969786381593875439915131630525386770428454940361849193612242481116381407100990589648875808344212043723569662351735960670172550846601215013738166107648380325392048797231685265229334339755731389762946287006034171783744189222830984118915616845387525962331256665156290819700512246194412315320494243257435712333619140029919696168589969892784054385180622801171235878044290999007063838660149041020375101331722378671785716826909700386392791026105647408930398158940043491127782209130528778682131063374746599427228303634005173763960947867640653731045065047608804720586426848011870565759412999156486289946846501912137097030490919071186153154141666719925697038212303788183761542870190723762841344409203374613774316409835595209074040741345108606771013977555815907900387866070420380585730985143960028940771070221947496083555266789683746664878657721982160414375007431321485087044029766736321533401540965252497443161291228894012292308269529608978367539940275202992130973587499047880840407760496484840385879858891791052598654201620133886340177860046143498574911684759867785293722728003474908213727270923612494805069270782674528726767129635504345300059034652823208956067846830930503892610346196590070110679553723006562590255116018921090505955511154143953394662761248058106148580630869252705501258223934900349719970792893078914273778366889641614136983609598080824317558744409686638194824109384878905375107781318856313313650449354809234751783046574465541326262855932472974252895629006982752670958542792494306915211921295985747915617393911293461094632251365814317865688091096295172975893476103080381699607762472622770880710171609636969007675687506344864039364849031155308033571927613261221011976237009461910563905038984150625008713442654986375139065702933172686480870602754359435100503305695186196324903399057046592449495511313048477651233650277708498688893482126611867545414198776960644260671052969081204352325601509068515602730143138165893353155251225985762196470162210831827712240135274285267322022428061615370143162337147095884468022676676613943678345625767650665508453575502453834845375655740898047688170168926564787750916836256714862133987988873850296167024975818725282495987378041911153166602268709788455297172962674773656827505183475094237178633885252443131585278994416272895486546193605747202746690415466378995428879535878332320912975221458471421330335207072053029901080030268840076590036689685149486694367697640831191007287018630439046230941423519412908590564722732813087901776969033558912381078094708709136438714856997924982235461433261215289741803423114337496106904844683404968219182577160804393223230979800915816608393944166079777301984049273884941753536942061417395241352974521251742250303755207083484622190125499032647789041746968656578013384397708232730918482804643158848869816152429358547466200970016093395669081494183191854396332517898107341935822194887698950061228820730335693149849045457476507282128701622392257899678713286959848981148024054706591842650300791969949636570270799561699572013214247682256729595746450442550345075585819722962778557982634875948709355691335675055935102125164663115356477014671764878556360569960045144501266703619275323723987814086525978291384283476554748429529882228738524054514350781229179128299259341932042247798664918011238035470198751356971902721461709903181593539360631726233618722091068810661146642740358810176823249751120965055907867040423400334757928507550227031287617285065947292554719038500670899754078053741506578695805798452860447473947741827007434617002405656876843429355773682000232784805688044724001339010897886149947451277999409377602967587723202080941049632882658339153465119892239335748205008712496551171891868027087963954202204433026440064615658228205669959484790548002267928889430503272371075084005053456884254356878471573230447420232952497174133311598484641666273833338004216981381806601210456094554836851206253950365158757900814353312130609743384464099203152491050140557479972968063666102991272485158197107545903978754165651836339736127401139202612862080046972252922633755234449710202539547911882624218630017959883761942361106787775655475912079619392175357209899760681479297059945421070257797979895192972833997623453710278943615234107861188520636644618692833707440793214915035948203926084480706719706275872810496357506174512015135042834163540799018328102262672593458021816900147579127835303468490577362302919587256084924766388855146624512248663882781478164819537229785676796528227682085611990172626539717148877584850759263987454194385902085992034661885110090716769687117923419683566814656181549971073101058515567357178750603944148938898105023844914192345730145511446781665251308658342646384988737445825703908481415615489005114214179540771803549832590903321971332636445723965519889514939122750701780585062801452733137543638914804072706537677254925223855848798175920454004402247725211696493160851938041603844513464822587961674808758183314688730665091547297132641889126320011277216992948792584895979477698014162224996441688189470455545698672092483506201023609331471549652058410831706433288477006650771414969310332421938598338245276800697895421453684840704612365038995493290170161616874166384470926867606832211052500682428409616483507337553423675461528744997621961113346031802068970762904631072558674567308975563137628847235998679021887945620473576298230458253507510106325050294450528796763534559224650605782003641062669073295564701867427690924421611982068952535139127157526833626462795849332096572726440645861750629124740072934282577672970094697117038182278212504107114522208979966317582470080979596633319265468300330867970750915419326201245261483043129474430815316530217419310781852618204207511715972493366840060746103879853567690025253753443742871472367702485179652106873589017404335859501546042688750483260510647730199311048553874416692229480327860172178529319090126196606237454199599224537367694729412778933340661005896558410501634752288644233156127603728628895980154711129039881404072305592468264703721227194945565248104933726823463195809169097828646650180398326214887284167861094669148595380384774983751061169857611754884787835529877922343224248408042984764380770679466775256418251556960311657276738712359291653182878280232951925233783885666490320226870485474664115976145859409832020742756397068947151434057140932140035756132960440238720352263421895764531604651036581745955550335271734130326881381226587407620217890648742711717462711694992579939086735331391575575219926159996451482254509824727765624683836503863877714465320713601484786308529822313763401090610324892755613102483709657420125712072585115593440167018914283451432356688658524947908003852733302353122489595014628094083503601008320296069524400762577764000449138068618612884314540701074312707318717678325312915952237871503362293613933369589685452608844556127743051102617408226660390448400480952932943756480965745402516407825370931742883139134785255641435013265430747413718627059774555784495388764556261413260652064865335282435788540392043405397922258074857588055505085300662000254907912861037610928668430325798215859403351315240957923333548966969098409025183490202837278638843152364727506494592041348361890532074293125715994967321550180601654302341494427338997716062248620102444422280257289585423908485253928494956756971934508651756327727160353091374842767079015620082041960303762036962969237088297198253786051005061169177190434558712481002188988595603924599044112293761240805901199422653014936480693162433856426779075897801373372892209273699867952580317546615914633166044557302997058272202652265671868413763655159090699406099296560901685662709761845474233115787209250622106607226746250676968149016665027439075830580782600687478493121015425141355244163074372693633716400322647786621742008570603639814353864408480139048935977282824366861614715090421763132524042736688745012031195883549945682603674286494810654946722562110498731868482357877324782029548145426049718428412365777448416483129938149193700437420918960809253692018096085997454296423139708877969811121753276167298881905049641109386904352748937359981717932926220430082174077661677801063887370642200159998914593705698411746335730922328999159725935442932000034471453603213339647389791135259235838314614122501505284518563160426078194549553349563131326465348300910000537622926492876851929113300429220499390446898811185684121700281962218638296594584330785500475724468342839445803409403227788766734414132402222103688020844321167736803495649107917500559623604380755956034692911973736563885812467300686280844187976095335102812392957539876760448330532154725098954162750468461749909984192406536404877126520827601692342791709826195401052681757999658812313264753028075825989987765754901148528227631527872702514190565986970874927538043176913444306993180972155072478815114458684080088778610641084877544274119344060719280779007346606578136306331772956736544328012295789171471683837253730844689144274534462249933257571295980272476040407745194819495484802944281908307965816730290230381030695527311116664480813274058535950289173225320982203532685387623872604391010769257919647207290304235840429986062945882466911895124306060855315539953904453223640177478806844967533513944119846947338397055771371249491481094577331137935044081678493102874284104509785368864902074746257337774433402912617063402272987017334971162722198423675816687616127770924719697107094598836765070319261420386304790427771257885031695514947794807498759200949704033196641278408179983661816137683755689754900188836394671021749444656785751361405155851092404395018180502006887798856986584812387982406813275420903256941889942823087383223394640387251433119739560703914039720953425231088127044091637173617602233219218965695140856801186270018174890773436704104318037111434582179750593170215813884614103124421868386537071260482387578532145807409724882595410465714060301866863700753815438754489974642799229259293301471607247824549387589383583215583146809311729603096528788562831762440538006278136690625509792737281747496711529485946298461422515404064354389766901037390424917254137609330463729453442040422630968546493605994030182113660257558012646797539191680906183977374698712957386517451801008349764136466542676791093168893005507672023334524666746760502735660131900775722301042653211206017329175618117590202312135740499864980394193019706207845073693292217398374875894281260647346983195339197121518525077112890713869623094735555738259818013107842868991794653586243348053115518557344961519871351565519463856291055083719629874723836436332810104295396028395145791009573031587854495890904510952054648934090178383007565770567695061801087298727284611338281775057087636646375840281870932546927912392191921414433380237468599739756474573336818057631381323143696219513808572185920736711938914746688853101841841459574700792728523655246013958835762430464697370121792058942493280230831657212984605253571506776318694174104795857204936384762275557745728207939564265158456130722947749428751986007786922183135724294056861057687201060299183868706505916559878551655186193438500812876807925077135874646585749359246993900904249262300183082479106961114179055588558265917208578867570364527268265269368199054905505238339686680454808688834200324584803763966243332407725212500145129317852275052936233666262107619291230610486309397371450852409218184813541876983241769769902429008306911027224203865653694370487559509581802228308072738973021848561257648906754846675380609320405252005159555502797605786620946375837835053406656740713756643630460569281100063339002289280925671447189703519008163891114640655498075962992826676453234270742394022433378409535669956216070210242174406532927157410573744768916726254189498848264737637136629378772340136724620562817877650035742428071602736388564051734327871938182510165679432344181923268363655814806193687378175786634461441748025397585357596014519661183296593612582409979489334606402789913456508561193710850073043347547992343921081430069375897453365169528184047983510557931757244475309221416438413003588701319007215037020075398017235230544335029006632154256488703313841045663241565351144699643133622136861798426172407976755580271328078175107828040526672733943126902648848889299414828514990115092017543295566899326122296948396949436340716686087718073638162168150183102782325031997515890640675876781082206124291818313380863551160463379639098419919735830650430606674059605578772255830756541952814019130427246401571900014683600994390607987726046262051827492010328334804977243224534773935176269667449255756051171680772971305401661719829060547893266060837664018986044484218381760454600745042824633185062316524326851588103524061776203864002965792275055025373787187444866687632261068521322674905412461212233090954682293963172181464499894226610132903199820414238026134458474860549846029530034108132081736978584485359408708272086044869811426434063743807712914768288202799103377599475983811074081604059158633340043688707426041379825303302816710416312515518228805580380818233893047810338719495553051178819909014038516195761832487737813891010338809878214549170308384448955538912653416512974954896181370954060876847915237216014061190709263177249065384641532608010106369793963973616491517441932180540857844853244317786424146867693795923632452312139631549548920358948843952641890669808097198471051468194679603017639642961466021783836958507839619429788256355668951643701619995076086437924064456743122134764742774517405013146826831577611623959623592919162507870117754242465704212423117380311161596125059740331187668342768852806467710911392734764159613859780154190339888852022600705231001753578601472890348132835961185185771632969531909163378960427621467279920935839659221576399334544930158035817320880713300352896474743495966161753694521684669634200079910794797858626488962417103097927318671956747018821273809560351543287422598722022609987715302956081709832879186554446755383890652129908839183413193437210216442635692721094446954695832783918576218409485708261021932536109562999681127629345331613445057541764437183615553334971371693991158338554573319224458592775463022843725252801530420537147451077867938378478911605756416152855962993909693524582274406629446418415238396696772258138846147255608444616298087226583506751868156060123918526525008515792335931024498274565186825581005212973157251245640890771479546031504060820204896073271609875163410305892031144281281872002134793581721815873416546165425329853425927368926140998638834371192701329892263548841379388668430525127587932951016360353329309678249708493444100231161150010177553064532154519285876406616213638966730306218707184968641860805946277152585777056408029346568615683512748633710297742441892829671804862340248082324676320517127230621038534346489726996601238344731773886650030563491425470613175573902908305161359655393399745697109279036305627354103309467703766713399842637198393035927327643712595121673211780119488632265796996513712427336281938977938173707947806265326854775274886653860292633537239802808779752646041372253056020081923876900162466605071741171943658271806342108320983801365053290676773564093012814143810105081164106270153806436470167961560441047989883831108372435363309795742706466134225321166860048337956406136427207295403944509490038986042295436715005684005922888126408634995559183057145517401442447907524217637611015169979953063820770086902852217386807719775077125931977432420376911890548988976842203422221223925197177514411186421461804047024239409689939591905900816192469638903802339551431497430264713369293722938291927014893568196019696186002337175075320823055726297822965026496793493051914986498652055439769013920921812435210416930750105589065810216137572835207688806139713475094881668148768575319223867832760509535831255792375514790521117096358640852119614761134636881983372603956431586517760965570103369952113805344217172136010291049347353947648409229768442008096675895240749838884739730816078800696170940923096613560467034760967769259408961910976287086184340894941750965384341886103521118362245570950053132635742841561008348794088177517964972378473858440802387498478994734890341850344536679206288603730892137409648065693759056610201982433245090432846227806317351722270472499658417977029740235392857991927373584694513792816155877125341975917485284042371988626463792299917221616770793006961340230263394501880770869628258431115872650708007144274287136102891880750698072441882371255910346400234625505342088275433664610775074121498931903628022291624985504445154952239156477680715997437319012583767229490883140678483657923699233444687542280656125253677956023836593606792164056634732821730114982004268730411501537611689293810636783900922973271756422379108311664105948471976094162676530532466752208275443453979076736817716398754351331592467653130396145468371614739552336312924699183358935965835864052550861682043418705514364032280513933207785230131948039964396460566066693951604819522806422725950581560562122677416672001760411996564254500497177943169882915932523909147830052901626449927176120093307988383134576227374698604760272328369292571088685585092545643452819327802942912683732739632101089203856154146511222103319710127301603079096371164815849096345231002022201786102136756648464478463671937922076766617045576156880963772394287955725439186212171053774980479845538716828030795735212586544556575737462151765007016487024087312000905135172362856687173821882083246060601555042021880271376530682515422645284744316710476645279179145823627377493784068901383902495224830743561255664449799178940923424670558868525046456227867661742828529179929716770614294323044108739594697913178022189763352157786481332541436279381259676183152403435632999521570446565254592914627898297160357374523927185899176047630494668217960286987674930245811804688747422013242130602702047927367833633815466001193121642714095564290072617003659574057429636057817459030150502237828872148851507990261407982089546195745995938965086201531671964818037127332408317714203521812581173019804252774625102054163193147092188284519284936059235714614571151540162088070494730057327275863460328817025126249758966017869266867722432066564502864149761054950262564321704029493111428785603169784840089964263939182111224800759902570589088575016521889037079619671380353720649262328388282538728090729296961366920558741743116384137953202101065405651006056103725665186577565613381504930307654921120732110935836033151005956162611795491682555575219083205783454522023094389144381041355429957810412873277058571165185630975715489834031245571498126751355571769750321270073715709338598232330215437268842694036119493355566267603749965905101523308651317964015905384853032916160306282236751670080637311520794320808965260698961280224312552348665368173642449542107905833619633273910603337568502928066527221516689626197660583877608756587382228438398926525149737224031769221382230474623631955993884137127918659940918616696048552130828107295208711993343928197036022259365867695452533141708193823124717781340096818300726660042852037535425308634616266942211547767713706050322257245540395758415463935605484245320964212063292448092878741272866515311699371869074825995802099042720435307915975709261289764834489071321197857954081527343118018704092810015360136967669009962566349172233716095181700989303716239360975497118328532787572074937073127365238927990668909995492161472677922351919181939270990073892112762685723325709569871837143039519790101017531611491740099083607692424723256936380943942527639418589422350703773969849004764115335377630555947833939352635775643443895888783764047618462687921010938435657416573202059424090573325467935311722895585747975758695360866197224027887210368160066395321902831434286920127230134224889485637504634219347296111923326872822565436119507907301326523911427996516724066404730991916503114240558579922065087998577840590862154266605392316159529227596903659160764548148717290095188632371335094345026994994939443549296294365799221175305500735193037638191790318463352491259249285324916044249012799524633011327194862016567411901436159832981443337035505814702370726079359647123885170432106157071515841464344128774564824326447893008072460338851951691261326522554121943085908818161186197695372389958857152311378488695647827923835963236113217770797501781315159848004447202409060322312164554993785070553393446222947230393408861873328672429067558485551426205970132507438476651526387598615646676754670465148416804104438802489678487029749366842504509298785913606678552705479424188655018557394746470966584622250274474296384147962694338720053942931425692418255895577602499231662581263554164631138431622647574595300524887974340755449597264687194279784208474053103492067866549132629978424723435620999797483988573638042166829166575398132753986173785240230737476922111400163037546157165191115968435459213785864723523988472643967478547081404902270697737964939308733176861955771881647923730258061279651411344084522400316071723694515052786638455205069507801114346408033942268860822039701760207400431838575493828091764331512525156701157880758218170546665429698503545582308201138396710582591617240679127948744744716756456447999275389779381594689357331846198733452946870884159658784648109498559115607295318653118698719637609467123348482672466586727288787507389023719892169210367965084261682966337608380535676749908623589087051514019740198436092785433476880104391090218248742958230285644326236501460442071345764932977694344484121407704123010964207419056836022673194537461068011138077969047740251221122462356043401146102364025097428386278459888196820064486474813544862941033506899958513794198959268028732776674508232819150874345532422346033863649384446532278085019765234052989163043588802374937331748878519289902955453112356722552364724096730541494411866015539527156255850238225273519584757854003223955656466826131884240955336728445379239183203301589713687490005269177747166973864283576964779612563913241862056031135605953930282390485395983845284893402870055715608969016305068754785281014637617912385027535749942649641281599475012277473702189769440570784321097384714454352672798928049581432260770245336886081150607295211468302262721834524639283821831177470617549672666465944604424712672970212305858621010444536374908401609220196897149895138538293057606322239639980933991470567267734052898578764484799386581148637403891855868741490581931381501258336891962224073733806129507228573697517777277948378693081969228269126948042594455932773551299212249461073136806208554627445111497200776662810081262292785781253258800896910915051809607745718927092015909575183564623511056381927864964294841156161405000952553935809851297590844913187231802457253266574847945522946408909350089260538624870349078730942169587759322179547042066218525758873887400224593069280047876510730735021887287664170017725942233103427679713873171447036756354279808083923269481120242801275478331416709617634242482129112985150804576945536315817857673312486976905358539141265765136498538570521966361543663172701078606073877695899868940962542474776509765659891474914886645250310579867390865226611981273009247546008580592059868885878247177967718050910022041997630353945498262082568172709290923928935495449074932265874634441185632361843676549088699056741398693247908645034768046625009764954946463068213359512379216186665289920104420568770236072031661166429372746742979703581502091826312131772190316802239352317153327580293546381390574557125705430809930550639590526908901383275351986896133953637265453718871545945676465346099168322329721505568024522674586304062264736087185062671311691006490494314463709945000604581801694860335373400378620465445956358021642658647445647962537165273803192567440116517689654345617308076095876471259005480963131690317208839012242770072382414697606038896530397728882170873201452145761561347566962388640648208394631727568983496972291738438462828415403681422425581245984614898864704030761441492484319517251664598665961531430471943305327631936491234184467174199311040150730064219442805388564038346645082352644001224004416714023968639464025888403877190334133953303096004636478122734145318806206347219954256533786713511021364525783777215475065267053352648629944543459149142102722765917872413057610989957809842460930339420876534393171481247295610192944349607651729025340246884257496959459561137569643678103006069672833503483363200760375102517541762817761960074092390412188025026893232011788422912623909436262598805620856733832986119612192064817482900316785646099586928003683552731039869410642171922380279600557659624316878118940897120849442459283437888916119945675491978216195569504218950328465035071777739233495268052214144858088896945351083801860800687912424798711087189769206500096444305771100327886294392820434142087390900759491381338932743037645681298099139150885791096663500726629652578671112689746723530522625929877836863967900356426935511763404519838207159008625537725008840120675295082571999950799332478449889673188678501154102215580918656706013403860897697922561021858682504249580935638281125826061792983357464113775498161502172625006592050765408268057992801100100195036050847174570661695992240271165682219397685011236446031662413812686294157794108181425453882619232632363122097232241376594009088335407531853672859879586766913414709387333743734730360218430065952908958423577096565603580003847607197238946704740755914879345311932960514937110972185375368274545652671929269862890427681601962079916812049663586743110762028211733328760786322874494082609991709514596837915428500653229318180173311970611737493264983169401571229698567997839559614200035813224061290471647993039185416291016668796051733809384764942063428942330240676671321378511555465268337119893249958756574618518478306606445138752113189715992781496538464340776861842958355539356215000286881164229582822299489840677486024008782810947330071096970997221869046946203989623222774675691546760266638536783336633524614757762810347324907607344963749900140247241816512998677540166749842827009015145976086915666677188664203102610521347413100266997855886511500454800281918961064696610129587732148366571605973395338376002877771866665578461954372515668767831133416669053359248942344759732679260531520752810046514526778768979723525512733095705794334249460098772575224948023816406551731239999845796224080862892786971828325114993238921206284996116032746396802627543608543056953742504048793973528593787309566732703997682368822875864932874198381858665303741915663992307102071594493013657247882474613218472527342224781655013802775400961012076284707427337796152177739207426192844900800376852319085617534214045919612103626879737708496555589952143960769935522228882145272724831797608603644588031020090217973059610904019684243384959146702970366345653343509139740445716072268978919802221604555358605808787892388351962175941206324825961569168238586754294141597938811339921867573922210805901635201368680208657597016303359340065928635767849272884443653372582025169234388215579458628871935781803624235064984928977734868589211600795055775633319609047587224073116254435310430293604759117541372405966040796180702063641833899045320223684944551925853012647248446218840813611268414420466509986820107301592533724866639367794690746155916962811474342165062047830131674143129778733217147922873079915725109107079513991483711051440825173167528952490960711888858933747489125266062521333050444585822284696522478452872085504077728803041276765139421386933408890491176338266425321468544191454426325861058036623635415535826609231903128482813582390896555688860581587993165154777056787073577729629928468944507985657881770790099486752988366895427516303972078811191554782392060056107192488250550725582035267800467945113524864781977317440185084666444592725842206518488417931258788069230576929338063934324776322275055402007358595358266915299834957563442039688722012993481185499418082625841317507250991331307708885048283056245111274717291663636070543467931346577905002289149994776842827613532152546997239489939672627329082382537733317570435574027258606263451839270038984856262474880597739643692134757816327456385091230863986591433481669955772187712506278387727410089670813716979266260589806942489418956320072903624633586252158362107349894285839835397991168631524817718108680544851450213727003601327270252983354280513237538367350462484968367830526336404480499404602021763738365453315106063209441484620448979454921971266231878962754841352929309258462430056909355002162258184476858205950207196637663874006319114289177199624528621181648536455534888498038992428600585440028289071952427581236550105843521138491158477351923141022367659478725985478756868399959654229222952217490111433088122922445604793938729784853528659883896707985154860457163431009107556799636099385679120006812702827441708461497461004552212695413264088204349970707369396090419270071742046762794245677737534555391884502107176169643690018767197274359014968653954234668626065522359355943195501804779342292370209504707103992925650495068996614096512278499569031865883629418483291524922152675535222234360989972137875454063544680609807251883686881763300630134963705823206668858734159042646802321808528517619393958189690064552500489132939392454882231891245998082636142990203947637076997232981411855492335829853093740620361609951848397029847212358711563693453319411001861654788444016105514962490239136749579570115031067502085731442861788158417506313256044082239224462301294771475778828625851821440399229650804445216449435840164166036600994081470747426462140484843251483193881436775404169990907291073000687083439031807437392224212498169615169028194703121956930199567392922974409247892908132837046468510481038097563307649614411610347297628122099156843657230650465848213698596306540255943660623334952437074060966708173951174296655423743617242721809907659071528523372225765951678226697794540423851867902300961158619252483244676329381872696576300200953136623367005233516816850142201259219874618462360431011788526761488549686179117405536994010423732953976762106219839747686859452833164617477582691532289974760594394487753954826387486275024907488539309729376896384813051112999370716989589000280087970216556703101800097683858212075073201469509820201804149883347834100955493216893429683113828744885029363589793045377764642171465837197717792486735557820067933108973508531477476882730072600698791034229377113638016424799988363892751738309383857853535580730813549375213045852729667093469535782323635506301648238571340401440674580704199512849595874637703166992314037980899267462049057051711194479612014828204764932392749382355586132709140683523083300175717876799110885350101892907952757772388448951422241654805351002350873300429215870456432517556346055896043912630339662219550197615650899961822621194502089171565324977466831931628910275054957224225716101155512387253173504082732225703789299285647185904381537807368430090834546960346582477944687118513109264137355995747164519458408994016674676059952924066358230761584773407199942784470484781276622071772003068055796163109709950716508516162859717779408665688357838715302987525213703930416988213724433210804005235743997701968808402191249111065664091992353969120479324905726007396917168670891612526621818714618521400890253272994186165016352300130852797157634708151282795793336252891477142216482763720425887442491664636575886234148642467566235988766226415070130140142357940629571751659999618547153968269403013366837416533678863983956234601496208978047453156568749605333830903890674811588216307624870345742303189624956838023008089923796415753098131756106499337307252932148271226866402730263616357397703551388502642859832886988966273229278478557843465084041643466308391634274487042395124703255529142363121778504461978046428635374177465473572801421606281750346692958720979335234340830106458741512465704681502424439751609113024583357830026961742583099538495026852775100395667102852861489057183317597877439726987360051700106117611774516500770037723453333838937138190366301198666572430331594680626318454930165060116504354871265536333870265986118661714350840504311669125264138556394212548481827537478044933537183440912403876306947608723543163078567186932299500852131622963971481548800488724715741989822579223371670565269345075863102470689040409582109531829395389106918924270222461762047879023140197088495029738724643722169447343598618702520103494063223477416047533646080143324677713054709471979258858116851129588266953517810485529202973116934665575224468263274059215294762715961042895210501215330522688175944803309946249718893473375705269044537800263154695189368219520469522590157127644464754915427308924670449804370628542205133651011424554996626217103521726593580339688321686551734290903158639153197247905146271318206840822841254470491173456227665701556055607205527451613038086525686036943992063630880723883026524022459544575145818449614034258390917366836670315206695873023737690571993628275107912904732377046762331687446601889171237975005538041849869260434728024043526975142046497098957244183521584964661473631803577643402058818714196107251981481069725461519926460589229205126982609426545622351614828022019595723527974712231064256697396585393015587240616540371937118196023411643686965217573436846395965995111757657816775830543605716794017457616873454149233264795036182741817504996909737963486011559364514021363920897837566728016898170140316019972593118065466707409172654177949675863034077671296434293736716243662930605447082492599865575013089088858532265595130508015633848018637344434619419115985588108863874594573307906580526634003788178260240339020380164089744936213918190778794216038738242846181771230949758352310486486002306210469437542282864744473400515594975310523338156287751863546578335906046657288044527063214325927215186593169520628354425882686612565895190272013338970543796960280288729542054818371013099396407703466945981600506773331001297196386439535853049774650592631080648865108461195497064740779943993225642140438644559149015700773132897866682759670509779498932741006171832463301292217319771452512998017447766029703146172039839491168456229777320482934741087979009692418219694497147607575577261063510307350723450634788868417305519902815706322368270450730975068015301493829004978312657072939397443819180525287481937216365965171199993145255687583526515661682581509318130790276393063524688218874182772373874512768538379094755058467647879883173710843560032034021071844915903555909847132641989494539159412027677477965043897577334656644579404317787084900794792953168081564364620337673672885898425723929129713352736613361506474392130580627519159133258264039936243440410396681125611707695013880342042216995486219853492906495492667163151080670123953575703442079909396772258977975594161787478599195848115675479584556330300229547189509610483493430794993634306084262124237486879196410028719843929061193257053004552339466648622030810980508662816809748695052167873585298009045814939116947376849492824805252813480536980552492288975397287020851375738671729980298123949361523661725828623311118896502898054139779129105310808437624314736401211383014619868931351651863592418378202208465318798201689596032152849417066783302491966448114839274580555144786354429178180276276339836964727085708357434105093775339919013411941284874457932426531608473509811832914740133116196724823772973988186167564115774377728653189067539987507988820312185263243895943865625032215827457076389625476611341236566415589341503270237994647615458476062287070303095419986902728140833455957230921790583785190153111613545354003343900054842919932479405426095372339232821658240916034253280852443984797187450246238540543831743922526785915745518612545166814051498527442177232167147725104594375286761875826867752134180891945022790728763775547257059070691377282008588957017929477905955766067745645208523591625721533907164532165744734768905401652878466131859098395562241037293541035673046482833611379059003589446780069619110296182114549025864655175560408500104610107205065446133066421382599388685828152071016415652491927240042751606078526284674717325417900690870678426814531130209209806522113475574586456675790478963292039487378902133820119230685637603945897046223947226580180921797477360976793656990213475268187876839937435169236924994127375704032309644272999882253112070697479963973812035620278987549315467650880472455561599351109041317187315332726515678497351799649889996282876170413704543516246000961840280367163289678067258315099648703294721213562666413532263559479950625465458978354973317835949517668325808960935448835705343415286667419217136228161069100032524961479770964646199361253796042373425950316892939191975087227080130656385818953054684201824071624919738461274152510976158490223334215894593467398798823864362713006267428244548572184358287323210055171561685166245964593159373257769325976006717594897703035109785414869386995411373318921268945944511797095198356900038410010537342955787914569540771388265873948413570626685380549593598618777088266726581347039350394653071824001357275473574610504260049742278740811823829701390496850463280977959753264999684926762617799914291724531998722775065990031789222269639826330073238189103866249757360143532078242473468587731808996544159915975293237228351583515934487691373928184311603182532992039892832873351985227505809868901009768742834888860168078132579317870963542604276195797824464844052007650033241940410237888788375058162115528076684359044474405352194508379154989046061990521251706259724718561942077814961472264744557370757214862181382408786262255012557660157573582711647772268877764148487865781985163353794770513645555091447332172636126472457755151047456469307426448026678693579470627256475121808092732304704373925456127304934080749971364385611304475220977621452823300126111622860607792960329385395737653318003266280843880952072088542890451456218838005084849461313090323892072792337014478554280289184251370286420075086027730792125280957281405095332225959486074480272966640295194656697804653453228609712365076433073114966114320865464509123900962010361813733074422457524884791498805653725521940645142526005300896576613126328361032340253375454160937757058594695029247527411535627715372523830620708043895512836602383936688929373096033183554255163472978188947316844903773935375656832547419833582173115371871458850606800956736236188592662576635900013128566697973432025787427334912860166784263336682606264868598241908973774500369287857258409859685676565105870953536073361769147103783221595276058721689347942720424651942203633929019767422816109953616453002651308428915874583596120580364032445194326685926046306675119490472771119264655181772587438164408734558375219612804910830623374995510890024816290980635158385110118054400761330085501524021155639489721028752595395370171688477578128538017428212652804651670061711325219690265881183304023391153712489079299322746526058390845891659034370387402895149922930395373400599740806301651902369823841429264294447227495406604715238537427801620135898540356099369223485379746155572344136786629652815525744098950894618733134009233704017270057046141653190449590754670927115700600838517750909450445368138306932373860202258492420402803130741387729324177486606702062076960580331468590899896786379996812037286180233644526027904880518310100337613555108568037902337449887697481820837792389947108580248424049285089959133784073608702146892641109213840621699770482064250370521719065039002542643777130106234321063519066746424138717939016631916952205436877739960872699146802868076021423043195584539503790867062904193565604966826582727907500572871487324463096408193993091855121089724174574936439150962270386326695752481156243027761667475428903577910320062367612942111535442632287688793245491821203460964344918943966185704924038376150480502125846007942671751111433593346258817769103400643022777750176095979850143669243850768530427288217244859060033432748346432985759895790188126214338222882070547112377677116807592565415743331328321850034166444653556138025100952318501138495855633589839949500187971081884344010552309117894118388175914871854559373447559326988991421777571949712153411386973727143151907029474850982164331618808494944903220585554362352421243499628091001573370724092207074580623533020371378238921148550701267722463939518598177617566881607945940811416591621523091149331142976061070905561568562518045178840553657956572553744196907652101246056202368197542187792061810618019684909320498611714791496783256501355878273250670812638940897020620006677358533384333817940693018100053668537640467704064418887391744467066763199217988093536887991652758164985328610141491223026741606908894422938058937007686468180971152247039547894540130628464967379059832444977128219335311057878060717435554750719449128671991735840824713907870421670472178723207175683641994691967295868305771336189714450175820364223227527136522188542445938429819459297936522696242010335927919779053786493943119843044967177976237640916083227003151382614343601191924610540890197624191282254887446294793684190809823421455303097999777889192041144747978575573863437528414536722828639308641062033246293905949463628844327497836114383112235564557504961529989966175764579158227236767689344969579207106846806801911883768431677778870631025749977236791811226814503058838269702982192416647710494310059342228284027193523718708545796775684159373822236365876212060067394904443979069535802229923016581314565965462575005368666869352435396289470451016024768316745600064639978488310478158341333281795677911508575527627240029609877202130592945038055978375467528375744905903013716915235802429396761682628960591837391392284769675179594679058934262825696991550064327689570928445790709590177484089401731101777567409727993419599445894764029644006347748954265505412634043676828801260434534292260514367492563015131772831715010031621348664353772389099291528860917444299225174724637538731329940484558569554650543582533439242442430387285435835785918598445256076917817836037765911411652406737774563376244947321511994644316587064650188517339728410178017033724105609233941681781189203751728209538409243270824211651850985919056654535891357388091988385642822686782452134838767214559657329579269751133474782679217476830900983655213069582814378843396376269795899521116711976981799274892668553259068903339938358070935216491275104229438035992587992384783967954219775587902138720791076464960837150584067023539901095077124219627298823614925058641578119610913406780364741432044456438872007190689920144031898221715746732139473974348115048841815955305331171404871952906724434730561510947987394929327463552755041723648892156229220487498969949670069783390943170909619425058576108126140100425080114303016311698902662004157484256605316958745091504454412671983362193128310909150785440150414843423500150542315949388737530043300304536082234272659984713091983442137575665695512441950145229434779408200774695204919440508123766138977325246662911723150518145365035927399827464315184383849746558555670113606697509553695125907130518427692437359875744954675472066436817759334182889986663775616037318775765796820622920247588836278615069627921961752651274155545961353254177233858989907754617807363824693247662275460846869395461031436612302548916853553045039925580043599481370038168135143400326211058291008124349296088467390040196117552678069044511525533530253838881108711275402727537216315837125385000736432530615461053158595583652076335899582123061251398581143598197310876704115227687898865266638315746381486372210812364794637524125400313946000105897193851347725813727925023843302292058647702222171350013269591979565865442830041511150348383847826251775293901471333642339237075488171461035949520164783595129265368702315576447905511537872824800422081784104121935976479145928596254224175741832051051942465897184953288083477931445392954621035179094676465054660698779949444872965807399738440087732099447440573874863793036818836304805628144945477737796829268990371683383613058338091747254196843559590025571666651285464969140408709984997612391617021657184485008544442401055453650340953458861866293889528172321899413650947225294438597450277707059128112830709262255927297033994279977718710739448024296521133234119550025663202324598663300008305844320267865494774533130607971941663785627736037312903924241987620266448292686642739535512363120377115551518949512295334341888241877454176792380381775311242130983738015592035074708658436592015173695529209723131544121683166457079903460470326363266224505812745437884765719459026826019985783961942164487190009444123408400695888285223129542398657601584179584193546729145858760659800903573557199683364076856232069708342563815453897441817078781353107392878589794033865637410992705315361282312374329939433699658692266756263136862261750005990954399637710484177609839698767565215298338866799092339618891270383500127299914765606713601743555987873178077810353621974101669122413783943362145309218597522632729721687848708076369620408201773992830221484059121549830021967595130737606428264958709629539245085494448389107263774617173039616472564146919796373929942042224431226059293045766767292463652599021854343824667612709057748568846599113925941876047870302234767320210885413123850394507066742261349886224990967243068099432748173082808332163010770471604790112586196967197756915518343517923682008102794993010357996704722730593679206011187093904553635915781537235100841216244030448395907954757125874998621289235635368567443893606075002453479539728104553859311186543354439683070876703607437536393957698427700950404931209192473012546825672910641631336457277991342424332817596129994762910959095669273107087517251488355807013111149403248625274943693008014633859114970474885524460664974678065858710024025076952875700751070950709463246189711469295570330967934392352375469750191087965848864949667185339286880963437967885345066122665030345300512854408767392308071787309777140049070755370806837882979644678389647129538701844029199766482880834770375947680989290435713049190567677209917704329337565888138445030148510545597761022778570893645634121612089019382061147686989536000092613191076713334825897465002114150014503855888031523708392135876853840088783965227851071532487276098443935896978640504637615588791094377416572316007425926664324190026961133063162615132342147437550744232500962490284115083118563326087421494964291985193244395127257816898787026543623744807100731406311255383196078841031142118388803019571276803764419741992636923969305288130362521843952358178711319203142445575663065497910834896814880658809127311614614790774659324708639824210589510141164095660558135908770220309242231321300595399604335076199316154907725998284727668618587608024941924289015849635989916775931392557547008252776097263775295041777553858679031136590511596016569081937001271571424666128964883026757557277448828439521564906344113826110341733354376953781625855467548128919644021319930917671285102304411005551005606339084216547289318611222876228756135723367386603059030004017581831678590823831249628136391835432075571139798691038305161412905148504892241010151250935472248972402866739908011733312293897254370513014797171975731225498710301207900174333238323547155913281616474874540610073217338221213334112020273171405942881819062250944956296311539428545452604693018314040084912529030609375330836262692280965071382361772616089459122547121125139820595627873540324883331798135168491512764157619305183361465594775151861471366098943965079604820061227762965450021341557981336090717549724863767899535962656026098642685914379847866495587639994010332207703833315771587438773042457537408339501208853041486449711653908098978318838984979984342665503212810811061794993794937074423519658568965638572694693211532614861541534027531209814095470239486951258354781323659422754505058664685719966789208168673097114740232593660086515300530097824361340248318792510256530563514249132872045123643082757822917164970183247878980896872320424742318252499263286628944791548265872134232530390945921836981616652860513729950539871340183559938072742274713985288176535955582184083557965684058944326213655546362854508931672943694807570829565902062761637542859514111263568705207829419422065050844381514408877793843401400628167036116762737022706013011258113815637956443796374310259086719662212336767961404132179602748874485141995199894139776257523778431050888847285674486994392722401583807065567845608434475196621537672468368838990481459043004823958987219584696877396758971243990560488773788649937528028289844066736608581139824349082993438548639802301748120775623671126961437301747022644572839775261768088998318537964027213725128957834694354324021803265966010656819639333760062841892792080675881887464149969959427887883359095186248990067124096840998007921761343107150012525957076428258524876509512663443306127547543883127286771696278574277119111253652846691651557379944073618749940016794183622475261469579260387531371931484210604371202746843464812504994955399659527275294993269702023114536563882724970679400233188067701236262455450983026981308041148126315576922747642679722352895944832484677210783308472691019717830227317478243055564423092178199781638072596285752924225734655223911587078599072510543505634877884248059089301728687413528994172040889165884398115128640647091444130737821552423900900458169615654641090071308640980190174370844242509451792021530253978150677692210081579466895930606972457062390429528392345404353619575465489108382616199866986767382007095478116934699036011349238451504932738613621439137880342196175338599583274799010108571498574553318655205740790354117477793235266727742054762472803575957309411221634080259788454625664999070137623284811947187773325340704613136772126017751995444614503648041061773770904024910916738704527284671604435429126873152018339917528114469891599519765690792086048861454381145243169559524163714626500008149363359748194068092814978675558811799364391645463412686480375725588508770326219552077468509918269242403933996973247855004020306057914653925756858298821642573534920855853228092536759609389790917126600068376622332583494692312047985356004931380648722502835508295324397777762433938658899032903333399504387981288776381381539634140729909719267394818357066596915355558642512497423929344145262790526475691246278069153384645279378732313199530357523891615612729837920460493220555540842770278748170619500406140491502938525012170367497483773815404938533427434997919453784861362829636434662124777748682426870572022078524113407904650680725283666172675888080913053223294580591351978997116486865107392251361123324072361827344428614810022717589585309351795637732550175438004029991515953911139135003553059498501130397997160780973326139955885183401264206916840094985775439609451209493984362934996699492371615346179506261473020638691934859250145583548304709066659128173873552676763885425485768654789508319615807155251554044965917421514492224575230312014642100692651985450995797084831051461882466343425647483484757539717957474729906461613604509893974314168648833760999938326899750751720037627383520056942010858785419591232878819238910670847129910925024707359055113121618997293577805435115945563682021003542367560732559379327499218761295974294032707413698540712045974820752809589676086327172305313358534404739057349260683685167234009991357913022244842280440094119485526111121122644393441576269415147401226527158776602829900917682451599175727393351007347590696986531622780637338608226949727979243455174612273968592753835651461425094239927684807145955145753166326369194051525691789086458933702346880882417579104242889393573388567839265424004490594216783275425801795080246982727330606982295554380021630975208735422497120211175341225675807363781989115783368806368087107533119516412166824964597374354296604927642874213907296519891230562997044787510248291677412262980120112385431946081971795747904749155908033116966946444191663596165528203091362339318444029262354823296564442471534538820944335508682679241501680103042194904753671086240385211595184905344007750044418363231379140812567073642577850815604515447715155727174249435118909157381018830953810318361688060692117589353342244132003182932128039780880728691131678836050103041764852689135697004247318313415399697647763085215196234835527214874509562621689418322916716559077695896384315827500204034894471222509554203757109058879911285882512417605693802306762490293402886108731158737628117941353198125645153840110593346031430907795729867693003848616422660932042207922145497359345020754908243964465901406822733252882254142206711892913908414268834365731136149312153617530310290183894738220040266867715843651975800260587670257533388200654569872110377108718887916903609353426905935509175729488868744239830127142458432498491323169438145828728489629151328707284001026750256179605089798473469013165134624857438750768851986386968098626240936330801785688077285181753354417909037978767828283047174570393604660563068207266188664012390499100704070191894569211311678624717986699411445589591132550741578738163139252717380299120565550043774264596844327320869671292519598928015770288000320483895195229027832205072991894498943415801515487468221863441497383999092970271890876375204150808348274549189613760659468957887255332108569047700078194362786409497107397899783808374325474578609472138124846419611862609830387249992893160261976767512770551866369681134705636705270584639396028660339468108995310119885385711126210433567417803227905342399175571858049577992702746575058541969591924223191147040592796455213523346779287351165955495722008287014101820789809206810661608070833558184310040984541852981859774527949426684548912893804778014913518438160597133945589874513682467133199435623514189150756627733132487312902998360506436913080185589403233877873448605120681584134247919630930303047474712662352704123817055216911806774588245774163201277697927012315288047973437767438455247170483760483244842958451848452465169202396085439547636218058968698574336509904667235614354352197739641522925418689264723431058621337603796797674685304970807835322722496864580198066929127869554915089782503173166094026580630490399945660397082931235779416545377058047591579525398769938315912413094765455605485539324596821472184314802124747363005966348998154509050856121170683558767311324029214498426150893262923296829404546994600832728453779329468379814245893420606257235039544416447024681814983708828351668833916510349677104684817273285861680346239840359154964499981221685680183017105441790265116108613107404385433360448304006561105315441648751565370024554350919635876894630170698543658118256969695727614398577631213748646071071152377893829861862287383781399399004662293058968486097649260431805373851990842827798131150395954450164467656455941065909815618413774227486194883877315764253697443278810769024718779871675173193256166135748599302362196141094411499673958627449004249482176518227401755090742588749827037974989519369530477666023593809711415386317120371247775704238077096025867196700654540987206405997412296263997865753740060674709206233380879701257699176509756777579993800518451140311332473717735875739615827514861364383125210226731569358320254160039195205429582327176823424330530366371047038667881346447891089842453344731835134662776986721190895345135722539811324871642814262453216552351791974962613521720932188007326566428413701683263257896142121310088362863514767785727446271606564155082416441594335252675255114191276778017253231791177272503357824313518896919785616031334362069274065271442004508609599879252500343023308218419037546540671283100807970781810151920477948413157614625859203438670232249129196705502331630618904493782528230470326468578350706304346578969290274465911298895072244024241653400665627099829384873102256824457976214174518070410347699254681791651569067870727824697232888545880255291346315317332205804646364590141577873876406135574890795217688068017334740680978742278456831914589893398567449593544979644446460712759559741485680795132932385784564808482050360635122763189828940319766799703371323878636292601399165033255619135765115193461708891116335983843619537561612724351646987231403661594631890495443708983804634582456258656067554322543821615337953945855213332825346321892001402385296817718265271735961260926980151637563505544732265333365388920284704144322131399256232534091717162430641148879987893149607608959464595081864757017443683834689452324871152452639402073372223026179022792997886640121623700517683758428172301971962881007758097366588923484079928972223608244117306178881860965340636207413471894579484180007358564020146848187318064036925744142747721632893358084146244835786395352851791587400967949717325904664348762131445711920443328117822991447543001137719452452535893535151553434595581810898456014514340426582331343968582060434204005733013200685516745522684622506061978405042067366982575908541281782589026241270320347871894969817628304682843159413099258279195482468110075753552384314213178853130742577698578772289986295933002581720459180209172251770476979541734965328924739142795193308656516607857134046374584083117807573740479896745740202968581409115917351573608558397200605015913419675492346217933393734325001577965524855290814344162162804715154560578376515067912044781561940220385150671290959948011295582047249132102830319919558754824335544468412304506920701917962551671534426780972027603906622176693963879997949615860499687644155832955406185117092445322908463790473640404975652233256575700282520184571967137594391257647146234528513183615191902958042495678991302745653508758806666499929468606972688801873980281271797649650821478315228162340155900325329260204581055823928554613234121060252232599954299140143415079720751567541517939886954503294090869505109974855799029731107505542981593835023921866975785386666934269605374875205281424322660064470271083702022649371382302444623422683830998962179420440841085313094226211238592128635103195326188172967463017384764862598125361227807350666631206846595579691984316048700656694134862780789125713129749256997806868100549587875283183050545178551385964652920304459784354185380622457827776433596994260953931925533418313996780800178238781545719614403500921728204665973043133453952673414798566887312880185579067649476048889867736848206650758741821670807097969249163452145674304982466763048677443917547732108463410112796309355067513675687506851589748873813596909417284814686326558648391047864492525332976382450905379378821872901464801025476721627061951206456346636715422763931494860283066404766123652043758397950788410776909893555368325356564648012546715985187455442463235023964076397416287700063563519981255955045450369383120323855476673887508007605015766392125506115628147028592920369604147031395405702653249224736110456972745974623959355750497998144046346680767632242959019607398725828591785130310740141821799776192816706903954083758864871333058975515036312903343467525153943671359416330042659883062613393271406939218076624212019810572605066809292530679027703638966646975221955712152765219698495627828499117172419901151663136156394951377268808788081249578136339004484111570641324745824180441668844980270820072905289910358734956429085555911889758495359133184987259934722063452183395045891810098049588908272993387713890339119621167443453488671418993807665002566371578304792798795926163522566101165493737387387128125292957716015876396143570903304483085567932013325729340732491330209637176447323717147150949441485744893434988684678227188537925620121362413253438722365911874620386553460275513578891884866851811512810467406410964107885501664938347022328053366473636470171804970944642485793473292944731277407048134576919731338600634107718106919140455015310770928839461985281904440444086204681096944511615568116860405746856732542095192731685471504590473972617966949338385005155174469786858579167130484060578618783800075246572791838856032797174146947079600611152370256745504851365857631050332883220134677658596009808091883543894404729696874773606688904276632988360785986233197323295111688975114929534630844480560072475347500134572724094014590955373446801922939169262323421653759153330011470825965303432426906524843013531481590717448877580622521944393449086381936112424423097363798498352673268484990375011254696298541575531789942088010908133219490280516253292200173939395472301109025731123216205442903907653200514936554501784260353980654059718608213712854483522846892681996645777457975059989647262881092959692923807986665937554408496225080004337076196903999326484803734290591726757565877979316227753622658734167090725589730784155095904089435997596532840860057720168479108749786114578658795133896222213411222249997104803590627252988545311437531321460781988551335728818239296893373633209704770742800359008192347586322057058794916424982194945950248357681538871923728144672059507930505663535645961410582725199173286942835516994517828839815450432970312446096232316970787848509148682447588844291389640823040119141664807963068256724362605489221743113774669351873804353342657379244509398697839310645590432425699616190681868852162602171235641026196803229191252667845308150427492192401984075542385897339951034522331313472583853808054012730444691970504629773252813545157563521939966070981762576324155507527111922594680345923235427405002757059684785246664902343221773439867396976068977284910342943394117065734726908786408734769330050051762646337284521499069391216985836498778316136661385861352398502378106639573754371086448309704917956509563571141349652864510132185212447175305277140100337065054734614173605761401366240398500018142380681069845342348763428276419379292974041487705526871040883514299341494001458785823742487104068603766702167744350488659990264498454439108192087928320524893836525742276032031626046984854110806171158334902287027883389926863523761605214648079334565620119085758039965668750399901532261259798487297156545350397454847025118549537582255253126493825176186978026025311330970903987010101618006421676592431687577388117498779855718490844861387765253915630704712031762990216978752941522254158394444582731184650763185135152411595748808324624896706454680594356739320415973590106419650638695211084229722897359907369252367471860531687401836537242111192187636381394959369683701180397971391712690243370094051528507454162972339536811483486833392267117221931879899036405848586522989447135390743071548217576876533172974199234168769154385055331301077560058228622809019306856966735485794722570334901728819968793059523634030806014039681472007320014955246165838704872996966385458111953079283697156600034331301813725724562481649958726909790662239949392767235351182065121254223113431545469769844692730841270716703786198949598248544312801016618216173304110938001607920400638583371978345402699742258996605468882962738023107989690532497301829544621932122035475534925069710220832468800356387829881891404997317118496132487870837128315246495621046839191533690598503827592392457396801881000161519402997530524972415287271315886481677083785595311528313025214369730135371649937231016326037203249215115957356206954883122085207153062751678904513516201273448211825799438443034544883791728347616362948775885892367188395123008054832709686708704510844214868796951050147471517317760506433668118243436867564871716056145976892762251542017836265661388619072661539750265552588898375711395533283751878178335197307578882821072605578022051203958529859675629971899569673106925061007468558045610027658105821332504739360835221252378554582544870296583012204727349348184525079703612582691448075247997272956342297615232993040572044112290071912549938873945260127778397713519960964401819394978909440503861329109277074860391676061870910339459732126963559937294163211917598793729770554401529381631174718616762368001882324297301313222911891260340042025781343479298318183215461434519569966222397764407687793502058705274764329787827682379443288825025220873674860846760634894179957942794087946269914673778640609783627866598817998881209940719819727235396520282768761400317602661113544541382739874948809421178485559672491682415499996249998031653466366152712878429352555544064821990201630574390807825123135654815081037575741815361614369541805284253183767754637163443025252066360658992112813236967010959669653917188540144248379495928314223313037355402503809885684605830333797548143201901172609779226509535209150887640078313855126004601260581483538665150698705912909544447966574329593955478200293320480297246590291928016938180196511814290818979409442541747285299654231107181383944814363217199504487687528682973689834168964372724121417198694311081538139097792193910495835455848068728205096981776641894989110447033647901517919378929815002477743140204814284770943014340597154845223752910788371250740027210723488064363861901128497337954290421630266227323577666210878888306873203277618633308966484788981999560278795626123519464909287775641933466876839577638170162614422529907460676261559597453196883306018573587797675876160898000677367134733794281568671516909907003391980394137876918747011866485161927067138043590854916020421284802386865429101080810551484334817468210020503909916159640115994109951897831286794932277868592172601427338272863143076215109777081903305979193028719068973809920228615773386214347410184479158170261725863163515806208760587586079757611366104366787084852237907340420432373265676640808487654169473925194090856103971456267837113126979078249462114229459625429658938816151181711595634014160830866186168139636087099716547048628776288005061113289039076245815895450692682003725572681080389664124246889368762463235809960714444891287647191362441412723868975264549508785185542334639092052195029716740078900521673841720836332539453383988364393545849274306030734101842315335878437406086718365534234451948437384861623044332003395658362019462712857379178351742359664898220558266342603221177610861083402376614561116802146454333871633248513570984606652477111717351426751966312941468675389905443842614772039429125433803579194519157231219949971587835447278373190910568738311390182672444585957259145531781820088548576495041996760857726115741660654264222058027662856812840707705772798466434985966731747279103628300573655894188333701586634610074844185424367055231057011383066926653723485919203735296390742626783810195517305628634903979309946097820162135227585871841712453642820049342504334924575921831107051513923338294293936186572991946198650406389834332707230295876271373502801574648643808698578789836012998720321229892926296140472168057031008594746639847500341404111945438924170913002055439809868950388012864578811869513625590882841112619406343275619278589439756710846871990629058968832458387758773833438798816604785601640375159058903343251979363916893239585944372632432718325920860401623610288729135097394456878008402586766957316505143202883303124033294692939659498061835230876828055593115952151875574624796942378448796039374183327279106672546922844666021310918284890900422423547277812634294445598458878869307391037474734653961053618078103318921629534144313721942387291357328006789510018478700733802246297952234696471910132193373782891878555775982406618320365711311001410371330201406601322139760577012323562006600305695681291747972106488124099313174491404077487236403322008452883181655967851620334539172395584432405026918436229264496956511987282057967576531289821160056221386548009617884338563251468618309015044664724586306934556141970542785690365024086388155803641788453335219906635635435248643346299829810075891139112445229686675224955201164391768221778983021597580614649475303407698791506887288733539029083616539597251911059374828156589315227611392903984202282851264503476745192859744766904387887168018709834277570785941556377324036795588303585507750806402811076625719522994024091203600160819529640498520337429707040320741449225581691524289190919900412966026120474515851654897353521718666348777707104140580233704497921851117894030911131011310777154628866617218970198918161939872476691173848879317845681873221021134643054275215983102042485731539123322640805432093330801256495293232428468500343928007589689403725828184870684983496208117668572837633665574619579804864037795455439618131776123553597010013952966545382033827919396277910307741168638552816767647435284026941565199026018210366105393805264280114798048082054205327158950169574030157208634399724348904783187379326048837070382604449900473956822699239823960777261711960453687195334214723086083162773009107869907706783570782440038471649459846903161030580556306154028488651394521753064857797199446223853282835205305296122562219629510699079896881131739010540436807032902016300399766863410127164912060022156769733336887796272512136880328368902714857180363774959745440154197840308984064704965486691861873949938365755762753922077971525582361095395321302314300514350305263717790272003342140305059071593393627852450699013730547388143319883294423869866909483778763668237298686216842654407714172057413984658341714587293526332645428210598690228403784736745240994506293753884509693594463547438098246089435958745147012782468919594387278410653093701440632517885506169373530423923503124637198620814797018907534262481007918311520949900975799043982146790595984508808232761216196792622970550517617080036624935456639459065812702105899702129142167024770732044432284406322895358160650546879863977941932498126640063302872530599312928139619226636917068017556171769489897981436580080209794551448447663074436843377423719098634560533145258111200167126326171780124385418860401415143978667034920724956936115781644844236501999708964646450390189667092809538474624870037021146670687875100749883903923300476230216244249037978568059192153505450851125053289813128995314365785852221260461286694407264589762324957302452841389029617376474373679296227108271623879155667613868001785020952195159526230787966267708562395511640394027522206610248219022884647734219213072917224712122370978535306776571485544507763954129625270553245687901427600986970914701987966216086280312578981022462434374886730863039838420965257834744817751706910444000783212471799158230942106327966456004702148101181516573416332407450889528904589291876345242870941690673460870006263221070835139804493517840062615803463341114429155722160677639326114955917532994735290144245060567289887566196315606022541661809140453632575786805336637255719886480784552978604776795941912908470472020163556796610484446310427099472648805194825077820232824111826243203781126077765946465109089622816304962127928762395988840033017731093648639999967072783135567420046752805404230630972862287990158747225105396284020751893071272838166718510002078224392699958513227519951508783884233697900542972348854784006027876091159444030374821872266048634010574731252214141728255393027641013175435187455969152418076820565614383688499080785118568863892494165222702198444120060559068999587845353211712290523096830361163127757058687654435078197700593966718151349457303407225694591346563481906382712227258010676905429050431121876766565167138256538434302096079633747622397136203798895703467318264422163576155096276132617517461071676794654423568917384736983519893515108173148267766967703668397297561229729742054801805280565057675165156262657916957041992492041732382184536700500844600161166878022187155523021384103853772016262013466125450819622161731725330630261934869585604432411191885743882630777651615220158278611066210663033511796553179878050872883287155979585469175775901410191844279287882438300539715585707859033144183819761761174216821881307822940943968178123015935725261867562431589909418158850743717316744140573370499297484754219042271478545967129661940634839247572923400490951001297421611680809186980960944560412676397224814103175190571442566095415150389246471008363658011902652747013634499805026859726072150184549579062598123977188832647744491064324794496842554254008179239641168993038962546916839016378308536236670021742144831483894630933295302902432979720216580423933973177882090476573891564440609411023435871099358284759051366209489658579951065663176617087204371023916394350378150686643990257662563867506978801080693710872310549264581001389298164646488098910167370831489630853878524179715325758536281189316877628602858568236114658807232714576036283274225930801683927084101830335135275915855133392407881651656851256075583759090552032736203342163026685629463193150737815162485536429089470408690152355953500545154548397841876808578058263904356739798801731628565111292658764235889685838151176483762533596288162310838253583791958947885420420493159231787692142160599525011267442919055000365389712717123842347753762457089266890637947994483189151940186742059231818818737647932626391401181189350943280095073182793494251436187115775291481153573551132279111716442963456786686367637488699879017778720923094363802866416965702332872878924809700134726672414557076462237468394526628266837526696493216741746769410636512291341002012210569057691392357627888177568610022065665441546198717127724611265045819458582782819542852965948573832201016212437353752136426084898775100743217866553576385153736846000932719554651363582205950577524387061657399922385743631349774287371557526418009245267375811160805611842199085412235940740859840880056302163519673897216374025363240153866378584028847221580197296951512399995849561427630038952175850362007194359415057428067547201245700007152229413927479742232024607386970264120533304582256826109266359647428678091876240659411204448876472494964682513227531299002900503070581335467603263143848105736685753257481117658653840196987103084458511620950074185262186014943044017024138914015299272423561231219717814589070865061537173095477037719676238855516168492466529724075750965988254362591257275212077342095061243439760544066227064395287703833929776886692856791861315783144980081729474949611373990739445007040553625443423268955826534403783036082643173945583313128198798226869835570707319499883348021336876746812272246781380263146922347253412220482149231547541252999631167767936319893626482115778347531165453956366703638353478617058296551318355178051772532985870620382492156879255968878176568624598869279709541334492966832125634438869555535323956049414052741903480246865452219814292158528337816721704914746768753399778476284540302761172105747516958566448941453136409523244928962365337108835144571060970179953339469372981934946691506318397791215017654404622893798836540005117692685163242247151555127981819612593567765003149023214180407093192039424893892771498499529464643515070823988108786575058559543587459622836442267675779594095761884122563194067075287174716000364659579457507256868395604155001637062034512784205608224690727404551899923657222043273504563523907558760653681660398803833601102574647533450551453983546070538738801853159905014793746919357128268709151298536805930775689816960277313493118458488863711598393417326071030407940174453782104936768371684643695217403656036810655906958047828731798067072733503335519080670423030695425759451717886995515353240191400731524018230577238367768655125132512923387802352769713140769472904063243371293170581096912733753689899002891697279889138390745063204823523541769910229503417673644578804306164075950564694099656333725368612853806585727581044423274561082300111733982986003980236162007788375758752855990325943769332152927863544242884659372433567917943614382871654947499359152940915320103491285545495117115174509772529922815559537519162159878413247176081569146509666738244462715858038539643000796398919353846611417370544570451070001412873995511367358321493210229289435064639552858378912889313073631046782354960383696561194911068112072945581699856450714502878172344054034941477096454308329819742857415297350818110215465382267116502195666055199755502272771257069889574856604825776109497228146765858068302743679249468319042412826884762324775801002472320633647227506462463507913263623176201840625948427273441405039924647656808238247261653962062571286234057366649111954377317958299462305460556961387344474339425772876492890461834138783921031541608041359678568348699582278495908903093676108346767105089880000293422940560695317786978493296831979389268784351841177497605029020598012699110031902817071591497588918478018700890576384185562970320502512839705047556927200291700848536738007374817240992945097790220774743632732921376091864728213400916057402752630593940039339825705065380337460612241344736224243523756578888245158292029572418414030549490233270312893619626686466298001294439500247184028264357490932198792551263036596977140053231854414509839958642287146122784805768742562678288730826925891756549621227349514802876786776026241160880145259738937601699549364593518792738161844877683746268852743218086611824295116482505790238467030032078964164189978174426153250762734171652607969076336212457455082839985769385657103664794769636042808198029841074083128754644208359973819211823394409030404049730235233202025864361791596618759893424939137000837753693594848289785811861943994765210282342127974547239856967244104184401460372035686080539341916894604721410486244950255209837890701445608929321485880606601332979015719114879188724426711946501578886211378983062041374755969353240221735301033080532491107784418081592498950159912695910331201880312184877926192208180997409135061959338774963766074885666073939609957564303760018755264047532779435297528303750972940371379768712091790205585701475129927450987574216934855751002516670151409414129615367421165504488522065339855147997691359927180340104175615865231654050161687598505225096880854924161648858232599729409339491907985745147311033759276345690651303686542049694805807324817575122425512984055156686187814753291311775443136513460552414701529831827347684842976906532306906292504792336565239009313457220385908589803829762847069563956839837571238036911914587777058252097477607686286198864774892327366393422468366315407759386486886604948616734773139063211396025144278023613335879743159509585611874337677997201238386690736072099099992120615183377630139899129975362937716239948082738179684247874635897723638409802940250127882682384461516082020375854350335704607484312486100675795321609680173154119526099075335740947306083885511568372619677450908711279096023152024071753471028963030618984302404169106478160712877402379817113622842812750708540950343390228421990296667797369384265289914073070677375157069693130167276605605537840172023015062174715417376027856769267986131896490264672976961685138274598949896328872477705034823258939922711400032257488842728566372198483592226839947221666183060273076595116044684316959597742780424639395591614394946481113117919215124301019723636067713528205470085783248835590893862942012194560136891328215679400837173327982920666282266301160698186066096240522569511073493411844145388708127285749926509601957678017800408704356346989837723274905401876380782868225359065461189816912955342613683450148322436253534529997904049751555190556257843769423973950176605336499011890345128804539630039893096882621335342907985573251590519937736431712712563573225598016495254120203192914560523943930069349700293098064435840421419186867481661302662177476463651119858525018607255735839857905077595431547338690175310135453135397009700845636045663373991034042789505582996130212926563446368962701882200862186082732349604091418976562788373833737570540400242508846116370751137719743650283369230330973765992324831793556924470655381329618998423880389089809909577612319343909666299962500341100029878339589261237584030195691867788822565162115417370362515256823255222256977896401237441761228746687058267924701649516530310951887677232575474815841742606289300437107702011904578041322856878814817144750181549744690583927359717462395874666636445415277587458404348767477657871446805988590250289995753551906186792949128583472640072276946919110013373887325354775626121088585883526768995558619502081253287814481224368580078505117827004568896994592654523639998181129811383074205739635711591822812631313478636209560271295760908183966374563433068945875650460403236500336336383828278384758397531734607385990019474859693317811889294852635938820801860152861900406439116665468137678859393712131441364971910417913010837732424457803299697327284778438140027875054145450940244707108454207124588820208962049691300054416457120133821505234067935927474292528569864190778238493362977799498782052969006442493789282524035754108640369063353759900907977402078316036174558130380438220480215843492414961137406697017164787200457820008415920609486893259984499970825272618336232328134922928240639806431491977170031035601619128622080512536480434998454501097180336626140390878809574882039936100546973937565912738236005946808903180557235556816105038883764276770817909490291238998392038550013686396420037053275728963683695963837702566070361868663322866429617042382532619631361771141184394339849032128496779810471876587711956909291793213871908950362625057613038206256777973706256620134469794595922661738003885263640994701010039186995351195225955647130688661083243216364052428474797593921068580429149943291198966762637637616944567886676236882398650268823375487584872345403153684199798416973486219005815348381218579567577555193798429430010684273952599201105749409936707169459764657239665631532038167875234844903122980132476062449392645375524621080332414609907636012923028679747959606712897717619022943321345063963193120007294403262230772495808530083344372568333618633280030469570318980914805124028923218318807702925566543073727129229315140698186122146015967512404382290375591969792210354224760746236203897012648001661677157084077141991613094918374560190431759034549250620506561363808274728088237294659388718874623488138909666599541757790730251347609499381592371875359585382449216379664730600522818506805918142449610422130538087834211895996178069772807587656314342958976101680728407285904911388771161485230955083754575522018248516650814082800946564715056827779254129238189371038941883002784753490829747035702692580482440591691285437793843993534245834306029298367674595060107928903344958453334116884736865039083669960710852521203377605256704147405529574333298908856864307083560942369069622996566559588691236519285876961947639992466621911579866524680577466336257831798621833774499623250333968827646404692385973982523357914978066538579014663842960737695012709786416390279952135506980022831532143558990881874416675722521980177657352088879212067394723597115364056441100457242706865778427757527462209382497270798901977721327735748586885665800332035713908092965012457038504076552539224909201614313361710752655455097210008069042394580433337863527367369161417749682541802494424356965287276630814802055744494339059069365940614783654483677094903978170921972840649143595350331696292789501851835148956788488652056256437143120237992654675572695536985552639918700323373883575033559494399727514348768397076211157099463394514029810784472194298923123966333951017547516463609768466414802961002761737527755027845895562424988822870697025029495457687402719262818935910378309530384160929506619290466710920874866592750026070118694075960981895683525725089670883074802773253877458456242546724607658645193885787958950800764599653482301545340178780571834929995855178847256001716804677296120924790770428331547281738097886373568919658933963302448525085450572809885118419700145366515149957761036939503892983600464414712603878797922282286143333126614933343190000406198081163968323868229852149658633711181116528662693200867710043317623337272244274493454004656191276316766831613866321041385024301092855088953506618788111130046526665750072632190198500241137900587024163824060544493325583804368353334566331128090673294224813988957378884213229722190252653521679925644524277087127994458365522388049345359204312672049577231495652912578342783229959318447901059041162630396505749318003274002988030121186820136021366419838048308190120629363995498930149283690564690389110936649638035262317433436263404350150596189515061641223258813062181493276047878540096430887393698526882718600944530593415206029633863185281140747943626521462800277603832579066647462612517952527407577118355249792855887125308621865249325744227814717507826580124483303167466826092855507352763296210250145235677252249035829465712734931996240213773153543179105342651540186390524917782169334943390195477955878210830762610745352042619098771767790106936569198405143345130633560604041160227386402297872594862752033031190478402693264592892233500441409228154120165045466344665552100698301154089426973045858542179237116425938792236284385117640248846024295428213858127780189768974167178738736159701874198629817993918243176098590518126259181540654922068595859939701472440307320754521471845241102165399214510639594878558004772957201674128498575734184713029356100722547081214380141351055059337057195086253760703170185227505078998912670856600501901398791684322143042968836913686967820059551154512692791329558016727916216389021563764708453087370937928668854144262164082007383495956918642383071803055493000037849937867811852362685133784176831256059422732131761860819834711979452274571196717399037483375174094698944146158596119662966610070522076160846129303477815291255576675900825362830868797534657545905316476377482700938307718309619517375218414650929360412586543069215776154685038720181883616159439245963797696672443201863189639941621780273515473704186296427032493153063591749713931536909172566999088297320088452516530738371054027103416123435672886671202052750190788554194400013595143447273364796239663789500813681742193020107259374454207132176791879987258727798409759449735023333343943762965420701301799865375596311550037827038216366077795843510186048234097439606151450901102408077653873205972320702711163156147926805977912932780148070946469004924282824372453496164862884802252726452645834737244993617671868683826885775353171178185535561628582507930076873392479471475102808447988787765407581224802762631828630720870385460711935024053968090487539338705445892583281923955288772760522203691157749242401350232129926308811110464537503486731602557256654204026762231126737090614984546381241704783565670959059606331497526342630203307815560276068716318113319164334706370763857212204646037732792001458425064494565586679479853257282043167546905615110545196322762502090966177862964403453123099227413889750712519937358709796087274177745032794242136294183235592458579355102247165587758354089075561514577833660404355009862915221977739020913427423659163098261319130844761111661755322155096319633731324369415858355777837854803090685718222746833467112585026578705731856921076299331904778300540005487565319129563564459581665823825874265252935729376498179321530736324992239646370297857526539436530850110737610772667048574231017414145676642818469999046315983276838316870262265766577166463351313806608611151733957437111974316911270352358511375788324246811237810149100819481534453648854528312315894724703084763064067382700908925883684021914506013227695607219186334341064137223591622447580298209709433766588697911862451114507606912952729143449006311160622771227962426984834342986923643304628243169961772005705262302473424806564474218058940758528624197374731306472876128092677678947492374831142485131078977741988250890655391426934063638702447589695206480869341741685514681468330046081046864466722930229939990741700201161271836649802385821786306726149646618887816713345502945184466212816993656354870308526452247790067112996642426000440159182653448926001247251562178060261504967879532786795819822473437545132127386101276156673621120525098148650500961498782183262010780739879405575504398256171063302743883606384140007764314995532302181972297715111052289258791504777318660964143313434198005125702529559198558767188432160205475047637256073462828962200975581374748099823269586499234940611464854211466995785015335407076942516467110080191976305698154143577537535180683415719790835153428841717633069957184242091226120424635651030598429478486551155108019791779215146422366894686766827729320459808566253607480890102065573639647135263311922928880714716686492008384533726205159210255558015454702445577892041721629660747447815313916635900100803022128707906036403421724813697890576820145047101159697426020789313488848007021359332059013036338132957918158309915577771248324867703206170482613057265980570271725085330589113817706404109828543151057717539754669502860088901921634580170457351495377641830705679242877785365518113682405976278304714381654449817838648656204425391918605238458347492725031181563066375957928414394415079162957154103616839843318429684978485046840396732298894067338272024575577693089912703973917026763598903731600892585829148808375300445362248889106342408912738015769606038249118010171794826192164472599050436775682145082387242029731699705472289481391467525371587155614833571875513414607174543585302859979562804841032101738631740729688768867761915666408261097033884481670211353254363932129519252306948671677220144030302913370338037726175953505018169771987922363911348655413798641011274911819308169084140054092226378554581406849434688949934593894347345124068031004798109285207213081804877622392422692659700132575428134640805915980193868867570677087960457890640876758497398459910683110351852904416712895327826561645925028067275227950517511498640394464899026178531935920680135964731242833031757622001105463016378090230975006156924157217750809793182431103892966740310352584836863416469839897151701460244186327876803141499703517814356592084079391429204694932161903728862379176694364196062795619272470620178471298067599981066237233106048290024874958214276965683837469888179172290757093274889788203683115852096905526489445835340344246489026714214765275686120990092467855426850555818103573051733040018510003514874475219678385556167491246728739481201022388601859973306424976100204282413007490499383011682316339954162489842471312070567589921991966722280908707688970715042270221096116476806091197347664682120646197088830634401009347419646913916407286768315569680916091925496419324380719487611034314224751573355663198576061714645348294680512687470477079781146017149231529093489468738398522472502204028843052398458157340650174792707534155167817073382756111420811129394383173260339126429178291905251772234063156560244142411725520085780755363475404232800475384946110764779389092194941371636002972397979514808657283196545802129270283025768603896015808144625308766228254681320371706224893969928283439019083709016462225616436603089300847592087483796676734059001240658562629619218799187997015149748935259818782174087589228532656141558967858290457259262342454047305341238462501443882233907559152864814410069757971801363238137089886422387085416269411326578920023925735587568609710659379837329259828643210850513626509699192508634271756767862454527982492148186062080201957330886876133213709320414553377686733611777881577139456191188277769246134669053739581253462164963978029406940269853016900048634153467108759643776628326577640548571948752612300148108298963632108631249524031129328043557757382057774368739752166941548196984341663051324783875194168825974381154127646905484356376304337552133872265752238751266300494314354072635349764201338140114890385149448517491813624805402516455463499529058654426506104571436885894932479014077470911710887827288305919528976891536398761521206358761828689718914372053740990521370588237028800638662614415322745082417411937011901382301559287594083743929661001743024694206153904943933442611643140999489721028902408711879164182774840083338992219045763200220715419043454994818236806542725930071251191588256758733767838899060642630114063484786994472055096768901156467739611711284713072681718983831434632464764644010217876843208872188495039687212784605017971636698471274777455439545583780243765574429076380362094568320711104622404313988413700656473925952522254353709381455727983471847453221484313641960580415272316241574285720083516686785110511829853821643115160752886113864660168188928342484556772493344746182972600788655089211598559485743816990536145423650234269317042430778202632155262131471710289592356388295873488268819627218017457847057548450951625374409696074096322190196130790027202332809878802780543924776809309866152332371964951965797352952473517500086186759266553166351784236002833541160009967128126374234080730001631988469437913329060510024422508606773920791777202484420807746792977060528456586279109884751645302136434909819608295303125398756726714483497361794326693627119447429166021932808046048825461456383374127082340608592617359304315927316863516452436480782568327885966009815306528485029591412077892137284855832811987382976040468213362949342317419690139784776546277461052337453652256982205296735037771400541962616732555958723854338229844803919416747861258350404364174670521132596120449189344449181017594657989839200305492629145478802933076144022500273236341061309686501241775812680999412334567522679420813252076459254442067841838701609238416314784749078399522269763056473511834972688631501010855035271434474280021437415124529357610016976447657422374090281290325222696397594312241237005671458254462117860867874035504227845000765628822087424687142428384926589015838372884340091398167769645861085344283699917516564789473282298672625785525638208731961577353028599513773977630884954282238041997775237975215626530503244231335145533498455760904935569005706564101943077240305837488901918808359206427350842597569111429292883927054328870441779934414229762717092542681989131619512769065430353736671844319301606329035327513074710899487535252323385651460119033910856281861706202057286266116376520231601569541106567839827728273714926760657592894319072373291883796559754183754847038875810657978889885915500438758790680204501024577897086324034133685708366602610542020476287130846208967803445811639544050007486228138952839314643955103800591997019899854715615679771483668355602960108273217492942090312910854366554950353446237860282185417968606600380081272267281816973839037239195015961236736261137036224490643890113146704492286507029143617771077656680491157831089956286046957163538253075572736894341771041817369648477366851016606683196269285265999074653666482451679304473757196147046800144661037365361509750654736096122494709143661840294963798685353186562959003655782278034250573140986379873691820921073522326784437236946670970348831031559271379113605543583335581284932380146197791217148976253691333321018503143119633680661810183033267977534228704320373670757499972496973482489172678957907721049604399945783372720844888466983607093051930229626217466476767342199387559095708221071606235219604529339002666662822255615603164343809292047238179047255457489590161058196561847734864347377514140682357406864573840645882975791818729918217383085180808918541042826813553586492735782457860755126784728161526487228045246680326913882953006771839319067233257581781495220582574969273668150873704057297406398993878193316462839728870894018747649520700646083245074870913656660454762811530445903168180897199334968637365928467811710703597136784914981079348663531664405780744547450912640771703796730784097548201508938261300031106300863458344012062572510536398685417562478829863118769422249316413319255498153726726039152581829371803314131101763416718211533890064673379005889225286418946967500764938445818316365294955640290082835268843383230765409609090672718134869273602891588801583642785330014315043176983970851225978766162626476261292923560246675697603148350803508039901446716240183445892149990685418579805034972649401846093259539521907738666167877852691524772005890500843823010904091343860640564064910824856850740235260172709416345250230153777892587239923161301720622800606419562282192277568273896019094379896557480843929934680646650714606283173461748860658382895287505862172219289318348084916955368100390762190964314600126092468295700070533368948801060343972216659015723340863008314471420274429993754498355735419403096850508678425965241159020728231002863774469268020122793302822844436605715006542095446996766268952828663152259350247874099503052393126209917024021798261249615471821585366374534423501060763155129694429677069717674706139605993978212496290604473495347525390966872682997707746725685530098334773890191337718115092393846245681346981611201450155467626546663911728109523820984706162347435778841927208773134421644573513463456539440190278329358453262351915568853317426542421966917779136828282431924637390463096294059323708278456255092337251894268732851339240279323216397270071272065409333285563933673898881505024537674169919871448960494680322828401253991720318286435472377795220776608888928246590706702956430905345784285566221511961090560483303124881292565280801965368328942851859626482403726589463141807970456688853442617685614136855012319673838075795378252204678854576608764170628460059117869591456658613336626921377139873737608116456610372332892563563859563094142120703283341958803500327527969427713503094188780496483537094239346133697871022070975635133155885446750642890305571855930821707161933311073727838021078719004125507821910900937345478722271103784613123370130195643144551920172599122600284026946516623984949471669499295255120915119751150984261985495949508495081276046868644971105697423303915768878771377516067457662542423464959633295436452959830721830617219923969047328035833755041922956329884722755687242863057617658882867737082724430190108433816351752797505867405205639111399344834588126483587020277683131888240410216648513912765090830009562073204302206202379373166874947807888689838311116702020576609366233129191553493999940758122937571534119478937034856652456653071538195576561164605845193884691941623273839129270102651273066786332279381015271530095829905699105242521119889853191031361639815238447939560996133087920272127822866939632645359202780073029961762396448135083093300815879798194661732360461269124053198276463971790258794313873954912705772662574270073946947688766856941981899352680971440944729142022222274986192278192255292762515216294628659050899486844209800891149712442962962870321760097430216690715717066012775577809311063542630487345516243922185375917581310822220517273718106531044403027447526255011792558810001289833820308301804093484243456563726303403446637894993454355000279095236197596285139421269088458337702348529055526072399266781401362733854574741162689615904364371709412310859107606080935605960397745689520028758501661273018799205776093274036592141500206210527280581224342394662841037670502280454546790639841723435477999157046176245695125649918460717507539827237487756771627474005532353402727053432849326189429122571086099332814978676897910903212943929126745381599609793989803603834898131190219721308558888907193102872245717292626189171190109769340942555273480578106798557459212793101528623609110394035398372502166057956879194884816117056067107088098108064622289892328520913073297635533244502257758895255819016367498317113833151192884966374390930345129539568051353814989652775242642417214887126533644643171749705582382594857538303708827223177356715560808026452955790764051446159783580486584462341333358385852612034962011434771108242157738540981335390413042233300041849866190815484253732584078445647259611119394071637557820541379738499137837400600821644555164010544506224324947409588267067270271028322255689102311185797598280845185840467884462209473180463007133708997304101682277175675661262457073642150147134968305283290559873622020864733110645705294536483435859876528711812367575147999312858368535117148831715212737290616938943515026085241261511725198221869336877066413302826613169825013394277728776078159776781811538386204270094570777136875414377080662136135962863763443364901608182131718242992968981565865969566014653526834035535961468302559530681075923497360832977858862264711848478467548084925965375418002864247485427532570419856677146653178047909069777195941224019651080771751001506723497744246665726602551429605140212509146103210780560714901229737941056733832411989509877432031002273050366328955180851575182279045574962454565180117767965371539863433078794892013512509937292084489441836295559531371056151258076097617811856313296676460186547536745719760955446699010800534883391802405926426757394432290133622133811455295328041589957762747804874144815152400395705548878449464300112267302890926108089246300997636006761520421184762001014484251881774579125412439580158059102329136982220212733263235271315410933661613691670246582048965687294589929608630905716770766208620462097863452730374403563571641048885375078140550469050928262198212233610303179487892007871286523513591698241523410548567081753764855414220419559215866297349516886590983987676577752981601377258684385732803450192429593268522569377055409512139857590741742231977611204643565335096349491234218009689267142280776125197751784868051292585802156014746148118004273557380163306571348884623320312703663312125299415622677070020308514874952811091018071207522054442864546139696521365569446770942753208065231786385840863613804161167622873261182162727152853793887013169261813417511035094363099616981649495417240219330607126381742319715034734599529629857362300517070351142265611336907965785693480809294946085671096101893261458408192538889050351481177440357538761106788479972646048889025196640433997422993436631063264815230452132821026165873392062963771333049672818826936930529601717080737814586426384548440287307205205390506274719763876660661711496820159375873867681412903012432008619748246081115197526406341170615875425170879904154295623305632281465359933495483840375632190892336689374246033627108025809171548437798380473121953494880887749302796513709625060593927416936107325075200230010621228015189379880538602706605595938788903418297346814005236400390088756425269146332863677895081648991791813373268912023218738577966755317329851920130000745156260558516136010399625368031665726314568388164587249818553642072394669459724466770092301337598880046641627187939147122861922711146355455782902871854723018830100306888674636830828910773797708558947839136288066870153041182438671828317603062230536257947325507035155542303599662948284995267908955720051153349821485932317735671666103481157146115594891623821509706004716865366053562841890250879991318901038669528888723728812566998493019371590825494483516034052296659803364991666116302349850989388847411457386702096651565909993745953288053197916490746149139476928396370170370176091199115548155958200181061295348466297690195055607310761173300128948884207108985722870076820836806683877316879272376881739744542413894744287753949532741809978887096971159292423908713442369094075142816372978103241392097718655799944382264984748486856054654838402396157599940977017993937377302718351630096625863918446680488303290418115289397100690951981946013453190522931681503434366770071543632556697194603865008610624134304186594389433393529703397179941472808159445508870102432800838141811248061785214669746681279428506520211519025338386408122928827873742315053097757829567199703833673309438605395398035504730027003238325208767932141275940187078426277535944658780209480224927409434159202978893603965954995802516507509393139054249404600865799516352051493495975794611725953261547171390845064299421659600462755869284999996435673929627538697882547376162624497083964983831623605051139159311542669478617376878669239436340070861203758301125725021251583510680999548605765139284166072590253729360406875569342140251030668800256630696001331550476365355059909639357671769412498554293166676305408547807783734217098834714266739791207767241863341511902095962742958625976899095862322071361833002041157456376107148447809244594633942660364799251954683514171777801319598536273016904099824310790019326468552620430547084045884004373478957866820872200968964266136859982618694377404282173350698836063930657151074790073186609008765081825827156368463520785821841122109412138644627898130653230130358228830168435731420447858003566263355955890936541425810931029879668072856580378783144351776892167869020516662791265761540080222073400531098995283692157612078227819369217383455699472262317831168370644223198509929816419740557390907826985969756780560508831141732859820541179312127211755538523157070744468863134683679958328606185373558161116040572327388449203812805861162970822180712215331932817955277709452742591667021045844956878123433716103596981603967079470546290989415568271892524722453386479782822510490123578304692268666693050901710633412369211416223199695859001260599417437353961673172269533379014489753293360451664625362647925376464447628501954660626096091123698607414305855118531061373463305343768522788403869962102177046370022531521236433042731730891196763846058583583819818881547621549653382533669127824331407546418503003563350564467710487179202092592098095179899576724246417703989915344509868855428190487729965537471416812971782233157279122459448029968847322345962717895448139648858268817643740428052884773464761144211496553034831981626617802340703467047141927056894868939962539857192729401447104235789958094869254688741318582900151300478211563813934514138777143918866470766925706506055789303158078824683366901073345586874007698174643792479056448548643803421395200540429795944085004587010892390231626953862104913293499402032132577762908480514149168732693464509150880485766378238453634858422015904676187595261612523786906829289579288999962586243696657325989572279509680290182141635600217290078346901027398360681980784310964638757629868570139992158796711069872056248165121375037330189524456521824413014436219837545957739363227209839012308382635529655302015147318589144536737324122861015930113791904098124101068139866772413639818160849368281312884572837889954274082016438142654715360136779067531952007882030913360896795759883830240744894690707136598473551568369556654568572596627783490696929780576239149383466742123830975566682806069872839321950956630441852220429614454111658421021619365330194658467813238540053043841468740244071278255582021509261268374159862993769255169802083768134680424082039485281436728342320708544852151991837103235358080731526503929567407946752687584116263346316384150895921517722026641953204746376064627530949496489268113712568434501434064438665160341470664112109274272376251809616203910661359207886304189736813463397752766448315483140590575973970549447009953447926794774655557933318031247318887631186266011912796536961103181815497013296959294532629087411125181224703106569225084750050787491903526488006243429003682500233843251704164344559175910203903533113090428085145560658885494355118998215135375216239070675543579904787654363470989900107404985351809596486276886989745588069694248180125182572274215739818914763269401221015960000275433051068829556671453707963382454880078346531541632207698034877721073769703513430372424942880724175494545895385776858251355652409224270379856313777024857706967870049353911818068578586926780775950183243677864126035489871003892450075374638334532201308390390957666940723695807368536269825047283318944684616094965868081248247993186340321325466272521364854232423598392749443054556216264722882494410560149796639102092358248569278097048212318639576436229632819791696339232386034752575293900877527332407307347581375523350486050928221904606576452760275733281761543731246923097794693266071420638278837864809546696939688275260744208918377609835914882286209557395322733575725778612849054033191198696439052049020906228727898097825077907282878499968514966300052894132965482012173995653718850509311563973747300611994171426238527625071406542475629598935079751583801733632903462372349860903911854636058162788317118074942199170687406541660606089484171856816331369024134494265281649879048147340758713003276470969333233136266753670328822047865858247439295928070007455306816048649249466160140047176029839840839710216452113680829421205166248625951836091049608474085588609382353776774636504957742462140699781767169957514805413583264380777951181240470785416551805844009846120678273248012414341204021139439611210880076926944152336201565385794735262934799507492347485537615077958500005833299487162717508238334552246227204211501162636164361767906324438736847439090214340083692359609640072606992576342674620913472968327452924787871515184550105559433207846374066509465751151540510938988784021795122187838388335666454882519863847548534688862139234870171561889355706874101788017895091949047798081469567891655743708235760827623371164070487335773952411630483289215335913633349821576180188584010968486999383645608766418081594659214919648061406175655679729474060685333758950273652141991962177261468431232576923175721408656200003439139394650729290471510323254109357770863697374422134117658229906188735019714526547719943860271103571555153636125280718497311386153028224072898587150391493246818384885122801963733769956118103662929536884991744076985516789553629536312789029413764136652120867028160559964975196511620653819248094308083102588848220261154706960023881009925339877490881108177510558436310267441224256070349815902311334636915297801145207975511536997038444037612669758309596479726232750326024978057952562626930124330898819442414877494790441492032020815068104691143371347145312264020320303048979864137625765679918921498128752801140517340058542298366203166142876030765958939943606986064422934504909683134878933652856444133785602020568467547177426412818022408489349535076314774810760629898319754967738223781848171061828311562089786737675778007138553946458097247993457536400273931265247152314017517301590738403878423251587710465283234273191814097086848623448259998559473375816680556867675337518119065145134816083795355727920196467671398605775478403599770860850868471823637811827702802979910961427252321991801917344159718089749374152729066891019376013362101950491911802670459514990649648695901703539721769424208476277353919448118224579508243870350002024504074479833578575415162108020799287797767559409542919729776354357489607307741595932385979472066261450410155889759364573205784033486661784517455857661961191073996236947929549276659903645242408784962390056608033969793206539212409541913832737688425688047280693342381674999428151457432122714233872872243867993025417814378595899178996800581488806579996395109627927880581029375637072788206491553984319866092111179308337836926549941453092875338582324932990728686211948352343944285226658140852853640133792498457096178658836697268022286186158657835239774541449724162576732830052028988689799958455646308222381879058303502193979903839043672128335696740267684552410725928369271001634283342707466176248982350079301189013192743550728605178463311110016838553663195775050205617177255937820712765367807860861091549724709188497397547522932648641736301838914194424584514403370919539206294688228888314155728556009483104140664929655861218546193750933349507634862488620109589389025376301976994172479816915241818196803422698082261811549145790963696305830886449881087082348487614678957092517009905850553104296542128659403318716324938151945209316698212386575453461084702724604052592877672630851003403676361548765636793562641638546088515075993407717577349226956505014989761698891417667596292291364518965067544389921603293646851518892481040733438766812968444663071973466964641166648288604351146943668189471655237472672993225925162524542741773476278393628669504348413356147321774325480673576243682841578507491013525664042469884757171847913112316107509513809322316324461906649702217306539764297711860767946478147503449945078433277682250752092698837320556784417039816806906463690527592361495288333379684460585918697055672987070267190539720883975914452373498227509394902423361461941107455311052239042929229546678149480368425311320298243305858218209576956185850064821052036836289383563296190106452683215775904831830703211608546760586722362440151289369006289729809022322534706030152538829853518191611095434449193538343404407991410977007195987846509320623734482298404759240626638995508741787476810421304979421496077640316892447653593256099413092669150555963502159490855560201207485734309553877477814342862606677278011257153009031642538667817720663725240819833496214637034318656485644929414318010670953905530293672218676685928894504563154763968547123364405552363232459627575657040100627551794526761530213596761650374810904448548004168760054587899072761509566001170815010401244316027979194499964090599647141165188050458002627344207377961251521618774466789865816690424809492471032838784255436571119100101286153478750985819110341490370007113853614687257978377167179794518885715606987137790889405592086151074513057536913626952565852070740950429425169533798520312072093863565414915343761697840407893547286477645656294767122379710536405868832687711781682443006138524488576315468334190052233087943673283324919230648361081490227411618819531577930967786595950521107184603409095168921135729692261992896304252976188720979592051642629236157687945642420683161796851980103318445409434869917206014305092356799721473403302268968509556326186871867840142162673158445802162613397118440865334374856457430798771881199040420407706249306656508829593819628898161807660396950354028056139019117050998612456450130903377715172440580881575815393653523530626110013980348007630919859754567819510035403913862060854497690754709448760547329310414026644931351057629977936243062783294784599444156268174085377725055712325375078868349724972202632249106299721697718522018729560009780361744386828744560705107192535708302466682978656920538573149820337953717925460042402003207069429631925537926044547452271792497536616040472401265511554418396544516866475824585313039758928923070427697020572179991644598952040467021989911617498965055781413752547634680684883087876131802599103285305142354164980604612365262982899761815759535493094006009684426675961825694819254889594222970296620849334718722703299651572517777287191192555225738606517358405374918631359281423213126113062790832393295232047416084530217515597128467911499299074610265345799306315100585197917618583085916683463517344223156629953004867237911055366965904846672377247995439873930034103797088133475485726113668560185061120685147522593369600909649681669903718430612469404104127231621542740887603570131977460234933168402510035915384003073856122167293935163775135959859815029418676453457857197532576870603808612055244372329345174372791336334648132091972219770029468393852969030379777689129941105414398564209546772609347139485996782429695484864885167654378542315250017641981619477466339240346544833272600108915311931614135176800714357487029975545856743585015700650396272251981950916264824632472429261277017462981048251785685835653572715999144162302596786515161700536474554180271450170424305921620905630217098660678620553415974876857216132741614428779317196348861769945785889061853527588580837417644890346967982951190761726285420188411318005155656912703117688254460576491935406100041109688348321587494882321404120501451779071104769345197583729038593504266537310304027994796435895808708849585562450940156316775788737467330401166079882470271783037829909481059257695982280291476328404121390903837604365219929703688731421815203364696262990437106375447520371592759073018426490235912809226526014541885562273753935249024014927526161727589612142445074038672994582629523891430525794307353460945012316280586259610459057666699263614733900962319222285731468221754587928428984895546459496705615229107495258356131718232982561318783817826407722921748563115827303920601296393591379071962388627843083393247663500912198324882606292737500144074978174727596953781615637706244359824101881682134859044919436205178185649091324465003402148409033755061551058647150587305942915365978225689082252031037745218815389420425925902653878285514405486731060379020671175597506473694834251632344066987385822258419884440766130193400447836417252151889687525644699453702365300634208486534930169430324984273747785876682690553326625953093920250895773442271985428236286781697967307389275409093223455352498421390785424241901143019620766317377842212161596294531965209696135861273825830621975826176914037678093048529232228680171843693331829577590609721915550384317559950146959176094636907136273842938585074431761769269198675097858712937321428914256288229962175028945304443157953132358454273512307870880579861498013701178848478854837899209894619619008292178657071978712057609217778662093850170453865938007990642419135654206175822409718779506491687136330141449112603125366905791914487590481551931446171432965523863881349106830178370806695749362913030282590824510689023462219444803712368580279583607191053338732215583405127719360082562964488329345270511879140395520258614107428345205874603862405293568271590491220543317304760741648058265366865849465934428131958895007470098189527814255295633687769454668522785305562558659891476445033953816335362579829699631830318974613339939163694551097320784896765975820564959132705393356868462937634796630674871313973925839789223321958455108685178017548083909576308447224197838984226142049422519054615258250707277495909493371389427633613503845843354751454196949654877725243359617872227182567411921079786372512817864437345846060003039099453574437790277715835437427913367645073240317397640888286341983202592425311710561495965200764066426288747554120459679417316079556304532044153792618051093411814268798331506657263406816028384187538638997260083978093810699861268124501247915350647823989911230857671062731425902343748358425463495774050481342493471003547254865086419256066031953824793741558611344777455759551253935893617422148603870101550231406967682751503086046159319918044606613872596732205500411890478156916785671969057996796694206485704780820668158114267848533686558317626777254157951424033600864440444208522339794011734269514425330331146435106469005394196732252262908610640567536854218687169201006964083331721120357585889331709332748659830184872525398074647114716102574593734562136943002888407030199597453977218115538803005960884457872123334933437002363275140935172636318304636981411739965030798858609223757704230531596127172672687530090209095878891086598762094824783827023025022809901973217545182110920361680030189170060002118081326533871398915176181724429264875587334440736767752410408844108095589030911550207827693099525398721743879128453715983384764742809752139293430320330797250316058436600257074464548366236257190941858229652039006465325478975970561506686725121315014825274304471800507458669835059273660506051523931362259740508763414291993158764066329158267019723737476870534030704704265622931596133416544244145905849716789614810069560478497433068342962233578284957430184172787497244548180878066743298545964600663060885539437895117921462792252681396386426683215593965510512489355533518950444281291041046581311880057063252475482743697141211757428960779194343864064069918071388169260177348362649409700626474249008121105213457227404037211590000221063648670965459168125763853697414981412754766704515301725193225168658204020321479715101858430055917309646958816505394822358594710618703407176646819943844276785191037059445036330759987529266774444020200014623312288246507360517832358716228983199164199192472684731122348345999837819438241578419354817825349599646883838341719491715786498543046192433482302927159065216754399088747244188927196154534764896851793590778700772958402567290206357165066920806410448416519750704607177016171577262926190219720211177901593713656530812711477684922870390709356027447415668027229070891881637982347474056569601423583459321031425229873805594949348836839867045744578132109778648964600696575025390202299738074678628036030197401481801391021365637609806299186664096252510783360942104900929702579631703807767667589701408500715511554308885691484089083205058775406020677988424905514305588417667411044692006888173911826963753494718929809179383984250149738038206109301674267017940974087487458656719688575210883806855886496172659891330052896231859007149466822752006728926878408141215801824704971742602577458504879249420712392968135950585058660440672778344793247154991516570838952072902223765025762922430160398456974757348244792148098706601465234794641522952699491325344740197306283035798981981135298714755331800819373978553383202562779258359806628780093593892144698878616812257130796039218315729475815927258819205396008093213988049740425617287028680721399487460716530756090694067272635790797618796913698720889656670829189411269600600204450230771270379942115833581970357211791134450413005225953127469246884000196861549797044993404499443728305036208465317287162820634590153430946777421566396383935942362644818501976985937091468956599736512493832539380978450213413270479539842686798869506895807126126926552060466530925546797830566176841416740810402199954848206311018282811662816479975267515832333091154098311501926966005393712665521372132407124996713384072832675384980686180053736331867102125880883698950666231410939843903423097723471782631104575644806109526426530739744160829126501813146489815043999181581864432778613768959835402279908599226794871982362238586002599119142172392589698594455200700042644590433634193479721874510089447775123148709610487624840210370073707126567594177603876424688222221986556965435967875809916034349511882519566017107556273534902774680994526968647850061523550445656023062063119980604167424978765773553607217706259258403130510721234133122116176569289279046949822150467752300667584049045074199779341200943993440931389298142376345659329801705256819562542225276549784225959674296141443258416472014665283017925353689730307983393566447729533676802328240930873083857648498787710857670773304485426451178978233160496493170131419929124991849908633931826643653281196554915575284612786499370584737697352674531839101548766651371201666953168582502826837315897317818535463847375967564025210065064911111946938597274713085806429330869670536601953995922828467042420831462407027679546506443924486172205106448081158277094403190095563180305258023784916345690190819882371275836791514401374290892368484589206234045712864086727344778083194485672594069576016244596699672519658807562166972278955697573307244493479636796227688506243191606802554048062798764081989354608543925501611072182789616231883588097906612425515072382003805938911832907847676587300011014433273378589725202754778952820743518653459114648388470811945655350275976628824305465601554250010582600071791269360403408817470872348856089597195924587913612016186752290073098935530493564756886083666383832169309958694261220862514742604766707972392077167162481329701581003748100793153304021626838239867480317382566385773018656115108414652468607659050620500341806224568591211353059159615872854798970057501160774459597705424148609234126157905453957110901739455399287671054484987510181848868826674935240232978769134482873995140689672098006065143010375844475877149410287144996338297092998141732851466093359257453878154818396067478943720942006111169269324761861538062527746595375017305974977763936721036611663460847230361219360065633781066719138656937636153710146899163947058640756270323844181320742667386737096986372356090107625423453033940765894225214749236112049742158430185298005180783964597434285814591761595206483738683335560282747822204930449291646797841324074982446111059467895748512960516915372877629962932852300421870953169469817760158636104223933840757947660230649943392317635383357982478078174813798853488312856473115003743091287953248794494658294039461322906266154250930544143768808917756486172158026812547172021693287343984579157387567572399343616955550022324974171633351663044001660620685694403543478409692423053456582486484900030041812581937516103083869277651662741297837194928525482958876819091770379843537917979855484845619616290478098187498790520244823810538661446291763656352093930992125950796525821940404121764597702540405951976883231782098011439510730140694872106541539427984422521886024065041041452948116968157820067093857435953188499354857337655918409393450834278857666664671631247839115115971333659907441486266671739074926353159007888043348289754067633037925550815235587521681542655552885937697189136489005779371705823733927420692293744368511593312299484207242973679664670657975553464175275249724910063561448884241003102928167162038437401638876785997907120376520720700868126938320077757457094979885795878367500699204101940083892284374143111592450138516904611700215598355869815909299182226897848959891753687330690491651551486619679790499462008382592041536951737317750738459630365211790998178902598887663304448039259650188773796407857645372249660736422435540994642626673537296290258058894538775511371050219171465644947639068235879430871215072436177764506307163811528733686935161762208001707620553974210884844621375288566556710043431291131947950224164741978615306078454760513771591810970502291512171659255015774308492917633075615627408310850457573368039704722251865926125441669247554479423689993366846999470478878675772031117127328342336849781455329888858299317092013126286714009705887026071088590866997528790308539747275805221081911357582138693719225554949794787576990630896817498590302302312020606668811796110687993141810265615596924778306476200333082783445064646345774168944128836797744827464746068320132164655692305429563990170082384371463269097443230440048301747642956769591605476657776781925351055254810318327386190628320740818953622701403466497978365618993948176495401743727832893937712582400842457786363242157792834936835878378400460065744432365537503830473137079263156276607614894404868210892084555664568545034978624784287254687152424726803616049718492740230806094087517934502521469098293536187600060759334474311810632098474008458523308764512458238284452528662931607714592078562383880906270630195638486520774871780071263613940868672130075163233310191385312233144320106619943612878385698103410994456476074793866101101654911153553606177262515874949522319815959301557406034543348132984496195947157298667039367447601400647274392845526919389234822059403583273574953274765689450447162046895536801873914401451668273498969282235832663335081526772793076123337292739855231621027420294814302358684847534836706649153130283102242630914716818952396308073285889405559394432122763156301473697400854886603554425670779299166652233710204554023076392193058951801891236197700836768687874449281677302941143324508876903051195121536119546576234678527560086868409158060351404699984229405282584058197887560244661592053070261555808337578375889949927732730249854757211151571911100622867357306405070975757204661405420490048766393090033949308842011002558785932640015417518264721929448105551084944406343985076609879565762150157630748829334469261560675954393936542981333071764909055823956982279227682543402385957221485621250347281395598439163546280307417238403906946996960253618244173827504025079667310800323708894634694477709182133792612332336545560477987508718256689449110009329887350989396431173725982458101777208510155084990252079861075832562607747133666079235757305878128251715372916661837199955450318166692452211885485649188138071892388179895803970476649238358278432356621393217165469641403724378000396869693694722894500223979502791255516860942609651944698006073675852662934301687138944756848151200986305746726509158063653041272637313437872513861328830339295567913684295852144006032569207564043859772468387465139100260577535831349035451379202389059242040225402695400614933196947630096724621375486291931020618520746278968855538593243278628433535652742842384632202611542452806073966125296639065007064569097364924043272270672702547622108066790997444506316998963335194724265706695412007663921432558920464337067535922238836366393799911840144361957075947008466374195402344764209894313399506878096621968128061108550880813961866601179889780071958333223743975294402436230476036410735923869681966606832967382051123032149686657318263971170861060184506847203643315880396940277507548249906316154331524173062355609214339174914407351126108116970641269577639420762637915620115614996815519845806110606491999050165408108730310555775183918300482369849016940519223552189396817212130438784702613785091354130321417903811298436052510812067600313971905698107332497093403271933325209351520448490264068867395970150343324289714988607558931252024121883854206275306872218774944943062977068955720892014475643863008744182936761072032818588175364319180942890328214825581561088238514779954087255399890823571205698665054780400382559638274294940705748293866321101222033809860850479669625248601530822135250701815285496767592770909107949032642270390519648563465988841735459159843620114413270380637883775623287342518073593156375092945114383954966876959207539126997388601444229333071780775106452759758822258494374489332212941485617998481654957975874646536301076847288534964701641861175694901167706118019687372786019872768053171822357712718733802341668924027994274730674143171117001552234720172986206738647706436967747651393873330813527016687403591466040324475102828689888433008753683046924215392771225507368111304476659866902425321378155461915626795075838421769049419106037374413924893911948510310352984296401350365710115555266447838151193904122125107948069368537258409792240446656264739405180529283106094946006169707536973418595664819860950106187884502678904446043446715546741227935055130662195535630341756555453402861975199366686396316718209591842203515460249297387217521151430821296907232958808788489499474320165757349014094060644832173584621168355570437164071700086240178976188857772948051902264212490262574459863071492323089041737385529126793482331573142802694220157736978577820626037604724572495473436527659006369077735254117585663079612188662667536888788765238774716697094477231771985618790625330646428911896669793683872104515728646544589818771735154015252126795659048198019864435872780442976200628636620769132123639843019739367199480358752020253511945630319545596285829980719012007978329261500006366292441906545219564747120094137463647852084904210244873002032034798205081464087371348094828477251027042144151723260130093960165986544669788133337777624430204408425235883985919040717616612607259312958530825793557864291027348150079264620291389853849727932840849896592903329973196287411570990954055095511335935028234234086756440919355135174008634794307321700146231818042462338455595309179170903552517458525967623375553140197867075682248632973980237913231290209854873459915227812072683646245635153653870292822245094555984898706390672919726670235353221534282819448860528314480932032047013717419554483279524210166197597601045678651532629534091686236873731238293296525175079914680938911842922551763099313261181247171209355826444852572879877814828461640504012651613907587389645541961965017911573573315155745132356105780945183711299778330868683430301944214610673199487624356846483157735944992326285090452638648172008451055784709793780457415383620630752194017582960805316594643507657624746326300667261793454154531828763328504750195288331987802290551289032581025251619816522244332659566303977445171424518842331683638307073090614657399508184858800435614201871341147961086941507835519219606012830652112139130166104553933632558003604836383342246940993505102090020774877537476066677871037435102853875905089354518699254102646775864657894806399620722797656248745635386889033954726090712348357269238296703745273640228558887500630498755702068564648268214480220648290524264765908146863965028409109290912819551945461333551847389307460640527883141069422020034170432792386092932841645626247061092796519125904497710532590776595595691027160284592770799749820212304995278838289572003871362504695419746620875881859663367637024941639811878959083393128075908862948086259244114232980037086471909979040734816807539298708212934768050402157523295323578297369233319017388450785706479700128245116126147942607086093806053953767530463918449415665484365062277553001422556306268071039873143177936865014350490502459252980877464024005925619988444844383228900428465844783277759111727151249883422848049511320215927262063346456570031631502170670841455579135074923478412578097304781154046080086768178921436066497982355811950196716447294192633576814563069555284469250429861456649104942402801999487270167052973682459889863318672535745621446752960210198131256556417363448791183709528895813883446539749685626151458190604141203755533677741442467431582142678120732988011481896279907235002855238466522527038467561952329590434864924170929980626960366594935672694367439758538413301834095556573246796568585107953096625287167923377998895054287295668095931002288443323250315430535947634969536778623685389077389605067174740867329712893506550435346755909169514523205402527424679415400374406222978410728978365966859664775129460692158124124054763417606814627361307590506189310222150756356238757087732046565659237869723649377881800952701678884772433990384470207614729042909236702245227520395833908436441353783389877468343490362223954452472746753385557770967614346573864933270937108379212666054763579036677530526794502132282234079605852837019403355615001077245731881692467868691697683555403027438757039196347503097657463546153133631453272654859829684053045931740878763788156469041902421955122520574819234571565490209051710676060580732080187804449308055566294610365253865452845783813687315480475756632736246110673597516695249221592909672829161379750030647339862817619880511708148408799857636934487117738048802113554233865527038425529295409509230924277371617086185650818561967460323841587400048660673934080014676243241160967955337406056317013152570327736355740139193364120884832189200619503805108289566573204340907601035732507570432211455619571291169792715072710011670999599330231681940272192653432921433984919040139490157486597748342096343115302372709174866318344256506295920662388531977840396227329701199446271218167577078446427951614683927877153997716174718731345543332451030069050893076866151313205668742039951329735703647059859554800734384529584777506656437241515116657613819915176516754903346273918623510812931915838450145835243285198704238640738870765795150571276998432041586375577567503442645757531165735203337163653176850079821891843335857680445699732359454973740001847326532344340363168167846385565527179537003019925382839375956149843362890149809193259971386792732350660272397332404159195615972048948841139434189078842973118414522987640931455201821006518110959141542508973724468069484869942914787343077660048910190041968815331041639675916947827198638494343311646609742263730594307494959196670037215844052843297417423280615358174398683081580161834657833247123966272146977608299042392793275846814758879490594244247110355398891435711135768906182367024360091535873566223672007577508191983842569619486614627329877653611803505568150265174969366932381847687586334397968333505498643185507426501931165481069593345677738161595644787443440858248897454415169045597465961284424687300470540939341565257577671275156640684681783771523935666061133301870049091899882779591815640987970083095896416722343361097359113338889804546465305025929431828302823751016861335395474071358537377706164637502575441686037417919184545674813988817147271053816631679683457138645077377796947297444964494689388006121151943229161987400108380390721034636958852745305735647025664203814448193011847642533141188491467796988744433392955513208620030662996773381188224601398356860249607466765112266100772816239813777621651476322920297920514754357233967953843784573225663407440035876028424072869245718496942075857830656971019394965725457930559636633854826518353196964612039325766805769815943862237209725364970648590027818176898048554464511969271219584586890921490335555459432205295339627294407769577760828087357450850420901134222532740951905450315015885181968131084567656848630729174575230398452409944392573185101729073297408726606878549475161176566955206199352771479391449064648756354544242483924151400111175051645709542689258845860182063706012652677129474852072912999744562175005491067274327900518426951841043551818015646247039263079595953891110010210625794142081752678868871430425466907537751452897318094642295006068331947342267825312168698908717275048186433099056234409391572572573050901543556115640870178650411483103446260808293663947852949385267663866959725569463967829870003002086827072207916743060987055001851100598067112600397458786599058670535774876406455745032891159872364962725835102539466417320235288224987284355486690792961976266261090509786175952203309761591259490845665299813177635195521918434437527149495194807332183824274838931389165112268336621943238631375167535031991016629387705097964978006825609755076617762329165734080648003409367307682342310839038479446138083723690017652238290129550609625884130353096801474587509563294145276768196180192474451250398939441157294798429584160872308381073261918534990597073399520122734622238238454170681466964598118737842046642369667491486178929147271864309527970307898408397333493794151428939787332860063643144414670910138223709082020337519127384209052753807580351887293571723872748304463181263160463247272041196647158674261073535294969774553447509626582732618436484657337539791810438047545440271141730141139251948939017335344544317660394772036062873330459413474759711136161762107796939067971011369505764683611120550589972453300181577690866296587181057896297630106442455951527985283933735684157787296942602549077810738200003273810386604622777206241563522333367925845445701067144844058918366849028035298949674631960224215457551860078835771181453540219294089623496135851304085260845672532554805145460739847622999650419474200604452097000149869409542007396929988865385458966457022796250767522080865480566323524679607804552236263269915927169683974575014762048077041649014895411018116242718439352794879112931691172604888829100676675603136838619438151905281240548866387201826832008361916563465893440568732432377563788095024619166080554781562919550882389473530362237643044464353769969358719785638186643163546919226782090800287105665502269872690470612816464688478414106911409526569969169200222412345329811667223014509549959285363872115239704753535963255213083104235215174169699458411790246989606388241385361436128139112248314686433684693942504594288144504417838805441413374004753089941100696595580865892078349298375830950794591863467456094939423214405396778297846753863723772977153110833332436123636865978316791629516773581040922637078702626478790751904143189052678586282943727819250644092687865965536633175373791048877480890930116305335468230086851428183239505021262322370829931317473739013143334794902268526217831639315791028478710653394653709927777109038894093155801736224220112056066009495478651699435608560810980269898323648297648040558737100700600260259995799751729096108397238302094627817358898195096387890416208811550847601043413857322156713722725841389303850402967710736760604591960473262185115364534956605750037799167818068185020778521478422518676068700407494482956680539405564528098524318395020285350394669403410409356118017883891338687985417940411826804077956724615002121401524246502177954614060523217259299542996597165582134573664924379551775535028134862586615650451085308320205026838851884118635416201563226127376250080089164621098190597173362294938300981533649139619643751277076584389923638884674268001808737215635613568084367269861338817735418654419914990126081950925095044063947092982633730804433842077158284206607696176299387420659310954616830640162216546112367558057037949837423657051877700682440407356131703597284370819508949967794500175125190417635547238792347544551197656812755820635706741406631427229897839595086953310134035066587728271484643041577353602523131197606395639175420238105418299831197678981945470165188816015860141736976909927664295556777028384236951881092655242410450160544792251677738619002533907489910126187807160615496998724871035403266735247440132399232505431815647696196439445738825284593228718814097614895328656499624875326531767675332778133165845251331640492390523689603081712149221743602857101208695203326033687883953566918844201479813457123694796424319088222761537492709333457018219643552702440147864139583208021216155468131552900455141384709275929086155762430839294607335065001914452679419621291718132471099501309288023731787408640614910515800355426801845982775169396155423173728665577234712040492254079928707007339531801019960604745555998868445124574242008970258454960095963010863766579374505083381666543221352311719677108261828012100277681555127899739375925859139999732906957986809595033434255704892730531523553655409315988763916555310361110139522177297884069049453578609902954150777962959921270188210608899966526502112451913483471014631314390540864790356676041047392142639117242280247839303039386319882500846393703752025851042137372387803604198802522423486780660718830709808488774303037879469344733712562232072064961432091952107719245330498091618550052989737460772853841829628330622275134350714528097649241925099495748559214915192566397636800822645313206393065542142909989893809302872697388518103182982660645273755559226256727254893879178808111270032124644102087988288133314017649541775743060570260633194374314381553569630559708462328663415757195687744631016006465782591859016816174909636084921772775843835920407705243767944492740247496608865562208229203754336210515939766769369489765049762370005349016977765176684524359471693200907396102691712900669834940143001483282280753424277148648214013603539623815235139604205702467869667615187733004352559568724587832550729034845487847077969179298939409850721517612387855261179044020557077872610047095511081477651107126562557842396758867606855166777192899106305307682468464357001443975709557418137318042987995079721327834759734612368124330000634642177626424764704326282313707494429864762467727846748932997963683627741080448014855065718407981580688436766006732593494057509866216988916946242439529730037797136247615606713837266579334309868934140511345436967430168137750022500000818176175708930587824313720114796894485079608040116202460566857421956918919294208740538533036306284448656289289213867629762369408700264168921494863933674805968010425293958887073838764011253381274081168669670575136708124333761709694468044685319559740039182564708607569081018014783859889021878409915468057260566060631625293706238546475075199709944567991670245793356344096725136669273100247855767507827424058409572605161038599297458562124242228995607880202163806942967251851411008281463203548545161217006853726992937922418249968182931576670501064291803619495624410305036640543891840058451558976448791020284325629283823510879182385554863382711546040150192918789961078316882844838942738634740607178695761847075685198581323695160044746447446902585480191610190519953340708661814532748329825132729870670471912908434186502538148363000879534277212781827514296912286357450674060969883138515883441150312592251549043353951700885945240661408553154627178718352614486330400338355165441085785096161280835294069744519913771648684848020151544576495710806840439383726003313581621835239533983328095541982679155542898407139302020782919927219229563444213060300541368575387035667929612662334636990726001106007707407840312582836328516498407209369175312653863825850679286538847386817275403799939705777611709683218379157627667581412977074147550607360036776916849266198055451618395997253342258799328873676162887690979496020301990746018132969180955022294406436710367374966654765739392872644377313194649402299235175914360403377950644192370785930354755441807710209454331561185511962807097361893038460851953245120943007390134626227732717423322174840817784434371885249943604336183665482842733008797418513561646414640202734590255017786038751469283416443127994133662949910543439120393384554827074521032821972044574835271857458869225387524567872629525033916743073919828671887542159242980728703730029513248294419969808300316403427498420524427020747988473511041555391333311379134282543631988457302587716424291750364517887150901975960075287310070946064129331599644343020463267623852325347006773401883313320721061557966352560168003430629479886147683115121421787801842154468335497337659188883215948852101269994438065982217597277466399153732198397147933429475357643050293188527207642203596549784954452836743961018947066027542177926987285521580918143020766208000006587272665358676291639816428902757053928816402824415416540317596619052201038481208743400406225605702608602345798812131449722362074751832007004924191725548834024927199131717639046098111292976602319251763517231717940516876459915044265040402114964171042542291406301277052722636435450575670941772109806886944421137881910042824038239890339574561500740360256407340111906474368204728209342151026565440644636042393288842665340771031379367474001432729771986929623719730271310002627581752708216289186831034155732570905281336450015337685334656618907330697404664891878112115457096033573317131834728805754759591891783523674857017883559266617982928158468762899264100332147436899612555142430851699839859014299635057587348762322785147252731145783331303276234924028685691785993374086030703497396668816888478578138205875654159926920939640454445243760496925474891823114969689387577900290785272588907092673036269614796396473345597191969959438566918356616502410803258544030398769293669539595928044350628495927304344641757268341316988989507695876461068500683107876435882807485841218092188280721867881942514520506913645969660133692178537905446761349531837957168366641964447536693422537176001302815674963878312766948313061073314203096863472473205183156382245801199866667948668039843298020887526644892713953251900368931059455738298092624485742545157808794031386642687923736651070467418200936679234058039623919135006068190073749480139501233892735609453029671306768844993707158703748174023241722712520320596432141741638268929803802152494043600139586571001016618181087568540144073622400346034235775407468772020959553951117633004526270196006826012614753853221112722150280796936316404317009208611865467709664000797959685293582641883292881645125542589065061840454813465578961150332021254210053603907704283654118129668900391743778417046636221017164704601684790379708286501902811653428381785366792709395972277179702278957431090542832588071906248420379004783742767407886999309284301414903335158381680777232003911877465081892443562066890763779080222780715787412632312278718756389580897875459325435572327719489512418705025888840401405906598406770487232354498878388131543062863308522033538284957622512178346412627602199300006677736931362366506668555552754107990546097254090227026070174506201767222614193318707471593308059064270356222276456487971745830541755917577890304092144873515096470427233315161993347943074003339038148888865197118396012392594237012270723599519008017098371284463737139931984368292027511519466966944156205884451203152297357318605876572614178531716180544148479112249029864341237238475467950553418268387646246784035120109059328207060684327551410406199971468536018436672963540717829943433282863984155854825702441402310056407473850372037568461997346275298539193241783348989365607507330678674405371827904072724522769738140505273396572460769104718059931440056972266305183984304340732737004630123838178184586858899501433830648845088630547119341993738710777075298350592653538691803754103091882316349833908660361670644315997655110803002421392536780094761878570312193788891049782992269616052311918551957337812664788526189587120461899029049604161681057707817379723228451148430904443474788704690892997307234929625004427311404660760183390707405889904388659472094562935574454133476268379072593316442843188765842689687397582330773341015749231482588752873770163717394060170459623590541746540568899928440647300698073917458367761459620280349226380144527171701598371394936819048764458278498179392808774032371189558737508342873229116646374377253846592823360268470735927514132945504407562543167752176641740177649334287122418533512088976727222279150888982509155991298553884595494705133791460218398041692752793842344522651762643794979924460490417054029331265585572908658086768139115273708109117639253987430886372800160570054492384228389044440982527283796285355875110608814828740686071082795369270656488567378628860633100850166499593948130663311768833677001765587711623083993797280961641594367929640784565830642568303106683681168371341715889687574673912013866473968815732762297439788753613136008723356756811635761359078795350020876250888766210747535373597420417998248247439213817863124181854607029305564054281277527174521902336855102321271413801850544058492669484810167147407014152689982558775474095060608418775132498500340788326266463563667535499393303672883613390817518220299448157301437831627873656102941382790339608827231567815921745643538962961895407007033311911758604893196669940382677269629590401797478579647994720438440774195614748512907396417483634679516696107152137264926629839476043530479126348936754525045572256060258022142898085402893319024206487729109176691302625317682393110155466060092787121674335586506147600236877740810804223520970698058824216655292236387923189776455523861478534527500830203945136118992661651496107214246904061276296278628110077323149469990173025028481339259581867813120529394412122671182326188252116649914576547680301986779027853970810906646581060601288861981753300291328520318875520666359635694485988359377114162567097193833161109688511949849029562719118177495947877191711397702124316974375669826415508695076249888035150340570778721344329824448240744754460985652584598136192237190543326629678644333806628053040031355040315342495083444808075697886259248223957246306146771627160122690681067556143924308775116260997679183353258538302466656042011563311441183143087749093745715951311838137554100206925160722965993924898896597657047797269809928898046073848628043957215652041561192253754021181686221176672176216200372504273609715020648828589051278491304872311589739335476287289998327570745694307654782559481796379235204559038566167066819306081798100501739989734489804960682799111339603605769494934807467900315481176164027649409010723176639726410826441092541805253581001629003611758291794767892729688502770459482909586264437109291584907211917748472745345970089078898973262181530284008864797400714424764617321236213256506406705504753287217909945561182206830134257364082105436693011710816666045685100197408813035696488825818379806917495906623943892361459809110513895337463145503769006946815277809040021764012048982611790131985084683687975022235951079396964828132162204323336101599695435298527878349456762675273489159572015048520952406601742670371227928659570601220434023517534988425425082685424561187964585145807478370382630092437608441520360875874327754588553540913180239647966219081172714456482427588473090001304847824009616273776982165273158438609604819287835360524287631051161931751750256373755591445140685177492002074592883356491763148209299479072413840245238575861181722817290013998886552024364065689664937889160779843626777031369935094064093439183757119122579543392941038321341937836387623710034454821489068852224997907313821315275920399365293930035794628967753697180249407889786657468824723072736342711633922623878430379399931455903916322800296749367838205867065342070578216758054837984758385089468873531356436749076533946731591777477594686818493818137001678315025295190772689376224836854930531816329201167725724389450818003218170407142279324343429588065532862116016934179712011262422930915759763193553132401045870095265573378452874353417302451561295811759947404466140699706726374527777976720087181671827394414647843709939338287515119664701122453758793673740251424036357679506102334002760402589559702692415655952715159006244653144501788485248139966553869443858260748614666009492263500518287207820236158797027444007223470665529326092175218750591915921073257082575601213796492246255254739012630309394705458152440262599902315274529272399467609692315056396441498321475503201930411648316291870297639959295556261904410736394349171316925912759736530166349937235690979802582267777633003059027828607941384591993254406216268743331613674481311273771291554444517345468569176912071757933355388338946439825524005456462034554402620500941664168455769306223385972327199068004059749907278866526656977159699274837182508384280440643214916442016893375103770888583325818157677995926850829410681404106557346883704241538983318626948972379161972722052035994794248139941746924455884243428311393749096033847812509566932530457341790461527427062902290031955350990832955016777538308758845149932802975102800557226523621391943882501628256675803855530987883807679364766296700366878820320433319914359473542410519999020942334995792477694686250970800769611934368776346627897217663121812757640642085096874951652146181494686700357950398260518176956685160412872997713507924919282446945854444051399513059087033630550590813476109674356090207044473506181299043664325357650391896386508053255720152914154036561288335723260820466113565643480873155462269044433100861826979351493216651554139356811346201060276781812127493054961208278153865640194568772366672577771903700004072129768762533027960177901674007006713629960298827546831574001257521408251637574116683740472291554279529883348302468306245298367212193712865578582577703805005943292691918973539545289327801078990523374700180373514859516719144559365128549445190304632383206156977125299852898171050353874475306585348473460560284636662520622531945834332906294892299521002361208742843053920366568726430169486737463981785891474840367678886946631204466432941398666803026251777373817622136089349681535060737209631932649127525686753045793364476362103272891793770622839404545892609720031476700870727651960631563722718448812000929347756355592417515738001241333698136510217256475293858497722944201260356747631023609736662604700402403577314099477901329782130276724590278900888494331211217131657016952603371072933798824614857774223615027429244837119923681791305758791534305103437841535788471554625489927148039827823436100105858455591992900138275335763146974041356853239194276649171757037985488123934443459960999676018838499807710308436197969380510958071564914152015047080488626787595389224301265243826058310306308602529289626508133278732637225112844043795600761194479510569524189160145040784115714513191760828245145324479653187765109711284333862465528098063949351152688048867525681258122281676978599696281425284601420722837240119053828808196724516639232164835283714239686700305177180006158631827707779538175308268064958672286744464375884225790132930693132621279979963583890810140101916520373956873222834579754143044989824597177914332184424295050814850428975751122727824227512497717111909648564831599727924999909304411900793517906874836272324332205389617044640871951313946797513849276284253462371540889916674654312978773059271719458063380314796854980583530571035142131927031261094273073062202306422649813871832646027234856529194546742251639786215672943518268385320330410174206904523038230359882602156593363641714176070394610668650295463029829019421021609598420288542327092535870027459571054168795782537057426501670097647810532584806764522040029485780564279504470023765965692404925910093449420825346005194803936132470450099448680610554028793873923851379393593036421954966772608418980373057821237463600499343173000693293814900664847508335261072755728492558242064807706562405462171972803536846152866490473458093097620425200388382692930535196656048159740078087187924282183014854348744454415538610435281754638064890894228100410178066312837386135287195761001829175860095114843127581460371883852563387303290276359806852385752746302939435010316384861433832773206007552602916020957536288279269114706382383102125116060790347771168924430168975794370187222987444375913141509159857399628300615581900803127880980339458297040290195973249696130632607410237243128108859900632283807025297241589939514039790064809319490222454090170759997516647606345081954909656151009602993161210289950732585075820217381474562329422733228664020495119494199074687083091623634989924316654228681077790871175792012769441690697558042313793374661553390848733066739850924715084738491792772714252876042241094076915992150042578276326591580566025010253565874659161493704892794551111815902476615000818930380700434665467496496016375436060532008016502177499843951580310204921319473072265475117147313302936348072291257383472863360529212826150554057880784449954213387558051456928905179542882264885097616159357688636960450004417388940388344533928534347326131077481347129645407308544819240471076146137368533413967985759011425824196439973006088856357131640158156953633081018737674030066968621444468574346005117308207574579493040866411857264751030479865810615848591792788177083203730718963177865370334958721379194910277652523817124492039049965810142892349393506034920664595188809747141676337230665719473482237287311750374615411322727444795809701909191485214337774845749423115180841349823455223671544463244497547741899137777314992955310917532866652686986283464284349932438738835879310754757553735477944935656508523401809046319478767346482001457051717231036244090363664899035922568487627353276654944125339276661047412795774719757207685986491437853441893267211599896665020021773973465706202164293422342861726707833949640098128960068594298905496636368361614511778408437074862266095505559447774188685252937628377836564545791649585985503155873043147088405924691389621589924238575171754800050629090428013488019007553647147261961893941937685004783369741077014943136805125309865755869750532263293524355642079123732870501642041119273652500854281717680847886116627343691250554352789256231709835941886403621053961141107050655235988599009544160573324057407396003400755934513391638571383484222183133554284129777026900036919690988634043764952317395842699332214852842970767944907589391708694263615605317899391883497988846573312096714320284614123415668657370282983426218138859290794862267022427546478868731994049713495504437112704160078350172332790324388561598791883305406478124473637978601651510225012217884162359230544520344365350184363923444792625283135460848454688170310637009282384768315329067420568771162172622234592080402469505624596789591078413652087155555352981715199398011875320286158451752783676686783823301838755815396905607965636576214073725677782611094586859211760337450206034927909447569600223877335465441426875828991667653062119674251467845706264343872379718607798529900715906888152933423244256791840832100900184341810724868404834671844143099523744562116865520824402852715775023533751841382388119415035271589879680900548480568556852158624616893270786641426929654647858379974372251274371224957758393676383515935103728616908647099937231489894577432730592015491537467468027042153725030817358673641081622826789738436961168686598160507149722351826128695389650433638462744434935365019983854080862190818116482124053637399312048022178733388898579966163929505524723278667567197576169032407951042613608754774332730019698410945747180746797179092921046789291551132962242456118267887027797343202147072593800592156395414486082057151501456612068887388944318102739253849228369001486648701128166860072899663087927722663981217424675966855872664914408438092803308026150972293525869526807755905822765552310406204831951685937590979546126549542475694782529277343319197949587251053129792715177669143762874574088603253137453388667619013487590735346678344797900920542399589879302969737100533511365198048228716598137852635579921806449321891022235218993531079568890990794277175536229091206312204210670888637684460165326693118215047531601252544637400698875762359087420078469361542120029278570774360525934623802096769257434898727868672243342621470113402741649011368589640872831383503245837357685423572524909177639324604241365853794888706653842348088210213559066544782226255609154859143803250493747415477754795187120284653733557725446431391454284366762631904768786887638118431659742113272264676141549547342905127560848825442787701097064842318735830627037800882867875200884037535406403031447350571060697707742868019593414920077636319028856080724601782026744981810028528958840761361678849204303295250560348137521819477705576457459502723321800365210650903051711501836744930513689174200715539629245811039760511103228535579716969701721691231779237470861558339892794696030644131042226099772650988527280376689872574876264038396323287807724556195869551461737505814020810478226451563047534155437670605863654119777824428800633679782132605490500382113369938106691279009761666427001031547812108594921253836908711813245175807930111387861810159339264487311446592917090911761676998271219656711215184187761293231159162510302171898564063427951249638199000461692615248567151766233908723061362026024023989484747501162020825277978025510580645636716043626854472388559558773850460186390968349008124480348757613965000806902386603041976020629840468744488423366879051744449746689836804343660719723370554415263246197208257646083811284540009995253335892029416547491803299456038253969590834114141781909582915812020021621671827856760915684567190034793879676447138323794041568331513185168502038953709683746290521617617676350088034251485573687159170695191752539763820429750425644246427615501464175312761852776890588714625961397083198588950102269671473030033295863990676901427047483068170255766000108120732354818715630535268417331890372201656863501053641772758549137682759511247517495722340170138208668580687127443735777364307559220463163986516897296817940581771767174944580633560318196559124389937164160437168262228266190833844287438718620720891931737102069108157377421674946230380338632161691528967088582152340512727193659729502338110224919940468294605602828520791958452583893679152309258326969821091320815548746889354017719962264443601824572037443266359104200428200023111040514526985173592211721195841435972323352018382185888458934009778010395702209281963141800071452090625762314561112564408977341226273043211941269148160695541340292053662169235417849397338641196844489210003856886425430119736222298594326710010848088058367585487213367827984800741245190130319222941979423279426322981940113638093927687056795209148547184430968433399854172072436589908711935781363838364677308520192252361465907986656764312162679687924228536968104721275218040395386712806027434544669535729619081326395590440842129299173123700403226976924781454910523319563509640016824982534337482539906163955708257594473808540808719624536139689871948073594295447160803715681361534279783740627751644578839744917523098483122344426907693175897041501290804890868753584517629520122282429933717894751480754189406602437883249010112759301481037828283288531937075976043481142566846586598102312625229428187302366520965006455908495529848108024115769895090732336660811672704970945349065172136361734996091972311196295248514482686449711847792177756015039199465317128041435147833602282597789084253642275196187128014451517844280890104310482759099037128142642354184236562149801820394739148315046142118651544673269827239872928888244906814110925833898678128664611242760646301383784851564980048528305931258146607811924126841555880284141171158992134569610787751414959146358171948266221895804359278792466706596357318475556681334376894329389223247967853155475957229286911273040099581208699029750686895709104894220662526057909415632242534698374970491841661885608932409258650624029049435593879256164303124042935622500626073805614953803758760115524853745222492793667589220543990019995461421038504489536997894108360538007379538081354279369620366972831196540480502474503685479765228806557486690577369111254585029792594141737494566293799973723311187467238995157026524696825352996263100781623542630667355014457918214515022079136815271474721188720849597229440005065959484181375823217116923607927509118666589232229631980347654025439901284462365883170254845259128602210805964391609581123255384413170628204695120022559765358278543644555908314390158954887269268650027102963814508751764997306313715184954674624548757392937702566858135663087027173554357741690983055846126077626352147107430385737661942004597630615396282454837724255078152250886261242484436120341804809999331399831774244374273581031934761678519507191195763229298538300687395262793430464641375567368938013982840913565942677285741372442655937158773631060363962271614379438193220240401939339487701709321629088967467454431818151696068071663731287110906924510428077469648784493183404796173303437844035712855907847525093169364065102789970651646076552373689686583236890058808201792682387156536076766149334649786116129174349468038182462737098209306248677454205309870128978870631092882872440772952723507030692325298256879308523483754463175353393444589902282085657867167127041376034740272994107059313356945927803385303612510763015737497694254100495989368697493961216248947793183950809258519621044535383842651317740748473748438855818794253131555862186576433207646345726862063528124848192185229243089665523520423265597907906590914407352328123873406309626811164252703442841337613743840190313258861874768074421133172906983863308780201770524338479705505212794593934043945330200343052546601467789703266404309586718728296494094403750535943735360953887243070865614965494114939631088489663634089490067592198125840149205612457622933558878768333628540042580834237802966227797981463286469044661935212852754670373244272381226576700040839180742454141367610562019161511566290923836149995208658695518507780113987955192522589067293577537327391482928143982868825505619049325216175611973142750794752054658450110010301883361283593607566138659364204457020770898645942676086319261827807884182885021944661695528759051776205086303207680730981407847550314373058557635232357078041017566045457995324038146849644645630253998477463006847189641577790137854536758448641364339943283964767172710830198628670105251635562191139888905660992190289248941975598047124627509182536123411821265766558902006475189950561663395735162437298325730406571165206179033499726032443656396995566608400517370256097016765915459469798949005066917845775553479056754309477730945837854668294577309703411685937623691459750659686002255466115160964731707763645831034706105022615557730360783819649705534981312398344770876465480716519246016328537182989960247354791701094629551827976655070359650826203978393183801779290057929535162463634161955511249458411343827139720197157996564470725735178148807174222911886481003816948619923285937275816083421945508090223828605410121970950632518523032126537837212463827886393745190692944609002511137537098849543516100403654092089574517342824654813219518460194499798248599751259720489089034446005000973200289137403017707019244332230861817587253668547903877565087821311711613256093366950477376861731056669533932412487297144015682368612832472407951834448130703510354349755889935195356732923005045760521044695273923450342719933808578457341668816646238697674943764032934921839558851297070094762691106629303655046577177895505730733125541026306259297898623576772704297287813767686393185838304779603853352204114851113318254741601654622124634263881465156850587844752533228192625350984670186704853243314119510441886734251111837658483143959123446476897299611646615966180044018355032367000994080046895701914173608672973557515724468517984154169494564853851226521542153479243281706326705965334974857179068508622688621930308695897724628926312409088173552666947867119319520793708977061768515817833535342172212613411973206673652107657525008562566888643538266653766354127883108676139242153263457498303085122463106030870884800560113550202255873597131017650699738410226983027801818246575261492999290389825474354912757454507353078670239457573368405690375706985632711659753637247331924172798663303730362589369068303787725674030858459511868880033016176032909481021449787067696179079754991232377248348700898376795176810280312965911459458172008208215766824204242482571502063338251120477247958613437292720554913148603194611075492009495482793217209667573292210476164015689562761607707874994961200806046009889655337735396001760874742344093611582861976194263129189778622083430880318567298049868360888158517738007188915076380073598950420451667854600008762530321117643093027200269290121881738201592301823857582217158693649639860385116534653896280475659194162621199869232273792266660152993126378086042906340300023364653595466166516840825085495271280601130846081667493821568162177704646873546267400107541495222505704583716355732259128122073407386646803435364424906805092802802546939369228631786332710008907838282775002423359225485891197693586294362446464493610000692386800584836794546033354714170712959759010283191713285164208959937544938681902901265192783592686365019144313592276348338713475612654674861884763481534156470912726443833654505375235534473641950177348845624038645788813591581887835931981517555063039316435118307299666096718358821818399315876727957387214598719262173882511201548646557317263080650158351409880743109321478679183955331717266569210874827751884375879735573827041739819068288620849735621742013239654331946580949030891895614183734639257174450075219992981157742142227173794664332639844481859458379870278178985972791920469146073624164508441703544510309080554780450696066292902583072811884262604821876740441866350581363168472777058292058442423881945877998284343850774833123240582616558570775088465329411425019765149748456628655069572896962664092755198652263375224034353917459329384456645915846218527439562349478292850344944258641879137010466469410654046623785150640355728271262624781340672406703356886812811448589736140118645880049298954148555218505365976548667440043331299766317232807237555500746337730651039269287765199778361370374130563481235676938490872368043559936534413980739050315139430980352974152869700227685862950184647134151978279413809084389252424803862965971622608506504175327004021447060653087869278773767081695164973196114922725015591498220300159454393815345216596086836328228680174493844766076601799156214186023315371729976130362716957361590725839593220209451825499038941224129769740068764341843724727338748320241335098876092760742360553231821488917329953056948056134539801149144195027822790174979234546942683056489361778614912016424487205638815815459498877923903651598257259390468066679859998592083536951655449645748106604403081455998660892537887016782635579731318762550165369245183800248193728304401486296160975512150611550948653757311312527629819819771459085783634567667777047065903211864144250322345446087153840971374351750609027319171497285521795445399717420741662316264422038525968851643340522246081308474409886778010564025104792244962072197694788428349956200119870285269196292014185501411370798425754894217857980041692994648068506304898563631215779118630988927850382273904204540357773180350622118773661498836650216440346630585085762666562321673830641542614002003442877972394153613433387365206256160133428959356551931284521497394298913156763492415009330784564177083769318679967390965770388996314041993116307078556981348903497441334193143709294132693836257587078786682619148691665748710039933030524788682079449499465271008145322536039819046363667723010197332842379533639946226390734718012280183451214187057555482569015257563346778544459332125327731453917305869246114291329474051287502875566853410278500435334563485463456871757267742441339107547238560964744660387350557732849656724186800939009967823747402902429141553797917739934575224723562715310984790034759279022591938071122275673589651835496813516214169854880571591328769631555021591870722483401690799990075918595501396601052758436160124847041209056838469153861208288820181229223593363902433827422845074366942944841560708005705919484278506177335232880947163863032937629404701588542180098030005906249699581240473715705844644357823157618195219707428663695978704824102936661144757864574086966036076799953874761952032216493746535302074136732236593758092152709650255275300374441504134693956524365864850268525583966209280488860995779065168540912120081638172198422916772138581756040152543587932725663156962948742397672443491512620013411686024938991927184720259231757023892210309560690406943900134208385064090741066758284921568220251300664515316767134194160188615390747015457091006029527957557017049215590811414817651981380725057757701681334716422078812652107663218018856150008223068725203409084786048024824249367257249867744814890572630341628907217222628088724198653566052637847479579456140320300601667089335230071327388399332115235460628177846518841494189457019910628210694304374543843881314992632278979180715498465594123633747744238215541010354353219399536839192546186715103978236441928722584470059203403600568692070400774953442700462402181819580304930715216169405179901456165626920067508917399414463499765318015036150719151216662177871912977719473385807644462952741768746971264887408901084408634934934049834381306918970585091272702734483941255879147257266310634463481284247961678250584040495011259320949844862963328064247011878196541610181283754317456154220392204450358965731747552847543486660676872686530203484859742465816538289004028342285495369935262399321541418952252638121392209028445653145235618918049103194343691002733953275040979637721009350529166097771873762207566777424697739339017182946297748044160608259658996727614833976073904815760211989716564085646223483226564834973963767819505527747476652372429792847957187638237210997245400900279644598412630112227052923606767405080428014139007833082839444343787054556148506700396640494846902516572376095783114447994040501407411584371669190338194810989050279523565500881477991848980800578789288166926264950000856048367512537234940596272811535922201196269096580150551038163618189181351569014876125526923832286923791416205503924367808750591117598932510808679113884717403841202095838936970333310247898252092734914350968374328322324213672307968809581385065069143119456367485939733905472173773238584331598494592135426474948608518314096542416026489666409991698946851117257258569894420382196496312738528949345731423345747911569706947171284304453450835805125143579212944651393760349873941651145783592536961842951310713735423364772257187751827299115346763376606866618988485750056887030488269148102348739146002027210087469583423780323288713139956457812717930668793639919747557297077010311079225159235662699091460954112735450925042382790578869919873576947323043984976212834752099489854756830112342246262321615174954875112737338725717804867590521735196478661934829570803866220578669852741187303737143740752640185842088610580125881018896471974706185370016462098279366825327104337185924298680715768709943515091334485774425516374145443099464648168761366196484470098115094658392200649620373900942112386839939113469476008727388573332116047651642060831967138357176946293606616384377033213174914022903214919172897820050530540604044705775080276275607514746971460581053389719052169370313291281851156495127047355649575602826794501148845892776510317947176590382856962025122567537080145899993266850645473521216042626216389644174811397390385434276567672437821633395321229591715819470338476769993158687249196258750905882257470528297547805338829519444274499594166140638357190115031561543507397975279714588692219170119362442129766644520104908944641248101838848823594502539053401640151739542395731476521923628513527274610361233868076809525800041695968374279532089059284695383801039193962289042651770112228571892799203397776448594654950767144923234968631763127371759681424797739440924661952827396057841332546384831797345524100245624918779905306430465689087674095985963942620468337794381958731048900327273784760956757220738569550961171867637069646834388082550967333906921644843246972581395773798513041612274728447818810348733812411890567827632784765030004826907745359937470835972804991761828706557566515064493939072253687289780878646711334382834168612538263917315718157186107815078703918423304040848567802357171943193238523678167892536420613357846924765974786206334437428182383949444257100660395964447215718738237818277928979461212454877493205515625839049749214098926867413995876298864490748699350309244920919108897910056663812525340039896219036034418151357714829595432548544566819803125296489340196737218057058225674021920233484007894932989983584052230051095388658390389918331921159156035366392255047714438974378938185596337403516102155774493309497148096110806352789460601582719107887726066318166559683567041821803191292707032466123622855421334699317016238757970018999946244584066830400224336834269809412198645363215847522272050303101279205851525164902088960820981659107162875115001990180701052102243185889037284096922713061302892496878543573926963882084000795940549010993220290232765770296689848531105466914803000047701374730202528168420675264480071339827591513940278016365947575659593847129337650895464136258920903240265945570882693451266647478096924720534125255268414417209167689080965888400480905673625753844815207028640727779382451186882489096729761035896249325376803919544926544341182477587475883965050187261112964881088870454995684112666210947664543785296784763389296834461839400225556342288819043267480928230012615859504154988468000818616368567265510508884455708997150842969045952354494362358376999816187229657025340918749379162372086183985541446288992826807611768544485487803620452459401029878789614499909126054836168917834743122181254514334016629296756799036551417857563292606769679038978253899506494308180923112866570194524882846103589129030219000261989461822630723065041059754876723322187534544327866832795532013664482217620929962773580480063989773629536239375602373133276174198848057749540087018672561573055020820635365156389054543822121120112502621026770988013400055327396984062970659047777226381326012994767582652515917157359339157132156146631483124026911361580368751549089183044312253719294315147686432015522256287241258677653606948571077951597342092335781435038285184849233039712716089318173224892633271126586223919990286922423471722734535975215349795150970858017760593029694983758964222362793673765201287843400920756348584098025592152974151474389731061862405792295972305422639277467120729608078238656916397591303409780867354029262343088288026380330765693229550346375051381453592308481254401441263874127636714150790868366557345291070740989869542104112256868153897542802178864726953299838220000135068616299254709446619531308965561703909106444587744506997688218237142496987610085033030535423436176850571621050483162183485990459421627991555380907122724886906965476837604861966287343900476452649155005604641131612861999613316472291773628469244195645732337697645175655929122260066498078027636163286020742318588971707187043571963289441068819131618590410363239514914827448629659219039516888719581371202349681378026370581921124489961139068413698381321052067459360049655156945565887215492431716415967462229361725375469536671865004136568376058377697168154834573764338379239674470316574761525954460998556221743309945322508693483506156363610127835135906040835695810431004863035756396640761549185614204744510157882474407612999806890111495607468099173464169633898725677983393739246816179372822760148353967656884690849055886990475955574161897460545352906312310874649394643309947325700852076792836633361173346284061631210474751470196500105151746237066703982126922226342530259605709780652901555184165824664183262292475485204088782112909271649888994427184183666272498770804079612680554674614852045461252924312730207740123453154285370379775401754661090752236013450165408384933026715142803762083889359332933601257128438060251948882312786049126650892724765610224997908903466252413926129127342193775461622400257665368790191627215817548207166123956489064705284915382564421641927946566557149523890385930842646702478023723478900491521473924934041703455483477848750107368056782322512977984511596380567163831054245390645256354402280424333066694536098556979460522602838225925456316614173684743437782551322761741115265474252222783205537222806634588360136260837498022534576903789670638210289702283379855080881163921880890057451887596033285290107430042602719224222965027404374187969041497527302058987889518211998724055682410751185337242003826524207929777805886893804734690815143839188996077863657772519253469582908120003656851166247468593778349965561537115507828298651255808688941196980245313885644817472675665516085449898357937964842773981428194215618768687093486529470472612015985479665359993260214877774431257940626251295691509956983482078204960664696964939122339636645968934550177854173319180193078463937813211649215428097666743345487084031913948131104546551653534640590768349582141508642761385196851386434092057280190336007123398204948991720652325203994072408616578146200510331540063628612111111660182949120797369736203427736050292176079090145857683919194711526533036935395841907256804447609112380191858980064926247400313134833075040201573796821015370435298960507210198473335652415554747532178719519817434284747194769496346331582311171821500685770805548111089446831061372590010447555472539771103569798469490737744523296943844628434798638732033890983364797797349827145487947821781430278813082830881819713620378082849080547917172004422558109627180441092201900728164162954209884592580384001668594252445982789481481264348596274772106064609267473823673399636803655437877524796873710204378153826388321531658167002198612280026258569907797554735264225272997845909453879829739928641845786135309139683415100116078480248296736276899013990675273859824372859753113359739124282029649385706172684110515265529073563666810095354583896090161154352217527310349173813191881463809641296463985165333715012304930100259193321010532797113193007037738984106765163836300554203927106851577874780809542890181054505985577614770330486091263336575501806488361746983063186068678570058088803630926956169142675856063904824529031803287949484013354726584315294660047408157129250894146943233508105145938036397294544744619293165019262922359226685912179445422217808074860505470346944702581272068843454857244530318519483449460542132449657294623155721197221007744071614493760278656696554709314492135033933270077950684336968364257517063077952067991637153457053833271993796958884325346895531247022620749730747904788632536308139344544986306764698773023116880723691032941122583767671089622329883003981728148226752096094359008738845429363828003542590399646734736459090061763219970213952841233899278798623613657546240536008436336121095406365185849391282157467163587147854033305802417493986990824172564831902312111726401523130815269433468461535366431697108150029207670586517012998286168515620242030468059978131111189464321013934439422040624442304974250706184493379706806691854730818285860317853502875900615402028185993331299306039632564191236120880867372585294729928743597132713693389628135762495130379796096518425712376001705736087419563262512591489429288354226942261763648062921021239337475772010876487269576007205546600538842437715582472566719497656225111245661905365420941244921012363346893018167214800064609171492127480131469578083837545900506791264096826478633638742096030254682292984885189337421158053721576556096872952585792873412846989730959284653449163320484082002375221436020128989139381838168392789749241487533371378593060783601550527563335377864103406773293698992058966085679853208125845680938216395528054245248240088413007566961411309358928347494161254459794127037895683858684039112883307370892136912690724073220634641933498908738302260561194640309550936432076690475824890424961931259821712929048899643437626282000822305431305968592826563633564284577848293911652555909406587594138225023709002999307630609180499435538534002242675327790604480308839980036679831885688282121681667171089935583382192534267601960341886947846971583970785249393256159022362851219445837846353429091587939889794170821255240985048560695469953185507534281264405880640059911831677470304926191478273174682886730580589753457607646512041613730381053134873979209098683551550120734798660873728971309082177444553911043558597933577714074453766887402965349692907932966746353998138799898482034227849202368381798575716678748714976209968966200101417794193556584662628838561065730016813207949872055720051847696931826408916792332142567599261743096351260008395516738869057756866348139208328442105240232740409433314654909713482606507269136207693089703161670497042329671600998041375214590336537941565667053766669131113950622579418073719430736457537428912649825852102822726001410558870564185103485933862341529966782282158134930401618692964620854955286654579378731149300271713373267744983883376427094638343703993026736667937997930619376286726417409283180038522384291498920755411884373713718117398337887331245124432091077547436868919934943625196378227683868749484301252736661857409236270397315697502635399482718495763916213540635156804337795141628732687202612991584593197076436028471805300216708889586822660557825551095025401787957107064883963176041641247902762983350031297923634795434287550607236968571246075357496041221719106071095590926791963421211211292270839073101364128017245590905531599437467723008849874056708860392921660820513371920544650215544791618067850286222931010123088598769601694292765318666051666148065416179817290166658469415798744531571040146986505495392292302458351667192084916888951574751737685527480413043374782885713927070451360555902941595614850259916502984191709867017462622500378332587613166848941381109195711207581824917494382328614469776897174344764103664999139680834902753799226193412640089713219318682173844778469305567249085540409510077118535581662191463309072878108653517740384768872445615032197268254200158908894195160980144893930549415482378589834725063451166566060819355523469016251502391928150427300307829612704946612215197299161414806903896651376452927968801145454249298087701824440398089685103491295612820875717386278473767552048891011313418360971070260582551094186433659337146252261561749389791051302578203008427418609126733283050644460890727888113207740402299887221445899331304422508601504949712584267002699462312326104320554356489773015622932121252992541365092445867757773746194637603875919208042700848911274633885329419223222157462766093247422828479504026982165620973967951301660955437470272553942663482517196041580629944021741351944471140808105575950103778418438076597604542045286897021834379406061227865037655575179465587655310756410466607865499499164630934047276130763088382102935704695943960061661840058841471655965341354555378702747295451827998512067693352245986896449385622758587377388721001417363791429788229478773764532893415052613766309321195203582107063556432596219612178150340649262387866318114329935976425501215330487154206540774599603941339566525846045426455963271666526262784061827130892260251107184101184561169359208557188620692784040171269055063388959830331324626560869800672896789690122440319134385357955287372964939597016045918828481578568969655307716516839380260570006839864757579022059466254951978120432472154752554700856235774969166792761608935483576964895656656814195232247286123136061640535663479738811443863053346367185875409948560582395351485635478630423339314953060143854652371677242345029935838998260980964956427733326454206446329054796802632344081733407112504866854030805077978316013908955605766398929105575157065515741637304389657503317463828988732993274106612124631966946653252032297708767522213310149058145604944090155134880253159691672706300610033943574724510472995372803386077199085272113485481001847018495550056198473294096237644901044417529956623476624720637067626385493751791164820844678221673932080125165688508098833816479117320214960602092893794121019804798181250946921736763238465534098163956381681927548004282198719439128293064945615153704902699257595947071744559584243810827697676163988475207156250630634701463205590909616679245864359976660460483282456962229813798592727720023138078518674077588171376865993695008516686323601872992313079113242620328247859024320140060301368999576031908246249462279320194951042137923303330191660153064337130534228971877201270903431873575763235762756312828745423198888022239214061064768936188559554957466935186630175075915287172302848641531763940638001740411156578253448334065326462526371509412359156049145856041046744675526007041975562301538252684890525694761966633767133335640028576711791915523066033275515302642050390948779687886402724504966848303375649368477284865135167931026563370859866916610926939135577523116490397963526670174342616487638718227370923071828840340310666553628668192790187859017489368576277922512981006076089560330325633877888643099098516318923449811506538888000931101957320900307210606332768366815431177158880548935120240801278354402410556684197913808367689674186688164487474440000978215982005966606442554915798600254656932392179042642883215505086949261702154187576222300061610482921565927241789127153565267813008079151846879223459297774236445835621892388235839290439025183377332831102800240696805981381000588645550246837229653989379654731302055353915999881751093003974762768277946114155121499996080777797748342989850061866412870383555184403729524728905779315169614841211450632269271821436417546639700296755390705494135890497344008378767893730673556404469611398228881963092707332664573433549617940834439572918342622146868454712356229858298264690250960014932809753605701317255714450165944391599275181766282904343065234475783622487417573916921894133267822373005122130651712098214599271910028285786840909037321476626676679014532646765452338077294178849954824924497321293966815328923766139598763345268591902407664077470431768531104449906403528754635048806307499116272001517421155479331848999922323395799714249178089663297125178548290697249649828840291221627045805041213684977186226506476560033615181883273497208504299911052972609860707199087813596122470796866228693832903795776091852101189904075757460735345596849373917961016821993580047591286817100446837909724420184585951386444364683665155973796429008376651684730321439768109987892392011010910174297893325268694770296762380269890094881486940276223377250072314447713077294799365315620946308871792730212208935010294113632325303775572011815983950900205180187166696813646158172223945791654934310596750376058073743988398077321999850945346245791051419529351986417142220812784967575086953403298263069499065809407922153132881806017441988410468252536717913519796623041370320551863272564753588150120000713823646793037671788428501431339063568275421153226204026821012158626419956799095034940250909934540096599903167716620729421677135814762114258184001102658608886387060539992108668613336259437390569963728033939794270575981109306489626271934210861390267624268099328173586002282025058921035149971580606477853520670396354934329204613360911618070001569595501455911696812773740253814918447965719608605909187012103211492600470416654782143122859315102121406125605840038231187054421585612265655603881258458693608874443463651564149407834224086293859955844592087382185646597161227572335985374339329054235955820764143389187848294865649742824201111742523218409902067805147244691262258073599654760038910831749024043553789963395114292074250040387152984540954221705096789638137568330073254895740486841883971638980583071572322092328117208504571947046971934945709031516301613050233261225412427940897444510508770528724840854219745779554389768858243039674064558433345283786408334006076659906897105903382530516836378437213138389457081204319010229060203853750625999394239678244251560532393536439295966680884967099158562594478105238447041530056424105325576690394993347702666811046153988285521483155086973862814130322785413873541475345045713257463599982443936196003174014400954518213284684296303102227385480648636090482544660948922242264933708484557863755298059830655394954788652026827768507444349168788707938308641529718240949642213885742665045842593617016047755967290086838833762073949984279794694926426013218301130047497834088174490321384644406883655931163019482980058755384293092507907768420937880559154165899322479372003597266110411847392364953541924727093847119063409698301013316314533279103823146515268958493531330626254820019903168933580394235579652998815896356737832068443329235213334347449754794149241548067644366714636885399317986666422046753695013124922159352053995937284093622823553529697485865106242308496546824381898568416421712322157582035970706569246333963028662488699010456560426643596914268557527286629672600278371713240454260117206281867959392978782957366665214584390133969167253015621532094964409946411506432362010507079653778638835399662595549880708208395305036559629759828802049153632729142340323813643275539951303358374870488388950922615836584684531311341275068673909802455664215860959165696744025145196999581962458606057657986867228477946654732219913463976037309081509101247766718121467853671569824015072343453919148139009411962080504993842922497304314106147877321409215841843088892872874184344602673329371172170464730912535168194591109203286230570625706525520369164124937215975533772258543422445006238107191887113381631656567715493936086988217190657955064687340703723666684292786188292812480245206733910988526129812402270919942016115635501857788813904940478315070601281035447450858880610694322986480183294216364542274749384307266673562121471539918104249158389994153583637445280001088041287831071730730396888060603277984398116525474417155369899771424868595554136904847909404029419095030272413787820504622048258202062107000913964470102004882453890921975823589298299377235468910258542431267076160233428267115468765324815367526816952785777480483915086586213370105129183983422439856782549457305438973540934125707134348927671691770613126327994280149526430585227625781269796304674653038354028614743937715598389885784717142529219525820900297167909024004183281182926410224310648992423637441024788893930995960779463547755282711261369552556661746723284164107350006871272857059146582184644928819542851169433240100151583171904687122788536705695397639362490026575897301135069629930327752042006093534655955354050450366778376299549288424883008213595554289683332731931917729090761738991013721177563317626822967339551046000033742907514660393750868654448048282381253042745689554978131103709988659614934973774706778086581365253662381514854655007310936137862525501089856076129231451105260559389376361801172119221358203015341928317435760939667373559914282145659985406492973056691389963241996998062189660438901835254584248324252526830307871134604564854101684724574546314917676661340139833669692914795723261074674176505800202490855730007037165393829148591595809670406209897081253649464625207252479545014174690148800997314203133436651050053906520728572444585500139315758235030645324898084938118980023535794491716331732749942952504935997859109380677403642169982408073139421022202054629072417094890736933231085416920419358734521294458081968520346099768475797971704317774859095059267917411415152666330773859347473305172887124099065686656707566756424628445567941197520483922576279165504414460290978509141308056707645296039436780199619210156043047651599151179278837416879268229206649468712402640539798075678116659007138067678564325729322128313552406315472434144184560546911331308643082130544284226334239340620421446314491721866001692208678524340719468127434600036888443056335004618580409333191593492018205536815988051049096336394950279343567326159712943226429448381003526941995747045004806508081939545040197841145790405603739150965895582990162406305726841830146825144417201223952022980507815573252828467213588405896302109267443613064676742230592634712583877366105993591123188621551030496567028128913592213206204592507929001685232747075520839922727639527653811760535801156942506599943100733039351610144972519208343309088014672766592958663485811875778542847174480717866597318036264771338080766330592578135953312482208808318347887469782437607597432897582299825320606742970254916889120798335761348507965406873236334247228981861418466381035959045001780813934390880976102441137656344323741609263477627377250555633824893717129083535605838885345865028844807422210380527072600410679367191035809974616129207058185986110013205887775348393732990868752299386273279704053510788149381266883361186659632052581430032081705324612912809976169605440069171731077963993801241044009966794405910784759834703625999697034943663722203448098321923108287982293753399601075320318661362722009093699581838395724394644852330236819623642322333606369285032939969726357041580619442402031858048631233409678623723374946583887730747772049359925319918310020092767331148384941708624823315731089584036291148132562323231347097991547991305874447741825733630144714665521901469019389672794797257182804180437944874676790222866819573177315489686626621222375923534645909044657153698794594457220013814623879860259530128061137679088892415067790096114917591111275578039519545726777778413457241342149630381122751381127352116684739388355800561320277493481888353709915323753661714013205184441299708170986808308390358097155781477071610104924679912063294014368623519440515335028016752839512635253488396993127421298135457555901469759029211203006105643648959476425554975738343540203040696729906764962094831535267747608157544537267841497608729906973083639026093251140292060113815525995474788004676176357619976782913571299360255584993042559970484661997329857248656898541339281299886910153544262251372555948920128020780392950363707118348616797030896895370604827564350706129445267294073393703657322787078716047642601883307247525669571163710445377462605977948564488438705288076700507568825276702094329987629770451040091928705932701725404301463125154071673611025568848164225449765464014131018083921208962557527380435759178166285278160067069726479980117215116876726893451970550302643839772828904913033127090043854656094038372071750634549580466158074559294102816740975834671282118809366310439485975589831010859858407334355649124478452245975720467800333184346089555641244542287985033755603140224138590538533315734838364151189496932758314663539911232351234733195777816714666054868502279970946194901864587435406188736284858870635797140937891687422133578392177090065429734733144416257481263107827684222707863553996668655428185534326673844642375835265329182816747045565905715023372383360771778556204718197022662366419366357137730064553445098523158384829368845841247854670924293486872654407104155301281691703364868003202494159868136165555611532677065703530208676489997229571632160006875641738968881107990315227486522040873670395921567196791530504135442978938617292693522616698691877092952398429842521456568752893838626403728033917297484460625409952666137978114238971970399551013127574344392613912867029083117810557846818005997871565703004883957166101653224150832476312996964408201774358025445325115923637131627774338914682796377679586837292749000050636715535513025480871619852415932373159273666224209827435138523878060814150225625721782311551874471060795339072343261339363368756587813848950265415982825092172045663125419550643659030435748183601771675508606842341767933794595623475562957371233441015979313935395490865828555347007208428923498226960773860926799262340765220442787331390014427413436660351668922418163009237939483693635349369800020597087951185946186647360388417366999592552802099023899860159150363566671558802455161557042679525664109428794685401543608572451673890189605250309690175672503602463717639368976825959151386177176644507944928233438923866305031814905778657651844762558447617863940273747492953891206780497792265012817542688974679512706890850413098347590037940702651506664307888204235491371735820240943990411799371235285178275848736431031350909379377394706512407332456475735610240103172949542832210689751852961203771730226439753216489439736931396444521725315716224248276729639932822350918338239884304673376038744570474681072367487015313570683135276925520559530752171760501780178262031663289994657400429519476721652667023292843084393851381891676088730191384132572702896422528830091377052828387360437569508135115907548056381128837375065355725033848614893702515587634836519442161887542341546201695117697238497698481817526710274955879442003667225308471815391842805051486984079806436072416070658903552908184629518826413048786905773104100965503260015181205201947349133106530558127218510582434362936174561437581491879168613571652059900086316737380360218129369376258635109863714346744631642716307089268984334806155116162210595584819973877406645182676111346267168478430201125861344101720480327775402559667906724850794775788194700999833997261986100601520111340186661824241044364315607835132352663589931879863395867372726089603539148054769052016364907638478103785733205337813478492859238705187974080918244980850340389037427068494616348530776307867362777496892621696028798548912503209241998152765092229071434192053822209569967043449755007739623123472167876998492074147465646486400276627611402908360075178439506150205684263468744519772111940125458607507416439523395076215803622948095006888090552253384857806230407813753604984886504984708848020617411432264056499219871443748399642465741875510166964580477419649098708569159838380035535318873597472611741496286022475341725687837331053707500006270267453809027711861878868575258139226579387501928523195073884675612892910170646857466141648559621639496599967879705166655007861974705833711768997814369140345642956881765940300161905732879055217413168141284388085372174274227384697878394044470834947645907213481148028270051890568438295762277526928733307998033695841593466399694119844103130114311325277074922929933503898208917377731079711564169510866150700792521303335283287719122601538866769558645096425639833989104221066812839249646302673734402115378958138777161747302390812753212168531789877604737082419433351283265797281924459271358991842247777632012337122788715909586150469990184489083179677175646704278314705249493213617700872616361090011796461614878435516504928405967527751869161484093598953983883457858017707831297847256747937611778757692542731879680358559491385281465896394702631540939743471237840606295891414210821981802809548524650448467316626667066359921291524835917035698057277473627581855303231435338304689976177732018562089020781815428934536348798815748993009155583787857849681571884890802461331031060702481962389117147712300313151530405069597052796150536648126562808836306595719962346251025173359818804538635720754336896242453275666581856684200209981658119014377468154243330988245399230535946486805610979439262937796898182240359438722994935377530399799069368684278368614470469372560827027755161921051093048757734855438969565048661945949424968984362159647318583227024828183238049551267947629262862317407279970096922915651119545008671327567444203594207983089430394335106682718811288036870665948602392990099031603482473742656509833464257694327843123917360844062742607916951668092246632203206837531075677680683213148566239927456415833025507290584481361932559380243304501456081505511056952741988273233433063258162102403922468402163809032531676383651738638899680647660026876836132858965829563144447725219734160048399366813433248253251261235108858790783075791732814954576274205676326968929558984968822537239728058640780615447894178458151160249571268999286783474990481955259635854375387067072608038050647576939322630445719206636481389830345604515892969053115128863887838637297393651329130650299942968866667248846855914611648345069645141590415811283030765946023902773731432216622082785705702047444195706321282780617543235577016642396655292608900399953941809573251289162973291292561316398423619555872225762287852403865424406600180935022494547167006437458657906589346997242847926400186018216347446964766306430413068329811798716661724781809727477438848797596531301786413383828959121606802292767547580398879947366643258551156472915053818865269382876466618956060785857914678188853488952070972078968862293968073883857049544036848081709836621620095891790250213787029117432166720210971616473907996472450548905910609224515803898996054268112498903403100445360301235571458465226534699968598678779852995548000919453780272619440391925739341497155713966430556522605710039391269125189621413173280402049207021542948663120304486451106796587117626679715857897523847639515916368104866111291874721586054118375653833522066077999102354172800206806132667677976025846222373751729192801562584393678094605269236539421339112668836161263355434541358312639045166836920355213185416327771524399588866077929404339705309204431309063645126706294007603223367255493896495828465307879273342532111548460354570927639785290461872696109570643114268273553973117399596125726704887701757713139460182585382975332071411599877494881112719592657557560775876766250488413676025574218465539116150707927034082130848868287870740242117804568230169006927454858684319445541769398803873954169536584627599281943081022003845018011042688722063077726793433477879899529108925608578975244898647222553986090987212247286268526254952201142634255275488344551427321842317156028996454619974059482068524870216283630558301123762978276323884812006831914019738862040771201283625560672270405892001110938391422931877044596080451477279141040507981651018394060082481848940458274080580267624163049139736973453589257101606979691213968805517434367130321226232657266494119441425829270661112005411071579791921655203777104070886874757565200661628148067528033271896744365151705677574191948575260358064330049747516056715515358430094708883284694843057786101039125311103101235424474300202535296810474168621453866785690825051385085880436843962971386938483746151584606583298475400577881981254699826657975174951516386743620701248456564887516421345432359257121240795243513377909742876074635840646889480758462335023857408414581781189496577455239460352054214792572465442611560793150048178431943456161486954763450137575820333407526865803148127749952171921925087088019121313419169450377022456112403399600831915676497696753786580352062810520342580167599221314386535061784707338959020000227848625736819925932817983688836043024713270507294574684276170618892651068217840119924938501468180657515342209457932038794514871103030605271419258394684307348526398704972739432556648486120283884271662056448965874675355439710256717937679887423361466567761192539252234815360320008751061787589895892067934029528121900434350756536108616005075018740613392732379057304062199078202705700550511744703519786785469160522884711715258540000701772570597552445137801306941912667786674372868383092064515177552297482921556451804308372944124942229393533232951331358694932538870321850038430253856165088591479248365104991726482265176909282844280996977376510070285561886061266745211135412201625220239111084126438998157667796536352372720090410637499872873539299162860105245421652083221403212274946837439559867489491645782955200141886791273519137349069322620351631215253618903807208137272669765407639978106434247120693176353390112267978613027705555196971211654261748786252378077685688685427211022220443658209398790088486587118364567305004912476638174987526636827044338618901842944110396299232494522696595967206307857596559005417243853626302289377822980430791484982751791261279698176283812022714058984640876782099998303773008513725474880382349780179512644904126707201067369635590185778971744468296329568967617609270353309030324416976282079701281177671823013893454444723208412679250078076879570804104628178492258912022129296653389525390971143817228346215060848983405274195743316810480622012118781758063567072222863261040286002329182422729485780825479863571975159395107985150364206128749583760836069089362364411497440181109405467583318769978963597350916701991307373456726874440532375772120395126377162936883710203609471187270591507811127652716125432194211287335552033644411874261969754390918998121781795561871691567102024711157010154530102974209439956577256757673759045169807073193635382214290129098981472576273327011566118291974661138791212371632778459481168309388504061806706813576617396010006403187331809626680185920850814711025374979313154385354418811204328632000891140282701958299548606380428235495569997422533532516562632801330072452938698690475264878659027587960918408872021858132852284055578300592134461286271217896756939716996285173265644808693710502438906112621074041421926032352818033014327883554722579294923534148406162333578676439684384231251477314363039245951533997543121860269360129028726093217395819680164135317428634309219774559735635579050516132135008757841776221265148331244718276238607261670385158224135645497177675385026376597573728984039390665835455912252297299191263294135416749106861169860794088041744433152218215904280238267186826586128110251677205287399257678213329558398727447391577628550704016431762000109801791304597031504504687900037989004392080555682066001671101050912225637932880251050773102032232482864870713024103684788668460703927106235281069840434026371886936996688429869151832293207994341962569444129198478431343082338623728695615332982987229678297802784190884717149811531885062548781696073032737673533917781024455414764084430600852448091920633775549724635373079840214454256207652114786188028513095483308658693444555449215136249824256457488941599999423008928566369353395491717783190834484677626328670695799869146701744613735502164641639678392998414576259556178518679193675742719574367745161574401922856673604532424388691249055126735568867660847726457832888781973762518083011156686678761491537780609989161898971264481045153688744900123144090396905690609097453812108199841602988868078159628382031210964576911972558325183701217018845219678296384744743824003002226395575617711667044281090567008203990642880792244934123359128050512458024295889549215802552227107593556910635253358370699841251459613834097932002843359159208018247292226892753407167587563298671606386582300162126284973802271537514563953171602645065172299314577484991648968729506637914560411832776088664080395262138720047239600230906232033665833544670871456028302273523926279307204606840944621596712157531547545666310526227750267232535282352489113836310946191377813332371493777138470478973763272655153405439654286846000529535515099786887870187823959161361822520680853280101774576724782527636978226645334543155459447770585038970705771611941447296986971684528830915334003046730251419875355153262665201287729198134879616459340667321357763504718687689688251271332902952211595104740791020990995656897970917558894443603193491215901011749503459484625989699148211031704893969248362800034378373161754861017286624756146846872479583114646727476114213320098551839134461943039300864097894708309054445310940677907532452979913270637475700707017844924025120410594323300331036122773673685154224166877015639018648201798712759928233119063102098109597697080368720225573323733144956775618835778441402978290627935465610100918724177519809491851847073745029122309063103728033319340034457060689163109852624979467916246339544196371468876734966163877836615126124713275019454250130066290267053027457188323332861669328426429871962459099519682188201344833323411673630125858097549873420730117368365171730781449341574997880837152433924188470618433876641387342179379514460956808445209464910416700522043610384903434575733252264828138997267468474485327645477299208141302225583577366762916920452281028421443168351225006485037410116748159423482375291337253897413966802973431512746885658474362209043046727954708175534040490408628920619477973730485094494262861280722774371456930139166379792254550732437075087551305528431439997707588851587674260173788082850386514887514858560912771564260820601876136099654172850204980509703028849046680538822877343980098680328138611482783534668915568462221336525708830879794056146758466413282465424189594630946332584206968251677246633626452418838620736950957353692701525027949354234806027833719290971772052837939645387810761848058541028670557804267944844958112421275214496807451864639310560204038345336123222535783467251852173870012345073869551852632795942308746002782825967833536453770687896038821573726952672293831368455396556136364519232816299200088752681749243872489098710674901277120583291075866002533121906604808887083002184044143667487397781549544883913724508388677586962002698450076904525115462296875866176586826145248135573895158677197100945983266595029133772976052805058209130690632330958874499371426445193846483433930003351699988924221330915428465883373979978562923068066612020946393039987169307631500493413730869840788205452207000371038623161753392058144291401138012401727663493312017531414489385295517854430384234854070372685193694071220388471817816639506930093422783896193864388762559819520512826541934428294077913447852106305673144076894439316309831018857509810438669699037348752677891531174460754605257456042977447703692300510217562529174994649605688830027132049214076104554773847562125559367113707437437781598796419678849607733839744434906078965897317042553338917104566882815179306907083693204398517003100354096729054308021365529948130350507976922660477379367039036647202651275678205055014297291288456507024489110638361272669615813461670173778880116898420163654730240591218106299350752446831870609675581738125856572106197181388355691107977494293268090832911610592820243132913195342265034505862915000620341207577096131469940802982629587327241947991116063938221715810153520127681394629369999868816054806286492237099267874749884815000162595338485979940254708311854942290694514792263593972374464492103006041732065634450785695768713132366369145282754904918215756064096977779550846884377605511175833604243569664742709201209338550044440357309827275077928715355775496694313419783003673473121000241229490432078473611037411460922787164874349945325055558797727133234357363518524543839801163890290330903589363727273332252711089399057004345960275135084772006698990420449350934828652027341846978521747568214163387950172470962739770296360259586435176662543388218211685974086750255401160002960931818233056690896959688024694899425259236309292805018365898133312464043637879686597091320773415466796190409091548299816392130763997681732178642023191850094659639936775115277158989192632508758416144343040316512597803407710676116986300831369186283054983326205281894627066281623093990144045648532528060359048368046471546470734155697416865666181030073411711795586324643311351318250045175825116353086176189643316522207529132956630361450308280152415326050444653718456343844237133772414937320695931001371413753936308582697111470631293344863662222819230439215044176713411989718077240376012121634892134531610757718280735203158999403485954016143978961349629549956827893095941201837406875243782450930499924151569409724357933184902621379829686470600561344863325467299782877620718487801551555681946272287942194852934761511711708470138254426962758990493897741531753857520203529154805312284211677956655364833924616868056718226793742431757599850801819335222872442455230981214149904949038943738082211194456712020575377200793686517179573005233879914629678778016685257315493806661729709719499671279129487312520849396525701993200652434469954401846613619000549491825910709398284123992935198470010399281506085017044438411397275771338607227262989144776690745471728030056266708803562270420737695685959625380852543678211274753538923797421367276323187333511340199719384523113653725272537116587319229818569460333024480838342800220470613130305739768398464007348919651716203176109528659049319104395973093033366219291436142699589612588516406407290129188524965763288195719098690426030351498014025998826718281559536585509936079623929190056041308877127611789495898552626744637722362079558369225727267162736958919717352084302605321866393318431493887719274178509678317996151769151211134154384832168238916279167631986724916212580637507461873373944303983313987922311023792746167682610560333776583949744338852244311895512818714106594183182440865697779960204809303923702918250736590192188457694468620034413319100089283844161041800252129171193594706143492455618975435333756942360927952829961006030570819115289509385812159248427064469746793903230419531498234035207046750688902641992728338412680757602429453491653282908230030290029834510183041060053813384586376575226579527782901784665706310863561486371424178702667779659453335652924499501631194899941193367456355381587096021583289060312543698720340130186992948720136739154693881258186137766904010873286559204254990025491489087948422287062721355884681088011456163506445603489275103058713593140008328300211305448094276688521511328397919934583913066671859237224962023965481439765245776854631470545157678526133262439121181350676140575596420430071634247220116466952722748506175666321789116784614400140139964175471948163482356105236436984599260273050383135492320471153670848798107667672448499249230693506576622015311082063123640917717361575553190444180036792238727543619584908774736712945118212537001567276590958817644917416668722658204142218390576752126952820103009430828620147827652394086378050169774122795663026522244119692233201975843907806789413621130253209179809487333618329234513837834086201271664140855218383375803795836896151412897551477704371531179835676272228186117271981331601881018729938951241698794035471101289806520101096464072691608731707014836065262710371745187175415251973040604981941974912271899236364379883223129404845061791403670631483415392372027366119098809053841076019958252202656004075142339159880916195330888210065603227515151228052213344840042579638599253271499603440076737462127284468984003889434838303572028757769735309085967107614052372557590027986577700085570907533894496887918124096618830779982169522001419382535466087930801015461440047383888320762653392687545736075642886392133242800982068490835962406776502439941999272171322357285669985042711188635377394728268131281322633502320703749074334526813665195459697748315629548016082235897360394441171196065479405086530904290281216568532583036012751530584543562108816087866055168920071861393121906023892823397027400408487842351832337532864333155824032211711556117761819051910206027018436212920533952580478871586380369098665714167777419953949400771712592701087763602159607468194254480464551934808252326420893063953823123642175850881709485007201631859831586627483128772181315300895457617017823585901477321196947321927943903126816663987325707582916769446380179184760499352070463661169039068020042462106610321153000184485292075076866648226580841968389492922996987092925627557318401130779480432720501651219732282785071116915699122691393100624340050822868166794857457302119776861964083849945878446646536375007554170881168553849736565392100641614600675647517119528267585438725125942899024376683600656737596836399864812957545779488981763338014971194115914815655505145533730141807234073661166367508614545910394331078581567735962485718283933610609316563323151842418220930798205356190885838169493087409135556532086443344738007807858991087535253260039497844380043373945442438343440077510424877703473965062898328899194667855351374917719539218923423229762191351554696826340169198841870971708639121706260812686271464526436535081834357978405342916644081014914989614195646919344270119352909004514531902621984901460902864155836206906257915025903734071546129572780022965744473647971594811408477189282094282161342330394322571657260947512156412023245763735402100892122489941723686505906963664178312138466055569812072556561057694155283211643213722226620459482154188498938320765778404429985632524175591708295155170099410563442965454276935579416342383022619751493987997909651750161138290712376821487012257187995155385477369842940351071195768929420911733147246984630551542430299784994589365832856487922094060827846175691603770460031001641556550828084558328008042528190538148245780788604953359238014937529213562463915899497731559482079142340779432415272659688572457538716259720106291162799449863933751276616375322806947290433254358295025435484685193241110055625512860399488551159085148590289586651114092053370008029370258263520431371122762683899714545954262087571165564562154931460358700130886374481464128673161743480964559523108745957238145113920380925275693616396419222406852858289192616685301122474962364495928655688925150808905856804805006375580835941508249528863614557029761441634415710376947595499292298718269558777206986695599823457047618830337508504699153203030849533418473893834821840176755695205836881401477055749762415581640256865590449598182138658486971399844129908713832683264230208802729860660417304794627226761907562320854598966127741459491988883155875429092128731093496363923374124076604028456047158362832782353841773405671793792476401721513321731017229892490601571473734809640921274504203758452744419148014418702127952067203941285374033329118452431530269808536748829402692698091543577859118104875302477779264401537183287914173201924491159285219082994497806420826289582974790827158296635403781911897898509019222115044473224299491449000771732227188262714139758262141504128176754085441951899197867485403325844612316854172142857094681849868941070208267155604999534113865466887052191161907592120756412751939599361052960103742663590583044966346710160353075989317209369534477768304131435805730777412425749051595235620773141292916367367692110377116370353586994866572814374018498738510742272580328068630892736239339306026001127470141794848152219114983958196007048487825340482123868455383589699669803235172515706903078128458681156326348821853431299134369463386762430796841720167280892758692643619555232462080160238349650224185307002157245407373898877196682151974893932699055375594370584464105890224751703615817558216438690329774725321989557142635679485128588014186285335827233114292966287388241680801045494124636147710013020849397650312723963601370509938152165661151794480280227352558842015638402893689443681409336663921009621509569645621472528084178770249093000850055169904576451766242569264687343297807908802104959896229065087926265296904297404735893730831456117932602104610292902648515676373266698173682544801096089044532776485739872915991473295588501977053753654343105296413546925732799684747654544054402909579151448511800819708215715559824695860042615304684106835324801273408291119527915957069229429550753755056747331833957869800470264193499407292000425774555320881665155283460321862607889707898529300917198702541015469378563921387596199467048538674216825162462624551262963173405489946560055155813055247134541862245064561242285340569422481605706177801187917435538428588260017467746830702421012814415020530089407368237060973249007714523714746352858795734436245495670256493372662691115612566185066012278165657356629506366385431729701978854580515938302387893247638619069111552396425435963214133119304383085590298157300467528962448941007796638935250861421350316510419478532918200718648691505226305774727804464043639830490087816713764531941518562563402806273239086599253939204079632398558706084567799734673697157385159137950164069481621567453190577573859725916318745046788991594212665786030988276026675747556768703999740953975455520276790717254095938686725500434059796701354253748952753506462251044965948043934365403840394311814683469696661720400884108793831420223824552592653051597398706197227221589440422155136238412169969495936070259630862639129790243986699664396496056801526393632810868707903293117407275876261762785592492031245257024444590321905298724996451965728645444395443315293924510271396128245867087167391405008062988079917322155692040812385058161290149508285821289155515540373916936839533539986331362851951022836296850596236037976164854873179931110776071401184208213547083680317481860574018280670436805352961437705964825964535196665365083228065315976504618482714958192830872104308140669819006005061997045602247950040776999850534696635297975666204357211446256755641298713680746542000838965255674748866504253038598445960520404380948982468666129095208546152553467435465380729885937588617028202372394716764273124078071481570297831510690864811340884910869686024614604619029194415773524942853465368688780896631246257757052526476501506296081156868302987290388757577853731703435752841472595967584483045388061387542806596735178079453731940136032258577475777862525526478524571265920476465643937679498133833830616691660947743060609888415792958101005884739771892180722730066583673021236518211014046295536871605704523835798703313557451354554796918597997337851587619145091385463253179939078776029281390359101958063280819479072385936409065903012749852802770744347505524657237487152343745196972712316752286519207263604709981846365950746370181993703077004659339563156578729014575888304923196647539676493740924699726389753244412090378053348550331384876869665107984121768993450426821451773988575694444660854680042954569183733572968880235551201025309299200818410253491881360646325008809700485064929750056150135565457002347910899544220758213220997497950168405269754136764609887798880020671342896488074750957559575684753264610422496265771509037148715358250095324120123778983793661049826934160428693039071649264714452386985405775051149360820306333291108420383099799291049286603780924406075702177758096291337990092280796630230897038950928067170487661690022470763512238671538194666843087432603168755897351821500069741643114010308317386860258490748137778547638302323725120166975554656579865627870135042417833402726472475980656070451644778519953045088284825663800118223087205942427005784572237221560413104436763388295273335954903067140959967638660962508307664053840308663404257920609302423620042991279186610758521755250616435849832547432844318028003306466198868175133670726920526979847161569417942380543957863768730609550886676546507395932435290686715785890714650275237476797013555761038014655034514388035518731248473221221752220229958748789277502645349958062062837398431501488997306894363374840688255523841650452505290711220407635614422952487040126557137035527785524533562638029689444875196893213802333368341293742736877405175505075888852437875559366745887884502465495051017635218735710779067393351904366313668020034318214345212393404707522881832519781198725428819276122201081532825859414795606822534590487296220261648504272243558682962116941763126706908088168827279142229673128881671462579586720196469220025583943876403669365389674551696735485691555313096947976131777659213677879131312635889082426725755955825721701190491437122716722400410400039761857490228005528605613799337776399625782550161939566620084380090146936770927086953930427753906869020805163050074652861169909951995250990469775234203901195736489506292196123573294502412069986843909309126868576020219828998476313977774635956049807833172701933325711144129836163333285471409116559945765606040155723730230207667677233834460592957548613325850263216223892900041091399653037812882658526500436564793607834598201578385917558627399763475593680073560278215122616721816416351767190557563538527219723049504548636871405135220927001251147655793739388049843898620712525459159045927062221150017789959486253364009775398398072579348745243253623250069072811610859072719585076068422871141425261716321323372413240731677345276754441855654869455431048420302591569688686969094981211423619311055912667364247402090905155885153328821763404943703802416708421467795243435356882370871288261479366690499614981121000156323215374320848256637848531126767722366354019788547824893971680795565771605528157344052013095151394393999226029433906786601781899775674351223245838846622799999437447145128809305001102339341796652013035597450261324013860795402973250402346102586960470359792622635199499975818976665289321176620469507218012312273895051432457587290145047545884803146858904822232416142901650969364197483487871927018560620066236361792682424588210206347902877376242647517771271202348203336434367389794444309208549480669619846410281477962080271281541253908498963023689963874971139540325051166230673321465156876093668177411172973276150904568924572115213079985185244332639069571614620912875652445785510910524675258208006845182173415742855524481114334980908073513115056987156348797660417045892172388260438378026977868250332086641784887595662172743807609234020858745651845347053060554184741358279345706958055538471815278824450535349950361961433113853877846967705953448146761968116297530804307615263923273368538600323905751601717078180308194742212236159566242508837527401093085177661607734643127427899102114242455427139632377119099165491238692889095540059462065150798672230921359062108296087676038273967808462916860492356077482632482253316090845727081887605441567187929550580925407675855349404747343501274479634420815657711505946699407019668983249156764347663949621902944793655472945011042045415444450790224842328176449251468255624802711205237856282276614446500576915390313546784659870327356394950550912680252554687726511592876548052711033135536373329079275897978184848561756958538876442942200411555715688224779503824196928368899045893634651619053574030240298564338189187560933780403711674277853237207880457016618476530417614363633299155470232355749392701879870704435513829454755717541249043953366047073085610600557326211090790405500688464092952443017668627764408432662785183164141395289322925680772002975116916277801464389806713161202617868582248584327519475788415470272062687837025464864505549481969112948526174479651117485140141231125079154681293801439505704784685104151319566169723951193185569042509577151625283336747097170431245847545806164535614760173708991129950859597038653207396097180366476190190133765156162751451115068473259036537461441667508803692895058934983811241838793960341784925882473881775161701581332351438751728168419287630417277483971796638132404075424858038388361846836917053101948785362131667689734198625283480186481451744964877355104748558258610261726182794820744659292464455420635386293163744201366250634391938588682683008730913976136126940880919826931013597584446422944607384262257360607190356651166456736176774118532548001126230065856471039373948725118482053843326510858122630298605493435618989172533445121630216371021351553416847063836997105909643380849325261259367042019437104351663196334108270919018662100815752309213454505447004244310501870696582647695934274474765373700495670835855700299034257614953076663466820995134844708859020120744441221574848849955899613884989552621328352662275372144540030336495527727515440225542999923765515153774028058977186843751575248781857210498754353509494498813524001248627828879924979570122589928416365580301148986968553795790079266236959063361729587907080427267959516369449471048576836649485788993631225989569481880786356099564611267871580150714727986557426214504066030319095944079121818367999515616450524513456856031654061645529806411469648530866274204332870147301588228121495870359922154114303053541690826873992453865141853560227909549787923749226109460580291891409423295632629083995972071487363309779488787662721290695500172505947032703148299383694406882809334941531629093425826491521262730180521647476111601834163448551097977056369734493560035699339759258004418487328115170857258626136009570427926243391006772033808665301735802002291536478243159817306724256033153956829087828206277887996770454955905720936939368726110778068739325192044604468671002377688816493888584328470106791840143883746915020763209227379417725902557901021471767857549959118985884707794760803526738610931359914879211077442306820902423998592973364850060087796541912530240958125553000734353964024291003713822369096682793175602543409449181361198920658217032969013808078612893631728697457153233334814070652906758839162419831493387788148821708073838511896335248945655244638025849660332882775080583150172222281074871203111624822731446733113117028465570567612877110221336110060183529686795268004780285609867343517258734850623666780013010903556639548956622837974290972219422028923183464679334451337988644355964239368514853284010472633085610622768989477128932558534422632741452035857698304437733299548399771438164604701647505977941778359505338997230955943518773558865264961578855725077394762443384384000020733816897556385921928696747093153372942245120786124871361243300522952343227281922576413475444319009616239665321214659109108544540951197567386488488976776590555443629685868231286187342171763557933626286585428866182196634341518177003043315040872956766053503384343850771452998934728563225416742579132924081398995529961884483747497632875012483452795738512463978535717949603147811374071691038897299584931523938708295288944318022835367808195366918419070475365949311897796600410549041344885789879225814486203878404046579446450445672097920617791088973582362026572779412349927376023610301864761252261820895124641504248387817922611892564129559737253826607750939692891224151405805742755850005793052283719055914721543446816332611240701514700525568892868284723634994630043630211463992226279625434415431496169879346498878857905674551091716716444207981713797349126152363325962573450102145689365608800413449686471062986767296877077823109451862551101159949130344708213096420448393764585624716568653067810745948454329532639786834235957675269312032788596036373316468512769447338911968997391602730971707054576577029801482138492046537471523344714275424021437115563319285749578629613268856541702914458915101588816408476387634443076873158465897395417142068528070691938295461827149772683590109815597427877736192836458755541509877943999109772630932347000854652072045794376324491115772173569706370799837081526922319118745559715150406042274211299210927474661898324426747356113016213732576009377200147972788156408189803796974855805283239360242053712395706283778487022816710116019135495915614641606192205548377822914908307130104654641990886236411917262438055871956295319968449544778828641624662790003751557811121888070781932675163770825030577341876302438377460298030571017814089383919770190406614793763439271069957845405559313490494628458892766269356450568782372768815242899637987950272273407203212683890701009854446520768176379772324095734447453461126966440326753999233357705938312742220810848209126604290629212637507202569641047093434947384435277211151821258789498653883494961403324631194973473272356028822191764774878058836518212638454404204817181083582472002723051088019290298602210452889132952096646300738677353798140266028426346269615171312368541674099220375692157573966277968298681695013723510042662434679279757559353523034200487072136811356418117272415859176162975413139834939427134901645833471004968504097622449132562306917852538268767172820670515182154624098794913082880963596695458194615683448242057708428818991726650334215840184983855192716434304015857246089926785836340645593349250022580663743781636749556585987435057598471682777166686810976200291174318770186821564078636307914411974303382334457198458513750643760681982125341359602477521295084557411056999934256757072244389534921496448780207853267287296820683782246227405868926753705549347158949129813442578643171378031491941177370402286297698836139236073115410360502267958717649194447269589148863994143292871842743075092192253904218241902588061689387470515429962606774226808567474219507543500570182017603400497187566869152503991311501358780794703049105597850475660527436970306798735887188197993654488110289352155796972894548458015207654410040937013217276962163040458912244120359991438701957284070261306839763884710258557568723887757458352682273086849571433806229961749058459433200628369737926199206698095516972242644876032995023885299099480844211185798375195400245000939418796197385038204898995541022592854144643197159449873271897267523247893676101775970433095489150957742959403232397178706000813573994894267251371389413391500028098173283174179662079317005347249553623384879145707205848161043427752967586129284658207720218143196818583388487058052423226291103225203227451768006009786084771928802433945056178122746528464734478232615935396599424338416104933485969813138795955704336960866491315915475691051268473114822912309625394427960358199650989508534229398849467274820924732174997838530145671276275142264612461222245471713507782144073685143668763421019912908707464690846694996384479087650235428319684402230147331220911028100471620263168537194434377969835812640732766405013435815778520118708732856828852381297546755430434952553243651875552911184499697542554834501151403370657107787558599739359664514672235093063982340085338481756119545286578458574933595531581245933765541870317704401023746462011126001484129898989516853239784322428178119177443054115216149797047708398466348298165714434817591993101918503840835238780355538747621622430754062480467560633508557286876566384111242301537054395605073673175242670857507876096049071822315098924767570305577084611335115053994434497329739471924912923757243591491561883427658769277356349738512811515417891278478129810539124632526731765292172535998286108468510002342233194209658106069646598564801177649999136168883398193298118493390277218345668717749524998992048700555502309283172974947867578623510445720066443122460299615143928261385183672516940780809333937753291867551245661179231915694146745194973335835070459915030704855946240666035252491826178000053497499634326529599776322246612351497128650141930221177717560453633554441668343980364673903491680572762975551721293321881397806781935974640498240581909368219576636173878586737899331892758464294648162523675799104994926717159092175402630197773951348451429581278917783560250612123489524917267957700391847029981385462475566241409936836503432833807371815983924450621554262143207612707648342592331578175141189215153892537399512902928757609479800320035652875733314395738753789178106658526418272940589984143205433784649366144083880810366248365839576643040140315116133724179946964464767466134975294286196794092764312719580151439842021531078995729124231401976765316487189178003655246250387451282450453800709160481686760422257836191677913295600953704809017000927672281010339835161791330893377468619934705173376261523330052998415750411408464343904233932356745833195791329112938862687969896813349406041049895058007252352556065955387567838375016081640872362365230446200906005941031817507633844266809685451679305501958140175240776298115224960519072638866222195276849470240786644520863411761772317430688833674517795092197641884999468966321373935676516138356808118708188706010020692516477126119550744114734843007624589038097732664945844868699567805015463718149272406189603765028514972611735129485601949140438024524688767289301085392756875324178776183010457432548403594552501244795199733609686993368195459208445531765855659938218605526583975530977630375606430514822294958058958115109279904489632165652697662261656194768791253158006276553061189105319906041716379670299725145861169923858428737019370064919377307313661010472085405527552551212446872154677577513684355649380131261008337595652963214626873209711954129392344167795199112858097366431369919533535950065125450040251195732265127063711264508930306687300018995618497670828876578548220378886886915783975646278784007634410144634701680724057361461989737003261755366523716865192834881893843090076163514751613381904472145344077683992364253980186876327369252540704371272944244493979263297175111545256958993836353085012841844628197691657937328628909235844305844993459355312675351110800079258549621691737398793392823591835596378899625109983378723954799588725920748454038785040187956337333253276490517487284214678556763594693664195249472284378009628581773857166189264675316661724416488569394090518131196122185565500077552263442728895533366525358570177101695472208526336575920359780330752280085524778734152682060356547227523828672551246588494388974696751175810912388818935288015547957680661796059281296461207040848828147425224977500218971825549810747214809691764987079508545185350969590868922103366244402150690221290743171569764044280656019819092878785051787328907706296498483967220892815544002832564517124562324495504419816717973251062281886655421441751449002153852778047656677929339641467251936270428201537935607641481308339775049183502622621351935535459651695902904892180485395357276893133908004615922125600960787048340130996438265003754277337993133621417368644644497870036025848896525641354482681463230196651722844938803924046983212184661552061119188744672404702081647332412576339609145175832188158139214149700751707568258284978717871231078509814633173264972307369864660342264342693297658001985201871167868260637968957816481977869970667388582248113726887584068531108538520643571141237491791277430588875318528126786364610326067683554618576803432202806229359025178035059417679919142695496149461767061277785513337973431405600407883700859537824840027608180142058537097776469627531350871619536588475939919452428967156661060822758461759050003659947614302764895401598228095054880087989661260613219535775132460607065956980841755071782149063230722179246370025676042958109627364910750801768870340155751145035498508171470664214095494706329467152251789388580045821788758065524650608680664574407169255717584162020372733496043667187458892163101458212459614858900261116681302328958523243896241297518916457301175161321610959804911197103959718886389520176946861029666894570422840251204249735775988682775675396322350539547785690500692057008096114954117522121790089136680673299151356910021588314441460688118541898326526037028942947264799800490872201575633611883368710574217205643721722049269323534472805432214969244832515929596366336870848991020837802520253561835339479325474314845963405525354624015759156053403857523099470808259024939680140084094634259493362688462272820720715856329974935347695675567268897267004859398600386242793553080521616974378666248919102340114161779037355158497260005183704057404464769491004119411742194890489190268333065097450036001760742911782283580265732450632803911810191396840808493825031189934730700769111893928937143952671778382828050561702739637408482746092954566316340802163978862792646685834968808947306479286317378897543388564149714924587773442399950791362300605982494214299075457176017149049133662819808310753865587432782212191222618220008624229131806167579599354922248337429200426475047654908555246501060921122124295299157509380469790145327711055512668230377942558541829518652132857560369781622387438267458780643709684618427307242710602933272003745543479381085755116405100242313825950953616115101459531515238583202610665855181659726176670578693520733233694231051747786121433545190290230361935654642513429858682686577486742521751415797119484999273698847685772493948260548944523944980387327940131817666044058678082246404355447822069138995780401863269815634270146147887799060038633265174000768138585317649502912575395804629985591895051850929261027293136784383461764984355861562920764546264503303861340826434780034812711362911318550006675795440217261631033745551808965683479260983543895499374527653283513364680119809057939254246302689514243214689285446549057864446327688171215139189423632394281999727335407176270746067046546483680055149384641406549701965046886586093315720988492617617881673149683665525436488886666844576839780022879570725250890267072884412323792493820001085733278280053232022529336081861321584727746797684683855615509968581860518161646786800392232727267984951716306419336910425231618611529395568450128409142499369112873487278609580465346375010369642702347292635879861981033110995547759516344766905441953384927893707458507482544705901690953188600980355461126580073014235239788648538724280787550558407636578487635360154922274497804983552209318666497981248521475521148175454266863755827239296952480377152197125869573178558632433603495362085674248100477434042799148289303893519008371038767692555503191064713979672650127632979546228839270565688321507205507362742121068690493590356042724381960971075941144400571332014302708944276295011821047568258531697348538040188219911088045101891616632255868396010698711176906832951690814304267762262503948364269467081414293344736412847372928158394804465708814688955966083904679059674826915129788666106888753474728776465371370930577902513804916818622754413400515475922565574595642739326137033921420702854266625357735614887237463711721800136033877807458267979067940340275438569579187343603000356820985195018630119323465545127774936559993871682232471485460048137787286056839606623568425141967491246317653538581010481457398088210728545471505544644200065681990963213686215251963109902505173224193887723084506940898604487351703637065910531346676987111345307349693262252994377453929687830426286800031114840900627455036157079685287925937298401487601842940634513165074387086223606062442936423286996591423903304468625953792491705362594837525164530197340592911121949805401801167807735207814309848379095148744481262498444456977699815114550732712741522987389447409342757687281075234028507517415659520737229632097976620728264532365313288950384703306776827981029233692857410803648899852388542399963909353245781280942117409400670065175714078159709302936997654359032558200487482719069643937596862582689634205148600899024238521342208056302693223378646632624148587201765084623175537344201937680969939005002270141792443963828435962645829483032321224003726138180424645953835210550833885488970544771076833988765495352342292564424029285198426758224941684254678030231027817312464272472289955128370708161101296609358892744062258689004354983450373837860209171207976064039396981744268831866600214360056930749722110216662273393434993755479763455753725603969272869564329612587232868538272476733400157551212168808851632425442883091713299702884602246953414009709777717150442199572543915706183422439450962237108873139000727514360340944200813345146682279170477832766225320585536966350729137972639409440124786157673288677654226241670535609201859223629791546388498841655972942291873368263426281951338634961787351642721659376365795384753591976251161799956612099052260273494668876066728945362054297189256655343515470260548697976697123586318289257794800264463752380166228096835945942545994082516839924337057723514794831948106814652785241429831587997863224098912192499494358506327678476512570682417112805092810235546223233392511490675753632670543102994238230872820033850421262791349297795611042807215851037133796644814471471535122771924585722120452942509977786941301733512044906074712745992223033674621324330818201283547556029217031148717944946629124701168736835347106065967351318170864183130721084823776688532489195630109754716730232151107770620604602658642939603126060305280236144602864208444631323680619555438555514299354249134541213841670503365321000185468569211963860982643258173068624484729057568780423088949371555644523842228978350195510636381310566326690964828436731453178143552871257877938537775032866758870597303873523325286389960167165128343443286676419011304617987659683327205366294802333542070952202554635468004150048068270990238037469423503582953006016517656977582128872101899118043497215400667040239188737099606609934368484576476856846685000347305509167172028590884434470276267395199138554498360132119772247884465500046660241615716763110924442371044041077327905490238205971066853093607001333770801679475720694121372153594847371447011725078716634680492533747192797782855427012711627236819352231664676010353685183338609919149572450856775239896946082472805003058425494393359336138183190498101525230169438790712852093727313854279372702861661881781525412509950416084342750227430817606965386135572410849898179747103301197271120360418453596541832285657517481076854196141807511786126039573300949161162456459674255245656747430919533661353388740842135061253222793527205064026165879141429570218268195616606968224308703354613107987914888266542192766352638160726218062822243385872423636931357831517006464498962014486404272075823170354290504003073969886895074181532139422925084204204396355896208156371817691085772196055782503606362192406569522629133771194108717609599559064770336990381416767834207654471075845831670036770331028288406727046894589018512345200103055516753533155372765346767226892735270495905655723660938987385192832304741621535091656571594072577021467076230089711965080824109965504885593597214851805865796085320202092957105164397699466922471263452452421483058657647485902489874339577642663064928105982599697799962782787812022535243551589629966119414894017129813815501861077203158164908088966381343330920117020817723594566069283441914038344175018527687297869223397062978711816512633508334734179635358649889110449258302109042841676060082570901344258099803885454778375746975188754989823022341826811320084794189334129564684696306446929715881662204826805929302726284417099208025513008774275361833371436391818126651013434223415649224483686041050093388004421058904867925060440873447861554233142796019154502346317717125349204141627011871593351848206329355667089102403700652705139755661602834793352934213288253684173973217847012436683311761602731793310052649567551382676470603272177344738672752521677304640833665243494946939903331402965454519413102267812744216907780342455989689174658249621835421853624315008595450759853263930366049027003309351722669800891644854609459315404656552546754650575747706756754210044353739905522105143043183845841406824130666926290134356061106997608689619661125189224954272733142338638226627390683245821561458987769851095874360300377970276839589727485220071726335689516462992919540548389588591341810808057576631286899660309411053953482518011588144975365672700881629576073701909445844992159952031205823498435424909379969256581898982313821028740831310922684579809138082727772505238638625678645137048098855487199414609047033520386447670863247203161960478928717656794798324654896037634164314752619296656489018151233061792935267899794065514751516441716017669997887079865110080624085475831278824472965723668896703306224634211779309803692353782120397633934828771631110091572312808156962447069109285583276355591566988156340064810240914695212204158817073152662470601431184139125327650827852216378996694264286934410058761719669604486058920681533651179394869384291397881253900523675842667843889319470351516721104863716903960610659170040122846531799101645527644304525745556151654221750033839283032822454944086795976693273864630389866004587166769553795087662588818963176582729055591158873894976170186609691599794957891904167583364183548240629415394500773759258529448813185066852885838472307925143383260286860249208855497143152644847664571828515023584904751462203059183187574901508786153719597612830591213574114029051867668512535690493190685090530915849010093624811269503493773061048131244257167053347168572218659125803056771587763848290347767266497797422739978609388105758346815431762044302880295606914237503815721780449385582157917786516039730441620253617950525508623058312918949382729725523370426209932138429029495989913628442085625157062358001289894826742152308238724282690760151127639776361315499775321380278154962548745532057405844525182566328128710801232361068354135055377173173218598622871194448518055317501971289282568364524510713136635712737887537207858898977421099776822845862858064066849370603856749896744879458528622102491065517053915908115738780872267953487539895681680290341191008536417243362535885423915225446350375060102984928432101960239325390820562989313026762587570239472322143561600425448694873691538750678429448389785374963702254594211913895289712842832297026092603241537737955256625714699871412641769363252751653008364783160122946005330859522369777592900411688729527222563805410892881814497670702970127498333348577926623221646595813860926247350069419002292889394976609730186136629327225989071756891240848558611427339766445820115363704399319712448399775566063764575052222288186041706552894702463088761630089408164874228735292508957851065766234867518298041191225566104486653111458334914440078319237970474609168079454911818124367151720281276199692043167041937344263978923662758294741964138831688877945396079952413451683136618167968533005235238515751289822384639255268862999316418961740672304213710536430307219433507858882593936874344545744980218008281995336736334345759773294164520163805804211553776855623211983820818304956623149952977835033007246001056831834610785891052929205524165115592130954376273397011762689892914576383880952900386876839300385107270972183098419965332612324668159465904676130046983451402547400741919061857118085688424585980697099218421520293389021612267619215087600742963606534124099323418181422084822281715474199059420316237397669560357755714428241701864256195809645377199425916754988757596347160668320376219092908700171638475597685521839128844744807169635162233147577877358934232573623810371527046419695120416038772689101020724848314382107933833666062650911144356886491682707743464343583680380175159610707291845382996683419213213400639735194871881650061070761285342083853663981153375238871915745807638074979541216291697779245185179337710758883813477996821115915838516883144431513311867791344748613754489494730659224707028891647388055031466024961305762229757983531480789740005995618858871265962193306225161436468037263215880421043606496696606667640015371196304152267437710690681646697226116664120514514575701440606458254547492479550077541126763846699980438789579285280552353287586339973353695106492465562211550972256388310846504296111515606913338559950895066284063060036300118283440967117645587339602491081125441298110871998294995564490366869896370462482793351201819852148079246860364829298459713699043076700823232416021450109936186050154762782828798065032910381346923765626867764012614458194653905324976193831265897546138071307573252120673852805968591878682342848157900865541970602903453063075588973963044453871121068376524647404798381019642731023989557972188025805497567989841766292149205983601979850907062806067417713865328366254752399290242917935266587641115337810654570202562745559601872592630810777444451075168667411855538738329488690845105034525679898715848506303020596808442926225089580934847034182788842249412104509179811003011361146611533111820325678852611622408332976222572280777782587518349119994882350883946306484503342272934111384812486151566170016621114628769420655300194189108223714347737422496564455514217059037507190691979514741891024709759666708676985780494883847004334704506750712944235967847715848089320768633877053835984848125071897353807945246148595025339279750977931808766105084716853880314915507382815529542855380357752735781850148587844236704381784229186233711263871313869769855229775264971387844433356789198049769544068815520393392784762371649563919775000473551036439082174442322000770157307989884208599937328348035519621448259420557344474729382289825459647761426617260914906755482157424148359540158099186495515494502063390645778507627018870434970817160992574723901620357680382143217762328424040190555997983560438798698946398544817341043514043057433059580337375356726349894673771681611574248890612400218933982136762134049601034599888812375566738009513566127455572773270691641678653719942276334961081774386200174278843905878134477075925669670705547459051264114702676361090175371479933599551805607434030305816492169815929564676794072021631093926208207086589520884060603408130357816432377030950577220082391345075503747655791373967881688370784351869347182453930840090713617574494764521840558633162394124276366767785977854485199872937214046411728964309166913036690502774672589555508801401891497838957661678708876384775728142840737194012535846882869680244042941848259355578576882943805918985324620418542558235376204868057582047442354966048122105398385998505202085171526838190106591406754878264006811635437230880402570087098200480112098151667084812574392086350977507759694093875566661968994757578139184282328846753641357428368497923634967922967680635979787334319801092078260507178432174842844046914819130496233478435935937042593386477929262847997895177311785244213825205769005948458419449046163075246347983699761871782533137561618998644255976647219710495192981548282064086595704109300053135342305275079255110314848249734984007717054388314036076876476374720742921806114009907756898477939047187432554332632213250524126164898282351569396797798575718885066190849618646018319083278181760481225820257760641243720829695762791525796493181772876700447051370924257807867344467003700432477208145345955883550952999889887700082194002905284647230315337724009563831877431382161617276998881871816087699533340803172479034387557800629844810224493649244901082478193185589386933458772789030541133300761764878415410131290760668057936707750670837262869085721294077662455855611667846112126516881289078944162073143066092273155867758450560741891002921995429072505783550522741248758838087741805261794274928246537140464176031443252390591002792507129620733250744079033253780344881269214002583219377747837781020542507278231765878861329597086711301089843514999744127813085589728397326249383190621462186760667564155483058513349726311623106337996206787944984268255066234406531733760849930257149692298867168313903771444375825316106206627808755755881852228131015747218708330821481018610202811015199831370455331040356259354210660073999032690959862787105917243284457051871512029556192406624045867695036257084006571773918418946309988796206965851667875289005791479574563965826375056901231669437820833420629691772306447954519301871853944587635433536374040101589332785125879959766328910565729268140627629016105623632367279369697135337323359701563077576498879272929869400784943117339926105173344645987478988551770308503618342653890332847264444617549678074171995412882705360972744652215716326269191120484770875624177378284301078145651630139518061402022275293377074603023273819014611510477333612620061927943402792984324992554704748882011246548488506629142136171356574539962885382394901078454984450336198062099217475738306449500635830615989813002056633773286720916414884179237421576083556115779048921113903872454835885699653261907117800316216821289638734450774332686218505743702452657876068928174014164474019072254781536635979303095708129678780977563824893061273923028619738409451182151490240281068643637770128182969988871972095470926865742137170973970813920918090127466663406558434346580164689917608252636144866941705165180554947060820754656478426149866576518308611599635312937120584270802345488124706540952868990852474028662158993875086232425609485144162785332682006577244844156697776147243221992854416084226536710037958016145832109338974895594284016982891013065993841715176100877350873504991023934902855677573103202225070620888797408606499074470073188362620747954579746791638164483022039625826117294632958216324638946057502136342442667179661231376780095266425564495704860043073966057212533665982774488070441947901846576416861994106698035967957447922482836530634560824543533474138285185738233855681793973668811639284615065719849260455368717377641320517392330019773319919852992955675750480129338053773098667334982134684344971991051958085887379554288939642131584727329748903909767900302258628225562430184683126314267060454610142052196804348321896515872179916400238583010647377061492923970513375102638606448855241300858522446043343584060504783060399379163393967250227349059516054272532726981514429351038898504968230319822964895053895422527958847203950566529611163984639401925229498185027392614538845441797391864480218629626575443506639412330420479576149569111895556560945652399602102374766106735616726688571644774309696066276554805356948981006492820633058062349512253709238836539328643286948542390066052446727155370247993212132861769311648618784550830449269617871968725542245389033959529353444709306364226955237169824028369634283835301951751563297096439456193781790516031752410030973691217140604952881866299729198452947424892657557794145772046455707181071180785343037692391702566835328740345117313137768078167759441860233426251349402807389276464365499872685134580055699164613719877749155256766360612628371522738207697715944711633883940720991268983661806924393405120631527659753114069187425930483769654244074543210467543422894218453501818098934097517339552659947667485539457412379906581202655020963497212066994702892381405829972348625416205513520609163851619799286155855342272385426345942185837802712291688596731024676796516433392255866240474898758459548856119199327369589535546325657557438734991070179498556913939189070568531779506703130089268746701063939935266870525676093062442661230593846742259652399517104381638488351497685258398153326329752728662702691186815798479022578785938558011621978914956455589897302577784197901308545307859044624394249352167737813842587387546674100469886944866984454194761141172418116736474925850821855490903602256422357189479517421264314387279755625758044214181093732630952290032601940716753141059598479156957333673262770665894287529698777781425630145071748249461038309298549778482797571843901988974405248588070448759568362934098824769761101198603315156343048066725626918020411735105716553888481096817146354804496009098515254592191640026160992597080912162654041411757421074693185030294379716503840281564404470070625365875015296531092356971174144913280437275061723546698196147242300792163796523806369788656845576885053752840219623319507991674973650108747602061367507888829056083597011452898908914390387379553615531016425643406233531837594362999415351801826726763540679990018157555826024034912455027362988456964700558119790157139972619565902035462829138516374224964035537842810117763846040390497708885923355266127200996391762925784103060898019199817599127508577657964724117744741866082355783788829995484050248220333313388172229025846088081563878701981608756941621905790745812803812235369713855081795664855473104747244283664012754123861829179999750241703981099214312344736800115048672018530887743948580359957976605753564844052218657345722729733227406508555877749747756106813497596641186429188266325433994041371589006352524280639093976159565977675812755115198399026232306895627837320478515517082845300598127394134714611056552239104798561118391482001503017318439609133258179766064894343142384135386188913963797201849751458450423710506855597666511019607798626090842055494032986030145344362369156249011346329611765153860248570550575502419794793000892612474624059532691051914286501200229191753401760319126389477961063289254676567643986449723241968752784598163298026193901439243757658060917936570893249584115925617381141357954466200393607698968778440750545984122424484621523964733019329426720644345805811602308496526276623335451939433519637922359693248020956529765389690758221591009119459136372733697737652073832979851702107164623709237450334212814927632536565447814633440562625499828798263003796697676323209370549573242467693929485513644637555852778937239052855395409340596478360145311235911791350975349049262974742835311096821512953842256755177162648741053276799785026003388301629985352388950153661602053439807388810139151795556475603838334407203604184463188970646101694238058927126024651576999955645020477081961359194919413926700330859806180285836639542763382008427623395955767399367833270023047293775470450855413563559418118951496754347229099030060274672763507776368892739074489021062901098676090905825417780610955051445881454208576518959276091871950808103189765334621085531525632748858173485537678488831760407859510637311645900128469207746821998432396779083195333138751225766327274552515664918338916489550278555791095242318783644609670233392418612600770164940855561653995435744822454573749064445588028035216765322080527570334095800430115220879533115088581024216788201416218501419640650991502583862369222205525292478543390573242758758119331653899602953157266443048233415762795238617675014591950328418759710250505946998866056594860328378233528235186503174176333152079170134396433450620910430184608808788002052290001278088529330343221958335910933036486991071198805428058346484350259143341206430342025092588178472940908850755920297557454224006486891931971815664327163323529127315078955417730226744891236169219681637810576766107397056175229574875855856343583154504481269690491275559560125807769609463247105498543269737646978305833203332317153670867553805612853381008746604751588481628018334431307895381282893626042451054156789247727265256100969184822197510582393241631434517377693587027005420437250637213611590471052073144826573663238278655319557240766304343203456872441939937621572768643579474920935689420318155017505443424621786881884109373860670328730866729799605584085376353251753740330632903297402760993219064162163446552170306582046283225283766222857440761637404144463708235708571307401191423029457373489318616944217198958489668345206552999457056347950352226268489582169679087660182816035094854179657466395082830576609600879782845328224640539715962954726953639135133581760600895287678231586078292018445717119178426405726096226364554221382331969791647030619928993114394856873769085508205225115371006059201272716518963450330880542635596983684939592922888641392224534811813170860314925166339385201305155609618379270063809014451535036135326617133748973912974403742623486805115723103178030468691751181814123356484775548563967562822781696037735454856472197177019743150676666788935004118436982797593411180714411051500196622449489624996133634209979929322171212261028455249408089645897097659850466739844139413180644919812894646081624242480737946577699710377985535863820242786691708484584485452340753923308705063944707142019435849671964468454238988336159600586060134127980646693896724535987456038041603297215779294807506558601353171140502469681339949123783290178375360153523268002774343955151629882613976257299827469639110589908290524324226730310045887628050110545435116800984544288216670880356435841846349473282167408923092062350130007396169042799695062060015248257104789773224626597664520423314837253516590508497198619229748725426475185436837694780762616874732049245982387285794714483286785596466631909360947824388439027151836236568969502693585623308000729896011000193191530110009892334870352907683209129144195673338009131339804742638735925940052332492978804106083837138618619020331759364350366289057759295951215863807329625873000274372146438543511115910411511005936076182500452608124078150414486862646757432479733044678080135800803414843430683664020810834674244785253913015821959399842088794582071365809119028965593783460140588742123752445497175802228908788601317509392708182806174437865137459168210581260600733927266456190126082654453649130768872966118688389905469716509779747466230491730817316141365577674871473479924259594810755415539918624861723734705373304207711872351936716012905692925974970214580418508945257425701243184653498359955156321849460929014477225675785411353554032191416244779420451381243277403197702294078935791310487229171161862881144077170262070684688320650668524281871962809943692080063477725280729068010422947346162011262853030919122633629017345680022948792640668271593655832250316824568034145195154718132996030277658429903751889903947373528253116442054941352253479051947600185924319841909589334000822665107070422041188144383786386906646975229070160928708450239246615905657086539879724049103382646648010845280465048183409111924732685786135804061327503611900252693895025308583588990725509932414415263419001498253009496558371677565238250195415797931624725922702598038127425065627689429530225364869409836259963374558824587614273501236909618968893405996553745652716970415855123391416063413947018454884592184980080080850823557533915494474932730871808643686635561852136469245501143411555693947818180929834708116339362729041293108668719895931305905838822931259227672505772926582387213887875448050622533597815543277617867579982675578230900255070478651204363579723256160914266328415423932054989119674655807549850641212610813688287395308049301895143456840643215864734433677301361222356083485081875894204292028123654606493703469350055837971953556586377224123748492527097523746158620201299203277058591579141477317029220265138724593059290520763462855364571641656475143780198640838623354322554353750453580614999711180994908330959196151622535747343166398188884004536243609415857023010086604803016245478472249255139419131652984970644066082421335376536334380685888867376903696789030512023663802651197483572036969491718863189457161384630708067779225523465858003685705775916339245858436962158989507380382185504626475886079108731717538929206888223539774339847559906117511908573255023468473468851199937925818106410708806774284763424239057303291899245706647921872827724173782000974648190685781870169823717036107627722004840372937005040491641695078187849333387721287103907312224730272416768731456555045312765163745573123467610499663225233988178659525949526356303118645277205974297111776705476481376121762500493266818179567396160804713267959017732362667873575749723528994867142674260893702689960888291197292852589902667740088006335462666703051055634773712458170998627735435737859161858553518912268526184513969797310628566844518377646223943421427036046448431680607545012241006398257156513534835166135515299934400133214382838481174720378433598042439526743195827074993122928887413534524851628919465081688444363502792632000355408284145785864981255743689255415622218017619154257275442992416064159159913962326228335916762773636807608873139472845956263230610860007253346923906620465238506211332851401056283904887373170239551918424487843106534055774091319400813831094754779039991881850944410491372042047806174741224388825845913817897335802405602803619700592276546229997788372553958543568472342660762270121362645653605210582772247623085351741333479923909703305281265845523760469110502437709502733220645778868199004589086356663000497282023006397122889100283586634529446081617096025065274242636981798477389157866365433587686268591402149349948102479505883875075129360906069689470643342538170131613567078177795236179925025217818173448096762796714205502795392939338288920271881791913337867021705699569468839573953849171096064718145100543152928596967026336613700034695254978366102521811774589398414167061984376597158494916263330252336843865400176416947693422716538375336333820044240175538667549604366540338171709684265623922979033694019522439241929444528969399657303390684853505065239736740491256425748181231261297253525663425378771336023198842370534075601220429927764083686309029373559819972707195332342971676870092697257427700821797752568859066194989860627812928907123008955952049552472650865317454176389472236251134663657653142765643477663345861888709719010263626771681419808682801837397167771261597477342839594442471708110168788154878461393603264511037950232662900358973412045508158623950200104619471324168981986578057359289981066446786955625407914829422803955882546583153976901112812924450696202969319064122532192169594964546400146711304198740135672931519168733341981111413831827885329858430773766173483347571807093938390903553516640301623151740954158885828133189104532640935520605850192508914669617406826964178741219564314727583877252249586820766533670661319616800223279096420419740842743498610357003731843236146607949615951432732870810485370113104925154202312081920003643055363101544610570879987461659855301240918738855379299622856441170786697215523379102237629574337168988491388745728362020152133353281314786964621892015851766761325996899563706349306795413169143141217525571837252640403253401889909667541246121688867166125778635084615405667830480028068041470293319264174214921650226994482406755839980312828103392882215048782326200700113519793761828993286725500350882429186332067049735872893632515594961616039366226253217938559848464120318727899931498782182136983604299537828065502886788264939524033104426298979306608168744377080067497445454674143197198677052559022567466405045152421425395958286928477324336761332379246007036372513409567831593339126445585224910710569312786256023649115000277612997605665560562238586286735050884694989592790352623319477927030854949323609512234378969365671918361665610960906635104818553312827000939889744268306708216626439923585502030493222121819577131088056812124228355373989333795125192136452782688188738714225621769566499160838627465776787548685919036736981825689733878407663031869329535354988426036621113676589885488828776281930800636412092426753118096275982582652664627546446675633012861263615057447044157727932138244048736215151216707966091554168868242001468916505267281578075167621414506358482219623352111369998045464706079851654669243692116397809841494172242096127980521424300684728605791582707510311803961287195982913009599998865208951963927375589335965669640624538187532594701955659573643279390970379580463354314996810409322213735008001442225111361034491692881523366712666458027639016288025077269255230530967474511081153646890004308411948581027650910647549315220073471932808111568476851529223596239873745129928543321510196902858358135157945989932049955709232524455099774275161903974501163533883374369966143929409613445878294294740802539216159196484985734618032295144371308399150302140805813021288375347354113053557293233774423856182441848560259407151918828432748343140426099859001453023778755453435787942456562113164291179484983474441306078047068006419226706777078946250463583213080001622160682090802049670907389007696427720269932894063711736723863267401788311595659294254926212663311105489257478435687245774438681900871914588477872314755153357435095346024910445216497027158893345367780626230410075325371423258207729657416738160333344688154469758033193158706288703441654312604157981988186804148276154454924122207241676104252348613787787622728159657077620478576415375150279637728409738850975970845473252524227364895125973648399818389253927722169890592201171550787934717988117868855904935651981267552279760121006153808642085216148134670932420369045970727920858470485900358980499506394960268104490496114420383337343474854208941708868865818325253521531779501191001418420121068624137583369085937680395608290821951451770168547179552485873542669186320363091813075008914800959888742392171152977808534959042098210522884439749864311784204015632740487748204072712628231333373281657062647168487919110902259211891309841785367290393229702400296468258174474403011625732119309911056440104869986637345371407286324572034021155279698435343039665017236533371446607976395176212711776858232030341020744179173398011012259208012485188105436402867368441788838532107225990307264627399314688290631408112882213769609298108950480588513052193832330648228510819210014781244717213270316516371559987499921012134047724213283229417528339436952610608722625376543625859992919087250740599995477892555938467002330966696736456524336494992180694079794045090710220762681678117429259700826612051040002510175295051417451829633202881948554531856745831619584831912194156236170777517110294443203215611184092377521155911765881718089717738345083966817876240858946710012017365849953010354551363111075475311617547398298629226232303890281039784424688906176331166484650014235395027538438277384550878189455405725518254598944233892105178216981658543179310779801169237266803176208590558342398423503723981774395493623189771749968676368627716108261846684309315049336943516706753682999836568613367323579795311239859157444339410538535551227067648005789660819326476596998918348414640322977750562107643178249922702919070496459970736505197154117479933704367347264460306079852083792502042291965867584339439005978456302548360299269439700418921417767068750443112660673884904459535914372828331030640779008789621606910179531890941755255061611461653450150421796287608501160364622713554281303780174439192319669284908860404590967710110135035726491597049080482414512406147314108295987561639620882165014306268599911958109003505632608020515894505433454897502661065068671252431243769694047646159619473062098989341611495960592939203072656229085410011197885147464605077199371664375456008481880063450569321953290734475390241659196830259249005772458953399204129042749181626427398372106578892341410699832197081480092186362983077249825980220346883871524036106004957294464212928457012277503493136576447941181805665020155693247087578103201810797697153559722655929104827740064921137630377195434976372524694523089330244286407316094217394115039382287454407386880791431532691571153016224836212544714855776965648767454803006550514988408948374372090576686183639587395175679337186145189077929356168436974315285090261108176138582086712098037586759564209753135601777512499183529878213038667320072562533233346347130770592617557052422830257308961597463126333536787768845441880222428692463828247966324053200765275412473810322135613332211356719823124552311318797764896589666257969796716087079494162167078255824501114561548130158847499306591066620351278758365995457530140014342427274689521423081426985811710948338807234407944096989248317623914465990307164588635605429445015289656302114335445586550308006189791878063903476602684111801918232862899577374330365018190759183668354268309667348532588533740534456364406159300119340618680177262824994613114612123329691470449980477875289820740032909676820155244984476906886968420649944635771665638368243109052061819154000511211945776625291448386635199433376976695184919280245652973232132992004437232910103536623097846771449548933340084840749505901092438669394540296559359166885301022828155340450546279844269369991134314423303467513410280184344117760143542731139673523978386563937222047498942285773674391966108569540752823625790358769206553432132162436719470828316148334137872150513492017199752252362174007283068894715949854590812574366595944549725237575490337388566514081767262826708942836506621062093923107677086057208123640969721139260597616188154991812513263682033110496548271844082573239669414264846573520450655328422018515925589923782168916235158116134954784652112193484804920414942625396667816685379482875034549661599115604602196505317817047457730557752497666731605100312954612326083219921453647878716059197180008284087388452323011114789583650765340980597201528163317943590420703965916985168237825316943624019934255703010577535459318896943070990193920977779845176292592313443256931981342110390314990419603432237764830429170029388653084838693672948596719407101751847553218616534600174025686206789230511264897108768145521061296467378151457100923667429387922869050638269426081797735626503405106957863461864508375857704814448722686561454023057423011405733897200623217832610180139056266025980887279204943918330631365800108560557592099671249365976151902535825481636904208270845785805559034536763511692636829218554743893469969540404050368833054544880322410336939697967367746723201853514758299696191857410357352188876805027676377458226709608684570829071402027783549394187326334749675953081913411286722648327413902610613420245049496717338481473686337643521599195784882287544127015181811027058444077586739359696952616686905383086382954579485623534901409221563603453425796134245281942664870814358496609636404715174472232549516862803221568562139696196004227284584425383710882972813535663820612233827550488999369046343334531897724188214598692694961108086857386582160323831693761561146326523571953158645119389809239362348798679098307085647166010486523222565989301820386052565998635551332782008483458238161195060316134805536281043035682165300128762760772880181661403622473682301883111348371465971405210372846412567287644412063388855275449265864011831122062015559093066660222118458535060384412122933517022158879507996848528182201893602304621214886276844407435066407219921758776621157157182735439140251560386490055275147954932328311739109956381165686012562792690995946918939051752149265170056479739129447242628082462742759334987539673740100665518276256634500566894993551518954106695910250182443645865623449476703700329930220182104211279469480331098313579894464524994458130570405199550552965907622332344397551296500439319006012415964198939175551447312403495153044697539643307744839203754814079901516216262922380368093938711379001753973226578365065047513201619053001004675042628939192902863358437086921172223145687503245877971401655081594647508224291036664546087342058342841462565680693998021400690408564677782701245111491660836116291689783793491441170996015755163223192986584706552303780179428064567217485492415458823037948381001468935638154371457415950009405002928856307229246168414228158648245864191417786591489283473451412391088031635141193706094459107664263599404225228455972629932110060894387272284268679913257637879564624164532899348356867263667905127954681601982326237607083362890900801294693031831605481319728431303760684524922807555018197620570873877219173561760800963697901956617647688046424657558207257352193306239905739016009784933875644227833634945209992789293191218142441113105202542137798651233290256886301737451275738975215309882595782961175845960457826203648511126818605812732943013473742038012375902237028276612548805957688448591074147509179959713546971523525085003415510449202321745171823275645930085216235405945818416028779964968527898773402735581814241190387411960643884413593329995066704916220464425693975371472797386956909101915897434577178723559819028739210217056641918375109582811380394587052457190367339728435127967195762944869520091962471588200902098099980016556843315111821722952640440840379086871261817168858173563284961081104375574404799517296870533527479848252925792048638122206418689819356907973708709421839488189971310151071813038969741047589793040722392689743227826638136872577436775956896799871730409940247221509936598478508779874990877500418069470456935448724483143869800397758672308435418305391897025305783232627948759809925869334252898526865201695361410395398472897657536265217772268238463258285313109301994737127262755360872320731582688366113239410966691884132112107404965908903754297962155146872882849219359663010333005841793879307037155702654702796562382938758630852355366355090761762411418865162725294536137094192421583773607010445503318462533768237479937915271009407666481087412585913496542547335877570973419716863480390383388676658249533297905433583796024453857830597132461402631935235132087418495617231635246449217330497525361629391638407603633481124165565322217017322769283786326978844994489877590825916667871881796754655855397468627753454955092671156780549589129050277683618955626358066661643055363557325927526549089008187553004371823657765573955555164170448924843413370842533848256103046114954305084110963181373872676648233015911003781008285650501971340686241691980197184963623258290704413597746421599152410104651328187946746253574568364554772450124183036877569750490152537462108244013467102301366091912204086009042548992951523948810940958957608146701885685107110762679971654205864988515537590208607566091390086010863572438554914548522816056141859068435023197419979643170132646889502353138282449085576993622288972689801116241835198752777407404091568382838629526540111077314181332324136216902340015689254867581009950043961114252152467688157778934030937007804533539517246350583538107906932533115004896614119256621512111130657554276618456785102237122463347484719941255550016208887773051934553088419405884343504541707885255607562347043119248499929274712494408346292232574882645908474796498594118253724735602744539264440788349699214196664365454083859697993356655815036160944365487078657997252778995932493784343518241427736114509819515654051474223694821559914831410589707420927323183034982635445617525373150354640056155468733896994082086308544329716049299797793165125297712053001031808273675509480023680476830595560351568427984412872721156055615822279083161169415596292867740844339349800498844877378486685617783787998145936731234784132142389260001797618922529354968781003614750950625756570691102454263784312282612863072897604440979861189613459856883981647569218027476476502999080759351049344305406167182185341718124344123570639027170142610455668092716655553586321480509801152823001559006679310192202610231568605267815791153927071032901707099173274159984018933330026569081393510432755802266763437151063261106505361273505233232821274436863133081012470574722306397955449001395131337250212424986001249322202969634105723635817887600430003791231211178359950852735800226328178287541577087768546289117528094984401128935869990189117254727784567820376922257924219282083405046194735330623440227603372942159761344492431245107592918452533202008184323605976533231164550498285759168287791793445902818644881009809969874456655696535648608408575882392091516146022084503315524283288018511113775504177208831923635304170230233200450208628795659434361566060509649984244553200574355219004436703096931784411082902818061025206685931137299038274392017045772650506606274398501084782590708658202581947912000268298186087834416081978481370332241654013983583719711492701691621898909150403183478234361841508359018613814291251783822422229914164495935627307728046734501044840704168797609209703580129535008626316798797644204555874683927585755470767309192361689736447476063223437736953485194553282219023485194140964035270034710047286991397457368861621020617643232424865864521746376137413499084239033248814149102488840912352316566846012486101204526012411994078417468940027287180857215191876572771365279076346365150128073153538077219258790905208540591453182830402925491203692993390484700758722926736937876058603186620546357672314242556229625866742246585418451970415189303069197413399589456924823961039799647013363920826440559298256197828339803078750276837548404168453447250718269181702329092437288267641644360813625177954355608822755818875888368400884701709284626605049736191087451371752336849246595519700666424299660306294720248107292309232353210546285203971659791055692836661973800624160742734361804343167672165623985769981433742746722650032603105504162235338601411169024497421331438533103655209520897499074367615013174378635362018925082782997663800421114804155789518240511950862318188684716929276013443494591817262677735942191813299042435684902414731735944420896135578722989356905420526930412700465847425836151274501957741749483003961857299613479475010522560877546173202599728695707632952933135979715588854923059451889465612499680189892718140415941421488828153992594327660536368490788864966216269049396466287264617671303229578571708292713413189870359544846583108312186135010012597055210644071747257358684959930274539784814928775020302540248738627830881017194683682775179345690966318261663777779774670580893744625066868730675810308816729804215068450036284797054445337667839163593101579868534841680938535498032647559022044192798495600409519464207544403220281010486956451244533157430111934936092879801532408209365386587031639894474716547348063041509670267999825631959104699734145305965967949686750010209142016348789889022861679657249734909816613731016646838499656490976607805797882524981839194991510748050682463195947969823472644232085560914125617131803114919006652817167949109645582291067150934465120891052396273022065527772606240553964153490582229334412643287873833496148280546009983612264231202673934992241260054963552443028021884017068942937242621196637925899129970792240015026882315546359814466646778620656043491558138381091643690536833991827585383882267361990059249799609761868981961081871571942925117910544132972511409476936248877506814206856170679872759908857537277011696404224743491731109350754704302302927204819634175172976362325907929843953371774554300565235821181361101784098895140984269596111214822379366632691626547432674451629061441020209664016435314505089125363020889868526951987865653979763077681213250035989156710415018675886792161017291054852805632864869417956659724832844542425143481631288083296056160521097935276138599946186849716276798043371457545247641275184497492576220923859082411595500319742628442049014339043584267154733874664776607442569705829586695105032832422021679137718878954005136240453746399687789934912663964458821385507735398386612512392338832417634785661743732084907132387548351819007568329768290807980648483557611476374806328186499397402099777630441056515557116364861172916027697504116637760243142728398782475356885003994648304622419328698267951284269820008827100957407138148544442479333789452530650432523342582459878970919271507627098845528094649400954845147426546529025806105176594788496695512110673062882819359501225182925813501619200182013114615270723287593187610457760726802823196468288265964805211189975792159362839669011344064781918649090627068660608469169020146301596473892293479033486550154769035428328095396338162971462744601585596103783067481990476485047336434072199184077126754676611524408755549007361578748329216003544330854016290081679081344482643107508347594867627030683736831947552038238801590967646237246564552545769128366183204905872659867330922169759545039878256162564249550574226635482269207090572377818110993541333194217816627972196129199337262728399551447312441771842201721865666142202840702675609404153947028389661044753618359233205789868788278004351271983022315650139105692195816006927331156833581214727705676525440628884555220725112549149562315912762981984159175027936881504569499982522354922579601900801962184491387262497217917110165021621602613323843929790200673106120337128533168094401685532053727732717955560312822046295600840158377444789380344805173940231411074141004492515045737257858176875361013535715945863809230722990847895773546024289043557339087789024153707961571627898487824238224577454647995085336999704074882790179923491381612534994830319327358128955568542332162399805303306063170403172828237758137651743258277995199709958987075057348815097085337114209907350867086100071926821152619958476511300231010319703293139369023374766366004441458498293020689899831958335518393229340556392295376433633237723460196404950442852039658059003888208843321652216526535385040933867937632073489984577859625282508513970367590293744197271467387148888524266864087322335644019982095976643691844777827998092540974134615923677901145778491332840627195231245209331294396371599099488661393106949675496445421050043682240432624000114827916897918584352394728540556090140851039415678065250318119152065671920316491256059948765811380165671457692465377053836982873786897121671652660828313531991275398867269334109624960064679462177466857979406355625308831508758967024461956419665470890987393541422711972473947377188094126891553939499680061290300103915870809176922091568717991815316469568544544372929626963589019077656414859362483184630033796082387291512583183070733448733360039286918602932550875888897094490879508089451107733840107438435756069896978970914625184471629286666669375483819678114362532568643136121948334778379684614021277546414167260645069917362323004429577590437004362951473649661551336761789592904867861409434931564109433756708127040169618761225538327965821301605079676660149261346634928226566901464925246177051838877886010849255211336111663423794815046011119539477514729076790244452262889732264059457097408959488936534952199145905078869611792632272179153511483114188640717639031895631350561456350158648438075464066501209974295360358747199135678640268503115071047605040210633231059369587501585467602678303071689245997365369455172112678717246142075104772175128008970840896762916285354638333641042440887106653682105832242414086817246198534453239755586840133578300086752018853609371851051010480559044704903398305922521227957420756151372884757376808173683367082122918425355912711599971872946327930755105933666993259049284278900417913682903205399810695750685274655219078558631982836757632802617738822062746256119105467212011587416139293313445664544698413664990151411685804579545309295258460968124576159478090012444980014919892465880657570853649548386268656446632505263558117275448866139011582563944702970371266165447304502230837938096458446318600019310924547844143809213421613218309481415096191681408757779341638094979721531416091762062026269601869176298373977320101892125128826282360062183424158998707242139999579816665537409364514958950323986820811552834139402339627263670900295885743776488958859383070923918868854460912026826948138287236118878851791934040383412673474424198858255375215530718748925747262869048682621048985316430131246499077856203121308571906160475932896363220285124430128403059260631357067813144561481517319687141998947094013451569569525265980355455667402380014262923250681197806816056570867249667615824339609785858394771703570121220800638158116868028359620001981965997641763796866755754851716262859193623821557256203506291613969650043987337705899179085063587820672810155596128636011438812794710757158681778655820841984377548071559162846880539753293861149347428827039705161571340154932333068461338235092795562953661816685425662843575574011675815384528234933937077024478038292707728285721539023515129992898689267355932822854944605735427659446545720615128905814200043159321765404000522853960985096706960172461642937872029918650969722590495940617085812338041960999839017164700628437546888522219045983126390865226819602406591255648545754551950366462166248753040770867808364060800481244147776687786604736479644439418345818023516491155345530895485787860964576441942019205853248184882601657115819568128733043144133676396935373759063967395849521514570345221868689968504706147517277731637263329853380405481072725933000154759743105496475444918701408126147804725896273045470046399355784981538263485319328796837882777574103014891856513904594278935411472248611821444461643101952706970446128198648878955398679066883876921286587931625342548246528604817693579542738700874208648775434926674079817815870656118732396888692152431833049845533285853198131304150107671926597142138101564922805990635150049747687981829324099612406627399481607959199887768589463960259775584630923065797371504167367300150662945940175019334240139403889963516035876341498882578350301246179003479679484955331100226671534870169531946246530336785825046059326629178935018681340126607681458631923596959779663389534521614901656796052185946588664346705313566586229164508823080852690172619156339044866244289465192292557597548472623317739841156136851528603941367406818459135546737239754720074672589943176227642062440488632210991085422330542068853792174189456567063852334793604808343136023328009896699976338122126772622408991838828822241794605107752103689265002533369415647311300561835785903298947347974125564616937440768221407703568916417144468963360892220872233636988024869172546122724312210470841585811524761602461954634824055695334358155587389694966580946588974697917732299200566501093009399731689664763921864993894988734126044967961986893407646748512878367488382803603816068201359321881669552202850307503292334146191525515687159621884652898477529239967383398247349220483332400143029023357095708012225657971853150881300487442701235530231082240549662052495366027399231695074314566735405473868397991371962816667669091391072218420865469325680719172482852110873971699484893779802398347943735979676248423851157898773114775371651015632113735595297031771186506610658921513567765137943353237971702678890912384813736267364722782489313850289789315414162564864612081994899875464374129556790078866210586738523624081164571425304558506943519838615046301061573122330051901213963557559217929627272812231248063345691638233058201100183087410457449196135473599270647170359098501294307039452642239469420349906133042147677473550041093203052765958684476197291253853139287364155978470947884372428875394889439701908538832336157702172485067547595273341479949380923719512658872482893986861949841270303608609269222219751747184840571616596007025217612810954257386812832044078467726044994913312856322458177541090761464732343227838758455556169818519393553662886304176892179141543361234340075533672131582106902664117293039065366157156203863252761867575734379329673317096880569982666085540156866695436890876160799169588323897885416038438322508747342183369727483978341336068374842350110528812263782798682950796517460728533253606221191033564009190073143936691082275511558568594802809300421472102178910833194791946915777694636681023842152107455130261084449327857772948502210968875292370629226748589236018146423118263783748764849168650387033550252706754426710030618422997651411181405588407572242825943695987790345632815580688218490426190109806953662128330897399869501955983616901864115457116091693009717410413062182676629788511245751512317146531655090091360030532494231154604162569674170614232508646995188687851176380845620017351708366315838017365122813582986198790956684886372749522178957435921757258864997450968949771819780351958349625962067308034239907261100147753758887751455619606466232949514226898609680818987525152838893234301040404804603400244154083513592664740007105547077711916661794382326282833644646259785441813970016959331630762181625447039481851828882736728053769885892809931402944745544303221438873619531850176232218410795934197670923190598387840761333185590003619487410436669013752735448384827466381798638286820881479240048017863292926916510609350677555999547470801751343114985702815452904472779674401683641337744984749984843152494811049378140926780878771150175134615318765382544891975740811157985150253564118025042563132270392213877925996503861699732308814216084302364675237047225295316543733026179463742584599368686120235482734147389138675308302287954595575877548253735319807930525329487141913356656330586461042315247708542345595109887268964001183831016088396528081466983001122346629828006307867820678576901847834711381786112986911952179699579302254805242595360863373808240868048833954306950819794640821152601451016851734417608143399545066957804597670258961377861232862200639514783185404834170939897085490858279596408335423801774995489703894772895134194078643249773485564368278071495872676891517359192713678643338532087465882412220816159778785686746911264530567091057082847712128072613114363562225273499970605333442548224385233557659348673950309005235326727080668514475943714071928074761312230877132412202193484690565701865096828389361804652768394069875684816070049121208849813948986922153955062482672607409887612796321187862831043764657366641324877075486622514810820783094648942992873183547043664710575344556020367134178909571260866690523725982135513350546892718170560130666202899888325975971741896394126036515648767491078822713208241960657853660341475974420081661103523401977210803737461613172423765847999089536353064306069624610972017550501015311623338381994426756610716006901350042066087023068705085233995095819005642511649479435606238298477813243689898014146863531270446981487868782934953700223501176595084385272693550019455362342154433704008157203744370416128388451097348304936700018127055341942952805328125457345959504160383534809137150138681457587683022409878194134718641818171300226441289189475447016295995499542929251130325382831901410547816564205755546996681163277878414325249659928459926635114752004947551342660738131163597914601273471623851795471339264660759941048296746930246082499804025299523174328876017817562017267718995151866889086616634268829587212389853623138169738300294803791723641968902950496225466775983313310091583894882414146135437414160398604837904607690429784414752439299755807997930107257200006499683767177206690114108027548982613624045246529256240104152384328359730594710727262511895572768401221003506742852499430858876732544034487383929703368585499502457386314521979762685227417291000642431681998955604752154158007322303160698791150133472185578495307174425836285464403424599425208047036333623217482870135159221574242555972182730640469977649237676885587118781264881193888375116610722845070453941895184788511028658810424036889557569018228923711905713441551554779224708691875538405495141252618523854232777878433030886108994225145905172839568681251736853644982029951388940337222817874549969267609065156748642642762811278292059619095645053344534290523706110033167632018357766924280685619464472957136292084421203603350972393256970566096484036218459240396054644793031011830165892517418288171619147948769331581914786079244556050077853354917638427114398894516663822469633223896805169723940980295272434984544186099626848758903745035459422254390084830456044202079462132489947540610979184488109967502722022724878867300844841068449206074534106500305906654969038787508748367714782277069790574561502410096746656465193997561487743264261388874129172031437277606226025006754229052601758603681947684349454652508753835209045043848622874730638055947630761175693337665233672491348895475986436985558895987163520437337465184036778460252266152305109152792049603848041034714282302021238346384413413113797621961383710744095607045802266092028599291329248887441470982819661016881313264214955649366613868022718551322665736022763779383625488854962278969806784663341803314628458658059606448373934123960512391028667486322202985408606419929141945214227093255184951338110365442357764438709992402121411651017119269538254088520272192722126145815568184606234451158712672216457232701879496603603704631456190681573853294556147037131740905094961906546100958743386777647229439151701391274788756198339493755374657143774904163056639873318256857369601935182446204835478499622699257041039531907471434679752183633954310892459338280759160996701377458914623321461626963674936486853015743713813392547026231195344993459291526771070022590958195482678172483830513723188208166972556129119951871888220017433688180621602908743266348448983239357506486002706118273509108179803313831389661267760635681097862873435258562528298926202945645622037852577578101883678986355460339108240541276300058886155116080414463010944515540923531817775888119996506477941878632438411308607713084042245557101339763577551088933928053131379829372078062071684122702136196499612289767757839046078812368558421118900488889041646041745391895213763688113094476786308556086211953747105042077647584681870080798178523536372873021990486035779624011282483586039736644958934009079579627644495120895999521379667094270063937919972226927548353094539044856325110484448868748021626128510206200249147230574499984008210468952886636043917934004963942644011442650181149199150105289340556710725651930761676076494421205615485255444707736862622228742809019375229581363464232749704734018313498521803982941264907205576868551344151173339338658152037407850135693123254010717776081408112290568131487500219015240097667447831494351648606452473614367193076720883681207823628316500188996286374568325915372544614341333924568534198535070013170482852631677694030925053909899706372803327863260474799022376411285657867743934514628567098731956593846891799574121690655636643968932270610404303817514426562205310762375223722567615312868799557789030058160247697135212723767932153229110492525340924412655938290159584701315267931675812618612716731989509967560937475499267173790828469149977235788684557381695492914806653456421572404439477352564954218156402653505684537302088096364363208564087407715082291452526664236124374572865715098203188977105587882729400722216375765824587739806178987024849507316378571242214522199353225496218300090371072792777014649475438186180397502659235407165856052964989219600491857946444114252775285884534178472430536263803070451378258509808813908352964238754094187320375124715022291701971492651358199241557883856738928100392029272679322937780075454772185992811242730665318005558223285336389875299245217332411890592510215671101655241421529389374393352106533730029874761249919829045633048406513050617786220121027549264514208717412690711198500420365114526945417570552319427437959766603382691921743616466659841504115719383760634423287341945782925810944254691269964302775813493165850912555897965429318746630102966218881687502879713386154828465329611452789348532245690791436804412535338443999856318984522439982705535776361408266769398517693360131236028078890716744138262969103392432806200420572508725428430326382223694272838932939772410834138061346298788546875684694722799649911835934879876218970331672057446143804280060810038894637676475713385478774617232410809370399338697762000995322921788275178510295797607097520808409737596378306261248245261275465876896114700625094855757688979456529607493328283573749667356000458004608049024767850726856578009815006367803181806929741613815057592388738263672202940427829616681429340397438991096914144840629493354437616874588295317584188806267998111628444299887452749205634740131295280158677041058018239645863309691702356004163587324864347366650638329799003892694522242361985459840376274748019356090830683233101411874365596502244631673379448011683678933071395123650171147054516390913434211503640251676563870397644999677696602226974988710078613705858279737742681755329857357831734448281095331547637506768190047190745202139671848943053033352308993785550102246514539683658107068559397253034354915813481071351702283269670658675142902612471821537182303865909247339692935322322523367470983105452652759136712466542042570036307124885344394538942486887473883164960153623306704928926796948922739208757453982065909487167627586449036460090315337103162686924295989077594542538957087731982030345257014359944168367930958615307932849709183304785149743805789550379402939546748260417702635659883367487128880610324850887903464732472838172485219572194923672571520440712315902184894596033114270453403497119917073406619987626046585456371390229057767543872161374324387492751707146985252872344700240509764903284694324017043952950341038903528474453897108379834970834176032435343088182380600645718082428770780414087359725474479746835322606828020740270085120106244834241613958757956026658637026488277799348346234626696127962424255700555133695903705018904991134790588083207200000993554661135254158284643030244324934230093130167723238660176480343498769854493736220688994036046085869646992800450720987188082622503774646760292643565969849512960157931611476314271967294578994350946519688271744684065416486206435165007134859872788687919578429269376562633287981228055093671819237956721855484069458182876630445732807855471359446340831775382002523536195127853587558440354703211296462956132858459923973690180328055567947264279153594599421843498434460495967300989601792415732554210707591080733542934313299650907227540978857693718860051252678996969943429197542222731222594021026355523942143800457932327012559114356240376050645128294627642393925177691145668809742806115856523054389564968111357093334444385616315188078011365629358015527619149901795217754563790754757301435313000959098492817695513182575938620505458695072138834792377752158886071405336248188281108810908769302107467934322045320672007167301946258103187632439932633234528333915142925669855923880376660729568297869627981014588820284450473236321940576039103514501758199741416360953959057766237612944105815574636630285513567470371656581202083854163405145571396904549260522172132310185183890779393607977296203130463904770084821510804951830145984967264644756449229764451498156652782040722962245895893725630333099960565978957720341661981517086003295502388910482920902648606668772887475431342468272440131585888534774087994500698417694682870458490401864491884848203884833815876142623373062667729377587516799009141313312277695462098284301437719601675567776823739122950856450783926503726826816395803417430791529936062282506628582824550314102551482025353109234723577309186743219298046486182879463044728714389928061592323115805705234492731433976999970621254002360822706763913265811042191989787694032813902499717662782269219512098159074154126745843833314949858793284107658969125238608238114953682810664067056996125091006664284385910179019276040074170158845618868649638196518178134412070846536296658015007795128714318796941059013395957522735053256733357155218521622587975268774207111341957221519859139836762760471947300171593434457462406621967794851803238881384240340956483303562470659725372136726178896996604158072894953526176924004797271657952551037100295711541210359636886530569510429552244938918523810522926856588185182655555725760568788790881483527738332561720187257823325876106148608850041956366476330909892254853588220465783850249220362347446893436090565384365300186423921125619643179643558720046324771063300218923056696279813411019533979971680280954586819244926327089867934513370354398747172137820821775394096107700678148789675043089963988309502097676610251993239304274137176916477187064883643095688396692133494967329632435255318125224194054116708238846788266799617905911645638301160857929571801386553491865476035414319841413449071709664179518046810794854290485840542396364428369946014441479085766329237094872810299708093363932722903411934416339864083505316529201635408580042360628054393042802185709113439167965242048612597261535625625562044158043501432784031496973145070042187195007487854730827436474821861790848381629065140578130832725820174961649506046367052116545390600628191898818500990211622536021842246537722594172083286186092576951400707532158506982777841683853099923196335143291723600115507660244362123150710388930144046013972498488464133585270114758554066182661978672139100049173466448299016852208096598465464579861347030815427271113747119677769024763358701428537503997975845710718479885116667381176531165805377890636276948693364899311785131443753497027730275483800443205052252771559696903574401735093125874632064666085875316146947927667636007234349626543694849679111835789119647467406208039968443624866243653028090365691740744571203410752667280135261378922121966962945655141032676704050525954837582312083831541487231673257652186669611035066102949974747938891648626750283285171231524390578912854764275320960323881978775889285232387970328169639932872110669308577741669161456634509447701424194267465746263390690117943341693635377106496933367313071661759996191307338577162227212393537320281846517563898113294071200278161578546055896570375223679946992834023822930760622999734208763216434875902346417928874145801647403222400657206701864859986299812355724527474569265559455126682711794399576781114404147013134148913506959143992632174911162235703194694089019522645843603983621596116882649272860595235362637821015947003484946594753402028156565494332995688469222287248260610606700182484120919730574990855033046350218411823641096707465515618177993270211565617964578077766410844062009595442958217488090319879481484527448522884381742360424368086052798666441770363893690518591551816663609709824959134840641017832508066243947423217778909423459564000494672346440333937043015183659819967379507796683558682024143474585198586560087709852792911501443506051801948322537401335582820599536848425096454889207672507003992932930636134581875199226585082911375565209496453177672493359790720288172678543706545709445033252537407548754802583668693715501165592190945045121853878096477664886819313934047215736127686841842181804322192008680525700920806745510671381486873141637255370238025963563462232742115585485152488411605701341290100655726255648383645589477785369637377719093461334376358478230637778407141526716054764501256292313163950961347602937796527044379963941255828275624423987990204571059623202387676515186506511391276466036811630225055323604068272125996912244129146192823020804380312458919469659745604517433869357373547886622582486734807079124541003696791420649799129027844745950310128609848511095532244445457072446072203195006089014224345162629033584239486498524235328480119368972920253393360020023718374457783453976596435353899249688424888851095692243315814584297817950304041348003937065560554958633803405297170266131440408588231421780313398772965759894071554617989444221067869496919518920923135633721355337662904305478372241336676064799564955012633431912587393636239942696814052524788566892871149188600574190479018046510022515226533237477271040383592575940929868232078132821449314717873429495788546972662135670387661226714848087741895576732096486689532762002978979535850716029660588415281772615612602123453247556779102993827302481871208863933747900513986979604439180353685729773337268685726789541359660354876792643400606105590652148943798154399262135575884955514789107619572357844338319069412399979199796617905924013322819193442553131987559849881662615565520444105856830715202770841038364696379316920167278343368105405333177170774022496575383680253838657986620289781530476478719346904373170319191782688220217306742273787894472267997128805481635792282772315349063080237083295870057392018911449011337433169654994583627206993875729463291973356769344987347060378162718783533335392742319858427327515261368626192969168307269127570219334211166261824315320507582899518651012528665478207442062009410399797535749363425319309576604498971160960078589577098181279815332632404541130265575514925335228213608882301958385603039472670714526971478631269510143501840328673032241671398921894186677128018402627042654039901174535625744639190527878494094611585671422817941637274964192375515732411739283362536716760126360102541019354637418985495772385662498926406187769617703167454799678731409329540877755775386741314657822595439798622468827197960782049079974655668222726215655298446415834276781766812801723345715475690076794311383373910021352514746126421974941233640526339710297120619978360628543743336561708157456257434263214047705352754067648477379690515895634685727678501822874923804413764249641338086810793190484135373759628907135340440048320165679308456145737404515746981788938594502001408718710130263453512717612296410790052064033051691293513544754971648666967394767551652377724877192714701825308415437417116600228961854453201210586259793343999744021212764966136491272922756354413827224980995759026399440142569090620135286701723656373968906458745971436981740999882048564487709003222224301415756879603841285057253872412469951526905959161290519909805079135428939740648740084482429365061253535584358459428108592323954762471467616243392318112108782084912079767322965934798165086703436968156516401665780501413779904512486558439530897810450015880583435377194622821127362148497405541338158334895037386555702493844561435655742775304275194502084559612565095835155734126262976372334588733647100543252758289905681149056079589913932368377104150358301476115544431590987365549881802781264335668700442789332296486861923561726878257219860298262325160652284019335435323644690612843551304731392960319514749591825721765841965887368314783158713260285341148693898627031752700236165419871737003887069939372031882466461790834605701589176219354601408774364044187591527808148561674827646251065445084274995506541548425317802281014143190039612347739497891470763819148038316382320389021182470208656362958094004285373140859544496059271747132503055012373844986275265677038555685403238191256682411682581146508682587153109219719805871393400953111001433435723929198259619467586457471302562633362219147381161264508230381728733216271024511481662171172450649118529591827364588545416202875797462161676414645645894396229671839799752822128304609435166551098204216937912756637798200999708986067247902280762574110782561011561840702462866295945895114723677147741585331660365866796497330069474514968341641395497108453457856704659668326546493832216265245393323085820160351346704484721117412140149283434588507843096701671583690701353274829971744593056746751871469658716299859005477352645292804878136453006210706949203071749634143753136583310095861856735875092300713828643194756703364780714072564433733364135044808050733597198680718128279539231041602565711946507282932338488450520029009916779555311473263468445199599689033005653612261349243067471921664568402919191886005492577940058138519358486398811633661737811194680282044283560546917110425406702133087205554177010198040965500323224045471664016812834620097433801284448871864612614749218416365893518517794164746366965229296137771117543579461758066223335390273527802834347521189341770388033541610171738277995139750834508134253716219934913693243243669857172386605533206645860797916872886166187474179262661299254766926454137649103049201900850771117552778439315968953028985668995954423158174407577236827496787703981584542427104115243172797351056166648050526539230325550051511802706085653720865424422496755181495645790114737511179402026588743652756396718369231874288272860338132028352203694402353782573578286224601082639083441935212987470451935714223132236878401351789980087913110279793144410638029472057189591566100844878175335124608394593067354278752033091995500833951819083815248723130262754399267639413680419469215175540934436346487355478897153668304638090472966457906371158408806406212685864032962395590751965428910660667979083853981545274563145955759449626727467317993288555069878946334379581353620670224414965582025385661275966830550995679870595158954539408263311137740522900939627682344408557434509765432454079838282579787568392237399545420300714876593666292574050005252043939139932646461924820191634137087284776511657289447387880562314204624637867893837997256709320338752333964169878122419690523922999711235251418394247266763288307448553898701216913033931918156151599440352602550194340260638595406124274063488759939588837945447418801658192132527716393815888777702472694228775655908535785697564414389503050850254219110759642851918661702671591581150042532959931114136213029764752886900786202949072426352604163212671948485421852798116178550942701388983876554448112120964179089531873645015899618184177912190181101457444145147025059185087265529835357707487510074804631849959514817344527525573015797240400805879786436216939224955511549176475423324832316406122722943053473945475344708704110039288965361355232395572203850672716078519712509218838550768733125315319333231148635931240574042047443585049914572799818944905145780589592383900036262621445874445051996435033692511631900466553970964761853532711212373993718878882716409221087317580009814718374270983556779448386997577520881713827764624774862052507412255994135301063943457572868323533863523495666091606374973317102624718660932470740425758339683346745352855892085640834730315396923415898908246125580554333235659733728583631762426911674834903252009054465704111019015186137657145526123249959882663598467355153945404906379248165725682751734707990181741341399575757570422524927600493933342925443179382593890890096186170532088899090184185232801975135679939998412783952762340481616911816515547086422837766885607830243638449869298890911887302961953771710945863298798036141300239028545337833634510581908414568775630434416184679142385489196070700589238918623826348581711057286243269737352807607417270743410527210451194048733928890393066551577482302709986291887341267507908517357215659284075137528725658850472148931425316792591037329363547047884260994939912202301927032986351383331757763380959536603492343664265863773573350001971228267881601568407813144324669470757767452828124488888430160704329396664186160255068421422764395274741276263086102560239931516640012421578937348252877441866027785358249409097689918497386765840744972510637884079947185619464390073172844643522354067637784873491468056173900590772380380700263266414988728183822261752481379214147107250849449133042762996239962583817654283873177381529185461926294501095492625078619722169946811262108774496537455653664580831225004450966098052506495173408924517909477878277381020236178025204774510884069310288282906582159456267310745451885803663719213726446839860185191961309749893659641770763648095242139395536729032348487105136634267232935112736629597895295295939360487610674430173319847852885617828358757269074866300104795324600364009525767953603497950433039151465122592885082378126090468125776625747492346470773020165602170114811328656163334914123267521009279024623331278710739070177439218931210065787722298822168640313653109733470165303177493287445273010026493709233635822889318303641577638169140927321809723164166396740402961174053832434352748033079019796680535276604324236325396199650024455884662469912217089888465602310229909674271246092858933882437725380447289803725162338151098904166896296230763048271573359498560034795530714975537918396187728564577587834542942273266051927247036076001379030404604358368078554311594947580464428490059994888820737144545807293532219974420618391298135767840967480112791425654564371370822176728014943245527656889346427924275096773102175202982252577743454792831122884065701332784165138190989133838185205756599795369250828105253187423729424175527159246557685099006657041180663096302721706521063517758436376048896699270044319228593682449381347104414653494058828385502672134653228681236135555895988816413976884187977760491459889967133999798532327315848710928235698446737049236064438620717491989152996447132828708044989872463839770191063881258895772082849217909314275184370112827579353822419011789971986323541701490329852690102828303709171602497778489927270969866595213143940368766684919067547108098013105077422134970883145312337696129341240652040182766929224888918348334324141748343467988430036021703436964152399259530032412379015516086613984028480865166172587368760046659286874450571997676042227381634162724327392881120276829057623632294703642899530327647455029631132191812313541682563455598887225099655314247330575323876764980076088788225230603178549077497187086592493621137619296572998823734526793027451705390039086057558312908768954990084643909208931245743499362764047004937352449452689799629430518251684846864058013818166165388707903396568626579431104238048704961306996612323762012951070582930739838322783292908597041981634651680205291512135592297579150059550192642738040380957556500090536562289000577885285816011834628188176573093499363788746451274930547046877951748819654971234563630842762107982159461049467291898218133936720755459629360940013672579691069904356228238266799197259295655592019706798475042814858200156416263824043104518864448732805341496191352954824494022644343460587450193288641295527020072780528685259178362883346933212773542742854799540977944349504778824382538068918051002597802916404604313059545920193269760975157800604553275786156106521186182031498063376340401201583992989718906796764284014043688139264637153062985937476866957014289582971228828524513106152693454479094460132692289928452881790174579398415707326844974270611065807611770314244033709365603417087242227396622744933303463549129309955956364637210386671394683123206664052646166074382963169012803885320131076653937397368946710937300956036774261281855630044845984861809389005737237245019182901768851654366461329152706038940874335257725337267080146962269530590454254744588109787854604575755326400820316204873938996210861771768477997486484793306974789608704239016780176735175300330296080373698654212367162707767800846288396037005052356276201523217224747033433050632612768733110367535376417783113251249685091494908247107419634540622504285032160363865559247442472620064353259558016575954112085623330888924392439702878010844372569223515546801151116135828592355772392007686280159125727260749468437587433433951603504077354390704160148288134438715774788391561695118589522188164809196142960862947480344688765034659043717035527138545236814811638978239384725382351914885432480882522681185209694815474020266704949098038866397149309103660765071945411115444481673002443450722287320243276786441098503775010603221612216685276312532812685609330963279841233057403815354546745625284486461400254065119811461895765284015877831386941591247854567748963765343961706288032693534080102265089615731916059596357298807105111528280059908213664102449819631888034604006349162108671743802706116922839902064297084338480905731152185118985785207512541092801391034863776438266606286866198698262269824622736903080251014346397289553101195821369161746704355838179789892617530497750897907192142754030648122384050408615598443403733366605426253888895621667655304225556917584204108748085169685665606995558078525454662431394786501246358479571067147171584739840942077440990509224881243267504410207562389572712408122992224091889617539855306527580739333043620165234767931697080793152329857208306316666853167182641469218839211117503010849467396209411467303897185994750047683600796615187326428809840683110058650399230758262071848368761013555479438933707679454622763407735926386075607860524234659815452646397663173867424066777572657323424959733947545102580820879372522614588393337428207683788467671049814051966074169187913459580934238200027070850656997829932859698921375955425823541509874847737417443552643017313655609357145909953199979687463228104566424392670433832188400011010438370203688328332752615479041012694955877834426680472306767118112256633475213004550331118590956542487780601960568675324268673689533955547540033248861631899826294174260152055651031661764870074784550364030509320961799631170454441945332747411889574868267156531772675063987160144280127792569718649192836313324684229458920513564583064268907244322153056716002196124320337860196017891525376205036201303753859293409904494901696616015770344634613382500450288870872094586146116532105022340591687285194942638530798568250208186119024835467922664148461321769086374972069829045458579953006925602674418426540622327609764405724034447123289976652589024454388415108153097368766687268202871998511248538202488384095133416932682255123112387713589123427150573401712191553352563684877969204851184741254715306460540254838539644578875722100669839337457394889564527805134147582869802532320885561821056784538706814647410162007091929173695555215454071987246976175967414228350779742359369441499101367834089041533011266752992056665000292768963963714976599478848113597880526589610769462375155245247955899613933721297806042309412084897810761057112637993805539644458751937472151761457619274954150754287443712455344512717309175168011773759445935238305832965206006089066983808026648889733207832891971162306895727048224745481833119679705608044073780381637644422052718284514335518620348686686410473830388057716162968133637945045276242188441334168065993811833451239659024606993912434445715889986340486223125749562025793632038838727807317975011978650858447128974791287072533828644673024303191698435832684961695516157090370424228926107183842557216718562396336781912515399643178965595279378236847814863562882313912957062893627226963408710332136475882551227753534714761256355398832314610518185099159597988882442663136886249980740286930128141996645042380493061878835063067015934135392057650598861162234845154633790097892511126655109309456881187120825477574474600231162500794898425080998523232111778920917883612427852706583826487913014823932068196910761427731414930885207734103712075408821813692956704672156928646153619083974107245475415760243461248516655684533597940488733341283943323212837138481441835041276755906687011110618601761201218055744317263039952320428723977954065262964080570248935177894509293886945985852866772916447352447206857845383637219291448282593791571808191516372239682405913199251940399248207710698994742460477667701163184252370730961474542434323872661250751530211765486957350032852623653871905112860628312268429398320525127068805730283015141726083350272481943136867415811062104849156791254138154838698426840368391852094170829733279793127299550148128964847807822677279622093514795214231301807160276542556256809083000866745575627584720574573318817605416497676968141166058002570369811312434279268918418909735036102917577466892944774977614778206389489777413282645194275255117302019243163435617681604937852610508356022669994040328894590575007968394142391099356128332162294040136965133555245072766697340614891169324091592108406867405394468611191518678157023078903532393408584423074787007367495898853915107212684976169743949406487407765236190223185182143348309197518077237286576789856242245113686828664745392088500022089795670761845195049812977248593283801491093336343613575737549350010520462408301635180285844452824824203020878157306458001168322907485928895575145148772291388838983545790741289445630738564562952659585078738541953420141524950650089322687012738775699439102221747938048884469172769297428166490588668184866499020038492951648742732537882537272976927075714163784603127468522111022653651755986732069682959322996174612091584369800866329403739943223873939850232080783362009318217531744419221697962216539361458194835526820900775255668471637443601302760295571033860761075399294066021346781365486668850517425231259858623950229575300345230110111182679695307891532685967561033767062897260710659668440153532108062319268833893707932066954180173147950043305462550339346081835199075568797059122621711482958481665157663596284985000862787134448554041112485930437409327862620730215333004723744273142694391743285774489021982794521843794530065624159545095982848553575126529409225726641594589939746846896112300865447273388115502116768902326961044525928455218832304839588882292567560356589238577507336671379567516461833963781109994797813698422793541732541221923561018270975584064490814532985049585100579236183887422668031032364780314266850233698370544667019930491358592712758772863843817238686918001876606071846824080239515829026765409378245528660218942633186413585505608890482026809874181809251951051600074143651547516887792219010418742498856491943893684339962295838549783846736477858397914962616740042506089540024283984797794448924239026043096845944628998454772342463269205300157191985426132147995948370663567829334792659792781290645458551234753142009292205954321789858315287505943731515166990356464678749624292878562415632685209627403284103573336744402269899510046372650323279412202845221210664281063736592677531414024339969241439047808503727747545489520852137247488990755383994713225689319727324668422801768023964741660073469087753786759482697546545173622929387834022019042545469989419512577984709915561359713039628594044107533303712597119190146027258916757267067243334177616871236493461323047080107480039122189916095937933257109530256355870987942398714667878330980654345162480433735915924866687103191862054984754540104642144935071211027625957036497360162597289882729236299589330046222632794995661921022714273753837138134477389673164078621723644605878965780249695262288277835677868414123008367940527325573543396514020670709855594050519717458367011064307286559012175158247964421861103670467246362437820919593499492695994108286488202543278510082897925908507773652927994131344534590042459229330421454672296885672261820632332567456849331733427276051224089629854968931344548239861506684383263342012105771076244324336252635612303127862985241480718552079971489276932444668136655458575637357647530787744120189960568073822205832378997627311183601278096610125833275652786255377551364076778996896537854284319626000541011186043967830948268564599772420344872612316237634096995333906829118785767857894555588414382281925514701539238001696378491742951882722816111984721107303639056706518606348414802821598869593093408740265893742772036278275709865660989566436907696054412081100829433658968725323519359614822603317975536242632880054226947324528103850063930483039427032058166603434415119348183266198296372143766577756945753169241413828040602389272875682188120032778926423484308405470042126986568652647544102863098913798068175893274830709969012084667105270868442152244422964007753327546244664266170650994906740260950149236303851313514270000320929573379970997860579765804122272352749040119624703401860980425108351951115906868301151214560978564280578488388833370426803011223915123650309991859092489207901941600041777811788428264685422708751980241396435510604335235339736837557504078533608261195573910671297338622122683581512906533121975866430978575905297578077284523464448269347946487717163773924949333356065755837626079157092770772312088803918531650174958137666272223353651437436180916372759409799521013594617128967832816191018294308180974378582713065456431902867504334524186805134016931688383260377627157610621596623875995842695278847283823308039190465659019860033245244242036492858870014665704814233806468333388801618172640456321326434224458932349758160318565989551072077194493723819705547058022810613020978558743944495990099343345405580148495206715488782865052948040923433894503316442798618133633598434954831022570402969011559488431894715867614833307495141452852068339876229263223160454038152723973428815129153875523418581118091856932200448092224073434338343732099657892261519955422364418625122176095843707352426392418109754457215242913963531838393897051545936979262282110879292711890961886757291949938759393728666911171928255555630700629991633757804523037737657300142367675428972521643472577990383958123789623430693886658009000878450692894196862420841227605668307083893410225048567648072134834627510552578032469212812518414825554323810662112831865250352493891714861002103701104574679693510991054417721633316799404077357835365977211667990331846259480597643148792423513528786781059741611437892705377201721193845898115813359717968767167409262611453284790618884087777993814995339503183011109100765160257167361951999002966067941441436631139363241036630424700876117257600895058924571390213588751369197978548343340689785123375484547622003504055765363016965881838533860895428927887211314915014885189943056951864000739061685466631593864452575858516141935252405201657291184542009813325690470531801509339090574713943818441385744619200162700942846455618810398477427209680818711413281163230383970371479779918732912573458778945805840773871984686460888947598440750652465133170862997867771317086558485867752886115777589718679568145533167029215185226171824473533182780751824530511283388953747195439613427894800050912156982438869509677445077899959075035670811735437883783739522342341234148419101048258329329269030643616779593611556231949328659739554867312901609399271952800629476048278958451914781424994674411972696131793884696284939514906401872558402148005738109792049836499758935183332636007967027513458122988718179620901014960502263395020274917502309821887888678693839031087529064351789092374939309098400715920458917769138717406198116705370157287225954434850095849284656746103453146431536875942251641709740359839265184391772478551381476223250663485188212621330212481424531468026465713955183697975067239340751484835405532632509045454265911357413746174305471789862901470825443205558992988317883093639106957103538272283643953076251155465193823819484080812284232756307509569585875317725515892047826333816707584063621273606840491779552703261136590333531941264490333122474332826912385571069651005051766300094150105447558686871086321611370888314137110698241472106075772071085713141994414575045752595545366147220270790674943045381971520706745267433287450343471557780985323019903620663536065843526787707691365279894979797639709813452722806066689420756000805018329503750535296573533798072896047303105979859364121875239592915003120039084837424353373536100770564732199957875755541832416893025983398087939122417964443705826601279146261124993638115263598986206699522899212262702000878972021532581879533615198988208774883995040448384154926476941430061932504645977677651852132481029493289067048423988234393226721861462309376565542553837069286300570389652532873542950593577004952040995796264020842138727858550862528702773020058539829673046860907502034637722091079841855993006094959078283136898125834496766864871712603394622597003515107486595850067603974753538865544159226834432339898986146883272439572036280824270601642783099565370792599087227762218165902151810651452784644496921873609508825326828308910101421373158326806062757322178039431774764990667801705814737921127929776920096725349889395080049471282947384548432404360404169894473885293675780950882350957241989708967317459951078773643325218113994101960170216048771348932584708293565211033942748480210977120145741662463927700792430187352348750246533997561358854013919066061565617200142208983575388478816067439264301369123182378582806680841781806320841544547156218836910389872567833228914131016941492751278145774944680024764863465891806972348242514220833105522550959508956645250344789611946631559587164785579038933316841063561575993826165770176051292560665389579980603734187483810150416909366370875612491483080497652586041040211744704452530546471257101267557050988535523672563908419871050666220888251808086416442613058411367427014323204457304632924091429765895139885776243839770664781933244805993149362004959429421661519353786690199343322777861302394745608105899449801166753432781352595367133047170894866031815982843794732200140894468573802886689757295380000212022359182220562699561851200477166995126376950310584469528683559845883739295583719992124459785076038294719236336935637008199579831435909573687703979274576982029158426969275999398416710160979280051614214473247862009564346164615992015345527382125619879264147241515424017504293601281780675336693887290632320083269517390707088245088063743012323450635346005938991887879985575290729110020580999251666842197331244399382955583119989652945855114164152480850345242726968690324022306967429158390450664273780575888869110869750894252386403643243651602853188301497766391247648107595708281471142670843018067409736060858339839823632633664947499979189445272118799676452979064736465772838996480444103291992053736989007052007435100536103728420679889863788955263446354119326560589118533249720239856343604353042166473193842319168416250814686136648730424413698554899712546967202684162176821238289773619284131145261454606017102090603063372299006818140234961864854750297554221431787246475296904216199195154567015171429157382031231146202654185502563821793740986912233079613427547927553077748658766102117145671912059848428251639476120790979212350636768938441107616073951978849593445441566021442171195063954916031901392007204715753381579860782824917016169017064580053221162605098825297945099956355887630941112020801250133440286434750742355899969647793495728573743283718798640025489198948135807217890728402237526277814224578191071624667562029045650012137202463610818887783437021300444988525981079248724857277987955956535587775794953380879867864626355119930462011122387290840147348694519634509387734566206537002760343581943776215831167502869661832469240589459002113541293948333186050842143196361560889732844467322687119634813627782657225335691272668686892821484863115179341111078327415688498316474951434307603939150557189366469587112304991398529181009756943583460419506586275493561751197189261088722514344336028343892956631970139521225430296251596429000061472537385650268330039607260789645950213302028202624459163061698448289243686331855245397215776264493977656785761065474319132436887208343114352062177304143938905255584841476576008950417337820204739567583604218530385519147516451971341885272125011379261656200532246899176779348772239701596266363968890012597372484707341043539473963445771955054148005919551487419857039851373571793881224566120855017420212731676699345618576737168392088040298450713174565815151591265932794190414397571656757266834820971295348566525396155957569155701268387959483643052766915702956030928679518507114735783170109153859080567977092985243485538851869193828033481211589344854580876496620147559102826060898951430141618159495337819821287682734134908021405277274144657519958594972836955098191125042980171885717831928072683982891902650204794276375742503317696004167777914798847409111563753301682391191377669867787624441683235249157218307171725294142822798706096321215750400167470489897506068037790810398695820695597626479903467054427908460821913028988398994680664319814663948737435762697198291880636521011715451332912652336509966055632865724766513714309247757214658725072259959083869815221227709122437900014355714468460635448611977329105608891208304978657576736752308988127869503153097354742444113757213800196970595264942747808573461772530672220005982502688730572577430090008555014215575573618345799525778657157345435752889497636440161326627800731438081371183856771181955855111540683769751321827667174919345761952419821140359671091486062894316785784358737335709445734359998923754049333485094320910999019167051573538121955525117258597552341069555154503254353897601449951364902362995044962665378553328678130765864888066411194663967995979700100879856185417681595367668495898432743449099951325369356341257302683519441612553226715311893858845826763610791781932548109623712479047692503617150197564671001977563839100879885486951472415718021505100138650100347955222983688488868233896371452840469132001067437979786391015013490248040715687511416004457320321787924472639468428389948117928483269561026754262576254617685291002318493834168277641322275049697886457940510102110678466460444599820668089517661900887913713728510358952065048953786405255473561950727639957355227664939810418615954795594070153057207457973930640411943337885062544281087913541287204793983892577038275978990358780846997766739834673600357173422924085771299343561080272454405794145221159095178837318704100564033946813501266224408773598575662444045046137024938625320631284484455020508514130876528091993268698490279814129286762342881848915582655492235330875910749297889802533175554473611807439497568222775431964179708667107868521613167432876146829019697424473711526025321282179183441890103756809626766632103705523273447683676477721000546684973103155080133492433833462404895679012127896595132065726049931769478001183738820040648583224237025486788561476863799949317440715479250022559840443531719842771359589451397924523737273809623115934650880964231735284808964448819670391488038641684873032181100450471399206354463246622988429473966057641610849472648753440361383264898976492060086366214726501877122247766957512207979393888620708117754472567011412796160400496510191065753225579005379385052449918995867037595486352433136099433699207474204224842303485916223719963268689013539952871682507540957450353782347005587339471610253920102084676882714406514627578215918471511405612064853872172116158012887934406863066594386351365398167574679170301028502907501850533959196524609839041314724694360783732180796117995458320300966848069937669084655887242556026348442227245865669003765555738975805924608108418821477372465589238928582556225742098819013898059507032730004086239652398011351092842963418835447222072053415168751319287495602959518338847073224637228067373283726632233950725516147456395810485621351771200040844346344840157350360763874920877320524753061141104397019425814616341223845456391643921214419437667966220393614382862971130242298018879247074531860311699903767694848418487613931756070730499500164613198209954346533015087042427281200172199881454933003936672628463485133085036749613543709673852810325842463660615609834371313579804533286326194674099667928913056317313026581500112170179352533729086518602566011979136520683800717378090118836318218096138612416397302597612799102415623779642007788452666244927650177643582470636308460382852310291026681988022713657099926167388669971277520415381722745464950586385959824357848050146381359423672297598384894019030143946109526208485794625225014167313177876093677829041759225041414309191785764127180462334884414934394152939175354367943927290780941063626392488576298914190247978438294902187454985091851205259711228917203021657764776167057442054848641933336632513953169172465929741790502398739403581318765752169297800927588993236065809543664652941889298738418774419729529689098377638726716272088238345701007187091695867192556393290939832220860770072186529649416214799591267088220900183486720601312437720203754209115632316564341740733556405307737535338923256586311338660846562716961961835666680925732207724954956775775879926864301518727221382410945705978016433989560465404360527727928862860153173776542488653878928473780215583131158755562926986225433012378466115294690577722985973279649738802036731590762028287202231808327530544126847096901507091620993765957980347184352766487446860372014022581587322877695943732456358962913384328467491778353462524118515663200868932073461277179707353300520735237234747486218429929103115855418834583186379219361481368905631976782796405809604513972650501520886791693117737968928885837097484078486256865454701123485750214870563978155357084144188831443480018137418222669042673240379447861442327360898741331441391757072532018236303473659615931718645322955798805732522116467792600696872715291817131766871742014622789352957888979729295439529139997802843356438040716100429154095158820934319998867706006527688069607066582382395339579642807580951916438334830275826053777931024774297597447840228227356999680027112013595954004262742494795870280638533967866095484538443091073970163339444838943248456745636004522861153573201653071350179952397844904251711244179992367704432988668297155613763593745131838832121424947312190113358928192160029843085879535908881336094698274009716864671913572894235623703776567476423987722196572919588510466458879010583303828814774540544379024563466358653966399469138797952946880415103819346454562828958696272944513637167066569606810082386136252947634120937006096394166937226470428358940229990156156958560369834252126582987976926417014089181940982864251169465523141868910185089913527612625165746089608641540276148902216547014275070789664736687643935582644487297916482182428496547833168582296042022129905208527761971653425984671114698435067191065457072993628720317073542944048174907692675931673944580573886109802774449736190874834659651152890885096093581812993492837784042176632907405924590848726500079791719623496720542290643917080198146136700333242664905450661235578408194599706228496754800645581706119533681190693237211948662004353272427864031619059918984809568865539962341431491959411809871657098684389818995873138147342354143911834134543097686190547524641397470190401879722065612208064846422235134042755341622907593636346309767509798922888392060315851019376611043442940834057072641959823553935250443558794353038893107035439345570694885701608732196102187355699333732212087943526897610593615730923225434790928255911949376135008317238712248569781782252263876596163057442175631884231134807443847481108332720373732557067781032339332940919145324925942119475467880303837486108791435420850185391855049072294729527459315586218639249921419328048540502473519923739948122319655230988256317138398326101710381162380979582702864151611778945224455279133468318851156604721083465093841637596477354316668370175890675684265825769559797882840060568251975057200372878734734319149145522982725819743202952632569804262660848084653868055127923981501572135621633744492559838252943063587038011936054389252863938805700365782923442183004226121406712185905112178323281793948866899204328926549600615108086004632956124788346577955677399546947252776772037927880503897755706403241649521774960883268722863851156431075425475297270456900752233415927755287467038140601671420773398149273640537366189683690961840039308208255343042394646099621848299382269858538701717643861097533090605457296366839691396840371027112044806350105874328356063345970248903805984300661514843943205865322393736771405200992377700189022443948082980155781897303274208656198498742178415083960708246620550194161267097206269187663459087419894884340012831227039085829833164703600392293083562233856094663327223987603192325027357234047020616839703569732865443878440749689100457887811715302360213829532753645877119847256700485025525049570856294709981780481934827305066568469070493373238692940586392984737558718662302178963040074187449218346303371590926170416169993650507480309365883980904994520478356226096187039023106113594380960888880771233718185209540255764615285868846881614802080966779478532866907857070166437237848058574451944534263783147504386509522289201768560702708862797507587250503557120094104915879998124938379047335488831582062272322691254274588462072809826020090511760853870861416834999016492099559875523184169222737968858638205660720524466832989066875541083882918236759053214452015622940196318307579696456379334155408058935761604460868273387081450489577003121871323872289559046617971478989543796791207322050874913363769887567081488706654833175068072993724598881968020455934413000260844085425779889426329734856660863833674772632506368264313348130068185433191458944838794153797027232183243368941033769072705427183531143222951046844861926677655159923306540712014732178570919634121741156182127651747193201166713120200185473576106331788043981493038584844535167097361688052853788871800680669569118676528121035395793650219482112649030999599245981152623797009447743078260012758958549160634715225540220227206754201728617459188719616463338912194945612748775376502030655690407507637198200059022419341206776599180538630268292964663180908991278806734933930337641769547189712466843058716782972373190347078728706851282294485771388027660745475130375623912427792972966839343980189020300324073772473542136481107114127135414235928264331567463269466737492509512094580698220864630692665884907602308217865757817972345243304483045566517009279728336298326801233631946474828169447937503074553249919924020293246098727579359231171481192184054356208370290966301096165183703988034782248529640402424383190767524423239169793206756793382310099526386699682582326399681920223694610180651669437353221105980341666468378980069364416023990722274736062463468709701793951190577124465480120497987375860806628541095137695753827501278289695465795982734175477380112524125959187746412829480309988411097511136540946403892131428036526954189872485798295059665924564210549998550371224045307132260508203270881600121255750819364835862423725941044620819435662213799932935401235131326159083513560145948620096666289153368483307922518706151798792905559100555925424978682759649371320625886026332791422293999095497102216491472246509285774430361119396153696278667605329761418757924622762806348786355683165049874881463863609324352363811100006888657710927992039993666620580836171306692740502451978674924904022445659661223850469158737063845357408601423427124624828154783692947023635527001604043878483499888801557765422639077282014773780496010759380813549042619271917297203057474876096603067781077428842989610692453599157869457040093212821937356773971475161410331864362504758152148111076509926604462693664507019742740907434976939595422952135354535992278310824784158558717977743733155820154416730446953406568423882575258295202641913590829431278463038918682752227201136807589466375789386532613267983858176107494135960334338914999837249659148368969677203473280724811484955098863256701663295013966008390084955923119609310863072594737815634748000907216931978810072859883590108201502386417274077445859337886480534982746518032535002956978993556759278616167524393753807252917829229491744061269811535238797140198606083753622200038397198995759067140928147679784908954296479973809732254560472538198886925385472197035575378209663966784601272043016586428473956759881135253072744565931297829927467841781599501878905855466559312340134644899044343755640174645378897249517069965518158299725708679945525227964372828334038080778571973581920290148589700492581316261587780004012679196016885354885523725014427393457536568452089248130247912546354260113112962721228308242371663356702388551169336139207868921244614980360468240360524006499822559503081685976921433116288154932010127439308452592726281979283232448266968888239229099164424649548224848301559139934081814119587510739508294408250511980712522789994391265671559778085237484343434676719828155359997723908562590354638297286953562753552550707051105155804742133722376342624985336426128857341905950116627025929924788828891595335941625006659789176924574860446775828762820227248950617323203123145541993918926608513467479736659138171361685709447357391836081732062756409797457735212419349287777567589968132949926368973021685929293341597643440551306994800057327598972588484165604673836711626080806016119067389134939095020941222398282476828096014388654551456931774049996969061452368916526576482588313353912953564144824310336808310564204990383203976358389576118226729892969203565997591703808553346426652581298420045424474585232287622338728512582130565418584510266810357354018328437186611116288058927716330998034486751326364230808407348521241046299292493733728693170496763296882819844912942798708442497101713334529813368887472670328921161172897768193717949759391398274782522555487012867524107096766119418445514865694484913644170232495600756203435258347469814044574109441205244946653296343873103661229742402494174738250084798427154008933646331618820213757687756656442247329321032389546055382535245726635480672199778831473443193568932902054545408918356912143892149072649295760076283048679771574576682011360779983989930238056714795752827320919390179990701859409958751802883298985870179165626206236225573380354114949275436381619730459764702932497235595065985436385556059995996689697338912612297857768331424533163209586981248047153036862408792937115776605306653296170346668853255604372946707434045079715744585765036759445367023139415281981322350642064806135627268276187215878012304902988390942360076820554257834899627882784872962251653315560020648681770110189732208294387080698733197167294724829138480921178330156501275962707370101687111156039052284724847028262131301438376579210961823433211848350760485560646640931429612130390950526830279097686667735942111644213482713689696650160031537482079207009346493926189462767724021927777099416166292464541463255302786732254526686408083374641746132869486255919560323618663998735710775410454010877933278954814048342395146311596069102113803268767940588631240541390662887162604636268285700481196561851979647247113867564454884647772919181200916749347457492777781334568117288756685542208017671806602605868383062592614729975547186599928742541115266352357473824559379977539995199361307629556636790906062162664433281383396120272996456208057610801264829390288280898433552345990416958639061751253687653971727290900562818969333996377183032982829854656129043018560730325144894322138616878581042316382844974568299966646767736970814046133536101812172855314034595688097795347728639195442067670053004819050097866795613275001906359005707391138461277198215031072689591017015571301208034712585776183569401655453982752458822099909186254994468428591394136346043210319437169446190562996458167664427980447230711145128833488835003844625655453476169034311565658048162631565830090304823980404389688474866117409208580946188720289923625926806836042948686220666835416557353248302652333758704477304901222034915505943179624986351754427224132442460665954768234722267793406039105144699600136558276057219621176665098275414031084023981375041755300471831047598985360662873482301886057985644390014218388190306969771505368960596543371535603761358664403395051822130973237515488529815044123686055798690616075568590975878078837531186474606221658695358377960087271654185515879939268921523775271499549359091604117910412066958952671751215856174831396318668142693812536756287662470876439196751553165729250432230993021545514254979762504370686561908756139418908763635546760274009281219325952746795902541169869296081934142461729006321097920427471133682031353819395036755445379126640539086805497190902507449577933960208723375918774975198802134552093031487760789964099576552871303930639694842922782867815764972832008178804696041107701505998137963520691571082340611958494957784620388248975089295996500570613872042960767457746068837661096865654868930790617911003317756281107094134940143490302986985337767091896091044449650812519699296880886126441958823543783934859169121857955845918585049345199393529747715749694347877606247521532751104131098946929868846167433957476616206928536195521246157300401352108035423215788141270969654258011295653731958425486065639795567568291921573931514495101407891278285819686367557051165147407447780026275551156593414115171854855988876364389998149889879766399886275062553383909812829997886201884175559651120814068986806794856468912869023221533921239431382634081779235157590727219621211554425158942101884954672680519436452357814042203473864653885641855480386092456876426300823763037826753960879600155415377281504040147865406469971344743370240068908863618200164461396624245381681602245801550661205882781122691430977618295730880572075545800072808093052398964809860426136717031377062853376195375704462475867471630035901192711604432861295401324373756572239355318848899884513895814319741814486863857294072460488449828779171388995390871686085769122483241481362533528581260439426947011613659769093094090646846566894734210170225213486974532724933692250478339811003296480843212498173822053352253344631745471879427756380168928555586866807061110517573872083624475992632227474792032901363136420945341383711956266832571827216741368626766933493520873123664107335066310676136799764869806581614941970689663416177432112791456424186466675683155983830662589216183849037244412939320366642155043440106627472126066147239143653849739674627370127670162871094420638800943229510567095577365245300157569808924472139814154215311157920909753405220666825906198969527656042867379811972822129165586070081422580562010849987719386749480663409196529613733437594671017386565459247315800017817881818609019806100606240214530799878251242359533543525490528941073060240433726464156522895157950663187797429816819835290614772556610675045239750071402529938801084991394719220739916400818554942196838205233524234561450708721046206075625551577206107472003672207546046034286141282136961156785115525555161720390891758427923437970746819003815741389661157088977217324329338221178565105332474051269679937795847929667031790211848058149028449202633409170812955811007890200364592582682084923652551900965919642038805232231374723456528847328346454341746117550430586343657886267980543930061105426611662260685072626227949209389597356786619415459119372904260495844752732715576438034843489794656920861916599525893104211997121852646901367318918545945490264820095515684253739104871858254106957635653636436683165167312675611383097281973890944110602138706067630351931308831061754833850160836622833612021068054509911070795070749267384003370382994082400789476893471388855214544970845273091149659113560428278708646160788064257661908380582118399284331796256297678570792119176571123229146552174816080117276871624677647208821961770418337241865853748351768844773383952971446379059009416861861245597972344783322027813995298979000074861779199894983004672255773360095250855657121755747540907680505690644162411087943731960107628959909784122596958433342436750214945929561526548979772323425406973623678444504005108226937981255540522784432174135024442982706201283269491468159986433739606257817829760513721965121935703227774834388439023263764632718625741393904553724309668490321395866714147964768396073402252869552136440369222878705493538602264045838315107733109092413432370916199944176290562770881508446206198787256944113623433993241424963588717703457244860371172498887635519374987031077111400753518236042019687354083183618982193846011757576508304281026886535013419607096628361635581507592780412097098830783684347025914595508623541051882455326563097318998190689406015605416825779203478140530800880214519309850544488257845071970771594842814689631068875327302807354521087087276259875589236104843797035838941630533692443383013014491169249656822668016740608320409236038168603338403969374064237745165050777466738181108803047843914621069219100757265964258683984934632169966801850808435434220045952518931708500103167684866237972902827300791820262568670500291227097473876717298216121745348043185042747410931148571725538045215850279088577764894732069978643434094812904953311940891575464610457119918266729179339501882758822530937012229479331054603230762902711602137978997288216535005870304785343186508190395191944890923645531635868797503508263006041827047324010997941094526006903463407219850882994802951185209177659350570312374949066583872440542261703910109862975528254670146001507093171093693913314243177270138329857055762097975435018341531297737955007541591429374461036539433769046030105412621041389872988832816630785278630502158454557870155273017676308406654737818363599710869689230670971181121923020042026368980511749385423506293464223331398802132839690073553821917620410653761525778553818467519485777013367031433900147346302395522322143443976637333211665501479813629092439957102718341602050484151042759850209554909062110711504479522543388286985730829689640957574293403447743777042452982521620917565574399452228829209423149109714255228227102416080568552078230274231987067217758702566871099150175260965335924885052253609405690540120861796938765251791277853256245850866867868110753888476561502908829753038293901689037123587791422571689656090506935534964053356465251651744168682728191182127183615615628871278596604068858045574317372181848826393354758426085631329201559209959061661034792398133350975451807872407910642721157483441067965524707674091233238916809883837537616550668112834618889483050292500555440072386227224491078390693884735735334881078292089315764672551943381531907747077272883987314275373406188877208559936680558242763131567634186053013035910856394126450677168676572193242738064709321840706803206112622776514426189018392855771323760632908747541937768747971849632417902391509828561790057866951986435358879296594899086651337483072200166772406503567256295935850289422619345499508827882087655995777208113085903074256714276432795371279161435888069553848252859191658720248819896943698907160596306406501751511473251807120499269127963419549530782267687702129286385332570797959164027759588935641183552967429754168516290033769088828623283550075866620514868885504791776799278244642186999382627913472161390326847499070375695742387981246927864368821860823612212592305084223305894199959280575043747838074532479845340410222326433636842714531928185511736710643052827705872206952662074064590480686244887427104784710083222409036133708435447085264667366568959939046325861451933724324733424572001281636530321235152369451811700484452611669459691348134540372999018647676012023644029746944475903691802879632336697884097408979116160360648204628563878585272961217232487815675935823655203364218409319186583560622860604282241381151111278714368552184775179156147263868926826859953258023305719573648492436340619684819516365538989892585363363221459055557065175713278467081325571373690675697078856275439361359099862918912730613194383120135954393820283434651745730116595933714216948400736941961828811333164228200220098921999508251039712430135223294938648077106595935001754965748515043976352961665709512065177663975156726963324070176698936220730666233928203707350566766054528914053250156089655570613120518770054939613859556853830628566319242718273658357999291157559942606788105498819996624227381535861568193614842245988216369248465606564336080661322620189268173735086729572082135623414778809921971546599388751683243709031470689909502774010063803536126308605751172383829085192317898887189549745058682782204719660531683719867387426053889772136192930897929592073294211191175285344778465303793532080164715282071959696055584008462141862766278011508591941301007174160352057813327239686711861138210588220217926745059856109911642684349872926012794087550210782917461743387992023432964851356490244528339500208346254541532230995834706214914179463191851583912943735889834622678350384371249058165033625208328392125110823137043494379214618991070899474478051084879459017060188832261449197632649570741095285072441363970479390081071573298020187395284254828102059149309033219060173726512042405032082617652043861501886983038312397078019925591660927158423767203439029620488943982683808829008912721246430230763976724997580882784304380971670818897679136402403069572449635629623644161790504383809048868466014595946817839541784850269757828165726346862487924719935476270869221605930142178526829069572737227937981385691240997680506332584118054747726813795388224118183912631862620987729352647408154693535576740074079051656470624568621556208657485871453007551035659624969088187822342454931648588536162395053117310148962109034749027029062926024025092032641395615845104370685520614258254122041447087487622987440643126594374702663449909444746340358644169582564273508369659461028425637271601067822945139808887912958209560309426753824325123881439128692716061483106018888189831133428984157982703535337786464866390139140761383468902152852932532879271361634591820406816586475472111800687202172637807696045781676006562387508116226722796702024234467469741624925470565756340803566324962628776022653820047749988454240200869488183988474077175005545175606108954686804681550453215056237459358127496043605270493273648773622256418878969197896223035204572265454050690985938180939832612482519082229916415377485899573727988621800591164638675007772518262565781721676487824910870012356511831884264815461992806344532488881196517889201035270536639935076916181790945745056649367770557591983447372950497739856941861759869612869138284792783804116281160599204774387135564674946427772358659955669169677468436076017053447049485633548435522753417025034682145093642118180731624699942535088747986761125857577737529045095089067675555723909232548168260472877304157636842244227494301678037862490676496518848472785101177762634089659789359410705412664062944217026701683139516361476000841897541381877462139351627087021364840626255184207111286577098801067681749792466965194391947062365824306953771539894633938396064151230513736478975053787873612337095353959420096737707589741917543936157343461897549186202510722211028368508704660359637591194646641396526884316994423413867785000426800774737771544507467993627978981749901262525450667710904428622960491396151860478259034394880436606339288092947569164836241991575231560309464231129554943726342599096849916707363830545233756832396063823717614971667091213179550030778411628775566474909790016135929607210820639499022597303663705919555717673991729848328956306897112201228122353052924947651735874901489305026014648281812982046876266547440421999770426158565372490984872764814695746477685619157721812482908292020111244896313501132918309920825749252582358954303602422876647438074290932368755655038268483039561493141353693500588925256675766462942249066074412707927594553528242401717743810046531351731446292565247292745642743300144928744437380097031270384910579292223567540874299481110729471399665322199034030442791206696214063663850504635514883447978961184017874126062597197868738652686236786651685271434697571052383876989758115727860915710427400072119646428197575970354910496139438609456086346639661602444190825961616534020051755322153162687168353036847366860920027871342933148385287952422939284141718602233865874958417346319471916714496392011602746884361081217537619819965654537606113279863300564312352757916545750212113211701494178861288241582799315399132311289277794091831244820548370859905440110560950610429562386712407023974425151335536058757282693181058510614118937044978297786120082507190131587433255038203989813033135281542339275833057533361832221899849818527404580445300047693521025764072064962562332437214719598439255470597454158148452816678197148720246222947692455496623642918746597924812531204413797508808495123442873515762239854571542798106994415679973135057546583225166361237612785405087730846325610372201609882741934758138149973861143700772775423560849767304418745404969410805733895895116024962356920936257822691008920822346442873429959898514466529371142209452292325865263371892993890533273519452941937296169944396959357302809765842101044300094998716092857546177566563670185215218736554741914864528079278409012986995100917235787620935643189608816139457533434783356038418066641025909849025443958384221508616233011556993287459787572020758749502128445224986321751137749300028212542287746025744769583543666648749062168611656575337835251277937048242795563633114097014253416469940175789789765931217501627486244264885436279413960133183536877100588663747045487830555883902224169648677675587697026311154786416835121430930561176841439231869001334441906921229978952519032259062188951883754737001633943538396525287403094492655074294263701156053108792686101339902284883671592206090749610106498843408220687206455531326509348474163647956698138321226078765215757161022098840872308198779115986022974544073276064924580372521662363210273027265418601014167512142730764894123568702430545337357241937565102163390996203889450694144907541849351163152817484531891002193833665119487168821777959566783119188959376400936149861434541576374417142767931114572139653051245794560891979969108210316162602755063636759983637337035460284153690340665523094614573018073930238029097234413003304369051083120111905138342365513251261229609766139956765073957099424862528774925861655061629422220773798436050253273532380768930848035896445880116822002147521465997223183492828532918763774354620370962847176525122907004382447118165003006929124165121842164602732007543640171025827242529899117122266748245237544075804835601745613671669550843750107869528728810965088880803294130027234733442865265975522309466798916299552332107142345709940478136972540369875567787554443935659360356191668353333425349956939584982288717530841793454119342974168517944649048069467132711543106028776060160674707820424692792487960578070872455804369617419188995806679975519414423638157137135574929386985720546703268484726211735886252425625685404287212900038078942031854200131421159988700211436965675148707334308217699192836399513847454911112867635023447876906091393348813249304014019975510402981102361126298606360384690434392283197709155313095564098477969979138934273248025486427521767883820900629672439485946138331532809874341229764096486994805830794094068139385842738128394278604951963695421812610700608217625768812359165551231881166322302727256087976836854181404004298629338899931677638892406796646724274405064895602588155895831320235800110957914474293599088446306085226878313598887959123077232099538116336853916598628172766401993220533993792266751793756181606384149957875531345712398565449944636049406870119190636579489816704998223241331079511850615174029498749719901502291754039986151568186137882343486516646580219901633407680544031613974570787310458736851182464020492849489466556469278927030212435400777607015443226063268959125686496657324212215844880068306417277550578829306037181228338039707020654759416881184542239508419698920466219210648852724873925535414024940568681972260618883601336687431561334426894939216035562151577556290844806644308617700935098691596736831907673527917710130311374146246714608153743476292620016306992005291972209096135336964744963216196448528071305358634559765168794818087461588441970882021650128511861156937988091781082763846694011324770044367081224950653126329394602626699001139400925598795592819665357584091142558618658008986388217471242321744758782279005519680288046787395685512144896560786514427225274299238905011684371826737051016064160716032073679386799223875339046124676856538708291188990252794857166066933551164483797954759123317251445555070708802139382392723868472276474181044433142874903639120552894947417693306877801855597964382586301002614834984442496093352347644409046556813024002658808317223160292140435480288437384574862279474868234050319992713537944355437395526007348618852485591493056473721153049851801167234860885914431518924050464824671029641670511611112480972222995677522933047224232795417392377406718265510866052058552753815221160937098031761737573720012915520754146875728083165013414437443355882605360795507105133715580321537576683125008744322370849889334816999001544522369884519833998012424263625439983190172885664031242187933618964254849700390491228831088477491649309020633757345750688855456871263939223613785671080470496597351280461481992861524413755219613420116298874894743905611326415661421189198920865266753226966772651345306750410019218448633472774334852651139195878178530552707939388584988941816721900868463868876485768737966642532682655220929418216009507316033711694465845253308255133271904651794905076995933892009584270717149350473680127223094664416315585252974030273265645018223709053947740582146875678050928663786722991688437280008593273001634551896823931515321434690068470956764750574219686366891371125137611895706022119420778147288959547319208880399631595756396968763709362384291027845400828530948706965301326569208535931264099397374988787467278647082852880016762125325353159888471674259848090969153016172497356446214649200625206268425596603402613411523153816525513311682695469106516716420529271553256712216844266365241967251613289981331456719701245257581599013393711848864562725032830257647449741506333202192276813061513885547190697230542205003874475309947300248904624809365990063005026608518025274061072702669176186350753947546641111193851730486267583459225457576454821919113514767603004462192082087382218310177566921314158882991180273401557119978514779494325954553474009196695980046564735189062487576769328601754995240141033580370145279825207600933785291080006045610080192458495039562224216393046789127864962068633706299075041128412519620503567896870223990485642231452444946158675195729458739148232634281980357319298958441352946837189454426460604874271847535804492737615718552437770961992487473269024306441530693337506147465225465176213276081995623116941716359817008471465326541323327895481425752686643326345615767061342766395699433882531454732488931275730086437084291722476196443171489420302416821630474388393659888061192528617176046741994074736806576894358107573521400144058852820060866056948448332592955932307824979247885190972502014763305713891530306651955468968861814481585927056485822854636588339327287506707766654495640639601525253310403440363099127545521720810816053560538608149189990653425984541784300108314000906304630215590731001633959187423723477077183915494621333644675539914929079064651920696383856321931674641496760425053686764690878708282430738177043253343350946449165321455630680882524228304317314587712263832333220189905138623813119969878089571987205103662745619148412709548168073219548005627223057815874863603077728502506612361568850239098988824933919396934445578244226311606147358720893907893257285254989113987139338910019897222737599186204210508928011982187924378540128512205047869942817333012203573393835935619550110070590874008983804180564462138840975108834550326142146932547431079267771635002773851723515655478336738993741268168356604779546278901567715031236409587456915542240220704992499127332729020755595247421682998782181497996062715048732819146596603295917466201828727334992666081584261758781096295418441136782168984850453768973511836743030362876703952471504927714672109686631973023192782059556319969299829978140902716243714058228058591969784334310891488349480220856704906775318734438720790844460769132599837512902505419176360544268555638215750101968502146141306604939528482881411614731069680067430733239424124811363944436037027190288647419688458191862167221870813323306799625773197380376947165925367702174416094214176678994638888626872347948015348816562386409550794988036242854897553874088222089173335915335897892855106634167199447961068831927952283637411305543727287891256137242741471070155794539102417059814522563160330104604730588627352929540576430663491895775729836414018193379152668504450384162070078681108501208452106842183689655673242101882179889928491500808701642139022593640913060844441597111630265547565919317376899330622713326167570748858314545273268199548647895782602506363852769122307440389038740636101597233488845914053043248858119818213294998107326108610373086654644547874536110387503802491741916744201504618341591304784615318722257848375211103360040938551616536917659236139565892497497555197610001830278690344579180517777364258497479047334284735710671854878876218358891773954045339712805904174042321757422805265252925773324674712955643206697032951039833480460619068501362275918709182392771444859616801793446571243764581046138703593450937328193962122308878521952061814492081722614620637461826745233506489037085188844542989153696339135608622876260923486470632510443322678038636447412242954499222565363625502597402674206795533242273089364741316539455139434710056273681986626730056774086811533838626881582071532688078511485641861758358643046096708871578712651503388601762198340332101263908488980922719128416502846803081506693979834851409705333642165674082758524269721568653366126158567463232151411253965026702660502208705612124487948438513711917305590258109579074153054048640958664810467931912764996769983808878746094568216422945159742974276990643560359689826999149020026165395628759762337005726341362176978005347061390441508343026791143998535068277583825318594558032049123979914876612287120076385973527676358275717662628984732805667318433872738242570850648065433610065523158561196821699533812524436808183359784234177393307383572166654111436045366395906841808266533198254833409752734849442675925896149986216672808280861270048936418775034796904890598108977656454530279315263934042958431781035394802855618092348307211550944207428221637855293076505143383394500763234111229325925289020596186736144487412491907211647227338383328846239716821279080082756158725818795826771165421154458902995896794179830082193927056825030056792738221259697740371518060659778431673128950786148439679759189917549690825565901854276337064254971864237714240793054918654440978869053858528751375488862900406143920149697660662632233091730618775308348103097468421338736046876149699558969445344697352611804159974995108340292262390554818080681222001361629047020732473564414870243142820403180055310479037607040017948344432096702621858137805776958354318025174597520334587813106736860484096982949941564570458104041911395624805451344883743026353773723496739498673446009142066755560010449342634916736725411764871342057245079247722524897684134054418997145370062671774423815725732010571794842469486687455569558653655524215040744739490439736824434096199222572659116609325276604103437096386506850561758443519629077706328782606702930206294262554916201311230556483999975177397939397641842582402756797822415959125158836002946917617175396748352896942123879063747338422165569258234743067239853533122193542947546764071487095625987591084141047996817185456755532043828897879119437266129539924176302692399129775905786593866000789264182172346566443571807709462039814801853949447835090104003710614455085342860918224372850815732711851874444631519357670674905405857911558059562990926641714907069085250423880025523444233070200234751202668272601234444634781886433895543435135450430707496649781271180748330406969082171960339012778390563028896568920162888256802617718956199528269424198036060195523397143990275879515150668479201614044192837920879311985408966668035503197716316204766530945801485469159654014773353833656552317249513703391717529821616772876725556367487917753997244474071015303794383848214666473832197478358507948604484554714511419906722559901003762022884224786619080085450635021536114113007358515810235497669888420470168186017014276250279523308282565023433395558924178495872706274422473947348044197002631797446676040711168458010021601263765887018799017818868846935467789980593141869552671656249373517988416357225784151659843003751045440520691584103492759886754694518720668928627127640651728056308710925910553501548162732774459629770933005117822791736872794824305361769317445347628768456864868988331094207341270873187060333118090911502932958342856478981712317847305708547046376664076982191392519280569361272591120824814343933917268099572723250842194497647371090512790485957693457213194616647515506459262020024172167897163839388483557853063804298010054273472896548106380880934619115202968667343232663292730549635202910727195339345756775563511129410492242685024641746509884135188254027296430836336856841650707922134012955406293228634558705419483844095540461947152003209547085305313321487171976831136668293658630109963113813556765864434244231795092051817477889674531999211407610436659918392773765163313339201300569521887130000329372971154943273146923663352870414903578295524482798304786999252767668867006480292250067876070454404561417361963375269106511964584051138952887751113491999507219210848023460952604811033678899084583837422292846893332967478210180262018050167451792300636577679829930920365859384069160095332887227590823680854397822697817347537975997292932648879374172596240644569509020986812965982432700816795490469573052811615455311416098833818805266416193535959783803101154155582878440917185452289177089546000774154833149094936478210672939264814626864067260754933579863946992352611928091717865540151730973781678432847450024455152652966336871963666158689371854675871126983555902155557944665383600128072489690937524034949443044506735940558481128298607439551904839917681856978332735383952169280714202368894215694359365774721576090606820586731980069624479217952548611649853316295602342260235535776071575851424089846346394347252387525092949909677952874751844289539495230562542335285971276903652110265916413118067287228682605299958877089785017038795681874909210381172713381050017521367150668323287483449142895181086821495654687831136588927272619775406448304964209210580283941927624612893106452738196587623290296677624064594954477696238576893373411017001239624903573036680082557147057802474052325059987646136866037660688482441945546783773037288563559904407681744617829326829000364847008290938271886084185224076023149884114613588678827441589429157663925261550660776633715075611544860498055651542698078956337195000550233886779811576371786785868873917046731933136538564514179410902598540634343391467977533485321891290793773373686490903344592704922292505402270810560675358556074885493114536452850711311945107866453288583016447763293526149167912094414628556898216544165433594938644015801080019943803455596468937636045676585843902575640200514512948493415163257083741360542463291967170479480243402670478251564461477586924472847691536426629170021472746920324135001325015749692745962919792574798928365856333910711936986814263685603667483807816704683011564292548045295641648771812661167433228832317035852165680375909149373515037773883009856343302482513022325118566007558314918424466581757250525371272563402634149349004066025988154884146990602535286636091773292750527605387959553330468408241312512767219900865560634692822398882768760586445190476529168759847900071533867461276739276056340041765146136168399614379564179451254909295279508230800949699355213940015222202287681030059419124707326789618114319442064592606461717346797455628930394742614743709121550410771104143812949138153506732252096596355970968662657118451023230103384215409807059591574363024013846545487594683161049651232129859265045521939595028199904786979735165827018560352937123353940554138420602118287027729835142011148285987373094195022560149864618962915859861411396995300766688503843922222977197438397934817302936532482951001984835606722718838819218977982239601754338829611162888607708454859304250154127940102909873612512384468830903175333615588796045461713491888723683738603775069194215179027368693807054441857104083605720763639384047987774708640517877212488311482264336732132420663686559894885098297746613060288963500925843920514382733252978575322730552226899128009888375955700593363695516509123419255357118467239707988117785761977311668371019536346526920872707703567410167605581667642848112504307650592508925674806986348108964018145760782286179824737821547003977958397530437544505253525504383521480529773017768314096612543890893018816574753672146230649547395569987673716806220552908657825197720602213732056521244248509911853293412645868707032198432869102009722971376978049255702789562052426360664263551728181556052421552213035011275758012023330474633647954270894731880646573909831434477773988883561600651771159010435181433159433241401548246899470223279513199304656670250007052562924908297284689199035295260839608745053291331409993532033128735511845918076740012385735128620044561813630078598038818552803483867531715474891093647491108471234419440287002887277660516441265489488945165135327580404538949214223971961565675714293956273433795033802631186775883600553797229229387592141092948807127961205957886936769879342964641714954293266275324351418386893488198012811369487255040046492674523410111456789682632576311239612017396700343377913773773987101959058265310167826559516386671332006472847649959553081664533284036392044998449630613051064489891475649225309097055998152584375071175119893027034757422869228236832489988207696919599243845482970358035583340264413987117468207382758175596545212615712355049014949882105631035017082149045959706662839628047666518517072527990721430299424478858826313030106121251448005837526545175086915397125442049224615766363469483633574598799411891978180763140599248295236238940512482148211222381120237276305057565569195585785671205501592278505223562761753640343592840081560567110733275473258873703660921359634640322779485213696257317234545833717960424672396475608242689884665551362431868353301457446063992547305365834153193159456286993494613377285941201282122836827674038472755232706821826076668187168250368956641309798543751304918846563903728815312718578776927128336763911425434520444269386397234066711186141506090290206395161744077682459325069596402579462057908863415060162618895820139778751827707304745070033582504748059795664129551432485073431289893429000061696019517938775149496833492701419043328296293620618329634646645700426890633825203056556640689900924546818640188256157573242701394081621651949330604788523481223783676960027554030694210828932417235865810039904563831606131332341936684253861531365806812217690967591383209628708594785419633589548756672208474448346273597331144378253621966926229356963927429731691805474313355055433177701708374412985952433806435074045584287197296673769666229058372600034354640876683974726619716591269977671982017139755089524275544249034601194945217339047278270589068639563207151333943917574076347999976666075524870212873629848484445435429445794966113824690961871697843302523763961167269491884455132629810811116768062306301529741332354497889686726644524067653915949737158718429329294970607969105436478723125422823772227520117244633718771574152540009342055999078237657401458058552614648747905087394075189118590427181024883621597778002490570763215774582441156290107929977825161634682831169131277946080604117191975362180139408546198613765763763565244506707937462140214818996258404548755656883482800376963029355117567156136240478787105759915079815185441304750867862367279918750991198763520765004857680755611012261850976456257813626578741877900810044875171314296140028174493706141330716930067677568727751310566637422590719790920468891802151671533768205060632344381951265337749258757708929604671605588311947861394408797591092414957816824693139800080910646839588869033118123403527410247553922637320585353498688884510496785683556092210801472719655217031692330970860534901811032742707932212143145165889924585566076859479760945955291307313182473826260289079970820943479956645603384854983100033387917574294379532434959459070780741867720454273376882147220541418246622820961737530134677979188399186072993572918774915279491546054596141172069854947795808241263015483017980819196567881586962815472153808539245008857991478571903288620984752588351969773599963667376338225214584463090379124716685141771876178308166947094560773340137726008481897486433328294167074773598151291389085443894045549438299773821666227034451419079647151103226780129360564316640651646418178108382636892593645470779743968724960130937420512763310125979809395996457668568427924101669599913992591958710215094260003363360388352793890930280351268717967584641615758053801759063056914919652194185155475988385834949105298857060105298291473521017957590744880194266471600564272191292858609733330855638276702175732951685439776537957176683809510415146037474058236392666444193018106557609559318802415756838860113667835200830774068125643188793517010492962337428692962135896575375017603180293704586375480643666696758366652644021084335728649075672372253218031230885855339037290346023403355212275545195203222836914810150280728075967110319649261063041271075486540684349977303287341032817140502428843535654798905975177904717037861287535611189493397735162747204398250016945186315648297050094970286789447693068576504928942684090992881515210663858447172250456839881102858301570801461073438316094294682439310492657272257078782097648558911028932916226709315235299589646403865155594130911770650105225490759349742817413692304751838053810861674299144397240250998984532830889934755269682099268501812995086857582136517342174826370092369297249986286003907848370742791741907983002134377458377988217247389197667758865109011422278620280853048542414657342827048038297000834667175504151824586095291205533948560554444838118900284101382587918610983882493501139477625911581704910401575643422534898429819822894121369931740389709290057544135361443969371519744330863120929335552018198895876268835955080689126824316850720072793166572545096078909403249291600034979911555550346646059857008339044948817099868584293537733918483336897728010006883266466122700033113510378643758076771806928263400414977050009801662776243111418320473475641816309875920310888576257842746341616280393657825684876146329802253553964307140519675649564484489931754673889727541811494352082803590309853597401052772493643389863660176142596194587448493597005413351586364140854349997298579909186457441392570699614432172244224634719996868143118806313498574913685305397104922390712942110726061187292628911723428068342220450936915543754403319225377743794658919623958585306819431052855051262839914476364318641796791391296679096779471224438482247519047027989696375246057229669578312407955479606989681806294405152345591731365992389384811272658648007993255312510443610701635669833732468525907692046884757333742914063652560441957701063862142421689319285736163527826515734586840181511743666197988850737347586089920173069718375891060499046236035345892573989312087901599571356773924057105067917855243981021497482621508087519055747961387318900233370222867046080621225954266652816646600352968166914105531462179681845574882624210180835393723668103145701947529661391377484198988688295702431576275246581294318566554794533075104932920481955945771373088073676168740961249183117176353129783091534709274154213358654600988808581376401490023776255265846517563757506063561033779447703288123863689880406882783586578676068077822219755674104714299077516799599015561150190124701098999620237591433988591917578137170724915102504467785194954489427860988175011013922674685252353442756649858325579977109822577929932635826911726499918992450408306608568395882270406471112853518142996613661921376464543632726003067770127058462877948466720766574940436330551559533801413405493353975604760785124791967457917081362004046492686682138107261182099955063241013692621697486569854549227230296004816335103777436055464563262853267362386093133847228468518407106822342371579572227559967997302173740123325925228760176721029930013603330348504849185742705668727893852963586665817044576313243147730535666924329321395668690455506632372401969712246842927301622201783444815796333145311593752564200531122434238895161635539806269130368275631215455100274241355334245648976037335590900630703584540787495361504222527954946784994386369848279704190204859024366242362245396734855457730606134620961345856848004126334698177715546687996281707150543969866639656527565978435401968909176715917030607129612056986536859956387842990478139138889292336970499655754816329414020284363814213344346761295324187161420391726940795861987875479064960966282948690752499946605606591460662411559818575993029952289076682410171716726400956671857426233159613086725353611843928741364661026106318017056677627788725624661992522544913825062733546883971818979793063605483994994911914866509040975616489423358832777912604692528737491879062396462577418893600156490414895538670116188841842458769616790111362275137829233737380658454502168351976766962974490377434034140213831203344893178545112632461117309089357295543505925068917528920412295305218214177896562075701438978289516084104750104602268383634369944393144629954223978391905659079346844292629229123591260549382825949307690107223086504742636031353852468476759513370685231240011928065325465055526146451163360516345556264985671563785842972546790105709221174847578826753070412642358293095825552053506222702870868738625675093840734608483457591329917418616525323078697519594595490462343238040164673677448444510276487311093420804294892878636067092324797849078042871402216359542480575168481365191266755233459379809290371451163995119278725467119708570215324743728964989289745121765531085508734737648630889120443583572639062816857214121731430466405079299492182764008324759518090776918665655087503851710739831273265860498767225364645856991532198911205843466217742248088234738382900123881244664500971314002523828593678596772043650241486428061001774895606161600234580410010235301349843245479718054174240232408847797385475498417570594349761966170604696096001936492329442539850994518458839891740143905742696564873770628413457786490153303679866928181608887783445056945391738768490548638638417109622572160522238995452344549423314535943508732593071900119962143119885913790047081196508789861989672247543668536294541202189246082832441514155608621520688060978986634963098901315708359517677386957649302358593712049734352069886101896459230284655506801674792461668797524071573854907450847080836690029746409965113843311293508236096778643632255804038767743688334661527615574349154227833420779974845500464728943188581045801746479414763471450956598403645749246235864072932753801138645139026672910827891408529677791447889665722843455141495113103226199304857215915369555104091847377435564293650584295360321053990449989140412008304354522233744740837333943892860596434284484205242265378063868460353563073050712383180164155878082289185311355452389378616517318092586921128371115826604446122803377981159495630773232703312932743473589751288500330108115341040203991659675482232560813570364035689460516518800299206785845712990073620187247927725231604288377337958984335268564498453584553116616842562668736406633546188507077863491850043160852956172502177421942426193910259184471903805228164922084637663097478952267023660698468829585588251256996846521129483949904729894175270740646391392973310295252757236908346820988831686508260603715936255962379145331645100103808218346417276149049806699648614818024059273911908151548986887330827127066588519693442085904132992541428646020846579257008874675262174606711774113399040411300539881135227054225069705684436447778897672099151612371196842482441511898895702440868705914399594181426669438631645936755060378129352890637183354358905564955324428501200741345260929534100111203483782272198618086677379054086682599762268904383460163899958739609884586430894033094402191133675825463171236127575416734136403122478501023113420857466438439179266128618863845838749429857007803496434174874337685348440315155813874819262623928727741074410126982386391608798037188004111298714648056838304689677878836799422330270007982979835136801019880113080707329934807614541481761882131203428663269601491511584418523228702242027615386019771338542805125236516644456076669086287339056566347098564729278310972149533637718788701638510721558755202808810123854542410445198881756694804595213096185165597202538922188854457686138273117172951471183046721231123990358137945580284620483341187857140494354793556114501810029546864797919346652600218647881591285841440381352874628301396423718165769326996869760398047569079168417996339747122589413831694355224255638261944009768312058066375106834891537965910143217738928520909251548184674004178074753049741425682709790318993619222550143687445886921353986521625790875018223843150224299352767055429055926433008654432010044636450847668573091899362182950368767456300447008179494531207010371045701538667359826102330150588474233899828804502514802062976972405502583341424392402630772084178511466049578274448667079894710325068638362946095070708391054653793631900642332014855848551693686205658552204339045359380760926219713351920647275771476877758765349717603075439844434913232606759878602382908860027375393184911767143410877042766628081112741708642922681672835277267627067417317608982249327694836375976157592567019505826026618630152320603011849017552039675244440993003121348866100560098971541661726696794336874965554470807258954257580805131780967532264065516509149713974230296893260575758262906248082030391144006795900287969630431299154362997315785389912062569265237994749456693958884374003895348993961078832276110068288516580619615199586787052748612814144173106170361605586003581758809525561955446164967139322177273626414923569131420073842511141392193747841573066711655931765781322809859591847739007697858791402700946116987962122888592212813871365843192951842233436588769076349810238883998966258091542564857933614957364920546600691626982478882801860739906168991729319698252932870862187711918466164871251800757763998143168862161160901034507099144930162035295896570840291521396889114445062096558266322475494535017638708620493120268114622039102159721900654686237575503031273732300198330263183911376228202371042107735987789490581562283844187213465514982000976101879907270914823642471770501000213018985095637484325337417273354593765493296005364951228652326127992629233538755842848988840891989611411996018495321745725392086507891538971261317898221550573170516572995359115577726027515036199001696557285498931490489798386403900762140338970806970539982287919667479626092657269251437091269293985334837233622023004942473252778963681490728399671802425799257272676071181529986234876521322625747429250834043098179057216531104213767909896798836247520864701743304024602104475167811102646272312503896155956119075612327747386253716008151849899057483349575274308469670786896372955875014040651564883343285450283016754830954579146991765089787137270102876570611652830536220875467296789965155021683385628046307599090179334469836698817725895260982982319596809049453252180069224387577841211861939346198536672649455758057575347564508552720576967591065830393358568111077916346695736064762373174675380677652792895238403254836426152684870553273552374775235150436033180656319355752669866750233487648173851017108904744415341445163051494175311191980129037967559372313752259749814537311815532383563470954402654248669623188708942685636850356635814188829609568980783251568302406086370515134261640627379441260279947191956861436456263178888782154040329432373871179465153445660873318060563348928114474172768718813479282520212635640606731296328881513138158386618437127884739547338543436516790759954764086730994918519823078640351436923079290239046122552271803666058272296869541960175299794878180820523724041654503307763721790882999776634925506868930835352913087185695627848847655249717963878175581528920612375846950137311965649731559426420384254341012527113066665109690487211493154459579708131022271306478904431812192834601707045100194305106031570629270772762356054536723534315319531165683694113814036669207596781797027817056729480765202038266945452016392302248195802963096395585430334507704614031920617182177212987846652307061157057493333633948729098559894884776407648264354341465060191907659270259854089246831494670131971220592713806925660221336729847920726518548927807600114307380629369355339705119108853174598034989272547714597715126926745316518269876009150477117414133598198085057621601296130122634558264857370239697888426735761132646609624806491041253564094357804584361665329247497630147386701456955724226131502380739472033777524827024938700116450499293795962107203230728404433555708462196966606022158326101133058518827104202125490273667318830108772978131027532446588617733685414438892083017484491065113506432924059422886669791452758032449097547916548820958382831530260639052786633530748661934350844820465359551592604309616374962366021624101419478704257009428958797145908375762209442855909622702382409669375481455066920962277824314476269073507759037234129574535996020152657167186532067389273245851244748139131365962018279739976979545385171485286685344152967393768518967956797844869461187008882338231319025883430766802670171999363348766660807170328337345164411716043090537368252685344353114377045626417245622104640560856420326032557860179117662548000921481125614300073400534119281749259266107809112449668163895575684586306689667394155668280692322862623867663531061005884947415340156892609039645930567826626934147744667702988866518202151024769823705200103707308281414427602214812501837277696186431632530459740346916413311618299725660462794521019796898256805961176741351313312954371196053790850165229210598742829708018018915968129961548718747890442328881731169468056807328483726405638199281974437649863280976245595289887350643563292284987570471333285856688175022590946073493248987442582102854207148946276027794504891056526529256674640619598033294495020499124399606869372603414364756500960697520521267342134189869326317684783129967932954016784079785909803637719776715028649781191695703273703737541314181916056644215136565627203971619722085884524933583115481435212910990585677756311913337790080165039013806160221315416896552521779165651525726876176629840551540142409250855431725812628931538513524039342715966724552427492145660137193250694347270188411619967277526658946518233544751449112251109781926816987314830893484723977980381784455358213283910799546663768123928851924697949868891883158340260620050033657550459982682787455429363315461285261878138088123039777141596188052549711562945449972201395309260506752260613083000545298734049932370742307647720788069425973492015532183837456633048884804267021401336707677493553358754990331109250704600218348688742323004933430545209186552067877432337327028441655110524796477210397617330699343974414619866830482910903253097409788733130980157814898351824996711149585491164879143377477918660809443871993271789602773885786727920906534593385080932384307070688112961983607775550948525008996044807619608778434029173794534466171132036647467943037526273519516289641399464749385492273314883931888668742915587895272709355008343380420508568599814695048140185633591490942516652945949476531117778747986015642459940152460002468287539547271377009023460505902875810607121990586860478179370879300905253958276920353094313714116088913831363601502254032220847689687470499804598829710135302623384569459445547250210496476499758031101610678048736454419346309600301150553267227855399982264443797152132813136519271033297488939481560608598127516859487960740567896270777181165831764630119556884862023141266981763351680552383335292975061487395179049014692114795520485570603214005849754314883074954399344246989638479492210620042808963150599903346011781299733165754089816586364526996077057126349766867529584518593263680338328550088996080530605528579873482386333605932602581516692432619125358426577360028845000771590133929769178922410489295587178453997831530779166077175697639238923236513492466228433545399055132547719590543095917515792936832529288470087755478027493430992835585687358135302807074806343163157823847447088405549291002135559059962267007217561204430944830958150738184741355338255899315126545292672403007397939209106736226886307399985677421936517377794712802191413956642116910765798128468570466384025792462170610652792812825041205965192966383241602024366313486897710880198263147128785942285596518264254507577415889420461906292958588743707617924286946820480472245188332009372609870744037089180532725283421957552823324430238765092041073737216301237073913450990174405273147707005603245361475091326259442873325287159012222426487087964375603237216592035643038461437533860921139880182138492400985443433977533400984651369459427029779316497246395382721647816410584131519430600206480445717239363730497173186550054684855749450756610316712478807862572635828959869745036379442699568794311684681122196791005395758052473042115466720089127405926453844820985881165678277551207977938732980071614578016940705083756217356562570029877323225162789605365449803917343984483683642857908284935782898090983526379406282846240936406428309819327775918085061900698809192368673692734624145426520706055744062244514591649102686090367798670640781290225665980853916273372031484199600495470563414882378699026800585942949670483347712558701274660835832939194934350200830063011918580369542835789732056754735025312887752302350935715016459627261590470820978520071713284995824915250344110731766346938912476407470371866339188773242457593624243732780771540827330602175800289978175422041116021261517726530239966202440136146485759666929465949905220456908945875127540157215693944727301336054282704471589677145568106417066809085348105141783449036616525360695271374349158486537731484978604789456381039485117474910787593839392559696580421578337614411303709900961433209149460862197174343618550138697211726151456122257982106939312850750386811853714126297294345158518621100516981654897196186405241219473865497179871530492120386355414690858207921264160513604150709485502109723543056375097436137531751818948313356594488445313974292937433304186277044462721030757900944032017021782709936433433647912153451580580785931169720340710426849956718529402095270496055309660085785353818044543416099603123815734083876334242733052202204192387342981218342482633088828391020893723115058872839861106004813591786260807105299736370407175546198530832319358899845905102561414523051472864214555471699290512341635065679382274492340297697271631852738192668267566509727623092494501933600089886408767842232817458675742609418537374616419937148823732534819044166410888540091015964364040274386424982536498819650892900128357131484106625291706145358858715661298296426908170367861974676176476677962199392632856586180579973497535178141931590703980763843835375113411818010818218433745147905642262359399113878381934047724607893520214820226047353489160545374022705054809131477551145595450347502811597464970970287332596035194032857903753172423145790969706309673142243038819270772234178741955748047156960137144947377605707590612468881508026563510101199960984647378224577383104061035597806680449327559176029884013913738044319628291062850463775053087982219642620555285228008560497562263710592630663590888196523358216360699088000602823019175792135452470341103714713293143283454986966850692028101054043365138245159991836302036612870314616151691220597024101088139089685361203097090971019325626367044072094359648563829910284308738565681262373700640885456215308799766559157210998953915099315089256160671734080725710962901706061470598190759855544832899762935935492532606418438000094052716182524238568638196579419341963087779513384986118234894089499530612951220791613482199175858781092339256411098533213279449911876282788792417702689380626302201565430369290685614056124249324587006492102852587003397878674051851825331039812327575255679896301497982785760470685905876454032291873699813051297845003539313995506379429788769895539259621085057755841779451044765936638892412752813085288054650466001183922826967731636293596932086744218669021982147623706518804911139319840687650867321007575831887624127823666965854336337233237741268666799283172678673161637535595014433785570306916470263378025019968990433142463480576101291390766460509387154822821283653857789300522130856392662587807165883262809396900409466230916827526291050535834693908089986837175324226905276509614305899530450900885624309566594648039567392437970133052069655564954549221908271755216173746626296330688974057458220159285794752016089668476625376452685489805488453909921973296212447807904367253245161729055121794127772175998402349656975258788121120901794313202639769857790853875667004407758821814130627359164272040241157130718963348895197247141477522698360813343273200818972502009132517565185266276306585445443925114384307672203507713580416086720714263009724334993131891751771986896597212202531828381288105206762156102060827418068063014127911218219810775741957793893514976387161033167414362226232476698909391467926137166377226864795638823086585770695538894909248560737462169566414247275268877242746276626708162921741496000934222100093161628109878255807113860148626290266660051779373312337586206164513472344583611361456397900686791591668177239376610099045095553371376033990519419363017893526086801044089042462891827728328109377605319834636967421857972946507235629381845340229382494334001618340908058968721798581457514662100953996406101751282351706337261768525457064200576781422470391824703346848925553010752501172734129796754217533071405789143226008338070213349011467557539073255267830713266068509644909885701935539650297912456139366400392628066112025494575521051029328676337558437683689130936873274238038340150400327198302150963172263501169979268482076900574283372799433953595714962334309411832841291104187042938631600755561931781015679996845087971695316742892423043094068324868289312411355141719043669944701350894829800430227847678949722732857658279218308753857505544626565904446643047506930552357693534899293827022565072511862642629646360122387931741535353033345056690321338235549726602464881173468247902734050941601073606311904992256890924710860703903506642404195847373565649611729614752346939844409650167182272138704712724336999176077431964738870157939075328080961761744474778141429514549210794332051362668639335341871546929433669187312874669400411292770199739660723704990738519046338724078663888230023992731384152334598470985844403585619212908133382316889478285100497721086687176614558196786346084850483437510695140244874484272753263675888151628142034101260639123930862502858059589478182018029396064882493369687815680139076343710158920292208983963068131740651680989151869661922331593481283704497912502164160905786089637427555172451243459471189320395940138096644298153693910036476991607124752133265679505378547386857158945855560286180881683105185074964318893096323892442669794301825266015756854457474180496477433864263604345421253292534097020746511357749427674971742415890538464575658981728664749664056163650209101555369835260740059459173583607168407941474536021909976824015019166775305101802388295636373507771482916706653955365054077828767665497342843862897132183112376378958020729049589280998289417812104110121964834739642330986964924616837816020599345001667948606034843389916957066707174446923394575774363580836621059765333473256460851080384362634649853778063051164003272852500847309691241273797324922038741980399292311766233352609352314614426852043834118668543380500618362930144405499866763157389756383875305962370040017618854982664548026158695321757268886844472019428105682849307855306706325233819270881723229242302866296574566786137390954132658523405046422011609376679263050547214265452980788406195040608280279004436635858890941939680813129457256659224041994887373700812141631784586367271596844217897159586231123120204054844861701835257776545476123504157223160005618668443951607079465612578734245116664067386042371138343893364382833750843426621800754063138162469795744466940685453510438711376929337348309465700506019259893799450519373724322543764878971063302774618708899965175125530942830254736783164100466178507537401289401987657119642769380161701640915514849389173897796571453857109175071803741900985823360833145930174424383936686092726528637653363422677073706794968315601024557712717784677987984139552668479761407706152205174003399512368898510350319306573615740529828081266880925214658625615292250103759306784947871889399591868813461092418932517020123538812411062522318747783172692153306146012982997133814874392842298428378191066713898782099374838577251198251731919628630004935855197310749972335574156909413931723992665457620200710453635496345364965238585996571170173950948137256641604405140324965659395054840914569045282666781866032972023281562268186663460752205418408500218416603830177173274710081967453900129057997637485100146941310490072810454774349160043170609470431310366672969548971506872399816990561385911575718547902315239391322013505048748203907651033222182453207097079604009183964693876421774852610743401939262216099991913225576279866050857794945249105788110735579287986077744648226539176727699405632200877453296401515835726882167987089719949052024752125366702760279810217063288781537632787582817678205197927088908015257501876090770968902698488690071572999976260086439082229069991600756435096892868183778111443461323614840192163301990377408801083247163031702209711463933717669651902732309245142990705577550690575399964009884447979183856567137404241276087526992431287789343136427982909312420232780471196488471646524657938184244171067545808128672441067854750053067511706519786994240651483149470505372937255170143635242278294593951469538279306707973250321067854722585236755593758893424741183914228950833324649223998850639070065018140399195208329854649968895889395978733931263027243063284800713359939794791416242577659231563317836343140727537212554247044452438533185582523191047712707410098837656723877888247317019009353274123120206531607956188886520356834549641374601555920205426824378576762858412340861431556907792703730478531830793124708282947671673501112701329686949249344210637429948366493906039457774927853448067841233627364853895672146655941997296944562724736530497454788399712180244995257315506335877599230641492408909992559674953608249088792183357956137088407590550790331766968199529401475820197356420120669769140573854835502460233853698961479634722017470011694258747828696424409350512056330010026796802061404268831122004246449076077362075981474607683952430798813020629615312528548484230730333582720684258641404289432569936057445522674399827913176421354240651242573134650311778043414879273099364317657817826876867689732957271303303034897921020929509711889897528101084873809267535419969495856202930785942859474767951068952873925309100499695570537082210238169320415686704792997381510381227910352633560468682581492082627956806883961835039856956057944061826312886933831691720104744242498022315103493774677632007560340724806946270571525932546880483992859969978292871321505498438203807770061013077109802671116623915389450612644106872919199005153362095297039740938825392312035519453717673725798979623988725284571254942043092738664961840748126020120264022092984361330149456685986849482181937602414678169625472842062511114340642990957460412574232978933315397235059877305034029252828858653452615646257182623841600175955154253529762327467195787854835954907293259658609984021893244254756999459387014547864216569169598394175098271094356367980381100646799467217063187173961943961473193214281545359705146675552702294248054687865050865251300968031261537054579012506998133948175474869667272349084802940023453897661722440362928294962115845052095616861030789204043557919832961229064854098661646555989445460301838883710620650169075557434661807377297563302739845596608838494155051534177067458219352437121780450406758593921721916274265494748636798745130139075528998159581164509116078711063782469271098139506492242170729569878555630020667939242927831540403507340765030710924005612844848952217624208347970229617425774009500659970299870569059641542981155136980795993636540603102676136871895253678758931386622672254152043103166883875852479781538058197427363224331539940604091328700677922544621724592232715743747456933732202009694018407542161116045571897029301140295912939661439277446340236330213341762365940197993034247104641513685683532669951097634283698177934955506769744746917496552392548221254570250348917108094811365207428598581550565789652336893259502458171115718547882338191479056835527455746454251282851374817611896695639421773903410600774408335474875864208525933353637455806693627082447376933773033766365333059795577016821978523303576368794517218670957517535750315606849700744191060478928495176359990999847777488142205630729641052806205687053712811994152728353414631666568764138367450531673813224016649001662782487093095411108077435219758550545658185154061743216866158201643327479815885609066224819844313964569222095131472396220947370548819026260238064432879683018290238955071052747945248509164150567643395765209664531981632943181282717398078939478123690751685647378740410047098837675176082816772039508762786341890280178331997008521957654576014592550289062944553168051781127467344247531198542130119195411611682198252800228701676616499330152667471325348053215783094974441187987235373084589705390757208342209952555427459526625341210578681949642721369150857793640556080398812189218569357682671629874191422023765833223048735830770114537090239521699790543411719297693040843620083001372559961070680545953751806393187745921804797689105411821393810760647990126224478285009005907984336715337217449738818890381331290721704166087537806457303740805509558501565921057452670531783580558031013064261878178944714204330950768904074825276886120659831165040230809540552849032325558960790677745323809787417952385537894524211944652824262321934248386675889357619380718970241033342698802476207025853692749240962284108057337683556581902333252142626362934547782866189106403462097549556733266126297087344516091639866620803248628674982140611419516803670557332985323548542595592876934076392400832258114649297644523891282378043512885684610954399606841329831944836666388573315253582140930329928574423994223443975993549445564528349070969737373887858131636773010855365399012374111735825681794500776702758255194657980321791924248655038763849696138588101256777745044832460892767039001746683533173480939736191039087273408456348123081022039654177347353526702503565344057543301503465416633261702314061855368493443711366624443215817048667329432267421048997733868399986676634865689010311679753605627912908416128249168294933961624128033430383894277854641183627770584562862942758150703852602423344679073073114975580520076623164597671125458894831302150484140954718112171580144614239616112227453576339606308084612136076142932669861482154924324509153122451795323850012842812877540351038723959090178402172768051203673491221944896474994782808723996070364911957485343749767457467590243094419344141612012387683448329568921956487362449435234001837664268548427258719945558484922903475150469564341302284911111758521350983832662332963184599849968707673297785144905233308911503825408836025209533362657812377336525889748075788788887675310438019292427769839662495075727954596335825235092619272702117490836997795696293081266311171303708011608640003191523167284741768761629870435156037769188557307550697696927722340475015858645188820453409464263464436234489393448510419185347175977413545521455735243336371271025430428821440829377323156450780596585602564356342779930576921406679276195240829287299391306786044723854204454284626309124649514486219364764889408144237682966919008286344751274616188093056343086450128556852169141971700185548298265443365882142574887676417161297230158205365685644976568054293181060946548246694268891951806468998857997766372883582142138509169220056473822650134178307013151707160297014194928149369296024319676039758466886350994809419696795642025135143401698116140132645165251252785123407793960209733147077097704708655215219030442995119460223258474445722237422092760980682846924858781677827337193773891927781765396063396489431015085917327248260827432404200218308180423340132704255453611023475008882801918100013349781960128735902078883523836616120344916243017675619800165974433274917182508396176616478797728214878304912851915233303796781028029627246794996685202728250642809274687850754347747645714630914670136483726347363251242145959535299967228098167964906502164670576467068127993454334215519015566596554307110028998231511299739567355898189507032502293305408750858838911910269632965787902492537203757283494984998280787525521788397098689614484832172159937911192138311544409168102031400179531766292664481217093726061976528611860924815319772112020711012225913660106383302717629501973422930436717278671950722429528322106398700361547514744188788794730777997979586111597731046137573354548411336250404958140675406306193571842197587140963876714094566481108450752827749187413737009386279998573904153059847220740364412794076600130273185831231378716963152479281210968002670630709214964483949024431171741200004483525944052166585780883156104486589687611756099176701377756782047088813367655468450409787050080411836830195135134995366594070549210963564253523947789635475789737689187989923908428001673081661322642562543745334234744756398768608950467062080549036093288757852386553735940995619035263622620757355701433014721307796460787481966094634403533019792111547748034361045721453251396731865692724399604888943604148682173542197949854131468875896980429011327762242190227761605631017571646739872100329055239940105239337854377763895891910208649582451609887255636058388511397964102959640532894721461876479947432237897943855649841176485359059417255406864407455751339446906243657823619672838509666261304647742208640209666526600633748824221751950528399731069524744225981105482093002057114525497224717348535288540746705741285302965288992983576532200870179791505872772132224971608080551752135216900393994685833476277410065506675702171202267543083441977239830853496602271603055717442074511297755760127460576993714788182020368679854485714897239827829288444815430020444702206579201059971821450033276402248501259363522120012978262498323389799542158301834185345635345520442929386566306215760714736110446007536948754305176513151426849880172326790963472374624475132838554724214141394184047831504718020803972500239446692326032836169622995458724221481761682013962434162805778830087036411189191607658564678082583351729672610758115843637593135764131029994920145229719903720078832514199837315147466432609757267596757434695285065023474242947719504479872730246465032659063942112604705102041706992605111096826546766521802520875938985997867181444452179516399780614710953316959132415293281344955790433753601473518936561902279462598768377336245917767619130090174172122514452665613601505061020479250907072294487499934665276718247480362139518222840129445377643851091030964010208505751289552862062718264215263336478077542342931219723005196613067546452044759161907604840548694530876320734911353614002665892687339075717873509013917269853259180668129525287138135075606405679202007262117279872836487794743184808974157113904277158404984564299486976168952133039126381569755944795997879712600036567701064289575044034826740825680128925439310609923474384840088910673484231782015765554075644830539885650738588567867030679829005093009887358426688968811810981374745937922275812304823946401472906237612598137613919006515518219806924221095081142870412188355289479188406607875158715300645464106340078704129398799822319744537613193805097147966640445105561819726897288315792223645434118877390679867244249286874822571719585565788888343158206315219252393345521823086788207439535621424042859656454907157723513042622445745118008117322071562314656641276879056564311639083407272566821204132500530781850942971664723810038959938810878959298871036453429268048251372649480738575689450023683591154874684237707331883554026081005901693065196100707725289565160147839512711688945005648196220444752375703997642196035669906852453933205094947059006843014856500358440781334073914162099333732961433524569380234046221109080114714418955135964909958588820140411323874017025361649984982169945426783978741072864419184118873590953333244355715334654099682451705175128012199338749076564194212545271856260967809059797158400833252185285948647045276531913210674529618274861442018315872157491543029864028028709458407259900274522455360857355559462607324971161260367132561218194629784691770824154081596827321565787743695443384628397204720284041801666460510984102559102791456134543787536432662099699878531959527864678211322879189901942421382816641854418350224619244096759717139784059382538719521314906719448025222355377173692536779579732433770601693449429629596224400455099007196871597854240901191626140901132256441968718488906107649342673625926900437181471522717220972719208240498717672663075778150513284614508901809737165148726481584988735529936455119091401639671127402741649074806032383136905460665268555290456476109747955283079177734112463553142755864520863867255183019274075385581475819659985366505544280646940267248858216539036702489248172218196615773106914424626039074236032103355077195122722069882440591093779325619162473747335416930553127217622893808246667214455616304005762060225848283533586109939117760656654202830666816046065641235690630937033971817746258013502333809093015719242929715248623700152432215476201603927050698780767357459729349770593562150260524442485064321342270008485688491026203533761220646485006619944694576115534849669197738179263293559588858552450254308145762872006380042858588051254200838701970080603336415409542604608037366011282970612678814283106295720051092490426448492624312453785259864942507680491872204114594421802607504274848747299104883697312163221397614069279561282165440134161630276694678434437913625948956239688912543335887117150244682471293599223188435376453970693855018110068217233529116191850079466431347840068947960154976097208100539242740014413011151052175124193917864471554425321015704386088690084598644045332793519533240906871772431553678871159786860100705522776383024513815125276931989111621522196221232983866065499895900871315069132412343527560351049703744493240079007830551278509213897815825226860979399815598635186490074966703109512085603356028900115197301490931319976865424098701805929796623350226705387095484748432935438949808744174591105719588603020018292347341559830328374957545322186414602522675649639279433463152310578017262148178733745245001198825900826911148912178718754956242341825976581297490992758823794820933112608997055136845591237732748322352360385158960250742447672010853213332901305093431521307914746629424131527550523422477978165626673688483053530324924965435432614241330896273842136467446258032842007636775406504355649870160492660213941837231031945669039457278930889727639973637558781975628164471415319420354294885698453381428526825240621826022193577913223898488786315032641710663439401495061404572633798446797555766503977556214456670349622504915586515996425235178559111794516307633988457775498367205819130405701543387416531537241540176782582447657640421576582236886012147570556334133658003116535330082565804019471620189560406219719509093759795653906257386441196369965483485524210743197356641341852923238928505499285827156320594872199680742134860360614044333171451687066797424913794749693553426772971125333629543077616624202132297493027778735029649810093127912860866673695572907179792693790616448523643543244015482141735451165417118980678634925582667994878999207334933107113528652533845680947045469561839240282188964130960963654276603268748783658097748505006499212574218110137427160683454966935048414735424284769736395553409884620680100742567394544471168621050300051713010912900396695729265092605106400700417292850106640917738075047006273610929219467165424179202240139644451361264182683157900213198381003353131041536473757799651467891839338212249471471674110500578080878627851574040181270225566821259266784575264438461826149284095127572355371119832097656386088215632958495058170818267229002675409920893535607699195313675033311036816939060083224063094646453996651701770312753723995978974046003958689057763587129643038687534981275209545614982654867994377789024662645387986409287059973829274993020117474618579752460733067139767662304002850047412909877332618658274907599571867109771488646586877029888903415741898041019622682860951833296422578076360963465506337002652256237635578311338181901628560957124417398550516138304557556401652450397023766484149134503952022842721659768663998499761684175374289619121906746974041130294079074611488786299967405468580789725557731279787935396348693887642640388316861447282108443660477927626046052102806983625767481980777187867766359598411295606495750747731365935390866877705312704771554986623764764525974795591934577837761147443760794252868266908289259664092638554298226894220819821719512404137194177821069510536547930496259461804259429229823473232974977871528189159319872341447592753867077155456821816077180475443859890457454409355417402091700736684086360453162144970174344577430171257369195363368731445634707521447227909024418328859165451818237307743830217484777147317502766769994978101465589344719033465143543343812072021002558486320565076799423884361006058167409549467934989970307783337913524602113647790879644308850287042609075678049221380621926099960910788915174771309434983297704541938605207423072722050881225007615781342491776928150582798848246318384329297834592416537756487225009209361458034285345397782513937576481003904662135626065591339553883350341564573498540450322222282169294466280323649475295935632112214636873209490324970954152817089147758643006647470797568485866586105701052799978791607176672012565637614620213717691096799237163609947005629481621432802446445877552501518465881899102228128597910779750595229217490889913136498428706580421041404046117727746283583395322622517797125727915225614242372293017140741845734016305283250621255747147678173398845534011895386078338003707753814443218807410769927574079859433324720333068273794888549139481314794029658690650486285405797143429133810498022836423713376235379466239403671462661571967213399294532920409886526941279938050256668818360195329922858043634963821118318922457908655250826890267404173416504084964435997686444597683728420618965927771653411001844337428637853275124534262332172539496247647084045897478426631591655896920396225582847027954526876020641182310272295814562793924117169306814618440709721308150880123724053361453898649538238272328110416221757734182325501661162942627861918559728844630236970010548938006314545696271127215806972669787199908550899270398801800675622971929435448617675625861567131793014678356864147841854804731461004372934481337251037147651446134965197406551949443381251107372761934692462284220835905327096090372993965630896879370263054158374992757998095447418684852482171938954506587932353874982721494945554557748043440956359813643383040983205515916401244225465547716080723477128643484582134914651725957591030015337959906133260742585146190978740527041363127200925151562769436098824468430175738514061485285381636804566879565589787460080318914454301870825747125095743857257139131220100215394199385087169065516774885511583959641324257432147170250868189565936871430048554908914619069958743569152623414105094508427055545325121794491913788694227585637001930731584742658983504212051257490157605997669742007523619190772868232066451498756700721073824784158460668237725163451637138655133992431767852530970843374376277395573984506477196085860466362464165468905440149487248787935311087755459736217919724568551793028722297436000940420233782472282162770822761558740921249766146333309321589201238968106212906343457784927895672670557386544984162338727064223887382377920201786126640100017380493483238333389062700823838929681191118007590119468128126162808270132406789469122008047580044683352216657458424833337215155030690964837713532264465938290379023820362711165979035424839732920424841446097719493601518667226232706075021828572122768164341162295999348458994604025997897336304720258585293683456435016376610452415263212334789007360579084589676023918597443201855433444269045605862359210167261191044346568525827072844820022737665316070888089146341218865385770921577842529318925493676975300732157000304046583608405782897992882353957933350201089809898983132574921460226212883071380440949035783079631441475814556711125330689590779681538773770259514017413150580350095684419834465685609724433700233350133203124922986434549051805423027901374624449408674625740504436102064481383410519790486323990317784122164528015992879554917927323409989494349844068107824662228972471109672959124083625678361984605860597404651768372362468965325757135193486261798686524912168079746541651185654235959529725257061990940126853045674783619012285126675802543367298663397851518303179908002717534693343955815095466866887641748421900728059769067641526697523362295974881996402954434585272746061273933641725635715247264854218391143929747932200775193596924318488733802232841353786743462114898478509700746005669933105430895361999644381293655834170897809380198587973713398813148433491642160372717083518702982300066631247871511061496867998510187316577885857266625222012432941202145770276236840787165574841541314886685708259131348776962234913257945952081478786729095398218937573531295243790840435773596881971497973486966566047496347873656736233581676246432793014986871732232073479281532490300366618772802882099973473374171905021014678010691322334679580695437925656204681099599130465077390467395381817375042026271968102662811666109933847521332099520569265647971266039399081594835591159847256114750567254693432452926716173338463564020281993048844556718760380399545685670538144324693746951993196891689480945457111199755561698314282905397982109242586003688631005029419809402379383680847341904433346012462557979003016970740022002508270836115139287200577576316636770863495843687513161469977602029945831166533596695412348183494255525640701067385503077447656751322460611966222101155207400941616861077100290699089546665176339833798986180936600766045762712248300193679594538261581457938086772378932468154688733781961777931612621079129744814831386305437040520669649225738222233196420032674597752058821231627066925030162099494473394350608352660623700920873029523115310132901661057133167840732811258379491911821032819186925663737422888653918666129921851701915291167578419326486404419634816075777154754499527672165233621030487160516420006312485977807322530834228349756291298901128001011089699168838144288887496063729318892011099197881956297268300322238676976582977087299106688261380007827323985296767447309254367529790740250694554797812348731423329893147094738842031743333561134729029153697382473777362669340639895761338414720613544765863158293642355946488034269838736416770516719388637264054052771947424065273550830813617360714007441644896823936488370596319947449670349813435124410673345661834223812961025675241488115932301518322624015099176966454864741603085650728463766801367381679470986363216916936955682805892968195785403338197612631920019574682626066890649208433291980979312826666738158450943245838923966076805694604036339294506580972337000144039185299062300226602365070113276150076588540382921504390804974466168263671694404169404893091587358794139001502274322573919122799788771820032530831451685300742626694656335200950154720048179426289593899427465502734004466744343477235566022112155996964011406633163353214165336594286773136290797577262474602734549554752714956692734054975037212419454598672031395908251500907333489833215361584057654109315434409467190615206309821206753492873070876824835676130625664013745671805863648868380969307408406798226019420938014203989596689418607455357319486865440677924177746711713735727439953607842726862838184111784504621036518938018013311582952770847304763358070351928562271365331907046211607538941842004702047711678270340736688976286961905208381717160840294837366455701011058570884519258796762437418671011578211250836523265113056461428467388766020674014498888848561069432788712183205576757490699698749067193685464268333265511892311279914497477874186308034190074161863077061791612991132550942133263700776546606242176172154181084753351426797485201228869579937314847524278201755553454212183787546211383918044625959595125067933894237295406294539620601671567717765260615415663858339966730193099654345438323874321586948179762444048435583607441631628595286569732055570134029519671641471835890062125779233375662660589364705927501355629084949495347502371223683042486019736719059323900376257205675539652277145736906287966754493740755993381253293616727034021231244488663471202145430758608468388986011123308167529443375474018585801937709583261089630477342078281469864842708264874927381261521919146102015455680951504639895281009592145817189438779966493331933454571809024199275329570814945328675522265225981913605155267859717268634323499340789628943406073217047075117779972732528540646098186671105521479040139904238509890682969115705955361920939976245984694141753251562621605041119392787513544518730655651547978794773786089371886188422796829189371959826188739237539623184905804137016237589842705603135172863496647749887551076337748346598586605906610392192564102144405498153901726634392030179867559624321167078872282908194238533213260404277206179883923163678523567521898471322499588574031324241311125088425542104908878587565891022528679593816408119534135407252846591563963746545397187287073634651556239630685008550521662074642099796151670035507310373163972033535986127492672214668968185928699305002076381747713592403301336933824344739933092636686191296722388674606998853073532027019032645299834854853623701739443081530747988442137520844045464513345750542153103963999774155062859025135662426258285786209247978359847854875304948948805311536149993723701083319835402004993032396397524727426420920662335654209953437220635491849043329898183066978604950447112502439316833584602396896578245972310730395758730878684300347824318024270164949953707115582609064692440642171452947314058283167392687566046248618837348243694646884168383566610193529873675189885467107054370879910961002090495907131426530203623308803175780167485540035079535217744507982819824374874210419090647166993776875880865739373834207449314859914715235281902906904891187513724956315081362740925639804934753420512867950933207099841524677291780484264065307767488084000235649071409643618068948621634054604922270865366564111412421203373114005786296355617410904509137244079875550939994838131022012993546389084140107174362314449847025446680731745436328667190014429442614455444897122494249595095344840701815082623283681238793234277059567558666815186448291944144520227910826399439559174131185643196893015332582869432886897064352847005170722327974244212666375786700477775518210576810964334475616904903912098706656097372402693941147506515268777668257004227709615677653124758376502292125144397938402777653249696033564820920933074405072517063269665047148526765683108480498938329564210425543678631318658164050228189658513019656498456584601169356534997830620983853948522795997567773028541930153665543887150261719897914978138223384348104211874150304040141289298630567607541112643136020870588177573532587485693912242139108527422070847160210777798106172311716840426430802555682131939820771661837461559849744323549686379268753113915996464933069145131208046909844470564899398855813808946213358299278633462449102082926297086340411829339087235094656674823904469672065528911339556104827985311564677388254287584247930039821784156519140252599584471033555283648034457051898510952166569716272913419196776155864206836247155755828958344248900880113116832775612053502027134244606616553944165390982026597041260870848903190659476226822601895145629156048831878941437869949997344675721328809813291632271228465777172520255898625664775899280139668858519383296878045539723266018724109293850215598235153241450118930538650692855216082914256653635825910620772088689125479510534899229674204341267046894611585642066753862309147041420937345828961997570844479603942798426341678509009487605993049180002954311478967949165174106745902380400314925660690491509241288245231255411179125755682913307335936516808182210827838627649715457848775679082189142039286359083781181107586978115916762967739542366946215785633091839735767638701201447994324655107000874926525610560382060363020739623412519065364939561998247050872504736857542291252595748977411859600203886687907489189236907444451538875863532496812075924296756553649822583664149906193658782483785985569025471772372697992574561987173201929159644505088826134888216240601511316823986722197223825118810851148232604043483517452535028496373194407532628237394838585000481799841031141294394076194056657037910130898318612315342926538994537796843349235696655409904279476852202610353194414208815852688936929518376239832085675892062377868448593741803578266967046750726134688530995475076252865469799049487043732022346159935142924716219560111414372960449445803113991191888330716819840509510644907446348872714191455736750145180977222965229341751460814509101419209913213454233650296193347106843765700493358906515901755812631064700959246584603296709353796655152619657346518795322524977986038707390932645102716728772799066785879611328055779965715492327469236896123921728126594610035863050782164772073109698608773469384896714882560227338983164350844344440194475382929166873843252739230213431011561573590101161584690215106530388012780375315195656505436179244467416108355923668881814358877627629673892901065224457929408249597991499812864364008461029740286600644459996323908660244928466138840614591646398618443069257517463445133060819416084807786061707792966959932998749138397875340103375832509993429393769229213660741404694751654402277181018253092925088611974649141610740402612018077821417874981281814492909596724862743293519632999287021331489894942299209600721533231778214324896252783138429556843109174546677730303522257890534250785320807294273335217026200809670181321123703238946403684083459940329740914071639775080798903321780560809546255799159012014738029601905056962032539493048215068198030278013948446595108923768150960555591267224613801091082952710738368248646335808990644894890809918946672465403758257487099946068382923618212725148511022931902772366571659486807833958245379110661291800176065247397807782710680880646882858328951534662940024226136932275176463626251385640332702764434817385044778754835710613111100739917295289076193924067453314512736648390581720650097204214332191419552448861185964180639954669197229184598497337701665172296020232547842452163103365252315531740686777708487229660419691522289155794924265171829384014101999056258198121888778780535057933895354185401481928454005228069572246265236797826441238295679290066716238579756661004761145221263538602076885420127350683307781176322515064905200821497635742430137349371354943289451603994001533332037005857083507737041110859516113019648293144992294936115839790389885426723449669446308756866496002376029785459245104763108595920299898212465894528110981823765069011403012115264701342027914418891579798834048133541036647271317006807201989852049301677867939451016690003958776465098379238548122236530627402098775397390636858687509895603689694455959166116026461386235084862052850502528607989672189774666045033867528804653052680179319947685779800100162927186278398927649109487016851441228290347524043713182180990402667502677301925516956369733431053293040759934106298628038040640636148232735814445476969671570889562912479711572351766487074799541928333722442016832453018567836227347267632280355265627390501442622547184406439118552297384799312560853082087349223394167741455487037199724299008581240886061826781377535945848881492708248041514918565436309880327231168120024787356518080054366022287277531003384264947236775939320762258620063067161975943518776503840675072597173955738143432362904038705633110073153679170619249578997341255458432862106502161883881052976355977038508970144670502327159559612552000944555975067260794140240072392017865745437550131432741944711578384487568290011748851579443630561318496215276473620103037827202791556485113323403153332065223829058105591401351085084660732951480951615165833482094327709622177982684172563821320432864101915322587640555164057552097535652330668962190845100086446286793366701978898659961813956859246103397952563565651657777976540449312317444984491594961274129601881269966282419413732253477467307790661366539018276490564710313509108107520526890558949123818961047342307670096347433796617642114130433333363362163140983046946297297142431976558582964148798239887396867783001714582658694034129445947661882910019753278904549926874184293441982807206549442992386403685885098542976657015784852219498771928887879014407070364251433732566770056497800968446217023840992750131495162415881442457689231793369345544060727938522148837997347272079044572598520420418587939945978043960991177952317304414006090753929129934953689164046515743425641005956375928445444423653309050614433702861194486936221564433936827714461477872103672988547531262077064881275344978183582094298687298016496482871912015806059036100558520721008808650631357626962943178600951924742829463249499390178355520694756939925762083205708882151757469906242679344506280632690175107864645002622134782022771879980907461527158693693432153584984605255502727939489232891165117198727228031355169413766770743838026379823670267152463564541312340203010329829144858217116050547663767835775771860328837954959507822220204571305741182212649024243971348553491937354487574185572019616480853920304440559753196749145828590872202763606248333687502505354633453399514071097970090553264899481924047611060751234394939511548197774599088529690316840834531937783073891496947834954255878160724861717077923672614005879904167738652072273245688020099868816033299592496103469562604475613800868733159995839253273159077862606135484813517167692518903660630432575468475648885328174707054411684645854203685371320126210053985141179278614703874359347214563264103355988055871303118307731958503272973706476709434820646333826077868106413641107482119995823923673803686614072470547553391475305705856568751617393790998429827467653267460233938663339686935273747991755659327283278327323725239796147237507155242026301878446148936983192214007173286593203311838222219450975314160253164056179066694304857207026787393571327418893645722392828585289346354956909884147865486426074812100544887525035628760130874164843834279519789197300808710983800523879634879108268663532974140854068793663042056394511310379266874029994476189150311763936419112560405423739863618299062945623641108603512041530308666964494583775833666098242796838230513193961053665663738294830352874090584276866549099381456327522987717752473508286686105673716121760548308631280540099008482747270535852575719255917069092771847322454272365869519095612331567638552111082193748639893453311440960133916240250596206788603131207284152680957081094930443525586177134511663932115650888925839319808350499621877529881414797962792486399533786557210403319560749257205503732707071288489082084867784485686190267765962438309877066893459401606699832258401739998025607449374241659222680002966798990872688468628085403750794091283504251112874701938589862605503918839794772285306037519634047664659917050687676578565968914799732608043754934209211518418985423353079873874605430493680555549568097452866267060503195443616675297329350638006386149797747246838395285628077997985577983277644141394757703114073451490219756640078786514641318634592493801622004883045668088744844249324348227852181030694073822062839205908228641327601465544928045984771335410273338221735538011007048945425316245785452386361893098348908961686446098307165369397413135899652436241977462452522556110229718266437327297353875586630184438020525054775882702309730215708890179392765727304861092966891346916326896574313899306505446178647036164124937144599640996719717784930131495235448553771903050992344496348965615701359882873178147385525874325915553441811890474024326186230853470294895295483524473865657981554095003275000707614579255963391373267180571198746718178484523756122657074873330742904850475204695962854244643110263625025888944499160967029828638987996841143119823497214605937970512419514535609876765924259408799226877251181095006505367943563076717656373276176352139164921578349492472526435874014472838690455036863522819064988604614375333225119429478976082895893950565203117042664666603435649534692731038411916462004075995411096777622137055199575040783610490898450549084935268294073678556208941945624049077306439164897641578676755713683521573125780627647286217835898966064480992844615962965557785459490805257872478868461386088117724906687154834139697289181123938576954847315572482863477009829968489928694138100730244571179491171884468184137156134581715717809788134084726227376754692468664113284728509050549152719103674868216080781647956232204509618796807863621255297271897523062936171576333163480947583583637075808658376026296935333773556486232503481967088777843280793542504197404978685913524188085972442580409518299137979783449056255277634103363195914483876173749390136260468355238642600777572505171660040984846770285853314791355500585913484962686823795241563708506530182198802471354765611456316780124007877776326408560541209900721954984669214713603899721947125216913477068349736767464637082675059674778261426788483389245949609007533949857464911060423556100879298459043598107628811768348143339420938181508682026374528246410720967912401377832827064370434175599993004620589938821144404204807133274108751966972371270619702531299017995476903750202563755197599199408983312261003169356201703306584923366548640698101070255192936869585200106015748709560383894043169940296887474307861649863756357475957581082464362869598111363399498863210916766708265823455815421984806204122204007396267630821218442143278764010337907938266539569357084062085297030665685986267346195141697932013215154824633031391714571884208522569017108437257382566482944553904961044020775769465449897145198067727575599019981120332303460323243958599027591575404226874141560079747848292318805043418946263782779357352768318324320992305884003233950036354925891772442546741590942437948276078614616789726008677869194690265690256339663579203451727755422497768951038695526273526843706786416420963587455290709299182719807928747300974157579595371253418983222689276326158135504372006867379103781135162223759944002372930791378107822382209896718814253653861305774484133994597736252573068156109368218336277397295637702098411662411874843477283262825225604977979171152081611676942988951113905055685942877255705648069652557205235069288087011350846972007314213468835596633610820865287486164941298483405852068595557492255675462659781696400157933096643298210288610568708209408675830104070728231142448365697897136738124745376256705618254837758315644527990428939041456593163368949748103968935231393204665530441956975296129203413251745310642275895426538548234362067011759983122572668781726447004841617479967930354180482921580803810553251928738216925593799182731249315929449023328479056913766433913072046366085320405551495303140027827746006203539940799727071901946697428045109674492350469868120635827420589499294284011016132962175164038626511861347957996805199602891767054629789790154643212005335703854705773007503330317243444931049244451648590441833313176852376582368420584962531637782605317115967167021255272380074314654088770016853876086515494993902236158823096512894423611884709319004104880693501589030116355309802969899528737888887510617114601575290848639109126071176127309723752154938588848890377570489518276970555129124385917847318698568543847735619073443072711334427803451882921115244073715320218206283704720437982950169419534352994433729259026644544709916355007378902065940693325235871042651110377617406376873136761961099635886802161580410739906882675165713944129476526603571293228039223896713165394390689467956177006799630913078600631968314777253632707771191914791653777267956892166496955063051586466291874875235739063713586776661002843149608309752748105806289503096368390635374787456481917178918921440483804675873435219396828991652895458835266203976340305844923872285262952160570605361908904071907174432498326033545848821185393774407179866659572298295770414366513285725690676371037809494776348255201360977440499762849928567425920600353459542533689626800867697837295986280020928705885422724304898900413541094849901929725610341412486699458016505389828244215404261582846259697908804195491328064835484809736220683437232123821376553902155418125894929433665145252825783205027657924891351681145555741018112760801093385933795186040139081099076660643773019700908728776011078213275268614981212385465423226250276643458792954313640564134629682871209028996441409061861508234090243507140106904569082059642984036908638981676808819510729902852271789307168899688835342691681341650603724697678447205506845306203300623066333708727335450882480664115779120189364363610253096482917461880974946205608528670149354205386815132233747043888532862446375167724410547189452359873960553303103954414395383071448614869847380347366015129389042168287973681056942348266053102778007237726484089587743067625796561055926797297435552549783278874790532137637441496297566539630289817484698227501717450724468301602864024388196861080841592106497620125038452358112693691108210004055797400348371362873343154086649258025834501018602426188911968486308152229672065911553421717773680636241749761328715238953068184414438543913801595617406828511326768836816552674491440607900513732359527977570250050741263273140759455441504355830116521784655442045853050776683576238590011815881194975948756244090023624777985455767227582312359328145910707267611139018952497413215156739007412025567119239161557019252010089975519459420160997417300495292849577777254026779610179141910461100280957500557592055906805329244074671808202186775948033343868252028322718495563130163284506240601190398933834372287225575089011680894925739330900175153239968691759321931425912952857865413427715164078360454794596521282672961513525311618164813421573275141737947180780769105475500410321831485523708761529686584934620656708255207087968440213611807356999369519951241554616032813550560739637025663300003886512403023254466783616714647435716307343193261246831523574233224916393796695034192705296412717169006136627461080922596282600950068083805850069896513193969213711100716068630797417095324355901151484020130551418725422093715304384439454823378477886098503883006780988470908132588217749605325449072159755405578416844175241576342483030747223769031762497779893928358743979780125246971270601712990481176849554465712202609412462343661758165287874877966645073247555462098013668343098635775836818602085777481062763467218252093817232022139290738868313414228200179524940638046894124482698332497667395666539982740085997557079130869984439326758892582196333983720333994910588509023637264319346141704977808723216431178906941622153392747648886010679424453432054927411329158134282432065976323918604369926356512481965596936663255730568407595018935648462218897345163097169462503912419247017114451650681706249062552076773275380502158644999308781226567366994018116102847474625609551510160164014017687032697627037327509924327549157487136583434222618697222381233139158185666460702326901050251723217705563343481962211687747767054108719785381140660279377489272148728267780307854466099124110461517586748756432777101378374480715596474178333004861370598375994283918270243576786406193095785827809009420218499564178082036991854026857647667933697964084634850317860918173303477762339954269978780241956171816916720452902282754113705046767080296581692304025499093627426802918286504927597446346978229696624082280737393217940926407195877601420919315197172231250454807145842090267407335838094939339247201147711419668854889400209629854757187487334048207777963007398903662812099734645476446031663477919473351446665453929384190908286347452142826620970438274121112666359184095881141822602381776100449164025284321543883743887064239946184560432649966259688062312568504084404472687873333998166981955334721582412610181307416211480255451757748221724010612529846041476370924741411256382760265763013343028507912075007614538023803977994402765453798352089618276985850357912056527699455165261165154755816049136018450121522505158028790103092652399817154645366566398079909057632287640039307381847817713422000174980274813632584121144182981843488958138641405180474799757831872349369168871505348520220927890829078610673166990727598666845941577197204579567889766496831916065832722160899941601248766543064787926687349613990064395878478226010458811746266436736085853274523661067940503149238104087767629739622968868708849396771336896624777727369614307990053881341393746623493029517781254729004079625904977262027337414591193108650073364056346384189900463121804911758614137296995169379939894230303160355636911377588806630094666273176966751751015544980256389897929055332673258282101161588403911189924693204043006619482005188549104009052166755928779542472565805084263356107687766476685162167495241691569384459484320754500934426189066025947097627380645099100798233319006589717016479736763655804199379988691250455483897603345391488196374838971652954783956470624760392251034957944793749459278560845530057408409101150434198551347309199737417763644473303079540196038465218065841387866824046919903765633632649240695457734306415858901806779096229775003070770122307432173006323023200263338849513554838708690898058791501827896269068266065662110630653135279106523614363738227593016345715290843782600323618288556405211709805688630806756798388532492930876846311308895388380205341767534370979991612529007107545950570484833956410785734968683501396583875151194450978982898587653181557458066328664462067908897174396305915816044185658438653113524889013214963046583673679152247208888151581431910864784967515104400346102023636090537900095141471588615636483403931633510191013006876186649913800676205116460811688028744638588264542604351244503113213299280125668975568294296663439149742419540774042807163236218379013930573831903030082282269013048220841343550815480230290823245677182791323044660028738107805330379874044816155348668760036584199135110132342732903544994971226034649423045488250695804347856518092382808369938537576902539521305584929517928839803692183073598122477509204733393419944794020510393347616252387551811865529932520935276957046549322176559475212422140494155281982872955456774415141761324117078015700539224672165520597154241191647045270244496139226770038242962287391957741390458827590526019717656491621907991722689338275423700778466314376760519345029095083226313017295275777501884764100142956253558590757086010875242835087749762384358188145998212832102925532414231772305077558582723761290698438101203295676957915258200174474638087624921522961506192105640734674675217135079565176054710347235638346713189138737108748110155123996795782287030326925822749241697189242812476939080833943299607468669411281550223750434176185180695160426075442358551991882739810498937390615761511741297485232239810982718620750685558165832691069997742979094268916457466179891740410125418406836561933206441798313560692690702286443215623545052581690798665601189664781865068879741541883372391559174241167642794006770823790589593780033334535347448095229079522944914680555477533154418995915362124109624325855209882658796171638900866421398495085508913147375054117598006642082307499350804440218628279162714816033837651888970047277127907012232476277081854149453891642054953847320423591085845802524024116360699614127753809412542498449382436470215701777453237001060700211053744845913342350682360968821687857079074164794517127337106859774875971432176458570388844800958145509596916250063771889441760568689979738343349344053926158251451063910163617504321238216440873984725276819365657931209192403244365424065506816180040009231509123343408133475280283259813879187173120241566120979273186133892873291194385036343255517011863847301779260416772973292655479402153940479020662381886656907280718560081731000550960621306422845781394779583838704398738732790184264342636013756933707961868403791700507745531443944908978339644793583059706089310651157968132334525186556095215332162888919113287261863431036499001153572188920079002905025860271855514631825048950422540056283288621507246099625868863290500324921396087457759476878953509090874382041101755403820957029076309456043140561953822028469639504837879823592212085271684725606268680478261638014298359443271893516312993091478940133938397824883961755343206555970351621853145781122822907392813944632825987577592790074691284471181708825345925738710753642492548243760231605048807653331857097723854870030652885984196320671923292176197452120763551723503426515539160673464541240318692483704186329840859935299758428595382109103663002169968844402379190666186389237628180632048145059162266968448353708137555349625253761223215400717195325651045913515633385178445772705975540527300600085650213450991952720626080581734995751249808331236954258149179823254452989565086935071165778501009021948999068684650939453669311136528206061024813901728990058217744850626034195680378466518292724917875306409515291233333979301563158031335531552266920116944975937751916759699832657517207249493958719911640159447285868212580310992885826612064891414294515622099403924654576116166872554805250861412477520798292427546194935705465574738864237461637627687255336295809050370466720262464415215706849163037996081443802838280718453414329564241012899122518706763148284820104928390444848734254997601191690113797066120779305379368470966136685837230976854145911952687523618609498443347504580219462968946264586718899379253223126089662700974698307610384074793310281564224304483395202828016836867141545908580438383597003750017014955417693325456566308260719958506505150167707669753736842305762593630598643615640381365234852216699494224190680254537798163006008777630858215295937747772252035495623641644734635276224215549756187095897861498682372434096318490995034674061757847742267582404771367886257208304165743549747190981367658274981516608843928949201009294679917554636572091067408233704317941029173339211468951157040235623467561041147762374506248130987843951739732420115723471443075232442852350996576669259599020586547850211400058034563246467859671470733526793960203762385951193470398101013825837546364742214189297143374856176209526050202406847105931636397989084898850309820786053949270870485329060710344027985859974048054916594298877302507410211320809860493534211551099063297791697097049540468199275160147759722446930980579944277401322618146873788591643308431317304735590298163727938637950114759007161229891810981197351693300961230252935092779119894161542841223979934345107191546925660041484966525374303396387438833243668695719944857570410769965127573292716104695927068218675090459402755129419758843974241637352772755508212229747355296742846146787113180813570485193203356366154641361709230632613708332738836881871109525275195955780672252089609454303192637521364915575045238730861082105040229021087775781012924842206860347954439537574508530113074296349475676091689708161887338821003282507594895927005085978141746136724607187843648222417222113268752649295622387899625652720210809969224121622834103129043863415716872376450892334484143256833062603177578686042594283943384238757534946060538567983467813972218395829557044119072916177011262749906553271266481730392197344746933274611583738453242550746648606711413414781941025479504094709383556821043909474254319118687338906058962362704992944134849398964135472427681722383119796117210717063958286166244149275060741494824512472382391811952065261417266566366659891478683105645580145228069068833091923474904327485410532664748910803937317165693454090200834544971484613296569799871218943087057973861518111039669212751618876742083535042908100604689660430807797593408348459139107321892327498778141485815203725693726157696006033732146009646769379460595199572686941313243129765234628465213929985127265356481612799553972031695141187709267089336428280805323136669391613483921563176990429303816309536090924367075637198669773375014600931333731682926793617009094620436018028328301564398680893324914534729383970361047119483481704789310899394331980731417562829353151076944202509901971694030892586399231305711686131248571922425988928442452636616553087114457078575568929170527898991124324300394934674680724714717978541771675375370376825950879586344401976301395973483848452152338124390408908975211123718053847323920746164627607781170242499049216578727923296534686845759461429897194449137754624655839582153961692429928761152621332585292499010978138660285821501949454457792678069531010204220756925670734040936460052244176819495618761950419642623021062224290439108304156939440738244900612317150869917836355654399203024022481102953680072082502890834714624297884795539186378266697576612146046015307598110453779376305928442581818589011168506829848503941858363269387854719459646053263460349002340750086190680618199961261239720376514349427248817280117008234565057977117222563934802156882794243920467226743591149106539008040102987492461922168898391778440330099466105826976539623006613823092290162783070198944451506429631613453529102819927215479570763822830691511761241069118624560806544535091655071449816601810679053940880754641016274895209316444849751158136022657762212240216141100563658053562248050816642129227841517763804338649814780365588724082138364978286681631055960119661514411744292738605557703546213341353031904048290739467742902668228565832784950109428827140795549792871631641838420615086070851506771258467256877822819698830059190615475567133114057578263628871023558900267628606729261612978534662912823531994252575071902676099730915769619419397570506765771828145820399185067965488393555831475079061794537458048288551819434684512401450175253112589384923529144926302859197933762814354005509878269261669673986941344441641951961297173048963358708458388026695170069874402117593960748531586985084127218698564802158181796145717151665640946795090762898468196031175838113083767625736400452598750139567346291390094554220808373245187139207685327158893790996338484401115146379156884037002804494582630142086563924880373033439775322228242239146019489717570809787903600057610050732627880097304259480857277980664510067192101851757947803535041725510585685342957366314740276536118635972922773473667484418773445271602474574626508321132031206634036146471481674821515209258352830035733722036628572465961971467442963274151323566702342523591721681451403221358449286332014925180479889525639898774707480524486733045132393009094661955676695628371957838114093854008758297870696826360906786586178309514461175456302277501935392182995861104530117885158335752903338138599872610756075066576612461304945520950932781914873097578478024179036670572992590229374574871371281320779091751190400320400659196657103469281032516037737777881682834612058852826848717600562990262751179235738031926221928949731884301942913049566521359373027966644243643709402496105815729546528464194191138153344583284000774198748979825669674623529430808231508178920463905896175163843251178378337502625821140767045556100238685459320911834004054727480802359984832028909374404239572881691313858774442803378226142664481747080573900221846146648287232104456682316191135101826086760275654702819610751830095836164387424205601151257868958105952652141056178690752262231197803377667213405503690072365070034923266895302971460421572392838491307142791212090054622746997823695110908368322727261172093720222108375076849158298385824202197550462714745251662723348906066889480833666718760568404040558904726634621888514668159321617020201495934642511535391457348423399544939658972176002821167250973274319856008364487760050324816392054809598692135619400668329463961885241056540164304579222242205407031369323379580195956622857691946973580915560795085305719090921166655087367450955009746543984251722350166198778039361930658150428761289817916450097953160638999972807547127128567263213643288507566517890832034316088595255081061395455017253083991263894841670249812338509701225484533795339481764280523667813762698945439610578029166154316749188324055328641287398615676825690910656261169598729357597660998854713982714881682925658515127174723028253839550837090918630667305211586090332685008633323336167326213018732778894071217233596608229121968508977400390495435307425916774435014514144584211409294377127283996258570843783425314409817884632350976064392786004272563286905568044509493574212665105995251859749796527058251569470088678326170181862654600868337138708179752320679112118994291191125545256923459232449388810044405137134407043057436397112772986825337314945455392831076307728777194037702543498107843117352324629515924372491559847637207884779135473111781303339232787441433911672504407221061256559339376918311273464803117981913038078661926344000920665486248240035723571259744517201402888179980217548469772431948166980069356043457123750395335745045241927965749923404778009025661118804130954367440172408123432850803148778888612932123529544163786385692124370804937256968059861864204351571640662190849119888351370226430966885330249031071928174453913694823495010209457818113186080090334591870286631938337682518344272016304399300114359039447274084556492017638850817857833921374159614795601242487834459344873575078817231567872681477026873718199634436091553645059495053298709823078316879230550583535484661143100435881129635691254353391330415742716601910057149381986019809598770534782474847004102754803725889985939227585124127937940638760100645165249261955020275422992424923904255553790636352669209370067358353069152461503550538960044240048992325809322233634838202227909045905488878813981391226816543496142855914022700907872686688316213187392035467911134795680611236993543280856097647245258113781929614555094310020938057544300810187681433343527460108786498129989410762641644665685627894709616964038453415487970635778564021274682207060315129468608972519559664218804980564758582520881092513668252838568606847290126884830653202607726361331821997836644200479221345402065684180328985465645686179831388186821196337674264238265450012448874432238237692285389971799398602281458210285434288011180080616868142693067754923911637945004052660629767308035730396243917348462342034280891852518993251039895057777205861628320593145072850328762652774327172685821652331727678589330994802496245831238618769799974521589170289365663020859665812104350496426076241690667479832148231544278985018869107144463843178119333421757692356832228463510593540850820225950366262411182542780860902939959771962951709942642554500104605980617658188979973144747656088035437967361561885884313869973660653490403454474920676023278214396587399851887955446655856977645669670135665418379783345406935132202901101381928233595299501494176423633389426053001780302851042315045587205860944454355574926631404314116819498780720855710750881801669856279658326503816528552901071544700528027689643876699331965745883342822400651858822488315446756997964300676926960609221992222607812281656573871654076366378953796073275528791649491445485509033275902543256025541440482046147709108536520894169619757799097340816585404788192748845231930076970469012063160260500910588793394550829473363625263751574030968695178862559625329339176004976173862994468492669084292007538518512798886247784764460001108889966077718210485945928345167704707115892519871641632940405362383597496452789791922721662791859508330792067345742489654572012241427617687118171390950552817214284844148879348853651110805993666487042334682188193841549506621029127015957500110228728352861516053809464745896419686540301514354646706545818651973276591022471146238737551685363440217765503622058973744623272083659343560722224034070201232242862974256244250772762325240872568333692302947353001159220344921860016489455021544412603248716187406381921293242474047645676244994451819225688019873338116833228444279520852163168585005787360597511289555278804922806937214935727537670909347642742365323721678913626861987606955283957410916608989409769493824139696403799009254144080034924268439051408076470667473753535086762579314849011936919746736813712933309119246096109506685511348624640919549717078758816844146281853458085411813781889105031098156142530048085876927840690826476754085354199491852608312781848012994677521352232964009698928600390687233954770297726928030078856622073238499249178132018524893780843181270332977149903557750421728817859703629391660613057835624946308651646565633475587752543345064226758795889127916086386622184235957074055613082589785610053838896058462701135279709633443572515656315341509794432167375687066880348273165979932602008327475691452969537867393658852775943164779035707197645145663024608279298350328022451467026312771224886837014562709647980529166939970295519276565669895504445935224297783361538037112578288413314894386145879685683322371394047373725521470575032928074919859522944863086668592142065633316481198333533033250298548045160478128574966979071724208563606412138318449315686418497223462079221981054250679675430261790755521621612931144908315384285212168536162014221473620291199550924107707994552116095422589061631389114201520792025654288999027951347193611863184416380207483579267688535845988365449021341471605610857786957354933286327664498928291111890848508020439770422038037486101933111661178635623078612977517415062519486311116576965647940730789210984893369138915185589295139630182084041216107790423781370839222644438658408642963686012035206179704511111985353409852199011771666781821218197677220779104923513106837627851187150693659438042928095596715823760620659155086393313783719762781844891133783878568509401970740603814137403248312282672876889809918232801188493855422539350560448994416113601646910274945843020275185202065705567908256642546482969672346402311128608022813772444569125624059727563731975225257792554923825174760348320045826886204463129854950950261328420362467693988228887051766104553481563226494766358145746321992042519901548892743076124708921148028783460877969406908340792796600370074109515122780889310476558846878098444503891689017955047459390936259180812497188694913871652342514256658011326760099825076320005156961665766173577525692208329675656273128158910825892226013097123362392632010254377778980452371442182228191398048184912591662230750302697707378183541197427978481049727770345750616139842986775607236486438707204244081022341082838389706056361463469954604594760631204910947995655693510779853851153885485305147687749170033132720548791117905298046185316476848623135640361613657535817460009651594859918998718221597292033070141794609026329573263425447348676420473218201683244008188711193450452382946157322312363667004440646082362443610359525887553495656733692033393043441872560604351494496486098066718649816003576289897615535261529303643415441100734228289496377266161765703706639240689690821416218993815474231451817560245633262215657364643282847931710855801186031577373901624123697458048892775898692688152680972084218154098246078704993843752177896534986015924714185686885063053571385669071549595241448738703617543063593419214116048928192372193933416459541528496744100325788945222305087766011981305019206307194132024386510800380678316800735310068062294619723305522304309001175421982542653137845203224124819468152426707276746508679721997205635431233174629849091230653998549202929517408078168918178455844987227083718422753934444576822474568898043931616887590242292130114744453573237863960701935196326626740680430723122633115974078483487941973792538185519610604641616039056288049722388659514025353265350685891983079392789468008447361569697087621387364395038914809615240343781270092497837083505574798205885408244010810072059554977115379998968188707820729830096445539470659476575870223464549319454876657961818036469600088972230283392914883713311970987388038858952552780765451334202767636752965705110357979769307674861329063196492610784774730237352300246077361023654542368095613376720737134791713370430803938881420964529103239803966189600665043981626535997016187583941600989352663238929317201290816121303333332530189238399000442218594061787557671868385118259404515414130769394498690750021598178138824970179853469459856337866027719544688390969103657607783391500514402385079057102310457106748138622755325542667060334934931862319145813154597189653128746384769318461493787777329818473882490750470125968982900809435498503436918638864897060010695466763482751258852035728727819421045599459354830282998124336771528744408456707787847711134356813719091036033529531081628087915552830132798075437961621570624251539750881980250424534265510180560965837789037220346412085583280881409099185136755971315882258107175937802692989897227852997777498674606024694572681253227559667148629361163629741110896746628412068028126212151721799550205372279094416811892444979142176093342938851496253230796244518242668433492081683923928675891858759872159435322982131152581582556973965424011709062296864840629377112833993370300755522763601174828176619979994329686277255961349837449046450341080252336031321840017809753018679092402529589518301749042711119489794722970802142733249577463740952222454215606608502764398635226932699551463872965837655458188132437544052220872500321898497186947336274553791872449091717414526496007419527639172356435272507474670818849194866342575371238100721351179261034320980668160830989914133403247202054627117346835956049446308138648213761649954157336623002815896104687164250577942009745594736464797817781056170677371002198182868183470607453736490461091133013468565304645355031780408137265654285230285859240420197670590521610262050878020654265277477181134912480141725805868017924222038010733526189641923544428682460173609912670123989930267976741911148080804036399602735535825530511435988358652994402605296854125489967818920270813990173920860503375106950054484281248352188060259169953868079133366762692400214062233586487578096485667622671820330359955157976444223052709865032459456173392249620660577538097619015069816046559759949892478820145105506201494959022689757133262346238657164472484697599461734594484597250361860736132932535600138637318506134385100017870055840512566189551317995465076568392115936645400153376052178386430043504645592507488939302488174195437480102553095425190011204898800887532165249323387870781635214210391693629330219328316388965033939277635746138543702611161001434324882508091937942416776220133553033662994992908448190108372999199292014002556403589810312702469047199202406145894824131120648741278411699817129815806726706820016437353665541650162844402030332654755717998148442784777236556702600160082154231844295409957571325872934827438509072966022772791552906461166507259824263802375833812065316729998181319001399147957403879576070864627053813997216661854949814200544302530913330575336584155863051061483700214459044335915684385202643402245535818510335797771873106563850885969934239414115974958121045093773588139113718692331711554584546149830239665543738981907918334840031520336479304903192075256090378559610950062646462430906074176904781651772269539829878624085802805902293527503983535350054434122783083380398787048993152533841432425946092441564247289628546679084381990898861524528716289969992921824755983471500871100236231043199162931893178116094892291674850934512854284019745127353576203803336998243653367516815794052676130188727903146136488492965172340093875823105711015973712316387639971866977035171166179654668330229439187619090816867362886997342738284785532620835566570974363581732560345882348413867316696346621117734813022349045387939327720245058721055409541012901803620141853040031204349865726644022296711878915564062356746825726877854374371190077658690033557625226287966287637531176626263873803138279509900102434073652810948405825207041269808920751239493883241133410625525091687688165529928974353267241788074865782266520648665155075503816942883047841309321985656180118749205700573974914387634158972847383037045742870153436894103855495513053161374858825132435262283243712650757277763842740953036098731898580727818680545366956942910785145329152236863436839247574192675783301413437073543649284535143518347271290966299192639923554798719463007292119913607844901658936154040184475795229912061237139103107184267583749393802990218518328272311480075238526481090223624777086769951589730604937970527838682746697002271794880771357332255331611976376460232484946752590528344103895228561570169805759988104536363170022776169353193947525512387425945314515937245924082098568969966103674452799628698054595252312765493657343989148853331932174294851495590299170609416911318454072515934407525685913147532438152801344458091764255102178333108819566338704410450903984514647153945976909616999596542603298229114540187396787499449117663561996616936026001925308995153670186512254646280017859603597653922171346851989615791833605400417653306458613067085707017723524578518473642801073642138882903631562599236954020795456684179018107416029532756548951846153670532083647886438282437304982168522857154007463743648198966152227859750166481025745517188595975190460639285259222011818299003492915400219408473079454721760740843577412398854543172282952012242398183605775583515528018853638585335410099602457587157610948184284350397294113724294871524510544558857640564747984134401286670927457893995694521423089552228238947712993719355104901199904902201512456094478454839224613548334232875786653938432847047862396482450843020814746600518953968911655137809179788928135821633516824589511089977811354595911229503803300117299726223831581315975554975768662267535772591212017475965675544763976623023598504086420303753561410751024138690167791409461224552441517949945859911555320879172515898632317193907732812228306279794009518299371670640098113751022685170645333619848292215756159793724695326013638606365001420466954282520535148656756577033815708160454160794722590087756416103652686537206114276323287472581603363434573537880683376352527945323465745030767485656736043968533576747049642245923352735626077951060582984951078625477356131661573699578223003171849289086548313641873775300372129286604765034009672017321224381332192553885438834815237127339355153923756597792303997648381420506397390402926361985484234186352281142640478821170398127690402424713570332246012799638667067439251290284870736906414561407194651590676639335554225338033245423523096021956572723530775666895838441682059301358210147316743364968236679529919714037053542920343139121090986854247676388312626886509152390566569391225833684500455448767432587272916762039479093639188082677616061763200660991222094882530560460634945226168496125078563609308278841637908597472624912100906218687797872480982265485156560676686065867291886657847158543420588197483592633700753330633058717478295856021938902741048847980208631582595784044327761308177160132924614808932099000280386911531709350495662000176969753225926266103118648172997061791755113158075982849965226154852260407439184557451658844592544602110704770552184109919996386386701972707473286560164676693324767597005742157397013515580214058615206270538240070767477441832969759478551410823036460625152535247525944669617843174218830847145803793085391806263648949071751050966427190585541176840328649342910995450784020763898434179024267564498498478151944775932137574415992102239253281661895344769478621444610001204082433865398871086878098850443866142668543099074641251992649727626385280700236306628258525920666934936041500365109660011202235134185452036107210157078536432642749931920400792064588325335528646036643001203496885262035629474227218151881373815057076082526446966039974611606808612894994293236815447353489842315842222442357527302343565150512995489993759688866601831542570602670822472555290772704071980611363704854427459793813323417264723097631001798371614038235319246859375145117492083882431552440361612364544693700539652346303045433314347502380019029980183316869178124872897818884231644221225410672420021953778319088621433665890263207178301604489709705312076490335633193647154162838544427579240712876359558159278879276620525814201039268136112783828555813325459448922389898578752301842265579137410336706060419457876247283761056320416244648917465642451519910100974647469701665836043530311305655101717274675576740837695745865363773504914520994055127894025924154518614967540493327505258340035312800123859354578359990050277177587833492169109321449316796849056182434147508150796124227393603498390071858687153881527861284874730340673703223869868130772949753046674499234087585667163897319016048440951163362269588136268456399739067401154086413428392394519118437575109037071551876157444415882232706936129901339604064870247370907125046805177023431074096446695220798507079070535985523073002340768650228515531053678133151951710747532668431614373630070730084471101312543166166569237517489327822917443979572418637982921842673650098128263972729398871816459680288644479826980684153086072582701925926762744225072566047093069561531035002387309411382919708082182762837427032596592815879643444026578639203562382727107883256607522551443062410520804387880746552880867870006136073617454502302424826651134766757908749488839178705415625798106727118401622095312819381897987687038081216283074022266519441037776442940300525397775004013497548122283279132979827573500759245159183406347511175168163471360276484998503526656165693203796373274342113484021493156183703262362499017642747406521087206703632307245624175862308874099002790316186524112156017213645761739327564771898373459103920981383375319492209526922333350627315334929969163986674862036658169155463938531164528199017206006890594501367771780333069108335134568653814640340543364983549886684780840653732900455848757845599073910941929713436919343728490573706045479903399350169674024939050461993205079415115613272287509632637634686382171050170487422168778139468607306417907046604422016915117741581921698520147487679227620476993323112509645126473331831174278573517805065125437112646162466451844034683725162792320171600423573855747681565139070805757582840703899180011795201172639609008217479149020122170471529969315580613354896081608425135562326181722665893501609493724423314066439276106142652001036084729054641549550953522635892823147198069968734081394523706624967910408175129775532092385254298802820958539701358992623518684440163701063916647914902788272263190950783519307938030134223096492492884251604987292902533519615208697782386867256964324514759435492291058846784489426483617252765675531626420053199539049624071608178476936426303338178467322503145781613930981119897837232277406001756311666904011471200332662300775314512750242310527008974475090456438430843994248943212967259676476517929669707219007637098047705109783100189285101682001148957334709758255017569297821468661595443956686759201434983987096071795209425990978569791941009093379241514104808005279134935225814609032767993538775146491859581131846208275524804127844547349949966292265216530982398774374666905833161339364940375728862262019569991508649819230283147610047957287517647064122534140839883363352670050760173818776399932333537404727663757898099211186826498844694540311681282432899389508666096966802425523849803331135380757398781600789215057545733650722855249912653325956517011237738098762956811458807658330868952439528294275484696376648928916444678197496105707129083417847858098841030704789076696483921593751247383276766312833518046188324971300164673563765443829267003120084948985658485965398996097880096669618274561999707864711226185021314690665723690865712271807220296144381918296843158507345479544001132649199162244159906980015111667361613157310141329403303072350291957017510970953519327397818404612992376953934428661577015466888619828221095453949634024889899014267491217885051141583652170261999604087478330704691377734794864995959085506106720952532404348839304268578575953682868425218553712682151752605542541963081637450182030863725398150254339220969868549226023120483996502939589609424506186049397409351753007587569788605852869846078697046028192569010526645501713526620033411718585628530721507160393903018038789576669049896411487484927780711953631637580277716325939901016356207181060169906902405225746148087004782902655310117310566184550887635517650108712491905960465294972910203373250768584950817178214770690751607904948702981435668313877856739921212342299525046321462361744563479487885107664872118845763260500056767365239641881102729335504429898520502636944476110251396492572407559137906187980941093618562337401135115263963260408821117368182109353658584711444869840493845113539375333281017582020558497070056659011030458014903810002525744397544836591315665760454266135691938139440227603495260817675602515716831016156941771808919401197713364525337704931588506924904585280257166048399933754624238502120662192826005503383611735707783878944264735488928833190247324790918836078719578762735980848279665821461322204552248681742493494513356864008240447602388695413752889871644468358591718185946481061647485153687210737236076346447584678832200059548273521122176486306574503431959478137615868187322109560045215983126173653934830157543727318897414518093587045370848207385869544826215195093028662988079605147573771963560745729476588421324058447279486553969819635673648730515617722055850577405002653312679971092922952915452693262303671441063362436881455107038375919094864238079501959393351708770757427374470851139409139545213670573167888412888985735370954585696002658951031220951433400835178109632852188390337835422055491943848104177363533417251644485949703902344157136335799331190887550955368828144618577556853542515631689091793064501915747095946901974036734570375415930527734884201412761335114601742092347355152871917380198288526481670642958479984492775587059707856660584736617728832797820757774067161593669267365612310346514007135793456923047548883276922398426505451069145763782248215949147940846729636250084523910214377280528215874571894555432925585007129957314940199504573178124231967890201930435081088402147044011482580642131916075609403014356640492286341714522323245545279995127614282542133320124309474046864920422847160013034751435830265077173086896358541525823037619952011545718769902820922077682885319945662516689550197851245836467650195308668243482221983739731783524184536896377975575548938346518931563696732458717273283636175324321407744469626016531384940989843683297900653903489579593245503435797754123437790394517004081898755916671070063493338774060656620534059110265316863150528501428477206790618553795955809268987232586180994311314743674459853905973122294299201534053635285265409054615573365963835626142302545016705613221248316617457499900825409081069094249144345044361509273066212537838246462893367511609427827436035169520339165981000690644681653709436586439710877719447007159734616391769247982171073174543493782052353224782953487373065200956248584947756854955910828083778708810042874586839912065176969350509472309309442833958932087143984227980056540690052703876747968012885673080038665760522250212309630646690089413150833277736362467025444287514543930182723422617239576528890011945644178165369686699984504064578968686813572539706413863104828944981644989531737418502602194343360216970951956488198212239300712388846676198217096497418690496572336573251267346264763800494061204343692418089145899457444947530566937966613313210171468645567786753176829622018451339818952652475320465540859157190766375909310138231465210886795393720057540871328994891963931188576347143855464260509242030371024355249937541301921020088356632455751407216159198615042862667748402859097683227702888830531940654080602207951420471705690196946706292203612952458180357575736573881567466019320282705813036001999040097451686047435630926669543126280886047066571802169297220793185087714534337432601758324885944474330215869863769269235766770109126535429623072123190677536615078684708508478231596605680990501038675436198870747954118709943383085466776977119399473364255366441241437493139322178329477687605254799886421669966740773626806529185446458246015859779351332577019100829432168156184569913831144050023365025875936926133904065683129422705148537401798582139273817049302389783425344886190412864731989932575943725366950606338855201831298391146311986666101744493449876029646632979734775611561000362154664019939840991342904680860623551750854772184972935375283282958078189520948288003176012716702946463709119817501775572765905362199427875060833988546266388409445019415494936606573313665388563790326961327645990841824262128204569215646766633020241486774438062220078802603535544559534153977796986830328956225567141456271311839162744073406878993804474564722967127032591447989533273536430402536457101538126384359092366974286201223919774592894918755533723064463763620208560359685054389758438829492461749127621959545210532803427531769760806450892404774157901825102654561485316362430359081072930369366581790874099811292304906531563179518362187367797346480051968706217599724097157239348583925770783533893526308320602438129836175608591722126473118993793470528097520730058453869774550478601768443231964260130051731411124691014410493809720581641950719564124827944958695071778935124089999097428032299034098899517226572676753682424860879222897401741644414446234215514163346873809553166508055575096383994168014729600835158918346715739356914359704932080537842195243698650387570210431829627618034960076112997111711217613977826280828230503864842339393314606354542087300095772694091383499897894223772602761079160312714678289633295994257707546878992415103643772041147516486279911247626813376194635746589120603674739493505542139955664914458840213763667016139625283273126527831930527205106132409453760126198228181379181667088763984939946480291512227744442468064745412668599690269293169227980372683159190748117687408563732158378470969065356291576028072841861926462845089159429566211746167870035930418535739358306567505965614407058808178386469729639425789801670975827185740106145681421525054898620447346944536336733629960174695580010080502415184739603845929585264558138648322867550372248467578951023393698120356655795061375149833015820402297973491389697094271127351064289699595745136673031557248345881354384668386308667506234925203073679979887287025800177849128780452266501812489765904096799306208421565342654872664591247686778981883175703840690870142675152194740111032280848863282218699978952192290863858697139942196705907703645363079069126326096087257953594411335342570891996222909466762563095442495238643942900238666789871799737550200035466038670672356823654482228032475114116981333044123601184352985564350782428682564587146743103929270186379379261406503860473800478559884941232286830693678087606216191726857218475421032432256350369192401997821482868647553816407098566780289310531929559462150322981122694371125818972312852386761080103040729035446027884824036087214254559233833191501519876575484648264018614708259199526554978132724535153517623966443991994288314484582072672116640196042118883334519215701204844405202533495895179060113683606522819826533256554111386611075541205220198018809582839270329763092324169351336895992585331225139102015494891465276459042611681554164932091760439146587677036701926834314956374897408864795815576343405339839034044657062050759655833999908358322412335464244711840528293752550932733779755793444861894255060652575112814268411801334243871531926664367074575867451420486380664170038538941587197754290211893921357393100164523465967316980731192378399032098464850049598688397914115789806530345166741673765643806866480269425653255440666107387866877262867975352102140737293439706041958367706912204516909469204539750645930422738076986556310069652262926489555585791068602794432741131720340962652071061058082986586287189226195872306236360193971229523689929345452638846517215779797539585529257927442105499835468906475909529930169249639301071431595324522352835678901610166087380578145500233693285786886083748872351504610226448133145182422366464362105497208212838283430665157990962377868468461026077585362757925627291430973797953896042349986404540119278076704126929189879432118498868640260694413475023480050251699485500300161574568505863252047966625348747294253550637201538854360268031761473065309725733666290870715554924677835541547784355422328948665615712482497169392454165157165824538896794887390556965310676748276379793747746330593764128952218036194212390044084035584825692026832845463768481748872776114157212674107486300002148530600527248753240060676155170480368428732581393741179744856016674764838274321631579713539106063774063973041029734556200553787306774346161094940243066370763136714123033571572662872625548644047081568702698772973992295764291399124320701389974723037686116311902328516327566021212276366362390932877145259005907034285940766082739971895880734425054449785118903399363334473698802785628814708322656646246738169897038982397588749471464330914012454976670114526230252218363229395905327458720871583900063302523764690264397906133700984071619779150290678462245851538028423619415087636117021671398432580844539186407469088124423998742036915801517108841897573328225178307758114999364526691769358637492564969841344567435640372330970714314893169283706091754871427049978037328380874058198297045464589537644695410640289202482728204830683045817811599415574845210234152135049659642958867785765144492337446312332748376203174980332188622332000591884922478197417230674162282781208419843052488955536827356162358101839742258656208623422133419584927741435601320511130658680161501701794063626436222423262479914701603057169481431787411985144584428327823203661152170327027716297437792391202264262307896842966038411139074348227783245656256888268211717021981969593838709450808748023028361291691354072987950160176849205840791282900346268362701180653668829749210272610024747040737156300535406158239063117844415715404265735748247916517505633286539308463920600156104444323627685096182276394899761965206207300144810005687046622829613275754820768567704858534084772808728164748619354590517825312767395811079710459272202797889121993696774313634958268910650954128175537796763609598751297217600137258895515699058269177175382342364780672955940953180036913760117511351713938352936034018782772116281452435302988471841777542464978507259516305568152926435431250679798959033150116101504414429372885036128901353252618182057853579817110098560518328115618490289050867981996371747721918611402892097651969091713081538199420998986557440995409796917421680705650702649887630992439765363111622230965392098439841540325586797907687614593762553440002698710455431521241776387903825604556797796633369730687301302091239602290229347316509034341464165701595773561612796519062193785183683154134667524212160240722283287515473658188127773025813139099327709063715480663117099412564614618894977829093178503628743146667246203230053075077572995254788541155538987261470742524451492069157439432433876016050632303307281147061659504111321642184515468355796050707566737691894242747459905771380035981086614045164300629911756213027284573632770468856831590468892774718211475594548284238127314094923590512448312669514292456268984907249274701714752037147387404656357254752332116126271469491971350093670474899195072225817307720472615769734869197527993731824102600327727412110517882645354988412898913131566523386348204931901244767719735728423567437442192388662585100045663882729554526861855225463714728477290993257020060193569796172185362948834213562877618238138839260714002093777049041451398987339687979500785685774967934962688568482592172199545177773247527143703608714519026958427804663686561712818107889555507917245522941276063646457824903985666389161862275965583925630591484519002092613906324662335982228204488773857886512065678722125508520771280918146667112276047244642644798986097465670154141576025269521446515340961183279739404565424363101120373345749994463031384092976088237007245839167792436167562676852379056219256660113590705231204533980349841068920659284722890452754573141766091133307318408548552623942620602390165090039304986369911712070490919797533427380127136721903459604768764843171795856040689696144180369621695535059695205150328652599896331386951147555872316525482691838971020940543152167901572739865117883553920943026172709689790549588731862489282103718842126036167325613294368859868326787760244070171007596216255757732061658125578478089006650820118780670999361847433539148964604763725268213317918428286602117616655861853368888738645324609593893321047839834608214476316487522066578584016540696827767069021246017008490132386087208280774103476247056591637250544188307658902835495820161181769935035917685860576224469635336802863137727342134114538113407972050879657571503727832934432970448751802017996089343121890767789055574555567060983204663048758451468379018533699085843104797557495393861727254580740337347357869877844701316389295750641405436644861833954602920265805244445372689021682748329543577319878015394313236033494563928427284721985007245456019602510834123534639759620572292763873392749226727701665788333368903362943724415913492010815825046133286381865215496521837026704072396096585152920990090905829210362772659185459953633945820902050930591159808539178834969135508260266900234617409728123672264033956047878878556370498530292977270033213704856449513081958487748096022139253025573908602333273140852250044323661150414155334947492252573562511571291451633462567748856010222914338771410111596749275375634390002832982997712901087414630481260029611003623065089943765756549161007010477492742743741959162201061610024230207277782146221179102026246872975865204973057231372580492935082767496402320478866981763316485890609799800248992081328991795076590972189236768602505362892168993270047732316102407335153375790204484550027736702974324900704445582142674041772141716245190283965854741475757774889774475700928222167719996366419092002503065664646077244360892347191742663220812923997505763831371436875481408843686625550060751135602788816032178397550275144870074142947059019496239446219952063539474741428669963073353813863153100353975878275788146921264528971299892355935351022838854226728942234583180215412951157356147502320908299003680368694867993417241675739576197513726224591839259240806966793962776556921953834558106576169007804963397271731016178429571087146507054188954632060595546716493467300677597032346565447273570527610843323254151477523005382204302030743072619658714998056339994965809881492416921838465146419959205136497752684952325105857005755432057865021834663047718447149162297416502765351138637520815036379930067016735453934289274965103475154177265357702046847294239411095351296296702934463109502458689869441219727352980542412749349180978783418179649203586002666240694312910949889382023105987002488739313226127897760333760830650814021726532033872188725397077134257169490685526850433641328266589546511389850316992368418559379390214954606137871970659753079286447296874577126990512679589494503364227660547049588415392974767191110465778785146881005859545015346114100617300264361651136456670466031543560412776581061133006543827454512545978034938916566708556158327014265585719578712073224348357408660194510201843911321261341546770659973213784016481978045433723996357894330925333251603356795492423463603241815714919955576108405818580137342545376681809475469063475163808618266309417421218932970630746237486700825239556313103255576100871935856668352488721336350867529646778224704990467815984564438780569242922556667046677212518518597970325893737082324965101592831385820943654488011195957208044447634050575451195408599700424654984830352091043065106323880180134727034516539198300077303469430915820801167481807692479365174095890146798856978328098478019861589148087239929596238889564210950352090431294581249598133356467730160343194797503988002190081179345507038939141123427868786859157424552852739019050120816737426288334361807162164755481572734628299676442308679206746655537417498180720705081650039424525648980364668317427517747994011251822861576606825006115664367476161071117438802874727974182722303329430675288689684149582832700990577912488356305979918448448798080360945686393941234328366087677180582374207295939501323325526496088571507396147813271775631356318938598536603845110644209244920099291903853800679520691154985630943571632082390366865523363312439156274083637926456273996518654128127183455298119419998377583739360193007746417419676760751866845951750495395669144526229068121885979122031226006565540534270316368833521947691683195721562869531666680562142628760549413327864366461375750081434644778546403169986193762476128176777123704212778008103022311382733649629850839514692392807468980605902876741418016729000862532998581001606755562198787725268102158737872741197076596315904799336191465993796574884466343217436870480689394752560117730407067445225112356586340500896063510391698486477884315817605254251260417923278579975446096698683964694238693038370307682151249178240160521930886423872723324028872505976900887510261653961289140509419435677651078398824314017006912814756081618538883992664925920385791508895792349500737794318633494039777098754781518338595747862747072294822830214978570990119113551731363422571925237768644273987592364989358190168907695484100464897397782302814570400356303268613570041465333085242028282488492199477218561080831471439956084710057341994028127016986029001211521531776900741140938625967038128135061948432812085520111278237733572297145857202091387383725293644050938941962879517884999626297926140182617863853631982397897291812002026021130980156322651914055602659231823544882502006094329544551238467923748576121736147717779097672158268691251816992872731342727192185344920110384224513031083594901199671454612154152402146091765295672789831434559008572264144154133660752195731829256381315527034979850047130172038665631519217472331652062371143773545346801766342132270809696928167258802455165644664734757539682221570668060183088944864648689679002900562866534707449833826417369686548088253126045683093074548633899600494049213131860200436160410589553674065926578279467295230019056049571972950360236307819529993408998906404881275047960046463287321644506750009204598796201930644904238209558975087851524810892769240096379813505207797577564137263705598369665660995169579562879991466902600509344421602245581405590537623647630767126351259384488970182619250395934466186011884990028996375582606972741976967647348024603879243607851055903929912046108769533626766727915651855984898403144851701937887805839854278990128663692937947644783037027227307655469880167801911074898845145780841759776822500888570919112929853503605558672015833205756958915412680904482456925904911156408963595832796972820463709742865774855254204060126957467309988559052119333218303350702311440817015650956079538493045344364834450600634245873622614391858417920103708311024813804166828435748392805461706794266543541602035566897204803901291867696700762972190789351174250470675110523864834151738141079467802432644161697509665797943457887439828070307488244672343999735827707351774008817654273967302311078894764304429870415141112431881350810048076775862851872574889484326592024824428987209790418477172729524553659897074264386483056106076028331233984608777345620068327594784708372897114796766705444668804413410430567294758997898640244031680617903739881387219447277427686073783426689309601350054315231096334925469830167561799965560885782068293944775078225303025762944649488705998448023815060194062300664605503137505633222952780308273513355606908769409290216521456651988573353111424411554681167684863493554736954422146255965904252103333239650114870876341257948646817901350556332043886896094637222971198351000618114246011744935349079160341171916429818051104338373549992656254926470764945013761388725078445406100040924362860746614128972725914245363490876595427833097465849970989276697559625246202751235186738922295179976446944505005268221812864644197597452341977502079107282965900367706438009982549821465468596772892714636324792822067431398010069098222181745771834699316732787389771939558407494762957614870395707868370531381065102229928187356881537816589053435570431547559343529990953222698892682168606404880275702487840587276571709135614652363593344308870640498455636780306003765494131081154012160209388930122506279708362448310760494755904130026614696524322839978259501793552157760707882574426429695408470603423988275979389026553046847287939319145460244035866731794993367182209014531872393504599969391628833846618793435444489453266397958387709102224867825833221091002144349998360769775373152168803139291631815300268655852307002729233665395250499359202465235955023473808526370903653003360028793355535694744836277221199251309001549737750473094613373631613472480691356317340826453975168655415475417502115598392940189071616418022635248622886823778614409378491857029575726499755356077419156322368663575058608682648887709394608860501453651915791957527374238269343325135715647456752674560839310740983179596047112840123708618922458658019847859813091703987650112060479489207604492444599296876432462313054346536179308395040958935513603911768691977820912339556393442007126948580333685035694246643504381747484584552284945541731562005843976597059818010911856166260624813850552215396457584206557537197997691049678327348308539515288495274881365847461637283633340070830861217898939089563494748108788061540245041347948680225118616281724322199641650374530558757893240460487515648514183006219741029938105769481833145543849821582676923435899059154468753541372105273270069799380773303010230682086038417224898934941516392247872987892249941928825534752447281813404890440211057376545534020406528889827014841347742920870604449129194448116000792057917189349137899401434821850783177493369303510242482319345412968369553498567956627661490930792653391217987478192104429346005031402809188224414187771262723349398929241788524661655821199185986384906014800650053863795096096510330836774193071202276297560690985849445680423730502542445240188999476155118709423898391348636774039369480174770081860659973457269054820078588897625521485066931405501204861061032633232843261174759198578554214116153118686452463699311511582808347398426045642766948974243604665419794860105790530856533472427984770450025642681515258450518777487073949486365344750667712884582442754315726651004744108247172600259379747701609182901890917952350742460141111629989515164171213575610962607277536234691870765497747565839225251163842987407415561408367264210649303134748987349504243921299992451449524350794433701679974040609678701298494109115862437707656813965065224684696629810879558020229762556163526613763569454003846519358996621155512077545381108439227711100383122299267458651768333905034812041403094399195075199515357151974580378971377745220175351595788007471710652742706417951923027371326134966591444334808115995446635118621949712849470638713112376560855200925988816888766427204084370334002334052450801263549355826107095186807148017656779171462468767304485999773873880449963719421711094117628565973331828607450434939557045899284217016811407244354089158943665271186234203760915282948638671812081762240894485042820629809398492194272083485961588514770500106342968107193702460038408247383978321352860139344950808046959653639853941905858913168258582884100670725100108878774993616654479480132466672008968679669580058524734498117468812160542620882229873851339826578981325728330336380069499035108889651314040028989370992158715693461157288019650073506283366415021467711773076936716021974551527401667180096851344399401954484608076750632600297881200439224809928438337512310699268162692194440391368747478657892458294383882005035126620672605407864248196486158604646214960750073375165488677960305213709011927565355020447223011090285267285108766698198067362457570188616549906630968629326677620292664299374124678410227448376442446316727641790863174990200691929508290829620132260331855399703460830846477510787791766315169572820887506467122098364310329181342922009041821063871087895054300615662952751166212998658966125984839609925496551397684165736143164534892843280534061916723640681386015557984160539104756183992615875015226327704570168684474598027082208768240507719429440438800827890243055796004789056487451132269461334431315889584205267620740748826324526971119731453650158435176970463272524263972802068007476639147113105847157446362099921541028105980384976953393063283624951403231257364429674861000599372271790870308058951138000087178086842147311625951291124311077865001479152437606914442728785425958049760440457848015933304598491421195634478855713649932573638118821372725891667864794007883018916028134246397149269928585749278294012466649744805453298094453730562553497588195325127576456540407837268210310763356437566435817594922812228733819253219150203584412172101465517898187452692500992498191538029567621990005746070042958938494744902871059522270988068238216013936707121195476691531112357897725428616888544455644352168077796163985997562851630732830964942534305724567578071133239481065684671065594352882181555488646024587093044192930884115069932176507995964753501080219779746724455652217649843318251893758991391974231719116813328528389318238120015291155863447403759005228088482764989867613229645854067438250189848205759508994040851435246185945701365104018751862195631571746137050611903556167329551547254922688549239964475638696694158618593182878191019539047151757506078870069508523947544914697433012126575395222229939473240212937163140442533832143133362166203778374532741668255876613900271238541554509724392871687474643763048500563248172695292779498032773991891912577656769708212120317830007443104868133952197957612840476963868849761691112610310781813336392447651649423688631380638533299757907431022311865349776683856805729067902652978671946361927878759545895937542702575621399950012129473552638006878453057227234438581515220961936049050122353242391367929096356633494981704860724487835027003457400475737030676568195139541743529492763919721803363285005320558471407972388472987335031348037036687415757010740386260603354983972074218110854625585899855099836759830267762151147593305871813130094629418337918377762897992074245383880448725809094357334916835645345980964800059705651637516912218957861828603603881698537632534031551362702476353809367621615827033595639559863230537189306920533056248934329228279170704801796336193300225825494024438330207483843282842474608315984271778735243483059294999224440190097822976517240647379564332360573256776699531693000576687096420453291369666994383564111741509312447009946925963718710569922678382184227064293979336978137059893709626777735952704284502042533400031891937040282035966906245253500755072192932021868112351381837891643715084042152428457529990379008849375376181863728440845254048839515690370679154864769206797572978041098055344765036948615287210980185713467037057919997318703216339770712781226388149779862207469465254010741451559187847513816524210571584121015268257763788031907799353949426911867992784435677412366622292712167562251684034310084294515777913510829628715958350640375737673770600952939653141071531916705003867467699519407102867761831944374146463908721619237984836595186836929603785203852657676350788133068598643364346640082074173984870605647153009568862775464212800125680089139118241364456602933052015732389059749829036745959102232102224866205496800276367485077561069095176308353838412701227734665978392936372575133493864735825750100311137070517965928510466992428471937782063257695280382991206252011065671021100845266807722661115733967341734357202361430671017717843572721175476142695635270136145722283758398909425732154792640353588666431894504615311359111710502358998593956590384735247640882095644898846831653341580387420842365796568582656031428158668517665071568392239089873602776305962078132416056935881026835136405290965672387761096262483894292732198459985775350670436246082214547042582458196987667539995102027632910477115924362670369883939856764490527729610446057908396888170770512181176666708576627280818551449673552395353289008042227981913953000263479223671937353126374591916453802724097510032529556552791565534542724720531079900516324158283440355297217182732710221482952523060661339471396009188042981407844771687942496226386655434762162859172999821725281715677646447202592159981915828597940360973030310160275655518367418771740823353305472947523783208767040709386953090234711382298996788261762838589725895608819969111954115380161376970594105220926884751264159821327946033758116489058607217505298414770094547659412057689506920236595125229000707732194769312556402374137610083969062514849745613858288956851131245929116628565807328790162741118542873548019394884398812968618854739141541223206375333969445025070228915746124989743713219872494223349121482566612127955473432742030360210847477840313151188748348524024814985019724135030479733235524059125023508285921770306705397513429958841458365116180861860957267575547262797641890170422433869603381527393628417303484517456645757290479012083081528962418513507648895363061340972150888809246699957687336586762290591305413572224366572438190460209263469161867891211339887460647083845418755915091730290536726200945886886229061290236875351312732136995947940204779283545327718759797326072802631197938898200652544066104181361321557887096992312003072878702971859363127385914338138115980230619617511720254529458934763887879403394212593387795158256598102005393859088665160428420307351165096719801248766916622454246989033918020674485611319090517735736607367677999947782582225185839638104778963034831419274748957468183818770260692042253376771567087690598584007160201131838493674628432362529998630482391789695977820251569088170901628075792721724882703320457746529909284039044382628088058959823601918155505599579124781073275031021085352670306002213158039994932535667745357511172171262820199814862714306603512654412652067632137284990914525196825318286083871663674973093008590250973767896921344633580422755269289051029679160893461844175628835091595570630948219918507022863488064858932502523894314826317317999729786709619665172360212454713349089628906922045367310825285638381213336569853067187654665374399266272491297407531151644626821176403812646660386911145552990195860555876985014772214070529834019659885882030186463241899314438870576641757418260283493390049174754024603009058529243593896238892872923552930958446960953457830625734014868579837566440747743524124574315899491296279674109969586324274163189788669836892797373116932855808307575272813477737784304966721811163689558049263839413019444694993856549879637565588041217767825520416115873971454228058118617456295400116471918552710048078679461210423918086192990899703462273380966397104824619230557123507693569037190486367663616587363991479357896170305001606397102693372287022476276411389236623170659319522387843880077407627240299509017170015390706031752235441227711920882358686421315541204581267294550327712602649339446977327321950516976510635210855507856824911923638106957881960500241988244578171460300923034242567135376547345388542184360392529013013169763541584258237386344741299719107355447847366796985352885306357070367658300610323362348631965276525219207207580504349360565824509132188816204323845466445813826850013515810186173880081927739142474629618610588358214006662885254513054590716754184763592984707877683483750167009255837657341646992201153055165819084320759612767997837821888237379056948783771803966063450885504295438958217206050817569389783223973783643660570916436690105679528082362005302009797030344502333548861851151721635564068989913536436940658940768814129523814389398351666237324462278250083254835760515554288024260382080268666844343933740194177269820441755650847610570507536477461431483183562025999940066959957891711389843468174658631957598456660732754855196936561825059169222594027499476950279195409336495016246182790816886044759025343709180047412227246294082012767109686156329459216385901107090334544376598907357357133497264474953029510451855438461284026911353743421342060414299811729851797876816796696392352707674666230888939402463592169804290246455264278197103184563118718286975642263648448112781326218905376551985453314861469336175812775752289017478800506881316226594939331247315582149369340816001278644276657763636382390474693670470688651402653190251429873721421971765600274907040010923211090940145221635984271571499584930790619598481344031221757889497288593358720187417771248434277771098228889503007036170443735453919909693200392318493322630745774769459923920428883952605585380164715571100389096715779171966028980109625554902326366078594713747554937501612835899348708321963108660227867385548325028729232083157090911682566618471164940807903390064894874844228393691028856761547945752010986358550641432920122718060106130047072512819047275273236094023514674841653558851513519093191683917305564359964015014879517524982605859698786257745395830149472763974543482295582499007483179123896932692622234966004462421365103952360327501350337289533896688842821677483154350313697183512406834854779235770314994401377967607273395790084319329879182218280790113777397450167770667778899201673496629236722031311090180776065724915021440867611633769216424100681031969758003791365405053648538252394417352935140915583191819161581295572719493613926576898584033410843384160989380183662007241380626765837150582779267136291113902830376869532469711670138834689904526289552874276439235361440356546625564985713012161181796786441303474388699368674171775819835992520920602623201922624926283957502223369035382374146870868568020385778791773218456613306169328729397814079269001956864341729350512570112026328324099573520322511983664559610151277700318282561989583109359961857095193265388875039395254078538584798168814827550189301199522008868748699727975315712315139901429460515871030343951276687940060010096681617689558393217201255480164644909060424752184846373727026928060998896536510353211426935370153216639020350407136458826142967848836826061712769654903493474734608067962621811995550966941711082179226123849810268109337184359855167481019130396962319196489882621398690672437855966030185839637134211625957446077428739165036333565990376796444105910290325160347808098206936820480881641014561189244086570336084507737228394319810818693668410146448076134973254384828244898478981427058953754443055620897457451440649462937473017694050027730640386223646922564891672968588602177429737757953609180153378280924835402496843246775122445727507150265348975753355082826075094487675233702244112981408340879785169368426769932836988079809425437630423245689585175817705454637501445378074099536380776753658101590951405332258308534634960276581038257961018048400600329347319602508599278924444396164779060450421644688409062421476805782256872458906830098427001424138113222627838410439420569020092928629560625706316237826652099604765920498283030268393135946092664868854682999339246867192758077610974367082563641222663782201573306903316524566759885868512438959540557927337419869406701093656054160621022197955437432337600840651705250269215407594461337475106281021041962968376335805039385574790844649367635010856038978369409727612945822033261202297497987956523139920907825524054025182796257027448737088087682538159095585267436611820142587889472474994058918054478963052950242085914600141185096837066861548226327577048792847810970227265753584228210781227704344674565521803411703459112355317542589805802604445664322053605026391967732619082404824170401998722221634025848589915309524739103990355694845993580856884132340798452562804836422270974705492125557839769681496561471780371561742954392684331573695855717642635670855807666046257379857423552759675615711142219614529304438807130248077398235278975547474589106691724970578668943279093838457939270836314842267651284655409186645049181331084815244672286988030061514713061716631729411904584346555315047617725486322677422086746450832273448628595156290947328925060838854546878697260786536642665868860674341961184745327552003373669430383990001989362750637170365343711169498575640825277557921852841970857359959062828658150813818178368528936273232971303444062328693285035117052586994020605200490760680887724923146104920065712196210226192736173758199181926136024456559981534654516758152035748987242126797505091854965710078600632664864411927107646179797436829000393206054224881968066630311411657436604987142020389783729188188149642547931600783456057670500784491235210074432924073832986575544127585306190758223481856095666437641435558086968848534072058719468450136836901002986592243419032577965598296842095224250850208450731185009289119311121470659872442048125342986385559829510097681167786334388670649375837062430107319915792531563255903445757167748163754841797888439555129061560909688097617443533911108049490624386554377731215506866300150741392723671826137385909976350924081617586476076943198907400251137640942115685692806357392383999301867018371971473693954550044329601981285909692285210854877268425727870440272777474314576791183388026954749213864973123893124370469252427959104986939944631810356305690029237507848852014933640084953221426303111436285279123728193013677959625898625498373787122042378504128516672443789942564261944409472592467938631485273901426737400424173039900178291604247619707636060964338086926009562264756300162276539781810866667323329490485616116140246024505722982959422948520201745673197842690274415946848666532080685555604213543332579683171592819670739448231099329176338331234117078564558934841678006267860794693339847149315693472028113538345271266882112041539290996252222736227426679871066938925709574458394149961772090983669598826709221920474979405599706751771520333328726967547464282443282525519706504350151714547791796601360560947923710785579002567521515704264645909646950507296447581560943407912765342448963779642520443412367089216284448720546850209208044337722607482289650213710337204701708245733840148260133563908880437695411694138038947484811590085814157140488753846358762254193739511022134010559579801472648503124295458248154167667973231433547625822281007806781824913689689539199674030639223156841175498633552561007226771420013512163457457767017921937101147650829992248340768525309209947514562612207069896158203835239018495598343011823086543234247233461772751489139595749623981234856782374747711808034700831319814121924412853172538385060944008587769981296865711142447199505332086486680805359283769072004465326563165543733400744880054243671386400328271192848712548638041700808769365259083973566906653548931261491080338791741224904868392675121990193951104499066155512927898856713872527285570511428047473547308662627467620095506285587803801059553214536270881123566099991760558085872591704644508017860491479652508718276035174434745290651678132684174646861368905139934548501265518675672626667827428396209830807592079182732766857911534585540178939655775850837650307022798709476977283264214669170118474281784294719820619981387407095990754748664767538479316389529784701898666114513792951297794320921143784578326234149022444461401337889219761884233066212230498194840549999041026972825426103068540992411936476011189359601479440016848872220419939553453716174896776920666392442851692987544949003315512639277510042223701004067752568304378819470566405044966950317116723373604996382536287757236066276921187770426151605652833790503395998106200986798746591624682302275061122035079679550042329663390182667152835531781334302802830674286384366261542367449681744899567876170230393995366005094624006079022588247713039284524410143707392679421808163245707274299954010853834398279666071886177111779315184565082457774248985018593466108637512623039450657671394263635483777124703310543220314704805283109300202056966906085127768050801488023322277119178206372156688834739917342827848588226488355756531756926565671623544136914176444256611879391522356446316466446414028058482168369648724990221161762684261121289768276120474164978616209852975521117881624653207191079125114697749580491105329250799388690392430284692443691024764669180832604093879976596689276030885361482063087229890651803501908847222354894990945330461233576359743947775571125365081221330171008752840027902987212120963069093317292725235302421916118419487039062695450005901696869822274262684309598799341944334747806953128065906879830126481077788192130979684565978968975353712407010073157520974088191396804622555303833958728669800167064905549928500274048556464693195903283452489778455073539363484326343051615162872587912939091876233011339645035537085383648975776292762871549516329298583428191083157594072392431654927778009013578304847635054645730588934231350179636280486293375654912237974862603423320186059891447822196159017142150038752503117472303049178132134060072894563000492416712517511092244745096687762312636428134699954372884405768709679331787098808109260294016316018662220439869577625716026200348845676694778592187040304605411393249099187827264876104958151580757072414380567885405612145666057963094950242223197681072301299193983347001600884763217701735281885052484993995336595851665427675183591644432492605982017441858417775551766351383279478105290792874988431378285201795761008315507712522443969409087935709737057306952167461694378960557874807430546513732755629638128886065274902662092253600714524133359426622283181003599908333355720359033374617386789391244131659024439174003546682980348026088729765752122842068812895303872221748541666338271655751569880171289462634759237013538672046289188320074516716229932918585743343611148867315174933796846489575588536589494172022904656365524973453288988751613777802139493801463613920076954907841788329513562538944977551296390626248080049468288831311990047237309111805462063832079074485295428495492414190789943830186088144200759983222600140423246379069381909936028474115824528052759686572398920949757667971715732293848878531310328432802526215338769248006578848895343871880109688865681178276834936038350109573523504745906713145736731892549600104537239441209572371775755594986174982811423474617411223903080290358412387900510341346312838797321199785202263714329113404160705696374152054885738478861981486302760755813119530433587809094935756971761746953548967523643435403802039766072923518196715344956530063207457542440356105337857654029920316144089961107880514126599693291908179490807391042284342396593740351599509194475905006533665758294248995824576087775281086036026685571191746809244297558816313065190583969023287378469902047955417711498959553853210034591081987332780716371857508047466651801294801398036954929643807412549855272311899967283310946137029276770426618539327541179166564969974824022557336689720663899508884412536664441178248732805527754384513105132032933381216924849071919480871387973581554693055613501059872315461871894807723770110878778465563244412767407800012413846878742076595290028737258059787876226853287014462260090565403675469011717642938986014756112523480560770121728312124408051860599875749542396254934311457693996504703790443491987358257375208664159502469001300819106436424620727682493901570503403744786756493036457260183354516274208919571260259416396266455094711080267603288332779455300129056402480426276640528655157763355249504545620514700542577765481318789483771937447183634613375767326637591682722896050529867489988935266626007184479033536861803827042840115128984943363788986214832611345006331822370461801658121097256238804421120361756748993276848680257695338366718125880079672879632825445181412347349491441439580659078702316563278477408387088222894784237800674876845026559363412034414530405931894242570774197155789560575475878076062610566306166109719178115181718456104247827841230918394260007150647660555465369432186744490756773115501739757188752441310359228766099246771917961053541769772993435848302398262954092146977659284839843702206064553646397812821950755364970170645448441567336546819884149450584037890322218248634215371156875967939581747253745688457888473702625961855250922285028747003295330257340950904311321388999142337654566195259891435308036386984211832582586972281620464215260817253033701093091146171714649862475116514976072917446709365765567853710545017670784429252792183765094177611503290898124258741360409726329829981354073637394569770187526205513762428379495552511376451032526481753859222777850152177453367540995299012842819106409235657839230856685493817921787381354957533466050047302670345351577086991240282212360472260041704644512480151758264994425480764789778676734800845068733054891894962515486820305179192665235639277548022539611182621996857162745348554645670049434035408716473272701599163241065058602562157896306143361633691024881581803933288901036306686194713076887939397609349045444569168708401662736469816880163049520192789915616755744180903225978301572998496138543901315647633080929184685258509533865948583883494951118802535663347210337747078706684626867285974005428942429703862649609419779686806324450766241106385968128682249105966970214817796370131250377610933121006165892636125667381616374511684006419898283504009303852489053524846291026712009189369217672779595381207044760517631634078880230572504197324512435136707302160683048562022115812547989336881125775934420728641663081898230341267924700342749493007703782566849212033769107683050579718174060048162124752366290008294162357291524583650361044691200943564928593568401724383227653215695283589993857984714901523401360418952936382177976323080431494729151472840036001250748687055295574951862918528438440455547248594477854183590167786726794909769260419273620352687389354543172031286110678107335614120012957924949804587698587210040359871981466923135472020095090226281351329348979115939988769428920970388268740943754462560241208386989803692262804581823136018809215427458187493506262465123364752907181959394830855184336015800605528345244419566120892911579217423304567251510915450186734810624035082937126330002558342501073726092271760990209482213361265949804517483445852743336130989419926395878504220609611620754696237185889964605136251747632421565927405767239103749011873011178144659839160870046070261122190173127432971241332855785548311838996811063292637877900663056473901220047488368467153741694438575375282640715257479311394456364904462766154297120496766925746636846722659534964729922734428248049574755372663052288699270303343119793722233088411109676950898584581754600790265805994231217412583116902659478356241818543659601899116293794960347215393484919779898981650684055218327029618538426674277250475805813150551824882143143293503861912375191366305972701237729365815998650374259861717972471853358089281728907022350411107359891943590032612589523511187516167374739880793293127868365259865058809320189047491116890465422646925453258418446781002355361690374934680432359182329909024622075077307049272598438261675733846628277251159498125880655007188099147118009763081160996284555420018196078068694040575669673183063626546222269906072958748802498335257432794340722038869323065037510917937670546692658649382624983599808455833429036462803645490416120178340198005852319611195677790756333438899797766787934527503960447226890330876342150021282075937835111615084232740035971132363046472626092685972228225352891677930000509392687179650137370380193208011240853148106595711013417818125458035603018438589228973522954469541894972573073169760923425553385304675446653838779103431202203173571125684077697352657880935825814450128763979567836163488809900428913196328467647553979343124456694487608442121086046473107799890679125651324043535894908504957126266387555581489547851801228135690838554298666023829172630088232609468266633632171067008576107788734118348693824679106830775993531151119297345605438578134563991703483796540015719467451931512380232384383365204275865205241929924467623085709929244014331070432176928951422227069632019090411026466485061832951390302135762093576378377765232678982298410321214162863621834379000195172000162871004227576295075465887736666208810108389725398527322751539247162602309503649269241377570517512032483785365092723030003366592782920078491987327546212797933306654528398671335840890689913793703921213948932308478077299814841153612849721361173788721450534521129364674781027746059226921248503977889165305163791496150534179050048582168401636216447454433658035166405919714954797923607205966770180750860225383305490249289971020582844293837049593688587211746204694671662796843731426031286920434336417592769837786462909767603089600875484399466953265155559231796962569075963961927390020877085852305111776227565005601082612959505768462954745901027158448951964075528987187229972013932809845788094643304949949975163831813178169117488352992862443646715435566832075693978927909860214257425757335851472049113293823451785941091193586394467021246048712990207344009341905996667025481278591228100204047057387269856145157305962623422756791549310159853586915508058265858681743317719122190166087853317757771545893091125836780692656696464121078392433924107020723512520990865979301578657205699747375774447911982627294563468761526119594971014203788044405734901432684186000288516939048239636638135172527929224093023463813916984621793046729233289693869781672876529440040476421629793024986482605295922107302791063221720724017833210623529337651435008109791292225004528533508330572125729274772699103808601509554712440853780549198681535914996297218971658854817034986750918118082437476647717624546286333401676158708485186797314495747388365018783689213527639753920807940246373788832308713657457171059568928685611014120057413237941654924225155245176995700734550523897474016017805779683269699455428880601095148733516188601969711980821250135141754831010145309941105167748100874820868514449433443300225313862828961736968730259029977907126504126112284945052850557554461366800877223224640693390555874543379986333823739634382411485274094341971213891639558796912381643880301030911961687302764116079679492841631204580494497022873421613059494810733479960761071028888863051750015033272895551712191307325293629419255483968108327387396597753285813227797796477509012055534754034015019358330159090932210167979256530024128759838234688049131245467868933595134235077285350315875925436626312079326394058745771153654014702315266891223146275670274325073375538211065209133154215279001538034451024242011326088937924014445023103966573541242631668500147627303483631719388997167966508245332698242507503205798150076124384524368344353185348059704186640642004987713222338889064034115361814430911161068745775581831827048197784721806366437834266217936299348641854344375374779631960736928893514981622308056512319164329594814608068094550639877201599379671453955211708137353288591136203463898052088999504354765843506554901832606901620658585774156542526480931703615645143784537523724764189667712672265666678204752702833836843182613312043472222814642032822402719725325750917663284621300494471641582267400592423322867286387971416371724542962946506474162164575561892027397742719463652590917433906899140085348440513677090432375388720015322598466258239784104100221163241412263014768196724064970217191463930031346519822270383402395544697039350577482748440468796241313604573298426361018959941390241745723993404509664323457836904191184808521258097891173990390774067007238657318288304583166604208473283096640582130425386755767638021859195346143072878683606669723045540849664711915131813203038791444650486804469839805206440061778611521634286450131744446894600355763010656668822882451423650551417314108197018561902376190905867541486364957220769403202356325888899628475132619848396261280039596331478457259163645373537802231939988454834085659781655915477271545209876152287498568418609823064735477266853150208169748294182663958120965427311574664021675426137683543091995224786275233091940822155560664248142774114817998388453283127589372725932023413443785488235380836393604578220260350847881490637018725181852763699743765997024662611037627356402613005279073200009314008414862438744577485710229301665774660357095560388136795926284178700984725249911495208460242846577716123203856014119823610484949387053692243054547077824059092791641690455081169166267291471160243703105002515767432423572559545092687163617489848795628975139995285407959303352721029067263205609614978545626170361588002478766034820480949007303205763758621992020788630614762852429480789881753430768740488123450496684456213874282426362750312086989763953536624874432978102758771223014855933258762694950945172654808791000207206782284298888727502802452412827772438377716241851413788167254743772798121104330644817042621480566453343069680001370399236471583728378831734400330052156119695738262750193266601804665951386369690690474835927205600906029906857945964874063242044878446532975013843085319272682054745204481553420066669104473723754523395795023911319112514326472226387065195266999788731389263022713569566316688695019063728807346174909582562636781314814018406218897892417721662246509530489325794748014563448611117494945663630678535249534677060725397167079343210237100685164744021923081956619834235910954537497591265507222333521597088744676798668553028632679623926915831580071693161944234550309924287438176012753950152995980714121749657480598651966510594001922266550167709588927096879944445121154195186416808530700224347493057338635013874323135554677928581365271779172214124662183720697174404599563358420698919006021934125695885882437820788372563940746971747143383895246250722866448345945713576759178247008999027860066046910087139671620789796517561690350302418259394894020534707265293208052754103892034449821907458751825147564422544113447155327445317278272911294694143476085061128184598928101366836411293864349434475885043693894920990257519247648835378764060595282952118901575532906369188141695648338200920593883959865274792744733607324222066547516209135635475608763667097753987538904019444511508367665599994882926761900402639872672943976315534244569485850538683659478228590338014807050173921208705698796114681305941474968913536087374083679112771365377591765175578525014921065150182975441269515918413910796411808233677889046807791441190860805641167662088852597928021399846950627570069356209239210082834947795223835417355099150123566443373816168663884466417704314644650503403256110449438819008673375347485933323445000080386758277050608203914376714537863167624006000188788550990641283007477476224311546650818480963001151186998601569645445442373005894887348219785004876072740618515180487094250909177942480856341074388505271919499452582495513145800629690723493070323785323911724656720809223159661694165897072962431179538878070623910743508970351154614704242746568565363005102728529761785885741754506890488904171421180421554363925164277545622107863372729854774716110213566752049792307717269907642483892764558126284004914639920488926854541639044163495101003576528160582468299865799752222850193480182609652711554756781968202443899204309393813238957176182103577168808760397051697779687190783450100047737655737670418275472463891306013612973234432266769990404847134810959544121902719588208959530817754159135615621819976533374589187245380420387653505256515262103214264791949271809350971728655577184880472918283998213196173039991801817879141707752601115236293231043298420962965213342949902662220377526101102842984166095762465259786582126652477731459303173942168016638213194087808754146547506772958535117723721128224151363881393835193433737867627770628514942880222739775191067755669482408739883535082168087373002570730580116308017904285737923421645796325241382769183024317355836472645658345352806900504393365798783700298783750805559514977986852101143157750366143828128008017849756437690059939976159456847476773367116431700704018649272197632749405408107775300867343374105471180953977946627710337477745165983730165997622948054429296418294266354208336918018283869166359164388990808739782013353460564179739830706986751283884353599597714720091525236277039540880856177166418393797093788166661009177452086603507075217288274548015903056825204747526889346802538674611967802651472330650472380006144838725169137815360390880804579154490950672783645911519829677394738568277691700714198905526060947305508033355624076986169118872747464386505211404022642459235318912000904721763879026783447153050269591994397117162648338326211641049843228816385371274174580957838933873228389590503847462676580227066661512523570319532277147786993854000156221044307034854927985224955700184116127170894242236216161871427686670688533890760503762064251872416549588661140146132720301013966089677748966047512046719089021944366476800798722318682019458954751466871084015578524066313400072855529914290132155475893217978215189962495972277483887196306610699449243436273070344767703806974340886724024706793060983928752434570320943605235265465690544386219822764606018906630802003137795769278113228899782309777144073652186069471239867331217578249993199358940069127846265632839737850678604057178760005115695636347129478786674185800864795722494062515333671619378675270367984224039168804265919659661428634993930148848401731711424694005390266507276138142469407468980505925204256787035540304834599168791444115227624714948058768599594964063873138223358913696245688343639030948099930317147645557543163197748993213754854071996365161971190438491417583967403159838879237356980843196092530346649484292577867608450809915129130215827034321377530898502993679664875574721439927860177408491122881124533934855803622414164982803503953937277040294919556585588472378821867708448155379675143122461352307339032008007138730525778571859633325637061110785377549351938900327032536049732062711983807901866402283482952390892272314491547912957501784918898442173147669512363916890601491156850166890123060139215967946137053686636825801708989256653733149142695972803971763738653965938831774893641228053381462797710135736153061969160813482200966037393538195745655169547651215158014462841811929866736669155324098255782661896014827224144723770925475812342156445867348606016347393242830428391822853592770871601413908955266759119223076127496477094293623021772357082716929401558187826468646967704230393900431599278469552618996469746239370815223575238500816145654258995722190695170056507154091800638742115710031514309692754403189295331238894937512063021802349194528584360759790957820724898682100053843978715275455933177481656025608336828678900553859399106394666973588830125251885335199230106595019144256384107700962489626328487403809249928885226778319368292215459395112204005366848164312207613805656586359247339401031519544744428883686517279642313736976717142860701900290204016459295811197234858555670969894891484018787377731029962706325598408328756147477931262805976399802976406525882570949815376313982937987500618157468619190521974213311499962147879353431232618729075837060822529988200356099347105283123472030856604510885204255030930247222888629999465350552761125214846361076628578120581341983029829613377453105237661393324304319644338145284663595043051250569331986642770339721687296149844762571470551708123179382001838728344274642359740390066909940662023662683077728787755938310561419111663625752032150498583778066601434040094035110121107801041058192373466096018151491665907971221556091709257431010090602668227486371474967413783889139897992747742060867814334954208766141682223395409616132676803702843973743314492636600218221440209366648708949395841366079024798880808538708739573407368293148382502406069302506338088034431510195901459438360837657248108905310762679328809880306168437309029393821979126332611557869216998899544277952172860393806766716790252563643022789175667613041096606414932131456878743640392394340594115296285140672468083628740120361351365769397564784713163760107784644140950504075175973596725212347905924140217224497165181435672499153898691404383675509584192661504522502789534997545368066367054870609343525627685822915124190238549442293067987285151655503522673136567807455042298778016075989279392381888926838535642477365656682530152950899762267590127078847151337573692698636269022721008292522441261807905575617332031121408527897578698663035911929029520913125700705782373458017694889572064472742717576077476327300613321807728172505122602934424966815705722891383805898215780978935518205499585389054461179562276132985635561739910022357213440003835487958806202077913517077967925278236529288596698778732548157245685357703071837703292648600023584376203820180308703307969405209676750454463168139992512554022141015138719007358724949454784840404069487795128155352220975630377052348688547892621727965239497858243855951607078876002242226850586630669063759673595594144394988174686223220427028230042341080104546461337564438383513285129463413596954147513979051561878127459558633038518481080736280917673530211072639985178364939807363197104797765092798410771804259783532265081924045132983224870042338642169276835391106156957850684885287700834363066918824946681271058277880191262308333397264294822959213043771012804015305793400515149562708667479505597330539096571255611816013074277349697294446753019832910109152073713776183895079496571413101606981954580642831348952692766355311425447339918240700445174987968834932143197962043586122431369750670568480262369160164980753063635930310613750738207226236552222694477857850558810974626220756943081622798338150195683594039770659102654543978332069300364023033608977581331226997221409796056348034385684328559643127821929733123797639675308166394392207612305958700552595161231491048918239409612181639449436422456658772095706730232042256428612017572681571727229955515676145946306842054025508249827346809955431025475424268181965175661548585173981166964380701275847516815639319070558157346721848945543463881045526004079427814878927069097473227900409220531236102000752097299819400350971288543797249874793841849806766104822703859228761626487351715241138874894278374300582281298422101305094537685464253057322466437225532398888657086096092360446415766296785259966958556013894889504050210702925513809014494424252939652846692219846760576450010345301477852095637427028603918932745727387198013581260425235040837537881306691891879579785399265308176107301737756004952319697474754185883948633143327370410901174164947221119525896231774599270248922411450173966313855944709043987528543021731868933578982887737804509706744442112616077450887536260609788011313813193447604463173445725720526700711573087195600713504050280743124355923059084097927869032083642474288048608485523170088838805332350392063994128454325401071803587756301171837331370450278785604670788202271528509704422040489811031208032894960779362884200827813105326495716736508812809321580924385405229971967633495213277463639408888630700766237329714986642253725336102183023911354164613263332597723252450940208258785320326268117521802132432024910577822640135050601530454055709283498529783011030644418428737291394443156330576194415757321641103121359568732787642973811835223220391616440948811457154434419281087915091068616546277270485860329978838983840428430888939125348801140373989463742755986464231695367490503098226460916964282171356980012795559202806784561661090075356903549091294278499572947096853348025054456655494950225787477450336954873046140194460807917373878170157643121868688071117494307973644060930148784568162360238860539464827671358936902458530113685740652610450629390620526404484718689799939249156254095825594894938812110608221150522109382735588842305598919866405064875875036188195726134557758950232535543103845906674797130366324700396737202902153689864879647128559340304978665112949601330778607319366913723468162971271384000239702414699015775287325737882813621005058989377618943807830795934485410097081481395242793682232053419786877128705818403830629936072408681044894279591892432268788308662689893022155276937886271171052512799140178889250570041862194778285718021308322298973203320624941340885670293438523462014020700955988213155871500495733072957510714570135075162168856720592546466129732864027290646561611655835529014871882434625945481302392777111477591477217428824777601948961715786617026663547482750561913080482233348862010989394349118577852552179216228217687755344679836178771847526046835020548349393359493905478618963029786854300505934049335588066254337847233469787813111103276225311158925734670477984438094939342936709161129292356263159391615151940815776005377427442087626176427889736012522949981239349843346244193641020204389994237443986645667592726153226045790559008292283661017721058609159595934944141425357597106158638402392501547243241080871084449190708236622747806008109300947035285874464065249037404107522535539987387606813369326595731151395470910296887225288416391634438023113456962541061459706981320930095174915226227071916002375087918802838138337214692238239715069631711303905813079823345471544175605799587972958291685079672073184632138921210312031675253990953240261283214301251292749407740861747056529603816654769795996975149120744793594573963421462851873969154508607240725225386169001406209222722191722736927875286786178384235652731894426928715000139846963736778096683357260110507167420910505224321048501280702468971823631332347254542107873450234268245824477560853502275851277659177588898566530106823694072948112076555141272550838499016499700224205514893086572414366330330926416437487914363356990198829835267314874673811784859374084391150215563376899530962627697095727835101434753608930833851150495472470100596247422345451628694581005224878334909741744362220800662021142491053213689064260543854393973972228867451511518919672071762542424194816651024092409210649101083842037825548050343827490322414469542512696573506046299717738589786493805080008889121858532959317771749072766850222556087156051431789007432227066018302896512542892393941848397651210686257884237085352980243182101039044687948107724215238526225528034231783486759127716747384822319255397793958662007748977582153513042353824789076721948440779748433690344820585524068490198712572925392236984004509729023914593539599048139384940179188688566104479725684273725706098351802759225189887328197866625197747558583451386949365969959381650176526478879175052739127847627502575495820797391646763015954476888451242348284978835498714463635241732752446882328925445821602363011064585990581263218968077211422801364005358302788635420798221515644343601045518470977674156882988489190994388858662989018065025600386911546348396956750314550108684231320277154787304261492257704596926712144524005030735443080707906278857385649447609515609298830568687308466602752136441374334506800757230473173068381770245930829082157949603943905003186201636829451242790701425789833319243290592640352729147624966787150162823023414714380984253754394354574536966340713666398791018456973191684151513832307842840103535066827986522715912746560946347255597102557108868516133861751632778276481355679876565402860010064317164173347804534178857033091616824698655727707160696035258436397695819446691263916450917854510939774550986509231781279449532062335467989796805052698594445725992913110096083781910381857637203795383235958649993528002489533890680657753532206485691433477667021370443490979107448310167550931996722035855483779545347424593288371856701464346834898892467513593108053423679265987478551453363908382081209804766552594735547704666712833193688688545903470046558491337352768401862301924814794032422033935587927996831473838953193639344146705063112742056284071364434237659557054862129676573030617386268378507373657997125825763420270423597687468381810625502639928098409162510618376649289233610846728170560305102786792621554194704489364371915848017673579107506453962079710165349719827502841187188083315500782187185346158971453501507485304770384835099425032491611139238509432903262490209417735725932961266019529030671720069112812837776950873538158180931904026722238429657572511244746427073370443329358452985500488558531765358479565688202598863202555736284986603394017262596656933099070773090803880122775448495099603948235455454894526579242797229411999615224975578401566116509947125133277993025469123685698606782643398626145434559465327627304530147296377589871529866734440670857228768891535479002380644629851465968332599123246006589549509971948769785441370892376329114389726999430233567767771553983629787646152594111354129164278846213156267391191243012303202614558424811163585462775620623767002972604106197849185492129786497031103834092514107468047582158528163039906850376147016805036411636910217783236851712352318020941872582769894167559966967402044211796040049993559362528151509938934957932701078349132099103192799352639296953687382986040125551874498765677625134999803839302187897963770340155079364183043199066338976328717155586436265028358079839796537057990053951211159940726169350047598784094923092303371926729292173040713932345488208179113506770122343444154053679863657038086024649879131447297526501190618356742103632097174340736880960607132761849001952632003059456006943721399106119437790326588446922894863448275688497038617500681098624094386820311284315853712625726875197052578133170792655435808353938984039819893592127548262696823501939863811643591883358852051744734160018891481932161004275141544166427812995386758923808807576135606029461763553230763823462417838978456559678087976107528818873264130998579098722772715194377121662632833498427507622757767514505582442433278918848999972190797326522289625926167601336025889041745553857717522619108193663968486946952958020660802564558910952507676140240983186029673439502680274052830945895878335567004507906301882774389354894647127409176491056851185280966829359500435242915317384941295195111458994157368670332437294840386724412362348098976367179565562313722731983121839553198763110884234669793483663267742999431947900765937312597312745216904993629492310755538398056519820559515778623031178081743515645274806221316082416431880149042791614918631193084504018759258823347945005595921982271133321691615052558841834176334658943045567427160487451551700689373678151735973323319755322341766745053798129293425165431504349064607834646533207975219633599875149906831900395673965309590487196098097102813563846887729211155232260317791947563691504214811890569868035174661889851430282530386644455344737306604801872372141476128017961286862583652434948153075728334621490098325553235075482470381204031133797932847670141416758957145069551572733008104594252820750667330119210682447637500712831580409420189767413897697215132450298344277838566515157126153525733467593654209175657265276044291281225233409675758315204015524684996205004188116113171347694124688619031382870649089212147398202788679468317836423090426455576492413623288261927249603630802872855928705336310109169924154091605697325706425153675110721392186711717848555889951856909948866879050523913001661114619081499108452101183297712352960885286965098753890106356476728664217972153582225696731963980208207970025066099620043975451471067235962206318942694921260177446963460980994619329613219827193787600908424356731937058355283467550989022542445933838838568579761301919671377962982535469147415602913926013124295204136411920055399070455895782539147552265112039710144810961989826356945794805543886010187456545994646694383634310413805159264779886934732680456225735038576964316293047059960723869177800719273292623665240339614413957678989629269171460336625306535758402174695413224001366861821324877911863987583197502548790738080579666205225296685549780448996543699478261982660495409991050065387745700142068423409904562650540868714596482932262226199845278811499580823788417505920399545144476146331973687141584722960671740674786965249977511250503609833278243073523962265054452329073110673667981376058943320736784639681123080749163679017575136261145667284548465381374402471813495390316061411823301600397191509871962626385055207557211308516415205095780847740691577471346758387478164499157197291586160959630409235317898899203562542599727837280810454619106909232794218275041997238672039542441559311459173100654934701775339925086480395824353057928627632976747937551534570679168006295278187248226754616437917341045865077600786728736123673751526100633496041625086834140696571166098014523792148037091008812006705641474945730768726531641425345410842568350698840885964873882446595299903477360225239733114100591900563002722123293096788314563587356030608906034609474626727324339600343497864411061518796845959938821921357832906695186009630974249339789580866006493664283742028632183149053638641730866130942501970073795222256454193597631990546243275275481767884690867008620253776897527579045291300400299681210417670905853700668856494870503230057291630247431965921073311018126086605586594629731743501397690757034154615033018768541970186106179864810110359864607904641114474624702330625925364774620113470994771885940806238510873972860087020842390393734028155752216965807208852137668525758229323403748928202504065282723714690635238946851721544618239766301028730117587335246697438210053147502884849057219690242137475242228817191826717125689480015695061157207144400714434905189714426881041139916568828296587020702643806071593637944204547919868122793859472228211276414837108409244005701154493597277361050755193023551975487056827760233470421240821129353380888046439042898739516343712864451229463584923742654598209548962465157997910036290536186008158198457461635135681296779932748103749807044554272332112953681838798283633909977396422291374995129823154559160003355523841890944248172736264388284932967883804690187092233264090968030265779203497233401129866295205389135144500005865548584245607936005155718700340891500751807942040069161523168809962972199208494394176701921550748650378269309707270404927348287320964412900690709899331057928959100045144934339593009027816724022599162924504947332469569207777516847378097126514356883955292505496955757042347831795883052784695844647547570974598360793689813680315555848417712059304029878348651853715906293190781779818900895479621623568401258769112874409228566201398367958015649357370880802357061548877284885883912065846713670114190053373662769158204543870926536488632088391770575785986857041432265620846765289347039459092733584464733813690421481547799098780707411620968890078500622335785669337406798996400450378727315874153581874020431785555696150875692469761995943768311484185398087145173246018073105311779116045704149310675653086233070683842451481542063489222512327736689753410438845960228825912646380016223120855294701954672226962777966884304401559549229355785786723782874453915530114823080130168788297227318070364707577875374766334247530827284008081260446958507739506503815385121627884111427031824277215840903870636367970141521857716766744071397656951567722860073185416270445810642447533809559459199205065026805215391109788951424819300261762805579034949277848911805377793577095644875102281995712025270508855112408480610455478758284425186980662239296345564595120348884443745591793290973544359393906498587613944730886469241453145757078780981148570133910891302655761270314830156565741677801826783922671226145057791330782523097855913984645941359567649020859427932856925112511872790450433053357935089796891705968730300190563879119093534323911087577801599473940089691953802611198927598556094865807465382145372437106612820482849556519704667317952980362956320325549256765262613478422810608170070983083001864773727700564279020781624382496974960285394553285318457779679825672843513383114823455461635202397341323891450841267878416910908685439563912459491431583289362974724923087174735022011736610069457375075482999391837501338982316720045772326070163790110257315706091152825605828961917767786727548164270319966917506179739646072198060276327456838268532204987636513318314864809843723699392544227758511539253490819031397525620057967604942896160603035463269116320099578389106430042233144690299335526243048465964659331839720293798914913745224275841045395580169686120318814821717906911522541464830597646697333330090525328169862992830617565815191110542963737206413100593802147198496387645121152758942490034430322702248576661355221215977529992830721733560304950644488619737291590078341039528788316842542645982540904206358521533678229730445053753554927901099632699404023001296508378064121245601330489877710131584638535068291647248813685075698224338710319636782196840061431725653422106142865853451097673254833292714103217531249819815372896172938589852270461606218503718560612069035778955714182041934132574135327156470428514254419763507686318527946519641592480318078788378061064280463052700924282650635034887020453230057887254730772958571559026891553155709729491670239692181505744065599876324828814516009844554081036305383799206813392240760062581395297479194896574750275396686264951881600415546773877614330980592443230296083521445226551648083228894624147734146804316051529365756609991208046307081077428505705161677366116668099372843956827321676866212494039960146152614075573112579940472922995324148374915355976079109414146717356719184276547819946745155639581046000479395966094364427770463202637990812668693098717706882539280245973076942775819985513426384428993800045784515170150423226841834849347888909141596195130742963390703129567736388711352212394393633944308296533092614239921344808581810596508030227030748835311811279740020195704366471283882981605283760647246750094324460065717152603982115025347282642272636138054395629624365508899082047058836296516524040670415412818009193590277721861613970338352209498649712518657811995452408452607229483085780350895901466851103217854100918795519690035883584303181670716993472338128890216741977287379966352155413822503381175950940568450929676210922649098153775677729820424799513006078312808692481577433348505323957962244819868761045855151466219195691637143682645891655311323615253695768606183987143595447891219250972566442542660018216079660068601202033988991116146851952316676851100628676660534395968737045490490401069019604731656593479853924747943095417053295628991331154891934990192432812869401798084837048215563887074071893187820543576329807615701983414548862200182352711239452176658765247108441092708680876461873144224482331507582418233071778338924514345275555074155266208116820877271680984006250764615724311104655018834693880674058180127957649828504258862210141759786933759719010634168910597760125833489786490454705165477141435290450519808537404325738617813672266360123966013619911326823320957073058748298635689376977136508846793769472869929332047198258051907054621477024820743609028975217088207502226435435841529574118831295596243698768075683436183655095919345582692335313635117501737950392532341418671431475444171369426716280492574208031172011589100496490987437036196108969368126932475004479430927010087175136057250410499462731277038651721238891353405167921647608645145651393248555448323496108741003702188841327570123707531669814844791038422954367802038704082220705951413310543162593963666511729125355234440695993480295943643563435192657020910756298544581193983867322691534937530133922046053480832789684524382737952936876567557712639578650101771691308612513229898816131215094152214421571096962296825500485542006642464951487145771783870231203684984072424069615366162852235402698652349452856148107277210192791675110778209419474353568682402185989112509525680813100940083237375701800729718914686913086721728393191691791676633409549648395081098861927588009736792004017820811790692837860041329754463727149943695920197564909240842352876350459411997088599221776527050737389617105531738248732753227991637893699899563207224220802095568186130555884124054749203717632465404962835410149944073074846041918610998208377611945975771741580120961298658507358980558554319344235593858447523726323631325543302799823447475400603779469790678227947460970866838638961862303326658327023533519738667761805944664045649270262527582119261011418592608169528382968752382832189299329456759805570480577803212436217001428611193406608233788804962767309682764576592589485413941311122464094002982952004964851261031576637928850746768785416984847746787787865951612845257208147788475212968580891028941196441805767035044662910172822562379838233963232916716729541010335018623711887175869134067112620950467399822637344066247351090806109194695374948916501751870374557938703312538328828966664696292852448994401685565810863901181699033998981681122312941338306949057647137121714444121324736510430196754946239232438096053279477821843157450649837589593307399750650324804428302535653441131650660010334837617467640181801659639397351291636142351621172763640019381533627952402751229667824512735205175362193360412320255356551974353945847159127206456561167466472992723352543097333155013596621593398155007076287173522646809683897712385791841191757072743727584824049654170372385088505122545770944386984450269415825833796233554510783567188136828503984318605702019618835459542009359962131663979113999004733021255862045897780263520417361109255072211674091713066551320054900311899323852473131623523480757246135491341071352341312024631719619028074057991030534101831425466213715184615405273612298073488469344918343066669577972258010178561278739519835098111229256686339353664458310899538455937949717718729263458132921198164040617319589426421554990199126100998865724139586471451918024340079405427889478504754800955193296420329630075009108971281242704907908184066246313627900692202890710843210887840931494433421246714173173247944791777515747785300575289652098528807665380862595895883650638811925076870805922763499283310868265479334760443572145246989700449060740679294942699515826214265414718949561173429206060676966273329242584482711412099216417440351378273364450607878611089107288290860239073314719354960546556660469096166924437938076327004124656044932815557446596332204482567488540636813370531190403813619177526603861392975633735556626126957678573112767367478856962635686147878329431860139510242320139815111630495246927457179397347682919825790543451531977945341159493464721376952713702832437922755474296964701249917967319849313654438189775624386049145525424728838347825767315297380178973773409425027014347265352738432871942047748428789605253071356488931072145210714998255833812810276632070994982674183347864525880508998683608609719261311212009361084896862436668969386200758040444846493926192077119071978749164749961639278124164218439316370181020782066394513208755552423369723783105091542372878732435712350012436125997040759149977688892734302314577558646683486898053930608574895669211456005767470961482036117313992931190231900585359200524688384097475197010262344255188846716353933002677889189456240285152313945803748683478935042717053298497431162572969889786635978269832559813113103692014355896981548567430477893407521723077480328230482425931534859645115678315639409633959815714877826394206819937156203261705341193023548692714734070979329766501908537291936906848376643859857373684760331852059926942317617276959897447468810487895911585855276944056627795963750529023366897037782391487258092746686331653500300411417076097585985471320023794902261653023744649043171868470668575630963416779617857549362449874829679818458911375613091505028640449157792758576194265990231024079714845515835344033076442285064563945872998560759807181949165197062170404910003373508756466575051611482153716063691254409456006089241545960464383310452658380515358668608753767943992521699397294106836512337129536478973211952326732139162629243710944967718037925859818437820130624189685881714916706242973952636293215240815188004762194120510433899974074898597105021509152766353363409046223788782674618228971980066348763316031396181144040583834276398128261472629368395095364410896436177140547183258576959872196974976664684019458730165774557051814822980766082766912837976866825466529016996637299385708430771582383875317884764537823621106963681489104374667005383641031761828963410142921502092929229531714889447752945305223439499357390170850659471431558737644150343046149683600988125257512394098977302273444303785082214093870289752857408368247085126509699506902803850968823917002018525735752543482042581642002700225141954592560335064243321888592183010756291845998783926768057216755537999077791610098937165970601900322811677857845873038900848080728512704016620144002553618240219651891759308206408592905935561794642198529611326874096988200189376603893501318474412863358412846360922208131767123412767992636968298361690758316792384903875423220543045629657728336994214589864876931314255431820418946630214212845475194066984060898758446930804639463420120309177293691560802704488961403156653188624919209184009672302188629804062509900173929753396603572626193447329238617101329905954600746608501487320370398280460789163412073236873439812681275633036200063272054881235662664753092106766029066394168010705583922424454674058518470815024004285976187574390500097964445104464671903975224901275465089894648915606324074085697682254279038533723012566721494150591971329074168957362415793081786633579215168851388920711166267053832400163930694975951506896343455368888295176821695386824285408020285213195258627789739618811459103603262142408911226897578416307322754544168576437567223484959623960053011371723024184020530498830769353154151520715461101180553020080513008136248892618137895312972112405249601659284873613393388274775520140489111697184066285884161151737884573960076166507157920162817850873511745918639464552262708638553149346859073095332361240209015448291486879500777778093821643026261560095729793833900212910362992412927196120008103292133599611982201071971159704921368890946192612665543516093901120058485608460864134485621561388211968791109913676544448517585601680788018184269766167151384428221657522651195576629757290458205873161174378300018247158192625565208502812762953481486328943000632340273377871659476202051042782830250294593206253212056224829408068979182804678918652294647817335431955259873368375281104959266516528013189027804401705995268848963246649387805620836205407617872417444730139389751276619055891842482166852807738395197617304822109469635488903251168828294504911263163229753112284799373772678268920938227863356420627942724558512888461102172411756292686110534300515400485107477838622485438225768906130321508153593130325923316698355794035225700124484751931928026862904522551098702446863808223442433479688567495969015505931658389805450695755788361557965319893209005244443373193842696229931866978471100425169472824174786767269348990952006856574043526768359207050249089422538506361569056515211302093601374656513585146635545975840152871718427583253535701366824807015021774337284951666111288700081390984672553073584193955650454652637339273498414874405317118383702311145437039638960866346228246655538246402355849519307833803503534833800113102449114273106026403398146888426546176458126453900047646242146207673886148246145906577732293436474951533419581770906424345587017422749590732362817728087294010537112335001829108152855847800674603276513862564331154463740432960601450956691112172955229253811150727063722553266822369120304434847145018363204432125517789528484657578244497511854469038059997625197416152909511255873836540711715824923291831179734848248458583506899374080538640040003675643283431675157389700853693142899512402271244150408749039344076546719163649338555001394528300728481470759130043853385203795888423542755096661299389067712567177635073218676289115099279907708709621939255704221517991857325555701887351947822611399790527841415208417601435102136424718054510019039779161100842683212106541921832294695107918210038311374239593190318310557032703597520460753270228752348780689309325199140515078869935223467824395151974109940776158006475273728956543072310782107788424395231588578042725097241339159492249473798253844392884113365647861423506176519255327403331451855198601802025751501636749463658813215017605742369004209515781370202075377082750395350084397796158042213757948790910239566224900631446003746676120906253057975805944801625924594102314625060254452541591726811869660586929718491925883331515759186592857275117370053298791337422744965436936554165739122555127264284802424642991055034009731263725186549694596549330821209205123012642378775346732774297348549709297141174062724977928076611303022290089431000411040276243827492386710888401894089690814380595755881383067919722299938160026989068919475155061063654839841020184769263307047727225869433659243720138352885094040590070399221418323705279155556906768197180372940776619637918525340275635335839325328583029565296702023878906203612503495146305937302043461768220585379378120899206922764490013886015209894945105168028693551785847956849377507963443321368820996806436441716551936569992216869827828919525886121014694201750807636661817984854196069058861273609287305311011816219693288339875328800856723514085797587056654721989010335255238601083187321281523628506592992562413402431177223860224090053473993713264580914949034087225342805335811381890139705261677597559689602410276437348571832390121876233750353873328751094187308412113095854671836219386840344728764745434699093717079139677218640625425396044039060348960049549339428523569055436717795697879546597625330837832040923452582969416253136908429112702820439204398995822162362521558268085294734457658817952809130230784911186975037919295947004011572420929488771361461869493561619036492220750469186783057747180887156858163190854255715926024375138694475764267062778341341035750608528346122132154184637011841573391838030065241861022467068325791594057729852752182315318552959579236232512177687810813219825915802953643221470135544344115780955236275296877703993296764600208628586716263845062034554489332283450804713490258617619018836710360304661040986362602459191460137205326193817432427578846373896433478442986499760841052760726775012092694258628231543828671690632319414909016000489911553582583109044635494403782434378574251999931379409989171925831194468005510586050592256102508151457470351500861214843933026389139275318138061044610964669058929431507262728741961212212345238231155455996630037675165732652222632347125689169995064848072441017206291990680487215991681761931943071193433881827316871828311984436882014776592123908818750136989585844383398336753912412701389580940651298171495641968486324051440521277841736352229760161927256864247770992518287226138413056055263267288163545515184311276510923751498084462500027104063673261255622580396021830938488601186321657593454994233409379156290226508626508641252963031955032463745702660569333792019341600184758419824076381443510542766516888857113905053765203194495596682212964283988895232270310245050034100587809982896986661052063646055403243685445307651977718936232501125055674656980593087396323647364199767841905090813725717524670370562877469869196112531315057437716362760096248531981378412278457822682016728054121830405088269328847534934921323463249920056603418276558843267665489255283340094431292278822225981285747087483875506096758758601251130805074769227599517202612883071102743717154296757420362144625567413830048624640022617774227824292311675487377867050087978335701245052394874212456891850299334335614211975377249289748628335660567502379161558443656100399588366099684448393674125332370239437637812321009192566439014713489384713908518490530564980816960536203408142769770764078218114378883803101835962073174288947586023074073454241040978938880358659173177718486074926712460072276733919243049826525133927844301560700630333480349849197778825819203947057059321311658727705353755376044471229350217925180798924298033521516769316639175483489088040497437368954898750847272646115705964979356470615990080881510784138633104907007103177754301520936631356799571014650799328115643939388271769649044333389632073796032399407559118083027920169737102390821345416513757344279555998882512574433096710001370000406938724945923184166201832912653832263865577563948452763908284196451052652423275519856509995300564411869551379852607738948367144924201010185485179027414401759959253896382170617726640467764762390081230886942986443110660864803229035673096204023724273954394354371011386004512801918149769732839089526803625784955528557496914399769100335026410919116023314215911801528582471500303709222224854687804659822163385827733902694855189912696969957293894200650040233558951541072667424843783188382701326222105601238800956864901662688318642444715922375300285673192988088850058434971864056009546431017825822342312377810688402713997949535191603159301497930608651371238188628326061125761294495797609469447830940633858919684915275752143533222906770010068300848031335188644631666573772511760861543317008808726699663988560035071492408135447882860232154270971750676159875644298970819353600787175668658646237163610374840855927876288428989019792277934467975921386578408713713616834996497148540039776574356909204695669777438727596661889973436714759209725780152674772471379606829653775326845584120986399625662572622204652738458799373061850507200416361890760737907217189722521722013949401023601784356754518655346776629805134066317335101495155965612588589638004155890837532475954725022292095803457666521077753319841859313073992328004573762514432271063205883225543778029295899083329334543345331825348563408874941904198252196937880188896084924457971903019390963647464957515915768462767173495966487676397834073816212219334085344099432323881813589985939673569119990472863052256432365683286337154407185446728613288434027266250730355549433588423232266738885270624559544689379082400691299520640351630758222799679224293902126066829361418749588045529669294576292079951153474358811251735367707586564577295759704504157898531268048448914110517481027944737856699583088940537481143677234127752240450403344935578046835245638054471983084120265106297562836368659051481242516252335736247443067602065109624380062150087539717374301175493846391431889521037419512044593774400109863783723285939097332430678885194197886949738916826543196644637441763972068330580664864968069536500817097239500016133938901690380578212777520244116747110901649088112071410765442024272811976641021928341299861104921373235053615858349044800350321787059932774517642102310511066027465454312461663102494548513548087182434766712644103876385727144014678959029951941010909137818102799554275046405329143163111998748057567257446190164418469902318367175379299956098907980416720191716342973549053425514865836768339961460669245215143652974380965515311449658928384874193269471791086914996536611421549107600020470048426246011012117385761988423442884384732604462994784715237218482383270913560373246190757173876249569249497743708787962959929597518050453830834276657509717239498777146087236901350221495132759161651105499039589141057402970570984115320867399497754880415526477516469446649993021004540398318326958570846832594220955153002632332119584894087004168553458799129061628330343585598211787188065660578250643528778067756445260983471426988987462540857765941849209075932914882174342233235390994328662638905244570504080350778439188829185999740055351697989149973185631729415155783440390533506113979075164399242561646626842500495090365858381648715953626156993489548829748151571108433905662027897298454629953917527409525484709586900434229337133329880677574614035197074111224108062666724683560707848731381056419767793635888445792249589890967939077932063442796884239556030690141044351111127891738466516424027606872383577575685321055924185085484254451913813142290293162620555929675680352634702399516182602099914563879243520891137572768732533256074101695007290324207774894486098366453040729554565209234483135939620612507938569956783880275914986101665799752126790642259125168660625084649336293930098705765193019175629473290456760106245418974902885890428097588697099767975830429762243138910472906858845635172691611455269791038224171877247764082679786557401344973567765538155678440972504003388506583461621796845673944694139906668238598251881662773808923808947194235321966010719798718981635313003311258888744934524441621522608133785715851415853471607624654869785715110911884491589771248793099032521268534532265626578379600553975498973024124925253184624583483564702671647231140484217790284010141664144336983983099188368220155045051037347518704293436705996091329231884618175815723736401258940656415277426978396433614173916267255877522797935084035824145125127903481228130373152396858245368753827727870051544937937046106855665685531617266054843202085577290276981635188262410999079815512040140136665346043678533222030128847611817599908920844901936199783958848721853595436702257254055291839111741152385832342139774409835465945725887470680197743557846696442544785061407481629762503062792927654023698101752039731265001252992932723670309595519047594473953113276535462499562471636574580647581532060038955679099980878341534604670594270568193710985873324109234511958610299049675166916490935646921267093607578779481549681794414985598284434633950615705736813892251424789462527465352291801922758507681391772578461703222815572590701932827882556880106544930763511739657642329462431768445713718805250094370237438501860021066773707504636610903231055907713655867018356614564049216346320296593768954208502279852924713127558080530594891315814316479892209852405246960815001488863656693958480239521300907420289539114081389898006491081098477208393403167317535975682516856498039996207322104940207798992333286340595101226789652044750786555286195310585974834466571131741974026268255504594111726782710912577533061771123286062766828999120142624689959174027766087621370683704159642822004342683954579423456890495685117488314794070080978287459162918141779573036451977208130643808738046246104656714226238411565048326038200006499033085778895003837262105763574145443245820111484150338334758941476856243516794936361943924204706673033011695793392270122501172067849172817673135107969962730461287173820188098701595543519878773363525069431938437169946698728125529531001540985726919004360711599942929975574385670957571395532558277096006998943221368619414098438786688248138618231634293581296780957582918769997760363405431023665677090720250807615843541359846069980910940030632523602963971239709786191130865700099593628795462297153867633594659990548749272785422319665165975115163678638788699346289938598694756131516139416196561536450056854755785944811273993976515069417349176548088021691012790349614987895692273875891306146738509223343866923823716858149089043005692329571147280064055477434131092344138760358382512383953656687593463893442022902122724776545730892863979841060810477199388091873764020046092204531695231129549173297675533865436591280880400186311888616020111789991774559247226416439631580039990109457820859830045261207442839054715102181131065487362173810054942233718165146001420573828316345436311924921386296757686615036394173514197957605620438826593028827245331840317205164030544753509937964370962685173939281873739243846759941246414229170225805319155289058552519832669700082763962266697414481885229864962185332836351226815153617834596251351727008656422818286725744649573639023452777030010978784845793879579509605360281237080200406550342012026127150946077666544405441974318988168027761603532895874288836054760647522177917413004102108569611962241538191164903572482243328034934898605099517611432178789374597553489584741760822972475085128571305225447731438176925475183545764499006292398486207080700865698966726198981557323394908918191600696107398435420489536038734619602133333499206742329245383690331440297858205312918720582738611776438387262898706658912092380314676358964774727558501931763840096795825920810464603228845000225306921927985421588165009673891236406491122241880662230470196588535304979956080405460418589135273425333287635851431578394431841883228729601840568615400951800204180510477207802110924166164139793503448601014770276301808548504911679186127280633578693698169263039288293420374324476951491829687805399683366986157929304571991630376158732350866321271709269616311475706645301186664530953150233772346961098967146559447254051839902966256902216946754359773972611847715351383178129457116218854586701733954004289794861221393844510612947500132264366488876583560081588550946032823718904284360624631843594721633972037968257829405613869315707343226485577868608912633946860927686917215218183994362180451287552289427068329211517808693845057871482780155699279093878987558823523903047300213863860555541436698575315568312042000822860765064228627774285762166361109516137446146065075965560257030061115225098657244625611780853882258107059071120378607087121114581540743289412515423867782898054642751339823669926744408465401350925705480332991871081105204120966974902688474002168610973572723379955725548165781128075410389598040289431194142844646220084845431241478386403134676516357927809281269125068284242530153505632314219744066129473429985689301069517192316538962784605328386280814826954411020043231003935925730340741046000934596505322219176557250609262383044404889510311601612000760731030351479788709788228730957755282326570517109919491922679108969679659814441052233890947963570759794333391643773272179103355668913121723644777034130984820612301365870988064690798549643129639571950466110273388924120411186855833603585881781253790762311868589172408809795398151351757933101515427469479804150257917055773055499573754596795273947092984242984035433110150865180290722284306914437290203714497981365929608867831310513449965095327100535031032911258124028588627794797566755644709729814293908003585084015177821734021381102715071020099968799965146175510275710749951552065119647757500787903770140368398536117706960585253069927640920363971187481623026307013855713682560322917334897849812692761803934124369829472748550531273278916885575009782657622071012488074449341797253445951118782860455573738986284644701985018050643532806299296577382763483498744174727728924262472373212213375496084734566034151949967706224763876916403278258991823764219643389558875721213299798989986723554314217274588309223845052080724482004666487885076267291657281308605857427798293393659955082826981441640949662972298319257223091257239097851023069835575060576211918447552861761826521647299777323355248439022706778699591219778778814391144099538788708856117437611230297174366294490383514903089143990842812660130555363520456668854969753730396437260435346087686653457633301346773673564827223508485420412184004618693426092329818700648553444733686770109393027482569226872570264263900093100230065978102495526803701693996050350507080436382330611812023050872354752415819993633705761886167827161868129012772519876640253724355079000561046168046922114334914989044788457298574145747844666571246662143620414056809981732806756814722563505796918757828947888529066325024312750556869507721253670540710949126223786587020043240359799206406156169042715986534130271363963745331607894747867804104188093503886641051331544813665113406936984595192718798449502585802348474374357585864358840644252830694619905285054616168642406817138202866782264364790639897205981237710526776693344176303453716674191092065054717752608359165310001746260268454189462360650712492308708325712082565286322928042754930059786780290341523664751252162585613155218993646070463124329185882775618065569527839976710382176700225313299704642389952431727413926319276635484057278887211240828320441198986162785501028528111144855924577450531326747857027021531739349878899394332128509422275878769836971198166870815153329804248517172191103425690778497958566181313605850258574893015714841687206248770438931326800470535701471847054608626694180938135731712785860873545650893328073727211805173208941510816011734103461420715690549107862430563911041169990952756514088537727640676844552923501002394611472023737734275312560706200577240551760768478355296587755544274528644348139129289631625723221321902411703851624788386673170207782104586132046809110055960297987691871613272743661825077504732762419155539025943490114381923111250572470971187635882362467678200547162099854091079772981263250523866023156741042209083294735183284053591987753303284974840486150351560058404504452241452812843721997572344936112564815413745462607647045359482227413755931586017615846330782495711925564842249747430850330868617262746487129966331019027408117425154104480520777249045137540194701947306903178989395875862685060301546381059489660710332193960654251574517109873647896980236200158276637130809389015589947304438567091675761167227643200236269343312000976456485880473430405062153001889302083603643793638181643439964392325298481516740829746325812174802293350017172871908595040418705003087966913888340438135092553625884211490944296581203388111214747445351986881936773991024902992605670365378629932130396850567135287321204886853393973841466310611378492090225852080332047158259202847647540640147097983873882575247392525338081498575890331343730129460414120388231421833541238909520749448011000274658379916714522771275779867487836959930945358452129604597773251191961252523496623577682489858669775426408127628971203024402747462051512692500729388247300301570895028688703291336827986561522922605349333955195586051581698603113146296707195298819448669860109092831538382849128713766075406651052255362530685120589882750040278219736930113152649513189812583042302279707746698957139433646757484744993110611498108769708788220453759882692985840496818263955838609056387737738850664382307625699467659647355192679223730262060138430135665205394122504298110887034890554478983607679475054424141564774032378073674749652895780922540864487844663522661710503292326573859221309042232449302679763175570171891893872220171782282613390872710722596572588315713602297485969697115119568177771522063821036130135469378218155453735642287640975854505892937261237308727479475412436943980254470066696651505599933928202925193113788229380640306698513660448693851187862080056457713475459146594365131765299522287060452984092771740504782584519624411922946869715578516256454411688046165603810637154390693173695791136862923875483128307743797233781393874045362753615591388751915651431968909844657479835513254017396936986611259318569739255493678526040045606189333065355553351468955749895411117477937168403522572583671746583786288764099031291921444694686219432498951071862952243924509889629696852363103199661344674121772530665690616054887768169098438218942606035742084098891275475453605455845772210477129900936171304593414201173441324980855289558011059772741562238566657940647767888081816598533997020415348639984847860831088335612968107908745866316710230542352004076808707515031088627472110057700206821675350283140203747774296943858690400245952791887806864871981011297439163992614320647617093216396578397531509319323328189543842591819886294439358684606061287413651615054904834868546480843649066760097117269625923333015902415815842205094948802959969530273901918575905350099490109295962206238071088309234270743313466001681491584812564134904079338492255336816069504971451167564803620904511302091231763450717361559716460224938398874954209443598578955093406364410243186571771244540416173684083352163719382720966675342296789075388508924090512468587692694165936224807110937773683591913433997040226638230002131256996153208695081659079368921109814458569854772629754664056685208829900634546935069330604595493995556336499472619591482097324784468581192050345862587464451670896143053464312710270387198227735970273807004584887804924153763680918234062430883850011405796582800162864190578593963865522040905920999839725288310888906761695251588312082136540915116511635238441880142256950762875716154969656584706815638439916184505171838028913178190144231961593353143921236444976175896132305306771015445913508107050337885020189558264095285036699308345722550141965786170618815173532229343427976755684160976979434329355672738308783569952713057822665983499230104012494953994677769329261610775850513441638665298884494054622040489662272916777070201277984035582690374429620255877740816970713956600313630557889605560080896927187412825834470335284917327142908266057611093892483306610222473088339349649864390664345323307239342306512368139680146514489306181032884926226459725521630949635144037592972181784922415357887113095337194304861505672837249905971660473557753575325500019157203796864526270615031918663942978561246725199811172061101153522725252429139888498573121918086258501861865153182167141417492580693653258749243427205843854903693189735467586638391671228452578672028705660587641091868822442261863637906553991506882994315819807684622326135658110346047705137978956445778907950557764249139758733764590962646653903815165283820676718154825550416447184068153719612095985164944159493531439324676181621209070336356558046876778693703986437731558600836231882938081364667156466052262663997001723136644604718403910166432456312066975780240592428857970976601200533905755752718849240152720919367314122098879548508660095308431939023008114034474678992092336794991552885547722426881042782451098376150206559528280183363587914851925635581871029645715200041324895899413817455102608114568455259142218541863558989794049173962718486591824576539264166121598853368389360217147598137948747012395288140870827025401153164339599153574946316787814597458972549281997028988191852348462135935487656197833445389028381675777618006202510602144040748843867541874811175518254049990446021650324447790039655539599969813523718723178159340022752510872686230403999328282797860380916824623857134177318217223373841232069086705856356799600833631368153930021537384572472245916113924609600518573369121573818546301710265693435146199173682950871311805871234793241345369814774026755822942323467272534929821613935999633196574338929211222150004358014875414507508843352159403930259174607875811146816384791051940521306907759728946493850307024723713836754023853878846356436225713997979191889767680304688415856250321569474152187794711182866643350764941390243615568619401340320114074938696960366363093232831371981864071823535747521800419876210270718562153684284947693695416902931078950096745671311873970837697138458272739286034428849637886481458035448989008485205762365856029525063755677419069207413961372075865015083387180842505838551494897957876754957869165521049483523600469805180712773657266838660426986268124775101005199899991249791351758778799035601074921688598316201943904981237372398754544401923737953121594973566676464860383862435132639037738327255791183732511963497298580507745648966892630424915124551591611716968552067898608932833779566614255755609798595342390576950283630037492609760402011661866764386260797060382157318877602352264675581378181445998310120403954641421908384070854988690311290888298501580067854575125049932293805616512331343446482167488214645592189060526529389012836552754267597058628485088821785115800778389950742703950467545207240502564769961595511270954734707294048584180946018595158564120243816293714311911057102912959614628621030397273255147548533087476456912063227789334150153719949234660313662960491798564185332706227128014092942413609515267203418018612897269145108633581269138645784100544141555429856108397665034045966609589440937830098990285829653647649341584417787485145353617544572047749061178029736390043303349029948736156897830807352687966833637635070801867924681480410179868907872595430957980692800083135171781736565018355237350093602552738218703069767405975965231548544040916978061598589574380746412039144848034568530626897189391909209448202191616032782810528790592375221216940331959437212841454487306348219582708220434002890983141870893874174009181983485737982636320723680315163621233653554763528333101155872340231977381229554388865366921878303410154694967625652588025019330534417680383065919288492788730575530982429852687906511581111965472497090265745464809370573807845037841830443831520395846652043993570389835567344199409341049623348908454850823024015723567399893837143246676700413073456972493641904711028092097728638409615789221742726392188209234743199437274175470341027753597220110823325912569800917593482078707646031077484082243785532416432254741450403197396992922488639806640550218140245329238756432194369261227753213102163289169878636240222957757368931564025331114090108377273482664305012545355206533609676818575211388785633571073223007280785773856497851639791425874155241390211267480511700231529816366383508085590417198480680270427244199278765963734944414191796815490524102795896205263736525012355413520727879628303627299468632887478859197121378105199844905206061510411895713879324024139108816671686429241372114144259019594610154269370103632291274911735106179451621602287139974943863704522886334301867516495438066592892285429281924019193217314402897823713260265847697618107283579340338615791716916230735721968370836285030389615476580034952115934187045790978828974138739973483798052829505619165019921021164473925976424733752085454944722962052324181126781923325645718855541974276134961975874638735085084178721386863646120440588106155836310220077608975192124203037042650760662404500500790863264907391203659305208420782802040702476554220295491543998508833801742536197033445185867183243378830667311443864252710406679922291588491183445422102605924687729514312994852391469193191360566673332770618765529983880890248386339140825499930822740316677595476330916607116144684860225310467543832345488478403912844104337326892307574665789685766052985587517973443755673890893639017125471036796311713136315248702825660065330901678889094741864094597671747610180609367086884013635171269241757152945342047620774633725413685539275256913325147918550447339844905880088167509461967254618028323983402650575148531535235489865594615561219752148083467111275357248426233157869612789132956054469858042148677827476664515641793439872361984735151710819099391943490181636698843276845026031367388398625784311075864668261879944531288114233713958587778975039313161599694197815030783322024727849123059041954065974555661391682220497252217628235950780217832833437073587373197865299203291345927316982233042338785083369436674947710167064098324043828996819977192516259338122009455471064261636567127900405044294117093362897536886812968086659413659364769566128367126475252835545560502257334617239294276408901692642136382092230672573907327815458518292171637969058195813392428223303570350626777790854192349771744558223686876803410111125564941620084001686298607914200679330765790704924387790849786401806539603069367824301831344757421219387467557110273658662260864856700169496032835379412719942037276306693315127244726737080949483932278617210762775514219817691685660553866318564296814900983343023897222905609981748855951577457514783346157902161578368711912324589144725912739906330526763035825669841752302672249087083454403908249610810450952956055693873563850448258552290526425150156229551899161173941194387831466257867536252210088471047898615212379481579307567611100984932307145303631180161033119756252256914311607204178215650977429715973826069059585307431632179132665499405471428684771630229819235556861272852946846738407978772787206926847790700779643880375309689597104713265643221640725829924303374990539165624321445659116560439858078818160250736229244746698046962758174767877078271002328359571308794914547014033953440999501637147331333366128683128023246839048791267476338451598074505831448050792138169723233550296096283583423444057522171023360511019627894493778726424680439361517120300190018933603574213144903715824810888289703926925930278956347492166339365908045326077100869866558544184032079695798526450097354853582196647511504375848781784264811491209517726008542137306935715740677914469025171490253918780625149337388103921746409139631183072854575989338527287434621581864296542304862201143908113928836853193161694604369522350407009785090608800381884576871897293231858436423282675990834291761806068549068948037353221769479881545730780007453337765587641140937500719714588509840732950407544183151516684895593953479565901777446207757894495490525028443828549261714544719297301311845618032059374084339196038137058151434680766687455634845839276306994136875364749086889614873016118990877875251021451543536878157073151966355877779758700118465474142187530755236845184521892226576580602354334796888373970892553106903998945115240447637127009697876781958744331324510729756492132857034330123028433200953010346594075458911918009568514637757882895418493125603113400599402654542342789640196143860717299815533140712090231762314785970505677150166773473860836715798545213794440533966446705713350058079397337080331292798012145803173239573635969907435425109042328849658789275712321121872752135706892502133179397819551772561675734702019943137102122405603129474023663966120389568362139254896153782113927490971660379663378488373104325116075419655111060648413204357259431839528602820300993811719399108063235492776529584347185960222095736695459516946429819926601947076545235077116103244818792623900872880431080657559780239004155459679307658893722065378094301417800712199041610703974352059145778609842943328555812449797636535776503465532512757196001491574940411413809369236078972152735630946539335739028101187711619088570112019631590430729772123465533239574973678017550939739749901741668822864038954900924258005737693194639880886945852129627772579582244764062782567605979116282756855051163584328417081308492614118982868600905192391193959745778089354345559976778567109332374130959230262308886653673551350445745469205090208691099176588310827118762237232120787338376636942849174774319037555799849565622806568848282097056791095646086521641807805667788456262958125422050048553109362788669230237282057026918754291946469100738417739603420517519334599168954512426556778055572989961272872482997095788521344521498789773615423170571672995489814443485020654188031242108179857559748126522440717943996269929301018839907267614025883149628497896501367195225489034065586784619502315012871987270740037417889573649415956548134502607325682878522168146934435655427687798702030042553327521948016642476895663630696630033785747024443843374767977491193439731780959425811814898347170297327717573925066372812265455922362635407463109376751371942279174315927133210611740536620711897549479494928909228483554224287213247469130507798179601577175245158088711721602835904089267416528183995518789612665795331424246051792762418952594358274069847105780961218523910868028124540564650589956890794755003178112274596493414259855504761995701260220745553077252455234618075239244885631252376719463215547378501583952622744530470364274243237284259621383435116780214079567766011248618466396322052965191586559073904326688223137023441646100052830841512683720054461677821350059215028241048940031304944623413266693418760639476337072462499840639097979999397233672967820419721506912961835888770968848122266761781297140453329002729607446410508866911481802248556018457614534403595614849669704120985380761836002672772269113358637553517604306730385414521267548905875869312695401950444044453723078649466292246959704024199586998064263539038203703089786541273097317132454664897801265751706310028793651897520448210919237316937807665102416304684715727673924917832959554553448015034056378405422894163430170327294955650173335674412842683874852961102047761122531361537377498186456745148497183580859811076189775837915294690308187890718091054315886989962820593010678999029018367921491077793541291240155501951405326702488794944562204790417560290213186005628938860230818754559293910190860075266803338442086198827664524502166123929651470373074058600867567181703149787127732814214359536992734379692801909888125927475358633252077312982562813833226147071045846847167844626121885027907958502295822218173825337644573570509602431340783771253150214431379590648016787127125746844183725105766558049835060208711650422980932036322317639855745641388152071743315343887501554316502314091732785524936862368505684939417972670218500299718813404155012627953880479866160922016655519968778351754776431566757172078001926615270554058175854609789956992017482185312423311564056525307771809198529319029556200585986542344019674310920787810394120047246479491975438076851677919070167832695207476971109101206332602643968120784361882445353201823396369760568550418856022356859828757438695109747850503182707930803376975878291871322836246400059724426936562793691133424725027827324025350201352104019345903444284464450972676321135157389431524317901251066752897079160463094917968106443491470241107355728715126199941360078753440085524114987637928875161968134576853328541169875634375452213935598882156767398408563928966341318884305368860004776975323726318177948897661181597103456749483319270712740881918121242905379125395288151301924581120764251732636777752745385997100048001118984088630033699563297123315112394671084652887026056977039001439157537874813891030789269435232624151909145845240143155147357143021779040847580907765791126376205442259156747735651278328338813784166721279409536222898121659146380431845005300629435887559580700820258962728081388055497267515566955960122132546421960133587107926534899637662313302953316412036062100005829446095236102124534681511932674473684206078599970772131211102495606452354091417293169466081373095926401796759086226148581666116800179369262229463408593566001846716393134818382739828676118685059706521072272149416522101191983556704126633966590584830853707334529843471506788734280134752069360394491814468237372203635562801828886293672540091501779636108213733507198638838310978715907905200237872984668500584191428241712415619863701512391310632213041891083941797956154460043827728397266065523598239738820685944825143441117854833885823730703401607599870578063603836626232158977224264680392792207413797119004638742632575950211505251137975128266771442570286992634486266791032965220838818692760663065393327273581681088267080826468317159253425477569133585071783209067868459621868242433732730665577955973778384092319299607099740711494982738750703696946071173542842204871913143647468302709117926644223651561591221148228728616015486198519219634210525688003018955237081924462643182756058911670089070472981647424553074225073323956824956462610019170328837086395715226742099768817249998826766154382626279971583821440047569355531569941141292584155245571043551363878918242513360899428114965076984439846386417330747808926261601775129475411170279909387935824793802923395239903272713459278793969687931409580297285148568087132997300873161322727439163456989902576634053683493048058275099492463827627561712116490881866119574540101333454243180143567360066158733981377660707960181542993822787699257463814371306618621106774858944775470844701528834041567155300922558431810358841631888399846555196005845526253214890679819588040396837687876817057426666543663777520843930219693637786076958125126140587127355002270326163282455015367192969309475519585741504161648896948100679964588577612806133309199657287960774982847653978569954637663682493466786476516005504256861588794381911974803198500034753219541091053979495291889345746166132899153251124498401430398351474061507333824885905423048782016162983655975141045770153533808627439963862055396476235184062811314373615989803560524133984016753995646194038610191239011684613210051544189056417883910897107736264932998303466833949503762532224587354953818008320657896472471354533529599122753701096051616720905912427374705141053468742662779883798120781041917750985459279373315528634065568090403497136091321974702001564518500193551914223539472117299910463182487198941971355960147553680994152616916645949268169306934106425043234787025429677352537893546102936612029104726305222400981695532978213387012489014687342551356629661928678655569669900105725642407362298735801911710953354504058860048209364666506073678111322913585779809000964817540733934380465571048109336635161021023063772498571619673349295381093512535517583588535796617005100225025909550936217107604216418265187556617691707950479143412114192616366380277108613309054971932429427237732694216100749276154622488582937232363887378475651477827334897195522287843757800575953789188394772000368950217237852067689413048137392454419148078812624966296290362860944945720634629935433470406856484069368050557682015822948145025950079229914752337678003548376205106044687129501381133141004650383567007571147669997672573499550191986225390333193822791217290782458090721839397773004676627988377176924871976868459408496889364521488670797391291410797124077582744896523944813937159208274454399008890760409385925630750045006897715141241469665115880096960773655345310447082018922126428095311769609482108138362529846734307774020315957773015769430364731813916629682078279005762713912397142175522030554108098045393900227024042670302821497134973481046958820757970835294786660876849678654261410661202636647846994058530035593129876566755543097320006852196348508945715927618845709596878161622657689203893544400863920966768667675253160013387612433835155280177587499552587644375472602332897913382435445970605872839018459323801204166765952847888661855337790935348403787876555930179216647706552705177157349850309917165535152759959680282121435645415008500498599801669529714404270547052149741161741394326352745116409317997384336830897393875711991288675981529973838933931774466963899272085954964653217394946844530166969378781586161043749586359778421519447869258793518211706092402608467802977094728808062907876547431262725518424944396432660514646958282456686679549780466835561627202471317810877100117639797427157346209448260480969312306405856925124298822255998637437330375658691601029487603486382457627291109182755613984140361263187222948933344429236726728268232302371997272218491029495837868175605593805283363993059120674747969691351139244466339625394579875916603727230969972620172060746565660177641848539635204408210410110856189906236257324142107203327195241623478750001272875837940144678086597726029094594174663708504955179171239297891145720222906220440431622142125683105528429217552343017737830825934381055001839121056921880716606671213518404893776283030028420817807840361792966749123852456107453879731813496908855470011053865774202767332303875162738567626481279794284048549016153258626579769162702121237403481658596746089349190073422928320784471761046773560054336985107469529393705097120295110551653373998757164440524209256358296353697321115503895360150126073816030683666465939983849002833587155747984949508102517668119008367986300237540529923451996719857828825727503206818209006770502754718712416281379896677178823296401375454304247443734569306990463740028475167863187776275153688471973824513764616480019469085540959386925560629303277780424202762639999753667241272295495632533457692478861463895520126471555498194166542925097312482711138978159795393742329260264373338317602955724509500131419834903641405668228000062077195478023160245205771186549580676033225707718028703026035041118347686728416115151693891296670490952840924167460521019397072492685861372648842730250455715443717793382606719692226696263362576240325567138948659420156874422069775154904675894876475934437687363803481859389115000115129310227033629942175967158480223416608507433392612708267518048474850990533038098146270639729620027056343978361876393723035231747619467624237960062921669900113792484085489498435972915475315017279878612268897983845696010057458010180110715989352560392186662022272101851217018664655411059530483605502055434461942681939981946553444131253835521856964443900779852679039607332288079823419922470583969377936947814687997767055106200586446121288352614115803637121380809967559454643426934164687751736711660379503726837412342917415727633049608139887292527744014837168233103424810614603994379106518305550333593863701040089968080788897055760695414549762178956840293507465910934496668758757903324706914960381270102103846589407186420919052199029752041201304093513383228620249601888767176914185838745018279104447567150348908774365253889877881238129839255203530296748138420241141384294963927238700779675571063782379941645631552020816362800925945031007130292993958549543432422347739995062331573443965085828124155066355736680923941662179902872029341226698960490736385013660122697544466561163725445896906736939028529026483361108253653989543723860900887928891775688613989931845098092906250843953746018245447204128951237510119027288698206734274477963742864951905476534971890398215055113276569024075286133896801352945100193974706692555259645381452654630975354485282411589207400154240859404238348574365261682416176849111554463329216214146386582675730844335499896492940906488037720772795859542870210814404906398601076129585819506428346842430237431247785932599327479822279276603162373967926470464822316110119504786345754031131856567677032065086295985495007337296224981031632488202720297658794867256286258091213883263988070261798178996008952965640663884434209948061147142360814831082186793105274122887114532239443583909619894448958593212712936233404273907728808725766852324679374151945854272414133271824038459891674076967577644595649858587850747921710163297318709930472458100313561289919985685205521087186386098639370110400164615089752218947688763844647923630438573901398857766670791912418575020629484842666683634294106514289258405662959175728636833586580624363324524645448916297596262917075574049482143741521934452615453593045469083317697981789871641170550968391638708648819575736498839632708594048023307119133501769600707207674822713017224878466900894568521411349772015007706301704887882275528210376873074790009840533336507065974214617008802611265641895051276517795478377164124148712721464986711548227204574076778946335727023647510825127394219725680966443468494679063430626569877943573044109608998950593418666116595654138052535292343071078887060095278404765454808858697063673161681734935107939015421585801785834250673108537804860503535554692009611278695906150605422296402315589837363684079722626725061867959123267507991009767155896874313270303352517688214652163831898862468471455603368526173117110791953243074272708597193192834204452428145362729628602664627985796183075487210474813283421035071404922743870677527452795742635622446373387908227338846154651644952848988028108577170824857875673195092518644682108221920831865511741856223146725352736653116566712346127553512095824309071673181714188761209051817927521619752915792999663169191873511697321304449167275963559242160385880354802492647401344482556382676421650723039862636994721500782148881855210837344082194468657122803088987446370658077598098745984358427614238606158292542140313721661872779409303574489040631096487545256037215062993618905168332816660312478627560822323779690849137481303388712202131500353921766483339430768192207196212374594801920467425463231490023123334856359135931182933612240869503923193582755701084759417156088250568759618132015237275910727292590362385333610273814715853328257581148682333490918437816304441923806765146744265927304582372970909452469951382076672582536630107356113519116647925632124881508200401349396994504899041285880644142699440771873073237352639916253590543718202702365166278888576576129297789003085021305720537609545938189020970012659423070666004975679110755201109432970706798181586386865315197595663136083932515481553266262930491528796254171035947574793800307209686056384650072205132451092195620908029611048935578505711495890213574799779535776125077170308330563067470684589287812315387987417336431751077201965782400285431301891370686467209177983362201258122088305110541429194212999196482768147489661226684989878349829056954551549541784656172726216771224287208900719175193406158641811129894366901223941146996434800465305900671261930461105615330434686634393304098880836423078293020934977324187709583347359580373003227735661989102228165101215896134089443792794102061292470716695061429301658164526482998197851988647518054273591541899062806191820817778420494106846692331081721267599426741318965347048868307616629334294139858767198088377031274184049558174086924024248294209768749892508874655564939395020016766050451986626090826012837806147061705110516985885939460795128434612966468096243182741673921804619213614664920336863798394206010317940282483459864237807844031905138157744718543954292226499256772664974173505843084418479356933999244997883972081683035744992844827831806372307451023371941118047820214908384576590557311588359322358519250357313765446503435217935567925349085564100156638185494556394842716746882865775175380435145459724392755417008137747649309660450846831318598095452180804051457687020229530562374336089563799081618305434140448980825641988819879471226159292624827400470758355416430528662916311878562030286443059705852970203499456425500604376796731942806183823539477368566797607062322778462504563253557071368051991823089150891473080897882275049764118469440815712089408094049967560755251385303528566550868860185627820452219161850430376292109938124569342263133665512564073346716622670098716890566764457291836152462795822128688851822014382935221148300498106008628691674573106032111988160295448992214869860482434675070423243513380275270575506947015158728507666657975473440238269882585068255106397447901263182579635286984522688039945112472037312540503881854582669785097057368049951861909223262345706805867291539302727482679156720549117742485671256662827939118932239579557067030432016106473018460448258534220412536152793814038811484775298744885719362541641534683231689579936698756137131492593938228580521796614568206561527070407536122478598638602461464944806929922619024128271718078396635661941467352110405820931311493019479160158679350245008143568266391326877602092449105414796162991952360067522472446646224517992989878105810002271917407918125018712845009477176845685460274229386657425497548743577440490381318778900120653605620756579108444212543321822162814956654790566317588393255263458665940395828972183693152735087898071062922247490770049976368983229377881420467216778545257641371340054464113552056458816469368945258847858661357382379969100016786440090205070675555559872704967902331833278556534069030844796820363650529656788021861114154027011895903181741734245596581166385203263699744624945616276312217665499080998478946673910559471337068104459245609507178672499972220059787991611005161552968042202114688906548792686726397341848763433405665163123075932420114844328697814134173952771422648884856297900318537602760644216141853947723810609720070639655711586055996088962610984404718302814924245441762124877528311314936881310358817713583948031142951791447741700864048725089845102550146423505514932380193766445474231324039464566620167885608394175398939806029680329663414398256442710869457022625937204696064517087335607499421762642906732880689322679517693588785429335881167408459481166112874147079795945876537724195637695543851693841024136056011628274531466661949985696665331721345549283804694054852554128715635489696059703766641678812108572594181421549025138272788899911278695080724110350261477872612235280271556932257871416501447112999940229937613252779359030271337499058254754733264387543015305332828955674998797097631754025193610124026526354271985221236216815115661615788638093402603017837318301867824462897461101462766783653878278781708807039082574189701798524281288222054021017692563871686840776425331603244891967273153539569700784925620322973040794942071676813069143346255259484283627218632833365608670039986527831319513515071042667087640318015232477244369463709358708050859335228218756792654290129000631268169666457638612383539069797151782437900887111130540791465374002227853343567618578427674361882565145941269450303684128423157289410299027642388711369705581228324206721597919560907913859427422086833817232757665978693692334815074995340741764198116642009079813826971822595306564917133815519269011522075683972182972452904776959676960333688919026966633029734175266778370180483710692618152743511103654406678802479424103497581565624769410230168664633634383699377787426584859258934917215660663860188611080519173707525040020977867322272716389979927057300953637204674083146647888430576863762745000268513313467801397196598731343391883129064903421558909421211398897662375501032710850141550390500974744307103684457415366395409034423101509627845518703173788775241211378976122257874661202944977865298236109594222961874451717052325639188070100959820072216825813285935201855723402863117358065501809269312642571797987999474625774875249991302606030677490722218357527282354024020873657208457203412799384208333353070638049577786361175987587839857683269852712133176159922196156330970916783950635271640526098372506493682836514391640254990337122909939061724995232115960876916183850789040819368850076357240256030932741653527450612578810614492512709692215092400034749787037479389471649836947764158114691398306971211189287521195830090151100147130776929077430700131567389026392551050095381750593174390992683858006409061536004765041426683707066875160177831251915272723911012884754175950251790653084109991341575858686571094247983143303245106261137695199497574022739526288525903460923009171982455238144936784900878025338884034520436448335868023114745654755046710577099794557142100017797749452468887992918965721438473727814626872621663442962286659511681183623820139298858866630848751138827359675530291566449340931096628249564835118706961830487624302013497008014467283728594661833348479638701535612127464384876383979656174012410960975628898429244379344635351357355585662624183787632890422464566533241212096981168163145162054370077376492785116442986099678967698674877583589702537674801296584196672478246322174198085493893952966238098632945395018694648243395457068212277414900599387542704677717219802711185681146606317132248680842516970934455204724474523591134373445571816380712688821865733902293719171436168381730767590861110790582122305660134854935598631907212190311301582943952614367619465872526807575281543654889647944738024622200571655948722752884977835188071670924161116150413292016365465894430338503026917270420265916118360014228804348251826645478269341410768076511294991316210342539770860816087137461443196910366596693119628825340014214010819121516119529278920805378911990328815161472851674784596134665142832505004244199299771656338507055565579008448315647936779642534347763522201051003193391812125055665113417192792272857265044715147211784324519705859630247402769786232696614774048040881167532538301699758932070494160609537084859194772880765498149231491279617848747874072379980762688938658846829720511220206412845398722750006373681426981448364778132771240531164183293371145358498054871483899972646957573924126336691805725325929468222146730031845123297866279133793695819610556234146180891499438609186943577489396529836756506535691498026400741562248456337288214805314809133142617074049027850617248445535973065516030414995332260710565642881158292637290957727663035514877230369957685768540656212610223811417759522507128812963749467307741474146512596909625020976626714528937645475255070087485743482186209009688346405887188901954500617325604445825820868333333983321099992888051208056629859226599426290501656799427454197716654692478602671248203328257962578941449487780675078157904852818769175957645965418282087173768107014876665791816780536307124197343970708248614409398882749813066426498532988302595108869691248150363808173000604365589156497647914315278235324015544030335517038641056795188192336336305819555704399297788393041805822194500602338235571422321849207027552572551087882751810722939196292408496329853119692774271608221276244580358333956789978595497465561642675769293321786768506402977777979196687661025647882440677418362222967613932353748377269819829479984093649533769480159374553697345717109272664550242603443739812727113545345803579979315335251128979783731103399655639746853204710014760383734864855138968801833204669786699542098306554522625568256604128184568760646839204628477850430960862360643884827769126226125599896467716025778625124447131816373871482620420910671123849942473570079483767341018877559867385162980615306017761672194361837537429341404613860637741431144348129521345990110480197831178402298612621428168670212553704467484042297422196534317131950702653321554441128481708179880752990063955579629179567584582317460655420045857872531285505552936659721209039245683091157217862919660887319020052259768809858296223949928473010083199419705426608825902439486286555366462532910128798999728243587149011129690582285572481017525101845430137147029603595211989075321726230208323740869030632255775401536936331680832228664867007610574610126525625554914199585505123777096465807144088873468452042553140517474405558201475740642368943676667409335506073986405052166949591850368121327630700209913024987102540226490576163857045870095404109717342540311402664841659524229031595530664473318376677734829711654953663719323965679421913386775822146566092900169823082736018223991747304436960807149679748173707286389793586837058782307386117603310626373186594487076034122728978499588533016573742887227110801760588769456058800093856428080356428993065432720088165263513202063937918509385873253827712144873855141476921471655518060796199295307508958021571908866669454042418707156323147865899849368791362152540653179705154176423545561233023605191407043771693502122677034765172206763589321787194403484412800271231144926372800124927628657412186050701566754508633817457000977743704640079351775043459937442601179155281391777935081208990954315060864059576858251822103065835659911213995014332629492034945752043550512962119488160655190709983717125760846327977044807041938610626318445528292043038652892140213877131537645084315286043191352151418829899486097696493223910233747837598259993953596466205138040781321196655768625296881205392600234699809750972934523455328994234259753312380028201458685667212069397819306391506802588999293493313256939003263026230860586039677020827496918234596102523856971219629799848308324498202449169566056842231333512409330223440828777889817025168317994043331482049870266135110392678682778532678287438471129966654625871535142721709617156087477622444041986229720238371371345327969930054191476653255741497085233218544947560784225797437260601925609949300327406038838167898742761010239852412869987299033059455995305797841272413777314512926823957086524420112397519190550841689086689333156823314037291725177878487734663856112390822910745717609795141876912986094093128081902282071513576633312441730123862452452365611098196858662960775036836317941394868870953955736419931341529043623035017956740703642395670190084097531996015273632681914600882257587400496661969664893315239272101105127846931047370952063586477633891557101743870701823287835322366496038451046381084257836588433990227506326609714613940918297444117757698267352405794774605588768929499767195688182797373763833308569267430851080627737766710695689954299936974039298452643019697811105345941541937627037035122217659044798776603422332480178936208687944207897083720628435890423219146654051057999351420039049812835670475938416047911192634902961998277492831964347983867269829722218060579406126065387986433697548917818670731238619451013411232825674593135030202017758859943393357716913970414881489659639743993200209592632697097732752855113105581720514240653692979858933862373248682800729342663616039076350455841768340077279513057344353798272115056091088135113367979024731462165989234457850105908836009003389027143675142706308607998010910039508526776430601401318298738894876107532546681176715077101693301127144611561780357617763298249671823075886211314002574345023359580735469844858607898778863860118526157338186371903828651652719999605450592523818676790552604995956951230738554272289058685849278287656245534240720036567539681295851975290241783237307620158982448563716024787884033802162651598409362002301702638851791803846440569552939998649528256533203706243737636898980138142970483173145677097985542294468974119336332176851074571048982975758756754098877447303332173504419502051292664405224311194922377082162647090838767850348138890840472051676573843965462946557383316121689973157225969958735906851036096646713755629445854677929966058105435060270581179221106831585731045972319749635157386077212079492857427197363223835564673806543617643388467765712384260362557774190730597652750756772305200314682270926238980771392392848281419038154099750323435896633775736288436137844221901978187978655877230458692160676640153061187898687440586394943193787301281055283296738366191611675681357722929334228099906102454273430153813504883974873398874423136497194405051382624775456495552242588127545367182735204502365847076148552689065763890666313416688914601823056110510661376354889553743962194565653606900400865689690544422610938134086825616604211695378067541968570349066636729247244403552506245257002306180778401026296266109390912838467901057831390604417517574373670799372037657872875015638795860272357079729870659365016337055924109062315554413227366659308001884074106543102767188093087656464260329354981989994850893738034928288281698761191014417163242398190454464982409645283194736302191091897472652935934563383962051425765580089476649654489566715446642747526099118009624336135713125597310679351094353254606713457248620757273218594808688627304535319634310394190344320183558689146810717625501214665228635431734036338154628721911001466113533592308273406803967318850558763393748498016644793481331152561078525704032365313066761703579685601598471715510249315754898000609113805565872981034543708297757580776288473043149332836710661913385939219048214867268857802114850362863886220792531231225108854245719686523104463092801851757647028497070084298386283881439564300150842814396612840450264534725287987850459937667978350671796837674515640239721461687520372199598038245239294659482651714079353804970723604610378551885682099582015198362605828614262560059517713220165019996174061482442818745958752438681377903455696765099376149866588638840603182129728413853426481292123884240818704834241025610037416082311598447807879921437800567486777091671876654310470816318474485741944117413628773517936702821936275925896761246180891213344420985759615930214499044679141637539916843628328640213567850768063290284547397486630124957248765587466944838869089876009230580916727890974542357421733183839930636305672931138895102750387866132752081961546083019216238492848711270658360780465152404624984117705953372402630352533167794437033164265012407947169986197058947126715291639492634491366788868497190563248122276548712117873478593938511570201141248832456248991228776927084622232227022092272641830500755189974516829416853068956968600093603633566025975963744603690700448167736760482690376517129822014401712510040530512814385973523205943446050509197096789944128620872822207910369061184188071737172333238042848425160256513196681256465780337367845682190739278861152287490372192516916530964664347262266938299715246493227927579928950440408279714638647090465846693356574085933514272550229117378816888062007297937943546956546431387149650691274932599026568414951421532566007575699191755330218282961003399971330398262012094160132973780567120514100750320103125954451796090829127972222317294508750460144852207373284067464760442727745327688589182505370695687673671490202420212269768351361040642414094105058094081862450851899544405213003452184405687141755562195825475045850435777004895834704784191574331869888898166661836969911069132302713049977083101866316160690610855938551942560491559236646722571586057865032005393737536586673587256636977471441580437502084781512754761526515827051707175297230135642163747009704366875521044811769604361997560064511392599004369565869098446695994184388723244212175098397334553299763717094885642314529744886905715582428369084572300709885712090657731314342465006279124813858592605664013818459260391565968047274921764885523332290906651787120815363103675044510466817403589501242508405656159177596831258248563571763140785620015211027613998287666907699768417159470741683824002576239448287201377374232928039327365368978338076169141566672683087032540017247727894931310488856875221735235380779268241374761666268882619085650848217212219516431468731691769722503021863411184098564068371588155574758895824107257519829281684643150710654180978357331726101093048847350229445976318230186703571723947748957221539307171377533026763578611460416876042812143898254485009023107740609201644152111198522945385958531732259452353549273457149469192261042501761245271550041750402852973394859632668434751797708020725192468586493240747021235261087307650508754769277283703859194175572290920122198430080220261228870100507495762490166705627740359069707311869461747570839663557458382825953295272350601637596991810116679077402985576799629230430235385547565649994496509330802728162446545066249063507630195917578370700895894948739588227175442005128945560696763088220231623638171869560394479092377474825893708933560502660807798304969555099704755465979295235205775259880844137382188953478714928368706205844576138479678950184883499703811300986024808265334553677842788008556252968101505682703923903547681872089235197550823956772822182357278952627920192313320634397664468181027658417753044584566329290120545253797332955812416107344990125683938706989480899953806367261129793634871141114887231561060090128880922634408607416667150753480077987128144783635356186200691340720288271265978577530777852685618098516045937233679869340338999100722560575798414610331040434612468060997669903391432967647444484240489381154456877066858135022099604508067813742728165436497745323456192960607077520716090514408841876572423494638845447043082510176068393373590220749421920444342179802926039791764175234942467205998931487608970479379384152202250560011026032589492915699775337706772559947089533556368131118227850393857996290300797526168083182224162481030541925516700286970490756914115579108097221481690840838612933646815654435704176737501564064496466931344212395948971947996790197381019781157361142644033844444703165735894516349329683656100026139500514124339237308772217094275324255776869634766770897291011948567575053319410448886300680994148447262685097586841715162722346370877666598880838210702540038328036033209894377122477598161510755402375211724821901192713407082951840530147365572523844831236269116760441220571298387824007897942695490999506497188056143938267539115742393990942253884809836730396465975522649225960027702990247318600349153964471471700578859610979161579515818440036995625272645900299732422471951402908368143041055014013183444820130501440350106878405606560813304286620327572449477255926836125718844750820879833328930973254264347214425728782571834775121434249190791078924968322563719277350626539822502773199483051483366366663749406372715683894484066797748496409064977640739648801739335883863211028450724325521842310989217367618692205720719441787693850427406299320151673032434911669965584545507437589818990611304736313995276856970211882071820347799259451033154473041799504564818947837500114801483221527178681090344852649930447171997269078265649342572643408069290178369710101519189511934146522916953632566256463792211214116228869464083029422349708196148106895492463828462091950342539324405347745754185498830144297433516813168602295750074344393932014101503734855195574737613936165721517519771397480054758938083287535758926077804175333702444700082742609567867724480834309449495502177897075290600075711071949766862723566619655659970461260000290704890089127966524989861184167798540903736122107512811250266303105281340667772650438127368082619964796922468626645266077084348546220141612421618205238413492593863183001700603734234650027331327071326932231446970218148354961163482305607588204520619046204264326285311474874703323816715091006609352345415531979292718960528169705141155158773227310858503990554033280476223262685246992886325174317974981313748069805058514694305327774512635934862803063015858347720547832182070708826440385276345247470913039082095830516758923094292501432779255393318346666692228710647618238858546373431487786139358790825719265520698222037233640102493689383911129490549974223918975304390491238931322034689808328949399156296566600487509717800070280375583921693591844748548802806146359606811447984137915425889207675169106762662270462949481448916791317721093580604745536222778931160370850858910363367672625283420328531005261559426205303670272051069922844633707221898995506688157957906963235227268000504788983035419565895686796746093393548567979081821644351637198155984764432141638545822605127614884078855848580634941593962921619542020757896428466078669520107752494368235766399930699498186337713864569576152509824450319166064020377897641760667669636563128931040644318424833321023847708062220979102842435045934764433227834972976533343012322096117719264438244419307682386455884266986093827177379351879889537147795285987189930065860170241195804232509532092342077203912817062170368482307098751481127058221717163500200148397764980320855588334908970620646463929778872253690860751397644974431941785162000335575570759554188141190441076565755237885753060348365425980859411967938142805980724061385243963674396885096272288201297699639085609050677532157738966775244406502533414394654556988689018964498892875277834831008047634940679781617391883695752524151713099539077807805286036107461148807581294097068466967833813536552359765577558204938452072150712421611303054848680541054821520249517145561845934884493811542242252900762639192826754320894052406300064127586317618507441377631995696674181108979804514607933829053779142552616753274410073734825509075020378881179130386778477917292867078316683140201967796477871907581291507320784975952421385079459065154757779427610309784082357911561377360196141806082112467674582329031150270263291825824087651562042559979108454041935574381765009656911311707675603924442214265122395588271887607971839396070521220632877996165240698026662526258190290477251493796089155075968939170269431253525684560148021811407597496969893967225443279156984317458177931967178471956556262537567331357806217122931644752557194211332491653019215543200342455338872933278039815856023001737451685967528669783950172972919389613656705932488226699024420382643504113621299229057835497469943773628267034540564892158163163403224784333332400599532880146554945995044367844998408713948382967230554730997455011352131142461950464170622741158587043192064575007081158977953602319657806921774268952630220192506943800272514457292997155436503264640280873607146408841125233607178385507947663766662274974015235349118288747883818344489033069635709912699346149677559200684994831945237663136439681887851330013590604055629244215452233405648912053692193060309780063587881758474896965360308134771606589919855909263510716529363278564327828356554030199390965495740900094231909375431158419961053747022378234934401140310908836003208088312701322301201353173321032768652545234214528324052365296485996337660460680045429828122820659224632854378154973597517172055313321982767850695967493849482420883420086647567516058877809071622128792854460606718731534054209964731232874423776564860831606416472674946653412057186073354846207473158109041554124059732368694317551492845550243597501780476624874858822775242305240652005735601100459998948259775305486123180725954283802721836974424569258318744321100271984815529952000342650928132491944901843838268577509703860912991999387243444906102537390198003071987870854981604684965957715156674286168373277090553250406954195677820435016059738269587620482001682291114767860291259547966807986684015546695393992990936006966041099309832588973291673030352322439791184360619435819494854030220315507871325876971948390300825580093170233453906542356893898352096255135360065554679344768536263014135182070797325196662362628169995201110728160078008591649881032185940743863461005038909866660028565978792165196853792446075497175673743071960498010795165976229776897486781316578098678498084263133184404300508980404570267658595301313440066905943600020749498809417379011937535227246141089186783271172201667032980419606039213919999720493605313982322047879736114717050214276314982431396868610191459417523743861338026305422210864380057662959771641155186434308842216303277638762059549001095987522366010363442262449894349906243415144475889505123995089094031803303524808605042913976920518690881760405474651678282055798551954298422245582562235653682047039160843247784258066449675217151551699021667509896552238097223878733377280771728756059697004168204356124239698712536377741975870080521604028427422048992367327393581787553880866367543806628133613102320540715629508112690430468390080299869997006092820534705337277164172147162865094281831160016609814553177422618963550921870409766670174780551968695646194284198739786624951515154426730311831389956483644638712826739174837316160911530860107017575023008555966018533714053775654960618000470368033311370470356348643182469281327376557598361846372477356378947377144610603134541854165003057637675913613382500693993758247501491282497573915932822572490512984549519145547831455916028595278119684286567697228663273957353638959107959822691960172675647971056160232639077539060619915179241895764958428981206766311026901057421699512008250829518588823423589393889854027841366494643143506996741514930727169006970133779175148334950083097912095122228108457445008655439554221047535077714915324369483379623644875426688716335577478348450218463025280434869666798304680834509956502112066759726553491692506537631690802130450337296196971892120685319918689975313414927502405946966934842621257888537624380326623590028963514174734320261645474006345617201476742437663894229339370181178658229273905894950785438470678415019250008643841672286533068289265228986844438451400831209637763878974731887324162076587783667862881337291589677509420390844431434194014611830038186287189643972125357582674392714653238753534351989557087385353956898670676662575793461436093281793398716761356182219575415579673492753585334605222629796887101264600192016304036198500164692467566830159187458684884824795384354583841657651279334706784327207750658756349239803385500021163371112195512953012699282707127851889312567453821826244937528224736910912270046112391744421335134927081659956263450776855090103355690352613725167006807838473945601248212260382847612513264950309001590797441920335799130832253699639119199101640631876530419583350251746039787751055562572463636814807131954684926126999363251571105719965098863627951802036633419388063184208513192967566550280634507058681505183627656280528786680560756765881457599585551594608188452415519886217272637765435637305351432244880746690936585600700069709083924423933384889550960003021331067078537466849658415314474891237399276512022546738540166143868638784694639277396134682935420561010624583488305105557099570990644232900486475829701250088747668188434818209461176062321781819455539956946887816582868653995735755107061840510099051650377881307400114229830070319751154472486223977923149747993626987521442327371931651519148472521728689456642363945003984334714459841516378573556481566643916259880402278353500249941498282714640391433959116119355089830192383701352359173243446820153597521085282067301273507006559539953707354343246620101977618033438813212512239169187793536511820629104851351575907036420897027734927829983329560238034968283170436064418605854537505730076771689519555429005291723041580749818167434292405755801437109870956945854480460095987356437724383449285169104705996475324014180412817855417034399064880188100718747596844096230481922544182414672101127489618704804788931458621029631562472047591414005131497073327796004590075775316746100533687363045273627719801774959266213487063983717357748077193165588377642511949278065554976102440064941250216277316352048252314729993489254333897077754811354031084657287303817297854415596530567597959504908235598180357851877647769145175637238175917723042726777239077884128203575407297128549377851862436095736917640628058919012835976817570858272539561295034991233042703554109596065548156687563002464125407243705215323132979232093824833817292847023282209910936502189167122027660746544415784288992474922328124078198197934965716273452171429096495623264629693165637778067672354453394471448886923366072086508255972855062694030757068101872574640212383285312639848561703204921075549556192291351177991692153711276492629892642913035672371231737800793231553278606918856442150223106470397158308932009545167991787822252689488543695697673438285118291764462749655238043258276758153794306808845950443474146832035202474216884978036171060388487597803834835764592550092285669893741343402569477914540454932674090292289369146096958573868832616504909944400119297398081469354912610563467371352710209986520528644627895221219257136031878439517362574700622385986462645844099017981163820604235840678315392284472839896299210200030136743308771103684995242761013800172758593199070862605123415544341628623439295663467956206131660086123081526545654445698315060008879189018111567616422985793325564452776537316133959152849618640693682078602068435544051713411353147962918417930217448394774742343718354802708323662844518232406439083448873843361958200268421362927125184031539094676921656447451937556145314013360013707949904129203080745840701022703200649596014947353895455480894660906205630900776230015037657312071227126531405736984310962555123699034340177036013326535526804132218722055664395534224992924837890537295591759177339883926565012128900232567406655461033969898219228038064345804034924189254690529874487678059827597521216096886758023311207145009551704542661049024596536403778381024473580580779921784050264702274698298146057035451541824124239244561373117268629119393247417984655930770589778018987893187232893550510484389945183143589218584353536606667992454661528830202141735164959969567865720872890571498943926169500955002866105283640647474055733912421993603085869338363659140860582975674942150229382872621994328297082464529770909507534060071929286025201412779721227661574604746953183330808186128414739696155254518384740814796670941518765177000853868617892660427606814388273960022267754475285164097572662495199083600251754855908366431744026413208179232477238821892089322954717510479116466665304491416877833118535894151086482922028891526380050035349111094883382461488922157225208815079681244032227334610675846627589694168646704286572365949532322992274764587102407926430958319006149596408472586106486364147294858124283540761289183859759797530587822451595441799392502585258494671984042499514051751071830880660787638656581070434740025769476906342206659671595046836189552382389738905041678140438902532299686970861487770737801794670727495742153103806500285199841277429358183697401226019324555248580843287837996413811058659499831491785235974957917803579485199568242805702403754304855050220436343021864769726266395240650600531375870002787806688229212288834006330578379068750202142584560721952716532275496306490396659966709088935829451206670458658053973358334805590987862188270318592186353074641987841424097093917222092110624475973662820100301674037997470300679363239122610497241832216244188866127390761254867739464770051063185443026274531619418410041057356172120348261215738476816480422932269261509327562813558649147524668462177904064094586291615649397453875466402635926647979701436615882055721444223887621721304978382564242105848423298969260477783947718871401376209315191615634766855673845038854704365188552175752326411912695790990493324140762748185692700158014164374175234985312751399891410481210855344703561818639071650519006871818026782318808322925458866143231154221059445384818100231146313079329741850681131416117371222471372531938691213358696674250533966032386814537599331929743791713025054860044059121191919590925926058010202866690488515711215829653676751886792490986665276765776184087547194804407186453792544069891117279610987040406636661268702075638589510036501832495763711223361809116561955168837908624083745775729161430383233905026881917926239943559846152753777926011633793865621273826644971998174676440445976464860413695475094337021978191913261748757181018754212401891360452713354978023848235253536161035820334545163712759629336635414328429177930220446492244804549210889947261513831153991876226982004601946871661378002966996388591070593927845893163024867345474632430758145562471456964033682518875057130723625863156151409298242747928088602568793483318948175523736457439957860508102415270205447695773865563694654058382826361576397318777498113964443208347832061348035576712811621599591055300054979202881242861311864527986092067956050813980951926083328303617066843541012778171639844066599367130548288234810473591559087846758567826456954855112300136704126138777721689127514867688336534248659440705698372746490808535115008266925236809422886962597379114784261793434751982674283226400675627135259753204665563538973952800490620724388148909204108458935499321623195584840716185281652731181266740065200918829838709593736566952584470631528698641603211436131221337848244989402048004191777940718584559768481763462525687731350319869132126994320334400643234205543735764438636283608917007226929695852273425530818930480094446802984658819301376369278565516733135088758297733199175004648981858244399434531022184913370891273350197961857412022870720135004302557547752656892786548750182855036909927474843509807193707270661640614340534397603853019996993379325359903694526920098732821098744095554652034127070125882629000719738009295977730628175053596956840930229385452277515574105581701734241926684457564579986982070304756215452452287874491638720633618346922615458378177762604167056276562779692669194100205915654781322756608498081171482826587450443411791219520417328886010290911381826765147946705479618710337449590497505154811829307713530207478619938660767917037243083277607647875365335935742810539331859225114697827561741443674006066156383921751156938334399126827490004648359691833427647232464332068896682401325337370173410210039369175098995291805143562778698549128538826900408452683976245993362205857490338581940910615353367436438316719557230989483175898597195017501266160371046598210352592347728250373548941380947986686188142733531287007065121362824751054008456192157696282204414789306680359415598368352014709953161765855954882303491989844850565008730695702594353260331949310675075419879714838044906459424696023426347526389835505835539931920519994091107408987753774591067177978863894916290046723540473512871844612199058703772833628003586123807674566977697175117927530404610286745982329489219061105106883589267135007568612954683268424717570156595681808591243091836232115775602159286506008592891719900811318542056874477832293286697713013642969613687588282572004411126865405575077058401698258655294762210019187567715426938979862082742259082935704205983873163021386422633123622065412743981355954947992369457138283889138274221266658505330631920989090743211245109008754804184998475706110052355093861229612616317786790336332985258221092762147538485371158680738130619844656096948160912159959102992849320552624839717550700836336501631482978276140184869492089245330931520390882502068429592130069216270193276450076983961220415293262674918639551169673868334065000340948685440936603847123868958799045219207085462834663869491834558757498188837521265697906965087560399143186402974469920372209235764574035905670814285502748235350286425780612118083794367963860114400660721596464092358748862954569481103553612461537059123961229152339996496601960397840900600942442114480508747952635737628350573101552469762570539559258726619069408536559428057860367185300794836014275440952456193558106848755001404315120490488508891304810561351631274877215560424206419216514591061347918076701195388808849296134504036409124464756323162180921499015281187074531327285948378540527167934781733225346580775094483705989645293410223354810595297787211341417907505905137207434936878419424794792017805089956092515669551265797225795485781933220329326627514795267310974004660851471933935215223993819484363793470099520541513285122877846265199858356227292450771287358918416623036614939155690980517887594567179673696713325211945809100679049765832606884733739424896002304315233748840749300213279014749277948064991664369177376016239200571276172094717831076098634580394096134085074116174262365431687168262765501219629980057855346561013745353971638364836130507035571592876503381916973568879966030784791186448043702774743491294027370073035155877978346722886966706328321344207245870439834714006108414775163474611100154033870577875787541503062495345299935253113265308052151957803778929250096758172180411721264202289938973137281320540124548579146126378689315850790035522126795584085223151715718737916285989645892749997739366751545479469662361566095480466148986426281164820230538666290380332844404080631661494398108761552980570881219057133453731750368897031416536118138400202809614256471324072111971502047005830256698975491770195882461044792671250557893348365123608837964555448983278181270709754289457670964337650799051155793378898198437582612714114274113156202337400090317354466252457774852765105285648558307407461096896062901815531135958982574149652900814774978051813984554782869110503328120797078123726828712201883488678340859901375478540681591727512019536961195983764390485275478257571622919858535492504149070927199447067500592431994705732726200481747540428440908215612516961984349549901702530214235924346852503953734002911347042764385069120873296944655409493506309537518401947129890047130334152831775123663013254816739091815292302256212343798968514183615439308961705429363899022823832080536147075835271226704814865855571942191089393671271065912247567869358885784049206843213309474738401878032676922277113439856599771214071329834925659332472881955986386915693310316302740253050333406386601337038348746562541148956323337365521259449105666011868279731869832206829950232813299912543069303412001896789939303870004773780740478835756913192713006682124529268910328657906580142843435721371971358705942365245157801971873715777358156169163084722022406372606124977879735499635681409820501381324389115399851551205907600971115598232228318751249938578978333356340361678184648881801592864805873677651580941008200809534321110312099229673915859236795823665760650058752214581955912062340599093991259955250583582543580611933953633160506430291201896938335660448262788987521125938826596671018101374916176392278291043016016370752209686052204066880777395661380650277860623971885453004554079139989152699445576438208878563768645832563454117213555999615119363194438341409268568246701093314410038950683010097844298869627290784885981520497862321075903645612159257896569729898160075049109674576111698820290109329422414351722781941304585378020050035959620885200510650625917261912300667546319940015221698111176526002223166851173080272932993162822967280644845045004304252435460906090129034996289317650078101703804507444565036565242233191936167006716748291858945492668578101401232717797905526379603686165748648921380169588831412585107300758088266382501736321773295678823605203481997014959996871579988306751625528648714203652650274254140860550058701228184471106899994047374674920829515795041988255894221683977657949649370961838417804439617958961791512040956809245814921306454213110236328584104020844022513535512366380852929404840209023562288896614923956485783000184770988090540043849428747401177266871766167334697693684867783048769715291950694690223545340099318708532276536925682691709508094786452339377780286664522446559480594193216348636065709614726077096539236043476584596394503096860442780737151459645881468059475053688184837328123689312464123941698641547679689925510223299951477992914060076290061755261328393553514211672767936317150873192175549711014979856263211156523676602615594572065249596329053188621912571857469613186257019855760023555898116214932812157897935028266388547369119366546168092311672545016267382126927087703046600520419301744798017239474122687017757752227905836478265918766312358937640688876826032342807905605214916694869749813737569748540690455220615218327090966797527509998034072180611453928962457876986737041959699908036953921532574644981141582584633094564645588277270296882115181772824375678955755146321858317514977886557788500654430785450394601033751381290866339563178376936381836996304703474171999528988314380520186520006402013679827384821240145981105922290989419518836761317660990247022499978717840975903696525797074807900693236496442347251025770623442552028916826951547597891786697569106870400963688067701117711280878215745157198867260648596083728070015312003290701008150749550899063051447058145867645733703918094875372427407302857809805581244779846192834925939218038131599431603524294603459090988919887522124194504364440333312907675366377276300922526871778308646763846389822091786247487403970470501379647251576772947657825258494647137362070760391790419087628544504380930356140070029201903024683315324481933525991738683348572452298739967912317811473183509716397229339653679296686870333354788237184313235450388161248084406204713046061064033300306229840225874864077933502416377931805118190896202033067704669371998768477666434019005889872861587458950189726154964784039861840006744951714120333932816783240938536477960095995429752408402744296104013662002550561567117453950303235309074445466317976765258717918544430549179618938509661676151380306329233880975686432320883627962430638432813163037615743010596982127110698416939746969351710810206219582113804050256780019570572831489306941326382944099042754567314062948952320556423089738039786368660134647684220559586588177924494631086125939523061934553952833025378403058382672231739928799373560172844950757618491616350814560062782520390629183460329452640083401458134473194880150229643121672065429067590922499501800346084921892975547211980289717480875070670584602328166160765566868974037720677361329428569155332189305190057637132617230229187735197255445051656925907421618955078869856299517733744915253132119298601058088424566303427491832246706260079990146146025211138614633417048355590853164660042542040343135668818189695095135949717198156196890163948310167489888992021656941874157827851851826169481678183946282530095360772946520355419987438091375400202101068752682619508389562084059357788094431636566356261176454632508168227020914182797233767512229720120096393239118194403543998679947220493727588473048532182361691414862463288028149969473063580885944830073040627381289329430146434616547489707766476315557468722156035267665496400194384384715560177758584743912233518495955219891196578231207635542732812756384937903125586143300419979276026306004601301217408464105389274512337836880804941323011751794334459579866235069137539389997511098331533390319693606447645562771755907385019067072893200363662397614748978544647439782003775764909681298020757051038881372497680265992739957552982149404425197192991548268036766388701409387318035772891382365637391316162038761175861464911604715061858636551471869351786304970280578624077299930495539673821915488485675842938064987998602520355101795609915533291609920806818788785508321929523494633174716233224446542379043027271533887134201030682184391995966720731175268606202821606414434127701199795411219902267432562993256200393200517245543683695502413156381849770926452544931449108878315816111456235179021106734640063151136097078765863989508790768486479011991828989757926995227607284970724835031649077037616812184260274332390965123654786784244523344568890724034410465943285354707676971006738754030794783051136375066424783065471635407561389827296725189442308737816250857498587290480712701445621636025177665953274519309922152170796587300759017008417552988949879101467933476069139902376271556172768940126157056855580821160991348401917653783680886617305296661896724362015638315160786931069279938701723279089281227167447353076629231997053715460706580234784086055334279435298933912692468607847822053611133082842909182200491273094662212380410510230449374306463561008788674791451771524432244438963662844061618897649979457960329465219201769401805381583914141457182678337991141644306490355032181036872889572905504525551963819256407830405891050848758955133363806810406584131996933942391522403635761325994303632973881998171332378579098181114907791989081053698197153176573811124262065456314688294280233160323742625930425622513556716399546268018453872775436436924426639462071097100052629136780526656054075499739310257840456382028837831652942312179165464709265205083821879894467421419596811496364214838611865959469299746080434336372044859633117643889007593243644538832120745515908640755858242694143518166003648970617493418594391968698157458552466040384057764995899160495145197626322895420736678641341965314551298606488307402979413471424321078303496558063184038704239363176693020423059472064027363120148262649961576209138869273459618622113819387612086732525739252585274837161162351593194071708223230325145114588503116660415925475278047421002509617664074669234745316819710882654934250486392933210494150753807037205667389071079662308702904822176414152640388215718155242757659203185958056856252635216345552324013886338830833538051033655437380896485244480023411352798520140533642505225905985244380536911744633602730126911885840365491418582089539227229400471487100464704408531792309884308404040025473577530340433452902234070124641681606255260994862912510902357499584100517299983557802967349210337392457577689919891708964742182221515696546137333980081383673893047396180767412265894900978323358944082112467663734806607928855221137374499040803481885577099316944907768118818482995607853358563691548607608476813920932591729624417551172840609208326031509352165230560329319521578457794067167445766177017923884573259203371466095522583193914269821034632675225412427529717080156200030123712189520246234951079626254520359599181890697432549188790052976110202640835583557962438593555737686655566584198034732821469811182071606101894297324985499685914740356023710057313547196639738313612178571591121952375009441682808851294264782596669622911721086547238143508189370815209733011936264450349353690677450694218944692179112237736521092384416876942333067101879532742335018344742968417609253485834207173173430419811827227274690064411636819133031814777100121476289777040344164492631565001556163449107842938823726758626009175132414349683424608336558687982383526208955126479827824817852188259215160309137923229075246911562835349191532545275059416936040670080400813416930935299493317773592048634983127256059592154232936671994655360388517697702904580464894840993517549863449234782054123333490464344883047627836937720098157934277601783276088899859775513856501956334337283882907668157800823977160112272201843028740383328950131360705319034399324352365264714540518136142950504259925944718677767902988028320819170358782099036344203692664222596221776500369023563625405071029888125930039505418758427544906506696910163202866209460762587577854673104103672851124861049495059011044090631858092033690120221838721999050998445246781523351771968941574357129413262800032500327286293032639985472389731460795607628168553676603447698854725837216561467905994109369227020856487970829654758696463678461115281763062066744241754209904224620152203055264444106805706727261540814820862621441444261894363047696466223068139054915327705692757333371716797401590630035355413776744053064263132792216700352938840055986407765041236158510573007114682464964605200296052182368379347032351521635480097148265156585607515493396375740698809658646424348263771330933764157311656763413908976809130950958239845336553616080513609726828383541086193245910902153854744813566062916976979024920868480598760422964327400870616017420739682856939940828181841979714744940374981342313778226261292872108141018522075574747056215621271475870075055850001590385845594617722593490566419867787888217223639068709294743743208813125347456497530051154884214006649645304186432649050231855451872289796879346986137943295424028967358506523668347528091814782561955426508632786818879409844980303100109689123510950316289527139098802538355927229728254017072538893343986663254719079167392115430676196088184325493705316433264722767293129227838617227501027369714848101170147976787200314892077321500082510277782889831204579190102557752547121574425125746059788504262222786320344007933120043484612825069086022392780142602705978323997523766202702053026758791257424135974280396086322495480596919208779962209702223931930761170108847829030802427090190268287064330603069068846269441218184379538342456522642492914539243467370254218771793747893881899731572447648593227181712996304354106846958889908264822593306342473059050215166691298242593985178933095187227527744184501528624303373754919693975972753755120901734708054156324732895607825270109740376023503561488954768506314185466244139019758883251420077641651928459761766820674484149177611412748424661171704803846152181958451178435100463499988007690863015319268835523458494211038024128451189210159303809338291026503003093399335358848466542721538543868234176260520244395889819026530225307115381258234177419122065530109649506913243332557058985762270596048436521032452634953132164219715763335102024984157060824803267827671750899561021745521343756382941212235556232570070693009064359783333642093444742011709766779791386678947611935021420174337388712314912679465142589978826719662191426532435328697835327697887157666440842412807124903953519028309654554057685677946231765400002449094828909635751565839016414148222755178841594916904184139572043663645896053702851323471608637504355582994967438280681145564724775300973277271289540914833182338690806831239766960964877774124485559667530907022998659392243145136135006379748388865662743249733309164065558763424730563097462995156891934901343117870131434706140446871692676518150941960589367484657674513403764156606926597129363500799569251574993392359170420667360476156274196647276684229304973569676376620661694018109269463313143887486158013969902647256175985613361549384553199590717646686371612216932249839376348514427268457482210137101401450245998055748627328488275226619697918620463879630860569771099811098982585233497979685706531438866374080435744731101756911891057291061058315989772467995396794375352102202077842523738112100844859787318318549078128390330180289912189507677623696618004907065317237820843236041776977944970698667347863434993662819284630390040753977743326905217826619749285593093876258424641495957144511812980871132025179754114388263320139709976871845044037230037485094851622487369048048074386083518521986664958438525272470688757660749705042852198978098244113509900703026699474195980144739426814259834974391196287531651388860458404349608829025422238001522994800527870049831537882101210794277170702779480384841824459387540542642843904984377021595373903466188518395960080868262385319880988888551971826507717749789299050091161301310529207534201390531282386653786320623014163644520127843288700035327253415724978543201886606032009902230973113898015725671106809070944665611887934102993542454529045808272749496615345774590132331308863891583756759379186900461900897828989586325476255517841123884868064245043143803108084713645921303059272732170637680745392694718904112088662303703448910064289825955818677378035757408950285387507793425396696954438006822786767122825054603388673924616080851735352175189394793023621138709451339091979907365724141384219583041236892742432590211634667579414797276754785236642484761846745230700765689993531189835923457785317649793258063510352744765454308604369664808709085979378147745292586216661273826920337544024776814240737920425153772465716542921496469725591128982788556130038441117108446918167896326168733820171376185341017209209678848712645936086060097182786959722485732413492015060225290015266176044585783266841164263240294827487172292218435733023732977929633806185435574565934610877357057673080104006689100508443362313618183501396186439575786883079252185898284935027692399448933390580795123259443022290545338661791067696498593862127270533781615150309007758671782600445591181788069872041651315899365105677815122945307092743546131364496560403997954052477982619450560265592529315957971245479385835300681745803870479545239556210292025227341540624053980816588146731470359405179956429001010169988549455867049883300402152306595016337412335948870225821491841259336874160609439456101460547620106534653412928420844656611000103065616587516563568746124185279765820317815286803290013052748947313236572074398307376650862008580264105546900832555852377007383744062779852858089629774031441886965594524352924327103499653884962292191744079589991251381839964616395480947592532823118825224262584983740848376330448182897614507534405589055278901582309523192450778706351979348290269475186458632623287205835662289543874604945289619471180467349656602308028944709171863614027431000580560660342302784957549144112609078278479241101354841227131337572121358091410440755891248038573298241705174585114786852006080243331788592948779874096197006520095087803332988960185096480834755570991118597915797924542934041993399129463507529721769920055630141219274662613849454525205005033153044719035667560008685941765456556967736273724871578086822832916512380044822295859503235947135108365474235554024738983733448530857300439714503207533323475340251692326283054011988644555766021370271879760328613385587387942688609620157614755715286575683548649709733371679442303799572008497771402997868777704010307344505266727066868164211031061248603765368160976240054144993066831087386234027780723820301986830706473964484770107444020053540701238450912102915278680140122137189058621099583608718825225632386978784842739846103819084142129996149191119396670208268197330212886393058637376853539392423822174284602025067524849603965562078002600969124896633339456554773257460437124437561221174271090311602569877755880353625851522957059277605101844712259026191614594953968448229494459965296168618020344444262777985242712198004687630023508201579191734996757157319164851278120469787701285952990929605944465407111704810781840784204499194554059849009104717842810455609161080880560461876795169505367199746561083625013545150157718331369666225043485238546802859669629497923674354576938994000319507288143132662186698941067278545587884509437545136435899791817856750745648449900517418352348189063086328987020746531476814438589133392314290008249348479605930518773145325582374438038737748762410110178930185568061682891861416601196056446723936676295476039127224362418503931485823044450825108483804784282664977878486929872722718881129459908426790695993530780308434076065683603290644798915138388131368360877914762352834980887169713214849001190392974557875037202685472744335360731183837908233983116604154030015197569506818732364181763833659933081531368895485907733273194384073353717260297807259482347909218573750597729022148742479490481979594584290222063621443134009501866438464716919832076143005535416318723337887305989772126408533735598485317726683568917119144578967438034232851010079834373753260080124409021330538835130376190700146000398791930106823657349616108177334329881548444801680481035058782185200805196184215285238648946456385393032810900142421329788696382806070831925623538178085042602786421538970023201451429183017932214167879355372147629635159032101136611658032629288137948466918309910813934591732001677565864070188468658755051674317260203815630742351300353617457487518885651463613373864503919742900499382313608196740975835815527601154080982164160652223560090794579531226166767907226251276301749271238630649375984372751848611521989359850228497623104160964471561783367731252718998809357545462765116428326922205284365786593850171188323639872341811716963746484189937183424093127434898974580335936011595843458903524004055534233378696222883725579470050042079673952062657422222161291056645302186894936258382513027071208463473568583352115584104130333995580255521438231960539990089150895064240869128250614762805764414088086920167878032205738079850507275270242416351427721929931028332219622095855921909711261741800697471710909699694661305675412309602506832898487396903271868671841844669356778524375295229979996162376396632944452972479609088176240198851406916154716471498885740482677517704782312391331952030866824160048583770381924706225878486052890352841118051002515784482682145039775248380949802107562436033059158646261341292242425740337639106509239738938271304614652791724055439311590687129881860612702888956592523147717531277435195003101612095998578271012366387018959077041373420236217660200034438769525972926619811051922971033001438558876420838335878077032256426382294854239609704320328701618864103231106558898463491026980699184410588515620178151721951531373283408625188707258980357733138694102161200887864163763588950922938289822229900550574525366753779728669467322644937231380017749530406842516135806414430982927446676981205498617239872516888180611251255748031615964587651090316762347703949174522615389394730938906417378403401330901555382037430785237879308538280520641201586002836526139797256215335162567962563058824126311048032134499527395483426646643363029901103761246890952799320059841626259866939669885359508308882355756259367564288897321658669069623367746430866710170800139766409058087418159934736566857061796742365626725196746825227589899431470169777029315287631548371401925034164718637609281991468867083904758540789529558447287104230637520247319954876992977232132929271942528494965523975386103601246822936549010872469841380479806391272274495291416028421525146627726129905838096746621827541854915017406052925526871647621953829777168126339187144711080863177263778272225795562486864662688571567968316464712422529806894658479340155021800912177320800015805220907995822459313765008462558808989365380688787357337980438245881056349612725825863818310629807494174070585381657744197344195230723432942940552987655041364141651750398428000343893261749997328989103319092185136431514012529536206337266766939739557389189443186477391804597738402058998005352914150613210276935714906156243927472984478149358194842657612681698732283795914188363998406016885256285570508151254695188825658993250980906580226446697671622618671425616269840791581935508561929706418136145688982870545183454782798768367622859673839393038140400955164166880707970073063768135081033277228234933213441025740457554619791842645431420043467697198788444613594833872914036682360274110069897464681387234744288110271513674272141069430750745782390068851791191500966034841918521201484781570424843878815705197481927345649752792488719877383568426255931060726508522575780759412902618636139156191053529770888583321484594126425856901625188850235378441297061965166900932568758942604341525136660252612976110777069085071243540304242431936942324967960755056779151360840035372142841628058371763113412602469848401880934069727313707567224901196759112603193097908112170748743593024334399797682757816187174454084733662818949519651361283974100488198295274066629358924489467502946247329741571241734670468396194590258061128054779028176850621847484614632935727686688752903123553524396982895251712238243487164474213599917261915941807059881743749379540345733412457386826212145662933601260389492671912891589373266798681381636843068848345971725900147714366915301394709641568628808131467752741302954272675355315560685946820561745459905580095073912715095140295406912564227393665373635218538715939008165058170821023288308822060118332790849432499845252399009281943144152096297448869375226023485231677526107722496111699498614101884945903646441749627154231473230997523688785830812530143669409285610920453211482540634114553654696490320519097063674478133956337623758321147451758820427528527605797628601619813539841577826613723408507030554816385152835683953090196891732384029493661715399550060653123417800391040121534303705034431458800028093120008440176314984872929548564317861147371086954462768129672016420704714794725391075806739711570252327475957320989836637827150646347728672940459021552415894210726100009811308696417116606193576370623277201874495497838289587619672276534520675608109769941943958281355579418350675679960640615044774694363149763812048798716985000214450727232308121392485619534919289661196078554869774825870775425063487108298009410336046655752036221839564521533446048253560042793825573303909806491504235386397782367905546923513443138982540036544489569108608175753398053505247766746435136290914665747886166555759487659699447507135001233760319142607537286281399079046023551750563214835176205783269617115193502339264452632712400209943910246774377162462053190998258925734459299070367419354613992671973923325687545299940089032423509972150397512149735262362464557539253953446159050938970106499190257351779380927472581743285318520681266845292868407638661821728185987580299178258871162934386192172911463228227968414214382745511575239438920736419812279209448775662365672258858622988665068031602209010084246756345669972642217106114217133984773300515852806326737145985444101135338497280491749350211892500626611322662838343383702661990544535937055575022068441464524807337401872475737903328873709943288118148044666845819156852535000109280645491687103643708087600775412100222754762266797923007158545200309099012547332799259698398065454130103119709190552000750335099264711319094021802804149883204908313765003891535801806241469706213761212679419856530511790347426116193085155156871686517086100282191151574506293726611510857398702706948364498156791410961598450276978835098283586691337842665128160808772586113253618153328435535601917878561266999054811669997563609614800104440791279929967578149700000840338809751020271944805291394721362180685499632265330235586910342685788807230894427708167867638441501324249743306738710699172169443591566375601850761303675988133082431502466186683844746652115345018033333826470417750604236628302153111660546015669862738759065607349962368733331400255974918701691846926403465655833542614234426543954355430917561387317986247024858331306498778563781069734518921780907692837302545611581973872220177956293583406782015073082657337777384815688554490475278575993149374831871405358597319784740749470256946771467404453805826738442808192273947710467685150303296215253625447818283238626411538778499068013438092997548764111250503791539122289673539047411300274494926810167251822475079863934423852927029032932763878770649204662569150604282952238015543864680305703853746516553060854279198714624229385065326472741103231022490413899483115284412147831705741052238031785466830648590503477584604673489662744551085481792417634384431120947263711111502132763368088995651039514435153859177142234625718158961270077559823581062973457873063882676597850347879551943681610797385072617941302702189957056373789555820417336092662760889779328131991784225014561694555376806359378761704644792010455502138808328212763664253084685139136691878828876791536778935692571135290199416673404674596249393207824095000187840772925884931135062442643446270024169055699148439575026570640996899418607306868390531169834031487121929468629398148682221438134865310056857509655414087810725949731412460854467293435510853037413209998639892591623091063380040358068463976879583942263587180951285566619128768820807854532800543217748397644542681362124937323907091235115945912507960257486998650084021769558052802881943625733573461253050234221092814474843997313270236355707188549918174157319514554101949680156489978925412606191074333902621862550984867019581654961586447193222497694482655522168658498538201081546174017471246369138711102394467422893061666051839082941925082581633990882105589692797941073364261260203219987326362630925638518160249586549787559869292002361161355116155593941262335788610353816919312346920507985087784981143972811517658517426270260229866657910453747978379546155166016113681215668548035660894447581966351643701233662277390503491140026469343596327675232759718534654110424270286604764714614592815286391230897641298617328564355280469893498803759167555749497825908683407080635170483583098064724000703747414183121933529691128329245826189946673199789583904249484479393444849095614930976692465024351136076872533074201850721017944845377302009947901269821640950650852454007822351051217065648650763407367995051341964321925815887157260853999618967460095702485278823267366258344612507398379011317132369304757434008944163660921520714601341062006346328470965085813546656302055698118364620978812022238015446910927993664746243976114054867953339304542144390858930039990539307716790628463552210799486101218039308900604373223819960412013610546332545431734949116954991954863473246111704040696922910872481362711610895774154558515717565604918430315019718662191077466329647096245173806641239720444208716562564325743407255966188804364690787308703362586103136112503964496276286054227516074847362671853928846767087933000947635122476353715436840773758490445987024731311635833438490233503968116064413331848147553220648706717929922552503685025160710858343204322890986607264883408523535027096740943688126478037304986448571066564557178650521544127880934811281234735598810116143735336952774403895744991286931525987539675885231102562980064911090102437769505652129995777158345717071424446171344574388374141296511171636780124395843244299299542593923582836901135772326174955193998029531165867281743580148913197077772425824725098630717947413573501855806156171868910240423477508913505029700906551500525685111021787565780810758929669705713740759497151684588886617696190375244998724664679591630822524237605743783643126966453970757560860467930227898108191287343541287184602484271733198012687965903870048823251715541840999922650783133488460502138389870933578481775135903768364240425944957502691113697125913952110303182657357005722988589426977982706016112977592504019570830194202947012676372922261466078846666286100682101427667512097323857478396342734475102547379162394946096619135027419815198887135596326368980258424578503690084752386215855614457899648810731245325367080529824430095783474626925890776728784297764626166101789182084795906023398791921817230586881656881580394414903923836334962354591869065633517061266537898796754212292216950212171606410369888228051294988986465976767930234388905644208390010966409609230113182795830594478706927239372600682400283925679808273420499092189925131636914185569497707271483383765797990857751580740193417762083992205467761966451818230521021006167239174913483406435860099237691370672865413862538502737496090212399752730265359292774076896095355557663396183703497968640525653464492804086282118491037825457617895190123883410566861927861697408632243481232285494602690636272398512441706813901032773948796061059819153098292632496674134304312361773794757307307365083892733547890791106579089480948290786127701565997286653652905015443313066287825526295809932309133483560993800983422235904667282701687599265027753301304296293543946425139774792877575419665059659324574443752027879655369941133349572908065185469297298927763713878851926509745717478558060398833652318723110306554360061224325309843085127741817837974623317431762750452571878976393398373641652301193989935896777263159941515730726807779130226740374667146356197131516841230763362640698433246627660398345338868446561234570916106519624961562006455201632197670701057261245484539033846680116048605114137700994144396940017741370309636085612567647708232309376235516011609397039349849946541046680235751897002330318982322838464683551141482284210703322675648927053143833346864230824704717306177920082425949594308576147938646686365946525476248109544970966014167984348190982342429517819256186585494574595188296433764082118571755520401981296346788105890486483833716439383119366306018528946713578554033202066069488797530232464449692138854427738259951087785058547084647277589805820917434301456071809548222596054409207195748568632286181133287363620336374846049800348317640818169559491339027273896595473958519388527985545142654055417948212873051816918084517275644216254553748199828893166113684487878524904489052451814323224696075480788550434880387151197425808304944732324682836122535989367407939510032917277285091451242275671431458973854793304501876635360074026925467551857127084988545432783855553240728912621352474686992001184206842011839228101219686222538314071616267368517584512028034574001788812075254636108065377746189092037039241160886208712850152853270673674604421338234026018650171951770040805082767034782782759961662689705133959206422117775457431242584016159043662934192866342797215287300351478535057433470754528453076261324295926782677432812369912316761412883987604228735582014679736484679467533767843276572066296853298028734079197530055921993892118924156114632865173996244129788409118867710457184724477027931121968164067297816461395898324315305081252530996986096400493047124597897639496805913584783797999089082853226583143141960022210353701548132074602115717900429007246729963824797753329391600489090171865784576744640805789868867404768858914404031594765593478555096841063610640372134412970671033558069905172462913673576720636947790301184037597267681668674008016105373140021424864356738932670769172163653672900634828212468932991941860344110559949698012783058775206425467007264811415986583115282898960212797349621970358257879228672534367186867482886982508007594532420225120731959929678872961908320548788683593658380563363821690147597676398730853502101497868320535640373518878594362904097949312432250418824639710381081678106162872023819589882584501137582934901074514772686269002138558017050393558411462672186311240303425239697369379931113551773133411862970900119539249872302414503018633035462157960348740014831796132126840530981905756811301837816171883370778617277872918114377473911738513673900567554503583505065175507699628805545129141059573987439024178823878101467029865063348484997903229539702426894994217562360126103908227537876955086542474948525739613116062330226551893202213266304699952224978065873548102968098854266089109482052490596467486663281429492155482118512411925836037941993380076832475017227339796162612428988749443345312858252218105448065879779203985188031455792390008974760176001243452355943241739000047245878424561237763768291829124917679149190921891226108816719870033079418804144437451760186472530465291416601885792473743755057817674344797273190573529761784357034296190705467034413937462180856342020274065480224554260057055649492325833642662186628257584821236606193312671318273287432852005186353340100807164244794472055284823992502493718397031871371266006974559852691396060688137684540854352307908023294363702360417054615099848879824089621790915361839331724561823877174265560781014299141207409206211815212753748796081889081980893275700612573068116086309914168361131876269350932142274221055928653863752942389218843542249916826058342919579499350360525046725166240591563721897339127488161685682200723215443407640168463354372952780570650998982037018015929166040109772532113280991488816393062998613970749375310791843803314621009568244337305646553310623462544800561278830576254861072656006501429709136801310125379894818008932826027791557862095244146261655112664453562541383775549037986741538083012936848681975658857840191602239384852582685558549250336734415958025053583840408528856717435447884877207384765400658808166492917018522461704660424209342635163059549707096152263363915071822521690752544432790311807062429274472731093990254103039372803045860491120444985800137139224610878026286753509703170427221014133530302454961085610760561328916592233366760217821995252057979551750403009052039654166253646734323838324007652510484983289192937290764523743548397341908395146885650475801492213016399575761277543625327908750138931975840720666486091114203439173876110283592659545738141936354468090887762149903264794257701625236018242229141222398731282075271132465239190088649728340261365278460591139630970492210164641853180520787944197161470144318067555154479780291779256233799400566830871952103970700248758066149891369557304558811848307205060795918509513915233637117486584861902894423948428420971460672282810460115736437792708599831813692496609364898686629597949883118737387546713242837355159971587438489108106635731133130147524361241075754946648931163961809080491947435216695184025954749929696904007425701431705351952406953781025228944735057672185916838469453836799721146052685514943721206195246427159012050453794602165282335451792444958915903794908709834581688458718674820879087094242980485663046816116895771562180073319226719438832623683021282752801501657824013648377721661169819109463718723705368323988775707891846755903310965069422362043925202204444571817017641559594546869540641878517481799981828543323606467574280793351910603136162764508698857130974417245868322565915073210275824700424184368230808742393868100731996697783718330704853589264304425768710125838374001561625004023018210348881529768219782792685524693462683996937933290358484435608572341810868462728395084056191283629953487010993967832060829297933719297608015972034247253304496131159826839789977690217465307359323285665919386446402843204440481117976607567359886030868761093018334958061598156934976186617564718645396410857336141669615963416458908296811690703031203765624427278357888500548647413776324566000500244226759132848922739718915176852160545684877253009655658119825976544337795725692082135638239412415499537760087021597234350594288380300954213904848755767447994669027034921195268455697896120493750475053107919600824078728220387409811146956602402975748879414313770436938095781429721516207920351261956240719440047735751650953647250745190890531980731699338798108650965667746483117082285356393110976744637300846532319247471785844331262971587175729949055322325067248774252835054282117478958454352929973925320309786821111379124428113321578931267896584941587573815559163137423763350138384055715445189266159464809290324064418262344392888047588735946806814436931691242206782605956884846078154993005839768245147789830500179689134805892061272006157974443429544474140418467200708950484599850338065820047204780085822101256941321348910013033573217934416368651237985911193768891218139910731391145095641961859764436102704383194258971276553377763585074010085334110449953467329227174907042998527644371634949571376180462731845810813485778267991892246365480789318900482845964850570307409356774502761413500462862597414459864508606063779993383562242136457120404065914173001313129082480657336811704494757302146579095229376253822288089023284403277583260219594965175923318350694269298927934798332172085229883769416746573879261012698798864288096651904526028389908175499293427649487624785477287133087854562135665677101421857157033063061875512797468920112048149487617005750394210688603805274457503263096559003093212195668965395614400672021230263707946059313634201661962056149776901749684182942778734267583558877171660114297841559648919133216746738383693281622565007688998799443148440469454022340163094661521706910245100224526732368472732458455207405180571494076402295138403363002896286348887817382273372416092888271970009048362955056422590716707587237960309818411933424308102474356832142628843908393922622880435364609713321128244868055593401594342681607442497068520856451269394913181599328309943128735729216884094600121776042461807983893656861703320057661542074729130786713011586162709310138630334693218603530634533212228565083740251055540323705716976660848053427404532990068702846981579977960766768616125532569833556332318472905105328635623643652838581937395010801627844945478368148169324049402951318079924912321927844844040880882588705938264692957820699661708355727620596860795882540537582565613372421576257756537261159818330355801529934454239393548697593995576170207037692010259622193157302213494012934693769230633161580218893339913533082949090907492904338771386637140167793509856657808060733430564259347631863013592701236185395158038890782634375823799876810204521604470578044987619348750295038726887116481655657746358449197538962747309332169630071073254879268014658277403958693110867490859941099886464405283028113159182893036517269093040858831950023346103476010658086633334780323103910808322958234114745266175446698485694613418403113530574528554286669772221228448099568384321841448710340824415770393908315635232140517456201529119579969006026471888389139953468177338967443130885848175644505466078121801196667420935538306856372722923071428395757220207752641416428338488289754221643603953410368342580920110654501352807017485119828670361653804378414634556514810133194306349561852084038748572650596159689081590712631007664776320339545014257845676040229950851733201929051049206015908752227543466064794524831534889828698962309820392138437391740205826892245408777216023163951408434858568689338605090416526532694810226133745711779209620396966433060298415403021817484709179892986815413265798353962384411551228691169182749332915455848005236005746156346083819500732143143307437053887944852735671751649712838545092508679834118398595358440435657005885044291829487452371584995402353201469051318483825224065087562143950765898948686874339173646799931320161442049150431455907268492794255516654701718057126077399361140141131969893467382035623855724139336840091241223555041630247738780191009772436098471558478009757349299131016124451593084028357692486068547343711687507186097566315909354805704101188444763759445220005295623426473385642212802143129631984594023153891254714482040277491115463109747118009597695863957840054696792440936755474898875200498624587593186733376499923008669663715702359130295669981891618170603678775239478412810372863673062800578584524357365848672215836429969461738045097108075039252982504810118326500107478692248909588994290386259546860353507680967635206804866184950222421513143871821910835556732625762228282608995987176651099169326816488806874093343270371311828607123635430233517847594542683163209160289588970911697126450635862028215971195788550639083606568267148843418185052541356242461733617480357083818945346983622949484134312118478320769873351127090256779294129383486070674625898097045824458780359891367928090993635938861049255893267068044364933571385890049923879066749648924399868246789472228089940916607872188109113456731693431910946453771231476805190764172367436226540800044452227985696361193065642118521524938299594087216833056423552211373044858130249155292486788264448971903200592468440597556025452227653317489491068381130073875033442144303820074027742357460047607540925014574585321146313587866291494337330190064798205488636156012979698040320536642913435431343318923592897639713020253983276220089565357086692910262014426570205595460763748653332316416528860408715392196512570190105072287370597773632832783767228027875602103976685286984467206664077868469182996554059033449142531538471422654342208208648724746355948567612122805322523499641106090995970085230436824964007899930153681554391677421843589534206260905336708074557305899000637134960498781170512605662045549606110205777467448520278664544865014491752964126922447949370860621700327543629023006530398111322916386431903503561902301206639381112959213135152829072630965053939572947030661255256341794324695807747088488840607833546908611432120949509862071769232935387615959081944090701814947351769844540873474431859072138592650859397572308506515706250205874148966063369398543099422907074371710505680975046281098618512755045635920514925969083856290567317375862803471320832447712711495898143277682627155757426412782458692238312039969933995936939972482811592557715309710736115184890697185798388251986299873954233865841976212563080846302150581337186060757502512653592501048682229996027389643605512901038980585405386388575992986978596564520175244360244777349948713018881500167907188274785252414570619267335400596001937902587406430524816637209786018059714686132226220720170633959343252526582085804022962729857339746665645959556292433097184686445309836543732905492663254198564010289703241647965122450030332532485150103735281353208083364248123596231498361960566504703068644600600847750507582682750927459629605990150536833954773459423384315801802561764610354757311482976508904761656794785699289984389539047399235040364932518937543373986610270700103289380045197642462488133777454875435328085936129841303145806492795475482989687586596369962073743979560719543408221368181351144141772700590595702290904122004407839016781826349096373416553977771811575463075804609687256669538765485024867249340874141947906503393648341205580688967175627177021399832859856336848215974130498031323837354122177988943475783475691257878176066660636726152146235196726217927134131342003815048113207744046792072291314628412179317117323917203549833183620798325618775138076570712663095509714340952517111256477473039088730064376301384962399261976135941931279094646813279480231210841118187224441642773907345325258016135163238768975057808405116413726164468390961686660816791585266692594795394024282097845883074755090231640510039673354691693923797791215881472582187037551400386577563850962273993748334419706739393177959849951239548644958410336355310080146706089799150806160132127736422493532525632979771861953525807912101707645831184650733953362604965221186836110996500399124950247351673937063239584737091819367539971145186645787499012102314401841086962727678030661235365015800567118090271886670065016035059117600009729726480764937686506286826882498634739540386070483000201530262356847655652687465269448054789226710021235096626844990217393700362561163824011897402871183491480841709566601470306157228379414505535022522113762480886281572772195757361704075060807953282842548565233233459313967286390253713400337513903683836067027136299216789073032881339797244503280065338884028867182330281722551956338526331977873423036440512725782816832393572439015205749050407740914925233159513185699667386773143949585455528649437360449286537969967195849419327312500797916487508319435866201065259975940612023494045507611952428782399460026668361413173179225782049109734490193971180519544904134316567344790867165570657932783300993082125518851668380834171859789272287891751347234859372530385894093537723040177737253663046234746693972121613764930100526788366500433512395522003256197314428183278430434650508935664977489629305591706805360066666682788244403503209840107989280164642483799392614558845914120347483096260157270320129082576583346918519086350172550399243584939308477151996854928772557132115870379659072754984200423150164473766172768510798341492874326962949976496636495688428114867021594893307242620975546047177840872470041068230348103665082000120826737061311253384221717204102729457719217932964469660594665134678075524179781037914552478313411642027220740233014654647920415644466861168601240418209062113176458520182503332249264200854039525755255665843154292520764761952325890314261590176705946901013572086568989053871397238417106089739665639461326662247697905148106254458440251126699912311640302209069225761970390283341241614875654606333038871534903618656694062861331279359136245697208773249966925457033482294513480900513822193230645061647984305946602472443355753588344847736750464586289331545393720523318564620733337062921519917043208658568311015956215240701942744736196034533166490080940598111316983785979039198356334388225098056588959029831935605704670416177085282894721176834184514318139357502743844351159494761974633103902066352827478895159387957440240609650857097285647345682347344434089102527616797842162875177443067255272858206804728445978495437940915908403531403059292078879182177394311393384362317043626253086134779086828692550466170467835929485642220958177057347203605327202604415800787936554459668161822968577593777528588813181071114635503336172814920859928698736337637730343773494062239640072510983840996666177416944223780900020498286631956011208082206326152786214429835989992063123652974950796338623883884592314562730634507279279098883482910616575453427834391442125425698891493071884381352882008481071382563523750225538672941665367216826005243627196457625245088825983175093081393372991588595797961144023563435356385536604359923275661481967398026340366972715008817090852029076652156951107470673384621031269845838980530855545933264247292337664047218644890727883523687273982178347134681666763044866532128148634195843472388223362885736858776076226856438009953755448066830356828454748881055257868217110934707037995796324728713641617475422526105942339930847793535301841173619955954973022975872058828813657325435045958621904054343689419064320238215485713069511825589581651383462486549760086801429349303654329926688943948989685541268480931103261856154341223545476594584835768672981839642611004987442350450873964196342801534976538576221406284303167180726600082333270201452331672030199845117351681638263009599578231715704233947473022301922271095578268300807199414588683891101789889811490599759945441914366624015597792597334684304111974421846339092816937789401646052955181456769812486489620934222764141983995508378801050908507132652107660304920479091870417274265642381147386635520485121159740901065658462490593765623300664188614899496195003929020218565582192793380519321001178971160204316044099262561382397528759075666580776325843547051025451755024490991138296120968241059513409356217902206802060632968261193771835195202674937570473181206302433165321157747478932712178042284354607223957194417612958631014607981292305064998148720960614150860409844211832535813177601583380032264118510192165662668287936693203286628327831327964888609298851467210818509017776120380509707245208836347826792094012169879737948868676891575779295151586432723405475520078130863147876061755925389983871097729073478272885400673929765244160102560299758177640864029427521500502723611236033960786141194124042906603326741970685975153371051887775120500703032012995086772208981781953562573209607095055721313098373568043219030256716556741793732597585929652552861154464759794963614961470876568391682299160125480159822214362929794975599520143720574509317353943203720834399611254321940009877059670785740264195978520726215306827461385783094826603669022782870981391402997417330932157217669413511703951744567803096970368297550789286506053405680229743217115804067295392456451858266857731793771374196841979021996145513405690359322538163256078822629525213231607952027826594003286197787542743559338526340000302248215919411131849058777086471761184094594783286763510563450891368884192295553904778627356840065040399207086891691562002212875284830174829183726226566513889770548475915954518218057312227249501721007157822047872593772623960305408133611689600334738162877583604919241969678668746874976873679198813584238382400011403930407676374795762747260263910404023827329972915023661864197025205062447793072324089510351383449091063278024803809929858501431539694997213242193162166907448275317932334707680366339924470015705483914716576879143466904763122785033546873855940611948919550833748112586674805890625711422298285374290891211360180742997624614416994667905124785441207710331663999771709613991760083865095980207338268759148539530186718314498978982613706347979615433463473018974359598587636364128327987314743297067755852407593741669779057596070807041786747716460799601078614328029321063522880346741240278601945496607033398434629642641347537922305569060569355466763565638955920741277846260635132693203355048480814225566426180952062511307035790035022827168357160290122544902348005124683276619329166835636539215865179009917257956920800855739126352687006322559817975937042002172087807812288135479742995041131421338563442292640825939634197856606832661835462830433889255052291305973540651083047024557226468142714327008229169306006868109160275726796512108632223574514533457727799953214874012269972327986656080399329957987437015310984986535079462874038314084006076665874845656877822354437896286805621816914792810456365974674464001946745635701472162789148365514948245875496821535098702540671453193432268287523518130860447753319127152746583806109735160265366703094939742970459286168704369719366268275572522171378311449944249625218953536557516345657628510415209679488169505238143944041760040174451610874365885127933849889943943212228800162824218214013771185024764094934584987639786732539436712329069377827860875709420640641650309603279878408460172036598053643987720271555637878632648761310784105002615530294516439131201308931906508964279849090897193950603007536690056115731044935072910914305538299087610190713102732933102319267014787539388579721117034526834100948392334378942853292700263176544706938833412641670084431287227054849609354796877970442692467672401503782386414231284892303409367383968258193741778436636431381358501176915810369237969394893339710631731323900351834624265221773783766480922084269065621549402273409971928708919858653175472294020267631439287687827391130627307687764565694951337885293332027373819608650604402589138852889419145802319655645582235709947369355957846220932471634582926644525399332259971288584308831930546694466266673217414563357802761274188100106521373840598100354727364999214361399744841581081061281422238053174071539947795371036940464605085333875156790256384453137100930713362968967015732483722527256074753365116866267458150305949642999318824659359031449265862386672107264162281885349750240364922811400764417426856008997681487749819169789004823942568299137711858422939159835852008001765416795108768966340391652591492702100485655915023853711937570648163642565453325167851193738182564977840493418562329473543378592384662713104835237570236623306766307115822823468110707497261431483995695089502253549053064195431377816305332621307582080975954457209640845679611454940765702772850761503285846661631894559986484064441710682538433783362042475993945016340668457029398925689576872014750700771093611552079592427968829784154870241247864622189928782556577167992006949353391750731764019243071381893269420738691206138923313473750592368941233743347972339632695864297413684159833696841823469469992924236558113141941628446338533985096307654308938228581787476542336655095685173003203676518456105948089570302387534584922489574018502249187891051225762906099046197477399062966768740790034567008832094892564536565184522085525669004257316601634630009710645051324112838996927828505890121910185133891285623146594768520990601923306762015332150076856939424782709659168268551712359815214028224705839656308380756487012965714565735802613285499616100073913465380043966152824791126120079670184493603902580729434094675202888986450178037302896107515557891518710000254974053609215289602854368676205958563904308135984114583611352258247248591914700678039413282688358998105063919244748057385030433351666270916286278374605229736533827225422422468953540507901672624786055166079415012581240680484518001586993567171013108456172914336081592014853442049934949704833408072200420859744716483673246239014327443640167494048012518338803025044176372308983159593484470220385923809091533011550835588810511917715914977490399900881343163192438241634163057624414384206632017072861099089268738126306200778368865569266176996719764612551821682183768297045490414018000454202661288085698665294119251606250809806932129401118466311493068906628143384974203579568015127490645119275697136637913596724072009914342425414961708464661891249864788027656004763014111583058769045848521317356313024426877230340052075502811973823917751378753797171946926300373781175494484155615747147811892253733527648350662289340442723609905130650927816721813723420629377779129004768553957484968551945182200527939283063448304228886193919208891182252570162210571377174155653440597553182475204875549158360133368968784329465203296640033913356942748935389770356499586045487738743639297434317182049550349179779036237583010052296468733197015727980875863702132244138414153292982463198807091935832231718196996870130954435590788308368230752495175161764777981001715462943020488553651901514289739690605214759684943148474400209801738651359485910297734833296539641882501321296266897092401411760731003085590357725466417873637743961146195271869141566454054723781608368993231058360989945506134918643375602061764383411050596368444042775772042646872576914490232579980757918861881310235852007801965210402020917402426272011204376105126888572972795830422127953582861214662325549211164493820383142328005374236934119269213855404377854644662882703906015254897457731849885971550304412075759452125853142630442166536490663326903770319870096201933870443952972839961002279902891028673673207830408828814638691755012604911083218852252442981627292633342548047538125291589133249921391511957865354954662851219008652939917091096041326756100206380703285214487392201160373011884261315004649086726000016529377495235183046228353215951096629576150087167263525034724149127994047703147596315592536395115328031716868277537533662816737675011901057326394440719575274770657638298887986647448372382638331024924737554826344173503447955372157788728958077339003699666222034868257874259851495384067937180875678742548688418258308066355748953787253758407967679053350366230653863244730341999277202044719743044695687307640705842568379204466784397758643812081611915632637956794531232088643171193745310839244297259950561872064805542271176600023933649483083424573006655543002272071849807696501175166066306464030461571683690101965801307938919992758519644150778919508381020162972141589984189583531198593581265544492025170929074602475036728396643527449331121446884422109951898773424703081763934983304009224655196496293999910404164577942797039266487842485844041749735900624237734323160739513838494471168327447375664395073347998846140687182451067143006006386716348125084912628996177714320047187079283968511904359385337816924918369685252830851498311349321060545364515995754873139903949166665393800809583690266398458112252863179513562474548388173609261712187293313319793496121600246585808576675307610123101206171260951447426511718934728932504260875005393834695928098076802737832373895574948391496702644821628607155868403738607014170683179705200761417746805115097637620038215514252728985916258843804767442446715863605864315415580067905456852681562757760620928736638155214226851589721523198469364395081940322938137333691082161851732241653133920598352206642097246288167574214116793752518683715928146371853398682992970914416741309640605910444376101075959227253474518933101932626907409019716181690994703606943233830196230270442655958203090448384282639690883391735699588671174394476177154640034933881743055107620147545765925281656586820841988406690653098472885956865257824997886619504141292784972981223657164239318937215507957479776232671513574086236279510475915742358227615615865860992595258622427894010906060271242874477982632551884967715001434904465027380706070008324039339557135803530665347437649365250474986331070868802095243070875666707982590778981102983166074797372934625362873242813535728829633572062022839105549175911422031573597662684807992141132739351156342350072058192759798147430327818835391847329538979968365372749630831385095572321487765760364184540342680275508997572325436164715423422603199328472693717116839901120252629909317312391795307119038847396495571371473586602842218706093167726776050268147871584274694375095446153402930560108571508991323956435450079917427572885990501467346624154245236746729971571664059875711608269188441427447193548529750718178315058312616502633592403427812559793133964792340397935269424471959661327318974732236978122082373006853123112394738848579974468010680659512178318630456890014385484939770031725365762212041825365928057796087604423263909887352425585936413865192524525964183475591674412471125221627787828702114987537226173019840448639159612281365947902503029331802096354942435026566803285523817275554615248274375751293993442815937640719455098793114209966367043648922881514691026963535794057258803452540507796090517360764918036800245005854644573619089802611566052818843229311594194448027847731584985466069296677744420632506211987694001398927287365612013595894455247288712020917003041649931832781455455718054958317489084187022568303349413540642920823498979032355192735102240903371519682273105944147827980759977832139459112730500923958752097011703526133069611714705150279322051195179751017869529726589379055216802434961775088964175796121658644408175630719536775847644741532762616703605391083348571097378972565845605196087477596635418483721329300856299450803959326931209656233932963741300002053825094805260360790505275423187907098423550277274333985303128868086959409288417087458995677470188083984826439621582790936580218008295840943594249498185989969650661290741104128648328602590441932438210097021905994216610566528202969748497296255859232902282847546171647796720687554324288929309947027436676634953036750510012346223049259651212071620452618239836164739713604652701066128660157481251388543560885054887643302116006901557438697274302905121688364438742002804669623923605963586931746032213710487162968152157774035477687620589395077860920994439403189167867829069650216070318484160867711478977789377275152473653280370161708093131973584101714052055645470756265067908614345479080304039666009907335864175011188864891633325211478496284239339830027967220678026655045285562579460425065011178124202629380022727442212292913548912933708929099515426809492133270037287448151928101125992368528165945977440444137486979120118919604685048718870075790929918334942080373958387920940657387569080954111256725332233000681589658928241731176852168188864857202135154125414031070520789445720685022942372828088953370597321307335451006918006275150006145256517678399382687396312058320386610033364208912410649090416726909027837129555141754417628200889743504797980593344754123200117215858800689289385968743591392878350103066208439986049195785913304878063994050420918793932348050437403690476931111215399666907142371957374560849757363358244653376738338100790950300098438011672307662337269646551552593556174906991655514977721515420826365145163866882346091322881376004631009689178406603600671582353205198702512031218584092336589162318017886053275257336764322076940192129920748391907517178442931850800111182869292517015043379361221246638684384055230870598938275664003070681699711699596423901020190024581940799894243890766148143246231788107908848898296567184192747653416172965013140392114956060534275582148638354696196054158700977739158783458649986909122083734729128448607040790103093918606433489921062885690677030987553889112798737356700243688131648164924040259031447053650444410838437049381646315570624627662979096418957435854784822725359549344550845674685995561250176558241098564463547944703580478553258786175002189117930906418776185273514756897756453696094445473889493748584528732577201015363315280903342670288352449775473987014048919286950242681265660785128818191223603847972769136787954025984903167967913401479665203573122660944685546428424008183725783841362696874346953933396818429872964352673910506401424599125876201831655630746794544731685695314236612763057037750344004870152755287880299145027605010689860532469291163383201649999915293710022559558428020433351790547019039846324235678327148053421236877865822255425117548403830111082853725834474585813471369002216521945842191963754430257953565393819282908017592779292631848766443347179090619030124591562923691235836606218458065671752254139593883949459558564476871422958865306484170877321117867333571426640516928825515774923497362091992652712647867364690136532493041348692627816271546708341502297568329989159620012513815964051556897486981682467803271610474311361784593927892197745810162581818881482299931634541940338645414418170018644516933531551109794234722778775000195389088315805908717463743107650894589038610179002292460061084536780253896221786842970446730835485316415297793464496015957283782217085340972981000976633110325551118789479600297939476192422045536385356280006923343097184570821754227591755890241899558340831042476942689436413094025506110031192951641683770618302617080842712571590195547973911430440674650075569882805107863678583078826115745514057222504516528073493332342887135249348031485369001655154629791323689455647030047550790776006226502099932616627896748757114557655981414741903156594258570591408413075906700932587501494797839553491520728164872054955788390172847298227700370711030230889799382664890402276309755824503822638811508925468209816242399744396595029181184724891614295889690796944073983924772598541096913580376887232414894057132192456450797261094474131825325319295872562766815569925370882041040719832393903670091358323454704980449133519206518621013639719076886805324059738691358198550524130790932989128312164649772424674137477234062464458578054826002129672883803135085445399734657662363784896272027976926007459125974807030516936679703051024223458673961238429282349095791298375495318073231648457923730438373087899361401991390929066273884662170951226032207170496468794640801843668593646712477576652785021042654505710572338343704255199184136371761870407525228241185058303130338890332967850373015283371793025202635023450684454111618740306109463306998855512995756279477773136061169504066300579026855758896761606311472749802079038279224191526679295731897303651709498424161416837214434743674044282416460404024995989452574779135974920595613517691084265177300043331905237455813563827980943681327479148413375348760635243685403316116257709030669241931839921027698610790747117481709581056788303227750701137177131901217006542370263861401874472402571615423188114799545071754493027665559792582678038346302496105861669533650512369967460175994652495974404309223746004926917688147814956179281147634677045671325119561807665160202153220635523401777939988967928276663956073284281931853010688830712141080184749695952960691448668824252395419099591494996684083107932052746284029704896025081565252421125058818360550255356951131287816800671602896042861679502086892134182990267239153403722558928704478841631667425279912497304285812859080787894529114683138740440395259371863564508465951425313204720335604351950928081400644651471583735511050270782995026645927485954467567637193910869207976724062308775100149028733208855655896251265438994446926370003042739809074254255311030879377540565246033636475896014288587847248654346138444200834860220582263565736148654680448787321171848030406582755172145409786340354152788494599127245203335852174047026649717631093447794943942043686447722483997311127700019169315563734143035051707859728389961084849813665328756694002407679233419834540058756885682076544164363849834682344613290951028365294251823997445617477590692827424396986465039901781272327738980398912517933503509377419201489908237012993597314432327588969018075381187126007547875572561672964343641256893156718084544867046042652528689854193430201283887256559098601259984643269383406199711344162517324426408490170008730140623161509320217786315785786771031871262838454442422520731570578851841918976068933813114854233863970569362972845885414777583372577346525991912463357477760486924122877680512528855498145103151886597521297080815559712486564607436658025804498511063710174736466409146958368422288826236475754526635888553161436197622767531515185316540230722514738323236143527648445609303277707369599877146257207029370605430649729078319723743201405687294982962846278795733350765867680827581382615697196586324981076420282215623357637636478667836093262976049121197456291516555005095322282284168232255520459285577592432896109813495795080037628440392369237382453372085807816230770329517365919596580987724701986355336267208994855041623470005294163190612067930032865293453458790669416262953283690470826879474749707082647997062791768893413178682879175561762239207803558537378106223427879597985710190814292599174525476281657144918555945635657097690378662629106534470549022711059983594770690149072737124099530370186278125226439291791510153118989536508253466874250295711187869840400515015635863249609167571244585294015266699938093152912952094279300365259564045209668133163809584273881718056581884066198952527062425637060997014137864480616389863127688054038023235904023640382656679148841945119433549030829729301868578077933401938111733679520357728212690268666747252483714775319800232407509719982570428533912908744827585730776393200264071253035424769938500233245286444323217269637308891997656891842993895229401861693622238391809156061265029737764756285338515634039773687042415535216458179726819776400393255320595448268047572066397990750984503614428043152657167924998500509869087968190033851224384381620325188137768821076278910230121729798898952910728018519651550168711783496079568023253629432550910274526474352686536594255197447938960425489109041725898761700474941729640873737135885350108471036505798465132805407870364602418311243374277915736532192466525507293373033265223944001768090405655650476263020383886077163137297759938647942339406328528810686446605255650652181365758295463710602334082791352354770693665028557057575652408687201450266139537928839891766115323349654974181071323045701385934431670776630955782369023116989364680860692119375063680999517237882305240280084030317407480863565222286507656239135465310910054170267347794892547144119119850380863610833885184622469633113584673614982614341678802679196364488736573406550302198602622850655027969961836780224044975569198025985715430870361345859785655485824531072254102328778993980689960884026277271978662047212428656168928321872661830201802560671052605226579081313860660482028007680124215274728972566554685320637349024287708823553840307568928242428409685398858117079398284739459509168263765033107582256231984511832459416802840366833805082279801513949277725699851142190132252624270978646004920830437276048925054359121548858168870786944072464444738510904198361563723884949144612500586914129098145648551978331162944023799491849843705418660231828933029252250780634912813880684719084132367368963563203205835060983142736198234659964041370558565719516060383979241965543106760035235430434501000037269696846588209799840720320949386033445825102558130692662132611562078686829799806782030148286523773340633244088497406559465544848456627686442044260016128845301374052874770685577611261538993831109416838749056390426006017984055239029957547745640377327154970293378150878101142700944677044172077585478595865840071991337235460043133826901512594864990413396964227983818377503605022324419603173863739423522676354408260619327235214294257428381756094761327616065760203745604607536366402131640570423191978723242536180359963949045494148437571978064011112227378249833419176868973701471739348749892543236843552909467231150178451566573994251968365847320949855856044219073307219251285621963764464513241581763539569278859687567759902595632313688946849117196453792957234834639876751026728869978452074101913193373633709823422958437107728989053530961717593664404848456045348492774817024396655581120522500237665732367876747261472679463435117669444730608420217003614762084830402912093625646919072224083805220613365254424232773391565149864519532388611492848354511882696262001938157846861201973786381621654169644887971361291675411282814089127857538298938458959200013563098934503733121402414234487267482176293666411146392495350143891750193037660574690965649562532476844629158808400533841391610789418482790742921586166925516749425754418032564061221749510000659189925640229384462025984472360164639771981359302809252247965774074866472511456793359752531532678232309238591497986561266432651936045375308938481143158302257395490035503914608791122347821717479767291655717306408542384525451231917181364358662660738681957155615112677519037510184749701101090857786681817025276266698060432696179943685366726002627722771701917070905146829815429275001022437156901139265838149718028428291363564446974618598395075673586975298056719965874964217574477925424873699837811892530692131437343102823648959848396055243243752637181884994785368712355468024740984176817739343364938291195327180877439685240842028106481038227634125274197233545149323416032510814044506464332431361907517554496359134256477034099852610573678927964516849126491147281344582416603171525984497834614627884907723115458759942861358938433579767228106538388979626797312481588155803591793577970504612816834652158753181050318255544566003550047275712332327337809340752537504365218567925494263524992048651350482239002055892539342188321285368664811614437822954984343632869545325612816326621098766777553383297136394740707137140398657318924358619659269374112973879044110097111522752072116004353625474715006784840422701305999413301504508303633186101726976459185078730685449311312414787387771316991560103131982401877781994602405164812345904169811756370196892568678481772329701886798023514514317938410157028823276484813353786762013693578255225740866238126180046943979655135128544475512081041332362614653141082914278333106053494261430245207943533445419471359227912447562258483821734550324929499357838814918070970283886790226433798335434360635201466814131043758973336648652863687507897770323041724519585908687736894542395099024650285531798143052076573530343539625926330084845211990435710909028823707074861286988651058131306049440916664242607342776622507266047578417060843337839910772581544200606561722729163931313431478298829870082262154460900148362778910869932132613867192464168180664996105084323809794210626085340394263095179409375989144784783598338164314317113432729766708641289741058064429391474910083854175311718058392917387495728546640280405683721808124993358262781863234259933502153805021395603039147846412962739209113526945552484382032834753168896288378613968326693679539631826340380456952733613745444178729472510364799354520327374383137385445163157161825839031404118385648357439915103147200486786263558728666615217223588783964987749956071681955087515307561587858971825283064248027045709337484262998374884233536804622549881432108654528159824817066779534583839951434004986500215513927693410900521681326464603705906505354824607672185160816458476152842299909655384986890277402776559234660454521843341500490659672006795497391689630634545090979649655040249452783916735793100959463795665730280426868836242476909811861986073632482612130381840779887149136194095546338999977139341242520367320304123900356568638758700609070171651567811812964058493665671264046786793975914635546631058232435020055884882383156329031291138880217391767249227438252603842724746873697343973315842042880737875606834759669950261406578150099774854380365366410808539290432773613004494569573607165039688023665068944634618912374298617495821074376683072764872497950032795321074557747758070514824754533295640765318661044698784543381620066184905215160308949853426112609403831844670815136097306461706215749922334750307581494101322492275221956292266964600418402091160883527618393659891044763340394911386373989945707470337516311587247057277452277588031617632938320676394339704994404668699543175935754901575843962010082024978497163781711926969168820002796275756573060688433286468424319438477707112172586197029177429833004897573930570333145982875168930381156531781490632753142831244718316234150880736592759815694554858124577825551094818938736042759308806336072913453651914335341869659127697990050249529627688932168003414645012620002217787869994882364636229031823953813199101294687383620156406882833442974118990700027801198986796519914218278709273382335430839801700859449588595794812475062380783956976363140766203949755707173946227022345752629507391654653242021748755637259578538777995418120684312891827370374247627541961791456373062330067648207752482495899653760060584289464546042141733544246905650480299867518215389941691793066312118795735393556068272645382920328162298299170046311637268326049581708021729774286289991866828300208542247237676399374644419891707032549087720755273379849019392585610518100723749252056902986119226556276690807018125543453803253036336621554766027030966800615495943239795276750203179568250776124938691148054605337821339445758690572126629073968876712238011420032585083617648959527691058516191024899073702536352475918020837572644567392437951484624117972489863487836849552037977780588743515592186378864959156719117377124560460776063844200642983244719437658668192585744538174198138763967599793566684002572860745051776583245913659444060485379525501550338067911458483453465678055899355202454868053348495133974503318504891703117796112500315273949456862910604206637052993346325950086150557209735387133287253137495428099442682179149804633248343374800713634079415160558500804235580087786726073911676764372536614630967102942416605453369240880576265770301503512804801103423259484412889964050518933297648870502074844829003952398758720214429708857272940180512310429699864039711248263857865067172261414663023946550196928572124009287070749615665839536981519933627135010338474889806631186908972608659392315186696437518340384573931152534305003040346292880152867623429138760769966538414647622144261194630662402989693251159580753782755603293852474890709193996641042043995986196360737393743693573305886852738488154858103565619692005784643478557774614223950312430629429727041635180718692931141611143359576970213922257560628539307869251144496482146766253323137911188929236313867895165902579891908210920026951801013170921182850383003219945558788409193501563281793747501217780032283801266156239098066213359689389744484525764208814177230649866610121971391912912831441401330240697893446555654508769086560856998138065019002333733615402801604542378797733115892177690364278782679261551233128779445730820929274566705902964218728049425511703188877582135341525300366872804670532918727978213511702622331011113417108076906823292492073926638863106341568976144473876102132435006311350091327245820225254969350397156547489237459613716584599045349704733227734734415544971664500366216766765986114630970888239175903748575403074978695686953180151286616708003193587402175130355793207002880236516701364910627593227683674391877947641604543015417799103730955665186046540728772884502359954685616515812282243119850681923349673649036481494195289487579991670681658280060909019636428921919469226688212145592502622958449310095102141791606903606466416448649096780009009647196706286543211597239258748536007716091034731886101735409110995238082917117145609370901277286918966755573608232135542871038200603917009023155788057808804396373917606546500105114302561310493983233863930938864371088842479411738880420725290613521923616921865264669651228400441133264274563805955635229402850455782625272602171624924611297800874713621130227682432925390810269021187809736166471614922354065000646145513844115765086931064239576755063936621834549357038490084857962988212524773522849508291417949519979413430939737741911881149114333289223050978342247234788392317434161691743662622105858834443860131939956055219644553546945824605672603963475936363051322502299280915946228276935530049059447980908460296631293272269549644368341378755927987840630127197846808598688951887786843540811864909582360118789633525680974444813037287894955966393003465411777812698565945243349449856392731968405323840718866099218925948786617131374945197703290427232685961246361911648760451833150972781994522662133790418387083204790008717465302976936556247727227727777087884634301435441655927567018159496711132384774993392519758002952335514357204542896918816073075206736654394193849481340573908814088306020623096234394039380204341406367481936794961918547996566466150054117679817531334991502020079071700195365500280163317551580180603297325212259406884141475601521834001245568609293532952642611661063853158594278525742697668323200556667338434958293261996385647758301452209592739143128755336437997038487859541469450041508522391800996748828127641183588836090350956286341212553843266766865279471052061104659984063539899602608695663282770887015553990602386945582478676497783181975208201443211614563969924197382304620967512752691395298501919653471527914302059211547317161014542285427384712238550802524620180681874268860282898968613629823949137274527345403186236688961772778625787436050542019893081385191478932424380166778181481611669500879513244512806512047468890657268261458521261966169215478551557194943038729330916883714579892347986387719635220266079976485612040260655352761601829221836646210262807370968208860725058672809750613618560477239250154986962086471319469719019761406117450604961507620931093628849018862499644463164080027825407549401438861358052063491149251865044272913280482261957545378043877370661963072661795257707497954179546411259700490461262882270112213800442560415493088869366626625562006709230307198464390884496117515739036506373948277335586125445572205269020966493869276346166977457127101803194847021271514045991445116469254609870573464341081581605311888623943525407765624896126200800984746631831150491624336759124370524020706675217398912085632276788141723471284895783300923761327510373157587927324686671516705623357485011633323229873070429846833176129727915035160772092515039614742605647684795651862973501878918071501750812520722155344423682512045610853553903712550890867415435334594366147207410474022428091051906152382983410874693718443782453653684214005057339897768945684600567078165529081673145188977868603684974365913290161249269202162575605460914296409162235863378912959719180589913288542110544479358703742771423822839783436569847719590737523529504529578905013390342886638072692451905437517506851276873341234768641825218773642397319365693350978224011886123797149183850158535609426565313297685368577226280702857399624600441143772263163903788321964007005135953269975439593679511121080421496830298631169036204466857611287807292283365059553578009537804521948083725517559355200398130636429817656485103357209036577270415865234508175125230762671512986559059461982476679498760353020030109517529612908376022407125923215490880525857398334971677136924695174894140119670739215431248463536866253908511907512959455119530095334104769234868401925225329737502390125135309052430585016599149729028230369453240177569200392657732623728972798650133756551015682321722192206628067666853776956674880249822868572612898890625060512070954333667909312410028312821135486692068834027259303315260410101348136470141325802239226213048567596199480044194327315286273874382679233864647956368372725758417134011745980453478495013073312419228924274673034614446970093135807845706226837545910259173545011617881480393651135138738955437180166943766063750685905086674592564845248630760971102158727744165340791886328775397454458339939100784771999706691633813118961423551710149158840020609016351922500479993862518541424103592832237367777757473458122810175042973550799748418799890199071521393489815051435450272607178967986689194580546274572812109908168413884292313215040864341749765066137571815849090309826607016326379420196642587505640619018934143441897352701518119466839491309215688270841866993169072709364910190132761137789687413488631567042109143400926023648819030475223467367093342993913810441575613522686479676177551870756158100394470855831647756323201349718639494869735389899992179661344075525416776222995295224532594356870681749808761421067654374254328633144431440683047772266751740017465907448944284570389306107113556470856783423772306529726638271365983806937673362213828342461282983381983844106677243971828949611090601598121922854641966235113050845659022436288335445478073189270663948139346228691481930182319719728353030661587285648931561542606952457712539241109752476570672908663385713376338424696026302217942250516290181281619925775964504318478583898896995982391614484002206018226817038285129769764544016933957423785129714155573956206378551419034080074115300483412299866644759581534425625994766368261931446299748353163799880584667435498581356028240698479436292331216528764194897768305307154923997733135335395901364551312776749835215674913531706401635827899573133630011346494291929190705282595998462372680523882426516147366485975494073817095706355856387402375629058809827763712059722726247350818178440789625859264435487462894638800442974508653047521484618871651307042389883468095997298998801016146403765753184684956190115136363067743228238085938696478939112139759230080133521957096066205994682183299123887962496963688658728517559339311520120080982229405520258198118763412842616537604833517903340755951778668854591664637496953399857963301121436313310181894636565742114471810438583114443679535680204024733540117467086578951381709106660425305033828789813118492907216329413074259070346923617121988486656282103439414153503609834995511706129983581559275377746228421644354703033667998372517813114881184741223911455229842446286007755822804639148783435170002165612226632021586820591076461507578873837160526636052237912610276419836532213073191836627830351321104912940273754288800932600795930074782466877263707121390884071068202924962659895906010554991225500142540128757192337048668415773885229961650867676651341885578091628735572108628841912293652578706577169157666183804738476708965818720089563622435815993283848161369130433241433519909870624232240487238626995994001251269805061116120549138433799724447721714631535774913971287775405382704019913505707846207659346441167077076670384932912287961758100758609025547724169192600808586691845801745848928624636978498812918150536025351557120358877713374658189373138213528898078580868125270952753661598003089717863778176025531879956691712424282538011738193399223008266742968724596431105370991687788816149674203274442447032037718849206558304757023274701951917959810969293357898951748896744549446504089700820162384395512146309929753855700292957589993704921002112448212311676774489313014909662076768254401443164440113086517439457446475306826757300134771470499440310486547548481347062864189834709403712446332382321656540488462080926061847792791338345632152552771028403581674057482953580857660614800682556264800590318061183486949797671807317570065690971442996754471705427484568353703509725249250664539395617681217224814642341640111557312954455407695294412817123620102814065735198569762896607503183099807601749122470211123849110548383279892850909656183364102179925745467096418752010951685969011522968817547218711123568288549997273230698556024818471275627027355326617432785177233366156367541239951050071961891407786702206471890700019299709973017133706236565503579761489891687803257775844869659739532419252319190006656923240017373571683777304761044396201788978675467057769024529904024610862361536955207078758952195435754465519067597169428742161866059112537602027743764632570067499694948844706824908486370308557476562523114309303974413766505710353980870002515728729486727619547006576926811829389434007376211241546266256081862594877794141736370426663403717234801936963649874814983265358028842799360193863681822100595972030027372486443369687661069235877642668393886271060527143365977971689628094177736181783381780294002888799520904930598134965598690362819169279924779112438019176423466293148266928831018620591811492889682654918510177915504067547811266411368246301045836143498723179606002996280343007754734086627689962576099061225856897838566199845274389363661793114940719851216357212620686966443735970198628613134719571796591450672342218330747106938555493424708700439550105906137097641154677335851239133893966870685645676665758872962080421558437340106806156085325585326487612402774583654068467411116095395412465672732764217017419553486046288354511001565570013057708941541737544212150230194905315759181470331572234944676160017952666640525572816529667594781309674491354708530136195024717613460270072930267162997551152183044486603967861757319511024489335999301606391597436451375204101459174784511721179847890539484618583991855344183620137821154400641016619113735094806944448197267178009404165433716111880493254023493699243571981072836536135203163205216918855261098598866186479774001794863788550183904115249698347486828455352402786550260626247360415060011897504788987054469090135853452644449926068948267426828929344487591068142257178396375865207582230453635169528508665887042952454970095909291744018606955700456326781768200181238270631747294970865510459574836584780411105893049179462715852468753432688959788925703347646390336138060405786177433706403534108798687716463001717164869397092454444876000049907282467107015949435821001825731366203978731563849923065880846745231950167868900191190441383061279351700236497289592266471479203006320635351287351977159785054247257437633601577472080316417296802181270979328406018272594699988768692167602449693336156536918265400847525873363619028608106718251937470687445066245571641748396303729219399866025510697424086251222251804234590975049663441767578246353520605305309909606202310090241184362731299073149177209603299770143640283506006465047476853245972878460677248170457845074048019607522694778938758622619046330330107703548573331509265485664330020178992338208427625549141217297751509802492538565554576764281455377964868303063168899373857414840620264290275950128698943608578908285827439527819968340986575041506159605096812654455380947509933556198015970548140852285598673158406246836071073069569184057054865599535958357047690413367732654255769267683074704667666766291057413862938426690903126908178498458271075469899011654343050768506545980375677519928726541823408736884708909058867909293633844825255436638813117201565644853228175997268616999363924026849524996069492028682605541672538044275250703571051180808002303187517959574065436785153507129555679861386094931557377138659849557552887408071520121910104785235073219424323435092178549715016788009051438256937057115696792922285979946919798444634832797324520747686643740568563713267992321188917289359352323749381752070710820101248201663347293136029992473006215410320472981982405882228639346396739695393432974308714728132396842674342242048784076736174702787238379220666331730012716240247423526929268769047530528317468699912188391051486324648704040864394236121642614481338401578885064673836859473864082801014172760102769762830333396517238411020062534737510672179616199463919204447990794079147228382712203593633695841549375082604043853566098983001516569597307440175162784893896899137790246750857985544976309571671610869090958434642302070547127614044374724821274252724228598244977667141918606705780093559224596135698407798267747893587875194785163469988111033876232092432533581617874717979046878761939269717805405673660924570491504653644484618118247746566577218630835666521534278672810788587800117764606639152606657160371167373370281256923684323193465920147610514972715148847952088386381706743108738313795705893588427345464889722306844587015723000767936135099982705142057517876075484394352867514464862281706788793941008318781357305995167677115727192740164173946599471802561148040601397280829514811185058557012335427919451605416966523866327107770767783344155453692148464198815911947282726309631248260619437029174844476717047335557798460534205514036263377021392420770325296366882766345850531465650293644438114560416660147337552303459952883264867261354512181150780676926209013973846806090377541499043329229058218022307746828245597028849132354664905015943974919890230051720411348612359068282647496089544578758927381966074652338196354734284462737437579960163081298519518583133975272546649674548632705350161512836387431283862150286521822082651856285130509512587222098790096174851703978923170303155240466067275043786398773517426441389600151035993413258552091617053066138820285302175042547595792215881140521885267438533017205249594039204505712311033184749577928176860299520115803361850597633340493183426165240280212191061584432915685335237525554876148337502362712959903035168482889186083287652727558623977937297114109819769982593667974089737589053226258831600902799565747021909982239803651534653228205832769452867951043776895718066999590887839319002832335514731224920761004446335525757838461865348947374958759297234060326608262537460910392144526558392569181384597919520742378929072411064466505914621560596798882947196949657720019439416873768955947997558175917443186747819522564392346580774539682451297335592329010899629327275673648801466795527940117089709271661012060146008115680612572782691009865695850167097874945428303674419653686566321170304221350582625558376746738281520638288580206419346646045363650603431858034584452608444742848676241566666913842187131056727618370104671768256072590829485997030691380273762697640383372996846945424396553833998606750663531015217432490615878241960787820651563802553376508258515831731544083880984840225330616218451673183206008222003054047112958079637630841921224875830833074011489664284469456710822873901310644109796574910589657557683015549627052119660918227029569285791266081416200844983781133087484680144066857689113375151134593442030188345394301793222825521223437760475985435652971047615662261597559232251678890833248118362886331099870477698521627519153597290119443830301659597549131710526309991420482767370278096276231060966454740731189940882244635110140078281069636430411361603598167333490982155918104881828059509012653243569381957189489362210025654489779427956227789579978277085931815793368197855610918099114168310608914801196861734688701648725216576721151379507478361042270569269356308638346801468304068833898001633714365004159505803099181985891934954004611734473258320622369324604092130438178833637913569020086794400302455147825340027705743707032291070266877869109077263983986328635624851758235399249735589541458241834271116926015415101272811082488242562104325064253570832254918403278774611162345739672879453486801532103460940963237514309122622267764809382024101872261967018926012465405263332432331517597991850187503111928523103033345368579546779672112861351666813928515405029679568743413579926715059592652145421533021694911558769446609456241651293096143414671597623681846969703236626283926057976579894356887876849071527486759480029751418008476642626205220577675311951532488130171955309371305054436649922351778187214292602039750555269185569804594851890140163385273285454004576557516474249268710494481241112031545132517196418082078018871659254921826693987926680760200656402737458202357371471000881016025501902954038574851447420458550890919249004514733203559289222650081540288348822409441886005340355983283785481397116392900006820869232708857173981959440613942843354255492137071422440658450554984416876348960607309046230783119635148056805757072065256659815565470992691726212653186991364497714293175741474368374642366276329223798737530626238176379152124409128544533536404963621154127259098446768058397962317483452695642070873335033014570775573133477422472615670942455064175223551997343563147318273159554095034159436944342208764940068642513311811878326131499575325526063367287237023618873543050637242081651174564375337861059801716171539305385146456517989239454476402541225020525607896670368029280755504016823899493827063228322083149167621997503026119658617492537444709054794265488703225982204924872974898459463027751080193217688033244551703398707305090896460125947937610275709568296048967952129612229749617034884330440977612241549957109633152423638433435690792408574288901124111297162213730753527472804414714544751072329231663096211463714770632524622757007593797290235233305660722321018369387075664192510391704247475737371620223439260365472352030281254923539806365200470646923779491760790385288459448774493674293531480121657041950829209655361524446625390756031105453027700043681066947378003839678297620396591549071418440812184465798924593113198938997626477868055696870901906542476512697916701635387178474372237126393503745326619381745854647326064904649750374974889544086951314614797086136419560365443337076829699608668778419627184813777371192303971116557100841237954952590514578792559332032420877957057064742241632098679375039213856343971330756926664548289770469645216750420672540504148298778364506283128402232811965245522017142177524837695489261225943852840438730127355689683789969668062009298328944295319307145139627778977542574994604898983093774814211626986537184056657617093368890857673133093010394315121717218115152324452049570279201848713826864838641122610275437954944345852876147721155640625095847230441582481654453210752498666204770688993113439172049334540743790823304526773475800947435181860242417357750092459611935322823033616840411385821678445743982300429683825940720309207149367854721221247004693409735371842180381178683885043807934093022048866183252953480726606486758825475210582704593244673970384476497056703268307852401645845299915970725047387988536365416417785370041964725041192301020547403481595239343936827852291752050059416881224079945155200717692943295227909350183904120761024695803492202095388848989644804686392341728729293756565826602422939410204507894552915338426423466818141774838916407063360169849108237807649098214309455415361859790133105435691457962755256243337980650768252799538429821171855873057157118338970507617418353178432856894550389918858556939110246165084206703942993177434819948642898106393662041151450778418739554050814003399927325633847457006208025965354337129829429700248791781464190473105899010202463349867268633014388248425636664178545116266561574024731051034797206990518475011936280739115778382892569863081803218403616902509215116428728355824228866509933224215298616480077619133563250014955880176826199718118007271991170979719083459295338621945106474514983546424205636361867163844901998529015761462415069432183653751191749059235254776374707419083412878125829072559440872938350474018045613762517685105732861203868706586985114710323160569433846282711848863135570240637783073650807982119986327817987545273721656639190634196532378989713038820292364642322168131563459627344514333138396278354897411544732129747344448304768873730487133694194679081653445991245711224897731114860789752754526669848239786120951076518141953651339913068506410043562673648159174807280317880371450986707036950041860210242496809172287288061743273332487538178806551145333438195649745838655924444464106521194979353902242103142661288143017237929830766517056294850931822499695697729039366287800010975274026892633937112028927880791224686805079950788849313381703095126804830716012538909114091717544155758028579775046572689097047405153989756713218699647210221560560909672409417911404106282576852707164120834436430021095429334967810781748871658261483773110337211998661411601261496328781627744467528150522177251890156590092927972491678403889080343632965298397704949655569904903555334402494163339004199078575972563557005906902092801384479151661662694949092536775268272990525065404676710540227060535452552806577391977092933678646376108351811557805259397588702403432752230984737716765278536688897612668483301499466244186882211757335217058646570349652262448320975921967772962077951885335408097444696308227103707519851661321736358918336279834327756018080507073365592939092279926100172930175183056266753092904327202857325688710443990715521748627873251949090743931772219361924287808287982410673065994039075415838347876665251583914340052561273907741028321271088612984867270341299603916557604922311683729446503864654065484084485572398970448176392355136522805779597389122001613637127492778319923550654278739938357175972976464202973088759006922670213729278009415458449508847983839610510040811819871065939854655299098400316126312280165996857180855523578954644537200001086144654074462051913377702705629931473709185488329693676817291162521488361154371882134955540382876378043304273150516367803205749296596350547867842989128750789191932004945608030334739728033266073954454233298867615690929508985529616990422576443723885435709485497445265778093688679477386483184299980931299274503168853814552958841199114346786438834713534069456552894079787883229006747394107348142664927840788054555206850701214771352484205023932531590183099633799469571623424149492479848639606524701637882658976345249675938030492328850796825735505202853680389691780059868176624515651364042028063809045412056221970322366085551880505057518265717956753522297628723584195714356344167205230960793663571424133087275448169593651524648102756265362633812076648861493616169700189317629257387365167439426156064906885514794350978515950452623641142750174388835557343907404464577831258403774485448964508180328218512306641075497986354560442188664527948813400014774331872526021265096537135215139110843634064959232192913568837369570703323224299520483748581062448705384199026167805715408114195635906192469771185158863826581764649408888183011165816822640476629686973408510360716921931052298800835296403562102517955819444102987725441570651448876830737141850466553717440130591247082006324473273520671749945686152250346583773315436006902447763117691811514457500547581269085169123831374760762513352234806706349054188086410048202799948455218739535856470294313257332624427151162201916017817600711374107870661737456162052443755727423219347454066056930671047765003223722187697898491814528253550324357072810793221747373972681443452523115937230825749830960444151888135394522360115037475449839211730987785881859917388394494693453181344331180898227942987034885079500031350309415037857043150270248141527286426106559133961046908140086894928138894042316104974638962178927337774493927653950948313091245412348890300250793448469624050694946467507939825974568951009825876015475586793158211698399213286467334590374284199018045073498555490484014703906232846874761200797884090469898713771089975866559129252376659666612375217837077674502593984405664088139825483286553243416164132417504035296784985145831793699547727719424628637587915936654835800434018127876846513012978078183825569685540579374255362638205199797861271008333241416690511113088169860377582142168828437942169524004737985081579017535434278675629529912506685257849582231584541786833894677060414106052593367055635981144809692602061173835926042922695899414185129371374138578805591147228857511197431713642065663214004761998216417952430918310456500098932589729557165267793831938540234404428506784200196722296524864332182406091400517532784328445039227665674456923259526753486451028366980609145295617449437048772941194744923955706820201578962416298669022805568925091567128072255762665008697259104735383639884381446647064628600921186972853209137770839360161067965957902827965520937110655930858717854042675202623199639558817748164173005227745667494658098223168171225401665257614768247386097045642236276199223367877804519676330767643585329653660916811119721513615038480593144320836720208642982982404935872191692276637013739482537845703022845815198640585902453926767340467801352140358275271282025580086256628949053662591255462776701391968313476333281102800485437383233338301260464495733798582831304181881562853440183139468291598621345762702723607759597831799459786941491055659914109230923271200508247039430862628713318853484438967788622341523014704264311446557455132294352756305743733735230128541315010703099072160838100360300292800244243727116905725981688980747587362320820119032298316053713180814759846694828445436724759882947229381601603150583177378562515231469023646998316719001096948802880265615461496655937874738966944441874707136945166036138287058473107352066736246036968007099774275764850108274842205602149294340917339234536835074311315258274595363513720306387315375962245932895056774537413808691273478442690533863527502962855616360725273004722897910304056247506672879631233815389842518271983317328213124337610452472487557341454805430921517293717383348677949471445956061319267751792281430447699142350081137792821667259499088419556726883647600164934404107058966143445839042841043418787805956035630377812944730155087816550338878238573316603825975189964105170710482226149135265623592989916626769309907282550049436188340206580389729426702034945758488011331087144725281274019334257147573570990084286605561113095975562639626322609543046937383754331036501339743305298931200522565038357346786746553870149298280077938809349169331185297217729087419417609780114260114456491310598342252519688540174589317772195049713587750681448556697621079465068292011274421473780981076817923294114172038663671353921484776576168990589033419030627035123175169956975358412238322217567926462514166435668356022662863515603869643199343150692832143350768917112239424958746351464626052470576422967042268119536635236254626324574640846085021525877047877217538055739599413470622956259683763370665564768532002673392593885274779471997913760733634705018874401042039276313618906887855553848259820630120431831948686623135079411349577655646522142258922243730960490190824589558491512541896903804455129330113376200098121231871093557307409370896434052073939067205345279258167127950548641073581188555211127798687055934383003968989518341294861898129364326092641934743082052954389908676436936652007544663378426935154661814662371855541736785713981753406704192882097732807752356703893187560479718013750738571119002914895345450491438123831700989451814951638737521103718219877911927588568465271773959006598307313880023353830950796490428249567035894501457415549353282847124622711233438349311855193944616757429163885553922956635988500126465953203295532744513600774112195792369644301705183153523415095898192606686808377711345073724749300732662236772915357035497638987530749399171743880393091133630637080135277527135317263256675559964543669240121822735287337328717567243470254493460155175887084464639023560090140937491081578376587036944947098817750930588705114301537607601602820160599998189320930301284850524315032919872187386365388829831592258111228985974911186416076389126883542385298725279099742680404093392258577625560377134056101530340855338020305978567345307870783558820836048156119814299663380490379684106970881727222483981507515768592747973485688767033873996305362575554166654048695088250051621003235580420126483288995125384273879606843192333968987133846112373705821516715268043384063230010365284588006986094474066154820984072591472316186429285612140878153724242527148357267051416689625446061762087147326968071591855542308719518623677765745775124933561262806607981857775002092545973846172468137902007120719941433065843164879371098475507610351187578277383090475226653210908389536305551713142688557719361790052064592953504299712549173300145496466711102210925713400550347246177234092108467532556344397578825924655655213332044301743402490860910626665384102605142345195087028894983830081373298541286357296747209915473909803962047708990257160719910729748062032976329043040645547993712080129858989671780747598707081032168535724949031340952532983407400922857997570649726711931226966296935974105056069853943771653896771041106924854893555875927169467431260355992173920224178974564364732071964667919945951156876355460300801327336820716509455071443970740094361376523214365055748476463850597310391039635098543831830849330286087046886948912624701789069075264355869273469708489357699189942294792325058211402017251917944156276470025791358499419942895697549030092848248210025692552131976955367760344340650336997220739513714979064904576315443091725433483300313504238774901587636001109135100206538900384421164384742641634623645691191520363949379179165561105472803899311504269923406898204047962601071205100677182747617915638490085693164030673363702205676212280355388636132677594674602739908907038589691681509499574730288306524445579616392604754844482557519443381026769085011973281910054628517596568531779859108027851722250921411296024004366299059664495977327522306167899225262554607095621338686766747317854736028731133294701833038620647050403947220743488675644254033837233326578613515713831323669546853449263377352959380323946756435745578356626576217369150118822099636726705672057171085753480305984190797815129723687559586616000535485002876830533782301080138659045218432155244752685998714259037614194159677149527964552245202711997649410973617408380393120302595352360426704933031867328819461408462216237309422216601794211809763384515852542588473672174266927160090901763796137118339499634341675298700124977505795024049688217731161593288759440104208031150273280673539065945759142983221201871761043641253883166124483483394443898435090848156370770194348873778510274125513037985555930490837689860868470128266001307224857807801487171376582996258978902107118734938078134271380451665904890188729781917910035013397801570732200213490358042854017603147177288619355395022974725502994103850595336998052950946244593532202258873831126781696255900301793903083352554162106308899570650728157601884465987489264798046569764207433112813842177135847651956493893351664181440517607844675261824782974393119537337456063893374128076552550384634816413365791254090226141703836550913117420494055638147737035241592940682682394832452636775360340596766291280434625907676260418820315504747369946311059466922809261890308997009557085495958225926581294322048338605948535203218462736818195841626384582328928552692735764685757367631032251638780882392304158404927359229293254248853424078271867971879139334384341954700114119734521235710354339016387222940883195355847819652377457582042740793073234254010565333584948884452589644377691930050831208634959436156070621004595091178250751786817629901160544003317664656729275493060349951123821739823599035472809276378878861394319463588150318703636229171722204537339950301445374507970033248501046843521268937937098616422930513880452156666962662134354773148894110489887402706207662874166816726305729339579002771797093500077004872784671936319789051691531816921867917007850861394918759902672437890343561206277857959481845953668402567186278798937015127892095049729107235037231846867877608251694273332900562688064949551885571067562380450877924416082872285990231818143862422519401047042185118418546397054154943456285055351840126393519207943189233247248854181683414007213002303094743345616693464257481976977360803268214059870862512267552527856157147356350180848264451017986910886750834783372630837953262482696523891528510392273078119014046574015064858179997659330822962060792349651425071296988377489528315617833651119161503595872345401266322384933878243370212916608904167959957396570980993907609364323692113518418041178264982421834643281129570034791843047624558780661349956166163627981624190319627929907947725195648528174406922779831125197543048157195227800348745145646540202718757762799208892658910988433087441854106198931234574132908964028200320847180419779252302348565942055597455165093410057687600167674736822821703943441284732170979669301554721937068830880226136568542742536385455412342209163260937382425193861513415819505477013896072203896147717570021854734956627099316264553511709815862000752545562928620441946206754003081067630172039305817604116393127980305386163572155245278508136892867718016053649423118250327719967883864850319189883393214354745611700294242577664186225440611634453808592170416573865483715171881596674714869158127593093003015581586324356873122362669710920157890126614243992477226803095570469049927627532847825165625434467091718205592795617688876421793292612000370647128411393085038700490348603960537122435601557730497727154809811805356906754907685029554718173332378391765593043967825590135610430043281429325674466692259802936772288011087436101796217872723393345513576659555934872348837372946177640697422145839567427467748386534885377918048519882785652266875410958180522098689251666254048363068357174836569524119719075893541151015344124822135516545340838095893585780912094797715304308062546212582463813890937290068926530267190085457485568078878175949140007533191649317802309882297491041888140078885245140367322953179789363746562073742736284118878806146881494287909287127263994575426297868537549636683658231824663070523661993979251624648753514489328230816433202587516452030017006639851890517397635873887673461557273970556008769575344284598212306457393119207744835377102147496517325276283580168117572936524912616540156406339848778058966229921578630949723986004195818557164387515706605635005306364319275648499024281083761219605190895404703029443158178872051152363015776691603247065066411894821003668042488353012522964333336983022352546059573186828112293383604360253466014683852475533522134500023253968801172021563910948870062139947741518514973323584337107243041660339522047292368837580360941564369608487847240358708958909069139941272215871837346228288910086497894497643562951770187191536727914868123328144320859555552474829085081463014994814507266069541273474036503232372169054066176803166969818429271547981178190916106554912327978793783285715410505180033998553020276781020270187212565473933077362996817199965567928828315191016906203707229334257421794369718586367473855785110317133550213458768055991449822868895676646200185013094386057246516225218922685219269097228769960612665486520962698948839803394000070581934647263263334007887969826099243879427189655761681915679214836792043698584336574176203854938515519069794976034933958490883662877574206764239165997005464850180819441997571533711045951567692763326062657035246347372903869004815189282979963110690170172784820689095880120958400826136706704637467324330520659029018415746454658904650236826226327711853972293359633251905615246661222543886927782015209405685464980376277651894296773920655635264543847756738586524292897714472728355102134730645498882452284697683852925980338157307340117215607114001354300900719004509222559505092750523454512469576086339050082754486527098922128397034440891793801833705263246422568763304386469831991922143245408417368662740703607125054483656831279090576456131173986383585113093295458958317846756385811408878625585813846543793678193155049767844554173637904955415100559751897283486394002741282811563955794241352519420445429884670498422992329975762235859777026715176977655187113530546364457091475188896065262606756096382548970178455123640316477739764728849327749609989420465670682704125135947999377047816078982727799158774163241707290412420464610384692022409551818520932026958014125087760556088131932999641880768669516709676469723597255735828530210891980930004113243838872601847840802766983127445876331712828047997722496152370573218044802734610578050654952439439879480548186681589238195464585078443678346824901785037265595653428085081347281828838536878210144372488439948111783933597915494579603928531779993500991721352481624444346289009718636632531581359816299425485793072399910022344023751631083145898034967172463874181824709096635052747737572853757115695299241320696369871794036487599330950669043647890663761480162156644909033460192565043967784535358147290153890841014181969038428230051535399753095275923073098570874115780174516960489441501295718628963153896809622127770847603567058933470816936711069307676943983015712668035027498726664966244371646980230860958184510691562800828660066908032587157840950502525353191967931320285722348658002531689161998544602356859666835142759956411452862604795330558968899631373028827553469485512053403393718381064461670160346573648529840044704218952222465541831480917263253701441974295100620080981253171462867005884616495077259726431394213540908979244888727116708880413008782709551448547023345868968944460280981651692623954009684831885204925961645253733097637261762885542209013074579051372381165732525252270681930863505144272733125711945597931176441843012697849203416906784186100936250931480439113650344066785900182187966643003169057488051940678949879773596885326381018940847589831431866180673147325218566908930439144636441866783396556308642738484215509302986010163819515400171958865416787451862504158519510031232866551442306809416623348193935318269336479089852307983018195561742795916707521393740150747950499420679279026729323509756271424188213143304187272489195081481604099737744213069177104961957166881411565481729496720978671884329611202135156715873286523207932572656819351336674556462066980575570745733554975627460548305347313796981593686064033634233800117512423275077837696037303239334454049310050537920972473558170819182445454437648213995811529972559946376194367318615729496066016019012478005148833451611211367834651765977148531298001231844382048188761980661325738426607655616237620897796405836551240227398937079168834768634303309400227521268710721289576798055457361105635584954577134927560087852228902490024706595859027412742783967388653714515181173748877121175966653188762104296164595010051550175753338611231257948834390013355693571732805864064230667701443642479547329607090710658263720100097668079901805676020276479650088738950011532193409274177573616230604010886808483479128373057183411842536448533523688954066927454836443722956344674909549326741415856549803396029694799921749200879407574361278354035378402816635072576254903867079841046304887629817660825228725346934599315785599276557889687654962509587433970889952138327789198237288320656994797453177876191650988314814026650670830105265560333927927589368532282263639906731232999106159385609489260066701802007577489313082392086420204537005115340185243141674570286913784438749758818697010071359684305361547480781026346753335906913042781156487847357361161301768092189499114050279654050738745426790506673626845642459000422073799956062804901489954627705114083130245763430273473161388070632729488075993475313149511300372690762511238851255379226682407452311207947092025768987107102766351284874506003096583549691243332796430389182455158270909351684210349170490367265588809897932537709900705871466992822867514144561849752169103133000361241355611851482513782674422436559780426364320390143758750385587070363112417578888567722526453207586492564628237110615909477332561883071348233186939942297788700058928323339456760674855381196116964182177792971180220613243556385734055533864412687428260927127234204611114823249947620090897081296087763286861326788015705131037443132332992385405182847112582232042462425459475484936232044901476988313251595835278083148367828467936994987081828618620101705012535187134728189986789201968231496212761932991550634787979210500050471916384123873138485835218116107063039176086150721030186537843596222372258629243585254450870184850377331945108528821767380294286017560905328799508521706197608248957763079035664310475198261807726009151906016465635057751359488549656228588086815151043151909440050853030380285303853898354973288530436699418313842698697615348644798102594083746232660877540930480771106214563559276673307982225655380284347964720606640633214692605506398683724644355649692388418430442944711062867956579990625191069253494727362406177256089622031536000847305222380428948396509069194880144519586349826276587958424033684461983878464305739393665256567348441881475960760746792070190693480353152911381076288734410644311374561733573091449849492238044983007251011249760723228533832320459834396860581407543050018360304320994019283189313558099184708388971653446239102431147133374578639479055324339792050483546551810190365484821898484786074726255712913154410657909697130403540198598306469125064140526954868857026113759107695498184745057770659858307400845745580835313940039444426182376029562860379678445117949737926768554644899703290693273137947306302192309553383633334550670019830784078872930014241270257577249274384711516933180757936426822695430603000831689357489222720157199001746889003041699413684167263107682158858217696717986259890791326504181412990543554915804257289516692108764184553295320923691566259207632630521065717834988972101488864808098954695684946922350702048639412297733027743028909899464210403234286075981654404528244921070105528697803102826732793653107409537403172395812381240871007642873867389881986500258296035401283878044335196490794187707528920135570315903967658522530770578519657549666108955228299806015117167603004485935650067616199779707221176588473668463119459450714322518372908426040645325210909400322880776611974302785886248738714929908918507141654991923364031210603578401582650431534307074627721691206218476353262699966078025285080073429017877362380027409186969054175701664643615605801611407472082136970355476942296531395652113753073262728759911556786052485539742875691151819055292152848036525734630161245743665043316770066946728285479167968530115550847021931066704237922820046130324741184394947502736143060697893685618416173260436401691318452020278529935819363742430239417161816492485670910467272113681294157400530524052798169581349514569463500029742044390189606916012469640084048744300469425742726343008265636502055743058738948082051397040491722660312482824529655487820090946075683409186051979842092044608015057533655736525923420726657446796231205126320929381110356251200436985095165456622683297588821590900260570540974806992300197068190829975831395557150228953796681266857984088935149146006647363913116177854531021370419455796312835502907723102238992492501477336744847435423588724789355638425283707609884398119686218674903005213859301790407084886731074743591575232193804190908213091680884979862966371002973248815882262457403094936148698885318886331164660833162252253951405168646692524474120434611627082722143654184830236879391931192369665957731582346807145021595820701533241938686701799357072037076752746484747708916941496432100009225458430871878180052100696801007397559855854744720082867996001049004108744172697462031938922909586826231378993905377243306352386085749185668934047094097563425049293740323380500073823881404150613045940763818885307919803832917607232544903128086826871667743975292759623973805907465070639149797361957582272312872985749395594060722853132041209434868839154029709461407931455576416459593076254172811254914370467502459067293104130818050057786924189000335534471253054901746023342393099046816729958437814206836214000004172277240949521581279460857446985209742310559860209427972170086850451128433551519391799489283372835154304488520295956226348883836678137084203556445051159772661263881101078723038615250324850723612452772182234025280320203733861096879568329081454287850999601341098259227122544099403244353921288986581117758996097898188412826747237132258396687056418275053439098797900191063345370309448224055935545560320473001301477160358836453704596089394206031300850046355304397312874479103702447221626983635301701044709456574501335228499367866816997996261507346536079620248331585796121761321799409229666215333269453733548272348684503703627501170916319336363112189532860258999479039979707195224736129452067562382415241057262597450421846518961301865338116745773142845714234787535619122594290380327600928871547433028692643210139829700141149230810726073647795348343697257690868059051578020857783408180199259316856722653689148741699092274779178296826403930737286724205701221159509325136436671820195460984216764459792871096121003766176153521397193812881439365054112963086196886367634465805373930726842626157288116236526470613438616940699905503880354883110078668260621018249606724750526791151021094659224353278927963371192304712204387791482077001071361463249398161958697659146437187378428236226184260436012574251078161249661793235618163733592532215918291282880650333647127629556796061069474445976977921475232124374209368667693326531271668402735188064351062243968755769266839283670898976649292678858770216794377482580113511710285022248179527443376263681540800716285926017719534932754551131991355571058217702009870522653635343831376798548851073827640507656151387044136074871769937838366020563086004702120315820752746613560207631344874691187470917571680773637617824079069269168533913801920916975407827551084285184073080244511518373309823670397619888143407333199357340847009224975250642632406179308602593643128412452539946109526330411047883816894918317799741032316462886943630016219379285513256705817678832885217541553321101292251514853746881635316640802784417888440819034407642225442630258312759916368824631440276594791833230771653294733190067830046871365005615808866369598702988688992540454325808824747295957732704826018729323516721381593454307492313426900220988058692045716077420575914098420272258104989941544554802196858172172430184999890333510727086078505133199887252463827905504601227968249311663226234580920438454154853691691006451409628505132443347530033591669171022468125147612278569751719158889030974229269559090810556613141989031751267129131231312004159807866527813055988010479523395734120684781929890188173080854711292134234178682163508609001813584006238308477286261974195365268228323144168670725547648204095143564980902178156331100568630145733601384314148773419484075482071937533734907672544493444683989852845688051688112579767602094050446487316368311063317152332533690536919516848779716134867758449943898903357048092151357288166917823103652882707206682949016604678882292282627628528602307171926391860572262049425474507523273122428832705218261112266436970079709878187323807015564003707207007215618156514891086714500406332351465839140584887307051807072260353786884019839879657376375863305259657089994809564321898107206760368267515676590980560437982787276027701903149068652896481843035527052068712112775121114233919562044136610658682117088079990659336418808468436598152273425719713559590383648909381969761023454500027295734442669528515131879238978941302654432301344749928385419643759722166022973864455465082492113647495125360820703135237041433942733739146223743829115186759387046437395940009330825242547824290901111061108414677009993759335449903685454233685271826195810653021815919399075335463347923520384480998267421708193964108189723726322091589185738202336244728435943829510640907386296178801740835212539021720146346819750960897184912528866158533293984278705349220113499486378245615810733696853643489417583118001011864489471630966812034013000791542386651065210379105049366495604880712547281768029697946321688014686366187232868273384090290113350847374262663945195682672241126941811721581217686539165849099780006680943484294778373410151924210065934304994661658487227503058946116192840314890127421092640935941053950915604355589533748182790896806668845667978666216842691446517960931895149206608721338833498064048371242042446853435263910913080149379269897314470622357265419550863380691723512135447036798458654224137001430673651741839881417555358836828476220315759979649172092091944993931023678859299495697779122343088293503919489147138334358303690339198094293155994920644489651804362590174392226103344036469153489197114130296579387688099703626301189168081870774611169795638718609027929527603309046556021685213136822254880799605608628939256281222722932632301406930242133103817261683171505826717709159626176509553590050600165759495149140011964686217899476594027133041359537519928178115371675595839777360652047766681505767498656571762865182949051927203622205518615303104836129003155375875336887507558079057950232536295549879600786073581861143136086888611221832843013480159701061754226951028382823650091448329316601629052679953412668215778036860852067868367781357590465017734509101442298789990164640359582184646252346084682814176762303702373416505556292086089649724204463466679885156735442145295414967228706687107377468719950061297559940808345795555310095196491076971665860325772001315338572606016961639759900870131172228165521876291413224935087855620418232695778633718214141711539024863541637388704550538343029061549002213320377620980457003983678919567842584418288534926227181406961165710062238539257019544977833929372835767188454974778076359063069982715247529055440969577743699590828629149593681396020952208195895999416162842292960626210465500631328428765931071599250528062312607278010199673674468594481706977514468654835786916836449879788516256332278312163127992624564836469284005989145472862076198393603570192464713016383287760331469156035175481430083339775581771348981609729630171546781596222029205805630672739105417955866853649264970821011798127106816196927234851622680723023490267536783965518579421742668888292114857321069034799708188579337834791258449576523277061003820066616760701839972801166462873488963720968234345071229207518290568252526868307843655388708334000106538838001994709553332699524474872373340074353173539436629081506743397466947768656060971766771310332069812950787878544905001411463563345663685347083041197753574706811820484587476324158911064267344883640094226636684302208309505442277180264088379871881769362936154144493555825817090882633033528979453350904612315228277192435387121831942461015408085600133030183607078860065692425778128227899822896417413658165868833233252825019108347674159644653250245288412609540618902146174058402035231205788928758687705307559266264389861553151098595492217252436048321463846097044478612674298317887950419895234555279016850172575232202287751948985616802815924673605579116144533367917336448332349535136728252951696204151326672226976346209346016990720084306725209757299157110620498017476414365916494571558888398228030796743914708858363023805875325837390485869126910429793887146013937772734852807556795010533217366159235865086483452760962587785029842018293396080387118776850254230911398876409842070833141581822203622829277174510764248108082396737353365954414002686747580927965754324199086440541083223973458959751823023551528290150419591036308810560930789392380885879314175989692864839563202594030895983448603057564117560167691403894618864828425212339318154845834921008371253491526450565339017626150967862007814358190546214095956952843326440504976493718163286546267535832182208426293474038203818687041654187015357528999795982282051108292337372354338836169704036659777139546416175076284775312252123633724653785375581098795968149579028344159712415218735070615930798622404504916780530848936207503797499555672868079575795087023271498360152116793845773190641271304484623329072844358094869452170983283090880730066163439752543000562675228385039999475215954385882573927078424477154784418583221466405449718227793479908817090114258169095354885356184058477066086634974650970224926211806984923592630903728982379696512911576770097452557472607286524265755821303569618215927349212010683835540931532695733580296123125919076806936579818496601577329985800620728251157311355301468160921041836882467879275436436888609564353259809860108762036115383249106930565935129876862105492331875139673228813209821176590774357199475223553140731643121634770202462157186224120676215376678027344078898946929976434726284454736202897388622608177101111023066710145524705645007217025493798772412143713458271416461366708487245874554972847901696140691693298773385511421123999007549907932002672120518968735802878936127906311960894519051218756705049707191453629146012175558225913330880006975428251821039032097593896301439136848270600882959143910861276228360076720799503549571353809582290898682609197655925782058990161315344946472824534600994751493819949117201094843920611167020066693300921832246202088272011356429792201128474379833924052935206288774073663527522288180300827361912246331816654987075978726497635532876705934390271347996010660123803575886214723272743350682581475471728109427161965278059774554169464875157458286155760734695915766641326066715206009208735775314947132250087122545094972502030190089671463126199077620878184409680966038726988875335542669877998214597621677765009512216149132629205914366431618542370557403691095720532284270110310425460508738186755362793777518807863413169961528159168594758627212926146868901562687559946075721476436315657124384472941420724732608394862347467213664036514585158932436003046493035491294594896529079351078053137119999020493208734010827158783877075928273295765620577535990851340126639455702594315129554821859881333507297083295875284324572920902911753529201799627233824421430892266879022292044899856636334406225476142945036560702517781587573555864211816963347384929991481953312688539243659158623981040179963757827827688569724426616504298589271528992340829618795505791629910783018816670383067915871690312658434424536399256321997671066064184937498015683947288513492535244268208823160557374329344480961617510056838033374546606095542051461284598288143526995548081714663716430317289830425746502699466324914837704842695700729048396431590949270922045760634055395391676892707138172080307596039831224860737483265420614319708799233469444119254385372131716693698097389496976242309898586447277159419156346702036023072921731057491361894121746854985036635043563595486745060229633467107162401090704153258984312428057446984016816863886133857260079252217419566524965070092337787568471935075377527407037479614929043112002139548533484929688345806295891253546578026991571582590188994219772252606932469471103349950460999802505135445231400348240879616499069821053891037983648177307377212285608322439594947987888032509889363879141565667414780756435077042428906408111464993263491340656796706332576698359298703643381916138491061259318334044501861778312714191040102253803457711193791692571372149414236954491574770984169487177291951645778880773955381962543842425422107203881864423537533031240751775051756837403258679557542471811101706740815670885355216450434404090453461681846151257721211184242545085233414347047201404337760200170887937388459719734210221279935694044397979761940741073008037588362669234001254746194540328126201719908809442288894458594967200071549259216696885019520916655071446227882484732198369672999063689264688985946845748937746100277542728123964377915291521026858136500331226741746331844379891920149473470886456871118496902331976678137799069577708613205852330228897316406467074774314236748764396815455159816203111806204270376849914469979785101580329277290311587889398198699642690620403629945858783278357127163288374055158130769017276450650566659358553868197610247201075788377905690084579540793465964483949323307702684820463252657925538229981509933738680236728648704757908944311264476466641095370540285490101578751449734756605525103863170282698186582949922240355086652364233056374539622188809065795270144348022822856927519628959672494086006170561420503950526978136364006333674913845566271782187328091805647134064802639042794855104614985780589403699055100983910063535300203806746056109067408819601883544583399677297758609483444481647530679061391952509386940265670705421491440188624504313163323824092096667894946490241047350078573784146825412108783808047722456558340526011839841981242546150631799089330994798991639087525172853562335881154751593176562895088944302358936246628893130859744514356194210641800790516178038498203180604501039004916239329053395232336366662231683772073464701341748546904796553987436881358322925443786493675629894505459081704490073296086283476095218807793391557569199341541399138184216745483291123725146534331072717259096614564506581635705998217706863045684751095425078560938695636928495794690155060349283279775627773658172816904722767030755874261398933397122612728547586158085500447114158345188877913758793847554146013661453800654345127516960385136417034523265319392732153938021873926370422287858311105693046496122938557573491286948275416082092545675633722917801885117546119195743465611429658725143223364830508713949689181250221640535128537043973495156554486103037949789373677971159195634886392582416608980332005237123006555647782985082900071695353201438835094881338145073747666514684765917296228010817263105596723352926051567361460812232645138683648492877797381856984782060342355649083880292813145722749171559456913148454551781394138037306850858474016069704333122321735008875100834371914681955463124794325815698422657055925844286976771458665139930883613463600557142358787437257216388192729292964520859230438503259797364563388096290013177943989651688724413822471933157873583124188094745851072287638779457149894379739719079513484011883539894891224989941743637407772880122965679985625877333395178898978063848572834009027094544573238320279866966153762969020013139706607667722980405320954163134714788237335138196730681945980776368686782949766898537414305601128794538328938916755217635633696508054809369682161716184702344829700962511603039638323329625061974243453216969515143268747636599281846386721029287031467277598907325104225446536862414365353005245021429230688654855839243213411746016112442277281349591889894326105491199798655575644475296727048274285470993371913353573621935637934655766202942558044743853377478283571809253470942022586963004659019852913866563511679280347467147917678640241572718442928097124391029084193689154324980159325215503675727934725431209081067148031901082605925604213106596810266357714324446704855617098453967587957606488638685214190763342548442501293413024686704631554524080164366750819804285697308162842980582337533664008762363541330428289136829511605868449634797291902149667405976657289976219899931315984990768599794171669549265145754621462311707362229373759377405533856331031364631409147785801291255300930089875329510410169694132381029611948523034050601117856018024142590006407079908982754944202088077987079523464838179747139214438905100178725204864656311695879149289149413818702679396728479036405605843337706262976228153133649924532539553985491601744186616867262463046864793878214041035933826001404054292742638612702671451587879131504536776700449016465705129183900131038642925332581489462653003410165676330423590269835537239154213347691848965865484521087985210821796059830386686871518295380799360170065793699428937089359517668046893847478762035008245081913382813255693913622771502483082286221689950363824538508481213029158568046297115506427939916116658504931038291568801127784668719377379159722316164013911554534155707681138024283167572024920904035032875039170870996054028330157342405565306288554013464957953166601009884849052287837435263239316752075187153376702437941911015987986040044216295379691730097861073684832112125362346498552977056361817189467180916630828023415645395860356565839592623279062216780489014253358714123434319026378222747940657886778283010396328556378912427948593299801552163174353028061194566981724698642941792080210333710579547140986021272390182666640288261845573119876850840964591872651855025517601090460676410297570360645512966049984117378925831517738716250769081368609030449156703737125386536351347421125433456773666374182355192561829476875435994383559528986020523948047872695685902500224101615660915456087068116925438832482933183387974068132782051369392405847185404697564310981064051536734371272270268211639835345270389093154856722814913071589261669460054401657541985805471816123021823500477932154915228954750849888237997861545270961014733099304592022138333077478858441916025466487582142158014003639715325329247653767571107011092310425621796242286711598103711990054220329068594273457803086638043706403094429413256521432248308563128452159281299141546126044904935111016775108755877879640502698215075703370256504137632728586318806966519520811486448399380529576842880606329366458867315137787801609960072872314849509588233988554113821247871011183940616093900007929861417334295513024902423762111429739615082061777599069612153439772066962259467354967868679547446340376386615568664085458982163322745698170181271544508950976125139115239086051929859891877092037340359099772271578732221080321194884586478915399347673226484340192409847802041870557321614647364765692636065909692520300910762753432054037995327885189213621552763163528300232055802223115068431556196727847201889827303142673095124195137798627588653430065380118472774216411049714299489579337376178013124882250240584252515717709867866896578592707855653082769386012684892292580087531046450273123286681952435353829869537371970651373714150112198254110902764538460448993757895465673135762944190260222349359239000331853855022024098272537567880176924267329845089520707554388952372823081267318687810132613657932628958507645079029602733937162935462963652570118727214577330490266684324158135601701389000663441693271102254688840065781110672606596874576830503216961621383514467999073331226641540914128212709487453605811268581379786966070707268904604966092593754699447238985344535206338309139270209592005057648513175714311918060733330987094264970190227455513866826816781723045653232028014861895205856028017665858835040852689016062552922541208133841237683910639527894204162540339465976234753811266654078237400140238136708354065068524915201027985442091691107974111295610141543912155480545037986796571779429085607346681922027533670062139445831929346621471301187358091637757256188478952420530285402194520834854201108007530263459720644572849915961552934591456301271309733419685088575637737975032115115151383818445806516005160630293052579713922052854166691638471087008167741440235194605625559428837567491987431761395425248674403872116220856038488905209693411015663817290523759181185338375093091851299805347577701680857333802699264801859072463895525449462901091144475045497936626003362581573188872097105850190639312662527975880684653297272266902581900032524534201322101596732083365090181291530441340517433317902752023844820448030148786595271353137419250211140624564186111612452380475987750897997585413939905694447898424900172053566913486842771184516799201705988987122690547913770737879703035005630968591179447324205421269251631146290785159133702623501216901820636762345424399249049852406378112032107961839116867529944511314797428109161785898914002225922275814431969517847343048536643729317897514511835067488511358684669463199317712353700172756660467017218023595968219415260302920495352130399845600902858744814754724750325514864696248844304547410779676298577046952828147026071025787671591631214200254835768621849432810987641989912078342639807022511528043246213162152772215601612504840483254826272007087910843108617844364868001117136129539017007396966301318766594939778899212912409953678236801408983614219789443461725571964829816253265139120747992417329926011247418272771651045716168837367758960156398251461465199837489326234400430327985800180033359594188477002537317810825012737096257513021586327423053182519454115305809001299026012101885977984419021313894966453306360564647287507253005650306031440423273815491519869968502267228565993738623827710962235315486423192558126589079623346397049125973714336765884863643323217275191851300073490826139023066164074077836122147245790522292424101155265908566881223245282054232671338304756575486680639401251177940126626692444183471800551008035947297324970013184373907569433993990173973701194265881154154917669215075360285495326228683409661586464953151097220422259715455413469713632107797274219229822837252642541600497922398794720181829027981476202322845938853485947677998940679068549989201792885873722922942034365269126463826427598454279377494015426297215019035929487521405653755828763892075703596847000663084328652313765099084979545116040117187609246172331623660845014381681670252773034646967504299164448453504566426612907269183556092676083037705861726694031804870236459347067599751574936922943228811913321630589570299684112815781765335778518862003992540341880952037145408919298713763672825597137647889097385725199673407244113694652238575391754982693809375160004862806385565081330090652314305625728405656826349257677260552562794592145000183205751580931083282062040187416293439811185614077042374274890323518962705586849250572829261239000974304790456280026480117659507635466681449884047203387390549290927332168034700113350422128824038242868357287554928374447210724379134525681403998702126840115678815695655715754737609135982032476897890260043783622018817940679756705244133283815892800133657292561272675017335170281672548545086498892374870954330071092355395497165958949481783269629254785823462514025459288742218450676303447920910308136029045733891553864914301872202420111322910424898998341445791229413754297908207887047711251276531733665383048956072960780685053834629483886497070305962768258046187387610241654422095683264250285833431164615750595775150007156189425188422146196637110177980783517962330117683864939574629076712437085132189442971662302832125929226110167921766958905751339024583703675022450558798407555473996174730086337515736073878895306158343650674913953922653635494773985149976628305022093345059448939210012508967812426219193727961189193766915268682159061275782612393945705804210064872877932929067240721608722023147569346211777931761688499374200998033210704140884680727478117318009981578087522340430714766662259186695436786548053732007255833544899642220756255347675640695585653799528996499991324501771322685971898501657912793708577610619772047485743455824525828668573784388191311508091579330766766399865509691384432754845049307860863896796657632418180589299889868514163771271439158614575443593643379093409031567802056580667957646253174421056785363641524607147322937182901577665965092515028900953717789959053263807387481493608397538702921796039431305538828909259449486695632043045649438880824088377045891148280346932368402062049611819863809960225116596344790695732325744089434165900539075029645296131162478849053959536768890606688718789541674844773219263025004570811318105151045337195974218504670242179435654983686003874456913176215725263666573544683287631681615137822266277103049315389754866134550353349953578658271616156446265385350812524696995406151957079989427638974023020083061198244150883357152177592703486626244648841135005431173941388224675880951384441605562040778144582039375659335827056142405047120816235267020840998420897682197677736862266831829899373355884960925116835304493521699012344984686023626416874852586958305938994180198440242239117221911293835213112867114338300366655051761011759038930399112309454574239129901622129212925480782858601558191447502000135235664987659816267564939934131499134076449395180987378425375551384067721691046176630135421762351238883590633168633560768182231302504592742034611794821397745055371910275483624339422645834363912195349410568318420984557576894195924371204032733399676998436805231635666601917502621847056107699481237915138819977549271169238009166019421086487482575427099681648471976355678379438702229250709673106234920676347791780011925035089631976232046194126140112086257241548704878426813038210100970606046185498629662631776829199845554012405637898193721719946736258180871441573905651911528505349253903460887173009405149241128695330804323600651452378040524556536537632020424280548491479963965941531767711021627011541414822164984789964903786378293209363139923008896855716807950122070084918295714558750795448901886553316187108415355598554881665260632777975150622662797791172688967643305922213894735270301137704943662033149960487945058145795714555173251594239973797884843383185080871903142998829806012626577489533779439512208188770836322624333674166650922733982605727172188934281996579377382125503653210781933417428384915265107198188326620787994820999926151494761307106055878753313089515076194516844015755601893507811661594802119368159273278687564377794653310487813349956230418830462458282139132708956956690473621481512325989259271505041695436576415537582143890582261569347952208597462393685241111714863243307222460418274929145885262593138396724580465661741268901839864040479189664994077259360111250217561106320180038602263532168188310551135686888885164557646373047090810822430221033532494049911608251312133076931933112524115450840718224481340231718610409436487701431447915995020530627084021003503047540389534156093830200610274653728382083283920290152898475527942306006141526264416601005040849306011652815677471170380727778495700120048529525292040821506751840760562187645148816653670620992533462709616015922840448875118249587468972275886234581127523082408022706703018144902494397697237912030832081122398083040502285066566487249914362494539251260448067775147498599753225291208775256658312185216608473035746415588920664322221032708836333374980884777372824898752432537951053017523745833125127171534507613204479524631143838834053582695801552816000338257132606156537248534828012115106115572109685334459865745696283019496312238983240475887767283948646198507201323670415329780994634715830926640955229521611599289566006363374197440936509814637601962998717252211947677965510011660049975604670898717911376091752776901766767701207448275164360367761768829023364742362741004895619693315835073828195713311295262547822385545186298148265893609377394486429203144175803745419967944793219195349940881389220667038900338099268328707295135782193214298436758997858177105609203658944902218411203956761647333447102224779869568518426208804046509717442445435814334353739702186053802324528348483461142539926364963132312240661679181996191022818818644723824086545782950788369233292921155835082745177358139112625706078440649425686964396846065951060842648574561974512926898938282443869404254352749967002901706693478969346808009943592262915220335647853538922304787888401006549897027494640904199321700369597063817729616898287131812391878593097506910945211666004025181002653526658463126673224911635694903710729769708988767037924845928439484345334507843104221168673764632102446522695447320809412224084650485125619662906140482827006435586404893837465178336064583173275774082232171904864511740568176262394307276889690791282909144562795781121603763813125739887799046571267534271436881850066115499681893724681001571341917474621376926398797826788097517074059964341270083467033261870397332647525958478911087344212486577273327442680296206190619426910879469533481248285857784888664449352598438857043887901884015821395928995685822332649984429651315482394287976364319964495023861808481443285908258243138682503522058112457303845079018116763015305669602285199324225173564714498335476919373739393733533498227245182228085319572060738528081165647185592307064755699848137460547903141259261795846743784699280836419178364537625905222162288348321139752274153936182287787790557583597430535411473895018859922585504679681122597194918309645444451310728073539648749506740113393045379346764391464112559044233114561696909838060094007572230945173288461904322294793105656814463286075463412415821527756268159518304346498735504289778981683127611697886514667511562352826400099453935738212306434082616909011358485668484862631931700692649521683240451409851539552699576826629727949251237718640441313032988497335987628610848274141578264077385191713969265876616750548186191020364743409249383893319966394498422449857529916851550205633302324375585682961776166041018081328202668488048870570827284926688212115778839014086849270504782937398679438656219171379276163309499520133443570664765561041351456112099146540360966316143884020833092772690971356731470386202525810990832905359100945896686234712757381275325822614049202636337304024342032919771614967985645618567383456204306853862492146112847787197534800642444103411195063760501507656586795664868095669625517297008324871297045772725670485515421624220136694976691591811523076406312658479144841326612994265861904756282920421158979200890117161860838141814338937242749942537627991367500631709797625657649201680208026185456490228634452887573870321480755129787580234241234568780273250280267134192802714601703063076662996642876427773147593661312150189339235524317146900570593178770787872394754643687400668617852307854982875090999772116546124873930270793960090599640308318008510729140896398214977573373468482616408207346311966846767365398995709525600092898409449590332981496255118352805320968403226265080117617819541567154200392230375639793975581993871755752505775502853577351722484681150872747304273737671814969587763482778282933324534141852632693233351600973824493647100894414003754438526444403147282099294757503930151057689573954847360925144466943307112204710381664657296079343276083177187358037812680760599120651214347490386941388592557986590688300540403597380620031684712724459079684473296346499152152013442839073366389219646819432723679705494926650476239427615732418188531643105546945292019145099178878522671824375320939805371232936133883603444322199155135656121373419126301550196407970024523734312797552547048018229155607006522021975630713456284925641084438134609544475915409151024282395856375142111410118453443751328170116003717231756572589160248217128500990928346177182600640160183950352409708698558685277744099183396455040081344099092585964600681134029355744274940137844481890107620758980844594475174312651545026095569988716716645582590843322872932939305976642506325477986658691978518786535730066911685741549281516931186057904964981715621096895361028765099719747000146751649331369811026772792074564523819077700446455768610136076769417115222557620646832364906342434785235791639389840890132028390620532324239944902567450146275376156224680491115362001718716370957972123562228159469043170323666373799518028859412222806843290525299528378410065577613329158766249590326701158339689943212824823487023064399823089697262710320108818167639454643032042135878354819043612726299615350527193542718985742656681001003583578769899611937566735395185390461170855234758720362259698239119206976544096031705988977381039480888351475174527983436976852210424434809396830598987231163782093287217200794350727713959134812825509535940171323144713236958328277720335133378158923606944113348300275417721339736467669904371912657508480396982847714908398382834624419850495204067518829525687554518752900254631402643160812400385596341953074103158135620343250244158171744302863685063489871061551153876152275930417479245782636829442225196858428729508576228276575037737116155308670833216941897550000295011941310684436326629659070821333085328687900341091733000735644364040550464846405903747647597333615185254113320228096329426048262413273718786722986689589094492231697399745604157770794643369628722253746990620928775645165373905246539175791393947230002320338324261673747209340580881778907307103609234979063783751320973326420513121461378191806750123364294392351495554969861167222692102605642780705128572437726930210021144868542469960932148465461441569825597297812345451246898505542407352053920545027304945133643262780133156535202733679148744137149276649376415570745082058956023761933860417122371721644703158038120231899364521715334325064282218262562310454867864949344132928275242478780766635953512724343591193609283090030391008660329150771396633131441134552149571556513305361810925063734894094554081612140955130967946755931578620329142206574560496869548864174557461814128272041327521873806518193407821661529665476474228218381180002739087501557971722207119258481177702969547141795503725520421762764252890100290852774971125634540788677471013658495400095394922354579570283893950566590356035833793485767733960580797287743182953534715138425724206923300201343559934274574941884859633947377054895542557247617806288916189446103678700602446278091808301783494295662857197314420425141724168442728379035388205615828714694487861471101621897458813319537428848579668005111927256001738452805890463514366663304488855224593588217475505062279467918251959894043984446615390403252794308249024876271443338504361767632283639977269256524844713705393267365330256292281180545382242020975100050416607772782030834920313077056967476270287734031289477396285744937998554431854373367563863445645833516827972406763024581240324558218461705140374486467953468821211992065641155166211234632353686037842835742059853089014607753388258714975395897026133092245428901215863425563220693212447529837087212277847539980183362497598579235056379734669641181056214242147304106427107344456404888074086618359798158703114198144888501995403012809541932059118139560677362355791491340328907804124373734579392659974730142979310266193335386235660987107172667602965117952727811678788128532974982352096927308499085039534509006302056544985185257827489205548225404082657229321905621808962910787255069490592216493303081166756779281669501550875618310788077011841493931081594643178552708914734486950323120084430592287105960476869564172143785149489260271233200186384524312077749478649513725515261515545990117718102392546327435035753616258836589669362021766585587836090060352549364731756551596244518667911166744992590708508341079662318814504594923389133324644683225703232440879440002850641066838883665504717599920605125228006155157044245469880102094594905424430391837294190672053775862782741440935195651394558845901754078133413213433378308185977498361583492027685553000503678018180990682116101035491031549613779359936561207390442368387794199201063478293334472504917129345966420381239299687931442655360581071830997888033837251635461763198460976261882039351829130298135158826381534077462378445898451349915990455475766700360668769853111593991964026917291707547849996465087570500612202008667877437739318230860245164973163890715635212125616798462771466219949109160829599837826569590170843041264467535834271047426843961841109326936870805606971861574041384161607592833067496539304195034825356188762718625986178837994933009782108777613304744464236145248387509431247449853499599686081988706772279745872851077672049298537652544386430872379517745900465128231599543358141290966629115655974124393597891669474460651575944954133926326119975072764874861065831265754853686977733996507304295511925601858482631120079482241947547706948690220779126804531178741567513991957175224625924780181083502516510325206033235606705034966227277438839845898274851948025014342217011763994174150420321509189416171067115981869156971933240058772700695003018204400383006411463471943681425547696814862805951853417618108953903558383413126649541059358903223523190043363262349174449269538992720772128817029754092791612622433324313383850024988263208084771832871117653648945323602951411941132298740791626820349520553237256055869546525059535539017766353183060670574079919379830416728764793103042874593630089394716070597234693991645161979845365677975562888210046348217243573901282965824580729074330966299866336374763945988614379366580565049464298361150578024153173722835165311787678593269590765124402439237503793617906587613743524680273063619322159593164938871765296150721652233071708972695519667003351547476954236028106601391555588553829628839412435847627902612352825313901021820751164787907154326183832836161981359249458734270583611053759314359891464846979422556593569285029369375236333426223606886793726539276672689926794779585609038128801835691889385756796742989664382248147474021943993980971016256450655739706456104495744173396852866634320117542852659673276278893929897142680841419369162893800500737337017926231992517274950988959193830892503101597421500947609407284817604749273262383990706532146046483561260528247075957672083543175466417351294687852300778879440084370267263992685204116351835503367831235899784226381361092469378544626976410166669362183174731260231055206292851859833656833345599470820741387377687112169111260229705226879267341460450104431288161145879364613857480189580960021255831917406588394750198578988184816422627845314879041412523951903715039962112220191096801406001292676137862326119576669946746932808595489008225807735168511797366941540235033423546106054476365702314383324802989377648792964315552363808748707339071340467282526707999520011704837211644126420207597701570534615582150229522985708975845857646792687960490890985718616247525605936546464206596514963489008254140124199124189272921997572048203051231845487351072090777550445145301077515213936012312602576578228352089362231455818434612202182978306282799856938272251946408553556984889637194654138289153642492348179873808546449625697213704088207751473833624957382777048711984104358474615442843565090830424954041676300668723712216059089862315258228097478369729872185741344506964168038010010498546143991296589357703053327177316303799468989831405787713474743722281433061486242051360269038171996091001540717881891310110137162866600834165231411239951019518251689040982347751964646464799974980935538825588345382246982790031218958688120164706371361987939818605066970900328163690264114018345905519446620015807191885747539309026010790049394747863467305179939772370684979998852864040121058005382951473190528262802345171584389281498345832756166846241854446543781321314450448747240583242429553161908167760153574888113810455598733567348634800754662331200587515768087319857676008113515601831679828560691467778959947383525471485924013623211023941950722155370495125292795116077079426610357657603605869239758078523653314731604038381568991588065044906823492763710951843975709032701831709850690132024218765513949183755239369665601134421476707032870584908953659634235673830463847738449259576350687874619457526506351203407162906715070835041378272298738349941475886674734821633649414644993256000346208699280570750995145548010129469234345084852510207993737292909902097234891242631620718540890082751856148170441883626656876841745962785345695742880007912965761022354723937011623710142683825887965921582555099785414094498839704824278780386910655064058122317652723937399318381304011416267600448247259371421063668013321235386273792306490791252963218743589090091609027994425402189504332712291761492256747422139369830426454021010720000079561832675551019972198132533164211132690881839875766042527644261201093028525446422193857482260428584652777135528005970427832840423892361497520006231803381721281399403108832211047858151990082515201331733842688493107959775910343733909865228006971174750753670634315051077355334761723103934560515453069710542527430323043267552605291755458020613908985314834851643273834646871578908255284132631235801764827540713287747628597659266952410653592548722018458684507290413610054427431606563679291192646241748312481647028774210140343084305801881474141941559334558801930194826682973347341415445733240834156660725171096809852317056441260909390659635468258724443457914076369562514215308440767984306973766738058083157504346205249806651704379235889146477843041011924417641481019518102658347751333766088542018293589782586669765163918050528102954359370896055162652709829562056760566079924082618287989368600201883813738191702313893044571352968969513087732785094963777235539777671162400518644688895625726540268509962305548146765998487322309610526368459144870103478159481459174758488059015606619726134369694064335225550021688218483729662668552534005064452677958467755046816108711709706630488939147543217675729684893545699136314870507683641005431762511384873310452503942022550016073647546421677811684183104127398308729720910878798434653569992678842670841351131278173891866768270640151278168686384651729987155678174978834188888990515043229037262983442776275942859536477199250942245372814783756366468113867277371958017356960521059767502006326126083376448938995926598767384732758595243379697788096983507571240206545391371131939700182814596148654872553293767212695632367330819860737640808603258837061057982770938604531603482925904982919383495624414296218382222194775633147035690271277436451817529670905976089576145085079520934234470690998593001109584694172890662901307874550466313780497527552139665214296605964520157622639245864408830083620243726364528485323446613907035443895409029182799827665476691457458269852802214955865786268630199396094031874567265786076738315966869732998777607141384690311886774864918428354428785418255428586021073582756415725735734000229446466904028425006287621900062926785432564968450133383040144934815086577079387712863383675528062953583913702681570071402024219461692814875434631853922794963645587872897416714421665965153237046574427963219636052655613711044024972636072961834752192093026114559965509958572486918943276109676825678178678624875326435767364714166200370969731218737046450931555618114189171868021065868671646767832431103037624974038515216465413478223584408955613090985714493750561318960029236528857768133590962366378317553689917069101898035865456560002272031116644791911295884366102010996940421277508862538518461593811959564979949091269836667183107280152631541791465794569489381737736235509165978938029740513058332281682859550101024238168212227390756890419597684054716142393891432804636876447395698097175229542273344276059444458772429511504628281556959798090026083809354747393997095083915033875548599694848987990320120653451585150155894451146850855658556602115799412425437237132436332481321829552762918336211187604360552586320252898960998744387198977547178769216974500882814622856840738357257177965476318575642225711616843896800533597872805205072992419018119317808949009119376585225610495599253103583877853605454106355826725899368251227636463814959330539283044836810838764771780765629722307085146930780919016871783459321691459211250556294146841695610934370860445025190423279923593726490542954810170712332104355415689846461122260215756364660835260519837319843320681872818529974519795706359325635212110533244819729036494827356882404871237398702660073135507096846444680451644572033283565679773801685112536951002140178547751829326534695894433647834306189039329956139198913594613951436786417532060571005952187659586453943633847406704249125100367839586050584223117968697220363807731727024555289813436385473460835674529290651306090577638000888423982322994865392880469039650473274597095822472132256519140225664172900337104155285511668313794137773375509903349095318351214246667543596397205493109553447007959905124714307009936086870353894452216428895034698848236070179894144863885932007620874738787796860464640194244448218809739560135523408756693962370223886702639549642433011069923439620741512619494780451854140919660750999915892511814255008996697317683398065178238683945346551034130896134166275737872987017648818766126639143269558588205823686672768815263020415606899514466531603663605815473113949651408416081842374597355644189047580216180745874152541842222547328447191061157297218395258820246112354253905060406450785039262749347963251754410399432860211644905735741763566227549622839343573450536793957438375229704225713206576333840117811995947812457431750138173830488994245032533992419904249379207119933507461263274508685364055564168540278797593129556637351751791909272060135836698840846910631738879297071592605735112037389005915375985919216524889973702685242743333683028451547375303411569562873096542322694814085696699857784730320103167516878143800851876329736732114464946959695243430582164164572655487069773280974848475852933438216117604545319262807856175776407124191572408729592015221850647705472221365741898681087534629343910843502123670033250317603943413058988877701705245321738649890789075879748950935620656324248473338111818080446780801956040153118568670619337233081885328779458261352263437839372108638038691309938422510245022604622355601404093181994198926639498646894343742999556055026840098392409360690762776600615505341806686126028170008007063815587254668503175205189591983067510408649162059674902737786754489316549984404091787530113543169138162028925234634971974035842505918581714969273681170131020573846373309340243369560573611689970280589971232860394459071323063761342667349224374270665326426768364032511556725775998710801595822543989121846458272587413866034693198842413913979747453301589654986175277066556832291294626871943856577723920865810322176946206221807837881787779961430723262678827975694716730803253381397713163121647221088724724688081320138624735413346476672806156350159222815298454496714429904627377963455101023534618103101094709548554997074591110628924223423303005489410113130733823389829714951462818091286402015787740167588896671331805552785847865827895276799501820849967898777401095934108058888347256435939134093806523350621690155154846002084690048642359046201840474445486544026203451144183496750112463905727678917622750340959851375962276841917985246214440514490187598904047942392182493451329889854546725636382991467038580835727829570694899686678087222559631864922386540733363486406789948426491390537735931952397222233762724009153787038498683540535895919961500893129929768827467328593509943431812916616501901321415158948654187273814081649822741975218554155958528517500015458561026598941956311804334910829781111606450188946339934213378345772154728273260817041875998624786594791384389768243261644591619167999429851637128530563498044181469754595245301093372372588604999940646692806087152365072498410404729671937665095872626057674884073583019373805380110924224248536648855285576315411251559521361660561058096827483131993367390671850345866513650987368073359478549344511667768240027331705312947925479826366761894529694253247435372579297568278622246710877375574044251700212886852250783576524909652770190179224136850818714045973905501844584549283412395303676289155261671071553197920213224524189197293064522489174361549772754960701340677878420712217261628445218157521216915866679174434726030776035246267683972567051108065981851420208943405730755070308489405534141639384814178666885674366233031388139218671209648872926473734295378140508957905593113089556283902680928518040963537382520999208361120987894690717381830234775805385085902334518850793487204656766433610945072465006068672479426312322387101409863847909900111230898348072182800123901002392123370277714300010316175904705518469510292951677320002293325845080056981317428148965222450426468966141911069697146368072645619925705825599350817465301242552145074116001349430410966881943105622765075316525891312004029037211926493202496108569962632907236316901767161326988653688208514758017758024284607477538221115441003453021578657961599665446096396326573493239430673771242088867803855157876878652194203438209220029289800037808570965016309931807900288472944550300566929459162536896843721784297982112630440152490544691090494509390243916632639164641702028103765900475404814132462939918831162924580914821027672029951946444507251178066023235399784672673095316129358402177742536047943201325758160392192270533130593464757208136701377447130467128662484857226551416133118232448517951865012343647382690008087770804746298762307723794884154372963054963794369655718687882916245767669384376987931735743618923241686611137706446806496472983526869699858638120933926165684813881916234674190243932687155373931384535206956173378894904692452452992851363269797772046505003631482833037338956427209317273314250282027092963952094733167207499857382608438796477779518173287765363897258764198663552112305296306192244221138032647966485763004278285451399008858768024808991442339753185522741398859905984450361325437044389877112378431171714276477157949189928017482260116585757072783607011003704608717338688157069661093226878960155945586015466014083675275819920297538321683789467341956924960881925153668341955454445344218464537342535397692254191120059718929631553323696553710776457417171830503225917360984720461837973244074910123617755090099869256502021886813158145201928558477768623450069952895370940264052359987179290252678386893691853391413862826570613770472098544246241554434131346804751072526231535583681469392549829626831287853052711050362547845891778570363553755460206296626977459551696863590294307620162962309593527554656433569688038735246482918505647458992387926197718579591683081082254772068642321901771863800608285802993775818643660451040251204554761804626862228488345925224920857793819281841882843124999295609107889814348465634285512322126544976311418394803469652842121289057617226571374477643779137209209957720880786350294034412045270824847033634967701330602513163710816368451479028987486369526681505134296259145989646911934577603199182214949573516357212328608438100502687195395206931572883625863989877133723296213735387144529864804745316552844241116988723165443903209923968699448985372564523803711899885088521182666261957451179695302770347700466752312686352197891661575670375747881424514920754255427344581560513971626583172742407876172359317680597317955121600414059844354427911411212908409213901221219722037033668968152023877235119944361799571743422368763103987412896278600065250913011993226834981008520729242361798802504953811890273483020070900121689386639754780142474066578289255347280049690016796926158500553171335648408999455291931306964141759405179028493447558506002980220978942574515466480429969291276462332112844293059872043963020900915197457771921963573107564681503458628661173844550068059509649616680319659419968862103796965529076100948329812975783148188707696543015689135583654643549053342976215336844062782075914463403591149340147695696639479040273508345014108712965523670586684094070010951603039149569964606218696389126028344594992589661021528708896266155446195638164051098618357850055500682510293816901977385646616142845430479247218315435872846140931840520943666051249309935835595456926665833072316814139862732466786052504742320173327843332811540778013949567276900228197979282696021429198866612521905300288792337827866541558869748585451721803399219756984008649907146698751850177964501229647581216028207293319339339101550118945535583552739571739174634577961944007398617859389224840893707114635542335038370428071731122385924715969174608797958264550984953753277726511797714749093731253255424247395444411527236223253604847031692655470788451750797780047907024908878429765691259665421964986463579429468745692560769701162262233196834812217433113165450395642298113420202213383260239995320247012333658942035807128809375559765359679198548068063364303941274821691171279978695517292977209616120908624292246426127734573539785091022772662939829252129767163299108423364057089338831574199615317831618216805462135934349369452902759651239054982874356540137564227630269692172944102494868672846367443024883707407543273105407622019849086273195142073025554092462611634221219045067328902552654017272865616317146335507557059507417164099995829011484498253611109878467474331408677158137672705289980850608745881811340569284837091867673060662999418734879334277655184029705756208916744731557382987589801009732315820869200432824028412025890800848544991407943537388189103144524842887519817018841272719858790408234010150120483283931949155888643055089285846511545408682979577882697228992741109651308684731573575945359950768199965084113520567721254143489017635744834678971875693733812617096150908570720764884103845563629203358139293201963065646015327745748972391511236269008139650974899178013407383743377248785281908955777147692927015348843741081815838855275362945439084229912656278118439319708696855352764550427148346126770360531572045755243100594254640555039476912342574830823419694413939059696227078294147192945402597584306205699007922684661904573137244232994317188978694251601425057445784435655184790087751171180180469240340536831383440161225209025478352598830555403170000998708115540076633133010899253721232519568050108681692848042075208495544993347060397217852177916328919772574107774339806469202820901599178027430749349487458719365839613955029258273967637953114909782159146568799058028946795687544283330339567877825724929805520921668541470683043757262099676688329533718752720995298261516297457634164295111838294213101588201239568038190336456065347364462744596068848960373534077500252901466382141656990670185298234750156282210681930815322034807535755545703268323556506186774819022577633627723600693848583536953377998985520425323869459740035189571886977264881229549106875396144391558206219831620750336459432641441084734246935944481945097285369469924530529317798523356583241733098778789345353011348092336958444219272251551629454107316126867761228564636530041756840747793835884505038190575521643260964743614078781159922505790443885411358822492018968401722865513783105036299974998236424309112437832337823385638750918860483544910490495217089288508192378631949842152454732421889513219173764322229465488423110475487772038385061600327301485931100791023010915548531093143398264244652845703151547708987960941880140502683406570365355267625935951782961218491890622332099209865960496960974606424313619952730393451515068276713693447727311120412611990214633586512357111178605945512541577367602622132554700429459775276300991444567854045313678255745753525795207773390781126007801983263612948287574054756587695160241816950325015825141986916321439593152678740318843127276683290853898787225701544713877185958271951990016134759233671313475832838914933000774922625090909848970948864704915468380320049908975818623471100404750312690857890890242282593387525715097327564646587584703466652365615350204141427046240198825699438742169557950188053640389294910622858370232250474486693100102256783341781341317716246166503432203217649808559401639580477305999692395532706474753687570925200118433978501777368980134735600520833649977954459454411103892237239377487325221606151210754107371980069822207966583433010550356073347874963177530508440014302350257919285125048253711656354385413865180133469200360451233352496125375867056666383463090036859995827041969070807221022378591249108311860005367680276061276506695749274529308775171995977032675476932015855525865027261428283343597954757464498282245820030116218809633924598813546062778567247556774750105506704183278940966962067608987400341124041780734187501390815781134537350543580396006412097743332213554902575847668358795644564960048467982985284731820343267769296570374912030661759976980534470040150518126817456803476274147667224856221435507556018973940042877288932024686982870398007564773343677082225737209333142435387338758600554946080326247375991706332618309248666003413207992370658573294104405562506541647499000728770933120661287377880814905991984117492569718065446175462648626887048897244964531880196262288827111001406169472400080574415934443638829317377035364861398566387435693634897238895633359257987606039943299584188136960819703715436767841608803993134003394979081906954729447253242183106918232170832349662279073724470497687892533002997517313274753525814843714248507109656907744423206687360929567299457059602731950813213652871502247693802981943270582032641778258353602199594386892953563414984769309301571779398871743237681406720222193847493336421102528878565052089697168188806750658494043448132680150103915126633398467570761364042584213702570942015300383930120463077604172741842429847430655820354266695003662402235583498575066695991378802981015249379935890101862334820505467719314022394773102893294756163033430061695622660169913655373950757473510023854919648005988857355784375055475693784279902912099299210554705016431964189777748388494515631985278319781637485646548102905211121007428521106732903859649065337746480689628464145479567329822339678294389140727563671644143519862007052086059574162681738154203618241557486779787480289992495273574760115254774363155192462116531100740118202587946649874231779426084882282028344924230899404133546818338646666543950309007609999601683742672601272673014604156805274851578592345644417753531322595562105160688102602185735463277869029757520212068740857046106341296748241190369643541144286723802247745758627964025156505722559628747956898863639625761491197892242071721503817972548964107599852308716792215356269870012138566835638537711847800972216116901257528825042557230366881396559812382509527440989559808625973018456436482069119943935759237062941179617936165613772744170248929670387359170088765215409763169950122636204704042727743749692469034445033632341884254265994488954065733786707959863162515402793391929513293184296004215482616173350611919191883902209770848544394567515293612247266696312921355317108596259177201807116702668648061292699356424680732798733603882718967204107671515762269906412639205608139608818899883373496319642752707009410261870303041843827069483386180421140414318113397917475649457180966983506651971504925360160109469729397252622562893174750533948944257299702372329262174397347691073277000871912778347934416308351813034738259117366845262597721090867379142125918134820255843264096049686478842711616664175080122746506381147638917016146247708864800542159055294943147237348674525546649126815429890618155128492329894399711692920125686498413710220187281151022888723809594322474667299599590688783975120177606487248471871006945594158147842606901237633172722221623040740675393102702301235830522857162337104578696094708691927113124849736662932986750653617325564633105504152553632463948915521887786847480966882440386574444562367696699586271416092397348659650529115686011629590061666316103125753472880065800571700701911741087495145949770762161078549687131466896728998142440914710744648877066565522320806010339702538980837004473561833440272534276411552220683647864745621706757619852288460239978642443175497145104548309435322249015446907500441170753701579082772770983718744100419503917037556495479449303858138227800418372534553617546031886199651064185297351898163085961343728022254136566190326850448089946203937587107734338850982320160119484622162860482158045312629284654726356141810675620353670647552646525333049435452021000975751849393443186391634659732676502947568014196616988332248824555055621149281721954594897172938159158206035621330951171361956827555564713424188348393615047285741947168800299634040108089302406839990772852286406679908590819152429285590495120188845887024330202042730874732626384397476223631332467899864948894690239515404215248990053817910924127801188132133475631667115833792950013895220003242555883670419401378929481531365441713799905008732479079174985662548037217945314418414957774694021462531222589045900209572004747124980760174589128570028673371116371039935994201733249343456943797725092177085304905002524389828623773043033315295559518660554139321187807663241508657867904085245054238237153687403116666724577485102910136541144073398540036520755662592378764898014166367090189694785437400209975022851723330055179263273375322340094866452137838068282815474898955713471794970393828054119523706437672806075982136963477427190299357240162967410636358513678437668640030174650726088935111901457962555581748081647648628537859503706759725038219528900719670535263318348601494378636980777629592301891642696265917362323259733923956769774201378614016312933849107963962531117276597143306254181402792199703584570661290350779561575542760055498572014489674381317508540643156523868079155088980570837269985138258353564184508315578263259175946298857821557839585123264371751199908018539103992952986581733331932250408005097905613144162487727502541546466200462890496719911686682702933811229359966375451750754475457279645326220478720211032293573273905154487964798107260764555934502911235887681077319154437265420760936296922408131931598557666717321844270762829845670122464624774128128399197014034250842484619550809579751254876667535251520888373423105221079106622758622492319437110281493314295290889651167918977590237825680998428687147151856212607655093268205443093683973197884342856113710526736041421098138014950204068168359230391776508714514603081436171924002630487309182481867538769008239582676838157025534747553855640034489292410485012235921898214909822436548294294747501799035463181422188064200363295270821486833582366935419964741080058031472308060077020686850684237087122012369760412030654068457543276567278255067492058494709814106289389431803049840644496034603715859731744506753726724748989724802389608441795335627708555019489015728131279021928413704804533016444543756630515994201240447796370929425224587923619969285213392946197264664661037196226220573218440476517183580881551501482869575710360664226767886205096858379938118729787538624784510026557476833266539201965668940266073195061673634871602235780010404415516323847884674287551563401460943603768651357116709988763748077589928257884872352289550557248453923281293087242188908951102996601226822882124230814198409195250680842571673532294420733872160226286997114096942829322667725884455700877916629180242974544907623420491505759394721620020188354833189506992662689426352457000933196785026056619189751460825264167081365774497679039058765670909563928119260718454166450812265637228797772232132959157785673380526841179281705872492149534777841038050477217106113538192248460202842351417173441007755457263747951863356583605682419615439959712686210871810289001417167502844751307448145727394987651433415617523855456786463706523553263865644284166067304799339966790556936629259535799639914550709510777450734504052110304358217824255912683584643247577440279512036380252098003426082118098103368830330516831927233921730143754067996418725563504039609687397698184188680931033627229369045662135436109023444895893868035206229107383619092129243478131141106654520465201005010987577415291965677305635073094571187550653314287480588645193478522102597864125795497426071139874959995826541808940522690496221339107187552025463839011095876683109848426348333865364026330009517276222280881481346899178509457453110568681734442589474281093907942474559785749633578111552909013054433635475968103949734072955716219746189593325677576102145127571580493138433167376691279941153410922691798096948463852621801053811620931536050481044046791806346674922365840631690517522555517426474552015650761823035540231160910186440432004871710223264024925566092926157977450807728272464777975254579873346198706283356709935718874751943335606529675766452259317132931812060306807745156870352449183534730439900360932015753902546525427480025647434031085320721903067206933519542518218694126532140107410867952938504249055281776259352936243261260499223975107141488047894051239670850069302985227888354101840032179902401865620315909231059633265092349332497167976252348857869126598838046462851477381998452060766438524377620604685416153256624139776925741562625602632308565517759673091288618192995538357816797227095531976382599377660070317365443370224615000274775023256988174545951315392208628463086795396832988691074623132633605225100881880682206628268759996737833076929086557947510404959098661163356737054123043165742589558580963724730638901307615560916765022166526791702643756543086927809239564086300190277997679159704544677191335058764909238169787470482742982201194385270348147718741367973665025431266309765684825732529851802731450500460104326786018415846643273631209995619692998588286474527847406933932497677692679618349205255162930666446855553528566152259721955165178124195038263475489555240904489132509488181925773776269427564298917774873256341888632052602992577932152729783018786114966406590176412161005121175346047742501537672184273229545510916741240779142563010898149657991319790907218226624258231496415281363305091158910566538269885423742986447807619566988485004794956036835230985594831754147086302814325237643876877674554388604800697741675768084551670874344837224951521237544360483604653835600791026501775371060807226119165084713898396932743899787642369940439014205266179259078675843968836702666340188764753325340723745024255988708446724254649625973533798727112562938263465819848417571775249422315393516230408284257464935429038236319737780296487323036236096854606578464457231896716595122069174638926553070927279931099449004204307760990715757850559270989227573007668962652045442857920782385102876457341947822800277004391623011392123945989188853799588239107983920646133603039917926736117016203163330974082549036287113986116870109917119560259134742996473935578641793836241273981108096151708731295734329025297089149973453694450894121913426879409902483127032839336495887992507857838587752419775874027940644678410012809148678009818456463563775574476997999430031403422103594248410804450899418286657079667042643153292402206887337828489689127143893437116060129237085776571181338982030281475830754123496281056582151841779756303706600479902878253086179960681480019935236601144086666341116168294730956500809213688294173374307141858034440749039994151560623467101846773694895678062020171069012488551372329681076123945767164083509799701561962885224340683020585236220798070898330628189636094805135859801466915713757534495085225710565012064879629314262283445225370979261457318038988626606541544826692051964661401544250309178670937748546184627767199531136494278847012823210474659270721151328635149248148333663549909387628302572075547733654817755586132149741072100616300452456456590881882407928197835492948003593304976725995525942022941299337234719174828055593978989852042947734256680174193866635927800312897100721440203539109884992985339997030777163785782548337817157888485816439289914813153606022739465572556464436557270902135046896660532587946245493995856620823249067565275670762091889225058763093766356409494075135206607464623233661926504594243538331796680155239675240364767891984310251640172348209415067143144891662068806907724731276149302672945914906321285242224115785870941834663743724878115894155691914131980844661319549173900430032848569349169239798875555101279525414018682089164724575579497580770845235674113762292431522106232291669433429704113995257945978308908420112366460748330312005509551549451369179772221231030978430053498723178833933629642687665242243873938295370669387719305335276002721084885044268962767820501648358122068842184734316304086751407358388258392031607185941727164561967760172056107815340347205257459170384649428345113541566066896988594846257143949342859317173773714273762233443005142227330968976583350427057953805404933492032125378023500759225733059255658147588943186261336201536869363779718715992297343247525378226510344414500675802708389154827360539744822109357666322640760910727320004369219972380052070820575644946695125915908830538998594902580919075604122786592040673201640907800960102106897411420424508018267113574952298954617974942487234021666169304217508982127256073169984367365464540706676650266594552073704156991408787280991368029405361226998833719341788484276306647116214299350852296089183044348457272293184092978271506846706853268167309208814566136451160338740691776712782861336025297166667777982995840221955808207347624829124811630556600819519949135821824062177581277288314933278536866763031593150306529822616234749468355501360128612470144604769037771993121881598834975094152053931203718882304185023272305065620807751506428056464754771283751845933892322205075498959711033325563673720047167713261239484294665245579740231624135577816727498123822590804634059767277283827364184623667836120309313784503969725565032826521349739214928412000028733006179292810143986947562234994479127275087334348130205452283997228645987147911197088850298417570969909023981840220864858407899139905645989446576314342049173172820397524171627401431122013861792356438834595807309689886032504194616681006822735598438450983585446822721551841077348897809755459335655208037491791421282760510760167286899309512588890341849752146317590657407617714194071916842291287021191473336846666426373420432856790696398026887533898573244689086984544070759191252653963986673132495914359470178506853700743100221723572395339490434247793898097854082390050015874451880560474347105625924438433630798888490306859967223057043814278567022728845658986118676963834630943343706052262104412290025624329164302359546863111286948860756990499436129668598263163721436145971123877590149815087102669877249267463904032679480253566402620323101515644973715589996503658039115814295402155097053297967736683275511093526590956114907873231068200283999342899422065769201338145591463927648825741736417546339022956520616715586486700487532829799437805494297353458976057975596761390690914681989667635758347654361131422777808283229397046060818215322523725021160196809253440110616577742928297985573887955590577557009088761625821320146783422230000241588032932022304434059385073056103539454884529673953910264302942319318381066077050829673786866068291378662090914435540634204536891740680050496941661187929415214641060625691921784296512635777088346220215441182718660570687134620190412097912435739338817491674558879519655068432546367026308361483767763092055816948890074726531966143417102903671320461270842310002504185773846939439312010380721055542621610933460875469776679476277609008049052586871455043320709282888577893325772088583619610037984548055864179727950911753045886166217381693848882724943881191183236671470122658344546669028022447002541976063465837894278777337956858129073381011816511430563574809005333225541817378386902860446546677909051716513820368318267095629088319113938832584537563363068548314485649788420617941207567535077254280977701093985769491161694803911381976275046721659267723259411982662721869108268204132369160497789849340113096201444170469527422345221817115326064606859492415483413050187753478153834037870910279706134151347137013140436178030148838116995051593289058326474648564151103413203585568661047360933965822655180575616930552792219791888115249572451354170742355187196510750443481694511792283320479796618014302931996307546200397833039498211203423558919918906311123427675451456091241964286615121166419168120581608697979725290271475999134568460385393160993948619181665273930250248904973695525935309819343104866836970984961502405161017714072270692558619726199372074563315828107631589291214117932035969745826377745256095566401426725622542565137773439383197374728668054280358886238851411178329494475753916085036497939448370680308952907522127862471603382968662967031423029767239066543626436507271275781253842207393697104910979809335156394123325227714053398299469889927550207549563001207733476906846282085380790685406661396842395141156978686952084775306814937948877668822638046494319759243401041618435704485320272900554239944447280594939033243644242636865482495497489581818331719522305163685277567752966105614447484308547216991537596230507251029606798060241155263749883645410334259342216876751334794611928586625996153429748068715743706305717225076965869706667614951201616755373852414576953012670969465474217602667634458321710943440186397831733615309132318726667038916766954612966403885431269206997225559233031155212577583922714132854463105985769434879010292776714834826404942057569488274845152131105134595646836956237556193233671496036388126270996307884515265409154424810933974401078016861504314502399848502162421484263157897436991990413439937902426401985436671750026592158537189735964601003604138322799901978728877113225241211600875741536428303092266954707148292965861862731700821691566429770040517218040525655474536407545200848087926787943078621370896463108787074712417165285387322611695919169059911319550436503627232306771787656189977537301606098856141345744584132232519142960943048990067350875634002440149432868705230462979253722720715927171923801983451301272087723888375549214306620771269196623737752723396683576852270544131111515731386432658279700041620042095970902854084460697553433574372988456458471734123217553566122617834901273742034739680908655058749406427124829865905855039241079628155235929342497945388473150315001224228877494517318215042393447014398199888420724475651763239543334798596557942665235817697918409384919107217212997160423774034229821437674247072683176956564989826773471722699676000950640725221577922927782992008663616235086000092858949463207601954250194488719132142819931939732693780951949081161139025246880370025743038721657753519213332129785912116506843309750523904293105564171059605305105452353340193690184432569597541769846009362313221532083491163077421930269796281756296855953842402423979224408964101734271324262107089777733885988509682001026676182527788983184284050965282891061955320428912669515323675766894965584392067864155344129276031130053854854533730354464252665806765316067408002888362508853081894762331058674367706872144517182538539378003000644361739358622811814769023676703465497020442912522152219329698211011374281542207964470404026153802390251659174732571884164892807202304008643962218715734793777936289243425279618110202806057754414456189598251882835766924558742796805722949045298116242699774234058505994155794471521963669030513023496076217049282057076497083838130921812441058918781450753685985659441035971145894219179144549470485185783899907059486756445155540665634201333750912316388857210202846810063671966896529847823798802083486311354794694883198822473342676810832391983674735991256197263846904735728219952586564039028494772251863619178392963605553841512901961419983134772251054346218392152469147533117962684497665348670772558319488218266078658944474118979418143920639533548034244317649782282182987365473135630049229966677375759169540264956106396108954043238348802294302430293835001777708814495320614823198310264777953696355271291207177827198972503462174634084375867340177012064083429743387429061331926857713455926793615000227638110816871772249851898055357488886256434947861112428703000156898224297368604087082508113369078523993202354433466260600521837712089678238465437380498943882761582294892850433264947967684801308999385784844165936535943099835417968621805501906080102919519787150968566218718723389846882657116212038712323585894747331901095224947457048890074740850017452958958368715805867202821446582463058666160294695253630084495482724920349469484998102411971784276659399585963385846068217206136476143064814634119669333307213693042592619486524438581989442308256661075212488956885147575769746716734793353721702555922732264039275908391107861319404194034067972379109588441422003752907225945585906267858712800160322548424039756791882693567166505481341956959543396342923937583943902577275112414813100077307964566313518024375617638881694239352809856505773387064703462312321523801164312144614350192211061199666199350585385419209654690539613231361449973364112762485915391429108072766462127821646214743741838301870650676791352640679694926453292241356703422352490129376966393308682255012355312712966097001660488800506368985950386768331331081856309638252048422039577452161723887794325448364921359173041632819664008152266028254379499768128772622026244042118597953645714069826850985448320965640670230123858505036111443129280290347982048239425138041836873764075519611353919404668452806651206396640034340951741974112337199030589697190619047007225441883081439883337886989022775912917088966023891258821064614797858253045618220072335271766781912034759114627234176922751615558198863280914284833777975280481956121352429142198082168068579119094487195156482830039396914039870142001195032834856252154756019648336671161070519298765673694961130810679842533787942932675377317594738708053939873979286675833907720303951340830608248589631186851745411864622591556361828143438441260723735415945201405810612638105724924508139609704005908832576134888088738840901479031780796367212305871643815616722071108476690586030427403311162477373721468262570367869864938818685738008214827639050696934400581581246483500464622863993276678826439460178217146645999516325191659359327576433770930157340728736041966227247856982217399245915133046733385109698069026227099288223020432204728153316318707525463267663955120829117257275089406113861606048635468727113261585471583904913734944702134584854502641114389314054754984530990519146822149941790283741818196543155395975054685109242200925637366881476136425923392956627085646222104663308820623724116336094176118625223690968035909477493555436526863992644782025047198054881746343242222699939351199714146727889312605136214693121944071122362837189853765831965930978124711765325499174141470661300335605383664286239822281393676706976207682035384231763193663322018356076088143648956246238601920027678809171504650879597906204807862325512599099634459139387124651351566598233126520496795899984942174000110629173504411401419362176584075606781870193569870163397082946295581059290014012041335117397943580988270569873598620978756418576026082673779115707420823689284655500908548296913226348585257470979241776448794551929475050613762368825795776652616413692072711790759311259578981681637104417773075432386134784290800708784364937917192645377028324200587700112348138107798393658921570711283833590934121977389804153048409530029532801759992217661591774954486027075756534824141580965665961037612833557766973168317619143301997634617377766793676481321475102590672180361993276688913273262192031104752994983234528015689089599975776867888816757263801311475607625742880512406255637243670484007784197822517564683688663706358880581143611481088821977328996106653766446520767780961084768179636219451156231790178495785963440321362575523028998949616131443005097928272206335011016378589734747993468775961073862367318048460270636709437545650088079433286543024339292928937926219007469169742816204127219926775755031361655168276340959452312567428874062942061218763081002664223622786225868903742236716606224281464251331389014540620150845173504853719023318757940107802442729159306114954287454045325971961023542855014706617051064710763003611490941565045196530270216006845149179953424866651037062519915814233552674837350872065455757132152006066853908110472222743488599649301822416030302537572273489704616162972984988189808919662273796914728873562301551107945186906124327196094663216409510654247850563670943043150204048896256834601909411940717659768061303490805251203908631950588711041204725185027279606219281092417070655016622850204523499128976236581116143118408231488499805605234113968241488918644473982453049451493978833344344264218918501883030548849765637928355759053602992734721096347079502354106928170275815339352412996917458240942697219058607403301151557571597911584115862085903313243105386088197734340898493091804336106084494158243678229566765102451800088018303913781208444771801913913997034670699931520375485488909821422073705887598499952782917109939607318843363056948785243712869486810608516737018112199223703678954974733142570027105064260995572701997571503194114826540858367423294132385125895869287438635626914608085549956307043890935456315853546023659272648252881325891060051659020196716389041974107277920560582713745676961243959176764814272324383262516509512392427713834839519504187354902343747157478466006567935828436023068982677293045452042534598602239442838933624195362748314992880402236036458778564085321368529748818842087509413054684875479516306763405449347487153080267718763887020891711999827074671984496815976374080541431983919333273108909529156309436964813821403060774515204193619890089622945069764468080289209686945872052228532457255875593276066676016899804891994810680599021041208523163347232194214151464356867116026420164354296620735816781435995337212591367739689499586259950968669282834232300832908179166623513670847556951814550067395629554804118956282163043192082658840553771441047978422396417766730118688504490915866885188645407626903399214409528646664487642264655743451366215608004070475709614974772343958007677653020066298194113569234492122915704048003115488669148311785721880922215052671784707456238868133615793605081919634864372400540081505147765826033697951145108903815460223643530528095646678056257125984255921162705298371069153385546050352124034915650632507648549281841624014511215671457745486882614175394567860451919709676832064401057833876639593032271125128234573289038146589370230522071060081873766866169189213705743300186374813784137828339457081606589566978150623518800856214790313375574795054490364888017218801450897560145445101016292238397752629522144845239791565132826412660511416047937966985381327543669518090423988100364792569940071437206508121434949634888539513133933520232256894016417293111955961935326551927689099040092659680757606705364735599365356428889426117518116723282363316015723206516106139721649485975356812238186844895507807560012139133126426689038877740967364367215911955334081357326396057206402806037897577656519967757216085680871095684732543341620925106803480354907689272762753049828218476052990115548600778984045023409026815792465297101786006299813924815289955465535324219917367975209810106743693964889773214006891800615826103359699282282309391228522790892557407520760711616087535604309337054278217925720103596827057929047151647187361326277706998739509499185418629562197911017425860466169401832823352617487281372490600159313097106497009072310340650388362018651916504252980476854982103592436920306777141087316337323171180085085983713135087785891912050484715464476259287945648369008646712297014081951456464905550197390784396285250942325377761225068966349306232398199955127863699274465372886553514385378645460100377935026642423990863796301574155782439440876272188497241286248930580474734766008140936844698965611592201478969366083109346354443370116813573064543088924218221470159289663324158914558086286224957031456449613794748090689695182682847958832548549617613814448315254209486623330841127354795920998654270062635233170408910728430343578680786188191677996396741460827001433017975336766195530292062531940197941575321976072580103684255675286078666029329144395911470494605660290687333231750411498924954569086727389498762248279145263606873102658945567855476292035562915030184583039587848351971222699941707769669510636200584209264581769341837675425958625327192349908720423587827651133914952749487866079836895735442028387737176887537242113847292496273250112821689975229163260293829951022375697873820391257095661043628508625295075408692348247429347571962054281549397488719751284303167845537356557798911207913423038266198191712573381529520068966365966831276599818277319365053573580812879169264627260058709416598378633531783513617263488722216850071741344552905833995302763743155994122474501788118356618661861289327798018904710489131427260810109970091666084572898147062207451143100145117150817499400934138225235615908962682767176340307432253669095656830917442569263216723406957635166289281535564577916042764395447765743996503060791400902421716021597225905718323867162999556692643980901976078885203665178468866440214843894359935933486576276842604105122274685916553647088512066458137237666852230000702698812922155026952440295780109036948620803911082575869711076776498498508109124602684734834507602813772317543862955247471524383284881725140325580399581828485619988622800355538596504359747642220977940033198560831626626434921654194558694147598226214202043617589847370093486632957338394661188165719827478493738086236575209075387963446297708308370132798025640235154996694869211759110745317330387695099141886564288849816102718930695941987060163027136007582310940914244627692529738327042500232043640927511816325716484099136425041766051523070339414005926736212842220939382527027148832921523841565304015707867855222916285545154735285192006782326491222714775300446565539440894434942523777388561453676601410144809273903505965665062595349380351923058240438453493873833751753499546502811881170878945622307941291925317517082471936871221843063715810660116484214266116529974436938318105907270810936682396716265933386758152035495465725197201714970811556855998696158326876975097566382157103822600664881460814726346629104651485674004896343906339458085855555429179041683134855183389621944409856506912080883944207565933289698375587646771621567058942646925549297375316958875189640856804864973137616262995083609771265757752853995592910605635813073818990710502694825138234633282162673557235479281427903157783291738965922275179856168658945178699136057874005027264864040067247469169478935098528785258333699202749575078032441791346653197766839795800452272161281830934855709378966275763976925523979066533967256921550581202530158613185934474417173526197671204377800889588123289338924488798348575450558941594529080662039466851246605076990876392848644896561209307868011979789881236742574453691342584333042120720909579120286197175120723911159319863394672257741327708008528688952514724060642222136595906805852964969070148057076245584486984957107022854615373802266646856434982040052796037181316549281963637004249927232834495530937772839692366462687560758137453957032637497800155734028507431533978283309388638541596532753257356977073980935223190800739969456816736817202818497179513412144869931150541554373660921362383790441714638844074404117067161086419799894307321440333924704247002466726370226738138043033849273716488595806371130795241899507394265283384404740701256016816365745847546007424777442248470759966071217110680155710541704687626023399933463447488903491916648823587121044109202631229179658066837248468519346905646221235149558233776313006933884831435348606119193735059417432901573542863502381967381602044807388451561695663132572606672542980528683081777046748823565219150907672284222118690426154171186965827144481953949571676484276959534318471941915774915289842985098031761137092599038998785896097911160023791033887727001116710026670928090349579742112962464014198150728063436231026465588863968976874597837747983829526427614525533909715184617920086416040218481677659811398599202397416077304896329454626759193663085755200762487760086508535671130243071257926532913930648036952695153057105927886561954803869219628916944447991376968156610283560852411782478308064193020019586664661229450302154543938206056791644586493471232005701077827450274422838811472362201052329306087486552465020962862510407529836563050442481895290072144764600666236331541645616091902607711820123010820083275018938381021491243087692782295152622658485797011026838241027132769966381309447157066225541720581582478507859206927355256328622935510741538570904171972897194456490092127429937894921842428666420507951856207991927487109651200426120241928203225999665244390862916868477975809231728255397394948255225199198270362433762918028057167107459616223968118153826869154419247152349277210318802617502122413604022881117746765971775522124479354722139181449810390542358003229916135907114150394113612136306503162476130617436087625987559459329717355445847886170759649273862419462906834818695795604279924938650496773495312345557327332797245724544765928024094676032888872984172083972611756624070354907566680467000247118511173556762924897954429885076505553184677706286677726718820733588588460596864131917406433916440647662677270484953217775921629695196605317691137227996546162421205341048698728941310053161363001102709706848849040040889640615866134956614315623312294360378574291202159211429317905352032796632528250534539637153696931190412514041958337810392751795050490194561184660101424182683833501316718786024040390592566261074115996921173683912455050682993522442707422837138653733862850628988098424566969195104523196573770211293151455294583148711620426249004240885012054321323338229751047679898104930800963796145985697566987694274760217606799551416733058789355715333281003880602356829089646450817598059177496118947303164507506001489896636044070795398348511536725527973824588492442373212248466424188789551399780091997706792069678252727018790247413914367725094484407198044822280530184139753182916257349224427409496597438769492550152247476777001690017196049175925921734138804066769677994408763858458209493836095238630936084770446075182218678782754457538163414102398331760785490664360597209761419442930561048920191610553149224930788344574642104214400714740786412228707100566827059718225610003382248343500713128939770951677514960683790832957493897353656456221137901276491054530864992782698122153769701211765375258821553322546367395001159686839632148508088223082493695917137373832013527075741891278946993301454357311570988497544117286015417151623936644667309197488096307730912723174294064972650731974469866342575718029871692604474073174978293788195838537362492647210585839203818006965807201255066869041855085666927815478647911121197034447098754025613928554795127286707513888047603231405595858738242058602333865323592571757998550274388608306878534867470008140336117646117376804285667718775786313221934587084197984158114040843062965455159934333334301341740846613598274801343437751075114011895296502849145747517151198874725790616768532559919085013544835073349573092477492947828288323831239412306970895520958249286852332828940198539983679063259577494553196211920216029023562328679962176738239251488074021510999834835607568088495462212489272896963410184514927947674054689546635753219649081939995994414488669006685808514942562297833816502525649782809017610865464867103448586917400184109187710846208906764096724660971782923816768109928452705592620316457894217351699768255003249711324439528369815858155575990534567651767204944010881866209746415227864830795687134269723177174309932198459968198406775095255671530427262739720291248156333546042201688557290157298991067406992142174639864285561316543941402731508548943973953487386324071264143554756215866430453704201507332408593098446765882750145787560350184906546240549912896167097968907235194501507673655663473002548637345668412528891818313301876996294037834437525311259335010659974750217042131048298604923506772672977502768978825709443866317537835448592244659972554480670070778818733924686060521155585402973584526042569511658917716290559315714608162576845199233953878711906739013813373428820786148411824753043353919350504347696608489806676486005313091366659510457099066467648256185457424305555291355820062649497827908931404380178009026775979427428676386172818630657479604094512809791025713400934817891592750327642842433721675579663127570690363449793495502572196818301023951439909177446411514856755117214592438777361175749281522202110718238923059885556427640572798980554278169104469667031945145131762330035488395866423706538131262029083512903246741787315849763582791032301769908348697860954057260455069884309858210348043391501929815455221283298453432917336450022453814990241923859778475240641889318864645483472724029756144675741613356729598114816887727341824617254095799719350332941378474690184005341256487045596058732082270171214669122624086328141297098702266093252164744359890576873948412833510036545804583797192376336826254565025633217794892199170400169296125273009255232616899667797854349526582765614831414988423225101173356301595199517215456184975654087575480139138090848201473764379509535366200643933698902458377643033325313433142392933584350135645360216773695737419815610003014095418166315647892420562310574413541890074446412880285523507781965361200037922978468981805778507339677195148989235318301561921902876185495372031733575137427624420535577769881755951607839975301891819682595613222172984968600083821650685852193418602634456881549110189718584341561601493206378112836244856514691754989379352787515742881847305677543388594849903387762879035681550220445483659278807940466345371372125707034053321918178677239586438794757516888529554208571369268732971781276879278394832954102774509927177505542057593333203164437554633581270029158024460992259375396345428767320867457803379622971131108692333373405661518638168220314646136969652136987522114480645360924097288757552384488132683884131205940981621643770654421208929724244659415488967887992791441746547979353569755902026624492343437069455363816984380617206651118248050433022340559883560960168352065989387152787757103027704667845704386268800835100026631758465135541992922512729755426117411726853751034906122506378879732862896487410179313704858733899917335775098921125334086489634708700544226913737311204163830877388589762651357142051833387934037057601316461671910109513453358803236371167549213603322836435028598534828038490531153204103171155000639044279190307915236464390332896427374211562508215942981598492611405317171422901656840751435269783412979114503009645516059000953449657798706604137287812711584336982236466042465079339978243047340873588943086414364065040013906424679022438173238432382759507156896948831409675031867940797183255867155936095332228597593869841875952978745827919450506730427571097561443607011882153207244130856775568088770049929349767609313191340437301563874486286931315995570990206889663058342653761730511683280205279923136523760732689111067679893728201000490622450247891627798943941609507981384352054052612002257013742786768934129020072468668592849428586983886717009037007839421071771844079286783503835484561503567340598970471169645778485579510922404725763174628786165200278734325143585604556949862769464588950619719974198220123298143394157048581307844529600620503484424306763417913708676180637342385247349463657138543671033388204409930228669301958937375242636487360703039361292404452907094334311506014879126109963040985125815186224298900310506516541937687249416328150292837911491783200640821153579115379869844874760913891306089816655233593560183383308862437035751293093459639167848070128158828617065254848037839324316428181093459959566129628886711575314276002051052245034504627889220225044568161142457975167611405835229564664443050576082078248401695412738014707617160903581241893006732901367706784509034773784628124869049938806693810534307468441525309473769862327690023472419718623926573344929954047322343696132618744119456416689680411544154060852739330602928395223729066176753981181475270053932018304821343536396153281317006742442336823762117965182148009572264482938612925899762050026613638653315580248256390907820525324407814558083853292864433463658683481439155775575314574927941622957572281666062548484481537087222266610307645541301221398865666949375738070855331188528779120192728128844226591548238881036372459804031508316099636637081277857447611634731995838443792155791376134400565756712004747733888765741569269412690898838700677389692042252493468161606864544154302788268850458961938546138360236931462176406277670810988488258001313981613786369204894051679686331223169984420040406726626678306364576750658994384076040363083058298149345271449431812583279719706786019893966979988990685558859863467628872605020466410867822957411176553559688698226303544793588717277252341414432651875060058546854349365790478123574085043684569581110825150907284040539121278183475916826244134165337098318175061970219372506463979536348452850068780597511417108044226632309937984876925637480022589337512825737090055039738185832878746238126873233376935203488450547422232682032326816798917507039101125902980985504307100842332286344605336551065619675990466455918675187285731678715828631161094493004916038473052464047700423620917826877865213666445831110305659734204801600364764082089276826546923013055583316281022618315451986488683314421439169778229523319984890078768064177610840459006803248863616877609397998307277568566667104135348532565324359539229395490283492307305011731759449082359034253996102468993650408684713315421574712067390659982496467688129411932278072541602109074562045914611551843935617141584471266957504545633976422687991970792732744551587982789935879095224275992406947713075936994289692084282790580831083163982582817292319099545214960711471781131247701525827798599998464403575865015209557080820690656427834409269835054095630433065135255503287952437550709923057991853963945248146776886737051778636977533339807140990684509047216374159465140572352247528866831658188884923186663992901620800281676058647874285343357719517436753397796191896685309453373012617144412041246820934541662910430956020333485348940392586370702148177857221729380580591032943704066776474436295089245899535821945357975022410586670818703699522944291891661978359987516330300840926247232755548286349338015260007243410617100950253617399809296105420243721285987781120438918510457752141011100096587913958914483349180559334673941659307264290792358526161887970392045213527703028889975261340400693429219638908301629246926826117498539600576640248738365822615878792845144005117892468223739175597770972400790972678780235720806507509445370555502054625355749679036429491496921151977317068585319451110374717245783129944133581005938446042243931987942706997880347630191682073093874940684049253837301796684074389092238728674920688290060307124319378061493645745543145115757294171018540827363804823796974552944793416940361628840501775799621360778630867892137327777144633894358484062156771924540442975969018102940932016320239123757922515270466752763268743112515843543019953911163986395226536454668426676228547693236655313817734003175419369799900236866361197381726495985136443265229369591138190635029196652894406675783256114242821411311469097416367476065867435603345450128383812975792836303350167572720923137850303685767623663806896967524486206990321761593962375905964317860132975205156029343946096482318382397092017472305531354760263693290071819387905016591445512742089809913814401295907897642145983504515810285871368853548712676132865051652469267484437722115271935283515345408032538933564922591222261796927044811606416028523351624608672942656388259844721702182485296359037989309413573285843699251851091961467840769718486339499879441328027488014394658102828191431296410366618151402342090695376206132873161441068881054727096171862017661341046800500276459960452280002883459633962249975406047548775299913430873639271870175520242511831808608942914976090360032820723223802459753399389966798802543161989889896167835982416962693042168652068064314423598642462400041506176118665708652526039933802570111520948528403806184077580506323778699919378655053184741908220389370510008391831671682752171927048389568428899626822708444547294837835501796706393654045475377216961484690768787365552357367469907641078108255594740977542488668150222297326361847410257571503899368078953897361083533651596219123316645315244419492869256465092152129260160300971769817435627999302120848756193831980162855840153019479121341891343498273806713005800843729391790121855556574570098067059918210875903182885901962946541439510672963921409227553491781277095946765155622142916679223184068053796780614846754169131534272268119037555088102247527730289439675510414920754169703893326981047786681603597919919197252261603073414336134941223704621342620329677571968424579596920605138356100555563111740236636322938108865703491401409212175611601670546570448096627399087025228585177489187230021294461369193030812848236926724151918169237691903557473047615749124414794796541927736216051432742164548917934097281333519760782820483136136391464311432720708633712867162822615649490422216469005968084864886751327393734171989987884336664131056110234958157812868530100105117883122101895203052919748836769047685459142049501133044322679724763870159831554609060539093313044768624743939684554927277825177893974857758471723850918631276480359559980667963411300070451590415387413695873334537463141105062144088349577730271652524891373468334283259077891625542951210942537052200554922027262600425542502375514121919021705971740586045447666383884144370416966056839355769578110804125861016600341484123098451524086051360430599961277356221798873574059040487889426020499498682128024014514140739381683630583110435097873336521117593758268561773465684727608383011562399149723311438908485965335146889159933657509990419522384694662032099313513879595914278545290053578758458013326855483199418150200502241673043303183917809949474772021259783042342475316293194439252880656870330142810831243342573194928437999106182993713979502746452312501502153386764729966842009720820689973730159117992674362757050291816735557591290452072628919437000343460448460479390368238117594973111880508562161230748074608245515693003594422221609944417577157132298201642713915022549433435441638059408335154503782547808444283567613620184406712439743546706208583198131429649939520301564992375782482013890129738138770738360640574652891789415302855475337253243800193764808173973532581262971633943579212454560728481874121929017137504461089620201882851803342794941397648224316503694634385688320191937166344957466856602757427193804724632784191606353804328003175836896447282196638421770013126239921999443173942795853408869843837067408970027625242220333066038902892916660901351226921606120802843495477929441427945136987298776260128010459666499045642457452907571651083019910196760241484215263800446986836479077855290398437364520672919953776162651872058300353876701660490530596487670081238265053349868367985153060437409734604452783070615033735977815935980147583892068465649936795037901034273909935073734090908665740328671145579496164700919119538235772732910874309608894170303384185591860185873481502707638796275597604397801800172689647435585601193847424031408496044918390933787982859350909140946937543958846853760911631714614918343292467501357376489591949312372551040106452784332012632058536761419424893440224096919134408921415309703158887048283517115289473186885073522933757141019982608644236664398048948566072191050534792003604405808086496221788296081516397117803895670118152161560618152375994392761798550140459712572865648680263833959147652606017468306399556350378772962518253424953255164883246458328825973086348117334704002458990022792655000552846989572036778699833897850180645530779690333421107213674323530952501694364235258153933782230585319591960895034878540759462203007753450820367811626973552144096441459729333666078813993658265408092207684799638891029214614322206209463389174068427231885437045026435024541296928749543818300432598168473013509277421101396610100674201304055278888423602107837439555497521310425872553837510819689012626593443994331094984694381409512576596163406776361195057799597832717146906317046536395634809094877312528587887828799274756487949654201385519536035245972385327857066787769593280475349743828169703965850388945717711510422992103008151942686597524881586428012875683917255511270047702972371972949352785106593032309708656953902960756487526852617888398537546747102936841589907377351640021125967605147380712836607148263067942730451221950771994220237314829965133491452953152377067604362803859881650666553100614639444087891255950714088176305332098464648281117278373479017502117228124924284180794093849491091713702081422308617303548484433814871349011262090117700421565359784437060514548996832932007018584256372824988905940535756949446674446520207739270038607112734677237426654391900842065512708832042739464268924257713586969882229616531811535216643856315301224976482988238412833851113717895893035893606315129579916848617315628922418689225988141010703123355205500575317677726734720679368819037512530887543531913905303376280349389168545416267720313666864417765047534420571085539918831133664065802887760508630436887622132626431753566039155418190321055792517387865196687818129242346981983728380941002214856395927328650139024726109839783642955595958144219275935276512201845396491285889978753926078229761764657350180337722226506370403747024404053727606504451985936875159675554508451727994944720788080365356154227667410064770433276340336114645859529250365387926508832940610100267193475263082309889136736191226415930727950912506192289727741938926991864937719576573869616050941279928044247407066042834317436758194857549682205297762497737442583642168250193538542485578720296076552277842756198920426611126372480165495274362964376267686504550382707957290022839578673941513944563994617435033919042748389140222459170163004172255139190493417176042117119092485631807690823876736339667890142395290751614439923547538588441628365170473490722999917278524282920668677748778870007791697085867616851368458457150354961034258761934067383335428892626534262481608994439410235866193380626573216249225728955181367396892573371492011808157186648241412294700756717750168674357827069359603857723026185410995334141120005468603844601233880697356281207071074935844660962258564369290751767346944854393175463653742962529414102515091411121499988424620347143808879147994766883179025482445302910532771311097252731885012734514138121924603151720842303247931439604824053061407980231240249526398528997531627407905917543027224085668299049907988131695967579469427924394451780173317275113627814017906034012185070665990003032952834443262559520286002403792260664166558668088373908330643779495878074243948311527480418904820249333167090311399016091453097661544375337153814645841412574234593028203530637802295307278467385887418515319341403285057088813014175057736992369460546963793011600109856791907543583791353786249347467241784974227032302040497384643571822632051093590549436434715338869621082925596705736078430649117287342594463603408154433529885715632795959317768626630301991167272834953785049532455734598968957337145315525718504338224483063980127147210567642149334669339452467500448149890704563573429133736006253749649178838572776541032297367672901820162706305467027197159275693131374055558922198887431058663870245388350737385288835219508104118232098164449067895472985051243829666515510587993336272981369584841641281707739743037018308562126659488870548090727359664841410017525715552588942517416683242042448997851181893710290039326007363750231636215337014292545896335810550465919602768630884570922510707797309638440493972400070993165000775623961353180382789232576515387217394159196908966588936974193699568612277866843593724339640960987173767122324021057033649745220338186661902017183458831032712118504283804544004616569182281621314995498922261489572797694337884143004880494193568238034598730901650685785424640536613964200505962994712856352648638019174184554366977769159313853272315625116446191864778150532086935221411334152857531462000819475172309232124368441626252120861628399489542172682977387493888308295030736559989495021936622786766232952648284161997450791330639691181558190054823355269145242829055648923343333565242917015481416488246429460719958260948908766314466890621336878627672569391267907634710443434781506845814634068796010878076737581073892148837140772938080079825893511499762213958652740333876115465463323294260219452437907382881249016730833778457337032765268056298894577528601407219964359250064555168706272055238057983404936464962781243287354706903488222752148260298489266794319634025151596475285188414356882203629243505840332281905101304615289868588680867524941243089403096054294048631962758531580194921932841012839411145403348737624423076009876367259120286124560524550604953672561574209698219695313016010513012746078288357116525954442284252578514818188945650946233403412245567057804091417752323701931930122008824858369733205693881242505789562097153660373837476181983750796825837431283876356166974500718702955578326486890957733625725585390401624886063964961117046262113689177581041095490228856463087509694802723448269647215711674901243809635707688546998164738554685251294437572445250244418391856769695233924845094212613248039285391190122356595066297009014959719604520410922623626582595841473617100156329187276834147764031787878612510562793625189860435542628305078290907872309964514272065111990873685699001027836254382943941879555651559850645147782926981526597617560748801863442718541841211587243522978495500839384397798383842191377633563819228070613904909983033540267193853698055022384481770181706203153524648412514435544913973762907980178648635701944784366842039371622791380184660426082882594710330325597003034521098433386971584677418346368405170182988112396213383156952574855589733215656987290132123632281992716702071158094941872321096829377619298429259694050732127096029865239390853030535481174294402239676776827034419825983806634719850645336383469983247205106899932669144025306017093233854961071375769783313296980157227679675883036198753614699707768865886459260815862870295383960082495380950020802780746929330862074987734293982113749778573165264482678677222688465120131482743580414412807953025953272660585715051709036906015688585513064772620375002824003791607212148567725639902305287583544747340547753253108716952944724789218163702816097056252313778179970015108681564460992137799600548521397178134835337704927026027102675609383960867422338614438547049336347293262934124471233696220186704305869439982290505673615476283710950667668390107421961808273813468384884388809309727142498082644210557318455267174388099273211133823134000155186173744566807631774436992979829053929218147083622100154857896727825394374074153717249034300771778370783064755240986317399915538194603015689169449206217997793897967429973545809904897279354382106587009917496579856708171462285731622033137347459642360036536116296392221334910889682077366731607295880514131436961804428687914333708040182889581682268383349717323757638045990687986255519445583228341113539327514249441094482804823413460697636378689115528865467109293855887706442447322099489241387272862751561544832052044406701277997026985686597353304140181944978329131187436708029529028835452791797275217133697080230847110163476436768620529956728406219288489654664224049557100105444509388288504971014661466533785597223657432881062435851724402457680881120745988509410352461495668970823479817712995233174126841559231348477070615475847509806923620559319854113401055248267823444632796148279171527539159659339837594022995548897697332280109498193360124036239805081349189855453227141448202946704678206256492094975308662405210766917075625769702805004181979901703988583284311769075804518732061132161685218303242534280145147960493179196015526727215327593985985315496279936193828676151716787105037487741914769064530774355747993369223794012964495232388128970377656447568195955045969511573290002590490729356247812911266147352697747461649906798304719658481194266901231849524610379020491740634826214220585789109838256952235970864331231353582955401724949410941780737516448636064184035843663678388617008830717446252020178919057072937616693528891591500615759559784627917366295508675693159014446289228248345039125235373829032751077271651192676785273149735085572017464854593022914204498252087300837046681251263978863754221173336566518484290018667745434184912523657625364324110573663482379425225227792554707427475785361488357555646441590927142787442830978015817175655795497011758520878725651819820463433999330257576022756298803285963394308092401246956574225066594871779011890380882757984316875688007909912867817144545526944743042982764004099264502112523872791383813545359298595934048596860867577130523687102072064735720023315468805402994735146612334797663193717668822180672373333115933380992973253916455518352210912798708013930977555280250101357978920394008779679195237929346723108615818940381253251878923055672455662777717602315919810837975024590663563413311245833142669548846850988578982624676658500835124986358016719205712454212216284215652180777443841649548313399404838648897652228831428294547953473641568295243420357301961488918675756143188449397518585818158884196793996440413279590784754156725842808335712072444696575479187758176390474217608826541096738838310284588714099627744487592802362112373025432663131152608739272761719000979841423215216676349981211124189863227858009435477009880242058423056647854082728500821608984680429357654466241582883793563531939183230892533261110981497508962105771211692465125214705698948084142457782059122066372703966228837894882670080519641007127187409351168129143903692817190798286460606404687740380281214745301592378558952089999174663512264930260084453930995141249513173677396177083162361694105347291732117978261573976312258806395645323193005852097621273881199949409526030310669008209800522621867213799114836128446369746337612464621771560957072764591307013746716621084959072899499137703702810888817511983581967567000103927869777255852367945979198099660374628997103446547435511152701021170455106726653226751929780487115364029794619591863390735964601533488737693986857794142545841185440286552292840676292098051805124999639836771928825082778674802091662768311791782387947306213011776239517154274361291049785499633191284338662793726325532470039766600507398006329688493122770708422768005799354386215345889584193829218551137563283558194106215732166535995411377567039806513870137235102626952928335270149917579861720182823356499420068960153954765431822200347017218251438862436122904277990192727632292478454144672637828025000107454519245096906382900529754758837111053004430530690634322547927580178254859311325064237039260185694435978584441124152238978281340228396829854758517137707082121673067300326221213440028349466352482552128804057850160883687825580196002574656314593765333332328859313035540818588395544367029621681780352158269709591633983889282961799683647266864817179728285252619363794295448120616770533355520074683721531234165968892393444198822266149136940242855012410864973808742798980619641887542390848991145249970828813976497639955244898410057551296357512852949905124754899922540246832122423912507133431402466601112812576684608350665977709160444673639809880567421187445388590163797160232980527962482636249861593530232588656254008282285265044739677655264489100120030139520448291952103542594875156112908399904349055818633792161065378737666526135045336632300481412860242858810251957440701922633007644221286570423128694424153586781666548199382750963946335442039444163507290468298552587033333029191466570082021408755556469338146715111590172084711220327454105619408542376049337174081360469913992047643014115945674836013360707097712505625704310793336240947104423193352993604555061549271369004771912842148492740558646186286746307762316217583266263224170252045898646340635179214715312471358111255632535085909212867432998203094720606397240393478177499964031010689447970724314809315070966047999779616985212255062961452226100851403612571955513658453366195783793586696196754493254075335655427749803350196153472269510853025769378710097388280442841356742570492640458686407001558930834948882369023454500710812955322768027998395193245700655472498016466370418272175212982837756379477785621394373266025045818639608450624218527229906066543900861025714422188579715737040463800207360598618257603961120344653214649532035264117846110707321297540295811088287788279014529006639469655880087789132486895811576097184717688986468683456692759257003069836276961432163133222878539327374733941562124418638391764279852590048782728936324367902577661569106139490524211334917675884595416429472118201301520732836775914657411543254634284816424834116460312437847970673861138580959932622533832247441386742764267830306141867168440850234759460445869258900025933419902927981542448254278846941686117070154723216018639012662678376723963739140616081208505372943224213083530154328493927088825085310246061944669876388795598838531487223878719814814728831515517880138740061615197981260089117609335736764604139273944667411915211244130816616979767211104510566976975777111695042993330508062474548548231173235428088714901742058767166235925107613217321857681209981554992763463631589366328320732658810740396511684710658236506964618143947153486403333923371004967941884473346087064703281243630018079033236621658898607843680653739449654888227296493466295588046392928396889409733974118570304427707150573604224994726494073065330640155129525211625490423958568752932068326577497857050490874124605926052324606387679745315497382429739238871940782580755157241245352074384501837086205015750934487364616941103799606249410058159493207032903523437925209068533838288870673445104751087043860490154814838754866485639196831240113526576561227364350677118448933546338467670389330448892983038419132475381411832622133557572485219090177115584063179706303104667685424417782565563846517432782203227667148980024438711270656148736447775510901634524453676687911631399135278949078067638527156869607030146949156546572660401877771397496147330199732112307484446328509349753165482114830358227432402969534870039014573025908414183318074641924820681945249167658487399049566239609743539578396345937207178302095080040373871206471317206863577011930866684176656866802029750461532560475740560928663433105662780595356860656302182707251987696423958799416452157294308091576139745090238552742440266355188789154318761383948184625841960882457586394326638543682364408479197779102291076438332257573530048966083634318060452712800846726733179145664154045996813687681494631420274865206878554544242009582408144130491732330261358696098766803807920539538501593046138412098033505880084275983537285449923535609799504318841921102142413661648624392746404189919326013020674247065043313300086929722416376424750114239789441599823491811725409922943925564333146692097584977419173447630136493054534257638009418622777402461549139863965833548562720700889796599567178392960479832008797432510987351887896726411148750438681451947373315751668825679794163065686253255948996877074606891054986392971235514995879267122329777097454254985114446213768199499304185732479180005767832322277029051028828124472427449739950893860926926955831024351227647944491846137653221149675215445311614836716378754194699934432580371978953341356182502160257949504205946374166046487642942773769537614493156115972257674784373160489403142870673999482159190318107669595300919686758574094018552097367236153600264857418669916640188692114513821372238366099132103519112008942051064112639488028174566600689945708939868321028404187498671117875468997011065198679120062096875336697523963851763795888612544588731977196217503569071163165561381819737111230385640019581698698990294876485623564151712444789852441078054356509883600674796024791944729605895988012798862720935976238332004801935264496012096661484153397783568662843230715211204589278419717365617401019992691959663855536964177378787167743515218111251265147289636121344055957851762807476958801662932583829307192443743193274176350861657639760793962311979620097236884272181331106040720868749619023290465389739791944248231397948952522032379654365131558704993515342426000934230816311629333872299141838131651553700145616847230071589838021249712562960175538694921454675537969170338020698151633120278490413447331283229969060583176281530217517449706005131035238143173867778428101639432607107893605369585219681362673979827450581115591643694347368184832248053554642052141886220441236774804152372382651657549222081026533595400879185859844886953330877972445782576322530476544926061993090516180368983780223013807677238235461798869311733016513027996718938997321103502001943634980374255084330728787803373141221917370869508426647950949291143510953305664813649003363628662378597218371832421902877164373034477596187697565645350381077927942802785971928521478216579845263372919189758355708856511030559708752403784537498036421766468455413859765845696317419560963252001445832776356819704658218113731500987806490251605988292083723855609325142695576747142588400560769357942242143585924185756947094527595993306035409266644112213604971942188544391082429732793368376156212345972971151334987871254375481859956631401468949319675491313680780292390386411511430751365983017546772222708721261741653694338719793120915948740986837364338165860530034348068866306547148453078574983460330458296314656572524921357030181606899214022494104237286692051610226783332431216906524389817165738154356404261702607988785428280090077074003504893901514818269171568583209252166967115507861894606520723289131062217300164696550884357564187399422439013377658666337191062192225157052487269857239000498910522827631458895415662737895814622996085915274210453672934003029571322530581306745536129572611614632114648646153306935649926806164998582382719602962138907628593648385702563725269633419943945352121707794339554733221213520201123110994474563782082431565886669904374021705547300233413984585736862288394311164526489893994062472503390137326433578115542459454315591697713411452307627214148042508869254791538640377614312045057751191251666818709259203574085213033183317966510376041488908695449931267295591978458923404766832225478191452969326364628239356385422906083929601361306913373209813293223961998726821572550022088436891778290965427074047894490711188967667263218168636636444187995123146546383734246609820161759690156901310890763084145061659312094766694886444947131422386520463215810976473028939071903714093825393742917496011457713265989316006426784331418714337896198986579984262928786231968891937831823918345798685336420444629786589453646701663278340317459870746372357485170378869658348954342306393265974175589580462412514168061096914466545765776222831832091753751596909797757494005845370365527454651927905850822101194940147454481777474501790304085923877331225506195325710888602184865507169670754641340578829868927958783221358288906559922050490392849011599042449650318696155410862779509044305028340146381011539304946031328745895463453092421786756758356700909583042571122004488151296709028688034542135927523052034787178437352192255816892613148798989674548529207895456026435012495787570019921772666246976002077675063914272922938010536379389617041189971384921939904947880059868163619492019908121731626221783265803663214214971888958576969232428853521031832863661753318781217287364957725132615908471602086747699079862593908227122385004192845377237115644036847122157394188775544670753972577320709118948725133274449610846994778636739359585772958726351478716468113999342151498609532137843498650252553319038129725045854838447526801287947372147924202013191614097380223072875747941325173919328259064892679252332785735088774662870156690336068302325222318095862740520884058327238466037953270812017387684710930067513582148851580817065286424065716298656592138421528207077506802703303015567567681487008607302724781427903110750997039164952680948104291059100246176944398097102062334456265279447310738637223679046473421047768390342762901660025743877618633996290046962181200659362628851641630784627632034826458075346262963430364281481308301943613596802866572048614744541611499740952731177968674656705018139156381343358090123106895959066284815249928431040771631217004580372878916750693395495658541298701156598071628593985903990113613441761088876120795469947913476892653588823058270316187744135793916837721424896776271610396878949794842301248244366685574309814079297764163822348519466226566046094392920607844433991562250847018458773951363998116436489620279251897850992315784013160047478222899708686333138238798813918441688422094090672691134223347428036764446312051040422072696818958131200465863102681916687673767909007731558436943037935755166532689548901427254329802002661901070766356676338632318862143515235430417114878315678750033764292596597374702130037978878179163582483602111804095218533176990474574787519076003844750103729275788949378501890341501737070743838317626011783566909244190033448144639970392886135048708490070152696822026958270665980236962205226968753564302898184711902654274499136484156298001055983870977166946263057508755325405192177038973672175953875292901435341853753231858613320589845984364489089332403599607868775428064724772782592991999361110675132320906543141848135137914277515877456090054849458667750563601417276340281329154243043894706596172279905246881738299588707703692839803745768942874755120254986430150483759994752607259924774984429665974504147637394159038602329066714473177452566850915827845580289030275571914533035400561707253235827149718070027608412712589906585581960112394468763164848644739235926759627106772206514817186959609022005044393587393363139084417932799853719279386481013541867283956695665483847856090056252255363726967603032354634649871784682930700897713337321155972999896402590376665253551516783863346519404737379266238798646879533418803531259980454156687207555742262557544248456092710834643058370019630867202689834860961648751859716569063730375871493323201360051909830587719290909678568015120965546797422350816377188357803751744845580041391728526790730163820746839679470744810830855722566791400962569923433576540843521980447455007517362095164226998341852090399891606570890216091543568572235107190850957850501698078928588526365201513171697428851976399993805745161395540223617676276693323705422261868211306854303453200443325061400280394852348969613232683049977456911927945751293628125796741393498321617211218841265200044816145297810649043534948975899835425988402413239567178271225672201149768238446473786780073584180004523735047199924168857904131386452434071432672975735920780590914881541072685378822948116217156006032304224165492293923000664669625554060937660163117122258096500528619636649899197943818168006757721829264692655114921823748903976575862697650802262948180313574503365452536745333934656396126163533136544833430995927005956422750883631461843442096945090386026303451796083667746811314497244158722134021713926873609889630224248051037989830220585189142018926180265585753780256931787000620260733171792162140460698059477011835428356594361484827274221624209613801985217386630247877343055128011902552991736847172200663168352323265331059129713834504096054273427091220382664596751545501163655934660847476677143166070638332631616564046487587713941190249443003542227136825617705069477841209468185268507106975723865805855401012469253339454028617350511967159478613611901799493973396024307565764994316160160118865873400715959636989991378886278264647618835118599232667679948378715602092844201963343447122347717625516234159379453220753922630752432389018569326408509493668099450729822297452998389850140061225780092707997185267899839150063000934895937211763479375366098631644246753855078752687326121247816653679721488857254184738876692119755752398460754145149403289017047780703374993025597906282655715117754141747562867414259604754888453650933370984004517100698422438101060924579246979737867378096835889628502922362557677859216194078633836066051374027004564096255339620069698768152649087307121406679788381235767977275582087134503410003992197429964963595286775806499989817254686678195291989257913250712070608655885884467897263261924661115272485842904712149109334756669777846650269482576897889000950218818925849114874871196555257730263522010733607960532163961037092446458988373100253748271255145190302431504945859682715792387554020109663895077638138714542260120070438586808886760183825089061057616741478512636428589257191790540735432353326378663653170390847726581721003459853995344287953049562629105435780668299313462998381242820123031161574688451566122389773372720762724663927632508510352480772234863196439309137901598736696000518231764068827327608570930162774530214994963642487536028445826193662595183823784054025787646546843849376157808158423608388181991765284774642621550165257940937600855015805119016604048905598981246627095113350141876533374700678859684946393643047911594493834783655332182797240484760227269691129131634742259520388533748527337338802954818610009834083204246937925415451892648820124049060505677651729113265120437665652460096529355076460429320895904969023629294242954852523377043050088678283039286936703479566266643864142726646079750614326876278101684932721424127891260197838330263544173549244796496139060134107345080197148459034112685300452833621160734170418261120005253585195624498645998863041627057221979922710674752770364408383965220079977131152170203542459997772890543186673975626337132600899997469756425864317176847824308241077718560330146206067736550378947253716273979726989130149442357317163814471348363369384142218659561695316089269522548585231072706538426201290511296950325117697501045572867462183715697188263529561951107777436790127952759484633550801401722756904599377554888146751835283179571114682163074221137757940565360469285789676639497923004028681834440337106414036678687947074058678687984854115367013419128290211826068708486765779053401726977733696757496085945391848598460409930118311327532698107170904373789130261020117346368750108848266432042265152736168568700684829565888396163231313031818348879490497391691439709617816365859783079548741933522069149801102716569587540059890462615164062898436063831789430177746434283820224435597560519488854691502491430940653938326531100504013946977385862094813294120375986327059669214977604622514936051915733894011952190100953668701152093622053563099351895426311749171936355403886855997402286867180113618590112693048653508933579328763019082727221949050279072802727131201063560775410785067257605392756986294837659457537692942275417884688214363894671505916780703743798506223152896192592739056562477791905559658025210915622425892150926487170934764141775822026735599395600582188373346799012560036905789870515395969583557712055253290834108587813599872423005300839877289884579789464153168128955402171258294939219115539889610945924596281078370461123987571962764978015904127067778801235252100352995971274535252742159858587584443685609690348777470802327865331705916462844449775469861718636420752226711809516011293590439749045455072781447516885840955992331156467895199014067148524832648843247754406716575391448781479780715394119192292434046044865887699301290549890811895045974382179926952063905830996467739994398160586469013613177652593591984460170011845939153198680555172461494958563297454974816409792312859789195327077370763439854381381568370700298037168823877816276644117304231773119148746814313843177548322688970146385769848254180872851016477638941759817843390707182328599270545931662327185788183284182912525217661964792712874823305239986678283435207987464932408852986446136441324989576171265708168920428797082989083890357022881310085803676784688337781278302659378951839721670607392159097232969680547010207701909386394598340986484776772902318918579938754652935719868978247509138957779087518907298493125416718698864387853241826535294928145591956456337636709228845882892526959552378878248578640392675543729424252477371723594758196650174241891840793631909087519799304714119092847463900930398167329030049955371183780569167495190991463121805249593870067956171442774979284085843920680405953935734718625044588929097553351814351406157570176809773037034474775484944974097650834246686664702441412714818983247444732361952326592309565862290408339217913817059314387103837625943950779334017152682481164722644396713063032451445550047009603830607137697147277767825966833236941493239525414502985219843965357971968420995021865457774624832637566446460705286692865112791578642212728271583745303107560378313575573780729734582607043771556535168612307749513244376540793015381031508021860651706284298537559909915675331527039171421008023738811744686068696661842774079121787625507626990774118131299807087516462574754749123034945689458964196344482592811139348128506662298659270317334737204413656661489000804540346667875772014958997682516700033084841380791223454978686631017287799725874512585544418785830350511389161347815669417059570172007582846557804448798147590309986920376317752699885671613043666232876691169548922374754494018891420752099062149213482906051966332134017031363954982493345489109231374292425405771098028586910061236495673937725900377147595876593846632061971350005557897516413863946566242989976725225203540920700054671918581154868665044103551599229482340558042696994974949250000000212502601639849584962183377137192790101970286040247891156128050587129194951563998204128864665749015750217448189048146399420964242394022904106190955562503456988494342591479338084075065599841522473398071515498789225565568473566111343843922345495391588738111747388293837985606445997138846009605906372823330017556330207256411682510700101813035166314009642535788843668205145160637500140682041883097073319182290864885942220466378146384225199748442449859899095943150561181099037247403437074958343041176199236721010910090447150406855061704365882188985033929934608690408407386564089778535554804628732932011445387332063215611288674929411236435493468175995416796737045736730130717732803649484216684633452452166868338612293904633166406316949773331283238442420715983792558931888475511885546819664845273251345861833228273438116675340056021056555930252602057192164204897727983856845428836122774991918274364085669887458678999032223258762841739553841068788444340590319922560941972201328259820931462787516753786826463109186249107684730344550630461034367948621502786830258827236777589010063463249003325729340618129109678407135193976181527122534599437397318729218427394792294881879550838155242250134073208222737571846878474239428508060275868629343267472217035021857349565864447101911872706026417019234152464851561857171495768879841071235114679096345696854602853932292282814407118693074342127542931090550456409472922826697935168737523157996357548532230299652179973944988860059949992849722641929520388116351489941026171210923871177214459843834555226767314302633385379064524064505495053248188382507061344611088891486323969105964463554681566640862475750291651000503859887229585622561347795249937094778187366337940819877312623127438697678848492101581538328876152979624508169721260179210140196887745669896902584177086653261481476740658222327665333192669985380236023984650567725198992583573885709145252838536129650322451437834808597557652532857406807040523066593936368036949330643365080716929990050522297651110890596086994777812002890598341701247166442359724146999596139989457276686901946164609345501740696751360835224611800104269513265752438453404930515096387627837442541901122480406361122012664362754307955269539084854964031118339869280124773750095938796272573368282916029218112273602328424019958770738241771659033177484638124933752157234024794199914286294724035620519578493401805379347547754864802426890264197588200891808581046721291800441065025603826096796917530274819350516908022651109038974753206618961171950922001314200667355347140488656758714415465733548732383395816953283308446824724104176326308845065520402268818023638774035251142725966087962967187358058468881427126330696916380249966047858586811734919651751600458765352405618510478441405980516361477017219125362276224468327863243257028770389269047338815880388384034379246918935108636310016282291254179302069623030499906468057997506854454107072778776418519645513811070550361311917222404765030104369774950764411108154257637345592419886504655099431601867838108917352260279485471743249158145267218635172842528672589444585169264516048669021155776223328934419899824010530603529008854155230380607873736676505161263825656205237828395528402538416261852467677679806263867072822090603583594037524781609239258619677550345174665728210753581411714063569404265945135827136133795466007126136293626511233336084948975053374000562471457532157857381684311222917521402591368101531369288975260294375838182788273812557169603960574495449830908917000143292531026816436680376023723961841963595386338803293948348825860476452917724540649316285839499707150926725756943041767764379457893884169971229823776869092154831729760600797729398367034155077037447825570833327827483134979694364265779061535519395292732932372001733207647428707154327623410661568737680563465287400593071531055009683771173744673961717901611568757656046087263657753733255684162762132499060495733436068222051349859052077844317593687442813923852372831826735507384906790826813339513503289678418028545335999844947050587647038980102861042104351961658878841125715688722171306890626476212649347615009577732821413726978419873698179728691818646477873105219855122014090183022215739196130709468529773621517325478548127303582901843527608478498721505095538850523171747352640998475225432101536587871990979119298917322600168404949164206407225704322567344953559927006815310968713218390748999576731591824850556760338046100679932776100341811453382274864583957222629096630717437237189009169076175600882537889135606770175051952940182316582146210259364730403799419998185075014271465390472679055655429657355513746376152683659586706967529795520136617022882823462189561956769030837407729986299082876445334043216044830946264539089997553427118688608144335921403752939101004977984636399838083151478477070840829284463334434376560871825561977897551395811293475285558691091269000125349250940160878415158172290208147587097759748632619255006404210783897669038030075106054816511078993093744073855099972590238913412901085272585108654944069284449922605168277878893663001993256455337664460151888679357687107033829749117033646222095054962024424027109031785590552316291525115286420484911352156658164951066700553346954330573612616686974547573403025960071779861564303360864338547213993344417105453006912490398522821333549794029987236836081776819061695418113064627670821746049607989761321683535662560053038632788991876480252969848521301684620563474773654057005753826736543072758499032461764981757463205232750242642201873790969130278100525281371836732815336047775924850340072457355862252366945620066737486242419999203144090260489730985864498125845277383408620242128997164423490017727075616163464442351363710458648024491405244599388670616172105201298203975739687862864879200159983702999366700818748392783185359768509202309162856357695865761124973393716905692474926067091198184547277505848112098794931272018254914620288021166893750558986645648778050460228470685594234297372416721011519657573152386632914796528525845689903791714503391887815059035313561289636735515850086903153339093779118635212017576205042980557133000503688587941437150497942001515309394482497376760377494815903022390982139997059550732208702790776036875221937373899310393296412760553394205566226461735949000319063589714867173426021232312228145259934428663410096088093283294237608073224714584810354739689449116432648326985614328542987518634192191399338475408755545289155558916478137988145418583112258746916126165682378478110125312689034034871828284564280688751827671184539065014086031637412797818607614871527712694816833658944781955149414212268872020243016640022045401186093813603130036318414581332364689092755946020045088559469584643729376610632382661609352323720802309243130091634090553836520601776445505884190728511717664568700276833372977428104518345265188544183572723919229078104444035966048946558160676422056376548527500713771783538937989987686022599866703503878522036573666210492651863908337204625217028337735426636319626061662541495464306134053992969773710676366881549425791716459163072354199875089626815427536763497444942054012827944617257192393157698143499104468183887027677604277766943659664065311831048847931399185834061324484962820561726623311828006537532305300300388262640944285562622169540142812990110405393406012277300926677461587017386905110292756881791340798859379827458933218787342336948246138597300047287694622291455552435779731798044236169390461265390615696645824547972162276816792623849728480008552920066580877455442062873575768566835262877207920220278789458741971067090592187120954695688299838157038273901053568702640135301601913244962807273814045887706801901439177131033198238858386682646811743850861094149304020526346837512112814891068101518011232798589711633107507120412932568361620326125687002608268164905608026612681270522054750523596160833907634995380911702421160343497060110434697903678638028418144953458940262190405548834242999683339246975922968637928845929782437211689291521757277908393615023793895490531577503800390150877472596630822445792639479176353897430768728229452680579121281377124065187904585966658234271222083292886274694069917876285728598646575538652890955612513767036405943835587404943989081590064021468798424773139658242791720129789376146213709011063428387141290612548776567848733037825303346826575179223417673120299921789877953033795046272798163133520648857033065321228657714262113816743106608370456189627561612778158666604409775271492007227897519649280424667204377213633350806720963004236910991141329336644889490211290793687698153782486069908297686588212515587279255402696660650198233676753182914184379529414632603175781800406046128904915127538632488742756286292360243538988279377621611031802568058764049548756758186060688713627084921907782788836641348364678416915269589495351350286416966695277746544850026926851746335809472042931090530593850540511504309311415535002912755335915408936960333670434946016366967705176023945764894200355410490084384069845828063334381225913260305574654235819198685057570914100716393502069626574391829860674779092667367225233372298078258377866291966962893424871344226301893070290165576678449529888368665652044990700430148414764828488108256748540612793487751365035125874526007095268827307731418862467403286485917674762702062736106213522118169233827271190031732146495278967352851809042999561613535950670243949400869821738951501492953922267498610621894985922063519360091327302818445723353547652156469799688664928028329963405782170008285241567893378631906575395555845906178215149341402900175156779226059080261863866533145218687473374525288022324569829836316891250068236094144081163006044408488730085425240067097587745565278986462666408931143114002378419668686728281763943636069142630279043468178170019315038978067981788940966147632549514372111504819932064428503240944725340016124599279258443527149157536277753183401901588544777783075721106142576652462116538356899013025678688005740453868989770134341359796926431052802332237776988354379848719651347400316342692719428061339604626504591906750101121764853212250643844110763970887450358713914772128418347494757690494470067049610131003313231156183563179434812013627492657628671840709905234549668283571344743834191519310674724128846755580732991000982482467392648762361592123087819942943966943902564001178141734166676542230442719825293965193367633061979707433249256236664264677534329387112886144614530048081051228229912523379400693798682563263692805726123569176163348329396850229055099545815332549391236001083232060523540569608736914992583514457183273399386347723113881909623548313591480785513874975619692434407307334758256028500120960946040890565172043721268099494338639621001162645917333589713422871878903839851713996641907529899567742386719822626767217779277750213856307893847659294996721738290968491178682481656637456749693339048371209715915458456964232158634639004116509784750578533991601797512456309755014423110811006653348118925004855187722451102924534942166459172902126850917454161708808484767989946883083687050760957472780044766542401057176649789660721160334122595666848639860888255944553447106808961288553744114691122997082278741713983533318286101976745757078271904847668978521090079961388148603548944073667644591444290308468929156393797959964870077498593849225897668138050000191587939090962889194111951195504243047517171293352615620767850535262761958147554401535049901151848216500625094631857301988714715695592115854024938646536018186433784313355520748165909560672586978863549778370687306739575759412044719859761746229017602074773076958129673011387739357343341753134530178563517809901135123100719977989883726619383356057102821458824407623147363816664841490212062410778175755197839449817998381727659746610699245511401314323351308316734985817564531969137333314691692323041571058376722038189660670457164507828365666191647219984313751742799710411653022402695810543883902368184381365055363968391211453866350495781166098762184587472198583381644069813435315322378478686833136392216932101859437193263257291548640252155629483867255169956785171939894620338454401813347625729289087618255558428963173100260937734913264168854715457235673008381276343326263650846645477138139740761866342780225549262449442705702042170715924460809851238457233058677877637919028642479456859217641734342114124565515982462411245863884785577109343850132881273018669436034360448634126870865951221018449945407073612238542588040905871835026470106408372085482604102499291527980638610486261599045603244609008997311944480416184965116981154713607391978257253039371112285903390420638358623173374485565525031702314637585941275906268635832792873185095643065520483960753845333222592854231275977999619093655017299706387284208802443062458189948826977105606566770111714366021333352475098000692498224387645515707739282525279307106694446780614445428587925606681135807949092545390421947094619337815274587814942927409601522149077040829732799915440151694061352814249397707835595628599493855133706829482771285363156094982085811184664346759736310324856207001504933100073108771756012864391213972807425462395543676846503022109536829172165676165617715009968543917968894352958124783424046582021683295931534087570886106972911854465095675454065449476210961552567010676295265690269457972487185516221413882173969355646975292553745439463732878474942954397286621053937850879230220961389594728914600697063350354165304146625355887368368796759040977274089356087186984643059513882368477034605194825355525908106241117649535347436749789050157823106159307196419414114809972989185475995293945239580109934088813125503996371843553074045129705291535180706578152221613426077831689467477181168735400639272230357698593316855126169781034738312402366132460947691508497033840502047406509268861400973938653162510170374982817377801927044493044910968441330756652770806589452141574527239453353909289715315160811364176966331456226201620815178137132335290150697511420403472508628298036553530472458591665747542113027890932204311905842105720469251656261335573700811725209632696772386321141995166102490503537751535090793638347145136504011953164317736597954199218958787472308662037732658663783808071831143479939412949656856821515771029773582097806761210791468002604140775297054150465288143990007149591881644893009699337673019778662409133990851642897108698404933793141772788085991448717266458569264043010762542039641979058485866139526052602576837293112155727333215760217383779846173762216658169459964670479734945746614289166318017564228794565977394855525910936361153695973274838717845479019440844633657715101250355929632551096806128048719555353263232452860957357528910499160662850374664890919801988325657833726388919908240799028322109603368276941092817247203167546569369818141976104377074382406713692217665784827889290893285429614987285771187095437043913556342709038098772138089898128340678253668761399876244532901692245453716753948968681812276851950954523393427702755890231096014061932709177909202564152940026581002572571553215331214459389918141900048507564041383860853797469615835552940201204429330230527417501190142924492277165317168868321323642183726150970310886758059445576976055056538107377243288604997865884636988407187335445694530090070114014732076011480345060696920663540981709018330964573942041105243036963675437466369996844627370698422744637462078006615055987844544813060473031769838010483930262122692077517341726522473296464175267798999875904322040370628224377535201022640417506359572783976933028596148677628694292962046871723829444813447409839184715277882897953739831256271376858758565184016540418355286386503246998135795482750107747060523766438123507588683787078732574889682548022671051155005030703713200157128109231681873059205298075237672177799067624083871036203403845023071390734197032727082401911887374711827794185208483516615248378522099314642877988711761518507112244989948303107809428536868860372250391593233272375321315791567488949562636496075618665848209317113332762408484839676002809349333308860310374118167300031259362170043501849054441850033024120677340666799793302251752002766268582556234536433501711729559277641097060064898785084639925018670803181449373788366436916865052570775152622248041567211664918997952184386690142411454703865771483000809603130395350460340880159003990720132498738907152911285422184996707248417681416833113012620608992257168202497028616310100549892000156489042815969721009375191531421913301491508657082783800879163265363016132339084030161420962196649756282949969956320095397830642542272655637251946990271904147026604150161093352207755278109021463708241056508241062613961588931610085837646283570393350234067124414172631330483808591401774936179850542313498666817612406143446678158162316786826036538919264034124806383553052276748517504086970250249690590454987571847076651460311580218112547458663860623392296310747702550474381186562533857742270627556839028991205158035550655737609030098043420758882560500810683205819883289108233683671844401851167123904939855429332237012860612254029338250372045945471628307793431314572672351082851256137358333495355157913486959673386330603142417073098855332454262292764869916283535785414963551213234503766040383954415567956226481093278122919105101546775917519772575155174113531127977635729690534294147161454515449111405186339565649452656381182310023879411823244530247341483809370956516709995408869200992803739111581749375401323148174454221591236303163416038713853448374083012545424981718196227337158942453592402673378897808954221000716779574700038379760162295165539483604118989562298641409238181090146787840818826502120375287514856566363581517435437503197143261992730929360381738520396697725288326455064661595967520486349389537083235589669882094996434300509475220613415289014743603668880164549819878865528972077952783775769066537891683979671188510405379203037534039112953209816982139229572602789563317937050845682585075318251325052619315215172560684782705036607490006571298366492378992548350702660615365241701477694392803695435691984023641171632881130281203147620534748510349339617568766620516985530848335540489743733203113897644995864067504295154171013671703547575348852049454788081786193299527721146387413351064770164935879946471827080911176426203283758657904817799987163772053707250580733046081999146471510197651372952296347698284081071089991318985876328137208792443113423589728335568884662917920555845595160837043924136793715352254859615562400398549707750695789590551131930531761712911132440964178842651836422281345910213634526363974006707400656796644623520297644387961606093676489103922180166101226006981839660079596511616481275416658669434723292340991274924225995141871219058405053105952517208355009350917450659582175245787301878355554284928709164942643582548041455281291639037124561016615626297807472694813138984899560282573519429103349695706189936834250282232145081663759249188047186947654694503897689649572036995041160883692909724282190556382056163958886777784971085648489420057604438557832687213836371267128179478682304943128304846481359293198384424450869097411638634813867206938042118884411962999230728443619712275128313126247320753367245308199194082984533056021589411257603621325065776569239069166656183643553570008550845566102221406823582096091250732639731795641174357845657459029978816355229923722461528960021256255096916561307256037018037182704140734649761321619062029431422436063682479330492085982992959802443003826687219107849092463982007419152306654893632376329428581135561548658457305903022656162343664069840787438322873387780234997318230947564701904819361395560141513034982466022832899257046987957700995349041697328530599772042690915551770066118252059866856605487706261113996344534961321601148234421288536259227366875481146100283095816805331309425428233777624109264130176514101623218960345217938965780533813463911738015648195333959678872835089578134524666101266992903545039646474368755636376968523988355328638290324350161839644077342130538770940600364302800968076069998345493940340464082857031767230570916286240855931114905618615726947396706706258738729929367163988681216775161034039635851197415107130706377096782060830279121523111174428524998808115928595853848641432976522937430245299039085791118749954741604024128111792786013003227033827925778205205645887816429708728082976456836831486146880076307459494607962131308389672930832203433067909743666967385215164300090125574515477629287183444392282914420090342431103671189286551253683794046997491924586108532620215909907107499490376474127774381937277621633073817870558779887425059908559548202112632849388804005791435826338960939160534397557147129025688161904516979567362591659008500042574486840267687063759178743348358239280747358855293428061913442067469471991502370120976192921713387506605327110187496315202578195233864617570651074933649532865412517708615195259308885853374121271478589644667500281950695308787309752731466180633919439246940266149773131564817380721751231778809125452437682359389332800925179366304826205720300347603750495383129155286870971773403652463545912609692587662809362641340383073247931441256976049181686273074934537774528076553533738232986114521775930031557192394001087487727475910285270526903204907688575881489474780883187540539467596842743179136368841690150866065833082349052204022833226560060014409086146223467680652492357502007868592967512207597276387150084010566179014003718221200624646548611973732567733143677520576933788413155692042003933281744899523122690994420283927584907411183898003422888991792164343118337228053208231494313653252228951823385010173695805977235988259897430091474308423969857272562092441258622021745989585233668563451451525436779788068509913118433580659507916933938006762793851603068359768964286896186433262307948181213268365974945610083059857043761157788950934888386848199319975673478548978761088101954024308217242104377747785963978231307715581874006337929316112712787760092441317586350700462101520066590224504222976479778555772641077663817989215322181672735848131637115405223369043492658257722813325557615423801782633162666889735625339213135865264824808090049520593776577524452186371348463487461880339847392342940580496778486115107242282076243070065332453603814198989615549643935909660585429442654783594448516837326939860099933231173317688270053553201807929399176303811752053571816446942541896849206733678771919563201791202899275782479052829055005023591073881997372217943834431405181098756306147539616641343429327137785414568852229500025933554721526357916682388005415346430005651828651943419354956472469759592458281012661194287485754568648067039560016490158124727744355228081797745258137781017768449298008375908871486534279157547659550103404341451050654605371923443465497721191189482764542653219886463599962667141449653484657779293688388302303293100362650812228251749888630640290898809162732269919267280047546769208100705229420815635046577388878087704047696029587231424592990258429234242086427345631123180979795896116113268649910144310471608525455579272206150713676234433880115722207564258765724039810996393033554913271606841310210245234024915118286663858241264422617188018241627169043080281481391948222850660797748106624599341829776176634764194782072707178730458303548191455328422711481041298948120565348706389185717651043792788831415170829051868239162877098911530742474233992231054255435164952909610852593291714089895230066796448513529775977133751923383672076790695216885118427132404927301847651739453048757626194069572553603239512694502224339724366413861642745094036312506794112764227988768361599404841615015550769231783431712807219286398152018983830848935587055410315909146021438734655257792812692560651365405788641160616070548802724945864375126920932153528836052815145297890314126442649241833680725112460224393119930726048740757005248671002873650558228201739473921692965826385313679881462641896511743767459003922633351779179726823360020497448835637162546018692066517387622770701264068994453906537106087289314428960618974019886564897935719917587736687002323811274508188300222844781018230788801168087971329133222566818334179062565999866525864179555829087623370930908899990029622730822019488386335888834214426293786342512852488290478906338685774137301490975095636000700985204125649967403888164190976957437814324317161535837302616953959170607802418288892405360336418633881713492182121216691832531593587718499217389070013678237030691125879021534910420776096275217532836810009508378249231202190519466758203641887253999355696838511764513693462469541176154471882269990089428769435848139385838018541016620976674804470649049984949490863371832869269522723538223242206553109907074494303468341745192779699983529993553530976098026433781092418909871005790157351929165279070821719091148728733364931523665366022737524655226140052442143242930383594265070307428610608939798670066832772836329839318302956953465306990638510532015658340541799157368723088474877044380352838794941004840960360278550557262519025709120314661902910895085196187547519394493265414800604793969818440027156709389501312614408041183878554343521104340604817268783665125053054857133681672033467632627555468883466475916097899311972778566259581046617916170842174146092862929521639557016448921081057745657026161893378097642481851473032342192738167947957920075546521772600257366280568998822736718807239393670280852339558796545252449674196481682118432045889683824739739888298614942634959564625959512663086515625622028535180558327132993881266840783735273593259164296923616753019031697261373287305740243815056292249728372186899337650545758336294798910963805085342379121660971543953125239849127106256142555805844214473102268423897918055892224786539271281304547846168345325715276333921773211352137608140373080112303824339829948475604121378927637439484487332546341506630954125283070140700130202125864925602421031685939836268991739295849854864979333228744835212809384910935634326316200905346497968629270745334410643191954285374848482096204684504510425940569132280127562823236952118087686986316871405614872743344629130357867051890594707123342137654630670790036202349245127053106805538745930927085966750249744328396439610906045139820785883150264072509585690824966489987819662329414499851546932905650324316800998191478552807056608579983654446796396715244885024316217461368634212315006113096341411150620104405042350171485910779132874699375744900048298629489821724964205847490104636579578586140385166372755244481413712624385269796032239396503089591220075680487921897817888345181715992567771879605531314529200953866876455070047377356947540638356101607958220640423782870806355517684075125101091417256378552988134975448095777200989975530794581881173885347589039936315783600328812401979965881426878255343395269971556677418585692269905435107412528715362922162760661982747077100288139282442919337079081538229302212359008414785707594397466095558104727819897748144322701223357191796458671467468233554553419059211611869168643676783106552931042405270463602667846044299378133338991938490603922187101988733500941533481956900201190691999110986292895891270676895952888889611314532647145110626810989749096976179018054557676429518119172983061548456331080242465492731030515263001783199239861606490057478952215577105838651061040659353998590428764305268551874242621187856746429049588705819106322282998949941884263372162541983547074352173537962950220117156881338882623726740061578608025591912520398279607689278509143965368291432237249233145175639796179326753179529885902193087739652192099119957007536063184594614252806402314847425058881585517513924065522233879749288509666077031514760508775391411964970534768646995632362310726402300354828237234736832288057256559596510968981583770433970324914187744610269183633730627675243010412195890551801445400826467168891515216220492760134922872937542921067712335146586186139010874403088795795800650383580537050987924643343907062940739163377210148227799517128237888022452917097013419253831461852527052484873752928439329344823638518937525269788071453990390262254397403165832513097297994405319095537675181704222718792139273754627098188536666666889784385657327990010807212888445208757235493737444976672953757176756434004062648889787843584474161371762401068636002785692494650153927730580890844831475195101567883546474159127515512225249060324422913747677529872674923350397157445179688764965035424887050369360908234210269521536705400842003913099000396983379352175536283514812563468317019264811376448289064969343285758542678638778009720504558019094796177434130333871908384092489213436184854713930410443880638564930954663884568862133295380326862383899983613330435583457104224167688201879862727762412964044484628891302518927707203264662195096312503475787794179002105259888106595711846737130884618337325401856997144184575849438213381963468025622648178528730788572654984293418048466590026112799375034813826382518628635496326792852573115764630507964201192954547737768777787046536793534854158137406919436900524086097073996670111341668267119366783311405572388326575966717152361001683753097635413278102777143546752352850306063039102629001267292470667819236188476183505514092626801590522528265053087497792368059801626326248781703905642935470173842437118855645908959473222477465634519728942164803124222586443508301972468290933935418956740260124669172514296944969961931834835930798442717220757115083720559794445857209719092341615859118519647010657223499719257502667605201503431527148340679004679477218735158014599832808803594412269685532740723746462803903212430649155947187707508424090027322013513571362552566243757508912297957588523166566730277492608746971083445992029288053514072547176243218352369757793512069972644389299658864566416977592614592900878475373245002899506422639747612834707484021066418227675677759504943542367242360602627762921919613710164574325593612581899019808409055105716958137363986471519795833597681441105600042014476893344176644390988891537087121321205042955151241555755980225591403409400724191491969101296434099233161980153359289461863172430105635612440760650154156503390011202309263760348277480596907653275359545409647266819591951389037068194908595441059076178730495915522889298246586779840864709213547376912700926099819616987469741884049101975164073926918319207725682948336606605977396653377422587520168369085742146235143160268250011250087217571596451484739793584780005308700074126709238108959540981458119690108998360177765406596197572246519017854919863227948042078516542112812100231883145806727103872986601458608436214232051669110024794166778827883575508138598268509688986542697839172730746863875872644599306711324657508214096204598722680045235311781016691751034476146477267436166029686292420584653007515854017188820742177646455702711867150966696768914606845624383307797888135747887471946290183632740604479249808137443275199230745680179081014759599632118424898021139498401319152821865912739063394888093173139008669056646126613963477916821108031113774782153364640160161827762989343524330784453935674013019477758252330886459320447479928848061734497142647633535402381607864012518011137024651813758556067402141242882034663488049747715713128330896444938221232079426319272787678548283407606275997702967831757035272317755941889729715466412200298570810176158353294588975923753323325781556937483634781869114812508823542061246606079126064078071349312622484332244684745884447397472868224049192257811419330394887269440581970486703391592901732837799532289131031591045705551416814543570016271329326962402376839427017962289020906653085731571013688680179760688300157158988094138536432534833041807105927433499556494535294492024126750037381248110201778138030010514715796155870987758333282361395057295117683776358576320964183925026291723491020210260155726237345549164171981865763142622655725747922118557515518859767344833259889461937061488415189642392546148317883535358889808217876118119885409612442458154836189608672985568884003733565687568597200948316654967685205820411304766127836503592370277294672148268933761003326037599078081042205678311844738919511281917949333986892810622307758943963865731557398683678661568963036866630962383052651620130974246861511079113957032681570319234593916114856636654581144317781899816125101210130154808160724519312494482501109552755556857979975717385118263094365168577508199032365090369739427715652125767137054043072255284793645170962311447183762874660381790795419367771242771391773920820658239671503335997380980573697228117625720696185781632416799506381335137363676642743162864152777951719605319398705414064678439115986198182279872875092070982352330651532831104555390397879242981978450028208607697199828750286586453269139408669561919509052878914327237613118912499611092596841908170784824926973695127400060866225351477784264952743998648964263826253240400263108502036193097335936951636198476984745040304389036559086716571993623382313272226492051408525174053095803681110724328640370933710136327320526067180744581797924291023512966794080618887438440712094804327075376566002913278538808297851154785826803754550418864802136324106413575903254824164959406678315978372327354290148744181480592412382388723006901428238235948116456351566793914813561142267977155459575238835522985507752873806651420919111504144897946521762866847559696794839424182525438824063555069656513597925232802234532991624149243996993257873779627844206362605285774239025964190782253276546884443246228348317825353087381206857018496928863496206598072718596138320739133277561588745889905665880587997525179162344223691465132937220216783581807808836765329136414930015747439030209850474331060024959338213421377580294321730408482776076709786682307646540218807805231644342259730440976579996175430633575602453988866102135529342745492581911342326560527820319135218757327360910972916404814636777778004499026103194939804769564597905573220139066209094105849085679343165854263350308453814209915351955456376332867046074633900195501499781944387107736552090974969309322478652828123617713743192851777056737210163445483296823896840432181300154529185941196088157952322437377117189493991613562636320303815203238644222909218638738215360459674993754558206109478077482309845541152787455468459904907468794848359641108103546851888161136935114334799159383158271286094016617310325036955545719040911519298378925974259579550775349568751910489878506364662473477371076790908034451324704821115975433186045380461389042516952795603233655482429339560556652275589846102316740899085081265219148843022261206778559155997127224214204580423028739998187226237694362549502340191794189311466251826422813717663591313520702410687049892863590235837712407595039051757783120526422128412026906405862335684000561118259951504311414331028773537598689948355715649123388908616718904830870235830046640338831417123548940088697219682258125385791383447399188815139973986797459327740517204766696922952233879653235788843972967082889862638175097884499111792855451929122163397100397360303950041749153959983985747978660629322364039343310639320162853325886955354126570952696742717134751716029072708348688331790854431228106616941061244580655414175001663762666150948668674442698042288054171177838233254237087881815205038983925533824721032599545425653194386403242628254357062154068912829257423261772689808879341652917370385249629648406436191606130538078844625513108082993247150683271877666384193861486610903979048165973147314795160858929421715895527227632340393345798018910600068406304596406533918031701844309804983148962674678859563925523476207045106416214263081801360005995678058095820072526799160315133676432177819083855398241060448615173564330525950239094014298860595242804175002239317213493500525773935736269893893527172754569294139151031269537446838330296224831494426140457457078418129800048718134099255488637614587730095508043007937103442056045842137522902784108532469189099832924177826968603838791022466964383728461701745928575760490093123981220137472677706885287638324989197898489089454259015419597410885260835640174248268882374432676369676984046564969742712904133147892716031811023563031784030323540858569906557497898662934935379092320405895742320672877166000077239792069215339722267565732698319752228060345367788033235167663455144085954435137598941828418399945727656473290559105514489379645698841036104206313351857334323211759312245056743694855952623293690761959377951209012699423474526429004794770214898261901472873738519765605922789327508866030673131841140107368883605121293055618466622794497656246378279922829775211519269233270337433078079564527733962607875984945135635981125400365513886910167562649879222428750940369514798910804155816485461723214841801028189438165128222305600876739003653608946605398671145606427592628957684140648191744007086708087171218611969329886263559807136744773693182821887963540029026272848786845149330463676669591830253665542606868955597003791077575810935465073613531651873182290436157187023083382831736692563279665824998026556966968941521009937367575162471599331982218019942677875658103866689369476525506406283780025943722910480573066044408453286488189786088202438379695947346278130374229850125117631113969325604608881229271794085445893774180702062408784254811732453577789233869037016667504381392484599498903499138998532590096463212343834220501959096799610331542771876293926480124291183378750451193513283917005725479398870922509070113876254980958006268051594126942816941582253971553123209120819533098354232614241887701376446538597353914113344246876899186107952161329399287452477164377236796000047036343159602263286149121491555836492661331778477472878718764676503768829381292740630642788334304743779088584819737994505748089753501350028526335538993523886975209150615813588401316213609174397467261251821352900881130898813636279760858742187827705937721512979089654982611504819902281007251320571781542484533386994136188581298828912606837757402639221763597800422145343112922193066318054416669054019432602226987378478507282791444923863407939185358687762997152781684231355928827239615833707507167474111458109323384194610768414769496440820024938594693589340997045560717677953815453901272580287162912160490269383718196852852049936513554306018015218596503370382568880448539837294181100115605036814628915053491707303963723621203227673150430997326107320292761837665202324174237975682485025321894944169785317318026745758253376648339475813415124609486925861969780684360341805474227997064442943231797413954702919300747186235486196871961382614768646002116166078891107290560338891530369139676483279091992250542277939919044996215209159815309340133642141471233319677177883089299104917007516864656269077746922908646319127973473899432691171358840139579129094333341924879866450721182860582432467409796398074611467814298401354132820760472940623402240812768524209244980433817323895847693335455400354818278427965586507471702497123630727836973968413283254021425560360997651409293636969975836240100755858046959026674263811994450710067913791847959408513331483298585585896246755175230362205527391525394936374141139018846465105946254524101520855360484344568935307083423191968380372406069818305575243935738467427336574893885560002598151178371691613759937142624705343400796828895243642603859748898836000932361817251522516775701750456338503044775504730907765401427638325986385596769906294932263737941300890965410894574377955378082634677406526656901730386760330751037770055957632422650738828087824376049068460135085873787975230191136708101751539544369397695630412962691116169410069411222577462899616612125528554088891318917002230751685013446217130655034006194152183252948694861145737589524530556778789871330044601629095956680844584590471798229859977807630287975174028524678207935797370580526738268382216126508500977884949020687859445053206478032834568463312672306329749107039996349884488134850582620470629475891096727477257018756752306990173889243447239996866010530971450314013862004638861392748474781737706552689905204648029251016165452499160298773279317207361803859357649023446588855607651627602914252821821447811604654303225954576636648504755708821861218645465726751684467446786820269071319307570848649662110804815410808483581424736630252025523130361017800802278088849610215210295262796773662275576059462790591267427444884395965806469393721831151526434669627418960859365323490208375724206511367679104773291431433586691621721019025144797835159061881241712353356290021951993866589906244485625312942993588128248119708192412610775521558956958826867592241703012809382091586482092313148686346899827317943016815982937948509720911612794913473935455832105841509263407253568085839000275188208194859536142391217948143310844487541644576311337524703293401117769258516878424967264752970782082378183859742844591676693543790314457013112883916163767011582325339660108333266543541958620383177735098211552148745624864202204347874257497240595966756128848824774998601420075643570337026178661366374219380528621890714701707423389858815851710062596313933325083955826078545321536763067726041724636425538053240593635856367002268004374081727011581399430859992106178209227337590396386188101368243540085992636465953410214538491167861038025399290746576075132852188330846849928581571495353856382757002403141901787772060344456796530426206502479685595715414125783381741170996417081784974779737816311588206143018908945177527476410581312863355493600420420604707112583478502774285914234938192716095980815853878265018510095046193394487916876077767728299855191860308197149890687657217493676878989042399948640776063223565630124148506385241731008485803782102324388976131343255490921676555960502519312670976585680584424105137198684419556319346489955025252354680792869489910171585693809944516908871488807309788912986616539316959386265898290519869726166099823323684558990210223411038817295686904256309775942859536476663424197711889309796004695588539778789844106725485704856743076496059044696586567009824520019840236131600958887013436627543335504271997753160129443566599669665030412256284183643236638792236732370823730809952632277522704794037834448350824077587452175157587838523747969584021789285147534705772284314798796277582187715218641259305867680212081756764789089964671800021989499012056758321817308307781941523342228484652145772407890345065233405338134829507103446908312765890132107638892155451074499691054944641561427089765026603274409677885301699003089784761660633745597495918298926235784456709607125718409368364459747089650531560244372495612211995403180261655553022484939740001350014680489463616760068049131554905361008740840132739780429899015600147029197300650162429906960891522093195097494233194713535878283740924246187302109206150389439908533840268540756228448185081577103660264923038121092381307410728386351624293662715950694285869417036932238252239060890226743181274834380522048722141667415952401121765261185605211480772913798198479091615696843341847191125306397164830156300278723746208629337166743594861853832593650565749292228494936487776124181860629930848481495657000447777027479654315549124023045593277961731379449183915033401315562599695294974418371406120554549929574021782785458406476722953594370762309764403382206566629849227769649536236942615195173951657923845069877432511613504569122146842364948881281740810421302379941159472798215606666432588496873867502165527023827089651646791353376098263309488027055559966262192063363009858979560095820824942204220347309893554844600985401830716750587532148920944735498988966174207698762262563791827253366133285339099498064725920067746611021972202937831592508883549705312993464840017319170449891089765415942133173076102374614727505283977827863935835214395008407196762803985332103130333143356891918957763901311237026189339228444326533723049589086658581301518439771911600002214987061640703701749916817745988853566013320758191913558267785950964333370852479484055862576393089776502848117726123604560901605487346070313375971854449150157101791974647495521684364121719430062855746471991445302553093146198608434279970157178761905628166765940241279765474867850377470859463958234474226566949166370977320529038030720987032284256812180430772730348770387435296147298417416460216559569988493963894860470446324297931132066763886987405788191439831403725874666114694987047570409790360839150430827712358497255519742823479654642349596782424260849364103625080973536283535706411553578237275807747679490827195565095205098430529417099978678960265697869093750940887983630152878813605496293463418902937134788408597886213973890319104550266361771261336459325646553099804700338505399633409865425818963761897843110366368599048168896441276618078635058814238960841963667144636276785162549875098887977069796967962883850698318073286307908854942109241153214120260599884428439836859900880452009998814307561353656632631231398638488884785148981482147734174005262936544973258984854764954843845220916026728124150866495045806829287773926685284884443484203888116345869417513614409070601057017591757515157694004891937108944655292743732519362587065087171439483172270118174942828589676582641642805254788317964210430395613840271696265788010379329685445372178723824635766528415609132723427944440608831248492848139489774778385592532108381305845301370587553134803327675160217909868292318058705333025347344425425527731588865569737443939860982541860470921920740375019688113398768806956215078399674058522767862438678306835686212044199826494923794621666884349635570713626669972637671643053884612161294240460864631793271723442113789430503047232647459698736278917998241482081268332369612654293575456886589669429219918228454779542977386721321481131766431461252623442454513688049675484223230007141892307463744775282128879672308679835467003005072217047079615101517736811381038933532317279020760015073843737542964267142326581941553515701036438942419538398838477073991318838725060554623959174462401177385888525507084828365970288988419998269075479430038108116463915401734451038933358098091242830291498367485649790998863752883621229207962644842193528853217777745133981639991216056445548498494278265883019444286045824976231453512304499755206375470104199218274334667510828901938644846890329914884689209723166124836629980265669953130176606946992310554859163625993471743064806340439884844135531854114649995554396280013257831546174468229651827765017842090813413201309189004616756580560304140579482956957418153576237449233473642043556360416763599516643867430053046992519827027661376640220677180606519716267553579399095875483487803406540026245780017313939428105478718693482465318419157754889370517849864313872787476683346462156632113513265569895329620677896066760118665554855025761120920606822196710255291042459472180241675366617696402348289583013314733536102722165702899482918244372961422207654137626896504315877818970526980751308135873466297103949456375175610742536474313952260007019321459323626882083111938031597381101149991962250498589314215056323040614637502678775405157708874597765746206953940037231051108267948700926189497714664903259909650265810810354745224229487041008189197865052158014546374672938038149790398050261377053441426247921839515769552559547667901161681506293025360990325938663428330665188839259248011759760856138354298561290465311078412789142194483582492740270659423778662833822512434517621235840522876553039281168506424616400090582347970393043023584231313896162687489608258527830130629523580798925661934213290239205548885413577593752726015635996478496629311511510824971997557746040719222543242500839369359982603916690902911850721313346803154620236556835868436165173560753477498418452311686431234237948541102725069266607386976091012855698210340393544911395105606663971550008040090202299422063786139816097175451658361644978604642078248712394261917632200293433968718979567419364186399349874378215848606634755844841327885410788420781993388247132629868237411952961811273295727610121866536262041698135627059609305378806907435938094579750065812717190259286416989017043923291122331094500901287524001224992638568864199915426498872846060088650761069726281277794779685276315767956735593152150463865964248651344710129487579509062314239971499303292194508777589709842477383289420734556599848850043631147386553460484534939742135482872643949391802717183411079467762752968633745032243243845152764081047765388036578262912311148065208380901328985938928266201319409355557569646954159056434068615093489904138290522120714151111425404798682150102015610008575582116117578255222976696836694222894504037869029132430220394879666050902173725939313205656314436848590730872783018928558261279988409543303002893228423022714312538077671816757803055599157279364239672617600125425739777435701416742332172282688270182422698978997592176488680630485071647346795430678463230507966140923669447819233827669016453675354524222527781837448989248871550311274405111512306834469584958283899861942379597379124824016845015885867644605113591267447974449892216206469503249207468863502473630161417505730193808113413504568929508514567138419184731031810131679131770235939948742366078408192123586976342538383781900743395274542169942647406549009335579939009318637771849579172912471541810459263073301123922744325564619835270020803983235466802485826284536453402666564085445885960839239106103510517908132648584570552021440307619292252828179701828458612429794052690978368407812062006451954182145849370108166911710286041864594499627949191954246794500777863012679847440948491934485031115238841559912223738691591611110353289829674348243270566543120361556429504837608219799934172410603829993452825543729883218857826404089744204210582929733311099872302787637779817746025426088849621392481164104197485930714107423549397143072411457573229775593149248812754419597299488429987667524504603482413612063305352535332751549185463857942984058753136200728417658634950504263178228349616913824193572516658353275216183922482162740756141744357256609235812632645903254460153771005301725996542502721081252654966187294736922677350273938888950944085211967975524033039921715649812399871469221131703639335999671308115752520619287090861707959287874894829582656486586653291651672327786884001688998244471374192998324290553474652167458655743952756846357580757243802580590422749153650036395597654254258925613183192665999958919610143299831067444040726910387719522329804064757473505548463706643868572597352737564197370518955135307895482102427888904968340722048387385924204817680380690807791569522094642052756945217856878680603865628264199767175914089513146055272547478065115977285245329301923285500915362131960427515528092039938932775143956177846596312126955415667897634517414451614007177242038630238089061232798835961746971583346645616046636066092490851842168317891035184600291953142148269869632336996227099835801296958469806850120857524358448951057473674146689274212749557883800172200682557664097845477192108344958876759020962632355325270812909573106063667407042718952998751814738062190882600626596334593819229398702233985151228829529526185903813957792452777179628294146595452586908684382771664168673583764137305670708108254953241899866382694739351415791817793644890611453296598367877862742931062322999238908945741343223357848928590658728465994387694547018511031572664648650787578565288410950434228961418146641948331693673747966278768606345618579242361737067860135490126307753810903762727644910708520905691316181884925492819849467558486490491171751056069085791674904365356182927926385637886844136373346586814142755530884833130261742689939833274322678546723227431941609623787207500383590745266720793755249839143389701274081663355788588759259622289243074789667080637440945671324090641195443456994802937102883190793024353734817145793588484467369094443142457734329541781541259170973943403281191447769889551467959081147188021631779622442178055099211786776939866574888738295166417313375888356951404673802577158411855418158739007013527855708713303708421676473560384128453300015788945128504800999152622252339204904107268207692909592405574161089037483130338735797195456260971126570181221324089925035994242261116390623168485489360777861475943136067413187190716431410053128597434208553701129915190884739335551374588364774076470482760140272613926566869802407510037101575270185836967513654627601377556867428480334285951308891873392160627072033830095899550385961190108470086046962539598288805981581449531758001356939309704686092724286068165144189858918025000615740956463178866941130038293545527348428772227443699680436966050893690003814749701800992638606871729374897360422819505812560772678847383771441407224137123708133653697139687133717241348337434622688437705686909608406645644420747180531137609488838269784143742091426821994482267124517078140531961423478639104705684377697448166788921357879795621114704422402779953846461943230555665763229231156587043403640608900678559398619849385195217683818376388985280257914376394600160647725955559255397949364704186919345369745025997734212544675558968902736825166036670860205026080422554526761372764665625951512212188397918780400778645008815634894452540358996842957631443942637089433825738427244098918128729652765410531227615288878145288519017060817728267650776576476224981782969370509434119835102591317817268429380044778421875860466187353808141848043928800615382630383435958686611132484991234124258865370241710838940060609848081474949613329568073948394895768233935312308748773728409542043157611741104382703407412197726456190817435002268672395215536980869171664473923088599064833691709740761591583355733068331917154668701198234853658445816106315452620623622326370035588981992008212716427966766469311496648088862871403961316232450673576026542618486147808606502314518675412749171121661793663234681458622174382708191275345968507983599912283271780525080316405787603521779862562379131368251527952939880267546249841542648330210005849581735315355367706453217883449226130685114249024977891654013196957083439048145728608988658665008511459640828650664654928683905316598684491327116115518695090161761018585049328823673785721537720306315792084411081423456294889210363372984825690812182864318333712517683609137993613320041905463749031090582014587693844489308183884030286844681814642712215434049125152447728824727638071797852912900549561808824890380452887143962332527913777199586105911161565709597214513929699373487297997342885524511300412953741973367701411131406616658797376417942725389318066204952548163417845339162222508074997038127712176799778092721067349525145397266535973314160277445294458661533062373451306942020993787955103398043509149165734547609148854034223182024289193521504729557076774886559166015739019325125688632847530234779058765185420883875259204546533783366763299731487949573561536492669797397252850816139459506169509104061900695597067505709959258775373356652181031781644946726632243622987995034211711564721885044803876400723191491939276772131527249102027444930884991327852299223085868624752478721925196090229684361488253891280557719442423991976202539730108225780844927599225518401460198562019368189158315440412784842022888682639832047421036780541744669463301410567122347399220095553282657019689499460506410369367958330551453266452618385974181218333784369502838599905143616354177554905707862403013578934525771579321745045554613234010848800214732646876478314658724828710710741434322572378325320733832583812777379053383681189347546383748964677474768864805296754976249875958608083365759228432052343625078851666365968421035136891250512594060780474489758167048301872277419401980726347089100798565181735402992016140939903687975490335844788632192338927875292061512430334380915442307050934315062564007896020043572207164426889500562807990110783361473167696080616068417405215236423464860903331561208769207109199695108532421130866752897007269236702432362767285168413003127040531615239309634284155003945875725451776041560905121598014956517335633869188672005980281922102477618800838667606516282592582829741414203295032233848612371569472137864487378622582464124595663395397023638791822932181630183107787190185392317590972285396291303054696243711397363062229296997979427294139762605723306723264464209865756320558208641953973420367817045330203642255333814077684459275556483238665145925648349436058017879416422328084965881114086102160259551677013160389266691941741037774964859219692034863534359132104938246017211527483084470455995315212839326898448129526594606709658751641929914071209235221905388494062233721451000368107457929188570664597325162010476183601862079156518021559634061456155031629288071595784617072695304909708667049586614712726150771490690554380756796846338769196767066924152060144307410818731232619836488364466066323285860240401347514865886849626337260788877795530608868860880768906014359898806330678067426209888350443460667131330743165576509836888078582087484260308207348276653313528063391581356320087955538505738242915570347917998634038476337503815559957677323211354052482848271178018024169676659118738639999022632416856449672328878835333331397317908872841552214338015339833181871896124765354702680577667037798442457686294343653893575471936787185605919162272225671586758901992788707383493066098411837310824870039648950590590640581043309130185656388095720625725106111589286860392982588811407566907899809229596335187402052225023099553512890107809167691368220138457407388287700793211173241314276716101182465266163903431516878070082659292884083877105541427575113252313647365861926920828359229740679353837815568644037120386323491415761956158776325669231572630996319584409443213086777054158850303179024118959357008368791603213120178466225465407189840428166510695602782802094370590949707486435563062261083117525760317753883520508105667595110477381050754399940183513178585682038693641862965335912786885973820757666089855205676494804649775938842811151652165234336868245015382626667467008421994726569066515154607187136547970731243171872506367566910638006964332379573700281193339221025204304125827723064583271242905556668670088654736598917806943846019131291463685983456858444079384937912648782025566289722034629525351590661108354534402027617867664679908608869842835626984916462186889917103262545292828887656823579460603836407514988162002082344483473590260508629145742166137132100021899688895139717114500960306099673815349096935193651170343324898099520068422177299901364824759503339032088080849581298027784128329513698395043508926662702732352984115422739367027891296338549993436949733717364701248210285292054822836812564108585755254987431909732338592858216194307684964296206327171453811365405635317545329849095182154075430116398708934396439324515258192550094235578389050170692529347657238464203249296510490387517860941313782229186262019630280135916399383799147107470051676066219092483150896762022380805799564102266390484046531025408288854331174743941849645279644244994473350517203283172497112761431711012127083449795608520711008681878175403962371420443631851773810765177904939023941779976606880560835902238962043058717039846928147632257983726840731131345945204803803526794115832651072875921964148109651501043753209162661577548374281746141810008102452575617925908719900802785966170444851436132997049214118454192204762296397241361083118370103025246654215402603039568564325745652879532561786759305573060778341853861795361652171590360366218806150517876477296711720708452852093526043410362848812415711881217055336985569828710358556907623599655342389783778840168190678730435980205890892229367227616657663854000229722602467086223308229796885490867386992352085473391571855136633799946229578817086089284676568732786426719691484908290140039338306606636083881552647693054863628659681978153073135510222939641952876306038178181739268246885981002209392227452939693109644256072912118191408144851171169037667198444451611147478848956521050154535565486203230276953763434067871062840859704100720043995708600387389632620535618387439801275588108069055144609619407487808712228810095393459503414786153411858898288011269854076743959656882052915326186596383016273316089558829899104037047518314260053613871102722765969309717958729319463527699476268938540760385385590612704925461080079711571539235690092037880059202024433288846659191439829683465311860424574691541103670377353267107202636022985581739269503307724482282416785183542668668510831470063716775771111325439126778362091308476558882697952829633470070173567514395031352804310625990993019039972817918123205420697871822886083023084498013311986924381990601702577348134785931754474785872247504068386459219754210082957380513345909407450329205158746967948997720519739640123033567602583941036909802615863527833833004514468627192310759305742432205171772575020753032995380538662387650899708662626348867833992122783084287859163910474869469399595309334088655547588329201990086941388038489233888748930624475518664857214944016606850078525500231530647142439365737875843386438840869541743791979924322504332046441580898596403695001409115601860114208676672009216451022646692309591097803587478374568639552074251878212270721962547273393730297298247998484450496688250565687730732043918785699941042610983508769370480754605036854755299789910004831816467542459073205382598357089171901416084594008166394877348691900333524435376149759869260656250576038817770155592884905715015415404152006823116165670295373207999071006082446945108227633166259383696515148602712966899923029631522620630501737559558573263618124520561533749476786388090311436528103711733918094486995074383379299471298197182844946203662437284638254011242606665705516703276486887340816973304649008426712149013384842664272565164608241919046764280942241310515266166205095070033693933119163926214184494450906884442676228953919513368613710375900825369103839304135288555578718576926860992054446289143647258908739563755685146010576660619251167852713193612056250760669768044046173611967534273769996093293203836608481026972823540385093573054621541717731578128578859175980963355175768835775153099369597357353540776334218432936637547752719620521221362055469533686570182501249014767568101019615540611467490747320789217269529665230212989645837482666492611603216263945006020730158223231908280252248174909925461336109332678168488263169860394577771864062088774488723868036233029324728612205593703170279850899762573186933491596696902886519798325519077944548259144193979936259439333973043429755576024459080259298768465939853835796195722739406545180457544921406230672925460494324833367505633613666098533284424119988731176904771806542595544758388711431320344799773630386705472803712106661090966440688002957095290141389123942793430672992399409355939163810290331472744823098952741794154169513158850874031092310261899418565319057715627117446953620241563834364593202373764163072999897531602130843928693128967450205440988737000310490955526127754292945133986314269573164952878498404031633604880114651885186259488286967896651757624892934458620368139688302150774450479611148346415322632147772987190791420806695964660817594193360700516303769944778151508399582778384025813770047226525236608972791005524132895505250465603106774102305620363840091115215552372947390738613897509127882993229901558235630519381632256489948745444062976032817880292999669257536764951959101153931153981629604738753711991816608520682461366896790938543527597629220202171445572908241411835575873024692684620080633878799282780168961376989304843277344150963810008546058273556741332774136236049243660372464274063378231105513582674156723769693823043347515403252497764011248700341529970347401075833455521800872308318461089249107965170402637837860268679006521580134175537162670587861961967512555932899511927519432715823951384931873032270319962443991843146513024750364982863394480895766774120343240244789145130184052639038620893280462336963587276486537054243690198753018370404453787453751532505504633480247921576747954666316542448790413058924312620163141625847311894754268670820123855993074335615388412830599084659206592871356455176703973337805909360456271155143408015023458925055008142297475857771537147722905034287617691546472878157127992432554132252786004260388541407956994349840662773454433168878877300996907465251701954331376897842002705237557947699605187193013243366754209620489975347561374753548703903057928301412147587467831928320584814243065448939626638434508209289861271060112379537947150485796650097536103572544971609982697474019287376764428706761879226180921684802638157660047439056591625968112852517385399930209366967088827040364569190948206141258593369035220721184510852811914283337664082486941527200733087782060004597843663801850833864849626728020980297428009380723051608375628224838141571913091187740935636059988004040629189614130003869681214450456162246536187726053553447424569989051373992628026044002620808840677503834000646190399016800059758520168076368195321290361915426124840693651782379047110568372434355816327881402207018071326361020294387234659467134561376798793197293661490889145063490851949445612264899616515407799222687736107608237416904092203663269920393262001827206788702925003694056167077455202452960604942028983547675317300806462866245232516975461878831710149931058478372122214603007143328741960344379892268751948413233471176762679054015438021286720981558032383681409660519519652685990208515426651636886340845555921922201786634212023454944416888507386628344380802412923616229237056762209480906151907923891404252882724975337870459401803310398149224559708142521244453422577124010018459732442215475090073911532612649413219524483119209113090720798806539571761099601739880646126064867441890012905726869120672282926574309939609132984963746723158271405108585704618237080346614792160364764169828534037238239040987273941812340358919986539568244906430127486199281575143692714237334336963452144742021682399501374130532163017684016845090279775573752023362909929148297967851253571991567503447296653769884625363391860853066368360643929683673088300114203310169623195991322250587005633453277370178763815025430104440971719737317528651415558616214461860136023623440372338632682366773223541186445408102993934488963248355795129290585075855319542975507284952108162762689118706321180575495256518599579091497762185450772505264996651509802555147276562550954993795192605861404252276291575784091678958060611135406836972046398262974219399017795520362892347710067455998990289845652016876289781321941796588743010583818633687765481248176115334263994208199035876642607303736164773860213882536940967538263581105061065104084712650860560525925735282676859428892878480111302218682802434949619976716240877957626950741667585031964469305754580147742437995036064415399052144318037848660758364126564159439813846665330219557550267475440867361461401864435115569881371439265648484567911186788500177724891785200974260445171081754784112795346728630563053419231737114219120630420075877908822985485626800665333931777792514189660730638124128972655170024457605694467446685819091335002342537671999712828607755198855782492817472592410278440493911945958288562259160024082432373598527140676887674666372372905243134473857702609753427365886374321035763330811172700765498723284591446714531403926423131427569073198758067018964989752285336405845306120948806126163508372178918341973278731296259704303725406557642663856141294425318161453510350575155693905358447561648433970279419195292785360777054969503336889309800912230025140878021221500671924591458281459749694470748319585819316685498692907413918467332569818240928154164229573021406452854852733923424030862463214246597125622830846609063899935048709170484206535499321405937149379185890641075457280550320194786446882695370912880019200980951206636842214195290637627984887137152496386936009499666327744263625195662814457902073324158226657429497277143613676568749930290833863894239415732915889729365042632292153051368481030124374668181135051387832232883716092537808551571597124887921189605114408546882183219696029376470732061601327910619267821826509070164437625070982276401633893590764767819631314488673749947956692607379287765418263536345729936053725401541703021012760059044587134742573418487274320499520270416514187707912107367805534658783192319557483410850642884023768642126736468845054878093841861211475291864812646065117642435015315503642334949694074674539420730016901786317703868234171849533293661392470659722833945775822418446392986748039991468431936725046131718320950772616203906926460101853781713661646897182290513853665141898481523515948350449784704418507975964538940357824106258538095891375728687052081955734069752230771464185582046006466095287254353273078632448443980890054964582728423550955174219961457181261617699749971807120540740812254120642179100024308125589632177785820526078606478197678378067072270456300100260384681654110377870082453171070353542121129627226139778803999257752878043764683721630059398542209136450980937141112973751666720054535798098143311054297021729447856977583867629843384294542116120374724213154240228232455922040207489931599071744684697093827356247899215438918655431191931268399452987036027445527579061577279756522091231490726629292636026978103859079683832045885802288509674061514887702528364986164058895636122759455445131161315572064399700608967840118679083696072442576721379005002360432776358558438286755116822241280390506722146425312543205109244402681717709236218264449755896685230614212019241835025906518052503684494259417146351592107790665789698526216595484180983563766074233615013648988718847251795202088823141660439613842229292048985947707139620839539441474316962276381855851827202067659616440677482370261648690260180834734792814793634302758102156218268645795015493872457231177596297979553859898944198187528597667161853474767321574075372228944841373932410398754338533992075307727243625189258421232112943444132172337972044024304494827319933103843970891456836046631218839471152680354494815141510494747010380475113635126866198477899486665999808209415094467446204889173400057121386347365335635180756429643872074783222266077373353908347204476188977654093184678663982149805115754700567298807582584760867177950878550924813396342973825002129115080211123074683259466563517017333605412911240470043959536486620047944885727051417952785559298878286270096066684578244171996317123363065320498993429778071078061253054271697659412464092439739427442164049933222496040066739472712126766346078361665116958022554392491729301529215086938255764194424441698852985413631622221928947163785698196921871896147435557346726256644491650540725843702985738159375956196781642511865720914107411999871599010107154130381561929823807902099960788047931095306888641973301154731958773860931715215511980669906464472163481348565096822198771519837086704698072721273818100665254192995333495918117557890950824524763279041959730273161288353739465534580661215219741348494628785291542327962324696242258895279057984562874026833747941764281698428610070404515805147517506716855425214189205277766045462202304199741955695316586160877013084933573952465823520399650728675411954157307360690352262237614944400052591859493102177329335463353968124675312278102701302273258710742694490585305225313176342287145998920136239894790279949046505969139787664038591763129271241168599091921227233910204833514512778925747295342219808017685811540895450139234280372567499931394187012083883082398801611534250561098194206516280054882704474480193329054074026718340403812715320575454074222103147238144021984030998938479905003166643445641043376158031547162630592057251845420558538451627874761458365378342663011164366686671449349332318066587804636516083342932049932126034174417454925150239291649049453861992879181939316796249896789045045776012009562732086137184743074046863750296983198608907979117039025933196884265625877760507486240238172503929998061080657498196779192899070632529548750421517918251320392980217389885771156615491608145473656284172155001686653625236416714679557179825865939382775692513552944208689272559308838758535000438228001989055212412588810962156296845603471286054744299720673423906232160985151429017698371254771617645811170749307535337797432360196894012769975172185454743857469019442894208605979922495899499066423166706211455662290503706395321183054707269109006651905217043025065599820619722166988795754480292562814679844289021138039729695138528333884318852522061576160703214577971965194552029020037141342389667625072069232109911411253281414914523191324055806372911543158769983241621448756773915393219220139563554869786699624315894192310825896784845589822494904890979719683376253986655391782335528780847173601278021064259842138254166363809112904466220395871882516067588781482010971358216235777038207185274311984246016109177753442904016689878928852429663694570570802149914980871771729965677919765138625072733429988019867717054532572004132585402676653448592569901805939194887983533187154974644416007443599886129165999911990530022208583879282331706781107073594177454952970041302969797458879827212789183141506323683485490359467312681742064154031802811393993268020890356274917929856689327283050103590961802636214709368130890759993607861314474726410403477273347951337980521414297818339517763925285717281976967093204271190519251912635044394989444577243375421070695289323683149670440780473634440800385644810294299360799670709110523128742223015776399855766854887013080369538221680527898075336491360246303257429329815237799193608479406812122103209951842293552012991599028432555998286041895627329804373478492103984561593690490244525480631531021503251982462415938298456581315308273511843650062578620912176546181693670678510780084228049316669730093193055414579376259219479832513997250976944277167933372568442111344441526624773974869492035900910858434302549942044991746669834625589969828617198591722926505003960240670115879397670249772087535132502507256107372545413151623081010784659614638364268643215682537627086675199998040172969213587262245987914469219388777538246045304639783738929221837734272004386066694411678721644948167091153256384866401371070331866313328950530927565452107872144056331696320296611967200089407923984468115348224100851123290197082950582842079591310863969230123980891535787173515494678428098543912596964654316793023485761293698027992379034067603277664334368946937999177241999338097061210809185097165680518452466548636405965233695954738154526701588299508860276049739693489894147484501689968631204645456360149995068725872011562877762366436600654179792173199951384938046897286516991918207952698387789881932345008245727070593207928400986998878131720261208393833019932488038843386721342422140489267928572828971743029533723590843178603993398925843383159387217323939682871965119020634621782232021789447102437406288581024057288309800336135686855722512479082070566466315226180087050460301447019213545663434098345024231903033259454122794266011525524653785242505413781965433898597268027194092872344187455783010885655799364464185869389422082318229435801122538147084141930921540715257872002084218630308473879642385769029975826276016804327524227613818638418124154615384313675787081626725586953261155977307474126499374468764853478351840564649550811325410553700134682744451362389256673501186238772330730722720438739918262123298669318674760601752270975750050342450309906428834850040159629950092882148057490484785137698122292323133289559070332714310600239213747008297495065120912523853945989302062535405717341580054168107457413802610540360393424437821879600529801421473015945234505929924970093277656923989222741224115379835033932080474005705830881715025284441302124516275222230039866782365355183290081512424561752753881250517368501383836306147255489710916737495044396862546035741165980281929721028022454239881842801952198808563149884627040217702724815012153611010178932425770993404517037970074412274711953369684259290489546932269413715364031531385676007777107146602484036830712174420551325632169475359629554722710883965261473625217283369485996050045743535153739503932627361031486450899381123704108866839337204961977464971448382402066920059369084503119739346937697975194175339068006613322169166577346214113979946196919729239974772845890406201569520558576065012082761933510776591558164004507772556474505828325686499674697421422170227460914279581918420787067344355557054075039972694112684886678771097621906639181459139859487541139088907001767933697735449162328669023339094322179205414632979878027054776941985422053310914850994917327711946613048971262806440900251302557439364029698729634279046337864774820251394447054846735876408641580832577340928866390993819208465663621090409402348406131572215686006189610071877822007275836318708588008217644906160626499016137896222143554707777999407282732924997506448900903491716228085183250086419318834252177322835679447631265497395093896184878391584607400445265093666323758619798446774450937787053767887834555278273684263003279605098845574569074030241884307886670887416979997811382243550828731908330605662372339117290310937020787057898982970991102058610796926274144266444939919627446136649186424118798478754812234544975720243615315701896343576267279420054539511972118815587163404937194424522196965819963080210358054163366380483608728260690823451729104348450342166085616664336063485032725596235649941793854531097882533566033435197575406310955951194292512985772882688219672093634737080807162652993746213691835994039603539998045825323380625175353567195244048244852578319265065459667999524815197681154674907624292778144894277066007368589945417601516795090326642713056721940646207152114979606105627843713778363753953706803754968599991886656294816696610928789332364831604098174461475002555091959160471946040268253266138210941791438933777628110700274895089612205872247905119194838267123501541344786139386255630450643019780620021275759861802557617783525831185297698677237602412993267056102456395651153558857924102492129537836360844410589002650545595854227866919890754743682576384934151306690927653927358928681104896713887697975902198772942105179311255979738002812433881084222642522297794906631898882722301142640736752273245667823036611858687323001811925076334261077348114211009881670501771460575055957324474737476726183095267509874080456505473833918014856370218698209709336550444237466724714178511837998783369929493779930704340391422995314463270919929818298932515026036891653191207460245750286058639421372501251489770419982756257637505637646853318014363042772608534250837303203716356998908701109753816580473217326162013884240077335441840330337910780104386014378271728035298950619747883630203507227788313962970615026274874266231890307253990567176623707368481707177299966701591759568591701029876673116703468352633514424933421954445430515649669144476488536685291479641510761510208712746533540971714521206863316788427368738587456928661685153124586461763984921164263740808395824224073134122271000654142483407194326321716855593708352691832080480139544955937506157070422402746146276151933655249789523216462327869159825015089336458850129021746403612638888704527394818454340749625563840300494479879101481295901881153813810287796302540269220345229109588401562871188906301650344254203639582201367295285370456066504140264849268486615764205541176666197714136866961127306360890549578436501053087596511797727053435293737882485504134574950414525668208647308369178387596797847897677857417154084690375580058099236330830276728402981685307494812239396754760694215760732486269678719363871096794600717463560339577507935378073991115858320175466547108060062378266307845904607572262541605628246487086204258261879177706829167333024215361693400383982981150632402916942497749699202077891514646055401487297159999808807818820382488680699972169887667479286278665573888859044937086096129851922152227421775870699660790781666346479482212163538663944075822540804481365934733037739585786807246180683921385549707719749543310891451138035730875582154626128134150713684939243446887660071312122451210611198565803816168346206184128221896111647468732817706224674096004974762544229828495218119441140840197486866931817048458573302140867047287899429803038701919566318669555156690612410798317441843964448060534827913812221118617939639709961009877012409229843529541512523247334629242220119079922262105829560720991670150082879647662821590243072318827907162073489612115180263371855429177647966418497901755365385212519697401256146645144063709638564795759797198430765020535364937152971256491981348356891057124524515629332281518463968335657946125766317793462360558410578044563433687371852840527670661480628494108017932102166002058702739637930499495844078259154286346134940682153112537272054178649358859431257771769695268715717865848153366232372399254849078395717942260875918832906062353645895798784510259595128481688963229248059117725554991702290224085185111821775869621379948250446227622273963287502576248879806252136081996363707576719641525386731677429976877809978157768761012725340240204319479198219035945625973255661334899762885557324904019911626319342718901562722366968914960045545190727416764673485775630293513925281259948612896513594260360825907704299644491172902041593964807392974158334513903624641767513221839170853403606718185624528234753000949966691170619065295757262185584390330018095348437725947398272135032704955275038002048747692229144418628123243909715760052240142971549188572470011079566169353497724781856955213409265905405244503080585677290788540552837720727631146073784951866598598974985925008707981870612483853962056428445535421216441706278260443225655454653048290549527991788791484852134382560627571759008884464433495649872482458148548139453010753376505127549857285376068407928567977480814485841903075834879263074799038984101640811885878562861694560806867926621398552329746303466513221003728887421814760746071532060964734456984031121532985687760293400062126926457623163042221730485261524391909169702012816374745279711944689973451326544185684797476541715430845719678942541841595332987081367664241653857609110099971385136843603556607600020906805666579856880317599858307317034380956214292919135541868156817359295813517891094052430057200687944840005962325386063963702717412578959264917301106371155112283885532229562217463669892431968649465541486886212779539716441624324455686058027370847494865859327558360452029490226626679656595437376880064717563691100143779666437558833152931635491826793878351928663875835108839335289057023335878748367728319101425892722891961840481305608426190556686098931035861984456368298013651401626935338398114952529088086616374831560377447286461109777987979376938136934381177472754541391694737178215477387100019441244787832818851153219975673678679845915748052224382281449119700379802422467458400045067807516738489619817323789497330982369751093227578992651664469181080159810021135875865455933310065549721552460752542776369521471665002982364741421467643107559058543424527541225736992103144848213383747268050052773377753489797333789876949250965200737402539827038288753166562045050863202427709120186903988075552706370943722510788261822925356073651972626991040227766981005474566744939250121681920782499844967817597293704034921360503829291496698713811649234744671392296424052701134016009186585685355465638841408440953470723498642907428126861892870424038447407920405927172705843377210919154235134151701144381019872233592001707154877719063857469499887924008925392898837006734576901941486048078254806973082057262978526025152498324735295914407385761451510240899359338951370331470120863330627025181766219823308691696142007824066484661941422361176209388815697421100295318146928587067533981595723361237460846429927453897000111511790708792221712783132615940192069093027527268699162116036891400694550903983353611892025276274143748907591083602166860552732896948718149724722841761923829300021872753044386366525544732138697259109813427933951509736568822550174081384037476513943868567160499574750061875187537977766020065050731786504008498947274750424006272043627635015070808123998967978467781875075001904236729383171341927687981562956661002912004598586623837238004721196522674468640158430481048306647356606456688724441017488229506124024306689329193854567346588502668604670261758701302957998099602974836353607589656873316323203751266413253704578231624690001242398423094857634595382061353423966234168030431568345033192252015932652603227627330943225746758542903281261666304752406974225925559783769003057736944458577561883181592821270638742098802309539506862009390407879410735633027290452349499485876165552774791361686713706935834100795048273867619203753456811974699456791335526644042518175921099472064374736688714182637246482952946498614895743324277465285570456689160777189413714925476031277667547604117507473249700209537413953446492989748745482720481109348599825709975857524956665312232532204416103844732967731383567437840110704178910334962486186036571059060335064786719373333439365292439718608693050559499837661397654310499088881915996737152000600156189241889742705439161198254549173446032304839005220578167482382430869592906915271054626167979784089171968094519476454541926125247629318543422516115248772097538682145142875881942349000188129123106820777688809064975329913746570952610450831845144714207536525717466859148629237581397897076090307602681588811991265946206670327673346420447598091986859854543661976027127003407795351719348889080174022215224128656026682382096973392847051380817705442627687589500301745560743910453498004613709103737994168139000048025359450374275618233924219129258064475364663111659718458817207479595000018444266335090302710186736864631720827750841844369045491443441496911492820626270556239536727337318619803929841279512080445365433145402569351731840162606325792187806963093914050740329072084469388884543681493779083623143052763715823946429181359783622586377517616055103701442091540587323280390403913756557010391584852447667234113769269568281602290615816113027760688221101141780928276136857915322503947382131588530145994377275488181343573896245852780388105380519286159584209476093811101783423689399321144269415630816510481000583279800508490787986880890784117826258159195378567868233004315963929205764734500970442201017000812218674775663440590727534495736305465444343552258956926301321298688740297465767581291774489903608061798952881377143227818478299263842682113977033002025935228779700793888478230358554848057561913752615580846997898931574408507836758846651543071392072447439051203061158791370209471128535629261986931157657862006851095992654277053843980958365409846499901839612387061202185588476408485292422065087017589452223467219556637510339854021874977817841144617859990704689248743978614877900243240170133778116639118541021589008920925949275751303226825654930531349327984598144902200210021627930567365847615539968371640697273241070400746037882225476311232274694986735813680243587944990679583259206383613898509388108682481295660317551430658352912593191292385221619680314651630197964892720309856915724504027913716086289927664097833779983703163974183626354989673921127665429801998561914736696555190290967051591561752990843046790478580316623719979865258468025292060802604798263904337826534950765182962256081103299801773428119216397794147300456499671338396472269425778820657768503139440567423169066638816300539557815180201487461712289393367121193912084177995249420023431868339293117931496234683622155187517121829154535309332123732794369999113350859552439716186286524594710678009234533725713148471868508020433480742694631437358377814317114886205072788287729130369777132804072990137191581896890231881522702963748261801935140988941334333609660682575064550309270852406749266005179370964372446643930554229539481316882529948479501009505881129650199823294165700048361050323110246529372691907598543632382885607360988550030491022936696507872514844764298755111214180560151651512836014709030416518054034782432525847290788107749351779077299882351025705030053728240203170731251656967624789897653080628153370769577788493102561077864599814674386873737733264810044443028450279855024657124071175154555171942263594259495283826079238449138940835888330360116189046778991232394971043535042323131105516549029010095165750295677238566608763110943020814324747759430385422292224587304688808084053126189905006954987140928959652195175016942358630892414681834752646003870367701737193235651348571135704346397757700458042845344213897688025828147103539986176269295378429309304718734117429400048519613026548121238983622036476684868911202005716008512883114221619662943079134402779697113440320379396313869394492887234188639959569381876887320587778562920706384403594055428263688124087997717163407935941720001198007622564880591917348519993750298138018828759817887599352770459988071329131536579698601835020557741823767794118511177200572200690848452627406404416803547017205071285002524553977895828115906561772802221671108503025133068449900478525856736732825333205937053475531244182871991001947990913348000245789522691071022870046365079349251197497058883146560907305011163761668116433128914286306401815516620196532888196954969300170803344134537097366693320927777625858466709034337651030722640045713569239045368626823959089041260899483777106041736498119916636052013383118612478666763530416459311460513163348533539727339473637589976263301396503413075726459978727434728249209382492911050824516499327100168900468066464652511692632549572126320277494343302800082928381732760061799332897156275821710720120759636098225152016368511030962256726285949092682128280246884490272729698222347319241778311389996269241589357845823564571785337505504706016862635695579041107099419042379320846423555354633923851317474435721204701975761559473340422832930202296495772267462506838701297188102524934694849200266186385524826045887131691494264576335551890757036522413422871567451502644685660295613472236948278201607546682640248537677671881658687386995346215654284186650661237502862940527332755495833395536781632599596376268165886537690649270132676170460151854087266887735847561797006503992119206879291474177840431145311876460423431697523134708285235425681995955676523711859711630602669889394152863632407678759729520602892640047380227894796938483049607030342832526849980724580351673678616697470337326618185544111842548219584592471097782900788064751467114549722444959258261858923744097362408287015439884644365586124190403850343154433350321475312947995353886280377862809052084968681539744256810154093384536702510503010616160325318420312611213876465472022454111174697826389434762276591439202309296682242357658414266201167819380037290982713407537717631816078212502086328154799991149895312774826431135898656656350758828799964609730943584390493900429907049082888937830940261233247868642936054158573810493687025531100381846720937141432291836722937951178775403810563309950789391281641865426341864417172874096311540291197115437006859101580586807924808154814951264237629000771266557712907577097686106808229163965299528138897193402452269736761802206212959529417017100782456725069965638934415513782658579816379123462744553766493013736665502344594490857531689977547843769020741950943345824719821494956708643132367267165439377933737377606017935698719523163619669102615750739450663823929776675295082410518533118181040701774228537441253943252096999199173641571636308831272958272708032510932804344441340583855156084489529329586911617630104987351375935713020012148715195486198663461969871124039891960978196691093340348416932498361357887433423401471357692102118334538036253651134637578740763419274807140426420394425121962860280344662864442781474118087937008969652034938004320742833070046182135304952715608658115934001059050673996055691954371940496677511533745164632022044327552924077488070359517294828362859192048217721285840915337554838049015692263035730709978443881269748669671305070768664667013706229216168067561721004036588251850202357816810821765026591487505792572828818607537501704570550272975266546532604395885857467053683889115142918965174635119278956215307000402985794028613430150770605201772212961884066440394583150429628816851700874633458965915267002736321532444278632592298073282754573708299264176290487093397587419218401989042348229855477274166667445163491384815387572878815807087634432822817765156646375664146561832353867335864110165924334492169302613319896545086856105662632293980948333957112718622308007346544028414553239815430896171181486488752073405566801831591416460984624467705227613789383540709677834210138515589139087126072844093897738165156431071589161197184793766896842229760126781746868391972595913194411153256474091210813670307611960159377426860275648818119920574450617962662565795171758925795939517058292672733135099486268257720323747873164125022174941127360966725843332248751448224090419261162682338969341271350841740238718720533537999608568183067247532997982982440756766934214892979935864791900015663262781139651055130542446856731641325990694151963411490313324603987878264818245331572916134268347899151158179100941179399033374887687959925386140940841274332803489741891455445830504831510752625932429122381132339928542241812641816570580468728246259374516500610051227557428657575385035636060119417885642386076161542448436478676269017763042533052942876368226134544396729312871510075279190572745078436938148705035578509500354034188687414753407893626957636059533901011126137612204889301655745398308105333847649232085546639111751905376916804919091923154155523908205242942538310835632745366737516203034373917905557410726978546006656626850603245735296186227852216429954914502794472246428812447567336754501256909426265363067506884560367349121233911455863557651800313024520226457433799584503290951436443521106213643330241163408319983392543357668579826373958612188590041356920855125848834990479979984397042331608376780647210124884843530909951117347570312620521125085949818152699170270694553833728391817452977978490680162263169923269513803285108434902196352937736516423164920005188819039115513959795320438081914925196888466303323881944815601589818497877049903901148803065506924185626382656430204347600379038598123966747527741825827342571444351213931434776035890838551620315082080990033714823495483264630052228510168238711492801126811325310299165656734881745919497159058509989950177672446441066998570816000772640177336529530497840319106708982359723990185371311934334839448529466493714309253229498902137056219157404588506577471591710795693593046982532207957370610601624660835689214293049711274752488694826902114043410834554843086117479517140768802812172030522532800632926067854985493599657400821649934548518122739469977423669876040058160368472342033725842448457426795886268332306185593326597816193136489354262321177837420604790674866065528062016843572554040092141221798445322557307517523481680216208741668735161456183764196276935514527161316419836898023877284720502118824247354880630574912097323796470640426624418341775653301227290368307655202343100370362040085892539707120312451339104668709395709078788992524662110747659960821291170384119537562716418270143510059352315099590714482093588893514403006226132398368644958662485801603733924663834209184888891758942053436742859012766354104937497571376887821560070817210034825022706943807166092878856721927738152571114566142727307014773165546347134960742626286948892479734588004194464614590532001002627808451033414227321536848821148008163107053761671662984296528686876325771096164169321840765813502020875264405254008536209144714713099285362394195441060412717421577138708922342928563044723829264468315817523369542267708404854281677154614172908287998109229405884017675306689020796643795506508249755594606150053639597822000726105017717611201297133616184006477742945798072391019978995024764151919584362575225826960185448211706153275785140566224454532201883799698424903254751227029516608159631607743620218497521975678093969390214165515271933954442186532441676705154001011961549450217464209109391619038375549253914274589571589852608823031298842278899301290063714323416663918929762327672288696370736564049351237996835650051155547006807737205561187379398888446882986438070419276968035694799579650345150562200244970084960618120978125527804439141824930913549407140146765793633038598077038730006078530072380355239053720384668090595432422288919742891355392983721890884426879223597185936777697745432821374046648803103088160862991301288855234705376866862842992581183097873840778328883014509729133602905512354055369345258257129253994462075307251185690203593241494088656575264648680743938415456658532412388184854837577056646752793100483291718062752183995956818989967066628034353382891440451102856733542856887723668709498936692207693570340765350641268250092522797453841829701777287309775531475079314242959553257947356229284678202512631974553188218438790661730279903661588835214648490104156827503040197939226456875629737939716279319118185305604862491017050699958490073708540472207628590434971768064830209256066215143350597822397362149154548153169319812178984282715366281339948202856559448548389041859417843607661133324213663295024933739989748940599740817691109847042932387352662701024454902555766531359827814348145644276426572451124372788646975736944451513651228744781980174489993916927526203361422563008613133363262397877256364275439615285137743083595823214601889266538879258646534276777693707007164413697588751721318943033170380503988128335916654857896120805935018694853040792336485329856155859372414555260593747442274054290697003363140685546665657470558197512626791644605356833625012127745117294649689843754630837497888779528126135362569610738438019883098902333468933994556658709002961642314821272871670384136010541961932486943981950869155406482628263256324273270497081122580971620775501872015058206795349638430524197697001428415217869365867835533410758202529736728415130005810737457698042443588220095802902138914423644477883765624446302797429958951549695784926714296728223615289491464626112752254615090972226101094377419200612372461448857478905652990837320884240008613074680288711117031739199349659576419753791995410838311150651441578595059999277723992620410963868193229839975470955048972221660324490430505863020045889325077800918051819259785305066790776890980816194141383282573106674599195541054695445583067917162561587116049142195097406590410889220337853563065893390318580298157556811689829226519883169297791677230523329486588751532632488795262299170942746708298421599807950696962976442766921618162051078639081816928085795669292360279169568047583166839200837334535080770546801463730331730919180961520380481532568762243271992362566447119490157331630791099865263590772460567444902876783708001160061907438565847060759192568625351256776695169985516333718652902927193709664390912804619019507452152971308380699690468475573532207062291744822488768354853758220155801014265166102332961808045186648229214942665618251158700736615634143439100257783630156960906366247524613842900065608699353470746850588002465031286742551891685729516803634648850184826136980920939132402160052333788178618993452933144995000803722580369875043746466096254969447577985691150876705415018091391585224993304154175795470341044672347472458204862164134023810424486394552577625537191532680450207393503587753587377351170414142372675372533709047218375257654277064812134513267590583572498063253267900519841440579460430279936632977792291644697355649268365837089667722012474651205623565692288126983033020869666745509823900074835264309458033081022699211799269638277541640108617497009856360641727432070438327546460393961512705696989728188333239492845360196492647131945456524877590191541447434061749569630935063637493761712779364508970898375786923043985536873966133855977769214977570085206571797846654356767425138511715068123080648956507200553254251240780886443747181802328971502900809947079039559748642289199014699288086136169497388949847567634955682487145367594805246535680980308704780317011803023373102551418302493653901250296836208319465647005554729807551857322470131273612126384291044168483632576541093160301620670736442343081466240390634169361200733224713609591838851656380671134155468305470325913451692592410615385929796887521560650016952759572249175110156867181861764347996567449241515144459906259006788237124612580496390484297629625669690232769612567487309301534142312060589866305636780858099313352473311563513889101754564900181673105231550456031425211507872612012980697206640124347252505294040445345131827343055206479549486551730755861106127761362633327829665174771988956216841081669534504775420635412927418799482613385930995999008054362375910866809500882730408476171212798399106751828367007314373086768719823743869194431712093656650828496429061738921453795001643270545765494412701636627261891591334196635599658476925601956826665708380430660154633112783577674163798062670096020817172436410735583064242864559548676799125742968259148553260444087539790949454935285234116233439832987499105608381047716526616681631937958792817347129599842608702444505759128875058930709759297275131837915069248025464914851045334664440508660593649565816273342024718860463321431477359095807901061856592577483812585233122422120610382795506042758983721651648931487864109113331396259520210714830448233046419135867111826030738206622444350786027865654485177144061819279521985231309112757325214927862042846443460666670915426561145313469656115456368196925497593397458211599447925466403399075428032614842182063781089534103863057504963529187806371123943727746248922510162901609110048982751320157273956412252498800888043686591036030379553956165679528659460760441560115431869917967362182200949683617445381316528775019578615375642368268909893131051995442138470296565151540473107862656576846900263294689060986250820710603223171462254849883396201966634395537652176646736759542266977861726956971274521787827405873976737318774473983876530178507931833872654598835662821764141389979625575746125331662112812010559609301492406024720106806170883989600860966831343333182083386848570389436859292137246839956080408365382078204439743958416077720823354565882969611698588102945472965610453982003360632896938984623890944781453170059932162219844592225204475469980349266510346154988964948422441773837341311946387673574444614922723140753757901123761813614795133389211677732603789858543296475063089164387411192243115584749504294806752355781910544288742125920680288580888365450554280071516287275203534849446413009879966438820909605256380172347955347845608217526443963082716857409145248728292438297409709480813093225129882555478282875104093280656104249836773118393143377328070289291446670093474702354108158356912753294471032759535873549314282328609386709036394477931200108375933350685260658029073112199612557397992746052429130365575827708903370877989279950351987630349571310329559243209093995839436433230549018128189417651163936152349402912520200591714964434204813095467673526156998286568130627724274318753901411430116875483362304470785422191289997540055267617123842963125393337019599261187687764461666331693504185469713511003882141815145656031059428713627730557671470628759549968331429227612626173330010665897188431682567339175191413781588336784546020990498504416818700790680853195708950072141149470320571001818101043354573182008758671732306217499122798446582540483400814650895638495547209034512189606593552109853821988853177848049201177535274880999300584899811309021164923115181580064219782619293229915355874010797906301248699391125468835944284346704267168988740745700259563977605412034548195558298796375062686788834859870048045651245842294820517172850705811023208517396296525863019767761995019995234784545630990376821507399623911624011903797295683107003381392487014734213291698832638879891977020002609448272883244114726469146100713412710603765278468875043266368084682637174055322942686442355724210979517265308304391274468240443902227682282657837552974738187352768843086570180566436577191676736291303326847411809370171670342078593595718313394891131904023814630225459664798004409290186775835357825060071747161035149232758785453011956676578754613498841508773166371558341362133909943438586391090876789560686578020191675245688134361290763630148908038435436019770387226558918124520748877145708756042138924386036949744439555583651206597429012742698867098702178418384868781192447388696290366748199522315486511655107874766120382361393912624886707809860429757459892721344095120863580627919565749217787704943144945806041667851433975239732982446004777770234865842490313405095026847011675512253756724984830429430664280716245549478471117857034545816865975812974876760028307073557195773515530923695175728663836272703511893592033211705359966516984810437042497193749206863414153174641447039455524225685449560393097534702136144407705389483693190437097172101709544655915454375157013239494679936197402456299152306162686650237940309217986138428006662217378274799714034741555816887380402163604262181215186979004808659795663281122001677993089338842829143425160749884121127609000969363266254202001736731831630853612231526952808051565733921259870240921755493446607031884597385103982108154105444253029106795233567090569165339135749978045612594627131924862569857039780424753013988989215028618363695181230854952048850840434615632286383184287350861762816969281334138571828636031755452832790402551448980259108214344163461297765010252374417313012301919534823926807484823688543171010130313981900416734336287640651525719784493280814287827406587090921997528801356651354994796107291664350062472329284732299530787348020378862211911012803681733604375848808685390931822275602932565049630516072271181578511533244926982939487433510470006974943422037935582822974947120468196833424079429537069323649392603283384949825259949343874700018408834165280804122887841456311062621988221407424317253249591864085194044578249900974053683584367642356884762003275053420295636764739353415634300856846157164602771691526867803642121250150190618881801284480583252082252018038977243477725314832815957385731932535651325673351490889107787657154968141350918698937710131800228672483904150249766356321108939308387216598827764666328099344034532241644299288153674600006493308006911798057201596893075918911342183996612820262180508685703270542085304942313216031063995796031622165115434916901267220803405433527712000985424068472371586018389225382513071734408459250366030814578887227743060253952806827528856523088913719966670499408635511353458814381337478458487124671685002801738542727482674697271577268548157423092461072011664068100781062989357869453124719271071249288934849614598125285943176026825672414131603006119681625337246891857476893338905356908931011774157440930521201944091250467006066359580565967047998195408316317903640273070728482041681339421297626507195412708295944572728691485900844094503078011212691498334842154397607906756072414727227039308120718200421041041038720077701644218841011786854865857063703225704676305153752284820495765230196093003935852407468712489152238615662160795956553789577761318019022769506544869906740188589025976453038952241049358591300058556489998199326868626909645077620137112891840279171297879079953459322317062106051174975340470548323425161054738379942096553268424225631844494475846524356793859558995153843527666310912882044535580363369080785891790068102592663549872919051541672272812526290504214973745362759260133098063765593980288824080478260458351820565688125432166831859402317319185344409290337629760105729310947387539864191157090837695373367622677607445108767290436682052304317180000947733940022208419238956273302699187786775170604652332090673578678279126122284156166020228214655579299282214086479510957964497540850633565421792005682061627787284730925912300718213388588432188568256142032900459533045424851317739757959713708411947354108734898543481869186727821727443545673008081720869759725521871162433737048846837111340463570969171121282364877545310848519686678929226829455208357661573807322224726386498929788079917701821571375141753540694176011097081451716874971984846207473938235766160310188569267702167080954731389444226504398248585930647287596274892826207261509031596759399187329610487634657780478577508297309744013769170748342541548324574048803793943496273288003371551420297218162474794889290112182398054084745506874068643284770292618031079408492256509384356686521175280584099875441179452759368109651538229512395460394496575412387284465516687390731710020820946737737768582289667364660829540081147778186412806289734903702707014674990485267353353136333394735170021793231962243275155443295888929940975833122705727526142718046930429402262575242802502306473327868884544807288350950417258788244607377666529572221164567893041621274541224222841323614008744054832492146484572943187248730545783267799192509933087574794680160817609547413917372325387014634555060180053948531400949357893227348384744166796802896745233600051919665734455624852623089390549946142732498247613003819405109839132745250527593012265069870532122918944976456316355544942221995111150715388444409541744676944103117133134956846451769865702123210462804958749266175693844349769439395624874614895019685559183895934583279643416069892470962798081345853836547850790507817075185208422414481075445965800116822037099785733320833379867747496438981424053717605141499635646616295497636552472636560916335500528797364270697690412621968049432419497154633669731527570078807027988177485941101335768708176608545953249806972608713290942813972244847127716730634208505921644450914478557258353140342398590974608189560266422760527337618520989322384453179028022836932036783498419532737420033787401612597420853864807681902513845244461239309913168219451192733017139406676684870509706293772285565357911495508683854210309789767458046737125655536544563515122652550000934794916990029647632923546897823060458488050137768254544731635743166824719479999004666888038676422412651042856052063302813009506416139163435344592095756004174267671102978135712324728743806018095820337958937260347326714422602088660497499991571516232037526247660255856996391164359719217112581306031271607533867327843512210600867162921384402676566147523200778821826313832516787998067576850853747104696885003707832424024673676544967842032510813907581347687056274949867363299925474117392903388434728147999818282291951887932188443884044206184715379652749897480048000470986819146021056548569789827532986181067388851352771186672167956310657177586316147403607717361379507789028226274555916796047417640388141514530021090607501756307074730206870884803446873624071166068881037699672376866816547052443912911768686025330652442870866274054644321597507576610110287305427351997341853663741144687150059187543609466907055417864786304466924999508087710596278418363231406338647343299416395757250096981059837833431955432388535709959723804425319999898152641273668212412149801547547991916462094683352997619263116066371000438384812852643207977880739560718602075668532702809126564308607868064190518215172031834364503358493166945387287568427689257363115512580632155104899041950814396281869015213320865908690855831790939364034371161807888811486273195586577680722205233754744573887660718979926062047112866913798940017525717625755464299268087270208988165326843368693514908509103493524165077425062285072522756297957775661026540793211433118301499719277142297161221235331952223932306063457511735246605403083322546800891336527166346423107540131360782918264035637553326223660149683902854853828236236779964133232505878478387093587011402137115933833482332894614707613961556876511654998910390736393636134549889273302805861588569698857637131140610320913600812450204725737664606894538249655401230098302104885580299630496934148199699321736605704356823609910617718891202037226002401865660829422079680188427014570845195300392768332117151905713939793057674423314453913134570928757316954865518418964942458190167555401388468711452366118781177879697712244731595008609267683570916048196680516264850955986244587491923743151795081582426863426005967568296544911058858759209022949663526368125944690457267211630933921177625862124202604749532329872931956173735311291474424041915768888093657508148838140459852162538777763773108242145227600178022823736014132618074567079824867803025913171774773937030818477075186904096451031722957927230978904835054024851116930028034707447847572740238690401561854467294597051781566285537640396028365557255443922252212298564268828831145365099476742946817738441138555044469886189210434290291088288637748599799120819607245683836949466332346898084983855091454688886978186770105542022061511875745847454616841303860485488890093689862602734254554241555621371401747216888931059323148624488170840532923781078264517263422231477928947954888570186667586846133693144339274103206261909900886201362902259394703251533751687839451790642636073594241430886694439305291509274639142397847621527568164334671013280899438033652331903596652108826069707522280443940236361481097408993293885474040165748351030400548194007286778810202121875122125632028016865048204724880412459525174625896577499145457058801707073173516942014695086402136105199671214702406882840300637807043826335039594152649387602577629255012635522840496100933566167373143977521686089344943057038228241223405547407658645506268979943550329621001506632353459516440816620659744728899293222343478928438610712079068681528832591733135842888675530291590251055337748989269736875203491782304101163580319944085937248944220754145164712124534655907636097023654960986657151936087218797336570377783576506160308687680786599013139202377287255252308425125206737073313765379265061197408314187202081046290658276235991247028453330603875523668846043245358174472094898079990127098969698186642131198965501301778239871876993046047044477549935999642184903687228191251678612757714215036986323638053051326981527066528263101984787349447793786695551535278054194725095133742855481873442575159082837805435615092059596678800854033263766022741226865028610036624128849570531268864557132413670862122483845810810854240577606263999454995527088134723319648357426304512454376870488436426631739365502943027069151342306421760947185525447994861127733571483104454351599525649699862323508180141462426785890977852005157103371152392732860845780977281916034404483526465857047640658607445337060956358276957547724694102136487576469917358976626097065788567963762424634637712032025271895285726794674729849057744666378450610406161693019445183527830901533469271374010695046317738266834703479029446150771874204711903405846410133807983338661409047749427406684322372311768276874243575040749879921993865470180133414985348455915633712624238450724527991242330152431611773644039388999823329715373236822299723019304182085529962199249395764052884981225170655385530227754783886633759003086112532788979197050038673587487800047304435298611864288766447748815325625280674578884102293236115094555658606799548314520750497848405756302976078340564878292582584820406763479963419193316916419626555495816204827292548182317150166075207980782222172421720306645340670877350111120942540856211438521078897001176641707722931327555743271300716976232682098775564775651652695426286503177210106969707106881788208692226520399565914692162786772243179053941688378376610257362404038756405043179980148369885341715477359091511895510527953908050004786883496918187337635834079704573764898800992834098798604672525088603874158940787938469625376122365468647053576797840443149880568273838305767689822068898806257381862938314174494902026102000118518138977584542776515329662521108134373647502487440166333954963469794846363697093512513378700638542045194483984952073900674927128812322265872294481510683901148951556011150580831043301732398810957189923674193962673538417415038198133648950303216020284857312643632280489752731683785300555524413622035970215189737331557325701340208599678461170602823377717247874718426692050514107416235262135957105398939291475584541989250085353544622669845254802504284671416481691047424464971231604728688727092682727099599002638231239844891137117504767285797687083962162186740626531944818380285889717218662344872920831124512437411649022257525808137592117324098638385901212611155934045112370386775124760417941897795980777796651057474216307885205284859732902836042139527569250068579293933084120974283987696110920139736778561103644132182853741297458993160618025696418454181967089237328780724680461310096459696232589933064560884601890919896991274686235803707869396771450200608648580885052829442447128673236763328714599064940292956016409873479527089602304392012712446562004000870662248084089562606220153858963488423753517980189597627343266592377787830615599304500544811830804582261603945420826647094471419836678625353961832483396380080491335908448879209854181246238954155849332740162961366639961537179625405031086369434136647601518547193428677915721156472397451946888631478401886884137250486711381761240830171587007068646243027153096070730164756750503426754258817722751509989188440093441623152963742198856930743164531298844894979270625145936651673890614628282016696494868951584874646919944831102366785139908733746151776611144917934658034346411370747808122348762482438109715192644955245788776404921204170174597547321958300306255340990035257419225106334364992977958513318905837109574571803220130297005032726019460328081491844323583808605620995450799797190588826391305508737194864587529965937269803517658518089904321662667934035491352922650800102787967766183889178959480671709650199716551699288596273046065362076159498032406356921205514821229048846854686447048308339085504095210297638283582105778488774172956539491826594089941569406313285851288734932685510876431638070129262064463035647327648512738186305705373190487588157475258964381339485840729458703488003072950977431888013286360833322663790277384758658226626454627444421333749167909251366189478083138766092629617648953163454039315782998889357277989902478000757401517105827244610792530226386431375436466322853247795000870867067955650213368210311285897379277489295708095651983969366610553526558923955139484178402422219176927092677521158767740355470751043794502057737476977776127976539578917594495802270324516272325149071594683164354864004362389871903390489621235767350945494905733654630192891254342135733930722248959573280872751677864557131197829172004297544952918065529553417414273316035680262993951260445879605722162378422570603568668993598897377438938626589201423349961387675322977119295478020131257112809512049631475081737694917880105232793098552973554487560093675935087215149606896978547897504618729511113222029886996923359085134242685485038421159749238936423348500447111503534064124381997117382802679839896233157876584402907013875432500189298687569313810430094109201735621622885909709189384277240442711878350056884350806544387667822463120671389728380492512334021079239995650762926601246337411167103836554192716015044846184590190181620992712769259766125100778624564716452348246931067800868917331160464395123607085944057209875552507373456653997445284474940360216827784848336380812548249860717590501374758084962422755048501400836667804013386486728420524483137467302125909868099017329963703303359837471908654335705325943014743842331730820385074426215515728306077707258495255986882127706123620628689397078047794233374115406950840644327752995652825298207610613379017225349933938034705526526336169684558928007180117652618781639577210325710754569466909024346459288613709353331711944552782099334654041503647561016096517625563656384393300625268461835557989177351769064172225305372462569582276213777295729730588163047993841427664799053257100202326755680809560780022145616331849103826594697991226962296283933028650353716854407524454984038742766385053018662872682695118545615123858282105406282903272512616190844671052991039881379581764515957120228782639618862975902674505061994940609406196318798841631060716841378291945405370890362447344716909065098608159967201766332231685126012854841342221522131737334835282730157293508142910284572436271989090410541287566205056016836416867881416209989628339665079863412994347660860907721346960741101299553357474188866943118206587485184948715331018181684105559401380893970957684128453593551646169095801799940201315792794983766574193457207703755681190419362779736382664278844049695201612083237565163483922843862637714350581964751051978903052319747202907863216835155189014004530567386839683401411753896986305526518917468143239654457992528100670656833527295828228832165518592853109145181168782449710430095699719148732188348322775976780804916293873575664366506197034364838401251354172035360324816147456688861542009000091097086758029397276484949934812321008621744152223708739877169807136760956372233713315088317445873585417477701064817657415376334837402929155506527105409550113491961856902829173597424711355932703401159317577914448272292660382671501322531385517953219663804586285401511281711365605719958356838779966613493261621806772838120103740689945290751446175654872435060069582714814377751212830925384112473599352462387217243203258003231110262158820398978492465592278386812336266918905645458725345185483545152557572850006876620660678795436377899655366690273364275614979744305174096150841340306459687892518692519049971987168386476836740867088360218444362585855291249320137111171528739841055847218665189073211111388862720787240919580296307576074764350329741652634571325040611390859425743109868337524586231101167239654228997298792752852433371199663490572570939229390902269721174963555556965933049198057108855596532938243572480755538529590151714670413686089683013552635222897578237567662454649042626431841425883849972425483645845568654590667332599041321008843677836923486444619718576153411513466138603438496344392636250031336588681579605722177654695591460527696720747706223090873411421745778182253285481588108397051801737165488850873445331327081853723724424097830494939005223284589745279541601342784767131259462284185740629184194860453712378882574549794253307916368431287451916678717905790656229094656163706864705961594437647623491915130154008700658993268310201365811574370423757214433846333211922086110328286597780910337915266348737821619231656930022102669846076204769092201111055495215571460505213943893470031278596655182224577109685592580383157200883817544212350297300208147412221089191029398996158450770733297147898089616184748850723575912859184018514708522320535055338900316003525493105698668311986209679667325750170373222299751946360256649662766827656794003934705574966512681045330357040104466976077385626010595505936871347606475804239446434023012506513122048492509592976024565061217810393254243931597532986987838332251231299098800308892644892927786696693335757857658624727619368697536739257992193860710647528933526076549850841271722250158819566942500494704209205517213990730549498961548429307964416825208914895939936603356080956809906424450367598011764159678620627530317065575401854554545601129562239793104240916208426552308310854914196731521258027782861183719552311442993482251281996733367254371804637649846707021087946720527840676543921632542135995318097853993542001686989629066748648154481859954985626217067231206756794196887248751530163122557709211426038088948987639758928909666436573648476256878063987646113861306331050144793308966958550864454733968050937129604507474649929501658706103197126983326972026032757500356557505364793405596591990010212680397197532478641323432348298959010759780944732577854718483065795453474953677167024651661246013012066048178791589308942994802309264384340036228480873576958070235814332261402718270320588540649252245133212201624443901194512625333224443768716655399540601374042672291976179086131988345107546060117156766179715127555387229508838460517865703018592489231046452152778347711041831106808135699381253124810531904163166066800985225781825303902354124702278225801704960968574383366493606942543092926606399403302329742652471015783879939369823312765485210794034578799102263782835859638708280638265851628552374293900644882655311817580002027983391313919995742306050541794953408615408026981019891735687444718898776440482629973144738236669935382073296846138339410114617544920270546623442962479591718414664487345044280961097781117376209561494223287520193269311673006092868194133372516032471880597735505355541036013731106875397612248256749359377419518841823046640191149780627357751894235724539496745085189794314881893603552446276901814767471460516761001731581351707019382393525474688099661407559013887950740752856006807847273101435700462514608800727155663082936371209919254676156080712420756160884043005955058525701851212144876074601293952202878633850889626346654711941656310123570079304816149699143537993052645944973084638453572211831222344954997974173958064062662198398301324810635347081677850191303365108469901555606493438855306073278216366799082738354078927127511707792962416848137370912244349623496724723078223201723476152462755659748859077937511211955554277859587734570650333145150501410636186521136478305631162502834699878660884203811620453362117952342222463688459734357305183773758999941489964844902114124104300468158960177768988517515150663988270327723239101892592134901270623042134714964447952006389862723678973502456655356434963046423035848649296252207004751156291834024368163231827228019993018638312468548705458119473849634760873032721175626541621038803674816025280256393019514900861383894032839827849718537888571224176346326597769490081740810529577718439635533085318429001352137826609257423874967978307389265009823839881357675423222093426793441726029088725573041012286099825768568001573326548771958836133235734143775081619212991759227767365311878551678840142611656749047122077188300597966434344046294854920851071967117100506050875002681625441457975228317225809236392591654254537683561722983633239734733613882925057516375193939520572500932146069062511489895514070956919320958346030772526439399864080599561022391319950195162150566185693368941366472357980680759978792381377856557499739472764438314446254325605658223023098891979988127559596987821830657933969578168601788553507958571840044824702095114381553281642135389407495537377746453522653538816407085470624218651893575087302419453808073879572672618272670826807678500048956103283509362778123642502221407648331763665914909085708408279605635096521878409849916567419261876103786098519805304006932944164919106070587344007514261799446680016150264072204151102770184540500344816615723044291246344785383958229387863768863344538186505304352911291292282246030489694629066846451502064625502545904292541316672393048244275044726703320499899462153034440931439244655826746384219663958338576353594964436021283809920017118298148820311927502789227843669610409203409373098913542043569036959672561831966320237963016881405045334353244474289440349767826619771576590509996114644409240564234159469915136383556887040374898674891621012587670967312332137929108655008125684289281330536533044385346682710075534208030699861240448508585822049085058076261215026794343689935797310440974108153207902300893763290716573311404943256785042358864257514172600657198216567638941642789288937592399119494386155638851857576906915961040126655963326824578701327738164962106400840192037182656639542081866036292729967674150240769773630001082097254254375011281345590322934367336003973670183755856544170496150203860081575763934544055219709332146467001664840834081858895673072896730144301488497075104944179187907246325709839693357277187833347099919338297170433789596874887503035780087253840105742971692090553257525999992972965278138833793552845590120449287883303011945951347572041837345792551982532899247671476551338550868653669308039154076923430297696948513856451797376595419720118407354283541152722838368303965682452469215733806112460436007856480384834645136349642261533119918538973482690087513207580541083886961046372081017109629839931207661627298067193611491918769095622572849336595651130111255205917810032130150190995884842532553335325071559409351473149706275363340415196863289035071488387438879147394358555655364729108372888360277150553186282777282562657193618041847087869244002332310713662250038573808249656078332514401085476326438112082364926812620568232484880214768036209413193525499835229320128677976503183796588045560446134293434686962267896614202241189522152609140585985502716499584760302233648662521170122566686408815539758897448353187997680970865780198635097836858991721690890986615209526605548630723714892039474883557446128190684279243272518311149924699690105572583856667541151172252554377565957509036999448293498978537386771264979963419028637454619226963035431960073225978681025223666387271563283831164523331313469971771153993013908731002797159655570617523028041586955400606952128392734461115450152141641145098481733793897317887868397095498448439965690502650937240293679380471163292622495656766843292669745430353311899939676629447279328255989706575383524158976096470365636243178668137025487195834657444482385838072969463303704763402530078730605705376832742194583237461686606790462526141709881940924659352246042287623706369207854626193748062367477936909856831583484409164729275960641211893042309199100482598797813669935877762059438768620131706100777689711100509622293917133602862738188623786722406696317189340110141441162613444315656053149004787572549883000779104939587267462294278594526026074606814515763877544809109461762024897193256153328697609550397943154034858637055190085299505724705420381236145050744088017481438401555453457656951687841188300620446555101817567519789449309975974065093967851777749243783892604925849281546607677386713158917212963159087796898490318869939147222508003381094182525293956649955312981585694901546632474734676870904726037385731822852042459888369118469350005654476586126025403538042440720226502343319406237155701201080062754901587025345692058605578781013652606428879891843312515427559596280765225619691182417197538649053896093676778306331137392412838325019472764035618594893738714745654267519060860905169036332331277787480231352622158096666578749534163594263049204633197443292221075878979753782643735424844097873445199187066645703728848111607183028001845917869179798351741379120475547518786690869141616520347746749663954500578529533214708003727693220778059410312200218091687532413217320769959151253939805792459010458271142696512776003782594104744044871422763901375606218284199098648013139491237817480919917319982336063052112672206738639779487974109444547762318910806501502035132658795406555167670862678647461705289623596750309676591108200481240703566886443048064086222450449840320423517680899506896963253116340279584544911372347943338416895943049527187725804442509579126770925967966185542154496967780632423006174966976022530829301199174152634650339912854958403703459714278767882432770247105299389770891155913037388048215270532027580452358641595851402423496902851362597784186604622611645046230701491327524584431282933674267194999598744046007347892810910147569448043930020991975238210314034191879659466145740366970327935785897422552430246111950326632286097952080170739209568684419326953050476032054123625115979217629014090990647498897143202362236076745645538117500505592395946761027305043649662758598927672690126166441904895321053888638639843913390691811330742289741971193051085745857094143765853168758537579197120017659814033049034391047293965649120645169300093394925834495890460737317065102163535086362364312056797831934286168922693000591552739291462614031390943175526573804115486620850821594971492726639126015808003004079621983785613588464065674632924185635084094560891889731426070739036627728528477234669791618147260614657452673231577244323199994620649384043583279984012341805852128082331166618135662712453545699339501174655692062399036695737229901564681874821355945811673412561228032880594428174003463485116795107809306648457822594377616255445111735174627446608080724917619969106155539130945045533069998252136987273830038973721681283441630954922867986312998761340262364422573295740524334947459155650725176646976258738012843394412552743530508891006536584477234441071256284528992518812657756302095522830932872707690301356582824063783327204331543836063472079828356220338688662757855504869888711706099706076725675708486942325697449594194773445401926218735634628966743609973104086635045394597614609925439861327599573066043295587199933215510736737444260461868635023061898577627124186448354989979213020087109108096095809442568024336870004753254354607591521501772730621414336198300045100425774104523553824668140999080882743768941876863886162271108013743705777113627587775423795251460718105715454815863709855886127224540961699668217597240010124670601668688020059291779421235096021639667069353335316100188816981093419883634379781745758436701465907414372462580438143846066859272685395731040044967311634994938422501188796241645583552885015660527020195452104226274454251737694495501618645617011119257875001093630078870174859707180186447782542100757000774057094596024263315511845597439567884681927855201979420122769150366055390182702836229518588856760397189647180577267845148909830113261235114760995277176338418962487806008265670620925142406499519254084468045386356842276054223909202470233967495686979570646425280861301942323515924985027621566274733478457536839643079628446660909437833298115752780369104046201120168097529401877173891477797909411145909223645521975857880504488454314228209963088756795951026350429283994956526753859725565862915722842964323545131287276849319538437172549530351252635626073691252817781172191543520053485675603574706767615318806767495414663466458390960872817859605128456567281796304225717242171703665890540092966833231005421838928943859733109158376628900180763058742204116744272429922458139790344528742840026947087165749352952762369536977823975803277212056828122942457214869631672133319543825761465132060669234010454451867294013788451184737955016918816433754467200780657560246050372535204990238351380433610437569350131126190948793567347408728842291776399359117678096034137978629278121723614769763221186746733965072367913878281403450519522131224556762249346076768051528143438391404525549959699126842885815424134478502547060761067446734161968509094229688101962224429449375415280217588985012930133895196684240704553947028837525665524351673900365700356657822358106702994179880218051529703506608585653968170645570402027453249550187193408867921882832780354266008325105389326900172185485247487468695456579297830822903445760592769314400541455473790905103556892446066526248299834133298641416612806361222157241497686284166401823264399645389642563360302340375228397941801430908566338898691505665277028790532794402770871706461428913642822621570144705000167036535716858298719645243443771279262995565863771365255425569689240267290612377935909229582200923977749498520581535955885464773191402950809794218857157551994535225496977833654678072526855169446669998896682910944987916091663164921040527301099006490711762129063239354577158570536359459530130586862189459949414019146008350256997041036613176664789570576825769480066776546083179045041888824472646809084756467771143865481796370536654022207512271090724342250105022356750442624429272323659741349418376228330649879528848047804677342685313110291964897632399823157143357594632302623305200444051618394042474923549133307169015222932030948986491797853782194654191337099057367557261222290821457255676420032730598745604740219906059836333549466918210425508822884701512127613122955085450299983655240401207089922775915492162889662508570773368752904153140406630042658512371198876036215680136628101954930751360111626473634946955159503959826994256248950966126166550404040134855502058747959969660551263763430847281887584083976889336499526156608817934415742582746637973581887579495851218416304361030288829417517097549330787940029043190278185054441664087251232325717770299665508653406557810357295891811868612828539032855793115887171677812571678554007500251275893087350741098743542836258637326383713558730574520990740081088269401274748774788963422429794283793902971272444568930836087300095382398234976532322886152877942510158536863359905078817304948121005641734744225728288430730672823995399267439619276079656411762272214529640681101899005943525038635074134398463042244958814817296789435041208302701871949222769580039959659784912014508577639134453649048606014163574782213671794206099396468417845025566049505113479339891118334678423803471618884736133237180054944051898062866413390526349225524018706506032891287633273154933944758506145182926158203072397231682820359213069170710048463841609433107408029098324267256298526676879918496542887340243593612589834339766300130615103298011849698237127470644317778454934586403835605370849573819326798465744434222917377695186530195845226187300965980206191904385004208608632837350945119533237503996138994517776044884126102453326233315971297906264040678690643323335267375488047430609821603859959912356720874618336651334441243714952046187930658305672621534555367377520979741898825217961781185080012771143379902879121184698618432836447316523395517063389840880602114254968178182098889393332473604737454227264333602638588825333092429343283991426894166097744472089384645005855180878029607787137499749731714989792401037709877820143452567209767113565292581183314702878642512924358266583724982445058603623830979990979616647015678622910560857438887745763036354358301852679793983822908472544826853933001633003617087003237413605803428230944611108781291039658877241459705484358346413342406606764596574178885784819969093921109377538918216185964617159418037544874395546933933464883866009185053829479698224614530730292170643877286319166526621131947719042824938647304787779034472143021226015491703126027315725777526903573116912730858076324617429270701656442264412131243346683111341900349151225035451037316474522918645484172879326609823783787469622777236106947930721943373964871269917906223093924823317634087321582878810279703007713433375854375157312136352325647811854464840555709086752779201843809857027207814608103577260016934596380471722224415583038197784802874751165170096771625094475872923190330259697866651753102224348799237119010788729494008839265357228531649809532562226522184823248633242850028449500881724027941360330998194945718118591904192814650677249305790624628107175766391930413096526132125979306648354900700994551502899345924512254262964733980271087083142595521230063514621497005749022877690484977100616205386600339361618750360630347215829994054294626041012894935997965992281126869115184134999765014508254468914776444239624296833411536531845580174989006586339621058691059877397297157388379770921445743826043540924372550562794962397409358759084343858681947920468604321662432965934598273732578494922468716173863960190123190397252022015798221444346884245999436134574369646144898455938997358795283511955009240601309748237844124596531045232761339210426883615317465563959712949968069517456966581923381394205836523396850936052636961035976456259483304209638687712216649270751803718268961216528044884988950625106343434353340516556918450579293684892643178035097257901488772934683818102942066206439010168055896320080815263022819074699914820232822264602541494938957963881083107183159772198222185971345902957305230356682728561631031021234035361067581822158376495803291788182607646226973660539511152438057883366473647012974343865783628423739965894807740437508122107032834191429348251861582006420762104775704192053445993392961654853837750804960266291558669817594553778455614128156873419001684756710375971266437510920227460144600972182205053771224299028448010000138469040708046105681171358694226651755359240798180267603029260178610401987975660760124209280686931018510837831110449864473246049396167770679290108546945179348113363568105977401679370674683341316263939343681979753174608247381745807136715276612355182295271457105102824171615985014928146490750022414747290142976974662996392667314468354015006247094142243169572976667831164216905148675281240319672427928897641037725864065191726520855817108549147833400545288402665508978830548259223567814933329621994963856945106458489845057165117493970290312202568865800855166004302280263854308487098818482046715361893303221980171617716013330257998562014414054561667206065125476144763828256460045215189923474734731250892714667774843817676347380441728560138476531067438222591812670313319529268252062546638108967328425158541635889942129371959856326822053951450102979476326372556676649853686011418480753855326163727907372819264274666475843303650696338047254600762568933420887239775831748334038238987893962145380412792177460246461017036562382404152556556858973083432225905596197713862210248547419730212493988990905763942475175028316319212487990586032007109080448749490418600458784101737420911342912653878102930262050215491125718691181357950407121878065192096092334765148550489886047840536047083089105786514212248873053547816212992191814297953652864340745870777743751462358427947408872193775800149867013312975256047495936601544514921001499889743540449025039596241595198134792071721323250749056889614347947276367967095324567123292887000487956381504645324626458468994509727981758940298701732722257800023367229172163079017147968064286487797283875805657436631414307783268504393852759725785812447908936498383047170461154134271049191597319558038933318380867089275295628863742941524153342691793157240932132873428791990324304681616830983963792525715137081993769237441490368554119075221076957237268817642892754998958174628567632807749145478627984073044019132758547341766316069991119146292145428468588185702747272961529260442188122755186354646792611779201047985376018276491187175676461976365005839527613509536541803042986792741295029419029339335464592811632089532221773670514575692075369125480195596507323258689336808914946414491042164263023763097504407694832148355931757185455016939208135601735949208760197509099273866517756347708346835359357535742052705321343820777252675861238265629498802744512701512343339869628371446459782880617629426220280770115475530281035472715974133946503920891245794104834282629361796140607346171084625568218054313501190053486499028974071970643299960113205138577046435322244703260355627060131328663480431163718216811464337102266379816568906768114180428067422369956870886804051917967418996532532247904133498524039480981414512034512928664542753469670998801636379376998446108933369651474262470173673582310164539998015628370184070542418994154519473315030911830294640199130719946185315902022885229173158690405997812643798630087283115199760702257573316524962978953601644639648247831868382886812726901090339739670122915563380680644637785878280164118304442067198152697257913178484866401632938992196961989469286592516411376090725866199399610171730986691215260299012800532544662342883973701277749011435735198337290248836158748449889991068127266263883967130471923562064352826027174646746408989663344296510389094273564194575511201169655525606444614517695820394123836100606776570611242124990220961411034824577278288848846899161435530307270508735652645149591356831949451047013369567273567241784334991883269844000919610429624715421415745576041109264834748572016499418935717823851278755149181381208522533363011887086604408649177795433785615863194174102196638927931404111158265406649081841226842831144826740590110728258287472777476840442832135780019406081555539600166655453920041097215787729302280692974384709930329662803842488576014912933246887715852550724873834031998682050958701069334859764235941794193096015969535547237661250201097598677657685082414353183040043706842614366702833941044534674504839757259038451968105366710665569369208090384857141821951640168080913131207253850437069301424253311111243573751367990318359026916570796212066229026034776126505287078205370072838366026249458742082423534340367692188439024500504187446157159525536231493210294186752341872568303605175021908733576623856241391586783267796468204947485294716351098971382624430068490441613186789819555473687081725007400161024193070997549112731122230210863959144253653559075187491362234933163104162209905203464255986265727591325710958601357553524995264625477871388905295847826005359016874368187190109323949154707768025887057229692601574123117792219400705306570544644697144210501301817645177312529932546742707412335906230612741791053430950474720090722657997431321128634772730607458661486843872879081649291856185013709464322917772225594639070094342632288884019982357743057350936684362603035344349377015010228888592980084060524572293859445360329422750580513680042179758905280359277650863350344306467605051198619268898895137562299108644441863475500140189952878901492085466220050923659145702752200447284765995631524007146392197012214849391760060327150755080103944508436028643161574874939212682130464234556479979260625685819751059978988431021653549608358156491223465341674911601218687758603675609887045459288207951156265264759792471952905683440861358063486638832842601105974651643265935091135569431057615432296412429688260797044031798553073138055291240598760425512675439680910847017005095438635173930102814272733610691812386143572053543906101440074446465748743459836861115322045527996189998729386072894538706190771610900781926660239626367631725615473228282428492316174994197371022966412845058435712632494102612707971542929339967888884889169089059868270596643813416227254785359817244435150772316958796591273599371149123165666303292964449954259540359290197087268717961384851450328702683867095914019420225682826909698896903151489787078452308861121574340061775769385980425041384849851072973292550978727153104161012770394429414734071432691375290593772060121497787775633702520961922975607548438035454242803768386020448299992490561379366528770096696425057962101791529021288051120270828488546064873153218010858151945736382321956907750862063928804925765099555062720839881415123678541921803912370178612776051293021469734083303708949729656710308245049861091416142102641591317291143919716056975230936073125864859881391471903917384396297306071232240514743183590111372198659971729657131134916399575831020708404844984905942838095905328591860053575258083079709380269428005474776926179895560039498133017726935591512495729968374160242547378248393084305276649569278329090351274246533736672701531984252625429721074750683919808981748370580656754617941266176887510165344317733053439345951271152249631176533516843306197513449306040026672908833667383712666618437764638140297016107066329093741443829618806454953950277269081300864719878541552781909486719794894685500424638196514229838571336854701951395729764435461143840213219886179873553718802129932644665995567140617815073940484168137929381375042774641938652193851836789190183498269970850066214368335480169135862353884832287681428645703185892836019288338105837344449819698016452288131820854085427206482798935901776582245594300004988247974368287603581073650648920438841657534687550617008811000108233451690362883883424452098798642392454091551492798129145798865126001215442280609428554356889370614308959487065754976405727236769088990538108367780958145381709207343260645125434338877989720665617847827355799930449817746007005441900395843327068092382684251533927018692276449096612162600090169768951483723077418468184801562879539825958650676864334376653801506847244159643651252817206098704305484575684061181914706897484065892240626247373334033584401200502970090062240603924959660385120488158908617414427377736448806163311746849037440338825704670478014825135116421168448176051530853185753690119742099909903563837318085939099416122602683687115956302532368727270150869820776328553267774352920508077329843037969469581077720530103350616507429129157767710661553384977202777988565467265629210717222944233763739755527380111890486602052770451192170499001388656919976081395275126812021880426000271214888725204290072911882898196082116671943943388017168241060042477063880008149308507882627817368961993898387493868778124383152516886965561646271635548509788482574788932398885496747132424805215118769641838035881755675781394687472417095577126458376462387701155324314867293675109501539655417547604407593410862576313867530684738378248175068825113967058390593624197345096816483980622980840823879752648841211795109873208102896322472819248595566589774763414992449565145939066140294635330778586387430918921910157825790345792138556160208564876243348912213798416288311887709096361408608278964372832975042983802060969065772121302783635303463233888243273778978314708376226337848815875163252841480630236299814037591466575411417487193606491495325818833524556962463506971891802264907352481315935663941766163695564961902842515182492189846523968080004708271784795457080818631535590238187353709229125719255185290766363966331617076266691648250455044490698915332694833199441121321382253367359998081379914736034298961516740125052460107084633614843477878534358391514235840958599914144185319054002226904219841189206110257585499163267528292186551182552931785770661489317166635296250768270497685113184752773392424762627436031147026986460787985225349758624281404304274493932243441126934416349452272586949014864431852813799230127796501286501649757687765276104686752495420242145586594095624109743884278775904797886999667559480327249771027543209348524993295383177998549476029819724169038920084457459372846575852364610974705640813716143766669197237980992086528782993963572811207759274102029905993287753062011597176832160707860310324693591470734664748537381156219182903763672711633165743292587460784344331138752706522140807142820618262051715755669347037393320282545122452795642632499044925336030769031033933150171855920960256671307322097588462138545167626022992338486932418972912535044288307928412389361535916011692535993225567533699930560739253747914440066258452103694865692567063043713894452944857670597330194663808081810328564880397394514354625412069349071512688924516095592113073846766558356877116171237782998883201667887510244765355623118589735995273109196993232775866942758258465578327456850448926457278205217981818204325349454956727838298397682851117591252956016314911162501306485956968493031416986128676382492205233902751519914649134877800832583082491279509761751144928148256405083526385094911258118533987026167695559911171678337554670530842731980879682651970005154261606277670372273996878046517204654574180633898365484707065000312090306857080212568386607518687822314897150748995152532935045946684649501010382127753295115159501670877169490193431487755520440867124825698051415695566378339629097025687623044569676827328845541164045634438605716920390070312763836664628017396850535220689530532947112765000128454990567834697021144323189350224299035748215463354958954901629220502400697441009337614881843341724625835231833719737358611396208840194528973679256111610620205861676709854290361196768856040195554306785975842967038319157172987863991695005469842154155008890556150258717400417691812711135659053425873077892167667817191274331841840342106967742068587977927714998591767474055604086969541872777055717946453386444092042007528305716936926124625334801308366768439205634138980137814527551758855790185015393737732876373527878177139287906473460584141727249590925712399917462872842502908469145009947346473440284815462345969633109943427408535673525983538607246331179681685577650475884782041695612858403552852716054849278621819259148996871286258523454969429196098814370767206439434637956277032528078432893545720891192918032526835429711208008019951497137611775309614277578326374087596830824580178110419749742893403218033818632375994250495306251078048276005194409526759292008314998943504176744843713000760091716966484709372561682035990726043736634574322217827944656778199998109440830685915275350238879173078974035656656380345989748347643933498127698127499095858513851975673072146431619792363143044727166593037760033864850095317559739738854916887343795386859549022927035936543925161411738973135493195909005051930692138313958012731917750925966396737988180948737616746436944708067886876240333970814847151188296278862566181437560836852514959476969855343897536067649976057486921407478013051113275922209162424708786516209543169691774550978201227833593792831060818572553835333442038515592619377596204885012037815092956935673726216396437680682050556547982096766212971181273550678333287731489720015029333753090084824513440915936255332645570631837739520441511977733972890064438790314836892459708527171480505462104326409007038647543000874281317689183987519988502268844796025049265094471625656742984253432771651504751703860350202725885741639378306722263072402867084946823857825300733325520282957128065433234830074431070972348571828105151539928856094043406643204730372519998070797310849466605417972856289019206463491613053836870328632898050224846154638224425385363485215955480177276860868490000008398793092555119541363231676961442896177843955694003074829798409482831834931036498845458596566645657760419253377766484893641037075002535039864321897996546696587618740262566026531066150168138022770820059979466867825488886062644863533219820565764075409733185361001089091600215708258169159660721963583961963188615451779392013341871800515574702312843724048152611783879567499576731178578172196140528085739527342365661238687669201528689281996013616212944720803627826161572698340641070245841808990606290837691761565829045031733502916659992506788831806349062122720156964352960451181695961816515299881206804005255650701370901602808436067167222779250973757467233729958624049855389806929857730524573995940468267418285142784573670341447027580792026876435918836212468498099905796843695650294874852834147045595770165169814173650542376220740390453217026098894456250658516251134205116102734230427490586862820068837091868350250932811079339473290413413831103997427165737506211466809295693862941413618319531041430855764939823915211990432297718416524982864198418832952217046169768485832320785244306128067071403534573306554887203284000747566518647390036587620211850549742568357815111039126074817130771789474177308476645392761656718268378383717181417128713437535419461605869308813169378095803740342049371210007405245331705923859184522296461713792521923600304679355634776734748649652421622548511953459333180706825685723343001123312480106054684864871698683822183857334284544364248151270589215390290365020944919565467638205323465712776753701069444391504626888149571075544561693530585219168740277614594773629006273144604374146545079514768502584240621579807889515841851948546232946691375656499246604163149377576018161630447931332030632923497381844457464366303898770519706165106074467050497135278886229742755432671820752748281038330350296877429566227872831308850413748335559840989976559806995121095157665347033070684454435187481835463284416306331992054858714810870302017335377954645525673019438165872743940437082333402466736973021879465198008657956297276732434554866765100537926809929809116088075227756697577504828796573666260592994288826594351401615719965942089129273327801712720683362796940277047073999151171234835461136814221477880851446443927775158861989464449274883843696619399839228613266511653446643996179098570683441016297761554936500879287118316239573522262638873623502272228307264806725440714757966140693536049615381779411497695878831980411595720760458132897133933845299325829302951388113755070075452964809999400674045442359687775047947687040683196000211900079744592662841638470787380463862376411170739788306193417423726441846624276511228009771317665421939578036451240673175600657414927980192620069613045166453701123613384535178102562479434823350377668333659959916822038827765433208141570328394575384572467616484970534385227501055932183363168812797349201168311501841073807158408894468812832312203394936814804891907353613435467877550816219329365823256386182426870392198638289484446662935763144669077403974556795914774784253280303837607453170184180328590584116124480633983512125385763979944446342988059508928969005832705031946581412056254412436734601963555654251744038356959224509474033003785734287731434828127422536548658385129056778430473015553066686543586710864975254123607847213922332439214184523745254802715067407348366860114690729497778055098694379003410586346833122111151486798270611758440211143942328347802388757511128523974871005577489999824781932174452444349739970748326096932866453309500982338220896644306134716780842467381387232152214137225511147832652821457971509436614932857019326891591181557226914640230641837511398647905205906361264653057454873654661856799452049374790183734047667051800769863687768571379530853838616844216598137297336245982832149291475942134210231309947242845412251399129748378059203006150047778434004090741468736181690300680996502152747030750797555778508425888292557570011078467310874763901899233450272665807114704285974663830325155858327301812195561454191323339030596292296928899183166058470036597773467042747328354429059978896578254702091442463105615811301921500679984901638054867439476826288754961725743411519777328039977052919992790713167679354600657198349805789349267427951124570909305544739844814144259341132607659142408518525804811332819609128892302540387378352819867158453720299495253630309338231902038774788818785293237167613272712156009303970032909956304645996196183359766200640096598987369427516812018527690581388697206131704531555238996908980815278744173953784800985410053783800230926448873176916244084555798558390390470212429981075165600955612952075830443807285435002642191926788615891246444200909846396788519599687225002610738943673335874724304997309009316930007368871298429191265118336049312879126122068709423321264826291659942468509841230813139617292914621111927106457138854645603207452753103544741127543457232968582587536887532092058024303191816065903030911371682632950162094736311745670069604751352414353376115616173702803013207505749905880054677230148360580469898001223430649457017016401241502405278989356951647180275806192985233244269118141947306709460068972602187935979441136919977510689957800171576905748826583249441617212951106280658239793078751645029821861641008256523781885336833502412512020094991823130663573499740226179070063758991101778251180130543810630448584602772387083072690449422512424455947837543211672191013843134105889535178328256157185962642531486471581051450320667723524166596315350088049766433277117368985689115644589966916033067698704348118081652270962247548060072862116121630552632354410674049654353416650543641635668640113779166659079709401336429565935855693902355582439123404645819793836424983839833081112044974549243217244307571741104813903451384919466596461563495444048282870459912374693529076052803871538254585289351628048781579529732488780963926193536708445111509603129384984712892792350023827190341605600490913519211315361645839008142457755123667090364279496731833555726599459332096544069370298705550924986837574192744104082604337340644972932340339710598742153601047770211076107046316527328832324292860891203931890378342461044940440711111259994654989654737450178263011261157658778014230249748931774280498413302544958652680973674938453419737900238358851863408893839200337375101855837566565300129341345746253595932031318197422572662592529758701892217543762619540693002093185303374256613506058313584119042748863141829564469002093700187111745673137819497832350794183070614025815144383891633971075335802886166188712853673961045192730802035963474557921580101992048666388130999216234562461155380784558351414577281126164748910533403570035460650486150829862702725256524986347919120464615017013176785355560224114665909440374507964826350962411129577335609073356669615063543711306743006286424349541551142902821132881773430675816605467878444157430781226898775798471819632373010616442323293300769814188132349388738498960759632538719278587643440829030297216293455288885916337040434919812371026110231211467383511020441048678764834417901818200625186946135363731070304703574420954429287782108398521727705343933508092769390571160809214094964621489926073063689170726624979129621401921378834701540955526683833592050980349223934243808475683141129172681388151355593868170577304822612256408297614816190054138560312377061013878389533814907398377760664675107614327306387907380561690838720176668476401596493031516027545471851355341560667194121892124781684978030704468350631340682407637867685116020283783773991772793918641941419496068430670618470658965956182709255158584429181492217589960293761482366026430167700597856368763165776634412446829188915443693972060236789902671360229235368767836678935586831246202187334023706774108611627764777391907846572862428112255417277503469168525713062222027745655267730001995352377393153468512981504036534310164666485210397318910263403371235228121167299978624616201520047238912416889335368840117933771577404507117228460171430366029359253583780000066490063369140465107327368291567338343760944324096934870885300314767868978577151490243439466111598262271236843533073806633019119507850807170540643409625588528331853232343751514130301180486960202108237437466176952577934726351208889154900155113783883918567064849733239093747179222417823787635484801149139872327201767696530610919106125338772380377580291976484651834761897943878397710931650268570823617614674152808530906127706216039124523986503127945363287383986424300644794401919750284345235109833943842478948025409449417991974499073243389331146592903473083382615882044734663760999616393436737203336839157871472780804022284330976526383678504661172364193288448888411374433593106798869245702121148380447587708729688556542072882420665575611712394489069522567124171361614383324593277628103034876885109225812086111610902437051701599509455713761803069494601402824678966200055467334803935318759863152176172621134224641368867754757973198947264693654186404863175278765770336673184076931312026858867224547546067318833616944842540803353002919702859821681011118876829722899170054734348398823394921693558540199308095528642165641309553088980316135712040590440456099604789709014363238379837931070726819990260300236547820165866917669119214036879107424435183888572912971076131972510481607758688020833702462576465433321349320291458242851355711599299417233052160718610581145156811582300653645515675757206945996681762081573217010611963387014149655214317888055356378060575575273740403433591744290870254878653708847678617370295943798973187459711689705064801894177182752787111489100119559834396555011067695902339760269021219807000915942388453059898880688197056024930552483303978829986515725019159671511889325651594758715827285127531147701689340704872774175638557582406510280692738076155466051701825902444752826678817566061987024443921823042093294799731314369696941188754805985930421967886931045273883985636282006287842972950756942551417524749422337328431959703434397325263068405842075955798287026152739797876562768208316912551103382532892082286864990807676609241892240157891267526037562326851824105618794763073221115819739134823737103562242628328291368916951181943076752206458409451850030883046154307829270295918859299337840531603124060193342767429709878858230857711687529383587666188568948279053110493738954108418456059626587900302348566514645829564953401605827561547516158724431822489230995711791605990172628610950179906323633528274509537238496443915948033684572360852170547543492664469934780509555658139598395759647251189499871131489465596840103662990663442865291478192633929081464638587677480470677453350879327971017030730318281700455249927420617826111241714822495657952183382569504595582028141579946335755631728747541512603510070581953499897306551015699272833913538375504961327046959989875354000412294851735568455576452199958616116411197439015832000625338199866770726623477254043291282116595098752695408819544624422688986545159968755509345175851720278924337678260602387827779506199966056055551313060622064147140469395320550426695392655475339047672770997865545451172187458312647029633193528467635669197166309658746175662686065609485981982136983917293592159541005843348454110608567873252085134009683521878019255838475375705597593018228216290695391744763446477328843221683401822339766555061345493405193994726767543740417042596751127294783498882987143276838003517075678480278054415362369865027582661318144049762943067057081664795692809184595552410124741559028474544778594743889577072094564430545784683589634976566501457877767834621383187469816136419509779844243261240886891622306847638429102670967847067573378077062592691115884392265031554252063795348493350871262146479576537279170174474747023570846575562919765306970996414795866107675779631407880171855379114374516258919244211627209893091802377201902062233175582314532016246145601311861782896406172084891035238171626624623233453052004963998460411230156845823023322756756341886172786311339166518772363090443860552607709415628669043893497983591003750186398526908039593981964004023015218125095445527217244845246541604551034965537521186029596921878687050320096157134521750134405092622225001296922363022837288198803247819119136320656500476857025838635347791281700512775516823016083201077760013234395639337199347294498947126833926950731140284391639498995559736836336398452590367295274251794567734843274000384003091573849539873245902735584937878778184961771679949001204665814290035123995883756723115974061103281781918104315102118602563725901398402047462478777934622746129017800344797589933273988193585743337644770095057542404970805139579933164449897345956003067894134093631351878635452659617022318749710754990480611836660291579698860200869873258253229922996759365602526930888082702787704799683318939374172874470958859835657819219514002397097432413276469086007267794520512290854605659906905600060000855814104620798955124641703227028672342270065387838557269757101514860668554493070482392831600551655539553517743312360874835549308774383559879383132431364183589722722953516737367032395727251877118887935470691161921519925306642493042586594325380599993501050438195789772478930620265928448551727144181530640827227268331727652354629444151813013534839586503865713603213593243790995285878341530631316320613614913513997665247495969049723689413533456978914298757957781421820502776948319986669165217949335320642874938022049072258475729402163598430385333195008213565147591584744217482757173246893667397946816907624974995745569678396022279536775687202343004599616470528917691535263777828895412262484368578804608300038585346914835742688823289106382224977762519535950161810332757389735938063423308559933631353771429753932474968848319096943322911561459756886634066515852823774223243853920364757205046193707532771552081688387280007259313513606262476593169302069404731304092408366056133239890143465744178900065930425896998584045382218432384255440711992536026872605657033204014473614059725430819197575210907752113083021238132252779319269999819381098151809409298320663919292910726755691421738765971658138455470393338293464536746623387189370236485410391375584171524933712392526027072819868263173736417764365751248815890769132716555088262866516328255166974441007883715349870810580121658120860512673309546000143238406832519828890525706645389802107007211204000419695526022773894371631529791002602687284180920716038285511793753808708331319130255181521166247653618458873155382592478542031381862973705702135475422830203574056610406300008228220529381916510165826409586165170237941800610184206625005659815132458523768522843745823272260520894077550768485741743966564663915835349159109272390382486578049857382808539880334753559671113195695569915361597750939584954089850594719669793030877673464859577378049152057189265036046614575510867128950719481305662200400736179073705942691470925221067664305409405917013398833144234572748247764946579593394397001839580334785444401418028322109467410735540511731840657206421003781572321720739459747265388272764392529623717655929947930845529982799338935975401976570644913698901012356342065773406036592985599083258291102118844520595663433622637268037326164436886390992639489962321243838269998510322939848834787748747200125672538956264233441271656445661486011631207299790593864741193383249449335487253273440202528091596433120374374349877161055985662431273890602540326319266761572621656188942605649196779261462507196082049680303519885389735488223452110268164184400682765845254727075552576200633068623463258805091964690448834277677893981340850949439017370785791570080032822210939573164000534821456260997361739205776171275269782928790945695861314576186032509307665469111059619138233440935753981763429732823709712142306312006741567875603193999953910315474221024637906544547807478475181809192092170200044439386480776753091996185609862632811140257923907426878405418011779358772951248906659165451836468233322362050653922636181198102142452107595766365058101608315310581986837504829905927587799972138883284214506871135728540087866812791780337529922660720548094340981125188613063192802712713835600909922055959807798793975037810508916244195148645472629681166998212803136762496374085534549567783289471080975536674102213978371987401880800601792949908911336253878651229525171639169172545072249335692442029666223299929454966758364674880299383451781256132057272717368732314535074525080671851551273142238752168769694436604491845885114583353494016304399198458966706965168844682011551247755599210911703878819070491004670119272703964640894048633854663044452567273137165010736508318995000134683781156099645839214097562911045809341010278138959873788992794983953541850149622197333185172600622800194593642262179515631219006823417713729325594347306866906776713392068660158311379911169627664301354492022085412946521291012314725373258536121487633208800161954085234842069445235216035565916393468048614273791111291348850529430546412926277237722562522020755656545218594565288744956169454137896925666187557087706839247210670726968582755791502832266661773479207957081575163168058256718235815858130457078464417682822248873230912092739577990455248457723945605068189711931617337630084502948089809420478966665186689519628850881845407456226058934959361926781022102612032141490236893987954242019009122338263776763332658859868076955520519651487249699373592843082843966492223913649204712125600699416588974058484503310828388462149170457593140697197134154037671313948329177518775089771484159619177116097660032414898295644643552969486739958837936818846493717143995707271800713368247627516288595748613087293651307672926203011732099677058601090111561368230856119391411194772122504557022560193016547126267406406872461228994880012469309724655466897500433309305558893602469517530410896795425480758611900492443668276564669451642712058140645521084827381700795146660107225976524525758733282996303441772551097253945434135106709601837826882365333800670867051299550078365662051554541355944451821161039487075558206313517306933011342036976437114611419672480611230135934736456086447522405835804840566203223426753983158541513418943507119520312836597249217300930499497948657147377873421137427513368562143867551257598957645851513897216047082430913135479976098426328011564116386226484994578467796704229501945512586729433094997968203162004793050196853107088811828084356282197498721431739658050789140558900182020724497283129538836326988646495992477394599565393260218470087685582350931706223599589169880864196499565948486865351024140212281431361396686069160405267353577499575562206162278810370279129638046560377143089566045887133911688293512555199423823500283079390794971011595626246901255801151426634933936922332652009813596749321536378671205537603127987260006226259046509922841959734611324195073043251843692239962868562852562505513889596182241075012792317499705308560176661180452009850998324598600820690060361552988061374382854264671482398127017166382421044752292246313294911441153305825546712107672720416459593462367103082858880075935000997819215052693724075062869770206666706332485465033469369339689009658561822857756998011839944869209990995051141285069503568834559337205325785310166061325756784630550877853614383396233632757272018763219071686249980392929266400103161468135360287740816069341348687387274708474388914335463797432573911305276903075273061520303568091273846166839807979147616220904037218282883729499121226081350232167674276434015743561775669264188632008083031144380685318600332775665498373577591116389024882622991941003082737335785714447905407029159893660499629782428530151446708328390548166007108636043789805536700565909672020716360765802561488859093742571861987753577727914903995544415851337424688543523856890947069660856650583589351365678662096237707062563277724731068658776137855340061888585008456906600684143734943171371948329906686711577540554358797255310407502348666161114715150558296998169069979957251333118072122452996692818970429057822140399227596370669414666948903393603711288897377407308594411985432563565781307851706018416430999787009092378916490625991514294072027645749515356010583470955797761907762961422683185946853617327545222533315007047240468591711805803187243996953583249219840891985632578669768059505823536806134350242969260065823741227423152374904356186725074188958522242051723034579520145311968617365640167540302372216137841007192193106311616279659600641432447408347732229295744831025543429375248644231087224915567767119982849338266025290448383535321454710960391820828971546440044576903086685539340658066940432978712421623335814241425208912813940927257729204759227869970887744904453834698741139023582667466199097029429011683670061381701252630747816875905715271023345406310397229662883645148950123609466278065942168136074489010918163162508085764912665147602635924609891260473330588002460550506052300133556073066400708120142979835993863672854889413659276956975338372556909606005936643914291492421177896932008889377853357470513202278755473864397850528852011422421000591956863861113916825036548417356617421391506709390850957440881480034963391462502200626245567286585277069096315466375217914031546106420744059608654604230919696257271043186099765282238033895927949051194085646671488740547031949963232578839266712219900191424004252714469746122319077434320542750428997588111847039626966183366410527695938704552493822523154621933666098024051758549126229894332050036584629350224725276424858767517870808550594045345209727639745089976077030465001922814951941882795866666105874251437324720400731907225321026701573760287455813742244282790927790018886477202846847656096123968815252814768255613868631437833961232283263609819270463264415994947819412013848273410128748111026596075968539274451778428343664547100562646502645501156423478718385507044133180913741033126911258193788038926634018955866589063346763568071177752653340223869399571682015083383612568523122519179145525714840945362103835922339444922378325023226002338205692038792918691430692968760491706247120495994636043686173016514514439162275607060427493066786259234216478032085940561045383535193220378721373989916234537893601079333037141951519410415998069926692424669850334038520732916006280756662986479639528722057244889583742388098942691813008883273932668413080536483283366718047451029907938369627719937095400506168316475977717365579303595887369866901326848827510290073694495672602547056320339942803240461459276611605278759050184723557813247063192270740638151886497626170050602619665756149196915157165920097158047505764278420564289873958023654474821333656559923305848553001850196166722140555929432975386561219336377328569307909100584715383862274655663533466959084474453999658520312615381968709682366573609343111897238029136308442421600568883942678921188591640085865933162028928588706014366834261023216955332786804323527135852491803797903214038216287146258998111580009256360710052631570259730610352297035393477247208127381446218912071104045980173207474893583414653348440902890799540853263883485996782557815161487601054194032528521888481531865940758093006598386953133103812015252181644256871112688454223761114236200781546457851840041341729370465866316154971101338875956380077345376487993057731375667758241364674558350408426269157217544773900471450280020029403970838997650958956692988557525752652691418300816486307481918404354492378691197620754455152592893455193490150191496897630418604082916397646781736943153176358826197100722129390672072388670800770099623625226939356694879723396442018690105582782542675230394748780211748604892300170639579297062903842810383454199987842134347089089760996218267965267931399426927319196811374607366029975076171868549998700667593569804217203109513829004207906691589873126519472008454199655151888843364341313403156269025023250974936455632407524809046300953384038994498394311266613949546673045297819304635021675016914819001347456491581740131643583995875656167218430798367312222093489294596790037097010904372578071451242679147630488370949695887807858613118246355578073579107181452208271375060112421926795745435179893002132618627967925470275292466225190398443458456156493941722980623420384837228347910513492292556219262968103360848874416347079426731127446232984261575665622560417773677778052744764327602001024320043306578761693206499843473481457747863257332924438133767753622415706208095297790540522577038457870626499704322286295057520939031197325025289638608586486364546025524648787380014080489128146656914944173597021520031371655949847160578459525050387146408954393591745914984094419031096853923242454829788796831568234249565113851475757787603504764411450701457026818406473719250458253323583656289313623244125018632399585335323377098669058712928123011458120482840857170912481432164925224269059425253841077308806730389018019358875407788673772622732906376485089544893661634644994900941271058298289199509929027458966142022405170579577592508948781387303449380593379927200390563134652040720252268629288938514323682951771854786648636232942506384278649627989767525065493111310559304099697286876648392012434442093597393594028874562458094226930524995410208868376033766585889475325396594062736136383889857857669212846493162631965056040866713020428528847360839174221800301967060136271950173340345825877012617274541238925304370462376857059469534417084451650146834448517759724988590260785150329855158748405469434008945564345925772333988892984545772555575934788195058599684171149834707062731561279958874371934855051080076318237354935875608686280079835578690158820677216455008462085862900317512371810704710675154159975353921948670054419379781389731936314903144745766078290218191321685401847702197455366365016514899989553973218045147734877153665768860326717318340571170104048752360891779409360801964347164489077328271676066774461423327744920028368290435875582502278322278403802937869803912555767729701052862149422935989034856578745709658069484153032526581432092591852013556003241682352874471206317238205925294831713041419127018559290889630842505345497774608338749578079148162201679026299270376773598236875541259109053288663470198966563527575193840339871055114299607089709794039254887805082813511554407419162822141424386979178785162580674589662101465525332838407015308417865486532163593846650223146065396609413542826547759759618838001605292863093652609064446348775461313391539018042071706338120675054889700791444758552198468390534100834785871430468279698781775490787407309941966695547373684078027006957024543054514464095851948049291336079603842650190930830582803971252034679698026649996545534162427393769533276383436863295595763688413318238821494880364761188528365427711606462521387422550669660772133338277693907580354331336892367064779579302392892746203175798680222234992266402850951626380543213749461611897092729362651992040914722924430409677798107147446410515472973049986511797833976017616871772159002004995161043256411620289742512427060406616855347384142280896314919448032273555779364878024990841451995574011935185226731361985650619921220353065429552305630256803591573539630711088191850814642957508048462866115941549040625737888805789743927297687270695108647499087770059534406791176765693813083778343905186855606085334875340039797704628299439823559327014623944026738735907419685206399262344801535584278910683397269428091111979625166220931044151364082317707659275305250380910597973638984373396581087842276968576783733731260344512931647212664426307382965555304628909845209770000983138105815158550429884437383142290330672043977244349167399671857370252493737782330688293455249447452261213164449915483003233855865088158919804533039348123103307960291943978021567109447942811766175345768906366002668155131837410415199603518882237824537450478840590453487916476265667631277635054877642025106058769197453331876224977130528095634049814104561605377052897782359916917437138920463340321915995531748283558230234698187097433059395023943385876477688925357951378326329286215559502141306949068556740465859677271097897735113168857097380161170547198408925096027670847070912712407881131474636066906385670253226548840102926080215021997808245878599599048188515188501046394561869697227393391338421989017272705662417323910707421421248065023310794066232806298577468531532683305454503095419711065864137313583506493889830385271020686523907708313586807731522879250237237713687286079997618752794137480977291328605529274420811407956732680229454799639181817642727468419066232618672500063493272108654395965851490320405550357382137472902078751727424855701559513267757283791563723782118476105401695688736676458749281248695190969922882493710046406953371721933853007915799810045444641522691303702924720394783391749611823153345514459316485049914274700216272241550403999630465332540584648074304659720771813444639857010490929115506451871710103678738633879381475844093207855888781544351595831421636426528865768793274973411853215454672077916740051855289397251203092492117250359295240234998956518735307782333776172454907608563485193440491511208206108614726725673485387653892080783182242507866176055653471754778185900962603443667522436399191938729882677157204235428176416697262132742001820781086040930923117153955263748565878143057379335749672963121732562702662645402613346593163101508554393043034551911360456364596628239350281514240125577710806783295012086962705616230466418466254224096957860376574737630032993864829237497002970135163698430874039664307069315772832490497737079606900627947431456291936154440926801526539588343968522192628900473301725467614782233708299223625075088532948992844964288451320332476862310405220361802434495334554395774143898869983721626807613632409021475245694016174572298648726699985943571133302490796426650907607847380517008186916609470843687137157304477373478686177770002567434922907479702683646243330114048218928888401431548604122560213197550472893369007069259017728158593688695449331496087120195952572702274095451968616954635538265208118472706916343897004175272435378298968882223751961650253311104303263297499986542784052954460669927513201661632971311886599868359881627936326296564322345282602105456677036040408191612136169009493309599186247401205910065762640528932085553260891780574035194496499319447579792885405256862471974806607055618526397181978515847935191103488464493878736988184795263551901412055368167800915399881996483479591534315885106499641388369577109442738534197845881729198652258797547872416843664052953407138664979072124686982224003104349718848729413859693755361738687116606507884237283412619767418498161732007621139037644017614718150020221394778478719846993435946817517010569542442041239767578306324324424429137285224454723023867959142763980343356670400347456377539529557033301817369767332493141259548480612836513622648764987331039791781977741127695611966243001540883905549717496567311984336918958497800145711203152726434073434185267344378539252061300857484948806273327517921103071508095889323310689466674487835748319806166166514149671249272218016419818871320188745934895449037996462544092761366061119484097981768215959066836926482102107513604126063213289289555224965566378648647793314143530447006070567081230088916261952442802461894572227667187287921089282534381433618372206810821146894148395371915227180872167322193123462438297749534589041297405033364313730335612683539462402347002920347348474539384854022218984729020422442749197982416347714574057710015325885928498549123457147787930188694497087455218339714573203273825966217407887808448053495550914626098957509544632406952091707354842735177293972425069371340352957760871306491167535598571561703621651665590521234452438082843258213187691200196674432635452164995537209068265328177400864971233347126489014697707837068023827728701127184478753237114662321416994641299355629918017926498018494528429722873822681451066846646127130837503826013196517008962235713032592927184987550754337764466049406382077908478297341053305909791712465069261412330684657624239227029948143817576480111011683311407017319493770197182517970464191920480664888045152813034874729853146356196646243875966025845498542249599788262518514486045623673899134318713301372698542758490739141611311691270507626926407209327928076630174339585132300735334964917397706771174602437231791304400550084689294565232936321117681409971482981466909988702500764544648773692493217619393632806724724607871765612600272410861779389084550314047831503317877080417547608050226267473249909525772841129309608059513795698511767678487362381800573353661766154765192688392997422371989075158722884509142019214945401980319748339971538416979352156065065568400582878389529963490280520625052958089208823676561510071203543274417362138270905075221100864417190824039079621636629282880817132298549551276515945703525713171970117153681478054069231878368703655560290171677211808186579691386315089480798892779602341846759542482871703959862131578897208956506560212088689509753534779511293218472961442448855606634083259842734595218087894772962075462001313268135643211543373857680179111074803844904713454193073068703973825271250916135331755720703406215031769063445250588211773731408412053988401177557204480299282300830490202215617214585501425764077530399723513291849065247175076292551618325437418956824473701927565579734448710390438902164764398055177449385380314413830024656864234766104509007929563949410457149919187855274688610522578480718370544046612055575840907633464887005961856676506940309616829430717895660992868451766391089295262332237801063291537756602891533204131706598099812786073063946579482833140834829161858895673869599710538295443035833666439952893403290816022822116852552318763991693289781241878346472853219237659042646035303971333934536580290946334129005804918608755976269090088347941633627716526279686360971946448619598895867456822145694286713685879407388083417048962419638465588431986985369538735876499437270584533203350297329239173442458457205792234729101740922020390617637468582388667381248252331178695022839645999650133227927467532738392906124500170234255980828806005740305796826700958697500507416637126118231718458447091828603091875302514286502736104966312817015228246652748475451590914617438067998902880628721556650428745585693956082731466741548981941866064504065250215652381382426617140402751953881557907496205475295336731464296013579418878616740205969713273559136105706552019020677475063400122690119474764975893432838774856344343730733185554759475279771330340719444638366256696195974685191400832194478674931495940229965058673882139253998873740020535539429312496302486447264374225985333197476797302431556577357848888329339863220167228559265589916549929314889935554253927402535188164213952069392244911760641195008025005848044410150176138754109453317126352443563878705311518113944370824742547981972080713093095519890460090430249995993169642437681546980685529833997512736005931130812057110664234417806581453884270065934856234007575780018054077319479089783702291074730617682721120405348254755976391381755625645220085321033140172091554936755656824111105849964607507856963670866920023779493476470933731334869739373722888050409590626414006062169072073781834504963411753458703298299499718607794801636729931166187728270398696425019399716632909261732187679433065306064427681370033981782510477719709922034562794772917826496876854020990148047082832911426661701834290956665389817337494960795353993447365684281586448994543612549426912963018362115483865888938840788736123279872754675632337065646981704437089462018024014475722438514952265745587118595273815585244971421939140391747495382152606444959266301408927580606482378086946709120348153160857292396675021393960549801634578155517797560452781841673018524194231619047264882289495233828329762213580058185015023624730012888166025391298552765626846555024110276578247627023248219793730150699007529719190609157673543618459068717975248461188329507530787404139957282018225759283749368197702071069246390021555666698907307565574109005069602504265441893377535607873783361280621680980119037559504070196975538565318876375666214898940158793658759894315713009845915615054820272540512742010750280496124451516406462996263992827398201386712042875651051245664883107816825460891109144174963326482950070012937568555838062998748267550491922322308338262362192072145829624308126423578025049672927672454608023801218716560762710134171840304863505733072603862576672430464202862517449035849381212907661700821395190963863588324340719699529232890571452085800434085468371971092800004777551839104582362950047107668790195508389529979178367588038357498741452899680215884254026850935361623786753155354272108047282209540867964329821079548151462738302099843890880233918578078798622197899675044067619154171197527734289933368451119012653267296833817353597947137626299199919701949124213151778150026552221698499958935289264599077763517471226967834170658411248364361333057371634601837128927015914169413323094108209466669020000421675354969806237322335952663519433780606107815314188103350575367494571836094126828769417190474999228672450978351715555999051740425281338178762773169756387199752510104650702856015886387545119220437633932562762309820628652988071789748779293149035416400966200512113260709574104011084262695511447661804406538449694352437995441538636755979684443891899464582343693726903038954363141167103797914493980509785716859560629697449510284732496861625833617930926275951640175640252800252971233646810199415239354431408957768249798887658454348927402718629911688576776933743686743519510343058062603503216556973741498399166733317281297745506622628820457636275534860555099074051997435456035914607727370556174429419821313888979864441315221480873666503980062447087770987530111034119894876429784147224596872115664981717210813880491715643765497434522521310071360468156665449115233088695804367496568609652757473394129448909928134993621143676585343279433070449140456005959326513181242843362152989044929845163328958405675980502275942917482212549453198816542854746282208554596267319944025253553287642314286399866952165627660072176200933257128516015714330617013598568997923252144565921820736758225284313532539554151962851379736322246122951611740546724901632720527015637164717338010462978207228951534079307294598083007404446990888870695796468721461864101396730050671474065102084425909225838844351497089067171148639138100682604206904328196328767708590396517575912282240544706540474271347444658178358797090450296817455515524869098209376564130867441660633746415730414702077858509272407713868342649397264382507146094521329638128914836293937483097548779055533334183978464655935878676685000781200641216825789399904754591232437353268672229369393193516120564006965252535333863501271702790820643322222040746803873241441402980497644588220638324309228428935600715790531498872862380981492939104425373419154035087718094875944725719948873065302273340755991828576270513752707028306003768739547049428414052636831106456547601562246912369797542332343455044910556691210883243408066179140067846794585093597727384368303030587224193769800103044281293941533224931523200727379120865329861351360001646182850933179881214130689931349002695120631015995095736719265101515460868748993688041208679446964490276994824996428142361951269475671028391429786862896662125904144608599698443348193202153958447523072939381204955223506961796026713555396775596211880446874105912623208565651429773960408578194717788173720397415132435508822157773137266952504952939083985422653248172907503364758546809984482675504140615291922529492597183768449383949816749196045980236897251361984623775085243388730059431771016527971533666740909488778279742214742860802782730316803164111284552946455644418984915172859127107300689616020226981923305098535381315784094343683770425060052720065474317758481047769641724859191341400341331565570315658173712449191116560655426488656792740536627438800065603392791936932267767595955570948466285881335628839536801245780737931436114744597437015287228481880198984369312407784247391191767301655787375935649964367675799909140016834064206018162472532669174965569800438162281409398418834316365908351619551559257548274610071303474848303657066692086079463120036624809577883440087441591638730811312189675379246345100190115785440323887732083387117762924423268660110655817992142479461162592788358834976788379130176661471237141352589749977742274926671983738400322805343082000434050455032571592951198564330464890061680015142996380135000759931629800480530047069123198943674282398259716926917029265075642729745312858140970878503279656633678675572645272729628173720672633679529653504560510311539413314536088009914670093948467265910423320241415580452923443383531627686175763494795099694397152372509509971127661380968007055746459491528590421942145972469376555484467017440723577897852677987879205268045311327597941003643480537921722188970919881637314633541907051582130815279854776327503342422422800033044490418505816665871649593956653018323188911261483998410280625074122484935581860694612037568015018466585374062369139080556528520552234201268132877118991302494957349429805628232961904698432114607237438212649781808813969566601780312779991312641919910255189820167015919623679304029435906211125696273194605379229536778467416735441235736623987657440027105775745524535663969753387438600449904188746153802447761576982406420026685082919203957184176227415530503430126407508361622653450565385610087042691287977100759745244878436545663573490855849383808471597341924663538777699507328179716466243492969710599794655879995396853064207501722497415717228385889823328109650860723663076504842030991859452490862226861608999200013529943695386046787406803342883318839074503293257400131253387935704287562023470130625943819910101932915022416605125052375369161977506414924690269868499180005847013720974191429294015330375800117840706323455561420733352826961112519913934719824558913940085619941879165352043389602921638645574147690722823559659143530469599820502173078216209154536381434124727150174877920474640345006864272278247939626518843775895649810786245846392605808962920670515450103298572933435402153311180285763304880990666424381815035223631455212321261867115052035223009097817453158021592147366411314231144074828613569889986647722538339983061792849017897682123338622043637000088228719889968502886056296508649434376331420943523638369884532403890016487879424992132193512666062507674103721983215108091662691826387983559577839699179835250223590277282357972480360329851836296083100255755678140546338788093886757584764145866706771415177393523492031424681405505198240364849357496125265147846722260027508425651331181293357474257444959173073012986027645681101279013753633406807910754147820236236571476716735459849515929484016328974375826338657752010350057059777772722828802796898639877874891304314424442425617036978585240796569434726608416776847506868959836080099876608363603783998883173212975293548734696182445442343900818107409911850516903228700398928740145306327056753667877440214417561679950469379848915460590446536736980033106418361889387492161189815970847020685207490985944019535593725852286952527582601538090987503381795794709780928091302621055057162980361793115458317772368932901569271875386980058543240492744516386618636435172959831040611735738149016537353941853392549523049773176164587275531531103623836794387532821836290429969374846239191423220843234497228348078377608078018036885527672384953996334343495955541242203521185022143316145553523942343706450834545390447372542037121403864261600806414309428461262550952077065747695090983896167449898776981102753798487174813799926834184399195635282235448918713066341160654843184592319328398692019175548958466348328191420400673591426163255468345203025988842382764865372153317764854753640323673862319960233464214963564906202787209841840865047265130050104270014332566269789301827238932289586281536120077714487311207582820551877965157741642355707362801646406730926455219662552440593165348637336300627156956663023632674747481254190185650027031722075074268163243101272498430791444829072627467332161329770747672645801459473415660724590315069487441378021641002749844123047129223978711075831095338670361417047163805264604995516078033658579359891938132411047504305241435861233225170811393136292580626481871333205234958050606824734646273515687810790953643578537420309850477844906008997650307556177957493171154944843677876096337070286454818404017449471845684470706650994248612620874095923292473543081161126934818987514100951825468058945852942628493457761165807205517319061545240944669519369129421969211474870623445907228618084529787675143121179663932633338488561312251480262624692231711119465335280738353647931521720682581680056422930221141533987039752990582160629147130863351031597606869002057701173778221733858770538271315083208281287249908510742496031734767507110389452534565942270484360645322934373733383113915823323993146714289007704671070244951024960161028847127106786564126097837504112985449407893531536688285973955233043009715369032499189359246116458300832610791725429313311982181413540365503651683934685269857132268125677963968210974405473301079739275472321548367720483285547906155618226659247664364048005480747096647983725758375849197317802520013135913643570926971430367833289980283813632403348833184556535824555550459940549506801127293584471026222256670984916195699137305929984255834566973549881531760662279833489053148723357071181005428245387334796395301177926744629615023903350984413137730916860137074667271447351509836828776175031897695220992840477598611941605459007535960437274674115624023568897991364897113534721516306648568138779609150591918768846127058968630148760527501285388393671415993224486857123523012851361858336086657542238678298236643551648293045858392178389780270577061580724619967519125757816538394721526007038121535315172391784039494130637909922254899617958103050512272091972772088143948790710712512633417616376351563333173676968844865922581578983738381642952573041207260033776961591082851002783283526307338484174822608014864112813527291621318791781896639990031900451929865242855682315815683375456579093835711628869180598196355831874689763790130763713012905468750053701027192955501669028262813542853055551639756903521209848564067930422646697412765538836702099784465134637609660727474178804278898853911509522141463836660250688877290498204158837063647025069303169028335251790044552091504472893005906107733541201897768840581699325175195012948708158375750727414706012666710824017551216760112378174215632417258900594460764440532538920419809571681677877020551406614812175187761875222247865804767900888082734918033498115000569806586337664981627245120800241573040889187761456890005752837295548946768010347564901466475675400426814321406991045385471682998724101376753427402692995259963794126856018191591484422196082708346138653948874238549013226431331047905359294373195053827363581652431648521265688134815135555770556306771489695056936753396649194992148514993352437540003806225944737322393383551426266890883382490312298724475650730105731899001556232411243178136828605973164898110736234185806210275486497442886633943828270980651480586412114882769220333159577212408210421652038686974924955313318581340662330131194199684692982341384814631050642298653826072867451278772582856917720556599507194310894325123287816623395708771863719793121950484231431072913572969191314902675076503700326784745246968751149424408965685014954637614537820001348537323285003566782721407289826286527535933885183878411936301704806909481693949172111413119026143358971299957480267293252712545043353566091767270719246624157615795663368762564426054711411456463745675566654207729014319465377038606503030735583928969043548539720836195442479012160959344103707599957730302855193037974245115178436323910627157393244964409176790126722179401101215522396094774693937886695312907703796589820468789395952591064935129857718495150669026319378265592671633101448226501635808194848732724184217896211685219491604666310674069663569430992678292746054127582228761377022946337560046651993506607742861114839341606869393110133457065417058694839814047651679987541882091726325934190098682070724908467016446653335648598849452849325049907312690468968707068110528819046539792264927339087721549161897665052329275957393068810805854907809512143465406841802495115307640670165946863080091160653347437622336690358379141234825153296005095207340720186228495063086779577203860827112579075522047706504740209232632024629199974865033214363138075345999573140325645223472681214922314999226314229607127019707666395449712345300732298097024648641551721823930449658924801404148387202286503495908914253874448326872986902794012661126610767780684852565110146021442486827435305230660006648424529010577487491495738672248911851666687290568391332269925673608282416871454941004581404132940722496210529868535543337205516618381773928126535874985347498300845520535354028262595598760554664050300910095077718263313849945045199358852595088150595163020551587922570109089105924765444532279773137270421153833043628953262207052747111629604657161185488936998096974583918456078876023684828537570531454589539246291198662631410573731836425728436241325420194132565049410597472737849704683410456119077191876117569595531862118980458614751886226493881053090688163844709017182609165026325319177050629593071519479818738917880697964871647097339825832128643273057319588101728376035785551536027386730463932310342568326383553378970083435540288751471473130430753910181372171425614491049068405147201577037384678505625897329728502645196356453632706181011268831896329746332499547843663218956546479656758159886560222420764860392215179160111825703092446774957279168528000187077566919840394030926193126356895438002322177242508723007255480242939754094726791217981949777516550892077878026068742164267245973000932607242124313352593153333376169990540167914587633712264098118511084274010559300674429194145137198702668557918774287933638629052688148477507137926153560246372524117288587603851737403609731734940360942970557182941113522353977617003315530134461451973672091696683282990886355652298975445948043982131207856183143888381188229976162927366182740395221037134069198078003677645020731922800556013354493423916303518601772328706353731288887950202422756484672373956534550207119722915840373488549317013590343038163888615753170798203192284578516382583531656748449884247498433616494229043600198011435172420566237314044123885361532669426721121527536942679115436536463879631248792054505272221263061355763814871924488940610849088177904037972283964590278058565101021803435878246617156310856439570146827639686176235632742152772943895997242134197188212025710096363342096124098331561262001557572972503720296760461660527299503697744216608314079777130732497306369435316267962638361397843594973670417175546404485818448464169779973015115429931160395270782475630173393102477609598065341604025937084301701434638600985368099327704490492580613706489725049889754633824992563822610127904406420891635654333212207594252007001988185345099220195059410043445317290709412052100766082128547519347970331197438173363452927386346631256336501553459394259852997216945182854276762095996730260553011614621641177987184164850118996149211716754992168735710231267406240878489683215311823152741815006404927817265285734765490830468560063085106922989670450080101442569814034287374028277630355726848427069576263574648991459468217140172646257022017366511041720348845847235392660690533961350675353650669983417323259897627495373380907157378889811163189664972716775116008939080057580935593471214968884150849448698120541312668662777636502455723361993140228203654066969416684006336379332351800511145218996295566866111904890403495296292785988262589245039570474969572710738098905218839959357294430521932761060844893796396530980338662337624835617509326720910307450925538316799485407141643753465928292334877351427664210752269476110520258427760022421197711243678499108822232908606709562723355994586276576798615098762855433115485110853653269974974823494040659125229180956085787455309934402037821897220310115759281241965020011384145094262449269531820738990559119187698829706769495428175490116397509390233799243440294940049991461355036734137647081437482657826226188696384635848424190477413655941389197948787259309746346232424935959136654133894257527270357671208631383162391313687619078065056116555441085394452873264576222879098452355678723906043163528998156853478770148368231776012773682222994957439449035353370176204273410330156554118713311934985034027628213395777845046349234370289440665192627341517565360226324265231760155251715128351597596353360480570765591922867906348507282982831867628289783214216319167788710590244372356368825165553628752977729174479782398370741761914727813767220648358694316510364509955008118023894103271874306788122880334315422399817306958499344001618136520546937671134140176668023835819894832000647466301541744521944776434929361156105381575819255313114417623660226563730666454213019688393032829104131252380335821742098533017879666545097550844880976326885492342718789962083494653490278172755907241991385078989249179208377202177391000912157696262203705418860873463053502378192575433907036927606238159611665275958020131698628683608713350219073476213012919655100243274363629895718986008761336931123906042572765494041964179126786780959715910519325953435605858021064417485083610404595272697820405786577894017626287567150333554439738429739022090749940313816305587065460092528586940810166804660601849936733816546631612179018390090693494537431644535448597498727249074467534654290440724048559369274111729936967791836663233855683682861415958517564487110422405088893180595374830521727746676847860068039828421371613093415895496980305477935930779301424246008595339545026422869980505360786112523822304698925147057249380743093230949303484116659827320086735907366895059252696674246786927084740595083088560002089490118102960151707785593904515616696293855720232518182967138514067740977390365018901314178296351699781036271953439311146143672816554071640942689049913627782983691276914109035736714099269958824186748621755886123695805976738395257962879677196281822103334908347065600329635299756420451818254156858515870264409522646608118266637851890842219444616648879172109306210738277274902241995326865852521455730313817097650983715495313182073508479563041913825723548165941682788187732934014226616787036908912118587294684111912795736511136879743467812975824018645692166986540775251492994066165716352165159082370237816253422126483504554694518362291306240268135851213604962599637954084703980691024305000007573647477683096772933613902947904335528162562262609223228537813134546964154335978732195586404940559831680531479860588056943080232798527331133075989027517533516440875515875342307288694126768062211856178541731261886571134939036176312350513318874486223925092548507775493807510951034156506059040314191226280485131863821817336358438198704451370582510252296270180568448141668187879921509351290736328315315599888269052035455453974719828693341025004288505673635068263776266119764135467598059986979593565566572463414559543362195448500609778164945835759801494391359008271195994182820620569233093764291254887796946110295767270035328973859219183518910649457841389321232311165779508158701918594424529315489302956586271843723014710248063300257496657515569704738548171509643724603676247378664959505646890814886619642727349151789875809586742874707867938581209733776695235140386749701002183834799232781217269000371879268392423012082088383640711347206992105895022609582952555226098312715233154723996486702821646281250452744487734590904593882535700060817365435885008866204434692845906326811018021080057813537346032456492814765453609297660234669307966997957560826335550567479008911251658410314803056763067822572718214362601467738432060696422971508676288543726266949381871386165535701178164298433296211557419696783859938579391413227897567898964276330402695575956031854404636810055710753122883638589705895143992175988392244121257763689105229796310695155961839365360512494836720210736883219379615000159251794937085110121471957665917060046839249624816896430433159441186351456444838772323304152782031018864352018836771354985416756683352397534958968178310448277140686502435653537068642978394993130043791365422807945204383038944034957409718867800530348130914699789968230846789858130480392283263313064322234718811929022568825049320112310393378125364437117017263304236061735235688788249754810112134230569840922246358842110506515781933573914715384241906844054266888105125910272757345275445863824389893247354104698039051174303576869829194383484093653216242207719813898105034278508689857273758146903764483006356644834099567631206621165805589913776484533169151149943916384954025882864509907711032346733962399136968918883851763615785552610033849200169648057846538387975802704938793800057804519976800352745643047285143188120151318360212463181736333143324060435259137314193059601125236318202986870901580966439663949472870702777544861613969514561622532560664097672118886332488257476126943164549193554719876783114619899759756270528384621415404589062541559215840421819563729181698633505245520612534645275865476607618646643021752604942155934718188827667959019878709200513439970953507962362714811388855650266235311897190006444979593581472460937401410292942032634034301074225704214546827844095905408108517338649857225286037347142216260338790296493154647090568680028647945010948311772753163777430601272927242161028447165731287456241300483938174897771019468561763812803902843386876918333425960939699037922440302589452172712103879519741473280809247519248009359561157608208219935665964058812000445533579379257074093281362610346692863504800371681204403768643245306169156476575590659602492732503998780259309730811016892206715544486929020577341019045212074949200704751090071642237907452162035516754135032557603148757099131494370186746003782766728104832288942995131264018095138081914837855437042186177061699403077835482564674533609379709561672357743708636411090316779314406113436474804730240551343738365517467295594262786330360510167415169467951402791941519697766778031957673626208212247916877048163690389931194889590500975642337236128128205122926142986675149278877552985840096197831272524610785705126312471123234687253904171902942768521712889522181593763920052609987464012589109978935542681777510496032426349654172907352629703144911343543915132855195777448235027679610070392662119525377532263582879449730103771223140820424928790526424598532683965959059841595705936847515710517978914775635310260046682400492683248206592850946845413532432736553892346493356348647457627091320305624347394654005084262963831531023695123513741989095784608326647091738033352131516892260765032055167166277693109421468474236692554707582996046329114419730601913059835329031227295411851516899747465016806529562904033421492370457607205734957890263099430988427388012346658424188261566033716100180191930531723733213457584845907496162497655487208285156854628539331082206296587415004153133580566233554556369292510643727805183032693959595395268415254878659514567940799763046316160451000330119694668740930506166381584225945783298986678286422828361946576549979064152001652925501043902736497162189864284256027873126472125043349834583603886343651712837781059649745679060846166089623831119008119737724896868841616728242112181033106226330205323280353415383979016084018476908757606546833920114209471139980961062805394831097760482538698655072669065981898338298883515062404079308926008300086502193431255689859089255920095314645299881252479807092897538192750999790733100538126806132382469488878419353110666559550459513293210410900854645262618900019463609610927633891111841987539845175839985027277573051854393555038218032590611678290224426444232937122338362661815714287480384850342134224113088467843114474282610741693454325857643642823469266952086342954933412153580393017491228304323142608445651837442525596654335787620819672218991556741316585459502859438009284236289648913897083172786625646393408076073808662129331188791369779225988911141898742595840496196240623071325326316018696574263666684037436565894520722708266053375180816386828744084361940822724063999981249356817043506309293109880359609941797216288781595261437337005202708165416205467181831904659469798093953708935374132591941969475753684565419835731621599055250162786701396710948422457183654114010512740836644272495362325037209521197114024857816525231486328225334258354591113483300168837067965303363584987180024593044078788270622229264913430254339876638959343091992891913362684388018960025453752624500661578884744899519264227931486389894421508724269049235111929692472731257507288374181899257146368361186302637302115800802246671312754515422727765414274782281872879324318806724620054337456428063461736107540898752202613614469173381453403018280578841335163702039089672479141036153699864970831939209863000569355169008399404631331393342953756572730369457694973767611210741520358389083363416938813529011448638442433190661111670357923594283565135655531406892653075246728297105770133905573252266888934742395529337354395528134475062313454460334863588489903097681081308168981822203025928896678089922915892054047490792745514238377095928660193991064855176854069155579942922422017889569247424314631737518981370526256506548338100984670107775800904770555330447549623471670631523421650085061959541531611317170331799904518330779469994405846387780062386468733593340062557961508829788640545185756041140775370500263466637929357203721083581817246934178152780278414242244901913005833798549289984784309086332221990536531372321971513511907750563435139831325822824691261375407025238755012379074272817126805121089089270423318288753984777148037737392898075923317880579915389368754738080977990323894268665201255926106573279496007839603474275129444782820691271507499175126812167213624230761554006281592989448973626973473984034700891293005263859690572922333497688981982421580888804621329913229956974650950364203546854064324345502244931531294021357030511508386871027402263670382624144912855229707146307740908757914087646352223460872627486862983916317335770443767265232104294237614664954205970793393911057991155644847865684638929006636601251003292423743622192944601564962639027734812486036123343876730893243560586222735560048714586132288148792470705110432634224623880219974458510133479728522584540370921062739184833874131668237065128168096420517736013699996421025257447570923727024873965710056993911192306167247820471255041122279711263315798416721168687981895480731751791295617723937071407863417619626161854693986708087881482030172499860595681381685959813545741923482437548626819494984205356395132442056978897265865675935836070373262076719430492953368798176770448551718362273881803191542488794396949489798318100047829560171347952201154694285024451083849779552130830558424088074676943202442672070273312716347744469355290019057017958137031538265020855886420773396223555596180713535435038801944056764502545151197430575840931397078363633285765316932439116861102062513768100447809074879679916707210434785484227296286155046711508504177557346671298520639614757098552573848183908362636113236961398267389647435944122766223464586785933618076831080388504869512630796202439085936081770589952253958269186424044914159845103171666752301738653177712643091592310076929871477341225750597284129050344991540778942434127151936035200210356522881936093627811549408572952179443204954294863222043898166238097878854956927733861378117357355489306773416083668639888329545791807940713288573216670884042362217685761560031539325119962436659504861470227180948372764680154413633308117792007214203653132435571505746194620712996079485056732974411622341244612906641500192545627604816111215587024784678105107240876852155100398186823115267975996681440867718303499127802054662105502489641807300981842075890901656036907095708261808121883578807854347617933863535457447783951402638025233988794419328212169247567864022748703758557682424473498408649457509216762438813672397521322753392865270953692320562135575615959951531284307479893171378772081820725726117602182814881556335595468924375459369961807922347702605480656242079780515494972844190925700615240552660535259964558791807617357783349328756174253212178953786921834539075601359073534382483475540145154138236447579512584772125984288204965245883459315137225586589002517283337414844033850510701710858352436500217333505696001337331552709064247924967668911656175752272131041472384288455181762289050572192783130165261318159500096231822882540331598329494229996602263065062075848946371341894971558620691683584487552022625211066352929997846863152004370580273994024708523409084709788041124483811728761037190193013262685238376007319814682644703762879932236668820710339170279743866251854601604526577000229112011411984208196513716992865197723216988924728592202111713409435401258918128868782865594766224417287860200246072896244813511011979461732821222901738837769560309100125443592449854115110412674318685592469801702483205280439533131423705250856863309203264210119017226628640261852840280788008350891912355171884268120494401408095716558139105028489632570730261399794109918980094509260082138020156353815575257750913747079781610302534495213220032089964448958140194445857735199169751881033240967779187871112437271079882605772654315382356020895407631151544138962687916477005849064738928312314694199107637607400711183117580246991665946374830904198320822975582427369324360454490709531251626917827759064427867926108159564270543962094311487309582677709659901843137749054217741021749320552159711730718202882369503077795036039209141934067716794564960349212529733889610924474886348328929250872475880578261934922058374926089084050466392702965252114991497454550009976182226124739768662305387028371185902607438909123197649091412406223454708718993467446530513492210241785263772912582434763342142575242295238941626288149103223854405762976116202498647241261567550287129032801452067130219869517199701694563415296361355560290213075752504033731767916052233401151793719551661909307278149252664823121536441721018876277413570426877430422635972104894732364635751682009457065401697536378832418047944104621250277695235369840200485330632661527995088304094920538068238458609335331979670834088366871655918214115584721334613660534943160146823050792992006554324387643880470239909863104739970633274398985804058886746051325128237750773390492304840271721630881668434985678011856267154101104621148688194238819663223645546586744478622834235553501023119871769841792692136250304090983352333573053861911038966183121271820959072005087801521354736858385740060439327757714305907415887737405693319317553417164582941763888980439980401034029625835932307409935774238762230792249095800783344270036592278496463412409342876303259116224442515225396262721760624751863965020086660317653813431290866561591747705969302702814635836669450435348023364119477435069510550883260230847468447727886634445795199840973492687540706160584970536016568804615646911088387679247816780919424730841424925172829769290419276553536527893122018076258567470246213001128810457549306547219765652014974305967485994757130950628149287696232560914693107223858849268256466613816160265906255684308248613799438189933859548842609106852478039610893869979643795411122524716263522370035239942926134073072447072209419753606476847720595974653848104204066882403370824815515769786238194042038449576265378819481028244496739757404785448089020026127948342823570548576586564403065552024795980264799740132432173266901650133069259755751098350749994680628496288519474196127014639750329729961738933745843403480787747438711121376622300879186449701878560472378611943802625156430804670643519078264620864683436144452238912616272365377110531214444461419471901373615293594602319784700904956994111281955451554090041665435676389958024694719561099827455473373287760353062444299080804260320130219703418193276474777159609815965997070862586840845340081395442818071139744642720842049728188594959740630639746228059833938500096076099172483955935643718735741672596374524499536517417234008300017109626233322152223476324277750864619124501570575313160787926999603296957725399255671759098808145054281424666209634751389872906085737136018594522212234564390939908921700379359752634130298848709350727044174164834044438565794021463770717964682368277372881149746807281782168398680709394760722182461589343944345709336998530697471745706400621699044939155997492928960490984499696277573234899360860440809945564089365136838136550304729029096447462873521393543223698800996176907956716541258641940439410992095210806396878571878369473770607011432921986065787070249696309374099432924250494209836870956102682451980324875383925503699254870699451082871375499808590473883788843471695790911705706945526066119829831167620114820620525231784511401179677679464668147774804767540718665402526215856653720073618260243090503908331170494268116410943184427177391645234581897581926547070116420028074534372908488742773227068663315768778057316305900839630080836872748134392898865262224973354577714346149345653929755639723404042303012183077316828021249578935223405851717294682255183721215073532447976234795419491132365761364143597606994255460074498532687002111189493953603809860966544871648703452283457542826316303900431226032125990798706460135429818131402613992394625669085834808050580962291009883147639490360663419937986800925486958713361798215918878456220628704898566072685060289908647561367785972434478498666396136184609928976310937486987506292416622635540057387893014360433297258352666533282721988405248013021516816060917753866947434626292811902670409818868234684163464053035416479016152774026183752281184981666633351805667417951907065822468944732726144240929779134855258520732169405726717595263118157523439040650258578833013711740076639903713438441974670548053718353571504754959309509185053709707476977038546339141681423289781848656819351030764041692763622383002208151161373502733194019361710546429058164190943393747364869745598683502263111994070069475925660079215615246826128743461401612866142995854978940869343509073939464498790360217423347789443840601073745514033300322801908633446643961259879758015394395463556525966589064511417565909324022612881907490878262157831272111711662308387886995367248793494588256792889930405409529560309955004998624205923636483537119548152663448454977506532354842129968770543509301842871251560323110182247855177236159421769854702374387417926451116275519394541596963749347356137537449443307169880399781695398270488476423174577093104574114702655627193200176725202229158534203513295685586741116391476434997780411920184115554071168794885877762333550606579304962924900028933886104924675055296258857529074255396210317050226973510874712105117412097303627188304308400691615887574918969624360867545699015405703001577583583897313994289603892806326293725262273499574120250362824515357209201977795681330179289356893772052433900443447421957604619751247885881341320681092313008824193041758591025374728719130090881278297104792266908255899700003517594393194222176944628614730856304094470652615511408898658770994583530713242404036443648273144628599971682708329285450160677170828808115816836372725728524115432724323276378443926845508727980800862438320440663266587455045452539259592181513353531051983513568817062931685306257457756107104536751734879300642157720144572871830044243143110294557504882881220769222727697821795946380391731455388858951075450262553199557283907546785457168315649084741742683335257624749024449283603891404472019785479447160357492345465543092339934151463431286684304455436433646632574574324843915371279829343562466083867380953942598791535730250382901885427796818998131900251644193760253976396592253881277374696584107189195370514090150252845223373199910278480752608494392635034470045789300784664706880162044256380048563492374069320124116572567417511445179878197671458911585688337877392154924501509582037229124577304584145287279373863383890396190516175713341949845307682462680632439810834579924310756934785378003047461912035593501351079112238570732406957341333822366738242243109796314851926914250766776908615784327895503890428211357414889021284680449106497813357664795643469928072973398989317465646931614766621590586200191392233070708431558066069377831721800955045919510443276584956478200276490992414927526965428325347191258271886365034418909318895357439183011589032300893207487018274226921415526086583830573731911982820473114892575761561087271066075842854641651793350131543723879764640436742442421903843178189074441153628123172917323128107238960627268675164130124639016061622278691938930144168481997520560973643676392939445937137183121724987013876754445536457336152122939673786443523899528016228579047914897868312265598389407703145577304371075702301613829413217181364758556730133353171476450052677486563688338285128854805148715445830892664090023325677863706899697943314603594612602866786208500401795116025589841407984549608053874169936837858572115435812470455031317958621981016102060760045541960275004084732480842692899937188410358543427277117555179257482983589320208275863081794253198840179394653263833560410451190355166781125084818591656876851638399996529878763402831695584746162933443697462259465208032193661353492985747403245620400227600118706663337461260641437749652745180025365895187888419992311277698403707172722746765597350591074108609566638456978656135021737341291815563051098047821345812082481265075710127412297538736425202275789947658655377781777367047282447347636552654620829049178343973037917387291393493526781623135767545949338490554815908112902743032444700311646803475826240590202276775661861111876929114322258213887700181612594345613503999504717957253892656356242606949233697813018592535718932050304754147460758291843548073775393844472277993766351136248765244272931696892457918593990371081978808267432181969094110339568974585912228029120189871777444223835380713556298668224905512582252963290581476700163583191205437912283753192372278470267005386762246928906526135670892685640442257220582008071487751400445205663667794945602700455476565368207509457293722516539830843907113634403697693650383544616705937620105479902550916038053941800671593799361041510710802804728206678006219624555498968815691275422680330254065069817167073835147967824538906918015595302103914757505770732545505908386204217379484740498626140477776504839695707556040072922889429729752450908955723619765777754113971923911174126720075234548416991318831625164549822296383484690438864372500464100032168497933539089532638661872516006305571074471894885073694211232720248649230843231655782275041332212601609239078360848573223880677520563856658353655894223300283827110051750593644570858918893880778441800352742324185514173788853901805854510265832254840268997438700413605725782886323163814091934306511500264385248342201545050081445658952987932619684508435755384533153332066432060776138487021623895204753148254746787327323174544145251267869098623057501041329911467032336479507228207857837831693513138861275994434409572644010576102326186571593811708399995545608388629488764419283961319506807079104301619694866555013660250591158916430426669359873120018498710312516807862079860852145523061214067578904065159190792756842631534075814780061587279284843432646429260229241755395813913811246237720847448722417310805018956274343005154070221942237767587871207067758541193880440796836646247499856134892384596881239053661428360065150224559387775575252154435455747274424473729251324450253340908525632230630606426702509356732231483981162650363000931075332284948117073630919967427349665479303534929438470148139277286835449917403752948788078277856038447512472321664086839479264496028488210670943352162450265775461614553661789296636628030864777819004807867811557408288980326019657291996411036914082960608757941932782906080762015679870975507552871749676543786884189983843376534590098950379111319943920006477797481073724093669798971129837353450466754712904003591707471918093912971808875085738195563919282228847265818684179477310398548266942528500107512566488697903465330828550851770652192484139241850015200349294102509288266133500849330879259829136305628511980760380932633451470536808147178781863540564862938504746298370488076811394567528812947143196645838711625165948023822077220929289503780544874798763659861820041747711672808747492854855429534164930791137200779623304788852192109994952492930304540090990044677254464517559476309172951323692608534110397105359816342585060838237581968483145220892100993207457855140350287891367126570256496580708423637064734524629918483108128742961986788134802465290324339421402032191475834375341442403085688116470561145079756877210006584022676128324466586605038595923309805762233580789124919738321275161565048094995151407925645131758267840053162818786123307475730102977848731198835832170354031042017937461257738035819396025176097592746499621090023399370565138339868418485528270168810363171980586968431184152194474022928505432543597478414694911131162428229658267681631258934735279731186954909134008691426728961173861264794233362460990313644086387603431690344118130204217946831738330330455222117608046934472515489603885340071980126085681183277767267786454738951670683553970918187597339885003652275852132832786429496326457016850743541057429214211314237305425221794052714371265096577313998926441921264629067402044779334111067247048451583574444526310998729074595615513572061563654669785704059200730694648978838568898581572123381044926629363310988676886878557305738473832983911035800226158937013416174066107426169113607722322003825399392729950373542329212658323430863399212522246541817715081888699024618204315403985264635448097078152462677402768508166783997648259711002129814559293270696679361071605498688398615907536233930897430038978507388934333832636429399738927332158016838737425458440288163533127386760660822089519454474707172027582655856575943569292837430309104515772824178620437404162422007750661048071886894715982406769353727751522884769698504255809944730437385254443216090055881322453412627401085009373505078140274537847473687264278860908313744071715454826447341936433762108879254468792748172633017413707861968729403190573120907050507953970964078417094580811081188383362242646538672584904328481323337567871092974631983254165056864352341805698358686632054920264804254346365580817536808565551354908164974369691803950438265816510433021347407541977145917330360239393863113920048805419377748650029477559495881493384363898539218136954631928043787496974665077919349006442242704202375214074793185966865598483726284316414594383787492514561166165192726183875354749201836318793798949975125830904782480289685591898815308941064233918225701914429870096387812376661229644178091205569395630054814664466662754787168456198595894313572474365599711756327803864597884001759222343062943121548823043842778773082098511374687819348896068755824047639409648883814070095133811223995389828025602314220899706208685867981779467365231338242980776180551484537735228178458719800333068567777614321210283995936575341649929314596068792260464905247351659999798766638227308514231361748256232717860365762807268863813181162871578417075157857062106039677715712838750618295392833949882419622642134536826466646183054666503172888406933581007485110617027651142996431523357466476224129333744086835178605620083171355175227069265556563679391235641921986272234493339674416503486845721447617391660076971950109492896203687085191158924931439993307441903599402229193759273688112919143865761595965607989758762956609813664519420910439446420928377654981736050607217046333145591349580105533452064735499624518671125838064493079846562070009649634144110694101824630954472654378061220858275864910744497328772471176994575599264395366086845849692936525863717925592209509890189494015496751246304520319765336621308286470559286767963583026282819141300528560538155159741947412587235788111623710175691382778965488225813094396709549310538599620646527974862010498829065892306360172958630623436019746702508359691726003143993274795861466001929802469332145446791202596053889375510609310848599373052434932859725040605372898531457574311564439967340030199339464606011895424329451772144924155496309286237814581709400041772391775687598273581286665554676643780283734036931429919328075612201140539161822107811207506518608285497180797603532476037369225687498211712831639435799059941642833271060623292712269459370864501087693350659879124965296432830518997815110969059056540217371632735906096193746657129575321088580255356453903261890228547043408038395621216439231432558179309821792100870657449260273419126583067665454989988794773556736376308121613636253114078555271719686883525119452823079050962281635534028167507504276828509710655597613267248597519459378127627468366979706070160051264382754322537081262393903728944370090297035778288490252775946369266077080001899169284413122616722958373175078843498405071163812929282900497894700297468195585961416627046149852770228618330292839665771418028594179981054092485094939268539622542945948793218334212133631635081278661297536634442118722066096995682197851887886327329315363014110042262786452471217358691076312239244415821473376596142412168862699406274580649021329569064136051939139763223178812493664382193074475357529802131097913784089253025314506617791282687803069125701553390758673985594262414735955757014720398397568831207416253877438233462843175986062156471933579277759558993019716664852991067932950783656827390422283365247227065608651063680062592759683601494872380492127440803395229662395634477231507545488415823964227390644815623615394905647357921526689572442744528080049429146684498791657825036347605084018793122121863996412044871814101947317942824652609304515321058723815865492356396861680894359276212702394298158788311818814876612787229439633715982701401398494367729901809821463164647605291451798255519101575000328985214949436041837943297780820641807397676766491738570542182860585230132434854077911214058523325160267954522903398996232728969779297998614898219018696761195595954383386261676168420746379249998282107607931437859531834610862425364835947286909666621907966424334890488756235037934713239288895960912730526027228947493056008326227488575781381973154419970861900198028156273586106888972691555961313089654665630625217088555751328018187392208765385155988465165563924878273174954589869206779154571517094477472528187441951778641738439716707335549435171780420160884943027527007212557666981711525949739304653799164308362421368090003754300962973748622498730573333432698879269601543703133263467352231825492436055486211991895221330101664057614632825321960115394519333947155750759069046231618811923157857474121364767805371645324341245593731676339209379266383496580071833040484204543180150968092449820851609863898929050506081809643924070094700750043046444890958098636685957320452295436566184805353259064313862981208202064196994876003984143441126936748643679231741636377030033193811172093153722531440396230805675932011737270430559011116746166312761495738860335566728380740545390912677817706805844870988486246577496889253459139967726440721547655815461979573473291245344321623172544665010357211582068395990111179454517359277756628857899012162211696530568204813987261754989288359969684423453421456361691175205324183184837666731957034754734020605517110731291084622691232879590519041680632402348354526875116207239381798928439766799813556250380188099502373317859727552948616002606919545299565269069447786527107202628879452464079882439743092649210623002339565357477620242131153339723480894470264735123020291070552596685211716991631869566281945260497385716536250863790214061724692856500733672851184639327015840756940202683312904695489891920232161781518734679638290209927440945334246692258058779279432352802130081013160621928369743800964245542036974536112969290298067841452225027845124063515344065637868233054274173509428925411344873852970989014690689993868435886761097273981136116525774868977095053997433668969328964771977875348826183051052436729040698214166339773052775821185231555352885227205179631035165887058987189902314774458762957705708697251301978569016787042577167781383266306372249595951614967726649798523249704981723355809450582729965807423192749684035490768617561140946135503708470691760025205225655329002368301330207802223719715837525155446423943572543787988532800421411436512495129176431146884633019850699352650096029256901075289224317988521497775047125908713980599396636990012379725074991711216825789085041565289487767199148468034719579247453480334685729390057553427229166641853657487490644928831122366272558266120263226379875482360584540961919998073288587487702125900529059455652171501308183660953099556986920010952737490335994374694080556693251339805702520190334608132789115905529466151874681683744536418694507556488404565776283136763245947481104717219665843885528461765690715603037665168399554002506423745552897347456069905882487551334109194224315384399108670648208902075094959606007597949324889100265044765713592738883787317975759321103626543663514522447604942328568023877813494219238476027400156477702664932233861080534502442793856276253619068146520020356084405263171598449037140572188158262610529429876870797671114758917644466104288428182960567401206133999096900662579905902990554079358494351382465721864190823316795221484011984180276526399982850988864411868549536504275464335131599016916094979567721056041856917594354262454626944036667323752235295707463604900531242593454003792884991531099003418354768642236439618999170805030492888811455900620251199847544507506227187708511277623224915458183273131699936695077516589339991086342742762450993043087348631150282194898245562005557039265268441747809593184693514437736356178803160375648193592782652906125507311095318543992335317722367887262378476929402749256881583782637679233646219329619527659578915858325854339156631604141397892608396356274473275458212487111731054240265188264465179569991070103150098026924995575825806012015370129574922972892813403763409738422186970739885422756322041514164964981875184702595524305712777716462494328864498165333753234964912257173295037316104483227808604124438052997381419230442418403111188078435865405626536841524683801209639525916387675931829787543682480929468253450842144428924798295307417499697562544859188618305871319623398039482851857589979299860152997012537724189149887405061076637990079782286534718600194175418958640810814344598463420511106423538956910249111608692302698650770269602519777035569620135506432434224205016877073355385681579938568738854979354449126494383392565639480864843925691210714591082998607066202734877392151703034297806218884728550871189227041802376178740958963331365316686676721313729098304479507246096583799233361618273403032496520360154670894660926001274663931369020212388249824197267655199412962804869754764944175698216754713147224016229001848380579633290840605129667869610216158992709426671965115030287785618843863758046466129239946920552503188767268601943374692458424057943830242779990309945696834031826401379076037248145002846300086638839804955317179954030500280718919228033260659922825810637145654958298314757754415022439844638015976713138184948177847854228028057960981726024577326351841512964364580087505371671262964913616109941739606802647046037411493440263456925712650335119330487438126870275580071309766981377537959954585444480029374814389662705494840577239969438886920901078102292842974854193577116371336241361166665763377077559737282897606903332647951878274616515758683109307776613446022859578114818165272036910506150108232340470262780418278980979672764558708463993361694618904341087689707770401145066578305756998899971385450350354425187081105883133095479945858622352025383818906559793840801340910921978220097346901104178625431581727190263766833518806122736448474966988864324532749413374384340847056141608700414787919113479947030029679974649103647915379496549538684983446537674406620014387292376095643363090134786409353891874930642085392220292576973543869896532506599005493310246282964529915525412074420019706079125502055251517292417715370556670451406495838405567189331788214228271117330513875289811842335466271507628597760845949392148483437182669867951197956896482558330034463328253631258663866663498267779661536366987509458597748594033089098625687842004080775975233979349264287495058849532104859932090267608216915164983406032741757598484207897625129842316871528876691592182169249640257861954500895695754203117463409163074307913595255963280737977247401900477829057927730122609898307962461341138208757449791698840130970323869509609809579183145199694208204718788501376671852500145934331109686487272551383034377159476317698286840639188752995012559513403417952062110753191564972291128222987893708809913661307754661949382220536541112862727779401508056958689638318538001748725676485526061218654205319877834797382001772896973223219760670044848569708812993185756051526025566220455381006878669141128795008732419271168918303735312784537094183814386897572311511238968629003643578954156725412065675105137433943128376447098918759664151150342514499545115282627842394497972168480279529362761107237962728829041571433847566349838512218495942114159068056348641292112435396504168702498209927328285366204997635907449207074936267631510437281999809252551075997089590681979901948751003704570120847987813996215534160524230549257622236733486284943471512752873819864002145149429096371091450312029658198622907466429642616950947048017596474250247383361893149569546548294122512696660722609252982451052964290467046174498630944851196376838710680897135824215525938205054879564753672392933125846374802387935841440569832607171495802219126576125662689563338749478675047086642388253376354784050238729240955073513557289407101982880850114945052671338829338352374695996200946875216792424662501462057433952016156780352842826052597275912317868609944230801747993610665995460403180763263967599072031665343584874749720685210139898233660863818844319279358528264701141929342302909665811773099899013501257727746765347151448715582940748524718805021940342354870259839977396503193427465899967615647903997211968940760906882392185533206930953637773750786617980505136568298551006745271397447050649456651574275504031598966154308131272893867727546654815066452849082779166051094533978692948741896887388828228070796721395971615388964211865857207567752673741570646283920335970952905633817514371440650136592521369320652082413462290472070638495883705539075391587457658639800423795115680631700171680924048284591858872015756977132710416877586473545989353573296924182676643136507823506828248632597349623473022920377426066398625364408348789138760558828055958670864964010712131155529667042885621748389172855456862575576260693118199161996073617258346468623312124517724678631530804813374336776622186501439050097657093622524312635628742087204956115520703396328724872512824328653477423349728312885240095796885559903815705303228231870570192495964231766390121410718048171137656579584661599471610757966504671599452387523711545216063743978200228604798245002424015710110538571261307918174288438586411110019962937022120985198482708144442711747183374313915318436641140186752233931522105448647039485155032149963508185200928127505463354513572617997932733377046477237997780264112740090532231854865586598215649776836607005386589591271249312029033644233537323900829040684206716827889834362096007953623813519967370059456093330730447212070925845584373187835238407205805714678156713353441157797933005549908355970959115277128597782823042976796734133622289239021740719521851224822390501401683653288063039665294105584533545611992796188181326986105110661476391002734304363764014033164396941624777188056199855996129342634141750629131223239122331447755518737761261650624459755333948384620182824194535535414388504469534814812468079482413455526692424163603525154611291892590776157020058852669893106567711234313367541969394273062353062512140236263933096672659362148908850516361556910800275109778734354287828642065758096857199287423904257864787524494263845728803658872592401758595470026838905002015587286845855161305810231432284664426800977127797541858287172549422220885107102353780930786336328439474814332773955113299387915008110106474181308618322057177124356363133335191266756154891195661613366898234670506630472836431268119524508508800580201085583526357201694562659623867240039280929527829954466911161505401954324193232250129499364246880732438888523830211739886278098981690150474934770208855182616103729007227089636031077489100976906118042196981936889998296535324786162828663435621439116230165426951388686003475314895166009582179148372828291828405455167206047471309618033438776556525676131280502213852485180612770079074097701266745735423426146706686513377920781250055402522413952612343167242333680098156661114839292862639217343374646998683542277147722897025992486280017454398653208273351690834209498228175158766066930226198923015747219299692809876844799905780946521301740458046303391693731702842952729773992064285728966324516435035395055116396282333169651113942913418403030555800901242335439880431107402214340818396833105471192888906375001201672295544854591930677478083227325020056319231745796677342303510398005823691337614237303680431341746269899852363216393866345791951023752568790643156106009807820877674547131997863110722050558187822162130507919828039091706329777588351700136574988056457480923832266260465547610672709824363204334623400027340636766720259312006003247389870342974287449620523687575204997101737875044075523844548980161982667045128758160982789451392968564301090345788813936223789330302635298200098247738979802529116140024405573295941019578688194860632566257355264522774863243221152519161955316510088829171011600816572269982226051531721338726949880270194294794560252173913591856509649105239015709674611499037517065375554312450834307707317472388049260153415582095367204730678722511300477997420008280499416422397565551536707484714203739696405866822841846198533822860756742885564764444303993242957261068342519555762393263419841669966377924140210775350116208594056605505416057572202704560358820989538829293574372275189532244856110479259461919780902816230684655544090463542375403285927263998679008586842697087332155597268477160082040835650314356796634765376268182672560359207384735482368975928552970443075181691710987194736981217487539220134403279023229120166821184498479006486918014964612883704050964473891764759158101586804428845691758804174555165151048278052318221858397117773342776430671122140977726389413538099184682688335278228433925461800165891204575753764879959010262617094290547276717742776763346204176767325489919205280703849795335507364962522709826436609227067040182360160926823707468680840560063919492596582177232064508613811167343335848851820342871610072239552488805320180673637657916684243503363578326060430299190757825641718290647291741672601099990133864897271869853955229111357608150682759762922719305203150459083915551008038156446793591071569699212750828531292967424750139075634901601658401459238275477723809104271279505208752516999697008194726869958007309488984151183441477903619714329978916548821548837075806208025618807966681091768010081117637545320782825014325418204329745013491755224427018703802573026363114968646156692179594225434208968751230554297420816132182025608393151740498526699266540185094419871826393377293154292954902680543178970134615530728768305463350488999040784861582575904051747470438960019949100498946528000903069034801605278442687788225669371556092902034156431252260169446462901938713546334892650395963055699348699368151638220049242867735715016453863743595765503966807123607997351367230731400430238192387458986188837535498914228390860297612905582972324907422274559850726290298863827822032335890171737053148138335144799069287064199098528983176096903089352654178605604142076735249470493928309146316149496442846471884447890850068770032298518664712259199009421936625985893008372905781983194280738476880801497168299187050610423729776663842283961894695471717974876063731566759062234156158327806243432670376689043051263386932677077496472856055423762721183088149661745233448573669157575891407913096378149493213010390391681086850729454322340601771732336343953537264666193969993017074247374595022958533421706421270291023298836332753511649241725532041383196022988655265388401686607301306568545879757219977569842957242782293012824067206091056306402515730826516946621225824396722026083736510457495377387809508744244713308710895898282307999186213744004917013571690944033663822209890346054487857951568152473913436509294456075098519743605900304425022424115103129665037640902719335131832062493782997351621696901669323049531357365096591583715673097915047664735556614867092367144542635844600599629665186288395882732388303647732346168340390336389674928623228235453902114074727140423994848813661335800367857200750502929129869840655088295784982939838955058504517608155170331986774456866894753646864496787681242146789269481840420388593446805397371955348927694499469264118834391753808847068881837005604759758068589122500765913569610469200054402983327604720199986496538616274357688423971656580707429485335941228902937724407113724970181231619796368848136919124334223148914497207871678915116137424387121625658215506542519749348867714569316778468288260598745751901444155489200388850952807167454149203090507545817168705704560616553858101529438423195836901509318750564275029233892457397179357104670711832532435334668328385002355690693500927607469292079257595610139126068177703229165763334553284224516519710449973951372095738477429000653923844570541789113277174028559601952501126938655834169176609603040731038279468525195279281754801659235256596685223709031602462101802567322934355163849338095855622880207427866440042202850281034708640755638167134481543582211426839901589915659878715857198744510559683966307768603479318007875606612299199980927781636595517311185819177763965613323406217481538625037270794113167054053831524397835020884784256741054107156849208568814535342177668395684535785148040381033049080661372099359331579630669472607807300847022290639996034132903373407300927700876195336781903409875349865463501348582928220226698286790815510217549984844161930651769396383434075201927117910215473849344878592544745748842115716059167559409995367749315960327394426949607572810890421626988819808544305734884829761403838450876953767552499519154002559205537504564819701358029907921634513216697453554156324336954003995948405443844678339080837877130341270964915718720273137650652077499404776145865235382641697951000867867397672945615270446617005232362997062166065477209597522402435634615350795518569305855721829340163400271229221612769358755849941137554059124677400304969281829967455257633376123570946016120689968116770534534375021851172880856790294155916561570736485431242752906827601654589984947665966307541376011607451692214332315548231993380468538933274975152550311984570547828659317356720035267824863062262655754199637028669149511202514051474347489008793004555613637702346204531230869682411721779518857322229701891240988986330970782948080870939077700000976966785638292327136253321492806135850320181991293864006266132250625813730722312893387800004321182833477373581099143591278621598961851127757823536554020663958425147627794177100127667290198446399828401835666720651157780240226070371919820015327801649638289362084949045628989817455216541896228366958090550677739066876082806160443483828203500738557051420363455063934226706009103300088198470387271690078397458862147789953694048567075411207279638604346858040744354438803467930715286727844177073270193405091575862221534136606807267253148010337294153545819882007337488744886066349305183258898222178500582275584112747774922823534283358887595285315939516591020255944554409830245324495330067597680728464547138810879906030071089011448442590285779795395477085616501417847939921551122862759807913387933006602471527573557591074238087639628825567861949366758377973030672428981051130407960212267579269367610273590873855370187644797671517055728041183444013339911479616214502750688616813284614357373640248827063847051524474496369936184044101956559036181657077310509920403775918763854830111734398864168763199582166095870218285492222829839763325053110644955763449891312628149688757720581501144007618616163437216421714276530021886587252853598430270574798166115135809714389169288958283577211476169526285744554337255440660413190768317893626293662297856910645756174186388791930004703250066362777516098549573468240048854843063773374778075884272755849671561396599123887451162707610732150833308350766476708661619647403768137417331135815459418490156286135658812305382478640645817294723074304952896281056614454920002721769663831059257212931633921785406012002467696858411662007092989394864374539375122882631541707192903958999539829412590325015362109554449028697986369560206424584063847183807496003086155222766073395033131524526692239404718761649843039882587161848245193028735226761546674384323676747952157737398206652042821006553178188099646872087798167826780158005529548345786038507673393892672616230352765073270523779827555357228466548210297776132471619245009494434876561380642417028638057120870962786425294931547740654191482320743177728172694574331206694143305230586482001855432042613146199844466676245005881376587011173513921200891068245617400032919438027736643159701100467256784459582997602180040368478911446745104787094830185659730060931286956750039474617490578810776856987954029290198264219110819785487786086540555716688197805386824690143376102909417729920201703144894358333790147413513692267154519666255851687157478471654347575581819792124242928716971794164766493527454142107723606169501435734214111273288976408627585542771326288938355467396688232626544772646017356160471405454090773190454219663249768539482647727537100644040958158141204767243915334109954166169757125828573542980465185555042588991737756487526809259276375175619651275911728518369209800854436712816634271723708306964313127071173044327240204861393788367812045586997539165009825337135831201864474693865721401723664396909053602262729082041019942093323306697453881145573477684720271968212593912698229406654546754811080046395520726409196209086867761490350691306326280860420101580074737492652083040097755965797885588123719198479347801032025342348583977483033181835923224403282687570072220432962013224151870144805710107690981456724728480387012370414095242976166483808705746910227726357799715182378784997599418499995189677627108196100253107184770991200750818912297475981429305318476424000982390426930037807498870434657446272010783324487425326276891735466848401314176804313158374065674031408730148535862467909800318591337220843590636678172150763555630865075692946782435769374818077037240763271459557615909575396549323936535937179925339197752177907926796613160128084619417033630692641238127758512600605623114562982751308048364448877661822775231077082455149394296074172853577403086859889894124323756943712163675714690600732180645336622886287342704173032568361243307015424724021263764860361753661465804090553340709026371553745701696348783397235226493429315627477865510420195725192818407248720441546513371061983860646726276912772759695715591138281679237089520300248836075436220314784657327808791771350960042431644801347725742912011039506427130329142671252876379070432860450939084178603857445505388776832164807913634073717910470150070075928299831994268823779549752706537783178037244568161644128988528938188854127338975777527438116352882843961901103973102750945130641518563007560058698888031707923055198204680216102743346078791278003980796696908246019376360056760118881389602137620187966276933816379434115560094327975752456801477945306180511006702274060116285636950029363085771963829221082691215916435369789836808203534435331878263669409221810829169247660223764469441107715225766470565315875150372599366555828315157902841948533140950187295005235504444284689949544876092945083907179298070390810789661300261627862492066587456066518609337251237068244349096524145171066132961298217378770333368379972906168931890180590456134733052578400890631832328919703122690311863702518325839206862889476079201067224313685550806338486372858861028111780660605681964926190560539470404321661478851646832673089962390508440535511722454825286873573135272214587276831978365707728987553699742133569224025908451005391479800294386533334010841953428479254468928562609369414434166151357305012005761259968337018944903085065040702693982342811943892306212652385051347827932087617205403824623893088649412388434492043242935163773348600895488083948076978544409019409875701487143104495724639907206364952909645494811954643634708771896068245662498692230830966375465832994035673835896607015047148557570354949907281523679845715793052685793684487009998882149937153215324917658117069233653992684666758961548645607859131691883631972352493937715824486655889933287744014640602004702352605883166426396540345881030254673130773657956413397243222554547024099061446413485626796471815537765056017281233235077497675603695846979909055947808508831252313829091774434537471763578540823983964230523027006419940452743360006174408884878018403440032740189679603728214469074893654231330255989000561535013409437574458093132009916189226617603229345655828372410895338651825106610610852795672210482894588457052896060220553185131226782880983297637624326901771076710571156496830060502559294528012033293446190435160846169525680638082018506693439077087027056497031492681595728427772447079650781994740778899665203408090470929420401028711821697212215261698194896379179475154057842020491699052105227680492223177961984908274969919984068674548839548859987275488203018321583376609170330857698248747600127237687892704926547950851679049983731829455984406599524273941382295413042186655244816706715677971371741345253650305122145046718377458036982189327016514187454030226686486327438870296071930756948907230367091315477393240200364384614352743431453668877229156720226696095945562434473055622152567628059903060764313996550928565971685752853251896544769859953819613478133714207659572018133338602517300064114194038981688125857109638092613698368502516097648791419232591644660682527383559913088111397708660519769253247340856732263712095435682833418999834958381654987644099808556291817832423972365966804500948530132346806786707443715153311432469628606936781968239617125812326656264988706865932360470848928017607692354436404127839900202436343398896444559057073761676725392356801388582234431755121701581609333574846861753821237790345262803837877305029301238320280909805942407480081466451065546084539572870688867288732442784291111498638031315830379039366454805669621030987340673818482814221652502299901399616750864395778572510489200291549760653594097280771088048631012629682548372024952151744408290485932985399993323283702497255718260468023312235012795607761686161292775904053137188788274709010955856670587677623280630440163040030487304758108057573257114085891497289179537150370915839744429210459620090087727787866044746451394819708669688891022278831235774442965042453373233843356087014166434735328988153424551679908631699073744655056217577012162366240058641267422614404550011633456266084187207888585834576312811172616669606481232856131518123435811796689446944334677015224916469967619861913440519619076845987066550837483484534574517954950493787531466869540297279996442355507104373083168748102952982693126519998984715087879022391335488783600659860404461945411448295696835117695304289263084912417111608765747111731655797879089628075984281049578029845634426614695038900463912109303789004833589057322251237972686001404123446723205740878997086215256808570966853399117256462898519269223179897705356641014661404686156817731716857113702718362444191229538277015952904620738362920087182081567083781407172512062042103991835058881399081413365522727607629785940549079217862482973014317288180105462577261403855247749798358125528779790503698246696525693464500056412904068056204687023592994489036139644807562758129056873373403985655921267140298649482778587704734894686534606927263192452993753357844726110437986842927218807253858914665111148230323392204028242642834046126199128639661187748681104079348024588382229141473256810889392271796261555830306093016517938017170687358272491798968844810616251474419901656470352117627414744317605220960254241093979989374104863641394304999647805397518902579864814455028386988449956814213984220905178439487473139782229334996330555881665221858306393757677482893103419990979438786249560391490150412533731615907593038763585000390274637816056807884582655265723442345472981837381782015066507216789763047441100361329077227471249554843428700558425535301444038719409791774747719224914997051468150537986610597103465787848335039579667598775338765235772366991336886645484722730514115521286603001933978438826273711551533462898256701508433248229537507187127544764674423783846285530256479130208906433279870766328842210440159804784440936449295479713671151770237382165706059939478280890946689855356657306839917749175336103996631107530254958170601292706310790131583069545397136577675526540862904001853325195715354578736959282122284228284375417736563195894028124540405799150046448674574210655816910056200401687863871260752783173953910535655246951117019603452594700407607582804877388021375968261995794499638354278889233150827862343419982559479845307736381965726257176899135536426449777860067864763597972570068305738347872238992288751827294154500283471156803131082735557550663544514469929118916708007603467727272903908949844748223185888567664662775975831457976267744527122164677982127245544912543219805537266842433369442909841208092635316947384529536990943686781337060034740574983344481864434203838032158577589872268804255920094135917161262274858034759356157946718534577848453836586262978463915435584902120837985864356621729978762534400015218730850816752423260892591474429148154986839922986288903962601710752899351991716181859170744748801450730709118869038831068319223162064800731700314928057685170188727490747159739181192360040021920660386096408115427274127748779393774302310860672442600586800917342421762477305878232097445603569231815980643768429813184332744702023118603095663526951695257744549064899815123795551373625692153755607497195573942432149209091538685536043833125947580209241931284270450096780548722582788238218159464963225299131230848750363960980453390332696026344891976124070726261871345362649612482784822368500004809941006652925449117411603542101901541754575729231539160007584566079273399062800248258010885378043004846225868913730028159380137268818635634881810886676551493283326117488553075230420550555637058057998572822187435945790040987986904113086399775142771702439041182343498883025380483273833150029729521495226855674500018032729622014482899204560440752737274142343624194874507475001303103511382921378693541685031943692429318678734929310660433717724683075895018655533774884921174156000242702609610940680834033037941285504675390828933982829737726318569105153391082875732980632469021176775344566914668332551958625489900161810104150217330122826005218222520353563366135424725246462344622042164602872375782294910893494170945708153601997326446984932592450705206238987288538043681505300318489559375236093916809035710385177496823433396778755349865029706126899672062043168953780184281329061184442409685281859012353452259974071734966040652710523632844250524191644228446776754755238278118672028843240020971106855220509629563968197855181733520375924974886357967026554983974613162617289530824303059936739848494494754280907579727384829094335402289623922330044265757207288512044703643171529325391418617474306778103718360473460050037171821384261659938871552724494742139107773468362919503457309295336852598511567982565808207502510101400423165979469274717782956439230401419843359224983548049329767583437967756954042172944906846323063093679964588388691652775557359387237659975831105049533470439201572778275544637357636356795698571798775073031594683471415313435520528309100996111448800378485706136735601769385587933037670316591142604078559403035122016735033102708490756141961569897430123211728030446919680268540575392819543578387977602634952487637886329807681699237901528435464679555843957178024789663416905802726035642792508349017086716369279769206956929980637351291039270464615079525538023602278632379953733088324747755716247360962186140907568779790897321525148786341289261340710849630849989678219292595270070195403479779790985215312144432750989334333751469965267142532460213242072832080580873153359711402641347480561396549755721942826846355372853028027113814291817907930827883676379276375106090996529967347356677399512452767917557001763800766597679986291642183623769790249414423422722664820271900621367437798723521678110136639170813748044371606514863763244892119766450758269282201827486993012311962932732185697603024175960409942665632014835888680162845954237692989917429702421749110335179814180866723328411411537808373137373046734810255684547689761088015433345549654192674747013464012212489148267351812331873850830131098160946486805427687695701602862996015094757260432529666728799887759977120296247713133142293615939213372247715661752226481587421548823173875597862636426042107196625281466333136057184679873401444922301168146124282525433563890679812202970960928453984465961682033694566151049975734130351894644625321878880808666829642985663584577078014873869474029812691945939831737105820148770910516740254991646731033184059541067314940259046381258887928060002405333763104802406343658176645302733017315860991178856428580842461722768647996121498622217205673867286970625727984575775620101546275482028193971881409393346136575162351715999564400641771613294512438877237111763688798362446587444455870982596466025281460852367306121134971753325002033611191667722889816462254162853820167776407298721509671863028916314100384905915132613628212603873434791661176684591666524311490097144626353852175395094897877840982446837129155834689755442757716600416754619913444786788116241473755146270924301942994410536308492997518504703666452895255474838116324900961889158549298922204835654898555351226592896095765405189073894004271481297054825382376077642786187255468276598782416277348944820658335063568215443764688130396577835578665967207791421391185517943855594364949432472087983487318388806501707490696511416671971116790480905677384688974568649065771192216511022982760534384379514919679226760667019534705417919141099884004069540766388544497997400557727456581313885366405962081989924927686489896729033872633999048791833549677202766506475264664017568712553965265934256694472589091652285934880288430018757985083366220933916627609335787624605815502443342746366481398886453982193145294689647995833072378658156205706588439686295811445952112073651198779942968264420507876356659596083392037694664990445009199870539774339358104352747369073684453392080962430998521832843146237335441248291275063271095982207073310688172080414221881024385198112040118588558416794051485527290237472037392533508484255930807872171608958541521226920525027804702752616259879575482668761770877079785512246511826458577324736571560714054168593002592124170706848589488124124330664897589298240305915407529371470848501065997604715097714168970499057904851990332074960892027385792793577994133647701344521732582705420273868682501143270091371270039475018162130768196615425371954373493922841726869206839300903346928176054746163244943952605829456451605567735685340763181451389577548892175232170603432685022539569975277716356167507654142532933742961527376466130222211969806692797439933181702956751331306597671777146273837022829455875872755021086863327025911525988398507731736227683626832493856268399007671368017251531866750313910844992774116592638285388403900641553917206457392602405225386420518689077591857371133356210660539542318519766899127493154148895103450474784619603460680975572379668262767233606437600089679040048509378126167128456792852798513759077517341551081315228149462519252720441743913912724060370644859482561269102033386725891697298339877851408591626293373446139690628637623494086777252947115692034307796916654087007002790170423888489588028057581003068973823564864221376158169871283948119152354470860447848163759670012997615639222952814964300901110644583394415409626201789469858043845913784327386092981855669327160044983237439354920069441337484143793006989003458837877284773529055197367041204791159412351978763309739792563882207782810238335807921438421954561862401892762388631030091797875368584491905622004008991741601668116827504146828411248699848840494741381949728824791554342818819135734407456001012724405715811720530002418080362023342249424506382170788492213902696551362482224578739625888135002954998712769370404806224944232571460262596273848248778677261412328892378354999153956008974657341543175438981663637686818595983864661445002064042082598255185392139512927389375259003798445529388143191758109360766396904758510139155411581997446629572423452020299296675586890864743796461357835672362174975446713321671203682044642499049317546739463053377378833955180217156170259558256148272924976482889405977870430524717544344407811037665382396917251486059897317822924900170431391254565854790095765884549592036835116901050829204627496225169569353391539901569052467502702070230687444710571295039580553893060981111485421561427458514852138945835656023285460549052764111164924248506256604151416463507670730930343574192611877166755021664196225322246311704978812533184774151595620182524232944671907326546155576448633621653529834833272062808810316039935887168036249207225500588003625033904975893251773286356476465757765358974205665044393138943588719806090783941671471303987169943016873139409761790643283253552895373172661476428214794537800037921576888678008719857960475564597850940723663260899705337437962854587720688037061313359133215712030611101819291043216413463307241964362673443839521228673532002533958540926067952892054272775741460186038911181754640883823271174174866698163447638499971137044387203604745096758781361128082421275793635034409341793218746272945801559542936329041328684317820377162301680797721915885568580729947459064679213488225354475125203289515591947367637621800073085615011114783946251936235507340339666610414486301141265504479486828588804336789424887478941614027030321302628681637242073821472542834352307728115152742314820196086359828470553983125614940130923859691267000878286369759222778203994462474437461059528033673855193562835344997302979210831006555918807759417516818395072558473004590100326220181984768144037874281723286060672490566563344972639265497434570031323529740110707405624876366221153989207315357307974627515041370447491777098865495835658572369769829438537774593558327885799235026379502062130396988136000945682623371373926606179606485068987977478545357350839520322844629507265645549868537845004219334862477172942484357153855407740774272010683252647326798876188490878784410698980096680427532189973355789928111021906306921835126746525237596413094167510326719614712443694738736853758731455716217397571043000426255794993166454138936897972153904919193783960792131291012164169306837589236288619631109753215619712188045314188820820414901474682274285446023325086207232088412926541035838002776106556304998643339741393135118417780207259850386611099380292131252540848072222777585339498403744812913062827429415941026358816757032471463847824615314077456288460701970897789352667307299195710985363987716908697644383476702256906517584299832910940999903174664023376183350440878488745748491787874048382536791388275742967605367048226019201298696748148956031514266649456344902600299161590773636791531886969472827070873344508252512544023780722012056462907521560005738256380185486617061540097922347045027242037074203622005756305198371301664252620650578015347024283559929395962731929125948313054079471209352342712194627271292789485680014548912880167304408318718791152804709178581859155878334756685780770875407664367859666455031067625505215333265190837839763048568253371453586719727808914623285962121612132147965824652386885609666943080142766907947431075463833017969398630086657072915620532024738773633510474888428244373005201507274869514450818426414071196000812243232444199043467016461091082770456436463905480841585958174727444967552024356254111770852125248235201989407344263106607483425051550457551438005257858320467283942016073335145468531533195126379648898976694881953260781671307766169945793785250283484513898197166483550580957891958140845573131917909745003560306573672801231662588030123276625881144588603294187160001512472957386897126053985301659867951505641445310611990427589332676826099571535174129946874742437952704110178457915041579091895368786132943791371765323808608676879541856547152556944328353591608535819031396203617722525913112718811691019363796998172762033852125215673641471521699401247740653187807609556118043173429502769701362182774954200611298932546186501278197590247277420093507431403619698070400953636845161955330776025425589732122454534776285823617127263747933199178582065393066288911116749090682990437020896549686426309451566019680105823515701287809347319146014807645573376427060943867886667584131939547786939638978245386726018752171736186240536098408533288740093335234176449317727624283675621486800589962391369039841817666357415521064761264760605085625524711422809583332391674366621706130531441601921248199612819762803745931453254206191339159214755892011227774928213919251914675775693624063808127892921747514760968476588664461888661251963530766460299198002333109835995385025845378619679128281414867432263171586056192616572541715767282041210562654089973354597939484451676692543793620595923447449783015805426346030578658066065949448799506291260465809757359643081710212039763858246921234263810605147671709138473967102743804782258566342563142486916743175043887721538477295774838115503566196407186985076547638856211148797419982129631039570785549278654677766371662051957589258898069273033165574280672563764908599267265139515349038591953537072401046441845578528587479602694365860350246061840248354001872239499899521918054543164067250918268026922391482760615220989773395954192829394039969618561034960766173327910655219542256558851156113659057690170260949076285063718265792052640178041063231548453772899925585595587471347488234655889887453521575502502994728132727583190796204474395863278204645041007301201131233104380573810068985353663421502820543286763081907416345029507385348822212757953629308208706908063303898572248486877559862579114941828672454208427114105307280194764490261479115696791569497914093417383930985680222941689176898937473995095273433433295574775119223299180523506445130719502852569964474764688475230560173705064845446907751126036418217669631183788580425241125265501177415007448636023000342614874475077749073652129238474617276381082179056512419845447881654283020493661498015081368319239703551320199856977447579418369922846083910003933200077526557594113929755856251587920309297060221421796717123048080365865638839334586052971032282960786487513517097381306582517681227820327685762846673260717908224463161137663166533652433272256410166500961387895538685035790683776457582373916186517355675016366801686539206888426625242099336392592246784759325078655668141535587535458535134914919815128047558101558372435800786219226525545152244549084227592986810501845445298883473298181035156778844605916314979487319679442228138409760321503756095032861990732649409436981867465243418627607257541781815688004366738809104499142531307514994580546914558560489629806860275916440541256956863623412013942595210784476724471475914329411049674343384322529025483566785530209567651820561992501611370574011526916121460551370085776505466474626637735962260456104107709325966848297729204745353126040037476388423625437465205425230281762324871794511682663374915359769394629335768931235208509262225224052852280809246849901402636302922096708445568084440452030650868317942854635780973698236719452440377135383765152302943983282080237492306061658804373720794973928820146422917531531742887820203074087823801801645149052075218176923849791692723386076738096461243573628635121216244793462111266742030367549613900427801084686554787245010156237075921875771455186226216282822102546879159625182901832996809412011678114989310101534625157533833181299585545582956417640575503066342596267328517290702906043517522779060614063639602114116726839789207977539024987166947804654595099878235047026614726177551058760648848623349099539801775792840152787214541303105416934451552968959534880687648417377347064344764401197690635671933510721169631972090767162332791598687506580867513227228742493397587557211281054275053416935288604528407855981858122573940465700248217887745075218250524597002633090545234596263658294151375885129602140758521730939287922149664996986041876599898489449224346990681411625291458848632128312251417892179409707029531044722692619560579368529493170716943124216481354036574726293730420546997427351350598271099255097638568800977188032810948263920802049019629900013911002570716378667858647339104849000069428433944863331022985529206514250174414958040001490003134307337170667209251964016060934185447394326949102215084501266511550075826329944908355337907109997586709752163471211061192211488708675732345571543201307745498182849424124788934799587210157903273564712526735931700578816965151270765990999843798396862800703192375622944231761920635677829943045271048228238417971084936849724202791124938545304000992889158246784561345525692887462422643710164023967080393360328354587438268981028594865867832816863757346031226861566919944061452697824903981082723598170429420992147399319145330611480449678543300421610970612362767510957032988195538166447699055738178029167266906387548202648202880823977246906217409147304502913823056555874518401184354290225233112381832316576770269670115515538512277470439470374845516309993773145393220536909447486968375430292671075160699584708390188570229985833655954478838985848456313608812349208771888915715474431388344470458471238274147906979463287082439501573611361796401334260922030055372977110546149523008693530750421487519720000429613436412199079372616269446134340936299884332868555451645587880561338572798961966593679007954719989979239814533084374944443984096486094047735245939364637509251240567066480608700860800272105142475321095243381792752825940203560564546407945847378328311724687968678208295068808088517346746820109089379184478418370826537257706560649938910294414710462969378583378028690280418468617194205800501940791840414739561023646088516122886921171433209832637498473018490274254866555476913293902453782723049302541227294502904975742875383374692591822990387137769841929752319553340988179424652169867876279599027838504224363324167937828495808080947611810774100360371421187975235055926004376590102647295578649892677175446343931282227057044983815215842206723306321832226157183035467868491012979687108533131756786529181115743919396667858762933438129461683029433807693524908337113395365608459997985534004859415946023048312959569329597323362101841059610738667320759698568423627662245085380377703920914197211609038135956053355488747039062032387102854303697630866563412590841435881575547594822111938275023076389408275427012920594923860005745078858030923554189997134943772910383268586095452032637062186166568010079458229253818453974054806863660384392699872195506425609466908624862218934745673328881491265468042568699605004886377269912718475694704705443855711222189781969613532842140600591207624362670889779915237027354981577978275362767715274334213157988927106685240136791570748154084524497099500110970114918725774279163890317919796547101924425452482304904407813686857111649437710691858404018273835051892934821690759934928941768985329375091397983027578980776824188357943936686743005919834617199702497039424171925012624872272899158908434939638763530373551480341752779330862158719397933465611940098121267742605946576985698950215087195523820752218393016456789240301956719201402719764772324650619233142198025216866168321070868406421280572953979403827583244941735688996342430018213538452585413756169295284333067380009659608822820711680436387624599949266514379721002607995671888992625670675045743191904026970159961098164761382617301193730477382671851696896195424066968995228125139791602479018338745898754813987033341820615784084714629598878799822892421787868488318269173920675282078658205816968674726732982967975398591189763311437346743883491874587768583481334239287436551519111126427552937414579325598105549230901265972929022191151715058498632260405727446066834397594145373767352679834437824325547508434590054717165272266398819447020626403928472387600312533462340734931500191074108349888876462264103494426286698427743867636250566217348870803517339963700019420207401135716825654309858775637975665018844685154327319250661699003377917556728774864271824650883219092900181058909353127421839868755252850241320884730903763534613277030148239066264117013248088587752307369392747020722002803475902225242065402395657946611900823719801896674126097144134240878956372194506215672728162367717031396768808420519275615020623917154006278881071184938726944464319035849676791595754649679414268865625284776694337061244803730465788803228000396290306154836078824639583748194649061701319110826600699520488673010894346019926595513360328662773943888847464407917023104906372869454687780304204620892919637257407384986883941407961308127610278405517516495777691512225658987164808919014511481053301059584989308306419867901169412182293892778796279365810700846603291622829174101877380925162272439350708955355659906722018183960677223495825197631739980491297164232096116717302136527297600238760636198770086259511964386341723941303641285876886017487034827390363600820249403154403594366885629189486118663680330814446937873388813405774114205943737011949047658602161919939501186725703028614774948482131230561412361193183324659553850037398933905606092253423719491793954560358503415043086533218563228430522717576861718415568327764792936656240379192350447569461364902540370334422987446357782658867727573859630042299520739319648094721914474156430588772128571613753130765685471695769135197764437655003036356732362456093906516434135922273998833794229897265264865860808924213303910350685307087442191903202804821006797312472919132355265430173404797592361191613594437609820094762345239958273366937828080763333625407329299377577533015783005096764864720037321976343379695825574942170494608570372910964865672485352577175478611531049617026387086128296725003529730223835799363622313573828477050365653471416007194848794410673162540079103072286647476037441661059314171181259449985532162938554673496786273493418175650057316561112739489490852841091903175834560417156438204814488131204338754470826772203154365168395086942345985351523827206480142753344799012527716505027817586030357161090225714339734776767046563775562193262155030290522308790098586185186342569172975382025627799900758001940614234836269994710950998637720471109537369497778718404381867288944254886814548222810771348201298938816896084064944627945596298728668984494801545548754536111020787537710629642027786122208023294567122912142829015303819038779809217416502021925509477114499524338327232868806795864087032468863082173785221266681434890015706037106013726624781806888754580414863466363229412036885465443129746080525047146357124067051572022024170925423814262990772708471203089533614794130150321308992842520403776280855964633324351315734360183741110883637255993268381230619798875419346009726867282242915399790752755590036075409139168431043983162705594689128010051310753067489683317318644052342361849340602500343483210445007543090780670297323243742428359706924673084692874443733395930138464733373243629907306639284627821076977823045323251614015809375013019392918142083051072166477642254785931284106929555142949789537252225779597251760743047584528297480725966879296884097788174416273711048195248291950739855944120565332819015013100193368029816344390526175675756634537055596961234315436105975675143987572611275176398180148202709062153925793719012311422549808244172986967374633493480854832088484648298438053766276078856099325056288131368624506530583349973167168280466021590936918093203479519343852912418645096889066454619524243780162689113261076746072053114641306060586264479674451327009717261035453228899313473893923586511178416792190238653668850605354458269030848511010384278618095135323424742659165454628115106404962753758818702558498379226018603713076119291809856718963998626955591835013673893204034899273099167820764621662251861435518819539350200522932220754936612572896381034346885037321568715287671310195830995903950716391252076830857957468568960883146466208255628017371435027321113188855347385833079117556307524734669774954644485630882163016861723674243341075413838146239352925542039321024666414967856386200716593436649091494634082305941212283850669180576473614057005988844782900348173958934328830605979768165211346413405661529953577470542683237225371837503329463369523766718438744076443522323196016326172126964380644555308257234204267817438038107842067191390238927858716571893134736659022668157449861807406230914227238770420474736688911913881463366643165317512563276461927995591788433910229187661904676696819946429916478255458870242158474460679416857999280812817593755045938647211944906374672365427527802928366084337612243616025444762427636183823084817304749735675797833778010460156380690049666992047127803756241695944973503064930364487008618850864183668033060096352477152832395095558935186468163071628716180281451443263273455967527216422967521014746372602575187160338754206385223941692793219403443454616286622654174510212524038021264884225735837218683253130281774076845415720774030367614008300241273163636321611236638633872217777975549077505414453514847081311695665146191731663847245105133070849903831181517768757391520833861884801817372798389987019274600801352479694067487198594979237156914219429183656433840700348052375612193260383171882846752159895302403385975404882461661257848430837812891070214024414345813225152896012293582720685955959996498954761157698795661985273701371183575493428275799279262610265619968136065161616844949546033062803677239336987701670867758869929858439511698283331782023349239515748568986304071992839139902566143212483451414295117309401762624200332811898162859739626326018111098681663839879038281824479140140704559764756479244910024427959928067077779962501605335956377778722190391648775188580039852891071009968503250941367151675299337617894367098251047771564893410603769937995447902766202260874343695790775077459609957660236947919521206348827556165307587031596174830195813134365356254994057476119591384518930216077500471206815308110550977234026562285371754163809813138077747198399858114606021878788838758612064069221190665110330672122679161551917789153972351869092520328930787283573408552328534882115286892466673596844547327913594176437911011928348422687738415565193156486722667071689837716545139571521454353971240504282674429606212470333880785345533110055011402162591390425725304798983206352665982893255400380591940521964431109607162682123463800742935609542703657726656548551499004648462575375322727918933326074146870524613562654108440420743204442447993427216750422447508205049655666998200879048727614391626283721345178932576743201371173998922018215218351341157607665071208904202161851854419303634145058668959356759107028449357138352286771623559077016431046762272195122310392764605535785664644441221769265204783524920116237284680892339925264065106612529479372554633710023726843102101367188496942858713059950598887194270531597911897734606517437237973892928880809307839934336331937777174453870951378182059538474341312049344059904983020069247078285566303243556505443555652306649953226439389990549355119131993991845692482527867340568593239864555293496898805744211339719243562106612108787960356344455145516339467652708343998430262609058499342998649914697722588819863857802320192080698655015909147681166034926293595418791626037068138922333480928778950261170601719031458083668543020914813508929314934854802471566570291801254814230807105677630324491709119102019496574603081402783457344430894586978018400636854496975434537591762422954082262527616517268179980011907139238289087996103389054981537130453016672064784240482897193569446973897556133772573581262908477149330080592000679321841765400863808772959988960952152707210474995695661677008506253760715981065070086803983981861163225445340416928637001686625314436769862792107415298482067073352973743579205080707750871609180454158855915317637136219501697871657827752385972204397918758641690977119226132220395116770170572382783098431982448355038519967714057230633940453429541374199071818752394150061746133972887868066985136639061873761611748575532184595079957474133832292089447480247004495405676214035673707281638280054711609331105075913218413524233873690392674304209344202401999687054034783419956998796022344731502526346291277033965549428631005670135455588771703794292446752364320989256517939634698752431789987266958974392189305603970760487122755635778684824025985746602532827472952207936066937172392528709606478644560131038772993300553940793833762216391746045729289570297723974975781148393842000068426419584351068452869965125396183912253131853298553321541234076475852101083470732127575823082490343983639229591881037417645928235120510972325652493309847500513850429345529712104447880943687727050140384722681715174865838599730222121818887391889859687929227439771144356895819748133973969183480607441024951294440618076751441111055984226991598537930672799646642951870335626989825118960291551936205788730680704726292880712508641186120250842743260593510841822646781482989976856048947651464742801221715883499900927786304149914864520315377270753021208394791866897305331810864840899282926531608092536994655589385823033038743229163514881357361815567719769845040174291480262410987904807525506139175927530500203776998336467801340445681738425850762250544907325149977422131394104196620186007209648233395953573521327755659683211668814242858298367541028614587843999377421426265710943218115282557102426375282732854390128087831571366326749587754353273585598675181350917605263680594515601918520786498480423032632783692709650347870057824143558955518400108804896428284163750669720194619663188906812645530081152061021378655562841404424805703322277643355501932693035073686746043884728982720369449449758663549772617391237113205751582776636447688211721656329932071365128172816908416986671700711226283253883000961923099961430282660524828576703598488914602638502985383270231656141696479305806627240117052908355457489045351729314626445802095638877432469121448232329955748295364117014437686795171160013067706851090894883959220864921676139936989924994830439139340239223877809246938517912198130804565765051034560477908032040526582561515161346089012646786810738813576653727680767837362199220966091743328283596629589979625767003178888419874860719477269399974829804004407361241757573571554816953817909080482028486256419478052569406340530471108305146992510257555566325410458136966365094055105905074879791907422045310355093984239988910393182112112789227260804265177871813249549217371063483813199384944292037315284467035091563454179213293449466264653038780104787139629379166303706008158899619646463698698640564075155543653772268820998653549819863036425103457611808145513239920757981222151238951591803213708481372969202707993190670930488919855851256972606816003128195801206726328357017567399755808181172040005213326403217344654200884390689163093687595884529721709868079252616386906503241452091968574965716403950114385407170181953159967876026341099629616402048477200118570274516810651960087705707256444906346172191258954108960955181928560669680455298517048419074362380888125967239651216855542773833079480699107277976532135899333856122113252748162976242241406182800267247303029860366387565582977016777236111687788465842692885346752117075468385630814861756382583031797302994718610422619568351899151623327878310063504848918716632403468326761079541384230640802538504496375220410534776913792122996008594382792954722999322921573640932323742920472072306770893942174658579478189783811071502936531024860714344365588073715575839307224430289883919729736215727977248654015023619609019460740370865703535810580923823551315621593737302161891588011767418069404198017599145746425899072323513277291079393082473158035748118530176895823087608435512175700619917625850275053201364523253007664642700606790001452529960745013652323936010164382466154415020732607454600858927350494696157553395760260738210564257867317235671516816045841064507235891892796990640320804621494727553288797893381371161362611565174325407361535672371397777509397415770625038284618018447470592966393032030549625750356976376555780282465610848412540183617960187460387644039735672407921058308992171084988081790034482291311415743633201733063183022424976291220000479204726729509331526083007269477179545475254211595121985313012341245395440223954992122459620609034590971696666999795379261949274505930100326053090910555723374317391467837576289757392067767490080154189924085978080738158008280302749719955637536959896155991883562987950355837730344952933970805841745933724546996691259814425265467061582340985393280732565015373073201363418224801971749941851930330223002124783814740425645011089971362865353240843962629085164338685810759883476491191908727896596584757324245795557090045630883373588526315984843292893211462502814164723630750248534635298140872967745547948060247974501591597485568772000788840358927450811456686667934762174734904386098584185275140978098623845791023603765639170302120430657758976680470706863927536992398753433603665450074220170114726577182558690909909812925216524131603207023567061089315049133681510062316865954863803856245396500838461523194980352801125340815972347960659951206648137033392610592235975306392409007118161924803338134513655145917533973571861925809281162053522907106554525069682077925983025113713794899933982668409801638911349000757335979094080596919122697333597262951441994683515236751299510822754266407745862484375304070378697379021201593679181990965384825447143563890893661609932144554956902003116248998716439526681052815164350809521247283918024305765729241495174689441696047059217482045751719604967870564467082915218698014949362730828067003468312812960779330833854957926751617487441931854891129384224780400688271342161354342327947057051727223000552260740283660009436217995651185934619341354334430145307990631349616085766147537586405542632342367220300831402836546097313509086546775147380015901443010812243806013240827671700072610580586259069288144365881626156553313109371907244360761000775597675506224088600095395284350652949646101824893964412633716249464154639712165015304590092519011891585312218687484480692650504437682286645185791723200621068588833504041968575130618375297687949114028715476260334869944213804265471356879884740412503777181381154813642539519649639135049885004774530459174500404309035796583173329379972545788709247506781874288379869219674013908188523082436034747134556054699689484938734894107080638080640400000218395927223060430107684121358722881199179788747312109408390565384303958716378315809781607485249569279862780231427326063361431300541261756468426393164724882059447122728201999665161030801461632435029145486955666470878545973546691232005011554313891121115162498937772826290654923992134016784505365267740614192188658271184825235116791155098306361826793413654176432168238620416403924107346656313738692414373416512371073561685407882642776205970934481302386416873833619068039790394081851757902815895413406481526562036509359071236182959131511579227886863857923674185851588096359303463771860894592939983391231940783553242411182453717778474444703194524649014473909982325512724185487257557013023898638631339938706210728428881908633155411555545345255547788565016512028687682621638749307420010450026563629193693711452007319488877049262077888247259657405802236662503325250654000632384782352579044256776846675347257412668733865462055468553238231267980750497263334702310799873958426977164253138008667275083025034847468754142973181771511113035681085458941153267376752375258956545795762284819543687441300180533546976370673639975148016448444377714213300726549043204896707726865764254343516369211481097398697995723684082344320228970942615146387130708374548284266810669998362863679287557393509577063100014585868421478128461786621224013970711732973393915270738141593304847551468976582848612029563992026390961869907356784580054820485709712412710297283747378437181114414747681432863699449953941056912608711616653240896034682879674972251981730757527111983988045726250664755259868699925750529189346076939023433939145825269617852987179241723895039283042642861667138355592557171843132447698667202980912708118377831827323605547677345427054370594466485763117175626053752123089281905410599819641836298471479812828837682956551310108026113323007409613864778653324607232170262301350696635772080139737144311542044354539904742517337239237932426409495176578531703418135120242350960460525639218873808645087848265516854144413389421156910976251916574102952434030114836672934444998898067069292776123256041838474233974834905175902739518766909087331956223205895849983385497567396337545697915431881730409344454130013996546468975283156781719153214478012610173784493258161483471163842125709264083946592572461567763952238260372633481860726582082692495187269661489186422962592363749825478102827729101067219958510949968901416584763906450657650726920873631502368162182817749179272275043640294566533383183499091568033127629014474321168058349680881171397396703888393172087879262459046216038772996366273894304965056884915125977587538842819157704827897915198522649440806612407793729272097689871447193234171348296305344288496268517876854813590965157046182753968447332178154294630207222861602650365898105917511954854038847427764595084569500436934470256738999910068888773989470705034105271440916340920197343397827254535384807051824393998867059891087935701001596740952736830292564575223388683339201259987335940362721375163742862953160970839267192525194112199093341244899718515191382922217025472406251400836953755021609674180565200468497910478896237443447821380934998039415825782079590449211409382207334728050485111155536769831441855494309231537697336003652827228769862416434782071434033598590046352460004457594319941705759720177481279915029866604665570933098353125135526830416222922339876312344729674571805324592240686252406792399604898872959705909497727529537964217579896353112997433041419618840322796667933085091307804413074085469732939971730624115005619764986062239231006051710876086299459044741915163951048287168738994621610269112279776624386757787178806040458816958465202844617599674030703892047176484026557494746071664108655953820454142074157324937775728348909441381933998577286916467829176545209025053188731353855483488056861602730028126679306464074303506412995051742539219671391432354733239258297006803669091685627810110422966670225099506280445834037345459991344466913604300696279617968133346225903261816161936097629256273511807067604832962958413468165917674156561998927331655328569025072680020426242468122122668555044381389745929566758026956441771867464183205811184288280757937474775513912763921438693941835182372555437512670390429297952913918382074767357223508420669361620737691771601082231863507644304679105043665518870288147324294247767396538128952467652814368217983297437452982376228148114465445110510496745959427454240539383520516402489543230549777463678662406324349864431982596262375067486129349421366640963925724764520189701638522962595517585507737017346877390793350365819016030603419523530362155494451605327168302352174577686527778947314210948333018447376692792452833995576541253712188006018673209978279125918497825442810681536327101841137067054446057776648009916895726878785106590516614314139143317761494319847324057158613716539953358004293208569941495241069830727012392322210576824973917643692171454635051451222113475905030764435600221386869717636998063190010238282495284328516874390477323296633516151751662235168629972619103835020096507735966471974185251066823740158035664618598099770687062649068547786726250818960524655937258050068670645230346202294574270314669404002136730703069084069389106511998940270844937924950979724447716255689498685844736644599387447832827922695923416685584265526242472610334594015251541253121918664636866965557076196449431407227368160687389017704619964631957942411522684074733666385587974262558752561201457865091609082645762033433549093789975623241412415806089505976259892186174878445267383811074173181113254134367180054828294703110571679069783348779400654052903009995281185320574233483036793561982198964229302005747146368169811788881417846419057283965118976026099684516722384764914218717460368995494348787272901310063071387215394608054149373308147977211498463058885417020375431679190926782471830942325291696049564234395152721955325210048802982905428932535006002086675319642442313485273838395361348560052547248734617886727096591613559327005895524964898312835277393960434048716468720871815496864679423885929414922507029494692654118930689321159473114285577110340606036708558153307200541943397590740525192340304826805596009654821973997652198629881695742218592554763671366412484393061791919294102317957830617714602077669660195623845453726996766958818682622669656583112354611003240090065389352584109304581580235038109543589783593288291399824771881979319773204994273870659810976901917304258575803166866341800234970687535695975004968714939639500389463525379811985326473073742269780736108319426594528377145927887987104796793580613092619490850736125766478682379900531294123390267786639688159213542270999407903762553623033165785695127270881325560102631699287627369072771109083353287506189343022411717748466072508090178261343077197973793956486642568520425179591641096363238122516757174593658596534915669991647499620550560136180067080518786493423567124283564583985494439994795157419523462507134301993676790920444035774779035746047728519685322316971762561505173707701689175002614057234467798887264341992488711633684837887514361812345389063514457609693483339582854633855529859504614899276592407168623051853181817657733146507884382714208393289001457933174608384286957278165397989378996691323453839525676148639771561097285075959431589538822036203366919065185522366750622417359999377899926026538026998578504314016953801967362261245721317747333544393434854856352256100593685672070681624024562104689246680155983072337808588378121744617578027045979259539211803637798333486524177029498166701591796730690578110055535060111529533181118554556973744618918445372855767515141446764994122871397323035058827487447581989941632393461589204613607885548832362846342216665347142797546123342460674476675307674071134389619821047604437709824283319095061504538455788363701169146833978592159531351822733645642554093269502855369589219372542740918497912615174671477655586733231824860184376485312641836773829452196182877500791101987413439314966355664131823174613670415281925137786755975985774719318907854503328505220408567868613380774072249726159077734916204834111832806409998654106196026814310763167062435672037697048497888521239027464660387881258231331445167349432363288214853514750569764140015272894450941746082743165473191396536685985351395526034023117140448078849128494692059097705018427946466107886444316516943746879541622954814987025718277600240540710932251357916829921252669440585264330003720658321952220685474045918296794264433885052478144483134761327441540185057494066846873469409953038239728203990897971093298085308334715469179511485746053630949840895635290341225676312148853682618638955090447245848160076004787396187591034712089810595818044904551924989559180636213396256575743142476106011345728739913230659203946406167584237093553080400435419546453302024622954527265708156057038791875745803625830313500655017932705479129481680414542822763082321164139617865162625674757311050504367043206289296930021994881662766031597640257705759946372672414244357771028871987032486291229034720444456000523037067926642656440618932294581187787382318928348307634524623740429345370119452688057587643620162804272907321653240934393693119295574607247271842713596901929203968211506138433687567676509500196398588738417688262271779859729025748712620173633591555971333131440350350888385098972247065657759527648416431594305913087140200293274443585910036429912006406358285678824152452734022138896244261357535312873039789213486551438079416086485320673216652001498756206154192832808292344454282735985382530268007819681468089376740091976920822792741419541658657106498126160967464998310615017717784348902244585501709254856152824312158746800049120183685164368022660403089479291494309699579793386852851515807157357802750243217000557853341504608951737674233672286713718625913757669309551137572555967029424720928238789310684806346151528590360414411280128263178639246511358827520886694859380028367227846019985229043849244348644535597460144535731781387380674279287716429029574342502509716658523885952787224305043840358516672896685268685869650946582410470987873677099881962082399820641162309126373293856734898801790489112410835320183319561453884927396111880794371653217524373389478646914061304695150820422202591318330677337885824464272214896107513201982505674804230461571217000722793252070008273341537281737354412297216821090602677991759058092740494739857757380781038913802674193758897964940545220616934858713293019646591858731493265138002784166953495025621750219786536393831595586661450815932071860330805952683472395498052448390547546266237863511956231560653402093041461473820614147647303332019167820538500532997978288664644155269462036535420071725934451940869585786075775254255394241285447875555012985850718514571028314813036534912831751035890336764921079177289703222038548074493232300209518283662860588596090847507536808643393357816188004940975863031797625536453841391111311451385803960849949111119620721085549284139557522395963489917065615437690868295648206834837365947554225100212067257816814183521842199927158649654488699152387209271111557397193594674994832700370419384177843978010403487513995501031393189414642378690244123364130582464034307352767384274626131801925692691280020211054032474843652658231594172119449417547730542327368241382459470484363719870866272131955182403959327880005969349178487302947406819926986390482756665236470392991017269813512913300951644042420618062545554592580265860831122878393735114764508604960501634260115673759515256017304792919352619897901118148592707767142029695410058231380992211815573969766183878462858138182172202440394117196667120674532648585646722670231191343871884180370849956557653180050880533698820124675886984489579082269074285073114624350121391089889358342974126980130237966085029090539757308933288842342332240944748812125571536134217744967737798319571442531728019142502607743634246641456821452428978888735367655993176527503891509471560129372684986489818349391957923969879093873345427999860584438957651690243788503431139835642557913578281577343251237109952709740802576944760007405718306678321464963185382057377929287970951118907012371533446195029562959269249233977498533208669952919466066250799760199582564690152346657584417076273436401602191622822263307019946993467809535931551991809472715416523247109744435605514567062458800737592566664092508357933845245546133279955336945240048861570850224970840315753982074404200389620871771680366819638818098467745259466244582542923683681133508160365811153865564642748567479448395752019921336950936095568702672368039259233757761880326354480371704399107547396759346010853053718299115240425625736360049452156798128065947983403000932960330800180399104884742138704250771326551346131449129039288413294359069080144562057264093770340707455062859257750375404497619055945435971098075033116679787963402888498626254961617513636539191899380218774432903392629793762241640566595899340328857694798409537970503830996921152955539805582318432979903497070952582165217535337248784677327179948544097636957210988274530099271317171002319029845723852273627585282073651784285575194784357062081730968797133197762446939169900532724297505862692696704385050950309281747225141275024380320949486700383047316509922688515347137548565593342467080306276591825246823280551695661522484914466703455978340641112708287649994484904225141310485861812866011058908459828875600404920555280276410339041591264944385677933711619577501638857184988546362409379254310947488873615524352866781809169000806580123201568420350133166017484417482343973396370639401196017270449960398749841898398680020060771469847871516137898065676040563594344432456887855831737844075551473180049769667615613537277981242328957027720074449612330702332769634319994907012993991241898746575646058291057848527533205755768109306730626412146165676393104767393327456871455069332271776778745433731298326180077190097719504418130084333961529664050113904252514544489439563786735308755503181977743307399062733614351624889898762125427593075037359048495917890724175519017828397770714687692028533591512192670432149866689100997138044895453810513949638514681701513533389870255806982651192547896816824896637869331846804987995143012982834445680230557609964491754249309495239529534291697165037169486492935926004569799116582648915017781494463575372113965450402309288617487475677287115948223360976672902424947116192830088126911202323350338715931327603618327044398621995932807167586777701143103471608308799793401827992928833645915388245430814852267412026757120766894679780577520147567717717422534794768916287456226679876256198589717601183773415281216708736948078435846220556795116287360353021077120898186116046589433095577380838608599909229268858177095540640218886994195194102898905539140191437879266297353815160018298616302057235320414620190116635537384762881493337474465727340203409291298243168966575157268530440556289468312011779609682352230352517582271160323400132676800976297216199339873658646506832497293559971318473752083786159132456907317781465192487351088826017640186680948119771223273448026455154834764152980722238668503212130045561491438361649272916799947444609598887018153363491972579561385306437532085451550026901265088648822771076712172254557415073886532103306075469212069397603411168226409995451006364084781144707121987069308474556404517542636989475195647347771853772404891750706172495609293296552808337045358540857788307207052000961433687989107935456793602294723061065077487045992925305840246814512039868442024972920027567635200164108110763365203401603599875833017696524033131696552505408923783678631256489495960206207635050954422431073591318424619478236414001166552723011626984986869891445528681145559762711403395216521712218054649409113619506603884126906282986379248354157608190768082574598179590960814850382078131932479432088269619265770682165504861812028735714392691516224263819370396503515058962065003528414888740541460601644093652483558627387235772236342963815372046273680901317561870681069421614914600785847845753410280031254422238519788682737012259541866944189163939110701204624089745803234149641715780772872389460270952236079787043570653240652027154808170974451216306075410636543366220994274941360369098201323376227150598947388594681806300317504023340591730789722464985337865853953995467746400516353299002438021858873831093262629992390592009356102034020291207370483822637925466833553459240086407267539843601204566259872845973262274063998564347480756996133748793538035525151027811934801281607415001171244979089011585225680069503646941937231039990196699448321971880464305016995598936964788123011894746516280128354530669001296932440351427969364370681133498153609192925256104883749163711042117680017045687779449728917693978977731218030755508054204917963380370195288260456996201047025152687737191771142421906519123841693550047122307392314785525724357694666020234965267400832124377267990007616661695710115027874844129883967639642226659274636627929659864040174834547414558662439421546515889496181399043629503948528539628441831754151017569833958326058355111291483548430733124742687343467397114066464466176424525218220033901173545822614070452393395088216811794080300028092753377422315093403396888584910334892446080775026222764917947950063536381046989101610268156684961708554427791243045641060378793871809781282184083636382428923859771585173858468725222357915478852686749452541842274533764372046241285966863972636884462445889531747435922440552284319797077841924126307422210309418763950018636868617025680679627416828998934856714736882378357228127813586863067937538120418040098505780244575345826714617707747383294293178693713743567261251834499188701256303961699583284119040307669262321834561621123323437933631130948660126785324856221911119460823191524924242513552965350785180211591969589805813257930030662323869388181617698430300855758472689093178582223428452580416627790204292459892172165928384003660099727961270813803291926020569127620469210198627929454966903453011184169520195709694355840909159612766515954044674131628180888097852380648700770125493167373471662753145882068406145814213291303101376042889569750149748307509767705614138836743797468732473057545746364960003944897395191942165879956505423359121597211430890969154226264320711634152749432645324234696447012239993024778472800439941700044825029770174864047878350832485247987676475353919758067432690305782939897194164492851433267370939342120089518467472323278977589062100467498648594272118884223487074822715343787455991131685541912148363821553333757670914601097570984901647071442765571726909291636896047906458024517119800385979630334653521301451156443404985517535582760741205395040934475115145783865396989472288476521969835332991300879211458010531955089110003711706030165050772981230020002602452811721186495370820251659321543548541048341771685550216214302359865919134054652604571729636701172325589016265545296659597197696047372505225722300899318129293649755905359170055711176885641951261699456352002547560010936427219062919407646256012962926938188213131218762698635903971058885373043034460558815301192159081662674167264432706759638028527919779758941757128914409858886836347457860940362263738439908933873314345095793421034591868224234690120325040361915975766981917272267968130056235453947282923565716292004582917227137025190997248712872629743424686294927161587570225796954414291347300811636103796536673616371784688019124781578823897760617204509810164631165703614574561843442344979438522317157813770838787338218179958319041713350476983806539074984696199350035372113364804410552799272412393104063081604647282931063690018209118852109628842034851441700905225942823898670000708887107152324220304123187206055874871239733938574828729789768205322735556979084487488158726127061727466550724583311457040605566821716768101519228182109580452092625832529496632484035431856834712497921436172816355494983499722762492389251812524391259030755400260974361600819688020321137734492977793292114560664109583137172172280279622520568785190362696591634283723735053848477843390676586500195225555428034398183620617147088753455600711626257973825568818077275744390363608455605931939361504149460282215010766331949875419832381643396314616486633970898091796303283613316536515648319274529226374473895247408456037882422721992697628826506983517967130839912101956926160033327327435949482414799992324171761369946353910734380788059391916210481774017613274031555414444619239165749332155669909069482785975322261136868105076298028997206396089170729051687840644664625387846979554160781270477117691656541800346154804647810317181384830110328652888468616344997814945330719237282048740051903321937690782720713460129678353600507480208599130301690960608425885433325003663118141409838432427223004420895257637774385506453873406367992140428394678813344881972533303034703575225203154786690565012889102260076623875293226894186139859382336505523539206198455378603949606020596316838623203316222779189184055790581697980016318071173998886891746283510382710165551870947325748556641898407888897218878975210147946136824818755319966584415722175555671658091037655436608902183610520030063300281171594163887225479880545769661363111405963993151099460326485927824041279164802787013395067072143153588508366539059977504970716211522742452526969653925036393732334193457263141252854448532063346402503788725978394500888554793201023673055061583196653720528225866937399102992497834947409774905649861506652196251110406498760906644214465324138424446524750762072283521817961968998869819807389698399648306748150200603128779289107407287994736864973275069297775936733332548904386975115968588131667733683636696754329453807148983237022298398166682806865105180987293059372561007057700222979092444048618062015899186615450871542297607920381184884958926562048694602516828015724039850259989530035019601987667653580683693129812701690423168880250039436985803201813990552964846733303566822555409039074266901494427506981820329383251645033317465759822662738757188056785636142825528003672812854093684589491622565388854785880671520379987804385181344195179915441850318409980955157000623050764536200969540576956677117767950582992908357029408759704380427901883411628857879344731296949542736193467160624587319470708978445734368964105012641584765494042370886911063383707021994353728352999738056138004686898181927375067847149558151699589558081557545846050772545375945247211114848659071190602671336830834848568537762149620484156511372201765047828342998879736701591361011119844296167692503030557686679598750031255352806684285738150653545504865196592916910805215950714064144315739485710732363180932175002223341384124874989404963310422386925684262981707926303107776354175392684234317076612190408445858523708585780763309766865344352344070841434375777707588680704814331711368252678383926564958562906801494022474885837946405194489732543605341359754356177487269765657412362000456463407445518789274861982429189085626265819713357192761480232681060861887236663313165296853613114808080250406198684423499879794437005199913681177923896482509865411195568784358865141896865096067272491916875652899853369546114424491861974201343596827691732720978146799851332123780777644325695909579660988934385917489660466485814534742550425452267613263796819520259997787100734797575798970159376474074781371304023053526396192993293051928501196110048815092379340380735185575028956602727972855034889918981276530060411393018117192357048384707939435635442016158126572298127565682779099049606135590827228967881275337862731847489957802057017505179181918827383329243856392998602023731134535271831897537634238342794934631824564577532616316499905058626029179310078866196387825344706358781797294997138646278701903673280991694107398738355457366286602287317292646594189537828795923037922364741722879373081390899039498450620338767417303202911076390880498324656095018324479791703151367205807879571321147440432721916171771191881869412954104027386281874184479631939518396848709758868672733964483090313407009248206304764513376972251233682697165828412654183342774306048503339378645747958762246835177837042097221593274226751086415502170458502005512795951288847897893724590039505746440014235405696176563932538774768840969548157580450435267282193370966945579599201290849078666059591552921999234055638736909084801382081682417361514334261469834669320391600582495012449518344413930080545029404972552012639859413530475975770674711404379095294770582434678436029037519716035675081432193905204910632542871617338421549443478586157915347105794508022648563792979660196963926105311084650060171174168863047598462383705404133177024128600893983536280353421543594336699037053862627590973999538249810475239146335436534384387416211015163384309400012830863547452257657937946464025255569991596810323925774907768956698780708500024349417941407595341415312275734621132209889336455767335242729068684712750858672838482965845466529078138434992833153235974870040846507439388034497097797275939586110476594540484628008247000253992403242707681797650344328255870596447374946597688642615150837195419356448217637529109541432917148427307142564000289685724187159059641690636456955932413899381046956629350440103316388073543647995528661636389186615052335123218068792667273677658509373714596690853340993061862614493309226636093578537898632250753285853552695038817898616860054053804442631900787019722634930157173639766754686745315857632362127339934252010769211977568971440440267675820526628734446194956648128003128349558766396118882591255241100457849907449519034409609099445468567993938630671686900172691467383010019541177401044619311970323740373617449457538528628760482685979756985718063184057103314572381235821817520858190172860485692373333587043113315418387381520716702853790435707639662428799153807223842987819549972095972938031037217660737722942222226459125347454963747103370763499782350538902344427496766904671298802487879743731188747282068320185590795815965916294782113964883572383093966218811536990359513403685588467984857799417093184274514209804630057391928937199570232904694591249586916357647185052437200232525623824360295967185249044681189137171103042477180464685962269815156573599590210358560492991885251596688297542319342571193299047063510401375471432896298393019782531881374886650551580453123970296276772791426231970482930169109514406241930320418784009384620897399299933017263878396121288090958478884623091958279374153375043662112433932719659014947487787648143922279024231514595664900843593986297689628953001666992845882912109816727075623580183164257621156836600260799584916011054184297563386950567164639239479344563717577579769708398652341772897137402028100604659325893717883586594951450620859759334497168522447361822609092082401100950711799515637400434916437539400316081762215494060232694171851789729794268052039907777857723698836660801924112196396743809519820754495307210295879120313338224241162206839155739618532304790030027773516469076611412890836537256876286036726170713248994374315290215331625069333079645764773885749442025628237398431881036672980768269850281459578534460272778197337388431717320942683497577136265316925630172083694805301394728171801756028300746203075447333899443778265698152017543505531811875091185907999337053847224607954726140088672325702282222130933866784870213803146064361866805179875071966531838900674178983379081491322403648091190973565778479496227007474020133669861751694661591961042031688098623829891434745936907131672086675964749464848777425991166801821458086258618529832728391952887044166384426825711990338683112596353542780661517392698784619231246418567210342176713785404279631833498448485150666029883398470432552551058816827521780862286117099124191056134304817332617397336211035354999810445327082038406527777090893878814026521869897307200045502284573056978147757237411762910130202981467827025705901432294327580707194354769844845338438507010343857539205781184663186313397851939586372624489424655185762995588375562673364084707658809541329558859585774325103819176481275235358020787825616375031750497226012813982054168534612182729574471548563456623555303058981615267819645410605583722914783132869139975092245498215717796035876613390254309109966694210831707731537730238194866453863764964252190747117989704180034436073992008164497673170564178778017686195625369046775923246089318764364634325532872314787593741049258905818913719255762652958537758877893769718425381683233803019486715259846171682422281819511979429792004583763295516072592793504020347816701759871246010135051010667634497054841225345341674350878335033846563080696215442449912660934044573742245896434985513622557455974272692811935685144798595957225704910815458547590764377623102144136379966622961433463968829452564768621981705586545922917515270436260393673672979106969365518449122528504477655662167341587942653083450165239252709969511036141478262618776318453590533003825233956841850206604037386460398496182091377779398506481193684628591370245664857652762105993707954441001352025825692275334972364967167669210522698274572664030234901772365920258744663195294266141785813493787485468510976711157386927733455918998546712505638144775855532395805142239778328571518565699191657259850772875664484847958381893839945493393015137959828569591955487631789546686398533496310320175089998769258103880766130341340630330252859543833513336938039743886743045531576849958782728386318039073569260936856702142411917983815796546399615472889309676057357662000796460643099534235455545701391933852554557923033110381146698022484169738513813164094327808593026368808753597864577725849674924962874337282357347279572821227068885908835003396470668118365734869878242162282051408678672364860835015801496199620977754808278313291936905001041164231023609508093763486323011658603705161962223939672551926667872264802288851323520023269848294853168865480081064068419739731149880095344141491668623867241207371264798512519468009526368331721892182161174254520312757756790764599792566307229002351855671976670279353285599239185850249226222875194942792339260847551373214405800097166188287098289067868894992002271617737662311890237790290153004136587576889902458280326826424187617061697082972169643765842107348089439814898096117168325375397012143026340063563055758826652852670802371835534194423065026121519950265967894584805352589645735074200039712531769678278916840511703487378056428885842848490622158370362854089012538356088942636640737131194527382335738427826872503772976586236852323695234145437156093878323813850440374430170946370106520409400424131500957531112916778367775830781662529204462941474192542273890053687007954887840472338390444308527687725027153775640193875854806518039363426460535948654983861377764290934448531584081582496778711270890285506146268080150694049687099322514435271752415263959007439135431265719464769299810223208920644534485697034478412720804125588870469102132860701247148946093969508725344951333482501803213119408287304555854985275440678981110005396944282631304495147333762139112832428147324773249246842099599959298786266646421027188850870229979858178878614120771491198437001078989418434858741618507127858738863852374529914467954229952314951307798212803212108186042678359653839948856032092902450583415816804046548205001554703523047372792420059415603853772431779070758128712637122199637859769874190589855716121826067174396762276983162842811175697495752069965937973821409306663451915430270062708602346232395569967697150703732116354740184577899476770963809896629330830126306118577380252964829228846192426372233171314756422873122969259051353496196533526331796383267567606466555639248479831190805064788316278583572867219841659822228226364831927917109928462583110167743383458555899257887396882780399538896315489382444974005345853640251128614966283816182938813770495327266350888451252612380968069731087141197405477193061801182922785037177520235440752257568909351684278487066122164472796486389722046427849486031193677389635559510325460075047746126947466604347465927014617558625196546595629269153052900816880006856071129793957225535128011743985179615222129994690772452115057650484944620345177069343308451135706521166158954291107031526459685196064967955399338532833437449197493462702433577454669441650518194695973257070503817623848060395419314041264594553355649162817520809738469553471810027116639691533621139267258236769432920281689236796369357459386572080050818210071880265296256227546558146751300854634849538622011625066635033410020579770961206228459381227104623166071220954953370111787835547732690056007083643207060353823069592729052371201190185756385234843342096147277071459929844421632525842310040103418780738971622518940897362109265371201531230009027320221214854984522189608610868752516146214239475248890438736343866260021795584218163624890156921851553636621179272373929002381673661751294896720472185416131296867727285859254199317458343441735569051409141791456286080135805880836348254262779084050074032790345816925630081088466799854707638056536455607701938162395370527857590345269398513731421889922840753822228755818680663090173750263849134653257316821798042974931813370817522437646112005753717662997646344828473026967540886091226811179916856542958283802157840743358699209661559259754447530270426380898551280663387456745335480872173133289146116299910480426219371242749043759210612131923513669947196261087540498593511939045035122633723479881651541874707757954955174049217072489573510065881359023776665279510155695338405422241428161693371169023512300805929541658446847006888275555095498745780286060498444698535980944018210043629983872936554685712073968059491535311335240460230549130255219716772238466769946298515741091149882769592618684121388204163377722100963613028459543531175993408645661746291996203077578490159030769205089499088617761273218251707654904898786247405978926605697374489852772562505888675836860246322983943248392211848232930035239532945755228996842494680060955973672615494416687226995809762718678478189545182943050132891370454852857508024376008837737810384152163749464932387825074830854884372223640382160986276736466219796151889130427656446913483300875314273883513321494012718868258223155764383544088722513064733198939608649563126715116860894219116018290666748033780094219511409498811803106090258615026988600506439421044137283778629126187350622182218712229154777387958779109801274008266671599232909200675853643783411302436460138213313648937444803366317586576133729775208140454429853508116021373782753555349526189690782551743183756615439921802097937735910767448380029425912165220837949329685295428691902819270903273422363732330616121036762262336395417823002037434819168331556330499849015593470992883951644594367685726783921405068727116524566472201272574842391066006465170693803489497735191126593588073969978345687851925734873319908890614312373257101236938524157681062276155363536644586611619895450778320865869227404138941069548031085990143297738187834226731744913264841723634417004839143374537120673377818411286072342431969931887220315340904048586248391873473323068207567246479620615539677730034508963215729866369985668592308879651286298161027026078656356170667617909292547742699587788190773805861739237541195374919284037500574190228722788956128770916725482067053672353073900014853791236234715031663654336700278234990610156774055712695900094654347612095846486311092539582897224458838798871775602553974019971227151948299982811508427360864766467365086151073944810482043161019734791522152169285566329305830759294267728305576664696050226218742342757426932280321681224178640966432138268823962518398232865664626572135046363651067637836890758755018340787262332259403625280255903685291952882927361864413890309518237365389887541373334582802325654079680245705042619823967350633384910448800935950949344615998519874677951375884939408582148123391329471377037661315932122614573997457643072558442333785775963855621776726239334954040735333091048087385794301076948971684783981850702016845757553750412303004861733479861768945224038427201724077324230843659979672567684691718125647683489433538075779822578723023475818180770690383755742463098053151636576462875918129570319616411798758280718809781194063337969240798739338980342474293443616666736534644790907094732561354186573248967616156610809635308799208975577796810740921911268942112621493816699018490928764766585162003873237263918942555900710717616671365334588068387451227632244798727642130118681369715103033700937462439655612773641696571915855793478263687867281554363910169642571668803089974888144427161660327496068950459343665506022809046558273052254594869392828043347139136664164564372102810168985384545718882051447112116333127258900049078766011234558147515544384279164047712043908102858614745294053774446087238170134588241593634738132511037455510632441508325245693230242256646892030387933945092707952014921513152866546608117848813793160666351319819043371329145544069612029032979597326404755524092539123141196606104924289947261896874422458911345834919706272765597361920930383299838324232561458393036317654086184438608494281116537509330069123751292808964824995653524024073432909671304217100675535666721929489153840101525890762828069692203058489810467717939130480036153638319576865598312768909296851349847267892259359812895640405167299252113434560598243984114395410603947460062098947089980478225973840481259159748631878275723268999574739243703257530514122080185025675647659555933391767722093408329938039103028665079061636744415692263060063567924571136215288951717234401536779244440405383759008747339233291592882250575560946807681764986976891650200048922805701272631915506978948236224461908777034112567377638817650865779261497382921473155397848275794476871595997890061338110781977516377359673101637015309423768123265623707966755301339003790759536587503608885213814761441699683377130498722065667652873933736447164897588059532478857172853892444320266594503429987331210249883130927493976027536044597839149337287861312508889790902690834225725900949615272845828535710009549493743157421616435624234170661495865777752885254162185372678004169470720335052012797753002658266845452079009368968167780906857337310388775738247104756586735213925865529204277089421049340270864062341956319016612943011142622789773988308778622163635565287043500230182039622450878553219129363493518807891389196712120786872628059025957364664183186013795558053616861481666238967038224928000131641285625258953554651821764426134311001462226725056972551018783113001154814459725030348249684994588773150165007026100833233133497643921905412773541563335513334940869304627007786084198287807623506409559504813637842111584989653946988590398789790520287565805847637952013945580555341971456019930099116911924117676366430772829825649061297898445450026155957562231940495820929663099611977461728829904553216740942077913949887224201850733037529798205365732966802949296969689004061388528936768532666950408718339678136482596387381053939334656528235636994411351818301726119247185905346778367875481039440402381088431762653012601304719810847090453390954980715294755026364407702114352599023220526261425697603096976936566005980262628465946362923011067292623958950667971923471876528208671930240909875291754395203443300554110392807571512362724904713819744454207254211609844760376170982108552611182706854466998978442060244585737253357474873118184828308179560588333453859067190655384192080185300135397369731243915589855840705023500080458420963448679617660065238711368263453824298881214038252028372227250669210545073762707336786182645788053424942677362843641194624592549386757044501686011866676099788643801379951127312118088465359123892587576261315264466285190486508882655050924243216769509315197392485448820664209183745485139424901121009649594453300800027113836647908018603066376892849026741468048583687711847932965342278710470021156406058810679047915536338926046719159031331008669058279659549181278586817748173938887939155723572825231065748334288831715165987027270321676955667879325615983548144400485092543615817030813971621542475669429112164596226743011728717046737010742949940600050078564496657850390222831337698481337361112756066939751623705905851487373433606316149627704023881595964282591854356589684595938710419585171445121593887391616157782133531770807779266025587436525463759293360946669703368739550793318132159783729990302168032335097050769226106516188994501002476136484889352611210569082424910496182765651694460658190833430618302971504922185334594929468028898701238252959946749380653273851453026053132857028471899105473113506601856123041265171324889539679066979295807500596180078076284599367600002294011028181425574389992995866350537946726903893963385956989542212143838205944699422797735967643638656876032386455844012285990015151792007982194915988135187750141979162753070943681895016784242536430529318269191481920639101997110399853071974933340536040359869987885705543894075211571409703845912235749569981059877424823227790764115395638537689840511945054838752051469780959518175999205472164460358946373975808799159026409542537229228498793894929920553757941016351020216146786322514064466670837529100937597746159783138860956162043549270523669772857232035170285436689484443395978796510742131401685928656285195097914309197916761870252714163425067514797458396021374922720521215820240682981255275066671458717356284635984035888805442753468691129999952296040929473661947557011312499607579124980254880851309090422845109704943277273124932001659782538960302309113225438035820759933085345862850421234775194186101404548064766340032319305494038461161116821021007722657811851325894209796954452718429070744809366466927927345466856032617170626939953978957881980209460567123271721925364615573917314799540118642382905462533500222903607446818398854716545034609803602483756237807356869870973949572527387386340609947629460686424744449814772808514319009252862701117854956683074930391124204787350047433853548241951729179279749018360463103112800367731698819366976717395787929812912177682451230451243541098680026250614176042589191268979918296738958737370952577078942594926700537804021707823297294536758200320520787128115909980214962348895936569450880177126751259725345293761402676121869354431629613029919135158999843930858746964874030090847862768293700691240350529306677576397247742614687448412468879938446619986761497169446476227153374193397500704505950493873781320024661030300445120858990116100473194577871117617003960249740980173062462088744987903974799854772122512776219085869381214761272302685557410723286929946878381778207808903384613858131397123372973936444526131162741102445628154397627406240704625525891481235977251521625875968879383543807502376606178256342505452697454023230380767578385668017824657565792148570968296722015680608004453360364685170399090263725932194683640300791725156203266744264416704770009069994809931075073101331136568466053562673916573080180292152159948052665443034838116158646982206296986396317455575385441682557251389077843626566533323921442363081574538051064840672717371758422287918618788846318539456202353853263671179774274791267120719096822334740999403253043033605825442343591863303787742283384671995439340468651145566513994406972242201665673308695116017699443460602395920151435951298861419984505221072259449725666589824584012750613379299767068693051903055556529647504074836694948789468179683818039779571586563017059735410323612910085824147058465680052978310646191315599698728652769708813009661418500774673048383612296935665052062862275496780226010704328690573868397063022380947795783631343632525163366761820106444670903560684053882697606619510959010898141878061013012939023517532366883334740803062197931635959578262872892553841687421930997700678926714735983737106239909520721698138121549584716900492943790689724591732345266487219850559883608318189453008046511414881756851547579043347680205508860247709767775519437270732138316377382455737900602638033796057467154910335636235998901725971994449034684009637806375305279955988448875626170557020317547287570035875974258113180934639396382017629644323739352431209855039696854313013859868822031011647037062645136714007601906176677061847710982974072154389712003901181189383593857164390548861108031578987754272467914824301693755879175856680118024954097643927866124013510642014915200127532696111565849107651510921897199145953210357310587244664575094812442602391424525350963689980650977717091476000444909939004559364127047352712876754420586611297245369496315223325437213056623288537244199237368218335112710808482291577182561697459095555865122190546721530865282521183225732399472857085574564253095759153616641391028100827068218688410873464330225396007621258549933885990469858717259189340304221116980295305055315585851485617817253600475917724688551558132665964507808424485900727968753113882675533354211400414677639053479803113103347138525275858730028043590939334177780345636798894781894005822926459878439920109345251485108546913334650435669388028045808394701576485158954958788581225769169903245084827563385981174284412826732254902198526479796208369696738840601561907484499457437381698906604772251197035644612383050678344096821432682115897646734520829606590725748590472291656617802087690842468863802870994905565388568853599939337164474576801537785964414621144446574890868503538414174390457391057377328527866329076684229352897267099746400057117183581857806008104228835721760844467367050571250420161891636326082605161336134321156908224359265606585467422989079046251350469032465214827959350862098464361784949232478736857277355228305477567531702568630973302163759405662507724576464486027478342216762063823022011351806092705347988939647551782779275949028683945194657594621278861422786789539852349180712723483886200674587785626755273689231649731058967260495201309903889234889975990546689191715948272502758318471400182947594821890216453111328721940539823378522761678209420357472357142767582885545185596158539949945732533864897669023495106752836182738770555268582597443196152504830298927471741393314012213748235125593543128168822449132886070946558981678749600816476639196205853166203146095943413221407229265546513844361611505212256268245121478426556307107995897874310497484504738524724789513110607531944051252141956284843284144668182694127324387102465759559297928845220467298820699810508673748769254659119586916527185536322229794675280376216095417644022051405893018994763801347470533998738344208387810613004084809883346013130366444814991409374864488023004577287934417820991806351586382588357168534061832779970240554240591719233031444741334340779317662746365299536201425165054558336898985348074590347940761089864339825795006087370474857636533024193685147996444330829466401258343936519673391276202930178131492441818359232539781499981488599546404895670077212220609084464810911595327378687819866523593419995965966660348864653897634934725891502106543734284609133511420664489078278319066570031346559887430757369168901027252769658734440183362934768138706434988197214559885506080172851541564518265590735096916942990334245095646547557866169455822347946395790314504071053310824579392565036143871909341976141904299044498806353561470947557756471360297369999587438644521304104901163040901929071913499880139425674516137722148499981102938925479084572259653532203720828725479622184543346150642747293404491424741016929264341983892145965062636597125655050589456761435355856717980355795698469073993130421715300195978306823640767404550536553548909368100582417534930792911398362717352103527900374205873867479275150700546477851806383457625618320968722622882448843860268089350309819135553066059642582954876460569271244578385490279944795294860960241697744729754264339103563891804758964671381811416477137613426377092274060930680990890462802590843960096373512509083925448434044738918248356355429234737711760018485205773814725068323710413210633506228537537945388603875926855461471372617498337738391904466441989589477016294817358904347530941516616316864543299119503487678017588317845463080028667949920875872964721822036710220412611013899347948802461551381457633861802229388709752419705540192082850422590011190745338889540668900918470610653049192306377978157151708514875025400343612431445690797107091251655224612741431618874614882110011937368152367775702606688077318440472147743181624680325595229617208582675232001484714074338839187353953615088140297217061983358010667268308131241745166006575163235875252030880332259637526410061186766799697127637723942171345494756828841555766027111459385702207316003595631841252603770721698152092015483473228894006535791546529769972833857330060946830418525850907752299507843249236583447474044389929914034594781745025176044876520605337167716883318486840100928975913515345231545679188332152271109150547335984951180808352767976046997291661471910793054850156756454492530670419711879038531686368726680747612520625050382111846498935301419851173963532592001461681828068621535851314569718985973507159241305014404055128877763030960905353181042144114727815335203806747036812979226749446144448304186040939539955351487605565993371328632041966111449358636042347501057162850299772743746845464809928441751990443047031793247385327232285221980118642458148776481129532512929113209199195698473180042644279633191555684046726976179597933887953507480327048375633122482683117738408970057918793147323668369573443871920275179230094661741104386422557498074008416979742018003575991985737456554455849313966942867830072728612838042967451005319270323263800223060596161017131851229439068662150135987032128046741887752966731145603813776695294182698650434117084803200356114443621505603273974635233852121659021202702235629884342926301049041968996621657287777921484386295174602178306630858321795257877168950590361512928339919513847140961888394875856070503817041668007375619690773494423920693803608912847344013218150903865246378125082670946573857560298442691404120737975584652670349124556879936473437143441978871443039853224959793235412057376315503273282629826713076803761217189919985403348035928878312002359642536673394611565779567799637706193583465159173587897137532994927330972315876547554229775042307356288126034877216179736210401898630955986375459768056002827951621506074797691779040494537925060471874030135797668807245501333500797745470082313853843817221924850176102836563879800522765765472787227878835036414538909457347638989721403918242263679144598231531644504834919023150920122495482798892455263521928150952398495969457856578190200359469894797553420720169016889791911199679429389540735018451172789112419741650002831347541984351551548027669474684877284326293071384088050742927892112477051015397257198668553245504706997770752519902358154508978180600198459055950084692360287548634937500344027455211287984214639724711532695709292987384444653144071196462527619237497465288752347596698928382134763795037839831274156525987226515616104422714481839940731211789014990082439746710839850554702404902492872803296296928855969326315508015720705913538964258486997472017320856142120968607743697863516433573551628971848652187418877852178513174543539181395993295027450319585425708808000208111084018092658307246305997081510072730750707779048470895544020913308834886831649969002964368050578669294303794551505203296524174355771101270310407051566519331391284854202294219821040815024083122264722291401776000932781356181499881132123187219541194024965130701952227686601481740026464553147457600351669370835325988555971675511978674681516622276970056707331490008861759074613214642818863438370627789610655934807715663593191366127933538108344178926042275004029484726029933341925763319367079221827157969463610570147769415912887222012079384359106596124968373086978655832423752237988734700844211421238970985201079767637295707962575122537168443984213031385659897230654219738459282425718398565159483250246626311940800026300311678948329758467235075279400534083381636109152908512082160733033015336832398304025449895991940719400141131009531603053798994323009947524017044739571035012713760183925020379701901131451951480464830554057104729157814640335569628846279173955225978597944580578542966012765253728703814280681985174046253369111193506307478469276637340950267995136021543644830923466588728853705385375933441274612622089346775183866977858587663372393014404019905613248328496512671986609723290337304059262221879292197080279779188008977588808376699215457769848789153502037211999655151664657883175003106522986736207352566920460840195379196813883886760326452391848593530986659499623793639266855421411320378564994349331160129532267258192487522541028427261434657721171539412210047871447901722087017172922840693077695581429268996454791738743920006079425907613214311542673956766533704056388892570758291845421347398490628354968528656927001883070473758008584444599985608550375776612684579769416806081920682626793930059454009138748449831645353610599127328622905972896436743765209180335415137460305513481226668291556876419832199622999290276935695027279594589131275493784422209489429570960243647951153496319397872470449950644781069027965751257718777297516406518791493107703802292757213653757258793628923890380972575333650517007069185378029242187580180792111366435024364418688780945863654584768779014175151495124889765525478475056979346613818406082260676029651429796232585150273120194539575280118832373428739660339111266358199024561883140454783702729175615901329703245076460556187825256928385133141520784480570014075566081483240433793675392435810234984106308892575034454430341839464140347112900288406273468167476080920987888837172457479753203153601354744881531638935143956682933745631255339223970523047744230232141392116685921553937783669563436149302695589147496816211524848979130753276776327631639524134814416652190740031758457664789027590092674635225618587552755712163667108535060920263562003945317211767216943110629045629980728247084662149772995906301074350171472825251488853726032554152497370010429395850503022730910891948241621662523757254037800802506506272861308425078001571858201240814102987147345781035404156413617105195902673247402769584528292120335625301207776965998202878373277278617854715333951226301634028640643232530193240689628872291630580805374884277075791052663109497599230169570980220877366767482047001234625334002315550205606615780939240055098602341407541482749651352061504053824075775819028202634003646388390688485964786343705598565696024284626787456842456696681106360054133957701089740098567212996347650909333605954349630891850038414994688727150250122033678633865478626979047968674496177437172634210346248887095103408558882005510299389323613899628291290287413964455546116018984246270194003368081244244619476334573999413975289537293702041430958985133459817436135191642768805046263049994364459395318034998244306863442907565013875215313578977165805887091370861140736152144405233897600515309691742985753608006609240005329673766262380735811126688149101700846558657177391971261605666472985799222960221655561683810498707947625187259060619676048070627119592995819309454971847755170909945588691918545011090019574091156679755473369020484459785126514287192690967113343943543887497947978912306178814673052737252707578906815551063136374708312387372747521705071724130790430604613546693145857038897977811709820654741913993725540464866353149169970774618719490281079042630198064904495268361097292163271588379162772359128953093532280444436383390884737352277611014629014334513655155526442957589112592882320646177270350206554202963094150484342264920159870729116188104623833471229883553671242714768914173612568704019028700433372895773367436822304178162905609125808189157434079871941961511007244278536503020804191318846355628315589930294469369932891050771836061311443867624111054088508179685359200043133253218404987026624696363471316870176431492918394959216444238972551939272188764192864071041327086005844200327663678860338247968943623301789025063471420488978730012183845303366606039612720910726579323121726539664807380640733406403826430829681522287905470241588421115940710314082937617069682345354872078727369639273328963232334388704115484341538851013868422663665062052392063121932460420410283658535118159703054815619963265008793883876074124242729081513130257309013719394276442206900851602258553587173720902473683391475789121674330694349112232761588934496402040523965459582641263074888108876499679740659775664147356381149099642075084308601034163873827442066520096082730752623144996176335074163192015162360800231604618614431760400059486996761475948483321484797462895400026222935891018808295026800803545114929979057521667024232867951484190005957137546424196146149520629589474043777267825478372766412381741917813377061684712830215629319794027224382968987933527806506165165681381513924084399378035453813013641208078758550050341436426092949234737390102022398732842664462647135037850466178795914592504265108783064104423863397735144159190915225516771974744394453140709804128740009219099957989184005428119480523554475004124446123416797718382728582801101842056256816609324500938191379676262915243179155405331444411413644402171161122225257830655404300223653980592834132866056617233365361891741395896547728021861563915180028115208977911597130560847161136743400807075167545593940254742782729881156831021509478428086406534833065180883267636490782077270041238180394639029683513932726032829424059228498258640554098432899639788593120475710535629678305402644089193837834797608474078118636696670576422965169701418555320202725737888454176477540624635437588210842438566900551785238366446220262205012961312837465220101812925323989708602013916423623405244681918876090527246153402245147661688147795137206097753105244895485785418837476057026030553585320107233944417747118199188549111859782686238352339688832613621842565650095587267320022823402533843284877600251260602543266152530117054173096069530760988250237616656148646843232466020030817058736719007550296386017587107386981593482771118409062516556625097671976220552173580918389498194060838358290255190579970386939653837928919746883689086445194974028095351680884031338921933568376233749395147978199068232002522421541830617632779796451400098491487435808182070814087681555664105824994483616091054734665496951353289168210509729213767915098893949617169584848521329648786425202431975400116636586788136122677487580820058885454347581430112097657238768686750220890160066599078381300611578296932381517020834589279446926438882538176783959560333856385592827055141425975568465410805050264053183872324947807648162211429371945407795298335284093911803143134519293326415677240014602015078719520143806020901945723391203290019962651577275669667326373816620170856700801863204754304823279732943830505814745424672322000525626939335976332161951410105054733367794317754014117142146728044365944475808928585201518216196698181791074504568106476768207638707032215969268716036821114819974207515420925623995029354791954578971451132161927841087709223901656570601576330070712564141830246568204396433692532310458990693190997182560322140743655866601371958653752203994415309052350522886786810217845528448188103787522543992182829415024943449497093913325201207410706543235754631475967413281672241129469495689086988769018529002832891221601676414289257936582986476969027512566279307480639586133526126742138141134948309860695565374193708565774173847239335068617553308258091224646114661523692727072263874651234416797459712861478807746716576372413053978027964583189934681668596496961741330618009917653435676965978940638805331056598528989602238421044743514901357059431980391531716465336281924893651027577860731045412088296918723904458717617119310684925722531107743592722381360957088012728237978839044548344992586745915341082326380601805046151726945846084453175149389099343772500647619067720036825340560419430486991627909748230381937098141023570591860358598874678579217744770723593496581602597825657420991870594525024662191903461370178464296668405604381081924987146716484322957808628008624701191134997722234979918889150441547554798915624912839395127996811187021002894068300548119352941671216005848083411082225322885595893686980801116398835231901359284409746774996750397412197297603093982263334062794345779160932731824640549699338735952041437164209409799694410785112148558665978586379635517598926062989480978101584148663770805548182160198133548483245202403304857876960926859206356213012012655885962809441616704564872719141989004030418063650543025245154315999090020365468370219695610533683991448533102679040304310082225019172856920939614865462153047556366396576586382568523458841213828915536384717749965903044259052838448037996903578151136877074778421366901446206963310239075069843372570552647109979465663157463153977297054700814769011839921915374765204085917977037332292620410642474576762472119793116006095024596470709459948425191912951605856721151989237615182462211450242380684869997243685352110565728719018677863403427473917784501290843963508772346428809912456775444115547351005795066660296667599960573430810206860325910291809039630978849175181162555313361734193433684897595028830304144462443958238943845490000806215631816188691833980272661912586960497367926512913962122923392063981292726426333245112714699815677183027080846048431281180394228152139360269021929613917412220055537486553691804412970719942004708821510563995424215651822922767633014638041111615275319008730553041102226485129091684297527458324464542386919340966091262282986994302289831034045615235927932774390226325527616815617700126528437836688103825773781392650153109416622625118557685095440047181204624846332372283219506448360778982634563543825674360685459174838853474873333525888909881716619464511444912181629597806992830473394485373701240757244393221998631465026560511030108295721964377938939200891343609925598719172058413900547458339430242153076863497556878613116979241571579235022150405031265962087681399371516891104558905448839556733494701191519804439549882176933277899902284921587446890029736017442966149425568367100814743511927377193224039797570174605633866904213035805239654281471111977493825688210050222971103906780156458882251766660058923145688740268679614446395523017950768749553976006853635669177799459372561583177888002721686021905424231293718501632079119882545028183276232144955290015669449070695537392604403953509780805560386380579388231790911374567480587992260708313921787657382434199364787815032630176075978499136628637333876363084221341201043887602483419953607827836013912739120573202780389513096781575546272076136107137143322716718333264995808544910643228662961438089077474278178755992448015009398312818570986342663843315944877079784465407420635070594746872223580906337810359778148261466967255851868228782040446643427185163084573155276374106821036936219379567562141962597649957643083023790617373526530740770202023840800806727709642098191133415629989401471112764953084635162972093892819725369196367694036608980591656082980207585891941692050955709419950184631726024845455723262033025119773650808504197818063214020324613064857193763405216021887164935059473623483152797749840874431803989937081512210092521022882225474448925021013488959623396651083957298111654643363288601840780342115276545290363499193193892812203290736941494399482190391490267798853479030572469047802641357501010485214434034728918695156751909746885902527232792708353791089105085387498113700277190091174945429179460080017450321142247033015928399355827753425175838802211857697053426425383823733733673130247595816142636075881953785432858948647535141876098877255211407759063338876862546693090088312575910165024644856894677965323021833353747835366549045166010764441778454304073200370115836829982545173513981442326475545256963551328452810821397138266929276752248780226467658843725057744358950748964266964958902859516820187785274679323383053993748732380469117650616736555377908413965453754097861056554292236266486061478775364079415414372885948645047134533534253579668379838456736127894701881378855899936452943930332253424900951493530456556006118475345620169908300892600998232465085143971768147355906602068155104062258769918263918088688262950498822296717513331543951278426496115949306445877491886733836663110859474378108223441753116302356788729743481797634349820162296569375884266053752421926114042715479620585171945523631874212776406400909298578419673128129891398627404555105836775152725105558144989467985521405956116409961183241349261402774657126254326277250245028385684459850694282360886253929335717030820968209256518445562325920500585659697050582969686892073949284251019069710558341645120810062163399788348916062450588467695341527286604759162611677631849952344226452093935300469163454937903312629203753589798290957248083208495061452339897650230497206430614605873632690681638298675716242432384387076339528444875050427286883286479329527943630784502641093247950718109403673328005280315047686897621443587315122882097937379199928351689764418299846102567876552861267733325764025988010115559763154017404239190756207829017107999654789743052304505758893929649520000559876623252240075998518946764043638331926563549133095471266999443130330085022909532267350347421823205975505376473642592505915718659188656701684634518263382323808963213584059340983537155707902685893647483322097265213666159932468896153788528251686774847694619575005275666733510126273808696164184460995807071232187962335427771957224812887442390638379527014772657513660971247042918577925149891058963174570821618829301003755343796282256078689917546362231750191314166722654111103241637614187494532843078236943472853115822490168643146367379606137187898023810502954731500030713830289748440659511422863162735992142102349824636508246732479499932032666754375395161581128650854637535721077082324076779995131981622945408249158866892350552142569927307097136220747428944317543911648715531606635624409324519311310034278847306820418857407193243810008278205580766471574283411250807236003508933900915450871479261547720087230175669812085105430929228285953287983864368502990208708090093197754765251349527976743896999252221307517784582243793181534899919628045167935467754952112147420746253905251912319652951663818823788700980495829379160850529712035036019234902468466429575277941858821320623748806316213513950623671071008945100691196275901638797006072779437784956246355899275069381870062196517954400174631828980298078779730196369836772002611375933428157378046356204437210773540793262040836489213076151054231910543711857526293821247471106413178073026766810427878103117779266956458683866615488911158422958814744076244456908779011203074612023823531753049739942806715776069579793640325732607920045414866831216694097556937785186396056952319128452431577016943830316628669530624069495397611529625213402239671325643193962974571809225368951415818553906974476425342542063250101942070113415027268797618218160244426653711412378235598205667765673131834002538115041725697278241486892287344631027635633651519479640196944720266164944006290824518646001626227901215919536224123714397736913945566464539634920065699391079218854633902809537137268803339800002660179506004525726412968333767753194029464127579359134799063397527030722778930897039981202232776552406324111280919104214139081572946118892396501623614595102626393460452422380842104073664799453071050368805420737383969363612574052462554550471947910620818741025823998147691935768372593359223106254106388522088968860012317742532843950554692520086861549251274045688936901552397027574874105030684106473120898721575489170648202559305379645256108718815319442641721006466520724880355852968093609996792287799828914122228412012594837816707921886591381166455219900449207803983601475017455561169941922575332182274330467772411646534314652592913018817881160125666596990928546998340940168539970396469574009185657881456857073431978427741017482529854536193969802101250161472091464062587113174438661594553320937868087269626632946946492092567495869109590623551336098785581734218976588130393262220131434956814264443918057517787253847210330135444729870708040563378277477492006637118375467656342825932347226198996687590239357722741979467705479360750001242950231563832020108538380880118502077427914789036631759130931229986388252558769282177794579711710181210911235639689057890985276992909869471474454414772942182506840314394368852544236797478793863749328971238451005867514722199710794327415306636202963557549365319467293596177259100037954293993969236262246879161412120047194996127490575543414036043985143532325005357853587571826079407822443428560189372329426460934011327939877390230895119493761684522819771269108173660203031848902153581905116962352140005143516153134997360775664323343403047183881955300160979501566166274365846638528836039091367585175800152346997232798299967042730813943859137473564071006764520638027524438296394962101739689783942640730106472792750275010037896781099779682354948296137478285358349442092265193276879809807015872870793290054947177776485384361775665147483110854488233164408042598218531179629343728097097504244623478248676344353600291243014422805167994008817955566103870487665024091850194628931808281597098705288576488228559046708425516780563112284403273335277465785965864305555636831546709751325995370151479212411635547259421214247692364468666371005015918552749312563334966455217939400755233194327851467453147782010178040320449821810753963049092402818621182891106926439676463905145441050616184958220398157592278346465325622792416028610492750131006877118221042324995819691269239791985139872728036458363722408973854058561220501610577773992093169417999697785440045167799646237906281684919008226529969264347665394437196255104296601491382111302841719723310064633287602642923285157480540520015138140651936654578779594840173950019804483223771810301088116929988107959267915608814888907058072354956498297778211318243686847995159510411304610414264062414551263441689932663927137652297852046488721544611363456629002719203589645093794239511054902229988426027298726745165178777810615676517935305101173822162253553444798198406483830404326401938035900231891298631782879815208620716743760266301029304118102475903962225927522158217458527728410893978207294486750137853926190976502802038621176031046119003032720931215985799667378086143945851333571747006714111792868225351319767646080990347177584552743365867950855761194151461346331812823405586688172582840279538929332453411153746002011367313761737427835383813411938674302820359318006957325754530187118263376503365752634776779508309158504574919747081201175813605137935796793883053991428171079279517343756778016043357497212614844838556846733906835402367316337535634446496993149260427534754647925926085753379760959221351936121042019559269367607709026818940024952928409407865830746683247869137974902987049552349359035763269315649683054406792719330172395066710546799908051833273262228925213233675597248695785983399269650163059861531556870252955788623197514154558207391338707435996640939397699824802444308763232848429065602794978329801779010716257945036427160220963257736665040279129189130371674211458985127835096981565164917685266690134053018200088478193921373742440076755519812127534041702576496759185129465355563903688101217380516353332526915675507766056042587318663462969456564267701413722670065009972967492752730554427083425380412886602327669019662169196805969256844219618299568516206848826704749638687543719456937329707868972843283216811562840028863675304408854285003445079415153649903240777860022292782979611686347058630787871068826584001475690239574479404422549549079627438505853738611345422084238211491902064960044250207862204782701695211052804207809455044992172377044917587710619686129640324652704726369934359846974012268629326106443965934822151613226525059787061286986314279731219707562657498863831757434576311345977808315861775281151642607635347806146376988490485390234998424621507156577373618257070145950288066775887678353202349557744984998694196085328293190336401995962182112976264909436903608364327076545188163252443729307544049638142975875375074170707400203175380972539846090203459505375589377537459345556230028821151300042138369265401277281742378457980128007487659439805702853198533883386441636140600089079841389286603229308922055030898105583312058752058441503760620342845997413965995713197502669589897657103978335458865524772626450326009072526875605187793979049199950194172678729862976616796305801879773860658839190222616097708193205268296015773140169080360888952823352800741800983241024852111973473829009474873017414222122980674392900569201705932218103341002244798629318857245304729542624683517288941539743490303496895693664026118246908825372905183760917746122386187062895264421193583344351686018069738821711550396752459854460509786220577803469035618685072848113164389367884542510954551921218523697066957169737882277560784510372504605516828472383445530053681972067796028138022798627603929916349853209058681723845230852191427329856257368881151875508523268052268065967426914105016785944887917480991374450574603597820828585149173704839513069256736098715695414563327141092481003158987789857375118484240919591705412829990374879159306574062374207372320533111990334770563257546203834363227361183326844827880643502550167018550395494852743911553785093708956185474608505587760430967033117836134257040978321891971271589570171627622452481267349262906569029747481945887281308680489606714633810935708482343678448303388704278107564389932112767080822613027919559288983777119209132249882511768787830387720020387701596560026703516514772502363087515002331568214403104388948556915759872875317176248632918843468504176796362049796982584144726965480583244669284590337070850783238683490658892144607172841826331434811608901265319989072106483087183041178305259681458178323425833277448423716626655320390553118138905857419029472823213707550355909562092054155228906978406954065351270240991466196262109652520894186360322359069196692052263570969348282540844703590261878016670001208075954342458967993835703407915685729095391126145909551568112184655373490699270357033759508301999866093306847951877818679640246983934418727475460153033053351934532710899223088542282012749885413436496176035141176360822491229305203467519158501021399809178263331742599482712414282059062361685770301609911355968529747296576528526302362095343371152970256651340271420920670938292478220490521426000241761532420086685524578230201697094279634791950530890270382864400465806034204643875574559980807870453496007448820990348479238048382875345808513513545947441683840990809334741643417324681608361206116377945814321938152978884465362161057771441344049703330880009508597141245000884478866752058851056259033548063549683571564547185007489878245368791960348908264139527720052294402417937054237038151266826542622181490582075447247052475636461700763062400860973429400900996248741127585659328637752259014912378267329879024748175344557239983822642773175473094763152093552667295233588071825767269720495894046076866777128290250022636577765977718567795761321897149414033978174120280061846042486331667536034564411190200760594204078171957079601083452677986394094967555944606234531650674090943753669807147903967145575100141825585464258090298141676643966419902176646219892215061915956494163340140662948733693400182361936178307823809222867888960337585304648480879291718006185131152859769289777644411812115433673796608797518732443370763152228144924464103882193930449376829904845447618072792402324270684371537798134556594678551284084357643425875783706877224375800575215565818025858279459096921527341993647343900536590449866916640875926676710495916342148308699664195913607019749921429621092386647482526023047004040593747127238302164241829056044796321114082409263438115066024659831823407329717329830792323141007567419185775762459634870208036964296412736312158218297313474409388625687711247778207794010784358367827300295885580599061431559993788064105535689392317582368306868136024105552957330861707659118851361908729927694567085610673163852034364191352671022336338879061413530839212599391117062911562620160949167292671784249892454939093928306066702674693502611837009299839155393962304134050832948736390208093801075899109835804054780927741436901642808007917707167102996190187372991900914018492241869412693209134742521218870175866848912512780216045734096522205411540374441450465687626436107434810136605827707260294446858201985382882029573447951822499109247996596696153656966171351789781214472596208971386649196105197249534414740336543534585519136215360756846953738621329109724394315298266470415353127149582989697560729986095861988166369968784911445998744077162613951994791160074901965020231441476028578324247082439168397274211732169624548043802092048207283763001819819227138175453775496002215429523836078081589396257650983715631287003929385752396591676088236929935697134207423307492441109816903956021341409916098196086477198258673628978518114630991449400220947955211717850771549827569383390316753166468904355460022302702184231021482070528930702041114948901338934604655071840069117001403798767651527486267228995643849681383062058014420693791638333681867892655456914306126493799909559304959443692962613388828544198789799016370829288826950515488988986489097677942333374759789456278554686588059767495663500985936698376821411196496681315272773162379749489717373259540714666792904421075732438648147414062193652373901781309368582241281730814090500533383260054304850791287372105441435808930467302752103044868840104477079909669305655362715909761716970960989830957392352014517820316456210191319500423999394479579688838703344864362789834173378509874843849893670548772320144013749399284122666978575574067595008083804653440025882232663945031399771522111518071054723833611237516317197050203624975847869545489001433987857844181789644346929541526555498967310805672814160707156883319951096822818043780344818620171132602816680428955582647667887051649965611834014718583500803910908398079795669404084398913441924855967858784121158665805836153198708021448693893853684457933274647346779992055431795055547913869421901009886731914286437573802179059918066683344748349395606950891209490037797893505466431587038659699636769948286481503387787522504293961415139082195390899569347947837424732626920787585808950027556366190940030001632899457206087755615058106442523093726080163966136218585665377487973411500888713557567507723747769459919861323105106492070990094854457226819218122666441186240839376477181837074118749842713399350578903031231771224356929847689197834345550203003389779366578120427674149118200747479221206726674134309431663251263859790587012849126449145880990997262048869035130281267327289031527128368372377545245862003902279330889382831296782259100021428748654650050415515359687079514827607856249885030976933428196222487796755739904185885337223291981095658778861379563266159585864201355253123329733935746864560439114600851153708545788966918847088195053202789156564141293033748089511982798611405881476605685110458077172727982476082647836921563421625635033754347906284220568649484694690834901724407637321703567813677682791454862146343873689067598392867493796290489127267275137105625930693766591591159860897235879788313431886307163798345256484326492005749480508176232094340217259510682724140600332675526224912150281678372036433163636800827960210943794436298106557477151011245334305004505090449886611037026413929142215812012115804829008276251957532659841269844243729275347998263188775021049116727107598272165556072403287978665950952410644348500094839714831452080611200204146344846756760756936252051822874675297324005423939060876510727805987968209608712203880814087957446836781707940211799653163350978468817374442445766609384053428384155905525437736440492370113227253989243950739070295427987977139147943702095251982871228369344765982305275825505785683437345430813469156436455102214335621903409181284133281238656867888760455438665800177348764593968565154850085176997320614897901931459237942265575266994634622304408776594281256335803607092215793341707940530299053615010568622337995784181725517637051247991124487852071569998736082194480627936477297852235230073804982311163626593001203573295063498414456122125287300170393708335290668989039259739015459660147444040842472292077734307440003802916063833943174917701162385812636446581852579046092263121858501038230776280207232387733811327895743301075459284091678460276244167979319774560109108300875976767271400809033931366479742511353825093296215852651013272113798391805425464723211538233854814790937327003883428814833147380469209924668555863254103608305912424848524515212183718822113557809752439546870717132848766993636099158622595637991326343361465670705212435576904163658103281447903461486705907045708810327807519042066321844899470992735991854254155977854451877859993444993752818591480321191287849746538486843010889690594029727412457461888362984451232657962006788109927775242748349652663266323425487031433171767890614644582671054974211328741590319025895100082176446751827499408732077139640961497097994150703979920135377492752001820433120491348721002778139697435781413722281675926126239658668825942207278007592740370966973356702936501568653126865808533386684815874749967648145524098379553794707929195014423062327842784621305756317210254176389569904991132147306314550562112695220126216587998621262807047507000098258814994361109868066777879893800609117064070318160864805734329578999131654790395514836768975631468629088006488253352694371840095404725313180814568098077809169394976113477327064649455511025026009772256491206409330752278460654712519832476424533948696333086824751748712200729574780281844784406670326264266913358784146822268499084246512746422026013427453284870472135333554857539026838434512556984743834805229147402254110875682423424044316125338948776407910734727724416169141576707369386696330350258067500641084216197534502003756555813429742199421038002626352793586987012165020347580215810642945873813061547452274651097667829678860573637093736651688316334050541543149952940358732809143540665156701064499387761436170640021765785363566368192497995622179060513886204845585642754468033370237523616141492584514163016048770916958661500822001269726150456254574506064181315248699221831242160092401604887940807308188928407089330184791538683987844987873050537343207947165864779384994088660462698092624714289602831813587126641111574370570470897331958141926669043730167985729047040870625772839250069532616196974280840423138529181317298248832742839256539730331172244082902981068345205082243696857262416716892834566149178343036757051112442704303012891185104965227979292018313037495910953117170467638601912717057730650190713147085438108537632544906231696920270565447723593206745262463443631218290204099196328606983342560658306125662971531372986798382948101124495706884214527919298519214500118899380346461589651477478192420455655353004140851693784111785778830607106048142642474216641218216823972832280419784767899268404142802214060461822097805380326848308443563836361558400547244348152246799984655257226372782760171002096386847885358793079293649582189379778626551177826159335490049793480203826585682685511971510404437883122066634926205618202910812894664864553884915116225284676771656696064114216097171462569115881994595311853228864277292142099483759400538883625339515829161713436877499479461437234480423826000811644262225522664214128608276774616675705499385652351370061718342055784923495011898718196529700106573345533805953416687751364520282762279993318626976968550164311037704605068136178726407824190476566829499603943748529115061828837411903776343172486189234121547281532511979100138738212877780368728475924659525835371510193517496662555145522809390128148088427531382617890128573142900982786533457147373737923508300631159943728811908575123056887117372096891822559698497602066966621492704356648539366162189363038791713589689540902178922243432741580425124286169277964987867754147025299594268785748558330245513075361765066886000948611130180760339357010050211307925782723769686695717997404776861622148724288435221487986832012583816087593990226787898500858023994601503524800529728970864662724779817525434363653040539145970114515299969397135726716284644796558622985800675085501173498724961336435613640717601376006557986998298775397771029342785625224636084391945373133187552478339979565178472454963546341262646252923508984856037206384827710268414001628968750734738333684936039389693832907178941783293908216110073004462101338393073817558924620492316495100025743782493278963372172641655926294012706989988878275205292736523472160939650682469323574599287094089221121390056221293318848917215320167129629392008580763082380187857158941176271633691307470602256059357480040406943986284651034392535296921150126756142768771583074842255579085035808345316401359079773552261056521898347154854763789453929306138528640250379447663186198228046176103081220044895749429792926895490266560466770174458066693200482532003550159420035993974794474706174531936569454289220778094686131742102950781860370833621849469165681942310795626139747891134098933329449362235690104673037381603160353029787007877111501610256929271226991449581835740521542683161716287152418114485148615399887382056033114052069857537582422234044228756547707097680025848264490191198227033920454117824638981644669391788563949668847477231688021294891356287192582716298173974564138283044301804335662885966145004041893783517561636577181001601278276146975190994418456171582994112655439178491408988209149776901607961789138977630669235903013225120141120921981019767528283274997649336556456466120680401779119404949563678769200970035440539375253040676200659033043678812709311371659551156503448386820319017360477618487028402345943049679617650528533517378309965267294960331374082477674848413772089767138761561910941084786057154760537524119309149090121684504469595843780656939307901132864645044369955607808690481101785556337575392785956754849698056515280225904883761574180081227090371052196982846697741073561115918758761194323866839496405855875660872538783180981031624115840945074610844253854103589129331631313268261909426961972164237688958450013245267210402530765223348304573133548528579488301665818232219184908650531913773362096911217810421320599557053593667757325967518478416602615338004145392485221876651671726224800795428705167264735669114352812782535752711932679649889234599352715480268840263155660047789338164191523217147834923469479352625887105018301564861857102396117431430447489599933658842688740270455634406693821054832445553743651348549424711494606113464097402647965702102945459164717383557995201057754817287956732884363282169750482112355069031898843973530724499199808228952541084361840235131175250294638719814113148275483517098179223584093002564586462301331113032342140495123374425521501392390533345723953196634631761286738624589330901075086373813697975819384718872470638834345846206530304013466596506582805365298733434769677784905344607998622866876671358748151046213417630903390842059274180350995250293041546875233558854409023039395813637269998942530644569965089394494091214205762577075579873975083970129439945546941159339770190465274006300115237532463641897835975273671740801631596640073660127159840737817604665356630853762939027768708259749939449619976989690955460090311256740714663221239783049057184435352413996914060463008686726365984856299807823255034020148644416110794255743922881743371108801544901196479288354254050874020444258811195927573029729810638196372285727778491479594045943791950716811602980982564493088694091010106086910359426185706016816271209578151851462408783866366140612300258628329354536282986614182108007914921552074844518134306253588705878580866981466169954301631723046186314128846007062834588704844720738788936161964239216355293522950544842356198344393919164298739755348694155421590246319548560527958462741372284674953495112430925297287834376625977245014933613912338871020197466338112512755869503789050279655751300209692293982141853785446869887854822781322274273655983074393756833028504561094739517980920693046437409232380595772534935070016114968209346789248490327452707276989683633808347799937876985959830700051926053169173692796675905027590209780303150991508261164078250690424821932608880417781642532597239048482416389533737965647556152936698270027329162481980135898143632208984150241712343577219673349977891901216065763104708855656473752222110995092045936427927533548801221799362258127514916727294769973058787308584671013432191268817130070263161327766599027152940730244354008534098591105730742259697590536373666848231047417773221285152699062909707226654455022158778112663154749318256983747688320754109669995847607458491869090939255389309912390826417487843183172351763358301323075746335543993199300789308959353709851276929896288745363585444207756734067176155820990037105602874674257541167701600827234637135324089332542388439284193410475053130325214895880970039621600725309977434246784042175203299471100358100655879603702834030197153682996612742601871795526492490090209596017693355809241937270595025856687123522242831692422864336659702679145302918317455498099706230576882042177157621318796839718538231223406956303940602434152720038904943780555874805763630838943907300178462778699732639935934909581443035025462772890676892033592842732436847785795366515902207145184204908574408307707591987498856763719870348479718816565347440929162258921809562008130526615160078344804423133970762946596292544093216202422537424890636016402682683696876906579149541870915529170714102914777558066202756470948819876722737636820629424843013679292014521081536502742747571252901616885124827788173249873259846297958725492832878531696124876497055229261366170333473199763667575289516820585785450346661483419665096978681224366883685180321948367037806541037672187146199148632901725052742502223497079489648643051028746378007864245346646188165388642585549420306198368103931517443529764929954876850272079307315250646947139406605210284810335634296607626897883646442185180510396744203075193102151988360053635206538295709775290344781679692032531236599297079984270316946557916888373256742037259725573516254328856251389111633842676182998874484896636960469004323729804908725140877064541811003941870770821465221332211081404047197805492738350721486512248411942143714543648180907578926753404811999191076222023958281123480950384158033738750981325515576977273538598012524539922955375689336486519722231997036487787784606641471250965691143667440895893097366777338601889002875145499520629039592836024631425677038554466151631696714256510502214237226134143444352208691755842813000377727824740317443359301125056841031486990180312355736668375469905776363975956333806579945391093105126317523455584029299880781331676935081118871516312417708987330942404652205256148965683993507183357206305791326850778956081958598253879646755226526707869569768762845070595999961914543548557969967919885686387309596402076576172319565780262378773013301970320587219059403846483666414671861332290062598872857287753214637410526975795867523918454254872410126208463252945043539563680139472169771860733019293629364461565929909554369245222441964888802375495499867464885680400839974482281450151196957483754491573774639167302468870281229296057371806124296589918316082225172752836808983348174208503141205727077565601039317156496288985850842700827140439185439338823058888121738358546874763177603071497235326104382106735612739896045291739414847392039998192393293679864497648345447839681985689902221909371441439809673555186146554607205401919574026478125468925166667945173608474136160343446601823639612950380109546856090413904992966355523227748882014277605350949888706467148229434127003283169092138769247594010811763884310128006188663344753314472513442301881747235825227526371554473798297302057503889084930115482610936447988865807557253705267091122672514576488213459254141745609105453460151648040846925356931628639019497908469083276263743194732553792099066574500313180016219927097638628615320880358875280782773338419687081311417610021508424930696979887257553635638440628593997832155292004103439579575881389075242267024212555274076768754988085446731317384515922244027500258482662817842626211677733656197194947729596527588414164212300613641665939398204132297695778168835869059713135769910375133345482183205377808534737948711063942121836558739010949838885424616519904684669861719761655756374666006452516996171698298891073056331838862485857094562443337366955324651669561156154327714416582133137872924756058995800125727316008607464088355455884152673758514039021184463418806034755400581584287764978746199572905950269701918545930614205573058859615977102543423159365584439648107459131380950722410195318341176671344247471346827973016165462256659071869942021727987886746231537803213320522442381871270418806841227363789701276415407219264916655364866931830765108701344448323535419666271121877501632076200737721944696153523837032080817900133809452274415977605272301579565305891415758018447241078857371338545003363039167896304906411616985937001094444397134696370269573576188196865621160344100270874364629255649728475695266760893986244744120425934035224089858745558812903032859226515457515536040114024626761604387454838271457822580560491406535381988559639468160703047303290663283057811545152743486763395392082605244164627428014599505776533624482369790494084554034687043074995887670980076498853590269910734417380293010788563102110646262753016151996815260858273250539202095341970307288216845421495668183625638954482535499620406532656735345144487938784667442710489265854570918514094902057453843557502812287517131922136303639558196915096589335752081592556356569293824034377349474858523859280301497097525507876273926777316382749485378751498414749041061283030073966150673394553124489808478891420002226042309280623339581995587270890674214425374336747457576924198084103566925377236015135169393073400238081276071947992854764560901152606288142212409207936637244599879552431733303640935117872335639304854007754225316868895684001162096610970968277843977952204167828324006366342662546104152390645915153458489063652286477094096205245241589180721504186425571196106242458253886045388747664818318047599334859684590309466027381063815865732591414782861110050761612260052805201307705437516912565578300653878343452321506086872105860653990975416426966927959047393441874218350715162364288090692202811547002821773381186049846727007079303984372860970509738178076825642730990817382258732401684961733564870656485389891931347308643851365769958039195899737219220403306045488820188267029462991321986198840743241477900679386299069339377045155025814639719532647300177989085729024918439339281857635048454364189985848997516958373383123673646518668027641940611827519970885327902366168480124875779941665337748442614780010125137594332710947463770248655755310974637224433631602864169690971564491921170793810183937029594290568010206366172093371743880536705969856190132549209381800093632034970702282738704750189112899830159384857365311665573141308505806745677509450365628965224523079168025317445578663104100807066143637600112685927193707686189973163246860898991531394534318051260589826281183954058052709810911408517744249241353256968802184889834955992804217976915797459087113194205502738327948777888837621077595745489769159293710123292838605472248148716755371280835105750104423442539163318444715717084045372400653845946636299044040053934563895925229522948363312728790789168810051551262754520847583672609816239212338733813622462891807910807182798384211412668397705734063040357526559847522962313911146884356813249746780198790870935541748071214989205714604572140007031518478040284387207299839500661244704225018486410436133688889961709567694814381021738007843828302326265574220768950379281600084209556138547741710736336885456153917918453305342602345997766138465937711338270556408481433654610945808311150599659644471276146935759046143717681286264404753572177579018809478326354058048438474406381124740082722400549734064159278471835967111571611264862816674444658004516301709367977826270365660136884422685474179702354836813884824340628731723017132911697626412303977297338534324005688204885115831463749640633923592972118914439551971928482392154728345619355870274680085350098870078427263325268455645484357170349927146110785647435926716006030327729422331119592023278505687175558085398557561654277631247657835977140669934344924111015074423615008572685535509699191128663908998873048742408497644737430844755511658616758156457039031135828579567722224769375866545029132924700158182075590753901443986690482978364340831368132014433684128156003444898387774986314003820900683751886257619643829588105224384274035851655482810354284520357732818255970772481814138960984201186018169375322000533263758512210983180367569608132514509168937202843043012114607833072251510424900100234185480372578156772237397311801204327173610572090530260779285006883624971659126432486725798276138800002831703119764136166149162882077394766629340425384959203365837550537678609505491998035923792917246894724172366089399035094676770880941339521258542877600811178764045923564251040444492478467546194338022636566987483226800925694726969547810193292172845676341945806283363454378282077633357039400810719067719780536158269808314472158971008992022079093595851443582366646510403554455689401454719499171769059012508341377306541536595209321790207346823891053365916806768425657669395364699935746220096337739062429457623984153962051081323605509429308293732439983153862192446481519214503801628073650412249647046614136964593958952321325172747940724453158592557377947682906206887202844477083321871262396336181065630552116861851420979693871973254889098551936691123268917066172392765606614153712871415693108931830123253673481940613111588848816023028038238540980188957634797483079580513419712686498244478470041267891822885915132190054530808840668971112158499813662437760187700485428475757172688918718419254986444684142251552829316541060200728557483534245969400722183933671008947944517651395976204246460190928966258285669713187914018684812155514349516071163413853268710493886751736963042058620884481464497582855909359201662877866604608403772408573853239846258713802731261720731092912529060311567397558212590820015050871542455497128411099289675869427236438873843922934638398623729090113691667446941193160500772494998937122805535696080369877680699764392860149766223297354131042712878918134729324977164189559295259983916023013973707217150401335489136092425735931790080622302040502818855607892981064630216525559855361358254906221924470398373953703431598082914246788091017887264480294699176272792262299359044919608651547063414584958850322255059022460005045311616854469185308641345884720366111435505331465004652683533804348120337734937064749090728811416207877896448778571567387232958331096961062767602663981676730031516575165682009492615481290890539199678018573762357175873706027314530643415719219861289165536971840841391450143788546163438450856620021733851624345460486849501170429679483746607102496703570933491069266112651020677861142318243354517016582084579988703243226052933748887980814052375926821649350449531737219585931106178515691505675538207083887417724953886532108768179963090435673780881021264412892965384167146220727837844411640069160828295930831537862728740883557419208443025748759981755973824386123745531568457093739727776560501107222074325328009564104850280312915388582771129051398869809916719231745607062829151996019607774920598307676817869922910021165914678426390069262063161752633707585741800222344602083337613719964983354471210339589619755800083450481798176739076952651937275939978553130335948745209896012261521804532504371581358674935641229449036950955670346450766340284376170591515583351253378110656729930517338622398703243474739182457624727369500127543602084963780134387980352841106090036403208308895238065997220802747564538930898504916772135945554739046228258735655134270233616926594445505854901770987290294930920864166041121151364922737868563645126701481650349171977433549883919664828662585489642299181751888255871721075638007238303342183641303024567940493901144347022074445583271984136170233148110515603091833431130379713186004421240367253528242082808836084751010815764422004614515502290275782021309585200493476158759239496574003234073955692367102008846995132641519299265278183667410303858498062010313000179060576738464781707845455071031540607951481822713826299078567526120553399753969210079044565082880696798373914052732389534054361429634213174393246499648105613402723586922160815421847291970008906147078434278746147736461607650996888870016159242620116759396492287417558021069216151659539236346544260895951333119930025366693267239851106202083246173589093162847933480606293695575419717757697352606560645495275436715512352854788290201584253790455131407594054712068311653847976181992884152013372992936994444667029730959432506469865813723079306774617095568854511725607557121814794943975371226093312733703260300925498011285913491547232088541464743281129883649843412921330826224471280493986048786602312788317335890861218191199576142634945560180784334541057772719954307517409119524077171992090908133515847884259857202348094142710175481283994047152153265443409877513582782343790590836055882149112761921760134590802370821747242910343314473132698841686919552303137685459329932179689061916802557381907265062257163166813410737205640606826554635948915260584867196668929721012826198502532071336323043619331535883125606631542319336445647482111294080814631495196832095900253739075017788833663971371370382724076548862622384142513514046495241126603736278512006521813210478898059172693838444334416322741842896191156428845827912275293677036119287613468542812337415898140837641495399730048290814347469443005205451084157397957411827936759938183340442642591072516139755178014078849866034124882696514677003046147666155906408171124235956644069856440092283422846414656022350870378763397219440505542210800939756046573255537753060195635112733783752560973517314565931394622214466250636563442223558600738617310581903203012699207762542676392677180086793763347467117668741395893122669801780505419286684871599972920464954979403113144287413619850302469917514177074583435373005288792362596439140659567911708033757638594789668587658831229164885295700396480689189991992802010044272970053123358377897467688648292428501212935808794871704462138521584870361318842212933127621972587335359072577901326248617201518655945099994986610547694896299010431935547913715643936489738510672546462127322502175120345477274872708429824681742488907606816408250687450614570054036337197649441164856038282358323887289740446774068494119333636938662114875872853295485906681548894283473548494919058086512771759270213624693118723262990850221062324241498528396722750479305515437043318343274084357096301309162355827438944975063629935133650465693266405780412336324718054341584551063088778447637459671242749536844988199538341598235053736270770061596794287966996934287688934958342592078959939420980011685911383236266183203383650981402359308807834551460677406298723468507952387142393469513057659187120132389840954315452426029362907178768280409180791485739845541098451226889437263926973932954046910792747729799840799405603666363264594399607638600011130681203842107421314761932309371149084104397997190780204873271593248386980300154486186770553994613667370376111909290785553317885677634093884882410575880805167355436206932329950779323459169907696545035080430753835947769735294810163352236872503731162697304364736976354333520965398187382191084604066394529274335606012094048216868572817613093313008698383500369833029937644376587605266046026089072150312787956909807779573267438354128836728634427647294007599828912497796308817098423152783390944414176960285166638131031327918942627462774133124266812754672852802384669649907095733877075440955082900140859505457297987184107401909505159623971402221623619131466482300354701663082647921787012026598051893158059799867575973475651571585709182822585302532360431457738163300814325412984077627558539871424757622182192978141704476175461695727152170558452851103840041506583926102466081991509967205077716059396367466704990560127458648948179714793562823019084439178429565272751874674509945765338012389545035379631483541800895534387879130761300391760091774427743165751144208184170895901345388136935364555050886539470096854017895910193048124626361761836416399307414347092264046107481934093732437600290445484154866513818245142619138495047045687534521625293553550833919169049046801751811714815892818899628277141700817588601034873553051313761875022330942123814348697819356509242189728912312519194498239275722276479180518147984234187588031336942846838854377794141352190098007887048206216418820812139158744952247035345232711680547671491864752505009585482636265346746415278845163291692648044772655647056720150755645824039579910507597015870556988229581829397921795157362583399176914302394289217673119890039124587087421529593709165181238812081766674763897539852569944238163335034243503365324087456137712144857741492180885650754373336612859012592312410987442610062884773369516881237882043439876112475522280602478120043615805701225644258043669147369465587235464522185324755747895659044037340638234683876325196412361619523170185315596863218317410855781209724721285491688548581486202906799728203896380069357365151743709054616121553988081928658717786900085138469893505159432838197995899896509715439257398192623509204023767839194454576783473135836386016322041095186891511421536423925097223840247093108323287200869449948665967960106568667299899587500137758406328051324049537966147410517678705609932977395151090098947123949017497831932663471009507707740973775993651554245678590217336434188446196663147165183623706522541919653747376164703665355199966397992804245204684464566153903156037828639826769453465576387533496932951495805208768685795756089111689378920421795350610331279958606601411697350792414608382256824700611732601950042052374138187809514753224852313024528083840962906375318150869476063912783930117431683538984733909625350365405123853904669529660946749529344806111393072484726182933940153674574251701767215962344358461266639123173363844162405124092482865099746101407212279152741928655382139924457869335028260812056772127193895011720125047739058845887243479004463371999171755447483099933947532662083274679325457246325680239709873269836235039639225467456705914382123958848400434649609205798939392674143888301840754019349549823944070631731167772494441958665848816326979918378595038412273948128980619533176220311790189267136995121753710323245321780188119424196346754964660255651823804550106908819279156177085539495100951481847519335740746237384785119403720591623699021538888806212691229825385869042853230647684065088014490817583024488858965088270557228189273496839814070686723680120562820736700747719787664351788316282844061302388289477485249892362605562072360646790747781922210147876898065498421645829093434499334346893433469844598437100749914388957289738848149295762710654699846047816911413438781806328290085018803152141574653189246829981343294851747651241220642461650676207982910504276129191100867492307375129431019536888896487567858565810868649579700879421857411177451882008051312664016458550267533181937232466185294054550296255303982769146368257215238898632887247966549341635515893661603942429113110029625160975689389963310680446034880260403939091504880587503642688336855353281407353449812872417238581636350478231484148500864992470748700208971848029491257605068607104475607138452162123811878356243356059347438518621808075654360711174383759365148994539590413699293538272131932789574304007229591684389816394829238833316211784187017558286691428301254740378740843829368660812374649556303791184628030605857898406496799694207189774892975715241023368938076186036920701338404290704009031315607195261754775153122304723440323449558380166497474236747755687174422987993766405666877018109836408589924833406837553665585544786067912584688075630323617526584627574978879758276321992035417542014679856499741742365037201609486043804059442696020754199300230907780154772878805288421962323633287500845380610665953842036031228163579716358441145871988521742269381049977288528595168610336902543260000564125954678346612633250570726505858761534951075051888875689970627105433622787729871460333615758776526675719322930712516692576474723503830700098865257932225254413296154827783990154635419738278060705398985837014330076928395546859375599538080764843570098259131076702497717853964209756209766098723621457084613318971718607430622217613960334634889544761275704006121851341081976507792391679058421513709198551072098550305938431553044212569817990151660023536053309508854690372579246704728866936259907662130848941234400866596681934583727309063766573763971747463730743105833897228377237965675524696894397154972267276421247049613603810550880812624041372062160550344769069572512807613498099575019439735873872756220508051408540278370816123379040045260179817665022823527816700197634691434805193726935978123245638816527431047996177582798988515677195244485813533071497138112957012195645548956126020575354344421594558344411495080413481448084791332845319564826482888528833562365252598045512096448584564548107568928245667692945023159416583098325623981274358935511581822109792325352597847564203534011088563181860945081937073192797938142743345668552771539487692873286928758951881222541682228084983854853822695006699626673904557095203090695844974002014696102239548744343437492877095403897364986207933531470848026268004181084881874324118504063390016485645022710405691945683529819568016541898336172003877571919209316995231572507792434097984889216526284818457703804385033947972746239574214818171040067750554858525654086978791830863715411690789700686074067168764445480422482124637527282648441575182596487608344601909544448945638886559733362163203614020811395960256286869263367754490252602233468730786994902394526193592486611138958735007043624725882820595821867558686655279713262809701316350715518890045689372843210980962246678317255314957442696532737566800802532566363382567094726390571436570618666832496283901879628227884342929909623679272126695953819775938069847631521311579675046383307626202117875144168625321997555422798764516928446370768994019966270657481106151920430388566279746624726468519491829454642033539799599863409731110804798866993369394338761628230551962634513808348260527807432588030942095877782503303563984663003658365287890346634198377699201037543123280760698628497222267456765841787737438647272727368729990112404743841949726138387165500236501389483863718434624956929523780150126764809864747118672122672444794204751104667498104095079182037251356483296987041752200726098694165705185920623232634377709968605521614370962450838004452698557322360524781289573650844053921263984733594293216073012918859391241157650565913598551366036775353567448753304640315785270015835765532465589572321762184013389170651775160160519897574122864642126133460249945253690653384144347664556650314830376996930678513171238387699697139559676762026414153616154234452206205552329102394425694487636346352393071664843248635086061962582411548855467561917742987241964781196365857030009405519219393288416755166911591837515839526549142929495760677211560348427858316457940599787723554739305811178536666781370944856334186103565870481400378100064180509819194688778417037476574625544697884809768877654545144023797681012686800669014134714960754009856721428159327659837369085603260289028073560275316527734375236657170609971823491897175022124347176535194924978797584886681332069376400422817416062732745448082053735853109771292873814412274985298455364770420549243227049881686573517094165154313628560163975054104713704277671391675446120715898579421575621170082836980989205143014348788386329549762489038529878153823175825204794733423577461979731261113168567318750492487350510050716000855161906814647100621241327860160031862708315412052946679305688481235737331955749315524360327342294658742245872952826137313729592903780922890008635010217551047063838177923828640688505613679316381471434752071920329185244437324070995817979192165443843147242545619600220950875608893682208098735626351186229541517025008739099870095518276260117906193023835127944364380520561612865030153192968817184535788569124531516497729224997721129674165250378391761642876581373598261215646622900408966850676131683569395324858273074172143503751739400913735632748102880228558746193503336715652069256033685168768667609445099590908571183597695898308822455175050135413238682762159057698901533798021758279563090579084122288991630056262458538018508770677715045880798058818045330495274054305939398628984045959445435134426059096967285240614626539422710373111878214573326326956130009108748663837986093567194246332768297950401676831369032916191862072505754971326357307520389894122630935633389750964989422468962990355177325188827342131652111811784642396539130355376158152274968972869810721757147624690890960822339723337932569166122553996206155378978608934232540169434447243723193855931250179918130069444972264741797385073543373728299187634562846633175178053733455629906800788206012901207953671216662458774709471918300757327105978693770310822874309694666635713664979700042592508398510878926609151536097457806702017749622054445346102737709368838792300962306576007794326394993901076726257641892038844056877887267143376318189522869311711423051011061782218788096724159847857735166817456495287588352062113619395265504963861214398487304255596803890912019091991997077069345007089410559348284459012199396713495855421591198329096484141925662906933528323803232966164043002551118381904293359342495285315560978508483249997959597209887531335840666076847791438593412760264503411151957651367432939813390022384510457101475899289641147770634557533220511698684012975746604810284201561545510587182842532238735871757333444400651070395391795097717070743920458965348639777886248166451511993519802105302419811898962572341329622456338730067788960097812764385094919060803220227613931672518806655817467780627467972624188548273869708363694100299382177345559554677223314334367598381454512774781160528225837722192632340027225136778810246684858918485527730877742817358333442985013687029023179450308420716895263244067860613866238305023030701881956623561455406003344180011113186842419282470718727793833195424547579273043767080954232233377824438264858502856807551205626613307327882975211522111034212015714902152368974921174351383446259125804897769777834043454719905794187617865381720437295052195520587360801101783388540361804419759465905282836806562957198849801703284789619647804881397632669859680701161941364040083666149608910799688915543745425326180658747913266047338634960100039059768357668949669066257015858133938930978787220331598117646948670842558051743301154320981830541312067133966683004910430994172123338262270758209096649003880468353139541237315658663741769104502383686825346243639116045718708281882779812989155375451288746352702017217298175290201937173831973366707781398233903166714158752340153590370558107871106374154183944109288981159499362262535738794017975368668103108768436077825587126813140224936988806516300770404357569462830659723876458254129090133848722945464862224334848119818586649815632511314714911230935283497715073062164460075751438492856631952086670796682068642541353243428934365917047790408839440457312669485299701243722568169560731169900154517321632519250021754845591938575713002073957736195150229727369630567954616136926542947346869167826026523668464930671128793430443302636591527423298987972055242839426059976716119818429128574565861634670271318567629637085547327678772914227933669009287862392556650374279481521957288057226601589609018771030406816319867339365677463926150835149030200153213462570123382495405576757906790730916270293291899333636817648102808032596931732706408375893202417132974732807828409199157442578426858451025174228294952914018175793745099817490692773549549764864210119715698656551989535698361090098270767856318737915580332221740418902377827482771679711959307578526022975591671641899100202096064178935154154610088058547841774214510837169492029481727417143555898902421693326983648551678330019214196352531197506183844885125169854947012887122142832545177100402981348401248422636197326572983726853939352700715289939761781647379646375796030463545123868104815244123725608016119515749150219857354783996928271611112800814230365220016844366476881754655538088794208764646372047026128144033365263238451721566382305920125416356155922557005660892533944791420768605001818568778185371559899932003277390803848249113851627244615257231633826870471910567693217619174933822239247115461028323120000396117219827806019249585243223249952692932942788288081530158273350764889414029147511600700204309177521372646724957310055988582360709443700870499065758274782673826667676853485378290958206001511002241645889669343103518712659512060394009353493525442507493458146850509591184093580164313017241429605110531821153458631856013783111452687882267368352812410639362053187621723480224490094693249080627181948221539583544895986962713706391687701671205482958809785696322449041186406926507358325631439498035650030599646188690973970413415717878680184836129864904466805640202825896321297294048053669737828101774862823386965035026660012286972750028757184492365969693313704150434055792942595462116442354835281098200461009747313492297335817592827556590742547249463113208531077173386244019330059289455797001082375682773529904501604694541895553765050504008325410034020645773447648064111500854891040350561979049593402639072912038247673406227503594423642837563474135014788074240865725846285985559039891978682346422122760873341017656949329126885345640930962718850577137740280408708006765545384213344061860179296526045150024670767536951769626021373708796632060040237816553966528164758688247576160258861699758712577208045741451121741490425085051029869765880540858870953277758203796724990050023952102406491380623638369192427363184824837253107672948747707854678227851763886301089228346358945896291755600715716978189317322715276766336754126923439036206503818854724575991824409317263653052092301317621316826309917998719623818020910319994608899888178473642099528044049590387868223989403288423638963378664777994988242388746563283010324631274160188712158795605787546936565436154842212467028542323927742688819893894509475714270142649694960338989478117413516997382738461324934813880068745135823402921835772585925466083927522207514867693115020313785449357148027690227889662188599865857518114050404425856543364641663393469307702401769619510627838734585510822883015658930547898915687001009560972175448364796743829490834832375407572145932817190978554637555720767565182614919581797739165634501423328606261991990088101597390953379400010414518725177135434097807059467616192558706286191206887571487438079221965059170153936104718557237200379486491237113303529417202952197047980501397385344847489652495972561137230550711236243354950744643351312170212389094057216749682364132324013480669642453333276087325301667696717898638984382220374705370077259742514680689458487870886809376721429138605958946091625881125851208245265102518411580344634906430286657000677913031849842536600658283336486821088356559868458217415785785925045122587562340707698330227910825256409468227235994036977166947610463862128112787176274410979200372533972885828900182702391654329018000328730505803089532148062452177101897645385862045714488760044420161782921110447554112679886716645868263467643517273821091399496006039425057294542933053792997852360440983326232776382645459041036823547774801462740473640459634909877101822173989655521896287520674421023413882951338531865077058850788217125994719058162900241111384150128243505656983959009397951884042048444610069322787029488063403615190162441662507684148791687909711261789877746259046284604687377979271436809215830210126869182934497991329491754247768111358916387338529968998143895502618920899552033044047580554246848320441558412156870408686817577473808728301357028261109798611356249962398477934780162167562794970750907339731500519462915354008613329575828502429318401711445594642236008903223654155259313516359601356762924504456344564012189026837110387249941008683195190421959597380988641552085736279969898385458712808735725922672466708609844810225407104333536607171008752545022160399637945339092395270302263699646004833045666192048376346106294972860453114705804674725268553486027453872616028850383065806870527652334741455476535083155461554343861543803661989636482225949142126818687493502806646480923403281386894863877846448163254031192276900749322637212979514256542087447209990921141598155107018658693875026439531509484590010863483523067096882447943022015857664806006274877472957511937932267194094746952494917781284248641140872624359592299160251938227312959910843078444938634179633339162632741523594140231696400826313693381025498649063780087821541502717626486155320672095867003628179948646140091848804348344405523749478845208747240133766867858370766007662872224147670640369992609747953277086821340546716956406945032971672672984926954360129153429468395127348000026907292880448259659158297068861846266657398486811274102277919881130629050480888204683641915942032042371061265142350282544742074488369661558497306049806967643971749799854709363170254527510635333754467094937796635205750516075006163587134518809767947108886769432648037429845348618716629082435536107900430765526756474718187028619863043559066594612672804643857842950625781553962271886655449569921994436317356768318847264362648215991524932629191688660119814661900518086147873795432299634479033720027012053419343404561225312364133051750910037739532239685305920629554561664213150001790105623392072655951598730739096378120138385262082712678637267620891542900762043712464633026493296631207892306029423439352717198603633488079174602989427914428318534528591822262386189138853753480676403786852745531739683294760169209800033366556987607447073380201327028613546643911004842941901996639580913848034167526350955741438441868669624472273029975791570683358549831302834615380184057653357370800272154096206264166648442301532894076320617055670849837342673326089939307852410644596321599918818347337514994600882673039219264742773922740547990514041613034055923205731164709482203712327468118144210303549099916977527694114409136737166285117736303793496587006984185340898141610292298368654824769728737667382277290517406116407380078315468306812450488364971046533323286987072575528080101786485283030586465580642079341104077427042937579144589403874174092142428195314401071004016051859502510500866346925919625263428332580177205334080720204972320561384696574778379059296122234924687616233829263003584457389840512393387472465594580806632095472624711385281430482766245457123105772612335436070789246621202606438203938159060163245191934663933032183733366261564136433844428383772172101908874157850071010964643084445053406480761113279797599060249637457427951964643978531020675632167257429446623482944917932879948509007437361154766491283811095924680740878887111753342710105842201855528955036484774479655342106527545848701445951454583983039143806783259957465385698172663958923128352131522969593050738958088991104784880110359340063932636499390233785629774356187625281460131291743281544275272947286403346017479005534064586218242646528079798516399809430746670369246392340718710659668857928625892804029144215489393192731267850643171775030831943596763495876961138790765901786152258059582733864850701301784782395154271973721143505926689379562296650987495793408285335366440529973136675823507530999134388157583576796170438678583786004034387762440018220898098299204734847659000670444555128373988646439718425776377570589945666116531051715274197345758018792507086143156599591612503336383015594059700219916015948641250450555536914850204727792165400745255449340090221624666977773215136886812275762155440687699430420292803694099683783957383019740436843430889264262918914083501361580926974851649660627757679142192242186839365512840406595967482015679445652142623598273186724572976327543497466305630028181520938738066779744263930258673105625557788012809521470208909937519419860934252845255196322124934834635849306414696145621305167129644263722427419329424069193412399190997019372648476407756649062207677843730850820263584470938164072608038700295125687630981865732912282045158831777639517394578954543340331908566366198078491339986390282896246298285180806393256414037729955092747719238893978223688712860048022671001937884246786338543297765461422856913806244284066943039295968619048846365566511309995643927298650674980180551933061069249973797878864774260632345279554770658599284123548093934712071254981037856033026301541357354255595872286846224012227011942792553238466271734764708441731617318252456673838546510118667736784355619158235337195926380878084594428616680561009665247564726896343198887144798176056501599769239789587702145733001377438284537156407189735615777868056579861082768722057724386658159646886724546964203722949495675545291307331365418082032129859311453185866224228231019477284900262746905270228081695005265915856726541755381554117922380874511852198590063322745786721985007115808754819925640814287046337801430964553161660531869226933831374530041888330662697236682550823697065619314276359759226135119396886200702710393169747819794223159441221789731095722454693659772814509620623190188701491280893007540093057028028965839866401178219893205857415386341093131898275322598543742530172149281811426650683962070211389937239362732107458685491161161641886636046189526046588660921857315579498475652455358892388632105454708534577667581336707069516977667239088873330385477866393084176393116188123699516423635722895047049990599212057611651421135182355136213533543551453317762331344729693028428448399781159204825150502623293744701512861080279779210380277570335604793102206368682353784092707375783722112195729011510487443027800512894058589090327052925148214709397948361166398661467235197122411671943904491674832811034718707064563820851652115018806147905622624675694976421599521105001606563461414505851164972502816502586328208762766980904565148739762317427176548843932697112822548787711698750782730870142679867776847329924680740380350202629045224921379292291083419248736142592327254809999724094462719678706703580932875353963266599820383483933403340689339492974648702897311335371551935984632576072960793369954150616808673561126823761821226770238311314755973643819885311746033979362527541739828183790333953354157847101079436681956946347409898389443061034921044875641592360450663870412507332806957400763268143403843872829095824723515764896432535149370981533199070852115400352131646988318771849041494275027797799703295777394505488117070349023587366662114983406256094533903631748617691125523590529827129637666821297469828296289698578168298633392326433136804904909216867964720276131415472824108306486929224908559179561634219228299250731883274397975563196223899966689386681421809834084163105077788762759042283358049790458566900627515538902749554921392773305298446605044591649271495063833365863583788268994068327292230636244836273499247932789004041734439021470765288185379145162983597726073498938450364100836239673253357254837089359982393626908667445888848515868624399136671231508090856139540192162162292282357833237203804189319247122974653229124616776704825474893611861393731265938469092232221519515081171512429946482230947082585506516626122951880353718974729088321538509910786137393371650295594593379670723835774017212506140219377137767416257055883030004822864217833851191888772892997886924311231328751579935297906680177149982249188303852263734338630484395513571540268849374060406351271809661002099693978511567816360591745620831551335371485664730027737182270860311789631238695700367759203374584296930395702151545632260238714237625529822050742128873301500464008040870740529170382784170472284148195380177107729917743150868447812956337823491682069252623520951283345142834486104748920325385359127768935939466607011454237339784363154053943371087265365756411867679046644784048665465385394805333953260008765284653383979643585296467990140480439874264580260382813425907291710941330777026059625638817494732156634895531275032684836439985511297738114769536857536455868947532344500123282687819736742668380181086184838156994043840874479311766592451671018821377956232745254040351746918406147951811937463165442366825414331268205358471209395905507479231059557650577590414852293326774074750439170831578327628892969415572621306278771731219947695734628471376853677343926301360694726589009369763742635503660634198058195417224906077754198445669784495428505965999737658599875852493100302121749417209190434964292055744091072839138546937260487051851744352872820998229082597197935647019600853007563353491080134482241590958370223413807125397541454019565908425965020744453413332831610459205674551467778385991426410868512628749229153755885637808897092371113907397376949694294721002658757708050970182858350833435410176281241231370077419866942812387174999127270760908575289991004534311940097510529582872117221293607415576179359071100251089892972308130534200708522664410237105006482062701324206752033852847112410526541453700758324181740192814104222281770236412888345236080643099631897971664796235079563558443299564243519461964432088325058886796262149180413662734888593864196771607305896730158173429377798757475402429030738188633311731099240932652212367321998671593771948142519087024591293874445452893613558550424318636691460038340683280515817504126663680327158699053396586944774588985212038682795562942375360636450155674136842295853586433483549663658576181111293358832734441742463438949579081008360244344960759863331710495335303056461225743979576503123890280459922523592392606137990273348275360707283473964151004831138858092529522328685284899504806925482259507144888978906369419897128469294686828892806065478464664080685386509167348699053634438267146225700387113178800836625301821112939012965438926768033595371275830227206126923717264596442656773382947829292900322695866915464817188312118304577935101382875434809050482099678302124209081338321835960325747965632631968171784955313153799354809499909188759411602847939528927123668928700288942546161039717107249866009678595504713372843788811377514810963954327205425950266201585248705670645179774643908333778653832657701304612555671710263510869655532855978954259325656271026828424730119363330883890701890537577880346268998314561705396388385445150314862003176633488592241040422014509909759001619873566911529029395918010782240630381627018748435773623157318381827147937097223776589084786036453116409984723385979684367101899775729399342421732753598642356430073755629970302023199825073915189489815593792172373038585861732181339593899588731631046260196117324543328448641774323273282490598814630786341221066696270896492250421897034558359353777036995423483901957209931751893234127906107303806060571930926408709957882395118605985058016585740825746260321813647867363829037128915960241210605471614152888264678088750780356115160739764226107744841637467648995076759652519228548521009903315554089519620752176424715772058104471064515001507631113103110434069404241654329431161768814901602654353523843364177003114435591563100262742262811223269952406716043959653242991531986195534579486406087275163618854697803897891086341702636671228140395418551670783822195416002800713438997464949006000731580887413114475091376623230690227950456859147897050134613687484439397667866983274727130502952520757454942705639873974399428826343263959647969381123143877535660610834191450217462000138883931525048449501196224406334785545577893856991606891624374648706609000399458112677820838446158266312947714620672902845132738565818697078982717000894965748586295609170813653361224619964079204879484805435690785543251058663542284173482093585050898467189245831673696660020912353621034077818062137153090523739678816803664579588113422170875544890689786426283286421566257123795695088968301773632437893793482879034292803024334390674879712575022479730264651990814313246184230006262834566488495721002535798833153483250602582257555687648716517267272046222862961527745103805976464082768816201307623312796864910435072636680834905105378156520854297572283502518331618414312426781931315500651251659846436995060603361636102843653803606013262673288245032149522523293812672270513307009766446035863338301262973377205146750483686126636327830222098194608347315103953772731348679268742994048626664741505658548907103788088677548466849527787804415861678812740487355059736857347589919836048620824780184484429696599914665793297014881038921558412244351457757691821218975856415730223920236830536570583883589251865829224628791108597206904469523034626801425689491836249783754948707862985625476685377812589350255808722547618977448210713260816235382690448558589109326759308145992344555010818368644261659886356761469083398164348870734422311873102976246062723304773961645362209743793060812728802776015298507915660034212689799741854574840381233969002418543496020464560560022984077190406336778577416865444894604127704383960557898869191678465662839139027279173578631226562719666818011122096671242466963079455136726557618207629711976891744956292575466199059855417446473930877857435507578612469427619868454684766643578009658459587874297941780917834320562206151711510866619499245600713552358642374910474481393984216714359849582307411062584231290147303074298729863632218400312322760568072007029497102437131634171714660447112289529558610582450827499362486814278660896972100395252199941698864218432554800750921683172024389632801318893218688735657719472153942031238260563335581507778032950803495623360648922045922764260693837051087828200902147524176965591277077156737860980389294224892376415993483339105060615507588852631077041016492157443809148313988272197724219706488313783538260862979946191863915788385762869823230907852835390365909063505074448649920983373695570925076419419739504864628288278784722261392081033644491102522187430525295712664610818068936213305849375323408131319056710373212573860228988041261190306673485428119285809441750103655265789901914516458789674277553079949314705348406241219920739483459085871794311814070202685539306608362698913913135731887966505794651180007099594526937847742145619693151962122039560209029347049508791031394012610575158322416789968607674998502997419783174996216325412919803711122061485321525993544894977470480524760327192666884128806958582377979282634383418330657710609547878993226615038386430787109207941121772272783998341187051724521630907650730310390740767113880065254859516479607001662355391611391489573157348417251284727883905458788743525013532205981850852087062608554629052079665235264889574084142019726163968010478873058297241920489875714001644708083521635872490484076314851430089452039763721003513306688375865973823069317036527788241259462174664395162362607084400624605107360333246864739003461263200701851641929239866763766145503152089436664735069231401356390294652703566441830157130871067448454553148013072797968152677417947333213989172676389625900448249473589625254131398629144168699810760047070252125167530931741214876862145283307741537802095786337347582886511683570711466531841160193863290752037987173682918329182771803319016096374432357672430198372704902825437728093476668226779333665917667795622995999013940036097935254091225055488264570365961248257965835163987951490898689455858634307121824467157071534561069948903982717991955033712589800479965471295579074494181048774244024678793405252589894617692810369468788743191716537844036473128266673449245409559077027018645577636362400650719349524867615376019372923544475752920979005637744324815841039943831177358813984808551739837007042486988489389216397024169283487799368820200171507122083736421113744317357671051254279855866120891469970744235195117301807900666147025065188609582842414166701390970823153389543793453969195725903415353459929799535413705264103088147923471533357081023593525368794585716990717688198761036464577795591253371834022831904245739930043609167433378156317087726018802826588621336441736308989682366739497395102645965719288626892319258124330223369868978533731612618440369010735308453432235838615066751817681650509142512766222500738386896449064489968000798669080096552092414296314641693616521272431477906379446609787164695673510502510831314200414976151120401628836781514553568048271808664372182127457000733458502907392385707805258268540748695501875963991082026802474421631360126139382397350652750024468134764947316676838580889917961731018892705991606133472561342852179787280835277853782829683362637194773625618899173014934969786914512251938779812655912586535263085866739184752675512263563584110979892093349708003771998312509106695364976008662485156124030967233266150419226607182875995718352576643702250189131259263892684832152323938499499705468587744918468414142611711757207282162702966794313088950261312100654430981967939951841336941355291881349625256418030277240851343428096277829979118740607376175356949409059369129702705682607771727610633913052499238391162580404268345599823407622219453763867874264828172147805603161508780428308158618110856141377947516953885996711186690434876447464590658226307615209803144472848971861592148440811927430575056453644493605921941964658914834787447475687197451693991525236192023016415400892403995405956931251859003214528014003207602401288224158230009978833437747202326644079979219361145259907074974198932365580115686811266075045859888539764374080567581756035241467148199144261797800038810036505969942285552421735123363747968384426937376701113588276613482537052308885410807501138774656541080394280183524150327749191873786634585847461816399944485009681066023599807810519324860260039212235665791860196851284441158715124267489401971922226616704000062193027942864708243815765178921616059028794748378342098950630072667952221103794754083483087970821761071905480913697651204332168543844789464945790724993697084634414383521733543224116346687479194670008014556719101100484249670932608462874628376818316216585393040671643952958529519219808521120060810657092060807518406449848100380375157691853610177073697356125059399986447425594224063983554630927478679820939545271680810542721893362503829323218730576957222173581101604161801040128923437183418699968062230191273535987828412585688052483194578415706603801842111923783828179641888676469949245150097655300437658531044628542556782914929042103242991120624140759975183255105577012169558545880339350205377653248026699326638391803643302450459192051878450804407404392536210794243215030944416960464973920689482457771742543044701807636138935525446503251349956858895665627079579838710670492497753716943555317481496217852046050581949570578531380593454968400449407207209206002447612651736780073937891948194400165719534879068268756775416047372663525578496160425719758169245080286219300359743651391261202479757252910251648517253035224605890348099983346601420062189155200504735226779670802119008811873616458108529444708534002484684407769209185197219467138033297674164621704964748919011240215207343199872565384410593670957899431407605881923559577639799643922976549233913711877006972039078542723904010350272598000327775182268596293491095723059686371978905224458453252610634903369187604876818006054223436155692661096941260681296664070027514397145724914991518334499481947890177574943262620862176779920033250180250202754841301154842115461052649846997699672704726138342118228438273174826528432006231455680972670233518987218808870309265155023203479109574922828316858435504379255837114042291119445697363879608500006706254493010232847843288349581694281677824025845677122211563807039980024376651076076724273955368798273067727044338016459819752876665019905406204854411165534699420906189604307752445978796990943444633767227152572042479590988433442388513906624318068014222140484339739431930653532335140020282593178184532728157864831698620239204371214488704301439934521799976587957405571345153872817591358840691471939963486867561179500475655188758165997864330045140329507714285002131435179891264681062477019867666576249944868682521554207407658194703791187135923057537913048515348454176444876984376722161614698262493702069983810420930337211006318308588711182226981002220516824040171925844683098600293931907825657860926462768009275425308207863542273347939842596883426018312476475952186847307596310489417622121591609182821960400041124307728088006797077380483503555563853008600635110840461894942768869569622850270563563414014429749673630225079166853933212443456471739978629591841253276228834616587193195683491411609126412110831036545329105856830563302691967306503261664699930675677704019370234761515329906009216527992944406294672517157138255992681404946486609579070044371789912486254969682844706163596961237543128527235819093612309012389151080449744429117236569392868467305583621002137014334388354484577836211233185976013694359073300992044248548344111471800937004766153689899160706428618295491162658933371478381127319748883158952825428245438841726387055030748618049431217646361183860967258191561197620669698875647090997867323522143363914340790438060697866088394150492403995139307243211134219702005808245041726493992743558629706994367256602244911196377810659401353744188141152452495441705453681421954057897038000587475261861049419321619082514813669603491618702967816577031638277607042417200114857446112950565297123147170066817265225045973534548256748247745916645138570711735348175669681542305214179754793382657525519034463434808595319670641493834098108945464486971872930182842492940256217920089529935966068159179861439450985518904107069246568233213244864797349583159699469996102977684351280598325257904458859771572229432063088669795913928940774156471031491486779066474505157062409069537707225598442344097078076075648682523941679685280367784539870441892431340423538727663482944689190534528572991605968492049043236019074872198236571356255164401202302556144580103340150717018328551609226825547260866431772659026151493487733511089344344093990123851330528618113917183640010875316687305185129570288959260243677033954811875521459920091314764041253777751459858727942595505656108222383361523344195753278143909461348906625036945380791056308174617486505275470644406546031262400160786234579068437642784795706123034779975055331164659988516498212271672631997676827093381569786652938690346211867700962101063162701787563832202476949182361820728153591420414307392490221037991004097225226540223840757920748397548268376899851178719562073452761533468204773073728347440264016398056212233150766505634403204083218280976658920396587075002550099463959322539458502219534537866532810798423184755422695436774652110746409608213522948630342137403133780261175065056691173372009617057304066280655249788877091450889241952838608314822524630077961036351742594472605133799222332602714507001841738064599641840869984686690275630975827826470046213000261223058679912889981313665880624017850858546903608807787177022433027982251777175421239581309019628737333485232698148291392453384073449392032103781027642205070323679027154950007082357261612588531249071713512641847503932789429862409920137096755823890231769284946027107934953052668184505402404628115444303642037598615568939923919651303127341162074187706430561309412231818030103295764221769013418767341284908470894833245871300164028180828063988559006360153965868910488171370666229664853836135538489495009726762135665450520509803290389308008295101449526792938522787291379100681733737776460704348213399853252197514284250842077024940384019786745180034099778499446767235006412300392303544933418375599256375580300398920843679997288485110682309945961843676118037290432988679743379583001229497660189978694296763408063405495803668356307876973259635032718931320491523054429286599325077151101880981321670136027167281414077340994457642635150234343085772883239975920097890029276414749405057630277183463852022194974933050453454508510842665121485711751954054702565265789419609798664735996236249702226726274989457776414433030138862426537078517627011940568421530405630981233985813056782732193075676621506099943510462655375246199823213071403980120353490091783920209894484640892580604203862194167999944196637214307773835635652296114299850776272893120981717353930217156839912975076739628973884535761854741797969714719035962332750224349278930761242009809220041733067044465954887927446893981209939138464210839157985340906910707187607382123822327662186831629591789880423364054752980806204483568776089644337608690505929237014796261055121634642790562212504495863573703306771315184273313304180610233431409507400524314265739404114734250557513635115061012156988591158932076920711713661847920237216155651317740465251389045246599417754338971061570679522616947170831019535647515826067888021337788032689503682649631571652118747833680294006019408210988942742344987702886917068026748354960976777440558957729030369551155263837180561164528336708237557765021138879189491216977088708860727832967435943412997649496501950480112786861345594519585350614245740332151830658256382926559168955241238623421406998614639652028246560445242521823853861854196171567887666904125041563299020826634080569079943730070145362414333764169829615069498224240880732614592671907570225055797920520547039594121470607654947020266051551601774710690842291304539015465164423109928269666391422434454201008533924003331948787041027806856956772790327677944521252048610259893507254367859085659332310103933771139703435881337698277805746047933236217510267904028491691376884590089498093175690503323065347471253975368052005889860923854774077579532489448701706969314850224207254330898075138206465422547835860719686347531706622514268202311511148828773012410590919258110668269112240211524883453151236177284133000414323094810656080814660766868399750569276252317661574168800413368257342642408636010153643130485467814549185867721884191959029317798198737823841883495183392670377514805395491079630810921690110916606075431216791483437171503171818764850486918838177371105458041722098435981505499584194566058928256301912241966338330369145380845702451675819773999968081067807641686222749668470133882967609497599676580001140237592956177626542838909767065528792671821346443744055929018827002898389347136778247757631168947096956485923826692079655118479692538374118179724845776924077190748913843735098628870077361672688654442847185542235086853497718186859230011529312409106958835522352197536359757185245070469113950626271638500863911102664996253800362968406391474456051481226707730888204388093357606311721848926811947142668751519776745784219171055355553954366413392242531010793086444548031959996563097326227553590638115447080174509144495633849750061344939709901653074973911089917622959193465691205777895795998389508008657620990724688065184852890761931620506787607542169628936493645090261949727639934251503254515399442677541149666849936789750914143812357957070120453430579294188268000813326096197661877158634154856076972947095913080047629594284398490844754854071269311095289819344556881908565552989669561927939563383404265330276135234246732913631640732377207331918822089965573071245638302274640627444337562348521883949334479657417513921768095695313003414710496990513629944746402753867718276792337330189487398281371071520006844392443655605430098461916805776915013671387542840382101522605322793384139594570071079354119052266125084751225416956043386744255262166153599294046562466118010444914704223677164466047112616260516991694257908517420640803535733795543912595229841152747572795690810108120828547562880853018538556272865382048803978678076696210514004642685933228332764329401115442858003408717600582017784774022462518727278366279395149855228562907494344637324414145269421087259610785590357585317400389897736010713866511245004965029109124122408948153012667069940111595094913768568277105988136498083115820818887536640060949466807992088460827203783451016740040377514688426780245753140615329819235721067335527102547701998449323428979410042303416902964518913954396006681737968295101559583123500606421174050765967799176450376250212173839855459564037300447998124128396247148839509251531978227001257493964598274772755658666270960346794896714344873439402917443228867386796783780295199686130206513697662801112874107036968915064268378629951592366012461702040715662909394763349601696237388505109984240161362886837716434302726435099156630214824782077452832681823860518244490176873014836544726790158682741537996240702982882955458449512753438254657466372318342661765093736351016290712840005026908137883851930605988268241677866217911338655979371226763561050550520703537558576629978147158189852794899977688957577337382815052633599220648175303730781057833840085177373030305018378879064004529872865445980223671293629644343605143150723211064715557848246495628668065891316579673359433948985080294382341816111159465982064771254303203322382056779948194912125640285862469359114915343730577924646336587519761392747642915440770756785288279060737073180344434460623515026831769965793726005651952019082290752405659144613873834431912833683668572232244561897332400442693488048821945428266607228023829446596833352984081270467051842023577410719725291803913996448324224255924756325866858478442048318652169638897979691460932604727550159110043204463546681618205654340010309481031830948401917861510647910267449713169404399571293697413552349245158226083333771313937510178990331776179930735764441385950162390753837324706243180904713984730783816412263171751919767399004437925734274447299659566134496212863572725156933062453265865794085139404521699188519816396865416037241217467438954844738121173554578030072337928943914752597751565000589377982386509127234367799245957328868927948639949883508770307812441108519896996015921402738869631789239992585544484166251405596207983045388816320964883260249741614873083924870461215799946873829065084423163404932390156120945163256946942301360640156682408669154753144540492487081366400867516992026648945577402324011610571663579014760300920721435894787631966976587032324770417593672882793031927992330454666961322049892359471970301057288837519426795169831163426866669995778667520927011000108728491707389839482714431861247975716197976394033387011439197293278583183276481459741482466608806953249689361036897450404105213404439696080112909445152370696392641478794676434104045042383355756297432654446914812565890049035522079476927800935543580974555445152055158678461229720596351347012782368432580035365836971939427103590134540005912991531377803861860026367335522664864599689406433994989036331063359628129600295203032860029181143043547741561008121373386867206418370075912741700936143079251604119372493517884669974027816378285855494707907333516444014829434976461414723937823586462638063521669624961910493150059352812492166287368759444954308528545473125788679248545050994688002942405132908053970375480420781963173537422265821092968851777578230866426315118287353033985172524981961927335526452119634689098396371324556427065074788183223710818739136945702358035336487034765770067023545007294494100052785234221784035149943790489851565404129966391331738372095323630174144387924319141818094728155656203302518805556156222870893841900894106233127636790033132404247118208142871988569376212690783763974330109300598329537505780029681294412328049304272137876587374265071322543398369351511892329390140422504455067212453836162438680429257419219635209759244382245855531969939760095202847333317288060397555373138429259870367615628324315019332332235563719766385200104651944324598143958105606687681374993630748529408358462151875078399003183333674678079451707896305831058716101336747661782797919942694110572817692942105749314863502408060717982651830849446414484972948946087997589010727242169565870198936928478230244050787908779879168772818792003138401613478965592336558834034802107795270692786289227505500519644099035552541635529269109480646358878149936323533017661654935769891144336718751703902274524002581434987379686909243178307025801761498538351612026148162232469264631796927115359107726937721679882506940375992997567628115870999538547739357224893466242671478666998446121507462960693150898992764013489869295430622337618018389813000402647562618195182068700552524414087563148069506960031672642209272986260275581285584325194014495522957515266078653450853345446582067679532669794453586273625584642596257441170509738298581334056536084563193585245744849049993559607794457950986611308412087226187618321255183045104163744893419817155053382339395487058171332554615039303161175972917373080812197147126397402229913448817931191501854525353836367053169330866681617661386050208192634806046160685773016724855228300695779521484672984085179686563040097211063414407426438149846732539130296853159331792609037657094404634610259326355314220839887191690301836521978766210748313968436228926642206061918621065067580299037296476279081732774564873079738163641263793684562798268489838705382244248485513432303590897495460187492265901968456379486841868221990132568729526741448019447907435492732187019476355383400435419868206872090397676093498569776056673755036369150089104904242958873101421787861409096787655276965275037926538833424037524534781064465241675310708496745488201384697455199832661814778651096869018053513783475816948488756186638287102750210483069503210974557154182149154076312849178837078341933126504281318678864031020199735800023052706727233521986399877306235129225168837540086495925502573889674770551207720647968528743049083597937506405101041768372385606149492671126226770697196151682549046969278873070267571997595097961696137705634442346929512893998661980633499924313706815642085088615523091176309543455539280474250142906251257269432973413554766663635045911351137526180974613392814372347951498364150148503558096888239448977757724175598759687296235818985846991421801729580473342313719120379045444190132201672791074844832571049024130520318232853295938402129407556110953529716731348058003523361729500280431344967916403510237030302763682666162388310225679666153540473937024406089516586006853097352776027807941354838918149605449008374432859612027731333889590230535810099808697421003518510827971413012173307940262556831860242827217266260452446469704919870653348829113545436239824082844949379259528202387307293457648819949684647830119882360920744990487058873028734494991308263754647560968607087731895533795613683960546992145847529598872322359498916321372414957368763787737963244642144877064083662590113605711025570083374831799559877564040658642927533859600826163878641744218555346062930570388584258895672712533380194970712132460072703665326033979145047865510319114919926955546809942870160318161569334870347154402234871293335159684310058004996339179946138573495823402115934587083263393247270196014358005533330940936139660782375946248489487340337741201949943369064760685737694238314047728664596147536441168051427111486208976440781277470291269344331782893641750525218043080618938926112726602740419052668737792652703177619139570697235053149684033999835578946143678595818199244991418251176050605989109247617519164840460191997882982156753892652147064430650998676195537261696535847193261134787240185097430714406630532931501463040889067671047956557039961786939018043824640491910939401931007340705615909938723668685992243832848822949060808022914084293370957276962608773606908237556420985321677216804670429445335448370762445573617419012998317721831823304741157968555779138168744159636252006020956010113421021225163554533803088970123908694311643751312955333776736136645361488430550807153204373433671672685723646111973400712636011979008319729676791144486361633246225937168778365746282899162191306390874402069320169242061824050396863559637855665517769889631266553250507707652688815969424500234076505907555290008162847058548954066403658669394651083073555072077986837417734243220084518481261258373628630385900745580763016362646571447989091926642452223918215052165631711575618941826160439493947953973727026473091190628331262859472086657667591464911665464803622613019119401590328955974935843009009598019141674406834648269759132917629680755903261947501448349441503436361144615180697733273242963246559902988150726200943099494913823580400222119421623349599816613205552213171228949271127438818555551469153111413418576281156305018456343223725757386631068274977466608283514443676375769745121652553980312645433159044326901418388544094622157308586319511748391075033512069216661913593693531209848004931514599291059084621280281511466963616212655256931270797328001221574101435890914704412206418667377762026628563681520980601964593626265448557150599895271434288175708867824310171832526913512160149639555481052309432210407485289063506205049647594812547258809588715506587975914646656807764289765613271011824029031655976303137902740559251321220126705510831155956169175484980718077679268082221908017114150719113605685444424838583101269809287767265081204351104302580851130121638515846153446624972523952443996552961947964451890933445358649569275799104496522640990491436446755738526178029033637945358849682378189295926322616450180848336437745409571386744387678423823774208637654417995996148147054531739656775911269004738567705294342087889382719725315627306320629370592965507255148306748150683962556720568055707437384184316514238235073430866634593065081604028416739453873201848061974870935563469399209356995266054918921689178041862558363741655277651648174247496699724439504708349103997542612797062047524098683428989131354978415884122994754676276524926844769123196396263944512079690283357388699798610796705438726106318522305346419823021915511393422721301009321379924065588381439277893026318169332972116546042644711205811106271444660619834030662325291414125044141415575271360272853087527696434364436900713903102111248580041467052972064136284356963580105623236020264424140907864518702603268420861806476418706297204360401171193031130082323485748057494271479306854462016495257256730716854233874531892473339111414263342604574093976011967999038326282007740703560917987604703076978866058246778525428424192398127507928593539696488943549416567864282704102796264175883397752271799738236743270161853008226600982098502677500604501495650506152596743979725544372928394878614366850538623370047173093118122078376729573990990494076608736793527474540140539981067767281774254950999294116133142580971257563210890996019105429986219162828165642276722159391944665344772272634107134859510984845239082386988662241392443087414230165953134417542803170198165976315663960463298445416122632010119405659650666903413185019528646395049936260987024513840900201145147192685939351736038625317803613709685134935918186083415766005706555717760143102749552007677791981518803547290663729525431078574734241900451856409976820807444555067543913785431039392792200145820492703382555361602967937876043456598232143974368362797885350636543100571772949083339986079294700268602856224011422921356523005188000216068933727981404496019742288865309043264918354846515025036550210020953602700142048261213231121216824096484724495623379574820366047319843399753208187331211313464838533986318042488296264639433996923399138268148849294788795174428737714698529840587243759045492115107946119639343472941083451412397840028093200783987236906363019548032456269251717461526949741638833987759203534942542067203477990744564280983192595004551660490343380011265283727636114036521135526083913214494763598387609010279198869854989542653596972031032274306577500364700353698561404478312527070195641941416009500224717699027118361708792807282683624422815941995201962015945489181219409462303039446494769929839498514304802145162768159293530332572052873602917337082868109287880513494397313246810502740891143003578170226224022364452329120513725354080636045036006871133240211946407554818160909905362620253489365084195476211547400343869861279793623107993619035582166405209654375350927250005981332421638863897912179885776677630700389041915754376493484033531288914241964977024974016655657057591754843166229179101797058318736958675150008778387951072862128391369449601724759725706193145216506437060631455221260905688231675715591319552444556494829326205531758304236806531661630487336634706358688985493160758568090156884520912101192828900322004387281132036936202125258459951424182604193792601964432713571864250716367133108485319917352456904289133734250348868843178250028120710629581287969915666193586256938151438354543292843213764393856485747983022851621696361127433705992941172855991161614808093630475842755443923040227984619913450245133798791677543638717448063395441933653678479897291704877678819393724604538216159768271242268650947592350190780772473726422895811298818008298035251260730927072411227418812591618455625506235754228087277956171411055695446941556973448873531406786228551237377782634392519320961204818718124201432743028822160216959215882390871750028256478888692249429997995806862209870817814242006451782636450045691574797432714369668215494895560462587301228003721595976750868091767039186469952525171545865314624977143003031338166063598718931751412425461457501312480981099790872392642319807418146426770990443286338630661308772489164035630549466568254299292480919988775343439590497648702832413180771350289866727417916463195365366049474170245737723954599848307500985446966837038832992066530942441119749090243912072021047560704644313667168434538964785630440544773325364705391629757661814606039367358433101991204182200396471637400988894426104639160116599799168093891272288820093329495495577009931994779395332473354365136129829429826144963220382364515833081466019972911305276955055839237482778175390091535381245009628923703946215883790865040861820379783902188414418861989193608190477309992699000891852113618603281927477186509289609405876509582354632617125984993362250115920071773176423219249753740830163561728103206314241994563493653302940286913480914515691737458587979767658626980304560195308533086102578158586647760958428875659800303824402093045482040001781572817803161221037942419378439031413270278571714011228930377882509411933622866424204866801611622753740127616294389936480865154367803742963121952446037657562345140544095171022689896219041675777562073442786816177267760416639857496957704749735451689228930791839368275439706017179422551116181452353474477178317834453244478505258212285903953241438219823716058765524206374822804748746319645753315587139629927873628114191099757072047629091245870017745935449126795162566504108566377142689933172051600447543669724670588641978980294824324255789416552015144211607100277056953110064976226718412605464116016411641294957019179030350750038481234697297081441335559294656026672620134961676993623114998314010283413199197589594293820192999375262609256561130618365986950984931349300651013082619001272381146466424596618956252673495841994802927236725120502678138501684823099089221118171878144410046180651400584618624833131667063280612164386290473680867757500526298910111050898341058363157785895410343440914606228142048082269197870854833975533146953005122467499484733301341358683314558753108848452286698210194876023489517687851564177667899385700426179342833127471158761368879875793823070028092677030735638693486998511510970290219595669859198464795979061596145828153626948476438117638023168581982897541724175312577482775955753997538626874680281131786031697553667888798562464233424527918330216717933338626754777415558477291552328534889703516572466585497301287501466973258488832608898632869057218803563350625752279354416923381772856057867524579931339331831965706998258161280186861434089923150562046159873756930324423758213852389889375066682642895800029343851335794640546804296834959451719806698193360425996161627082836568644004828530649848776364582924148843061123247365157904148868837125870821483586696113869766767574153410837775828862703402187516056606212181409874608983767341459862078407477525335436564566481592578030485388230012874852018618246497714724584733562883969740763629610514827873185594644169016162258488932173683807397704924062338270251602530955914580429722967487390571425597795006841943164865647006304459809154669660282676603932536857776060154486711585481559033678825829401835861384464837620455623340025624033622590409501718917417776975045997375050355516558879957278512620575917700097119084519929140742959335630196320332003767572243422300127084004649199767063703748378607983031589601110690323920808642487810975618902934810917516482490115971530872233972510893567201514746945499231000444769328481147245321720621433731796894054515852300813058731569370602802884019739160476759036885996372343829385154179115840033188402130183827441187365472246722581510780117989638353465646404271129091520477572860462041351558724693593120518113092704444016735619250581355327675141905130483435785784910170653643296381167891851204371808281029531373505271543508135004252488463637667068258184369238841449709981003715402373226400373765563407994304849253292578845548365690271417295712981021702078479051526300187237577523632625372216500426819407574022169024201714559755705558337750659587900785528843696526049482634573095984469999410154210667478785822055337202810082735164877110150759547777397600212580604764283076749311648661433811638306831602074213952403207953646459622705799065495029902869570867753936496904165721893481488932176220945409967536815830339536451936514110864981740157846178919657472742341759690252733144768096705078690940999976676895647585786902170573991390634578679837997912507992263060725522560595923609961142452698869783063399013907226935014417112550979264106471682578227047198714801351918397478312500402628448687251403309791225385658308407039472301699410663628795978725796242239380418117311386880073163448348483715096400434501954376983349595026187963216970000145097966962833016415988865164049623899436640654299461419066791036719970200356237348321112756424692476094211892410675015906327746841584261841804828677907268867434571531245000521015541972143964463548015436464086175996191708389512004530731145462087228141909973543814373410561411036992161832647468022522035502689524355098525297163378732741902681657011783750617587386309076455816063699804627513066088061687282003335352159783440858481278361575611392297989930760766437108839013477459670376469626501057674518460927923541862749829774894571894891145395360868454448405116498242012930687714398220268360192742282618446514065269658729569236758975616778173143876383971292683489061641222509615261417316410337138910657058313072335770937465100255993566205020544934863594308979317283779754424079117949245921399209176838388485274512223123068259871200020740372666942710036608089501029520404172742531794240750131093208348205417648384695708437445338764545384243561907230432186217199940138140090304122678990218314848191359011686532611830799966138649891571419170323635390170908494512525692131055314343113344286147659045202692297566072360865745831598036091003134732645539866203853048216611295296799391415182601595136105974551936050135030851130298428114352811202136638053584522990124505917614633254831780925371881843973599500056811449239241479884347324494050871936807037565197908526912248760501819307722927088123215262090568327536577006859598674251390779908205038498179774759176938981413047166032049595347244926287178285776167992673021108866334384026888602080178580680502665091843185034130327994806564472092981798105697766494769302041500068879314374655629999134292028868474830591481046903698793099929160720058893577392943923408369227153385385935663900666478950258109267830522398034702229369288803149986797035665498161685868495161611548810947965737191122731851218575082277833593407269191057565610036408388662085272310417052169918566676459140060123792404983536573355381898125848329519900405323063367063822912703360335561369535846604843580158910244714036813122733850914325588174705776737843976768088315366667370765236440077701537467468693546500029089969570423443613205176440515186709576752648908992476863353646854910247735665438860816379100914868230183523158694794354720813273114651028949010542421562295059341674115669435128275903063498891677123420347994215478320757906879468254497796793660125382019751874598430585919868289470899966949698396752842392925822891321452712068939668292857329347182609826474558647498193984126513000527634634127492910310430720715998222144073228578706563157857304892669576728644711891244006767879171008840456043739565444871147514552435540687319339848689746651977549344471842718451549056874268083547768611506490521064322101864089744585723022403621234117919949047899643405816713541332262462550810149500432185788084424915081543963701572408511576629405728211358772848032029107642462490624242330406654078174432200541863199555210527522447604367201490831599774587567986911836136458827446240834569671635768855546040825320139375060771298206802649121207117443033729041891408995265033758014368684317284640648322891991996696470921747323213347590386717183471673169708899223148678949093756674903018932045651565916409620775124483150653751158990286264943727810078935411877336614878384742527946483299056513455548646400135598982159052452021825310280404775660066755066754618886783804986853003731872761061034750947105283035327987920266730001050311603762577151134489878167985344808488114625513622374401995303591442157667874614400589028099189165472312460213970301054011359300025435082799500965773246397256977506170486311688278589358688865729980825118494683817421012329577877806422684285497585552905053705515172187503508901929660595065284932528969784306666498027220813441822963061773951999874087367129279184251479647449009922011200581665216853033612261118273783802334096278381002282059300879555185069893742176166457362733554232933036023799873631776364749340095382348020415506548973827937074995972212531734578319805352525487988952018371682630121055025451588602551291813919811755749721796937321777148461623552027661082455946266999403865431299771949317111590044713181455491422536712912734084308709245442026517274643306424710612689971214241067539084396003925744684607853106442332989716554061016669649771057280073453419400891903003074699777272094548524685210695616983310384245711574594934984852460477306562141927160852595296647735077254139873881141794948003160205458652082252569777188518477760562335086058981951428166073486209186024475206969137053203183278280433819786482399562908338430221224618727914177533379468303240473209747919429500195520359944512384538440788137668211424804075724652665982866738899587675601047889750308113413012236259601967498074229029054823361441446150345154888651606556724686331916844385739241037081349087723774801523167137395395191463720057548371687129231605877009487877519373772269780084372668592094941026808465055251229459941552710831330078648544501785443532496945025487720178175941431962915508551329077228067165365555728033546477880359681671625363647095377901146010995832015193975334683034227352180028061821580369411903488046095446775548413097784520459655703641879227992049911239816971516594027243161536775423871015461513667050752644579134064466798290947450880361511391875364479191503698548743802367919795748295770367056806843950632152680172677467747436727390913000285440151088998028308329474643593375289541652031191415571537172992435685917222484218540312664499064909962279317626284197551942184042920149043764097028233276961172050148094491680733707663058964180204068286758961037986621135025621531807917598773355887161746618726753669295231619602245135668343513984369268146756426035570651828565915407039190198563933193098770271432515969965423886591530516196354895615015292665169316485786765695407929153192632534923861361805121052221385747341431228013990246182270232478290611528118574054753473475788561406942298488508632029944178938531476477626136267232252670671418115103746546990744444684787448121881875790280865618469747310225230141452056888063175712266969401256046983940056299910863751026069604169334285084588609333254056505762357307282334205272455767075184544695995134704320190890301035954854698028320374597237002286914329783386840683200664718870828823836769119031460987797011133510064176819486890723395370207683714717972558156452844336389234598947723210267189792077063081123980471091066791550479038869968134099833381674874022450557062631221604228770744223462034339053202071435322799189718071950798542850825986908931722350900456065684441078188596399868536779796682281025579633684108284111041999697018347616738589473606812534963335461997115070513989583897880514708198965504184446483817497959934373414914955606467295000620887461794023335383123690985202564804492958591600165372172164659228742522648163381730845400544546590634865995625634071894843077276295218668611544165098144785835919071718999754726794572276296953043320784454163297939121756109452150585833196126035721805876885373159348549066066831692135223451131135316661412022581199795179075269999844861570637048414195712129522875775807225812029279599237113851487911581888005041520217352639560094592978361265617926423942931567773299251941688627752170159636040297145045929438865403248015616424271879587847446256299139122606892241187804047322732247656724778346378484854863947810528023929751785968728049261599805583255758520806528284281125123235961030684077628746529246552241724634333932663805166647473596907408360960110565516613152526252319443448822310024265308097824095943749833811158124270102739217046806414759938325422024242969930849683888107209323825020458311148028797166002044878803685854512160045151834109350767591992407904192560554707131001479703953684537468389872809644426944894990997892798202512133016736307642329493363252655254014064195158551450475953282119247088470660887231699187087169344564936370716017518021381010831083218279273789616690759351245240260882579602201165481061180395939359364625105266971136866736696941863249460827295386219591049556165228082322096410763961094846293908955355494510620360422022145297377039035632539361996973582633001296323409482126491197853743857176186749117476829257730126450959065459526651952757157607404736248681231643371377854449075907394517709379338538545740298295669048344476575041675631169806540401532398868318371065902155329409006537579328109684419956588396827834422899197876000177307506043633783227990431911241185470010318978350992560014961757925855094440750767699014392789512542961142612475479777436104906031677011180907941102844030057467927096319964322625922126131585920681252277539214679742104978221555398921855650260759621269135124912977042043479629148260528448498231359353939622289714652441280715745421386298593655826400985952805480167047194004803980777144175699641856486459637481915312091155646392217218224996052923857836049511490715229897543554058926041624417353912509019600774300334763697017173180746270503602267689842044442842083835220881057853041488617985685022572940623354604035951124532540833883075586174632136049425349874080617913739530318375190799823087950083183026122549947005569711977095615861722351843933356341734792083323954044574335975354748260897087249396884002452695360060808570839047207437775471537518573716073203739103383211768164013415364203549056521682190258480047800389699672650375765823581008042022252600607247287836896373407290065603041008193880490036991225159360965501348763893224288804879684832556428929121047037233093251643458695821225986805066932655995252364673245434111478766569930231364860352074054321744543662602710237936138350625675674319091067788960306629563161576079801033167024425867892602641154622912909452556252732160955639837905023658914666670923081165066539937812886742272489924849397286046086945092980493629601798988130193618034703323488878052201859815942111439150635698954205771848827003204481880166577726485316799785136875051777334300216889392184758018076532918176444434683800628220669643371900848111523434838032033270170650323708475761226716174039984258605579235771911288645661496918044026208562060551990314483200798943282574921629185593434089183175486362442258429887637344676240354306954332098424740314893537642745149734404363897766998427559200703065120976437213881833596331537625103150131489019363878511275065761451415063196379335501826653751590119493639076313267364102406464861996594157253374683699874815311352749956559949983307235541974989798177424074743929947219926391283712756497385275628935638666112162908509728985781598836241506003466324637089979444848828796303924832100558666413223521074555324907146968814792760010063213939563149973938921157109898340635572737915730624064355000450500274698912563767810803546783764395778119185462284186464113825085745344440381148560347637473902670175531534801313142570565476154281224090113631602731819996178470239016127767493925781707856137805540783987843698360983507333189971804081302174931489744515218610629667324089572866017027863133619095396240376952177391130123441436321182078090701651946472798454701643251713189499869040054478194269589056801170799175072094266051591121312178624768793972072124212579215508422955622310183966064625792688243845008958401454559989879963698803043811751773763629848076306975418548833368365355322006366778607866055377693858833710513285633699857819953650365504060811769186653452209359930225202624547313235625323891515580017871129639412010545026300381519340467818046633801414324059866388164438169159286575826363170565478849011297259341120824534953557187011675130191259165365274082049186165960727074202880718598020368429542832611955360678101215016082392815685632615234452357581244230981763074846376813071618421578752816182419130803352103213499104878143491128784859832713092573143098497769499271262391198608629537307500086687575094095843456078754995214110895558543480938811542750336366649915866454708022901935070986007656255178840471068568880191198457377526660701187296010968316431077039901801373556192065313324781056192624891986578354068715700464569336159319502627133684611345399162257076742294314990568568276413651410905974021069130369571059639792937757637953727454032772754707374424743648885907027355238748140190153238238658205957246308287334607548001503443848436382379537284475578048060847628497586840747744824455537005368200016819280816385166940600141618158740387146401226031496153703913466939502466560249595848977272550817164022862742565459764312438282203851159248298801900525470880685180587707054142249332751905299886953957710235752418992054174069046229717476104654384817435223568392254213943924279048912574824091800324233091805650907537621281454158835376113186574052488789003502181870816218971297132584246198929135361389016191007601880951215063016753125319933232332853191699971584424841457497458219808260044474361486295332729002691250841750906530352594269735391291585439809306285329480883616629863830747530999049369743493023759217143051769584651121311661060113774198167547566848197803410590057339862172670395579685695176933262284050472378925363151732675915486581762886097960972045986702849379867054779850473245583354733966786723882283232656414135629157308157827002460171887687840322327994199019553530424712530228211875297550253012195177311188877737903632392750615983675466970010371736848382003068138671290016822817749003655972824355846400949289379133327262085957603074036059118701172260648061158189014534355274767450703713662272825431800351183423298002773169510766843971788304202529266376546642342926305427495602590700496110525622384054958115707132596727757857455183642848392010820539452183326382868289225934756363949244721496891944566877367431274993270936007451880363168598109426187207157232065020494468195322452566010853830599721598012982299199391707046456453175858989064096669451289545147627015358909751553527848615264957020087393797710998394373945276192355832628173248257806892758836510368672998353896602896158172618191123070644997629112212312241548672449589097049888797487889851871251326338765677826513371500299850461267000216139417032105467950692546773171122753214924030478366978439336147094469345053106840163513650800726304969149850619183986576874540889072552278694747336014837003415489485183541415178877399061442802032527765010209361503608535818247042696172156472908576573087277591557236217839308176307778016475006554804248602443160418373290011897671850666781841547019110055630907141048108401305075725689458139716770008302639772543486821799020476954950122742479998212080970511406456162944050027665384379718512629171616739875860974328279149651983151196885689802558424723586381747319499137192135741087521261160805879645976141406565206722592655732968762607836049166995890925906888078463921899897021954768138064602543955839558693779399351692750319683340930719664138996367602978846651642670906051753965917291203200174525395163965417746382745847505975026629709944024719469769482880149853186500875427555020762514776867756879883830634061043613931114375046624781893274923703498289043695944586959177491846868988173360662455702745489343588887439181588312544156185126923825909385214208897169538619448432091102257093354826935751102666085736486015423334983764931443723891579947641328963484533235789667968459580441373919158252908522276711212783799332254420074410280495916199126242528504944010294609788367573171023929503982290995555551136514471800719721477432635988359016552403386844973468313378438905787298968167976432710967398449884260800579155100705146506336796295098878767367730861425645522502932887019787447734786165536552930835863105424933904396235075989417215042635969951493928454497822030611085044038893943551000257254941684455147687591855422448775263424921275674311515499408978322615770794580370079861137487719620433382978936902339586831972643104543881851429896979280251375505768687998487068824099113700732135319009991570012587422094656283988751960437476185097687856832271275695644392976691155834840859280019352947453012192921480184078686857785033085062507098320156653649917282655409847523116276708442972092068856940837647364986670232850205280579134822575778051300586057316908337554574207698868653790526176936040945905697831924633803386129518462081696803137456094826182376331514560031010676950508057511397535165021350606308453272202091425880906093268542299724222716582205665052723846525288386530123211797156629165378972818009087579761854620339895241499042512958151128659986492674524700982884672897321454401095125723505728756412390918226249894571695521939365188225063583526955016314543464848738542590118563004023784362529193504426257892944098599612423300413157116509616036248135389740037789676538100060354742073623952929318007489869059168624950639996851897403274022845198040074140183018934725234853663794510940571387570525616745621614957768201370394646074103023464034596584799660238834435263850899224833996007676865164070413119904832377358027754136213043101619314786253288976765637224194134484243691461909301911489107820779761233399159836876459972841160228607370272745270997745668047409471463446694100074125026676355786610767309899672733308392016760290562058080922172535339585136771585165527461180324505526357363323945142177419084039518016571254474227962075904456989539082074251610848048852776270571398029124454000249525320374519217868923353129735246166077554153986666303835479269277092049179398032436552138303223934999512352885628771098402278857317839751721746967681153260021966527701143148013372790946463608927281156650210343523214283681257442486813862172768973510981116384888446684482473046214176898404780162887351220748242041721201302362402426718851625216064722467690463216505989897022832425112259984310268136253214109535998865213664591967551634610014818870953625226976376029205986635490942188972690845138534876134067763975036541130462274900037723282474454888613041510210677058062079304088820980385115486777237500095494056631507254890702420407420788679024340615035373855602402899518306325696651320001975687019756900547341478814335274318040627550831464901212628042006930274150353179835149455812758376453372373028590661720140007531490144330767357168078776854620123090966339262217860086497088912434341236701900977463353178536564919905674402577939730756233594848443820969417929687795212744149238918740637939807261976567791869268387556093026030630061900120841932831871313702746453730072099164837690090810484946335245013151231760956216890793072264968752273302064278942898226681207689237738201226984241764025013823441598788258927408894923974199955507701555225983859874018471672189907274716649376758339276290163488189580527926450924080650293628919090537658647823460234337407481881626878107101344349070466778715162338892152208091953924578957076544479045366529622720716059113428569252097563347485027273351226624179236502311564856330932953161935490813277970732174570777292012151287859860862559222769652603799891469399601981721282940686628805307032512362248317112941499701890180050173370760659236916986386117661787456055561523085562313335514719384970684224619960705605243587251619635639837670107730200340951258804136593939531300816951565355621772120234846475904252860864429181815408821171282954665100634791651872737794711010926564707000137845524068019553764753174367505025835466670456405466877760105761639007926839662841142864638666077238559578651685278399069193237746569570238431845095365739400610433511653691489193314566754644677550639104371177714356912210731635217819131096349253371703455284230567542932204885604747639460295449579688087189889131232539415154981327386403101577371362033449816981023928771518252252047168260089208173810230977855312292284806194967500291054311206299583259421181955336910342298887711512642197229930684697248499374913983093406413275276615116441380664512897972928952037114892386615472138661169451791189515392733915294607928392964875909050918060890995088275086682404938844262897312175135593152924634817913653876364796772862369610423131057382751645731597470175904332298681159070408423905142882375325593508578516478780940889449994799700208193552485855879280447989973375833583234238873400641725418562448564332357464304378984615954242057304190939984941441373153787239416623921343048029852299189453187496194057402209589506908421459439389327553097229126653606888615153586453789882793321798777224002888093381689790137164109941703372664932529398403080512291268499188541218259661971601082292361516780572134301757740606022914373834329293604770332467934593646514277805896096094407469240020933671489273165852694419631521014252955992164128206836718694035745833876226728515788545095173104941709053103225460542027954515684814530357592423012023933929251843173522317117877812645989209058317126355943536660183513294131117780591502084368549880265312007540526595227626840740222422248492275215305891301508085966875723520693196482318191802562171685577271156063939892891154040955729828136111039790751273846851656140334136430912683909947955902529439753458739687650996738894561394247701902029100406946872034143842148115773149377500946632662504765098448549850635011058877567037945237516924824005692433683836437646609554375745713043947827527965319011695251410425926280576858679780958100041813340544699191802782295695429512843166440485066812451212782255144565446774076020418783335065967837314761440399327591467533674111357406015102562405931516270289378074992299895861170202622623747005331901373963765343989310015725269311882899144483441966679425650016677376368062679980743164722752911270282688023107473784028917443981799174271316388425705823078365983718131975677072864856444117336535925230968944791672030247532175656861940988240584721880669568989139502886524734464721367344670235847592567496264520586929679628068503077302410802748608558585109799294370458560131630724787470573222183077131129741647793160940483520892678128830629194284673721111303511278987132050805910819362824832983388606419276709320238048562075409496592220394724492815965323015517737519400567139832560176123208770608738715256372090541925445337043496892679256474486378755793218227843883027382411269462365544749978628377998361920266864575298652258874119062232083896925790464508132994948915553471538285513818358325576259862602476753122013525586070455341393028933156371285115717882547084973263019842465489444597124320973933519824952047762058135651795911743429396318649498172731261214015142500504859711514772383637958505508461588465306718253506806394966156456183381558519697962764030440386270874195295919652236325149382495388224847533158587268735029840661255107022310231211765693953818530465994983613533801258109967457897609580368399515669358967202639597819085819184997642845931293316757487223744878195815621252101041752447011976703253518431285945700388457623409547851676999899212353510915022462313428504373231869305426670239108697875826019932528487528514942176671532379442003546876477702836097554987106810039474914273514128512091680393733186746899503964490199043822242223868989756346799459310176772360957328995047236901708675825935755708942095347272022643718654805231161082379430952306251629497949873231806765094134400369670369807476348441067055079450881177791411372102989839570257827634953788786288693544189160308437153335120955944831151428236035178964079960478230922969574298484669880471876668070321953385199061285368787181201560449228148717185832619462740448832709320883762005732090964595562659266461039196472287409676291160223182173699445075550401656141518223627716195665324932979632912524377958761846861995327659960615011686974784671218917718060735335178290034671401151635784736610038651904649195356496456277745089702258145924598112407719957100704771457399288014454541931242154243646402857162320790502828388275699832605158636856324896773009757289949571997004864551965297136232021517669439538528646210349740856195778615097077129220641632790917585808150407246346903164151954272931243715449149226146482272054865296690947089127981286375939506370627863033183915211614606500454793860713399478302357270018520522828277622348312220288610320183430359740566343057552544135685801398865723103626542549127326989087405423777225442605216951510537646774107465814983168762497110540514562495396230476820417602687505851510892329387458669214134079960697270417748635090564179836008362763500065757084129350554373927923434054684402637990062110684193334891444952235701359801772091865043755340264043316597784390514977432054427351224890672936476060370406638145727644950724371115828678175563991592196510381189980010056670549832801773869464597886689204600362169516082169052032262124060521563837411505855553697199620785702604698487477395183665406956351810290741332494103193007424933369060718101113828922240367594222310363052586331148079398984664597433649926244580118191806771900709394407077667565829544326315648267856533423847845670749355147128934624606094223442890189114778115455014727962591564399146336707500860202650133776189225120919019628871752989367363607675462036820590003590803366212068926141408144936572134037757206347942748527014434548609915487043599368477997212891368830762890263927906148670670096837353287220865494669287586256616172249606463755876184404717391428016455612520756473389690469380460507262497825206278451764194757637131082831941614101535482205912284397443763394793602991925375033869823119692931505747074197540061870715186894224799439930574851772336387086058945689568199541540528862695843630522494395335952630546014358528792562285316240145629550054223174165678443312524787767115313738184805674101557138838163501452694371792028819101265063342716310319872047565377505648932359052397064371631593618007782371773276351335789309368121340361980027326009361704903362562497846369359984783447658830449011978908379295140131556424442826789751361112200709638862867351686205926973348755097849046309745897085890693387484814665613868450147104793503276302024182731754652425610920784352946181536838981580496710896603645484138556534003031488647772435797025077236175189911889943525279465015333389903910467234261892226721849605679246502145919914232649760170340310341573188310683036745277675960950247312274285763784194944595587634420053276871755198967145901760266587201884303189490739752569819725615449219187194640692861265516009793510233669755896661207864158302586676304866691723990572874397410313470932518962413704469712986896732355153298216183821860925339095925773325754663060893637266133491742949546976149555216230681277819414998138831935725895500731871612875829023137532083706968954009536561078522421472198738582402081113978699816230854379497501347363976466345375350309369077789590318923196154100189612331888547608257675409177968684485891938365525951820006319140597391473964511782233558463950792906969201330773389811008668757571323350887562078383887778066358023807040946538379486635500196684126307892213987711346763902376838947290999426154644871023346475548421259374669886419767986551528372741974687619784148317178829077510019211894388637675183154973410085167262036804379434567430913207594635049986941867176693423808114935391719028227526420686351045185579672030864522293349175006432889887873991744675355972151348689750676943851821922399282439213314262582832645438560032879820933330129922791945689940349744945917392844065841591209831352701544623770807611853879609158293667589094544501071090582367170529650000053696465543709709591490059311227955830957726718321597959503850270504707491698722641005414202648846093772234692830393198074567143835777307230195980281136064520455339839252078479315875285580900104958753671602497371375425597760449552481483938178322490126712579808234595771910814911101862505312422703069159199281024650861110115154429617616413699855651372156428186219200432703118354175178500960949382671411514299522696507672937025634916648858008176409239651665635613077919029615055356437290542164165733645090531968861010588355857323252844940083235485324371481685809787967497539033471923988521792687896910915242344459000924791609731339498309291013501928844880749164454489196746712273463960388369527307072298987553431232978606784461265972338345619668575452442471479021603501633205962229321086903027837668986197491427577962664604922706742873238604945885149990198489566921989351243494731800075551493835951196049153464550611013263932148949475494026316298679545509070984988201784037052199357688796688784202915003615384989758100819440944487515615356794652096005510836370851446601441953980832138786946517407944685526093524773034588866473776058046756420081567496523618117400470045387836794736107928618385570309558980030367591259742560576086767925511916653986182934222994452717817104866155732815356515689710163500152330723782521656178280315663350304689406281081581870962447352329431192320057162619815928956977395242959076881865411713625595251424806638241152247425707032178729493316954544163560415589590086087853892834441065896075575858305611872173097937068618589006562082057661086071325228097036566838276779735983346793727074939320470357634557676340211272661865723558160467634038230747370206909078577569367749721259963606664935773142361578443675613986773809815966906704849317745713128478383169835785463506005004654717965809645903934622253977915040963599215716054813506994311449920605103590073001157748142155587930326993947012677987049501390814299099189531284996350175286016668426275826363838565879145675421677394698932192967475452137723367623992828036270487844406643333155664559444837483341298434560502897554388807774693614632915132206456317431369342689097493936187081716058338749340444329164979555684708441231875984526410395082664481652979903617779669976438398008884783538970625820293181887122405228459975178463589857855094299774121603389594876719486655126817743863242042912708050894940438281878343589378406639106268501865411019657390449399324336344209632918410413011115413433743669346143016929801740297372145249482382907049939543058970911268688870793836029158865895141483846426407475025999959583421846861364314733311058957664999156461883186209242944500588902467177475041168081962248275784225927873751994752531052807342062970059900708797616372363022321450971009577825903199442843097107100966430483988116300245532006396047392090608669361405732666823233767547126712990038484978911271112607281438638548316222833847901156017383472544142394689174782814141357687014020923570819062646556618248807634771377421780583384898619690058201480346771634975294102975760577689129504203421642065325486002319676449447635567570813951126440449046219382323600599592876051518288184365291003326343682022338338930502829910843627055758386028859581931516918330852800186873126198647218918320542342112531186101163635784607931618263432805821702216530263368751085968018100613461160502726740357725036331055071741476172002742735864702474740262654122154125796554362050774175035693075350220640856252572622086199803212194421735379775937813246995718519657215101540761061374631207189747284270578055743947368159133408952368132816461148954767870683826503513077895807518184326749241558821296828666075107036077541424848569799782245247160915510564440492049130190968787937689639285687008287154326130719244394292520698673018144445263144806058129856071311193933759532995597331373504317556249951000432153671438970039004059875889392111221544834786861462002453331680548755546324753403101357585274056908070206361528437116900506655639278586397874645689184611698822250980604423187081624777172074046252573422280708152309095792167099359014001470890492326817322989017605639497291476778593793178058752478657209771562837325721883482643272159778276293693343228747327240806090628894149015640950421327041799683477339360390770699952269601797771196445028703791761762867999391037754675959540358778058984670272935799942120860532598981713291367006606285321104697273047892597919502830212996718538749952960529848034467251831654684809810034324302992613977605741606985378044610712091121341608146723034530333480153311404645038613132578128081047732896769453553383953798291716415630121768906246754762739146283950401298960496924649650396459571846442880654292630162821742930997447359313287563289991985861202369684374722424057843857925808517142400789844087574032149345089432034911408956338781698062014334468077240685980373876868997599248933184200051399982530225997728735105244847954530690420952765176562644304568914901362618317359636400379150016062598695773530686142590118226048842190647964894046902681634715798135287993339446743453275747197659210749121459057109933378172467122167331642604813581231946107433312668759187178454294646764937908196512471413241146850135720572194156132258350143693603349700718222858699352054155476552816541904188278946257171312297061041571884393710241987881345678358230132845647574948342476959720607980774628438023971972000951983572371549746976901893508202008601349019733285057972811977185447774916383801015566875031183077320769277822291058833557918376692178776798192151489384117295413830648755321113843249324332612649605142858126729767133330988213682087556568710755294989615940639159193049302036599641063843724937475155005797416465569539523183017470371912948783424712496261117278056020706259678744253672368359462357992080709766800184453287238202355279202905838253583466097852617101521161657802914403654668504395816432790698376265438346982709652123596951385968861363463287976781396296653566529237052941339223031411654896826663281257873750803543078759331924339513187168625482127453695710009735895493675442101771855790446263815559579065704841907020558989405136186384612749840131399756303906937770694884452070678559449199193772132965635787257950679683206968483358723130283865263879227996916672149744655501857447680275286106584373159913707484093460313659009869355255005817661162699739286775278553203740585617250524067394781600811663838709839555527758126658462450492355388873451538145147212118777201157605830806874379952216943883421342282627443025277941522957315213228713215635789991852399219312894127180546322030645378376383736616136954675874610506402638295325166560579490781536060842216225298155258785926740803755372732055089506394749497822051657461059465579715260700398480506023907357925744292602467100651198272682304994497663292322620804854347775661331634877840990107026883688054947834402981509379480937529113854066304666804272075319534953293906419491281281530452791056512721867782295642871726051029057924159881214859899708300181169059785281933254562136646983321799288091375670836961267549697623947231243925077280623291425477366175626766582284050115767182813427223558265191428403602125364496573217207376511554299278638948342179409258775935837993174771684245452182043501992425665531016652998465829590622892691592077320925105741015050036512167828668146017150662519771325308192938771210981681043188722389525411894033749414757544182747207912770196461707090050758265657380249335406489147458083618510400971150860172946409439299934768026690392468507443542121593669428703493900260104582851299142132183433050048030494397463246743161281935085425125407215712968992801428771873659309739234081941413057406051593474240329927804777418588994462955810148493938179182378383386374731451714862559808730894073757863943836329961353429896221205329404763710377479205814772884292319877459638406333685752422972771680239140888471163344244151005427969835696554937615332281818459883872761984780306156296936633441648652977199107512110611136517008105559200397747308510763025801777313597099622730863935676288971025907478974697747296744955258710206531058604656943795370417933310375328160495776629350986664356096298718474711117413789944344853827145243985577202965507599375883732791101549698224107887807562510023893456820535765214013579020575129952542773815025462396237602752965115406801677804996444223976076416092601284609341122092553002273050723643126718956337093725328471410587699635510728802202879443211784713812324193063997540853148630502056803055424133329119066148950591788965292912286462381417157225100420274521870108863797207513179301396024148527378218646466518995003194105086024023322994920092836830800640436605426207912168794933652398987631926068107456117894251810248228713646116758772472531542360129807265528589563040189918115125681101806452562055871580146827926047180493993684693386895531366592182257489955358127561810597345703967137507489980593352238434594395979622886275324980587001395178603922096602344404237124814038838707452004767878326098678596508180904583065220560458190969668644872557278867099069594370212786741825974106914537858602083440737296278647268032780359519489123728533571965409625953172000564670857958409090971509869794411118345315147292045864901246901022195269981071958721035019863549302960270485580063320427233685522765605243627872855709947639761181082708571172831542462537760469036199424425682140277190452410814136180560944702208856803873683182487954781428223792978591859779914036570130197206516472958956067113585961218096183721805348877167170861625666330411949941545359338254769140977123606249016374055973779054904701436707468290888931580424813000109674188600981604360110669088139323666264435598457803088413418642825392813958849592960026488619494194983528691295058536959220881469472222061600296738093257968171262035947322405993423081269180356906755290252831233157552930108227472934245658309634986356894561570987327667081611665276583674208581277696947842368718242041959305335913289902726780591356238521681357603930694492973265099433883150574865195179884261409139728506125541286601628725758624762321067836041849355964980321118441102049786373256905669338036263124214112820891165879945803283600517085247515344214922799406618902883234603383683892545888369787036716756570151321701519965154013033724251575862320635548986920150871003758495189146655002118625293019649959536568602601802960453368599510069612724286705298111838798121489924248459677413729628047740483877520754927072167160071871174403986545968806507561389616478171138646352738638790621428075589851106162076591744514814762956054200169161558298098716891663367720301567453957338361856421817102264681878356833673052924090894519319647416345563740225024438650325959019506039399024293561485835792769637684218918200998491638134073891655938553760614695074087419986326829560292209519515420243773767395676403863698680074595951230983660896853283604332380408138958309090161839444646290420662747183423586064233547480794506612827537017490084200562824084643904689588628580889916193940333344387789776159645404812906354253707677643858218959989729686992583149351976831388648422777321603449179838492360125250445717601268076087094079557596539837426768927197396417817087958579597767973993316951815051225627872938782664037727152521990350924298267329329154891950126125393099625627127727103638004323426099420864906567575665235068907300154421034613571479142911479889650271489520037480323394980501631620022537661410072696102172614295920109688469906420802188498287662809465563209773116607817202982275685592590817889789282996068423035001357575719351956944423437597085390639929758762174040917318788948603515502754104647333146351259454857770221654319199485932106966558633336603164411308868084444440396267155234385416099242330115060992380020957767563157578549849414299320325770835601173067082591826473271830166361704925515067647874584707392404403307615169178069766758986924185240837055330942009228216076116628003837957793085938089049650050288716097988582212298758524832983265217271189230932042113503481772524786175717456599355529145974746787133363331844099975847900276719808917227415846405254931405070890381224695156654667385162595319899554469886851144036752103023512116231372003870083170107819491477549982903784299579479574034374979226748704768632432224252822059675050930574022012270452832212707823260365042242393818092147388221761137153020117579099654780142463855765092438399872668795337334768503609335751899683668454899799947719435150736974746785097103867170551698603493779195762554320012801995486977262339040576002921477731706354193578498272917830555494146079682155093428483021573950632204474385717721121737567715584115854515964375531331167849992881418278300757096012207021573197579672586184634219997881512717596431487125591409478921708554987486578658761843344238382599980929444269551111647158576736561047940118238749838939815997272603021574351197864921960295685205453854268946066040686533539935614404688017445350962990317172244597195695702326869623275559701032082397134603022555347273806545592988102394060909160038971777130801042536580340536370645549065762198438047804199154874174493259342251614983703488311360791940523894024718775310187950472075895579404553324392063162335988959186877312170416014371065077008727705732739745789921108135887409109832857854455341917638868794776397853144325315417917961082800903798528525690624709159215273541243613014074499202191582856615071255725038474525174953901827775373347850247380913408974727693640973769244574276274217164793530184348489126407401275521895862174404464799614350443993636430179263155668159345261108639866513670784919164353597719452118658022435096059606496856622694174055948287200165187724345906094336999507836411101510522468372516141980423127902549438909837997094005594320228611792318207573715013345921411047889869365872041425403008034448687429773846970284972091827901069556221491822216926098751710012146194294032123997363277253741818815788636054085510122463757361088970156245504667967614994597195362978870457663170601290734904586121360285844535666055232846339887586487581933191302810740005103215996249683204971289346655062206309465970002079667976986953547390261389398555038057400391820031124573411891303433199988009499572644965025034120733044347466342216303588398991116886421289372973358488564188292601075470900119228339016026855022719198318630797866494001743864193842785962855070330003981187227840604031374375976530149845937398044641004526030960362138606888696452142269017445764312825390656407728239638023144423947296837822589439003018354313841204161761957782535607239190088940215025152933452174975867823292994262972428740896362268157937222283979559337543150799256576567382524668573730675527160212722276415771514511530455807201557217569680071139867273585538593229281956229634630928811507743590862095317658294733955649887708272569920752505482164430356606971378733937258643349890217931809558516508502602185789239458497177727308884984874892357290564509925941774425542732581753987271461813366778508236099480048715838204121438019003910929886959631272915305870731708936696920172292929175000288064040977871687461647348769674291938173908744599203529666711219919822817623373492852599548216624572570589807522134024043863575724060734632297915468587774077444925314502203764921983185623973547761201578285833059403563703259175646905543741029511107339533226599611699631694799981699507457190523468517854036990833104183490010771958192559771563793359051917578319987894634073298251110513251146382081804024651644776824646848265047244621239971849686795451251971042933736160504568266703160570969576045079729194677837776162635930544024609599660561682130273810928689823571506773745319529264219960743349866150571054443002126517215483034396519150523796399618692538040342058577345692515267480690997133959534437957776751806465880983344896269983327844584264002525446927313164496216033014903137569854845005490095694151821908407158314034400004356660806529476270582091943296212630769082460133191364916390976335213351099316340525952880626670522562797969797133507842434467655451489043930694307210280883892875323428959398433738232052795826265863363206563819233082886807514571829516859760703519154575873332778053089801178331708524340814907298247557448906854940041557025383251941435921740385783292338558849423855050591600205434500956262848043644656383216217476771371621527326765754928946035944298611220621117492658869154723720053838725807905149239013065089266004681160248866967094729001940643671572474771838763961274480169646624128579367475482351537735879501172580449134173255790657687279546429054810989685136048192595720949435235548038980902092260185178522240658561873127935921615078122930645085639477331521253450697693271940127301008895678392351842945255327532088811234777720057796662088783888862822129858619806072208834274113921703070912746522496211299582713128594460615250061933095030327338449301903934654259702363320389522789153298643986777492497821172532072465575942785064222824758251795830301343740875479023595477370114168953787977077100733921475034045982471264195075545324354487542300149416184231473638015784229475075075171301665133112430626542050742305941257907462523646146603997102139541143968107213183191167640729953866011957669373937727476152297974900442641579297167916017640906684989702727757719412995458025299262347539778563614654627574960103134373975909012756775042275082311085356576925045225306506032748860730034959704213851002733638491460763898946209012649868492102935074693806951762558318980308055294645848597486415328868449138347045139072252711169906075059301401081620637160400106881477840081215547302566752939446657958116665186979740191124474977857884949926170231243054555933294625867342026606435185330172332935065830545938375604533278530081109797638711574775966058978877950933233607491897918062351829250182777625037548358932052251335847901700123414645366773532847669531615169234624673502334976267172634858082019194446702180985165870066049064536170809218020447243989864963418095552999792913318124684441389632342407330346312573748849767063936988387422780263015660742589769958791472937789822121105154731829600227671236044038405809218612550937045887771578698796933041053170820241541103642651586842266413947448182853383265257041039807540009360773040891620677224176404313094529389728778929451905076420370966485079084029780835019533550360222002286215634693532465477027363908174970347176251644473390466385739556126200634404541999724955422834148993030519267614460241804464029904609970502671144229406355271471254053487435444228851530386404748889166677385458802210814088262361901070998927682137111502523492730293347895644328790072134244853306951945308441124149930368595437880709377857065532487063815410041207456716379104525893795815122760743547507075920797896137511469576989022995232210217949178699029924878401387135750824829989873365511676531973971472501620639507089188478726792941379913265206327295737250368094305432805572622909754127826419545783391097297142969064342979075865138541410669256998214231623149579139853953941504954645016434985314685017381019819651138381584613751275522920911520153343151635341418670345354373277555626329028182471765873043836429566013359434559635031358910550008069295918522237358208143885354850915927382937332212780048243453053132369224401041831655026048098315524226166000292783304018433532222555825591164781445172936229236128288801804702144101937541945095902010351001995942271982661388408848467623901914626355564336973978766986803007783133941484185388888143512298929773039399530681619862327371300128303726589685107993509494504989308695024504994218743758328160771820808674743129734384183944415982780276044514155702319182099336309915840925024114003862405927792075891953396883895500782749547288635590741821575660018016923433341226849257959221960096801901191120049417028966707922007205030282382648143410475902521380058520759281367574078165959214948381584942761399629865324159326380827490678044232290760051735844494404067483526511256217091664049175854703507572964400665506132024632866965153601306390270649362986291757716288097114416224607872580649563747626044099929362382364452957301943975306563995818960433327596630520080201767802743575293404714317388248764670896855720272401154924978483646112440866438435337210845075044646151474886893012695597009119012402853315030349220833181816249645655919071822253977775301156812546419818590058970165424933098875222267415734396949377150714788279956801700009387632222393335491411687120087420955684517579434676991838296858215849808405245547429341038677709431413985069759088645038387757149435888924030776282682449732419847524705275485157500646173671336562001479722120709690681909312174032694540444729023241134431168887361322147138276841962851477369191130207640695776963965276292791412799132567453700665089884001554073773282539792862047878179314468755759986142552248321121520787146056847001379221888901511604789451516732740377617564969613311315601560481316436079557345223672321198669188974080871357969269863713192711968172414513852386635164331736360632958208869547311183592219447650964191780425329312529534145243279561898701484498090092659305831778635686045141830374173224064910869832817526583635491064175818321989118640532910863872787587297553636609985508989165467169629663542008276704574481274482273088234415912317616056861018590516380014934570688438956585636539692124319795770712254813966405661999547926319199976398301765711165418362654668586005982241735151159024925310297031540501583919861774637032976432879116658055028143960511269266018721977650121571309248528811820628770648754775727242622931764274379628402113829354026407552568232954644354347865702417688139350037880734084110788357722233919117355271161939586999559984502666697083738834039284960696124027176409605837279505831231910412926832756660079421461200722989892022795487131610888720873614699850496375970837452597035755569027585922786939514121171182558869527651054480199896510209978953619938069040926091337398831723777369348371304699678909854499921798843727613379334303483055848429341192643021998716025117745776609092126840218052090466789140875626002680420803191954148275064645321347517870854659504190713468413714552637897139596790042995239821382707548294704645943830699181913559587784926967290798561764896247217945158199870585779295968120328981706571613421972233754725993261164346895671396205879575050843899252560823633534902938100969875738984086553794630486168035086791133428581596726634824861753991816669998754688852762174900545104116849499647021350461414231660163154853844089107756517145860090146722556000433891929133499657096505239267609026548149606558063731574523511129813044462291855819384696512995506153661802649453725648596524756814737526263719109048813997968366541577970332849574054680057576126861508583645444392405721446931626070007582171403280498543551601561409085576753490602421096507585046800881572546608163138360231537351676441538501042456926892248684815652200025126777689284102496044261168636678207566793263234469200711356372072113893035317459231410122436728121842974599779383846127092313705356078217389938893253621540131786874687308391876243789887473464500471732247753114700944012305552378588635277090484955328093464000011639234773668324704791105953914030039608593212168081014896530470978453663242535690594492309685275887305996483215913161029166513546146418057680936985648209803881981654329953827502755481057807541309078686325571603396781656719337908999174591475100294488282210829486322513549725473948973854062260176085057315737853518597898103735309599775622787425981664476233437051438344681402325118320838811567208913382162631921594323262200627099402198757747771174186481128243721612279101170953598283415720790990326429683596911797121801018789361212888274604793282182423589588682298686913334584164276558709941313462180120344400217584332572737045776809740101140615240539832632678732808714320694537102097379992198506299598272467296978657208374726973539417195377195228737997082795296922139723567695043990191232618368311327734452680053019823056348116889957126113397617942517899612228648790114012285124895922264981138312618916874030742634897184956678135461306644528954445800831125930897568399959921532589650228977637581666787426135144074146608894215468013809549480917159301973411787603277656028849668147280844655708800260287231385721197763487029246180846043079300108256172472439784468449353884621076094226821882891376970472668426252831250516708951164227835587208437919702419894899185478936181434538691305403380255753045882590294109489709305190011250912374233863145899689052219450832123645023129832117062103263207345982775599105330421991197576710595804884613117372237205367415723176195184709364484831337737616958380547358522208603496542526896933775013245793899216025250255981793497579736617660545426439542350976114515084552150037678993635149048777718396962232975681349113538176646959760146513060372513412698819189859549238888048417567760885308256956730007913277786414372676987980151296405179848945326315249077980485681205030452930384557127783576216657137199664737252443032510886729204214852927722110326605529141894500641392968809853336427093520800544103843560585649421104154102051715878504132186301598667190169981002339535945506643592423131586339322258213515608000056448135145037888846337195899954871445752211141257102273478736861500076841226272256705513672552369782467584011936057816119205188776209073040595169671550836812714532633023187984286709793261447558138655393253272372791456678029709310855037024731783597189418910644658597926777772683564938817146543013211704071549155071400084107766134824142724124465530478628238438153916139717060422615404998139535625326276157919886604259762404753311285161309430116626578990492759713595866064017757765425403886697988873029944902129967920814497609746420082928127389395105699942605371096693985408653268537751735485284434421279797601845286253890360392498651783331871527538147625139189056128194396143748482497360822208807736798838247544295109337988448145005547841536732369234604433804801977863529061090644486651273355267343169579334258510870829359576664876032140307473770256221340190918614104215899781198244081080944106547858323659423427065074454676762102060015214256011996932464631872380606578966491749415355628414558391989073138780855402791285538658983207689620965720760261802451408354766648670540083014104431728627170039135296339003834330953503419461353659842716123629140084359479153995457319620036711831721161366961362214175017632955700445421961734053246734330667166191347354196426704665367313454326471911164114060544599537539815162919082233053289806356677240029428162201197039440952441020489020223920021994885697252920877675610207812484612984640467088613164111988432604815577404895061471510790263275187294974319953979351916399634476391689186971315792102661592242515177903537744896851080969268161181534620358014021866633287279772082987824647223883722226282694540696080333806723479546565837128463011933698453644992733454861688466276741290468504035124835436893035999128769937916367007432157943000976073389083787049135282513514865934974846086421209107419946626340596672402546644257965573450242079308978298778780255348682859383426031998126448435497919236130568573137356227374219311186751828722736591564519524606403042524380305995384177889946771421882937880097694613114616284400841695508701844727447789505527570202246745757034842455603421066653789957535106992610953967374954253171626496901213511985013407901895808985832831351055447699394344504832349891678339002269514046217963358165466104095390087033268003101241534004082108101043930329620953040155699087368829100704868642638100647096924015295946863785271637292626527393024117342990059799764694109205840358438684305899637584758454727694207669007214270511434677420195028180053784569317077500104375411354112421501036578871573884619792214313685391365715231863940385256565944975855599051158433703879833240898914815888804356146937902083965051489285560749118361773440814097921648912975669199179388893596522815688571599555430323157553343823812234369861211828732495109242271106592332303883914889681611410804232812720126182540010236202819663577055390964357111385754054385319078711637457790711545442433067687322784571629282974568129588910965807826267098094235233800679801784729879233923775006759061116567743993601381053644495170023881904383307028502315110308023495829403612205709205867347111525842160055907835066816822264097712530648351586671226822602331787374601612245554801432588532867973554829682146794493922762831595438660619019442291481263794414773389478676303682508760145742514615914744836446370484661066897245983825464348617880344526508536733373750802394585482732802141416227825677756713415393827978503671192912699880941092450422773412335820362073281623767626603079753254165119039295129029518824314625703509163198526090723721142957133110531232409862621484612551865504545165268130596743143376176915462116921020715060504395794984029999316592611099948497079260235478051168335571414628438776735011027559757152330783198590677785676439677341760318800142062337023958893918975119370797192380313269238735009347929939849446550354227877317928720398428258631454227764905274221586658682113103421040460525228772726217878078643659637766555456637137559890236882017810560875125390673860156577826742611254421065779219451061070150539496158239446773926488049608973594796798363878423360388853329442026814734932173763859213142886133131141547165852926311339557715412935148680608699276469463673699909062069896798317672299532476968179609892272342092410467300241972822731448258238847087199671754972949212570263997749927454324199674294853917467190165610564884050071930790763595229195110095264254426555081861330614212741170190272295296398050596487556432334492501535223303734959681117827188148188375503170164877718945896887243718305704442726688728102793230485108632318182179943328842434927009677391019541564294780069873465012963596717739244732457362507344437197087686304788283543796111920492578656465155107139090836894546660654749152744161655528045487171781433616345206770243657220054576428743486149684911376602257372528541239147846210750456176603969409430042301217901597354777909733665521336547784251787438087011272306656226559312246771881442121785294489174514118074340107431139308572475286176247026363554006044054905575889855269831988463093348780099849454104536677814202886926935245050955726820362637071126503251840198131758314502366526182005412374213306230262695324070940205835108636558503435223468782201188214112988241173158230090269789601709497289794275297454043537746428831245464918426634526888740265394269361823687256030252934610975043650827058204577958440042109223682099955059554083157403952974040255020242716555026172572899500563311265766587462664546638395020451380216399235447324942874223968324201705521991426374293803252447020644716929336844206618979556003291206917294809210935493230653870535576541116968320869719641849561343975664889306341359872761029018843791261488858018389404168729952122510240363404017288897415463188211391620716691621505167039111971728624020097521708436573325156083289916867576658603174299855799639588588287004890688606306310049018538856458935475761826386691157619122800729061195449212447264067461504865959479829382860432224589841960769351136732600407833397998100459929852841920952060437671591836009901943906441100179694267984369693554177326192261960873729585435471890916431672987206196744265093944752163549910748761696569664013569314236719095455208910293208025618764389198920816882020686977902162246950571308222380175685228601018209593825000008224603495662299139885146283158255166832168530384960164981263125415911283405813222909811691274502293988344051310892737825509021571108947934222169416696556612252382982957538973250482084457724833248627017334247230593527016552027025706201594005183854276856057033729133225630323177547336091254634907938050084570641990235469280283481147887557118938545690331523199166212255467734769574342278501975430717695300738742565986960952218243640786908234137166357417494839368401844048328583583476203124866841620298194995553236192133108596138162874336828939966713287502479099863167287262825585235805171667466898254638883697298782688893296340116808626295037613800902212180410627014329790839866089288031890052243231241308133488062320544272033937335540212938603424804001358820838451955479052374497258318158499463060222011756563642088652821899076321988049422270313991024833240783649519961562045407389801329358382340945331418203113868348272280003888666081641564611231215780270014738834813794632639310749280939736940878266185966167298723632860363211567348009613329771465611569710690652555074314058086062548673870602366792301857821271163382579095237390932788470005506509571332424320657192283995307687190684866102185418172392635016872294856817415430680816339426378927265806508830403096924197506708852068942367629777275986825509483714264692435277535123382777134672302050608484684615920849263823265421865109130939193088776441117323554193862011869848285804905455443350609904897682752821345785466223125067341191130408514181063320068932488693289810900956955020255200115047272027832688786243016343654784455422122974344398588141176300849186210994144026179164392147326410005964810921819141379508824167057236115592528506458609457019675642830468182588614574728756833259124018759998513746146286528186447282899188522169974314995121649128580214942948837337360952327697948097385341018988315898584886665459469834434139208511717148370208303601830341980998651613308791209931589212191439091997562245435280748205864029066872043990239544459595577488245925516558710663369217631963866387499742588970204443051369831780491139617854284999721755403525332471614777100422789997362220555689464036145274178387125735379076591727958411579646289181701592335690081811278462014911862330341969932563872893561058539362465722520902157941774051435715946900193174097146196401922685506235496978233622395471051031940329383501703228051222948074716576210066643998414920907152583963088806182295413350757717579325009820991125446208315848321291095708378845480392572923481653517634178235955126480601394408914662291682876063842613594802642581589241865659226134365897087808740396879948853629224602934719767171229578807024864425003181014499317892950395120295493949835592322428444641531008085719745301744110233565499943203536052133685608309724343739133574787335697911634595441019938792240116841354711698502426751865243237898679245187119440138321426921553751624360997801217705128704520716413102187663518542540320229507139541101205813743502341374636170203760145122711011454119262645012315828275361919677510614345552200500768426840715853886897660642578686755236810056859134006943790808201474742463488297735310697234984134195631992262991816446144188736154926048009794690813048195046239306194605213203616290325768944793141400906323591173401750506037965959975937253156148098817609407409117148452272346278739339239917884509815382985679041687164790383938190152567962237673452724820720570939018671288132533336660935628010058656668385083743479574046148190721570768783183279859833230793089943450217990752272062602345314587460190351931075918270807757463927452784743147779134234999890709777599877201900421842135624089048463294143398451341443657882602542605915805215775327827788460597957909598883313870930230555168806624590707955631116353806556908755888941020116722231849520390968423474605016041262295698974979068292797552048774118844666559497297578289226440432602374146655978757245446414219508399593489463833146645772445352754082303320018538809242632068910749257671974079472226917879745175465674388544216191143003434406447751686130146224772421534215157302101062697598349745680875890302091503040679324736908227988555858764632697236400106987484489355149499879677437779829926109278378503616497658929114132031843287260975754959053231676916739986809005716169487028271661936485341917705037374471086017119865907270411661765496310789340313543874447381199665829995886822870046681945342925382325464639768128404058051521345259676002962514806392616277906570903732014011286780978498631252064774875427365302657101704143969828212754130232714025617028547764151521020771445878016250814739615648335624269344669017951319720774079959912026297500468819046568357146741598145432914304447977926842230877578127937996764588301320870948670647694494318959183723101463053439172776084213234343184016559313595062208742617587503657309419278219673769544170964855153488835050680031034508503829797851189703906267347623051840218058210955745799993676656384780519629960572927509111797764442515328221876108238921124407112088983509328822959392754535268060131513756806457852668633720739721398927520218402779537252495814996958628300588840818712603965781099021517022301283464999902460779784442338270627111965442315465930990882218898756093886860539689453046072116271179605381276811833611288316748732765781060745523365530574420868948931378026790450455498594003260544873859749247464546835920963552035065835274200231509657362628544886246481400376876935119937167219769703782405513000909620609478071933968959482972034272771811503210372089551157080620557949159247357558023565326467228329609419830533848852422394966051545886067768911754441009978249978748315298248527764691383411223807983451106504172563369440716561562212883880898875658118183332228697309467027936762156696029400527537537226127071405404750942200870327619175451268857861851534671146489516063765313017443241558865095751520483346851375857864186908826002207902805216885582861381556869158774294289989836558790063578066785625023505159417095443632997279711980617458528416619933768136340002047661162619700940632480091816607184541642377269772143058443107861284603181957756147689826615215533283028079317470858765979785834836763536935826767295198620268942545906121969099115652747167442286765994972270228797014346144674785057584363101061223136029969014190806345330737348649926656747308184740458468991331621529578903313864509162865352205607448987061321366339570219653068237632962257603588194963459133753461009810793913598355459575104149685353195438371054869909584732593688932517146189925662035590625581165584623551167412788857340447033413007779029968598934137488537974384553816347362924126618507145397230129164102948613794262002885378950838423822197165674165518911812466574410821976169912562478891243090561725915010186326014435849580234985688928660811500041767540237582383473335532213958790372262262106691255965740836667937748767999025568905673882275058429986020980826355916360244349619961311127052596928860450679301288632574673375901353866118054804150981800954330154761665019673718119201383380298724796004570238955234223507442436000652947999811143949769319521581306737132988962467821230090516424642961589509625119731457868166519782345420445454718804976475646484828722622722391673006258209920840659586791902704593641339328674058678362739667350448309008640826758192546299476600299219010579807351039409763475455303938397362673010192128536622173723795997269459693682703518191187679345308887935976783914062381338881396109719231609123402352007052517574930020627823576914683488579783719922069694456832313151953359891841395714311975756995946928652368954419282861186209730460305078011396373005286052241351387442386883014184451686948254836312691274152960556871032111430640864624641825405542841852472243876539049018050126581414009105367626163164060356769352729059899779437370310864644898015661175441847225065995122162089548033958167291876692073034031347717052081762997387506626635358216601100203768604979298795121945984859277807715619073855522147833232768443874439953615688386719843775188960928339711059315643009283818883591464853360580848807001143843151689139668938017992431965857431681157615353185147195109902941299562004928998409064468507460938222515644760214634810682243173549260544441995507728110538324718918902629787993644088314901902987070409459673708428324599536406106606081036108085511794424252985584402775622157943631976937819153217929945904431624940991669296633442962310339446107922592450998739262574657939054625276111149081276574056598035401036031364235019713663402801758921221972035778933525614295085429843750893494183590517163133392777729449476357829371994792032796869618736133757413383769858746275592739608268537637316006538041381753872413930468659951235130978701104332051711599581721855952238097170105157423961648999902291366270510663926311695279193633798210687008289209109331348500622305849984981560652840206413988152011544504754996234587888580793968832068520589192385107425937416400320082577646283756900144227775372426219315728973380208737208532749132364931804001744055443367354119291528136795345869875669347017450660479244502154781320014078236702247450163484137314728329189430000224723950243071741459199986634232061447945863015915711747420902372400989446285385518769754318066779360394306250361131023948815292056535969064660139338962345024313171505058004266146608836590128590405214013224103413743963797516313236115437623799043261868078483144916544324415676918379424292287316867576208839671841480040894127186963625242911648575979473814453139834469574902170509597962057274017447774996652342239547087084062002552866855101875939691915624909298637326089951728052526481595177886842386806895279739489427173541647718379751567237010384209522696296048741011239310747023223966623743548895080395542078293913604502872250242040233899723747291196806536296801368851836241426503289758880979934979964643510066378864303637025209983498574592870948411062302099671627892298813264989434942790793664505037103456165720382416120751539358827302084716133800962532833647304535082809986473734245654761330863572968403223666977301017247141287404112183187163380421477393965549677022495644475067229943263586494662371541953238507662146472287451751695063490843951049994861983196245862929671370816744343815754961364522390027500949093521052847952320674308743148256834953697841091472378815969872739321275725206054058593804291568446639751638726062207145242119597057863661566575994438006443992729732955147145074307376197571883879056257791125895284230370933928157322468090173707993198306484926806423670380063854620382495064985221875657892104687332679758318199269678094101834554590548680374627479251503573442185927086284384965933829280307501677537728926674350335477043960972344188247782046891733482052208376308653334645174474692795427643209749296365426447882661042092799863588647323564684017999142382393604099172690438632504868172549389380373581500195411075532459117801054429923567773693673374992429198458054516348763279234431765264460346439916037800941013582726876396758226825358232594737188419330113419165466628606909247025192908877732791672346703006082273820414010638404964380836307446586905305027181054272105300240399079165027576480886822014011069677135528839702292079094367094590811077269166998392130578922687064737522765821798129912530649293631667873177330718423153733370454828808803020805941975468042258494648602919075997687415279632432893009607028308683415136381644095450987393962250297029764615963596615062618892166044678860086768848857234445618279415148821985348411498536980023325553742486839265963287097417197890890616691569440112959465321375535256042690906597056283995277865015508968535386170322996391799815295503564228303593341411428864428635179666863912842459923618865634336935299139893449407698790883498411594667596673890743362191527065437725395381348472810085147276507245314890624541352253651491411318583763287073180895959600667768162408052571147934225279344939269488814958256809781800029338603276074340467576589546908341291215598366631104838133998280919092432396296442613684417832625679721803546657572777699942706742532207211409023727693109568550798038463436864192726854582606935304145116220989338569193666664162973601393300944092411323326033512890425202881498143886706458250298612643401370686184591303087802915683218678346870704058623095919177002219149378597670699279103029640189641586338814761001122778882198328052607071901905903937184735646968893484173710814885536298970991531053942041024309580123545568091560054468051399436492811355816007416867694542445890118583418779725435276806374553891198331946944551883484612993316419848601610074134786385312661604987677406030963794028391469713029033881272933333252276568200604715737951196872963077688391830705252683656267289354638516779426254324590810910571081280078995546541083080390622284903689977230347722611683709385002723627769652574723283012269523850673464071905772405627315958979614664437469002694519278218544046200558932841892039981933845316207464477447215682071441047769846999380622481331775430568250824533543826497869840185101720505224368956011898245398879480988259316048308770716285070786824381353240549470005360138134146808031313663713728852850086462168014425696604187721140996727121261976471871728084188004528459857313457197844636969619363566483378437549018790056146018630058617924968666089560172249010017161579632920387637992806319115736378562670486653184053681734801941462807142681483429188463928544017435252970235860410338241382755877479750480781896103992172053989947619513624948725159232364153540772021195456609394727967088705764233207287581274247449662781202486417195309498960787330571832560134614152278904499913384885125253401076870492675906825921044727034825226900465616442993979027218622697432615468553764569472607284179392123922110202300095159314926924079312092410197756587507868034179114346122645497541308359863078395221296615302803258243559190653779869245273388218142830283576646792398698498969171894637617657493480960163985208069276621248727280628444422583787396325210608397797683665898684938822841201907395588005013391841969030008515941720012502338538235265686440299126493741144408732377206423429488749433192595611664245461688896755083864540808598563447850820558426478878978802869209320539438904772541180535390623571894486362340604391295495722374367528835563598477413451028462083244749011395607951084431363353663346832657104738085780256014262818598203750849858250261999628219106846477592651482370133859278909237963099173715862024049997713358090448928022086453675056192968072356106842868214362581365128509392689127917993093490873735550464657027638093782668055849885382594739558888572203448993715096897823629831706253731057601101578981021920248769291858098104739273379630850624714263004586808558498115564081091003108607362899087965147241644691370445443800183510104387528946886259209730536851864742345237318702152306052353440063905094313689171106395697043265415890322689973515036952427322681273208530151388615818237238518079975847697140375361057669880541025292331286944034272135433141260671798072976682179606998543325404985354074049355654746396821642718579914538313391430073904694843035542553463547245201949236469307571397765067294132797062662680947015763899365699405151431763843894321434254120668303959979458695107456064241548536689693946001889204827206037825030863698571397314838511963134065534814382399095030211589652596026055018981656008665819028273841289428997506625571788417430621527737784870070584180153336816587691334090164704789666222680647039877518995563989512117149262457913259102089264487941731982114196686476972588430957681078013482119233627830375157033225949322224393198945084024247458470267539384437597080501312950448077546728139286062555965096962088241077664923814923199013742491432380512050053969773378604987844865673412584611737688266211434159314457944851806924844791763135895758071441741937307215724247727029410920899389927551119956512435930034202950535467362658161550135848382092551932607657478237642343151251483053294315949970616029017121930476221119435989780413344246563723856097379689850237265528864187206819945772076075034680192988026414489310600457077830063903753813858522933242009121485729845682996337512281022030350280196223242038038429824189558582842028152210554687107733364808626761239032758779557002899256921724954701638071482853608064019785094571933982981714084488417238331840326114039670637992633217737483190304177981793900695774425143060006385154440269056555253617515798753032054722567684296627758245819755970607755675912153652383022890338944740629801032207556431801691730759592909951446178696679392867874553976976662656442876434726814022240271662574086906884344534043502606329909674628692530933351760906415061754480001914130539909059092731620960171492850911833592527019331543874942160856552927243000014711906994816004958420188401627474437232426185513106936021022683940113038389278833146239328991023169223203256865142454977534900915269636098117522483870435252501891956704721119060879606428726187665002852222335610868201644993670545890670467908213634352403266962638970369808572866415720308177439731513362563222038526999252781966205869524281726788178174929389604428216255028507579972949304770153891627169810579071231039721302152631241713739918283817238552258624872941027495337049522032077925669043294581951470699561189441839319170094484936475643282445802709628140841979911915790743201274185354816070397265012922608703508038450808687305296089597216595760871138338477517480981328584184529112078405894841963561926424656409143016388697430733499868745454174466209452701429335965184215410797746092593104654191976688360684172191379112237163821069411623772026726645345583535595285723750846614892124366496051076893348271390715262090228599646025354035804739278303123777431141628178635083463171845310853460774617252384383072126956858258131809954844107460389345502839746644618593028025344034920095876062310426961764198310498538298961167945491100619411970713060928028676179150772350386486769647034845102349246162892963056209780681006262453579076516206610898992064103665150398672491804005633366018487492002600607026662604884356783335898178029744114376127489771130600443617920676255649394461732243823271506986548229946580253875427612777183205613191546847605173041989972877683716006926218087859202999800708601902380958587066482043033651412954850199786007112465718730078723567964122841821610326020016422298409253217868810921937666552561642951429844153398293821162504313637571998930720385687461997920020447041674459836071909034459408566951975388232900655470137227150528498832662572052775909709157460127454392186372474658225732844022178704419890528295303891377728399563525026245158275757070816194066825199792796000377273976227423053585805509263652629354759685356282236427409119804521252575925755455649826490823884550367347013956335408864951370157572161310450962797141425935479976416199310203787939878482722374658690554957159767242410983330088696313718597767863999141887611149847740227556012095845230870846800554364034237074881241187553026965669793868767675557272299359096188424404582294802400205834931697768863417708198714474781677154290738113538988247277963502155952342883197595870009985164790558221963882683047408967008023387671262887951786384136732862883904514118088603066566987029460583299323095527517556823617546743779503515973860672012991495015857989925858237871944724132241292818093215895395083245822935286694810190753038635654867231110444463640371948157390490865228426799038272069642569547239190078056905039927492983664049982160325131848325409031448179231368807339548010199603971774944208797518186217494202004389396729839701575254759349094608898708420635467225967899388684937659809964437594322036859719239784178602261610351731500765934946569383035699719867143011687430145641598487557283175407214768978290069544643077672057603241530207352020533545476483177081978568346079824919696273581016227007954928895465053455992185022708312698856807091562530152208856531011989964657600749581743950561048958361920423442520084334713623167817458983581772959518971818222873643947391840019328169392052893171197776958280236198838809064301156181535614557232722087994859764185758520278172927145926861270507255698068325889620585620540754425296247627241242692123280168977831310163521255692637684809658344051062323522603083509044726609880291484771157479475320761083103486972410881324162416274988291437713943026012670011114210240950836097091796825844899788242941439497408341147347930483435163669587629895777323726503451501544573336014977403836073161940869547540740080552796291026788507139495971296117547921663490838849144138675351673629021182946453967751874045896053561361239264949054180227813189524395830599202075317256509746141993469231499268113700114722354157390905324143384081849698623922777587683435618039798356837786020850601916467723858494858103055802920325007350759904987123607519610086144210526824856768951476100080252969020765236028298074169906742070086224834550029955682745275429276675919652687868400141891941484564434757403222449285618059559988725150200881856866104933646946802209685772508894366240512506963355554440862827947904275951848051914746338888900968379585955541919453404309585407480558154107380559640188136502094490803970531373434606252530311028398947979588696657228223369645187318924673009525726965507268048654147866646206493858438008581808495650583268029301735124000005757729766937364887457009300196176501702947704401551501746393287682942757392720336180534826743860243479373518923739739517289585646226384236375990998419214355394023323759177064593075565973095941834046766505478402997312896942223829387712109556072139588736377108153358098410122087266931959748239871969202982610692031426756273316760774365308948828004141161098779197359351467344177701856887501571564398407389665536705182163769367285315850392518582231172247697018728964647714483445519768191483909610788908809266581842868378989197752756332564129296553414562520203060507337082585620123645435813535636750980115317620032339354378726353978185476077505778571852314802844369807795364423962911054703208083864419336092152856455939646773453473572466787951302043590439833907628133867050581161985608117795308241554922017438994333723843116344792625315642982394870244231273734558712605513527273194828442887050982988851389235810537563667376538755443804708241071222718338125079346970220136811076864174260812548812802933048174125212440110677089295626084265499084111607958402401510311912574571141626913676494672581026776148027421237123562831129891517300512616281322049497836095431038370867866923640554535594506550347232288118437328378010780573381367617214018365894694036967743940171567817104290698202887791509874494212034381077554850104772571150586992226612960543183182799742249556745768333100212634241296041260467614768354423594681780113272482002434645302512086613699485733613020901746703361651019647890180605812326774794695747130431052459267634949505976858577869705797233729266400987672787939941976305520601436396442030975247962963609445393382965740941887104811880288506402637705017400091123768227035631513366157196910774963367873028812199011310184151821250965021870677194283100522932282923030183971714311970289681813578111049663892054164589916555404547816772488292972400019104687180974232755250918204825203721338966559920476382214444488059105307600228942661466033155592867297979429652878028551417591247864472877649380483075351959174712167218164153586143075146232459343485903081844956839885299167422529964605198926453978569054629211477602487500769710735661425346177346415652440828228231212645714197584058662635146762458231722164689729099039935828792401676910712849208994986860879003655340291850866160719055717248146266565461667344211740112276513087366827474705828599212840327838074534503190063444972019981776710491895718630022186402083082178844186523431624203303997142591705329889371517645138590878858300163718608115799216963211846904124586910884133779561285950296566225723966644369386579177765150386263985908769291294409787787293384619401208205355772811627721779348619284175476700920640367834553616158165351116453042278873457246310003650204536051264942952433927431377770002033315006750303865204355308848686621427098811733686499225282491702648229491493349850968259590395640596523155041451214176745389432692905103404643893025043772999516590855060841280678128117453788859780404899744024089268920894879414482538889690069787341621106347157021567438738598578978230160027845930084819044406703827391392082312397916651081851863309019746717538727816887829497324544796304324922318324001056759624513699999515433854330653617309409890193874989076865886262245780237286979466471253517435772426508130218070228715703532530561021856855064700320521800362762303649606762246426085723161288692904067174299150548080387685396272628922855070416291769849802970459809655877736702889518553317592811003595702361509645490116685933600525178253944874715323066675004214686307185584769203496024546719924869141746310022941471826978151606724054001108348953931449944252007856535906363306128903772378530366019804103353680841933816643554217448216727601418079199455674977737245356378960148048422418928504411658895866132155531812801856088212195967441890676638809784279221918407348502313275413301938032574406927702484630653839949389569038414762150361753011222809035066467023441126208079644107196444947400278622176715814361669772863156821770814889783035894563277765969309457090084851737198223807106949031457372584105770248115021941568515238661105133052404335948651425678509384419466711175160544047369369406943957706348973530215875318563493781673518391329434146364746727029967183495754765929215581690139876753718076086086470931543597954006569745458182698011334177121157363385116189091895415731379288755901492465184344008325663302492280130979688687103336479507488371655422967896926545836489517750225786203712680356733061866356834046648441354716690914456576532424999473728525919604246392650272466928580916269191468209247157206741625837448347752898056011562600138209059551449643517546644961388110472978062596291709399111903312652214835617699411382629129094603811920679325600934154279570736497186604253197485188379858247190576756043578684834057300580086491194302128900788166629850507779647305790887720885227453630884259687067796816724695180490959342538470803861770091530704304923438092429118365936432411575842978781990216703929715100061406337220254076371424153812185613180262057129209566332393957486494684161765520952135678222834346041833999239515381760884193346697821240355882441615457599393526833400651863624406227380885250337386557613581045700974325405111087972604311886443684461294876581458254960679801240360349215561039278663579152785329105180956545425142574130703363442030235504658218426393880207668771404656894330830126699871951947722439556174165248822627433968264374282222330641769064008314076710046637627097776717302005859946123249933309839027931132816967251559062849303598564685533045244931267972799956551947931927887980869201914607054684866533934509099010108546281917905852804717869027431937215811854891158380763135213851106843186967407051751134623321409499831328757871775750021889282906816605036801900237899675413282023250657700641404759284151254388128435763600372050629287065271989659589618645455043340645382070181316242620230624282716596720610167622630953543537073983964751090221539481343665119877738533429423986488207602927223666967178024990873899401964946759965761569384406340135507358372427299687885332394467492566659358979998375355735506777797241737385455686170288110163927209241914394358789101679717923748536390120722904132022600630640397752923296612328521876330830731093785046662950131873882360501071684234722022926057894591023277549660590422397727469511437211821391703615117636996012315728835480484595225473080575748638088181187979104806970879528399137338871250062891855725884136251717399328407321242355184407204989784937014004772549478162020355234565567931127814581930923754657270048161845113425831577260764749938323321345984799833578241017095004789963339831282486083236274851238604736339762121885399921553913068728332423859201895894779920784524985156645261826363598841058524899430936255296987616443834544173617272663393116730199962947594638082500168482079902980746623760478262695010076110759267539737777075224615651513148953649851471977961303948969305887090938292586543831269116778097375306947021035238525427537614247243403088712537179555371125348366839327473573399442167507695030514588899867691229027160955867617506930472934625225028507856470235946614771672611142000683737268844109070322687060716787465585924768096166703200638020436568352855603785105104508078417577180870007865290011384672793851982760581451656731744355351406992290735007482416670191553145977691833132517148761472506803413226509809424808074279241118649001231771476297353950530859142600436654903636210539458222250736862631988750170689071328521186486952545994648339599642210542558790135171704530908695157152385409636540842477975268420307632392045271308703994679782212635286432964002321958393897567420124201707052533051944209718517918009324244628464577392816624563175867429232012384296350018283010091646011752533617774001385539122620440399381459203600023344909489531800604907264055710487443178075157687293614965018151873098378594228163939081881903971936075769569902287884728374189983606409473038021768055144432308550871822677618826981551162168419049189532445701020595073983588215470981796129675501399032191546838028493942572885287165440193359620590777555869797540340831242949153993825284808219272642404146659136158108563651519146338811370978433114086151094850411510786472149290903310641645120045322352907282151162638829701903035687964615423687721199208582321979478299444989643468049053030102552861861602956921108095739075249145518665179847521636096423036336276417950169433465632351372117516058087720201815843200800023200065028954394124783208807452592878110003743966363278735725927098926855728927436437980365381217999734385798254958356135551638613424341543633958967925846560274853365447275446913366314183192090346054369350768170328586141979322668384676742281219021741096551320122017598132466279699100164529809445852872869431332471341794301573316002690785530141318631721001753943955360750092245607890349374076661531853256682741511384599827398804665939777102525700051524199293473301691213285564209264929655611625227472070205447549908419400072796771385287334449205384734011005559952262087357884809599671786323072370768403371080748316594525096923327286339210178593552502335684961873206996258969032997276882515725297819523899412030192298138220391592571698073765015518392258727286300656093329551846036429408050053858255536792713489394602560238914018308262258845455659589997143783746493477116480857710590688896750935059832336541693501114391166017547698656028433966542764699450156731692346598089429717467782282508711417787526480088528412037041257346990733824718081900125156809828635523226533236333003580390713537610078458059859492250803941603564864884948002923614918458197356686107439123722951212137119785709753544286902815051226278693429367230194442199347461340576747642296665948558010913406057715861983045690098892321520826131612787092551451153229180755941275862515758716437189986897735513555080630218830841326920269024168662821327058124708798414731270626645291154173819746451904161611745641412357852856575811859194903685505330791018153172702851816564386662569779692762536611078983998862197704317578525986888989380335294718857479898242572430245180555566151273494982762402092001260147705495768134383072531804519512100004036724028297003623868616781231680540381525282571276996137830798291775678051493671132314486257766510743531754578074426508855760437505279332831975572862226216833014843325718888842953864058460312768452376161635098328827558483431588453112307577880717630874767274200038740160616744629849195410578473780574396576528719880732199952800714031334210052303445508753940696938383231741145100968653269206938174362456967879176801876699115918717800339355515819822287797437339957986415677517394536398029405496761568873980130723460580275419795353392342463803161907034327193398427125502230806912382090270347421695661575208054478765591123950206256196836159220383970866751368186988959861221675995310679358406441196315402346579795879716639837825857415995293992142768204353352212858913314936452451055686941228133549544180119696569682306136048433462855775392321755789766420692562078880834629713774885723390900645494597093918407819949077928799358767879310705949295545039222256760703684177730628612022042061671657643642932605842464698204755230217268933270505518416555296437725906585283182383438775316159311469676713001825081474534980153554336344245619007521024960870899874546123038818362585017540189226144069073936741718421389563545697808981781859250889149955492026571180867068811861070647234863497950367780340234119914898275578257862002538763679599846775231618356438985447786019909711349468795037164472500101594794088402741276269395548373803491044068293303999486097286146603683703012087740925038982752065264893212003654889059613037258457687624498069788867054194037598576473661972376452070141335775298617889160060480008714996856093796013010883383540393678190115010336447426246719721171480249989786163373416215756706232703865231817119562896778005102131804588023542626737217217627423291654950652384109311431839563365371698389658495771368040279274107191430778578519205207376434769161835029451763791083333186040699887366580746100097744800908550366021832042643744262789096490897240493151180042143325828452706671801881566861273785434522449034366496881811131661088457848759407201770501484695398588074133116991182386975489097960223952751850408269201812507578811768230745674227259207064475188356085087057452732704566837425075574152879379114255576953283581874526670607371997215428578347678339696878194376649409573476384566781233439795994238635620694401651112674522693414233619571563431415847592217181666236417202218287495749555195164647477597565180061727304431591963526363007744055847778743644686214768037796947229598094427238571990619310555045884149683372388509517542035486489388748699625999696646008669615071619531686874675333512222103068986386586021526774366885594502447866934132194242797977140715250845208855135149764249413131700440502921154844230381822626699047467001928742825573784156910203666496716451333577151877264399914689281885516824212593998972115004756011517575940958683738111282690247303946231623980362621802661241517652833420440677683056021100704297902901484315398368961050534770632135826243644934946450397363876598760469475892136480384911556699098452303809198589365316913661496124447503020723544071085242366783012708794960400040188916939311664076121353887937702955370378844101715793832681701115574998037072831257725176369123477083004703300594081127057650272565060871943855580632193748123430385991769734536701794613410964455769016609610188937563371302731203270366889204159014738487048689235762756696388759621462687337381572724768145392246506760292245434151619373658183972075668243410947518758893236677763938826717651604556167099234955994785184616863479104946747551858338744383341861117710561028385163585377850110375766623410840143377960997820762412565686196972912418962095580866123839005445770609113231449331607109175000352964547568650458424068880355703878781841092954310286184700198819599969963149991163445553982823388781853542228474272652476056903258554904669520060054298778699354154590710554720765604548492709145378655365757864834570175705876933298452766420032740198541241974864826934532263151504099440281846308895948185633680276522288428176763679366217220641535416072736710537712632412461452939166971258264697128956021728680181166653851204087453707445642084206948426506336254304798183796836420699320600024881963845513908814601108364109600496356542459355638949638972065469927863407696901307226220303981039630071206999344680933932303606168032476233868457630642536654735369162525958547769689532241686698710800974415523095753827427766552080984063949716071391855813354905936624962159360444513890894932770504417285087370313861430423308826692157535467326247613146473242557338219455893883202617233223574654049804527997099400853829289233508473543967300095459476207816788189664000973111141912980032922710787800734703056166123461905752668500159647278805118981044776236931215935103738650058564740790982939360874560964869503970092171248199703547460459374156012792603348853097752541992838872346284942621740071067029349475049980192580240888381837644917098460566560856031933651954874870652129434214141594653194334242626080348232998223916355665773285410343773870893592840114154992946583938466529001423781593745764168465092787319194182760580864701301114700161698034541524071872616844795688881017837404707653942220783430324847035165613034128143081313983775677215011236994333970768218140471697865000933579692865730717807438821050719575263387314852647623708910038576842761927150099940515481028381217892281274954559157275711767036541544175486009179420765150117408998783297732406808572972463554616741729940243475056519213699266666066283669155676529730105186820368211313507180715510499806237458967043935267748660643332103722083971598519176313078817404004130879092609719620719856800496415340529640594600189737342561489604193658428811303127391830854513714495434439033690892534194598028620282029513576565046138876322324448712676074109776639571203863471726980335034406990187748347584831369168662769440095279833976645761378364958661504535429853537422475559982592389964348434160799306029814453156593234066374630256458893131438204566222465430265654993686782294217105212858519796285960471158888145113550573658408962916627918096241521476564284669474218008355748252363755225750742512099339242705267333166920805221340845578383797631319059480010581013404198634353821392916366016488287053528831818642708467225255336770027757710475721639030915558943038798849712805201165872633350391721947570386435337778386301619314518108928221657437788185583253881854022473337670465836909135014619902914534659757533506660677786897402728842252598542013793877525626356769788073736151798002959791452442085280723814487833186577232557653998087239044340086987896909545235435649391772861106186437629258403223608072923931646230125402223771670163189250344730662645220273130077350236685150185729220031249792951415474614933996311875419877419449311932041012834100337996022563424410701979442897890339674725480066930349250772862954677615875798084356369404561635954982137575046333900633333944139449541974422456015441652645900948226398923951492114360077878887370026036766619114129638756000270466182472691626084250985289115548368964068959582894483964056506061013014465314565645424283352385997481790712988043881544618093096739853807278946704290469674575277698792975550860635407546785382762860183874264998415909874193253614423753671900971648819765846477265130207965334427041570662190637322384815742333646863685648771491057005418746647077328659832512369368782633428493878873325875253969396981948383530125156283826521638207086750499399382578240942035075345213480125233709598149456908603942924347266875574183338912964316410668321105119309791190927881240604979702531080399695732378564217749056908304876056837555043571061288631109644396004112756484984482558740153031001794071092867436440682805021427875165438925422688168120635406753234979253641417907680730008019868563211589206638219956931131327421785381178055782962559268717461080079620632249364481686421444775651448057999655641791895250506938972617865815236614237414067572732452775344131538634217577890474852312664837747793433031073840944909160875051327133890503242321510744341825686318389725280468496791392118241456332561765287305770814304174109736653994001372183313853263747061197500470911045451598946275765080386971581732467860129180785283257917186330758998463134922263793684675929943833932198769106968009780915941992493650666106444259720004388877363864815947459256387046636975195958453469244084000881490483678298502219628147751540721289072906818431343811539334148905978307001848122831911004351365847508057472895902690926136025973107967465099190149646121704881088552308866307161523208177011179253427412993694664540049614092506483893309688457314967698063567859286732381379028665888379799923748804194795448730637711250657420876972661452875034421910760567682625057376134316775519475513976395741212947484201290173591001588824739927432340333459197686903185365253566907821460831342512012762390499732387235459030437097679929009721783971959366765774863235985489323498037035633190678953145288615474141143925435349765649337916793102043384472011419526704475134915775132672883752764960244076713830562868302673736443628830173900334014388706373211271535625950942328374101858264996961739985219813067911539959333037288345587560430405935833152753163074497642624061024013775031881738256434103571470170196225849983889069545215624621170586650587685501533282078059015294120870955010276844131151705896123497844818766518590003489418143138506217035119265142174663895362498852881058205144268527317033079277928531675586172179994105881242185246440143661589709614481360195362895766861434294389384177046947737373005855372147603215329793324902117133782796957209751702035144653424565338637072538812565441420678442442760523281497370398211743381255358399360199356513575991531546897160901989786012051114803100430890013344014151790552925002795156182177536743589487644100723393315583851636135504397034456846093883367131069157108390288674190478401684741040788211948537281904259264203746737968629977929868478881402802530558813550459288787126234627734591917894872385714498687853611847593437211466373237625944004688452919066948274070363935169307320097316757011635606581019544006404981166763671635080377858963599470092402626575629560988405122338196061963580031458537670415823855734482933112705734689965075070052247694352293250317758948610848024086249136882805774463053565531680183253597093753431113680878387800374338974152900571654613446243414617180969297070560621793557412043070417803011580148429392554166175579358497133894607112762583077180016004393987076321744637579317371718802411595312521120813967362470918002231328018499358180235267226836775820642265547387263162374184704945535451967224840189103034994562806119133459189911772317115675316376214139764491783463903317364941846963057737483054208876651722383163933414841139580657110106527964955871193893779959906821139180729374090067765718019627691335993520211686103674356864512782798879880406945478510563453103230235751197744336186746526554525607967677741270722964447884395345802859589223657268570469161617199887087219790656048545027664302719561137407569266458781296830915139805687541542655177242852477468953562517093498992324579959650083413843874979996114901999843763512408142391248551363162764109231152783461623335266603018945605505364699627335494827433332458260681265324111466537442004054696702853348201437512425350607437226062447318565768203279570559148793229550713759668138929336814957047661809250299620159168231107568373113007251389795697768923126447280779488666799089966898226738220771236701499388285931534598627218152224082704968159302642101878756747735700607773888329066600566763050539358324316593197773066523317979405031280520636754232539881347509649697700794557395381102949752641013926691502306804747803187114689953085426484922164216912809513474417022867686909934084574342341765832236818172531742265292233178085265127792608154278796593796506076689632598698260118277038233326991880619877639484786998955691330119031806534376873823993931345541391464272985994922996120489574845586062777058322559880387328760621832190589016219075427448860793060599206178622336404285149813790959639529335506261588239113281342234502336987725154614137003173876143214720817259853892831701658903141551087936893021830821278293517813926968940611156652746920867529621683853389619177624657417038845766555912723026238853244663611904818239260191099641715691980957913638460202025341260452011787296742601101842525250483332416854817936202533379889067259608797922639297955685865410308455561432014282518705543965350553136457100745194330482924757731324228444231607977831119391333890485709184353639814825100205164330033733033250234810947597357838030781942584444325895787106959092743622214651667216937361039770986263809238948332550652012930612216446872647735219655125788251504469235204698285999771028944149230251921760218947363797072151045904919526484050542016844941254825198941421559041807597393136748677062559932696226535646075625956036546505109025179730238031975476075133984427039761185928973038803676157401082628961262138405763370624559056166649172830130064305005477473936511326651811384161938211733387216628681468407187102052392836627587502110863511298095234871166348536141162661918542545692038475018106756163563646124610224404500572279713283018213234307436019385557895743893201164969987612649102610642050564872224952335015266592331381392792050868966036277705940280840857180449963729914152300883352805527433170945275131165445452677340887033740315667185144515748948734767631636056873212730153636692674291114736725495846275506724021956244677899750746798054493728189381827657362216743494081926183607569142451640566702097207112230485535021569379003425860615711038014371120052829892334362530856790593039077832803738874720483091355843282879560763147759743308620694307561678989173707803149613953208034987308494684014224812780648198760524969444527860052799013161632588395448514809881685943455937600761200061341176090556379842146392737256789407069531395572244040493756824564685385328519191271207759546557482705874370574877779065611322044529857598103659671529213897085441214094562281724854374604835467316191364826237377990158167087434214955259999907767091503512714579057338249514874837366355898267163783616670112456112245215365528161975949612846730968480011983398272984329827210239444912273059103056293039948798287258498228331961248802999567312527943610624080282951576036577356142138906711553578680218660035032960898645494985720375955152299130155345611917682620575046052489353986674989079171835820521065037553143908197716564667105617751792190406240178690197706420087751778646489630855092463188446707972293972061824873506132047871827042497390500220888493358748893292585938878407090816712225958219463867612036319417155976376153095208495214619994665951999056303609450006670634505490581224219249381892471763675665594060774224983442851419859243198555484486620136197056174289636664648336506488435527743775115394920320355403452175555339978780747563880831527702006031843627105172738343856317146386178133314804840524101425106709958212137451866917400343987123766580227938702614596048197591868221123599115737621731105816235022487953223133608489011926285198949980660465104037572723622799706548951651117690971551804051518942302719238574054770436036507988084841416997145259331634708512862315870191722581533681828285115038744245277637527091682766207018975455518523559380194416275360921211531732805921821760604192811947603706647546869690341942256489922728664135670218851898653751953336079742713842494111920298373490729958927531643296568127586490791226667729057246932538524545674856473133283054465955466467831529513176562486460740594876560618053480718097410985236339960141527599615382744564474232152895116325788951347096480191305686045944168887707213725131555604364715653043820706478064262847559798490714826577005719637570508670564004917269824856721200894461651449167669858450120982386623613166545743995555657843986181328641473258062369611967925810888484031496676767754384350849418324898478380838777180779230845926213408608274153388162212012507373424461411961969858517530046991386250684349125622683363392232786782352695985224055302188310745189587852135260435015431238435896282276933150584555200911052078382082780600958216482586161818224241883195008939241043913306969238518118293859457154265851291295764281758559927010447001579259326856721728036639117071804490166026266613296676804550145853575177766198183208635465683619241898522340385804326785503582355937414401044236764556669383033747736032175330694164301731355804417862746043781256572916170005932468449452707395958390817328961845169828091726595976238338799752737496468222973473413352808168883347759318968398545492487395945583404665174470446716667444102142274373434193429636313735481950697547850416392192252781131204415629917502578558472728584713311127079110023395603701605494532311248639780060562908112491874588774487048834923772503152681776955152513089235549231037369142152714865690116082023175704760951694302201515721577867917589061069309547971130981577802966848403823507120656068800634189440351246833830641623052983179012201031920040289855118393497180514648484889216193231878363491876487790089369845328029573705135564840171743670231315740209157305711089700877471152733054022607218901563369106469862016359512583041274410339857126831860995221358182349910704676808605973425209195986087704797568277602421890793409524540273871054753489701279314969910801139530338404001791323426356586898678887647166115492763351778389218356420111441937511313681101713997660268765303129310651668019691048454408572387321562726604720053025280502017940962767123934299100736511123965500282261437056276171694816575273641645166021408062682601977960628547062841793221903551510253652720971221904808318280685390640197994530173494939010404514591394763199471675216934775229807249243227745501408708277727093998123326942191435068981579343653039835365143444436009333570331965993931792196998899273445149408597244036425207761881530553395910871470268975472099523025359013947294977901983005254204654868311563903554870241796610313780823309528667738292165883570108267662260006153985678079362773359647295795817825676559835614796856754409708393224428662918220310788603093555854316802274945187683548406580586069236890817409090788022593433962064305640499490807615849646309853213649390518415074389307534090256846683274732550667578038118102886922059495019268133129406964538825204836819497360525126975625692879091667913760304464258496880278826203734669214344885876343794485553406792484830790603515583023869637564355224497424950267664099744332501672070110206111824636996781111794827322242711932424859880401137470454226069204172516401507226564688646787089534314253873897313425253126811064450795038082438562419156982115782559578625723396147634590700145750374839120127935476247406930764871330454463302937542423995166342100930992381618313353558558605643801719581075809391504415707321841608639158047867343746735611506071172761873427359029461180578401325674479776645190983526758056109751895141286044071512240227133804369065339383329910948570746399446759721113659866091188580667340181242613053148323036863192083009191479343065837174394198386774051062423053950269410175387184231311070917099726131551551876524615844822256169439130296598642072224571118265950806872885792150304068625702084636079895010231194231926734263677859411718117957170586482603154719147046049789812235594105082202359517819383695919099864910252620420939748322479197577297647081822989844189470120382102055178598598564031591105486100700424711684475732746212924928194908199260611121147522025150666816508198838703804813039557369145656762972132642892026501575305028469208023794465008098123604162857705340116731932453250397281707463657860685568365926828138547067669696715374096542289812220162381303984380030432485155737243343421003892972818448404686779304480340148436323224432622854269126766239893718700803094769902758099856977764275014820405648459158083984580212287187101633229690279489551092538252667791048166915264296338047200318974359375032207027245552788118345420971992524690426299119142182183460660774182953625561811602506530674829926497782099787711837004776229832830454152542090501774417374130285911871674691734199018257007960136824014455546343048867082891131443416357670368691279474584595437611657526449783838886413195227960453014376084030229231974716260586483823900813059598119370013984947280999151138771081003163427061178833106855798060613259776774637447978248236871568148353858174299815404101073355801779344722696799217651720994590111786880340554457446731094568986800882464534890133181687141923828343042876869785999151113027029009719009926359203171974320376235215757935830147450223003529453950163182896257267145828252963888185119741829215457811749011595053758204594350001844105049261439236515543544596881620039150097331797768899385700741329592424051481461359379511537119647162985396326527208440439546423042553847555431679812720476145987681940849078344013325563784434439405013821094658899024383691682326865102451049347107083977305385126008864174684906706916765467270775618928909522215090383344457417839821147665865784896663795430723507190997682839207069085195554131031424657489769317829682179042473163723667670266624050577744269829237828328466100230604928959062995067712047259123532001535007359111048144547246592285074490749184854409140868237345585358530600861822779911709214827540666328569182097508377724325376655620678682637035652225578405058148503533459858804260895187351013274169008488777586046476609869828290191493088772286038043576575515944612517035460323808410894924768362282539667215493549242207951140260951849467637899937593408808313897123506110640307619177895144829584283242133500278404699956741831853335298750362276438759992542850246431654355242351991877328852961849010854594841191854064270562807303685703171398486069662236866997048760028196978703772164962912061826841377593740848429031052451510030027195030150194670510373816700041138605995698139836459947003544003925943721324426632865173025855589823007793512932565197487035344918163787674519343030493456182762406855147971476017203635378738305128840601591602213172876268141196857186457623660017072026677063658628419165692631490201064652631144890471344028535548677790474147786808093739481548252644739827264939203703316896615400468754530334903243767167167799837364527566849140129103948399786641727472906841120777276857922433475435731783963457062093133226185123199711767579783185119698952741800737405975935947254995960554030948783559676840965094778319692955975480733299192256677435601649240952251590421903485678218139437559965265832441021549140738187932850668316378955476339108168847059226335695649079011137068853255532430461975942279958383524235004301888774212168010740299737765552818120692394543823583253050365996636682720077885683927800483939286879740692554986435075271325938214121078429523903848639497498247471572583598709209380284229590732672625809360787878554167006374197151490014847334453064811080657462139651885442439202569831049291089497319455447181980875974080389922261074412678084445304752157470430986951401340117608301128105659374196922261289516545097779444429940086401144005763712400592368933536186061932350154879192712374286554824428699134498840923934631090719082483705953738520012566296285077643956225999800213056163607921764512774623538750620340737327177701742239184149758156887192571660647215189321621634216862906147079053946933136462040201765187866539625950114522127243605608192530867605212642446416698387882928124283797078360474225366258371882337095966754744442420497784533867468789667205390281261705746450430106290293766843543643582342481047941546633082534857796143979978979039565335437114076694862051674705686340766421972361097005224394116851476350746885418710372718547715756594056920617289368708146181327996709870059441759053679753249695589929383777194617305516681181755506055663136614621019506278554187472974724413998107781994045007357764967850060453333449676939554319825651721224259202912569067247174833805434100977587752074532019408017804101492084475390396115102663351793484142684187670088810374421485976770117629921748096374342785519878703746151524641729494370776205705490035962709791606676234523415550604723727507139274370786570673310162435480610970347690608943796584171425439014348496631173976420290397414604022328611911390653438284648005297749722806431589159902780693526234137876738193309947451729553224702344843597212546612322025508344317934039237342837999610597786184850733101632097332865537353579706867005608431841912441831913724275932756951145295253753019419331949281778292622153261968763853192598566631450670139516619000544335183921718832620752233524107346633508626825654987743645483662979988739277383905604981815856086062174318425096083905514278989964993343585896726244018353301486230178104520619749138910300418754334720143014667220653095888222274449494458391816088945330728015786193653660682477878586688908134213463568311111060373782695844289469416558605130465754440513490023941629946049966115055805724453667672004642754082507101747063054204644533170035837378408129937061456463389538214408722322001170649840667653558328485538077947243313848548608085358888064108469572789395886172092871880587442655676411342452396665173566587003906136460300189779140160431071302200291089850632669430343765997890439914238979223709824715745550150575278389914999723081364438167099526375401549453717389681637527976264864068200548513888107092032981977576354168939771039246646552994635719778446274206470834028477816692572856907610804781982083832894613066707015883773774624636555598278582823141719791206524153533392791785647131663038138950997970432192775144049563058612764783506176283017139330517649435471073903804822627586560054157169782569498983219845835720957417201961546104851361459649613506607149350316220365696162935925523985124712865080565940166004639974166590726904557705152857587644799357386833250099081417664966387730668421696436252997605876660658395024520167189512919522428382296590256662890475453647929697968992352826596597600683656820241126575574711114118007598972852938852030152244331568307233359499815278933935659489520856935995539583678341290479881629177535376021820930278401679823094836943105137174075105274568421202031041177784775819853474300203178326228496669689010825270523738614786276881092561196051431509780260122011055413850528113326407067364295021886963067425735683340097230778042940507772156617452374819296480335311485394902595565374297444945523668191059031825448573022509580031821353971124076730463305735749245672547990843750585214961167047903808328535746236959386883353287327321372750905007870035272294195007316888835045288236975736077295534619928538613406435772712219190184581471422972244237434881081051625251630759830053954667222702170220546975089003094709398730584949689315588040342444107213156355524168184314672756118000458871587789670805186301568758584019239552380790122264350989139021213944379019826265496845078185158732970924891343869192399224526461253845739750795511933745546357405568739584983346255403150661315302733950822513341744761282714043281196660713948939585057176885364139213124488993369860211346869949860913528612906632923736463160478667703432280390461765476583847144413410772162999775341888556325544371170294099430583523604846448901773419468006215965708099261120690015219840190460592105979265130451956817681986983341350768881485776264257012787275197860120516628929492055712830956378932618459542291104104065775167053406155672046693083285076953631972089983803709085262534694401222063290838833470988830311596361151138623239805373987744821843493388983243892571222081026035465858444522790023782044560592826756494864634623393998730774954880136388791867542468446673565458092322343308199638736780924194041884407034562321380450800409778988082451879308706664349165277949833411755172225061420665642603932833581991909898423908032725949057557190967673183586473631549454530217685931340023538370605297985006156740881616792482877801863466140194195833875763748162402067660944919272670451035998959145859305777729664584906669649350411726093534379219202989528432723241300471129588994913898017408798213804402753274762216716559213956189097569031031968448936921971846449912066060838034858120697861442114150370711606640465812651087918194426812112389796178952306071480203778310637431410204445528195540072490584605700302655994741774984021668627647086942394213627776716638987479307323350357884259528365860930324240881984112252155968076941959387702451960102253337606256840766316844154933924307504129415616279908924232944309841666921729392507756399732892771131811890265100117084590167661440106328418897003744728963815329340171973182439702758667577762066796285883330592648157315853535387745563225288193967463249668559416543833414072920231941653402600727929394255736436133294614299034295022511155164312564184451623028862287492504038809123038708885659425597602075489112666308032468224102248669641905650198383821938242241014559536744670411110869947269797976345416918468119104130674364167639493312989090461987773658516792245899932134272685298554851066375342178464343526404484937669287822352653942165145127583180999420672220161153687482801380448727188197542242772922822163824245398892201899240762107009092910986826708528981272715243787055529923280234038778117599955877518897472641581558166483169768516448114544234957063666905412842545644810228878156184974332788391005829329024408470010101440765591354849980910195250848509135346252499955264821116172644575357429380235064305983038638821480179846243531696560572593128864057806428102540506103130094749463813052295696084116819093141107153370407503580682797398118758318264805874280569531667129368704958113851167036287750552174804015819603109195562333190030885226850654482046275523857595585020498432117338427164700438299571945007620739649417253113524482807486861642801403144724206940729898055765158875016000125950827465220440932539177347079693674968848252413962081769266645341041542818503738672236835366375154020220083560398503201102620631905521160864580900771183837970151397313966114505497311995584856565618545661909916248124007191011620020346445904894278314533755138094015011795037245289610786203720819901633475007460454863929214366081272870865712569186715086770641881802678611320014689734063737465902113700035446649799024687122740760778899451067302034765930761822553381845884918345624910754733958165558911365366523263030191440338629833751192406479509541018873839621491313592987143646074392905422710043090498222551673179941252333654511807302220377223706525524785974278672972761094860918104488141701592942175030449436463368401284669333032120867624626215831993577604673850392659295677573653440357051142066595916438839110055004519282540782262871807272042960956021307007564552847272491823418257840316963797442107101423851519422352317570628894208176726505823568021162177929526495345033337655295055516390810675257944255294048209064022450533650924552999382128376409001193748924964263101382187438001200417848918837573665359281836838810070602721633908989519182728428498045022575419599710527287033124040439175777517200048040435844116333825649924510266199444590326866016479297783330835046684548313916362864967967586240635644713241436238225126040455952078735857706594460405466280365557542995140218920194405171621085371143895074795689625848501801154947099827600992599939659435831862276870219591297654955510199944603413640504204221310246161079811891697156347706489453465881256861886651869705111370254289072293127216092892545416416001777102860816274568846117603380546754889498636846273214306833454235525800126868809342628190427391412948829680105881767723631876964186408253262960075951396277128823109370021898019438455550121422960901321774991091256946473861676009730764682903840509980797624145952826329085904408592681527999478056647246438703346620338911576125083168846234675428842095791082595169185754325925896933337767899231565876855313177336067487962996444488087635477176718803312159456977206847214996183156909756161996828298981571962980817763732245518923336469118209983891457618387139526522902198313708400154061982420688770509109839381926270208595904061749492753349043325997924473515651954298414307474048044687106646023260692052133542000349472582477094363418005212107952514287144597429661732487890450324466269792443035166042374930328826289175528319592683801805363514813520486984718489647430198269657617132512773607564849339263318501751390808728607102197959644925571328078435011132778143647819233800967282746646975668258467092922082602286283346925043576172816833221242563764561541631371968353617182459265037766961511160066555091295698332855283093771475359801171739392257423635227021886858002285408762526373297864930257837345775032131156427858859567015912169881177833846307438427495292174128278278220988065084342607865866097623453470218623541508798864260254369257328393874184302522259377119308091640345576988163359029750240644952906287600501226935336921818389721732804891413596468828740562596614718240343201472309379724863659889000235371839087137157363902619752031775185211447590685834844499834486504673801523912824173224229056717651521781833698877804381894098256572132424868396867285267080231121005291427564586111617798215749688534726709863334929367750244774226225428644778191924267022302620716641123635426604852918368969100851636598652516439096886442347034336670708228475186838687178901024742859126189274043934136518379280833489411006485231558171286868008029951450485854358126384029788904502740643691495931399088662682836152397950131276781201309493282637736330971181971898316574448086375964700077681049063801500314550941287500224573849183990858018406687371384721753320564946390560538604065733423986528182185582272642087384129386479945568489507180396295399986864363177927630671101044033684027207567351280194618638816328450764579306670685259268287811505915948211144949752170692667234025606996704071308818054260296139574643603859959694801565417799588043429346114092058233518258101622971597812950852655873975557740764617759791429994704402431431006700000476530093568666336310140532236220395908959214707575448755884584991444317092018206482634512230841868824001104313860969721403458442329319934064260505334067738154616145967484161204614584194276301407249806125438471433859064595443313516052369615983791633313755132020375891268740701217739399830394298568981188002758450592307054145097126133343053832283418868589017456294515244709894482171306736988485009008256680589837976376934291798153122967914921790068258174277749836961986160458443367115982834965521812431562642331042813197091260530684647750502583908921266645946981332664172591801964662200340622550037005392603651086831998302875848439734834249682608014568928164283293984101517575712036210167291252005310480860652056990417725570776166930354389653671897561794467441588619077087748460276963186156780294201449484656911448051073210850344462542722430307112025799651403658077517228707308691136341858553470252604122159092219897640166761235105446815263755380885157592920811580011315574610709780644845760103505351764352318823326735090050768718686603296349274283867445839720529466741809208184724742139392928884338037013037452492237231396000879216659160352367424837845559604058306223797959977510925202256378158221769642315911026102616906478174529169222041012132990993502513253171779239787743793315659473948908245077582488745634361827400043949931220146254672255891060681332269361229008469380352051651965570583772470684453872179366285910951563643602091598171056487778231592794805654132255723887193140291338911247464930573536500044975848591819410630328834451615018994440768422530682235266229652380176777188606872328939679797787209492675309575527934501943517179206131009787855924042383739204425282368610550785283527900384398746219926533418785668405706737131199192005888033075479541951761230928095372089387779795945349879592129977459155596811910917890715858596803375941963549897012177171032776289240670024009644688693671897842170046808390524027253334589397294063188597127685457708270489757896568109965001269210363353924351937856934948524118632399032945333917541034853313226118122909345049239027675209777188204002044850962668533413569115446685606489807182689636225894419838169829963164437329021035325164007711869378085489582671092909535424130778905466297158649703494345047797473491805631774694823723771298710424770394703077201069866380150607799414518232012711574172293679690082112570476233162793138334187083959102241874502227341231870993881237416723108200915544602467289405749600188131707895566694650180342690477353825236474962672902523915962554948319020766176283705360800573419401214930152370160011306361993489547684053661671564869411300440760131568066634623136836200041758259975331213712981031251712283783718778204038300770403304369872568860128478506687801725110975861869585346090285713225245394111099588286940568131308766547053554682844770583758578750758698287911262172490868898204475681089583546580522207133493243981657671979061430547804700406349497089656700252245844921543361771466382470298702281610822268644483013495853342743646777139622475438035997812495820749396149658646902144761424549776833971007811757859910422404150201610754217862751502759090069109229778122416973497556328045724483582574856022874457471913524291255353419243808824733857424489382398151653692991113833185495032148061402573503551354606761588155156903466767234726313697092396716928120948733502198724476359624055230731542065747309254341793869003233893547283202700387355582372957517803111180767593404945195417681517202020845501334863003896146832035197337798514441320538287790988726521723951175258168061922297287764185547268563087795536276785786642459942021572899362148445282663313966016057641239811444937152154126017383996452468944600117496783593037487052923732981720459729357834506195058182441954478355449116253368133582018715359864530582262356266325056968178811423028712325529647652300780520713581471801599731132025310359944899370152366838555850870942453164246713456163320750022001036168231973764155133846030155182183813638542361240750980567855455532789762047467392105402275054702708021504019723739027226788189908390216539861214927891062146710331548262281059902529970616282055827463154206894788891881088956319148623889797055226524735559388114665514091327857236995143727364200070123532641405144141723170772502955462564677958958791016203411281276664529550834885600048919543875390751136138268381234503582565308072773398936522236820615789145397436896406921255785074057535068693466596133402160288512208263993514315734178136170653825143511391817155375840660759702117662035123974809597907835061980241127930904864822287955068018390446504485898146646423673564208253045503371043302535551702235590429499772549492529947154587312588053001993961213822580407789898284032008697902314768767429898189979739468655276632982162957896122771480917661552372145059609158537640794073845212446122210740236033188173737076401200769927332628786863277713166209023043189243614972849828631365584900438670494106258802131903019201190681366796035690201008322156717424435774799673075924795702339356326867651683135978046314267747792306427194994341484720637485148137481541014965134058610923645510810016067117551563546527213817496374805256156573716438995890984805958708309123652366428612086096692091526139682759717954961472383106428844581733669789579284001978219660973630024062958286843081051082037735466464211700064726409588800950748193710591509844810561009796449202126884364127485204884691322864361171656927492620380759601877470589931009380983049376652184405589244005266101926569768295008817774137044445063097438262445503170011656525790412960701156107242283042641264168929740418724440269633009395753227255860396032755644834193184748954837520475062300906722832833502994274156424623440988918191644170671994180844175709236084676636102104846231753153504841517441102829944930663594042853004636991263256559211339826908716233714247125734085106165392932410509524677431240857190973698372723097530835264752626933544362098995701172256776600245466552770433505239982096755975938730629903479925045345922887566215708079405008292588940561287117151590747045227829091586359727595267691426644550415367378436155670567548431229150534574277987266324196734028201054565782473407962434293282826828883437241098314705092360683373656586499601672003693990113344857758734907073128976551476090554289217403360952915139991203017816214260004602327510787768807934739345191444972632164932968059744195208270310683140875357895371357215265745571563189000563935351440618047670334801240423123017382313002420835237304374693285760068636393866449042987627439828949606340919802160857234201341134107844969870054626623656863894002347033674861761882666245734249182043258843016452657728971583195076869479380627653904477994769780351079855598791937114145349016121557435413866912858990404461910928952059111279934251807533967365311895473643939314372248035336407016983824726030610515077711369294081262255302593367545163378878423277383925593392467970922391176893149737920788935746262470523682867940306530861580939434690171242797415131248314903217213378211883726345842273480416393331014146989627313145498863907349479601697732647668970332510999460894225385771493742886741684326986233653419932489502285961631593846142868844689372325313935797037343893126938258385478043770464531811453706028638357719422043811484346901766937872225008101982397391147635665779173304591545480526810173606529726200256094821580523507080687290315017793332492144010369692928313449211086328981744839231993159352040732967063118357646715916247696215228505042496964226516196721848275779107430064037785063421122279986093842458316477981480162545658325170236189242344981729961685118013771447763391799752349616905051904372596496311481894975118504109288215270554048894671153306164163018231104029676479711150957440556662546235708380635686135328154966555001110599611730055659952044921267002511565603505681666008534206942992042830549137103610302100299361238837275119405126819566877614114901978738595438667145586147383155658259336691822145121973890380200969308419914856973294856630208452249372990427684688786060900056700685398818625184423681639951885049254222295300443425384113520327144346702354144947284506586968861905714250706529479232141637184307772401732311537484653465784594367233848493484489961394424272160588436644344450177268086295869428815561176449139089497302004497409435136301216986222459176496008357366174611847261688210240447385113844924721431814252628277978456395011528636967532587590220827824892771368839280065540151170935117881238015176209119066290922220404793392304467021201999193613517896018866380116796103542131240259397825464779022594135169112911483513989234102221853861386793102007272892268227878326496479775493725267808765979110011304241039000558838467329638787581935594674883446307024564710615300165689566508738014655697391070886934071728001481277164356654304057839891461999380104223294868768418907100559449244099460863537270370735505468158048073230737757181622695966850588425951194767519348814971351783144057433507353217893037366420678328731644857559801195380498849658908954193392283682363086798133484245739798785590586008489737357226141439083609122984128857352167406550977681747555129032040039492198406354721067821811596470988940183026309079379556961840309578999200428752851408541997153992741232842780842096538893995308877675375033465154715925123899364233984786521887361956758539246410283137978956873373822574974721542052697277775240285817487424749983622094472384835371864285287338282322954372141703733214818410820906603692981071336139390150817421273836206507968150933638200110118482423540719033329105480445216923157161128903491019476039798743224324151748971818511952113170144541329211475430258491941420344177110163020462046609694738548640865930430900448276945900536440023024171445661214846728682092296415654539326111563948108980726093227960165178928089378574505723630573220030721974238295370123434113326232203749753409032717282885389259885208868082581334062763542958322647043562971560234077114986329979761121930818243254027464948336276315427453832559151174426441225830275212407239018539611242015366560048406929474832999843250964790905762594368676852272686561817872311932244234701649437028555508294823243421186542510755710315606212895761311637426936253948753682080721649974835831106441026212824972853704129195068843354048690899968008159442392376382820619295116478248497587455043479927913205276901715528185918815120578327686729777377380253679166951934143213109136060932817587051465731094119838944156843645007602249980096952318875107484542706853964877215787315331590550159470637764848473286141314044535693671630131777976799794623830464345657139666450792329607070896417355645607567228402330340241634951380034879723919971003874188398953327594896342205493911817845351881231496773725305872662776056161498382252109964921051670470314676801077275045161967205413548697839237888848942271006601429865094748255800374200915333930319736296003539228964024830048907576060014083869888854419543261419307072880497357710153656542969948358120835452873547902951689916418118826269303712950924103763887608751393323741945894612523965679307295727591030240021683912242353371853295358619911207359879081963797023570525229941389729300819638619984939052389489579427519852950269592870317239071683052152809156331854637448366096937576133288847090877591874668741619272739576433817563414645105356020964907395345994473511227980939954083769817538674059732009134675538639161852792678867365721611214254003466370504256632995193006340143221392169915926424644051481507064964986790673321986844932418625274445955227362890149794624247743403502918910484560853449648507377671392235448902178563067797433615290454969853159200200149955719175252574424025020019750541860253763516231782432875648079670595951152640287809616258569341709333180092412738702632544372183783083068178883258885857176137771112121654588981732018474656827291483306842965307469700412617319626172007909759776390999088995094428075712288293264119490344131817047110867277685634000286101488954179222567073322964333955463448184434930834877438688994064206875080535833843988223559214861657194719374398299446411362714671859005614094428101767481169865049773076197163273807543522665390600888514688155877709115536555111910926254505495461105830502422223015329617489574861646009473311259148867597558586403909935861801843166569817686719327623684172232013220094759772454349262261783263893331954621435312479608041247181123340808868281743305079789661852998105838923379334549450226527165563507526469882558283104103852991486028372865811050380390559733359791068896792998376415529278385444153795306065768563546033312404870460323355757514144146985067096930832954994055525894147372456477756540401911529730637571632462653426893377575187906669315679527166259413854117867837647588670258690106739230316361370860915379816598039302352244639039289064273831005325294487343591570366006353050074846492868439058393222081336370833319918400776415618773717028320918629337948455292114215358087815794549081603408310593369751069188686436303740954353851997658009078425046309868713616708253686719460765203022708466503697773312974363967452678473762738285020432264512437455861106745443105331333667655493583124808937386333839660246438884258110638149021107972622744988798424126668715239844583029701750878377164594234593483237203756288457828986494881969155856213025436215838947609131180213367772003915420923456916876027309006827121711254483794777322708069951599878227161609261912853706541408950123363842028313279380973224957298747309248345227541260369663335237980958816570474488496021324425803661680883153470900564389557561580513465521986558213455705622680689292880905363781207270419267026604954026719519294591597326155077845093426315246805036274627900787070665699086409894834393090289373987967601476030629534099487429880471236493325118338731068564665706175619979495491151709061126984238638084793745854517217770349657227278966957861237864917124994658674964890059036535876712110293734693128324596200415104373844186983233643727097850941521033733496874371681102469536463407465194736737515159965751848762622341559347249859718885124873522838518967758991478389003197556703745556148843498357198204676500939878120339174491991617750058735639946258233234648662265051478008954827524347556745182389964867355995423663556156832975523877175784757478986587028065934471994145996917945069565565633805730548041410300706298594104848051773012455930390008076093431525214893945297685234341848441173090748355478913538070577200481376449334648153639536263217332283427855903803878377384174448003352425765361748995230125841595990192673757148099024884211380366798413681511285365696276680181989217337986162064785893534130235369543189225137915242969124800655183614857179619437003422398878664487463343464622324648490743785548430053609450375498425940980486659577477211730503665515968624611461530483861085248546381608299200260883624573250777098186169110656034881147125830788123911728077272984447407514561961231031368942203227241518065885296724775058853352867581870391031045108673418522191541962968350278635181926424410472760584143202165595531519614308199837868581864543066642769893478140954683058770904158110861940788831524634265899715895041893447118356986836441925326311774852808838659367859851135883952308187339807901827220865047849202217472612108083730096678134449577637261785944485683751399535889017959502583608369891072291853872439376086153257036530832284807827244070758924284526670945410555999041061682482532304341303499619478751993333712973437380193904445474419368627714450087944032775144395790603949800849211197856923246267022367699477032322086202930608786667842384975937228351034272222035696452170216257092746487119566575908755363150879796173754857183650357763075481894512739002506293246159225768868818899149062070221766969651208429128552154019794776596940120103492179363568399345383811546029418096174102169637077967180719724913972203518213431563888766383105089210064781594358205740112053741484721098369194234414526650081865468223486852865595239221283799166577662695830275180286089287659968392838915076840508136147952321035614088451168406906884702203258125828760330630931822252490688022341607332855465256882426369184882474916738616992752826491679993075708178363880096755652818006354873993058845983157437843178221140207028726166492283404427367473045593944486379286187249636728252820754680664673045705141869203689858935440971626917091004305784179941391428093234925216982129591511544188280968726242886705283812927491907328472343540554095388645512492668775190341082803805401336604948209548114929890943922679471559938091329904453915859492826681080783897213484626589795710982591100099012805726160988495714248855071552825749113118859788628747785632043463336863558836840051494241991849389750595166991131106151505948505431898303632827843254157835197481875379899779141805307483966809390976767473095606108962357980793485244530418469251774375124496065036147553642655067383697369305454285899480471609646926039410906734286995198958560602716159104861680341425084528658624304565986888549262957874064898524543937365837404599493738712003059280415990941037773960375793564291119845894762656054698505259092993264269439134539564417874885532014817641959492392097997748594759478995002844807026244238297805314677811051145405340468453232350607887994271472628831587768260255380368667269862544002253784442216633814946097542105774109679682069989894294726454523613565086130701173988891822832258928695735140633373791268784220413463126564686067540728728150463038945585493698018113920413589919029220324279462166775151496888995197697000013953294836619874249938569937590053528915161304073504011170220729954729558039886976851292307779226493824690853073112680318467796176514388584061372580248277640906281245932280047805917051949414369384752038202917260912437934187434390776267198112455675725572227549988964471816609281107903546033687063444060400589130050320000165389357012157095260959839128297328184526666280891709458811700799486615171811400424944516810085398275737622261651317689234686211478209174901714292200169536341475289119688785722774073380340316167208287877539361442179790510609214360708407444937113343616250781160651701687288555080009966427714118431079645350819942188713144142721253319375886328936021668755356406480519315528085334902481590518455891099060055964572912602003580567579739402403392805868187333026387449487212183202729668934112802468710562980948314187821495387619566295236920961824591583357599180338721596607088824652335216023035142401590282396399521575981867486165217343888214504975127746158370612554804757921215566821370382692631335024858330068717515796721260671696650904222203266567850299883035858165351453712276457439561021412491049009403527109460716317108100467077378635642209423107874149999539232501021344341819022438918309537368487997911633733317003285186449221984291751072082530934373236462622848583353861708452311374442816067118078379624186860250571597871893916562004858606676879035218588351233598679178603619704727317647305839294290434349559774001283341161007036712905862646227852710219208967084742824169293358428090698059211345501087244814167180701063283116229797650331525284664893501057721527315190638930554977401981530817879520600740689887405987609482083154750451182743858429977290344386967259737425345452153047542512479662562627144873205946417429002665175517998816760847388252514894275429400809231585502237011652773696330096658363939731316953155321065696164679655462191842439416306637490802793887000991642099794950285756285192183325012175842873251501598683148057415802765571604027783914741377904200707568625504076437227615144151794530722732807675839199251710316019569221276234443526211777823538261832819479862666967319374021942337710746606023109483950938144930523216366858294907445846033226767396927961779408165788981410166415034666996031523651911282396003788180171318586939778252673222522533885467459441493455522874380839249109353792154016352818412151055224619543312838696093704032212250224801252360621025212118728732822619278570023885360821728626203712434364513182294339872956307249626613248417825982797043770909334855375451920296598688493437709211180194427997121089074965162984337402652244574060390867837549852941070221394679945475262337609066608619033785563484968063710135172854404356316529339922673826266986182584591378399026928580826636522225806154818996328796726769988374514439595260889453266673990773572373924924623994696707407631709930208373930720029537526229532278612504628195051246923084801403438815084634999031908654384223231612043877400179617937665392957426595969112695736560456934435473245552380488860931278909802123781584765109796354411095544456460782501870130682826706360664361624287144497360965755856797640108274545553277289217221849212894515200428718387385165002158962405118192498034568512025348469650026303319186576559814979768306234797635946358726115118712769254223659271528787663609571601766298029745407974452377571209535831648212710778647947016393362156545115157744411964921604469750241078540069774599211253129097773301237240178792698200929431858815136704993743682274246420921900117750525224379960587208882337719330122422614187978266933672642508798403721424783723448416316042649427484964669901776824532067707045375657167574606553966220238294554095178806431973056469631657680218554054206959550163692291221008882321250019056780495580835199188169775538754265221582815593615793146142292724319214425397330746974584903660909896468447673851763704580016692324724568981761562507040587609467099971955989357940322549083991217517194922524102739379335948137674970747218204364846565520075104392732585561494526845912512267926894404903675766966449483313779630067307179895072339092453308692375515768603177263905973338918859553774526638298913818956227389780668175702438548830154356917086265320441538116935586241136565839111967564204349389705750328263543678751262062881871547008221273582935685410787325310752648693330081372055099821519632822347720190993212719876852385465161652403458761293965556966878336601610090227398046104971937878356411579110247696353790204819956484218619010828412797391777876823923969582273614858541085725945095824467308458200010878403616014403455038322507864545916159795109270637946216442629930655786442884637905927131349135303803410948627642260099585796875636314269658976813641474083453204336532681504793274434471595071997726820810576592664970903508692350079026407625454723643095253541658223326051967434194893294180616196145321470502544221336416291284481172392895588799585042140213860652031802569804572462570091905559917253734960616849091750576314860100903759349579111267629399042261327310369353375068992563722155332666895107583535870968775379584160633474286827428896007241454747955190793300666492085282869551990877255908298971801145645644425543724656237376025481171094950541829472522847546536790456745264988417597737024199458150750350577600591090820839402804443870721330630049655185579168194571997936641844831191541671145210407305674534841375601755642519594560042599839144039676418181455093675528886624692691151658274034788627458242052795951258913855712113343159603198811568454750601256296796090446140520231680995064000755940931238085965552726205602217214377386864565692408659738619284042608851631927778474004534728806818890103978483801371742491292139500736529642224426937958958085534802875256480413354897991884741729153414841601392091907722934597098017448782346762008963495726339575299335926828942488527138975152871737113794857471054875235967190652695139618079225173451392728557862565726023463460508856613194097253417154981196029068220048776741263516080604702593026047024766870139294190528941575208708702279814331807512999454100306309639378148887650163606800892834131685517814347994285517256756237670950370958891918097660630680041565182399192094701282752310978294971915061285450677237534344850252439261406438569509412908451318570333103562824357564850764009573524701014027875962400956383542697440827182578140181527108869104516785791166897043022370266112247443414385230725300415722286201678012818645638410105190828472496455497251215189250717489438743243183963723115545683516620089632423578992092292197268604580622051017255278615425396593878961571025081997302335894754935712607605966733953588559704837980067380100346517797902336751487943008779613322688579957014563162136352710158477207953993056806549779604214242562580608218133085236424452305403539509987377327209123992896380851444453298786228868701097852396437552793053156050374968042363845834194027585107019047210761540223715060843707546039704518984928935681698149343517165682265901471480937990563662092461088031799075210443934376181667839433593012065383646882388945991401474418486040800837314872668800279542165962788550723890994632870589734172827790861038794377709779578011063772630004130730533700894251950032071761152542287835635686790804836529202392763634357488474069722391603825486703597247067881371505780772447446885477035662513923281033280909381795307606051932594031297318826391304221719005523229996920106303739762280486846561920333429542263499696982804819034580195435781774027163021073805851779114090997865296651953098588503845779604378694878407413513252641800111515312404126439036416843243635845389660104214206188146440045572862398795414814684999383516897572220207703682814913116620578797157133444505094763096940556429066961223761703502365449633836285675870939623095491168367492856141965857029386753843871021448262452236375843433860638191013167070375721422226423527526188232734737991438290544959368149195634526676103682281699901724295188328075826215429567729098393012483432413390839497008719728369048085888832515639239307064692395951722267073244082308641622888795299847527867137626791602692552066401708030217415492897249951591535983858320499469684255395572374709176210795892739958481196547308524052187466306953548814624238999705633179292768356142291198758425453584555284731455134376024420671994157697352460689765140715386877952800137583566418841349056995034915434602758953633826479908398511711507440971626729887503600120285274926205528935534258835385550791410534321911217970601318200600622583157525154342551416052080268953103324624803703980370940704407376399126692811295109741669454283926300456340743341481246124247811590912906025832295341749841381660859859505539753984634184126801461736355472111771230873441114315659669607635295327674978402033176630513438327516006765574366327979515036511007087508286221095367643614995238169207822135968212946609324031662097716199062852536435595055711280644214432488660775115783994597787785671974377963056334039569532415646971895810011464054030902468265839397420296627967846949002381141375836172172708368094346649015654450058111694242587380617453368430810678960066958897564709196618944002082062091210280400770140928416828722269465014114385899800294318142729606257715950689379713685399713352305482338934829455480664752095133653150412100987976953038708365088248478833911941848919794087924087579833017369612125071072804061843863108739758543847714101552505284034270697872188372573580380200268573088591634168824365039288924289755346455046357144149704510858512869788243296907122538750301086114882500230577514915862806640695188720175782158425843903191332672861619182808832647006442761599009806157917847411664531173904031554827067000271112176040614618423485417910105876346714695849324176588545782660907125493575599949227487657751106721012854672103676712410459221203633236009734801602588962276464353534143932709901695838130848160155867042753306692270526489338508423480624011242691020006945903421785584861995503914656999163420417121531106559165364824683101053895933481250328754844220272097336614845020369809455389398159046810698435034760206274873177149498206114080088421917275119690717159128054603511462426426500710942780035647474070092385858597223074741972656555984503815055415065689916658009590225575399880830572575669351684581510608654300561901728923372954468037160310788062088529005094555678231670520939386781094829034103088309445242996593151173201170337223678951394150246605935347454909566901853385701040969798389270299027708748017633565338766736593559139462716441818097055347061060131338762882469331913869792086137745645655600788604568691453319443993039564684798617162798707169993060095884585852113462908080466932119447612196807046344350118325536444952258047392625085393410895820376496838039759171234286841701503068054975303901134245970249827308502751568756141121951317089509791616771735828871626173189931230859820704876899938252191190153268903891848561357908963973329986663456445978383374655357771057830026827461722377990105209391628543251142229408736071533345483418933938289294139781071424040715438217421396656565368581563916001878304040149167530987438304380433999399319324732788726756081565376399190994814353730676541280291050970334508959116682227120630774121467565473678396868332151700024938859418264953875659692490855902353885012697300334173154011029418051058915901454208226809288762252828725630373582089846503004894673156799501720817413955053688027341853542492143075871909691644092607129074851310468884600943742036457380105163230086018632692861196885493573368446820727807405764568316681109455406903892074189456844240343758142185896583356857584451326254803783999734079129703889921941742749929449844134208683060588409477225636816295461827468595017771018829150085809857788197072959316251305689874717052513195121431152894165665084629669058640887401082383568086577389175342972351630202920545682562602559917901424110684280615993057590797113301943188547071680511667661020496093360343755216291677505356022691955636542569885559463381431320037251275895786964637781951734631848948980290942757611685040877857036146240609301939183404587909513987024452239852430853651868640143997609109674864224522983678935125386019934301567343162062030663698998721140758220256868854196861611829636263769978155371428891453451331831894255498265447423296731083666260774269216103595226225447443994936758652394875767355019566987845959557153530384208801045309867864621754745038493324408389197508183856705583761016490108309845673202369221385602064328727814893177459496497674139224636772737771096172370046475496505624201960318419984710424430295909335775414662388930502885495524879406493088066832570006041858897345443158784238584831389030630758460987592505067527013173764070971791910456663000766562972092532405821680809370042208680274642060609542194084243426100965230422587124820590182014144114385231951995192419686370922052340219329433876288524730020635549331974112631188827179182067878811923307082224549711258943564890428910425308250581011348054442843952021110887556050452287777735031923667017117631392378282241281545868957910736898907010110163957169570230632626347794534972390293579222839846620593971405858984857894479517968356333402072079808098743957126275204918172196466598333885557749940698823063221646485880848323889016143136160495185034942949797932720044568186969403865973812608774905012957553206503251528496029261822479234331240782989321950474041126544990764708158976587569098084870929608189614817946420110504321207828468920881239557355468462321849466697118143162090068663948320581025073758447524037165213493535313520940294074194529052180116021390892246000018336058319447395359389315561151607092737938042841080285737596458746309638335164058560874285923842209336095265131833432715964148557986454491725031968167275697074443131051341577070267470787685304215293058114462482092492505167004548502447793346887285187454743127473623500989622836898855005894641085276668173690955669388546938211104870366930934205259969062436698543047374276366251175361781957794984540924932078583320470028669843915821556138689354159069424951745649787739659919715263812531730558765256947596591706254839060842211920663272807761135470341079316612952737209189609964103406276843076636750016608200058445956033807191123435564695845917566768875457043672126092218147485052900898239722671807865631874206858294176854531037468703458914024463868193647741872731570032774684565357687677898609260110622107866955871934368628189055478733626887733993482272712191387202172981736144746274224189898652637691929168077919376766630226118496122840455679923432027300417428898472258052768009044464862043423932303372580383723888129959354544534706667808121361333726350293332834071918651970431387796189039707623550023629701627103868819527790551051772775075820937543445137161121754239950676666830596070427746115292407597566237305861081196006928022915146554883318851200239696033392939372483865612080951957174686946443989057920747607316368902583071118298902638759874885271141848570551015552611074667739376348581790734553330318537501819880234264127215937130852755787883237437222477785133972960304242061983741408735042318816896172527203744290419650344999355161187530550136022943950785278049421049053992485118822877653687901136698913015980247334521320102592314019783943293728715837974533914111426920912002492097551567428307253125211749002864176812757487968675519939934057926494141084361289875063779846375171569938852314457772297562425709268954943189334478560296218234136268258892033263507884057986397187291789852745360741752488355806561475026086843013970556628133314992028641761705900224478735803282458200543683019477911370390115520450535159445528066657448805668515482540792251686674451833673581874016879508638059995325637912562183348383358819837730406130007928764523744976655413874545105063321352813799400338810713005968629078221170007388621659835467284756405125976138545118745883469762488872050845147878099729307270674584940844039015988469994439865401234594290562326339703662723068485866690228553291966902621730225231165347764027712457720289533783444339244454673016430956632516329939780337023079713272632764732306244409664022793551310555652033716758159083190566909445818855123956467771615024366104949619104650209401858527183375231382449202732098426349800211726085451583018454026903794169763104510830426613856814073695703725518822189293677114941898851232714441861414678340337649047604861053983000844358910186626177187141486061107597750936683569856169505980378193410493343328697088496037282745934059780556998407979120620747625483467629505621131490878517896857261071279372916065777563798726752232275067254541989019845241050111493049166573461555416555981782145108329835872296555592656554989114581648283976260289522178673938959789302432691097565875535682060200290212642853036911134249570978702273230088206004594180509480866914352468390591429241949463070597501147588640058528019691031902411051629488547454266280146791239012612169156482997712422053530188806896347265354444020046598391563201822579031884430278883145470353885896649612094233751229053345927878323634159916138836688827505470534813976817209433442641248330187165870351906076892906102456753645078415524644932781786624922019546859155928880323571640647581976792426494462565980567541696977683473922469926613807591908905038738069406620254166908899027636620375744705958579592630119165125743992503830874281272346597478149481418508150490944654233469185299321469724766073831016643406336281840007374845946265445071211682504446167575136900514681816172005134826427308592979419725909562464854392157107234524168487409242066465419642961620386474110780809189519349534530163102610654112660536364832500407427599393132751934490811852059229321027836439889296195071727204964485623799053140171881387260687531862475593085095897320727174413649707813700940950962224044417944594428775612578701096407051023761365058483661189760054294010607802127516791837225558021637519126188542821679486574307944043266252687128001509739614691163347431831355498813435086632690805907694780520720868743023240101215180759908980144483050317704801310399355654438864354424530986490861192633559427075070525132078275587014971015601460534908890272593506447945512830563943612648770439454975543901282733579287175890013417751136010889417230495569537644091988282628307478670017691619171152846915701008841643187967160125656887473388859440925148632595608204946229348570579107021161957369177339000683977405407791135122975085838337271883975455790368547431503058588584240943275138730264571660698133267261192288693970118569045088425309522079733425659295469898570447836247527723013200399714720903275051103394222794841553682766044452176877767243859369124842480362825650808367395229678264199551702215175057210925241409758796609802771133631312259408441171691218950684541116543047218088540902893304154182184921029567825423053572769351930157825558894254912693820268492280514601586308234907220152297590246349532096636585128355875341457844918429680251542352467303144863221395378893807271283149281606988616893468474254261921430868134722174836167862842534805549193900748301612362047423245417929124322987106491352273144119882467538714088902217551066992443863734277070793531812308696263056481511942312686921203016905750247923479453730751491944196226975322431397854701474098122805905127771760047124016512090783387369232093344127944560089402101889253824779297192956396758125276800780161567398557125676461898690356265227952522215237732944099301504442271603205608170485694666308892497196334474642735638831057428052588840793723256638367783795765117910231697471764915707571264662664032950108506001834312059683666212178941167075226939261737161742152108096245798911494379025458996880079827589176815650509773763880562394347994889937061719728844112446371483875561775233922572484573073357758330895876675726023932610748909766087527523624632074565556620864067084488343572761401530914835230162317061687950168051694458984017502694462966588092926628894439425493411323421287847289925905493572027843858009097513148511545961657190727830894744284334248404487122202168622578414246512266642679580396521474295388010564840998800306728614533737530253181142662951392689548068928577597633382471195376929375931712328901982854488197251150590278435719483312002202414941991357964243539263956579681946998294664137008866304045009088372755503724752005205217299045392756397529757803720636744289751493036302303705932234688558082319217575892204408749659989119334006362364268226088635775028070097343434354042672736136895080373224733304351562167683490410340041397422711795085268237765229707780067364496106056193996931632513089362796074077660261879917349649500326308606990490777168613454427648612616546686586608268100069021067612947790509009047394025338888180734672042356757462071308932630302975241800105237558742498827720794311709189844027837707492016476292608876985867333153497220653564274831562617628297091057474646041959424092906277458895108188966851330812226874096632357267976464437038886729367356121794331673052119743819746597568640721735862416242872640637088529426823805122308960819973032159395968163677240858928215757423490690664885971129751893240760373499715313286751208524169334388688414283537976814256451137643822347355885667386687028932562709813132596641124858485732540436809788440731368213541108463259320197091260823514091056206687085216131069415130479365831539556806208586617523750728696390312338618113805850059427342015577734925287268378298250810451201116865293167410446930759909724193278943528097684494864128859632223685746757282797238455733239379928281132252663039689696797823824523721571822797976106252646290556884707255385570627647929285333318224286212811130479965852215591052977620410865149634592590743069252805807469325579283851025873421482702213128552717622695233345220904454112998499719311210270986341257452278863232254376739228817311997866643614540433843749994141348317099701529623935029000752631405568375153801279844054369785727584301152007206385416733751747746219805044924116515245391894789726384524921959804897559969323238142598917821038043700673235729524772983235195839060778200759928821606328382124493279128209505159714393902154389225051366694624413056450570535992811049791684397531030393142591225674810106910193401017493105520611013659678076750158744809903532375499905256186545810782303530292470408408632997474029887580933133885229011258550406878408861659570828328983368372350540746984987769144816673850372250320522699244032895730385077740389469195935290298272061042660664862872798842601309803985720558701424786421735328539018063069342454662255332751817876774068510479630528891582288805348562688094314556065776987326958007077152474627750554137805711210088703727051777958222521943927756520187442189371349214900946955038124790155290984413655230757378101949432238228147558542632281170172059940565267279143566546564876521150840114397388762898734934415953493153631689736591680701630069705456030232271198564161784352023233268370585730281708074440563504775352790000053437824332989421289097381582362217530006265802808401102267384526329533477424351310606539088248873302418115621616644962651523075961502556382559062345782838506220721454828992205032259950348816018693393506580575977450278450671376533500345212320176664695865567433717813370464349080077020150543271535159202474866538287002757865194030078174201412650261491264531831347984580542790176391751500378115474234950430200196684917282767926263965085113762425494939179352540483314633658747617617025410510797604628474801647395049518026425451679045173123619636258421464954660641786845483604905710934395577955586470831837756012448510878674083240345758598514896346519179945266935784966354943163475148200810116963382766580937789002520802069709272441145625714182924827174084809918181159788107450204866639667532160242714303924568283835054152269120329328051558489513066762314541758281083988231676610506941120029049875590112024720628787788417925443658041533883602457072179532321338440592233041546310708858459428867432268845443427649568932317603377277988352851205452810321526973062663280568613153596752343980045241925823677500040545116016277978003437840568888654890833858037705463795704027008489918279854682631828623961929217074630343505312070662528383834891465040277126344230425497070362888074779423264130045189382982721057863767846271045518473802075078432807924525675162625061959669521087139092295439745793086739508603342586811830258367991190096544790164528535860773672300568407173931572405170575788587356161643026755960579595614641103293790496325723236096604939655789720290726991774622489800558289500374873600488452083518790908880154354996353172600335510141006786396213757095277401275742637093430710536134345121417279135115301078510769867972179781182312172785982704660628083259509027589710373999294609436698256354268232793922731600255902157916280748121597847329818803288293757679671277570337550002938203270763723195899617465857688771730579606445681542954904097190568796041745779163135161510620199486231681077624553793274943512442736644484187965907071292731915363828075478007960223784997535688259299005627049308886718651687151969560432675103018215284551998892250401143712485146195261279703500094327162966609732100621825781865634536380309345483806744576237540338298931584332468161199281031382879170924840714993121875224736132543244607233674037368492770177644121706471121871469201940403377579765054130790129658321070089014879368405638152801361800664942235490016594551835191500080813448361541674605109968200016719203481342774697376305762643664284704418006740278928376901608988332681909912593544168564784758790960078549070139109673572243178820247346221430951761953350791512696093282729718604375737887345323331244733257424543599057225587435064240038957504959941007555990932965872628649334938451904526146052748700236366879990523720008482483686331546120960428239068648513146221773915572659214153738386522298953314559094842552144831783400594559707825659146551292676224181647884143848268355420781067538180869347553738348620636273805866022378732782939390585327763306231027163164504286725945849594852888310881648825109970086737725690284495854142004161845129258163230114947205808579014128803437698480524920998718904117693012109781347550571037430240861495978821953672457390262959243597948803065300862341443205382737053886154659146734262004269465199474317275526239327025511429002829330912850469072217548730645014395310762307732000958416013607335699441897733602868402395188472454323170741169021938486423597834061201805143797104260448826704113737705451438904254423404332127542033443257819807518068393115809904797563828700533001994991579480119267971136889322471398367554044618671303386972608212093556224573096092963759248495099329221577493672710698100416339745497216452059745267642385908324252403666664162933613621125164669442632356656720161379239529414881939716684828390091081547833359993182392176260965779987460946707534564256364061403674321697378668235500399343048085103535951730020796184981448651792645475070057661997649273916641754090362054621559549016613271590459834651623604078521668419182406741704984925928113788018044768486364340520523444066618657383774786558638450263385560428739959807788355512842115178439059938778711347046279124087785014346682219509239551647945066672934488651163532219369609036006499902855640234579857726961688400530956311212423463486529001539732999634996072026542599566915895543725396577183283046318081257551625679353994527991948528045251229094210822375103751555473168280367229467939241386615334645953591708746447668819229578036101570686083972022875372244000475064737822667723235648664011542282415980688797250302666029286712309540595103171547994842983394266539936334103493884467285398924200850111532359823445561753282592833389902525227244453626023371111526925441833659253085501606290801160104351681837730859413009337604017495613674552588901301371214488941439396559022938331253911240947327900282863840452803778294193903096583196037965579217239402881244626119187117975247118073654188595226492602160088439339625388343609454174559425588441140594683260233860502650542977404105205830107010678000767178778284314587808348515174154529219195183657597275314924905320013990985336164718853720870410072490571747103511685811805463794164524542878434457013738224782190267949138626741331774189626693589849798457485535427656646125825637798412531858324189880206420591219690918976206022817602665487536310182992601930553516788548399084691363923930752472796967616390435594760161288479469331628246802250609178420357884908964315465218914020687677718609270808151310507547268820426914197646615090263646440721966633006981296313369819318439000561109071373794676830865621195114245646517856408741661650210498874380148271546276807272675412475821563075606345597175830543079423149983873531071318792575828731218930669075682752750655000899500540133626885066360788693802255758734218572301817261919377228502196702952473265318069937495254307275641165089685842555192451799278280457049276539503319412200620953690837253168103412934552795961635543155290485740251986132278526414698119721494783555335697334700150570913394500490937672406317982812907790793411458093265550712135084341399308353051531860344885936349497654320104126052294162022283659923158451492997722104431570541066614984757168439774253943926793232216802362681801155255813460984338004988383473457334868415564528638321800096377415510680221201597628138065539975713911737359426364938496507014023618164095349428743679390619145369132311534132186883500158328372293825602930442364836324444641842911237057424363113428363761780747753524242596483338364086849176242566165807603843865470311129244969387769099261084118801632194401537056059286181535030752035607394921568175095055448660595601359287771472666663230464329122437121596160343915714266264363508315668609021379373676277170785829495869448083056447273298285879268465146966368700309549797458851700440021644424492963886016051447391647101326495838055065735604389658927611751430210970907622031925634315369815200061447753389110131947158303646562473570795901232688991575409975980151296677046168827205557956445198267098343557620494599583849867319106586022033795843880158724925665761326669403283004416147960203341307897687855893406831189729672401101993331702320856414201452254644936434234479503132267641358248552767579249705195430113331602420037958671046043472904590359981890987427364753013145046678976566092706253259710525160841232790079660327313832586471595430251502120160903930596715472852184582697643944682943809412425874481188592164213977105989220423060269534332932733399875714575517292234655503959834910312153519328173140204603124415205455756052300587940095750166609190766740299290825738215526680316266338099795119196444403468774482120495837122583191072916689047012692356603781873540035043675502814701341609349577334134198390144740353250693605938538385789758829949546872044679862867343610493758977067937115996811583406906955937692814527585195016323750804733084644386473784025971276678384989297510739718623582883782726962139751520941075350665599997169157572941626140912135644418808147997964770246839596377865926348410782862310247728857156323321018636252364855352035771482394335984380372850946461409369059254709679348211199860119498982404039682434695711875102385306700291829858811649686922800740933983869308839122731052191167045522519373462413469786093917966968070408601103783766480823291203294017632806498943191213597956146140405354794086851379904670489530651621190839320741881109967135069371296318936435773299385937496733098158608655635132725707088172515202215676407566493809309266658130528551584734085060669356796972131237289258990589520243926074144009143389462734110024343881051460349884523040008077505699029450551319157952798049438034636789312023232657442512921947198294102686452998499225950440895829899483014332895867515317987730282437609073167842139516601772905915750832710179172442496299359845173610573076208702713847689437379024029185419814870866103217087889108141338486544196739581533820988254880370291515605649791988195225770959546941053741636479938701804431626092999367834785897116284847593955876727834817192105484650746106221581236707639169257324883101170225257953446100897250067067727515008733132317848862765541875375136978772403317359105180558904687646376787999458515741677559302333022082771823219032134994842226652373632223840798096952990079698089630994246222670456374427688069639269765099060938600511207447049206773649019065595520193682577919487708327105935995615876712112615258459322498205007200550574740968949578000260866263197647838588948420072406018644158770577192021624307518661977341312667306639308084247480420028797226130656031500195323057931883899489334238715879823610358486882919434804149425435815747680529138741551270169234420579176016586598809480323193920005272934170037847862927824983202489136522757730607130786541102093337670736034659939948294158192191012393773998093634401404856386930727592144674907619010218800918915781014175709235407947402516729337579284721990060077663467766158274807845647721910319790088908693199539022608724074019725348441339788895898222362306560507996819336197287041764920683306629546193418586199714265409103817077058443853138716943445595976670792133579899169535123044404459969849092732603386017295994232505723235532001878451681418321948385210939855863971206427290365740938159032566850398263267645465525414880991774846397965449016947968108993850262512531648809873168298202170127795394296196466978684000901863576589232782986816265798007702638801632563582586513375014641597131353274507829653818359336475993455735094837000543949857213846489370008911527411328034446199347841653878033995461606559167757606803441650380678645153176987690454281868394747987852420439168214492078921136389018092006949677355465800992559456522862979821264622491320369130726562788824856752738565763200487967350084539700683277455451383009797936970022409531126623557079920038918280921008647312362846880262715416863631366896656938604375277405805214561754228674895203972904007750943320189301098192973040163512387202999952676864230844939172630531717960080806329281809127540020109694856744718585331602641105318903435339639749581109705554624926615154681212222397919888981463059983332276922420871307987089984822320936600271190461525220312354008046494427337374421617862302336220087759657454164846382068099460359018061994449830075334057425731599605065961347960549497181532353034092677417381622766794668434946318706387730390247964989822661397283813865222006867543526484310612099878298588446792622525386264731723678036696066961563271491726814779005251275058332818309573321673712033264042847605064439764445252764903055291196758134448915406359657585597865240591623894761507661339542422389569363798346080813810433137950791900445764310249740803058573241854716995136814879350820173091312413594607813966265513240190301843468778389804384135727849940126851430264121963414061983398073873702504689786343985223183597624170366476273328036622750538939316836413028707033489572472869124878841628770984579901445283249227742010396819886994658605432429632785925806446610346461331464990187687205027297864959674716824595305410803692037261002740355294499246835844567225337937234233857370672243726396057840188437592552494481048883259319289366889952251379109910030965004744791059106335351480958328994100092144480853627479881097473348091733735508461938030617270842513343669642675154583609201485254547989259220236474796451329188310552440095773792033548904813469615475149276926957417174650725069177545828966243140693195284347557143344461669821932999676268898320810977249642413009651939103696295116626587909457751318371349659338915169493679701756267023630588140802875408112932121385021581263003087327294460533569450231996698818550786298937934896999952205393300100696180491391443925517432643371224878516084892155183105760675630539206311095844504263938607395253938960075260811900840318521285301223295803505769818783307130894578560833318785046092930898846036080202381805587976596885392456627601639928290573315880744416843032607615725880100186986982571517569031163553237107657881563682891681711193893411334162332997035867391705066005709045784260026993137542737037434427859199162192271386775901622861402068356415666100423122111096345283432127453237947506336392335096063315280401537764679896405620329565700799903328067154031480145597453414335524860992497682421758974320630339181320315883612868521879087601482344255712406858027365796947939158053974364052523183157705987583411121005230668824456614922375211084632511705859107899984456566548989402421338785592142382578385636922653175174066368024055725891255426072293779887761639524184530257715799056626311750459148793743298409952196967495362957766886536663699021338280089379804617785940328265806270877254364048605733363828603358210049192703024815717888585429583003278543591532024100970178335452049766506241068237592577443915539387410372903803885202737008078987640578013545432196777604631406743111517609827776583605650100328830365743404122570144546057946131367246647018365406739700299095867658324668903806069352657405916215013310023599616815921526756248550946546453690894245730115410127638860303153085232443127565300353550002089999075326764671489732950624473055884000266272858812039143478972499009670966633528904923301593902765734286589317305410539271793184857569694297921524516302959649282292460615479608707522932535688690847229011917284702251741611384537040140299715909755320682391640208967150683719899385656041638902221169222301218691729705413659963638774571814664715736806848350603857293387831281308349863617478096823358121416922481841431101948300705643450089921718924051753112012302868332030160060860077723950116709348503579194500364032189222255509417630777041525012571282135156269753073609019294020130435568431381727500831152263485056390601298693862821946055296087725350031331712670656555517371108768193168396823857874749416875528446638802216188027682267817418158272882003709448295724559095788116434279959613897969200679028637444756458951590587637305120016134007743593362241791128664126925500284566656972403253162904666128066640544567017401061552487751329426343778567307811436693064961251023964878410859320799215431140399870055951296316866816137365669920169392786562532425900647775572937992045371560641289894046291621329813871626248957902121159346616884675728597246855671416436204848493679362570755212410280220760134797050866873083912560987631373944089043239343498564912880474159559762266831170394606996760981996637620537270885465677053863894041975144094590884088745632271347763539107259061979160183567318687795535964934483694718128603446650003056444425144192488869484137443530659022499771480149106243630726855934084827329460990462307508481164905107153352554230328042828397096721276179419467713421168874888890456229580870595605786729186411818700277304612558705993708215041863238062401484692248342379242810527817921562409543408511527623173270246382508265525369710518846179035743446062608440032913845462546275604741779531349279379908179545328727908258668577157993922435343934030482402727963847729198775865350038154121627318223661615010819905872805520192027644440684112161582721934410517487696765625012604725301732049493032101330143512416910100554924070694813596989808785566354712771757463693585485937011505269598871559973920185872627958235117900730604551063041919033671796469289770523452449263677094754479654111599147316722078797403582292607505181778330446644471715099158020061565540620681231602291525878691251874668427361205438191952300432302953964204635605636298358266130229919155363745771476714250743197240423046254036138493385667445498618300725295669103677745000428350789477665101355888876876055233775797659045930103744413245306760289734572827500329843568700782929333280631084334125443221847806226847852697171165473759414518491022514854813949587351899739210590800521090960670219173076969333521032191176858968613899496784976447349017224519698978668783262160475215293429423339416257592405462774011513698855995658231328122871532662104184202684176539154398433221698061983465872819530275389192280414660512371316408120763942286644091668004266607083559523534685162592895187067892674421195102633847281122100062756647845701896809325579352151814734027106602010875559605488810623539409685028541978456134062337532294537902176627904270534402487487045591881354852122600957177636462551139614708272380225867479564171274425622965880263331510813924471138968126812340764180021894208066681945118106525259694354971180518147024468071263105937203343309874214694651029983998516026707290678608735851343059295702304491057913704121796376801181418167923228417531763042168636873044498112191764643359608651203395413777016732766624206008165115749148920722565693140766452441182808843794599022620181890245821896625400152568282148945647887160335211405487737167845359554268868016520800750065950354576516506558326227087707866114431405231579263818466772982867524539479828473346093883926260156827253932241069628522425985624301257006147172171221072602337947277108481257072159247807525622350522184443650694065383624750176789904136463515207085105553658212406768212101359051915493543846946223847332351592208726554368791348595635398494071450955602561087209271584472035541483658374335780966385446291573221000820590194846866139411146909075901593752019274060074340850830083304505784792305157581891186714708970467813167557206634406736270443474015884396505246572396768370644871396617394546168987423370563830107772073485260278475550590294572328887578401443483075834432823341025408923795183366110577443636961083809350060747340154099428362843958777958063291051884085107132816032953253345355303440783181777559214299364102543704928326450098075469664803123340071159135535556716426512791806298120356699705738041321872807451469786856997403427602676353131607814390994453240216467562002482458999923831614450869427901071466649090686418830799168676207445401213000083480355529020357311465107046957894562947848471396361822884307340770537395036216906551248703859845933751221968466431818436043159446986293358623180885501743855733496900713938851660432033330636558884691483220156040794832865957483654291399627555042868352629535999415127056009627907097784117143167292818563190992305717456008927465389775956995459213662336862640016882673967531007536517008075581956314499093275007592867539198609952935480784970049766164906808027802074798460655536343316584118162181973699546143771863763867226870747738986785699968321066655144345861939344807183237755423026461807899246809032815721583009390106207883817247224990176320111872334882772656358364130488375015026238543177376719491635699597892524453286852112433760663350593775493344609206258880290741169064732006217564465041399525096471763267155771144856917574873333495437980239751841902669464788837820701593631932614750187269332170315344370933170027178379534795336550901443581477224315131597460292337948538600217736523388860964859973116079963113975698046497555535566509957342060427022896634066858256984685733995055633386268035008794407959604804566538183270409523751264144422688215385296872352252884257159224812257861980082726446955248163397771298561095534764638300691911001681892188175498751340706299803866218517391870746701522123239342585100985221914414961696594366472130836440629814180658037381830468141264883589306289479699078324497945359835328264857359965985639197514244575895069401933299911234418825105480870800536173562830558433737473310298424103102206058688374403465000850338521909951465833602356998199125663488478621470315092147418367859467937512752114690304928298198754098894327877999515231129111350667241721852946405640022332327631325945009282360713844803787726769477530756654719994853608939105669608174423682888904694306635593970837747153967223461678848029872392124496519654248198386974785614885841018659941806461767195514511321537915794806922908024702641422435549413171496336607809971188198661936026824801703936549500225399729493476645091972737931125618971842890910900816415809072838784480299967643429616445879320100225771397791507750785904634327588477113252068965659874666888964292975669259427735016931706581936365500237993970514964663912871714181396614853018058950605649120714955053707988461602570538244644772652404467783422174606787146240337887032537821008564104447787065801347668652506531288044881211464700850912738477221723291926813378642866702438016397073750858429826474224907667904032703351735971651379620155499815377301887072068865022769121705265979511046397918410997443576549810219813009550618415705483285428732756623127741913812878152606634264640806338707699292222008627187257384696082002159242280065649673077015300587265164951607039803741640691692290625129086942936772709588192204473977155878159847745360614055184249731531317587911955092109511414265716016999854040818652964765052094782337416513567543378456437288715650561498796217819362923102085693783438511568480715825447248140399264080208930515743645360635918608344979311888198874687061367087715097334063371015951155032965992922891042048306100044632612139941258140301406658515132992957647652638433288737807035203931298756803084502152025434793354035345296333038728670378387971974083325857515878817465635107754224981444740600544297842709616404973322778456210977268669481825050486149644946339773702619069715958528778293310923633266723097799747682755700589962556763527541057155244830724196289897608207695655837394187136073211723155358815956476323140948021650666293208800603462449661893974246512417780015765652810928743786177916713655933346973658813381368927257145875489132152553979508185008032068578133502934958647897967460759153350122847344405805926300604934465835909778660743207577933574586269635450929297341945891502987883478570725066208157495451270371725504257144691331758802630315174792627873154654936248553676167138014196860078304455413948740909224615565835387194759245125031609408951772664621523474696749581643003032255166895341828831440175019110565666485442427249304647260295402225225417737416868337459767340474862284904135433993062892869261797166553462716125861912327547619515567130524150640316219209844554424083693479658948382308219209235367499731001493149226456426655907074214393260318913725757193833683454439602579325729038019858216045182836486428624538562209573457471952115773671418389897173803217964701399860758545351106354225380521083267306681500712955616568624229176660676717616229044748434090709670902381387560168231015187185074911504955815812756998920076606895904321964088244009629003277397310574149514350415274724219137227487885385036641764002865148173365276390584402034351884644957182680337461656021790428959323439228183195576481648212131428315105228197552750983572688791522098646006671904777922562236634500855939765725636611844035861955506162196522666588726542498356594162908082618139240915621577321513673423373435079017664443187061056902428008906369310444998669944700054527158085230400603607203311292451014818327380841568065603904550910347069868794617546996963411857557689530573020548379729145190083275482613859833160151805078172764663919622844313176302893819868121775437667748691243250858254960391955066979111228445029550161463052826140454800403223551536768300643975565365076678816365539217483077451003731266581961247638146011690142492908733639301422822119268285600226078352827418139327658381046456826419410262234988998125043418758005068685705896955675102402978283922406871127881779465965965944442571202308454233158947175945301115242603751210691526805839850450226645565628675697371614888653077019306814659810404732096782835177492387247834552379200970665367638352184624022570612611526434126267873874877540320003581451053043795850987014700433806258596601010940283635834466425101496899928923715041066869618696535274767474260930599199952083770697748483536079125531926375482505584170321696225661297861796289648721667730310025918443484313998894222211413154140658047285099059815308485562914403074242649036185262114442178822957429992207494780437956443591703471102829295161195431417960824129482640901637191348048378735827853565285476759533465631092898644092764403992624301060724655934310483523329048108035630689172347414036734760125207324734385569350198242872290174427133106574145211982350267667121144094760691292555490487548862191381562655114903063920175294627131638080353313641004003118103402817326261747894047880415832881949691560581890061888706920406138759263890358905199116073638365318761594989969771972276654457656843952182493868427014989155015946573586667919074752101747870718456325950792905375669925726549618224361997591948959930596682883261918326035948796642834073938369953853572212366098073153957461866295306267639025707717856949198167199874870150820503639143672168638978370519807396375788072896795711040323624307369647314951038299055503075277160602571063553457615575122202720203540981937415429973489384848547403921791850335817836952402723043526950775172305331506177671582771445823482129687102259511479646659855253741836073661210367377348104187398006135075635622512476425763973905141823464409048760281060863670005456427380283095335876324466433727955300583188146968276409727131973315030612028281004837075421313346668206554294554956600988677955147283957616026603373544657154222271583980789225698461219086293063964951292535320719504547011173199920583005191097893155725732724863768091786238839347177435104975889725106277134192987689456785413343318914860702325387033187679857903211864929401016919297487880245933412633020708073235881024649249393394998930118775539405599044592005464957299743287441876547058378581280972176458799903441289421046053633160157014114928030117546773859339143634216501556769660740734397061445102539195282639290861826737210891189173421489718182271012847476502715696939404726617002696820529983312057037983668659083901785564764593586278608332787311917907354355615942800203253120150080856317895019605639801455354660250366936423952664967818054705144130955753095051763847553657794119056188382054033951587599641320496473705878602699127324421296996249794091562491173021967445723091533649934449649105155816815356943121481889918986702180974252518658949427848735135371076834652373655447087243030163386033358368492180232835685411068885467651534505933124718730072542867706557677356530106340649218337103503535750057704222279383759235509026219326486674271996356671434541483192868087742421314915056267988770048934782577520158690634331473538764683575844869886119502558779106695968109441269882772354800034270209103318967798165054644554031747822169282249421881061871514257872191237747238587316622577147800694085443318472863116766924174204531351177474696874580452535229095269330149273400304109458729926056591037708909747088449103070382860720833557883626465274722590676332455606919895746027311958448270492816898778993979484068247380584355317586903958268835450397967547559818129013307405076500779763792920366472316221423953643875081606305750376297163112995023440882364133779590666722204379874699875276868022705387435519986850786905168671744353331039214827840620878904825135346890354704877362181270918992786857878950997981414997129505764923337367145908865770008702087109363007966845509670965583208256405414764653743080111014165170666455304206297748963931381037774408625145158877376134073603734873095224640940971295662106731947158798019625090623624704301791207104740232481767268744129412984324986656277482165491555436754615109346675693348547660535897042803885059763036095236132361079496245977726271947524430620882528766470524077013949582738463926515151692671139785693505742279289580768098242923662982438797815057548876981764806365764226380682325594655616113747115845412433519246701269603342301339054426216467906172317133244063980221441950257685732385627317635844992136928064124536588656631042927779007306972241731763631319752556562078228449096206732268904011803887425512980168958812067734473846523299502682965374181215492933603062878443751831826406391212750201947225581440848677022300130708032465554512029196324801325235347145380792489190959079785844083908997749892720027062157667842833592373673233127829164744796304982658151864873790040562286349418350880909307469603475351592202701824565571632271645771913301191989033840883681986132338160010339897873719211914599465710709998568599257215351655315834344363823834866247239116004707126887008024839884188064215323024039411087955420870693778161459863457112364445158895782650075829883368306684136389128309105386482021106434519687042998831970021253580397744880375306719387983389490403869996367158421315778465228804907507307691970075136322593041149211426486077801723833666823145884426508833644319051622929629971071762794133118741425912441052264928480117042740990915872738037023781583875933466007695246184292567858565109888809227629944076285879328765858189530358395537214963848044426299523113532444201439059974395420719652657438769365851419262803454462491477993007713632822673668169598721147031853288888944115979347222490369413285415021622195275652544493883160969341863733018425782951153648744216972047627143103187415943630947992502655419272042778905147845571925581394959324611477744054575306020737393344483416499004468314037364985316936304435967649767242174762527261028136691059247177414380237964679549257567513949386509855803666091296077117967525963370423701047665198606704346390898128723891257534329804151583436346700433349706195113773571294177752916145883060930286084981950557575238349294395915874917477671860036304442403288078373821640114908185260910530484978228815977946533673301685901745814400713801304316160804423861884778527526393981454229363793735791313981563949217272877388591683750257210552119317861008002790578678274209757763796986613457287847373847928017718605316244186350427795456892219111903975485234809424305207289131424728497304914215008559123612811540783726609692856378589758404338310581059025367357606621483471050294004910468144849333632207989575136176766061429702554552079859554651517208031484858337677881083090584705523779442751361772951682118039647457240574920228314892379433174791436517613060608382326405605878094347973160174683968101159240994387077103937786347526654403987973244910709116461244418667342239137604359611655529085123551124343167935539366086694166470727281281474626813618498222206155688847321625687820181623009673446209406475405678606541958376246181066476417447548687503738880432407065325539427002436846192648735526555389957812966487229556123380112398949580244464757915823200549422820909856747409279508066710512770595749594332012600463506546986047303667247566461088664871675679415970316189176269353353986063254756232307391354471925926719068713691428069213671259779284750054018269442972741989293146789818533544351994825123578414886477094595399981468575148241111331194702672105119703302656166668827448209529761066602800368262605131277016849874299334336157768427298896056525527211521488720006878180240775770504882720850140434787915269511184335790318691364484284114145269346449356972769327879316049910638666947098446376365581373738150168541897251261064423533407118965930340045771036786404019041978249733158119086910628066872706678460817797320763878134109931622870606782360303420262910035474199945869340726077493802906733573184591959448667837199240264711689780891633020515907169363923281550212548376567987994087828746635279289913280781690698204625288095706245461339067985524357636307039959776076222288266572119060882925024766517292111547189704226724719552161818594569677164538026241399837378326614336959450694481322746215949084509569139682769181587044093093579063998205257597668635106285483318130589113332570953097019498695545823323219900839861220406752564418982023712512633477724454724510232659788706638753317337898977832939108387344043809943701579857486882190619239408055396827314044683750571099148490759630063595825995787266253498525164018086621258054759046142019057692385811063469726795328714054009313456992764967431322325351731883622155303458122517973145149307882704737618720299185683390614974533169280493086522472859909875468869265278445023014718172043747900785275473988250316704587604063353043543399492847520907928871681626649295328976297312042484827658149470162585961017480871851086381619030875199766048038889040553069513016147286065731896142876565962640835179687804449332672707935105584004834116968931588967129869716993994995917228553918294224319745188746169438255962264780959733670470177472791518462779277593817231075844890255107359279634125055014138812406138169832873442492554717762520829808997814981192566927123997370913266854591399338137795925862354903246355558071866857206681423487738627163492120460419553783230808342483140571689918327525724226656835009916283252731723267194359252829379440553018414764482812776820477067002823067785944121454021040099283326978106280287263826213412563471904374867448535337192057201197769351696193549255372069278130982307206427504938066035224945645415178520454837022293085847640991268221670322487560953223062941388541502902378537801010516966191730500498317293081328514669835948082367178923180434415441987639528229728455648966318673230838567077180742006030477473678329000241628356537099885228037411858098148200399358488946908566223642418321723998382056329835746576377245147098282167379602034842012904608217466563366019159122879714441346923112971607498627607558040330371292312102605413321235871592413518579645249961636722453092157114731894877486760997627966768463982958697082559764416834947600580717471808788813446375252086624238485726942502801880830483262283115775401566559805138550620694129247402020156999244215100485960269051691700517013142403147754885114298873940849667704139907817995667349558000194113695425211756813530897598042394801599505214479921675514906163873159366658194301239092715178171913070755534636600813230018542158634622661978552671619433361874740873142949431364073160932432397863318644657730518694818103828908430781721091380654911053149980410260093858018450316819341064730014671088335582298878602980484638932254087915261743242661478655802802409047448752423924623613004072017773510226073536021634269716182567766984661601478965586112062364183005132073322641689810173242503702553809796238022629596461976421766466440303141206660913991777897931189817247680748445541284928937864196311436482845427132848295077491225322282936645411227862670799521117613244065278774643532225004774793301951762600581746670079546722039330665013836264395234356873935025358027068086420825483797165086903391910412532072703685548324604547489573346416167257184519335859047203208845072776310076730549881944096994183685050354344853486135937844041634961101657974622169409375146707443000768973745742858709478721122087796830175406836125159637461414567944754175407306100864589185267084212952301191341654475835177688685848036476742853479556595849229690110523917182931599000481888931507865221623389473885719711190082071225330665398092538670802868118529002391831530546019161106922464059159501392550244824070874715898440320587773228446936077768390093847153391168853089333172769657429304326082277879205088827117978243605037831747781823947091854906519506369918743448004679242700982089429085525852410901037110789775805439484718484401657019784913473422404503756530532391852907513183273955708395029293990780137662509902363269189114851884224208457759976562113285360556447142072838427159176016260790128014340852840011506084033777637231733648837855196618929907523441889297885794564926194933748228761488387322218214786907005913120067781746430560320463877442569304315622181069003817366100513995199105077448381261635351913110786019580428475705868977212508477997159363593266420419745521346905400770210934345793008283091446320994632610692825398665080908014939494654622996913897204941501517937182846987353464391993034932719269934882369094582273036812151383361132244337968978579991698577387870740343816170454333951509605679463328058058770786063381600730381229518618064721379396822186967048016149744408395101277372310868206104952329399338118648313345441014640321845624989409214983094351683055669742095852888547619857539256079456193101685786845632568939177683604631735276586858756748261740725273202724984915779010144306003558169730733145497766122786044992318861386488515385730476335475021782439844150981712389532643922735337770426023671892637146707405245521350120281139586877933427831851039577723072182547487919398900362725854834312927907729582341767914695500532010469720641764587366468993644645626013295412553912763745861173004035918959606455347969301252545596176321194404608987210018495695116449947028859762076158230896012594016395037753839346973516298242269512753746157360431489326264684868354947750742008097585010278391612796208587054355564596909007068076079288922749181576630261337689659382913022947630843448830449938964117966106283939773520033043318576557785549530557766197494175826452189164859014198782678289010874261681019331384125985770214617060800772226472145838820234716840193088116983327099742739444601746042802981174716103182716585006923150124195133007927636414917650001835336462320972767829856036994506440426878729547568620003206472044697412290399054830772410372994237071411087148337512611287017860908544643023268073121585303684184010299484720603673670005300343409184844195862624286852357676871871605361251505884401628636766843471995721648563995821630863545786301656182386583203140461102028246312159400074619021937504094817324826470663913732370512754146703967291291536934107693548247738526928686510946382521002570656005906987126551344229808460433741411777135286864387400943444640146671113631407698910733472623330372275389852752574028842373030341801597701435799287354854937937111321897890623429051142662638759632317071957041959811187025975387668016641128037355569809475584426384270993033438702687541606100450626470670982204477977200360109505239802470928513777540071767154106768708450270362480648973518879472992576154035259531527450102692433825825656157098563139962295639702553422128510320940808900999854864529189727961181182174309175786533033949107032457883229736729851217181619761657588470258809010007904346696265278418758682342586876402962845108258959961577266985054453637256934664236478812705529207681108866454903107884175958270310110023792904814049519253123376432701347151330660845524739673985750707206242819906241076722053505509188095131954463180959407552017177161192435661831454770925340624803368495953247488674334570968878943482161210539400720019990264722520074320116114978189222407295718847311990572878004040768164465875316047925620720660592751345132600309944032887809869550671762847666766542119047566834105368225693739944931181215226239497625410757967629957627169209654594627973731320509224996894160732881035124479344243898640432015257997144426907419700061444683314024545152386364617698306809467157911983768888184359507196616475892011589711136610342807471747322003495815893401745630489833694957896354581000493892238920527968707135012349818492669541340514079980382642299129846967729172076955851384039727664186707921537688500933945153933092199212714235193286784720878167926786525511665423535380816690950761505241462624626556126758557955752735321647484157124907861712313134146644700266482307128261483794123957955488854838061644113340891925394546430869377958825249572455341023698664798234718056276300023885034594974284839086552821552140861519628098189470598955617969402581127879670260878602592432345541385067643979051734129514506069056492124653491756074506735766538271434205150726957142286407036865224390957548735029996265259790101180956878021797503337763982868489129490702365024908836540806123791364996909029580405184941006274321491249060915380136672258923310429351568657398847409922635496766710983442170070025900886088879617925022521597865156438443058390441493236456464924962317921177071300462051331118889822726700321098246037761645656474437338870313748690155732117603810252548445247519282763317506455648208922449723622251382156907374420550030186001411480384903192297151828083767177281410758129773880129427133988785180432840560979804606315706868695968109976520801215442866893531664957694373588907487718842161303716153857317336528269073866279368475081287131515474824575329503404350568361983675119794687703723814465734736426950539058635927068426724927226259751047100307864207730462329901947374827704754744987282944110183147978329013990429083235004142966187948193000736808237706195940852087938435905874748186989033850233169947505147021062268817300188384906328288830887131594075745295096611192025829535695370539243908235684538354476416062274261913144081794634380025346074698940057800980813523158309432326319636782622855374365567905850273185922210508940685445962065707672571891437605308114600029881018224209562288260868181513818263352825295309005094435616822899885457743857682714558127155386974987485835136314634303126321133878800321111461898814950370954929257964716629031863693414305079041417047355033210360895873304337628080369581756422201042421761567639084080975289791501980146822012743904194085923405216700341106110414052338012424858391086437124070040837294556060356025659968055593431259932651702124245016674094278557810571404699998230482437494761472934726208902354786471905389942379529017652241349470416659634930849993267612957137063897738139897671796416764897087155460142569077031152400827110384755150268185599879509915068746290087965462076160233466658220108525718707904256280762225101553402526925490554595017653811271088743760344487761153245100859546341691103049141486748931996824696639339830647421328403134434259014100778030234500841744415390709669419017181081046615566978503813805954304741566970708906620724384719893611295327780717915023603422970823845975881327395684765696286939226434640324045664282968362167025512983635132540708562107944230892097275280531661736724664887647732815315581107579953352870640361514685752820291397551606582356538874726361689013478681241091685693583392442568758100415825248911768582007517558485855091786390696030161544348671595796497439432188108874976699873823129828720969889101056347085132177268882799051655736507189641762150667917056368057794817348147555240853079766173426793519371866280758931541859714905035437900065790500451748535072659824556792088123746868324971121449399465360040083643236260060412709058254199974189768941209335010488321667261809625208265187834146922057354477909556074352161497004181163498164402124466791878755759565373283029956699766606162548597508888561823189880605302624169510996146568443299626367197930261992543898793066516486017181521513086121688935553797924107859283112148285571216949755459780299661126761731894000938601269967586843002516571137825553059314925608051487906940959815147789145627723059989015981682911696525937903995106942005714242747941503828327994585913172715858846883059247411604414700060809223543657039181072323446519207808608581188659090117168779672550336767782668870531672411403331807769876228498674668481344302836491320893944886291538020453628686994256459329542492560647459871414511044526963637198660158567915797780420583787398130562146308090310812792065104162423362467692020826792144552441794840264194678244600720209501810268108873253083836928076905905044382921952445536069095005018105955275371459046459762209449791586898398006498552425130374073144006837657525430212674399597528028046778641871665845270605575901843065292129763816358464516584836682217867681800540279492003893859831111052220270673494949629060862609919668863812418056815509291552965811674441991225796182840229915234963275881783402549801086463968225081237367009417221282145293875036697153752671328035968165395263185331903664404085022047507946484199370543411666874024327508162707067049435233142517386847739968285301337743864008887363591694789714492242764396417752580383107406229968748156949401708152443371423559017644992335695401927707009799450205587853222859330049984331920750533005405155301799049153942677766748005706184891813044242473545345934699640956976220913794643168742528475086185038102071705681307743047294777619914979508534288205103567364146320520517416305922144237124987734381385533699059494255048449030664812282471736739613240324755271985714940850720516685178044531417779134741243512679674926828051676013178497476115805095559683902096578567662737215389323191568371209149808151740870335470398271018744134284993232471751740988800044095965422468422396435965250675786949847849222201578404445498138909384329602647573254113844039899687223463650316367434804957015286283152525804676801475528948958374708821690528954141393953359832033999276127070190239787388889687644012124205392573871701645791188492760768851482676473868169691516232337607140447217189103850480362423360040573005391761397280035419619819346243166594539727563819492318328408253588002097512961918242274739678642009735311166568654507951905344119162782134956121597652895651522785632232647183893901551966554834416375413056132596901088440555791650527967768528226226728769601135862560026001064274912007979418216496377271637083854100947003339167089940832232423602494421119816834150567540993923169891803390430914561654261556107338323177263099033750561479396637756634869085830260079740726293334578853081572616126652770335656267356215764365616034978335368328449829998842629666193502888298964338555502917604826723984078670332080807009466187256968523984764943343708931456708578654730529397007841952108805472978140804608943373105390925549374245393604223556161996185828771837360627613344257483953948946760393231211943885842194452493475632635077772739858558181926576463570858095248718982418009405219022305913828918467515133273919300576783927383351861768090937251156012081026830977896971134891731890337438720882111371524283564650952902435306838473905159797176511323938869588535388395141801429021760412985143248001022942007797857454458304970390251822094623512052113877674185356960323842883389195416938549680479576049578409381967150596578516323955132977033846478544144096323642495489203685990957475456037439804367529861166353952857612714459524707279659847809797489462167398568898153060845555900431777168769320285046767242874791094786691919863362129411774580170960197297031123311140451306628127461565606321075403620112782541257487863538252807185281753303807387854299255505616709193881300336258683067514569693104618734802388008122301738220232481565275079112134637706455032171160206982715133032581135310884738273034892080709053080161593091761854068054736798801650320838851684267657778933424996517872998569722770615022622367037009562180594952122042537942825019030844717915572545227059290965686446147248121218845493173485427541672306720707979874824431478542513403161714095527868507201232682341342346794037813417401523195203907656983167043918289239319776253307957762451580030026345726708513919984899673752522908433881967908358506365862010505499497578414166541232885418630785137006819593364964387588000440319447866917376210952862666283204387393092929237117605683368721255728676071873062812943276626523415450483040832942792689625959628387773381380447573518985393427444307062162805031977629968278385756594510949357919350251950080681761117446201848651009323963452214918300890200220150868477435036736707933782498483565593761187429088988093495760630527144733051379983316786035590152853144014304383573775113198499403134061448131014230945570233392803414153708324741560332661474957904203753415726778012969055924694459171398185721623280442132292005455458272368989938355857533276826850886287281840205151180580971025318729976928171240050578597433932451244728206044870638833434677574385285523631058391554559212917154301860025701439906828643928675318331171835198022313131753223936189457621092429038269923389455134772042364692271554721263941326810621858637311642030886749111563538472800239846398083872585264310407456266044285789622856463427095266271677086981537823643208805283863601802228753566291701684364143511753453101566536963575079001110982399319060849743918864652654826029576562311654196303400700374706973281140380974329927994932222980271488362138250309846494291071715163384620029650005319869528162484499731394059218769342512685458642761862843421106027622085148628093175731207628306757956775628512408395738365599836880068047540151951639555167049483712094580563169844690707099981300482059582877783006960612169806660758766474072603705355250105800129447794056775654723172487852445361409713411753703174187582064466889703894345390734469679351996550082310149135547302664550840663339779241163433664906365940175886773269863827285496494407380009294863518392771874421582365187416916760049658691707188415809366441351808481995916189059958898313691074768115215844499610218098400282650046194170080195406086521685271780256474571318657231413101630806144104260029931170268519052401632375889801267977119554790359552688831254472420081231301896170026507293969404408230623630368148043356921382086065281903263802859194872676295769962779113318737419380714951324240531623292683943104610090828108339011613958108105713846862112037646929781647176196440368113835269095786499977504333097007991842389481939133188897489270089079427966299019711845069759006185910903090020615585156200001422531635323426274534009058899699968688906299789823233948811148217040718073902296726976784568564867028514706789533022998969058613392643978423275921579764318142545716752805530758188147439992392984505390176111703227173187825617958472138999596131737718992674086397680042924428057585298148884958085071879134804948750231794710976898817756429702105838604617852029148259715938701192137660196610608770679454705447278884078100979785960205517698902829949649983859409278349529805501581912827792741652409604981171771384607718948956342169756732066575873174640663699481938963330561562966547451238098510973417606845311774660463286567703618073336554192369027086166414014462721000223774986411441312733907966356938230654583245022697424440267650457064234333978762655976533524105165519021062027261346425274333826708558926992881825589064804186705765373081719042666539785573211191817676590521964795522627758687146217698149389836928052925569783384416245368031022437242262041460100405375766644917506353978628460573512526401576648239571548555948628449128538962614409455384796121361809966296424589632802293508377744953390913642118671138923679427740463231975900857200142831468231153893465191492788937243438762024090592609466949144474244858271670473878481725021311830116985717729945623180461973916117173617936618408722619449355465664350870713750897968085006413454061909707707216673519434428085296472609546378912885893557110412219276909589207964552152690314412805659628472262296090289889190217169200275664123266854252914377229492247892634227132725519788048941064419847448995376883388643636894584725418191540553827253310169970687976955456582856789299769386954896881707080648413541538919760108557928993641180052104886597399490771352599401092358072471803450784228660746673807548618196058763174777349404758042065743527195834455068764537844269994289785451739709585304051826477970365909834665319915083045413758423381782950030539727802579048179822881312011261612162885499180208167942176263394036676414993823591746984113921842428713635346767203081978455028000887880456381862716440879274868698606915955113234549832454530843694539096870874292182600071007823309058675245395520692250087076750067414374301283790774613338225098402164129053085912687684635174412667606021008885672522941529609502959015901557879828404474986967972269320291956210779791616823247611515326012453701217195426507106394951104415531165088912373429193689354326048592074619681545472763158079520108656334499392910447193634671250844951521835178976517535703946397777356212025794962385574648343867035359897931954926305708963668154782715075139181997680882788636669665398383864954773410194143440072798875879248228444053155035627718065861233917309326475677862562042252795108221584914467130739595696369472064446471993042239034347282282513627973377912899232853686862368205822159183492923407257196992442385504313291714439507132161473028690628881841261855315448387623321922432217960353323776769488719286929470722995685744227597646263982371540970932648220684055271464536833381328555579245338577553972460953803709276370965230823149700810688913003813545126838769369051896040113777738449342202305306165404061934639947307827288109287558545890129902083963656991906135568884153786300112728727457003852225593294543254750866565186547601526334227554735202858675214311083318911558052940839812280487598341447343215515975260433645211914738627841740883137175593016577079799709959182534808785226677486138238172377303917937481677853490830268133939635267514370822465617096902058336554270227761610730728285315380380185301924099840632722802369011387926007254358780243870410502703281669734552229366904559773184446919342856473819456630520203288535719482022772092468355821952445669832712390781780957178827288735516683206318521603206224995903296468710687585973044195827806971778211110802394645506490931518523876063062058527274568344792580060394963779080792042403796236377025387440805029332538466834811629837954396008378795905500921125096722089243300574396866184321269937018347861368733392929410198413353241491912525638533785968022594131030822129711658208389184642268955614958415133172995538307666059038153879363105172189840783784207318984198657652129571478000797828615728797591656392093039232953197554603565176773930582177272888140616474953091489831470413654906977656937031807473600717761959407921216395411127923516351224551881292305783806108416024943398555846079186317307434583203230732040325211201938843189906052385635621036703058926256610087903706244180085222964340759112232200522880566837801997043416471623762190690408535173168975114429233940554657345353493992139361329069025418786572132894664734517551494031051656758652509245691614365510122222355442820580971539139265649941820972984545414668831181756939252932060329492065739442891578355576538488515271965238669290125839060255537520145704319080480667884312457998100746161204579878883166485445745675107181272683613894594683363504935769165288297158584345227726029553172644243007747571851175427524979518781389666755135024602536405604014357316965881063510975612642230200323690136447499505361508421289306669616988074460125088839274221610982947652802590265010862656538796214028242971407532026763521384403645331426563008189081938989822554463680911221242531531389962271742756262659020383269023643636167441512693924916024157326632034848066727180570155959361862505442927938390207402217551927868834952767484516754339701448424349789114009300096590759087712468399725999394987883497595524902481397183479155775197513063772720986407641407011561131505125010987405401211405660184935073334068751713427870587922251098638444084753832982552248823985431360689276109540569964084163087341436283996973893139830856134509433531131876210758362189983186802570741120221328576163366834198383986845540928902501409823556546363308233315503688574561593053552406611564114087472078878942547505496015244017627921611058652708342107849408916824055173050883041521893135912337571809404276129118958064109033242885557564942909937695639008622540395955539807117289728568825275027647381583199322589753569049607831354394339615216267695619072320808828446946607037471392221062545063966153453501551781948930543317715416314156069326768301415305664016505795459480413932334785547440128901780415769194516947167097771583522038481846665935509427726189874284230298177996216677598859644340416431944301284713785269031223386016252703689875116663385034370708443824965152204449531932616367140876174825684695776101577589521636882674208596896018048955974824883781788809691937671394384326365403359444990253567997601743074158283449523008733890880851971423526478573098870793513468430397746328616061159732761859473252506068588259104289429651037754038945500854779880947429636273964563473930391251461949358923842875954173202205238141098891564279239139845600559290959495368450845567260894285187546297527816242851258727484561403763160855731915116605838442555063439504679949730412244370906612446415946392274242221874062323610062676979577403640915532830776340225402562300472801329412476356550366571262939492856572931062227243770338246712230246348151688542262093560022178142858411634167482531762486977873541242017794106904979588440752835289465853407680974183310122359797597352110587507299344063550775598211225921109680499171812467146523911304516302474414796508367820572686366672849488363311154214880169418391068240224964378078084221452629390130830668626166493412374220424090902013355674170348386561952400615023540977169244314159328091699726114929044169290726848819760702764003067309363948726618088201135566241765690207303010426708809011789423710961087046825691609269657869258606446583041398653105230487352651523358057819061163936297997020270951038240834485586858951785097091778306642316960041832755844203370095244383817943880315717939914442326159863596243691342296290335779257505788104708742772382372765222745875588793774782519366635772741425110687403363753992198059456874397339297496686334337617693686979119817034152007066604462157544035076446759731840147966753073704850531917664300268766114735919290863392085458553354578510045096653793765601600058328473578713980297686288599329295239915001575239335643284106376643394780388030193852281397390681168967697320720018843536141946535551560004032070840148180051569018964479381396803574005788350743158526231036499622778277378314723276477623341275758867951808235437294660732556971236890389434664375388784110640966507869893544172478856665556407985421229223394140694178822293248166753894807866324486025972178642272580929898160920155697756161652472818318101752038382170099155543235279452558781660588014997507349059082367602124493678281009707752937208612485144318032952929091395658662193121854591796392103913890167655835998904985806352303033647822168496468239644695956018234434895450006163913032125258483145012153526373302767868097950472000816255819684350986467792128631086242912322673516589481629488193549192590994090925335986846578601027152078647768177546898419618770291467479117235605826732018524863991801257173847313309124503490944363133023790359861390041579245561903614195121531814047752590429574810500124532484385523653131281496604470508154629847042923226784915149754073173456090588309465657893685100885849424354945757248128276438672087485355055859444278316445667043874109499839733953919239334028629378018412729440785695075489163494977671116445926921175217247441284083613267672210671430377672060292316587910323916210199424206209239580808191406570012390687194294929801591531742568163750256026684960231430044296573374004110115994176230103350326466868386753604591280017330443826768049243139322321608394717987408303235241327831268093012520591704118938252170058951560153842479633833952957131907780837856275890672299059619856707490651436175229764129661910493907905552907803773425863620238857708160043734231855498535236776313062751758956077489127729797664566350923827968856052904198934326570870259660000201028079758353230264063356298471168375189198685063487050636565271893865349322967190871168880799413062437457184074178668201112270397437049311201473475165657842350887934772418577799277045875131815889712240793968203287783572467180556148634751061891588000234072659696943886469265498999880465521974564005049534128459134738529908671550422526886747650685314409192885434417747703248795275552561273818907231414874681801659906116062606928137364361962302910749639986292143462422169860140130690150463556179742213866024147384237646312500394837175317476741612276421165069971458215545758380444246590830603129489688162914837687599081919067795836001081005853962707786581584890322942864908101645006826447518505489257845322473079273821408609263012339552193153663714468741713734973679271259768897106177795151061670848527356181584594101469467745007528057548322594743857975781132609295696315334310649885261397348769577483268324561115613179396245619527424157216336568782462854586344314504795968158087777935552314835545349023854072593548479187530242325847556435171615827175251819236008754544116158760329031259827606506698476725090675266600017736727372330602389236071346577956456035150104651910273339652024188287237617712058732028513827671839582241866965954585713763714650399090381351189227362461958357496484501683787111482488270747101629555486077471893650494991680879525220994833196904164402095539006725966624185655085234850634619103209819062901172756577815776371188951128792134752636168746052163737411423259268720447600852817508807479407435684713577382800283024567210176931098130862129308209446477739682106538025685391391936533561650302570196287556425507583545381872612551780986700616042464704532534728169243153925794143370682363197345137806621979275893975640200205913620055145783417902104747396366587590839629685170222764048029594744436586699621311289016917721642620636217514996036600949561745472154036293377790653529286436519162947201316220039960972289444938754749267092088873882280546474409600512607483182732589442478216804141128555940298632042942175991062250698286952755084798920305348821114274648888329520027627221122534337004737166844349126962942649395956154974547458496541644238192673559632362022655079898873141144899659081779633100482774007361491188474983661294338516205989010402378164409422032089993968477201092073146091958547844764312608021134592676746928729560670132184299091114086433146500455548913718075497941385726826463284970417824217105654857409739352548165146682515380032372846538231536230340236021382908188758685499892034326241751757462660806216742735782597383556809965266527496260322332218385047801497568879632719176932925031578132436370431841712494667543083556120027592074716125047025029367999317287318623914308662330202725398117398899506355977127759076295258525953544763684594699530467226893194475456540226828395283690416732455852417592466631424765282623550455510749007488219223201553515508772060604054824754475833203504304467983608818086734917775183057936916491964422333381193398067048647604962353034575803474933655768721463834670347980950521747943765407519494204451838530941379584298990784885086791207460598559733460123253105336813372914108550547637853007343748857429737546193566845441065903667839848535797176979778384563295982131413469778538594342952922601746829551156807876833102311449178283365453359813720885222416170073246224562256581415719852904710666464778673240155670517086270846256215759695445810313384540854862859800351926884607116890257984998984668328983860115316758178483923524564611712914784969538877106126837863716832398083055075714475645234591374666237692853791013143520148718213453423248469514456988605558171728930254979505146150073899790897435664973450628021925867641931835136892479158365274423875992511693957033412011735713573922335151420599782404063639794263517996202383250041502377999056692037648534204947431333227666277696871310743695871355849841435685862452370546352008493419771794704311549298430813547949146998448661012964871761013177050677069526059437882944072379937570074204682645923029168165345856205336916058980755377060985632426672392720541261229732294621550473710059887148477392361758918669989067580776836044279571972196362886978893722147390973232618454378959174385632665497198151770432958601667296334348156174824207444632182076115298391859821284276355970081799919946573203130567407734034584134209998439743051015962803155362916460747601144791748535185879359700840250612767308020926273140995635918872567950660256758903690000033175758591073887626507185728060387641300862734365453809277963693023397823780081012674018615024349029685576622548123678069796175534283527814329112379743853553431512496904298966720956939453701666597023607921137750314378003131891410628517746425700031326379598688157847654774159376098692586123545754192179514792857237715331056370219814397257408444675924813420821688690561268219195246615655482737510494668760200470154965487960945062692210251179874571059866172045259008463396138310685901080205512075164566982245086934739304248223143737037058232270400967051058567450128607786234615678757145591382808062288516254969636478424928511466181127837695837954007474123444581577318895947543306761526344488537909692739396418511952173107949916256639926959354182083213347927331198293240854517350505934520951880816355342441311146957948579427379956386299212416993017193269476835649390292450245160979702649527940396813136026228591297394725861509459774761242065959869681358743684587418150088559387778083500335841497372175863293138243620448887068913989253852394713272861731950899375497545941018778646347787724357309556721802697865536800227623412736013131853065086623593673978533811219772825873186439866678854955134827518289141697251771577618021752537330527837224973884884157986105053614632097053318299294328246167372426959921176622588729465074360170541369019242918669428442581232839902840228542468680864737096157725346522228012347528567047012043127435527956712223501369203458360450260235982589660867710531487778592675966780739367774270006190602278582036171005350759015814026685896460689810570332235226579054484981850026519254998908059690091145185478125946949401896130887042879295214692844243039590807012912414711764468344915271433959013381934354681849100341986623188734160238402280321966884658165184435410633056374223660929381601003377953432816568349854663399507328218963246601771230943246751442434531686614890874845675447831326616325169268264095907283260423828053001333872263653994276160890412321958027260299932661785174682932992229164319694226396625307974739472946387724185257916731739160029922196771179323420209914433354712645256745087349619754477983632867669609128936159527281639845807907541098319802389072250289514361458651671277728431357417276412031123505403286633258360809289644595590072779342750094189761927115685247673480501784694951012190122124228406389300600007481339761743318970893966018684053283886632308195665870550377988859909044153498829579501183070146416363000123543566859700358538476115724585341294000768397579668653965180271284008469148484145059318025194276062392686530745552086570004981497966562565453008726969674852725384563687408476010405901436811034264655789690206391602863676184272088417834200266845406688559565226160903994745095855151803892107229948928435886265569445948423777838236388380461386615691783861976147844966743202725371476404144592351365866455727064426994278451314553867190062929464242870738053624112441198528528653849186610876310131806168940097358166375077123983335442668869891981722235554077639728097088279005586192359631569263347174807318759684823168992294121304574750396157138165834708339477602804099723544017752622551006670259185987114711820129527929224116047888876949038630615585044569100708281406115857221123069756666533411664701489834355842941244848350196971017053180694552612966216001979875123672909356329863901004444103717204044266341143991756344289877520904289397165536631463698715944669638266726669302535593906304923201399492844199775246047504650105411382687446812102795098431411811928005501387805795653113441034007667902842022689457133436895761733902537372857721397418894429131262227074630549955326872116151184669292737912488208153578051997409931208306499039146068117319458181426806353292118184401417454849562121327078572092427791507115409012807290888130547352778320098785749806929943421714810410393270097117680040158963909792551552716428354464399046704227500087619736445582375038275799898611146166445239234887437287737552481319902010093947074499020049814728343070579281953519180409257086536691753047306301547037721777092827909247526480281260979104557768564879111797712747576524618854411113645114351758562974464865824265228048653056335937737086918057896881095179635599613069109667238144870325456904377393687601664828013280053279013318774314394535177549709190296252183986256282140731540684548919009170260173081959703947703641855229946544587584781730968283626925798501855030872315343743550492994310216711081339085113742633549668347293500928927119489166306607495103570951914426826354403411609659733729278908506355010586481997138215388501615637924109748741964535195465775441573970002059304602943867438803046033118632386962437139660203238694856205095715908737884433150799158904058371373243672680158737948263226029144035842043940306304380254725875478483932337677353428451634655642630513429343113062560997539026619808493935644342688455541560123923841880782019420414255681636138330172765296806641875595285742839172790653567783199827969250803355018539875212324055836443809176631110163594881119739885523381266821525522276903378007064121560169396927955664315912624857501161361502363382630637950402937767337170823282631311851015625049170893875474579869464235380415100158223711167750412921008785369916208216502495986173767253550759471637655592820198115355605150622328650444854039174755946980740096782273408275926329215084558493785906737235651120519236925077264884765617547187690357465514555083696435044399941649649138380502887980571086548678687960893567209769664372014804873887612646295945146280848317322393223186431770616488821594874269783958700825204983804201846295736043065042039954642581554131836731729891619801014333425399933366557359434691485538012123115805552661256462316015651379068608232543378345316869836294294939812327079303472257297622855624927913403052287382348741659359251141648620779360123565890807371670904799637849965721114998657865129866283646687239114611131907877473079365138078759120785286937909658160048302480096381754294564250050482568390632992466697396946849335837123236834771361717844159409435673135576443047875230522636365769404764290098226831949411756515069418010731743428022532383892305694345772487866092364118743786550437536933515552153712955698274368507079186109767664779505383100246036439554182205363515043721363773272010783110704618475328272869485998143434453474212250959211789715579587705676042457433703579792420736025223923604535877792477244403494099257096864286719107955685899225045070069092636464867428452573863550847621552214202294176960542553564475283133378100978284248182819290358403657739802033808843895664189602334276666964209447714472216894102059216044939597217306200248137703028593865732884055108483187222698712869482003074848132616253429851202760745249231109102855033707285362222511749588702631740325075776675281572309310703716283237006461457836000224629998931844719022949118039724422391635915391008445225772536053011065451785257579084572514339686610763011714371188822448083566818382125427327185284096369828585746216347023117106814776782981135107223093636860631369776779805113433674352364982446562551852346649942505699607512949382484611478003770292112560873946640505106730562131751482192047587307771017678445276716892992858185287240614664302530527051564296005675548850579741622587199325725906458978613285103828352501006114461666550319647965600773072703674602281642114101495631329612605665492507732377933413671970028113644289352813895302259119300496527215798709171954018784180667357677676109768166013775849627900799668365091684739379668947182307524261731927733764196209120646933004071469079228207747106547505532467411552420842534055275062722575953330576508375751446908438202730774314448500519879984233709028908501974967629788233754017591275291184397768181550215881342876117050167165474378937799551659596792327271485091228619778745433842817031213962266579419679162018116476632055108282487586395308605652587028154068316241614152411639435609243851816008229538638632711860074585809860995806494348703753815953999294302376559935465917872124608092194352905866358156993839078508294643548550660882596220266190666025852315530670395536652661493875823102006285520460357338646543672295766412919708121565751664906245157877463644064863482982628268142968330559688556059832886554179385199417531385063826645974924782237850974868063154192893531528511768855473463339893503932283302170004340769526202330604553966918902073407378268728996413169986540058591024723651888616365407051824524130803051133854400272705232342661152819145882711085694075874920953675291731057862991927651669397636089069778632850971399406190481761455485389660117847709149576267106535913114462937950172479182969817657636344127764249488841871876640686399338536687534331094856055557920479957614429747378991161730106905877678148159670298261513469414014274625541185448790712359498035767661778047163151176679698343216456363346850325020321131227047627548979717703881438702484629572505688298835864211895796423440857416208056208100604946814761807043659111855039415429712017590395028756555965602050480204917529644316466566572384434759631797439701521581178932136010975327277991247348175378800770992393719167489527081742333666639896684012411791603510850148647589386686655312271686893597499467453043597695576819443504768000534327804302103552852277983882798871505377401687399819815235201537341332384704382729585763997416815431688362296093465827308752403430483368963352460964944694171492545932549362774723404048319625379795025854642182403416745915033785666331828647033635092532747736976887784666529617826498711855910572762760978668956288448078006190779673414563596486536763129551086731854391016408715790280381140539299070434743120478807882411663766453125682115678601550988925247223393598534185404655310794534929027567106454250538939806500731169749637228882191566821576516839581236191514513023335840641253567412676030231845099981474870325512948982837311045844573124897396875596586854555574634521816153468577862738026019611068668571092564676275876500280042661050498786523151460502278175072041251801433984219286349822224062232186831170995251283545936660997577211719149500294132496926838541974541514042866409245839656319693003491290790068444765599252489529514857639154553436613838958530205506537042659384910581504053988422483200536564735477643508728500992459502438670568985457667575339338238363427925825137413506736202343570183535567788931349560323189020762483221961740053204811514329039029185894861048823495222753706915960367780892353641339207669221113941361918268009607206540026135324198400060837879615068477951705301848024295718164853852666791678503256820939857817323841204553150119079757662923795515135382110886340716002303338536504595089794856037722512346406530308657728331449324341199479573651852314754253419385724385249680531529747460455113528629814465961442090757847367656715610330030110229998849192997570897246464646277243631778315050179723925087385591371326232973008375332429060666192667214472794385382769599607625856550130887259370707732883599561507623470001651401555583167176350897544744238518139170726411754589902745338987744869289775207779392709176476722860502159605652754290884331358160270991324711049690586385384481799318831816155833336156162059101155541839339377976704558421951792010968042714036006301284972368010705716831450458032602076166381738443811576621415415853769493231823145585198019143144747437055354308412679157014522393538582448097243766384779541689144233277465641705388366408608243865915853079999373284302941661911482158539987707470418954465225276320075143324823067759197953640299129432512632368875103279580931717293804337803767189478655647518086497897393084702765826738337317912860442943652923875482074926967057569569636230635897894254633035080645339910449318270586060327097869064397620311589625745504259397892678006783641992351708304546761946026948500947013823451371857268936018228392904875042976527591467333359662184600507270101394870533338007154849868787971091231448780701003453158401457238062721497040967866848561792582157938087592431529310069249273701514716864376165789460543403024699489150214886048521478073082455121054697685579183533426091397253359266947363941447674817196419659039677115301568433859918722397484861834944209443341680493696194832131276909046708799808213981590465644167568623694456365107756124281534134259487349416084196480108350273594094714046243823066034211777839909349591065028425765444565216794455826819144608337327929050742980834678419702520998058698636107782909509789803142874484491441681024652037238217957255392545921256518873565862010284181759729954631130710271460157568907824133086138260139178605483437873833224509017414456499888927829487587741958783488750719802082169448029756706828617047075784026033354745181220958988726325418079784444755043998873260672104412037893363172846255265522924858577461816064018277963708820714589513146500878811689333417289390590015677377672843785663394770424963948026840116026712772237865442100455770427452454434803233474003416357694320021408863884773066979815032308255345068695727000641037012818579264164834630553000019226347301333735648599846055060836484522683691286346046720824931282779277984877183719454336137085930340710990162314440890189111099920191152198937612373093164702000505011990730936811342264697935744592916238456100675457519690400867705004883217470322551302872961720918506219847139792299974930307271391797071870355317162714448471152584263698292993603138694939854779554177354459774289887105605908643090204847208982936081003524268099138030667933545128627625822468463380008455110582166570604895503706005866036310097697346207441764932675823027694769592713914543420057400720855485926425182121069971484425063761613299953147462859466034571871606982520370679394393451122991613972442129085823519746228344396072897138473161664792041081520231716477731557312639828664746084567499153853362518344708195149977790559895950941697300880469971403247467555889450155619251268675946971297123337044937881836907292761338601877037238610258176778298694557139957668241860791342837556402647402587558690190982187568651021742102578705770080728025602438912204108516016754806509544762883427271594771776443948986993583434950728421150528917117992013928079290467435065136735262140767997193748256747241686312229704057900050628369026080769627239229727909570467048733855928238526383373443695106781676315836479139766947654680680763699344813511026312720224313100752318872358103832256244606523235610024182440514017539362542352568040486608410822130384954490577869653977691845135394374222932307784258648690297061051235006071957696527550777702257214255987626325889901128697373415514461581504582102006302363341022207630964053576526291575528751525506937581774563222266821808660451094181831154205841403745624789822917516421445074904055671974728857411064646060716327149477106581609184961157245186774627663380313785704491395393622122502714017420735406401363392229537177514145247412693211766335463440117620980769993020560283363281175347947698990487659755503490696203890302446359570646636422521650241114022572040821128132098476662158708660247131098900435697477392912453002366499897084856842226967406371217597370993251815812001843817718855823840161398336074837268133633839858368675778706331717305919728668714816279745423600790090901000930994212637525052747764606384008895715895706723798841038358570142360763994028662378081899335094202876927178518562500297385125105574792346491619014346596477077994440224233171030109330559154313673159910936422125859486241265248870205555553396863048409682565336358177939919296858520909613024673273310537413748929377754347541688347908464347819550003096565672662792731974373863104009405847420498690377658745042750691888305640942686273023411925633855312790010817258263429086592836871277562269944985086876778088715920241927535417919211620019971345804446663140260873111699115715213824340587635736691590419787346930722466344531234972658636164873951269060634882764630572556996204031055538394049606317617846983689311884347563711095492783721320110388552516327794983697752392380316831281180876508085271419807620512995188717017455926903801593761259923911366660236882977952791476613221694373172211020036981746956248895286168112917198305560295619184670294435530364508530867519179975727427950950000884496726446558341036111788558009894395613216002543828662154149482199605077336112452591642805062663010282793647590607457368379283708129006355597656663278226454527121742714940000989907087726744621895470436928579712012373844575699942733877849465885300169412830521598191158513727873143196822850661315263239090348325469180999552385034514638940025649882085461264832868530527441003108692060373270428820648592311973011236700866734309194969008600733288489581138317980089744799986197452250940144630688867830120908828232740245740540906675029968691057670432826661583736032583344709377318184622238938280469474238833162022654549670912071663485769654781925962785005578547408113558312005129649874781215686559890893180335209682069447545726891669713852816565420118369126641318017559600896045853390691824999373985302870045932687640999815169225850670438130370550303376141018245757548658029750495230959548544884017763802586918592379942290915586585671585007786532709783815185773407601586261570324756746854210221362299371635266626209427449482528650023446377608548899810358384034977255700654056944809112940002694970536363015643597454841048428835045352613267495499871824919028489738318586266944822812964540296352206863521691190994326028435843807442385011634738780987999759339617134388508018184612356591892500574109550129391253748996246497046642294072470787533311991596855521884802900416375462503766982609124587788283582465620199569952497103861938612976492790579971452388338296908277970412036731592929589080753245428215033854403440767378361087142326103811140045583991595256530353395103141403116568307264339768049708503009108602597578988766613276116578694351780993065823933110910891750955071067213053117729702637104256329946441818385505755803317511673188485908977651314969846058536445964817090123164468752706186882810646917427742861337183527830842783765477025746912635127340277639025591522760233961396489885124677808835031368857134733321832253399847232095351745891446742612796742645630231640232463175504594746293801092751467885341394757742747861687840573334176812305686116516548815863672880440070996199048193631839125479705766774284897685639230291652706259042430277357354273643063828416079536968903503224580371261049762697523198865712676928239539730176651662189573633907826354110175074475199671227064646738903464883397694135123219355216032452357216778775769568235934021665056320131060726951449452994507020404293754166628319696129864320317512512663182219252140055990325883374339200158827700691759320783944376576833802271689585710762037154342388010726417031334012723860963929067246733484024678878435017634350157511859105367796766387595092212735300057649112598531276564459906585080977115465400243604793497584167222822276216660092499225720391726745743131740518338534130903290175586608190961950203308187744022895924838280753670622172014549206259992830270288419411296641515318916403593611133658030177388461276408492136079293488862496563027935742239556599603430429424822931989095818711622701239800419042543902032995610770665408818542813906742200741420505771008141519480903933218253489829816310548449738371951962055530267742364738778292885310122740032414766560989203045594502955457668112298546568866714769991810774768660084819106340819826369498067207596061964975762191067192810715118170113444461555907511100689985485384198931531246069107731947527563214228737127943178533099717108004079074153881392784862653336873975850795863062243970399372748500603551607045788008306947864291325465440400040202658472867229572261987987463157406632958385079973745430746841238080492915553604501358177294965641397133185568379898280879003557137017332338935658048684659171585300259431083248119273459591019563333106676499746699615624463755108563108763940487610782231458212139811116569475857928740269433142410331697402078483482349969358870740167968936536056694985483726084484674086218292395921974760953062497011055522000152156538236984601352953621437406742656838896808066984365014351406493707359884526146028476726966251705782213011883026426422251091984191461590018249714560915907372424012692102272074939025801105008970481021008419599197418477304182609900741275209137918146568997841809710122348349093500516653646079605811695739356880128283185112367159590029242483777384963996056985454717584776157638887434946789159714953911357116825483457567077588905783294988410373568016748836422568392297688704900915003830605399282931178855050540411741652589652437069236497234041755677674614416013530275892617097689750555318103954087739586395209437650525852643938490023541246708587167549263049625678531702519537913441039231901213763369762263653001614422601023426065374547337217321933827818644039675621336856238346809680492717263587828737131798758159922308923293558361191548755609722954808121193400460031720595024424102384840619028784150582555598282096064159450290959615526186225825951233765499805250143650867001181659703151075621656198498286002841717125623481601589825178929360569406319096731670276737969092337444809174120341877766920913194621669356925384756893454349616784373595350383812085864668799031371768462336764764690660900252707899348285369923848292854276059641194916166028778556652145682251210096951993864290345539423162694146753942274034694501942802424910876091930509856776479278307463456967019647995781468224455185337496435305568800592777303209219210667222429803246132671791605507160436973579557032989983433500534252242681772695623197207255680493013378651151090320855374346517408887320913508695263482400869156586324720318378547444614430957248028806915958018320199230287025024625116955258337000371966054491879493836027959122611155488857183953183740558591431962577651663402062759449185780664528678054633910238738134738133934303975713709138589091461288975405092713126577338768501190892308308491869436446963718459318629818387684954920500733347208684801313864559794474407884559634711918863015601132212352935974240781477308004935549629448055899012674064787701036838484515038147311267009713515540994779103909976407025982404924429818548433081493996236234123968815025670184606415949431227795016133847614430214853051551046197867982316195350537914247219900879650223857980976470605486135125837028055455233499506704064778381712278893986308511246028189059949582752721622370673856159544254586668535766585763704844022131919663429629186176973130529422243035631229509190417726038780741135245960225914174682343716495055535768634602507862208344629674870515890997955212030420462368989449068580968319688731049253442200382637638449959702355369911737014563420869864991846710534598807726796811451106342646288976043193430250484674676561620147718421034544710369446150667229696484085629014554589280079723601376962348763629402960524760790607944712049156445091115549112698550293030415070609107502602480203405138927454637786314102575237374039746236181443009170255276681446266987041675370380857669122203544292710289951076953927435115690751299851802445308681645849702574029973939448987409392654136885099097086323367331008352894666165458089519403394240675988855328308645076272973106777378145546813078615569465598206421470778758166881010987717010891857024146202432635087067736060085734716759275574904459222340504525206052116602248655099120904663583477590397904886826350076955940516668464396212619497623741003415992376011321511761275012695841010098750642443369361878428777754164676839024085521970198194807674576939623972134222609534876932447914721842718722423649700367650365288540565284997486565951062030504977481563739343665959817665721266822422841396894582581261945295730654183674577568034775494487849135347367859274585380301709135771484866365390907217697706357826366003378965900584013154755599937949076682815583995587536568697225172640315139458128489028027552351752453647658526200344537592992134546812215977514129920889547486322295920707648052009704510305173266594265409677136542455959047367654073539369356610369108090570547852141711333713636875792056441461456446059010002284301199242689205964156111600344105231169890250876832330598991631674335037782998881606933349398087457689782267630972800498851179623377672184044749410876936428693433830673810785140467291580343652648242782982955383027818907106362857936556234513806870302559158505139366613132500712769193601194633305675680769411777814203525945154660041102273840932232088427797979892437123532288334429467604480879285916358607910552354313009675129856952295623594059524531415358230519234171919740298828448616749174597124168494914873824624307780557535045726451017100465098845776679984537021712741785364667683389713550040334060208085285716618581631341570731699259193278016277663888822596678502277867063063266669735719922361115731209921035778021398727208398242234358972663433375733685382720937694590108856673398870380445607083783792065763405041247740041921838071236024221063349734856947082968650456150024052373202049326393553543396813819074013005909169817252051914797896112221095576436433176513387517858896910923350110926697411662461876243998047336792990519103318907804083559121930703902144942401705623774956918373045382320317057474218745130651046574124023800050591132966292434620530186399399883910904427684170340099036235794597118010564747143832830597285324703158054928162374536267898605472790762308104063973411653278673974642772914790055093013011240435729060187038485812744694234966896320982846748174256098825939997060776400818900424526789631210661915255131146079069553285818518185682115319662806519628317216895927216126601350492355463790022088049329513361647117962174994899463870866917355343151632351333805528676763817707234176588564394650203075448540540360142111370995078926529626595525578285521198425519233433643456505420063293735890832293582686377552262233443309007111889491773706552671663503209425221457137816194698826286637907792366813210217267829364379632518555667063028424322425792382975671543382537735764277917231739130630798561302541883110832766430191245582732891652575165298738692973017456874743395796309072367512387541533354345795830591465746639537868400759802113319945139740810122880696085080733692951874408583469283859272683083641254730791012589316029829889438712619229032845266590215318149504586872043315103780317063422674474025348936314482421109865074027890527431971749394000404562607126103440940834305695159942041128165687423622410780500646189150568942243739435193625017562773653842994900948139826389669099406035860537115343676090252810594137188155604112323334552814011618414275604874804905256728135976289732449552518788753726211536203078643775879103672175243951723547003625387532621446828671201607741232787090803173050119825996004861869991391719698953880087100975936571035213221310394660341438885276769028565700784453466150708112418444681630486170697355426774358470242334314203386694605208556819863370171155710367720954376137238542648045693033957407913487205041413063754393373095448383303941215588264474038004896904430800579135115876505369092964785803375969710710336401934986687755801373757206765683130475853672486180700502928139838134931618124742194012869446333670930233041106312358477209070894736790950759296764646120749211121542027067527200366807853271331303151769731133088358951393688931943728921786477497261981333880928860949941678640163899820099470883436458213931231492058022523498888809559452505636262352434605058678542051097502354723552484768601612388760254773204410231828554666254610448496823040678746586948953531014663657116653012802545350003293551300872521996728654282536696601604062627765337930440627111034902725443962709825373269874147640233959095672048387088624735817631765894365178225988655035433751657285831925188745049350117531146347215428826527056508396564261156832401311512851899162268067418596375827490757443569424575978727434371855992082939163681831675277210325612870901964355517120228518879493253823768625840170607072284248119582024830451591425279350674367530442897452041288848428603489374858695722544456344381419933893798039898514787538367573601456124732604960234961778633669466441516292620725981017968651313821482581339488749877729050357894164867995475965197346202164458360428839199193470240920014810972129255287600903584937678945071228218219566486455754732865230645255044879285855485350014369958706663592384099701054612938134255118996802291347724447359320427183984637983642667627837574408814792485773791539007357590742860321436890101226008385310726853338007197531971569224586374646438500516921362248962069332190288209639163971113456263505403538317385616843587048476302394316794941262314955602866815931879013424446440838239232286391807816343367290501967635468484599689003893989492934848466645506398904841873011605804300808615276864474372163568302454676355763247609349846286685147089477141323245049923794066923686002249614583207752471325129114654952911778471884063219985566497453857269952903253661386609029260428161761754761234192290407268318711735842308815297877933635442231140062712215991049570623886687326583859520383651779440120771787940681222251803882004746026115757316369884715793362315295642556542949890828118734798077479319773979485215909070754471680393085403310345962322070699777056900666362992118433745290432501829810258475104315613681285627267454613655574668188553106327792818678101572619866396764107925996708158878229757981314659042184679761599594556111146495186107412343949071521579621304104678078580858219336053480274972562832251948303095877201200017185821729585065970176287604073125042285207198123522185933643508300526329252419760570590327125364653896742310632363823039918116195576029511323763242885373113229896289904809084342974976026938480344996948874514896145882482291704669784992375042337138309912918992431083374374579105512963024215914739404609934310931958897211172864424790173218445716843330600094173923253561511609477819019353478776190094336590363992259655681312772900733277665396996032351397243722683140294679051177243687896276381274110370437849637361827558547040071254192912172337704919517833495293218893126032926089825416436779503380228660153716912541651720010495706144852944733853668569941923735575976753947101896262429947286682465639412894755365396193036549576585022687232925135784220149249814920572516782492712924322453684768385768076902581151167551641391652707137440764966687314462730947577361618183159793681026088511580802957296402107863072970216450118643752566674837347593842710830663081475452349145331702830598185256148086555024463114954025302142912336559064826520870454199060732484300027365327330454361970880072477145164787262154436235721763338622784820961835994899526379473595999974537690983808495153519629960851402097831388156227486893238040898961964571694584429695868584824157441239081728740740678866752159884604352314861925889773052178358857839901607031070611040427078295086512512838527725806302127155876032743464397782323509189610646165199839573170448688837472834720437595255234151956948710766573719388162772238420317294316946277319806563393833708127829673917944368124019338661399013392129250267097610149229220571434716751670282809469514953049489211097579990364152622450743977455914501383407352682551305989062555602291311729531976738131167618421660061834012777228805920593438743752855586378036071794235790227055189292650791608419365884313719499795501051810037404338726541529293171894731407191548576407909034357966013663504383822353010136606610864099991396764180870597210783374585048775638911509777349134398476274090236035537617705447486752709748880332794384110115766743900423176727968568913403527097483867634228818592174517018582890721748776635743098196134164301892648798405721248006561875966951159723006572228324891060711939166893557000708209068305649223004049238001888351427659227226402643333633802052576709325459648075305747381573032626743663941736779792634368165771610352418643736176805791505528050193188618767012516832879196129861701924610750412393150904273965318625505689240396936993500978439100655681460085263476715235761194916472690081164762459002143074224613453637744155111103555700246609708615702964903849238108946460400006590614361172672145968091022218600138917585580212180042373629690974160208303703757782280168330714834565355353511236265132363372133961233376058720622905609970268419394361564522509257839156933989601262713442418793229124929399230843536214874612282256688723308662086498404454629142392655974200469690868699781423805068064205632904771633555680365922162426319000151782624949726104701034606401699542026920116903648542371872549004584709255260640509912433505547844370775443061412534945815757532894639861500012146714425270497602061861635880848504983967611679178414366075115727610701405866889632450084739603774926867267939884310889146912041782606145473051209509296447835066084981863435339096082339051442953694064446709049422769740312634184761129407992256191793921624201882884016354055799158676222235486068232061413564098155944781748763590371831054104721250837970772920391202437123062252123525812989871026261867699798988017633147797587988268179668948850147820009973397395280066678856550593689043706358507681486289685425057029322298590516317394103374986639051319927990481897667439607240912255341697264151751254058401256404682021969608224362135649364643830402878482379538010225668044085555372050040309371913238133437075437630273161665543673574814589698415191877885568956458229977962452179624749490032027914867826991538985193694428486917006535026128732167982351577785700210671890951271840600027953088444163884103341216718000262300565823433374818019726680872204549834122277643343961916408987542217482928165771413150594019455601605411825936369817840636230183958841382772734085956006356698508380228046293174593802161213875066611236605225361807687491419289818029502221833115120705171133807668879212198022390462533203742782690810188982830540163631209418666138963112647845584292090647123083879803792368771006553848359340080952244829636015434884497925340925178646113484679297473081397232106309976004032363941766300028855418111401753338311051649070814677893796409885995142234564089831509611887921772667841801859152038658787059280294647021051420921283519868856726894502016218509931471444175116723772873716785139796907269131296830108342485663026765637066920454024661909239199382607159358895655115346571378091965801494993154921141525340255649537639771803155405517762264328384533099211783237457015840755058509604675402113719342636330193581788613109332535244523335579041142932283257945995151314579933623331613621655223266752302742664684052193042148635438485914916405432182951854450061254472039366874462073200814365409343026019833103132763176247288628475704984202631012459015633623979670823256653560051099667112068853808162805800558617654865235400722617533404597316795751571706011510295765531023135643552073548582175267090280069915379914871260289728286264605985693678419893880967158963764933628482657270306785784306084130917851896237117431676035077819538710489679942517834852614122736070498092155193378027844359291225106731210431092728716819306538985050310501510686268769475183155248059774368673100040013683898740361122505883760588120581733860962259481966919877358765086249114666228343639841218001067634204795160501960873471331973013424751888105562491368908008990091069432471567218479495582735713044402661565293752433820867680133043713572929685250349212348031763241597295013256339870426142162577562666830369143887565051295788699850409029666757233595866975944986915596878359758533117711369771325297669488547707624825485791560713367896004547381295512549872378088730866035984982261584237771329243727093305614332363410576568498409098916126505039917445840211190671003404856418716673657420163916401258872012877842775825396128181814472118480056663459883906290283341195817272598713335677167969277676097828380085593058201322945576315729199982914763404364902042182682461470428640085367528314070849667199384057924924415245467478677325902380184839853244397820708654757524282573047995291033690750557455991406613258462100328111237523544276604665024762476449074521919504330733423419984060001352960734051793635011263202649256614177692800912149561091228797527070146408824581241141798012080267842415418219526963521304330682076940731819134132971997645902525013972399974726028868269097102660947902633104817338688778924741927180307865992556439430177505622906255158872397491985808322033106500707077465613197773665620396564680800037251311789986247121475059058248489797986582673301346029960810164463079878350601823384239035884841784320327259011690922799885277940312870645569492798122186414402235455689101850993714252560780066083323848268635441451503532035867145702392719880948516679816875406556250883481708846254259750933378702032885088544451278781627182782518586634867348218046905920404576006511487898222962597224003057668623956126663408216115145860778691816870010385034277947094421177361066270810523841220289625913091854895637107635237365962207442506966229810443914378866318698411106740608685100860637386024549433304986505296458098214985352910596033981302956575784878787218578038774836114335840613278365225431050613378884252215918684426619507878889061537240465446281446886195564699881434514857946163299849536342572520887415994312535473861209810671707554460226961923540008183935966246967036202194178712335709711772797014788271386502772031117326288206820874039141617867369679163039037752099958332193997110229057735549725240441105854295986319613363757561288379273790838415414437733841156363150215769106097554829531981002053072244120575886324820229911496269139897755592022001132997599106613071034863169906018812936513524979869293123042552199217754708974963004724850699428469522312552739876879504631140831447312766717652180380157802259448696406178184600355493434784888048816454502841711452992338456612576211705363571902448486734320800082668854872057095754341501268960603126247739255204617566128952159341880577386120855334496798771517173338500897872880952102682676281067428847782316328728704085286621069799975130285341691319535507967352142937078706207093081719165278920884224939549788373123638865564685505085407215681877029566052631480135874769061500103047768212177527285552832972912287130850460130090387595856955972305219777151414681041440307299614130426949946677862945035245149543695432422390446978074451318887872307836005848943747252786561326427370956840038728692503051467179969204151711255319792338979304289724171625636469727270785630673704376224851402338563562721829509753791476155668644848305365383628472827858012032328267587367291653117284201741761182950766158145764286516106139163816906386745368712160848350674189779487710172604064946159964750379822167905895447389801590189634702325306146466117962872367761641285698472514717760104037489945099557613161169164272440289489827247520768621957248879534982596712348318684305133000552684871009468251626990241280829519711217029985184484226116000847520489054795794171535203007010530733544703109143447922290692803675275108286544987518166708672684241828497713701586754042625488342656225918730235266608422176018134979748122847268339673536025156953239982837629312283910931724091309179704211704217722885764607501889009095577777664182546918513895423016659857493342904066470259253735158753883591859909415686029488567265363095787653410465597086050746147488243197108253194354493178134971538241203155366779743978932673722402281283575404189420893743487845258340334206117261741671636576092624101321341828216948578684600776775782938132897352338495728104094648248793103843458318036587222317135638156809868708337749613429675547002544098346772650955499659447488856663257371370821892418231447446690257868402643676312907984211563409351221972125153131197844909980388010661280358591134037746975628378454011419247908218206236809205827983758103922444741683978723786554282261965681639400056673872862582452309648825091967367198143246003761221028136488399896428676708883224943915417864184048804452468671556962965144118418778599163098950777716966225910523478585137404814775387061809555920334025045492969551486023207183412776212901693539239558968849914760344389921022398474942178893671980339960255010838616002856146323285397408784168598412322729542578977082672121678014913529132874507939438726930323011144498248023872607772348398434568951703975815579271231335455030327276597939807192088802151964954849435678668788629750054266348220429756090860335950222408507991462460941286776711390149321568216058183903658000158676506902724631799460862160926175638908008899449830171018363561228261980625934096455564617749649713203039931346716837421034614607439975964429169418019577635031069551696638618133745975690988156846294995119794233155009086174632857617640236013184861684035483277290459696003639818208189798580165595027863907420376020338457043074697708365135380480341815314552718372080973941942099554890825775147975879892474050979040224552764241089427685322635871606300440584150704851437395612630242758768066316118890364776549480334957380087159425282704430099732020460283931257439595027948066375153915394492530631704355607975806233237717945141969486265962627288452274878208406014555569073918995152780805396793480025723126548785679308682417963652720915068426928632074479472718503295361868913267879425839215893023556088134477219886796689682011969553446430000097837295331072991651556804536932120716499222721016044092929288247028940485964562638404928053738145088452793406220722735472094639233451207744606412663611576844014732675358417424593287651613440068297539435158160582864782639096949597020217885281125784389020054363365396764727705452528539755306382912851475608097136876298121021832686605327235374788324524558579958698170321275730825142448408965791371970437010496100050100954309833203494653060514542193321176823049582462228926768411122803456266720818600213937004266313314370458622263769151411723558279956091578661019216944491325714308549900344347954853297086568177226544565419350432343676534302320600072114343272280760123460294092934058776824496245898234440957063469993242868070649346141476889175698350941219847370704480341722073280159946864798870726827490954382043829713771155882024302471820249219603456479439763757111169854748514604040131631579796738867906962799884238011571079454997452718989633349661805551143494353189226922744114300347279776276672910359617655762576790085890993901584840356646077901188555858812372318331822999099023812721722514501421296412270721382194791049829007076630451292693334044276804183597072271115393915359718627000100084561387046770345535104508673301312478265505510091013961224005473690138350327583507487597249474825813071796095247089213919359828084992510723639829687103690105825351483045731551486865762974650362959139815750143674963743695517751891722119748898320225362610622877375320215727075121221211356775336274908552014783564034659760414045812247337478104456220052294107629370124498522416193895826008581421230721037769670311866995088549240720521532068417928152496111131374443757414391791576652587731655506478641113952573588984005869383122683710574274175953972166599673666235127269260371239112925513113622069877522275549350267337938248096295573088208577692894875518665915311741445124950320421320051500242302113957873863879234867323920432586336081809521081195534959577251227216803461325668587142885375000218151300148965641953288069148766439716923434270557025952536470249084474377592335526620725517348018626554328732970296794986533889191448745575791534631558879667243937357134129352946768997602149439688720151938978732371440507604879613381811650094942429892247277607255177068401331020663103887515170487575838677955012699632825251901241629641871077844030324181560830011831269795677820669651339774871179912933897274853484872838122799608626099014648613439494965035526004315336077483201983442554109279164734213075920622401119579645927349809624133942198482692567899535034263910278556406153687685992956297519618445753610430783024835857884806271589617082431940390259678560906899959045773502840932219420819337094788946705333033014481740709610620609993153850107858865131548883232387637871466357895528620521478050388123933632645231526495558635682382676118787379977188331087555897440784174514380785657479444760017317026614278068205998198568842666011441750412880214413976366884632459510533326708824511053439234824573045037925240912026407659811187005713619138452200651790232361761681106986695293287288837951197531386095505704169593031211203946327171857560992752558425607777531354671849717099358795299575791498304545249555479641533922419874215810165517857906859117482948590257342585378722134827330173804879638926389542474520345319528652830141641351195788704311282406067756751215041025829131271158296716696995377175008402543589832800258225146999865653662417624406003442685602158946675072983495063274986813790207352624068956998915302229861915437749643551559829755704876917317297386480908302092048077322619054939965207005535514282710455471032699184113699171245487293025338600339175530815775421828764627606997129221873757222959920088858355818104911480138470434979741254963691344154411179450091685952788410409194915921022712529853411756985111287733686580111526345641754137632840859804619199093327708150482960276003606985309608380916073913939680461148739337456694464969797059343320843409790273001493150980833886312383601816073892420891019276093477644634472163445190086408613304835355088293576902099441100671834546962842596518886234711205208487476975687286185985564295367302840755958193594165756123420827382275813911595044666390211133724926035178786187732422940169303842158086236978814621167507248279798304816897057008355678655362092732142842855394575275364931605322669125869279076653680919492721544403961492286143659251770862653387064038666310973812310963593954867004302908381773729158338345307331873890069347189468448793922044219941830540395869417416219461824676361788155438314178736024045500910601848217299020901208944265716072056689197920586781478462703040585538825711315798976394741541836067461545786222967922877069016450939899998456180968490924458588525622348977978668137024242118362426071043917651909282578290040659912976046971966971783551222990186585299458963977149731742401634804555950648107925747702155184797719201296243730850691408393196552079468960302494199184323540239824727584464759686372130524688283456322751738250152043981703667601130184167585285600939114604840557121436774411340179393891442662293449211476179398775296620952239169308035557319860823366699392210157057519126135252394411608533983972710379825046998745959553903586891515803004059241801837910215876991468623289227749723511175151554506439131742183704428489895838218742538239281999050645545156716104805825776118445603276101435415731637208361748753529200465260085634045867113348732847019846887958981916553130451200340579148316878596774480534170213109006339711356846613220044152459861971241389759436874571005603741405683858249263295266076655610922592427385916162279696924064242705889795737213465463572632278357309903622906050966484059126953120182972677333889192976689427306474814791986314599428895561674459903445892071657986758829187730323260079849384880937493185488156362698662820713439123546130748961083596788621245676028054250722372619901522597008279243907640396893251773680314233774800548429759217327194131481000123885311467129504676941663476414822691047948338565951769092611616924045399764652858975528949237708608613257881688396064230280538570008054918847345446759789594098248599534270942547372815721006384730079529366093842504548704113712104564978697914290496054910660112970407501338335742720924797602370889166544163801833170579685486793545069412992327503060946836656646549540585437009171448832613964661209230686788031432233751831242890277610920546923899660172030772688648818785333907751150547865707594401039188059619107752420249505738343210696206137213780327467421383150657403077651307635392618912762299113802470792315788463835658612394123664239950035464747753702580004546786403272102244715204536805047016011300084341982517539455218451557955780278659980811154747303903548271129947064078378607964124636453996418397222776758015957520271149251919517236854098079007001171188821877296087509448360520472064391297737925763125139546802721711517445578050262267695915120369871976892575930721999176980893278361821569747557655981271981550951806827126388298145325953348967915837613206716389413133951726427867243265599973669053938085817775414315793529599818344557157474903423653011928962281107347459530142585363426862600976610524075425152644938114600927179194525718662544232236775489599781430563529201998839574156556268771269554350288810570954947181791518903899739557818806604361909698925128588357456330681775748251834560447460414860109128558453896659544603639348585841446915727263378460810242502604849526516638925832034554068739354942202132175887152949546409168461422608511298297069363228132149909118525333313281715397537654884824546005043129957167544548220964307798525638348995758268890386812424216489192142800928009188178806035460948291986200836437181901209774380675178210639412194282005564092413855665746866332156828384222584059289586759618130087520660923714109488288728016942110270138657779607836124621533961789205727353067768693515433455490477991755448982827010278850862857003576057095719097450715149189984060154242112608367223934627074946679467024684822743811083952105887704732338575866415234031106284920188741022283245108713194359694390891933073250555825881653744394848600715396087659652744927807765954221078331411015901673478471352391131760543671970343850538999464159255854009496821039914167988745311929939095559472450492753268999348495214965001753098570597727733925953382818003808689003568369423855503114247190177721683524777359342638889747488289560052772894399872274717899990324774981573953877087113946226291432053016050082247016172128364717666982185235244462466596568174320110623236753360348483079938837934525658305690650933534536798187592736683170994308014109506890876176915955162477921417544994315319496408984209396829003353508808905783512355244129009950780293542004261755308735395243058622638554296753980398811901437162776965406174853036695092241755295979646846818477238968986858058242635918435941543344976131345641415381341052252616767155520785346936500882579722983988016819788736284643420477468646233272336793804140938976142223170018806838674413516214853614780275226155203808303094358842165182831116224482775520963751388059372708821164409113573495907339399066563981282077537322504485384380038466178808082347201613755626479640102014371398319537336142094523094542946855762543640877263321943537548383932713039438378811064200768145783732412184151228132337183648493655201828611749670921096885616548715993261044891279895700215044603491709849260914224676416553388284231765070582170515060769210098693315238785531697437148502551859923480146634277165091866512719829672984012308463753392815393176671731911740185024251501990160745847468261934627128760288054544674760534342248878554451421857182875311700935617337729668893528854543403426048483408543004813894293858990842208655856561061414652156335701086487175721957417289066156343538416915407587454703296368000162114108976902465738516908078331477580983846473315032392934434151498235690555285634741496022174206366097969587534657881642080687694762272692741643740906034171715338481049665656771559782511241981369106212294401294391260691660413955013025355340403621032067564878038369250315186613197962296942178799613601573225429923360375673888745645020351616720896233670557880914604443176000408773818080618615494465633897081032050097325895334175809858586777567635412021348757858743536256213839828441756986568693593536212412237869078917569882641358356086667442796212743401661320649784263689455715820284991453555066466281045628617327589705979993301669609672237894287368701565161372844158459170786582159395531952563189526059783055967764412661284330000627423176019211615438832332800611804813578053638564013737308113346883313141295357144695581559041095224331485141520146631081386142075638013895404230954695710366599419793293111141500479430926785207348941098962874771209435650914025579331071235131822032411732967289338186227878489206062045790658183850249401653735341885319461861612228322556313772326668386426102063484513229642271545015637452501880241412676373628669402489110232904949754665250826315533386472368556010188260488547372470031216768702244812169139978516538712652708298706231021687541418910739344780121844077743896751111556219477780350707864012864248278044846127536905710964929735574502746259578048474976514258150570241343386607339038077893275132783027520676316932100491311850082483316870514093827489849668402797864732870137594360224872060641734914580315762327601229390946883673194410576161799814810057992175077784484801324697267037999984986803132422534331333508528430808234309454127466402825346488002355794978981406471693480613647461839866178979837084909743223974582693935635478853806545501005689825708386946272109047460697240706302093030935851114949931000123028669211316745287872626847878670061746423210898880065279496845159477902136221754876434346371542864525883801671811886988315497136489389997136802366134500750097425853681073228302995582450812154754227484682655352295262488606458987316365686631687377375060503407280656600166264316102837943820501795552194178805602572673155944544247513324531946387610013298618225609863407546447642861766369216263439191262199444058843667860456233712489579304115764594927177899645189091845861499313661335348090949309117348866082271961863371309179522208609517799990475556433382118808719101127481344646765418218296379250487058086483694286146931670390013428027801565124260430935659971718421978287947807551247325028335048661659577668485743748114029125348567077106454132775276293911289646056799591689324997997614832641089678047567816161788459394141993039320023213560126070103772158606529666066933518535502022560090653137548374699930779085674083408869146248447781593479174216071664295666998003348539775117983090246010422612866598091092466657573032419162784704079879989965722003820338939824741382073284636866374245640010342084481979009897226711686658611004464085068093176257468485715791579434138923753074257956050902810133400991437084903459789521777713232961619736042703648076063457931482350836675499699985908524943251261020559149684847882875227890960177644512587434386138184733676370768074289996303361222865006794281563905872914989716393580248196744878930133593654577683476676934927694528070593839402913175490149210856488362706647597693672190819581945764818178609600441880413624558515014423064699254481313357509804204946574522596870690081217181716373402419519240644060746350224663678092923648923913926489869513313657431298704389314094174296634443731103921162888201274118178007178820782567470360972910527055892734704090740177804713979985595261712194290861558451211584819805808359969388757989240013889490141296427394477127031971715490418957438151306506469479265817983052708294047561980672073689942667090614028875992314811838580282229095180634064421938871235886034171170526831508219400138323217761670327565604997725862227142691267754892952038014891506965631214917898962642926135884121573570988867307230852498408229501702942437985644343773682688390326578303750412077439173192148300962924193938218012504304909185985395202057661506508959012461085068690530382986936009087188814289803789828884003359639442203583090422284781605053786393147864058544548293635691404767260047929204155975325225494668677697605620091345660452982880438448379823889490365375986860747000817637251786316575809730201250803037926424556528357198653349941835166518417368986471589933417670441838549251499579966972152289002467018414054382387905749318380774926761311837759331292826823034024032658865191205483716323261065136734047648554551032563462434286373708884405654252077738580844667424747521501331032788366271300386065416891236710971431777828307930718684998635228489338512737556999747139373905453498885614144471748753458687185591824211549616775772488114076987043386311357339070207643426605610013608800820585981552883069144632447315364871862509350211165617765942297105740646896088529418239878818353742163947824410730794199058082472381501791189321582686294960631427572251172647085487650935883505807500818372230231713642437237293620908404972652074151872350540062024474709834784101187821496652294467932112088882624461646979249644663014440624302274315784349196912765903692636754699593991273741636522354515758980926261783959624347361910255826428164331657826199601668351195779454280171794834074208697742802621213590412601817528382255161304345225809686166953274237420918945770674338888349316493873178469060883132457275096280678308517434026783503819758542988628068478453769417010581359302849079902106480097374599663723533918116287589657141788943631550139927357105884775237503152195238984549668303743497740370857483813737128668533515400594776153219539215192064921660765951504484126969538527034899391403093687640942285922116748606273289861054207604038556051836582449690713408958604827047197221405485623140311044277955723897146220567529645635797201925926641087682771211991563920702823082374402132715152124306251211245145061600415365116181176782697583783393434553711064479309224857844540281348256180818043616866525762869635447112273436659120744095363027033104542745823472137091771999075024243395116020815910118228794274726072060372407371772407645954657104150686692300508318101489584911980770532676343639332896051220326878153074972806521728522827025422828319779971660621451816632641089092133473704343924928800804599620698989788401439278187292195702163187358146167865464569502872240632745540538892561405050018478172436860389323941826938586044136875579059942349671413042597226079406760509811569937453041758609685729122715053557579784480943595032036342592968395521076722667662909587568031963793137525491413052355671368024062469493999190760169672292214045990228629660236038149822000489908828996765174541856599742123936992455018044351288612410443081146154684366461992920185161222666809493322511281682105588148011461297474503519380200002862097013868319982022302837890755661880339557809256614158867155640501606031776665006216792664453742589458880224310995021796375610195737124106622019589365530827070928651411953572563485785541172104126829628704001258921782773807126131422712434844910630135192513285590201584100880971558427316862741228243402235170945494718650317776719669453734907984810505797263162354890422798623401463778378861685336987238547828014247246012959798231484499117893248347692013268544122895544231331840130831369086105247924879537501104472085204889883457207486698349790782395136634323565865789374611271029412333001069523291966652986041723687488253582771602914709947189138808878155963020285421482561133745093145522033873302039729752309797260648576194782307445496689084225021830995076790762241714913964974139059569433341835578936426693074842123882312201294702804249984246400422890300040117175483111538331825614523687980333814027406715401319074866998495235435472821391756090502620378931009334099281490054200823130399949282146775249683467365855702427161616849550873101735762634073057363637160053464684227183167244735633680281811968259415728361658204693533722832246097321677412850033187657030022454214683576018740120277185283790300378498639505656471457444992056106892058530010915883197728745120925883474514194065828907331557409791157021417832744465500127566489783135275087743322003190841792699744778028377359104532395270060731487828716234007961899730692207667584580851054654256489388484163865258068666850269612775732053114764532548985882673005565103738263639526018183739157471029195577284197155622032953037352306104412058870044917987742849254478961961827892299894339142584233251682462557940018077610136622927401611160997485368535787062564983968112552659425262587849535056037074304757151081223716194630868268957615192702586318189829561857251944572527248759918356971048900361689582053993276641626036735395641825169132069425322004764897474399112519924048447019152877575240542562575266642257400240663348115607721595063839880772399564434055981377210849778273606421991260192391581054435784720549282910300541993145896797529293460628625591001894188002749135752119609767556676122177507946253070064120858097675325292200774769170393767361555240806311684636942435265705275645887468798950526604325322996900115606766712375860519627563717487963673719991967970996513935612411874121314352209370088871569918112197367486992792926277803518425597590729166366705017727399802093839843042638823032076063175191841286361309197508993620890931607650273617653727300635363649646704589036484156286936963959704269009311649956256716908364548425085463629477421482545309347404881876648193134742396899207828899726829916571252930570617230997622514324479988968821060910841943344613431570459792678194069577418434120297534627102206381996469174274512805974577053807769599977101046512777853063888342518401167841632507789068874514886445437561692665011037274747365035488454073050110701798664479663434735496683723648677004392775001896889320037935287890172388721462124718618278460045262890309781906922210447401110189077151553826241301503948425139665767831603641012604444067829802687365138502167849779763275659599929511913209852213562644450434936066323450390792262129636890530547398187246252492303889265586769132703524750298852766069654962989396172180952713346228019663049034640083408580349615307705727831428003226357817090865804399469029280553438620532289993000085039083811306208512797137625192129608635323068448523837923029388524763420942745307131017998962477989485496575127871711356734394689727288701948175148200333999086763238648088544099934860887503439346569884980854672377869287235432044363475886667505031886143942356790594568890714625704871679780101488880405584552222067739891964105871929080480455791145121840484032479176484462067495658972689231758633971318632536886516321873864411568922390078167550037153085327800335012664562603844224071286508505249077468888292253335052364513316194894020646491472012818247073760419978729306728518061193253416840254769111697260003456692393103044050045670896902310086216552513366862571469916427654315332415982097339594522692497248586071271622976001273880749935525187849502424854593196196591153593980954097725057761790470834887319073982271674278873389248453192001652418363419426115946524064003287720064846436378854824806675690145217050646001933189417787817209622864390660952181120233713135118555360252208995624908791248270522217118140298126160307590912666427429286156089967951307871516530464522686825627814923903386725788037463656134169958776571512805872356792557564249131776292282015141518377037420588651115401607999395006346980354165941564644845491190620022864162349258177496912133685684828518539670859486482029896909826685534941100524108224275828713320789876264514703848480174941068626359630295357223094205486499693302264715988174712990334013440916509663278942522483001867976064029026966627222395851187938416405808191956209082464847499302129442266481546019193928590891053653917156380935220247590732600587643682934995092584539629777326336318418807509826465557830608887322271062000877853901138294609498678232988865236187629326113665695512444356403847054710266546497136731665741417404037120674861798567627356290802608331748728920308866918590270813432391733479772768673194779962325527796295863584046878616266286245301089272544891538978720021679230152677528433586282932097740925531755845954294798526349878918410901666096074312333417499850718981401580867137967371701177452159356979430183428547568273512916779530270107386769343286989298992339072913455542704243805936082271434148882320591080201371347155001242874700680718304940298194421179406797239762635425091804766989468210395294081740970387993224309975899157381894634383571240720101591031675605892034559361227732136485123268002205479953022249370245564993551673748350445952721015009551594421284408490856272260382165241530012222968546091492042600544742716025419997751498336265002560901203883809238656542210956353442702078586775737888907229630031844631704717783557807984449857510212387656338155759589356548616320518795438198670586162505001282662705978411669532188430012915559217883767967300544819699872594592907770139127133466732145479065038477875224463277670364931492289668758314974554256862703203849618200827002908962710589860975431862656033075816299173868447623348627363867359371193617765597722042836334348414591908204266838841025893301393084549338217874786886166840857485889740816683572185826563610339142969372213093867687829281207904291191104583540151338523546721843415645981134120897333810512018999410049386899678604212177861486605551842494754235796668817024373330507865247962474019315015046609190216176680930073423528636867109235729269513158125389672567170592290974168776633871763878816887119654479245097778374329884586345941502560676512950568053331823054343693479494269375963977358881543674180964851977943642852684586708224226721100163267622865417508321114352962052987760051748306457554467220130059632456524733653467925952600042653316035359655509619971692968424135842598854804096010992602335855446742912992065867257691520520882943504612279750537186486102639396082020837402783398710540821346133899057860203282821623410764753866503776384344073659264667387080272581442556227567584591919401322883326298902849722627470650051898450355478818707765702525031875144211141975222096291269359049370224694294258988875703780410965610438347651965087353378226568681044082639561916432064203394992417358128669796282231518230168930655778502087706420630855597272251776120996849522137282251852448076702333264615707046004856818432604609983881086098934227454831695249652163278654093930681636414683111879396177921055368680947419398710439123054967355752270858474228580625749718573216652200091243351201459028405451905496353509350473653386091525734096421726109844247351622653580842514875262564746550853487017564198456667404748208596079317393831130976716326638167687516948656738823379921593220773204420336084999056320831900881731106068213205306926894903989005863737560654460541118273890241124005338517633040371079459260454999509282929061363267480913203880203990227181657670983729597250043475795482924413665911550432403483970040298757967095832471009462953310739424955572068452074647401431170106951645601316323380385302507421427992829756999417083952280706043364298300024210408443299657718435900242898711900429449287204356294725311999852823785101081247855502261627538606936984951140867755279754088413368127270867507129545033661957116509792153610114928127483354963610446342472603410879458816638337039750611955756580694505347981233862443723525532315846551654933539446094970134425484651851258687316246749741653923983812505578106478432751498302493709456739475455662090684833444361094555292671700082708843808065496653960402960361646730218074310850833704915151693281659233180921181836021145284417198336405201047262992794736653919974739550557727988041999684578243908600635472646458701253147373761914914601123295593827051340873036756264201302216727642380191281793110041129504488394796790173109039409944502620817315653505606667142586771275946079694567452950585614327377041778676043765230797371983081771370249925877540724494968835533628745951170188523725733363256223903554422392507931243823177643927637333806007530003229322901256769375924009730597394929459295839677274974834929153387173643967886781055934117818707809227116665955127306588926091336774717944208838716815051043899238838239086512004031608136992682625983787134405826994659997260770800246234448537064356434140437302090638981386243446728496341550060151570478073567512269038099660122390723126047625943454752861869978387417476106656813950852098843051261541546871732536394162059773527575427777356115379613939792932981009479297298296542733934713316185743631998033780198269923367972404280459211448545469556210324381469916762700791943664693826902728955626959259248425522177712032678046980462011941560976610532325010613156520114340684404135127379777407067841609952844998317435893827541398668658852763514369116677341835695072755436501046607747514520316943604529843158765674039507796740318272151192157353292023543149865259737214136972668444196697233315080709814093018294596182030283723440111745182588362889256044494187005414278219038144110155591903084407992031436327821922245093478113286840827878733153177402851612843072820307947058494990052306218596328928372923490535176474509406582948573591825825387978624457935794207998902133291743812034689370621364948873836094647269016376795115859568376123147447803193703641581739192731058152866072944230779669709014322644733976917133786506575673424531878396882189465510777307107800202084887139283085361417002155669537630866949451937505763272910381221455650589556032122801698118618738041264835124196082687227540471071331830116414104655821199874503024702335772856810073004554821705453822441565773710244063020455178646913836282447767564152096745274440566946618975706808263096331172782408395862559227538876346520004901797835861833889131610033264338237285314774780900473787956550586316868184244126835913632347737741850201190585687989161587294528756303163923025365801196394820783051611932836451250368460820111991303408314017499566877316005276220501394856773500970493872831042814785250772283431480762484399274255802072901530051790332351256151477912864486176612190906656364912817782318240229841847831313989914589045609376514481520396928814357597096539291645796815036841353041631566019838606058131361811152961127057073001760554282508962060807223128867989459263937540869044063859944161293323178068318005725947843411360131580222727448173511950919452699170872552259137126363036319361648763733467143293568778575554096384669759843463751225980701393758337135934042169192506350488653109684497530195189863195902198835991401430119244652084767947717214240073827830721277299808182334579345824240564317527490865376201715217577635098133289188793498924563680922715581219718336300617486797437065093007004854293947263773636969852041344648621895204107629285575569119313361801983378902576677620781709121090364182323122653022686336172030026558280392480652437262329060580937551758372858148733723500815764774419302729432214899688113156308455579735980782953074062688812466551036642568756582611454191141791884284390420976288167332131073468269130661777127533766018361318244919664659246708051149681179165834486582137662355566342732519245390575527884632482059864688765583122635595068665694470596312364683170361318937463561207206157309046789503048097513663591562898143862829311367106519771181755037876791154334620228661335746353517675221223101699258102055950987704578755302753148537229335341292158410521635761877738354449908899905738587852951462193183985342550934324066926040526485311419932776966090965320124020789753403812273602793275902601048400138362995926384663275837461900511873452691467014656171870698356317950983622309361214616929463198940970837854982300279983669657519504166072267770510263278647767976504412836270303756147936796622806825696295427269433514095202334881455866846713227536597423005677427696889898616563050748611632948683063634816290680876385183366087007748333119080467151020203548861012090861194062422665777564391900178515064353207643090135315598478315297049944680712855638442917101936913176218148752882659678438975268587219418432198572038045000855304283943916663560529675106171499907777142267470808571502531124985579492409112060265722255737932645251557312533615925200715861955431118628889203015118728478858165457685527279560039351026146581944998876527446414541909705996240621525890951804660381447801107451884778546638216451338243248144619917147326857460164267071004719965625439789683089334225596392605690363068147373374736511811260149716803020792466645982761128320804834147454646691473699727192898278873400349122350233304628100964964361409582952583227931316937342673432025862494627695461914446751345046668162391634949434475717337735775364368679941965083544955835213193069005491144090869673164268965639579250911187887830071683898748532276567534809140755454938016847470424133742388149587578150779422040364562724687593661364102018797335639361253701322418995366620366705912244232004643614566285586751565960666809804990077998596306592633624355093641014391891384720747658483518282321249376577013325754194288896479100615845537829866889384516712454774606225980783896390900707654725220237443669597278720525569525575140689442503641364064379887101888728873421347857129836523676030842861867062648077549551451552622539834814428396839158341201209628336385568759349540005083373446061450061753536336452431545813624452574901066297064921183808104137418065163733951940512252393888848399860357293917233642808330008458657147562999868719587072916194475130516080167200262075528468809015524283878258155184421142585939931028674626744954990746268688008332767129277170233634053164908934632291141150338551764810339527792978362805511390294362476539537149593227063572630163537413271911219160161502455289568815307071874685018870501226570686380845438439491300406995362198785830439728735550126113146450827828587626452306272456805816411669088861716039236062274355432955796021933913411980079588097102217180135778990434848821235260400224224644358047526551276317871043397316268420061415937927437952245205473492640640291213521488453604755154956040166306185928450583113842224867228938636156544899677177197091605495957255306311084973042550910638664082087440395868355928980699823353093993479180738630173859590420302218272902566099247869952336575836229284170744959105176702720468671659017406805954050495390545778054839742842293091167797458330159325855125972129632423943944454694910691264000954939787249656230413634762220041514711388379856214939929767645114102842801805040113610912200450894242861195879907517179859509842140956847277642929528558459476112589372235237848162560490207045231340747499886209680097093713253729068443337618633060297352492991235836315338595796024896988390102003293875315767376778196825574958747054322352475354487396035649393752336149344069360222323957729380041383730914108616612614854891828355597765526986294968181367120446854495175702839555353158839732901122282977594575588385077767327186187771584905970365260295282460498666859911624655712148298021974824620464165385016531519639859940136875252830045351489195911525379788924087359668845171566924930410748188156449853521534048611319973690242246800308816935997290597802704513365694467560073136626605661076996708392501739524255881546813981836632541831218569008049219388819802278025726247089723427648205420365389170911593861255178289105097846027852204494688768596371477464248041420265162012811188981551780186067268543824934415948316743559796045247677214301611152638084108017421905848559376021553655127394991815323938062968045470467420600091249900544937312689816167329028200784195188377680309082432092953549095182163121360259594715845096434544651919951942434612917281353515700152763029592066023477790176689819289065314712819553479974378777707075155908444539339983405031930895662777505437620980250236202715459112557461280604627140546952073966132115143249420547820129515374915444382809034100500794373050279981475956911747894630809286778533104472457931969214940341030531256212665738725471634513387235667399851406205253764137783899818090126341179276429859682325728832613153799812685045382967865999950687575975097780995920954661135207241387969967853670452861643709400475038975501630577977661527083018764786872900272892001136868823020045519664039295096307703188347463237305290148051425104939163224171990208071075849754847336776144931741517698270058982365403132899814926934775726558336456491895386307177441029506603788387373469879518659745273187948380833441273701590404222216792572868576578863894660036832687641759443486405763105036621716899663569227098545297624541984114056155250008773206762812896568381184290623349196687639955690105272422552482921579120495346330305723265050409942615641033152693803991930658706524046725211888872677512498331793199655685447778037835913215497237337237885268922945354587742898939805393049041034719969364301363809430822048596360900443096850792679826803075779978649655851086018513769241321468428174167240513931673307796747771240895171140140812767443323936391134010610352893901630773102325948915878215168732050695484262266120117345855290604834587573404873402712031882435053965574232928606411844724065881373490067059408194600880919350178714897559115082992905071480652028399540991792849544750430343565542866737480193433143533643316173808024364634769024034066629344762065922392999534389649978944809373835260019028801814141506553109320026028120832924674669327636070852288846626862884647322457883131844539428492208746784790645833168984448788114351734922432893979315665491122445637314024891773072912523774647423005536215746351838256128829898459076433136990000431521650356990671863851632483908695328040514362836530377495218760320005749052093283473370504966342825306493004967050762935264036268667687270993920623071586105181655663192639062908921060342347128419969710067581777340999897525159213780947515204801529771126615629404187396065749474986001168901467552583435497567527376822661126690770524284251700208633360731799755414546171394783493662465593077115948261135299176311626514354817378901323598022437457981281684765021836301327525165523188354040660024354884345861713373253146217154791958698715771043715677213479929249159094894803148339594247569974723745113379552626387321834446030227409131536639136589684592157098363917188950422170076990853212710282068936331427333900694906539307079208027171769644874928070545316358296642448443302045002842377943599355678975918564839077047379709164985841141660637177708565081302587880914131073374715185966584450571174397230057230502649254894787325380742520882216964609055718258253199182941752235978370284362642246373466892767291111599076898938176260618299492348323346725138240100000552303614585062403979304156682945162560062730429325969204323239434169867742185770598275426220532912225236367616115625926342971416970598723916223107090954192956179661962017943669646568638877463011606773170998541469385087770449486233544945180434422589427628841057047531957946913433925931740658773035010748756929578540733461426153758563076079924367589204871882077344819983783810423033254118345862981839887405152280132070075268075593926728985205968971147756186000570334847722453923032837329318661051180704264476043314211482375958575438267230846308635497349262727132882115965336547124103709210481239862669950538687679957900067858322630975214928255556678127724079232527253246983807986355700657528306379747038602510046247292910327350113426100643031753603190180473783171425190030757045099121686701880918180590304017862379219852098265883386023645704508772039151066751419296135447061769279616600469092470220747888599418510556361443948756039523847445215161569996031653950759901332905525495278534734314111989301019829394040182858838134333301969658425912605660226448584007054949249671818482587398099215945232625379253660741185317939573148242705284765904274776593209456028902194945832799850491578644692629628604212529125382208893308408053763577954345137119553061762862976303640587838096783033242193594643862915069394557483841772245775905006490874259062260703847557631470377731444336318986367378669691849902254082540748232200312924279930577853813938939468962995403887807779416682599546533870793919015640434190841365949210684996028524644792417945818910248289004923704871915367144390533104670918230214344230686668430563826385215152477533393796625972375168386742615534155008163042441155771031354844768055975083996632290919555533098572989270755697519196719567133959791541296395106374792772184659217278173480212049423566563169279250408566336484878019094432123214773649603378523437130250999285722266613780635810751450271182760745001583890550877831683651183230517151070115072019507663656644499755588890499897777046781012874301515109368208468748895317618140744115326307265266802368024574161831741081438658743410338643623737680482917220634734862168226208647835430333294572246234296969799986618432582440048517979225785579465262720410240154643268495009513601780331189676131827861765543370991789152185617678832846443321729735589402298041441320216362204887704767941949979713429395112496389048953157819180732494814749788260505592570468260666320432178463796007601950009941114309145321147620651688715791346492947934540663327389669550563025467717592860958036476133792687396502929697278090619142700983579299668004291609151799866661524964218194071306715507876149236789439762067476002784490629198284746456525564127308794157780828989383401937201936545422555763541947833580074785606349559236325504712269272022931927822119466222039780532393428808523661106425793072463270999672264352474715141866133523246696254621232698287999862608626544047555785747051821280087412088963282641940823252620679435251234358494704608981133210539644911594365537678554086854912175598283396241839728861019851835175601382137485621552985296165759709633175276327051873854832857628035473978007799773707120334909164165321897790963380698466095850138602782142975329104462262865288331380303425835009460844176426523122248369455335448650604917672146395592415214230007255368774270609624358604079089778608458100178265468525443414542318037184013066233321704984856589583735607718659237866914688340144421319658863763321037377340453966301876768840149347304156455571513878660636630245369471823313874806572888949809091913109650511407700632258599973761730241322378581099846387526708326211033665028741698643987433843595426486408686564819129557532407314534526810494267490395518786981414682176968936745357636667562576410186034561566937733800996468169742181660826600213871640570920265109037905905275366816227926650700794047003931806896675688429821736767062274792922469405813717656578102890970147084660904310344775058217212611407190598563881983954409662093497006958570044162001240277106909850355766797975831718738038499737913251736282523486965792383134989331035376940181795782373526904024511863293035468966840129807102432995997131354961705547957673155627362824638085339048922322137755038972383258917563849159747687627500701380622674285761585853987854438805197666265922804842878366730417906855303883388575984425557388784859273172142596348650788960873723517242607419610518681563690471154118860395665718151244993848559802162912690324390909713050396489737946361102219712529121541896248058440514577150262409034154925464718049609520418684993232061176061690219245483589826811940900644129675916296204683927637362898205408035124763028612503946595239489773383706447617978479558903389913098697874292605754741654994502614036279945401047072434877803527575348367237433203497612295116349133283454731240183507023750037506568656410541911006512979051056977128643797401600957232740633962226470871536676820761835673540882115364241707163364898481194648655440868022840978711188892175316364395910189736325350559336132103642652024123038799525933277454358696173674608752921171504199112602935389556331476909773753942074857844437111812584221120939241950911637067090875798468528396134886721971296552002729707105978955812253552448337488243035074223849120338994934710070615052592567700871339740040924903305398056487112781312121694057502004979690552121165645663083792781363803800641252217497513785127770335164151047191350328082833625796616874674341619026916538164705599928168016388891933675316346331045980323668202148795544225136407967865008141056907971526100006974167363991979578740936089606973209089336058209290213561517072300158178917801990986187574327088248372703722554971656567250323922989365016897322737178349878792657285625112009574222246972464228678080989783015103557834170798603487461242564253852042731720452883379135488090293282678590831783990663804631763359781557556143862455628932864111339001513862210440381968158878051337645421222996014678051687127696929691557489529845484939703885473623034791673618338136250828519903225201834689648056143207042932677824564685095751236627627579175452653092990567557595734607251897499313985781637348245338915440044197501453352093799090622863912807841296234591870629755033113894820225415895957611293411433035590949767040210796291127127110972679762168732043360027746792306813736254292968908261628209981640308948520304500125572553787193440147118258988951656899966564599878667665309484765757598013091408544179626072235251197569353631428445347602950274085057369243312924477781180827505436171965769838029675560478180403037254562194281905919344227778123847100153386955011652591711223099806748804213635694609933348148080347879974402858194606967547150839393257269833215323088465253924409321170863980021376164640876592340647098225285170313640831340370947907738008967541586971076509683159904904008524547101800381282659008127207256012119534280798436277066784799384082111342917338230513860901271065502157442482217111306883218308409829428422960750382163789173366704667613636208237832778926402794225917781597310041832629141688810500973586976956202990397029295163270126825170957853250660942253862585308539348621508350876426227185033896252889097393419851350790922794505532427251164278189098224576128524377906649910164158947950680971646416730810656962504560785702430868967302868114910428240539679471850681965764639113018036599460973248963624367634782705801388143017823495470991072757377960466490988145545166198096887384477731519598346225261087460007737414985035249202444277548334342896856566324827252432941811080156401315734273728585486809645606608774144383491762056977970699864286744613421919736101192653696722382168314937003347076304231972385154943607943497165018640224388625791116748440545728406187872629797584039109848590739803619674246889394163375093781834614081403405296364819312670609565923595874898655339493821034694579855491784739499272476324360877422389600578420276533954193693474320948698406696380297557218231281362146568095525868382736160152045071395481596273063272680943872908693347178485553127219986075732195116999570204122940683204365686515931057678290030738156748613619991920966174746178155266226264232496911734638812588137444477021372247349541508065176230912149134622525937075442642181282220468978133812104839610189858931262756612477749838714921239273781955866723316185343935612430754882625676363785339967480044695002495041573717345331344522738427008250964857925844296598782460774248182721646024914231719687133856230572202391545909838387718148787037961553749536693338316434137537181416862638344562740337962829042685652797418324680343822559495244380941016898656658403805036561942647165697502662014530291990565982396059309182603752282649528126495640388800619329171685609851733769366471306562696818889852046196231275821397528739351553894632600766022344579013968829628466638926653095881527272759728086971717215353943716748534507111013524925252138084428510875048425452992094302219563119863642764956439127849201020925417422843057210503524671311228529122592135469814275783860384311309394781246405424217688006006278960953448906374711788312761322844669835580616357334450790145839535777532663883307564565550908799996756425229157787147922273714437362933027969311400595320061844493193012290719533294273971281442919199255304669606207975585297750964033404075072291002034208620487504383542308908218614127910353687099825523047825767463088921969148539141998182899369815351524412631305231301009142425730823174979018492762961334783384393103807626079126063109559877253595308279699952092833434754218916586126169191913981122757407348157503598922494260979446997431773216607356120022555358041410900693717981873797906005109044248344686777222236589742016580801253278697846849163488661868968386566930015117878371261682722222494594907969260512734848804600690074706151090687741419690473001274339962461511439626747061207733607114250572641343108312647300395623182209929330876499852502781193355763522869395061953206446923560743267816638621766793358224025586685424249918186284627743197109438949038306236270018056712071814823263157523997249014619064307379551916494007200987103203820662244561574295145999386127122504696439352530088228055552921169668924325888457486263140425402508172395537927457154793659723072692713585775850094866645993746943787325390774504551325568741872198748576877200690927998330742425341230708950869602025441672169041650695331367649154775942343881386531884819975720911704476713745748627670240376882224184416848414021046981102472880677423993482816826153126180232401413119559523676707338866557766188847372756143452501958381689607600716314999197150934561407709817498762015969571971365904450862199080832967875140056329361560463600575202071043797831578214429869714060925726622582698439182047828872278064340858910892970546518584729973043469293479585165092493249601095640171755530973750130433784556638851896427289702681863664948663938780320454269578647645525741044482500606932955551287488544234349897544651041718175642322320744302465941142956526849716909856232950188084902823883345465474992509679473955952849471522681120969908804348018303666765681467126036053280241863605420594669274229285608247825930624800825612950009856350934877330979222877155601594498863311151984927954311799481131186890864592535116795657308797256456740232549315717686012675763977048784681326310043593871167673165920828740196631593610790009301114505330070306571998817472885430233330011633513807807509283119962316231278566048343379290944207902300081425493994057030384065968834310921575482544106959789919515211844335498548968952547881141255880880482602985224774589780902787905961571653444434658768148512956650244264373974585225928662182235812882597453638630648012290858474233252131786627387069368285842295305273200446280443269872237528384606771046206618051810860795702172255121538388380804926128390168107802779002383324689531255571460496738947553835568880132695440296163803221802583024306721524177760997090470631341764409196173489444387803838512387489901517342791724407378769140919831157337125943503567759345906053226063873141126076395357906154838384933174681833435443076722436323249532075450853621652550172232382676749471514099877597990353711347959225917708114865333193909248268250510661803017471977545631086487421272604381092627152657307585735867016146017310836287798908428055273056410819865811380398188913343586237870004525114093392432614829060761058891429260966984264778448068949797428086987131423801480421553842980075561701024325327809796196119214066666356834441625052683957147181039718194987854111698440596505585307136435517666389036748291943053309531621748476197427385383345347669168319961108417463192632288611167469792728841624603061812098314840948851017674408764060607772661094461947380292380579515580918909685830784229807137319899559951949612751889006132581826934083653896837640455954254244437730275517094289997956909344641959484883375369521131245465008323430986342578118854070227142899394295598384065787237774605570503660949223192393557148060615962599312578105635077854086382049189303365943452639189247905770315684719356030013199685733102719325983588659105811561230050860497493926122553375408939244247544362461638705627053728399074719479507443393849580954051095673553606385087762454274440148169396112941856205054508109918660188868912449188240732802616914392887462065755379217441258165824463323995851212744363324459155475918447159981122868320744185632561017459652444963054286753547398554197098143665727903334104091789005500161072055618186371858524485864356004975992443912717660715195253093724344804987576001399146513072623759141368132915431095775013431461559857643171941130870726582394273393166865638320917708274574481740970722633093282636552215093320764707249190480743206882404745285317120574125049022547690078545017746291402438609310733392571461192761617418482314750586849842218985314550109513362049860999926422438379156690094487611140518817041329133425849294300428183613900256418002447558250532680390598690944932045258258260932795827858379426791580178448678919025561055851015400201250240574653567031112548253616836270097718702905915692446914295278754888594697081130311975500288921949020849569782388711857957298507639800145221548263165788977460015345364754796820447669051426862136565970012416754347973656628218900802201583779070085391554094188414902118512470258002029642649503850987755320831766238800644949903944493488986128467087137207301820920882615207400274018572616414153674161306789339938899602256583347116903144272674228675001930953937658939667885637239847675234884237250618900722636133102042012451847638396782669649813045462664915016046220493990526119174431900117221588156731227228813147339378773443116392471484050174157022455645091707152186134704139666687856025510560259183019139834560462500455654487560471068435694802723434111786385783219850951079511580780660249323260425864119344867754800302591102199214943908414045732582668642485197840152206398767121224801310053054490734564954228565249301549434710033297335551744376799522777344876652630842582744561772672247101802961499561173731772898690860094611794296507393681937255831864630007437959378897892209936609968840920029161768387269051616659963184271511126997167414185188707856249480928341697683122431644064248342626791757233597827144165259918790772990347053087420428419180769728327059591916433377457558809299532654121390192348137060658539723556327422143944260773915653455558257263784513121153505320909779399027252294359233500766231495676496242853447696700555213844785701147745720817839153190224717679698240693542010254983096356284516441635575928794066822279379523003850449787331027677136797975127324193472868550829516542982216844418035924208521827874098164185207211483677578262700993874437431869799781907294793810810239964144275915186821276071141330668422699858574266644175682942323875327371714530471305073804478244214676280086902020057551563725050080178352380818002737962560508610722154168010986432225936632408124629953212088655655061471296565294878036867979658140678798881507583192144276329726251768640307922662083496150885536778619971502222576853504385408598720334469424395890941240774196341274079177688795085468553204989182409941461779593639542851413810752256524305100907986565443424410600966895636361246371678634827100461146994585819333346897102921697263524100647179909323886249653572888625340071649263470341857260877286939192180438048065515747257657419126141377613988240828060861919988107819484720256206631807523884619909579157549263135412242624325018769827549357220130556647150826508800950515453481122856613183971088510205603376217473669360461018313708999863697107807906163178524375493351462920158963072350941551440539447557752080718432778798997067226249603783202835721727808364224996738923757424757216604226490777962246269799403239010599510310076798097227351526236246385176395633726049016422869573607516247605628348325359879191796961170093158436181965915859624396235653194713162126612175878579947420068246885442950671343293684070708386780680951876334936649880924200846600412515866287150810634009932938452235944338371342159960622215238242042425672581020082491464832814383880674242265335931896030122319513589161617318461890269007907717345249274503195291284383123444606828591511178279689001304465720993220069340963307085943460388851534828379240786518180169895952115263362180957353690556575219622888891650198569955597004011455588450349885056403837422271092914966611634701688534286759556894126390379378952720963222262906815077138903234234782722535618077642122522899217263870932018673427625678579495829993632965253837251667454155213668246901167881001389419484406092075763465702911999124541257119090308528104259857349968390953468617141035100021137298408250147178489842848429670851442664501362026255073802385620524387945498103548540466234361876174420864320267636677804488952072430861514172097355842162653458767136239873355199441868763355411108475855440884394528141610749019578404905938790593471531036691083094096570919984064480506528621243835316748468499672319530654320729254435879917607395563513111192466966570581847272062704923558135264662032978731519972041886727488788233246618705428972224395079205334111691453710768131551263751816813534505000651775134817064716728409083526511949202145246751291147215827650783530996837555410545597492258430635353288463446665796433604254798931848644122273961016968583255045569935769662991665145803121506972072229804659820252465679120343906929709817648421513940418805108097139824370627619541951142289095341193344294813402329092370869855556639441836116341514991600130508425404551034028130546510960779860738831589511874776266734021714322221266773350701031428377532111511040569288523310090329898828810647451586177208952418381810661590821992975775774026864456843472648260975544118159885986879645949367299738036780705609450362340012547722769362461157652711267629928488521059155105233531064903357207898511579664559040491568758789070172265349815688030507451663809431743549094311884154570532178647445996909257525643663456863654944648506371156912664655102360184922537177448892871062852621800653728672055765023821497587093008626838586463936109985178085025834097351974483707037531792173936657732261243727277269248565895096741122804721978294239507061196276058378340357823977932678983299907561323516727623345105808204281651366167035090638158055763291478508195781066768990664422356066368558993378938741736263905207631341071908266034735566915205257140903004909191463074404477614123542647023407989303453287849173501583539533178059509529292689775599704983631321796501767488664839439932512333201190817976868827046697850093315326817878062410412412377012845648487636613640672837584913579734106635321804156574559461382031180435158217576809827384930368728077322718755519760900327278945558703172602417137725111755341273566263518102533580952736424117091679084176259571929934264565923188679399684291570305148585652682122564777531733945557749686408613273644772070806867972114803013053888329595667669751701322713029409282975110301474874576800361890792920899565525883012427560774475930681180110222409535037098892512330629363874169918877538814441110727775570330234084728429081107084402830925250166974350712446365083508939508989611554939448924269911633950505668610535983953181468965891482790523251673233837432834475261915013160663579755257575082160257912730910189088844865231372449503917818235771246298379858551057794150763838622038364290527997403613507393512416632183119592354962200090696799816385634076378496939903902204466461034152525536289601993881870422424454718065611467153268948956186854523814098191636946725308409802000439010448218676867371863628585671144673559716806400052397744946632054221282780209864020918192296779370853529877173059225409299815114558292746328610372660364866565485262731575971876016596135387127465567941879888117033708931204411275026524212231889177631118327890701577352398198031988570615678375594085305003710292156481210742933884555921813144737868085694106047728436827993182053948833691983749669036313058131930297995933143687113378944789778033848374189285828802012246469599253565917795651476798857148170855796557984261291446963883923514204039854509865750255430098663262324487553443131703345548225627676548356423333659251358244947044727152759731830511947325240607919033367727074283036011786909452429057646231821320829930368631598657485905279354620823137027357830817623914503285750145176427708903259477692497277447676788301247077599183971275687462772024903827198910922406586403769777403537863674352737545555971784894494172772987234495529895727736909233185973595149573505389728524380495836955506406470318271148998528348839070632969763041018659011800634060723014002871589274350528565387590493168548259537253080635448204996666432750598881793012712872172011339520823785546454147941244998050358375008663031498820049706775152074143723832242346559465920865994683430475826165301133825717968524347618815023272192382536984762989063601784961844823486018706010504195859325171464006970828688228855028253116499569202381775909497537395133455279902129866977582095078417843488903130980446834462040264517477814133322434218606210908707553985249485781345312346023283727696551477049748677868744110406810111313757663414670292649949529020743808373135853382231606896638753817411880525693613490340606465438148621750812877023298954812752155990596571148572547040196728260306732632910806564839805666605416937133048934519279902135522044185445413750468245107793913757216567643579389085770623548810536991746305534718928276998660289493144841589746401268984545351676595526602349525682147203759860768039569196409930505960605707199915512765466730579439280553654507748242695356683066524879945126318526460964775222919822052417296372817040359469514855855627584878357793961532334418941805235521392255145946468534010234716181798216748759810196241367655170597577417532199731328832493120362883043611208008488935375517012702891024555092013955024816056216530624995623438195954705599080651283004451391821791457431198601311048145991742827696910827992719384435145229905686560396370593654201091300830455844030723715380193298684320097154807649774848195278715581783233919078899961613864357714482051518914640414414846502171539317321909679015638653821611311606724408506955696374665750903183836841729977644632286834583480405390466665364644640994119551622672859417689741562008934626467789603766193424724613920380149973308891642046832357327896068074210642094646208725989495076722356665192969085441369339714693046845545957955005126950949180036404378267832029244711174576429351281456132624089462667065874770134881055220911798322532042627145879072704797328515422098455112432430602292338272989869211310161066786328852958875522530217584540291122328494575635529653257556507735708772871259239289510387387783617238866702415758899196418959725229643500557761343964900673728944845164690059430125080446329858643771385470911285956620313329725264897454133627835992291071472184732723977335016502550087666880486842318025585029771925684498176833516636326937336226529620946543881562321046443584077449716838720312080292716014580212224635638093514203099000976999633968918717724253262507796708677932375172343204498396908912953741771503633933725136397854778787580439827463194399759375551184437842223218900368468203973317795230039062350739131193350886913537263144887248256430335941659258603648557294043304389182164259895966509129215420620826725567663457895046761174603124601859184559538541418734551665977440441941760464128634640808153055490361319987317996065967596094433095117195626111067229709580110279642961085001300861552965338947201811814857834836727775336783148381957188673094976109530168855738104133299578116083524793440601178238992744182060947199598087598919835773182708084466572625704070939212738605564654181439984605031773026068078578349656799130384354698877516500435117770332584646219903083766910325307980908330664720141727905669307193939004196285287994249178223882985123741808604265184853286278882771786897868200903651924267756649458905357931949474408538345588106488433426382244491556850800572300545529165443079674091238103225464139950376171921903461250145961801932405787696299633778346976168610960233362128564157190749632772038330591380298891177995350693050727396148318308495994781790281049302368107300355721903737649773083142919479249518341077905826559754168499388868429945508658326412470306574208602258282515315116098856380916734417612093835889240022503894541403422352949628051548387716618804159363869065248977749180612058735078755496336690624938373414112018153988930184857563920432102975734296498843929838368243948948702896144727838740929719038804879202515066327194428719799572328319735449939702216510872661570911788651992753511112726098858343784173298357201988431513633148430579733133710663341573869901641528731701981008914024283375967025835961741718955129234761927991006228049568621070404278416551931546240066369894321071372822453478474676889492188528146427345650384363087277521292402209962009658871344135060258783350147626802908141527943925319843567435687661629571080362187945436062111403422218643591227436473697260125884004699686245916491348826365596012559762158630996156237124059077611203691389666604076558546890808592693115012763960587539508645526839891526216444947765572905107152455987087738042074308295012813930718914331219952368160319695649265155906586756606948925908823712870114627852210708490426999785260516939349348546832636135936238218599110574671174779814515388150926225227267800440589659558516870436197624042293959498386810691642763522545411370935731601230601415678715505120939022161417328977549152734520138525464312296248990409237919382027946395854775692692107863645697186135083139038029569021463007410316609278256860165569098810799695354193312077649427945521615839360074775296825687635680721310720554680896692479034467042883737008363219966717504484487509477815771749174541676382240533884168030442754428102461374747643443206896000935238488561552147961712797467067720950508072028546905781288951888177269338240203396068271599466173495017604052229250915543188727108224027007977555367999751304906970090679437000290160599282474855244197239301698261758225676700189892543379797869187372438417511107913925384207287227701536340521913003264343359287388361090046100166632032578216317301267398938263477258432284193476949171531680387629428251145808752145278639174892563288590145030253344906758778753100127351357211465197505071703651624749223849161769719461587429944392876861999381565643914566182151791211755530075962315419820403079650660115589428063081533999847584639900322302940060071806285840760247780486745150165063430818623721410048413397597597408464264917817007511633537700332181479405811591191663178287273790833976367446626576299756046638954104614179843030565813492358730004909805403755821737291233568975364164355697433896060610723101234738872823217585790332222640608377078280802196078475124385983726394617600142877905935880966276984141795483967221703085899306372654747565666956712927655468830271891214423046912795499651336417215941757589134327975625477341622867192960493370141887436093784766821031619636971062179933384350158781639507064620221305406459820930518883041453067240727046267841043190237396872645478657361620511384321733231352400188129387523342275367883653462794413808947756188118520018273615454450238315711082351144706568347691126225521569172881773454728836657439053019283710384227027839294715423991229670752389131914737154044404725198906844960398610285456017555415856995857679576515786682281895046085385410590997558301262180967799376140956687352684776074882397972401941642868557188040889879369856971615936877791935932906833465254222693019315081862065739497080803741601472711549881429375552498149329394974301062163580570154380277753026853545651447296473544333168502928257890495016350765076789384429404389950050295022970896159119480247356829975018278520149251461033162863209488287728532079092298218164176867727649267922819323708165592092778580122474082796602259528326965606186262944327038216137498217164360820423989739347538022880511078104099344308905893722357160556614956549630728225008119609054596192725618221151118889764686640217407095411832106535334394854019144041781995105852862738073275231372294985000844159384719888238747082608606240224972586755673548502571366193772518646665596098546636165149169755926763371440135149655595937479901906290576454817585542790828083511596590812554479544781914611950422515442641362585969158926522932979876984022776264182077286003587261220118524844816858841884379159411900973584934447907536130137736010569300598709052769101731864960934469594520712415297346630262503436790860326494406274502784985821569044520548902925502892765144820789593950297782039270985479806693958834884821659717764400031722672024199882112088475994842888986940622094358209711404920448348298708335906022822699223604859491159756212609969948990542703696691858958156929261804921517889641817254429221635046319703053001393167041129084770491281478240735504047150112329265368033481875008275753324557243415040645857227215719598806437946238159879520664350390613961290164616009862080629928627932877702944665260316656488198256789610197957155000532542968649051121591551660603334202750219900371307279396568741513806203472339585941753585711376927389311542635975521266418365868632747165096113901806017664085572577179612144266410710181058191434309074063801405220481449378134714672883261847585757267058959618808118078092929574842490975141705723920035525867400241132479642406236342843456584604676915126482221874224550145427456017383822144283318258673088383649154224830203048177280815761618581761831733546489331944534849578286785375968788410386963768166363487378535548035568146450805517373254062848804658960354534573457967678891826046196048908037390980233225584287106986937652373759607400831534926350485526227282208212157328453026239462505416350719991790461957320621918866050203824478838898102139427117910016772341629216558181958030141630268415874162215770758577128137597328797667079382772448113593474108961268580075625406251118125785620834316179600750949770627377959688059685302876405988898046919202494492339230863006183792487758347552754954866723936873551848911876801029904157252353528156914944121441560305120341370837595582613848889257554734900444666734044588980505288190551252247936632405710714560246295611506442990453966408117473286332772339850716767007121917967133459973210884592336842708272944641354364415564455314381378270417659863914322199918476247518643468445677654061825388524222973128955627032830702692124453500676474113396679373435775939790447411510219437232073901469278858992484511713809309466350550450836204786866342342671392811214886917326589386933393318416133407940766937052708844134743235764897747240203900218047381290243426849354873672781097710567998218015196239833246715057011602711707956683735535083486275259260167211195690501869875490604841164530323332594075541605137568179025148441650132334194520823742896579488816857357888972580317476838089918480608929235436002290802026725870074766800339829920641635396085034651273099014099069112371225831757745726462482798363700992590782520564964557724994610485942775270590117431198461166651438677251777463306763296425129988703317245377204813283863206818170424710187227970658354368896703308705613466923059575867885807117493912883234991521763692271811106596857085093204199940220067290810062424347470549871184197640122810867184004450896314611891582325575127944906008636664708599176588588112043026079242776675102807502268621201070529606318642351811417793260739286818574525674951281596587718175899564589756227342742815383760816884110274194085234914351911899544545228789991415587752401287471593070044278625869502944906367541286696410927043160859802420911475297993052082704420167332297835178047494497035905347811376983367662380771918463050293588280606319097221663671725864609078564428968864077942050845473056116400888260728024574355499916353492180154278355387030690296948287471525991052405545032950688194485896911108803067028311536902336496004182848888782292689132888168991190084552956935004420369245305323942699900844412431162718214037774425121198408050504356186823937443336863915188597941202591253473452579299827513278019352762094021930691303491051392038003386766610243003308860409815181354322997852015441170080394748439733521751681867743617251585691956118602021661630611071381513942040376124412765527586098510232698173274526875599594437049588748361800931936364645319758069809278527067966278004228258393302457688009649716514082954303473868773053673328500580974558765791329140590383135591724680691511828562896712622515840479245039456461557111738089304770099651542299483116827530713291210290071260903324625756734341461389390804399196783027928192744900959773650480474338285478661928471509098329787021921227330072124256028574215955000511899862219415292006745648162581506093965143870993398111279540535149069089210037836317345787987427426286363749032991354614647866816190118758143446677637595384157482004954227111549933267280602927287029306682476295009138057868314349600775711035571837728580823999579482151540707314003523301671551818367311277757333052090421932280407348339316994216975175046430474890710846094594799519384616187924218675115743236762606295434876636421827193689935772707520754195922020384163518292188466654185437752375531391566140420683317678932061903092530697693064071203657342295090780834787645753309399689248545366225948892255341743044196506491747579349074296840257066896279286214877940335668055165325156515304515727486534654622203801204450451870491118999109530891134359332272647011581474165482431719781227640365951796068529507390213741324064217388488139637372666768250499663785985267556297155058177330909660260742980105801857593683333002324644538022198044878575941740193632390520463160916246330465558053993397403551692938912822545295371960520788121190801534035059798852603616199988796511874512743701708969013356427148730230452113192108447772816838298221574933443675470747254300487223613384002439137293709451249458569797171664502341197928181409510749896973271927119843018116826678373103025790646002535366457215388130143591277778892465276674473937871661123024204119384701524844827894672462966463600038636279989886345462015565394354337488729015947344193854899182652979358637555938314707735873321329631909783686119221170091216490680537718460149930273294986211432854562266892501725698583745139918976123666505673116635231783025200290549557919286052412974923140152456658229369657206751224913500087767583987974926012323115307581339471423954900155570995976160003793931863040047334540630848143354183331505591325218939606711852312401263863068270416503523548096795885796414418455350853230727173833204763336240656352551119412021324429308932424833573862409204317911022934750655416969554586988927782039784740297780258786931403208073429469863010820846795267467257396064087165856130325811157938951177988697665135467944463425411595888000581361095671267591263034597376002253220772241392286923898784707170339223082436880491196760713690854556447325835280875233457905162725943308024521802473189504753441513177715846175824345655205249083633137851728449081771245115782289624520165096578487476911836215849941097888201048447205169430151640646578594201336966722059988581765904008413938731251997213059471052374557183891450153023787250192363261752337281604645574467864297613168512051251537397001173498822411460841855973363191905250853067099188506690382851776574614982921865822936298005809650534551934121542568359964621213484449004306368400580950687059194084244121240573922383847227428191008291815400641136157002998569148996049823016308168185666906143474405529946227980370092938302454968828654664660235292247390641209045436893786488361126545653532482350857156116791661354205764941327843826905025592362655031948619561331991421334376439810749589399829532020522296052130521217035336478676433115557246398545721983075525056327021763649601266526063408299522519011995672198456084701696808544379272294622413558384020974611502061585394912704092929688308736934782834937055839796062324695201354013886890689508815267030362760580453615357581722463682502949622397421346049227935591933796348544187540476518553205122360961202393043487569226664049493105479059056786591454064235568666084132449692675093364357974808697471429393052336810803397358755330818852590624091571832021491329872732065855837625796720062648749626859451238053876132627595735190182613201115017628142040431961812865849166174197220381969139804026884022362061372610982958445574221945822888512822292206365827457770889606266153799722859245021460272265123991742429611480913902480010758589976548941364313869647431168664149942346224851283787334444373728064595781978675724105539623866050430468820830020653368277476768865308696380383175930923807144411714085350048992772190289557531954876707588168016661397771019087642833290582392088803099698229380185913394639149635589485007771247252973914130687707454462207109722888906768999796224334555840702604097989503524352049450950655632713264644407363820469053543029448452061511010325050782409318966547166401321912596433888826181187943818713622418710146036024419965890651627068887471608963486307942005108840667476280443711082641015491016386355655877544092385045426794687954584062318071224604948589797882926549259896105231549367877553827067742466177850726342385417446320482745705721555819339986249790975382962376079386896469096266942065928964628735118340866573410042125398471354928246819319011403403040601420776291683991446705906257068153473901625673790094058056038127100711083508291477048699968707631054951316203470427733363607895018134271286689709132452959163255976137642521929609054072021974197641902403037913867299760595641377086626962298532012585421583041608134791150593218285812109082289395883865569003631580157299026667880534311520392370810120749554073304290405460728445412765073845874426512538212562958885055388248724396629671105239784495929330902768587900585063424554954969023960793613794072930028761779097168125894875771386427716211759834142251497407226330804308621967679407240844075038017062244437754763187099700374469592318834356610730644036729872822024120855801739287970161038844886037822089704617963598483143320435001809720045712062045225631785331721889750449253819693577019838870053305540230563436785525692821671754699915314353448095023333972169659447786098368217305413085812256071615769379098452602897690246350792402704035600047188293997764020508310702634717898254634768419381668736900094359737344807663204133043567123920338873049901684241967864905284694347328109452938066579355009114761267582705140355071000309318276916282605364942956917108298398120736067356204691853906561323166813729623447727212817731073658302727632316732658804260115709887709346693161570999200670996878761772581976608380250546672166284432401201657000056450449404540142830013951556724462078113402769863499397089293746195903167747816686831100964109609023828401634268559380508639931442531799608907119530023158290767083337840287280849344849632227818359911875183461548571655433607732747587514325960396752112811841617195293314695528796251160913087741037691526049550787111377054409457327240541024662039164954678367013885790478450757795487793546904017610735995182397045024892274961273077239883875318488400025457616788165982535740634808763763923506840791637583813779169545003653855863402588255239837625397513315518766914575928261332749744737294041357996546525688300093163650528360845787395824644491976969807049345084782085312838935719223591856373254575922707955290214754985278590038868909210045616654676963155177772020856247971988953188364509869437754670069792138607199802786253485509062855180776976729310450217181899656323253713589371148950793749199011139378631021058643030260240452956802141260712155124416897363800102613749891609897974397247331322700509630415166272803083046187320361991376079657320262419994045412416949849785592537397077519184198533453372701588959922907278396470952735949691003460854232894142864101702514685444049545959925081505399665495003705972650522773968032552637051744169194387059827155071778996128330288706025000495012109198614716819100587746650394446401229391325547457848473023607597519300686167774457655419220631429256367680387973617551801928474372283291246777558133575123810113758701504948124722740592113801844568504811507221129055251180867844587310455960354408458709003915370436337030661679424571607015013702767297974754873553332510049366122900271234698385827145545223296687591666612665103269806531117681601360640348546890850715835054708640058513076669876443470009356262761459059094577250444847326500456376402981353850249963817477801291261202127116764708899843128397069435756325574224186054502171385391412777567667713508505449278622968727138637247321175019246885827698292353669138651497497699981374587557685370660715592772165230646187209410559564474276166735554494986757093233679058846969029838734656265992717332253810224985906705197686943955281315582435302021597440600275345165708089877753290950804890101671577066816635896574827274735040924812403188267494704625994146974562286611459648107088759593907702136028523956443927896149659073878028496642177794299052938653867879442974888349762635944194607415509923730903247788828274017883337972523071988778177021700087462031203664113205824227560180177444425038965076267461468555375623549123018829044459747373324794701330143021801451329681389208168892630692904411109965185307504511385926045792010763323626290535892521479338029205760875333223699135464395163618935131110097634909483086430193054336457301843637402957103727290576538105335406461618340582529965518082264529421950292755584740201034312900812732730291087100568741201226682806310423528422595006853174647293456006261001487308200000595111310839309459599905736694018741451699155995232866045462941260367101911684150757141223682119944185330790586883236541248833264047601146311527226811030448780831104907351246030805480370362928230551789291529345868690607018246856320684735108992087451705963152261976732601791576655862020431972887773480487277257134877461080730904786659387597295259579904740277453330094245136027104136506071717758463819286921566275424678581404746161785378528972880372704525934284918680628622959464543125227504517073115818421112556737057301786510117404694024083654346213761196790795768100835888424790087989093704205437217329641246929432716617377230711310242619820753668990943261117291099354793973304288298722713176767263775944990927279355876462604487387330599477796450364115671978791925761258512004531345947830876775067549819457118352189347527152675683705940535521732107706848555033823496367880545566632370054161988447012574229207430454754942471516346819980422092205531965412472637501222516167018178952241758227434822180006055137690029042040633675751308402485917234268818732466874114213045987770416296669664140069565491124341569668955083194414987780855202031928237293012687555046038115617708726604394854994451900463301406581249720732462035938773946080477699300164599489589548225058202527432489261972611225479415227258215567289705407603796982480391895347083490472064209683135455830943152555445461039640561086243729965110010742556959690500115467578021815160627966017870896535778983877867634420075074190864759828692804534032790026038509718343450476938875788373184965088007525203867307785641555315108396448030847699809604321806635272836977019585699819381288796020065869115339889432786068516255930395173277387471302257218232467058411684377533389858861826292203094117255989583389511785249972467132395725205886544949911285158625477027423859696989723299222295276258569132251631475561955129893634736344059052518993623834866678184200419534359532510363582837018554342410000578386847908808492288842424185939721794535147060411157292296927455544771870775083349394032672139628105359963636653971555138966912702010587480669042351510158664292799594519625034099093815261818374001333975538431493621776243424146685422500654246788155730085148917105734293712545402750689661097569303827452328049130570844581017353813820992743680703258115499262080734456541562652498348365038371241059459291636444809113453064208826958293025623825116419367289864257941541002451381489613104602754698127517207011945815709054790892669109289027996448664954259647777279105422122628058085699752297316349536713465597029653985594636718884382610145815216568613525144368783169214828682692044085390367872335808015614147945931257156770217041518908019247365070541494362825364012431291816207965463902253266765020605708185482329527588091515116406464154657138219115109905818742779726927792224980638994668301930331500371013475616693339641142927582795985931729718661001868209529955615276931767989907156718813276330267004745462953709821751160055020216744720771561373268780108225254840259312434360057251704890363164688788600880269307637384023734566549577821626871519138989717459398984942271522296643661118968755589765789605988467710337295564160487717753684727411253078473405904352495752970947364739077156036655831039687205986487142900347506749911750549679351495102526367364537231261618372985496194755854520520464467696840036373700376027674203146253330376117334196994375276375961612714743330019212242355578213198237673817111625194288329366105572909842592066679350276529092089656382427876201874197757085459478183853052045444250060339257702724956539884229789827307184863488664866459904083272534626067592492323560032093054252073221665594288974592508151318180920183703618025687741901313553037073843659456645843640428041147948894319771205234141559664908199142048361104665505423658685158622311987517272638492074909815035841724279400408870981747766249309294895302076741047506551495003277399055179482382101509461646711827236395383296650744975035249888320150437584852419646123681571088952521055425858702259289592000349337302723458634377605152573047765713942061693857031084006864286752705769190393916586054890028927033609173469779986177789911444859183630638644601388136647571091164088712272867506619220934034894806685989513914992840571690608628364710167019080258669814659611086689187157244948618813592861756424192366313408863935437517438396160575554397821708014139385822717615702996783630420938918296583117925091203700632352588100037513753703540134454548801649563373344760075954272767179780311975431914063630725668719565583723995400012965401587901267240900156694775051774570627385856060175381849195018669762585309561426734022566384204859229560313667337610090586947782377389660734368195584945759559844078916049450542464849625809906914996976496506978529927979009634512524828596353489337295577788879656286167719241559428626442946083311212574267140051743374235624699817215140898696504734237667045812403144642103041730065858222973723992014882882800719736760712856093672569237686941351977791543166130675404324632758282010100511611548798136058651897729553841184591057044376850903617275060481247561058542145944384883449604654086770778065521150540340263007320624991997811795108535061483620562008280736525022985465272670655893489555655169244168032091629422010214360998762496928905510729264104749706206530660984095386313233997129826789383047347344900636891448789365682565642516027334187840616801785971742259063092074585531193180535369204882750330154611125860968043936946691522002247156617850021418402120159054348875151269664665082534159193620533696470784797940595295400516081855496851836990226516004162226348108970294695053338582046797433724666912424701231739357155443369098292955784246267804314931275016806235883036984859063181913431471090323275414842222554228024416091353326861070492975859828966456822385659068793947457672500398808822928000645883699026865563083252207870540893708485864052381581613453193199913911831983436180755365043350288118490986269248123750523581004224776064136083512435551989226940151015549969849391950889297916807256369224864839908793852748389759190749968218671134316277795546892587527163496352962383791648460654759511582515170214380297952665701866997224721518052748479567162741306552274635975646478379997993942713220608870595145120419167221471305486785350454710810765451336067800823197112408034325453589447440310157330929218280285462238247326963411952645980965178985160776633714888122074309755574368036578810944381944066937656905367908633193184513170254376561680146513547725446376628620976885445285466175447111094293757078741014450284423780115266950919683170390917690446984714670069062670818852690470026927897500220703356568494638823331836035332158513929088846035325630753389759829132814355791720092313867158553887671288395095131916601987472298641705238127829680803201880950039166092926935587946056181805114840321375217144632666184565942254514474335467891297764517624102538955643838263976889835593547103078991647560094203619861312340116160661560702902473052690907840910306420841661911112106350794638236094724743638722519714056587563637753509860469622600350257042061640597461689495461511774469571921805165962367526310952675598423309607234028536846976217768202380507741193856061208122162521463483644382838375046817462532055095658887434682805675740790933100370932837738348955388240281627368503931329898464799620502424726492622453288437823948101802441472177510317245078547085941341225404405304968711321131038504147147705471000616072072070448050126916039339452265054344451394242219307657465479970433067117976816163971085916635847487103933500893716873655178479676778480422862409281332402374681560091425559089936787461745876687541693342004312760848768176368203972885361054056621749434583860928152319321694012934652641879298751133306791358687601361721652537190923868695154785031265773341246575299509088804326130787145164000051438160391532176097146388026394130506360719183885327987034982506490925643009091022246877265766562327643648459299512055958989951326777020780250958576645558750241227573436494523078795857703936578506579650382115259022215943836390978436217400891652465318377802983603212324476445247428677250751800247102003594277693116783891996370307545400524086293786657427159603845591916240955903156941796791194952927338239566329865840822559895088899020563921611154747868643873137124132114195159793997792657410723248620284948305986517061388719686770221024458607129466680701853521151666694557977276313328606108060692243844036621716443467314420970795404680150199335972109123846919150006542982478974659728127226630205085645249634201043366975126813991177574077245488890706007712752356220820293130957529700646287204582991711307554245206230548675820371194584078948993167211260072581859465446567793788145755254246798124981531330155256222349002975992750640677135379512155021884670969679572657953742403222545391865571846937808397367747636406905662025472203545971635128190540369435269046999260162753794086174206713430752652532825300865891631401594299812924811496001910342531318875196903826338575798499099908835688638706234546374055752771055954355895592390571612899761845306466994424951991401632990413784072682164896235368680018399667325361018010588687553742886863998805830151394349536714633881798715302520895432836159860366679029940127713747268110953051599737845012149997914944199323690277678813408416319472339107522792310045816466261551163079364628071826708199683283017220581047522869589779803950294495362708282757764250584756464445036698340179909202958327298979000912809083043310030254227058609799751306309661078475135308883105141854959604705871404180870535556729277141943580498550021174211771169910388179421809123128491206107271587650482236359665381218962406744988830879337873000067821985934942936942000102990451775356689483211851949126548586593143247758652217393728658591009506868334789304230332406790340189607593819688661932933602891816465691815443328691455000993110528095372110410849715328228477836865642177556185748269358698970366704266236560289237676123192592232462105782207351175612388724114661883994205871007949500411031635512261751121037504886361423650702960028241229156370174829177444251812526342504048011584086083751515638743518630378375028602237455519541657366719114444944497640354162063301180239851953042592196277201105132693093552497951181338353154624245734232516134687589730535726727718057128172458967010990005860001113694394495930446689853105161348867393705850607537264269923025992627412097461473662225597915102022044451296565383454238475411479997499060330910237806845938687287952003740264270794662827916062751583152569401095513429285660022757827002105803585688567687917006891035262492714592786747832372766350278009592355434398586111989665823418803643472607961387319608768949530817628616679685179415279215407082489573401519463325063175362896215183846127276467344252272174468809539764240123007795741714920964610636769739443295648635530602295980956377333686376380206317990541643067904524011714651608499707599952530799176187967812289807452917774938863908314155718024405537725539986906237588328630724532370264171520538402117063080550381171123864138772421770111691299768107640790392302680286517345454095267287327051797737502832478984905687949191029428067391026906490540315250022030900820033968133027807689272706792889954396360336319637074230674105210241131255725710239023217692627268774323497472554983664718020942272152202807809414322037447816788137161131976736469076982623793095084466867847742955070500171694900422778129666809621837793138658935174073913092159944967661663027027568480763634687540794541478530637002437594720656498782083443518803553977229804531584204840983726936242687165389794498731561446863783370620498052879151406661862740598620656799410290921841954022939028094482822760631495278176629019220445979094265703396672710552077885184352588570313270659169345838883294862444464669544487791050413154305880112959956569455889364929029599777902308972758453028475795796561843702465317020488466526887679887624562577930275269859478837737495528152987772877025458393624871006190198355029482386147697400336092842354334948721420033277750035313458725133434266031888506803676025911109255236402404269706806584411322424646730442141881878428034021465293738427254776795171297985759654905529410033814331028832721076336168364684589639897329148443317411308870418919870988631952306783082629974903634424738308180746923643980062858823430900168440635243417626258689999106225542590767370226953167373268751349717779131773914912041246792551028040368599623296943318852711005376495364384731813433491776962842245936443863953528572719990328311207816254695918097056027345177700006412384823324006537560794697410312029482934980829803555381455013520242367571324437424919764979696317341443505884177331826075013366392283232527048120777110292652212724391420352158012853305527660366676468596575819745022716795851613268073205159748041987470328040492133581855611771829439155139550693274422206310320102509763758110968240137649978085964988542874877457066612132112722376108530362216968983434739156799815946684523104144423277463426757968925655303009781794531118125780592525421108739129428867445669737392322622392449306618275113754265551505028650114631364637593388948961729900306160421763612189819039787190703315570393917821892611064265361983386200967413854597313230645385101708592324883373113010890684376557786206550505704363450533317058099801572838844871814152042885036486051576474117658435133272132426749230859061242782753327233052271028491508554129776262805066865914543273872138732309154139050597379655724040337813221649741411203216095975020852737746308431233551083629675514505645189282266799764314645065158462507990647133318686659384059414394978274706000889903730650771904396902492262072116439081119667736582425447764626021019002389962885877909435319697618876318113079713126100637198972813019844199355583457247778769327204705712886576396005750904153628567169516175218676636933952404634639317465803940248614583123533382348235829816251874445289346606764527903087024953438778933269043592838982898594288021340828048515195972734956658010981673128679746265477560891429602389989146779678539111311458717772173075035114484654371379143379357054534763820771092630906312250206619314642321446964411158280153824416228395053712373773520378550324262922460330197812561482705809571465151687811885962261338656911476432459983367163513976563565443434772436432476119080952181140781876260531823048510643984511177967150637061515539842212720773524432972107829396159938645819124623947717910538160058848789577441870793703642185710340972487259138265467600166346773881546351475152121870224321876111042121617402003311662368369378628550820798540840862447611590451669952457027548757754178331750884828711305352180109030190594183536734946834331436220981412187114140241430709757033969888397856472918326934424732907254179677140232938033327164322883352864719347501771244752837183245724229477650439098891127830942602769721912953219097470316199333170200517206145504725004264890336761846020617644076108744892395977834965626057796041705534078565835786614091235309906056100126688210317878156782115890907107131835986437503794497875976936832829585412708260604871903102377167278438815693308492907797270568428089127625707251362204201602077516401976451135640332620960151196331990905417165300144173905238956944829750656774304510017874125599228618150295175409072442931486462470812543894891741509727146199053439552744788025624888032968876008839745565748070074073994403481132489516906967275913599285138343199941988872579168449700888766911608617319743068597439406569008356086485021758974449986222910804481636033001293320644982630801736995324240529649803847388705307917570093819965323639043688264600578237117284379033897597424660440372127633628621005819712072020113968064720035740008408261713448800149181057791014212842081851552622038817889215545740070072524696066414575602841849534480350457520280190347820420635105243914463178175313150600382229508442173747500372966141631540906706715412020020143909780460824753272078348075680483512941481416558277034443986562637907298093010548771253366826606484514584630238580675047389787757486438691583888786179620777680620616623953113277063585361765603039180438236912705862471106038669962773195008619515643922271231401106535427022936353810796564054726086271242689373147741520601154607107471728067463327447490585766826266814230849723523868559678083092395657100909488389877117647591030465947060407624730989198840502861699809485657978096088994103546430928732085493638865633888306880972391635634253138236290101014890289017936315458263191017837956462417507627092147832845424334147911138301826750657044203876365479969648481242431016575025422122475123845495696356751200598116329932321617904140383253830566329258805738830903066681639487758087844039456713362641068398769980682597651439878530642957859201735935564939057944848035190960435441504732145573033198383360414906235358829344859118683790493405419988750772882020391335295082681096881997649575754636884706246030294263276854811753734751333722445862602061442809928667633066695452504776005680237709934323131626331409734197600174025449397801703263882606201011905401959280030152527134439126677041088061456557984728406771840813227190304159354555441680761999089725465567626419000595033820373817416165651425419716232657708682548927421980683548041821563340432063047227902208635069444478036396174266441687220964412770777711229462391118919684747165215327426886447839546529833210851302372710606782609790847645991809363433105799726888919013901519112204018212667038968602339947361854800415288839615779022174668636214404025401831516116861711428556306463844192183385904743535614639620085774482082222243178426182134622242145530237663889480763694336370426965358673954255050640087289633651343737130526661235892888089914176257093449590383795705278465209088153205774098050839811522336168052507955313353192726352013834748820237709062217380528904143620525094723582773435900924974971625793765407763544435525321215786507563132206986670313280903279877027857914657200639504306662555397558519568817150889459689858416086567390239901803915777275015148152719741202609560053402824837066654342569424781467480049870211281618806948253999054698776341868407399685409490534246887838009158565592434942223540321195297611917498737969899126750300758230757415539953073861810804560507763227746817611655615534862234678261312560231170933573401275254044672326508850114850030507341284077109826074352994744703278649519206112105537853341559676189386904570661746213135640904403796907411115526740728901356259299318146585841875989571063513055988524609796917907983997464816217276154633544190364702069654688060859075171782124588423668397539751416899760560603678281764384438743632381288942285801935410973110123529252381479737037130731853469120353758262624139280789078013471640880209537131851270817419439280861930561187896694977294667143996665082360572574028951495595774622424802638357367557610214810282114248341289679825623456099561718751316321581261923290465635310449746109375338288388337878600224868894364575191517161629339536797916123498419104413244109142735916435107273239931212751204516478370736675660558501112139253359770650445292748782168296034969251805362572025381573496603758635716253072366589862688267308217335203395532596292110561943330960770804205273146875769669171757354966750530433689023589395306599307299167288870792058819222756839767753526037112598291043096038916782786203731091261940040003423506376293713034044914340147588105711175854683460434068633915590066909479386960623683583924369080049918975277895039603739489673915386499747382309554764806240874864234491579816079158745706329729985461177916210132905919743326136723682986349299236922650377599190489478893893569218469595756373290455483057805419336786608524262583805898007645174911442319527209631666941685496902520253419916408060788434475706190406835680001892982441617597034199658554231783242820630049151249061196609487753034184947215526628779579783796533756760428902535575419134607019569534813151037754154238535007983790728994913431746288276915496252135148028015161112126791217014539451700841474453958388065308171495714258745740188814910259976956135288062881701380996221998524044602029577226930015835570375897155627168171598978485929953722197518753728172768363280870840204449456963135221646985670715450291119714348009765900652782267833051602196036111296402119509480833161675901381739597454227853259440881852858542907524716589660820316694934804316086154688199829471851009853388777811811356386739431499620017290786043210965280055319492512950840376137716492461489394029613590033279257699964412940449679668387521658448863254940032187509463471430698694113550994122316376960987651119163194143149645602662436068042524771746195286068675682605262428583996774963924466451872015169789270534601354003378829705306674567337147712452124697094447658140240067515326820899801240335788499933926211482560681934784419516360434977545722655748852243109784471022908139982299495462384894196191121762907073304568691079214256162875069790021413880586870101322560797720142215459220786692966224937015724611355877121730837954946308155053381348475921222185462476642090140445542463164258985309111722615422196167556227639023839550517389753283883366651494044389065213453277329818474442585200560865330605493325606311233236114334879115097438664484690703101849575579304669460238900010864829923000075227206368716133785258280942911969099232873821138957332550445307240332908739070288648177180049953827843203082413821677079383277754174812985334654017713788168912824156494442613240220530374515827470899794103156594125067058171118303485261625772829413379053627883874067154310046381235984191098700894752122786200202203045067913305003548071802534195110210808148809279705868444810463327475404288523381533776942406725505075440348675716594046975400247021492658693913140158537799189438289752608336669906707285379270900476229560282924342641435288242479814098673795581743037952208094691253238377127029358720734046649701560127021972583352712965494802338753120131448981951271804384214573556166177720059888148353474913830207217376960571845590517933566159027898342689734635078080038073451453923420987067343085103298764398000070455574678669919307727054985677289889538057327688230728024003282265764373180618583173604423745653167696805917537605534875051736272079900758688850180742393333961376226229657765451117686596837823916702516026378308842333193617416596602047032855395176777829540050614496928816500152446217559332596551734101296648472613849785208952641568222216555097112727424205814961211701211979927705663372190855178896739322914735374319703136362216125295109220530732658313287596631418964705023078284463147386425931004543808610218060687230350807172855539715875076069793677689402233720833313670190680355864959537214930923263984242811905710317537121688686554035555152472806701892245204187160350681322820092071799410646839351789610968759209927299129964833704637646807569072950631408201368051764704197348564877448644204576661414056571598929241190345688329852822964626293813155803016558187504806369735131528752226184238592653723051763736795975223358214638016471892053248565042686375726622656806994318198666978033162190868255970136230168512418744334737641530749307557718405699292341244767535643882475285039772829660720617907844305494743298836572787646581427574593301256367212819000744923704546953558848062196441992016498471374257249788653210047264498321790032496817097370470283073955443676265390692109548864802936189984162617417594461869166681575973178308598527887131225762987006762380857367650695021965303377290468250591180273499224975007444580017635815439400927370383236791325429474631048997489931336121677813030281806274836598981540545323849846005407209654334182862318266539479960900079624745433984945588136064578420956620877433132028499942021769307568908207732083928699985783803316575009861998072171064682324207310146448649642278645429253755201648473776991078669175314902963568522138969305207191885274426482043780255024017659091050292907473262913861920575103967151405000494625752294661965419294702561684947806555460490216564189252987270304293956477729745558447523526472569948945871579884758039548699863777614578778841267901486020657631729707626680830713182786682882575916430157789042591931539510091486116378546029463872548599349251737908300979126323916957553749738475841222333613191803913778655529489081089580572552358046391215260432354212418161138251523956304032194899381445380185026131310029366981630900636722571329459827444240524943481355528439126878184626650717041147161519789909818223854349587671975275211087052483560097107150121998312319182375332585534970557875225995748446538251087977723624622123652042712011071782491623758443538446991797735547204761065061182968624716300705017450826405940782142391323918807204655979864070325741491183739745760326435523938314539396461089769005435110902141561992744438034299758327826344797200165543479148952101558926993634138257169434787921296740689111979644393868882337104578638525233366354711001893554767243527308765816256585695990628187648476087664542898885877783347277398628837778073020362251248262189952231171362225615225484251445115445266880107324204354578024735499931345441358587186835655494514652610227723999696040486263560186634957725507181923657761264973729342922984053671237191353537243770998071797370651614124479051070918911698620044097461547884392075816070215295568443554353403366673634228643427787584773915640603670023642379248347689875377941145669003327951308358398933617925494079018193310877786159017799080163860676560860140893368954438926775338165128034088981688894845632181227028892034715085656866860162626306214792963590264283439839433580619311629232783859127315057274740300179798979477777556584173076740002671871518222708367574013824072387159018808916532663463381864135477290090931227390128245433572279308628274216408188950542514856383672505722856546443860917982473121491988589976107455852959358337798533448340721902497497563138380070576919197929274544277600100427529037107276206529389892501282744820894625960243974770810201931990745888435113329510365274860064624992636889930697907677641647592848882505239469654970100809495925577478522285434481505638013929872464665370112732107758788040293979512797274085919185923143239254915109331465612285512897693089097757895121690965159162177922319819644908629052507068990495674139517706774686858678650718185572910199593173577073950981260302582690991456381373901093967089237710494828550022412574533781066334728516372902675536775739778206581295411410191981045834801135410602414450485983339109026842596000448531110321523601046466604088780740979077679763491586564578672575818280149856456004647905183662456185781073568712154962698461279982326925701684529522286910535383158028567017291184897391219697468220687918094223675873937081560691826964527207728716252323318129287497815940904134088191110477738403528968518954026560317166046665699132676400841634216957801707705516034682328784739782414461766883307489349692068012205336930943470550089049369432392791176272223592972669489996862398577217350443941752386750691347230356483120860961733661983159772367238424845611365626310931411326863165491364305222543149578802214309962899564821587694889019628318790915943144052473726197582797884831136225834647820306865347558177701376383489704441640174512152428228385186212025878217977218737183786510318840749543333499754603411916548113255235139757311750666692813352802412905058083338714061009713238733734856757281858756618227324884600471579011074769026315669076468427136691746613762100340489993657470512502029559546662522014650432644663732924389021086373143857619591287221910573782669606259110147871004247236026494132198479283817163701533097133324492398133632803850135382603867286735738924212164693011396891402450852864866508192974916688138374976326553571372966625003655691929949912660846755788733377910063221691610686738200909346232295485020297607509457868374229081489534086421517489365333842975209007462396209532330482523962069568861593639745903436642415829423105550453823059030747626679092950385746629363329082099098325802004730585538048146045465663178902659194911280509526272137371550902258600217245500879684052023276616761121854060391837196087487920354115308712052917271947759830275017490854585953731067013945937933422571671537827624030156494022560992431761128182502042138801400391732669648341509670705773866925021773664194412364812126637658661428894397776145137697391368314759062431665643669320536421337628126006045098436512469397413594287711492193764774348122920080604365667894179288922125279545639279904997505192561543248329938416479224362683810717714148421162095607000837069707278963844463091479555262935274214658770451541719673144509005812218676960349808756122832856881385108353469483924893896957762678192178638391351404707858841195446174854690715932097660829026328802309654831477564262884864167420624848115866034866156510661521228777611593222683703227952776312834145738299868899202427862515791777345748155403818316815730473097883870498243594285500407789330062462775313756013546262672784469011999054648214030379236792076779250390133322575246000127737010485617924035338276853361145402044831243287861807657030731995316927028344664466259407002272451585381518985072778779424473605582247652519871930350798368314314227903318005210216547547060998797723613648691073454480055774649228353004903121721927857244193021770244543451108115737190115872288747855621245344486760990322953184079291950051544280242780552660852619098506001952229029792250178012721440573856102636602673616922044690156123693276176412316358316254516981207504108593690702491769862224370283123739303487612502810201959864376437454667234754590430961033615448572187385237131237345794459519118359625293807514412650952831594916446011792140864144592408769211089909068315338192289902817646417944215473017171353624002925102183558646721717164984928297125046363386689434760793539931932382682991161673327951865435845403042132880986420180493041204615352464828469528856893336473742577147292011202797866802379063761416087193837114826728678359969204855030817971341488388376221523571679933294880433754574944653473952661980504364266204926750663624198693103716640752537346271912580020669354327327469030971255965295732952785848116462387699632483005882853769886667820490998767740905340159777403057990074714867554308467381055171470709525868036733738849986788977377389781466589730453828186699173539588864739296461373380913047368885443687217691692833235528805803539704425040006032825317025792707471561846976417659992594649981725665830370502623921412273146777758080574497804865888635673813986212149648181450312860884757369223171465345666954452049958950689650104028136671300306615841238832178690136889346197070516162714156991781831052966316023926682682719874330039285419620196679994826733247022689121955325035122804312172090000496289334934477568348969595812625834796317896861444736588147529439259888289995402764218335711722705783674803027461614261732941189135591439538454018370832951272021683898091435988143609212063536573669263189470510070301069111586661992660686256673960802074934038148633810563555026055444008581673502076377246043448780624360091456768617523010170516468280520057581644306797999879930502485372430558514312013671265220979011268996367000528808500523333690325783565682896690509187946404465969550811794565259371692050139740441457205168715593163667291625726629238355176568165940676939837304789174350639682893755111873888991801762635109715277848092855310420175606548487122124698860613327112966265484764644186563034045782938458137103962560105527535131869497181354284591533404076705804633334815508369083479231589154935676029697667897557619281145390836820138980403260445776836805947238367659784364302472067211839390768204204651486755826343862212066139531101325661379246615519875768182572412771621633467927001243195495046425444121656113259265143013761325393138473860802641613964163538500426955517946648133770869190716970507125224015225306748152307611008518343371917510097318577010843409961296815573964870769415492475409280945198839757818502349092889016151037939386298019782778450460215162937887323542329451429662928045188793464167838303383013339395877392176385034412461505116178327198396043197564500293156434424902125996164273032940140302889906606566564887401738424057871806859324518835918552692368645782783827665276637806735857004381122917156233086675768376230209899376701523100594730776200278833234989551171454446441537605547629310454838356892831918001020619425255491064912669606817031487858362467913088622630076450130489529152407551880069119742281595643833710300863531299845369078188273337989450373782519646360914944159172773828594860945262339259003400831055192929785365290142623415433423000983621519912249528445530185786637804044641691177903523205739625707050196795749441892251529854066240690679840869351248039751860490277643094736088584956927880967528996924945309657156364215875119067884977640936150433749637075363722911939147651161799263588790505290682402275832680292795697962070981592195416934468705152762531821253387759267888297158080807385389929871738295559631583183329313392593449750749949863154236255878786731561941583768029498666450944018527291782423623550503136572828299765333608383772798092178846806385254915760376094447409178132679060472528467657173787848805400398035926012621096697307982441811820179894246386307233565773519460928223807243546969443233561070402703996441642428035621693247026265156176658095280700299019905722623824550798886762686622569016977324087557434049550719126077935045006487134220541333952006519463393078948669936704460793096395676385785123298366830685466156598480404028737991798873586312574538510047169072749121960004442452661765802065986489638008429260378567988818268600026564048501317218317191243941799700667878565749703486517234014686800187251704810788297659638824636567823129389013430985109732495127333766247484090971097978718491312917716459365110748335325630417720544266820961741458905730759429403645722593725770041103935951111280326564732166036312754809147787645086401855134420972698546500484951484441750285129215933557437170044442562103552154505439719762399209730193195402147669880739945823782799844788971220228116266060992448703383497341435675676943956376063311183441017958928009079414679470620814546362239822131038121519709327563878403592303360055931183886862679008684698627238415994288727094067074519400913701040171214266366290930827768524600558164298368939152613696070817245809558179634486368363479538001779728997108324084337966398838376910962718730827771879891141386549489704059957996102974486628379323669381556590040796825649614470617431192022984253547263878399464615700472412482657440071076815141569781541986734541128551269559988335611347571279415744327329142246135347075021206689607268243766469172736819870010521331291029084851737202545897996624984019146983789710736855506817568311943157572777118678932814715793170728162037175400883729473815964629239934027699070938562422189415756458408182308337309474610401348588643523155786542794608750498453012232977836166115468507514940136234371405289759664177161698296126920677745428961923484008422746661234936075150282341960486618699051294607379497625875582139676744341592958817961594149752237032456069382923816163047247594936232080557367395938690491802974239785481059304996161052358706226451185682402065127302839350801915375311101670270516841270954856463029098853502953292751487077747642592606718119073631523055432083847262432127642625539288937243092426464786791433404034681217837137634081364814898381950416102801128698842744387592406572411487344978181315799099726424139459358918609365998658211428287355274717523024210925059762286472072960435554635100760788839970647813210111365311111895288750762107998852096243374961798976224585104837362542733527423040082033919883302208184272053829817342726564034706498833863505832024472436050845054950703442806994431394649038067048085111081178454085352065421321639944379349304384848075978703127312246245335898646890427459926649049519819796562448195396449687962129557877604890190025096471638738756423464413321314382561555263621375895798236262117151874461739573091166027044803960105802219967924584828598750110211448824584770865699680735973671817525221691956223451071056716349632034275638449555871312075230959386480133351928477432816138360640531926172644269397148195365717078404155160321446746772352661506115537293904491207025494650653260324467081469462406456691954988442960801624974410416754277322473394849799645611071914828264254193161850119691043273579407807573304863060158628714635200729255608352667879670133837995152989927416721984620108537809242644187382583870890684408774713215561656693613920078370108494092663687259971668792550665936011462516352681601756144178169325496822085509633603010845434401931414136922874701068425660333103865336528791677888185254591379868173603835431065949791786694228989734844905741022733475587501025519636936765891711163749145614623760248205138319187437881270487018520483883766200235559315181424209758479353233684319839939010985497419428592531362611263426221268744416424935246232975840897952947512051810311628760543612320352785811841671103319867522416167602880948153301838694856379739572812365868403607840291619698492951046189839532482741813509099737527479043947919268138419813878288801849472108800459644723563444646329844953660264418550724892879645281068836413443276559389102979703202763839678833645703390283846844568357409841327220440439565867107437023775863568207053722864013193917357319263028490319196593751306536087566264446738881265170605499016226963911286807617274593162306874711348973057559907905618661826694156887571817473022202093107534343141496713700565824874813178108277629183799023205320552630772997565342359189000307830337993592327819141977442154294451284332574208641299847077191340891475744426058098443532142789556663421639096247245640147812086289597545996118995701383945390878117662384848987082262803569827380757522791465092235331640851678058077453485845872648733549176704567919154917772898790194053760662637959966619617915191137821745133337584098438827700120564296197442816570882873795085533336600501047647260350993173024690198219933591266125395010655843573404809035730866606784728228978192466370166133803499066751013349605436371563092572672313623888819350462657879128588394723230205942396761510460818870728309758556905599078058838665242688785691206608979323943776195715768329269670610243966496878463818361428278710728715884236128630461807902986442909632699582415773287019022739036348928558785711607560219407404922097421402515235881503598236398664403839558031101340988561759756105944298846377302493218704548146423715785283972498614737719588232613788411198362719696518210054926632497053468655552378317701547258734798745149549001367536749685441096133159238556811051743897119146434781207106861207638604673854095594576494039007650058551416200028498357090820609913659438755660119248657526314519177214345870515466526311585813299740844491608790246276289836896359602580964233706002430025042310516766440998877208037012944580404781317191527804437311741400032865714697493687259680515335217791475628628878681565874134811746855227965646365238583023472414802778238696376141443223306255473417859734380172267362796080593268272437507519822990231468996866521224778224878890509887433294157789007541015476237995679486610019933998110246089975324233876481523545945990031288882752294079902287116555259292520343519568560318072700234883286854135828210823342403566528364548119800816954209792394949454118963417705573852924775028250807752885928715072546280688776498104407270728075325235460211508570267230099702064985783002064670011937419402996925876217523628733703876672758530243203548035896159296132789852910396000378667888584735877075318115536575687282576462014321809426678069625220182139866238660107451522271610204009657951540308949862116914369962145935712420137936231212740571209967669495174459685299280555513057717627675042854086497562338087299792542630810273302758498621347699662377785289533800263382510508095384555779843139917728592298830889290649967673976359034117861251683532649019706648996080703591903167957183982261605569714473020557003207873546192006431075462714360140741841901552440979979685639036680758418317148033595957267513992867915363660348092187105583725843411776364294801338766584427913488917354281916083134883583858341164977742298604086634743825049491344332916777674452712114140607492309202350138727401155307684521517868150036666964010582008355396144095387307763622425590465422433454181581481340060798088003777271231256286270532424764467948903472423897682202298276085870475102004063457751560735335163053342834620177047125971193023255951509851328642374335844753533519127382207917482112603806931763229083237434498329952851077902726612802432323408417577121495750666693253960470842709030372047473061217060600294172470858121155821332271987999131351370882458763977073018921559285663005028838969997612425948085471868963994643444254976841340774052987530616316880408600254527627965781327888344809822671565704028779943593984186863382234214477051035433674460438975138499278997628920947252029658157485993436258665952881236979132428877094119803623156788480594191317336195339081900896836642647578184852564475714631563114415075674705063240268065917689478813714351428589040413266520770772368093693512215488037610160226193740944842564250825424232927884943336646088118188808865187196355144354222917007349988847957858075259665886449919696507934309417549034912951675695455763636525762923982834815389955829786005605734169407140215129445451635662584696077471703512519246553326975801922322386776279012492230560578511149068164903618698205935866315230032450140701669255293301448978611029654086773385490152329858349969559241251022488033764002448416175181255147292907018686941763654499556696690471450849061613086954253147407245194433031329379417603565095719500905933906446961690659398916892740312134500154883585029840523098921319084009743279828895204334717815222743674026143309953709117274435661109676489950436879647079927121236882662300940819615959858027097854554603680733061212998506525681509156275629153071359495581485048135286256188624054813328854095856998677434282738821306812641490685552185597503074923802703025413282696134582077852867472088966137364021857288447804348411020480532982284553113715213197739414893340159523259681713464294687695924819395702054450967929053655338627053743973884088260974805274746470044178866922511201607454696379170116215584945097624654491700201491169906503795078885409041586008641769538861043165509227889670158318694368526528835118898709853927627542200518045883996377299037314150740687995442469228225111074070229468559780378926680067137692887673133787492758049467957174491549394073519607243729509432564060970712575486098047933051016368953906716978255646530544999318814763983743831084028024541291969631952912523933814177737887142093020843124208253488630383118367651201279188400833235204990184885300231812961627879578101283115139683222013018166095062200073410310160860760811615551923217309649136850720172727343325087667693683938534724312697848721403870882240665221602967254670027410501316855374684016635568870127537781565893575101035443378395308844205798540541318960494124261952329411984453597795324380605797922922719176581510245144900006713471630718289233093399837179575533427399227664513793132747345426893909856643054508737708628312329209796942425727640585941861215709699721435482419740944754031812024425247834595718923438173407152986866774488513350219093025317370468486707341719719826687354358963022837226556194135145723341469317798545329462625468445541005503306545146681616309240759062559503255653470193355873332077219379636718401897538099578573476018330245677223355871754649960262300591298643183743111460820660842592659452565164034729171091964568743247393568170624075294395200029584697654010275993552173397492609333386343920843205600116414358251860208505062158291971274273086114192766180653285372652562121514942623908650807812858585131985651929798968698628258326437341006347546854266297464035088562863270914255418469280807846624527464756066310305028807806087939700016475094499001755829065140783934916182520029989687306434841612062737771888639477934771671691216578243526140022627395940852834065474565083680880793688816033291276098702344983146601242226257136837066264615775730925804480824481341772324204647366919463856639349030397432642461464931155136026574632636580505665675336961666612503238093277362448340490310751061517016905986774844800858651734234313437264686577219001479809790218125614853115462524090390814941326815761204933380632864164843641807419009697074085029580343915333594587929961465428694242893974613595368699761190141354904964691192852486752117356952403430102521931459021448637442097877572081390512058802397101154050334571252363831988811412265167305442764962745302052701361438889759098185470600432066947022111402635336765781033326944470796272618146272402291636334319926935667501119085621965493138201220923237894400714679627439636179907571807527427122426964228146514164510427196506977033081251787908716822225993086146733275076428549343326860870526911041068903385909957053280921008782100975731781489406217948723928462097063448880012949277603452976793651836855288804428403941664394745892471377512569905728515739560550024476377471975089805307072156395115596726183784739692927722837443243946207571216833172298855117899365188836220549334407959971279175414843952781522658308250491509196653799999582619942116973102591407740490011788482286694146121892667555255809890407222081182407267990424294260629585639876563483704907885643167177465499525561024814693419815423079975212455042503098290150958424154417379180920483645816004524148550144637434030680977521713576420325319857412142203312827321112480220407730432996872214782101759954959828636846471687441157629235590150852248733756381591531870898436971948706288363501329263585538974169502403234864598013445913597276242572902598334643768167207755657434094911911919867809130507814233831941133071095374955308973616213017906132894170251350700111968823228765908000472188748452320778209086879591202212012625867671403675616210180147958954485002006611940093243110018871089745947847906121805861323862060188378634196475594104438445281393343056675717876948081645845511105029086600901271198997884018531470322115018610939537580994530953701184246312181202298288878331707552548904228822312854936420066361227676347623911554247271294185842447339526160471610461011744806911549068871375130856836649600674337918306359378291250166982489048979083055279179889711858820411091608329412089833430438435289495867942130502452791770837631151263264794225866883970872917295777916104859070917047306547159260330474385330099017244155578307090583539921643482453604781346295701297251888134467307095304727190715552650683008747491079932518500816514479070807494021545782194588923503150549296870851039068138824632647764848940444568120567681094399353649059343383742833892207199519731189505195991100281472611379476583671526770316023684583164646606504664909302841247623289264954194789762869417835832611332903222089883608863003076928222913958415237531817100177876581310482986630188253277929031567062139155592539418506339592227851350449182114648820159197017445046274813989475642304339656790564777921277384202074075423444848734600081524103137086236562742342250223585828381143577727929669061288367602169005008649936766898822487654298663077749789940052170694957415654023227161200892321125765926978492977269861184059136650663002791139940188999775228637714348172455307044892962484735126759727381829925553552748918853351283017431752198250289280015441087164347153981250879353739990420854036704246948027559779768759015114501671181087098371243979923303957386540746207930452709367357554654063039119851112584921569687419209218709331194921275715714711433599239404653884239306821083409934474302687580263384550456812270355307377490421784385639059002944594138313502100419237903541397972956651041483064809945568013934401627314091872878680126103027232075175596698458228658255145404081800129676272034495546518030745015054172944689680281744171393558870736725432085458932420686116739683569706601186463762355438309598424532180109576672609567639265817234172440216647860315701672985093887571136577936946476340133277686640217392425173554388576261269356897093981668563463532501324757519086184059575455955900293242221618247497393215156241065854257234745302368156469202700333143801853764124208864382531185725420940680837431035918550966324385397520474937998596459134533072851529254701283768246516821489266929276014440430872254075658240597019477437664109952583724263385825644464161271626396966858856667090652986378444416006913822338084252968556492477811008960762948587855494678878519039969671983822082120829181862669064090243227345640266256398746132592002820918670021897180002249394617366552810119810169584047317821964497359019423770830157671408064703245910223007253095148085681487903064186391732072036789361924228714841431345316525912368370476707678489972994163103427996344551581500549164881529904699010905079543351035708184944082960867250516153857620167509049151664143739636081939207924152267201525375763517080022327596596603627849685096521610026277563697012245280868291637997957762783511722505976993857920479817135260515336446508398680676353176090238618812007509168079832354156967161706616641784090128553347200812272587033209782256875111750405195909844282320142294003500301147772816061237902527278519210610783317480752497159277507070960460564615825834806256963706193657907656765823643597171364669220298418230008351757771345230103211603158060104296807252352105517869259826185177864367775906936122355297318046440383627664802118993755326482528604719628131433225797119957412812710028682652691474232955335415831885244632607815696453812531853799980069658977514764665524886918211013422329966406392865629120807444720583243639844506251817277454931374601551952803044362578688635986005793311270385411668984110142693795786022126808496607303419492647388638626101140740153908696102376145715926374367857537280905482225744518063776548378548279796199861718456124505311546111994228645612472817492611668198543075872002359462943440357175047476450005234607303052493447089546687807957705537146764002530069123121659946019568414094907798720191096551137754703196698010455665631584014802385370800987937849267521927996317326795518511386659870337266492598546444010894946821147133110083376348632171945369890426047048602348580761522169183442914565225195828170195717452143255277434100160258147165746082334719671415923769797838671351791686657701939150896617090825392706389193402149118295855256728091026371493508325188522671625219114421086180341831691181374575180845172898065600615479034493438190500423213729786862372321084299638639706374710865298902108555020012741265913781083935873604958088221439460049021345937433321497432253565974269051753178181489757449229892719066620837422874657624643111074890711422515355382148977855858951936711769696372644840886095380761466583532586593003231381111467863806103166134110388556496138353810663096882711496269030851469549239977074836160145423709523668898948650168870381847138604280364329658179510142751016417237450105568881160347066943988950150934361045199303682003307241394312327886153982123284525003877605928189904160764256837626997069430707291392707493924311078911533160379152339999851145576508574018870538665577246841801152815422842636863558337554113006285344233388016773381267891063754114644839780215407350201937365916446719017641846649386780407046847155478548559849091077145584290799911108216339079111572370935377757446817519336551661466622400020326582148792649131586585660618042849075125113377563569628515715404615414879453749721179033855748071800046072601861055778672442269662157325444431949208358621021400756050794775399700055062512948666682503945387579122771694799157971910569634905522339359527019636341787476474290324453272382669796657276252819373978212138693805092885637322249368545463521235716637824955006087949894308531854283835685056090398670370723060417132928042141975363841970028091196396805442242106451100398181894482574746059364240026948289804679216946414843863222135678897537399413310926791901908366503260319413770974073043204299124460686083879002834117486304156326084500269260453040785093758209136832449763859912267363268177725185058413582182629564486869545534017876237462401910823455266419189094592556606208980345923215169572555048309266872498585654935499350124268079091758247531549007220761356579399404225962025884782076787947583867725431862250098446310885752364599319332257294085603807822347265264660837019355926741920805281126308274463749112954439542390918345392703219638606988476533460528881688221598599204163344321921998303272322632913457495566192848448389495505021957373546930057791860617751588893137925653292955995195079196448824204987985519900763166121045454008602326290857809028071580848863319118334493308739431802128541748042683030992367048024998380298709616225146802741834705282985590534599607917195845468290444469230564051598825372322477260021850185994183936402562392175196019690886851951372472104172885790037138182457020250574956777070377355370067972860207834720620785484459650724751834858796993423929454963411895181318755379326153993954015961543970117259186810100015747730040789145494725860276037015212287434499584127923201030950229448069125878668024747095917835866127195651323188022736672903526592945252505975266666138965555759722996376946568315963250607895557088416254193539943115784629403458818359311808342060755300030641545802226257483175299661265843573842015060134474848152755873647198433940841675519847907015435892349065670295684899332066138661985289726237723579368712462946352976149307310145747291502518255883623704758426037561332782921134036808162055151050229918995979349096593554755898674379002810102430571099907880709334818870975910003115828318191078851317972420174658358939791921937507654373452116550638517614171499570198855129328148126842937913036474968715521027564039482310173708569496012958494452109827101129586380457460025488744187524507883910275793814713227671558567797786060224438493218734627326341861193877426134913009326203837934970590262630267147321593984651160134307976196594658003940442919528243822627993103072401114734121701986139776927892233794663924723636767262305745422047375882786370488153996057390370132954879256808700064689037225763960372395808708027994059168423137354510561973454282366209629266926630364552503784406964007248820620823961407462194932829060441214024302971966999885240000924981312863444986122820008752561717334450371997997136695592389340502532654530407899748984734253512849880243841052141980477858411260927427685355212590084731498239574308625249886658229150353423294245164956382990889733292195658057463868967686201714325158153582384284977067749153917302114262644733009119076022938329068885077614577070329619974286148628034221009047492003081448498578214349078192652937377963748808889436871134962401793640695495913260798168701675593613887955874255282538190797296845981617750474932310044634361359706818174562943447595148598528537593178501412935410728493919114821395639692509086589694454662160631135491997358893264912618980596935883939135876439075775372746575928008644577504649084021846382843260919984059437980540060686575733286819836523537414617887738108341309227698510483707337915689057055933087122187365590285904889289325094387677417459594349959137219620784272047515254339401438975296855185739201941418786430798070793779707212445064037692073380325747745937625434686207806713999563658635108357907787682853145551551321387917352638319755685814824949129593572455386841863668476565570398785568077022488618592920252470007491624521646250485356619386628449838716241113565670099069222044812124124032446849252398989324495785383819799564795622921672187047473933278684446184422458908973961777610148063230972103970600876666102505180103113664511912032776279475484149083534213372933873363760595586851956309422496912214035162137672507851735468039104712853286038729123361195257334028977877176391748473074763402944621469878750191740275435698111116160897697837977736643109732425132613045056333820624153686583524466142917036392553508024869816462876350724108052887776264262169407332881297909394344739414690559987192514987588393224010919843485341958253569347171233546576830200663444135988606220164755494273180623203755610118045894808933652862003003189924338299344361336754721840920214568795032808961618843063107363024905421306181459891165445874297080055111969539194810107892308395275827057627728462762190606761173072850413242166777622810039880948163378041700335444740272249909965969578642170018677459819640663500558308921801104774438001883954196195103699413690206522201373825635728939803985528605875281475266066949249922270329717331118073768271743317382773779258858004620734708253272995069800464928319638396439120874920136843671087025534085983183132964495373400417936737778333801145446947000737280514907250449574682339979206040995714795161679353875390893651681453098120071798969337630754249550244498548403641486425738552486679704465428542470783844457842132436135902700206106190490368147089199215068939847611705039072819792834481162871481176535407467491931314822766005652464142675844095451061937634790989734252320283510635570624587584199390349101227770135126274356956133342379436000130417928432683950537010520459741786091998016429327640098499758398114818073418745485798096066596186960664110561484663643274076423023217571000866414956813692568779338477770897751296388295922179872266874150638872194450275436169253862169096800889760239762717820528609717146140851301455138640453620463492422484116667600858644102977159735583554447624196402923568824324408880449723363697206652407747323275623191440589438510428351973219483950466067754798800741290842579190569875056290771670305628786993728927901802962608024197046229448409908048632208655438327030788410302022607998440445172030649751319522558489197634718570145430111943724025147991292467726727603097883669592365227343168867604322785443249026640119656588566050622208170052800309092873026930489226288777325263202971608177079041053613294975411864437710338344778714209645861541061215732926728651327937603557139380095752379106884421615837380789195017625311195305422118167445239589997870859870747812284263863606219257907255226397908309347851407150950194033172837648567451202680500127832492442189483943267791234138987015422256235451070657733566619827144916512064410449398652643172611331838124647256367173699734983830510571726222029147601709897016690912779932605232990914676614654771998825206217093992631120922336346761451010901029195116195419105224004465695986373929295390762938097695474113924866016871683440656901510864450213184126019611054081996201530454326801112998760561776600325813234359005196738643772373085704209631282587204094101817189878906061573474904424708586671927009804589648698585355656216710981343597051524549132292312046636904788202758695672418423402007002250397336075355914523916197068918082865882211810244753581923819296368247969043132182858770919205763564916560280580476421448126353226105692712978295043386760894801426230370116456406288949109770320492756298034346688886308896264437634728483323273339102017181332429421345904345880903771622565494260517964488818985768983033798277924929879129238055175442736649214258061151587896705810541752172140987769204249646407424086221933775131750306679197518821443958237716960968725958920895911001176575127972976353998377308454846997633197828094104415733295255452717164180439071283523946009949596311897632860862937767731697334999744371952655331983443807974435180543901554354516794281400519042126023420542616009412162975772782613860399190066630922866349218733582738069956524161073312405398705715880120605572602104497680554379378090412988417233612361959669718933558285428578520699973415789481234612805774760576938548280189880703606001961408386608514860504658537818627923937821850793580473705290469617390563481694216576151886681517742974201917879092639535665635587562453487907603472154174354401041587165984112140489286167695901275044205382346322548168782242656890360547580344371628737404355870244460922001875049608124630874717138366858482163223181756183916970196835573260331762467819391549831946450311777037535853595047120900055653257770928253189174778455470772401190289243114920198927449347996346408472154262452716951895665255320804907920271345796023879194084780735103257367824387881412237558927231737221019541712433526317914856445110240012061601664265488695323954069217881738839596336543017461701454902901775685120318277394454882438220409159013008372779617173175199032588400399159251373073178979370839419009928705005867754688362123551665537550505586974660955690528632633899944737677345145082533590730220150925144607405746409080579247646599899492933034017960117682442406602267747822664406676693981266627756326181402416912750410956876174425693505419207782147047130369275036270001203893997181166138528274274244338395561734379851006212183526541231580001438551268249671945474269893376653579994048793593324033429558675552275782375468666740135575187993562839992159678642020183532479391207051036147605537352085943196323092534274775500774038155727085335920122993656910592114731365548473108176791666028197555023856971703972315847148189468546781660337371507455730820790133445292984857668255817339406965884412411503520106206294362200617129356998496914173167882760460374681053846599806506115808172465992664975153538939818309683325318032075732605480745270788271762237467737193823954552273143631993289703101103837339836843455999286404130022202539345315089551843067982303466063551155603989434719128155010311039939772237124813112239232729420861940457362811387326889483408513594989059826999883974692598971138062005379811600831002350822409012038122223851586549440033497273786598639328009962638668360908295512589620627098172979939321699200480921699491781481919923984502534649930685846788102435680535305433558115798663256161105819095302510774178063803326639393281117759146763694100107843628592242489282465017750835663990127290251817981142389337048142894254105838012481223891539567530410556810365424536480811730627827294465218819194273971165078014874527251084740554616473075003830624198862797708074787964497976229216605053074345007527832445939294766226848611005257879378772072312854242042995777853590140497539209292895525104406907103613633690051351903669171285273833557619235978176948088415999231213046808739441181192676138260807076036928245701511674616246958346348769739709859044426719882068831580141527596565402980112706400979551521264155575027399019043905781520503193834641604044492728293108615248704865989113011497520208929775223275038357750783571563974453551295620887372012389500317400714322394157743946232152964096352892454455160740483137006695624888833156071836099140170988211040559249543157870434402914581969559558729790883631488143594884259291020527891888211835033346765300054707452522278571795233771099367608564891764864661188380372192355659710093312263218737816760011435005836844372556592946760689447635138676524951541500529217138252090590731146914931301428940130032393052977628690337823077606056524099475863468755596433503195958832955447722808197314176775801229760970809102748654496929048295346974961691752427438414568716631154968287981524495949352517163355852244798558537350011011832751162883594116958860737053940361875368316968981016068639115336098955778312646525904381094285304614731892045941926292140157593634501197884971932413504838635658096394947499441054538846595303420172455083903399400467976496342966424616897533082056200712398809548488447533127187162030927632443676444590252142599951381364270720979897262445438422630370259609468861964936503736406026802199681560863670729382508712890659760894939244308381367248520236757399496385078523836222743656427655163048501532752648414766278958141462400354405730364011783930146987052282507174695461903142942948542015505689631923865513518723577768064416961096506984566379226586801203951311812388263212163925629784729841482560970477315991870847320809245058135620471478533381095662306821814303486122696967389044780634617449095221678283794184294595847131095422699545893513921039893137233741525811005226530028329737852689486876111521125817113562183254811193458828297317715101017934831487549740336330237485278514333298223968146647269022960641580892469891428587111284575802201919242953396589841137843344534663750314043131460823676896704372293427065534986970445210141292582111102626234578085534915788746430420706418849254490346693783832203349882739426857446797990858129098217203949724552507697810493954351295450413567842645438637408722444149221705798427525062054555722546153588436951610550884854556276106174300088055888380432596332045055896533640794913693889889897971628545292161270543244469641111724480240965655980137413000649687588349387948421983441313709562335422955262029135787555441317742089139226230569202801488929789254587436208809131420105559207312689414164781217495394809513782130878655202447613033292500942375438278467028822179525866995311869987372637748574957339105759697206527011031187746726635919248274565416777305521644435283811868542026040409820561045261059543115052015473313720699556162198597832633430056648873055069046750259247217460295571057077159272527755552547727370171595054086118267483841001017977164788309693503583189718955910940290314153564843262753070861100746850512718277480830852105214776717280782961549115110937992457660652536377281662634272305676297172638862888753683567568636827293537638307658356640993798695509281981355035847862481335326503029491133887851761182688988061183027209761238940916447917651328105902416760334668681609268210782230944044365759305804696289809897524343230919284428097451012058428816241201460776756140622035447329109114129747917437725570897176357584261223456321186776222701998348185684429094701201210697624756774270328408601498903581812971328905305842846623606167353160570546453960144825478417513551360265037297836252063886993093548987682572048381040439170266839044155145380390275265756081594943392218226930196108643959241033317971395609222166834744035118762343824048885762287806007243747124542629859734094850930531805233153967790723671227810865740831901858521166127306728256255342010061768189022477256497695351085669716870848826656889854833797190080654602846128352898532355956250386590653921747574393475663313995169635419816686843737739495199316112809925334931113807122728783496545577806343206337724216307296302392499279245992253949909855881440947489000583705786265420761214681423668675560653662811517983096867584771104959137007915620019420319619596505129671635436281123648542167181203695376029041095407025834531293589902052878392364099969604081418560391452742545775729416968154062599456326101132805477706594589055566578034853429723579828540062417267616437873703545025953886450740012798000997672035844756159890436554932940270615469978482997896229172899639766864090587174193269411276657800156453276628442162482958535484323858820667969544292762567021124965078299289509789675484745740020679623925254175962350135897011613344141200416818516511210200301472967951875133019075796330578307597538173598841865473262201750444227472074633655616416755768550576122827860773746890028167504024715927672666639009961631710711972881827793870387533718103963248747119916518756573250536364424272183650327798802064456459893370358607673343963571030326490644033303861554367329322994181864246382222355679014678150299510863529930422160407846446882667342276294716135454314767335688541106473836898028074903113580221455471546269850504095115052653601734247286631327639343696540384299683737238974155791849824314250873458152339594776386962219347661479560256103984600857944748568448319714572250082693107448916561309402298185327131190288737659978594198234506177332530934595481127287622302288376407407376876215187062426454841513957304457824354185412779786757513579229983501715743365602458141955123727316364111889568753439648613166480925524221178823730227590465228954637529329333151283969301028447253259926352060834390613040575763310325451098328238374426826835863134865834051578079161828176360033215078909562451746889569386393603955786171364004207132096171560450501006026012513519041180715498373971787776148611131486994212592601205856457045221752523489718851553821536812165375017906397372985058121316527918323146848001547082523082891177812690855644736310951294878974869733908107108590704363899681508248287204516924921292298978155159392525329730081482414987797272632629569892774481768683302577669922880296784788869004007337636422885358304308512672209038043971044629630195135275888683061667629752481235358069202687753612331265406249632678091256362099279224662254851728995817508881396598511968436673430206116150576017476189114907426012355827583107217807310061366436565917564396912276670050238697438194364809864119016038928762833093950090624822377537495448658030261291669692954877108173357441563146623127509633504493052573860428643028338740315055988121609972247731124092574785586713083310347150383012860786190790606318036976730643258796272622585607161540457642719754829311193501127122316822639815120426552310591564270980998320035458619231321199282748413477153573958409256593509058994480191070561047140180078959452189410551904558491716142338533868205044210147876371294745050771432791355675551310219756217346929695016485880125278871126454512172925689106285006439715928820273430090842702399046538975799050206435094774731777468106445639869579343700550184570588002477618464984686679458527189866754194586874994194871702152114312568873910547845611681894633868490574577753059551913803917314222744500857408598867113569831006748723094744341707312398409493818099857567195030132240358233115358780240689740247288266723017638086798986579836710997867694178134405621338863867917383231457539203763065941208910300720309783267394136431229511402948224715934154805530690655098514225503120450359883977673483137390007660314204642760595857263699510153819490765955540572902627621886766611226115026769237259119519049819742942966602383841624494212790941919845398025007650769165368891635996562393123503143653380940405861427710574442291990376814313772709873121816523052969687927729013219054812950034425083152061619594733769809682357384101527370268887481135069137830358537923938995189315079475254011468648732533280501488663768348663383206713106193346347590609345106655245251500325191949366952882761653340027317188984185358062800430065800080123307607421352042339170037830477116380643321655854521458984595972658276900702733500796177983242145901010061647060042011557467549020780328833947579895852736561925041527411049628202742202173014279558945772287938236386474019724160818736968072308778704186899255300240167760637616045739504717107835237827263626142652371285879687249980989624034250238423927717692685870026320883145894737633191307814446137177646619195451574083756963563240317387348283143228995068710164851063294069172769716370800241829427705729927741244169447292831646051093449852339002425011436066389860954362427577319192276006742058607011513210754295256597855865942822658310822677271255813451132811579034772619806832774414665521395766742550291702909862269389104633175344884768963639312061896484955028118571015228578686965677736478530549086273852166461917005770506565911489104190260130875122753548286286201347924785073871550820174176738059763910873471195783614564107392641987087688301701576171801003364450462073960719334475655481490234203044962558033741410366194879255008901016048186194524507950132998161674069479994979527246734638911353078650469605073154750286287978636030274991630162325381253399816809605084379077895442931025435733573804407900283750492353217534006559703258334149521261169222062309647752489652256516277392454798145079728665328834113389785743216049975810286289329813180212250451987516350000606462283152405574591164359289839057233471338943379212959798116165617459794024960183336404912172819386440939865103503122403713519133140072754305423061904458719081818321406561255428786357001994937744147520253776405483964414568426442051651723026551145481394256012759250268806790169707697748158825815704093089132223242437903151308645739241862182590851041312004650747401683437070065932085805471045479943644197410149299950545860331282208182699175413324190435838625937835301101830236600253951811332848197024284961411077939617417312944449655922920308687010123778239025234317709215193215464246561429600969036408872589651715856089166129787513075072045426978375107210318722430604810742886561663341095368612049225726354638852311404738757290246120622902566880449941270339583245419384362268732007868796464489790811766566478035401916431737941033089525765916692921470741813920124702987438448692596238703603010093082596615711224528725635099872521581436746749512086111107939987811432403198946514690702339895100344141866927650938738582807480378057902998645139783130002737151118215258561383420993689717278392793527546507840012311495157441245491470036400578597163907410041529770612064764781734453987547434571035434858300571794882253343657938715935938727945250073097395867126296724408903567934098835836558082866492605778209685805572920233963301945603424113753993800147799790907953079682187103850810381365129669142541053782779132916841949728084918359970134060866078730123399895690766909561584383253086028089181523320898028671144677060694134446121761201537250407994033984350687529756428096571876781348783514055736353086573333685942193933280592558621931942209383128191953475103973145929689531098145694267309339114422865497893602021770986848712154672670123860617666335789559303400727242388800675886297363868382478902680454509433929859150085611947590062149849490560675635774280609758102258251420988186690664578655991529459494505682442523851461137726808421185883471009116530718140001957915869346574640691778790339846015931563464939828390711427657896790358784412140204806219506839632982632994908863335012305180018017391887648525904459670652133848883068239479366317342294765153331210616672185332489739890667714857334663894945154995486790819080830716443088168299173962141208068048337328004562763006619178884857266089842421110679266883738085992009446612813605523095374426348930716440474641040097720937023966392300806961988093499527422776831090976931366311165193273333643090117095195749778215267165221161325733938064443536436635296994328216747111830020517885977096218873299854299193353018927838466319534767662808364495987893371469423240676453067179799045333929255967931916305089984074779936613953686254557042324966483191411256514216197083511946748410548234388417594817403390356921610802871692825492118090360762845284607942305955171424768276959014289791237761497576756342402585182308242882694763950929445289039712800738335707483289116611540201637532604186706487058206291533684325687004789395736591569567785660898759216950000787330165430233372497406343962891216717341642009136400586886664743550237318907835291158199005853418406669309367394332364273733540726887538612759576401052679012393306742833562498827375134671098588663674035886192288127326786466615713768472987523338104154371268943939706142564403951993456909765036010022117137069086342171787073773875794958336519740637929490496246537108774354728739700762364874147615186956704197485931386212715220531096044048864183605107275240794848421582400476764945231293996215931825289741769863359773465194082317623721214931124473847944129117951548075811694093996564904785118061057771610153115328862789577486404599630384473694845373839651717076873932848517708889952908443860738292362862726037255110975563340281516317453782325966159487606637713339463725614220380870841852851071298486536583832040423355536668478009076895416558406686681654280998382385832283803491977389252010182940672790017956588551229076197390883376727976782976951697830113542062809822395171864770448506224085455384319455354891485806811646926121973386429728129485750787045015564493521084841716453660112360975426084116501856266366244974197516922557371053984450894130996158492562063920510282986572488255342344360852818290365465719348273504874674606759973165073384061734122249022145036735867455525408220197305901354933651155074503448202149074424244212176234430513494452434651961364062248799335263442687435137978228163630214838334317249734175577316349957867084602209180593199087733202253345949953086908795188045731972347772340858335743212180198100702803331888169520810450855166146234761491210392654459555299046384974930231076174147185478520017144599273356091117383115173336213822802251277275272292236578685175424296447092213230300936901770925396281810081402671597894443747109846549460662915921597561862416905002968082409317394430696645852218627520935801985975409616124206906342238639119155555409811831790311417606223153474284471179540474562841345064697590259412649905962375532105914248760639826076679417409745847718957078099668959531833518097398237165763728743258463721011489806318066853907379741660439974250897401612603486364213596167810747844209031800877344811296404237850206541216641311533849706383207603376926085595970955317571633284882888577542840404277274496417875797808096185891933493094405089954729782738106810974281607508354506071428375650583138817277082535051061290262768214926768480152255053993032270861495464165997286300837758254028047936531637050573344378568534106782883426145607679764571982520634647604636417073848806390059721969519080023000409516370192343718366475827061307999894173961054341669284002525913731305975165805641648430899112087621720189740601802884840554332777899761669801572398254865330661892136596998522134435332974824901646462392189713150800956944447373489053123828101320731750674625478137908985494964128520301469511989734953274282838748097449489449133229010541347883369131177548932624682337683526487782252836481211251008357971981023809398956324207164719641448725294929275496582803327636675798138997447385385724212178302981555232547470018249574630968770167379025148521939554830070107086041108300607811311284593452519918650090327029001581882587459410485995336243472592166440884846552977971804012571689001969261186901802866195672928868543557670597815926035123646487178665528258942149666920235663835474803368961821003001216494692364142047608320881773390243568293284566532261663617462594847576024533473681634319069461722637328549877328200860933775012875290942841632596967707607505119992188334160071537391838522639419703121947123304230576416527238774999768991793216395211910748965014813626820225519624288125987471247234982216747995651400465572196006383138863118508464577359633702472470048009674321585893224621201512392399624573141428162533713562360444281573846023694795764889757936965556423146225439042940925293846437059689936775443031074233860606569385812558247067499803235811885114918831436759998130289401784670694928877170189708518223798441930603044470065380590114009547248049621561834672841997398816123947924788556648738029781502966666012332319390423448816722427300821518243755796979906125571025075068454826954967747309917891768899506666633707104760554648269027692493048957880431326097537586132670823200300657228972399159906636109429554034294629018469959491223723384199888795177541837134754058675365132697473712007918349954206055363245816360434241225002464499979046431788130081395578287037638162135254477819332295574405012362043652668390505292367831264633505922454917502352933501038073665449485067885671270167091919520968990788753979448510655735111677166734471830792345345025766375404815674193615817122136912699087587988534305141379569233558416696251444011049425933310170157813930736867583487759748773643400763670303404384483591918626988466434324090701708132505606522760662064942178653524490979520579446893573240537983698288385457757851569824221155972149522397599207262762066245676643123876553701137568359218533012921422772378621977363335814734531439957842321253814489732076392631069538907237072815365785049264178171447482691282266347304875447175497590421701195663377122183373602393869075434992429708414770765760105357760935235516204678909912394793704474141213524496558958623022637613873546839381042058303820465685190549412172289884915412387783880601391602622046549416604328826724471650433072326804968225528885284249859770117157231260221283594181005523884249114903031416566056622508189241553211569548704067261189644183193952195721323305621982990907740195918868978524780427533159722003628782358732943462406706988618901462016443088767106894306716098947945105270403233119065403589376243818829858480145982335742160252586167721531365100189368855739486444905652627832317828976848398843896263261682751167117824535183184984820094730456905490382705784758153867249586558634855174613641155704222842233212561753957087287416035042169017119641745622172999832963082343470823386941346447425167487769431709324669458932734093259823971752222574609897140052711233518695608617038028463411378119179511173626975234225118158720535354887325741916149167612550822670625899101945564845234902719411289609903838312351044603158579261251895798499134595490033014722358663229965908775112164058406992858996484708442845292783792134981474964793537502553904933441978835177519600696219832189433984861925495249618694218305378719184027416703114802001490689208511558177788204662987196472443904857181156389285515651844597575866831542011114778538610621129383347162326823530482963626220242061266262205553576281696355363940102461030126381418763113633501769150261393243948883225094491206216814387735969816141448899265707979403561505391872611191328078196016190424856901229198837880117216255428662052240186984191697440942053731834039371208959014627757942081756395046773907731752714983537305786906579892437925376688861998716369877096472998760732795502445997440825689075055484817839069986832130770667205930309501116553348925737699612493278196482757755346462852980095239309826607586524884841873976854380233599916717961325242514050434349302773909298117244395612024775026018556018413237698221408769537933305490744038447016827114131533219926887827191752713343469602662969653873241901478372507381047277569267042847106486424276600008587441887523927909412966393056875269527836284444535692587544994019721788987244577618556588781322652587573922776823819681653400371281680259960935314763568016575746198611715869558223666802725439673391635541771905453541587047394974513423203023685740648475250446413868436947274765326056777429736507540424851659272566363576337385275343034948843364562318947808770256791866269176853813243704650472077123078954051090222565695187826481561523509517724625764645539415228507463731923839949293855758563384764797702039003934280316897684716834263119293328358203481860172374829773027123118244968939149982337221865657712633095845966645488628189336426442895036328742683005086695863055905461070361895745054499548874622330222465578188581228929290892996454564029302744336033090916477115589525134195258783375968153497639215542116098697039444873578611249983003477971303963699279006614466056199058573657748816878413100867326276031045467756970028165641958731775289516518365529787767655522380499385514163174020078067747541574943801268743538923945146616404019588421261280535573966963674701962987468100480791200083452555438259713105213507422782915200968649757792364717595739612994763109741352396146585252073822966237143085298162729449249178346124076360970280681039023802325551506630479258975121094592974480311765463840743118774501697491650221746912412791634364949866748002828382360839822611141876907543854376330719926914823864739700754520709919865175374380323563826108825986469840417421310320447978028518558470347977839610320407330821692750075899809739349808152362820071843346841943788200838864024794473746425110240812763253212116222738821614678905240367988462469744023720091104882450517269544721650375673760410863440117183948985696313762502733946358183881941689278569005391459643768671390915441224792320026290653578665252485921100917568819203288019242612846072632156753983051960857957907647057871798957908867952364545046312623091859921494563108788018354906946831087695645328712016166670788083311540711065713880776468436387561518495966444512910935072757580669866063641954046068954227262198112815141840953423623935868117773029599029906619991843148577685231303169610412697605747643426208867001601636226520945358222900487630966749202433474230799425267855526982524561562777143971806994834050474567167245813242723019499144904746637981048267022600983667281161273791607074711359962990291458294029366517364461484236978519723742568737615932923717851287662758185779985686005088038986532748409096768186324492995660384744412162835501406378024902834920232549582052439094660532581313995782475495571834930399679697476696507398735248471496533975658177844245261891068915467451219941456664012298995650253081042352165127158584903454653485762057812043026352076089848275591583630267470498724777085610881642813020244639388882784077104124532817851264891498850557718068533269090515351045655124180060920164653772200439722634522566758080889042586127275418439248457236735901372908849267163325108689818631762345947058635279779707526816436416057805919524668435308096852639348383947215698436568727149030232375929556037079273857809884885425979134315063507260936376539822563045695757444196314567288347586502799642727345523202130933031701009790550165492120253664875852637706140911339946618500180352264615962015884955708049775826780689340419909162601167684776862377688619152354552065000595792409046569943062763064578188743555321601924574701455385008022210328139915424873941566742918548011659301527968637043670065153471770138919765148165720046080238039087002076191028180623152346572554566054293466898282805044910986181389067461495208509998359826634491593776449618816891570264568077615143028113603168007154261062626851602925661048666361492576105089639539757818641277096846441605033734993333848936203057761766949582039318518186827434065902564215045445156027210902526538853022147969110908117826181400397923250879869328502305453051156526419628391723995965914098604262170884793773555217581714149592446638238191813117926705402623740223519003587532868757642950518980562887742512462773323418839532237310244235987387220625167987771627078142150013488761545065011794256191600611380821919882206282681127003306073703501288658247749761531786807323290425043709995421856792950044473642566524712824672088969488742075119780966824321966129257074225376257427092538763240774049441280204726709793915933270966155433565756157724200136712465329638197747408574715251369495388317775156880381600299936479952884860114251910228863939746647137101240530034393781801235842139577134822766268996568598135687723274541495864451962507335721262522614111695277600615375861437865206718169497460915253232759432608372335805043794350920638843343141027582635344175221568423291341085351592790505134235327138202675832770317881447103195147656368069156126555418322550565229260269372725681560241171863525162169825053392743910522378359288820070272870941057317110273585702419656024817556864894128522654730098455843905028901625593319751647849259649946049536864746985286350249115662319963215388065880520123570638047433215208926334109945929260249157722988400010525944500728918474699388273029210792414294158478471395769265972956569942800305902487180696752945828380659290841436562536201063802054245494776494721794498768627344422609979719678239932100082967736880424154293245977763005701562347860860001338391141937593532864268858650443751908315553903556886880163681004709264797780860318302603485555502488124844064351886736198423767344292311757469229780591054834107458694249264549292421513666295785588178189042905185430438022950385320102349989384916526920195856454833420157155350086591452024596386335654638576302194730383681510931619188134939463668437354782367779364239284475265746961633461947892043727462968440598192936572110001704115170253116870915077623920836132620832420840210750190083918921892628564963874555483137288207758739865297640867133809117451413029241019558387048566048099859323431755343605612864109009813731486202409670539202876237740766609875091113963089098255246841599602088770110962025690337358486992882426342262587494630878050119165257195319490053146741690436693472991380990658754029037251596482954210588109495064473615611000873012268837005505522887469932393501894482921510331660015174653880382520065021757547906653166314132007281489773209798480013508617445540067699185786281644037527116934202757643883999145538802545197113378382766190726611549479514442361142201025747932596705951251355988924079813589964243140561250268388964825557344905588327089378259404163088465372437278165283004831256886615664353388444091374108806299531675884664931381477467435917772343992178401462849747632055880820304829973632590823102053514408116681212465025225069110326232344467893599486607812484624047662408158105276411819791705455524781032975594308481316250833161977002937667733059434934735999692322804471982707120812595022783048226761679795601814712799571539575604717211603629602007405298421894655565665401647768014432753280578297920924564841337661959965391091079165795091619131963102864236091541860495634860701374925537103477550469555340711541390511906457203124239405119512468154377975561921952919950619113556994518065325985632542442032414882675172987753818530262435140197774028715262548338373535281806043051855566254332265891907714979887115752548092508842826788577692036344646850958638178742816658762738776507743520563921789886596908798081483502638211185821589637048632769269768940114019481894403231162976349076921360378656485815360499279215405542528608065782128498671317174350163564109484032565650321051062942249912290090435660273180955804657786142597014156563386261110124692573510540057966747341251184112460541930268672942270690171772154529683972573124293054064410653628055986619256854661042313392961827895680210299739361046159346087711181424526080683034627054796320706331617985916543959362174615324231311595376902929302065913755180804615455298277573345234203208390987709202958928336765007303161899335927379552827244468675016721926620073317178372150290768735109627421263852713895502119096240702596147876511631954202471748332254647676063548669694039331674257987967673224863801298997475175647149197562440113212456332981748109155850456504072804180222153870427271007165245401544569792172740251930858931583471924256970329127862244956658636367611770255820232059603278917249896877183625442189746310348410010769356526065862611082205863816848932804671425321377349723973407677321931522420248511875511811243707423321109555988181444036676292698714652537523339360206508513544829563988064113274682660590659887402868562741123258295042660089680160082314621566556952766198705042306104782246068724898019092276179592989568082359047201149942491184281648573680486571422099955758913201023849514490737280642674083446528779760240286344284032324822796706065895015105920953434022769579033974674536915137658231403568426200318616177463729650861064342608532592746219138700372403696844435550181506695271731473879030911406980369415174743715237572577866113900569392242162508766935821867243594491593739411638383140615687042587225922366924889885413991526552177094273500798243745013069503943718519502793269452037944654579634697382911655969935906133799222670853856753512509018696419149005932601496299988098901319308514641248514200439942200610906191381769047141677194974359668493256159568550819263047146912772833041158253285015426069252807371993209872491009119176608458954838288986609344901922179037365276145928882541917956561112004479160745574099318908842294028188791829056689432925459101810045490310781188626285519527777059149945012298979467162158142417811283007161336883050560010659609737575933733990799521586169309695635708448807286096735867197792125635327809597847390598805085299934025693509875776768368915222932151476266475389223797669294610942165535968364498783886946656505312734129611077202749925476281755529152283672994017270458144449275357028086816975219037789373059756773739102390959736318360861191556748952171944179625720613704026171934720745088965118119801530316455296679396420334861003348266184512057789508609443917323292440763645742296347386448510862518126923635105340048277425788272874926001893388269786065348546584493384006807908255146762947494639530367808902405640895655272056439402214101618953193939951967167475296002789903391699322065815132083379116402589025378758108817130617612652614767739596400960404942322138677844675576350378347664162027448440232156676790643640479183098752649302047252822615786379326379771268043379915382498175163706292866251261952296023341973769668046596438729372244373830107955769272593010898095615702305287638424765913381981566220478610277318967667711402485620477430561012444479167051011141176183482380722865775637218509306544147889216090281543923040056556192487821649515167528778153162696793611770894087083402425874436708528820901395736723798200138240323875371025389049876822168387787190295555745767303452366797611290796826284393407668491728448645240374450158960895382192485166984304613461840679691891334579671858360318838015286827378687977901617242318123822153461356463651041399735302321045233876146045384714465583911270313714015854059817185895915685514068612523647129839065593884844210553274965353364322832310702839692865024695485102829128954221831056284440773531327010505995024413926707770110521732104459511142291351290499968621557068641414056580132184745233389580741518523742553170188917698810254724159425026502395696575216555405242991571510347030851936934061881551112326219886707177108958860127632756675839827421379228888372204107782334700385893221236393460785924940789850734732366977562575062096826571173852180351402540405809169862368223675170206010004929981111857348650690731506210400120623521926566581670165879868452401543935058473717631209322017286244453360942723475580362213895958836049815929647449378007800311933241841245158557879753664857189081807044405622749383590009757208683176183124402528787293970396212256200731294316557602215888709956656495532881772938050327583197300614676662963406194007928497276302572434996970539882418268072257288488190534109592697974266275298282666606123404627597509582701789805547875299501307007657749839963098288207152782137220751340942128293610510557999437277344290665016551985466917805462875409038741943910225372071770773452807030118032225800501980575410409943052905418539598505416778279987994442303582400610876044540332719714096366497145449852868654185279852360313915420396928354218364125546440245195299748793525511481374408951339504881965040503853615612558464699717173730573797197247253658647489162883921960928949069698217400558960211120681233403272337384341099125805322391560687626099570070356278336078035354439361061057612877910095339304715185209510704812342639927763566423217626927176045460812045088660204843822549547731081052812156793330635326615971702676671517952003313242305646620136283185656429377237674441306920230514829891517854762630410795233795763451300283247228503588742532073124129459308176159152664717552373059895974361610973614892991752562530001732980144584410880574301625662487467023980602053759924615122028640767383142602666171215344189790980855175572537236801279872556082421056710436412796444011635084051523633903930953738596545515353447316634410820262683033458518207399816167758732066276190630505494579263643803925996147963469949652247373400750164205223961732654488539555431757188180738043682634892501208089992529066764514621985047728457200371757259314409336148422526608261543254471318699512265900997006129685573158719103313554022968213222796369023327354149202108429142648848689013165051115857003314331649355593987747584007978104087453903834637281041226109544204046244027163052667427336573977416602687033448549805375619803206395986473544969325694069257160681876903720723695312338206687095088697211049492252090136402725022047363430894907020304658831265664406569109806169167558859301259449685183782365201373012536290272879703081243957892239901756975091770818432136087186643557211501180924883032906274585713392866341063869861132526221854444926531316653648875840473325649311748452267539359502777200479501602929092589652444921710576389695456409671015794426202142269852404045568827194979702562625439743467475076804325437175504142235846207421512315082406083483258511846305317138229730920896320793974486096947984445366365888293602146216304117866377966636497232780513733864111236201404575729306525049220510801000015336687895066145399336956845248483288590066397997075490791536060319627066082805818939195290908803493494624525568002261421745069756221921759332639402425674751009501611294200176659946081731044210559247868564794290576626079586986416911280602910820016751024876143181008703928479463235845343245479072383751184696001368349866179081525716219037798644384244611695586720982347838495305867695856510214194498317023086106166141897589396864985622990570763567165827195608707752899215342329939378461177852678608441755122827940647271326779168460611444391662819747214485796366375604520416408340418054959951637257059284779665287574856838201580678865399721292566676197927103384605765421515650250026931538719188950523040330322232158697833888274304012245969804321002491465131806678826035267332754136873738846681146860314112357845666384331196619421450977273358457685534173026561604534560558852439392680699618457202531635982260098405737314055771959378818692494252340173669416906682403198454257889592637480648341811388782231064006028837592160889359084728546450954807087884505657485364526287105662221823129625194588766637069985396826389417728510446296915636702043038723699425361085137572489946056305863285516331850638680468014444039472791244386257940527431718324310971946631660005859393054672041533452339246277586664416315096769664310339414268295131710599205468392407922803427037691052558680104344030530502421777018442977734194968720507162599140310531612505798789370735774032709920204869842567855702535992527351871240957354519913597683805701320791529736460003781388989189087471585939692895425941417242306199103339817054011342216801037007466008611576878138202983824220263656098938833217912623860537734441169076315650191936916408145689550606022364855423698085398275291125532703584533803824812252891828705609814145865557138371313631067086187787749244936979325745768486651374483419792211247380795121860989873348823900702278108780753735622584742832879348457606510779861794649120378341131065451867776118471546537133895877862000858298207519020436143516171545780776288566864153130973124807182369378972992033560501212547964369682353203952822509108777480151772076944366442348362797744678350929970669516124808798407188566210446567193737565490480525874117907694034362397233181241293834389234202197083121295479557204584833399736309299382352755658799635687650316840309023245723852921730938652172512488999328066331311925815487851132508304062560539994424307791487673540237057029881364879766261632358213147954480962724000815710099640142445714887974479460618534490414168871444844177897409179247393655201822404671898128680646510994136832065334769131672886381079547222099161502391967905795620603361202555669626985324393889438085848528152347010027389619658991756071625117230385946618577031902401587470813080923421351197270398566095607172976153641876444125107012734396987044492651360032480508521601757698373834811227440596253702323833196198284532847054423612462893316648676746950918177233017331898150889829215147574560751228158284446207646973047186647094803937868628656309062888363422235026254297583843596275171208679433717719695748501370457727899165435835370066664145051693366184908519355047297089379383776084757138759070178438272804756010585159515866007753871176475937432109728980942599376892287638297367152574453948132404286028817186821444766410496453263806000016395314082983265667628754523378074276378743041309253271547123847112421877747217841469067681653155314176297344691398517452153961068100197655091652199107419360484671939322840683721170122742487770536021028162121864100519090397372877523578605950829983793459327555517916256534459399064533804111731111862114612934470738527511171075348686548488507335954249504889833444725009587648173881701093339330976646195706480742713233128926784349301831069144293416463045049488608244612348873143216401151441994394017068434807039971397198153910801680359213450711945320525812206408910156778420700266847013481493851498065092003079547410019306675459727781762841817588271896162452568775803470921446641651642711503550372362363596444199915797184388978213247081602237026384277888543352238737974479756634281967368039714953040859780950915331149253824696615656338987571612517220198740611130677948403501770452905555158501274006719606766905375142847220203748139481836119303504968772683088620008664008029076142405991911264493088755271504454957507670665205469838861195764768276683251974742425458878895824052648328801097151005350883128678451945090864420283068947918278184871655658946244421299072846102027797862089774639501865548140162092226046963338144988024484875530868060329584361266725416727036962414355523826082873305139942694276133026509635150137617125647274432722794788193856171716918229333038678149004499246059273379139684253899187448476138320537328071711384584182600922411663448935132304862298189869122878612910259183535681291292542373618147588723655188315505738890469280004694700746000757770913490840850583517451698766438120784830545208777793142795365536161588981006357548476490798110042441647254776651880346499374692231521003206533952973861531563646412544480961488846646995643022108033917366752257898865379220216605266973344192160462321722819850790885694714618365969374074335155469865755046315052093736102771642104588331843891638904256445925047070954514676477918102063623363307767200935704057373263498298063573505305396754430278977307298350397592314393102378244230622449057005582803662696664309649287824159221159751413609134702069333845325356352750302696393705439516005095151239299289105614574895660722288393074022012890107617653350155847220184175555047734847396782572563837302365534234074932698220203378052197449232678027366672959110975427921484261848594702562239921301032952787190844772971420487308836814943941479793210649543397847313247291050612034758875920608206442783887224610939244771461417575062012960715319196405977663439755421967600486072782298485061732529283505817254381137524298087537008949176138554534585863648354503700539188065375672604208832823453307581784631813224066203191772130826171776052603829079538983239568986648324261345889356133635471136962162629383836936393155249667674278546233777473068862400315058380465171429706961016799043033800464867083827974882487116857436332371333393999151769335861283015321848026432665350026798105049986301300192787653767007907893611122475438803424786074590708415752156383627252230173624381095014830868633948019302138946283270809923032234931588760501317827714056396883225638730569098807983485074859835844949642284523298257770348721465562402161791498755882375559781716548017706164968911292769979603668871329458577884094568767480991592012946350595338571560093446659593144980848852488530879236578266651055034836721587550597011222434359075251746241164920565397011536173748272812003512885346972273844942960337512637393232713774574474080354808200913428158351018741032203220036423606454864816212743094089120054058413769414996511302654266430718215834545445061280982021593396606532534219375465082316789860066547877727675471068195744580568905406355074766662113285496581615588292728917290987692740439093432337871734128437235594340111434977253717173734947506840629753715198357837260898895294681520257637730162688127241680060675346792649782918631220545790222073762589169799397735122995876457836554973944752392109503698003398850659879225574859306891483478734956756744774864418567333788401787207531222958922907680717473631030372039089260737624932507094107055082424794384639153103756881180775014299735384424449528374772257964740358699429656417090605754735799600192150674718299062135834608287000172332757629592943400978596478025584230366244644718335466128618224404584485698324885927597673817997710357891187440068561633674554310402290386919263437860031688088446502894374278461432074376766262922720469920221310308723611688345556766916251674348057806029338249640382310182296483556233536752117973111277921602437580828820994172103980550885554095506241066500049662773907358038178197892033605265532028332725694281726791656645785017500604940739305763896933490348052349039806483214590159608569553279613262002765808268996761806942004811887833166630276727486029261272757991219757895148053334911729258269392800688248333713195843970170619524882852593125393442460004466116397977766914834455780403775538257926618238390176705370075283250697857792982405187238781661759461974766093070695724611202430664210936539580563056447341260105077518757325638314481187509813792862665441610779570487091762306156339933982596020452740648531755293503963700646542629790852978234213535081264461589496770873148372877460784420509544503907816157521589698354781534669544925810105366571626504772636309700881887102829206046383886245440986651718685968654353239487756859913359425168470748108655259049428078186316222785315364181562667053360857675314158062477668604844061229600238141968831169298710098279230230690813619822768472065331011293304566713378754570843175052652061356458325229135487630638700747027433182049021293727674933750028520988234055033130079977083196474681686742592533203184614856810993570669510262981683601059023548755235076554586503850070243252761991410776813398103452931464257949035065832000551000843845438960961564416340246097501201275405180432523073928580816219524620248610446716733954966869955312830115267690597069562005361915214770378490647639566781424654993289741945564957554397468235335770439483231476988547591661433154283334749813225845153470750775182702457761253836223921964438808330016115303672069633848537528603813571231979912534340355883059235472143679209915723082713743141119969609176874520669686977925098550239522505466840066923631578171451908193190729080383189663818944614415880967343823259581299374713463462842727234748890664977029306905836330393393693605133440511915051447697222159527797265710443733869036369016318498124946858688854288653461163391390999467553228001227102114616629165074708162638599708698703525403710360419194451239790144668695378676714023965068034946742665186915742753199728637646218756692867937613130352902200643852109930437626944826623707618998065321108403436206782112236153200490665988385483959446264871692776304167855179860529783398458463618364904674009179035058409621245516511223984975826395104668057478023003881130365779624573171382936486940839699587130377124127776099105660228954539143500825768670880054399629781979676242618462971521794127557627406367838623719852155113591903383814999194661497011140293909331469135159963939181495260878762385738309929428730984444875826579887329081748254150703951682190455797141424510306344207402283469448695026394898418660323222210985727020234534885930227538418008715704655143173040687309742241497045530576680388517509344317888265840038843001204770631115131904180825323149127497079977915875393890828678439788597671313093565092759753466596527396660848929755040986202766221276341924742934533559761483690157365513903033781940989237337418364258985207834514950955137817828070360855344278603027531546482557033452611359324785258261646436068982075897369781820255791811604540158531841260945761726688489985475315148988730840263724356764021815331641092143923113984520078997667068200721481035894415760505203606888529849863293126120121957454172907594445057451131475950260847690889546516538964527545824030166975820244803031014135683341158849166478047625349762457961626433939365381821976918019731000639376327262460057497906977792580035092262427918020135593376009914219032989937144911226099118456322395144243389512443895205543481966019005982768290746425115881832922316978943704538404038799689466546747981625057760921385174311910985606132885454229021840592230218122395346270738617589797740224824281388718702111958349001093708818331388770998323173618234493153408229071614952344150134179007703208177633741828764095668537156945867644808842462810697007281708784481830934204429953698395569726300302015367495963719015245213941020052655617938529271676150239907351463863327574757325167147703263493697162779181501798268196380030970561981894482183947039938541404848746475173997145021271754239822391713170084231389342363823349688022765285668323291365731510291867886475972999298632155584957001132279193033226896983297617750753296075002372132463109041524700002626203643478526605960823746695313645210041993859931619097333059031596924105870104883536576918589891686242440458290806253138360127089058616671553298929207265029796426298971861567458555696923645713431593389096415252995519334332778595314152207477652855605395847995075394976086704806645584429966524893317316089270589119120210244604547082781573628939679845757306995538790090343075457959038018963046133834691141504134854740670065691026769114351939723031410256130532980271794459479522576016649214765018766483049533789460661016830186395477400682124329289925070218859231083339359615481168756637613294662570394265394868352359909371043771918714750813036882054112554150215537671685364170645509845271738019782180990364976444625242861592942584037421336143460011452713716880246626979977352743363956982584249327211946024202440099165270175867450237595707856310319089868477185960680136879262902814760327485728694627631194424112849895690573269761714711343068278386679973082864441964847922480372808518783124525114368954942848410993488764449712095656876941810150256734184002979479269152887586245655021492923241168693788246904209708033708861560403659054305973198756464900951499821805410350681854001356882692832678537298107806605897309369853043347021765525383413442110054726538242717828223795254135805018530072931724414685220252718412320294411434193624061775390745484149747780371275367451962228029225393267050868640733351882929181656990383079337951534531524570289205481906641825483672140670692318102981391826669866053720512268971353477679010132489798196880484776649792002510963389440976000458065191673820833638454028097897567865271063973868065387324194264578833695568779587064790639206136548765122063427442430346761768260187636084943210474532755628644942618995589967046683689712803875646282475589170813751578129791543477643662700380550599404490836272183074587068124467724243101319276420954253648786077523231626419393849526029431491704673452158081536447331887776364967211384865127750191799902074883971804513995094103926509209500875189850523869139570328113327464633036057315074722621803623547652284696909725274458068329068956044090646049967662369591536386685913620870867665962266071844753224186100482726765849677566970180681547794060413260499654089514167852327609993003678011565150981818977206061663155993212292402602004695375200092348841125636885191760128431172426318497157920582556587494591017315294386045208355755372036094229310732491871872507687095630219145829864201424839690955770665217069811418970033866740462528537796776070236332688823609426733039449737230396537772074238701982125256426119293533792364105761342036596598588411576499717562472798145740946092922591374925387606724826693471158434704999639862957132955794683527978275326480839774340649384837669194221321957186587263969135541682553728958458007281079575427270186386018781678841936290419452782512323403413557542098091049092437137014994587240899496666295711862920537808657062490346508198304990419234594321547569414982847405724605468758430634199068213139003210810988416471289203861107509357978424466253005216732642464903641093426322551698553844911394213767638765245240833150342602249320301939120603690445748767552900653486173535190092639148193718420195194842995084151282615975993899993554616861534713084995600103080677064577137598230553726804174098155360082004876533289241639455473170685164538022898174388202777704652233513393256706368192704560959134549872072254769553855754731935533982349966920011988569243469492404427978650574603499525016165075224231165799987303792699501648770476590858889365631885101868326676984302724943313346135614057688653255262908626175673591666645524302064235618457258613180402466354499150443422686894315989168679739144502856589953207213888724734042422358777000835501374931012294402482741215529830888802182522446987316513811476913568816061625227881865351117068102011086745426927964118613378850989648613806046149676825825263236945919240145247191610864085827821988107624997271199953658340291615054110990187457459898822780037937173462473630539282551208850550234756881105068022889941085443816676710069194464411815322895643012889875938231559024294442838198784805387939570620674727720528267122283629524121433473232130054982134914474936699609511312167742804601298164456030891190549852436158730384202114588823990653808358328309795418014225158198620323677236796364655241744950547975871539378336600947713339657572061472249095243348436659614094639065686597803331861169249687485545630711664293203864674724083503492147744481209359266354004293118100388288002236173462418193617524324270234258431038513808946360902923954581307539955244872825962092108740084363738179555875449939068386095750517555891213431847045806058930281698512677769248148799662452708426197890166614827277614093950073649747433599454716515073329912856270619021537102751167134134769141731851439284120053819111447812172356779522955427534124219639620459733289183302088611092739214124020348256199197491292092863124998382226382593088242979712135991231448264047589710872860913384263876675817339289134903034060829332553633699167424424950129068693187632132316976513362709932612361370810767463388056394078174250805673165448535261308420273581913363189006876539498286055137996789215646789402140513299047509173153673270585608117508674392834712460517777174703660398604011288170141353360660576052317504802732703283615284526532669085715826761819926178541227230351940213072585842930740319147578734381428418838634510128889408304547565835216510361050203778153551601051475004954233047319498181526964445268355293779015187773425738086149880834917457986566988131759368077043282622407056515231866679726022276831167634676758382715535437255687593264857736759669103503852298251880245106875356161048112960270378463135020849550379826873265003126526125149825490523446255332569911895526598298079876260469890757280454775459339507031762570031144064827039662244309684260048563524624545145683325766651065007716767479927271100462652270214424384238595619750384248292108412596504340245617200969801689910460042032275362555617381241490666669111017514410827245441705080294398914377272883061987901801897666942116674566198798121482738034397287484271071273230331885923307727456150880198733664859474217163483756725399244975545386649915908918423394716908505568087750159953197279052751287462595141550233415808056550861258657847050691142360440112848397659977026426517877816441940446202372379751278543088878924697790106258976343872750560262124122278241511106290703154924062156623466935561626155518536497035427038726437654930813847108047788361561066159296789525258286507239427060644045968637395261584480465742831509207413350652118458925025183006921499479794104010561631166712600996785121433189425740384823411985556790834279939835887616292002826477144704300967067525837235784393089186919249172141055241594336976485819950517449344767656373387220398245507336956631520394867172249896198415653502746094274073004011922462968722176570691739444433753128802144552263888630594786320933509269911039940213560670493404670095482356873540180351772950497916082753869219206722831602867716614722197797213043670684348162461012261324660426954769996528752665581560657517180678273918916501797553880560142419517025102628766926267548509802738137680735439003428981079614327355553370585497278961098967206796825255173284709243721076557607163648540061389379843699501956864141387132374275375014250682195038268255488812025360427351272831174916682746548031676538083748234680762345213909758961987024833675158708752663206370883348107225649068210052792736613572884281645161677753532591557986855329510034153708929005303621900603119481194424404803648104893700870667412887922224109075840217949273601841812205496071870927265577551038058429510331933939574041569492934542520975420370481818053469960322077802686577286203832251747711957482653534150888521762309801261436088246130248681247710179612005725092790990328846299529040041961539242132479638233814297899142933022087279906583754482803860764037515511017907475924577489476248183437321544461492583185652039954067260921318390896475477053849679086730902915743046182354715118348690334242358882785008268077667812531665671419260802746894803763161465465601612853284474328714640543758963212891004388539479065503129630306414948810447988871177023392703894273045773907929485544787554343340291375340864059150802136432082920641683236467656696805493648074808273681230175160314628888755499129023297046570698189365727807336988318313687273179927973475568249508740609961146331923282683917346566813995682079746544286163865475739363397131274524417210126430181216588641094369327712806463170770028189555372064275310699959134021719463742829155176653726750321581614752908519797705579872932011630276492077167721503280293414211121341425698068763815341686813270572874864125206225384981844320972779469039856774172030888751089258571733068545954857739439407812637333093641734481865012965879511201269884958810758163123301672718184707450171522702554830544010690237303905104824994727987364912155392164542730474116326754837645471886094977994340350685694964637336477373719197489680328823896375846603851233572392066795071445586840500982118040927320628971180929491178683591964489520595620405609177034029763210340941770389156370433293232661251271430589441298406600655428395511569485565765617093359133826439206446098374525536751183101025446654511748033617742904738419061697290713131657100299020364717136715454837527532624913337923838438682945521114307541079246650987079268517394719788170282522542969268009713850208392811934383200256181758762669740912021193507657669197551548369567865959468248083787482556962140821944883369374452715140487702070923641035295936785725241629468791514551865285335392844500969633329972194968281687853595610780437001875063480940313800019992485957015959190679386056140258465280995270596604066266231797860363819729562247133359632912579800239272055753011037534718604207722929862881354017840722571987296344233512262905416367136900737328586897680238229020266229414917978754052270466357509429318772562333630401408211724548768298178195992029321828088431818788654439810478216010917366056394739391219787890715609723098782256320471953604734623633283565239871725531444361757637662047969617993171711338525702518873960065135990225943827148825515442947122654364520038834180052497543800153128096866023747235638410264470447620455686940337381773349126439556855960712757618963877129130833635320548467961451206001972598018047292602032232036773663496854593130093464290858412197881741068018468405804307808164988716134347081282890106511056493462672278090606754350461080083225289013358877135835513932064091659498800184700627456727200248923276685314826074104635271788687591854135825052487714614712324186922104069155483851147670823001147263231551193809885333683747883805318705182178332625956578218041003639992289448689059874250037627006274977172927252172164886671432040593574348741226831301882896535624948006818064229141028188506552158852493011872079855719794188914559119044241425929924006120246672529561322326894959864110183035226836033574110801683769267822694208917061862204941034034176356575174182546076335335338356368542414074975349950847792731310760655109621190561905364082919812334620178019063619531065036695875060988754381824809683404776762647901266395842179155760923129818052499125856384749754827306120331133089453486878938830833106183561889773448682462403236697284956832921414361559701374547885387813613431824389688071889732271918731418575175975023884362272680960859001621009644355358757833691550657135063146127085162531837009231547840113533835831372926061348419419077575362819904140831599254078985388452871734270293034118004147376717868411982863515702209823905834041271693634159074057760609568232116307903993713980667589671530471976752780093949409238931814831684117323387812437222158261374783534488252046860314654681736178124703973472618612783922669676709536049618463626813469502140862693575227511984424108962925106553414738708432069327948813257806581769573227884266713005805084237381630207268937105105605125956598353242771401016702078739644286898339206632820397011647243529138454741437348808980546654860501832207297068191307332686405732199968966810629275719703131529104705364580009398877895298244617097348365352432093017889384364854987842854878736141029712265962841082872110740703853324824197806327916967043456194505232765234423673838000299786986072789394458759455900603724668829491702931804899127606462699896280442561614802465662407543440092175478088493534745179809090892286420526954563421525706182754625736788172737005579224288094055659837345987222483451862338412269645607166776332840218517642150619666665512142303537767265413856455695419199134643208249890671498684143034124446263280898454320824925964233809782641826655109125956162278311810150722912371186631545609890226378897959657598857178773546073659047146460325660346486083604269867242970346623289209696353798314580981921183722603366258792604603004241042303421785483394428680959993154427880171135975333580667585861869777659450797102600368753398039128643595751758641076010654240282622241792706765926488527602134062832418586197342834533137457940489709188713367164146972167425830269559283495069959269587601309871508598407410362691783668256023760888668033673752185413027979780497965806194924600690811547230486283222723728641115808751130333219658601765184723020792613174669132212760769357403983969294139735930162797089513552599344048470566297248951208508470718414214862953519398787534710018901506769589642270517903308214469781880642106711671186454102768583406997119247279086532086730988240044236890197707863876964955759506504652204707848596932090577555643211034212822286455334827699480491122263498579729818836002926663841726583155530458591404073761088607071083263251376102596744811919068594450399289503870022999201422929523108745398599595639653921968417553556435790490746577574548364042568399797822503490840440442978103563786809811760894691004230616005985881353054269581082307091999375972894559168885551585132559061304135094025481940434794755401949347026287511100622025837197088929887039411657320796910239140880659141231068678047744718012091696225838353701079184561871730882951703313511275053905347755397423656892909047160876238711878143832141203355345882656743836969418828523116143920222532468521463035178460248256663611700747491990035434590023559452658025053095853210717598226538175601837434492549501725750731817000712637667415267378998640140591827472842423929729681212892128697934601238595465136489330174983552915923461931467728552902329980354186547223235910968144858269337206888285336981898788731133503332448774872957587317302395049386762758725338099398658530055804625325538477942930553260287414878404224257008260520063157026533779557603553798461721557335587099409179170346975465652069639420939234241921638181301828167999453604140039031717160302497518981770770230156756272747231065388227168998851077816335302950897050653829004624605920950988310333386357063673794144609602001485838836370465282146229498067129897422999168160509936464522339637557086635094095266715107172951178558395159114176128733368133904683092596107325407446171789727172129433522768778794031214796592933692795368806206533673365496891300393948080094678632885720991778459068343407189207300867312396496646540422798386098121586843105819052413933543562601648661033857522583835655145566064931948385916200525874391307955764876589403490602121225630715860465820712459401888946404112837317221995660001043718242568183202415373573018437685866101301244516584690665299232882001535413126388714450672100793103942975268204472139318561832752580245813380822900386827896607434800006976532822969308615237805770465028243497915273288015834229852689959609236081649150180504374007120688313962723242050916258747165010576460938236031237930304265965814224605845221618546507865111107541728592984544093767749899391594290243406258066809237701895643029893308557539724055303596188157497977876476863732824902342038992797670902296397792853911753488021294768769063702293150063913182891912382318272546027600614432387956259730689406446028274875889004948452931660771422721374223349585811632460681417034016002212648444191093836111279630751695526038009858793348921363825922748795630652333065404020250338395225076797290017123628994608345667159619662048485589018417344302152762646563321627107418553398496270641537644830827305473702342893357133466459267899058539792028266201316753734995691608234728120845388361883464878050338933199470765224722106902867314313393555481959292503732504983417685575758647276438456033935343909261793346550503241964767249990773204019248396505465680416994648620077712770522220669117723152720852110928707754876648190288455085184693454837077176400900318788317300074347712497221081984520775548423666710584862434834693347782850510413665931712210509330623284329482210251609855919456407257873823395086182316792990558359306972364744651393193872459824538241730117789126122617449062925338870713708239784334365350458221531436538199252060665206170024891980379929031454965849105442905580640466239680150320201593261938186858926696267515501684645626376901647829442017258109106925795607738634860893520454793815769592121293608892767961639200831180761308991488092612809056752281727172187594635573043656495423773095755550367363225952293825874191305107089545804808943234815400710385462898137844830587631422289944197358602581717271850445215345723026262694572865902589247497698272913735044925675902410983274282342992204014765045938181379023126476446838946153651183500462331410496281520593633792372196428603523441965192968923603844885477941853819805991684445636934219014776821402252974029678844753444086543857686689057856724908194715231348181851507224741329158495672176363430033901832477878207973041214764551413118828637724867746886504178072867835892722431668032975934329360598101869858242123532445165454101107077472036257312686597771736381688197458588335086340353230033476006167346474087225037212229650058684904197444091156118635122645719386001094763381644246748748084274471274511361531062587832447671724247660573153685147966342013858824511780974174648224422595353858374256439929952606139175774961221168886139111086808771705091595159432417740859624515108575596666037991412574874838120141413937009267608475269914035444346399917889126638716030719663126322261365804725194885060292884295473304695081544309195667571804662421799222664709674187530008238258306105211017756436745595982133522451514469690198697155772535695541922067276620756465753256491347383028046723736160754986295961287220020511627079467850801183745555656157543062157374859071817914318004235442049788513479128343673439556457582664834469189897161197927014368073056243878550747910301491454478014163812062191804456578932625740001556959425882533123891075939643951244659598277157520190823870677544727544292791758029688719083019834462888547309197162969094663633684369839203725120078227125623426457445427047026149457251858408580772066630788700068737638563508636520589012202813253434815807380115566421182730856762305708702027915175184367437475302087065854505701863910014745223640290350346468012328746980259560666202246310933719372289221283712070610851508489975203667423424841213970353006781588266999432817381871283039423013254561476154665341080540429930313739659644655773773284598251228349682712216513168521336420926325340910997021817059992675219099455549838009552946851975313282201877911592391529362378823712759387877238283118530117131476200067445279035170941236392159998889452567892438918950322003944501508647062331812751861650657063663532460134656826069001678759963474487067074498906465338062786034209890140472971696255477646444427680040130395592335247718177936465170609787098330283945126888917385355576426169954814311025077890818488689827510810309814725512405477374244420892824752226193639232700771999698506047420300087956147019625405296916448644535183325281447291750718463845786171305522984580579467103076945039393112255298241684605924036037188565011791149783116373308667037217735271899054655916260274806995884474071442242319660978619603273104658145017449614411870117005283367508742106175015486701680508156246522682710670796060195914663432492127102243774932340045266977540520876900955877146535256834863304674476838000637087797333813908865047139808595048242791829624687983613766658534080674448315329611948699647027590538396116358006650329392832693144465574692355862906986191414423035908923491737820266045384714319488069252578151950308184136483252279403690831868719620977306151131868379603500308384905499637062702950503977113513223676860806419071912051410290198270968371551354523112612338723482200924748188850164226551951801817061552314119658003075566075832717783503738948639965301325484562553381977313058782525634842452099127037979074907326046777811467790268474782300038337687601535739980618420779192629735810070763651830416178626957836661694274998404317636345875866648733420416944907523416403484928202775722096307796650146712308366303324053418616938418810171700172903404450740958330315680139541642028113682569964190428578721727389158539024434871390053685887402770504692735715610068395689296417921937366349023521717188447542095914084708495869499480648445802551516347935008163219673903316159448493073307647840861264428406172509466075843254677411400426834735613938975268161204318017618359654131285775161697098723497778705092862680788255404866006265891938925419197255023890287289129042761287500664009131018185411299445936982842551222334008140422320156248211896458894405124639836168147113717711788381320465670703600748591612485063245914865913108377522121542855795389084665381007044266036393047068421189860194764306011412781854792910468972200747967507282016121113518133775613397602362720464016427444728786061819451643070877232949633645986415435983037944574051050212544980705827442978846914878969460604499449316076188647445201820453740473424009772802143031070490325630632848821673226209040713056703243141821299702414551741596929562631837710539812540461613984160886280149010151255487195430007015950250638221088051945611693896208540779268779054325496004215075904469447556717726641143677669507350265895005748685470098226725434966190973024951919774475844676524679646730589724774592202817942726442491036243113559796646987489216412761692601213349102928504201973961387931290503539613700706159155658498455277357899959684058970453924779038308987130860233524671007215401678766393079202486558393187848680278362928634868773213299682782131390163219182863281487833993098600664750365378490912081894087199136399631990027689477884556888396979788570102719750403124101493561172404443577720394322449233963079297987595616518624136530580224333963092670322004094024447226527559219429805048799844228046497440267800274285097964219068641155791949513460184798873742195462150558669035209821934717462420579382964768021885082138318413578276711400532052874654259352865306643662370936828549912971965612695457225468514463670057908916565403963158788248828437210875978499955018434161375213753688577959605562071227215677841564852725135791025059888201084070905970799222979405993775321723195769061481793456812429095104993338992855933718774369575417010113132299655034584892136908414844354077512039813043919921301377372183344952899041984132056914336362203597416541321607964464729309954059729434791246038747368602277369673931480186173012981109388929124817924736138467478222184327856305825424848609598069050137042212938309788315880891172675344135703904921672747364352786483659909226981731341142046799239217577072570008327680869587694117852011495418521598094643213659808564315446330240551449782304486763234690898585949309984956646826743876401677244713143666125664431365599734940285812145629055345046325657026338149596409930829616466957017572438499436186257829345510031815378803737256580788791079907477583543371906513357271290081268420060018595704190963136972992282171484099034415046413631611810553322610955349468204198503526312132711017892296262968999428777018384867730618256383234917276694998365468940910339561327998147117326348144220042180914928308353923842171672319342249941444803928417401548833586819542749637660803381538378436783613603766270459040708694123311184579655913857435292264072258823795800122471856107013265992662385655002261993902054945562426966029917367293236451156731083350317822326618501808518642708348365642328077111952617144121748645396886933248465655325329087512966424066610976265278783340596053622301305231799640812869565804145647980767149457456924551211411169324158910924148186379436366105488656177653112232455305007712085134261122957630443731264982453657480660486578364190915225107222196671703322641904826346029169723278011124425296347418719050284191951546579532302689129708399421903653575686744672380861137521040986259611248483776949233273314084193962775132482998509556836817023539726377004377325870047107563932211030401239136201006552606255860860179478018755016976347111092851165828298986152896536850496733064502715650868906661784654736482160590125080446386805804543980191945647301524247334608128290674028085140575006536650710247323711955780007537020270330254219054509390749629877996463793263862820131953534812726570394602906314940635712587783176705825842246665568209191415168794229773981897217878657703511599535635604175372484888466949013329620067280399963211856611355871652150412806104881235587491122252138038705480660697934096431424531098881678116200367712934709137622840359267873721139678789262642251301473464214447140669229004769047876069626617139661019585981883231821365284071789378681389987301960545383744812104441062433024314163512655029485344274854892689572834440438178391223360076791652248593655983836737882606500539048691981375162343205192553239248697867293041488611285443150138092821625307500361500405191650532368453021124592499760530595233576646741177094165938681264467076491186521146321365351558413225657236360533871092291528880785906065204208315897511122775795884775125670051378237753780203082099903690833766289632408505194169992712007156450374478995239507999378601034639482705699542802405800551990846336670915910949367492044699778928429365401184096360024996307044113855214530965447637949954617320012402951146164830704655259745764717848010983579763528418405040683210085555788560058082813965217009578276335766118302604755084647057778714298831812994632560297484952030255013498977132570072173337705510625505356330741072692157421870569500546436558979943558143109112050481358114379099651608174444613043148243012150433308371998463879981198625882141371300966725883276327367482965329082074512792288787180133312260266887408657835099184430860496211935054077420007818748262994042701716628666916930878319745459269364712100546048248358531208518526514075614527279272921208874812679602917149671507085333287848184164129367830389217648489012522689806528392995555648519033408081909886948337388462599584462315539872241406240040383819446729096040320293202760927820330584553792052549459817386591218888145892019596306660642312982549168310855670369285308084259538975320175020464805666581504274265158728967574618767095806892528313827381288055997739736038769040713732115488341449711086263543166628599593093897553081683277300565538276883218319912032736328610787562132975834459996682742550065306836514905429095623675015033797338430524476950469787385889496938449362557209177694475990369800864074988891958959860405847626870979526082344704763999158417802636372633046521337847657009947535267566170061695447592117488327832854343824893723582194472578919511742012237214034821388090709026005990896198310001155987450306385904762435150137148170737591454743434255326072919050910887359327518533552902812288050601023423265393430014622619903159668364646219380527477730559665121765415264365502090763695372563742084378270090946646470568659868923356722100236300210379757530435312804179390639001029839883367833189384836357412926453100439645404227480207519020813869398881647964340929890572835532184098954956693934717972889208137932643039645186186594308737472046242168390003098164997313198866373481105082387071876404161051464708070788615967402418033703947046250708787188814448350261511252756759367616418687264864903024333753461313398542408373042240320297273610704610294079810697707720358213243533800984729868166271547178520096831256422172256988229194017107297746616885644392449207292467867229084364607256817997983844153307639741843577317524777480507138623238580147709864865801699310448635279534181411528689675880989454212332812957246702272315405930466802999789978902328385372183111885206353583196470036870124298252774893305831709238898232693393631057680005088401201868304398467821706975654538730061844026775172875933129022394666972381588121186982393076734684502117409235934492189518927662948310437738420622656732350183291866352469932507512876856687912155620515035976086500607952904876447023641539312036839562325003115619897907619608237169795387750983195726930600106162368074890086819638075762417307274872266165271269631249891500924585402074391841809930716424381113844687004678326055160931387571410661420630861017894901309087111236580237117961851051600460124256792011262155858470653297036360264203879050638113710992921221807025230517712424359339441555593415506357656335534829786921085346872911274233332882740279758525455019345401985808808559757278844069483293403906975621446437070760221565416061223837378886315060949990232026733764187114478299296250706305504300715864454975473909036536504445582700357383928550719397440573711130844791666041484470242685142873309349298369613815630109828526756515037629519239431472285361422466166464338289884848268162764226885716704730714320148319510037830096510284615899998636518683026948766371137189276347770819060706927590649693460993034100147210353032886404083163535299996415556109746925558181087094127479668383019502474084372482822399149552935545742148637569637907461821786994802615154144762277001388861627941236428835225315863268830106718440484772564928998336947882399396309460902672459221663075682411160034188755122642569061296682051227123712411913703689174248104932500541302784163929626518062608520903570955675653860069515509688652379063875693024248449113704002167151500110225174333390134060318006530629112607932535059305165985885564271515469091749470062432493190184969995477411794271260138461841456302124545387569832291993180004898690793684857573090898444906285053995049144030257058346649029459967191534642366534710440917890500096084502718190816881728912879510188601803750223816584919814210360178372831915990545021712592551394249040478784946080602443582491216218524706256346279991015818516879241509721608032912279110244585443456286388114375461796278085823257407316192593502895939626034714387418506478152887994032725526876687138787035282276206910128946091457222082898792244787256070838686112657390626345523186492290516075588208911321293674365232577665284404353410566618930687841689801934573680165714136835640972373418948130108102315184601145785527185294266375061194359237654626363727542335715433251676850976018824406732490073117057362899158318607409265606748551960662387103318782585477811069297955062163351925472457209821813553389964898860902196689898409584258613908636938223102238936906657650469156063435802569575788880236613531683621846912609244657441671288174781131956146152997213719483391256290405210989265336527585711222188195688569047592272867005860408611763911295044480878709917219260328931013606922164586008203214075027621014191669117880260642869250749990086998361310072971644229766804599660170022319630725852015006426640038762668881425315023363600877538457354398793572516482854905538894631183630121942797974988322302749207318121763447512142939482118840660012931437204795756663239053033513696683414178176321112866969213920124313929469887378183511891464443315261724794369826499284125655672874590612353778681798270302670550619412096350301081194519249480110008285160528163989427735210662247313190924411064423899371609079493685105428759812464588463979960440165385610533895214676087199691118954521727698283578097824809348998650419500899158064195009564059487871897198280582868660820713610813557230473940786134531845442281361799888321200632449362435293371120558397189961390903291770458331989520577140435617056933135951376735147870836612153275800044956131121109194544676208194792124830062051437486194673062564792277132232016876345293808021143478024606952122289172515665403672735019297008471170835175557121568718689744969442869329263930304021279277875071649290569262895398717543629078202948850244392478140627604825102451233186433054834564851542178812713504648142486810268459887521288021772338590650242563013404892357791877275628263161639036325074760890464223152664278709994676845575803782386604792759244942077877222922129132506488643471654343906283370689081430536200457122806766823002395889171418906805019805410744657936466035132806909413042905142759965839387466122035075289975640126570395717116115186744282490723874823570283985160493664563692043398134439752164359766331647721141565358454650199342796329145052703875748214144731411951370771234948493696956659025796707271370025228336714020141878409788912301262662807132077959695345192651167082693323099226912167399485906864014213438990626001313114041431622708843896907871039419490105423771596909679127245163876194049548224549274257615335200489831016194723589178576890419467195814016338093474032901911310077214601724751177541001945089153348339718815185859857973596598863742027789028193947333947921686620346587234504654255596413389918995830092924264248341486933412484727659799267290562672361294756015208475871730878785249012730746481973647047655606683142453615697555420808863744789072260921860904529696543945419776348934591948769875013887647660384736753866290973295350689357842333488870478340727772593256789829006063137315376374079938894353818581060653213800458714901887473633570704192991622859337028445378409237774691663017577234219937958057602547947716032962655014646723303821601564096124169779881500605727356964601289652102853790860024894010475016523440592568853168506386312025904592449833954504727740855698967880424078116711557211196752553013313775415813620384122178231040063802976640714491997749056624592994248445820379729270018766847731972654528981855364947665935396887185138071474067789859922452577685910718276768545709731869293889106267577226714624672973496869424814281430774491563907343723917884455188164209975432075474329956071120660349092311940988016882292764911261608972955967790285935158443027506180300045260015250204606798747005984814127917192958851313564958646516108880029652728335367988005179121126559074739822821222532740045122124103400803898329653026749796727258365596780045677034023658073413377718594953905550623537141609341506508546134812071837885330157567969906677714634123945084470821436118920458134772614039556252205884106888629162428644110579961855004123225859700756751288219687159476498586437217251438875766877650081256801402010452706006056026148222651513140750919093896682152171961043556756249957138365524947478492080301878990354014490311941822250122795371694893221216972503597419298898286418700514377111648739546593755230170158218538579273745403075166882158749579101101434934913496420305913987816733992284025082906068197226761875395359185388554335792403921182082720567627926114275185613498526504561844853066742341536438114033783531354316091234438032341805460792682662569233276643249700075632688249060880486011250185536388330885616625911588553586721249914062204023927902509892127516860390565278078383659447548783129735071539204843759437375708336726341616497104982027076259061781584402976086717265716155183967944675358901472427092981354573656861786371412849279330357671688378654532894083093665641494557164747763268648745817908887711241855855253439237321679142684739047967619663191689817360201209966699180160204357847211115087135826622213752292336288659138202035321280306367883244754197923309209708502131810662260013746930692630561446207131799034704919201513955205562195827926653780909352913210041592908545356351462998022539398371613986273178915786736722512680634395283638444781540351346963869407901394629374733476370904642412086876664866340083500611429986786687780778204080245357564827002709589021902877918031689181766100139786947432010176142679534443077844772615240690516753171656692378758330073741585901368716678266915555335016809223595288290651899124081775854910989706340434797869840716471446300701571835880199406921150760435614185859204685487602859766445154245784403659797226910106340826082211892549611568792116464614559325324459904675732764442736921333253535275206968798719136743175529899361837814067161626923238744677208827297689930731261241145198277148073128109040931805097486054922308156908187934889960166593794291599778617899502370714725949489251552698202806188297395218727929354690392080019074901624692254509910961288603236056819344927510400263829880251091223424161410050909015216058129786353558706748617455954591841307258911079717263646771888627888580836273732027836878334622055200246703522611744943400847942701916535214293371146283232825406857586270380781586068365476103972367791003844981823676026991689220394761664351310936312156968906112063417447610810943198578866843949910858975757122851148637290681677206628525984824930283225484014274169802924978766766203094968303961566766532988978470964123220722528663610014624022709381846329538959279040585555013791581504893090372580291319127769842093136849689583605553272760789586969237593818191041626894125897964507535068862533716975333142148678055526608166369516856462109496189020427331630654438576275096701613458038646773172406953510398511639451548727982309467348303017305901493397834131744696551322029339747435294536698469324251791619924065517078146334075110027498660419208228812118373828012375872286042820483903400525875952177328429497492068172893524156445339789351599494277736347832827028410795125996057662262986449430532256609210103858837087279032085895895661234344816927155307509370543792066757997477951034433560862023474862564861690796458768993003072071610279395794370326157876780645601298445879362968625596717395396709943421915015600674613873059406906608502523549117979562384477515420196094449175884795112179766671781401259281452486590210775569847725999809656949950078226567464325076022712927085733072898029541005846548811931778759314516874501714723221358825936146604844910015624229728023146174416460623591551646514464395337986790108380485525093654801176008751562419562866453690363563702015301836088072318972639236731752744294870778305467696725556145216393813139483418849415081391292521744248752650500233474425245628713058260755181366046902512970949006072795244198662655548109572384129642923674464675137169724495538246318370451956701042480401492184581650554183597677702664971875061467621368119419411367504204388450187190106017716264849863707434359556355416606727690082471226092106346553488456426141973774794085357916861662348849359087252357319342623143364568110548149835725541689676098237864786021394996796149541309175653302261746293967999726197471684236112080720669089589978968348012423924750192074677229923280197486842991788507089999885880561718694130232469075635669418816568390709064400361347941892081993400790180531250109497669149035016136617536890598918907418728153168188638605629567755559027081573070180904447806559308102886527653639445352757482356188914642340034390050547398220847686616575156303754838830680047947840486788458805034315094896317781669693642398067843542797501364155168332457765584281003759830948552265179282935087562152484563787616603682677738046643566800100118511313127876753149493491337267483539792377685848164543752656877987901302777250403107653972117775901842008551580699898529728828958227214156107811065230763031410656458246569677300800207095332309414516817465734061880153828877450457489669072431963042163560444989043819376485652726057998594844183001384613557528698391714680402693970224734102579558457038887093151679221386107104557529277049773432114848866464326282850354559764150471181864859496089176041870194203820618428573634781607356192661678785471521472839614496918365098122759171242928347597124075376657613997009771079715667562267062826815253651617894999149662184695081840656964611959114097242221687022626135413239159717127508840285557549188035822827830563173256280097485080028899291437222273874751743830465752588139965875474693136010439091225296409415877001679529361306393662496285018166916007287263442298889246507356518261991028233097487985325052141499183449373882442885681602913917154697233648269437755528295089087579542098867560767319086208186957580552631052371591091014314734583725970430500096941113707099609674562888186145088675311846150221990423644697503399210350735077495324117173493978993352097808027398889990511071799041085233963064808719079916735069377916424379979103898053075942762619344002150745404786280330643028841161480706360445615544234317503532154095020733400171216585155406844903320850483667539727962480734877627584722928804148467985559517241922553120224761408272461092935864446435751747961497470074482066567894589190797732687366592284206534739827673050204635325370022940625176936015703268176294667832096441829091086682971535805344591672906942670398141533161368040438176268336765954331353487875013838346871325739876397011200711227017635979435092148791689060421935789920381107875800242507346653087688689558379931042829457713239708159716765642375341389489121779614326794418864886882281551394036444695491251184345268377326788015786605167972031308409844152735436697781435424410333204890098277304187593827249425300782836269368810068125719956196315576748368044193207323083854332792822600422380315413982209759418547788540004921191027446510226608585811336956666807245393769302336182988050031178625886017664532776154608495327455315941699939888521116151725101271809205748412744738575528771130424494678689753921778733060280781915451610937667616208688700837361948352122425822769065232259351661408347545695395977194845841956961549464523584826653142170577339356707863803644794040878386178657624553145817075822338031062836244680432803539172080608202051378398446295826689942693205284844030190529087351190462176498325937585632403341635646004689763432616299397961723137077262118032816658670116327333409256682053294962942639502282551828853618372106362106151285181458664860226760430218692422497943148399102877568846444113946830944407834564697732938719094204357345217034558768177747525998750856251366708040763785974268072009104912020841115855879796260266880127190196238265297403737409937290417915096239315860662644524350425243523912251249510623454107814896205976998732928305756852558662018445415783358297819250866503198278707121997273746953357918165931737946619372745725798034227713042430534760769037922400814164481094466129405369280358141389935733374285051716093670166706134344208762211301318931290385803082258490840540391184525058133667761255365388258478443006075239263170858352379734692376422158260697074174266292187385203524911407223223989655075780615589774750340493919272142958363516220771019362248382404593825640787889170638784065534499623166550981648060374924668040947420784583919092448993173356673190017683321030819435639681127910885505020176491117367748188599188140621230266599989742866882923952761014653666797970245302114387988453416827272490939982991480946285661371426628833480429418055491517192010899813685469752903546321300572599415304255419484865315918218160407813474742152748153755950292604215635978390756048873015919688892895498583186192970456305329073837730821128141419923752871909147757805306534784787606147286880233489174181131313537277478697918948928122220594261633666936027272663530643359583979734849013226557173609449909338168952576022631301137335812298904899176579850514504302045710079078717840054664329588360220973317123599533383514768109397606688378610956934019614777238395805689955279982726299392072270241233291702061083395430712501785275148238124411357886118239187668829269362026445300354913018908330887283278028863942165347736098887214730498078015589673256278812108014963280965651761828087185022963099877547915323265019924459127083837708220246167349548145966717459329081534232364517854996378157303816187466712033434792105531739289008047636846502922369556605856452354292413519051991626631228475947024143999055568220023703392540749593479133848049346302720841254525894397721296151967978056813699968875816926693407635842037182837773776318694497860678730543449565749305727386284015661970177250041153069724482727644539163262305226813619920070713152629610741019992254762266613390485575013850745646514748417126137334760334063741138542080603979547545033685437282727687424677154254426457315077856327845796637405361936188117696562935826797595347980220319206128341360004246903638803043001694001746198484368284965653462228788343555144109065914060502701355524573146477549799801550591276273893158887364893663190957487468744660987935951061291337527813381123629612499920253182097986607886123221890058317960974999548953921383354083944622883739829919980425418033589322282924042222209798756124772712798108960416596059753468945614363575568327294476670107142919053552979301771434974044834183289424674661460797925511502876303949354731441945474218911506941034216512064826877424716490162390685807453343076455453479846804536856892151176732229179634433453753300305294036311720398840662710129413683432992485437648370512516335392036878977643378466200244861423146350379156743301152848471289755309254237802663462073915094188510931530945584924936041016389689925306055443586052921070502633296182681414325053127086867407179065762178776461808292334157581027577380788757938156602050424028590060803353855566526633324138977987426128772178825460789224298790019872409551557577306840251572204739211487782339946773644601942374304147569518125724967921762029044692615935897363840828939156135005871831167731899741667784545042467000053750705905309438313014717188521467098431186590866527974055194224988194980427480025307624978152647821789057518497330396762333925434098978924901566050147861427489169853757874246941500612881788052148712547789610111710653357133854312234524276526705797973083443764839694726658088988382756981698019169174006789442219006055301996718758714678064820953037326146243187318702321498187922367869211660583646138291522129410544110369705481887795067247395028284320945618098372126600016703235586343428188572000203836482897218032931485249864428400765066595100494160128078960814225081180807342645603735361152668742717014289158562510924749840611855841675813148392475322803233463653147746813963553510611645258797255662750115184583016525999043297418045335341024710008055651931056730677652555692014501620763075648492066123336775803849549423684769385095235557244643317645709172609954253425419978872770450488833642366698066571456855719395928449300841552498344653289819631591290291590051385122223224657040098668189332516733564823087322710264284461935814718155726546060773889335180073243829234580138740774884559279946282832317347132081869123347111727395316890539331391019133243370156307827421437556440919367778465822459052818208305179374971663298557718577673626480685499740463869158917827112257704260397890046167672394976802598406295992057963485242182334154437097619373883762397272462770551594121558713762249342193792253021665768976870412710965095533732158449801018862362975846292280671391488297560314037676133199518872076099363224060632495195858307555406210664620565181510979196860592396933282684403875963885185565751875124037935491679989610043086218493287039254835641869579220710616738031563490684804090119344977450383997653505668078097892218399400811042376591859698834900918074043933820289252582645151116682972644163217184235472170905019377109012103594603419666842298503468640817517392185119055114806712737442179233142966885542129876665453063326639885550564975300137391297612455464126517672575208446143308366347714493534428960527703461353892451698046362443324664296732117323153762683075127817875272333716380550282782407447324782738906155641098367857381203196835773118945994612315399803886217456471927833550998711889907027838276906276344239729338941233206029523177603390031516047418388325854525008160908718096211794271146506232568570975292278453499145564947027596109857869116190617530128111789857441978131405930913979176022924706557565030871961460769578678988803823199458445733313311776672987877007912095026978777075982960536873304603983918760413077200578103992642486019781215445200963249926439854672953851991465196726586864707429916241316795774400647134089034992260110670778309089163524927431313604330398671109125095678681468062112040706745150244051944143568768921408553775574251062877973893480976772347187777265956178903479954605276165391739124114609251687399685630167257860827166714089652297289005066241063141597581208765294161774788997043324010578078150082064916896593668014344323050023183679529177879529861065360347856088776028075504609546390036073388407501067670012480453640929055553250159024848954060842547486502443343512949829338329736036989939192318761636945803346975736487953175192731128321435878846960999980310080069493681050190470504382969777353786039229965660849239120727363382065955677989660748031611407658513071202048556482851368123242088391578435824525008409738499530848420721504485867760033145912248875673783963081601985915854923878090080312389784984258500934460076551039744117919741207083439192446225362276361183493654172974313779355275744999799768172782245369617996882451008521483886742928349270079721005747229139461935741834876368187073619972971595420960526953405656926358751893059029132668578820413715049178425134773636089378493978305836938701795440601454986577298514089154546924160356261546360199797625911885940987384711494085297199759356008903560715410529047126728278635848942614724751563172861931983133867676585381795475125048084341624257646410792125252266767946162766697126184742167508124390373126125110496419217600720051625447284008546470248941897420541653530262301598861914600150562176412233929068730598802186015081885752451806900082174873593696893667588467601495261508027978009695030899054595872387774349152325309468642054630190041411745724007825345981287914674467271324602217123406882176354626870625293987373091343648185240565929769870158560445301656293647763894000110092378044801432057349196632863052593408634861088220937903215334041156242841446783433008207282093522981587598859261752011728086035282074204753355582719609628802727613652106229247572738910796884163242253376818789794278555759110449988283975387973148928363379701963161451453715742622684617713050528011723170924569719581044852995886872902399785299497525452496875585028734119395955919618652059058610729293277517478550737027611949710573988075734459418168376359921719106045465367764346140274468903561221923373342996391490928117837971662891493375044744236582272758296532860735913864963855487695561882399199441194360581037857124746132330941758818818295148997032343960184457293270996664217729450582797219932599122172315345551585344034337412522797820676369644682902160408427784895214715151521722929560811997438374957527710632094577934076797607158573633271191064704081391237398682746258689459349649653209716962757143499856566831669067697366749882358733180924776671088252684816887422764822223752087143448598736969395225532631103992529466516577958879164040679871737289534163310924315232905513525689630355452814541145034074678309750162827500780086213807997809726590848705222309916106123969376793079693636964273445027765924491720127654253834468833117674580914044138329808906726368522073001176067185147142146923230564229892796660326253353492123344968374989478828425337037257972684943640660730612749405275713832339054518713705555300051689075932806842429750034759641509251194152740426667204360459278861841100430131352004259816996999287964963321799081092293975470440992433559770263805883309437920398100537019990834344672234809824877445935617949219527690077025811425427294815857722876766117887603473718183261888983089905595087202010677349104381259886917924682281272486461043843003005773409585792860827975411878427581852755951480762677184736501815699299215251995487326666104849357757455206406047364243210885212590125405143447329932923612652429826611088792634008246462340948107535003336765667693286650803585782785110404687924019518521201869373087580358393885523258086678383010625470494275733456952734392517666257857720898335025064350046550696582802000138323987871121121741628193535686188562902872323233560180299881247188034671788487847563061434029078462329790433911065643784649266258239900920625498395408510825899744046546243479912756510540986894202747876726084171327960131565216213188232320244641630906195783073419464024653858961631134338230723377053914359275310261543063367117931744332011771337449383675478482071645910640744635122504223118057087371728791235811115325441853402238570716814653426123910169992433255275085822473541817386649879979990787839236921364243166234534205529051017697979840203634906605391512616941675104643896747206768710707891836518220816786090302597493504937927166350948297062709658159168854477481036324442139513894499892709824687561745121117723950669422007304197356561873571394158302886876253236066327062889877770307105850778336792801979817675018498772575486721408884570805537990714029098249775828012173762624219572491268797520699335744785533976308682725725035642327088058750181178201769775677682032395642841634565367383042669866401133478566936060127766681619945003935181534296289151791465586683225687052154410021895285756041313430802588674968445581577776772248865050898551187328772620778980728425306288619933949455716470249891828469304871278593510569507359949535306853985301556454788804996588112507966367165119698596507667931859373953636619309653065897450596386297096867733145641397003443682639680888003394537298063411370957149322933340198598868465464960363591126221574065919300390693771176921329180807873374545744244496530485796949782338956873239645274267811216586924063139405907987840043645401584460582828218038434560550199539947549937146734272210678307782928533291826839298265555153179518507861581056022150558391698837936986649209018344981563090985511360394199516389377822918533301318435556248484602766611619261792896090725324793723841905146851531279853190803126296543149263325903817507937159163341058216542729511821236774169002828627365492717888841996015788174404557171359952165276291291088394706929252974329758922602645892841972519258226987375500893079469460264267888225581654177437629121120326753371402020350005097737295037966749235036701127677555626020524183373720058709621747607589898737277280965621233193392317667070741887846040039517056032182011159724465294125641189143540072463902824238828332858281436002275119700994692799260578927423102804362861666556468087859054602695515628175904520089416147225566349848634313585378622341831768024065213535928172740714808543394387831262981513190564472877046483029481736804429239419553100553407839587467201155713399796111756141191213853936670856948096325965958544209165034926653503719748533554798751956177846995346475163128175241830290472167469046230480405230445872694239528555802358496400651264757374809018924165561240451305065394527883319303224683893278995303472978857096777981907043208967065897592940224297832253087880928977915754945988186626151238416040726840865992614265996456838366529298722389623952464946247550451115519384694156851148093066673543030930983500165569865135404398673113086595512400015414925912119951221424829412962795165292981262084823259621233444137879427852968789009554080957604312369828298318786661735768120008410604114957789436428085017522046453139679851052583338191879449257128364638821363230518948413705781798259058876621281176636696117415850192735471582512621341411256404618832136654023301134615564453172657597008277072839918697765250043438212076205581666555713995259920387010106670586415545347378130912887054407434520779986734864251211292333052951676458911309030733494857076972785406778120111006440497974275525263652616123714713523061752884295223924601638569178179752226274945420872882429389130562152521364892723423225098808826343640427836808176958399628516364944083975403079529937134320680857083873258770262101441164051200878485503118205107012523987374096284583507374803651527892007941545346708440151933308216989696636487498725437454981736202284183282731850344405039187122751487189314587172727536682496744642078235524996265433560295993202445732688633007964189624229496054709802413832787491984771514371150942277303837158297030746160836355731948927473048488529180761450915695914542555514042432598527841357149167789497575033628208030817401498547677201341963495937781458156672286644233392005301214656132112687913181767176240513979757179464562989922869776228750423493986016495825487874170820388516672619115890556469592573314718983201807938212780255939846517584366727255430939567219291838032566921849034606781152607631850332329680800422066244760165633670343641187854354380859750368199533316331449987452296795108727541347699099025255021810354428287447269774518720560395037820116395951242944700845597909478012781058690261174425975620971454106166425541408030267428060213726455937452564829785067014117286554940863605171266280997971541040938998605041980730186177618469438646151247202974803552381901194078682744327329366764529548254360181750884534150711704845941644004585159661177813976603608667879754612858294945036222123958474432751133546107706459373920068245809749566478276395283061661149420376357840651519067442663551383660827968476029934865966453415127264481246068145721937726896100489869744380734270285380391237752674967809335234219309815089804637353089195070478963213643657322769638463237198110071954746447932813798713148037240759839142978390094879960842441568892931643321593415068503504941543846899535744237054907427180166514193915429207117877697684754649493830345997124329001103091498056877878840434304696210314432034676446382368924987889429454601303125812913149163061210510787853208736684471551652183374811049264405216481687121236413391773423485374120559303900889082398583634672065665033490288265515070173674219723348801794955961492226146747772645600522994881872008640490287485288821540668430547442017345302905455171819709718573913305689734788234391516488785040755559264280642682467716651436960772666105794156498798024017415309418270371778985993617282412902968953794578311980051175364277996013661541932396869720620465274378020729348222682813988495354061070588776476742810012428719635280900239311731612418507355499821454991208010295466523548928078613248167212342009549006750962186650475530635784836635084364553336053204384415475202782829127564723645148269246910431389177812958751172791927628025986221578720851888951542617412176460523102372268428980697879860029750693464507338614891193850944139443873744751413197591759079481112240951086700349400511166236836195898881780825769688100869099774036748460404304449035742431092556759487819322797930818585392686345086966630129778721059239409708956439478690995315135459698742938955976683218946931447757771444194250683737597118269597515110805283296165280299724341306931254589098795489236656010363191091710869226404235741844396947299583069918407429200125442839150514289307423614854780464794744228919110880541561059449918157364100254425592922329638577808044264843890659209794310576171588254514128408163734833527930497369998540962029879386442794887821395450724129339701234871557549236314058380858466362880388005181839269371838389296777896956539312866614568608261502202495156114357471557400756635531309694862951284121107349422400110616092671570680022599759302792430523795908822397080055707625723960958542251850297556836293739107618900169658957847120126206439036434075525044454932448845022274767223961606142929083605561703725703136570552469200376118981979436432805838541314798124772068989489070545316653044220037308026077386952108550958735121462898960210004918422346479442644345982254026754605052222171781855368562771024662285418545897758485171157690607884230017362306960073149261486835688116450659031256691506158482016152682390619807741325389771069534445611822895376490345901970611847398304540056304431781687362922173899338237660157713310998134862703529651282301464015545294986321135176628188652527744698937035880870873572680646711073400163054556257975324663046554914669046903471205567117785067950184898328882307413892337462013733999040959545325397363498694840565944382494879139022553281490832026216365868143098543091725413628245890128441591102952265463829010915056572461533042647484291877375368870682741852350174029423560468057925415665881373283911613379627036017763202838336220826634389212176229749877804328147554288797795448276226627724784960123107502920462904561340300625019368692185730430137680325183870577675268798400464554484246733137733868316794370671410701450264666360794946082942795431021993271893387293060912597389923320878830377816727674826719855305529111304761522717166536887580635192198929476524010090612083314437860478712980334518069824627232460059857360928744347193145189535764964361819910802355116032488221706629822967763471623430342210294560309073888809732652099089793669571824176730956300975890865421117570686690382080186687846556596425463963667263083767483499957958981927250436480667168108411532374098429864034374840306013227168629610711378868697231001200844350535713477791522866581418199625537790441465508226585704836132658547503817815021975402845792486940970714787441713814826434303367855464433534403890346165599968759441722230624852070097750284247679150953126717022351985196700007137302528110119633646952108551966266333245498968944069441004057601752342335558288504632026292506498479770901243804749549864697278809667382943033663542877754947569537108310908971071897931850656713026015219853024790014451951429925427038402608803510741569901476174361280066620640366363814656938670742107692877104955100482025777081553564285635034571435287175451926397723073051517478744828572418620834094216479003401445047253271150375231944851050704635842843289942780647269935295016043317415210326665772013817626059866887191852425554878212477520966704140954720273544958368390915698866813645284220375286788017458251559603027463689579951229586269712799575633359667014669240876691987452820882954973987894632604854872954388397176225209824220052813111723315790079656638718756989408331466461720475620106236789283382225458631452459171613939632250949838971254316656519235080508637093217276128108977592956194905276354192334262008222160547847066723048449862977481065931700874461714115823544808802547891454330455430624963149077229050263017350819860605505951501365610374079527891354057988682918105886841130333677735378240777823186696306909138480586923014018749547311296031200179009113995686502115995002842502935739147285882725144341086291954401171741147351122149184265383360001791225189297550729057313687769875398197274599584940316077011985737377929563518482451077893680527433976293842899961127863824534284917413282000566042850700252334238682212702437893843154564644656082579705165252761526832245045465398391988078573574103603226896249489048315463562742891218489079354902472460641464032766695567019492556705688949365504495032341565471678976858934188191747419665165952501658134328437126868162048987825502498998339641634735039711551498137546940077038873267840201699904254275622902185231864869393214859295656180697205680978033284911977989551207626538930070467986492746292119724694706364829075064945674586650079743170901391701502629052102268127100916324027865179064315409507078695321619848516003014557006495514363053042189147712137947631313137081743070927475905458885722511281435369443801325873334840183896483178883783627847738215252787693109764248778847988794797008257392502881758999151656921194976603599425545151644094461621106082930330936685084975046683326584011942488401143982452379383728870985929473071565480342368678801027583707566164177644004177666352702539530446855757894580025747235603390017918900561900972474720521319276946804380245440890008946404638569694375217209775812754524431805230241280595786427577458640284898949806979172963570291470102046580858694315807288437148410912869032585370159360556993155042089604393444692189540068863593269165613582189116501258226848415108758383141849776640477742714081909241040347062309794281484808828823642845688009488174661110308639482792581791388109347149265425660185301628928025923444361299442147562700588967243334105870964843360366381219658465290462605161709910087084119668241442754694367901367479317652825017602656852344622327887283640446920392241278299107316397338295039645411874486440745137002977530708211588924571144014351774193890623584190815999502941212669924852526117300503185938497233494483436033455944704181267226814232461486561888559331822579449082348000321554142718783089393384300024760145282977972224219424498963691506333693653723014898767391298032156944128898251973239188085931134669659337819761876654348407419298240421934127560189354318911463410692890866820417161688513429516205849169426480999269571514441830872178074005328742829107299767322126315084038513188166042623733121430259490582245288815444919262337853803948968223364423497061293900049322192863052152366117790841888479641148628451149170701683857823658991230058039705450035634863613457895714377309141185471648643752769716191185644361768698437950417316037925707220861158285888650529546033753425187597992343044044070089187884561964597821248890633668986423086314514204461582792802957718205375717323083750261890127189284310874155899486368438103016975594134990216745575813435932025602562052009443201416105854137256523279117728653982567228329881475739012274928274949797395962065540639741780010710680440155523071544295711858019045920462953546534073247175576708261575183748605113545039919038474653988219818444952896089653954314310410370292686977767609344019322215861835702067497868448509346110590737331400130954558023678043373720042382894444913903846659164265778870952916042683785370410884931590982038350739314003475892963390212026832155758610776001820524292602903011048371949826136693954409521743699476339898863866237965348500354158046247044730935308185225268448646999401908550532421773358169741122687894906436926652928075759055777387653301192210691211449742140561196327556270018891792969171202195185910969960907131979143530428670109795960697703724006630765200707165606555797665062131895577563577735623954784026073414003631536449123208925194915843006581782690038878994786373985886642693281153694959861628161289049506728108277262423456560712547958499462619543961767343992129709089562111718183942510884191227532284433738530537272999358349375074905165781949144615588548340284955729976403126866672295651487810406043610103214596229896529358661407950870588724239927068011040395993930890924620822610867765560103391082630800396864103250890382545136730194353085617535714282738957927231661963790855723258503299722469185443151586944750150687480473802116822453783233279526243362121272957445653820488790156839934507592599418190263621583122210675841977450420080367324389468634076155870032450262053816803461055218235993423261137148505683936829618359700096300231581753274983356934942920275516815817976051974895571143576604673360087317228510986429480955843179705139914771100804515246269854813530170676043853408012044451634309543105263858444018507208271714739976620400771192655542293999870142070272282601175827180033002035464481977077431002183143923898293628229170797716150491474210465750899962814348841309924832000265461682760060944874273819935443316616435361853266034364630712313118473154006886012432133847952270108164872066322095978072041288896658892811780130786229802005302585399833381997303077129525609396032049959902462855824350606969123695986422429235679529454299299036864298352641259720265163286747957219940448735560140681449480619895834343676016955969446023882728374669314995301241245924001240920665475745870264304033020539723824214553227132091803039647089307113853000492314561727384943506039842569258532221132464616002511035393487887446165323682321638445746223193171892407282548363378071129728736665174437749400168003538659013327070385584509953341340323689709972257019295351110747002001377677183735538855142240190456950641413109596989984627529303623919643009863449510925118842280268230328561797920300653419988183125178719331198393150340615154477619538694498598645160300810610657352179268414439652297633239476344730453063116562778475425409190392498340448016372539706625747930402255566731534084184190352191194507228403187833619499151756950916377070405982565209560646347605469392576990163303572300729206670913054649443144500106198348165265635612146881441127523342682181486650205319487433854110162776645008282624093764518220187699660119998767501974759173521344352704818073035270326593709019617816850172802317754432073958413919680377648135204291030358119267282684989677594847857065337764561680878268689019047203301450250839918984485956178264087697705664950438279955588239058455448016450405402659507691007814920882616899344103381022034277422182350011439009288338466359043025181890516908814336330521417237115730098223426955444599900762437194195923160965901477259078247301111042467514008805751423999151371209889401811258416720454535653999666398988963421510275969369005498382269543672405914457366301702533591857089306036831939522692876637445765545738533826208933570623630157862573669249440905428017404028860131293638351304510778813294292309132801459354708082511444037125186535498049448642146624648437938556638971662806909991312529556256057776656109567980118196406068640707414299143168114709789040738801744386678335317565814715853621407061551537517955893038770537948479725402752779701630668242211487365856479952743705457737869896635340337466111428015267996071879089187849278871219268415203182734037083374135805282017071315371645236567595120693518448394962815552488727300317284617644394836092358970840379274990898004098938525327712116868313434234035760374136759112886806712614697147184311904735148619720991216704301643388374639027663806983767673128897515142009239397873494572957124847512166599450044286321409798189951589352907443975032738736879049615672702414694911867833193226258504495693586416393239085028518787676333447110281677200212944919780710099681950743201390489210354187335825634382931986922807506023260816714729968432597205845178165239690850019143938363764364860041421041099388049413338127955105903404558456661414267954760142859692822568775285489932553167399499960155043693107053013587585973247365318744776186130041205330459807858967671559216143778071998260985685073605370238237380614813458252768997445060176101642620387078900971598194423770889671843312478924151593035857087978953862441587604624801352584446864470415915138462784628225338691735760092272787932936997480133441599085812072163943160923120752352142239071253971419255496942692957645738818582322997168660135248503853821082751280277002063120772515252219678254957970720328865762792914758888985192494545013645859830215295978486153602218175410444832567649413304975288578452990109595387471639674156184128792804908608343709378574710910039285063056592869183264518136240195854818735167574149679561136476937058537104151877549771079236186684821772128119497826593805316973122218609917848158158592234625139819697229301928361806966419179421689068011934312137091137294152040282301426914285572002763770509610916386853404314128361053042895654555738234876952359556855251274544141922027880838838375764164915472184736567441591527300816078644748271394822309164180656376943242825414704163607530965234786346830354688651623497107017782491282242171938999681160140710034842826788288856090499046699083115393608918729241467451493824096056587462434670662122334952030871561910506234549503716323524065256996232186632057851028722846697347706203580334477479586021813222295336323203531813717424052869111447234619852708055976326227793152064460256434509444694325401429082032726429003263622317969384301774207510011204417785416699536405361631731778537159334958055310501847412740307311862986152793366228980864237220561611519152194649973223656686517676365010508875672730314732781163325028007120158562040952784689431408855243621225757184427078952336375023169204761010067673512335833616972586085000552145352711431164283758551755236290183194282528816826887045157415342099456547230014784232287672395418491002810747839462951983584482367285505748824688198241306680327620542282741039301533567742700938171371996991847681419147467646673749729350124369571040986439061525643452507919290601607628912000145934632415435720605410592424987013074469691345999437635226602617270515824464201538809370765292451924050612137379315007527652548760509289810898823156184903273628924267241596988117339164077915520019958738971127241230238728064137465447714726919701118409523043487754474913939767527764211938971586658178371015580123014161982589455856256781318784931149226220735246921237572159157742052005514327489086737454193774909547575748503475911064691442040149372342338375412322782020420893481463666675533308746010691698009245395812923733754044108000564292253628079917503611621664040009419332929956994545119024004854914103208875529091419737588745980783199982703991228319448046025480122059822182659036016876997299253998628693296007900543675001746549024432930553002973685871408510152349740022526758834895244596591722144192858404930567341816236826443045850885268983530541789298925948551576763419708563613877293607783354867666582880758623088875431263837393743377831713701031679131712469006416172904489903975949922757904610184636466979166103724907243590369565341948789638876972829318169420561862697713070536876391755885592456226002741326690078732201776034220378942281868587578006394161002623942309894829369205453508274386979067788176188161980271522038102342456142017237328048348915534948171050685793562146796561211008902672794450617680569530301081987873317320736170921648653611648289537552418928005450310095044666547607814825882991978949231426046530070737234206894979684200384478449606857395607743336508980556343383016788642057780667164532467933652103440437266388198610933460128734059087571329675950005486284979846804347514689146382152871978659687894195429398846513754587806521439972120727793205347942381987808140329696833101196009921470449540476490289059432993348672889252041714420731864948977143328697424524289261055369195386746484367224179566897113193800909838114164449365680708147361101426742718514071271355900106965285811050440524829228066725862629304222176302979903470243248475982257614773230017699406677645601897052773679704810279156037246028830820680494741606707555275883100608503812462440324380237643001694112557387422692274986826288290680980608008804821509609300721660272090218685610535542187053657546549515573022192448127747364621160451878383747835795496218669408142475848596358876944638337552596433880036036620883270109250068634647393906204540627593039009682306004190281399275224131678121615571112177049766470343881938230495611631173903545449135178013638394182609265779950622775279305665866141127665171469675828683284193405166224062454633102246076160491018536124296359720492731617034704574182364566478612656678308611480437504393792641588973730697116050660817047051383273349244171931239784306717868753817173008393406402304536960431825578289595437917886998362634942738703515207258538787720209625031968284961563502807170545415667708790119314370327440624876999833451878835232857299806771070601491840719728895224158868555108912812122220414930351049181271704889308055687906915365234549174294355313329519849487475046460346139979182828956106170357773478571516479104820998657212793108301093705400704196652004096219877824540449967364072567706363019574283453681120065330778209625764976586132580539022043115241566805062358716908447256126627305258868099550824976132386777945431077534650712305794765840637818071804660348569115834850940325135232999016214020854988236196775569544682865542689869483379579769503269509536069761056539032031298278749075946727679471690445332393022401667476957624907880769801718237329845187903087916990646748433845273978387825492138126490582471538241427744364960722422696572844105004119569280240220792696055755871195561718876447373744865222908490151996034178497476077743912584753416147805259832700615400659929780655503049171079007210142181257579436881903997007373243121191388952658908823315177000417309680720661452069904335257462093658954135900032928903168959406215478807416306705718271817981231129010923520743149417639578018645696742106640672854023702362391904010088544850450517647839511063266369763895948612579259212252130097018941249913750938773751585145193151777518622251570808314674594416438026923240844965341848480918608766473114668141424329276163603664639531771686203077651872169556623188415144039964449165706448008012142022427235675248913429052866417558869646731652506207309915207281652945894480036425510703026820451552071556725642136316476377189215797087425834566861641053771985065724210816752687025408294792075946312936283786033939103063838950478133153900036090754071348323382622634711228078468848337931214101455133447857533946887546481503488891544163404969663518644905623107991883821268976500393229369372381248686888611016402197918291303239025055072758722676071689840349772303931015256031188114823080685054347637088174729577547461897105308140498469182732382616499305975459728090554243111879458233502327091864218893420559204048374316018955577665169680946515642809807666434769900696111074326696327569521580479952731260507816630857491341004480362130735390207363735998438985220306494075209872938356560124570356211219724164114767671814937692897222295538671593985951159469488852949551878048577716198669339998747725614375440191185688500428109073206791576409863469728667235627804116789005170836763638178845046188932828743137616224143709171371909236681468163948497353121146877387051291928808831642973617471966939503541643098388907661778519600545210635538742142874716402139395212310943842592231615315645530416856398743426542785227257443960915284476092993965396607874506967069621900556511153467986947308183226971984266399872811314311577557120436801731906104570020491594247607434219238928713495424191831078543231298225981400884062923866665049245126576917754177870370613027639286697641063965407549281422580926571925386525122201149907141615217477595142453189078259156755799661080576969273735203847574247332733592292481699188436850315731817405547134303769710197656164513142264679507168721755791145609674179979407131748413881354570316330132502781751107567031175126869118358253161876110376745124993821542842628473309089196577921265519928506272430142440635821664989509177226917801008914169448205943441272280798003871903200368279026412049824127834347895233246293434858930967332534028432324747005862380632403294666218814611918587716893264881971968370704338407452096861781425184161096054173481461562080956309874620846429843494007771736124152960432041716563294097866084690367091680152076712115607424867422955112974370286191946035348774918122420000827750364359986678551770722761967914338078361786264614734771994390439942765097695938312219313406008779505244381714073570641603773322148222152941775250863718233394029854340070249499751829121702925274467364079060238681731683074317650241246059023489125095688236486737375662055089179622664274745268918815739543062946194646116881276964458691914653533980102699023559349189388520694712927443675909537112381182599692526795937480820176878432643978523248603157782312601462572668388057287450621094267654237773674869307633114117030298977313766233369872841926163693496302093260506223616418806787466631819239108991357783088119048411076575820790343676303839019602084598296516037894501087278494247430101234033977831002054953601334176266151418455546833303697910081812712833836598483475071287158588466384026714434906761450059285393311911296237280908242923533497896048899103562494084279701903883913239842740083180849538703551507432543783448038349562908695464638370017566237247210580242227471316898402478469061908303121936901525047903221398462974454692590855321858585017275599568012273733417484383862225740542592442586517286758408452076900148561071214474773621098409113574486844923545039801888770949032855464826461939863086672937655250128018782405899542545985265083916539218379190755932600355360911477258587747774706211868482048011138052194000652779487993049464878971342932277830526375700741992684877226874409013462351308246318262904243259239251185492593831063017400543263062096999811912485451722773210091890911834974559773287918706657973861662334740587599560790035588443071003707709347561911108120871832436348127131975216854573702334748666586505323837404224132959471728840109692295349561769230435734137672426311249879715656511591034983371880391644604861498157625831942414108802175396807972339585255666994289850916220739044186114741830546683981558862034620737058280785964081980655297561644306151372538369199139511012805671450174814874652015126010433029002081657990262358698489521021885136450142286705653555215321303784512589546134369882023861327206779181364668017559503383736443255650302130763080447537615743044806093937377994057366372872340786629845109937611134587659915648582846866678811188586816588193384752324452493808249443369365584362257807708202594449287484477176798074547763016938571947882164200041145789910759899054874219253993243175305321625925897330679360339268639574052846756034149793636327577177318213650387579317245912588291895865770618423262092631402959468686251804575458984680016795230602799958111503020029482997874867843958463695553596468451163742136782022648595987211351248246377772694227416117495838497753077994745495781940848554702202635292888224917715318750853137903538530859861803907983175985940428568237533758107452450578518488799547378142289187223759122356033372377844406120329652233236033530735188989507417267000802382336853169751333632774304856472812098705489008524338775101574540238732950180555110423666954592581193350964713300910502540440183557598638725328493820155015138499375102442149491278978001134490345166733044547793919471259283549538966815939892857330088809174007122494230344742417539205570127633127705517318582984211280177004817055696633038987687912954308214015985535268456821858562710959900913948722026153480821249439846485357639167108085967909394111751961816701020635665201573113965217999097742731576859584225957670434750413064649006984393034832106143572612812127344304392606620795825589278077351019647713049002072788704187369611377487520041590378382386098517570081383690375189528845754292746040183684017855013421392191809735811441640080914280517468721451065157633288653701546212006866749659537069398678035995956157544578075877943027271874412537351191977309407567960857123232110051694033984344441542472905546559421053096526997774526816206775465254074438247477876828701169737455014931907638593893577633270093459112800466808213842836028598237421533676520432383074359867878191192667786016767404746975926910121514448584551413834530215516311771885161101154109038191125794123702428667327463509969267294574336153061314725933542660177490693953079092980040565668338093189135818627357206257237053358187385730553538370479081151032861238847591149208950682344291490498631863250831682265374473531483567026176105716217202529599658937910486639116861521387514733585328137781416037825466994091640063477521626271846161257685725582272158009287797902807182487395527146200863559349815079001222447111161846022737161950915974408178215978598596975598325555148260398421850172319558425402379891095466728816369265140292762743985147367046373957677262739675139392247402606601529431371833106679930065563121799952665027996320020036522576978291489509409397275629451781320545522476371800318489878294185411132588062520584725324226286263457530876821638144802697571812344944600746847089050332285847719468803855299550374465450256031039142948573125404931615544031310734147693572643849444105694789789198809420582584394957938577142983108219303815574523326446728031009174126052477955225155896463655772899965189220971272371975888085294425973461526695847219098790626252054597310959794674314266752337382442656241596821509301276974251046852591759894459232835006851843982179234277635025936227047630598217495735213567889151631400411588481788508738596554384768556812247099991402179578025966790459096122607333873111028909920104430737768207249487244738572151291706469913571685140105801862056556870382326850819017158038440615454670150750131750232995630369724388588825581773519122921533621583340950164316164075349892444900701529797103395837996781124155708939364707087246372539524527087694793010692938164700087514882786717061111329819693671956929153370385693390101905533424617959255757592083067542201142586774750564667564831278058049998063032831013481285959478442565726221715796430314527560854948008962857657845000540435322328691111819767933950154124633102620615753331972910715118287354867168737597148007738005542752034595748339402822067591336935084129886388229512061705876328095230039905321936675551083739892139257075306677185668117117044979499446787568879297193480568490501508423851704803558731016073459916837886663899190393616614181207199052129764868713705110626405866784601287541470223617785572259677481084546006725160782076676715376227694122288718061582722773630478708648025689787777313695356625013044752411453153139977527320087793736457221954998360354097248161007175683951269961647456261811522415764261373468976534465848574444256443444894936080267667863036387060671206379499868572761323352221519240808348336044828062767045068591334889670365306726001615258575069061511522451308389994735952697632016227021915803500306793280809573110604322380482627679389670923269315863309174116984978432315682342643594513471996980586290797376900326464614439867980296131777445657416181928574736527331257615707436664459169830080416559994469299900121228840055611901192101579444658892852207149941019818696482637459558752835590457332753458461946273756985641741538232322718895780340378393169336553798267752631469297681701961034753242150224502554729773162658273323629549843260110028530291967130591660746183545642716982805247334722369309184514888746890816828536845519141064066984930466276221358841218848243628375796251445003117722237596495953251160377953981585242071775650919766463654113294628951826922856815375145316992341725723573860952405532192416053809199688884994652620925179250899284271921347902078382435428750865665918996318487496092380964691296538382590634412330245473395507222410524119144987824425439382949085112019457723585729673746516431126925032973740346778648991336116552397229829561659784176322805563200384591127305197421189945853615894896503022003485093967057826948358053517715641222218194305191615384838766071350876943279847438517448886410967467850753701557834528575822927424078781715765300686527989435751486202142315302102001539506429591968780747202621092066077011092312932655713511208094083976431967736098346832693081182698365631518878733984990303452360622733524466655862611807486322881503872370294946501425693143455834406731367237667329043217724833417122591186517016244425815142879537863882054982903410020646137936469325938605944655772401973342976651769214459599645180406061708898542600594193065157343888867925985798160969815173456986357466285490237076634634320933999802828985076566082030026100125920313311385643248389522411617281312733821105519310326802967760976886487975636290309984883849273490934754256756902715680543925106924510185134870851277105547329623743435864788626079953007980186543381761022533834340703459936161409819769420862584040203671564144579008449092254596265094410492509936318544544816639537376601467124463421201583514630249101009566824570989344732091132201122381005067618671976274461521677657232960493614204267718442890971147374829449411161256407327745566668729397909076018073392490983367109238473727619375027103120211037439703883731193299875246137986539806378622065561526274706602034858748543103464495550849074164524403959390677113499372450777561743171525320574286969536934702977438804573247727216089598658007100050011285332276406019223204247582342238906232490061385623617461244971907389729450332185096242590685256351305732009127761128826214520454938657047176675322944684656073116279334959288398980044851804069808282702012240346727796507200399407625625712969174658205145225678630777356732671209955140856899701475961437877555240787091740926112399211332193417865187331869737375274112746900232601233311116186056553695133014792417235868057637245962682779384266695376187121467765613587255633663010232841790799949339588283122353307287812174905812393953702924811245703970261303489140720076824714086615546677742073558846809477204770180922351744886890389836866630808867548120548583060263352328430194317724788319330379033780139410090693248198978637900308329447955155048198935958150020877944619155139484003780904914306331548846026172435824670832296978504804367389158736489306496647142672552757543064436540694554523248383062960934779918934334021952774070234721674354254836996415372654032231174664081203718254002516173875983428648608307011406902991021704699910538680159221452881721527283147220480765584290962969509062661181460878466246628362670028587670244822959874401803609138828423170506710576341697360518168960070528379439602479353009793768496751292300594054883156373066957731347226241877094222560035063025979193280376024153953029775140958446338954319132398381172349785045438292511583964108120170496713543439087914606449533661931140601842876522100937628765994635099921132573604279700866958873551818150701654038233129209822857155216826914629423814661423044333966027245186390547279384828778821641784450021575052063749564950124318847625192039798234008692216571948882232087726496625000959170744630941071406430022859778809661463070409896085404566174976558965560478015242128659405705195607178406759594325316472945114808102071195693703362925469770363339937346044770155578047580244677644435226371883729272345595115159883239206965585467680904275168549133921663265905661257259424600685909295647286962038328960433363900945518389167797630672612921169043258720457787266887149820469620036176182939266550170075365965596080523083494184857597657954099648196508848436848060637580181717165314752540087877108692910208548532103913767131468702321815126393632522951141680387100389643679475827994977928228178835381107456254151044730957178298150041881541309439010789591091640143200189458784753643806455045581926978268584516177715979214225506074435760059536852603739995319754250184703475503521180752582731726176295575794666667836283757556164599441328443016473453957263419428091543377677390928518787976136568637609077799177481245470252736558162354969028573775993621970418773319896448118671576880812986297602369341487551935687664378203710479565513066672528341242886342019911446006373020764903718293739395222052575353427974190325678232279044002217892148758338357141141240144868674615215628778844931559218386488179842925536079062041811491801022380031449413835290599728153164296931427858343255632114016687640067359225944401549291682678415429527997399013817042382612261534251618667338207840500922998222875108153335676563237330301217552049801487818267399770226660538520485703407210881506966589167309390860120230931697851617693340450264281875811779352363576214520068531171963778620172712240951244165649474745575726009164525270058320020197448429971320072159483338317233174229518721296925743788703353706543005972676119604058433132067876204806411599929485013160273131822291470741810984815460777286881926687319519228675448060943395344651563834229238118555291167076569374220537367290659659881911340876575480193665752417000472654746341718166429922916664081278462487488555626527584419701418475792779132094904965230453937540167421811362472894863383496397138258679633221701666520777839595825289412814131095814548950356771144531690530123988248411558457707792596428670840203641034065234009344397587010030088449226461609562775107505303739575542036489050468011427129965263142863846982167225570866543803027101724288698732676614392598888945253375765005243528730719984715197162623793051323998878867032795722395205799004382918876840880633079855362458252061338146720823707705613544523004432812713749685613524509725540268309831673511468005782756119824144530005828729322017487358317650260304093782929524808561343220872682522164005489850539307980239663267563600367288367607846142219122114110188527516463873130487717489628311426843277694868862875849936230390506225685102962486724010776693883185979105461955835098548871136926782444264997963926440329631001907691054354736440731581807755065757874252269524285840516661854476477027353231249467480428678620510123555646841313331470967741744848020524468027927472474428842694370312919624922320199469988929583218048052264886253413949088322779916279424060154436612281491627049776587237987808869511838677649763963392599416020560952723867291045223740216686398039320654452525982887355091791946390670508023627075179051894986782915206656979754432573742356644749980726390350407995342650944578558893889992831755164842380986687064932264154076280020340123511196897794345637876111984595703431452551849433136845203936524933968407789157602886428092696898291816619981491727580929045675048667548031160760371760524733205416483490634805759393567553040217962269172343314557952222786744606660901024524125040310462165773208473516928038959497746817417720324577128483315490937119699840748922446753153157539945688116093835530205514488482908631636948552346006800042636664932396991219008103194829278462634017861742647545091098319334318016754074382420399362169327866367217474028760091814830037228993613765375495839029586758332824713820889551438947287482310089867966214869546900740877238056002046256933864993689912501265934790359791918065571749683443953119262081245759824528344288138739336090718866077173955448392855390798223702032844086346816316963751610491812627626333491849618391765333362671992887740908505106595133645921195840201242878666527979509972998082895703416130713444578535434381795071291233614508262607377286026854815670234582679705413963200359546962387939087055554446840663922072085933487065899552406928714154798880125745881862497999935774813958323866925534281661665387639812132926143311486657747070882876317090225874178873388114649350241962248861579895258757275390599522283935784214260798413952991295516709416165097462840576969910101845399746571830831026609684760476199346646157352075833928924249247420747544893093759531041794259883877473170018206350574301272876186134640030990011394019681828305390403553122118931376623309343604464444948941119721302516276419479476373673789101517132392059040554604727589015665678105398712560830899326119275966690169827443043652820356491060171496253729079653065443170563549351767533489295983814541772378856383714199936695471700836474680093826647347598361756034802715565769888162429476016773117553415840050052272137761674793969415681172845781007627952229992451143349636518012245402981442171723370851443753434942220322243041283628251567432303812410288906098865131222014961967999405760313717319152176090973674055730567763171347523607027171918383707988995291380902152197958702821087151021361689060935151939373545800782835625113826537918543722671639492724078106839446534526600649018024980739051932826503565009934234463919464084184365023800618587526946179361168014951297293190978879590546120381439335353250454240736360264166916501872440718693468125498024821865511424015193430565162566154663448277985327509986215599668537594201849197771658543050276178956753666300818991605256318847279867572639752311237484895933131993036648127377591213135874197347198766401417464964319843877970718089783025085563003341999974170905540984860109692766742732776588485226239089055016459518003403234207038132084401711890409067436677765567834967152759189367544279966247845626200291009469123738394664296295135861739647189460965323901923759527150004711894002207772876882841278120774063144517978866981809513701585452758068807834456669065184776722915584988594904632394829418961460775913587267520674987694140487887840570464556934226671581097179951503916479379664720187772303524519215412128198314362639636505175898353597400163105738786000066082010123897452808655915401052466303397264457083262265678964675801388389564123417174103549671851028320987784323235021212998243654932451210943051238806985483595906754960172839655785798028329291009470697062351268882221986405853728208905145091737542107236509057892169887410197837554638105867548307428481965521708963847408694987917316904699953798154033619653436587168365304149079365932004102181849968738286206485112874511958701955835021763129558996510410422085737245386023751103626902193322328625060997183446905852584623817416425957843095524916275595781088350889248909131650606070841025476425389981276364963008224778295175863489197303055022077539827028082071858339964680555914246454494079749022376961112193503796034125358085787690216747496338089695207106799198646519251489411048581641436699398547278420975358648152950679133390273357860712809273864872258465847268716357556136918492836635464128773696855434614283210908600512878929186260518530401430095312111156424742722090836189034999955636999600285997099867019614834447538447426146633549742242841449224593049630995027147320566291192604211394195470158154879001875981850413343829465887110425168222814038708228203537420715770980764907392470902838843911935188009379824697238675480742985899597700706783169701644921029857653020556149340177843996141175062605839129207777495729703871193212993736922367851171912764047152018879841465640198838144543145642037508513029401150105509304542334733092724117108847583509726298806482100072948407544086575786347449868200761661994509759689113953417014819262191716420488644920975903634169809607429411827381785888333558058826277856537086068785973757236649371809389611990933034056283617311765406732934133926700885862894581263210706836165106153016642787808784264781491271926069236974957716047154217377197899992589482798224512291572004949846526871680460425093129347514231201998923431669386497148714830218190427521838076374395937852589667684773575051964707395490507623655029509344589947861935138842383510291665338944580833588103285762214660018714603987989451722418241042697607012365004395790975709757876466086637246343599539443531575297678959491662660927044740352898656069629080812438506495107767425173096098855874782428414879644519993414893970586775148212823035677929620747829044178149901877339495436328304329616467847831146349892007997840316655882003122160383268475378713517454713292984280536221793149909982444249831475557495264970097222892884548409332204906381324631618742721557842463119962694152901844452234555032107678482842174413623340277618424759155412214746007602601912330268339516850095442580439713487806362654643097596564730570264607606133187239921147467515309602045344570801665206135867536496955991484951646911326151653131337762486754690148765264008901867174771945337821087731832988670678125897226302426015456887193772875828589914829385056766689021546022105935564335732965432018333755094306619834793780248272695136789006029371032537463168818416294117597772411612107016778287956053615452693292524281110016994469869823477145572600013739361790746293909058538832389795835120430661672166616837034504944321500868034769001888298163614697771906573246461368570542394622696971066672468639552835165256756110874108464333671578131565018585349038553367775266079829747805800774826320694336494492073254511517640703495869017270209026093629820877748981048835688184852178654812610811467413507588368765646407227550892398079111864211625052343481064114126946270317788672806896988277734172210326999221327158196467385812929189082846637589585297687862615990759103238763897393092205322696439481716976755169847881373022014711934624034713751227990622176794358003003340132079159549093273076269138992525691651288212109907831396223187464849974114636700399278743251059255642742420555520309712801099614926476024248172973759673785609472995285723341101841085469669395461103363630214620377698748936524445374480453136205906046703039358354047896079070004575041419207474109346947951717595389241895580843660586643135387550862756145694510145603236185098772757329230556242471936720134507140811333032421805837156812995685633093046833816442091416294199628778332908300277870731921252880489430293129525880752978293826795438002830737101649460904824715031086920310111377809904973551892117898849571360469518964091473688623255109644364743122895605678681022089173657991541113005936402861190428679363800624649098447931436027118886934666049465021730395056858945890060375013622157473544621326346968205760875064638969002994388530665143026086514756747364141660704846085668055435895800201627899842469911631425112344144771334775127232116979235563258365513568042243923094948130534198582406914385861299702256076136085511280952030558217189993168172604079951238076719946676684583165859064200794817518688669828168634031556870222605132570038291348992086577510978397262307711240004917351714469815312371122154271479201648069087232213330215378806797901074403740489783413407387942728535330836205729847002389924328040390130094322289564044456725851070604328370141047348169436502082861703007717356924154413253159588716440907995748011084799129895310606573199830134072112083490945040887341019528723316251350591110034296327509851483173541420931767926066026995604785921642693811388136056848936925107529775825109567285487857149829591847835590718024310129332568800765301097140714161977737241599065077566330985281700178638832855249394523167641468652715914983406414864427319250913688116879841640329518677990812679012109652110433426974336752593275640330110823436953207584124105310311038533774051800631943491088648452223497460998898505042507860438776274093488283016625910165705748739265628276496093045345066450266440947918260753081629542771802033586799056157155795000019045868734580306413475467648869996046031501823268597740070021620342403715857085799543112487256963467651136160392739881855066293123173324507264147721671584989373120751219156487076985482347520327881829683182880979340011001215092587878586138473358202389156764840754202077476456670227447314917595381620557628212550736183741954314582333344279281030016332692306698560631028246880158723775571642138521723683793269539260347101811981892199093087835756699360831624492326987596393037393382816037835943045039018050179484525708451473329368544329742525844572612993810565622795941584436491768949591394253565981870692401388825733674940858187505556955183792615587197528588724159878350367933394307469396452194916676409263249975652187674448351507350197592083734481877815814294090637562019040746711419368866745119319247613493632756188105862903647942809294014837564738259916861484564699065913503943084392734653420772825256790215284719419368491903253157092500870762880251423388038867019105187001221108076465923484268737621143146661800820946745472975844770397994048756097069497044261609410721158876041956610840665757522924698242282209241769707815139579854150169860155108658819175288046246326533137211510385214935423913371287305254560714512339056108287752246864817529489253596809556768542719440729336744509418991482399839765477714223012023719587521082379158119288354146210502700916201435806159936004985138578076507259731958487487299628605863534696957341208127719141435880456021761254653357239887219112192942600645299245352955005927002865487400367285085520852101705556390904316728706397860429394097735831994134279118870217339271710122044934879768786421591469340041045229323258673183419808989559111761479772967292099770236704572934488555588373004729484385118965261352282323885801958022781203847675294214280470892586363879503574222304996666806744408173464604652962553314390270372465244093142323812631993737021360963099817544770594189070244084112913713578369595955199086906087398736900588538346419051570313741212087402823594676653653895454014676397499909490994687302823649636441291493313812839694011448529071861649146936045328142546468250975101433250473360243409392766924584368425924123859660977862253699162094092263500819405848304148162491620132869947163957164906106174876869663917397111800134200317931131894389744502428827983519580901733039239558559140916505798107380383466199852425123770986519593811142751361095274195750988052906006426727570294083183620461342790130058177841629116582188646433703194709057636745522787981278965838204264938889696694645429378481496829834781408108030874152576266615213734561318546287658836084632101378826980416601859873821012967080976930991958030729506672473406071439904283584914874892423526264350625621155780680146280232217160690029662803892185171077494886091594801642645687693751252599304588604171274507038927233236704824901629043813873087110492495506623190830886476217547066795053647165641901145360604911391153890272591673996075019622457916818840754423445057891278486565639293293260752158044830139098115618394562263610013533891304712051223971341086667741318617706777854152130334020011303948254175186162064275497466961413935726430007798103508650028395358167782300153523916174162011391526233840619377412866926977821554941776477237025878387305754139615035485329042586774895443963332771575661153103689202428827497447670824100887198539699778442498952250788869300847586397277553600373667648057900784564720393153251930837276032938426829587988862459037175386987456897153061279689008481370477440677655138151503638638415218840327501214287847229111530684598359101038624913889233102454564715182939064216241654546744016438315922247735903518663538438392254391138100538295983632938437743091799929278244055423718677366260569330008059485331007647879115704207365454408555063783379013167834779325715699250925686314970145194872416815700691455361780622646498669199309166930524506220053296529735187770557473675028845372793125314486529930812822336425811720903293778580199819473163732334830466441365932537005566210263312150337166787795159812370061121751628371013309058223087705824773448913635892386855791307525494733165589336123786696959717224984762956972908870517369564852439468864883191688661498389210016065494371458430999481494464237746546822842627775305580083839508681428328742194771434817413792419394684397116250596021473371381499492731520401219015511592492604110651782035104722690704309496743004280503947537954236960396447149454320275176589452257512531591707493529812509022014650711051256238928443809890164206918907230699440165022789174531765399379447630175876765026102115110175639568144877008718626366581947097964541595164828196943158688302810466584674856822834710927946089986038509812741717819477318317902871228345536759226362925924442380078638734452439493863896064303296535714344598825562964653073987799981486576876485495669684319152278337740389381580555104478247167428153554265632105564951594499228256494439270187997747226045483259616984507341398401518326790791709187693108511147308070509841294681088000343498072741827027559787194775222748907724226829959213263560822636332008769304218544620767243802604834579369961184328977060686889303915449409875061184947231209252263945995858587903646246983218468415185275918387874395025475706719963258553739553507046307341828020779489987599497230340437655272082345205314787452131755203872406981415441710783374119477728375893177455762090844043629612621043380505337708139726948971351720891752132727594228964479743167551906617352239677678056418532537600604259417411217887109404671694550843797733240201874390654852427602869344298494376594630272599192334353663984695550747716179751073946272971635276407393182522683766503627136997636633946812645375296286947450998401701948828859426540980444070224146124098257952974948041034206559506066679357539171703439078582443604080193927089294072267098409596908284793201805326067875132998591322753951726824056909657644071752807615402298882266557076100181405388902759828469184330975391077158910189858650807819448552912228839116508557319307233181866281673514118983477680298543360832037516343233684330749076134362799591556447712535902957310498447492077714481254520662843067367607942573721188696349274020679842077097606503889761650352995638995196492269845433516948196338247531207010430928201363549276322450958399821901599738153785538536716790105788085928201101494043469476594558428773814689432769308068134937014126151476196858009068963604504535226511776073464541558870524708241594009334395654995145615792437528544443465548928083555654559429643102487857479846249974511558122215867531674457268103230884393317722432884399050148158159659377763783575186196461204301616290916689532742277196967510044337499355874365655533591773944334132192540218242854698904949026393686004837835536337784474750159093872085019620328765739746246045033116922645123212281570599972427597111965157824632686059293580018788938759724292577211826087638621982362635621876438686082020434093546418127421079879784049405126640220837872442102814871732671755616122945310948829797488141513166256856789576537186045675730896297182780120621372735724348753841355085198907297862265984635774650592770754253423313080004228977263912070826614612568901311457481535878420227102157726599025172027252329039319140348780440904873574477207158184503819552655414921812605591244288299708859796458772867540253301435958545789741484560859985383944107284416860815503229445180094322573452328899517063019401297559701277357296069324488310972474389936159612666724525918664832630374570247300633430241892131694146414562922831110048645419375116360101751492269002127997297946944910980939670568427814032995339844224542908050006687387998794700759028720672732279723615058319222244462800579337697984303164809091799911500265297585224952746049428631580125608235878499262244581578137044429245046786488262284133246996765357272331914345695811182796088036808387341520411521542740176622098585745515824371327591398275391426468239860854053529423447693292744275853134222839666686481173089893313934472577782387993221857764987645103598861760713252769025582300726379390570354774342375072003317711432815155956805265035516557109883713188183621804250270191610233545411904850709792566363161132121820164444784487401327026875060727694915932982494334501331971149289079461916252734108507926327007590127711626246949438453281725067322167239425165582368019611623554367882505294723128531958279174358972666557457091865482401501440417566124397070348973986381340394632090589480272800686123518047584219328460601575890222259713298114742518633520926097400630252992415386082474444995867202196170758401802431582450652894722692206291433580081319918663134953936880498428705923006770587575006132031490094140904162336965451877204062967465419934862735009542302276108003632663610736703783835333890873974910852335498553976289964430641201057404224522742605143026680564230143968451755522016537110402374754294673172830110598623236981272785248552412608698323662204913550719914879451478296885601202021857771323101738041745044861792123964289003281702090347220736971130523332947367371799568709528750657360006963900980423278777175829400942550641448167862009832482138430002081336721263594986672838872713469085204391479323833725456834721206422188106053837576761208397040165212623540285917833089724011977669927480722674436011183237068519761224780097868645323128570732165906170865580803954378890928483184816502859094343569850559048188776488677482430422929912348537578502172820575260557753116785731665334700987833271437137675943450684952546983681273423340552020087683179985656211768551212062639074655172153246934538496543250638777278108771883914424317071404122542240452856008990092206264145173613239112275834973269629617271799553456798058159437701765613798788837669755458657532001562829629858885459626220301464840200286597450913892747532486901737959627286862663139950924393349498123101565087600080487773184291078285966038630729547972137928258962961968260175154947667324965904653281276996666867841739044214505621817892288508982771898756866627513558027494025743074041730063291991937396813204677869622609309497395491904582044120682408168055938374168363981220731744566753342982705021686355498067093113152597789323239609943936568633292469974416307269986073835146898151694293619620831447157849852738440009954029484642397332134731083114817148902165976108221730574203305741764045272626353245140487372458204459651999060427526061782982345365065297585627739712034262953406058877968785484258012132387544579909809081104112731796325402716805678234420212792494080385968056793369812170129961622003957210351721923004469725413816684434124570146714883819215303040157994931611574405316432983735245471959654395166610036739439010028339226913446538958289686075946510522066341080068573698690173854759496840332282580012554407809760547815614631171600739066496035212342734343730019103779489924644525757628988454099516318989607747454888514059196341518521164506700963065120809175529141111906601379030694376882986571601522061257363242035453720014436247437094766118626655992079515323079829843358250574941027342638786479209117471412469088455027243544731989078409648294914657528667857422337855336680765274505603376808354009656368953937979066403998696028643713795736069944647732129614050609131199148092729871222505480744734864166468760641307345260268390730784877468245222576805806609067731829641920879239209276251480933815505121509317897085942807657711087954317744288200466216348680222914976357676212627093222112393250813927030292435320993102038018648060460459872792575658145598094785719553006423404704698429299063249380463806390929458113125542102656394912154023161549156337631611485633737937284339589034560888631356778914572066937115491369633138473961013092708179983515345440243691679320133541089237089178883929446463626721621848543601437738977247581337727106355947799129492942088744932499052215043857490905992453088075486275947962317850305364494436004575803148825310883626067875944137668388940720201876651094399805061329558658835657120599914204201103733869997174115543712707213391000136528370824147304548236350523144135737420602690271601530273529460217754779512149700197628916991504339831524522710636608553773754137963160518678643815528811655462904108523027780315080165320115708483442799894507600965673395184700304930808963268669020006346562614523933469448866559504993180837835850824460599507265344257117266893323315309981621739921657076510404218002308864940921881666556198175307028281339992622315758226126936442156843864877052344493182213886557351414265171044128972623399431698048194082510440276007660631434921551677544026397469236838529308904702277177369224884564513091886601894048716938503217134392177533387338475033067693172821581172957666082853699504077107204020185503420377918996567620531117302574356049861222560766468721874995502232359036986932068498116556330155238494014879165352848278158889643776058977632765122328311220001606394489527144873874378927951261256829069403499071024463174846825482271225492294576985631644173338345139796347396224344387240813854796088431650698620229825281117517585462049028130776955301760791326688364005729834330082578050902317996613154248774148435183328379980576649649504744768169533391381739014802895351483402876467736540407053175923795901419175483987676789058400887174283420426414158103079260736087597274107155796106432625882990366291802204221758450933918432981990635626763969949423895348152263163452789646480108788726453613931153595006324699954721912647122943068322172949689286808213423384800144594613878864719252318639062385118515600177527531207516870108711090266302050488195536742864931978641808708953550643921504520872032286637470188469621629002555210956020190318731406630721605011298246153186265450741001403587973696752161555251263750451237080385769052770803604906545143958285757887393908474763082854653189611206132069962177478688074172308592875817856191491988189561009030941115372843474491504056331255831313271507209532696005463168129178269339703195517026512094631711541460211647928594008307663896001099058232577654161067570935794906769394245776170946890656529539013880451517828860355865563618838173338200508516875479327137438591190428939826059289098863210526555108977037267467497699636095448093660072000111667952486267784499325299495703146481520107724518590194828640033652667108817641488070356309369587163759995369176909356552243116092728913147098742309049789198350011518771158428866382610667043348307505157669355639419380380304787312989163067539822129091000464788857881678843804924363984224983764777788187163961723869297669383183154457917348298487662296385493371574668267953684841061410804588332473511898006980979889143070891575336191209873213909200984035187975299353229140317428840152806409984337174127198471568605619419298316463785088191506296783896504820237363354535706932315331684982867640456208091377609546436751920763947544992690641926177736034663909528620920874721355634779776496991938251086714096149176486135981271664845169234010746147919978475306764700856606863042645982925079142766158264125362835436350855419253954012110669286792264748139201721917341039757182979384482052999754422383664058809837719798713670674434464159578162192416624704243769350162312853181216408434596589329954235720478857901577517136467464334870835304927144803332895163931451560948267863790325044247902361242130308266193367306054418092328374758374643698391856658651008020709118348281017207102798714977173539534189145857203869679550612993632584197098554386226154366100501353097014623887156519429862615758800613147542669637544206351644385081193007717998317688033597235488546977528679121810741743393194027880450166435478126317585501908162335941503918040178316821464147258946994908644349129051232019141419407740089610464225117532516340976602423030098844495596207094358206801209831557854791884974250343719841383963481736652131865417640617641702730757130262967635196610504342312204030778388941689936335651407910992727493594775636219848816307090809535370721737209026716895740326261438946165239897053447937074992369665245910673368385627479645386474100508427683751260826702167193441180597980685290600282939695716967518979682058332426374999292113886396653379032724146178897499466281397597614013490184322287912730550498546508227221363981787315853790576101387398703921855420184469487440669240063047412068584518659089433213094983129229264100468295073813792790449599605018516236634080348062085539021595504295041634137195687198993121957360406014597479979528816117504932422749858430960391506995905072264812480546265391268253658624381064044409211872265336006310774682608225131882565941819274007885573189046490173106400642336590713149734841113510426377465697531582411351808731154618576322718453874433456466445617196553338355350151943241336978513970986907596945745858795858029076563736680521246029445401548883649823703890680477205145196276776604258701790088845367604661424584905074832202658277222819722902701366172244951867202945013195208191397013546758328453065926380569638605172825125958739701830994783810294148734946334148769626934217520617260834228912744107969437712289548961967182318938032106911389682457361273542303621091669526265151662579195006110078049651753760025312317860607529344714883321983928243975531463136585192057544709537460163853326339293358688859453856370675878528780288580686405236725192165088326064957936835581329169672880560709317178841819008886778368477450972446352077721238481175998002297732900858122381472297855636228016337748329388615481469388403625861412885037257508274815918081304772402919917766620929319403930405551880205345756847344166283761000305792323539656311705092204786471652542658253636216957597325587471859177857580078446440944964795633247798650373533456128895899071038177044098392247934912499314137773394217371075192762060994603847536143405341828344200545665170666908548763678004195280692511761204125565835598709285570198367250497422220168762607321338474433371816981195440093229485917367011376272092288064493138813244387423992898560948587197246048006044645147775626008405300971059180853879937470462355517360468214478165396524498897684148867935190553391745033863583595888596849129768275466234428941890411333427015212180204481635152547065998570537339383238162147513433981506978501846798649272288183453191394435049120639931942252874783763469273736823947694387397877525933221787898397055069596773719627309419248357919150406986052264572739375829811599339818329256454536455611017147344921341695648997078112994862402285576876652999901729150951809896232057368192031329559202060711831756601933589516006394820012803836404005330250811918891934827170699831920887737563554050790368654875403577277816663432703116427628897404153499514968917302984703781097246535132603239575527690709358853623315890865189615360159237830391298834853611267926417360168987655471915434202021949806629189347431293848998800096689427409824640967618206101011954715496750114767004214329047979862488377526715896080839199904893914370303873889952363205469012734884051759799086877131536244020877974086862346616566701654773742389874826969764266187520449777191152740886862637576304550945840012616760020632713051631698610319770711178551375630421438218216164790850625602565987473790462122771080136290328972577459674045404389259235000941829007803797955402249278488590273912806346222447034804872397358130341105827346933453730263770185907483268949262559594970082450817574959986716878171267408542894378051947501362245427191398096762562702621926606963915404164928303029683839760168613368025587555673138257781089639896018207967052067198061849037253764140824367167104643471542572412609012675448300859582780056398051517307420753972554404048423331702680498052998349471696797822234582808331089911487200750887802714237832096424445542317667285713961524391394796320907411502569069538076091353196755142540487398512967358935681728164397079408711425924896707267682393339816789797505834827342016091389726049304456042123681834486759393347617456269260206406925623179909403631905163337204292165283146602022531998187211261415911026356946145956716582595602444306509547243814751774414814574286902100108572348067510037684257100962729665771112805374140435572354010856510103990464067038110824277084388035817722915232401410158129554509763905953014078188406229750054526493386302210157816020764208208723153552042967852382246510872831719748767272223371112454426892742771434548119357544005173826520288670862935067654277086605925258262270893949721276617455529606337574986688468971642363438017359201340392670931170120647231512388946015083926043226964457968792307432636368803984621138353112066447299531368226479430714915145627551383321571691765870549609449636211728519893620871070497088420873557653961019817714879447855368750116326667857877021169993751308844854594313792743558107726446573397912389387009043364299212728733402873719996567784626834572956667283451424195551555572212376551692271217035417725803928997564218582321207123348784610380056125945194759321086218878852102987482868331747759250352022425234820243606146072775617411209969005005044884664260958388614512375833911045429903828805436854808160241809472942643138974093398496499444325389082303062849728909123732946864234831562099493686724506099884591516722116335652156774749271191202362244761539228051433663027521775719229169482607877280258165735582933036364799633282707340170413249646741931126828950589916521363217354480424303762174066701527506802623234377801085584670797211587741860954754842962729925280289386270596036768814691349318714962389945613428386253590273825935059386061053420787428770486042936710202194181101348858937124124302469272330512385465979272412784126021141043775268295867798208316104865878589511009068963773788261566717511642420488154043628983978452018773612742140129049167524815413166262844331553748984180448397178042554944134844319448369721549115978594660256977345767364754827381831157041040888926684005965006486676736222897265810369503696268455910621246375417935067416203507430907792282654114767283617896579702901255480048445962817514705958748226097373843570574453546597869901121544921684172854681010209871589864701064488263801278986523560864209344686398351858149886956576856755382692590323370952070935705826968911663635694620504431168860331549015194573048440080090818563512108112702455139116746767776423477879970486155092274619011715804954886899819040788781874827817220405949581638250814160715277966165977208669158594349985350854406779376803559160981401685072925118288553632610984466523250069551907807194927246539087259078216452806816031233193652847641125442201853677760448326046179785802360934066843845611826967546998471527028097905797771586811594651066698789960167851183355477745319104604017962325316857955268305269422106374823926317865594713643850388689522048469630126881044452696928793200863327702551502040416739127739084718743481760435191903313121312562751803725352547886030041887763971956515513172169204972789236726898883602641055805874383579212124467084958006320345451900585589560498259821438669611679731995626145399727706899846025263842232613281435062916735770692072191315405363699546932532844566106544440489321301989821360488935872253222186185792623403781542312171530729291813236555205988949176498371750053730765251427762863660792308430788626719039560829919162463527332608420383328625754755370502038949325352716462863357466431064415833777726018042490637915014862337903386655024325184802332826636527887056937696268231781731530870197115168077526709407543010826242785674652402528289881850359096905871977706584542695110766257057784947462016795663555486010650155961229993828760990016631366456662480336590694538003881374237195743928464245151348422368055138103927466572195908264846693855515704533381822514905273179843810653551822386233578789920602327698555374771926061219254475507142393678547592807220394474078026814699085586503057524297039323896485424829095309380661127944228790575371403197915491608719809218829711425894246863482285363106936151913206541518421144970337602820265366525987342613050342144928560587529927438484734538807859451918044710964586831708524875552210497185954063864294097894705783857059502195749468506808282274101182684808199226870975576908090236166061921264683527075395694230431090838197856982426075512925425715500696099160264518991623753135987441523348068927837764507347449217501171079976042374361371702211082965378478588462988340812605960353866094607469980631980673945212235622604011677915464425342935169098113809456529559441065133217600105422206845951211780654295554845609822546379167952713186391655559728728977205021868187695545535211337003704557234671309923561296345225405214363370135957152111467766076029374871682987114803018196837757752274168711328071262666326315419163784449037742552849799837882144373092172460022755647123795057026845233785811294332875084856670243116022608760661821090228081716662855011012073444337669641822466580397260318079802156946642852427824586449992802644143404951765465673945572326472361972576943532193012847882620617842901501151939654669777287422421750919454275377778070322295762032097721385875126023367204557919447854335020326302010858315191127018790976825741377409089532062931774401646073832709802339034535953611281322952798746780246465062413564272188630255749512607619195804874008695034126605934535345510201680044474966285807508069061111825710470404922457889987801335200474796395178556346657521384885602959812624229997529353100619969864783438939706050255298638856545984641370164467664463073213087789078704692493157085689092920173844443102221285337559506457725418085850063710260391015950847330371810857904902904838271567942357487634470701279619447653140243050817572751019005357191659283634466505632795289121425958763553302686774888867325578605829455693922056168934574305559483689108468110447395812335206852355055343306934994073151345937667666329628381304554018692507338564889290496707963868262229240221855188271924878238953777360375095505253385464409928260856505086470421045035188287285020949167418992713010931807972207410431107618585627168202812066767551888109049117112582813947498436244163091148128385149204209239007052679446591151091852616386159516404941912161183283552715050999005261018143566176944593608239272662815635737802946142839507148210727687773262452599044360114174346590710339637178809664437269428333389227388200864182543771294908308779963494899296101018129304364166022357165348006872474970086309331442370709296531889573142795677002126873170841992407358952469845782445196285226449619439450529600105934676462599218564738343837783169742824461909190459936183973053731592769319768882814666482806177559737385079309073686140135500055329942793121723880964956882534629795144787256922850430806661235907037238078271978001680746249807849578189368326151339118042779124348544916151641068994663367534074519924730867635765903909713269522400365393183393543414507348917528247239067423789605021726654633044829065863483647267346944064933414493778854930724719538084128875272687258529893794090939235764946330605795164961706801764880456427490127983807139317055437673780026905067099594749925464637368822861081518587103016430194574140436558660531130215036640086475821147082374312716885783243862583880291457994458310560539212175787624095771418847061531474956141281588582958220887345567238601283507244380756920096098364707431114639467737799019119779222726041697367973170973066853944739984023788277533854973877599292120116883397951154481875382392083474442838217803911021962342897737813256919158489478095999763770784594999068336643034785540015568109575015319434538385182714227798319074244009573172057160600890155254265406890789743907456630469587777513345910156597034364823010314463184933857770984027664381849931154756641736930717748919688933145045905746010172310393172162288051987686479896423929548616904447327734076461132509644146625663266982890982880103457575251512992321996356396586319821591690171959939307598139970414235760728208893442129366588402916776639525362534971189142585280968670402415677628501141712881336145649568474376625410437107285758928631430816337376713723327989017082183458081659990752168055102575295637550073187066132354689567465395415434671155358750544083004751699526974630640111243885599590469513498539868127732142049910293096851944769985361495456930424716391290214599175525930194807067059513282909309761537527757952607514297106345178510487923765811973376978158699283458995427846905786484122947807567716015673537416232429068839398094892139059859267950264155305332469271923521709402294352016936611619494310015406675436797017268940816567502669729003554138675789395164756919719696895843920422652458395678940968664368913046211859476734318694276544559365199518994573812271212731856808447225385219491001322102984277459556535663228142914284137372639847097671957362024374788126839532352558931839389028344380688792445920920632476250314062513857253303386125640057054671239767619209185833542156093352919001324547893012158687717026240471808883837596140839771280335188399687469234622734563431788453469807982140961363219398188010931876008751060399092086338206844494906146080085513161084578280813302518401772627804732700983265308404160386245599549751041167808491657481115053406800042449204188320640308446741348401475976245598959037664427474708061275226813459975936589440050519221338226535745699150549550546118683538000003985724636652755369289132420678679547771895995153481647436352200462047846467329407543873729770388265576797159268735051973613993112853389298718974283241219226998287627783119289923671860845473355971871515096282714853185980902168186978812556398982605520620776997310051338185658927070421000311761853839114147543435174140698801818343540334289301574785848196912751886584058385595029198638447924166750479118061841217857016832267525790378135372612672123478960450148080302745617870700521807215174039882680312630912193036898197289456820709049315080005406481996223641523402737014731343286440608476481033468242004134289697390225621674764267138994644536645239710308159968814304731237326953852510863627597288728250831776424722362783314906859086015699668137361310093294325994007748129530707909197030644352822572534325179194154837935073547572704825617304009368032001614523679092765948181586554503722468049932547795185935039430048589144881246454838247269169626481320974011232482329680781456512838471573277114086830210834702998120133866232581686454185402497568037394068948751007124829991432098761275294870690164756268924132622686310627245172737449924290513191849108197751089896745289031341390301030918498508487483942651332452804120858442321528892297753002754691064534715745593543699885528848055468121647276839589595978243322804931615778427924272259101034665239311629606976453808639058329481015414390434905782703090380901769836215920445946760635408004489816523623455304483941155159776531256065914516404616225794813958507837570146834268205304596904393583926253726570989783444229781336454514384974239462273187592497955125131654038080334805884055858642565976337483173349100445678488227538222362217486913287282575235239047802819630594577448502707671485481920061506328912389028805983444713591585763203747966245163953884747392783534231635282325458865583503410722961142463123068002275491478956710406163143622193422311827543908619529121869835630294394889044012686714001778902922470520309792378114704350589389809015224405440469534275176570986557611059991570707314488776758400229458398206087862035109010632810047163383910830385502765508962398595218371222720845503519354810330871300863134234872729920943322934655322000327526736581932364254877260026493381713102171187579686303036946833091921503123446747038265420065899263074325338406558746635945358610470368611880120268426323074076835686455585010306043492395770379407197589593691205413851439453101723140340277329792044610634935298184564948715326914898577397019053666106867054397372580064937777350514833105551585269220991180669287681454902884951695887212781654117478453655777945150007117301067427168992039212085351484911598741452758013157291340148950986015577394096453870448382504295075336268532072811529375479269893184638398876052985703332842177133917877988673823438408043848432565606038277611399561339969234682999627802192163612097456274539795436621895430570835624991651639746001446180982743649349117503841893362530699774114594304532944011359049422675329382263862691859555936692490502369010682990212525547326141639537629968301361128315633630090832904602454557488336492846807245740442900916872556083860359553225203556935907344280112249766436593202538155782912226521702578576105261196821183819923167200803190341454197564538894901318512736990601147403777064446683584602576737968862852870230333099849386078707193445641172365510831803426301498488275726635344993157621048142227709750214693906255539615072977263706734292922785003330267626467521792373809198844855041797276007792981281438160068505596219481375612653936065206637531978770367264377025292652065567392462064766233920875452879362282739575300790274275280184597462584589409861243511053593349865757697582755186178173309760461805020047561752081326855393335154177436277582086493287053632461614378512997331099406088362701494033965963174358203478470020834220958002876653562729396444541246609029415727226805829999185727729424958729822192036940038336365730449844846049016155971655595045054746085072798271820263721499876705628935521423990093718916751928217399675588354131265760673038444418682508387215945313836918294899887473090341209635773105830744580179657684143987287163634688169681884149462009937423722681136916880169604378630952186071109903831182951808626816009294519638663537676601874196054999747793556808996386719337975669381525794316029235192971197930090211512832418445273898111451150602776619505677974944149411365188124843414233070811427303482070592938920843160628481484626105159236775643308834112917633067927128889997752173553481758887410385125481321767920355832536458834300397632993920657397009500404165746371559031166088242468460423913344367694315981758755392751253234956617729162401099130427418960534990538533016917040695879916794449494492836556472448303105478639470140750883044472759211668565479877992296507942902409146686267049538903129832443562978195218824701608747016682365057744715340684543215071885862526813317230165217350737555750396593887537863471487107765172917817163282784598142465986055146108002525127021792788833354168413358683342326904243310926311805101990187472206971315252211333864870723679837798236139452770962367841978369597498848754322165385488366521968734300561401495361073667151609197740127697445258827402934265901855987875230112279104963079843587084391901981909973915549884317056902850229435879548571173480413232263335435297450300635891605353381291997923693259127491798365912975178650956032939658815864560753858196508237325885816631432555994366307107489339249314650599335655731749579524508000945180182792908467553615435773010710949550048549478814861568426461574714763545978106195655943357242489032989147676147146310581258772552332307340406100298530677964132721467921139262673953542347076623702685349282078462858838529953183059069962931132100777551509184823506818807473649416131364741277804829515464835842079089147034458008548311065760370915490822351001768579656148275234958800873052024255975054326955534323708125469126933375311727358913965269502416455047135543142122293084798657013105799434261135090696707722615292374452027142876580774002162343679055435089862253616094309403416525667790329350627748090397636532422443899938806366053907421548027124010551727287021421654074263823579743456471114018501322592053480558901558965951033762243500085641001349891554105383320907962101388982546378046188978708705094016314961163765288235515141218471492459640110823862664753648590470436315268278316835295808250355325492772632020794740172121397020102113492336786758955361409710037498721630820251703955371300544939907033343977494042680763818738321258755968851641716294325755188200251669993034476920888336927415476273250131175667598122997840434482606949118437745739527598560071606434566171256404593434110924772943960485006786937031595468469956194180156766764089398644961188763125470301089916560073392283684734593100105234153822988864628582666430646908698299301631333002931341751689600367824178751661477467851577362052771496576720437060510231382034524946114088330150781322721886503613699834830806495912825919894414062700756361979995895537370402146981757288790451491815458342801434366808268904293995905079856376741183367732194798318090094857070471801659612885488997982461116301358677105893428784973901719373463353805409285781651022679672922988530718206659693274482766051104186385899459023273522139506874060610790104546234366305006942266036687065467367521732073163009128308965365903270609590847831444736522111941692006300748602504394819730583325622806803855409399382059419386277230626077077530381060827451455712886780251722364613299474499420212218235992658282907158060448509639305469315695766507821083037773787131611238790873029003685910656850146695637511977654021999111758612422422441391416723399864467571241306997234108313627001771456056244032254446216052746757311883012410862974892299586843760075478871754430698436076291955355283827996427771996538196760573411018671667185972654070322687005148490973338351125324359220263889709839371693753775802257971968098466739244819963166166075367390814309218444467644285869338034269629702772400783821361018912390201312359864499253171392721247392750168839030012524085642980137241933735755464013618006469760175438240133175935301508153653949615591343645177365410616409781634118713761313792898365547196128452471070657823787499952687328966165723533358876955058058414800845768428272282626333545621807279970856949655441065618804749202296566065080146090739695288441218794631299273197170138231567947869199921142980393529279182829696293295003540754381764324051712522037348071988381225851994169761759336739125054868277439098257133828651814836339763535798895680428338373958355442831714833292603485476994359365504809660196325520950410023186985574576175456022266703696454303085457688671094434844027982308266429573943019956945979721259793512057002459883069150079533922029749668742516514084902238474485390790448687341666094782846069313287811784424359127769007191851293860698124248133389201383227416897511457780315628137340026478641234314356865822827568340750665236380938286553643904325468863692100047068352979464508545390434899189706433321773725487788433816645494974609027584123154047845199618451322990751359315773516930084076496982914304054089628817232579963040172840230429072323707593354959111885973978697242038364597533566780061258994128581478167440265366940333676794539161137260239028449509562777994166238695911016589453253266104384011581578923298944307985785818736466627664266047551245832006957470271149812230170632460689134524855803689872978944750522425861898090574376970743107493446937287374268153627220659717985513670288769625767211645894374577349214527084133084293619509329040546073963221643551961320269340523449353651882588233154241439403634899609568952445450805502430452595745736420228369911972307297802419507649335319582585888324815262386010924045172209624224967442785624789256934186222508682854412395786831353003584434910140246899197068713871035368779556997686290865827980986329745781401782569198272433165126508927009823691268692193316588669200307835120948755983710327608829517287622968028035647025884118289020556307446806836348700212822216957272701494978266358611971639169984513896830408445252012036172220380412840358482994698468184698117267951976400887905556754161114449478210319632875586754808367150610715492767667004816458399517293562911923739043376464776448106884329859226464841135342970340905959838410459726218437270487512866969000735584088036920487534654493240315988795736753121940877361164592787122413093976220071832710782599453585415648465080591276768040886242417733293590759874315049472966949798077334478729392788624450528562029824869415152211799361502461288461430093346450430182784469026295705051838840486761931798008437712385275033058804680911820094789568562687630100328961419405118369636158714960853122875531200689506775473501497344190727548556755826365497557121550920564288574231055539100924122741655919321941352364938885907398625107338050656840421234691003605546600331774938393616209288550330272034655037806031321538442983002510479081237514699633587078064684868305261235277149587807687959587619868179399575693342892845772937197125710096376542079922831276844336558286735900962515724561344362587384675628059124986986585285113032661548673549102706999888984855802414768305961713009772937886950420022689659227765122580931748318033960248763183263588837552211257430144568238551214317531451716870732864351268731473922445948952167313307246104948179960348314355693849426209646056541934349704746298070870202047751752498031297199030674970627757108976141684371222515682116331140476886080891508367987272793777979677377752688438957195064231489488154385394293928623126852996657877480896966826442222118221362279383861109021841238626312036869591786739674524932189111070177662493680857319299063661876042477300077030253163192702359505061196276281920790989471027777115443998769621285651665191604209711187869247994216397301633151653720447349702173589261424315172627783194971142143876821132542820296455252416664889495049492264427379903077404893046223504667906483314118122118161264631590044297252830191938135426858108065600444917146728883150902854852190387684207888526415593972205697015213028445240678368693292866626816527927138124657461520612186174300686666594931825660793642590686611749254965941900254095653330918093512135002922943680625773458083245672128210099808415378756035889092679191982528529089440731259569301098914949281102046208807850683300701038798653759348858251881383037369565618592625384802116506728173118844617334751442925115316508646078107703589332752971956450331467228488948880553251559848888454030117532830007213932474144773481935012567109859034842007674643878018863436717799340119791598113648806863382082850921049556489944158157621863613328939670463020488681295800362466514308301717678803119668517177655853907380826578661854023964677300565946886265304936468897167173823388130303815946426521524746601205121527312830493798218834494553204577151810850586985662823646176948963206842086134793185283373593334752602717904495180923080356338180124381163225760767379786215070619625899066621244349299928255358846503916081309475836587370065076870112012283702311554869740703369980710899976313204587765374799776892729512660120515793705321269750006315956200130902466642006355642994731294745032070686334282564475111608350268035635995756406991301430386719872788378555893737301960260954093796585587500321874208090487595740240542307785178191226218024886806106228319916678153835888955649799474179745972298592746822928226368216891490406820065222724047244950563864902485499352613179177466970924846719305690001943883818345681320297867392916077669777535349610707268178183165935691843442193082269899624602139425443237506627691218002736022631043768872628143192177602513503123756464912630439941246830347033362600643416581143995096077797904067105932984506625837659904537849398245919187050884020798087932721676980424238503046397183478070086036508052641816711153736512063269022811180549795004206232058981921804384084715541211788392395826768340765073780989805980912121702275449655158842821462899942351001864355470805718864544435548996406849389813692595250919464715094237045367342781870959730400661542128960240786378584646416261164197847981553943889987056133407017780087101242398616264223281230977427644142676332523475785511277399646857352384235892450302557985017463462907686535784468580470867820262999520644304938636508301254564817121396179250369231675299507948725175710326025507284837540174743439553903550493399778932968481152012178394491616376201383514499223427189392527455319683025840553763007412989243045505991754264970821455321592348978225038295221926030556542894765055668234147560447461905042507114284741882789770333717130220564989052919691618972826807196012724946901967286369437243479962731830966973748513323464417280165789444841280886881117818223597366593822285312277553840757942001374437541365490043020377640983611386872681378524835807262772449968101507214865945131912926175616041133620162082750775195913285541922646883604463774783313516383402441935101184690394681318259804739542962390485431744591165320220548888403045034643567234021093645519627408225677451554291568353602981894056452712641965042888692605389744273709481315171188171085973148468614654594318698228384904984381393094226941225521481601677793065968461109736327125034994409448999424222285740761388460804504499497407639749442693710041992986177766003994186502942712299836050583020724079910728976830109219578004742526199773428668018070251797414298656609646606121784585642794803098853992025449812794333111351456241645682578670515623584483778751026035708262509862895210385318205219694815465184098201605138924465210988274654423053245672187461139543726431902205126012417371720887004846516073971901321664997902069206376252789679165927697420753503822715728001085451133266292336517002121923296357542143685127984286604180395901797619305595464914142624809552538377193970325910434203878419743733076621939836652849813894861071603725243501019046759694952419412268158341954495342781980642208030310886337301171517382901319591759856195810201454727777957590309602829979057427032369180375106571800075711107344370337199090381910795800680542540384286173748674589106114723737773876649249529467773494421361963578155543568911393488407532552555387163030850929000422323570258524810134122145674113883471506221985288502368863756392049966133674577128362736541967677380674006367205887441812469622386954031832219653338407230758767589730124862526637842094321808340851276875691007756908268928942191551436398516969259913877395273597084280637063763482302379340147202250317785365588583539688439914230095359874636104729640885300529443418438657549588098763054932686703199791916752631259637413688596241077110079961236785221048914292594226322733383291621492310553502405649314967662308848184609339659436185260909149200518534838083046272850710106674670046315823062019771080966473668213518221962469740237881418202627396997691964920209434597720984718453514625388326068669895497651496186904332281802154468607231792770937200198547585853486229630170979446999084456119822123034732618651675929494570508665373522732477159736076223463217187042738150616579637131476582908959965948205848990185982813872363332333758977113675874541455795639897928228390124283086135796517854210114028570547082333470187620447626173326463394315436972384534014134620777573801367911063066240055613289509712701746332658528217661079622989264410015235303997790118547813641034625388205321898250075078710932900097467890311442796630700220822658093785605814814753100933678632730265625328543967043429933256255061886414723017239739033304860936108007249245055538890960437825822187975211124696497877206372539874094336213186144718222275192272289824715208294681760550973738382386567030517112171444670618754489990279119288073473279392236914230308847057079331774467864611478541865935253516416578924932218865165597110842479120704261020436676083968277643671687632500420730610187562060343031266326319788024660696831102645263900517521822864658348829632057975431668713206676593962588325210665744457922189360316521625583839066778767481874642298191559754720654572410396434581199485241368622443705863153756567697845966577669137543143535320747291766961636290104587944505172009235693619911300370442884426841862931453769205091799751953924493267572975513602102216709400432735408494913852486038393573258998266294104314470172800154880251147566378960720956341832420557376151109610851882672119008521707643694339713949211580586409949987730560528125254083541186262430005885701065904377182849221956897062425454575707473471782074350509604725435861801010606544346092680267357906815057459514905772298172371298296931005976271935901874193852668111949208201429492995652933616142041412927886573582518177699990443645301022611430335948189202579741481529170469845507231815757247877768420382395912128168503183232456125222708592286288047564125947018685954445710922905811950656298377580047375029046831288227287105224533806199225174512349468030384017488279358433665446808041991299951133858730486767852158751184538545551098607117158325465897986584024699486061116583493190746069622728007533265519385860799406635078465588055209292755669246235873128372571829597614006420901149454199993499239705454447851558494796126462985088003069553840437224869804972806572330022878323828807274795167123157318825081850635225567003859606663125332309389116348844076500242304108720915290154704395340564657725471823666720122599539370435259642158133311143027480581898205234066507133648869800470847244980780564095167430606425555223478197369565010289384478023579483171931745469646286490625803869919301790937982969313808945858977077743734311448831182396846248649251419382858854282163950162573029899847802515815270017007104164585800239827175511001747638538531589778657830426313317377999034839417070521418619463254549096541108968304188222701721817999962358620161146146873659719044207204203260513598049086809202835262888353039559900262574525953264301098492939757920215430810854218017872555850783895694185783356610525183928741173241352865164428421700310613408725982639048658955182145543571316810592637244837874471338866656227099334262106198411152766449819273382082995938647441650206597640652060572798923293427992469983956800495208643368552140999558775444654145783334936823572274196823337823016810973914363699803426776642706726178394573643491006917635668143641091175750107103038032259016033960653087323335210350371143633713084127904375568822571596856097714981242029234286885500824472620762943005113448790860914037243685371066548980236473311039974784416331572319424167524606581386323797958298545637404529664968293175420295215373767491355079401477411317144999996560175680344131967147472912067850970293161603919657103720127014445413506447274740607540918007607059292591651024443563748906406262578055205895209342504827358142599977307349335130491986029072570679277443065588632562407872779238192903667032775591153987439986039531456809388771227416090440782790336421259178559071220444045958057230967665842439070896030910616816372673729562196301003279374854140307176327998752756324307246900426427737866566297722750239761427889457228830863468342384164078212536360675491449278825846561825610624228541040852985784210029342137027816756286155766447347793557951267959710987495792294640009587289258692034273699106810622738907337525664721075081097525886221549920166336570301149947326047016775060503086770515346506818811080146942779352989789651709703374780442393145772379850997554497183573071395125595909751537598280398744369940594430127528899046716436669355230574833867791658324716927816099705518989707723987622286253293247389370594780672268638616261444358425695091599018288990464817563108674969839651629526611543369176839207572995655336146644085248420759290427308390412498660398431615573054292803016515425963667470215210855506535672452406094512398034992120536941319171432009110696481352662088618523398527657470578804110716727835782188079340480483034907124465515070684638703607211927627746868759662328702347010678694462991638920849436767804467087449423905622871297118887619585006055836251638385822940675925114363142639261560836895169059396565168139650822798894988820730416389826916715682697703383426480939831940248654785650419988002939600924623294375052783235745423371404639093710063362583406267595700012479315582469832323173664703687847650925250479439118414174773078447490503936191324102441680337912480475163428616501470302081611002875202111613833064989635467849876213689595256335906010121090991967383176427218877851177265606708454870713145383273068172693300926078016660430540326341094123112408203138592628721681788477364279652297224309982824845464666466269726102118175081537371113151162550766657338256767221934938379902306788044948519608051323746420321896784462060576662861631841560755153061211924656900960435874648276995887112223960213356069557325325262574367345576404350981861334781585642424707465871019472609350064053035402849672290323834066758661774721010332312311787179997421420318717591410318523016238044829171004965939535707819864639131358409245419437886344127375044215622869129223435273153206974531903860426152369762563010576140783537781632755044764422313404344376125933229150291469797592162845968053020011553529649690776218328461365671372863993293859890874722136595629834019262162618600504140926816266090267129359157571020352354614656270369594097160453342407731445526085999507536010528448599315481553174091819456399711492991840653024401087180325236319626174655238761759506106588393463690487341866024611210207280900000289962148406140095581816795527415482370097834737119430401165576464588688923711546548474092711156637617477348881593166938179281843797515156870730659212308575666381054979659908530040527561783434090815022314709600989091476018094596188013991682019243670482317909733031838831416199759695761850897689113377865996015927434217041917685345576975380431305763493981384275396408895559829976457720799943285056451591764785642766905058459759010924916284137075046547109316647221132783430765329777725417189835784558294730854939499283074157811751367342444843641165522802785838158331717046333550705829375303997858752447129368976713860346893459943257643874828830005608693542004990164464376591863670039170380937826908802830532713180144713014087495586842849368673006390099036897488026498766253600117818298327676385165159418434925255035437182457315647883519464529737659254828359433921138943693333445271094529039255649514968474782918683478931718860299602337171090611105377639859113615037211566701500502944506666580257763713544690825662060338735273639226412813315293210477868587612080575469499094322105358245556919834468146051783127764948661769781125831582032970128950819834254908109793027465354082881257196380736309640739097291059669702314964012901414521549196967982434961142267645381162311936594995671197729741205620525697594629098313952829831492091953865393128734963787293341056031201124015477606615349903591516357700691680349876411388269804491671705473776980652038184860049855673185005230199925326942945315334598154286102742997346690626691465272929045561048847404310809266169101474632679558826161802969508684866814519461347293237747054421306813425014062634903861509070089923324343024752439689149040108378417591203605174671193048963541781567799459469499889936501204373907662074259768907797310475689637029208339416131618293076280743760023386944407139981823537889639022323506967874825964311297791001246154583588203555499666953232062740423602106782128867422135699214473221921578650223975384501747173911120034015309713151729161268963203487065325253875006921744325659343695222274414713814362983787950205199293758137446375611768234574853686649199220179212007255426438265223384832972424013049578694949059712168572342646003692175145808227652056180655824605075983701205075252008369002834233444101004931259963424868125709156793557135785333937962040522869241878525498496850812146443660347633134859983342645014803861213627773525778017946136076598566619505790456995632617228647213224212908561804827384237329617026735419093763789088440429314123814193139864078646793578963732592565636245095505560183613315226944704667277016157330422206297927325403914187591992222249429367202996457512542577084270571827621290575272913424932015407454067394525742950952940857550835488561392970987821101689758097600351144765269315136236239832888752962078748737497852165267324646568999143096805736126140170005359735539658648670168719757961721262099537833815511726513485060003478081187231101838892736928451034545662812214101557914305488689096889215102334489467528940463770150519197098427807153630781327819497744214679946262551408968863496057076951294701212087496641906977072035138787901809218386747395682297858131494643427549969291461389311932013059419446257415283953389853131841205096399067452846628258036979514498027883194525220710268056400923419002001896952874830195498847323623827088881524331264172061711623935624472894909592007986069191112911725879852542764846686724655327167314595643797705543488957152680507163748915021920687825749538292819401052186441016014500634388617878888287387953278356570987383734455623188943594996248390551520200067249229425918087570693677974460280228172324832386846908030694747423257365378011039383202149018085988424995707665347962420581049159567361190057125513937941392586944380362344264212911402716907386034313641036578687644527351814259231936987791766414062347405420644211928327233388079942164986388369301279150650692907496497549972853774395671003536104897228725448465171388377107704836479676145142622787687483555135880633985017111734401568217517593428826718253701000402761259525346073903437849946868733126880020754461084824695928611321197925193928190846991577104377487792435936293912540251878626115178309323445897931599199125010677509918678937176286706385750201353084031077637719740751164929335074965901960148274916167658521030069853691055627618616505707456895678387921471083008356870292921234910584795959634751695540738976465181128258657088803096899883628988862498878858851977688640629111979832198483880895717647038867585065220441556588424574279021461997444144753328560443458333667903551820631867275170958861422613021915157636687519077124308188044901213044200306909162164127592833201187347241459099059963685290537894133841641148000850617668040058146157516051788157148775468672398347910713382337215781285897097140712545518403512540441913357008660938068488089339792484676829247716078322445137445244646145070361986686922674851522943873767992679730987838648257361493747793892213898308180085399873314123751821004943122512965934022795348550264567539524263873952651899662810714786441183655856683260690164406115003040651042149657603239430620477955932183561863063216754734416325471594306055471035621863258137092967309893074706072457945641075982372120046582365160207834085532939686352700604611883762014679682316737342282220141279207405775164281306014215659185068626369863812949688414196309194088758679183361794692267146748223426360270002458885497136380697670366903860939266672800335666471824934468368066438138280848975288990683520757870706788160767914684427082498444969835813419341283231599701538316319873178750848177419521506197963429381287404687798811274804633314934080981148653431092322003438180870222511163372894168746540429024745881109876393264245905993513203073068872299094005155878821537229994988670355252985551854260338820915342062309173991999071995646511106209887957248409021579742770646138933211962179784370838288869657747686031297296444295759464451237150155843115633571626004328882813930681628096907438742867523529594938608833889507311598320030387439263347190914349372373702524598752174999159282301833351423974853040758513923853435150366200172148786628437215156490976394860748114085314209293074582963058454882447991534216487240462485438440710345074495656995216544135495784553163102067512186852607741976907032206587205417725090227429843403565570642041787174090841871089072926039044755628149075546926439826274234497727381222619715237312722197689122920378885784385021823745819979308253038232509539670924767759647137061671877843596464682231504685036130319813907698125311279192916136867834348589769905515577210303922774673092671252710996813275325959445924840540744642607815172157498665746129538002015309582030375357504626177182287071235616561587130073886283983810604384456175499269095604169890894366859999369447922846540705283567764134471474178837710058672879528320704558911013761801680605632994802390012473963827931360826858558462986983814148009072854686203522019336088647359169240307743688307229893985515462612800255404224069978353951470140045851460377984510817471826563750512843213830190752264498359868283598561061175301206678789909632569719537315345537279054381094387535429211910699284080275511609573808396641356576374504773444207047492049793520399374820543530755287693924388083526205084951544434676305847465383595821126107042533000381562037895799143810408926932866445042168181168413851653583892609280958450593366602074894905012632042624032324313744388698106375943617054396473062802442724124752750440781083228601735307778766600711021332770855335784982890301717983174670716693841753907558746473163868257410930445625261274371607740281725047950619123799546382635935300870439689235291627723548159302280783275666051109816795382013077684660109920734774059539761805434706832773609099105087276945351255315608165423828561586593925379088056974513330767043314987232895079991524178838719081855958444692376568368129971831391667305019914940201519329393520339872218778579273435958331910497407444798196926809790749685436378180189466144500347742960520882217943278612772982833949941347820715916713778119315891922016813212218614011000558919737552724282286567643318260820608329509713913332784859539150726685341067865316803883778743740349422364661958398053289579988234450476133598781498140074920937600174650357554894919111056598596460909854089584790822721487347165705548462587893726571434909053904608315481654021017147897349314680482309432301089262782162454351116087923000641401153925058042943962086255878762593876848106620908147951693688898197260328895185879474297797805937754266368348991851968020436011882363634191528421389625162872277090664896867582816658976586246719666888220573669563213026359486270208078387327908334777446306418216503946037704787321153696013471420289545093307126704335191149226723810927981029075117971586164257873694674848860153519936513869417881483718907721986069119150263339946267615953876470412547470087434802561416076689353543728257937223924587405665551094553112937818785462468225190253285477623695552966571399427643354695187464134846002438364190526916454142622983810653077736318656777122976014481647649159050491838915631438616167816273198271951098315486742131232598527578781500869943103887019050426036402821312203126991383424058559805937735032614874375640269390564465190517304998602723961731853603127397960396821132332400742141682675826440081792968769488171115267790389047472444962686343829036382301063308794695012987782912027602554873089249557037402256808639220304803074269941285634291620624756900293300678858821454193226395861830636636367668501675348917264856950473684089164914943157066379637232958474203858551989752274570079756661659282776779597423020157987901645714287940468771866020047033851066589579200496313104290113644958972400380785016503957879606809369234095365990259349160800058251228524231316979633791669863272909255694874931171231373426962558984176335291108027262520153289144849075289704422800273234370011787775183765632233754030428579927570308159640821254746943900949283875628926493692578829818245319853024785862286657867254818133807693089447672603139592526899557856382118786780736607661615517223021737967468369721085908600273350906758628105620978214318754296092124956139688868802827349239784310904594036490592320964414805092252612704331620294817877681906428027070560331912699962141946068461493371015061212339326913986287843736092354097495750177926081409218549957361970895497322535370357107340193372571409652855836875324983017491409714191990684351928524566071115612159579926131746823466439823962813088790172873977032219919354565397123613893549358465278730750169411069258524402588146401000436118952090995166225371193249677088065325261974681538797467793300385722443182232994603112499800864345801849755623234324801495218808388733395220556794817797891190431978702272978195411201429714311027334902537736362388033434613104649252631310311694154517071913276084936409526438735832895449808062516253935931493432293983578960823289100543108530731638441734810189681139471459774836601305787445558703891375717450126726579462367354223906284712946466634184877419827946523198895398076159622308278947113372096647274206194334722835680728684646673814090110254784168500683731891208727273828767390916598266275997297253306475758076590070130177234213376129787456965248920259763276113200141828145117961478988104829868167250402076475490047150813500876834369719874835112909913457983433241374794477915058514264924876932523677140273264197930941671033524675555744711763152532842501888062469627819974479124541572190115627088632513627487972353725248865442125763909309417000235907984918664567723706863014776796068803425105689635633622714714300604605221671786053881937934008837075910983859118109063878225330616664319021081375907176583396999954295957320570229297468389740828131548490621749368614864880135011746778346203035953952706115108572047211522047534886230478295267818021208871998123855169046128456806671976225214864768812430877102581848903330603949808549715604343024978699686724351025606951531253180110852089748460720682498614648157042556328273585965172572058530057075226110153139079501097924640293092445217698799385633770256637944756347070716264860377916007480037093829563277998526543887957537902372672119287247851173965331663060470555601889195246002347479790320672031001598515301484091425295924707594874227289847097982346894534018592951398321444333712311462311401426609169265733007421027024271635800237114523481226675987344844191156668826770980147189057515931265059978297930967437665928625471861795229458256332789852660835734370858403805347779503984391654514827355014612215189768729479501809794863764003172316427165676761858615273109699531376543760133942043033801797097746706290918926154303809599302960945212124512934096645610575232716753823977127538783770389591171534102556575935910884683903254579051255385858788584612760416081649736034634321120000976099638939526301979436326826776942715835250554319702969298254246391162846455558334017780068120252840655729578237167306501507447229651252997429483538301237708790110816591887779499074715628971054641258222401580692121379207925368779983245858269425198704707705455227419610632460089448450128152000597930076535318135050239196319765704044583306404723737175764438476628551506892667022018311549735360322354344783250422963126408927856730765449577387595185133952806604859668857385082602053223624750539451783453181942865497616921879689886513479787752920209307803451403111552903829770663056265304792078885028547166753173266703975722530170042667430428931413916171442844002544207953801462068043378203878967568351004181155317005894386581469051720426415204212866360991250542044091832897851334409490832134169916734289396866921120803041953576664020007382109395153166663282348139550274054365180147095802258459241365832187620227798762465252477337768550692822698455371574068549324645528756095514426569566183398177046438722330198195166323814602329607229476205917311195352592943709639604921175269673936427375825488067330044314033378869262488627719607461336165226836951230871220778165595746729430366515410319566894673810592976611620037999780380265546875790284748863280991471236833743988689958123154482030129648728366345308368931992847503750064406947114877775460963608751905246147555857081520553217299171551024929330321052858202280955803890655578724290572015693968675346819435827990780792720335900874521832180305520673824903419344968814504975772846765068277210572277238376998087328095625012562157766781715717414192816305637810085676750915476820346328671526763119788476558646309668346208054613450337437354435921865427190587511632731379489962253361684140567984931680616331865253757143965564360289852881680472860346179861939971550930726351902668561525497583953502182577093141853751286282669424252572570253284404492124355587683292132886640302214960273791109824741537102093320331315937709768202167924213064005937863651885576404616069336548431765470092525939824664946337022320749565209865948157865384855138676206563003534585907989365363914672880814876656031540005656148697303643155652553570064198366939655577244246327869347985764903778126042332684556538333021126847802430733591041464042405971851452867165972346782924410829295670475767921214140729125800377305043502831866459419580896537957184853766771083535986696605863489086580149331713895573259749536413405860055704701103132987795635850978504642716703948222797886961945002843153337080781679827800920966909860243822970054361105227108566188328534535278705435707707745888254726308057825686458673057134974911120051625941599317086541131199671526330648901725093332462276813714957190392006685808245137592863699280308270875126762552016016543952391024914328264867733555328075098025803893800930768098155765706633894586548941580161835968914710982883180903386954936212832843430159844747060352152774594847489470883390208912955808805218142845394357380970590120732966562571132097419281052216450519908955903398973266867809923103512952034642791582179589546215221748356393692563791684063253839090021230447762369669102283847366633119891768665234395623463003438158853552990998381674401960261952241867426090157609169469861257915973992709236980663879334735499082622542018842531539169528768125419100077028660206451536374134096851617726415299455664099879515039927905951796011366821729826940112263832681448167512479004515904087750867379931233886257948676698992807103946314861573964362823383583507812190705200639816488034503784926050443226042994972584360054358472642409865311213949205287790341202646326213981926125559375037343658683154117145614493428985553272686667935472104627205995011010288678328917634961847101731032663833902818220374358283305318735522713010917611486254397745318667120884892378788349922142386914866285818895432718633586671787822785019648239280328782215004053066948240914849386212814833483531486374566500438043197022148416141786157063656878706043931686587664545845956648985835704623604566716527078369139531224669529014726362947564593036816050372446910086522402755752645857144834282981788999745378048344442088627274414624573598134182988779977301615310131427427878911484774010532046939483812409418725685861602022135560885892804677960936254529396284562857588861742921489193910285781903359073552863486597828819301922369638046777010985813411149160553658253018333452024038008937918845499835848263822657755692230601743667781631104914915836667433789949497460340561259008947545443048201749716689722026460647842301216463583042295413219730736954737974599699122506997313259364020019491739013821730198946175325248481032885604639160998586648476852645055324765358579762954877585256629334701655272232328438508151245800781315543215265883096539935042488257033853546789840682618079712796334785876200187256734313367997541230369419718327880633005277338143151944936917813174724884167552321569847614074715256431400939624951510979540535161437394985299583703069706676911347016704065816435358122755553543690621923714184732114563484601657598471104075862890265192105326384545433899613484214759067562015903183042797181356121753294183250976509894284203409876994987294984124500408667767531129685935654201841806516391124087989666790395677239295357433199173734635327325725848719868557078677402465237396521763284775789278423796004816169893237631816472162354798462572237500184784113466871771436429209046899659712676697793790355519492893293766844740384322082573176883343082275723421887735823780122603001771258289790097793253715665484253401304491604705352058048949293033555067522956769483807552790336870877246203082410608049953854087221835321048588442154909449853862465295586430584191323320335420779818813704312507007749893209494537426523467402776033475391512715171891169413318858027191203905598621622321887156876265492305734280069260726747081100709025260832424536732797691006299139409037983219131670976234023531652976922204560594553200520155218297016703076701946247286939024623011343866460860749302012138879294405522869682785557957172304237536725497013908425093164854474428581054435054306091945712878212894505591770530512523140270441839835974210879069866062998426250249682794786628577270359568046914269273407011660973630944340838193859035031512546113189999992680440877923889905089268522586809082994422011234598413896327234933944259564116164868562419637201331386452546659577441499111291507927534859150061628640875007449343151495294820035320712013738197490270126656378590832852524655106436711318045283299799099580929487408117735316856140420888229477409502159050788773169841352645918397024240609847584826297667620506748100961529820460940359777777872349408920678598367950513167427930329293889421681550756999799707907126742686473829281411715726696295731387541477585437195336767572076290107235166337905503842646545075370371495501905401188333832507671161329369397137455182615166984248450237072824018798613995706691886601732883081572723989345182172267267926491652388507284485842194445414940278456685439913192582092681474222321996440140639173462872932418436558477315501172764201131560908296736023113174160663334008748469413242584046784903341928017315431890848509173791492821529135139506723446965665649971954400886114707489868292907691543655401747808241486903594702783607833545224622499929528611689391712232493749722848850152042672446149609433792161191213159166173156077964472014474934621746580221489960439876988968030133668623672493021849270564794385210373177916164186691344244325079788714945919632872257434489248944292896241590913826133137186741307703303209368003332826483843938378372684926752644546986988286386910344930855060321630369859302764049635557220735498176956183983184402502811653747916223350039394983852041779223905635559214072721671527202137552202022655970215919019105200957067867412672936773131241137180265139433041544292772813509249783207000440766185928977210017774608883064689332935116999789685339630493704347818947593954835357889854416988553426336177118159241216969595483631633485068230853869999956054489336970730383875037254300761868686226930244235087101692928396461996458459913517653605754172124543138974443935478294761489916613232436309364313728855807884585933421533732522243777162025312162086585368282341615168514530055003643318969987661585081141649197620472935602320867706003453452803020577095867028064110095800533970922026103843826930820993277830228373784872480833140867109261566441190971385671303246905309449861612300921357485719218971426528014210301286644497929176446053322151107393953483458432060955789606382199316355211288813192797395637080069738800639777931153878752608838638498376325927819975127205180846779476060387764591541706206735898933867478825373001472604013659880846887846965605522006119170732496828816042051073983479832868802073382987255985393529351445553542210832355312021015920247690514731808717482035238220648626078940501257457622845229892478754855424815294978809953059666116618215137920307372706751135171448236637564459675027340344237719717788619206983943707121663910040792637480769879412378572518066522316255388676884408507617691409581828292843934449450223127287835503828038229307799864309656534970636076311887495696880677003930449478635209786841454087882169457987709965385249420667585888617507225030330849187071378961406265333529010733050010322312429318236853055319102654629970195516986054360575289803463706921397501999661361634727692340366946355973790150295758316726328468502219686866251318485939302976129293606162002298106863019069259595720086087924541057678806837503442176413191536976976716101890487040665856845243354488521195504642947084492381767582575394006011029098486012301286587541558629958421344179953584611584002138071396342132243451337605421556362726677453100717947610096489254249206389494135415445952794206867044056190144348884259877023583071059740193283059829545098550650600600757971367325895868515463147659723875033126040393300276166826590816198858406910126523121399827466725945536989284467590101018775596426344547611495575779347222012436948876720819924855762535565637089035446464490829118927527697624267441549333391983521060650834997097603312699022203220337763468483110357304838273880496875504480102138410878033134627842316074955247682350336551250667762002918300518612411091272902824979069523171236209103481658069799351840477773014693499499458724084289486095814116176577476991077803238730947858412969183496879827195124199783206353559066316290301995839545909438818301471668631208711480288374053883409320209199991474552589934490425353913978796592319398542008087759860260220580160120139644275883568601557953616032865118046531589478100944718198587654519939123963205664524335664653160362626968151835170435141875744698164186321524118637389262992097363270699162751595840738448113712091154738944669632792388365413660974395465495802856523396588461058914065152030026602395336294523536593865536308829190285578457531406139533932924244189788179030535946010664965720305397655310974939497081040505449696737484847495048408620896952149552425391932888112642471075568448236783563757173113399294322290366524853554296818212891697622666459789050276308156830732746264242766183679028934594404519221403839790125130965881820920466803530992169473317142568152118991844361919572365178608718428646275919703924202324430024656330085866659960379799135190429617813334760435163090245726898601532865114876463722096840988348918965783770931098483336495582556979297230836328908503535902510489902442328315367169167593317802718770069696867968793197660328102051628123998914631559488001962554192955194960535022509018695436423324382331124548120207875506870356180300987546757067966715784308610165314015206615863881135288301944332322107413145502801676122826990539222603930873672394594408411896369954577283814090450385681686993943664161102372272899127857567609201584179192194014295673810364549207188793190839470810407014460490873784981822665079045230269193671066827674559198325510082785245673207996559128478440355069596304937314302689987368798882205452247917686350161120354277275394482416728575023598668605238106174236872355463539304431458842425398910396001451682310501135567942550342773172538674505545956834189968742900931212546426186034762705557189183752896603319561729676626948019322243616614322340821591631821043046987014877849277532078346430403513408924199818117417626225218159580693886340654847987492376805795667931127961308311996166247871704360808919286879593106635925055997160403182641012895748354483196116128098737821347525779743807063525363769994202576560048608025739861510064807257488643267894148837402893357000734734283461491455941568662964386981855868755632731463386859281550920736782835135478153574466561698911291551797747952526130861882501009905594047145738293625079699796269108701854340674139067306049865927739894239503274880908737721234786965632660014926595585123628660254594174685932509038933149939700166091453995389928634341571851146143828065410905556598584444499308716008029111037352299900544281140109882647022471017841232226388140213609085088976229647267693128319075304506874755577190136590056101163445483734361706409283559299078462657093797422092734852946980208703632587749811161565800630632381820527582536092780439150535598831366812236846588155012432340974011471900884559430416135298930149422079334102219724236255274769326180192427832148490065154745039054981214871442058266391582675326924591390011086623431054216725210056441711515163470294566906665860734700300021550799089442893765551361255916331398323093732079296027891014797888990243844847924854461256727603791639329531892412772765819603783793855103034466151848030000782244716440763871900401962952802211501847159973952674690600616286415895765278029514780991576454800113715182256548760371446735029395444185956275904491081688059869659754041829457711723320588728893827973527875952854580209325022354537559286131538208882492194312315250302776466610007347320425795058798589099639524958669849965173438192235666992972786567034037761120043600332347811441816737682484165140591264072763249845257693776091796251752190019564559038287318373541456458001693912143941157402567157562111229690989381124784277903026111716022843911935608686416665188676350153208685780854646306035111632838152874344107907769848408804035873944295633982935228328191156894497976594716286492217816201191456388741508493559658609376095390744956853123351792480793118474720195533183782057143317606152770519249156684226533474553770469784132685294692191081014458441407113603365894710360539114953436987338682982346026324354214116710866171211557212395325005112726558808944858378238534609608641318710766298044121897717453215218230486087509679948757820575118429821790323163484896879994262752665728853975411620330555905978771375097793741472514637069840751437940141105340329282799376046460381808126101449038002870080695220174278498146368200365468489314052381854602806619102347266563621252308744422017268255212965735690327141192638882432316259824337361897221462271585327685634431309031593810311715477397830823258761440703586568337159713959211496605498389959313455242989594912425593273161164414276982300809927692047134241428651292853748338370672222019295190767567669240934678934805719692850791438766813039785335333584430195245709471610867995354378942874297516675546746724232139520078790617679602748084357345755130812803472686525774900304314900740288999066976496442622216034358909252303018325244503974665118137253348286091537313596297252430963473035369931953199754820807210935101308048335273208578399242565604655197209517096880379794234544371882440277519577793805751816966758442056081128978965895260903153478639460362270996804075877298671094458719102672524216182272908946871332230937432169437470104666106228431582258586631663331598792416483869873408087373489857380500096231950264867596830945344107738463321062879023544647835976976658423854261578769135962854714642371446149924430242855310533267037491602294302057969547062912972596054323605215727380760710609063355611093196016211491162289773380738513789147147815708226712260104464443659274039604017491621073827842277021722689078620661672466823784763305727852629105818362244556656532742446520805873643096417097852723777371396594393806530397347928176951648178817649815254523709990841914212209163495055594332920357248264677871041861632133735202997224029817160242392124517007343222778530346011789961382503317613901767812749221390832694560155929558857020208332776365708133056175268337176953615494566906058973649521523624245358266740203978881871132492115273847406340108433605363228343342721784580070562486320902029169768613441131115817157389559830261299892274350670850280679998070414701912539808168840308794559829844010746696874984026619728899926570757275807450844291809606235963867431434980874498610291393650422505696946566513462940960062729190536878342327793385029571058510324912849389906668014182331661692091784115660161148816768856893408334529596641961550787135258109648604042865844032617650087897619347343430935940752500573787886713404968801997469609387870912357175392346775928658051112066884187727265073128016074126254088702047264759411428662033976811108143399701698411576032882581384422060775383435732996280618408778363218202607943083893194070492307904595594775487089820373732706560083903746296799188539397857131535060097488421441256772385242101450134451194234157966399621447463250201825893025788405217431768521215091887033393654024314510797187025316392036007029888743939062029951113263983013279653831562940928029610376306243032002543769972782833020126748100855484503387337317665972330287940808005596492408853393348669218397704882852351792627932210803663585459636184923554307840875820558265055395324408343856870739134669616743920427680287749231718629112276752043199031537493656842306567024563621988994475818176149463022082901922659695042173847140260964266591959963533036406773845979509043385800215936490506110770664158941837017490237563676709819537508103716354615001553280834005066405480471989186764433750822306629895242196807274215096354313542255409393417326406713380403139154846823002427720300588240019488267795652440410719439090216546798180708988676396126726288418500997109930817083821321832324041351600057521112163262979098198784864278519455435614592097336290803582383260833278666579798593155224677485546875365730345612748716076855194898351502136082528954617193445138985581114325060074669126271413473411783752243018565154249063607033097114905995924682170327223689456510309405677760787608898657196757813400826480028283953992230268857572795041520950567693193628017665656151306719062072224646722065910867057320660545956141624094681153048340847877664774297816461519460490690982768983255566454720596274772435611746645767259164999077977227605005381518714173156534012651192437014411937657709035172155919221708985883566082708321117333795367792012156625540618827456821970329601277783026789808812040807729970449890069887330414665901299232025040769596762401277567678367496605607706994863107491223792851690265144540134176144357958727933108195722356031075105671288726425665910228305354035494499534634102399469934241821643932116023291449920003778233761263891333623943721834968257271157086533799874083779969506439564948778580758281588296347492386029130232365054045783085695092881730349918796415857958562614551974355862984209163111358351231921220323766567980716375271683508233004276643168986394422128300785876748851882319703314743678088815677754995472100190080353209330764489814141818558528818919074218202436593620106612910552206825849708235539220997759818297284836232873122396670508165525568272455486316079437685476070241316961878141484461669136498639183213302081769111495782293910760025445274110468328694524379208240093974115770901036180118260325018503439786984074542260471497252330935017750822010961331349129845831149378243844397624685366497462200329180606335481622174977270788843378775005967092808035746660240759130292290276358393352689078368129272829553509895227529256943287137002295151296355706436908045177101007585124420667592221031525359505880966398480967559285055651735043975234569406234102438953374186261176286831091809766837601483211346754109200621607305074484697843223198813640879365681681663181280739922026528102444967463147556919083701797003748190763923756625929430695673930431020363703289262222566130861455443066489182035466311701990074033731863396916604899884003760098772170266917756512835080149235901179021208728930322622642418882465339032311512978063216648143420542139463222013968992347004787240880655030393696381227886599547627775326500210398154326367229174295585997891884534584140708298707008588540607595980569925641871036026862272466401302690598123378235066866525508219834684890691988910909398201285924869421821939274840704624513438477530600933175471849205397206808748967999230415992226971799324392254794588009292621313791570326651813639507637220699976498261908290183125979908817167594794556439617176248871118026791848721156052610953752809744543106506531423077005952877187900923106791044022475706133436153637277880433874173170531079021134489037230593753368074752238987269780960175311123863872975454805710791293074798520826566342375640984851734390194580293621371153263340814037893749358535089541992565518927006435529392141370198855732086447668195487259347646210237501656134893813561591125880753721447951326706475219600964168224779460792397410096719852921041072550255002931412323660567495764793562853043892143947293146936427991090779514481024644083447089914383825205163576105951628171568253858130178831257773680714432834408268217224862532899482738673178550550287762458743921045931485947775620837281481944927032839324898341928409351277225826455022548780165382675388571025165444950601496757569329572676568853994574746867627841710812830990754340087585384020778498333245043294901300827252250840952718747907832523650403701922483112879381830718334022092155043017364713391425497189632320893926350531622040992372383255249723103075189645411538390662743060795179611059130999563517000213607635640603405693813128005419271027265374665085478124866249649631846397244776448974986683704164303839672520053564465326327606270144500675316281043259795988331989624949469660855419216512931046671486467370692477527502020540494932237753292495984216852027428535080175751191359230643930019415476540519225358147719968903091428034876772429222184330925093064757617146083881863782802599376992424415932325280384281448554563129083392742537075951500474526737789560750768642891188463759992050812568932763919100561621315456657391394037035791648378476799957161664343979795236204956015478190359096210899984083451419251253287024497242704278269072654238908068482113660024373168307373851418097209923604079566976386510575455164876349416232556360200494295180188304740035004261786067603460861133028248947005066504293872047183668094146501596275850231072377389351469986197501006539898893952473291359149875959569811892784372471215671999358524516295970856945956906207283152141148189078621803236681306340583655826415704938446134935091590367699053380676741457818743846585586709546418655310356224094479111140332705438984889666121275930511882341068099155592393208133979279127171455987011479140204566955126991860576309284726813025028152665999268468454767986938271673127352506850977357599006787576747254708869191871077006356374622712735403416000189464080930579141344808802494135897698805316363379806853183753747063477899143156830174934789668703021801964817148199109412524879510021226586509297841791383752089760186602892475991176581608841707798605678928073608782158736570924881234300990369796417952010233714835577277115469236965410667727544769917342014056422606322990477886941872966030452186125426944104259560753247025467504654303807714350019635981227560346328948554832750350004427021521442465444336929394351314026333762503043819724746470479220751116566981221296761055766750631682929225116371981609057690763652522497819467449573514214974357620789235599169579369945614402932149780930098025381141085761000723442796306862782655759345760573216801487997948913969134072281281430039182448638415262626955842617289559378210596717595052808382279879793149902456392150102945960723056875752021444187530007891334370570642383389290421011110697631834774779971997804129520274587174327254761012813069126055111320127204879868813815514268495746865572354533313887399557705646511469172830907485726930510096915296658980678795006820189469602527560883347505560203340336986364494416234291559673670180448732200397608707944910162137311307537427826654276503312254071904932477595718530757939264911642356873037889001547983015517954995847857442070072347558846607239629888048524434413605480331819440221751855629317357760856643813884428064368885869327088208956746401302112210068123641348411413190203516246393994687754546534820116389076949961663469097994045169095571340652748921826602458365922910522290231789144515803530568233872171520727360909073444892088354135009987450638018308963740125276668378666996943605238258971993237183906748104664544712513413320945865646234593720430919302679473094835899155355856128722556114184322903677633420279304362609626798883456076525230765809145889322800523162042046859966860530665795354620514954429142669352379871923221186878002531282821374990439703449494523571871598043112251639371380424198863254751777932486920118557638799067528953549452329413014841048789357308967334502637633634094218283910978624720724232665935643999757912884109034172505143738652906428068426934749976395159719041851601004594644514929018443854897965434842910522403951668901535287234051878565705895282632969066007392435886541091572042221490257155825818949374542127362127597616452274949429870866861129284506568715763359548813769689233646169148893586985050701847912828352560286095273888408316239932468063783680655738060799192599337744332766649003807084001637412558789496097068155895483796148903251538345342132802744662852130633410994125926532765409550721788934296756121637636561970021560219367501462581355586786953542237409672838128731123332198456938356967034800411897496944942621609948758583173698422273342084318128044255986257148565947727178292240671163159827642479962560106274249562534211751537296914484066011350532899244487714712156560312242767428004882877601009283127828508243770582244927804260874501125803746790406360360643790741440350619226750550865690634611160327053281994096843778933186345216863699815063315106565281893540101249055167573555767164107011752548182857866361972777913998346676254857960645416430356318998610909080920388513378109215918845098004049343755414632183298758502800887250414843121560335460743953087698654694446432206747408539901789589944532717687351214615209727645080687661773574302368499441021616019553880279258840332244376744669420798427500914769079086111767847190556247432143774865754403120783964341401251334707062841519697405735300818809585652558328270220242073045412819710689193907833197761471726557928511203897242294549291398638762971082764446161309922203817945940826358380226185146428499957628920788391318885946090315886951916379210513309221274798830071987335686410010168068304763701783876488557012814774206841973430429313314791094575199586453868282516267834880805421177850403081306377231796112361804110154689585330977706277265271648493095625723118731697965857229373044343813175427385556022039181079993655091667031551856362160236643057992432277918202635634923869591821412766794392212448699746480778682387542067115140016413095892524827136849562589886093645518469428246860705342086237458702888085959233564252045157330052521845577248143852308854192308215923352544172012622597195600397059364779160009767491703709306186296208024185863593221457215786144369768162120460309173601897949284542274885169276465156990680035562300375671174161998128974474160421762816194296630729413269173927669220894530540815202092853104673181698783115105398044664956092883041631851563553380796480162499033470763977540195964405064698475307637362879440077954823589773031944826154917167093130170943032962258344683974019517528195057718710817768063930053733187321307472434997401586046422775290119902300019815172608355222959373187229560718183266138453857960895050300948655585549637357145548283979298690253845162517857114903699204473641976913821090270789885579458081990029157681186714452280598031239927609128237485626260533289743614511212234616055500035881256341855440990709244934661475026846720955990935235030635522812567089763021937273083274328891969746718118773172070948432497296753975353951292674862060265251584440823093700504467063703819922096780286552863377175751204116405859377208661805073343787313838622264401759627998706345148105349423171196543229523820885696503863271659861907120255777981169374439831188227249959807353619200989750435241915572970729656742768896905887415227212298765186780757447967901564161683980785741076731135941731617631788014312398365875520215290446537072618970185172585915482092579522953160969443149469654768444123577606429353691558595593275395661890726008754413850380423934491653640738246152676767789302946529443658790376589928912936665098935201399317062856581983834171434292701645795441537727547285988987603690097666752700970731763110518476141393473307481069099206061636534213469148966720220927664951110583993441321872556859302192080577689924486880138530238517900448079975414531604888816793660820188244549961401518349554323488319728064021790058167739967202166061036626945815904077483799455637311263524906916280321778585798906955023577532719021526337647569312686813531965794580362067935968477178335098299554135558624428821254192983534417413785891504404303108089998484005173936689866455964377637979267538407741530634652811993820092002037739532066901658797324279472409362024738841611139292344274424050936202409783608789843639134142255110662446674538171353137487309361023270648612083319785180402344230344595931917048304666953087900733780813273420872498595225340148605489336022185416417663280683499943149934142401319954841653820304321179755146939109563760841352734465571830896603216357100916739967114966979755404640367810684872044187649398645640256160794816251735393859597423929117194230627517569404003571324343389691406443692754008743619760673669111994708163342944740685485221673777627919064013813887571113536368310751859001178308645438250504411054802766136056678574890212536176603330072878694837604629591394465368949471669058359476361966994285214568243356160702020904795001815799919583999185608970501158976987840127853284733416948057679831727161362031389388035534624797807620735421808688349757795026130292993618746176589000526049500865843534447172439326707925131390512841449412624247795170398310972302545000291397383633083788183252778735973610133753556188445677742296608235057074942239136300977145443405171349775301485874569607412294138906594000075224378819489834520813256380495389698239754979347612976458295449343679893849913885543555268238751174501857731620160730016842900260058528042023651198574865952756069048872163402859884259388597693169358995213324621591746272041121063609871649713918062711731979398393603844167242640153969861917273821417062922111010339046828463695931628984406033246828678550893477233052723772374560061890355666288067182042696223044971226554777879375810551518164331112532264506214287261206715733464678205228644027926674531296087363041889778422533454244652175847861297220998989868524114718423453725213508955322230448125638003900504583527295461433576463026153250065655666682713803038874556047455697687790137817643446618189938892133692661958080625878213894539489022604000141214038294162901789362298873910207810960137236185046086227220557322304786748006334113023793504376752068992371064901142165045145396971783026986089354545286619790168357829221888252045189251661182578642123992390058362198935327369431040055406213695239753407494623181403634948995749527391060369182673995095403607799680838200232564938641016461212738166583064929369218329950356684633844155324114929544310528683317250716007610737698417282527404809924399508996842011286010420218608915697771063160071335925399566146286427595202775385137704096049771087372776470706652878452581761002368424701953417623644165316310808918703006956534672761026130034871706971764991679755943830511106616763425489027298177384282527030073384250687422761371924564244125214168252205447916083203224197296076902162897244289703297628222459364852997295188911434109663655803699635617168965540866470447052943950376093071186800001790837914990273886899737905550764367941749000885643000097423496905105641852480856556329728229053666229109781806285186207653855139183602673680303862530434297059639277594032231025493585818074181368054196782870322234809230843596894393849977436512469376403300591561974046021945506606627304232489053391580460535301039472287538040841540433948868271381558191106958894673827485599263603523979821525870227906304067908928708438977112714080215798173909058735078843807301332348555590895951074105339275318818415028503537598409891451477812640259959089677965310976531968073836427323200544231450238280508524782558573928872771173536265214819002515571422409098334363021532009067476593935382979336681391849951866847322709996855994737007854191637983562985097071221589345609798483785103236637477165780616645799837767952247565301221076644024183904608224696864788252346003383914948161028662155188119351394425465995697210707367317956499582127936090547734819795777751003327229957657952295626005501027093233697997769588469125558355642207225600277136132260069103224004757803425161503960569349470777280390083000650516730324626324453607684816909610237150258089944731274817649525823855843726674386167833186972354499340474825679861889656566669025182471163673768538856343245832943589174046830142250669135520355490052946355542521090732492897049524793522172802008325732228618199786178952553733348478361990714794480959464341177748721178733891537109319121132321850964523328494130481403377357825651398515272004646725277639992013261503931463102570488029549558958741961396340225290888203537935560727331959150415873757270012654152742785162745723847566203011837542263672048188270795153836079534459786850523976562637488675767641736143347840151959181205742978968862012707567980063875561996327697549570793235276618166045076145988147836359983649629646640950455198239053162673834039858172013819745803238381705530014441615832634416913342658068241380778584931550151387943949243815017035624513792528079370378661430072290837186582790275818672791374227522848948757331085006935262122827982506808184586098788303196778389293816419039053799710736123502094107155484053269190202582242551570444194462472288810000638604500765056544485681783456843362182066328656858439602638043160881075150801901522367989782457960305079413891490187023482072299394452938808621644872763088649618502541963423692086343999956335682525095534051887277971718450004118288849335394161078823727422331498371311543751259395911441216340615287644886761741248796530154304751255932519372854310911989652593127717446277809706223113665716468146912137503431883691111780223241942881479578898306357888184314050845181987223580682769808522248880159171486738615028532184448687713885885755797892106136029051449031199964447641447075902909769475281754149230947451309796855107419273731927523118319619588602906580731139778702851651544296147542534932920579557861108123004572595880866579839955122910648268273597394139320100942906683437049001665922940137836103125478658234375781107514399894978944855371467877682703677184615023980125730598403953943365955013231278126327908072232905578316076106155370808261408778196545454999929168372720659268568602871528365260690531206199206061175733332801385190478868541710082391110668534440924119888296951985596114495681869414202031967083112708609289093379439150549758426462588058150649266735333428717965672960936004413689121565235615073442636578584548726880473594990783461591809748374122945750665826686024487209612120688401199796253686250881208316136542133603979302827213186896836577615047832148899658543785644118165624226196826184422484302339457503970717079774392942263106050492060768276333556402550140040055577862684208108872400819102125226149254848149359286477820859479907229467584541497303892095303565855380520657344278964298302497108760044599966689874301062011219848573715830188063326932634569543949813112720458519672871053605927895074491126314021023960422761652963204185865944087467077002512957107928349455507755462929878809892874569319859847742674675350122394055958758503524456948643621419867618609743315798929138378485177055038224681615511473448241922169634877287473917532170358182082975634163823504947640517807384425612326342244633391198031778681274365300007602008687313947533483480812452226512757272352318254031952024033517072640848125695069710467427248363215054234470161326570574558288159957539285658670763409138605752603797414629802699224747248510820580932218633047799443095006561029740161041224523582282840703088011762295102423668176438576755732882530275315760996944764901766136823172719942015758225111867517976559718691977399881967436787228290954670102450815646083834650799043572751339324800081647761643609865143743682005256238779402760878848802062987803378869485402269773311237574774047785401978746236394580017932392498391970685750505004345574718236162233190371628014469331647454111024414948428878825537359407618176854490857518030919337561393443663842905964681548517930826621508433935554423086024860031514257486893928155234452129105766763900719577647742033431960091207373398040792551029162287939079904062209306946501799280661382611391492074925071714136373906005875775017596098903256315563799886947236716700203559401375982408228591001920443955209425578577979675425844457130011241434991743830042764149965208436880307540580422483203074214060387432310782042457129546599734420516338075582327732055452520361966508902478812796180874478396147018812680411188611642189278523063411965299325901786063726827906251304812126373255454212115624001874378480786321196943917699182039382278681894596324638972524954407821410207896211039307758794518748460757112346579066971386963593910580691912951662183800088460481129614082602885439137782900663508355986567626752256098672514425099561056496610778367498448293765115885711498881586881267802537518795937181716023930037112849029633756753375276254946275568084227893943044373216638070592348929684545446687149795700997480262579089381088684705753254883376625293354926872079250842059849793412449190792210536427430051174635826496603400582223821202606282420677320028199313180359247062554556964842439441118850097449046417086594651272036028552799977728745463718134596649838970030446114528759816415342695581033750895114664175386317382667267724457555027464378058675056591500397276292860736531029960002254311374596693190709287155587116402459471336370377434653503129597886113142113814717692197984409849993784879724445459480919361199095789803082386126309143129056355058185178452576718111694827003350673623422063045377395442683675495909199408496947498609246432316481906992473430696356796138818230196869632560150304622734650540396372049052942935247867639464962666872582987901372004903537585139414280004520785093558559910718281253358214704292232446576063235554843151112866639187623867276710586264251300611639411304244655157051241509554942910187011028076215918455712291821780106601044571615202372355085272671185154501406202380257478701051170078603838349973165663697459033434074130304983615868869423639225864332546510166390394390481583651815320077751989160830714527891105624147314174027932101261211222725475597361859646673873941842919169443877374432934461123588006365807627986986663839767263897332184892746689954407931038008228910241833386382296189831559947483129655666194468652405218224753166628303911707323525081822370506600378388731280203001289758888402456181243113720937460557551085896267276833176548082112335691037218806577743496138423389863743293883327464646738278187876273905812352650425592784876149947549347152213952859335345706580539447408287502477162268608281903751849128217293624494436169232567135925504777438993940255945431330497546920018837797850228220240072261528994802547805533898028669639342313898781529546525189457553573088789012346885150582182144635095619746906436334643543590338261945178322604163920225609290061383517871508756857914539534783984489028500410842630567841119275158280933904689622539524829154035239041096992437200174274157840166396648195896977004468554113437392497503282692708145670883551600807657736651277971787313910393616730375352714716400275147754143825464784071967067189788547248017799541949056733218651007783619580526698548826406951554817728806794795056291442732453680524303363989538293604875736341904823114115042276034981106191605122312469708306902764565181880872762875480363127451701898932423397841291419879824036719021371818565432712525478349198228367972276306763401878166932224564439200013398322976596865993085961178433272874084632794038873329015279487455442719287769086844810435902387027755571851306238459828533150592955847801594273992583140243727741948702045338701438018637178273853588678954594644744936149888240417829426870938208207680946998358516415667555759931345283228177928482810699982379204686262242601194776715080802684486320154388651032550456923463326885710683997183815292067143262671711465005258820956691332246238628463436944831477440356822708375767818729552520714856710496904405629562264710028082487772388031009373274086073822260637484776137022516631205893817343629040904620611742629631594798657195266729136593757082676502769735403705762886020156905966904825526892041399221324729976881339922580147260173082102868056546959984003724215604351232508386794841925367273814539541401012784879533437287466870001375273099503375828464174345783482262433805783361411468496478184257520036219367876333936956712878975734282120146172501370550221005902301435157370606043809279233850409274290865702835505716598325039796957964245601327081643181644071774326572534228170155458210597682030354390322885516483919805853625022193240147748066410066831869292294940356895091097461905130743900382800641609373407665874398870344840689486971774586975821543280753855807995814892934448965367332964228333368311293138004503615001499543513289683574803123456530707588623410370755235031738182932661856964145127530879272055960458936159046930635435141986130377842313586874612212280506413827536121294455129713794114250855852112096712306070624024732395752486381215560378846796561127795798833006563130902576716027849859041270270460757184135019656138459503711172726502957131248741995853040782168477097302459333641632405088833865396100614820875784614114282971790939386725387552810406620857356696386321956197464410176394478357980350948702072091862562950785768781160401962851812110677500337203002764409469479165961260047592753979613921141619095033120078136710330542848130323551289819669407064163990607187082222199722403711067586046948502055842413120913373372498490302630579130848276210586040531043054525331041573605747157920585882575733356352271515319700157920603989668311739066801034645766008089381514790519017667441391056199708858316981631634039987245633812381221066630936626991249039315247978463316233373947419510758785851816113071653719820471591404013724602867499679999849558088000847529883975443288949358574044728687936305833624014939935261142164149910808548561407279567730048937318913273316112140424188709144566165855514893359407385308270173455560962177454918771032798462432347738476761824678324918361179346804673778621599730774216995830235746671998662298421833660738093079236714957727484651184592117282214360529021805652729828095431828152277468461291378162629412741758418817171307653501447773189534647418366722478683156397195494114001880848586064708449984573537780390280051380215947082574049065699762826006406525009418555214034671252889081529672317773079886121844490019044115277882821452329615495678055747358277830121740258988096516481208066772050334713501800556096207685873548551203262221146272733610027385986333642369399510904236653939118865202546573283761563170587908794845592661799521164601061689610515804140812794846802284561249270054294876527125792879083609478691478799638626465169332778902265013752144024643550270739439945806925275332121109114472401143878038854847768927547834134977475353909935917397161851670566633449109544867005868472339317986656445809716517733582812568765471332389801338781377111965166092370099333400525158074102425024787052318560655846442882495865426589225182524526332269358691964559347368545240516577973924881772814689096927362048960228389023793636497471924808149635097419675763000652871907039700283082919616015159738600973121562956658393020530558863207881750971134262904202462267204782480526597293629442997739144227529507198494370558114501920007994694535949000197062543721981787304810255948368642475864646487688372729192302139006758682733756565151677843124650381061930000976029535951325116776752337339537019003376871392679974051159762178712475015598861647406301246564991173854110810181710742059017308130307456763011099398706742082172641943143437499561325411793664190238598265809403019312306407507698406816454320363421786024830661855935790754423103147392565819339101032979773526022392796379421501439885456384816085121097443365110968708137503276182357764936245186783079221593143468656199304345551020569879073009134847640959827279982432940438958490576160787588650325519868006493698005908435845663546284280752414692113600770891133821077587526334468056193947929317550441498059974694697959830307920397133637653715878862983650780837424137787715310204678950631919295395594324028759644909182872376944445429019824196349325454555639804557422140518905920129024554627420432717670901049587408628399060102019507561853626457953911711708127700566778943425784182413747859765128895569309421614057899223895938277287641842287723444677177963531842987450481227172427966727045937638905495072405982445154044360826153341424227816675801336375690687614724228984158740732865145871555511478237781487777638576391610693298572021082559846721503369072168977826527637912617209499650613668906858615658124851456457497699430087691344240950594508679514750294403908371003781227465523424476284449424724437312169232652161634345382245116277777965318514829184540477603634929445988677711168714362905926426468154621331644076535427599851884928156889214213550014673771831937131012948995441581650475941164943227700863909556796273300535624871805483009340509003834559087469146908410358128032626303678177198219725828963564019550253264157517624138159965960849943770594961388425606334879966776170609006688153363196019557128164913305130657709110440767984347413988223058825684562934450689102612864407349813683112459242890814884385763476563103308260964847270651180344286022415976042358195139733750574942907983646009500368603392977308399570097331501875053567313744914329263486366317712181584613380398538264165601167104161844357757151678167558412377834987129150308125259137300132800689447559579697996767459195427687024972773161268684389942461849977170660220842115324330441967266604837540639055334093410217836051338648944758110150730556987744542189926819481001743733297923777268262911582194509313502711019788201204106838500894780080823636924720015872042833828029339812706868537971908821107052209942065057067861717596669333330328172784063856614774987478908222832506316679013982392999519896807769236436076157839645661001356333454385994425954570134989915896324991027689963522367142634973297934673217922000256709666290108369931661267767768265272735594762341586172065516368153710068598461743278571500958271213336930937152144739274529218591874548832895776921710885750714308630693405127109078055260327215361973394514800669722507030864575626682422098226363343615122579832416510717002030402668419924148527225476869519186202736742533416743487630258124743531673925638519551402458972259207722361959378774333695125303433284594822159302873798918451169474083610397280419765627386711801854820244881278595523097874527714425367483286011197977491649447005307988161763844176325864090300843765474454890659259555201105981272710976493789948077346905907792189763685384490682357301763168458517397407715778467708380328904349767127852211297687652836009716716094755390006667691126748905770908394047520028511957734599546744006622629450568793006668154879478656598959282043381215127886426103699683602146315881712384990406062912553393370816546359392258142562803202397590634541785294297029745657131818026930720200829198974839274815419028436732092075363836469845493332381976259338367447085141695160382393739289632807940232751091314544045746061013259532149148940756129546468603224454245841378092887547807071937007014035132580128473601021548035014648547946421662806210843766961200396110618748978062767754084461751403741559059481920734783167194275584016197443552491728273208908247203493467752776167265413241547717235698818090884124105117544902829488297702552024260885951047968759925157898657253457702774610004685621255351974041110681745081536183434017877176788699742713068882748250317850494169142126528188236449502623597063897316916293854594877389678943866025936633887180719359009626076293781948797361019585381540871484239904483956189633908419779848037706948966652820655794958274355537402887976209243385747737831151653900142673649147270002841695579174733555558064486664527553025215697608478124237188735913258569342303035248806508104105212824949302059351263599768897248241794260852993700632488107745278022940616322910689124372012077538799391567665917297894488025310925910784184706244954913011133860654269834795933245402692179235063165923426780380524835350044746572477793372260648445188895788390990856274329464513951703433195251683584467829691637419373331157816563840364312291290159241546186428207778248336150035677454239834319217299155421538952773785901212478658316110736492326809195036536440570148030981743918248698687530744853427515870429619472047136147897038265774662615201069993800986988296098257415358912085458629421301125654534738143958374777463860681827838399573365279390643546166965645962296188794382855515340189878216258992710104443931705831639032029975866946011578421037821168290193487495320638921180752631790024470092443627300318949962773168548909195168220107276463800777455891891248009120886839039568388509854869819680095583843127369763294418398069592248407666533856688223555356256951064209887252154459632156011168782846014428076556828229918502562288927589340372140186197091299895077842762882275053436595882219209922431057691022274291200259689723174612662275371683257693794468408330233069571510967184344441118690103503369027876656870155453451200181402911753807886351823726422624655470135641618749190185967055170639352529148891958233470879302862553092502506455032275617121494465775961568018707575196451559158056139129981002949354407355852940152203457374555330343180874602896364484158798682655446207104553346517230486447579209608255988818956597289267226027328834926277360865624431221957069144062610972956423876296582926892649494015076978160793155835666544390016196403205658986417460353649375899156772297390744830241343114675596031844449774104440887903495004991184269615226337528418174949033838464657224122899191676966470230803972108334732850850351851334467084940695218736228973980913312563247862396261314607528174476722686387877450446640584158949966712591551276048306059130086760569436840273620031491870900966138217634157632671563039439944987506076627958030380015343506667831810500593991016941486017982774883183425033498749212402674474565201888864259041589136488696937699703713419976933896806390750947051874160043574814014800881953295170446399033702146829895738187729930855687564004389092357818517133013188331410126419162671867158754447704801451141751368481072226003582352446884352877398518516340636788681758671266615659650578921417654307520546115323031887499319390896351071844350642905882363741983491837417400233988124435214055492074297239045702545138392275816047831536921155933690608371865233210873848192671319064029355337922136808963462509982324284552736434395168925945358909927679274976632297290027633984151995663744627934664669806185103782795084441987889651008576052023721299035570358993390152195569918715173671995003041411773649388696688709791072645725770418679104245404184779769061977831711446118570219013750129338970660474997487347700037186890952970328729503860680006815345875505862406336237664972675352008541792633574616665452889323134658532124614101130904136427804039231719235699282817182758583495399237989932619214568226763652169038304251183801791253790696497739574532910923306107747111992209272551598404823475036480732244567017823428831076683307590298199268686288727193531968065349139109373160421572465898539048468815399247639350053573224636353285038114396764816492247271787753449914724958323071651428406653585192726069791058984690133462143706546449543765351262885433947649125288639913999253301957538562502031606728317026456522446301571488977919465079655502749495056679940801444445047713316204185133614725420233064825424382722179794905285331005227209486009563054655326677416661206934637704033472289106270934860682353051204859103654482467118366992795848501309266693650655035032187082961734487829292270764108208949998609485327016305405544314001490188653113353797861648505855412819059971640543593784504101906170582803012103893227481635082898434625599760259474339211927436466311511370419670664885612423048494848317548713534598279197399416882295154271370601016187994086369798961794935551190092331122302683754369918784340869917270850286410634963305001470143500583852808338454856055513754156478184553754445340376918277168497245933353292162615419326121406290913102417357020789242171722672378669053796006935805235822129210711205859310775944392115570499510995617787493270026491427352561967809071248457206003363330331613843738667164278473101710926561947223749418489559987869019366030965773310738531969390217804643759429926879228764298531655915731223561874111970096848636645376573241059605792921948608991000560545225048455310490203508666185193865081905810393168564549339274992329127173527561610185982299964712037708731643677506682127957845953787344831762411959022470051224663749093270547680255334313409659828358008069518707131095830572636266396360450978243512667838472140930319734431670996571342149685382177125660191399736623266593336106388369254686583966448136159695533400155136604687464895921426708942563630983254449305171056478969917859356246807701019903668135126663404915600491917124749622268845293816673449835673861532526962337296593650520919167006180302489883788483677329203926767440738856566487811842584963804137718534375560316318472614913253047079301149318270844213276064816062913322564626307906460808006181561382829442193893667973716281869606783640271538371065075764203257255802698926400222533198843606925038573566971388855753120386478083759585786875130851598693349223700215875007668511902856262507927915935283728685948597913122646596137421022518348487963481264775854146290013801502618651105849544037698155655157776984154349696275843357858436497137180927917645342601806343837379625547947998167809426069111650792313540122549899775826240362646091917150253682989311770619211209768324363262721654178664258127699630181683736338023668997091090676280414723056389826333015375780176011916759644064572462397436874253425678504756171743049379374816100984189989181854382369324165166478900365005473723837231579239165458370007069004680967009083893194310095201994841027473115099228055937995319075117203961302448410424582471337332594596602424395928658191684297325598399890367733736561190018430885653741499157209355670805198439113952309291199955148453943561806439100231389153320522482999484578687411356260575524421450679837891581676794242172412492800072688313297942911117235135274974058586920450981975031257579166890556271685614619767247316530968148046226634566380612853737373822448872634397684831814104635557961934417360506321674268166534900522772354474061445091886295837177198086837667778334491808406522226939512814476536804474958022240269403285719947344546674821467979048371695189956919467038512409625985464966275480221339119562819671489444263333132055820602712719179352779320770094046227852387414599714365725330637008876057067720060474784846551806435516792191085184471674396169277598348625074669540515718226484207472353355073466354268625743311795523360331162550610228334405561726405099965569188652775265517978653862835870953798176324606128618279787757565719940649871613614267027178925215140106230682472506219858478461907020143694606910485809742734151235376603897726319116089174754236769702301968977477932547208881141834483250057373249308648793266318861770455657245802055530457970287457510793408948231299248954481225233721732230242903803585062622017830899052368823066475092154084897117906357006322628032962133782565592879147015145996770356145265631036778124074130937106547865151210296418621427485490300648766525329605947775869352898340359246028522737597364572900015697956161911546973614095369149732514346027225419003617587031809565066003785021070328241614844328127854354889064828237433063345898458949301493705032553048587662739539421256990776133253125898733365596145707220197317812087968924235343384175027757378266352918650540404949553607897524685609929263485771578746508467323590753701185777591025323686235269609480807335145845919071741953179506506930081837854784064753055527277113313857175047791240489250932037259863982590281185883600387916693480834082349602601608844909835431582592555221919199838526882785248981396244880698180236171693090003478986124925622125604718023418484032749373282658446546112798285634481810532734206359443100593902578395483103526843322442537332377850371107397780810643472353950325024741417650072867680206077001014911337355258976230836144239860594340821099963223745395882052139520815017964316696460971425767781156807054205895112443430260031121617368759891697948606248236488441322360855850233425316129249089614215218574963104929635108935581548465366085901239212978957751685243579462136931021557186942962609085404511998587234501180185245235404204615227815951953389445720528026465753483164569974138131814240092187052812782280090309269587474576152069458986237189164672162588224209818645557103309215223193688987202571928685960571299483125944152735884498192166324829544882967880165094036153787771791335907779364805614894057200821509665526418813030969034261742957783730054417164240667830816875675971107941526643981973788961838031825732188303609668622316487134060932736872957013132876952987239097050202006323958787164554664238386212251781631908042234083002314047562155755161045890767259394183279299617850965456129517355294811699184864967295311737427632489437953095528212768424000212792745579252783087646693796548156022852714580566798706976399354214825679370966656249802606430634180223331933317364992216699083407296156599375212492045550136775977379093980070926833260622721490821282297001422145826149418384455669615825556223433398185263251595855368620720519257017914590389014141519736917352522750606041535784580147298335569142082699689943592150205390350206655371215138848534774038461500832187341704909637373906669003537765412154161529688272442061767676479468637129249465059541197549464472005707134756471179233294053082846794165339664701721737652211562542295638431744059721666397603728622891401405814551063451476269940844694960439169884095165770725649495549128039023304387490056787437993160431345225413682128442940302218172133115233341456662962605245069297253618906773127912873970546345319740324752022107991811982630247213553748847446110007553683602751496586647304818888161807054572247895392880897815427749542459494807615160305143935914107161229997732844002131974682650621056910325859566205544912938142610226624389561433130894442438818638743377801954024468155418846959681836251699170504049640986287444238103434819045502313284089209308166502486695080203255556804606429089801817955591130748855987138755962207407549000165776403432795510080333816173190135887415698249707265081604666353412830879977003822960273921975535085214686288505954010481671422818955778066433313084785143231167690672082623720952351747875676348769603075196664832969263203071417634947936497231841726413235459750080840067412348532433088509632149872970961234500378214874699363282989936806453337549075026909229145193999844011535127222537340210072788765984752412868765928274322230633072920399505713979864247826169962669598569581579855696182682301622387991910630349482032479791893009121186314960768382472994444906480730067994794602487301627969679066507992066099493550873696616595748641426255471649091522763996394979417993056956435206174898374572755762813307348451176511989513385405536927904064742066199906997827901744322274235080864609763044277465328747856889798916999554780150400142334579526270794180499226553563371874912588630270630596896668327268393673231813627872727306815625882043670686744332305870708119913816829471898902630156215479981559635531542554640160923150500996740221593979365369913081013129897650022246620456750427946919559673136238145916616393505703214035568190027690548659179380287417642106150102508649181933626590693800331256393290318475637221761527837079723341403698100199697954281646048967039679344882808488264630000807170073781985088177940834961209339436460038375042952535372673094428337237849048395813739149403051729329431584112458640693762678965540484907381172243583792953344761197735640744633470820742003662315413306325110122937712192164149414299497489807890241368288976772781482272114012946658781463658790308675351914004828643388051130178415015559450951293951649744582790113473560418993335583688038712225177799211098944530288040368266460109243786284720693780441301982476803464871822866543032762465309792206630596901211971565606240393780134808208398358986063977286356959159784547658169228853103940287969298451072727098073308551115271252499808426129053124142187422252540261094206275262454541014584553013498166407669145272913042192604039316658331958572647909978553984863575611718977285234531862898184898773791233358300567637710351930770428277438312097940015645152354088605968647687717069506336424885843570218232474581755155703639123000922264354574313828508051984429033734355928991654663920805745270711086816302848028386434969259718285906206762547651341168312972036513738675817408315642689815739406457419364441169235293339792202487610308086143846761659232176073984066946251392363669118848634679318486157814444193656128718004776032472334636101359975488778983521378858052872502064883194676015378020682887889410630732502332796625208547573017578810495408450069809089771182188185190403395652731916525663278928473590310934646058030236173998446765173479898165595177862015988231369904836818860943578106925048257547670774264696625503245555381139889228801350406783075933611243036780060545389703102874121869905354836477138974437921013560104818802366202677555447851670255190707907124589762727286690020400835445338851846281946952000698490969250566184097190593658561399564916717525918008392450722783778409689517226635846775262977923689226191583441043170410395867487722574966964240636303114711705527181563252244778127888736536302303643395686525212963474465575125712509197323143423628407786493854618035838187426711249472712397383497770185679569460721377287110482433529790218155714237487044143309582365393365195882499746449444001570683722922462499100737921002914428878661471175141966027720724025367429314972794065743783375584807440868500480749094068406848159285800799403163305270900373874431858253121332063873555805975348780945514068938440347205136315261029000224087878586253110888829521942122813244880012704985519028642347756421465791829400620823249300085580285540197913429043960235285601926838156420167888033234018090610371530100457575414712192483987869538257879953823544823415600038159805415923897676418201230381619620289896259583941379928536184375687070264613971950652741482751666019810307846786445850727306690467749464320527808319097653107237507461989626282898236696319923333060683005116881762830704195712692268080010914957274955114790485598691999056576257543697262792589169110751543576569861348356568591484135254604985588285597641998447538527528018187204838764761927787079813855628023456327258086321249755356038034736284466679088428287597974683789859880709101343957388873239484115816164499202421485288549046670941896163987604551868439810744185533538729687413134750172439501525239928831346100395099713429712163385091636824037849365119938928820628434442101569510735756812202313315484584135023612042778521352231323011751731459786260990226180282054941458295819135758058418713022349387345604627568611566583275563754617816888663544837617867865657192322771022972882031301805075105055218270331790466126074542750019410637640555439897460639040928448854486349952353713339392910754049554358688618824405740273686080116875579149013304267217375899385199379807096699777333985603319551599184766175279105297562836650804830660226235652063401493298508502376226792898190916247023544896611178538285740718165572229580357141789655298246191410237359281593553413950443772255282913955416184610130416816882195509230887909760087242592404747494935472022926686296515711013658198093652242389604144521471810576300457887549856721548129579512653400431557471152392103159206268905295232312743042214852937301379858187721686217607667382262972069927414925171552574833749530059267354642877922026330668997397112054834579435489501525103467290574903858249543079877808944434526651528084987192833102131447790300054755457719341699290788644927399035402452122468576854562677859291324157714773206002404116256715405094331048690970699327418554128717398660496024468383599124245988556678642913046042359472526282180424330067250946724076224674227127784633592916027538321004926107093392515297789787153999014093947165423293016157461401615748421818257155713688399429975903749923998138438586902094736787750736391198223922521669432979474242589021078026619644290071906064671164803287332305652115156527026130490683625338033999768814753047134872820030979358206057213562817002668989086275934435286683712454720874034970284253765802453771620306324239467561559437326070493168652495123910787577831257574869996629249750475062155780633345338480190067223641709658415062596713009475484792933051081943340221786067165550276770423604450708281896921915864106564669708967249015053982284936647016353466605935067340347675545329662819604661916773730311247610299055125529516590134152358581861464102229458434735470059568273018403657528610611877675857249345907628063085476832057402407109544643563050215210577719918520302729712855041382504991679902922184547384472653694865800789789827585327000094961851470020733925333857901397992218858359844324948535464005748096484591210180659743055590554087193091762448407322198593123532748058046738718952504950504718961106887490739537327063494983077812467807079976527340542011729093753077489133859524702324908906652515719024326011773057068908677629765534359214777304783416844809327587094605002455151844142772071438712218326010066933154886005402308569934563732530095245196506427015082630045229146805143962385134358888783135675148100222797004788222670621228706731860981124592373544673649679227100797831489572116052533091940915728434119089541839060945360848116644487069794089398456177064490793844050721667702713874723276790521149896957560148603379798156287493336695259248811732437049950411000553027726832346913069652074955008975173418051150647559129283450660617462860053007835338708510011270642827375627508774343304887982148244372740931770615578680892408793959013837142065072642275030849444692412997685050495896344647565062576954070305414634474327262872063183266068838428822729849090881917782121173537499015962503834343685555663544382193173762689265286176285521874101296837141244520834319804712032700291061901215202139701239503179728568921963003785033240325292896537352370736074521869257012547459542936068751870299225326894457034855124436574953912833717100173096935084725169826564578004650784525095092525699045472646412907446354779106338613390717459671740340538265868193624317831648522117863940508059008880398935153554279665512244263422909700857116083324426139426773421983259958744009418490294167401390336201324099189176209701901489642925107070822849129476448986048105037888753592754652853061328842140827579532470449527011831803000877613163465386340696879292207417773093222326347909050142112958004209502074404287977063880963974820890355090410464604305606786564651174383727803240566878453540973075943054980291899127337797842196258676536255381434531069184738929838752682877806972869688870483481434848625604508170710336151494344763282343535992003565348453521789921725284174964189830494906542237476183186971474962711729140385919336960380125821464399419949869524461783350072578012099536402231383357393615536196818793707097415025744716886493372840463848563890417616218917380654400638140675556757804935728732593573692897516554178840892479514782733668661024108083165704010367045361531367651657178828306899873926156111838826047359308340226572249839107567288532425476675715550606625278626677312860623343300936653208393693444834537535773442043971525144795903772005236641544895539529748173336912737651970276302891723053770147120514885378898264902517332064080016976166945715734240577408504188330550257915620063181590490408253836582802322596916424211539041575571223142288578862760308999463589091344706018360867412180851405670229355628738613856683012159648520675283937520103242264775013088351902022515175685468951463330582696809293887852069750971759426367971688677849822197501080768791300612124417371202315710552650663471970083835208577179180036367616413161709555164544946904866289182841325305581783647181630769514825251489973359783091140063371588338020898337185063558333133047409060127683022744532300373584974739183541217081964046800063556524371454584631518586233689790059763579219329459597388351915042088889032787351991531205776990093495601147081638653548301709760763336582620342050068190665194790523978809282862515373891849687185533892738651708063356636951656692161141361905050786436594077523875662580503583071131784380243308720734983524580443739994966426571228529987360683313308078708542250832345156939814703266763370960149099704624243760538711271328836078319435531793219999725309783468409270556210146531822785459020549769459344117905156411028728975925491172905573618643369554117131443110335389616886987176367298065199177649138690139940429684253527287311900208419324608516759805196642966010854657299221428193424063316330944154602772790370753886959053337560798433128638382838589028818682502909991021976445747346609105980462303175424122653614702424758323069105342634005143635707028301845920452947722628852133580579740077837137445077994685170297200422613337483370362773361217957742173871156368369622687682529874668864513205260024633696261613118176872364557816956578521185160495575548388392073484708893348287314955224481227512994673201109060518830283893360356481983540010872640527544277280319492998659141995025973196305286828755875649418076735717267942974753742092736092463219385039049599849204698360263186419264835294895159177246157726728072602204342533696533766018326213731210303845967725380975651998317761315048334990776018305330535291488864799424051781802998929627948813109091085924346004412319856245227665063760896760459525538271776276310951853110356914352280517751398868980833084117410742732111455839970805312072688995533403243902532214644494975613901754924383607065257423783796253638079628530336561594516716585555515192987827853892049236727439770626118554532356804409052036925102727413056082853410207497253829798990514479613934548782576395202868427966789695199961207581358756328168231873856870559930649722517168002372790709111686779297111656502054259709503344303439142313668966692807033456777182170440377990921250589692436884898358352435971809558274221581106517996826869576843587909201032727837649697943760507026024315611492200658708275601715283032807490703461754463997451729795757811846856917378449776837233098303571329687914565536517676124218784451083341910784317612227395321288998996244751686225941104071621859343007756372391710399730020571008825452400577113707463325107258453949336825567781545928341399348149388531322347384742045973323711981165159403432392082118717393120397077712570256761631483570562186365822250943619025700575239364256222371707968024542815664406905759879389418513249189725985707301263260428478591062107290191791863340843591299040990649383142743491251127539316576363356092794784426103386834572430218379121790208765184983166006203893263441074055674443653261160784374218032203487206695367086403820713293475114349817874851303787008125988162499538187653742337957000533000624348570572597502799885546708727411842374565546469543404715144307866520715379680119482124112891569084480656445116502749979863179156856508692280767717421837527987655635440370412242083998140575181723137013739968012051811142215917035467770386426320963135684303602860018890074048091381080962845011397202037902534638964958361390479497293651428833871830491828179385896766373812422427743723821982640674045145990851904338824516729694564998653344111919643185624218390972927671464324384984921703142496089916731545579459500911060598856846762177926991421463578749743336597975510205497958492491267206374479035862095676987905788666202930771001194639842980425221939261700620275959357646065251208407916665088655937567530278856768219801829131740699490202355302748759382608021015178277814773507297339259093091286191316346458344572781506346651838893725021359126176458117065358282318505464631671567684708900629237993626229606384135998954455093227389542472736287810253427672762652589282389609850644165510733367807802183895784299595908569443740213423132019934519161035814283437384166500014939294024895526945368361135757120415644951898048236902690394041760342408473580358985421678784633145426071914459337512296275179844230899511435616803248914295763350663547871474917818254833066375353390288592687407426876061453232991866789968217031541850889721995804988311950193335698180390245022981989698013973936245784221461529541409261927069403228003948654643433017207145016072516137391054325480074665446030351604232817806275013860898433988558174078303999871781954531553024520971664232134522326618043343631819728340387329751310955082701916014360387807552836646076870857326734315838639313121928700897808405016020363018800049340709024745291797272109917844112473364646460307846884613572903218650240470274805227386692765848780490316000037252676456616392528291553578517187163750480016188954817139210496122690903922646857413800439911038864998194420977029242406519437736332214879897550733592809170927299837381170279549554550193879971415873174581606115147817209843842187688221186832538273043614543903800705870547563972026003602556893543865144198008580139963917203053692067434275153966180205164308734996752592616340078295837594242974516018576008778541890597160359149983453231294490894945715975078770826487552044731437027426730198035206201234222294864508202384336076711027749356448735398369878841896393101916189247119224415496336409347663781158624717595288019960110944766880422655246732677847346554042209670222594243118559832608379787772609525429563127096794593551096014796945536066668286968444026897471206397998909731729680203404556058121269215159010842179661617390395515634432707090997931174987138055831092577273405694781165427418208170552172919751129502597044217562112724498075954026998080276535390072234794565988811496915811922389201741083081402779493974995573153971087061963499365277209323311066490187167403116308730842544150750053590656379699615037800806072101599812664644530118865596082684546801671901147118974444702338549410015085125084883030141203320756716512775323985732930819733566134741273252920770454703779070688874400357452076446631078273391324926136642743542975689767465214313587385826962559016510271240227352801851073972377861337091126002100359824057420582629154927958403577852968058232403384472566611207714822856602014883876818396068827992243071078391675936665334872835342787327561374564251828493917461964023046429280353244429383478209033722545285808059732113747976362483101708172797417658610769329657155287476618912489823598189976018937393690276438931144724348336265282875509825537458510562105125098225755897560045737664217486843117912306287667041488177786417474974620492700509832587971610329262247472667958773235337724967923301625344304605015609053805622529779016377536629819585762113685179542083301355968721667778754604942816584498462346251299246327477911757466115361825355911726209413811638892409986294820560124316291059060869328084925945915394888186117794711204619643256519223742486097090228598842114853069569116433928570448563142611745009308084718001109409268231326585425237269434135777524734004752862678575547574136573795974256289588016925354958939902951349895411187925015000405658949269558780475002042821417511797349615016111629791173520177792657078138221826811785852540287361321750777750948957619777088083122265390557916934162667209137740063081198811187336376119561975184598202174321705238692657270142345771745682864916433562908133901870054646490301555335395022675549293454491575622889706047519928889826256365305278676114829500568500963961526153300868231549866783038930797560364716489070895038657938525688797443070315171673670817435161122623759077281048839650880009551192485114685778818894866623641896870028968097229064657156104094815065326006677247188511762541802898789790083118090600139241657980243354338475837774525444821610450774659494773984810256585370735666120716808550817451972962161685972974785633053867481978575735999875071548502294171149658983641409851180599899101136094871069136096334679612262986615477006008908790649844769353311762272047308579199501687948940788185905080787095869221284727888617605544398327847560245398088010864895334288366374257256532953229712747802146544407143273947484637647504857842409296461425498237677247566135759933807925595835710751739080176682390492074101135229542688427956288369484067450432050330171025427307262885669067978076153651389409631842400549584304123252331809152448387929476245902762531343919994474756197104270664370938163104120216635689305910432322143169099634478679731591397586289536948334629162988888931023303959478206707760839227984323661383128783946897933176596518708503102153164942291903675405996679060702923461824217549863458094291492377203406475731890665753251750484553802187860862699407052548365153113683538099795255603427634837526450369274574083940847956544275556323691467803094855366600058329329099786618228962268348410152694633728925671727925862177779658330976202591483289554233523184406326120964791815197972167871707005480505060969433475824312094172235099123156108581583787703731436010085880119268970794043972864890677369747116915376823545522668707835967332620678682484131243042381661093420374391650168338872273921619892435753303827129558954973545797438372135224991608425220018597297345934067816579998373411687320501081569578316000857913403938418573002155374417983645522847377093119983898344872626720869021541321896485262669649411543997961989657212535246517266128190112753334239370626785719461924023607214457649895854732753070415493031416764150639933352597431417486923346265999658196117430114030147009172244026156322496680023797311454059593534849575652547982634140758811490808357783490782194956585666214702925847344611006768950173359355427724510311979154189878865232849933797115803871342398120274331806190726033356063975541425509297862249121054501655739499663290495222569536076786341829715088209805085960970525019352847821945306719111526501255224552888293136100270598828312259622342183835030580160231373585028965180223937755067376951762764273221863088303523731892019394494897297273623076437602996617948962275382687065460566200068516321874216658196172037409799259474952337698387959089380277570144803818708326121299479925436924515070912045366494235821670348699721908600104305139357033264512655053761795021680824651465301115007028725710178296585992012741886609539132079346868969142903438370692392023612749810006040853159732148358096380863803772097725264487243485803759976318468854898657072368636049663119085623707327560962465799402761506740147252040350683971094842695966420864429435610422388462283087578185214231134220321157200537023226943369098895888675171765616337186553371613237400116722374228569441397841090740377993164755690103412656274965002434331306243380985965281690392066813487182722358828762331862409105699989476664585719339972919899875281943042932884133032073307415638328093299926727262694694795157059813329701037798755406374990161176413566670511472086930661064667792591630051632356813018922530858933271520247248197900651645566675023886571544601682194461486688226471173289800809326273486605850152424956960518926092900864700689418477994236183497814487209345027599281587548903885769698637817629583892568391315412739347889870861325945858991096737555785256322230881772497760283165444000296421781829814510885283326726793403116642798441263836884190743055426194166577276857034904750044855435252902494456940538929443273933760441162393527158182417474977907972031243919041693910257063928950588435952553199183078669271129628987191147588400213508302849705957797997736622614670053303747474781376095376786928238676601230621050917744333201531569199775267720487189647087654701570237994026524596654081289227301730751525530914393338043521093756771157264971148435922501767663923199216028077506570292804850525497073048318053050182934894601450117426473543352166173726625184309676272789970091806266770105640067541407660103587980168184465005832421967447171929243134917164373671366516216422430370003756933354394101290271373603862705164556257457362214979212553831099951508342371293239216653062146726940264162100266234833957390267002980488918516004915487414384419104665717844413618924468164842338945797342427787350735022599578264413085401588455068318124211288781248808234571120544158186352870231684512172811436775994432311895867261805025434605181409684463714151102530557798815548401247551376712601095336671868280644086785030921181872589055269608768480835053869366611274316620826094199128670275028855830433541737089667287802106215425858915329419387999045676609296740116373821255044056888354103686544923002692986274286855038469619567017688732833159347330423157961540851828233323325641029452801094657464652097924161381948785030777164497705161913666959853773694364273049269776027843777490845216892429879549924686455209528197761819281954953098139711161228204810504925928449558906168749248963518443593776929057684356284347531163584407873224320100853343245204753767930760067620434321307119589532137210696988716310764447026575473879847630803875433385146514301034424668566777719196931705063097005150032495997913557241121758634764549440050197758122569414432415065137852623470859567794551496722491377336246309873698482170641223168022007771581430820372315525782079536655858018448441206797005062832819334589784150898679060883196793917423893915409966249895299982899184386458770756449014472040579837322383883923798325799902178353093004352199400844520242089390804838626424118143282650722829150561527472384396544129311967417034531463634697033863200837640800934445506482780658088437511421034228500885372591700730410531233613721831230549315230386732117882730414855183967263351226614203342733257476004421597515422283520115430582083299953805781063153306080164825251264987979990939011781546333547160996699679104388097561586248881570339766903291513099566030466562118403560691396856004693312548876415916206136880219198920119705585808204778478959832045979725005645586763426499846224766975202524922307481937595279302561537046048358884247124975283970694470429198910715067196790449818894273621519917777821652125118158037418140769074294807193102828029758182822663228874548074629319798475320964870838353865203291902620682174815452186005718347107824350115415271295456413040210726602184584350160330848777322015788072367972628719825224294605184602522079478848114216056011396693924731632879752497751818796109399026558234645866150966002089738636616040609222620086298281150753516500306963532018086549899285877802960618348026701026222244617899420242667311006371692383642182632914709746637703172309858864097072249868236107383766398133592650614104242296032505830269608809682085173189201596667358887791615736601633277377484461311053987978411983774416933076155579787086780385752819188161066239531485382630621623642930139588397861179748921479636752668703814626185019075507612340659247058669198730676581863922609586517623570493152358094112111089419953865599820861895685052775365934386767487274763317836800573042088816152805507960774064398255450275211667132735817166217565957382472174490423022463350291089033736181860891011541705410755276341100969000675399556404434559594102863608684253340388218982583844603700003151454686167612686503338241308813102749011091632769682348196324047034411321269134158946522041101714929546420734042800314114585273463821695393005487241562331534043018599363847196795258536010190102848786054545019413953695880885185567656018354798697654625266550384203500585322473434173422595450937781229832357962404070862553221266229590929860350480697359192139136921960367378091299595078945144308750441305810745425586840740694306057250856160491807489056529055514216825272890138235500676860470492941785789786730961747058257876317289735198554049653452494440271989324368593199005303788840425032692984950192722713098003370825024862097645358733740451333599332184729297127334951255633146365594348607475045214586976944528655368164200899256423396709746288811219442262437430430640192208948293830057927831636905607073375381738319161514610821778321687739587023578398674349802124627087423308242640398089637050781390024697746057550925416782357495130191524062197489264905272287275995028026907551874228290221787062020254795773771867007469224859483193587484375750849775957622338622293465604203639596946978611283504539798909461478687194799665098429138489343020957544908925265873861806277943140776543340727683741540125154555608338816662583090098225269979540861949985664536140343956708907564932478282020428946563826533358621524679194910726763012469902977143839192994564421987722825488245090904616973810289528300484852941914693899626496302051384509985206134248384271598747594179700645639091203560390397183369483602537390414536889925195142971255114734446077918807014178086237226945876331024854208295727432003329722046722554227007049005681041243411819973889098804665667247559804662696805186778458478344369332386127604613332280035571324998750578954526570463748095094390088201646198005123199267944823598356529489443945888438010337800032382539934466751863874582835361068409858270335901911121190200270866398642498840855729500348866802055099791800739321391251853672723164929710938627627611286696961588651316160317796337201930547732973764433484291848548874202679578046630599253258112357505841952110001219575792196998516920201990574250304674073505221469149812126940120498635790029795085453237964419113400120325597403376996220304485173627779138750340317646591513877802812143487991159499892276528487000766679308814952727215461641170753543814620730033714304167994183836258880646152902296441508934738701655555046417674790892765142070012863019885081630285942480234095916389911010534882919580643803651048530733073739515914257631068322676824437135943918465339811746333633624275475570122982669184213955363211820812288988368110940345200944894460062722193573990515992887224288794862729172313876550494222640301473816554745409763459646675343567207185983415834817748716787240580115194214013026907419425046907155935113422588926487247767275273426026548639108601339743523620798135623212421396274508705134093038696052829223271203546389366864454128453219853982808355948442667152508659506106235871869708073190984702378220496066437760792877348857940048383775359112194987057986428035674337191989993224187376684008742087723312922789942690749672893849987181821581585533114281200060225699641278268809152460681866662484529451175735502169075555461739751005455240853955734367634798930004745804671071004763161044674237166244540045453288784534552173733263939017858266271525751035000756874891088682876280353948714227743872173431151002093153029534256902836830423841563707881837242274019555325485773408956248355718195619750677865954047966801304362411863374003895758153274098202029630496261568774516908799980342076177037725799165793493134787799194709565915531286283113755277348389135104650335299263137451618993840779635434067317613837741512359212316040503533486672960795613848987835420599624749688686738490061002674616957878847546588961573447359918879333074511471408522419154666407153276578573382091498814454515680311184613381060956377196378849953366860659909259104689636181732324092464439319281748657605287106459143024570074952322028363699528957566754581863473413694998977994149307740197809632989136594941313405988238617975660597844580161714955997312086655287699202776716361410856402426465514312088673461950365479754554619270902103884841895688126207773429769302364347086090419146340960888820897613176835339143653839176135946141304159627599933792822887964712769290825353487105826756017971626703210034056416612959238873785712900295488708250330008708459241715728816456110781593050953906738989272453274738085558495807656216634288248354004831778524752353970268475960389443517070448013211860704345991230723684665351306506860116520046564948496762684758772847746724541887560721472015644273964483539827833521303126343949226151278716436703200477648977958082313285560358880143930052180860978441714918344099238912340415048282525707888465181486478033003666625023441351075951827233500983995912500944749840430183085651954309893149244896248029206938560385798482260793362490700478557891974187152507049866097424956352226210640781621858712520583034988785345870202420118646217392079961433258526888991110096578598481951993733470639963548558554589984634618867118753491199398465736617939102063985736085229470625292911997529498093417908610576578079863739547972143688884387088598681023988439452863823475327231159121288224710550482589626482921521600916086873932168698982730638876209325081198561780455314943857448158038320826033433457371928109159004694420468783937592269745569597730687584338768567895382055855520275297993684234527021603188881440883634075049472947972807939118757343650136699882974093865645033327802387222949278208669722224015368800003323068029279250555385348022913231031958006824282410764105400054564247543538850378525524451870776788028772588433721828317584371590611528903625050610637039239817488741781275286892286364361570967348099266978400509863066532405868794429095055494836667795738849402668021246775322610247817539986209327351077440567623005736612439603365742020833590079086112229582127480459911021257229767576823933313350827527072081911948937236724255645227288121448199039359618938864445625088806365908896691252861500073867840258963234771922791451735610974728779770710593893301597689520001069740584198871928125521386834058807336283598680638945008693011561556361018738354786602841372290541572675730442584328431504814927503236962517001612403490890064889830280698180152390746331716020897225793582074776691716688202946988286470571002705138381845462660687848187686121582310747363964852440505268282586366441519250157920909405783433992299391177455559593096977525082978187473124116394884111977821999355196235743588021366273278174934217718985287348308610216642136571962715093669175103267785923093351318285496993469642692577680576505340088612222549177275225285937862372498398433623386319315332889910095436341292062587570269919390486320452820228617159489569485077384247779984781175176699799172635798028161135478823864708310363961547489489848522312404772071738645198355095300324946095701509096813138980053799287284606051713648537215137140875933597083210258444360661060518388707226055151354278959885889734572183399055188665128191277344050831969646773189939292279917736841918911458254238206779555292438592232800877752306540175734400696947772554713567943870813703068361496609685638476125439946340030437102363650377179542494081638413091265500942381346361887723395075980800626585952891205064602432506942461188123709447527734334854127969525518324563525493281582786576779949014309335680954906844151783485823852106559162303232326776573154525648014882242553366421611491659250739695883250453750612140570903363518294364344896029789272947925089366355641738446263545511956398595847050590277200439813422467948546059840007752184230754442877079363760329403829426194728677387037315071079378185129690055349416799938941955070973075373796844144125673517003003727578357537547616433386590389799785441286941270730610835755279266196849182807236637981268346387146711581868624984586874201505114051703345803119501013418127823431090823517221868035318200609624513854118520141275765606129146816945018203542437169812639745433254293876472718508036062477443286066851524963217557196923630065305440414604239575950399756629304003618386774114693358213966962240339730126775958943189598187239265382816148774661644268845395648555002709423570844747947141687773896890379994812817431377270633363511665925170400610046339366675503054654741209818074595464488021039642072520367767469547118936169186661906160868100245342194729954435608101118154370744818795067003336369010696433085677773147990497819754867283727543009191199180699220530018953492743126171469880455192695452823335864441169040756898576353981953742232966596823589597175103533435080666568615120416429318641706955601574141677827584467833878909310523390056484307165951888088357878815708788985588345708235604853520202843472312127370030591361385679387651026940357557375406786873954631530352153815620419629942495839111360095282981762451311794355690065307446720433614238279909215473416399839151860360181731993988986241785189892249467847310561089661322297908629175768714996775095122362881160863358104823269411994641074211361765196067318742974741159556749548056065197166110582933055606107005881509831447246826450366193215180532894229472301307759438696035576112242120082964698480758195062102536936313255730144404158882493556788032607456835713663185744621703864563882982772113987078219103836692588434983345569818083311966577087429292550245523453224443107955794920976882462409314640633301953628079240450774788813259215897120489537959321542728236545597302465116477129734792985624471313682536018118691345818538570180816827475772392016157821741042237302721642395020233948231666770363126015768765473371668654992644327199355116191940280974495817908692210940376673819845840342096171919687393513150217182263172782219140073954880376381490204116787447966306355194301080702379137540445571407435085042782871617935206976740204038282462780527739054689768431926634337709889458755208953620217466036519349707764863544745901394183966104202781299100577999952585658698633938966333843208321493019832703138058191788664255495845584995413367477832927878251455474937436335268676028518434808968230075176122643584007723176669413544850344317220955956480680104478465202690540249839914750120133368599948496970978118633054776078053117426336861000329728365259544623900880904409345773301421391339838061187747086234201173503186171510577957413331480876599174801154340835763296164598532788970515104421245594785346457161568448442066960244131173692743678600392803446877491890674073020784450599419655913991963057007984628147311299961590034067018112758592905662311308813550851787449427068898404298821510931321838194133320037670351917784916160554036109133682002672789929334687113014806189453447611469736760035504780729948311425595571137633606946907360082748170139746893107144402713515437538412926536187782044153140374114903562773799530581926475496129252382050394335089593479490625586350880154288702765226624601633935695427578572853802523075637632803378610830235164217634501915418844153157158853821230748071299510746481858954632976580995295820195267467357704139170354828310878780012740594356215953378961188947649206317379120484325660811564703893301579542283368967051176108928903839334484514839693729036549605623064829525618399681156164551158531239802119145645362325873173575328215092773467838623637899440850244388309185430358834631980401800131457341601765685056663529939202510677635835581856136426366453913191768026635243043709311418071248219881149722745657034444533521770124041522276072902093896961512306369675216584227702218925138831613558058299097493262332394577700925930484189041875777523830737988446003660446302815142661657743685121803043060819841438056687987765722859345113163498034309855466176052222841703811048032620798000431811490775250014731565768267844953467079538638703446891779515592892402394163449633102664235800116122735468416076966415801094187347798922059088964793381414764282218576911693225935609636932435800953515519736576183902255225577549795920732669434075471102181419309858503912153572535885037484051902727377342433208176865987059151272429696321672843260650813512930105905659323539514965784615058189360016966377248196596338410783252165496952447064772471189342110475787514375126939518619694448593096779364229370752327194821879841130354579106628357560510155985000559599358737758545793868353471682857726648465718059514664708431484014513519168474543439374780275155777982682107099234250363590069763195527493697018337083108967831651383458122287542603551345778491856704916247285095428335841271340206237601267903652895515325564363540362219252435828595684541446369545265971639179392455144953198955467896954576679389200267878649953767552259494555750348870488656231805235095411968973534751548933954533834796080985464594183322981388248672381936591553579277861902122967134980182959437457946007707191289752635408730790180372942167124011685070936083879968193087715849511481024727238558577760523106867391771083433968501003876075739220905908782469690991047666302801687911540852534279018097579893173888273699792775974023513032483111456976305923082185607809722442990640868696009414306625884215233444024737113629849874107126927926275641800855598203800535044721119500043995658969302584158675265679652558025812357962105675281033094728789062710248443233904919094853317673526225572589217891054420040749644592951092997302297929047279798755007295324999002607924415818741286953489950526687337735197906721004853473687616257154444613011468080596544649812214611011341672303026535088574913262806111051133512508756813094960872212335445690040082582928623986637341008322252501023423138803037112129722841266407677678329443989799580201780568887355459780672133760139808782045895921949371406594708691582614005651401248127737114602159640785256446428662505577391615639960540111447136513614110662746278949186944164785130034473539217015917054042812315611719634995759046760680507432622302078114123240150895832573079118658824680730876811795699289840180848032678618945165435008388786236207433254665094712172668867815474640509456816354670818096761188760470113404758352741953951422586473428507947180557839488226239399235897483671982800584338123459663441043000188964324529087143744557624130584590545954392900382596586140094757542635996748092072150959832406111572720239315664926237668793174093686748847481736008632447424925258642322329855581532191959125031555454497030567031078812437494531864545266671037421916340609995017174939269845121958606984085492134287061385765439998684004028391201787449959839412278225650403713097007297574297284443792512525798685546740447498641392044210317317489478960817309698568122403412486662686242483546733460166989271755111457416635854006226617085832771200085153341773012840938675288289021499194464314765698814679360070357759401516558999430142904121145799060755915599305228195452259563138688353579574151850582399859141057598887908718494323586004912506137216416210434926976767494472045267179570832886969682396206663809959412813223726326838737159958367158000175239983803095448484387152035182191718858156397798561016182086637289186889707495994392672280205103953047438161576309314596901261705953549043212383810036637050753234881381181550773256142640035478053653451641483236658153337873719909539546179010755404178049577738203189192473096640194455002015436267142114498279344227428882151651949193321570635185089148205749592805465152025625804076838126719447525884223422274348630398497117630492941823788083669194401901357909260777713352452329357640992278144242019887397938120645961127247818782150940450473837157427144826189590732721861331835410146101743246404022604236925280935926767877184826517201333428153195925728552914266511133035468573550338275298055804381333837443436945238127585042712585749132283131872244015058523469688402989342044541014567189274328282026606841285715139379709235188902967855944302914699474299900879952691913757284063120995860020267744662453850784231148658666519712933585220317071031517147582277848000863242955012279665546990463240100419245171585214965265120202347195978566148608473507647575225542577967948030944230746044588393333007262726938844009721163533046725293502390464874189624073618400627563993015793195385283349360233421619750906878177515480205055712766689067506227705837245638799157859878271552514847591543232533152051726999148713003805453887093777693686371982923607227999755859832732005994531856672236519068443983865631182491844347128038175352981223581403373808784836772177927336256692143403748933921821595779581666265364408476905583078859695807447827141638973410998684152068845546326462744149159276134536195343949624560893816282081566723347915216018669696115500722418795289605771006529104201555198628966482236600159614154263295383102648143917810497704528021259223179776204941938497297475943397881738976630112086619930122709786457266860734091542975209356983724049886260231531796876018907221026280388244856676092529734178646127187982511505411970988569903304424377873912898523620710385537494749262474006786625027474462721158566464613815850296298652585944330066074560842043782106847978665762467122545276071365816370227947849239088657764573753351351821128023846877629645457142684656447024524479045288111302566378219100020494839867442505114093815448809743299130538395083838219270676319130413036048323004329176728229010931989397038225103962578194053162815689229148445967669541905290270049945837056040692399235789739945916239088280762155861866555891594786731084021086202658102777749120048993664377576558310087160184954596420910616805582725533472836158798854894745073186120493772934745277694347307333488659612113455434859422303298297034285469647825759659127708033588364858243471922471184131937828740734555746411926073172626418912278013078258678406246469679375945301721393754809325086333874717744117102797178073758803915957098862219333221225376720987292993284424004557433188235033197186933963365992432775332492670299433533289738654402273227919703767308972241103283620324598805346753892088306390950254644499380094700730346957559168849059662969937237357431337073622198332023019237980550668508963023823651886588837775690175687039367740201806248386180855084656024797436276342163180496812814786849182853743184016254419094176806542449329265174183940150984822049111109455107266636732967798580945345060007282630783360343112220826005143437654548345698209587988922926828355548143910404123262599291026250974514432437950310861968306549182074122438188161019713296912105828529792718680839886193816947842879205642981991288079249316407703779262991041939326909805820823736498006639868922305476526248030763524298264652504512154441996973504779525473122903701638408166886454639414417221866707139315153440760609318648957740732507685100220156345352499980601095255162037346287585402033607434650403562026881038177963695026728862651559333039409822540913355621850731033567440572492387376234211897610598262587689282032487124619044699394899327967585626284631668237915240884142661992293578686721132865412701104228687185655202539963192588533535120843192795640386866273724218235407979977446083745398936553310318094789385846139934177635744967160357147663579739462082972589080327397878021941036994011949825448605483971444332784536491051681902593903153336006328333701179784688189943205184710156601213148084895826537311654196176260697586613312378619230919738790249189213801759920444142381942205960859849686871532181740973219082129201925925427059268272674781733552806580516745918304701033925448751820918126742485046220526045655134077684475697387524601463247186782090516214574097943409554647653792279401347092919665952163538164334677102353928108835300729162658082901473866017599545312395183636403272782824189047467467973957705990437276082887105943889492495357197890923035942085757184343527691286468075244873604269568008475647171429757896000865758102252578945556280807997630431662511405385959213972874836047023770031545349610621963845196104085113790580376519007518321598460327757011670059609503011301016047983959913703346407501572427637591503610564385846405423285768727618422420897820648586284664474644321965545785036514088943669446323801900929246688838460237299613265691414466243530221767079699807568550618164397858065595329902683448555362717214132804889402073300418960567268525720399711172462559377140825277485116720946963340480084923971130060981847642306245643682450928395305114169904536415936777996511956807397522322426391222235402352907525361797443564479095497401070349270988543883065296607356832680897898447514754745211378490188450635944716391125807317980797179427120339411377079677965760783664069704819231530901896332293963556285941083247616668899476629658673337360547834737436202933872107151657539238155370480033828866654224682062466983834689566335272022164694555209392374062861202176578622770068603269097642100573171328321662438927915936966040245308881879738414441846852189286417932912690418447512553605326859995442378367669111177898471999739595582828843544987539157380190479570966422010526601071760020368941746730781464059972838421044696511143340701508884531527421077646468400277873281221166708101177241213540169070723723225358123145414055430381481794945753715275831985399298261455381527583665965507467699838957064451435850819412458911919315528110790215390298461556079941799895193296186366841063266657868206220577649064399962519638810547002101882064573091181559046002197499157171347049408362297271100147885874693467815519591935606148517714620694214400518806726378623174564392699401331486852116299223206066324706863061664824382381630157840985800976898493178426502471101260388695905775140017076667883880339715904124926412073789254674375323315668735878577759815966137916174323494389467874317603727992988466184639838468710780903455695848957507446763686968333412478958677185220252118135250922862119143810763756886949849522152663435155887687210631599745676270880479431954414176185896778769355359408019279231176323908049632296226101422985794395983808999221856432139978788364796154849380075736595254403090906934900810695400298418447608552509130750997655391441315568872915659256862818769898467009733531226962107008758704438459437065760946702931116346530245533600593235591440590956153529265025959864290357710753412131487420575758371012488878606257340483047927235009339212735942945064819175793877956135585836007772136562688789095424057108149357121089670969583081990336584445688624182851707342487521452144359347165495640320503132467562986043388942793563670535797006699138310271655875588152488941360652221308471217375357120452518024887124291963960358335856674815399307901992067958932424419294832504649137304104834493451561792944787511002679504821698230721550548545181475341003336691339893915526352008239117938262951361505803787207960364339798325064282698145987249535207352826293355524355692976547335315603880424208932416884606268863934608714817618697563021544689944538777360407797534349353128599928849557182957805756004613417017373959318898640692566897815452522596273273715441860294545287938604316101047429336859912224567504219625131706819276040229429479831908348598114589638434433043570438354664784047923027667087478191190535921481704642820427603076280508716378576664735995152055029277080827108810343807815598864390408180713564887669652477615752595097213067285655615624135275694672954448056798296435875553044158375190344755829872654969617656909475589973529743885970749433984965249724312310007010236262000382927097714433422170694604571348833130314276143632884327439937343549937395236273937239455028773435461275010213520262329668706686301086834773821890258493651216982414965196439885534494435074156365340957695619437917980047806514375434075453139330436743620066985807263620970982175249046028517268476507823494206428510315747733091118551470956519671028775595658992237596388154912374407514021991578819490614166970011737280284412617496841154351140139936813817320459622602770881098724122458471276346235802629387600893040722387239559219950163285777136134955035633147960919876791426167828890141893786089628034954530463329688352861055043442821700372478416988544481342342491505443843548190271344071542516413103841184349639850046493033929763759056973149946138420902374897924569532752293848476048418258631921545010161160216318369965440439031120482544820388137604173368051901537109509688153639384294892265829996785893747385063373630815185432042539251152214776936268516317748582786903170343548683906624537686434181640028979354067402356117003957665164631284734896166811337975804313099325343775802723281363662964281097283047595503123244756152140835930965169537343323617103603843368576669637042158297076725291371029262783277987250384084904800492803421495179975411968041980285228268467759504888853520025601328513754703529166810216014121255470259910438459082613141214499037512745720320708246460760911794540173169375779982222931809720958961486440443101250111114372339689183865548249091656213354927068612189566172667588444446474926185277739991034287942363320199026270543362590087370881548839071979617230045550496081883952028470806966941249370371107574565842696280451002112869929320634286299987151575461859627559256141594784407404957651543954763971063832463613937739616310664531175691724001756953155955630659403961546240625683599420382412944231871018818920925790704790001665816973409595824117578229035849380814071324936138472506772061650356806503121819135097722656698355262368562392631811211154427500385060238194575519739766692735603196908328853996984949900200935352000999320485645818212473320398548010310955054311444756459925178780182214974044528345588643525538252741813417743284457398249390582672462819404560632320875695960554650526433154009538836882531054327829336221514210467975496578576032615037350387780639225348427808082485372319482084459606907148612199801538806562453333579389897205664694384761375659235944133517259607819514745038402915361390011831072776964665140877947238493897990129420832502413237528753523607163350931696008482392877395653831257409974666106507875641025180743843634563150935481110427502649324615047606946129672639117386719681615385020400704516206689399385352831226163095247605461016838617287133487922951944920584248883956620480587508171530026752407631314259634301929067114253787092878335375277527462575680896493660352304853249268372961671138867619867064789828457572898986049632564436818689616868779154613908557000938557395685363706886200399082918761678526816791049061056275737581714941306466168843513797407484298702613737526659182197148109186772440647328692140293362026359235471729232565327277068054715541293236260997871036410902049785150130336935641410769549806285427534622549679366895515473528650531466220024716406322304698921484028842804555614076964918214369222761027131049118156009875632427781917571358265741500779678942400748615888586979706908433229787390769033414962494330235729335947726818335480152052487806493121155457252660030929401899152528395342015136365476297380122268346734363438914093727426075648965603748095505905320151360454156618244131182181062865285221662111782350389486800002942023010562695730823278434380127942929533478020266294075115619099761005336267952909804806012984481650662155544703369677336123223522085563578951482159252203634157927332690517127163930062159705841607461201249086745769644692220512057437379161491664948755818747900189683080135396850804827332071327045976932312139551639568675875291547964695538972504531823277235232422347888077244860563460801426739147717300657180823204103950606615465928576513703628539037644469548858137184832593226071686056397349501165624375708564788775204898011023426251515749386322440471877187511732275759030044515001404264739159023552606232018110797107770544517576076934745825549973428540356145083154125696906544448148566563931878592097071542062137971482079368284948640325803209344649457958595916390292018579966630346111518483409980195013077372384650845580602363659049124996739984095957471042340323885553165592660985315517042495777610568394388218451894734709154598136146659430290365571124582566186814398504363554879514097839294825585706885528223609384931734194463642702192640479213244595905618678212944662467720615303115508860561344250507861544616908477507439903142186113717118854874266050463215935810477062171046177434205989556590703895687145687416194254776534929318682274896897707514869926820653556842229919598763288798007152705121173834803918148042744414089496973250176629605346664238249542211092485666395032681900005730289401420243717243821905793288110179739160524526705419202201448750146791664647685020605437932282503522455368325218571802665452232121490799287939261569623304885571506324275544361205837479293105197923178524940603707845974479130248312202591100571286163529025631020461800020945669249491279902170318669629177091638202504374194130026109027487505817827588836647208732942454103434173395516982802685994799106526218581513690187777465387662263228008272049687100604820136734377088160313176970602612894313141931824483870359305295212852422871056890138012664412185042799176543859909070752814628664887277809092587015867626169022527092952513237152457752946764538405802664914258374819876348661385975591947081224009115027220558187739754578012092577507182951202393514062302684856055510326441486321071504533105414266762218904606291608989568827836676617231350891673894041010190748157542157073448736896222116996096171579003818389383092467034137141187843305307560316364280820618005909392251176939110862729990445336571566210853314651817080221812381151373119252005481192580814299204189132027220591815904424585812094456642796858910094747733533023478190453716319275024800403729241029196392466482803650501875369374936682538587122816362770087609192102388911604827029742752416503525568885522754073942088533784181290817568912079342955294085334699255399739569582404216000961076767732694399917883453530043983857392657669126797837402475939118387794590309679746434416452044175440291919933522690711959307782820150464060431928579390118384495550330666613857510792269962945940733763028653970742424111509796205912248161662089478190931173080577799144102671837504548552433313481883255944216440988182008925854095256595787211760293350572418122099284557829309262842891965067037664242347223234667269576924420343476994511910870498042321751617481473350287495391742371756310790033997857800166204481570724441737670283562285659052147005707929261088813688751906264241552520263246718363743047867569205846471024608201208322517725442331240607431681889332355049523393773793299400677068587255039110695603480546022633047764528266542436404446351531952029013140650986856655484459934603025025939194291679961791636180958626635920989979397532131898581238448585496386393456684139577035518795382657999943751559770414019826936745674872227053798530824951508859096888137146067454228872367109255325962214835630282518254328064836638884014575591265156547748914121716710225939340568986901449782560908996076355102325744050091338407564387498416370106022979587390123836119891150192108394403734180692101135123120763476556621230353081263197942894014480921130784498533829351280393654751341035339649617393861838037365768552344211864303124256672016901497405983500840115035720863498390014902888744076872740025511456180625391827496143755882528164300267860257301384128603954032478696535171029053929120699615450714684391809021955892438618551240140749941382031872942535569844724670980817846169767690655005759135477028188359501179369953253680937710421182988111002317860477251598782303603952798069539923619607835035073242036203541361629510388449312963739791454746128000650110600419669814977487814639296527233741596282526927689912800753467996274459214090740338773907746162792568836185726152824123224156089678222588325797275760283929251298191196138221476937595361834419160496587286426624685077623700823902094282795847427661843740799412996002631132730842908145889514994217135301001823349193015640952121432744231434500205015591142722076820446607385109171001466970861630667365650578545504943096694723800741293147863873990322176883242406463061359611935913471346794024965364547095642829473857200847145995350039572935066625186848057886068913804748465914581325222399149706249128945102801849051812023174423491072521334803405184208961182506635605385799827262251524653139432788919969076165186874147885845728543830636734902289609822417474368827745421613095273209036859906687537960869107250181369179539318632113116985885712898326444749328963883284147079222698821609652829930904878252273814495220705068576624151363333041278588205034769750558158198976855206364631611507948418635771027677185661000028942438226754450716394927861040412164046658068650238832661768235265655790766660575966265209910480784300143529434369151279294154038139516250008052120895573818841961903376166866912259252059336442623295978872739816909668405957905258831020528500913458171981651776132565475841911650694175018068510792173444383188185413360759720705734864219057243905544509926841952628974558793463729726682846511907602219975105766817676243958848262512184908603148562461329451964843956745256854172810455501271644210860013153091686451455322766931534521493545106804396761970065053380324308977550883877803691530331725591264574126803867327539150792677757721027324523528169348782703653109772460488559364048829740702561252789363647328551219755524150389450970985770586202140810264316520975199884934442258886260148011453613095131296319758676928062072897800527737982336607545043779387060910513424178511499924142761915125541737327550243588338139096462750885447719187151755173863936847066858707709788641729825498347319319232563502075414864076900054592191757793834084215848959124234070713718128852066216317901990948197892673787813547221769132858096604994254423822481666939691014178391563505340901174025150661685532201472263447169558398857676895515655610986562615471698112959179313411557157380186267966234276828654658031700053511069819440844362390906800245353861296827262783972376177804341954005108227350365020351380803083992384219355522647251235122430479820501593243791610639655157920509501601926127132642847004086029594747391952651391478058185305805013353366681843565560022207875869683271821013191173414986716334319267399756053778544025181301240277576579060088603268954593596890630355305986556116680530302099426736938500757759239988193239888861589036767031942025975760570666889960754253884172450310327848100191283772257598027505826550635626327065550274916161249777570144248085755192502271583978283833378884209419570547637021920504003614518609162896484669501572838922557063897917787645645675883342738366269788147772499470717683640382521439209364256669755358761271521891420553978679478757868273497950474160696790484915472737065068340285262679719022989717481290423881124608855097231704658914176044440348050623766776470554760766361756972211241210955042835670285415861713746287999095216075320949287188373692100083567197369994571133331161629472498411107710014619064082689643429474287960108365914673679321891470957468891603531271950417400894387766366973053574452966853831118178466495171835301051472672528520984605736015094921109161671766466934270158038141725018712454086787103329613434447311971213394945260627052998914898291166898792783827579996797311321704677512709573679539306021131888695623376623368829534567782433228925598955871116160154729893286138421982364826897233919880537866217730137797386958273379853108781625512747482201122459587810700839860636231660489189902768735937303528736430834803541067197026068119929449389047736326067882971205300917537639949715587874619362646066663504066753498135372598678282271911902029262011541760071558534867023861731112196333161929439074212209232431288300057324800850669829646071135992046504001217353756214951959028402243391673402352006801740132067240655139653879254108494817809388664385264182624396878783494907278386518361991871044491248672943723313062682598671175725832966665584560695157206966671841203785969040860758345601559692109179948710623808416821169957996511351824260172523568552293175059294355836694842408808973529006736487411936446366691591020921154844872389452039841796682507224584605819920891090795959294981036777082755230451270765326416266613662420388177538322839629539186920192065138892047698948498815473427739918865086754405654729416189506910410043817395026729771722010122799705137021508673023401937571989291089676005599417898532993289133814877755723302428609863493079969515352497177936307656774988589427138756232571063103585270679069982339119707849509813028358080393290149914223412037511480131337087343860693820769097401463358795010181629665313524937807316015128005275981904746894449436963121260459191200162718776166832326429537199032936958613402859121044376104378401577738933069759595038571250480247303470283070358331458519801154987625712454517268856016782029446105462325979021221202355565184182736232339226108874610685274077848532985751567605005145878939992459079926040623151156030606064926548556279611593831052141932596615711660534871349074918366973759268083889752402622944520436973904519991266684495020346831967117756293011715232285905398326410844207959133090957620343270659518264524086529542912649296770072529113392346319523110446319418249764654623610010333940612102869378676990399474596917939291579671039172511054746126430226469102104751126381089248553886600158727836768628295052904878386079961884927996032470514224347813832084806942837349743963578804366859835044772914671471609955486812680145469024081552652683150045848766895155304279118414206256640515875491376569507476150838854162407194605147258628539483849174144887948037903252861947969341935734177335234199465852648874775562639948276687629948294403492809331140077387013584344221982486772360733841218638568921037311171632044715662920431512222812991427946540933735463917477680633645715144107695783831847421063305807456483170320126833764550389077305355908490694610386995684389564379326236353811038954732844852610040707693101671855894267671835333465269729518117922643519123317645426521267831412958816891949426914901091379428846764238724449574731657319618249679895063286873837552176802877560333297344718149929643692850598703459020522200303559682897133934417674479734743405221817471304583452091500660206506131933316717212869225705152163922326303959188540203708624381711844358361912442978013105316006204654872148323110324014240920178466002332088317220243073586402178757900471800221215978959170307797150419571760685517934619710656073628706609920550073244859570017820886697957036955899864085856394128725868461708294505072057495988972900121177384966755602809186820127393330342505048621370991665044809333582958364142899864519310301429219025060087059956786684609043439019454666625776497278012568113724750660648565679147096630058533268516976138986166751000067359133595312177380469703775949882915369870973407802533542304621464053318820585229966064338050518219755896683105536347224137589833360805958320622519267529780572814302823193260398061364370115853129113200712608972248712000624722023632861698007275622431036916053962637071778631726512700048859708824625461742823905422914986667016088648480251864425022495276215973973185351989322681778908489569272982329668724688816298142739334854118294730330123004607258919669527154115099209110132952073211097218530891156613977431050029489009730848838202707921226458855405174507801246981134002048380860552894900476456500217099977678410750611238691226907737862454204691587824056072456520881870471566452186970162133136610386969795711181179490862929362166420416405431329383619242647818462012915403678622400600026369302170247009711390043223472630884413573044257452433266538116786853637643486326497170346618436141263903427753482829861731131252457210979794283595916711001409883978712271691315272612253361637384720953625524779509714158015261275427421216330251741011295249092665453209902502888602621099046978816797892676484977393979454426316484893985131426193245372357482737765892066727914944269009660026322395356934814623827063882631981252601425892549274667629690508899849723181346248800360317445510330801057089603403879590066431281881819704996786228480983981855310744259159861082747975280694345176789014111925671792689128982973853280565467323724036266727289924406462988901312155886418067023817444991830494211946770660108741125281556558514092658977015138672383753453120616500175787714074623555122868041168752898529927013276427938340005275590562263649734651346000582587206522505724233645254928863241998862892382229491648931335059695956362888475836308897328329952171419960014954498339408561260990116924955354415705075185204126721683777413013639004567015367993604972953701605560083564102385268985550432689500419175340986064261987802869666547875799963901107682117803370361537141169706782307640901420333265270061890368188338916539728686252530570544065821018759285704311139506744229150984418676498518963696726899672877088733126066493525728432298755222398918811659791651227525494754682042932922343158080502491381162444119330026809967530646277729818036722305072586961222056766221315803332444934399526753742765874503794894662848354226161075454136118003359342078090899467650601644924784101038738963480650785621794316021642812292743047211999466289104226791065819770876073934915522403866070782809780389526251546136612956303241591593019283344085910508408750416483336143209230472201199650359121383983210477269775204412595478548424645794268579879478220734829458793361752649047632699455693161984297976247568394413483443415000822363798344569375537701026168219787043678872019227470420130600634787220145150773900049712147350657898975767127841262168891974716186549103767888368378894999697491070111751509695555684069505178668575978259416484657974232480595173192262702939187528833147583262972682267866149377355931399854877976526848191076653668512289295855189904334039702043097701540675192738005503333149598423355024261289417453987233954483583092400141663610356578850644016438535465353240632381037559306650012381357961520677739585144905861340371627415249230017783487538753005242692411517736347591401995320509291223982884640358573411337899518132330207159971670185580559552033509095338631163962636798940903942413540918038039644978099220535979406656157409942352926393969162860799910780440968616399103087852666816451433575123283002332891825138761382021201389762014937263795820970402211929869528958739714811396243823855772607504204865180023798406306064409488562669831946075984837229735905731497189880271877872586758600052114158657241017304890572689504551716890959949849654914470008196018756544731107139603981190000987825750440000164174922106951798534416622397578735983925823582283296094519290303635814364490484468391598331957813937645044707981339626109318675050633252308439576618666793142100749318209128561726353450414839008578007603052895326453605573494134271275074104135097555824480639625246903612347277947113063280898839891236309630819788085857655363756319300251061847999364033984076639620214361237176266179975910280863601437959454766093828111401393663833362080588830819695144957036636818229114234049000543060987063057466301839981964252316330457433807414060136581251799606327425849411162794950519431902942083680736039331988242859924051653936155228804389861331519390935800978696089192008273768454252067717578854211832142129779354264991295690652628027044541763312417296497270364313750910966823503568729805226162011676748956678380638791774172971499072594978674377258906703855044674584062000346674462302461188778380229490510293022585506435621460626785638252375881283247637009004143239984566406342898373962464391135484222303373819765222111666864731573568715788706052139356415603540036562205877454437708344307652153488231310134384584198045907459036314004384573137216643947234737071477327056049998961958164244183377815713963809458141810221648681012467645531950706693659808910397658336854030000341297120145491529792932017823877687250821725616130380999239251546394562237105314881739409663385697012765214310895875289692491269444145479992118495536134209360992849737324748309127424059472493602566044020280879792084839049286443071796409851827899578198515165647828044335961878191785046303105051794832426531942639698866459340831093342192281243070050839235892786147523646276743982669697984217873027674135370591436811386888962927836034758777760599896655443232389078248004481412198449789918672327867520682892835058161332836884985425369167653556059313776935987995186847063020998628612708765809184897733664085278076177431762515090526914564785383974266192118143731896295854788843071148136971860826112140447757885851668061044373681023032760345610895115980502285052096397663980041519306884429863409558376371343676206236616055151989294561986687926803855526000439510572477078944733525793404520615777108448220234360627513668331261011712041782362916060490789995429341322037646296621824378575506597373172653259171488656159383572075407739920245770061062215166035962230330119973626169780107759111782834967703168230528292786023650653150021770719083066830481476269706336667307422902491864752032107616286326420901319121251295899091559239337335626275980036381377159351287584783329649467244776404261968870181429013508260750058633362710191433269219781461503623096302496950959209256658761606078606880730884504875889832169033946411658418481587514708925785325545407094781136211022523635317062677672687071846891457639022688678396613116452218211017796025280168942856455844680247262018374371922774480074723926002373069908163964118443191741109840251577921698626373388017406311210411792657701103732353208028216110985721538012817763191607596096079928557073048274578735434261258958889841245092165927066808917986718270057368602354705624252578511769356127764883710122026916654635481409276807848531003046826431468757694638039091204144997286899697819855052955214408158166724358826721834256223741927212494124026070052815400730411285246509960615294931234924874627274460753913344951246412269844575572945135656176143799047773624288246003031619007918694733330435802849675010190829390587050521911879240392101568680877236300483380217690289379770613641876317329904877489466248635120513625213346773363411312299436514519896688008783227360615586542510861859882960989959921351844437445935078619437490321453653975770984865757564873081708237791582607527422486562780127893860832935866271058801914750082346929227373102482885788494747238979545311244919165597170145815515623319099970053054753931664036762459322454663657913211295750990713290532228039788458024983200042885101191243536588791204353700213758509518130488518465329520537597343473157800727891996416382975527981239201087273164154145106714592563196951256733067899378567447189366159813102336652931214718711251451187292595907411751061440054002340874764528211108034755817607004924278064810542062537356408156799730158696920570265029959142044614320021350574037008378135617959185754979291035869438224560975690798021053046812880949871311468850330093162281308266091286633972811012673423188310407103292395967041535892951550600359180265862194495672325058211182144241516959262309860384010406216085154737945853964146379135934004522913624465922624814488511046312582551876751180439365767932061024317589539533535198483456421377110223619425622378861379991928417886655175638371639051162390786952329111258733511519790224748570430664423731964803036989862142353601905835436370657760048510307745416400531903941487609052355422910398293625896604959065501595600433078682125928830905677984464678035421174515649368336893290797193687676828618817448252203720035644256937887511724239215881394752923254518696126750710447779711687462488825962646120621842497128498746550567866126059144532448065711868171185997767701126705630288486103773471687441940253819236586370590798713989446283187968374479912775086073764301981080337351597559234295399623031221643834140161554382960714781938310847332550859191968558829970860425366383774816972691913114218671726157191334117807508683722520121455308031861016343355837616393367094320005464591382779927670594842156827991028658175878746830994309977583173237782060472517898201691370778381312754412617285301832247832187491679546436895442917745068847855587543141069353085813871124690789179617199660621051039072965538218408897200182114366095764098090772089495830840297875477992165153013082305843008981892654191282159047807461232829996174560919904155289871685637329499954253083731847798683958943691375812364474239093739201707177344013459224049852533151134936253791220685439086125797226011736015039334889565977226983849192014920079380428375901651548457591013962581983446924815393936317874873517211815182496588890309757106484196941665008474039603368659123468028744774109317916690712354125427011508223369221508469315583620432519897128361570714080938948567716800853044594206037869501219004496012609054632045852817125922642926153876979153154003069523599903538206149377961262367472185604120910825638739888634139331864587360198086912180200544574538336477510787684046679301107774820842436264882746506168688412265364925739942422730778949865110775950958309483655510333831736369884842049087127102029164905031036602223103161790285930685283090475985800798657001272403426683978630885907120243895771306947460587605803388272557070606684674595259895801109128545831755399393039818982007930689737307529071027522384100908928111141428337830145275528587001652095455146513367316534962345915118119139511258689928327956451001659571945529645761357540449885651529231346112809057270561616164305231435692360520823814484007822290813036732621827433800837058190119097904085702034537508416383431024883340758087417083698572544455776600346500500632755043892431762020705750474597437936289366395081697005666811556826404693373702561614507918031688122862307762403095857801056504993967928040791706197976125611702866506232815168916524376709744321519019293975798169698843323234477433671881753760863082497521148605554475749882866531112784744972749293626232655429251861762437948022070629361651801361432993176416207791128553721119646047823997902192949359933941573465207017748465256358262260824214848868652864464506331149195641185874865070858012876341666077635617607625126418377075156309260670679249865109755365212648574975855172402874625987352671333039990173453342483030818076420053083450350981515131271859615186508726940785261150365562535889650237390214055980970102416888766433789272452663458233601724705211890160752285905794274789256478073061378423179370594851354027303178128120943854769416974853891238295132024761915094933149543618153827438783070203133109310267303894436706514413326476828904574825948972717392331644126274464629706667059090379090629193787551034906399827329746353454172748981743209861384520560490145207282872121464491502383678858074925118302047746471730530387188969771069522100496251963731284539527413690257817471198995691562807449149168709232965265061662594705500193512814657770306524200474475614341825245274261307079479511549624816693198216137469194484728465962681351035934838334996037441014363219178649699326591089122136987020713729492561608159936727134908525906301568284586473298198988087963525389765926135082601550567926799695098227810044620185088979538737196154045155093019797502160854159090500353681839315763995258173397908253608245402716334281576965189358606191725980399641955530003023693651335037856194497798620348637075449935738902756700830570500741689637815912237717340031830506314657778809407624611679554745439011191918857481097737702325741235555256360992856294988681524188733225081633085187247531939544025440752771648310243377292128829543177616184918869741296189014511671186467692064457501197938568891056745198407360304144655750340387516061282585081412774192077934148135686434132723795503433575768305616608962306711741571163487906173181948408659355444428824175296574894997345925855935311261133503142594608035147571958927378159567905000050687563951341642677135512467195933821493073459952767385839798056765326757995177222658888549240758135328252532743445732053530929215870835498304390950415306439426950500032919601737273760089178271577272503596473928502888202020531737340900638335947610255679476716160292995741529895576324606410765041471375426394547884799276158192808882267625858857130178129780419607836774332438265537327249275328302518849298405551219115422569648146062624443913239849376845681129633753977409560555054368667623402411350691889030652586824047546801692860266112904056300926631192325681874228976781701626126038577060924070676000014016868010005218505015086602689885672525202975072802974167505793349398448774821963359663803976128394532988136541156723191880546113791091419677000573022065802040919156135921812788755450711721375355458908708401883484290307043116867223595449772324548846607937541149561815690389358065096694306163166782904479996274607489967311118798602280087048627064447431099890120893478412287729261447232215360905379793280749017250621995740966763479042564617690445051699605974273795976438107998195955765158001965052348126832214242287929781115283075642128229230897865345779202750210595198301925397441158246479442068640186129291714028721439903632839136059769060566747780696747494710139389579573553558886332336382659662024650987247348392184441926703473088078100563563330976835131074984243101438844426301717379198659850414704488663535696073992154074327057079788497281061698723576325138439662112977564384122011660667409300183737013527574442802081011274020811421049807040231781544582649611401799188320283234375811613782086965400189311578170413220464961619937987248697636251956869522892235677592471392251237185832886252481660082184035760974989137346404132411822497582197972680802210419300306807216507651818257282188825721570559236060424093207890314261999778751262172478892972891514915238748654516494784320506250136817032657878973152285626212544002796565185126217242966914634511513967395760177187720183039008449221321967212309696554329108659369669492701029401104425753857511088145404472084416110674225413931750163204348213876322243215309178937554376560087608257642571014693038926445560105826185356679294208688443251312467424424142412437315930281947842738941479022401041809086760148052394950302334234995726155291259020095373350527502526437521258160779982412059038696824189500480435408928908141200036566896164873772722247161016537193982515666642337631738422096549394002523819818692637965844331551049223236330937306839411420008315025385082254253126920464639664963656242200104224388155270185320413953611929602720267875824775872440344748417058421878252421275505418620477321773128303897657219999741606136183950808534751992026028397183099337899475326911749330428346408286198283753448996342113720184539233109073307804733008099743955793527531813557410790083493712205119759666727594068478261233890571864216066066602330452996100209764483994580714208511815812638129242718330484671629702246007739084456255773237417018638147342649768363861419725738964561418391826295932014463483235799656223419277205928107637812055919943993549768903194128088889272340511245773070654640442834796190457392440313955131132508280923968360636189079869712762575172306747753419887179344992435175039981570952309372278847376163985572791492383973938646364288180678926444655781554796333344531574769510738054663909862288196808679860620487193469106053922471169051190551563777244385556429381715470561712304574799391175281458413539118100484835107417531322004790311955437233087888706567705719067184242197333461341555697862194880281195961435968110170196359908076132118643441602925234498863297239399171218072367814990395771360508187139369412914825389688793349431495969574715047104388018416571152704673694719484980927226042540835601748030753537839978417974639452527097153263763599523272869188055484744737689234475695745561013809130353594744310537965722568856254186208550824432974333960943274580477583179991147580791037112264469467034794542811654260266808560590144874640800516600300974883213813139988376659510112805302579011844054030243086147917197834633295030779361065856029634018452386713865275795766319741768523560807466688615856631608961568612128718848474610142159676530290236082445695303976302503445035174823687718360709893431937458131002477185930985667121859604431026072215176205838696111807443377003332393172024667093543578481645401794849691140132424875770511644974823893040146000323838741114860446564088502524247618406006448135212245978726736759382903582861165755008765948760343162186502274702983792750849565677306151421583601370816875398106250856210413038655150099496352985609047345588069532820193523569838145511784245884326770069796621928491082312668118512346689387414646343941409522820453809661080052509703678735246985368204917057280608486121938681712263906282954005406691361947958721834546073927082271812635742939171123650636041374048257390310818316890336769812735350318182109068509264785483016450239929059861259237150437768634289346158987722194266531249153630427578342123729451620101177382922885291801525688734046975801704296305160765932809726432528433157736958964731315324103339645625425116382175353443542553434419246767411078790685847858223122975639165857464906545459163431303864929823779509537891997512311788815716512582856176633073846734537117313185151694289965226454095892127601290345732263961748546652562369085416489146785408145622778851674490458214557639504249674611497016075075364890145303742916420783270281811898502419974383814128717011273077914551924103587802031741743126838280559483319739079560248212535142071958011917286335735156262051206448880615422633482342302520767698101028943354674513124352953242971717845355001628344549384859303652741655228201207144897829698377933147066185157193584711313460423565999971198044148071380278150025913665970410298673261687138042543651941919595413115346398579633023887003207245983117123659474790197021873514021955144385837987844416901799862014759040020885816423621165030156435900148898329654827788166899910837652370612497873753448657301638801148935332841646369522593284960089401790919755914953314253936503505992885252656133409787856915670645675305454507759224534855155480370737952008978370555697538720267958996102738966906394984532348253856396905392407076366776761859817193701935970349073612554915799711320147412854295213372300703839199618553920070821738225949059582481370232775863830781681334613429180473979327912331565705009810684370087774684270044618934079836019535650622299712199725613886512984604190557027768739089122915118996156445455090972190258012268439498227780573196644432422094063449805569690574987000548624997406254259531116523199366262934113426870196111358592942329879517282430238785767995363445694932172216403232369205072027922395485417190349450178724793466441746807400575983153206850037547589101935696124926077764600295439230846088710557986742822332824018535443562923126573595123599993103809245944341302092879712325669491308708674098014695838547223934895910636969174978128703988928529260437258928044782265560604410663227623943683378103647183908975838907739108006220909569247683515662768224749699632649019203044790207180709247206785123926661550376169188205345016127190784164266191612197145847138857655238715599238349531806506224584759498553280524006003388372860151397308269848444071359957944349052404090089270515791393147413831600838448417964126951027803700304911618896922642283579762226527624410781115995191931999162660498534368292161111337743312755687179227735766142285945787193814809981235981147744060968213358295950146588238143565718809832852199977869245631546820190466809994466200280497821947294287735460542774069612413068230294686729471050018801374114854682143624314187992826797672569334581465844572267997824380510309785600215319672124272586740470823803485962852915376486406506543438163749371673790524562364587188851003889845595234549483759623741455358617977886742463464894923399729112464535131495328397637819098289305395958611011416657834518967623482245530483295762980096732890025490399114112152723578725889346568598824267400809038318542796567980187682964390046454561876453616240155069954061647577474124465232196342738290735888868292634189420799691017238088906122542860272019271326633115177456844018422443302021942609415785563492045999922039993821649859750248488077950796559989880049538830577672750173919910227267846122449633024029113301358779341048050206610130189330796826876041223103674100296454825617176701587584005786603831383978688596604548751602388169174132484840967882030368149759291579496845832201477473393417678665739936679288308330383245945192153264440168412387246545241979046803829303152649626173473681274227195048176534682233168801056453623934068809476115561550458921695818483042864711651129553302681976463042889105414421242667346436102677420258047187507268478083520487603894481665979993706479158229504805748806303570876936790113664363453375000877971467295227499401928551850974829931716186508993282052137954397158094561059340005272091690040607695222070641801531146449916117962627214511208320318845545357019259375757542595058460496480688461637353965849671086043575895114938174909975384298804632435117092476872230608074197738408982980710860089161676706616582710887187540727039721978973709893098426943316968285519771625634199651161483019523892917740365279231093813486332859341294638340890760529131724551924039167281420481608452131172649196154541022388106957597072677069954766006057775303805766909913623736984724896240266623276125351740396633981101052515376079187966315830333054320569597506712964759655424590133061671030151705866061728840951588622468134371325903903068687563342867620202139517223992160623748183497691343180660539315727650425593846949228610475701834825484247127911676119463176027885553685987581474062011430174404655567686684308178377979800066936356976700820388591775098685762397716101137588275985810316326526881328391239601144430862914131743001845921548956410197278629608509095409676441815605821351012184247778841286434754341052656710896781180101598608417448899276553739570482536467196938835401954075846590433565167810243259066991852128300171113669238314361307926102584427862265321020876312026476943384370095111837618944656677085409279991655506878604424059376098020873162475782588584069547237561512654230794195642532570000247036528165652092934309372982023638563770837103578748227315958630405166422802444691324776599309390745913479892080528999646864286958879973237500096222514371661400031523881297304984941376635107680331591733616145159565083446980891131312484389294642677053868507569541806488858108425695949897849333865182800187148106771726520625441496846649085586665082613097723401968504902009914933518912517990861596974859667397189680991100107553167342286644593983882289279356273001508730502473256751969939270507697415286087949803161706059050056386458269000655082820060053736056312584467945222733080533580448829392277488849378252397711459796334220119477308619441368692384560678997947455193651432187603814660281110945266142883083893890824383043118230200450133906443544246057468413797458333692072949260752613282621874632888677249178545676347914062588606512286816763909967881157589105279032605233032491851463188985966830218331077222794402511025235439376278240405237715455878936653814892073302750902680850580632498830790078542248533120481816234104652035508678659799640458997782824934294511827551301377942182650078481482852720433524195631865918348979159838328416405447841211342780086781412486063544094723191004529025891639031674259113357387003005915926238630295909104726145119166330014203094561618377909648890852227406805862068174366822217483163645382183270666559751530253538340517099818786793797923529506013404657603957356232418941439546959465638727344366396930632489044196727163663365504123943294545826455370903415447539201951046343087914756998446986138354805906417785760689334975327392551181038332126915488632754009430922592637501138325464998550054439923192587286996381154965665490670243187818313864598657536842477546933371077684225968283910894927189310379661966676168239371416454187136518880693569316138373392992966385125619744045029814965417511881448395959457813136938616315559362515817741146597093441992646758068086032912684721292482686400681738714382079978757997257457267949251397655714586995065068332284438679236802026000525423185701790289112231131317004827501870176549522928494351482074715765797592802774668179750671031892739395066946795174248568232420903640803624897211875066258603814148836695865014415107143729712110081993505941887994441249677784054555495057827193778741803291573065669822842116352190433850540817032678852010976824557667199381812863700965532449671360387071148716428541237102281355269733466145947264126833244882262454967858239489000027004326063886395351175335152131076348560056746333675258665516874495679117327810362848662599698121882293057480627432478988129024901629460817857856932392640281957364878890308176657413745548475300911131773049405881257572258764129226889641687232111169841472324534822216516806645766805857873661062919706957711982403744584313775629823828090253865231922605617391805883137659754751082043980062272383761547206420234014012078473896344867861510177286812226086748312660026700250005947668918887053479749242702553227529259869887199959410989024627715188760531007358106562962518997233454183574982215295697933300356046230321611388370351907769651784385119744853154895148032444106457654727957490858148530281887517451066451065464087524522283162064425319409819241531042460183150804974549077898886250363174325246432213091649827599605966668442767917056252219623757944833005780042111704934634489315395981891695347066724721912500126170469336638763165466047848511256370284112916209199368434092160537094838983472784432238638306999061049862043794169046566377418402941818779811796147953609411689032592254310429668989635394558726385619277921100154506220376644613838241979130309203538570339485560610371271191062989500818188211745370691367975276241644584830628387364923717491090718065192064075084225409587959333923951028753919701695964340429846157406438789675181394703987110016571520000918693960136211772784349364248444687775061810853812308331504535694831029438772084893304015717800468008019994076492366750363189644556113795737810958147495106858822959476148620394382314292447580428922071164239683743960483646778626611914728402757611828571696922710887118259636359903942905533572110320471363004903101136143667944116223787627612665189563071598538449548288952848097635334461731730100404093884341618582817213174668356240044077130112969898679247749382936137308230727354626727594084875040312456515554749741751800306451874905563817817294414375250984509540477264512458633772671020359594279487980716099783299218761187468603326002913130635243220832635798898686911893253112483601965322854347208709582605853348358978996721709198589554739765954952684752584904864132962860585142551727964561112866201962240514107315688898983875253780705979485260340041113662392142494056269520540380630364404611493988479833494511553773461733947721459815887645493759146740170658034655384363360476973199184191033620452120898514203660549618378435588104180908128198614634266111429824467977086616914049828912723987209215069892477869852081943010045726077802675567211269765398879863798041353477344395160414649079457845693719388460885718897126778497451719835947007151196246821179307147460437502023486031421487038795332524217840764983492967091401251777415642478843122314679693599310927285492932911018818915374281461509007681999049795776088908251573588003469909862933572157580479535382943758040186467897423423883836113828502758480534400386740405774438111770423544887963584322721122486281137375719156869869065894182124982758424099096516526173160738090076959433088138100602815650964664071687142898993570990635524551732731110057548321061524585201978351435440885673818093456238156169607943574897334317480843032785749239335009892250117774447777281164838948902121654607155953290068826055987202872667539377557965655645234596366307503926823062098399861306299673486931752826553712508365520791184306402710019167671641412697283008598458206406128389996294518396057514577938087270397074498524374722112840096214228608440207506753343577695938802740024240920023672728554243695066692827400727200904377542491964348086064643295064052791011474679310105115424744272834857379062050867604462366880923431358762336814104998275441957709338303739768745277502793775667906810342000749334379840438485072798574752216883460700160048134919270145497603006100484035497710515920323099250158462614279561560919514388257982493217496705922195289790125018605776023491461874997667036025473371398986510297548819729886384780606155475862178614717601101966989854215355024588042206277188827215251190432700949747319657122212899619605573271269653640996108879168567810726988567615464736595298198256516985947509002111661794312026305628668487909232195429919732019543073373076169324897275988307382536652395617237106219998014092473515042781756900373100567714937142746171024166086156106930002785513400183051468030314662651427983093021846653843447092134737183162327808238196286921219481132426883109831451620752720268637411165070070707859265119077829039706626176037882187069712025057375860933197793291713867793855059566713886632737709577535025863342960903814284431601175428675779627665772494402167182281716460549633990354702989259704775907581244486468019387582685172915514753610133944856575788604888291946096474481418363978989550387442735714247649565740150368381844509579010831692323788543191321220330100549501593095255443036474926456556088746035958049317067295045898738472272687039406058756555574339877437677508571135806533510963016408469575969370025289629325918716563184008628039145821021502483027536797522286726058084186890783605339642014378819300762089639059942098831791136369442170391529411617138928504246668407921330797767206243712462710425790586496554203616831437936924834212827766261973697508640499948546760568344048458300658905674825087540634963024281617151969782231213623211398335982313457037120532861838741318391914317250472204068844018657538163928383511504429410808910823365309004155626507253303231835371512837916352631404070712418704040582591126202030377297492013176831082963953692282946945049206293796705408447039530364992606588045625864995969347585137377016355317530914632961206647050304491988699653543576331432867113071213792934220571709743123469198710869931291774988016763727900415790709262455992187832315121235946750866608029944989791847345226380082999730264686973272806327397235641596414191808132855040905988831539559935445129061934742750445482928773943947651886628801974886942627243529516955096251422843012946270180163261034361277139693963238433588142254679297111653075785802084195009865364138357820484613836820330325527720478966977680075640636621662646855364921778212903546996970394603315724653061739442968149996463441423552044276529882200185325421547712462137716842858597814219927772573148295980332312640192329937992328873662415806305353819218736932441576693026706297358995696339437289689069807093276235350641715228020482887909593150844372551548434333958300944673207242002397118074537570388658565320488624324415238791475245828294731692826516004650191439636772184160099455452645641583452504360581616251548368830912208021465828122755362979203223799388133200042639681773870870668477571692709318403692984467136515903438964666696787174616390641067171985195609640264885682625107501263943086363648747825293183800860436096775033106583283513435804933535323828317236960830850781867804212599607965030186279497418840060057887567567013124780818098699516644138389804053837263935275623928309265055271638428808901560132714530222779283502411049009968118617391296895602694529026177954196535331758255308522494274407260681398225085327553190775155260353154748450633448556931068532399910215887587235417159570407764753907410070282059403213695197429191260664984961296516748189569783385445823662576731430087102151965032304606146045600982215677293641959096495407317748107691148162127994600729085890692623759186539064101188290984697091794655175809435350500032865111223201729205850746520512839115361964436972042009126581727571984986912794250896468595969725469320143697151352996122017481039889512563647902624255269156875713197955871644675362179526356524678153890956548592836480639688276988477958056053058682251596805043642578860394969490448353576917028975056476870599071646316921176034804016545250749231720298330437334504686370352090036792047028170319925942054424262413131785968919848492336714134249158603459082613519986149806512497465435416046315389533322214720610902179974240020171985359493401808606273917345322286960737845654913340889038382890876792689957015497731544670962592953602031173442652943658132798895712996332252056113112236140058607178914180493316917877501337792544530391331084500437604847355074994473508052759822620111339508427984609613514744178053211852689953431716758848424200807594225048770619894398245854065825400623684033597541626369682461805129536461489142229162802417169840179556545785007947946638847514725697397872705030239571305898705388886961955427819312238120492321247969001984850354933789107434101617548861759027880892053716257141957073135408471109619398387536988068359047333772320881909041656510558458090084009646851942288424068434061072231084126894593537858734263804051026549701237097915749475631308889152897180373579028101952654508994906653743638004097197482495911031576490993981932285071754961925353165880054308080285129387509648158498584800689371261644022979236863319404536016756227360519634566403888288393074680675437403575559007590168370846903135980167010971637386495198904479039919406711107921144464223445241457269017276916641892033282442224380841935678835863418999977639605823059201414895108694014160233603081502335634336702763317895203541040779757580560220226535897585539975096250757650521350159615091507913809069213096751778918231499793458938807603019910292709834721023747640097290585711856046715222375006127250691630093198696253665181261179732096867962437308961753266053946137791856625542179239239342319040355659820638837982272231912329543038082314168326779977384359318065204775511913452259050796660839530846411098700807812841504205549203884151519613799567783141146865691946359470886409471770374708620978380214731753899363352931889733714043942854199060287718466553440669998666633361859276520234151455729792808780636349855423123373331952069615897107937476227880411384436909458583640168735626906999714958348133479475190893373219927651850606474232355503088662002701722785559781826378971112311391452225569434365246921285932256068659616021484202407388444523671722370968324471041003162754320579828405393183730624870738418434134212669347458760255945595658443418820520288862687872309801740993630837784070406131299228791111955874183092289516825561696696532712977877500485323322548226118079001743990956101294955191293267887292015594911169575820334011967174329369540927867219396786280037567035910642533726551075804975214310009801321636640199611518268198731239406784126496169492955377606189094507967070111043720357440928029010191225794586737844199219675033705151092060578606175638649029671068507798245835114707086658202299215182891021040389100326656822564189726091796787769941703112118835420717281624480141967250840639637330236335869111081545397502259508406510908197107500293421107709946243519876380927892439118169484084958072080211082184480933431764685344809530293791200659876857127154626617889055865396624754132634193404288568506939797238304184688361263784644214773497314774781520115150410285707595329182759032844611195002654320855009351503274358410957466147074091019643946292065418403554476500148846608327787370708791507815528042139867991325293458444986474156347682078857533695346118494526192498406308151319060962834464806614116858236782635742049353445755519604577789058509246322299605365692786542657322365748661025588513909643131266550017904303050180257663843933515064408169128753223482017858727670721963856879605891722433638194968054022925953441859949574832610074957981060282889452530626605203760882398459660853963401470603724675426355138302129953304790148944438225416867602355852142435608312835755874799576648318112165264149126322699549646537585674908601217172813223242523749693284530221740380658935042781082747721342150927325977820830509157836834671873176390608676529862159195972590082498427056271573378471836797381791871606381182846367697202769182139850490789099715648106379390396481396833293717039703138397158402903031355256887998833542919345816094533938054184763532313482960185737319947419162581215332691970737383255049496088168010674646432434087470896821486341110677155636498798547671104356495919166886856831991257609050282946657749659808100496763861819153357661577164539320385205242380596512992362180929569541257074614996221965384257457283415647136321072511430263624223807485410723357071765637443089988646022971500072581812269808093628980221309122309379528031922926851799256658687359172233921673457978767235244425329971977340385559013824132631456647625099277800882980447931577648462244630926815569506939359964528015142688401657309686876093252770089802609634097673178821655923923554890447137541310775499571665633120725231842509220346497070681909665723921394963281988953132272751796674289366941874608284542954203909639960547336344076430578112645229083747236565265835377236625014135228120179741328611988322895599529007239859910848010044991610763940633700365284355382329514366040683887733819243546041373076333272314411554212874842123333554689786051879009371283118175312505788814605077225791280993925119787325168914735618829215106371430412755082594981113308478419062984272338914759845264626729155077170639594749496524645264153655141889711148365054756645110598736172952389563041647368598671509814183604688709748972545441154164879000029303279533856364492484084840250345178035339581758795248117017928925883327636854262778696453316951532992701034972775708422535378334430854124929930722687956580911012643527439921544314456584765400716167766088839855678792609205563066877947930742158459236858290774297480295668840809348188215867738838677118644535347059267477439933724477040860862682540080134189754706294192440335717530990981921158191550346719351192012952626064956058005655457812356528697619640112748134896980054810904295528355170219699063935768186399302839897270958242672109732561965562780328114413611867874229528912983390077301808703937466772607993599752501132395933757740400571061972913963197002622743980855559672270336979471782785751422607247403864215243930716532059524832738537882737192396912852766911961390548406093453847128594456441493303958914227176062666949259911319496955882463348403343757798156383347054344042612526625532543642423315663810136590062972245194452091351119859077613317817242242812196400360605869118703011686070422908312653511080229326560838836999925583226899011901181852708990559515394909704095791092269496414384870415147686276501058127478956929754708825181823507728558881485802632224316813389967538989616071695818064449930806133644141486816488855638480022243969722773058481256401427589862888582059119612927691469138747772965508438988677958118162525475577155738598317512260593073463924728687400551852273275089202569881418674724178117079430689913769101367330931587872481657124660250518809703248872137423864732917083137413600981088648138632382221710528297934276634297100087922132531722361646797546227371917047654238322437254570829061686006049147390639595527869506499564120941662165310342775450399206520136467583773140940638731127852495632915317162857829253475262542999584384098829394478717926274154164087301283417472766745668288149169499563307847283194035878949622568172053511015905155458652367751674348765132413148136266776257110635791400994849836495458201871678428281254150138949848910700751632237998919373575392468308476585848910617859107070966342697372834253108384647091576716602104485244989292653812722232662092250417620792469884391569866903191646655285710198915115131611291145865892727654484725144952892876322268184035091887004006099710748168892863094829782893097963668345457670175725809259955375448353640947502499535130789642644201193273416297183567562197500261910301508420358938168087554654736582242999989394446368158018925712668719691071617520684526500941822959622528669859959991819003595700635372823217661199488650870942515486820129972373337509666289619122998265061364027491827710961463356425118753996538723332062721834095426924024612578685262049533192791916442558370339147789361222634328437771321052080900865941590042438012982163354528343381055765331780684543998891236466077535568081108328288517390445799139681307469034128942957633086876726474616037688691101956332320099845568049634316669130774658663471338351438097539863123873979943789399038358849536566758926687874255258603917805187024868708922301339461797033531447526318795914548099134404826408445117688798736998196998442342759661580935360192260678310975497907314262345124648361107135401485759744449139713969012842808373161373457235388840518596033079527906071911058190390189844175662948058473193487939661035651400356449873227153410395695596449218159174883669941439176340328183994675595695661415884240901557629885823537178093500914105092718911881765376046811472450555183611693462922277837461966980641887302171817100991016540641093482686229521219899281486770418309904549349500638439252695589325265864194041586784856032549400290046895377860534362893239199739156278458022595413173995581719811235710240552043791534393101655905829392023227422963850329080214715853134235699874693778078097841359652000759124352082244528952762883991304551738199742382524250566917741860379493074755742737181554157011612482487225637209893670473799381677123943227390992242532032622783553943387319964304278513565853634547743378456327809711339796356290425628017100156533629550578261006611449250377063415220783152541562873298500872942165589887681462074864863716747285910672402475177203604171182914501583713986902199845883689828661978235913117999552448274575413376071075712888452837487719761118364787868852934080495642705632390928699521688312306073845215948671864943901262633630535393851035789295214777829753517994248204335778683908845158841446264076335496713591290887193214129853735388827523517422318467775637626123245661595318545728832111986978767850612819449114116151440169776036552369368756994486623125173939608540761501486005673304973711924914479672064011733969043371231753077945472375861848905068678637277905052948051545015327707711020031919197198662993638553037708597001049459452619673008436876691051975274115106566699029538198059225576737938926358577167707158953493545123221304704667150401992473231753549395873246534856244196866274707895518481122762297893078142967573775686888765785923955838746930116243756231005298034312611697761773218632421357448132250519805842714142852118223067356217816313573786909126144222853310235166510798142770507083194746027759530145933688600061607501111565768234368968760182635275801387639791532635027659858792500593434192480408323479972726186469940078208861559805758569924277478208826945778475357688051072746875383108781856582112170667471357438398905826532260689512884080229753326917421990273765306468457808466053035178196422159111637642459273062245677256750788313818890009877772087649854886405215609754677068004213293647071425309565303390569546107663600312000803157753989853069514940546331224332093813363984802540141126780691562407995171860645851970483498929657085368666208655438610734995533486156302241328926634893333736295874787846210612213790030674404960744005622738349458123032677292277729577548202612742626929310363330297307499317744889418799634491209806050293203204782392930518941408028981080604167537848353368532557119787717570925007771856479344478910543070345233125072740439136555346334291856931185283433556489648250608299854912524842043175121080478436866322784580457322403475419438141595518588633186850048771840852643625415868342102639187072592551282147159260090317378807484982554386914605985361350247328376776607715784211604781427749883123236069671774053187707374802765892352552098299571390759918824292776540772490286585643949017814322572623053996429464251680076710594625817558609089698109341002924913302750782339098817887012715837506778158755788270938506373206181988632056923192262120467121723805676498535135572436656028013728510625125230014264838032391311885045510286533311412384850386973306002078208511859071029149945827281936269773920189345712033957247810395184921585002559670641387810943656059752759446801807922726721139575284850415764792734108262872954029829498009220306956110775876354274808411332366399391867065643909489723697734594049461637342211450237651997335532960801493403444259524622204201364105781007430435136541059666062610406245241671863479150463580243516024548034048352059085592044906373579105286057212422590335606620267058671362277455149218451662066240094127807757315062757353129002601420012200131866041730754770723483439715725132703325919718250309252134792440788487651799094514781402139786950314703393703933123511812614767762191004536822435249301932610336056132067213284747706203636123702784579876709315391763572286175854217019859996007977181436670469943148182423795576833671937479270958005244032968598802926256525736758003131154819898135754105152345005768907547957305187804370919723719719862611200918248451767423683512715740738498352774286639973840892087449794951416058598268690344682619855212111873975097636932131119583797906328122568580784002935547132652851879042827291945156431955328042163638208240844267313100234453211924729657808185208835391731562188601718517965185807055894708827262807138122586921838864036580802466203298501324985612233077873641446128066991334562603494094866235625688973127511425471514178647403232849731761486489656795681626443268080867137923377270546244485143215384988161467400217434316479595160316868889311014586099268819283207405386395933167525496130815628597716460986530055404954363930764260643242804299591259746272826614572627388840256361043407427439490817227229967671071380382705018628895794847133726754431446568913710029323842277133946488629689349873355450105840849567120998283441648353335949290979076573044107684697004303196424025115973048101862719929309610895945751447417784694667233928126822981945490993642793976577409614049507284824414730417169183751193967942193658977092866519093940251336591720692922256050841131650872482324587658477158488664623132643376130992407162519275884501229747463930794801074296193872560137723689057184427218733118993212165319426736892307365290821493013541713440773938036760792284862208273960068615508287418495311334873160653386082521430211446492906914422736999964605143864218086781874634653992411326423979619609423446308517291574601148230978487979781651638659769335241448531647260806513359991981075449751054232763854749175809135083900712997554325535019091430866767032672500215164149401920113796229030133445849625687504651451636537417778177627721267859826077301732239829677712900983437233019204268564118039250347171868102065295859389776250002776182378123061324978468911690890767288401852226220583663876265736453942741221769754916813660998941533327684119811843959175383457897057698205010644405658832500342143735544295497359714321716688421266902098769825945027431102225946591300103186130447698524319313445253482687936146956883336578665917727439374135825117296541691779866196560343910861193789253975506864104589965045535459011347473797129225116725668981531622550908666672010070480036974297364822798396336826931280630043057445581363817935347052069803390463544833283000956862593215612123182549377070726414455913925766291759113100866952633981694942170067543919927732705631783060244063277135832561293618932579435888276065932574019348034541319476304583417957375930444089404590116110529550680423307352608983222107698378920989376329363033318209912350385298320082815493132271431547947230203397863026651648132005212118226602119824041014707261012990512401640461622488491820859283692862481739788635196269428064862501922194996396180903368760129600424288166328695965758042509895181993580146868916454795704858912156318464347437002236175044917843249019292963111535443561073764897117745272887011276580415928798070055110541450559213499094367136945895249096038453446256335806896202417772204592790819405324000177941478550428553804565351701665566859132199834642317302285189509380614715088068572714725638077888633005668033080039237573701469807709887456664434176816166322440685391482001709245581514489385307032412777456370028483223132676391355146669887962720889269304388888434123484465038048888577047718066706991607774167698524717848816103299071564062694189356328992515273854717025492603106251873678635366320391962289847654222490547638900235325651411990986396936742434505310931557630876971949550248078601681556692937187846956557834422635945621258172456471915579941279768811111400822583759343083117164013154462172523557003202398649877556350597217830086475979923463374283003935476267581161653287382083836042119386614761281189202721726371797664829549862544311568151986183255471493404462596338211796245481352674635589427174932900808411818340803661687872850949840984108311149991859894220767952243303302616633462181431048773811303400487656922639801683140962095041437904036662721402820625734573026139069389574569894734959452327282348483303215789891459708483361489025436254144510167302982677286904255232340196496241852065373594858371978873835601080550076269053584563535164083290880141551858582922411944874553137583739443798307695354122695265488859133161881288001081622936772319578083399106264652281401142709499688431616934335495192118536572042035115336797673968240544930802095915777644456247117526451988986562660583948111537701334694563011025956480346589510410354510802331855728470708089163934211268394984056106998546944821418524098856253973663007189752848420010070886174195629839992690443721501331238153589924251703017406069636562245045596723424423942400365984161929963055766005294188779838130212856484940867670413850721328511142390520651756871193830428789726091228259785765923745608130510445863372942387035467394655980541522690216781287043693370058667106535224272579830727641482002571096276578766816530018565827911033129939285628159776869707987342375732414919717496274037333121134150709175921708488453801401315017999698912758868443657655689931647450542538609376414510093860613443328990544935916328146774934040569121615324339230266669969227252159427493846469741865246787775228266213854295212496628449838702204931768331213259038655608469262637815742264236955396514145673440598606276875283685350463516460069012173311931377412524123081685611633830566835899650416225574401999604799125360915907520944830449289148198165857096400135542432591740500135733656753404546652701406096443270725856591320699971613667084254047683175736183418786019915478635646769766947630907083539692195983333478968215598232309074207089172269885366014736935843811375892085012082999866538778253579946735841909011963935341601152959712765668770116448149651948585740448444243684342393414009854308631631981547660011867368861971642503647831701381726689162149318031070331028520243968642920527481355932118900197871591799526354022018906830688349431634067636159653968412079087265211531794890002854541871643606226481138097010519210370900073747983857278391983603134904162463580802109667141282332676979541143353482352874016596979024385386561811584484656883858396513627003008931570169434503629777743708376903973994413670696858052404495317041280137890516798524574331190886874090680462131839525033526547842689250911420835216792028701503309220146513698246047358707673615683031610827991207437944962761355201828153129988328224365220569725045404803371423058799807197188548877031622642975690572226401329616471145596726299142651137371029787704126783966182954837348369307762424709762124120004643913168479507675233867747298657198080954779743888123165418048834174510652880511393994808674245539148519813588995740917641832118874265148760351643709406044251570246611123231792059398821818252030764659469487563297116489054979935873110412615569606235388141358800860822540192757192948156880587232738172191932793692299620077950781463735960673635590648145128757852572107413367117699860460216700492663743939867125860201891283908299527433596244907388001882477117142057250194958617507043228858352081892602012519877708594995953859955955836562258892938226411857899205714673905838732757998933826516641675502619305407863562430680815683062683589192232149767102705202685740187347975266858900780600187557537915119729163540688785022108613507029945823305162753346344874994417701564541953178321980745843390351622745251527365776541443622276048329138331847559340580798289524975166805139844205408141015096064109900137106786931707855354479579296746403296607137035989022175056031048159562779479412491203406609334105257493453314209423670543193955594179542795819401465224002242807805165787604566428422441497528017991660672415192668878133992701681859998455196138043588150902031164665763748886438783431350957826276131681561975410503764044832530747207542298993120623758566703908855294211041817744278679955890150739189889459749460290233310595702698094528179368568350585308441478634339336597526117627451435264279218481785221085442616636511384962679795127471455019379367932819158325188738771526392165043844551652191618342926340777208224115001953008143300317217766571644067914871225610971454152575618551400295005332716360451937765062725993143625083806136323368654311235914110754550720949703358699787920882694777367557706150742872208741813431897522935420822544435458472405135119777865246973831527302071272400771032516805182751008830496157928131658256052303682487742400777175473348551079269091159204762520113594398884444801396650289625888058159834165153178368402245631849415895709007658131835719539103479616696658853015344710967912575270682857662843569535469124832012460195876841336466414020212379421255234589648968636909721485229447008553518570293808854972793284797506397645658836450517506850961408930800046975525801996469088075424618053916182312918491798288809144240607845944677596281894762875199507998486387701328455660401217209298924227590133972601019983020433000286656411124080293261068122749097457896440069291206416541142637631273338782968231414622192825496425857246237458485022742554694958550992314701361746935707821821016742349302585466845197759838919055620442657754401931521102394249777571978975338846934140663936186835378499771061899605198309877281268968286281313950180495108704033123017814290494381117133195788814437282327866108496641088650670232944813187233152950098064657365641441846882628124599402020835665889198331261720898409188559827560808652867240141819125878667094718478011573456541446667851817282377362506551885457449267539356995407646046648985846436121557696333516675566104194323620258087401893765627541120113581158872545712601898253331504382170652298674330134555732162871519020764649544722338389812696187287221339777301869685108748292883843514597463246540748388554755021340670274644205876843481729897892672425540341818407740173168335087710049379580679776743958846618730267756322629963927602806210025047263579111474178550311159589758249682191483443995594106597578990452944273497471399502911893860533249294670674093400071629814118339035596227189995647520789657831230571670072426349947375272013289994715405078701946861655352857055052391834865773774168316623770990811742089804146022644690700734643466477293557770267186811210893468674185154466739017214611997759116329036207594885246732247581055338865975017298049453176683400298339144727712793879364652104015666862742178805068360569592640603734247129675754318657656973862190280294606461503688141873925772420129720022547220900257599580453405618001593783499874894280209863836415014639645081364959721001295382293853611810676635184912986765646789445540498471500044511873400732045132218007824708230815364178479212901552074349965318018536207091245912622429337128922778027820828728931332133810124707275609549903103492699161587722038678356969164150748815695969437035502280201063512526841540545544601580571661423071654909021604157526983379074434593295211200361925670447808897993053443217286619955578414131527648165727475324413860428001794339669105530605324759172670061585160998153393462680825841892454262570809214683427672898176611212690584451832664416688429255058368742724412904528541269267569931189868010379589386211832980526049105250850084343919594626256005988941213034040481068619665786824545542429117180320680049597485794394868065538542700128645848392011623506659416313018973789156260572120584109372059181512107734887408238117832345076353231722013341832205778597859715457671471044681662579865566208316314760746092210634062509015842547656739869690557665410147991547129616171529106040334557145828686165275325524880966125036641341352957151564753159069422635472193258973806178897171186348914084533015925703606486050013146215139298096826438150573648883319189440496473512394735312073801487821608450555947641846608903990806803381010612295499743115475636096390421873432161498188822073856367618655337056325010795091930548017188705384474431227175911705597034096999756125791203983293033919297231202124521719439662186028321957617653888032037904422146792760925356537779147348500507647929228971713551814347376135789432068496009418852062545160462045794997225179617534866190978233107518357186052736688511589413366455991567556328801677342288267823893757495635633840188424688899869336168056394822178726952342765342148593519276748663097390808793287915707133921824930121234728590530036941938004471522492391937135140083216396852240968595113199267694837618292035875444095297544661575569379774747961095142220298287533783600766462170678759306542853775745607396900114387507036523914495374101685581226647303917649162523881268396691378311856085815114525534200127651377788515176492226963152421059692772507973673771712214374680127983450653119610786622991774428998319568042417705186306446611139788064235739972535451644312747143007960307950366990340131610233499351769280873256367874094341319504947848703764574829980174862276790607507575234505606454066489737029252665369574343966107062091425870058836580222213814414248463568430343827945300250381334966604360510560442378833632360733710655014930431841344531144324052638862879685465960562765707329239485559852071644528932567788946120837073098977794614008497086935805363672496518802162867039168623873405755408426573704360708707716052270106742064889104776739452773231352843877710735631423327569571715453315174742446511096895587504224355312426204656057392123810458158539526647683149860144676196401270397241686386653431751615729682472738423866869806024416642870894035121802342911060623614291332220923521138675719745924831816079405650122696637020688627171036446616946328077530129747478025955292232021049074605288582396388859949846440910668529064171344020012519820487831262348601421143905817630312825438049522382930689594682168518294731106635145124544942568339735907459500523732422133551296766849163514548625693016496527602959545991293652634912684099640282918851160299044624909966291685571950993769627945911756561214962526837963171115580764780531315000408491146041147505608141972972148425441821324419791027177584338911924625444798594299184115267551841512303902562589391338362003000640463520201717530025536173394621009658584777453673510102749571158721461880311892815171934721432035509853945357467296138313828533054167219235439288243620550765318938602872087051411367619236737664801002456867082473344630009787542709540239183049330795786368977606492066165218406902895070424842989356558435803639564225900350839994495361858325127217178445737391602044444008833606249219507040445140166457577910978625769056999929871727007660427523713190143772626027332529347012114513943643380555639879965364240697974593092952994618735632705165969311028800133096568241292601173730194110432583553271834739315310249051396106298662910805137216918118942135738394236209558832534387000458945715774017794878082969140331471409745266356005364965843320441754698924191454853348374774143320640289132439258892411015736929899149709433238429179208648124558355280542765919826587136189426598327657822760106551582756607032714939416073443229969986390573737395074511925916077101464176105172281681694284135643291406975612320678959515189501229192895434166069092122314746894582275333695718772307267398678184349630597342143459631934505863681788290286503413317863262708062207320824532939797750028276185582950504567129129207073283781940369561606461432170308334656788113335959117074195305471495186648841340670625003493964081931337399087894780232100271353183450215127444455851752503191743245661340120546121342665865371726705951631099661304371276090901472670570154374012425053518988133460709211155948286255592024647692579905578569147911751416278645752721320769727031859984491200094398352845118537240224198212277209746100268754698001732165325479309556776111581058760194726111446710313230975323535022230093622617832358171439302782437532140232039747194948268022838084072333456340847986826633630822251969289632005635892883160986124359638979138913305513690950986641498505850862065951284729624668144943301050027466191355127765610097884482881324203899067717002569369043554342430741078054627957373335826437414291924327790281942570548306332879223084016339099461624381760220313424454734326457548861673400103124234158133396398405284434839358636874529511016772557016041259305661607878223816061477561272624610587091043759745075485495854439003081614650486599081930848541455079088158520002139365889804671461790740890581749975698657493471806750280952154377750644609267771527904621422073934550495152832308003605797305499899772339055364593141480185648970336309279645561301717098646048570815942011280195265752210149735334281694164034296610767288272231300478918291339232939748700614745961963024502961113738585300039790100735337001354458360425910048317300987250010093617799974413597091395955466510061557421074239328981050497583596646094616181137546071752255565460271913514508553285611691278032601009517918583469895854519685272222162882451053176615674287861373565698597600297014668661814770699775815402529275015470338647739851666583368840530688387602338245966167996513278528511187771531378464925117135825609356415665955712624880038894422558799985670967778525097638931848505751184155051641848304976504400299654590136592800205175161213175183465025782973193979732277137843542372643519655499403033649298835087844698216034534591223378366070558446556388286307776931171011344374745839097560265298471240975415351112586828518980637561049902906617716917524134777256909952770878066333659891157008334520108347919160765821517174691720813497101406255269668896073542701295829104896599010190053261083338713363532729782964592344531803303248890290654690186197486228966292196637023058890425292203958591769743190032484943884567240477580217421329389835754271086694264431432464029330518166477751243999070990435926223333419923854380471979527363711154917899845777291382287142779972098209449552893610330817656066765918989464257717788070710573452242502872674517048379143521741969159790694972998764981762987701911803858427252472752233880094093632893857476382150235191485721408070959626558175276936709920664881699208104385919072917200667597114479006762277685612178849831370784352651122220216675908579337099810424581695038297962886927728151228473586460840387390413375771582471945420585818044810766751085373188567836178262495884450411628804402186105445844929023126979866556441379817702918378488699213894057922026018037460850122012880893874322313718635435574758359467861251208652069817052514498618916026893128435744041245144018849513670892635677144260146106874922247134797544946834506429333939554861832185848302919330695427109510205693515973752732782241621262057006668849736365119948184555817451289579374443250833774231879175412833069562593073743637787385627891037306919788069742849446045427078243803838372837870112576521610713479120762775939822725698373702406020813974984429763692740475120625712016809321407512330467934339918565549352082396757307624356524459702101322359798240677179349510538953861373368241524554732921424196428282911953810930089427730383330926240724915366885624018649917562813079798165033739976830679356530311072766752296755447434390109518473821878305177257411042068642231530057751304846787863004403437125586244062493063321770215100842977631591225060241012076992777621223961969394088401144585644180447432273666689700038185489214415879792323787385688277525952522704949690729676326457006110814864303234693827272477843637538680646107224799267678884197031153647191784661492059074012851932400754607135648951129276586790062187157506160890621957823431506253047911238567058083623712470410776879021456403048733522961652599651575102017914063887586518394221670627318403590523034536761571527782203784458289609749145934303694020371326142934547670611800420716053241757359799018238117377052165033983372391794212018852500345461600468024242674278165284598844846476958115651173174371100630605197096083138936799883163255374782231846546007477309779357460406489988724256073949987127966228249706267771148392780243066253958065205809664412527417450595492803546884579728097394707021065149552238275113095016319504878446167423584739938909366246442622375301099831910142758677948222104284029284071014898009195323337334568211636149532783239912435753176560669928781906546262149830291178370206399530781263098651537938177718405733136259502732262354830750668823401326776558270756546526130315839884186657861776786123670989871200341275116555904623658133882966445886038807747490193634407173177284864895883929770197598961650472881460755040699457304494419020751099056295505028031689230923621529972897764416702312103712214449285652079785807439004339134925155671209071470841688042517645054687558011193042470089000252868364436373613029183875468694240498816564265623678674290822946803842354212368257378441513356894274837089258402225542224783248799370614715828174230945126708158316050960036190527966224283476387571378604161273775189909960506105858927887893497797795957940400403899761464657464292585097774723605448068589647347168118455728054994918635780730999264902413376013092566929893317893547011144411324530352926322706701904820833577720571651196457991530572844628489807074799216541864284769076980405362431411621892445948008408541573040129459606494851258421979580387659684088684545061092754870332523537639071220622185114970836504613262424775053003995582361021522496645065003464762151529209782164848738865430128089918262500589751658524992196777259077512325398973594294576935292483332596667778431788277770929548026619889729053347710003345123808817640613826916124729437882307601237858860341084765413405402859642689466492912059194069131889085287324194661638180198720259557975953598036027266539395080691245828072363956715680915562388396751802774389093554309911805180980213230525379323525663237056071374747737421489969964726765067255513260531029096311267022332351110419133549591352769585289089906394261240616154808676603696824071768095514530481481263481412949218706648332775422795677386783003871439914137054344006955403900020304490301707726501239954397404068938520964601863160026538362267610851238096992204503235490837573208042116438285386525504311740213705686854698190545755754202139640316612977711039023666097723663663041468636129931743413871872687125017373534144882244476141816448776798639384399786271630098074631402243784061932715206362516167173465357419385012638406282414508929216066916492660351449208954041636810237773020837593522343811151876347318924671825880296684425490698639172164425958425855766901459057353958168188584984281794364553171501461216493898085431555051452409078978838396379700741556311042700587267641156228414620593313870959371615362483650194417939398644815709166594283196885338497245008990386867786230498759265393770359095300886906035122606487931539736452382526671748358909768365271321343239663205751635816653822173573267750540453931307015039073473418722011067493830434458198427346715576091276374720482326185881034584834400305776251355764599271824266586789120171229482097741945704076612953321998705867047487399617582564669028896280147942867080671537020173084844816589072674642748692205752729570864718759274693157264600268905678563154582179418804974663091097529651878324994581885899279184434882124141390880460127665448859041719330004394434647923374440723176712704462283444690822035718375160921630870575940236833499354454436464480195941733722284175667583593610830131447235740172164930249468155143072358333048872993137469371980430822663053435148690886695430410438090206169575640221942946516881799435640860997764907016944494354167427849699948073503502599021572509099368790638992166492108288095654877522435268619129769686072862204146816910298478765382115763623323552762777904834821467009495221547055207813104783385850452550484048975370640033757582126730064340839142701182705833334528515364951945714729221453721435444287112014014543586542300115093484647465514747002327529237142437775040012236299256890793792093968108293667752610230643429822632740952294865422579623499748575411012558675545418668318700039624005461174460723442062564488978395809005717794815778269051550578759700073601838593867622863446722254139862017613323159178076839728546449904455444862580249417505148099858738945359389066571173895973798625826868786945934283176555445773518841565824747770991477809208128518003376217273424530414057304375500084037041996636459448324714910896510031802115505434013830405521322635753447417329860057899908968051374559085818390893062743784797437043459506135972617531886993053281925355366267986132070408429842987260446989587023560576414726234266196597887672757381517120373802614033506586963790070055674174742569461455946290733886993900554677792130371220881936750819526643789475920920902739435633105845948855631694423784498391866165925473486184795079737099156030699312531915320926504079645143867060611149865988241228119739626400072911546480161415224711302113549416407274573321643995683360299823615564524979021234319249105123902571598468579613868562098777490330573957110733060171095459843260628241023866802338826997233905930114284113747651513392770718549743378485144149953272684038526017061523043515299906806135193332375659166916748943195314809817064529846363816836942687473476913922435658857550893850491774405224854951106635510453695588261643236891967370764144960477856535334033400509771685221284273108435475725761042296004083111133298134958599275574237169568363398048037407473370654917333207436858200766915157651495956136899278060685414398386889589284942258908912720719854538928702481979196783763651961595965430312644242292052260112389529385172388956800768768697714172507129537638399635191760516102417976646742073117373822743125083935714140852443282283258053490944392007281417864974625158055978150142646445125840526966146229832244953792531871056371178332844859156534728566071551371868042795566292578124290442332990829022342828683559812485021323159434076329854384228636652296992690063782409529879003915079044807339927339945665731732020684811715686318132648566414850393396279136834284489926280449019149767779866963540830396249254180752637379521264420621413478721054077701615411453518543241977336278629656519357497941349659075204982172202960917051860999570702345289740933890099415145738374530735160153729007366887408860819093861402265940618033574006981546415827537282394479259977172045211081186224668036671746081981115340331630847870369497629940571002896919061392249692678042156659794360782227041535162044179130615249489008070689005264243944497142054315432243988656543043177643059312077426313444336738012908070235496009578196548571653201700917722137504547689427697193744392657848086266776531735980010137313892656531839082341141695741824785245849683437311098493745884058816366370187362365852956591453589073796599306364105364874697597616115495473627566560194260581728259871836861782567143369906622498991810822864926311525711120393976411130929861679589025755603061572355954358793306658905771308157790096288533168703617852633250166401465628685992903099574443334455905928768394756333266334394141414781476971663568405399049363866898972790281208056133776775925678203949234436518103841133443533240696302928522782761991322281157453869108310250984518306544890556087813312242307181148663408414772762244510796643831529895299187360326340780042399133158816270626891555088766818684726894351386208710766359044082492965172438676407760267234543853361249543648591524898868408804950257607758669822741614050802351811501833825449323024326667400684631324898120995945651996685555698316162414042397308892530864693360534753314130416951747145742278755268363278946663349034125343742736070768193842636231887621000531463790749887131729786920074171514454210319891507107164303563637861210903920405882005077324811799890804221480183018947558971055709833102638882727065041761284878294325656040006698376664308428264031980749258054339815809332762695985296186709437733335868933326820967230747564800694604526936787750506564988318219489382014031052097746593824293032047663650799107618722231471589083483126645639349464131711199986225976190700927114087900971837657861292491120181119439695139506881353004694223961024464766500668312027389091737300325934644212478419873239323950749610032523820381386783109815121981427759388431534169188048963261941288424169193485678009661257061464970294452946093282363561753759478754199599361168507832823684169975824111702264591638056635963574491536008005121674870635943820207387091105757489361436326903867828559613784734415941113998935458969099913580136135085862760708389761846847916415463760148706366537416320314117861863966427645980614688042298229485671942699200525584431498743157179527382908196777583709099299789742448330860415841532239980142824079818304046432162794926633707655751768707345483558412173326030102659356983771688349608824602523528412773761972297242504287257290768284196187159973772373723606748199583195075553064001664721515137243469046793541617110205425488013604117121597178066911467686155496271719703941779658903714587412806082298309258530524540240377256235434709501510963819284412771519190257914205015871890077862429862342643336269223551369370274001112549680615617722913792981043183274311640378252151641661089408378257997897445895861651181968355786152842145348030936032486013429622775120456565207860264438271973144041802284181541452577699081916763561469386481746178891707500322848111711729909101064229514950299480607311410372433629226524105882321922334563171531548613563417577486786802509898294678149583162354593316491958357871764538910272417253502300178306541698599263583708571764977645129661035809579764797752843255861365220985378603281314770361550914582277747606842094330409766459496669229431645703736381048516662268462507717418652498691848985782707979778801521555974583231964657576547497685676987241307056493442789555672912231069497283877843132273536779670499098394337787503756727602971192929051551743510552474934699860314134467841011740316268588358557994819114289634948134360239767203529539469059064309301434194565710254420021538694102399611560458251409270765335873264075731055460534364723090433836849607359985142879570376856706090506129801741023955276540247925164240887376898101967503576371877660083734900097015445065624111614625472290940221682567884388890195515255328398709220899946951170222589953404957331632994634223501205325084630737807844225368422797833292491876011683252119797382259838044870031727672842820812764046939098465854840336800217512729544109318025055760819737425645651747888529238187602193142913280113848638401026998740466201156506486125899590382186833990357863422792574559097517315535302971998549030228890163431537553222493808606583849244974392209149100530676440772001206328724775382256689734133694594142568075882154400704855329503873981294196121273926796888665016122516360420212003765556983588501982600995656534617620071601973965994955383090599161225162823371002736489829769131703479560324296571675949308669300927426387858388980069579964998119142296906303114348924610813979898019022769124042857640625340006088256389876387480163101452250434462424769388204105047062791137740893734432689469735080744463858047392417297959123322943299271069435001313588059108696944816552798400265648859932910552976722846376036372875921475082611959707754776663319173800182795679957388850326086494705000433902787042400071107041564583578098828854587531133744679771116361624015222797448287372876328351566212450543082332671850841662743752708236309017887023360079490565118193376502353885812953219175866234628546440055992563083247001150073063674693311506005495758504832615536999176113526952033799790831177842066955940254825590462739339823750525122652687321651795795557616110958131591867785066636217120771532945597587549809120088935930643569989115805971081602487559547156010416110658786118897103963269954737852415130748261954621290069943119834720973711187472537279934355643145916438327447709308100087889866624606245736339471187173450489170330573460651406810997436267531873758747837562047505160362527159326695847245994103558600674045879857113143810808004488359180606185057908516102013993619765898861509170980858632612538456841675600313686324306011025164138082478761487888540358962944098774992552073357347610661084716400230718346491698093184841022435787889065361591435058173864753536963103956041119606522072960779807071964525239380588409365583653415248020919475723121030183262238254882990041587990098994103725987557522784839769261539658905215997583738774957440395667464293212855569505176678215321192635571187561952593962599870125844223363899673331419825919834072304495643546687371519613983013027826387219861390916330688812587747575550682786083389473188282009591755887438278852888840177782230780079576127687833086582414215817217549025515080310339307757900636849209462434461882204338441717838829385051164675871070120009801436589616930763871154185156574938144932789701633694473815579170753839247984232667259710332757796249821013620474917580061662418611867317141902584594189273201082344004518387331160156341784554431185460175204393982331171054197760846754394265112384198084113058359976289953350749212444098213567660233504518206414032272391867524589291735220700078201618232862090388123674444427671533672922403709815563915221746635099691963977952998289794330239656572143779965697760071250237474616318096928567457320971655094782443362652624332417166320412496774433300495214132710054438941599388265344481082716889732519415160646023280203169736522032400915327288813277658303066756730077697264593762960389539077593804872614441415047588833194561605397608885431254427461070077989109065011418536241520769393952544431630282068746368369699206751328465510307620574763305373920261736996309513813058438438888392131726749949911817411775444826387365300864821000408459777030843217573326465357423877762666075483971396778959423909578014266922638249460905417599900791088336405768472870258421691846346768695644123892445979234094976060669411398403936272189508532289738704029529269672707473907156503094349888865236558068023312729857371091653974140706661772578879000081543925172889989793357322877276127259912429439512441219237354146026380644765276394083143356474724234797573061239214559541288949219349891176404493685558776179213454037860828211885800488704840645842834620153699817535422038543791820279262120991303737861500000447380939218730456503988498102819964954473878424422016781150198273136644883845825451950429621967730764969203173305268427623101918295197773238404816822783833357220318056626255628133599795980184968298947136858521303520473264168265389553030018315855061118568306217673335804599962802027768983193542077123283166330475381263191496813955311437117173520824780290730986137344288633939563160953368971942517689799768874234190129139065767273118415806097222217612670956616462846428500351781202155166828654467771487976749221156108707815101929864496427887982649102748418267770352660053174804142628539467251871922540441574898703760660352825674512838565363711721151064072905381585605922871632141525499610728102993097248237769255877089771800918107257804282700432186441566744469774682832645860470211442113872495878753411176455312315623424326914845822590442493450204490761003751306656329734382386826978680610464814395588583630410919292667930545566316513633116132496792823616216725132689381135377367761037061044130205721753552591133792410710597455784521779075829520959422288999162898916998347846905262721553317284501553891236245640910559847077616802153759210799152601512317058459354835980082944767315149968133941362102770879831537117388243670563923046526814268875169453424752267912393711465571763783426183653545296961771579732252781596923625640760729623827443468683860082774571664281244733612759783772669121267511167115062409389234370783395499822407228403220639143841577319508876679880414151871456745397565789799495062604556415203251535587612796995550724432765743967641635704076921539714357667148931891489636781129362965932289249353370749347268835798266985154056058807116026073202569823556585154812703334192273174785968332404237678034971332484199902309596859282886012971094639211206970889353829013030057411820574345137866385599692577494663447947143400594210314876851686404250762233333138937086337554312164523243900966712199466554793429730598915512117724206084726227960096304243544817437167584349557026565930971235464623047418743904432815043342925022393001329615229412755552714732139223181234062324648090481279039113656697944293819916934997355722084294357783847890077737772084902538434139822136004856513513302336508746147671463567267381785469138757451080253906434027306599366175055272363416265038052520024718472871063354824060466829380141853488206125615852205200626401015727003036608669301469252173062408571126104504513309717730020025427390089557536749402584381153257925505321737614712548072149632478601077662161267417720954504375716028842816966824836005983502056828954518551800880766100979001550179924152940390709878663035211276519486761924620443539682443418436633963566307328952675722573044499362694387254388409525678612342086613761040614025222324226435999806741152393325745118130396951575355397855442050114299472500528894470044940507030868077572149325677382194969096923053110295688266558820704912359407039321782271629009134499541528575997822115997138708228862459876876229634585377733989838922209821037699833703212011758380288317636370158094818466670545891110618706822589030717934474249422135157360665116254999257859144657795392390110788711451492398605327822446583514922203910630190985669262441628444770726394244005391067644716473797593710891746281242134015750102240393952996091821246768161106714103473120413735351100510178324113647821011345948278688208181341274439335029875717466577624755695896870719968895150550621597428031309905015484770643770568460460036493089353809719597114466126244917172557628971149821512031344086737672783697942613927032928762361951982174247080350388699807181122835834193386998249540071617853202905825793590862069390159002604475714951397566190406500439010995712476176594302812720282562197793217597777703493651359063181455956007780837454255884827266115976550783157163136104461486935101296862845497441979839013369450883287922183264712188984926771111044335743565595928954409440499456277029023756349113679932456200614883220580615943385848289476482332651205683574216092631179563674324623227314556600400009841733857866736292063515901993833697467528304930469602914391009002098425589427981795157291984534164604384446603228405919468087104996145719012488163006585097549213645052321943163375174067892352432358997641316074702517732500982260123357284034353163372745153639126517445582895230156450016711517095577830244641400106485741777549218664888865127688132606500827146939171832887989076656089152927642404998330179010451055941851461768501389701822468299260209713784441960521909425553788433346981344016307177004650619890550870645578374734006662553658572212259878356538737228604781225297106090253452933707374948709796905395351373256272703088496203785959607530120534083050514388400991785473954002720267229624988403570959948870757115179916718910023025789178875034917903084067194601947625515647518214685890452844078294325291353236314238619367906830187913410023526295423755045168377040194332964352110990174128553829390566686409149770705565912323378213392697991958181903592633411261553286348670535486646972484253127632215446085034931187770210982286205071142969619423751227471452266951392482079005332567270637441888913489700469635116531014244038026096707393808747683130249053988782533016360104215388470108348475293338609276074087356825575788031119235772780051896919534853821471330177589396681808431561793051835743148615383248473005501891042680420649795518173299010518509229337927167040920412844400900207220044608274308052530247599802145567098645731682194027825240789516787784895627909623018244741812124189010711176969916705035060684775169237413394665834988936181741595396252153541983043032878280431530382169709897290082941643198364463425021428592312459977521638419305967582697438053074369081975918462886806119566549997575249155910873072441834194940807774198715957059174684665589679538780746298482233592620957677835382539592630070023334159493077105626514435480091711051359492067589177609358916668160933324770775790980674948907510280854322726214374774595256999054000831346487806735776842976122886090234304176488163640356145044172091426092394160631071578876918581485852522812596012971840939399746801196032345608018168902662194833590910705089337397791889298224332411419303638688802488503906264662473666016596354273876156860648226739100825264925992842207160129103210733193361801729445824543608046804907165248651204756248470217211765157649487462019708328347253175387107734619339660189957642305494318019176042779772317234978885337783993704695617614976194401133658543726279280910616738888836714381353558335341062677607961114492633532259225084812225596417905907324932262671050238382271567424093797327693440550883133660939155243084726755302097085255933450203765931186450320460442991733607030383962569731758178748441621381985160952568240579140800533362632830543702828004231061418789890448625018506892969508910116712796225344043553851240962055019627739416574056025438908303785582871629685026851837240692872465454011563809879061228351587098135691325800503310511082728073299284645820564861107006828354804116167280016838640101508691444849692201264791190883680938965664653135908241117263658236178544883907026016426673903202937545256378338248882601104959134273879323587332390395870474077196647572631589049559554050460315937058800374071608048342920600159571444099200873838341180524001459224386119644923463339346071179873791143355009877197105033641287775024842734819025836220522894882836646040116921766110624032756738115355167931820601470088735876194828409078325439297482787010092439977360769140945580908952254595913001906599046043587658299682638526574685858036983068221153755190746089003094105490007006302623116834517898653613471909299011263498736397616337429586413902768153784008551035292634912650051367887571334663117727142433294473669302092803270249866475603296320103191302248163059936016509054417250910590321063020150193152601745965995478829643513047629788976812605211111054551265191027225869760325920213807012524696951141711603756882171767228186911193206991579213491635224651435263796277202830463070016603132553975497732279224405637230074844660026875508216156584656029872784659533061661038470812524584032237147370370079426711577573571483229622990360662129780776816943986807114910204797590819386572267464839283336180953622327341992693364167041735106132169956044803787194517049642049223746456303310332081975622931996261829595616637212200395983937401493374339958276983374611371705294402570176303304298591404136586301419213893326434224373536746674650096811294631448358623564770207419959525139631700952072247378887102015003013178297963821655928375448637644501708618643441633422972903344792494158731366963032164068326951492366455829541544473240324751759878540538067947727508091126441276705474158097156842507429110339589810414094650757504722075740162739255603060290940074100425485823128397795132355446927781314694021085093953418900273284281834699411555889513356783924406295730565290379972258497864439324711566381434975201835199046730536647063733716730800144808220883115118388351295585609286536544186873056043300532103713479828677045606623787386434241276619230237758435391279306250591046352855991405074908238513237898869485552943077551875059493290534652802307325707659960276023878833689227977715196853229926661601527756164075590409749754496414711131645206302426455926055103653935275869860032917061076015697350243998725535740309138909642796062202351086649465823263826896051259182340464442520095013326698038948276240969871554142815988529230339882551343417969307796270821287611036338734582786403667872901522356243024331538772699651278281819235295089858979641257435733793340850907307617244555860196508770416535965251122572421346433525600290046070547608715665580190093878390753455937425117980957725665988049966055371303260731908397618849101120712893521060756046552149088150693432125406668832464614268720650969806160856204637615904200462859855265667613164588867998143679869191785402629373023040401570421716472895654585483146516819662486931018795342035010821828886790422099602911213654884753833381436863207991452878810728695293619523290174817389432388385468110610520686885586885915072462282176295242053737804074568377817135835389147068695851361450624651376090749814065314920338083722305948704669874260223724524372977160998973317767773934201136241448982717043423922393093802549581053407186602439526111654483653446703117930873534343610015015212848206361673226407893228655529271047212070189128912606634895697252270849389825429868795739172549105865028032069782850089960009787971623752650218683442588873723015813964925801660313083557968762475615627595721461923626233312559378024179786428369057989383813648085249838501706357923894494309810597029525535305555838022895267887393029533121949170705830811235635966999169917138554591797043304510670248024328330477699978932366707280610066344200920020430856155043895763640630125786503558961177942924853906645269555892006658603820603616513280017539431006388529586477609363547705624142018736281070851364690396572546413926150310809064952112004911527808048661194396738567691422588879192965357144323479093991392082634544655565603129276545684279895840703521040634841574213749658476370788351874052972380217364954645077051972877085496170057959483576701844346366187191697938167398425198213674937708724822559835970527697905465120501462623890135064130343193164911939013209136036813489147114015903711077140607114470307206518626268467973125451898735440018676978125630056291812539917982172655171467084349111676915248418036053747113976543267856032288676175476071492229109132560889564976302940760309842591796948764690925432591016922598289802071678034031284199905076472456803359164356379495930707628977974620488943264527329527978516314699506668475309540627997006555112213195531878320162122953132615576578637486132671078873005275361255164453153621785808941721268852415744583656797993198529874754116098653619796383158547385626675519016795293249451422248755664654756449547489197537105754962928159140334451274246423157798269885355286352475494575025731827656856573468253887399546810719043998208987908218563620616460116139117612603766938015138238652045407573649519283322993451597635922796043908177897715514432136518850836780708373681247418434759171237999265398084356666943386716656195209915576230009631245416483695499099274110348458155551834033359880148720621931734879955136483447712785987654698717492353797394550629769318675208406321693716365849655751747799839464380251419522634830876775459154760879335816932812664950721251177690690201962515192276209700581144089092794389293585732030024444604134771857587227041521269145614612894571376700457637737311937570780013740175523621414597855195144315907425352551435699189737195930438899643891701559281224764152185270268415299611362683125435214993356932581622632179735076090187030754397197889630694327490437631709445989535142722860098810266141104048616101983898283915964132120431007025648800115207093092731824598865905534572489247398408042744522435316061768201778544602216984532408854536780592810443105011317686622585360047896184372267269505940406145674901884800346376940092364858078698184474901962958028583915422825009774890369706452805732885459444971838240355162815860642250004846723698365273876144856688501298703555968379898514375486590254328857177582146315899116135643774445006738381189757923987709759379417371571906960740988346144727563424180539182185295399133195912582210788009041127762273690436194602539373128339737658120490846717235312724565671975332172685676882195986167257507341438156409156073221474896180723062478616456725696539039593440516257770516254277022188715227253115682798441650377020565313013156117266537910317869566666575531161964076331815360715565456908656217500103476799434120099282644403428949185034493236055094378861774229786282187549763568944233755271191028781690634349071223083760544640048957703860565107747883554297495172482698758642461555518232788149531305653746271153887122681724466280854054415355317206968176615542356878136465290359060524051551620969161892505770486932898846083504589005309601595220731992035407109476450731366434238860072574522935472401804328362080185663807614961835025623892074145551028971613906396651843028244671718636690471109433165331266204681433894179277638389367095938273027208450818867936032685053475704434752289851123677767342470604820337138213941599330825571787671821935654222982332484743028357453134406352210136819480469233517389951326804724043225508023553176922888951524757393448047461793575824178139807311191078422721064883542755344979757445270183688734092622017917252899239514944567493140167833584816021121669300379747805111140607619803904939447978352583760110086891035705525793215132533358764931785160688475530032762269813234529092304075838726226588699192529915072730752206317587889613897445770153542588311125734852966560606968749508629225166795637595705107418313891867686953263392569209259042106470833470036788116802266874931170186642564511084882063280789820996344847811177198322661431957066482457659584939865179167337467983005758619879819487253438793804830927596792488941303893012340963200838317525088629605160924030455732781105725201907294857313989318762385007192121612429674215853097577788840983117071609387215878395361358746199825514258357254532765599608241224805560056815050125534859666760857956234522154377496853587415639327168816248526535155738195536762896321000536918895859981105702503401490006849824113834102056543223608031062167947473189020593191972399001253917239669130739061512149053905989713969363365401446944390804961984524029454789054195410344209087908245183336605295251702995075260468899201662819628336465254784015819262788541836282867132895022878706422031061310666934385054053007166763310728402105326484985765270370960039026797072942336991505340987725504077642741234366430571064313112405904342103432504478558907297933219028421728870648242614106607745065375619789942351897747989105051834813549691143461040753331107337828632154525342445082605792585121406520928939080420565926241842379674985079187331817849069568541010499505790488066821645520867920050120932017349092595658726420831830747544949251195412044099377896986183736152891272652961375421517050514551106070069553057831648947400646662734203215501661841535854932536824210592333061196961534108275655363323424570841850780959061107580418314292194592205105372511503266680756408345437454659337703985817671697903146011067057931421631998896170898699713418406338863648132690178031623576581217265753473371971225765391792313373233088995434242312184603399428909360829205399873741444433422711921815097426504765916971997407312414388450946523565581106600490774318820859967114796289336031683720403200711728718654214605360470148321741452965613696688852388476136453880888612017027222895572454366889643352175165237432161279388295650429863087013812669810984706258088235871202511718542579177856342443560240575626976104712107213816899652757004239055518432480649287313597219868102030067182075269520033541522042358165456795465582594142911061287949783661762067410715309305910959437566040022916840960029139096835813706137960703574657848162936433245206957034531520616502571829245803425112143253998339057588162765522912653340159980875058103351390707373215135306297665210320062060697938151121400056330158116391675052444455051187353858761327104233287405409503623077605646115907439462507553721290578632496230848452406150764244626937275023531305119701154006803631703553639023609170871730167238648181038836245621293517442189714865383086788463038545934976214538680478189590564811482322295416532853345795907215875521203211342337931770362211647419729843870106475185055142541093373379114803177709534131738730977983204691349311660583243046982054959687673578507662283223072280361216045211802579015663713770276269649369443702470455900990416327065494317023565989759782250941992822547498644803369090529569809644535722018960489429583039694128482801244847546596709010481972045102213717557110185397683150752746618715489802124958136469247241043182312793674643024089057553977848634946924313811416328277793531999235461645678383229328590688269795315123329769187921166636281203966466074476012949637141617061564587696173334513061750603597142063406635854605662893668142343299384931991675243925012724531797558542091944833312931985068205573758779475686646830512502489743361709508026227157697035233244516038903705806330606370552815411941441055906775730242192676678364556259471320211737360814639987480756057781379422846196256963950012381671997299605470847906590347939770953518897986176290231787209335170964270283189079394272594198915001171296442551375365398023101065169538232005005590064617910826254464781135824657900530928949979417834962901267953769921653762166718398575909648377140012850531186017921325698992760398841065982536845365163719206036782854732546881954420247456581305782529871345895167806491652362673029799033962040040830993825662379736039367248198423696357087921273361045167411075481550516055197743624080170735671638951974427249985103766409253699604253800324724978311469857695155641541605938903436605137973177134181893060097966241116930227064573896456753006219834764104192587720366207478375256287134248995226897073376862326447473441008066475557647054416442201834936348927552879334248341124177015797325608006700705921460562165372543048849948742527538716091262481586597118287156249021303266474058771652369768094550938009328004542120382486282399477223281798978468901404686091378299947212244686902921101145616143338404469524202021116387065351012491809530035738558029209101507554173483418389874974569671279350910002437154881668207020688688021001927251214540595979954355023714101569399652158600945539336770890186955416332861717796845027939065780312258262739349547055221054842358487989600104845301693670605944248842475446447665997936289949375737800425954156684871179218132616779485476432552293195442496457127274103699184198108915257140267228486334827335710231924116554016441988315848547238306589300731177171207873974194763174317693676873917091666570238653542036647715081690011451952834904308623738272340322448853469584424527844238623962245772743513304561681735180743938150361967270706086049692880790113088782090558436531410291876609491269867816996882442665053636018276667742104112056180866373153140179110971023337358761054526084856124863984414392324042389788341164785745035866144786292575150861881764499832151993895057995523480708953264857534371838940389643606464799935823486013959045734360933522957223016476796427363868921055016578002887593318897224815382469812107702684186748809280329702468916594191188511316102825183195451419201013512009558645097705605018005082859015682808067322243892724825782531511259919293838575581555028232980217401954620857827598464614514386513267486466825240673106872049886765800193742279519926415245969942450495509648611875149623763712995059453650994668993694632894406745667021946058183161697597440218384394603668480777748821670509597336563380315630865103496341962692734158316437110270499497182634141256320441382247745521535767386654461445610619380088007287478996401602823749778107225074345978596625996762905836079191178383957797168791106747561594126031714044567677273679544671571158048298239495293309199800165231213602589862066209826700623178996002322172773938288815092546024143038279987319367618685239367995298318919249484315348348853537040049038652338915751146364516921518287928269312759147126229442869579003649087057417708544396645970393883771928634991690809100314901491442573710667956190945863356925804055307404519896181420572695907454538475838509671235576749513824261452051649080607036784492501135801679002603550548996588738615426239512669540381650708396676368020659754571577591090407257496060258392446063149427663354775599178206270020841502506363359226184477617522928043091214772285221277629638523107539106838159261741765612941096867480982228773438772217348651565819440436394255413719558081548245112142555683840035721530489206768605072186400292367248092845481225025901235265651514544773096827252302828696752229543551239738816080165847004581357090506052881719310060487689601654708062792121524364998202956471922522803286162769541908250873341592830502653496953839773089455523048769096523213734543163890864231797957196357932863088446332472684278513662978924351824140806794113971513198840834978629833681591241506535684358870799705022455645256838035684043950616431738756765399333468362681070156529561433596122738085840027053668272156370069079462726324132831897470807281187774986433387169821440768222527260414527565019163754606909686031149529451985875774666775100980461567290665817703720733719581389482505932481086190381536311068892881904398293351538146028358391463014144624149465377081831477969855632320360667412712247281217149196663803134584720984702752060751893670092458697603451843029149424407848277572971797776499208270905566080596090853570433951558069327487145335789731673797364906135844243955730393006813885377737246004556569461799711550344156572014826008553270908278758337370967331507141545838732115076707073669696871327970656222095945877851197161760093879902635851791676414992707024823229484335354058800001583875683996861541995700406708044637273819113355631400226517249859387555467081174923568304689000645434397027979698708904062421272889715212422795168008701017375041603822191297763706581863447830633675350317558889132462383955456277581212996728585650735371918396589963174487793195098330482943645013780969796648848315257884914751786109585958271693278119483675193809537191057798682652872220376907285991578128499775385037454040645682483315290385843563229268228323230708297263739348541115111333796012978606138380507628473295271857588190418736422979058885803480173460849538397850832334369083807625246098623160003979872870404778027000596477230128762921348877503849518785153153541446666204750336283700427464357971731168539062744335510901405503795391545331686821813283530687088616173118908306419791671075244353333929197214643955642247284535004023069316339855259785525135212744814029440126888956475823344183535240603951291384644330135792902838811049799323784684091325688626309699227492658680476542486665817422463480545281446375028176345404589811164339804332387896143936209600509289341758721707898122665303385076780618647855367119202503871043743894262965217913555615462153495662095079360118783020580789995069137384408250126093940654020838468356674859561050709576440209398844473308376895088402450603852932633649170546644256662829550405677805929019450847712060594930688314351430451151350394235049632453739371898926708112576129984066294821147540121117529806750883239523375943808797633091722584786716828254964553167537242454273765644575198736766334392522426612950393180268552350010800635899077129332843095637125777037215334831108685772152392306972986256042387788328098365721148021035259871889808010920324622224364955257097036452432560564134913291330087506036678746402536461157735787044272971562536479619599659630370789057594945140742111985934268853955800501987268782017854118390682847537256413870362016755625664653242482752072182880843584371308666674028473057401195046569665913954744458263103130435777140831348261122513204296237791317460000319167334214427062567159850735970731198961508810885373632963321850374762108301686577397597394110982542623617882393294135115307571445360723355166797625188816708026976413799780208705200998539686319565551595057025405531837951352450143530896753354726389481521112299154008597373157834555007859147659729419856431994196109973236157411174457923913129853605339740792793235042260438397655925212716912862347142954176471283896657217412754535499892789909178335669642781899288776054349177920453274516242684174859055694170780192316377370866747318445099698758335737783106562289855510584464856428931782963118458609862918013848259025627436878844243174258871936341414972722624397837549592851584998651572932501738580754162996965539834365138857148927099083212411429368525479426497570709307685413531672128991179775934082855215917378307548889747353822975531639149886725736152011438824377519408933409659346984938172917071186963763976390057749902790186431756859798527571856396086316834360267373583253502146564197614110686124429401482028118310852410310723514456880613704945343539695137214939182504884640899082840546327808631415495405818993532136590532764930571909935265026034682273884624458177629787852943244160631209040727879726229756708866187201297656221926147235898793717717299386690391473818095737076659949087807432543727944618819601710831257769161427189455979384679735759665483026538658846294268603594318606288943408256469052388925539069618658628285831205125785597268192735732969360606222581756690112218690203814304747983274907252201023355178876839958087213252847582847038588746391112133946806589509654297446440836646043749101058161646105189392055482350919681190679811893407056223364805391352479283717920299020642370175554823949969713858757680807327374205352012933406549404868845941571432874461207892784495529358922262944365417565708317313331355685572365770692882728766036979749163277175124975645154255157824567762105530550832755010505310321694203344249884998865355446078784375413843788166644899732240554703758504694525755499069259701530392642885776302616592300384386862414692364844663189277893316550437450281501456916714483841952030978255723701190479128699642659018858515764045628845797327850256452688057861025875539675301831101474400543083719336886835635178335929637510029307144042665679606211412282098867985940581764926027109426833092633131467032542964180166449360697637087498497272005746186074381297068258262046869606384112221717679154637648951415433483055165682580372235364070274815670008558027608482604165784473277585513008424402672089426762926342743061683241875414793903873136486299869220689208450792522537542523420395464191247296395947020204392657968396527152788765412076980453508916510775292819759263173095465332363022534017298700779510005639216883138165309763838940179166346306873003960420277312509656706731700717894748163802520370821652040652238123693144459512163016119859766876060693090587317529008089539002923488581625519430975640145922499697539294208722663631945808014308076378561587669664867034360192958405921591290013242836721959952903103133930139775353028482862585530825116873724067100124788108196300783493242746334889907344660448041537420757941889456053579517316247581486006745263916067244082875383420722165146405837137172599523420778587958939131820476385619386354811305631221773001398057751060977703268848853642692040398327571251756544083418186041139432851480190421254742974325983412201074309431568482648048067123306527620056595335857542323746394611030753867537912786564672848239058092251198619141025844676802367213728662881104680805401819101228689893850729899055128198537098734195052085188857132453698672634402833440444127758115187622964658334772561868534964449160866082997197077460795609383382524213929056279529739104633552559951785189152370698089061934823826049633205012703857002260433269927454873205958594583133942444997849803602914405243657434890016095449951669827388566298318495942920725746509098916407744916661579848039570227236198512696922619840244688613537054365276495274331295412001412864553217186163788833656682500825469176641025017217228201662531821765681585826431900184177099802412585993849958162087590440584412380051147197593151186094786532159084680197721088443021491398391937034228764750554687290923706172725117593693650580890170124605344941393620130429652275784776284261943915863890481392749324772649080726165152731503424297947092302279662666209118056649647174875314102854834296680101157683142862217365493064181090021282958400101470543756563634214450647768512705813691876562839999096010016332993859785842003594578024308395926207310492008109106591747509589286090544952831912986480768586548193876074702953226125653531541826958387047036637967869853060917982224178304936756910378086211016531607587098433594654129909565786892672525711152877516811886918005257244081970302142386294623031319958748020757819579592336342208646315014573189354597982230511136041871857208986925812507209881189124743243632146755215024316027624868491397464023891638177685074545981519121042942505882065888642956958371329406859300766213675369167457262600024792516012372901394852132348616111544142543570905428980354798244886382877872577169533619228523660471720873945214209949980843818213553626616503462878390659414181569455402491181447304325392907965899644659347443547718896538087366936316297014842332784980229804689446564030227136221970859818392112850728308656072937356036264831546839512955887553932127189400557861448627569388060219811294602675809892710381098350856768054645077207168525445830128606169262886638444018786447404181023193013806825033123471488587697463857575686471864078590459434476458654152742002790360297424317404815829082008063631546734996168548286669559825320599034771445722637895399672111023449218624422995959766745825287260040574078545134838357068331517649414015358987356988318887547788848437162502181736449682022772604821522245415818251399652593305581553378079623035505149225403492561324140574164256166108015630971486947179615967510827850754959530016623988027562495290632244944848335917935796351946536978520028498964825746292289854687991277451531533019362402616948140347050002745719785513110703682101967921915610970463858957605732667945630030609102710229738581710385979321295629499979462602406313971323196428465096750350580759522726729619380495990288074651476630891041849218098296868459122052065767839061281799327039266558370254498117012586153523161821360657306063053069448250950615280998229932146883884051812675009775280872252409250726829970893744228495641522374378645461369183990323656220971644597717030120489525204637243371728128308255797620347870459853465116200945025826967985497565225958954489636932455131604112036962858941739676535674692278914182723081299408514095525249585406464970160804164845789657999027156810185736719202325477185544452922909812634320240530411005061027030884836162761423548360034157627747112038808486485036589057287617838953605596252541974978784829828083469372968208625500442078008892993372585147371903242223726003455727913658409317956504751730483196328020519467261610881833719596746272282890012097649323559565560399328647371055947966235530306396255715166999234217829769351653978976286551207791418927433840335890247915528209353232121460275822126029942579700183015650399205369131407509418048246338061683369566877883891268326243196485395601247600503365713741810031702535689013845285564192486208645117786775221656406053232670228074423007468393242084098333080303915700718905851958061269946509206428373300065239338757196243938347594984325845096386171908668796102710688922550948679659958920169950755724872399123300957806090479336220138147047931799525218890200736895957190553484931315274579941062735638088104553053875262477865710329762344897801998078898596116811164397004105341333767152318263833936909978756262509828661905399254823193282070195232371962890943809532829309917726244098746432356135940924724532823409145618374096290210201347797222366381234728225614223853132458428339100047503091592096085468015931438175953803274045066161232981088560666119084972827083265960068882727392025691220792181663490696157359960822145819607993110701633340247234357165174027264893810344868071238753420658646339821966776150368369990236701811120666167867656894570449473698778442455985624831089014094327415930161966860753909403545948389853284734339451761021038390194183191803196556083779599435136929262703352627205339965486442780869489509222914452509436490410185005158480489060744930976108243330658994617607367611269583523572633015758972395200830678981513852138613840623247117595968910069977148741232397085254161606739805863247183609304075644313526609039625381746771036876176563264726686639370128456589325742268422789229185260013295400012427337826521663168820030312716133964361752791280167286381752521470839830595133766401016507697898810729368506098851987299143819446896786803938783237198987634914884022488164918562245804929694251508744414717596089460726176404109455354290815240329825599833837442640618880604295160618716465036429094961731131055290313885172535434751321857247676842348740822235396459692221313215245279464908539974005030974572940704283009077048847292676661443053256642295184252251858656722865055977748929670885006303796446707424428850591611812607907793510078890493495925988912953133391703129433716694207697233217812823487990293335309388156518356254479829827751955046876916941613322786302478607153743121968345456841328749110758089885710560437605322387843036739440581227275248306641732819594245793073952754868460237448379456877848334799566903644941616777699267673759073033233996412630581083252115193252658148896765758586748305112312962734377281658083893802026510374140879279690716584857447691922246398981294508425810146219278851978858838823810997598455050122693961760931857648935692069971438134332547796346305825811008757194929552082348462054859234190682070741820566485449018534077948405807263444536675091445544492486114285162071086174162038876449256664883132708547873896159298369066981503913870202337884067118009637240495195142870981280503464169807170381684310700595220327598144985502539740312334084332772674795419812942411670942675538856372299139020303330929066030075674302349299397443605482455651984708575849491053148445413158815635755145720396961529448762933940287809507849259820568129405599733518444843917037170629042980541770029229361796889315994208317697644274413394627273620503875412504641710996827232646960300638710556354637362272884441938769282360803413276887662200531977819438831147930813042823775727461911171827807424386461489226730100222924937086800532877118540462835374530147372695008825864886240334368188491333900121204903599531204652824478434952320203148792678534369643363790373393502350287173218949627939036158716828538999212214603550331986435148900680564546926964781959258448380220322510635093464317864585919321153703944340061779542528040862620268267959632752506757416782172643365184543336240644351939239688904154421753275586296725056735401117484851518825330410515200989926989633508303896870204901729405615712306081192130400889020570938349048497338732321893284866426080103385400694059326742740293869858955961629288889489730484575756584626322775409032317689443069457690059048395980527300494953406721372279469968916608018836315342781768458027428714403009163290749975068693665662298380956200813441050918176213548481398827474303930370439438407337120731243506945519491439569129313511523801332939252614221299741977050417693013258796297247628220953926480510525725104844604243268938603386537280852257325791327224959315119978031214338825178678080726465857752536819618286873176413062178096811478738977898057792517150985715308203113864735159467030986941064382798471838156740242618570825855593998893444706211591222887028807555074283596367406131564130461738343677020416601643417208143183960177145097455499405348154928204775164277476779177940704252565368107115607152569991530741715212331195999159993582808195289415670754097714090622315962185471482247779081101452718802824611778285304735583671116310929992635725942839057125701864894936497265955426421375349314295813586074117494996008877041825659626499701633881989352777511209044302593242143475218518697804328128158658149247870071722432583951660830899061903052318521211442930313637813846588313563450051131519433593396910458398347520016669764223068628433962010096217966123051257191162411334446227047696858110016052006839459158988437409483344490996604282125262988517615652740709756713068346298640257975533236714191134772425525151643139533779406711981506281311553918214511310748767679140966341399354847666655761252707057657836398080459097414944332863379536387234415546970642435641269634589756015527650023966448804564607166490056422669495263874050320347890495054094816716226413368574310285821902711226340067309394144590492965528417396697449725027580384759899132461079754222175639110156706118244431546547218415856144596691921243839755114867786688810408321501727503384659292064244277103271256843849031285918480821674049395886267435070372750004123271642543491658322180181209656062723611120493869521948237122482804572271013863911554682226033108229419785104647111689861409980982933775093384023185699139432674035567478154679453044830476921985329927937157373376415471916163782371087097061265158185669077080760434950744637557165611943310425966850486922216236817847627424416196803754125581784941183154168644996142365123617905717762478442623211503835410179272201511349852816761956615578454471982362866217983209038392042883603845893281183939833686260357073708897176508801154186379081607871265639962366786979531899697898502455802574648326368802969448843705775457656213076063995128694242451339856030513188915578063672196978813875963601464964862660307514740883860110674518235972522742808414721149465572895926903606085846257239971693067869136407507198038045541309017767112496263807821511012720230836737791488541554955894395589562143272122325216175584599792787305225918357256831206988852590214038394147036007220181384008765553822048351255348849948413529266624661566333728577994574003338759193721122526350041051629335410465139973489915630639197919290464879261859659609644247700888320631124806710355322470931968089644022912715249279695779140937129810483841214346148693878996356563543463470451150941632895396693097833968043052608669298093724493704458210354033890191200855881387398339718493590457534294912733299750487761927902278040675904091563836737399308299241614757965921949952949892971102511956034793966955069221666532565082061881490755708839443925573061027097037693271695536721683342726050086442439414692963430231618812078676098737831374862402674234974315472046515493399959741791935113402085526921258947617368545415145203495122961690439847870796972057062456284719607932927695890887678246206484838577347846013271480789727837279000600199290139371548271785955334050360896780829879289806089290541662147821429996139265662074238096952438263248107506916903525611749547325991989844498323435134511203166947611034025658666939164894893715043994421392075946097202857907628738002092574038485786635118637237022902856384422897162068990606566785687707896181784032318505337861557638728705018482464675881301951029773536078344764396398771106282347147941535123628215417349743471333154554103188403005452621132855412699498800970317310983853994221778412851306213263035216136715005820517503167726244421654409271401926237105993839694824712934053981858369792578766676597842964176639405850151823734401059375975944965809899085178130039925444628154778301073457975248568866370276082962250688664753968983607152452166852803949734628752007822674685771133167933003502525703363623371438297363477149306976590472842683367105330206064176079678377127025247130361942522818231712897601649903188542462422481614083451002312675110056792775274043666621827166965562293024599649539914075934789973038076167650229987605665688506193144271297766113673157818020429724714748248196590313829831710569465234129573526864857108800742586988265968737372900293233413564225173461572783489928419390263522661183523469268696288341690843203535654832992499837718897234126600182324526823920977292740570556113471688337172023054926357407954960788491674431275609067749251371708663121709029709189620482585381021292842211207835209063208385319939182507856104877770233662828167713798245852906980565815458529851222472161203347166686003506605018438877816169543559197484378013179998929729588557674349174887317397500383314488481230586520688736967219679318413662094590951942029233029475022385812236137400197463643384976744228252006663352963000679595593494847283724320518936460034265439683980280553800333060266635826964643532204230273354382811068025987519324096916887982629896394994529537794219585156318992470358132995377937906892246839741035065317516274727205667068034673441101643931832712924471160203956280222476412168039980878839901834802437348497014685633015311560847277294019348304508829292065985462606816193274255652555952497636433451983617421765513258017975940608433385289181907184473222379523355103443076225718243860315776618430845597305678735289748564247502604611148312361910924467619564396748028204178809903028961226919449824508466790528432382707797605880844594096048214297503153307340371424544907352876776861686783045217843474367569663498097014644920398994291058801374027954795858521097709858440963038452360417570340522063652759855462771082190871265171794101530105496506214868292311101969780381350604774938976187428544775225369955445821065675569433725007541868016570183959988083317616869824264219644482127601902335249240868813334335244018745366687813396350552459209967763939600714096127281694151221671035942245145695646009787059304410679218450959565682093149613999982115920830840469925782968666343916784431769093733289421854696820656516381548057441382203533388105638186272997283799984437171434800397532835811872560533986365832761869087978895149838315672889844435925668383946784446876730151583351836226987435155921939010554115557396388672496923115726356912644429043800987509340428941084654050222868810261691965973159921171340126006706993053404687680105411211378220923905745000908666522412910030919086208261568370487133204044830472920748418278744436932900600600542016954724388013129611079895279160796402189132579793758426649296231976313768869326440058955783814035444404018783472466339231786106502978533966353801736269259120488983257903025696002216449317629728509736538647917487675481691533804547493912479555017320612913908500006010338127685668332080693205508642573334175097817396050916777576760717733173197393006194716987788094478297621306977405861345040521350450923926990280452488472597610542728270221846513113275627840386684204536748910627044306280114480054747339549635535778836653220839364544057052802774457031359661716284226070333408256955935266011643677082219286375128571729839654358121670796314093094808465003534478746722839259896468770734337873294883369837786420098694329350655630462446892650354176893224229482415138365356169116844746578333202145519298873430140361742832348795336389609433491655752643455067409020750732787480840205399255336358700438032598788955257794991700097996331050525534499754153095909349279890888029676180666461249900291273101262740578145631764071780609408483892269765307307802460327164623140769947800198606202794699250739404673822459377168137615368628543199537160290427956703225624692282199902780791534996770813391335697785882924700899863198274651952013072394041229243212406884723051192503100422975010989147151540886503049811481192621931559012439522914677698414303279319655592971263197397642987845626715027238645938980798563605354506498762407348334371483356635230382276414584634925719230800345364418880394613653807483738549471461462638353058467738233501409753138762992722718860898890553301785106548078611420481486678955415871702668684307456018244409948465670324675707705943031642198637970843882454203600321963776396229347345829346052704134916056328938023666283925777344904497964241800389008566590242393989950939088549794712974562382661735154295450455928776882102652469275066289316480596228344895858074978267800425018079848084423815017534573747941780644917582647265519627595435755151661040078469704124085302884581051083723309243466140101188391189047260210532110865711808358684572586445710151636629614849745385431335195752587240483038023375990977912529422705069544788175746253809117625398606474281019989830280693251156947436410324199933209171363322160890423822833569429329484242908429996028187549986666461477578602455929160990871577861246338534506979783797831060473751216076227498777902563055581679549802789483095638882067450811513547267855876459593838809231066919282856152622767880372356691293331394573689774241047328127906598888346905618619855477120648610562726871817719965426082131191055481344198816742873779562729201634760201854080498390092512876605666978832532365092691873208972246383324484018880641801805815193967286474098283247991248842801048295363378870728025955129044774300326183342799503399765772986207267518924815049368617259547161859963432581458282042834484504033404761806976225310635002646950999942396267904667727380486837545689865974899522253619813513870414030982522753470004328541957512206810553066974872204029947294787932559994994629432067418445815472443153826488873358948946646939097234109101309817373734771664393693982533052579016430341349379844738832380302246547539185347348016056337896953874289518860376635402738202488908485033772323583352125247953499133404133573817870904687643218681212855965729449371849697972185369350587172498537474072852290002000982879521252029027156546848725983479914068147651704576900096334886464709486837249443089493623059884519347872486165604304736274129329927280490591661330223181651796417955843508446493020139755892358779916518612117233102623549080851525219005157597298238446865982527618884318540403620156808871601371394335317872822425035015094392813937123010716984177473216786764871244468415653802783332937078547002929027043488828692371551006976178821284887424750974548801305147308928882207298135518986257099217714798941871124471158691682513540772640971409711483145367550239492674399671252534554479363247241741828461337017428221509049210063609839121799112061141818452384304315790378971763066995960702045741381440883812178659260783769589831620041034079857306436366408588140010980450511647642015903164073273725823938203545223746143631416178956620241035747828993554172151419340730910611156139883654934308666317100063347789862827172812670866290007576883202675363310371750836782075560046677479664779083082169325172000673696080366114337817926003344133338107383982730441459606434542328553972993150380559827122359178718652860455786376891608288043679047669341208681941554261212851401673833580044809237964233166660604481888077002750420144389928578223963994387359977679136239862711926217742743081195602517904094428469680349435776529171042945675694453031087544050784572550870403669337678936143632298180568088943463266729267783154120111254334953903311185502765962425618198508692588757750337707277114184035391378015207597387953276854421872851906364372201182773308241817610272900409830978554593863147995903937850045630030153776065563226189307874712467589089976920765846573381750735637401723294235985316594223936338151628689115092384860298178388476299238714259921879261634896568355779586502732706785831152814791958832440865525658915247874340217673456309298802200986066906622752130801981730639564702434646330792068031305790872351854081728893194910361879070077779779306749451663414883894366016660863959552547245079073967705550272556852713926152843566619173849428659376888295100154897241417784197280351958256351154181464163826175721394087957380447863395045399267728083609492064850400722297330398669677357151242586717029025780797328695127497371337663389002814203861787763573629438914016705720278003620614515481214069459791693095261362971044258147953021938109578026744859685761603512800918104422555684601715630254654356541542874431900107276707278748481645266818030054094980015443007535610114485259278303521107004017398466482596188741334867166904629619461491102181475355709223586783286046362271046166538261057849083136142592582637880465487626004103815421401113250956574426429298725764753445200899196203084422745082257118357403758045805811821943210962283096246524227432151633784949512427697510744698011257843528638998264099598935375830208637418909704568802966902330458241957664297337327963213035994388542580598164806098192923286130400201322736145821010213952050184944791789168953918505562219841626496155838188822703867022721354283714702824163833691673096014990094522094290873090893832653836998875064585118051295601140990520084747037389730776707733125720982282291653249219257463369996833019909150037229502017328935499005306362861668808632240208394829006517771024743620827127205001116368679064751840330606632466497179505518175169658759354906752629639141380698946011843245817747111126107173891621342172968228627963822009769132180577813334052864461029678531099122679887131900041369389577220482754987964314833187024960830048736757725578685895933366526973316578782453022463829375836216290579719365925307224839890976504327278534635744057517628100738255185152556497409596689943104389835012608457853474106813986307500767601488867227646865044983578837256376698697248752436731502127772544080079883913060559212234756959136961480155425267049527058412744881117427777016248782996233348798470879276909015860257269524299598417095096960069523782972789645646525461233503022450685346256477205056857149635095047983060955694409563348692513454847460457435679492629631520160592963637066525841806819899158755522360233407063168486929595487390740472240937834853089707833876148779794038558763435717981900855054099279185535215705209366877433841517059766963487818167070684304068419821057359592824568643500455905307704540386964393163240767253190412737521662730941142228460846187701781997931920417048322104930414806715881945759708222219318429240651993227618555295795927172791665310516573650343773525041867298969082982428923595704485400616543943949814169606391459694272714847170716506421407775503248760006966057589306639463796855156078875150684802817212295470256178628816944858022406926063712156827683635836523680630638451683195683338937402373390957068693079555085525978691651325715984612479550171020294118114389333067879001048268286243079349627151794832856772837943272979006503064376911149883301519691470223653916351143684944646535246263591481475350842980190654681679680595109433527377132341333693526616423983151023232289915205559691681382178952434420323652652745959158250131074352050623623388583803477881655449286228354016611448766254553216244232669317048098960556383649970907277472931010056704919283608745515168774772450717240655664960208478083601928892869525572776827324647162319764979836613325946195762855050524084290845618806332974421913481026445619408739988800109014594676095336912664010021384546784659210354632000082027526023730999768302654874260614051261295371219411014610476284954605671059946814777088885565682714999282459398009184273784673817601064235035976459407210998928998898958820133963794161499188643972529536940178031194765925703354560194056145182215237074130319515305604932243314896278614160817125584689729232194850483813073706018412632978049558547401139576042768951025934783086919095144786143742254641174362403199558488419992279359676171633985943170788854592516629720712067458311950642245693371301610181273312909295094342353697806213147116547161360044623721272724309831272740924359462490814706565979968546467194766783520725839371698265148700335819525734489672150659171911767765955701200722046584161118062090564100449606263144446104777377837213218365788248344195498270337434182171948699711206457533366753548249344234179582793501336868356246276847412288253137380108029542804117149209602726689368453696027863458448721255856699222447041872085278827966830546961467038238428378948074045883318586896924033273661567062784328535774549329963828635730266217206331411884827200454638521516918439488638286889974658746926392322818147790698344673538756191400383073754951504699982905491642332542750070790535497779223243845735685252324755303008991977582128164402818978263694106412553623297924501716690746785636828400106130953319648270631170054234040000941518363055711425995945629400073587529959485965576277350067513447184484268935553250907818757611043407636831254726399600699073867284986250954961737616908230462507102484958241938388985130318448350431737116530616114643876489785620445909297446903160774818163705893328298797055777952403395508788617095183398515028118512935578013233068918883270224478616342038483204503134464930035971862927606259760292971431331702506539157667924441271471116089437527448089706318008706287061161488313894505774173235224478999773118284180055768984797773479901801529402559276519164871379658011080047100041447968175794920619030526313729856794187520979295113189131439467136728728286634737431430907151113837594331672970630807428252700675858938322076499521866382353092344414339637613332265309198729195265011832854062854450436251392379285808047217082205711629144256105110134595194707249241368409691056069271910805890674144875962366441594601439415913924882569673134386170862685011777177260210722075493519728951403624010765320120283386061810467414734491343193961393883774850175784729373668579639187597006402184715167843868214850264847805882487849656251718611692604704691885265999162561963950922194576090194156959635131987156676916668246361461844230268910727530418734694061120122027483160188164669953506615340734989182979311312192882755595042083418440582054861292303309484888500243269740818368641600891762882056371426904909244765850179348556117761567032685701519807948022785740728217891091945521647682725566589867741391431044553148563588961164992655374384391843033645093645085022576984043514636540656608571046988945478840890053399896379087363668931209044902081707207138045601555676013257538030064668613860944363054727031100003128569612115393507566676356399749548720006051966827897833063406393316297956949840650051352457645167879857458311030369971775524690031165204374428343054785447958930130848920292417411437372395020002098140496497779913723284943316506605839800084098900369588008675654097603858618479327925364046288425721172658530536651117043078392500017000759003636194412819539062843206209399315282756232565031030325007700995479890978568749988441941940296130298177912382865217360166490349929328950751764637321310182029475858754223381830508659838886287615362063591713661461727917095640743974280141208693757400313373754702539241822789963186431805347389503871330747005558297044468883348635145918101465328518281586878015849814318403670807255184019461471586116271910585895667053616194974593386828390183221040247430642292271650224465589992436349307743510702366100923076862859546942216330044261934259857608694789045995797669675917831375577481135316976849476333366383467939335274555851435544576249448880849672675950781062634437232830325708604081855605164746900788430527637235580811103397831248272374021068307403103817287771643597321296535655058923877309514683569201234356226393836259776873265242652667934490537186359811199266040490465981481184147132106206939181086329634599674164028814386376763829453080832867537815765159033051431065101606211153657978887677047621762065643259832209693713989054626319527521458049348249110332246129811531010653528526722616525836587803624367156747511302892845853855524046096368824648363631330713986080756567027813910000247098343299958787557930256238936192591547389577628778063864059484051142780008456029328631663260498366229019423839120063955634598409964652914967950708026147843639205109762150345376605588238544090863847755157937681371765835682747035919698857704837714624901406700435481324991385810315631719296103166158794850927659533780109528849432254749551223225157626686183967296183407050555934444129314572389401100485234771938313217180040203536178097674008691767565517102201167778907538926191832238805032973136969770171882007981085255621005065735406641757481734382206425200715366466273595321433808912519896233034699240292840005852438399833193626007006681207448493157974441628306912562646742015527947327605102066682449466833389277203516198461881042735281249371704440356853380715968121715488984419134696747595357264864352078539570455757733245918088580645933872352891530224445539362405663665267595624407421940661371503421886688062701070959294418273466833484173520874378551100993243417261280785106523502055015852726004118173996065110536483453941885136119701958431764151854472956408322610960256575629905509372546891696300316335590916484023592130906005909720048176425069819569864227361065859609158620216292909140621337867471517795071652575509562816941388114828400112224204514331258249045772313759802056254278141329594471666698339456535667655554299796329347793249554774183089823578620174317838876299617808896947391566928812085310195133761963222998756670118063428639257397944218477656692059485467758397204494123059691939032131442684717613504307761961463815707598396097848701520120995704907540286104244709691387566136661237852268288785589678156471016778807417443522419643665602234408531324543226547416055640427807516696009676070960962287371141473037628279760163706404314496640049030601062110798983715551791371408325279843402184412927883249119144143087224436613921544598238607565453683617987686784277016533198250867452043747190393683356668398668729482148885142346340835845373954961360561366079107213226380687125708823772285265114483913649624284736701310081130199989890386546665215241347967210518493982817607601300108179845949543458412183728410540017359037845984276938631691454816704858771244111411140218908071587963683799309433116497523935350111577265057616471519059379878619105605928512343794165840448784091868463113990310474712328013640279723160948559062028357671706145153680774898067427089908104137188492661663270834106182921094003677670608388529414883264753871514650900970684955743829788835855270017550848856805113963044786900985116158338780224291465584448078414082875459581436125975517865359263431202660427814097599845274585396313343947479688080254617354397122030514410796415653876552149813863534531728156777553613156226512858069133593097552042235136767079718393538066511500381937891627800468920375383142336484905913514347358089009480962001784269505006795181283741659114250147931454114644323553402590598190798821558750260729020788556369928909876963148997747224345668047029785907840796599867634553984479335592412678218308501339548242313243957480085465366789909199665762203943097539918499288733320328904020904950552341110510957699934752956678714139925516141419999675897791598409849409402534051436868624862572983407725208786755018388750381018882577633530334552759435421293441172036910118162720827245616236976636583976083198324157890986723319416633358888554109788692690309787523556208076756289397078032561008013803514108088943636683944167107235463567919691945285169722138524233371280824033099522361094129345653630056105986716076635215609650891778851660998841149215456793148501355828711277680503617305877170121254608928496226911986996345806868457145226027429236229212961821601924539748979068633107329275647768140594065883121343646148613198348180310403537317325322994633976974037244732002102389187020540499680601011778794542552540830039017806779824926368521419006230683366138801344805803854956949210655642864194326798553499394991590862915638202591150706922669355627828368751285430768743473313457341921483364120576124338760574301382219944813629323081811073300342578828642292273457359616884420679880014890729607006680583602146649185326017516734654556746418013974839108623126855830963113868810984746584128834178826645973559927685160421934601429437934234500879422149192460295237870933081939159257966782415085730251543807352878307136293961831960955232158389887437592972435122629625859216509130947634189853221210781134720493577033562420560713587067644260077625955701346053658926213267540910942164937634997860798008729710289338198199804691842872118041682444997576185830057429681062756277087754771998120726370754627988063741391777917893243047471576909830752379225259663512219331818149508718218231246933380535699297678117626105783494630697083452873228971841722931155775530996210811535826050585768380182084359534710125220744954134164830069429995669024786586224879941811826258728396506045501809324447879319517163847488569134605436901509401081551291593096903168182267604149485156941814537073977008446614969091458306035743142092304775497491820366188620230817086471348514439925606095381892556884783346054159770994317587580093141081865446614185546131894088418137120576791946472837331193469276193414023479848099862449932465547175921207535689708148184014482862932789469795499605715212999674504027812945773929411379872618223713490489683491325643715445253132198523242003269856291458993029761628769838368189813370583111541724353115996601294991582998253690811890673726365154603564545787202913356580477898398054517433798866129287938236931627315641306455988053926434418320097146331708087078382594673353802782350409714532539507597286508762067391112349419551645626193266678352343206788146606116151322164758009593348780745760221880936228326987790185584031410188332270133262390168980399297455516863407360196424526664789151613844414858021590678951364766512651050979253228547353826681311025700652035585649795281362817578377221162893928818441420481358688011374634512182525446383787198925025975465449205692315938710493429371852006742387655495433868342051187207122301822227395535551240809131650388188398250828340416228810821429195680323143027367796735364203376515606628234233575623674859361399113357325687737001000481548536234537087247078012736883835004654123866253241696950382971219654482536091582120617665877090086921838691894289336146504512355904571614971286103904654265852644333075528362495986983404056102941766740869380679291935088804686151647559698517508935751430072463921634847150158288581361772259810652167356784226713568529117684597064990922312994111560812164568725694434305905718472979393666260677103062658209650332764486101254769514942404465266322147149330599729372606727790358620587647731456881825352941707697783472390325203806207222713829618074215047928359958058275689138096800701484430320984931016010017168220993707020465788510142238655583571687919591662162786637853631657815084266085951594261269596294655340605400607327787658944578306083614000004721326418158200898856912021265455557291786532020257847839825096920155876561834816416862912407533070697045011237925978703173693617625650685522629181450160025593824452234808722651222449949763710362458726929772258165509314379698526505704598554862957888485155084286822957297935965104996168368664182434534503224820959606659961420408510163449313072527841524310896338994395968481300461550967304306505234372643725145095231925900409050530680034187822230680752742017664785510924850678045249250151693462056104961011350124168195007454668167064194799041229358502945486139957745418925582743601279548985527501085246427365174829995774500127161323780888506857377473425897767130980077660130490989415471462214169175567976159013369404261744990065105170513556627016822161510788038094478905220108487476794443828167012562225282131063571435114616272860197356568885976630380297492013241429342996215531070592847458469701806933943318423590751382999161537088559100034355352483617721738418478037291035063388957202154256794130694490343970023616775454370193451750552603607100533319279297730848433358973445558327565363145786386681790905166595191265812111781004743177064319410375547641464116883464983078374510146170037203439780350523371209135191617731625144969708447255792354582690588031239726093490523337850099425776253563924542626642735136556991988375072632410186612775108354110084160517538323073317180527769979015049420699029771622829310653626867804584459393495687238865792109949274827981061125605344866823461140783153527620129918405593281326904132821898838100504773415852891298865320172528420741392666919590665272398251930862256346933181923699976586022004765483099079638717951636426099553488865180450901840534440206354223850242422469864014745268490349180745724545731491593471461059300283897877978701522718283804767575120825672210305551362675721686126390941978329456804014026981605689967846026920789455663405590406363352512153498045446663475399688295097117808552934014740510902151127668100085229763407981608331693427045058924173288241080140509185895586830452997403479150160562786560044953819116967483316203401755230084455146523469178135315057640475281749032841796209549816602342200350747565471548365944041857276571917079569974596840473947436344751222190939217682130224850388895611683020932883349665698418078921858781256643890358374119345148147153077765127909683734369319089347823837565293304538839805098419368018126231567143379399730147165910641325446822247312230571013934179353289841135692278671608244144101482885545476295253970970186139697154102697730695335384891120275063383602240919820757585804474128374138351945746644034414282719677814212094914657929243807684947036329207280021050347374775718396229644853153886151519006243060950348720415362447814005960686690319682299880481821328184664278363858510239828935546563512098145634607302967703532547203108268185563055849589657365409298830953174950771822230883895503403193730410419320980040954007961652886354674039719728884739622060344789523046658571515231229334323400440096259023649390336406863659870587244756930769453139011475063352034576234958460872798797494049283123552972885125480515619267425862936097921312609917757025954139629419577211621090433295354877341747722077770336311396657780869751252644407143556214994419444501880481965945250983350261249725145462540083470402002584463309629081360174140618725360826288948767538561274782525184746273102902561973162916777193877256365238704735949335650620149172669365246150563456595920738652691887882210334934883499049626566448684232740693716085045862571614944619600957045819448252583097441158415387780072325032498434944004895140383711664628012896731794599005642080274076068837946540508279116829444081701709220597173476884443779374342898057884405069633173454689766559336019285221761261459983047257735732479432443108113690092283628931781231495051617261147305084022812737849851841876038002299769676537557031366237407829913686216057753808774231033704521271987692273413131099244564060671726760063533141440014985885587849584949653447252188252323068076415162491192638742829319378754963629175940807666700577095939628861418170792834490598687327563882637933220448657932292239507601176043861127746800725924718617862684265012447787674119043978665186776383495655556460066336503149124604275617464152450190501885306714476882676127413630555446121397068923861733800824553079906093807843949585020061016220618730073039572923597748919287176473490606701891162556171017766556592376403667310139483610836908867119867489417899395518796021288063130015665581027797934410796628536706334495132310730982214259268571122651236516609594871898385975722492401985079507994150305065355927022652989367108421708643168783167259051871325941871680073411298200355909781891769416167630898911512143204580053592273044762443599180045314851533301607377850315995074845620338916220989561917571510789049414001092189967182912921373684016845918830775808592767444960325798558345012436636456211458124253710811364695099345495941542975486644030596396847746884199341226413280778328899583770337161047472924868123260009640491998182811428065109794197223026017663404939922889488264750627784274787956863216928470023673218952170699971285262490884026349419698377177576927314319676835187143157631346237619893643127704809792138989877208008223077372981483114529311089801144579333697560287559737387452078809257820630740254513316743510440856507995180668719484118465342302510390212671171508048925139025912876278604109528276482843977087286899789106328639437698673587536781790184162928508749321072090776764718573802246348837888481258370432830036357684743668415873290067074549145947833499583674315708928307706811350005973038881433879492933921477852085744206266919294952686036537392781934392966708601803741473882315193512770537707401052585939032823058123957747941227982321215822342381520197622197208422049510873920246862343991556197447225115853635920736327836923144861052903617656209966982808818476104750103685035420565927060871791567970323987670692266024745902498668679965609862550399211862715717100255122404932865909778752269180924206745096050622779626265967043026137206380165131374428590817966830144623747084338191906226950512685216569479790954441525529964772330915820557214187053717400804025703463702167878030142065347335127858360726277092192296233455129956717471142462412221506806023313451915807345566025991820733839870621994402758426467889428734944572151703167209980782605962228560482781576556707409966644875181084850699770613221228851748355849109423079984461464052672315702709809829646773716875260523074512441616111402898403155828549809051642675577266279444928837043968085263677543986884580733039554570548005721436429953071353572031077961581144884153121196740633690511212510608854149448043050679811211726146708170449587436003646684135566697001542843878482677093530842247688826685081789412646307121036931703359309525540172558085603035804062996597797012245309313811127399615932141271877894346588585872789314224257130776708528760511393313039071499562461032386151286963461375347527994838004952875517957365477135243221640574483331286194574635335190549363145476366652137076611049884050984391445061520699293339268766856422081409496137746510897418708328222744856677814648319152102694968060400352550827291435040799244198503771526890056200435635263011218498551137983657150240497171748052418519042356190579269781038083498150992529303476130750993394829330866982315012539804877377802143044539674968279935159700159908465265009404806193353627608276214498145331511517767216247404646313304437513279368339556543062400856948277375248380040146551872720366558265324555872806676888566251049934545420088516545635609845509731220349353413428253998125040248109223749305234396056346529247165168983852398355162195817398198245603878064434833541534085810714514249631482638447995753232395659554282976993116200957553260617903021435249520418244075984532568017926440644696055705975409893035887409318801635162050614504012044436218576434885375232875851090834236339866750188433729244380260780621772227320583592094798298551418269037778201125886589846003107452841151061407364397302574495940009372406652374167732376489258917668483173365330323607893152860362786121272465996598606049121824042595109627034515818191635519356045136868582685577836652864563820197354618926963249019399206782071623360135768611836800223264528792525234649935783104463669747343687448920577678544884377712798539176543771598338447255024519937830757157905281841141185769597822763296613904417962473703413557874346785962848573657437121807869830128653633584306805933000634382180854469858156621337063445773947195786027535344994324881463649114801579842680705812724438223929067063568352921368159256693532626824631957393076598139880413705768076149101079979654071859930745035781980790181229131361363936930790336140866183428615665247903515289613995506928842649809079753138041289182119028366474798270822034575152810749817741604069774394944568337442110092250784415137797796258033168119129398028066309777042315571627573495946844114272730524937158989951032519186060384582733662193047323425500141038330096674822226324422813502548813352088356279380167832480986355759731089706624059211932282929854986859454741752052076931816643970997000239905346634705943642352058273839900226627913564773431327108637036654104109231407213469281066100988907625646571132313875057364975589917922308939847031605452154821668231197349325396270906877763605694392822702707121602549630865993846838746357202080176126787075371565474991306052661167307869765837304902515978087430627848909773958407516957027340862452047407173575470708665737932774847437306119942305308748101144701322826418332157797408532646947824125104330654586548131941970679782464815947903855302495964673660512055844876139873500222919350444521301850118200373902037254506185973427567333750343580539041764519906381846849480838919440174204754943479161799964102714284226751103269497282502558896116066021878159710083949126336532439362823448044782834300359974739629753324451654664905894329701100413450716608823403076533050499077808634952529181145909486489169005083580372911383819841678536700693016615353104302064051149317383215769835382731193450337790443469792253429092721219713218899590678842916568556842406007185518949150328781202396959915226888948596293898418723998880222275073182555470580707326118249982905913459990574999270930800217993775782483117971276314369825037423700576731619993484752617638656410675665554905008895717523528997611766869295442393472678037370465087294662315544528050811036202643733865323676555125295432599142368985182660820201655469726388496506914386486997716771336476943912960014054592922417490048107168807643300742258000389859665687822252090548236198051397637335044506323322474277548179607944232486528681157528701070122223393602925808172737106139207316762460028007349888836153528459865785884614437370165307882628955043459339901069009883065430122687270846619655988721785798273313243657110856936916994922480668333842010639179606337133347273448832446727047441738561999097679928617438691486390101296150730677225572330915985549837626346172605392100119915343986516247530963011827665127452172056806474304751629942226568614367726075763037080588661343878696669569672074470119173787908134746691636165741042122591484703985433387333214190891988726177497761412218242332507514614710196676607671409932924643757762864985746700178592035223191133737957533203160887864326740490119530131860338150560974818795119367991453104636951834541985856618749203448932719825474219721638888494190571964339818681177650205111415334625698432923876550116739287426011883229007124272556658432862415088437339786153526794451194212464439720281300293782780569066063623149047245840561309739887737520507619357585449641322834663053033226195999233858061192246554449685935090319252459934802000038324467091677721287094181754358600895424815995051697933062667152284306794099754627319823484858901162555568360501677714158170252882691254101055555038411426656334252484102603169645419707410829436174696584268817905459903161425310774703016692685636719861377551466563398379668623233721816022548689474444404378393371379927237905149621324463143032176457275046247655017944525364234895515053659793637213105857920459355133840074810857521798628068439615307310838837538794372120500117503493480845798388153810437875822626606730069666942114665542759036574427121614342505008017530915711352513664319531928193825129403228667237533618378397258066835414743519378870296773019488225377736936079852705101783835687636446096239466799181135822795880710803976862806710803772435661928744049860993947823209219493522278950186696196616578937138907065452515909464769859975973421629807730715666147357095652030629936195826903943582066842147964333831353626553274079959381408192134402565837749418668582005418756420377766540358311316125527566589341101903749668155450336248060770029418843734479940644765245800585987085069232796346480010850873658232917781474293755182969431475813939206516368130079194799564989071187277662718834748000363737904657077393368792468851632126779292374288400715084332840958429192654683011428384170374232829231245488250426843023733139685295010978711736580094356081326117827633423915965807592836654622521220287649003834554942886608832439617923430388534028051291718141142261459396862076159842196314342562436623637795828526846790607389667485925585666759654556656990206380259885576438166611127012441812951636740503339501160797827049746115453898083388929833481474131958741525209587407435776878118287255407417522249698238930398548217241545116314928878798230177933535300710934267777771158721105122177800473444345937676106069313459389282965210959503557270876542668139190830888264144162246423646485068456006725715334391233028624733050790370193294693187913846546364465135905889335926541884237238043125339611696391437800483035700674379439884720343401217514141426890657323834782126234016202102218528072330744822035707374508708079319532112416799503801146928211664964018953351285091158969114078056762897280920452036778191728892236505784751004212114343203993727529582182360157998032075489386359927683382868736717770113820110770633573090981527451713417898075750137912625179474673456894128480834040756360329880306497515788230618780256756774548990520367515690966808102853519305286631884915284014382092067582165972964207222794098300323781986505004058591335132304038393753718179179132496631159655646423571777453716389879651481735490548366965256154177838533791190832368839203367237836025620984562449132869279122946624201592124777386287288707300684629098556933387754676904194779413065571294349952090740686496568179954687988789341146104642335344394506857844229817748691588053252577809574928451774342194525362279062560271056702151859120920662301210460963384240373433487282552762034702206005295464267968707684326884554818390065972947519601127595620577217971005274245758016750685361837752812175940355150739600818470429922547484463628315754205863111158220779295335681889163787548745604164574272720211790755611602433812957903557138005256040174565573762392002335837004934007822852328377857230777217720936338853863788970518325952534008374419272716110984448766702103748715962180331833018869189841759499590092049105564806032273172995004201113104857630973439413903482045326245078095969892842860187562073028858917169195229720065624722314599171951952413964807618076316621159586204546781641204876444229580000304571083971253975370382431228237169404215824611608568053795159963935487377218448270345266805752999689390867762401305527485435008903526951873145679778760313407483082350006509760380856105947850573024205190072541572356714285191485708664570357245989981997079145835262565445468976834646964998898583004866772314555637049332341323128545439391358049064226462065301247230269573733881271052019934629161298018627899492133699730688270936717243246599114138509603193463920082459199021296047752467276332674095127975500553516005628730443927579655908582532817346197960734453691451791226862117281810308866681393750659625525662389540839794283214721046105058819280839453749529795303213717046346242286716059084801767573007100398576081691452538659422938777478078122676394453524073736688791827996473424962838505412213061667691419861835395019392570270173359238876464028390439422446351849561395873868472477964204517534338382533013619379143785367461181781533724934063454958044146731059711284308301289833323358344508864865984240937147835585788629422659034841199800710084544521942668469406286935997968396623819185770616972785122311516661979192216116170429625293754235558431795396429413314387599563338857780843568417492224515471387430163260107326554919632648887715837787851114358438889548348433728014073700121112085071155925512222474747280507098682320635756387998053581264611771261408811558743150498172628533350286299854801373741987630581803405834718993656622398954321266492748433176527691344724028588721979859483319525798025085196115801212608723932131645399575777969349627206154523762614372995463018725475969393387088278039998853756687876508525148878820407473468889897440591017852077604033620346222283709169539915968979274260284560466538442799284252626882313560139074706641069432252387689419759926269092616479591735633790822377117127419554032972014525599327880078043859448439096625080641793688101636759326105425621363956126350005642207714546328381115776266192028611002336348253097288243985215487863080700068021704188086132323088490644154086345065834789279837133899662549566629152568054980161785273274893570198074801619642153847843444462209147683279076339223457324508666918450794112898024080148168008270009941680162190581899513266021457991733323411089792931146703102874623066685169930797097606870672715101361440747410060698862312308191290392534457936379845910286238392193990095946919785396919419858510465051670213095465564131553010566126804594322172812436054639257813184360729636275870596554924666619151331488166724904143962876490592155906580790675239366235719211100420141009238183287536617401042741548951843999580345202150456984119481693956798842508142070526256293374539020404299905567209057486040519368104711573504524181276171145681170766962495455789090182162503742067892040867310628087465612620483385431056332540547350764501958046613577559946040118787213593040714023004043977920744920169262614427516581122483458976215771420225055808239971201659984530673629018688940980538226108656472770463841843209001059774991979178184497510964238934393252723906667113332924362728521083511317226244205656816208115012020768039346352945034280101406472847883210266945906218185019269139131145571308585756413428459591551902536646050900521287985663051904640821668131603416670167801960446315804728322141138032051880664583556040078423616260602400996853264660204339267400776018489202550848231242532903894767018285031711287192278764753377316544082944656943996567020557238547108744807710758246874260921092497749031059016850784703608811889243717218504518300290421963729973139857752811177732350862295477549134033113318195608058113903833412097525860905712901963517716195493475892492182014755981233804000746057045344715242584804093028146476569297233214163674458183643440438827844871238396735591092072236629101137061183986358831276940309906005806273280565716796604651910736559628464575027096569832300230679245374858964355365254275568752716236403767797169379391423960144110476858924729075666383367256623715432826341582586859551291121900398083004036288483987149928049064302282199113738305219738788139971308348664278660147370815998291286657401569603326698212784168517442937302832450882814567457236464979594671900758133680508924946066126774708670163401599018886159786261768367331072565807237591422609836356084948703723158446458526811100294159938891607849171514257358245755092950799169569657745003843244322528629142434386292989307607874280143898568205686904839100284514229728032660358176613835455621303256859575978785829252799231359277663133647606633992026364000908326101962086419320941005358105242674457967425411872126577685449631877522500892691976559637869361149366414283589478005617987302125176892916367157066607275932772839382907879966861555545037923801318319400458740434051050367793202882012299378728708510949427375421548753431561533743486046947812745973713362351994469940072832771799696694528951600162171929608782329687141931276412033901721595439471949892793660527108482176175154067462562479251407575253494283545069532291256665504686617510360495744227111093004617006004835355823025970765788267854318129309500020095925614231217305593700181366236801215225442207574464820418946809884752994758422351869492119947382334290563452491221946246810231972505609113075392733130373109369568514445051996043485715511350934092707520539870884349571384721578719395743825815360691721406483586424386935718724863492259007110360942469622165882957475083779459535136396193280995718441554538021063876336714462043166631033866116302063827014639234860039628808499861688314545308000223528519976484916784783080320872208060481661099202371202773173843649004767331882455141414344749628380617781159307162731151182660363406634621162804916715119100344507100407715439604375749781267801282412145840458279312503356347206450137022273598894205562603921841746147547662619897212657489719034880818499152893197967936822486843299437882317644649265702575472031018328114173031330488745014886384168072994498590104182529451379116841994726508347661948078132842365237194466233834354136465786899203481006149547380336104005840828067958920846448724774112491139048410071064391151467991503735649321138538684991879997345569500916976203429722360942764207326169943186530521452446522417997907800004638939858922211799642201678947611168548823744123513194835411985644120601904771953734864518616834728652071343444474985352748272030949415104351151101064921756982271888284235101618566702741560234985104312071182091663937467761200875997792706887368999405533456409089183020896707211889023785142441294328781144094881422796361631137404524549926621113408100614725771165657618284983483378913473818553864877720185611228297346559465409868894164289427970303078877009609836642119620345561777046134919572729096240648484346599430289041812941120187358132773610559883519919021070652310714088445551952993631368916822094455469100083741814956762723744275872289488717523980171250879013429868259359684828123343757914304328123573363988887383599080154227168224533115524169847820661858973905215356712598134492978159417268693850770522517665632242831989500214494319890815976363035671423134726225367114163047649965736851355791889554886056414700888769007357402911808379855450488264780812755612694990620208279750138841312128950799459227936772594264269870489466283382986202045581803471869390442855928473160361197363828953145505493754140167602601664173561622268576207850375055877228658091466492333603460260003274396094433763590574530943405030314081580258654196466277500069616648000815929384263287518799596875870870118872733792255065260525007767655340935089603198024412883075576444762850004173377402776192238198884313941743518542808163906994610135296469652674968823020883932883810640559859377861668330549307233169935136196734572800580044817110473655701087761357289479389826542510670281628558047406623163837346042490975800795626572265132872523693904155565331459588739051741879379115992690380886317861110022105336334783502986984531836592183762522751526048283002152368378115060310902843306716084665726165472959055905909345364677329162256150231390842043803736872573800295297300412761987726690028281384005136072860655295921889173466711121033761077818006536076820611096764701818776997104610972889658889536233431959202797913517675192383812185424855086431929668418862069632622391977949875672805806549149164177511407000152436340308153849955178136912480713760729829553897162114990748810836189824626287546287743750331797189166065317258960633058856868767535727794612459892437073128695221822594667334991310048015683030413876481446672753641996167709774898076066245866030246256798100470380768427702430118498893814016521002786939397876074495066470160039770065262436065446962599718233276259362738312246280561567443952183612898212307230156666874136355464049718424436302997086271723445844209373324505515614242988022829983854449708048119503882141238450542316423501581307526642467004851380815627660323131346137536247471034202030441956322742326308992163441510963943991266089101078291567427540210460905598355106636967912858669464167352082529794115448651865348471281704496272198528919564138594581330933610640730302846258511385749914295771446879819533823517827726214464527800693316775934200131647686330198591951177287126918961402691281571247101333716821438167652461443759645130051572946806224365286973253920634994575142395369575373120827415626896486259409449332918495666575566193891059231495392192503141748205221968985390198759159720460161042189240917611398916168571192109445012020740841344194922336035998964030856063889181438277610355595659009718200706123376833908097038017419454375307788370882413002339333464601654064228476767661068263346098168562784863100778958151989509569890351536203603160490657804097902067195338696967981406243797140700641699915378070252545805041663784468838785974749079303803123110875453461726682140735678656737471466314033415114592065870732122414989885028794444991053169824287339639425559461538869009776767698484747421983211515597720777735634143068307598993621616808915773925206605818374115104147312039003664776872337018627870682543873028283498552486389293375560684771834383938083302223240293990321677558631826590235433506041830645704618510079432512124249384823576791298034792875083741270459637690763138977307701896884239037452216031536864970591116674228955812075985625661346414571683876393373049998808483268110601505855251746605309301354384083628314161883340485947049142012516751140218591794348806209446119220544886021504191105146567093319323628638348430900144146923141133365682645017543748853465620041295393583463820930015198721460296453808741104808064863776340459757751702432423476286378936828918114123226729840431168948443457269877930109149173996098157493636179903141768707151634001019869796631758361134461643673432553347541480807472304218703006344527842380772666989011662782079931771455389129685366299730876985016245637870969534319456206192618665512239686139248628752215704932766325716787114348290734664157388801736973894921212282069661093953182631673132366771153308697662262793016743906276558640555739164682743479759446001837369495638787428095733766676560869228633140515756768884318256025866892674246177794743441218875025472648482694153083933445704454667002337827635552157574377517759330662228135212070939656725933924030833456415419867152626515168807357010389805798826627123864119969413921892824096740861641233408352686059415155575975612035576983405679176876420846331681935783619906490361486778722891865363775560139534521419180134967488880470264638593634251441689524051771527722201633652402168242552290107992527432637644192776242925721899209675960934212145732751970849065594207354483083874507889146874982437089190439975826614049283076558246882205558812277372867161832474517194437818398646408062914326947398679664520228965244611314276616390713636801342979224586362022149105495617788423788462435269710348498563466722203057909469936467479237736075853845488738786978734976497940614462653281597880011437459982285428084095036346672155159935554368341635409372695103625057348664775369243883289597092254490859799030997635012064632862117810301079410389959107898029967665792558900629123058035963154614545433597317527730450596320566204434651629168842048549842835479349001673071608019241121466209892270683307544331678335595342859997323789490006064924894753138129398603070901779446426552589185504649821381028556869431604167936107059465689920588900423333794204946919791488146536153922911343354492130996019331275292822309877602107585739086750874510298109803992774524521664305279618984278912733664694557118779786292214717569048194128805541680587744828300368579169521433407367168408191789085456171161276143664261516235296476015514651029865825787879593461696309364707420345594060535288431626877529278380454891390529376990771492943905451206793900622931985811667861111399097815533363801697037377069206176498845197521465763141091022186275530819633158317274529448709797697460839495382828647975278413681561765275727076968326392963379461708307540767882826487345116452529549069049108260079486568300600060339666484041070093618711600345447607254484649531171494003818704750888127506612035985913089085924759608032422501528582311042512515353936442622300378372828396596699372791544211580754604817648814878027649270430857058885198808723956754888307067876251464574048750672632838164985188807910089671653886733938392048059169811206512243856314134333972292650945390779787068625075520800498167858951324480107529624603554327621632894051602499026876267557539217547751191847417228168230294337789330949846137507634709538377272562585110033864745554937293646572590577203552432467821210617752273589503816287861156552814780114675255180565228976006743549408851555073799723681875941707302597513845924975236260775363712712415760494697556394910743716935559496041656393914523649416969967925092646054986900774337716169324114495995972162601040546816203313266785066865232660311843044375772937500341489683054144697355095390022070340818263481310015663871197903082308819636284613025540957273937461083650221503159324276955756257121430223695394434492301959831648816284758251782508232253511363879552781915739685688319700085989878468657410801243789100498469178264053144899957559316528894252412494115099228353476611241223343880879062518944103552339627804908177981121566373407291367108016697036046317398026481602542301403190782271087977278426145461312472063521293945706424182669620024727230301311930337472011607908777459665478163308203059746128176767661391460787131446582645134353104847219461770935314832645921978354797484159010433309504387355416043079148963999393921490938901168101269989607482678675290030451788742609824074937816593960533585593255019220078846748193394295031777663433227888614476283252645003711554189035075382000503565320878039318021658521318542636367504215705950005705421743767241706168314160040417218942458332477337899204010294392915930367510131710542053695527277401718578939660385805486710651418526341044249927497471208292667929742657131486880112352311258983359803947331906669679005114435139823660939145708479582956620196230593554221739209031507583976238587189893230152410417851493751965755467642999674322444751718583787528860948386145725262986126394078300645577479159037487980647990357961066986060886115643655345998135718764239219620142917997918257066635461874418721096477862679445971416028703652406559292922324742323063685607926041703862664790165146888685958436837130443956554184089944826576751984272095823015312399383126153310191672901582146109306930982174429627957870395023527649970440272082099380607149918725673454566550511510910351694837727388509095708743958239302080462012274343335361978005703183975433659855038451755213585649125840459060261196489235059657189215679953534321883386356500824442626674424384317111652728542083220009565723421484253793673722037623085170178596586381636895326469941488637303075128792105805047719994520816970767157498394059709203250698824860475466905187059688054550433763555701087807357359008550826153100663725946918456756845798940371992284354862419261193727072484672229871918502542967901997907558548630488024932709872462047106767473757520817828000542994671138791203575511232258197771512326617393496331116138122105680195219599606583195997998636207971162170581143830236289492524564859948656179107841245194819676421733175435295298877556613797657967349571055920071599431469100517064352914380570970172899521090718598372106999872904925014876602837939997643798767342537590486128038746619689081855094404733530705904483426103322785803509190930687459860347830774159101408367689423575653053951717161185897724772475273563743109404852571476902980320363857190525288091818727062169125438081635155458022415504461514456128783056469637132595839985555574921660130580132838208724429605846382505551890667837509274518382806821819287899681475579333034540707580644486922152921364682678625568439164443614473899638849097429557085824467165012789066962852161565073999947545478773901523151132715177449338322858263176741378576532313260697398738045660084229908407910835067043953701414278110371313077384112422399178849741638716182958761521890029465797611330543493970126375417920188298447194125698468484180653486000551257058927884898616666147438797530681272852205755720169460630266600840192290450334750210087616979811791589490826609384861767495591080337970151426675766231879831285990919243754966701951236555950632689187971207437697641251547794436149896648776853803556385387572477552501841988830639624026606500970724260702535744224031057647041892664666361365648572715211023135268405465939340386375245176395638884836328764683354001343631121067555872123528235757339042792024108999138810389242548051051208520360715448042265388855582819380972758726221189754938010127086907673323255622514619738063271645529867992534271521863424817734196366409807795461512137952870705832957762134626074492743992489439242423198405266513028855639936482505875289089764580208575845370449634314086585428412576690281922919213375180973837352265970466851230872406558966388460917768392587684671842135165467521589242321481925820320652750998525420275090285544721999846372671544648583113457875436049168096546109133906185789399212778310346293711556495697961070162020907206385514583000433475609991015673555464866790726411868764513710308051452944884516193146291888704910905558131606795840524858917496189558098443893949323290607776906161760162263595035720475775806486627401931553681390024216387313255360170429445166173035155148192841259676944098357499922256264477242636320702084930553186137697111911545330404331860016811934003597312942682663650431022931226821132490013416465881871469513418185785047930959212122832517854073081572149974703696701852188055119994379654843461006639463659318007559759217060484534417097662776938456619145977086770060671402230019816382462349917404586794923763664602713931465177947007617692701942463963582000299644829321651898804760606335534411737300087522041485038674520318185952376874572399180132100567041824968902812056741191481096354775221463470072790812676454369134847117535614242770250585884962424075171353775622915961124137875606813493631481948876682675663512896226603359604859240014357202059086697750934986672103781723697598179814776193435958568519925548435167764972796038429190089769319131354974186389297874918744845798215071926368781821772150427412499705645527775243387658247118632878982787559723290327547117581912314838012240142917692437470830123297724825371051126598137863423481575947894568223959729751164875218019101504917088935642244221543983330529630233953808983272371415597932333387231060762123099431655040179141020819825664198177574623839795697398240811896394084425360836085362588281977753374614453214999113617437514526773696678226248463686349400229536255749613410412439639256969794201682528520085120031395939430497831178359168533566503752103672369925894834827942495971240629194139546432277309789957867415652443461382470187478506777653193135585243003905784245705781023746569436196437218335452320489781673155318851565220474041778834500909247836220642628910244535564699541810111989913422848952381235559592020592210837410965221678599443064868134882259588078769891352160688126450147028664164778995155473640738058721842485845158200219775679860253137318766794277518339487389960298460761828379652542103783154505562733586148031822380899775495347886188499283580474390318311029794262699425723181702427271331238103720118567761349454294034330757248186288625545935505848687979388869658548840042420068868684804175798702381821872151786400128141978556379710925014668862994832074653808737842078054285159382693280309584757757927294176315813572985427554717891626966802231640293412152846415732677957545631583125468826195156919717094729964025908051756053758607060596598846635390542227976123151737773606217219511951965240540595780260096235904856848788144449033679301260974270604684353624394256346657172021301148687735872111888102177994708784174240124492139446277559942313757585444228216182506221874773541870329006964616861201909458102658184121043566271672311767276177897785438924417352549534889058358843337089291844602516120800836136634237959946339040796978393215844076591052810620432289884146163984231526127569817201795240957324738516076822559843640010775613124001339338572258595228356193102650760333002707506453988371745862616760142507869400786723372349875590739905814010100731845074740858535134960542099324364111465828541122023449060943426389290899329330738220404838591658892200521283470324261481901568725339729486323200673901581788017402955997896903488513458699476858194818449432235009956879841593737134154282238566104560629210774438910094894606728109374638167452944627418612150928725924719954412169156767567954385887323514323460205503884699217124322477910021190521392776461072196399812908548497223060166822809379798395661004057604024392172955058510181028554176126746387404835544563385439609572932660187631166923156771649967307319666314393401639111976205250942753508807053907508318784337442560617604133772878989303163083745617561205419161142452516644984123322373923443731007775842550797830704107940545315621329819988844216232288729331518290010817641227441860513230284424933871005474064916771368892811322008071405780957545932914755855331757103788868768557326786100262178926326763331644897135173407297973817277794622176824240142677025217577891470815387421644509384629782408293135070914285646636581031406052313539877780879440605626688796579551073341385305269924577263672674630859039571081283407103270819543384904957977372987850769733201995093332712372514748500410929193873404011433978906487299023730171590942760566478305429478817341585006331859603329644696740693989610228606891655328873263071737115388694748116969471681679400852104693477789936657959889391682168427466535511508989066634198357408812565694492269037796852002719294409165088603363438946192980812518590676665980754315310362340322110860312173556471916855640351882324425673969046032928373281393617835621224719799742694441707631558194640444383164356533066753392981048569192729886919860452735610442506160115048837292322101914991879796664954484010762472458155211104650147193519151309589695855762240736556977680618443354850468903172603510123102094421127160820606842234972847154608453151159458916512988878391218488931323722354375177661244250285395760884006172660791834856696669850070023320675474411066681859283753172724229676486093146676648066236973724263804347922501497573017069334250511411373737858448030425476347694000890337368555666456709924477780832836513475773321450738652589222227594534045190406859479603078483688035169504037199799558686396285313368318519083670775862718221262278168559531682778803899437118918227635603033692197418941639305960955523523332560875958412697011879179014787501026647183555418574743042615844964585415868725066707857829837950026028327120722505220330383946477352474703104290657800131572368874679120693902587510280573744298324444788815507282240517957696784130011873964528708705304294643879661385187629839810919498236434699322455865768241554507579719191316448878392216528724373563208494148980926323023652098896716673128984875566105308139804171936133376276405538662389803908145794912110525511571172347686285983023353765127977355685960418213350451038783900092826114834324707443147229361087145910454009731682570632442366417109620139880315409014428243158527176448235974389283279017596954642067194980150022862094067041008002911042064187427651993170752239961084501760831017872971711094628861658007625165114022066441005221524516099859156968711571747280328694354240635499895211624799263142074948611212794956739895771286533566527987295229941693390503439802978684624866716864196849927719525195492220340290951386391102740513748596076896658326602691436288270387415556871882785039723605728882890034650735938474447794048501886116466816112264467228626589118401235305259711876333781572517050196994839223886987370934343977234365740479153404851815535096869096116643643411934611253492373608459993866258541959923689854434284557708275513849823589551329597494999468080384027418597304845909193017501484448807408109705305411829346369028456485594574266114060462859727808064481099627149790843105293034513631914651393732557464929427192169480519982530754948915731169321938231898257863280924254797122666534957286516159434041260168848952891827479544810678839623178336349601153190769852357365429240905569999941582981233493286399085137323893061489853198866532241747457901907207969302813631882822390316443937449175033245244507232300819218033370814313416359708680731940426420583450185249770605618185896648579293701091934629795117896985834203563218641587806187762044661697221967599961763161880223010557297728583081183778137379214789241963432614520496775157277788852558306442450835949236627259750810543477947030995545577064196376659772400249179757851272400323134272494920609739865395814163974991346469250133105275778943763682121270705191226578680155194217681443755034434908804431349609144553102022343479781329757001494267853009562678902864023843184917067538728503907471633425296638028104964368355032141488291014334737864321293491927843751629319408364490985740471133491838995563611526680040377583918167892861896137361745499937068215696520276042083596361279634348972892910919775035508978900744597500840078216348529126493021752682733154683693030748345205095480968784855082955656740512859140130841169849706059422351945245720258303598230193123176088267063375996349419368596087044115410905478069492254509976012291632357680922373134425307786176594375372069221398757982363027562473528909854181914997762695378417806461716126471271670232525258206595485181929462616158580065291407201541966765400648581521980387975933971569664529280625164712689705769619304813525205118890740539438319659601424907737699692259157587653401620529246590017432430686847893411634263295887113153735260065886002247633159866269420923584442360984011440428306559536160683696294100857322605120251802070847009557525983955415836748322364452475981628588568640283400481221292364060512861179799459367886961624888309060267695852833634763271245838149385951190892046161429662819188458317064095470833478567737900876565381439651383184464263437949344846666021214414717347541223878792029864813063473863694427513811242911875778478090362301463083444432012447953609540556303546598719726221057981421330513479214744408680169641314684004216228444015484569115915384124717730486047878554535271870231695407177329331473500951819971378495299996641514398233341614044550765490376621929169320754514903437183973368443879429918779162854088376634635383575130458645393961809712887059380174079163137377847499479805290948962639989810095561026319282954112378949778161064250227427510968340419483724164252730730928799581872482639279228899986871883407340973519468123894734647315975809576116079120684467901575948630589405159672623475345389193029534923838119845698231469043602855750792471916350343958537742369577742144954617730388906075412017330652592038872437318054608759178029561828952887772357384316862021222045271567711596183808244286850347428107075750838844447987666091966819906291591833371404768120296448768938269430709968306700907358530853499241542939522123688021498857586863065769700406472965955706517216076001390911008052999825403813586816974071291214360675736836464341957456492359309511519935894247462116273423634723315885628562255002028747472563182651798321141936124668798236410203614760912747764987289910664680988691072361252558171125458665088031605950761515622443263969284535580717438919687705956872134059064248969234508003337643363195277501719218669365260227413388693752357037328961599114462002063710038163156164010004413074102100832972910626782564762856345438188159933003697519408806752971449123404037901305193376581042450824118950001710982653576458729856960338510885677647953676063772919346438331605363327367715604037857170783945488086094900767348761057233401297063518129758411716361674921797344562332302113525013314486539387271552330779138267995009664815725741795805485863840240404033837136571012797555180531404962058956544046994457130444708458668913356823315459625127982220519111424770683182362955750388113931382005617607159648415280688809526488745406996443284204338131897846254067648181309786557231364571013113002090717320835350560121257675386344179728437173782895835696320403954467694840492469109731704997052369078546883175751359108981471902399710214770456357325727200523247595006846395794539326402223408645872152242160376160099531964791280014320265377562234636482331379295470535502236278022909333327024540920989847972343222176823596147806885011063221455449309749915734602455360603627264638679531774607999596383142110480053602902473256304363943015640996776942706131141321235408640567339475867918138844054574383868642255681906113562510081153632219929177101552239744275639901313185732527574311863584265303383888493372528619612994936903870310473801691653139046498514597035439053962584130999692914372244410102592621205213567692396007615375159715183480466563020326726442602420755747105176966300618225312662751545802451309802660022445461636662699623656952949113756237904376080879585095248611148394868395946798608862253130911667230934736855493865244440731191036148573255068110731882889363359514194777578979035417576614685532414628232968979110877486835861041852509317617144222567905271948420629512483940347496511459293556890244507429041101958202039991141232377500452743736892020860538083296867413639775732871093293419009344200737009469406292697872098434727137259696852491576010492275455769278290922996694821095540734924344356066646098845068272835584892516010156632036376810599213506453224041841116634494658335299567101189504461511838984790158534650082273172406049620730229596699408036542279542236294547684940864548739850687354173473042829663749106796229829665415333719268894571308418396052443068836174251270819841835667709366097395769489563119824654632510513839040177814099075765359889033719230534745411683369013001100946539837576066493031570739781731992708741671523381452868364151104951681739579997926547301151927663169231523159767191470982177738696904772120357506855077709353765374466111692608454131985377066648258603290883926284648110715466667777448501671050240739202801088779018068139954047607988923549114512700420304392230516295159650155448191335325129890018521836799034767693011244504979161541450669103196156283845944040057918654943203932764771379011554185564273296003636255034717537838227238079476707572968433275742955956318238839049045575960792052268430961235282498156095065975946136120091412426408898862086132363710100801582023646611536322974542067749748474878597154631628196757736657763024409269322987205828446603140703263612228124294704061127157051041989601524275372712855152393924708890881470019874325782011228833024503508184560313780628119264707919941619839476441209430919835761601768640046964428131547279021971029415137777495709201796111880154337247298181225049429071094063099399413359738778429331098142003552267497091706478092894264768823332344000697348227431186613024963193739839468811541301838225674648300601386629237731624497960665539546772350929194007985398261825245743661940468008995165797908237572256167954204708859877238547741829251708881700833934477247180399761570868434623962083364061530287182287673210889632247113028994221083409057746059021343137275641867058583364784636583012816636011154733994062767834525900012995645089919248603432903013472575013324268830729463078103230024031125222087735156164561975259697793068826315383898646983818636989070758250293482249117808432528486879290050311702348020644535958543084410763197695669171598033730906026331567376556574251185355229138923499391908547254513714492638033352325551393374902427153115767410187320169023930559605214262945117971398456542309508825880571109933456697064871133869067455421747876720702404256929144647939355631871977990225811796047147593641135679192154312046128289000289987918782039257422225948967344526436100583093552361051592402958162749906183396670111432648700552307511321982040712692326143141611853701208298901799738819445866315149006585092995558184854008335806122765951777700683401285104654714229400750078524454548955092448276163235090520950315449421348730949078591590780446393411756345985961669777541387765690129452213165067459739491547568229315631295627649326812431263286122399866946483054763582818311932249409681634359227180386121178260276766671802806733163483094837455030213103460626691972304538964731114440448049379373827696267685690967765382267813143508418949184440366130453754258392419239502073445368517923167785342461071781948017712510597099312551744681215818053278090833887962013388385958404697866279728106434192281311777105011720427829570418530630782365167293987751859728674611916423240717104912122359062254490112502644118796295502203106518727666076173961803461435668291593806212082099971142599760569493628585942071626626893104185021350820630584266420579304139954317524782537551581097410997176071903130028537799146711350189416799610359107402712828183398581338862001773997866536383283577644718735868599329338057407311869211461301427929062348212453242717729135310842787055733661817898227760433848465913283755904749779793933136125180824774377744337342476312216063677419988773291116701251713127351139983154247925366756116052015450941805392150263328279502244315391025105791445298908815199186746358886672756093315515596041254930443823269035149549294866248664251779934127055322731565937551675724161916387583608968727820002472102259542539021874920785180682979313087585778480690531629323634684387185282813336759214359032798058864442995597282239355059888014928114989553375895284802230337847275734518686331701403367353245798893189066268262953331926179161134607603231761479412871994789971124659908402879347065564796007843710813841361275085874654222164920494426463359201470552347527881598608199667407539778757323784625028922471287952977850382880343321657381427448525483308648467012595640033776225827453370448047545894825503263320593370485159275659192586483207019133005483458621791349271387640682735486829436747476619561650885160252598729288429307371321690187170208578540343798231435620701799556288445007000465339120316137903547938475033016758655908023028794202715966881114514961550232430449385663742560466636448105229926687833948573933756677780060394638894714865308042781488594369883260431270163702310504886729516596048176325907352324923546811359640182583952330285318498627620909476382708700833723452391235731309432360874866650075917329128857320913194346474675833952023732280368137577114078015500988530054912238264379451690267200182263427099480476121382896014736780814182837650947607181214897011192995899421925674617843384787334651914538993389685069267645514314865110958092797882955874924049310141477627778558133724225490240794834073088007837661278149851830387816603890034339745052531355832219735469560520763853318729496297288897014164330784664729402196287070564348709348509954025546744726948699585441335743306149881921857554782898013992101003324441949712111918865028271886603149783103627808464860247212023703937391275183101447534029635064245560307324679953015154182793272211179471949953859707481779983833820302414997554698862320815776151827895390404262479106169903631836534835771038061254955930432106843375305833803957504110107797452671035434385590204184736598335844702165325714437145363087005911526828442276074991839961257232926075453664269693713224994853419827932354555711846158693275517855221680673042114387159413631648649666477949351412963599899973288434693287797794650113167030248693268187595442247601645884373622577307552288050814744989691629220550838495369236455802562730950251014954166969867895236842085158545400501202457497994928919460797530723763067121089650020690285754394550439721617968994059872485042403476149939507415566340859717282828757791037168385295764682932772858720363655551665202797699457472710909998127207744095209263088117500385062647280423503097875788877945886354986600907283087302909258950204337415377771971817808041952017642008690204517308365886212711169706572140475140314209310694567298985064072290914728487583514392299552943916984808328660896981180958265823169193945005984582729965623467807414580765928003882725026625659839572338601236590118597329498075243612511855437352125431035435724859230174595640311855347887157690100221159214697446084802437424224829475807440541003746147237166474585715212062663179867908143419703243913413757311676534533946889866770625042184651472871865941234748800036570415873756253066988165957983091312378282609319880766803370963544534718742092886632064203426480930403678392456150605919603662935258488321092364940380727974550810012148607081737760712153719332378767509218268523174341996329385312556262043615760384080743340679067781513812660075211415764972871870052911894048981695040783293549543554606928359134471196244301107848952241998176701813385900129063955623073505435934614311624062897468255576154238617494082651456281922249246320471898362810456951794014111916709812932665671244710781504040767185636847533958939945469410762359320205201056856493514212711883306245046745675624301314259603542967528667669014356678331693842087015974165138861409694607743578243734827275519025163978234818660844740714548750482068287002580049759733572253805272799130390870380979027825930184858467532123368540458638112364160453057131011011220222088771773938613990063022050291725037736016618713214270491834579358532264873920280567966946603105779115718899577839122859533442287915958894062095371591911964118332949346770378807719111048940657454825613929744220013537832811314922076144063517266794125668390140598754039847932564930230722563788263825875491135004636318133713916405459287135093999340725570187949463304228354515227776695657398812127950162722436210036264327204009837015619016823667887626693378794709508639421378057257157875605663427806174863312972702294850051827776824117314332160346617544484232345628078928951607594963732449862574359776214493065918454057785050187075996931799312909264423265622541185095719836858231178168680199216235466215160542288593783909930017212082153087308372836893207671778896677948537898977775111802588769733226827832318715682016135779365095399039557713296965543711656651528843601445037790495214666861831077785145216187130527786292930193227226573638491520800139183511015035279030348738015636741395908968696109362366100957593007444044066551455233693248559103616899470102522728566696099348112370666314042832042824839924347999767015196492713492955737584711493894598467384540020761265408713331213211183874193964591694967780740567729990341357301340688534141532960427738574256864097945326064607902577832180733768853711381726611876385032096168946289138823453833918969405784272267163933833665295281910808342000935149046072591766373212015781470005301136532509787875884164280486267838115512048380419280531278603231368441278984713662630222361068539239485372744214339322831323114071081415110694432967235457791039047323471423113192670283398590818948463563980154374944652938344351804230759941803922338565008011355867570298365220430060828576381074674595918819366541094006308691726159961045060433918488066173013359753614692127876983123420711562226880845001618451380296776738580271430542220799635663005265150246039286186328230044459511407331536006076637071900130252285539018696067994232739559769847587629252610812873543927685181184105553612385682103425849764376425713471381947566612340031803400350932152372884627284113151913375008639607086594165285090305880632004021909689212254396878485847483809138540169776511176600089342590537995995234780493821468378928358758756023092475754692430930327003345471503423759566135143008992534461570035392068190232680631947971408320666467182797369308272001169799183666376513563151266511180258720424410909857893734017879718213918658829083512129222037890146426523894501901446606892958918510115704976001369246367551263939412906802142038947834680638400200243091984691336262684837243507729509536740162073974843456832989507779988700018664785445707830496562111639684188197768736237237158481539676155035030600662035852867213220222422075170290574897973846310621470269480959243256425250460118707909693204600826456758418873549922279031438927958641556913707662744805380686424520657075459130949202840802964498500909576108700712268244345185451483005361049637285261357643393492782181951045019219541812416752518879322541468523742783668963886924929437406191832182207967598121509271397304907318827666933666071628268037061204429046554152402641277365064696575802822522131360431852053533999655010271114535734867097942762147684351456816892395141900254987457723976748541432344522590593631753216792241304062161114547653261409712778198549096319727223219377563536334892580162528817268681456657882394810616408151036318491737964468676088858760849245206497720358961701447194081860487869029511832157409781442087309362324746891015183987164683982317171906937313081481562574350060157227369554550183401177644509895948529548846166716469994285310721301079774777836293114223473710154394611957451469015992170226548106687073123701319620990710188437457285424305322701188643096137307682619547031510909959965477921517369737606360990067524291090855620887904697179835252119445287549033644255055816840659083595982084342919388755828806371207909597769506956975304467542361245467486277562221682682675460897101886470917444286907916649027140987416619873720985413339633179093162743230631484408320868016033656819902336354969512654392850991254343150930237614638309015018733304259031500873692264591726750392868630181602473807127232970816688002095594051016380852396421736331406942874257884703284729304074055085836392678167221628171418940863756595040989351408263374775106329710466998613125556968831151335343776420570669828862661849335261061662856999633606949355375076648143803922218024292124313577403347643232484668398089527525851218509424333658612803995777973176784828027926733097310847073247585003426984301704476589861987276257740826607089773703408070855052156080309133546064141053253449218885847315576198933384001587934147397744136360254298265339925537407475936998997723311650512866177801052205663144004187010744966804703663642949758771581207228332049741319142424848666971505864152401681278364888445549017246813918577275650548401478446898308661320074046377181177590511506644914170044315409414595361524454515432922815304717194014618231635416949539795501181745875841305689268679126318963291101402450354495249369953881356761101869458624611115685347585472509183891129981649391945931736442420272333440042345666556614215691703625471965900036584604641018237169127888709769288838846434547607650781425842272135518191601522356074058694631515145138241314485299070382615335247001591615382369365809003222186402504804919186813974216252056591505468244809594919502968220200415614617844768129984871034718807656120142784508792855956571553205327567418387501189783021034571274136639823975274316296635751532414440547498822190530169539252996730605710354032736898773492917338568136100098463992888011359495184134347965910111328780690417301065266189729020462541993709885568058119878526715620750835885744379277885667661240825151505967258988402307406242936265219810187577721965377641474823724793255480403379544032135206390084353554310721850989129649745645956212793952988412842402411988417735603898135802998332157368962046441276774476978943044892506596814601659004466163684780315032926830829400635651714974286944606848604456622628515221268146328530772514383147661782085432000134262036175905025898991593656212925329051216333846680676225982553170544800029846938360021330616291659914499088139235815199567750856570586983598207093661260518453249799613909866292515385573210536699039496682374714248602983456031500264412472336769560664883519197831487671419346922931038177634757935167160800203442290896641982115484273364705800637298541725821654919770293128549598696819723369966695299292295881660623293691335151935634441018507834984317506132159660500838928230467396867465495215126525731491359532433312849267939118935586374743669536353275973235743146447410283989102842763526145290802934099785240360352043708183263383390835383009383072594740703698797598472002321760189248119576838216277900217469322439713806024681988852306448140224055161561109849362099293798679242841623564381114629556859928974797238247778666162613736493912270008926910308627734082396884830173164574045339401795096468495233051147011554748977781631050726883823174634835059986236323549384801018685616475930934060179695286606516610629516519192913127592391127636090625350489779994577355380927561244194005289068340803820025345920183630581939240654660204030677824908073535050551545976892681615002870820827289537417324823928540053926582138548081168075054894056541917149562519352853505510349249445919823357379323332221138791159992839878485482565408710101783109117222161231414243932946917785970519131710408961776297013397265141631100206869961215787443348973120141437198993039119804781676070470192592747626251744693735152899801271281432963060610131881265983997604253942439102230766383719081572312220363726948686061773071996201195825065901935456340195273690422316030369244550480054509483348418419180691449707088448926654431353387945057495885798759743234352654320839976513870515451861250648431634238689321115193512153586405538891105629661942071393994933036507387681652232775343140769920864559278357229086587736316851859570196685536196227709755186450218544218893656580405953398295912295427500070857111419192672384345010852621199815075033741590269028407481533653981472053691995691976626651217724730485860556283598745683029121688920475637154437419912903350243605384332490323212571797772592731024128028310477594176197407751941896759126016187822454118868524141881328365705026140750367964782342828613887541269143452142432693966415365485542276719891215863456376220769815644615679541697508297184823139513587037142753163254846663215757659012340295787419726568248774282172515878052658244101557035587384586608849439729565431009090453418994807623245219218373468656854334099404807960099204255108692875089308272755325994006014896291996627353504256544955335295875500968790452657995873951931354025817826616289730862679851854718716610264113499833144390398071145532459065152069373965455719652421302970946459369864338844117042261422977873479041044865516723673966899269730530569008279013063822541538960666051751064119547776228612155210760398737299071524220280035111873079834894610081058360190932893360220557416971866416725165073624553394403202896293365017287567689728458023888503797900739129696352972383239890595398123459712482324709687149972834990290289443850883572239364940622445083947036478905745667165966509413837532074472716805128343068638899429605620600924476903942908682225220920385015619825328252395096144426964904766420877787907189051154789447557788863956398989873079327650172551003902001009083215162622259316788129813821635982445252663692813889776829713763659455572638965632800972921889226437396496672327162574657539088219889660555998120405773046096985217010118363864936585152606201542097862305994073486596389327864698472870267826651852225375299485563384804565923731396629024735678146046546479614135439964537940845853756262170511765382612870823821089644924915693112512559105578223354874738923138754485131540070134275907658819919684137513521355316193251776635528173833522356446211323138140613354402155650840086527579579759059752088600945396958628490338339382471808948028045086331690533798440199531768232200580572465187895361248099917945208153185363473242643008516067064991750295477265637450974140971304508876631114110966661532196049444277399504171628381170892073326457669965996029670809572582628253634191538703412102742164201262294328987391979810532100762697729243629022407390009787298055919275145052951151589154003102367813006801238701333070173276701302127009763560632271866545288473132800735851159827107368331933595708448612461752250614822105055461370721748850217400200758945979896317930836657398158895457757733784301022164943596053746592193901981340839561691471054340106941185871951192168277470278499344371382106879991576019441327268321435070444886911949801693993118574502767556437629988807093221382676012908023210854029870973543733219205369309315959284138999952143112128254487425088021920412573802712243644388021832550924032697271609542007322897916367933590419261559839785338316467154204255134205115740074101537338548512045730334640651625198559925418579757495723084091508102571669669676096708331697245843615296054083685910548102078377592792710012459403356876066016478190847721235229279536752604044717745401635855755701747702061491063564750370940763833680147249103873609185627787232048327717333922284528837625667091027909064689487156598099432913921875319516322547840681743077674640252811466308472019350540554651340408952428248224439970872803440341704442017475239505239036944139371456589882983153044562890815588594042417844102680377785105445613083237347211195708850758505219985213897002499671531742822908641219118260594053703376280695532235005477446330569648588607466625401753350383091426050210413732384554890577455118357228719281919817601474087347456659051045889004191972375403211241986340751511987662105164154941566624555528569161120945487984413988515789061246116651495481963146752320435995461554970102595568596313593872846954652008965794393104028056704870228612261459331345435442212253530976385333726057029356125696576835455239368665271369374758935808731246919372075134873033152289132596170927942236315118943709947571747913070910746462646868578888097985785134536606757351304724053637248614975075251839866762612908429921517082728175145467550031419327364912797919628437869660071345101417600013889125933156199302104529689964440562462489250686822331667562424747423039197669009250534745761569927527703641657401511323010036157957768478360399270384753072323686297394690345786993620607478753338307830234878905552073178200688745636069681078606170843255734795377540085319927296146566279989005738125278006500728244282584419895039253847797694952323443660690952553848176932391030272583974394003114659350488959178976852535492481818095175212865687186897225892695873166169331796587976831626913445348237042730863466790887590118273084609864207605498334340839036096228886265979379434131460128608762983740208473172579038308625991328003578091166544959388511351676334273734148798676399237529375270766225470050114507386742746286221263528148208436996891440579689860089697161500751917863134089464961637291140669827761371120066001724657668744538174074649266398230469547642238070305600842572933796860186050165939142325209691659596199490205573233808592249622403772323477437899070016325022243709600817514799634998482023098236044648044987952770628143703530497781772242531522804455150034445156654091768609627485214037083622095168722024856984582518665860275232838248442287087420262184796410482479581029409103697277889625870182231340524156221741929936185827302605901937181044729329136788967175979055916879705766457406336507947112547863827597961250010034871107388335113904202271407774723920009561706734338888852100008020169352682011591339592063323267881948323367798344369333068069939171232914607263496156151199348797409396522413837336059781147407164654126223518757437153955866804599082345565497582430123027410791768268499512807093938793851026800473646510025737669632953024007778890193866452300592891937551841935472580215183429007170440297692183814144748179651824681871271483378980150846456782741222238010089824727010707573779448312307061699783558826754311406806415646782297751051423811490440342471643057307563276863307950079006141031123684788927501886551042082047060632048512912462921573465477928862497236464342965284197232543950116254476218754431496159546578779124254805624757448892786480525561471091392790734272926092718306067224956795918864217435163394884104204783691798786969146575409509129535937748097106357833889707884270884091114925206520449333010719716703473890715457302821777469342446921904565107786507477708339721681269756041457698184437480172310268895639630219077049528565256311408574831128093188947610582884657663731020609370509920926572737109582517342745663416260704687871651777438654455036197141134609952969793260088698775819287980312551280516768384732057607097767543829792004702996102188007556468685830945719147318888292914899230353368248704971114458862149678316480445109547340283633344133642981330056435142024068413087380036346050139343278716150090925361552178365491506355694132405134071039132665198173382975621614918933595768460358163376162126275142828074832840614181967403403685944258085283470555017007190550190333933609922537234626456111276108501421035488676667744660935029655044960501036462631229571766998340784052366050524413969015356476128715292620974445604387627751063061469005452300983304413172882891283422466997468946349847965661383122941805458727762735137485912590646249973439545063975356132515753526450404751090992142258752755325399187442931108904617476306188644957861901103158263468191249608745760784618193913428078862653874685486246054740100281571048555084011037982801531971141018340720392674211859735198787794038928025816086613931192823019766463933929897964217411068547041554963398814001260573324921709810319984678949421031014039031840418283179180837193111305429367817388966319057738741846943045877853617322881493386847733519287526583788825794963918540414520191673698666986327978662740454366196041106027420367298830507949615108889971596559992767241100604108886901462787240842765156590247416377823581769600971789822652270959661867840134903849580067129945825839760529980553643774008683005171877684210694715490879350862337469662903686413907930589554401208051391949540703937505121723046449264672518039485584227333050971591073120969023172880197643697867204785609841409722106498165865497090588563937352615570656681914183107914163424223950140470083149501844498099192075746645481817422123793685859790490732747141728272826125184950416661633281136615221454212037373124079557842882901412721930769220279784714466517909441454548795248974705630340765622537516283958771145072533871634279721484036556753818882474644712148459361680816847981981908015943778964314288090190470310889040228217848087687158816681457195912867110699883328006385398319560074218017254486468222774995002557882452990810233185401641035746691782157674680523963078325409240503178110990770057206854709803622196160304281516312509114036335076865587794469832403884382100046939369493197119194537306413163790829645652766950808946518931975779232528973292277138256518933789481359101694148645165615717686816810458624725112851445480700937267137722933049764066835180799647839473045498000477085086582445109896343001028517118857595614288752584491081908735613274307719760376256981638207964368565279382303126181733904699081490442045542180377586745125788211903068197835105895421009697977824418729311454104961331361692841356107226718478422183634964838569366366391130302522351129858044470927351597026842484459567984883589525201724210178385254480563308144905481662216096206034863593899634006287895327592560293861065620704146787551414183916511489405673987470360435662819561461019921118657453904873462887513235680094688216508306931994348017175608631049311154577336295049016846384549427357887300262221186686566803555953061440994947360189509399452332985010197632120195053875311704955507979955253935925352066482467339437456730262353274060681044361400194073389990115375839193043625362690383324226465890506632751399065668800632708768120900439370463699027401961148539584804055480498554593905784740815280500560396361992667429326208882527104889737746706909501616280587207115239762171832532181730663606421945616218506459114244088217740903358824492027705138251348898909118120649735705457323002183006916985389623001808969301726082272966533582483654583191032953452491549756028097716139381691158930428935801939539387164673205590751730479591070081027446162213590363941048814822856883388372953807881772210803547007316602664793825825865900168610627686231772844227456349588381659085517811319961714785653250153143349105808556143593442708186137533069934643265787990828869392759076655949386736101347773418488589173847468154736115618938719482402801878912454104855481605998494440374303315307150667053198769734470364414446613352134169317529328692109434010902536522841573304518546786528488659057722175351212264674942687429072158902084161180763985115404781561069099973025933257985546957095940898647508102298257460361920513192777673995868437480512279182046678645194526766386183742949604181317640802402662481349799768465402628853606705621240958486055728507346916621169709674771144110126866474512420521329575037407769174240917910823759320668676679387601477501860548061188942330533099319667094715690604347611583912543286066526684596523476244965362725873476916160239338499505269281032887900342621432734699526912579596097232299704219035453941354452205667365430870300761248676896888759256132757942188173152228025208225868344027765141897921285621800259355722142145300458879264706271876997018996127601234068202333658098195783214451506193718054539622917759375864331815078633247247694366613058595380960841426514314743181902258782499287237843236179601449926173826542281893429316665714102384614111397017303825221766126737511243469139508965416438106313899974671640207035906394940013044423851644838634072607258292719053416452778990250212032693011922146907377741961176879038441346282629976525826020468424175728998506304760775942512299491178594390478141396302373871516691127667285586628235618163191554082618047700270089464011338325978275456232341184942315763893502247088424552238923927115419300552580465923816126489943135463315963437918514794692120229406795267922661754775710434144684565803157818008842423677395451847087134527396516344661935149217188009569483833581803656726135193789117681275868398406763448774266338168096838330338871347935283976440614500148367479765415346099494215679476335045579588139321810392650283717268316471289384415706334769302300032378665052645885468492975056112857930905823204643742682386028171418582821307074887483083457734319244393307999650441468144019620107026280342021075657771619738721480100753249567148252734373485238397384556553545439363344795461831945650092345543416383650983271607247651053872240206669835695053057414795662515203472238295722210391512696717486594377765556849626412763809988934649803869412086794798176957602704378467834068896931314379294027017813953875461086047575736043645452482822083807806591337266340208703535935468894341695586128209034373974873454821748361250508610671727724326243649655759802816914372876268432824298592444450104190661721938091072559194319341649984049536542704408266651336366807075098675012104444667656860092377321033436495674793557031494793839165950665964185437205560384367440774052944472451957942696534866014310482529698110647157755670326325794725051252148877623375394833715544943634212676366732942907352681633443476193390930652762238641696590662803960140845663704114884762270243713809215607983847668659479225653625746388380885291039795999233680754309252178324204254796418802312587353813966576446924811222355718082914608707816301923016437229656924709615508121821870662024570750066038533488733732537660963272487776201103750017152092672522473159023738637476429914488438537620080793442836105740785287178835558347407693908382388105661846266204421985114472298269697281947378416830153316778480990584144990343797934041697160585262463481854470947052358326040878430468291128999155320226495518132337114551564049461827338443220854753604897179674740532305386979220096150836387150854449407149043912024739572479025383400552976878333770826109926834152113299317030065725721804060031829860741823838230815524736165793137697136756531779150601681837861994668344843129316598691963789552907132230903458502774689742956618748075983640208419034789068595835062971592911367457044051025221115915723547511705835726030521219747131513383742265926311488496719576077968341009833940504780500798658224259173570037799696602844749376155289999779604112352415745465832629390315836231747625353738010893606586902402485745693697805939971176441940011673827195267651575404193405550500001449962250263395706218878291625180638610802049700088761308607046040595149457502117395257574331312100684431810993009643045748903285174790674762827951540113776810975141479652600716632973918187505392328810593888541850845075168862198331324672540320052458946796221250445723806887762789981571622095263696918698545809322294102415252161067599181747439183150410515283218737824063018670394784672858595164319600240041124838051713529686180747313353576037867833459423862313084232552509017238162142847936862183058955035513861017263391976824064245744329534068072265045443586186322777135366464923476874164555426579137023728299180915794032084721178286976443116128951477409629461212625854184512007646900937838051907361229694157728281463571622298799864169668737735736326108745765975784754426870643112666575452070885291926727440038867778087359668930035741649389754339936125711032626610188704444404462979142869515199328447301153825841986887348667001974878177937914663290246824521440822973834680928255453872266783215758371749995010337536564539213883049227858887972709355790520489561240583896907976470358501218310420565740635370310781139816394689166573488095309868042101831919896484646849357664873093257149606912210095303608550269651399073317237186191449040936965915212537345786181006405845474784931467988774859907437705499403613250288621023593382996718659906929224659606694787321677495883296604351883830774335392022189790388824535015281092965236061760299823024604863422534075954819251126147428089948757397614488779949139220802760148344558644404758209121827585393929650767716889185899456040967204787338219940700581066312676311821871967431613435928360554918095903251724045835319792285312496298867210000916596500757864416584329716049259839506874511587504354948845683772753223253393210772698639604289438570643005301886903612632583079907660670041312611503669688650401903345725600011328594522019923199717523523119866498009735933559719783945337465616043470677216943530870618668998004399462186042625715609646606174921090682169272514956480617711293855322319906033986748825868190362303964184237669239785470886585100841883769310103492039332458352053309799110891939087821503202670802770359114791331313901314651249886340126665393686400005816393062757169256001288426230557146687077441384621596289370895423344149897824044886470947332642768225813143578777322825439157983903133705868077233798732409101024892335769484475860814088153481757402119147958380274691301759897763392589671807563693047073453511431349468432645273422980397555962293842410823871995964160104314288594061149944274034879920743843263249217825845626736292824727401436641318333979000043668994713250671719726143830716730790116173550048510740694929036996108379300357758949148795717378250797844345187427481720001716556338544927285892447311961666880809030645342035458410698514723808962342496833764724066223051687897407043978566017060713321572877033844662325067556165169015205040107250003638070473028661787109544043707015127258491532483395212831370780896249057610400115017861045829282944677447323399208301103817837182097889802283215766176117343726381145208422144671346681608243143878985011362944079178187373422932839034400034736177880876010882961405946408478503671217947189323104495975598699998219832603561627896880277354575494499100354104724964374317815335177369730525933469873645798971757259244296652257482562480926214370385624804877518440700554537324768164953848010484264857487182500917979663648904568896010654632693511134645671715585460282874995171275098902806616740245862616960693903311323800968958799616053435090289373322156780165470638603617330470469143163624504420309858583097052825183940638611926220049388835389626372560055162524464762355182843103083091749804636152315344172175169024638443622036811033530578044387831805230392524877700504077925429239251887275938112769580276683044479142879012376991792838802673332188328722026955324779470745276499466294797434426965207556258010763859876708922212427620802782826641279825687803026606336091846812670420552309788523679196675088018357081908528090781425850120857277873611778157231445763470218507424825308207665239149523343861295528024125062307838001907752036270679527655191661144652674572313724209851004220292501396446859007169923085230177530493754791556038420750981372362735149828949725770383850702976634572651552387286837206702406175112369538572872783536934599497369862180297133468981141200417822298964791876640658957587170258524435019628077660041260344093825741995466691290250848710438612968378552613776803213657277935474082860241783996011805711827762736340557644978695767784658371189140137176027538643785847571051383820838017821149927464762877939205947604272879822403527790883028176927277648714312887805515111193774508532495453589043495219285427851997060500007346369352098430750404774620135810494357458314202765087227679706143611834839396361318543097974246247627393466659136614283982858697563753082292898673758388885437533374237291621461852709886793339628335879384946721998410991312177801779332377475759896720543580204620404916609927876046698216835712021075483672223285063359170734905595034850002078622315202779552241552562591039474325235272724162060753434870884475850834651987178629869190274598367476596978764232523708987582754252571891516155769346316642042413560861908737696124734700475559406172093226326565309051380379726917252826243888390732558149046406693455040142810193188453233617797563965306434449886025073831579964298637971164015999222092841610628124452543012926966068036715073850140788158965155993910660207648847580646966625529417910385493052243282881613204767272091306384005843570492064901160990428128940705578689985664665039097588080041913630243028733072838521363654373584944273151831618941676861988760082707154131201984006317783915726225585191861632071959572615799051750242673255091453719058005954889062740975463717448249727482799050105781064488942070128867682873431002553092595938623234661803754170627315831770477381410487020536358560035030202806966673308637644878295794389570388999922377446099251084018700787221400596122626205005435451214091666217384993814791213245244881772378241521820674763779541386423240700472387125087176414083197220789516820907749729625759832696365151262931123293313616322532645353374675036563459204687549666604248551855359574243248019681434236635639881103731981954936127772894620605373924719682399566956395198139453672352226795372686048933208670465023670824813954894119521239669622403584382285617743708595213186611722514980595227211193981533183222354414689306238339326599329388973649284754506160465018703135055597042183608980858243185140185703353504247027124803680097677076664585360737724765073842089000089377816542518887411869068085506189357540883649028296997796472126843898152676123844754078463742951014668598477624218957775901014488028519475690281061690190044193855135876892620653118134186441885719050576579736765835863210986115322215543609536008534181020579362549705620710511704009215134375930023461975299080299307686106013699369685039368152452890994873284776987049427741246555017764359293281057952420896060685299156529699629893396737194905530578309720427295515052399739066581603579903777514501374271379681225011136068538136271727186975692403696858564079685598658351668965874230605262344993006119885234296984103473402835635085494421815254927908463171405734737458769678577136446507366505684154225990103857520404532109414170979932999623802387055723879230867942118111972908439549205377677034827179806996273801871191167277550374824366782272783807243912564299285365115842773356821822399952082991105186677556763843406732648920311264313296227591180095304191122287620178495719122070681653683439999758080730011061406656918819737788329954854809041042883831678092190810073512073298221523151799207016970888448844722942491445878897034443820133805584571564123840005919354189352725883806786160484985313593043563037098173439590793245505041346840326044547892534779388748285967746007014371511282910434636464874389108234240737317839830620923226645002257276588665456131259254577429003674735170479892241907973665924281775712073790211790154710111747317340780052999232929516729212347759580969704758407770351341051627067587151398408661727237370314594510553307367767899324331748365284326807681436965638099052394202323810367851677161040746394632954234962080939494178194005553085547558321695278623531021535991929474733940721362868386432596482397595480943115057842692383725284676487524498850968124246571687671687337862167849418400133130109436487640420916547883937188463796096349329381053592572843926513862773418105250904385600858651555672535354457222243822621167898617025502452314888052294618464336474676659706851165008314713295800729717040220395892007452335541082279334738959816529334687789740003664644298456220907737804839540122799901414986171678208264016604514567204164757316572906916093327629797282519865774867001148734316046804065364136308832156053537207514314203250511259722291945430748501662000134426087714803844653025144507490645315654957088141631922525493467217958222870321109137629232334557530712097843003158652437717796303965407050456009939748571163796496459804911206434164544978563228911640258984036354255389297482434497233887472012566592799346434267228983691357996373296238235144290326680245250355681566846371723672495409203554125671122300054624041866185998652861110932620902621066392934472704286453533530078315769355021641926823787322578606183979690941462354758596470680608681163576041752313199111724020142217312589339813590826791381886119854118626563904890443313693274886025682229897081621721505007492633292681804460625597031331034464953986653980731003182981736612200346257045157493838396105655455758911665178875167464325421637856353475882484176721551239846042512736673842319421304582624634039758159842556423849006755150223452475810387052123578390602951349562903444081985318473644018524844691256252947093736334024681184478536222846369847646785510375748731348536234893888676910431069722411323482216532328843315266521631178917391608219022096753119329928207583762523984235775102527550988372698705176188743115896094158834764677329252010042964862399948316148183551273886774073045211840541031482341468311861940017280955603464636235395980186257664113940719539678486434106738477774914864359844529460067548161924052072718520066204835728493814623754664439408008414365195884278606008650785181290861370669443165588067747846355479175206715604026682423739994373319810256456495911268460589534030701831918591656509637372983844601892070542210087715577024325283937862702648289714920554374942064157320220639109437942004953594839431428062344750326063607907769158386006359876956874399911687873208263232479129506086668898376117358694908155820557076741409259756675627445980968375406260148285547251048237570171103926110908743101821966007517496774618078130324695520614167444101927051847480781142155567443018628171903612624246703225145578335386618616364964525237974708578677756813350278638423277044435690903076205895996673502840377078090703123706853264418523305383617110719789082244570245530858910746725397239318567380887544183193896425007609515196469302173819138108750245358186840772812475728540888423901151996062922790860936410382397482555127286290782881436953683999014919637555929792628210739869200010890469907630502645130206880007614559825376145043675231434492723802620307019587943900128182676761005990624053852324466887792941004179874114714054156809471733222321327496200591574296707022015709431182531495699005092300357669415147076021273200945163655839470903449252640992492789786937430766615124919174433626141470533290329337633443798180823230293481523114618719814312930530330773802943293812270973407230563444111530882245418643858128071970422844715810017622250100047181313805933440959477557099533219736085317259027238074806799154671306230428696187656717301491005175248740861108910172716084409537787659027819264889536125781178824049683128556782721951130987358899575716680645739840312809767057422818558537398972917497832089340332832689076550151291251313621260906500666032617183323265958838087272190800370256685124240260400528177316471760997054301136317142742792674880654403538825018945745320556138550249100814342087406082658905303436657399075502043528294310887030911166603229615364808917463299444870738644742241132360027235540687022738005544259761986253407463464720754791201536607646339227101156247707787231516341394687338651841774565020019583489212102822717871617139802396699616261837654408109411505166368454096771217536130894494624134773663627584241600622389892246493844004109703783781531645844262810051557264570362656834875430044408210172256013392546350001476888591784555952911413849587079636434035594553845692345505526779294417834972141098220585097271763674289336284145335516137909208847809705152065059830917313259920136744001560478476664156977427224125369678415921317492317177004860512105243512723183112139255761810606641562770983676584103465414793316362528329442526833281181845956511059027533026503705754106443830134508442062676568090613402068404280140477923036997640487317939425258089368248865079751809681253092329331956962054952238386383673383650340085054397256116605408396712701390784327638959624089134883472778066940749876271023723787775254088793652704816934030191389267245499077938889778677971567789829672636485604258253723866475027677393073974016749410070315793846105348678178494507785831051739388651112524491239134928979052506610728145987356244910008685040440685377650647338736647857302210762556821233539161535049585181918602248259746041106485629997033871068099776929468345956456496391049858408941760929270583309197967942907853510427505327195170163968518168654342215825248609644849600036433763433584478466649027029614143401757869279271859215484762842006569522185707578455685846169936025697752349093293262957420995713577581250529196034558159662948173039872206485186479550900465494477030420365873315244919108150293752252009803506615784168961577559410249968036653313386054719385985371705765348307218892129587258428316076144138424628882429661619883640820686349984355493031792414693942268711812437517351511916520437933535328238538312284829656139360314923938544687181723744026152661983921060625130477900933640132261982718595056880833708390150139738796857392244631304859763464642327069289219985059348223528922253382809845189933710249794117851389604503799312820938385419148579435087543508043416675706196828924881737854469856761674408820263537039870340145854889210143740800641452794234922016350248108215582100512519667617667966473936985945689282629611965572476397093602093255224604953417434517013918191149267008936497119630777497804615638650550194807501557953248792850940711819561348237925181564260748323314736509356791186857494494352917068626846212756251324323568047746380816138219085982370787528951936525936612615281835136242422636853780164868308704162586507375660182594154270389823848473361269803020375693288571017234839631187607648681492592363483825103245692405736131141027919615024672631433689534414041416748921480380414526906305687702460016415172524973110670169128608447977156167619254194749719457332581930717420447645768744077260214676985391591565837911809259943723922729032157330430136118347516856884753700678081644057430488264373697723618226708679918709313333549969942485087735231317683390052615702500816824116475671850994994455427457669604575946596698119582992192743721984973217431690244494461336141547409761183676645363046717371674756344501485652024851176240102310113435764725952377389856175075673660216912209882014781083980539800576367507441238117678533624230516085649136964914501839251624354110215934785430423053358272527497575904243156360440538149132617589995059554661622481415446305255160927216191700998824068454737922960952815287785059015368530336447544598108572746130777126858487865364766087824513748029143591911408273725850994481910089689751923035429663106800158979405013852496244600761087755163631710524454661434617388752704661085412334192036327490860157947852497205023864475904116076963161918848153488152471831366628083742282936149963157655603938352326530571427820061886225620661917884151004455466734019209844795830776179697913614815823677825924910657252102841295513340710481808316814423012728811125766933973706992328303494909643832424090585080445733291745758883460176170979547448567062585971485367349791676485616718472827193495844901362697488494874643460150243351077363722120872246314332238731091070527561356673652682576926547135772760858025771943480668248963521187404381100727608056933985797334662439231657990897184317949106798283880398972281782925899243588023272298899597247663076885714845226481687182709171901344029684414202107100272577290813145138875165142506905855941973222882813102296333596485139951817182942344465093868957858453852284154368142164843880605806226669145794240384878753510033560333864717922020054453015093251703627875765247734606220873056634436085520668905646051765734136925338836498134526831843987575907988573223562524417308902533658526699523962069713528379184941874442073353309695664526218366295017608041273869564808281807597966845257416912355181089095367986990790555095641652844536639226608480180761831008513754265847897680756140913351939006883311208109100419828187116822593092883069751282042649399907453030437455212203568108893217549218008880291130420031496142825386433788511805646651845017736827652963788370948835030510188439534829872636235302355678396826801849176506258706392825763010447676548905291488593745029589788418152382579778736040178338765522012262871730917303191497109830139615997212841910979133703715040995748058122806360027379861386412922247652591849541644691717848953904576542309311497640682110145464747844929110216082612267837341091233046304977957460116800781253596930950990614182392993060947634248087622541949484956074249184916442883150219508428452531434837327849192155233142823676734600086243945857845749573055985458318738775631847696080795323438881016224311906800653533391734762653113769707359018294217815320926126352219430031702382005922552228647148219462986877086173631835680616939104542855715150705012797731760818996597924438614380990381581370676571225243149808433200491003156194671554827239620729375389438251079884946028262477862215005858564326375359572198125029873980941098271118324588437169061013686307198016839525878781576079654811308680457480378762841243745088276004412343914841575902150171855883962494929849657255087591609950868875253740950812382206738057563771456864681200991031044750900921447021925417093581298560439253088782775398865993457217780154170351539783653898203728135746417004575500282794356018495495006258755574953543230920460511825325749157686219215579420443090923062881724050050783616965842802413946690082674765956210679687756971601090881514510870885124214854521273167129146098030221115275253924963996860491933518279916989014427649358752763287804724298343466947273455727868318471543013678811211880810770818088669310338880714372372401577125305947160721925874153770522461048143335872352092538995840787056338166277385291662571221565610850788791094827767811540304169756166400452365321369703952572655029995347289581965410439889343927845850554539381310598984675650083763580558769617210826174367665403170356667946609034818927250382764923761460076625470340177091136874846200393118568746606429352199674727880580630200150473921952795208095729163011002448230690975191103655034559596884455291153441663922428216322567378316341758607068883954309995663389062085301766276638413637351792269087219561381201379301891992753442560962759284161938824447946021373581613859542110145686782858260226335972865675371836083444724108647273056667790179261203050134925440132824018739183674671258361505192996455907064702849586539405682227420441937824141605272055167882502412660200428446377451550056481208980076822108125726844498338712518247630756295435229737927586393836268551515560405859125754443683051375299497685527375829372679671187771074045913957088542973248601358408262489524671556637434459925723427942173689070752672806069258775947942027285739226670201856868910870617531646481758081781195973135084916544867702650068217939381708449315728536342272549468439941682556949472789029514605312412738230596142422253991373691616671259069997464216754510090926383856648290143479233649445081050216246898872614973092039392216872768551093511736670898099421148578255052247871159673660338826843662969038406030813178506669414605275940643314836904484342712970191870342499658983829054560070677741059647995966770914634166484325115173489446193551771568287719044072657594462670569738106830863562134543840927708667420267489697828995073414917750717834160930091189126773252475318960542878766622546556394778090291859876847049877044370807195380314572992638979891232152958555222847504503250600218841881973696071612188346991321553206077980358604478259068372952088205265500654146640322637753092565478083083392761006416164956133247541990040686209110133237816434890958574596424992120876559809414653700395926660265898846442952050891544062212477544673519625270282802546466785204676599827534428793195883677975195674848530975785167682262172233859027569955048724050182116707945226861857229196326670252921136610291484909658600983846545032213245905000643620436205988705509297767309143134776830388653808484880483923438541397234406318806088498221463267447694917880212360766089688089595586923998458982465429315830207497509679905469314832192135711784639778791275255343703621973695134535537555072588360502005570924327087973480133229910822453909767178099333583871353327813544572680292785231533578879388577706551542512076086891222950814918496074211632134481010488384569321402441907149115724762317802783636548884944468686114123286002620981090248124220486724609684989200405597553539705393793663628475014708558654914294738502581191009476726333925641462879676352735563463688662302074214386774494837539419039187449687426040058072262458226429582792726221433723036777024512414147569518836932810522163416360952383004993310837106796351792464519689880696076329902743807132411475924090049079467513631646107806867586527892527166070728148736294619700877508282350564243695038584857334877459022593650682793629959614210056132985095938510224336522908291481319764139680762497318969713406172201550778343039286960062215122840692217220546842210736240941642751625896814440588184529722396733520194082153540849502988847929643533189214111532287107219642720784252532378887353464735345655747653317296941243398271911797310098613707094343313652467951147353449306473070644397072537036915832004063190772398567699808234761949867483567211661839989510509271742536661922123564439120953128040249096441559254538655393051920116843360462076869747453019441826813098566440349109875470895150890639420114769516604538581960395132784102162345545372189865497156747630796500657506409331401219130422756887929185715832465068761049633859477384495913137430924642568954094309431497351254172300816032448888984689967723301343755111509350854128397725949924136016447205269664829796563517741675214258598848688315440131295135822454529875927630556477359055803248374427084623150186716763829298834204071053176677769136484767323165778598641455552482271038528908710526019849442249029018112661808379946661956370577413870689597734586478689324448328307584658983979857988785889865420008556662200712678374526717741042959830808747024934725044961080595773117540417752851281020929440993844897411248859824377568185253045043432943870624912556039742981502505869605897361771313445624528799014179361321839003858386909560510993162004331425732759427643235013802814504915121914987181818823607186843644285699710646745795795588664059089924346669071625140932258810802460174244182306899114307514415565438880799562967948503980855745707734015373234707144980681925311509896143562092568728073158084477415417629322046027812769435649235796757004265699457919286234324009060485589297995235246208380595663567017444478886081034998597739826857257680380992203191814193291228765361878604806387706922872780227833486553439128760737659243198272464717398545801755669239930439715326598364920813876732455341666346988744190545596901189993036661334726270181659591856920214988258251747611189396344402406032164471346782998847333256267723638230768199619041825204806022610497112622881424029746736436292333770249569744050223276468210912447463548222270268809680895411956729371204758616754728487907177775591363002468051983625744205611571824276937991961750848327997640906504282373668466806467692391367145322792564817380159354605842533739843356061800796187270141405303035482084853336964910734778304882701102644741901746487521697747482515726931202061968644865477598385223903279398069056477371863222152266946114004475746055975769984117039155053894756562324238012216994668885803883995199408782695209782208058565848043078383326599262733807094253965319686586223908482506534120937204265241293845783465435984071368684616938843074200873849835976110465331257541593258797910290866528804265733413074598130300368545732965692760242326039649423889665567073210108125941868811383934480369818669944385624283835120727461158456197749421747770677108128318943986554734650622202395867570689698220024602845161731025445469100494994538011396038715789943789485118724515627062832450840641330961822501527705634396066421229534294513895909457980852368045900209249207595439106344195765708771427328039259590287688364653704233302055907999821680513156468329041205402205607372377504396433783529754741152545424717197285004755391202466985364298328974479362310279607392135808459702527089787246674408967357876051165841692958103185763205669883201504387697488065537440608982776619257492455276964248538369012994675808855575200462984843946882183472554614417133182587273134742995777885231048704090841713212267007984738495257617801692671356919397391523404413320437813064172109105878701066229736489990113037002293364027075462506458063487139156443170719778775045228333906875437099465740841720137387332424286113045435206291172088330524864210938580594973286392736529565449851494304490449996264549122082297413653521257348517647681284013178829304657881048655989562136510166986303478303688990679572347789801648056194890886152717426112233637282054038305162983019834067995643581061436123756990884454616928193525938116645275185643827018003480470135535815105484651131615969780180783377392836982984592035563621618611006793926126126616905650530634499700314061531787820103924387485587265450339701035821967263760417417312947729114371148360677270195778557869705235316321030769222800774423778990381403290163285241978872470689908549426301670503947268651358599508683423863907170137859668589280712092141808994593521286626030672856597476794594476555066942170686787931598265491431235671106222580422466125318519496264108115166343592695288016611478011687636882714633136791969618552250122537700581849581282235831549566785297667647619080544149067231486976069984462438220374696247795480413554915972342361041242938085065672433049743565937758214876315977482294312133935859613448146953017147763056490814367232088894579270823801627034635381773386269400283539446290248460761314453402134488323489632254515488967921353005292524069431154312186821924895523880141411639563921980790910663491148353617874943004642102689288491486185843612190101350890136452367379790352367566513645031070421992248790335816548777007382233035896836926198455175764188421884172852960926200701159035754046763804831085544854946391089521696239956498550687602725945451609401069112712061367079611621807320850640487623963153197884013680785300492993648768623583359814475794540562879798182859231760796748285847101253339125220156499371182385245852497369587817227343065024192566666283299742549917821449558643267124830796995504354347668237202886326412660923648636700868516974984538660591706783076975459952545688927769049447244404153577105147945595902599059602746705755939805585848207122521181738384257627314140607864404628757100665636199177154768473483293961709981690510523234753724876314964985214799588753405752143229414199958107428839095623941101903104524603085721185221516619018645365818529568445319585294720090105928837846103803998189601066872028982765887010308124500727526103072487726972038968550567090320662515393773629950745013448889219495379212334679259978961486745788770820002615803557550098572994548738076623180685284352018133973115182078970469215180942102447645650765197142098068511856174625210109454899246173976614277585869287333093860895159206778408826999408068974627796823872385491505732692444433359469329036405345866935939705297385539561975298103379253612512002433324560000225438131316872002663294035437232018202746641657771246582370375277647922034673597319588111766772774398670204846716203864240608302900358255343803473584196736142769754929026032802890616717368520282981668660723054587784495668062525512159772741891756520490427546630008681263122322452512370424446609312555648900855254728263319530047896179658566831639868576452689492111656337291633618537338790981890322094516048820574671821065863930954125108566788875355868635902136848936600576445655053465248393148769129977761795910200896045055534279495287496091562594788605417681275279113868196935580714276780809494810709972711501595695796683563795776196494763220233711806687323207787787824694576832183465882521702383440072616608382650933053414456167721351208004010914287763949758613895316193504815536665184387660608920311009498811930246502533715578226377717026202645205639570663622330961395783290729402413103383798149567127267647532605167918244017955489771015567722493461854034026301929861401791115500139844820144742229267134353130027507244380139777849086159125990666910517381706492525953503809291931925912112643523774394739747377335800350667716199228434623014897150497753049224415756208437400397629615921942757611415848789862965656421584269015696249825365540755962309644483781354596104373001432679256874333482382678315665018941866024931230948131603425052521298105412123899255765691121160065573554539715436053222570323111268401347257416717372552861555835373846978740767302616030627791048041786688651743771532836641507278548097860867796191472201390429488260516492767304730991831501737676365020397614842937292060104419823468986849186683903967742251702578445519865683196553544540414367875360476783602930010896458250379620769551260110212872294399753190559880447832338263193186431289016321156285323555045245105392597965633263540275538957054587068212162378691341648287535965835767165312216766582761266489812714793675146421816289559679081948279511387961831338541974696889531887324933127420782222082467864884703332639273082914719516650329297083398352584995187217156182185040423185764633475846760607856704079881564475892183496773217215576159175957004563888067975250839694681034294785021192115156012617269693961922243298038989390425055637127330852588984595368384432857473015685966629497941267598178423324503910713468930986765020531104854228841586249778854947100336159496363347420485643246775475209475457693260447579355938712229748872508428959039427294920023335778984556555494576473607135893724752215382571430546263081661329576731865424817936311220818450539297270190344572493377976342007468562748711182471135382387894755730332701630253491977803745397215161652163655734304659062003054466730661635147773913306327159904133885494130282014790387395335691572253420224121813777836100345041145779109780918412873610140594974860995216282666865458256294549098941638737364206171969440125961406341590351646680094611897703357476887051294993743954823912103514668500843413039302970759216342105122330933879557259836724039945014686777485490479712615878498963919975861296487379466712358525228371769520300524970681773605967090821923160801404329561865837797294849797726866787441477841730673844148857793042363219926759391549036980862926357858600265800642414163363341993163159591883450724560578840201238685782967598578395625926493159884922741424775880023400643950306935172462785753049990899058892989093156373278382245155176636703724190484273150478141902635702690333806409495974882054370045490193305807028392155703794152997132779287734575383890329178843585839670072300479369171568620633767297175660594393721822886512440187604029153547898594596025141998013558156111200128488067437895799568763649329920301953966099679509644387258546620520192124506705306842459500346158970371050976993236800498141148540628359133155791394078708400953264797345606882353606396195858797438001490490699431459845922013711435663744870880104000650265712624062047591393733679449104159929127338585022826741026083738225378382452861222588496593540776705547912689656557109773652254010702129711320557752774093795597337657253619967595126071956019368400690323232222624961547041473429657900942978929410021356615992856127481731691404024104533473257172718288930501953049555315245341752283494536680280992499301701621740078254971846526183547360322870328992094173168943841014994521855821024037982003512994613704457089378857727472472079671972185439293247276986844856255972943154929827443349605797152381715278454732771635847138113248942381614477592451777884636730040372006480570967955297798725424007221669867332029569935911762805978878355573467081254903397799368809392953257467968924303892179467096061328887264001649782742674811992762134390460911523765749675458113172864701985287281655410794955027912731572071913099470122367635161820176597381164329719870195090124255160999608893498958238333498902312528282358833732803195792193777019898613765007273148711286347511879540011086576053421324770997628965459933344748379621436077132484009632744725299975678130935042951315279595374505707152731198062500235379860365958978102807499511250341552681845107422438816033933980401748423984588062079122034227771956774766750424802140125461319454946896213620325719220352535791183294997420735899237231490355952900534424450118548491252659227046001127893608995292276279097387387993139915209312101118965288014389850029062621101354500255698181761473468168363990576422805219563478218916776668286569535052305708818510045700090782120804605598817989213751764971074158408537188182063340489661883346686180999285168656078817551127835501289887411019810942698368275714053958387666929716974521828106747909693743505468942687970133155393537188302477889695111918675447265010677738412782096942769870728711429608846930802589290871837460963426093952907403836377919522594505219881336652771983127121913471378116701001768377195933643392689672111154635168162960575091069038398753525049930677361788455176139572370717119839858460196678856608286919402394307081882399910269573871658232454064421633870933593911127269333548933245408260320411742795982455834248981047686428313054873023871697729433332798534192095858728219806250491969743146016509352584214261137062703061748676362256481869334951381110374704467031785941732499180287080397777651980658968846124876663684721471238813586194070125174514361906361717375487648784742378206128881474873131285546642523801883791299624040816886746410802434761833882022975400159141085836530231374432170159972670816390833859128492016863923829975514664874827387144239029835012528771139348798951158181806771313293541402376357212440112205869999445355222323245834958902507997664840144154465676533831072879774130561906812827394267619366256035420314066230118312126298786139831293040040325924203035409755840311729957051278203505989899436008686456732245399413830447896786796803833005214521196137931738061495030386464877016583087315264597050879000149105837527261307881097210312921332753687814876426324341125560251979949468068536156939855382142600905760904311233756319992912153657025656199444566151698751796432223883732033707010495616690518622907543169225800272275699831845168309573792311885736314537679938256055316951774832397894081398163783940858727521134936726133900047814598308611251707415867462397483845417289668742017515359948899413796853079070874005853888266176012322215272769923965417186445991953740581665460685635578994244532668527638097880540821701568392767097989026567864878808939577425567700072712545175584590618886867011214852579181159117562128955435807174093427215355947007825876754746072966594226486538747546383452331208921405146583097788982585221362526326434621868545288970736214746933146576981213040365697868322199934052816268106648009192370917736688503181837613788420345354612476640432345654961457797332304552639157093044758476161381305658567805085528030824980189942573563946989313617755307195326653232006042518606849958760375618193968029946398911332954020825819533106350806883474890663514185522366691057426997648119021277893514630935554173305186027749348594504108480964806402327241192843417488040618037833765704906639265366229282227120406283871221207581334952070603019396259087434868131686554648239886247558121625309003254703248015653250351349662099978717071742838918060851853093765489941749197897599490234166759792399748812615946809579813950054515190585971861973023568453104120520625330417877565728533791045501903968533737015004756923316347180367999312411259576745562370158418803875466542267129402784983336841387669470719039056742786475562772075678691656258332452230943593061414325747674826894096327410427462967349652172876804287856353446351096262823070028158512016314477211646478857105096218888529178027071980732097110379122956308243256679530797566098387279327706804260862503540760678435086619805184672510646448644640740905412791750790838542870531409796573787997788217011046442600929977148163469620874134271389705181535723823948654047862840615385214690561461762785810318576491248989994161219123878291919789406429134387399138940013073627231458668260455124990209697144470742182848675910699223655405824957580359434134876395760490603599105548263708681700960787136233705666791478729562727452056543159120494237289401171617277823051856166341548046996281257587777570614722579243721634688086173015504998410667710264389763819473627785237661860496653183759735244833116921832475573235093121972562832620169577911564562325701134010837948230907765566037304173202428370347097333594054263972214596057468026918739947740814424835625833582706700138186620590314399701214272391522218922509163914205124750577476838289608141322214523004115846697730779067846165135718253102993235644861878404312666196424035591232955973097215037008633400270465078847794993456911622224071739190414990621757016836548577460374148489454354506708505845724451741125061161174402767783647123223543772583932044284995933236136206236552889018273395702876072738041407210363443586878252088009807631546288860638729568245367370223148758026964983377724929685693845328572609859585601677232705673807299733533365148056935568630980163216024154878355259475054646568431899899769309965648464165725528550863014229358621948109629143953836847817979238258087744426065036272164838809712842387022132888387541021741790101832370533011710378668699123486396507183330391898682547945936675431133356058385755856136908556491073562071031114879829992899420333330918841011401109868370200050555907735024162291740912153861017120493830776511783159803215446145579762900602515669875977219776391844828479601800526050033139293987658405323130037442349043291708514766132012499760705009260841970644604557896627401340251064330706499336982506422551637080171490115691605535512165195102758559417736603728026810333575578269341550047490856253263975855110207006265330635613384763350152704015228667977184371873854930329143172348289904556364608286174747069831061182519467978394985273695150239309944287608911959780658720900749848934977794976267896562866303668870708437399338211739509757221655021621447966028201690945189589817808342224950852934193526461510416570975283931189944028918414124133792023934246280361586078773424951542220319713538898268960255742252029049737856342212485031677275281946270636720352373343997340589970854102992926925542114895006290756055982525291024478111813131670290741682885199249698711719851935557691436839077859222440818202845087747800203539120632282156917290439124758756452256812833940470965988267602221216313243508563659055015225819631728534096243042263098113782389692131881350274138073562143132939471147934746872856203241643372458087111664846511694978179913279783023321486409044957990888180780123068229628915862558470556862367755772146510111366630902986496684280699109340723688412161181334279200555309398142379770311631389630788255499116546556452304990723942862655988921250321454181631546622542820882717044489962661492747345154358431484014496962647051519287100174759622633242543905072079568376519840765462940869414001506570186935405300474750421879677869605898004415358453586252210424197667525260736852791247463789991059701559125071937401171337485201046629481183129104570457490002115310316506498335550056833361998847340516854832730146207993156824029771643629694227514417772231411246590994075264594110671542172958250250975587109523514059460194817586644707162331199355063053316150247840432059643364755917467868835547975611617472669755054944998825333215992748263621276744336533240072692660472412848664618063547337672630335639351455707193513562106270134023159469839832850936857109881213162555712040919336573151328866334994728836750325478848434526117789203510758012811563601502861831504058015787719361713644778318371992816020985209322033947832344170459361139415588564158719958110214409337665355689328716143596634390562041822688711584172571685014635940109580111942020560069487579717970742627555355246396041180319966089301205873982587941005692597594353968531040263512882642430572625924242093962528695705410362410173415601228547063028912600371921214723065333980408725668660931145726640953919908055406120345950475930011685395828603085349602557881651005370015129289910828253965032960530238690072416264937766665184807630251443273350798227496994402776626720910328741379793978223154100517175057710612497458396098361138444086039053662743807917411081246151733469619716593662212117184797860536224437125062192964785334179216066879178347946261623786613923579338413741628725643099785296278137467868362596367968192838866854270448993117240136154060135149484805624803979193549526125991836394977619056689447106175863250777546749053413556018396060361263988937340994007928486185792621938056298980214732230934121099718657680859037094289435851762232706880739320154750301238406342234815874362933952582462711726133281456040946250813899609114182359955407040064470748845712649007178991258233698415798953126773949647915071616678884365506360441172344093459742534074278535989279076740369968171495402605607209473945964870494523445857454738544201223831830445725605444569413531742325537840500668863573212384197315339850539749936115669830926943579350377714520638049584277999297976535492032658324299270727664250669063950488635341087695142515605328578469911450961626282176712404618542265579260671567105755297279404903102858889001351326458636664540826700975253722749097017543717736663325357867120331404652645928696701985939307021012144405124938158262536844467929809875122602910460271986484706036498064527000723262401204978657464104074490652066187091335522239921804229804495539956564518282475864140935104332017600947469112432643251581810660672801036873681564929778737123644686206306433099223564939732035590024257925075034286737195741834892419490429693453734120804714418626806074328744898022114241234023501434383973717561856514806963370559434653675496895150577090754827336993556823348929910772405343386793690691968948191848259837831597470496900680985594672825756856700009077647985053896878623692831982875971537396238683367557154653391046479617722266238778677062484086760584699829705680308421293775816849575691549484353237072729653257347411284130769048175408506274321034981815643297074887288009030013872857870499349038602900948217330566381439360928608789346065004363728607553623490755144627671100534039099452940643880494195747622998918187015189290111825981317199764313608865898266213033018024082795810920866208142467920760041012906049203357438889222335776394346362903716408281623210763093800287180442720899974887711592498567912760042503365712280738089790928088256705501133968585773236261754055283276626216308833803919424196209934719568151295057523757071412246117791497235815889165193930166301598349774516891028429348098389717930782695153133553772715389026308150659385235881945729866435400036458763031148604196869791866608290577854271728543348004747879446247201737702488756597453379202454013960507345477076731364124036823751975851060466176743945976538133432715445541251189433103602645765198859559346789797570231009682068507102012816220632810176403125751243489125667280594196367607471674214385952212944504929898839195049586375291125838303790633022440326639890750512208075084784062736066279131108442556304121647646897163300917318679852676543767993552154884111815404535999177509136700665757966315699754311834299253551004162642679648558097176469740952808048937320368186650641480420055215644298218505151246347093858519191952593062172966898827399758216444108577034303797812665234612526405573047902348283113311874352974908173092274736582220067995840947313900397035211814446116834453697275159291771988422870008643326693800145548809342662390524075224554737081125508961500972963258343718060593589674057619604838715339447234904697761329882113142985967127089614590951524109322364783547924696838186322542774630870047336132525948054378716426525503769069638959347504595480199951177727271330016078839476252140498603030548151328189475071648937342648797526359342396209076983210696804001460344016559778243283945443879413897858252386162837150023931577969518655156637337957006897688238253590074419278879343419698743180344162985886540913995351198718670379520045299830408124818007722684407425668954914707211817594639026309125164131538789403301893756864232751518457517036622924684597506616739765324955596249468897844494752804596605673720187256408533692691700778447597125827309246280888831225704894849583761942474727813593117472439541208803809909343800800159431893559818132019506887230568938953526165571399492306907063897768544526524583708006415048848787241133314401786642011253317653901579790852897269053618354772697416841120696640886472901204919331610477969812194831699510865135238278752309155067780341247472087923620601680993476232535366272608673098030478595547955543275562501584751679775709541935355020845021475044110116609640616936110184894247985379433033150278610880353615554843058823941668478604828965716565050635695690774863307160605939665383498555970001098430615889940002468163262267855348202871955175522837442834199797390956776267507892085730913210500157396880270806592480778034442504549273634450285377675215521939953553567221796959467157504982132439653489845954796086953936520850920461484839587435155543436690079595240253622740378960961448587440470127656416711354584631037636307305271747396403910826727188329563352305513414869486566147794910390123023230641506764265099833592891701319052033840594647883913453644716651437490100282020817789621137150033482588753764764714208116344374236721429009060747608934523528032142494752474793497182298179722034612542172669516657090526433390933366303347706970075600430189015719984030114697924554771166585166233967020918685993893148776821240826608088341580093861279122099546562261808577667630544660061866506271505164891979641315765668275084400334126489089397379579343055441014160573320665047296972913264895513240509531036500536100374872275370271643187585386799924211474353118983801631229126118772446608220152757130835065709325966205410299796827848121499823467889583627403812155592316940794440012084144048699645333485868743557858732387771824509178897575185820114889091905441285018401121590864674047950295486893685837593571705532218042132330058294890695911116615134518241774020739404133617596845983926340700395514575719229033243094417950248358791904158544989810908955873328222868520147886851614628368776332594959703046865976783188728679597691830503257560418821244376406089552847703487209132590152601541890757526644583007540476712735917145656574611872556155485361061630725691125069849157702788834191464036448543296069342625790654445852303797723465061335917891107446559644702102663510634272557765283530692309531617085213493292893256338769725410244310260096954808767055914893106185480924861437601946715787741098689488452200789248173071914719095039045238320021335115595999510909687663199487948679674715189384959587612961166691984409543272893291866603870947466519842978294105895808852929486441321262098945733438590919848409769115334585698156729777699019529419803383629671101586020530100108754993392325208700661907310986221936317620164212089991620996884598745085209546894758302254619047538055644122907498661541233938519614155390019564076740263074929401349502670634558954526369226214977477547152790169535924095833604034160800007266735019757858857267386314953768838019888198527460806377506977603760085328329614732020920971704327968207277277883197229464868531729158972693094821466083981282779289860283008383561678419426228140781559428281542311095780411332776537353119645448501271217629623866662688519476290184838026110950755835515962979901530536094683002780062243725824921846329054248598898545053774902291415051235149393142686391229711004783514466013105674448486225733082689513488979133925661608749713889100172269499888297193927220728953505635823102502775014228670529327132166421230825779845442256681619017322853541806284614822879174482733442227855047742150554890264763278033060665476350593952720279978341221359958078858552531628058903976552157521718905436863889536480990021450901299439956313533533889137954059499220779235265288402689494376466696752632349484726658340030143705566422910372342218366460325369624831893054014024753866802381634651280590829392189630691341433860722131687347983699645891802265908567578280573988251997953556166246896645563976663022015945703919537499782911596090800258231360059787533984974858453751307955668510245680569821558481428363689405713514377019967287534194901072703895596271150149439829828266929812687256864662415273356769751125662408349025480582028274533991022743968785700213448238481154461001087397870231486936330767335606718519613431626038932150071280376532592906167885818340530068524299176680818392556552902369395848228193359745611553928972048696794588630505728616635936378508528931318745186652410919416478664278122730021649500669921828003790364609954968344697427583902451188945114448851456606706863833841101485189256209094613895906492500958220266839036608404026535975430599040392825961459206829583189250520122957721518247485690448931746556587164335461831285856389745445017635308100453324434529093295695427333094182251329096480161290489553897221526554220840217722772919751425019512788551842175743977285209518575796900376186111315158799262720300526192798223023301509933511890293372594809230450458208842029863119131195252462807948962910979523582173958185940418810425884710474317792918119711733367215625203803389120577398468350668273894102828453285338308594214667320711681208072575261971278050387656716985113269417720719983323753856915196127006277746103910650643094439091943630216855613735924552180409060791118668436939849441899993303028618800393621559051846549589511199543070191858725403365558117454588977585891129415510534344631578254872206890483973672678149522714179719351872071375128740827809644020522482672016531980825267050405464621037194570459339314667526795326215435475353577561271239799242263807948738540609671431163235934014958375867535577141481798017905959334292153079721934429555656272658639260030406425082137588061529348359088926300120892448250751854848441987226822866121756330447036115780072648104356116434864324589819535840570918512984628014341834162935757555863532303031304700728626033966797559797930168528365338131540650149253344101251087478845730913300850090325415561687846024356046649486692416154412092255758888487895442416970264917407862807857209134315736321280297008014413898770379345007629069765671521919638647460225448447613031927515519914030305982764258598449625167046447033852395703866281718655562834241730812354982971090410986647250373584739334302546577351235681469245731039490909762872149095392688243921739871198722920848332236013289059188691955084913985248769996655134115812159956120083686189051380080703505795058932707849442276075375650134615119054029014461398122238561966057655640397707544267193415625722076316748663878632254745409855014924874955506108213842238986233442841229144763442009240226470438370797779525519421884132008086396249880753530873627367080834719986408625169983876689954746878888836374278005680318509149708093806218185244009264324046047663180988292210621406989770333375372310816237470527023845189993613181030294599700380659917899576443691620456489337558544830704955805154669814730999171317661443995489239068228855291689247713075693476145257776890095711454841094236615260875362020748212378140861621233426797235759472633861305237403139993448350771606108992364817153109587813784782639932811003250399341762998019112261912486899371926092003743609859805119414255155854763687527634591559975079403794720319062883207630311649116159632515578169115586468448957131193670444602022931477074601272978196377400408059311902966267717397421429115767455782092114472106095322697161514244917834054637627766417862368569021303218858799584996965182083763353879736434069976516157833149634693059202449158833058904409548736476110394766988599501724218997200276810152042016525198629000353342975713847116497502197550533142152697394929286235865907505136556498589891666393553945267201801422853297316375523020817697549318878820430438236185606549459547519492819971830702235899441760533950244460747315432466632368932672195348326734386297279251647533524938920027762764069745801931371493352763606635977544012611821779101806653686185876002347804078095440941014250627543492725302216393047537812947138083276790898863681069949707120655722748452749634213546862942989673470449169739137330822635936945850189873237067992397508458195592801206286457222420233351392716040570353481409305892899040743208644210634521750570987042311803334028871341580834334554284593351751328233008215371245105049308518690473140320022255059517729912560102118391180312292439478485685600566086225711704699991105892138965485742023926113533860867255866849663331444024618364916943383678570249698847440184489058074894357855236818951538167546121892465366390902073087052816307194044775651221160569602224401347984194702547645302247890716204257751698296791775708915007632953890599884825812912029117841835727819790202442990333619025938907509307875697041382806960890835354554042068766913486751948900833896561232669276148010391113017031216292313319711041559560032948700423696989328454608907044283816529679936645509158235630051604386053667910796033053939611193326547199919508304414201272595539246771689939951764437433692900901905601191885994486140392356796483670642992517814770716333529982536404280491156348380544980573935510436430144501739098020803689040899121498630522034216505627949735258354103160368903972374961614600056264017861613014682951742363844202454094590619500595345540119482052379651904354960383576308106582601779587703106298680984313144954010991567281314911266269073703474496603980646990488940443617053964716541477567496855642697399553256418447137294334026643828156626749560234233337343940865512730877646872592696323767003078888388917172553299632455618322809186221551202509922550081598767953256743815064277818978653758527485372192736925939217921486118169081649551350658370780218038405119640719260741408196014291782284449400983273246466559798201772071274970322650315155643575311145063610682666271689545432128060841883462004720812210715550969608710620880449982727918145261858408481216625867998396605705628383174989295466972464919885066080971131858322398036706144387953444367254836756103738748600274951968696359149777982398791410176591794147608398484748998900397546951905585386979695831442576170880708666545749610662296754631507579807130096904982881460717939580447011738109349941335315750534688388134195397625912639248745429450477221671731150057505745437380017075976263658617628204036880019040835630076095671083051918198959171315441518363802209213622160317564828889798124893008884744530409909628473076531775113636379881418767270548508462259218454916599929617689615977971846014540474267399282530282765353220567814044899843235814062118639007099304509827853028602728567901824364608481283879018709766090017599399803621489116773868263309208600071616789903595196215321823796890478828336289155575326540317692899755999481571635888203700879260844108848109448383573162166194021726163102566088589918834802262041576625891741076994061035699459364586253569402024641205489549471453599598505171233822559167592224733046399893494555298917709433551172632785214076729654018457942075787716026500166257833756310555670324171767990972972810562447700094211868507697818512218357672196863203180624951227562845737295410773214186176210995662732057410870313080780981679413567298816682763003251900279759131218789677474326589852728872434929594047328776452892348702960841296964368514050773579775859610698101332571009765042801281416373879089249215854356273476663452968457795944326298486228890252766983503911800260249571507712758359578251024231933548989831488334771091253803115542075920655499066466872979392864416249651841734893867252099892554354475728191338658559824655794414418462210244036184536072445943080902828895824712267324885439599456031445999263476512388677070378224294844688206925514401971196816471801203487555901893876358205163393214113864423758982236310684390045954876216905824924390993206339714095166911052632918021919070797472933967488127011381220921990622476610317445254871931686860770660020714672609831125887450292389583843894341033896845833224180572390522214158591614034765303782854659540114614001702810395000282067859410122403497613587243871140793078440183281695535210685221397774863596039527475066395537726128992107874099752305238317852283765445036436472830233069245801460874833295819564119212354324679930539219491586566660253126967287836453157782149485089093011306746209541056554313692940784597771464463573801930011381180167642763043109128389639532574792898738310068626252368356691725665344721724443538370681339266622113479903484061655605058975239471180162777202604708563233265587509910058333081860322060869297868788792960110763478195833212970298018505141720275647845288458612131708910651847514458395700617191707614923358774163944532200207977350558686344160626881327994752773028287014798228820283017162898498857369512469128530191318715092690836014270612556917837743040937566999095308525781642121641400537062146481331106394154994646348098280063884176874520613081648676865676421297003482045216986164266178559925724839384449217240514542371509172355058977964053332865716773853489646679145063286973301493276039785446315746852780819357653126725266337717478313710500357809873730118600395153922097484826873815925549360452673411671425201892066075156532228344273079819537464508326249614075591594529884705228777898285048922812708932585647754107900954909139301877353420942134079030378364941719437758448309543867931422555311980356496542605362968622213943564664581517262816831029423165948691493515373609566147126049420124603419489371985910381544834159833620886759967637171550350987188679154042176982424279111543358117193798690546077639527071841959765873020911473944377930737573448697608950350599634219280810114993929574034813077288713508569898860361656408089089570455726202601617668448779990451099852903624942544945347228353834621017612124695025361268161060034165361445610398491666352797905161505765624700612777538737827247518123903030425709066007577523430981153079757863665952728881512936869153555094362824219476753703305590202425425901332336702151407091165418682693429722040461708986296243731128561299189078708212087497434098468166909193619704486483895975534968263846542298419615294720495588337866143116063329562550119921406317075717240450133309335254208021855594887003478910036175761973666434435325029101549754119550330779107256007432120946014618212876756897469635200411770097763602750522647733299440574235352855974999084636326377815039674580759864469255257130600122044653311596601681804116117644605939258877467436723922460065236007593039150039683306929836347052057933781806330103497059432076722239702355500784923781675912374678004098817077397108200754629251412371766667488948238213573725847317800820294783192404769554425927544244937215613398534657193081727767674196666561042835281555653831184380675715886138196118740112686927544434871980836990041103419707211523759989634184234916209866982286898777384191965329160321695333819304205951804540784323551956993133959475258644730543585042954566746153739822438535782970138355742390601805354042002339385342825236720436858656071123872137511618045121551602593153653841710300710381802419905876090275949929510488657881041830907753633834111058185111631022029510372657945255005117418783852639506919650083471028701585214870811999628937384997155053411782936391854114743141734916598430814261094178907957658913403050632796159752555630871686797787117631125549807381706356679484060410601189781966191253601910044911446812391000656184637554171257415839837462141309009060489800985784134539266007749279638379929958965812529364376748750294734245814397361559749340046065955949181049971836111391919595848894707615495257106332141441418313168469096791253038699658113326158708297884258547876631539095002380871862595076459771990775890449386288173026581375090910012484864692671000906108308021394344417295592513109369803326841071891315617734981991070082705726536264445795710426033529453585142651958297605722812580611814067814594473867180276302088124158358069821722509008110766444358529584542016476197725450687964460970055963347690106023040571824909420723791058872120408502617736977947078235615503327969585391676355666170080412807959606122810009572131350606125038518882741832315416223246952615796063790319415218071865944347643261368627899605300563908201362038791976138225809592232616326961432390062691504456027465840193478370945218222542717359085651622218494263824952659576975395771507407197865622979501512857353078645661152036342047101479421621740126272773509521565517189353574017627287711794679962458735028760061838877529368103575941139189814447342700591411470188680286585809913865245670362959127130883451431870553434677350630904494324135643326181508678485594021054234174245609225538511256470584397918678021572952227047620111506330738196697688288885288413753220808276325724314449371700144785862703718953586952933080496004859925784516512269176690768240198840704822721635504887778784217517356235169929800648298652770910006404221342992030752238662344858601034077722561348299861562135102619694837866714813526481665291360684013867296285178790439195288499276548195817324626630527430796969509839500408360109943861253727988911937308892372349068489577071280119193515730139127087838974845065495901329514784581366631838170872092608583366299087430366036837641349786092348090939840500884220895364573837651085151773483542698256458327274852387869809580681465012476668275319969319567381656293240036780519265615959268112435435524620096086100838332327026942655378560147225055588349463451652593100856005857278197961281460858226093806629016450459164076384154629708253528944843482334960650357295247886341414136436169267112118112469809067204593622342606783132353638604402868835876933998716576155218634671199178362841434423216988326757909054054092948431240053903675569478207357429630964371376585209475157572406953923598036850719803705961817432403076971607047710926305288798602203582596929802827693152706725993562174538554582994149134445613344950449286626275446576138810901915481115814540111808711979592727809251663366692898492194267217986105486381821886134164880610661440119684066200695204559005890350926999436404388651155378169593739879301872795010282489169007806074153488486884434908377638736623762978522490063474426451387592310028050671178643053081921585553320276169128236966063950534993259925285298443978009147717811063379714299847348240804723471248742327767954180689566438052305843952477904767072316442121231237006787961995088547929934202987351846265554911641082038433615664375940190388293252417527315141503041578145468432676984042055971438252261119894219746247367149053336360434364606130784012614074118847920210742707714005128786448719210180540636219424726421522108220360580491863283467521756306142619517050625046727985613502192626142909115178041364765684832420951637063218006437038677188269010054693257556217174050778886437881030589261607909558522771998416535210648218139153861638619784488259480195500225675834961374330680585907042375916667924584780827083105264841837181637716904978752833907378961082124359969003536158900713923398613525287586450969607535014124582536111048116344049816428345875633553718670616951240835166170507405793941364230631901155776721348972230158464580675990003918955776574007627703769915219251329040223476957289876232623733010338724667168572043214518898787564778408522430340940763244391939485177628447725457374253406910434380833587603978179821259645795425265806893129972764387468051711264314883826504209983127061368834816262892062476213259164301980744779473372414477654996884061031517787631604737196757414616410617482819816326016297819009844363703128488996420219726400728592409544670267755172081113859602703283551215800641108795739437864348742995665061448014336525651150804782005809194372491746860448458766049082315600902205465684665233251222348355468159118213547995703180736258554238537310540337982769266003370676623645481208516130640207979327261683826836984402419788574907056932769349461923977894579980832034616206100583918804387513299278427242953497207393145147917169124125081635648406053530869499114094464395412974787562541901931629568514009606582736099304313463630051820189793238789511439082453710524005488521501109035799394420639627798328462704837578905693142647073691045976305381759598306211583776692498563843405902242161570543238132966357714356341097018190317587650809060239486101676449889070256450257969725107420865008571237627237470425751637458427691791366376193102326576354658902217307344161704021417214502003042544234397878993567305033509014917327073133915957801014820766846075625311664984407845943987022721938558001514566794685842039426714341514240932333401188309808663249018108627894413397417498324847477609038686941184517504818959602530649893923952732265277661358754169636618322688627119205286627965190179813300877247645154799684740067660209092349037127493868068538278347088671850118114974443548684992234445771986415996278072594201166241150039904930652049049695536376095738417859355557484276264854245898100259641161385320409159345056207617480879075978609142062524474033978844410819984105284716528496568506295683564556809287475934053107105398892506108700191797674284240464320253538879559801151730536308925421135629734952218016346796343051749972505866146622321458320353742649451071693138369722965268406166471506313775966118741830691825119391126171854483215745569984408875177292344611687265442827414812957419867247873589081925195417680577455422365500054921244950059650633790429677661929354827794023935021460065281782579939232163572837674927580377170254829213481866169617947446759907039887119306418149303167435897016335613747314946399229558350732352115605056830384960729486050868134048721867557043835230956389023462742632527315869909126892139945762631826704281914462116651826844758581650415810001627248688328036532873258574285522131938849412933669018414815013565574312702315138678779675577588483130465532578094527659908816243955772252322095742308969900794177037656990132188607875613552576149727811056227991587217381066018748866127834943909801896578655916654050096104002773574127035979004909138312467182903159434468073099871870588145191985056282398145408814152499941506987981787964527337724993364384231894635415330189755192008773272229950884866416998187199465798105609449371312197868192038955133461438018422104719205860648191590703073745753253002296092702446123454764013639999816412230724200045816959213413423737786187835254406081429910832384621587023479238966544568206441279704121976303603177531677529857768215188783352107520219916877890846270336044311937771133612348224084838999413292868182628656189373830709483392865110362809094493668945464557364851804406728649536228806438924420546577699536738696127026904306965889565316461903976945676770529403753573263635273944334241420255880998439128844014559815730653496563362683455312642553555103256046644544796006238634571546135424309712738647231494585732074153163004781351587506346225149374231383090713939049033271668081744320588119263674457335030369281475233442272826270476734769190051219276307886499866633702965178050261396146472848396705660926258781395754079348051527469031449074019355197477618528066676490643822889852629369950188787878294025193603472127591022672787954616014235009804722302235676309741496357485800484584974478508023345083851039219808699885451632281198003797581847894144956908132475651089311039214306616061499500864782155724496477198801171834882822328022160954646456594591708187703615108086392103914330015169847434305424586717392521006591963045289591129729692096709305578975463461542655055909413805499572892066887542617467625487404597883668707979415780729933594480708660669351127171796758877491934474630270938714422777746622362073554809488803192864165313803855180389802252223735573595272343225362726260909010234241838772651031313906872995988985106003494966102984651736501619166858053356330377826674160225608041373005826129672762823036267613145646607267812308863295816391826334904765424488544457640780082381347778782625913596794575814774509801536245886357775399109359610965598171465113151385165865368604477311811848821507998684228414597194930815330465624137153832382878329206256298495353396974548252106433093373437150697758038241124807059046975798887466889850097414025854608466885450383580355455157391072289001375830366946269387671705596690704028769362241521794709805217713918729348788638536776536448809595999483011626477604907419294247471958122312826318205491997323177979649704089467532242490725215614333034399503493494888372168154043287789330508884303785037153140010829237634477465281341047274269530943322229196481222609331971519597168046850647989465860475799426250854362945983584281196452881526974395035409233450261326529194998554976562576432457816139111956981984071633883689868265587448327505797734381642738152559262702898551091777166449898648699618578825259501551935496837718401576204001426980458133587936270853874263468251459715955585566062424553590694223271855868707721810507944565795269031560577381955663818561007875967758289555288482181547564572205957042678668355144657292512402754074749777330890292265170149910397598132477100216886938185139005501899551843056497860167090445927367272622808972237065444294150465938814470035405961570233719571913450441668813724260342381455662547070811973022441145991290689303703605899798365038493454630683370657423843284002891740101529942518881507640374087883783785311693236458257635854596339621015762469500682296930043186504382324609548707027951405592053969306842031837648235118512670116127245398949208654884661079855111512089766361792538770139252148486805686876030873669679001292221592160810046890323513298181967245010361968823481400212209713296128351360824492032850809455044497006481670958581455470210456041363360180279062967920829692383224759926414573837837932963318397695593609915213801825422835754892082533440004605433909797273714227862774566555410782516080278029432773787921183148140893272195951009096691821590518439727795951162176728305542528004231759872557506737414401275837477003436520198814886264250605734260035239326429394687534795036735625263322234413541245599023477675566958732176506153974280876076604194962886577651405993593858486771107815442082104650911701005528863214326696254883450946535065511543976792233893420862017808124304113032321741752706641501198715506672432526139980315399932252130420882146935061898989626770052098599858460211447761636997661665940288879112809029284926449456560186324723381283136034804951197951830490480542594883846341453695390092739186449599635822084702031355157498240314849981041271518767106382640311624810699213171275473337494718455482399520883937040459669359810792626697556239113109488415928947677336147238590037721963995860294818828541542100952598332595933286712532880274332653088930803918054136136742659830881655050678006550322276937142649725838715073364390641563981498645668868310946936127298660906320127409278763065578556551608628263700137383682140233102199093108391900666370214395124773513018364817385848818025495597974319951357111147233528352810688789603005944422970323907131309404100759844454498263057821050640967835393800464895345036300155868077328369866831057636327072077143077392783621116563201872162574920387925856925591591801185727167120055525396738615843039493661932629431169746891497167567704693910350561473515030816083363330131318870580547536997086819651392974569289313737088054833796355056619120040429334948338716117964492301031237347551133571270973855054457203260251440003705065258316609365371535987736771871209308202275417916947809633528108670660887180872184390908476168906349636164007106510963085033526498803086535399794193312395659388294715822407188622383461587237459615120247722222877849023783393831973910622097290773510705176638453861655442347460393633460003098604350167070055898379875569467727913836450825135541750512241639119900870416088605562311329159588925152327832660516079460052188031979905067931378496386931473623639632605617641450437661881316303681792532179758834829472380853788269771475037941823912543641915565741780403940514112745851282513146658156420122630786196471285498687076304466803034017336780024973621153670166084177979367962392738606702197822680514596276316864428365069192009570251597016433240309905985195380335361296588142729956510809544620330236320322307486294129558903430940792411076736914078539644958248840688289563152934797654107864337282859170751979924733223319484143928229660215013939352202556845185869284266412910829365660716961794746643333999309173941590886424423172160648892179618872699160532043314329257351297446608352845011050850766208601452609922366211482375701163737677559245673482421222156428954142444606316844493138840659830024542957987163044053048339774248248599335289503502796895727857948141356725617596986275440598248767673009234714258255413759919957172656759265788761099141194692319025388058506702510417067782388580362712216483204662824150192196735926319374257745134085472999722853733813947106986960266715815575920665567999010919029018234055272442423466191997040743142703683352880751003504797040891353202890323047337410621549770433466822135072351756942275084805812968609826555524700705932477674871255757562046114498986396331195350552468606278973394972211378104625026079767952085353751791062238633926616344837192355903556418746590720210580673029497722807889295558627710342161207540198190414808458398275422631856629829162590006584552253386875679507467576325335845455835905393846228633542179175011718200559765423999106417083837713113231027434702561295015170820344948927264226377695651329078954564653457731320919424819426904564976214752707705614010361171089950544652115807831700493511545938268295464529890843415665703897605376126882735109012934571943162418880807941985538145255876035877411577221924833501640194458263388037881242648889759317933822312340774153149887484118112917759772080465655682564015605795562432323350287357222861398695768283397393821080008973819310461596637597049603038945882074995510753560009333266872993894083109590113990877843432089990902320721291403351550604238654611840823740739283005812477774471929243567623362759478821045771656643678976636505212561887966446330128335133181690868036194563426787520521119186848909830432011813185620675353625869001896076027655026328390737480327271173762420667457238620613052632641922667205138005643104195251387607550660702299842311111250885912301909195735377380074733071352293585598964496491215871451985117345675935987623369770204972745242386334157398702228791142757662808173594208151644934057916947937189778814099898782895398269392138218005819899856303091693401285562489307231572483690505471345006249326756372359667513157086902821172873796379848779460029247583782146091332121758783805362383249041840953212393710928905921661500388260519653937910279887223580536649195023692924421290679102883212050843914562263650945721862844163986237088571172295566626455788806812138086067255043501086231820100468008372021890864126422899881990874193082693523340349438876687682841080221938555364597960603819484403548188676802277975471851950962585953030211225279839820230356256410784363363995225109195001357643472157814771599304730114809086009260835593451370955149200079491671591376515410107386560064960144171159315575262446434637238644462270224196473238088753619137529691216205264964255970287081575727841069396204180388221053370357152397906673388100031967558111110125209082350400185311606345532271850225758213661084921824962075856766487968364655297155244977312579313600150349614086224914006465808005718269738132900972826201088434400455818963892214962340984298746161756430854280372751758537854322911609792964139141914208095741846532786638911474562496801166240291988206832905329991598298767703931426395868085051366414070419535938298730821560975086958965979539380430521248641961285449715125866872436773923378784454285898522972398438739305037483689713515215751195770471048560432081753048951560701738484311927624195385336544817597523889708262577310321776022423290735861870719118000242652253812919908912955887292024779281887739581513504616934239699910519766982604571214827391687492640505900057606025222157010831034878084872061084572115169644658321438531975634293928837503602301842522067868904793336511191161097785378321003121297528518170639310123308885125121091711010362213299207683816748872117042326841796839239922394822918481386901008593167702675530464391990120404713229912092173346760848708504700129024052833470994446118636816177564389250244167858179063643715218839047313309206838343513475124739018320031571299302823110566008882847536756873289445674562532876428146557276919488054943199022187837381508851528222169982168670542663050716883583482041367797539403775048122629125198640549463770509722290355530148592681683299099999466187575543684379574219552462730354511452566201381452836124790096625136940642438044523932839064902255686330826515090604587279685593157170728020679235720576453653625128053049446055330346019043819649599870902516015564654436784703793308467331593706688097037194255001968458311259998858210999977960561889637643294674709422437834843405027383276256323145840552124707560787862447901758798110640241164092478554973042629947156882837196315162603533517728615005164735556468722755020895304288664338557840301435746570287232281551746254056195476398499893194585667460273358973948997668108197611774768823815215752102519965827124757597452221038657719530077974929852241243729272711123327083167022231105186911776161498062486518597737319144910785077241005368332472878892222941577796289944509182054313246574503183630185486609079319040691501615860189621663842518395420249634443066005707519704308145506371754259270617623278703160387399094880826828393139344682400803499034353647843154578295783842291241730959092965578337654889530428607580470353507439519592474641703324579476750276750282267658566908424544680629469658796421693701682540035079621826111730267101494504068800552394127173595386635918720274355088142991062844298739718235631037885411919088903549113287759170283278750654563258924201272548977377240321375624865991947053353897316152155974673694167314622654560541970259598254119064209351997559100021979894021155391469609897749313697898396308031899948966253283137179337934379672155315663541793860939628266284627128134515210555342773981189776889856662672514607820077271061567095054114794075615358444361492743915805471271532019813183532189657473073356214652749567840513270198893863752930188756186285478183035394571162156400872314872884162433092330842561214590408330117691535368715443403575980535641953406621045665249533333616299378273173691789811036015387820291312048357661926489003209342801893536124283554557248021085057928064299171092988284439535075794705946872573273834676403287080239205273441851273923050278988897428550995087688172927285660714403892512034567084236193883769147274468816713909159254104860232437136229992436905420506197286026389255118816643283496720651181287229208893741933435191375360301866954314186358781600228512150907328251104878401226266094359792444717900195946916312806339974062692475206770961589772251903417179683205083486116876752192156796233469420327295385328768762134619509741501136080625288877263168861535331737112731781853024550133915601610291528998035134747420712017152861358479697254557121007908344418946296040559356822319798682211458009184215885110008769082368162591811516746424890530863088774296519294002814248723082490728056302034510440912426170880225411917802961874860470188448691497733340079875879594230440180430009594109398759597574244385862991775208672688471044150717479689454658670823132059496379129366889908054825342859766356693692886849350470633539886245519750875812283133109508274838133267873083500383461500935870086193558607579887474256852760383163153042735776101242575617424953760882421465693912781745065081024941468907252906656286086671886416791476501297892064441102822785900121045114058724879551875576916357352768722935818309103081756634879911740102649679188258026518597314073999223843857522138369828650631348902151755429496480123360697287219398514527162429888859346532414047312067631392374785548729839332402114343130495325016611698882074803879582423407410644551797178602415947788946685704616066921153327611208789700793177233377978930480643856118688933943712298895188728588224387699583870944053747674869683560362773004969624198522475911967606599611960757141525974902437819051506415093669300671125207440149518398189574223002143108705371202018649458600089231150274050597612050662251103229076427150632253564299335769230621616548441423281314006276229956431725515811990687044286160208519954526903101222262358745566488362645942288263745008659875161313520257886826178254168633717069424081069619591068248137909031416556247231844468703139770765027705305070874412428621399857147520708837455272753016439103690232820605141966372600702727909362129608442110124764997794995706102320955159803748294055777048437886109613435932314923412926467833608654739224492860350629810257002337361978796591366636240851036257699418669110397576828516207192324275859862075633164704511761069512423618784496481757109599684379625979461407634867895529067237695948043888945664384266563390065422497753110530321368374559977131122861272329929379897743259579739884446746890729658351352556267908138110540639800294655780836218676600701608507014247933117760326474324498675061710176206294536742067159505382068873508499778208692029025808163976723976297357842377777023293940166360864342880735666218612851305267643158487323784733573028582578074022333703584819508650989213470684468555102432036778365368898863761485247898696017008994186812608251279515857724744433146639873638546479854059723884590874835262755174213125734951550859356637601384210176641730783157282919833411947045039380195999726455864442272154114305389394725843378783629565940312952908428662999870365370628174983703283939378707008853542194851734587151529094328041903769030999816322517429850051435551502259801124679504419161167693759097258988785448316012300814042107519070074854354773424504385361364306954389769018292971096262043118467348852153032357622172512190156739649550941400005560318940409654735121795270586807767615685949700395709885769336252110367094647548784240075892361273069364461124140017287975033707868643557817976601820475189718119648744126514740033842726861407100722067892785413490884522247949851683842230019646912411488718971104960519850941268620011998828421828808079084771887206589406508310499883976525574502228426525705908018516940041811458191740229804246773387792590248612970039636933529272446176960551878857293248249213292266521323329156184305503297034350144304527075231957752048203348868871150468871242205620977055119020874879271104104819360543272933245364378005672528201726435841424198257302732958355117487007518310049771005318478527454152949603931534009325058399829548812751994927569836072392183345627817900005500813255563891164512139500909394648551877483720462599168223215375912515272079183280504024126695627898664477157738002069505352044296783712441189318299573676260967095888858658131440089605811294790932880252208712175385296757182253825720394029480735790930700378920124091187598250533440035710296846141492190803838453351371889466238109825582168690844970033161587791895670998648988493711701246866399224356683619596993534008083253573051092252697767215142213331812225156773957176466090561758098427805270337771310887139480768037869456874044650969232446913384364660846827279824438149542938662852953007217256004685461222226535657178150254496263203203079833944118032668014568561741591752173057118936810102464816865809585971332429441276153276825117749070854553340177099217053771073257246875968020085972895277248651777306035982239354524918875446305242568172708607156424010438513915385794104832134765305935850818572295424664603530511359984541939783878779074581096024971172806782008501107800947881074275881143381870338239908133769348095239470326588452026121167409736824475228463227937228218872855590255195869557753113075173138464515754848366204818005897073770991133323990090144854589293739452078174703546543175771196587044957047469065839110764055638514802755920430761544565079158252580672473497314076313700537417648567699037278145786225073172214676908626180827090060518383147071754522731494052284022489416655996715332030892282112720819083208389133451223068800311750842601915419953167134121187230576557841091771692827925390174670643715976235393698051065788598083007840932500672029424899457422342852821332838182714132525580213584273203560921785693478168399920459386813961558100451079217481150412149436191996098078166603710560959256003094703598113940089556659486510639189174618663761664521646631712056586639981619090233985206569279181258788295695757409975622867663725174405138153771038858139201736476284611118102494888807837531650458661137160236040284913753009152160413815082079551427157873497437830231850451216390975951013612670933944849692520291865697278899677949572061208225930612846192663192214260932027199965117952621487702914735416291971415444042039514884960919479311774694960729777188193165915149718348198742837535106881227714132548599417506801497125221454408763923133787931744257157478863561540912822519840956746267707947140645635632131418571451202364472208030595809839753164878545053206976449911066067051923672238783811604960919283604286553345004403656140902472711985122353499296046191077971981072956818266167682140103740552576824034737943441044477205364507369512014588342612121455830375374661769512200430909233708340408383710100603150706577813422162270631195231442102166907706644382722836015606359150202551423660376819621052923353808338636001347104087421590032992908573025198524151545029515655275612726754375257813719269709475859832354016833718861668663235875449170672068762429635840267415994114838546571454650055636074778554839580752474149956494093293460093208580037324676351162155204165407332793011433450490105169535970591860856922900950464211357572587254392453371317896738863455405144321339209741658564549236410251983721285231038561826625097054299535413050762129604202106755172040844937845515008447479471439638776507709604860693508150461008046521099284424591782202957030835958775236991782667113055043877251369075567718277507315203428249761624492759807762239347576155870518708314502063889052321733272809692114694087430944231303541429276011038727493898879566550061355492779103894494133316043788063906110235680633677194155125496671674429928495385886247141433341723303453103281523123594184517608975071101846786940868289107566905429685997471760957671714313941876695055958514809978298482893313309184914751209344200891035756530583793886670765167958680520493329112842297145233736422020579652180234078739011823418482186763065169051766141396432477647688272851338155660113802544748059151281153557931408772369310294214333923819968673822951579600848094475936889907075773162693778154058172829797355151089079904854251521212054931311683896463497029679925613794187266783539894855574031028194979054060081364683860042758070262364043388241845206253671439070707170519694364793547753597532518958653838627474755215792663136818757358952739233816584221023805644618248168269323627341923886730292388718705456276751309477095109437057540527708672775108784502026312628357638717855049058677001135735891938016467114933918531828057816004043630634747235632671811239520932266009183667589362001787009424029891616870288115493453447698686120856124809182732507762361148506291078915798280636368091688957690968980055667031380594171244264173350027948745076769207032181944232237311585978295571991766242224076673567146330816694075663665660405350351490795133836595936473625385891602272524485941283494841345824714512913435182888289112108596421977747182947024394202327672711022625023970363676282486174359042854668321064531004679583646080428369898162497111728040589752694752899434433010390489048050456747741283098522682868299055050704466591384034246448012767675786421894179227476519217437987349636860467984358338041738410825057720336662297036140111495440735345997744940070365639693333909733325306547725726013563954687799542508100644387233246759667278886592176192485351919285893929322973110036483823604910223114751436751937769503177148684920819566487049888195996784550326459678749228486265945643253095520696467953868053113409648736528902336341596585097155118184859657214398202396978142970930557064679448325346076512771886083198504743190834185694476507353580699657551167988370233576575884404036364176275430762957790600429310242926391470020940803840674374461413486392644975538931301624924495375750856715439642614660010569128211284092974364940466693563263938936311836582091891703237837366007280107932220171801103098257761422375649149073962878854787210616699331976059512590567058275891793339944164212264651361226373248486295421044527711225730661989097610363712792062955444865943970139981415412402382104730618444702186552476400684045183128126888527231155296428225522161022264851435879418726936559704089829019733212566745183210472628197668082064638439513705346854833860719039917693654614686798523781339589775107741043270238422579196800230011917031076828658721080425867474501427226364019613517107883741182946093716333454952865614920311542577351936114962875802211675780937872753776046329371741375731621646883149230064811720327478369055413120798001223571794720231371115969826234642604478005313698428798095794540016400395820952545678003949538454012907572300757377888751676680858778388421221893563526653526393670464448852107762610496709847784950706161173178067740131530602048472951694244272747111783205653974340498572393947598792382259132402515265170199321765661831364527094830905409167533956227175441137987149090357216004740475579988137074918954590891730464060573409185318252331134601764504532606453349557365139052357472042965307757911973973642781813720026170481363166241679770261386484940334297394405526589972399427160765321728915492488013863943346772065118994479663377660561856951604709039650986583964525341430018544693431318441919284514679302149876841628137819995590066108551158426981066829704319264308317553541776126121331807437066331987179869272618708327584235090507991641879727696685581914157285753300360335463642999061296448880946980294719097853144190055927449978333311407660257120409286897996727013960474653249159129587842652977297280875192722888392141635876773984301231956436297660183128571117375809519139262154311929944306463863557100495862555247247755256390604645718514199988950442995167621133486841981783762172286879576262601490307637974329911699019589788464976194739498100575642114764889902491711870902393544333234967595546233606643663596532427482063647070121251202096189490361160503498886891189907505186697622256264040307460943044287859076782114810072280569441233507762407464707812140574694097694552980561791929939059614203134656902111855437639652500890631406230235611301154677703698234443232148305855669802364742490893522568805219040488320807153215911189314332774483967488247148486028930718792005611592280421012039968592130477432587132646683866288052956388785002135237175093733369430415402370945138111892529370654987676666799468399616043942612760452740319809511159584861583168388172571237643594146386459100857000890159508279989036043377309211340804040533194398259862681297870891498722387886168698027102866322745505975904821448753241339250546664984786473897603082280307234671958517488264285162605797384041674647883449854807712334126687876969453114828568946918327538088677943602757070908399063712895640499570569534174275561509020003277239889203166476365635148128589910005353684345246286166481620437645687966881716987407626295710697860004347923201472610792979115514728338411048103618302854163337775664536995889652446847176061754381166398517656417521596348831336377592994603466828262155833313094014649750728560149587475016955479517143355313184668415949250237186422827489054413942200587869198093524565670561292685249026376996923067838579633385358768877675035222423548998927080851160699343919580781786140287843575293133994682081731795759570845299112214933901998796534898429839521316265215296457009640354933863070753442198359712049565525063728370382161886704114715285672448371891587050124674077546371431464718405222196405340663943156147966704728181209411356590142605983056147797504561322344938027363077031850194204283238318564859743761283050313506685132160570352488073493107536210262711821118820735062498618745316376011087251572518357779514949247058112395170390449932556764171127334807474430110859729922558929579991362370032489921656658510043314182709865425747697422660492373939225318532366830500520918636330763361933928043725893772271163939700405334092695102577067603441888538756213699834217830959306758400336152114679321025952893576269053934306152334315411242416644233845283347626746732879809553805498024423567310585419636645570812754638964645685107995517161835766825167043747057425641970066675532002039947265499340105550310167312817071178704332629283411897677980757142763988544413851137202067236376475864238006247559344457157586857753278361104713728165991427478303932465147940926873142842884628731850700109716479574794537183773162978049618714328992972160755047558350417419893129663393465291776326647329062420875053383915665416010585100180033257693398052691029424089056350482216936318483237883357452593786001128555628013763208942023384429588011221903230957416162289042945669330107534804182705540173070711647673856548269790569504324907550758356564274552940705643785852316947148789492210869494544432290763756098561287981925248914206164028754051728830019406412166617354473758355174169553707393118299873929677980619220555258364812099696683355430019883616897081335685889847846691444152788774706638888532563493749082079766137184048791325313919008955583481473219056686086036692239176849648728181457107696875522993335626913677886717027043388661196021949277290713716477297603365286209294045851335828136254221926798960602385727309196912842489271829334465021821124807927615566604396409159703144269600038565744481254072458968786853310668592137442778134325163489197590992051445869564709138428217905539843355518161219477905782219648513303432577469756337918604969895923966307905390418130647536752252280754384268130436678578491904691449985114494959116698034131670279033327254099367997911680242791874509889404575777532070971119482722461684544869621964782044085337329337231326175996334289541969976174928763878599821985001697010030164390126085119450654795213263759562348360775646889585285804325589492705401361584036528335781999868742948922334052556457346047141515529519125557168522418547440452252764499949390110255231822004210932985587487786278505960985742202869308745383229945889427421130504712928961319014964347551777185520302995188691048229809952222067179417824219278740206775725808309672377417495692711581098781541729929381409383608939680488813614013744686046693582781049355460217024168454227310496392714370614363012385156256730212327210515476273631444930394999842084698162598994943379686147010786042034888698035067834538973252474350458939373974230115021262826514289783266465012348402717422313627797020719535827192639521206265575133113949528431215481331361212867084991609733822828370557903116848016901964975469732260912653358583104452400980949330442355937567572906979613984821159047385600673121445007817318469161535415734317617188184434918863271212792467070157510133280637963150900430384548738886326648463595580857532324171194287399081398109237019223048507573867080736904927253873287144323258923645875878440092634154854114569973088120848384853459521936655808459203760149267523353102356065938750356335591582953661520051199552401283156295015435555568561901460526313270430134925735469929618258312986816800903570041999528878216842137813791539654289694630600514838000922008089961606431792756115298334844275723991615015003501608750931798709982394909777958493256434767531007570229314581559603798944925535956324765400101077621880715454750406308328943599349200182054741954962095364640129512895870885999472149871173661257380971665455362314088245235741189421728218886093809728149030781157577625613437515902490345307494574539566193765749065936200991538678901579543985546595115401373899678288872048476732391818363444784143688955443992039917708823673419558006057438343307270781509691445582022538174806368669647301772895547709398252553020029667761304916624390906394664362306042823900841048540469470728429880715326134738857451918056395669796960939776872435068420640435764076844760828072873333012819386495925042504795317714723838298167074478293011121003927016733990466791602038719147833553625424165133347902926319203326323910347953591184503972180040585697168266267629639071781630060709865967604389585433517209566222327983606325783029256041354493789326196900634436823304491813540497483333177892547153783980884333592488908076543833661711601018934548436979136563492260732799467096347729816299659681565064553284113047435139065055198831001808388155330867552612656982953340931203926534400831091627873380245600547480112917831442874406612253876916090051441071361412042540438847299370083799805929228614503515654476212462626526407308426500273088013562931723636158687683364648020544763905774136692992415558664104486459111388008041217915166254724286160066524016973810329777819671610372771198976187535103010183727293870324107196303000354774603124642807798278781263312421045705020461287101277035282393187382687778727101965449601142799768493258235128985304454275228339859668944019544695802242934625891880241266946581768003550473302480813255841120862427492172768200797127549571361490315669019093888818236166889304934306172042221623908769120546605407053535752192926713465261018652351741459782083355948819084011694638662570777715709953622200044929164030601515980961620813835618755667755684035060100850983792620927145376667633969462028650817700684138145855742702609114208757270586513457628464783801236519697894303541389331887813662572425560705717443501991767061565317666771551980223481644511098279766341752757580296593901671271192867813035376889477974929604460632397404983431965657972008206539682691745736770212892407748624812798852705190850182644518995220684455199459280755063390436393887201307770469291483343115102535252943091861776034159867395247641173335390864951315261969823543299601052967946860424756903222799886716125704826041398641409687883797313679099915989527455419239350764809611707915270515084135528546871918687528825488334423668647706333160326476357357947512279186231803157160530106252752734084188912626835416902266752662458012817471865429912926364895411800462354525274899553257673537100220618346401248877402454435984323711066640067618205961926765000299524071212297577203973791785709045256768389290118431796540002852352037300620379390292565472861487924756509356479733390356057055281097938607371695527342080691965152055132978752485346786953359893571636111188885895604574205392334528476494405959145905482269679704869822059852176527838162304708541087948023883890224093710575184386071762661725149867874110711699541637657177524074092316492048427642095713704319705038201424798318980229587323698116032303940241058872369378799393998725973840300062894032267139817674925832700733074691202110583188199127071350798200741860852224059063356937384576599114838459058941928182283953489399722535931793737027673526472652760680723370011675159347579598652207218884543122181560236005832286265903278571540686829603849089469576348864320796291920206963752460849229916290680520992816322887434632756419990673242195717935527922510498780285722709637529350802592293420824117420403198857847043703863802615580598985117616962236276043908861213897693017768839217237736669947669685791984755939144845612096105183653719503403679398198764357512584025890753877297047163896928054770111554375108577994969581419718372219329704367681450786056107628803061177338655271643340263114708323339119652056505469019086641104291021523230748488770828661286476051962554679145320820758566433922478741012076840337769797639380762069598248047307317170126575906889233246954091188793385573570782913458256301303418764294519935850098960760815264409308342715644051838064055267767333035174833038501729649986642187298358574126494184808622755973992556992311150913743731513360972048337609656930845244269225245844512787379041496326060166789379088048454072543357633112070611925784852425203545241538571996894057586526722898426868493575923193173513426451356241965487720363918489912932695677751079378729763002628582304447182470789356807659318578495266437584255681379933195381487840309719075712500565572333192246265081371641969039265342148614876421852092378931986652513051886898279556322731150638425873166386048679761173515884503209906567588638306039932833195574657404441696091626292022145408028398970094067705154742587829472589359212490898108842396705421136591556939238857322482709513011534232479780522787433553764436291770811112915712565074515950319954160741748685136041080682523080716125602932023223112701348129136524570989339607330819502023121151795511412135811119398387158640335383556145419893681285394245809433460986584462243153514820533623750190362763930639406785660669531124197456947127301239956666244247942234120591752596206610255028963571636869340704345779761390220746374549416771728844677882493602173950766929691285400305791895348972655731289413444050950963485317532082541521334062005749541659159773284311760645527950990268175081603457919541352942674892292591072197040196270518178078525510554703062390175041243683230096132010989073773353093485721049900027796356650877913556363373133260075973864709546312995449208887488045011626260366351613886699431712655194117735119066459670594080302415232474953961582222441672389740756416150874841221136021975526089610729025903327452318280614377815892053229216512696583549413695000962837048608920965846282848941599438926029046109648217705572464866623281650881965109173504590923807154031796818895031082732251035246013501832260886314205359410825608433987451697769649104639172061551735338725421138927680631951399660661992056066638379335420726687375168444700830814731341674895397513804574895392277933941102387203395855960867071349957863955769761993379819915705510420140201807299140281804886000313884889910416773713984501107611496308872768519149504205669946081697108355120968164671550552851417128849812372594001766321843951699111453107778650514586215579064785022267400688187623786212759470260388776261800261252331505059057219477861270710095047608039313932138397622528639223913158224015134262471196334992184730095749155090977525682157163502410927501175511153473014496514816868452652178486676642495630762655062251472283060064934183817560295029305211052073230207949096641300585336399082290502076790285319517419780681060957085242039786055310352127256223186619686909453842756329049054586072804803953688722126328303215102559184995278996678670860841135554087332907781280251142617204001718748353907069089995512309913403361568795704723909883634100153235223401490320605482002074545736354621885097870340783260454357822107660718503573746235673345936505740753470525993929146312486036488383820750166724910124539785421075574288488893920106479132880435965490811068820074938184032153851231407164000116585714483110267917365143479730530054781223430447856216389474692148940545199278818842720189539549672216045899975918649265040735229799082186500619170833482270241311988866439273288218432322840273522469879847277200101092265287362977529818693882820152859890240610816613663869978674447968887462126616424973297048717157251259930174967940265696584997616554140727471162622309337954372954443948576429827809042716495197626691157680033827517121620516191717993683788449822181360116913916719035720125429637606833130520706139766829235308315216282074364526782949669809665003890425149674931303671640467278305988254227607417050663197927812397333816448675865308136371491338306185864735678705153812409881609203577126268671490930875493841656125417060556629447138351023155537644142805123779838955225915357301321092740833268073278538324945949333974370379232430052836152224093492037292524121317106318850106361820057481346840007682316390159773463451165561457145878569148633093589853545320338961020880105204518741077784144204014489990292945378142106513171857277298212470722014411519714922726071560464838859931732440326756854664710164133669178153449948383740840126300470209378985756789636361977874177825678274285331121783163525268950760961209722233274060821387118259765156144591207601234211495202110292057859813013201858983408496600430437952449345809747958047542607868942209322708446675587398397527250344214745388136682877661974758176970549055143812011380055096326036231580345309049730977241102066643342247159557146771809496354913841812204306494643976095444761191824760358060151950585484747184532843790035744767449493962745974649673586363830035052126619527890262058732344534912330876917296688793146767031712083279162870860666851665308717478501423831967734759476429844087729780865475274850338669916330429062869075106684729650559234858632292571733240796376941743020306534400832318935863023099447702725978004074605889916570762256622091520646398316628498520231226627980640238064262639765291504473330162832070743848369149650761666381650608136309907872337312991227174956977338849693203473152929908887754251461753340287881624975207331568296727471678481223471271067611299564699211584348822413766332769544588642971546759793555296884370906068632728982442189830674837434810480819939230362926118038625003519823699488522250381288519985905025511805764153296316119630092936819538618429138776811805315320394519365196381893390527842840042980205356475772980150968096724895651942374805351672640930180368907567064162802433120019426110947382005289824543793817730721417715007156183206067259215904937346870817282885928737352001448736410921068222348644672676398387133176474710262434603564266633179350583578979976093394028427199101099358440082666777933584649912955813029410761413462613552454223952568776520129229949345835890130867771314159675750130452098461290744786178389606943334167597858536649069357805720133435496301130831988037939893585795159468014644961349097427827973696502599211955724567282781021584258254806520355727801515095544698752657487278256778543440557061146605828965248813888138999077785023942018820975865977691334772109000528626883494328267391160952172951672027597736983331492364672528466326494632059205727116764920384225728344018588971990905431303720763255299299956322273930571603475589518595597182897068013477859999509118715844782149427743463998410241453210841793011784346539782079889789298192119849404210782212590343074797107689933646824672716238968895672759275216379747328468611442351015097485325296541127287816614981954737676713068625118839183917882005200746799259526426020742129685458379973203418498542921194519878139271131084442202936419299155211021671696237612390458123081775490557290678219153824752218720452901146567036689204785561972013598395429507198627280268266551588689277020114239494145796211688191627923343229651636975789608079122874802284076216242456863993107352493737295144712520531815811050685986299527387443465010461358107433202830106838559811146970542352213421978133152027477782971664990947782754078508128626863433477919219175688281194349266626089869953234086788492208846451750160588349913931362734365267373789226514921819126543871024458784672326182569044605729161751039210375909074821423253598724597671860045463320225844456116284792293698749076570357685426540109381935559437860073783544864270893504397813483255396156579715562553758490905292014296447141773607060416358803811757434332733313627765061846613639197599218284011736514958088875087525231024742082141365319825143762357689611607262697555742510836886267422484800457132499239575797614918349221685577558214267474976949108187104610148364962754254340960559506770556868304866686151548072775063512602012881565836584513875714427802779452474299283091551504754460800823353794711579552798379729853758911893759816007489260037340171954009428653173128348029749971692162320302463381908343570739324045455962214592252251607440415053821409708612879538981098597753976316101527038760238398132713313914608320793221802267117252060093406878296993023552670269203914880589129466756731616499976224434538906758842315442580661386850663561084551629309440823210232147694658146599542977800451685773166493410988323348089371400129307058843572761314565244129909129097075320142580906372841947247546089539683219256980129195617306173571762292175336339223613258037243603949966756267165456940318542919928323075845715827343526613406499170416653100979888669016933495181120141558746198955499987697595428441665124592533954734491029964407494939392324654502764900924144519956343217160327053610454994142609443310321590664450996537133500472812683845096734527583114391746459148837936748172268582947091571132193642520779953754568922044139591812480183512431287487121730012755686990986672950622315770911465762477832364057069115381435619157813777524647867921152130732972342307977994003638891970473043809993078058231271882404268188263392661690565200086987863105728404510568898400256419037937685639157049172367305740739225350291445795046555838802270490949374967060400155997362784387951718814149237098392946107881556640123262933185216096347474372923457756758596105679686940070015643715193969477706644345117859109550892891920602542355358703213076845325476368482687258791091061140144596106692066165437314785868118853165537241246207615980219679648375712556883823191465540734266265290706829173786774557510081904464560547123260471283808075341986268041037428456395590808176225976687554402386138079794355505467554131603161530090589729451181774539500242559885130567702384613878868516084349888925649251684712828703966455332879304967157932019991773793804574831504318592080337499287567778117387775262235712240607749922788706903157693630786305359194275494827153549888806646093688713483396751273016804315626909341801915084054026256071221579470789427168188582374464748927251788897096839913707033504582494014704902078621608628357402675454168180057731130478143119357816508341325141772603842028316353449571982151307588651104304534345753927469327694472870562114491353220253120802687124014561484487060038962352692693353169622634121154600205205245320067301274015516281593643210318157197808037491174314248562521738454687581719460576399260844816174284609317852855769033351854306110714574073207167049548898937053598071146812686221475094739941717677966863870122300780715258208556923662995253799961312782674174876399920080897890291906563994232689633658723477559335131313710834940993688926623953351351241546231482450643751196355270513744817994982786404641863062734372866370685849344010700668028585586076701437713316327715541103776477471841503291936502120259148235884469436672270941119687551585691463554316582279201765342946141951779435583424630955152345951853703629140150394087422198845898954098746417381087656670090605972295543545330506602423377148804703578965183227486719191125258158448919968781220634692989234320980735821483698599293469343422210556474997961616220511399117913912099231373993625882104311138224918253242979301119776522065879362806469407338878039515400479644413825057488761600164101274348353065359602764336417440835341405417723151647764114549797737307969131376829007133507513510449734366370024860973974477498936064818503462931988479123672610360780057628965588004576069316364993162669590707540828275279656574695171303133399864215348468387705960958788928804181125560004452953830821798988300179096518016406480648432432043754226728623090021486637951152601874749233615092808357078426447760362698993200375853180489048533528432799181818008590846920195211132562662370689792504616932277136049443497562284564004371133418059940626852967364828566913422270272871422452925979239457135487440943491509096334071476372195147499823889711086217247128554253094773241005615787441703212170464274054163168705671595881974377124313471932986210972961340074079465822397857090978169433611911562784709095773717430391128087422773755776287520703624309505309328068406071894845365591599596658166182674788243365164850974300190682394303626838019906664236300942060094041214417588669431652290483583598554626750473620498501996492230469582357133682446144847741330952567642869242267898439332999795487975476836348896286055774781608008604214931969239614526490886707476808991309317251188138296082421677859891073947092063154373914649850154871956266852733413482263236108694020553122856149473511918383834051847502696939224206838074881904441058491085530700916383731979969923687346127316595059644941447220499535709819499455458107765600653453900296589622402469326999265894600027236435506436850242826844369440823062505203009917252177088563028974112317116303930181651570193141766355125440714012496738808214186484464013979054647429820874574906337439582794455135509204791869282291201537498958508270568377745127198666465242246434922464628422094173719235963835281863104241190457543882885380763988400124212769252966413836968462601230174988287437219278962178461500655651592765478655153283068634245974002237167737981414036068964386693992444729747641849259865077178442519398024439370452556169973556771839504756636530533333051524538934320288665667726091700358753246086885528154463392065952029113675107881432296164764531193650078549731490296597556510789924451531443803395766284664543327967715822374437368254255005514068568303888369132196752712261233884920667258514582324125695264905967210550257193379558370647858214137128434233376957830885652504828363571619656374920345280699789808310840364771588846378678571351787047587300575630024838562983952512453870461356750044432780904661719756349364915108249080172965407594257012668047654197387685129279439281711366443149732716466697975029271371188369807937974515326734227557323898322064016471930254934739766331915290203865540861979005982185819486079113365486929096177950281254005619346881420225928055599446665210560535427278875861037807153820008473617275392191936534499799262248760260690906032711692990487945191141191926644446585217924095740253856160577177716227942851545947601884100162042209654463506707396964815618757717052848778535642858347841801805771086661914037123570270717013363516746913991237426804663343365416097391107214406527622028275234793233789643239671880661191101022224694975457421934637894181723044139788563545490338071411106274388943889603717572010226897336485972013942691058240849516759710950704504021336228571225486539968083473905266398322863629200164603599505528589631031906994579192252161052486431007580036944435059464473294537917774349973636949138781572975041057809285828738866461442570664346639337368408309090510646912814201520430169842451703839425695803375934508752533715639874948560137644659407244439639602744721996239483982980079439379434849799925030924922304846523064480769011930109995933914625759579579963839061380020360281008304044225124515567559246463231884975621449235642952252238300537472817772837295328206034369030733194944244709275570458972216882994259129291147508191424663530465615226830414106603794843278784135088700319341785640869691300998511052903115749809625103756538258748456885331286846187413073917168301701294971760906693841855645926879850458557826824350735521558057493675807819904147124110494033746793815533014008356298144221147840751013925220213717271104698294651302853270888039695737018030697629807352983943843836478083524118621620078519564759265061641667890740618853825873150218675913115010371261096567757911790907414082538407783640888609546032579139513472124226067343952385217978738399799977450443263775012413530658173455849957348130633229359525076678951492155625939868424968131629068276883008766367063285982779866143749352089171674142975009042068914986359317108287909358364806598777452239517511637271662107744575416671161340657858326845372680370888399138346278070718156155129160255927669496671302340031180720056729867317697853373665213225931233225752974191147953208025829688959805886397233975955456757712110754181918187686637138734279925150259103385885557484025591708773761265506482134508218971854657592234441268729895305070981442301658321551900157076468096368836817338648386026971268784712573371757303389065734272088155115284790543954320807962065209577750157025305041258355643521821236508879998881148414729147546420259439402211766682783566135270390329026019815624485970461960543287454609263705925356948688653346427030189081556159745158661407266439055178210739573278797257619641864166203318131884112013233899125403989855905200743015494833482241612080750596145544070417321838502582450287889612126476645263805805281198606118461184818182326943008225007683267355149713015015233710212509611557210999377119856339920697123616793520427930311205329248761375489636385793899274169855757006324357533786936226930915906296648744016751086738407103428136405862884081542585774146532509929518669973746574738239151011058417105725374847589277608424100917184371902321796836515092017425125159303920724247584826339205615335106503585844428078056146569185090451917519220317780262044745095513634971204612802753851246094653786719546416635618179786323737095407502443448773430657113386189984708776678133032031381622592514807654926522266159168803958589587646035033279894996486139621979392860639257585254625896093102704390257442167454269879307726360553896966590334121522941294314951593252016616840736508945056602014881019148938490103865284678820699676256507216176775370277494478280127651528204102899455386411554571044072986657029125220221999663292476118894095142854493728385756356370840976359793866571526637050187824039713492173093199891691548673091712276555560528648318024272176319789228337646056581575776249793353285695177166951633032192710706521444464139032046699208424240715590174126859634566118763540996702889118413773973832525546168936003727060293668189506496172303984469209798952438681332828633817512560239429662510240997410707977603884466881238895683365372341252652300298954251474953942156616886486441576828484855484436539025967515466597818831908705544662584469850357815554201809177091298241011793410691663397943044192159651143237936305445162839062241230203104353838631257281682493808625263666842953287818628285438999971777583320338289458358841322266016538240299364864728304105882533551565732256927213024635181095815630900431809156061162932203669689823871714177872058191215232427970871321494667657526541712672826277070576805450799812744729320287737438332365653047690843318093458622447145539443706356782441715274013074050289124394227584162251323970942358124805805181674366667825776030168684513370521289559965870505605432819774628145292474962209368753310526226132518836509108235306799635839256493336648506100234150161377419012728494404019911292069607582757626064512633659249422886332120505344116850610136229710866123666633253680335107972021557325788896692999687481091797319547323110656310017580611819377466348799694764846807862464679599978735474831109254339090575458576657872102405350187640151520549974236115977801987985827334244345071457463604604471097702236713476949840434573595173714104959051855702744517913962549320456543720217508281446630739106381061615285351798391811705432060898503023979306928490594204421982456520601015785126792706194516735013970995509950560628230965195683805303077955337686886364544143128462495525166302020226047562311424498370024388319486193934280683659424858045092347110300576981905539576507171029633146466086674799788353330476970006033175818341415253885521887515067517491665727639268227261109168255684700146365669241337092146382367347323928945219573938024186808333151203724867450748263057900244909791986917635587629606394433054889632838404454904884304037904939991733400208417711245574669768533847853840334647243108534344042391478233236629941014156831604970512935477232208873450282237944526031235529184723675272607757575378978301672991282279031241194563980486384199080102500291077612027812491776112282433486996408709260866521848844536277319704190654959332597489926218724207533992263344351849193867270519857488244723799088596288080175936527603604262707058023235289600251819317803132243852172006732059783066711886274666726912143385452582961111143190473094587035859388163501149277800487261953936137086481925517878097272061388775379660883810907540978045338467433701387742307820670712424488253986525229327571292390753285637734417785532277319840497668182903292411683960047255195778841561369277380411324580215265899634612762318143117277073308557500356395686090623810168131957261162662622561641390316143136336539270634692136357649245365638721917229853639333644848373698548923150491322542879687477495533832036971978333098898513069710855797082030587439236249967531165901099231763209214012289796353288380519026149800792115840089218371774833110624115595372698946635048147081280999259700250848710996727352827842666667899054245013095223387317218524577293514864699410731915575527277079023629889727323612962518655072026295594828941000187555975207433944395840880712948078224058345588207973297396093195064250120111001167390618993272317812605252493191957851499923702203089109155141047372689091979082465642479701941942155740699417499943364912885880014884532963898210372947158830736845628004859517780790078843032523253802698902657430135503850091697793059223761131394069156879529072897963850233227424915192969911216458575008846410634429521090740667047644679802653979301637973787731435015419305020927130427659318077733940060652195701153176736295954538283370202116797090497774236322266778769196480555253561412781484142209467269360043136382565322826453532458546576090002687416346269249030573811342939872009872859067358966457663905306621168402910254851892823357850107163271260609984268629879802293547231626306150804342649088961832376052011094331752060871304793443510770703378823094666887294950438154095110614590660286695432174595185566189437348083340798793186725464215726951829307586549526134003306268222724050404479448356418628587614252557324994375199777821436292471058910121197347052274879921028598760900512842719416613328364921309631646037706715888309658092055334714656048177739424096636837925032806197666967702971639446656124923367082723512761210369411207707717130360596451648392362241091371398905084412253258991706562332814269323513520760731137688618175033554816780211035590620969205237538237082317914540330038904049729648146475131306888663871962628835419478075785925183153511981772212998891422167836179136994638266189513550393128728513357351947164652072581406965048904655763642872397469337413350587393438915444712857384848291252129538916821188266271195620050550195540452838776375781646373838521917579862555173146072332540675716745962959360196696216638938681875948908264112382533665078366658277784099160823831958811840428952667322586636761425124498684488862167329027939913449079770722959454734787545153166549082312192862417813737443076557298137587507761715631844958897068683628353156055799910333157782336562530697568102449371114204706536774547742161413486827569640197301049990214137021341366904077172257463774790671466218255613337980648584476405220931548447299822244868551868173206621302038152538686806954542232969614035418946718892263479948590179247331151487888830438931064102077796014090203620221151938802268127906265275940892666563441544495665159297193143731773968506878551400538346742474754932197169042813163801836895588062234285773263667433034966579839523376183495740218200756036767640334557452750899682937177241804162818551195054198804402247074241908276683737140285759975062290154845358792947518846598298210435289345262949647027377280485228459672802474246972328396968162247831311490096226708779224926315392027078999361081782174176145759039127007553390341523478774050581650823884938228807985001185906771644314307845791830726512960529240563404267129445402433946843170085599137391377354900658720499053086573771334111991463796338635567578324242777767774631811963831343308193141585767094175639647190866450085629139415796039864362108568629828211852599970805282972699744670068922242895148534135015079650321355510430387677014646353991645182834596446304179760641839542459015022245549850870655389063455718906784708392441914602270628437531763330007321709673430119996088636684520155316958306914028896417373895033610855592480057543001345097218824934259547991093633215451875711774861414905865102120425535525029475349568081746310707815218009173247417879823941798537836885530829888881396298547036798279899205609288699047695786828971102614914052264977700729797632551483435671901931357250176645651855255781993195555849448708590361198937327192993265200796698194452353821834698914666061212963548045027211099585943667872056299174893272431017997031028064419266558095696593004164689413224117913321527845803415055688166029253734173044091980853436141658527197617534807494116460851936924710882217878855132142583853541238805793419012116596640925906347231567216273605002240547818798140196671419632642764979725290348499527712427724294802306142082221882122223192058805367022058922109881429129946840113538076857725160952860843954068536417715668336351171342966174322557825054561513416237143086554693736886352690821808374347395178146891718544801065871017206314150566780741429066122191198127556705282854057708262048808078796965069105416874363404276015433472641988018438918223821611289275024483473388957971497978155478802966252942485426055641550282750203717045256268579871021385753452096916472408991076928549075390706697778716906012965976374835830781851352725317658317553418926399774262344814906033842577639330169983504732563476687763967125477636585711659353802408966510338623660396708149803766342552051839606282255726661104570524559221072191703522400206579493742455912231441330162893035928819057483455314312602960863906152339404559286063840203402650945771078917319630481076956599395895904279368382076309723991331776912735833097441191425045614125211987393849569005665941834779768528469089936869206086034261454514511161820547448479755512416551062865696634311460883748096362723645001251973536245529041550497834459059164662699753872457492019139900716247336040689992354824691339947398467058233013313291987958248802360037956478603469289801491770523274525523058386770710184447546246249070282277819111998855975497619743561946794586963483459740064518115951542186341768723121239615439318223934396468886210896195352759312715725299624049472789295424142186952322926984824732027546230771010102320262843333523878541607111438479895086103819220303009198720098328537733119177862367432972178402448299292480561877184681543398060714834478143238149273961741792615160145342920449478374500231414064326016952525955773079983912318062498298435844147635172247270245477680200428912009013099781848898257603350736941809403582843769907079270969603451642649446310957292199280814203998166669235180183924876698507051829379241049610171022069261673658247979816236442522912145494985326382977637981137713295111740201681174539063938780298285366990680549371956303473086167662003157896402265772968046973391072420149018560736954293264937230967692775247095051231820306325114439218289606747824846111087756469935616108905911715227714085184454901600363473583674358630073446492871876972888531302990150412783422299345034143258310006315462405597225711675928225015151802259721127474404238642291307415038533194854640311768397412496987377689945595743065681575903488090393105472565814882677952952779042663485066194762815600484124939465555561610918112870239300312320976361710370190320877183400463722661643739903254049574003997923726529197880590830543155455235806232373889481139797126308938326528054812280841688975826552742747399407333659024574386007328125506973956617737315912485533203714103784711580385442057035755040618026537990643794783489776934309704106209564567743094136862321161368066678320952349908865513576159556687252392192924786570433014781020463909455855142596840530409337722153050032174624650943952001488862305288241778832488418740277244290084638465226660435754610798238853552289317271664069431169755227472999225708869426366246191705972192906345269471508134949033503298935050196680655249047401666434110212797200069294589559107496704114673333565608713763473403636939269266165923314737852151975670023403689222512870385164920228574392013167098867896215487971874655390700766165244387331495760567133598275429536204968925599109039654545704259614493404736630376424815208822271627127054507796776984637890073175797491524616404072591885000833074629008267069706736843107053231291634264862229415460880603029808158013924286384765964815584342767095598958194041963119407855546832849718852644999262519728054696769552056088093288371354955021177448148665523087695617122130004658369039300399210238586503870480937008342498514053075921108322838625173110012305079883882059203165215592321741832893602187150202573952868529173982730630311786511832987919589120722177810875639963670000746679957309517531869896499529235140999474619372631727111796833228797929435365904795511251539259777072627211645576340896302070092647458025433124817460200608997986646706160660467667863231393463047686260021875919905564978860665491326256101498002726978909221303284271583077576067974868435924391845754209143401438567460716750209234386618009859317395455013102187649886939269178670715580087027001038033880193080645665735184505408906496956987258416473312895378498126785723955202596272688557694611337230909104761938596831103623212050857410832622568421729633408061571047601464352736198412416509680893681103352232057338948063166326272410744397312880139870929695527664022713164223994714032945450433675450089991854449691001736599244061430150177809381416399781646991374934138982547495494891171477360628182280520596513034780693495775130521188974715336315070674859175070848187371280669442958352426580882607951961657630831642250144096677638006631008004823774458118879101933253381566492475304068680339758623524448280566727988188891199004101448447729839938814178972480383837351028848547608125961288267381736384385853739352338503685096367486877397066541836851664811183279955995077844243508453742650494428833280633604345969061014593556011753540560192887442410743426534057701201062497138521433645680706114876600718365973055868909188540919817279893241113171893948975511358862349200165930108361142787221297365894594979766252581395229681186639122972042361288301492437146885329915411803029379881215832368773607484492759179015109767780934202849373629914793533273442879100246214064790382667652773786450790083670837436645313728243309644824410677194335294844321442800136497137342684614516057489733700645611001838844211653269850332357400278615051944372122451373152363170109400732399674777324331361378604311483096966681094634429677874469860338066345801330380203285645557378244602222324045489222935412169735518424312325163881938680484109045109344659534192875829883481882356762152602864466893764191419002823394722991424912054568880688072570254469300290859969324586539175789479427734691715516201102114756499129621301929198971070216077295306898518992661824344190133433045584035436704605364333442564173698254122481124146082348948475190356687568722584502473087710345369168429157740461632509216360319107075983550150761736462420116846950634878556969848158573166833388851332391093270003534473249903113237612086333568789815875363614617287363019212580927292195153191641557494809728157476665650967659352215545903582970769176110128432788316244032375017271212541758126869280321770405292363850048914185544522217064129655925888880191243042746833596076701773992695684999957721522751114297260769286590210463770729089380444660555677791658532339435298418564496283064873120853215572066152620886825717596932773259386529634351420439883896098615092780004761875813680698709912813354294048251348759288529239871290386827565672618951457141664405731132181966653958732342558840100851310661541280531937892140662652386182273040871053403766946866453197772906302592693549151270809167351018775902984628784129319994509969031878390554868210441972590280019311037822818612901616296994703042955702363521653579888450859417695109143292915683347196599962858374168202309903585923636001787084131029092511508817905307674915027824700159092921085474155355521640698826544935866231653253381338010776739989299308094833981408928244103359060222252701594733928122987912096975334813773542482034243277641560925533943879936911313006222476056141061485164813288732386668059813233199902947762819664336343035209006936950129008695116223680817532325018319659727215999208261022256476914105567028981330633836946112081435966884039502240693622953158589095377062696515326804382710694608269472593007005160249188917199871750413229793850847817200000935163659749729514114406317211641508402366785029170168355258328026563123187593669201112221861965651706534012890845741953714095414105496932933335989479847645231993516981802448084662284446285219401369265094812521760862320318778397680776457207274845321986308380701089810778395695085371812796551558506192498224582932053828038621110585616143798153632854981830196869069461503390793754888923950420418808266133365408260908035869562134240998504815011913373014098346890463434082373006449423899162738064960160685506254227998524120843541296220893853118419538470584296917551655358294543647395070359228176468267151524450703132685083184722571117905984972791192415043285224275251110767646402529482367419222091057645466968747331974070080238800703873203864482535254505379965022950410264821569136830295239174286281435273457951415708277661559347597785436310585325777671978067123190929666329911818537737455029170504396659419990264378180208726945545347490484668106282640169041812565000223388450307320564881555590505468710403130853715115483317650157097906891775832663219800352765239541457664140826814590971711351178735574178080452356478419445747670903599449131916520241516624752530152138161738974790509179703261374010834697996584359662722159857622849186323399377821518233274162842489498300096435815394269770125556615898945662323383724295781960378131107123294582004285421059931963708642672118059178333122615574122591322814329698268332892240356966205675600721641177972848266306569663296999983786793378017726446928852139278517410420594820463977648276317393349262716197165697808161295985288292411849889969516737321474749578389401848388985481077477489010278385921449479386217984706191845192934022385006965089734587666208507552843393432889662198590037758117572119796475543666276552443016185728311206219918362709114021217021890589442427246730109855454087791875075169665113631430295037620506288743351418301697212788031250669023357771961076164404251894478534651335551844132703428733989943933490735201036725717404429921830097212834362029104424709286200305086686616317832843405957710054857743221836345104957737219137299497419848521772712704223216757396621245878692729259674232655398232528822766177196440310361658084182016651297631909920551198744223425859333270166641697736518479154093739566850519365451397567989395922104239239752334551124253680359139132754239148178421284587833377358003664326986065988178329353283878802638919284610644686715303521279936609667029692146506672881722773116614999686162411148157295070665006575982866389931180050333008757126998325170115164968352946004208263421157090820383982088781050361287437296310681162058885931049232845697996260835097908036241087698228716646547315775870601755606828034430461534948969196546283485476839740982339259658730207323943318184937890848860914534947447319669136141560470957240125083267416484424859891097718733779060744407534162829855900793968496964241843500209151313793694276275251787876433206969219607796156001613816876463005971209362629416537247754738030602802300984896813116224641834168261582396983211102160415651869726941330075324665712294606731612043645026907183101160351075296604091997237390916074135195575184082751587121604517578266292416064056609971741479955904221543374558421855772823270496974560400005342032411685145595622050950212921048225332087639545124468656710460017426608302766258302604674015201240766097406812452773021685694916744584558340455150737885224689440432561087478043632886262381600203451772494933896733936318975974319618448697594887785617687880994288639227088755137947948798048007744796098112781416589937763634150487618367593074280135923721959925528261140670326782466667634528465377494243088453206579205842140938860520827576661219608324774629109979999609489677342959933864285654860708210793819515054083084700674526216133359767298575497942845202429447914075683761847170249588283785984151135013958189798647667524617061579454406607786532728975985210521760614350326844658353980272599281719387184777526938224993523557932615873984498212692939576502216510009840752347439616459138990476948348520186113634623692973190857196995059877905077001015001181183812007114743505430426923130038355925926350943377397618172236530048153507119948765351038575775666137860479047903173912071283162873003702790731479314204952973235371937522952414802258701146147216397935804703976255641029841577632547238838113707981573883286135674393003202360424186308384067550554903602885223644667014177012121331116828509486999856376291273847045821437089398990327457370914224116628818708948007860792490227015162483312502651692223088931882092936054009369843275332811154911124741317677722886738001739027738297521436826364762676943539193680654126949885208601731318381082251288937156539472294850862329150175428890128659957110918636397768836186597274365732476007138652789853249780254323403747198567579996307840877064368502524084373182533684414299164731839882146249303651715937806742176128472532111974314834588071063877864649012758122928574532206764575481942933091319065325593026272933871552442749249372781629675973500564321133006844590281158964286518850955253533578050748588552140557848549179167599090455378447282279438685876271745932359714618459252845482822185232711774147176237208083113644782071417345478035051541423526722546638806741339487234892624328208929579864447662490113253869155459133311677323030530741761291450178607986878035479331656621164485268239853128329206588863009671441264272826601441427655784085049166828975041913981529234071518114660085466828816818024703945468091451767446312754933806008653465433609745262794485501309039488630341115029253599844955273841502587434864841420135170943132259980031315134561471212330321806579057304731069951109687184886977154521362657193432120795426494567839620230636591692367405932999371532833084998190963927217547220269868508324554029506204915018580974867019603413423379543120267742321709494490477652491124857346341882895057514004779825706423959591816060737314547260338458445630680834179850876745758538399701971888941714399072539991486553386269816124676949117215900611292407686724671799896625468074177281116110284140687919829991215342061820726562227499735623998659751626414609226723019349380442885563234741962199008708391899662932628634723602931214486185556795037519190434716390760237128025731160003006210089164987061809481162302111179938367326641269187290936850741879207790071498768922572903412595909319834870143201391703931630830148762674092112105639347707371230320521050055062426685397005955768189888672230763378468235458296194128531439929460402568240401947067792938851896548308657217744792105887493908879932226933486606853368802969015950612621593144418991807404790665039970083770226545116641167757348492190951425036255590967344113746764986183614852978665807312465840067331484459241066152701524283737059364446924605283442870178488515777507404721103320741424503944672447307911909673823781460793775412482910696630003734426264132821277325808367169348612005376363842316437514695394711678973223696814477095749004766596033763275361227459988352918237258428475073638396803852560106701522286382779960487518099987398749441652084260130867920846568931884113098900847304970011775946045404948160600523979880507832248466721692625139024136533809909650300197904936429271284655454206196183572253749916311787824692605045222793097854819726023076817888182889633653458626341086711279374926327362522455751025281852438401109119275192187887802259081425437866466974999374743553454498649947232234876940060751232690907884618008864229105786690329724629179329573678846698687178521622453167892839742704189643475379930639843865043124838912187073192512554126363979404507411451988641314605973131770093683016218643008147053088105797543000512327505393378605891764614434585500034923940730958513159262699900220072704547514425042897210783919761179936243368455456079424368819644686681349740515038774308777971532073311974681304187901382940142908754809177995184927307403118898413143958364035946578585191415522845328356201052035358653946122929334969894682238633474101605504203652001597182476077158401640495104446559181481546847702828213572624327350170497093130555753629797328557117547138850871552995494150146440246960551925839050457263414595332158150072203733710511618632875455638459760681183484546657297822983278106637732888370530102105838436069159036205784453964540039599230614598811250936705488580918144017896412266444919463124836237618820643939487922300549060726634761224194588588243035378182493417583635102838234065951432329007224104221500042282574989209770950935546118332549087622846964904472506192002838983618193484238445980049850608806885413880626166568560877257657401834808795596411341444714843607650571572010032470321954183211152537008514049816839862400069419131808462445003377865384201357420845560630620830187092132887916923434784753902252279353056065629277482567334346848604871190064484308438510484716302511771355365953907643194695027900610745984971149673419099019464939993214654299786721251218990243370248645897723905145199485427685427524217021681441118000537081531485019384987518240536675581191490370785680194935321272655061587210349964150022097713893964504194742619471199397768096572743562519849004457583052439628925095447943599854836607503039624778689143626827599553835779086205792566382707455105599322524808853370184360766809862469099959289300334645012328667801762591953896034446649682071757262199714015299679537076253099469496963517585169821110809463123746572346223315351529648433539795189166812928874864573677549725149824029589587947866332614919719193168484039307762758305588296510066344575783824870592751880307491561943793074309910390603522519898229683667409954408421055181670903949921792380231741607563876414642601760513612512429031244400569084919410835365639991479741492140144049599400604044508258716725148042094851445782974895237573804143081542005830747680192946302174222553952691589450118601677533637761370840851939833491798353504717466498957708785322665677590918907131059137026763608799140142286243063587554108299587671887264898300174455369474858413344571108819945848797066822785101484137948732835869409779764366615357467853092924979970715964885300469746648682097879045751270234859283467884412363369736887161341305811756666968546693150982771257521564774608313567560130645292278728044681000933282084984802846424564355271947113149772633493151613906571137514721089608088871015303652502219581356902290196090892478096045998677025609597434608697818735275742433174975225312148852302660356303328034912837494469468529512787034837396961519605756589104860582265873464132986194922702137222160406726165704081799386166430838874752117169638102770838822487394612994550868686035068954558671344437974956858283366364091005581392022899701475121066878573743527142982680310123860459498422494411527602402109223860910363658151406746837191215980597167783542112764870024099139069051648976231041828513507303774158659647391852092409383608522502268973902370759473386287782119580105192210465146441602822022512327272740554602379862942585147670540418026659297437872630303357947459461294457966805668221025147842625100084255464684463126040370290946990407377604080837454791335719235135188442654181209313875717196372809582316776929335829932067561521127404995251237593631073499207456519274661379408120587946602128635863253770620402225665650462154552487094653016254529313276905971736027198754331761850935667373861883502444508154723613690294624635695837066651647127945377784724914489499184013643366545873761217551226369573428128968048361145154524821177013626833271056548626909870721513617037616061777930709434440822997705824426405264271494902430302763643107590725932521169654022415094799351354178871745276481051522242596400591981362090798899435653991084233156071533065765638898548389393844748848972926494206744789208867376419173964113233177500172316713066982455019225148502042300456365887715138882437387960480137775821892297872921185440619222607684569200798673575661015422755656415231128647462213393933262365134656032106567513441063318737349701204367904181373004780292362781746347707259644663285258210850429066661761424680314917060073154400821110396523914790995936286579642113886064974643979195962051266628898188471126141123713527924660579258560021348833893646949959065654978401447919370823299459159437915255062071872144390805718770956818607016261883565421922268101751685963040253794546110210618945244852092029265836513459906776136010788726799061825707535243666153996225532687650523383102926905545696613077621481304713748061294580188245161190522751538196759647051636217914490094764006510519899031044357760926508811527725217631719543057055348468305816120358610336268047901421587670784113823034545085125606201263933064430498859909625571259296516943753439285381576649610720338333423692490841651328281296376187723713378116527584688098426862807192171771130691439167994543995981801541997594910955096952891922369282369143981162171090352204168101208730212502151398655920485585304015904687944421570015927802290494283612236076019512101790305165006232598727482058593462348732440500226603990069696300726969734200577399158084241121844284023544565663133820105304526639038308516161840648227853195460189369011996254085600077665369768015113193832529581833740325055637825544078432407899974657063183976001492659955552305469802223994446190959529762237039397883087362575615379718128262795156613479385049530399155541029626574123835099291515093557007481526212151504935840284219384407204415735389774534506623300624907045505304787810282610327055215514593278273552483994541773233887801856990842082759793080207762301251570612355492174987023436874784088155994667837634273700322684304538466784567273813653768924345871289591747807606323447394287198236865918119752328440969505049591407399936851855785564407388901388413324475082360900387465541250231847354705645335576623428236673903934552542900539063832070056519133743004541274130470477575301279096372670708376877157511503452289259320137920898160148003222633161018848518543195967208861250762707843801987831891973302577762625938523319517049530307209717580570539848670337906892343634065448645131121586523591555928095168631616707184403412293736884969836059461744593345882438564824605998102668760314093041309264099435591095376856292970020717244140924370129069810807855276674910940120348703940039240850128149623439501946073843339153165765252608659900724475662531087366412580613816561337211816992710430051773398670258281711260901654708321785068731951069014353645119146970414163392650905572259585448271527062329388948098144598636671044866209102981983189222368436340582407919380223609178311171426665733413799535609868573953340525339161669547567052456314841393090898451338581695353107468026420514894528817160981758278567517808273507990825927422805509086812494503002964823487068437843029524671165712290706932947670366354731452525462220975428659080777210657705867171909368300532439794639148880216937770392578733385694069315730375452713277964505519480635899931211781816463538682842249928273402353021496464834417184901227031004468426288932084693451170957624834766289665699189462175735918881302207507583985148458569300905337595405897504488953349142141438009288544473219862127269868200239473583743631729934343391411698425006936142927576361838189340081471825945040464814381355804796858442154994408602679574577296606971290226791252799976203771273039471060776395440217928526023835307474385513961059320158339201682856161221674813945987702629815831689709488178444733668750783176578127652868750984029641253096819287159560450698776840354056066239342855038996628860052670838720653256556519753707555240241598625014853428461388180794461008648910132667032272863247839013392964573512598481606104129748760913368850761550669978443005743127981625358642586277503298970076893812853893996566148664205079982518109426072884166325705486410570514666662320333784822658759086664135952015387150287966934717656498916677056697060820371240473924681818690862297161518490981999806830790640944648875594457359862364425440818469257822795777161628280223618135959404499254452923945079083538093498590255068837562296759963107652190019959198849992362259600955005343069107503766249923976668283461020261513437078665247260621301815626793685717992992065104376619706022686376331243785768430621502933010972822184375830739742717510152206795436592776575832660276164722920476513368673214102170260066154882838627570210663145835996941280469744079363266923139832577641642149634509549571148832288834570702602466690552705105745157415632608929852693154786521645529066350963888249774375400750601816527890763108579034197344905835791143294240492416392219918139920177637329843275275294459119778422580447562512417484286146289639567105309687954031952106194339392968941328201641270166726866670537026686244842922458243803242616300222629621938260446359090528468336726327852977326644355288957736626858308656657845798394521515697893811746462258151687925115137445255948456943369544995882641320264412862253852252245352997686406957932203206526441566265768750787318940160230587932381922238578409368915442055512488608853154179816004287081140672529691369089275926904871179495365656532706353380715075377212944541372483270363003255526921746718027098518150438300175093627506114629067831812812332156254779285281141970118724216991941694521850853597969303770341971832591463997668816171253408942113129486339374926174765766302854699832481320761723995311100123509336481879594427697953425990838707873093125204005577291369525722537800409879316557957832807494024973488287939865102134181918675972337208107641833902725294078458286068290332227015560294202147408859905871943469487193076636449399689727912005557179702525582565482299346885499946261352018400162581087831785984590856999551582698123693573039389825193205292667983700062268588019959414032081456145546522578173471423713521474989965083032155686510932058529988223422307384592319668059314421520118471154911634924993455961072206042793982318588597640811991566341026103340401135066342607626517410174324484306409210715638394938071890434023479923813188524309394666807832547750955048107058761429149390541086621718104010569752091767417084235213784343809553191633341939845501193413877846924988441125580146617379177134744202054064054879523456382224794978315841656516668283175398657012593968205733615996950889618689249452694420079718643014731366489634872619031688134676417766539996669940974697749884128483669028225155228853552039003269674701008570799405704883441688824991453618540724097922259764565697952863366873000491807330216173442295165886439625525812573271385777996004840448904720941949705850210236725922762311068744981556103708271604609425394285271162357085611176068572686131624284365673025116492483192355645083157914420184513332192639141528800398716506653998314138188959427755387872540957433264204866810694563934376738469173556528652292208892509384528502500206544001090810926430068131602150565342178319819293862872766287794648097337507808674398353567712243323851564461414219104567487691884238218489799504790163513874660027545096088864819216896417232314664345640353367251618767898268014625823913127280647623052252176526716833944959831875015369963865177856755443609463189571352044810275316365916970897504324256002660063466294136854632238115725917958652869139271358028534648153834005262980661185743080402531340533088839142555387281257242312568685833895662692427115543424257575697843243952902453943325121066851288578383435434134771105427891135357029103319789069352625124430446990630831134269055332373500376967038350017562324977904515476284214726754731274731568973209602820708503159906387547258695730668854444330151175736154660088953192277003371639768880744990478898615023278877724416247351199565301297291908580799264280991769391952518850697932864755522574159013526238376349824952920026262565744786188266058999391515327313304935258769279690638849844382342268635865116349931521924350117660752195582326696869613238728594901643708709739226372040331856951602556419851205386679217230354794360965144157053091436401892667032600312875740611795040708906838695219723262976503555308620480813790938667226783603805675024571297201378133092191323521585933786899662644524761872560084666169529897689443460142645087242896118092683850518114426595276122651491779958532428673744635430264629261284979707902040802919735543937499145962309018818047262663901646649432085775289833784262671570623386245312304414343130324901541864994352648325217388147132868081440123009759157380518823266099611255186709066568985467028585747849307296034570615598791035706980528281727187346902997394311198896889846426694531161378190261908220486508001245081058823288536943263288822324941432086440794185120159673705223086967673921961489249507804956848334804617502999744767882525306845288448269441464063700925048882940211085962989853624272501537037220202881617148138999133925909544248004714531416354263970276235075727047385419047992267872413966029744707558102792151776424987167540111700688108571524800420861107779272897650117749882712764246779102802190123889380521102127392552226730068304745696691617260382309613145829561395233655386644612166258279208394638814996878757893003246581106735063739988881977838348275268741862420609091252842629598172054689759512422997184544579379863008528842991994359170268374132758716214939970685546153723803489329691139939754211670711861892629467793553368882407482283430308799774518522472014813113841998196210765658658135333737477548842958520948588629469639109607965744038377387642791219116981406220027017697345181904042371977018191427163842554850565833533833996510674047405407740013932129818738861764986085228416562969403511003519776946858344025705593200701743157772708357024887811142452862526157365283333150629560488018551873152871419748776134064322892909924319339044478634034067772311332963440990081826082301686452819936153654240440686506520085702505675415313975408589149253983394685663940836281003580460820108208097547840517203925887548713386958178391930607270326695971957261922607893641924935947610114437740348649380345751142498762074256076913414041783692162998212114557267053522695489104481392186177317202198029154617876194319690097999706252068808543770826560705953134189556399562970545032024005002226607227998564083015684445066069902125727081711530773219363670272365842082226986577600111291572898557302210091032077781087894273979957557454480240224619813080559369427086645444195386208003803550915369670375237584485515501307576209502423896107810151206239393708216429284945493884333733916168048499435619650260875386526135722411597547317430131311306577604091877632501027351899354320736241687547624577726381423021118908687405144734551360111651991548770751541027736212058368091242064046733598093492626696444719780096929716279615696709230359707353535001113103390509437884806374642811737250226054325163528255981489647477314593278735696873620166745084412668680282120698833755573485994778418205465461129248618844008074004996077683323453992039877851028735502069574738551021421006212929473169236902161482741965021882035488284476690488432599376923393218272949175427336013106331909148105080013350436982208737932807664439014280993366678326848865775175850017818953663404381041036185274685052570898671502652837912082141728271959528394970748665532950535253211682726737341022321225791461417751709670759227132003633692525031406193653009024942410291672501011738436918471068528618191471597703583674930176828298728656040832154783562499772438219512344113471795683533695575412147374234963103390898770370185545960154356589342857774209771983710817630636622873724398302427110796585708477196785342876153784289370728014770353141761850612107295202683583337357302618329705417542943176156593895925323604181177860899100113144667700817670351754068515648052244105030639543438613033691022068753000159690036912311282710043323800747884291588979102690539342078251090109402598026276136688530691484304487020547406372058678771685514422151336439679694233507273194759689378076995650861093312937113782870555735079203145679117823842996783378896203640175811809097604128469793271978384861591741919953686774299850352814804405122617565287451678805924383487211357412101811352231375391828405994220845019247720216254234419715114892155623134218977516022576394570197829748667731021304721136186216520293276975668672298883391122369977278031636845050769172125589635079709716199913027209252983746581012514582652061728544428043996986670232841292970098482961221893467295825073725116269236853136093302910442135252421970592588723222189666604480569877993886125349856645673274494412261060565428873360460969010721726207780496281997017362769920053779262345685771775405500832275082101818752456934991085058620579711664418339991602822840739459713803728514457227144629970521574013073393003055729591951486033264309240101426755114598953027582952979211104761935618924938413659393168161045177305260670940752480447032999164524666449759588202444590010726065378380457311346443847910466283243444673335034162490790889089551871231362864441331076756181567883048202099036002508856378276169103283042222454512880776364257395892776649668659436803197227896802491060433123361417536425269220256230229131246551494615828849794101392815950920636669543005376906518817198108292494600043673383121685379931328213139700334072933306618368195344697397217199772180595742792248458901838356696259107212694599080629774650244545210738399921185171018785367804027608789614484149646291611805953897195940811065916092145549960634557846395462168900031628089609174624305765751447082949397716126332485276392337788312319831709761803265424722018443058074605873496774911054468997427765567560169602428447377894619057658284514574746689906471810067901438023479842952237565211900633966301355063367813032975055091636624276513491644769041829564493542375672408421016778013826231757859545043979048121068150795351745881041491269180425422913534738004488900799406116439939502406591378900464780433916594009122038967874022748653741730196848227828905421276754879556941659581447721321295722779990180905917553391360150081383796043491203387367262243498157863062985198667443381746299758218885825069473999451631118380234413483005056146972024274702998532873019333142576263839099245758049860656354694456818438911622215111845478380949266682925792577417625532594616835819548550781786523658100822442980906429606276518134884561707454357583703842866147608526759372281177606053121267799418753377481869531762812460399260452608337022756880699198561040755533450724765559729306504074448524097181238589295325114340234634463753584288665613454646100537817906740384065585207919083030183373766098024487496948070565647254584168599051775716768382793955444927111908322281469771156803716136310005038837926088229586787082281041477234029569315188498100632513360298023917015839647109804178334127535592335582959266471862311324755442750366758186691394509232737856326761018493787113663785328372408641108120752119338023082777288202635645596437052093757129496854596823117346090722098714275157507506496756913655712761776117772778881578549830595485526958236066167167419585822352536823078305093867294607739540316302873450803316283421429859101443915162207830247889561223364577576143194293323833479335484679233915078917530992623367802126511162981930034179104192161631665383688152293401224335807705641603393512630773611615725710164549330825646869320105730299086441694056146264435900115726319126846458496851491674993442142231047060732478875654425494424716572790388917982813903219481019714392752178820823727983462995658606598295117030832585677987730277082168313030753647665484973655800048769401634238245126007103639482632574419855746404960901665448530788637430300996843112414702881620618611901535865180991119615587862839617808216658043433289824279742963837957921302737001988270237735064306791912574431976133536538878057809130960730824599564757020720037923609936307861079260042943290790884826241100718654764727097272583763519569229730679765755367557263059272431702513406609789019766268272655797806586530554783498554308127737165018451457973351132704338255399899277103578605811243380448973137929566595375916294334232705653286513244125905491200884653054660065892750403375261210724994994809281262934784832273046955565948872986552909884252755878628101053661161626389436940248832891019782812717207012678262220800552128173980837188172920531336409043970851337953636047834603791525764792722443031172434342685235967236328960747120355231358946834010053654265637758645353960658046991040231731097688676117792173739236110576235932221252855162567390007060741723942892794546574164398163789840175549196479450782194865952059039057584365041408741139848748290969331085479734248628960027688466108809675146859159013537012168478347004971770421783095104437174735427213543516575329265693749728034463784786092676111888757706033569782838396032449835390012232854115420828779434923256065162313240713653275567425143082955117722990668236442377767644563302641392232640772744069869404552439698841005578918237018920582189846282921731071785098025443100048938004513106821638376868990358228077184507796726117322543058907367078000695743435762780300173563795047401810448387757267553700177487393973201288494336707291005464263222575505704464983847752550896771282656656551970342630742460045090157293660455635696604471374802274354766269600301423086902318344091254866904976120620251309177916268379196129460065013966426394743508041400163229055383867978039178819466027313264292102334683300885782374448468601255528919302366960560277516345766500723783444543290577787120104262633352095030909499447257888766688447363097120027799833347137586630472037268417890277177340226224677785772609565822859007636699639658032078779287673337152527276174335079502518335135662198628264720894505361498781107555448434270545491450330403038223882254667790319198623170226698778295737518896768863539037206638690343542559241313878091075927160302571767781874133895204126171459943503735771918233472905794731381789283505656582379204296427668334515463174939840742598779110019684755613796228875960680518287120305667631195745945567022436735318216438308988372170785212337085689116493543242224911700215000227793017272498923586326062023898671171399598483700705839620367399759570034095485485873408647782247554966616830932913989931145069164647671745848131808768272212449623536911328737991203084368922284788819308901142136562208741919683347933648921653798350812232046444124260189401984456669126751818214105426385586377860202466162763344688542223647337355649186451842168192590449155613492335536277479195015425068093238771708848668442283507325538501488009243551398825188894810551867422175442357766293846726811048897221693718813255133293924623697602765821906084863275703040032375610262704379172216491321226188170329782031560310026101664518833106701654097360750146323459506315962016870042702410430255757535143562721929619036614319094188050891025800995933048150342078704574809031158504675723429419397789883704402689530235887508378614376642623792511305934371428537534914588511201484704153949212593275525993393880395105296355260158222110694947206941500896651304880373638680576801719735795308846519494927294266206152426885494467154387486205453483527827086847441745303249704249296161867756839489568806784144240651908979525061578252579721858558658329944242086039035280194805772739426106058688751555888215115616792781091287971922074869206521007923184208156526114935962334366839964615206772144760527649635471519050755939919038231913481354999109545559739790431487107005429735769900770780829903531420136715895442842929255317522314153231549875901549930978494580539563998791997384700403607863908828101483219833131325192277766696683542667639362225787980192157891891802386030992997244994548597159780713206721024069350110914177445711665487535611718048839631511978537749229148009249459090072051942113107971488121732527031268945209971771278844818401738668638194596877741576004384774610976660074392033125592175664114439602763441053932874183404421362884213826814305834347518130103992502378786444412817495560866542082131685534756394697273026346834213720168669316071000340055211315862821319261155803892183254002985059019518540567011559755409961676865573793075237106884885915043092807318135099670808977034729459772833219909115267398635086135167895903828606875594585590457499467638428959191062832017363600980913981338686439039016658496804772851916397959442201560736863535999638465593983142380858189988089451743118991413443551303856183377507341842922711130919512351206857151928249169588523497368025174942652259052685498291937845421812450087135740895917436059821783015548235920296805790632836383718127071466559510018437888853390379814869082222660668188615977002068063097485682777179450801460800923173854442529175025165318751645898498627869938154138895745399619512746817450650508668762811211159522366334002634742712754313758971963418604414957377892756783048465428807074249250563080895020133916723312469181613617714744742687050476999722290229621828374797265830108426539729925384617032404174982713165595148630016579336395310271891743275740128373166895501894936928848050953878278849101833773731766258691272766923686387796790576305540425589384476380683834171082482610114696101611142305474150220009421350498092110358056560362634057965178280399031254571853379919671893207737335201009657962676020439890745894146513571244138324594245336897001653509255200826699666679052763996738130715318293725487291937239193769551344845021195685169413340215020302264253006016698690154177254302495209134815160977791707699712296591379667543960277289403067802800073416896120137429307425142639461256258578345191639083663788305657257749006309662476124113819434095130626337775213106774731942997870657254362367090478858296718857534173363299634444111513698920486335818186370471157918658126394822797272424548858108960703839021108991590203974258562291036682457571587313827242892173078121154023927036935300387900007447903346809193835014285148862267422279111766924028676698740328272474959170829030352055372149476890546351438009559026803287416515843925839308684885775901600018704750473859402249049721444993340771930325238079668327332721294026221351985946036864593802356730072462681739821641095355735915279706124709346809847604487056633220922349040626880405624456451088161209400245126560994085117325098188437234784495262302462186968232713835633727812086185209271611235514681894376636202723517651882409356223699716494013941686000400983338273691836044909919138039729877810690625515326720640811690743037258003811386136488519536011196749145018035705589139350000138927351264709207580933666247063403526691528218681768143489723757284098711823758141362719710001301043896245746643503220012920232677797554289079890729647379575166347468435511588213857490593414642706977799495694152676006505734899772599373260942984158058699394770790404778333059241545195426891899795893001639826625197881437868316233304134323145996990665313644199339950816418830667690813170912713074116213798989031973225363606604765103584787296923021401824065591642444017072323586148298671032707963899500760844815659040214922753306456415470947703298621441747289406983492705162130382224274422105475330652257698216678999521303781673631661714300546591188189040609617356076854842278965927178454111624702746938926303394759859796945819041529992782647994631556503391433201015147174952256045853354829886418333857710934169206821572665107048283288711452200478706093847071413703811376260618811167746997133378901807554827676803380928374458953250054625408966818762307053752229727687246953730407413708058031130332911869206690854633232714152849416798800881132141388825083025807806635265790175678025404212346810025917093429511257750183095884236544054094458021939170553020032011072545775099808595295235463703879739413131499565617944656690897825229975441770177070612250463137767542652435863049521213306923298730444641262651731322163925948198067879224953936716161520590282524347459440641116467561145169130353946620496826260754490675326926893192463121709962970781423750690988978987515427566224651325151047092678984510854742512899849735627613263255335772671724413389416697644339359985582566746135582841640137366688087619414291255697012972630078523761067871313103843374575537248417371596264549784079718469546343654813798198978092790040576330628015427831542830608565413938544454041963506330595206769531512848815557464228584974526735927140898276383583016751393523287753243687298394878748349693647391621914620784041865079991607066350223001098311021857754832281518688229043148502486855118542186790866230477627315076501567514448816488069848431314775834622525536742650949893103248526629850945460040655083800644390271183659545691852518456523771556574448873440780248711732745431866658640122028985824689346502397976313351929191043114500179869186110487710458017916219060179173521672257662722638200847097156326906964695747683384314930969616600000027688153164807326884156685683499019831236228870034032789569473862188432312000959600155369617205385164993667272308803789909896463308604846445325846920838686206969957858365531548850392406684829961350430233128348465967153690002016793259578638892823350409578366835771809929958647492029562917433462503176385619625645235775431595908127128482970663170485337976876681460282339242018762055584761072454046028236534961862491625555510378446277912094582567054602817854813914343504187864009065513981513030751357519168141488216911293393906101245616585385276661802248569428819561799275339565440580762628869856078879378260945784063990693469319142680796360017685874726848352890542108668808490130707776543423119734006481713946377100186275598365032609837811492098140907556755543571774704795004546913299676755945597749259108663750731437629610580148423335986613029132829626746166614852102632867890253417372752533371443043804950990128598205335293166887255452705660221673187260404077451680095056298380563555321993297619018309899223509638110503572305921826921291583671408107990848738005705347832892763050933266351634503620844107829775625775457497628427896597464897167193312239490876493542445491372173602595375434233881753387691835497089849777393893373206180234831753135562121247397138093862988520062445789409263242709277513602189500786673015527713124051718522442600109354373093500420350719594538467477858691135237618291342294995150766147362770665047867455833578840563399297725727147783380877050758186125101035604224451859335961053289037439365770051048903561399738930963357258219475172368864658068073873999883616551625112497170606363175546480990001004514963171042282039862303922489855793845940888326745793110115724051755627213935826977482377736727522447675730173302345680641801120213093692187424907537921295558142645343179832365229697261651018532441876740118432392605676365908829851571984027620692359009135195877531238906437802709753242482434405656353376271039993482238539082620867078752691431694907572453499873027261040253783930275266444987933863720201824789555437379509091990196971680963010600771908184746049944050305904852767424310074001052652430444029910443513963860888434764584752326987293413284033072871081246702995257156811442673266769395560056559168979329261699665441000542402649184180186722582176238746104696540361543857631956027566782315928752148148451928525563587069444124702399428627348221686236954870993400262047249849886654802100171875476180833064337760919223040278717499738234151057513634737475453723267352042026694582613754499534625579834608331867109950772254294438349949332184829791706085134255743683109560527574979789336422192346092237897708626089698946825291650384730361316739280850866682910340733915379299064914337762164789886527048780678050628958292009139260603948738472720477999942900754522617750232434278613131772930883970654115176803887056435261270028270557029784583108483371671210749889369307485584453789931883822124460190632865229535919055406228959775473659807050820172914404820030681988977386872731805060530300496290823636875042977038788682993977229383101989667275843260588497134753465648908006851597450239305714806337176493496209994771736809686768085521864588688940203628903243030632749734346085446834857228368325783282162556693273048620468298676813191877370160453965600250438312898600037190210934979437076388013462015273435064305413654867590679471109184926954030999096222566845710101336421243826585273573293396877926882639819053637389436955395064283808900505739494909464409297679471808299118846454881160830290054570614814077055733010310564417573435059351729772365543052697091974534558875043754902606706963169392436924442950963706557940933742899214562718541802672733370367568484344513281176208691008142458071604272261513086712872598504289905157455438681910268384236040700567650550485405534527727282387385649416609742079639922244587347583216422878645385760938179970207310114686700760912365878075029801605453066950694204365337920347258655588991434375691620494603445633235681420728126721394842140042142262265350797455487309203813239122164333089266214739625627882783221440969506319848381761158070489266430890687338669297620570073364171650141600975021456852818781424802505915549831941842403055376025861344688412337383172884547173465244939814890135866294627042058222798969029542880035848622294997691429300225490681449696845166606176078684311387042362064061216975289498258390494964716472504545021979573836999867048879684960849050373873995010476751904525400326791813155811430744326154699178180413882826067295844209569906527446818503188224561505616100014589645088814987588868730989290870641750568086025797339241536471985858215578172361204474497980276686928796042151464797342689685480334725603592555398412828130221909388390457645922021779825568174167978034528472093735684392030182123498424773796304041523706260905927081267387506324669123222600876009814726617823398362919700886417115848498646500660507280272049169065361790984995386932723403164264158372347703882045837666345199246250935067430707775126748092666033421126133104899554301069392263119641853845756265572389545400525869148547560809866922561770052861018594468417974580088051067098039126453025120781289356934575274113959729809131679909168888284647682021813066818302669284161805036128308961313926521631054940112232356389227669766006969433660027093551587640736044560768384985029500169726914787920341921756231955656163285346916526454135388823101428306049183170757960875168708777986704379155096371836617233507718167118891183299829105831720535725060855681608513378113711565753413222426632392143701036064669226818280958097833097475606407816647891233694117865327296861926476934820472112964637722205968167336035207575559982752137196697070704161495984324262019251504029260813575116390539014516431211524292368501553025426377148209046636582668802473161136356059751234992108069033843410068238498947812598572597534711694296551957088266433973234601922754926446442694761512850876986936313522063561483432676979142444458937568527847158489762485757351966982328707194066614796219673477063208195274800068985549970938494727645425695612974526041488552847991394935951887787693874004177669376983516940547218041736751637343373864898025563941092836260104146460658136649574615373966451717527106551975587255491993292767367912512760218288036206199715285561007065029585689129331918374566679606260346353487997672041111177033975900682584106847898898476370928653182972677963023412799093654922631689750608397410073700644063252277361789723540607422932642658568978088860578105472337826168922942695334955524043435153004454035359700612202256550903356609005381014561052851124705084193693201569326603733198579462537323379697578568338736586708805850898933913108004060364857278496967806524430681980640248712779759475991681218773872087214542511021737256845378372856055467380415127685652785625379125680355492194299622330116302778107008647326290728142015562338636634183360132426956477952521955948537367598661933037748191763562986230270729461819997611241730448670904928374234459108610280161794546015584986919330490032876282130046754760901936127269073807863922597392404286893838453000764305412006730382072387856752853136466916660645995002301775949078113726965319772817894142097559566459895076524483675073657942061841353908583930349903094657504089262385790479042788610256016119356456373941726742449943352957691905898642985966396112319431596548869945701771396341704372455085491949932107881011300471703878209765159390352245743517587846392268161411293013835087685006415219593324776054747034247940795508049166020754557531902278415714367867694280007733251120594522749148955293513914192006907262307458296440382336000786052411701645820149774352455702400630345330730183238013657595155564724747000814382710755865720594659358946847035001080198441613022779595232089387798922957531852375640551419692172417610345009041339086574074096517148456137590519335179216304766935388450164446097957639330214344909043567089074582604390883381457152605664180928535688367486031256510925032050280634533243652983717765703371417150001237199316447967832866215247904867618438162032644274292603359046503926739627318408568943486512962955648527434352585195412878724571002453689498753773989574910482648220624309687780363983892924462137753718327310119117729530525176718192286501072437485234486925614681623397146852725769261777771664899217073844827406489875940866188549018865968911198927207934480521257742362890851501023023447637849653618848119586493373671372280229136924915821968148089920651755375333034293928176016772303404540328195884212324797169307770521109073355207550154394361367360937107596947056862633814937635815124092145476854426373086231654871063583644875588607370507142651783327995572133535939960304527939634124158226697924008414132793132671464272421886723274275174693151466061593771376271832238669833629387875328747033175712050191844512756801690243515329339994732458738399101589335444643250197607726292788737893560171086593515995329372251441879277849254522537648353496171348986693249990348457821497070308601755691257875106665204217464988621984596144680208241346390183208385698734001422028239103672541265299417950267065974449896689423545356366534555743853009972204486346108493852456416112830432699114827898481781400936017899261331231286007450084093777107106731319427267075181105617224375360595385797636126471440175545576432304388955275458887872927809200828416417892620559410377369227230318935052544432907460915746666496078904206011396154702348426364143584279530717499973932244082401929103446805661785246509695795179785324967657288673830856503093143897338324471902007706321160158579943284059400650609565278340466812334322103924790947980751878008730588535284591749489137655377396144503759131504318928486408463950626835373126095807796892919847410828334536010019299861295231886114743727336692155093022257405194859923237627193687583110272844437974812502794958568498757086335422463446703028426428499679580888518803513089163371116220812455794881021765591868488735031660952043093702988938324317565115167040773984223316690534494811484420191561161110958593739116189376279306920650885622874048830470074320179115972851031231736339362852567363777130789717974234248225403375706669844784351877988660610071318395668682707255194810539526109977103139119156951636214922763164408736114587315676400351633814961340630609628650996469630171596791502834797918017215554972292648995626816043753807493971731100895772747110399806250429966595501134748294473327165455730520506178421732802595583358583103334967326479715768392330043426887983312669873125498056385004344078652018110048463852033376131076389917333415384927354769984299666314610900907741482878784262523188623292250369929030895276163420754570256466104991278365286551372739972553070739761426620227786461388275268878778305206231878906440819497135860556282901497043714670434149970279177503538115781069738340986683270038394659775147170867766892965825220817960705897948277592559133025954079744077155781123197905758169679764033440038200767770101450930290949886284997690565823716230700636544940317569128030194132077686837855646412831062344088683671738390982791748396098444199691656611425468281957932551323505445734251298000481868120124949915601982391466173251048511233533376156914913822098092182425003450546563265830544239145983092091681930892066217397613624383635358808191046536335609911117494586210388970823082494399837750609878421585705262438009995581927562553290144987874461340645590256248635324115188794924104933975674252845975335974208784443371550460697063588058332692588979603613858407913656782608652925267679125589695641574908735772634929215623126210022509287831230581699784424470037719709175432190157282946295725998701255931704139654203999343006016378646077785212931769885882590835485257573054411653735920338849321324026925225788256351647324425877392393205115272291432796926286536190155892377709661201977432181284756009649596487077332296372555600129022638052038641449302648956652856108363032352298780617602745757810452984043202365580118785937847871818812837157599152992015625111650519430248034868330251012486799702080719737547521132656181929963456210276483736915851540743962644644783284734143878566757954371019128862807440888703589788170158240265718860242732142790951408521041189125491985689900304243487697085877988703639327617997575580307972525513223520131840763790301385769575929419180865052691267181069703536039234052347503466763894764331705760305092524045199015265106995810652260664897071374762779644886220527764122960125775283219703504208262948042430739882327520602072183644697062450726053476242021956730965566435843041175721620785993699281176286037591697616293911852669846114409504687920728577866705391665520599531303694463345323485302417583780079833382380589468148350894084520542401081009675809128726982683857703739081945823348776929660886086806381843921671911339224803521915919394400252579668203427448902374885246229566621463654108162393329001092290637705027498040178028829517295782628030176392440772447407903634833470838451213526902041384197519354538091797808509629209424662079195335160111408325821955429823246611408791231535287523778989976882591890202972862303866922822470150580724342423087539276800820324527756311547141398874648093354421689381939405072960904850736099319975880567770520103047528496097971141283823485212746352328903728548988094404890818663897838932298783326061074385133022462550498056651165597904542391751554096525106366658707411189151652494104275349883956196730649639158134884307553339166397002387259819281397069127903224460098632658646846316329194830606197877135219765526452712803613338530566940994290447443223320929036481040379397940856578668032147416169133997370129668259675552053375162317649184726392258596577391369832273724450387320169476690574675586926830546250642259424900354500707178606433241959272005756227411033946466257446025732933907525897685333131201330397167476980538095973120566562058840869180840328196207330797099555902454120566821414154686322575274664047299707729031587766720776432403674844489932466500803878165348072343584718937083493122429601431606517751546841101593234214868627050126761662559980126171611650169413631399848186913273151140006521316353254209823132811914085021117420894115113141836749667950566172365426956471524383672236247345565994406937127507858048736335922706306768298960843705851086444445617761794472894188363480194345372555720475497259778821488659371195307215161227297854353995097631556093058038220878565598630202482228245480210380790776310062704734641747651415877153305474498625840380758447505948252602086256906900205029710457011791766983946218502230230316612828349584448134269191675565197471304037279911252858715912805675723396484918031617225680888719225055344771323232748204730781656927278134631454559355705087741249656510935694178358796143929227323333475853794779103594158440956819413742174971394111690323173267668888829882662488166114767171828400648810285834129905489299599397312515860452889112222144755684979827885402344123520644826007896555683104774245682376688997246081571387840687113272090693256776241699216744751419598421536244624660646951518736537494057168330831170695558058938224408509497846912172606905902451927144440822942917533253005573861254766751535972581897732969288591297968233534845925917177274114462258587432037620640548230568325665458652410132001856485403547690275191283333487466732728483158143405345159610357985095591503364347757808709969253558705173489553984361791094565958244898848676028678159163233753566786940241625927081842291324735178941890243514462412829197046639203866132955087484513381116390700838566434484750317790295230515457526868661406155610738529683396058443969336734028451204040443470555781900730016211448900720591495763391182936345272756159574245406536881789026801286813632413455977984901086284225490174574456972653159637796026183541261945680192461759243557766175633454105152884949736711427206513996473050897871597708298747409176161267922130781257084322800762297722027017532943095640053926809349529778439519224489196625551129132667760011124993953984953934985043598916283478676117815358258278518423363028276678759801466745471435754378466335281929402835383951466066188599114544756165004507012779637467082201999547107408734236470907400057600305189908041898408946506617140466151173935701460849973762795799708810213557768110178101938507457305634874686769572287296389966174557161457779060972314917522936871373454420530113936831776198168049488684269707482793653689678312464141006797623432022941870097789580564412988719073773644743583578049585683381845494411329034729860201251493797861699287819988905794168911575914579157699429914874833761948274750166993241435982766509874270502370286256241645574269142411697748405774574678138744580073454591195490224387992738382288213854586063697736859969370158035315901309357397520180423815509357126157707124377824226740337059824946562586349028261777894694928165119388735203310561417061229085010005747187888265868095758109403258865213881113100457009559398151498088123733451816194508940681439481401664333570111836548327180231576537547339013378999299576964521783703353775274317986028376507163956842508264569077410472274883043436514362286465555209332155970132765163649293717028115442294249891091011826983364057488427414286550413786385908991293078292296779513508513368190250010837199208311240441671755323637923388050445316681423795332550374956086617560597175989379057056563004526628190809866478263801937692155131851030128222706717795180656772674497556458915865286694290453330021906092825755359010457761713057336988429516152201173422491006274109628311582629214902636823741610537826138699321193716562754453223929956205083776966611869773002016454078815424387058255267205279857593978995529566832679555707449937197415799409522880888116572896171057986705218117011176654730731930546795096370612227993461277430702543119868913423787770364243662720903784493428528118167344394202312177203431414913519627502116946768538287903275971474760602256818181125317753019070496016567045044390128445259528454668494097601184860962016516664410024882174621842008960965330679876795119955223608649022951991968291883723910442478223512443083856471791303939315232615674529837087690836551196447547123828131074260776946258387585553205971973113569166202955919641255600036815903450254130964083834960032688728221339426758584532094265298226453803160640591710863555716774394165917403409864452991844882036952408075441959226198911382290859793024469107589780532192401329986271042302195229852965409581893184468557235360971438223282450570663669699453219487757693563701857560798992746157847939730040607762489508295243408499949430821635797562171866652916125731680934205678865459030941097965680155583907941961343022770507255063413870369911143964322282751596507522862021076648307571834907799521890222235826087197061251291734109472076840838902142667784795249560712270769362930387159416128316700689490236830698744015774853664018633607438656503615292300851870753608928800901275253177968973787005896179759191671278265603020504222940802307874088702785510331337442299291128645493253600185376573290225519254404769198445095321971472337492740979119798831013094694997399187294845642555236803179466197682427451617784870032943311132992000257686629940499594613788431018468676062215628073665437426389546826205557660069784847779252459856187606940445783710969989454612293809135436046080468966716201793059328954193630810456844813674396679475744169881062841043921687008345733215443127691179557995715141360137090873531168280355814758739398954435978189455614289256135284850770087774891084142772138191874656038670002924470764113969403106906027738933297196009563512179928630967394712538054787407221876772976604055341729631342898467326839077991809538314725068698491876743737437517766892955269853343203222661490834715224506262596515350674216101701910692010740030635955266381784219091073064283968250954990545555998036105547348589203176813531377355132367795387131016533294710051006684216113177031855776912687964485716920077224873585597670268863214939979422151921758028688871676559846277676217694956342818650166761457222395435387501322990558560746225542644978854044199251252253317695638315072244178486133643395986557527748577275569783305898205326871502682002377267417050830584246687910092860535822708762343308661484154892563910867305285224088543134577954770685556776655641575094729606358186291995032864716365416905353599474156854622897183019512021539001546349611998615399638480776018683234614996605542091807731813252117156960471627129054638732991564893215949918555475854726349900046858147601844722052917949669744444473075714780089695733659060326023220447254466582298680912868870609530143719531365022843198279444325686343446741199388869630128635110238977783526659903304844573722840487137809279747537321809625612734100820839061839002102499058275508792633586884756076412477960375224350125245969512954575042018514926056406504962344009107820394533836913123800786304748914706410523451576390337569017967085489824295378547107802588982974748082097754183406558019268727845789679776091594957777157555846764817954797773669097181790510445764136715782157242586619392399574764611530437873846815733448009461330135794902877876605058665890899542064325187784684544215966705753428468467999052590949343630358663059546593235867910128344672033826132961113254089131361978162198892741809220116252689905012894723982017020572065647172155901799559565068404352271606828694925369277142308942061353486379796095885695915572089448437625026619424182430958487613461613981642417247097617651282985602763821525974546082158948268803479083765654376556040186891350761374634339753630197239428167277340246714945491849112810812558154157302730935165863926677190132782531224708235102899377228495394157954607491704384586092797764563303301930201014932978251691086797024866142488941710010709244491011119138064150875111606239553216900921828250482610170863202679317017853246220926594466077180079634255987507965292236599604808402810127210724680126101035030487704532706900689784699044378365102336230703841259829009137540825660326693736532651349341421154522903455813392997024025629813296084358566028223737754590358214652468170921189481968087146784618227727540361617963454460268092818835724243998746440045159602060086174519818624288216885556099614310454940273428926031175821217789485622013168286032675717025741875612372398549231677293465258967243495778827202057813096955561900337346835467209905177824673374062262775214735558375876590880148908333270277629129705168649752560143892739566760127800085402937544956589700007674572399146273064019399407504156017196032507886729142879642131167554840718843524355225207943542891758033437407713966762665670932057619198907621265756470404186734187021641589219461341100164926777694566945352245871127379008149626949849094443105266304565868705226090281935669208421620054997939059506927583160678956058086610203283767702575899489421328501407145140215305410777831740977374324702509264592792300792370059421078855582057759074278073841754647344911435075431176489654103439413851150818961532833418923833179641490680042908326111441226051991390308712685766663624994874950397036217500386828548969820129516945095246039121743616471250306240090800734128269913273010218856770027897690194174233447970390208355854357803168153389216321869374676170853480977502718983628232457638656290322800122305241001670331240148029307616147421127066666337728638246140014342300578640605662821594511137309935700227617913261574449157095994764141074415240224489671547185817589683708015981167539788645555922741103149809326894668739204538397594821083359458492675506079967589023925463528100604401392091403978937313759526925430695783104386674499673252333563619900752288730572114143174466959448004452353858260527386028744259350419620000492837868124042798490289920200648955931331484489549496877036487575249304204119014989744645483846594348222288792034402004933005728838715296455513429589224670590653845703981887875932269325447686637674719557781169944762140125933699060506546788927784627562210455982261585699781944593548486612915520486910329075581260234421892302593685932969377651156604225205532328374579018530790693024923436736920897609852432666618003160765832518135744004870044638048159934867365283828574014467300100645529815176138490359254635516106592736758443475846500610289132792806817444762445717506398210816982474661633447429281326355941530933302991351694676909349706454894939456796629310392623812277676825188999146713875465100063633223048397284533940400855371315177812301032954201608310974684964459974827670321603031423601452347247683650726416450122330125919717761230212011447112697602303964274630801209103934233107837039094025083412990690973431437854277964823166764853889576928679169575024481905226048101870863586320432934408501820492292569988241592543762886621920037348610782606673657014484500746847889859497589569721294257266452854761233797188030011510077908879998393208379371533724744734197917465190218530692609194527270884693427005532121729623870959275976900921183610607565228122524395267008312375103337334100168310995417625138718994962204510493722624960165273234626199249843067202830579984048262638899279738319290171278960942272861363701036870827572001087944766364642243758240567577436563531790196444501903102943461481498445218923012249249738199454542873900482302127861105118764656776732031973347178215115641220365402355972849138178237533645868625894702975594064385688109845911891897202613342946587459074067894409093810271478600377974407160746229567010559765751069980107500265390226858388911965603882258307406997947641592919292779835076790873396795098365018481191417096654258592258419730589416810510407716500712210820394136665054119047759358823858966597331313994082478931528385552914843002397978404730672981999615469465150282783447334277863095452142558375200223528134307966897522533705722890442711653195091829006607548008734440470652128879322434056954361172271172329507013655439463331488551820151247812438024408489375055266500319914089378523418641158594549302596301916770458012129025997519699072569280538232625316973435478871049810857854385589042269830824676278401780852389394370736413152645026703481680986805545480898184972238715439860523721358941711175427787012716939736169384039966522352056845304163050151099501995213648135735070851389865726541331563376563284488690000335894447757918008798476500218615067771765326752293315677043961829821035084784680956797293889699501802187223145345650380535233117181563589767543494654067470146477283324471876359613683569793634421662883667611303935865323887534165039168088982217279890751596456024325551267105262074245575675758631708032219314764719080265836643219470528959004077908089576793163563910444468051866702106946820640940355270214770095714450606479194826286931963044213811421836344529816474502945896430168421413570619619042876725185303221658364621792897331951862927448588339590174717995005118392591549239554308614220750388516074180484623983269850310304616876598090949416151499185437081316681249775782857355847400982686707600966419631912294483461074710079571939017310567414229897225954320018774139957283061671112823755343210428524712399178425008547911574313924048907930038226343232439732330055264061355922028313896284915114564487539923612515369270255805250709730698485967286859187220514954438786731464442208183437590404278546236528188628950517802782119755654622945591592347136875872440774384204217584386882957603743310170749208444366315352332112666370538194581988977233098147409265621828165533253954360464930596030169966074390496395467032886664543124949040602663694159072057731229599426270668409423070727699264125974860327570007845380356619527094510740763399052455397992515876401199693059030350140611765360572918275949797518690575378634985492274060800598089274712815657503925270667968807255033197937689992137816248420524336146820412663896717094889869395692065777280913414146421630187554343290207033401366165487729327863754192332642424661968758432930889251926845040981522174171427835034832827952342438870140467202011820056049004462239886257081800494502980421920938283847076373331671787003264812050828461829107409339759072357765145444728883464426709341868835895804744637922148045296562934556946062050119761558289689670025820176482316604603988902888728552147079926205963696049714045978655443265911937774365798575447462995543765756470756168063196082505915967873205250543405231039401563689753317056293014647551456648544108740590502270234932828487574751013935039102392514548960077191763194799528208887347504193214950674176366623500045712559715760071475945222255624829897242553169835175411489460848892322124807871302143313034655068856413269751642265491047233084191293501564789129512171785151894244434867130980693152100243186105081931990005171574752671605723712502708394839521589296632545167013625664455542646150165632327802917550426247874626308531145707976291719449391566608758007309884434538447822815457121427428404157808114547097292613621472515732128430661211100845975981564735117587093653580168166329588603566070391753962577841675196943626028686762636139792973853392984054825288564589008161675807336379782310337658186581675213965372350409846146042993790164191506961267868439320200750604428799654934458889066745086606592596166447272560779887930069942871285601817292351031402571487682780307826268145614604094828557667171836861901038849549034912782029660458561729755833542684567018326924324736942937413269281754954730528214043792587920656282333134839868178405861833834870512554971988650241346584701581659284906880534836118996494905212323940669531054733458246713310473660580476178783824077997431487519358110762334896523401167908653646416522409238608510415663955445613999268944122738413232791524127874614076467858196164745906204479064942500385381391837431698919097689081057186396691780632106700648228325973885366878421969894638512120973538793965393485616065700055289966933529373284283653272944206144303757787485754935419733083249990206570989747009409110597000872029154744576165803103753938908673413435324404981937291988568864509704889221598352070526820726226455320234023287461600661296921351174074697354663282861030263773097203791025045844638795821108456172287873743821160269559532865234310320724347909001561995953290797728953767330871008550564244239724622665965764453303078579013148054756322012087571823022657291713111476082790143067395798981247939815839898109287923391825114815248910043863393321574027550336636136029077392426790817733165650404130410663441340015609394260244060713632200205545109537148284668356543868523286171977426235522920893336457535440184741786542208429816761600393120193994821280108636869830818355649912319750343725807632080290535212968713806774554154902404727693751104573370423381219707283605671361505711693773098906099749569624121851125724056099374957687333330733759846828723127671115219098940143539586623169494714164350925048098089830857938270888998528414513230588821534763980863807039574580946843562543415124188531699304863283863346827415329615575488376770771808607206556450619674709157637937517673561539766544396249116034068402126497231080375250618318153431247439317515165512292906844075759728851156672048652358397619610339082607997955457406144068880361435245022035693410218171676890739901773354886376066536320013906904468547609444923082373818574659761841731500019380599835908088490136753796472200923826168850261591470392605994327630203108033135887906945781509619316094103035804477537584818133046352050052123367290670949791466603791219505448077834874749931537458069132278151850944458115870003928625589173631543844263728628445748143019982418988682753998407383170224108379988890250619986440516671714700028552220741428970425450461497413436209870539957642182757832465453458938600580702456197301470145740478224627037349647688317439562985728639541969742157426848757107215989963905407886116468689508671705038149759346255974040927120923649630862393552940085980213423235118608709277342842320292799841255213252506887296270793122482742571378828393607402531987022475695929055925384204489187857559648399023200983795675146039999306269401885963858530148840395668258428143374041555177816879649908987596967465284032076974183710447180559496209384329726748403925422336128072471087220901532454731266222757876916763460006469855628950943367140036380873618219254505372990080842687200573795102447738009929642776486005945546940817226261607337107311548627857141987285945074663525903450608492921959644508478835416858381948252724787813466316582819056990005637133835526700537049962964993317283654035736504725731636943217239435251123013307764646620853810658426585350546930979775704329623697813286653371636080822682928663712874668119462169519931479713463314869239083310575929038416164524527810586223688007213001259947672165753932578683451477053091618892764396778567674860916273316129483875017093050780879356822638023210445292612338711994790181952640749960580612630457971058192555838443826829045025216271090465735487915102999211783622361496419239343638748913080817562670310591165571151681833171106317343476106680584027595312622713422001456156618511831915457576107418539171190282149964458454023202091955910904990309956906644497639073657522668856944966303316276935042705237646734080676911002637555243010738373532419073800494572300234580533690091353448226719084658146974671902295123491882539364178422213235659168755442715692405501294277099224364457995230349115261261596844255570441388981384428549048886830052313979160986068706186381552920685388303318131709850552712263933643710516711235579001348848837504577801041882353777708967864993071624372400191798597205323366441142073884993584559227482769895412721809682962739451567764149061211462950126688301078578135621977158431057667565048351867979118620699458170728306008613976305540950150714205032869812262919123513644827146786178181137419945972342333481991982014334711018136256365404890674064050067570522519943028075816653146096274711513836464271783691329297494632410843695167514131087747752601953204791067557194149603629804667519696362449409074254718064812444529202777627372587295904062713145563368561535080473263595096484779075499263238739160270921152892180719790183985166156626299268872113259363299836221743790078100762926579408201696552713989245418289099321184661559650130339926626961833982094840222303709075269764553675909044395675192523882503535206994809324515541936630489818551451033779159626519966564396640047564268455257657718353092719790889536508384239893455695466530849656542761257622514854814019776744237907351162980098539023231220227591350652598792950306549628645532308642124704306113240053332924272917667840034966964805148133060192157990435871628072544048440027862120347709468906332094593024918957343757483474384448869433066627750185172604232926033282075944583614982298398125635730793729737602964856117362761511316119742721588352418639209508987697185118653957600484560236137834775823227047173206465471062133965302783513777258300515986610103935194713440949180756131115104819236797022233049198417003634509871527945616704308492572052688334483412068073391290240928631990731975443274765044062422110490848722442535821147797029760583557037489669851336482532194302447516579126838157105443608274518047579556369730873770790835173009668341179739791480767533902854928115302663511451089115553594476415771164222393269016450158632693692684209053107376436612636088934686773932994050722033745948714637380314882809612450743419611691260485930258547065732116785640771251687542759229938775413403861711384796916207991701778712771885689574304181445504271107429601235109269996548923660591319735700814037757281530198458534057190102289476675627325542480179242408561475166948544213561157378993771954051885268851063727234697696443897803935545257886060880556160769070270983593457967706906343015565053121319540640208674559623225874728482416765884837102649684223332038897595889280891472654592818002760916811311740078324665351627724343851958156244858309781795136684749525667686658872685015294771006557530593233445460330301797432018182369934634635627301010550355281560142974167800013411675159738595165843621108382661251844576613571890653833135307851758562129207044482871803734342415954987591191357232098553474786269693713035413542869059074404905642570732574116374718182068401648112939822645714813872003265176108403490610636398568631620383276368525640853954057870576670987448000590599884643291316759706444949122821681268545811907465329181480238006742496774899935971048783235510914568482556982663966680390557051693235519363832093086950399293933042104013296781809025461401669986736639766455667030985407598658330692116457416359377350852959682601869473374918108261849515595634175867536314719611736962392654855060696479034475962117316277233593847393118780643573215827414287329538975770592369434113038654658806232841406899320000642174478790865978365593609342012468329966139252848516284449853084415813906937422912090562371039684448672038664144790611035386849167709600127524827816799417273204589997001156833874684349073555727792597108348979526980274264153405346248428204014468790334639830809074836088263607768868509608179926223413505929971581150313936916203601385878725998893306623435065828131887060248858810747879778571797123382613373138246573337285941704195797866389291212867576352375825020860768403530359073978586729617952292900445296150412536951595478104978072455778764747634289528705375689330783558202859039925338218548946776026973453050152400303097793889556475611050229246570356804427221374158743180684405894675137909853766445088983182621386340068571793275703748791665384838509573498676353030693674190872048880393544675914519518920622981812453363577962249351643987783480193498759726895134625126432957123469174908237137657711717292632244517474766035126317299013873303953872181791639332251534189241394901397469466762981033226372836885544697660797690470364156370102176771627426477316392607197262362346106211402377176202426686667057619768897036946741494961743750889648723437909994074642028106915791522195795154660621143285378559369006491528751056665474603757579134241380206292132169512864293958954318854005358592201211258818163936559240034723850399031914764901877948481240425246672563863149197223424613815379830995547097410126365608777337699414126442399769403690433647117030513689916826069757775058736855787076555751121887822672342792027383968070528309528085628102134634740132432836518097937128366350424136341924148274353282390256487869066852765391862844989932831699766514299468045063285697911346053115418627957250139712443721043779071786439266913115588040816100082247318117529952548133097755777707447639025951397650665753873719456494826173093413318665210637820885095211916230694516129608315299752251770492538116410525111673311202138364907465058536128751450431784765229356113758906563751790970778715460230553765514287780631156509839589786194660736345964013914486638992760773565562838866540595327449368753451525620740975608087692966965634241777505136630717133057851678638074396482628659479843666417257663573121691586656070213195654627747019052799034731281586744630084008102007112591570701907416619051419308323302050609145684507970382451165070227923246369833150365257117408855296855800253516836786646415699220105855657674437244790467852352209151916786362597482856620992525037024752170357721486113232030184651459063054196008969152079348284776354954473060905342492205529545590829183572550396082619480729076109127407332653150766415763269959412394524309348680324473049034523317107930371297019268884465343552344531605782772498566271693128739470041989680152841242700671852768299164786790385285051454571867770936743740468003642798816965399704791799257708032880372447107833721471016455489115899570282121333799366233719789026955707265917563864707718242758742808491626739131668261446529159543622078903193635526458799323439808731899037757205983747271582653497658856148589815676134854393764663486423518003647044789313914143149735237925491782020741099289225438222588858154841178487465008723750610404788560383492510442627489967109266060621746186712035405999290810609427447241615465944709213091657268508782821377345420502192627246962298213714067161100085945020825331972644886844678642038391172235541382697967872975063492482593174553833029407805631543194600878209239463925494051652455708021429656083903661178124176694210357772899208334455615921190448261406387088657363968742851728432904272878554737832702946692048330721062122371542505831058443754708994812289094401411519876565799300681978830533064266604090169403999025947770193208340601912158140003576993144564831223640411770863868633629942286465736281145537484524522482743209822984946083058739507859189352817238875909471488969191478416177383460921580060339850756431035505161773821451828723203257965954174452038532484337507223389208629611643352514446616308433870931035310596934018427791383652884673852217225467352755682638928212075619865453306860967870761632572220520520551285210121168202624138248896200564399371780735213272688156065042774417978331549142096471291599603286242351756410608441641044615623049311181527158390845997419501490256897269967356727721266040588619157273446710128207526496434763732895176989705425438523629723098451439736020887483912230806691982171034474910286803799648871985562320797219171507056467476720883845720878526686310655794822177954184781727936101345029360045558501848742759988426011923875773660260658415058624470863196184911169399344935671561890625424583094051659336194395954332367601636957431478922647838752057439983637270223921168143938467412617003108093602626558517121140718479895442338692787178279616774279073771938171647095705830722646956790404933958531692372887122450839899782852486684938317408041518100794625717514432756372312879801166417019140133564064816815958821585773920303484613766777571993458607373339650966127505853728324364697131509108426473473163309564678327237874208337537243432451388798841677581868092790721668122680319854362252850395554837703423545277462930373243578208120176231362178379498084924213344389481794636155198428160973327663314603180971471355393988144680738633403863456973986046517871998210226924934444190151073350727823949042818950856034499352863551510232268256583411415540291286543823533943741191376144460836526569146382215936886269930531694914057429505914818068129133330865585731741545611451156393413521652196052427744644060482236455509401923844888661577031464050325017720053202784906605574232949866875735659025699882541375737982422062601310013651438456098993564590145923566770296247224952496595137778087411911080780434932751424470568931774924764618949052392120488249219522213785251978391921430015687515213090508439704803676357478448516975657281553591899879375126637329498841002214797321843154044636057009319789143995116268244596005125236585530600723825175096660566509506541012420724409178044783218527143383373337115121214153497659170620012195213037855072256135933111666177840831909113987596109325811357314886814308391929872630753744891529811939684997849506619326337315817265222536577329933640270114628007240685475324964764649440868594071361417157229987337685283721247396343629319267620699139743383045382885238413007109311178397790642921585127154430342187355264450959112382026082996651861931691184522459754184583239277455965615291524158546478878616829389019359200549628106890641868222771591204762505314690405038334464808430839967964726413208756788535127609281829508625443051617887536677455858634722883837868577148455602592081862308301936007747358913491336979835104745208075429240339167205416164846092781316894784789741286493054074907348962412466400600292191574889414299741434159861359409168080857308648638754583872177213418618874425709277499063826394339768929160196111732421870477648433852091379053623284481414203772378405977298818363824412265103422186754937102248017247183390957214001562564974096045687466094094828834103206469696759165341005761243673632134155373776150764302810956102046083753547968607992557039948283813042988397068886900812518698826101854656975615860065691943982372315269405363720858843073874966996942678830389303412887962703334631539805470576346582754888182561734328652680626041003894479339672302731555111041066775690097634099817199302749158262590711717775250380856094068259484464553728820563836709331794945093355956861980604844657464230154962163244196334459787005453611824837928974994593063959312511572239483095448298493109391332934680077020932393996576332805069768225050468928845771751565351777196732527485900203142895812528591836309113963434537539886443394309728496559374548629340188428028461559399818079599709447203254797252026579662505416999649289451902057555070442486255920997321300970084385818066686138679004055774563000221449379720372279013913192696401732858126271009985434449774389752090089826566341760195426478004258956683416044553536579156740766765647199764765748646243269431587719967385831027607477136151194426404162847690093023572299411242595873508157608450202263683799121560704439448027141619413121702254600534334272677715819622059724470931980678525706281188904284580521741255154443374665422336813047468405359878264571783878785951418855356461095499038648432668192711400423907313635368151613149954074873757273265738248355778316125920765020209771757774584565456823340458619753908639691921444189514733951869627046492930322634958542375278677903472268655581265757072868392010409865343934253345341836310123355772225492669358486670840303054794986358653580659901514187861542889487827262865261752098004410484345796148927438231687925949212506616336988088610468611998859126976794501903914433981437297788372645745161761153011391658752665698910669143753741706320854629089097285067801714848660427949789684364637523084116865126083086162665180469644478368466640556433137030773201416997156763560212051290406826449002263057853773807726447121707794997224226820554064749958765015853093914803131003456052422409081296072385659871965021629897560651914241580147165367269044374753670338057932797073367212845210994571790221886783020628193873076165736919350787653708423177856759262204021819512975288314055868766202259273995890965961006461930448907044264151924306371486647216386028577740271279978347622701866831001437950095164101920294038153879031492685944443057374065203577543272961675398176740164286721898862276097224082229411954171377727381565239389468295161858458980963647099208237206505787405410351692534744298504974412066240514812790906955312127989967468511887049465527090177879264948525402747069322748345975160526086082010742172154568993365543200624970827882104267220492432059924406456865573621288555160991407389709439819953459011244118377938857649704597681604583098788591791229071094937893511511593196826774111077839929206480739591195215805068826704989394440942901106834665813453218713448829650500039472787020144518295635351555820521173963073780989993537532898248770593820351790585117786861311173362681958299578257654548174937775405179647258447225442752949514164626944117265229163223799284682145015052189271676492104702519890139748960596189767280012298694160918365475479435825339834499264650290378466810942330789502262156010543151267366020467176891666962830918297664251948345159815364594533453038434862493515105344942769889179889531535154867672374801124309943477536227897532008010882411905761176461877927241302731412510744467234428245103594990434397683031808200884555608808148387065257888247188170917340553684837151904328708133297282965860550405889297463316606666843173292343337490020499790687448895202819844509847252108921903946045598345058233099534509019236215824941480929504482652518213926478329411719698601843016270165257595045434900960170514840679191852064290503542900655354404447823126260074166334857366209560053348571223133404431156443039375238226587698139393023664544577839775212615447370523018758623010993103275706994088017188891211202352450048049458072687839109685155710894241318251913450300848188609538762364311164758855882825422142898211327376924655160078461655010869883544834888751419073379070073845366536272021782031777687995086946529447637802360091760974098207217080067970574218754740565598045364717575357858903194345346888266066235020312996893633574650103679320907820878584696148318205218816548077688052696625095833434183807704694793531082014838736978869066202223848356382420803107979651077269909701677140542549484169213576369900235940311261433146010959697774024277762755600752551692953812393577720767306947157303097199647041107794915996577051769905847432863446936315389774100888366400810982688086075834266348999146641377986120840529096732112048661654938032605519262480110365791673465864579726106102730307612726263316871520508472942960609309818372655830660067888483036479608765639504960936130449548181846000967635455929947968585725226063564236477274943288636090583152789428593892259624643608406007290727086942357296677830909268521166616059882692212263088715643187202066001186218045187302729952701039842106528676314380674654403847936441846639304180928073989218804991714027310829354010495415714987419373246505663013804221019849756880213739544525101708234396255965477441050558722919289391816565069437932736185581525576664139438111019644781676418701340612381462337069240392462111100006812275473839453423336939481633325281881751518182149655857687407336106631602615097819741024033682468158036023760914473817165318202492469717932254517283161456235400314949933730134442202833900863829282049350982713449071626910460960977084282018891940399705475950131406356198719607776661731813209297423369900440341809158241201091684241756538665406910068244855044263863928776798361074149097708704755308389203360079112451851969966052413468050195981306859369360715613979379016498363493851146593454539576725912738907663566702716388006550963881047922777676886652585043781704202489726689653541452832618759461763797483960838487938220894896011881480448336927563158407692501182352370329115468621183538679472254627462282280123666916026147202279622080281644973068436502561275681062179868673777060501869687492257392316467287497769750908586242716695246136208732005600287452195850084950953237072386852725693784328175634331574401201177057335155849495021450966174209661659620597330548515626163209631391047738313828082978782702675412059240553025304029794127276407882504145406008209760088515958769584891696801142430229410370848674332161391392451295884141261587965980275014656045081136884908471172254460328997467030897553388485872546438120290249552656893827948901415835379979061107930825560113858712275401342302834575713954519341944178454564452772627528668107377559695275111296007417362151592887928659784963619831754802555589390999061952897548033856013025402667014188704490373098768879763869941785941583061558042785044039751162239552188375593888727213733727934640933537991083430656100099689885710790893215322438334865766261311570480199389460499710440915409839456033650969071869038256144783128587303665382814666939502811265076003178952429125945998270941529014868804740980481741373597057913357490540843326895916984037809646333157661397828900897202499588119297542916004761994067506733577094016879863110390847740108078031225337392733860651240428201760899555608308652415777239633999075238610258813332858454563409111136592882248909136663590427190800246108534919689719911843458131262638700492118527459709243059101530075359673069104174301044875439886825445175216691838196360009295574793783090793383768439149386220352102130256139461753664369000152593660182425840915010458149433234402379758900768734930013067159817175710247260545958597632339650132717007609754136471803947748950116127517812094848146705749149390451442783511081961068829255509972289528987813625009567048661782108526607560741357096511544378634405203356483777891175923349329740162465839756053652007480594168224483615395909027203406896570878771444240065868910981193670412246240380922447529137520485492436520265739275233962153399228864522052571831688837788633867010224981878277361856435509035200889843945758560454846872823737110881081501612162091763948698604470127148618565436212752595759572234703133983049994158907881946457228522018286257660977271866736504150496007875566511319821800348907591920147528884182076385835642904868438761890605910713788385976726505246739443409363018632396017326801037464456984937360881077922483162556446559040211520473513103918577119439088051793912537567551381131242566099187040289727848316586871021864724662672990062054591189269594333410042871065880620185224450899131314139839999038446644333205173762999443345151870877246543974944144425172182545028064864035726244505955498167262669112664968573548663841288339340906281566146134193670955774336220075013154822380262159364503256349577428365525403733118280991628319358719945820193091155189874072894891999960977491295506931548508714167480220720176761994191329563002551599064466372376090500921013234358557588612502485296835820431802561255950482223867867651990459324790135430976183630018652161074652717564026842563043173258829431641652605317983399587619754589636547657761692181035252321812596448813214818583810380109088552999241203768090297950418619680251817205571964598513305136774657018526006928515312293420525486679462197765717907319662667332980348747810421037935121356741351215427267778090408003512832204363219636949793978149135114206316736328202808437559172587929937756836657437819405178432224494670248353958244229662379675969683654513239443693252809662274913374156334688840336200839727573196554072348760272021998851973843423725064888806940769959045499928287028910406564701371532594390039196700059134236555026826792302584703502140535004148194560719050818682710470031645498431520635977256890093386095752215007556319215390517507072184643430568822970834883973331818774075416327349646673222116766155943264101193380298752247595419957747832017021230268592682550075166450092994865725208476248373756693323281013327146695390480288170942300154325082627012375006877246111811356430201107689464957773242212123513744655487187906830930773595950892684110662203348387628687350241464951011179610927471837855820648787217646936376185219637643086089169818332962499916773467539560766613794940260579548812505661650187431613407446085268658776715826175224155029289248614299253542361254506676926442931235166969862365252266613514820236746530323126098762419392080655408494579939983997205326369685839884846079859499294883012142609838001051763934864398825460423701763702763186221425085692451063375181418364343823007817630003870416189279901458125887778260690999930257237510113395425186511287762967840028399183455427444325855384239757103893270650796187470247927773105429579988615280063903672815721625320313675838891992473618283598493347384523500137167792508796583181055847673987560822779037576208342032078095388090523345177603377475598950067137374865867132752452025413554674966872647342711710914999927883276131657982366428743786258288410329001827376607980991572336900653555924335089878345271865728686528155940411883803392684805445734488253480023741555356998886672485099349209164822765640379568951207667446764227983764544040358013002109071639273663548963512492647043059395581152919571293695534789017247351675508118486188143349838116957698009882546419606892378397808483944914202931628192533588075261237539814962989959064860503871670305001397424787543035526899588209503946102587319297474781282564515966857330418239124963964278477190403112965157142509684780057018912254850317927484387433096401936509300744775540066451704795791233356507914697614412114759096525672081010594629757962028368864687128497092339229038163569799207642326937696982076785752399102573244487027755239810888941883640992677040647570674045858620413677584005215040308477126325976284134131387915447249446786990910301981251249357762786611847421556575116156779737086821582754812721852105417074563756226109882644555011862768962497572850248915474600179979084838554146627560067136212316255413626411284606728696663057305986264196389057355361704816122320811051151863091419139052605102802138497144969904726056908323535678216825712338434537572064963509870150514007170468502773925001958460496489121216298114930650681985955777896183871733647548168353141588559205797106462299249560449897348933007270814701803142550129785529414364710018412181582820140618169399747522901520942043809304425022256603442156798410886461436978604083645968499321537964394927147806556597677190178754855210476011346025796731535467505721970566158694284047761703095371386112954648610874064218362856311723924280973094298023557551656931456159636959792129754863100279379556799922592785781330174419542521382646528164586486290723044757487397435845297447073559222399567234792955345420307558158073143980921800170582243568745633412883203796201436815998878862595154128551447091438038213924086872100935046919339479713106776224755934217439688771322617666291449781924773276067505596993936954753769813619019773268253412779690172261197482028329643539226965539456837566174608694235425986404371968570679853885345404801905472667486209813631063098067030374498033237596378230451482555773094237258208835352708406279148538041150856174720140631888064245422714129212784051390343837447759356778928025890921881792302686132689763369988170684068467358023235016139642869427068085956398535011681647880060479715912527231612726671893973684076119304774451271131621592754435263736157808999819062330655973708971007253760712269159658339216084572504925846735939988196746336315693731181581625521254113190242843793323978312606581284566825663013017779988034212605405705161661621547778968530125734860309893390468107796310112340775448521679094878406048981477330304140864997444010809335624187322406330877886346713584429777514332541032092692066822320341627182928364822523182520842624199418923452091186483381916697856979276514222271613898554228620014603165691560781923883343432367752544089121393919140060432691767486021522090950446795800016087363956563824936863621841286999240773232903222610664207432901010127677823517477250731546822939819706494787446102097231697239791986029002450117225808555243010023797486496354214928294577038640803386507426521622613778736496006149722116520875921243581196694684141279431139815618882796023768573160167936801339298378807887221282785452116855101542402727017720149664500289842500640038361568287650385948390433291583603771655215862397504691656408310127863940633748490306370174232073005896996330669487682886184442838875517843866589861309016764351051015169823175617113418348862554362525404451897683720626901819968579005405667385843853547995424117150618978586561743217802083864461225074744172924200057595273482357946514931376141362082529437878679852574805980014464869974777400426917838225079739632518865245085943817700114900507704562854777210003898699854968263009574426872590642213167610996146651889791611119900307256144925680497669034283891572461044967995904371044177674029409611359954800943252070116082910583644938502957301086721369776229176482750912903767209486758740040143966923960601718756036226279898555589867204339021732699527610139900592481703406838317497542557912749381178922195344523858814832833386891766922455758914233767565910530934336318710349148704743568594930163720060876466138228422636631872914219256020881191318199071928051191690413205100537268372769457070593962436083891761048903821053799716447495628390985821075260125064044618096959442745598219572745703058857796874622486989630821484072238458034482534788126337237064801496600979041357051163355753169322193190996702713350655487941951974851741777647098777935591182455866259087599723814759864670595802240992034202446256554997631949518959121305940341132291490989477251269897226216148329870635385607148485873239311565298669543201970525907928317221811570612883204837188341725044506121459181330499904292870664454411962267712949351356513890933613723536464578007224123980609486765603316212724452771896122262647748193572174800015091493561724082346240285579483315815381481298496952117310119337194676437817934864050384600173515137165129419632494580954616548359180525109910470790854130057584098477764970302651027050506511800831245368747193933948432444879761756970182386247579254229548072150636235970378995244615350330474511556677438467605356161985575563774354396166609766362654349974307604886145890022710510097567611038030541294666763801351652909058134572392122055689705938441530000586443147434467734777032074627193164341897616539538986847426501839490781786083028238522228029107334530992080461392714141449585190563119119558200795756523238954407909957692494189877810591092618669011407422448121036285877596998831492687880869050926168390083063176539206079490237041473048786357000865482911876917482262999636327442898812008340439816896723241630974886893463282726721767908166375337262577220726501923393449578322504160015480646276468774671538207688925698428837961045140687429456754378049013477796811624654562181978953127519828430156467926243906380742901419018290397736335822876920892293656019859330253718898643593453776530250922983976736480141165536518367925966723842766897632043313170421111907636652911982923973208611286101687880352373455473100730185214310043470649588280543773918240878537718011021992245357164189858606351902659962678507058873085090369679710202001034895556346577717811886173822167415912819904268257256965813076306827711444032602338321218412660753962838672929797512181977646148494043780615840380794337672833243195566231405202616330649589046445001661449388321876797956431113925762093876510512255388547050525281665963007595350764638291626625748574799962389682617470877998639341021979733683588536414781124673136085050447260702798388805473973950830045274794626937679716593497936495851799274137404650575777316868221651522772394060525535023254386960377943430176847878033979281254481744399621146873475388971084259164958416645356216263343061007254567983270419512853821106553236822420534697323599946692852594185058166122630428520690530605909311421169403721321428134006564943361476617240534405509505587586176501849102581620894934644429599128181629652728771370835459659673006585577749925587273783257512877948350758192835559741145924470700512935930137061024323572545861520666429248299711281365823595361994918103760008039288416378594349369989366370087044140951655360875887699369856169706366790561538696315341318405351047184298904150407942038316755367925449963627504486080321560656403692555522228815134580190964040210316826340170211188086071596599930580773037359254494086205804279951501794103189946600715766282778895237591289962065297789889658855773990299953141831104215270371038712608160775386475296392552985049582062663929513781688341203933510658758341664190620187986923725897130035721781216327099438615298830363712583637125368022603633770415718589957903384051810597041813237467504436409258616872051508896983513838298341287924173263459783586500695977554146811549438578059176806894930055133264495683260261998091766156976446081526946626810975762472802110566836803500330876106740877442105586532050724177114460774300239428388773599252201311763726430781529248218296525381729557709898943723704975194275232985028406242271986179304366221549549619738347280800091788908649082278744280226328334891502356375284705916607414343035593388100728707716867950690580377595009985511495175287542190152369187906095543898889666129449407077572964129239193774464336918674524369492068503984925991948843174685359716770126810790868782883817061168940676091551170481024653811893410962280087471676534686188819647444319229653836187981824189429024982134911427941291623232068272437356168713309620716676953276555652411396296126480924302049242328952757717479030875564444896302758521360936692334072008589098578344846707828662539117386292118557746615386465646316390681323239120560858997689795318113229260607391860834829038430320545061686900388036117266813905727219922809519451136844053690517335830747900068133801768081284279346224999029446719427620550575870151818597982103297965562983881608825798013875027519608255941545970503591137037646049321062850723767188824798781064403931295619467752418195823350161646010790860802492033511239048591739578216813578642058406175435303128703256562721548741320281172251089584400302417378744809858201036605764708428950023809535109912288756537178847478194421595172020093245268481783661739024024232507974872865973272490044237770935344712118266932767534415976584886638382536136483744817682614280216344170067676230413362626933997821866918945949984252022309385062256536695521728128179104064519955233560193597728961231450105878969085687788471370803823047717601415248619014926508429112197619572425901354352627147410290679902958018515189231269496173806974857724817660192544489912581012240884345671601006406559119583347782360096377639695263141773050515040160865837854452503178695933408107734818896268461333936764002637214343566392026538916035668556216137005644291596164514539456023391052160160708891738864707050543117151527009568216118597976782647557966505226235698675911588689156771026804931578817640497652291931986923913515901469195703914396393383040662639522499475481846916242906548170999569040862034655890258206930414826241864966378137608578261011151327854722073125523400412323241383991045118560920567085361816701998746455168465225042505126670248051407404762190478705847107142242259327383999075685590016746181289996958243635054321459405645857880662296402203809556674914471879923147685773673220497826066821907165672146582307512854692123836673002569905595758538459000312187428544972692014370793264134338099684050467096300004979716778272652518877792592222531923903072478920330494240988793457114453706961698326297204110823827160966512464337301842675029413903838604981206789051287776912778985812632672784976450595143672052116849750038847383218954785697232735287760598706856237045718741655897745782411816732274059463275092562249068399670556178324141478717481489731497845380616022777107877212848832926982594605043877940992758199720209546058421924496419346883787693088034298629560772067821702484067133895091775487786925573436363014949659904613695515650684889406741687269722944816025677132419663404131643969971155907297939150435810983317726498689452160673595219247810121636540474066529854913645151320395909902187449359563690475200373274249137720867211898521977389641584637210273831897717649276482429580486353276299382907080790811346863146683746602137386276771113845540991302744634068038150547732760055343793926449140141423392054751947337966465600786703561272554549446336187572328589792017534406017179652408819932102392085319318029762109589868117921872432035071853261611158476254930126046720457044696019786865037066015774981780620078701843128203695200771519541766210719218659945896174841505232340796511542606380021423245444270547702681614445414543184457702143263578751908261701673430677664334269737588462221499816194244995022973745485833048454553315034175858148248355859873341689928164093651750855428059837189010233992978170905793605676781053114222995130871379506774331392535447711690777330780592630089536867872680126446584658149498708118838660129448578074169635146652552792593408538778798074682403186471055718217938632605260915634124591291894734284889165316523963061110746958683605240326736148265429526358828681238356524561536951107830614620916958581736144744714325459815764547447668249172134743697945963753653414945246240595708895022282201396724887521581714125439602070081147377260312530853260557434679012181754487920753022371998968107805628188628236039571137224404137266330453653264368456753749481938357264057403789730135598819656962661129133594952822249465431603735809059416733693923600527857762172309601327770522069800589259248603312207121445737363383031297252749122895884702104660424089792650929359709190085957604917761073256683513089329302207229753453742467906696137543215616481311097979414844606346352907580644939765809264953909492676283410407352066896796941308536437909696717190013945727334809433725322614585173638799165675959971581941123253201608330997183977144004932384417666361033279040630204764615856479203873145152305477631056282528922416260369495767965575009988770208531915028783337563998554492060277327957755653374900807792741046166793028518776620724727459153964329444180090571333368602961917720886270599331705500944687469806500758375228774423616252635625767585997993954372592985289777631922520635249333670335487777920438539383390486682366977887839631683984692192894319166609212802036059698267146527043647770537852292468459718473782175168847686484117576623739010405286528352873560555272238060442151055846362873662350647078337215159095988400871565965025187449980051830631073255718735217205636111717625794340830485470194624033932202833796992843923548761320642142073659071945505346467677170809270128648137149563853236009065853159575327640727678770744267198061296008651038089216728839756948795025530622074047724596328090155087703141024530765265094781584035513365187966217188437859958572472083788592439623832697621464617964240743889929859638058749879573687125600069174954090145634566861747877431844401255872824653995540058588634448979410615219258061942638840774372188415822957993429052139750489293779201665699812958501818574481492224497598103917105093562739660780376500506388410541269496030106153436674043790950009357839936510339034956810049147636577957783214799452349219315344900012383718800551302038364916555360649591484994737399582835981708008898846256136515208439216771071124531321124453965487809850838788640816629712091208912316923494746325231818615339834843917329493788727426957835922612077122753320878899039008631354144843351803890696716908726275579022670344778610800793825317750882806642226150011741207777288162447214663102756065894472883634769614020782415159799145167723129379420976114986045484086553402882947041118146039589406711652261780612978763162113102161934670102175580679944255328028285193563264649081599494221367517595816658311081987633067886250398613832772530266526761249967960434208344759927005531766820889392280013924431000999641403816138102998059516525027450362335403096648614779316547673310058437158261298236809530911065658814726367708907764175812298252780099165258867481455137904349940481527338689182779686954476708264412652845769731357958431109780878465276441488767082645727438618052998608734284749392666434022033993174371597853673147271988690848983998827008196149019390537296963856618372496249101634450857812578785657711574969675512278556172691121847107207167369560374399803722554936658165475164908884614766602572986052149228173908441044900935194292330073930037345509611267427763848486301775420942231820973902462382929387124484405261971018177297037992156276498291729496085203121504240727324597250570738219065926770769007910587781656340783493100886227694909786933642440783161876916572522590281176922339352122688428255738532453122367883380654958440966472873647196575382204019080187723738228733581525302120488254675251788402630425870316954879963536923291472410550905235841358086565536718809875289332411077745408413960053486466549779764657988548988173954407513031314979529865641188241859063208291955441363207872375253721024013835880833436176231519223418935707921310905054433504980869310228372059301036358117829986521804703989756914307736516770123823687514986352486469451384648652858235324798615547329460088951323445120380876820197246574047874898575543645316839107797132746648712745797541580319052674381598571936092100190471759701025527307430428664699400329726650066033791748490716004601310494591521244229628359549638464579985275861717576773667563883612183544617054710361686953725819223954661414573262984825044054604652378143739725130801750227541072495159169203138126582460075764571528545951169141932783137894887935499474326261050408960198068980824313870248744786379006829110079156851206014905345171226894273631009218007728483178274813614254696319759354941349268734609618876025002363815269086979707075616416191063419057480999126945878402664272216535049064952592742696073919420322201601053229294743119771869943576387981591543007004549329803344158123083310844986673157005883481257996853656095008882106007599854150095117803580365433914736073735738483528820714093892672625417104418230165620836351624554373621370986313735753873817249426872438086560047911850812533086814919621574396235048152866836118160272073799975903060567789506597381830288178867651182628789623381900767989269738315944371405559254009758075897598157314178742939168946729099112752721335509141596966447206575270479006678702959564384902548767676323066116357619725034590814909195581064902483542992935803276533406286183784342777771741587228483313922466828038912994398030362361064690799148462022625058211442620623085329844075622567479682252913121968073720466935141812283292363755569728119047331144643416267339187213302857818702054279524863691148779128799163617909253649581290209425315326310013775434148708732747819330092130033446874647998272339692202051142614593079621865703621666271220729150369677268333259126434601561575101369782444123893527245939262779597858255445041517136937964997791929591113314327364663828153788744886784221866162748208274044465359931932916393980912379575406532422648820622985293632261211340755164777030614349785962379076739681115092177686291729876278711242166029345048859810734257996507996011254623942152598505446043883260993785835761681404381314408005912793597549954923189589389938060957173586147837547695965381222894662646769111595220108748220603432320534961407921062296400771985331908037015885279217043379101615078084433027911694152456471221145996808955676591311365741912211899701356758223391049359348067196434642945210399694478747048319506035388420572233585461020866739872457487207683759153313770760240754027521741231185491702854839995927408144073058392140413346745334377155429438914556783866783869338761193648597905127484906108168967692316873548300621715673819899605791674480651023465736954228950039137806282970844459106247631376870942306012708692297205911796207967536024193998587965203901776821541868234853127289100281481576726232657918773890656765640587772746792860188854301552000516623565055245772201490015301992458583630263299143983014829105793077103294070711166173609285951307943057394402150078356010507838764619938461156497823100738279534396467032103921213906734576021759505886533001890861232363438956548473921883545707508609249833530072255671521841617395024933735882303805600709134129908735367882800597868119870133532828867726869803821740214525690998621250549918132852789715377215011347800012613436637942262611231453590596771908784543203791771283845907041552121916185755723623638613295301692230231075759857697168772538064102172709678415985283164993686308419774088469735065798014159957485916439804900925370803721596861958444751060100573508941205939915799091503373395184332117017033902150421472944775976714114400548384132099195922183023885298314122409463751550183106362575232139695528207100630326801307330194873644052291895471973613410978203850495494214949109701895512258764330098957021737979455192692857204375959441499375318355800997889937375033810441741989103034780309972181252253395455564368695508533007535692342264808955388059679970429175186039701298953518362383556634898621895639398979934777903311718967448927953032754173046289767575882131612638371665457330454569327872190923188284712320812352215438973227551626348520324822889396822003231983905272027453614398432067087331722817590372853927549968460685535283153046108430618878858092726342332579187415361492234705511361687605323222663309500916800131887991945110829817503183734275436953687304451414943306316956480402912093016236613148231023615119341936094560500285246377059592189043457495495714656416637070885176064387634624136821409702258359705348170700697701817391491551436694886132374690863347787665606688623138154282983396125761674095926412151588305754291446880621641818553870334323056315209787945781462213795243872438683464204826805524063919294110393616022646553383852308352850257695858082944346632141460882330915956807652348976177838369695614514208903842898023647621404029886852280469990881899269859458058702756494799559158700382744966246207328524362810290360434746662217559624264108396863144150446875431424380889914911688581602136223853248028178318790201813231396303325358725086495717828448474915186225942413501009990707570213766608393415001529858527375990919729067144870366307686441387598114731224853225546482785939365200693851227024148900178995812757029358808619491652279110342200857247565242304151322985418444530913926281831118696918435364755121605852844729505516930540529542376919883326536139560987256357511530940785454328965289074476986619131654584546733887035891295494583954678046071663277897274476085953340136404559195485798605582332717587714765445687018355877498705906506015515133495719899751983726257072869643139921045256056040290617123468158520849665864565415836383645050702666472362299647228257243885827875546405897883456071906418544688865748235287796746620763626876058951845472803931572839716130436641648920889468944937139259034674635405789668846265618686973629381459054099422579860118309248268093047221544890715445986363681899940175310200423973990787102895908574081080768197756109284273976076178762374877239807828062520538322365755774524968040960275186444079554505703125541216510592930284713493172137647743188267434087624029875532781531711750838949165564169164243039677643417277881086647350839243046499683313407639995621179716730180271867285326325460700462213746259463990108900442887102012807192707477682629575123504611191626874585392670880649051098865746226438702160050172339574095026180183173280957194540973857973250336941649634010297302514076376067900197176616759141503170979264511878867307710706142042365753364503406696627643655051244537280658568893566643228283501810985403381791445734334404750344064996370532386547527334993372175452500077268562598586267946531943661835085191466602965491980345495159975540516775845918999157477035793126058620853506121418906588695393818493448034677445104915379372303073595859824738986088354826244987305127218337943098882549389465190764126288391375241492015379762784365178998039569453094290268697496511169385390621488117940699156532712240871785734580435350644590857144910464930884476188157273919261939839305426129917197961544412628976554866507075149470802195001827675202888702600827568526320644194368336385131094980222343025232246204333274748408934491246383554641795618406045362094595269552412289780813716083286884611475427804727711717167985167620070520204691226625464173414366185851906021565102080128554571837968366039877784223377845261276575649906050547522129067863279426003451015647728617295698489363386303249643692113604748052684683619669650568463714233923463497918519288424690695013913786355725498218167612848295631210506334410792473808471610055028948974772596165050149114157153471202694083897901089981046111270889443862942885321826079324047377017369933160769613579621706685007321702974107782890390356224571946595548642415017870290716049067628703580132534025029932775950184724362977583722006859178427016503858846839733672511488047942853346240596945954841618083647863422285274254485037572459618105319261537579356668817797326821074252510340021219451181086942838510878615973151025495194055996666998238985866875896534047055776475057072966165608750897305081133872227578283639830007201349969628809061606308944736069831545747512176954860648157417724585997315233700066995239202932345710761923329221086222272112551030385846200523991189486330592327556552461173305035779252484624363046503228318763798168933866953223685467959093024081547861682676315776441757398955281830559825452442597899508257247673557027420375400500708382334275172428828633059992592284398560356223532741148475193181148975080613646325535910262587401953652858061054990593663879686647511908157753607432392175632503452269865389050999250394853753366833504259859767834581113753773193019585237750781207442952476646111877658308463273052062568887000626728411770860451433590617740530150944755477035841428451242999945713976746341863716590632299160616653840018268198445745603012826958842608934837129280198219883258791891980829787038112042476427829175294849813828983362556359905422754058536157247869172654064060138144490941609648252115113034806165091827342157064572838835769458304461914102630866925725002384279839682573971233467740887291816980182338809681881990575606729663895631535421530177970638730148951557194905615015194397254625445670039642911630551987983557141876138166046471868227704171183887484811328219450115959581741407966734477380073723622477170258600876551343092826748280503884321997685746327807933010697317698736169989247154854582215317635140208743609370877835578350400257077364490181441983892911642410886007248517115227903954697672570736843454750895994576567236661647884985601341999570332231568392564510826955745045645176573551387083735204309712747932182409041699584518146993655987407345014078240339661681552136711794795090650079758226746091071594810033940007145327475322895387445032979491571580421573717189128552563772721840793639804609708814367287857525851826824559703783945644749583636507003606098085622878537939360701737111688511567094533179635483302684800763645072121666500137731917217582711097654819621593868494095409897247732148379637887913008164393394834721518696362297035253800829902139254005415895337706628349502865787882120685500098361214723930528708425549996348883263041101115008344216871901670205920668713813267397376506577571236690409377107772324910082921623564171420484171491492429655369149279664247298332930880053961345469186780434103273398997682571402652754037961544294551192539743393691068759402661079105829316293520407071280140473072249352702201187191858731851566177079702513907689274764962325284914743608355138450730079904029282944963874456942476537193886744428857667972267493782009444625113282797922569747659616413241993194098902748364236545037040370010138721728887534980749879820036622631521571324331622321908098674770924994465719245045568041337204450136196676142448041156670304734143401135480129803767928752297458405366207161608648503362321111617116600378314913802049813043671938780775779239029919928133524722447812128395239653938666858338260718706119195303464873574243845588532488941614035512883341880382652507351566190306226181740804604293042466846328742391306098044068038239537994790231223427558426332354872904385474029913301573876402354842056682812739575487387269267488691164256056295002084733020371843679448537616516830073339325533049131136316885084588547147733171437956072713698900582341774524690067907186777638017413357183069074086023782540089157821018517098469336611047447688785830955960359547560210134779779215041780389646111767456171296306253453121684812760346974555029400974969498538667024363673493976294334248372217665794964593779352539349239904776787958956708643844200046609125431369223978250510596032027288420880142718192580774887168392697102871351387391373606652150898534709957225581890883845974794925211433684231830461639920158971070615560343613333199627677522926784530801696574756404599661271610842098717364153365166810687128388189437904926437275263661808120687824176908903802027007755048849397379365763729694512860200433225349254575639643884746626446829481925483294486790515875551149646514378362798450807270124646304899540877686973383414584298191451317939814737764379406536964861344526945626585293105156118303143274237341471516806078085304576707385011680411697673724555310443644971696696479531384374161403925658812537542498335008234208011415689323562553583836861288460163630046961216857974187963636049058214538148724506410303551584631270144662566266832869389908734214243620148418126813172584325278358139349625575514790915540914119455865035245701570056601858293781473440261101949436553090672659023658526683832891698485879780706611695190739717295666832724721390399877336050347963030329930116142571785398689466061525540020597374964397191606718470327129409777976867254310805960505886838326696591267459708026501150344267409898228277365222109789841881348190956395428373476089203254736669886682722329712010381785425153599619156149820932458124054660801933281352618803922441549754348234364735026238724667011808699692404373817341922966865956495119148267893720345644943130619701297991121047375234673270199352532839435063714658941710262621513521950415992538120906583093640603716836863250360475767438795024091606478352706670541593170287218304106990581327874819242643131565178391281109003063108571189918560558816438874132434505374708812367134454931545702927330847330218562258775386927559726128997704367128103683594256973979572372453657620968867355232027724865292597966630241382451259942682627044612874676322619919441485983987148397533615045443296255265431431535946892323557149299085609574061964711889732843363403472091937414501791001314101433115950749108413674381016379644381883489597835696520308716689719720480634039962037566152316405899792412400349499706700471362150103338409461619988405561859780110051673265535871577089202760757090342458333971640269847564544894424199332773578861406180613907901705761184766879339386926157613593876086540346207512220969012607996926090118595559445121549028399458790316729832251157327512408389563966056267091074488281581428856262147337993002035285561176263240260159674825535626526697413007557416220546958571521475174438112683407073868972443362552672041004075233646875119202249853719663184882075810772057963426221284968012292736342092374938295354030486032118067903026256165947262383231355829929285248386671422998289519187870697709940387444140802207052109109405265154362094244337756790249651243795369737528839827571225124566845525391944049960513085524507995726502716815021782836962650968913015275705117293330186909086024853631498195137246059338303270268528277233460011995760908676051183027059040798445745276923807610645916551750572863151480220980718956825397785143076003480217856659037771523752189067431220338611878680786011586092912655139315212213892627882432716833041906507649899611144186911671409419928644042079880257400989177811385544398187287783750497197915078367334076347475757356458931569830316518460411802782486971733779906508854341593932637133621988030068713518866272833051831201882035984585080911979731418855712952365247079478457766515482375240947583449465937204606761849984458227628505355536480924320518851337334623226132408477207455127197235787108205076491138261966777796611434573224599855188451315820747708553481809720766183573413445859524636243176426918707396241046868384207835460110662979581072308052981967244295109230990296786340933950839342993735754945049904440093454846013021454909544043642848484921210555949680222864301143666823155329053297630017151194353728132988721390063194800000489760714620127396650056375946810921279377301365882120514715106898348424054870858934402173131286378994868134166611596794114192788113100033253903678443202346661426061600171494699611826671595105749429934943862586314948807755241610443148573157646285616690236362363431035374474659913301928940413960430510499004076176525790359338894022062594897851779201513250024433815936636983346667371468914318373433236589686160468150507009175170698803746341358789222944316005153973460298712869337618232414087497140771431774510527169641894491054825842075052557262576452931693909963183365891589462280217281475644030277776943291506525303627376556447878229792090087694938661476724207601173311465876089945230343046240942308328693376358439555974091322459684526243472710760050345064218451539112694345026095202522174599279216043676413746680120485037781238226337475231450075556353051473469622384477735945059611449004014012843765209321864137096079646283751700809773820345138975917085956040217576010240233405105668617663633593740754594551401695097819763256286811477637475632273794350085484372145422866946377649386877143859210546555228183397707175716766629702365744106308172898084463263029013652313629265678558381371834050344350714827017575302406951668858006119046721981109462285537916536535248824441765610797720848192604403085610295600726713397755084429847102796030405895424125502294616941331542459905219895638293025959297426442617030988562050777831591930171071046572409685130710326356759930764002462686239041648547605061838685495949585575546754867790136745501069599252012151472046325794038464644342890227345833877327051393221151757546858955313247630210934912060072921337340289433619057876669370349263061885813421480889692343458759027182710550494951719969360691089803761176379560672555291921506914963954394648104744975728614139552004215569158889794488169683611443724808892305088915104034325764627750569831760285746070137787089307856193744976529931133419714182870188294271033322754131660481169733357515951436236859337858064486752370600290622033114827576467116836642871900309502154040870949658999804624113599159381446659376051937100923483661873512498718481909356923850603445646342823119461545994078851765795145721314628234755043591417970978233950154146202273665640267025754387848974647800440930197428634707392432245642890417047310631083144479868467012712675489873922685372563272649884050477020293171627785787774333180147998783620589803911981811883817452533543272274729222869480265095153738642238971749169875624057928442130062122801524182481712855104310017237716106216913925084147753648681389549274102106104337408708142930785998565605462633520420469537255487868583358756076855332621047844098249994513918456499356849465406177469351952042398980338187431264889151029825505563996053024487408628578434901817239216464631946071498536473823418718584990991281958804789638754893693961151708358552967003750731645502114969817698888344743624258023734153087931136039016567753792387772921237647516092599350965602216465351962691814071141977208104066796861516644192896638824439053912951423598957608605407001903864750946186672159699309300663826582740568737085074237826800236101944217658519592995525008545758855680467736764350931917580115814329303949414774908586716137790659543069537592967440183577456980736738125770842245317055240540717704361544397805308550205289933101974007430363422859218911030144699824169583537964552402902109258808349802637409507244153902349208099547883949880272800164816557423623685725370975918181993150720386933910930940750974018841437099097440651629594715727991905260792386380681302974796961365436277872281327012404289164397205620476555685931724680600953198693500839553537499250191234503504516574241480797171646239139964083923012837340664492860344127851019685476492715927397360884174214190970267637400049932544970809043629645902247055632192208414130093415105523152611938734245396050024532002421372225624738428072360652668544860880987144159371001646075360656838901845730972980754181152103786679955075371599301755049630322112734592741519060150442967049625328561432160140831892467297522925877606582228598777387649642575483305547890185066312227141847834378637622497896115606934839818208401165786514332064026115013783351636683368439564388223885529767340040095004207245869400028769638013501235625770105855868809748513993096185257468680991061902636509545718537069800698384686037650527838028885977315672931416576624808639511462675938154981961711837419067649915507502848726692276450198707923956795558218149543904703261425967217218401553517927154894846946678634493389788783386039566474697215706679748816300737942913973505954762757477694530737144903246568749335685842326606190513154371313991343524957366109094060256954764031732770588253073254983394776708016752349522678058254487179778968273054999689141300182715376439769039949740646398377137622385214607664443370031507972352704874858642101904461411928627871833594851102621261363515981305051853277963302496097959029312800088309341897717743214777363368930013819995128509115265806737865227906887663630950957412365704006911229753817002547657581020733739360672938658253171573829819579557749981339813220733525583403512078030333526054736267070186104503118872184015249503093227114799952075612634980015767936947239309040506485461025611642358387903049884639755035012198972131693978252319684426843018049764745910266684045477168175812810545619048676206765213586568459118928155297044470183476512042922309852972609415810972734909424555206615428481371023148230471071799313254014167777878967512002351768229378694955171832984174643031931832907478715016807137706103663297588642287517929144940745089790340045466892677275702048294587338185676882998907668157486669998361151238461653286082623646479430207743097095817704678587900943505020245011456283252004617592123205506001793876205705906474355645831918708328442618140981372047465884598095768991959108371551042052362060971164002513621363565252184850481748017015553634658442688685070839783677634097060038962518742354891303541252852671617266581268092183540211387312742514194569525553757134350503214226059071332185625857415051967901624478878637018086974488401063384550339002503394791876682654504135811520076629542346724038776982451292043178374879301842102083304387211209497003369035425311252874511932696716690055925804012502979094896348472086176747053428473822400932398868743093367803398559701440163944977286023725818011260695111436818070603669240776895404832248239868299346701291103917669367135803173336809999861382960834548402004722070945428020348806649255605853143634293936955096362607798608315694334851102993361490234662748022309419741011103506557453848284417778366892662198921842641323705977311340574908331388306119406183741034735926598554600579555859260906441114237900224916446646023991270421114454593258471653836679749185051886360782543294803084379642524064860664373643833026229883778450258256385247852091853895271656068389613261118797654631644649914594949174794471549462075856490229591267708221671307077851230328634906881013941439162759225885061668926172953290986189704333133014605338568732583094935574863506607629839833397729000678771445399177728224887827101587785650089516803364708205211405321816135239634021452252800179428325675127193246114229822166950269827641543813914087970147523359146569638130562096153826776724888024183296496651022383360647749004686151794984690553861270723731820891580303961569869752784639455977253725390778965718161147722078112067726243622557521759928607138433435246713923783922246060735861461683743245295562210011606993293670100854394400744075053390043211657208530077488495865120563559943496795468172906911292996754912317567706853440860076981451133901202632372831326899672059938832683084659263698033912374822807265333131821381389163379937534311020093882037150240763935190798872367226323403269602213588413618974708787288602980066151916697267892518992734967198364872090599655200465080803719835257553246332364195366960046247775668029912732916514850269305827837718697462494035746094065962316730970358815728603540397445376058781747218122870229955036976510018622045160376046511433952059476555365786087669912558582638405706190362622985042684394677490861780296879285302437447184031611255322390654425252849271769973519583423038260395514677810373717074810916524602205902607576004280844648965796643497119584163031420684465709818634099253201591190352120207886814098782832494684262802142216009362332859248043504888113176182779395567455119221557973754487660983420573644428110531828501622769299824629150090728577849932949573411893108759104001702666649164834061077769242166765516060553521856636839584163427477061684965319803161866894007902038429921869846806891545521876224103401563039815948377035625831474487875864314108571139569047352109694009891346364058255973842030257142553427478244169253732838509191431526253709390841153778262120036585475527568210029849597081558705058375195127817441029734020133007132858783629238748974872388247729959501257720001751093692042087986667943299097627130939005219055081815182389794797479201502335210853629963779609812316037587652426947921145005835164560600542464422051035864473889502560946433463965226769329717873610233628232640263510486466951273018920835735420478578414734150499280719084073575559120409321697430000830945335653882043495929879374639882909855443218692044251954793196476707096616350474258968717103944358937779630598973285084528493773505047440077175974868660078083586404200576860318975411869960637104341077252861634603466892303048141213334809035277686827375384147747598654398555470467168297495213075920757457909252562243020810963125305477132743365610304134589777351211061468337001058715944914344037290188772594752100433250606155029323256732431496642079463651509845005712580759229761592111696397895871950554498541667534087634212609004350680733449491992370337802915327271211803123785513934544566256756328639027273056412477355039089350299512049040849729911806481406089326387523144918375225185040104849322150987528693286135903902624315953920808048779157268650949467901721500006120868666338169471953977999724530271566078955645060274622692722256915286685634500166111855145212656885678492222934678123554985184253723098015615650825150034841444123917040920883064722714543443893857071587956712677181347866443654278937658800321425929186580743925210117819423831145334405037973492091585071521645768165761020053631035328260525697447331111471033863412731101179476355738394405154606871282356566645325560181210688109400958632120216081810219730452035713707197919798754218037620737677855229028322865141068711058110576765646919177831527937101621716152191296486186958604871896968832895699621007665615584519893704586142409502736889037332610587609878177382664431360456402234757744664685947080514798335168126071960183340527507570585399408946391028292543519072175784878441524596225074241783939729877876706488867284672451789398755972018534548446216556494658903570089266370571892504298088759603046693828572577178308773773352053227361314204206523674651924497791777251392811967165322517482710356286118287664601187227043057581528328704134872453465654966318392381514741744439318939598616773840771930088347852510574700076217239480822123199594141276442297398140175009059179304195745691491302425220414935801328042345079960627384708684590084296317590100354918269084949797258631232769196661859232866706671686257738735515659862428368653439622211972621423923219408901211938881423021462133048268866720873857431796816820739404907651057382906618948972512767900911897119824192607827234412019860181753739323366988275073705351665473878997393911283398801960815514387406787136894800578176881432904347548553708309478643857410116273094131851512776391108697548317709197414169798954418578212277247216474349674865355190174908036147305518502090069399984558345083665909948435661833294356429053958080973828740887726404746127525998974475388452035649970516771567272295724654796524021521426452423246645169410430434981747013355163710547791693002516434120638007954030183384787619597366861121884604870494259476054174563095127747097214008777502750646973936970792949768412937790103758612886675958994427817555317881147612267893973647930725029383420762881190700962862811904589608407768658901271341449199588848399616928182466976126738347144720820480845802225885519986868563963724125580358087491339748694774921583398421017653989195764421560137349152771103700585149391700554815048940886501947784662386811462539806912553907345467015928815093159814658551945872302033826385411881279737111390029320177596986579387904519931138338639755074802818081079261681907098907244982336966435804052430298464223952265914261325097065729411265107686535453134648683208148712051383694685455505108314182701181028630823303343419421336413653461100447110358517141203830998885434050557503610504038898900273747405010527605832833310929395273256852444943094162542836984844577889739087107370075306641768124750356337840673213347931740308334076883146032045721725834469072461862277029204593009525649817555144941045556448315370264594996824231793949027502160379145727065078326409922639612014228160208882048215794965706054471091418407645608229667742590979299926107739615290592878981288752232939810948066937106533379726640731550411376120663417129606460092036052888375598756153829999655459807321699610453052504571419852891018206853837534506728317140223661526942551329943973782390271641658488496181015968415536652923920594311550153183357996530615428588955887714974626301110293860875041956654738820189815068856534528088126109020792889887434666425167047461292813447548463107355034137972153006769820002533263401010754966609776704214193530840356536034051069123730785703874868798423036511793418052931767885668169147299997070310820632431281250528176809026581407787182097982380220031922619252400453515572339484132214163198133243626525489831433938645492658088971172735877776180186261452281395682085499661655578200203015711400095715621607096931956226273096342629462921559500302024727198404337870834305529554332184199447331713555765095126604723262395733275363867917186702296619437392715861051590727867727080144119487233397898078850056827929783961609007066785670273482628683470810862869048398599374845617289016464840432854559839232374553978051459862007415713539841031420445995970668375706536895064187316554802985208864117879183802665416585224851418906089212978774564829454791114637711989419244044031689888338541708785792583807037136769234119744929289348558661545472306656539402939835824591812580772873313459102701955198409715623572112877047237827319891945925367002074892045244991875993324040565357152360593596306117663879706856725166442313491094296820538687870370028775771806879020143050751130581234352509666472230205738873519832065519142313575050205544167564615126077840459539803352701755244793633785711740013205034874876618030190502449281308629022618097966260504807628757934754974014512244192051015034998660669578087909725978736303136689706511395451948314532135198075135528837070576204782043212686286456185946506364812914177396402942037147824834581488497242168742677136697922845586228979151068209613898239328712736788841184339375712459120735658813673944033188443999762842489862438030768281183670658556978894558940248896932684015975147786246083215765762046714736340099489431264312713152303964402696838187731956382065263907056466722222154943496285136954953472418677641554473196314072877838805736659761611929023988992304237852976956910427377295914342862272109618967815122182822034620846349355791788618715753436825186694831590910812932654766849123561370520421507577856889407436849420962922021416717393133074404885804775574562949317231785613218320058326754259541038233488173327264227356732161212100626520777880561555921990821025904653389345330531404645758354389706494305136061898341209171578508040255901240119637518301538780040285582497015610081627892054842708493984062549343324622642236511247668811347138477906524648792081799674175919110746773289229791184615573350616341379887949813183189516558220218054307194359020496824797148600723486628823356690727778838567337949661493826939351278824713693442717084688108595218987861623242477439452320585374857253370512485883681447021317798844142530738123328694850583573013719254068774372668593645109714844188579919745539661736528059197540865299278423863496784490717251812036361384249162020212759132067316329667238636736458865385393781241604761251868118178261305043933749039645031857963346158730811129227133500315125401706002778595184229863047579602124781547230957678293013420448447960788215964838837548255776895546339262175826129650448831069403004140889181977317987970566035317901427557821021399977343656085678187246563441909546716135080757653694626315108180635425839255080764752781127314505705629995181806907772194835684347220283056477938375827766034429995812361966032693326936313250529461069562297107966595886264648483201975382351113078429902396190375797721807386793605113844881806772347522281444004364409455848052132621869596060989086461756950235028436627660786503736412410701219275883308919584791635358266053210085604784769471106722174160816898002361974872513945312371510394848592326738322180048195381752824583962217903107345116979653129327857919391822157521740685752584940935087480814301475558837090260424493578094628008971774801468032399673203735860906849283683995363980941290030960260428889753349372601434467561050829972547137490881718575278956084538271449911105227971346759851073087933355896868576008180696295817491858504639535440763885237388522233566122592091087734343471631328406004182399211567693445831392751263703909840367585734406354179726201461167833215436697054211440620863521305470823889209271210843607200971059464327102871154502947198481553080556632224433029952073334526236053043240842580474614010569958753924497525491976883128907022815600422469130018748607388151747130764231710366466962769610542929212487105654938759766360022667349378980381441699620492085329430573323730396348199934284278628903750286220294651499034958937387170280437208125836586028407352589800402236107339719003924187652259704347131762133295324807119556236343378662913837827809066671410533868392113097546729623286553993316272084846876691454216684475989535980053304816744604125641053060089026661917190461802533796952734553515627315444640583184911602649239978168472135271100508583664386733937567093291900080555146812023302929825868739211091163015591863407754225809540470354472999897054272848223042240659312318486282632835227573048873650257853448759547592756074310895247086354601125934567791142612324619279309314044151662097577222473906902624538846808320286035250299781188615941901248116643833488400625913103266373127514745877456927004905743321485162786116994283519365548622451419642590720671571308699636108020364209789219136319774505186903757888080210733321164350238208795832996984065162850543065406848434968380828967453837486538194490126099807894473563720250756933739181348458361597111807020908326694377408229227343442596437815135990929112951715462053965314984502540308898840753925778004402191235565441604670714712552285401791221778579285811812107980615933486445037666079354567889864965141281778605511748669961503800033170826469674354708870868963248652707196680006919223567198409930390989935604311168056936596794432101195972751068653394725843215534177619658623311180272355320710726716965684952733321199487667659847024575786659834475985007426860820161160691142676429282382349337348625442263147863097163948915935424071370337102803802624104891315908954207232318679773465773515297372962349378358412650707290025224306242285929067870498445323905526910272439278032736142242928112578643201748303587221650548150112623847590840844455336274015393077954909801547679389278545516415659260736391706260855264044741576336346535616545801586564649646804060950054816382628824145095571285673199058361731666134392529264014234648883327629551586884934963199038229772802143907126992952293520931544036521418194422445831122121341815921873768948813088888482767596649947589774795011853283434063971650998043359241304339983401985030371388045101228355816840656814143830182472009673572593202106640809627039442675219987817361652073224590783510985750856431774740900644708834665293312524597302828270782577253922743524726702170001573782072453986720874327188090894082164492410173026098475782626062643038569913113096134916257645880821410333704240121706181584121050655841325242958671824853954145101277678581269919613734067335722859806667489601844785473634214799325332929633981980964188051391588746569071322953478597037302466124203624250689865112113718908742035765892155601517954129192376728529510999997095871259144636154070588168334157922515086143086871261606024312100429259432773149178934492542219524752526927435734820500810256221100639671811950932214425123593754161936391418103804672859686298393245873397968575109597747983896597102593568070326436762258698849677356283684543784802982699252922836648840479683040348766511331254911701457055206468607990689311217891531044415520954832836913093626844555085199554752205018278027553823302319250611413660486503320067237562946094152938711156606266887339948491161338535766805552609694155180438588303725825773118160005786488529051178786236200999819964452292025920115218288253006077626132274508436033723126715969091381315879563236474922785954942951724083712042458548393645612374589207922899818366340934131604502352084229894248598472715446955541957264560358437332833956750254574041849803168839868299720343130491182667055021848260990185079249718102807669897372453946528800466987157448373742910346679787851261111984796992835278299428189945889347862312917968654236581772433157027948558122253405819937649655269954865199742063543283502887598478285603545199217889455701508263717679166516600002824335295518024177499686154259540921353798518752638129195592394687262251673198514036635857934447078919884036265337311326407717082478301022186846991716786139233950552539948713750596424074317316014657369919236379537080328116870738939062019470808917456601590424492283578542486730324143886865420177485983123242393800040606950299019602239388473390836709833994954664923650251644090252610433608840719831095568094108480641684879744884924207353107668099113198458863353392657736085150898139238407335738906114949898709157636817527877468655250767508130975386534440874255392323631628532027597602277054787706353223167229558082780836381885537563925610967922395654976337723151657195705330871487475311852216137941793134721995881287635429376197141518893127940983705704565551963979410587252072136625928241546519113725353690846426330190697330187911051579426983459435856339505536702035303609524775462711704351543775995476423459688346475508309181857904568008946703873913121328926135273967788770299115895873034763346355580792771560881005225988870693983612821634445576613081844542961546373849512685031636053940848395416591322819128912608547154814790067545453336499580853635801568535914921195795260846556757701667195297674250616348033062789430981122913159626947930222947816629703770071384172079633999652054401782761907287726057802648846395823654628936033995593907464000403189916632372509968496971578865486314013679805749243536991552202656988937503235311897806657694216223010095108272939264830576411476830189775925081098233578915253231462175839511648974028554294581095971283734495749730240618251278967554475005643114354791256834459384067704157790097925387221715527971372148780685121870094105598889213468976190286070851627739183375918724127857315172027684247716065637897424721470989603133633621976276162322564166184597476279782415362326934035588115032597800685804457510291315948358438096732566484691045118398987201050129209820039460899923196892360011285803818534371487755413893955126015399285717933824876379681101765949348711429414101848323348533597833778750001212987061492786904959243532649580443355491551036837588111363447383670128074958870778386038771399847570881155308731960815091697000734079348913492025832985864931023909405367700491939013709782420379206104366915950312600400825583358508095300599363949607931282713578589565076254701483706248239298077316225063543521007187518592964459263303140340649767300103914204576217608096032483071659391563269383760502989620124186569292990251460784183570580940677895623603039873534365449249572948286058524091722759432049636047240888326551589085095046947001388206807082632872498554120287013679017660313371501797370190022309108544394901730793589817487279283826227742390077887993235543103846777979856819603514467209127480965550314073040933482394409145253026233546512615476281154392731328594382961777333034385214382914396477681187140408232042275763545827610973672799020278053647312518006859340894831994657306151847668505260591724057357621975247282252965720205690410946399547996681085627887889474613339699101700352366541844484839814108797650201047631076227373918184415664220127470359583305012723215686571147618693820722971929877589778444841235156206367722503559533696352752094580553587064982972602610509164323918476875522101980898346421358056064914768283460171047012003842827989823262715049914240039498942453941324013815369247591678442876765188141315636743990793639556860258606286161009498844528828839325210205446936247435763556931203504492344774702127427520019669904351519388246340791053424157894152304378521634900451294208428850592760089208747436838666632933768873692162864399146082079371229075146676600530125115031747453546011457470702752767761623863980363708183017311908221857369129522439525869979560514028477868258791877099588632831366173784341766043380119068868925046244009903135417190714719547701358650641929427203822307700902477399336196774418374355072376268462974929652017142746037805484832429107719412338072437450989424345793790863502281230180143549695287770834537743224787501292648595942507413189832124491596194875467476160567785589968764051481650648373291387532017475685225877381979445252683165065924289015823449646482789829028338864167522625962461922323232162919327480331654136147832703903085600043751999326992863574770970426838754143681209453396139706168659610251217675141265416417951668532285975657984493807926662141099477039733129507486820331272687586636026310975922864618578735897479787942260162213009666177244647793757846763322783520209338910187349362758004984212550030548171692524739874946598398972406133099238855252454699417746405738695076623529494168539271745577029906144624369357192062552261407174696316398411259402646588201925143570934026551745588459409891283323305998795168087867285842005566033746127332776981028081354244097216750160844036567622776591754632236889079778804380068579534715962638761573266352964100304805847184498860286051283618875737575626897559771698798945844447339614085993390909111219169112003643641298980136199835391039523837638499701311294863302552032564642604018306296556259653216430744831762101617876730165863700421671698454956155459545427425346217623270277493428602906523513268500000718713608319727248886633494062883440655353810818444634948225373990882237952210490507210375089018839704014205655179303185145227703739979753639891263491197211944876440634032289008155202469493243550261838543819818180168051440108695303544558994964724002533980224495044187239813953990213909028085820040870093952897457294877979260485014730436327038181134850433842448644563368609172146325549716858143468631654258146118975536403195160526691833587563844368349256289954394369959368491192389942319056101837026086521886047453913479354854379338888221727991753212927961460981556580057669563543571273957310746723378153081509810789452641109957698153345219175817890718645532189227885741446377456295266437635863573711121424632718629115141632263966659847595764579510092077609095290753110753650001529411697223202217185048894060822999592651829398277756118563639889293938981706578314915286375239711817053275846160292441245371515556703733021181713815416433211963026781163252361712787584232034538518190034043203533939512641048617955262524429816583575488228039536063872644777720256304086982959641967833187853757717303416205320982532658536283929001854105029412909865014925891670888692173876770074170991584434314063521518176590532622629737983586791278833474257824984905396737006323728520426470842149651837833704803764450480158070210257508377701388824789291494516012895329975247608351203672273289810637588488906220023295994740265273531378963434576210518176595691330081583988001912353293426492378065380320368445426511877085690665015274826346752899883124984250545542193847713778721398776800135598569346393529932872259165470744053288023915802370703041815799330154536465615357284290130637302539912798641551305678630113645597758396663943230071873320626650582969789356942296137159669225561387884096424918727978043754074581229846927437518218758945355899001726594444039228511169212171398340967661653020576400436452432140211450668740828998778475362973562585183276074698198624554409080758764699135365974712952409733097938125647119181329622247772057232301098956466406121049851885209757571405907404675408109346146238910673189223249827559658817283845837111372780328229151998349678719043327891813852913412128050041146871253975146749029128861724581820930550225458709508841564897348839941762404090791977239729802978176657845190140226342508269078315309510387346534129028442332155762018268856836623699359517557598850756553920244400707129003263804267439783477265749941267392342492098437146464813279061694246524445762066245202607333523753383145298070284080474239462745855249345527320054264666332083761228499527110001894164828702440181883418527515469021518885081035476016681526864927401285727797202457211545447020274249286945391105473790773779859111975713896718080302035743735826557447730305307112404615951636108220919836384514117445185772229166985266226503277802709030502332206238664189429036451194736804209705208964263609294349988777364768469613781466680595363668103487551788939044276130354561173908573923148638712495535674472267267791858249116166926613234690420361934736739930684833229424522116690599493747106347213711008838344293277960487651574239790572669150166364109244563834939875078264248844620864549357313814335170313630379360150146396407685757850526535273196720080208952300976744393295248584180645378553145120929834243827728005064101175790165519657266362726924898892333154769910349369879970087144321091470884021220325270761433420638003407241371442826316685592908730873849895652474305019136253376358394072544580801820728334799754563873084654168486854011625311452992191158000990339896483004848940240586338872718656691133580488853355820946429320492827790531615535553306198085762118437420356629375870913523736234822068790092860584293447966854631330909053020757709616782476293513150526412107653639359645609585991939981883867080300869229867290842116928901334672016929928778680897238682116342928919363864728586669949069507979781173666095795361510025444798753579499135938203737687103044978140858307055663513019014616498288109826608234961710713221895521695846311091415633488200106853515922288698586417362548268586807823953970529579947531801580330387090529608016661717257218751483185132793432852768636632229722845593088532843103287184453544849570290754234369506892345100026293702407368167037762656231490806177572433179184019956202091726863971093109500837139017807999707990518138703879523892008023993082516972392953842845496301134215923373145471350274701955903987740248429727841219420756891141504378004096901278023859394491101748094015872413494868474837841371543682435414854070063218363519666436340385971821019597021813313557082276392612841428577825889324638223433043337499566447176933602300153747627631326161039259381238678899527474620069931776815788470949847582661281600771500547170715418811195281216346011231504204885433842971238364225146665480152251882209684379998662131175447882880816615712280442528298045107717521917683033813531705318170197826092004504356811839288630972574088596233322479055208512403897883058457305815741625429892159087741301011999792231991580458723788226649133662005110522824704419389400892644728119673737953028817691398741367688750401365793837893840737792795181856899770542304412001365654720201674926131308552648500857243061851246094177370352205457080323422398122168717964368161146221203180609365684823401346527833435926604524058331945777119708940390845701723756335619529660749923573162594298175082218664072504608086135616556177887326933552593558446650790763113519559608866042485031054714007682815667437718309201042781736007862457242053283819236963153474520789851406189022251190943284799686480925629457822342679498156822798617474503248723199896403971713679661148495925674665651321126508585744136979132538185630032354490073110210230778709561904761555743341752667262828052714529404765891320482297198826506384582240210674832994511516055928161708573587307532846791569478781995400918500109013360512133880729116706481335069207065910909962004006072524236214284221706158540878813500732484692982438957376988741023103656029388500966538170549259706636302823437342088641619731051548611747423867864428745919525127369834335689166338425238458484136482397920285845524308009947742027809748004827693401939066724882608114891403319039707771043200288272763311340790522958185150181716238694294223968827425858956717922363856140480963961536176752652923156056704816532743845072893079189252146926643130728533848276240207762545604299867147404871081340787145782156119786493831618289370671553021546876970751259845424378458134691966919026952446950635154065952577679076382268989096302819254512301250833103967775913372465171265138139975594090323241708652165399474232852054040747984381931118135616900885149224157356513941447032569150286071219283143972300839975823320436171177813249872265733710394391316776514503543151238730307968901565031036323745661546513101087346951420361697016924891445842096439964815662394950789367432598499881742332541066334388278756144420700635173955468781341183228632492741002566724852538595872099934147658093718013351522679380737277969485796942456711219341617401566263855047199676809991849137633689844159280472812489468086780158421496721048918001029086081493373105674434354799347209311854182783868486831583623114077909283299910095019075376000285692512441807953091344879281807001646708553879964758627995795122201341318063419007231563421902406557264994797240593923619540733502295019337936067804338836969619780982674186580351636549167210705593786874900598983076529038480335756429233802957164787932283515171748870843171106542234337469999074471464678126007203511712520460908616438314451663154233951048930159119431598382630730232703104799362648541394186491225771646065928809393009577833080360664551633967756563663995536739428458347821693233156329565313999120974958392883782845807454469208583092574445058472735318342643320500731513560271389475199481076216343011894498131018160702398155247093283740187295943923319363852416967114771465995913839303968532875780590189915533120066314807675471991264916238971069442274017163300754767567873421971469242009505274897935421613985007882065488432586027995347735546690233898247142513950734386487999619479268665672250408403922126449048462158106030036245342216052654811662940712170121565335039644842568684211026760220032863655996962189137457110494242517667870927000274417502137993291980568146149978864354297672396110307978597887303236011941495563173565081079352133959417562038805417210402628127973743296029795446652847142741458895277224201334627060357015803562550999584105933293196829960488354835111589370811049094779757190820475413215113730905528278031272185342400778213350428934599416507538816165459155446311200404194440091607065812760241556144875689328951963001758505571996610206221251674928291858119056417563548645360674038920737369113635279970138145373563886797950237419775957079168213704253820248464061419038291082516424018947523483247031602495299732544787137111798726867900158719022728193860025605261818975771725321490896357854189960725898453334151103344364369601935716327526887620720638407521904052696215563338724665445347371529691905543222477046053534367895885080275619041645873391485754854668681165082338069660475090939227484537592784720941063906831402284718611862039878874472887525562641124878182518804992611168828614160032307596884314205145432578517339122848422083886061027433472765182950293785662635154617958895718655015574927364189003251523268304857014564651360408921149971072125499059020115545327599568217347357807621809204421120643808751414018756319343884661684664534975035463857594346029308599486928304826708313323993132051718483104630206044042277116696447006362458651421399676289938581463376463104653557753259618830362920369716132105172787533375172659001862417811985490377924304198855647444297915770037819482729980261723591893178035368447379689566299440325679546967050977170120698574066872006815966409398497616446117075671809610231618796393121341681646291286926139347053961871896678821988300243170565247345078293337627285615220574493362384110637023735862592635454388614292455003593793194765481756615599721197366514901357467042435786710608612129395836780641484578938655212375328213893764791299501163893042113826490788731918703677515791006977616753070880861307045409235801573794574956469658819763848938960779265195598189813743869860296202929499876796542312563615501509315185557892216056636842830729246627272239430426432289962008395952656129388606458320772019431466946817850636063538099342707117199377775465396191657723103868923869243963394140397778380320690990063928237282848014782964526461750843227634170471252035400430863552846172496949614512337164141194782848247335489583641038490444678674538491428420015665383068035738990385040536091304940884371230224318423138485303742313373676319432950524678985420347378627349516026521597331231609806000050422556562146330073750700061355937552407765908719551774918206400875610233730570951903524606934922202891305701052440166055866456230524863437599732963407138281751858625329652424754900675784969444057253872482170784087686173161928514116427190040662920007449491193931711141986374422603249217903215451396149600575573824198032391700197339062470273084914432138407854294242317188789269181531380234577011647155979364161454296967054728356986902075197099367202917750321709771741911483991470089392745589608550720074833622170695652411212342488855058734708452851358996972243438064793378740534010232289913065420882208737356103118131731444836536683569319300204065816699177386734158056169039939699982739065174400151550282207794308445916152874389995958354457924274719827161101650805455778355782923433761601480624852488131423677342614848396342077468315002785522669557354218760817976021651627491388798347205032351072276546615493580051720534904508147568059190163991744282028827929963061492470198553110167459235307064161106212259113306398429365441976413974800111108857540770701574115533254868935507821838870336948165052765301253751084332396472716007823169728121396111427056279435029419099533894275601866756387268514161755932978895356638553190309942117916764936770839578019909614394567681834009985096858735221246665928475676081474778846043749781156532182823581457301658278957018895681134620788231958532554684555868603888899852118907538309583755599909284207690374174547491635124346448243137473119646292583776215195464962188656753848430049927037652068533616693917466890578153034430215274399125918415160799190702907250642329698754457656338761446223965504322721031743382083684517467931683168353474278195833577476459399294859924415216100822803030771678500202906382462381589937129284107065285040138755277663078280084110561923665660157888842855073844148358900743185284941017050819613535969384089041157906287164930830237713951570951274780098722934949997565179339388955752042205996602840695957598145034182271252848766028285844853661971857925811949595683839283188678460708596840661353051881824937553996519216960063062716696132452199596082845946767312845054681044335008583740311093870235009448896450930366350487862307004070641124817252368440647212853695562591978334822210658563325434347811220504325338763558936885087601096812206623964416981169383276259842288360777021629622472480911376864385018114572537440982714235994163789953815041501696555973960959739993136815601306931028107872131388159429143808811100379107902519537100195581501656629658306947356011075347029246309259223861190967207144047022214756768484821841020302064730400188039739566880632011229302224623662205164201252426564690060135807333828419773772692451043873290977342169986969227032779527301376172005035782817400312893599554914894831531304814697457252206048458042803251331053888980458772399889108837162219661888931181973988031259504892830918985709718084582122426254786017504388155414362747073798850398280664658898576988835796535677925686014543878980340288571496066129996228948366439440696232609493978307239449983907317376896558046583008757998923440211705393873178807582272027854452359497573888262586091618236425359030630429691952718887131015637006046608386636260567753921950521614530214670108388170229309492892240033424677270978521903761559891241892516724558422779544956367939709930157166511886039809655941555601604691878779337354966795273068083155269141242420467383193763563503280713971861598755170142907332750494925973696594743881032091694579696590059597497883920160059048993876793106904433280096797512439355778611897529522823649094778443715383204088963551802536900648788112414257250463109904972355199197015626299736651367360302380865111196667007839779804963614723404585601902417283473663877089259976007762053507377282075355698483565635422042746840484119154386522076177726458115044852499923636895418987555659543761655182139848414918360184037911368699316522652251696065254962997520513575816981758428570681393538471298722610504696448726113642919348190484158951898766901243829509353838446955249601283941513654419154138730801130359556018780577555092418466411866120136959079498846374358394135507023828017854372577413253407258862000052428569935060212056695453541297818439877343995834751087750664169434485808872706773941136605733753061441592279414613600676915987478179835575854818286374674236617607044768465555184555790068661350775028709098517177206733308505239643713891336917986488455356732572326434523099842472200210471391840584809048193138566381217111145137313651727442593963103831992605423146646754019054428405855894263745506401100052801875943187400208499841890791786331170731450511779300014981129313918481033672383135183248163796051527991029278802564393299651079214016540778150112597412353491623931673184876217582332913774574148272810344916839245952817110553800746284242227735247797668933178146081028870752922560170868898580867803962410982327022548732566461065348735706196303513649211903796648918709497700177417792402890213900329819090277359760103807355765435268256261228856726585030160565270452048725754398453656060133017532448957866720607564806639787634590786844016095543832627617321974279923724949832388703732907128563745231557471562876026176756619403159328546326709227397476752007276044474523053146907719801620425922568380168327795066412780591415407399163672536181292176936839732275541765503321855485964864373999745007252248043042948807573834618971169966220258879338630809430259539612399101889639320167895816967568862172476606899086693578236278574956646503614459917650446961232728501237896943390164168424114823141323803320042038219368856851465567888585370016687739742674706030103408437438864231165338341534926081590268972739224627444368198718517717302814820996984077230969006215257690120140147030682951139617566890629589543418047671747768980598867667801424861817970536684213219932130956943656263413861645248017316424036445033567508605215960651079353358613422119087079065123816992163375375528349171661152792250252273864895074576876033814630617034336364342842653645290947333649909006665493134526435867039864746073888197757411191766742383195500654885246315388331954746202610228437131122784293781720880154591707902122641154058548068035030531537459592778016891165850330661392298732965373674216289990159092270328916102830581330828291007737814569857018390006422809920669847866824368053352638260417152670724353321019890599027097242633064531503192648289978128518121299700170299886318342659742403979418927635681562770660632152707125611988072128638090676879407952775359545525555670083270464367683453622995753082225419451632785262000107216973694467159070341628447769066170672579146596623130455355483654191584720633764002868748303540990924708501805312599911364952159703136344766016203525572780906306326744365262298037590628580783489125442663812607227284258803628962739780314823712223058370677863586231696826343179361783412575567100392778064579544257953152988752984986659025615015900182799221065281182696732148568902059671401656464622333063338539440749164553463765500117263264784383492184692182539849892544478973849485082289920630668271585073985693424550459180035463947829029845880515714829380987018729617715051408672785717763011549229757663915681350381744854062030880961920006182008114394834770279232806130473441379747906043020938510799074953494686469753295024153873161255100105072478459782154113101202301336860282987136629240817964738635312467073102485990834015260118766705515970983300405951868191397185915102277515450132721692256718119144841077393349815926600334826842551649401378575219275102437747699452132162902233488558479945452432615573558513525072685431443895138324746639469703049681358769738028891696425368061733301997466033046710507008654462037159979317824593210488180767825564533658034698712775566954324926158449329946011843900752131185447478512412822678063770075506869900733173735896059644767725342311643286547047997962039923299392505460112130547309565336126139997545984608075902525727928753998823031461267555272675330526938452908132120480500916555723345432705884295467325654413086741067728005201369237302231688352910535706153291659414414335639166551806622839075640505285949724486149300275079433354038724585040282501722863093266054046169267257439324301867070363122717686179031867662576861073931070185721860625577542681454491680474465394648935222795581280500968562718853649511331005514667078014899353705360461058321608649192010890190289743455119725370703225650217914620548900215437178181044103439107272809272573808701770503672080824688414256026875642014056578623140944417062447394465480924081631282312348722378416989433917095042725029003778460574514021175205718566610372534098473254726409083346993099512613111049122758583683398863972716936959589636064644065573194634281342019539948481950098781262676463201457724786921059278740317024219694848288861984349906060302186426685585190046791963593367841171886885160235485668182095195187470250654530871821647571522671576053825495254606723188310019567272060292093015094150155560301313008814263484382744343236708484196481632697161220872592906381254169855824821434876121251024734598774113570608810116664055768884399620296612644423182436863144244624019032336998540360786330516595937580825684171698662588416941148151966451281760430608231627640523946703235876437653295991191804997037197854152028457336458845828242260849017057138616238687737160882994935001445846331490368081463981509598450532345611388181322250742012327583228424060545494266798344786547513952361531986960667715763958916440076677575803635736878189720492024671137206835849977864907377817507006937775003217426435767260203654615357636294840421802566246041606918613891849687648469390354398998766493660991223128545610666240549755503279398064468870899263883175777928271983744185919058970145961890847547523618678943864969427661664449424948460175529823687056897741457724793870028812717383387811372274035340464029182168887524327527343831807105731138830140627398157019413762264349416779137082967822308182751960687034955359116212754480128614261285975968581223719509067507608600291566208312956739195063910699786084177864700691075132382668611704195871103515790286659140588389549579267633296890788622056644568229057406638571430135863238060199295844305382157756051401202683039369648689509076471651685168181163073961244102838839941446714917237115214104007579429240717760864534722927541175664794816642989877171564680665021776704176891278529656072270753961685462519850597080217443734924185063206497924622073337883676170106205924250530060520628166343845009667545733272851477814597492659483839590608448983895584681586806933671560192481358629313605949101509714591978053095232721390678795494180068653675162795329108639574133688456811149365074656254628920375274965991020049786278552702780395409818096335343850037018166076557438211172731421336089149874480746212338006931952744848482977807823820642737314419760768377552000584348278876885714269721936817118663009035062274085812854610433482177438253890719543701796180760173262733397108600133400902228218268171267101117584952555031977558438022999430297520938233043543743410905532141425030705311884776760214341599156008917407623967701719236350105599111905933664415051009662087638429895841305347755876839544456211557258613877305925133395442475724167013463925348304881186682608160755739746840505757534439147618167262549638422497310777666452663752638086985124993208283371760451227629973514046044274698285913733389310378083481725159678345270059307139086384331663790665008401964767487900940223931635541831402818219342610860341124432885835908787389262322373564151637874999858356474987124684586755082994767642952248399422697835065099149785964919023149337799264351649081672456092391768721605040375990831872720062032905190088163408098191128968743904842470000144544277928654238657228664782196415837565120334315879148566933030288300480406212245308352865189420938908304092009611009722263940322522409452495616010856348020410684041857848390741345451625764910034045024326992520271439309509932781700015023131947020646025840275408773761954838295442748918199856725806096802178257420076856259872256396419305964842274866700421129995245785600827026260555252602457569253894387702326897050613910072963710858024777030096101660011884687526277994225179809252989131235282251747664979844080412307823088823565919054423667411929759210275813972126695944246255395604459938526610022305912272887632986943000410493532346588438741267441290635546191891542370724606310867492226787477194854651827682198703291495778922983222636195215324928691936137351360499617066781233146060352982705764182591841863856824717051663662748658563226210196464422239331330431204417299995395691030655069761427332091688485051533108539892512239036118409343944011482337034489249742596546237648516387561298249378204942267536315301397352703314109676139986161306649451890520988197696095828396752287096883141028352251945666963148408456998236150607416866216925765206137984726845299576191653248790337945669675708693437854435821084710214229957125132387815136859931062021628184333812335170118583854494909093911402064543294381836773869613608530505120523399403038239081903996217313633733113355025842286718597098770480184149245679235460851754370871556764375069459145881962092993444468961287682390481503120849973150747488802087873747085641298174527102851027394865326362809820677478450303656068072904856525710468189363478718787531088673755282365490064787155902939475390436942768723732854370020063189958642277421761646282997491326345931870538879888671482749489477696107011177484030992419830398650120427837892177855977203451098896270724126364858883576927422827842724741062697639229932849415915213146617473039249774386702976755632441613446895038239145796813480428572716687561477787882629726826940314461706191300319171142265569389870989307117144270586557774823356319306565499444401644431206496200301510885838482269239333419910399366489676244558129148551209141407471954993177924356724936307093678784111135262845100676151363079345597567503671668720078161430127836579848328671412466285996260104350414872376940510636510397413046501732787074305666683922729546191569582247015309519086438585046039994228969253230279297491718687432888730885442380259227581290847552647645364057253640948913392324473601791526770910466076326762011408295580295662998261128999916141339501007073213863399616496673202275966905263779679574632694400698034920298768201994002032408660231802151996288012901908024897983474052304434153724941317001614312435845687500573384558818726627360216489476012327398120351027406146089838409252163915921430231105474539061272206120731231639493259485016153540845753275057347854103794382115446997077816309289052850949022327729469489188481356707253953861241766150643300418963539333221030803968002254414060898720722247281813752124532631222461720798263542280366286217751757423521028248342701758877797055868169788597869165869591165679427643759047725988822797230395612832823628763637689740340853065203993414958872152516214178414040672628038510875836899299862665980270174577708661944842422791758194581179090280303433221578255933739017172550271034375226906254651730136822030914952646574073042283108101424925955738444104638410025786731686352808604246887649203936820217874698288242258334938805825247264042711578252334785756069000242466375892133366695763506398863524001796310738963204543489354535468897735905478412585937889660420242336019624353699369609776504147354155801698777191916211066608097152080043336916589773740696639016654432596844554814925942647776709766577992082613764528606795197975137546186568400317882344110773462086107217859954971310320617459736318069173600598930055496820794736969477980593665398023226957741355466725316110539635000506605621564761063671248185399150459528297635051387965441093122371422434270453682028478459275338881455603375221982731887435938066373851824387430014122212784495269936268304438094426419443830655693134488981686544653766219059109344804782359901501387536106978380810396339992966846845123045547668962837524264051176388954101215093137267989470884747604552255061742345612125218556787170068806524864471627297718695645728268941641070012968476969270617528167765788327555793353728760336318971400687026487203624031028953405885390044503454229092544563908368810191375258893155754232014689531248215945694473852194596682942315513053112431570976945461426173309437824655835590188974933117961231428450016105686091065580186483994153794265874542890266833684748888478374412904558154448525072959144056715142285816644948300451378464410172623606808621631672449725658576788923584583198322454345846991272047786003972568239503994658862377625074907767563876439391192886290896038328075528920962336804504950544666472384916868685862385834263316494115332704758747746721861811582207987582231780323374745821561111883686691599936315703827216819483710171589974022634600406006020730292286757860466961798435124893352481314990169825848062958628720757994811569341103329360566555187772425977335582245798592620776194002414455720577555549027419247798692336383690790603661447334745930177279405599034508049627879120473100727018477978601926167447229562916303353964523259736417035201182247460866169357936973402136621207443464937978375081320773443558382702972326979905372060809441330866104740971274723228596169365929431818260541949693108144594336022517325788970661267203321236686263671217336584891138197547783409717639939191548094866397259064618380755177204293615511210679033455715053489821316374069381554632099226573417104679590640266383789211389810986556015695558147769000047686234055666430089655387093764091982124062824588097660467590074107226062190593922010073045448980438245432666944303585049203241218519663157334891581493594667222834774481974801056019754232553671771742541425850271250391943295851795522922737494602418766536592182625725778651880753731608683814816933053743918348278373405678526023624297612087899239619579544517307537251416709848446455642586694387701855419806376121706358141859981747214816966015023683462964370907729254768282778347931456795364781079529352129916053441659024137465758733304797149659416461060695355304605753660479358599992820771238362209387229426399844503338977121144220433856133876413972994423871902015254392361254669839595817635179554918659143156876111597226816507453819340396771017566861297407843341909594062103856432594752942154731810576530058669715045145041826843702615364396593516800840188669933939032235181763584368357401980278327043532179934785379054465230978697894624796108390493472146313350233817048808890573586301735067280906960714812624240528292386111898690161029074014737425513938086389710626645172184698383520876163524509677896355877306554901045682177406646984694951019024146583308215183107938669280626495109669864157149867756001987319632416850306156284812964773452922552836565301043383522619833760529104579437986692291795106152474427760638574094106302544325781992221894191685956240289234617948383934120966994626102026165784154385375755666056014404144117326572687170408863774951558985274966777623307019383234949180264298520419904683509088627513074041207598078099202079795282129485421135716336836443874353057570931147757175522678473731937732764000976113636639932121904295451632269529287201073362522438029282064402260199284256998163522990451586028336909065444182557375805958607777102315411427241848908581401815554724553860126152808043081642043983973630005224443423347276484062699021127896284295778377068423457049005209781102402829667710440622239038806726211573411089820900951524366918850881175868086257387648849945244853240368301630157809461107824271063800027364398063894705151966908738208602520656181617836158605925337221652013634723325293762451246788103136951681737557186114010153332781055983445535525814100077235435248416373809833860672523396534069010486890092456337663095200859003924007979283149879073696037557355193659678047609143457280551761868285124233898383593263955886706843547392694851574386788003119964265242755736121734056543089528431643021116814346889302474691827512953110408189318768046382683483015900080063363306290479034252165217804512205205801198120263849027325739699446990308171261181755271272674007000586898021840646449968014741261458717800335009689440126437805782041125554153221322242657731017750304466526355531463302242565118569614702565813224488317041902426801598357834292254380159723585084359982428555055802190801120732603206280141726800956932185094570948127094473082379232970149250727997419515913957955664283299724955678439851466465778406576375012453415751077639005744940345067292264884079379075164858949345797556546882305838163577666594347014541934853887052611800867037696444897639869887313827992829936547973135970369662516107501747135500732172453843052837835393965253604840317138264007283234682781485492432985116616025190117037218925304685625972201380263438736594588754663966055456505014094223788410190799509610453384552369005890990404399616260087513252525250743213789083642394726881233319040226696155243744734535943215205712322363315057216980128093309024847179194099331162357429730735581984896268671270997328561747388534392314866784485012038848635679621790387438299841876489445551172152806496323345416009092429323855530939440932351287709298593760927013793879584102883104428861876377941489364674625625261168231653900265580484688842522480970977790932146069092408029287790734361279267963190059015237993666428020964734114299323399291769656864671853206816453594519547057951399766131146472862652253152325498566871750876319049229386223780257770137447938926369298097769081020376369575853217840253852922455434613954887668402587617568043278233157310364467614411714861527395640497946096452118497927164746959769450525972811260782323942640779241179386428589152682163260297902779817321247054969134589165755075536994725400396232610207257561612153308766013959505828049616369632777341454163438045754358075529773042904122458611109391852042516003357510043291560091134766722392018460607757420568510537641076322323698048596188877217456530251550037648224574436332636491608255469154474895366336281309601168467182868811205550856566289131940052343284230697996610949934145377979776508339413107583486149955168509713568516058947268770955849745075129195843828629472192880742664201509590717229502488211423109954774040630389090471135589577146773139615231315919697884065762035734053923547264901867992585838507547010052041512796402947477138934060785526619659426148124604083115186143385833532090196973026256090905429566338874478733778141763117734901435035751506519149980252803451900613958130232102198261310086045470106473728836708972354119929716062217690820635753275368600850912860494353294458787632070566955537204584058902503853858876331325663759162503425809490369838691724378594783984363074116152916084659540840007044706775570871546970127490387957112772068797184393005526302783376071379601405615073527886687218956887928918435850200353420674768459857343384787924656883391780428682760478861283023123373766139430367918704816534625370521037367926495273495754851321582586477933260676502859319991608372827389283075590276977727141866817941200199458308662506339844842780007333060150997624989416442812268802317653161840196662552322399929238770025279404952130729940379035948486442365127954947973217421731615241311139037324012123546931712602852897288317932834121077850995143686668315100897162712574146057616528334967123162931710674982659787613188376538252184318443291024570208155921760984736749579364658108816041843534697981287568429251038240344885685433026948279800376860679445761143508361232003024787319919609048506184985927016083250349408280176786772462935330028053708450257812764731161158964987439143667082437573139839481900994556753016026434542846648917129128637548857917550272609050800503671763759549992182207727649225003669531760937137413372817575783499755075872447119335069900779219593740111095112607154265667631737279445246807273919788907681954395992360807635235156987305392120376338647951167945268838981503212827792968327870170914349033960270502905317753519527228729656474576990887623992628987943026016205777241970478927008392977769088563874995510069583731830131825925837485007963128606055308033562576004913467902146545065930944927701355240659903654069205392637960196017317589033058769618041823881640712439323435781534617044382306771699128687574023375769746231683438261838441022635786604818737537112973467118875910977536836126192476263779023574718408174973201583390212917609905634187952038594259695971005118758086804455229461386409619678777740062022579824190395476611949694181625725873518918832204556968269730952787523155054573269956107177623030285055526207188849347443628995099596037814458680399496627816710898203075468855054242100506650915841001692224622688388109662076501533780503978565665440106960723249948614167363120071844488083211722085176153115100546957537975680252224926480239004348288544413410622562124511056661344035824663591356764723610208206703168277914568215437353729555101110748436188537321036044864369075989638519375938039532007578058652065308694546509758078368263646053889893449548359979785809631477104694951340176073296046706580285764846957480334521720797097910612375911389326360624074982514260825744904730360441697745818678638473611182558124185187977312321302160880083131334547392581770787119807568041414840967317359456904030490206329983048614843104547357664252922186583447777777170650637542864487907537578021206942085602035726197449740473788235631024320074000824484071018880803026450609815210776965100357882949618665317553044981145011002518883144146726391706393546387222913662694627389519640140600254684725789004408317336375329548840543174279002282057088390329216355209934384201533555250961781789261024621118540177112935109314644020609954422705651687778674836830036043089426337942317356289799097617010205046404688841745380182136635963071491047144563802755361911991848881610235789226045703798164170312150382174844924786199798276910756782126717942160370469171287984828086118573489507974743287031355700335039539993901255515433949484660010234232762779806352939505686448080563306626751372067805856442725820136682276870139252003250301857716208205800950914876240091409859328905429806331731963508477506907484418802004983017549585042038802745172216067420229680221268683810981432800337983578846249442341627145189282428227989383226656368468529584670320142308413434697216675019461456806444491873617450081616124132846719782557413553836911311796911371297894017081546686652769551192733365244561443338943386822704385603218839177768892580352772451248891407370766958434042996575679859070383100191439668448766192066658673057799733121033539362033619994291820763403392071754616408969827988033790532285372196361384782864417825436585935751886856917435013584859644152469613093237381559386559664245862393930078815500478515380221811380826151317615566784650376534306519216698402323919952430045280687968439573225842939129074880000847906510251884968399437751904472355392531862635553014497586101593805491097131806312602430997255222471568519556118545484513674977134604224539554092426314117042815824284605327618961105246402439969284195127419046250512423586135227151113290737409673484314185730865572041823013992711761667693349061792549084740073583393033879907627858753829718178779503973485153595537280426290142360980291642815936043272467229468454198118447196413339416345725348364772271047071419077688244340344693977528679761660651236976411390843939408836264114826240150975315538060805219579801002459067109930684111925771992554105745275254607102748003933403926668034591731323842626464586485174046381742448336666551914578339181733354102475474080273209989623964763497135967929132530622200613279457546342814581821382278940464967121283111630572588496097024225688193329227079959264324401477321058166137273651129177905442391782632399237372736886258905766347947003262214099908791804543624754535070352055935063428615039024417784843826578043946074155240174149716598469516447389760204108595930163576449879758265635347377024811614586231394283388373259878745472435310034056127907440635439422722439636289148940700411153696114306170271314852976742276925948014935946522087765073325796181410830255848871659468920603905497376063045996641165480166810699096685693084750712260808284414032709561327718890513636614390164171886449650373730148871545365150437933565946230300623430308117842545087005425309161943408199860717347118303112931055505533988005135811307372137681297737261484678035695298484695446231281586856909891097743167911168994641602699545285986733418682858711634759213048077350427095546951392018395108651772797917969148522646968384803176485454248268277692618549185619123577865648405287411275835434969542414217972605312582598480282413374645316813693879534634756496648063521563364059088642361631916265132432971895278685665652436590929251004236262862048463087129206315176815767053328973153531177581676822047875399535946207263755849890889202140370652120079765778874022711482778416226968132068387284148104373962237172359970774567023397338706077438936902118026325083500464604182965205824310097835539077094475318857545806483713979931862401181932234317502140934137404657717155823379910833454037916769809857489403162169041222998863991992085140240699417647583305777145043921018144154583235560783218714205371512482577584682005688493528345594298306917846584270591364683393946520955927794716626806883426426409715847396610161994728446221831726824206842231842729022960223813890129190899418132877904762498735395080711870559158453088306890669186072057905416250868434090150892549865853799343301804968318341580523367755654237164307381854084750036507526771966714872321147069079823258304983632478653700690088296075515001439607473865876177920096104764914891757476795459717466096674905659360194984195006429594845929582182589417995393898874808523353947386257826671666568169473135634361169043713780481734084161894981024868128206470415924694446049235194562171638968030007848921949810242646992487234883672739419048117699577663607460221490763366093108245694967120077545619654896247307518155739835448192265566393481980277049660883775596055046463452451669721372080634374889131103776673820967007279500127608924427973634271391809515605743381584186965687781670446677151465565904685449584404871015097176577969062727922380483996923003466805272430296035401992080036804087156899066463406287811762880869333695877431092653949930451420904503348789832761332597944386680868395868322723000441103446071619807504611141726312618819452317825377137908382013025230795727268818692146736456702967408585649254813560641192547022094053535613101440711375138134310405472706331364704008067449116217941699335710400106169335435705661789322402712912008282190165001704759109776321560027818234993363335459243530135306096892192933739611315245162203614890335202659572292545663978117079328753227367369678303386940670322623769542992856982576430827106945083752166784681739258333456305439351175023409680221957925690055259823850265416705496694642912384003918364422728572292437443562178875003152022067100206709653212896545989595225399752809486708788574745997308288400757729651444927204630292854641136232194774132799807111813729057594181202686890610901422582855409876586012157609011337284096861412017541449667977765038407383489387684793126021818288560749891156116082724840487696159785820797917053234408395843712049557219891473786614336330814431078959159969436390357964641179163158582060334934359030822073728536696364904356851167138548050853781120247325929165851570924492022397751063086735250679547014439325256107693688924596570122938015193136992359513405272237712719980691098380164454710672776541152806818596137567002018882273698792502308634468372400816973970168160088332125357767250557133714045482473876643766471485189010807449299447188051114753509203459757476249694278056980196579188067241374190638791248721130454028199776657801683504407563433552987022054484216806881521371775800656374716231096457591828931541578596573913251695186368802928522455029629443025685148576784484328307260681917692590047213580312527980471572176196314204712785040446239557234599068225628497477583096080004569586413352594682091020430662420892970201346576965959269308030182597236969009152431597736852157509665704659604644872859121500255876340007745989494942761576188178006417267999138360372191730443684134808286325505834720027055728136375477820930640666469423457160037769843248309674748247098594749977449096574865246573346836315775466616154135181088610495718250015773597375060351949698071156820265334055706740574976605280694998434989094377111461342382934226450021286788208234793019277732071683488241176495558461690393070358822012768979840582048175801219939166307183937491782893570331261970714496410289259026609552181635095625735369647755618020585745154201889076341127316810295687476058388217079700487548852300320351236087101988033394510294997441699772515558134949171711945279462580799696191250567673881775158065514547872424704268892066333864577059553244862109267792543733121010529190279012319719058754722340782518797251040258303982219737815393112969150364674001236399404330880655722300820938088507317745410775425268954263111339727193533444569833009742252932598703154955821927046856482356533331931314221784313231371614895155371810722611788017222645021050739219867797624204023760650052458775579114115029245347767181865610211455104570270904328884522344869183898088314986172381468697306144366298717900593783130569072777828710120247973255601197503600599024990349075057670847285977243170745085343155495282270591965369140511366933219601867273971032766814598724711478565624598327770557901909168413921159874976070293848090304264831573744743091776386212785751673942428243769398246031016636654429439492936516054830442699635886455192775792288747993167547696810502084113937630553481751429217121722601584743978581881231214721495830309271096278504278101481005013144404001045823519888511550178566185412996776757754640760701658603770835587640869865008966278732603948251722773952696331030521741520083367223821767708473683710950193751630673415839302799992773136125855900392776061494040444995670991857910986158676460138291345503983355343186046233985180169845103504508528166248358239391888601528631068574386049826517043933136841496869983537516655465374427157792258588948001324484968248787109603267702249359564748560689730423425337672523320472698641284782298292891003344632992465446188270824448452905035802516375804501776688708331801068142334347685373544393504510825423784786271524680338398055807127890904059459052755037325821095094098975184940377215428809413097065587117372451961026091261342737858489264825981471043731739205524068233639935337171216417353238684542577917220154025762308378723474801252513391591093144408897179179173795405696040215129588711724874921335783150332106397495847770093854995018867158686181876247426411829847009037450435277021284548534296500616031462375978671930585287497312946448992029279357387821818346629258171152008872841855769796256059102222851194195355249181503306160149643760352212599345991152220428443326316971976868609861543025762163110904945783903530678430943011549237931368334014056361861213529521824529958174106748740754639710098980232056486418906431872701958724174759549754852598272451445675373753074954551795315476103031049709161654644993050804967152486372474935232787059690370235421474269167607201206298959550390096844466445251636564876022341771457508459135559108801154402607847201097400756551904554001355506420685280447106426430323304117463348484127682469102092032698564025332138155319734941099738404320858757750123621391354681044669174421879573142089595493161762387850182395829959975132118170460503717838768935533358733117652040834489005592309879298979340162917655188739064011332284468361271993066375869983421001235502373659012390901814800660531901592894810722417832980460349352573671760616269913384420409694007239777194629531284559706436330643657843731793930433060342832413314052266491927338221795829009677786196968475679786660453896590690636497069256917628574532887225874337086810592307849480460938156439419659799575107033735336959924853527902391118400146806284093325987861587223600970714650508129106696980990108622902052902054024802641407267680715872757478334914995994448032610397177465304399894383058330766096611493374567596755321965806704065948438096575328564148310070349245111648914260837123473624865462711205528270238628542475574988025742693342419912316261641817218756374910217224429367894826327382132310606742704700306718598691534419043551026559075989213528956990557019770912220961644322459835405095838706137153257652511172757005556216875664251475101710186105878721793041740439313757553815584252827750063854473393830708127150242255566402844998496946124874494948329439407428319263697797448579976552530164291022511284073547052923839542973730754829766458400781075029270532081103466915972269244556151672388615269691914950614639280013865368101350499859866494771834454088425985710305636609864043257329245632412886866091720702660343011718881205739931028164651574089457607586243911897121397808970811082181480744791033632046098694407894451488305282104368038017268452188420248114500076398191948822646885832259881981638676910938021241455814932367301172983777589193211647136149998838532771695488366128403443518914043865117860252709766165424449498211728343304243506826925449046502694397492443216662830564026332766079916313123092759850646545567809792072448990195192373303570232948727775684770235913198535072215794290157856857752148239474536084468052748800719351472814577422759154665165485443917227702380111377952554566776517191907794965473709107186435156055838418445304253841551978440444964692771902523534314951796708418646935784276949619473743296633319454201974693033272380705703745841224550450088071246962992506345695952937744573086922592099045018162801409482385771562914340813198699364319060749707661457841873918876581373989698767019272930309246280627543707055917394197910930257616114387383068836621378699577291645547732291533018672112667215975962648594608075295994398008086517166371563672252104147202745697256147945766395247372516454496875195794005667364243147438620223490933757474794760295051631108863996210210953636722105203633542297549816076715365924941186283172068076974749319260889607034069999595977407311156797858155942435156230131104897391477585807485811416453487612602048863042414911020497450236905164607724522263732078761156526726898749724444025149576881295936095202358789303968054689892076175805647833061424177943356303898221362782408079740341554813017323359492573664658451855983267827011713741052156525649501981338281519403535359010012192514425171855888331846453309675670804301098801612573260090527842806322290257728385066330310324427531024196887307966716056039681191583648646988849015518216617841161310181057146859484019433806788376784558395765359446063135718370289756759803305886578634651487748963491667522653440421023387828164816261665060357073869163418368603505189640041849681373797379587901440430956216648677681655189003460500554563042493602159041359300833883670555850557576872901876286931069022910679491722854890474186827550826675221010295872638598611458783438237854520117297988430835262797449980245417762394934267987345062151320671507908605152248253450391882211897946859899245869308634883944664131589142886488328579827881726781849565226090856246213089721165288226717495228393866824789129306716289467655178128906170362375562998812221917998129160188796497277991487531103231055971583759333211293909683156402628237609888282168574888170957885249793275726253883300814219616375483992583453834078217663418678403558459138302492583737609519432296433448197154715747692562591802948185384658277822885912206962056221788989645132960673739657234865139714083237040556844190885254178597765253094727625453218901609311343826023567328099710048421523591988411808065472653940031474282114512698596439605290610219829448839339249379954226013614248373967066830003858898403328453168803324419727160006794494708600020910559913666737810194617047650000510082079326744769944903677669830738135785048785061984731625984567818900632574252926672942682405946973788390378795493234890278936394723196104636304007967980531370362066441026931731255801192323007931300856409536077692436387364180585185663629596948489297184838852203876758152716438003006261425621184031217168576855863586859747052996856383137777024746135299394704785780921109255752114957835004526840432091946086773372744472339683426469526961164203321795219019112163149192892294600529872055416261571653511081615490278749569813769537941107398257389802053565541857723618132742163305910069657350872641897853944727675462031291146117850443943878146390130787982688267422673546156788476409622776939552655459045724374189133265842876456256276981944289299111066652066418413232280609389676954166030911095374699028050880937844905863709086266168680506710887434566181408765406757249581880838680019256853095513914255970540038989634518488202655718065996498815183857831334228966072012864885283977221402030352817623618669746447090913147749250930368897495230650849092490495606801641081037954643074958450277629623553203737198168127457994747976404919923888112753554757811512335202109221713979913475654034208823850773646330344254209906624442248108317521565898161629039309565082821911944023015928355916469633533079331017184536906606418872487085079515888334740420816305176591027774943863753275581738350108863038720642793435169269777756682053978912340773873680217335162239876558436478965562994622023895747867203609470460317708243821882022736197228245211173815685846852886667136247010722467511129305788919953579883318744658529224265730865253670455224524574036550425840146172201786188953561141051361988972911681932124634257137934411519896630189501226920584987132373288706819599478648733250188124401898466641230428035464100583445705876633095299981463941655844070433917414032356554100050850396331841162167261513525114636554813583471446307756384181500666625193310372749277625881581215860863312308953219343034763034212782786748409610228964592799506400529620204221153946694689944806041103152490731378690382238091025812009557781925657445554715358414553068233741330838090790551192455673054876512673361675535289377635437550011285625813412201336068474376957922396243320952249342464051469505088291813242642881843257620634255134839941599197294460131703754040612352885118617546651851434292615948475991462261232148049949895455698530245323132973349174479090430344316031619081980203319103240366985432131251439454484363185439119964100701134041982602198348802438038451094786197953006644691272020255092456039842964792290673464348336810628498650695188511541938014431849622505033663852486441451895008957841838857718985178548022473342586092610787187230355037964596708614037191786827214142114929824336864813616452551982987836077456682893899097127927057834699911504435066254744353773441536306090272692393889205003164525513460657844453319207069684325887787353231040367508936970255139286764112849515564725656271507882117213764541105230539942090334620400566566454458312919521262173801032806796569927443472312240062709257228935400385846524698229367340370916669745833960453895311571706992719135770255410095736340387570452524543486676617671505074763858518952331755140329278538436909957248822629887408562528446690755596386930882333539531243262391991998613486211317643793046302839999635527094136280554082030417797645148246690798080243783924524379445932045794227556452853969628226801902343830858602124866004261512943220344864424262752743436750741151849579076907063823070143931973050112589767207836529929130752783790290984367554093400615103255105670887942977499545003936756513903859175423999958528223967017373561625629257394224585179855810615247921150735428304226938717416007310615019708505820769589916019993039373647964134582934911797191709060890172453209309549049987504907533203223995286883253160642939044434174788262900548639818215749087503711322649196149212296406193180269205434090078843959531477563112943790939708643186890259531263978381409093930630444705022939317504618788543331023700825666215133151526796047169920217251376142070842261331648337589475062579046244606524341201057513086269829937787618988698461840127675899328046696936258743682403546346035745004189710914853135319288474424195311580329583600675588349307001488499845350138319989920594749806059961131193324697810829926761082388633796983166600095715836275800826813522927185557144652601035798063462054647256293611053236362136011041519000076536688432303643590979099799521811970763999078400523303482297615657809958371758305748948328825035392793518063058708668158220033414307442841479948406562981499436204903356992920705943778850428155166908048104587667871603241501877132175553891389436803503519823292142897844157330396838429058685202305531811555638996583917265519445453812610325533391017202243276053251129662714534056441850048103279517013823785847320163288942015216235961042701674684497523301162056212923267182704734773738552997229376998477214453969457652260497449902084893712994153149808762465955772204005683495219346224703126219094105540301885897181531631900786524457984954086444479697077913871560962130162073060248632279336891052758239608214879750216814363634998906851281481428662373915041370141782744461082496922857208063720519491542116696412536983138594151408265322451669015255065594648976884624215134825587889914970700614064264200048743776138900805075322413614246981201948310369863030463168654240546653639438201665831079588795802762275451193592380911192592196415117087608247033253746417697807353153144206409666451976783897825519661976781379511400503804643007448457851835865236923907009158328773151545219407366307297252453191590579067801886124102485409676746067642769318364010007662869513948779887414845953167402936200872716038763433027578847052006163512171224227617655723922402706260713517623586289789907890103035069661467415379486634856155299484154326055181343294177758309639812183908753148707281828993530424124250651233521300597602070555961587954263092892251154481217155906550251584237412084827920018835282367354643655120107100898040414247687121349266241994520752356414914065942195569116560323246304007052936345154026136546689856978468497085387608995022185691413236678268662802375496064125735298024594323607302079471873345576652852935040769819718043240720162124401705032304788241251065342247837064597287594463644386909405727894381059628329592632405348255312527375323905518250027565429530522288074666032187014646033217588937385446089906975256048174486779448565315057339600849473357267830987499423243355100774168326922743424217224852064311964320341184222526518031032325806421399831222694146086026645432097518194298968262278642545224900035175351495271834407692268320661946837045098552187805718629440558221942959199817521855376305138009200080858502781029278585307537468707076784724402280122827506506588112770036017965373301525175872460210892604424754236174831243967443450790172019811596118276875154092459898660733301219206140849250539574783803030818901138482800396488115578282418101022241102344898939709688034132231848867386429228573839972456221825688451262901405977013408417679156809591762942159496773715824174578906393781181957602900448144477157916680807288378306840650735203994211696855213427225553927809724872937445046269664577099319192385035301153055248713790331805842867111008583188930593174872277744196391000250195018506331584098632959741204117027876590414574686623962934333553368824101147795883986086505783046168927958405961324655218230121810984549137893304901895287099749898012955542330318944625155288074847709463078108511119142908128152858036340689613350550091563484518876584173463527564395958152814675961564720069984112973701486871551993763070749636559765709310315643522727866576260175711355653789311977234816690646712340483036362951000359667985003459677932668832349859731438446019486167717243176425883168055124034446344991298588484414938642190925533649865512663159038004829336648722437812084389504577333045403104601131167751576396196376779652480737553466266875032213235914859001676342704464844732341704413529850573025404744774893241823384746822436432130811191645653182911881489633484521367841266662576724571265439949281688119708822625269907992329552113948749727667560238913518391922385479139377480057348516449918976690987285453986721971935424013544553081705288935857438648143140915040389397019424139089573769732500746596901192990416290426192339754886947666049956006221897912186962168841519551511684247949588121702052991401603520084022220442319114423193897406842727065414048690442826203864008775640689865645949704401284154909584121953467741606747546008464853694801268167114032583902644492988115008946425024135415598677996623672160188032068486380334688889470547532485933223930129226202595935960185485708991796278768348385968407794228800195180877599709369253952635186689546941344902773837859060780256749145837192470050638030650205721656128125223241232202481959715151530501488174647161358153967624832508161090364210906227411731328522188561680701172821434485207897801367788451247479304948259946005507351173444916917390372360680531089400494847600622311017671527758658053756535621940437629107214993430000086379053294501006224462456743739323512378469168616897224029067806533184867760583951403638668778738635686361787622533399612846467969275123370214410729845090996701369074183679425209797833832162410286952630753984765760058623757509286627495674349590854019872013836129891870806212170377568979946084083965738693138744602946538981662836170403012729372384670005904146440508910951971653449084294430589123782781309676467054396293508178099639138379524205099502815683615277358911006750108333778462904133780647490500906467204102458546464872003936496824198340746407835377055759494581893252382278106819653779985130498334421664050516815027748912781214728404150959912764741109288278432495470387933745459123853219315902754399905674226185126909102279521250320946706534032803018829433344516660491545476192233405845873572553730080655749988187512480696830102623072856722342068195162327320350700166316754725361419791524603722665766275093481293478439348327819867195538174287960746496157541582636712212549410962074845719909320750396353907710558137569340795458548692542687333272509013747931931130550861931665448397629573158175201108514582592350596228397293091037862613736918379099107105155854873096346925588829223622130331302991518023338320310790038714783813167051405260372768306952730700885130115787661531494408695997580545237537786502412083083459270089656929635549084185239932762246521466878026630352343978672841310791269938065432580471591958397956290916229010300447721050286037270204279185364499256054240330870471708557504759861130114461880723277188560285729950534424036901676332578582438319827044016011034550054287921897223007110302711164352172771414101175073538177372809884282817305275292577689336740010469071878242110056383543549670721345903617240182646371312356139698563134821807023006751111184347729193463464060647854709052724428891163440914583747281596492456341585304492722415023603620297754422861925441912190576025561625662497859435751819891388957773632122023287681968485501541563021426997420253559926645649116968168799579758292943539205787625689596581453683194487024796407625350671589001499537031538116912470080811276958991850187107501767911347804392594369973884373716844179525631213628901584169990667633114600658226720326245128694090256774605596634590671182595493081269786324696303886869937010789275384128151502168610522470444788582288666681978046853751809062134361741099218404241536781654795779899134454394968939015906845254349329386919764154026088939666461954190204581840886609568897460001827042574837188300372150463342134721596795237499615249245867390810796934316150975391253410335778349061889678405086711079862620325993634536391085629087424135119461620678982202138378874687467234694331508510536376878370832502515996893028887952116688410850999434511310292945706295742563688824015567300987058312649956940693044665992520289698118661431441672876806311771725062831775233062665978679866331082250632325881095738505264951639878719903124070399336197985222834604532951414232563466711449413439013379069850596891423860767291948592841876060523636343185606773133632450276214622902103927344411051860327925918657867514864097111837510844415581725105848835885821083052240820330335366171451910805664858491982731589186411613565609111440772832870404476624831876441299258090681142685606250227595535273982735666490504370382076945339494160235901415569170085202763875905602967508822150825666317737533513912124489396661603978473715448874238420998772795026765405160172906208735330642042991707752502270688354540851158485769277642455649215757131890635663522983646879790376972408786414799916079381809217713471156947979546345333614508293827531753250672344047084985520317702336384622783276392242649871614359380580298519009907067958701499550160842583061531242455298119906183403235628876741825155529684302811121912344184861784800821507490633084679375960569450272643608135967246700872007853976230527392289895617323757073620750252969545053002889423719738850927150099431332554440278805463559097666004571617665068463522802647543061639436886697949480675047792097032330791543012214962663047142132973495337384828721895747059117266935680586337769973955757548308554792446672002006790624684112362735798873806347178281548429715503123549804930609079875510929411752100830091474803468927999985064242902042963949703575465243962517394055462062827361711130885029449778550306576159720707384754741086608537051311554190693623370854228114069232081312636199099044483459975640444297881148795522850885941357361059199227941349381360035633212496179071961684612538653199175244807844312842096577464141597461470962994207382571947967914729564622289725353166075871676019493384673976830868092662923927851001048449889460674916974276062809816242681975471214090562498384291104712432244527091307555838182161833818816333421840187000550292244495706457968798357598595869454209698066451401266854483655715935324443684208146330489763916850607185627490429998668296469978484021074860048635546592566994678413960285538866619375205675458723093016661478037733088264925994141416842646415632381164353378098208204647072559480294039820152617258363686818288510697486641677889480827385441698123050302140758377447337919541758755447529432378605194691610014680844998725438014160063163369536447858996854973995978990401341716540265216914587192587367687069178752250697442492454124138879960406200153427985325254153657129869824665936181775284495785410571736887247244001299403306983896582845858019860997052450568504448175168614394297149586812452239045782166510002271657103619544655005126309840967110080202464306726897045331588274779682532954559683106139668201736795021907792013475610149359204902585321969826077373084329789421577133091239738757719545566076135850543166791803918317244210793589635776740903432785563765424846188977170438041541869697009253335519883199941881429683070064239615054761173907584847456448631814490734510486562240336256490351495593545604859793112787708668057754181971629766735561530664167494827740958207532465719201142106141335256827821817922621344336068237160459522586296470161954300778195795418496050734742497945801269178297504818013160838620439024098843906727133529630642404293551414046471065926432565168843171321999580359881149920478415731435948561586491111417759640274552800084686077137733696892645016652750360828631965388176194125934660769501642012259364187955238098437150505209925299504230466443877058825727267458978186194560468697910044908521706479888855976559213571765195606642102232998326886738456590276844085923646760653803557224431180139978170189069694807236497839425661837663542682001415273388561407164380885557601288128491321391630388998329203413776462722989383246632960433258640683114579398476517424702080383235993260671194717261061020269787810135569028653694801624239788593835617133633255660007753312391282993445428495892518652631280602985607113054388865575903253176787781108919661122715116392497969257996539725001431876876663792355345722592385836203522063231461462049205742903029160986107711107766787371793242293029814580380126395466091155233079672155208944933618230797319522315539782952091403040193582707405745088417929283671893912934570254915245093719855090575829721622321254639381831517955106750442575655222226621015992283880507247104741433387348674280487477465723091885731248310529751614616099480411368771996481090978502411358959635725762387765531838381044090355586412854760264337132298845597671671085637059617782239558433223221277282053643207806785876006881177246112953149798262874201730574350773201444534801405228734038276373810044357796916886276868293846964059247085006721780702666464978555337146850025742940000590731460944602638554130645681329094096458997902026292011204864053138019967194207610798133890480409436526988904655742637150665305867133356448997675917992194716470682674254049302884002039104805821595221327122247449233768741747286570937815484794336754240051025592960099601935206893809178789111861485202110825586939144659698011594223389470525012754834998700002393942637824608859718263570772293891218511141263448101233862289430823268359712265731252835474594204315022417479101457677637769226214285883865794773377638195663834673162782778928595001876521485808411941011835194365727749121138313375014874572056518692960899742578884095487450467245447481126815618807057941017611997831119713397043780492591032597510115743422187868211521481898642355156596000658978323677174914796710829519650661159392262418529518748660978836392670831617491555582311671176109462322678953379218201484389954402493823766774770318172117873415154484181993322953850996537269215974290312842962205832130603405808069224541609865370321677124064248553317449118296976074637649902115904823679317664688168214903012978446629960426256562012856162952534573279379279953564889357845710813165851628496288069397849309854600942032824764641903308394633508127547828496633276594251092034108624837366586396051683557512773062538155236940439032011586695615263339704230133689100674886596315526346813376948798298307064719364830871028763423022658521487418366732034503358820684564625425286669029575647428509411216147796256782913237479494699554525295600675024453572861133997191690100172459734941101223924442782860438955812673626583142344846951254340176366138776035567041620226131013659967104070020938754113825137593931957721689086880115129442518984085577937202438728733742649473759743712837546475613482514205282589389742827624593723531239285932218291133550240003100348367034150695759991923005002020534703124459599338832577726148603562242613731295731312898050043090018619478162212951247369714995342263102175544602219713064025570830263464658278736036595133832828543849518082999346955832390939392528651969831879466773441020697597162924495816673494989430549032849820360560155046688220174726256839053123659272538207581706430361289808018605490449010514706977285407099301195853447318448535221623629995671253432709382408957294376941312641442779870123651243504634529984976014432379723638820893091628390169650971912693942079388543576517775625398454376821322449378432267971297085559166955724122735130132575784111642166878270339519623682933819027727472771202737781971772347063730173280697232119393506480368625970167417875640244078520274731365452785996708130907203998601833011910411665150050659856112419699730470107198086671289616686868144042168641611532500416167118006787999524577430204867896141356481501746363654870596274331212235469819238948268699836007604369096557330228291733644685997985185918192070740998137002835665739567080294814946939541250333751239839294994383671411845856964248497002770467580883524146719936546973849331444873633622593931048655143315042559450808361827778374913113888322752816788999135786214923621901643962645007852617196125271388496477777304563479511512170313499425494820792729244994626098195992712619165590081813966901732920447410210186536484848998709527548883842818463670223159881784387094357674145903555489388482795060565152597401817562198999893594322190877372550179661087499999259455710301003085023329823216530202036290868526544596213832195872837983294912990506079479772688200989898508707180251731694561694387691411020190368105492068265104071844561280430343748960735628333487732777805625519324632824678526943224466148667668424204060710528154785823757863310077274690944883670192407326495232801547849619981210609699933590729527571840351966452127820082551039549327181667776775416811505716177720976354680915613669705744819089807040243783160027879478330561636237373663595725287677855091799804307636039017546473879155379007908460176264260527747868210009776879373889035933321482381039809234680421364153536131928533505780137002338992977539726619919575121916338130883441378722189075441876524583577820275371355503103925623569088186214185635163584633539889807496428936655234083700677659716924603423440116695050005224623691105009780811254230126846230057578890701997184080250226572669537131875312037101743547199274975952223807224453378695645667696592293489010000133279427692619714639884745870154299223485636410678592581908440624697046198386272556546178890194986323850435199692501983689331155269468557098155110194275829507096398895766490476660485313525891623729900167564109424559409936778383477343613432664471948635275674049488396113335391669170517973799252646072539292856739423523137169859201095478941976238055713198238067260923064975056577953890738211222803743616435137391858016121544376540710008691761013490692614261454107845799520299220980941892370101199590624217080345148565931804822974336994626788693327006195007061414501532255850972616381448085886622974498983022361163238914189889755991653800488317481652316931898415789556173118403289324455011756423813113801994612436462728263728536862699142412864603053920825790102277914678438450577284991023021037337010873570985537401112722540677504727473494221213124730116679421167567227836873415576568112626338299250293191392083862264432880522082533389958204890082476565845345563714787079959184601865611657184517850421151003120536113786701072412147367463117543662257705585106621984355022130621700156604513607531140770712164984752580061350889636469375487386638863187160947451282493517100923256569791678100459415881431472897882666964652846415037164812327764836424649244146596050652049506393952691956740079533890414779257621220296103258448684779558024144069870839173084686583605411591649490158152600891547163598987704877742626857363132886889491891114000855505550954854383893709257810941953159870277869291398444844352516309154131296884206370111647725739284611690022080326575935729037768023243183818491948728378153806306999987780474802356925262762009689811379389134937569287441418225973593583073902649922702475628368914461640283952437572918563314206728254348093326108369653447566769356984759668454791010833411215632834805965038168620719586672735096850703722323210828239392247010396074066896391218693885293903142153902316294444763693209947603641585306061479127411653649579209823975292588944016668840330561791860253540426087285365893403846294777094168613022191308935370597539266442013664443917019356632921095301978317362775616682317909511000056979373151064735727319361291286115126299841981267004648693181709007326526736616811424575225117016930004116444616842604336398847835513552670159956380710404050587733155357815709989442493012076303604201838026448180568603184144246188477385756184065130997564533629942703188129171995784117121820128265211325658535719855612178518758024800297101053640797110809002950799185418358135092105168805958747925362806670953332369080650528561023292059012088361844643357243322654830672683284069366653846526298609856023213853742243350335524328783488487513288756168295425720614871773923814827219440299606419858252091904400266163670779029335652773643260808653047488212939038277157847124269699365543355811579161150517403061161113115383794102358700520666629053885427571549450377995499056403458145138259126796209074453713337426003395414791525048426222952876114535563498170350469066513949306016979126508377870699374052866117834693272457276950171758154199522049896691894163321135284473649080924380975896831123447693987628723862975094884428867493308570670029407926381538508692347837376445899290322801648621071972241342467158650369936055257712658690486399211598469823227331326661829977923919672637705163643403786391296854593692295112790433392504820813834096806263917974768157717583320549100840891501038936465285374818217458553763572112444287834252976270839308245565320545954914187321608979224045712456457645133253157124651753399046886065133092311642745203027652082476453689672777003838964154523424651079809318774821237443869427494463372053852560842180485276870612862755488106564095791394186402920410645305250615342724062668234059103816064853719167987861081681447754341285948745327205335140443219618240583960241327381934582307015481909203471674868342518810628314832272535123062442734941057829638025478155137646764228001771767780827041226391081340710979915206611682330296940992052958826534415753352137008639037517643207574366280906197010395613751204765495943775886635737686251754498850288940467339212015944603702910926484792710341280729645755917100176726200469477259730586127237134634658001211172892250039724585119551043523787700109926428357119688444588110086526787152578618772732127963270769200928714932668778247810885922381105796480866754155218110004362313408968195125669867502133452728807638332349931219068695641058062204501341828302842251528426609789522013298553124348815786903360433558972177440089215844972303494931140891079515372991231094269795258713580116215279000720978787737261153971250123116095281212448321197376096990722451558049844795421001952809017616396751364229268357839767838125131356348577174482761005684487339823752816202494362539074987604451475851991039164577885156450822580331022220184471809057769606485029437189568198581624573068052630861111400902826287643268265694310498537151368756716334759174302105727508194792246312292787852585134894786570266790569661173262413845822914756234335887291807406243505415068452575568712403919817679155047606603093150688439611493177022479048752786218405899487117037729673240550882901226787650710588433131464537273101885830025013773812795302799513548740306412244388864607974792966528531318771329757795322801560481606157016165314325020221457407824397947157043202559198156733408272392137117637348074747358764958888832319456164213827379369452552158157484661072170390603294976804459724147613666354034337361685753399784183700994275299800569000737934714820763098244142796477967636196958303375191761731104808468942736881945259450269782937765026560484109255154934784648779601146970339290969851190761207536447981948402823306946069961990248357960268118282251690383839322516669310428385727159640161657880285625072619036442270522066504875758078389182299120790962831499527880364762377510232228918957486891540018083113070889720732861670237091343222847965687362764045309595811326377752910728867899834125957400172897401191843444049146647802934654704595977692303108961998820592564845351465026786673533534907367881853968637310490764318136755161770717019801751237187105515983308214801609583177441273575542077417097641117707157039959557841082017586376160628994977562908904104592909169949951050011054261818532686346488000603452287311876368851889733602997803274106605689867973773257138949138693350460490603398087270164049713459859658319563664363046228893402963253865991740980703818213778773722397978963016692341748345713110552517385272504821781280742761129380867554384353004701480465595361528381271603316487570552818727878140282273980998734903224531062964721425032423247362920682779984204965093582673308178713336989037352878934558934515308537804338049074902541079906660405131862536332389969828431359186179275764462275823754581685766585378270934333895937578671618832594185406888528670054251296414103110701140972577945930081871208901519896678535668331293297969460655078869515205892904671820781412158690060728969727010926165182395806612308919401929096664702474250021848956624196261445865344679626925850619335851389143055340223925049636971555020044868921661405969291103634738754537492179314404810288771312669823347426952865956892252324729666071907412605295070197604403871580473518083945970799559664929119765799956956293865404875101708421912313203298651285117601089036285744337745555354324459430187846013416598694847519717187133571189617125012815449557578807391859085528965142874530752325688940110858861416248838086865007778429145082770142441280361032523257594076350302994508144005731979269804624102989338451592100706746697411563158080680973721215451677168342408708421302492151791788747545021009018892719860373029385121653849194253306234169304382717785309147623144070641501236934692323015391088085934005399176556597484063567522160080115883889669178197864194127851572172055642150828099007821505570558014170312644761258904918622020273851201684564503612078352728500940996075285107987645799525911758882381018699786545419267561969288772917608738285463703287665188668943342716100642702159267543591459740242986253334239611693637629596141482638405482447920767496772352539603685711461156371953861826573982262736846320918215531088432912593915108820823138955978290209162661399798621900659178688023557674949235322030613575085232859837705942640418791166341431525248450223593097237055101531004629551181839709841245538493356474200351525798415063477057273001965624617642300118573406147886692048299623452183425679399697337460739186048773368190390299084476352204084492981107650132404648734956963324880000989772598571726742230849939187939079304372841820396292569789631962729244410578256789004549107566873780812207974041268073852036896096458179215707407603571779685128942886468241075948801042010467811843657764518985380503668840759672614692834391118206182502020875516827686083046255541030120536416564054381694720660405182812934880315111180337830453931389657234565843450223549451023084383337673165563301738022040941274297633352786533565462378046959812010734138581194911612150635318721646274189815505271939712971079734053309155823051135803130718883751108148003213308214220383476318722616571035452683928092684251851134489854822747360331212813428410661632519364321114147814963361840715205920605623479426756566963315569579278730328165318903768407639541978818171996985918312625066096065605688595820219265247118300405177750030871742446039385958525792797311777875753430285971926228807810934984904515674004927100248351338930492753937545401456695544059357063096527757272531138232355809275619539660137099040715952450821605388381899806303516526530311416338595920792182169599281445792036828925383662566143561062405893095479994461132099542517803146618120450332753858490952606969618034618145350064538170521512853216007526437032390702623934731297636522612459795857651097737491682578334961802875415904363011699921049725271903438778326796761122296362672697081997681775464070526210973846539067337725652515198941706285352403715115616155013306389489629963228457083082944825579995269267635952475152337963620523110892688438979833925174290993665811115398058901127555683848705640450693834133228353133732533327496502793820977758767856779207036963482144949327285580410296837842697003527838706295364634758551906808553844515966216124569449467645630723577815099239474132301744547512656526057102238890150826379727528954367829342062103107070421439171578227623756742313371592445883364593101071091346379334759352245374009938488765350526124447284508746982462018866638747718225941823254208025035959108221958792746813517595101414620714486105612295649348513309328090702577246965132867149872624286917937086888076791121958919899878535688336343607510429450760988693302226310908344433407692301313588718972089200527139552513664675348655086306995926473820918018798324431996216628321391039566623770429423856145075581702668376566396875195500988345910170007060877584826691177370263007740567993927815420478737128421127128637431220246124052084207874121612142683874193750837973632970495181954632400815183435688485142546208177298501672313968365191980195485221762974017619233150273173816292613394172811059810820703022135204224387450672860313208536146256857720010612529169347296773407260099937989494764798394604219912900654669337358671608731330727337739795141027082419458947262877144486125521783203905148784473630606665082931545572660324947388599618452855867195145304156732372359015428229798282036431110923758107962221868183330664601589290920707408174489020561651525692902887994191589590049170719641988496519359077573568266266204242673579214742702886273394890264836398132094361525430061958015015868645869458245285511027821592946010736232180486893825872410563477126023121687028257037794326309284213469381257910551722270425436582644454937703570807675263026479932792735213013056580451787195836099409357546632411211925775463495214083622068729055213996705135441323828154242685087671586920028329999338709690440834732485357115155576609416820320123091219403921482936908837519408492909545330451438331140907902436115275979484467125136568806731269401068933095857509089781306112063248175248615700242685064901486035311868876267432603076546058214931489007368205334010835208235485814436166498134217640387062645766088742370432981957019177682006964404467148831519377321508165563181275529431835231255622497233048909954151314772548805182783008580480655266147871101309879044267300184038795257888063846601625947699243198977569990022879855070289912183096087032005880239373043843659795928248628420555337490395407789691139601756399290986707186010442102573754954632585227956298155007662121184022865323051495452635646002197286221178139311832910107251469650110286428804124316366751775554937897729657802542059439616769643819285189832929644713400253160303510081195216180577214430884815196624889128819360901154682930317267238955471275463630708043599360743646732193328909217248335180902148427420151688808543956914464804413234517848549409908561618654957486546550770710110696266129751236348504382994118292612374340960658551965739682561366596506419080712583393052525232089165820417713920980050671755872574259073931252659691479004423609007089559730192695746478748293160629676432935066773334937797658825590225043353040737792291311599451735631968482089793640039931308966054910274712315864264077585990269146237704469394690798849385695956643120025068062503849317672248899447779603243244321500394856309767685471401404164231369452441385584683126334563089920651582974380882528820325409692564510521767968793324654148849020728401346691329494851288024324365409064750517304236995070573296232018964735646012083004297065255336245030076685154754791070867444938118164716197613649201452134466127924723346381366134394567437950660796907202806320719966482171756297287875793455432888447675680103251949262085327182636709636954496277560980331633796289318726509552070573419985187845612294912287263632513567545271002265820046536044664285833491654046416402282632906477174754734486460744442629195144807006868974570808494490878487849241713124137121085491254719381078800311348540842941580380778717595460671611405770557464835590487765528131877358267713909105750859535199022004016026094904788371569399378742206591046438293472738297404939289864019177363867604770835030042393712626873937054100281610673619723709323733425162131137689211311078465175308388285563069351384775606495071012063013691208823516724191200658754046648707847463591806699508832663471308302493985234334485047322647703533557623391445829500461773344333253818031916142640036196492741850037191228650951111934065873774994282824000509332355846405551628062587587104442966493599781822693188324392624540597403527769502996901804925947926652708125808615114540461227896462885987432556364852169233624395631944550436461990152547445780560578856413127745954603465635436792672968930161111125827844606178600739518301911920382469464398612105952641049677996087760647053623116379895280335382334010206009281299177465577777048213547277799601641912802220523033738468383707847742915428341241702601275126205367965204145323873290112682622918005825747601728619395746800519293461506977425491314369710128349536657235856324098519247178267100150263008872585963291955677035051512330179526063278747741309860820989606461856050572701454403924542098079351460400658057167944060815386839972647050860729583239754797948753804311428752294089508825646761665344928574689656463474728872755997216492556240709727863506419478458888197589329034316641947398721980032342614087322414155020437943027214435522526399347143235337517466070741675259881522915836108575750597609644006821416816035578568595897465947367376174830786514927823862403266115607804104476123166008704045881426300605985814997103726493392337026537640150617045411133252947268743541897598490637595696465173870365661065569488052280899516278778045766244960198646759716611038194060887006505506459785293363719646423955493705080214464531990323327308612826622636079370523941001869813589110126242227772617112290484937145844092253267289849017463482248447576089163482360041245081033301359111390786898540642709998030712013061132743816050535325058782963072774407829709951760675805155670404912171091591781979540143714667154272229738446314760703276125799633346815506813378723645108616455554983837837496140235447945857851324213035280564120938971819074451214852065861530932915681962675140518995228487776239651343916410487973677631240890466710114818816309951529694047770503404710619858141058751509417376467949998793605106727490979167589573043431014384199399148311833037974512217698679686333353836634913411970886201196482788054023768296802128932153066262078913944690004107870232515831389063028699214533789862629584215452001435767589075729520878111371116576910248875564836483898556546327127388597669415111285433893826754101852031553154478287519547293456455583094897626082652086307297822263955818005325568163111937867940762264453940411985859340930719247415245083482736234280918132531248085013848938537728072868380043142171121151037098273816099420846894894369108217659815963581016477999588543450738932132548880107710502245330062382841465696100196402863823893657443784385392329354900365847186563887513881557140099294442313046462152148818090358518568984363249181354416990118205932387351264506035533272197953624768382537949666242122783839952449979018229956110131765890290712319620061470157100173107153330381172973410621909305480424071243441842569154298259592296169086440626362537791262420978849662926723224904387619351453605947563652073152078873859480245318017928646380652570491173535141603352120475915230219665825337232689459152772593034728568485523802465494592654673836598629889729356154158648884302422752472499068955766814193198457350354893946966502543803403572164959086298315267569128349259206847180116395644630433624488985543736455987810521461010845862597765159622754668985238073720149976874123883300279186709982908092072760654391240478675901408708165236164648791346249004385702581916616948543666730344956323704685236784151799172774603469271902592399092338868843851215802649700229736687287625578194894205543139653004046045184814795497384870764179545149633557287010967898230245633639149969887140267947296629161828636064803672934534207203076580791294756663302442438517747686041506375015489162370537278373805964411861255227342451500960776186554567018816056516133583211818225974072842970563335791874954772696346261833669941593510582577292715486075268345510393692396294769179480350474092287036112790856098501098344061241557210463383635873133681534428662879552846244519713994565504946182947450208905888183649152191369142179606817033522944585265165476068460866750027376934669696835076919504611028037917550341595651998336869778938169556118491321402234929743772812893003267697845820458551607311174045851603941040723645534643790368772513564427995134325283077391545106727058592632305076625827648138068486809137137877565033306446804640933900058692299225163352347641387207173478660941178323966423792322442217902749950083510235889412177479095979570035773090882740695399014730027506836230512639328615025994612103250447716967376161954024141864112127058314923476158582006001458558444112318954736303721025808949620454027530943612606416037681592064795430183450670832541816433372378825868290246533086907189625138604728163138873872847185412553832877680882063643726142642112725647649718876392069462435598169982684108319575485175350547696815350669137296031047611356915462251628700451411841905325548212465808246500277664951889988623425406983945718685692629986471410030110494420614515488006436344576028762229139932941917294380292396983504184201832853441398582122161460707074193849261497721925431977897405337489388348065412613557361213490638161489295001054210455245657305354394965583409295128439628217470589632552846853252302151571396383972685484342089168584354339755926270317501812143084491311261263876559112747916238505068109245823958710619612264077540766931010226153099416737311948279817775883607447742433970937215475848882765557883967216936710511741711375102718384473459103815507563434503370272481059925697301607174406077407855632025378171140244637041107319267053352683052884161751795573733170301695539189915548321474412451394383076485743490842071261027722928116912129447210150383724466918868019092301243882931041445438083458397392966744086074978588417370872420229260705532763296818729935570049804243786677173111612764867167753225444289942967447677259400152588014157615395817129382247646172426664912448454309852559858625033080322237073628830593365862034634774309548345428814263032238399620939423358662884193757760169123692179082146844193632750163224233812431797043265875991663098124451483353339157610073044411969199935238344155265205339466045500616587173522137759961541301536138749241767242957723604034754088833078109523299469854143728811033940036008104331974662274513860961787461341606964586375522794204505173332263946393524546449945687675645994804097619892730333685804282641467405286475800860145102737732331569962373245700969691247786517091433401303647292702267563232737893735405662364874728050489148770731690545893064516917829952061724829452244325243207869022660238771318674493466490558556886413429399144936771199828260209889616738722341296795297415875314403085068640216608383370427046164881821973751038262464891665001441999718930071485410925167389730939319977087230921810452967780516983908921045296713342039425978990141204200472114763788881253179828864153366837564653423547839213933871288652605474502320396620959976856855424415383960202521189818803271413537181213042489991943423163614414485289861870347301787220414756258234379712169690422203319903600425037671049305318785153299513969051490003684978998268887143293699722587342216405950049011849871955936958568952842734354186352218821604335801640812428244061846000071564602603478620982052662409634711759906767032989533653185769105338981821452322316937556789088042259436396824568407971529851631353284920250839090146529364863877421153743485806563474804138938792226474285794581387316126584023906940769544599943036754595994124532789487601864926657100663816802571394842764481498230917930259989625712919296968607716053727385518011671826644877414374250184434518318673404128394540870635217613261868614105126564223779913489912992050605190124531679334392113749541940852386281418540915824952477999583654070992466439204578678407038287096586274898640212553822795558094077637277620480705712951622792148738418254449077301114933563011845631908429976503545856913957132294169163174654861931715316437979595825187795316960917058794965936691192693006465992193780931727298957366439854216866634205252162060063721966529729038558362124723654689927094978427239603126910251764931348712704382595726212860978760771082929378870265476400292080703739660853789936719092666774024114463062009176739802957414775120435698583408098881295779814898490366343642040258402797557500306657603384277132375697524233141879522026539513969959923349623323837558266408705068329901129339440913776899697070481162322161458832943299248507795319145165151877211698658232278492072050717014232743456844982622873011338007745105441061186281358979964924371672687540405845822883419276665993430361735656109076145144403334722882567084671420326428637562012884792148271035883110059202875802961062209002739087436426890509808957567310338272380598911828840301863120669555325033513899626742333693232623087288249638441182971932946671227411846017514361657585545216287330317214449937407238477228028695153894974374584799373883140537807232586376992875948058663818673461786474107709545736329311464833808183201400493117205544635880873874929581227715485290494394206944623361552189709356793424572201469315111755702350470326669489793998841569340139665610513944421338939175973315953601573842713315329799655594987136168958045730844508498147016022917562886494495324646503547620377362319336778530451668147844932099637977973784794164579378767212140154627291294000715020706704191096281095340771508554194506013915207050330780107250656880147071712296382049813259945580293427007945735901090038020330412150885604145144352832612567892004092023032387556902135417030366596085632075585934662912499431825719599392458162077798108011191824388523998744226238130896980556097018668359852308254776249669471966498472281558121048498640242317111767832065088289501408528568765934924104534410154646489042859442508938189938549896756908540947784221127487517336150453157212891447781370336260595408218497766183386489376964127798618761465344389894315453122824153589189451389797981075941908420332235651106539992376671099546686071262688546333736612954262348815047239035467551600171239281556556084589971101085196360088221034277628978390359009285962673865182379361578479139893281158432359663710039787052979391713580029028929681476528764019288186552977347199531557504171342423820230215359865084582720959813395249329677869280167428373078169406330312729839321749429716123651240500701504675004371901598806434340708584131544010365916775072353173898686157058229918952789009942558701656952662946941749335739163434303198991844948317099619913454269126246602664413628499931800936408303499713973866600200322441631118850414270872102346781206622766173522880116107725288634239843128433517798037710037807614616499907781829806824700937629882766831431072226255345325106452585492432282232424406753605571843551863728826082101391691475751792478212157446789823059094025587500718514192213761102183784066869429370286178276642507842864775061269401775149255428014314282558138515327850576471491762430830659669790816852245680348550978088163576134517384824579677550570853524913416050848518668634105402562484174549315110128598402093639278874191498935972739245711336539592604475458208011685059289303834118283070084147373977184204206346413991530193876472169791926945877319136600286082600843713600539829671462919084076284173088797207879713788604448348579301011486243755232185021249071327242972259830711039647963299696926981626590662450397633544420669261573980744551046809450117972672653597308794388640067195312823547666697213101634974731869348115395024878209277606853789477087161489965244970933245373628268306275047778390136495356510072678433352246089773370345452117068488724116718740664474671167914458753751330234722245553160591318758171081700021647474654641910464477671882664782387340052933855550045465424017943166460437117646512858937919085273892428866620158695104672373281015782746272807463156558190835880994742727556898926245008219599292503223236943108171764613388426342990589434877698233636635750423906086159099130721712173492327779468880974998056410001195482524895233767508955955967394660140660502049761914971580058558621224983888114318324291574278544684042364605418699265014567320642492645685432327685567452826152005766290002249119896285341047157935546060949903451356861969019843532488536077695697503067585751540508451877156404324922141602673643003184347371055199111017909243975483279419326766395330250802179405981803661646135645017306289427111951961721791684689134792932618639620379318796747808038313489237514736849379427918107377244453640728428859037623944265181770458443174895296074568762621559968192888535093928639273610649820735236793044227202829104619286853640757860240016649599772908574119786219680231666761844236352214993450337332074191238863850703214694611616142725047301307812870168220368365670001274388692313194066778840218145774305209668377959220207168893188545877783643862920125016844220947043992246675834743109040205335001409028980616020720375672413879728935537428872296870012408579974451612491351803869641401593175542447942380649564239794554963962032333649852385753004174635493130877315369439053896896478300504309686375544930637247014863642046340172009376097079718836147641329578075594381550673552663502438685573333851163815207129078223512386636955497529905457146512902484211561675330613949744640150522626946072659721992329126050574296130690206488281265339231133275578122560264977439166466878150500795336887836288259593316662091075021215783953182516820527856329387003088748160649997946183224405190696306530764006483572039656733231502324370734235345917341734797868059877784209828788296464848303024540920243449805135612913679655948810966340472628747732977322261015859106597281335850917589397039644041260775810295251237542016988911064200254752780985415593442172818215413322834646629838176175129768338905615262766013903797797621016646774811959831626077044638397301951999096816533219703066934499036830631594676288341843934194688523192157563833362499271866970875156873042376772160113904996204265354521603998798764933395301344955597029736122249197100683889758156665239759075747758060985796757553417812550333487273809601103462360492652553645723466545325353057736500349440322366546782972044593454166757844661170621594780542351703606252306103440683102095061485728156004480877464956487246784851990578476804958981266998736376883648308570223277475189440427635615065535504549457994479878277513205184312338127633982256274143706344421853429285341861923108837329044579024532699305453949113314082073698262486536776375340158115596790306264025809503492637364667558683196190025251921227386151219807749009468748342336337809877829391351775059485440857771831327355706610010891640159369354178916690353549199356338012898196983744536320187505837231494753621075563418801187439106947570872039318823804436833570371019598473386987665313286135271540645689151118740793320549837497337882212768851101276102238548486212135754697385246234695145518534480800929668453025486667164151466880024660860589744627540571938753842438242001905221031043790376344016279049582109022891567218320985162202327572815676619118716055266114663251582458414073302199486907577798232505993124723602650412275705629908425277983030534087901622327864953715746277785033872895760479846345664930004498086627222853185976240718209315050386110977854041691793123230850800554446693755473595165293728057188471456136292864861273882810057879880310839585042982934249045758045394078764997028601171317801362736502380206447556456164893015362486999472415769713876644419909184577934489036763780562482515636618761003928043730461975542717862142516649637607023866045997270073768161959158609974691575828783399777871874637545286596984161856121012315566687900343936701907642356168040108041186253138260096581948441479904657556011322095100917625303966444720522255125261108906363345361030787998683483737917677366339670661401278451846006874591251888248907337618838504636885100066235247607577757037933380886737098850082888478454606907408935486186298889473115006803507927849930891775658428060208067339576205502608015464109384669053172899134311810671099591747337659407310845374001586829685491190664999182949304156684287134670583360428941253696982657356625651555887508586297949979569080514493931048993175543766166150472474292613696098861638399090147120261294593349914276990357976380337038044868848913179460965887548190757112297752460305533838617494521044320461861650637937101122745928222246797581907375433429768033325064122012040165962812253167123901820191748791034780331948677727058684749513754693780305981190237710719630176323282976801974227761902857763806806947193945639010296881955748195269815127120519266359895786673409223045443538263358000607753376207468599155572314791893174491149742854537564030264649227251126338062764549366117202821020867141311132202720149025602512259259262772165065998337917354760418185187102065068903448248902117810923411313021115798998647256330804029653334833035609273645047813622238379350369938822618070045109803051537878921418277044528590514064293992187987334608531187508647216890513929837556402148804854124369861326050442430071248435680875987378970429682736753249344029657069229980247779533036279311768968227668077079450072210305620053487697039532988966406792855387620414993847390941864306873587448240551868413680730253521846036983767773692609820723924548866060621346380822858981624753759188990786472737408696210051018015190226940404018504172122737463749556738032554395400534852393270180955700574299580433797802232651436332334918955688830042342266228529864155252677911201748889368782195527194618240329908597660819764181882963101266627822478351947683577454452720722206693657602217803010444632894840879656626992128401662903030466063309273594053935725454040096971813277811775776630899656929037398939399791006323220314086370912548491941528593717962496412663913465532090163411109795110619391887437703817705469285269239556497428005587203125415842516850873445460561577409850326649661344008577956650513785395911983053461753134202920371743117047452274869176089243574739610906871514213688469395316159751463323886227066158297453834340346982776933472088595919181494133819299914432853825493121394192295020942028967190036468042960926566517508180917149389403391878155153058433005981288083534822863183532923183259964457840981537769199808954292725983496690714956999137599445030645710793975199324087117642953625959617452493873977813883835279120376226591134593802379915371567579274159040332373772030949813872515006421261461743207691603553740280821714887737517009991339683670721906616510442712728473857611055669715855991888340156721018324016703120965643458159907353358191142957283302578836715951293007514965936596414888466185835492090924907532185708206653526735695727082357464521661389842777096659691271338121580151841677129010484818566825105817746394346545028709550032731375139353711322582565929990306991598098258924600201803850276117854110957712041838892324553767011357183430057280513505662999070090307317052756734026744962658933780150207092182593323690258411067494042644113261548417453741162889974543728405778361248107267336832324018743403576017611393726175877928515326202797903438185790779512016400147078446519775492265194556009263975786839677451161345953843915575412760807997679048638362574011946315972828332074055189085296090068125878708519639078414864952682485079753626780758834377212368818766557216845921448767126917000566307139759631246702416586828385298539455302692575445870523836207370163422975505680260037620089388092613405320530331327825632914622947991056259224271043493542876434863402250064155676937870314660387731704368208762980218730166631457093210521310212445640897591085223599965996790436040593196365427439589077805841751529101144492779037217805494836888801810893293133308972344245160559332575411478721112814236412028753693984534100252016650127139018703790696310829654668857690169316171711500958743061073428436452874149507045254981284755601189845367276471509503591487298310595905099760284603141935973938494618348510315285741393212861083645018949634254816503028437597795483029350476975829137220525740281558113050323559866381343993828133384197785421236139841769078991278769398713106280641330913871965383772504957038420916308193815353709979130937494509488223992399175737325287540320100611070198267532156127099603873370762053797021295778869473598996157628477788519000392965021764571071377682199662304884989835221849844470235402740537540207135158299253422419219410550823195989611914515149997469441490283253121160149492133055909574585637625334299029270057646262913503709651700433574098181653208973031173034391218428701442802283623617273126800073391424339628476593471244492064368887227070529197860049749305098986237868081431481611188506350752319616474163878272477298084407197633051007333695339298568564807042778338848349395083439894866080545240026320101343798462938446146278743094655081865572294463302029556910957028425000325666013648981190586302297930943988386288636400078341938485037728782087108894928453882526686030973809893737742618490462709836107664686305385526943172684754256956107763974044912199520377690248852585926231292831926842969508775149257623367060444059973759451818019800967876010374880774720806041692323606913702500491261820211073688946112183978785053694184415493621575132039664917139652276399643861816659540771898485096394333811821239504061072514511186601515727351452832265885519759961066237551841873942469360265531702200709091363944600898687581029901880683654699688080672433636857237980429912779158212925462288912139073639948711519297584678499940680253210332434044334953198367905486389946382853560365060407871464694548991339673110848689723327120799101515229783106317697804488344681839001497251923616086429208805305829030077523404185499626188332189349298000243679772858979003904682465647659016579033330767934935433356835375525871465833219088500148528888711129879365343718872983658582775386153133525516617762093575369304218677129097178943738907030890762143220945020534222723325924314828497359066070679304130047993562545838242532976254669659012419972974439719625490744682172693159546262503958910560329285300812179619259587480693569515417090137448719854631332943643589539154609530673905517975266856772139977982337493730633138755331766171818977447228444543849344012208658687628280973541005013639058318073964844663763276326965418014886049380876229069620753910753440754597776650445894381344287869329927881354615964155273784688725757094056885624783210240930425224004306394978129507698922338111828638784536406644058453153660642032083473490071048730013762264620740918499424734644860608407143071165148782253540511168739481559666304173241948223005789152768860109742748563746430631573493407653676808156025097580504681326181495422671947798035318828952342312127661570508671584508590274737410807085803017650378716428930812739673656240315138893573129939429309565400749213521996801563161790668945621321050329242563015666955266895656177292070401913715336352211740011686669919287477165710983902164636117460212203458580010092279494157280735224735351198297917261745955621050869439465096467761024596036002727617654172144325277015247190208667201850677636333384462984212441066867678005549850163708539397014669244742956088517900106208877618307332360910694578955994147903445776575693289197253098860611025209304444539418635461578832542430496405998796464159938979708840453287841294302314123453712301441724528157986988256263618888892088460428038042370602414189944833644488713469287340364757242525934879140837217902416546010409394223537471871390594540859125601379858852920033931197181704645333924257126737531933059878145739338318423198154035687260949288217910708793987617576061045415675964209701057650148981758481494943008101985597310346455679874971170175568728811267804866643673457321866748876508783662958457919651631336130891023116744389319762200335551247752924439159244803053726834183950560757443555877350414363458560453859347779994880631033473987487336490549151476631124753590418752736881872024117221669640145931602243581058944200935060626925412966111653855973996757266074209237125790986840172456771062461012072412021041896173133201218786807737487136934090028619816718231835754546039366814365588488439325686600630931947288764826217811101635469687502921278606661102560583260609490076450987849900520396629981839926022793548864813227065772331461168858314338586755059089161380796522941552001835570245233029363581454129533191302360260891798527288521192291676244922876359928260099671742128977191436979820698391492402723517347930186210119010510580262126944473068124776679278196768815897894709102925779069058758914232026425338056633300782567330414735687247235897820054396663839622409502244416220553531768423011374713468723077230986991109293660858234130148461983543308594440023833227559307891101122257872675701896398216071006015224439073881164200508867106625262440496341429501931217052768253636774206825208906234785255071686779998641823971206372048392817036085130591363273247603071468027152391796834894131493081416516050928612659844184901502157064173838115462324722953463487170293377666425744395602776076554242468594710108055103105985466852669523010341435573564069074469435384116748244166260106511088729091103146386048220989070617681029181675200141656218077661330108014934886911254085827815270507468411416892162328524084673064293777446495409625145721080465523990469466257232777429788435777829555262697625475170047004046939134927032643118168799670579593855924727491210736302760688933821803833956997115458267112873340773461316691375232622714216840290443150204341467128253734776685998264268555326024647381103508148847952745703271930835098837985670550722161809130369822237445357961602506553858008025198715100568688664615163317664301822073539604679977320638889953747520414207976334550978158605846422846994520285000306072271881110228182452894049056066055901478408542037574031361055538314315562712869992716429454918169060985141409574071540522630951068095984234077304769936078595659719068645743153112055800052367533018410286350741086199700553457034980114922830737343200261691493366862603936855088051812754049646101721244381617298777785008534634153499235983137293875761053618310412894313955867725887691281677331312482508368963967299899518068045887675767008561335358886177794519566431950600946709092273147042289407608154450257464873889308940208597435524938832912352859831425883382861730025041072827044886347027001468878775502628134822279128385308959818270018542223077413816456245986612648622226777657152061147629275418881361933203507075656818392295536846058010461564451095570483532872836436499438055912292548715257906542665622691725276561849547743290314871575277023626312163595159326393509834656527646018557728386519808620299739764519335385883388839360121873513217902641340419520255444185865378494622964939407719276558088427024214367682742277222664259300932942547240491093520459808397892379876300132814839721344412901388065874681364440911753774878554604749628312313504252098554332949858074656322662578654908290643686630803981223378111441327165960726876493409020269895432997711210673679529690623539621590771326643775061181904894946292876216307698441561801471277580057707497811294511396517110759290199776146148656883473668485240409972709590437039589931323016647571215717255140818907326325697085564003098810629181408707527170628616110715134014473994960800760290510162431584863801307839340860300824185977089801346860407482780144817107392800258883388897139518187451452632239911011625662782486223708995530649427769044374488234236845858419470821997060750731527122318519775963051504838944638306919476806418853784473074377219197228506906276463306364870531136186013340687308641385418428715106590453929420265901336038697064415241266450587988716828164340753256227935604076184561684801309047015030496792937101543578463936393301820075263015474398556025331220670279295852591701606451427907430109689537525576273089608375195374402049631996650901607121064241765031850079582631911079825981045837867596449226526075829510732378742584872049246712028018843802041075392191053027248997121061757530848357146208180678005618109144647190206181125961087356366167934014100230262593178065850664831921640126523724314023241853638335058202954823037853648408556892292535048391017370353908556947007239879561234063107618270343261429988452468747297043805187545682371220526961716443944124709191527138816931854899966572843811264532415996739455179283752760650726447898449077211545581639585411054294170265876737619267338239419564056414600791321353100404441999702864705828594861534472416022007657823996023059842797608450618208710519222675241102982372577162803102362562081027529675590008936199314978157942750487128356991099823268823151804839882483583998587443980839136939653035117116474163066383352187263239595026061395550958753690067977275284771507053274058732680379977372311506840742695683163936988358207130255578912158843308864253335419070499773967668604296986905457995939341977038692714471126556634602926486388846095626578867568928179690074481387097717757938091279181279342773684871632064888167722615476732692384721958778107969722133498311341805283422955619469661655901897243667963779654959137540070568224712835053182014707661770742129177723250874129291484285209598477984275457237876496499489206009675481688622841676047506622915842070735655782914666454732844537047470846356774945579730501371982932634471642114566182089474696456772479957015479603705039160249887724639480371728228998818042513513201775507461503104411973382507194319864414337795606661383815594076492726078165441779633676322653231600802413391154746347898108572945077128264124803018105987764776351722692282578164606409598016315388846732930151315491172426906708711170700396551707302000847216674767956585113426909594081567554105976750836551830888885093641828332504514648594284092523806539020670542242316728860639919271365411435360396761437527280910119380611712510618485373624791146833940223705466733931610793503874071937747253072228681367287434664495852367666567969101770349919539723630189937451422732191691042268391749686451689146791079918360547633402389726285525675403145174809427071580267973561487810720844015047535173362276236762421024340052662361823943647368978514404584839383451883264168190177557974746966748257958011001974847391525570286430628774850589211466712730257422312166825956891228621785091335236948032619571200724779802410337601688360778098755027520616403176799393011281302107864143028861626484474667365452955413771704878920233793749663483033227859825601081197489007841090191508500631499262771069763025932936308624530503046595152184576788665229763995657530478591509718364179267700027708727874521477675893276789259312214116178961703954090115112632419263447103645737545610195362924998587275352733099550015327153640322017263881978047774846840285928437973178460710549005293890870548914353178818565440592906369681432581293490333682083391539840097104252571563251342759994359248167880906444533763049339197469318619373973909241537631830251503852676773808461322751767185134981721660421850507128902657393678584301005201367835896654146720800754517955466193208764562665279787222266804092370740264347218199892033541673198798173523871159393384782778027347781981090839939307969703529664795689926432022393832193518546561112812482140923962358066031158589250031771277783515984996504061076176586767016493801839679525361916494808458746323961162144290239802576656717142027823869560996296100679504630498990895414152899966363038173250129374139740131333748628648326504301836685752219070443081518001589378085091726060285103044310220336008682427299436027511734925910117330263339125169952656331747797792347456895889084843685180984269010629992512500836771753091677204834213149408067783321364586526295831009416846816427058918595421264047855403108006667716548177777447441743819355090126408560711400047692290278121471715016043330185185771121514268491471684280979232774593519624018380447114611222799299439699744083189106351569343674156522870688417585940792007115911410692243274362526629994273958090250415545879131091472592733470435523590569781995138306064801889309993521019248828371550640808598943949047366664330904586811831136900180568152233635038047122745651928838542560642643810028063968074887167101976455701445427959190621647117442365665120608080719498415505354591235022614737264374884497605650807736600202198041684043244591400522942379608120436191102796809500658918881442032096859613612737930360903327583802814961748197792290425465014712345320757549985757417484871211062277585220520117606091053545626872663703412372677134124020415777262813903708369990712067204133356123685819605513496878730058929742051385964479696333557087475802557255814441641841399286387427190520914491473767902962757430438584248923780237745797410237119978132319321716549240192037097273050835036130313462814129999517248832364322358554230824539077786300849910384031666989699862629226770333175959648271473453671956741600694133401509273188738785785497476823362878224031336148580597896593365905691366168203920104765693127021056658443282248135284079845972173632481949085539787575940322160374034242640804893374328091376062104757016196961203085358418038037245928655605234660052924487272638193560098939806695017372063472365676949102303465567377696213672099754157820278294817738602449322456483601745809810415336929790787549146735797667516601540788958116965615097305115537310171702511253407293679130252869875452864128696972498116125054878084079873547982815098844754415958506179002610093670324320971891667849740556577462695290517343864357011544909297424486006471947785264715597142139222000905780528103045104278683154495700344123409624307807816660914684380082422385455260587909613131192077423273831610145826769595075010885419068140482649263044269961516081654965205979673578268142397364615621277879792112087803186754086423453335909141088682798279125363380272746008845844494529577833825952600446016165378574983030224225051761548881585884961393890112752845696870079084668055431085461242381682807256307329453187323302360112125118537536563582470017258227974817294588791198844887761946768400626667773142106152543784309578275006155770130546922497896923100152146550632860975566105000001186305571060525616961288070816885593200574056257387581714568129203976002095568018412513949820720177677616573525764220672017950679722633552984682340767089895399098503960529441501111341179508484034073654521481233012351884011634096928019835492389145509063089698376561174550292975284795604277657379162759306234854191017971348272978819588798612072195894150093560382088518938255221921045444826154559696911072593940894343446541362847053921486693996102252284382896120788929736806083817992255677298157753702466054428622679481505358911729835736830492094848409299961371678689180748476926249289800564981882107912327956942053099779037270718354392874783022362580630840325995823368297655324713930138133048089962016237476277996161212636607470827471824188019947997389402224089900002388744910352879438380398817573646825239858581073366623874575276161527360098450021755163077074075983073967814156238703599769227435924875783665805081487234217043507246308664494341709789582516296468447256615673400438891874666366890112690594249733458747466286334768844740320048282648565301655627967451634760117741383087344622454099717497058191287093262730974106009208667663576257017623352089593548092930139960051884617948065725208855884269106036190259837429874085358914164386180438268967681841673644147092327403646952616156392704460513346387651836085593015538908273160460429257671782801164418986350467095513074309396133788727107104819791464237389290837148177797847292164905827010828229276287152782872405682802064950609122109879164924428347295623221148439234273596929645841221604433137151738132438998332825117569022780739648419392268407024888499631984147082968877774711001219055522904239345491340650268599027235873004621423055573443320789553908065684265636694952212715129951010409687837377973091664243846198137240330982155804403583189136396260269122208357431358439980587135039538069717320282916697027525526518132800223388287289951631187150542718165531322871412169418594620853843222223523049240797505992834439469643308979938351006920514323327284887575088616577519344877173001499859982537985860766731627439258138441690905371222614242193736995978605541529421541374406212392931451562820744754998574988206456441788013358854213485977198282630237528639625231417269841431269993001616122137535031566538666676626210244575605432232468341979594380790323463676383146124329202293421525461672845918992511035295303532285162465656744219687586448540921861811158342936736573651977891043177074111680889610097931387506400590824640195228047777988582931264549163454635128762357255143373473633989192971028762293781984437906769031187235822740342786973814263139493092448506690957131303170892710918913671280211033268292791565637210498512502586486756762157233202742367873937351793014659709307623311709966634637753604607617307275044280131142231255832274675236622892886637979749002795372706682520797416681112860765056578458728645911098513915852692191000787958580826281517849624007191171356443452726549330604960877310234203990826585789670372099853972244702764323295788496440629455648312454540888661313736616208612773660212866758611201093634091548863609528151247764365812218325991414413652435498830411142915680548578420952418696106184345795351399965607803010005802558508860269808937539786531271773266466596547593640558417280139586798404308391405965022178752736744407327700618036838464165788300715955633966460532532348975636309208457591280346168478218171578043284587968165055528305590714398219525636948274995378499947596180725400527638206809127251275568003224370808519420746299298139037166278564027217910860964016159936255295201074307466759329736986494006397816657684657369565728961789629093828689918982874311194932203206409304197776453631352038043627627374056794167201573592931711703831523944931650757300439454995146463445153017607264093716089259801859498214842287343605681349813169984287561085808054133195536091231070191622266793799586545081904901005334350616117003112195415931227615371031661182010790557045433874040306525416403169255837262061773799627385970329149537593738525680817435471494326163887833553613058841162718121089531157758359952879233318611810290989355863038024369478046884393712165108698009653612438206774703644826298097166677264822873102760962822080158623803236476704658841556430681576473323441607763410526158661485846154103525299166433016274295852150118635600031490288256265610831790001419216694754707918494411095293218566851839880970459752907334335472131829030397373908222688864627460780025685976288236250001414391057830917261524653801361988859130596880038574988541395603063746255731866622357275701152481525990809737094951648448451672769498559574148244056376195184404028612015950929962309870662750749804739858076957281125172488248355166887984411449394802217038109517179398931475307042198112051292014089372996971637255857916819808497878056564269341888687581194826039596452476124707114171938627902812324869566874901834680209012974669715820022323253501190539622971291189538688928315524869352099274091127830874498724442665134508654679467256380577652400983138601290672838975364809461112636312030188913309169967851083828884808174684471086159523315856711288498199990335868061039805626028251990953213145011786495679317444066452473379719127096800147754675767584448177647114607867605712042592363103953341253018362427821654182316615762858796400020140551860329213689341540414258004380543489762710479648482202435714063785179854612498011731397169118661149344281463126172496433454581372965335101304050167367582291825613507340769441633028393883112885646468967335532005897016632074222247515736464099273182472100540510203505848338016825117254579031139689324275350691170224819202966508785299682194779334990744960514532707611889966698119033348511916332116085337014113562520390463827651446219849230983073260103038521359962625503480838302510480451544319836272916360182089864730899141850334770743895158194495819955839189963392405984778934727121369493929403992023279434806510709378550225942288080664905636249937770361276436123991868350622734210624266277627833991622725430206209883778896440905316049008452710991500113910356216197546556300143527500935563725114978257620974612910690065425416057525783451733802722046318711014974058346280701728792819763556610233705255991046948991368159523037154158814278307716087622537863968964658061455307166088311540439790193107346592790207202322850190631478220677181836311532643403642570605523786996376182684621755849817331373611848445092885571514737256738003936527548530695984413485912075756528225345970988601069652223997273210761890313243087022530730588476378464838436116269149825033713122402439256732599413114073858251777543260146242222140512337284142805063742316855128348177575395081023974079672041148326044135440006872833039890194180342137910363893242960923713309249188204916908626504563086793093845088594122903244195438356181393055075585843272737549661259864017863170405107657921508432481013645100485855660326234767982780997835337764639608968075558116963533260558730237548162921368039529732454876963103264051034930890660780444915820653875200195438573161668806146865082087253014810998002864394290502653019942280806908765442438346772818763069137574537455014860497919080090893371922579497665776689979948953252477705321555886183253648969505519376155690141321805665774490353244137524357197419840069006420371745908745095815062991680807710369395473631088941451437175071348352425240204089367157368624611630207643608015147899458951132842290671834953348282719361684005296037296172866357149376621860763587775991649768616051774147798606081409544229063531173758722619519071112619376198064957633669240288687043498962391639296048138843487134678044133359701018793530165489042603888962921084409090028617191590781127490428037040979331088961070895415397517969338371787083379867334877228431577920838004381139603668292640885073102017994198627269036212178341713706992322822700704948040947708899298107155310454329486197978241448350731755105599633922313912378834580472704329024761813574856416507442746257991615245963122312048348362149966401354080731364433687712732571859056527386110145247013077084185321319096753352901771807217937366418758337092672531151574408538909699665099788765934360907367068862789301796647534339211585521569476610061567987032169481106293668915632921262842414567818650341375482322807526809226225327394317637330333730748614036475120974637496530470443599411789720412094665089201947449197760346652155570327561738943515277248661481549724150327921900342834808896863702421419591943316946989927099469211839676567143295450573315374502381179510066437304215674230625509566319615232987015490366931491538595460603524831886727435741848185329225107917383075562875704096418256927918891921861473108617070238440911843100478800864351126191276666607116977099101062804328888383657819091242676955284524224688630859652510219599041646020410399038740072792629662694750206612473739627322146548901522168382725611561781648071017019599490390712686276229712132191018659663384350193162666994234269988491853814119062423142426176087394151035507046437736581559206118396871789659410504563286073230277066389484224831011548568108201677479295251199089738258620447010009140106859790080585164625420333570630607566810215036865582558741527002750709916657405974489244099115225486979111610487238273234944802177761814474785978221246398151378616112199725111980863709205615960917765451109886721418147435892194926403554420469444652384556820997101545027824704280389333145462367567537641909116043528783043607285121862930717837341302619729246037750923236762329837020583834578490224703687082583897052832316813599386992658717373390278418710716944671539459720183643369351765932056729465848517013768547999174285773158021080787162246713405559085406986200225059574897219761979519450976211465595907031339181021305283397803125782401712950102772354869763371719917995456270614989041917609264172092426074219691046674937848903051970237493193837735339151265134150237219547211458543152751911893902869084078884173058216824439745746176242876462808435603639291646499381575891014512501802177956872186818193514367386125708100527228947696378603591946271311992886988412582630845804399447828338554171940255623637988566764172993159069010865715541801010670374785344705108432648839671620141598161943919704826181477502407233512927512150076733086703161402587883799331510846202338521511592021022958054504050766486496649365064162289850557966704223388975143889873599845583267342030580721730112995902380205761052702684746298573325432225072473900069917957606588537394025964280959939525220818779000010629175098142438003807060289469907314751551306083686470628506397809876227094750823184152730952575638840685015335294640265546930814754412338315991160784765157406050602143085785417802121949252469453053427138042447548999309308430635111778349963481240806857459808951146369645212143164032033419773142481044992835064118873092823034156146928279805892496733923228021771924155848307338924481089110762179793236795682570933104658827407950353932065109159185413374776147337940825932764410719898210201635347896037317843791394483996737845621656216160619538369540449823265137168689662083979580204827908563097668015683852811683350222441261019329479211074761018174924288521229980056340350881635554018784541580610137797444033741062796364001099746485146342128084668000803766141023079753672125989130679137639381145699882892477989366661280842969346184110619938492438585932331801385831654391500123015904530815205138769917071171488408391177344480523030009489771774401099200534532493421135978815651237005791900060239117255202970940891894878019178163983432372626649870010989732276741950074340499068069490820368919355411353757329392235095047248300633407257575257828063496614706498173282365760791665448295889917946001638250398939829235841980593236809284506339951301558811036029117241579118805582983798823301972721036656378325747715406999576279260640712930572770506871330555562023584144912472344857486795668944896304518640471459529023308256863217536262282875623444590564323106274646448064252831452897999352475329744726345602829523924116837226519436700862866029165054811109465366904505136779011933522180171066164398453809020231307446689602025291142211542499839995704215857638497192750063517870042837538737317541315018989640130071223522148931042736147833120616102722341337733020122130584018764412039893690938583301891195953504997250055991564038608844695157458979775125538814264378597100241068582411489873824983953074801659234910680238735532517428001129010442510349883550730070063019909788958639925328677858188931013144279256015813048038276911802673297853531003027674837115751995042860921720863623731316459233125202245010640447426091843252028051888307536225836287154796719208102280647428938380696940934597560541016976014732080653243151308285473737089819338467934870436090067490319367243130955668092170436810271824450963470700094093828722907193378354205830934895163131846289605217057311682271070913935221730970946215477793996066196409367285394639427117014521517675612656982581264440837179071025321851955469825435759826884916056739947045432129785961268074849891932760823693475129231997693897375840578230305298266981649632227551871992769676796012231827033824383330623987487764694541252297589397432829145332147824684855550105877424358846603527707004835273666045754277837113630237831266278533310743161303892956234813086316173535355692048351107711569072190538558351907103183061351097958400760419107890361769115484499207331886662622759974472342215713212553986588316410956127049024403528647443288727894459075693340858884103226171040346584125199355663086203216460833188913292484945175751202689871540928140151790537657622345832072010927384041259167128111203279068847364504980151782112617056024846053697405720202998528773280674359717216840495013937282733285946349478733867696455464522720778103701203809553145372200404296484163563986136511265600582425558872978647248636148012666123665567660333051583502151896008362541426793047221797169436810306788796896677926325545331353063318300802083252800397033547888997352004355930773376484671980758877042218837981536707862921395830265348197949271205484335056784034463437861779379528159268176882868409549130365248802776754373581532064597836903647942575576227460542742513807982510408934118441635234861752929654789533745981966114426605015010582682880031112921947951194504887619290015943157744353440275821107568585059010210006900782154490847455388082833678468170807817186504801208909248934126327946733799377724560039373411321792455714230143132245601342454258544679551871260469102103928228596171462960790003373693079280208020613678823390668073484221186912470305189204456863900603050515132751271881970778029719179491367404874081459776231908154973071013277446228947623745553195313894026958567171145748549987025941114410577437966703493310287438781372961463821306306843279871869696586969799541947706797093179271869668660963702389996806667524320887006705241043304566664835296833622446863639061900419253443149548981344047316127809853370484170667175272413109846656264993668721456072556207346896647489945630985590450805260524447301204327115874763493695243718351530304875774263428568414575948557387134825742874984207877681131916776775492400764583524286769851643218788220873727143668302751310378850774333448428276089773506158643520422427004185029662645164747985621361090495417967740992137907681964047646843681968314411662239327007553560938608080282322429729185525906509225067765303038099003288539152078944258860278482523861354124038656617975861223240987030888478817611452698672399164927698160195332678376768281818344950248462072347406093460890132885467934035196621093067662513060038733171383684153643204586447438834573080053953812352175527162122026087692215648822272999130846624367793209877063814001808026867818494117656642055906643375611874777177945382526712758144661105847814918276836519043058081318062129250483940870157937341741451458173127568771773191447074006415802665369704007026670314326780813833420034228984874284660267792771702806879180469255576782222891122270881099717563321908243542862971923896402471046874220064909481336557921026640011044396417339498910060611126152138360200615330325842891741701089344573472503857867128305225760546198201583578450926222931171403493219243836109439796707493657716419022373663325274447459989881853101462408818258374955782483733519296305896709550811903092640781788294645592736636954158230746654001295980623651243937672512409389884684438590504085832442672338857717982096343125585081056345613089655854593633505713848616310210496719424559138999564648222481947929016807674764180654554588013936324195256686941795514960848271980380491131616828366525568464356612627387412852416734107344552126994669345725387497782491035039278465396012987169687264457635875593871940458349284536209552574760182322587776929250576263216132479198954821021691539673407853851208048712533845413553842807351551787426167071981987711341907274976811011101789272627917125407495422779723506978055480735257328759869652877434418671064233965953357011500218829479925543436655488057494854502116017300373127520044061148356454918532500881967042793435429637143446646288722126209222488230964464402403633575991655825204623349921123109421841278536682076354582745715168528588902510201823880529392911044869003629946537901719415391847429200627707826469042105242927208769681689449601048279567091759295923884227821311298863079974604479218862811847224837310802792425172203630029802106046790821978735636793749989587287247003380613678199486217676916363835206111148465746772794788338323244499013835050492789429711261954651847361729476099835648262296709528631410240253460542010036749260591761732688515987240904923085655591492180687869281471572762707184201013696706442510387626937479979261276817878561520837022121608700811426159171941454893988225175162112318517347203326840394632029702564135935355500348098531281632412937212882013050338328505163562209688439945693939390785377183227949333480490734020872992886931221018695377338141403952650422212080616944812580825487897771943432532114847169984973934371583486108419622095219969704875158252641827832706649268037492331922712447490893791534672932196495216165729706518356229119864792952325684418296301693641349347070663990079798492892004088239242560055820331372236551078359275342266197541389489419652344108792151021485775631410021303043498045772889861273365063197539113978657598394866900417323863832021604706085588030682034648275625003496442490648166335113919143531592846046282243318124228659768209790226334261107496233795472173956414786176388680008980698830369936730022178554453875668784637751852446066770960163365529741235327103252657123674133085201505503163562605234085296114105308241315102996385916359967639637891093859512712779295771567498435284763431326217213904636780553583865956084363475344366308408910133779520773171579001623590368847433798265813050701030696604326755052205836585513123472111458290434283932750103178919846473876223229473476130033776310699032604872510619846224546617261695970199403507020461650347875748507596695564662235894107960483089899884043833705017944533705738601377727775692517160054864245568831379133589317278399674391502363682223428517751515696604667126220085764443709266755628978679974097682062153400604823513521161277731257798151115714901897775722095559852813833216797750802224731172608393056322811945903829356247435559064639610484952919649367838690385219774947709118620753830861236441565270848862339296909746007885997582683661867351096495896625813876298077998809979423626002499726121888517964780459332607115417834059420806685584409031167311214896208448698897321092164928707119479456905033185105699167923438123131480774784316164754676593206136830458643073071849404262802807439346396970861682653135581166875543175551876839076080100100760238361665463625321772185719882080639800352810860078818991962635801450730703062460074894563765858199307414839640610405089399486928550275111818075898243993742474511376637179463456293566438289583900528086328034904507483778513315918243905856480532805389234107431404641265209356900533991966651256877506990374524889688002780263337153690434539573071577860163636421039980409873849866371383999026729684932586472680058430662402073975533835743986129657738872887795789941178715449138534953011079012544806251802075962101580482114853648112065873328945624344333977130999245263671970904924651310686488755211887289846218782693550972514361368174693132724076773673557607175521280479554165522750100887115635133967697097662671913829519177971664185023893205938390594078749131551206631104185831147585874825867567299497043904671383670142046608292205036453724152007622043643802172132434724723124697251009113558918494481630891082590422497779436328767520624127264439661480185530137084787527186607011098471306025166134964281301867734717619375727406346121785746831641926676326822988285142251410597704885385620442562241546111495150086100135650557811424543229974832813774162560279902818587871018027830164709418459189251745747959561345729957425517833872917032649526172031424216196417231355625375705855681141888498822906952779006217312539017559364149190001313617247429385525291233586778442863744076779808187169692895265262266869560331471036709943619573180494800665867970301043976936120984130348273957539459260549571391984804750280776956480855115224310166311892411206471744120956050366824177363006477531387518267092691598494025797363716639283297703357921161035729432441652814859955447223031302459885087352329667837450352592513346969320259574158825044272366119765680676146986487364911007725777465770764113116297518530620581834110354995983095900698088683753072596939072128169505484703964203465516827804619618480656860944790858511884277519895420673825787536288075196038785028627484458500746450261511161140850187927708240546640687477387063601363433734119035354220632339125536006761046298461896342031831611545950007099218553461285182957113331978809567531709512235840754970932970175065134792212455832657883700130286116819783901531943420211644637071531219202452046266598157562337837160160026510932735731101801496741608841680620998344553203551676312668255541274477673815891735366202792777695604484893580803223797308902978158411568009510130479681168091953797039107178059553072098419877467989524399232201481210010605085853262461596225467316103760353055270742899782970444324608824726174580321797236295936831353361378796109499060113877313275003908644934436507072248303959436998013012063527540417893765757145136602012719798534765296206399009228719279490613788640273408154940142269828294632082651026165834840523622135582041736781771858749675666358445532514011185779068701388786745772481400607141329293572320105690781591554596945942219597817499133652776938682959485056387495527163942735755498056355072671088479883632481524609630207177979667944019783478733675054876124443151207737155316081742833338798368127448289591081819992537048488388417551673252715249465830203467562581519750936130123973426351654998952945748650463028961428682532166203156275567522892290296374278226493182879017873312698530545614475200742006465940542876500497953192333916948738640088411344948496403053103749450787912487988145195630023562013523569728962707369777515899403052935198648229872960052958269957151514134862585857265706364987072835819651917000275225919540571246596264434257088971899667074019516430208332245480637889594597453375655165307041944157327975182404699302587142665641773025707448034462614181755958361827987159220097950541173719598035327343571221849625236995816934430295682263984819893171467005024004854516725443025602375266433440648024116132532173454540778350192952741840967178725713071056476333515706385845546682457567683492330987853354008900901463857502431976868707321070388266157890117918774665807278834709790891511898373021210636644511486438567142455013286598183234708475747703235378077744526284662120766259392802567373835976611405241758791938937415589515478918703863382444458225357309622695249772630692875680119464115193883943531685189081111624895596048407392487261752811838308751354510929268209826646189013501521112998818802199046920318668509538614792640509894195786738109866816008457989590231786128657997541543981015684027917468736095871442132115293868295477411608576116891452632771932413423427644986303931691711812112065156177999203004550961890033914610187869916399786099107723259029988782524856203644145314436935363780595282942879151514035084033402477868269017988920880158853451694987212876878468864951856128849209137997730636070685418663987660749299931165792373609348520431007820643852800995420894258251209706330645620516353712838645235282457507358699016600455815178876500426848769025488329037986339135023701154252132364215205626301515985731977181724410926441294721829075805853165449662764089641268616236126623177813489522582390723369682174178472606444426509911299228638476663345385635951535335406288818951235154128969248790528899335832942127788524652302882796090876760368286779504186505261459332656574558388719930290867821602933411819713598905874105169768949451298418474445336918537664291962720797692938946560694790175655842991852632741679044758320925526224600456779330871306587972458270306795020937386706287756921387939602309900300552371228692031443629447074497072055529077861737945040974228242142194686607015372395306264645071509456331708306142625283259197122126450370960366429226571754833182016411067007805656503155253612918389165791788103025361782315020240294982623181128613059203413125796253314936203342960036958909926618904971361613645357442548404642998399928840908270697282681526999212000690619967909449445180849505339079989478856108153584679292776354469252269260271923173611990379755071915671120159039659824343983807572196529135259259982219548068463102046903338163742682105771571471702323975622043068017611594918912390039992725287156708696944790613242574502520177853916219113797357349312825555621462094337231351628315741717592346252113620817079322449659472997310736782936144778022164416316009824982242686674595155235491443327568964532093217474978888298009210630100269403102925128969584148324089631605877952545864804272300459879029492247285105410733514537159489867793103359464190420270522713788857080822196401203282491278522383378224442703900676343119180928696228469740482602706799406779708816969742332881522146010770465678525200616118474633341690974722023537299167816954681500832885763007670689163197969753660669751406581222504190146644238186710592891377325613632582633588726053539253092921271400620437517528265275837758512012861146896443584993622844118411328943061239740924042033866404024331093028451228725015081542821172230689141234443034509377028476483454953258538368027991688468475751885721187312548325906274075508885662961198525615179873784546388253391580226194758089309792163586474447373049980105267207217076216340860886008142323483382678313354595609304918379119620813652013538176521131927596568673921459557056308566493241829616176607766981087099999560432319643534618373795575832853383910799340093522072423233867576048326430098682703669668313180685418016153518909619175159960268769795241661272292019914353903222944097495907956984227817100885125577736495609539717901500571973687490318779907750740959354487952301082945765809799619718214489569624391180999036437761021887005312454973441769771333341346645047635064086320662038092158013453604574438426249352266484216451975927592756646403385230904418558696189741124335435406993871092015878287831367361599484087130443709552962698523048690301229836819066414548704836101261227501073358127897787978012983634641538105280627940654966576321260006938528738374730602009110569397737085815734680701651321399237367396208585077795297378203207213346269258296979788434826573470618234023882366050711257582905806952738671550509355409115976286385231681161617745824668053233833214663471324017080286974293088563637781253158757809733611443771693213302555621694291236957548906025332187068880491846825747885586564868740357292126413857199434467284395661202277560459068400161986176270133842110383104106945373772909714845713834055933861371565754185009624384720664456436450903438969913298646627016219115103512708235724882029746195960917528262753398918385095638058727923007049353509611947666336974043822099153754772626864194280168335070474697762088623402579074422570165643418201751864862914262263451958694065022720540930986568987548768929113043022747334990168986699425298870106043587505369482317746000417199130627140358717869574969025035238959559001433274296984143021932141156199314884514791145698419518410315021568762258892493582121409633066092010878929006594542270585667049680320443502376905251453916906807178605733695998290925317681403247325807628217261051237605915622960390795363087420316364725357622054037386967079492945815004854862269967534411260619880895538371154655930059888883289337456014090404267124658178249664309731936961377765939572044312430776173784149631225834883425013426651296617530302611677513801528152442714163646785689172685533741630256452877713107585072495722102524314815862738193800363321099169173606447206686272053751017533782891617996777071784380195411898994997603302139572768333566680644105817112830980067251037892289094554670184913918100446594347374774783604524696738017838591512371261058275886466327427250417797570421024814172285290032975221172148568320428417066047311273832834528377338141499543977873906936743531835002553345918059125697614861957071737380714912641940097178668661873878212072901414769026017890927485262515126404370365075171130238497447635639909545500701866273584497365046961191001042812213402924001201295015147772538872399739468236024657294284868156881848326923701430263886480345095181776613625743111188511802512524081424184750657822264785488016990132673188117885053930133805139097729206215443414001515206374193042647539674547465035384672427106684092584617824300387696386765019222233386175174013253480466539664905805378881279393029579375575312831608254662238655387962149749179741561855474203887822664782860006208697040765972839186872930447672385486478988083203399312893714721042397696288207428778870417686293113843506143673895501257522441699859237664930598152736463258095236391866229080574295051227033669929896267360833585832840438865415454980041551035011388543989384786990367413723804735284018433386576184509720051102949626107376539425379143315501476293941294479729522232114819124277355850540771264806521313043299026020489270059208590220744882111885355282309916051497709948050066895126226306071993397061687013371669878243994939245834572925378168278426273803657869421369328268010387908951828082537795583587929107464510435862440859917716824188368927492605522946699552555588488576894329706156680729789919409075460293945251882693559910672767837804450994092972354370967739009864995387687002991886779782179496538784315287150981972462128818439767955111479324016684670736030004368491288180672113431816021552172730393406255557995443843766882246366566602774863347425867406533615566951413584760568892916327460073376252114761746504120465537668523224954069059884337071890726657494542753339863159872561476214154375452780220189714026110848653155551253273379045706724453684568667354390670518118300259988209668363699596186672926681718175648068318906960853477928595785852186809752870246343148262646002953888692525062759297893080299713731378044461016730271540277582265415695673044029287847280635552721254646177131083599821291413330870348317431445276193735443252714410423321533243224381879950665878715312667532583522832626225355051356012574750592210360045439719696172225512836104285666725383324441547742167156839948509819949953845409266708827717336009520874006130568167593090885653974896714504783794606314736176170447395520846676475056897021514205937289811576383922699711854230327764151778281965605754334861681569989372137937092885305018247121330498951254294743668373981550157209404923419895465835586820997159879634783246368838961189576617072493970252632868495599228769139803035455879644165604963056416106232005995897271718284344475245135894763010165359233952165154048154330811908555113614859540246893293769541175504092779380504407638673508012971143273978546328253473825743031153559171659265927645619011755034676760811790890037240528924757736721307562037491280686439228571817954584627332161475565967598044318595341327620948380228592085508818285983377482352504913526786788343426144529893623786357673490349456353403821504789554258479705336655376044645437604543645010151850705260618477905890008942950589592407316703315282751858644590561051393068970769703706806685266900906414652967839297676216505871279506812069406172679210633531207752984075463976487199469006977104544813198082612251019023643821099692259769841768227466082120076943357332095723115891456041116971553792763999350267625201738678903599317983001914669725277112557368949239132166748014708473293944246165221984258353795342861427840017142758587208020977093816871009117406077038268113315968649472067500509996353812324321653199087695284464874886323582173091578528501083487711211171447181397396097556941024487773369290763691244171301470378454186803423820550271679196073498568672837943598578961313455535986706650228161323472557782725451120390399361169057529888444171915595006954069947343436680570808524457121573498816304251256070437470721696475335705129092659416985236398528833000379653085127422885755815894904805788753275483909380094873632529965336475556064732658126183962534399950426156847969255721044307237361645733119273011183310357844078554252329987164714034450608252796516233486109653626685448662225456641051992334456234971909846496741176679560560009661851878802015759275575852933667190285515723449888956720938043496323629496582298623585321224688321171295054750370766962241664403112244005251374612769679191074905753476860337795376927453996835389206179199366061116857371434019163582510139367266677010884097124782086645421163147230550570745238333624805429090476460611064910785112292459918275938601561428149456461259646592961850815841151845101312936424534105242183269810187317062177508813382370508862584406871369767968455411468557844675389251380389315713625185289165302850821632831264775787619315521457845443578146295657133866252648314196820118650839510090039284368567700751794415893059211286730309759577673357820188760427393729346343979460282794857102565645968343724537949700819369777010162029462800570760793544753891321811248402941941656056422963779157379819125756337437668070767202113563936245478966932687518811040351052056189144506175506741151139465959951037502158821416723153137098259746124666759803108317052462944211983800782965365907245526079532874338248852078071198804289595116443978978522275105899238475417993902407579437871079811881995843798455853383350401525666950497303183653986449918968431887120411355353570628727971120559948251161855513685154245229775503977286792319530983827645081554776162926513553747333711373062821077675620320796233232555772683502850847727815002088298290129226943113633539290690489364647666243143472554445145086129392871782898946095206884196813298844308536562193434375689349301499401316471507405880659079878026465420244337810316815053346988014453180258945379184653742637034451666941252426863860504086483374256483166424823039801603651295329517110093512840136290808381401087259641224620218543279289178046723231002544626219937799958045010995752195761639541929796402979135773947198665895828714319504157805984196443730043966339438066604547261070409214109274680927123307227821262462264069705980899147495301769421214124688663824586241529661853034426317379005935780383049364476855034224680613453124641148827078833200510679626642730790176392854281723393001877045010171208420917052037928943778408731465368629358913126649109014197567086204494318863816030885470427785333343043074833187302573060311131328100949487360371666724396896436591198842576454450369985334170371242420500447321095772788941910243819473324525147016685183707885104606902536743885871414988035613421116648817623032661802069623050232884571614031095487474946994336138480798446972053631419549785391969397417101289637774483174393755684595009041962977997572821478480251815020945475338293095910611552095578334254737646975482883782737210880857618212707609223342403105388836252769808492733123361034704735725627529145333391494415040265520476131714936186193213039794891035503973934492398130733626344764210738859520401103420205305470304439349136289659809696820292438141066443561584281247013639732013330183552932987291960105411457299888061790336836993502266917189742755800706808765478839297293336130678689323869040685957789938189534689343723830346164509219080974976611431524803871977928403020740865879737228633267322250805569631282103218840999238764629363009165448518196442055388405219661554725285857495449420982717394007945972122932842678201592322029654275408943513113429954063175943606653060166738650454361776626811589921532502852210996437961774587181484745796043596640279072572834344590266883642967411249619713102832657588431600334375987512089704429510804568943946426512890829100550599440448656114946499727276442709095911717903894179095654824042629556461746175968885648291109537830344798826133986987457964750577930591069322352421831351235437156897938643549576768322298649529928174370075148845992177416160677220336603486660328861607084606396187319834740809496274501141023475216891598156300115850651769371052918457400685112940376935900200272022856452718139198233899700525309314011882560394763581571194272125871476040542835347314235100966081135605621968572527637669886770446153980871558416381897773423614369723997663185997626053814031884601751842540720087065519039464706089520693535093690806038567973672735406638895416384613945803546309604378496796568880814107467088200752087725173448030288936376981265041994249180920757892953532745084303189473083921882672932185854714271470139647175489227534695628778056510056754506203226050077020307747815684395194723011586071025704718000539561678902680708605603289871187645396113796285316304828540352169262846637365413275515207614098709568071699572022316526036446315323426259271271473225249197227499209576516426712370179946232331349046863117472538654407976829928747995041270081346894796188781487378882999812122820367575932319874108115235039518442006377165643701253506518907088395405982340454354597628025637276932221007937415350003521066478456399022534926453961058199559358457169599449884492079625988540839534571282428423212246877806472792855397965501883452684167845249469660847185448888947745672275523000762406003991778507152116064290244380433670288696603739365072329685701941887922123222110744504100137973824154253262157249750179056579746622232621268957348440012881140470751719030791297041990951137534427368807922614015820287326816609358466669025754741440340133508494281433549838942687450341045250630574318292132838942021409702638648168549965658532125250069954214325251368511704038059497032716754063893589637324939977402441669927834995469389896693816340803535691453910021377571452401019269047026531946718152917054705303772662781260746340829404676955056210591102108009746916270449975353414662481772552187655993733851540251233148157476410286366901696557637630578622319783237850697831362609653791072026704043995669564067843103222491942866938377702314408506074265899355600409801710554789824994185178763304190104491805031075188677548276898034206420235235989959947958795514667944474053433267561310886433182509595016608431531186255524246612940192447535284527475278077176628157460204372310232336906789767502803815795149301788248947689034248597995863033339329138607577307916938586199274100211171685433580362822300233406931267490007893802520010549619707255362939810153440355239420539418709562003987048068629576479507047096672626538273828398742012473710493319591868314581087359509055278379549978704831184755790375605350169990425748041138782988350824545243910971691651794615707037864548006816741643379522757192962703460237012622468410038186975172424744447026960403677655025486352356152774137810315209165542019708909205584518926597580037608206017879750668331112209812399116282813548864148843134700102714772387130712315771075086466365895880685240883815510405119506563994429951799415734876504672773298208808095587303488267852959271943765078560002335795279924348644320748907067798999899217936805009487288005078734622630700433950638743193297187305186189057285741349227806385003197636994458539565187130104488081056670893378609567793419169344167737577445938168416652671047038155642269725659608363923136186156987251542563734347894422184592129166773383815737281923447611776333063132651620667459636241817901930067718444933072081580702409313542243457942011395257713967864943095590756036240107564684477315776615512012924696206519576233624211095881405666453745530358676522520513984663849167894546014455012252195077638604779630688518511377006611090855716102198230998756453499087983358856035490950795944280568608689089991805972123801045645996487646084398149378368131857050295058609711129934841186234218448367031700447899358195883028107213540179021899811245406397138934101550007823345151742270906156079886705844047482385805767911467743355798340377114478935505278311854235224353037965615415129474261310199618014320187458586503802126439253898489940156999356116692575553191355052289337729904418787327672458895046544034004700294273731090693222717824555896915123733912309780645999087757677227800277313355573515563494848662476261003909432345405873085455013440214106117531719003211397299290910666411672773770105609929394646699214700085021788625396047345330189525219396118105697810603537109593697931103741567871685772202701696567932524651184365855140129409660828010497933524787451067562549472241481564015192430689293897324780842655012716900475276799133822980497651026942082237604852294461416466289847203201933794446805083817244858777239318163329145999039758364918345852108294079144747767098433039564468227368499256586366336434733922500172864782680754585654022855924262329283289869406589749454577926644887034266025105122435205600727282180672067471246352063005756661185827734440856313907470857731730134934957703442438860837737053500844705113762447767811156182222104321367864859555193769954786963370691959257577306055162759672031973001449366982222994522880331308410958082203595757881063277732540110099793980118399003878794350281655418065045625225619700329128379581385371680493364737356717141854212921485168795924680996761538725156968810421121409055852275373445927683155754608143027617720539545188710113867387662099799254478892046349943483161437263931228524190074815876286937492239471898922156338377534151068639061663610111981112726073010182515545578935131180133122102083398438592913282796220188138882311240351571940443581963024739939618840542601585302689467145548589228480956748820139401423820446525783298434407913687292751856584293088761209500530862094354251583650457895974388352490395474445116100975634308233270726065574894887502516211635376099272254018352559751799199223087901805242793596751732994031590987848464966250543208590053261570550661598249415711971647137083621732867489365691717995970317830798863632982744984623870057575253176910177326766501202096269482532371766068738185409686382097523079136994820280036118228875539594461983541541832118887895380107743440215090101069085775279396862035809750119267862141943610704112096639065908451274063452277522801767710372652964782432551355063387947392815923059653806620883353647456884519592493321780280778010508917644205844973918406015875299191739184807210035998562021472064855971796585823193183558369298823506186542101610053008102795203746769522975822783980841988053086691852894252519078648359997211283339088805404868821008634771659179608027911650746339933206483017553184138507092961318893504518495587834533951496874043510969521808955831557448016200135281589915926863149672077083696865450384194380876194525078685880850165032118823577087740437001136139789763948831004073948496540646426723248517443282053047024223469041006630809404797911371154529864784148885995599356531268693362535758464063468500856325457593796694998361638054178307816320675472325063017964877189591274891706770435670090635090343296197093357937089647720690392425779851290875145049769380752857259149230243921230237581226112825668416359338538275074531021881104734330514232331267704145724081392605814577060123209460544301526366987243386187864038342435070721622988481161469347282449797866490525280880660249412065628884023343381801900823715277787935908306555644728529431131953599349332043364236924157545584282007885746207222380529687915961308037628224231165468272326147230853528756710565933428742452055490610371014115277507891068492328407884513876864006471824766293154815685766998259751120013704453642463461470403642576159443898938796498890150448561812038675219666271950816539179481882915490393593888395804747916046520057317333442505635504836696217958980773732562749446995259489668751062155958230076464819499924093360537729651177161727986348605683018707260321618712269148677473048265827069993808587956626117558394001057196213713053619732678277079646250694836939687284178697873190409274925387335550254466136414639569464631569247441575558071279033764323844323164531028567232467546064916660966902315124729222668841204403175953487621104053835490268858338349325134325713853587027820967045669619151853248036970152609694173586208279960906144515783666297153380148590269308449385918806899718640896841390633789576875710098677696216017644273615322801251762762492169595043611062148684326390336711840287659830092732642163289090736547440817442849863738798894440213588097444593964334520524777022928186680534264560675619291468271058570564573975366836829805739019064823346144658565878538078210557813856384390262504486898617660005699301213476846457446965274844347731372237947697071561291700122732412842700693708258470865257989080021166219895035349784719343449252371805689415344234327098122206424678293934905249654990676919613418663165951261019743107100986727407232596109839292957682523851915525671734664691499111989826364181996077264679477526001067712343615466272725083882692602042999136401832488142563198178819896159283602703570569637473012186333428265069805743403706358694368270859599309492603111047551306215663292604435529666989730145307113587365403913874429153893944440035030014646792781687769737920438146169031522217076172865797232750734160313613159085432980436539974734879717330000188375694329455854916048502898007598517566355078610753978113137430504885106172109068818667545834391332355537117584224262755033788398575884503519503863984646244489252027507700639221457289391742918006794300371674077797978146865128826358917207243353140405765204593901580229199942649186171146336342339153811498219564310414615035975431482523628682168956547851339201997191062329167336584507363344673880401514175044168484685281840464383311477005168475630319923076778203748034150441026301347045842441949371374266703309245602036312230235776163408751259194049361234106782796004063442660357887255945726813278098056673443501715681155561455440115485242602126209625892690169830721931152083478772510583792422578350856732344036925937116801503539722731203652960113427393825583391092072519831512125879991637106597952457432755146246808195380110684378991645483211923423029786065201677829118997452291994021027258193900333146619299554161327764413750286677479536973734264136334926818774438643021656565526985573339224924601803388990815506399682709702196141809297106675767147089042743847318701084949416639487941529438437925286027761388264822735132521530089570304371665688117596516766650282093563617822941487711720885579704088605477152888793287172967616447675524414496199392198452595965123600581137073187101609447185811831805063225534993965402399419979057373644101059406028649643546252790843290630434405383384982252384060760120793170004168894584773254907662890137991426121412803177859195987573654997148931703781842556313114537094058438576780696109310928569056170989250484313550246041351470043648049496780339341496660522902541464469424739996793888845651603962397170293858787939386840927901373608660743964064696217520867392355204977562850560822060523263837713717612692914271193473315432480558649137041243342586390095637793432400333764996058561642628852867215524012641200427776750883987976523670423666569404138182774559648937740537869984874257093019582158444113340699637867219736303833529787070697336358068585133463025971825819978432638902344798727655319119533478504748388324057571214295271113852001051619157893054071668572267475694847855454171794924751117932105807390139074982211382990586585269256567562192802202586996314374181927937553095932053202038392075375603075530884229387739247599682059697036813849239910460284383655618219588510262968008722240008501043058846982022447598742820026046137960997727351819818388213756895679176654092632242621423042460477929947978680685687681482188280325662293753232605598460167386325022877893714409045433307001631234591231671541992118839623202827246659459995690074032871931515721122127994964141057408181977223748661951011651069208989218305609960719580345480595959273529522895721147716271725133300340797734808555545753106474682553492397135056456379096354131001924024005869052950316031715547954088395672785227207268883617165666846799834356642121039049361729931266965085959122198152000842193066860663515115072401341003312634250509915236060976476688033459629092915286977276408592697248593343551904693513291531400118252455519829110449877167560554259765511738554436704099667352450850954363792398628656659236490423625807125977759631813348283740306231256224252972808506314923076097676754496482567559230288463036125066954248588718475845492307416038440053336530831981039738055404601572703412843231287291754580003216207166316030429375811318664307596117055588036232281656165727925120612019907871327798280258621642392607628067856843860346394527010288238729827771444232361449544340158300079832909345559737081757330062046077461360977505892340335515652779631200929222842441655607151190779085451101458924722646458169638542006006443236783039463020562535748986430570089688130993879679561666648857642717165868121087819814460665758701658900453167718091809196197739767506450567377833032081229517787155560474155261661073775084949154013709748146759260295899302916563325642767237513722873080583002518401308012233072749371967501775280958058899967778022076566293470063064653295183272428802348791821019121661813682156601030493830459090077207387142757228995235589255410560670324344706021479108125038540862095055997045133700439697510390179583321140072473059564374541424850995894653299225786112288771158499825563846033166035686001621400158180979771935961324726789388493693613701901363879385250883622195549323426339379259151337038673110959306512843603798121336466008250899979824684821954389381289174634127438615762303748022808656867560277115105232631951610995485120987442630047431487467580965121159923271756268399593523520099704321252057937903910366872380388632514715439412236512873265832618007406543269877669402645802983975554277161168245053529538756347626524955170090407147979653122940828908493302192954796996708926444153318082241836761434949217478493455732528283785094173190743078986847421102329083265158871384293329187921517891076096142134245623270148515644791282485758100746680274179278007477558659829999185736317198678448689100850626077119394858510117103672741284723308210204611641393282301614456861352928314395334677780340464189493651919886876144482572888572220056933614478921476737683660028133114810532965782154040747487917378382895055461777893891554668662708387179716652836654359873918396997276690186242825152499481812379578259272100605983854578289463292229279231261516815333359742832901746141796556234465098895258092654917664631875346410021886547832564998111344181632817190129240464000712934261970156826517650836914539120831128084252066254089317207142159497567761212732296324679721660268171577274043359621115692853122231855917151393617784141874356396890297026609315069026756980799695872649787295978625632001600847268626428640942167240570086144523475523409579128556153055986494113750596329362706441043110528307893676221996135067691161466286876223540843361299732053399297396712258113934690806618657927487853347908513849695320628913459056618558583715763294647671403947001971695274204177084830037455284284861678617049686696934203401634544112597087858013468589887512319759079712389697055022806493425539736952114206209094727325663406949316767188587533537514767310179248790635269580482082708142707240283334992168778811321319500656211473220851345985777132570965604004162138509694103417185508876705451050631873518496342411659174360954920044404112418814508361619887120418486730199978164731496114915453322883315696736172108536194364456237765188157074816525661514671922152119047710308759896575315012156294922196328257685628019586825698261239947420694500243366076935281849352332877962836613494473886711398514751789504778011693121249771025646690763113559992809559908346300788922469413445088038212774998276850941708367837492340264143908655961581941328902265181405629732024953315527632377972266764653673465884204156100185408820912695361240993417322764709017223113799519843942483473282274180604129016272503670002388775993293518617129235961654456076462295876097085708400148683219231367903571198003145067858256190746968592380072547893101185960420855094475932538611073194804396603007287192592205674902742105965711177982729383447760393411768105971143077063560446473067795106694825591753447680189127632520061059088231235111594839640299477178339190494972187047253150750616592784872881523850497115502174427700269022366895774539194807962919287497918810230124327320708803118819942810853850223590940066851350794083816789543134193064515742923739614960391841091313634604182569898949188529697401296822506598627924548162889614846993447297443998995121546740349990438247292949340926062863793604117679922632230277948917586178182592115926755867815291741257713217850149396551072043206421219518388121020856562763428116285980617593904437319266047708762198589221342417469117894021097126135422466365770129158889908387106500831551324361974228060796434403577385270665413865827007727853737295706665623899741385701801580709128426157094143777237516748010473111921420379986726249319880319034314381693161408285280487329967389454436157045206610362482641808400542748641520165144625438648297150344856167205001345805952529999635816821241631173476470673020466589104684037208669557598231332614145692533377876844448633832520652963049634621030311284361503466670188549564477247107067431322286618730214910642628657330364170115915811498360928907002604699181865494490759001575440893799406167032224084474279603043678136349022995602907676655900071055512703452852106935507000764025038726320249958112383336053873371855053387326984898290953977876841667510657049509160185277652955061722808127391551444643298570282002219181023194738531772535343142690750264116516054464393623558711402190798277545659020991075075834096621658202801601703362187445217636575977335437807353461702306951860579955615961574809876629358575892609950630277665645565007214102517514580849267428962030733019071513813388807260258907570177481605112140124113872270502812135860746162859522805847941720031140010389262866537239829637335375384802828938420282772456156238208273893618305438630900205949553443309236713437491294373597684581618058103062294633124401965787969960682393517851172698131232480470547060540931477650006944260273878239815552710445545897471934654922047016593347943283745484113553765161982963698764555456291978508745102750704539760591952414917708218499134682450311266766177843812832682247634136726363515631416812435533313490260080612719691550590689222293187383847921147975443713599184758361613335418327458181785877522510211336533922138619537968848062299774667322440597376585958601321944951751491176056383318686380092866697053828699085065749820968556614401395187200567775505873243700241954223312981725853910290844908138139975482025128240633368390744477602155747382027237604735604133327446511028294451459580662937916527500397367359870261473017501676971448143639388092028257297702307998450135068197224756712635629179371475085743746023111861072929743645153353445286244866838489130121852109354600505404920072262719294324018141255392025252658830514935886504235788953938023926970850993182665494627669271268529402799681397700820920279726528070878162425653561131993356466610915017178053299958739514902274313035793648452715679148753006669818301287672694549799943259303629710558461152624299140564128340856340516321658823069883156933452646616425844030181141416301534420144386261963835874058018970513573527958208154978453455378429603635338194838759461289137776755495912085102861471209890907759632133993091630423338076263518430247991601942616807665130374947349086873772757954031208658866450378270874111608074272918723859096385310694413693436445645288478241464559391719261412759132665915689622680096160322513455302371858597291124270645775174220015665532618545400268491723657808281189849885207334677858394596645546197978473791210861975071461055687998750315770736393976452277468745239234284709491549249243030656431959217633780559390369206591613983772516936618231711934069925951461409317062116542305655466915270713818975693469721321759327209824849864078111149233064401479174745715642937787716007313773110021190367545352078739114130941770896066840238423782049918146546873764823660116495784423431624208317322883091978474496932192118252422435797295939282071935352697358342100116597637721074311812417781693727556067437541928341838104391074664901373614662157141640950632663503821525053815592995076730121246887004681047629698119445438005014206199027699882479900586466497410658715684470251232825401426523746008665832517514208034976932534409531578387406457588337629035860925642206282260015373975725568962665322896328483631166174560078448894448289464695688231448113822413641537597833516454702764260228779540712934020959025208132136483790698957130026140150542444928495274294762355814009122970780561511155950131809844830948955969704236566110516396010249974414310280991238637873238295887173541898873016208419291148054636876350573219745164659582134596975787784556563389598685533197157730001932758316351871511194825834276766236760994719474156279741920780142935450880638778016514806488949350991478410241541498880776591739847810586271168542035410362436078956280944973722373012006916049476330762486653766708503607478033025487013560482811571882695740087906410756535885360352603523720892398393699278352847731734509554668896568195502546920803114588809787926444052712672260262268835383747070184279747557681609127830777037998792122223100801762447058783346640096985186982211224197612358468619106428931566216303412823195292728507339191157492768138261472377258488539630231132280432324268045931758027274293205051953635258706719943740528438247782961919474454070485024240723518508337388678183766865293891746787385586795702085447446339677828680014309854616669647741802628956904969367476378098284976646534016608320747169452220616921599658222715202431383510495058284627848840307527951426273587050364752747614280917821932496195132883441282454634132022170944008054239183025945946292041719850457540665181921740706961288791537541486383117711890730579759683310825168486994260407477431771197034305570488107659298254338534835862622836632843799447051974918391458449339049286271323165917246878135086142509996039084949169052559760431331860835296861792286373654487791694638067247508794118028592053190302335908469526409229253528707735457286402298787322413038857692021194319087262741240411580036948196253704724824636446030199317164471141184385753985524489216907427807076135644691073504410349490139886702541471798072941292256584951781133841537741739027667275349639662577219028494248787354193258741012006124971318667527497965151738094202045643884112626608495259002534188083433466344795712176576602890699801699970457536474974230542418986611427956265603384848901575906928505981104491734386806991928421959776486978527927227330179811462239301475283346829271393426693000204212737683074051484706109564940690524669389149544099130438367483138139575274907432672960708360372419781058135805493441730994002006347506808862588814426591688683151869549646634889186294112641527656461599851352363532744484558365515479883975630867076905083593789289637880231802741546698136278367047345067035229046656552677485094349178934677237659656917051860360494470181145137464928311420454548121669090311361988709292754341605095220671278731720228261672206805470389247163264117578030981643359682038725457001280680789410221550170742050516831871415959486644371223667276170479971726039541130980856760743651634985434307665518878233943297810871288177935015812802107847522084602138596899070427991470763272643587671941469917088226383839746557461131515382568913688182932807305545462181596848054335294828583122201505282704709822651566472839788865827026827442219579927999419520865579320280488985774307254162771298080852738545965357567352278601799024976083913063799915560478480650798662626242445344945873906792208551962189607550655672096817862592807047978637972205889680127056227446117585906976988509018131804998568597874361080688513083095450451220946777345909973803881611103745826553646262396442221907963559676252883914095101708326856853943329462216018127720111173826722395801289667140725605927141949984534811029652062836282589088872248871643508680347630603022163319087587993315995122824012496616820250778302017572989513532522074467869036042167051046076931636713594124236769605624296898840358858890578321815711650886768492662302807766694618354236926176518230674630064310569871225631863266108592431887383342719383293180476807525174045616315925546761309641394676515563761198885180350873518872849283718470844068516890103560049088532274136725667746763469831829404352340165247739486867396733244909773308224518194677440463371098699560843428491155538431941915519666308540897150682828673712587298396394311749180153584267845053624095032637811638787704825326705020557764175185369262697887106116244283116217158324755894983109005262614531750287995792107712038751114188833577180281088278490132603324244568950011206394017451513051671187922300802190586093899657155373058732797942698990731353063693079631771002217531501954672915908318389028973536403505691111227862730233410183857376464871411228865825782775299103829123422898526445897072942127536681158736557647840572434586154424770156902041392176809170278353699851532730273664885714347895995326348368447943323063988138662049378141858878464153136791663074230150872651580216109527233737431913945138859992406143129496284808911903973692393950342493490402652333890814612374088507003467791457409451975211401526634459224340191217622064267930816140930398060536486342170955468343095248456372064867516433396922176999189146540269165906664562311365276571694202083178839191088489159035891736731530804949088731080331014005216838357910641871467891014836231593330780187901700915280881818697463151623654982662584648908799833690028821212542769102211740870051202934030485928890288050191202368969766536505254862838321517675836109314502614650923846704348981376313748226541496704510958485778937505741556990895715883647470830053349860687633960035510823541913495287941495727333352049495338589543774968753569953022686235884833809907044946225527870303710742358420126824606457699566588985452252227076405002889366218398737468818710073789408799305564083189128650163089527388839257177298048531340668030187103068649256604468911749604181526156306779220499033816710293967893690749490294759933814195275476709155200980338189258967998437633500298762597628111966437702640363346691218821287159172185446208498575637789879668707121888237446654550014893356172538342695110139983145845925747810568760490556900555907291163858012244478226606941724096443207446867462040170555078068325957484896593706786954639731692749254589341549684648140520703425857728805780721624665787015819126022247403797551325628839021220366676602027846559051112093141713524966650656480883919185124769530077296567207471965889975936904637708518542165709811430076374159409120708266362054370399614232577589596020669626831177791570303298373764183640085891600356986906701670366422176569269884391073009105534549489249311864757948668257721236439216237738171198738107159484581969547734686194273470122870056878939837999189957029485470927711802203813806616291074399046100426105505210110628639122860469891659426916922822771575848127674466276406835110932345697195653640441005885068361229091834165030700262152816983021586932925079799708187758208613404994728829393217661979025415548548079192816652624315703630929253608315193302177071601693985879223734984907201503651534996323980539809235203375372867510833445410863296740252925680107112602175107728197536450444334257843636838482351587371492065568282407193380074775601698088654488151410426023420372411708982206334435623707972772941060945168269600004711083241400360900759858441756079243437691881912501301364641900274724813836939476643228131584719906004751655918588358384571426210110605373620849735678901599592307279206441621323245676532838703219144631120337381781971259523016832010953064701710952005981564238323095539731260957912357547766601326027858416020683652028462255583844990806353656989659631174493540361347194268571091502609383183422904542210419535207493256538581532383536649266510448756355935612265787749485565368000850305359011438934002144016086829877445806612167073656767425394949210336573702389730802713836209541989309051371920306667916333443606277537165749360759341415861673378011133004423756029815284589004869582712835164748302412929245885566224509818638460038339585330887477484289440109058845033091037441778321534454281631996385420806290104544008681446642689412169312251193665780276519496587067373860715232426078496623202879618114433173171338799536467630641487657923788855501117354453948821177700079209976487974769007087180845396039220366635199812371168574281743058786664376461515431060299036416145706563052810503092889794234155787777472347896268086063185836516197143424705341329384739548331328954558754601808048237892801253190921269466704729779672000864426315927846600903466994116464660305801042833952744622496044927058131328525283615880462074760076153175350611521108871092982496183232947078918255493831172626065869316779927234794094023418468396245129662712184978917906133988353000998652084425353453219432978477068499275680967660967947696657127781767512378817979387232578293633412020817616921710804964870265545841480570348494652633953280746472170732614484317687098839864947411377898889636988125254101160615775165585852735868790223460782945139229617116399291277404379123565716978255123888217156067882369900237414915317048022722844121278047336658108985727547977527620537055918312979791434779499168754503224859075051847049108412178914813017025714589350140920376584045594454559213416491296655725619524092290770991718242272637433055607640564618135080754100507778510098566487270894253545939819766061902533485678540385472352864714582989400640116418815699419940898039017991569522202164878840873490663896730783320682327556128045449101376933537529845103108959229733158307298182230470908285424017553740338608178578658913104188164489347954657825121858990860848682682948521060959539603677699466764339512440119104865954452796220459844809610255162109155140231222831079669829778802763285720680869383259297903940091250797043590081873386789088763036453505174339631830660718036761161302711310252760684918572717407779746399565596992045005657348630016551736670515850215388922790098832519448121775376238894937663684720752297461521508870966931410791264405962708264553931850781232037754865476271070879875740747171366785534733648906238597966569395294528075943467502585604242592187217855684407150041046215409056686244412710980190422038236999177769877336666026543231436455130245779099847056889416837115748092792412041292633871969041958418582819396335023727261538989392600191082644786837925299970526336232493667010190787356682529701876833022588755072582136674135671254872185721806210193335338848647210224008060840058980881323129106674800780559217327506770920229166047723780636302549794086693196810588057314684919942568626143109275067496984739632807113176285108452571754946363902462672097950725479446040906802114708148557139676370214935305755039513321555801354147136495183640519824750369381884689216444777546594580640486862787056662454328181339776279415807230867688840083368676592653622007521231202038456512798764254316713537372915927137371015460865001151510109851747307727706117610315671576624013291416885875361405657073890782213410576496261475610440361143919845775482926739726315397062309581718871820537310136969485955646629448263115143595519329955717194420571255504061306969112415044446941738433994082310839399410563455833906003924122120130273064679256048356064903799748110305680375309207378042615994395426308181482716848086222862811933434108688192418322907299806251948462332627185405975303263515824010305072065642544596867353377473286469811679981209485812451378051215204182391747315512588793328244294402370374708223327404740807573660835725779661565837392047976140360393888884908621816711167058511187457728939307588323636474268305229029785607625835968160230643296391235608170360767625167593095633056401074926485130388615104957218489985557194869356452752868671679528322740753672580298239181130015552550347957160677150822901433124157722976721615179998307229356080619094250144441131635010223333505605886711933466678392303242366618238693256268264890583962845353410778352243487938031152744225426527955129783820575069230026589355364240894293977861234679778574348254492293726419026112586198990648828504898638175865542122378884540711971102442722054195299690011655539761685992817799864595861821448911326479170960834879039859704595977581914578666290823204178312179875500327698870116928016598016841351661074637384163056484181078708122028660389815904343218260733596751601297559187598979578836368847516361274039162688467677761680152810652654836873942034486811870608074640785857287322874712957492192996813164951583561387802913753437875752932724426522348456365705181471560128815706016449795287354734899015495491222695205679107028922846814972460680735107413044921282662517437662866128071529430049318776888128953425822597608794928855365954727432652419310316072640596051599048899631656245090188008330904010139425150558000890485112811144679495966873247846346756813200235946621862582257652452501198061152305023150568063840759368506282971142866060820314508080175707915286877773317502796049897149830931394239368479624216451398397285566350847538561921359770679664796508082527534059731158652294907810747608280781818743023489258064692268875241948740234687907968921147184667111456866595086870800288590856621634189789085483118683553592973412192279832891834025840720376985610728007014166100951281036703953647644762691029262739317413997241125303610052856989094147971995675975521281505467937407531922847937493329062003141648518835760759478379979607755162461675216134093083723308312046884020988141424486605267902108525302316744763931806929422433282887237930638220696329674309802977104575409050071305940937610036535473469712379362481007516280530234360325069218856539044075128835234848996743591867353024956304639041986929732664019784817144647813798677568343922966916672312618807889289107474226169766150602086799229848161909561258490113583762654642355624138808673850154415738867923061979697654359124111909308696548293540238508609571420908730020018929028769242496533775805000163727678502309680625538638365957144760276315113853014576882626532938090556541042802506622759228840784509381863538499675759722410919605883195771745084708613872891684683755528526168631378341883336410230252422679274132016099113851892554851494445712168350272804559792040224354020103936640620658619428386517274599389139140904334999321590337805351091595577070233372211040625653323714317223843834022366513404461044287714620056140113105943786812928225110901727954155756891127944596788884401100905062847954514400488790861855349893189522326393867868978628135602431199370508117190833703405362096666657688826231996261720612557621890530820656326654124696888826988509543686719339755486251304676388578218950641452693957124454515158012547245123343342630582414805696459242237584647222475618228197237899513319735572447541334868072678120383395846676986654374577067634038749825696448115474284110924956944775774212975369165109744173616090627672273283643200113334343255436340459372662477005352336538242103343655065977004561529050479038164357079379231782334350034087348809373183299118901110644761344882079142351746340644286573380677087318288510366422181371017766342398323704973000271130641688206164762484048244697756985107156890645072565268714954402923787833961915350071944972731518848753030379458367344338672907368953278450667738746493469532135540257438840697893068348073675785332433163217471141706565665145136008519674459432518241106368857466200539708236678248542469358091733595576707058709262415894838750133562126691624772768451497177458618245450034468153809893969934970436622861731221744431061366667950461310993706967511879010076382404316126746454951535160399925257593104418932223599428517705594872254162640604527886227094739891727837932853399105343766788924253095350792112544704817396824709500423759812955202587239489450998244658309307786516599219764959031454447395033603757952924274482909455109405451361765891652727199159953069104148500462173613461252569162543588752033969903819371691138044038208258364136026573042602840850003689504351576787620166222065538849554183038397986780225134548423090845351986787774908768410348049439083437601428158553234938307953944507602091193367073520999836275758577555792323329115857209237022673075336092332083431252083934841585589626097782632826664969515518805417038376086587133158047159879503419417393017958987845048070788834222152425196277025771341777967201814089807348521809620460392122380732192640193536878205751196946969123645274906839566697716627621750770084493192347496035304938095589597683091434442966673187118270105832027815342331531668016131002103201429087180688226769130386194706011696976547104295912971872149267550794994994254286367524057595938051371083182254431333098773947730020705058352465585237639886299746552221979146049136858136334919469427393502833218438423941688216668908618282297824073295648077236027289638158661379935498755914775695823895825075656850077026024854510257604240287904814738093814721644020149290957783651746937521066114396112660994171465928043154768141433804355029791562941631045428963409026817224244593011648499972151974739948232502828678031866888904402370641033520732193291926951626257854643381233261806741158073325469480383334288244230304161774589510864028272016355647048855676875625876827222490758733917276913757209320415290818897100202228860872761481766473436023941327226346279351487810848923398692819645378766166980787575874230279384114784271404148743141754259986958953549701615364896490102088651481818777209752114089902642953106006836358030122802078360617746001689718412553418308085293401890175707429720559136912210280891132225893901599204835944776767252882258101353001127500116392151626353872356449687233061801550819982157141876847453487314069780220457620841156724130952126827440664248176675634263971045314302042989795756565627376817444997921969570178720305887003084943369704723420113621604677120584727171209078320605117554287951360205806488884827384837395522725121245146306569977130217636706904452333382651304994914304396616706908635285973510100359148697549455426356919833756105795643274599837750043390591894484972381693709266787461254694654803954854657635305109542129510176057813517356922154129408099494079506709438687240970248782350627089001883731003943238132840997430565731567634550852891022663262560049713572988278065169847858408950123297186787100741766977317877838105612884471368075563506433984170498269029917224201250501017915626220396940335224184575560911753264273227958207628958955896806123681940991527022307194252320651451928684008168547084672759471900416069515557248048671142117403426644900089104753704092507750874077554780942036616089920483401726833141950629013833504973653004079230681210527706836398916175207556735026180463157251743937632298058709330695962896704820555830159100172257876040683100546341672955147538338804295956144438772435990645860675262512079942926138806061240757273467012544521128522459470435254235097163393351281964289166495495840557835528864139162861883847453341136309097599868903830646237333785828221805837059896868641892864259860462804884948407662485474914066130352629019552484890022075470819423322988266533472848506825752786622093131002253342402444073181826706177965885746748059372609228479639384488252636990424434615452927986963952955905462955056384304496509183900712051751845508483862630685516163706180594628232811667386352236876211885965418542847460292497159188808564788083638465112676153541663407164739281586881426367863346574576401148182996738517767363890195739724331270303096456466710646191561874785759095087297605632761876419936818687461681788493824864027234807301743613574548911339820901023947932626858161719901842502824940684361095190179486805120967818890070050216833367078715429328316998911691162570461783039376127849955414056160953662007088159821266173569002347695100692994139632684320749912840641562335912309738995713509779411396301965223772190118049410581806874676463108660054304715042161650705113373447773062773778412419248413665468817006810267372060051008082478150214945687712721056654704096051807987540461609479303112070181655249421290585244701777535494636314599062920710545132902691517905388354316993508840368672056062185005899840749250531749719679144200968202289313614906453189539806234413956911226101516421007611027936797684897022021638203166486681082286809948084433855229309902353490451005621450588245247888358889037934189392478178475959137560104619998774560491792931843372276560452945236628609771144462978370905278170472597668636570895434619904784348606963365788558307769055555767767659760533409403751592256526460399364641497986708855119432717126624505150156796523152869504329589798014397794168157366189516520297990466412319903097734401023690185995606818052014854276461092612423483745382252799958254151225841532513401823592348232575863557140283813656682131971561060060392831299509562312695039450561818861290960839707817007641867720735851919647307597055403396275291978292050314767676744525192985652380821608230152425637363416834709017614755794940664719479782166861023136796281307209442444776098776230116843533869346711262018575454988830339595773898732369396209605891983952176964550036560577421655251339359074461632299795738791399194079939769214452463372864466172408748680418479854721167949844291270953815094556158498845321376666092385452270065829881749164513627827664341991213191947962763035825581881633783294396682004629371437692592516899050827571602967825572653192141459111912006246658586467441344822464233576029233974838272087517090877319234965154807688164675576004254307268115505815383701953895469057368148027242728726549953356650305604381377746188791045900414269766792071114735786724878367687654331579557622906325230937988196027794009422636001236216758728236603332092862522471936674553035458445189775985931510611151814099645891183112570118818533380634384236725923404516404475970793870792442614776020974419158638709338319473506007360762637871901912242458839722892100524236306936583990862497004468998985694933325977453302647688481138117468299305140693563848348806654247637934603054855070061273064175665642194371167060486575814648921758417122261200988167180773722774607246218418171716239908322462401409039772755876911847577124505871205609445754956526655529549982397303414624862851830099115512500122206914095646940128961839330142841672295200545376814183710373730663189536644868491858687461447279840477838858695776775351103127567372629732548435670705123056072152956533924848695700617651357168825114989123716798294239661161408930683777873309582835400232438028871802790977401316198051350390198128498191337598940348882644799126880443341851084429194171287805001082349539941765364033398725797139273522297243662844336225387387132895025650295333156589259137332383967052776738577569641665755885188509668790018980131672419735008272606103333281061293059290034224915028724117539237933266229385711355487505597636778426124548014934322659588862722758983515523696855283036525703392783493386019618057402136554854942676870502938393727068107184400648742037207881842207106522086235230104603878242076762741584863033989621327161117557630716190115686040271943620479198975738081939283914601851836850891275987079938861893866535267823095804923874145670730748981851132041540440191706679968225720813890759302349772281391585667761459458898569673399868997919613414110996504652162042116397468625952045992782500872469396679111634783765512381606445190451248829366010011852336164357460501268174742769910390614230242504176056636329285296107988984153206480159272708854149468075540966508808321106184981514842115556593444880718725637171832690202403407593452738109480456920747777527264976672021526592478912243113331291834662550661888911324767933342300199538882843930358948990812664712402845561305867034662251554605325714940140996992450479243981777583250704740386168779595915855662775215969946081262775106041446577848940531082292116465243045832633770743307374948684733058112266532230929520479124683402987049162984839317711442804671080991602039668617927809383750807417263585191510056928661806374395995265297572130169476472206635652436555296561714706115654453852696650609210310875141408410822303029286480793482410035374978342684386950862943969593374804636199784904567425582425006882666401439314429999355617140934696830457151683021073468429631908163114542906537194707239784128377761007725228229411309450928809450092646018699463029031234368449422888506956648547870813042199071016431152190306668801370558848197328964582357877523862684811957011824021518156310322632652578237270165420025957462207365633422152621333539093220597240062267905051873967584203652213242058132691582582905885310265065648889257790775155920175164429702066377228926657308446683802325658078767059644660507319454360296222375984218188823242183226404513288299949808211197000836655477936999139784216908784759366815400680044185902548041121098856358823142272784147112454542922793187663140854465420247298296605487191603783066878936989675169181580005675726091909870961539856051243605844484907524261923117091920017076388078370243250628943788338936369305214154061564753575373211435894578847723251972757097549565435215924638206396772965548547222472260970394339246124103026612255561957784651292618378414296777385374732031002829397761950506327026805788956974947300248456906061695434478727292515751991863046224698454738296855731561902971159809926735918496798348996434372196684857247543895318716569217712633692412121453073081576015694215178010188613006068785976653598045461265440250805049668126181562380333400692971455209205739936317946652893102042433658355122465061243720891064938974205975995457862994085403622822954964713825151448977889957248422718871868027767501137811277113242626425456866956769703760366229782249174103969381104397989191099775721355630360631100931456381618103219411990875376261989808925950075244233311687406945930248183100052451843416227926587303322292391104455964009785193301690273371341513095402058742007954966249640354564446849336531468884885412442157117231271381564812031602760455049193598135761052320156255051779555068731802241617055553739574045648191564435472329703752609308558727928856047597122386349383278901789999256977916198317946614762452799983909373828920339768353902816665570420755064137323430992571284606513468014853298234482278022139789560783072188900352187718067253832273220978849891825914508495711232132849276700279333012573180791541616347483591675013322815507044816457648616481683800982165642566200749072333854244221644812181704696114798036924507583599715541207414207134833032445853692155292594010099149164701033377369809877823070867866365368468552856864259751006017219149184937556563937415474323681237847583050806716008720386421264966952008436520279985308410686130316542760752059347822746120569377382804858985502857963944295849718651943602099801193037128674388643147374214235257480017604386051827310297985783245317426568180959207602024945134599233181104614099506457688918479064635905426990589926718608423246448290387565779841563692478096047730356127985201933291833453802071827699724746023040660075985993401715163734966606505448339424250180345724111914041682345837229833260499435857158450466019274209174661436229139920489525788936392671335953002927171505362949334905840939713273421298729982412871427715607647258592300484746647812625474362324233471321023537706810161492948820850317050286791699079452005138576088734711257888149069139344033252856107291302004009972615123396136318610911807541944115136165362538264668769840692887180339636568269904927576344808040122171910416734068615352162367120657224512888471324972023430745344028718011367188666456024205262522423460328241355553066776743127836859492197996715845821615006187514287848048927738085729084932928474104018929591215465396374025231495555498449845633489760315777550027897472894657773056913540834022643612754436146410112844320599989581386410108094284718575680220532187056767594528079701136282800983615837359642561956015747393030949568398831174260961384397382482927163177328611455117769938586216975199021529165152039635547982415013200399608886000072343624336178779701643621393225984959204030373803212494017975750230748525671121501585016749912770194376998045023251277911687282885814490678061838774957646007482138337020981579293490415468098372766792742116202126126208788561959550132368736982107800563102131070509359704052553695128640138481647224657644148227186448032824843510935124947882973546156048123133488621234020197295236735849226909129643687147097733069004898341581596658237883108531106819269905157171826329224495677981900714818537449237233800167753350604206307552149664262558904421178960640788167776814537339760518901246798065935704735439364056278560766968600808993600531129585867056124091916787145832031897428845597753670199074548646874730856437868908453683846348126930958432090496716757669998611376294539696998864507654820252847827708700500074377724921634340461081517501546523315438987178726724777861481730500223453616439160096521466662215531984254983073368064586558146753380993648864599427561988119817944106222743422939513897439934571767473966873401270996959171184205231652819144041662071467473819235591546446502889330935455577517071145463469341934024287474995649616678243898808710565923022595340788042955340191006457579861618346492846367107093911458192876210327468424339638668825297726575567224607696128198346671831358110898549474090166230720880237333888712224734645833871366248403426252994930448889045823445311672022200107727035292707937606240478817118597940990855267151790070408388996628019461594315767074259248959278039162371361043720258381799157526081402754086492082138157242672844113306870550848559078585695891282259522577225374020418627145673549510072027581891373685193281412724651431309722965956667186815146530508867713336310975500814917745075180591360127256239455244743507414365142033476672174200622509668506804977870416102322196655848718631135423022309939409021351711621909793548927453460039430912643817343371908934209312314340531354748098481936017766318667376134168218701225395679284799056405416129286210616737721168894072473742294562293875998079589990633600628877561765481662636942005992555087093009142141471502027589913238481036493526677350547325077211731269124525845449522628261243149267734788227745162315238269756012656138049596390054260171912553994997976551551608559070799487462615519171357070517384872514963532138009083790280658246011776866464240514742553248385933301910939753928474645368473972844160039213981273058191008960811773316793075702416895473175728381989323630348359525803201686101665392798521583659878961585190871174365023825590462543555440865833193464755528277578099824196758148483564999509899901290702567030924941272398686948331804403410316866048615262012745207643975388334158234136345986182888682144716370896228817238324998574197138277402160839326602598933021798652318959013139639581258234703044220548464966277145680946473239180681599347346334005510983994039137391317735033218013959600840334248101463588453200506580215258613087533537705011395340805385087963743642602390229395691415627533810797286727818540354378974587148707884488659870779037281702149648281648694966064882699641131365009063534271708083270681787642493261462734441771801425440229674053129035463199241868401658169534885036549011439425438013509363648685560565536658321719570865858356552919062423104192258043223055287355772509833631344116973489004885654665254194527058218474522871152950809675812351480491487055296522089889876118424532507644191488941078113958398560017363513576192454759720913707759035783009481791256922822758511937855480421070470572692793702435574122016428221815773339090115614407989762383712463538397362175453581390704682055560627991813806003933893593545697402936067967122514130084547844222121078347498094559557216520857466209013659286969163602668013628387937300629577680549469819506353236160103243004172080815914103431929315311502984852388859493362829511229842394591592256417011344082916436332825683750886299759683743512254844912103185765137473777679874814354139125521247008268072591261997569781435551875413126915198978729456700266901504776896309459501863951138668922689262457179156761934218175192294004789327339667183988811877723871839058052768212631509440657285973101949933003559012660807651375028114963934556138690197773865405102299756817079156591840306305067408045263832807770149552283850252571871634733797505476554505279228559238441080031960291374056468273723150190481224960711414145154795285906793582790311743415730788095327847718809038353296988704768148628135703893449984725537729086629130340184358749313154727794673614858243221881890976145153845556425353875461806821757585329201972026790715778892598367652015126466320112517873910436823818920030850188446259965431796324704191208454662394177056209755470629604894877490144057529084278096235554738867331228201460268683758360156685767589722778767384566669730787151128199685745518610724237052013124570070884213743951247475461740349990934101803790737636883859750594370981949774970537711445748457507572972095432502572901009067606890410240295573765514763023024394810836672510844257299476911977655768391138706137805608262809464895351389815137795591069798940286812469433145060825440716149299958759000676464880361287530859447480445478904705157197593151352015460373384005810352036475783396700242605770046171253202644296484980813971452201413697115672959319389169001608218495310985735610787959077819084152344394460302778790457598542051444171598291314827418609435772538564614522746981743222881456651681117168502132237813256169923285498369718935095689537109088002388313542980281633172883254884136071517156558032098117512026847195705300236595674136691461809622984865378739304572618214650347847370763409415089674806456375873979668035899832313213501120195630654337241005216735335535254070621346600768546016825828985060762009675368808108587711661929104324436343169308774618642591288460930522927377294016633161230764436468866106760935917754357298125555552337178097805668518420957517712600433686072223429289003144483962326511176821214547140926909328201137943841202372992422433397283013759717338501318324224533560983386611039216018573298130340292047627999433720748165740216654592082668043152949433680302138084716982957803815762815059268908957224485391126471711156236089660104397661980515586385975931798552391535467568678755629734804123944472528607992919516142182466184445771598159147447202016805983860263034335968013663404840656120175297758366185136552361594659094299883106170536316043859649927663597462442879821147261401169920547653594600517560482011853426430674228772299603986592017420194772558124310488799457711491851468980852116935999705496581749274435697253949736766099883957115364937129868458589628960567751177176017868494257754297050660792237772679091194456106805179210675103652361382424129701181815236714770222586550933827259847070359197890518509542413858222405937787297217590099579019398895351742654208275502456154863425306569352191082817312486153085002520918763441767441429172424324843117578487722241295297198302705664780668096277169402676719257855534986793154980543448486991582834479645600784367259128869319382340488124242140424601935459459434123619776842986645508822444748784177410397071006528722088133527813022741899484598033808546073280366203094639455040029160399624536862618351780317870645819671968909128496075903369441250367245462466363141333709123448810034424051181186862864715212478441090031195346787632789041488003459116648839473634693174933864958093537300132809553006619519437151374775884987051312145797149058958973664913189829325453966565061201039559707847829482848106200872358323655231004235827913088995517249408720737588300539415373529032086815673334478607446670595092082047792032936638662173168576367391663084522280810329375727927961747265234705804260550924474025074235426674000978272090269655668219322938289674457008143227845003260381145359075148199847616955903760422928501898497759724416665233027762393300159176850877412396366538026694227687560528192680980892223269222185803294052391113055981540467428343346904084623275651529840639485600163476956650506240538131304817108543159208252709940868879239248528091877889692978997176060798767980914786194765081259186432996911777670122267290123792563754260127126956752309382092295945888346085542195138756306590776274374254777998255297622222258650968069243501508784281750088428700693415922409008991635102628946188208099737489676960403000792093750799453402096720771660875590798574237929806992070333791284995844110349706576083391461369416024139859585766685755571451316887158003588427968081310399173213223574649355514127920907258937912159155874524378984831884673848793998026371096949724054003696023230939700541711534549332371062981396731368201284962939850805940014660395051186930704911253112388291925304511475860088465121446023972688117325297942556407748352992306804819998098133338727685803305845211929222179339164094178043057131960029787905258993924521078250898885823655832958971405786310239173001594193466519971841135749892437916183583837438770172213978127658593420630308525908396452340734002071222039970255733561410521673915527100445745654040942013835933256969202489905919688721088976436761097479266533121114066077237104987354650661877024783742737703838551608559893754001483313659986591068302569858023942693611906835092503652394604914345548783303984288854957588776742759638694739682072681746298575296094354074492195086791261325101090804667345147799057519614677900050775589730747756199115561423491510451078692882217918026616604961637504110020462916725347088822569354810429452034290603002111779472830317842727391036414378627771717614637865326797402278603292443443059689130428937391372753485979795081700282814084730690314168761280439812337320061128777127398419511060027596995722768154692933420664486999636786262018044665513453010305938945512190891770860765138333439790633245850477028261849552728539812922882370737094462781109334251688286465570603305373274075538188102812226270759184221873160914234623911075246697976014209387372904088661344660680409425070672776217342669532009106017388493441589116633322889517180105349239676659819000529714673402722273832721916911062485625162276895747604874837324252692186960757922902366499198730699507931194414807647660622232425538555510828881308196090100244197393220070217218211617594471649791258531405531145899204391986971346649060425896346059854729610531682669632789866720734155321266587906679650150231177188519046795193774081045767447871143329892362538880212467725217244401114242733114175537041923421696512773229630473814141489719249179841940885870372708214353581758830388891791479751737358214267421173170509210903961848048888150632334681967577129440814169384523576350404626589794525341356173402983117903171790988614275245805277369522378262271385257621903665058614058310737587175980963124232411148091111975522181006894793885511495319023194671140798690290343403469983757123170871497766260877312612037441265524388533384261105454524731765785384680345095527774117523538686784912541757618106479131404773954050709351226883051003564157858039052727622721626956377972103713148334764660097955534609410103876630904681819659926647972381495858270707748049397782163642564070576044868355350644691628029523540476655405282395295643271371605373718723018344093402298694634676624233311068744841655853543416958282914029533983615135915591740594459920331084140545822394753960012704794447748238311283118091057949637950151322617025922686213423761186756579323026479281271917115807886553624086211598860562737381100553258103318158505521501185805025831943591359244066697498115134161777584414570683288163706113483509945185846569571996312470493335960599042077043211804777790868802975033213658545845711245394249675259222696987493069305163885316653253071393603697453428531108016142465752463397236824745243813463861519386641639819185426759288789833503131156292599426997283304500886040797330059232770706354477746493693723089373915558910462944207162026620266068163086816752468284921784163033610030290985126709386809722339873919589393677045207833330822395307638891887339733256769192560735463794402365112883405419081967223605204782446238511842726129181420351727024128968868421234581836654466372037603226942151573079178400583307239906979040613169153165755435150561813636582974248582385274589546007019042486656886864478721675922068604871015338963884935538659969943915278924164858204024236337600197774243712994402569472320473542560822596710025133839465555359533855050369342002497402962543526622468046736685482775829947614214452354062043121338589128556585998811334221137159156297835998894309279115682756651003343686309830167108762510172694672955160760411390000100039210697361119553457111339152953595637409696429835072841864499193846815660955356171871216773032211674604927973605383284332340814695883893739689072293532943858966515618464793347081592043542439835229360117289437766939916327370700833359336064601234606585126948496787097984287839054733473854410280846007441998702067831643751653289142049228712059912625661147542090772285175576425986006081003575534114247524386847716587885393004615289154616087021960654401909551304952670796347778450914316617324325341626317241159428973160486144867614225082169907702149437566322609728116325304214178390982296461790600297493957720085409874344428812582987321986047333471630128588078440741968836366626864201309671367657947511910227678469567871019964237585820872467543774640607525172392730489103761910846904714555731652546696900232477902427582647711579233737440797969996756684979103954488934584874276692226336378268861449956486374709778981989192733716388310526845344066447423519139416165673715203060640134870148307385442479219051254736711071962241520328311032058270425903755146161682956266019835337303099764777210691371869668403257932197679576531485830048532999995038729835553422355862222116410289403615427498470862639978188189209635200287605638768798624781031235726992850372176875143727049404532942831731835835670328710689880437168739492458255413001202303978768865285511961569290999967893132549888473198006254231015686282782952875615719578028192382321851952385377853161533894647498096799026757856784484728700537188781987351880695411839451179057539240156726683517486130247781828598249740225916283812193965893151136034350284470378630265711321439311234684448033362283725473572807881789152591561373857011376210000281633075181910078008411186583316407260633127828679218112587410626689940681561335577294356937948151925694351662953381810667821787370087127825222679834320868329824339071354226119555684288726434942818973993052955114705848419823024388538034190484272771207370069567085413377446598397953804609525130006207342016938794545574996070165032894121905176729838490057907689598499098661868588538556413275719957115919669418934901050599181019518966865264436498041333283739432389716600030808406677665469135706983475862325844067145240255619662410036333066336110568009391903356523398433486976209205900393086955022247872094941541149595154652802911404155819641074349206529371473633389558809049414059775971605849044651891812758931249733399580084890926714278151272634637258748857183911642405950226293189989922741073474869054942514199132122297350184764893841319589003666382066283603210582707068255382038237447752506097465720828132969486418702151311097159221179626515166521115677073166003330832352112578133100475958346549083634453398082332161544168260947322599164707210154090752405403158014112658059964696454722334179635157350304664728008082977714565300468268628975337692368748852733086488476491877658008459628348909220415205811774830516328705327007045230485928345428027752508289384814874140971426240702589012984511530178959028237827777933432437398512618027792062691341087507685998566496591384970548889426803945486201501015799445207423255903659975049045114873078211678403374236228479107298417976018459776821029012395698544956787783744941229073847157148207330849221726696805239153287748975672001244397437018841436526077500209102916622869701749867402783589503448186757703051333137567678237257679387128266450227328688644731987088805890863152149345561658399139339635736164293602066155073940439693746068439611962026764678498159076161128996316561359794003373707590059440718593002550609350235648014365686155250475518228751656791180275938702699400575420212065959293918146224531673106676590890144704641168960307068795650525814964402564160462153605504538640049032164020661094642119311448559663275548173994181576097660528888124264176942429947453387577254042470521584874965304364081761781564648722569632970192555917065915843367339963369851216274567162883150841013274529732141775432267078853269009474257239716295388871547405541960634294367320457461581229391451791535908943331521213001589099890544547618194739573531365877217402977367192825388184760694976956299645521982324516609436793689809179443926980025523368092647514408924293072035226357273874311001546223300119765370575513342422239057872157312203514207706091255015437772843962902461564521766957889726411748107360532766811556943752285842235795222455127633884809067066102516567558437637839617151800717970598801244274616061238802179224008209728676020220928328928889224849355630380070516043550721615675674509383805523215686449798556223738959045022356451449582156959795114141581834177549351271897801524225435075868029000822521898745769261003287645081950243864779497241130281302958366156155612774339889786946353398055608261138000107647622107048737975059751294026875526942389486942907625886195144095514613923335172018947874434282540500277201214672124683754109654842464294080332961031008249275559604706206141194255025331219532058653267099252916659286395401762359228575150518089393239230731456942176217922825708674036690940369025582219306755745368446583615659349528648352357992844667074672641990938942411723747187174230681016465591688582486840659386121654374097290388967752267031153833494091524831424857935611759637504648716575457533362444002956937208835664554278078649042506632122659584340564460332611496670057579332066640315568615110389737827855564675402176799086449509663853608095097331508880892906519981233942100235451716256592363518714001366503655064300633926876687963599753248732699355480479083386410680242582014620191467161692207882973683871144173700794324443756175289993000241594245520812902622295542507690747674575622918483075717276653957990047786894884827186493884293106648815648488080234312286868367931157574361978541912494362580154835103713790025805127321958747498691713906234934853306238029290789591540007494126183192963233000243395913137788031632952626357280106527174824849054459054119644587361108230207334787585943425998644262818104603558578967040728842103538618547558650856583655486387665921756519360133999045913365702259231541275474987342612630436309549710854819263011243586126501544575051703168435857054655970298754804158820057040344437079414884025540912772458580670097144516966827319899317173793763721205079835034937771664341378548120550245744106512570133570868016677951481709396689053787828079424189095082691262212222652737229857119263676257592627158364340592132443322636848130058349316830345175247155513172120776411996677607790237683014678620973115379055523072736425286710983488010734087768050945739433124898406422431825547807943793277239514994683414357860566932348734633041734793801564902704887413587991910490503429636947263074348470385816220090886786742618272724875331696158337343695185095829595704201920548276387034308059742219665589830829090735925248564146247572907918401905829252672834411970873682099935993032219355425795840054897885381645556321074014970689587929305909708984005914427558350844704747600006764604095570467689730244209126736101934742920689659294101219696066587989152135740403227429552962505578196718972109505543658872666584309734446285541366558266959292266177201152521837952087417020797784325127267077286544037609632871921653468638057424206672184267716130121172715035949060754413987916429656531023358372856408481304766643524925302741914807851625569719803375427742991588617384062058370526660721312154277394095176484094472642095271626504935165765395917249038836190970265053898583689619089607787873440215281584782719819024939627666357414453981109755685456185724973023000761254540791821032509440818430061115829147926604941974383722820085660987995557267579064010362309879169245370125444721857553836483943009312371031572493059305938888966088889459238633290721936064824578916295997518306505182581326485098423038248989777542835404669070252047973733850812172340585352520827943318039002286799827997868417660778689113189884937240003804389582348634997423292182169703780244608882523900843597007748841939443568863394997453693537361431826032229237577548549619274580052287765184148576789615044328440204778632775205002859935576350508963221819954559079590284597021601530670113798194083084602784342109289906180773133443988471545200263102793843012235960706410564206485212744944855869756514366704150517427610650514616271396547190247561483017271716176224853446592795585579652197215661555594916109090323845326444070894346593129274756705456040993212304824520340274293306714363531805746949827383059587947406985890905258319869780105847733641812322533675645043842693070634070901244822284744613488058735513052768674391991410850372583202218890980714290234534850336595177920577830425875038747217976425304810974483142042287338418859478350503392692309305458053208289922568259721936438976342925217004122546600169593691137428523168532972096860243023354336664498698762327545891674138939842336750415393040789707109139439046436455480924059655667061714697066774277748053264461217858365860586371906694469104216303191386596963027751595405533168629785608986098117125377470753456270044746840950008875627685437068059787618795994363739143224106621946693071983768899444303025522186382106929826198648996696227647334638907556915823139521183398778114818837200824683428248686780382711198072387514615858129014713873226927250156176087659986079153735280601767220825038974819466759440853905700548836260319949344539182102971823304970983003108706355054704938330240859340647543984697988438528503581943510002835506746729126460342267519770224081585987163515213175677341151198033780092304997264022116413649236894201169181248391449976504779355405848453898621366105847001556026996270925348626873237317059961668735716927785705652374195014798199894696228361707871621895912844322685322742376087247785263222669604213999798472896959068385350752615217712638058630630149509428574784936315500383080338305258907657407132007981008126682066808176180318180831528318516156860083071403192463722837739072828671785040060955405671623753972211789590045363366881459953353956741761044444268362966289432166441152322519734127166802538090150458958956435918859370900667534476048753902513033221020550803385887546254036595220799311345283036953118359537973243543008207868490673133208104412917818858962712118119636067151469321024663619531917714309756991119809991468645801988685348618444693719986774533769273141318432281451504600459791401458028678789539546865997359523390443272665685490584969446836645334524601460803847946290324026429400050856098336647750623080813595141097046702521768005518808086413033324551188240822878445294156062862354294113414918718041539460160682048274574935229666823906101759760980614996337227792228492354134677114695889100648529929133244438250054440673626023116876375228737255700307024367249543887850845948991697877286804114586853423511408026652872434780830213479602101926767899075815626216035612100439779237414830331395314871492680506263742728721201777569116119014203421976758487795524868684323073927359125204209613187394466387635854626421984122158895539568474106561412609898215990846010414856031969905296785367692437463606304700058386835447049014068963419245606460099367534079730639134982299660806162981576218452985325673676178156436558709940923325079880040254054686695077780461718837787257633875850153332629426900662400038310117081824796706349163728900842764086806211877594999311312750406499478444929145887042539579376493628756831369491416696074965826282361145683834348113681883985944305924711024015509756346547574388148845491420742318239967944833036635187905687143836016648325755593421234824540176889417977934661941042782926708303523108553009270396562503031772777122987988816004616174030797014803403795511697659882203748849820561425145591840575619883252206641282196772153690673385010039684520988054415953960724107640634674892255769305751472989441793176977511014902149001403000775100231054872767065505848823765531848567298337152413045479824897910221716728818517763176160892555608932662691235402848041956409473344162682113212697631937180935415042760567256194967091773876723223129884341871079970395666699714441822240478446009135625595717727156091083181433413860456302090015582716064325041484398179746773842432776390967611995971042915928981270258573664612661594787304128068148367247610767306879045418353112966550223193192185052657404383143878272400206935055121319469297404513998266015668205301189675511405199344067766661652269829161090417816135333453767742745735788530415428908956004359167952944153021433442643530634264232719984210506738156935832009216809262752107269793798724675032513590591446222477666968208858366791698386393276481935321947407461119055325688334564520687167618291193384125617912153987457697777598704189035789389059535375815580916747266246791070762178402514560058392547627138709085639265868234457851080843921726014631735631481150392626085326109021975895504551573033920438942226812346548678266249880824913097101177771335234656942350092114193556955260300287674653214579567557710551352834540571282772916549485546590445999770807747858771600934946449426923006327112505589909823078117782183513260675835318576762901793642238446928767827922811493023010492807859636383957394843789524542650472414921328127894266153990656534929400925800289570972562911682131901324990917738495013843961484314830440836545313625003854040172025218418431644168185113414645808728876817122774331581041805350437764194130995606756356018357146715929884756261321528230808815874801629389150693295320264286693632496020320338413207052439512456266357901248573166114329600749787240354938498586412991228063340027537845879406512949831213448686484502812296549875980704557074161356142925807425658987594226097299539871804727325120281975854958795095593390119794079196328835583209800718935021967030656750848557307995358007760744224969892490842134491405803306635361729675126112099432904424195043485111915317559546558678729341348629018437881900846998943828929064329371074605631947528156354527159845556324212665027584436167283275823721773959600821051345556292819112607690304528494990120882974050436144994501145845852629661563982807162206664759395057265223500835589239313981955378994423755087600086640868026243790010930481127593826667714359523677608729826570401894080566038486718392504680030422858372196727293375660486027419196208400727456391513429579196190875066619113028587029704161623720458911057474266059496649613000147780984856745194027530010583282881853452888825162366797882245905251819415038301338866501435683623696133404424744104066165295707748182859926456833765220900924846701139457841260367971421148354992750856456965342425337324860793171312101913564218760456227546647154661647374910681999244175503794055328392015316904394463665074532761910498170183382208081846800787797993124741637904304529190929983353935618237213437353701383885451864278284996679994106296474282517314006064679981870736016424755423189656155331201185196850273075888793567019675580504987642135561725882990302987794464231847420425272505941833491746430353653118250821677975040467388294071489580132745024758928052853965765435379319315065610805228288310476257392467168767518669502185470637143493288311021806624430949479642230528340476520110164628177470156611609848388460394905860160372655536930837100090097195909209775319860665589146097692697206131093097484749948954361571704616287912734212275644933752584567926516005665475006085798378089308074479103144637935488369588900071327299578875512932784897809001502528945792072827392732658299759681346539660387562575265446912781449089563319821515727382750147183795157572033807623679506733422647220978190496693325550806025441024709112311394590000660407875574153482899435014501476559852169346030802038171782440283853555285328260955046135695281145819446915222686403424095235717688132136212407705831711946465099673204552872559505135199954006868683979892945257050272309640977035538733029432520265475630251316568528798521685379908882850593583981023401564038013504570711925770032899187622158937054169579163806990568863084278354481400580172884934489234167026082107383789384358197691178268736893899298848884118315534134367021015838033960694893294041235908243963422132643370341645588672591844270276157340758066721788115077513989830845111260991207248747171584936833845757934044037597124964023353795057034864277325574284129671333708408883968436882262931735965095492363388425501631632413903947921958392250371271706301205566192108343087532937138818916848432891505768324564641106277554330809687007516119097291351663544746268974465335345325977716552546169658341509041824409656051306335678745223808966212431460759699728529058251863163713436861714514749173143680275952798826880191533989167956348813397349440160559501904770827459171556851468789046284840674537883198863893818984183210212056007706542224960394193924715931457593540479145637797334528055508788460076053423907176852504886720127390946091268451870987895830905586190392348124341718327736731039833480641359413326464328499834039919823645407710019407782195629932857077774453615549984042394041213439397499787325634937705098090913369299241030859187835503191235209389338904612302423660477912801129045321264530411587994342783394445840048386731426105131550819320773367663801717717790991100432107133716737928333372048641457567102921895325251434940917087677595746469924214628087572680687647416248083622035011703793229758992162527930012002990444527301071128394382834737386775729252048721106924911406559538254386664850576290498785267134221420327715845663740545437561338651804156331410798546978019903130527633881635011967490124237227742854849503434965012507267413081326043914647206355063284664149263533314648921226155550981109737656930105437637790283382908560832330352517134966579527763958989364444003050352211916736376526104373267113332759549922524717828861684446624539412760038519764486524357728020070658917420328653410964625073862383821237334933433451237543106171956652378386705817013251043305679694806667872166224360734211378727344013426167670400134253785585687207091845559459367240065472189082443547446281922451434687012524197373036534364233064002142876338536627253864917143581784842291973227970904382275958096444426961194698649431562251262597124663336782388451158273807014379237611268204142714553622846147261114575508344193477002166534101939014237948086807462636413045592207557311644572745567699844438286268649019815488114028057891413917543101077091988568336275612752541929464788571255658294307292674837718332509799614948131537831830085362533603309598789382476231580489271085812199541557074658353989151352256494170409847634344080667451000730880557957526466957932737418775239531677590868014984344849444218776732034727677300348240773477432371568345125478384046050347374678721201772668447751017706099301682235102941775834674190863636710510449736638248778465096986438404266216354166875457656640066223671036506719932469534469599579479687240929330313274133947939943004397482663066244901978943250557531957289235275111942814888744390201054356513625351124904082864026103553408181446192961287361839251601977472932710708135791904988653320987585407374053814899544801561779683363165230188137659521697067774108284940962491764149172794080352452425293749743153286735033727586286724131336264933086544760898887288855179810031743804974556254011722686711272597213558290774429419929207736538295568114418485784640349041047656422081600761564762608363267281551513498605512450525587864860144425810556979131764510821196176102432318510552699839887230150462913015916035537524492896671161397162604638142031330180637228914421147949905072332220198278867907724197326985206099153919588592015419753663712754853256852075850056174124749483422454615144445658655887427873450561782003849989198726370671447400153121763791138802382734456682336772688488489900480498568432876449794428559353980497640325546077019542271990929195964850289093685045986986642051940044485635084010420312982852775372368346471413635099734677175180867324478625845479662925879068972677918325083350382948242343437239117964590179070402606010354615908247445403663268725924706371612369355303410582962645189100716119688254464027432672899078860957541519331877770460839466484796598422385526704067488025817870277188516177207999923638576763014165568066289308257668950407264822265472968709269291052846625476959825041920220428228728107774358914620631796469883983229021603067675507385568277076976728538302887837726285077276469587205993269476452135065980457267845406566999640106653423441022810278027081643455830431716880151296120716424125108943336295349438901832457673653988791146968925848481470273365127658346206227288479678128030862592568706155525405525864855601327359929846856674676570969518936276449615627428075014150904467677273071300083292705620024207212795545457736842693548347412678956121840616202355249217476483618157810760430734921747556337442856512764634743485576829488935448289252878642207502550254283346008656387673209158602459606335753028909850520833440433900856953388262901218945864527595761444864953529580801626766167290822023536472064455104656667224415250944856610228553704126227468740517394769584533192045002662083196969397469038545466908196914734800213490599237064183263881166270716167004203928039672023892351306938488754595569207184426751355938131705306637124256817774488394572312298103408317342951663135008665220339015996943379116009654486741996366847206468029899507397218620765561386462225125061508496608064874174615758217603860056258230372069169712528243907299142669948033765648952456185798912032504520734828524648435392738525738994236737924638076315613274861960814054306600769177996239175734420235667318468513139294833319745288588955993611548620531823939209569023576605004983698932406201506738983193836727009701924868511431804913895198737012738410773586248660461175432977064342940578100007417129899120939190703328398060109724713199789478854208036200498029675502626694251367539684536586241300967086232813252548781878763540210040271007432368823591918424480518824970440369262228528921382130945679447106317385927060152031724378817515477073927615516047695573373087843664449028523526033256179083849168056536509798854344488429213732422430769880484255024211248981980923310418609073334847906525360182259013147532484194086251197294902393231358061756980772738538328753547731425373525052888375398857404467288000709787622868662307184618029754681941764758531762331846488503782313937551796118722047460031323028985515953736392729154954015991629436371082589807101407888839073901820063423421338913665001038112696634231737331312099607225723628103013847067776852251077104546989915271441668433280917223101460714477837203882695032976131064365845639426864404583869781870021519524918171411221743621155058160617458731656133567172871865375314568023584464991713578050779102034094483467616544108289471745151561817842575868988685111179985235749615788525641605083676479256049060885178128444790653734390880380434423983340127702603660785087823608083477034411538066383094744102247349022635276868725363887256557683248497842375190556689162607223367949795999592134852930556835954397562815238561821635138105578992538507352002186134657518974460957863166559006051293597053216086002903109561635431778960653503508461963443814330101647912767785269783906066516972943616408424737062967345767041024308103506243394649392942477184250675339588968893987580399755422806663883042148975489948110120937557695761249415576686946532051553124559333636146041015068149800641450195566321773977525065779621570765907747925473328505959549873365004099883871577441088283309264238483414645829383267621373976006382262557200897657838671097279043624647117500002749335878551766028103449776016876715705408391608593445889512105660611828911394246868277988292770541197746732414897811431335686715298955215373852609886751421378355106957950677094742311983391637049776112678793793729463423231845894562929710836964302358519777473493930921462395323289684812250005385054651409103324952983601869702561651199407750927901395689699609125080922122975240193442620248620323282889396772019329607802989756077848732880418042767173607985654998249561065502900204909370698736445533923718274566223973056632250166614131783547002230342170482175648279522794549159427890967404106895453956296504666202505900285971751675605416564501880133979313173404280967996358619993379535289496597497258938268157021287494917270419320365809528547501336222880349926815073370315639960960368677669657731042320204232417247758363735636011935722212990460773624258971548767490369832621307420983577668453288188127996731694142960027014210233269490824679994836223851961202662705359549663405057547512679704186536057318501770058729554042168604192436448298383311870982586867733537181194908396678955606582381998157354227207079426686494803537438416579233216582933939760153910064065280946218276328519087905166005470142311964092941679731357508273473085899618579840885272482226987689674414353603607883378209210916057930349200305916208838008171235127474768770141249889875697309213620726884208881099613004564363820044990447700984468487121541380852861009875038267982395447810117993934108774765276758434505745284621127385234636064787180178155429995197123169839961028220622305105720376457326185901966287324990323437629372453877435535323743112701674641356316474912748663057895891055832723759677696933860629804179038479696625319931489434508336254057644518978073660657371505930335192364626082489163227570907194128749616549899440197027833585311155026683014361422305746154882375043002880246959961143800938980920747919808699521076691830216104433605362198506782533651006365047555550954312626065496971613826420511660679822522002405872961749825246458458508452391816563693946573360984501020714937090669516440218645256666926783621216708744011071687695907256592204905756714158630824595939584461969423327019401697020114877932076713679566357456730560998176335665173166833410244878207823280182093365353068918917153200451073218058806818946650737774543483330305151853489070750028596998629554257220941783131594145105412323708244325218596646887319799961902439417114994117333233242555179824029338882595988545172679881603216947438835512740578515384967720988711334792388933207424402442451333090718222391769848471193190633335153353995991625110605645664353721533558463890983923003541327394645648530946387244411515225754855343778678888157438074049214279857858610700853485899316728589587724724949054897978821531801046807688767755189772921061081646504862174254318376718933091119640950798452356451354171142514455005119543918423384340922224553347151921945014436590247070905469534597158320667467869033772374921622047897804131235994936224289841428335459664535902222187416234638911912326687690502056268452396793792855237024955398100013091466012961414412946629920618583184264214699933507293878008166479685564538322922901970453863751058771122846222889065269392996092570894009232185316414760524197258716424051319127272542403511588853504160910102614354928743119156721879019750911152000750511946591297430491371284371747081422284545495752183751993949496877589999363992311512134605532015213976445429259534236038414645354671985580487036986108026825455757619604411067343367721391974191604741517628974946583160937853883439072107726751554652359109844574924635926247101886429518231338830269760168428081676162760622068738023884501216574243344516247397098191005311459724667440181564372231537793238927970378982672327825288680214735916376895058542149328489589857829988175185392797407301653478858709949597400417017729843755043519834758976014412263100797855572266569214324117577210776945679035986475200943462325997330029532390706361214512207143890986358817613986158548422862601850761397271660807841294700420029870233858176843635906702176695668197506107632933369767783078499657175079146887991105438492142156248690690658620481375249443188056307479258976873753926432828096202262473326982996346235082070428299751174311828720790006164545132492707612601160729556748074517000484729630182917644236031276715806890672730221849824595595544678874915740538393489357398327829422828177391142138966671500222383101033672168335240327212332933094318629912964619273046672498810113760266350728842681473028145416196552841347030935980330716423375013403177013230211599460108456452588605707899766800385931836895804349496435412500292625790652696886754459724551007369886392367178538807407689042802187545966613504586982551547533667205230296838704566188065287895972392727365573415193902906543207961339349352961332516295570808421018792993806471880728613721340788484571446087611467289874834596597668232925053626710144515181169972661686181035762715359633324700013714340841535148325314232808142389455099011019594567747452025355856337329727671362571682305635721656349753470783197200078796940693689307300716792789057591619098261658062759849541584882500129592947133786059668909320924835991289378910972878848158799079951784887932043510022727720519226096697087738856644594241438472948427671298877052468533217575468412969976897177349701913791931380145995453707470187829821588959045418083570552500858929729020102974062797119426193732722261033007784875995349262193446157302203877548531648138921015844607050258714591319491078297644000119068589645029263803532180476562295457770061113476527971737620598098106830847974684773045837366750248371151366352717062970944974314145899861435684556469020937477708998922166689853365832105056597719799018343990036808910013739891902490226462640590082729604243149120847209773719068041463406056787293789074525000719087123675369397091759379408871501151615424256295456388876395867852783921917577894635531826164604609250029998180997304880515984193663335202424513678312566767236032527032425560862924802635920342229729911922432126870979844801662514896676839953397741040832609934634541894212001161712566755508209717501437744999534081223736660783265125468786532691940248053739411251651668883386217468445062930421411921168959774448396839426505754978421865535407909536914159741109711681008891928039128117227770954425744124904242280547970495552795943426632917306333938322996193019794391826437204108087674734503018077133490262385646201296121557610901575481476121235272206624608875243589005030355127781837820510639864284037122359124888500964782420466538384452887546735656510407917998534690608781539396538685696119908137816534195196059471312006153922436594755968220067882394286853366484267972710902697041154537023591080167089650203919128618169971489681010776264737931423753411657641270171847793109654649580142622728005959572552514377363428241550035243562325830491052701288567714044335095240908445631025025663936582759703335444204908975514942216177140175436840213893087263130229267245144629370899440416472932001765714781621954648728368995503725607082506957083116719572846920618064217290526441238608205223106844048932455319864537178641300349786032093694979939562160443934667703425105173996555867923201879487897552216424205926451008461461313359042091459380835161778932539097638551996963323256575633989247144655554863446123899169985265059897467069817432111902625183434551169687387559851812379536349793283936679875454579084209056296095535844119582321877692843484509078313329044517638340237338286658778736434593289993067195909468292309712531639955467210506113421890446521527396438102928004076108193249342438678796674713957790657442201842566435269315401985353563935638206145819716673763337818762379555758071479018861878461668388507869316140312378572302253175050511712985303160342186431833227436262963015473956723056503179457032455030161617454011779492113039966825835332519152760463438521659596252121283623108094064892773130770195523897397363868225879518980567304887246492306233380711746194467829761828305761408268002165575684522149715649589937112218167638750050824161149945500451917205474559591190113136294663857673875935064211222235731877192304749188738667005775275038352005559619178983746623016670469784349243361509983085889588582065093991878058693479540830747649412567995682385007808161134018052064357598267321685323754138796700162513465932554751665360647843108271119936282735345812687765981825359108035191466714113423411097628995847704117775098737542317670315551721335614109795541390312091903742435655037701515480146457679759984875745272884357035826326677415113571164096772911139775049524829647775309550822253143831842371769953033440684874104243403511329689283362896238987748863665549393246968152926589321066386104326661892336481156837107596946937240969060991265768829875485151229320939526147353968929848107426211344533795609869136045674439946400250921482814269673761697251490831331692130825852261016289440897196616445588030139580043849335179080451255480078435038673428084224949013626902868798213281530191360572203378973259006657000221521381251682498158315527584553140770062483914971481317793090846990777343278595890321230389838644068358885657955574915054372718192205221371657904119075864905416819486859538806019612937459501499922145764525255251441198530851007519854277712444149571860250896218587731398075904878643731318769402522110173619883530407890545366806046463206761798132834984275631716453896147017601200718193437517496408436268361677921101428148890489996408396736224756621199779012676569962757459024755703005882358515100349323678760587692592235268071224741799256757685331123184038295422694567196282529691706628863131619716625260981422156528677361698105789891854710758342710632286904839552997968272638545522365032604157417147008706251066755907632137641628346991717581321660960350223848231628127923616814865009864078608650057300213990086167392014258690268472241137188597446598366675467837537193721873661849285750551002069819223683001582376404695120970465942052872302725293831239379315644840504934147414890492097398332395307498507547835843661760757797256452655047312086176586520780847006037661423242559359755568855579300753065822886660978418140670243939974871873759801511090055425841006201779536207842647752401129302354531301100279552650848836283533274833071088977147674313390206610367911575660733444597597107604087167673065739982341191053278552218632736599417982081131058195360669442998081669596642286609741958683172848155911111874445641486082283676428280050294497221817790733297358117164335423914934964023887372753528152402941731724689867574977334387441257544026435124888260220409465411014200723389690437464758118862317297115478496448511766826053014283948822326657983751079992898891687195584126475046994925168152788855261484895824747367516160922061210553364081579093514068470229989617553022482335776771479017104266097087005409846734632200212111515768007175551308625534215464961344988368075148970570106354868629771886961703296035885079546850917678038784019389917833179632599658926115259054126574078399562048262201006305591502844616640606799588167982691785352578160890400056201286587761651986784443784515734520412558767040237669364579679698403245183206759347197919857999676937348937259864693789893360791580829747502357655126657533367366284702703731968651985146056403318419433234502820711960525698841267952854280666028394907018804554142657081518159622142072113915258698507451335190277193625822565903210929768175369149890446588917352096479639670171293149227954155759419154635920026071388846063821132510536014896128065445410328832103839107876081815052122040470056722311260199811022751286106945963219377178999939452738145691624432831566253571463481608026472132709694034938863736875956319488768393760747449607474205029035265445856894218229397754775433047255558804462283182212548010197366542301718752566444339639328980586195701978294572953133808518659218084291113927320391923204177939116786679218609672769443888717935150531831037224270363590815547247204891899907310550665107748004937688091546470996886040597349129934800400051040857877275805950691634613553935825962549133791787927275528496876775996506655675877051298598884591290048858264570659454188546652905552147063401067113725119551938194292114517755854224923791095367954542485755622083125892792269040703290882456124101870200729726196809946961467670592497746889657724607629970119813287151441924472989892238908997917223769698949241509787290091101952253366865784020777099917935560659887264871103673221475060435461076018505744779462346166130991535103138935602323509333444277507338474037988779407404494998400395265816805906068936868286457099312088845618851952615747211722309523803069576348282662830885385405808809731999208165399873711053163744830987023745539202817691888766301987266743250192511596862784846780430452180916281815298077271837229964384102089204122822536645677254855845155768355584242130001279710771990204837029412053874170325527722965105125569915665491629430704101734628680939504807653058643108898384939544965245440573924487633139683596231429739954961029689956980462896480243294152418283530648020416625427272311495175196799676814983680868550458736750188717030268908691677706489306990915105042505077704894421847346161918465857517477126864337601078276559343045537831065340470233213415845736511067929631987301543475250926445237421031707458403077721391897679280592546763355202793541941344479664212269150504817980329145502965463104744541658619568021187583558619141941583949753857757012267517640910267463210596723457823807788212779790378648746909196527977504354231748835854147682484995577754089468902787355034849574096078237268092480471184320088822849464684552231154735673133565634040884845766927798345233907494893308958562842402720989701353147242095891317383656039145919980636326985705999027919112854502090514576990043426293943542660258520210652178080345626789017928536677524796106735412925714309244411831257632575358038169918665487177877005657144058199790664730392143563485088385614182422211707840839131585451381940919592133938440700005080467563488678176679610216093255892287175523786770579029188318144149431691764923709800859464460317564049370576167608046113080609622016451166920449262425458235998424389442791177960344289125672522830223628454483656172412559413133374247248372353567106545438231017325655214011512769361745720942497289325787573063979439575940284829416461853810275712759409557783452507187508378190219711164386009748147927742855449096840237838358183562508438436066215198777365261134251281919070670690453001010974803065634239450886383300154264134230651225745249231141228708284132888905849930745591389703081145959736695916005035931069733744701635984783598369621047808342173831356126977078710398696648976470922469188517539394642709815397926394354651901991387784475151719741028915661616952370988206541554370396086571036290407930319901055899922982122531457259433476223970071458284998803653015680362316539646322994973642467436080520298513859979645397048147899649861692813717566227918586716244925400232564770940955774325514387819038170225194944371644657585026691774590007651473765264361420982951859818421284788706994492834660979014248402249836488878490040664251660457912756781223948372281312895959846503860706929671067082096132004841528104407449585918002192359756751408694479031870435475013783082733281822567551577131233194909711962866311459969691057166474929993171519122702630086223655305115742567506928697124754474891788998053098365077382066617062801304180039058061887321535533215930402171334647625950757497246560295204087675319057617683850265429313245056735169497958150726133646234577809606380383450575492868108639803949284697795764006014110433097779200047856406239047808241375415362978186697551608255323094695123354019989868746098027308137634156663235691079103326286502116380740707216827621255162254238744084582383339263653217368105872123987024038425815065925003839645063236254084382615857595948826138773539572282346132835234096039275371478734527887844875273371489624037216684863776916124132491858239245608118223784334038720220040135761803626763847903421423724048755653074302940213307459887795646566390048231325039195280052943898996461840686522829620053141717008586672103241907682342166859778963820083039497862714542279823563048104588113535039597715489203557928002698925993089577179516768309684818053200373256351623320836414862121430468804795337508459981819945247287805321620532037263105920154096385506837982373102613640838098213192025035255171973177802254322235390751147693674588169987380918194216687841527624989624133911096281766921665148610091126994163923280187049878686184291526774991487241932080436262460260310624923132435631834086749305430949803908742613488798146320772255056091317203066391629599471855251068057935367283940129339136896764133353078773758279751642353781485121740416570360495378531275822372656724288348271782932760672136828009238605923366537657073168210551138552422980263572152669226994847317834446967364740335802930620587861017715268294399715229087953033796379437965738885803553855606451737454142585918225894284652016795607505073967311062435128343789716368054275287050073204144616365558005948576331187901669901616052386028989357592705535435705902495266474102563652638497979596719511354119099905770526979051628423681064804496995350285059761903609308928976509030200125028338616559309482537750047065270665305201178645834297391365823961952601292677173428830525866905155981763581575235844124298349794761551215761246752560711906957831407077295301085043754934336669719119471522357046902819338955246565712653896751490906922280422117492827478702216645473060404898086790834527304066529438995581318551966790200061593189785946102739436633957695011287534223009688307752678279798215100437625186664987926123235104509912787340086023536898460555255639735113550682813634431677651359198229976639242110237980340677205788507907466509340469949892517513105363107400652920348111250308834367778171433103870519415197395440640002997105904357277326109678015701186920466798911725654638091546030044161510368127008489730177241102315402219298390851064263302824873299667174985199974362757408584788300387657084908477497131388000559904627356055464056670294021871642107243713382983098123004337840975566116576667633559051472236799719065815824032044786515323523813913739819197844532299834644465633026640847360146019897674076107257206982058181334989656910478319314958037532061404203075353831606994257196262001144456592822342147030072386102802981443992501665825319559851340342980310379803635719762497986630610662508474826027518906931212653815670081809523524634172739812959518344805778075898895217424693690704452335249114837091916499129628480474347385439173207166232219998618820026453000179943611131586091163947129488175038240138820697249219841439876470232171117513190765305915462268233414027423519941231653271096150742688649425898556845507082733827353233919216514147865977185111541696949797268385860233244323182307976244065332397267420216623322429476656278761156513173344036888569420920637547262520160552845653161415435773649695636391000838445573332754425859285386964352589515465612677254934254894480319995085119530128658858637924130830180638003823237288460661133203491779092643101352325765344245326369624531867445302202897204598746222881314930871447380643241821459925467791993973766127154664032231082907167532585926184875733394648169119787375600660021411567770354944830856727723390165817647666592993496684877734843431423713695655964342454043457243259977999728473089469660938741679073065819186932608335120038214843292022223220557833938398895010587809222225039384365018627297837875737897876976156706963980898451145464573226076348921591472402893050449646982991442424951741308540201395986612860275109810356423802557239580236707569210907419706081444319179329491567792499465729077248223214689750705871193005145168736676160667516999915304256311606075060986797641145406683784630404566689728683312805168381237390113148163611434924211311043560815817356125240998086675138535618374349617574475218064841283819693797124842871599888078677892542775214389730861549289880590543980670760284340695220631534392914084765198538373375112266149857166623403316192954023670817487115011003931624963557132175133400905183397948767925811027426894249862362486122989281920168836191766884544265307419871530808517898917876184611587832775232823783455632381445756348068100906659910509719335433035562187896499391633244095910393233483967720534839555630237820045019486252956144102083313359101363243033709285001007334973688805692018046385469311227470161565612980391421495666460310903042095707115249008160270917082457391573435964772839132773782692329769668709707779045427973089789407332451702078515968975661391748393970546737525515990212921239103784420421698473527661742844729456741315603688146340338199865458613304218031202605933937873576635729887517789380005661848847766515937046245764052078534715439685026400114995805787584454699303929806765058901703402417129542013116107670690867112965766568403221027358475068715285861000541810196018671699129310915844776018054733229857730182149984034116493109094521026755670723840755489697482184395316276957238013224760298183381527077621648240080299154438071983280526989400478491665374549029568596867298021611611442215583216024042564338006276841225421681700332938920409069104206846176155090001781865252813493475083876942989499062140313139133484743306201099729352856897871288791636438214744070645483464513842575008799425693795655474446575456135175380052828349872444570817260519206027271805322763668187058050377616408656536426429200954757054497389114856315326649381599832087884952891549850923983795093117964937882415466620563497897571089821205520383705733257159627666577888308028593850353617656546798550500703291435505910721545168681391851906140126769414886428810081343884579272517019266509219511741212076069064685278100815935395815907957329783981664137412126221137539300503865066974812311434691389674922321769597391562633176386970810954407322782273303285656562654810285380616021207545502848425564003189799874793454172195286108707354661907987921250626869658756106380162758931862878636766201792105024046663003836318201215734948652370600541478971519836945621675109524250332384055796423617140792505548255291451979519731946552696207720428261899181267228910013578599283047199932566152714250755585318034305151266177836465457707087008798988095550303612924968104196734964582949574531253236171166377867876140515650631140772921203786160491044351309769627193717620566398413310031164083333145817021569296415454816447625066733339259006338724664658470247711045497823686488442748907961548302725168852398080012751757227775531103911170220467256678548819114364039267410749810641291094905299811405255634881672894491630112632223656749733494660078081965444672344479721305350631626223553980595413377978003978178909513482604627834304755037815895754378627602048799602612050305522917015792723122200627831604586891094640823638350379949188520601687072056460518233820092778184506792257780800152472004434411761944432641562281729429519009651724014179149040107210890102040479072910510027776250344901083744942409305966665254623364901269704529821704009794897559905017039116744666044010071714023604590194902450469020713650872800516810158528153817292576214452001570340503625685199136513547435306419836169784277773352210234586238005374135779344956751489150569945967228295063152461511688853382381272232475452380628825190264407088198572698745370443452667305564839268564631821613934234638795439851015065926307415870266257639924423913256243787295994799513578227185235464518531441181212190614533307408168700753139139075915583744693623013274795562652828524167234242531906902461017237915071491867386086883920988603600028645079385696447027274174266074278574707051736527387164198119186280498832923576614359738361477741095935725388925328462081841546344877837600295938559099702612549499267931813185084501711005649704966919649835865356342000207820003551128248110358223841071970721455161536115368094277470830540727475687377734930830660744495497447527145499079711122164465662298495615758288504403466938081913838836712063473435610744017283268066841553628090218032315712086449477560043558340185022323296457001913758700743160125747325772183419893931541257836271851580101402744575506811572878382488110956727031532968622977726204527939427858976713148448827313277971774845383539801763638531063747730701479733709195734249008806038359325401106873729255499456332274629389866877362911020407912498818992820489990605391603257070375246007709602820810559843366866137575710065223558779661950132035441162724672159800234309592249445416223590423423470118253280874546007129596209938429365496339843979717395389606971440882621000918392788757069405150704814914492176915726870422636541898473068199416180881599467025988951024351299546492138296619002392223675073077879797487717313984881017788635950841421641360610764645467642079245005171119272259015960807139316247392467404600901670104020684955193271655848927540541469880233169505617480158337525114246416981524367167088972700902289896014976723923823499748488617790178597806136983556576923545915863955535517712419829764115958126184196908316429190878534578918434019287106579908691520946123062208183992198040230310264631619403747064146651255842992735701486581178076209448020216050846934050620666437686950891595386388213373742776203071973341232571531727302816095422550349896596080427061631532183581969850138012055793670206293642278616992745548348844256267412196252072063053144395386182396340790245354105960111294165292739073069892192282970731686622275787817293075789239165501171387664470680401540385835051965374747534411562862588149600141575353793013827458114037856140052541129209741415953933344894967601792031613830229747781529782969294513510252840527960742387570170306520194261232247708713171079597591269556404151323550216788185809957945123690983688294915572924495760485944883856294365819977277151149457261978652697562102728162924916311409272626275065857840465172780319079448866076254563070337960027102926062540944227642796510437606585460441068486450786545107001629169922253357757338225394220320523934107637790524237854650452630493349435701766622007975901378691982158010235508612674051937075839393176030794708725381864388445736589911556096338720446892598181637666336844881060697001082386270112537449431569739362470246916223247392757269939693633200627206394551830392450405636480239305495396127537373889668812863880445141333807752247337097007548378784635178651351667757076663750228746583372848310086845173688322339241307163395998901769193056648797089240115317952803823289934087293772794164653055284819197378108069628806632543558643818176462805355885234827765692244647651945906433970193796662373612812797162696159363321696596577456440445902032135937650628492987389564567077881313871789262563990304059009852477735611154034678299568074318962079298525364552399861737362444410721999145804887153317665780780229222658336470746100130530850511551825802977067540548277046137877034470987936931576984898889734352388850823233502471676335682656518597615089281445286690476774928826754575930534165653673629041876542230352195277603585787487204785994665894236670874740976872852521077962435857101917625412418940647528698718764844468203837562577776129044891759236113049719430897961950769282389938660793601788976334157776737099614956295408411102661807591009447951382022791844591732328011544608660647311239638725402582685085870730690215230702228833723254772546139337526529544133770369894245340869579066571840629653660051453626822260367144764808498207122018101106256901805815859721073836594020478782030971027785252569086503401479688369941724595452487158200623282692096622721148277200110937924750848642285199558239314865292763758225428259981930998562786175749346637455699086082310439323859357352860043848704986942939037654673146659634252252185617102195687123012760116532820298566397896848237527506261908000132394081203636461124678543704664846602268854368682636730749519080462333826003929458752418247937286048063527174242087187250025958139748323632012526411802154449753948819492205544062797289945914197146034533682410865363348312915505775852308901443185451360199926580347842675037091125726580659314537084293779278154356322707717043905171685736266660047344571484646190654376895794993325571830308022906839561598935577474944075263769220820038466515541826848977430124130093473376315953111458628236026603199927431457908376907656724592788307767598455492388643198308727341071455586274456282925739611305097885666747967993266123662753659130644774933007806721806849168016409331444844460805781112463294313496307558778740756586841558259972319756135157191084438037740744644520631166294106862341794324382854063069883072851522513396347808619079604980975802014490369127331714596172289729499636070946005155888638135521893896881599915843670014815190245745434729068153019792342031029323988456809602261319479460829520871777749387690653415475724679634064756282057597142151505444215080731632566893997935229169932197011591286469504651879289588572884140035705220776902173833445891286307812167151808585621710037729116116568576934031414400162715008778645966929054820842237605076756844300670755994122344463665066266151137634906450712889842527384905056602541274362713847195679154415076000117891058893206670522318481775491089895767837484263808498098899572071125081457122454164798213441198084483821570362156366767810607551558153402133161737408329922600333243084256916639731984229897566598085403629828280504734726808037537441852460362492564208786348052320239928594948451461754680340565271141468003336176986609150914535228739210131236604707088543498129056485993052579404270923592445099852238795459190221608387598201816125457773405663036971271108044937360269853696020552477598887304722112039701797996135448680021425593113199983014781298499406591139282546624150284087091779679026917140109899167572261925307199551100490474526662128143363276098065890710485188016682129383917804398955987908235828664647645492010746270115889374167286571027122081255837706839078535634249569191068721082194361209271162727426620428065999565477374188926838484085111608367452041350078360889245181750479916222050619518597005249590689894590558888807512468634658436469861136123058499720679223025363344431000517144361383753846020406874393809588257199270315913929335506393169342207553448515697536077817651367674489623852593801687605126746115699520161292769678869270242323617585155483957655787124545002886283400473947975466171461078523577437794463931758649576289000015476291723814702500224872263383193064267454755189678316605559537337072921747767098830451797069552689453715225226959079327016816730996197750635006553107436247149704858743802178390984188272882886946369461277392942056955822158175774844144077095555920366962535071370076893325974316974299430660719679992995479136029699726575471469656913873126656768820571782323776296603103906190440597867864199657046839167060767216757587443633216134594835117171099282746864347981562527118522622642439438135220929513121638956558139084826171782813024427485596100018595901105777687547473636055376767757444133526892952263302614634488841966422988591375750958979700623180203670550137971704958433977718619656847855758903824334541514443496927991719469176778172270938109668629889190225778980385629459180714704517098738541985369913103446862771345588355306378061564760298184789961766798186567184062375735498265757512568952734499806435998361995810039006595514987476101622569077900094994382108191726860886119051580678354950430948936628026594166500923880187552311076539353559811628594228925040261883009719686408455187952828698819228907904304079803768927489932973573467569642019007355274719470175346124584090962155645952723053314606627350584169308028278341625293815372664789949327810251967568340391973440641467688510526582156127055837171155300662779708051517294552257805286703169967464137725457554605063954644853697678953967941477530131939295503872474530616116193461377508316591976721430371931020763328889356939168136781332127657049650793530589756684802116955839344494847436615156987722794254000861868695725993329536740716959161829045131229387029459879603577931547995711539050240076119071150688721347309528284324627086646815909828571374057166245772219605295448303891194033905796263615711612072397223657239435426426871112476485133470238621582336719839783174605664762957493538505472586883864409625985151995871390556028365667156409498709073738793657929013676713204754439667143183883483319598494169480277129333605290203168393032813121315227913574533165353626135822548464987277546765160906630640402667944577973282589306392156674444546261181738212735065048359869621149127216362416473247113447781464355108506418999933528158696765330758466610898932769708756896194415501319442232793424747827060828572482511281452142662245408807969339346872459145448445643936998601501583681726204279098387681389313054589197673111394607704301317070381216209792341758049018277143465106249564729704194747693981851098114715778224036543671087926973233218862677067906121943553219469048883005912813109071559561182674999281416684923542767422081253750570169697692433203348766336493659437923587468999924122072495957665163121064478047155209100465048562644032933488628752380801061121845773354809144104934476985252467679277013188993204083681725960553784900890860029430158108315166907792550086947284198768241987780481352718665516956568679943116576564887137094114368410018599212873124529580588042480354204160369323318613543374066500875550805210008985252788967988813166356657266596025255287611124060678394855673645068428949002040339158858835410364776548656453505114279204918457029399221945802512073467021709521724058318433888197443287876514588555701364304052418678312750468463694110945386712711022742443504936675188261311277391793630373798604295400275905637846918158548506034697036920729951573859671446025339330021526191642520267079878925927591315294691269955596993417712916334571200154950196719695798501261669208768490964831914721807001855554390738867815496145627268380503894146504628984917467638776459065412810596824443296584345003571004311865746267728874208802642184384199523522918772108809340532913199180760036666050272500415341034224524497399913648319363675509706758555947581061031707954275247222765687076173725623455865218567858737083632082272351898110094193313309286032140457676025976940442307368133128429249214547783006105984157064052824921835883513244436156049866158646590009462020783950827784610293353282109724147753272467608401386138813518979525969281934746373322233285125561951964854710010218150694841635499164118091235900839027962373316980906687265075970964100398833832916180406789493988576158479527744456819009559328060443575485944650745057208617891068228431812440276487776728277368356583748084123164983923428712955446618236953090064891510292950449108636413338345147358919490035174646951082234368142601029626816185188401213201441718507031966052612476905707742174209398099506971889846895606396018835933514384682977780419230483533231685024341278997623657195556581364452597196711662607511748687829149356969794490340294218726203321797675823157265904863804722870369154422223027012291328941278048389623165343753372779125795461833094090462936966855073245936528397191584198904768346654268990746683422150946932722616273068057628138780418010348385867679104466102767121747614467533272946325903232469245870109573700620492837972755936835273958646792922469217280184443290952832736603380980193574322184967933984312771558828358832527981073049983487317281600922583402641809282156140116694087591037552778436408300909659578683271873551920830441507590785258847955997127667455713010354186385196752747012601394312136789206357482451599436190278798855773958926421401686061777832258138485311166016057071512527176608187309608455019111276699218937362850025868366504591366134997429922771984359321659954141862573860835863400867397221453946117180978446351291086582714380500334743946494635632848220106935676185875618279701710103891399852632393067601758808245839931275306309402525395311903517253825575870110170936668377305102440251050249605353856488909454175123735121687818870118632189135972300336012112771397921081422098792728409851507290888487493663653301276992826038511193524832961566354844513938855883313209559844411835035881897872557948554958939511459118874271766946122673086006679914338628607031458565014972337820259358084033658800707353736471493540799369680895017951112023780108859637852192185178935282116606023394819345882652019449040595941255652752635072368414287819525182296283796822910604124249665080276937106583110964593658948359003864333142776452749317995859041682583256399396622305275880705847929145391223306417507267055701702831910912923559100974313997695256049828759883000380405592679501753519764232570231717664200454920185969176702742077738886318272956505217065136788209408722714349708003684576562374989135084292230797681288710760320994478974752601446001270548630715753982465084047267404936686430488493740824181423940834688673450029921767769680659129178045291465863064005504145892909274010892159213382257712351532454401823035458628302689392339916255147744422553802782286798448622266855156971680260787479835770543710495946895525617501208060636029801319754627805776384564626921270139448133747764026446652746415762104056055191067937877849515206551281936182700196735682079738932634961814295026359081414775711208887371630641828214909213023923108891210840674127640752571474498513942602643583145780028168253169476161135998866939512594064530736117709994474256945229983707343779523609157281595115948568845633653535892234595108329356011365775022859401832785724410675248498953241747108812140244644352010939361605362191936732464096429614748805224516857406070153100360485073153184743042518737371151692192404073505088821339616425216523244997710941166073373042445855687061760394083860484893723083259817880470709630401398144034719112467277487279527472364058330373399054062760730869053921987516549591017047276721807653035553328451174008789214188733176439688500401644678196460230702921925197270268876401664351952569034841459644500335206382623961942907428681059408796827297737170601422323897790732461426325261947463961543186127127864708023036907384633227261586606024423824469491474071447642693052841711761737378373363619377766038947626479718237176238968552146889016472193392121998712037447486086942018611547370001149680745362927173298356356561035387936276879301326831131353098125661684108331253487864702309232876735597372437045800909490712784885807349867563624145447679321950018779675661149010057722510002739609849178567816115677909532853728751488644811391441900371856850048116088963622100951306265029873138284739203945462420585196285499325164571469677588673981309681626215144367844874756548080445514902252542745922915495138865713193585644002714842413151671550870345081655892350397674256796766816099875802453335813867467230319756061069687581840911104649231996181386891737756646715254490183880575904810858876646555630462568110051536459846211547190312585670678247987825294118720384091408075077603860841611520804692233571284999289033198775297422419577322616117708741535791489905638715891296027645294160116661055291250623194384297369927290536058320765391949666930387778125032132881808577705926608432301667166526021980194342062855052597085340500399175026403045374926311538358013829823323757758586252247639295375450243167421106213275632514506264161767910344996756236867723945603924494562532095222886156810964210165593987067750911745607652612702535282824344290941242589404832719506911973010810186594925424101851051449819473075935140264660457486358613619360783153864205066971485760026923520489344488781883898214644972319880895034425741611767825168028410754694974639209799680059988767844553777684518843862843015415681429819964755340582401328594993210575415969915326116052624098119074002422037780266877570909885419715831947144254825318913413433108968196834165963298345492916619442444224258883301897990393960520523144773492114514058758642840195139820248702625912840567533390869504827955444283526211103471642982084968211783833522787192728717080076876538309188923212936456277721042017409128329514072813487757655783680074048882100738047364564234883133736305213469699858843094253320287577820757028558650869319575405196844724401723148906566503196737878566557347187148147195397607779635278342899905258018428470751810598542780438623386516717834093632781582169796977125591214156219981237822013597629113755431585771942535079624869423064105092476173934553476342507194439823810933777893131527911301751100970197548967871858541941204527711485031494119942476803039013987377966483818225709018974773070386661292958573653941075720724408261965437637266283107233971997034640844570788576602274588847526171018113522529749460609408900841761588994364442727225791601356159838431222262668131738525695335636160383822372457592046677531320972452599132476849149899647134437129130403683151881765925406470371706002329783024481192834887436848812412238266393056224622172635850167140281733094207655096025622838306606113155450455938190316842024495485559796687193414440759957457755204389346904058824649543430644438828021479182061752071677610796410878457785411310205460323568761395709085590348520479484066950779926737082789471419988695622929979665231902928304033685326420700865480798476553595891260864297890927736365309886706292968299069453249695969887576750543610905134825472997165022063901339899298458865759082565050113534963024283349482098770985027630311454798854900440816598855148258845837720252722121179888368972043065012394149534162681132349577420188769175823093593385497237544898483425210267350142711280742829857072138123163056770066449973862275821613226259178151668827256342895774553137605915262850609706091343768277750577561452806955436969674984379966861487034317974914387189943229588705200195172434000152269431860008015045650460687143568695807875370898984879522987554508405687072347200710908977947980573024421398152611341771044195825308644680466930961509720944380999743932346440743066900667706633580531557830106405363384132379109412955421492621788871152044274984257006486080536580128442509251834375912908712224492501158715438727703939845173039236945552918219097458825797624108564359821547225787678358756553407376876493606917548772370579206119687701631198018108856717919968571722831335566126219069177836816725632947626766738640838470582634564879563772389382227229772314444013772490528249113111066014389768543362204379365239501136411163593742582083318937305939286396239523077141882164119199134739123313869496161131209136260564610086578947994856706768688453909179797161310834892288957743183326269960797687496916468735404940196201484749174466138764602435594972278693345398356377999387571519823590744307441008827139120772695362935524164651494790336407886916227735321494201263732631971907899778002750917442336728234328915788989926767758774661305372854334989196132226095725088839709791735541460692386667894463983238905338221829685180668508679984967582570419139325036685992460772131957232418277945815563669454470761250435894976746887033718095668049555505955108800720974008298580321857532666999849098912374601516912841523028528391806787845058729192327722562302152072110348163257074313449602113316715746466625911132916970987702553088805284700288549628589433368352179563062594151258409515965585211590913457180099829793862648708198441914427520687618828699583152634980436666215850424538255563881372494187717954182799146129574633667363817437043896308028519699365418306703634707210886503910497679165767551353868761595081139248463556450823701542482599030908854594642505703680099570326434496314228035977866507687149116736982909024504381489662303073000266894453778348841185615231957713476029567362373109572177150905799496643254464749846247992367043447615302509007509403311950266210790516100864557607704953404048173355146633427804499901056477836959558098704424935435222312153036329730560447677926275797959102371072233373838398113484463138803196669214552438067907381599241823125524377849463214412693418239790618742363193613195356915517868516662231936958801019691726463546234057756181529011279365845292559186395204572877571844252553128707079460648661011294051905002931781171526192687489004597138051376029775111588375007584328910944470976216769579631213325443388828656381703996154897438966290083281909102712162663063655679132706010217318263251394783889024541285991242736110195414670071731163952777956120486040544336658057196670301443302702823254975278188940607104610693226463859086968004110879699346300293191945246065310970696180391624193211034035564455096112219275477202488220571725672224385703683118217820156231975705190719369937356044284871655230414798640185486449120903271698051391693286819020672289348081306006504383016029058192326688302755606515114801265324719593652475512429976164496016424589444616014563567046240268509402474978237172843579021721592058781407926844356403027380581791295647875707642789606351775474634911536327475772016233429290358722673210105891092161754122269436400513036134683601186612054421704585096739980309188562826614449521580265103998281965759209501730966009948973864151519486829505346660102294083022693312012041233284768585122571223467964226839762948821581408213664902985241231964338526445779921640033986152155705068000535259525215753061489300837597262307888207660877393629826294427984619819227155972682308846943693856187811532112472730323269451120662598391875115668198958241493415371169743112242973390107903697849627024976395635039752217114643277626877529501066167419559599773191651227404493280658252533527834393089793553707419828658358471616094170228330654591768164347349596873209660605269770809189960906100517296729955227479155233007627694441332576325001625962641063482721626086636319547074623253071315694125429744279731496122004014904548794073654789847482036409295677254023498120013375597677594749841946667098221362175386265462802173571329110030473055987537207866617074325912189109558102152344694387454877454135418835968379228174794133641002795407607370692118167854307933081554083554598448752562025156588887958110213746429071866592054891214247700227180480016080981113222917721073181496640014722765567062875876612376682589151251760982556534045082508015078319256554975865153523466874247643217044117837216390492524716236578024045163239885422640706294788283096791501578204800766599979839682564576293791528785925719552292282881661268671411509423171074970495506043894249567281014434726378911685387218784256233745684748687122192614213407739023886352392515455114276825005066341790904333783788256607128701115838128174785188172078933342137636156084069502369355514655994049338234499875004900910467461175942248627873912615923413735240188643238350291301386273580694155225909444918597080691732795492294740115208073191528623658532593493486981708958849777959604609304557756706106482999256614256099512793829707187638232082738351218548296839915259231313642288263228707267745190191582048798608333964219659440966771325392669910472003266734233297466372977167887250628835516229078480919720713673957837765485302300808113633203620389184530815136432329149969004818885922901783855662512586342767256306360379773087774474154071374819785413116567915166717626819698241041285297840337790836681695241931709221569753996110083185101710701814012841594796972315926218065024119918586879208369760734506519907967979292160720895685367412222021085996984242441175764689098451115057694621644326066678612997584904532975534575513604589490417157814335968180672396260511277086667462063439606040320718838474605213318661129372641292655833133649026191134864020472072357417010004406815730844203847413826772544239039120468199208034921708083156885250897031928246324202359601162968808917110419236355988609281660289505705954528390698165963423678375355835188414464598747213077315070019522810628227986345487839307854817679404037546961624251837018862738743613235557691894350158595577699604509944181909344675240644780089349309523078121860862891718658777152952894554057384152085375605783116227664713241286694814394364518540360701236183225627958731490032124183232657361426067548040063058488001507059560077821823469747474212486269733205025673130942611926854304673312623398466395399265902303159121794999803550194313020455006828490025446363313155667664973183343447708575675511603672148231560896522253383189377570428506312665533598870815127089810339766927779277596792964622614387849075201767129114888501640157379693207835366558165755848660571492420852965440395616761892952386832388645301103502517140567894784877074396802971928147758038447558055657621170919831459441287472361599005291127583090266629797394589631538400377049244198093851371066418788938830125686551690538667697388200229996475784459915567571813585612106551257132151972236619507640907536563943409575160970121395787224125088048019118945242723071644848237631943144268061250314141003219461180182872911937094604501979156144120533672111888889741170532085679145919559295331658895319939666127118037728460465770242694478386956765832253215342093389744451692942585514601032280424338352542692133358398214697525580592469114302105654207100086383648310027594157184740536302516684286957153374044665344378977968081025610835327618563473185933634504723911233655254976471507654694682399683686938722606496603385773076271073681400945268608387055099062510821250823789632763833109497713583971562895150090276279886576741024763720834537153323277878404833200904581423063023154709792116764059136119607091825191402202305991522772969785004913806431370566518975128963823318640323578456523555367277957875667453945775316280823459743923811738871960386597852641679184840175437654501009188888482369648073151826094129545940276251660971284110847614318418940836275491339231087053893150410156962549339005109837840512385640861381643735519502895844280913024136962206574628798273801420860221645468041785148142628945910061620393516711450947155996373278010359555073880969345773429971887989822253184401654987167874903980936097150938827603121176731244533803236472576356603899241119962965611805434897667317140841181264420796679093294657700916514997794809992960560122022126944643185290223996582543246608802415635213277924929774934018938945205414807763147433578362215805256373873650210111772668942182231798311388935497386180684701325265477967562856553095837079913675999010468691755839927130266748031604291958086020679442444963057992914272911064186156468148622214725878841182374415333538022847646824130733321198092289887883723993658748688685096479571812787009969873158777979890977268180398672746341204189179637100344856260928415258375814467093609242784020041744863320116403329298850367320599741371575616518542610028367198931500686486207070321760190164387386487193593683337643112387934738825871174823474554971113676272589511816224608577305188538588931769349235064486817261301703477998300769092384251896039968835420657708422952085513581014443385605820181890815698221791512167648050415882857348829423968165925207965185282370247629637447129568874391358368185206963351056429345633194152999626317717235668219684416392096418833249755986232928578825535268310646566519088687930993998272013354672804066895384518537733798463743345938901282635667420250452935513851884834028345200678465347167309836174770465132049439171008141872244880114439984595865847858358170266760559944945177305792272570378419694030407527218529204794203347040375857235485771056485306891521818678012144178590409796205663162949326161292894321985653589708614657768956387152734916067377914248916600172851652023070656525663763346131211517031343677151609453236503721528896451202340113853665298653810182728618955041780294471909926413365434179533957485694079403406061504424632236681215640263235841936808521431384979763256004614260843954329716567112863102477388700605452974996675142382114646075822618838031858338338448756606256638919241415670080783400529754812192031187438635504811308175018145281088446577130708196693863406247265718989731174964195568404799967240388825577987563941551950374188315787920197108588094729092092828201770248602613155230371966895372885472072125627096602648325572886025285702860588743326302570156547301822182964834727306232285618385310272123756093086860728218181704260485949390356059386876399395394648133682905210712439114880270778349558897315341969282924042937657686070355615816615140800967918196281492684018321173346891593494787680782211542649699094967784272876772851960835801895499491549532134738112062445207811249151701608146337559694439743423331664963815405592445040073543096523761746323410487835301426718820924562367378811865873372253073056779630859876026542476792600553641411425822003926002451392984146145810999213667181744396903524161227765873500718834590133556195882907905686685620285672281554706716101451826845756094190674360822397142656856151369599058680444426254074455916141320757302719216092180978761693813138925774350796464006475952658850813414610239935637264523820889193292708370200357649930369914928405196194787337862090562674158398812918003844410585245838525597244423543617485034349703801600137175071932508176280583758812207758301479427037748260737182141372285666335610956804981852340058543944618762075369387301302653524224242229212605720365534662544155945166699826782377704080183724964193525974661233397379461266237457286315277897813242957143223709296423602742391812716714921490331524039848779651214629251962784321712790680572906135514309806580760483288596934198055487730466916194345846488632603318202138943853145212504142640300535496925272590369568343093011959233140687375057102927645721116480637682764514797647757367971950256732408250443936836010639573537849981226887502759899735566330673531530076496598740890086760491801673934787058280279567729004755407744237900348724058918025137011528942323724565949714963299820266371332284124856030597772061973417467503928286302804469029516300933980240284186471046094499889276069100504369688871905040096814963947270830808739145870763948899454356736534260859317357876179371739284560402597059940505807574909279985572010484217959026582986707230361360883814311995932560273354380926196506760633053860158421722246707878748655584895162701943718783991517909141179343982106192615027605094547542847303944005339588512530594721565438972251653582119635574983317114536877479594250307089278367582987607405057363049652007427906617998344942764609499874323258746029351945183823145441924090585319866851933473911735537880917323984106475319459057091444702296975903809196785160206851700010056456189564477845558197304983557318243306605545441395891364773770216194621630694554283825693525147165401763606097259516053506226311436219123335374381472978314199600891446954337006482018827047096658874697056625575767994235281430378261855926725700922796064981284358423799480399764513472822075344676189317238468613400883338167265533661632845554439315810753647230877138390672163535786373854222969448215140375281327864940071494492997649387214662775967596125170460576062793552136718534658601472058394299504922527368447381582860440022155663188503210302460621464926099325279655957235922568438387459904958128059253038244540376294823287862468382065257983955708148353447982469876723334296675006732757045934012621324983905211822352131802875029439935814151095754195531574096951004218513301347452467880712673895310349862450103247698746524007207587223950961276105914171127011796234330476288518868627217534111777313934605831087194095635918874587784020786101583611974195137656336371539225130956349003462388541221001246272606908145740057703070759647791605254334974829841660830184253724503915275445098568315855286754552328302080414334956898866606162885147921916506164375935072605463609366985843302276020707424074458282825893151980555681631691468378688167281802568478203546605875531347682521246823134892464928428151581641076160612445148061616824476272408743169852489899650488762079133024841725558726378070119702039569997845781048172025052457956021876268668481279566939575109422304848585391842953744395322349432575928795855178281771226547977379937032197892928221552319734497002001584778166457734838336691292221388242823847895701923641109504573463678072090551984393786553464259599756752134948773341755740972552172835318429502841948242141225941316212019299524516437429523511055745280205175612864084328185988003971839606006872660740107642719004097005929287696236604657003076582699566300221550955306698436828725742787671815071691154677778201105092124159625503220900476735854773297441929913106764309628400126630087899264832501886183947639462979658521388661789431615859314270419795586005960058175074166276470310478318393722982251960219664597524460892284487332608772435639013246808798813839492003536585749941862999306991785949081084441081484266294934207399053220483506110459626656047207764901198788923775646962614528085089695349809770846746980269891889606407156871318897188814073500237446957310677482798878007497017557403378072835133459945774205622872488303003612559996700677805290777683223662409239675781817396809990756512801669451761375394430222003201786986879390319827999175537509781637793019173052628425720513927031657998387775785502908050461084700712477012594520919862382501371267312192550068034898181923079229905762574850649054266986909958548633205143869402374856390953133907112680856633519988478458958421833303990092916934572577999007715828230932073975441082546323397877455405423945095830342999407156985445831211473230840745951492663188594736223546953175822196022112213188727009119104057503904854772669481097887103234337753839942812106233839551991712078089658554016447168882990392998249823587832837917569412883683457962307626825730914067503272491248826310444899209451114412008828261626011230525986398877911449233988211393351022113718351149668018907672709556883811309281441335490193523953969604401441418331239643338644915403952132536134831051000397209114584247880063965678929787839082866022104835457275023140039873273475932911135520449183624052772811202006579358992863990392435835776511474812513518463302641975263033246818498165030007377132887053233429700044260355397799627170660073386291830301416413600706617379532720946928178464252698081998810164468904924165947002133804094825468548669601644469297213633068925995317319435388805670642840501556244358632157112652380925525133276227937690164779019559970731305521555004241614445988701771056308461744878935602513718848725951399340184172703582438126105364339262771983248395927362811123520489455268125645144937426165550398098070883098554877221492589833589297750534866977730269670571895606993511628390039099758789418320660053909560602573688777131334745032499277547458083320016908996041515652348391526860576123989454630664712601133119495636274246935729139569010463051562928555664956021997559714506924529354256836345548603584645878321513230488150451127241698413296866306397202475558365967847569537316935616848175450029102804357546592889622248389652834014994635588831740442781428350681799554339447182973579790709511698317359778887012337931663162461635407521450938420220881618396783793101693076665627761188875709452985284447809009178932993276039982940388118684098645163987204700003684793690069392902420998448757009650745255634795571869620913362557374764760976446275893414554769271217939725810902980241035351743814281276897512080866930871440843467150129874773586656414530305302107709534223974518789092946065937373512984474478832691970252253712446934086156910888642145598802765451792078019075130607729312676418995326959949873465351821538249736389869260705557119737127559301426706906000471077243397315482714229402926720645586360281471984444037424217922417186206749902146689406132198732137112739630565988804525535332451924350346048813258100663505747671292446569834922445223177987771350551953341260367828065693755791238531541739627506924307005206097606106069064161035648519798003776142727718351880071335689726122404690057339580212808045572950083740909826732552594329068558255537847276344789540546767815276424509861918052742119747347396461032641377335391029489396797648503540860213561384037522354123471149016544278317670610366312390687599205378317466916179993130472958964601724573820151861327033075264001346750484346056798458609161739062881155448389610458329838682793526155479354564331686635737293339036821960689112213747175915507854377891168865121650514938784935369476231938822253046108608732843047844440868671552468675768951578551328673109604585659318528420707792336464564331096810740762967723208671445364361119512020491457193994392598469546093220039850365378219099018624185581150655072628711477269413201554709297620259130571221896848442738679251051495590068641866182555099618291198306201758677916883936012406225228670472377565006508419789203025773915386654064316699244218757913303146507686568446304602535856815608030827377252101350932543523573224869668908200733050673216274340657808704971733462984646305944809931561898684439435612722992374199616970488515130187223101932837331793481504495904950399649785975736213659993979010127260301358648108049301000216306414145439083080762989451819635124617630292050064528418750052335305888609405517865637954404481589652172364466706172023315882444271012695420795797693962107227902729382218156556088054656832315970344951004184604445261646668331527624194379974433922253868060589760385229483732580377593518700009270915988426773057097894748592653411352704729231950929913249725266898499873405245564161437419791831995876851353469791142745358720732012281478384076531519187156890074297621988520024743590962462387813227201465117569681810129017935459826912835117185360968511386881497621524608129449890073282757299641459020514995701355912139695746795551697377701612348655380342775000481504260956975768268540320669579735744488847374430029928852112309924703087723653894794459795713424106440280489287118020444543135661877372597455933457532472918024121753983985020150630233476699355394553899181637199248060113718664993947480833244658350228272494159206094306507535788294449474952546751275367683008566785443271095164152123576784006834670244764959142752098389159708018280177259903499822866464397900267651260819332825705178928073063052709998309704003614137130689621565082475426691329243658420226930330748699607302507478189650697593424455291771691148745607019408932421808954719507892658699621591919887496133930767637533263324125853759470126715744327312507409312891883228453960976581468146494705248255406025141993289961706799068919158328457572209049674792067463783496113542482808916614845629777342237842055268115298546231265035668420219043476398620001028311670702592408476972324023183545858216931388664162474116602369511386337106686962775172307690498191920684735193796003926270295043641540619773027306152875447992496242056470092048651007972240412494710532651326669916026231343292577449478773503558925976309560452853568156465101808191608608984917513088076604344564096803107312062264687431134692618687524906130070860394817428560712385658335729868067596559144329690981021466767198858042507261404979744924264564866299794020472293456934810910898659343539873428276848750499634289507190035386760290019791910503834777325809078090725068126383556360508900909987973306546491870162496935558291744501287671351226111145088390948900471577671585885245763600044933064531366616276738753496840832381915931377638210321253306151721851654458372522112813437201722014649502705215039864742862563578031925523077426096800345280073468577711124165582539877168828144616602483245153936545236120900025195161497501470846995727984844036269246009435149939995935587364072662990016966966303176339154153650983378354925082295133519967329693607716629097445098162821307539625645087304124387911297479939568972324137464409231965571427998963759058813069426824490619674779972389725428261526082245381404899398184251889125776133426294934356512770082734920834768813786304003431505172018209880768902363530050173468048381445792661040471437488962934310035078544881286065621259399154058603444426058180665736508009804793018972065239542539777098662115029653514589844156126144549696572064507610882486945594385262227128478221756262078216259298916013677837675915600409881590726244789703264771116274490611445583632755056583787516043445318343948623080664092298194565966220284035127823923507472104346565536373629971082592937999117633082379096895337244829131681563167630772150550317889983306498736312631821316926247176236447062787320543665286347782893217138117905533238674241702491548564197516438819741744386101642344387302636559835113503857089854595978699466800533045090068811644658859033286874914865066568110049359505419623219653760398668879050762821253871523164287075316397043578005030550472688237645784915388160577936431839651430320746809991746072079874886855107109046394330453114811011467412378634914721649361917349620668660583666106739107417853085303554524492290300912907267178672145069478058982848823845279232249281164106461793365037772509291353058367199613072990793258990911265801637677921896543835797537549312227418819530838743931138262436234443402793952662013911413451730459659622141191361722197001255599767339545465741761830870942433757075667051329225062199808302648438116204596034177399784718836174601832548342601010226694623220808436108591478270170823650748245054352364698966601122238539496231447420571455977007970093840749218370647040027438507251956090403425866473979135520444011899049097209674794627255232118228991323132235115693438605517845653388748114497632212563935942162226963153871114804877617794970438081114336149154084449726885571601343088383826079645668710684153016180759908732625795564273055303304261437973250165278811543048732674140191184226622893795403797317793592603093569694874030537327850419755782944835312074443748042399499248527648118260963642177258121856447922101380245171302432113559143683526828345137246724530388209568618480866798208036399855198660713550130959853027839870039242928035800276307222394533809304921426071431037009464155273222408487876890746286231771338370171508350657372587001502896491924110560426073179991426465665965775569309496450349990697753671335223739921980958618159123054204750679635908402468420673886604248102337540496399849624823333907432307179570241697343698188122771878471377540946245512998175505405762989506641401868630335318652478709845381891776777111490648434688745745791943059749830933984117608397505091550431688181833801528845810059525807297871470611063761668478512014536089523197671517926983588757364022912960878598477087266860767242465368491558641259142491989184734093389908187844887464233558346789404093513565666252866075962588566690660670393139438552930279215264732483914481498688335342440225096255451972364657327354191552630803048073776761133694286053174902737290320092339289299944495677517112999686311898638227649701729559107291058967401529056713883921120930609053211921463062287738659752399729009314471795068966015898866218297453384585882148484952610484328996054689434748638777993420890183744110550293338101436547947829015743306255853925581316662956274208736047614447966295036835070533120106858231411081007520771130940541220366001626287861203710352573687472266073626544460789928238150840681891138606060146904603173897858039875015221903530888841039922894152989064487395570106902715765613893963483545482214310281987018288500780537720158835097711926073342077679376772502975238562271374345961896604443644457757942371577799069829274536782076280562227987907307245145779407868757363300972928107988698122916793210019799306676470127908784617104570006129293068067437641404244892961355310983366127184643971964208833265065170318925810964412603381941001052741188479231538529376946418475768985284041891779828860521436668441287198985961738659793279740370359963515389202861065293826238167821892058194843273260074092373749264688282343503647503555041705973336263488746980001373232018785008874042343591495503550578044200962859170439299529113413273229606596097629335137865618964351250576142811278156118193946596074237364605512546933382425551784010575739949494354093113681754490633127592323105524337579690542235415597731334179111863395112771381515626099005208995576025025020520430160273468883475529276154027402250000323157016734293415202300907755508459257700526929525702685102829535884307392655922435678617992713917018882158509957602453913835673263656977192083616067161437173304821350687870676321757907698373941932339000069303961957877398968619937088831987770475074737472934020953622347062539343979103839555906532905894720624605678325349098088881982245440379551435153974248176702690132981393760448637803273266360788760996498222741820052571669689658076289793954014901941316428912265501286381138103408031436219052189319793619780412284665977556049729196781622993323634834925703500807797103988501179210197309276754347312222033691782761772321199201038352888260780086625760365011202196907922057333636464497761272367395547656642726115641040212076448993651548341432076009596311822270527260395589214397141197059875725355228027347529901513122045766370558060087948147710055467852796637830661750332173688714081039130351027658015060365648062971051081419922282364758142531371013884425733685828264802589290056695528352233056249678376498577164541363313430990032053828084835257326800932979028816437748125644536058264860310375512729418914603299451231516097221840038863302490394971269928530331834517928710294717921900605345323164285986080901000719050797938085565914447504849327703319735503160014920174419775575593837941345829699666122267943858153315537747128700151929084246557298800234227057350385544369292641897203303054656006412759076837078344435444672884283280858400177587085193490564269609823754908533970301964334150923352514990390765973386289764985922870973222754503458220284919677016909819037172477684185938242209908875823146916291344733044002588598826084002031175051801015207201796134972605558127147530834956588149568399218500780577551053265991869725523205050561020077645316983160970828444489933891207765944479349199211303889350708522589343405172534078914949280018782840334991559207503472819246507695480969184971116946434716361077708855704185113365097282454574171621632971472394187523155779017537212887195569028246092830500406016222657370796794078394781641779018642727848743161294777967008339529978320194734851104693041134220745479910082049646748935285759983835997436196141612965482313645447815009618245758358237430434285922013140893570294595169421132418290680225981862781956115251401686161259231698348138912982250620953520732964928409838128504935304130475445723555567207121379817969144617679058095170080035712174164738379583848996337602552806703174510900104057014635453026081566600014793095182828015852599309081197247840859976975579620742804207718964970001125151514404835592186269053373728761177644222192424038770697391408075402279201606919226819033507339735113438982917675570333632146299724808071806970266649301323323702602398631308283352522175757412948352306343074078023844043303813087549523525535091602257646437503676702698857052477257113316183164232494489494758801926476381202607030535347545855300708548186929026779946704077120885891824450173960015395115305889771754358463227663903906730699082775001673401001191134859599682933859767181452263316065233203654999334467197092564902230705209950597051478653208848587519327484430102367470207853770630636277101757296056466282350013067834978825322920924566095464584847108978869513635708866800912301719211659379510187466705906026399536208833324515723383720654084569265006023324770842241467962270530480265526424467493078502268724757666146063771381673145319702640492812430658005911726572729418382105054688681526107897221075092344552263039211640798992683367470419419744086197846438916266356750867650530265698809615040196681131170613247836969034019820566188966929228747070442073936523693641981689338426284938689210654342100918108818073145116675580037954687346830006423668139749707715442613093543193902064064622883090843663323092137267705879745795090925105839664031644180280024537083624243700259617961153222576100958784990789833147133790376472944906356319362098925148820835415244748850539379819236721298729554995542192339406060632873815794027088186120205273317222501456487103521112248090983822402271861158613706648490097604939384136352914703487156539833061000505774768772463290011923691757043809157706962781789693480762353577681116326654510563390804621157620102485692552190034606640349107782039302453860749749114159215249681122085003303693694387991291335068544240334220391662003612443680337307393007981257531245244760610197008883034038165554454264134185072453679936108658893213481227410601685239010834088374698782070376736561264112340862985553538998848755173828113967885047513057180320706315547577935971858645831340418700075233924232646591575742639127100842002235550889589982846035153213369266308273591610006868107928819268771273592032287454591140795329493597623144696307562853443781469845141593842265853524146041567618298150453318607691996090089927646225599380512505609193112270642485502150461292379508991330299715354915759725262709398161115907613383456908088014522996864465668655385400440582923396268033331872835347661049279936437239995956047293953528691587516152071361762928578803337932366801661561701358440188883879393965984487963761779944666328289971207210153976852241041031460121403352204453209221994146622461321282617561648558800092592418605601031699123298404914478327493100995634645923254058397509609357288770031276930568407907579918924601710305786989596611133349145098034808345661782806176013007782222629648368186978141387166848392741337335543358008695884341368345527846661888093387377605096611850000994978777328752130069400892308786680617532003722331583554690709375660120484758144972999237212307045795802235006596952271872907638282328638769164140460416854861671175363372106445499863210528825211950684476060872181842358488619113091427069496869958746833030148127075320737889249837219339725674382022320963045758236104383451283477879319102436119686547425289398109198523650250685626681926952840283364033475050503965168417408755175735381462541465267320020553863294154957109827122581245154088719366484781606017273303613344574368722598168567318857098094177315972626618474357456860938874065926331326828285728385161610111096216108671629726727997178349857706574002183318229021698080615872737062659706189258454150820454031348373663933614110781941648058082311774458027873728821775100387246163929216265161070990648579262298412050703910368962767301170431541395273791029006675952237530479667835570839015415975275697783072476974778362569770386348356828232215565276124148611971921146057751847694675244396916564844796425661772162714960589774443146849558362353450793293710419894940327644887128318161393000245880523501074978351517099635625495866878951738600120050240360372747660561916690247615908383538911695821129174390077896948469657200336346121977834693936452466164920524486234739130334900195259228882999251636022833238183812024987190896947558595197851952848125866271183155097863969449286957681598244319753443372971350239783354787237979520391135965317130531152680799303352603116742860355015972134516388089130113788227817421390357534642364242865160371352133208683732777455019615092696500764008679672108518851599420337479675217880327059609855456138149333199778708085597282714131200174184300639887269375911185643259129021549452256818992003715718521892790764861894734395354967765866531761135406363250392291475770075165547429988178515682289388335696817363168763868667689788831225035736472746754293339872492204368124053409831731280151658333827012069000316035843444455541815572615982072059105983101412119035901382086378069432139080126176561266505473180121517607675841742761263782781147068102577446134998131437821271456115863765650250121412485693905166356798910722395532208701019720147815105574973061957986764680166071947872297464065920935186405927884013017355176551739028845131267790392272640011055235244740582243890332746893945185145239426704261512239196847105715531634695093837409312102170487159349952278781249551250405479489268547860298712982622941375864576281875132277338133538001156761617939123083178893558236316241117184196991035187943191435133782692200637037771095847533023509340647916535993076705595803066183657553412217934789999553156663813459457727122467348322251464525909324188961318947833545634214818623773363434354551419622892022466713621446307835280859618890592672958759781978206073393196243730863193829485608591479724837761972221939405293933119374777385592017619684973880595702288708944135327293431879079349130926300874365442708724286764976742165094161324236316417788106369923998209425966438405939765964680968259364846194970873864235112336940920750311883697369266812787664600926111354826395659536636374838322702138248602400348797140134962157991166048748948860381653941883768117721373778166576066959986926349733209086945118350131470937693441774410062678594127122752947605831305341705096996081649198338543478868439280335230769592260279409123953532905912471161595062951031071695575708767590437356649350096298867644678740048363709761238250938785746693592006284209983829882545703907534441054895275836403399811569099397818145463711279744198163123033665861085179795439637118222838418854775896004718726669940836065095647795524128659527329495905770622098227010384036466414955912232809057022792744535859963804066084899377881992280443119098148755512115730707166186450943159450955429345105059505332071666441660402680193845397790630425430026913498756833488305495396475064468208497475226239918746466983369222972270224296382355396336937189361572723933251130887566359129439858269668312575151101482134003821408985866004084365676349603558491522478615413405860538377147924340999111089398715328817664086381865302887219115888022286528731613429224466419967477539325885892123100259065190844284730724310336080047792040300592599987781590208794105717494635175179274779345439723541763240038385993722561440669756186284404332537957339170590259698904316570334518413221391438514660865138668686643775299788294535452328262159418117400551753176103281787481111666280422036637933565958900354118978187562037556425024922242357003062912759844333586826468690704001737330191603343577479872563127135431384159891766891308987867738458618294068360812483125021924266170609127245182442840620882008633240337663255222148945175566807677983652370822494605129252554947711704815026840684958892938065017856377060047746735027254182278425432729879158870168307822051213749542960070757371382099349321623508266905014955967504220398013187603725843701874655804129514760482527499492511909878775334453284052797997919496407334552591421800631191926879773481257738468061370623167845784851981315139901079347719328706443321702068017814938730225445966094260876618987680374750087499088147378954759332037548429490381647032597274560290790602413421289312102267757220849929944910778939430057904943649615757704760665450782383577751437788686291425140136201340989122310764827512637003043889284129026338861315118365338909373847186749929732018335020264522248053479392238569302326111050814959905096235685035565311273155525814975090653757022380005995100474390326769125217922003112673361339216575885818156434037736021719414542282696964524305029219942462505328040532154220131623561482687031001173359072242947676036389981662337560920632333913884612460137728219372113782934028152195618429785167262834815531941011372473753683681806286860229267273988908794232504858163131591628274101464796657286193448105399930845864447092628353762138201076506248484836539225563477669506056870822203555767714466276317107019286801035020624178444888538275016266641404973087529391853452025998187083302243870968927583003864276152613305157010976858457043799253458762699913346055691127999289420397185351986172720993162765475154036218288046097627563406402502321964086559063184632106968575741413234847665312769906114673207826146289800029469662582227150741211393963335636583426663209746836648245526760389829648593028779398780918060180154945572993322385872252120318584424356740345273863705116189793016151862047892910712855647080495175845070639329291199203101547057067615615245261349856390670620840680091218698070041761966238959711617335067316607409334263787947215454040541134379817395856965407525425202942226890371683223979537455254760879266315136992639841976744824952694997960643370089128317817785851869132062540312979776447063283741070630366093344377774590903745527048837770857947578273382440107295542329942736154096113735002498942136336658559760311655250709766425791564403561878748926145954359296145760510473331863384469089388073810970985861498783147605370810674476718847375572583312158639813938453191382905615658432600356294222812147023083857782791368147200676338737252765113897160096542025298774339530834430931001150925764656480673235099792395555623508964827075333233722090242714919231469480025936297901201779710469321926382287883248973636527302890206091152654672943367769881308240603587983379526304425382600679456158231047454575300839156877774865160076156675447970012196296901207933245072809344775473740606004276691060943389858110150005550508677409020534364243189499092195593059988863867910937313064727036179545756796437630881596444022132411463812653296244209758698613312422054372817254085244917444254935103366653533012358661459132219144546525640261420274587295096526927987139479551075985217645198188819827594162791152536763701326585212856866008885507159427282210160654709662332689903319401085236850054274536761234322595578933889543871729750728601447735128969555280660328870146226753351914033881464880099695246933489389574146981091470329364438880787177318124721459128467386487334838694342352507557292517885699469942334289551610911891988380066315172498954485202656794638384130035500352970973338379901381145107338963603508831448500983753993946544049641899349996145614070814551687258125477525566110458188477771114381977681347965323359284516280484393910257396376108546264635353780006523897653669542683569443716455322499205113093141228535834970258461748068034445554013320630550162357008834254424498368899392979674368833192867169029868388252095381520073789043747928741479098074204446016939720745036436504214772180055646801105620778156816298072150203106943157729104017447759965975591471506261967216788531106152195269707991505188848949281233820038082021810164269675176596318140659551475801326638898468546365298540382981271170919215686220432799291354313449820584323883842493552321436706124327897480380865591116445766139822702404701444993948406714810604296517644367681716813356077002018080144334006242550092457174336690378224226384398543370929780842074495987199837780253382966466462839057812523156370177865931376873302410447242586327019351936481132494804060212329171099732558535735782817381972567859467820103647768592366467541143635384713413888911652692027828889206948396995200030439285269615960305193629420094201755949401618676896069872059045537827365512320596934436506086165655727871467523720676421876492313163929105963293665102520082734999512575651593939823802194301106830562596354087649278072589135444490439668955280222091597643938488627415900226435944289019642217327147156258924739883938461984576502691570368243179427598535279051986107725293802567217330653023866169940676019539586794795475479732158727354172993513071780572127694215559531351697737391269451874499000872410052091416415967091488613253850591694697977949559595662197509470194765170633426427815710132721659223533518478201741112405660118619495106523000924743362859429438199820254347368884631694280039459891431951189795726467676871050646551421191162745356087476636618143361068329270649556538902413532208634828932211041565634042558265914048509116982145570299912246587450649410302734302905087401917441329031834063473431653893859207067816794058810473272193143525306821442615564856609535835826604029025433598298343851526674074499432319058329483826354498176996897432636183599676232251909063031164687930989098310218665891351732219593271772338409213677080562089506985980631914280138079652358341261341792017932928273224443796608203095677894433866137164863742542817161066940505803867379626185632455263876039854666421150378608526867905658505111240085909769562486111240865708404575397677505988279563686451352451565350318371425847508207367852378833700665436160785924469958095065544252030822613883460337860159517020066795158009537491240258342886579157191577215186903496057075071082452914548082990443135343665348344061471773396471279766078150738930283647974652823488322195184002612458286082507659299077081768424917879643925456708406839876042275906525271628511935670627392922481612598909359310636194118687969091583645442365349924735245393489438555399871973094885802144849421522286491283742451172284235027735784424389622280478465416195665775963560353415051910835265772272522257151125130625754496110249557646238002944063341313010951996573613177232770535413725625455849802333682339209821407478990800375203699036436599402747246463367548809394130937369124302325997902901020156424850596175459003526288250708062875854937302856258640565032897947882834038268333362462618730563502900066827518612525855084345662147400950083226586211158127686571314931164711988770679623518652160861855836274481401483188740774392249349880026980110923101561337798673519312050479783252671206794267659808914098947726190933876505029466769830279971733735225615395646312969605395020530969523549116750840118693079313552187445934598832317334594797257669451625028409735420872792767044810441891727531163299849268720087651264767830326506610957068326009906087762482878581457131448059194917000949927782399401821186447596604136341889602999475451714532292152871145045881815917616419755567618622213494013292258705816806283312742150246295468670237233808914475390222054838500836578148970586062869416473417572632958868903984838245289868500982590940688847117871026136973250344214435517911612676891657498909408350327678916151037876601561340472188667728082083929108610520464029460478750111205010414008880971037898233874847052928404476158048260268785385228318162398182660529631306177499019061089677633662166553379883172130648945902544744793806078642740555138647122122019439042818888044893103808229667537133242491406133396964217725372420549909464642407625451977539922484317692161011000303117228068908226414560191363444082213834982965641679260458769606102911568661506078626910343869015645173750028781897483392214475167967797506981708809067117110410755759176842496066223212256169782231322427701964774912169647992201124476641183630106796497497264925585140089761492860585579072239184716719948021089628552710816805990196356941863107394899067662920751673685595202829326552791099025744643413626296870301362909370371426708314876082161298946926540446813529868019300408726601130208458474277673808421241074618778531415680638006385499183441448413121908184659043792310903305153260170975045617574102239990076359436881798138446088621131182566150512548037901670700130291192155477730679111169763207026859670462890376402507883774102170111485413675809996979655112264613280180377313601046982076981975084759279076527997350706376099611989416153935811628126158585481076785576017487844224807955574588733933798450717060049434447350700194333544605945152446538278861628249546787954123328621822552884789651355439432887778104707992920695753166016255962000209831954641375710445816206482408934797292852383887715828573030015919212404776846549178360201399427920786212665766807406716561424548563823476212538843856217945349473143223396202571416425940938823572570161706716249962968412161656482145897402227581333753247252908903600333133812097233976597273178583882503379699763307557285316137435430355136292828847500757484144679148173189604321184324548377171510615264805304021611886145586831070953066096381491786752188966013867055148805671191977795496530801835142595286278458157936594372250588472063306146657830102385017135192097363020467219203300597149106137853494237518308516386341933393053755623634270286051776708210308949443598284932882054274112735217919304407753256169387958183255775185342082920861263866558574006373362496874260381816411768024464652389024419985261650319244141814265456648781110218011050350944836391667163235531894730742872587085390164865201911333877353165689720675474233217809420181281716916083725498407386051000752170964197128177281453199233511642172038749561894974025776268579561972806387365011224748038294089129841899937372052980238049058683897147865303476808796402730480292141051426811007650078474425281396671739425634032550956362475527971838207425748365543192917061455594530883659796047351211471433584486071186237595328751724930539862915797506005663125871810464446611990118857963940866902806479962388720847285228208019897235664208362578076063120648442283248854296237617642588435610891455673526764819324226498397360438140511231392440904205851688946646779003695272708761933875622018752195361952020147166274350772188333176671492428489540468351326262713378376556973062855538374632041736356460436722777809169878886065961768287488875481516790748794040188969824804744585252491997634877368276609027005390542213061560094283712540402106621294224963999391501162729984023995468051046817647591923437870972628126756080058377212043663106113707069225650552129896657109362574832428126510992075514681408853587513783753606666334949806349263600644291902870522935535242066372563893860008768217375069079092175866568079780965999521507830154039388722730879754043334123687156309815384754396752625255588881136587745113066988564871187589660745932648913657845632971238676112989864590119235387284597954792310348296403009423793300175398773483411736428021579565944524972613169116295429143883534002211593825615692887524410646237550911209327008801050253925122271176238380591553197490792759789503854745304407387322883824674269988375930936706793559975528184361032206789381906430120102269386957630455730113452980946454344933416833921488427694127743954762318189411709373261768032215428939978535486558826142375337156043699955715276530837560728887127251746289794576048820564080803952236602686912691176329075210048753460535361933992075340885410504334333899243538312857926272032664896492713678557332194272406267669717096835000628235535392020537383532635923804562705069397170380947754598065302532460645035984704327444287978920322358048267369475002060988491330849934132933600774060750568413003420283833181595076711719059965405626246754046832881648715376385235462906453361739374403384007149296806656552698442241513285814059776140110167181890298468188329183150825091067775689472486020973358144960088605100988304625828724211789071357678720461501703065307712725474424762877616162908209607699272846021210627722226120511318354427086212795905442575555016821404221798980843762077039742395537455419105708548512485213711238418589570543824779071036383327919486736378804954774142038074894010544475789386043502094603741155200846931650217762924405056980060912011190154365097355510155434867884227942376420302343324047292268201989867746071943866691526143765638252104384506015565971369324452740958086026339720476398973508773419134516039322377176631559825109842183857864177586469321654197072372804577500656361356461533793488272250066731857655591743098164729299364815186828478951490573883300470634044573344545799444196690347720347258347765215846422583064060462173722342296200781381663866543059594191440665712051771076058734900726783178147684682045413594812015195201634219669318736490480187079782824716242990576429906163505949690380631551689732916836667548446622526879653323541801072182144865160527135164508839098936681232350818848694364004990347538404490793256166741945954077535087214932910375691446302887220671922268433230795380133680984017310244295759481855046991559485366682452236636267937915558363326713052465847599609633658640932508088480084962506934913750870657898064102068742973018272273130122503631395847237404311924532399781877695865220351566575657718646321515287336067800369158014098112750804405464010186423767052702382432730425643386583111759112272440268991139933800405756965647134073536017141651446254749590284725752164757200215973842596239933940017391469057095125861510269382004834827040991907434311164367611258098051730809362104853264217985506515137189395739223929062781845110549655274809854499796529440095900261289809129001918440324423460700053658170973233901337578654917433857735976630849186503733746373042655646591710115269407070314957184428062520491127003552327819208979602200674934257608930396674392393973316986806293782152603563940850585258021258920062497256354974439331081619865013953065947662873112353246641679423218876872244787724981638612244040509808132331612789313759165692661464814228100126748781857481952035741747370782035826855276919349057119040691763526718247334816299133716058095588431878205774900264611626770660389190953512278664618052576533536921226698734589307053170576180345138174271282077811190029681919303500148191550991483349597070809612037041112861306409551313179851685000256310029524119449836726843469625432908814032805919314729817705322708647268332389044468873232566680644405666806819751405915666420253623033397017303540915763501491712319536651863383087760708912258687715691173109917007987647871434958578829363173233193123017036059955180719573434237000377575257509288752131665242817652877857831901667580310810820749358726343757250428356629607773316114651466560529419214945292873896549702876200351765174562158097702027353478112223770709147134852465058589494779733585345159599224493194387990961704301598011855818431900845089707415008464456714369957264050335703824092111601738847939651621391791583179291413580677150324957084971983591730086470243909571047126811503682024346170974017607056041035451869860526688600146611502152261532939800736597899444506965855996147724370297251697258768096896710412960782670403633407137718058856345107135176630599769402965675908321592173836458985653278102294797124257079830085677360466162458647056983356362242191932718796909069733197741005692533976115840813594589193925427779265974964263912107859336419054104520872516605764113798236969954331170844058566946000081230616771395621193920048595206231801470935607143971538926974239653528016431498815972338150213872632588138781814572750386048990318452386900150860542271803763953940404048256841234969176816294018358136557557811630703151704979363587740586388995245387955309373257301932818930730116424788200670990823588288704356102589296538736918814323486626380244526311503309301515369853597928095604896980916312632580481661061794867479484998805912398686370062738176819526406816089691726565227138100977650622080493036842583011799653574877100439766904081039875318912650267199369316558656942032502656672181148718660149152950722761219902732579115088357281683757255893337324238548790707268214071128599517574246008686559897311091737488977169290916237559430337691561977540750542023211214880495106322321850928421280653923015094191522042467235616197295156701351797438358036886484737731829906094920991975201138347209400997841035664449749834811113676938387088312279701606662817919235253896657499137321235429023114129667080251679209888230887439542497804735117922246467463950652999991373356113310698119363646648464400524646257244471047353675440986420540551153510286450036013130591468873702298886963484138167440211378215904848094267556943980281203749177509268700713598196874747251672047510701259246925230052951104149067835829062169584413384467969893091838482809447776828312275183579450437215335670298083948089117336605298315970095886013720983944100061571384354862472845218981264926547948843478039368780741195828841652926171080607067011221321215419539482237933247774080651573410255516458827196356543651429284215890930502122905180501445333068975850664069320606852453727605647593746803619645688399729308671764136414551678116331130789997127791850858486970923527147568652164688775320664167481938912161529370749657361774897305062642350344277419079627428781942387437148768583625221333287749562890218194255743373153666338248572542060935469639709412468216479531634520891888747645255344763128905237350424406832849216608212548434219088263088843584356396819293849760290737840873980899427865045086005691300502355151903204693103648949975542326565389742153208772331956986132996502304351313538016754384169352534119520938082239862954141453828241078338708103778836306743383619214823398921188507351906513129138471480479813002806544082324052392947201370630925040309505899572926271833213719255170392787444331183772936381228630610613072536530824816400900406494516891645501288522988063840440781302111772525849174649617185257729466574765357105243382780581118862925303541327216061985651279500268357733301115258260552357988566244186291037652680839810481086299236941399596722490202584683960349930159749003865539240160419709031068849573453722713168752731936498162228638138387424543162386499039604768595963924045561554679791440380110985570738291198704734782605711924612536362415810971221898066850796295049679812372557958703878303574957301636890166287763739034433000836390537860775327610949878291214857269460264144682203649793669418190689662577755268090111827063736360996952038588432281193218984873605262518935844160109941947247412315827513064175182558613508113981265884951967401937436261456439137923774966574677207639633379539077699966200792167836280554465146457362390297772980978490001506029296451798749122350125199490948543050395264706619159424001644517615541647912647111564507501829185810839527585552725800404280206394173304619440895162672913877568757810089033823074520463685640440173438006369777408624916670653655651023592592729349826966809060087534440154332924217105190997565150299510267441798868824650297600554799872317032730860046556341890293555858539931052816043613443497334053748329096116543576592778008760764414482665107172311451338505428803485631111886320869281148317925056289036846812008438651804103729025699294224384572919258247856064000659866424006569762147930254523057177430921248369775353942509582383650082180479579452526256815392837099352149359424973232555320334569497998349977381992359442316145996595822388294204477600970902897058060295834488203697639737172423443567076210603763047295856857078012053952147979218117235664627725967579284794662430371554232037444308878253273925456297289614242399921044466746476202317377280254803201064217862666740408804553554029749826835868336359446825446745609156500226248084346417864607086797496505176267184136725426761343711224887789182036176218621610197970982127995997160512589217722415145900845470077757570817969876047968282780118276581898420856919330919717024723216522261091837734791816806237803085778975968062412189526727792241435154107357750464472495470042771929775668192090317505404813772853082101228350451778824446083895846214906904618365404936683159335992347617209737614928365949935514198957760885221728643831397092858698832904095684374293643318587597033051534377853274258430363538130579992871722801013789459141585825920725790178973950074734488433713426642267757745992035514238747193457602390382227583454788930587151757781363396045660291712943688094868545365739826244118389487386100288626238847734577010687726468106985176616812342158071452673334946045754389417512784056320516671981115360392224485122968880708519087875680648317274945755157597837625178997026717234458375374534642777558037317956777447501228794146663282892831369833434312421857554786231335985915308047920982902598465792651536751573052734203840868819007463134939441077208372218425403677732679281145432127081850967673544653258667506754466154271593180978102259293100069979058834188087562638731231951445338796920266862603599588542940193070842809649957751462447776755490419779147619191175645197743615011917988181080896032742369410363291589529404960334362279559620920326741559321927169689735084319306740589592143338976283140305849896737738837931561535404043542251080198717632201011702797686289130928613751795347293462972289975113284985214845675234176227254214382278562733511001845579435259275049790115149577763364150687424902178827418028310099410223074850999319825181520899409753138697591016712421874091025972025338429873675190790503573252196943265084296712240940022795538781057112643693086672356474615026319024294643237412896527230778911439301510224938607431181099441252393798285361987947438986433791858839452110260358210671245757606761635429729228791825516234053270585439683544853753739737386494728055759305934387721069637367429297985708363590442123813810717870574360959202803342512755940925016161147248046521215986165478331074851927542137269400376967449331276282463863351945120351329602505610287666531345417778436389315138833732866077976804105759277182529566358546174191610977454641755938630678894587566088602468056566438355705463675886686569977155312860146770579130575473159581558416203703349337024740260504197111356183354982692009455142014825653921091636543148863093657903829717889980000433527458763795404791479422958430607376508934096898906407251715255137225459578752627580607226758533951280987368270462740130638670503483762241300034836010770538790320071340042892764085122797207051457123013358136302501992893251790189698259769564561607356073739911072199783895221103217925485471335331879043922604619767231838501782839961062358670784750541120542223464659643520598761311773063293474786671273047031418430436663221961142911712564189976567712922696284080740817658914200189855602169981688442514127312298656351177061597030193093265386178035501919715755108216798707254442313099710662711771720679571952058177970300497117308378090181326351867880100960332275057366806680080697010342945628155274259409705538680588634508087277444876866757615995575997834925079551363925932123529443546920647933372469074277252561292920969841026207393294572040493511347654578460926660007894848378311579069040209141699486446446063498136536217550679552783813087395790893725619166095105282370076479683213533200276052758791076850715576511757480330991269580901248520431241309939401758255941061858171772580111200459261233552773459137185684289666296462737455472452159925894319274051580115145015894812222543558164926118702558580893612675048543003315503538127604229269985976098814059674209572394961981451600574017291935558530741000107911852237704905544016793064966038776768239231845765626626445645950959718197917337491954828884815909139732368191329476825148977657475588181840550819908317103619042670633280087771183810952216214773529142163033278113346816368649418621712388793992664334382623501818640180817599042881592241463282225070259196576565869281811640553290488731928049161031675690362729064679061311965693807285268576380119215125302183159246511578711410489937562198709071633836639666537937932996580621699600819857677272670727110359408816948441294006595814674286602711366486800893110704271531640982331567508267839429259893770322941866502895836591364394901796039141361495647683266490772997440436092465583272002433958592852963469511797847198243090274209456239516320281535993251700192030817222355044757467370190957275273698706689537857907437534736560510959691829739416778150644747802470748197650764084016766039763388087968888243342971907698142311850883520237790616667441646536778492223914834653769878300246613189469882863466954933816968998432786694115002401321468923246413799796524031644589759285541644521887278832356560634014820689396687221013773455404860217380639260854702400659561535664211311518805245333547382957062387639534876285744106916449986642671410068389557421575074475615693041035943232664023462589464559797675394027166875391348059365205686508589665549796301210760855355545396671109575817121798673393700594878616741199905767072455513385808595102791429905462714817207225097797490887574937476305159368719016528681237061799858339685160757155269903509212138195025714820270172669561314545723996940016311875159456334657670835961823259929825663133292165424864590013747790452293548469353405393502254447473628559882031705434753552229311237321438810093002001015852808340368051010195337316743082304968327867625495870920853550961738097858397779516862395914997115375721615242193148872615035524170393065911128638364303091572150243536125983648527821218979227430666623397567737149091292840098468355165189741658502240544774703828803654265056264574435352834638493432865018030977936523746481210503444579043053024349317180048589095893107189366915705174831194781802548732028411893632968900382313808018648139421051634712338665586263059538624282702869910314357676771246596034191199670680927856603265997379565878676429275242913403094429522719385574773542387873982107540963862805196525973022203017463808284051462040867089527715657859209499836140292112401798178941414617590807529810360464089318551505402512410968104895673911888214665266561578062669618342133393332719810056411871934824347866133083356289417446376983094321369200048023300746892481003107880266411198743270476794543517635759962084904762261597941474948609011462988370899680959322115413990359474629552197902042552687795671614544626213768112807569521459072539820434749199729868051318922314653037361768692420270570311176689628508552007453080757614835495543322918392132280566711792649268713821907044001324480842778352797863356036170525466192245303705542313912312461068289140276557310302935338761461571991434497778697208354482963354406124196846114208069791563337022163196934606976614992968152659327757094355614773924546439038266897034724865421999241184735957612778270571385132296563811520662138751163891840073874781559132075508375649313530569775808966774118642357335265692090332008762197369649573085181834032384428210161603943494397461643561795094654287251245731830803417931541855189088581167807373862289189340958991858442792128107575839657009872215795364594450928173919313708021203736536886437144157665134772376076449303332676322543745116277132711898528708505912025275373785953403281133222036665501108506828427095838300594172289669311338932002811882075059931376544208883604376474724214086712183056865757494585853611571570058991772669826886151015928192674490053945643911617648694349905350878627608927887681423460641456072243519881282994111585525590320215172718519367803656948159365730962725734075342816362612328730643872437264094511024103849383719713792937836687294650702988126030954119786862366522925426533294550076382124947436755926207929535725757622124582439276157372825907462196690375065791521333942880070276649345293123708011150164514249553730342060306765485309581430839594740171255290789487439500931578765834327127122399190255400997775624567891585293072998118021301596429558887182978368925252374623943046638965410714256782172186066299727268775629747886423124280725109836852307421010505969502738277533839976651329543804647290942043607044778761347440023934534189702920097741704704887254767538597334634072884191050719336086802555570283876852625032078468913057921604832058503251795592359610536242243532085610972936258543710032457402663833397750805422640795408989875185479477253996870193405060161856957564700599857479958420978953287121176077598295019059859381413668852657976932011958245727552765223639887975177716101120966781017292698781779789080906559962841770233719444837311072192019093419184341653555924401884751913916771395131185137159896078583506925587660052046394953159691919783042099731916259978621655518715331639046343895748061250457530514480374017130852775196396881661076914342821685253712269884304889360552053481310627169818479589723193623878367077582362128011574393383606360766219527616767792681783561361752003264660180077849640553011852483597177972683368252764983057057641533909160293616310380286137241264699022156696132978692921719295819897475249502859418345858734119513237133411824132859300460359442927701302938620352510829466180859521258459117987472474964821468085889979267865167202064734967014178372523697008894043928915096695611512609118395752638930632472999988067356297084500501994631861918006229482951757616485158121441617123312295168765574603094968975686269127699960237285445994000396150868295457734961241839569039746173283272233603511137242952938272778205964910693868001248532476959095463503880064316833474203346343900655615903297398109493921382645463424258122878106549058209082740414351651357126576297738947355722147699492007556532580167046809392903609312859029840435841886546095501891885639852229771135371675695203990302734801568226360859847954672515968049232600549305627135191730258564259535760686205289626536131431922628309569161491381318202381452373157489931529914590331888985052044918059079403760708893726953723612265152990993768231324011344207086009637216205254916390456316657876314319126846622613192559993929417411373631011997147303421159299443717888877110247059123283641306094573563840014274950358225654515044018471792265595222397182847434981030987353376385452564639894077262818243368297366411155525544857993205925733938805829424497321530746606911791800086320555293221998929752231412788900351230215619423428925557589851235808090885765946919499085593351567308103042341553886845377646620789799156847288486173830538293013665902477581524543708398131461319765239658783129197533366923111678587743801808049649493097944071331208489437833030089163012931668149442076641086783811721672770581225698424486260071568401671942415229477906178636169684107058232018108911486062723397703413326389557227211581638647874306836230925988578671702299746441034583365853275946152633466443874635110509677857390152975489414813195804256261925185647428423173411006963036751905741689442778049120300710772870900464007014017935422654386182886891268275373089391661440493070790875701464310212270860454390163354054516750779559371624994954071609746676705532012942186821205815290668821546375915140649530443367699230808169986682012849028215919455269296351466671485030054205371127829017906148873669369853858676095862344725043010712181156934466029870241081204508805192064753910264662677821692895365797052014534827803796880468983708708146593425945221761932210151280619660749225282741093554809748993404130908676082207370836637630052967247233954419354322958525332328210268660535284305379842386852876845825331678340837508891327254134716140841837219388987976840599544810037894083253219761815669988443767818776511547334871585261328864911758200792495966909015844158537991788525026130232693056749296862644210266648654889720223693723897479486952499656334137817594029776005918387498704316661121243056360533851114204862165997744467074721494667441815233253713724244882965727017134011260299296415123184981740543145966872939070365767398402248079762939714890190917356316773319547572490307901295254686554979996779836567348458173793680258149561527498505581669291264131564561132610179628674692063128869907724973875515255803936445528362303974070128351638533739851233938667780393619390176894551174603670707634991994000067935408975628831101029087897494064965633271774546805738473338831778419543886913719267010152785042962057532527643572162567034552169268532952628802914918996450413920872202167742837290184894422160075470735270503044299972161591841925433454700921487339260806632739079778544743153175076050467623175541951425484708556765181702479152641098986660145886219712856992647487868118135830791709263326797412515594211407226630868248996774349997972445005116731544030373222232401309602941656620110422847335021746189739229644945802459422932832645353384185189433727172212964588849559772790382790431790155629777182143498748028712003878326072764676979775174477889779243321417937969473599544067211540238289066170071166403254895469707264437763691680326414469440108394711960384146940624285555899768000875024707906630165973713848370465878025474021991858515340192538086689216993974401755715220455360773350718322540321524114689983064458397510635827902619031966964121202623313226423163043672116487757785727743737636080570769340834217032851072495127272375287517816685529745286077945314334694218257751834125773741894674662304393702465400130530268902910276648512612659936466079759521598013744463231850671737531485427848578694369781306071211355250494495691975715087958115032257472969705702309680091855617721371411795421691433780498122088135099319721694982281389111343361897035958282189740707185521187726363449119802328070870243168615890416973835528440215634853436923852821365874738522325019010454019944238015977359929588223762112176634076076396026720316216323224185706702848975062910900688318012068151874815726002187880982070261779857093278111372259978793110900988721922604470561920931953035221459133449280081533380611102469140013932171787278678777357878605098196745131200600692596875196006371561103950805467102374100846811728563942537656334707075313033869966473657531216859628596541847594883599754201515327080555374466460313899898724768907902891632395715930196134896263799043608632238251599401631064246002298085199561211368386624912038591737222301766686199879343068960656874538482657156716895007151358482896370867499581287581339537472168126319506965679761016899868019901903301752852926577950404297961672728753572479362687386166511901685336327884052355717119812838349797940152375190778571965252069592416599399181378501201731227446516888069174880865426168049294102106553004739662602675279431303566239201424047366631898626046098897964588685920726075858340125679626364201144132868140913284417207276656964420304169502088360666173044850117707041779287650793779877404633326284381991419428813406484160512759316125616302148964638448126894621551470484485960816801065520749372408534513853950476024916260524063089576849768841457136935700579836165897532900569793442012263222625734723032406831661212762654442209340405664929421358138368513885397036595550082113404095306033602223232495327090950833057970457758518794658861928738840774852868620926797182269826097543893716129900560807412039134341687878195095543406492888200837871043899085224068970201571423270490149875075113835044507294802104787557993280307671094394411669827099545360368026733780906823372640272650814325012312715170120872813307323859745221245903743051038829144093827304953996902260201894501060948546484994272102208805237696714905614471456604308851470306956073040972018008419506007822973199211978370357206340139695796790781584309295938875387594096896776958502597186079891805336716495647355833318127817869909829945816545633018187756705862762679282826695011745700464925058342849349405578005897653562503796275225567207217635716158568437172746473459363468944941480591882024851822040442514434341622367637697252704808811895647723459200945451148662068114523714442715521980294859042413435883437312434328466823811194846407036230510471154228386504279967371430907139787462830108410446875412043023771826881070675493786976161274245973567433688922862215275411801220386984632996731922382129855770315998658130727221640330356196643605949026274762014821310386153993217837361091960383023447980191948683019357504339229043609807820474982858906304322438910590920752709551440848286686005675912877025041115207866277225421830236373864236516759338525364100026355266152028118286209573053622019055111767336939816494555673639309351903770006764126712048634335968250570127827987311124388163436797918600417236778518422954469678316463840005745552731272637534286347665658957598424713727169456136676894024489133171040079723709717432411368903034427692802453253886475780660738891619014471777680056608120580654532612160198757481076377506430288958128933406285520791271327467953597037702308498492663098407280902397102248290177900674296608925086539423095038278723762061327046674568713845940544808664219267214321669282792351312902019543264342948614991196285694307021023255563804878328407328649645428045897292428251746845704017792281921585089871767696934152876126928555067344101250510828604671330669356537401383928781444054008858571558979231857881080147727204247282085738600021395565863881551591156928496430345551614893962856089011842241149306856257375091037437010457687523756728254401222819589381462219864661369567954289988746332408251141364511101289834328900888843428425744038410709056957862600144729209356132115208028807415859607424160075575995157047574101693615869720388069844743793189365576509912236334438770586683210154309667048524856731294903260995130509045417649497550159236940811224518511573123585158028405140019631732115319043419754211449401107813742574547336931110030136470681034372310471565202817478850878070110700742076056597562334501188417092636711991848851579099932976259767670282462057430848752757180861365529421763092884109669725980780171691690574066238597993326608349772637312292369321325112492929175861502718081145812085004116248488679250737713746937806079845218190670160285829969508909672167894940684113303584951092198681378735576258100637352339012335545744076593526706963427490854977413326129091191513113540357422422426850104642662159040574579114905293426969043179564706159130210447805256544444158443075556811252556383219839415564036922450714211560886037952143651292872972023991172827125651072786952987842584605306665041151014934484895393088572657427735450579751129646245377567170923217942887459556485221765853595254603420052912732644483345788153673675119412072548738940857434153569465664867895396294684342192161736007104896371938322387546868535429913501851753247071233600012711923415016472930071715111359388078177581648929846632629461317900671495073048165894528913640950251781977357708028876735252600399761039102256325699646405984833081226214765075649246415641086323998558913881167372458256007573451516871759323914414060949781207314843777491280912476952019777302047856294869962769019435786376205715645882733253126100503791476209153405745149364841032060414848884298939912420089624188120323683519741621510544237458904209938024897350328028615327503937739944611357751016842862790366594461315035591958932873053411227122818535450580577301880280013151171409351272839961637172064455078295141340293876840215538690083977487626821748036384908129353460669804096373463765494884088342280898436017515513913085322082425082271440743546182219523981599529252591777281153529628609047569767514414473594455496858210321175848173895629135216441464836320578048208990694575039455292390371460276741747724159398595577798854605325687053979059874292850074204548867758485416461069138018928855690198402861077515697133357067947955669137897185293428788125968956846436428124359312663422792728719949534045246850940658240653075642347295986686491582357801179038320543175815587025520110473463938459914245528011687138243127871831030838669527150395614154636466186849738368831095866625315338410169409948390788366851715097403121055120261076392768114585066800535221066837512678731313983061913402805996230888361999551051180234312525871287658719359601655783767097075698161260076501493044293067948940380342844448099986868666734300889853125231172885987960588197117749517533254741060091100960723319393190407666928163135237693127299911886132760078642834161219426246005099617557027690644784941252161205152059729301496311446004997612597869199052508972599958729900800314209226777505672692696866226410089672417463716379099691213369392033179640335421374834002593527263184928325578453314026325174434624431695108283594428596162730535252032855089673943511402044977398469704882823193038936545489207526284253733038063165935354893888999896521813727918546280896424489690786973736455442895646342954000608603936579588027649850154909423842181315561781506540240872515517586984033975309959576030491851587655917797047753711646298725673892798765509502980647915803049998811894522439675145981434681721591290150559071819121692029980364647632813477814396416343793763136807127527801075454343541567535457944363779374981962964596342970279048934830504915824353687613395215967307590791258321951887856019419322670046987900478106485595861437766366033607269863251890416999582158160637034714045298968973392557050946844205195872747742980821508166699522277819776546128973163035820070255459944305195574908416453808632899752336431597792368618285737872715746139111326932511672976930018934562061238377929812839997151703695216465659719881007193948234102565732643086873148327421315399254865239112730565179757847296066310988720482251435680293555979973057990815428209330377460491289484030856472411829075915810203336809247485669306142502884439420619338880683026029080817483262978640706078406780319898095126058100021855623263309248806075999466200024952273333553376255286076892571388936229838207457759339089561463886075962755330758301505501728980161890374935835165117340216321743810481769073156119900299387554135711808371519116442076543623096310197296847049565669846834766588199534321012651378567534471727790492662455334725305665752541030968879460196769172867975819577595152887393335301506825679192840355270682669829475679195198088768297793529555201366615680416127211818821930367713750437716133967131194895784981889543735394565383470106135916531574126126767951793700082586278862680174185489044877823486493236555598753370268025626346951777555813206081263015693130036876372283838335159051110603472792798776535250622476036642452560553782241487066026566236948722888080758408612195557579313428283169573733677164504759808486344522189697027422947251639732932025237633282255427285801409330684021527748449278134550267965126592699583326390287093401351750378236310382420675200927539074142946528553830640496691119878925496763926594772969139913755694617737360025888157751296926703590627478529609543480325057994427090630216504436263589030550799230114678518387173279474166309491767892170552725078881710889967378926427421062526913725809524380430237490639759152540800994735790785603104368802134085543141038388151394528330842427548967127741666745235913562885483487644439158080053455694579937183641508142530331006068566860518459807395666707633270576873938041691437659498230446078465831644626451417779624869754713075907459352267400028192290677465200201537782366978921578052022208169207612572469909075089046608014537039856514429627587868188907804913767773042350005640022630118766231055087733232122485767086205176871462022048271489026568306986617619169076089949598444049915393446746134968616730942784705387333595093818373990238774302360061952083395771026112316264527948887978937330253485689265660866807609376547448044824132844364551147517291177040804633875609395896442715058256927561556298533026375210670452948176758615957622745559211894819437283291787436950021472997173360998569280120358937860541827153800226886882242503179457158018121975607004134368009703974487218127030101415409950287621035527025492362227785000218889882252449918198735549453934962888675378429496365191388799868944166188605544431299584245325292833477916321945373062686423530089234568340719941659755392551792394754154592982202085437214665842762747771132810627801124081980227907495634989766473052396625066815919113706387884076313663137423784750280491409692954043624024409045307936738877430480050500174705391271770518444299107680978806144398543020326453231293190941991428413335723104405114221784670483398432275609241405602619582132755357428107853052649422827927076165285540862705745346579861122498652814478750340939528186872938117612066298057251128596563491760078298814767896498783707502696498846363969522060780001545600461372790700685658077932418940277293371611709552549671024904249663666031707338593930633097148700689715680747835298444543520212292795817043354174247999197284052783996627652324039747957306826767357026977456197451056000221774386656312075718878616549550219086584822855058737578841410762417258774106099818501795264106406341103696453562967252881592826267361566522398144634315508042019136139395312083996196271497494814752953933625202545349300979899893349300218540930576971870925884187963631290588363363168132442175069150151900314088913083344726119132467712938547315361998758210612616815564237245002843542009190217210949953863729251147734527128032965205032224184099030851297878003406978199111688558088753732076280884688079231250328088441168759722354992682773240219687316502388117724127570380871176964971397055758914904263418700549010861751113990048208357695905017795100353951309593745088993951225899349648593731065070481184217390345290368448264941845976657677858159339652360212482990262806083650625448172513491454721678704491550972636911840529367001392160197100964808836696121630195253975087183274455188306861407136749266793119152918203366842614052312222165545110945866133442281711647772884948780397315287028174359568274329625575334786399889786327588864174360622376325095619540993496773755238186514137311959244764639925348517046306561847809415941049324753036234559097274691533693543031591064867960784787572038763807335741947570428262028923112610221173964094262577764011758071252869021544817547089353122308210862619005711970323482378467982593027991042968007347814625760810656518107359215162875969064046142978578254402659305579407028398814142451125954387143664043651768728188978586587040950159129661660072258416815531223503512439188157370006055098380604037178020053441238611942264341921487139346777248199404089016827794136559925100242305858479254812704127070925784365444206467384833496234456796991325673928758393422444066720729987123931702751524639208816572649771762803392271346990142256169404505224041795103314472288139487932433008904636525795812360507490096516602916877926125383549233717893784678601479025791324513791258707146139220809512756629019542411136151857489850459820478465507694478598808355327398769580659739615929968443978439697291246830330007382742367198450219379910874708492583873440088049436122867574047731428420486285864683053258703884750913071859183109734264930740348646608965646044524332860503793241077651436060589713649795427373976074909945504137223043744789153834654850069867171176001415034751962240784319763890783445866258084864309176835005811687152240243503564104002522788476052912353100453421027138598793018142793065160469032389251653260442914890764103176273354079643496261595366419687481429790994220993850240541601814365099745993354371564798265101949496773358554845488920850343831799200429114369845529793448283342239362001527109597461472744780579290938578877036482488546865383550102097855124522379232955510506367928786097521452031331424318672930116127308806277265857769739910421675438446988438781697080310781308327321059817024434359044263102427194064023827740570362591792504356338415748477622626877324415151710701913446034616821678182948788688708318113769349929387291727260706721798742783961857847331636766582881984448437950731857772105502548044007549227368696106469265843374810185116722477024038933028611557174469332070584583552873369039009648842181993356184397929214882881307487990329364133741278223589877330252500762330068116963977631583626503989703770133015908074795637563611541881417899744247566627026439943254079882493306420142083667220797714025768158877787637893930014062371537749592961880950766957818018998610594876980044998433895426467556027798613305392876578804059049379940941059969031848397517160918704884209338036928708039047647522843962361495128877563009851288171015854981716714247384738180437559680844150869103896919487275138425358451777632401563515312953833880902069108665417143934844900327009231452223716979942326007159813467665373096505828409747823308179907872754451426026438102463315255906591015948891246935261921769331570789141064361953447292514091150214847298812904494800560071441809351357478763683662785378671399180915456779229607009678658080197810355030800046330011885524548451811689962955994113781722549626957119907744093944956443134145059715313457182373569433530737008728089906888235405807683444777071807292509641494028093599225534990418511800184717843529245259367698874641821336517652961551649871226018662215202984947684389957519067852623467284735246121969919086348455447808634465307794677316816155613498223147368502304958873118332516307307515214881934475085860601299829786546307972819368562670387815593584175041070553407338096305408665779045170292215579342799219704413263576617685914986705984108787194634248967042465403736009100006400472249039656977344830177207635819964772288173261481649058233819582273117763573793687001272325905913973361779318270907370906358133978003225338258455051816398382351012195175863964515621328767693735291705894101605107623978201192280517328598640630569505687493792619220897367003488800783626631556245342085561979131470661435564226272827356335741061390800584343801267717878219826747765298292459284188021438590744551949507508571385803046179267320085673562528624308421737684844921342947628493957000445031513370642624505841356897447496564243402303558192801360134934053981165573150224674578360678918729455635426881355880323789954072242535398639056596940199217075876941968936924628058902522491962204992127124147253864681398958435519019551173224773642666973437042393082051246346809193774939803767772957349611624500303366712749182507048706510418872867973517892041979478904532306754458556249483090736488789480982244514592610351853790819761792454377642061154177827607816060036839098331206052310945046414964215515655148967069316939589125353424472124649333809283344711921600185427101515025463104626264888629407396593884758830347582954226382012049231484578887869432529205658993277566142814341207697060126964510271719924604224473920050989751865270067184905760838410499609362912408854645198559526374778498586010078304188058420623586276816920997960244542509679627208387768325695060135382685669917057628827704735379443323998170042177545153559241881571879740120320277263911449241820379143112207919789227778234241477565665383492161077535633825367064969885977096144318535082516886920929579809140962343175434748445849783297731130512207016795763146481047437300804760949996297684201839103101488836556115305675763948543797221383474367538169878492957827669992866732818493547912379003384080495975078713391980042578801501274180162337119590909798613204885313304905798511429701408405010691258860402993882900211728361800352504396467340132569744005421060332235384735576194419358401594814710080023346153285729701295228479880723111713115794333966799268228670368300449289766852834941341320242281080286002151699737947507587004751286103311826591765550197458225522862088690760516677528583997359933750211093948812262706137893444443918084350849787656712682752546994741273689005249380155511872574736356048034711268545996045653128182855417360747222247932554984784265662353843331835855751894851397402328044937472377547321331182819758505638752179788898193502518359890317410943621706503472709505658554993948527865136762507518447575714252320752886557027501708977613866515503799116141163879241993547402599507131311248301445567439956933691775489767878867461922882437985679138618778215106805628434604690441002801196817424323153110855724552965769452366199713002103410889253900417636592798474932216925837517202996826165578112311685458778467349414947498907774382366504439463758896109293046239160993221670128414032107742810145358899692914192721378180019596882628536253667564604195503744675406001997923445248223331551346344152728895590894322753696381166883061358408490409466252018919588714730245599610545148638234335591406339297551841175638947856959095711936929903562763983221568226543607832164022385604488203819323352933901230216776193554198341974156571699648008957366879576334968372959065115982529591954109402608029608395542608936315052436660494946933258925524644273768586668043108939663484934147313902490937988829431649026807440223971268269760935656083428064081405712540630030989491954583686833744985410588854728712558526328110238632559866728606247983599154264097724018425455408825556017683440152797656548663670512507604592493909003595245648453694916624715237974072487713561084922305618595406249193455528673220398937563544692678059361027782503766466089073064451632021045669095961207856767971741936990120760957598287060466773530861043747190590082630710198580116941377601994039000649528880972945634001181352227637886301563681544978958226555101002165514029410043351081595033993224236425580006271912761085149344897073522395294157169868684295854017837354636049241298822263453514384231654070210699068435578810225820349448227004631840577840034197180741840499135213385872391335730263664866110746352731727247901838607003583114779411822908717016579058894062972775880958292291343343033040577721639949886494749184709691939949297992459027436729930185971582143129691429248038349435248039596552586236613280865644876728758110233232363822390406649076860118695495117377464384341893841913826964022939500356698783910225450675780815033837171037471106672483497466175269786593020731265863892796347750658746292118188865111328092338235267230720602746733132680893571387621928727237855806364725678181219420940372329054487168505218771026793457916929142907338900284632320534190839168646830999123332983967712668495324791773413954985113316675365848463249377570204357752944165849743645887863254215486328780327192984289261178848406932735550610738724392964036066416221969583668069242417351087753296823494419875453636800125353901064646046564168807058617003044387085626103367988056463748988355546859255080870442281694954307685268537884207625849106563880959239267898194453352732873353908956919838677487494046361576916116348445718453964611618329994932322896061299840205579743237022162962812281322027047859975262698422088607794583425941366745234483717050154548302507307876839937820713204243689898581232485495810462329957433049955794596540796035745864931711340005376389058625024597845584675651508935124400305362108554870532948550694095666369610577151675413654717544884566319092522726080149877091747885556185372367180495799066478920694486295515691859666197692973008136508462517209389014000776999694284350741864091946367328767825027843099387974321919954698312447992208570356211714897734321245102464705585498553241910715026852954155253688559796781262136884434754591427999226517458286508981027789979233318366343879418853132576302203562344016066785953620109739373215512807803670488987258198384845900421676658361115736275041300470103634523098541027551198021804416162833306500732001092618186933404540130983522512602944631998997233156531752972074899446664318877334562964393737362420754554625827700041887640582557375495441551518230854042342951112378960655182330908170290643930111303909321026695163386077328292978439765473412690903191048141610194450888595217592109363206298333567871251827532809643677658262259152171580299343792371860622563259450840988314968191311112414649262097958774485582270913010761234472437236459464809065495205858927570091490599529090854784544765164657328350319812707834551523566177360516653656792216438437536209709242247505444993710157515231537221433510960354968016674696502449585019630978764722615140151701874514122845782617327841691579243293451874706212478288678434023286374546501840562506884211949063007727716148868911649976305613429657653296739647902279540348303246463061470633786877797813558284099114780111267686982288197335274481892729873853929006627995943414156927079914549683913274530565626378400096741416572414634418245918511190156718802506645356644247942767874925530752029527878910899069621636741969613707988402423400777968396489341087241683680056485948943347217862831303163166158365769737495671716151104054108393079394990001886980443670513735117047637462122276088091309662201432026801556334977037730829473010187478867710148224146273435838083229490637021568733850054474552729422100887058198154362834631091887360406794261081880173549668350171949796196213745597630066643765999289333286106992191998303945494530539727236711509011818710215608150849931375631916896795106542083244597719221502443995546722180875638729501662169429460814533250193758062232521084007919819907748855675968614851666131694774336474061148281458320338489928326970667853463208443585343169387874416134853074487510177332021625896576625050781349087186661100362594047360567653823009919031293774930379641088258870331860021622203611827374117978079278832175472015763036567553644034040598787801519113529266153704912762181023577587966333651573974106665184537722179755401577121991296132527928760469172136584332060657439055964001781173630747287770791572672452474510720913386078767559236021271026956637089257993341565274740854442125493989149963628099366537843180555547275154380395597131069152348050571803018436869852178750387990641455684429929600643592930102589857408336438039290912550380244316642838057085775938410002633685095982403235289841565928301255092073599567030018415139999346021622325559341481714731896865647941398887658023566377042592281917204693352573847486199174359946304422400720191081481086681427343890818917289410431646714484969472300715749444952355334999512107623921614214880291729668860724297972550329270135944012631647347586013447069430606682622376962947316150063179829223385199489392683089509015579049594651537220643329837774301523787047016566605550921037678103822758881212267298980171706568999884802442391418997915194367577705088726493823002475985785347426434488309474038252719481785704925441116243071914782940759436118505531807551683098461830190565928230954628557760847242845865401291240825032185000342344093437480542990466636119782091712488276400988269299616108033576950810542453832281305782245772644562300370131247051888688389145171726341244744060061437096308254291340870418419069141759131113554422366894314110496238561717930042502770472386899624431514951879980931927609736520575404593166604733905191263127600883241402899963677689775073602347089253467166601323182186715383617426240960943272799948620468432203050227328141335300617552832401232733509860400097095970493735256815018404119845668840434000191654243312471591928290196270789688896085120451691700255135931565875120235463193190779690169591180476698426471130876453383479667398473222249360417272474786556550238662647364423056087463969495582110581587453147110578583989729264084233478936812566035971842041672854202543653611944022098937978310665086460161374139103826439353795623247039154691025737669057435998699895223046816995600845252781292347607052103175397328065296329640872789178513241101317951511402388063635366984365007586780784364574926498318097577893142324333904534281941120639949402007219087876079719487086936874366947381024407215352919262034196015823614414032999363195675359501916442964180422179130106480831941519106186755387137983523417291424445619988833530873905412727896339429965031678621761497832754113203817379837093856597379330714316434824516388122951189200718497865141609857705784576938232477560135353012633447007928292673358461315387649425558025384948972771252998231353385518263614310786178968264242524877876145864802655196230315511493608329366709515932893985398018698813911328384444557738482999011412387407980042690033893533761539983600123162117660795208010079027175024958833692277120210952821406141640109524698691204247597571428074701162784918301983387527986697979432353651338308351157299421210797601974732954503678462021964519186776187672888247673092327620498227529126413236661657986995362448190141184610802767110695006766852191795931801919999728146993968173245714236364554312421831116525724082891080282290244870125903793094043555317869719278488496482447142436343654672229877500834670518800122759043004673172723047670144315497217316582149225416081956307367476509946675261654277164169198873770446787514316849384947538396399261160643812361760863940504384287253437094478148695323012858027383018788388359875537329329705584651542445421477442995256641828232329650964688480438473876370330557752000343690809746424039400651880954947019794805704071651302371328158931842202928997342755952338444293336631552201237969416169651022162871439420176075188959638514156733576778688394978780172471745698747130944465543937249295160600776204017426204461771125754285394809057672607982559744932931707676267808004897369585033574177045902870306398384902274805212524150625721134822547337253140379279516416586294455657342661906337697297378859034208511218579372702146646470158295017365899796177340322842010832417056934332501029847999832662643584001269842009551185667818424717102220527638568153395504622141975686507305638306988013090610179873641375984975637609017363185448251782621531721973996047350647922928633705403226990999099743329441580938358837606760296663275000259019765380159503715858923882652225404820058635833660417146102353906957368912982353499809264243210453588702171936101685887313627530060241540449244749804320838711899022172669059587476593633208780914280291685505228448711216494919502875916166676636806407344912753563194375458749822550480474693069642689157381742194416636537192669866829629591903669747807295747470699957473159269170485684415190700583723455621624655191864812406801687839995205189179817990679143872434855576586598755213404843561807294772581699100218941205606679389996917474994353954479347388512660654276249380063521842956563174963753450545722813722976450867396617246532470558624065175671580929634030611070766976720890867791139657151940324757600469146327300366876184014007034257320095466434203879637231765603001873522265973993068715695874895265921735575647470370306623506769267487861927055099455190462830754269068257058753656864414784159088296815468822060849447095274183146112786901504342544882653579879574178624322270048904486104385780105258951390622401471130354916958269637670815954375684731255072755667054144903927630458750012557729264330631130796269948271197988342640644301904578205522303956978600883592613364286817619182408950142312006232394633730790383967050586711976529594332381495552418490773044547331707109953274638529581266800217609121491113505732104048028352040120912082746905279872091939890573808982434823551789346699576248177313596422615648072239370329328081766734246480207222627332779677338171629444383911252900905169349819405441541637005096693604225714900856332409441423995763545571460633478270473055438267799532192292327679985054975885719685266597845461128875994050419341609977864165688524940713068789347344313538417804144409893805067111236363964337929788732102135013964110386168503677891667516461707322561736614812181006151938470422607991773471166888682157942886224987790523064122475401295516164826794856322253863879689121924733024151644310533897347275651247055326248603014235358976352687888559430348223731560085339979034145287702396235447576891359084421223986928779437488832257830220597313386268695975270824063276471766231449402898941730884299053342751659955209264901394596454755682160585183732956542377571291662982283876126423367655180242943569711514737604688424581906670119827102764158458604645143536246876842463157053013393571650652577228614973173143036035127104759864225322113956868999125466949416618195294882775749346357654781642386662777143458776272871093689267742445340691262818702796729851072987571873283340004915227406126136195683556665549844620824769362055942993592515470201955670623132900562367833011410452436480638689454296683201138630211965775052987421225861589705819880698842231585294710591840273482875479523213668919278242544712053872428559852721056505400118644942137260382150128134155644486833685751408676760398731879388031070490662062038116593886155015067110338382217626446548715774641904595517631079254435930523772567939841522942711279958851017241920744766669595535373183841334858869709958843387317283004012973904998796459351782058825230715560616635513280646879725058645399805523183009152972203870209091356978737757406784129254719638303087401614518406045403772451484528664940225339955624083550707378432487127343446443944986574273582296851664951828183573697820976914148851556234875682893917689471118948351845884046091855873355966233782446219349529753771507113910817785526164408758741642682482346989700931475215035503206304213809494390456926670718733681427152492697469561497710018694126530772389199538022047818437326531842335127865560377559465340534909739794240273178825749616439931195629795730074715490619263467092303119819295635842362229644904350585028452329771859364473074647968859194847842592647075404131377139003825048131229515704143023060507234888562357068879772484397912426970617830849506657536938546493308148006081946007526339596827395238969123816772855434009697565286961804869616425414168917921765666219814381787755771407891474263600692934741513707045312683021792332906990430583000187572334815436653783435541995249753667385762440746371960363505811561641507861478962016221650467638636393156352580732431488590813881138851034496830787527397612167434870074028782597359763206135114866302500350173306933786541088063657755334706145793385140493976417762060593924964842010643819255859571057079382940336490881575122773113552641563151348955581440095444400062647375752377792028559301265479320298711350298458149095148323060579691157508895777568049017283889517161743196123226572940206013455175280746654689691616242320054187539830353361716217531510235765576502622109596642443221767547424979297650458954385638007743256084048817697734900831621577891736063915506189450081502773149344550403256538136987472984059773669749766705291182450208319732155579231064169215241216728706127710112696817411066715073891793039814006792218805242112693514537542630196709164831648233555648531696393821069713666286075889222510604919467082650433874619692424341357874373380480819832107688024119944872170621315856235014458780164523010148205598696706574825061337415192242768796636043520117646051583757132787269043637383530872601701151438942081761197514030084393447727402076119098389156442456429143093327883071634061472228371386716573066643071288021319507800520911531269965418993414937626046277784211658935102447788995076009658642988418707810984059734110270297505031313340386669812906635257837866058542823861779430193404408256771244594887410008568850416529352082984469893028927303038753541545014043686672759158848455983451666615506874888680759841422624221789052533002559801644325796900171832367754615586736159194434806848608882034088177989396930482717804661488447402766089147762992543766833184041278259058797445716287313102118447243577677647785301041746497912342460438583790757051698581423034005654742949630903214314870705976375809316908832330634379997217038990702880657436967346180757354991597866652225416750359808773445358661001629939995234084317257789643852026603685091112215001666054322539550091771442184963454659237574642004399549226433346654694049989796801868438518883923008981461027543842438521093565723735087684124385568412459868318636531093896531661590960126890606279095718681623957343212854204121763454753866293559378908298472687510426897014299934077697067281347401204756002470928043747551033241124689769024074893110279592160151123355885788293571761484188453205800850216378539714017950152965313725660069599291241103856519954670081746506565671781582089589665561294563423387066374666327261071648143006284270577439690531709823343648804617345725539663102616158948567304319799682920049706597684294814872706849283195572215019076576992499691948032902171830353717733072195058912036712532245412060328679927107035379863510561013068312719532214131916166361634892998006694349405821050147807853392300461546985321175234302237652174975040305556999738199107376618244199198727539732956316452191698288460819251196775810042830987010341229908768105513763455250699886372969384382213051156484447096141063568398274904250229548143426203771780807498865995453438908472475250868669786174793566665224930002313860360786062516487322060774670988360849872210311213804557416740401709659679712163523187383790370123134529001161264730053772631739480718590572025222148067832295367789353463289410277158432754368406490278402373752196892157348357984930678647458005232076417119987512401350805612776975510497055093173586258868754592834223300331997596849504821617422976859635341437857609462638991299174327728661869462806754373008863592933233125459040257908253792264591732410810972447223104241398372189851363900813659595446352716706645088599479270750810686374115649026482811691231107458541400828368425363533511763417470460224307363526562803036436532909282064307413024803218313396068217736704468464095152973425178323186961853735466745031520616303771551362795186711734428299528084165396034389822802170527881519614400318131776823248880618720068957570233106550477751765105918945228828116036659399745381876835008077645856206292191988833479916256190001782422573400158186623392808783219979980646446443020981067604695735384328603640905750266397034745898950778706436080956345033659813810718299542355962004885917537981662226998977737479023361630511604971302869331768733464656407756956973830347091518343587991498822291695598034646740872895980540855619373460078239037603498179173246682971189604658847196377181245315592064566230217204477751160807940618053918589198674602757753541263849331313592358170733169620515075894077455923412630213454275756836015659685684795775876286246422872319984431317436182473693227769689055942475056114013471459316393460612815820021690975418905908749888158797504854181882339463294309129363916856157028794683621187634949446757728830079951411439927834564942086427056072172449437195357972075224137621470452291125017429500579368358848272375884386794642426970081784712426920407009298712024958543162344328443001629268125579467024637565382520704435627587560576624259767181197828150681793275938472298077459752066717640510505943641511140798438670592389483367516903345450536430369255297807227727786176414634114677592349218729628767613873213939010443181026455505311660684739443768325698445835697179609483029004159639932154416435273692258226728960986124840846020060733829626096414441650965340437299088339552824419306992649824973432370397314695003188006936815128444300134020708573966751624264021146029335015930432063631588048114295806808120535869888324496781836873347086614263840335326084383664904606881357923599243831923961766967654051897437471392570756426899632811016650706120663602228441522955712417029518339812242111845262369485322727656077304145327161690087094898824175900331165308126470149783944372641785822973304125691395736915072694031113732718065096594119741016885835847290661680702665887732639542564015603981610835989545790057255955442482702446962202519733982282537503095101138729982385262189963031009498778601018735546445252308419023037745900073111131534048821700434664175157828869320983013321053298497643879608136299794165949878220110048658170999884097290114231380362845851979694599244673270771456515796656614364950092379341387157682880437914336274196210785585710178933949736466711727940244958945394807122362895856504882230544221807736974323886619759159541448081515308716142199161372646000503191364917422756939881004488635320151012093446499249551927719865824595698528202091830499225694706653805771144505520768239991290868182970921876098671034869896831476116800588117045226013743528013050036602841347263690020534698691367270536589448706229295964748352334031623920663099735089241965120342355749866806170772794071754573414444631959496253316082005108910587107714588347762829829508451801026290031374409403481136157729656343433973550834113881944545235480288543502327368305450238356347902461964879760072701156627792299037473895060185103958173992783663736386007474496914765385872699302507467898285433302300349902186399005740725749128585722182121688838382887146213606682613854374387807579473153861921646917626215435617638398694165357914040389194343226272473362442505764150798468905943987564363131721154646362905899373975120244556090084820078939867716896766430391289938197869035235571722399008144052251714917547542690694325152247956038270301199999050608652228918154122850708428560802938125388522750564066769443057561017374724591507609712115972406241769018734685035756771258808093695400053084504569821863951907937790870654942459206404925646438033325088882210488854545156231245509076411819447661019671807700746232732002092063728480749156020811274240871477051271144974342686197069962202998909997402810872143346979198169863095117275673403361671153034826462281320649450852929517227154891009564099795132195559536819625754435203645110601115733342737470736220974481790067210039389207452265769252506806745794625143278715497340752626108323401363035125882925436762762988317351646414979662631910376769739543081702692380583169392123455990039114594198179372089805240347047529922531143935672559516425167312219577743245959280444841128100010634933586518824759336592908441700347148562721003800791152742815568146388042241250042593737644638791153679170130793118295003828709836066091326857317550522511251316961094581024720012030190796432591401287899975155670770401156731961948727421551640066200695328994796300130105055711457804338943001855082634919899766313435441976797427008854472181343640710195955884167979564943923182061719555118061506441586172935392315963449893633235965750516382698482407056716777242793862080122593234507329284036288336076787888224627428401120693516028423132802759267642934622995123069271442741791558819136392552283840519668819478658776912539018288843200986653699019125502379812232248119530010919319848054525955757727064350456026792582714657992697977802153091715710470616111780305777678891925090676087532093213584769976658329592088932862253878822766569854302704027252788408117245918608938465075207278466435606151776678730259449634131912249945637902191939393714683850644618922397772613807690938340506672842085087519582270338477852468362422991087063784401479078315904786820108348494223212585662773125550055719561329564174466884188242663190764167920083834697616325763342715474879942346984502152623163025400193004762663355813064101764350490962422995865275680732102494075361752969592160871701786688758266418179848617412543349517941078610549251239794496800988676835769165750701887634679112708483161918352106730873218937931446518559341708417777253718966676620616339527564834921923353026629330215182129283759486442018004962480387625210330551993217444612412769803198459795190173331103620569679464303191782427949583596136459770045786415411852611116617207314484991990505434344715030116684650251174020913322323063594298459339304682221771422634640421931848725964186696548553991216392210172100405159790712832667923774433843445157115410262181650110445803260303275133046261053155501426244668943406848469667675593193653513683634013433238257028641444822747529754449068522087188361434208051696689423760187845810592257124734648159813264862557463100152794362555202498195771164508272043609896965947572040601519372039044865635832765983788978157485361113835458194799191333233939399211941987546105953209479780205144147483899695922446706687118998827006409424199934717610326813040648551549920906648597750536106505819960555584620304955377545028445308520797593778736088379534381624121408047905829497396080495845219326879129734484445856208198976270198377347449242012883206338987472818812755838541794050846634577001456600583607516105137281919122597852540833809637333742223579206859110536875122256060259732270611406636558742758306721964711057802556385762726572057571542718246638603089368090564761293160312090357006928837465944821549790736321845845892549003928472649235005518463510542590905417562818877117688287637012942367254180661268114140682389100211396627521839198582527225206034362432528023446332730502955490331179826666033429918300327568470507157187930254146805954173895709744827450674992727610797759741761486397154640075278035037223095274134232974891525071259470249421836744275744995317274207118989829887053072111911722408394780647045612099578308846091275249687581536671551939426771339502492638232630858264517853117124412843239224672655791428209602004149520420008368593180740497374120348899163432145694396821335403396286427569663656448947671860112623892281518718886864064891759654422610304179452551255807839927863718762125835616560513037800152308968224899816295866741440806346577867959690936369062088502492051582048754041642353832907155741615909805678865385770615037915329483550950347892081239785777166172970308613877756122354943166186884900387664899225528747432058448278401867623275795305054295272275611078423686272178213988391023582671956480604653315249941120131407308936644970785455670277981488314516306052710940629378587250533332466859212406530897132250810827239172152038911568230895432509816136069735882539615568123924783239364848095663470453823529286451071857790311273050583366261805180272119825755957571215514638215165868661752077763409774476483531798312404991543563394612974148044980347415492811422627855096503733363264686283819391643948504991493919254537098963992047078264894574679462147036139819487964944217430495732132056394227742815184906097506595930732338679291062929564603728787131596399295849297512189286144260381292801056149925081199187921565193937799057360183730511574167049354948296686539019226201722033499003383675082147796009722133852561468165609332743865228528832456745754451977599788530438868387327137433946644677065452799494293671473214651555997115004300541070814895028390484259710148661247337046521222061564969717106918429378126393222261836728621780380931295731181972698120691180897365120946865729212131190550497013438773275618787497065919728022284673299715031604820226213880034591365811110161333410709012783652240633545473735830584931884731261508116380183793505209729437867941122225137104352465913486420057936763304109447694539979398147194391483103217868107886310493852751786495329156930648915737967321219982063597043503972547546100469650521563066663644170896475050748187828834136172345993734261142311690584981968386625514343132162335662685199155538379516844002143755049899556910322654510549122717986464244826752199447886355866243059307199531594493024862701904918038987237139167508787468713726763107875918688634912415788899531556052300583539508974607643838567200931977513948560956943055976394532785801098878713578328707715253268386728779334883486770139525623034824664030669979615531507880266331850197492123886639066069999805419470612035285872111912158896309097465537386549772649215063794543288059815513650899806589277241156831779638257660733396081961963783519193053984739969960780771210331126900904242457687102332230673061506140901939068633622700872536184636395159907597520446337568141383725473118687217681623775133784557523585374115824786253733084262344678283403661018310214841872729224141867157182647984845791109286841885009912506957250781841994032236987927365973561172950295871352328730512532765560046875407629618775860611183876992839608504314900778186915102655478750038928842116683257221746124840238644976551948417325796211893979580882891481146031182144891554591012234116567175840672859964447212689544890957271942049373518088268417897232116705387968623636344747438009534837669291820665128969684616275544664848349942062339213851764881086380070305476075545355385765184501340327720010611701392937335890654751252551918147885238270596786614833477803797060548259746942458859955795358517234696954299738090768680321362952170362233528132245993574673744512585520394253975247912794041524404489734383735696861679861564506056426043617011661209113114671906887646983373725533251480656483875206954817969399583345831406924411089189899511786792908161156828965871984646962679172878974576663468967931250055123081102631875255804857632885502154477664893511565445436036073049373113803425427559718884261263342825304899461187694757737484579137833936759494713434112932133644070294778683139886627930122494820943827903120883965252674600100089036585429646487495232133425946344671688143404862408892140663494570065917242393189044555827587505026390479826452080224814682169313223565571603710120809703265184913823610248190495011435336754684851820293759490212310236649064591549073126163530452679340746519345742166021963332304342555005710967589906964878350591529102500057798760469670228300637464883975295452887703210263830568235588315685212583668516794167622717250461832290436480486275011422648792429201990081304398965037479207167942600597190299994805938126590278759511193667253980128862379415581973647627098762525320646221103144220230211915350629223979117273861999029955997531557530325523885075108275118552098904848323374359043449950140464271982033511195766655633707930594866821386816068421993028271811030042123877690757209121388136192722854257978969150693451756836651955972370912923937947506333248407256553781173205221608228766815135396163083619139267698356550464398939173245733934236407461696031937776291980497783189466158420398531557046345266639430536166026008786898585588951832305221782367271522014673326800908226560483744369207065274039073654100342413382430872608325436657392419071884099434767967114573223530993678920322720137645119768572945835942385436502693192946730702555434301721386725086072862743118736116145938832361213145179694213399162372156877251281135947290017955303128145865628870134048096500163229009163858323285526779817100436874086894585417830198779049392863825253796086970159821323283259543998958852648148128190519808608856564789850123474220660069522823011976075377243540960154738747061431497879178002636900392867378083490810998035729204720727671573076134351686899277867058348296045044236161399412481455260836223240514222163929950002764318071149170624273764517652329445582838878110889405840405574607517979332990422052632606952869675492367210825563310952236709686057730512403624934690835029353509789828878375747368598835920850036224542147931883581601317552771940712152026875467975527939858155933908907620979623499513555815863796884497790372032383753197843903291218800152166841239770396385833881672835154355372378921519115498995743049957377216659672426110139965722002993345234784733171992874697595652801332515021364119932201827619504355577826197334712167667449656126108990877211545413452648729071873978412525097017552836678708907746164082712485445562693813850590310210319590969023700737452117970397304264736183327488000328243080836696726460655673183690476893474968963362511812903934728506625201630367003773502289085056508342265936648270122366864535463806049680788997321112059176585150157838905147291680897895416044236098332006334803149045557403302154111686733845976751605757871209922314031445450870008777268110297196572360509793984514204785772138954712040018910426948096674224228684663443856793043241890754087887415076365810163164059227778945198442523491188912809427259366309277186377944637864514692961416122560093185761230231323662341106137454647593591845300141871882942345736001675148824841270323103783220026557207540510681130365427870385490098608283036327440726096952793853391911836090401939327119312144562501531704104765777026978483418257395664264162057110246903107478739843472290615449902442438116948514328448389108361540304645981594992701539493841839385125595049984226010830623921326124897311221017564857101974450686212387598017927425875827399184124635973699510810126889602991726222988987849053638469255858804428769120424720802706419583419925970466129813345178266942949788962089520671339914826918385536053279126932802698823770160416292444664337849511148244182674339242248351633170624652261199712237226366318954129251662570909964187120569168294446884020258285915071606906665933661838120336493603221397931945952528391327735461526820730565726797982187551591509399871410036540839138858009498953478895542229444266251675611435101137791791862858041656127507427743048432351291624810774407158589989225768587557540709952078154626391595627427057809375719662537413844986588630524298876088406881802122479157607316241062020360899220041469852371636677442795939770874334443755380271735842487523026371849254556516123417613796598271401059528549033337148513607816203144979780791759645691815984675260351793551168779388126505502171211571354423090611538111394336592984167689286984102540890574128789390894725803416127762363450025125231274349691365199649620174726603666245785322522471112672671186145801692172983002537502898983250317958324459112499170249910789641306450306696876402883702014708990611271321739324709860192791844537429072554420449674024490826643368355003545161296604131263424610143408596043085864836542200915738253703625065574793995771537011974803438010867182069166627582999943993192943967515457523841847104952719794711129240118828689822803634985391406030927719352390759776790588720713632376428138508773800168104373849622712601409311755319021016047707355002745143607500878312578142045564306525223835221495477909240911323118012999591164576572558157388137836111506032022639955714325939720386969095592953625353873863923270029681228841710610204413065179210785686232885786842556334207871580872400988279424988611494041034999879214016710522428889368228400866998393880974539819352472161123005859467259644328859410918893267661437895605079834006055700878631872006264270252516877423817858348023912166399048675303753853818531514353023158732186734215019726953049063547233704132621476833939938182303957186303534947032880371405027424805607748527297292095836598227082005444068069973512939008309882291675067259443614727998292602179560816142223494730850925805180180503309764581389765387057763875987589305767126836535753820050670003902860424649448195324790329341098332417841382434995031441652646117221244631882910953918414102366025891500961239077354259281789918117828567047431362654219502895652644170992099285833859971296739950789903051671609622280588926112771637687475532646092132166783326155716450915918524267003602327991393938720746263811376190188655108386541584893915733644834521561864572938861684355793202145516781474114581273972241560746398326587515820385376317391144012043171194366692102093090052387845534334260270584530567162419267108711743654761775174472241528011822428916107078794871653186940953591882180662501740444459738103684984943388173134183447471958442432933258795973947202562802755119296678111268525998522088712894685754513604455520839746402917220972967257441620119115776194650956202338890838434340618802318362920996734102707781818491957280359644481819575356845821942912805871938361380987481899176199700770579921730049603428568705818420613422811936195306197626130261850935541393348982705094110742906124536545119414611595784604939000982703307075292541565235420351981785730334020042324347364699720489549943475970905042241909061974866735678331168012034596205781539541020110592622439388986952386254382091819729145902885311890581091468644385310045427922733383847247133033830663133284863591870879310239269305988196749042486482134076649997906415156334056618547610843760674383625874403428560483278163152318160776324745477732595327688299508357677064668181186017217524012871518887480433080560380259480276765725133094528573828601233779096926598836816514160200849813711605726895021934236018903966650210085684186323313128821182853907326369757316070693129166176813514338292340607865131145170055844558079701892292499232388857121847204561912704570628704233300749924592894830441459516602054412205415202770419500364863378026587743040699798944466004937508873043993961587549637702202907694817734454689805878021698778879461095745336313079613856067800622514225331732968082230082454341980398478257819084783869011756458681701517572975669869980037367502500771833426252815329333353595488214616971031193203819663797843740676841936196183835617637010089729939281777667534421925019972057405046489406788029802943007423271759145679671594544219010948168443498000550740488553094897697199842709700385857877908205518995876254791791209503883397285674182592141639514675634038850937626961576435065165601013654889768310780919279026589333773409553615609872775862819337726395724097894820921890219533381727254472797354215670347352319902966288707115688504098656115873593666223327953701225180875039937997579032881348622951228466738838479254289256966748504652375743169460864331657842464054698334329424812404445477234180118799515665045743133342517573649284313398290198881602014164720870955104140466387021956369950012040300936297897166086520615701480622674130930852488924569591428859800767532459270518207997267595686866973623657547818183917439551417500156410490508710183687931493273744088024084016488093881863422681942779703748202531665199250498478270188974920565546120778940760037412631077381692827168147686443096047906143495990543614956379014704662771377504322424282549860948351277266679400149810507175004938693752238004465063930603217500817681704041281399593919311132501663948125741501836078677146982139683150074314498539570507185080169184244065559201364443253308602306585122088087640958751255092232250667000309040533742240743793584120813498589899755095701475246650748161924173158245503608222463427053469845332224288787222960079136536922115038964952564124897412638842199915457031803751366228400101025823849168974627651739948074442577290893428293218837988608739396945894257832269266395751741583782272161146753882006507393472347638456344542582593379381930499780821901725956294567872869465033621511973352917224143867887938811147904567455162124888460711861612631124948059941456422278761876459522281361160974531016021657215475660882317799790144320502347307174448525685998870301319716361565657822589583496853208102893970384985534186896895407589629425560833643660815907754561158700537228525869785530978345080087590959824275054952274527412962804282432153918135930368833708713477538719010039958520271160810766385788697945785535892149961290965564912592663977820447331315919231833006847744634085216168338094320195978415272130601973510611546666947124861430904945624744626397609871097901421498564420273380695605736780344420230057586809013088130030146449596958593634986616786317187734703371006894784102875067304989333471309512961282323280277747397261043445659240208632752773840024352544898435052105692496167384639750560830622972242942866152098626334562542865076043462308505680207457777255727366250939623715120232519304152970029007332211751803838282887524986653260903215464630889748983189119301661072493446621191817436502872916032660283236017692104588023954340394126737381160610208586212475926949950559695949717354558925839428483558003977249028289624202440096318939117131141694638456266374200568905226371669609721371860660173208811761104170711357439143847750786818950308356210869882287318518563560613950959255401127495983245860462014943799487247841937461644842904367815848962712168347567210609348872592445622306549010237408171022358864963055758013555745310538289456340509504854302881389871213945227642719915267782791541351087929577107374273867838008008312819186317027917859248980737369052370823414319119960595126488934566470875215737947008422617907344841192130865613144491425288887676482074402716020260952400722024416860234839180534335544820345900061395827412305921812185567212885663440749656762783193660036965068625919900067894120243265607335321815207092463892458457725635908586647450747285451300507275956613709348545157940135635664806444755277512413026997520784121532901469342121802941370594271423834978695978542395411040069986979753254647483125017767116985753485610191903681811465206379323285680874970173660736991473593274091229589930284789994862019671880077628337132454302378700794275985118543685666096563907642223046279821472869594689915386447777054315815907778476986656093139032135111805686431813628415241620326043998592305729267224718225758574521395015519787274466160881311353072509736892250585369113430374194979756731642580839712556641082542289934801527173120902809172082658066905234640482654092001112599785212452693277418688086881145201113747165962173743444399145558584155544798362054138796780397878287079230616429030458999371935696199602678103556460775805181867237919900924950839140527411185966305108631225406566319272955184043596744279966551493044550634596200893879618120927263960305259943411748593379280414367537152269396836462771479618856471744321627074595806806854878050871684532517420591662290628616076494162759500331521666863588051009433839066489220161208394024664944377221650531508230204973215657095288658995728841828504157050889643792718249307145353174871725537252716013222448325426386569361773536005110752040412745226889342397504475302327236775222341204362890893970702585384484716999789255113644871801430349641520854186264040037629175367273531047127284751836745373644119408469720580507920609207809253491895270543613402713267995939385324927886278652403223932978451675234624998804948649776027554557652010999305764930504077982738572957081609836690036701864239392075792146239691026175979075244788154890584787462916799615128497325154342638906340228702874491340786707312762935994951857020523609923577471435028616436405382509969790655628284420145519216933487402276339639935470166074940366918195752218506465878758398149313299882473555104362274382079908302402064585762690855675141154307054587542609572301356129923289580190208666262578233913111823503782299765301721992835070009395619268903942522970420419367914753503265001852249327428353744115346411546213929670781148381533071013722012400873534951204737858190075836663397221860833117193737449729769846028122492092024134342536136666969775387513290870433789893722496287719215508187614656056889112207653740285406177955399180601267732098195904430624805231147956603659197371719505942705748065306796720808421815393306536182463249166272951023136352621396581067209149994210442742594054270330880434765511625293165505099806495386242833783371604691717259732891093486477402439025377637177822690947747468139272443027712017063692013748116030581468780951886339806387309580452576678247608997319063539063237971588691738920961924774120433429459100916849508907306321609389573093514015442647970224998739924039715676403081512796269025590614795267313988780332469339125879479092182172658141711038460468877576393816322128934432436075894421002079752884896902060070575054881371623254177745718058791473516639602646409214899396213502196620021618101262481588040009792684003536885669253881491230011873029818151087116886251031536256806918668019409760600721918982726112939155032083353987104199040802776778046104391148276706566531152596257646761217483648755380744777756603481406066808153443037905596495530123518785316808398205155233602567563416017755326290030546295664970917037634571011247657622969262479138736901753528239432560691886027041958768832724574523349557344236909998083411271717408184153839763130321714184351115601001954490822092565647578558370764873786125062189283409401375285253790055252606730452308778489017600412941617961476331185000289978697368552895995495064738806435302706883794700508887160754771980056465337389458911859343739455181293471706134490962374189122568062230550679525276732473065855769309181444963542335820913451669720403321462593404582063974249833562768168673686947962201556843684511712263768613255380693491069530904196857311185451659091942961826889755902607373600776426136318000615324556195104838154421332425357174844868326442646425978758585026281007559546287992585187314451996965686969074751737228728474467785339205822437636091093836651159382377282288097548972036441394889318341351260989305923581365826887620388348292552081162421794325076267916000960914532219464196990559480875281366253920442637558134001849135731144680938611623607245417092504254078059538237841329690154673612701236357007226193750166700465469900174810292571949336743617268721235726024065354048028941994939665173706461297525782532650267688143290432124961717785341496514314781802782655991153808623710553006442336159414313850847531626057707512066553072056021238687824025701325745571259948851918428586974850282610168119795293317912896029953741168558381142643695113818921218742536403338321895168966039514491090858212536046728640468073924232744575299602408315747649135300446505743922958546740064916528404056028941146294203013030964033027017887894968612090853060687504961886054434244212221324556936056408174578957542338495304708149931328113251437918281834652601344883387805760750873418939743544203197156530691513455306984287162223378258399783836963727513638891418535634748306663844040234807179416874172866849421050123843815995326024288589177115598698420829162493822601181306615534492211021100802765264135021016321838697690639480590285164640682826676726130531982114078173794229733701087585802786868514213070574099007346433130360120781832244196688950823257428935316260234496449849892930084809912631805494648687603691977071627901130192999278572996683830732655422860255291141943718417820453100874577436827101994105482049351377449167380607258813548264199795864439940447107871499898534189048485769947328381142533504730496936583047735637137056800836686582955702139170007492139704517740026137317437051791422472464658931499788166445381109811623224328261371710599082397522343277691199888712638809619240785366759964891304670868534155608799894047367589120046537745378068616268814895067050389460188458714192349823556881337188320021246373965719735850334017420129035202906695202983592802397828894119408373893710984655697402038239425823978009360018226966579421169067978887730492745433667025813746416506274947777747991078897669557846116455623318969918803774539035360949674404996957443445772058290352761635310606824689495792996696844481151011976163574184684628222884230427104356947068338777181638163667699174534276965802691310433471918963008941402770927659545479500336540238493605864490562280851397086466222336357853757309750684918124006968738651536334005224505618416760360854649563069017145946418871252663988335866196960801776925823616179390695205768158807902462418817821701556674471446838293884035251935950123922820259189153916250939892963826841922016876461527134263276745946892120658537285934108067728137353261427649792415165343504963626211176200365755069985280045227092090996699313843548758899106822813697250796897567948584438121908212440886059484202060688379527040713270600412279888862732942296069049456345730628800246257344930353140238009257365818863060836889625811596585975564384972994161810607356450897674426864716978612116715382959318232000824331070245338396236354811731442460871673785318419613405150772238194148539448522151346829496622032459112759181769196563702596784256078143082952539787044382557976046211001481964927686836677554490566413796914343712678830546878176210748498064408124071010205596067073582398888753416681171066694011805598756681065871757526444903778126575058352680070359367087600686965836210723027205114418282734951412310434577488200404340937173356477666126034033421929610481950406363420756015115185598131849794028311107100368132766760770459528911764343574222480744023407031952552777234926991936364104229381277065843180034599120081817008039002383460142799884216273523935973746908659723928282032110136133888904142208717781249389648863856904381176843576560256291364594177862237202865458262208981392809461802447658114810983668489798169612499131461413701904165321704231457445157592047044540489633051964567745574575730773763731269262773521418957869806257675386598142430092846726713815728756850694775532332713822045403782588882421569863641381641923373408240714969480403560034977840001736693646611817433126045836370396230205335302807601101137876806637039524743509386264374035777789585016313320805617491032976339204165058198630733645195721687730865797793534869394047128049169479497019120681852521476572091178393780397717561812757166342130136279314770453732273089045613160445323251741885741632498390909826873653489437878934892945562445307355535973344915315962868172397779888165903306120255821712429183295899851817872250059474597775616654164226958818843301159615528617904195015278802406117672973071143040517147815129623456505560397769847466960352500530025442864091543984121567455393395400443030114180294589810533108499297541424680442869265570774478211424408433466212906529753953702340530632353494500100948209654491579580108369141736210317030605307695593546730955346171913217807950853014402123307133142654108653256112174427487076016286158584450519138473531812671027662191897889294718954685711897967899560969542732232991887256851357415028847487405127322606650577776662853469166094946420554854290990084714658737535974145491354030758537378278834559513773072573634043524471917234818317367134370395364413391599281886746579676413338292602319638314795788548126043383875576782372411588629419795103636914302940574581406095589482369555239050531209963484358097739815427021328078677467922383202259875297355248278594346737659120955244751506692909312801577097391818913451958298000166420030632901586410140198063719646330173834823826588012291340077481075576738303222362731401558697143965937575899771315015517609479012033269697641192006111098299752337809173602292977633984074805387651520749302563441248457425239175384933656946687410069466068506878622660171815046726373868969586023969520117954361179427819482526853602442306605272596247329561828123168970293011053960839099711594297047694112126602042157205119984082961930504671190461743091892713647485840014163679923374960081594363587696074812428038941518859058340949611878777841145594210275012016991973025067262890458566520150478000843258926390403460000754818543945542065111993503576139416204139778551232746039781073055984503608840123206694511627528195992006956775948302414609472254826222830909557541108229243960484664558586485888109794604808841520832597692705919561374367222741851663019105531756414388562261771707946376565791191556755531420846550745005757074327714822505812125311406992027830892746722184996357303682148351740398058668365796303874365034808250655292827578533540131529048104964540030087780581720773392928076721890298863100978607848099323795729157157507897075649709134190348405246946039675905190446321288387162792217371195463122653778929862398765182780006465237812082008169552549377833604898029840784097104623944374907021749376026368664308119540341187526260712679040892955701178227293133470031277031147817555618809263450279558283168651797664005671216476467939873461922649565989536849144419454058132245597111582703916826030417243625365136978919490408809186534220382921616688671989956436404072285386276547429968014428696210191414975462673670376354569590501104233701022749472022302305505202117999372085057538102914735804262386827903958741576499929746741133907554306622144617251001224035387845202427638832090788304077434990006159380132807997836284068034334939587431765898597697974879578888532082064396352760765567065578445556250740273189587472530220780968192344965154254461990951634681783413986849351528525991536699175482643682489536412456900429620922329971302930637284527517506549614500437484785494873859335179896959955491400738307738840994323691554361129807280730434537545634554868205306245202637646111086067994184916079065407866030436317951345719497364630436021853772076425819024552317668954011544059070587017102696771211230549914988887206419685913912335336212872763379669414789563254419459079097740410887482971432739535705285314604562591355955177790470122871821987159722969607499739529240846875763681940918822399485506215652768335003257107135082016887091056383764183619913837336833196324488979376755584481293443820699648294792761576872825761023328005776740618221570576279952246237385593719167639618110747010941606647688620006507763219090212121770663140608420859899409091231770631572361399391879288866739104646537177223936690172144593463964505204179318298596490421824769149990936489198121916556159835779695248724534316370323460802175410202762996260373416221791764953189490513013673417321602375912558819373339480649737977850773889587063775160796529371310364302047339001570307918289561242135373892541068680976805935636641175279534582954675068695793850948497178773778195595184473517867776412832230590315887533702947623113653880570551376298529394955063188048431572950874853447037369143511021517895222564770986886635239417076831092134505178552322391555104908479256058095897653589375247468005285189287828332499242802666515656576904669521415897985561353953577251114732650158887497703405906993640022179763759803573317981067486900815418022053684800269339241386756000119161334722197513896456184533934470148430387097438083474872932457603820088213552751984847776562806794693421908492804910466806757360688740166305333747026337008848649015419808645630309183393353988425025822531246029143627670122679580480162371740738571963462981176900776588998960704969009176846376284286557062578013722847557975692245998595979190979692033880455678972432507138943356147660718662320103198634706530035141199466751353584004527272317188154969203774524388150542970943005621341101025090978323834630343603362824556708481434381175524092479783254735547071366594401125496892270498738051136718646028044171445935943832344803955440904781916128229619789961111023436551483001738260138839749674315220945896781941537404274873111004403761588778644744293858379536961039503096745128657443166714438768137064813836251480979564405234384776361841106159847796068044155906277098996994916949605057686249352985050849659454523065215936044102429470777777873902774581464928476730541911552621891024679881376233081583240530355439985883605171773973509785793072106608069633658150062237104815711178049922725583641890752067136454719966675534810274298625679445775312822683278458332658181046053311389169250206406147817884994133945560610281153207867995283023782805863384938276986941083454741228734800924722105779551428981854570557506278494039755701574465082695041019145681196959383195017833093287978597168173532050418867018309748418703519472422248500315906033887404617136486669496880338311152706247961456019772389812582714256187661184759567202584083396418460964095021752254532805048267459740442367016727612608247024280658352302734726523739158060956957886601744181795516432243322727279853334491374659618169059150610118870980832671633112157970379782838958807840874216078873130103801504276121581562694399756724049190186490334179877069071442897646088967431367440168715355745927381190756316975293659903706813599428852591137430932786405241771295737927763958154615108355400669567795127273126019756523168941099052661764296254382782994288333793161043905262405662890077335701817910443187316877078646778569188124200821147957817591808652321212259062055461778541294315682994816105198230625885803547463677059509791456646662539806524906524767101899556884123466051906017466503322298751271567145492017481392945143483589930062879079920765290423361776641296170712279550279753620471030673214331130017367346855759383186845157020918776474454884101709694340413325040995939668357403999408934099303974701924823179997308329369638412926767842703098181404771803179852290086970709384425455254369086335474253294299404656154721051353220868367303340523574117507304530890425552759094962138971033755340763244535177310788151108545940733766009485498864058634666715961018373386089711644468127940148090080277989777094132372793405173868833353693934679623802806023275757542838856181592666145497635174134703408431158839506161429493951039127076607205929638201521336743916468452252243977113964378147594672931573828872804171425669534081036944346824201138377440913511530419412023077198478691682400357810388573338799773135906191264148336434482850741869045382992178656053527503945191741960980201421093794372985593774704190556557593695913431187539341369911744726590630642318845583475517007907336818892681663405614937437391831676184494395433230171524582920972073098566480740759462959273985796978598532027951194651905941296440052129237691768722135412347357523199655324333728651361572940276041246440778739194123466356638250136144615234538826309724912379481890367711607070506759896049323385462990008437792072519439708734116557906203389728741885786708336949117377831659761744383574153075864964228943385700579732294816671246422219204936818464673723470478288201970273377551304137587973868297097268867108591932202571724036231153238832162386163875789686373679618380082570556052148673697641335504759678006061080691352459973687497524214144126229294039852763627353505782698745365882447806622328056876657955045775246126005872474006193938937638980485128680317650059340639176754687619077856473453756564767135638511380546668270043196251686572388209266434858520928203502995485523212986528575318958000898633592415173783292041176574238191051659675593937436567958428501420260152995219630417476552724193515154898587677750933507806288638872615343523438480623021255517049843175938649910293859778192879915534150359952180002798273154016048131053894764233945243767768861062518600580144448219929791464344613917360843477548235546494632617475894487325188689181488477471626352501133090258731249036941468312652658008807326762143427529953926181214530318207485784257187633744982642029251433080760596337687410047576002663652269120493375161237866740926642622836991876232395442636543275243546273267360871110807919912364396505219116906630976528832592248557102221766049951591666612636996530280595306707726054429767867623348586717641027868895587804264725163316402860236802593129822634377093072663222226711705703542622881401269735954111522018685112011482195360191688194249853311062299686216058655944261921603765109425502973839940686624321522876775421393688219563276532237072656948198274194163394297604686599172245810023594431926526200735760015366147865081534517406959162062489149113111983096715307243078687618841205624496698711562105514468592384872088665408365555666810214239333764783068793008798981268412176490251030972996650226355548303794363576367385756894105409776668989290598053785657026411338182520550641830178106357526820416812729563098395162932940586299514576075265208918407996797052573774245311897821170344099548244892562823311821018221521279879216547955084826701090719472219170652022181182799245389749508703484216870566761227642118044890907906003159704919795735541843771554489595178241060638745133317485973636664597488239065442055239941814603040184187081397083494670546342671669720695314444916610041010604481917547493698534881098550262657716402082782291503533307094317883958659338498944355560007840226450121582275935519901458953066016745614959429988554066674373846894895283504165586412822686874913504711621516031616034077826349358785211007475977154518865695045499571269737016655555069145451618417208233368019749864201153122113033884332849257374641644697882964849486253800310852348025955860707690668939907682982730144123004522088100189929907877396370791998831158039851581359796219804639507090750854087601181378966914251273576381941483128748735224159715080735084522276297285097453579785611971433888648665092298542323065887192915739116477167854815375655963447096196131610266753247917921733193808288841264112357473716199179322560428272509654847498278080657517345200759024137395792305118031005586443343666909819720916918484251447819663457269077259010734004163010838051217746082805405895244697506140628330878003232867035655011283356164771548209786078418013383160831892394833805157165792640554286327561593846269999208431374308508981391106367964485619140751774278429683068359987646611377712808209221660307487995820120857857233365978644648975018287270782121721278479649485665201858885134890461330011947440794072759594794735206248300957240330096401652971896177952152008315669424595310942537171404086824186817679509664591258604135287050475321712106206410910549151206823427623100395836355399718699453547307300113961194289836971960914962913129043113944576467555575868985449429664438407342403348186519691018477176729397219384780796679969077391344265545195678100470099436777853084759101196428995411511637288789007142495729837542851011437366467567664502386150852890682880597013146537739908645633898587950188048649703016083047825825834329784811579087594708360288628210321959506089407028210141917507098978345130954053127630066965170723874229322711686987550845259401332592161350804870577864788248505068347962357115939522370975880155667529531086083678767764089423449186635570558117969692422361876889585151256869205532056272564315650800686411029157622806441082686530174786068072213955774725266137341801542069377180807529116254804695693566455393421693158497714186647012363044335606157366712017553400804135106229331100333189356452447551657322257147445939941053798628538171021287534994663878527785219253997837552332845577957610238078776732622073673594047185765267519558929875092273610218698036069486011618232720595746848401878929180266457570391509222079271717241287603403150809600438498993004664208327701990804050316315115554575864959760111745084341713064280709782903270017204808470028001742884258374613332843947500157488905869862028719561046792370840792223167256096567397366231450418758640076093933806607844024226586900698271621191796657936461662019306365938614908461014490070202597662098936508845608071638996328073893991221463981877527181939591651396879478544362087377379378797926966682232799776342933803371449974226893297183783947222654101863559201990965820409268264937832550200864204178104343462168170164912734278337662330530380604523013300148066092516281096792989010505520479556359241260929018167018946111864884256165725012347465706074855380019146564639477356776243029389842951859127916839697476281860661614491445355798614760588311851599418580121325127301777897453168027772531987617002947920070590587526553355709798002308549832824896611194436127858406188778872058737936157053347492203431910335849918964392509702204475868439509626895720239110121235778264339355813668884420666666445505832628297689897015402986102638612567125841408772872564301899818929739544178883103066656071407815575362508651524323974246693587922014036033562339927859648730321273328581432535681831643828930229746997516248142674929815115770013134868755502234438939180784112042572553517952818731056660284932329763476810824692447352992369455558069460318966684001853649538186676839131943414150730512989636934946338931064887176799981180623397265593159442499191475451666354679404952663710291346366877218829100441319179801131760705722673673974179599820223536989579945203182983387486121266266772097572164702230688533740250078599468004737249426283229244488216455324160251980812470450611362361687555119690696933212907350595644907040430928026955912576578689207504177696277077048499365602945521123306530149532993466991903234582831292881962363151120403217683512131570617628993853015292875295400561942289798562812620851816523375981995281342244685900247677079318498901205423049619312342892081944864192714426337920128161518132170363371484892927259165229067807912494968082672058973794223877094923268276260913370029837432926159997946093981324563018874048602611857673006644862775723582935184647358894390872145400637893562898128080599859783722938098059417165765263835658491250272070444724122923346275599209028569723494974693638170633051635851040636669651042610251968099902144638306760329347075166327106452032917786638512172767335952672514893677089776435176618881000453453096292080276243537743901700848328180107053264463285925710643972457138903781022795539261784425999565775297071498901835017946879006563313959786142322010279718815805798769917488401035845110507084537711595795181985596774584604239581926757628128913114489112742071061950354689079456636273915159953093538030933687329106226378728690958892872866153731725191421431434030425756798976269993860188945386954926795155213919593151090758532120130983320931200991364313474919753439522287784370334892740387973455701248404491452707884303014616908990158657315760933742220868120006029792886232738910968959393351368192578938383733258532112878348798794799928707625386218311372311819511878257492272599422215513212335928821439105752410345385168774780771648416231545865194477867881157723381471468678507393756862204685867670729681174142570535324888876211492268850206996089137696800059236256699280667613864448631526978163058905392717095236309960219434645138915080804312072423480304503527492967987129557379887030481724862050783332949363777514444829432380414936470506866105371282462795447850651288042140622388029682700930868575606495646890488602233874308549572106448345111143022172465698688686453733654404012639196964444333087492153402078236447514780970532767303286428008218181129885398922648308548937455210583216115481816975119846479775678816414798538410626559236719219694151846453455812138328061659084726493523772342181856943665878911928396939204294986178953967067869181463861006116564450517334874580586952594653732674983877049978069771656897060132977891161142511482800070704747971620257311487712524455988261882159636933349639180884010349875926971749252998536558274527517513334102968134142498654946656903131725119027751814719497343014806081795633612611510378829674020944066257627074890220816911264131141021368355798310866033018462230098260314853736491218050056069003909898898685078069308900521274615569017867703130333217812628468434259279835745781243541392415356088916549319852841182242545140452166807646710771745318114807936879791600970141420220224302642955613820452671603120542598320957608738062112659711741818929441025556471831537325525576525336714377886629627031083705105957698406889084262567793014905330208766732554001772786763006776293207328185934393052572360268953656765403437204099610847460888796470496584999532398685848800864005563081302560589451716211913658109256385193097310127910059464965143793102754961861947847245508540058087582407732528088521606431307054492364999473040475677781684929458437915170497952233315267503386347715203618264380937179322666233606500970750951260185180307642004513840073639870399897772492318170769093021353686292440400906425567509452175171560844206385430466973595292869928949292069628864245759208436284085450421291376665965879981409251699464404442679590727987999027895610905706608223422970322804351034122058167548725256355679508467102750574397514497184197624990535971114576238070750709859657291864692303332205621518897840204622715467045944310159144354176647531003059767161853703206276760025607281446767495227668081764830870415588461044552297111959006156455046344053343519272428256444633583165512826304800433329423925706621618817188500340268841935314990680877714588609545174924822177140530135058766704153667583765600822747454080173614163232068802341052215756985235404893641730665535384900189856499098216632743893240609625619973208977060752934149117577918671615900209088537550317938311014174356406989799003366649401210425111361443201411651508236123059425570087299824424838030573537023757136477244819125863279079638409535015969582308173223400799335345690389311845684431594678259774449640475947920000224523029888538350465656055051848414120508353022951020773713837283915762756642598630972356247471752658668397651288713178488779191866852856010349744261527080171270146538160127635932928222158419815212413946770287801923635378691975019582597587745532547862353523602635119364270611458468242337972703708694820942957703401962999517382578770835687163300443382159475331589903539954487323620235027229251523369382448544047511827906551569263099758443192965841309897322267698738536931917209946787907666190572834969286886122732154034823414605100143384967477119384591107774139989509923756553277638507494906683093420531259432131385701947994885556528048061399269479439396407123269028575920237214180971405555209197689680367404306646741206790461113317774300705494023168705282884439986789000703484733291602503688183144355389888550731363803167698463187690440052023508375426776794680722517345021230963131531786349574537330646844569901353652195887896389234299433299325099332317648433463893376561958532698553636541030780226404519361448574446782705312239260523955694283660160529867415836649749715669137905625329693577053486269320017034415423750117800782299135876525682884117606939248232541596293522897144508714778594317899316448572070785671587960334362128842048513079895426155005641810131484367191768637142651821236686789929855052694695950419647860091653911864495422174133954984762568811955234865864612894894633788925390181675981800682137355095820461925214425138507639421191644874875759566299286000918035954531789969835353505769640530249903657258806074194403947455478478051065284680694132896291419436040116572393437121906525560973760808216197155582529898245007743887585762988354180566799598068654105093990729028656038338101994388656188684288054395836257076911900620456008312723709959626701691098438251944132616031832588262026987758001335461973603971721586214701230489841498430098004190702836137586547856172510801750832926854527311592627167020644756613867178548775445588007322379378001605438504727293350250489325972323377275619298510553012835020352011502984212352179089721888084207919955482586202246972791257499981590180190655260604941520163157342353380131931746380102122636861711600833398857805252053468023661344005333832335522221170290648909073626157698432729841378094294703632413150101072984908683669223062099976961991858020254298590912010910681063191782133753950857411045478479170165440543365025036269726779943084603888031413090453033122208235347248282373164632337021423191297223269254693509503875558111390764424375039071684886965832249174078636790433691418514979957606198514370382056433871419281285254429556743901497633703947777782264218969189021689472156303323211383181962369690390579017800725766135673954543462644657429643917171461916515615984126546838012990312802642747004377952972746721248473400689462987298738915366199465316750231801854116704733576454641090009857086939638108486487658516780545196466960610495707391768384597009804669674308621725341712580580559201877969378298180092139858321719787944000895512990251577138338189051761167644791102331625684434190974489298847970147809732400241472035073354793294921836519214246624487977818482144860346353350007071971297205086203144869820760393267659189115692909119833515847189465375597089925816999646428458881835984354476541701022025335300969333094867655830728618581937176159873342360206749410200137508486902792936876005365406328016836377175134068071168119725767554164384437415689560983573042442365809925633653073448826052150392297703093760400215111793707723340845962786912041780473969867497321466825177926731110689155890193268295289973351580806869232102509406868153517138442064677934298754759364448763724536622315571341766288368532924789920443313247340869743950773888343731223453278264021939845612700839956970769626395038353344873499384201007152240660180934394547244878829856698519486727632971747081443537449784255056269011410732224086547326929113769486888231802936239893601368146666623447288925346342153978924669237895378035609225737870488012498345490305028044018980218611451514946120965193665531690457491380610391124289421966460287171381232203050774743420030641787565385900450474167762161842831095602398526284929849265235652924968728919522644886804472142499527630831228150192734921944219787112145026964272698281141200232604282887494210054454445459821920738318414380539659602822790266621458055408318318945568311126302922083020579423040446774196304017879173144322986221519519508998793769930416808160136161700904181504629811003201497692063260143539674833110252207527622576203368760813907823023443058648632730141623472522726297139392749682226685400503706442495047340915127862969389166493624365965744363852797080382859772896058007316982327958492112194849432323374547062806391419696836009588528521015430852729233481869971861232324517353728454880094653305570937188573346354965645835150465335441625688797211438877862881322170181758036508411136005164928024966973834648014875394506417169244457690042526626646731783752850638013134565391188237445273270513961739308354541550297522960578221914412105226678726168058467925798262475088774611214227130029396988363741231456563844109692762100974755432796141970711173950915216707740385195379416003569420867987495435834159770677300706397173669857881977098953864601899032762519861397297724578123291526751632945184512790444777597110718518699562421377095768269174649775763311184858360522158817156340059495120967563131015582875094940459543119066646198083402664951346188758451147639122695790701227317846147319370246005370311361507199795184869387117756952508790367543626303499900168778495518842312945511019993328682434034271623419411982608976121845702379112492226845953238466244832793674840630127593205032327752873766168674701014564087948395078281878358039874669866654233949106389941598065822847224099810962383874691827327917613444081333514628140426187493920252106411714180328413555028480663424925618368571425186914048259178864895135758345058187102102679876873021862178284540071739899326385312842054099323681076921931516543740362699756457553340608174983272793528863461981712943114875766312226321679137762143754174242466358458728915630684324879524461932230995781217103781641238799324483752913433441155424928030329541071821595869887446001609093441308561948030907460254882587392052582363118089303965928613347097555606307889226474543146150973527730650818487045856812705120306677596832372062921367273470994855622513551599665934896991477921807997693317765140189882708220671159994802989266923488409169683571165412388949750124797387890654066888262421509312777066801013274414158198101217639969949879336452875890474216001485037146027708246326502901043921321518990048920897276201207131793017752478496758482644951391646427104398335617029289391925074132862826574596336001604500443112208772914239597810355197383350971144065470175025936066988308846468472190747858881952772688006153946253187224923643695957654656531818617838422575484811357353582139034804615156225845754632155714115864272819392219692697020832302163531796410635022405281431281952571899245178413174852529573832846639564651665076508098746398193088295217864169824804936077352900272312233712702021728132605867000904169836684128811399062280902711524362581889247631332851727311035741725381606371395051088000422294710862430018827386754514361488611609358884489457977966585319118831777591134182349800620657257904747378984160741654576503148319441268743846047248579072775019485314875553202453502338389729419525684045916055047854206007507706650659066156201214592038250841644809995336186019308987704556694225511965466640563640705040835410739793169367826188583071525821499602214840648790247625268462396515655435787767814618518713562945348110547231762357973928137960900826261709503460906163683018060126341213933237144034307469917979455652921523579450808052559674577500486968981343384610935837954282481896203258362672610681568450084485477338138640408675022241388276793637965757727838460695035309746264863620737466545903248328568260126958500717703599251590505433476308605287567952529513037549993012554732094225550590068719831474573208945471823397935856923547061703080961016044533260844810382112143526310730736557528692797633452146769285442126895944011713879644094518272557529703855980496957010160778969823853485792610714241073175771140991679302274396278982568802178882767418665287095898718044650579347379947498090182149430536985472844582280369517348441542798564892985708469472377486511376761130941312656347592339980710773509644026503245592538212792043885315255335109782530740577323981077118660947551220547703214291879459591117965887934186671589466926346786427396406222393239705527883992832708558019123351579627679659424038864734297401338586366728586529185666372699145022160124827223321697689262172628326756882932097166527845512782227850459505731163133166731911380023208315192626846803540769855941351218556114748610698730051695296300164809815646909565655062261689956073435107611912033711496601732733919077492070560699909797349535271722006195381209055747947090627433147784352136637319659762682688338952457613985835963528199998292025247974071568992087353679816199422397956616265994437559397126900296957566121312692578323899224147633837095614622495070253436262798142604259878944434874591003394109589425198747618362420517007918905974011339507873762721736907323075022518888050086704089028420102294197641954973247463384338514033360098532244392619252671718210427565258162623106766263689339346903784953399199351460800709064551139502592496151203051240433073780387320916630656127741018224866970664098688523701929018440252235698591610491329595212355303095406362609127756349043244927586644531104407523683000885557168895415610132513360789604260628355846286695768280435326553996772438288786677643904087876852783557303648015255663976456481709290804765852648444604968473834685213147515499819360427546736150803347915374065088888908813824572808703199316509571814146187370358298333201621432128917585375675900156730631090570231178658926512182239276628851037877232507115212023458336087690784394843107894957008242104040959141088856071035606942171501237797130449606440566028207934929188776300848497107138148612970935148394946545587968861663789134571610547880225744147808387654766737271705469254325402597773638226818401565610682280813999943309491065866368715171452120876485773112484690950419265610724304449886342527783991482007702438389016050777381204842227726059490461470143010912998124881404555294868177971981436687207022668901557779019360916016509045441110086408476240317135189938604501740439287799855998300984704999504847257991654494794518225921792347271189471346624889294483783054368986061619096654150127087192335487100682693825988319499097963197915810460072779923609066260782527160783041947431959600728186497005778559247825522375628337315759303797309050211494438919081317867593575850391590236832605097578051431292507568703385000426417373615891127766721449194844525809037615330517460022312523200411135520801082884044520593836305591055043589259045190766738069615521989278779148231287499842889026143803745883435752485302666593855963940363375428926261744667866237744686892772294413588736602360625868766119187024057614777411253381284705998729162643509642179242601447127291879429334120778537715232981425303476798890389156116189451145234178322485813790634328203116544398935788016609460013590496737456795314212713510785308042732965664189276304560151996632863488068717732943466458600456940493449211618323219514847275590424318579994306367527763624502338708629256361903236321619728962012903317682468936246558588387979118493677508734158958198343860173151956506627230598815982103275597673438301841744728364621618446352363320913159515231043285567050861707530370575381436545773994061412345304607961397483131663407318391496128894044996220098012384949090789958434386888552045671880140293755349989632793002809229108364338507490333070276329572928435820348497649648200638628386637668760636255179729925244353558843257452538799067263989873903503579762121459250532043994516436797454040722708607063820254059945216114842363042073821694210870267570324373542909968017012326797582906285919497491719479841230697435761904799116138439748487022401319629266416091294454487805158624962312345833686137356800692014646008837128777742628826082129459699962713307538076543277706024440679412100774988816677132420577521551299548772485754272605949832446935000425727190703965787144906298713791484395326734094889207058866057056621733432790830679495074701945883260525757367899674926398916164743446539509389125728202449529272786758176376233478464134677003850090258159995055077791348237655335290251397717314269844411425250022377315374403447293101294603317227553891580976916877137317340108824897641985143890706151252768816299111749354242206910454022883037195899391846783689821350956981930117084647322824276803106314253259043647578543253999832615369048436518602111154684511061527368189850158875713374250104247224790253143176532905508449921671604438031592613883393679446716456721683663395837558546401844649910320663231407657695203547416172785656449974394524465876599567137391864057455011734899808083663459846931932740337180022720271911303318900807614095395349013852197551157681526862552683979798457088419470241750582745235722707046973355557022700161898574227413052226489138789963280886928972082164373434049513012290658647980038163781849187591371745816504628141240848257042312954153025665625816059171057039963125391377684867080095167358527979155538107133705431203295501433353252854235873069871040423561479613406277442446374983639661234236476283455760149011021792365126402297464438974671675290941469576486528116626033755285528863435913244697461066341246109294975690903575498787960406581336417481403671462758249501017684840904782624819910060332088500924975882992109719177644595925266853053375078904430345037699551674949103106533701973422610086499784529550804678733172221960722935843649033789937953946836314989132195205086937181183842788620101791497622077551116741451860608684106264244913751070384122557193033195888939530604827644764244197263933749821758614853671969891721653065692888855261835263830146971200764088722580020181189650470682984428609158394119639781345171568112780707792780883949342847800358944211555295790355178082539262907213370674424695039662559898171754620285060097636411841075082266240890578490166443855178992915096628572780499735542954712602575273127508098051468950082894372324083028674556753827339400963597441225763295070779511397142645883366359863610467609555343156921078352699120869525215221260838699550953460564891436164961376848207494580190219517460033079533541856840579889316825051402736856071571895019724380880241439181998635959941632039261469629467991916439188553381701153623813874117463461612283519795245891201423282774268505857783884490011632634356354634874560991882799337671310494262503353936088492603371853385028492454227973038401840008120015673391795051107227728112120608422213084632743306243014656283513442223925789502840018096006184993237729786172538160110681606266674543892598751026828358569813106998744762448362544658595917839791431965575201678330302892215773102586879733432795969733050995794552766657561764570145092032347878505757801995332906972558016377837978890695185021679267511577159839300417115242574279297061512549783557998872313769604831361768300082519416435075364756671924607537105170374259310493169875682169250782870027781724181167089131570573212904979901873300473553855908963397168515668578608565192069461745179251630124702373608355043976065670592349325380653570416720127943575373220352216667594844924937887755644563207555525207778176222353784326510421291312505205261889816568082214844623308295239079450733169239081182253352819765313425696501587183074869091524725239131195619207434916392961446076467382140050142249199823013649004338294084633561875297989463161494432802947882710121442324240579874173165166060382642215342553803347464339190103000429798514879194605150772499494380082866923322435332192117857151483379485855355461093297998497694903495363263820078457078407882188647561632297903703928839654262519301893674412260265367726753470684059170508899589052260393150164319726046650747617969851536614399878037674992352221513161494100410969127039553648036814340781726827519709828330375552759662662999699897749080325244464415710832505038541840090841501263507023379695022134333162881361568844386999005655837929632582493121434345101193426769348022290117687199067949958002761482738121297500986240275751717808678232894404584726037133738338054110266148486449995402099835019188044650946757584271727504491023363820311327964855528533842987251687430191685641618062842032401732084334622127734748422372224913014595980183131794889941570490416998281428493007918370589840064303091484188960588326036514749017366207094861209704941389865927148438302370228595480015612086292844809507037597651967286832375386713276757969202968136359147321191365548559866458581849492423205768649498483305648648999312129424083946419323074226507071753162406322652378693025347737699864763494105254274389033462054020660289152301480118245885571343293386753811877884367993888058173826208862804258370381067049672719871991407713471835716194726892326911166495984583147002272930782463176770580764910079467747222065723366937700161215546402323744617557730695507752135115246601389790591232908893216905192570275061053543258455679652267259709173692859564417291879528152320387884093886692323977010684058106367994285885533588515571057147683517208778398032417156461308675590635057578128363109427307731399402706207445286358617684229028088996589600254723389549525241630606095109247008258335773990195142468635025802593660237514832663277765705614406477919310674081543505058635239243294882243946017220335518010885912721558732929162222682291790804452590897569545819649683090077664385953279290915553393856348443625431241228580144270028460338672419010682595893836499322207204433380600700482346289368838464283065892080602113942720652951401983933126448510988333471923831557359181563392887044294829501898716062958294464965808750380141400302325197003716176228450931121477851885150775818981390240080619250003701729119510796567574909781774089847571404311695495762559852026474774709198770752092340969677788760472291378472459450825082443946555663767819925601955415490131313930835270602230265876579182197632319194341517825400017589057252245924679695227154140979005645403948113414435945892860356018004146029367960514567110431436961332420152315260383512711375244978629305696166898232289575290030627476827998633469614209641329235227050074007426867382075615819908150519657092348935335924618254114048511499459892538650109910671129832831445819689114747245180368416903320493926035913240215072231262843142627449533127404760141562220428127743289195657685220333395678798362987702738061748682481820144435626267742031414502870434078018509968386304328095635056551214542312196746587888477649085116701448857655224872006439383907025672953781375996488868113776765163226062435648986815654396004555258724252736803624905878480207547002902798719884260955421059840535851035170021201097972824116730267358010645956528329053081149912159811118641047212316779990802617933084238469618985304143948864620575402519316340145649796112534808245997861671891203849006355918272479447973870106066945355845843399456841407922109821384651724419716060733621228553727534728277937125633061075565631996621774437335261812275630744488772116548329830107676078076794612462567454690051864248622933074471797117496978735939477821057560550249479406819223038807143069334179100926072872157133496396460137060371396255006990652360060558024993249043183939329763677258207051243231732724988974752909931228894169436033484211992653405578911073964396733533410845118886056157361551226038818652715997301983912687164227690413897505462203360384301349716427624154850792401478700798895443597816585427378535043018575713331537747258580161532866152636278695439874848291949357926749209324336070771237571251317365649454779749109257925773688372264289091051600619055727903004437554377913325034249178940450543704316975434753935867526035294882046452409462147455770756390315759783018638540234081700488306486089836678569024583154274459597693588421775789540830221758157455960689868065586365215105451909632906692632814660099937970824121415776233514858672317091333704166208806422568553244214901304834724927669724370219813563468389320888256654972902454142965853437392621277428759114484308631918336930069624262046928346308892794602642282810098294852056330367683308506274935088150173448254405957892117410187933293945752272855793682991556576268079376558972172070757838969923500219806383153051742864560686407385327010981474660469266071440121438402908133732133825450274897226901976755562763045910104681903567555799429543334721744505504600376873161966418528734708015690835250720741773867285660638144649627378736056944469294772153630905577914622630981359347106586206893413349671630779725782030619471160982464416231132779163199318287451500676078871196770776963734023882262118439425701340452397103291738602812167171380658560176266499904077053691381742917015569935099352028745458019971594605662695181644911295766506746518351546458850505608893039463604425561751752542801686894435391729143355229495833450804786976082770766629405129683941906787990694913408352105985641892800052284101534804448828867625911242895179268932656507395862699343066603116018798904491964130959382767160229619389749932593582476689071087982336654819171826561112423485066735140885967699468375896480965184031646292916282025477167447579574672818276619673499235908560481745562502430317000571808493754630768872778516700664553071111599297702692486897044435085408811409112213568566856517233257617720485919636063516022824687387080617992899289784391111555341020383318662083694372314116603165341122823249209092961900570717150809029944932711441077031078728522360108530758184289707290079762284765626487137686327622361440297908934621097394505486313244137861915603417831315954295392630417254573938657534656583692126494475066284534680542444959151197020689981965924407058186239959304748439187248109726211703002421838884261495782703397160160258617359998911256579899355478649174795042974495973014502017155695182519202816211053506071113309939813104372196289068878213328306609137917911500695582014815055039717754240965410820047912751864681230125318048102300037791825302195690276413294707954101000017187684953315782059723480456935538627298810203409892829969718206769897580029126469620486410113751175555493620176290757593094693267776319534365799966874101701890435356224992654674395550528663043266764525089013049923592688864312520446121673171584776953256914940189835851495714365939871494434413532363246389636335211252883720172668986102479056865513098780895299837725764441478426595060060352633450610456965900209061007171058534834754656336812989471914792247112797528432826841424360750515980658170107717447993786531143171761414900980993763940088552104271004849806788254027466124376199053902639146845787782720062084196810040282115327283604167699825747748438656437123428244235096652891867106748676690325732536886578023492479602991176971694366080144952419353159993317340109208839937652191489554504169497314833488029645345707781582155883917944937080354118115267216795489870959732037798390587529841256750780682402336937694438810593190390965037758605288701712895582530211958344587071233832956295428878694420602774965869962108874312719462379135506657451495249245165065924439726290589048889759520194671962076580651623016623209340257278920986318955412543481907516863456919600812935712310781813776338404267263610781772987753830437108493085506297432772105249128324860736725571516657447047135993780469469453193412337797625391754443615011318723108444189264578352221429088379287804450340336710029116071511267484302540254305304919645105127029372248906851357459455427401702147894302831094012431215864253148378990670810888582822478384287475621155748846478152020186616656524558922026034952009614958013049843458884795132635611324987759591153981642330334080376087214884445009432167193040428742013645671220125150990001059262229366806332983208094962725197208089538263326373028626965110564650521723236415514994397986340781968533731690421147239594699446599950783138444879220206512267424493054803785291249850097236444540359320250753864345975624346059199310718355948593679724377450562163859816559153413801647818610038607185254278458662955314031398399744280418783192183703308360747342218973507395708300398357867617119263877146912973802743619627201142980087365133706718644338841239848082130762340177497182842316329202063567437650913521322578204881012687681438948949461853229360626174242356683786519282452741094387107591932929451112286769046949197354326852671732844164915927277503317837296853540682517163190013333520114820159853336559737656498601549104358300920981636537015470678362309737003499518875253366872155911454760753520102254201907156428101624374724569591152046127969202931737590481222536943767791464248358698864229449520506174803602191442568739536731778438718997599978168390564352956356209028528379406100674703875789057314220449012470282232488328383643287613285491648282467384586615388449927923332129215203766961120220288531372408016924607859211335515708535069741921810482870831127443767318580572631336287848247716894829841773228791188360150817674048272596327004420465997450411735602769938300073217119829513364484469765654563094201040649518319240776528683868022144434551019191412681639850636857528172940779554748768459607447050538017694485915671788171064106384533298935782719949100917503802640260862385898293609218374249424868078159216166568325241285507232939294126665973034923667404462407393265777423450055492447196029094931684926814992240227097562385779566090459559070052426681615607609123150048490908860436473077480841052476205299790785143906065695307714303844234983299744743748971267460420632598852742079347781269188172130824315985784709517208549174698870622876622409209947645036884212168916188081436243254689116062300237970232419502886698084281075597469852332025180743841666353390874431841701095302586917029498235872488846304997226938883022382242184623830284862349514240022261229934142631987657295777521378066401080929093130539256121009065419667101077164531003035809907333184085668399037250079976149036402948479344279195337575061940176574156423895728903069660212176491515169202133441383910119039541945341728454527807615374846459105440062600695665480512748371279758612040570161488108321537569283214615444169972107727451121578723048133027999118294193240173735293429232216941275326568274599929110024246044550530619820498136485992997599090819886858768526416312011577055033980127772763890092910457364221153138158536168225130867510195887456289576699235454140272341440214982051761775567532801618278007833322966158955187341249958719727747019855400323873983164379872507216571067076144120228618613673989306871355631231374521238861678589680646106930933912007113154671863439397408573088799783424016834288933434914516784857701038409396800292777049271751209121581899760670235750348036932145230312064693480356004876830503307111847423400950051620510308827673668687453564856681573775807624873345175508481956943995677395393571578436551628607836585923079606794529104962571437263592309278663984657979870114813109163958063153558971389769079712885842847444660524089790821262197025223856004015843486728286350920943097712092681183812295875236124987456358471729831274714447304754569773519095524264830425440744264576366155202108054106158899039579045688609207806236219988615818768947746229241804275508439071815385848840959229489125307427764003968506042574178521848330052438569932024192614547097795134839440730405820307233198686208263548610425653656527172112071813893139764483372089367680818500635921200066574282023068563426166427496699112093120369522117106662774186253505705478436204897381229811003321918067888133827305822327504531038973724683094507188947283955941873255538720783989689422460732695792693621843752888593924718742311201403800638002193271927122267002281653719750721429620953474566527215525149244829177051608575872734954351183939172246026901442325556623432983699506176059985245700056729427762767529893755262106964317418553825818750222123964693074738964287231693052687092548329795215779268725530802970946044004100763912906458548034757521431573188252458869984115099545228991817115943406723186700223663802038020841850128065086679654493144520436301942100665199059297231042141813172641258032070914808337782997829202075369078442673245655723100089929159330106494894594255385650409450219565302706260147079324816842035920826040124417744305223859294804358706784703786795907424646599448705200863896173435315285182116422686327878162384145561419128719315259984269536624916555450665303494093246528115699052189846975794407640683226991175266425025075926464787990223446556012126313586673467857765678811352029875282763330591813506557409986008348441312603127495384932581042689405132395810289132557161007682716994091779639381932608169609584178716911760765434452531237890949524374643484145802640584118632084546718159612620321848396455874011542934133038430815673086360148873346366834288357079272592201570829299773271774910830145758906956442757712208631127339035141968271605934706473742054024065518370880799207179997264901083905388403050227784252834677092549203473445586246909902519368511585173678241944932584504572411138386876814280592543577210743867490789036349900504657627720847776427644220685438970047861982468810575387588595724633583486811130505418171956395881219345004331570728137000601478155324966005777581570661794260730234368188031664029242776065438483228488068110944193587028747643356695041382838828299652279047176906446110260037174111331792249073628448496734532456476103585265386716914410816719872631726037092645122055981629740710111903716029150291444919576563905780522227094080412057941802432994883817199994460703989505921893710484882103642295144102029209412450157361882064029309599042040691235336527468524350835349665228676430781910110757170410332530781973604296696827371267119029522276188257288508055204735965449631169363822627602258642891955871363523338230353210670635823950828133772485573053155749056692313334511467462518175554124225752402936427187498551973206060631469961060205808208215715572159191502638918086510163911628829330486855614047575437684762606038708272990251093227538882909523694361593241428391733203218682439512471028491996289007620828773252566390515715800938374889256672407949380081232544005558931035649961699098571156731332683942089339006882890257525951376990940130006897487473931330160141381285353930664179219359746409527567762025428947170635015304732124601744593778562183873320971431019877208767658333947755069464683727785497028808552962123957741952304312068941091174203893832748198622745516656517320263547891595726491037615329123918035376072425520010853458474707064535249056855295226457581855875509792367136403965386820477070180602937318488765958920274764839141407103956664825447592577235473157933836313776502692856614688227929464990054700806685435269910946386729229702656076730795046800678157665431713779958359903861838812497289995549609844422366370231618126680783962104121032543016506568380575298986665845215445235301875598604104617168223968045407505343304245537891943805037991696330430356170807761100685032639102987240682296479668150190251967215783059193764836477844521391954175141146882710376543133037551784196181727494313000498651638025575548539846778558706281283534963670446311681164070962223323630556645662015917350458307567511317409170368336251038417380591866372502447295193919258127795811684399566386633964492867661424521050600430337487907661105629476871515267995124343387490131195974958029922168186523355771391212038211494209343513504761573116157136846368576466097086222555199542312597809480870270704517234282500379075177831036197858590010506289889061769753734655828070459798058949753383225085391534834006233399927063794221404286861841483946177456766636145245120832411699240634056390590816202394048192295176185951476198878315702450951786425586398227103147998606222859462371625595571442991677054588123013243544835626694697855775316087299247262337859401871532530762365522174707202459592542464612700874830292397528964324524786570457295575624440245675491436334014587037905963182578081792806815018723389415137620884563777523234224894548075251211556455149678105581196880940823084923665022904799883637114070366659862244557131866968471921660355885762961192547249517603043557089716730093280752640216204048139638238443052406051559512048077125358285945997260364032596043028771698992771993988223831949615397501941536448181609820472066607438185656990890391449894899979248196900555195147215482828394529795229439875243128043194761160551934386004356434535945744332033855932036269358511113794663191774254792620927843204157011760413798856002835437121038601669456314170884088096646458674755632450931733064337090710436986691583786342922579933334375388204156778348000953481820591947096914334418309150229311454261072735262632578943678835667513221882548284310690582859746565148223562720640836996388526355199079489501447484653810793503595622228994874417444251062662872452062152325533048180794997202052756547987190832803372577878545208364301802740113932750077191207749029825407335760613615199306369359054630504799571399863901627031104294976844561201437745850337544414724076777409589039204820498132924319974126193066055636424254277626416270915002691898913380833733631433867353098287557465863728473842386004933405674098809359133512375736182913238416836291531693076723522889072504916977849986390523454295378210820645130479922870097308495304488559825318735375704582812904775206001867792876602958646819023285307492375396507157697716964980086063723367649582349335591144561103211586705194122604025795302834106015165659367872686070416229303401443583917187802246800178094519990507535484905240777906549783110297530435410181773244368916950200569123935192979970137209152155855219811391632948644722508702584111688458881192866610064914718786813057738528171835005161454784922321657873116098524629613205371409397221182357975749762808104256739619080543825843361358012532905638169391274067605359983072758015530401215121116514678532232689973535347010050218690022419897626250692207612415389986687381405834911111980687384478518290569005267891420687371954534544827507513043178035445143679437284980966280482675164198357704389658299353070028582039793277137708905758867742730018402663506774798656813622574015515840690878700099000183438404099819262265584654349760578769061320189307547856692207251414859020425653686299417617647205604431138700326595192507923550631786664508802685302469195642633252250478763049022801252057154971738330143816159405362638450413002615678149907073913110125765542816147051545629943057342797127730946581804775378202345209497178764727024122510852032266569815225213586289929056799183268084653761428658948656505731495034962124794406382194811287126580285504073880905136249652474503242798556914968938983130091895574004852290344781005433190410787661169619260310452773954488092788880948438949357490033192275410615145969001219068473119238265058499416188381061806802404427326709506713038201530701983552334082523551933164873393747214961003692215588489645741159276098991802271428205994382568389956834498559142229905378160340221679540950616123657578061142432479817742844583310595404434648791035229150470343653615632573136986328207512390621217448926959251803911133988393103657453593698368729944296337500123524268348920458220637697092556970877413085458318111921074621339722391975687056927420961276456002819318179187707899641559708982865553283403534064732348814172940952079570335335625315684871884616927620821531810059124176363685631806543747794511986421003888441056949870946019393086684477513182353245163375357267728478430440535695582648389357986674919976092547382044705739248456479153117876277302556123298806996309749518301568167097495031112797868693928027845345675524197802395985801698433079822014075805069225690822762946379489197494064470679296642873864843865074719356258570422761712254505761568938660172026243113855791078300009847509126493338416842978892840656115732481173701078155703860676238050014600732437980759644141748974391437774957988972082896109767329354086347712837474677258861328927952817225746812432158185645995523371722391711247670193824048473173372189378042590152435759542855539923942512152400731263262762919826572849626150640967135973142346946403603784579895176579079303170299580769673122582023410947956476887836069245712295206181574739528144485320293390802194393811552932862847869523045636905026945409933132658424118281855170891496556796776944798543385308577302680846126052384371233019088469983932788960604038698273133488741452779331846454736754290202082876872730675700594875443559936115977593373075313818326698970054237866087632844946943119309172633051553223606117235345918828555494676231932710648790856101665962836891946836244532005104582319143404053064551728266513048320039434386279582541514797969313794498722373435895350762754358691172186273144066914428974904496122690687168820899680152602956129709436763752301426308105046112174702321219019284407039815145154324160624826738078567253644941229046955153602486075616987823555851077885841960557559827684174890011215039064256919429419699220445683286435573580546662077825403221129577276019461175172371235386844445543937377390029890891138329079905233764475528008278253417354817857662184315952963915272448264905316129917171281849560573875771977169585675501104384851523637374941358402082822001887934282590847224776528140244334557342129373964830301873749473243918564482496496073642792822748413494107571861838549453787226806563532057480859659074599607548524797700192102819216795822956385524074729855481177277225585560103382781222856610571970001756858018276231338355068345265852204154636872912768438237357022585292527198784763768163790151267987568327279355881715236589263833255946263793182110874443132372032537388385744204884045730188772066659013883539394623189896232102398737103775076407590084795937119181575112568313033485095291835006674484351300412441196657900491024911768029207631427527783040925530523597881007745955079031356573932851361588097033286022967460449271379303204353178549927931936280187996226407560717087264083085695043194036439976418076092247739481781326848906868040398049726431015935318689959759603689793655102209330148544797139733527472704743603670521230648370710500814890940006974119060277184520615943896650232960490237512063506765902432289508642488966553749365377794127505678288408462380827358581202222015380374048563552180140686026204898188979681619979405363900655924959638152535275410065674860895866166443299684379682291748071250037560598388437075750349073699426294013581021795395594697669798693141452063181303634110080184431560436891561249358851439669631672049432579701356253427972007992947142705611876803363234172319323868698351447784788584216895767127589486404399916349932603909502708828526094335658005102799739733490853052599889533252712993148835083749912573987980086339961756883484350108862709763616960115233703104999874390006375280407946417406058904177899351621175109158873323457219328344593762804521135665225655011215616696582257210587612712448354002506893733433588150484716025820499246681542528776553130597643959239270346389829054820420365085054076877804106366960592277162339437807225271158719657734682597039496196798696576904059519588964386881564887004356683580598069100896932693414328883212787986691654523132689692488153949931917384548730871449268742824812096462930155406564020835192733823661927171986094232502074265348256893727378853659774064240701235316427398569274728523167588121553556694507268679726991281557572925719586526510236347953650839432420440116362552977451304004659237851251141486871002094517842624643176895325598384229342223865722638439405408764508838560685978435088782474097355714481140277815272243909388195663639121979667580317881970541496424335798963387635859647871418042128964032912693960000376453339411080898176214234164950073024670066739207286907761586044190322616986543935243844165876434944012585204335086510324723396329945580183230987643447472535650660946585030139459616207768817167004701333643416615052501103880362189062064410263219319204375922389428617844574910287241889294351618569931628316080516874450211982468521902964947191564069570548286732646897799960146943300787646276063436810668989302639886384869289322375124509346262699231604614393973275666480734682689492264632069947193457168692114475431108582868252260272116626851906020422248587539267580221758800405686161903659136921225064951475447198427497031198049897019714805330915184623187515092624683645248412284652721614105546720239997923986379323279152127308833522243791960850180192226436984026939071442310311706567418845896143610952215841730751533538135676369372936078042688314081076539909344646253499717683045811804507523458448048438757132713008886439260411138576710499213155409232950674250293690925129623014149459600243643660991005017786431385008716050379385511256574898606334276403350023203223911627601245387551123425479534575493035130092768208998470746248805801064498484996299445333219402698786997389784051371093885513052274737266811434747021701298018988175733571941289538365063174638869924517642987701908980129252619917692436366488365526314548017917523069319270186439543043948734380225028170439080556451469025147865405690040139881925880876110295749256161716180187860056956016202199454630541243229660227097426884830664987266345497760796896196536781295000446155293457456579127245774519514848141304481283659916679625075468955295670357611363521956829938613446356031341199977750862298973456889405357474778968600427118509655088284038591091807041724831740224745732896827608585385454943828062393946734060005206438747175029618043085644328118819130273911291245857414136174827680999600019379208055069430010885450412396433857875187495433450452245944142958283629477845707720081013553980982344310454995685845263311986404603162191250078015776939924004173057200494195167980504671767079377275661154225012452570496920928756304897717671566980320859479206765761232016894512367553638981102083201851163164645907924678677578418343123367160697066472964918604871824004683365453918133332376486465102644479486677760105405703126154301170065472967921848442003076357565671277806771170445721665761968687404473660505228841330695434451497130822208800314921063185144826791594602028268117764905402129798068727261663650505833937155050487105503264864657521358390318397571244147920399732538353361179367282728266464540458763151348896315230093379865182335250041957311814701410883216391531189957615960363639403625140716309750953630657023880051314508330798761564952993370463817086804285422168516234151398985799762811338366501415583164621941739033818272762186334341178573358589151140595222936545955417498265361074051409486969796217195352248023989210369524924792380618603466968671915561858839649985647357483896624552784099424265544001183690543657313667813136436548832349935946743646720373171511593869619832655694119146104323930785753079138684248893353575876297638533390125458173940988132278170501738675049771044123711748287763523833757505920423637596634279207391624153082088747390323618985138562493670045031790375509305411319643574367149291002882945991865263041828269560155912531955385770878104377981511387191874722297573426955658107318451686603304025195627469892822358138713701541698909053587377918310257264505298427321618311423866583328399576715942368478390406909441390288156789936340770944310292542285267135541192121662329912013081045310589718060725554234464353819921391733145576552249670888047366283221872051700627470604684839664613319029174993302287105461636875307828281086560814152745218406934498438189599850385519537636177643075508379708260706008468010003756805253334984002568704365951431811381694588955736367937886790710273660556589378651309983099160802836060117252993319159133706893184404648641509608817265190543577849983768211940866092588671146451415039748407259816659654536854161038329664882553318039016465066292531816796307811662944079008397671072544752422044845824424801797488885431721443320726972307459468088616629048709931819119370265745642306960261765566050623815610604012175256537180870176710172897092909941281916740763079068193990086676771539508957872221145167657601865588972531762659822272443526533799727932264126010341058902671888247116344917183541590272743313616125318964888434700354354635167167072828208930682316615493550920969694826125173253712854000665113928173607934197014093508322588153754723378719012213026267410416877821582672746802836269801392830491220445093586987360362354483902677302094024095185344700217356883366486217125364869632848310690790487234586669748006266831706370996804622928782353429606451959251626568156534115045032812459242317161554935123308748635517182936730546615026054418737266001051204173563660824472095167943327310608542351980538922967792314803586129458746680755598767226115971940864309645016665252905566190775634753940208873803024569719579275589921425615953770491507662546520022044099753841937815388051602782779163765159566323552933440081616547017845109917885463388478404378933140456648682691662445489825788585641133224068899953774199889553513881846214534623441055045591411785643435456451660628670867298719364467074635375484296924347924289497089654500225862452473088216427266449814313397555387469205383759353204408335382614572710926936726862778750151537688734359889845839909660655924111366216909242127959149446030967263195346673388800548613046000273823469158708278440018667964650986783800931386032187375981715524225683170007746242593389810003708426719843503134967448109484597070937321159140402397318725764519497472761318790450230995525248445563441543937677147761037482893812887819078638673247646358079739474605883780959493394413575396128783778090188287725706175953364769921409264435581000188737397130195270328980137158918329869758816718467372339572531796520970880105814314699980086844811383377294566863120584790335486452759502757730477712766004162653537208069396597306211818385085785909634521838154703217162447120118042457444006393703420525233590534440686684525559664532724624818571928446462158953086373078107376519111620034652468038344553581807122752097809780123283227899025265775895786657090125190529552699575655803689403778228287728349100542213345901785975362381155885093914741648060469996244990318673892806102130148152912532209436748592716115049741185310204768147213629460574127292086273360318796347650371845831969987153283624354547602367666870188853415116190484533367963480368583066212161584674415487337184418213997130070946936089143560232049594160133591758328213720733668593976138914830089867803285439312594114758742730635021918889983477466927247083741272020805102906381414382123550571772230391384931043619405205418989676627642011326113674247806520427486285757235656300072706327503203653203447803760197367689404807457680169083367826363771957900591103489581691394581700407794384242695016378424352122473508101647495443917197831391536919815721569907366707771714128550806959669289921446965609189379697197513540517497208226628773230263820298865817404132943490212245709875672701565976579413326694065266978372576988913098693799456048752126903780507573260484156662251368281648328450138878829876672854337040173931348572856580039588298862424569949728237387519799044882372584419780469460340556817588051152789631101151355542557649281786574547135814016959994813290853567115451596434153490741905020118266360624395857806383318328324152815254456332194903710435700026908772946994721282102647735611215430952453518842642740456727606394429716672290394614985031560855860208832617733737339941515742811783473404136351660270899242058802978017654188243739687740433206335711013869556492394808218016315409905080917148110870721572959129076318749395826097722721932248751913729881352242153370229500949483416251744450680675743278732084042558309385158196648205514132007279777986770629376800630385307830154506126929286803674459800046684793912152185284746349503215002291840797714184834816775344014459546305356990464357674578717131227262322294101711819962308230314145546761951790625890777832573758860797144474941422925082346890617422255895373277549227433313942689503617488170343342428836229988947289794780620147604945348376869627430016945623977419249773843284570246926373871273456713136408926735434881813098963840416352940959507477661401568719242071342156874230982151830664499052756053084647551249056454506083328517378822082622629827571291776388356502651048544314587775680057538694623502146918877123641727622239092420268159216141708960190799370770290795179864824773499849172776843985306151682586679774647602365239823756979454032830680437558555137288057292302180381547562776059729882985402026953312748172816593493090304902967342551953393187674144872746842475925775083623007094479968298096831742787425718809150970082098483608408802305257103608334708098451194094121661337800025804954090342334516439151766410242146389721125125980964798219141437337039569985844424534585928483393493343916958306286534768185332379604362331266483261542724208812315877552809084217744029060939451210353191491651427166989081780348937831839679462756596342172502795784765095935441299385401717555282272367992823678306481209362933963666030628065326318268570618866674637342002018755719379495695807629838793937523528215721718542579253442244254765661639015478081169810367526606468594268064526425001907671209905687553381027150963859347442985095856094274051143007698354291595137089148785958403689290396314961691937500094175144270301392211850411155105217012189181027871198546208087720834503448120121154941187620256358746761512813854682554679770186448413557758449667898448887834018488730415319445339168471054963370254751407471384468461143692720846299714374809509561811698436307424429240487462052721869444696007190285424164152266907214127281346690095354819610711803424859230947611058666297970289340495593781686219572762298001068952970733194188608295734569420655340182572586758802338549247630469550264996807636723231554430151159575091145552629964447010838952253909905411153976188926398461523005895284342514924610685517292828124907651107088491995257636266168493729464505292104256649413454594977871252994801278944449919612195186195353181580198000119445863618309415290936511650402892159540342144892672294680339329538450127027259293675344240867272899575513479054981167115770680310465475802186822942257726831973829855078003897288999974851254791263196857293450858157277822432093567045301092132635419142536309787415343161301722315365761000170023496155479642841451195869859863814316532740164382380260888001212150687885068702792825921882712365372120437522954783695436252963812821570995685327496727221691323120251212035532427798914471084386517854866764090814061318776853692418036540331142981776124004533249742685503035010722575897366592742910932273468355938907133109729402910936795135375652555255434242313062337616073620400151368519908413331778654859572798696174346547931794896951748378159625790053816513312196430402015966006557903946928451394794946828700182783355800069827356580527363315665981513660478281550125092741684153401604099898445682300491612867434949287007627170670255539130628328576059677985081557352315704072935207697374344203679871935950943346991499915043250126046324591422817124664398310360899524953294589840317695304508220949679959696372454475328975790817342220988681103327784224635623686954654056083375225050698523692931359832203520129624316251296323512497174513738974083459855422222540540335811244008255405288786711263747425474444677218239188119143925292495207786041382423319559125289349372866823633052233435991304988894703694911180421340562605950838928124183497400583789553683160337249943438768689819478256060577389061935152169314849365728590660812534613034200867679866474494244204647250195923067838754631133295266703413096886349660761507344798918626104393394610253118449026044620794056627325668321671395330839885879789791634198293579304846482581907924402013255229198686966872168666658822891044007092367309790966947667210572534348370206853297363316587593633782348186939204596538242201453344465381791181755105614372769395144813070162204786908182032941696531978685202114738592410358621268724740264659027047938665485343177811456137194169988031077953150519280061784201393348781321894147136090858403701852872840923701931297017174721610120216549818552278257432456791773682183086994104648631250017004151345892966842931897439450346619636617686137811145652137162698983732736583993730944424620611605244117668029158598427432728736291358345387096965266807359550459231809766675821496446367828707051985565546709298117517346933928079672159005585169121664614622356340522877615837500596692913244277941581372765620713707289562336838818528042987562726285569838560309718807671043990207646568347768678620497240695266078548258333862844558903144362319283648647537106509602337995540646343752049210124084418278346557951845661696273590868251055232363837467732047288900380174030572711025780117579209391148264105367209636340848719445884417505192943754649183019048357225554335095456485935260592451858485089707382209532926623343971531354803459559891988697818919025602782963252637508877340257244693582941371495460432537937853512163885276756527021080571106876326559433581103299508837091955489342273964688035813768709062678687423241979447635966093454998103486059302916625243679998385430205924344872566583884810296008588516483409399764269271196795027253887712467086077844622728261418720533815803480556175467081483829414089523500106044463942913808357487820847158779357013182203878944080099297859344494685256684035501089064608254765654294233241531220558154925983370986019187211371435323806043700138859647541409666569613332135671104057463019856024189995114699105803989433427655638911936111450999300496979288648092754937659447472103268615483049335845727915417305789468538137390086749461613833575979120263903143555361818213375930516790118843353813655640989120009014592313780172211096438736648198085059788520227272506169366985743705625064324490751070896015911087324468815415556899671251502841438395510313981085839100448282852443801611456386314518236398150106084465118012796948548025998015833988261018687267860260705839968470084826207682435688590780919697365063168991543633797738395531794561284355589402838789222981091163256523199662371251099177193490703233316832533766563532084719614683648710214064472969465800008435550537603359831464496237104136855244887438180801635670477546567448968675469972312168266021748312086159740388949813851491701894888419669541397742293975600782048777771132188318420870283597987780359437423841135300249533980900454035177565540480240137089172415946054077275684587304945737739021188417631375566797375454185238769308477329362437567242238765620263772825344994749532369078719448119415648103983504540324505099841314949192254810744789180798197929596868927918362820071939260841961289243990789320674867690960391714198912220431204117313040769652661423883352630318104760697028698023784644834900721551937674478094298011552965229942299026553295394703779661233948863718598019020079428301504822714483772474083865851091042651746091888486527188799012876203764983080460790297664845582085287512300550708572335111729199441228935803724627456569140746908044578852825588993277885922739288585677271110316533010798330325182857514146327617808195382290718536184904798148585096115963825878157124715379568391050291281885112042721458472724155371691148183335333603978308534874424302615860192392930061103584477741644499833467789695941116022590167101805022819227580030630786997372157809062174723064637805331644193130829662087239591062454548665718511707452519349264178456274339476597973573997419101867677898761579175498454777717113556555459291764805398899685314293204182522628154780651500097337012844741440915251771396373899353054924631480973081130768758669742741301488011756550573011093897271002576088771464828096119975399028536102558711838501004337246821252193388706344086224931376132302929595081233219419769947251854058408519366753839815475070644951753912604905520952599742587566013311251003695936758752128823404359910184209058488172633612952966391848429073520326880822103985675467474493171535638652636139699757973870699377965374060627846491887681545453253572243981855152347831751196604265959658329696490198441789119778101543095800716126379101425849248761050725001582488609793332737063527841697785793387980084365679509414052099330358785209640490470434965315359593050328885206763706014557643170563664523160751875507204819511205784718966314936923428571133627709620789575670386372112918063224832747779190008414914550092468285796321456800284254655101418553649110994946467506601225366241571551086465931890173264637610361257975476903093506910703879394701947488278376545621983481968658659330912690701759277001570100205874049277237191348250676417676858912794243179890449774054116072685009468460928392752578529953305109576322695283550652130635277497012371766473131649980657973748213009013218652081361500239511374288434467064167778570920292638728245603029217245671518014145771558978957023103388680483431966943615547629684473534855306657894552570281128397928036973430258813261940268789383698554775233112227674486854296754758908764452827043837283246024641405306822392285627981733462720553876989728295777854202597482368344037533870183260508782291574235749337746276676277695579770544909616187695151523597776742373858195752274444311152928146902259142403716133614597161232063332203914603769812261168332998063151807847653182840903822783586907848643225951835237829720807448941390284644870951121008123279545204106433135704653548433130720006912748325756398361830953408939508168094599810043481264286107708918900469105141729191792284358971517673505771320986978236859840447331046948474002665716830491690239749505083398313471493763193302664324449907726304307806947777650494369306104818846466637859145667237745538640949931935042048421473194261409985299308840741297457616791468921604135592049374814565263268365510993834104882806557331778766740258819459407036528120292190625606483947842126548960803401604168455160459369567945642485110266158625235150562410808742686734156304224586568189464413741345868471403459079658964839250697759298547943142628185863893311867499957732879982758435717796728081607915351485832235957071313070447889108178780915308907787308668082754845405936998482070990496001720174065824316646881101049637224758843917470487431179323413445467302842788773810571835555424919443431420642464683496992232475305837056949211723993938666494075673568673537926347855496011442912576863636175462021726898777659491865226125973437616633119611868719221867545661127454264583012789987262517775927068046352243282728438326032039047839670189935701582294158079899413364820079037107018153948648294568537536753808899373152617445928592883080024840467302082878064027122110749293287728571899421839171886399085031337161692650277973291011066001373271890417915219154641137903289718582950617419311181652758569040001085929268750573803197730516802983601005456815494257588663800328072231423190954539536915283824181557556446176449723612241364530843593276945104289210027044854706588721082493962278908129634547624413292621510586632759720705913276793067709822642584029893209778241359602039469629002848223879740417869518165786790095616685039768789586083757730525355774216645787790043083784555381392289869112020045825248028670661513521237593139593549857268849808307660375521201131105528565752925832244969319508288310032582492382769197999706797796282669492994687162780097841666619814862618960649795931862372627747652589555342392845342583042333255221221946493483856637017360222398093313175902836532171633177809728001171911319405349971448736330167559342854873203179343335864907078623292650833693337814310776611637435577146464758551055193373253600964724963255501637962046328682861252422577968773982676481749816386925940498376613875393926842758667429294765420034340090679027484799249802648964317704784857929985805923574004947163335190048402933775731573072249323920321423007056035216759512382955076429052522407952777997317785834068802911892816670955145884088395354148199363390002561599545240058622135182310887459024509790454315683726926791318332980362083929103623761061108941127733141830218223158318814598925476108004909569703696952771431084228552859485453329199753732222320794958214416640372210434626737777106716117457523095141848855298564488070740605741539575700622577394441345171511386424338694621249000985126952445974838444057708333154702977562877306540686856250304464082127065391802686442298899171609250693119222164664893420801129361987855829634054163307276171714054312935951310928520943265533039864414155877355704899537698055771812719464997337151326623870166313090335195324463540123894644489632579840280980602470725279130297881000573755539665471764905261587953116334276735112002444300685168191114881560605789821100578913847259910470984549426606736658024555884613858494130459668649511458517299051824860830948516490440715542589154568295283517601085530228251913356864370260440497771514510493895377299198142827799244440446316698394463462658225879172515401664250879915144227185453845665181488639376148109363140997545844501615600275024874667694107942762643112335097943603796844703159875129383547352801998211603473274996750996926233486020224927767117204730550666341257080882090577743180452070352111121746824380384472082368844577698121213761278921825561491868248564668340457578103879088635311681681697482040688163358130788151856869938320817990662819924663540067187712939061575568267996525118971585556386017839168741962481846531795627215768840249050041724360948560443527896377254061434947538115026776407079807063810424170090464363994095832552099917093188700683804453797422715529253552645537003330423119266576291869313310566334895876610430858266890804190088690004975810349221445454489802484810275301093186796374325408088574358745784937058556806594243331522672267442971740531042505933441088686711592414331194675765083612386485762676682581623013622052302966163630849905046685318122327935871310372371703449887873808860640559870920636235530967241909062911222850901514644978968659815597359936706485164438959792718957163493356938597699193536044799044033834022272926921098696559701843534501171069006788882743582623166209722006483905088436078326532288361293867878765554145591184032922186434120277618844922116513595044053762558994036528444419879226485258387138353081085613088100423990698163289355550703727300120886451699931286484468394236823083293634407802819905769351024927315501520989875679154362206075630933500744006301145366768976586860031585517133671338711553108125935145201245361550549974885464209504672246987727521996938431034702858654805236720826297490843807269909080419461143750737824303076736032923513414247936789044224073401399888985484871358619800591569631402742098978996921774158759428028461431598894930439474322470284277340616223674279832583167482337252436907555471689778967546802325626226123778821746990608611869111413342439476013972799876693218719772118807314095665682193683388283832068534509062006390594646901706039065569465109687269902635209214477802845497646955232531906574132594818502814468587774493923771073419635418108166103806301193915540583429540490165959565543297913898665653981865104270011048898869802487591688120968278230800748472848586665165434121446647306518978846785273937401416175816540156208676889944204103331070577111056758278522434300361942646725663214718086039026061498785341669651989862675764438137154406785764157773442450473465137393048833813067569134520945665541967288812820376901325717687032226555836365880695643109448881019439519017593158034335057795563336285623667121455979809855980144519578538433430514830356933080475086041076594891330250884208230715833107050145064659101187408269037113509171723674692627056277978785347000921113386888653732079535112832774178031049721377633012497638996057828083039240613422249919906730022317545308537945810062861413589288052761564631015540684436053978776566016639037906783748669298441779060078430340029532991926517830357974663895673594675749967361649919352857006462073010355779397988182455131188411157541022326188970248391256181665778966476324610615090316577031079402235466467855770230205263689631515519648766906511116121752210832157289857825948975842468501273941845468801306169667940592848762798923818854523502852747031152239568251646545713688481342563902654671028910236285833885152182042960798342734540879851162848871104430036648588303280859289785600865529712214421590232431989505009114862520756361966815837648771244473311048586076423778519551514769622428243836999162513473071218582487316977141699002462412142794925036860318169189931885624611899997995786945082999789275519705680308058801591349733852887649539649698647811501639846997288639875425542160048142951099423974475872359340491391800687519881950191346494371993687945413147067989364117498591646414652367353441530834580034282157414606038196579630171705385373584156210806346039694464208706751927817511310238247888526563417278516298420561656513489971845069281770834161409958106906179443775682747645811256179960969754531379317363197808123206295730785963632215430429838336913702251897253224501310588848519303605513806801568034962955786161853950295395257638851656228230936818758412834288399475468441453309525757832982042965804059570641168059989334391897339921968343805228237243070642302728903688130229117220246490470158908225199079856570976178690077209675770296191021831857848215248553750811489894361381051464662895582946005026709074784342783412542271471784166472240924238438883942454146497334002916918767387397763149166358761847071592934418836957856033664521217367497231331571358130000615763321339506141801135330319915658822064843456255032521959117346209393261738398698527057508265258681325149707222692816094297662236645927897789040726171245083391150869791480759382893025967573681545921071909577998832857298134609242606480128678691613579060449328808465965891634481179947757775744608602016365149498894170518800700755252005341906174189706682130283790313051747504329633630527299635455175077041798811027904416994027089543476478246646658051432179007305896521529831474765004868549142795986654135944474695310889609939696250556582378789527911014904059862049974652127877507179352172081395786839532032833201736085857062008616238598038072417683880150158977616165955314548222404251273517572404621481227052218392638199073326228729660857914694428369023757910212087052027148652114726504338804945174060154460726834745788536299113575753284310954659409375693186920295599165862912466051988999429159132090709910161996339185513464733799245487392189131668707723776749329631906147644015739794198103358897782995422579516292140172746969858479480810268989276222929358689081753197347152896144295668655561785980465613237424459365199357663529799165870513468532226101481342240477674950724347105948819975897777789673664827232429661261592910776487936407496501265843368738374749705681812656887521317423940199030381042496181499280322451472835333258697770159711618136404235807398062589950721367864776886046857545501794311606253245491172852257363390119495268245560426609196410055203752472192070768987320956828858779792425566623337626236387414074449993805650965922040951900745957606037541733285628845277649344573218138354222622359428395706586612250981626747057136639301996418606316396902577666245319326816905275267825764005616355452472073282228323892446646204896076095712219031410466154949119487343448151900218230860894983916346794987379393181431336782902598720901225736631790334264093804345792792673229633355511777714583851799582384106141316252715975077260355462237158418099777649041321339823256571236645717159984656061397062242422648187368120940161672901869417143036071400873964802271220421589525956594861961827030834537574357225771565611108084306156259337960858657524585067143996987194149205416062001059223790354479376470965478370269467246772680992237259189205824177414971001380220664426939658755089144521052733639409909236352609756720196917872934003505258841287639420908805158309916561331314956285177330821463191169340461596585007699902472504867907831684080702569237530340228188177604589954387627000425198199388186341288435302232639862519447024015179370331627216010062947931588807463810518759585544591102217031419081836033325693012106427604678852755358230560241416422293068866648573216877887130046900028027021588234708714620759425630892596414631296000033138603614242280298694854820899682119885307896894744980121256805463717961825222619175233245417940827997207568867759169878629485092839379586353693025302938612447839841075717726555536442749347646704191130695273571949315810188816573959408154026145828196678273077177064570082722580961696037716680522019317653191290000006066705550213920818716913277102065062728224442698220334476939134861509582882087075529647820992790500461826729451043634360769302085837071286024726765923595801579078025621356612655445836713275745293449937693260769203209609158207024427930565784987404670685876637638550779622213032786134768601820786753120981570602080908834329890359197206871080256940693259255017654716286125714399472416069937367859918752445449784580138486492952972731460071817511390309548049921719271045045502403572937787811116087819026833587308531763209928249895884133070135526454870215390220290288713936817496232843630379500885428832426926330435095527404657104073329759925382302619819846813333308162022809240356710808952588624205499463868682102418870201958512892929292343093329047307134786779800546050693004366710262204339477791095794671566488711225809772622436287140720454753944890426779220975210577858452035216702190704004323358953828660545503955267988147955565942747740691921010576597067590153948011219520383935917094664802570618661175219091921065615290070911498731198344984492405760716226253485339275431054759706028278138237541345405891292785633722039758107027420029527508808232417443134094611883319868509769594516617830563355629775852260243620386726488705348757772918776854691787580631341484508704073243673157755505125832992045802159957688121651191448418430223317167805982687777647689899655594889998355074479412399445843279704698210642868831382334386607710368791988099993996425638898755609221506731593991612188801331461419207253300904064445484920202833492729460402731284281553745229246552218623697922571788402960353387225116756965256647222269561727458365961268124084875816137627372114300783206530844895162621024546475180996195965777545165389069784557475735209930482141500030597141191442856366705412296777422631295788072780549812492640246919340217941893583569322704401219449169579756970980647344922759712538905241081188700493963838307093540137186140459875844514127886656986066625033530183436191285541166633688330634114511867194553195012382492069970826607193403301557870513533212125047235832402162267338674202824756294753920348808697799123100218055514380355233343597307505702496122623314484034436558124588188624374169877349557350635324131753524885064391783524805283161131038080424425011630544243362464243840232333563118912871185334276470643297567210003898251075651754506017067075813672563598039436393311826313213173911001404223492546888524033816931141400583440287844936559550444066883761118109004072178235789037110653785514379188413273939564717360268882746457665466151252621380769253217670627664678845022836489458257258794350733041474428378311006572514620910862028600965885893426941582044624630273642952424942841140574804771830421101403563899445119767508104406629464233130587907722164987411262314044781094388886511596018472251863979978831854988252401416660085615732527111184047597091798876821446623071258741869524835762843549087156582854069967382070726746938508044336050888446511832192647112204812717193606092648476577537305805764515194628772001721695344039902928345184738965433142248664775415230054527279505179397504976242713529817697815257192170585260581362710528049038259331611161466124494093724294235583777359498741672543258548476342808683993811517083172228669022954480090392193522949078964112980246059891539520360974394759693805168807319399103903685420898454374837546231110290929505602344151756273783683505850308128793727168668617904153966475512246350048479682484283958750780157383184066646753789139336290128676321813578610826299016994983838790390488423772965773313411349248879515013263680951397993739910294582100744067786864458022714472506807030574148748720197643094383664055725132439838899597768238880138443612993121603225403916845069147166504281699459976091263814822133199645789384793167160112131146503562176671772521364838145125119197684419955102338652749622440796503100469230181786763364708453121906312341212888324419016008963767038477951732248705235644989615787962764006853938533892264651570713388099190597274747527418797012319495929173452698687951062428449447010810238242720276394543352247530159280950850583656969878722109624838193789284956666364680883026378997477199373248099733211096568999103468091196633937926240655363333917472552030489402091092197577930137724624916048062843039540613958736172588932900959760568598670688120037446856351049486563081632257722672414109139971781046744713146344346990588541629805666449050290467474702663920036991457588953965472460122260751759770038864974990448623987022948396215307368766076644318659787371251638034744296771333577935939066140935479199011501293344138142425239629660585471444089614306692301502535921525038398368274408129661258281664054437830217068037153613273913686216371708548645192985445118739644041082815665866670469610573318247152748336877068422474985183557372946889953697555434078621110527931870508692313745820237520212528714767489848087759267614472006902312012789041287050432879296727946479667017741979163791589451529621080617267520405774758982143933087815972642078163428851086978440702191666172240478326727406774812474516084303366364900774595509097134123810134985317249591941443943696579188508968615576682844101758841124459239195501809385302170072611442991443899949572573547993660498823778047687979941363080024212532749704295878005716632001705240189276685927324037451176260727533573821666206785846716921737677487124167448187898414240198794673089096272889910200097771116428712195892195251746163180908967943363385785829596465938735449112275219470080498682656333150786141962807347104758746072079618240862266328219327276677409076253915907751905449849745267938557459355863436388793415769979766038003416684867380612444391652005106397314971176656498832761533977572442273597009209393905426118702037608598653015502344969064071713349491669388515108044437769912920983453853699499342748628821717202962266795871816097165195296490058954681512882533072676951110835089775247461854329551800173260887989761028827791403921302107833580032414238432099482651506314793728818467594858243250128811742096303127992474059777587133479394823976607367746287557414117103048078361398717573514922625227646856450246189798135494734479245890531737122137362301032644207244209698588764287121358212854208848530413529879235872074579180215362371647367873494476578666100168630490226772389721057197054502794933899581229685742142642881506618411489325510910271102288109145496082258502323475939427959772979119482336533844220556543795037991287727240626104346583640341876355238259012218980739047851469337394870539167772078666673974354225257778013843339497181069548738508792220971303750697761562602327360230447172093861444335559855202606590229744641556266546081229632825857194479435076197552843590484599210750070988668062205325409961870734171249617831702677624689979267489184687365463755065293320013475744778645875019812434879336891501184094025042288279767476278275109392065065993239132005673207696865601125269131515417477035784994632471898633537528128485626260464609150001606234745725022656307919126246445679719402890803198895239652631789207121040101255231357083245972474847633739377441447996472978220044928426294508044556305052515931162396914497102172442700707697276392241406230399272226071699578055105970576199504752132180071285748923307034572779033345194684751179925829320749892039326516511461010109894724098715176402278482636939619146255701819846815878702751366047280800145578594181640143497098123244213620424206499265958194913876543843129605935970746052457098248544590166604315822988950524108432389778962883356525122801325823300270600370778075316727183760282934630798626914336083545848717924033733051944162619962312874159540567824318594661699803317567027507432638070923255090587323881193762591005287209727588152425264577032451355108090232036294334371888453364972371909755518363734066653827010218188485311032158930468252943465024481977243184804833078118644499188205608530987837416514047005772956962139856317272787450985168559628228058940833974338134832966130295158787387845602934477767565663197502794050155192702147590399693052849105092862338106823853324833826381290203639343138234603322382958578299977156384393035069136315057083898039384654978701717615577157651979062002762301714905377098383305883692461386966764408564055794734363241546778219306339420795947996616277954035446677817584504447898232983698416337054453638336781245313321438017387515220325134822616288276096842234076641502597105104829484879835732729180012743055374437481416113121734466235808819585487620630942251611362017401351443131802303687372136258696533433154219133871308579974239766689531971114179649749486909984371862562775882211526417293064497619042017318367747892034435465173782292184733681864549835884350958764107749455836603986080603841891301554260642842590794299445715977350006953861757897294074993812025137969145457382872050353737120183960071488680036069821581942228754375132061469322722647341451308830690752248913239131022474030002189457320708825397410395370927921198001154227754716089432340744854034918791925498668663468740292819939618557219008782862219635601742343607865028692490211404737157941643200729446092501935262751159975354508151105935535037988418405642237396614653870988025488088043222263310361803773362671841551668809809068502851051005211176220398417978865170931200812696269864980025980366155566612383895231935580583986087363717644738651176089026586847239192996788252742690065372991227666237786182656141530412338976376265138470520897038628148955525733391769976587973717279456109235256400529295888341267230722743056139294627521605590575624590153336688231488142113056513980053016621498351217015454321881584803980718416611929685931671034893571005451963926460449138990196106161933403648717666032250706557925355375645821456982204250638619066731375700710230461673641716353639523319907173036114845439822479372876048753650777870544341626875978014583345347769985597960712352791643631077520856207920273409593785806740049442251446993047224399793272483558453118533403927386438645532305063786061169348349848375650697184926570148464095788127948366286863739651984576211618048912180225984180065313365886188327273651089195390690239407587436879436321845117993499153765086890132520768642007922698158051523449033596706732502175224157175064908092521310129187438151250559266747602951096691615159674529946005801558264318404811901238408583138184459113731073223817208387303820593663475961350892771482424581959655916530428826609761703636363217609423464455327912485382177465062646750245938577691183911269669712463162920861005818979122238073436254020233776491893802884882289887926795474897186564133565519002527497008906758749780215019962190231224007571770364599969587096179143674138393488793434488633128519418495742521331437237868664332327758622426481151477840505938824105444079072325732957790172978825987925736966900505709787761740538493050280073275817344521623838959854035271926716067449472719776745198044569904082369751048958506283007131252574986887588646854844166488965660295251098386163306674732630466020853401691030699162467297627460095253569733221051323816985553961584565424908323176924469555911588584446900417846543949302513231472846372899433747631253483134190971777453240797963235933643966368588280671246756158289482286638106613541283766057861414584039639710299961193434876487354837390237789195074687007771614435570321382256059351368722110521901507912848475819968724077608672456512415456797354226029238508522922880453394054387199912852677909195345505030711203618667593462539594015506100262243223565635139715868828388181407839355606120972678359963496080206189752683940677710475671210728095006912808880465906099807200447416178663975682085157208482641714110761662934991609879174695540846430900181781774327734713345882693660708892786896682344452670150983238376542957210222967596979390579290102207336801124825870463911593426073362538949601005869302052267790658002768939906506468338943497149544743243421647804309869868348085632300094152248030309570217983840967229871102096738773514506501972390777131977615954888369297979539024040707739181151518216667267245678113426679519227966182476599632637358136738123639390816511779074797443231214990375628328884327759495762221126789996317472142761635690263596982984580532344190267855118494984011200530906251744293098461407731361537867559609412435648889791129214219552941403526837149738884175704829965976775113755177517663544216865702669416954328232557615889752599261206810484097181258074593320977300503818257892556024371700619463476616093485846272505400166047134313211044517844292382853646738425992090678746592207416962480516073385037696501368047642722963079199002272571819804915941356921092657217527676857548911154393754467764860799849401053222310797896962101747927281163973564813198790254668381502147650900583964309136582166970046581721482812201541089967393595223563601186064405343879737379097297005675432654450885473762150858194688573773185706604935407732668793775206717914463332561653871530574747138990573640102760975624875383052765613847641854545306054617916232009919731879428677886751422346900079088222312997696740073979802897364055242768098176786962391326327217935896378832368158425886490591775429739484673604531777134234547418659413656784296820337328286250881360962759706172118489697564480066577819819643736756011525881392525956932255563976842205228277170664188618756066264013493727416966680285108381927084803505207967379959776267636714306141746446242049879659170153808825318638473752834512705691207892811497079489763054773444326698774807451678022466977219956685413835386415994618004719722419537979501705084514423594362047456078197638531477125752001252565229105362634787908924960944527381328302155198266152580392450926071225236601334509631109070255823351652972746145178300864160904130818787141699248403350578835467178471893014124736241083547281714478359783751638094479896650713716449806028669982632957092230239604247488152606574018400714196029163944207855062890705646806189610175932752040716180941370171916985259754804678887394365098569089960163994522107457352381015666484612598162413948136162874668012180953705686397102876950229954963085521041448633583883905991795838545372267651213103184614527230688917819404982016744719413532380361380016683175156198015380712862669139357178262309251428313277269304271603259040929073699148801290478035901891852486238699855159541279878256181127400455293544688096714778587285442959899334276398837146027113928271685297060858307806499185643738905464917115768045218338205499583378944931059129027079060256603429354270432771216981610709326639538883752448360295742768311086135975321280241486842650977209375501759437870876797592893249193580395663144992853208792526262235308147394210146566990517166131683114175665354201677836934219369528162438174423925661857893580910783404854583081656099405422325650326889613495266998971731239818093627774590266290612297281621774232550735937610968547480885387674182002935503897842112234180256414493422283048457160099212271021559146528544487610794387477174353983125291747960285994186566479248067895306387453590572601438075601910685331084029776610713943372864596157177560024090895420123625997621270458575438359437945102246563965200557505732678142647693901456330707620965479713312461548442400967713989671708537741629030567348313654624206740150884790178186810987601973368966572752753097850274292756113669763389715477207869713238344183214744749746335773163775135941851413830843190626991849791726202569259380102541078249035548570014222988330404364561838510280107604012859517392725119297102765765634749733100381255249853083297141122514081737973855678241791406115182946549495239475281347076429570997900494849543979001633268081183900233767121950061088792897858061128442540119180989035959573027817579104240541274142533513644937224586839084564330515460539611299953644269044014487469802553280577972278306920852999738833084953811207948744557742319963925054537903252439500543478542372578782436987172233576994088439018648398631528518481447869879347343575126661938507316743453125752167446553067563463580160615828780058146691533574526983650394286707770731089042728967296887375016894031144341734969959545951355583600801802043789805289010021518370196937518726540910305504995299018090493725558296830768890917953120964375972345480347280758072893196406991296284298146829305501160819278584924939022465436684059105996966482479128943538444403887105800481158481038699026703601762092335377460669144487293880660848406636285871284144858207576132496354698029642893787539731719310069468718640699223457886514062810378868026878456427019774664080516072945776507420764861437882244806092246936792094170093226631821174689466470111838036564681104166728399941077305457553076933833625206673644068317947579741694060570662257322527172392897798448016458368434379539274780720961331692982819927212685912040261179099271375802867772800361204455200910458212201264289494970474452482570662197474948347053196894023053345704771184770787241438001271132766298044058278696156084041833801651323822952095684745144758053124765497843543996500132738611320734948704354494755816357236486407739189053490380400581527505586537129043938024062940042416380975033114047645006165117321830094940342123115564829848025430191986147005818402325237881798945396237811585493553775331184674329091898639247152347758049403960474838341257660809223234443212879243973436247759374607631251385599917048159569675960346260170530999944223904280521303977770922488471535705634191244696656567060038308210756858530093102248386728309532084345892434948293392667246444405206644916618304121453642256660369689713764000044102842931167235888722961938702316784652479460180009882456613186186270398452217436600342570460647107926926422132097717138442257073003458861746895397474561842688968481252606653490962943942942014220090241920631725794746856994703463064674872255766203611182569844210178878288271359567263337864719976068055999635918820177463937313138932940774971813890303439974328816206633222163963991488649517080661562972962380720861751668567082453092601335376106286261731511403413490222674778944938587389069667998286681077591727780261103050394529634864885815213931217134416558582793541074246193972177929916706567085128891714294728087645776894569533698860356193280495586829955586560324167720695882670746129066507643277093180019566596334510030952908666115615395768435607254932004141822035536562570453454350038959785240906649686912588018910519442761597489468322168156221099555371827658147336758525315815388017409917372713058635517737041192524052891903002232386277484319584776912614248295999214652969368375141638973894476855025924047481253372312485004174701129982224861526839197268358759769703539591434061601134466568739076282669261837337788169695704512882129326583154156998736595026269430675369223760135966068426615774376368453476635766992800234719080761230694338259542199274827765194024940440352847616808520181279751566926805410112948114009217841477716116150990994277208733997208736588197544849925383680836370886866923290049486914808356909247588461985808082754733003271381184576734846881775481933525907705351130416506281444145043506654294134310482347775141426245182578497648471901575624281598093250978705273578093371525157126743767082228451586789229123406451201387291291719654458991433518354522333837164319662805582242910989169735477017780360443531738718325432645086301447233528365194381824640654277185303304557174497736914799035872740983580415462058064836875166598191794514294537310347060614995224099519516002558363756810952185278335264795583271644380842376741450336630108161883139823689699570343901841995108559041118463319622171821745444266949029087314905397110312985972923938525231981948217457403151336669507487504524884160265455001798133613366483911508634056344003809956940514797250566593795439545935128233168033820405993182138322149421629682774297486561918486125703411768306698356518319832946331332120546271298860857328761127693874720587052292699982192883677463684384421762305171128129733098097049165014993889010522305373369236230238838249501681311333475893298666024173588834686601534273428133329694128796480590236146960119548697281742170850745130046062718003334178865933018627643658050738167224875181282323439474090474119592789419954372096078933235985084053700807848354872206072378530282668341843748726309444805668805974932710289694033578018471823476489833694206715938441105953563616752474958150391055914984611756656185255583412429958399065494786775786511266755151423862422542957837497951837162300547397483909181437625064409672747338267269894277862911849305589780502968893842960762804768259655607061904968398076477616474658937777913802910441419694345447251069608136914718472085243338469023705480752314554040845680892941096703278633824103818087291854370363464582653490427642396550955383420001617878416882450220453570456166745274225993720905221622138193342825239455775570549402191881803072452873918503729496196668900044601895238818020629910266622849693574994707149683797796368534965915521709190771844138875645891681513614029105858862443643889439506596871769173336701586900841775537710030591606468600359506011131605505768194804117244340628376995277122686739472221509550898459938192480926732012299554662733461821652940463656175089567654190594071844684547830958952634199580449562589803281900397378943241760326648831352676096799558274956237308160407737941223619715587731167902778879396554433709506813952851510774986467416430590965268458608147412927298543427290420376714327271627060190906903683009369857993534194321336791824782408871836694320574847242849166833090716992495548170858605492326663228887583558699487066191310571316375573470445552437813284243756793279364252234247987842486349349994523543845094520587018589589567005179822509694129837454746387732802337075836323253815078453806722537992636516269545375574489625135863756082617386961699135896512754594465534210689077183163104889739133778504777830305124899162518966677481723352792882088140295524822547264068553761889393465480716237083228057993371508659352385233195359608293740456600773702020748496897355521915400367907081371122365451388501880694881036456027263243861672254925986778282755326611719599625488963031982317904572149577178491764138394602908145584747377755705717560723497196213363588311886242033329445406443148898879618208922077582777173153129069013004100199405760656434593143475400958193117978806972455417264721689502387702211934240522603787568438139335556101171965295939147254864638643651405017442336591994655232382514023304031650509178576358446825920781429046691084380164940994871039815197319427851610176829072133798342085019107600986390480655134632996486123313560121592251129316014525889853533049389657991400547923271808265237310674603872787583039245809045515763631530602144872843780369059490046150912851094095895800274515435790138727654124889387855132439538981661862039246866823817684993827942413580406906827726235906317298750797381416875727574096581945626368889571830316731691391018333498148418569640999295778140415536927458900219710899535422075711139005898376280407440864842369789097687426645919431476907389361235239588419415107227179863944790231612825721786448811498787282807960409313283582684031022316604092493977672406617367627681710111315712187592544396718294928380273850166068570726534875580177001478970453360714531603002351022265989075531147681500517614405034470948941963650521028773258516976482737027787559657007111075008445222029185528500212029120667855129306485271817740747386704284133553016446105009515713153839413634570815643581272554248084035012766888890565729398259894110544327084984945746010609151276505365184086092855655236294327400438314027270691049524486135433918990197414343376355499897012179822522717853875192112693755732695363737639919070006897780237526252298507588961395610113277988899396587182497460072242622964474611506580250298033747153180491722389677819748063215262402776156686249567610161327603202467707005308490547545192868093718047267300367955618739526967082157257361223044296600028957973957734608380219925031640334922395389562052253578168836679694035394583447477497727171940231055788597946022641846744878786816007331982039796466519778838946097588675115756244343956998216249252872499510672644271691681606009465164259563494143326563373683128465616539345639063060202354691525088198338359267680036220303658363252615921969039746564898677078298906107404857421356741371608881460583492605048976011586360249533997350761918085384663861647572731734252319268394388815013550536216685177398622884552942802201180719068498254326172627521927374686362553416677680723825885145982984010849824220053438889415424281749630350241178980165009392385506484441747830552845019178207876805029385653984476791774056148010891317506356181828183315945239324464789100887112767665751261951930088021092279575580545322886121153791362337988288613607387709275886792112478157868817332223360315150227678590290601950806617519156220311092567615852657127627517940370610091417291498772457842718972504299700338060836836551121103190008402173166809052085646610426265130013938279405939341874999839988581295529638038472453582406509865345558877734900976007875648999984125502685713216584773007851251054025516764151401937374833652998543156254119395011856875255852138324944155432932644963066768190266501942891599151957770659030154567893716120575438294088430068116697049260058508323413391130619297020958434941424351521186799047693635841564297762837121090432032477457331004456829509662585749255620989567177780856215813140209084813741938099331647385483935977447239229343396797301354751752513850377649062528176016058271869697335528023841522273125780670430567086789314032739445980753316638854989531484733577155563933267920451509100930665678265329412407558383416708050663769599890851704072336296645605129553408012221372010079404053253811462959131292928245972573743940924133009378582250511725585099611388020471478009621918266528360339184285634151099195963779689637847588757210244010318938138632664874660475690462391669991557852847020212888252851218093144223681326454788948483979702374240528555265166520144520370118940493635337056139822184861603788871320768806163476176213810738592892743004769470610037652914064038989871525462201826007170693924022235485396904260989293443606470598401093594229310517761484007795060367086235492785486140290353191139037378067152487796271828088347761197681199393783220190827260425614591079759089564942483259326734705005831944930079965440416017317139659151046062590134066077675309088099594440721228252317086207508950148145619014461837185405537187912292349653917549903397191736556671494979149604360210460801036466628095228326554625369483418941784227480607550305514583467019512235704677727459009740824989542934384272405558964631127391807740049393271464314857778643967239200827719364321485693392775409550609440217487260138084786024252766340354147223986931250862932209614160544504328723727949523337547962991973514273044971337810629209713590317231759942196089211175422008621140031620919797454579530068783296477277991171986363525310180120653251234667716030310569172874473614642007124176038104899593731760041816047661102587512403413953147422931871734894824470810877900837407242890391617734318426716358169171258777541216063087618044251691012578261723672526502583126719744380344455956234661212714343695971534569960761856680230387667434450675040037579678459795131816138255970376274214813933922330223136056321441108494953291014124686170313863676152440332527531082007614831841985399480309101717038843016088368929749053141761519914508787472119166289484603946092926732515810453472026444964194877091900935308286907171097612745931884522519767077348003698540228643207055776968350897026460556814494850904565322313881516762345272077040203030804266069560146997908518951853681855914594123050631878883531805937857117681998844853295320281512019789283663238034000105409794419296660543641759044142151748303197918693121472491112137559485074735398037441659624178195003816693550331147032834294743562911239306088758286765050237073269126713631364101316723290547534714823355176678287673107943686102566749934776267707643440174318546851762635577083285239868258342508134983554628304243213221251854338971382167860530388758474724174895454490061810985501446285024370889836544670476924296362161488516167010696639792247597915859801905904656326312730251353596089503675151262326190195670686982469506191585157689043924768634701992080562006667418927048661213653837867833806729559556970401080548228495505582361115692706783703111363253499554749322840930539642697606924276639116322273923861253769990165076221973486039476335786007702461275621294849992947221189115260608379428589130849819618424995718044876316730648847431769081100426347052829508399205778918147767824946037955863405967063402917213847149618871538525304945718803070988197443106097215309175167395350812741178048823670454930326596004634485536142887124511784522745682515046788131175954543000243599391438632043791219323421641372632721487025344031303746038304989739264437617036397116935243304740058164927320636827480371303874068377502631764218926261560655965999226221946086130830905377797669157297182105141886304599135139116590088626816845992447741394510046771343666529112874655123213649295276680652656116265734239237391387336579412004294073826842730803922603980475476052562315818129311704407191430146666071757833397743159122250125312214746655210394835872179301549416529496620644885175674728779886702494232876211370999992500905750066438126949360585214928928506668502019811306818867367926339617065255456335407825241156813798071942940865544979432123076162512467475009194315750539600361408558919334675871665548577910589761894813465034230369176797246165071160958413903659562463443786549824928929195559660519535611105549141035002840923994835409408795132325833115047200503379001731435120909334963701433542363924493307054839593303181440322612968339667744376072412114919522657207478406047558859200129513248822255465980585297822287675581427472670127237207477125053513646063160222470077383654492281818928066967880836924434957712100727384520224490079171207930522543411962408778523898487164009561826626968376562828012283662747203560876925666801736009176079846212397393545264731118468533330104517784391038283192446104005837032548217618265972521950902897647939499066274887558655620936261226671951246430800339361378575220306508677766903058378367294483951432251402077735343931894889498685114650060320924151331719256282030259700225383808848163896908785614629527217881266467544456605503040306636794435430985279283460073347652984950001796034636292650884428264705936598005969107965935827162856438163415989992952691879424807942203309063937035638281763786447897817866780364004726386825146122426302650187821366098341166772746751201919120643328567574021693759512489586022850672623140691933884144925288064753575690467123365787040544135893096163543036243563304154770518218105958179586463165251831610721260978025530460820592117668163252956126469316313217942960095901089738290240749473633743676267026021908090052529062386695162383679343461779071747867018378447833765893572979647539399795421690442444626270832861150628164958271198314224377159838829776290201312616502458070648436456040350004792008146498977273131538126266829470856663593797422257522295161140032145657332273224608758225044378743304294861287250114921137387185603314334336448840197246242679263186445310185541444748482493436851401637371281670495668180384987536557410419543289723775639839107208260592231309597062587565798760792475741304714102646705354287145729060833232576866923718474046959222615028791720675780163849750859260874766202612840864002970238188299538689744993091666556835428515701157204332209620359128437842933181642628866094518560426310143037993162841132381878847736683930024826127872872449713970522211892854787795004254197421125202680483996572201010955074463365788780251149354195048502858151114705842079266291462763527100643427401119174353752127842188496078533916822280485533061871290816974223118008185268784989845645839728676951940527761752867311698543748565495478530366399654184165794452767628113689007380841303642518905134927695681797305289882320450563355876891797013073398194677440194204467781249049009236188461592440845692706779240774450118116503567116559986232062926902564885267614601699981880014558121090878910815627244973914249289710104351535625919362045473884359016402023680992763290102182586863004187725680712858104100961177780940390931506434298600244465771789824964186417548984412518927924208938416247252047209087725069246081937355628120961188921215263802653953432990240651160141507840764017283957705320165202098125448147337879846415375411460824849227968999526085540082781262452475117847554531493146665093259168066110874127522788787521769310619105937764812412716677749384028785342362394723438202762039466135097381611754647373016641255279969846103126837891968282760461832943212250065286470446881061129949965522752992714242155284996421142739203721273925675415198760427507797463044951645007301212536039773217251476619135887936850728189155577573229399514118039777568900535449502456256611359089207227250624545494175651289962608405566023833237854799391011732671979014109819474437192905794462396018754037471597375899465824670910406187006467896671724862673432098706244257778079956187457336845283273647411705076977343209385318158651637149404291757674854122404620769262553540765574206969486709915909755435823660776262004149782403635770519023487108209437629243370982960646407276489018685489298658699929975303775249513166050437615751189455642775041234824769132141271528685605165493653127223648247332631568154528555278806966292395898531020547029640551409954544573555797797498064013046026450068709836501797371254806732101640390548781264358336570439476601993682533392006407862172919325426024790622957607138961452413447867653495856906194776399248048221779748293186394382028259941922559544179217531482381890867772019030077286701295902805208937130771216616163943581172439252507733805342127066053451569354158833843165981656405361288982412862261658236183221315060560329407397951940298281334962770857205550725700519310413851063486566780543314042650799911626429705474471839282904732254213689692161195297791853542511582178236390662836831690417162565526969057398790812812921614547388158319983519303378640593527886752660553112696320763612479419612850247686528677028498772179331962025496901679830096240938969765709946936451610290443988097780797949979629347993222437001704174252787835088914428185127636715742879009100344169218722021651096798395570871218291777633625436077789733524117907451872933276188573640960551352729461099152195543208293092863162865824981238538017278147866588186138716293488261851896563585395815203086250339163529911424639518906655263079050309466000732756281850783704397251236908318030718260455376417673650365704081340180741988681827219448636370477554026540596629110716004958128953695398432307697389902722415246376735655248594424215790161979669075028918297351319202732600318429778607087726792508765398559995311104009991048904281503248842248394937796360694683300448534936737265229324511040429871288659259463381005044280131324300630215949579561277687014564432949871670716834368159012589990727667148900615732783707623969028522599274511204945425372251299115962396213059648491471096825895488439655056516354764055113009553575860829100293760183712281874269202599359727455283111788989554146332897961812889738199108040297166833130190358161054911608141417875664183249971880532785277835510231915603663124090384511597012852029374637971439355358314982224415755467567609149223281986190028091664338120297346831144315042767641600815838325826529285629379893487611016475448540138304566833170497918037485753780002477902699949925624622344167215175996821887553543028268766767797853742039857566532577977935624123225314889334269940034745616145806686749759052061129177383697373472257959700976192548457421069906992071066431897812462444610152569130862939176069440781337451877732763481197225896330304070311879671978110375197406340779404166143163556512408407816180648214961163142281677366873538780421284043297587571380554204578885456837672480748309064140128002192780792738452315060041503327053968138444686905312970227372131624520681868473668964597456915168750670495177106246501124893110160084594865163213036476802436311934546731444408189382282453816630129328218425979837794294897668624732519517348298262337956110427026406682598299887066908820654552805284948595909438893354791028704120942730880145698356026194568326009230413791187781091722375652220822204679225196255315489624777416713642715817112349965021779837871973889951527119921865063299785180723506246245496942467893889970227284694004795258445716057026652654222396679670013651908264895877266614946003609571279470033400626898633143800621352199086237728257802870868034313287043690932125911284402128267263161970649893567105277995169332588114991858723740126298241390304472348146691654923080597799113880643672662223019150994383793742468549354239092056692357633451444948899968354372011190043810093310412055819330064477413856800497448747998304057694244004187989182111328986313518455950528741752105930721179221299805580087453236160058873248558092990457902370449072003239895561222376939409582475845786231853486250267602384582959267330150746752471478589853513860765543191442021263928642570227066588229267588233154713699373830880855889254144659220979608466224525363554803249645556260003497403953536621856781340242033365898925912890718455442182680593062232515627419539532336737222802833705152119905387766134430550917191866872855147370941222269628488779042047966722476361361993798567728029935834581346128934213131342080085419172563035402737828994236563481066439804562439335767114727273967300106422873510870256128442424424564356299839760685881323030268033656842304745744185463285037617694224601167027470100446541261898251891796428111576775791130117763305725409151358909614217739095630649104069489214984568543165451708360886022119146498219894056561470862586610938421330462191691866380981478480853798854022039373290079981799705850971000687504117487528089876994355210088365125239593735460154080658051257986882880593167077810066664403442967213543211067848689573395678656713619617109153332721179740437255467176301530621033080831081222043579699053954663600962162193534046691178930625334375711761746061597273048788690012501965848437722296500737316129030215869277571735158933315347810107114555859440486209589052874812847145060298711202511548191437476684659130398352408933607811652567007624872676469991835641867628151627775151124173546446198274895432952676246702388984225763488610611215054502018708951993071491859082879487785117953301970395744792900089501790009796723751026878131838482502976343074394738221064470962666739814653553530716410388497697577084779412192178232574175661471836015008499044922146258488537793822650382800700480743789944760488857754282419474590083318330458505731471658923952342488604304853932510428133936041974698836693451313738571229123234518401627237977149564589667634710268664324877933340200653355898591620440484119406562564184401432543070755318837151982696039148043021572110624642330922532314902954500928497817674771342004983697800515415703345593626657361456205701415929165925944135420927735804553831401082949038431889825264994195262515635820478636671086424486748223579095864058469182646028405706889260985718130489953142337354524271255966769132669808536188178672036235197196007311049489752789094884751268594268999108032182436800174016971061278242192265115260071600102257355393754481629497680539527870645288275685323622128861396785887133588024114695299563558050082808423386849149484054707073935332405787004111579435435922382872969390786279051136463072832098144349375863587558895445085717954870864639534068081395427540076451447511567907446737378615583621221715125434120682551700443448099807989749754373116794613802160449688693994774220565750262225835761707205077836372944247848213699079075249351773114615192623974306277592034262542726067163366119056643291255379443659840256998157207807104906181409580471877907457164184579516421298394869853848841308956445912545662714814427143435323846060515637739082232222393053741112094275339485939767682250631852367131547270983563783565638275089701477357516354673325275110314188574149402932339245125229131130938024254688243213197162593928612448789591118715792311869792443813805385307190532010796713033310957223353178791529422037202202001700916999827510491758376400195866009115502368243703315780023692783381308557978419384252939541098804446825263253899240774372408203341701534150730704192412562167375337793474589692615894990343623591970451924013856820103454789199636780882234732329720270896594780494426986375532114356968266891835811525967930418654864663906141371565016329204440893185939775339651648880358398935691320566901758238256716111952768468906384063541965862847437720646890416940534589517165077769394414924773106971983562364215018302606826680211803170167060475402536357392602278182156037612540502845942444507440884533280648579029371781852489201026116874025313525107217614816252482059516562139964921535534912617777809307822190020825298337890565951077816230177470094205074436054686480526072537842974442784395758882955285208171951907093043133520300603815671001616588274337784117015538291006416946735476359426984230531502572446955341804188344024503722052433310827839354107057508331489257713591127252566558969200494197062267820140342140281070588017490111719262938261658039237765342933174316696640886798903593800294717474060583495211782483710796680008298001845127436735663123204716586800955051151407047196490959713035548920571305542929250889772114392726913100471108940421359257390877238834354822997620556910160461448446958899956818129459315209430164750342799679726465094876325192256412328805836193245998324833751651160124552237340260844008794200345652441561714783525444492207263780109204251875377097367884590089486938625558067268492031831583755852660229931709897451130651696591038077691525736059983401766381879027195730026227821068709160120762808455857399706103075114951028420442785162466514940447486164335099025745771565114407423460276742258743527135721775403119105251510750795492834353403726947216911624274327425748620382249880042662022990194317107602346274181845638605293164093314553767266332332230615640265927982650293983805433271507100373123864254896646785842709412349047174410861341390236310870667266266448293681010483682198589525087904874516123135417625327735311207737816731551838945066525216716313945004688689084389677193559587163019157361427456632738993117779517511590566831485249966926800752256816877968901127548177492295580565024285077051506911288653314233341135159156592095340636100167262381665978008761698228095697895849669538982808280125712048193578148081747396787145174899030594156167028658665705969778945946139219119517630025550022861022190598816405700185017188997906371473028031649831660260125780290710296673937967533025358207514691821508742587490686413534035677077878219073975377781426532310344988051379631174318682518193952192469354038875629700098456788966866561817846613600766709108960264146859557690474391857578081957978884584722825270284757370041822799035843469952966779768147036855606052420142473352411961233287877239400066708026789881164019436469047770735747117545417397716060112778907375823301669071877728007914266425908102685704810566791517478372015563671228183308524575226055801337098535638976432782563658940114330080528481548618888024272884497869849036562043345876314017439814590886175881585458445668850554208365266463647382020149462636665719715065464094321724471588151821701325075719808394046496534970308552444487872294976820528295478279610912482777131549478404296830957946231191517525709153355569961518310047192501436196654049744927016991814493771517298506314771496098260914545737648415529588115651906774031419670353291885251669090101775820670922621114962242315333949572554567943728405539640417603195466170520498330205140751830343698684362474786803290129505241533215090044225620674172205891111788266665538565426818371979079328484949724192143443771415557283086243940523476436953085112913775818906428078802443364225951409492650488177636373457988684124604474216225425415919628534063125264152307156688391494833822299059405851369952714211059121765741373414399347848057754911145492497447886565052139030038670143790460565823311135338280223902283137211532974270951239274828361188456847926016119538023604773889409715699011621789847113372371498434333900334205836771077417877070784801510806149523990212820380867099325151824167832546233690160483823769532274572454706026252166022666438824174230891438439408808719089744238764583355734847345146925958713118827470141733303674845134269076212194738251384570455862987571041940710391716423242766384631138977134079857085929187714795821893271645445743305659443602439588007266781006000360672137575982319824403123543360693090053309125959271015818311322994970729424775023620704433628695343242239712300963238062211650216053646348813460697258302621134223682823690527700925136435777473789462902335128345121630766349607768108702363171067009415542954441423825845569111525956816426795774199953390761223000513724772356537164763477926771491286142828629724239877034298200975312110399554499667292552050607418597249658982846430159754700155377235335610867191334743094847274147169430514026701254920434150160349877290840083815954558813542261385135132163339827493509541963606926879543812277315906827652888788280398147614946467520650748773607563338167016465974926339246109539880206257853542864824339353066595990727164940225177098333673591251066678299918058468047729083560321917437487825602292871303052108228750121363002957432055482274630054419362234938109687873280820783155632870774441322624052454237585261766455108393213621235144186970580329577373236115501751596277026285905146753992284297099730367775017847390591570969274189368704513902714316589580038683382722970701325891029967700094204520388642177014824374884001667367654178269778309063867334249187165921355043207030254727042905604611171709371694800835013919800596795279605417596997798013616332459726615198894599789868187223758676278924060831453852406338399839418706586831329887990671759304490095456446245278845743615243656872707177371682292748754143244429853246951791352497544205412625922053639077570126095274183585641245162751223675048109126335366241391796705874690440651672265240359387712689866945583565804011331506464513314957317987620122202101855896111328381621619557065855824647539266286183429147360822459085558870499479360313730278709665729005990458613134461527034385864604970687279539167131538533549409294467753584858402295100862640704085944914971967093104655420677462969064406532636835103196152675302970502422863167732748720937896098920663342079281671845260344012609683668725041200383386715975585584286862758131535368009017597738057256867067726281680499131517199448444590221589123229253926809877842626245835911387444651127644690790320828859216656924234791216906248036785769837884367767758378502703423097596187666258509781075876113936413823516133284056849408924471396708942012050820405016229066825333478385155383941359862089089626223337046392693245880695370235695964162352196569829697424574511469839440756366532973114426360048324247946432649056713407460078813774953344009023240263637082888898123820516715970771772316058426208945648809089079662654012294616292738545498521383066912354465088148199108894343039094854645368609200994607735853743589146694084708079417808408934070311023636729471224047861065202565954000126333032419436764054536449341934761473089084385864180614109824002957185613561872228640402550921788785140405345685896842934136727603253089918647373524403121044736910811926133278725025437955694263066938629880590701150169451072952742467843320893122176099962634297993671936188919519508471343079664163160715816111596478635204406102065086339060714334372908838150846792003893721050974850951926024493902048061939030629853442301187424267758959309839479915211275060416250096757319912664347063415847457037538798553063944672813188678047944785996290331916090207618834962130883196475947429259113384892236736520656232546270078819661488551816967634831495306795117838443638315881125122238839034333613362536054174936161463305895932018105370369589375103462310377727345944166965487302561057801156498488190736598145352522816364893181097180206876642708858368560964720088654783823789855115774045172670946992952464114107803777291593796049529877789641294507708394464438348605528293369375303878797909565516269890592455396215659256599324055500078554792866689341732532842836561820966242076759160155590174395501212790075764852446286219344823413577426233936487420534785392568129621547746767129099772675654067570041201169005255124346620226232392994153810761215849201095176968420040938171445475254075430215786751960592668147655591999317361886850986444861617600965039451559120053066397402345613773961841139468244777946619456019161808165782289345941083978055546953302690940268708254180208832921233628544283840776465044452798582490235953772333456051786780633430347880441396307032337613111650691608635522197034797212272763729775875199870694216376281112917184250996380717121693889167475339120159824108620587267424109908445261835451188999432584332867314799155685606989016467901131773813592273710496565150540961891688961745834449392189269870701093670676027207560009330608966437520060268307798296960845320594959098934070511964677340909635819621253854790083176469088114727280843152400510470155866598018854316898283926213940813054138513797627228852616106489032476765106465990387911791754560303329144782466424954109064532560206199320727994996577194888853500281491742620628880950254874342155814359131365719583553638810142054671332095771013140614075525810105548316710857772197142779960600043310739216582983414234019549770655722354255434652675873591184172521175539877389005239856441150694118932701694225364427724445391887503603717882350093948695714629764946027877888385261505640236177967096477223301455302957287803279438332707830371898752912603718759001093763133705443326366243425139595129503407559172248646716181147313127562634338936567912630119482476841446124900617664090879101447020199973853765972359276846828431322701797606901462926128301774698535898448056321411860856290570910779957188466153176438857645559273782948654461463292163929331650881114130704942086168164938624471227643571161391747317203777582374081966381999320228095753459367918049145243209748354195813552304635848463586953381345583244614546931070211674241783339310058211168230421307020323767197964475586229341115953836870962376183898787791725902741031469863905494401332506314542540751301631095686643111188521907598768617239162798089535304581708249707349858275919681891269340977854329801809142739940103859672692462705182454421587621354736362455599584659298049410558757605604363707404017960611988958539785306112852819818691408265016381762446226120825933289444364991347452755168656554529780626529480887021017712525917419812202420700560882022291664432627142756330013759036157632036200479872058790360621730648869084496689513850236821340764967466177432172810377514415596620383646305113393971837915441783007912978253100574714565791256396168221365247095857620804866398405675653543488461865718610019253871933356217792653249588176872286544161237231753042120706336566489236127439050560738019958728346579105576685438979437341634567904166715541486179939452117809435550074779006177794597102712614315652379376847046167335149772062527898608951603661186155770367202663332814666271999157937023459790853652720206700830956219255794313089162414309168855086184566987023599708066782311141554542745266093189045829146109682531527555300484658610306119860217607688349729509160533559132333981664637760557350819736982508921492925463138397976501593346685834158671471948980965045025324752693753708935428992579425620533665135317969246846313123221746216294055978503144889794851074282369950404430656766939601293347105425182619582014862067800298850574477371262774923043762993337390475667773081784990826825219799669771287084044486564460099314385194310020542471779190992024885449121269794778165665619791001785203322060141387389555448331409786137036613267850916157677953813427280471182565548737176200184703810758130666329341888503004646957539062427136976048785660293484746836360797851986131380367170907057216808309902193086633370577892984184859998993774822966749230867340145460662817431419036795092164405201941335442744940182690674345652293918857823982151038526549215242051573885302800042737661055661924951491637784221096130350259987409467999520254272098044956353938931870782824284182049168710980647715862720365905232941730480240029437328314315803274850433003606694580394698843355285422176605616886625219100174083252836138056910926549363483122578885362472683407319157254468053455736389112344311720050940120309177451627425317590215533555446728849212524929247240155118134403968632007716878578193458876911492243315046709457112479664896508797240009269827308369799674581740108310454770431392286500362459272736516471290526823339469916608629323815592690818621491161860878501851587830186847462615920716737299629342637681868277951317655863830184720583309291916613381290827511118655276051064228563943934517025704477879278296245384723915110582871925592659808940738168309010434585673204607215969507252420783108886229600260354415942743558039986301417350143853195794930920800574798380596071435096175081723714081860971695017513728652950266769746206964231201312900644918232511801196738183582062042976328644822530854298471281371025809378605259875280791435783933716127528403657743384431400075127446513832929842204071737041719013260470277252271351652086642286333104928858711083655093408853923834635536683853584717849301295290040424875215900802963844514343758015019070007521370842502357161807611156886088657185200795146168707993430385175133393788179109496680481117369635964151794118320216103159303424843044567089179499231582218587090409827140330672502700739229172103721250718609989478888446896790552801381526487268147439241224385026278630126794962998878478751650831475154115420758927378063191882222988286912774339509761597268601999140662496308741943065168480300466883677905358061371270582305269094324101823800538125341971816275056060743034644582617583333837717433751148299342067618061021543634827944386806815877171514105070815510819288019424407835039530213892600106106925802385351486639218667152295416154018402890681371484218141092441816804612427936404511007228421196753412829919366643348941274966160099752124518895547747006450497649758843980363890099866661620795775814218315504786602552056620613004547662222714367332274328318593621461250694746376073587915165808877387116034385499193199897303575591656763465000759458524986765916250012617831027884854164720561966055053913715291531653058796440694758180465991189721485384876507401929636143417151678433094381534552966587297793887513984180728530000447351924163724878804278510289590041578193943696219288966946241503925263836586919911816482536181299437321192649785322564610692446232221222009982131919214687787896778197710377126673253439415752494754428276447112302812799577876323481314548967936780308433847045215793960154142916785326578554074274948908075917987629112137139530574060158856533770013653645206893829955717664664320733972189542562472640483417467683519670063075500069722689741047803841105073663408085444260779778655196461233240119711803124735931957367805801578925304084948464739423842746552911638465833446264354721055545024720110112752955888501057109155031829432682380291047136935554313931705194674686645201180091288887230199239825483213339163294109645462455331470438904829870578486018297662026609622044350739379909572934061924134935563928322544441664586730270369344081756544502877919098793275652975517358786529799965761029234742574311920382938926885943253430632773288931494142178553658368678677562791446092435823116291008575179776193328141018722832247534082992607228578735682243751271197248853291310141044767000546922287980570300928630767321397233596771049561946728159899443595564448715639221573463283725717360201311342579159834428333966390229633024652703515584840429110859139994762559518646909375463172736562411098556754118538809394955371856500491047680828520162083080824778636085505506527131659676249281612192078812922498804194433309548922893239549486897328313710911095314562697065587372427956368735815679021565539236659721142607679587219177849968793372095337114631293359230645787970862522389902226538920263655771929465623337454062495770849740305622469858039984458433671113413117318725600169510933020334797115250777991985710557915729318857154326657138939560763315125001263305064090813398036624192922164384825657112141789875728151287746751206985792256352116591114816758512566664994797099115183063782995375567901135685053383484441538955931234135073345615191086972096620506018996117969215356351464545275332348462865682615154080548152132359461499558587999243462345303282541284453149875202175597041562457692266238909515081515215125517351172131253603676667800740147292882982875833224381554814417408181216690849602416978963014238455241173086309127949236117271128362329510007857207870830826497799763743813501188371036801031961616803078786212390031221553463902491340976990842242422218726066578059484095700508597044316583115500569642350868187009927805093323324908229443317440343217783222251705626392702579328019909412704552541644671433772155727103308245783070093768793036425555316728044379834329832296447572793566445467255904681319217680118555393499230719470155800509781082267375611988355642294718612799985928214672618704840635856086156672523514125544643611243143296190368938095768280679319386035040056724500984724586219007356511570981343306876199064134457987465282544786178450121989398694169256883804810871019790285535742674967748398412113200524938448540155946265810633338045779822009146492154812629683019580513042695602218414265140663916577441167923949554560709050142797333799392470175299314443297508308394053330069212689451961366646627132270259377033085818372117727847632071486413513201639932911216286696459036798812956341431245392935970517423310015663994251438647066597190267716182403327354599801166963313523656736675376067755386927012348440651442061462051516715508695944297646732628226802324640666671634287213535687600028417146072121719884681363843166482212209959543645203031458683748466768524746916546739730145228795229947599109946644604342312961152786180624285688497014266174349124779935345808018864213379036389303187795392813102610128911254675418989981715083277425564954656942305667577943647391024047911722499484450986888892433279903393880785536690189064369990362925108028556882614384144642762220434699001520781475847577785717556076413863275624826976009610141712248260525449461317758689054392239345521100921693394900889838922658312399003012325357368498746251777902163603706283197144096708621305516195616119460026291369310592363168916551729425998928440364796757098778487779734988340022802911779514609733186876964775487821123305270564211225513986356029095480909172238269751698135948425705899321766927431646904421686884743383256460993912831946789832455987026716652207204082273358245058574991821426552321868323911777743392124220287165209683927965957412654738380668675824526911655508070395337546051227153153807834492734044959502111997048712350402454546998265120392057202002273290403067484604882545181501559013601409241184015623492129434796279628627238855015489936606324179048759157935565651732547557056340469705826347811179671350331119126772534417227309041920659066601785181523495265859883824982204634508398008489740894317479230515670948376228490912479518932494761372980046171457942145875328547023350286623267025269132992497496092478675772364576979376026098182177033993972957632054053046519887714674975606599144435984145527990499720865827081230047449347320017415484348520228295665034134626523665400363658199747952613325168098501890084658016488077147417001480949025369603999788523193441636990863805612525459342194579142621969007483556417417089827523055299549669922679759080211103315699591820991760528637328701589475333587373130427684073307132439460114592206537945319969854135142505947875261423485644815779199247738035872554713160861498600817399154129142250162644744684286526076333001386108733331258533925996120723272550524576761469875037225416456954094963584871177868291794809254415093844116261582020637485121245842402613124084606470705209988738909112222555066913606638344047414706690458956698865794878529631556638764783611980869964408145040846795132726036625209121984824069482333987265229051135246171789786461154281125238413956403640091932775042185489233857836196231042442592219329909874832830312596024520649360924257973155686727488020341644676075789807379043026807409753674677746166961883608503497847796339182966960261069422664138918952230537730394054644495741363554510300407341019793267614736327749516197828983753307576074580980293092401039147954148079751054146054849421125576977179900540203016807556132881145123702634506154252871004318439559151493688071971910448257661552124401763164208063100263719257999510379822895578796681302012378999863398667457011511792759472179389093076028911123831097554673513812521596936905149493831100208454953313861272933890775501417889066123145486340552595651629775339609006476077005347146197135155309116504303361699043306536976860680246835297277398512596042627379291851524203059366685703736692286813424791878980290910889552529220507932711169089305261604104610274650759893050679262507370325424039053140542736679557620947232507670403027101590815564495332798997615109641148008205229677816102076351190240279610661207238011400070331630484995644105920573819025532852301464295087242852612554547361095493229731051393652840390943088375535100115450078801073085237874800666338548223504897639715757064249642194666321777349048459965494642852330847622685777637385973432148728332451771882370300366217774264508811336364903977885132265084244492499217931132893693241414991961063729856290325271710834729425533450584832921656015023879847687193880972699363937848524863413389475330130058307102674287685714563093476735436858883869153242871791974655261104935473994823397412787359539742822691654738253817814268249333929359840942247602842945458466366672776508401117625345753363831055403706974072781269987910061834909559673662271055511327862019747355836969458626110873435957019450056011387153260090111821462096244789347275494444039162204701903864262682431161032658248774351381886957546193561443076828679206538952748109102441845311100741453041254874536539572964382923790562912190457467431117214976498724316937321476207705563875863027089971742151342308664155284375029679563401349663130193088531412259177873580827976744587871017831937292783903217626273562851964481461812983819335201650346941618092484589091490817395730675203762917515128468252325732551978116301172266868216853752034993537060487645582019535989637810570038442083443939222160843674559387233519290122354679530610375062706709426755837470723305203503956954139999509334270389011823293530564607535205120571874409207866992708604005710476481157071826042294089779694696498073056354788187856070549460991136304581502063064037862144556876065147270932446763412101444617588874773829405484963896055814215769631241250298940359277140745700441401490847063094961226144187884871210512785539431937423096648101236661103584406914297561999919074171840450846093880503015471695867196528272404286450486864517884077858308240234671664051457287866310277141531005547328743459429319589022896644592277802278938913320287865348779141720749238942486629652634753422552807821205488097019789737298821872906815101894680548590945231169202227260967698349662273755024164512594156113549438232186362458987813210506895418605265594975365882450541215639071413615516125569580570246548753941336687282389757080010375665934035707311000570405603943126984725160733651860485313590084733124084723869426413508514170333506493269964599881003532509844006871688445014707238057031065428661261803015868733393728453533360817272092182393113501366379825065739323720655619360449680205055990520655925030815198237034047148897817081413726893484942131639591368385481289591228349378190659760225209777564871089057777146573025859095837467542341459773451448968144143916215652994832648808010465627701165569199720600483068478698405465038941998081410408711952889933566724019110222263741822083037799598237340750533124264336608373278313347825151768015067640259972038449838679620717133615076477184747603728617827144063960135858629346665616216108729454507200159049168981381589363362010353338769674564039068570077514660013634407041934039666950872780071188112871383021726843560375915215433888364094308930031805054592554659009257754598084692776025464284081112098219194803491258980840036697288615864421104223952494319228230052683186224725654030928382147507868443733191601345347202657727917639276668717471058820990066236058485756084203507797773312334372395744928013037446285876310456185503751895003510226711473432520256870481069677804668516641499552248479629897755358455790596994276114368200859586263297603887821347331308815188865243877559275136280800856545957457822387923642065103632719777952515983277387292696449399177864471103220656343683411100591897718166897846159325454708618853802543908677254240419652061517351861672540830150487119065822416643372792769813325555515506040550409861486462806547157384921284064100062743908088582843780594194756432273545090362941719051681577391969815063957748286937453883712294535617561986567797414920922616190514095727669300197120471812358167147173733046797311455143585312609916347020790097707714144887909475047057945756093946449048147467628273747664258621921336485323847066529721992232489136329295740928843983787615435391768217865246104473426000329412205105721924034477917571515058339448969014387946236442109058609186375825083293909521739678245361759086751427832208863957444818460423209722886585823404109133656595195558424091653849494756358447751512757116674774526601556148637648203426895594614890526103030230815167839193089835819909162948437222627419294735704313816598664169889216751932584016415499206181090025557427622406838534107294052888725796969476810082812256342435046046589557396573938182878207446328501597165060127509810805688105326930878577673528097328435109481372444343458707006476529319309352507374515331323498124583502098261697989044883933340152653430315536092860082591592189279309293192125752078631276034252534772033814132631655104838114531007044519908888803991949094350114719641664115989251083647881956073877183017082055437034150647942235851089655221112617632222455489158390455976905737775997324168147092082892581784414931047753696761764428447704787628070381541432292627223187452726207669307491327444450202280419604597959259436061169051226372207176951549544278547820021763808832728551654570994462818989679153605540978258607210304925843844610838370801352684451417130204148374252608868104121436142006409181954770144212750213502840784363600819880010279156688845588281788256890518148433298404394852616846563886377336815810794841685973112169546618072946058152610603130575161286763647015405112140061819918972184825428430879716548725422674282959986926459857302437225012627700869344838168851572515993568824458032607409745624620066220463857708647710569507638101658493888823894487098732964846984294503975116715096093612521001919180838249147988884672010856936459765270269931046755594085751197100531274382827502653844961958074144099018145125231360144578536766657819524684819291078527516091887768160626247495161844452082886174584354068234487857611502312910417537091967212779018345484843736620311411578748657616793720718052293632810595118422998994062715782175826648601728815904995157013576924250915198357860005762492825228084714380711511451144167384355579331629226056982726239116400236374788327708686389992855322782729907929818071459670533268474636413111311071952060362946111824781019077942758176551005980860533641849061063478519225384864928070730593685848676186210835136148558153585745081828487554917369877633763065324634901294113961216865359940086392897247877452036749668311576419688676822423495588736454405249648826633840686257648123952496404638160286284835447729948972271952989437390625199387217142396586986721236827540187770655882036035286175931312275341826939544892173383100834896800388564465437240953180660308244644435778260559090617734719596879470626697548472872263741051766002033057238963194526464416350331638439482102856988589109211232180515458857019628259808313696059535720179391663909312348611958105784611728721260806141017132554530607645012612194689401916506880632007571181092200710025216793955522850064469379055494826627620168027979748602933302119556500732396684204350277211861413291555129677302211243227330319757906671220730757462731157757597117874825709803012186991914700500730914264338148299613034805180459006148338414112368493989874404658331626674290327001426927842537715085100623369016341018679789260873266987429173134559391649590775997235214328044560824176729827173412454326173706269640586739303977614985429870912101707041655332668198754873111535923518695349339887405446981473494234407336725981809863300872723217239672602127036548315631733529704481720325752678124637227764808593016485732603901632900541415916307953227597282618658524259287635561551336089498154746383778079212794819427515736862163658041119845273584678755808617114169590128235775458036939003887874825827918305671046736489694640120870582061187292634460111905086742997282686919237300020162771080133299265270949746466020444949156011244755438353805971868920409356197587743032498384065849650404164368111239049116526089298263635216322909184823800851352630785777365433444730402201571038045444394840225850393484903793922857379170995717561920595804650093526278433499256868002791737382213669570824821197512230078848782349190088227223362787325277743379010630568966942497081561776241681084532932814243695959718242529588510976174211563456786702779783440607951834488499487604463915395260418696972331175818930075703149423447479387327440260921825085544589669712681519949444105240256214027625458797271827037353793481356265556740663708295436661003106120064041806159193728972366758592699059562241877737830523442063490814845941846487799684161748139064988255381905764697049468333253701369003898746919281345255496722319998706952775403694321365685412461377029144310224527956069761243226990754623701391258959837424946342366677361772929836883139156521782987475961932086243191693910611188429917186187826975735931239520645527240482741432906920273726040976241508245725540867588335651012054015188162092612683932713347076686216145867261318744728591839855765108770514043398999984603211026279027281397108811400188296259148920886478302359000082651593108214563741721169666248513039862281775882519392655094462864412583774293178982526156684840422707318270715576441508993939244165153774902892840446852546594199892090145101463491676934311695082886613044981159888976375112709023924271393514336886904409931191789386817370115835061869982526985071233425756926250443765136004273856082498590834580458124434105185321278799922397472074093890862543017102690260585997768545175050172596931274732911122244529418849596896499329826595952844260363743457786399558154761361751877673493002841810287422824152901251588679634551669915273002855133715795454027168281008106070654507005336105353710279972180736203580035075867307794312783167958104930997131880194469247177029206572011379043265029250027249057871658315771143764989911239054941534909461144110370680615643538244082546008429215860824989653789369232650603287217014972163052158845193318343531143318305931180734873332040468350450438932432968813756279364827326469126473054793829341121246148237083541539539049848065060758287622486483174300903906284453651146721739038807767394212139532082720065461243928723603317793986131476433905048471478723725981530874921196337118275340020954456136591540102568285698117067270034622034513636240289674039410229168211244330350650119128894942098261767133843580514235886989760318505456412637704377555061434345919134909698569081751118572124686347617417421377961181772800417170119846496580502626171341325054231153439631900399844317713072373186729389589072567398401257968272127396379473037787192321049850268911843041859140002700539291058508502995594245746226224010241617974679671197784949783526074090244200418362618947133689269691746902777259367965834537669097984800795692440921606905495339556426041978763139248304299035174375838006464898830926950679097153165561886422339727422935380497616818349587407976849510532912261106793741014102861740653531232400570698370954769193392772406182208638374373963443906055557389527284717568437643435539395060766297419894163763516425558360525955761361077297681240218529939964976943104750065273088827546013845212396852882556039958491782925485316404119897957256497079501122831329729272950910829868018208108103957551626573121128053659380125258483635762399630653204641407539320259126009879592144018731348412391231413719381590750059430790396025742528568196114043567602999929878594517356136448213214332211746441459359081859368178652197564438092158041199381297399528342385040665985767258761468272557288273644952705288370857628782630064876842098458856931773149082370149297660405436753550288989830867895549309322382980588704203865909236308610101215063040244978049903672574006156222645701224099208928209732970663123390097861101915653422877741354438958179622853917512142162614806102630238670645231607324252047671379269587961055169862449330096810781017639461035428276645974224511690276580153341965596779656609523412813578121231432089098287181060659686320426207560050750027653650976017961596897245248346656496165552660652330985342553739962224090819982006585651073394872428330903525620533400867359310489967989808277917438998999695638321633120242879015418910364733848101866546240621841784510617978591006413143461801313565962402274051613713207849840044705426602629654353056688437698419106644179567352033008669831666005963819580463316338257481840204526651456924112115049498080154963799505207837816297339082853794327851354407649506291547382289312446469575467813734817903657560938076710850704922415282865598145915972784639399240825972818160113143433165940120171334151932094307519694379524576241709767784729396090650688895528566644887120160026831646383779573125906885086965124352811719760198163394292512393979598045646666622854279454386397196265806807096446687896341278357889468758474091639627586738780873160050860648633034826926482834766352189828576531773314277721042672703864057414697118977819751111168269212110090538673197088636584436457030580876183716250200270665988012046291130450528030619013822425166026929957266480526779659899931162653417872854944468497313415076136869702952707552385643188374221474865716040351661883723855721502768302841150396061323062142449324507016382742540203683156949042877704134305322756619322577082247145313092254911484680362913146577332954257093359800659465890872756670108239276504117880291229739904466965532448295331068319077388405293141780036444925241519505223204456044032644866058695282847501515666390950750066158133237261600106448865372180432384357640130549308697826076648766027374482283703493446696528033522557372349308836411538292762383074204785768173117632697616113819257947654551671318798438112050124057314330292478631103194954375077987063864467052861121950651326334985925325418345068709339665133930341053759380426992348781223933880162999310721213565673496528674468259517861362581268850389759996349352839670528284619053201133843966968360490620846168923111574003202963756824011902764215892499806805471091652599448568650333073324144018542893687703124540019173062389376228337548145662207277001474222025712248942280253010806264127047637182969453326032554375077893180748235985389153212941951977783427563465675327796741917436283093536764776544349197860159987165394631923092058344216696266784224682543500539985180675470321343602758406621224539039035857898680788035557559324064590045949127316146224246849003530047014061937885626037037831396356841296939847935916630858006731473703871752046554817013334577191536001391769319593865141361954580070860661638509947699891540950648299519884345102415638892524808433385562721498998119918735241421151355378789179387676207594852618513356695415511715855468919199249163737779287590350405987620187018281802747812209441427506092615857295417471257529765154676879630486835993464508122126342202914338278857243362035215904310324724835354692271219800558602212788814565734138354316014828670466998677467699126232575655451876024448254643523291793268949436450290423016689464803611399573077155182598348956156175457692999857658739533301590475976890473588363782964042875696226051690777494349655538874114951172453107861461819417618746915948126535520261887849031811207815781424434326734091987780092344480431403115100665442002918152839851871836985071643785315575214842098390881875910485364638729200589845254754687116577849319580932512969147316475477761581682672057107813855219805830513632494742016454807344142097932163114656459388963887940234895623103400394724410008299126042232873726532362046174280800291139988153362706848870541379373506288200369965257617997748273574182619377944701239253643690821809338414981732156362433003690387224729422385398008299889843697311860423636385649426980684716106029699905379778189430521890567811785671528740484437782546787045483987419881691864509732430774121650037347987828478336144478103564785862168827596280345513007730361488275126602027273302930857089280081938020278855536267554630040014869621690233366199340797275202633145411675075329600559361921767493919471548856502904091713829259449636358945714705548915035369241597130344239985423044701156259726245910829354961802819947526288194618186760726156252515181518705256224803207585807892479780048334238218737732239540537300774333430137050563964466345267261925403874353778331544287190276174013997172286191437995112543118294249473081227436574485570343205327921681327478499548002396096196948360911997947370929360547478525042780663403328299402880507685202419662559869693697047258341458543127099967898779545238520079599609453561163112975957213966257338077381571126082978494869896365112652456936598507866660253601990329115755449364254911439707972696753606126297143588360934715451455552043877736549334017446524146608067679338524616320996954280845939092934124807245632161666416256130892991416693426035411608495162947463735535769819620848770401537558776980679021092931458807063939443538245840285774928320330098655711115891581740172208911169661052152085762807111840042007848606552646437329221708082985776852952692370142144513440249621428908354161906798063301760735486590332261942951173913938350432361543822705337029187114687790912684612495718258321337209134059360657968990954373653359459471048786855188727748598510985957951573440668006275470260358061609148911614139505064437970240316867809096812660281200473928602664361429531501978009779355455488878362027144037663168118439541059461024109948854083229448741183786169541878043834932716158427463590390255362986902888890713172284173991890178626961575738183712042748096279077147040837334701495252669745112636573745844122735793070484211396479987820749587284300821150961932541534035414762020674987963980916563534578160994239949990854440233135113085436997055468878216202956203096107113487109252029301807381836991832434064690671992949451870841237342098250109186685529820775138952807407964266787190044536581973246541119755789822709824450421889816300633341645653503758774961341443445429148512266239672017444589392756894074446198240819914560970312235251231911982015959333223018896318903698676196979404101127626800613126489693612737011517225874094810124974301588376460667247259376349873999987057270386759910554139830674383960180408734224056759049244074744299707502842319949598239167144817058471528902116890882760924048916879804128134228767168934440895610210176135367413721585721847295256950235321735065711226496034177552871146172870864152633741272961085887991500188537228363878740564575737844798373317356806197705744024299909922212485734040292158817556085379711028863016756118723350703801501954223800470030797513375682148581470458487144630606287426287963910525297480010858926343495262376740081344816063873061839714894864538830249306913379574157575501873867708339475000644087615851890211086808513347677583124601764029016566439191430774756883985539687114733546035109402666658550699361093931015867103006767917053839455882091599790431178395335194756114006182936472256220859811155152994527007757028701816232365154877683574873007273325389695018672443940258108704102889125727348815555484735010099616907835715641576075000235249524263201249915729773512846063439192731400247768354407259713362671752774045974821759115038788708671254816549171318138690976297334911439811882493117652392435732299207269139879797264541748738465757150087913397654057926173318386309021781354133875347578306571233698686449766594041599154559012287731678510919320632677624501105874254017365959529360498332685816656486585868272966998731653040691109674066461273297378377588267513506103788081994122108735336976672121253456186747519690406089995811715260368941690529347441408168808577568086361585330703421432677923258864680388934165853319121123038802215270477020607850380736182237473999196361531385559907829688735740628341397968209763557503859943130476387053335692825889921795154836424459764659167785653119418005451984175973768661521554432024701038957236749576840101027684180947777266147503177895692839231936994326558722418233119098718796586739441407730925051405250045032204868093538181648142490461054204736165530957290467061106575062507775890016832167272549436395372505582375068537750969212960575028921077802942751454039701018031470816581625525410413967347726565080570523269092987097507896482250556102613838105735983852777793847721803181759354937507735144035488907104595897157035730658086117624504719546294450025478017855486512220249853494023110616592043600820609493806879957194067630528494029895710627531643250437371938066847774365005659026106140963763896888433026904695414128810651066404882253438563118114324546413146671731070330037798817190354923999134323545802976208319674949279892873288197543748130878499381890795143807176867368851016291024248075165936718526694219907405105974730060740864702808723939407376158729165372759020456186254087676780416518533874790035369740118242191964511391940339733872673175991183169669876684882785461251174676870245747440397371662558781389447604074325558771416277759244504371451906547737455770184642465892588728079073405070119206913945049196091952493511789871450740995943891834643474505686410813569999485465769050039769615092262264765831048509924218740713833628854795345036938040720944776475493609251040066094238979297004126783864948784878319937546358410817759310696739316720591151396271131891024672353955558250484264846888107371348000395510606189656168587514473116403021673406705061466016817235799105478038010782143255135289781115486130453900114654448348579171917106324952994573745214450475014589095815192617023455279722194925919413717634543871677527425551655001341671844570867295323326593061525422027400971351897526729214847682949485446045096875260250459199313985599878117875260809979036222784281929867865613923217891211179104389802233321580906914096984078167609197420698531572440921229361970763517893927512607811442108443205046567276125446941228482193215637852337096600324559448255955701235200742046384035123164741584124208962696047233534055807265327314399957310334586725942795682206187227340453894920109650448154272945622756655535124028548454222276180602286009398738200587726927817796590598887369061344875672142255603043665691945600221273432976036049415631870413911324931460530798677776731225089897646984043157270705909525144750892625197515500880715047861352847180421059881461380075871809138085466716049161842172873240052292481468829851010606692735730942160608225348102905806356738362587408698460234890332546979788471762887884788306888543300219968981842041680560168078084139133873403085590054394256039639954486552202217447009321474073234748098572723610779363595690587001799940919257203035891587351070849536461889154811851034815266722167302387704334955532208219770782669725613061903331675547768362260268362086261335889964237845361398433162915461026815332276793691122449414841794604317462422829434812359460369389381790862490638225643312536124748912228752830921806611132966465749018905846548915219777246331252274048573045202715466260852603271496446311143646634195231015148046075644716922082671693522078856121813021610499157563596984564276755785875961060064860890080026802295883106654712780123662781055753001644330360589764954521211146083820863380747689753049411822855748279380577255985139693463245243621338279848685660970460532172026226476473656729921846433605883161226632024540814028627089854671000973825874929597157305419245674436236276652335412859082484212536910107579611913433217642591607285938805022247793641840391995322660291855682201475762146459384049022674790654019193521914502484202438573156703967558816959640180827686807758683809909966481498041832408769584248676339106706922824813330679117776679333793962927513231737043401878336093746507009997867827640386079866752136937387214928835246219713588342110791248170735491408488384901430966465438961211382207307238400663058095847362293227305273334702752920504145628857400245448987823655809020164417803063400957681930213566432310593610559820170990735621669717642271121859937777687836106696250205618096050320354267956947595419173548599618074709742033162386163363119510306886463970629203759942301524388198998476780818578801003042440029398793998816372062250433641640046194176948101792561726340624728238254492781134539440876302431435915944913222262508786839072650036678414242503815599539517900174930276723933209117062683568602333009794133906921533736500737803527188067122843801445003803273073616051255827359981473204621563116329304584487388084254839954276388350388570384463938735789110899737368912824008613099445746227847046445943107398550696975398431492735017836359625533793704540880612944989106610004887900107059691744589163755077858613608776496443327426192329834833923360847217161651202377474221249229502697525501319736545045622701233463204683316297621476118399371362789138278140144480333202217683226792539786408112282271201733515720795137139853714274183839885670443073029445484647217687134079007612608667564133699876785080247733254071581395041855862784288451136655156793173307676518498267391992731041422590278976409161683961900445373854447061700049504777496866899670798746259480857851979180606475265332258551068053638569802919700745319881283181046439682405453723079181746692725368778466061432397798921912370755285456934258412667601897800320595316852342686697495621625255751766708138577985888079553213914140844251739419865440334628929296484338035705536898035394264707496507355534747362544126662855192564726458307837026240950019299841680071443047972266778750605520442146147627183333920302722550262064560763276139506376532015941980441311729260912947694390044322151622360014352455326588294517117897777637614419160054034243551270098403512429460161489240679397630600621653917995119711060641466124295262884917745091181736364318019235214640949126633005626071066094611550759164618645662773323254241666651424089577871506510386360442913763239650269799719214201258876555141512097201078507624706269308740180534337721846820651223500459251463707883109497383263987827347186615834938744629559199157947383346389950041977812641972137327296089649742214795139617505297789816019141282156629538378658326851376271028254315605791880046510775138910310070361286656561402538761528067426279656307758531766778500208616585971655714077530081130714430748979990991344200709818466670114882090731424863041684064944151655796135566675298664011170244959940718753382978545240943498762743984893633320218050156516420326806987588762304947419416359214061889084781164462909405618839187610997974327872129997874051668510394141043775261282760547790376377405418841152298682707275023573320523897381629770008244156470256021794824427693060729440939174360152726321344295211175727210114757921430651400960884714812734788077030021755440847018603060657350254877171712850729679706892627005191486479271043617106481154568099239570380414439752129221277129965505563276476380676253198561459313364362918449727464923610716630890732405215281899631924008245693005446469898349027921457527898575085969242892420479461162377824298360203417511053839537094511331320342295377138003665438319663832310642067374709240308801019184374669334734811117011627131876172512047498960309187004838493176966929988541847091293124181990168620638026997448934908220035699030759307034359975613246510175789599982841058033463083698114936248749672369225531112562745575386210144770677357928796881872458807938579465341283525584535799254021888228093162673398659370699176145500811502986714977929512808954249782747134814761958736751855459294469952087572133229076193337946680660636869520401223523235634636001620096643983228915915141128320258048167269811651042131624923105567192998300366377642812272693501296944643976041563822897756981144095183857549064735456737798938477520004133715916360445391087785179280223039656534013932534544211737458883250015544233090356020347448361940702543135274088739779215572434880687930169784058347003264512116361620706865447632262883418717043443604573668852304325540305455863345295958235374236979665616468217463067139651898071986309829317935975765447467705425982031953704119686202271010833361423238343324153798460646201172857996252414672325874503486825795032707957182188796742142208224109207935930650896254882327260470135248107608206156270438787950782374634049192896861653754917421709223574488618066519331314999051352188822451280500726280631530913247172319161101819563171765694750897097144987557106108224825341236413719724343883193873058939568372042472431055529875965091147984440584509730057406397903270486184503340978660147967770336409700348326762260185421084648357523391325964088338697038864503344917744729577947547038575220638479472093569429357927927971208926207846876554662466480201454288905840028884873467820033453956213050940870419933034409947322349136994603157512473469348339667764595980184267438761218565742373184080998071432322305133668730487014596900854349352460372735747426785193596002300211176832907852103351324332234434648843293990452385693351366163088649000195851186451600658452981324068169434452151028462726476980794829469206021537407913063110882819625302627290704064893614480261111817280248056527993255621850319421766566502793025899631098465147494853450087497240263030086874949413238145935382634588348406280090624706075105323591562840719478483841397139024480123823001784804058262821002172981926933423528337234784631903680798790059522258118988538728792278405547964873003800277706153602738073178435164329708464163692316532355030625513259831693153430149158675140466519638715022617570505902386201856074758755881782616554739735972245780480882655019216199456418689597706749529695815648089037343055330199989801130647230536947416746828197770914988271834354482106715836570682172734010257877788573357610758368693798415722220681785855455488636262077415000497170181565180922338387559962519537245086326904023371754099288324458538658772061129805007521648153994002119288601872359563697662096309600345502938455478378394672068546019951465525651089461303182063975626236557274976461258338853465493473856842881961856840546026665259355995417043298293538448799540355802156172223810207837775814219605124002497557691907166827444068492383506405799160044695410552523042563893919064864583930004553205922329156656945321103426780074746696537785056197108572278000169853543285677172508173149204643629038003999761055949410688830851881490010954513609179651271102070683724158878472665282042909708270855710893570920350310893329723625806751835162995780049419639835568722375835524497048149657515031264981449468372342469406480470681679014730953774935387315791156317772763631061411628648755907449331331285666671612910385981092271701090695417766601300487237497329005149662757396384341289346282791808132337945155957774858232536734826863570010081239524827718680651498445916466141415669758492025985425183908940922812067233792215072860030714812315438817084854804493945358634927270379078302887580684079608684691601740618499917409514589351151722488674084235586526623900818664249481139419618308328824129351752740639286490388208205301247055890548729563078784690837404445140052131778074251543444690022224100097400298723277362318236618279724848143708665233282677568930214163595137713913331464424467771179335117410026457572375760332568009287809531353097842416579693086018316858797596549029344755363539022231645842706184458805653189379818302453132766394601204641235532891646794551079556654421069892578110498720155048710336054399780033523212137668415013652364778150241020786064548147581659879191164907959568561997222818501851041600144899115933379751320215587645239012472244390219692295335563078721374912267578519117409731978648549952268517404321027999494455504671282022845550427560919548285231475902167277365659235164031180982257139570517440199047733237598004087121301740613108266382328028623553947256722431928147010523353711576890153395727205619085447679293368435536283421968296379377016995234325683755790878584359371485546839343592764434532479133857392118133530411977564949901817358335857051638784409656919258480617279218929323937938296770620254275634439805488950998298584421486457817548631411765858799942499152365303349453384684813161795662183816994646031268740823868858495194090795612321379739942179428785112921953281757163328924425242537746639794814424365573822930499924991666958390522928378912017908129502516248035222423518761103179728265736281294323911971392811291325104631228869300808369397642148567686784282674550813006702715354811737699034066819544863700687815035685239593535502364239951418876777807236908030952637099212741225699969653154805269295495658447660164804815116478235301180633738933783905539184422402320952226850565063158563070703731656069839980540968517943221982353207364844171330624288259690133122710375079371897454448510115519358940064966082856946240729974120577393187643065225275954109683039399887377781951744062964127333259810330656175448276489119657284092035388235921120574616236683111278780336954518385313424886231035320068301816125516861723969593766231110972180764039107511208136844851357392700695804110453169474451945381151266756421689237882161424366929722638454253619730974416434043650331175860768081035856307229413977128244587844165551569023379897611149415875380072162269388574568503619711985641925541605603007880489036684298249081056990122518629019453045638153773695868190071114075242829671544280052472803721622492849805162359285918080247859722797511494952395432607974551692112332223800457562103638095900225843619285304537604793240079728793351808955205327520769446377912585105076213958168223878814385127800122598605538327036111129151416891013761302972455303186230300869537921719401070134774467732154163010186434429492684092550039395177307865188107578744965476752321205831046136565156827246659819246803334349172541265441323800109466152162867137116546666927102401979721830607595519868870018887320775544386686994728115302541420838926566697316211273000736178573144143065190493753616596866046207221783235825253032372824905300252473618816831278059610121588943694517839843089344839994155096146916302064533254300020483257122025121084740127490700435260317697527674754000251982482379177433836481432728484990195201818747194071480506633364587897643876897757022966238809571016687037714628210290920093096965138516173483548695073437010643425464526020696719301039979510585649932259952131529054436055107214539399369000975182217905554944454097637971806058358938868223913950509422728333573061076212574715003085874395984547109034929143457150411803288763821835966960398825699836247347515137347648466953654497762030265830507169982857695204778389827949607099633041486728405321989706433925840007513255456157655004833788493476172023006519656877961246080337885665702749447778170245926267486424683630521007615533303281913355425854646089437421557217485328099607136794542002935658653503269895974832551973953728127874993831837274514985889982612793119212165962609916244818569116048688068366143260113909159181798987847148583030593980680742505691981604446871911611731526113386907879208937793342014375549079736513483663305902395874961526579767056320879105413171936532209316813963661750489249473961249134164760943457325498120550372641412538200847342610733659048015721531041146547046597381010102905037985210945914268632558918221548968791042725187000700196847435303154265289273246576514113688902495665613991171299350751753085503573574781458227598557720135775626078955296638906483633875250360593186391136248803107017710355151023210772680074076218572758174115845635740118301077890072702823162357553916510959122211069557054993428857455659824160749110174343817799875221734598455426282814225734554717936274891475567552535014891833507706743409848087225505952914644775579382731500423055853914676248193760654906466088069149210226742918619438771015620080007583314066759658316800257883088178422781365542064245187997515350328760686525814481373163530609365000865311051082104340511840984827663747914679292547790346283133329674327914646817710504962423700567599692664634355055233168177644001090453406887742698103275471747112085573157977583000108535122504110052789998333875276676371310334822797098667517141759395375008037741896060826527628040092928085658447855043027981190354362158224316016185864802284183613504618633330808913839811925859499031147732329343733514132165222785705534351672981401094206851734985921461129166078647357919369450539469505443908272364084511573970492896274386350448736682828170946849312459140464411896030706234694499486416062880534797305307404268820624578371680312243342036017152409118917739291713702246842484662271698665828073936493615045371238411481080702935264201356808956812870107935414253924716804779717111373900540407728108252080834427361044942371941137448362277557700236168077206920060942076942429176454877772297991608982761249993225750877084508718409671037348399455449013507358014876534426968936144552047613392839013508081985932750681936626352423423570160172798567515550326627788097348268530364273398841109263047251376042189788148406149207761647053385976569081846370987581119718990750621370091569658648554957469640821222158518296780375038158846217604793361509138391147095982423624891009871451167034914747553689726823628356521275239828652441165220272873333305852755917074510400065295299092449359746286901387812241914274120187763661891377786758872850922918977199428930469330691928412656231630960736430638533537167561185835502497759167762769226979121422647035602618694704044696202982596130008627616009938918016569158711942192838627158495404320573186113409544965502145167761315044821349797486570130984835753172983726683758089855339411685864391864970997304839482129858299925619175387443384707877492752559875957145082048667527915088096304736232195989065224802677290981367214096305181469366765791776201019056356597554214643957607768441429912965479035588985830357484746849709952111837591634915362062354583278047628141316349559235910939202249019476452975523846424402338403600362099532525885596534885379803459833486516719695440666083235019436305971602370648737020727829247570873034556275358014742781399493692913227716829233120951720117736662036874581986332269308928613048253850791817661364813797922428749170193699652315911083641897936579184939204113727568224634055739599349894362774508426069055858193911264818679259145801347483300200254882136361532920362114472546427037332660397125519709531566196546231862944031064894686117573531248192208969055098073163011654226814603368630207738905399827800549424353886104824597855864831550255625529561417387230656990168034951005294928450907107594734369760322320576778968924430824219928108324870059502671586363227507379120226296747438519920110436087233749615608944457647347491715794034585839349382274627979046247120557426620107519058741982360480847055668429899998028083324756079178881844792658247655262717451399719668208720491881133695584193844307254788447164532463181424229432649245060379568428016194824848106855502570338950180026651332888930186646286857830859308059781973034746368880823022883403289133590872522079884020477224846666593276644153171665076086066981773773311468540135496907185982136660021403959566784001473368320401661215850972062979655819964922578172658099431383840646863650264356283101976935942133772158451986901987627741310147505083140732703715379558101675964243364988698345309629011147776543838458097588486729083505881769853563828353836022174287539277495008443692926257547961125212221282270191046731113393856687728724847997253504656579375583437220430550539401154245860863564974976548917270684235101590704986524412033479099168136526813423730834632979736977223374543663330984341940208862939068737357834205316372638494815239191265795748255532143282311334090939563135792490125019386918076767811709769208873153070295349639936190702965995645774728282738843409199546090630641926236868432116698031373536487131532339848906235540536182491424226746526800231849299106661326316467589944365544728101572766627819351097426692271782323900484146671320358154313726388031214051149312374596323429263087984843765133304947666714310119122945111341663952834076647036187204456141402315040739256605501466811247734113079555135947361360012470554566050599852596805503404299331319558975147803395795551548479143543339897449926929003129321965407087678797304485929936782201048782280747381883472421873846272355340325951317882118544788643991859467829248951601277240393123906778642032196265565897218446061356403758057519589414173759109622317411039471349514335035327210058348906855602035160128220660024410465643243136031987101020603663527126412671064123428952703176822626072239013322792580684739596533758255272967324345517556775479790804279930178534448345593215881903120051488477185295332010695121956738225524378590134465059412447366241597000120121198339710275233757415950363458218945606355195083222390004143736632260333338479148593772962498496360373296794654486504995320390722332860281267996760184256110277250781145160559029168185944294476043519947028092337412626221845122760960156218308157751107745690167609125062684170631295750569900400519429049118068332990643934526541567240521206918288816157299512151106123070766944812180801679425925800659912673821426889236289882964377998247843836712370897281616960451639954738859366226093948088835386661979512529741477131287279297128576180996498665359813261347275206981975013027343324547424252668116631740486772992602012416723515227905868760164876092572193724829520931756313282642924238159861885252918897687553322014647652284145031685847989016478687176530937079186526451955374883410166840616954651027675635418689245661585764486285641035412916297058440236811526490532456261142463629715473352427293853012818409316345958187942714349220320323557310060255448740411117386261011070439493155174374703846291422676336890732814080288332887822202288520894207984975066369134151177342034787388331205272312673438868748166299430116112629814043576823998746729068904270238851865001380895477927729590104669048588963487061616916003229908437061370997142521815233689409164584650759099583749985548243801908032573270718896983421897001580700329758430670832276336128177882420268327950148155009102007473218983004224292877653390845391790876166979258432045336245341497763176659272616605177468657661140313960560160035406960078703984456557756813064670124273827124566146330950884649373241112345083990899891082642151266518243353959033564864631352303882341546618020704943074928534809175541647249678132227535135373999194204475451843156335412981729803907229616340417990098659538700439150655435427119580621229807555935764109203090789554948714196873749620328600713291725738434018538832407903017568436271443325262126701672413737273966682093591332923951027192935509149762821017888027330370095599538681346464697022868400994460639911196292187660312363404235021503576784055086945234559299795707470428993344061150273709328590804882509104882866217578942354711541656465023239439943883992146312836885055067098578056755853673211979490037043807314812045428422416483248638391137263588632744471470403516767723672332184650471640618787577361323149400368943601660213036135805373485933439112286994823288808792972024111284073543221458867723498754220941946653239999263779470280880865957214449237603609505070529766200413029656782421478879571877084505947837421038930520417273511424957078949693380253940135059299462463047035897316928247378293053325052252013359680840587382576799198481912143669073750496421472610730520321549207613790112082059180396919180992943444702660375686539129390317456283504994467101362638431275969891485676712727111385795655409868018560588187450415040718217279050513699677786258809874867188982766998073827769521262721751384014658350442367984400504015340946860785663863635393930437516903794384985508331561685467423956950912206445662160859424607886439565823417565244856925710846561677897692283087802679544897207991076524094664259367513945616581301114602637625904800551804384498249847806295448538436397836961744369172434160292142650709366864580110837298439139991000105406684999684047618318075459855891415914513169655059442466006900361525811666046830499127286107729429093955054203636556399197819068086459897751547404590986520825458157881572238018623807355472541296538078985746877909795623215966676856490818518031307959641311138968238974305017220599394798877076959262410701984208241960176251350016622900694452746999505994911761673630262565442759872413474063395520900368230826261281116441477670528868098180020982580970812796834735917846564534664024169387691929711111532143329177218566601215099233500319861106434886390093257565642500236890925756438077566633754297175057330522230896089791235702851022057289645022347208786473209244931831014084075968587201703269703308583812264572884828007641297576822639017252166859853236206104010219489943518336113423976578420639337858991357371433241673046539436145270613478984412417436500211663828670892484695421267653700351317320392113838068055378069093767433388844878029144835868607165579114041309817262699406309860791134355209217137013523400805597870800313220896932444052583776335774749413555019525905855513853811373282548846070769937201664704821837056667581829014927414396333508538515985677127051440000860906538328104182520197823220630609251206138916901074798937357244206660849640220284277662947223045797103036391875052229036722027116360152488413387077704803701779315531167487413980946912664936712845987445919407912473145932234306917412097356949883588624737654168059430931655687670409510826376724429060027011305135325799237536098965560982864837377530717361528330407142381398350890354214903024344714038039632002471054785020957110406192244654606697183998548969711174453907893294482244955296697918084234345381586911019150474652792300331517091860887218612172315703948125089222770378680961286764480393432060847276072244228625706322536937228037078299349460380636010927503521001716758342692895389838361244902837726850192653720428186629391979356314337643711856773545734200890348392739291427437099422482617139400662544931110052997534342612529799240990072429740918520595326616706990748825792903791281184331933120659649905472881958286083081385599003801299314617769254892754611375531610934240516931260866702076767559525457461216937946411113736296784484425107713026028221497070843656612398241994187666970685053828809475515382507646092860725274406070045288488030037237122215770617358082780861141446744120983282995178825715148280799591831908365360749150889967374769314535087860533493322411509180546652033412150430417962035636640986607831421889309783159873083920489571335125900559419945562383299030601725860866724600619724286440297687597429952760404237251526729601468706913755687893013193249349151837591881828750552946197136603070878390225365036100480178532822533478667259432850837115624334189936990031943068827923410063923346442711262645575222858161681727835907197328599283168742263162110196607424921645621318171112472030843886653245176986913760872703835049095824297970579702151590033310063744891666046683722931928518640382167789190300738831178205171265572117369784869511553324611417017627614691159620649812976829914024863702818729811587581880816404104893805478124900739344327506954651699294461854680149395210764656829744954706725387519661965188159533012766906595431618482908658497300297302867826666736217791789363203069782185440245376678431005649999844212881440021590016374455409063460527815634894107149291161167111768927500064962770331984923326445042911761267468544752681594897411280093630947132166558501937198497512979110782516977428645561939911136828138054847482372765707422760415333846596810266493737142179277847813975318285364027489995278971796017360405076992658889126508504267251847229436802729830423233922554226587526434224014210776221209784095168475582762765513031829593791625299636286400720485956623382166789073865676710236552777580361499453697082584484085934280899557996678109742339476469609511910755133875865278691567230922332276023196823343425558731789772293723225665486371574109744538725306290786710382406183448098972322443394520559904377229335456439337161330869778571343256135446926713439069515041984229354103989077464971586641630072000442854956377644862591867583984892870217846435664207652195649841122288843619050090461352920612455561385090343323466289628087405613858705247590454102160616576772881305974623558648882568295347959876587559158178774382042627961246268550920170850110431328497072869550864786267089682721025262330837691275041158536113937217681307664474735905523032242861608850779193442341938760313886074671760585519885132514824221207597077613984856406944065789764137596188526176918555526719284383825792996311525558825838194208450422840688844662797702316724407560641709870845249061547766465410748600125584949590506129309070003434155293431413188659826283484576574937673757275559546539106234778753422969412811326507978595346993897472160876537789267359388684232984614847403043170162558108874097401258457058465982034819176404149730351458093091927480537941804557674036295154412150799472181454993248148938879913562669302307424040025927007140134506706169375687153739026425760840543061223871821627260251002236992020495256890756584147695540284441939517800134624934625135406473689225973404501882553600150675865866502619408945573964750112937159721691373683280641995262088624195894954516837848649781295828674150804280013416346448519373046258812050339521274672613077211410686137810768889150666841672659142069281319884721306860975585580878683976269305693863262757835412479533339360028383040057234309308589223006405450411447651308664926100228291524287584802753332120682287514463740623997956436588434158765816958943516128316753287217103486410260041833016134259700057781480797856623238556370631688545101838991715640937965082978142172963453345246660240180538578702275070722670774237669408539870634390771883841582915582368420888821397362352854816358332585046196701193798969273483621330190014869171741088780614690237839456862465182240057706246755462044039107001415112622632428828095588570959982390037578868910260517583868550102924209702696140969428469429225648411080857345891361897938669940523868849871745375267628517148154863891721326561502832243400590859390633525716582704596365261956400385888524974240489508971694696305081675180681629766668463781733898360658968127633680097814313606806311746834507618110384490488001288364370764365603511327209497761730551608766380028425737362652616079451956513496631863720502374739981409499653627611292421244444309850294070125283583677457112837332634504540014696238877363765032797053507609507377748314538417261666830159021100469443599741222496310455061023924699264942528877038707291202473471963612233141726123100519249391946021485397293190699925742012925044429679466867377727760239005371966423298843136126013838946486786492563872418862104020149795896164615032577509272825713668727025543189276105970506958406340606361277611138008253784810843783262145822305736368947133244424455362908390336674614074689557674448352985504832562835088009817669940419200285681840536234121310452774329334799361894892956748363384153321676498504309526371280138393772297918262187781606427546458949109637652429173236458228407410892454453970908858272775984214089612412873096624306144045212632915786863063882867334647579864273635550167201952491036130142952233736904067582544668992738155453216687044615456854541207382173447369643482005927446227017608382519767106716152075921608824667539633117701966012019766715633459425401226961310765420781320188448295199843175619691230295740020926501605814619119926846829639413852008179254032969565724239354441780653094886893429203307875218252414181268659175052385855905669856424726261312731113344624650813202666284974332218882860924636328301388808760598918366763954577526442792430545723418757297706466373939685061503494136419761269848461347607590761047286109949992807708809498936388881708205677763839471950006837955325869635533446710720322632181697279491546834828589416379533648858811118722764414799789506994065624545821892519867319756831247243778683505565818009237829980903284817245070580692601391008459801022997888752664963799981898847748877541293102802638093336807971558574318424061515344868412824309900561713630569560195711046232827293086808089120450935169783589925246535620659962481978847573758547239134234486923874745942563048087971880092045704299227528422069963711207000888324360919249165428918660608474564224812641365679065184815056015779697655443609007209782130829881206751588476095443838793496030583315609283689208082632226777697200497336265352104277975181671724860063855939322331450947751753147085132178182418398880095573641527678702483030259357392269428447798671026213788371848813653596230662785666317829975101887770339983084220535923629670611238657905401306515583161334379123705195625037054114527085500731219212912560216706021895422005972039588192889106126170604507587094612946364516149980512227650487734102813862755584363183007777478049124383411207281135966347344028364712960350838634274163688816929830694076592127754063193899540195456626924493948620640941184657991572939507161257707847651032351473367277493852509051953900223670664929769553668730861629987691278923745917289082336251489805274067158380523643160075359117503935643873428455205674493986368348242804750066748209504650125995579461532618986320253602928480244863412540878386434731110201755906283665244469571103913283460745494167951488045315247303578351533843768059259983196038712105518042556737950510339783328044391013124708252794527400608233120743452570421099519239824069221525921305365015180213344527400572568966230154798463464475405853469878022229966526034046512413340274222611776792435369005290055058236032140327765114708598711796882296893595676568250407419996380648637435189141336851518892894368346908662783955303634982050351386466910760713684679951208891968504995724666353158789199037259897280298108035959112375252332669924083477544048714039481193872994041563399240608289188148008623746042343839094609195437147070689170309229388676347085232309255418101955741382996953819436298779897345254906513198620153782159667173086246980298642514486518893706244372852633670369230147404162862823665317773806481596282541783028359789112521007824609012367583307806126792091678500447779875261150646398867152613796503062729719393090863071512363229580839470402215403583753406144697117670442820053850757928638489399076371406166618125801476568793419491726371931427444873312205942453128755360980986985476778364261610984447913230830067082598225033120998003614479470877507869937134127098106088211654259743258753416100821070910198833235994936925144347012461542041256266968765795175413551661813495274379280178527210645047168684645799716590345334201350995501394009805983676020326853473178720887904515129036179020931637247008903283094339720603363415598347190629790326843215553753704359251791695080209802036900975948067620892234966684191663254774078430203307778255983948469015333226304324433425924250110048519082135416653470932595279513676079464862372998628930539615949651136834330738250774728635369452164126457276875080633331347499574844671433853732298805794597732955744506941480183543526213048709872142024408083535233066406518603245532419871231705898745313777841925043303990308888957409704009215701971251198202065854122225339677664383160481171713302375906966785967527463739730691447764048967071105541246279176965344031998544775561085587670019128165576703687802571556211999690892951583148199929225848977924902915482328862031938542134425341916499359673699553326705469319327012102233804380661166508069487637291559984680423470600029755127173073682824261624625279434295385161101259639559828196995838744157639820069008155018571430113816120384272639950067495547891600740738528958463019187858447041503687741366327302582591315931744998985298889504305997668600623336649477882969346075796040887320579458745805792760106999867120953110029491722935086056268482809398829503795534164983806208380204843837969977087109688245750575661264754351705262625705118607661337227814020802787186396401915696141755146982398393228265232529173243226237085388045310050175909067825019723517406565787655977857978658225329620219945763564910584398124689353338235440002318958707199449463099256253642191707094817914672030512178613158581123289375823562007778420521804573025364799967070793450273767680245466929384475422809928832433561420014343082390083353522884296304499099001737918217769503443719333823923171192626693584675974315016200343516638812534123574738037601354034339313948922191530687821243829553995561516149866431428660946882971912266936450288540940288803878433224328784105451154387468129895137761118571043209936195176955457788686666908425101269287663626758816500431353664744189032171794256290883320761298063464458299640560853888334405182207044954830489303537633347451294829126336743076046291602541926732869280659411290512355273841572156752331214038652927455200527375034365133704972075015424899122956486019880655168511721312255892887105641224604016797453362263498740517622933477927430345271530847501943391009022069478055103530690107511143909071620550215837397101663193896429054728136614844178857899924836008024684693030629133672544666001599773970616442661225642221746299863869468729791450783763369405436114111338419399799971170345352204452560571094487345789883818961296394973273000061884042991841443680010711916124209403899490691088232389325926543832615129190628220326604727279004272907805709028076312779512116793241231366448410749242190549480979407026513659378523732183223113381119454428779271951352555821750778762605991811887107483007455442452191353658094259656220876846036622928340372346725244539824918237576501218167155692989859306871961346595145300929751029120782311614415555282618488826589835243120143558120639869196978124915847279326542445669001534566380052049590236978268296408479520408429430710261786464180400362023895773090697512790533345359154957964401260090887701410924311628285805722771062445192915023819315881639220783698831922825474234291765324532524919142047231865729545006460593586214819399140321408432655778737898448268995117657876040968187540636578120355096229207331378312270006461999221451011550889035414395986726972162536257695454430776174877992575580761652493721115953422701763046596611570879352352655325778650614732599442445940313545321424165017218057089237861178750729870333440969315965709588441942437957643415890567152010655117607329668198824924798490453792878153793990061489846586440154058438341221942729195074896032591754702941856854636508430465349793579633678469053538381050270320285093518164463014060482751182954548449973461320118579904450516702254832559056234105583099148695620263516927329713850170575597863121489120777975025858002233043628605730383147731508457680803253023400063813173469734765307561337862927466443119824542029487493121954232535411370479760584945050422914670663020913379969083710539148542064590674422432708201164973461921690432316293574103823714150710751711651945784184066199729824601169635095880526292840038669632749524382265420571473490728268701644369108898128952108297046865542894773683434252250695372703425801898829137151821207726088083193161163093986219587541196364547896485314419092886817672979764917285621318215525442078337508894190766345557444298688895655179905709375716055043961879297450538467149263927201304999547360232076259868511681005100549792847570410031052184236678191046759077332438680812193537849607971085069408046465943896101221132281773857481355175239664962250535329563114701537467725364069659058413138270543090428160298365831559166834163100687582246979599152545877289222686797304598989734899803983773456907423489332818463497697804011248666214746506988761122451549725594787884851412825573047590093779993344814209363994540792888456995636263003615268677707963970289423762813491190833586559784309949262654457253272262494913135236952224076061679612420120638548637650791605174084558434479148708598686610333962407062734143701109830852435255978239996190500639108708162110692692764406730192370731077364436381959888038793826296117581505679285672147403613387373688629303474057191662193539287140839552846242204399959259459657876775882581476112795843423331998079943253754475852041427953413269178451593090074907311919093931272659342300009265584627706435014006128239436808137383912066345758959261800200973824480566918447013767466151392001317676899056897702290643935245194182803698409903805163356343299656379945243437991244095285149977407590723806485441000284759103644382691312927881077296934963578515617039572620461055256074968191717914890591188102539088218577336963674073625748932428137104308709914840173137520076558340718755930521563411464359078224015439550280785453014778898119324643678795954535380222308726780872814065585980165967266851675091637905749425360321074859372722124496201816481614517463887680559896096104581968779791406090590469030140286624650408482242647473805247623802909300120313399694061106485759353177795211161599422928013318812778704655258787322164207729161754679070300716360222957395808193730104258903530439667439408630160759988274907489790766766476675462540366690492996478349128360152819977916052004539579082161807465295057376762639324697660572734598835363494504322866395632511495025733036998712826755892190231255789893632120921703753115789573089509685714533806488552400399880434341739407747137488717282615055877018915272504943726316009332117883740654580260947751194431401169132676349098996765265230091527375832502131173663105770685942409695089439735061565642726928513722244908887836984568666605602701733022756314477620613338744856325333305824225559592634691423374759617460744973649998288992267328342839564055071038201045904943306116300806247015295135606145022957081729383425881172419697748446255276427157398461392867752292429311970241264903346410708469848355253947100229414667345373421821442375403832577265316633206180613167306425032761518406722230641685819648668718852347704651204726258775948999080798657507654338957454531719887369852567125083739882816735456803526542965212093033052237099592625102642603356133179677438853931997162567444547727651431750850235573009013411015620330058443224039332350929048958937017384896167397876361825238654926415044287884037013954944175993251904665906396138065398162817117083366435699870012579615896182120293617203535464347020090710310129899431429104001316522823646863105528715564368128913201633617327597110289188871890346008645728474497977194328036216103160260421421338773976173242436477094684018173445660489105130963803120667165606369283829815344607759470126844942529845003187745677827969098521232270335007764114573346012981812066186145838975407552874791068755510901920933143121172885295035044427528156557434203972052681532419207010972458613805022167926041162198857303926001863655145970922939125661067458362306399246848420164908202632618061217437438194731923720790992678415148813219154797763774715627883492191539531629208930839785150899305323795065307687658219681886865350816424237290110041485785471911044945854081568087897873436062056461248733718047650543600739878870158391271879214594168066315270461562615541286978956210817725430518012325870835216159321308191553520191429148534087751219055297290701868866388026957408350373040901900850964317474441235157608804028178154866133650780995023739404125046893577720099870206558205672605370518755035925243566512524093229047889170616504582162244355536880342753094442969978353774752849882969261506494452698077658149404212193486057661344522855024362404449800461646780178963141250977021626653296696804197847601432496779424565602156881488182983422545596007097410709063583935548920872293742606746828994570544447858091225114375177944728606999165868179796435075829231222712514497859114399933799024123902742601065348395680991857962175280435015220813572136907895005066312976410712267882344570435339416537055495717975600266094819670992314091545428021192257492072271855333982788878018237777939142724362970595196948924409608019619424187402263948406493759253934066162570993324484068545396986095050177412949874589166789675457325267965747000852745745391946390707722077651870814994675099035240581157516021468706435667508307702807518825629676612550099763318551531286231036671215641445016346629664953244043801884734712325308365177949293520844284733973334909624252282078857281741773496100626693650177867240840947702464039504025188510723549455895450615438234268024067818827752972137592022808300250474664495057117843623314970877522183774654301892897344716199757915163241248806475281074716020419758517289858039755981787844787346377102990844130535979438593752035165681718449908544431039193045860449544417710778617277001137598978381704036146803265756920205000310624906020479473478140155418136636192804693652650414121456546121124096639880879868043848896523049179158513270484777125540236579642402533842740748771390397221898574072540118156021836993025389558771086282870833131888904690541332927059757569491494043946362668032958092326514980673371210572928627092382002102728679256343770042759762011586524094672765986036844577400556167674638308874598603991037804855653463062959044772580961595067050113158173487052076858454077918632226664899685068421600786040766925301292396359998395312996573194010571077259052114570614620649169491367361261006518434917892261015676157979080325067592994524815855747086812755278510369422188149742909849965097823108885248667034640831699769175023016759020082566997417343868931545668113229377509054116396767610745923265007084685882869722762890922222048832755066195370316248037035311680708227163694182584093436825949007013252143741557705271526329517901465120406959816390627279759781524346114986325870297612051366238341053589700173862714553381091883641007586513754656546353803100547799670041546225277817414011530303329741649281632006498283606259745440361674353604980078856829271747367710122108649707941771757612463470594152014543759046376793533543084391141459442703178496677346189841487304046716902259431224137173490027989099153229473271624004039884075313900016202104861243809516065610344412853452811553570594325666606231852001022493383679958366680991852845698505743245618235870061656661546308033186132308499304623086289686791352470145670016340046558167307426660218284594264090194955382853352259733977708895430040119393915501086783613766649013260460371561830526250941822537035454315969539554577895061359681975596268653741024390213090390719506414837432298091779080148033131040940212342218492698853703396150780828018155520445383530437758044702464475810524050423497806346923845133172738645107312949775944095000522239513241181123866596676344304763848680250858835544887863877867037224510210281754075735315494652396553661227680600952610383632807586631128459210090322167561963345107862254162742841727170402654104673503727831017155916577975326612149663787732324508736770933963570393862528862454229796426901325897108037594271758223292696210054645366561093648286280255656627906119764659643721928591420491071440396131808994359169962941124060817723130353959149096037301041822841353739826420306742641595192719541241216211099758416631356061158287522879265586461169706912538274197312419772138150700926795596321929303778997545998805436739351487129028992557214597038394127031121982657091288997551043664658167536812754633523457954155047949118422294402857622827769739139725507292093758916229608199526766015717077698743278781514898181606170714215682349704093158511619918435579618853140535732778369838473077225894488286327007172362985524183563423635522273903539271910239089948533416219520299141392385034006450319332443307575104804417340797308875884696669914097578661136447867274706753218442920445896965622706897687525840806283123682855283949236601094867949086536411782211862786533356717137935790636138903226351237395004966181875874096642672304556040358267899438993171777329698058970803273335882829690955403748874120512636639652163892784089775175231150351403115489768692797598212010240843515335033315580968386962241536388784502175172089580998463027747569107793796018372366155500689940833227545850126713206637313958191154218593411682728108425372852475076476883867454049524048618996970036166376250875468387784177497749620273344239268003761697522794479331110098807236135590065727879707024461367950149924402122613947416547077315384475842865621638687679719639070422185830434698047361063756463111987241562239904235168188439841094323945016802577311392966288418059305250154581476600923371461813312453911585903746034681311545142320181512959860060185000677209697496040130177863654841961811478846394764346827614935474249927453803640749097217326171848942129668414763273134159796976803686957168683018166047129958861134220891569554199943687187908937696403583075014912063810561953841426055784263906699273929970117651039687768514663466454637358680531226351985538886362653583145462427368520125807934254919903188408953828527606826029889165857723417386445398899227552774162695905946249178007592989227603572314319455524731637160782753589137622733434961979570744134919486142260431159235617359918738026078440783330385258089854580880823548674161446775823229965450235251349667018985484693646310511387656806583963198521617554904464821414443260653161850085578942535492510511630190348692095382714333599014397193703545771437547863504625297237916554506205010387530723143553185018369469762485073048301038570718515033615936103978396445657833683728980692269543955761448740470153883087418603785262729352882397352860502380423971064135634031536115160294113506560858143219089144754342173132854193669816756777447530043809167355875028637562907850088477372143349784598910126860092524682377812500154889407424122510829610802144405217713592764851115304937535959112399965597295302048652866627170991915460104341644230145047617095981876457812338027689695028462543979377350162070762757363025261914736659494672226030251869663438744184484218879633861649651367357444319006461904435573009349484164503354980311752315851522928382110602674428987112534987238686517967919065778420936568500914492444866462079651592689713884348192695683726024386072347268702979927629557870444593511382862482495378332788750154783811956293241489602707602404662754961476175436237539237578005837725319478767059030888290636163351813946828746318810390090184440206468602142330999780764350729030455344203475287549504493408125469038194105574371717643602798122525113789023099003627821763080734906966553044070371188876293548268754052317653060887237681155492455034258480347383765141862586785732055310646175691386544650874276329152160675821027791578137264004397819429113064936313608532345992148293861672068062227578466611085337715371336709934966093281419810557477421217698690857857609027415360874943354790608799677647914569514429663553275431976164093523246075470293685081203225629233901528345991512760463671900154648258222870187656570972119244712701798797240933544949609932525698424848002105747425517258242817964607972028388508275362915321968822932238252955066436293023009172131192902800528163996199454218873187845494171091400534238920011199266411092401516846075864902715103225224212836849678019750547034944838834543791489552377454114299192368708014799221780763968443383274148030076483910361359477872964706578417893650354320096854195602614256210811552054044448894064393497767749759107096281492148115145379529106690042325375965921551034858626332643714231740918822506176745023551624328919230910772776839728911481202337532953999585225495146432901393775253516973155536021860079249898628582107652699135515934281456100508110136050688722934561915210571467330716198937710652430436436078224455107867901510248207429966672505311338146379867651874388020977720220171961419926433463955166882326708728743612172740005497130683928018308266878464330109901068167850556815349399688061912933106470198220337583823155683123113677680195742139892810165902316570065957993640380038258624379728516895098142322913218610559569952926101129435568393805215937154920522250349461794599450822658500564237303219786453084894110918598005432644603202577749332181221848021896539835771049122818804549246511793835660753572794957207291137323371515111882656838553474031081375742175024168185680925745084210834848239210532757333329387803661581918810627701535383229293622081366996410802360185918729180167589097119554316462574629258001712047240739763742641366294131477230025066962984801126719045426424075324527931798571857690565072880956519377138675864362844539755660810535257489032146072617765000762896682022990348785675616093683583236492667606298391561986371008989787025631475805224618492063420100327335555869895078626739950582664937049251344739942427017510921385701905798205996567114422283573926710662070941043748541613317112880439351278504169482234530185022987509128208020192464818161716466582830162715503681904282448618283038702302143249857313967887261729105106911468617172958139797225325491597549337302673247954612997391764435241942070913849606782043947502380650323224483275135193199708445751916478011568198228395197277045323605099776796989908960753280623386163234205447777837236396141189638715792115909064374716095343171038364769672746407267921959294096758134862598509633538088155910849810056830260668443191323910343673124791905141227826216520085742297245705494316593189785493876838271247073935340272978254743368538046925145142480371929867476280414648428972239051321601667948989757097812886737428588863316875716918964728316065962034056434958410635186744690065049792916569102092455816248322015705674050575872303703475832195603793857324987897095297261020771504422389181236175207436802994568028386418716602505435806826444898068959290228738030940660182730216066948549182327503611637637319632968248573017823743771697951735409194897414443474122595154085894674823781500443844331376447353986290291709699171592044326144623023191211605480855885810832242015353634422807270251944329051819137572619267191253291817449939627119762734181829361105411897087223905735230990499838173693174990640863489788182299288273828530885021131397446585998132075788571412137381826235449043748863026030946269213606338763157469831882472767717011679461539590672138254028971443141680517535401908228640117495705284535896700375956587148987637337144674855026885609987439844047157959741314435838883314589067704406930095563820163105727218290384687472825368932278976323029039715489385277248707351691732627161975061849998458190882500635419062973543475280721618397394767148040677559447275378529499860893644774110970529362733227370729569098530013463911718327330570777530292551616102078535397333643630880234622505866175183519303662519085183070111946926587842251614301821479639764808697608760946092085125358459359368951545226973964628045497186939320785629981549312092823703205582390064605619699457606023794858366991197316953818058317471194953257815767700751362670485780935320346958519525346985249604941433136010111804808523004722591792235549216935606078913453151417116207472224002860203233811285364174225910924510386662124147637526040184726165250911136763447273830723742148834185435327931851890428230289419489400696464827795283694471362313999585187498524472990869992407864552860211894507192872437626095434871886532328744685532645356083367997644589433040020520176174200054827356687314762431387348723871834628454111337214220187950884465357523261429483390718498011204861744842755223791812987891056356266386556900311205232085843525532947998144889821691942360063799736055794485287300341304649252130725720686103208917905772036047997023378202639985488393500846307935201025207197474175839716455180418248698765151929253128127043692771929833061463805701200644107650192017959098755898702023997301201028250832827617248562194355645679115036033165242728408452870019551483358002323546264308355143312205621824720807231757799221018299489938275228565089930844726362421609823350469551023627842830004694101331139897415886706700101303711563304496524038585239505441839160174624831620799236068619414947338298336720513288336887989477128470271886527112059446321184856149976321153032891663286466883166116625489060005640771993988869406152608465543300999078924166710717718733070774599645781140494143064647593498947210853412276657418835327180932491822870546074022597410504105973898503261570742303909504402456290292013477411338424100109983816667375904257799645203664206994991031958204806911724542790236803538772351020746616968985796742909992591421862410589839415453098881692731105411134382830008331464287938251429158295121639234516561501339550909153922295508449724858896015053859714674091676140664087913161480489418666317237936784493757541935094238183215151162722355953192260795221196436276454978159339437311514194110559452044389798856618803441024864857117838397360586287910783349151157265095195990756052901978289341951445873747073263927324322107693234702856961602940179644098799530179718239111078567070184869249117579029518371769682485905308839542396294670451105710254523075742080741439224517693441581234328810896517384303593791910261483734125793319855914682377686611711258564492741094409408048874070193872961264221673383551139865948379112384471607173867994601782183812756140456294801702331801928533252862393537893087528144508250157648625359006220487013313146866261810208717162998171058067986256898655705620739174683265254366382539224443268715818208896228114136535726696669123719758719126530322342373387701574432475072827346525045967386353140952701551727164589641194990081674872150886328873561619792975280472746212029774946896124417067393252289186633841124747614228068566344074445962900456496554354514616282555054886901698597099495478446602920358231922294614946280052282080371208383568222153619412634232174265921800551563444608194660143251801055884000040706614463707329273687637176466184139866512878100593376505658829528431431801035740569098088852502149257075729210307532416793194385301686844064980873422027444595678142251912034937738659817432205650691278236415411701210859646775145637754080151669440771928129486915489475730619168271734278954916947253478704548216269644798622200025853753354317636848890463866095761396866803792655230123568983002809441158723660765191131701612962059244580817266223320862708808597352752262160925252938523032971745240416793945274481829948034333777577241181283205967805599494629561831923844181326496699578072876439018647627061858851394564137559330552023822789620192977169362184622423159227565329067704649926576559832926570681490952394447598129921503439174801713211182747334320475493521012558098535198750563489881060379401900140701970285745108667341211797883522975941911320928415064889413868771653856918972627885920928348967546544801823304955229589250051181217130614863141822238139592554179674136863703587948564908329478668204166483213781427452101601758741946605429791419660618721383709977582366779590374003316572272015598387470205521602324004609119246870314530164393469368556723876324958640811947996068535878119606726026370483438263932954073186187667503544228243905205749680059109142920652943187093699420281008898085523915135619250406378079875677659798774615846086849718218867907719959272929931955729302816445266772468611158939426974287399827492500823540495612915753190625784092443371090737606268892867266639735283192639774670915942809334156651269552811268718028804913325177573991228445594998155100324607126330218588469133275538569483172390973544501157641360421135616254176099449838050396813170670328379010955411425336686896483621806862632974621946629574106988644747830711346121572591844777993161799606214756679779745988456242456956358194841135173374736024331743457158693080901007835149922794261712469783598618178273182875454106933953807800092138235527877595342723249934537011366619471982470533528289908237237593706761120036882842296957876663064925602800335312696861075383436365283131742684184089418540543448205802515148801840365176250011939564755632462487115179372968101855884882082581668662879995358111681282256157495885760905103465718633617412784752772895867490272548493991449063189527018447214050238582127128354303664781203780329593940982072627333936771042355730402870758725502550605454824272976754316520083902607390016239513706703551261412560684036435246061133836580089320675288655770214906998547179912027364678568248275951014034560390399046381517852547853307321971661586828763141099929239329847014247790500296652523050956716345219884583594190917598589156429514836535077906161297285705526095743769650297283402295123232725586775058732445102084326153694925700176733629182747043102386595146414186451582837380796175429284487902781128328560864943599549634937085351270211638819730194282778288444251415371676622476628831743594709431394740286351997615705742656495185803632977726991212726580407904779356236523341475640614236007712529896940661406872584536728434801355944675909794117254754544036348331612638569173789542578620048693956214340641846703073273365137690866515906695486608132363880663977428143828201988867826487926577632133109885575176964032605619378438200773460684565543662257750729122013255394572232196762076945300053412230314388064649832112787062754471732080645370567235259940959382455180417706382930239230673625062271913620577715992279216542887350320176890685590819954422248717851328479948337381240200391754863885430620905054833910120412581699855820311054196280099239445702217312086992813917435408255052168379753108726989760250512969921856231528645799030295259288535647057759759280454908843213540346920954077654674946122289125244357050083214927651329018507734834143219873673757649505992450620324361561068396886111863630152124961221706448302772415734039100341351030784121452595272890610586726378904289442347746193969764969793330882366988640497536618364054463672187913601564599865391611181603308256176783636955019337023646753937321637375621336165844772834263914860650717713832943941023535441372468188926744938110255584746647832939454562051283233037265946419553939011260957902836371506801999407556243879093671724124311296967343018380566684320139673035947332631002537772150117625952208724961232704082164703426512770535451245722960519591036525097365485604691988553247010024170364095956814594432544574342738755674346166338484074201567469754598016649348751869205651470652904806317243503644863253811567347768221976188428002123104307375329744033645874332352236334073440277782330271433433142400669876680121231959794880275758757708848172847099418396610489985421530748477479196654672841814310667062276378098077329780451355007294043924935751858136319906198985220922253070763342814739083913689949361948635929230989448586829326071933812787889362733177082483667536190754356035778892860164265568804626618591182290888665804354478145777395062558509975986990452366641778239483252799202655718622171126464476071772140507682721847018804953708109833017273811992683642631448524319071130705406135715259336747818771512884258103952415404152932065472137794180564921086480680163406665162379135639360437166381326931151129390667269587529006325099993674488836986452124253837070966447247659671012114221646359525075807772487138038734062725315243061437210036005090471356212403912663029535803160057912799216406759012329865111588644679514348425610279228972490440722282520846904479512827365075798483846177056928756184383509172682067265384627884665641504589458302712248654802448788105708120864864699824475366657949067332866936280986720470215086488871266339860077118138725218364179250724113809044951965485042425821954054010258152434990097511622243293463907144633255031750811920769622346325211628534376899840280460793339288728525472248496766108854993300638306052664236639117795839550929537641853054799904161750035776264062241047203002374188557209407385955501418771330671878867691710840782558728093397337029016001379025179781804277620689667706566790125879367082255338492915042989161769624297344332832526452907500232168790884552905782908240585756905313333778568749578629727961678774043687515984128853262295585071714909667640040577970895912554071817445080327446992995974409523570318959186432667156155821235763438579402511543917451456298866777286492681875335332655784134253479338653818960079350303340836582445238403448677224096355825165077655903838336255898416512822927634637058182615949397613069937334326681132971651065066939000941295093748703946087251847336742506146593866805103163318220203171269946716811590625898257042065496793025278977877969242840717132565617597283720747182524327419555361287395768444860412635803470226554419464375897555886779236160093900538476256980003491943395754026944110017854207003096117286240722458929667581318116361845066741253331730699771017544996346846414733994468425487118840771302716739503264440684332911578452393467121828623078898681443698155378093781106960342106742866446459089389881811564809706057254146935568162188184737822110048081362204245883280686949606983870622069149483080183096701732955042671421766036569447393396050825660018868507039602292064606299916569533026455511758496761222109010078576511373823832632965981962027992564986914816236111978928886466024121428686034514050185858755342555667457428466419765622795889088618132015869903989741909217422529769049409436008691040821561608084663000030384839732013725668283035039478030220473077958726309302260692962309933686958024880252823761015624789181090435122929490315993245612219613574729157060800343459420029186374966114573746332980784393367781544607884675240745384730890061288739110615328653496756652674702750232151776866449016046795415297994680392926181301956420504638093812991216641062322763429201063634262313179290546906967594388994087973028317968829413734678603107983647899845293877932983299979992824904142381810833164120310495714459524880434094281186608570581820106742944102944493337999751910723220741746997603077498177145247638389086787828084987339590306499119565782048965441702038104285370833164862459497188778212156940516467892136776242914869948589789495913091842789901960697423034320385746293099109352683607664991649658138200488700105760585953110451842869515285957443662463392878483891261827949466690862732198762888601174960394811581192425667696571455529851001460855779024489140038590191376393102041206768163225852513353157457665384048764294903129131182217056112991040008106134962636229385629723384141857902548773884807115426510484383267676777795956158568723149984305620015571376715051214257413067432109956550405452438857973125381120727566254129819762062605558897854898800467692468386778122910935072017661016777401740851820299171047494466946746710389908625879080526302422460529688061263690242522461503125242756616847599725659585733572505176817213176902936936513337323352885741749171709707188065806836906827579292583796712413066513120045550813688511014791522608192666966372916784548680667831432859949790722677941832958049201478020805363240011398703981925435819433402762897337946306460977358297523311712057972943789556213375834348118425132254558561455027767373965051482801472886104814048059552247568424515903967998134508087465768577655095124891969538382839359963133572625747150157744321567039476079603997024054240631312127665597369143929062276055739416890586563733608296417630850420171605706323547292308324792949598756320008470039760763917607105335960928682031115859281577479394233418618843465669829690324455951302564059318416295247010704800290028192029172089536614315599529622693709023076225493042812728465953842431237861854082320270620833312426356292047109755282397541590574786588062890620120052637706371089328292481155058105699028617258537622110636426935708475062200333818722041831505840092507420348065657892016823466858004875910461693067505356439444282509474999504858483707396873111380383632691313905535534041048511114926092885688722618340009554301191047637305248344454903877530009743320836415617458287082374726153444178895916122587982560778188182093410719049960027363446511763947782958545205007113401283151276476733859969114155054342688172804993457304833069527193167960602649634678964379416567664253949591328806858602127502717220188648229959930305931637979780932083852873690596497323353242778004730714622231324091372689428035085329921357785501641136308488695070075919155774197895393485149580420350266843720020986834924147407304687769096719205266788310400205168341669120337364898170960298853298541835379958232947265769834183863425204978074358296367325990422310608018317740516931007044553426872402692594936449340934805598511347520597036305332116747976772992925534182454749331470402324885847456915986367999448465010978645717364263895582637677446726344129800610277640597344383075855611898944825353144970094237259705825221730068868268288312387863619262853705466338739670714317040008411160051206320739890511742580965507523501835476778067851565391330016103173731799639374746099089796950215952776642493602981599829423792821129549641250615833134720052393799149325478609632565227296896848384691033134474290212031709034727838339358780577601365189402039283498733738106712969727421580339381160625562713589874086719079011971188297289937619123148406390674629582739119201777127375062361825092385910394113241926256835303280164723449378552240791167264771490415162647271990632440537666800731784125722073112443194529658619967530541713835740621671670130524513943932828368194875796637767907124351772711563709591467575590322041307711947935257640895805356234513978932218585833853456641088893137400532724170613153194542629781802606856978121212914180703840473240980918238950109052723182752429098503665332137552950850947114177837458904506701729848729973731608760128125554040227409755809100677940862120270187412413979803804318958251619337821155640517590677700232329918287868002672959285689617107556524797927759711420382691353217314502877646585745977411824919227536212393873683979838988941188218580399361876500834259323365392429952642855845678417331514164375072734721471191514997818595459520990459841684221035879683142464467857180127733290070235118327621646430061665401675598417164862783079070121931632344048209507541605106587092349708048041561831769908089872419456840865958771948671159809991817616487117115434455588890181806435142699901853337675339242477594297600156734012630674982877676661485457406356216389083127976857077890923932530545975402867747099922269174007045544113913338931230268086524383405158058577942629839826168921753009590765308377068824584171011382341198250980654299182113881193551175630584030313720001672318905450655368483490624936413775872183048546028705427958430205977178964540661814141586050476395867489312318378345683942462852964709830780114602151343111081934272631861798862110978318602163852071817396258705379047009124584765635073309620189973450094742631233031866859402683034348491127162057759554996991790653974138968952802586640223885291622218264103816613194661968398411438567403323249526192827711433552838612346606277588871765452508330552363455128891899873249126309410796236328845109214014622182610422077069848017776465491691048113625988696731222437242322761984147491253769129092568450914381716430836433673406451470630867553225716273935120469391628941395896308655054295287067116167416143736044382246066061937823026670676241605462259720791307877172547237008733593256435801651020916134918897771637437263481755689726870486349900521459621660957916272004486558738387220643818935969512776715246520111590634178066451496728699356024134271450816616946057511744997130336936091697431949605428063925654203743115602253958545343989270360604409595878013413827692169893496996363446456959061848023289533881468551086390826272168685417909513672330432283492048995392366876297440518712473205909114619931661962022892969461336983059887377702764218649319157705707929771856878955849778007166244519743070940790511359771818245461646873571929247839719129072068018718618418193828583327435156727157395650538237806781712504571642389509576483865788994421326583718146684179607876086384191606083462177705915321244668394848357691596488599464710709177323266432801794538044659129286057247606781503177137919394168946393553554490756268157892793774260627572906187860359980852493149030005557514559941705709684564192794005264982781111792013429389266632795757587407104751843904055808581442400776149783859229286651148856588870018416719924996462532357239165863133018615653002046211316990360667321333846121008936878880921845362360631035208093371522459097040451081163170859860399290404607211666698849342361010867524588501183185089246160146599950387783774627697142987400180782959778055380942711392183442780127618206250530797621510193750922601561073060509637327831865841681273269147809242192901818872530749009988504434491824780626343763200711874685781260952099230668186449248125366484047285964725747194038814709625045791198531926420410559056765491789025787671540438517635173697178209647602251744825123562182793960753207916809562980430817001963679340207404505018433586867280590584728037405735128733851483003706091713696672499206658022005492146674485544657617030613512636588590461490586943121914049770277651344983127210880433899968004349151716635160199305903866175444688194349393002611882247504076394648195739984915604367155342704106526019941375582657256226413473672271225336804487988575083226971621432957440013864652261697787473904020982327509798438465620256174298063992277385562091189732267271217433499395442333074071841761998039962873708615625155304284197156839495704196634089361706965823016975478684451580164986267888106988842136799353992844809311540729780723679226070184522668824129588452743980611754698394977827177521584259190830928094663662813726942420377701729538967299043528854664747066771044549586164587553710273794745916811716415248058329697613662737933819000833980986810725749544319813685341140889546648655430092703059566594681510772460557010088797546066197344962728283230374487841122412651231841611109392976965207955724847974343777646563354966125807736775209253993437370949676139346918492459654900394130141142317227205076423641726450212759473609162387746555581208344346022927924615096948834291734808014888174259148631266767242922033461598180646199659003490661342762753705783914338646487235084815372581247573871713256532054500396588651265894566848539866801069614560106816033406598402223458770302542183606845032508719096088248615206922715303118883317403687469219447751586057847326935544735324443984079146819821812200514572141974772474846211144324730663329722356809753301157206631946652002029891945474391865065105565502302311319790847514915148318435650110433531397407112529736483797722033927095881265645351608768238029106635866473025095781574084344709169231839980026302978011380629851494249594059972513531313004191871905676260727018061420149680389065735925661396000211299875578832317228178618145467087434354767016801808709668366919197549473618710817573886655551896904423933865679547060891733969030076541035072104848952661818913631316093351893824426983802336829891338992774904243723558362114110694488308227926621457133332597680081223137610122466770440400645792975833005596451407917413532533157519755820683942529256183421943193057544719175149326889112533810471200537138228750133337651860042697506825253597455896283468018784165112374024991817527839975842261883800294606078291641154683602248013829971020447333244281754529688034667745845920151996769941252211628411449109334871545285525051438010073596873686503249857370629060579166157593331457776350816407626097769076852364862936185552665741970815255941497639969249234465907341732801365266652782866157359001676717534279082398846385235572587291889377872140046452032534765495730791427809888237929021335535206794444366546262379576415046885019761390652357953050256132327203545424398079688286535466724445227776571037561452696973960351550807423949125493166900312526922979409730514926240227219064687744088755305562868722544430469146193082691813491186530917332422866406286850512854369245305778601379800167658470945895811222923903446235858165924686729501114550634242386235790079462913595718952117237135583852429338760941458948741930799991484151015953259911388024541702252885722585313675686391662697126539484126841155379677130443081224350040393750534584478346968281309731106777415345939204921900908031378328946559365371438073964560505703575166452278996340090297305895694742004625877372244902574717679475274007834335826438684486239662462718146544912363242819280615226140277239952356968919204478921975235960550912492373857291649178399505297969255656864438364391441107236630839265818890496018994201417714643163677183876541569572015496127790102431947331399103619373135513657507817875195544851550772025127221003039708119128292670783568955033342001503775590045442611039007337390182755522740990470683211062977411823579355171862902638326454427107962950476474746265319207475419834507513962666568545595251520697561413205445496378296307984264548125443156395461651406275303961263818664871109944411510219809124664255532110105349429311729109863489946318745173879405537302385528549842228728893385275823644016472067424996947136147963152137448165250147500578894298006841513911611283385817558059517307388266748825594125231956927814381068935669206210574436745880369854428491281400730864337955579064265371137139984908914720795610293880544841636934498929374505334394615243219885111050921108091083604661601739258871592839728941143264176818144693769236110054254930409196174055882305054570631055941559080962517930803305944621452885078686855600409727057258372950026982637272039828700795113671702616262111359860290412687177707324197353892333416012803925972041313842642362242109607190376512630447519512408788236701287371666027552655506497296418904580018856987713133678192040601004402241194080022891645244937288759626624213807425355660268936121457654503412002901562633913262179421866878496679122345540462993168196159713472645239031597426305486393579646394857591777828150245225970385718524724535259845475916304375157492115212044610535989947254872949379862359114901388074436356421133938673885215709250271707040153943575166582244498258239739902166604577035066573595971993289347253593407574776977539693431794720875777254796936292984626300993542194561133671314945491550588855288755782466518858934184322327948707203014866795549189380223468768389284127979250676701848076313657417975469848242277755100146798302345841458189688221225142990946206825017593818953620359076516050516459746840870294368552615649016377036494830512327462933363506853636404008952654240585933264277150942042662592387661020402497481842135869561826452842873526028244040852318637367303423373015974334850479211130139484755832859213777839299254853621752488063851166656383300378114133411962251023629410310137920044923567146589618975747072178721464015141847001973068402184735981680300498883449273350763471213478995485486350692373293620820136805484321120104451132031249730011464913937205825442493577328656028084922166375070282866454507976808530500291084664362708468640872765135671143988801719723347576566479578305666054263292989849389307058194957916017660904311209824388492182473329076204108581716221894427734609117183613421278360601526827896384925061692772843532397466500313155996251921739098413793950070380797010482733720940721811885829302911307343775135046312882013320594653228063306642501010453345192566314060180461992476469498085852150918884716130465234916059920384579064043641672166117827819791049598159138845596479064153234995556806222392252400696631201977303401659815417387974016299699833705652068502566127200441177686693040215516139879330166919742510500784477001813626491548899332599076063687112608255090953275726602948527625845464576610858575182038024744376146280044890309361799241365565905572758269546898508954256875938524993268487819212207620591053236125437418430809700988755947911947477040573905918712718865919741618202970699054993782851767285503953687729035969770488756700197866694514538011060592002942463182642095499952631886807681458135761327423328551611326246137946329284402040566101472733302530574498316340738964106646455127181449402747750907427790906890563360510576187504901101410581104047356154202558480261281100978125175900367029953784029948113072249978400089624470009529731030945064993522758764434517043144669194799002789535072246356104150736351665135243149439598208201411563132028196280107757854763603389980629807186366695477424422647774696237966409616413399017622952307637910168163857157658680246259962387506090393048272644052315186536377578888415024488507754271630379968810061411626515160550889055107683720593557519461854338955662919499197579262436440155434901852615338676203945457638991305077075072721970767839751109525004285297159832436615378416083451007704754527670004236124780469359306345442557555596695056773412387618976515326189376124222737502798540369606867046865469757753882699302921953222051066934843000306415719705892239153417483414671384087295997857892078324756836990632784371061198196830105549103581013351562473074024735789408718292983827214489163332558402496655726055914528020017805019776548825083601250635926496863954139772847253803975645949338563134654850811508980910607147110647449759220112789156449814454203792076692787066343742704030732414173714553917435572544171561951973733499616302994397977920288142564545340081679103610623508647524270248848651182317692280189904503104001504918100556487730205213285220377019482023853507514017678981116546316160034240689159510657007053669125585543764509222989657268045814775626185439280299683909895297736672141448913742025236606747718609217180843285420119142081746937034360455949062716284382678533109133203406523006724601799851045816421489572987845851531539166683252673561918793958099338773321238013956693379338881610932643702412881509012568333948154603247313923931984222718811050059628778677854148577382828017606477529332422998550733608719164157167723279286368436558642431470216665345900815485490088798845298870134645457150925179478999093128248761342907421661503846481161647412186032374016283238923629604684320522563315831190149562019559467510934473930169702391180083687338922338059472012639008440535079057534732779422807373643624537639105654376697494909178929576136169496703689194927771198662995574020540632570930952862841440769054695835864379519565849856976406267273018982650550581385671202575763715333203272569129095721395982456644024760888939563944740536668623223868154347139270799627363274371442146634653359569712226496686267032029044070041799225962272979283347486535500366844584576892551970690422595561109089171844027216239170794134432027120477559285261417271663756783499686208116824798704009158386891438148742740651726224356128230437147439819492343730816624509976661858000468647327482550938395565693011642971032631432808017608515806159241342914264474727825832668326531289260553437755465150696237456599090938269004764735148385355905076123654034691313857262898037141951164146317428783991494798325250628148680608531503259465733896081636003522803375982144469380716474671683790352423274411157506332601641921193676876194992363269268892964970958353344411734674749759055171889648570497028837979826823418985276274729571269834582350341923195990273838253094052590206283459538111747406264320107350421517803753655556670046609599732153733330787129903548012233272684716604257755156584430355696741621954179406193327391150585953554436942095004346797720669494804546903195970001573649073159130355434238240965118974578993792636396819022725196008555446410893133093105858112451899062510141493805407109447120161014581690411608459599079005818433076543500120836289975033232936797764454047360876744803309986616045854937364472991590609682157390739513207544227741829904666209680116401783753231943032057433410584326703667005551529251122528873002124512714991404155928074696918309627662847615858269551757512939508089193317836049082961513641300723354871369023863966394828745353872492366384896169694269866731048545473437376670949349974026412572736071420676012735841019820294093737712496579742889894716728086290560036217968760386803942269734212457257050630406901142664377790360819714376538285239730809120228687367509464487957419052180560388550770936515989948751921896310808642809923599694439232620926105067557314197730899259973712946168202477198985454302567359962373182294285488584262327279235729827409396224357871577044846322015234849315733636587013872905699303605227285346337073794742936207497710027717726672858245212907625140711076916084380003422795317137015424339063376171546369279262661333184867257683176035573598011405167339174585979228263749254611640723098796485950347909086226935500043642818431168294441306676017397382585356550294912840417095525794873649052627932465978400854870688654781348716746715813621338799848740941003841113509190777747150285747328525017831696712453905493741241116586458187854824974877811689714229665804425167847467414003983436154090173431067358080786432422966128574777400341362709242280345108344134980377170370711596886505438538002561869420174645106014622875008665235826370825177812362765509646362229839618978927600275257600332468390643070246655701665322627564604164518384875262557958058698728566663597174394657943838586069130828380685492594460589555569714172312708603346127933583131315775337478074515129141388630323452750071597928223908604490375114677194292774990728274494924169539868534416913104959100480000589660408411624968124661609604843537584705565168082498634545386561949375971523661102054647705996170361793489968154910458228709780416287598583259462260369066066960766633492165066104441493064371657449122640486159507565853372779525361902534582933312012893646478892111376759995813130660707288942468422246329638407440440995966239390457728867758683115816730820918695521525179084685628704899807800284913960620147034092808782716891048298545114252662798274271089254752779710801343870283374772402819682912722651592239385136810632017181789214140166793697156543641304361582910044820266344154305543582888776136112096984861543785258809981566340612373586281527303408058955977578892506252324273084553377355029141826887965235962312980105101580070042537490156394886887333463030366620414515548288307188224627882197851095548133370509625901191159688805629787187807682828946064386768582791685874149272205130224566219758511332159093841085316529048945864931619024532340200563165647655473368416731177638409736730760471213896236565689202758969972740261465414408064096165890191165559716090441609546022667897341071832603485480275290162658104851079708392658595203658857169318810119450876255790292885424742489128805971666674527432679432135956690702675349253216577527649338528311976125365723941487640589010750774937088994339901826792541604577652307508994402445018379445316723417212339638860789593988492009973100586995326504577261595284915419874316706466448121342747939048683745145702959046581718354056514553256036207198284037373447454683473024015987531010576969503536123599133295947244319042328120198205607581943107188162150597525849741395415803531001617184525969474118631223133339536433505972546812299520596984175943723894523254029771578861161857150398657439441035835071060126447922238451329693513201987931870657006490684695542617875150815388823458371042945687410807172903471141709290866503639247961187290685366230324668431451274304110810867120264137466319131579349332870164836170294687889418308505111491060435406201751851665832791805803150075900928284775635618048646463135826557773840348348874000224976463559584559821202390427648882859310888258919603676391591109765217401053713654039222030644645799112246760462317766908647079404999684096842660317705193736026224034587353272107119979031810381387466234003286712359562301451223534038854183406549290239278295936140061631236898594400913185099438325991349526172727143542124774968025354046169661588326828278061909065253888786401864232686138141091406083314561752812403073390445559017875461581147577643311807635855185831534804507458390948673603751725608312877517833945075362800728881977378193771482652958872909102058576132812457133450956631031814980022051556435727368803684409916597301093734137368186824072996456237151744786624905090763759273399878166031514775045473181974513749388626899711087657664641932702783630649505286053741704276809021843464239724411965078818069095286986471949802995683923351660550460824769567863587694710511702268448146547878024630371658233479158600103224625377640822370629938023578982185595748145131511214881201130975682449201287689387745342857226873668927761114750378131287322710510077603652025687970834811605766334746867480500432389594750645930355323647162600284319498714542806061560420887861957429875206253043609098530056792879093610565458648854896793419559328071749389387754035180660223666097698061779535268660539049652185345864657115491802955943522746369104950079880322498150624346112064034898723730926231718801450546084770117068960286189452837783076886437254331197531848386761981999402763934021057980583952348420407969285387398071858699167993513471126925816791741910899868637327860864513737452175878635579175462886085561115372796455134552715499004577622275538527555122340154809253118742763791917357275142186796355785200558964765063052402094905340821138287842322212103715240423506185323274511551676729798690819758812104844464467414699439700760560386730254820402482294322466851376145242372172057990464552803111365031403130061993727720825961972879756748397608828723213230486690832160616968778098616513736192916174417536499787386196921172335755374402985448713964260127297024771963593430641592059769558576730729532629121261635554843398752008130500884706515081310269573934479214567874815426237053432560172580513310999569411693270397998715469792656558409411463436561374796606416639148855716477105675070523209946895125612742993238026157714435298243485664529615188077532301522467708938821359566656247159783918393734591234007098482902405978485278881601833272740905889642152354589710379881319107402045539485128079128495749486973167756485474163912156568289227286513045300812976201011395634537955830045675352076323300027643585202108662741920068497596049439468195957969730566351870699385078566280440970038887160682916147635831294681273195512607442071996624568889950988739012642852860930094758899608000462148430009432112232434823177576196971492274255566441840774146096598182563855804317591380824062097505280043781479221541118975810484774265958911045155543592197984402433032953173482101706890732834032076401342230888469066812241088815336120927000555547317612920360838013785668705354002082676091816016947010667731369340291951259241163323397731299866734484128863264733722958619980758293910244509773460182048994678356165229163676470810849288822241683252231509574282145395453717263633809004986023837047635866122873607097435535949380694471015685097578833397129538103640204063994414359103069555586050585892158891972589144777806605220647237555708375353561910899089202474961718916087846868723394370024686390922467812395604866640195400340895885011993828849236210067900275879288448409063082735464214628620864872720476308221468381769633667496257573553780895174252215234294303525297885297488774341521033032387105595351779193709481698890670110021768629707212613798665255398773894403109030087065262183130849656166725404033908192981731899176793458595724268267726566781819707768547305043454084180639307484227601777551369107988514823285346665958257102279105788222021851510192357942766830877731362717456902726134000020308299727640643850375060348609075818576274161920330407157691103461904198720905155482349589800194685392844247673381770268079673971413943523589630001248815072846473281120423085115728575410267837223173973603253351007311620578506183489348937084019503092971103680565230665087855272557227168614055112089276775043868020065982338736367034528488700034324676813845614920720207292287736172964194120264028549612973016898769423835805488897774709669176336448496291785353022122073514102679929108331626610755582614822153172283032839735501060390006491000093817701948604257250802018133579222697956661224319367657622243021383528837064064400684975364869179168883182900408435520500630709420297737931356383685087056733215658875153803000359910537677068863361245068496567126304513356084082640474496699080731481237232573950086552942487281022524780463456441284113727870341208631581029444584369188177419491162576168995835256192792226771350518022131950320096940469164889304186738863162798150063184012966806464160804552587823902390104706963591310562151014562934859411980155491522299228298380118442059771493132367291114687958745501320557254008992434891062033625091551791011808296623313706161843626710916338004668255515820883512656721704472039712573987342313191717636387926573266854208642936174180106654022753703493939109818123174558823680084380758412332439400284553527809006469452520689102808767687890903093182661824339628007361791494122718650953794172088231119827828931992194825150398428127403251423214780115645431306511887694598662899089393915308265404923392417429752148124909663662056593776844040592768230869441718219793237455546194867699720934194723222020681087303252040959554832296048978201833469514432040786239859059297111322675947828468521045851190720671457497761531616660915220584201808514708376060804105364847610707292396900893626566121485133946549986535694418728185691093025174553564126854699355046518567124168372259792687153743954145091164805083180077397490605278247085353690847413374951470872383691824237461082768350276019400306865014959562523553733553887346096698785471110124500637824822881637833322277775032586651538503571771756787428994414721346831980825031667089422745075176671105160713322794983189072623186064825950396425461127017654418295480169324325786124896151707501269060819318499961873185832834698404777297977432077769293435935831680609653551364782059334173554369257541995015840690452888013682362816680527223233304592470386720311056598997484843504559371335253535415274345238335351642537391239626156751097694054766842415663534889420588470562146230867445788737233462998362288520891232560153982152927596706119511863107451644764543030947193408126072362522115162581199323795135193310084196116980964437409172443441725470521799867012365777479136668277241180513919106397285200752508337362813528823237510968013325614281525633693453633517105649450057121630954497843768613456549680451543237903841057069962390027521453198946071116804530004531983611243397560355899855026969548322965344658550039762390904848955968264708719355013845228978684957257460184734854993137137204222829971827953324808808615572700946675349220803021124408629877150177816052864363456754767760440456938713724534432856112628395724684865704636225124606137583962760875701796664953591690459840266515354088510474747990784701713651119576480606382960773678738198749927323380957459086797300794082033354724839465988476063878939955257999022300931704026240077387892359934161718225764126795783505065488468139246829681852831760150941122715924356742739362598685906295510780194046376329488832528292749637986834635818903161035344440442887324049808692729377452440233634213095943636067769856467474962898845787169703181865840308455572810894571769366309640917319680417749154774560880415113629195161703874431491201347080188619552854438192639999708730262583606331781260600504207429699555926666023956455229827318279288084750660666750410491164166830740357885183284915028122911769073795606540722737030326555037730825461642884422184981401467686938614729079790173293861901524139786227491327225934006509551634777251617200171792422618452493390109369647329197760828809400189815615116076200132582687177199719783276241078179127019496803879016998961805030410156392445891431157422875484551917810377599600627989827352236587450486118844825124895177921593918320208516487551383209595701261120299633977007985451033302768020817297707647227712592511762669631844733375428013484185542499827724098169424887470741747183424606124341319665039236583462114909430379619115593295606322548837432896572206845462508899779148926216771811563082704034945517283817202927675253007083555927214483294262542656958842727395806599030410097549391555522545389514043152840578998383760433195838828243680063866738152201576685209974914793349725830384470295415092820878711838915480908853676874175857486392914206658789050387662891598531959949049736224646934141208824230007498836956806159993322692840005593158951124828680704071152291246287654828407091203705354549438302577848509582084637914269138374863216700912341092955589529703137544167154766255435085538758479219459826061875130074814375819897509541757169935319327154486981120106555159492395337247528354044361469655840353178421547320963493442601788766724446214803109320768745676431529004653731274565106063323302179249907050550163822247670753296364309265983625357839182226560004158616605643492181561150628315250833130529941409885994671131252356817474778692427297262079174915514728847987236521959843368802498729509347799039458581886213258809341563501897494864690098673338989347908446315403828978978216477022585759717336050131273342186968826282458284166354766827556398412009204546608753671852438945774585223990836191364105309249765769663030715060799322579584702499636379238864260470450816866286511845496887704243259439078535140498970857472585687102422413695333405529888213353821890509384875120066692731387657736563854463688417281261598586667377270254457733550621488723485718756475368563601689966301903672320073446342567206003411844166229739051749444650732600466447869465063503177463487677178102832948397248783362311684758431071566362146194349675814028100541725859744352219982283800685904960143513594143857846289858566535907493599941446119818061182421487910057605011120766013589103268238108633554919705296633823026168705348621760161398156770938856387786359295204219834327380048009405669959209832957709253664926294911575740061337870081057601151836485331308576737108125132406055519057460823119323245475706445899814867546785237843289186550564366675087199521637980461093217245076555026856889092315930615373399422866210087178306803679758811883289556906303920915934897323233428893798645168139629947376191226330114727702542196469527511516136247764886543688370868246471952001250869161911091145285356693619760527268634229558506746857108417884437154320102973962048472790874626683808188419127024545228745441516174835351199132235983083364762141889358334922767057732679842980104642988003328867174218607166082510280898813209810564482619126756908126594362563896452666457255814288706399095071747968325178991910803893985486122772933346183363812418654123387163132384340545210487066105053593541369548095341566259144170560768910617995607392835222915492964010883371996417555131192828852006396195737787542397634688207114176315835551679971674813547736552786720886771387573320953245641416354982655799046599244148447286585131841492738868092890193031695367760402390711588714767120652340645796025982762783481201448169023975709634172421777814345956716747541907950291116890568751282494669050388051728463014982027606384838039882446186656741503025236750032392598782422623597657618230088062119040675612097024489972946610868976414106773287923777613028098108201606135108779081164457701057481393853490530284790234336880819657231158979866043356190314606130812442346028488445390811134623172618428618607055342879901205811238969473896235533122351254585272911250735440251032954325772620400401928420100121542451827813267645222735098240623494614941660604735996646542316834881981039667191499079547151634605162806228308721123585096144452252698531756208229476878145991063368216596602354630366193382096321176858764465351710847507400337084083491058427483932670700233581641517369257764201160365143603856532035010311801378506309895579257103680179024429865382941402627065503552837003485287048659083743984754495443509441231430508916368390841547662332201891905925420718943899539577712838412947734283065147370180303748086491900179147457722413132964694225776037107188410967822801049724555552101389016573045573643399446093271073621732149364176349541962978057847735338231915735354548541782695765125849718360941993576419850568271810738673084438517895887574871865025227650090241385227629483558692922035549110786714044450919008001672198479872748502955909154617324532668886781757834214863520869225364157309457955321285968601780802237699580473221165607040871851289877008450057047059551252908497431772165275241123945180173122950088599451582229655393858075682623440573017976886944388896685633836640380496262871071341056434564549148165137579049008636824953563960016230301903096146244387163436479815951320423438947304948437814306819611897976509110040451948505186344839105948928673735388290557931740006780981310283518625778651595927697162686485886474177389114070999100983276498112726603944482957000291603243325486101569285601659718802128217120408927562486376394221806525764475544410150968623404286800522455465001950036918223043048927070943800591063300304025938804641394406114345801917616012218537910696168578522444361687019313587525890719250838076295640646838513609094426182363112671376349162871711996318643177729225036034245740700072148296143656147488667992023359179538160874217665403904141163867490831764516771099184231162350424170691063274157894761758821226738172842643354973370911222233145466539432965409520337123778326449007457006299908566923672491682720417389837299263092343666895223467906843556698945654237177675693596004515382448162858770184719869312460537113251065533267939440906206399892768628940011119463691821295218413127009922955125592744908834600666185247097489696471478491470196682507367303750505699650084051685843714117259190292486963673629446278636510380004202467984421160373846197826304245136040696298538174190784516603968083248100637227239983933100339085430134079816094386700541699499024727521987958647899623837568566709710514399720061732211440219969286631208873459564263030441717205018103429870909561781728349135249712025471970313690243864852390145700706122986061626526415193785572062583574610057632224416093304560691337120222447261005525606053011591344385702197348824741163902851264372095205938088415547538758804103255366559616158646237666364185518667030669666363555867736330011709472351252537160647836465366880638125363564531931179903160007218508991153288764345949785616596625456691850837836108000661248041320517487385787572937908517562190133357306967912043766231744345321146747879911026284327968926948731698333888122876800775195667365095251912479967847280308232031393974786814142725607088789239743939140579781404568159935024680549203510226627766385851225568670178027600230730425724175095282624001131230861635718111248464481656668599264971177000401326482148101144050103005960400571124904569568695409137668955004990913848564006495598117458864408839796919762250510852349277414407259049572570590925969700843504832292925931418435862244432978186182233424557921311255099322522066830954875061269670592711593227999260883954619480470507144596493872867915119175359983729022154262106750675436359111213220030654047162371593609335755282811728593182135628098532499393919088587633808775418995964050234871002511489602008921878186915059907597646765658130939388139176227142459570304721843714393804226981367674428654878872647794507893319281208805008470636606683678849677120090090426716356510529672470578706789506805715728279337257194710385830288651021863666712028636693958093936898558193375777429575574494885517288188955173233902867709958541329694028221446956156439318619590172443865654896551558365489885687011213465586697689848837140037996969507244369663847368747156143350274279737831631229205586183904561835702525531788037529110239901125339401322878599035550659835057309977296892461306859573191548520201434281763660896849438382967505784632762181357533673041440993085257122119898669646509682335153383807676325882561063493634815949867241860097610780708976331828775881071593210483292886584254376301332927142750753952924606853675775365214843891627511375351476809367927372572210084118227586624541054318598553080023943898422571136031633901306961056060368479410119933402010599034920204745055294555716374663358582391445465244938438713527411905919969973907217727040166664168697195986670597720344828910751612191232195271395735271003192415254950225844416173374156112005749636777723283164520652913119873449779348686348931758376997360489518642550669534686683558989674792812952640364812231296308874819743941819461982807272598520690548290939323603698496174267912972210000925004024993596179706655220054244049410071477627619680925622255578616995256696716246710077626420846001055820092638680614378366971778670620875483646398205729126706536408271976616640727925884293351027756348762292316947271744505312393988348550620720006243232501596935335453497250349280069813748017767737798557195417675432717663099868581763893803512861046739682619530370777501495599497894843490335340183281105666511126933179363700004105413185790699430250403062267224134494948030882517791866810437836497057943289760140701155299424160532857849182630643259689962268310308864586492800295578355747970030086098361298774214877957430538639787387107412483303945308385886787708892363672607108216298077867245530756878843410838142615299515779930263373065637747724945959954908358393182310423036244676177527349232941768007536703444567702197066639177026110441354262459883142806381575645646320612917952756755127582090780876794987378680960754375421058183866195380307046347133827790909041365006891497130210456853766016918115175627553041487956793928693980871992321139263955774087270034721120674088850621936205083102645961115535090482018665868173220869958833435679818378666197639769966979162514164384926054916248505691174325784273505412781068170044450170895891835859671919452700467711195914452114511472042384319840594550310784476410116989054145308590554601606903920325170422524389820327825089113506278393362865561924406153658093767394339103150964399405575496182107709744895748498370336485306775227533328125258191722795363276420459664547593784877393812599382442794471634797577288125867256225272073103209459582305646335528644910367196194398192691027565115233459802868720867606700160303275141589073150881907591154763026401682906693315865325911527622402520911611951071994101711084687854864007097911977515170261081212431594003269897509640916997567803365346535739354698598390047930380715456841037612678952747664659240337545875572992753783835326316552216517207762651406455000762431554433085572581956681018256642092418937549133389623568351815204828315913037604174783346342137944095516123305449270482211401535456697584809078383961220226747180526137516122523749226793093622709574944820973135396048759275752492494643348756310333597013490093701452995719316883838778753355113612710615250366834749188736690233390720101936351307500285014682466423135053720663018455687326718288663308536399880280307480336394399424745765568877239736933799726186007568245200885635609440489025932017927681742155380442024649186794732131921068405945607146533390213028426164589396374679015739830622108970710008880991689793848984057749719724423831139160661715574545749637283952049249342661103403103162746794806460395172138851718194593233363933180244589441731469715509084292493764916658636200582735834300510400044218994818628633674393557869150909837737930390465810121130256103551517389497911202638818277242333560512215194975181146728167487746829997960999775202894817852191342293383361734717852289886112173708207290132318817431497204304296362149342005112232547196684954397815548650967841718778602215323468993573008025868671008700915717225174055029537163303743045370970372727849424565272671658995195469891139704922697396692189472692447499924331576310362795117580276208166252561977846065602432779600480212572629270181875484330682601674826978288767841232255961178654342844642034480977797993984101971757422360608230592739085157426430096510974641803180697103635028081042551356261472532432073402936740823032955047933459961165848179397697212707647175542831599508873409896318228000496036566380369282718954453666530559035965944987775309485175289529383264669386155838946318980283765425185298607930699197841592780917418678339567768952838184553286155313165600996639694760632963346753542137522875652195464985535814795088207055318934979713560227778901059398374685644485732027301477760069200499607725556206764800153105065688278931880499576645566453869395843159972538801045503207584897106637654144465814973498333155800916625979406398622215849029806645958387830447303743633284995055448807366077475323870792128909284222884788998227000077661095281638656957844878347882375369109872236342410648508261172699754719093911876048281802190270057117564299246573740920240313313039977026621156164456252353782787646645961856069033458749443285625760252363053128699668619004649186805751363608636692788452614745872310535795809431025112158501092025548087498799703862875414298329229744820243724020523834021087857027417287314891638536559565977050710198922181059926408771654576884155790250383268332564121088938633918430487646265811285917211665538255722977372397954021148758384610082503006956076433000773828658766110933561575957952434542852918505947319882741908579512020835053518950033630857647876263910468330570824199935277695403427278237480654393384333666446938538795426389289566758991569661809915156930297623934147820381801896514137983161956092494398476092001244726622555563191450191261133580396332131517934683188203547161789107368950118875401219880827423616649548153365716141193613256450604062466735427682695842040467481140058650741991631514379758653522055819497954624407742390988336152797956667200308788508082891131342059601059849642974501413147214778795401701061137233286111230551593670111038981716648812785631853628245576998296490531870954470610504659742866710319197784482455025152274318520046982774758372123692147572498990388421819263097159633345681575009298448115955826499102891111022659369431462020084934327609100659917364515688319701530181632488617657980907750725311706873972819448273063606681121928499563359430298977748442292930824020733316811795525282198880143397393309211571661813259603792904457344594174640823196433989733694273783980064076349857297719333889974231752769402108796514252805147593101774644733421359395318216591401361292391396242737185824478457485363033380838346849163091007692812526826326183737440571613850267539693266497374954907253766337835964818097179871622414887230711096461581232462401015738669320802115668397851237528584354186515432299177276460560718091780262894840355154945551562898111074455627741506635909507878147075562693332457234548842168940045126519857578382648965521082718937793790613432452216811249156729731740305377055591897372562487333045267430943994967999536289835489572097303007181493012055823175448552438392116508693063603304617331332561486579055120471811101393337467810948190443640771773882527807944150581376700827136133855965226868217913269176821776274907721401442207450335041918162149497076028169176348256792101844530941653279044629565878406364579553255459501762413255926170687304362335417495128329712581841142599538914205655697047636239704124616672921594213838251371861874458529681070554818642800477548575256951686426812650952187567899068629130251854524214225807167992214136769572762188602946015043166413665412480547362861139565775716650645155560893448912451700568478978118503726883273739675682087108894013751604482239778139394594715665823188123384550631136543442915314023665935457877681306640012182383508564535355318738257713171591670050345530704652136638334347882404183046128959115839439261962128907602334978091887757280475159496409546816734684840741288434673250225938959048188563461449960627320124812906140836348679400712131258690749692269541966722716504522464893330394439197201118402262693757432405440733343244270940077922031472411175129276974632849801122868876495304836198439309547401027504700368419720081222795592963045506801372334130402414129497968302009528938299569319057316523851314242355928257125967358035899981895651798821836869051528140633395770822028414887867820180632477738773117711692856401520869134875242863205914492844934317006421687823442198110771976757533290345107993894320673763545216449075634500508293249937710986306638160860758883080320582318732464029069816818564032413196467250394312926683847205996446297557382699050364043826549215226477593357213941368637569221075038107489427320629487785503775922953965692181984582555638686617498645705134669869762916746226602358946388981835485192457254188745680211287377520364421379974571275895239065754212965287751383865480803513766473359480404782181771590879459132680248352867128384944084100817684589672996561342298640371528424412585001860637890723222705755932952365432820341561833615589542772755180168230311044004305691474226369384039021491506469166141410437688128793510609187349440064501191217092436324864911365002299612743569422056555405286682510902189818539593271059666858035060254129333244475574050616124876141239318039900790273261378866238070486317173004086249767119904470714672401226912816024204556396317176664825852600160585781572299265274827898888312592396212616249029250560769118120487516010828298554511995702889454578180613492199518546303160952279331870892261359986166355916039267803740569109770022705946384080619288571077726629721649213809792247518520869038061207037638518747916992271013188264773106735754780833733795375330306997670240748014896932299651034630931019542755045064113761470395550784910279376902532277082890985119585027919036634790145665547892625960678083406374440523272625316212482080040074488398137214612943118528774343740828818200990740649243209292112625043206353357859457855197095457147489349572033632255526497701025330335147279772405072919419607846615491872181709131394528524845827144371868480428606786944339095301584761846923580288906827376535385047542240718350498222078506918642002791671817780900485042993207370254508693594775263454762509163696992675010911082225800302961062772887106328440593546964150158195434442774803692290854959789495354331717073779847505345351976198415691548853425866702923676286453306282222090080963071538587069133094541587353593981234284057063001011559184455830601441605534779906401492377927928530542173909207627719909900878977001934811555362017677875199766867520015111758047505399187118955067528101437081829302020737201893736418523965593301145295875616273688144109675418758787998960068703453415638578260923612612099848878986623204205731563713716765150163321940742853830720984532773955627635231071017208074424624561091117717054252369306275932498151093715016789321228239708525863871606402727305987809100408986995568431544170640873282757985798503381852336921300098172107567542445732884273974742274544745588521493477585203685415930206621027880576714134359167184163905990647259103325149955553125453655691571004949881979406177917818252191607296416193811681426625272954213274900070840105849332001427664554612743116017671560939634050292706338248052700109972412857102850085273949642990441793326753157399767410467193821244474865485823071696806029577398018068250474207222994982381341209200838364014219051716219972305613874893469422809596173213881694830901270369814880660821146848943913117724680600718565301926495040173080659390720864511201854820512191942582010702304445131651943426424827556676288910969244827370462925064736888768358842628326238946682800773901295054756226504178428962120465267339331422254563108933762349462347129709439138575184869764620722979875447680250883382428171771376286204928238182635662297274833571294222899283136871279796654053137038252483605725161925095519939967881839206803015325246120024326638558264182027783793742642824950185254432708523247744541361642725791621854222149769336359742184021534638710345696958004738392448076930700634536493346872098746010261271303843890503933316668748893032338464634725299443768064298803790070982195408968747640191912946399733041414666038460418144126351125955779805260048130626457261771552161478803220026682201911552213646188986001894228745531066311245648005206185060505703402286884717484636888296901187390460784108008594767949349395912846187918856497569505719985535746856603371612111843134265144107034042387348528716993775277533093294049374989673125646652580753810857776805116495769669394952427211488727868433693302681585440790504576670143559700122403335677133101323520133658907053831042457016286217480096590577483009016478182633952459657750783721175741600990955436937632141610418489954291594016233387690373586162553254418215515701465778627684292091443623980210211007405425782638520586376779673903721056319942337678964896530506891459367452362542008588453675011203013150679861305087540122907966267510538982327383730677976746355794694372795796524231245124599675620008960605966497418182638237488712813083528886741707138112986050965750434441141532468728479223829171983851415760989332612030308801515085116674220779921240256004277524499643737381255252770832306611808232531437808854178371231688028333571631619735308772755764876459957379232195280509053330988259958936699283809767005330014230028597568653960491961264314068759996592026485870770203895034761799958813310515738038709741204077727604335807281582262881807413278500921530379762716665823773269702323307398938033959452430535720563851490204757755531914962023786289333249316618593333018143173079849011214278521415564901578707515656897170435125728307302557396141413535927380316406462642463106105441830210652624399791484282245088275367723706539045216092118579498480464589973444301306802980623612829604905017251075542284165031573122076247872930722881594363411685090797036636541613332687829377436154092358368487804286757693463923348858389084645807655195763389291508258897273788299417298101223840513527091423312745530364090629417150076263489564794213946475198556230331264146747972060889197744403685461235181111033956206028758948303768362570425128946575409160868458978219638855810052121321023950209238082517944025928430896834128945350143880598231864387186026236539888750303724023118536534210216858408366078552503026848092136280363278891480629787712189914409160139693763318618132190868255135701785633676841217818824430117169917628914892764589497226356265033116244512334403377391951085330983913755360667889518736530620211639983873430445212705640670827637555076281041845026016259431431045526461830306200595146655501093237818639077439730712034960819521651778857722431317514117075945248624057483710010713401210933905424607773121535468239937464692204485933353417790642554652648056604819996317133723874244186022954088862797558980282896828799563493806349340354769241774631642241384002092231717181860555620743177932062463423505677161439380591344657467455406242764853423280005645435519390941153704790385874037305454190155741147004006324083391726790206404323417186025794197196813914734325523448750116362445572091491677360685760759784533013569903941182070373373993015735505188358767036227693652927631794172567918923279664004099638027327622950963367076448502591720860506625403735880411923534119033264792441991404051353953075474939576731492405287091552161018465174746019199957948111033997898116279230296218012501177887015636176930455429762996726300105770625854662948032466681914033872107673233912904101948172037499918127096501738104098598819984188527113775695111002506030219775870683265617795384865740088309567500349144960493669199251729263603158382621526071259805636298201992603232618697382546827738001878623371021914992238877020360548369678059048086179464129812983578121496185534510643895325155665362888177083340357902419594037255914402773095000936163791374154554756365647414470872934062378932289211155112107526421047101742523499332981781543207708360740017495677574525140540712575255604562424217252429442476883251815092188545706210911964768137004437890161562466779284751071994466672322237877118217645405006216387290853591331304844562961552675075309365007200358594107156156369149752307588686517534869717239798145696086654134907994886259458804039914291961692674931740985294527171065971235001322912945679667963234111345010751342784930663776495024983399071124622658031202970331671060725905393168712943557998229129258949063763657278313986898145835419472663516053812741879250060488736499533718567329311641046025857998094536432425481569414068777055547220963425069336042447038255448536919320770281202525399905540783121157269168697225548258116729536310606926834538380035254933973920703236210110267309657108458373389279192203911944458224220353037830902234059820513344989001972395531205774001788021445978521075055890897378918161300341345544331097231145473467505954001954834814640815509210449011754353347001694055994898104614078266392254391563369899725586877135796654556276619971882151319244594858510186230399355147031190102047807482324082788035347982797892035721326633477895624622395313950003872188742401580178197580425012517402447823766623949913514013417688816817917364317697459975371227258248468461174715672642021496832188152908939320696518885126302964703842428506689943740593269724441488050479989228290570086671646326918628055292743180416595279020813910330415878656378481151467990392632114545977044629960424868083982348671002538239176792570767760496172029423935313829654421070492096136074260610187804834416593893842401194270301947382936556306995311789263011340019380562006407551028915632911398325881956060056569756984826017079932526915120630738685332699191056161733659905859495465306272772034235062027751813701996021607510122093924293323992357092077590771316581982223981940223615603603115942540068313081147665162313995973675200717272580381279658881568375847416607687545499436921868561394754107192547049786838065995173591388761903326618209168334444352517303750323524226789033878680696395408237478118219301042317955734860526587218957202015276353706825964011617506309410091068497816913208351105276769384539625840058956958599148453482547392502921794642628665670185749187624892749901179814443530784622199548617608967912493660890481709731335193578019473803036336528348859119105495081964672771026771886487348411979058139527788856230032591398356091533537116423791983213621607064549133401350996816585259036027123928807057902306677650015394579823607556320228276853933232268319625471400585230221429028648435079008726801959451528775897470643691614147607017958296990747870387847726688348856972409287119160898446689916903714751101560657871197465404960115531972373764348820690848726517678064932085230847393039340101475774503101800886434778371823498706888844066014439745761906701026824702622296918994030869165728661242447505771299268930399256773270945836174620587214728220409285689001435973929270968441813928954736018743091190173545448200518050222472699222670061752167334642835021349096209102216603658938435195719930892074644382684862661689088471320432824525131199898219840566118370410655766067829121671882351547519581601979790830577953360414391629966484335308045264264149375919378407260449191090072927613240774828809203750330187508668413105762037540896874617023233581547040360802596309717941144538910776367429595880736446202255691834344057781590877153002199793998378887023574342479825094309618232408945084534472922964473167346584415786244576569855805570460521209455804200345076492109782949286630896969973087839717094063235714457941352714301738951981670147608360284686556053279482576909859658459837034548306189724132242594646841542389647354585838094308144632700338098997752958671890719369314977043554265247111545819432189809415514969663973296514441468462390950566407732133004628261804915824869161553365477053009929333754125375350687052732520892005832770440350027908623084348119341316830361288799283441987198905211935394410882158140161497335497586880887590444704792356349841890490653592188725912093327776239372350630668563732957132067384245596632273247892489619075875025224110459251310865695586206395615912085503695617345967001267524770258854514554526943530405941761750976660231140905252326656732826722060411312362692153081468399066877454331862542207248851851637466618325464591430097554307447642732172775044032797659632190399696474971385887734632503731241945669247330704059982903215835289815550693774170176944718589683586719752044894564500374822965076953660054299730223421570804273184022937446665373608487879049176652620353580416835851955749946333335340620046963938949437322925761439628981836463720398956073630185535195049679656966610688025144075531689557006907326152000554802620421132277176746569771456634473404992725636632614789661084216652427496003745229690935370112137104867724551349220421333649743545850694012230348244904330311733241578433648204955919379693725658846609280236810315981177515516617445953032489652357671380033767828834305652365320319589663147045748468511940216685874867804345606837368278474054782626987173177763071856798027335071349708472869769578204229695305292057091652368321871931450348793510447488435994648313520510309348633478241227346796839064472531183110455137246610969648516521428105146783778726584606805470611392859868748970953966430640594008552239520556315640058892490737457519330366042065767754197488604425156840568171255719097945166364687930699829075916639540746947611199374065803425425920554202527042526269846013072655823136754273645855415992621484109672848004559519982108006219540325348984651243381100576206925181404194409297264455625450389859719075230157541099774352744464423441369865605520313262505760045100465455947024604001094601448625807535081844542775463900973006833342583317752966816586262659721244717663502068480643192254678260993194572641621845675433713059969782919384228002454393268012797608113213483746042453693885236698643984890923807101855985947994428846257028260661555992459423445941127675904435660187428085860718344699816974697445506344955437124411734663138114916147351184729913156172190957830687127736727770690476457438160012945110707675690067429354158435255171849130283974767057821232729373021094049306002962515954424938145018853031785184426612102430709648013096001676848502254484673928367849573116266278480958625540060939279739829414175493228426346041429722029884542427943119462115052994511994339855884225738703616586919889287425612506403852398180432200859717916975390060556729469650823885008166861700519484845656517183316211709255980504985981744522655461955543434676943102787395106559608535607189452462484156233273396314183051383946214570790368131825431056621734604425378046733379918663567123401581117709971714015829196179247399856414357146349118215081134244988660340145937609423288631543593670258890473031049424060925621921617308627410695637392476001726076379136465835036708743043426129827899969714285111936068678602936137814840314013030817455304587738057176423986485869045707236623155112352623094704548886527365297594704820718118239547807011822973591805032767500673646972313459078965779743279484739636749313298194806058085353007096432393088423465318724312389508257229807204472801348738646983439877710717879787048377300672336962201966721977128305931236882794442991546641732802133507476267172915175144199115063690499140506936436349145037584151429774430653699227757506761947688766450785049823129204177925367858176239144616349797608709030773774795943782940573628119759408150705890072844746969109636384336391407384928161690036766279041626077256986535990165584035713591612854757128131418882796149824500620464596752754422246917011413743381389497369272821005800494285106130229768911791948228178373716479320612726514405454621962643361651614498244792557211215985494411628092296060257165483277840709846571096319055867308833672742254149420082608555475901465759736040294212876335385561872137336775141696419005953753127359490636736864465536444017916119677700679789806101293386014912761536974646305412888541380283876447702848039078675648714701076101293156269982376871903938384239460010684810413566505206144862945467794923819214536801176150399139162808106956116308361257793643864733447465475853632432696968130537932267877121870874548382260967394149634530213229438723255131484348360400935709042124813330043867835882238432398180966409577770114125163453383562999508575603356107369979328219358747330422142911919015319812937148454525076518299593383433212142379306322430420728075053667420081131023938583717288133773628124669867029058715075946153041770121186949651439482611163930306383655689470158684222284590014389341004984285521657447759667388075464045125238510442296346980162036436802161497617653846897707305413459189645043749080742925079047401087766349139611957362771923332163332565091554278791063042044292331816484783731791074417615121015432113093608649258097866974542361150963142304766205766396767381621776862606475323180036145996691132034724156908877609630305752983070629520595241573783529061746934927251081524695883575330652271715519838346344166447555120223944208109157628320799554615636270341777969027841424610962596656824486448362070971200192620076182631065711908335142168908301411445092131737151495879468009451025422319881876482746927275691616961730309215986727039915217600664522723558061478390542284644353621270105866133236479177833263011585884036913457812198032862785743544312280297941034177609830991005968360744609704501799094817351586981420917191332596416235138891219743284429722071634308676667455437716592959003948519633373984353427608107611116517077426785600305996599251780026302776327238921797482517325106238803738065182654293128429098031465346192419268689150592632553717925404489350050569293248807512261237909517332761785668920902149531460877835403660593916051624084716069717061667096645395052434173386005236218703079481720780924777892184124264626120084743178450601727182588716682576301090852279708133036627522527603529978619205967662782897660823692581519740652917043316133320447305609802894335661969270056916467598794317053938711016079159810072200990293549380879794263919135127163953057463966959686005723843095023969633282967970141886480407156856249426108370326200668681089921315919173012148618075945791523250668298080397886900129125007255635416489471493190803924004616659343962115523509784770901668788774901018349617662656725263884667451882233942113727995797065303022422834021762238181317020224913961604992985035310364297677027990092085886134662134743895990854304912079924848798179895591712118057354223308695839568276608512094918567885581341737998808108311982783701094967487717300865707825789721631647139252897416938957119793414975251725486557090499355714290770353559158219181048084114906902340338959405009691933782508623983401398845533565949455202653900635037262451480287768251421236473795057330100414514260790081919159752570098583268486897642716496001169760516897504579189151452823622561785670247415042624725924273199872588970583407452531740461274994464564411563130744656332685450270182809887556114805460725880138168401581369668497269360225259785710258185858370141898362751156427440311479024164564585648902094549028965774419881822626229928203191100435407763803600409880750047573325529191574590695527082682892108923697411234937583460845578423921279144775454122448841862727891635414036508258970936390054425265705687918886235906724582424468441112432793651054292169032187035655116981190833856348833205280504963263426020177064714958186432307192471469609328381302553827445098005747159171587990773826155334192679546687261882459093137389294288978476149718840124086905612822153573746164070521131754151963371083832033149626851851315881351842458269733040585836373603081980053267756879942842742696499966074989531087425167478606262621644196153758842233695744101923775411941801132926636769959241402796643944756209025241209667408539159222378834449165001860773228058341906666051955064946877174029993633170638780945198357343530729873608569885127998850849869258441229369409132299606886034827309576974610377320150890752026304246723816532154307336913458288665792418379968053844077678483514413582141750158858885055029563610652319419645671592212430690137458241246837238085361494103116013693551346151342995585287423259426400712643608327026206847138262210823558262405419248877140960290237480093279218342355397255013204950893826250186524582739350190849258148708965571906530997836522564905773649417115788220360623471784183154311340265621849856800461885235587622310044010120023467362900500290934429375319833018697459806776565503571568552824191165352049120026245765083189712018754547029883468115050744057852923185755291778631147947201812022705516343551730643648041204348859060857332586636206373837016670996633798859404615763803543073680399469060003409423310670391752624025912199358795989377493735722223857204462483768296061458913255539498039079769703658749077716946245043929381193929745893434899445727646007281860565167278830301629464113637027218917793810514119023511637788859492333954317671436140214992900581469878877887922181925509368421901572268742693582072180950426741024365069348940455523600448352026406821698143082326235438983282503434842726457374751990371869218604891327995900206019901661388117144071100323053578743966020694208928451727633958409438002695775316607998823093502484997575763139567881297999746442932017782387441871591935185447058839132348858446019204827971928626909377648005670065942346044864872883183465476364411961828843360840085902052938228055182458785427574360055619293811020292816590417982522228567959394756178290047085723470671890357067742237265803239451608653776594311856777397175863610122533944023753187230551433662800739345724001211915495875867009422797212804113157430537393793927749267153949731993929747037899246024393226288295901065033956113975450036162715445719947877781189807186277826059948541536582290766463743799067576865824033361623171798846226446509785212695163412394097711881912187957779336134290072118933359942057497274917576397777872292700601705060779287402638039099248019071451582184953082541237411575113895258736512673124644933464820547030337117935604431884169875969581358190349419522679071467367288931046799886391854190025566698751799316139805294738945593654520296521742343505013603102432358062839797956352155938732421452796402456350619857997799398567980447455785676216038339087407568689072924184995351411772575868417961467101771622715610248508158019070986098380045488581509462767761829527689075580308871561896267908407238586135600120275451590615718693706965100016827150421690687425244964432752840771327752925564680748791370562366109536919939216313255006707192470525075249069251086564752218996175991286610121653265645222799740556101680219627344595468913399686057128869371797157324584116866059148555590176703227309043606123675043709874722021939963355435556800388990574393843936336715504937816620569978617375893760451922597634492532117517103564246634048838767439917540379716700897461427286612484035390368642139160027694179072570995765529002182756143781836445235730495615120771176925343708243332533865441415117256209920793528744248829433716623925496281554672673644671337172115763992873842302160979498071819732089218207128694225165590948832633189188622773678488813960282338283017314828439563140455869318330797535773255740282448115439076899421846413013208580616663558064192215546283151238511853758343560043204276811880665377667135237920578710271103045899565622001131649157829405164414721312407984232870462364587604021863918967490528788055649785948817645048432220115188244388411499283632880349420659686707362106458121315752882116910497426869489468844284077136975877367469256488164788629905332223886750611431814994965872630257388105411436080640798801114459349976852798360123998169207888088532407224352663635415972822535865293125801125235864157875021143360059271566836646343561744181938602599064283598319273774448766188733405166617456220061413512042935440254513956009653647588135945475241123659788614871101352441719769005966702387612617889109426280463921075183703251855568786634022165978539874809198626168619268600304608017859108746653962826120322554008308750218479151631940764190278759078550725546730807746748252836851822755395509553543355588847403246633098515040825195900687557013172774636882137458321399406925114657123273604623218192520524841947820794304246486042615057616979640962049132556840934471214543349605797146428656770761427993927286903053130710373738462272251090481899500107583148061654966873775941941981352781216126819132736199666351392127004563645895862883461378089115989858330879940674875819098926544958300916983077131930795971603354974361927171198257662357941787231190154557716056688320924795358997211531782104361663191256507201277375417519872900151621832426109602093705468095372124980459358368154391628348872118404373865416915446986347257676376470160574498977568899777547134993804103313218653811798466956598074491695571525543929179447021474164013353955063621729836611856442043145851411976255288121895300927416719305137603643706589868046984442322012312459666760377678850826581232796447256053752419752921857682023986574613084820024804900640629320409158533898643964103838446108331960922878977433421443888089740592396615363735998434897583568214808349843460851276161111498305277941003811106874719822946895204703282730670539988643597591007567230493291816567358053266649664257701959395029651519298935094713803097729373693382138491220678242039371276921240959660509297032191231790276805232670732059747803114557525585543421615478299505374546332100011293056417939409786358264430997902034562786246630980236361363072935706069662377228405211941205881746831695886730982718641509318131095601128749499782823595605545878434586645591331667920356155617206768687751644594170490704663619948280587570710960041342552718265004526133481138828843472984019159120623716431952927337631301775402587549365252421248172004943850998450270639291145655704299125197447991429291632534047897714769764083010577987846538529606660421541926979732866493232073189795669887612693735400438599599595529177559929528829703536028956604317682768595321899935248721857669618996077227767365889210975762450954956554589907220854456735941260881505776839236042098199183217950129960678662650924960485180815675754295272656665367556675151648350891011731717787138454211455509832682218024744011957803822697617664729649150132918084278965716863418769291680550814507585983107186068189628946325008615976815460532572481555184608823874222105762701803508186862984446836605164098774196615407406469923258521168998941108097502352006727165357810193266947967551324996786774105958741274807025098897855455227159645591838849998922880605810600353446689701925107705201776018241801518573569621634963664042491248527044144705111542113095665018468331057527826617540260801767807152876572536716058050319627909440610823298532743017821724812737408024818289845326213449137398906724112082071199112338757068393640845865877953513974757333270467387039008128243397465539882322250142967314583354595246328847439118774069182740372857440845127113019292803950056948551783702356833629233763569144380465131724248775567629213451088554430924253817382506459993296296814159208878997941291426304014261034198887569849308500927571260378749413979808072498656174191837617652998104376388328517945275650714449128819506330687809392009667014061502754922103875869806342625977930882244621562439027022217616407115725264373736001226472321692529644533252006198539777511881601774812035569468707178145632559927313929780856192671241692942209836000707051948706560347285469856849043491346826803469524454024361238343400260147085897338459623424643070254413598049096113042514288902103637225423591220346028071770338132989867010293139945157992268884811470043868211851455376734205496272198691008900291629110366124306300210755428600381276572480408676594911915596612308024094273628187164939517507964769830332517438789948630391449101430722803138929163552818638257267935129956645573957926255814540859959198023714627317311486605054428302954736074126556807101183838685804580454370265161446220255955618753207289564630936175392251223705324717459055081499202760174853843526081095653372919030722641982422195225821282221714656192933360572892406836510470410294403697108159615120889942324666525745368589493817289568582195725377049474465787139402473684329811363257829378427311221030293466890165230816037202431803375656904175715186345073430918243990411071623432093922277950550734786770895200129638996059273362971468426457103212937931238961596351211407165601901179000873764770244997800575778404255527315837664465926258367942675110854742835999329098712255370066384801643140905323247899154213601617257407166918018527886743461994329638769167994569375223984900943191119287240446179081306192821228011035208087558115907511914204674128964355847650833497848879843836957364330900377435910488355223961257674900003544535679628909818169738288202353458623150382311583493049668410521657893999852838399839654413540540407756313888971644732155553915236386198005328993114683544627663637249660354322137621850086209226380858597533300833653324128864840326983380037848180108012112588314269697621069795065026454883416401011319534296594499898920453516940114588204111724079382785390465242007698149383696336842181076884649791730393978221573277016668683541402101393020826589343274423975225065862240338959709020158724614593114200944918964248270470868501971869058365014381553601886060836323631214975045142751022541107433260446106910684232139380420566885091843514382149200033517426920122463953089098567102607476464558011149330138996123919187248048762991766343154854260344958124209902641396262729971628576646905289612408553652580753798427347250218620369170068513755533639532283098265261928150918152522072475159374924686555402020285223400670709702583630511126978696411221072217188513787153272535725819601766634214476337224512900581887780678437344227331296334050914916293172073621007494582213133964271641648123444548021002725711213935295089170311782686933850460176719307232370215525071735354528514495447591655780062038345100435604856146515710104145609672660663553238236062500875992972792417749085976993983551739554654310489791799821864371232542211927571146971515230433571424557430363426240707998681221048123316811832082653715805753164140779895073318788010921180488172645358342763139433126889461890011715572827392498606688519989382668201924480113339706308392783642535280397874885666192606481839252925281677577492260435543834623984844277650281932934135423697486377899780172069214971149663395748257326302396672518965461464448669249469326302632145386401978207836086622277372306406947527452592570997286588231897338386813253493542524503043768915474588824523170654845614961260004189411451644315419872669982455034839438331663342152289430903293468500799729113503437346115364218421311762210698038248904479800409377981880802558037307618560456908489074653167367176839946420675432906885359044037954745363278741922279413171003914916842685445731994862409128000597013364776603899595999632200591559194965028795415569366990085633818239582500179510318489631094528782215544615467250120195677465821483813132957490473258065814015337822645314416706584463742979006030622772605481578291586615244376917022535789438228534129193783655794884283463677467970189181526617257423265113558546869898203599783368024676352242143505708935108628884274282163857846107733718544307362729243516174442236950975643596183469615536597486925097063904878131092750222773048774610610711821173034499365252688045299029295956419536193265115302424084724068528945056225768783609218456590868944136935563971480497239345222567539417603535391018089842888644540809053663251340898682904994199573300668968455200057374065705541706211665542566012799404859016415658479518296144534610455480125565771792578531111244690064187658341768498881777835686127994430630088366310626026647839067499901180824276588454719082333231280951220250046226275853110233075159583699711509841744756976813526045159701253131670576916159457677482758733797702266388178936783258711172674140977988098140212963983797133653151799201863284074918747703956618179046197232728463010699024685742992797632484783874201337062630504151412393234863598596061135375083297577074587335791443968274430661927282359439505469531647529096515864169021129899693779917090304015568388332129474908366399839521817149803766131295690476498080632606204591208293267836747339280299796547101497812340045361612086188084345587794656248837472315123874130561129897624067380737830012493619286402577457822934915026296584492691340726038550451775127092167811683896202540263194258164958567185987549423253022618462427393689278452329652439587884371163037152085867129921344005493288803758718765100028642341123611494113120587355809007945191814948195433558785434146493635072454712228900011892730800829755380668942162773228934308740847601712103195761059555872159509923200551432084238942086744024855670553232046376370454615309093899864794514130147309730284697042733362338396544862033641165363919257292246759282187260550478551647946996304200590295540677019253416293495556451744372780387813363397823082387339965471296065443307563950120636420841562107056103384525198714682909575103714443195351353915852036255320483355694975479087697304992813074116265651063744995768540450918976664531014081899610778071075515451670069992703607711021106934724074840021505443566103700962945326282950405768798803416726823697663332648980664938814420481823041036136927891353992681222010314804222096604468294546534010774106564989278962378853133947324810556127291639936643154943842327599101205041950172455563461110994820134380533604170574674519102676149335997898336948257744444710676545339222225829605670577721527645652530166481632554114194998091754277884646154273235129901853748642570948686317399926807573648556436386235998951550195036627908368620453691680705227200758556366425233820648575612036178242575233118320850245144573966973562652717029966833817335522114988756538709637751052513177054219950200049155945174993421457058175401419009846137541748417897333107291101835533542865101710514180675324520850604837348607915252187203797073998089264139272004674364622279694464533630192028456639903541612497363273894947933282298071345109722087884452800668550717634248234432529488230492196159477614257027090830743462134936837489757311217281776811863195470967465461686904913637128849960075884237299069523111929031052218511627257578295235218232531109417125887950614971860781043983116974951994447270506706037056445573984856987048053923971925488606503736499014662706363223986236058569369280534406811452471852381500661988191303157579630238791198234481627063845524342103512220607839717466082940239070701501753327775938278958271301909910677277358934001106251990200466781742624127124694684542074024944482330926520945193102149612383741096373868365855715049108963354911550970827324278419669236333122573239288753871022578627465661313552503779269312056397659828833013144477509314941856501432761493807955517698081618024712799057740039390231178395909094011395756753554987066166495520862587644861513222462891919507413021035483170118063404939717593666163320376963080632891305998552288461299501629146747506381054597561497393338514856632389958255555350315291930001996634765345176027002111451569864724083666746391465680316003561564544857067486886610922143933413684563647444740908423769102598205143501491134256452000701466583722247146046975481309029174102311431166758571649863112146852726880891586156007449744818711012817384368008219980697342549266101980430484492994199169637607387252735554996181136438093164847955638702622474512266504988905121176346905440771387028232238657391733876191795803263641194880055181618974091073569961842951405961364952594259281012868178760530043931364511915260721539395687847299170982222109106376939163484513551710069256783298532550287298960965075319664616813765667047848242333216845538877536249462580983695367623734477421922476563211512694041817362730633778199119646084913239423320098709459205850007923888285893499906738185605771828057395687527637771500162831737641545192034702770370343061684430750793847747788331167092762055795071988400854135604334155398625685476685304022364969300643291969438506802853602842458649850785337112274232676678799907073452813273763963153825143232504016611877235082229022457022326262233694801893701462784365437939779806520529396919606601008937341733631922026622792009571607742044342652119118317465231370457535104563698039397035438143430523383033474336701806797653837323553600705428406166865263285528554068529596172320929375671208088452080296479701211529275891536368947816395086968379964148966064482866558187280323073040971464088622282596871428437888323790934284257078793647866212097515513427603260551392704479748158990751869848164915163860277522652632512927943721274247820423781005705466089318202495418178241594479884556233050593563726870323820753640863166265264819333080436071882822051133679820610026254022172852345705944163673257505741051862519042659337454512416851367438830441918725580719221467713653023905211968395890389826740822179687637142453088017888107206779076584395399520731471643284215973479831713573695736500278341535752604065282594650426405418688009738386095087382443013780081632712136595998105183756013514359016119847167676505162313036808915568625029978335595292209710506138934672673927776893132607421984887369554122750455149937213125852560766561577060361672594224388465744945231172941414999017508752204328089128247940048728316346585983126346042271106088053785036742325672417671960374889311981023120846031095742595668318969716838567063138788681374922425776075623154483818104211385719563795107030029455352929707066093839197607751249303817789067808701365324756601083737176672445020320967135863209008037759362902490042270782802653453134423106420400245060331435266972389503873183745598180164570348882354933254953336799927330582173798650849464295838783906733746557689255339938368777693337871014071115186389157466290466552736182353556872207614585774050993939731480018646900171873822339714539428968628224777769150262869323884818997098038012933563713413965824963281556058684821406918326818515708725039742064203981183942580181868131720375628871307464455066234903700487493645184316247422860102643131091077750203304007379169086611846433088383110354147743643321939276967320343055155900131198149328761471171165230567160329208747436741514814522908836484244540179573807478894846428721803515761528810712684352261285616362393953669373871811461821030168170585012839072826380147213106164668515500718136381615960654090358587338756486864354370745419198130023929932417551769841606331467390425810386769761210387131442297115820446899582933206087753559013242965790833095217772741825617162887422103761151633148246167848818737367859351304557558459175423928825254784564445990003141261512658137032911744645515702481255924161280724958641979342318462348533482498115074959660249380467235129991150501483161424662764040901702552611206261424279562811209749035716249038862434155084782369183680179953878388152290691392926853698479932832189927016271458851512379336887379401762753614309750136035828119501470085896574997941443114091088794694993883970164422868905668675226000208440071327502193730741493615085465405907172939440255874152469111599947416888518944925322736802603974860789564480558755250577780962625992399669227126746497356994778888609661337369569256828729180930896742469209163309405247486579860973474667866713101049253980994972125620818460869040551822037763449427281536975709201052869835230800320594953027546234635666801151657664246579101897759649542925673576751754968745048008290674159598686143798261370713935618212072815703261129668346084681792224837923743690599346630085255747267895704423940040993870190927455788138599741016076787559811723923558978115267494617645662653685010059679415233162240439664327503626642098167866729160547824700199992192849559986786240725216030995959203604274253731272807452534387134021734553576723605162891280722499936892312010579150080500128666469367587383724317937691224787042362981051066452376183718471369971982543382586687116198558273174683693390432424704527212048471397548748435769608303734336428562482906007021893625317609590120214124124156997847038744582243665096794478588276171714382022582258225805958198884359240278575515298369417454250123187724283065133511130246543922328825748872145833891561143880620385299587772509832498975172623888145813357465613417253390706600464047799094905899055037514243429069858275893396315519431798026461902706029885615654843185631164349335715420312663752779800420338839649794192496384103323549425612413880360905748303637506692352384129374053427085166978567287336493932649455821225895214192425464056459807311320437559354999205362424050135833564815215031796031323354157140011962448738970669403779636170055925172035744007715470306081078809954482144765966343511149605163720826062867083998562227937241499486155045697461040728800391777176796492898943252309239833588220113340230076910119931141527205490148275136126958080388317689828969896408431765707835195350646309910355117167168721063204897198039668394372013441506043549370487253784862472075839956883015014544777872623150931896298619486742115303701370195918132785038204106863761354835187122786304001307637517941419698493097334409011360092703650678864184231983927297922420815377337112237652451786853958201929014000698566395313203097327176484854584426729094063467467289468357860399315718010442891975515039153335817780098523785567742736895456589806238549551921898107014119180889399904275781037947108823237351682781401341046705405971846653855120319838614039666492244975393834535575885771868605273909251743025253721945729989694411531232718535652911467348529374910732869976895950771905616868659164233788315311509996017327132783213564912983378476378288362978825863993163459975716083932479005900161950818337016975301297792573211786607986624133669718697519910297975253688039171718912046128565568169994934119808899402755176978721425174607470182328482937092081973972758783585979184556701828840795388534945380718501491319951252217209380143877558409911283087508301988486518590424427886375368426924689980192058234611307977783854254303838449581775818956571641615547992864153870084226251922890219580084390056581861321209401146039771324776424382063589361007118407274791140449165863884032687337246314515318937060668023412740099902137955696185098234981949984149306463213190812834059328191285278016905098720671781266844450635988165610158799808832341319089764257638585092751671796338989089215373775878900249176095870178727458589310202287999659743269744306990180801248058066292907385855630319746881272683428580471169372964524275954013709296774564288087528619300537035803375231862336895571414616002253920741114470677097393891509959545601071027269642475940258373484896451495556520457517469080586588005822611427163693116292757987806018412454343906026548863661863845073600338099401845247076042107199644348003583108487266287668337078083270721346877698344494457134151833343166229370635296895950789681082629366335669060120197476711921640716354390182151793257475088944494159647799263107900477229734804112958933249875127657837891913825552078308656550537721891172163179848361197358767847956322941919377619249131473563099822256108250858990855461495886763636567218021218229304798415615098907975181424975084313119089692382310797283511597941180010667093783090466002710470290286911538940529179640559599824705207065696178545207028857480856033866095031786694220962400405030967170787533526992176962115906267564319594090920207681469664379842134057324079792220524418770837147612993383223208050900248729510629365852564339056008065154909602640639576731369911910238638138209013642892768625547036171877672907451744794664135102471684157948799689644187182229748813300436361421527881595822905959414121419682406439913309369913855765208962320028496028707122736345677463778803965982300003045777951404198612159528250933876731305744140108877119895104543823931563406239999792566653114032260436597182375472731281791651049705069959830687690593618813108495976879118602549276871564431946980114229677416604870141642923401219225462130709479554792088164087816885283121011940433769106269490850975049487117337436957582275978794944515809527829968901311397762809261234386321914393129095487789839359981951564760746001597500651032509596958421632295775287521722879238953952501941860332306020040713199734382963107788074686589930581648572422658242510695355137456825397834147725382358559349317531827180180091416940214330660223776304648950859782898311862787124495946059653869064471681405029517224763723599168264059561224484224790225584457199350140930924088097500882753936871116574453454414291007613668010573598931820017422030410089085741229482484889008458950807835416823857113635189298065942983418932029019132543690154163304221345488475954003584925924102727929826001370784925226105678764446061758953782035192089711257687954988441637398844510681694451481388270827768006530762462629200284279778534246967922326659125654180571948214271872276558717490826711100772958849949138806095909881733216264163568143615786505154937035027116832525175199287326839455225249503187890091803159332840705683885313797349176874305911709857265781101330177760308165647408986712916011100403405011392904058569634830215238880512738159265292807094095581053313825196582648024487040825640679066586383340075331955881597381425457552541600860485103763663604617454132241142816479194829224460219892851519129021678648836015550734438398462891586880952231076485236674526518550845790989058698795892627155726845965261397954690226866885038633733504724504540635694171899396542481844514705489382500680219859864423487415588313117950366004423095898160396202736692200896613593139058213371018721837187240640606075720610424093778350023452254885213309019701332773293485496140364112749625337021098360348586369121219877763047829445880358016769910664535488462145421190260027439770654559184833001803526112293706686604435632285638417434435327708767814569804236673832959428168802166296831299669366998734293076059260480656694736579020292435209898541540090166450696993668067159284984290739088592041546624817015300995645434367701942863092389284740571861128610262819680063052336249471467977266362565495789547442739575144629818005199480225186531834643632261018793885038683778345932742267428705897912053946223493653988113023387606439675107905817306659201298674178493788192145106928080265940312997258260614630216794771867276627269635422962119683878198028750089370615411272452493344902999243812176032043411125711976901105128758366206631783644830596322534671064029222061462229410466391838021435598799216144618023383797748626593052607429610300050131795842473731039849863872107827211815892479534018191547629661023361264986912578367980117249726131294484637074204019385059058884842833047932910526270213401182006554828040000342309362762237885936337125928230761880141124244936958638365656122118787649532680428834655796075131740758769587391862581453673147090519173693753390045969197394143238166826531492980717865636067728192038241197505284938537577032365180175527722297123331985899922045612656762776873393152760814432483104721220933395195638316642046414964132327462279746084697876385835861075707968774535355464617582163479121674243256443026648690920330364926247429282914766397552468546069026626051023336371092296094475834078244749827601297207255216554585455744022298908676337675664094225940406002326548692810766225910965790788071554942379074846830295809952651441978298029369170723521188788319583808777772802186707246135704248591509175138192436479624315982838055536227938897434831895991850115592492742399895962959489283288770644667233742343444552357140109195176282425499503733916027326327995041906237460177387374850139547840505920134518912180007098644131885435382932476253786368257806456456177240680230533653981629461810498994824212421571946352095501406487206187252115279809632371765091637626908186493086204370313325725805683867118082467381962699175070861317648177207928458172164498617007091616802744573287764599738339426079688130392842149636382015966501917877971665923817429085403746019388926639442253445257791643471716472085161727195490736327649403071523474454021248142739426046429847645497035386708739779867308622675145355824181741077192471590630031068719361695102435536935329429971600348980287579220932686140701528406599354214268999702724937401606653247709700400529622734332406274020073839606708216803552758732202868626027728978189920689270995372101296082378192044175038807860020110172839989620231564146265522667845919224892286464097233324008643602254746487498659488214081755938342586336882396689800576685593608064080111821331889385412192515793192283183405596046988074286340852444406151858829694535149728672883425022274898453968429674700317515098110905909687842458626090011488634079353371880894494764447560862844297573748183448681347036947764816825387952928031235836546975754737700082913606616324310649367078053955478518724955112889690763323445427913454878084837113163385559119076978934601171803266295118088759979552574806123604299192593610706833427388467929902294451660917306490729211121385827566498758210235584195204864468915767599030931712939176887192236415487381323276468861657313205819444292431183616372811378247611846051728145688989865505791734711763921252102212161479033538419956920394260431766405854023634144977787946531392280842153848850233825595948520704031443813994449213654327554526795530621733669020678083665445203856930231228911799069566291643970292557429621593113734741852029262843930426941440835411149477993683347582930715652694643236182660799201304976877003224760713776364225564620972225944183333707920342665264762131578419487258522633938123102686995598336479276637250245453699878922824446708894694809612674422688600490946192394686428284085899851914775760401221513538371802636102066366350648517373803154457112937674707994669658818263147365490725975673474073028283018288377701106596623520372108635374763964769702792879168315527660589230699386681761349684831005579879374176114667411113639935540701918888603251149329411660380068091044076081561006810067551566173685701941600688857658313330077392550722881648274698881604100240187520479429824601756620484036929871673383912781782731750717166946895566176604923784840866858431093138020752710931691033546472173136351565400195159753500927970932057514046530868904517489439380440268496337656856965806298199534105023420839400805701018542403611372900947361087070063593330077639441901724155379122747931930850028212936513106231033138518351289986067763731170801649245219828878007510491137746712576419141654282744215752961003954798970925512161826777703679066480207932851470924252149431748784674065669979810648865470791623034959854806844446897875339854032649633220942473522700704809556791141614547560176708728750850856595212948563433894423234568245416676549295481299681229622755916407213603024180120001341788473695115924031475556578599309564813082831153149824790801971640305246425512454683532327990242676669886529401584798421254230057417690736676297369370736046992472435017432897742556290790896032294803335017626404370748891551774009255020295045183987553540176651721118128721963857984756527477840649580698801015626440876197114107175356596416126853460071349997292276955842605752097038109907755146222831053904117406975963964977507891771649983892695149111816301248566829354574612485999673435954012705011275336681634544371818620694029056866650870988857752654193186635134102177710602581256872443267222888671405841836347164838934761520882681873962513057306371860372407305120393524530481678064574502218152683368241252452410309259286862212282302180322908230749192691700966380582928007694392091607375420866775828864423271139489231826709958710505992709641131178329922555250234897088805913430192733986814138369673592769832541386068994148635752200122082345551889546390519380725816796261124192293500522072865205280656894753557903878735737766817829522371939098612627038677922559985792956002630677093149920572346880941826208555860128751933713175017733733318412104838553920494688155963669991603787500976475871431355230671863328533683065300926591687690661368816968306832627170608574734178460860701875601327508804900160895822293528742697147817063766889031117831999463766496176950246810981208077501577996436431304301940106330179884055212329987018647611377289249069205883200268667652125903825362265607928249031226126734363308349311460606023705920950302093553470309311793578569791755387928925585651885314170453481050789769182881813513694549783369244497593702965305663830412938769949972219639910133324787047984119209832665954177568513328182779809991299720087407220204075368356175934542479699908162326117865016945982082700582111614607886307016396791054365762696779147786252218681594760160581784509820202967239160396678792303447289369750428689232541429476464019332208098387526793584873182026867301159290930484089411667391236541583130808782505163265672776153788683714340700516197803365081147800415361026023934406006393371184130241465765167421680211053539013382597862254922847506595404779497906863724053764569141868385519110365113052641128400431758772610794913004651275459020838166904684569824273070709547358150557502997057232531078286835717788512431239779600985516685676394449070999033028988264738704533604081788442093378613682491495914838529147678564119553211744880973054108534113492231139413197314188686284950876544650403049794213000396481045160046490993836351659703787279084437213135239748176281604473943003649993878276606188356180038141402716355318341047734397496759791282789393150760920347423406659031065917251373975051586360044207326946165709545701488952744267357888031774230271962103191062391938677893418625922830518916743106202784955573600248330504896581199269412764425800582385254450351340139068328839309572755735308175063772265087536925694188843596950068528643376811474038283842096007686478227901412615290702289887358997253053160408795297955791907017190118996909748469383794280927551221071265384270158067130600752445235968276110085630613783422373586432406747409840564234778045401680093214367260313445557192800962465125476522542709502093467313113367002522486647170194602364459682925251971825223572448459234006241898017184049612911483656556890848575811310095882728944065989355978466525311176507630272262936465482684099500222371501475796294998739184446154255630105057471734888685781061168595780382490978675342795397971171297065553840147728889150803551376095958429258487507907575762128928564994643716143398882246468540819304875540073740789882353153919360960342121493728057058875202233008524809787778166994036218899696199235969462405696512452941373720032618189232574520652452374232822075600862662516121412903005623046560671199846326715086264196228153245219225531239392717247946777319014606261730009079277651385738618911635239356937262546776120776206762218527111595173715434771845187900277795738207258427206714383332839702218074122057020488074375231248575818294720302577915574941446551967920032060217791223483461606159460853753629682438769109667130527194926534095156544941624778915417908734111774749846036129817724554595128529433605115569157220389298841696484443476723822653715830521976424728505796371988257789839834862244188858938926779053554780373348167439562635668835507390090811831256031910704559129847811885763162549562117002788281202613248243929449423065222176392207718495431478188520529019807117399049332059511056358284548172397658450207212133053378399561074839303656884730395049609350978057378258571717777159573820767681817132894934495483089609272231862307020390464596987217636741763485205965821074142691051920413472796154978971913657483278765162544473788428518178814002923545473931111816208068652215764096219985962131065824299926707863494330270698481766129298858401388597300713315626845952319829762250865165169403133530661563531334772303928242230480560840131634748094698008776293637179197044477528290312990072857551581569020200857320039766943511403392693432248384470135725756962230687069112550024658509745670810482870945314465771664131895790410084488947395021020477343390318289577815476249377041988744923239380030008000690381442293317024642624288533647741401182428290990165873000678224372876387225593677296490137750614741334790185845240686198698883490051272878151053291410997381481521448880278097288249312127472485675956875255337790402201895260618200700601802538715917970841641847853812898716339405752239839805380670436278962519016445260748586371858836436112988296781655788601335994935418583731466679913252727078896889241114423741069076519441873014022238008563634171642569020110997212527581186463504679358359440494024042541318186935757958864970174244267058222990468122074009761208301602159572531002031444505562532388298608009199335925895567524010934502674080049639211763822128767855158776996915999350499611525061955985188557912668624634472192644469976011075274326380499342885000965262063786949989715931466337024858880688630062419859697833900587208697167169366025869633568700609257676226628972765922682012239689601943135990517062486135373962271042825090203973354224958957191276744884428065134205913034101671021496550328089532640558551761625173393586155063600428089711273934153790373652460905007739552974217987859625121667397104405370301205317083554034014684630737957613150316581783404329439767815015015104769789347763898196370330173902793166361411654316684308387177908879251515050792265696651257756621393866374897817933019456934727768246644303428416696477677615044287617262669258905357057460942483819123512273565271780800015283797842144184721494738153019917234306350546279099567818311236288988629825729604100818706738509335636336582574092650830372904165700086774054126935200650117159151539794757751675558311964974029962082346345371935239304965455416159398927193668086282946725827251121992508040540946720113163852094758064111369276218931382251747665190996613466047261661493068059705490427952040825501624811295087119695056110531858725243132160394187850760364248156368278004536300317325739393317512581251818445967534754877580121289581264100266457773474398214715344178488390606733895677966048673820529457278119326783599412378360034100651872476835657252345178273134060409448558588695600875803781777175352418481925049923951780103621662911001187112361859458230033648245650115262589890565600267472503228405676425289252255674338378202223663297571017502606860557421420936026632694178970099299506653263735729698936466963785973006098770565211143998710418763970017146973964935185315888050404348666701481108082754271971161396489168415480103080972453588407319200641685952515409254687160021342776434460145849162675326161571865582141656204586148805955462085915355792128173674822211093953232874816273759096000499100363421007021858140309478314606173661615363289958089876499213952757709792082817533208626018023802610313461644915031301527754919977027785238566943867786730994976118512142303590629482705268962263281692036839974838102629609706237720345327516641833778122100139612371098025211591701345269067364563485100765726466800240422060265286091274916839160620008929813391540091188296502820088608865289097186238505366445941938810737557933897872115868048428763483284024879021594965221160834361922718469750926892239262832186656712790097393027179300574937075347409592901724597954584151043493643934994568326265766969010244926490022866970615032719548960493757631067126937490310130451080050129585706304473668057551698864900275395897607279313713143233893879238483723338393970233174497902434021846297727413696864859051924442778751453985208516007554086652813108795708610467303054410426272224116039254961220863609956093813950179331982663341570681397435169402211113707212785013481638143801751419584957877071186460409824292884862067522512851318209057691027964326175989003322585124573695176072255951307507681238730612147784061907491920333123930916471898805042292093855049677720147556647702455666963724012152916300183397173239127294959056186837061864594370706951657774611453155194982843921367162032260671159711198503817030740782557907772959656665196917142779172892098364807210584961160291897294326733637813319230052841342721712647491557294406531842988072293713043279384831852456235843796027070418921398105578228106385671536385324604791741610077435663513482483551854340103642855735930914017549755387027264300114999635821194133462510189718812430488931836846960364860606794753906449493875082932748533071668507569673124874840402402676205705084200306077954233315601833813777992456647013164621262384261363855351474098117344571796939297978624825216503328080235955581491679809611485993491736912774723830062721483098752667300784432070135461712802120245753560851947548731735890027166269644643533387969833068766836095650374506670039185056845020348290141167282827287268268217166072356293388478003235440677786263799776274466035658796046011824665875850605619787840868328658903496768307918606760798082967113786558405983861626533032215318139943267965097450416734296877205061954210863703350276115281075695186218895541618100789064698188174641341769634092358595021738986394269633395823542440153227174358673201918583772327112822882747637175428136958706595839860877000721130644750407648786399324730717931131355726091197780868391226778127770001334549676122513503959775394801285052701365435128947612898996429079372701080952537668988528316126833694571141533948594253624346225622688098408448703959611352348437587747292100917931993522623108755367831809810341062432949347658510874820060993157014171400084885528006768573268003088613659378710440436848047205892526883625203272112971529925482431547245563290225469903953181801594296489788136698066413257561386500145881793307853450832925187910268567238015618389329266876669269465381038746324343117026349069078947647191029417657844382118744514930114912588615662793144663229265369757103927838063505114235744759080064665124540112666043925794987200485081063089510076729008906262504035217790517058178044161355907367578259880264419054018742018579275106442175900014482796752307292241550880463752212872470578312819152235223852368738376924728329360133420256360200291900154525101649168978596576818188451897778075510712377732754429985421432155970590361757245793758096996435976328724922722925169682516707968842570396956558654689991592845736419798451727350327827591847224140485815107947673371074031965564026612625264068526139041697121826479194146698353597233746783860959744878667704708378540526841171556235878509359251170948350437606217659356843540419069905293473164730191076643740279805784065029014326560444126267097040818070346122866589380830521092535800158989992470976321554057175518842956365111384178343790469471034535236793979288269472891722364881089281133537108296950856071656846535235271479942843550131612814105982581276566824076594903436426444771920538743908992653033814584496770401510454179252141227353204293364941262805082818761365052317292772033740341104633924452195776713126739366792669486425731132379557747744762004439688002740550054821398504162341922305445702789612803791279702899775193032857303194940502846430318230599199460446151951948000416643547589116903625444540703627535668760926841301813057476868378721098641915300130805588321220117127142364841655266064891185422819689871024767756550481214110080687200573848052252368344151652942215879392168727157104043795051888454669407719215816895938387966596477547686462845543708894192443962278609488719892081328120730020391611795002549857996603406217966267040788591744207746286821563590002937453510388269240605786019646973889279628726683961224146993155262985350440079927024799232614247017018215210775875154148821581523999527624907335466523667128808639529057542108188609014069487396728028110146859836887017106065596340692395551630224171541066234801528742528338713958700338110873625449365966960087884877870755977632920677239576780426670753373389512943641203886192421819384709331034250936318338918326158756601249653480393780180415102670471395591772025577525767190417267093617959967331479674537925283453604777768712643035794229363659909659413640346150881079955235029291548376119540714476602699245759965279766930729388198195037181747732483113828612472119265788556980462778142139479075748806306205788969954049184332001165384457138985901458601289716181436458415497799008524436441129620469290885306024047434411383362067937557918722216082012770450788244076056303110210156794208078560617735504526412644861251973578318726974969525453880688344865292099192495029743879709343189466036518676824664303614388580369596974989718180183042067553935554151439213638340413205592508578123476698554101070254393905648036683399746811860999770324692500073027007905349729107922171590716624510603182127963049756227185484928333155381924507434139986757215092891266051713329471066485070578938566395025559720931903116233392406342202621365623084160740159540607745325601560748745646718572460754251066068949931595683474518283345156696172061774738154349967252031271836188542075916833849248172697776508949265102948543738901265896273087848297118215779628944990684705779114124164454415528408388376296487645779525326891192883592519600079923663901391441282130315067405471045548726789697740670743253683316476866754875495296917559596567447940748166639555121407332492322866990780712548582358344533010619901226501717587743756386575964574154020358238074691793421020674498091113922439510950695781101343642881115101746296965596071452922417028801850501123908234769444568867974048583780056823022678540596533779608579091131130818787477628343789696529921516319836244442564579547437694359934761952063094948467401015051973744374350327351933792746203129062320743760564793363302068746843954612936207116281610809118184226493245513577914953776111086603393919513950463121124668819636140961980417722058401582590453987984579366484679998484038155353014000827670822211686303953596959560854237350764953020502260762530831015963491949866227987850018757313387964904583809444613359900231387531573136442286325486324072969116652825279384430684386438262050518477795333673236859566133812723342424483078138340272503737078759891012200096993314621951851768820497823360942989676549849850333310854595390074080065100355515900603517075184284022652252235410447158791637111061780480674902820040111100343301773143818239439355251718726468509856542096192996762233175942969598322361641742913843270885920142470755903976349577107441977110061908324681017923551626515523916474801497111517286896209871174367476448935344735819315536062482607466604935754711089613601897281223032323435732633915749700221150101751485492485041278123157831359553102560563239404743242154257537685588464303604550876190173523410047263424699322453709805180085452349173242105102128073037091125538427272835710466007953855471234577490404840611855359090533653764389275631278990974867238681644250782242093986878017790608868511248320916957189423935388319463611230110044904022992493867605879187587241307968644406793549962702630819702399054262025930053451194798152527416867112714415028243887985328854405224061766668137606644174384730382494265470159406500300024297858165139796299446191838236434874599650633317163169396828282083605031399185179345917284077250987921450221900357888670675738923957096326372702976484038012716110360369864621587688071778775155965916450042668525083764149013037419502633766722464179629940864751179077857794833920429876328058066297236617955051591009848664820699993439363398210453347192938500009233526574486276837401550048789275398075553406205016709389630883068953242662387556199015578016662318659101044154597264422309133899730831005202581469670107128845725733424329438415362210837571595987670401454708437850634163183153702052966162017117091717373014055279117412661072452107366611164319774076117168320651137726157059895435491689298379438859758058538108172131520487064747453865741285917805959476355464336591945015199868031423552946584603612041249436113027636032383189666234375516089423167068174438568971536390051398200733435206758043580357674084824089456002499025522036437019800355187467544446411127568186242877337882176130971867382287233953398296292606415234993883178323784766857455709539122415380870175207776007313064911975022688463209780035492854466715396262312616241417885073935431115912198837509336771762087266661900596086802009805480868857476635978548763441408449676690605111087753873681871073735134605298271076803699962063831749528266474155532083368051893565465452772369272227052792483247535838736910235821829891860426768871451587743446132435261732331326482779223973498479249598401117499328382074106056520045380418261652116142278110822373057637967331821454951642810425574878765801226590376687912689841436842882441375614161150599322340153095218052502164590783132975398834579855521793976199267112926188679112416657338581810691927361107053564600322042471020918496161714187835072685479333103076901458954941261331805174381824756306712107327566098266075825347076145203760836314490710446106857647654793574807227074657846946089054269065389573127294253508073160388071138515138476100154957427827093451266563313894021427992919877403479895532325710513826116665099464588656681760628587654508518871293531657388345180355359398555365959041261098400727353701240727611947497213039875127448893876829713584648807377579752538595535549668599420046770831239491880955006727450092214986810693288610307456819181585074355962683192162468249662169329631840382332045634547550356501639478047721137643172091193623235340665449505477080574536676883403865405602080786588990027573046389142709071560618807726405543475557927157953890056310104787642489789247724433317015817489394729437955464631604300094303721536863181672273144722264299814448126633553615259043218370805794098724097157547179751412787788042002542385833998378475963263307658782403160682552368021861136714609207174684757924786076123512296375065113453498059276967858703812755822650266961446983856862982750789518045368428121207666598674514914086197178851325740495900673461616702721583009695816338782909995993976698519140663901010486018860293258682572582543726145245549773461766486733161910187732455322456825682310900833676128459907001294062902851305721889513581732606310098422299350049381277457110823949833915338748203709154511983739596707265836921512209182700371472109079717761908848686275548157888327751814559556730863570138965639456011429089798795194164168781506023217330595808056886245048102587993188035513100871065159132851939217485756417255308289104520070040976395927046194905912298951034910889292736973213705597443568281512029952986463410338151468417518885808158550065365794221905194186362513044317237220513993561893168615668951975242427054748890035115982808199109412634807424738934830711189127641287058000082251016261532474493534668878459388279469398534236119426856793100692488540142368610861220026829161491672889238000601285379013670274683359355734235700393730198492704653615907492791301154742078403031620121566008885963131587070616569883203435603281968679397064140031386654876291173175140537600529307647643603325568974162602780520748389798872726307401833702332942406304414787350523000510517611028688693525104001387230544764012540544103752833534094981804305591815575782429592681130509527887356379277677641771009477949795368864721966989925987005450727308776678589988495889845107420188018777566382600600209553911587913914657209421963618867378729712077253128345849974479953118694805573843910076554263737622335707729569585921436397390979259621877155754814027456632339017747446058235905437002565107866219203994029181438690442890325134931862504143684118858325523963667057139975759618262479174914934753831792456010045044479786920442088249532491708235668921043030120878053259783849569075215166099342790914843792458775429856160286251652713462228780474242658795602089689996040848924393409869578487912764362857241875405967395506857138381570865031833322532188381547079437194924121331670395463889934793523755702273253644101882204030332028326860061121385108670518888925531500169356692699140271108153042439446317167647408750184735148879325824516762045526433336149736194903100247528075397184112307350784098826417514993776422394469397237540217787902780878021581993970647084232907931025262774702041855115148578896324552812739129110117948694665246732873891424044136926275804074452126306181919572498839932216689594496965985580427007764737061861035499374723150379063751843248251705607394155831388520850364684598893285227526956406002254336886033716391030417846457238954123688999929785818948723037919588638517292309334684805231216485166208134510755932881500133817576435454298672915512107937569469712141085845086310972921824856685899678363278672310567498397877394916509793157859975290914034520676392740926229955570868367302142293950982848846863512108382861999707014836607474713432543327900241237745963327573927883718185348319669212982650760640194108630516149158847246068148539966528782164792088496528671642693105051322113843498899181614235593620248917462942311426590435265194489094944069744105336018003177912431620262813403058960972240661945171509955910468221554637925357612928135082550855744280556055278804267901094185145596757389904449403175876722117429031669994622941826268934084175446845844631663234329907261434896291479770452583150514455755149131691517741014483543392330132651741480846973112313344500860249335927193445676366471640080470673078454728317355441946371342101990705130536800619970635171055730495496605685707669404808748620265374283695258063566849004536076831743942177753042716793165108323846980228109713716184497557670663526523462001673466909055564638624903201409592437633766619846780580591008249784646966047110078440296315655177628576143791883406508677645685005638213793937065730225369054246108126869031788127369897266665757756722544503250789992721696760685444825578267943811333289909483994214980540098576875043821982453422169785350820030420181028595830855000654774606650915474014974650979134040901760539303416460007481477944928657473426436629332011792491421467209479581856535667924445532559709925559238366557380373517518521018827516015246068076393518947974741889203956182001974259949308678292237061875088701680647432973219005830999785854144215845820338717773830950789659246342430972428541035780529607467406389812319690047429645595689625524482617171888990632124414512264539310271103542145348225933295328283358697664332552947476060187221893352048306609074563191078142472263273832595872864694888863506855793965042158926905298513176841268825426471067833181976546302799656619576888181707046159360194767193238793582701916245449246539609335028271796677998929492910505347642442251111450011386971213007441928887471905202378850006166209865280390731121880438817095540519394589469910708467939492840920279582258099464737528055945964182600634127154471904148069667960290099468932709612436879253745965228439569820108972313273161386290204894068380049986412696689044113137502123867960819324482791034516674133095378710920789126451107570402683929991408457569200462831341264477378616029064502607433082859635465211504215660662710656710271829433175045103285093749945393094342533914841900089667157401916829248015404809122327098798964128307679251976789168969174978854267541078519836276170253139965820208684050315281243080252432757309544309640911617092057158754984930566362520362834311451769099299156084977589905423716822303875839016308650173923400093638888044056943798344477511335566344837465953526960286764920815817551656879678671314463072385687478962506054547433170489955162487151824046936564681001128297961563296298673478423816071329137168971041503855755586079380697085578012980012636981727261186113108761533295729511137953649697079198070177796286954604124642836718200395454222001009086406341631214951692271344505567008424709910826245201861132846519462194484581552416486810071451926577051170390448077786870217991502575226629700433766132405392688406609039964358956897569505226447989689028264959843918024279716239395669581837086097658566347838571549520057301559302978948801928898323635871348566907483905235845857258406833966367237211658606268181543640864825854521577809204306704112175865872550365527726599273279263517716338577503208217255989309659159195268242252468465903006788094929343895370877257827061970835002054981231517408230050438931510328832679807569377568730659272307896591950677768510224696293398452836857907040968714459440872030837071587448419816380155803715373369736371053683818573685126151428239664965906244613596922026103494400055989699212451942467988210666627810108571679327088978946467394997063810836719504231598919398454956451564239535354789007520393657764767761939677646659271227235318121051139068250095758184139255346326694708335966810757622224671172580170409904593293193628790374252507785556042213629661342262049964858572662641391572157480034557730244419154526903393626744925362186718343674182211198730594166188086988980866517138688729319844607413688654103625333828126283044656248808950142149551946303859668620292175242688049910809007342774786999724870373272340925704174534634186619953008184420023127188973968589620866773520020771021312750386028295477684644824717138610777058667297426283329416656703029109518315607430282875880548031522644941059759197662272232106408715597369959243605584088704830668476893786291460998819151105254985729066231487342534473541370718531914291060059144292338335873387169717032805290736048710057900651493539803635023295106146613895646481649828492706281463793714122895738487006534821498122811864245687598629792355998274095551723479598670240084249093540009530458100458518864170668831182199068305368090237882609700620300003180102170118812759788616834662313193908996667877675585077264302950633530316825455668202142474935231382237587600700129756201803109038285306607196820888214401450665285251359572891203266114251840447384582679421328815455480469245111224519074892275716764100060500110127154593199455690659965171361625850918349490662985087080886008804714215363094493133692815410016617267190639576710488077894103912991358616512445222467735271769550167620015389829160053377259637691736911211551549365017745061383648594546757701096837537078556023536283826319178778239046967263143647830559496331052165418065184234074233138040656830037402912326668362516219170855358195036819602488343217909039061477443975752181995053363695828645098866712670682914574969522443705414197593716916230191779894080038098000165231477940465937876631858208457217239442123146346637726322943688748391700789005948515710840554878336894329923291688954816813789855800135357739693396158958600254901150369718061680196648744157175299173110364169724543947462135076733640735948028605787297899203176519476486081626601857958937746595342478199493219859777024629046680043668693148900747465487572611043577731882118030390423954533807229993255935438067188599412469382208567180102743548096183119548573071362687272588311746028953416461696229243195408711566354679692370964154201829757845888586633907153004336688207927615910430306942010103280878214856834428359420899753815640114142641295249181114268843069772036905230411477997153120341178423629309522497825813940342255683599001536473691832597316816064985027077137436023618912393944825217599837499937388291045467194161726749588240351060197324325741348214051591581873407257375860576933256708836941776069255433134887164584460025996205024331414856839740055026069235876670439261368268583267436652921424040939358342305929818245369777607356085031868494020102896582433648642228061451295365087617842093158965178170299619567455693841601585790782269533112814929530677208423270631970066214334169528476880047514399208407597804254067423264990561982505422559686301805965113761303893380205416927323517713455818607043892194548637883158947705058078681074047412778805605879840616372627006022419324251691222525259453313027024191911001688591476717397940597130928380501943447044769033253368895215032011838856524481432019768323507005028648152566505167529932633798652969496754265459898888755782148377613956758105463816361695065613521471685346782185633778630792457554558442591476592654460375650195104165614254612137539834026130382083885120287947831320351145094615904836386212961000726493392335662569490026270628083249649527619309318355679458616511471652821259399535713907671359810343395316422925299584637119486409747421281940441963974338832937737631054020402336938849200519843677748717844421776627261378144158318568177114363055662526230690851347312574816436495545034921949817038657885604254621641814556285140874795854294140780961389730567821613470241817384104735567377072805273772198227319738605705784768638973684009912343334993542994585373856084045303943481122089766548998781065076411162395253378104615353070254021820061023809813423461704288347298919684188577234744114465275995263097325023840869285347611236281210971690918571968169378910941442208298877590943336726697924496964102961707004260893187494729017732350208132712327473204518786687712484868000605153103118186607318413624257784157006105222881301161850784571165084062618556132565116133160847681135216612102491145310591232459128352502135464032492039837472978054916468187063264677782819586855877896280558509668369429241524524171911201776192978451192903286968156676313000242237528541126553672999808797604764838086945687974136196280447323650975353588912926100809651923173582528925097212269339073982747302903271960473588202038679999618653730876546206589590934980090127688780629756544131614637708689886308076965851395289803016302013704500546170198419302397180775814157726553941118033253484329269735571356848035821131788303060049136686126094549740141190400145674956995062465473888742633772465055500475785257179559340932894228003964716365336812549340601097221971814387056754842339785714360288803361490598033804896878028121362744934025122605912302353261974531724530812342214695710192638532624241637448019255991068115394537378981536856840893126626681620977391320119549235072751459495108032143776575370567340306883720944577391095013489949650255954680529859944910397936201954256343876362207866409306165987652039835931292463161933623413480582323486664025948821580767605994150032086896646050748029049099676198895807934879908319073743114980751050647572463430059123104661614147831693528027737873092307407571283186162427038935715625042223368472132188428169192653438923696834140532798771748790831915289844512725393740651113331047504666452455365894064232085525595109507543707802149654334231186602074485405433352901343150144292051688509719530026733810411636665835476791899244848692973643264873994420690102265860288107619258240367370405687947338982580459948095756407869684728075708209645349577806315050018086132406793853449301490137666977894300194907863404377302254690630465992535854108206316270998324676202296690585562470905300061724552763459561316435958070064775931934982482937275214253976132726707558207243658272819973233923544945532961539226361452601001865074973501577709376305010151962431061933976321308358285128568150926928754910447949430755693166165249979452742291761476262370873321659352445400389168473488263525910692623965146073624182100596802615545538053870581699922359279579215968216751785158966327432798387692003877461344252835976806499294983048951578184715778507329355648124568642677141764361241976905036806193787570015440417833614226823571710144114932606684695700853300111198207238930995172524909159122740002199461289322299534970516309800770121178956844553671902767059886918574098677130229142010483010525839453757413270490452407739830849235439270005707315446959191467278488187345600157446643181110772032610499686057797083131056876186740701693734041294785013264757191660182967453381313006028125086878048769919437229593481211686000186457267891575095663223328145781723546757239394665381952635258287684964576530188962752898980598239242736488993347020473105484374946783030692156203387907473513967487780020030565905435262517715390951227550872612995644699395112959561914721531112547259915205502948110998055084930205326598763595349761873812553120314620197726266657055915712336987911526426211086940634954736899317273223895869452580146493996564310562451076980314565038221719035724205207217213801929642728673848171152858821566413111870578403310690714185583263550957811338060628684155196221773967653566389912055396597945464609153841995904528340192024288178203371237624867459942445557175467486344751068150847320037657196370389075676601028661085514088677172882975522488566999445783242877740682928142202209866253859974279978426680190621006440088689081369997394422002594564303623785529729105612033880906759833413544169445788551652323933842377829851307798131823525869295237070851738484829490569180110586777043818153783664193179106411750606529958600826231154624080926146061361465365688268490163412852452927254303835103572738886153435381998103354660272251065519990349132311811197915435771367574372198762580368123550962197668417078641250448107701054443268375742087206725293779749912658792574540427043274554342487994680539358083822232211254633472068075265360803286554090477104847270274527048721424036570074104874114512635561485102954933966511333057217558366174864483203560163213682455193513987003935733746028866269766888810911125797089016531284448830764892175722737038763031698659778550511404667599246223325394862613243052459223817097986889825905729237914361773523812912663196564321623998072316764921236878348933352095785108337035715994892844587134460788211202915864377666516432895458690607436875076059132145382890994843522083553452132482598785887289584079707748863426675273693546768278706363875570690266954450824640930923911650983422422989143821079880173272989469309994656567760298065962667109885635777972453801845891438647835743598769689775065733553314775866723844031604435774975628577676660905037442406055234604215217143634483293261564526358163821206963165441002159981433371531227933240957795799719272643698040060131228749377539207903971623630402490679345216264215389614919547318478134009993383483325790781747646998763648644532211992255513824629268144560649499162101091827202928841444554028319449325736403370428645917698134596246348277657345177308230759248319216539951191455432007057070945641398699521369885696727815604102146904932052173303096551658538692144649119902939823634578742230648924433556875134925023739764969093020454310987650853952415575557512146521546324809760059861382601014307012050366400016079925900164293490550808964592032507916292781479082022983032756874872697574198197526008627389722140681282030613258426491227770304699827785599485740130996867388855853838803632117684424358192225766258653137968747389704465303285253745681639727537500329004620207777814869659546869424115797708221399181866749870560145288893051672146032596131626093748108598265314655087755832529732773348783068826736919560272149085099387589138431001508168204204339079882026575351021615610086277331292366988970576156786596047785293194039470715691244325765735827452781831489326063610712973479382117041890622733055562961977165611220462973526516375039320297737408737361516256918568809069917965206353260550531314752943752845556508876519207432996633136647126365723781060122884107327885984894909570015852543885330168019831116819053543707534760417057906433135934486396638259709721377465338422207356612263398804686219158576932641947253588313445516999755301252037330949631660933918036012965773432562413597955925405199821193865700879700059406356316971011892336130674630399703790775063678468151368188787845309161582027269779090524517762575570189338476665383915905668713066211611603189442837660951928069470955967005773502268474709547690351096098991003875354313943307868791119974250906495641110668823556124564089083658464754704957880273574798838480408301935124854929142793022119140991245012664789912629243121593709023896188219388969152453116894931815245165725967581782972594069950679909665735841189770690474775129785359127215000313058782929229170230665772079473415610830633525285175382235975580497778747275666511928705143622805028341402637535769335141604551993950629056629507155922869393994632578804805205435619936819052767217079748706114734883828098451445553474075809389040834606580699521491270929780635216650771139552064241125545906210150185008124378954309436529324970725971334831609771497020192341821196043581005436970427780317062265333662226607594809914855117462078841970980056499445442416116993704143531007130261249926709806350617724326012826594801722619943221175954737829350913126289960250375393672467427345592528780611362762959885092842471753373478853645768654183943414948012576920379496459930903137539668101725146161663047696434168015503559752941467207272902723956821055348513695213252753034237691305630529074441426521181703591710118220026702759187149548608642675271913868220369233077880261086431858768405723214993487558053197970819251793405905469844355213493935007236332214300609504813558663779005292259596335534787424815466509213666942327785935012047169200383569674567965063397981297969358751032811791636623483300203056576438346522840884313997228478533528728677677902999727077240625384668038738679685724385282666649232749025295001154903503194359974674341606417401283963135637767240143111477116191364643105389366587794507685239943908781201804174674961008993315749117196962077385543025646434125963799973507161364169199997583583068592125020191686498387532922796122576843972074438702630905108109114093113862381282620254070543457285141461507993766064126504703272112499353239034859255481317044125542970418471917204294993371562207770307558953916387872074062799264853672728281390985032288889633097046155896419584479481204874482771269895904199164837671319768190918776172428403723194226141671736583343376493949849957006384463558208691630984209128521011834520053045831751125774679517534266289920354702412228837085690036924952281031469007095822719139437492341233892959905526721978550070232332933009863652290501215515341551469218852683241769380849052187743495716726219317433236294315550193514877238206966715168259151422188842456075582301510718683644033244905245856544834169634151544615643919024258139502375891750703549382222126102213837607117753484613155189163269339616047237630887906780997105195314389853040327315551746717733913683807613829260696358492490230759151723286423879596276047613023410847237117716313767251568165353141387815784763925371855319684422375760243420730620151621333772240787864183780727457151759500611389596216103771749930354093277673331539333061904897146191332300477737009455318352107659989293728076513437875472327183618907114817931445706646417525979612550270643172708749188097365130666296165898982278647849990006826132858117295791336850808412694888116584155418981874239369501929857333138451116908775610630363391601293387562388211179666176869912438215930819218800711174678211552759230327899049659431776355634032286532293004653926195624925292767612831532789011064693204520882181137643516410570217603319177888413430481094048145535515746726103990098501747552213338159107644180623937448281646799739404355029798805264732678274587113944798725239639284621679524285128410006266469757275143644859285823130964586678241132434973215785212681812450456304909480364194099541783663577838283577195313054299944315125232158425612638934072303423251583356798237364327781491690900282435991189291320188113235950370311072581559722743529997271062758101464800771410838219504914384297788643112386166807459674985541214175898156946892595092628990358200110355775629235774874212739443224889005571297257285537802087477252817545156184502965525591603426477443145763681615182108623992597222552798738281504168415182448623112682835395366919210980597620579026781292605753147816191677794086183247631287779898903103203191117688594571544404473867986215065101271785824234841428270032440172384390936726973693409689653267386710004501145359345031462771406917043231923379921387898729143070940663837511584754244524971491781996582201294687967753831997179061523845298839602149594663757909027179128621257211179189559761839784118732377110108274148925359683878762817992451116653001541000445147111176894553584140640518690524625565475880216353001995824936569865615649401862309121978788401414614359820361673895666202779590961598205064189374793561414207479268787969063183054671737472309637367969758803354525857768724339865778676269719101754805205975381305296007676732905078616612188657970014762957519014898339506083794469614054486959615899281852114499775255593543519110630673496546181122837719728710941669165478305360385591212170614486255106270720665418010793553102641369206932384785422155935475107174640218695350954156616597436317503825991948476204797150653840807410048933932429462941881083078104330172741267825954334754953338736990830758728809220869170175860441266429794541663588745318716673473924051753504718271575540027874720578486682810678824115737611938300789821876237672251682884126412166232618904047303026419318713775768676588638387477943412282208269044935049393943064061554676948305852077566161699466618505076641389084978510743190808888581086896405411880100655198799030062128363087442940564676292285030356253186338684044359299323579113057412232523357785428380743570485480629003287559794053534036769135448465304300267206078814247462514817723811848889073755111129537996488408172708369717204735151477515982149252511817795053080842227193197049664274349766053809381640731643416549036673471156409222893921407235726907157065719315422459734631856480019557478558420689090674511328296097637051320448666028999170526229718555874330294074954904513590829935315488485288134184480990687318658728508945615274551697635983403092209638501587098876669162335400707109131093520822148310894087390193078169053081585482362218580637420425324675112906954514065196426117505019391371219048538496686924744576652593111279738839162479675699575951501389417944521706640186115961260833341852073818686512668197879790173051960850847070178571633063428060122688747046138784640024429663346559455384317137182743334763750090166867904347734883391077543411749461784030399105412167437706138387327690587206077498910768772214089710290606945566598880769468284145208707832836050136791448382403784101273391835035450650272695644508316390464509222403608128081711497310773831411241704059922344636332700569018256216856108758172423181270850591627823446578724466044193618488742714310719824901111418392420949414831952136504289108684813522363159415550441405876655096192038359269528772588930744872406950853295774942617949853203159403111846235542516389876907786965157287373379951969557519978593068137132587893077132131206364575381383071218800267017118777063388806379248835439470796839370665312872013661059745308937651848309473153963629670484473868162319284234920924740853215903896019584402392047368083942405054042392534508543913655546962428436506671322291237814214162162782307272625488206003929375822854822592451452435576420434495388825825051255446001131477821865094208788502403354884910382157420039476708676216557145547091188633373913990758125100052238601382369821925062262174483526267519704042840853390006159132322056287020493251262449351290995762831286214595888078011174763484386594321998284430412853547159928599051482712597274773544927381540464370675383472317179716039021942948385556537589831389305830428156604112738918891198389575207599164709955858950373152042686114565230033416852107166611965460622387741958466625490440459952456936988209438982787784284862688861412259289305099450258031650016895050703123971502235727032214567757506813218445610439144994129283105181521144163345782749993313579786413097304340768737241594509425989287144987627888621107569969744872091520599769366681613188234701802977861990049196834571881115037976626493130748071742848904625791448481922998036085615183968976972087207190179317309337570201310715109025203074089323201319609009601343574331647951501892275498375030526136785164279111107763598672239271394044852625548441740946340341991583074294807907925193818574355067638551586121956768594915047230253359699641214344941356260216232766730468434248421431749178415476726345574675523878172120148223270075407615178205380378457629840865236437552968385318851542488345925648850579282055180672178051933950801368922350908891203943284103380402590141398841048065809160833352113096023822029636077024299923729922011285488214990412483648226299899057228613439706227817268509869315938624756501910273867586411977303601619583262417242977110657180398787028269481681384071711947307697032470717978854403955655189465230510378005773992274388620409513398330108478881143100552655685043719567028851913648991792025784195889318235235121029648455019919043020097989253052361993446956424037514235512580700121843964826820929108277005012101511246526647193317267177882406227246140529249464318038781580410235921487745836037382981506048956155728816025222160093246477750649815783448007059094942011562673662981857497680678197326187815655209242677064322149784790167512306071937071891030767270965277430379344011485165603435347453716387254721270180388281801605619217033374067330937473119931426755976347173875567392187375527060264145140980241361143656787845743195040583320750481922160551920504021332487546501053905174409551987467532852470653115688127600890102777869376322981543518856321495097544861499611775299919951660007794388401901789321425644175143769734007520510722936849887444937060921996975977586522718337780749348281868946392005872162374287098070514082046460575546510835964803546709342041276493028319922682669561001145579610322203467580500401496408690117336912325677451991685645357902686523444299712974360847761969044328533988626058824364604106049860526561389728075091858422842434159928200395020156989142959837877522682933981550276526556386777269646702050990241820107827572941047186770137819244257719008515359642660433018493420222835492294234961575332037965795893583452916392574871158013512758110157529846136768175551644321571260112551698355267616077981416623849857947750456267663021928961821929820047777316212486799811739403115819480370949142436198046444415523373847679950921068730966108710262070005728130435196665507680279874856980412262212352391703923621488811998209289262669622675789588614378077520820976332830970365598715685726576699691307600316582051293392476004280531271573594244410616489220040099166697081972818435747519575005497512989672297864327228528353237427533389877912636737220714560249039473632253065711606962812794064212705726235099884945333603927928049274791803452421893319952453579186923731937895684474261080011442092874252752479335640527430165962284822075773313347229209270395046865207517483453691564927913146859636281251252608445112048454151357648020613320652773255562524292835329772905596699058816802846710678264681555647748193789333341875045359279388718794431542876400306282260109086870158072362765282612279889872582961255017754394666392923189077243171983740421599699585595023839342009023526620301990434811796009600875730815988804692956543666132097420392289640904722164810198594677640839509980976579723598771830230180564137804240306667299896996872973220020322079696866922291182337467335566609298139010389983416370116810716425150281517109953076746972617467712417995042969183928256221524590288782544798125365202926957312760309958613326263865420651846458822427556555581766015239134135962324640095595878842699897834664039020757804436290479968188472684324069756038310904331384127157441887753336776170587793194281907472103726414506808667159902125551272794857613470165806374768329139097651540695962620361551898151507257928556414512319090444330936021133181989929255639590843040664332743059126803125580293088058778813222677026265170369791861427542235299644589721862819969642213617721115259763318452913005539031773956509263701357095793353526088405519224321156121947660235766849393010372651346012970564811736417642798673529713551825809100646670914606525002548537155431399223516257831246443935314908906967084809901435755950797616834922126812424320945738931309508742099787373809509649312318025233611104868371245987692061442622500189426056250610562173494024286477138987437597451857808843421610592732457320789035166903973371534071925893054651327420732140969166270150178499410421640817364068837620208897437247090712225618205314352937978801071995668184774157910924793664338172749682642980294176551094531023267370475724790660138281646947161209846073455458143687777319293350662011892786914538882103464589843098836749433856600871979365235515968259434451335596513414098105782756878987938999209027816765696152803703671137306712823352905086331751459296220580200590612028951022473073008395908324119008787274840436362009728557290413094383841943478902497998086026058068627467317883918249884317076827125475978514463506380941079717182635733515415883493378169849721532522483791311325510014926352125979197785368978494967863781638705265254463522419899883957477847368125978875442283832041504157357796380159308589696002927300949497762941402813678586222335503984978343087762883439903634668096354789462398222544736374136638594445041036870739179061380966931254045962729626706154149107292922909198984749602568482349819013748419621519409293152054302712404871237849239137389335300058054156812709953748509939486192486923186438122272162416760475028104089421261871832434322505810741327870250987249689576244423023460783140715941715020987575732971997849865549285383559210872384688378500913871124552639404265992287265740266395630194345716027748033719313712654000340768964814608289612086580660910237392752458772684495519444746220503172847856759611421350387033325064166122717088969030094820015839772262080960653005391745148663523326580305880975007668005769159274630657521516468444090249544427762314254530334844710309449272743030921122109547664689536567169815818333141427212538637951322059813666650427060181119258417395671447456501712744169519511889047519366752093234732621724441618665922102265384024174305854645832947307023782747324260793805127472182658716602876110487936195136390093544487189714427503304373134920748774832912281975012462813010828871401131842206337211901910094296836978574814607339914367817817334591580013210867223299445843538968855621345435635563936497774526258196399921354337204729622588161031581334661741735902756742411220245887969460169740440881353233257716980073941586188274325516513564024886465537967324146074737584831923583394176012466762764046739216300794826012378260304856869886936636244048973540642898324225679956644536220706809770385547375348999031734834295740563919036520924655269881501286686875078308431463863667638613180654149180599139207649912156556022326607082518394427463787789634393527874247671141039278138967470216333475583414083368427153313105703708911298125399626777599879029940956684603703513496202353867599802326569432055351785868098060069666881506946620450700338043929772973382036232785356797525013778821613182614539516063753245768613007889911558428766065285588531906073002411882944818936570727545999934350675030350992748672660767941349515701524880070883844192225933899260800765009127377087668857233926663010272722320069895512523600182639910179639722219732145257030202235117315746054773756261172239858051178605436620662234902595256160731752550219863839111954950495368580991843791029757417991246086840264146491789418728442841773878842280722981074490787251206138496835591225241660972298288995757801590193486901078842469091167062888251768705146401069328705411579628657144362076802094738128329686342143783863148387336654652085108259690239178832323759251853793185434638775425763230569677505344578683070407355135788278930078897829652207893060638817651514835758723663900745833289932117112675058302496264383212229709054490329996272777080669563583182067266345092503320592041525592472944937857586219043742131952803301367663277847294291410013244372246248293034422570844184515159017152891429686922454826100773947390469048511894137527381012962353635997874034749422990206686386247478914412320988069571937752005431794679625834715483626294800673560595966557723473654513585076528118801292592792079134564793958801529552019365923602783994531820543061631416523147042576036429131555872678379850854748479641668711460554530826487739023905638323816606504497743830951202185787331857524737757899487177303960720015590693712114691883814584246788695046939035589785800714024977932378890617088073586991755819123230297200153941505829307405229459984022730700224765140075244848916096915235600856324783668727790487116336267680048777098716448143443967242543234442288263164539518295444391174283705479378184051669300413278307976898693561202002957403924135969516308190931707458814830014369947837846341081422535082934722207603234478064041545622745191833231110260760096241164573668918251127701949714148511598532268668838470496537322332924032558874437496184660395045394244873172864024157235990670086085061762313158828132255937863974502717155164758444663279142824125402651162059235818453223382823729680761661398338162206401320736693091952299490381026784494080936529340449500289854352974045202609064433771306848649758331506558878429817779634434050152467437960061662374991641065113174502291187629371177744353168178378106332154458858847830144866400618081981929997924484856335536063149192988449508885499550819907694502229410297615944506236890892464581540807519860959722220966820354401714976075957082214759804428997733276773454069143633280451309540120857429450288766680120073919994464183173278832703818847081105433016944343663635566038078996067248149382087559782199065098923532666842721284789333438165986657654220837376533238967971260174563644971059422771766802789904847939667515756406838182277964094838914471818575400753894274420276074733012019105251209736654290526211265971240530398399586662412685625788316914230688706163053173261320468401154811685489183350993000041129785848586137589230624114017140892723808082916143548531811089186103728878959218017337724365264652163573678070492873624421776429162760628594100580474946738550660048291482513381065977903476661936970875817880297382953470567950193606867204291149206402832366445962013450743002223377622438910630848248047970758260226877897348470123705077353215307937676465193037350604862077776632655247416908523874888527537755889564250028127595397843009156409910302646390013069419946582344860905649810563019290396588980812871287760787796935633671560740422286305775820558364686136811747503712012769919563758778343335149590130722326739033835906796994556640021778976774900817543896730013491873861823938162716185036776564285957655487145207618999596267514172319881411021532611069596807765894157148036532851216570433775235733177788053607018003473389756771039866447269248163665974061053500831540774516676520782665288759096209894726161277471396453422434974401058777464973515844010532574809147672483522408673679297082916248403732737521000227681008073055665831576875443664044797017352416643273250239265678556877948779050713260644804662986491973982294956248555999462685347207182315870508292286881991164006004068269792905420267667224285503391735837954568136563016477829173089124672537736413402861250407150070213909890334735502077054739663338951860862232463634392015917969890553932308036399193914004970331352681413229246272874633839662741153059658817182364695749630358230611244493822706242062212748177346172449340956941483732759175753209282782737790929072185460061222553628551518969227454057691829649873803334014988112434750889077802157767231752622022033979565308628136585161046246638689196882473216810979399600687676763609694923829023341621704490264828705995898318480924427436510514391511146680732162449184683600181457719762848926244949469500516850073484298931957816093879313607026858032838197723066867562549576795554747165302676033953111935476718082286609521466462549797341525226464464509019967276574462215167896758209580711786990164258857392206357525790254737875467702672889092312977246671100849071224255101390209813329942792652624678214283856249644981002540173157307794381634465593001765853584265756236207258052171884439738748700996035053741530256051930122190368132117950773156292222669484706070705282611436343060524684292104358496633524863089607695454411575095961884365699846073903841279287559273547748677970422887383130141149119721319106787165385001097434699506655776797368976333281609643444032673892115122503837043838374482985505645920777603885358247805950233605580182425982513481621627108509061507577113560415502695347381444586786607584680152849875201583040662610361053504286251941736765078669607211335028143904340557927690173227383918631626303243715173670387145601393459555297263632155656909356475908587441914434914990603861691494111377424890021100515574706289435072541253975374990374292929377411946637822440470480299328503549161803345487618408157803881807552981049510484869076965278671300814481657669756989921931467227965797531008831320592423926936478468283011809805122752245158592496861305326200393882135817694729526114871602278957046460357791131838427661310380259077164135246502501241057432402042853889287628349421021663340935558584460947595980305028533031183478305841897918722762855444121350738925337788851300594202889484797846974787325638714937521950119147257668809323505652022195923483623863516095349865859555788838220706503560837250561131857661846884443040853029009270299650670903766539926866354397758575960810425459093544859253753438695824414357594077128865342137465612609577644122228643240788390447317909154350224264071842191150521524333959346623957267819176564217533772489552458277762064161503519813996499408355106968756091545746658412593519891489243631695812620651204906639975038557215742883107596619652292783193096836190703480020887813471358201424584671995592689541973970767984891407115325513376960809934655011043410035631798472801667613658412444030349676566784864277686494188967258271263687260003332946523839036745427392132712049590595713131448164297297916432914434046596226063090951475569202477252950413777778951594124856962615511438755980256636337277414748648471814766686420190269256634122616288024832627877415507283640238335859151957396049321300550945358241107140904503150766701083120362662056535569459074833331450516824239395437466314230648170700076162746364726610728504008777692990264992016925681450620236179112447801952865239158864639889263549112049426703107330179249949517844120131254166424541038224385397271354311190380220603871021307058924798168836894741815044478541456078034336115186169139790424053259930166783589713562713996002487309022366255818444610110062652123509897426646303979817972475006376548555565981870476376490235021935825056444058177300038464973747532621803538663818149727570439744129572864127704998836052812659994884811790765614663163106146077175835303657923735428748206590955432674306522312126497882639266634824199356946879775512986282155535723386544470476895969026353192839343431441680822198232582405528523598828961356497134056951800338628651618963011796873192523653480662708680019092763508160382477727355232335355404854635819472421175334426321298727417962827501951779456235400706612699573988930042320179345185719798670562295351542022083064012049944707420591100458416892207720560359076716817224107416658396715851446531727486648842894692602674445846320438732127301988173420443574010126628078783542446145408465188890249385659793013502250053598845896014324821588985332418645357218795837152407828564525706867418438898027786695179503078980717421790248378759295205272106744348851868618893546678599684310763156557782737619388462008362134673337720729648178973572867281945441376267252413408499371713102891605715739190626896208559615874627657280448725884794002626637256419558934625910680699406987503059480705732732005568457012958065490163165864607398741574093014729327299519964418101981272944801955272616333982764176669456137748496394555050006026242664748091229374822870561502494068960604347395585395124662726284174791222235038401159458504438808447858137489824861562835676245869429900490973624534289494552641400682145082671296773960717272082935333852395513740553193099957000007838454270805590121536295304209660863787665001566192027123503223444225075817435557318919651952415306767198603583191332427540803440819897976990449364110495400620658757356356415372463477801335468444789797716939509069584030954840563044490593360340608052691851811837098456088904747110257903344877001377053448623859950656873605326036343116207122540417987444844828987250921822681091518643732187305497234753223726534769860920903747380762273017242621763699134845158757829165390050458426556619384178293480342308496995223641190543070854935518410911359943218163765220344848194157995686522888887568106812226852751640047108920501130914344858268699019272932055581986838830360412194837271022810773717113989130422043998578851230140355533356667233278860686559054396058408172688104546919986486380361544798382529324982418288888761447882532973893811539567393548098630446834020907485154769777976753747921824366379672171376135478840305825994199177841167008512789505036578187055554775580289995500346760455093897187353775596345870149679015292524836057718696095350514826375313815865956119253736697932232113922039636957133728196842320308960420773234284667102570917405452886079026688784539644085543559492084618990693200811311901104114043673117098405470468987688507761463089914503128374640786581519168632833240013608153043648202564832710785686258075950355851363180523447582952023956783997022713577404900133771440067361523815609909973970108993411150597188281138542503319194740205290475110154791171309392724596437015588579881958075951960380968935847593997090963429811262758087408516921236801638124541373369105390185128729218101675783182846757915340940930225220678502012141589451367227619190719119767472227013645279451190337030516525666319747277275437067615051883390256936404878700524862637318724736971219992801561880362987842200155076116380965872198106076187432163111381611348159738487092127518055354071151094679156294282192121077583309371975625245727890250091103677651770969346726750500922825242485747334169351945951290470486816748232930663489334301999679196665892281821623777063376224078186012188269959816291948258957279959204196662232792335103520211252387153329713730909395262030201891733517647051918557093078642410862518176397737762084565885546830353248387382102332051091292677006541391992721469943314805199856392465434584474743274530052364250535165093889366374177819646618697447005351443060672645492481390345805949382446507009033474010178948297998179129710952595330030808449675528623990074318297066646779912274379543161765370377801845587041855596555151030417956751518037509767508149444532704635536617915439493059966410905601712514552804294935695858399610792639576650088399247289064358993376497931489298301799177359954496986755286025924574306136844224607765973889921554003053763515243150536111378954751759328545465661701686911562973886244332074682059323758247418154308057121576126301445443706130336232427896421846145221795282462706453357818979218597665378014122616389500402871789417523021806196196150510825928509859241969770877964009577000818722003688783452696973012785085312563905564340892809440664366034187654056362786847721192472800156642192296062854969747224710144571474194813958811828514139501299834610162251246515619407762995398321380757757631094479862935359889419103808987656275148821304515390402973749884469391864101843393607731111552128216012389008639072589671784989029429606456924306522367084715168640089781144680670444471525638818689474932882144337719545733577197112078589588797808189550499233164653740366952252790834178847897520866093231162091206502511835048501312454527497903279214692758191729953440187545525220854980640092791646272465298296561124101123232018073885152276284031641695588179494522191358448492880651993229837714031890079906555542578227726229193671815986373021137072750750106881886680573527307583257032617668114248778839251278917358927437196788250026330532244012641127328819688764599491685651316505781685445080215407789529980559550218420809704979749196512770282613892308398192269629575670338476860334488831697360394910123555188689965947600143070467992772599118087457401844518959192269196097891719859098502511621563721641852145142677210510455243032969394277484443064551086889955184879391791687748026482011492679413012488352191778231391021533648773041428925608118532334280063180672812750543782498553578928660673646681312304309554266338990802406915963409643752788798957602066222296508700642575176511665685289015228468299315040032622537633700574535205240663396636215345675379922742137582754625074133028217741826532162996588808942074321818667639712809792846722149420223814610098368928026267802742874631039719251949004971244851226823982243200136732314885792587362600517417544308600514598590955528399380477081811952439271010691087033585069628403002351085920448870763870887658321497879273009224764855690479799883550674158376144487325181108438482981708111560226845053056922655589437450140536035796677866635212486599645080441834953673978550591079639447062863452969814367514605771002308439814374942355464259496967229490371164886630207214180199940232951303453127918857704216831832100071757702983327219129749965557633574198429101052389869219503149610768929193369864657258460645391500114648825007152261341374572334010805438266580669270656134210760011061605958230244998827009398783070953933630504096675718274263580316716538976998570952408770719796031270140437529264241473176290952454189239888818991955730879045457977607925897982532337116991228914887848397203319760901490405445589848688600771280403643910374013641889534560804023583845056054429166125239809626469803561758986097277311843232809527945213260230681023943842383022460991108592535905084112130608041925170032870294105699943423788285279808435174340489263887056788121610138969906299429087985316762922675885653999639782783021312247525199632288793450319545769584408048745510584331586872425594108267383867702861183358090568542155017168699671222031095461051909613938456689904770059515002311068004894942758496605879430503032324594761244137003979824290553057883516935375556399838269577339808822070065690988069633825215087308981413633024353019864308636325157295828662608293271418122889106395567558626711494313722053633956605056932442502796910881277574831867123335382666482417546468236721276444352251866650309081523893952858938355704001699754916236915120677509581114797808258914320526673404412194475631596095526768216835176489891848715017370096084117822060557181006913263809930491636678779409661835055325470144796102170181180632609812670160651952998958058717798865642377026704392317278967334553131550249685840143317658033355301142987897187849014823381912062172099406357269283666579737699838238212496021770703151426493913873644525925362603670049074450734369244918794834814980044007444163030687386379644312031593597397827060759233220720240031243865864762301640528762505277314794353985009118920069149317106354788375631167092096284447017910000572843911304699833675151311201425425486934803278247893036878418502510135311608904046218569380884449222226722186722019319899932042423963307170290835570435050228981611815925773030673427400460949404231958048896049856852408021213790274851723654396120623531229496709364050719707106033779613347312678274427995918377294702593174016232172873886247299731486434532950227177396007714760820194481847479112748321107858151464529397751966252089993624451443484454594427853764306891023780327659982078483338204191887267859140819901962817682341081854775383352250677588798683706886914632293190248656367067886714107586493379388176127630705687614756858491324125112234378842502335480726858549854398216028650104454820515076016173405841134940115403188307283736785061775690183812454828836937356488111928655728779774727832310528500739567596617325437810659778989848724314770135871819772984622826464581111131044632547203894212705810432814920697669844386810407930605159340310729660379321870274883749592545951063500006281360181418734658388444303737475445125216170957370664038660625940048153496451655862992732131066375243070881999017723274443119337170044205409000780775585832697550287124325681504727095491154930250785843538118338454421276778558415620794193437483325070602287546829891676637897758462739001505109515698510478927621400493969347006233600110622783565410324093327769587944309982803181854331844942056858893779214390929011666408264296962877367884613634524917603202583361849304246499656559690535769664317343546041559823673826851363784534985281918034019305262997669419908094216541927369343209401156879501601177954473510000312632730342361501224487664005901145920198428882252801173865803878416956780643131827968143523411758704221266433177991266961273584820934486881622206452593446246671153465469104705254291984761769512911975604026292987366568863337440056885569080403145905876500474865156977818193807238155334695158396458214262430088053559433798129304220226628044863374071657019585786970902190303337209666237854592637228166896669001090912467633654609846894409917166366386464290415621961820971481343287204232930812909731470253721873982282863016789494477102022699979253341197494936466910625458227643700316769334593893293103595563425883899991004129258974104396193714264144966789046253856932602893946780956522746032749386344847518272325957695169258277205738067635716621837596724341298747014741051758139472256396675257434776600107774230669666643321333947007802092150828098160773554470224121218882686336285364968845012842524960587624631419274179079753410144382356585835563486175958581339396351613879294181060099505460926892735488174204282753979194743698587567539745826947438767487946258894377647450708538474737564309052757631290860157439545018919985975003580432511944563075127313526036150000453826952743525882024490113968476581168061247796793679266141345078875598264533041158927917260594822608988905972305979692864115294312664118772204815079800847813855674239785803006578378326845564079021061942667559072932483619915115790514859668459671760351721610818861597263749048587933265983324172341134960895213523410544602175149710528010047843902614136776370272201860788425247848366184108512757466899143149711285311219057240099672996443211910500982562429580202728396921248029587565415770580421292837166891401776764549550485860446904253201945239354482966230434192735459268278230203959999743590303096615213861839486381393541979364667495205703052622256109289921678778103628826802684727138918478548334618573287562629885098549858525506211588161983466821292923384291013478663643461381508690524198704380225783813412850072773944276388086786672416308649138287403502811294618435631314324615155851654226308301596594378815280086418551609465948053587950410048871379741524022627801983974676922622454853006922861179538934791464044326121982536905603988297229123963000712653368542228213017508759015959593522404334911935258988330446580301891238113599370725858833059099659760631840933005153584908564539296331468931639980269488535582734150790530543566794639963738412908509484220843017312824439557744751717767385225476388706354916272832839849591398977035539932279494902025607497423615350376733316403103744557004090552824800390984793668414340272830719142339653326144992482016505916834795553967610613332865464874023380751228982570540935224115184561602783456159968284853281691335051541977017060721323527895862842723504664563290639207873863412770329408180872630865769065675142290545183438388540765849247142725181663945971484659477623248170346916951002949986741583645475967029085750049873791352585362780394466174029665243686198477668110129028902636508419778411850993011375723221744387186492722451196681356279876899869801944120512987235270360840387034814306643673784705138453074725507819767536509792263018168841034701369267015905910736442679190064725670658692559941923595112643871441575341473577975496726308395573011599906991915851839979038328026379276669360773668169407207204407103591225926894408170139511847214679308646224389944334638710226820836554648417987259107496450223194215319978866443579442974543495016559471570384683898462675291608654647466846676293320323414850118796302452610791583516730548693104458518128434518925699325920581267534431998148162651073406521715838941321803867773720875375913929700560500570127421329667860083862718777258579469752593102786138751378302217002903532107719497715868813566343590255864360696552274886527989444378253945229172504421663468315519815381581998589768550825910483660229997216851271016404239445834246381007357023755967559133672580371951034458806408947232851739098649021144532415694170968548874333553884038620006251938910163979101357207877326317002871247140230080369165119011979077540105862956733127519037722197008625359552422913354026182091319586179087847730176795369957713833884763492705129331946910753655425197755382547717039475943500326929824331745932515072797603241908119386491922319622362560528628644051671164706758425523859919506171329264652906589351961807459249873230060508552095109122798373599931900742206068276471232610376170179236118472843306110847014207454661282452549607982187782424777444561170347801247595827839228736127008691151339672482945517026217708706096800994040731273714235946599648329284443331021545655121615572279993945769808207817412813183373105956412480603702729349815136644075661354300956211085673360790799148734876297062173917646141346011779857826788995431774399720765190232738006249168954129296651171945616854806656989497160335749187490539545475627329925036269731665360361755010092800671905655917587990607642738304312943049522188849836672065440139579995377657244981361362354318897791179216622910552585901257597160180374094852282875135105783285075534138480707504593268680971530590544345048469455906321167434523137413294504794226886683891225601951434366324563479797658962717963846278100523705347722772276251630727830096961894003002708117724456907297762082686095627691547862060754785415349610725042405537140784851292861910788367383126360248362736974017357407133093299915791913174757084773738909719621123803831608448376610784205348380620341504486575780580599756698143377129303171242500623609511392224587586549402665466027162232255679434695440454575102514560388559777443374787979556034641288908574650520599311851223752394417070835687800813226023492023304671683213872128307454808080673638196041640955258957738919074971978859858332899919941911472012938498864325302212536588657096932194681260914402717471070669897822173212294067952005095722265931815190178106974373207013107288292601159846429320464682309445392735223165867779906032528813595117122622946227701988234673470081855309548332442653350121843725065517337845086707240812498311670640708697293691378825912594859136353632314148493360436268439012878389216717104965301922144218350033850660780020408168372700387360596672828663757456584688328317810186081962214810506928085669390242164998317761105590998442821616283382114898920510542663435228855172507904425702766083837174796894908520239059590780934846998265919103833498961590102840951185794369771532307357043859756886788317927091707363029084202162302316012125102427604712998675790206399645962498804494732752712268301683055510857576189869289965396959655013183497319996646242477337997701276745402154321043950492305455609770489704058974217002369350230372177735830496771978789696643979508751847591496898422090105028075737728359357661802827545649092875289345622448248531879413261214850990416176363067551803171472560432375326596213734062233560056474969232604320312891457612528326561076634095046777200064265085036509107025274036382897608241977427063719861049939913373824469778829891071927589917508594177682520532768301596396740187065369512634816371474583719599993703112209000258310216497688285787433492557736456856409160070575907100084257218129992082941682466703004608098940229867272085797334475118217000839305078854466591614179849603427691100206504633829539494072091781286726439194380571137015533099438851052390023473869477051541324048155455009287136070849550458960564458741479082721692612843960833169348119622304421282891740135425263238972315691271137777967432790540047655931422824982130543929378932077187933533270024183848006321833888169501706371374695738448237447709197256682677140660668864827741818528158226896822007732675210547110610720786432885028479324453007857505433671269019550539501520746158471889316783031048218763928394485423046613034984116793257170787413763570699372472943760879004800552519532276897053812663696499977522328115046870883202155226291107688288571289717031902246388319701041187971951714031176563631273918487844739439410777135336764338858463275570765396732978006771186667713861630789669619289797813279851904706112409022620993963738499325222097595152627676639296034210966600322394102203502997493850048096990757548095597814522045091889562582887540649428358629617492399805635003407421909155989424812963208770651456064404415427868182363680508082237646084414423458112919089353457900179084226468839890606830492068014973336191768425195738264677372995892049381754678893661323845856880360463248350166886553160284056909870579475009558159644995669283418736217343136083902886186032918310667258451652062754606133583254353633344407340605024789713336094029969547911793748908413852835583462186289560926891591707055327128173454804092177703989425024706651441253766318124643460007752922120094953418904919097734808973913588232507978207805581467342236627656394581354366840168778413525735346856028894608273698437528534211961487352314109059015505284906822671135533069862398470757113607784126866068812925337629077418099630534057207804617775065740999804765098119513524513191596680175184512536321298177239110120345061408428574377621803168495628206667699234432854544519616798742127243243723439247569999974580936027554827341545473874396595176341853306552436248533990084286627984829087801955566688462248544150981517759934633621896120990917077254643133294309598763639288089436496106703546978941661585755120729024155193517566100790823560979346939939236710335078780434599587739422847115309164467222770991487474102964071595958222496936482104821249148154670311234909916861097574399461517037753453833492182698014746728849546664269141413646584417027573105080026227068894332126150328319383285182215072284618384801315304470182024205802328290638763953277168718966101184427112299059674512976863228652305348125858042764291023390132475435557712272370820380580728892426283674622069704386865542832772008101597677025775362434755213983494506209283204977636917602813582456081550907126421561570445425152217354294116971747921736587186946788970090897111634373413248805644087685239746081635347473724216637403941234578297630267647524270470473207890767008442237541116694299095035705107037897661223272426018690304376503081524027892965990584970569865657662712584139859182834827151481965396582172770233256018990165413467820233485529309164950476893222590801520494824901012879344516706385570947115952302872648656729188953637386698352122695776216002926161120616106795422558099988877933595288369393692717276238508102108132902938314197629179716237037610913681152712580431639440921111832459690940442210195114257063765505458795841936750423906097012998123054391254829037927910737353464452978594519245179871712302465069759880426781374100644634389526071803021398045267075961726782995351550911288372443821971646779817646394980938274037240816456430347119796342627355745600922095680951376373919286581183960668701799914465877804096869936836616462098965614171159590150692274589033561563035389087560590943133077485829971482563123367736256969225619217956261096719516421347375530090937678054054250776888218777028030503201339652254528748181189550699578092039742870724518770114367274134426156007821378936734825789256681860746444404639597759547913542135314909088039411651509645597811385436529599467623123773211595455093544424038345361497533754892192060529624226636881856436456655573067433045210484458585937027914270013378176706001344217427120178291746757901319493896538303865377835514909938433498665630628588003733795711488784157667491203409426218607163308816292401306188367111661946438578426527255916830593551585513265204436649621067275380164235169303225451542345523203905828765227745684969810001701409961545260868698321886142092418645828678239519613300418519511420783873014728768893502034231994333227921125124548859214735055251196696887088162176468735062503998973376109087475275966474109559098982342630605560924677413647367091925582950534567607832927667613177558762693976616385008539846543812122004412957899089996820174362057338237352351123737064250805344879408753563444947785124879501036513287521408908767284739378017047407239254657347269838786217769406123774800528903926975749442812241570845688317600779163244735272777867212509791881602057503278834376164501359780383650653334395697244699283665545871442007397910773821450454717499646697893741109112758302292862211766679285511474921054817771371195794965065412455884631068257499509613499752856188977212880406735152593361166368210193844222282851385933559370367704193873957051733919763369042345325302402383949197779026381444261981929963460411118746446957420669182845052625699602336457192078163440865301701279447129948436220782843868640541187276753555234130161481744833338745065287094032465632294900223050841025240896525929640844537421759731333117782272566165981984107499196372047106227323958197938565502012939535942492606087337264453469162177362090864672010640659364521406657486582094638094421414887387602045837012902951387058134165418289849336949739517050462008350530412974673234684784614812518601551660121062343883372892635761201074733136736540128232466539331951170152100692029959897924796672448401369347661223087502820159164925302945765178803897128713777912163467088449871191311624898208164800238921305586145676545196493624315546328709541009503907445541579920327500782542518103773506431616646561070606000791721453961070460187641716926467180009131131724402762005110372881406929188816795875437331939275106126766207270536093319879029764950724428802908423245182265145075019411601009503257799479646662444390695193384554445945749751412560094388666454127466492115836028788556589458053317298709070155771153888279759968156793807659791761033930657333381974337308542037255230542405461437889314980326109315954769269801115530491173707749435756607859213626393087355146098958937267326604504130996387195723117084846498729986777726749129212794910573132126289466658019374877438225981578705352588339017886437500490023694101070610135268211146010862336944796747306957247258381176647802742176098569862286249406396211540816180006275774129750051994557444208996245311256816641198419879853546814559978002819724442973833791003622224938986488472680033837217323885753937014561976676141702146635341920611612201488063653889446170067723563647186107421887141303876955967839829514657733503809413454254460851479554988039821166715270555633583043394735801449096461551474428782460061009465953793991079306154419441440011696958759810841474831586996224751686335334560599220728335049057777001789515285473193913602104119282954174938465410239292716831584318888651970680171639768709546511409005979652420955804872661154872346805181949822198282338167453179106213993322963415028818386743149645734670779956318974516141191002492997990237308302477258187796667582267094165972193839104815476103925674508732190770227462931011021782815168725865591583299019574402488726340865553924158111692493070105070526245495096195681332467781607479820420347275235360423816715018673102418810665158990197674308084209036963809662849700049294753605236813142790459808065233637669738489104374763939446527424276980032277604379406396003138136674176793326546380399568497736651641493046802109461711573119238838252491466162878247198188115846675432795372568337817176160517439351317191466131543161860801375629278980610436798759412277537675250224572244767732934105893714904796690593834137459185878176978749474033594450196583985960836968424374149729062441228748879672376707950988074088291584410273303499022127448842545710761510250440369019569611970680785099408587085308493236189549337856484020093523741897083624696325524435007713631068651476651363100371266220986706784061960912218850446522625178839531428674924839101668158234565272198121207641927021368237753985319225149759888816381866562270374204295040275925481024979286496558609947599858704897342417432561407884648829258367027405058344987483763078921969845784940187287150830661795931264064434629934519128017132299661395497992041024779196938837660249044820395937244457807425640432596776688978581687658111011405447982882805249774168830632086160185252722653002225841714154268996954013021311690821731447223675915139565274490768687776176705302823257286502512922483032492859189028439436532850880009921800087686170943087043217747846259369819735222932518065554233815933562420697026669394585967476527451255509799313015782463004740273492798221102701764407320507480296126745629297873161332454499482567645500261222333945318722321955880374678400254359066753432855190442709235526696913684730950597759555962259393479371840592945047285823772637887361100102258552507885763955927713703776552369726861105851354098838504128604854470788847814750741208537176792362796689522695386658728760848847331248026202045649746284592726952509185798527677943694837798765083390967489851304788696412699920559512817762996619715242441425181294864478967225555527082806750847864071875749916229726715807968912622761903048029664340517543034183502615062540683738077644344547000090740042987621307527582291256404752121818319415163943454799447561332013338527955437409107574070310345149153304391816425228417647947068341598490402649591641226300502153691822464708928662217442025190265579223706995698483842491325024966198125023213377498815318547564554499035665093655734295467674986171091522650032464262378458438192321486308885327703011950605264245307987082894109666286557630429480308537633810969517644023733958205041379087369940359487544539805564892706890181286968183923853571448063712977184241697004317901596631802376518686627152751089197814664599958502093182639950212136274722527780511242631201433598165928121010505442889177607730048239346125867111138749159315181897549264302163347561526944818703863732029235851011744076580999341622681039463633972220583416436887975325838488367409048138905993440347465071422872736360561332804468758678852766934264929152419283562265386569467868771584390922326254237608059995901326398686604250604489414276803189279780412518514497562670899467471045135550163359291110918649953526764213709981010512518403039307443469848433862516912576407732386365793439442486768783111246801635976723054720654953478213793829074327401865472382944566833329250820959225015469644002776298839768891674600364081008707296661013186549985579766401947164537965328987475051326644514630864013250746614801492096256214388779074187857249953629415739127086308300818033092248616421465928186617154730760996279550400413793406537044615693605639951417734679414562025750530458642751001251637535687470448765527231481772290804644605086764219302983380432931576754601676850382289893091312767714940053559557943574723555951243548330944395374544623846751090637516793535080499074826288266225013555220685854502125159717652990722620987504209652138686218214658792587731099485479430134824822998939398742818924836987030434327955002775195232793179326247644338813913049092529076774046136128202412925416250756763453532758960716741685076755905221550006376624111671066185519042012126100928578396355376358075031834714493690968973948731095145009162012909084583577602362857716478881211282038398541538601359670732605328757689203160694648102821458294784869096888710021618076577532842822024636152414654469782079668242927814251059824034048728021009814412157438444841254842303883444260816403856071428676080515262735285510532885731104306636335680514577243052380339442336323051470688705091280946187381370884001166321976441902853329135198976916844175087255376246761266867989158594124861665735028519140789811927587634895201773778571455834098726747263973693827271448905445161224612924445779525300951411390565956125141607865199926840121061080905673707537401303714252553610961826259773273606921599463678503216306216186864314356664570964340824854798770372574733010120239951505793366194170178872788054788538129770322636005967457928504978457554508456134904392214198079196700499718373595195811124891530826387738584357042987970233940719477102621160066575850519056736940049962770186082226349440246625746223890531882770006082928255300583114462700694639528045916874402741526645767019917139154910075112386687608500227278338431406951198376222509373265678918118587047732570218615739142305599862475182002081018688476970091171253712950243855394836201328252693368481113766027572419142355450996748750732692014068938776830606876580426087034953163620299615680670991339580390275945670674854872029131151720405631227488685987380059865339767212548495698637028996785990207867558320588497326159509011847161092149348045929239130825878673708503404240131672891078550471144365857726237100523616842298405579870841364619156033419406160530991147006235930994600973653048339620677139380394362739406503577820807139006977837674849430051052108352530550016973364741923202620874729773087573077195120369437712193137760881756525008833486637436947758922727119114058535562857743510691576573124849916381449502735749684689327894470385846977675581550266825797615045701166269685179535818054092135254713078992145332437155092758527371164055365975448505457048666500527194622592364216589085458303066909062646188253308265266435268818170132372304438837611713603142998303536775228899548733177122101339692490857084682844691996814397932065373836151445721896975087221888396373886439338121989273483812139990694913687094797457946265106362857415874402322938180189190074363864325537871908490351599160465981926199664529991900118085210951563359308323457700965365514657280051680994974333605388587311574494560301564189301917050775252807247205966054064638268994578999718789710264882765078087427014945063498467475583628733675662020636089553799443325876502399134407111875075531143602968181464509911250145637272518953276881510216616308249501970352757743628222972164684327738075328185288808787367345839886808728341681081946085643456223255485129760877261287035577137101554833481383851224487799249820937790151674385654320794491427879105207931491887425548011264094328665092962188286564316642346576493081339575822543415202520197741239104946923722440158540623964412964190898833471660821905482148100236775352634039468460102131390626376300179255360853757641702645996443430774065926437565753100940774486962873593582297198163111290473607195336005586772859905378742339257628622434601785057870032368507264496726396992407824034265466087996803447550127795507966841040549564414476663683690650495372976048445059939722775130020612432837574076786506325762960039977727022796445835717107925203282786858277667392512017943953201724881920599409240440621225947109519605673178296768328746875587327264520994202293731931559113341283349845872697978136394424610508542738314288512918499900269170020718616783653198498690657680634261680769336477417780861379744496294154036199555154505446700370692955196068709714813186737297323453039029319463185891768497054271372769593657915770843809991865861330279225790819975959847998305140492902628417551323379223536065729918353960616631367605587679713291676854702633786344231288420634323349548022258270355945073916606727839088841448045023017693373179493204605336384820624701082312177332169012544320735979228666574655326935464594496446342444467220115922695507179501517586356652244291033147237973118030273336370297448680193955208677863980566565747743133305876454078272379394897727018925851027036918378999588536264558058265942345333827358394037884950273218361624711582378587610531851006782015262253088402009240304363988413621371260551395029480902723824507979997455422347721267536166426199767027674435768373008464479673818065357385159712553743111235898149103025367537276758513453906447683651136137069170511981404468077987772884186265019966720576024153713834613175042007078336653270953623519031338747093505194654603819106615233353805816205707045494962165278394610789414327423403083250117036466040851804233862621916135583104036765470536458600502264120963363112624340385318973362148789733728666242867920380462086520928437893958273151196350097983142790787028705337835362453960829247370102173468808694028331749383423045109843932802787601972249106333762208346373990092685226277395756857116697731498139741904679369551538767439295380828036364985849027444095127884731586174792533065375694478931491999644851969019185627788728755099516200061405892851930886226992722081673761636584007726862278753076420008740439054010881617751616457227075810124136186665365766393509103973989371550322092541480559456079166217081257998892384057055952484340122925637132818990596996036295921043723349335260724035310884791583039568675766456614624794596792492097027093261816815763814697305076436926802117817544542734257836423049975261181033461773289917317429385110568031203867851769576349298825755948209517655744569327235455358878810333819670927151868723226723651816612883450068616737567612122742818510850614458405347496778177269687619753145925862474119770020266539842803254102577065142310682826846627137158982878505919421906901308609590442442813576679883351210840264086683080160584405567983933367066867440345912776860008245738044401170329727968970799851363924139445942271537922670751225252874953385955860717773954988281673633217920750168658787700656324776655842960268375627672940946424911133454509461560131073770454595261676853758374307920107342857587978088538927238022689141062813227211681556097082377636267421645590773505502190233647417318966304148055132547704680952539799502446462451393577626433818778783992244182775535014505449497111042537291095868237710137650209618635943393685570126863552475793978489086935462010434578544732877234015823267459737517927446990446834526231202616846591066500444884814941196705654126445072031710133677929933294301743877035406561480160188016512183303917898800755958830541958537890251677512480422841887124441043266624868439227623296770145302957984107889804408390343811849405521419344103097215252400841915849023889596761469022878319863910932807868264548996453716448171662259262049047811731091062971799391365681716771670835964549372625980555568987733950693207755784622388998922908507422459900257185430749630728169356363042793712941750739755327516981064988090054861057601451111436333702304626065971737130985946313923993005888896546343158276292364523858442175189923106839485533028898298460655943515325446105033962411292097727827142171927838607867061298167975693258446241894790673308751113419414716312147752336340575471580906521562295878646018326842584583949051207835388325872979646474857413262554118204907984649700519590919206810491483256882081824266280875420108720297099766042880844332127465260954596078994239284011116254375483988237397761590522629038028173246579760574498234161044886180098825546985639043856635586340655436263923303317095769801124760336067217427580593732972948719157494952337291440830980963724424286992983526447403839524149108915911210969680472847157355595112951391251861596718894082492360196632358692186869028330393686625534467799774966291261559832158730617325883070371142229278719723169126713725046031424245642057903525921702669377764637721274361615100677028415619522625133682184566557579581014042086285327242375830603591179546393169303562645140822623439046118653182440372466605361851612114575622339877892318666722953909437873666372265972967016804680153371376762388719957857834656051216709444795463491989566486614234545230547519814812471289104478479008152882917931802225625085277543172946003649905854869541553623137513866810756975779004508952549666396225193548826180817277090433902363724424471963358731084396127519389382059866157939395519043471817053791969075844446684798894751224769771222193019232917031716558104622016012881004474946846578941940948511137816918745044774182464934408121631935832443160422956287559722859641361476932925738028694099485011383339121485714579338767310054034592744731273580700018261847437765296719287766547836074351243625928687663621316891706482218450937485824863136794655314892463154955377753187743900144412766204876159640885468233217396144079799080738271791304713566449673325572680852455110303917515271529557326780014304275027114682753577347382602079096978194264100202212675736951326191198580933754583032971656949319799962592506127626049721409074443381374236691756556798479091533157529155861322262873425034216802015767311793559710076690556956314796021767866412921083937897551870275968182361217792853176183227119495847208490327784079015401420644354607736615491808262315959340155641651726839036774190473717305385192515416997290267959681569730156647211304318635213039171813245314564509716665452808013442805405757663109306077824949153873088801382026916648828036258865853959548223412725074376876392698681156272141046704069840080045616193032880684508889821082952168853145599993903912033095867496605893897855101669335554590225615411412060606135205755129908958333114823530902876765243537185334824316404504608000404744434676944956981948449725949186621051444530378517384157227644671246435829996101289282383525073792852898171632678025879433847259408866596508658163671253862387616774917742161153328242759075955287903681020018429322754192089473290855882322831322161107427433519695270812503612527762843113760230096583021962446901808957438848978736501633897515892303153090728751489130863780953580492918364815533809063889873390783801802727304538908468597132316532814431939493039746847898717217190887714766411458784293397631615242691861882420359199480810764474145020912474972653583115948919978825011970069149647209226136827263097859971619442120252038428628296983301934307962969721083121352640896863787026228139410213570726446175648911981495661422288960730418566329938182016040994326688740980378931089289982766364897574553102400698300850657414176180299913889778794897610936960110936724870859439924935490093161586798379963043376019160200536916294216117787967070114229103890000970651888295724953724957287405917589312741133833894500245572717491062788612061795874034063598320174884902181977151210868722698500314889724559986863941261153062311557818648353733728408690549512152307716457504315259938573673288514413595014060942091097749569390800936225217228013904246853878072299574248537559795156057551349873760081726564079032983893160883285140475324292214763936076542977463365611504270085624000143322607281139180639623660319862370537230736091042091663832673159948786551801136982590470337298058835098705960239085702527936397955108406352766136321157181358085136435698238327024497898084795537172998786490333704050497625882090529664966130836140888279599959024860711376505961231759309184089647305963476867970590038325861467595239900826213300543558452133127667291779128742170357516020698915164723199464579156072871765300298776961210498159212478506415479013774532125695544300196465498493000386439480263779144653394672516600741535234860507256344250873782303072723925431849909123053062763132778255986854208212948511839336354867769288953000768574026537432488577778490645700178194414005585204929715707081130139994959048251010382302173776810297764891341104253871734147655736114639468135381944357422511442033215323884731742147755363482972365011281854846308926224402432560199988863736680040084090600584292417828962619266733875605613133765362690088020623794265207572862070053399698040906053374226981483153264150770014980287016432841817655671508616245985653160774388091813295680936655868376286367707552811514955067307140565041036886062710602796166737419979281451569745478847826622535220557870361768941342094004797478552748913200987916582071339169585588640887068529533452088419144645025265383345419539095517477996914426307569083742705995607673939056846737615006212928401866221126912671060961918504620341553436448027301677599016616957933227799313162899840245036890448003963933789427671144349840032178279756146556481304807667404164327057270143207597855347108889390621599847929378256838056325140487784703983346822982068446565722068753097264445769306580509350095480180981382151108248081023413797489772728764040318304627665196933442657714911996583033748739660999739990624527255712349881844689258376440976674878433792591297752774622292976983714265560270158814100200920398067435128594665982461878837522669120607491818530471212465469673710993281139274144573115291776274130298657557404084610429540254167037963689443470721228263896713989279650675513858615407276252097849440423656172929241411311222318512721722083475131395438827974778810238068359610799713197898893379174092425578513691116627637442512392942903786643045311258172753981938615898826069155544155628919196843541239452967718903305877568526274026635826403001080554181332623164548507449675254565722285672845812077392260668238294339296115568888939657917443822068689014829211116497654785518368603734138604408422193369955887181615779636615809727808763993981301691241125374568020650695150475474037122182093584411490839194596793264339210324742652419258249928998213154074012889281177897894404198567449305748235038111549698235106866036709236615347380986438736680241226803648360826544321795311978733926806960472318216837095154546781788074554304610019609058909380578897074962620053972879864811636506365975965424709896419413208315440560173030308224703214871711355245671163043892626426776063328461723381575541173498930411342559001520116612468232117262777487922579545392250457080063558035807471835372055650991155267195972377089360129520029171189287584927834076637815581669612330086148827759732188975072271772399236790410147297575939836802685020804069270113602959648070512856244495870249187562088038974809741581433587243654409068180001394330334981818714385335678437355522965244539949560403782447992364529120093958653250133140338184969649853704068130625236150257031516888136032815506665367554920857862162808989606995116102116860313582340772886338336611133124286293498782598568657979382267913146608607328267718137198939378623696638915000526941472300705075183037698042382927033093232634861679872605682835771800430243420104318908847646775808725777080771758730841016735023929048554980618515000636628917002198653257711681692482474249536542196597182508678822313919559572060678647333364976449171849705239266486527281167906837931195834122377172433745887500952284197801916624899687692841925745344952266587633767105681010871086513081158218058868163584396255548802207110868783687340265810298681263588242512641561276821627581632363359419698859985109223516263887226880269416715725227185637913123091353367632808034493018327211159906076983521953006051905802772796884226480535435139814278114157814711713601853978588593543584867224615559181913274193860732909630804790848068439126358069928573820035757430707673165629163774696289866877468370367950155986176278132374007050129718856154040134994780650005705412561024622706555893876812686662945735855075022380464751262096586946689063142295095872089632173066074652109083461289516974898169209697660041137445008185761800974806772038476274098998265598759352994820470641531500572372225687429599209989618300217224011075145675483634587088236208955269056447350897336542709945826319370162780536215854432471145423162704398775566649120452432638189032598575487812593320104298674635928337547207244319012744067740170460557358111624282060296693026982064273752505553885421286246823781837733862900120656488063057289401548855970951407322408508238503086069039807323741772839232099319042151443646440057890595814971208267949303092098630943294947728039217526921611889448834705111855527027942164608089945646634872308753321056055698634559418762932457978067413205876719730439921075194177129153785619488609563743545057252296869985478036349904601317223071715942142843416993347415352842323631068367525478597608138205765409147070301888652189428867109930854940233687624813036252795439948669375746114699614754087749849986627895910550559506164808222058991592054541540686607705091884776376853517644791363777850458439214813521853650111525870162747555356283711814072500243733209755497708277235233138624951719861547199145407574318955690010703526094477009919337211626031267712788365612220472935955459263151648815991613906177253331939582498375052575211130824495811522195708535465622976967564855102441391966351050249845879050438644625381603898055843828727888186693667929706873215540645663791004693417106747643442823692785485918905568007875301173299157881092207554990810058888512677821649564030852042543314584572756348340658217789051915395995104919109883797052569102516281355767548902006515678731737988959275780722161851985961072803192590568327240145844954596144860977370794564290106270696710818445606471493820926089793570765833451507265210171084571120640854602470845319674006702412409028570713716917161764163196066886514689153192368072224845397927186011470290100591354010576192918692501607182191988024319770933079312468934994658887994440319733671667732239023953006777172995187142561099845371414400826056966718296816112734844680644153362991723859065503304486706362986789208125959200437583111660871926656910680464074356548023333075365536064064601598214831823735696596603165443561991057612430555506570784852808529278016374813965170313453599576435465409041811604958157386781403593503363805828374153603348407321823577755259160479425037656885116203269894268343215865302233433158247893268689096184850333855916293300272237890857735817432896278007234155650509955294845057199701858909030921860305655649279965668207673459415617755389984903688352453696658810794460013017817310117591968534352299581099199147609203335084912336153155947381293235448736021682598829934511503560060728499284054997100612102556705781226036496806891990442196983591695785147331382755048731947408082602916564158668684374429953430390300485949928930517799123212187441812491924247309833961653429120446754946729010111080923309082834608053641073596488799984213514509433971402279658267355811941785464766093989822299444951297013687807912973580335335787366768488373591116085381287178186620920276403310525876539624141937018607674483903378955213571583136841517566441525395651375128450060018471710725588507846047450928791253122272859614131897534024135939549857728753434235944417366825169226282318384491026838275020032783530096253016409503200302605765440406451655254537661490596011721653273373611318402861437566873373890098156627812477508223961575034945345398240176686745653303271935810382335559225048773946581176152933541150717821908921818801398100635890300017667948923703493849814010678095340833763967542917449302047332908494647115813301927567977177677463700352755547153490872442185967704684373796781920351076863952967704147658921766191959374642890842448962686134647775087521644593516765576765528538922208926174782576146692050277369623788935051840987659135475941153967013078945825825427952728824639802152067923247995891845217213680900764692286848481069797093351657938427361261115399032478688679140359345744266648469078072803874525838383156499695384174933828942146606299752532074755414844943066012119952043311207348432937061786251961984525255691712692905156971613267387337027804348383867715218292026808852489554285707372015464346605575449713074842772426579122840579871577762239498245921423634268554815360877628604413087230258367677938733270934149629428188425927024410548723962450120525223665234356461949922693954462510511161129582062976474281346581732407296356584731012818734775057916446670553937911703505823235542267327444477645635619488251509225272840428393597634711150730632898759304711305067002127031443596823484080071689442917619049082314416641351422998273186013493471156810856816810558844536688313373303571244753331252508951099713487138036114174217731486172881496477355257200608380208504020253830807180227148403410766148592280227703947625418463888551492594073872775252246228209826059293859223605425706455554484506879984650206568254964192721473467763945314536568863738949012282420052152685323470777113390260288527174278685164308769368193765314355214079079233938928988113956084654853327598286282974745066428919931259388086755953535874440559811495341225166113348951668370751274366135250865418807218630088255920421803202742139491748778018416712708505327992559977299415253121899655824246231249192303540008129996803447780630304674711468962368212696151359426410640072041781810975937966157345591234517183971023196329794203252169001985884933211837723116364042993115118114463872284799967916628755598599744917151518486772614866101155022435799825231022137816837377879461929388822414927295413543960790557704704376839854785695745409699045649969149412011977936907350922989516662594910852432898046341525584840529944696844967975074195944132368304907266367085390713960581054831354056347001006576242190960329754767757060790049596292735811525681194408987525099446371357400703554948397410650546018605965689988135032127351915522172610780036010288804064759076604121501752753884248533367566644768629719211258882150539278617697711798346932703964637264375905062481860681194564551349251277719359663372802655118830729467928426630233667586337885775927596396893104959281070625905404371522076400067263004769587565971030807017141727224179476142187028466115630513527113948968832770106398134347842312121571480080669292635728502091059462244238173179732581018675734157281605716814179929893817363303445166310335331741312152860507209449544634771317492376367472994926709676085121107273856651327012108990677812869915945890197670119114459960790839506140592598754168266674029786436177319615626899158538150835030597966674017351011045037335737465772453155087813243999574575981390573624785098612329752898415536818931508226293598856367750987993332195708099352136090763539598536004032966878097260269518378270928723689684971942272889714431876574614007794915220759907098235275662675778116031060186756651829177587245327491604525835503600129929744855253698485769009293594834257226663308541389274398374526423920652855345260467269480451729102761302666830607196050147314346314102380060523171045599182029951286017381280207293355250125418078142745865975755810410896153172592290805724899829152992257591967268618329005071634057513958978704357474259571066962342643636187579120883317023575582805301644248336537065124134621301239971933875752107105155251501651147186805913159832711069815459474814313936756187657564317217392865092228602103114134964181260621958450460968093043282088145496810439056742692283987251645864989207544698445543414465494581280642925343534776073397846602392158065753779452052712958944979109892181588023073047987702590708907060578196311659344693156873006495975941745207554483408586603895276450127390052433537473322642449699389621296076482739776372635712304513086970811179822378862523345075679515144085751711615285885835329050843852221620722625094745890012943248254249665397655700188296384923853159899169952407355174922910002180908368282121291619734277169151044088133265766672086259156643449683314691630383386732730132426729482879520508111312250298851397065728327743044951920443871475077336183084889718270194424332909511720174651774889880482198732051749548794311231648502377217111444182695387167298296152137313068916015627453647857269518446653027548339192098572280082978571486393598438758540120843296411147787647926640727648687428773055945759506343742573167441359698735238158755526043924121683052318682822668498446836147295000793937176866048507703006509304884399596614359598458042414222257209751026067900208488769518162777586018533655897010149338720903686458946912913640179952587515959693231889629566345363116077093752921965399184917291295828219051218370093635912119542747061083424555566610795728408640655839520341146572647829650794498525604989711352005173073286140673039574219403392443365634837543385335735379304681893211844732334036366769117019958042977627962116601595630169198875636154796487283654117532920030624125241549506590559868708064595460058233652445438326088779698477796323327002114694357630914373284397233067102700306350327510949665811532356766532634499967988381212815289861970461973175549225872171467471929655223993041802152161777523272081509699670753239657209274638268154824268121654568126730004951791582387840017719757952924710390396585143852077768462607616877530318546128385543287882217814291664027454365735567348657585676822328060957825842785146526130336259802922690708141058793214760990277126493834267466273038988481341774942637609724218949038149902615834123813748194070859844024295171979601600404255904962579756032207897729565170608174294005427346853727430399386713190845079886790560211051844808086429643187016246092532868887190605289835114678008560709556076104990414664809626750282634628732506201420147351399714239757648963799026367752164912010781099758381396926948275426262599803763222234230754283436495512936041566440914211816477441761495898742366745264732371820139140563862206374702508365630462376661630975291378396365434345677606780650554530840629232672436098181515842286327338912954960473439509445565416113507632101134552622594991506810463253632528218008374442080665808876068198362312859198966206552571824956667570792193829065206138696170665664158397012821387015338959166156662277067231902810412587072691415352143724135373637899002721439689719060322252863941194637512608337699423156838755554950254153918710911728842213342596296647392310643510247519900917003726098509664980523890356842388769047889246633506428899045323245063585604898919717946790062656072126393613153574339076983708774361763952949682962818113675090509475748021021633102910391698858004864839565118622384723982993866012523405642349226119491536837359558507602932501147275783685901307211590715484550852130046161188447996607884453114889318933502394058233453688261543102870498917466204170683476808825412299283648351650843188734265871797832490570651943650887850482958202707768765569567436337040414909161816496451008680053492132013686275703231927201623452201311559927481775520769552812260969455234465232537318357687962848743552289112022719087884943847861777231013103058351025383919232280690253862538261474514677112168539144969705788805599411551221554634237589748163789423948150158191346256944013049447608737168506203723899902556498393377565864414818337617775143137009006293219289738731324462098420326290521978756472105325207750111297758722865045996014075790267656467441745915213750183436747825814077685742956520610247342955607625313471402455078998032664544038587147372283075650936999385452250101871741307280541188164194576143404423018724503035421977406489793827419670588935446583260474242543578205940080901536204010275833819846438140652562301812283347105250035513711212673969529207428853643477794115491639357002214033239092417130918503536121361439925893677390455169375927048026728955034826064865785250994525189773537256193555662492853414436315790960916193598935274028782210477983905582040261584114692248818427804480619002827346694059507955923530361362240297847868219767093432533850838502352011425921452762318103429591455555178366996706406692668417279741656630923166539450531708103216369241720586281383865493222033730531713160540132826829861840874703800170537785888118809901533277227401809632636962478012890810199356893969784335256618632033691201240896705464754610210730907891680426006241610697087604838503188665026773580872652205426708021127107674343416190218067596679822240862053674570273957673504204633425457603588801889754763971605958653969958043361477605574386118831333617620515633061626021092031870390428868614619140539843629856407321893113541556519233099365624544627743677285298953630446145528718611135351505036949835461573287623177041838279769862201039646426777101073721054439283446327937510958446493156392596503205926899602784904801679552208986722254968658103319015767473010755121218124095048327553043364253767371014214023783061410854372063924558021237901210716573266622777244202604376031812067726162002095363946208997254149582828003449710581357170525169539941531124198820763266184044804875659010243841254741412691909603645283987016480629112102749623036682961037593580881428927389501084180936072193389007834904417394095112325786405322562597574381643269002624573846543029918536456427806851596952775801403162027160444934914701217363500084258631331569939291969424885725989974980677306922612864674304236244632631910162375206621555446339609160816071105892978815633046114882640962400307699407318060859126317387676428812880941096567025028436976488587891227231381699538209048010618513782418068508731330760618647697413891221450926538777311597847981365807734475390573584027636804355204981733756307637116532952640647366596110724917996927467185453833944856978093600426383462389201836894550980719969126906529318770142688056585782145358312456853716521613169102086375038995969642376021972111900993833787881495829167552705034412662727868415675029063302239193242506461655023641461557055167922259652889820556919429454717046884666704502854529881542916156831549698710304684281431242528326503613787764422574198572514979170266514484249656618014170185139083302560507908583682697290634295171663526209856658261703427615225101347403316571197713680738066077298814572419198115849695934794147487118903412794342962209449527022772247823725415970767841239474280372656597387030959560723205949755761444896637305276765723048553269095075799586378259617554407587776433378577425290888845391496516123121076894590133437327537645371539890117516364540215447264619727935672966480492678388304054963301944134068693238535813465447669047754156060813908346857851214238733884871742607708194603714798621740889525310318941215445231459668492188885625365132700187527028696022327569631492075389561973000834321548003951848803399167050663384097300671311273181089158637924773393338523405054836728040179668284738638677794818076945344268697364639609139133049154486561376440153523589696288454522797809835318977546545288156533156411588593526067442092850771327736924147722744365172968355239715198410799295273339686386993852720338376892695733023503425495840199428828256042879744641281462371984027609675871300906210646181274227769429775870521851525444653181898035719581459754933932812818240461780071051546064851287208456056226709803061113072197938535025231199941898460712341554018694934373828986355608244392900837557028685754916672655993241672654386637519526023084763408808826681542516871266477334376644875465128665780696463288351935447988244688477752334895139911107677365319921267337355611914048516674555623553433075977541013192047673944561169916506870427577221744684744972195876070499707841121041827410287386883884759976964276979658179762140253754073972333723060404822614446145365434323836197995661434011678115031741541681367338545276249429667559622526339458270877042844353611187527224538121901581452542654553077268390913489429946716434966069666198631042499104792221026790773964863280347949135980236874564542159490182952043922377202821578523592292864670708600260762218947153991313476306340144950720060761080708675560251701893178458844970991607897800582598130156840595601796373336631397776135223059642749893582694868979569679646940492287524375009755836010898635435558604220085414549792363159747100612286610909407885762784108542532062562470506017035929509375200244511236450186117112929107207405629985831525093285452870944030187300987196998570821456213703213188968103331662785679030951990739052948248671709378333150229541935837702237127243328041195757501041977075007492494717643319780370537286205694399651849390806346528656198212722287960197294631285821357650637159824219724666243229390732773906369170008681176333506556636416735255899787468440666344447971073358941067814132791550074920184917119114075256060881881112333353058006556989699860837707037923288246772905171138488849583793968229464029717698667424910011411963573675839909733711319022523055055238827097443777620812579549853488620001810230569084000155522274048821272607477633050292994435958410271506195289367220662330741849970854285534066344509886880822730328972226447218771675241984087930802102487114973399014111164503998089058051801381031771574307852199741017103623696872111150132093880405803105669676013377408147599790392402943349453228856989543732497187481653559072066571950518987658523361216618089678244139807690497908733282971041082438491885819683065559225696240742479180710320760414430493431616970242819153774469605613163603894676455888268698468451248328405504676771339441743242844619945257404127664792820642334045142336006304366430156514271721162910141041942429949319867352110758506271112103196815317187935922130073644760538676110759925402187300393985953549351084619340985468601426775416356207130337550068405796206536218766683927923848275404587478778054751691215552694433162721096257816018305309558177045646153629799054726402798455872186086097070063530574116223130464509707983791493128233735558269678542011423802902642116860027859418438131811253257447527594789008442261247909838112611436039742975423090106759404258574176229398241140452045903128744947355700525848700457461807397256609403120053416996029344823261237540157716998480665158688120838921938232405774447077724505697267219657371861518265858131527074151444552228594738201639704097211168817525179186698451346130084307483888694905549183116214015294576602051485439304055081448243218152964961642933951406194026840783746348770910525315351667057391710952641997321063239482916480665642362625881020072542638242772491320276089031162030086468254865949666709868593352702499219036675232488106371124222659687966310434879109915311507314018727379343051640529517594658558531301755389774368445981959195313223318257731558581663121994706935692711920733087327824132177873790428376598530517082012375022091088051175032602741498980006586123730431602535643484287529966942775511235930291093274813738372097839398465756200066276452398114919014831798683021184972068382349633352342045044666010347697272001491910544033714008835204530487121272269482039619034184535870382834620260424402300987924168864024549903613287211095523147707065258822843037217846800965301000353344960744798938744644692579775974299303797651486671477943198964463288767243622522465542722708415457541686026247703808643023183664303582118535587926489281150532510602660806379823672529364809984784386977605738136835710710974919807205825184528415143418142550222873992015155512441021904059301915428786770099400007454144130029625587896025845054367256844415578275749564012687491372951610334400538950542654103609707749907228649464963474056575389111874258598493250475103531566839180210976654968295110102701686476814381207109224410556610745581089045660280545478404637094215453673308177199961823662666467270380060093952156582090330482477348375220471655439075194739510859185102107657488881783347877439411791864901085095258694492669195599862932572050958072188109421662852138463305115395172671137057720068615628209374356897609735789099287245743368969246914839135603021717683784535585844645020018806820061351195003967960043666506914107964802762333952309255231899604018225687620504657094431989868280365888934664061702596112470378827447990575754399832659115006632569531894300281258934751508166106203436466912958962406402544020995600974478828576320231546397207530894125526661121851037671279427744526242132654414391048446400759547751563472424218127421498736844811741278084275147264606727252565918351589155797085405058477207364835355695038537942297738844657830347650766141323171182336939208959780886572476834193241361814700541896363627285065545736209339281795043198792377791326098332715842204969879205380701136784063000152447624612272111013603513442037317649283588873343583666714437147134194843327262520542419843971163397455346082375536853132595951563726327281913237153970682426107673153966213507852965755864477612118726140305479455177708736702763938927248356165520621412321391311893785589310594254411281690651091171269225619864361812904282627690622213366765559251534569966322901857626935713248768092983005517342140504751367421435049286541590954010314733458588562488607833959521072599710896178244892530780934662446022800348890776334170206605891576249726244433142270315519660389458272240038028347126924834340457848498876900338551751923353727403783135992225242348577803654185781800454855334948876254485884207660032536773919145860847284112333810580808921635213352125642498477758109965088105305022649015596405828023585387848144263404966122852056701903317478584434393136743308927829016563479860770161295288134854038840432620821154543534837313206776091867560033534545230868376282671540933266869156437542353092757159336932797572246239388721650147336357687786999175613886135376516582956947364823221602048928017894942527331490949455996916600296095952857758935381896625482221277348025792984774648218048175698543319456649541401548309872203671160487523799200381957769086417417831441269997882123775128033627959649304845657251376704075716877217671033602496651635255855765455507143557758996083155887033034571222318820908949098465617024008892554786142086899253583228527822762613017496661611133480684536333667283435564640477881502321889604852311720075529291124729489238281975273892254694369790372464492726124528731084964866343727751898006235222306881164717662123209806157725246897834895095620429676215790496613445636104973542402360920507883821300814539286947191663419611785284448179149686191967165567712417527854467158826502909432847398736410833903537274987782942106183351901688010958729895194298243040208264624968774726746278848128512364937467036741082472050356509351997324519787280992200941440432551865297196626843681855927588608169828269752619753773864687941825257229530338730287945517155219136301493587929968465236844158287643179460317395245800811962905958692620860112791568261888292410680181328047539799247650001182173901532428717878607745817794519280568829669992717539291256952364260900997847910943993360623745575438296767084173089223308488730841614812240910048651536381942154872621393835058647857877555098515406168798886920951998327228834548136459425916590108011830840473708615463732189539648657597105166808866131237442826127063879107902957366260573639321532868818452390726787183545390975166286246485465254692918314185424374731618069254028209525521066847602729267819759548143435289826339822752213331255494412860041950687893135986685876324017604083232770201732566803457945955863533157122011074752982636201088185415771582952666231423363926464022707332421337249219946168041106851641621774073268758051336535400763719377278161296252377584375214782449628021817449095048860378554925367316894527796852421404612311316108514103419536540596543046968254122799393947468972794644251414864005079205620534112366508921232506790048657574417435793544144405680726047572008518952363627914231413669673077675619579523349412768548249160477088532159188387909614686465798920747737614564046184034393639800979178573872123528052638648872364803951293139993277059822506659499432316678781864261453241872822367312248208698160721630933397455630252077929935284024558319430307300211374027920261353279298918079125123638310265502675178917770292995993310154750956320704010054400057687987617742381854418072514072518346610736265619289317078722014647554501813241423104608448110664362714845629468430822715592070380646494901913204152000032887957063464140363758936835588427785572297585345937784628405862544762339219863697116461418404516525008270616434820536614626204281354865815227261410382826723129753880848187117028319236894934507539454307113133999432475312017239959374364401673241120812939803944074346562458799572508452142041307249440762932953567701415768792042377398562835241736228209415860454573191535909275021704649836191999371632594171196618500624146557268236716718782855142317807476773027201357482110476847837459234072535612686191854866003567895266341484931717735717577024324261994749801765831796642882128523979201297815963287126333908876481472312962684108684186159584487711383937907350120174919957159266111432211455605135447887258579258225420750584020620050795310387777621990940794271980569345551306619827490220140473372998943193188940877463439525841999367600011515943964999006879904927507819237272549004536205879378576621910851717312629486535724365717304782386932603851872793668633710120317046305842558817938280158373870503268245396911437128161288903929137549048676553727605897521062238204425525127166780980710732154253909290215174345812077901890792280537297645872371653221797713579977785634627294121436255497864783457018957444513564413115447342212020960779602725329858285792803254508962618179987265716079944811699184641386167910131286322278387343815721577219133144225866831454615201159854254732324260305841715018311907118262266509696974243539549991620097201117287949130619029695754510627063436203072751424451237991059910173489746634448306514928179110566994945736562076991876658090492286377783394164293656287132920702217555712830005716471640637061342374989931250594456342833309517470933724697708470819606765285679217798336512127292763630797386072903307553441318225104170166009168375698045098589603643099818444895753182714366869440799712696356111370134767892136064510385141409795365903059644382707336267215326672719067100075883706800934394626654056061503141470573778499989460848814967101704748713878854842247561260862427870002870473821795816216743624411723015439399906403219646173107945993164360926595912404427104648055259179415976260971029708055289449321614270130702521410593100365204065357577238968349157020206697040811910456365711544368184722157980443549468844534245567868351550764264352881708119871919805435588599013454754561115594377343663191788212300635595631862851840006959192945789831487756443510343576242463711585917088710001338979622187815175685811536816201202389301006041618669196901166938865170834917835460173044330228907831912033326144384250024368920460992029528028045876991855399197456685076092738601971383245366778281749444024051486747728383694626318496551798645746261640306984133802834621820515144327844007138076478397734919762266300350539276907420829267486524912106781383813878680512400636529028523105036858967821960049341039899903954654402975302258504158343732106994834756040093624681887279539457750467269656903013016371747281404321099661050157126575255061656556816362296491710777384972549452939307630709988623210781348783114685557956650132608603418283453763965894712127331679628831701112354822218473918675050019165119091185458406217917715101084940306320341870145988266463311984621216559725759343265250202830814838292711247831993057638166967008844556807130770041601057791625870853559543238173055558595031516618571333900252114932141036393719098071671125465837666800723807446622023928605124818809699187682438772655247207832133950120482466122118373453041138099243386489476890471040339473491152338269011025906371128898483562590802886176275495125023898754008214496930918489166068754629491496725514311476617364160438286742957254405060551052206773271515690134357998939955833046420376222819448403721012730504106513373245861260215969975041157917085657490349256225109312846113805354835331295731773300627537912262025348841999059707229588276942769997691809813053212055928685475734071896345217754082648525667445260278768270278099178297495847303691184193330730881067323790537492866511356223213134948069676905830812619637669709521264158858384186092299459369215219956061307258030420592395945082402501940799005516648816585957281646682774988914844027836153267749402286289182021637881316059468446191611825281714723234880705435942576488690170834021504570623981028826407811574879302237108646279188740094245168255004137722477950999930932518076847480424637950482190741683617049527445295808140370845316474226701547926454192694483359845665278266201692217232735945555520944013325213525479376721593649371028208538491820247944062506005267101841801974715515755270647875850896919562849531092941508536581474722046438485602702954656892884252566971359294913844461938534722904686951052019191520628835279822820023823645015771507372198526497987732491697982547177483701173689825408934417452149305423144772364514467098518935128348392714970022988786699703525887994275233963401907392565979384400366314829903713095121523118156786940837806639689126130715498031621046101361556114157651852971874983208776450373434433939025720893111185969437703349470801609802294526070217361255980385834547441887467761996719360480852695038646505904406155430966442890642182202282620552994565455916615724103587101613769876937082557461735057540884495796883416795758791039899505222324650639516302396647776219705750747885670418033090837760394834836652551894183056149551306388562776863280083081106400169975109822797714908927120707596160204402433118777636699921306083313634456714694209725515664281814469947613718012788748617414071393996859853644133860766073025687941183946616678601440161564053891803731401745131183955155668945075109413041547940378571610249011389280685266757599530495998975466047490292450410262275216894730081876689458117741489518361199346054530880473699208934509033132517285892631245772127596426376718361879252059992201787032212897869451284005733213500435566871900478274177172478448952644589193043558565052178106858615505745988770681652852751280830962911430441452356114198057743085514325108993526469002025938033850276616736464302326322501774344988322301430589084152004914888392725405680192360894516271487862969374636652459528472735444800216344782843400449388044158424868971454937672085596386697479320359082522183468354313769519737264292802457258040062539562988801855004842502903710297978614072053462001419786306035852115598785604720453717337605594812510552421503174118433633028253408013670248303877149971377229512158932204677996585050727561360692893122177465723991054865834867070413655937875503827738649638687242963266071477625453250770534649310020274538398091861536804498181064775925543406989828739067145088449717911247035703485250579936258519423704639824404022432600318128428022695136666174597341030092907638780735334488165977529597247823955783266591220852687749376465389039664295719896405623482651509817374020502105982348497547866995761976850980595396436710308819741557539391190661512548414130134335529234241604354048898126094969233443924752417069347831906823485017677964198907535456171486339440700588513882230232435382455744240854248618304016492790911171404292566701571238745925444964522510179011256130360359702373088453639123077738419063164156879283463472544140257411471287435554139684522553555872650255358520599330025395311700610999491945450059799463881766190957081653663783701291184677691248094732198040232783915580901451944724648405222247269459850418136800104037519296402345261088651794387718022384290671295365548804631536290400773507383724529591101323848788614268130154646613615439008836573821823239476152617726823400348623766555665767578896248459707241422545879573839998449072590997452988038739588224408939154248786197633612943908141053351048278686022825357060723168498338234922662088988504083408682264368242415155109224262012906446912885534215100195810396894372829627044884757122415997663885052973324373818507281029911638692388926488855611826197081197551244467467598361565513030741919385918081943870394003079523008804266196563795326230156423537915296584712114412632040146666594686244703809361028784505151476117985975240455279154528793440665880403002725778044782347556368032056305987581620201727569715969963309461856615590828437139191948922206881838394046750596141132984583020914391558012429321541077763812248469306167490708732087609607828615862255028741008612769940128606293135805494837815335215055084797873135043146181800464332961273930917106198022894904332731632142174357991069199831467202324918852384753390380641032510954991122160735641883065494607696529921757706454880665179836206963766474353958148673823323229080857650376108837138236440336574503311469796253488305469724313593319469829116335346601361199618453161197753137563352383268974433231496504031365189893446058203698059031500540016274678936717563365497627718914934054982582612602228045325096623492846646978142678129546418435361694943358723932492652246061684447488096888381550974557345535481900976989073208277156154538582700161773661052902313845314430571872892595322425726404674015977430999098340593089492113077819653406804833327262928937915064182172103657237188044361774845620640304847518206717734873889789730713498670127862039949324275386017074944425256287098037897796543885115305640259875443683266954088494619019738578348690416927436707921692384083978803805976585533961594088186640030616738144149712359630716398182747906481168907183636843275215183701134821135856306388632594242307805404100835971293148367300538047939582438760003040927693759710422831292351701479428871680967300208294324897291644978853471003836582345645448931524432304668331913742039099753289370025955340081560760196180878606189494932955849255714888157801975068553660144468974032602370896367178468567150177759748580071640636170135946026971372261700807846403610875788024336976576248080002719024051402648450267861509276244745454374934625252770372374556368242626164828314272042487273927845475249458844049115945363379148669523746183238860755680195388830049644740757283043264482007259446778235377995144181498362841565056175461586078145127000317048148906732767839074731899471602880850321576782470338775879121427610747362696033825188803643714846037585238531200789770331595982702836316234257879763430953995150335421434729823792994684637061869655283180650575447600902361325002923023335130557450130256793404712782210652725205276659858067350197327276949685760064789939868114998872306770903123153424206618054843451100507658744620353234374676592712609858793242392069143555534862911077020086297183429145760412315066690721113263575898987607717120977566329695526881734604377243069644616433096429577370853578510938994164076767386613461678393585065081778036808702490738537986733735686710332034852053923409634161495660327643987485506458679155050035375165257419769349819428235636685752686916041855906304267816741906258287060549434220920455430440574745806322509039218200698355663194015680145387839290305805177813080122100945340883616919613677713606690880377640154159186105285023812262679203251498719689935724995064482385450315891335528249081582598788700687952042671682073483416646837415848799168413101127586913075484998519555418466681648838915514342343425257219986435479263840309990413418505892678981654123378291736237813090025132535858370538531938658294656742279402657559203808776160616353784301398891542437395203910769174135225907268831619290096128916871572058117567152257887071702100457131269973107713472919521164047260170044231412982126929084098977405090782435278296522589697475162227681256961748964931604555479210805705005224036985125640997454106707260551138928754578428849801742189930813845589833616652900820069522117477679999948556867702672341275237329897344358707901785862772777069258410195268200349964622335534672318118291767426606109684536752555702324284675563943978077294422346859001113240627242227897646127258303588864871755654778389522330385550674375365454214883098258165693341799965822628948845122494499057698303231531742262662746525037559215800474477933132901065344590063683591611419631870669527625797114580720255104041067894964238519036708917751321526699266084143631806179558287746437179399898056050600061435244643085259845069686795293910055393288994596360650197254865902175815429432881377946629721112295287663924319474503058178631362594376748138785919910752603910419694438670929847548925419420043514268072828571837342610896794851471027975630731918139719988246012219938990130006667685674262262857636508277556758522228546346458369327062714142118800887257799753634764890034372103887597675569582408165029840219715878209640421397666384559924967021528051468424381180503227842914958951389673929986773713619351059366415259352895698985108123726656501453791568327791705685872513312429856762657243578746549202037050343911846677656828997929508936182070655433624089352933805760043183112463019121101422560786720053579175600061974402847069595694576682393040784513553085348337147468450636634969852836673415933115899528645409760831452805443117050106929611639980131772539063303106555788216185668069765056783097596644230928806718991647443929847495351668613676747689677651984298243636233521140136591856585613245796991680526585261752049612571424136507239310164982090710947667259847933596217779495802593735285381214045420450460002599068339725567410388896000169670756680570221992517728404786608659045782311601951138411478996263559021716114830107182857047361487426565338362434234627074019285005104948234943170983764358025187079994468182221311990465775857994713278290792980189239166984735649470386593295663258402832465580286128923396159412042328253042549029650673808330436657317009035866746383067521606974781031007404302818881446412236901336549904072160322300258479758721384558950828393937240354652533104404992814074644332550176230889162910665219739360712282202311557411820008977503460288160517964505030490479302326250958755774255291695522288231176274274502290217035102623273840766889764815823426700491082216708100928259678849336882483150157355311217058473126512718753529233650283211410891179603345779921675052693850502518182535629433204223649505275973781052317820105477514376944552526207110157166573023052683247854002132752143338620001943852639870947689049189746480408558654671065397497497272125948923710632040151471086325433708635904963391976292999896562512639568975938441711641484438181842987661038964335763818183239035106432158415748049610532308437760327560073926949664291321881115350732967624861639486315121792350364588932524404536103567665652511600317554618053704523200565890710518875708330283113581446933984586103271827756037819776513715006614378580341923906091842714140554455841907775911425962899926555678676857526722033850530259928610190791612591234548125693375278092164282904805449051303592046495500472733058589348980186970549286007403109346449281939162718203839813315221172388918988498290352719278640495753268625887013079100313847287754659568228668309884596140058700328898416374521614290620655651547806553428023128828273832369011655161487911333323337560707588304117979921243747093423072534329797366262233205670326669827281011454660529467667801090311897026104497907009564760385822742477843756645782561949320347779008309217471624804421222519818815322647999837943228273559981123347724895638397307715659360172411572900904147571401237514499960873344187455013086409996315598378972236756909373798878945780594411511593216586553502591768418775819858337787524070409705335524776153224069145082809883090347138135124120884298989832370814938173585564293714970419226367832668842702071230392551395617468023439767207583916738473436912862611461737794288056937739019421783834862744764638571858264828909670365546329996930314426065599317525650800284541076284555459115902866868224236711521670981511368869894900599799367194657228471397465102070553522511681174486765681457456480425569726960435072515903271485433078481536005652287287782198176965521723969893399157177581875485982404610303167256375194271605639340245069082318646778443593080247115953206579002078086562193846261262342864460868515221026515228197943868723388178625972529511734638535877078883624062723478261650375090749575707907863526299525505100274504245781969586247167473281141951158214191356321768298675930020352701035079548182875299596184029022096370004245094662667246699942543575212340815878388135604147759383115015176130305648464779379310580920746630884727591427861508058596679265575306900319156801805108943593340758057691580382257990586983505885978440347112817872457513988737002737417136176281180705829545022699540867690919180848739772434882329927488613064467471226392227531939907532243359482385708096643008748391915914739941024705193015766480876634738362553835398914593884436484621830680487473610508433272984650975245002308746150724905277657665428330641957050609955553487916490292748852096049731276741820063557670100589825876753018636292437047187352546719397174524236070668956700393332019657172377451503434832326027913804137283433220585268071094039784247202294999202237827329966375551524201378565303755576762133523968718240518471791831600682054090103787005178090043416705911832260306283351837444957935615065648987718079334274544769380824189917548945787832309102103524704875045523287155149093147805946050923157265214366541372892424631105886833018065376148722259293949882881145305865471279725745621488341742282535347042463414534709248543396885232987305567731416828005431887030938205734785248181282288403159498023968874981954689280669963612820439623532696233101620617551319210140833079404568804771779374659671735780665694037172248798377866309948159644444527869148176593524477098531942398145360062214390439844277321920345872205885424413826264847015728230741252437641253328392958114966007991683726708347833818143802933498805495483591792630119467152268358814800940585288809903333303264288085071832762840409083055015279827501842657407299708108740019445960821430954840785234315541346087071816597046773085871071312252816889032675684676939940515705225478728411680812186692287485772992112731611066044101921580123020550640168240658463970119942009755233327220159631048730409155152052561221527857735640707366023697040571284373470482776490160036668966862139338778482003940094697987532577381662832172619465271019954152849491913040348549045885360541269824104573732574798937596492235474932504459461576880057334931467966612656427703995843025641752862176985102950800434966326489500400758243447002597335126257581376215343512169345665797964735880805495060119138953998239147046746544217287857100704249675456799461246933639887840829744514239440896369251301024053489222592807214404557318992455633545719562479836605020494489258175304026463568578448784168326248594566100285909415555808867657921419621261900929389430470810405022485925352601148477214612429210686159376154510074866235027211055140450470514303666347094518013375737908062337061410378700006504234256273385969645870297879742996603983651664913753161302739861677742683880641052248692606569891922692995406677797601583933583141079492378469276588882293973990799466178003797123795560394622245641300050513892292131726331297806491990404077508194166107095553312270126746241042010679482353546948564537582865378397607736509635137381654886815219600429861714724940739042486074442880571374068875248746460522656962034663445380622247893112864419716881170292443093187103115482087232253909831479502581964715368876709620987543540570628166794219703636550331167922369311392845380482617542267919394301581868739569329788131973587943684564401920392267684548299136576174660287956732723338585933492405540710470949625432674351277029984212570325906921649704466251004290704991426955737423054241064882326687944463992300701827872106767871314351672897487981971638204863439979759235764398085199497493247941356496125999596729265947881575750812505280151740650136977353177093135771480554282326254611489775148135214515386717814097190409523122815828459522397047045574788043348331278403213063660722715266484411792569864508961073339629304061435222057334894891426130151006520021147368039301076853311050249255316067456626530897722981857344345291966068932943899628941854384241397511620921118465258385492306631027133075892044314650299051750106481543996575983500182337318005731925118874125494815852929336615690672349994571573880440428138601508498226423200138301023347160396487454265204295406739281568725715393169046653752599836109162476712012472710795549248204125430227814071497672951559609317040902145609301520777018170586794639621836212599753740450006237441918391972349164196219146478159031505168784892770492697264689744749881747363856875554786758155048940069510053223041728496008695244797214569968235521799922470611237998455062099087139082306377879886809932687160775870777947725604686514760648862353926178541443690348126926283205828896112361470295761778744971878991992995002688059804117656391839015571367686845923694228260462347728865026262939031951551145537973267700508670254842049343002756773290166488448448368136310162629473150466248070212665248015701060100383468749276376391240387815797703852587262119287620901496063380497864248751648345145765164699985126466927187182990099748278572909561209016983203167416298255964847348222975128331768379747267546372123709512621283340819216119642469220666498685012995025378868540343596390159313041090885264500639630646656400564601799443523115836944579196466486027859487969911128394498792456009983215216667990717376604178024816745476898421176750752050225224991636046982172339077169289162240997965181685056847480460847229287922346316963630476839025826890537542184832327362966902296260191964981088446169684447205445258433198328788941776440028286126778906694530660375339111152592070638235812454245675806273418280710684235691409645962661768712774315675971286864294089934924275992986950392305234692851504587158311219134574816833055181445090647737549103489268102712777268707028794428965472857384797662693953723948528160563948404240736091066587912024273839249441939849247348923683049921064862566859256420623800841910780729904156552784439050846013599967309150556460430093440341927769859372437106384074276932731040612860204352275127389529430343904365456384675130208794716691672291331488876873931284490459909404437061379220824795743280539812577250673367987627448367288199504541909331730772603056332367658942784325513759742122239698428958433246738038473685468260394896849874899311170235833380439926924137038702654988144029115998240396348448910219711296605478610325860692226536774987843857251010174785885755805909314206457492345006989431883044016095031475810192064474582258849037809892675686423708080052841662931425998321172591608050228319227967971167312108194304535300625417625497285225171375468446316674978696855243678467527824618708411723469806339028515248384991411624169674232191916536881289783240245869087334421837449525975153073228609749501657582121875495336569254615926535629413149849350855353527317614052727405094470905887087885122973850936620064819503548231094162567803636182466668562115676854506343799800674158096215437437043784715585597900655161839359663218502777283592768322551174320477974718674949084628498958169295339599760869451654831740870627332530923733682092247146614134251711182472818409841555234317802998677087524463734331406686693596455507782065590799567495033891706628153860927330067187056812361532990148090690836746654151381910746588789538417926285349345973114317713830225565575647148513465172793306021208021325256082378601597692458734539108068272010492652909873340084439628295441290757069568043452518967520249060338114754731054576352071483279774705603650751160302920001876812817720456462814435218471433741004902651101012690222209175345787832438934378259655685694533405232075422178055127146006301836454509171506902204423399336093548076245898395396976809811576864813411876094111380230122898302327393415970689255918916165772171710527239292497743100344007676703712920784935163271325894030449362038768355585465241150509013928188873439049141339710934636341014438502399226460258202540362749964073019050691036215706450163743745932959348709915380724935249390278804573360890745233165893420435931868258577872822580921206466908353162725417052902648800993434438714977430816817987150986650950163329842306899946430964149435538325441746928114864797882198401842477433181428964080818885963632558193711304414998688933600847444196669068264193038750569146345954625070482733251699204426716958829632948350724042726411759709069189860286663369091150197006431879939289850990385098272718692049979712140656042556861685801795313645409445451331741852033762989691798333398676511127371865021275253754395876029794550780238132659527086758151748140468096209131118989703079284047979026936290096017913626955813590430890405512328318960108898002699200339331858532842876320514299345280893295291745835768221321739047973843596606589788949340647373162231324473082298727188751009761983810897493682714879429116798733356944774508435697682059804114070002190036834049184588010902901956804667426304534919941783846197638917576845662565436524408024245599162826575315326044962284232928328128104765740320362786451019319277977025270484483525807618093881291962673007058165635136668723674968959994698004047444053662769611726470438501533836017103786755966129880356501276312841002084838921242306412397785869165137170617846988367468489231508090359649271153197081353720742319854742101066442355676908497505184587924319961151476040293753777122617197025647322021573665522748242638063092073315735489107643287026164603213796226241558792336308318392995472498360290791752384925727004892784374273198709335984184580569839127065935853443593725419684413879419716582610008241103750629303838570120206679692004787520799542650298706086238286198728798637328551544433632463173789810281393999515272273431326219468305661160182236187635903864282145483971364734541754034503154958669463681073743516512204223260633242759770202111912187827943944057342138135820021643277621732959166293328571001105160235497684361769758184147390008439595312308009249969098888550742642800857521702328036475847702936912859656540899605635015677397021873715706711619491004384990907541301297433934798429252889402268843961485537229814917458204698135066811363231267082848296106162839717238105562931404439795168568063990219563383379522093076743826250178366066331874793849580112370272993234093511487506624099679531705648309800720219050558971429804577185254286351897091259440152787379197890421451386355181637447021985087657169684908923727282973479167950128510485939828214539445459322015595280299893735565253513381617224761038289434313587184900999167206412249531423907835503918084728692201842150733155621489566608306239409134244316206267081009770417594743490591110977539105002041419323603789012805375684707234596370560554795952446192489647812409706328925676754496456226805101097689062955547917077526913244950009834576371952668314692771678101331450322506011358516886429897813515049251665232423930507841911550511531075181919801970381624772578323409751092477047725591418804853824709117861466642134244282212420161086274907539112288679240696578751008533270528345714965737549890849067935902019880837750732149297547227183243935607167221030321238142283741641120020513554541345248473534718234761200164516501357380362552672693230808141561860866572129764723844240004879113275286674865476546782858165988268183825877430890561821432440640660626910096200248462493781792765673901943735627510996585578867887945086983361311027848151922969298760928984869533872395032904491092344374766183287732819543446861399360909105254865076243577462752474417385459038785044525618221574551836986756425015713666573201122241463941116050517613567987318293334518790823494890981791785559011648754333667781711104149808874762636018799777818328011212214415089430314668573318715569182657365460920343755632445126697791082992562610038294909613024610139896120421148624811810569283544860477113196007471751882120240880465293988338245910089891022904772370150595872811630303146300052990141856744904118883752232163263927260296914903323118886527013208967647064310687361870598436792669688917376352536530777372599526412309145316078698432627464673625713588742987506468916506884826802893405352555774502755475577384447319378438086485993645142190356480004685322049290488906699055223301511587926327940600376104000830551517665089769598931096362011389078334246865087612877948609500532045868439687184305822853120481373774881275859778139403328179142775095630019850153137861039763260250170382961812751209044876571522757061425233853498469575595631737074612445304003418041003370777283946612080328041476789957324509182656355889223202318664427803728057216254450581677683974921567694630806977889669337593151581967332871929378113119905807748095383904462281905275247574352206881476844846973713291990443185498142142955584459551297962225319830486870167204194630677684008813876690883509349770466612439490302030196043036282764757815014335630171397615986480264437709820621314227862261048046061404099642342348080135878583829942932571009226885829344656368259016658131472198853713438130823716493782870868063939190131134811223302253415946172602591712037115101681385064525393278077850047799999300339450291412462496817019560324015394460204034603143892115586743644517113578365787401259093844341640996620355771348234529906288663332470662129573281557471046915845709055331719073918670322716308426387769151935760897799324553608014862538426163100284199082747591043393418650674475897532713939443015095055324913902049444967096685996899093322096331159026315862888432242445039937499179431146990596225580688053786303085949327090339387346224043017678404740030041155599179630564629857386935775102966670369055628952777593995418223314564313169874376887807078803785863961128093306336726234153703768221957927927253956970126105164402418790969261294382618152520146413363030775998610787415698803190146337844202512251356348395994429015627933202950469783944337145703977998423225891509232221576512425931170408849910718861518658834460240771714093500632956399830596879749850307779554944547292635079663031379377996157865884818570836124866915408877318357897974826321058677564303532700113141763844732803685455824029372678079750096549000465056517018803070408493467269109328219106642006144419438133728047005844123508838092132796969794519917532963685442079767872526047152602835227635708565372249127863236429487887945638552349844213231649170326092588865150055852998910025780855641922015942228372724171949181962163151258577617453785785066713227814114312270103534187066975473486610758834122710604242749717961759463427936003793322316830089736001975823275360350534362426853500307815985743322800470044227227700739354099179376809522308018258680178901788048698756173332684317197768215501132891775392318022325688891700991558427883152793064947902436418844073329759442894664091144583972050398951836346493537287715293202845723734215664411637089678467335696766756786788244719961373480662373948967918495628304879153046877977398346748124153427043497931667800395762103988590350056866171681504721977757909086594408349527563258141087305990903126730114496869492316033611663792188476661376645217504540553188346716805163393409913323580560616812112827530178389091265227788755687295766808140769428039981903728107799079350540195617501188988253840122123664451303595388930336043118252701431294272172238345629615125818738683284283773415302277386321509007171019031123964361552689377971774842997421877432994602631070537398765660675518750419343700924125764191015938154562428761997386117664362273137915104149270434541411086543401287801055294322301986213773331136238294846201037420178405023438373219553943530523346774459445024038301132368471047898886077725159040494136211509840889608356368966620672271230437874145740268228057260034404887302762524693396734407758673832925904004081767516839483218306403770102555663885698076247404406795691308212123914464217282567478374511645288792595792550505973415096643246232010345177420755726050229199732597266235827817028272725510752133104785116577370719225378723863828714281759769815337027454727879406133816195836671691261632856845655120915864266595215266497206744578974666601393735870693045658653844648597853576263856403072829293369972551031282468666492155744553765587117212217961293668891058477018522460595655283568823653675902529253876767929532168040519323382192708764604343742437324814228565954228693707921215905923454427201597309599301207154341939695684744164939219662903164079706621169063729383696807565911555688692207310526298413726746927381580588476401684380867133365652619462469105089778725901282170507067159577958982557467619873429150241022951456710304123035565177601570269355695805175024091968095484355206088087558127068823379838126880155896869743105202456673719721844751208774884772152493754211673887939737680533976960711504375394385058948268392424523094618284750687191853622582516327778110056277408252532238656915236816246105700684671221801967423819761637636822728834106106541154875160893252366574148889215641119473664513570247041086620512996599470618747112932330288387284476899011886421777895793457403401066149208106298064753483183749374060879060117912126617635146572012842668667433891687048198989792533054815532906002772694009156912091668187469245557626711509585136912128415756039878715376503702445349126917809666946105700270894729207895038078316557655013035027534565108099133019004988229514005371568754516120912165074204182383542333036925863620890276871704764194858724456956826393535516229025772428790166796220181203079714190712252366880184381819037475397750646652553484950615705327486101518975170524794882501470773067218047107302699030829219272211910748787022917410497885690604702673827316759755717105021667707929607516061910592401976779789484274714851946384403559623475478438883959503890551852715324344302486228593712921014114374810821706519164071513279435087200624349634885469323141880159423829322653422944479455611881971425206230851040919318841684574248136553231588967988650831930093063206708324731502890808433566145801798067934159726454335010488120006960472832053037117063147121926446954666250972208898838966199568399148182613775294800488604073506309483184467324141877869748614325198449195548078903384896510698013229851749166022886968083778587521322010209778332876774779642576618585380277244393162820701883761003701969699772706440157935475088980129166941778822700130895949626560433668904189771255889634112640858937675803865976425331139602570172726148025889481891721177556565230406948237664232052457216381172507109139300715865444790171930589205159625397740907257971121996560464863068169554230956399170931661457721412135406819626207845903302281040946849683766981412002917049934825840173130789063098480514569956320348208021728445794845325133742917098678624670271625658041908212785630738023875895015468660272966303457723031419758289731277951359402248281871542640787827700169955240632526395887319693758210683243695219014865261416805285395896690685740900085710286681032447789555551558291352554157601379150034046783684670924023147922755917182749314562035915387249001900451787080343684325383278653777079095333234245320548585888550098150082092530781569649933644231855823419384930941652187973699936583030567848761159239033991341228848127606789277030652969404184769976681477192364209038686393766060132712542373691482456657079765325598754861756552669039958264979625703857461141211992708878544727516630093627176535197622187233111876810672228380717047026900495480441630024092643145428152118419558203222580550499033439482188444948463416566981422093497709305851526966425034498987383561338009990149112246112786276458937850837313913657303178118156197649191399444239357961381503750120937242040726573178781733429083692516400447854336772029559165299794049694222478666796712846768526468205870388592605648644944532228330732043875903957524100838531157235893309484570337888770513663309204403430068570974970237058947658933348069971033342685758774701197047382267241778811162692170236372301623371207359196174799397688557441276495815041672315271933303127876792629653453481678258671467261102778298370275187615668781576082239548745370497974145393428327642917653207063551373460768828702608299615458250085955816732668431611861661049894967072830693241537581469761679388572691353385432193424687320791931123272698845097947530300140727140855386380635232253352426952342717618748581184800205849315923068352071916325466541332072070339268125885404147757207453307706220584320413417142822748279698036162641572584259511948655477074354985601858636170126489649929381164643326272102093896608847697761336361980061525168174532610765271821062282974760400859651603682920500031481640869876490549549229500409876897381402632149510343557333396824582768743025032432521427308398429222161754409464701644487176862046258337630072055556761121609533266299929053406066119415497972608888791677633479039470831931200823234718347637503133975451166970949697567499130247985300215734535863052706068063577421919508585450857528467879594730487731612947097474424440366539423862130316454953369352520887503954719471590719976533710849490969115700754693548673616956790275420379279629040146329268909904854391613111589280296994399019855196805133793471286191882657015687358620703038338943204259766067205341562600783422898458633365140808555478224594376732673349432489473406466659729529962288469583702110721941626344124098556744561021560621964541860884392027296921882264342273083913818297744129962668871753472233924768828422143795751611298464356392914860849166097268903594030860805168365001872169282083696953743400170110451145278331595027635779058326079438147416386291771086760164844592065387256268529068934497026174336591972294078015796055377039520961852484980219420166221943988772274358069319624617884394630468165416731074530626985355136389680030768464985376677279220665029210047397151105748591600856910920788749044261037372230135009084425422710690466570099664818257532824409278579624105037028695592243949847717894798116908752089411376733876200537623424521828415819672243483461703158834362881616050901429123799940002429664822285074872769349663935256209449580505530332497250421218906462149019682220998141185854125799458064164227924511048512556745103406027043885301179268938209760704450496353845108503947012870757524184571963667990008644073264341163263523975309572994670431728024937220146541695777093774517612673071794933461494056268134013219694593693942572375813216524166876685392542558930798809717318464864423344309148742177681099741194840263629863730010177142454051402538459032202519061707875009313603517469959776662007802257354071123735005897890674342511275972686178062934241816639173115263403440442159665519303734765745213013530518198732915754427083326097851404403553681800378991174546676425373452690781479966349234160034448516911807649696856884361780930813202979693653520890382006404219130727921611162310663678021247286634945059792796993308506577386600503497499904977787233347804554988684466785206839768405916863733473855517548120260501321129287570312900418958672628915866049406791093588898689439641039704548287854423186805996680261475380409023153893050014987869689596041935434658566970455337476153282437889714242101534178090251187937593425531457819090228000185652125595884685733742180650488453564848584940231894767599360862255107024523243672013071106764922310938646270657783358665956278266442302793595438422522200218098062833611065122095459083944104831714152044151334549471551324290060589733672424414838148044793599997581059103282186533425956762149327819954184955645446593737330083273739640401136278936908296786276279806022961453203598469895492933953039231415052125630470916315720036285825285026287292787362390557738089045614113438106278371510842526274293077408627749650485658131793891999122762751458701248132639722346669339235636976733898092488393737977438721064726691575415234058600412850692195088622174712558110134030645046974219919819388103407405278433202583938692941424214374500716610436422094082800071919614356438071476311469581712262812230217634247643717336810254531782508882930752401071903271480264215307695615429249600455562620173970551020670404461022203807546072773472049365882337888491439454474301983744897112987663783048250033177372517183900303958910283077598327305458480056507847447031152039080958880468635050971268766267048715048800921228041631450609785364945324741452964894569631573041837484520338987955752726706301319615085430034430172045256862000079399124801703958532107372735312461179061029730926594705111155407063302177373109612688157844227656997508893193675494908410003217486434905047704185402562075562105923983146515453275886669452874844609326792222866423588848947717780023927024953706189423735660862380276631099265443919419490121489050434864590290967766393390228584955766767375320476233357248239758558906728872621614824498960164010367741582428263115668296917342145318040407575590097411851096259613008823355737620871662655989466470502233995090583843395320017206464420545369984272109144411100823007106131206444472174712947829755181009384573084389462374944725023851544156254619156021558055432502194897366820506849830447357559128300559423824615292975048715946020182793275321756873853403000474074547410179235556412975150160907439266306069858705439009958489662665596587955382858348277894832155721566161202844362887199164236502386614012138703177340362289751897938086079920370443975315587745689693146703781709756647392885400533131741447828758450150165967783443812452632609898779025333965055553601060121625038313141290423762556879633971736533053852974766352282483056282871977769566013561271054497202323595525294795953720913664030453902872330829472244732722154107683817915221611989172341223915671182712835484718153027080339342663545348188362275577281006288287188916879179709490124307520942391832082710555506703134815524381236078355710722350246914445314978991085313843977057991693377901616726075192188958382719661159884084403236657128609291468511765156395745659167690043126740900564777406694426765924079344064666386003089453369199590253255069545121326523387303854914134502299437573855851318931147738131309826529180511446221600864061821922073991539109703744856360854950051561469855669180784207237459342703512104915395283576220192432777053768858210643031615439766465371299035427600490553236012197842425232504550897787576816106614842389767853510591937233477005246358934788782761594240400966984040977723201013991076570357175699401727223207441237152266892138176543248373598370849221249639106260741525327405477336864040071224516853344636102040255297269740757511364303223379566419030097782487436974644310587859178086371051156274586383661355996828194587991708615111293830033050441056887968037870520621793046320842993930955643417262782623630412092246002364487553346193036651395318532055411911005851533935877771024895992780083410864971425115847948601942386764705719609247872923872844970650351265932052913760694469667315620842299303691714340325672584216908004847282048379842044570244559792692418523106873834366122201662116009056129871988059442872370466633283909604756635713947039773900786077575587169734743818134546828681502308471361506932669984244772658094555203981151295502856363809526376968397199026840500697443348846225388470741610754473184840701824597926865109953302609457322934429266428916364088518447500305308407289260258318516465129930652340997549489850106046499801510377114753565205090129542559326479646129926281550682389110581186647721867638956240157160720218875993588870823814344171915215247745110117516128060895886478554954815842846169843464869548114098350447483897960971224683399643617777831564026635764890165412941638122681182979647435709552627356762843534672410871395229860673353493922530754438161875967003338147346483377285697605178705195764694510222254307330382385677336246984996297769251540485196483757171477234819130472986843745508678791990196651048809746822069858071100181420020160863266429951058724382347437225285385081100409282580593470334655564863967300624445765938478614850141767511821219337184579713056086360251144210243399439193285308668597355600162405250619572551193078271314101371005275083999678953761961289991968582814581612377903729565929923460298266420724891781824738878827583350711250933598041882099397233079562662164844284716570385569810685210760153085072560284464875872347996206268987364681821772579660305061275470592794257658203402570499412862994811784806711663156497870455299675770703641213098331994805953119569038825853735380677377807984668194393247700587147244337293474796046551778804941779206865310760257251740003100807229043787430323198535708995639456761428124833964962388211476244565302219165883389500689069370036475367064842288394010217516525575397389537760719969788537401939578587891905752689048401583958554267442341248980039146138007252193538172348946638586689331061637421859694969608546572194257468182538096244156419028994286251150408386164118543267349644986646487919520024310507568100398188034207704408631057217079452839153002540089915208037636767674811781162858846061323972615525530030522074048087214736285341772081281778264544898386645026652524157137445984387515767458731827778159265912792758667114709266752509711175007449715301499253896995392360356206366060166555434938371954986924060002599740507522260939361540411962786895641439974027837970805262433605931642904263672869829965616949850585056060993452644449452744330297506488226046797283031501518546562052653848014939850068818791957566764423374495061624642802176358959765582664331818623935455770018142488683379895816411265541061505386018429099299318833459631844592979424362582404078977947386507250928935792413550570280654475965156100108405024306185313965064162914936581586228745298880563627820664818496419833817772941383205671268731946091250451450640817001565332493622285008740957667743556929711645892181184567396517621072784237079699319771656668155409119611779263092194868190626108665347520358785005396238304851445670909453513345107073084422199111278758408002735776992527668080891166207168668099705472122846835669361293839505746349213564223066681394243427519748264448472289493722665306682788550368777912223654469067589023067010191517394812186782984989386430503151889243044515194982372535296471304076558309526050965979491615881494177282576133971088218921831386182094841557198954323297826422755541327534084677374115620447083401625034343677369639402538010875836744247028566597479065943803346580463618648528455916593715515672474546047734200207349038495952107082431905527119285510314826940461210427800906470137305189701070653809503827293230805919874512063306724267730710009819683497276523097863367134303149181255012251073785474314091333794947854626077276014884427847917890090299345543907176934739331744772177515685141922790667383321073166330711772074311487169718007324855682304428590166960574627472619372508712438795599359591126664947921294022161190502580304699473565875678676847449241396206173501082748945182525711095091214017476047097554466494122836900315023973913655912963275137750057599186183629327836383136308205362239410544627863627071008910507658275291636658523095364652097138682757190263086370148240099266394908426109221786060250762070634949452995732907186503150990130409499948762700693413603722514377329282851980563161510727188236343343467366468163618820501579438949373435675256275490746475733265295923345089539726020435980378508127234830770918345781109114861302470438810200147528104052626650900287526188197365525741241446645338121125071452214688969585483258997520998891824834888365605861852623016580992369703992270364795870048065756609733606889674300633161438569195027355043975543158255133316015103166301060784375224983577072027311685250899901509873959443120953047416221025210725404652832425495834095708016973184049606578457247359425627061494010575779407701245821636007291675870331003002663508803741662151176665231615762997207634352546912232790217415598256910820951518729837833805411149597902461187851918477580464905161055970716125129134493439348326041864961270791086753705430913362100242520637755096818758275441062331323396758857050222538910492042978052239481177028408522125404583569914701505628782319104948934552466544848201038779136684421216608388068260188700726339328629752695958345979155373208417797038297364011083011706786057434736307817526253833645674592692979119770284545122159453510427523294794501568966104945006324032267197257268434129823546807809247027386990986707916043995492351514793079588516472376236606453885061043461522905202261641144513786548592799590288311274712252930294724537454538305092232269887570165750261921178808149294615830002572113547722218360735008797065931894091294702700531568547725610543900631012472392404345105548044188322006318279339827944495090840457135980858573047397770710117215005121075430017364440529289815340377899597811173261514058503317458787330560076426206615387549481088531002720618534744046704270790985452269046400410522123461687242648092725560564907045615018679340741108101753429451679999952074785576567238320004752207626628287642919146696052097276708497040684569551769524065765743318491528152814378590281548294405445710178881444829022066951325385774262673851043007109870595037002581555725203940436718540291986404508145627786932275971489861210725599457077646546887399833158091221357263802357506492973123653314536583447584986167517218968676822616260253074589640983453718081437987316887438919200142175455235107370306590388724932964183390990698594100138629840910832980224655119718473582407367579610440409409026713894990523542873387119865234240216824185736427489093769551501436624709940760658670472879879308511468424381106544113104419330142464888972580551734275465132576374459817033661142266755064135427881766648968840966857021042383373873839498835374358613124093990642333050235776459799571090481969218066638641500855751750258389796838304901952259912765846655640212482374086896072967517382560005735338931871661107359256332933325178531251693794027479675826630268719012604618631207151084977729501023768781524812966983831738317219390938850383839239478959166186184761437701647245340327187501586524279072842408099324366524458406260462963711282131382989047283176151156886634132290974337800670482111449532609312445900591176009209464868701818991561438515432315208807612567343465614855898312692837984513318341702110476758704805238598344268655238582768875721170726698382496548541353192448712747558280114798888312401768663427608217778010056564293507097913031196337649875140131313467855456251455391842530599054959217690108065988302087253529567800186541825059527600451263466539140781436525128518228091335126756045335327822867683860377332750935385687989922003175954321104519763575614565087897933522679475812310484773868735968676237252221128244218212280698390984861104586983336221955061174844998290846116647873975550360840898991368099170857703287557440841527035484754640911230705823058532761211494868821498845806106399713241096668817807638163116354317448088918849870612229649147319918722071429810508817747973164674598180429548705505886562830665847124472860511173614762873810904105867228110137401121823431558903336071620651977406084162497905600586370245816072650828266690046829198069992203780139985740832422811586378076797420439079158472134023349037949888851130424732463360626771699917592085201491490621631165092465990390904730629317889457446274019047635577207406027334230339404047739863802405236592181625336287222967533008193547014796194343748997726864470524087895256322588258686787443732058723781612324014483728534928184585350534282199221414798342694800820050566424309367372501192013989815972231083259152659677648614952922384606009772355354134998068033090410519523450144288770699770808098924701951329670586493043025938104990266921823970989862157145784803154466290234388151885784350051229186324723278559979602946942681979520759062870522209245037723343481200030366235866269573448979079003186994760429729455273963570512804430461727354636221682500423421410723404434002659135082363270123463628848624885952773041783178273995034576379334797782329755794160752208650628440403341600898939430299081912884645181834207136474058830453898780238291233239569977889376636172935624062937983577311906834755309417063779090780422761119363080837764206988334496893863602469336157864982209681636539800073440025765175713916972443622694560487822804316101218418836530067231112489376410340681322761322093873288190092120694092625125459308949904391454813455078110597793644943433800799317277258697475537773274544382441259460769388084244721273024370400547724711108365741721002724432671603947140198957974890578611220495933901197700756711289654239488106236689935087222734922647220755951241434090365163185445320897280359027250754660883067842286695103330820454041771847181341748024026270122265343301375499361453146817862489016434625782654110946553575066642890727055191786291274108308257900106294469744376503998604118551469241520431000720235813550562251491495713070438867564959092165532112860628334026191134272482585896165475486757647138768307782748622812728042345375392514673904536364703659442039104985845535757580038301784654343452311703753261586231567153612456550417836313308706281613684040834966482197711246273011511150388238805655371266621375648144575988967948426506521923758371986824520579455109007110198319108947371837179674628677839736046269651282853390537160853304777304754155797811035989086127942096215217635823245272817614010175799103687735617587534107172067984176551397790669562455424779692571704601305752453792509798724311113523598053094140673932974948976777401939903066397347482422466244810976847239873725128391154457135396530758547945463149956280317291372761272720228179190481442563156243761021085498618064157781893644520138594592932231958641473129548180974480229170804543894151534461962256820232818898525542680371263563864629865052653619668093186033815446110579592977001749206703219231636877015613090978158264032659414429258793283285649378231991417039963133308483627714411244583977005487889161877849556757506805274935673720819638677484980744408919472897998762150870701156872260479132600944819138401235706648409941359620278362825552727674763079465286112925180238833946960642990223931377361601256631554163192517831489897110173390059802970422557674427571951857439864561797780441136400412187513553082351123981473837667378208594027333152271120556373719370826534969103682869701599360530247657437841888402683214778397023717046474872244803314826263739215875144727182522416557334378955904150801265483941367818823038120514430382712607848182640931832477794108062217186746468614279518394788453317169748587269178495995606905192927515243490319248787623487531855303237285140507284843048026664157568545241595027541743186682478724120813578943913718167985307343165967404685907161580945792902313002035402685709672565506647235436437606094171515629410026547603770044426263475873962927548584830052217984636359073674917468202292860046512990172474132714829856954980252398112084324568976701247735241827877060515860600407474211241423289109198888144177002805790168664313891249857383140849131740202374294833997607517926750882174037533557852431020632832835850152659152441180886764124028093088342331520133694846135436762655008807930949968155958310162894554521228518615790056951926192668258967166966287383193726978920109434697576038171062207866021644297578656674601143849421382248785807956193601378150108836514432886446308877766073092101473222985920475208125188582257824980209636550214917779591786899554210956653864072149646843396455356612215520572608614311345049844075841348139842691114676411163068127511442645203361246519057692986472131015426218045010883195611313004858093716052243012261888073595683982584445619962774659973731739939772114672823216740374198068086815143958529379465392997463226121134983142516613361334479807672148717490446620695602955183052419404908958455877139238629137783419177854453014103038011096452741608331820344509578394598738090394333870989325932884709326214057395436884044291980702470690514305371940451427996906842500793040689026080782309246294458531620786629494002291886433867203482351888496010088564892989362688380795260164538284792062173067393939651671928998804579268966683969373246446289681197801603658131998106360120036192533254352094498755081021211533528659261969492176589408916301584098185802011544913102938761754701903222819037146812991622702158833161178949801775540158436461723532625328411242093309664530079924042728794016719238266607779986253208983363157963184459829974021691256148699360863089119940637053570737013338626092044248276699046376396390118380478862111068333529499436101766441054357935306166669629514029245471069819929482265840782422629184997709594742275873256593800607522567910917796643838763592423365028907376678545500043296852366461975781467131172339442491239309001484468032298088199874786613970891437558035834296298704705264853463540632997525679890072640017922357318026728286529865838253529530922664977932699343768844624706322344073542830613509997302959721455045222669961966726680679998130451448387044152949788715655669122427509408942155545684794488897272650362865003134783683992324881770812294809274276398452745784948355424523284432865181314687843214949922532026416489530055051817880033782943802965743883621102998160161281454210070254583204808845181224262785650108271403208355271384977267317163113242003245862317185324122222674476932641972034939481560062272775077828130152011234241361443275254752131664422679643596393493703010507087065394537747166095934316537793022684969380246635499032757712199236530905454305243654211509479473156262275511986058107982511236983689793733369306852659336064194214732963887536470145020081102455650389297856938864773355211216093540371071038895188478593849642132815619759039827273183936532507947162770645339725875001835292587670525919016853792689370332865988699525416603058314123662195613815176142231965050983065746777879489581467008371993571482622991730713372655345267451609738835373613030811871358682974293773861874910236508045728415366939974170469393965515222396583847220528870452866896854593555936521393863869193535396758833151512126447005265143928511424714339604406608837747779348904021903695641488813386742695744212881143968416368472918135315426577018722492382563103843752767479715520677350722120297392634610475471929752465364806203768620473032628720395071455229817465703678805691417094333837077116517329601656443024066279694897666867478937631098150967780589348021326261828260303137606778605801623858111548812680668098111197026939423178477133825988830127854332841098650515939566974515259120453748900497824439315958008849262618065297447077240565370362869258084882723188251530684099329596644500032940824762032278691927713398717376283413544309650355651414045989517589648423508185099022801198940034349078466648215226845129738296844981183962992966880390739196882233680498957029800179561791488929123035801216143456028856971090144484989656165949418738700444367269599546433605338915765299420085478634178662501227702799370981107471567570374665119359279173610279391305091686377349743189312271080087444630204067628875486360749798688146085546987612631593991197293259981416112168253543724180743736230347630460316019874831799911610377865430255664248434707349082677230604119232615008517736701887395981861603508737465655972919570760115118744683816414379371739686686628840859039105421605620461311116361943461471135617729034144382003158735449514436769655985124136740462686643237389520992409144991600752249728713152130279312630873394575706448399757498838563924368879836092131103971256427588375034291708013033313737652115180371142839812545208476299447477194738033168573640472540936613141704841026937465905774755300212953026206558853975408916978483718058554972115978929527625082032197889517569623353343837705042786980961653811276742798639207854662969300149175890138229422164665860943320595804861290122770844502882599291926533331208928936736098342638114879109396844328315167556492419895135872805807243261981693994378720966760429736102928757372227444618241497764970179097429944844808916640769298741885395702104150022472912103395146423116157989424275463345595988258393830918541694156566375395946666362166975978584960098396448379726780357856524599369241401976381006614425861925338592365086123916641849363595467150234934415520054361929969711121954015542460474161648586962212556102470269294862625784157031817455248971457345597257701988328042831291881881505753881661432964166203870361337499141413488240769744729038146202900286709641526730254512341019803594623831648414433249292387909887998119394217972945919697728044723174942719232924671773299405028258481844490814875977698111932947706411585871162966172419330099875362293856117780073357131722474779862300318394090302746414670489379427331589970919961527041096609660164538234546567445588252272926509579943993318985669487392297556118199205540908516506979846841269369382448301080332718907008322177250706407104864314893278159560692509763071903555571654809348116435951754183904650406252116133247405651118967738496594621649670018750602509867770660898225564182084902549351137544776157314633707674090650103106323659684672652755409514874022323447627152710851437966584281132518410796466853850938120875559375991956719187732459049477331449712291971055261062240815134325660982135061461284828886774816800657436197706694035513880797597295395136107505776161877819664290656575155889721216305339880027566183979332787741575791097778973271003963106271359242809851624157151696665561500856662910297827210594592106381792518252476194649430006320795610905522672528808968799493584832052722859540498320924158571601189595614695978545496600719210696860044139904805132352431613192465086768821309199209253450567183297782862399816658468049311094323347688958838693334018273745020967485200844410505017610235632139212052421735750475273485902793077056686418921560636676033068254109802367251789225294296631095146098146969297252933340974426415082332396330865074738273420142010316956907131927155497824130098504881564091235711476283332641536284555808310312142624730714405910270295581599367392229535618742289894611744733495103351903461158837875276465902982478387381884455559234273036462595876653656907778743749428849423712298333339767487515540907923368864035306871471608147170052195691950256492740942280527184100028830058489117482160019725119541053134202841580915204373724582594888516077173794120744931151578181593759318147220896952297745323248815084711580664276480341240276606384361784872037607984937785876680260432167945406383367807099393036809830880901702113902311932858983200806711973667890687124283470259180626891201319432112106067850611185573260773916872359568469665923255331625876160462215311171741435644135509766829192377672920162362463811340094575472324215520564873203015385004517306002922060887867345202036798376911465789732573502908986627740524719695376733113437341772610683669966989223887099835963057653647153149598556871676943844675908310865326816719120845121045692895311986340939148354926070378731174104424032829996703256241554637650555090995944426299361754204519750402940805550825229395444489138561283640267876273075364277394885540621216010309211857113977286757872791448423323995985190114365623589139642801187297046830397845373403614761423961776565761684193599574145546515244914949561728518681862664329015699579058091788638275931148858985453024849494760707665468490117301675846885014008084906670901014412548151115397900427369377995417290174591706434120954185556805643332742914421101059441681659981567168630214057698421442571047141081498501462262897647346305272927882784183472598864248893930806826156445615064537155754799993287691304736649246781737721422821333818652560171035891787587479451070908665592740435014725538554562771673128487527294416277029000204425684272659806183266081953637096329341848703999063080166328003112065924193665059040754004082340879149068122088131661480691285598626185220672390586770724183926970342122402845671391937261064587530587298170267380208622281581118221276948477520301698856701504625899597095475863784663205920581146036256017823028029090824671349763216913486814556336164159466000052188355488670181003430735156417436723349811560743947285987156195347018640198985467951368953525380737831928259534710883120316562095989898037058356013020737293948370632382907985061320871577329256054666850274953045196690138957201381765770980616486997450914117183311364813727554400257919867745923040713022259492204885584637488723250878926197129934915677429504283537456082814186382008306049240330589991992494693597432367834951453027239818467650803046088854075815497985425644478139208618708159013109103891107697651286939002946966969164958557980327294321061619943228804933155974790605435733462347648406488468886847837146122291171056167601203581436155476181768209137593584708016000445219545038237321488670081086962170043854553687238624789855540986225301391277735777447684521604239507154009352274024829509526555233853488112256249717698253732271502609018061644749863525592389202106573534774298102896471815727906920999164507556836802381018633756220211567239007556809123708986965307352045874177590466905377697461137341202670190711741673089481737621315470987702745097323988127119027988951966452020645487907375826115772333529056856000958728131128524561589997189329253000214788613755003894268009309060917498799582446050800418727122310696910626440201008974394609518490541763404341078185712174162987813737793151553315024895015453941121097174582269929963060230284959068324488950911751111526649479903132524393200192850403805080385171042136618065453896432455157437783998204503789582726005611871411334179999414426362763224144951225709237676433385533482976515426506417312193504156257474301626982520003871241489705925189484913613406740819980148124069649964012533649986709065139587357228966942113215595104616835159356654769304856996221654395696378642986724458367037800395219451363523287794802599211712706762099007073306354914607483332138658024571567642159009965548253992411113480653934340084603344522500105010016953529474704609556363254629402702022029864649946451204807332902489673040560686393122641825626261932760234175267889439070406868110736478183275247500886588501348744510849916361929419520880913385118754066127870453921911246523181338794167836074611963852348240671121881872947675693141934321466260167016012714818276361638492851578961165578897947171825005565984448637298742234048456869140650483004785506974917333094343407307611379230135873819594697275060775400004197576296147152360333088417783468398247518930027058518448648071133539046383973044178411984043714159308601311027291619269666514391709597241647977134956758695405893083014498167932277575561298090687302890507900944617557813205356155758442549301375654144098886915469303785786767139360931307989027215232853444767291718502799417193753578311335070652221755083014000678519040831345316719844190865060967362117810325444520276360600804413869658659393154726796948911285312573649626505204134710395068625319628421977388931613901925715612842269561411681058791584222841570117520588810087478912358927536817906626630316684001201231845075139484791076744896135953471398500351145805924577282508070544005307356457503390318094741934032045134588602996417631728404535623181428123460359739279003797086080756737456551718186363341490044009440505175508844987554064303020579864769376859097430810637845606185773863726373543057241319929427897822176371717954537322357121057135258285590192463688636075454768605263040132929666146242073420221139854137028173559959577570092637401589253598183835257891340875407537950634152546851729054343221945418999462091402790823672047115918527270091944186751235682583945231623616103333498645737043167765499763661729266492954965853148086215007074151092378807361694550250919386017354132294354740753119863430023715347991905134163006188716044784774015353953270187543838520984166968152634031443049440491016370392650091226462606953273117251214131220102593945179634613594539068907673786288636559992561472387908364508151859546883324785348119237713222957909452447596660883299455442140283615284719446913866730398524827171342748230576163585768493852805708903061445568411682617921853049517778176875506110137212387695384955488050509729504313702254386797131660197208579109322076777208758988617652368920743919496657546263520829191024371759460124445386265855658962474669257826622587355679051133183440811686661818252384490601866637580580461261725100765670873263865710912204558547734896981351180006545868499251778872175774500562479703066611281943350780760957516271117084895062322817793308497008980939158522823831701390311699960062327605181232298934428553823730454957160978844531426811256319611517593035620164408798389199376069080875545219649927846748385738808365587637378819565807863624337963051177405286968315418596308947946754191023859152869445115731476179496688781171344633565197142342478277828468315527765371209130098285144820911219232812674561395763947398675195653751845026198911376358682247853538268223299581618981948539344091524321276607519607324936200808028879908516431170255947646831119100227863780378809618923990700359186833685931155913083749342773106655003860591120348250522105455969055278189410597408082906304171416194021180808713376030499086161604406230578278994443121888947765591923104908410337133717595524689383939135843630278432418837303978385219541267197172462592907761967162739552851621255432104548999755936580681559090995758502644097195436747438821877434387093817448637252269018966633119123643568264301858039777919478912848667412280324454667304314308958003329970474950507309323325291725329275346542716924760660765369239129110635155205050720114045817146882501783736010756222003488648466868344312786622973178376150046001365287278039238405557399434582136846246563587863372219377734272059147019078931028181040520241189193575107001892234981888223916921655384149733517132403194149082300573868765560833886736697807694304150200553320477198105973198789250762147201794587857055243462867082311626073755297467097501540854815774344373895923429445830484473652381908105080471761576924233388349085148770973842790043989666308628844485828151973463248937592147294402391690931738798431484203156272667097521012209334060506313701785795344327073427822149871912235408164020859550376234591094747798104736706789406535644293637361653962293293330837185817566093057440758499866928222784970060456950814402215417058915732727713174320105679966904866459029620089860989000355052866190706642359426225879787192764955490387756608144925725224759651999049042343598434183591817480676695227399452942751345120854875474999347459080690705520857340888974755513996495093260378329037310789158589705104295649640293820347555586904385853329944218333052964090830753466239146932232839958698823490970735821419168578534798059270560157165450287842964147669765384635091514809302664583202766052304666036149558709698927313590026077325246069998394779661820246740399627494645357485187383865102406770058102800418072192520049447868751892400942292485295519005096934713062526421792775100255387438118330579040791614384191017212092626813071498061664518701423467566924631767972275301007976083974752400319050695477031048278836356127772856520910483519266270759822290532403148645748147477345779554780221002288283112640178931259169968878930485154557246242460238860326570782102934097265311558797857762190345470851422546592905297536957795213567697154250284586036463807225928421772303001977151510496076960481932283077024161993427379850328185956724046730825440433514666512770373872610908205790298682230773137656232371080364489028342663299897605046762008383411851648722178459838932470992945692692861454076425710261959465073812475699850284579139005766239063644929068436068683128551805260391678786630897387104221066599890626898753396206448702921434775955734166810277203514280129701187738355411979237306932041930215400380302187799554200721734544315698864182670812774474937861552077689828291091437481185205749717290408343358940085722076938112884915848776277449341949308147432808962595796882880142389342732432060193021095363558433370664850127570519857311555624876938894564996719504710980946172345062599969030754644366839591813489294603159692848884436292458575882012189512321928471758269477084120415121719879687281473434991065884206518990000589472302826165878432311056657783770508158502832104266187272685079387555381945706433662128017707860828749533727873126479498947894894948750497139919877833797246403201237518113869274058501429310492623945515705431048980219977337058953595445533106916504875090996729236948646750399891635379463027046471455853686229067566662808449848259065774718288747120926553307506449814583327701802194609965605838026981367884698741699912975884356568832801768678860516349333994930577649566408125907753584895471814888042266594376443861825639166260851793842448102799519976978441581024290603564149093894698997079811094071204983165689854961088529395990165528403477100646310811412442633268492961325200838818318708276318833224359314065253449300410201578444429203966387995443473901026970802238806649951457886946309360188520434363247838661227699132033258290959759387898982771267181421926290534551965030854629201937489524011945433645304981435393886521406225217941999539144961434316939748237047982603794757996336370421530254674336072517988929351867850064032673213885821791654964645487609134494394634447087152897718603865390811552365181079335438546840507931712991748762621764041165076200820503630500699834060680754932135607968431489002540608686999848169968304523617685780888764650776560006564811315606531394124311503556606185725804539049732942683884874611248115423340760688739185860474655320778501053552674420438942681722746795200642777762440198100207491907238871501197609594372132112472311439235163898698250415409143701303948985930842679012093791656421463262501701768120752544741242328595336824473705447999833399420601702422556214898402642754812450732214725679733261137978063675696911926431303276880244773902789964388782993214321062679256354471645119613816103074145997989610982008829232387601778647079978858942621373877085465328831858792714472735205395159118405473457217743968799098656081885509354241794166753043739016941759875031806653352124182486491773624129630438716346587380450486409765896653567467184201378176349683646186749629831611682109003129491206228713543386375088087157454629968308956052917307059957008011834705899864126264931452641154247840651616958554511068914381880345001477047940855795057017528774577820724819882910993572243909872048291059732041299124428785380555478165396002636534026858051331100374993493369166510083902779263770733571293394747395332478468389539870164603507029565394018260761689738613697707234298677072009757547569159936868274370339975514998277366356441807596384051957545887504046921452377668344989650618855161153468857023736505441607391634272198856400226828528127862813798872260352328326654988324122560248841232928378654879715495084436429740871122941894853258906388633269436251101202947729591209163504071804274631844465484657857031732968869312853493616385048872493099165657732560986345345864005124165885848649029092613427625022300924126959918637295188837171285862839495577835022793578563871604075887379931565657003039359782568265987550792033891207689902721462674705533969248715065317770021725047224669857731581981458984874574466645439609140007075881110662663127008875051285693527425959857959101187150603549366603004972120880494034056362878500456229152446919816436159364120534219201389462893507031273842119640586220464463514422081628943594338649803895981917359732966009268248195921116486980405466579130830061640091637424200994231688704811695878046087603979659118500610990955774949516156122192769521717828260733907729956696015975899507455537623726539958822724446345807042216264615925113007038571734321678512636192701095513459324165768450813440112230498616577118765366656387009175179125734371314865556533593613763055913115733629468278296880244274638163370689930694265667499435149179785453739765708487686950890234867995715156115236438703295971537205391693756409550474010922442391626376165330393250805655774904115623957547661052828252414289576947216774871221234456756431188200015930373677859878630728664217372908831159103236549372840305846809242618116045430607186312143513435377769496975259366525660423547731626117564744956848410246215882128027909907676677922078668706228497378817750772079795984253770723392336202224799755427566553257283250751849546746687022905404064716366628405964765471884296715651148565563899177385143637015487531917858667861921990558068876191554512821203965533607690801966365497517574238249504424520982052964360119331113436672157476633042104076058889755932525125930663520942541229776153781400701883220295932846435616142293618787718937636487120256789966485234217021883253946222116757996649941937638866162242952935139969094230861015943992252507772692027537000464059815682326133524991066077858197228618474529385614889367140013155114784829927862123300407924675787198193822263496984095871342422210547661821833565110621163374419497502090403902794919216113465063383220815707494325195102976822165095043001743563962998182399638066483006653051984521202284342070621732166400173268902268589715115277040736642840680045531295547764804721141638666778508016184214307498859291394608927299872375179908451508710105329738072235045531576368301810593258938908974799005121034317881380155685185334268387750123005602878070166940546295515811778235049116960962616230454079427939601731942248169197454566664611221656617809908736177565488759311764008056292514926645109923950149888975461024232331189862953507184923228544092337676131032546611423232591420456059823603282746237138124574280621908737772410073563583486992065274281734078472039937852147581082406833888613553346377879206714191378245256081926447801554090109687183051033134712346457595397049406986798908984556058468586941817144583254650188655613831368080248701432050324700190823309581548848474571123402417108116903863312362723581911938001197420887386075074348455709441653407095781419452730874265574454030672399583987241637693092524372744044798486183612622829180747331318213035734582136744347218273096861249560920297815358469482885166731670314802944711437821235021310620412594446204040378833869067408557681767163679411332235760532694469953510017106791934272311325419414381924968637591062047391435276631107354791473881599791622535460934426125182264672784671423836957819507295864163615239001648024927867041435983205147514114691981316033582776851371602128733542734078726196326806097606403471728494562335927922984926438489595808941148274475764646301858563752943932728471436161843258651499417656740556558540045200308421678727344298510850948976688740992782988005441964571264712730058120679846388284951400760848375450007636420523408305370037342913588517741497337231881066994136518341661404838745523730326902581903218592771285795545852239082010401199757920921065492006718100070290521521427208022863481476598320604464519082699074950219590258238077716519905815423416823446137521606731642385805090893391554027090269965928001364744296689053758726232581839835510421259939438802859779755691081062708387636699318898742747140916726847401326753176728350000788838627284879999069025113899335360791674140677000365777225424934254679995663055748923496309281648602058717308138297133859085938201767542792930841655415680030309157388201782067568198128422792342252183428484857877069244484614934695656203809867748467864271514531813174842036447431791277408794334212503903968755855979392398946947558070603259018748693154799943438477633884408271280847945369339766982856295980099438471108543112205754821624706721691106979983236132282966278009866035668469134300806732885275258311235928466198646079621266748037588556751667365224350724624930680895990086292091954693468019026478197915405951448727150333007862933249861356220607863676622599902709203652488244526009173282342138729070029826898909851375003595118659876394347487340092613126350972731169240055941325300108209684641020374729529889132451160265643503652086696234281655469572318212497637539262622744496096353044249822860357821560139461547892504316161782391522820993948992340900360930273268688262518093465181040123553179700030753888393874785106976421332867474594854745376401838091401926578211025955455478301898056574176061695496620874369730843275672136488120598772694008052357205671775033223162357317421613519378562622142013164670984927929844356464168592495197583651299891546180319739846785615645921304213857620788250788556186383094729093447503545851554382800114968142752809281891481655685401134436585676454243921367188591379765704957094494487152689803572675392389736534055700954000837196513049505507726806926050311135633051699109810416374502504853531793201048200193448092344217175243659648590160654286063508248247764580525343189364067867508001710663498556752431100934534169057481756993189970268342071516364391828258789156736351352613005288926411805324951218277900533109538035218613458878180306903488446902091693789723933769565174628112632522016147463935622485971477241763219587496195249568958082364496439947260890341928082250523821788103191429045039069823674459630156533554084640565849883353689261443772149793892849073616583382565565163728657714277109475529588422530633480797269841114854357992445756553654672474523790190100432640519243159046717774690508738200968774965730213108014361749386962522506563594616649351026927952984903719852427851392455670574422020767543797757133832811658182862954643238045103948192280362749280419447933141784202597425684924459131912375473404110385184523102868638274172029435728587438819463999009111682236230254924070244813968911337678566266239857004429099410367315078495630288167068478498596384905797008856328174961667327300179458013186336836902751931918939958361485914505149250408903977779832889555091040240513468686916370004753012858026644354905310972868435092273785636795259963485852464429797963702499260703445472349338705955603967286183887296002030591959296579621894595379768567957932828859404476903069524725922279639258288341064196786618193611202394808704949650406111872900319967476318413768306739576793606086255501345308750511986934859396167216656811397599834191943618104947342169010739438470566609562301846112268632562189872164017714348991237005386141648743892493823121295648090020385804390577554538565640710651824860345421095020542843723468779892725037401785950893549192881132000822517473460143064202999820591396784482570380365296687133385069405201756700975523742417614957870540434674961111389619022966425493498238258172998138094824761780595696248878696074073982826547522732215495205565001106367413173490224959218165407605052664432105615685937612648444273421110929608876973039929817455551452061197029803403932909221072458477219922596978286573691363645319462100203936523541923748084147469012729056548610975925814663157683402067228931024821673140897315007808387548343962471871910691948978618011412164738974462234160267455369292319529198662737015119310284274714945666270897560134566094088940703265193932872814342019494128641610164054809730142823202792289151495253630920324716792407290340595534500829198512390236545414724656062504711696712891500317661063943823810580840841015007824221151141677159322752582683562959561977294341844527311105608855857076937019898158599642648732163587667276632396681150537372851394719320467513140458386447565524371460234345673623649021668797958359561674539373372917823993791933461009284800936297426635461317311900201541856485772680449036762858863911108148340642348536145544985436172369971559202457856976764450105210682841130262693025487353861244239384075144661179726469264382190067052007176244123396354306957528165596553118086130827759526309443350438148093162856832346878038999314241178467150321083612088627838717134874291265994370605188856025593594501085527132448204602975024207656203005367843333173005977544098085408564410152070941210198937544301495323518896161367908718172984808422431260887325326711351420811843742949320119409504093221462898754979702391414995775054564278788344028471254971306421490374383743983469897558866490623119017774584040935293553496862192999178046368177470964874475624983453639388032386656425836169729171233824757348932315613744194650362269477814059043128022681933276360528404159003933454785257985568349436842964253612756273821237760769929804764111163709010066470739723321055114584731193840197457124008795943639101899324113522873116866359031928747293911603016942143011942435739632923824205308447878975756311897511789385572487903350718801868492600271388535610384250876769287406125990481146595784406996365243454101384821480420473661496648047744272467554720542185125406305242859961452217453517215080907383076220151822134458677030419876633877727756800007376987500242165598840263065309796253842126459676553019189018018017811461023244704004286533779329534453844326892741203196693162153641914348645478696424765518119690956954956333329368441781971924593067427590251658489635334855439417997815901557605226648912025782291439172076441674758444570882626311676125543965442613345518343420981454147762636865760042065880457579481966210988862459005407999149390948399551920978281307036102397236527782966277214449199330608873659121049974281175251634287206673753522681035521500958232746827320185411243929175615032975984474434761246306402062338676158296519306614557104848541377688822577893513105283539852972017793255101170653217956863733971296887164395479233703197435420739199297113791570468502116378114039752046215811046645063928369431250168471686291910604266288061728702497188876837131735182036133035155183047812779562851326488731060042643725410036794936254797513020888926907350414764982765649997762574254712830768694842782826317432471136031628096851795780019945708005215541643358145678836082649515037176388220227006156939026946289066019335638893524060748727735969085304481346050703614418652827539836885081350643756005882446974307286575384738220022521428261382231933263394673400958194322340963548590627405506278706367628057956215345971600451625925140424714527239814332060066517291790324680096999089134033515456442664028209035423305344000376321029873135011780648722744531305118487104827845092544340652432339974591060460892351548350646382569263481320437687466790828053603335057611795010932768248378240228269542709300982223094655612761485820310998628729001991596456272196220200485410152841197960624595116131006861913571640141104200168884142611735784006284703388307717868045385677422572365356857916037147119515647862666469465700120936445513503902433329846635726519768102699192090156296507468707892154106886927072424165778328552320001773785374408420771414713211053403094191489333606949776509937099984047543740081432144124615146065599642702444480556087850796335557051621350184577802280557385236531427989722015219934593855140114706119886738253311582014040601274269171099198853832793935819070967157415917542780635517932543778431165072908268995091332931520391261020642360670001725793904575529785909387963295618992745423470588250226878502799649141640537514565738707067764760269448297240931003139450935568188963343523870929977167387927213128218139463513773910933465478648669073885146851940820746722343460230132910999799735103929593972544613439531212857907837564488459811587882776603257907805720051495839859661273230580246068466967074257117416955708627153917473317573825871646688673662992479063597549219070484232824818446120509345048199766530555250331966030152512503277736397186877083491840048574033037971818995227041806355237152800192571983542428187853969201883099159856181083586859565983740977745022619041984412714136601737546566282275540075694924886615925808260967818646121841849518879559509972187848959818998165385840857273013863215817897488178574359342723629083015836525320418434501943464091983654481042901842301113402911705722168736971936038813251180228165243728164234378588295339270266817245770077142630723038656203645813575914757016311180678418963074008010075957333748864047880921696631504696270041184575876557209506602302872798287833149564842996336345243909483985629336474886148687928331329810025455964219502537240610883048212728779264919828609326589072114692892136570314741077229663557344669939169035151688995266434633262079540087360908188740804632063555272579648234387276369349206299141703203031763451090862409035837852108554035138647962489026591980043246522993030999485736474865176890874118554407103640060784167004483999962637216706873949563792282272482804810308640754854004430498677688409971136741077455457119000682732525678440767509251990468853298085149604801654337359209287547850288618696761776607729835788170669130982871544146750343156656350082804796367121435254347043969257347260885983036986342517906001580856083734465237509342686740925220306644364392737181715180712112438473447148279466883656337954061302344609567993918128181633336225515490466035672869721849681216958889497106073050832705328649501293647254858792252924242832028477689061398324403485194767940709013710064165996372044018278682350121597697911225765230628809353341813824326312705756871963853342316868822131864122950095893760954257979387245854557365268494687894688850679663745596398031284461887041245309474303442776291861552932962585188424062615268505559660261361156295693833968608678522046015153100807799476696244790517623358123935469454471492835284742656004178266850968795539101107159752994447596050940147276932704903940315523928991623558376692891819542678435202605170070117635260396178852953002009655033514552885414544811277700398542409683708566983677490363268372729325618509287900042920571542099785357333385775588147321892940873185728679611968773639230509633128237348428854310016315178387578222284617409186184491476126655131977384701663788071309962852504765923010759170053563425217599210289048416156639349359696052734262947468396838480032033138540619785417834067044032273731913778218081212352230038899392500632311747569517430546808494954369280234362232938998870723555763630594944991235173036242939947846739240495829600028328983496000676133242718410063398404411168741762987515128134326293267939708501419805927378449214423079480518366285074199111980084707079565793594777230924085384432206148343103707675083237373468550490640744183833721253524786707201238715379687263798724892509820136516959334756109423895970986947669339659490343561557791995698344317469629067237667137400020720682228823120424961978024189142128067420159354071321595988924338977752659210311207371781389502196835097279370991027431759204723386223987432398098936739862224761976039277670959909508182433501893017259955267724005600882431907372013222248535152275034155786523625870088275574304911787067626364066940931804084012700826146165344527637735252179780485044608853121376916714274615806768371574461553660966399728068450935032640694192749385412936440611216249921804696403108986215025300416421377485446414536006111232090310372937516428178930536093744968391298773486826842713251430539997030856641978262965052211936423083667746126715576678987383662628097392076320653383451051790150651890558850927763209645685098935916753084290326485766321790954987591693214715343376381376648535475546673945083185379983382022155185914577166923537823741561434289549335188892065843334731552098281602134539579641009956074381590934627895820834505234723506340702936541754127832533001461778322445399242220456111321330484753764736486267812402712303180304200305329216798703974163638880009708381282657375698839413623379761560631537323378428294255624829671106396231876577277749910392358338972132922033505232716716873326332380051711396913923387815537710313765475531362951290897934678532071808533285939792498831990424252541532265776812191390734980701070960343757550825786395571842441944279063872457937900813931862856572870082215839890094521256115005128934430780413934523574620410728105293249846828543001568674599483387863434233290377848172507298101742343813270510937580795623025495818002425112503198528412582089644465000045275646063491913628895187439299602006376183924444489889838769658771330352231647690648857444404245982872357975496912784942294117453051444461756881446901559764325550772609484888883813559465921191004513915487719931005426414261931464391590653187549216130363214569983639284801629931902023446574872352547993847710562393691981868790630764425530288708193456852035622628177798491314670406573355389882093674401451500153640063191800358321795583558602118026485868848829764320863474886612645870212096679684524091081357393375523806445770328491988315287015993965275932859995080461192879470689086655205459268953669843774462719558774845587145356642195795318228879743808209834890993977743785347605191297276222987885335097964143981922491570011567522955536797120826356846530713031480539877651879086769483125253589499231291941651917819852013134680828088785786844901499412743292476710153937248161351204655431604719109872757951569728579547148300902818919159527713386794197911015916724949376457258022088928097160348939238768741050751869235702777066097036308911995660340967085174781795298014589059364418319428123689030225562476268429878283120767920820503497785490799887464983023875189401431028897688738374497690997235312233163190395785799894983253501160874666640366780929811222362901679273863437996968255403356200657874239317931781942051316233558762903725834319967982704890164788164080881675997836107923098985184632907114065219446676215150498456417458246291772164077481900041055216433978837737031636813068235131937982457701091605880580899186790518123243663336317986691307403755236152766866733577904107203542808958116782349431289328249772083174438988525261861613143189299661742648555736557310462106982196303864170019663296552879389634246017944186084503566210426854641142168797730516998843118711270951593786250671942627042899209654815619755147803763180025886646874669175688637771276220004079913958418985442074972346632725753751828795689084205939260021702760567957597717084274731239438492705597395491765593674104886734707542836704215384336529486151707996783779592005968562358759191942339650964702665962761449213612137214117184598153134714907260708760239170370095751555925051930907801115545818851335094941710163093522089840345807311018990301736235513693574925213608026266406298448379844178456193603699051916751240038006370412355368297256023902360141627098654598328423118156526502103444142951299586100416679423680790564364640615982735400718376134800146628379602976601440387285922605153417506755811688696716020011290862846430857272926843795413566831406882897577534708940166254512569494427091714840809891130296110693453193091562667884751015535992390753019907178214590065769826964911478569050253692563519510840359981822052737573612295244435875412060284610015494302991754947036922530397316289652007093027433966889123113032026449493301820320816233929179325501598943829235917143592402128785944832698405994296136507446057177905150045596453672988322730516379440146087329932874921814436954204337468466880941339721990026700470256041641451257216215466033484876622345432512664813301714194534397245321979001081402274475788015264148067842618868611634011111800264176337710119929500868624330434026251467370957696026986050246123719151513781196622805991088678207735158660997181480958826637976539996101813195009009271828474981584673440963572532283580726420962992893648282676400435040664468686896986677115915999766815142098965516647608939141655902782167396121353386497266317318191616991837167427754758063231625746536160194783219246092055605809109918147825724172919220738577540971756321255555115158783284295965451808081221054149437104218456122030635741581788097221814436144141870428896443615945751578188364372087959290815153518659271808583913902573339391847479427408288865406306533950356616084946835376246594285140454299886287960248785047811146315017611114470076185448552769941602939543442323593425904131683615702339454535667933296964223605479293935363838918815710352887588390433561453283675304876963993531523240409193202672746606622420452598894440134864580629676776744293922912024192034813356196559087007150133311485293410557057199222461864528135560689429978147347242252968718935491351166567569957183158968326309599968233411224935735925748498522568959799473766541011295961640195194041224246309547814691747499566852813309283148032456242613442213721411047974572469194905694169531386177807439266216059535451929394997118536105425135276850664921617930325223266245824228369050409013278560287852973241543089129070438287267386985298860202401601098293280357567152451660943005995870442020596995293455867817824303901444851414792149660087113158298986542335539559313040943754393147852373005499078613855169373859160322282034834881014088169581480417493774188674082746505214580507250271618540124954116343682485565591121105669681975495157590784782797713580663114699682347944299469293809056624927825075012674320335986737664828792054359791849837215660188192068996475998461471899007420485488288690869961819755152120638276588550972270680537833657490533603217305358478511210411357765214162707667896597033599469314622639462571213789947593411478397118368112124949839849153582557740447929559941716309347262216247494773993667029578308681494374309345372872811393578615667324728323966586003452849400683755581832624276082865188771235134797296077781032656729645265224307492312756665238227053348285222579173733547069775302365934717389692406313400743809058650621238210391083721152515010823022641663839322266517136590445297073448812871479589585072350370233375369473333835485800677102569596780471613708394080981224743650562804612179487569503220443632500680975049388897018647394150508262941313874697039121349110537142529792411908497832441377779228115746607691153102855781531290200501496264550788913519278248972953093455446963552106419883074941170507674529952511031748805116503488572897672963400888104079925334547243897196807424538670347203969188859314918128895358259717353226515533304303342432913982321410714444629054573499642212308662236465186509228716245729555780205315581308613917301144039006420091774797354288651693188162044448208471382553696498686480834252624657944534917440732981922396062522403140864039505177480814653542841422188821603025697709730466621365219028351569273906472932363959955904885710073672991541232703145136284588307209562213050599953235852602758324187773204154587233726981597595160685071224768938139969610073613465902851200853817620945726180413979604022005795197849104154802690279074678219890927472579727720713757928499951400513833618087032483574457908523745706395004600120285320062093911613556859413379293043304924758081734343043617915493601221612186156857138326639233323137074966517600783518088079934408478605303286224190377432731520439283374881813070918241302521465835245495726340126022147926005707447816182712029886836058922863490390248704595462003204603369989192713102530963957573716650307105309526137378718918793457919493674745642934399420666659162545550850830774944222801002450770603713281294709316348014036078969119366844289086161947861526840471480253352602843273530592849115650239993352553227414220536380538089820858850787824177916510827413342838783094688622373442413092165875937954683611447364312018911808135315732798137919133117371987195007762709936374847936158589975652616490782823646761806865430694787002219648590549151732246025473141643666843586532729578737941123811575966962451073293401466526120656096043771332187354451654282081047535603284912691751062242392047983148029827345868341892137524346447852797901358336348316333081918052561318419761955078924120127544532879716593670537605044270179619010334411912418833475739467251959531202362803047179442980109311885089157349337044321295709614538274252962450096986752129176119808528156802079668265288606662110627499609032924104436260500422204238906314946869042161705588146745141301569502120195288470166886980169076510754383209415077831316481034218074233409418585909498343455677693225674043054864251529312696497775618913174122839524373404957039952060679170795409827952421425742332171031946764052179411863842654428772429852443254156054351299489387737219979216319923487080507328360746988873884828375784110525487893892064623043701090555743362937801768715946779167380625906532023474137698706975225900560552378532022459119410658525484959327366358870672668583437064259385530900688970830880284244651212556188500077662396067490872800423420623914793424944346139810725795521404692527367506902321376701009291311364031768549997294227130288410007531569360010741067293475565263314132063988755812363645276163248789927836562254164756625155890040299260500023378143550882932077894693202408600666989159092140470075190789027283961283261073468780886175497422373249808131202586399074854705762006550452261345196524786931950832302045843072657063958840355541429466622605401180086678159742015772020799250491402426741989917640956044742313476271673021960413351062625022833599643236545433191369564513603708775483586599725652863779385488636853552490101167962025800511752118549934797482012423848390750276854420810236080255208307249737062476777940223571050296261569648935635924186459019271800940991603781926781913618263382093879671302844426299948258665694923117865186601727739551906818245450332560371807398683858104759616557069648862781958271490416840603843020077332328555186203666671611815729783276966508713916808602134993208062569833800970631880962833908624712196558536043301725104459342907082452645319578364680636372693822435875850152063851458811086374966979737399237217479224503355784917639408471341960877836484112401335660134217571740717258678245477985543423350955429927329663159527240753137791278657888279095002711910649248428633865121991150067223719534925215755860681176463539091216230342694989694250791959626589320693187068942369039221939477207633446158170271238894701111478515263998075926226657609669469231201955248411941167976184056803653963669878773857096559660608187424618414999199833502894722118268857518499493881322795317576364906698944044750282167876914420218420070251260660833668942704995216745417696301231174134065357587838093058701371366859160691695138632146935785564714237472515702347940740358923143562507728561250274695466545841492987513684262913244223802912999778955128258913355174224503373513969093225273473001540050365116560466444844916566308846398178998980932086793198955946350578254194574483114418933692517902350328922628918033371701445346643352165701497999989169880537757932778913335482316038360449845224589817353294696214004262044178882390581654798596113487805422934500189364300786218308170236781602026926205332197589021383348627954157349984671337295450423503063025498491448254859516853060662423907128735267091117727363066648247498220915736318307008353857290803050411642255974487779605567920149546160412203840210635637540304761835238376321189799752693699060253779864901277270319831857402335647372214972837993066853378234874545057842863076371974090453604065755822934373668006980240287264426360199100711054891589187919318443166991734181962697679334060791634231486930342752209927664148372543744132942954967116260331168782844358706578477924024745000104354226011069614904306758381457064648431104057043021519692579310821016926351886949587942627541370631344737419026906413912799110043317341571558163590643680358118922144341704323675842847815057940523975307508754322866407559094715713559732719914159131921702587409642167495274866218587103481645212878813649980007013574454224483521480374546613244631411247614275173314645362418698673218851318753277234610707320576396980173958131753357894357177835747609281530907017961132590218876652841259389994289540093214225791721247647219910127029974219591026364355824894821991397417176731686717935831028715950080770886505707307793486342390164323713685280638005280003605381183855183638749321103726256603893495329258170266119640052845857367582619985919313283722992188729627290204787737035053773606132226937699788528515669247635448414983106862414422471398776958249873364559080249385337014535364137155466352733627885847722178351607415888375754145749227557990334485592138314018897403737650507679320570797790076708983403910663392863135039417105673375168666622348294002557550965419782203878082631209473764225148747397599334721511223725956625756125968773469206223791061306587766100154910729876775691950091691338432850036610812083375451298053810748675937612914067670303534887577635429208931469264116962614982360109282238109136942179670146207265291914421139261286636250090121674154881107661991796675260037161473114354078209645566171325701244310847166113225338763734669121715630109063759976661029355197705496455743225742239609890217891165060869658869218011916466274422804429389988444695146796629311573724767166784828554597281913913586145715843013259495718684581683623657110921760119775901418696735147152525533316234768274594577877355301760421586978187947967128860405983265862286327753279346524386406359510706087989137391597506799743943710547111265162870841254852417050848717983724892672181052455856269599754330919707244485448901811621493327176441597681102425984803565162036038724790527809295244569962984783872845827305122052920167086725343798685869339752667412023344241393328928143949169493283041405258589974033165565288209814496266299286139659959888831594330490307724096049318668006693535000889721673779496416355577396289849773612518591797325076343934564526809170378818525943625774704678281447064635019880666000113826053040519426760915500119740545212778991765356615278010918759906851364705405761107816579463819289666191159880762219858883483558205345832145223748287864232965113284605336415397079701923905219262924337114063149691407007795959341470687398655013277348927510840950292003989092406498254014572098115868108808662859226233926832569049169020191145228151094375153099330438280048480902835419672508475446838136474395341220072974668739281661158838589535510367096931523458222250683076428984893367789842019807038602736732640768570521575605282389804416991684267919022391421917486164929778918457860419484653168815137463112542438860475447380324336609146194202478329271970599935462847780358231161331156465688712346059116563733686595293237587481628539857273494744057864016086815002237115469414031204166027511901562021886807346490333613107294948251879067453743767734639002053521418934530377604157747235307750050377295357271265090700640564234629277514938028561030627189408539376763405582463545923742498877334312822147147839304264715086862016006285896037982895399524388738081445899335415701053115510450838461642851189924332242470675090245091586239889941099000740442184174214992176238314079190377657264125539354727643987151994529852014939153226995254752598282245761230037677964254566580800079480498426566972879306718518470118304058100091848748254706892571531091281992814495061512792939514969416023242678636268316409129559491100684171860345347273311652449235863086865511879670619192926675754877406870390112829140381138197167657152748439342567795601418365070361412737763031604285965770666938058732932612030364547289888686761160414247989087850641038640070207215872440985035322079041483152526190201569130016335251279821307885575764831736379272446330413426952417284561300788731714345186668987647654780554111989170030091948683465297390271459401842639153709876728512660214507306522930393457595212030779855574198997808501767251596199682034294878247825327417349903119959640643702415501626415090935313464095941133227709451717533177716597501964652383436012314595633210116474805594875412897469377188471833020583972143661894745186643565919551437667137884513901875878525526129697093073243587480811770603386667887866882917916291083678866294706703014104804417894237998694378347607667736898966947637139582976579004639763847996314192114862850329163203778548209286328545611560601402141124916954969434805930011833576885680306246659162337524672375916856823666927910333160786224933283051124470738897972314962259112252917812297914821298034631625389078104766235412258852170673275471234487323486789477072566637393659454374912175356649590818192682983469322511255518657127242289527732422530023074051601440309296947961729283193204665786743529989261364712900765592089415659295265338843651132232107566957413179529086334967404621706339657268419410118821507716954434300887590619103613969638716462019829150380244529560043875575118681123887362039753580323745861362593249663320851613824065050285811615742349133296577736441432905775179396860624346868915098847478906393465536323303112232233607568614037256687711401925608589723266412034729231384611545331312405462570333502983440403384289005266061088023145981469018119880582300763616501200148152648429339544410163058016248606156140499963605854719692239294191072249553815370934539637906998965600376350534111356361242401597830058873841598928404510373597703830195751998358718607797803073186042988195845862251827132360748487610626527899909275821243236161021769133831524567376488412487424234211773702428133490571152002625746038417556034702922812971620165309530826434853571006131714712399362041947620221106295806613158317804713958870065294759394166826385092300689411829321217638764524370716990922027163057141159316445165115650992837680492825529405070727913725496771390602068007144793329629429695397193141837909904610192311880226968879701492935667195710521101133738448956735697431213172117692152357584914622572656360163433665337076723502743432950360543657836413430042005561802725060952263359135418586235457640425632293580863546450986157571643679137111359686981201634143999654814827992641656960712170337377924350819069203578690963663468320686200792664653744993137724812316067766175706185312696438960474540964551687593919578492108978227264373127539574955421135835284539269927610132207114849740114957482866616508430831847589495557430036845398838193601590136638005024548999225224326269928869919969387243312210566187725654375680748199946829278929925574497532955309747421227098553095854926590488731372292692959916946328885417583479932166497577543772474581758394586597221286227377272067916456846532703584640895751813336295327750148315657200501683751588675831389709218592999673096528238443381121085975863495182830316774605884466670361709664390664972639913432244715956043752858203487778258724796681759303267804342688594206529496855913173549427303235617041845803570354056844777800586383199203561547658625417047423065620036877736031117532638554459158869200234180783084247444530416733704838048170914156303806815157261886635505940077415893908498421712971765565753053464379963397011653617332607128254680076555939143638774819024593017932791198783773555618638748452300077488619405339617831129602473016097776066736613795636848289504719931191529861750134387414605467240932955939230327860090530437375913890753615405634229018966805234983299618617175152649024366300619985456752964605279766150083861396283303320328807413524495248861373512820592394074908814800375402181310945970723367648644308283015908853488550598240554926252669359399483622837973154801453374671609897846159507406480642203208418284606875654298099722112330912388210075680211656286264771585679570086251802858791802393756517385690103724551116663953184115635896116335668115536712240623189161705853688838407576297740024502109252504769395393407391253387325178767942610522411983938746907339829806834624763034603970350917187096340052646660991456533656860574290018877654249280201846703757714460813980756956252788365577817358400398567968613612000482830036107184591771546082268083719121450923947085412485503941029923730163248968344234722141912405942538775006598370499238671171851270449539663578664443067999748986197074468189626850353891241687715971999279076168237449737101413246353040025732263773434516903907813423968307708670010829355618088798717921778537733715823788572903210038715575773560090715861629091230365844870513550377128256955265355393989663711918671549195155990547673583954133270276642366611347579006104613755033533087392747158306749296152116174574240375256790771367143299858539157338257919384035422225153819729526243997585210688368630508441033364910331982178875010408205864819997044129991418196445827910992062213518783504431017404263955057172308141877082742442660583589414563246299767009678274593099446781738468010782186156816229562797532434831479112757911146069165033622637530899370324886381710851987751023307163195712497130041258285313374663322729040803105292676395870163535290667495589541113355969721893320451847065460422160165568410065943330721355122861364624684301759991229944734734376493777547042208828822359603399794470750493242018655988785244381391123393486615789246448520398510034433889405076891551165230671856904303323499736984031646152606769851100524648219119359875855254660090092713583611982842442074142976222276083704098168415828961180548154040250301309703861978767642907689288786038274075757958834513283143013399590318233959548838976029586678021869506203902522298271178388436638395067746592531257033790224750920188112425465274374879933224522886186567911782923414841261643300280598679055221302901001253516875189391939665457509873353397771205396380005243262551509565323098139528383083140531364609155056718935091950906261306502258137599421470686091034635226205037708950736573930460945798937723615361822363419444445875998588303825710727545702870422573440216654002642779948580049226221027230302508535517482957735026237378068343883815905620824183225811857729896702882050700256844485297442645731336846000003939931503849372754377339325388408999087850596768189788198505133770102575440200777736664880682658858749768015007155255560450539842690602695169850026206654514004634089282165393462810769713178633232811198914338149085799198033426439372961222139749073435176902854512524611469208883093573622102332819055940521157908181083603893400626579901641178503405139148977463946910583333586484935992731805480894244748441421670712807382303211743358997089748455378760881066556649537304454893433484069603791554146555122183053974197800826164642835264356318562908687340542583751551706880564464950883185518251079234457653351147980004033730470376220415196724683911674403846007144781391746161992206384133250333341733431399171796256413318500707377200013479065796923621758115185610127810848388829619699558235488507451245048033041969921098918705562472068983682949826432136371431871512263413252248722799134899386993730187341120101471354019682181150742028602611663680815799504301355645335082962360581639782946935167709096797348681322056113083675540878665519018190790786135591359989047593584623288019470460260329864255436475261046556498445591449774898665224707522467939061080978579615241117746098333834726565703920579286266780770998427558469956185539298372361180077528940058091238365517808751662966366577534219134944590472883345892968550933927473336273849858826318381586440352332947156958896499336179273172149114201462939618476348932943978601314177205044381180910501465287496841586452459735298200228789690477282685846371546719982190765713757669396211942391506529360666001385053879452263526569183879168636881707376811867518479692276585115955173130811943565334286286151949429793789409703664342778102133326967054736537075081700592578497105060121620308595758261388949571682865545627335858984239492637881733412795243491697368589282939912483040382869972284785060175305742416252774654033708191947820029688397423960272231157431052045616712450251536474598517770350636603714474883890070350427078357173899024903745426955959300234623806969206168888674601248214047010266747229137088810839562326906902981722003920827628240061672808243386812319870442205311064457375786618539844883108952607538936653259157556519247017462408766732903541364082901062403761128878549992832134145692633238749736397949483574121547089552425485300745277581264040206105235437636642880337148480075389127614899049978469692714936466315767878189077126385011640934321173285667853015233064072790812141603592152038573425554922352168492214939628097892338286821267233090384017039183113231205248061787902055141418667416352980918836841572055892811596616383368316203498173738164912953639432827107585831079380731527479220708138771442928293416947506823043097745612695624008677049613118782067747887304185110950389828016968879959061141363467966832256134726159623774405186644228928452400544062460381880421727004471720250303925832854033130587470767596584447651023881627376167502511341126713557053037603129623815742165734466421066282241068190011575733679789838625927678681201971299066620650608671865911923143690548560178657931603417337132805657713219668041504323229437345002153942405235303523392288784437734093036862962483439154685290043038788054530696411839117617201030572854305446129543881765372004663092876665491811689791510642869774967425336736429898431425676101775911209035633810968531182302027704287041381232016693786634461094874412946292312185655867476862527549055284067046275226540691620917796820223259525958719907319533203509856070732360432559835365018808122701178512781769238693546423878832141087012870828526313399553977662601853639424766544122546765993651075735688195448925379049782493705552001386712250565432558060677558482542202443255673372424308153450482663872943988981340789869363142190131090502276136155734329562318023240856405609285586901438955866567797619987932910168709630563014921464431239308200739095092603717189356359450543199643732053535866862072108745721684512400911228945090199826566260133284384790975839406199030108377455443760845769946390715516848482169731526483603656833066338485775380607542713099174156979579805418983478575111734024446754615497402691914433451378626637809457253121401171255088835135795348021401648943402115402016456792590491887153684730113875246420483907442145865319896331319990747476152814957606589962925679119548199983302610736797069630101705325874974289907564405095602473469939113447856281302706643521582818363508057233051981226360875721238220356321775000188580788134042734242496930539790777183918132328008528471692899135818521009495221032957015147461995729170758352707893460224113541800507982208815180758376303733961486723566819755917272365340999037121039594029223007026801251342845496348629938797388950932095748355214489618438995752384737956590108011254343669257738266243722445183519977295782179494263186208790274469456889419383956104862083853063122437638201883997150569566617384112812809707940080496691010460947162690297236063165839768559553440437318201500739488887223466474335608558713834134119243916153343994653419067340910283017416960096329415026309189738619767202907035379263805931518128344155310366981510184061615725720081368615513849594057508821197649676101223114161140489806209722787152828739327514015044867955511728961793791969955324235337466906781505893069956522702860666539586852496582823284791067029799379370311379142968410102669620616232698845711718111960442831070306113183915242217206698948612330752770267321138731723189749824730397287276205835606928107186201400423270107110806399224164864975320522875037639413159659940757165792716708262899026857364517305892188423821754208006711174631811158155074576472145616288473004116374384793936231270489411877554776926505577891769701851187088339490410768354070341147345016137196273793874814837699673361177032892537522132744364551629166771296366705997769849896040341301079814110506359336315900951715919915198869318199181986961257997404090574704902257872419977697108642155111735676761674345231164736416969490429058282424953364916494665858374718131197582239931532422369796707219708949252900658559164097027777325523722489006245638343478463145101601698130876709321444416958351152704600019031959382048858667963014257450425922530871132932027305496739090804550262988295301018273833828597080461309558230396232143827206722434312397006806728140913716934629150449884620048880319241991752445190278290625048461409153519823706834287397355565700085114864436560982089583006474009516557915494781514240597901877382181296382146131209156784725626706152274289423848599236018948170964796003194770550552268321870582183174877198436462853375437056403490210668255411799633167517772730505887022790703031111988841339887351784885754604143906784760034878081104907247473348648764862624449976897841737812819720241237074873872391845677855496339249718932808524440549080752258787872398164729217824890909559100188852079570361688852637070461487362186228677791092393088733677174292836316478091465569023959387917539294109132383574853809099094818367317554170001025790231986443169526965817600277351897532092396379829779112662362144221027250427905214076062072997855901478435022106824554700331412780420445395098352610495355602691159115020653708953630912191490567165267515691522063532174535956268625055977472112351065202438722932002038957511560813513593703959458521619501809830926224940686451007302304676041814090160610338732872516829224408138991338061447901100368419313546286151604102804342609694644975467240583170888489415982964841028715886839272392778875107111233243285307371651900969618416559353658612637936583087111816188479298786101082781113269517813250626384543859558283260228520074204982845785856921216693367473323218888258564145815849205655438688300471799090843552333859956929508063400048522011191193789794096880358209540203938358061301393581266521344208202505241414295294060693702470994034481394862865846613017524107558818184547504148845370883351567249616284924460635246117675125298845385158941458491359175769483877701536332457318036951924981880205165191231010063905470993224546817251035420978197592401546498479759917757138987372501748900095139358360490322194162933273688190997264351429862201014617400101983871609718142645726529121080902847097405935884903360275132400568251263818672123500134361726808193563251074209303659857908205260131737254745216131679787427580614591716019856233295738609246557045413876825267187901225147139301495278848381264678501141677245934992238192261254385280374315990068440714140997578062716383960325808491147422840995511238359458874709277802201197849452994732726889421503611330518712385857070565320110065435334130713414488436115441889496765072060847359813845819076736299600854352323181746922428002811264978440941928143679028050487737284173750197238205759481930557609264340010753766285216605560207573519885837126669834911321193466335710422110126361004963036886674748981153025978088294475605530532478500591768861755258435939958003016123933102687898519478600281554527065257821906273073536784745283690428161972176027743290665011425016356956288746076094502157578700655756998899172687619828126408659393962411264490998334633412539975634412979613832008830624132971235468547260519266994201596702444313353057033511650525277223363929446190811476494035382354721611257372135908348194251483943178898767044089704256465580575118066407753161219441619358513048223307884696326047292999974606072865385512583626118411816690080660817777779759664888620632106876728529277766533427847539362406982559324763980238264013671145951858845243251121995650839968904718490277610364279493805557623635751508427474922742795959897155727468426860538816062651972011200817556433186092677917100230397383539789261475246210622571785018020336714317425142930390325733914926075415875078548347389408549997137848941543940500482683882755424633719748238091180770018774996180769460749806937536134952088147339549941159617820085676422372971037367649128759405932249990223205743239513766959858632511751413968799644395468435387919637822119534531400805745799447579253896717454226258826890371373340100219013080535886673936276591590448530743493183220771293557121617279951572981251794519790606374539964003602879664740266145286916092449758778721941451640599032288089902845725249276639568223407223491868080246094899752099498455986222962816089371193260903604095214726688040664791151434821158204135354941251365097957889055544592881693984864535251757637488421994115948314912609928237599626495194914655782716121687807464681482312025080466332878204184585635643764287542382509665611805799735205215639628093834804427413355406972737101433163527474667599040453233474752082426771390367996802595398838940092497421672091333225727682927239391242068993588970520055371539661161051726029608327417848957727924511772211305262196819750748292477641883806392871749973732005752478057589328097628064280420088722184029797855732791629977855800999142943009201990192182884029896345273428237071334575309110113963327486782959487879696734945734738519600959968638478813135323756143838520614358596016924514063716278012359875117115018566968394397276193538131007290425152128498204737304144995423216335246708026365827255468785236412322135086503041413164174484349574988112107285391155746805789585429568215477403748378421257051771404375145711908720077213393638152556938685664974902293615942070055644430356261521406526909532595830680532805718748114016392507016600007955551064428151223595224782022052368808202347378474702029414199527744856525677191039314500403600972929421206608903274167166612578523852427019802460036852981040230237849404713629479910058492112376128157239752460742645753361827809748560315295435984671290700650078169845235367446605612460104479320679904860347507625308021375272156332429474996566318699226830449049566826286005075329757377416300632408733143280073073363841849083499767038678699131110744196829236736863740113068583366167351384817535344427411349342400592734237109913304573712532256608688747853927820438453977180061076806157354264244007771873368947663637125787660155077945515076830139448404846239419648893420915491291788387971340356311614981946069075573361377029366190609142467508082289224672426173502788992854364643974601252590502208872244364243184908093522690718867788262380123903939195357375915316959956074398512408868810982986149170382593058581806781152673171817667321703441086397510441915390085672282738080028854425242248286494052943270228988662566273184362146760988742909821749950412059321130931859445142488266843664662695847090254600372881355969346361823112303646813024908507914077416341099233876889553311182932039245757875010344017943144274634885402688619856818686816459704870598379594194520937923827691407298858638088036204108061609144102896651436061239523767151222157902119567557969485442079246278285217892802761344740562796282316563976586182400492180273223661915435703566497443313582521709430679273854533319468851685574647585565041197567450178684773767422463008069067367422448282920212917483776726105417375312651212999984025134423465796316011038914725571205196823147910084549819386571015800027757517709384552679491543727488729553939068359321378937982920675197923170762257000686364571388808824670618941306522924179253017348927552920428509939005708205854472058813726629796639030528752087148397778793452997689302236327897960271794326856809395206179057848769893117638433369935056031693409065610353287319633161364527809048810256925205654288468239532862288487391734428308817550511820260271622634078102563158312101599538295877245831490235884492449341378297346859517100432880016596217224422215255032623651506958322802250786973055535061210544712790949727025246238057358644147600912780446335032280675018632119299746669845087353607250104681217268685843715148244412331591268300867505847922879893268116308864155565157275052023551561532024434811931766874821550474629502639927090205817841027498904113263577629571413042985115747528569140027161690313300188816427908083034589864006071698116880021671584787034614859907269367124685411340760311321605136261599439045462868757079789306245335088445718475943890720574707324825468532676091926535283689141156940674821026035505578353300010547046141268492043093558482130916669769578644038283782309997343601887348442826484115613220828604754849438454494525883610473150231685302314130205008835206727104690042718345504377337787760349916691400786023402423036129281871942584401068269557685388637186400598922739797676242343993994513022053310172214731273777539818439842508537731898757287675015192250365615565436086598204983622791614681671992078252922302434518688653315184954160148340536007219335276630565346549559883017107468560839791531805017114962687810304881641519022203377805414412782332679227319399942242068098552827806897199746527389076727936829166991317247343408591088711439276412730094360997094143006028376368317868347566029300806174942671272208712947142170293586216792792830350750893748928210453837580276260511089926381209870384537305388794187671424474148119993252533748378359120979293681890733876848858963568134004050124245381331925448900735386938133811316525547846606961641778782514550680493459114737906822368404242871080005181335991791454680057614276576729102376125815905950104591251325857361378250815560185584927676927192851954014601006085973692880879351750385083434071645385306489288525706414422845351461027594149868811588507528689579317566757463987923607801094097067148373589932771347296559290395747793173433536984491907557635590732828695114216459760753449473299753558977247977775254249298841279344288668975278422966910601420098686720162150904754710719322864676273079514822360875779202584001903792366659901684262881528020552850152794793469165211209092205252187079270795181908415135880497129606747880290805406420716865758077371835081362931900914531085040764011739687240214438217746433633904244501531377524122199610063537308023239181571833586704805519091072171824763421998616138544322607722788204967150967266731778786635095416724397603228198991338711555447429824939277807088959301492691062190131405730705964414385359066076478656666270955305897478327853355253085497386763601483355555861394751097023353305610321906169004514914475693704001126101079348967130075183449643206779341877421261577154309020568909617158796689174172556222311144771978892539523437165419460423679554500890408425320055787057944462029660716846319610272232085323375751477549747875370938197823502942326193515622629113935260067722597347837495725837283799966804487452691171309704535365400451230643218873410250938263231971229383196674247658122978928098696692009759886146240260255101265877075066203534457854666330558558216442111361453408331430058725459092571827248830257351485582214007989040371093678899540600969996741184443334443878619256289636931637415099594731951472034530829361432320713677218949732374548542229177006193614706701213305679356911150912280457519653649816857761187185962288614472942837968984525828913552276593307309932125433572117389441720262451076191496335796718642604269912066199792115563527954412702253512491644868421260795187158484716155502038613165752732059207696228074187542783623213253681739916952168226793946734034065534327899791922477970947874470033487744017739319460651108534494211096429017406476026846380847473264170343769512290694064542441183487815167891285366381629070674845569512021077515868506917520811839729513281082995417559447730144198738711898918350730828993150992808455943910110916761499616879008913524335593788193276164205310045879861647372883451770817136884984643322899819781296257534744531320394829882850169766924633476130262271485211562902888487196992492070375505658187708546755526243934621633326386319468616309746285278078571068431150473624895211792767412504187398104523236746056134091017380729358631120643143391082716471668482869259046433027982291450579391858575252943343588523367565080648303173591592060302083097042805433535620749467112892355514325900752663518285168043914457670104651255500779026385454657945512784693418220320540581186186070499341714248569989004100523585209462359442636055243932980317986328619225301993342032815198064633806464648424700777083983629082717941172665653429860659521170034353854147166614904401122259795735958877649468739040418634026080308628735676293408636352674862446372793392494311082683193957295787902610424108085186879075169835309347273861469446420936557890233213891070889980817143561120622470330493212542715187975430827195270909073717880593932880768223425822427134196654736801271316182939980033537809009910577991087179208399177421099977364574892924210627549092936744958620171843009520264915988383133536306917108551219893018065739438313081647718998771240877243185628369344240827234065776277263676429963300704611535999871498557588615284349236556449683983997857789569096299645964749028490621893953620759990374358095769858679874550467075644635551130216459644957169457961219226023638271634512309169902433044367408941323102598981823944216230756500626327227467278958866610230726438530796874702343291389558111806435281600632937821147368740660338842447789807570859015272961484550658389512583393498418803055935977887491332609781544140524572923313280106997831503229983013143015502319378932161022817027367456193194511560902707333856920182788673628779962596997310931774954131259543172360619851904882166015767541016626185129429414919906035146908068054759427438357982362025216407641315839496548169328000234157434390194138507916464597031110482155590613004607458619956511326110395177035608526728480706020710869884748041435331792195326486657257471945883271458464129269268755986203199861435562399150156669292997965909032754867772807060393197292815228309271722245362133129395165663460686849144363254562848241219673480158112638214401562646748447103531768464569779245061904767479711611991592095669218188611187783690904002588625452744116649203815566456176892481996730701322717629480658398990483632328514562721610882210212104186313388082181616469401224912648644995500879613513119890560495248207169248897222594243451856358545323647566755098490547415138590662407742595192107887784290579252384575647340744568124649713109376907733291609395425637383335114513128780252710963687654692282753614005099097919939560079605275685183509032473402132005952024890973802796485059886134863189390141423679141563277840880983419912695798353297624592187468399018746999313564686402714734295244822525494143612608217760053547702714709884635403430523741945664404248935720690252575328693416600479309059287447330366969298644191279571732493920994102076366422942316212009374461939629225305258581296963072967032301117221334559528650711377165936324932465565080194291821935751939636279970150029631260059339378953010791084872999979774686879485370389239563147990535676517089198637029751769838507360288623418983676832010731983460878423179684183911044657742972446235280538170681148709688098893150230237914213889169300651899702629521740100466709407767048768504328156868315627533935204377498828417482683497081469028680389241718394369099935437945571630033702298741436708357088993711236015006929462137178106547932635183118535661562283979474982218707799831296880407941911273700639226313579864356916885354124194911924808107140037994802106392028808703307164189569037380971224108986976176680757946723644175586422237589063631386024092179767661354153117026779935069591981578189275568473252586014536620561628486277263652612319171616563714445312839771380117692682762357275002649785375112376309407112397129626858588271092345443610164014129449989056850690942168524712816427330267459260826885232206546430941294181503361082944241218072630486054711801913599534565465680907500159865817029083326781770277225686223814531536350662403607763778637246764809802864912555768142487209754826169552910598814862045568576396198896722960424803685762166067714525432721681986486905049743941937996113643515541698426725340570970729875347008862313350279812474009176326141393350729532486988343579203734692507899788396636533336729942585416001771283374274143595086881808008921140859813479286087846868379095718890552276025446846008306590824450979539384610591579688149427565256297327691427575173180693027033268434555987947066694787254005181186950780644946506299472331760400609519711566057776288052191883727822914788623939810603914740631395057718583080589711952689797719309262355138137877399471227906837503958887076726724880629341524879401341699107203560230204004274109169620568876596419658512546495232440408647334537683424199877428786656376939466650683747472914442540061829030950180458315945573967277112307061544586366415168312765838018602953737481562880535798952831073540502540270810171822616581095722104662334200880294287697295669071245314650615064335932972347667310240696595833941429708048423973567444370819720470132928029489215167991102320861884096960259787439775082553374065290969727710526532797780996896504633921206543705614060163416225217333018179950449159893202290184041002311827715354236747555278627882268408295713404130108408233048476844398786133406826164208889016085090098839468112594196742360820477569282080584128215403206130224117960133907872487730089264764770376047241070229348636234485365397306677867970480665047402397017549397991120760865028778173884923019796804394169273356732001118634241570015204328676538881860922575615844543623908298699072736904691856407431596251206020843368504498048206825956075246062397970569635093987109809081436919962181120709693338288329736825652096181954082194403297726222971581161286218633798635553830502313846051758192494160418893382831306688559442053822080558380070584467469271306965469407788704263559084603679012310763967479426050488660348574396478173610719651980046185703704238628785979203548032991116398282182477252522181113555324719287807244202350033164010492072726000297713697660404841721625691513991424933893639493936902837520843706433570469122739375526865038581482750694064570739222673708992586867760622789311469942274608003779776004775037403655854038602355832950824795545573610346781641598239040957587411290059819547737742254663812262659372770618502641447436278775109947857695164793041074295226532972453438013502863169144115823610613439809318897489376723595851183150417004294679744362260766417261370461720476865530802952152412731035477512244965469963434931749963089666891212585705444790401705988173811143748077292035676939016115165357864415926552321130387660111861737043589794230335177667398047431191321360373393891407721096410771035510301823465224452234318576144050543711363264504202807516367758526832486636587187676451109833364786468480274658478998462900828236167150039909000390097649435367129701612908100297582876047174688191814365177608723022321225182168945948832058447570872056074228357779189780578384374057529181899869796337667146695198262141745633882819546169096987004371285183705928780599756336268599432491428096649225522623839624184880647076543674562552546197757632913025335985086634325487302282026639544772433876307260983119519329996164873107326209979686357166936262244734171843702758115690568897889768700344834279187879783754217503268572715375405296940258106860430749516804154197927623101005028733008454052731680097202654765149290602899031312819941452923673241177547377089714540685904932899314977433774981180865662986572869584325453701032477545267050713023744280537881044116520994876267377087482351320787424942239922336725294735777493348979952958845326160108037068706444524369319141268970471555068478902981607530122829333834893638815868778087259570366788301928611745108265664281221002886632487370371834472764516860065072616927549934675799234404170739467439599713228823654401446010932867214054569574089712136105358514432143148673652794643205329274206521750490792562161595368942570416348146382388630556214685102069004226784039239549580475075517441090369212169551896673010038104481499912558355700288793543617759565814587093602250755623982072714081008286435527253164989127604204427772514870292396868340357902249280901149884168754724038538537358557815435286257130729640097150483384447067768649172862141593279573300687382896328081584694105081809357166627927564518844980470542963822184107854771315263939512754537378520143338218098315957486903674107706607809408340912770025082213434159832202064003789767269515030000798468254369710529517910211853312465438762011952057867308335423665105772099357276213952855515613691899478963506180290234891669428861434173810140707450061652179270040808860613680471826932986492919013185701776575362273904901381919085848508135312460186875165658664358712562960146472288163908501980545232353214339942596153435873083510525532360045038038382257287718917937892224452922187658288146146151927010592142261926797364667656715979232585992642910025824562803726873130309111061934906833693341915697968690314435513361305524982840294695326939975551930415630044857334438617337474706283956438266410031226349713617979323147611832502187858324934304838486222933698069024081706418265730113754118676870481031920829847676253151990833838026666822124948434397556694622159569528808025567802831175252100730837799496229757539344089569991451328305202829911443695320256230847199452605976186352984955392622314810747742594761582255246525419219698478526203724646978041516857290342856701453965328423911050984387251341607313854451662519020600400927570466596455653158081120122301204546731081412697806225638659833573579883706362408732623902242348339371428163476172476510377162599917298073384024243010068133011236309032979396291199545898574609821834809271530823960221326459352984980001144783568408284481725417936404202445578763663137691254378645612970816033823311922750565931486351190289942801252563875756766737157136054065313936159029462088692222799909792094298104767377650680050987739013598978199825768276397915421969129891423685908048164455428984106318941053529944246635340641783158982239016126542784617426062907550363863714358301002949532191988892994096572633017075429244066625928520495491352421369014310865015420877531086714057301255679446456758236857782143661589925559348402358869454430490865048621642635132207229537188399900608572157267313793180952289121560696089371684132512512154388698404027092867522971245921530714408312350127557415497631606725649695685951313879686931251746813515223784702711803865882681345559501714218633105075354038443142363914064778809466730153752592776666042183027182082962049856292287456088828349732130722266587212594658699045578403081545495729251334340303404088613295772996964984898310037004427231455136412620905095938675038970221173578169221542435906402586016144151804635459677325878852029665195785820243547236016802708621670698776774931097872395377540462705820338403697820922802876713266756280187585102008768646748851074889744962265907656535883986301206596568030380846790022820687013757559970287781822781251604239888850480739064515487447360371838513604494868814709975598460593926962960672324006454223723853613407267496741737880992222524761192822680766389472444631258166420476470943507930062904100557217361154282114821398400530253832546143925117356952568517322278072650945903040024862960442546091340727295857617177500815112499769196502013662736687934440007159075686869752512010139586510249685520640311414203701282665134076644109543180725183539856167248229700956656375270801554343640283034417091725781826375634157287487892472210040369331675340091348170301754682381055511701380013952145095028523601020157540432603650228175865929069227635680458095402293868583414038388593928887892193949422229788524326674707684730263189572737477231059006657596648183009097832852508383591979077861571054069245624392666896369966667011612520882631708071585846928823921266185059583616137964566225893521000401042671639776414929575013321020573859674629072832525439036283589302324461186578328260249196445016984636005933315210309782829887923945499603445703008936361570160777508200087215292337174735524206290972433491371878212427667229427094622618007295912139419152842423539190345862192735084553039703995820246385434696847359805963513308085267245658156200346551451348928346934823475712994413557306543534668870010813554746388278531898336361587650865454460373427996508867766550713753846222253629792070195019724984723530566404537374597383833984719861761387498697632527403436469847424844191268747595651908417598442189900140962264152793355395176507101394917395842281503619522700260987494384302347606780679091799567030933583687817643435087692081769028995617653415388353326868347811036081671564327294500196928532777437328493987467712451617757258331255259985756229087002750119614858835696287572788701381699335561859106433290765155798381255525410419258128129970459730915308851858730187275981157684769314979589465553411499778103799556366554673731641286358737075858427056916453347535640651942349143093071208646441581365347234799907765884127732369986788230707310424767114387223364243595821776337885618743451865980027303693150260991635210110287290728061296453608898070369274309775175613158083242118954605017216128468121210769979471986785821173268275791706065956910197711613624433317179994086467011229994480546942270901861662979126315017071918349145352291687339461066600759111756891110431167642782748651171271748211684816451315863025964101099641740576748454412263185153022764252327750108441317195938650606686897370626278902570622158951779034109140132884201094440457045348986691108271010186563277320463399026106905897757461876854098088946421212545411842167266184442544720583765742803290834285580458049656396984196537613188386686297924533748697052731553941033021661242144390355002023031863267128073868556096439311764434775397401937523983702336993885101985522718041197340587666702195292907974757000752303616054386061420854698653557915325525139035180367734166509763897682482106715829558838607212522818648319117011264416924551590160142406986681166400544660116866091157148394408974441192451209169429121425501257631067373722174491617455957248124917222169098899032643294780677689589599368032626534658373480522178471195011504533669380711735086238376245675869847294271698333170867464322149939369355705333534616257066704148986534579994276186339134171284308051180321474095694395703772953474948599398059542335005020776524798594566160425195749426652781811465135284830803548946358703540307422961474975918124094939407409148568436141338114564004681369568116136493377102810835820517364806815826183393328847816291171483266457951903488675778359363736453370389472764589294697372815966292763669783873668547815787933944456782327035774586045342398567603496006272184381363081051402661051769791595490366586245330725035090371047623872605548705593655049196471292138910681536187064711188304634422137772066856985594429253525212233056027783563095451831660620732099766376134453504916321563947813645517418570607470770267204671269157584602153327512463377842841003850606772763518655692523570582163280352467334463921412851368792197599728799699089596629290549740750516343821297967381660612953507256900059429992172745560523602689864517211771686069634357224983581320310646153209973854446862318372402369052537976101024308254138825475677195334575228898481799116047876803962417782607800206632664988056261881438140567157887282547574587047219027743452616788885651728835511451316695615749981427750298574576559054821983805363504611173618292334777138323513452889201217077405892248711486152612577093448647576769807579571724081219464677963041860602199545751228524386385427389403538101546594050255741115465591355031663858221018005933336605807877386746547083486247130129601804968299972049923214602992251545175975444275995707691076272903935318852707134761977846703249974826898711768782977206137974886567512815059825842292406951512167539709924812812733978172824913322556654740500266611370126124152278321080726491991270794348189434625432194136802953098023557203552816175622355346772999059685857744196898264845769381826095835674684010346548230416927980274066276938026144737212317241429493729346198185542981763018240594382627695339436332130459708227097501303497779796925656000653179942708871741782781566271125286666741200663129481842499548224504366734546218638957040022094829952069292916679046342676419161875346216220730604484826211443211103980358540204027799637948363856601181667189356950227538194053729773217278496615534321172680291521900320908648807856615287094841693777535722584045608020108599640136288759480597058108870863455850816385703596211417509612844170423268049506012063364018589541119214965193939945988363084099946456536039694566143761366568782120935428883215378162367104726228771113679476970052421763226359279197372611625733292940691240423440436954039063636469468630346598517592403542237138864363911707195966362732364987384476796642853437962319494191954757708884515104008554301370597811783397796608384909641332239959794447508985063282620766474894797824907104897175679725620179212509810063628580232334128425455757818403506074701088617374992361625278859203946168587444074268408036276044163848886390632871114556459007891984017163583033695558969561809563107113729735791016746806830839737928621193719760467334410448234480548114904017925891435892769626099103209818717677193536042731927301505296008520433197763902717783009845931110379241402795872250917533540147216890793736091059534731109848691826619089384279469344729937183071038333691698504451646083860054369823591128768679169694515693917925798776089720256537335147731413157234787467053696235497146598436731738488385914825449141329684609251688366954475484369795990810496073129530789074333684076478927704795148053246088582587922158324341767021845308912539000112162676538689958076275656743957005382062620006796164744701603134928218589497712143844988531110231478326739399539293170783706496991066979200059546730738348859963496034970369932815412991879306163837641173228441459769840249186059885408126283999592871587973198370674814494723549338876247261126688652818477561885782717803197765126908033088291784042790053262881642732389046646274470759185550646406710617347692508368593056427714532396231499548411972763750192704498578396987810432414763626731886063000343167737357872191833599232491648172138772158971393343127121812500032022863589229514886922394482575997069626229088385123852535458824204953789228650706634207991302909730527687595531218972340580966778590112854678561161299074168192447366334923063873847309557448578277128622499549150853528791677828509742884352792596717605278351789006025452738777129431974988620034533715760343289531631918601068628579114708769969113749463863719405119300560053130784099845388157890122270299878379287318641958735600549447713789866596873933675952481010246326316836110340094033472404577063460749060672329842346424588582650383010450410381941863336327557646911020001037044485684532995958779032489832320661495973081242206698805365481684597556154118126131026831442154313471704587305519238814992958814540637460152276070265822671889982570299398468271941764438565243329314318664458942913388043347719138452065541079648700412274225390028715524461079934762713209920889055351690360938101961354024608966871628644563149734619175168100527447611450516908363733863456730321362310976892928071061568380644418628420261010507504620009198117199367641995604426047938186704602512413929726198366062744115283223536945854360791511750931489042636393272081006378378553753547517468201330733884307945905025837598248201997735133702785256785827288754276342694813824793451556984319024810943885401727959531324575644988340396379374528860140456595493840154974074286515704349026168115471564972935902596935197482469708009138521132605898757386403915438994050873388045548627516806800912173609263619411728643645596803714266397524452563458138490874762429026330862841804683003703959941634744105421688179136845342187076533296086430365969928951436826732228676537306198818586618391260610024328078638767071649534514696014755890883482672635607181257853197730785091777916947977036454173495922804427515302687857571020342541735086912361338241233503079930909777839169480364518839323506819969678759139921472897222293215088450628166244123795513024534852431083577964085039446354716791644405278958485432732576111107250507780662265035391711420044448988964028483451052137862622931054224581125892300442606281102354902198917142099235809206300192657815077166229023317906956471085567373233922339247682079521712979780565456584178189803026850793171664219972031152104364704516289827360195324456916422371776188207876217214741521208821335095022773065609554002582897820330512247340036776117237383448304733296325857711187372410911914080258605707432615437958145811929579388906021047244608090317761978534140153046694377146842192025301707465461728385121580458061925235589514250794804485679611418420197360375336344248669089057702815298404686471041900459965407023325796902017038767565400550801514911678036844481116534861412877178872528867837622521855192012016190974864848807401835342560749016414843260748670026828218285431049057355225031442251931751135276470563225082975027324804936853865052882554502284332901988656954261560121780317417264924955809299195121368401728194512701774744558009904400270502320194961575688561100100548740963009513080970974548655451802124007370530257385997450384508057941173081547993538674789827584397885071969896277187867307159125428661851994014714051447492799516378685061946313314399405528388019418590626144200131231033504150116201194555305036049320698978657714409166910028456030028411378312488617367984519783680863816304754043828191683031726728896136185545677631951199494384731990911152928613407598078918070326712885915221707136463925634254945410774463295744754412114643921275218243895040478547104409092622464423007402336742810807678191788605486187437516908898712268475038614282545710748697594449451447117013827506991269023380534919223520872576167149934549838072280973660666084273921386711090361411509324865878786561649498557090963639864885517698273088623617207310363572234867411848707643338889173035660373272020720623507248204126729489763432844152031384612478621219821822116425780901737336898396278578132709497247260921125709017377817520160904877276666143218524744930245713965384818433750481319181833318204266977034707287441481592991582345146910003010973013236402651651134146478198290350354805461780581992073685456281922170435304379716157334105214601242734271565691107713522311143445347380780294920749739129921322351424811723316636104393968993416494730480223530157391108080579672116474493735123836535235485436471181755672536983474036858292768197716478470652643546437025447883778838065722528449350991613673991410807350163576912796939210758905565698413191343611105057504086300598729779958405841604917397266424001061352588050077635315938621980184381489376055748256892257426544427208798032241568108273491132562303815825778071940401353894374114664574358473632228244891165628211029038143003090276953306508501012583144354011530512199644948845879916715349122078017299685114034559170149003555170266931174563421235834739370050336446716929754192031857607639149639030743820667736572935835902181142361381106485907467424068272693077214725450026333328694438941468939687769775554126899966187986646856095158704125920952533087780220614866424062856300247769711133762122143156949519301309696102274680585877583074972593496048863714362719199605756620357646864293978634111872117632213936026609942908733450832568954106550646490087440918005690666482966581899063667276796609631498719562469140075082869361802313524302495714365044497138576119915409475114558933647887493230010034788752171205576864947145051616308361665113288746687703734599723494001187508882496780862028208039315202194977394478217334730287183139262789659598428496378790690549844614121211234908365061490481660068717280713935983189759739488183346526320658734292915425812720208824863915343907749333744118183514693524906671079182590829636942278729016504064847567461384864402641331091405264785706754914604324147264352957928649771762645599530125529396925471871670750466063449988559280156233211180543356745163961779753442273304425033824928051475412440999286126395580692950231549560429198929540415993487925834126510938714915499999906641633878872867812618866873582463063304340867475619430966135048301910176553963031988607846950714727687014124260608937772327117821637255155729973777584982916801587746026351477362500241667678296657567270259393063585223288036866845843470191258269114024475582562743325849169964622668774382493285904858539535023476863551405445922726537490163064386157374771496373150783353917720599833921912245328647233122423669426177392767726249537300966726332435611468484783615865245184317876964526817372805263643989727012205623085563464236913535689667736386264814134919718593391474851954467715979708132842636503303976308300456963171454029896838975067098435141451988436223032814299360448868024238424458833843983852964200424025936222964373478063281017915059853485336597528981905818403423729682481223441554151132645536188230854189451121581491459842060631962943350204280146998805696474284709835749128983603619846166070071756085223410478696873656071209900568122044056141730902233013090462266912755303783546239392820642663408433315794882948315764485180487222110549449123421575753216341564649432209551366809206139455581274008484541249148122338632019212264953337896761836142836355073792302862890384503855173892470879376690173931959306430766532337324766841965070332262137749111381480158231548862186435535630616661356268905744532600218314130948507641105167925036858507995815649150526107863003379374624537144078917324538716823567148984619855880365629240965990977309662789366699576393372218894901140164257610106643160986018326458480910622817442949823875129450372620429768560636294871731924326390506248687710907467130033230150095447601432524090692256079896337218456698345264638556268940657883848659249850074826892249668368557489796590068003207570293626631036405813918453075737758142229249712528730876551126564107502890464752047329089775529948382321380798691463614478545086140567057910039923486230986226953412953494958920370492157100397211302165490561607462384664041140653567893041654173080204689406342299627827980625998485846526542813110248200923207472742829007688615523483427394162194587324340258242515519492346811324392246924181100374789676574352114911635678111576014072711457904521569658486847317789170566149576816720853808684045551695401071496840779923628735364023599227794551686487905609154708329134429588287253720026731817727322714835749693920712379275542102769527729291865431672913958819591073564190721685329306214597859727144149258919901814997996322386583491738627742952803322981091488858120786446636770513713537917217885186823292110139965561639576668274473687927889045299271132020882645893787761416841926801523751572398085189313863581755209808145978740287169220383173300172772003436965331038459302535545497321660481299807988896797994938496716557208632859412808198491171303048353058283912037306944395439129686247247900801529576452485732582421089721751299705349028891857068443965673492700480249107954122982095370821245136230596640039169893518465346932225324734579777971589901014522298268418165888767022373939507484887594094781416227550671836011092212763858159254328967188333048909231709652366188403284108311025894516992867640731488889528203170850206026649731119105114256840296713872374027933839625877955372737994811187826586564556062624228945200702494591099176487433485691288252430615883145584657287529032887609922674667882811620559636538819070742237650201121878597203927691342259372173675051997386015270499490232704599557441677328323164225410951170006792393422904875337343383457845117500011997676221708260086178503977927603907304443587711425366108409556406077017607368459609729287403419277567525705783317934236246214399469111160538310848669986640400744748937054019769150598808563571522284569120598931814218832666570845751054830849249438736133424197975269708027406584483340526464890939277525827174532188520481626196611455796987296134366682955143739002290214370079387640971678472479260868404008500320983211840731296024824814876838553562739035992262049414429816917565305511819816404940574863863609809821543127970955396338722520418385330881154129250332710983951163521864591134778463826121980318275024379854389161798593732723067557493986554749964815104381363463914428898893308954905762283210068295057768039408233756020949964355210432359136191510913385082146072141900275742833154819480803211482876686043116415618768964284911369581300987499250277612832091800777295742232292438357212816137388449633771289909907121784202427067660891498618222388853282686209665808193214941475855941862381835011178595868167811173815856457007383998367264213984284760722084110437339279145026901840009047327586858161480184108098220630032752631514180099448741632323970066156019869833453436196559967409744345906768717072802639447021715519915969698764864697592816318276323603893138485672671067709318189259184755839055385598203638562113451727986625361354749177702381979076230296140946765907435051220234453763760034761063830212980589329223093199017776195472818178700001936595518183101631234182791608744788537915026518046323600004986964617256423757621737975388916388264332710127590557461928815346071489922605163657022787791393517501556991121064257920869619520287758169185070009418900064282014485737770387510845889306459191915222489371135712066531101352676854788948031637343623529177860175323958397146488026828422752688904237789731309534825154332678625125922354176169703676937702795145279634429184803073427209261152417398848757650989679200103910006664653396260183709112637054462824653253623275643091793114432179591867470414007157225938266442064771739519047080580826338889186652342482487419057049729630359119695189725034471612960446506217531705827217377866088428024572616605768748583203311428533381747346298466580309217365988285525090461876171599895471250400524240581451404778723530748301082319838526782884735013227653907536540600075636136409232478668261144457883716731556742923043365926174532447431018885906215459800603944171319653803997457787772901672396377054205327899046190634404351960652843278243767421756669750116506359501183650561266199334371319488248372483839793179664730715183299568322427738561215290206580807252526001253459414806151716163948093419874638748329775766948800646347098643963350259220648054883710077372586565874598098648339876019905177842214964256149747926124367432378524579583333374132180626506666484376845628218903068069054695684269893614318292119264175898185596086492713421475240310317699999060698664232571472480713152494276117573703324249473308847001826419479179654596137961414733329967402120542837727044012139424642108700048086427553944021665526842884623709230326593176273153806097213603707769746186401237002637500170151126715517125899336616436472452470129758792705158718550787355446229666880450791591895675777394942110371950141493105667379456509915081915325934026192653641260799711490442454579846991110906351958965128898581938804598496310396193642449005922307726435226438334793042137961866647533552019228769639255751960389331889479087371889929143648191356343167277660265712034584848851630541624225905537519283460307321728768554632378127351916970806836797130930556078573217338879471258369252241477402340315882940859564779251436057019270612873616301204365826514272597256080577571144902437458833750539971870523777237183974299561681549832988160970956399427238290332380198201494279798674542630412479070946438222447481257015562831576149289886092552635903418885876524032670336721433245097672791891429200215689571073496584502750717745172994884968030307810288877023825300035291140305070749222487794966337202825676421358885540469738506010094431765845566945295312297804119107649825191894932991113030097317162713537837684267553590237514463210412835820367858011950397151613042975226957579970857666308259722867666578799420719646240805577152541724775816780215082360606289266218331163044156428388584523814808575669099257362800212381216127953730429698630139771603162784211257980940427100242752429883489642659219297202556445770688592017674591273083689455581819021237003066924333417323685617977458978184505846256899132572382289033695289773732676394175751565985300229498255324216432473098220364107436894961548570113779089554836316031125474575215984411852901799431311047586372933113728593011619348970238388239431882867828035491604715417730567731074208090986268559181750072035434629629272421612014907172053607728528337232627949500594875307415857592169745890536490510045532227029589120007535580456941948393608537503318050944968278332057574942951508419556440109298009033094339479571760080599704057648708896934465611226983271166921103195760182728928101729504740520695193798949448969058272524635444412092058828248484317806595210395308936825679079773685092106338147320879936699765825753824125118040276262091983564223180249749732860383767723356841847461436920959941874295559490403154494802784514129681022734410934007524843913762304566815531655233510375239291260983231002307222204600551905001843018513864682793198098963598895920344497167880194953645706566524342076634641921100517026285726710142751363155501882832566027840789449159525836763151734643266383366406493064717759815845158003998605077260546287148751587627985756831005014677654828939028503292016528324858969374078147286770742701683662446233757328723778236468934423085307330350845934945222360536731397880984881479416960623226162557679804953057259269658725335170880991324198495894638375851073994452174732901752581339893064867006646776037628898999947883319808709521582856548501223245527323379479637748061946675921197547434401217800950183487005007816200068822117875228753652214819885106688257841102186224413652575919590216933165370407475491658669309055006430688090872769875378269674169664991042896540900365427739413464485254002688402981741916677080301728683117862573209801797936090818010562683593772227845190310527125231180516525695000688228161222635076977670892646807147294805216245690382011140313144399947050250021410144346669413859133966445892921229821648146632992225111909842316326538059081417268481189871059807843751801269795602223702486147335110735063162517852564531901693705384690646363926847457134559847789181832694393302192318211317015615838897842132398098440761519886312369284326501861792548081729369141912366735566567992924435329698368427455570209056137661199943116747955684220335568683763181874390672320433967942081598047658119905135680034702533111802543315024100953286556573407016520279783606692369254717132973476514310816562484303225810560461380709304357557264378417693959644458483810068299334410794291362436686287893431564198191275924466738920203011582100695055208114073050598979692524959318814761947971050845941315695323590575342874741115711575934879491516461856657517432327918375922313798364895646603523755765430093132164377694056651023562311095268943680778753119690493894295632537408170101105759270855755462773229472661999583351873154552371705086578119540312012607114330779295572425367647147538742608535343659695735213568929725078132088333455183329450418778775453829129278002576067735979617895900620267636050429267871276145566619428966844419267676256959840981728043537989830208773089624894699997989904866253682581372416953783139567708302592223272256077320995212684959232093140089360668501044719942562167837200390752393678714693097986559122634351545925514140801576484445122378344399855951780218028497397538312308486744093509420809184713046982611574471545776971103742438602172948077802654767094645297180150402174887241863908121936165942162030046330647371855261156717108231052514016316839473515867328947526920331805845151856346086616805579357746977345557317624555649947032976517608810167331286013399501548770691598889670025289950948577977899701474963457984413506803490402596449394984614913874833271917875152954140935791513497482364762273022079675098530586878247538375967978362162653461116054270453436170731060942833242293276209849132864019965502854686363642448497803684392708805693320151987392543116905136557824967248714064050725982411255054249426658343451619196360721719831676470521522282739310900125273471313434012961420567823719918149889234934931179463007874938271564603338985673497517705928110656900073154557806947908103567608512567260206379339266572493752918844658072790826955982369296545499913316645778208904473118036905011926053792839652610904786012279944531172327952393675116663280173377098513922157811512423836056310149874254036382608092563289243298728102031233811485190905390414959967365278118420444090954072066161164228278532349746710051543146649630709822267609970901924734528045672136501567523902118697317273177657715714424049555048145489205737414692840641475402291624478991151220556060512503869238527927147573100544681139868387910982234513366312782418589653638950462073908932739258756370584800892711046803147269889925750443132629591079961033014286921992267285220884444998207294686729816884716156777125086118284928867160075912827126512315978130274176421782489316512619460779172462801114538698839735543797464507542138570893158334208215406223565844670561159600942407309768937594565431782156323883865859802579056417639954025688251889231060207458736601790150290544527034471627857698045667109652440503958762088907431753420442400132153367635788867019049669438493021170270279305812462894867773504134928555553510539242681544883347584366079133848354789408238984541552220121165755007811816557415753707136266676340677682750302525118420611327506227242067185803911057925794527789263018068144043550742553851383143994686398626619900983781939304436052489322266353692291176548492906996958818399443645945466284137426542783571729722402097854475851656263211765296124919332511820181944392917931995341296044704574029234012381915832471370097593967354071684049700706433837547990298709937954509020464563614912202305485678252718925886225960686913950255951253309850552634992482425063227445996156851089769536260296959336849775687707069314052217230703758039295049370194079817738428748670129932321671583706850965239896708043739990011608545575190954325451375387615979407650184120182253737779939017113593214806001865760889523593285961630552392676122986662222839411851134755262624138508752042799125458595540198546204977825046784023895468669181719662406589122819635028507121998938965877084089910993328009864486006405327540684818189325184537584863925537361553156407503192625098339798144910257078805017132757856468770739692483072602420452305953737874846057739309707916784020826589091621804665625865946420292321257090744790281382538829684192523073109155108658185683461843214043798414721567851566454952860486851296295123315669092070885190225577952190346622657932719440803985489860872388214301961053168274408788699030137321784224197289881490591121902310126020307269936987283958596071121032366207302845281079665025019361192277768516391472707759181725962510908300455806049539586466877995285972146229876727745979628557198086115120842305186868959682702102325100092898409435472765942127289732299710507135623108103538730697160088524302263059065936839770193920488110492235707862905143213980560230716048477269187373578444056306372050415893972224281050520716420448090700033488488866993393192177723306824583877842589539255579059262730826381970256234096450914976200231244423405267590287361776873748006348946211152414449122625112932372691007445740066165890287098431278059982278826705480790583328749946186284015400310759019086733809439836760685727991717008159598915578589895979189320210562211880739252234057246059976549272290825810698684631872526370508621860308431640883224832919139424680639195030034089193592580455990902820122760782317833789124595650759500175313083139154625783302883011200571950467374029100040799367347684047828867108118316064997982580261375689807990572806720471979359800868463168645744292828508880284441543096784607957296011181680688676678494090941666738333581166358986258375602885467395915178841731922187795929252030248127891338488564508020322620105174766187251815869907844436873805562804585266322944307033289428604564112500041309903030869064936436782604020710596695429354785442644144723316929187274210730575159124766617932806445683610233332660221111539063233919799368444472862295082825713591241796899928385345245556645984808156528446912342376478678065470163835131879181341347508887762534807811003206413592366699331566357250657005041784491239677946901673500280594313469926176355575992394706534239505323300387639878768357580009729532019773106496090996781632470409023599237163154978591808656603215437171296910938429666711635845276985035648091436544404783213774907244468478489800416760344645933291442661227964607808721061192287337284278323129589643047007899331036265640781234147187503930014097233921491517725447211430620444746715793672141474478198948148427104572474907462730206280166602374253002200454105951465384789267993633337199462865526975965092286861117868007771462929144909263583666201272454696099704506536019225554772555754831863292008174382108306784827832494781690938744127284163166389510262441031152981491703050864052534251527500817992413502733235221864356884781875050909717773599693451738524883034780979986004822149285552021247990829123243662752443110763865692845112481703350272171327242527919667306406781779085819074629069294743658130421815154544772894770300991006738048160877380200848079911411673042223261885844766110999268545536110380478463504876848803414729710108461355456726275014791482254596225676948957302983950960697876549359192860298690041666502879473544727422467118011149167081898778737879615297170718980446601113024363834743787344463482805392414741689787397860855288584884169057990355129472401640144701949790859269730231833087832319200980801406572248456343516954757050963744420367532362687938598734873624429350613382339567479417256660468572648244033885602089959210526240431362778159951557185653252082866178232306837173718105044742895932594255931298392111311653511059187148127016445338330991285986394294878811982753578606789288442366914444764164294539543995962471207115903422675788391616685430910439478598473650006477624832476248166452259914972660889771523807461623504305178516018939145081217633952428342428183036733246507924902064370578782554606765533456977042826163887715416106910297895178404660198105895414397118276782433393828932572630752577856984131387728804089152926644665441327171589559938073583251481056537857787190958520997458918806328871729647009107896757894727750485869734180814031146965050101719504756497340147185984865686973468874382148352111427937495241551199780952152524541988226134831118949614789383737007166931664435450682058577632816280861757975669672929766649209635597737265221850550641135197003990503613511707992408401379331052538922659309807267693595179225062148417326068178886488394732792420051512938337032178069010520739295259449434123996449582945946387629236769029538927836887835518258194465704008422002454588745818477000942041598971851834639527564332258686191707764862770320626141860677893168725061552360958202419891576178799626392386346519195953927105252058645293461172851658825072659074679829021188373324059365520957391317086002878438757530892044789228402362842325312430182840258280261340752367562593101377098261555025460713506129837065266464287759600214423245707367332365862834893812028540109210008426346741868998750048377603499810934072267742801892375941978246312392732318251579763999135432840755399599564819660662832610084230716734696685959737043001519607542937405466283009227415367419305776520916261031137410634496020214344934066427836744015369944665420858969734901480445996829630649681985596269730101658374710974553970326176205463147950065704849433112281980154065141760003770232151703969610652345181477489167084254376456430030125907897580966339229380025849576564812763627134965408545758827957518907696202386192101620410044088470363682903005052290437985006420011491692117909422394226642172430434386267482047845626314170339614507090221693189049956615392083639935030129748639516540933409796930806180986369371102715518538821153705211684674627957314623405529539640909905062673298404542566584625226492292162960295266688001481491384115696709808635909204026292156859983049561904411793588895220355005490247360424859709992774669243261462615620045102968978569363226711334243271089273044689670924890392615246663964073326561184455392959778896775801173209165768743229100701771750936877146989499379183114107133942960565444524635039369399749910491182234813077236904222637171142509905156990066024835722346674515043131167579027445159161415738748300464488948514266058498335580730333840395532356218292143953047265058043386814245742703563277678246836453380059085924952808828789814314288553433538996139923054390082969100346879955603937881235095519012751872461765877996139805976844189699483746520218031837196419547002903684187380308638771138413886632892846922238894041255642411643488069381309331006474793382056985224351846555822092967017572113026526871832830057237652559501665348550376608193409279302956928401068615185697518647060413258297200965283360422943751190616952141206997335534945385797238816069125274750399281355081032273872024254800826390205067760200643983904062346765279163314950672613100567787898951362516458200991137501780548021444022819253156924001395502922558316274863540602144095097771264550950266143670365314041931373811794678969878679461156421947875238910480603741769741794024176191652071592421552622490275214349812188584296283131897195815288757544247181034183219605684142741847860647480397586436416655687322059292986472374993433821415226562593522424099768842616775873129239780134639694312564490865344602459352436205236523329510794020752399198742014914115030134608163792032704262534874459016035645033170179873459093003259038617436472752153785074300974294811910393904724763522901129018238117357274075986748367109739284975880816306033662934750781117670854807875482764304862807645856873609466075223617667058779786358610212313574035868760200807758034159104198476086353280013118474293222270836111004444021896091494496131041987034435839439112787368074839954544374124103075961676766427486467403034438437047951562797915787281615102467342610601758160706599882580834004116514204840022535169181639991478020016920085933992078259865057692499932568053333811601403723414948531944733308289171398887260478875086398005282269460593348354079554291910847441137690581431429362198780580108298188934083511069306042862189103882760693116506497246591892713009715546709705821477432773779239125363605103118337327455383430411210602175987347755781836189254085315070002575838465139649594490869001708160288337076204130796834896818386242686929269442070878371858544535263966802644627038372917777266122585612951967466749922524536788779804299613809141811239058083508573250384593071378590473863606778852094334447494608882360371757503557328537579041978462085973346250250420311442807149803136823784419240995735254365375484010537814744765973426702746600390705822962976944108660919711733909714041852334052564267333495688590175725597670514873343030320529880661076643212415217474233749534311178523359701738539311004425526956571273605910923652210432206355308182818871689552604645286098413508307615430915012953636414931846352671142539497654082290392588397594937259786227363261339911226244596727386153449183223831458741822566431622939064378764708326130316034616430014345505854392740384346940048747483791522316188632937400934104915743477100492841254034059730551180121122137079922407058118609723777711716214851161575692580074250798420764865923386604913578641631195675770605086858572886049625871172130341905737229329787215433850408856703334671830206622284129676409480975212858755858722366209177743200818924142501420728182078394255696275235815159968443642173752695048889117970390850381373838273094981886490704460024051669024841104893773149806598892402988630979313902076585067753401270073501354957273571708436465503846420615702709772497178475268072533928872036850982517570345259482075928710535513339608214254492202012150685241588220287553701016529012835042693566775196565742834114711869932601203680906882977099995532314531883856588485980335920187080658827090802705738092587070153671540822239569669755747978610064508793688721443824134316610618868188390256147790780202809261047899026095912625019440012676932622538343981500807063358296296512567767112225960027885270732372242945170572227185675704130856503385077320886701158644871027689737326898889675821796637880677623534595978947847851736226994699199184158320770196530355766023334844995007199629430122589494303355028690306783397041780287390816068810533017256979620112567785249054800610471535538173613729056576255307615572193456347910209526585016491641486831867033124995477309665818350769537000065381324076554603193131778147018350884113253252402037993078353834443747669501497518507834997868831899729173073734337297138465929567902074108053665061079668157460874564677823022410049359996758124296109652168008244601778941226491343091927506061542681310873701917302687328824482895197806288141297115179376123129909895653435469849778509054225555163228929777694266901607844303352316486506985072645839252268245168661622135927202782243231926345653278827103155386765744719004031641318643859388909192225274931226842262363837086913092853797817817520191762380776608861033934047828972939085425117218976653941642042996629089643037319830105781998535850496228582381167667373860082035982148399242736323696511713537254810245579676303036173075324441804752818739413852584616547960364697577946354222187714531163068048955944398109520856975939790998084324839369725952136824652898804395295548409454448679370568060764161526579299628322086102251179932078327170880221171222785309618934736006511926781526860538238435295876306349112199810755527783599906537022524971757977739117299198338896630699273687620473707300639820241015967127796523102354213510721837372178006178426412324840301225590725380963864493299570621545340540556111292287609736352668441476725519274201824531709042440520577492302517467810102313403840680627648533745921459780056835170493902947960930770726896861128639743055942278981742069274280684353182351612607616690937138965612242286402274476221886353734003005689309310352412257054608875957182540040542819416158644900392223944088375566118258159212649811758558086882382750255479529123119658646460733175432044197305647362217953572397729900651053025656434230974508515599209063565392476590109074262116832704339157253204429073225552826976416846212839547717448523554172429814546007419458181123435139383576346490206161018512328442961261387530150182329052218665156604564720121038478598529775969609646369254411330111879155384226922317063454270520446596213241146083196419232768942654146751065101895948789865333989188420984686039575847574972109005246954396720529159164660905049097421948750776793207704974098376898908298601582544521742679613902529759211199999376315872320567683785324717840768116085807621215800637053207590645128327435896792531880494506779937526764100169343369215559916841378145728148401406885281946311339336104642067925749330866990184061645502024533420049651399623520747424414527940930223603935943025843123302281887987395023351929121301330809572186890144788409542425249999047616608567653284870019595486593126367491999792726777899596062481978954229243557506018913528153949347148365793663011944701672758000984542253960494722902604405906849505488278677997859887691019700457391358005262197123716862379987317938246991465585712145076630208363487862230485880620071036818101249496286656458600325930204900057837744975742487484083865140468164428245924189607879420634115820436244374998046497427016503808168041243510199402145702202973397305758209930836348155952931345521206365165742218232682826955589690728562170494856132669351664169588322673088103988756064272407039250413316296539566437895620488057883337173066209333417186910789410333731661732798924733303644173876875104132299630117763924751116761791147887911689245184527694401954390856327238816548454231821194962438568373728587023600401628870474263333759013768882654786830463488826506377637901167099630558885954195223050440893220138780940121407343056192371617691667957905877693699255207190344512423733647349189062129165913360805884554584773536684390973303734636959299682332654155595129248778174876956786305579529508193860264296772627683905163921363409692771396475219324793661620034850487139994095321947986721164017324310937088447885669125866396776020015636793764529966455892086515441086500208879525027001049102436301579244201677917339712059083968646975678585424198608822128573487351236403269757517580566721085528900357258208176668807695565909532082269235337416240707798712475070507879878422208516121156226565175315669649381974294300855725088198952075032569899500460494886812357658351293564960542683606733647386990983206199589866591260571525871330652542587256562693741537751761524840864122747578625838257023206297677108083757671732572729545550127981215825934893082651268596149355224912307515750955847006907695216107499173587066289115684331991777901574143486608121714719905332269026177555839944528907907894916463562339814213922585969693007118805003672769637148882355764180336340285322568114480152690391343573078446052550781064063769358343272274361150417572987321799885275711843657524400851294429790680096551307800047573908943417241072063354770205939741224068331819110410867185618575234747378129233290314620611827889619849573359093835757460788156277245606714880800703781257045077721718081817664349196337433664940736996851975531908963924662070490063488554616591120593678338171747188416336066902072274090168704951662471170277017280831003621562725419754904692733440308999570986844529304439172149905199120886903010328665069254281608676030279864966243996367381755706613185688320018034030985522633067663669870614930748391077227834051546135725232440956576867967129360306930005159039856480312290089288153054124082272788161192628966836632282330009412455868587532751723752635587209442371251178638159076056566908852344043333595343462035271288360480459588621253734674448116124718468279191979977400776086373669591522082692086597056927452940184804317186353590762502760045864002391137970847850929916947489515384833591730874242923701949552173544841941511205532775164574571767768065373927659340808318785742762129117249004188634578518929583925343195195030511701629119475526127464326137640038169837936005425597587295761622979560514291435022231255203928409077023855596599199849076761026212494614423716937952068396261454085051361410216552930136307266151701428800335921048959483473942069754517472065888257007350490103373730940099758316173552271628683709159040887782609390530275373055728243200028261920862063915093292089270745557523393198543433925980662393895673588809627723752686549030023423513404352975094243052715004346783262040541831715929843942108509724842406042907450613566113917688469187178635470563213345970077681805308608079064991855509351123783608536703672175694075034815469369686529267085835941231819323269068793223967191238392426848115139927666327232744185130901410696616211102627872536444616070900240665057812915343908220144390079339615573228314031005305637274419327824522604230959318906745551675802255626163758929578902111324890846727409665274681251001656638313541776652625194813070567259513931699844880502323721455658397471707219870866063151912438077683455612044702808907650029032881741303382715811271302798353751069043771642127538252091761485251558951176237229686433470266875666182333123113943057219283428995700483561957185348506926747165521390242512702906028070199541112851771226323916781373518444578721428989399600713617688556807184324893825042401717242652698599204019082251121093102296327131923143474282671701767199049700008747899766232514103679392824701088551448341557213855410850702323714668997328831450610527744677834790280070642909582991073244981812132094324601342616540546170824533925445163486109386225145073796726024758361515301368061006509852819664429715658048389707814543182804970257391659498987913714913993669447951282703083398913877063914441486097176490928729994673630939980012280650078666315680874547517604126658224668160044248931881884156665638313686713306909211641108463205667295812955027489696063819405577276296136387878105555812420963840571810245003886421341363286923258557462771805499347363806305981300880920885140150985719860697480169317957285253060795755688635166609870127645965720475977187263235862713449040748569745432225075281961113980437686892671347155900958937510356435406348581606042924309584256076597789752663438878348654988604032631095699279723330969351405283277669519779747225202625020172810098339219650556256740241167822166157903065281988810295830889034946195909315771230227308922904903801070240837355385299810374334073088119486038464541018658340725363761289588828840582434401490146950229767142372867333261945220403716317596382545286171614930290914634118339910660187859469866101651214630747173640248192762386792747440056305285569543633478813228794685952329502871488482721286904743255954638709941262956556416931716020575273648005908767240653469778195150993449008727782098085271449777541994274321996403838626974746159653994969188582963235275732002192537272255261911925108866667423411863448506064697367256251385886676313544680124698992319496805634889426927891654050594883388148893303084873575088784419430693251453038396892579368189300593482360804521477934182585625288598812997504941303039313456762286255855288646071212094078746120219988972124751670427923661623029623933849513642147206328920792466074825636655984357365914440756557967181044434055147698986380620528982146836083923502053719637826321838001957894957175199989254918519435973434690598055373164395978439621859597353533762540972423623024764749266344916267388030289254558730459271120548227909928902603015511269783013391531018133784707770438722211225619531621746626400761295791306003783906010069115425134784073783498699225351676201231151281877610837546255057070319148668624169793304748874484831062762354172592631815554582376109643173320968463579649440214941360835809409108568791694394427099198797804009736651838149331015212673068469978601139479985639524066150203814705936605118385054891870915970174578655635161743328967377899607731140918118128568316286017799874440058073835380806611195711441797045209426646694094141906507798238262964721393882424894492487843202711838653557091358433387949017694749563887809691816107484843032610347116006481087482921553307360241889708823447693848136391025078993090013508861681182152023368882478989646347603608309263453464643820171630583685864983745496693467074780909439130769191510244466929901346008595380644713784892339742022392510231599182931450274693741747369861645279411334220800998749623602825482410372430370713281818941220096765021740964605804021974298252985912647334505005894057907124946866096281641856738427907035897603399368789768164560194458649167002292893411692798091347977956138866104744440447833469292862437370911937393432354329798324719250589081718895363241288040410962447865678064069834225589280729960807298410242805600679942405098712131830725301031490748253129979503931345198689903843650151711029635053864260328921033852787315597148054506538437472034523737934294659389505380473834246657810597823027479730988659022698568441858556442008990632146756872883993519666338916332953184715002118138816237546715168842668569423781369100676091716377091281420069879349272145126005600899333834281563729135357797237313271339710514408670950612690904365594789421740777841645434665902997063815582311572674551946368553579379455877941862417844134083054012320303625748443949397143966217317948702381185361218299402492660518708181030057380845939130728581203348901042893463489363933520053907857315145870017243110323848629071554259965642740535954532648953273934716118603927412799663400505263595584543264276775827493793784852337894451093236228167669660457877635006926687581699563969966442701556279878718833772120892537264427684576300200926082359857753959339363958599953985081209652184795525872080536684312598350996473698842160008406307507782536245699170889583305276769739543666901400889955533454109353124124169040272422604219420107894983318799270106932998200974814873757645306020980976483363092650874444508574595426457480376972494273445016830541958027276463215685476215786979283170827292619105223104873346674432150917678959883127105563360238296907644145389290697165803554028576049060547350630407102048661789675682081007657207987035820957978971765058141748201841736088200908116198914122444129671237255027745440659535781954947529155147917631076446715381469932726921732963256905740994164234960913092026291381672538459199951546504928342277798111802052308499207908790218019955041977566112358134124039926625382848802350071963109496887744259749450003405814303093280888245997103065369660697771451583754395113353072086493761569907753737248442773047754659945789704300044609887245838900994910470745412202369666045612883126045703588678974514689594355566893153295718699808112063195609878321264894169990995386286828037329448028739132297752610175985446717274171565662947276230648014041149604691285944334927458007839662583191916842174853443511573500161434497755517127394100780232217426670625621056553460578488716899518800669137860230999739257900833555457498109913791159752832013980392894181451582433300780339794571736650094740320713591406456996682162969822662323410818138698175277437098907543106001141680283965586657421056102690789178702389379804325459708581088345747277827742739624796198751874278081765045510140093995465031948423780236512567425924190559427686218827376984196345995616425836473375190035319308628785813923327570538432623540948865126048711998747587146785707377335706829025090681490474026478635572751086760277275762223666742821521988075808879621420472869491038177275092720829284416856503207969895172217168448509914500227334946728548992060442947522706844325471998924410886226602154194035001501013047604844414450196312002895119878480811182539341496751322795724503303434718824896216921290366308039884891932097975447815776894158089092406148130651729883074071795648112997332924151972779130790993285835436530559301019297178534068190853893052321571749776395778426994350130283263860949492602438017972192954262867590846293025078097411536861365260784216040997576459759640585496952856792528603850074162047901341051503980204365636557054213538669335477945556746365140219720694337047560373367811889576753479596927694282607725813946675338268123982563759854886454635289128414064083468820560357754831258333005504357191400995554026306339157895966415740353561769094452194308792753455538908060846476595771770852762982459293398903472544663210520765728068107047732180274364276708417488808558796248741255663415247867614080321170977901848463805446168089449886809628012517958231172423664121010350296837854995745735212095229479710343953128788442032293915383036666549273914108031293046717772909933035026288706891623258623737010281384082175926664530363560467012762673404629879155182325713609361532126666307173349602400907063698374639038822839363474032478250506187050791071662346754585864748522182189194223257710898763423997698446413439291250761203505135796425503699943020457987138454204640966958093210315785722797299782250094139121881793954680359457316115320284457839343080421673940571825581214886813744217744735913576838653075768553292359518776880059509902083793242958207727568385105404888399430408318092240430033185463592818182511043722718896571107056420411930431283103090169896053444420712927139286779087925036909362180397098987371435104133253453397054895903511256918639297809192467404876650771440736428675411332440414785983386312883052494630462272253531844838962784284333378181271666183601718731832714472384076245963030334291104382944433447284033750237714492181403617126126212077072025715586512704026912028627752898980597342445764120413834856126188045420527180070733037698172658909832262606674340864326953337213322141048214640055202556962739887216436233203056714892136965856079470712284831392204045514768723718678416654561289632837253852475478547513460853327454347547503538933895534479021207337238498652209008868201953789697731935813261144048527375288236026485457710466611338871722857084236719587462378705174618780519409544618977415488183969097006207650212611757648900336694166698875505255441800327328231270699984981995413257723160058086064931100267946264752180987533100008384764837639572460982128887700442599630640772861883769427459106953783177435477172611949423559220856497518722376474931435991518584330717476141015697788548536518420107995037422047390918240472290808652439908586570284287684344942937467993934424588464189376736518749360701790992499561550012141764390588741027786655396027356895849634534824251351872009801487610295485636289610743090969288441168609177920219405176544749636752466053031477545303274655070865942391245665592536185772873307777480978957658025229174369665743593014987351027198004649034928171669400484968825334111375646214439329380872143964156658204218765362746062110329335174120031593565033036926921091888914658031756516852606131773368285698720003020251349804598055498991044317925390614735449083695051329830333090845697584582864055672591975024566202530551080265656406909685021563459401213592486245752284620802880791073667400034187315930782719891323623346762327476954021167079195203883723657153674944476632092797354036175859398413332062016027591091612952693840742182376803889377894986178926690694154310064634983593654325500972618196446438749898744087503790464574026020242147546806663657837125468768909764740072613143694501632469351703537097444169332940396937586132742038607793953150830886779373252198584126786232671786192163861236001313675626164610629588043878827589319297099054420209779186057172629830487020189778594626290079608133891180400773595173305177690365787828635808594931379096564346267155389920398670987282818524299746943364197467961695544198569326646886535239904051667585128887438226630185204605784425936658116445170416734178516930128746843784775272859302238848067910287186521723765771194534441797022254100114555475318836495651364585230454935761756900006815590881959421562487507543301881801934811368560893382522531801448526048803986222738816858266191983181079705201908142300479723070210214048842864904322171624902986604424588751521687168965795212902967623279236765181886971737377505868630467840947982666313213162224772886738717692197821820402184116844742967967519869103802412146566925585164132715053175448133867182124030136455539045242935885191874548910825226421121890629444713104418058233099031427075379691849395531570544443346757132170709061368589049896579184069259349115410797244998530240426121091465838003030154894515385994975004336687309732316809103570809623063955271918133272911474534202956410288594074656524579031166190280614958453505592370285788311892104436981027478352350978962866668988386559022767387894550568678931353538276352547646976637020905319766389910361026442169871755805734196868639321982135303724196684579994227252433528048379804460244934916172073965052675470329976827317936774473185703533413325722003255571082692959720745797770802600244658587998854817970351871486483153746768718549518406341826477138343338631795672304346876307881160527286349964753521484889225612286411550179307448499434445949009147463262980302648219332069334524727056007985526998925040605030892854501963869708322790157661257406077015792115614017922435066306744653010810264073843480691880007435481201718452236251190457295994065474756227142966782124779410335806199531981475101591204718922423831406679918256734908870912907621642559362685644452013060554258701936560494556990137065327087293388117897661968354881029280413144009133000957220315438758032366097805831439283386125787572231892715075139655810272510969811263096588609717608777362368650351573275201547855500723718979109560754562950014498324665308164772062191605168473918872127578745766667607978264937505531635597777893932941080455832715468676694412001239460292250671251689773144603029235985151343564246629123560199152064622310694724976776588346349899495160318766261898813323843315580561348071584130259489883582134546983061898144738511774097402373732976171162599321571145467360102897100092692404924272914684213780246881054863453765892971107887670358505888849733090341511380662767035908148808708581845902583678444426538291429676445901651749736724786645618469121335439655515101436110390283917062788907838431053150910164713726175893676759435685306242526673430816393109043861790256182715499002781636072332435463475497857762828593943335234626137871656058351649620647384666001748848269989129328207390057994999905686459557894656214867231040081936139943706461010370301070461491868343459255626690778948885720084679668788779952857096626825711258258038387970687984022751420601435895502453629319693676562451633596247299828364757085492254401985471357349807464566288453231191863704908441867006987097653638157363417964964066323996400627504395465330386062665216848396987732542757234783157689946766102409764615614873873488182714349114560400956149636514821018664302571173397447260704600317194804036425923919121570297137172897963183348740150174779529293607994146254318453821405034681804968333302362063166131864411581981047505336331549584384941832229278645584427051094473824374929849426473079256058415413293466719374403396739282229884264567707614075703437486657269754231890163624482015660581985718627267565590485604823768570478020483897258367829889659942236639326301541288378987374429482871117090777240891474240747475856466415451373959776300652154060820034746104759008903686055371807970360922225186058400986421667793579993100944788632623629679123774953004752290771640793110594223944483080419069933111533080100606432784658719023357543417755165367763534814802347945660390693936452397884585832345836346572389016517039142246890675043491450579473109900615484401275786414007736431516166069053669174542777190274884501357286039942914285560692699391912088547210974574981158691988770296893304114855504508480046816829894699476674532441529981601470733988058024669656190955475141229430895002539811490121320070951582283126379556181443110186088279792516725011142475386443924208800093700190842743424778898600322274409744754877500975363049618704867577516468130352595653636741633481310547862043066169826178323192333890997526018024455662562693964548897986342567275197083543295964492338833640251008248208893391041261861801513360203851251217881095348396196374944368550192454660608078031017194490610726095596445159782582282352537078827099520730511690483580276865046992774189922494667977972931057582662199134230362093373350454111364156908245425074555575921196490954914990454913675796780176224461492159264860260418575885354943614484732163890677752697692464310089461870479616881825988584462282283059089369845919335046104058502450989445798890558908887517825939031966658773662966470248018892636791194708446209085286049518479958504615510224164694094085366618153359759299865236098617566577269318886315190289805967574857970442998811316511490260926637054844226945873095849115213377418779244714130395691038835416971309847215348073514965602617351707315158005857745361298382025143690097507591007040396590988844014205459576366252326218459318304462847973583412503794209359850071901500574010556978412455726176826222358843197883900861573523484063989080075879352736564931472691366416351199115499874708388888070349107038845249599505817941613657169608117790965978451578606884256494525778369637887181165088481947391072514761967581045580616011138567772738297827085712542561235560999112651590284528736085035865346942310827687577444396735120139727625170475984113485153690414002099460204582728151224854732160975567885460260146941826011068090807851524971315277236374963795128641026086215299367895347399746731741973974291327436502570326450620745329854788428164829447605978636984853632857427228864773954543437076456837588880457183946277626967138375982054167510940533173826625468944091759493925511638137677571543648012340286134487582231944607804138608535013949453943649426540977916609386580849663739218271554814694520149665342931768873987380871545179150965667091367029903445297224685503152993316966601901119094047936424634139965866671726341250303537697257779021742775663212936123277157714737444182541037349656525685189096603539787909072180258505083736030044471104609567121204110473206865558693139022239378642459317236687552103413341365089569343093676239591836513475057716530777557316518185138518023722188622172433603602462370110735826899754288978272721582212850271564116353082282557902404605681730658195431966408422864723650394539330533263501998232780965922344390854381314782972740910693481301127886251601293606045288074990759639276344154100068455801247698986957490387102005470763781925004837623925446622262944636156617883888150222145636398116948738452645618856114715681070269509188350467844012885208945688600060532959079461058536299780799435149003038043123608360747814282557748402918943624967183364748396035177633532356099820570842565628644025142336195352320489036826888830241462106582050996986735828616033928321644490665470814715505255247762121634357661910439366971219300858181044734883184574210429966353097201531537106131466692233184637868096675560880946160893504777403663461936884120262635829518427265879215502465434298349187831592647376847132443093869667751560503791499634621613926399700603413990832968476528228538620582009877531248480729447828899815480247890538394045057991227129074242684625158913534959265920550891991412108122110831177041584465791246193993691113010633642594049059491297391372046472696627414164677733435318116682790975572972252428457569926073574329662786994502841361450968218547589792951358416868268351615216803424861189400157272472186740455267083896702389811103758350819754612267134341798329592317515632540203468069522130777785566953132477794442250667794701641381664037640291913358847273328012790140941468142188661599455599155568348774418459952705383804023478626019068194180200360968505443124919218739160916184406058686998804225536334962570245817636972631428726499577415001284845441641185430619170649620531518867861741441094761003212127300996108375121073005462727774000644239326269910726271777619509588213345302242034362794386014999897904499625236379721216832545446677612180329805473225136089087511572604720587225393703446132542569600046891175152706686570707169502689103241239460845236376968589006655833703974123148714217881891268344724831727258102917905376458148601205619999258119331360106217728058576606204561248053773557492998583889846101591733488117714215942728632420042160430836615743296910025446789473169754281961578999321169411512470890675668496228092985566781347530963017064388439618554913275285220833749861968902345255765733529095531201387154702957606657967160754280660540256398377977253451105841041823159323025116455570094074438123800532830042094424359368349738367618016197137690777673073271528711881136913989558602756801094100990548163332860974796646698649773060860071393372909094471108769825422113133586303402519639487371908957201166024955636451644437704050960547801151620141556854475016638503497353459942690327308548695320693201201643670598868076640653924669109090207264468971390687234473967879926142149954673684855655507637014047935824568206832523788964418124866718790107896051702005530938467105367101882201358252804406819935250590534439593249736040800344576976434000075253384984434209062716206050405664319454153047211700571447751423486623088028707237902039914370646737382607666633655819111837287245415349822752586597228599432246415320978992544217712860633612114913871169016487729709085273014568280429936901778111418376270458860018583356787258261087067342983412771219180591111663193750374691003257389592315293408488642253637336376033039381860688467048453740466797483880921753389950460312467853811077919257934811920945204994994639126769393834446768402089006507845969189170635322986062204080197587891460406656114070681540995960553512854219385904224508547675986940225400562184996634829228256210507292626866985174230429681006787843365795453523924613626680653213571809031677836769936880041305531981014078583069834932275145208789423909856841576773478797161509652202881016433365217987036938645872820237187258934832104107857969175563640272878426467881244142374620829192203408589325966918328190730177912084697545001553930351764163700653278819326490761713255795784736214177257490545296490076296379773237105597735957984417509458354633659741529376920212266008106508313618687189436850606132065804569036555956088384798745856048406613913630234069285371322167976991070804305845439827583531046364216446818075888648092133372002001192449250284723558531048617599076783769685396570130886193561530831268670421440071876194484736355936906129005714473711045241865081025067734159210120420205845636338674753693185642861765026559143883852170737760752687651855834314201086676640335966454676328759459889386638474885325873070057801294155042510876786588488628635096013633321874160889944128368005373945974015692432423546698854416090670334231144314466033043539098903189285694124308895284181376903665157582299753161291598635206935785262411547337992390900222510973582575848900435022598195617289351156077665019267320505550316599443921085692514589645588559433610786341376278891482123893730118990329106461614071075782172154553486018602539271711964104290911331723333170935284612126961794618197417652959689503482980156499436272648036550770846530681318233844054148362492513481830045411172864272412201982381351195363008957017664073983127934462429688195130450513264572721696785618731664211969537213323328617834024762225007381007301253383467434776939369644786678875310181258221306985411427046079266645185974973398636574036582635402272389888061698094631567641226729637065109090332670410989202922622000724642180711856076844226716152591572682240984726367050727106276500092243815860366648024936739693236406602022952052566909728543203377987882177352822001075668166703037519242004919356007785905386962936080623065433200163933315830786307314390912077942076979138028852531932718614608430675196659688302049456056957108280392831460324699507052576424573214054577592342669250682977661552184786601409175083555293339388590392746564955999038053096417997697180089747119109807645709987116747217939463718651952869638964983039858956960665502956383634630989861980521406057124355988964359252717617960034014981145913225731381870735205995182452100202540057825827580072204325683260744392084302778299388545970766677292583571033438192954666816537717341018028117596660000396745135646172925197628108935963161389554485735436001067670690365494447072819153241322133380805128727784862665631935545727390078423481588313178470530711835442104112351709925764425236236078908938491334977518838261140539093941556722101615631315048111121763828023448332683312017982542695713151444655381159406758931204724428669806991554398834744324512540307025064102931564090253610501791206075226195834543255173204004374785845707943929543868858192545159855061357012912702959001810968715969114048338229921909537843903727799621827167583044067026523215299378516412637750202258345035322922026784751540498293334470198687147050959464415791084987659776839496858057366647412497012702598423791527064424960745174419061689909455211755164150097035103727948942556922367279407703880004866479665088146090685969250880566156388175263732095667086834950891790954644482885604176851435929799157205511669957293858912028907855922784692805917407249890325526704864943794391907551161486079172262819432594902486789083477168457658073355714798889597427055541742093262236791303251382859495027661292853405075424810299146411486581370772352086543476014188518592336590655521100370977356545800792424762085286956361786063120598418403349270501881166302216259064990519263491452059730022923630288591453240195911961319204448938631294352319967653393538172787703061387334897652281184926612034238478307639238009510808895798699513798737234679922969127541828284106297345756150262602310509128272251195146120406533599846977555284221577539267143542115050841692916840259565659474499236979214775456220894140783563734311782331138410714948511687867612331309884388656003047268953805225451086435353911449636785172054149892043540390508794645682702213710353099754393110414410034328990440052869873486056104617849744994074329886020464326465984572268522460920536983687579030403131448320033826036151626344622251205454590203300628839654943159112575760947202504874661441970605158592554569923454316136293045877089039088671708305156545512905954341336485236491080648592663539429579379020288483063601048105897992596518167071243728513827970527352095029868631230812828036957828018137258074033444941185171575046246123750507660579949056929937024116591701429252020839866020294588196769918167430028572330046554852986404059548077248947855923346733273817394365839003520814520641607489015549738133872442241583797878535067210961293929405832769814277136410522527425875331234253977248799928666954962692769106432217673423752104170113597004530086233756337309359049946378600981325703798202568174782335104668567671630054332702872363286722086120300775026739784685332247653504678059638201003796835360019673290630709882329741124220147271328436162275667824060707878294871832851639127432334087342698853831422024295801412919373917419690819255553400983478552453209822133787762663885991873527523197926939160811358000058814976680645454905501591056041605113275588165872847049922898192173342849514491712657581587932298803775603947789831340602019622190619704920400077844725453801870474533627597753799156947381191985015207287634574279057034573028227842804208827873605044023187295719826619052079665592655881246945891300675995508917637460198292452367141082604256726360022636014754464070523481432837925354123418569422706793349606606145380345168206967633104452360310305275053796978949973494808461998372172636198120600653275937661458049289762718404669856149454821352265778392099095113157867738098840185690832924710931392290343139559360995391999813688239738805795445367175019994490678565258051208276617479415100490679871170209626264145714959268456904991111993636334465431508838122895963340971527198722283814750078785367315607444474564067427521024522284392477172342577911821499271061112009370149721776713051332869219308601466568218373616160479643274947841180735998708002355264467445833672883119531335799672679857310677340057862410221099769438746127104393787545620305285961660340393934149863612637197776593563664555136185890010486944063674595451025597284036756753111841351805050281327399465807808846961701612672168355311478118464455092237020544946059679959810648305564780284043612089183006272941103155441044168220019862413611379911873761386658463622067442226200631655467042461414463782751941417486653980685465441354938862717251390689693720396240667156210545674864140064986842429713900386301096141357003954575334940612015220938011754703365766179985886792413591455556287825771771767062157153384200773618061058218685896501229332858527162172787054933773622426887527231655063001978143201688050862755353512451158513706825418276290006596467005183845607500114788237439887541043969153159688383205228298259007731852525497550709043406194725072437693909617010849655701678273672223628798286470998926126187705787095827818678882149608618893184516928101292067444362748165874908278150424224890535595314910106975420208658582921535791219787418965647648513705025398769137567684668773802234175369539482751458184791201638267330428824261966466232738203021767654503852467855713387732137939974351358272383395044794238017949361762367198034004004377463475727235016316725387069126184120418502038651663272461938615563352499108070286511643831327887523002200037771591673234623064401757137203487513482921758788025601753907062146383088847985625135777047030584384073627591556638462201887999759360016507246435005840879512001370315536445354029271499597463048938756065080457164458602550301662167466765862703978131747647142727418007331623487885405388202037214428808521431319460208806801536661698938124664673950175692808345106170050808719687081640775922976532342009880667055276538967436772979964672311911920143832533674113677857882238984260259672070040011368889587193535624581323806672494718432448889767811768405007627118605346274382408481615667061909672788669673339879343087181411272177472950749229476343779882682628399791904437148653634519222906827975822595585709625102000187150537757000060563079929384932817177544143796625539399171441337274901898072462738210655743919437699706190487257849300314539773754044014579607035981805580759382335337018573868088701047750636226458088640277121128508439879606875744716890813839716839795756853877762358337146939925736512037744109442845784791386327990277252533465591898093003440721266522083527398992247433880271709813750917808473065282049962112629054089021647314062786699090176550641931677739890699823032200661437470595719222310027391542755032713769477596107987575052798293296627645510359592904669144745633918428676787078077192989107145158720546657757857252921876764605517134293659594610193340865886581052967458879209109513784869701155902764680129318251375596716466469752196580980896562689953332302288318955224564053080722498659219582646770643218079663128527176200341280822064604288362878700273165133488591790834756959313391075202730670441356266216481501206330745448065347055892467340982578740739963969739511231153564512193941354262044967918845144887599985211776615988492078315298465999521852864050562702975495046180377328798501512926747894527014378640506078877776666352384211214678735348424691252795184620761520012281023862410857072280148722438032406470708957559366964838081503883575678324494037270610307296882873315461069137836085253821427233430603010228708652786123428947138827916051336138731238594721946617792838703431808120415933289960831167308601933484293055269920318148194950284126203395905119265162998305720437699924915171714882395360601425124894424331496106411094929740724294027001052706064780183708883777818988051794887377149894341718779995630026230896004912514591551401231122235775644408118522448674596038237980443711868830917354944548633138522675827638141964750541857441479257693217653405894697380585825085689811684521124608547733896045090406214745219584866145563044209679069846216858360374027383677914664981818322849848315523592062635654493245227008186811442964651334097688397305472645486009976817024568203214560853186545853251838776707996406374796124841064695373854913758094860041926717388177293896197669228628087237436208457064852343170255889875276733781155772636706428306213028029591152647043747156290623858221798978302816062681643792041877094218556345347052871448463180766085781964660290403394989450343503159609863187263007571251515241637358101879990165643141026179870410734901286825684536254122846338202078379604819217134596792587533381788613476575931690226703326100753248388295428659593713190638262962957850430163121190131656822012619142310746361990936523559312502489338643885911232487526631290429411036402564798686983615360134209223747443964935785880173947148371471172026780406178895523190229092591309944794304260876448394233872111445080624197062399147836839479671796355441400173379027343877754459707964534615999648279752476323823749755698711840803414807034331893586576605260857462214287275194027118368026573291666912338538145075442071986119871044227123463590917974479815750081968074077337381862854564478618748364965877739116097487702066212930156056776468909448018391184850886315615077709009354393783761102563067044327769767411096488471197615008201337867573272080747860010475821456844198001157532594253002162834512256560660294036727529038268500992600134261292422529988103118803569487174342803171273240986771399320509400348211530638726647093688993248061065913949329085464348628216279669530934627296089755127101458946964535389590410706526077648983971770204263710639175822564083175986360910537693092368255259305469914877394862191426150180889750693050591115308554328870698870191671667699025359114951960995027009504808720204015814662741309953979391880553353684291921659296762727293293597046255138354762899206082230579273482867562702931395008133927062499181299534603992823001333266451797092263147428284234475930727029155439937609236296901412542450996271633836201633783388673502131849701630181360756567556286849124897126189336931270085256883445251535232662980904311440139401535164586981892447798716306840273227636261854028165337654324647363850023133656710739009255794530180464080595333207397861339086363522114408930425826645435673486977897246718310642250571966971116663102555850717454391018351134653267582338044261713199306697094863260768379820265933126182768866741117932887552676501144062573790324090627795036684213179830431190001889918227958915781145034539260915667620444644818806469979196466748831761624406300025153359768472402550047074406802493376100872217536488527532929323565356461419500817945879067093743750645649047700412082716393520598324666732609520387872967552591077834880123922220170158510645962580857448732126470276790856158156380992208349897529275115273258730377397298574884421514834157010543822745077815460919790887942901711610557209180465634127664226298532551962731240201598547011168311875568917674507793979346125527891582187508945914957713131134462890983341087941984653854706451192106540485738071194885007468844609999662698512519508451899261636959301358251700821126304311172250753639457655630079699376720339073575838213063705446353212876387586344862582628629845481698556991265839673195720674645572465229270771200815400950616154966276248630735915186887628819469606347624972808664368431648698408132824442236354042722237682587287126347445249582567671994172706634812366822059446676622552733276061573313059562715320564553008128625833559701185826666140306922165858734514774520298679505580662930751292465988421654058782871839405713747934204721261716538602200397192790843398636963085751874692842522504956693718331749576522179091775810949803280513932849235813900564002943732473542495062378186512151864878191696646920181492550498216828420098048095477523647311414473301879736664870451334211124089650337453787526765332131933444065009575435314647714246980797045083567037494022103290901023317114712028563900674158930620533363730291389015932643021459224392131964846631891107596193044780804910355844831620940632118525720461896964285731172982954579444698390767687754974131048334603481306651940075880563430993356043368604218042933723619228030682247374768650677151312652384142214528122291889164179754928093043857467378378886159181167042885703837134286329451027114111157681026931384255115934503827373317802268044280510408963853496724357323429977012723463358135245151944795183760425001052103617993890392658830701666050713990352315482530631656777402702879623163762575355507458280646066292099360156097702650970558278602418908273711484088937619789072432628849526495244213194635870679429470123664372295108710971609784831599057437932768124455394947777825789920299289225645587902990563161100619871837158436284295804607197425700499950514945929776713983569394789690988057281881635107650137104224007937022116225654851144196696652803598772425645229826360045294916391069807505607123410075375207827969647035460317834544059117416434026709192849922456002415641372461570857685015251139767532263848200792643395999632591867213020077996802577150074004990824147364808175444996685991384048407023514679580530925291532064399466819907448363604891422501338591212221450395611789140890396983001683075645958260302900953671565454288025047289816396597343497270613790606427634345263621650856430719973391748202348953158676436786961295767150561682092175366609863418827618463264948024717545987395878666558181342005969996276189060093941706038933581625755254170679706360136107460540368704749697912800059244777912058672098039634379556838032072286286291964811849870075185679082198953914013682801372713588252244555524232513190298214748152090615162903087443883222459789940927811442265955463292732568578939728958528529979415340182595265922043360955797616865955723085494956485304967461400750425711543066605927623672549630960522453475922635043921496550069719655094363425211848590644991960252134313970489295872532263994701194322552591349511340786000323700861426194093304309808254548644729181565108991464287755545714791367894489006272306264587998362957209150948638954696187437097009538267510085242298035881240907192976268287889510111053903038265628788013612713447951917769445053612563903700657627376059940680546604414105116451981404946507421173385905010635299684019464784554885474835703156003004140248721246121477996071750511218484902146592599842507993814603526602295272445325019967357140110579486448386079720933072920795467209416842723259609858358606738774785042441211691380835630307351603564531419534290276423886170936817890832049818542635781488405231609293257450044590842370239614101968875804896708522156971314719115367312091665361415234778770183871313916722799870217070678559189279657993186148727334647154428610515902376677890867365135287591797317119239542258087310791592165698894328015886827003939981265934807341896259504160744362749292604981259477194412840119963935218903337970134146007736322112995254883716743595245000551005079019959065733118106083056362695271890772949700068588485493757410716019986212912835241311273146986979665631044297600603794238480237317147391824922457737137688780289896612365275989910896459155848490845799297492966424812630628630347917433425727145906740310581081587197785485560415725668008872096773707108121923657482895506016537838729949222414435821247160902163241599170428597047304073948592272416957625511884855963772327205262255287804943608600442591645791471677756829362693329719051402568320215737228002029083740595969296911717414888213372186933925931343868265501958102732326053475514614841161154240956933323559718550523572883511505050012007978026568996052637332594383972602567254370727263032201930125382090428452528464742717340357515608986673440869311311340521911355658895562689833719442425717821847453987292641395916058971628841460113267440244143714194483371105576893214429294544323927555979494357894105558599480208010467033354751828082525456780175419971811527780551974779534507113099221469710032812309957664624138415864912908256740566747602034313964914686617809843864011550444488406642226981110900934266276265134214525865079247904643565526672392978908416774998797886509731329513141714081193973570127488731156135450789234783774911779990243489925904773184147596642393889045132606133385871721127165502820196051659806392913112794832420867323801328616452470753645380463558114396668666752774974967728570265007787163364268990113430482971337686871551869868219087417634406092691179497110806612220271990637994899176257793135749567395195866126010115748032746858237731375439597143277408712727338143699474696498234639561934307880957785645851085708384376404943736914735496542418714968183216637528664523457197588546050718230203843539935062817176917200466370462614596053354055940068465602205540906042721853639734655405773888047084336800149220980581205291422130720489761862785522944222195464269021595528218481288412809884685696477636136370399235261007110188366606759239901188707127918752206672982508188585805450062826815226607004858258865174483032176791473343179050600899524662292177930513588209649543232087281149646641892713362760749077121806462336344472531210418585525441587366775793194398432345363061767357996550802545688645912882275826095069652730008088896171720159649216691999407797232247670208265044899973963731293333482528479585320246297433430193007844218077170729673793209468767895802812245803461991056037733700958369474608927153628320824406436751766404027854198472589208543891547687017268484689671585339731509834828519183083656439029956825907025723087948881775134169992175504232065870445897030935629906811608252872369304303486893659779775851567785160826947097180589674962352451434967427058608811873204348530118897117311923039948484086404146032179857350182167135683145598878973120459947568142119890866994315622210264842977485114722749310010442541856394663164061600338445916087946484832791358769180909122284943611137993609330413295402398893445946403172253032841591768185004009440350777011196224511616181196531785948484340323246198049608041195023896768454691570152707815571272146275244268024686389055054048387907101432478986850135898339430629555311203295547526849861040292121615188259144281534764323769440023612745074153256357429875336397734064816625604991257423490286981882703801362697097934088193276351671886971744962265854422884291417347790035245759327208433107493912439035277899842200642218062831881652381685668178018192630088915481358903862117272098364562465227745806829779580632129485337808737713887832708514781587941941754260294008909809114957378787860877500156124421980363826530636306634842058994665472484836395628957922364265676292341439101554415517580863547168009891913482862799610218743189917048701952889144923571895597110065874680998536305850899316457058699846731442305554741516962188570772244519389182822689990222820877001535503345637606248040389812933279120592218016696153413942626670748819775440877665066498414392383023810095782465187792811453420506146479312024149340674893769020204033059180720538806880750701635871027297487281232790567695899424041482966999590703518016887904860709264217727470474884150604731751970543004597391401055027138271166915237322147537547768742070287896458901957548391611712209462245587404554736821514372220781528419552915888934483098539196572852624635707086896894878888454354940863487749105750952217747579884712622928457241717279481618694002647540091424984386399242728869210914661560127230342292863683710651779249387067441939297646573914493901856944501085228978469757564239203696885139918529882270530701437140720593198030023255356700866625813452656456917538293252578306789313960127398701903414127701006659293779250936938588625637223508124048488729822287205679246695555871447455203440282741980492547261512956514328047094056575226341325785729423971700291618453147309510465327840883710574219623244947630390254945299724126914658735184123881764222457348652293162288893265876486590289656905716313586382377034968999919887413544478518400176257944104190475140570907335391630754785405338974671922996111570661439797613216879363999202260375388913122431343688031575858799184877723909436270177690415716291684641178326601398460396010283120907600417468620161803729409437412854831927849789727589932176484042222105263071206316460426270037080048560830591825227241265787498711046525601300838867014138048050654794405600292368236300683156066624063110001230596842617894706154594701205592615018371751328187667566655977129677134439386826329888826433639938529618065165953524693125571484705738912185216986733384892236201713504557025984270477453595862321344694005868679510471304048278464067909065851892263121320819544867939625998139971932079778565655367629621921776386613969398434562111407937386456876118367830967042026259816510638439246327228385763863004723031130987018281069092988003598948459907366106774586105869373925591901112824054784106477867656311039462408233947210251409244762058710595668150478396352406167925193116171324884085837903404222798313410888395470193136895547805374714351111131806965245951539971304255279409201497062699088351568829530908254137487131597243164130606031053604213549020731481941852178365122822127753935589133134790735434862912513596808925724882989542186449224686048500831037601169789760883113248187122070782652953756673285038003723870295954839233707541308005180772282736289949965944861501871413309081605186446165530413266598448828605171406465650313633655661735176860986470535083981789091629330954257242514516239790291452620772297661488403483121980410944210808540003234550188123056013820423173115111472934326333804577508633747819655893403424908990206646235774789661611413641116518178591557497384359900589894129924378028274804444745170948589662377220250361390633748228655532292123896708509517464161902454434673779460276185195123493088807563394895818276466648351169748696322839434805692960243869307102981022154013525964882984283979209040072342536360753773181700402758517522551389162387155859560076034746485227287269596788198377435809573022649411966143623630859857844300238434440778987318221162817177540967994060140012361443445075064287437740729245366927636187712749242924726539001140270924355569881729248774184368686872101867144932650639136970300489153738949121094624093111440265148336881397907559537449855731129115863222994840266640847322285840564117375733694199077277182916567219657462551110008247070901146390779676417896150219688996460945358050844028220733320796010930170563783111745698769889730999287178805405066584953421266658698949841906767166735916134795144257247223701012297564392407209084298430090291406852440349244266947949599707587516012562017782719027518320454366740738276614509094273968884558335248747545318864710891402039558864391519569442635394948202436964651271376039711834309167045982653478601673175669833989442437386855549032660136593931030803252570686915493166558832940018827601164758834168297482731890051032315653867405312260843140232368282353540889227068019672276100566139711926203026002204114442673080389854269937793340707808470263577262845326528178084816279026738812132403172741042124167071958824485063514346508800819635380645381285611113168160266670379320839585342149950900277005212190639417204080701590879966575521696858256136844575953463929806735609259957159096210686005467165760221229342632986890927072357098609448059887504938544026230981135947693481289843720860616973060249716885164487825564585115702150798544377916010521198550016612466478332352848685144023471156978897040160459043390135652535761204382454309277349050733231459240288198716138156685256514559774709974847945219948251484771909608675240904563074729634707451487399276176923236477225251558172271462073164671564718288234945465576685202519121533901084135321549903807119458016103139964866387915118834562547797851732162629904124778796945013845013035980232207959374082219855673871579085791188722776442286533960540051918753812842451510840797808801806977701222481642691132830724147492322699516107127776718468469965735989581805239327314447748288199493177088731046718775105276042662959579008083550396799617061404859629189761708250133582116547922799596445476127315145690497306475141750611200570968174017771158275180205729837003820703264284926450343956955370247148696192179094423480169865588691505547419453161775269609144537775675402851559956129360391658759197693048401065091593113445534102523998581798081140131621671726589314964646033418078194157920811618574348617639688579606224460260405768329383043578612952308757718303511475193698565511690080751811758231287030441276207431529688814010288504462060375748662256892269893696735673977158378817150859268707401941249821064966465323730349790768475413343083457992449296551428923544064856333817062786930335634304583643889612362468044074834122532225245557243805947709515329231423862452007784630578800591604568313491824511969605677646169020580993269718800500697055376637369428311501928053444432617602558823667185365404030095996841335623225062756733657484815811528596996706281795900361818537047047302802493495072205819897012000423471200375456640618843614378164590464721707110620430669104026211023848316725318546206052095150513379121991728067827020996284380346686123265729877509762024733241808654205040162027006484119596564497212556155730711683798030772231325644668380478129973085835316332472725993284529489264788501574661476880905940544168244944650883792486755825687415546327434406547923161544723200014504235787429517119555921767990315460827679757813871722896339514101350959728768520656700139128129389381721988737792435881180733240205399260155894906059380513562968255078415907736343052384466263997145532433748678030287475539683975201602634858344774501694211770228166448767184940918132976855976123332769273996795813288439494507139705006612295844820067725589337780734739667164497860068741434917363854222192339112070823897087430285640858142670497186861544030325329097117687281630469824128091161094104825618111336059907116102854357267480765034766533884920296200010761112133547790233710202084981515492949458660016142404990850128316680030362739751951977218199251051936660720213245890912754812701666196091137111349586754497861818782481095201201968748721579523950643901404037612232063428179681916832380867254283934295942836438065347498874152238271023798450415526968540642206126508432384614647870224853264669582428588695767580515184585008898478951298950633295417358334847656879609754527766837626049649469120458185953878371742152503261770149468031646490101750669912916652881399441338935432315780861988367603452889259941089112186288675781338537753096285447636323721321269310968446036657066629715827605775710421299195824584155029260196633835655047668741740637483364026647040672099363374481927036404533701525934260627845177548949728992325299955576166388134787687159107965101560819976370614103548684962160155600554339596266650705296362353681049295223214641140418766904450193226824360639291809121644956216353977264976284162839196374133705008407843087915441846655584857633880332945801708376558327626555765613847108135411517464618409135499307510236157442722232205784087468972961116125313474220161260030658550906388014449359584775268029865315984205131310874291416389611357186019971961839210881259868431634848041395318354783039351242387707785047635475237099470505196354488360043993339338699102182754314313920033959836743305216245665259809950504311432957650866206540446857881734006999689402669625830563138404691816950995220318523483459779542215324497669461329196269741426902585716986383892767842147305708574361461217374825995284770384981174661860319184830336125538444674676604986015820806917424486804976519600513592780923638368722221624295802307690579222870703839368571620153558917660030760178883362414678214248696414707391511165267115878484098995657056222645367740302589669842887415410252625792125780216650553395363602098238113330668468839767351657178145662108846795515239531997754018326322781585961980086616610249519675309210704396843793829495070519011386093760853215386089240928508164173230929400982872949129199847769654942764158835023627372853704878461127702156133200316461537130564345124527333390057351195960381712266003653612291557704026245049243524345333084464221354112967118706611020668581662328141438474733549846563736816128332944563554717902036119703992493682725117223284283834721293123879655589416650715971018592549710987115849318920066583192384901762183824058301113550920028934612320214706201889566160325894959448236949399807635112559842193088023495054114711416599553322340537545516179430912502237534098945649981565779028220844346498228621490302932154800456422560048541913581420079338859239822724841949451862490888383035021641729977848089454553886298404465068203142082163516972045451165953697733920929650749054460236357376831188643030985103877749689000883574303862613898753332063544031390471934078377144727824812800419871186556169923734931710139778368744022684528595360544347943791199104581323522736628424735278313793642809992815455347898615110674406451782934297922858544500693499283846862574876815759426108398917488657034423080950125596522653569367783930628275645773487832220414102860180175264737820392832816118410365835948374444095155751676425431224781353435209287987775065030463076477145448878473001293789447614843382434724557686741676721216458966995434043183369460460812583516556029523008612790902576375833873991952548270176869091482214780963629461193174978198496788681373444176450465970510511359937455986647634138416012761467122632436170731954086159287703191328647900214608449240127180825322809423579979809787942360839434448339281904776453722181608817760271393027345455302381694963594251312944682444954490376116661335418267054566844539873677928318124367428045664752332103035724576843534033659971738961640094855172280442941014516127238163392882569412608294092444645833218553400582200749133176264928685211098204234418410055592083566332487807327557446959352124127657198512875744381740017351285453640905806493555829857874930954669334186929047195914186909320794288178123500007618637352740379527934219410352007483247284433686981829305786882991913739488326118125532067085653844477442374594194628853247901673104732892356837625964267387155648156236635867997711856734157346756689777977139010722862385083393524366891888783087528384842058527672653802489639967389476174742546885244894518298390806096349752500352371336739096946942608853128601644959189712436337147549063721991413264598855896679608938340013957106423239496461416568869655358861626325921685155831516201628581128590025693605774325597965909576663600133054057900834663524114352039738653276408476720110044097217905488587766590336529604674539636674738696173563157205649819199150280750322410767514698954779902496994529220609041975500331618895243180866344824087447254623038134917318080886887162579919124035917668439260271797347836592564010512624116343861158543607445109112853959221560334134963708384755042919166042723500266140059978830475062386086175209505603210237877932275541705062246428046748317539232864158222744018993564018845409503159648502098312155709852528371652402352759710066138746799978382018684651814376402160402900427216475455468792398065089213267536080999578037488455103916981020995220218509548644435645345284038693188037329561522604545462297094791648082778219021886450761226335145326787168290002747601350559157728464122873176079476362737292316576392570991660711014796787560076842575290099311648512772887698310471197266405891245079329522413987897367538367497713658705148374132022934541605407218543254438872586864879779214119520342708052716159713527754409752625474559033538695549314067231993545208105820901773329210214629222983688681788522288205210795887094734835247431041508466344159058455731152736556853715242610224006404628635398396570008172707689464921139633281307624357184700669204929383367153442191625167014044895404529924844123872810614401392163959990580044963237305240089520929383298718285403560201137197327800826067988166821257677003750022922950355280882258519161180486607184760136297853312872834399437441514043065659707946099741571680739855342929432637871102884069803873654951901506457061123349989748006133733325439702957577822026945448281420929804092598516728010674199136195606066997100384573312818252198445078850867339224756670890886968254299861807103633123778713585866388051407498427325633903848969214347380330621251449771320056712383138595055260182023972394633251019576157722376284988281476941995875034114392509375142973667039922119025548021436032005587734042044402402182928543164453665779708746834604929939154297936869877899113012772158952542403727200623938011924897997474522863102200616937851886135032515780296624886855422158959888136882468290910940732083886903629893350438334799505921705617717998044821788903638744804936424405302473543155388604363743594498980502829288962750961526996527679479282062765406707128272020923025623658157384234332514125846434807863806401163333546356417254304497192765823904040814149890713249087694716875036313624598630640319821553947622485777386493470858718622356880304543097009392885152641484233338041100683895148638868999662288701945444756383121617166873797546947947590338489223357239077642152905292161861044384765621438309229748819868178441788818579003524949833496013172423823572012698629407363529872795713100683012897267300568329617591224207087825608868747799616117115841903764073863172074578017292363058516443639590273391789047094692039857856286565259138088709836511908890000059719900626437811261792219802181483733907412678798194576110357910125188273169340763646074171750905004558172048836465251010812740425403833220029475587698175737243198808659719823255250123446707681043042309488340706491209695987285396611144244293435616059777089187909238445111690600677377316395062757038879494538445902439216404075301771005546860362860047330469557271956759086098074840597131800866257052239160108126811296740932139164459318142653803522780924420394261222603593701397006112864176751369224514732022045719680551373986681451262635258100491502464257000601494377239934560398010664911808230985352154984483275251931171891614280131226517430657658608739402407925640456202071731277397786528803427227128470126869563386524182556024936670832352533127212897138056318549565508332189333528855667524843240541373482634975422221087215538019636842409856427386068945914847036129916128759858272078648488154741195096355266765193265506878557018511327213745494773564763877580710469850732235414539949584940020899806847697497575128123972369768459331490098287142309820105737915338119759526691956062203987664364914959937891367327205446082806400894442918237620318872908778570859878849730533944287220771277357262094934672957284795413674673085908565674953672031331667986654644461078336900760970671658664885505097278197098633315493116658141772527729234116456320497678759924143430776816913421937155067494836471790528304807890921149195222807072925304827435428944338133177211155475147174320564584000798047728024746701321766845774981905234169546064894325516200753045344925547808116298846076895295529603057374590734309566429308572000944772070331754154595501912250420100651153174437014990476612270574769506695183617860487119728851904164772678677924163604599513534339990179780954788279181516873075032840700576941897656471590500569312556538728547696041153780236577098023129169518242191713013653801903069271074965923255588876852404184738722011059962663068497043102536662112405726148230411277470765566740606049142548631615358525757544382971500993779258709723273922068241290648492668091439006386050190074998699004813787436749273756327046672236679798527995856327687292522111620494013148950435041831296705977126845252199229032363728334087927903133199108770649032116969412927730309665897997732070242153917494012408130671961916280574804709903141224235542450990912221519786239908871973877943219694023134047018804056092077958682217812682551374125129319471680767492241969887077570644809174599704530240228515157117576300887845860082560097886404018399949786670585095931375413082419783565539790862598688279118984918175793333037218886584962524325831547137505512145618245481616296236492916176919131344648850115050878358744074677001716843775500531687082311949319203137689615839551592522346745620857158212497320538569679787233567007970865461281047619792243099116599429780953927792149869995009861994995261682725636656065245000804728710537532974860816945388282148485044487956288592327159848003963598954630507341486431618292898541413465101103436787748291644074266713974151198355333970522580833612512719895739505758875970661546681037525264978570841514287238324601054701547757174683333056535088474438883208689213408288265765329307114753892558677013151058304174382953164993413696389606195256612122740140803456424885722986932599534063366339938148269426279774959557253538643010551801090300805654537272918285335017357836192595672109543099934944001743198628289808609021511694559970846998163740451659199271532634967775946993765455258617601356130731946844549235300011265362048037939535301095381528169136510177274134061793795081333874545754074510200656623254387773064040397123307738652624258903506104058564454257561368042534029638711014092943658032581858533846562150228768555847614831896324163928945759510430553921331770517668270949942390638609384346987327703292328917999070788267111243243936609829614616148485650817943918450659672668672224198591682421629107599797500864018316780631812948961440967124095111672098128152997741875295089881289478195569648960946377333561841686602842373056450464009342244131875373550342538526427923350803218084529362236925263358737656814745034597274811143270540215909148989863745555640229985028518175702405927602111258265604767309667588477023925838473430342516058181722782566705356734285661628092061490535035393887502736507562473342091808415425326423180560020506009539482076812318446081457643167106953084811998133667083239530415634402928999626183796753815641306059507121842873322715196026721399218126660047721513927687531429219756931364663782575531693795802518556981481182698520027623352529138156788457978819877740941942681429158792327389958288814473676087868888107221953031413849168067598259477929150717341952789971586856615172148510378521711585684483008635166002436517450489627770959195973383741488779613482497662747166203979888455422913868529948036679676981077107866770133963382231589329369201264042376150165805200848124523419773353392325403634369962682065907385872362374703067504561371210255274460432068124392302733493690276584035234787902036186061031219997329965557628155060601803505497046264921413497525211720891594036149668471055850260409532833082600841314167253183083033205072974616661210417998134130129724876801188070162022852189824818678865952285980199100681725795148628421047610092531613094139810726855864609387531942948733610228976246596282986364773550261721863251186243935493351778424396121090920216634991153842619317792412526146961558664060948305560190828193645311866499688624054060446616849185154395758632118424633119619672107239592867972307268876827590586348490582864812017026862462010429130603947308024951105279742265767985627222112572681773632505123229893041691001115442095048979326856561168984574541445530895829336412280299310339303736456589335091043994601527364025896621606734697770466676450646340780107923482194328082054014194264016749173212864238341426860907734575224344333766950479148239791408498033110916959981705147081990196059580866655408748098908205884542294751414327893899465908841373398164371165551023693770013569033769694975061294329376252983200666271710481042524182477718125100075816354667186727799656332241852498917854565835037290631535984551075905916970967609426480844209370298046223919313354014707925140657408396908762615639470660436024537919640360696764231432961693277130565598725309644959956315143646876899760860221757826221941496263056928862282681547335870663849617648549439069968520631632328223430510761642320627177388551569951102769177138266183284179383381836072543255405422333975715916300026669567179171130870159357529749837497822499573934726152493283570552674361093434757598889421495069357959322395022579368053174928770359045078159095034955307427928484899830633997547984509187201137457387783211813104952790999417033520536359114474744063926952634215436765608860722726949115244356416320236216918848710040831225827155684998966511209058001003499805994892870628491572354170288346624257894689874253363313069646405955523310865168477526568416170115956681368637866222673364031793041841221538260211065191144703190887539821062673194248363928365728655505716565013819297701836643023224745018362790499021681283286546485114885018891536096900087201943546963268911555012647716767125058637427142691224223574181699977011445700067288967299925705326102332062666806249128292634332480839955549617755065837356196765378996437350800938699508995932301398712105390895581423721050350809645934061443973714495767734799709813622055436279970656631988574806034139799890072416225921855265273250933636771878653781798034422157330389338294190983667632912485973039392797905185867449359759668787877182472352283676653157247975206074871810441690883374195299023168969636748956285085609144924510798001778416542738991329336351572786051152006660671950006743537740190378124452193078477135148164692490591903680574075717483105353476120592328490523291725983837511482101475081502941818226695430095144325074843873556081560386687296583825525580980482455942961349562045543202356480103382765651010560658234795591999198695095314322619958229276828352782639140665484037933704119628539636300974049001693953476021511612298209387528436778636104677163364314265723811892246141161770348484573828874334982554819840280187725180165636662906448015655459523726974237526053677481933991561920769173824270464495944685355546620489926367609321478894535817379365452332851763657291964743476079169055793461899825098067742956143163681006140156274100293918770209795258501635763862036073897393714760013316403195604005441374236092724903192491402849182058318957577822516586865405542000385626523951081897517792080162702540127752071594261511413278583743344546071552523685741359018573219204290308468212699699161045032979386250798382272157541230610972716814609034440411238982479830056225913401951846646586682772536847956154506281423565540871248040308530550063682733818324958142926061794876108245815212041088297785666510765778754056150466828607036810905780762591726819160506034859069778562954061045919351866957463395193027755364274270227039857339151713953448842542102955392187387632317382099583973035267254601996356864127223767413029146326731587483015923842155418114099534089856404942350763029729855172044777437554127598186623607287468223379657419554610252173991404212657978552027746650367519044887406158417202543931494029220536274690268417424355579844696079557724841210348108312243790521751875236778203705236121749005473772298889462843495237829972362179447815802622727511685394019768870471604734172220881957628362018899655943930325308668058649243858773718788073002499070815563361404207879734973343336825907474749639578588648823116541077328641028747689135989287264061588266986689023051067363724498712428941079405990330350978562997647839818799165698355965937418176627457521174467221473019168773462175794945910088487061451773097607747351216019917016096744902257898106859531238828146927210337341878340113827730486057857427705801200866946696229147030526053943631294366065909595169635204820461812072881370632118858386726870377097815778905845613016514953737804246336856998784465580749435601367639527652388688156511665445526226049388399428524734089442590533184508959300329727061124326947423337196854516730615485333312373819078413391408024643282939815616785344247619840960499482474507676960425347621260684462486743479724463633305648055392040338858689417870128323438243063929696191295027273662040065899306188645086750916813193222745444313453229600380278866977685964919020992728544113864469815573593290979915537698154733082893672049182088783281998129822248137530933851408853238553567749969553352046298728110666528186955657298229207187849493027301857384736940286735950953939636311076829981602222378188994817381465478424597305722561554525920786059957139206285822330025874358904614661150824103302685163820882571624123199845801977248674939396948341049349929417932555466501777525649263572166169950223228605842376930602611985414508011694942385657475835341349569150724272298909435358539298271790482828155316827651424614005961818242451834224125463052260101538822400889368052378863202247704272201607536301236692334937758905784531635911885636501519738903595219975643739017014477443301381061321990272432432477135419251756180695120570152484401622925425815528056875079098333067334599258285918776325854465837570474509099944582631678441188925492849526682707494168989494450923000066505424394990895191025145068074113765673874054788437149035744227019727222163401648112617195957992697750378523806811074887439351266215631693366252941690280280632091508239882112924207739487107318964492967031869233851885571920558027886086858522320560351374746329627350564633316152603498725410342076594343274872722218680637140509652744218122386638710462781131347043147103198023605659978231920905626372083984114938244536495568313366448950099588278949713540644593285030053861839808758565170119147303491859948979366846523685195438188246772071413633224455349850961308224130227037621796232669372851178855626179395836954866665675871801278481082286386223676865055094046769518801841771405594749161949549235382619621232204486358031531484603816971592061990145667602664179613254538000524318887580768166490706972465808400630497989936049823284010647813134459984790434098936268320781905776119918845205753539362158524122006728011571033793476619556558256988329942973358012287764546372941128785331124141185736242233099145777301261715729669915098030998563466844192950430429856086456920702442082934998235976577537289659360756700173932666843526938956194372563563169460190318643485533354014719218075967507051946006003670737467828603012466945105387699448184440440370643108325551030169802650736669774973507421211902627565723540930643430339955677238002811466674488265416903908938583620523075225310774502230292555926613087738406833141092491634617645152780050680358108624000690398340107197597543657087669374675369441573980046869805521510388559914262963592032357098974100202987077782618466627221033454743470393849336394815047752360927367829496232593366603318301424052552483632609738411667706708105539231471848715332508089454577813265163332314741769941289597026703978835193428059046901313926922389634064905605443884301018309714511437060405781363877877524865086042071699907160861482904081863280395459352971460273129549956782448329630074754795264155565701539847400762023549173070529441643798728129408671870843685404466550017825884883056291766367888527057459970230351519650486426954221105190824623571458349215586410157891688260639855365222651571311830225857461275288776598346174825062352880276854032636961724632888152940773783551398005256948097117331777647684886190159968538445794043362206295685261951119222747939064752325250022247334608851108053139862125152307917573009234266631988400226602983108073690700799045324160906509726593157626485317410818074588449217990469604866190188841324742464729359813075434678896929515424035173395904856930312481087392311886869638695085725580902319545999266280839555353415787037301174567544621682736887276610203966651906997690928850534110759807944495442431551650674054633086758467538049251535845940393552146852544839348697073446167041819524154332087433227674669170479201823025774891646269516424797789309695214992865318318695072793595034621280725510569032635712753252708366702978431523095955913745811359511683549941645907745476520356381554028960044293602736195280020299727851124000401989475152756994713706628965213398487973348876230273270814847222226624791441823916689984101275848142242274706919773514295835687465959447691565395465088379276011951438966715299308139269015383006166051353453902025504161293176068993837954106349186312860478968478199124449504847590430706796046562129445715744625828877588518956751863487194710488238159715505716917009807329576346173465026090886027416274773011466434628202269966397473638491785111734887483672935445870856118982246465615044017302963801448324546265052822383140226862149398540813415653086203869142922314365782394282219836464930738771035959256859233193588945484952433624888353832063623855447949608410104100565223936704917538532603521242463999526787295893686713922719905188027640617365716643975789742801345250111369474481098784053370626099423842133600776828670622062771292769992174609895837988334289071649226851064132190340721159088963446353297220080444121608872065680593960863726679657687044227720220184877035931944505084054124492550889156121363640248785254396453155262516413748046960113284143140324199462866850703266741347602515254508241764328122722126394610842189277047175405179324443776521881617487074014437296386260489698283021563643059453577337054839022510459178007145491679707150698023646045380874953485587957148879213692716442570266154314639301328753601820525217786812450836047975678050753104929733106242409911185216249043652256708766157374105511328586034803073396618410019041906806231535936601904212392737531914229383094752051002870615126823168893729095967331141221030148887249746696933981062883401921650042985429540787225928370995312419186417727128797984386656612985487081166287845674367128876090284183854723002722164064113586686893306249725259888799282486910791265079542569887246505462066545843062534694566380722356331254087395674471377534323041151646091187317841059523876678731191127266313514088030847185980785599111940948409505686433183821004997258257890256034016308888971483142700346316625472121154382135237677043462138125851309120672687398064005572516024905947737572817582706029684036617947063861575730370946069223345512796735165265717392575071825711369968194133773697452111907985303519892635520480542540933208946975069282415266583564970761608290503456423991820021239080049328808786328428637615082274010606822279578941439550574159001672471776141995945688997431466509280181286644037148499605566436023559158589712382970669096616013112989933808198033779215360415433808406141658491242001176531942973918394496534685409620213410561126867173605085538137576077384432352884779630793899924888652989638194147380467077957845782523804619405739231711915935184287000470745068945250136682887281612583183333444166722329191633890124209241372157964107915280341817050931776270508035655970821111167499405689619502435639481339446593522200238579438535397480424454768839466427377854251713344952800705954805831212887679068340654474060918158978738353746126262381026732793488583847725339821364531604532521011949458518793251945245667823287753365372051850344599293313398157766719853422175340023169301706044617718556505898836522877050780824289320666291177488714925711681051381529717513131166712912619826826922387695858234026362511045991345142574621889701813150510960751768195906883171057324589333972125375107115647525502970543723987975290199345474295429622012100193894487276389703888447031723971983449736096386732325687517759032254592036471266982140179932819670884653682632997065980682896573380331417427650561813720164499457227086220910144391450461122434541803564609668927150271374578960572548487839372811124951914692746178862533489458572367992779146762900548914442635000244924055989183201368167974001395651693398829255924425361205572458176899130156337164132132867032615846423584502802512492597581951188168794641986784219427766779255507246735040383013688203842991999086364131587165410203376018712214431800556700736431552112174245697918125582387831008918579178772198737051258237190829137363141838463195675792067064049721547184366413127130556869472017750157264738762725658798738964758286506472768182795916870404645664097747949909470078867331987134054530308965513302753144065026452344034964043003308620747546775212696024176592983440387285667308810750374911644271621077420373073962154591383642607421694948035102363923940667769591561629374043724256742115032221696024236687423389234543617476036213374642949818730592699963189882605316113164731907940457302735591356323158852156106114208851375563816806576540129540799538580610316033545597985363119474231902412743381699987375655960144987617798907241999237773497004144939643637075020336060366834694039700425147202788872452181750018132285729687378950533491848032901777614835796923816530609562251177980814620679641220951144815092626639118993550630496580924640810924394469878824699463303866997701404203458882311083734632003799942165047115567326184676608736384547375406022435034896035875258401154781852411605879453530516291706055192582562041741978351866822234968042082703375116187977282850877763665910797747152595032259539307060805301892780313532663983093702930845251602919560744022024546724094487338467891547615980871162383695225877918086803602540264609997394850605825924078655557678229622321483025873616225103467361713005079153719373329026906456471078040858363782372383734445398296730109086866571591968087933344509336227294792533969265532841764661018904601171768689892495926007722373045135198816134397298548974717726929712133165176541873527346333003343753993339156152333970973239451145509382864742856933085706041591093102128946308127925210869057876021340985788535919011362798541136411028697839886605480575245336752819077900998446046795753513315671317964461719896702181630584783218458190818651498153168359297543552391002841050905153782136844102877999693939891545454841305698585623471532700622139250372535939292191771774990856178463409476260664391742608932976438736276430128212754830182664808995017356662035087293962362462560166283581786129757672670687868169823673943417291113710232267684282606655512764226471925749902025189842188831768240187834135809489733803399622553656509154534365172702064430245246265562405111404898210661588681616815109791981223424231622120640224721406188204067058516384474903749309502899998749059448977609561518975507993703320582528795216691024015310668008575537971005167143403840566308387825874374615525266458171399035177772027185742253700783299506705429630925852761274273185594567426446829005562429675284090391499632337420943719658988062680765284940154584824316016157351827789710577838822932226936777185075007487085323057359374076756046483274506668097135161851612273913223756766657742096800377742039683459808203574634225935930960670439276222313505784103538486408822666717211117108262478219221152124051801283256332758692239831922728247436904223688617847961722759760867675148812465655144863268248433215027059779017453356513610567659211772976750016285637483585803113292883216963644177284071561217431637230867876981225616628680795754095635156950956251445140134634813161897525845792173532611854375250893695009558355591074144056348696723297945459064747575351572798611506495430129621820187627458635599550329057064867362590067588953334098989477407916661209359200359829340507916354019756761668428887603409327474414417031691456624249670707338218346752618507878511534949544321010306835747544207239110919258404914826072128721878365646556760456910991047706957035895357239773420046484775514195371256419234302172559961416681663037961660160981227928158244995228578785362492029259851513557430418352529043881139941462636250525844188165776483543405310375356532344475744777965696692639079500518819540700535148401941193905776533515980790007281863064028109720955267795622239163077069442022699971692548813704736276494618503426770838959048751662487474483055644633410977946202639055844830368024308698156705664163233412529586509583119231270243379448872780776347145244483005490420196357759756978393855386299701467043663515258180420678541750049383884458694919700617112963976032506824513257756492571485858238153706394017223702015109182531707916476368884024081273804594112431601627429986499449448000202148361990083813454771646635625676968212581410633942512813542718257162456935060970682334674585440284468854749596871615570032580603876527257992463561315268990930054041274665607809605034507952134765077484457651857293199525038152619203151463150780558096571918701400385316933463931661743769867609787685792957385643439354475733739359882985692811162618246546790092469685955536271220445767541195016229566313226907196879049452320577516745636454726126381043949640389679062744055821007329666121080842220774557355273276094808562107974148368238084260573479234841340411645360374539656380425495389128768103779608868319304595376964279030133016689890479126409805178271287084549426620487480844749270097457529097228067319793869442287120808274406511428773128987746007847109176926378474121132506991372787639267289218588767676514366988774481648445108396593003888385361163504247003370098340899978241992003363838143798379265992971943463489192574484221607579166246411063508177465539252077992838451299144254510888735508803401512885191595925821185284543454271958872368333297743818193844074778473295051540371466308053538978610017922202933508203118172663345600900530235502859089449336360936363035191433994367775644012653682376448809817213902780500982313145577703268436646308003370026548297018129982955578104304683915957343982560805740436428973549315580712554225816863134554401174924397312199805771462337137441339277493924337404156461320810448087416711410385932623951686232232801864344810014918452355961674474870441875777658250470521067853581687545679938922577608997531272050125348464082637586578696963042932426576777052010317173699137640668848895835538668385037238332442190179598765071549483753693088046587842538135801845867185628217167537464294594579558143689800019729214165436954963233029283199128918746735840576503491916347361597598490496666026488832081031741720065104610869642646536360728531562439003196881215201781974454956156802323362331842207834457189098053320926967545942048883139994371188626433656755478498746112422052831414751220616513418329980833537779503130161291963868839556134123713086724543236670076189299092867879584554412069040602046950331094098481046800996602346100354111848789009118336414740633157119241940211313384966619457727209856905484202584767905048821799638707872905630006719866956484844547128466684265794329556963020257759591488571014768469660023025022773969671886238858557581088698826878787822473938820024078885662354976394184986309434120004401353998726162245869342708405176147997598396583776275383549714696889796113725237474435752163881912282398295728212223878865792779398899916871514509523405404177118462087175508723960321896492235635772211237034597878299528434770797600041109184592007213064953331984646666843355519042228194564892552735966942852583935429454782000815714266935393609521381340234116786200627512708021125413758877248517053521099761369699298580071552174391648883245957582247557491829085972554669893142048938645241933168080748785610464175894260437846647234649470006791747979346834313709994814257425370791686044320116495316639486107041216523042279744403736501751088238947715739317475941315998135753141758147591412241583935215298212637403057244190826292364340346280852345224051419336837694216942657633438726344815803723800754847112443095891868745442036286219564365688670990744430871811496453427651927972771841158914458270790836633114486594761205247754853206255751260356662068467897375471022291779085908015356261558836236235575662720617310054981495205176452780513723797321909043348022401144152908237828893358911189383580686429847569009268635885249132672839890407097340427348672673304632936369477478065235878236167284516685342095209657638739585661775986002968252113570058544227849961293142557457966562510852996934528562453610932599850567672489667683817746787042347047266770040635137418666023603977272512084018019279946871762907972879782566333045006584716272563960591362287352786303148478705290283613643809791164844879665616845816245422741234403251276881670865174320086284980917082871536247584138002296084133775128984219746287044254395004440140720115597041566663843103195374049586776134562342836430023788572616247500561133562390685476057006774357650080487238818058857428352793709345450561584428235518676954307491361858642762325113931067168650158345872178552714350456354541065053614136631463968466165868945631446711598868774645852137096971136088581424547765461079140936941715815149470014599573949205691791450663302947279878200149369788795128087809748767043200642246954542134566023876869757439734453794292727506049039990109736274781952803475976028539762682685172526837505002290348400486922262916263422930951408683290185753151437353610862409430477256527616787964517974514895359260026443606957392675462617257547366209762919789585772934137289556141982556296320405730275534626253106459615326183552344349508904395720618024057614304470080468517495503799070622826323904985240176534744757169466992912283389480539955538165565428112390133675049499952824567265961846850210953627176222857947111631886216304655894852250310125791117828603330666165674265240229871027974750891606853786382541318392437938739666328208427984025580758185510127345376487892816199736216374699731639562083438137680658510968531539121519559669985229556680551089066445281814230433711371583621213371012562954190179562230408437785602871500878558411907289502101410246785333596572972629633503280048805509001347376696346290389656016499546553116761103894871393407237817405592864503258278542539252917612626912452132256311449553473891718364786099760300772983834693731392346899307331346281284033757781308057707185003703978680919605095843777229164365328296983650160410267944263660732161907777058994668060363601075341085466928699863864566504053588123748723026560577454862194108056567011658006829804506194251855606528987129678092520684136713968641687079212499841914711255689792620458796254442040882173665955559710805193498391246603422338238362434540790489671797511907163751832465503664796682757220235753294468574489996632928364636011672804349902813579924827224785389396090209498062172973861162146977949054095325339791382971194220484194297532760190444340588371036299425769290716940992529084614618302167487869909387890138803588966962437461129865496779149178059457393197131741080870422306796627546414880009287013548556474500702703598721403968897282911490230102694617810032416321009656203837627646330853235551896507321917542625319123833507529177233589825033536199035958983745145819095563231647759383944307168052066143210926352649666391018688728222123272413048432229693105825756350888733518477226480800691523101502662637971840343579574381452500921328065735404036720226455646843088261588182604849867317234745791994000043391180708525927793052957889672940670559184287127378371870546696074443237246379075790804677426133319711892785108421406817962582713772972246465121176568876420584963834122329742263681350337532727947195108333782598514161758193766188545334701810057376982259039701280145506250388877416745853309921108457383799551067288681723381983680995668564365550950066695776230956209117042678468263006738549930075009755971074384910438576988211691043385863174408015178934541618605562843930657094278485326961092201766606666308728887838408818477502751993851617427873805528011798916186235188813035686499753653041225985972109240760100077043900805900785507925692879477440547991941904299803452516091598716157407238738498943718873631403007917602873031475052632828778620958524401722287046849632925783968558269783571505093535552901152417672921753039442866897178742659612952293601642496814859129122968701018375897290793086017825782847679212611466908193201709355700259682310565968912444513497428163817304414943457932025371597264354895089479530876400636938051811936378163004208691558594227737435755806182155513153741914485303595546540874165471510204467898877159372654866872930770193918014335882718098954939038342252063977342462001953707938140432512005454651381786645901652326436826795665712739402097248700630810969876944678170409108819947665486650961952726157005275866631887419287003055468124728122355655803912444802712542672660488696403201912388656922466907825088042752808373336400400977112006513710776303915944984575374396560476417986872076274728498609796615178945671383259277992190011520086134512539819034243017361657139234023805397379944284807589065164250517274251992203960554904312702558359862609340688581411546429428456047451098576656389309977140589104726188491055637143106165233982825793788359571627194847855646462741105344081269850664972488427095548867511166956099683584726929652132805865184562621972961853064237913310919680056455435198584974766946030973106706850367658048503353194240705021265706054988145111336493439953963743341552237524198392223188191782422440397694118714808396313851209749166196281324014022417317981233972263064817965120286752042936045860544356632340058355320187288924335743414136674022163792784886546752982134634743352942929733463399894287356495027190903715991797960482023640667896153049651976599101073934463905971912533664091655311161318732405382403633785680831598712370770091450162063679834086947203677927396411357157989976212540362189680140633752516355037012124924366861114826405747203500830257120895284073415121066795596507954595765538289794085778123272582897887748712885335613607393982380430779645068077056790970605711409760705966351492503628436811552010060164614974444778782418329544264835770810556828807106311808920925333424003514027056686004281732973438741065319036233858606087782497735767403778801197072859572393220913378661050473161591788723258439534489966870833223144968991289262155508716406429105405821902933235376596305626891742714655757998741910995804635776013801233906104859731475102798949204238921529479382804350693877925800363804641048103863455871757651740910069784445752208344196290014654240797837846216241276907215205297180321352486179974482478754920124927437863130509949547521240760806383604785962922305331505593215088080542317355035468323195106876798391498725418903042481599366881965391803482951869570493343728802326568808470207686117430062033186980040785833581095316492275593593586314001141518995419876430400012490355890883796147949983421987369340217959958799487900985653080978627003784339536960654921588619700500331279343508451037609736605481706075848029310074474182676783118204844418949639795607298783550031489718941403968559638271915121552677670158798420628253720838440011521598517561070652212732875272816476253502154070729715915226352537617667209586449579871726939636636615000116522058134462023563439262990317733497906786638517767064527280907004985164982709801649021259889120098060006822805752800895493564437018259222472535273817586627409198269106085102557491832987263450231912490416634201881898854356849685209087315132319355102264322524088816908913827748113258730870302555499323908311627280594759585040869024159150533793188307439555967069554082902391430322469799604596570984044770698746310272582722381115165529009653974024889134612750760025845918519018340147897086730940857741920258670192480891481339869439987028761804701723353730265058937107207155754725930771265714698633686892537402512206176635813555241779907615597952787146769968091258721307825282648361826726942326643594446317464699098707722047638318559016432773274919471709227067849743151878339539985989246804769506124838134598019103509960664488764785170509251370376340292228831522408400164536563940162314177237582808133873424325755999609032718984997107776874680733813899367781803918185754674484242526851632529234534655702341631589275943578402832764889784879183494395473321416082715154547740022781062812280574525435512967455592465088671659376049662856317295048078036827973436913846652165830380131476080400246402847540426286468021800107427285119975352871004919632688398912554976446873640241394138585596415287422149577752784016110519269036849082284407932227900925741081001237672842871107795855699961784731573061175542835636654093866271000449560427865968984650577665274367613558649778669519821725389820079130646474910441775322879404128453749824761861198096214946494362227208062468670921029608525967060702853157329525369153633190503046082457633401410842904251497568425677916762990379139375620638614590791642431563830174880365798902415654850380504748523308463019281623890267435112402408251378835644581874085006771974509468228807498571981264056615139369261265282425885521049721529972726119813600464521956059345230971411759605033235774782604621560609992285444459795479809622509238685947624659585635298494328597461547700955672949711937853711075504893989602784830860567590428456337282578877492727634110374429385542072151324271399962849295902710985917494180538896111262572794835165340617119146778511259269138245685695862691205533105654248592458877932732484140706317008692205161631695150004645581662017215393835560864400573215876217013981745195432368204412339644638419274917100923216869272005990128786646265924533354374476160205100794691343673492157032631877161295407539033875293419646980102872321089612059806909549120564952612790869062281020029016976713466708181849757982168070545341028924121921604131015509684442804112573997094401823160357301082458757455067487806475987314317928876204813861588780067278732774515202592915092460933378583117710347666387849233645301499351851477235493491222503044173248909195825845952709088739133682554801651435756992962668450677886320730022334647750028137667449291494580798317895585970116722228316096443201817419048842787451115263305739064809017320674242516948159860431368298737871467523157961122571529215065286008155768800708735328106270639523413683582890517373015371203016830104992036563099237669895267010356775455724871544980584895405080094795144210717242642675375742724628103236408641905503264603970614961498551688699308054561302340416108420218568133878912356802584151595858857912520253754671511793193241541919615962574609762479342208833897487318200260343394928076714351223867365743524912192510757428221901942518361284737981496443378836634568168291430382267694571613791153336773044514838456326990922923367193077532846972143553146721277432462868392087737477272306935306163066134598557485912364251845455664468336327944041131781807530468733560726424450712008285603065135125684030982799239320131167291054462025986938099145123586609184022038702975049423948273669332226528459333487222926921245991089561949250311534478762560342481688748740513236771212023992311430798068084273307546584119535828614404647797446805968328104341159300713872437752372312431063977021569736684372887050071368420334570411307184816771249689805278636329098531375772020821428317616616300578238777669577244796143037469798495657175409706222688761590556720584750022161316292497073223712561671776282197419092904150866464978530182140136567413944943013950544328228485445782554317905861746734765969083153105830262699491293461877292756438818926710814692696086175204588216704889140486825980289673651069036465553999893981895273305643969574438747498675583130731340877704275618156107077792421989187321982171303826109765679543566934464082238945582345318409656999085809238556763621180377709207235345387090074014367670059478076782199381170291016690134791596613496506075995238841388875184910277970149274468651269636903797787097365153285028132387230173957387104552868415383174697589106259208897645515133990520236472236491550327153276555712750389666587288699953174745472900659188323025284309799149631534512271855648278930442207677123444281215418814381512017890137080010926442691582607200964114392818674515924941538454493804800095179028150861357934498503363738649752275972917845116739479606561883262840948251874303575002416923698303984384624889338524649663675559557209434701475571740034912450202718949623250805417863299136792266732774076843835406570179339347033216079471112435920631960516980113552424344136593599303603261016541943074731017389579936076189825205098260403414842194526569206394616740378919522958145156835623345364639547047402700588698634741906396989826981837556707235268815125495671302560376488297415917535833012372194362301694472560289594903507827869182780687996920659158514073074383522013824300610946808219769823601280747615272550435703001858349564246375369572223059250688895173179473661183257546563460121333390873182307561700757225598957670773050489116095791357159149301787981335579725769732622685833787376274726252018469777372349961205303861212788344248397599273590461932648759335211130016291876108478245605459942319764223483507810049420985517834789975477485525522944994034041477651378965162715154538796717682248218076099126106228770956852537832190733237876590081505630866505655812759090887379208876301233576849568250694397059400957020633206284661293087823047913899643323992225686996652800753593736427207745628543651067731868049579770295754614552219242927295808631471441137510800574291074010013916907773155132376785208387252752241988112294914865216081509501793227218633678842197555355552002742628767127047695186851276439287177017319386646051254758560004016578385412114004322965638952134842852626879665910201333348789061328331539734732757640663430303167298039968183186403883434905406178135147062923315973488854005623601980127886202203386779485629334828648221720982984767878194514481456737754353087856021627763869526848669505989997368731653258327677620196931536718108803176148974557939974178297462520983969114009964556121328195654473260278354064492993659752942016486045617765903546373224802507218669874410908226461946662545052974568626125931124715980309999505670385204764498963386744599368733501077794444623513559274630961202307659702942977888600436593785278638647719880412982198477101558460315162748482793066341097687863822371421628140774999400286497658269865057360421171071524991969227673532958223238166430770656361587363461067252182539595286199895206561231290010966734528353475760589326589788211600261728154707495385101268795402283229350990536692583346530029547165547154055421083492748638931579609372559158955686006595353040843861268871500482878895785128008419321734182865276739101260432690161954454353295750054591191863636774257251460662852119816395210044737382012343586963918019839874009877352587232345702067371395990113549780564967064375750041900461314624193560169880536600839983646922046711642116156697966343944095886575384479997073535056785129084723252545361855908130584728353953619720330610494264613883549455238707553184273745131543114414490890593736520575405507874908421011523928386722602552358692841237293070279206399143276531248296104480091627238640165798868260827563816879027328034773207808231938990765743035203200374493009421988886557254932149767594758273003175183267048612317229796410440959582948140909064703665667735840327728863707699964920490600502245577517155738540368776462222298627581308899090071265997814265062374529055503284456405566728924455751887667151839777196569659005135627731832749843603994699380366852802165002519632014955731272986371595381710020557141458583132547187087257295279763233095317114771881259063605994270663401731774616713577393419727758188843879677987233447302476797795549878665786947698287591604631881372167468670176980503525544056706146590831594569904633840577442353312983048129636767386714042651674398620190380178318465310976450834350557168290924924377760228601510059515028420881876401001163493331871875489774043301127521812647629250681633077617669124963930330294443575106189775986508426865209111598384105753414302618807845239528165441152898177926936312447675079401345913572543539496213682500613461861051177065300009356933721100869493526134616002519225175321533507011562408692999016756513472536138796010483051017715675746704313974969368731516829090856819212963253229442036796700384686804604694238653830897830896462476635903804458431271383235633321614897613817829914923951039323849072566557185946848632363223280085230378850772285513219144534706429185996211788629277100542017940773895567721787014825025640417971422629592473327378675383030504264403635776033689652927409981090534146628064257207696040511285233999327117916671141299803188910201326080428905664961217212129639511140843175501721170410716146102199844248400893080713269397446967498957420168970219978213597844211949001766166964188204692671945890135288814510894178281963880722261745127554273930413506799867750939936514869252876120052705895359001163645787804393485705653672070271374675535702164905121244109298310173469985666819279679925826687965438005418283169557271712310456797143106578596457725057319785372001194467714971387252885560567946574928625648600761772172484627120620937288059237719570939818233270869102041802813413018838681559662823707176775349888464047839045176252873531296797545227865321072802484431212084652928535169706100053339898291674861742162174300771263355169335308075062054797196406772964341388175720049121696513974444688428807115456630878104078117199295359967685078152579119586652963196561838147536753163712034643257295316623090840807639231324897622368867923306503849378835315065870082319951422540854339686018042341034314269745226121758473270036770110288982694209112596995284896681646080663427735205897293850200800818296982592684064298641774385298211794083268539342443413116727577415805401432367889418902437694105639092916577754998327306333968132780693344700765134261108737631250027998263917782999125546155594992188823593952700534318726119739552490102973884449160582650921881897354071585495775281830792711459333282534430535209279572981835071283078964237750803962438089983398192277477892726065030811288948928336429183730361053993616718468764645283385987739752867461321071410029605371893459518965548546006453610429526241241434440121152867742562940018844889081165841420835240302109454745232004398877724310578578876027465595606642429534890509715994293025635344627373741019364779622024489879671905254393072140475601435789148701413083337500117606479797032680775378039552783649822857576225371972547038931200715401255794262639148772428147788690230244833468998383216237252509073876978326688369142450031342627494304565459579626184635499272642486487276217972045209881846646463475654525725410375983330837082696237005297741383071791849705258160747698838881882466810746833858057804178918767206878160185037693866640592092888491545190863245050759610844829025139699600566993934203947827616537786306017702711614427707856714451406942852894378383726362946930187954127393890359173954653918794661587072798031505959337457002251324325892363247123714017915542160459730405107904753573328411603244175023405088291269517576315145676815405070945598833137914140478525451883124397600396139391098697240584011397170821556149737284963358496443241188680944704520199914263009314443420376381306184343818157739871045204794032832169602848512635168405165398480563925605364034633810929795238123392679743276872401893775933191408696242119170930170142228102852093104302254303694684028377467219401413486071204153206238445865768311157169408276826608861391245798607731601384923491109516680116961323930176232959184450652317257839498562282987346016559472819883186063778490443386421809669645085245855150883606056607489762189070450951130680930177028878331829161851983735887917547660066370145695027863803436745170638612936632884876899720703574999736518338454629521252623371783832308497586212752601263476444259514540320384047503621999324801566856114388104109246736549395773316316520009814631388244863772201198821882378668786761878456923780299519060397217301544229495871620887955988078853879117193091154994887846114282250128771906195307420241494241480248953169229191757651972283726977623072815365092885433182279452683955138878837234778978480267274776899624289607205098380535865802691527962277196182582488425927709683593806586228578052461577411941848003326266211689970496776118897439999795396897832245608282926877069222589831685388296790540758213281255788025861417980462605242779006723191391362481266803426465728159426185573407009060907141178976947655016948405338631913999038335539736812135785417847684313510289414399145770786115574808888093000238896854460134824139328465848551667084387508560941342343659461542399977896841478364947056561630378064889203403481854309748014584730280728019262667419711674136033571271373074838091798163283913477029033947256669345531091490216033506336974929119597598666416190635094025359822516481969012797950261261461262063498941055059114058692567285348303894523748205891845091757284965476179139506717269999222154331869182099205047611910769977377274125560588609935513622530146922231115615366378267698901622588496919262475905566120511587419209960584199802425345644080604227897198013776409154083774296662053959648097676252463509375091265943792930425638128629493781730065873699628994581077458388030455181318234578697876788229620726118620409134919239385167061506582388445478413389346990573007827037299349765662768272765906073926140584855088482410255403724693250561395999835308223382278410638861466964559713855334238205265766003936797216617556988783838984088101782399644398700120848226854553251539498719211441966499558839969976766133889131466741682506102971782507766930715796411870177603299819168833917278479441076300171738039870656548312928068658591687900736601091678934098957547721188112055240026988041666712697128520785480473578972885131477935583184493253332001684999254950678833912833193187211533092366496485444760794943265846134713569978373270018657279249780545632292697170661355157853411584726620177533176467703056278215189171397899144696587951146615716991886553981047680548185883741907061796147269861756808684701051658549218576385378370198474098268327191761526999356756755723928078325119294265128234737150659245716656968310933456000399756103448669896542328693285464586498379550798719757504068546996923009093849166999964627463541322501633024264736308705343364028112575565298510442028414518170085626613465634965940704604377774315748552963027482153278387844856604602096693998275180726418629674829121927397213137406757684126183050826233052766401709036845460315084898601352666357635579667409997085771995114508814365781455836577962511629219684865244717448963068059772600590164035727696090829818392579716171201891474338687294774040873404585796380662389453002504998930086171103412810770606915311918604807230061075669285122341032636105021438792537875286147098066088637028216624120737529377750778634237312375293066479110047496248150474696759222404782283241032210575529110470834079770106899993488563273494386830650223667013674490121965284633715103154262971122661628324854141366883008749052404201151677684659585183423035097370544477531884052147491680732080247620149211000021396187966172379976768075043810867400132852228688286078470241674923609199483989633303976716725835330662262902196019089076252961790300775568932764331799307197696944552701962142695460786630067487367253652183404829784132329839674665663562055978487643526892207410097872183548346780919134696650642816489747486826241489927542012375369864784082472798222171172441202956643619735180299221811589689473024376579779589574643550467626776870189693047571888426277944900246235018614537374443701359094223707888429430674461561340634637722035073295885359686125117735990466050766496393949035668844332130990386620155001720136864704558183140950234635869478113323659139595650412371827046141804858678371189309942005992957635107749598240827794544012004667688107088626007634820324703235090085005783468718625050375642320429405959201543394256671563726873735218348533110228315367104163083393497409364405311099508884128446178044386092328190293203983435937522699774900505036063344643004651034247696156304315497096865743172281678773321272258351114826256744553523132707939416774331100976375380274874794973113069794062270646528264052922843618651774412701730736644544979667402040226007618626928441130838367848289790524202944805352471219071148611737554911653338334042045543514699745470984418657793584768711414095513745652941093124890845279723899060071410335582485090294674750795716849451252279093153272291044964774896717982131056330090495510175816190076354446757954665529525298744995036596088721241812326275600705481902086083145807936388420720674301165018514119913660022681200947611826987945725938271216557411589108447815019828050934071603198417732338385550145097853692360408311769490090453148575431607206759054162528449091641573639329200478576143709526759750988404898499015701051138773282693863408372861629008538155821386959521142043136879611772877559900980348966869653083263466818772318297841226078802816235340589866070562590329055934176649427604462838246410472683851942264973621858678297770738117872234300716501877428421403935363520798752757160270894587901871920548626496128867617343906393591892542592720029194220273080611644851477093518623870081671436858272766012282504280050078501974498486916198276022746980474559518875662468503800921826297067431470383455522362182286416150595793726563456447210218791245747593402579101910179917234619047812096394000053700318739254851447751926316642597126756929083068058206989856265954381641415295213818701571145202735315887247514458829687561878868708790819842106258166763780027416006035066351101757246550595022026607544946518294579301070648066751354422875472985823390687284953077472162398685717511611877700851928763368102032150381249146457866358648598978412226562464015480112584714054798821107023084382004511552625831536880024280221980087535136013505703264382660869223802927175343136166917676942387114334151845735298861557295417989958349775706832448177883232485223180627626039354259290337845805973774085628409843354604467341503083260070494009489219103402919739226914460358990241639092431050310913207768544043594319619578443547395056046145663594693812630791958698172084150753588637518229561599056424935742656482785960546398206171871915500907396561290592449676396734936370989420493613339955731925689273869064909077299733126932283696847009321660627512329616071091717136990748512610683142756089649651622041842619536181766973090905072358363286642067513397119061331093136116177180061085902588800176832960394684099080336597025371904197084632549717864991148077376967422756798949777496954102396722465516305276171401847923606315599457467624174103741753360718250069638887938835917813800103605957026033323139532941098578240529327018002758464293450563844998828167134075639748594271352005501310086117117264050056954438488252446593419294731038930340150658144608207779639448471212424682705648116751320518869209112418688346368551583489671415998243711425640034678661751050073103712245748016695694384428898225407278420553301209266408914150444548307612494150152401609536540933197752075813209159865960365821627390637201877217796963602718129444934400469944088281898549828159806167148947279436711568583762466917442427132112897827412044157004450694935442020521627688718204698793309244815975484552447461737835217540008630337472498288497438908418819493235200920933409019806700826460443607428278318618309673646577656487449933452769059023454532806978331691020299227280891364790093606268997151426268889033128528488940387699601079303095309406230144496197692824686648944610571403652779723801629946640901151498681893851952544729915639438126145828470560814298285591254716771584264259377236340739438095434157033031584180473022228334459967499072906275093242840302932463130066007812769590481888275166394622367737045553918808413331198718812827322908704673349441669617124279944333250043344423944776657933983280158504477004772017616777245893719002640075988411430581735531304613111137305022183573260497582543524005270787482004261089066289653382566755845314904955563953209719724009232882872921197017691357100292905731798813913441595898763668520558241446637464837378333195519266263159332038701807038967128120627614607458505744304861063715817598549827989760240899208667669659337268035739846407623298029256502490146232054938752853498677627277170563714001471862905871259048331546911348508448684882816134868565545602248469782452275631319267657645048413703711983466200926510657357743534346070595983172389869063063915105651774392590290529697856672141832769647358244245513951828223741008377205051549499959926161902812192047770269595501975796209014535827014827396099580286423523928968480978637827260138908321300188752502257850269092892637314665201980003983510064389060363313558552073847786293574679801692751215601368244581911764290012173435527183910130732596322431910314945736640146219540769262351410355704981596375592624454405647818431128866121091797486711476066380016440992067918931935948381327945411220973523650154330214991753635860523853085143834279827451493253143368097781555851877435658821009004357362128269151587545246418299623179826245340764126934795594149083526269877816157370068645213357667160271248232039712001802428011544124466074202125960017419704459993224564187190022312438674042973828095082887169003646197555529371947991402928433975710244126809030701848675911166833719820216457838834794553031148037068607571819387252361914921571100446152618776054522168215000935187928263117577502756051587195910106900095626446983182004608449816207031031492877804129041855285315920797111362861293538335461652951862121866670851880250265094361523198100134988892384463979411899542955058631176050899646861980694614005398340970108772680727233091459357743911595600045976897216005360314523924956169733550157609971778890264699517165603576597456266403015670681329426700984112519731008442724215487489004901811837835509211362803666252034540827927745519235860191526871455035437928759382076285380526487698557397901101089636759799968967033150489089946540331993751020554045541626477450515149191209840077793330807218402418069434674890321567094773994602223708969671794910833814605302668242710578130025023570447586381480125798914993522786828012641101453666636520896972949834172749072443311628713461616534284590211636505823577985876042411844641773567946181982285234050848527706583337310920622624994743836324281824507856493463972047848100033273301599931865328518211086658652050744885015052715584934546715557731008266738442102496460920337198847046674610698975135370887083081890091769612001156063600584481338461151612018552320736750379426285138121340827357850593298099554865665822602696475350983522718474704317378211034932618538848978170969401798437067498343006852362305147037219146453783985522733122918114860499570993121230061597659176294008324059636608597921696469605139051638802023688605520750343051733614780548554970545395615912067077988545470298921056267367088313036076244455150484743894995362781762427096531285488114719307494617272002479138021174713273184920980277782555633647189155724796122380513264200217161866234047299077708575651347122022757908161752249259346236433418027469599767077713073885935226814010860582102999416929861645006059206395032088806725969241361094850846197691723726103442109649771306369304399493946627933688837828461200531740826195109965439123653499140662673632520633827726211327058049555222139418884887047086690095027681095998275616845625283485563801600603821230869490545839079679631448590648181032160969016028237854288663603222622380038464865783842821321798618399153262498362144552758014816032212164713427966040716277468418420307296679931405112367981862218098334641071335952313395686506523159511619453704095751191308757424536926021862037896511588902579165078470906551404587196770174961251139024035954243250730614487259978954264170077867472615344397342057138335829954804735204897580960700172162782860260010229120362929197489716890470187803556791213735842178772002515143416626034757965580722465737382347656912094478617471638570162376223088658514151489692045972113237594783949604982938392147426132084289477813881134366501674958281199271377940310464726289599564148242678708453084725888361715113087156777545625704501141160331022638417420544445202361467820505261489024039635072525849811589032317379705826448654822822431299557156685053717268094845764316351849572582925770036540250925367676263201041463588204589933463754065309786605966029254992267697872049441274844632438068845613443151682003510386322309788485373211770282573219824797844556328796071971312756747624884713435205107208200068114473733412177068681607487137141875077862414567741190214828672518855055999526877329287732036943838599878786745206724548943721911377656664398154389017917456695834849580930728129053720786156894508243993560249529405210145365018427099885985624346022043197106615565110501765814363593071541844550409604736192644032079156778762156093414095965470692075837189919913498287288752343463893880012213500744076247895914529360298517425275187925813165373397852736554790281863947462776192271998320683646302643936015366529124453392722591565984753621647510520933675080788113637205629507767278641357230761690033435934259646323958089549900368090086992697100476563399431154253413123274205936154085541806122239239197630193672980237119211509908080005202628880418539916696183189099711486571764169402803185244838734625437115929429090502784681836783510317053635182825846792657014594957644364950601720571971773995808218194773417721262539825269881168678284216769938273459806139568364968734410519235541035901604353112349547254643094121126039580833336696905407785319134222535532260298215444757869226122450701252800447331727087159091097891426600328999681302814100404553291359879022575853705301778797376251060589584301599767060628984575684793251176104020174370962409822097921526313880058034158765095351844847351135594179233211243543557981054031142488216573030472204621909651586162530855026434755089775039814840645364665610840029076945164548013366781773312512926601461222570044129577836749929549244576575939322124162789707271075882471038035318977968533556770265130663127959459184402485780954585130409169444623695945145860009139834876483194377056561454430589413758383334173869962762074295403730069611055995822034600205754139662128376411003175266365039328091490958639401290463163227570945008849112014625709788377798572266970476409021532288833553293335139261246667897296078801788571976993346240903211330620573318952092880865886649248213498313406810099837968560697872836929507608919177488080460182067621004667541485394694152024274572012040773225100169373804118513423977580667352566117171232615994609540369783797345133442713953673205908383345882987624861971193756332228872477597754599880845821613806154935851183708426768621391874884390414889379633978234385795349152579194603590160106286240280451524746155020658742777186230049330962241849876671773397998418455170399999932713738581448834174398299356886595137272777795975362825951772979086172033599110360037940844621296192137453718952146711102014379407524543921424510850853315140903511979018186196544768518335363952953378780393375896493386938508945174025775172648391661668534317008407529970851409658849557167298512682720701642046582434516708493695841719246347864379918116022747403671714200749847561254086918971690234536126511526758031814844630287921977363938857127881624243810322386306193042810486618014026954612826596142848073030031325972331680165901172294294279300928217874687123272905752305507021361844480753694141809562881601775441253229359144691847332566176780556501180966143777991036804656944767844990879595591272388334460035594941154138750973767944995141325507535452199168030473573801670267795945288023606812604109929148457833865033969303285361128184202042845444879092131378526959298678831002633429007781170875531733444327511035087110978531652093985909700020700316686744223658782905748047214363321136297953490628630185846204441225655949815347829290363474981011790477973632910911309316351119064398892917097714516052637244243523247427695691506208864512827465179032558524991739022400767940431750712765760550415822972454464705605444406848514210656482256659934350684113463202773166819696563204985684851490869168309294024371770095903602502580500257295908612243025552741476487338933242228871784245288146899675988725862947459926203094179678417229846472513483935495082709937564191757620446446503341282412577813122076745058704040161265459099990176133811075212875013369380613944930782531255567885811256964425435034541532475511276226773692436820426208447631399752846222581659693152042638377545789008458459800985363448082381393668286740578743420023951337883163849847844046807147891244956031906382690910702580573208094855920297678146896908606482939343841038654406079439542292087852802449213223741961955149440985806403129280273367553972319972879005700564787076049250971735505232834601741331195831206201832809048847186913599111309536545017162112702670128906345510571158730776906382760166241864858261104748846666322193640261107823769554433493575128182661667699834848646910933988037540999401467827878234642288235331357716251032815720216427876497300123116329901363359013882845831700057687077800224930519061874023042526576772205828953290407217803951442004542600370526080495540563749381591317827026749340695358642595006940237087611280126084437483743086505881411895870120259244995469152359779382783035477685211751341766980117027314921034439675922679575912979913082940843451411674734455246776119943622230844720431809691934860438875953791680306396522438037005050256393854829192611011282957628096805254106532198072732815953415790432758420951460292223893941419206412919831993525161139645442608389178970489706255739755025942712455505887617175487854532538530855769843697207163212289109283480468000867858742780704928803456570554002200685956832780263468780065341565725619666941792067029697403243438003193991986762397215360501398371312553595981985739564734695610405897271558989107776678270534826389125073576069811791531567718252950402326757929339578977745460181838108353931536882071932445139170445051576018283049425500547392892407347933379544332884659864381689522117958140004838436433795837392299015632218797226137525864674556438744348290024082058700357737070411701885203228931751659167839097855092842133364008764563827859031444185765819192753969006685948398141351202297559348916440043702482030039401906001682177275169047380031511198482788838158905890182012564620011794647484161020790058928989545114238388539112552544054874484215109543913877031360038480715043178996261130409867922007710657957588560908360348781111778388804689751618823072186830583411000773641157325359695447734314866092461253267385374918049268522076355469804377353524819569641765487587564695728716209179758167789460261265205557199874791647978157920539779001847455594679584843557306189752195993390516157424127592379883631343894610452158125799221915724609711947283162903232402683984458840339736600556347951963359503113212557065728060519216615719043254433303622293248105384314305444766857670166702613025001683745199098931161065265443377486112178778629939920693998930915386772554661085475381445975806276571796382134047603476343793172664474726107770437754638887576072056052008489638894874515963001089058286126744086593802518981311338261195964104730052007792707065416849507878736897583805055857329285888944010372052136403284046514669920415069607599266526875736103086704368756008652983022425814522997812174522605223829401218106399689037891200930570098665458397256106015499539274267827934083756851864866129596708556911479937835788932117699178599563017985860063219115493851078229425990335260896067776563801230812621882311935243228929913627394234257816245600392289374503705588656981892544633530015690758660937008633750641798736152549139118876635182815165735275949195209682357709324231701231849572237375121935876162031462920264133668528844990726601990356321988851928898862525214382154994916285718526069438437801041415406385870507118113369263580632347766855026133859621514531855843907573588361184059223557606871792105332756896931516370426253873981462382246550740315070834053908228630965432863319220391797935311194326840338002969462651826272824306927160812722519309567033283401052675306341161660693385013566686523198608830955582428524821984311462536244977445275610470368101152661724037477013207712047377165164934436583539664193655217180602183989702287595147153868422574916486888811629293354669099711805672567074246794777878384793826643439965541038674194695765488368867686248641710433780137109393402558047756654158458209573912111178280289169943934848459388870439562942907271334960590978311167882326630456758286210630146620422499538986320916008942986242776183808628645835488684194416557256598057599736087024546535850182496176998457789498591016174288659130333595329892226734058152949227510507263690908456561907799154685969585949111702894639382433103025541196291874448823143465816626564254455772432893305000702829483963710979742875331048780215502070568776600440611475180396456823366881857637023046909677436742986879710078631641562008094888023232404448477203567192830670820517751013318657897019435976519830984007235466916052960589352421895686350234249117656062985910399221115076446281294875979660220609950438837669262883477018658655415146468197085994493875763891247050513879020199064988452313486750639484511891068360668826263459098611132314208442118115067766694136036865521341442222140036725839889461217638655318703535150408317046173807099386479613365702896467545262310347114025888101768338347500893002393853496073848989909039569788834279125231816779754899482393247079698062879641109612112884603915496794923493985914328680432101897532070466012538287904112651625083505264639575997751947976092581416036506701871451110962440875599990692605124009099223833838034857190470860760673631382607997139140389150200537757237828894352676912717274318891547678157232552803973009248192757453028914461728667683541340031538230076050496468030992717403103208504836034619800767259586033304229431963423850477142149871415621919409244018896685433055830003707796320259518806094615594270493203750566980414032430493302469419836184213964173153781480003611343470682320509269631062170951251473272226759457167839188647427447208430282586356658563221148733648149539024347483333364623384760268892758400140711500425272894845748411508127645921850677153909350787064652925262607945681221659072430752265087020853101130933443986751566604549740449574053331424959296164983475526718300957189558219716510986512567311203713521380871774876637453743895811735289682578028958292045844221143079429415470474800680441888170740809827542153576058173021242990775333114536150025728015657873550985589965503339084600126146657140450091872215301196638738760812816646665861386977395308384360934526813588047445530521041596599056862538944940063333240609509391371473618703102806260994965869934435206943397626730493425254279891504854304395202223348429339056707855125309463186614152557032232195255266203858800753423075060144520148409205004510875629569582498373959338556957400404369886772476640708760750967514008256120459685581170497524759040899929412066020797167772885701973040459289352851819991294782016151759044875368230856336591512686940944779717427392781353872882148934499486417183107243510656765895551022032794292592972319258041107492730636640316511011778282326044025099144983454168250005254454981648504299078969518412650387785686431890893837297043938610212117491313969925362417987308046275502138373133980760803631226993601047474235827648065904466681547086518458778664199784582648215716936175735681834001552241808111060539975370311493907937603846040401205452712219523662452832312074286141947957941345972647760867520315402134890563148101576811548597765144484415177220444022220267740196305096038089565985832641255164503765226015663188503400559468738959511079748405174142352730321308305189107923967127713768057681814047879416540888989853248882905185044931887004008023203095444069348977011376966097705959220709644071415441714414103853729429266802301846393771645440578246425840204981318534732971689059204378103873704456099408712137958542071838475617843235356195985932968903416101163134927806947888295548433061329482179522506800076385948391177884981760130797931715979630374195358674278802044268735952797272784301838623069615582746993918687383794449946524443245355482158460955631791068343587298481402314298070144972624506101592088173907416330159239784327970087935657707701403038527072885438094577179343371508669364824939065016642054556857737019584559860314464935872412952809941299031204940147774293991830246765511894738713462596719321555459092988963419150888084930181092096458903798642088394478681826157774960130884678410966499784749473592312507810483465991914058194249247907208481290325605469158811402176440131288157008386729905461584974202834555484349438555279369313806936172676834142789638340064049584747709218456946672218617170047434185785696493163415719934293368994303079440683893114091564255618028066956273536412733795982125166480077777889050559816527744586406027373079185768411103099862615539948633731696412798908222479980641592447642625621087023633606178175557680226988253954145551670085876939316311059922035731205229184421607421224750310514731056927670301034656544783885589113825199333985301744580002952718374084714507196197695222464678887896973204982861598204551274426299488303972793144884018864775167149323564986488073795520939965844679850998288521838056248663236552884443592930523885924588562294813566912675179480238390195938987089226128637382132442411126004863006682787407708029024006201026043639032380979856193662318022220590430287743466009321775555159606489631883475355903542335826918730011056758018724534441224845676804854954574285509893190119973177563759256716985276458678721288439370194163764978897374625802038554879350505113736710290317248016139702026778800052897736275242635744212950505909223337137750853044291765814187685872972597297032701955133768689137565646761429983425077937367388648440038471508956484289125236728602465352507963544688464184837332212174704950778880088296457236101391825309305099352792482795805071539036101088268490000195821001610338764775357368770574193417526621933997246917304726961229529204148971331920626062140907338840673212479657971577535814363522342461375395997731220261686928945125784226468764387755513928074447310719632931189166701904057600836644078975066637588091511683697951111842988087730520342710730992928228408792866719394963575869612534699189528656767625118426940837319479643164513826996597960261392707887266445989165637602382179272163228780511304991349755953971682183321523263330726408850301113491301478030927249940206209625376161020624936422994013419268466883332545084706883069047613841751177679464912255254738510824683178815723524734623301451608807664315366229951672802129355182325691364871789435776595061498437181277277318061029698594419202556487113653394452679078377818528211544411633008749541615466093531951140016014912130680453438810404996112854283282293841209686192328791325277556019825588380447789665317306714657156967808731526389845715584414850405060736266001928177556958061746517393051586571710202846278044467965921592149511485716313265869766677926820022976374994791119839555864168571552890362414502001542603852425425554518064192174719578376989595287052205331256786385807065370589045087294108078897765321210834978299747094126829624047740142556031219707534896512891497570056301909741193625398302941938096484825098569616122072136854654979113837643348311894668788954292956974831717546930870776628459744555101878060644307215768695309933525371985146594461136125256255759192080815430434546440860144137283054208969124154927639548937749616991042032722297408748820122556280714456324159602864294341923706134015229551886226245514537611459800235876451012887768732468443306929259277658776341965797163696680769786327640155896065349130196576042929802516862400559212308580920073805152941277178373951136246340944527428498520769593123358615143160128396948795750912847936737275022886382020413880921179122846825361907763468768485130469275770725203934912087851352406146829654321837411392780803725215768936052545439731493394378084975347379537878094094216639762079150304652363917560378714673884577576592871235006846536755991020801654414165584285931108735142289039799588754448891760868370894467453446697775081140685027646853871235664274992181607169337122345201781790613724487479039839965761519403157487631441403863128710194419945984998380377192672953782797693937965824109674077075444186460094548902716970859576279643414227450626637674948722523332272857087000031305350075455281074762522117896296360103397803763030886006671053580794625775118533104321907099929754533643998317315391325834722915265390264425512204436437149903516843077182134856050253970824633973776443158333214662341797017001752365164696087773570614824328426462243795222912315115476441219493085576771530881060145805378035611780482724687767550307397744231026433399933877580735987326853098541445733156202793307201906659827277714315133953870180637163538664825715173090726637278936528042047398702210233036129740023262741021995711857114591057901935752805721312604291959205129298374801508712480673267878439350071325370186113423450875426521143564861757668619182048186199044812591459839619161901660649703829007950716630779777923490966614330833633379933677244805256530659194265592859004026358412643498156683957193859206060793076778913219073434417928936824957527403572400011041629370426945639249385970094762398331709533678350979628545676830879391126491840193925116376124175766578542079430802259287149142051108610914081801275973017571415212146832569749452138526967791788508186811879232307703733237780799499760555849048708213818450342991759199065916259851478170983084518138637073716364218763648585775414067778135702492387234939290353834126031521492033111755821520854849378382287528157451072443600175746510910350721508642943385953264856039061150112241595787331801272187311359972844129113037358133592065248238045410689015230659005152958535364631372603816102342664248831069618056975374996855171425768579897676949809016299161513063682414030767716693683627247411808802663539781992830724798180370789822499309110792489458266392214106911495798660182946132949291425098467362355804188892453809627600220377499732294521771625309145534958436465776212793336145678301634434827737577839988834210494950380146906247819205905190994870926204872673572927187185451262373490934417336927926343682312267750456929563078765874607723796647900917442282455855735649178622683993595644178369599855927431674209176014602765981582720930939835675376160665135268446361948370788442391864036425854491524666619871130902641854025137699650377895473498173976481425323374539392586092653280500561507672052735449725323197781923440247941756090786723213808244448476074780549189113892929349473219440709322846635691183672842489425824412569723454274761665745274750736184377540320074127581846538656269833464119246494597875706684083055441852822468307475684700114055937479211806068324724057929184781517339146836704351515467264299610408241735429735294365644026823277386804150364313138557886986907659489487356454834734555814865392665675461686398158029508354120621267817977570732434618432089420107042388642533214813974422250453022480423799638528363195687599923456041652898559522310106329687281531983671605292051422978868118758957204152146788937086662719483780515281586209939908278981607145914598993425010940809309044687218680938791147528086449047331492143047546295962196114409154824571001126421947539749164345487661310016735383575690375433126488922739787733359745522936424202917839848688760325088752011407617804299598137298181431135444896677896875437605300092870523290307484786383989967648606609524084028482638142205747898989039843760377707007616334476300965106407656196723955946312135398122694713315220438845565201902365906785045572501609430877239887417318978130346687713416565792315875682794954868326571193601064411259462139754712440739303825787252072837672060776668299337178891126493552955222019777692606572817859118810619028530007088556411076670442228091734134019744812246643556965935371200859596381912726877974055722367622125544686457925200172450783342806190229711332836886390049471472048908110687794460318649136087324407038433031665246685708180598192187126530013913781393160437975887412072265995708081456888170926260263841284589363283117778739553306959744166933398744995735004116044306471711939540363115998054078289951012966251334711537897262320611565049778755828121535950507817338841184071141937588900191827721088424272325322620666038262607029088591392298079724195506797282951462419927510169779664808167467160760721297726530713343079953297508052339020077845145193766577631730533321513916921180144281501151022143840201587555855185209946046764559593460284639195805288856175475079156139433263644282486841998594379269521976703489631792957250075671721573950080097021808477322725234313688923193215720842165795073477860597886622839294157058042137494006817661086166171296222832597651015888478744631702767731956318535239317225812973447209571770111996348013086704311901892444188454799234201057084846917494524928160136001673810375704596531293534231528427440156805608001888470424568098146049815843686085550630453206774009703008509871130597649964158267917103529255256449740354382120202220238668376699641648627067384123634912488896529605811658071209389089737005442561809939682462104010517898644987221121095253713438417085453378530539100443347436078390287738594578495460396782586528879928815059823472736124698220998242184128891716182236803450480154455860403346391765330454315877736264515016967870366825974387317543556881495927509057323571804151203136816749627932130849181917872527517852770213696802569746363782596059085610321390451377547059150330756023978338967200098372923897411644682981897112273703400974878022289663340404151937314937472504255410163624543653427337248939735547786262569525107393569817380179685863903289703057484037708062146849637344429333434766618899971728560710793114169349405525053430880204972221002219153832406818881548502453713878277612301646423589331630263300276540712199416324613800474207361806361656813635182006138069296223173065509169310608220287459160710567906573488393953204873549911797039211224456830525408291897525238727930707274061519296373107563542585875906875514461496169004721810009953754166463502011562698437303977949419624083023175091104142128063848135177300197142011097975521514661914301406498099128083750022664484586266346748895450442308166124219777848488300750875367689678002158199855618272055381440599269671835479531234656441448417793130528951696881881693538260273859865596768020720757957397342658024195185145409928922442527081265332697083317297908773618348535540828382098463096738017768196847194249550154346830045194257827161979352391029693079241002715491772704765281418306110926734008474302892856441618890273936495667189757601932577415847233610407146797987634159883587888828937157440243616400399297048504490213171516921691404302655807213913048067998356943665322070478829018665081982115921302865050669365422909205001041130302680079550525638348392530246441435428983442900834688255666708855670679372610680501793164115640159366235321880620667411845384233506512534870367370207126478111425675867336281960952387544729325429602823783168062416541719487369895791774194659413869566028845391963572996640246945560813954595227539078801922463917251161307546025875262974714491414340657143552939297585487117290861498867457771027618854561150754195539542914061052923265758972305121245659852570205553480396964199835731773062687909091932738728924991759690914802830884962159021722870035391322145849281153213735465128126425828310096400870965817299058362364891973322448812885533439343225360302652325111882352995865645643587885646525440114426850830170574079563455527725115162517427031499567545509647374653901508566931275879483707665369722476945682576780154721949422261137585874558960905104171286304219530746515948601907929186517299115346234274710422801045710226235505171643091704807795329558885607205991313656493755165127526304962757303759248203296349574105143147066040086212358856382484760065448139359133795404439038862281881851402011763074985322121602686332238147680031381274678767522905250039347473860421115347312840165845495899140288445722012324772904698252202996969570110345369676917555977150268850141313235197936760378652294615457331648378581916014558222169122578567916020325263298764369723342783470318269699899993289166849739106112822221491832945776913094834274621780212970634067598551143844496237433258759958019850444031199082997298057207875123857613952484055251325463337772907600036893460772482230117473288919695995157449615812101537329491618692444992946837375950277788202155937331506860840278946491892927109501967815045366607460134132557622907992267315125793601685154619359479570029285758228803765397209778985617838993845168400903019797885570838556212141301208199070277429842523183977161793098665251427222560782042728472078297900939082703387290849206470742060590125670391637209989195489935558779434180755693675031818185391483514891373811933358262921973554519984721181420188103532322014635006633541811073151349013427227818373220132902753239958925075988993456902969110800794890286536584395495619567555450129251821270589628308209026164711705858577033874943961008686602250683793738348037858180093127581558228363707674425332609358399133354633615023122647942739007798747597767318011777174897361725030965302316906476521917733808269442155307572075717993218602638267644902311196008177840642488516482098948851370909805527007545795744790196426173481226892496121077907539206256869815833041220786490326777410377347773812117426251391653476241667485015678065058312990039541907334013181576368593863148304826865849383607295958070625531688690583699961124218267658937637608539420200811242503612052192366078430416673084358594547163464915725136401542368249488717561866504008683122119441103822614879059681067633269699139155818449669158201774112392929846506414664262906979362594543498057933633285861827237138935291618928373895431065827440548301202042762990909800927493073073636431595243091560539360245788051015077350758251626162559866940849505775947363239000714366027309770178089811004910141958545523591399211249853377812971974365979844376704554682569120038099943355109817080330411315884420191358545030812337338269259206494662860343425376676060909546688216016922187458320724358958357807017096399997909115652049766794184562694868700282778575262772549124262212681189564979294176169110642796241588808267145782091135686218856106191985961300171718872817103485064638355349287465497780566840152471560139318182818740023146469730578553719415410455232803171921116574966708277207681814351147994367762022534687901604603292173453026447224697599138283345863593883420167940125511311744879816607061116091270006443228670372625876491358345460273462756489829214008767394483546634374970343167796643334763065054168090697289616895606541623309382945906763260844471427469251618665639753987388168332955203179029314550623730182574994418786266896553769869106537289979742019308134105152634621914246868193292721405763500441104567897514541804104197320458791458058518397715880835212322856458040333352988002984939724700248872699747960398071190256101732332125490104415954181814492763908655755528516840287424245428370150716279492522975243119649985701471249014549791866822987340843364065362875234857947393073348677470500653794815554821961940486376367426751944892417967074573360406628561083688987219133324217797285262466573918233988776746588719326016468905409458150641714388792514921809997308798380130229092722533249441594333167046305599918611567248265005595037242278612716309928386173293824992567794142053268566518042136220944980815492496268405790320230208016381039478652390924061299957941820177085155809560750458904465982063097189582519003755585127425708783972617491631814867433189518766000876202014973452889734349621998473847071566132921563812808961420854192787591845238960005683021504402364750461367437868986491714815818385533465197256442252273631408845176844018999910392357289718783184790368209672268025672512651202997621598884500337311536643704227778297586963967944025232722578067330800775012626794910371035352369942580362077021874351556783944813343080333258862601298783265408142106673976202239058845635063003329275665276356262907252775178966146619289070602931620453858717336470765543236660833988881323273584765952460142278248860186382807402621760923440768163206760003428355534005887948972666005848114926025035971512768609835506508213773277537073055101658204592515830216369209443749506346750132880234776776195891018572272054478570977725344130456663385623158131349423397540116841632183807062564364203272867728978299624826883865296584362845762061418383072208519904506061386890494229592347114135987806444149124225570912869164975587365433026047901078133444944327687831275523621394637648927807408574068247840585936325592926791860526921857853032073473491471153466017535097807642804393087153228532247195491707053047055366280030968537078262306097664573169904394703783020850683726067222717521888699434624825598024350168198628059024270487477247634041357136450752502152091737069281340429235716898193381360093907857616075779039528503960493464864270478793951672075035311705059305217955781621775737701850085480730261404789092299834294396757837940877480000924596689933027376993419719770316984128561351292210768885916197820656260212288345373431242151841520184057580900522269420156925441232460712889263078407271148319415916743154005871130387730099547532160652581828762589299525117032089614583741592209508769857303968310149707470244888803730800219580774338029429806591660798405196956031971362197334261756102899559046139083897632877529031789792793494065387287536196878922986150455714250442541889295466133547602282700748209724614376926022226949713226712846753314867219928409830412264961062893273554793843045383433155590280661135006117316574680555311305475563809747302580830795259935515106224139920458921138136608543511068076616039930109391305239094847620815315971707193223258063657869042326547279480593687989794214209084251966612041372083070777502671442480123195473982168992049913633915162502089395865582984638316780118791447924381005087690225586582736760494082221291578120438575848096395702798872728426347266699727437773046045046776259919918142083910822424517401107346165653577040826859161853293898899897142146990132617516753236672581522132812218650235260680612159817501672854773346903281044136869501544943466890804245071598066080023097506955628889165704680479716549162546879681099769264700380370364792629072444638635844822748463096122089263977903322783351331482751792357429648227602102383354436907965968278908936604519920953142348544538489775997535397206461497814127389285278797756845053573824978849319658230630000102657089728477111394245322150253945828233470058024311656440147702610111433009514609006658525206511572475893994434765996624903484373464030651904485805896611450718428909055809120541906787388850698440812939740923060800714593714652131825462048490541840357973318901498952959044209068887633917176408391974537642675362298636924304665002533171171722922413582008939662735642955315921184511449459811580524446321867345754676284696300881281688089930010457222507471667764520088865947177586448737547471728977169214198056362810201782451339115787852498319842052928028609795274568011889312749156452484786114255441383125507793821634641244923221278681697579807887910092240732939669438787144983125500120553312336771902761531775144182240826051235867503101816865295652876645451989855585313959427778619115233806745468059682716967921439657792548391137653025322689896036467384562334807075593359013056925438929636172041720050462693432869084826190747570932864500930851324646351916183108429268899865345014709869115219371330786080180913144696730380242376937054720190267338670368673347762797003516954593484256257728562401794525823580030237354534003620670658088390194597001704996072573882370699029205384033916694844027915364344112857719070671582058793469230539185062980138548325529221804317038405690027554561361538268356090428401510642467545924669462039766811939870798045680082829481586090584461844032894590274040933883472877289143535407633883897051350350372760562901896615188337909120678964108566500629356072329155925540400881229903484471936055357862206778172236787022264852256323421041457772094454612248908686458934593777776509804029065320672031302123954631695339010947505198745744958089734435414057126565139947115637477377707043171847776363526947925001337171339508377579347458661980660440055049195490222109829771857673059615831045573534592932552298488750908584968868108877244778609452762164980136260324762222857928868847200982083274376494936931030461070621080812984963469646034196251640587139172615197850765228039442199396627273880429757341964908253047700104791600226223419126392891775194132382754691227313014703378130996625179841985950941486960853148626475664950522296442837772266811477598329890700096149627167463785457225142637513852123580557186412534015373755290128123614781518431804234341244828352349921544042088441913211477172353317804814767721593569109262850000075889401640570634253203766192893851255914019077383654500830286724203269737615477086101334492478942593118185558886420268928435252867307052503377629242760921514927719340944897032485782618805894557211790979595125396018003841070049761956907092994440393163776910308099320677036287183551023423206689931401694909046297029245571179558652357763042634278244807670575516880695140592143389897676794107783312541317445924576022497534222292963870345910116081607454885806895622682385939616223556064215604088259971224730445786271013100692341943413140042066771812288074538710428225153147506207055307396014172518874627857671119056993888877142804853031785658935961614995804721318289178740962940602214275087362798073492825886345472329080965933558431847177383870319501946413910176070009207883346550765156524043705542137263358046860768596461129138289133445265510167855711847993474808667976149372167964456726049126063331447040127324933483617458816727354138707643864070911546099277075883562154125590230225515563259140951793926680974287821681654511843746909906392327267738039015362849898020809448627853237345694810912549959205015293164074970606602544909618536244732522969634067898135700649487395184795286885203747741127009219790552646165305319539729094734490569849152523930059970367998370480047764662706854115306809450058651357238978615028261262045243778151209039350218460408135839664576131889031293526945779632981709187537352763747468736776593088520126093497127376727519662712634415186112849921790942784651889000199766118252208893050232722048633871279289037653078027232950493770971549742698966362292163653830942487114841639820051471828124310930971174881426491130920973898082266070807315272263200441661486857530121729159538992217954547290702131113355256323355828153779962573807354444610204745128044489834362090574991444543907413889628488926162685127349585366285877300205510497203528070021872947482946818332678852575816235610283861129260850039357500662852380121012168110535601550700578736059172073084942588077711776483745988218997203962363399412308090696051362006888297982507963902508726392471587674486762554668343537297098036147716688293233827089779955174135600250026780223331966024909807050309797166302260093477026824006508725540569716320170559447395281509004213330224400559175701301567828910862522198014319596883067700001633268628928587483070583436403304331766615857302493371120192763253775892406511942097871894057469577849315310562283205517210454538077953986728747559285592203109742993626369692194395328755601747828032475911646774309111996297322594358935043857696854329191608611642755109277788133588180794733391674114362713147479725660205719098927947960690749097212204996087880332312063317864410532956422970589701262844573902867917625568917294748591666584248577066556501947098134111069502976602805207582467296076729754205338926214688923115759575664642261534241834251982057610404852086943325666735403939935986492136044621952172505253679621470691370005669029217577192016782034310754221217617530445758711834148294426017645000103998297386963800592480584247231676432760370123488561410436705702424939618813614020085717891485406657571424587108327156588129992121072213238155470109485248546217988849331388240022196868783129735688893705960949685161652473955854099461171168827823182486247041160969236154453247987015982132517663975856138576415670320380575681308537191190927887739844614404047567296293692006119495067786195911997113037259621789131988442769656729546574115928761301810104987791593918398215192186588605613858645814449753935383521190738742887546206091343901448028989211613566594949103680765852774636210620633498904275837191648779131941900937071882081669755694082221149450584657023122317151620018346233785017848550561878920974327296112095239989161705145498054835015379191237603043445059991779843558647807681351552130875286317259726011676059766111265000074780084106369864901976182669570710213851730048096374864284824195902518243765996630701528897409187117223915427280617569715278859723335677732423774535046556842291834588179179683716248741628116308596116301569865826596384887925509524269073286158663598402458437830773234935296916821431945996503287525988393088208846014121830619808340203353168153886034716903782095926668179415961089430845979236839682239508198071940915565255549762557829809761358533374338812898602769841951719098431369628538265161339891859595876046872206056278439217766688610370922457130006120285528277132626894410458465240663854341649635796940315647113257072581737731664330067601315915698720038170641219227756108944469921769911738892905103045269494455690772859955446332954983495006421955322693727747310564126682587965804293331479287495700032454102161920942475339826887395848772612087273121536671671304976239205914567397936557438799380746862225693662624660911166921003724986421637915278284399983498868743177624524068614086906510573034159887985123979625064603720285513396745350709775005266821941717307555489706735342997789442535939391115182554430165173567027352497790970921596681105440257393701481767304967337454018683171519414378812669006978115339325218649368864558489960100024556439101025494734076257717291455390119201532522186798869937331498084734994572497444411104654154985836285329953030078059137111303394453074378089145030925922050438152073979386909772002144048466249167065503241730289655613728935687697775325932966934791445493502130400837335454170713827661153776024964057333727473074856628999489438487852341070433874485849201269679062512574503803771974487382833104246819965658642825155869501164086946246015067258985472685561052233528914964063718333877662088960789900997908985662072699982952047477187045229917481715647697939883712645029981363984631321761014602739587565311169115332482206687929386590492337847740026907242816082817164716843449800756656095686140545809317604517300802232904740755973947228084871449297137118684365428878775401823940990147610562515321224291529761922980214535261337568740173613493053521344983391871323346183405953850179912182914973304412208076052490295097041978975616641787075757367085298138559363976640455893335722389046924641434995305307770074468035864337778872249972074946688949026753765218712415765644947483888920707315919579653316842238045937544104835882180081151301995304924423800209855362071938881110930714599560952581951267513954534879650673697916423206168069470454862782759491558463144731623588533394881910395494705877705724846879313952824791337911084455762859240162672288430040280908862390644648057698900618871308754076776053211285512196301802604408687688531176472403915861468025424062651592600547580131891079998078769661990517708133891955328507724674730174868252298456082445897775434383000552667386696325413304338058639396481734315749818909956511352867319857518667701127932433833551032153395880080672957674616632065784548650617814671497050767016515945928533228029959499514552763248788054294896501927007814422417938782825863511259204888863969291928542988300560193611364112160732482109035434220287566146999449210716063556830838468928810581825462778042010255228186493064547915716685845125866252918123659415153741646150342295739584050969620346296540444404765663746762701354794489701179412098975298345351021902196283830047816866261985298849382315122562583689797433077867824416032711213257958031164694861317634778477746666246103164435587781365576390599922638174737345941252973377150171722765325453919367086992685715662533073390603874934331490183268861305290115298224818127751320823423424418438474276135005358309050050993449981421967627054760909018159093036469260556791223351409882981777291922431843749551225102632461802047237156427573527462855897559389751739126703622229477228391634914520709471542718869997658682977516441518057264098846568727069235334713601494224241655198416374458445333977417187209749758644870810876260555273213635734477058234135946969838979761314936579695229155045727565403603789869216341024015640300815224162131662030212207995180335962789608513176073527227048254702865467981407845885653038316594197214471752340074299648784180397715010536850768903359588483012680429780618690540406992002913001908038761230054616292097408049321755387210143115495393023709670658774521434025477892694350709612424157553504739122592149523220564791643645925260347003624772855592119689825305919757713165337557951693900942186365697013344805774363434317273090603910041227120239374900473509052561993700026388968846870895014122478708369849753079988523599331053639856965140222819548782715919974383751928499073759646953230504268368900445721398537462620828162702387917333722202333308465222370205530919705509097708624322033129941991076072006507604027335233747176825485143683524267997880875653094626473699287317340138446840024058959331832312256383810781482240232472571973426049371787076334230532438026335859924516845222925700688517157781135388902803647602850294837815610862089689606871793598067046603854988419201090097351845998978734873044856992190488891842396669342251546604194501666662008524623173357683459830849108251653591771160734189876335449407340259074416381521423853608345245382120072591496288779991828942206400879888975564549564393812918095161639015049605445446694440630099005823636034368556888233394811457861670495772604852773686560776489705326778839753497097987480861562237824903318156133703960468124252875324108517538128230995469924703354750459598990223310722251115092783027181679187401609820371632781518098664791743615939317913721959017817552861872513738828568736993502466898308772002697782016594080746281461879603639864193033486581961700078376147407551893183559277972735242938220023093592369765770187262240114936803928133463926013781737370031671687663499455131976140910207888370061988277132594330765417282086885585758811870545033186777500679777767319889069621233958903023236154109046704840923968233668960915020004134757130361699478309248956113889521972232606825894844509949635392490378512725805539021262393109813253681948715559637900275058434193278197433807876373174919987458058126229597014762611172138727446235581752405838653256148203365125922421676748208697700081470295468900225829049280985816830500689207054380041831157719175356282516989948053138561400591668330467446566761013036911660406652087652306833010109523090381985354712484763403117236717748506905780975574193974450943381101354017166023681540684314559483413478350215239817852319919595448786232576619301680458799301855902065073985940538501597212506869487460671763342901062261483447060136745774304206073622262618841215271981792498862426579836895341798926946194107879794473492780434073328419307317846856283899809301495399693973996939675171540069865051273294348147595874835438065599597566712986079953402687825855579570856091859128665685863915022676652939800661240690119180567648172637993585325826774023979445809683487646381461941131953269115648251598363778076836936011757813536419258122699272867834710995504477261644707685808457613656958094047407737709005953423564934772590422141925537140837127569216616596264857215900271144523654968095149060358710184747981853281401049541465435543294769620707307922331179110538399524321789860293393389422863409402432084288746026554342053372643478058970326586022558341055953143002903796569091590470500582429720622760977791474586896248344410910216531149483787333596589601298411414374380071945615307536623125028422539488611446273465249605065554985695812948758658728804290150758164170018581092296594836172475894649563404655637906685024240749967394726681597725283440688991264926885674783658272267232192758546270251609392898783593000011607632903271935016627753983073088429495505114244164729616014276973841475168289484213733214477951484353558665595388513938272327756923668944022314962340875560731227278340311059438396720509179379600599159719195417896567604452305616337788220486041194058629205889549962883882849677598552051150901654764646673627666481594914152582861312748295464984600785536036945214202879309631214666730613394196180299046309203960222983614694418340042122941561409144142691246213107040024307724647160498401487141326818462483502030875959397665756028748482909947495221905125151869395985965116041231117085660529033496772637413217450368055639930779659964693120425470832538773172878978565885918474175770882242041732325522946451048413390432569280004184249209702825955090524130707688858015654774799173195222046018052109903151297901823826498176563583943233188306537539197758000605954082681288047617155902465337095572660163149084093483374489918099712004737710178468454407791954887913889451420453118122737908716764420539003048323831409354070829520372112229858383586945214029518627630740836173598792682360642289955732492852042430343275360790276521319803763535961914418468683390245646977618181543967004421981904644738230631012551942791519939863872531271405288362643336906410693831447276903629588987230957105176346394135965617013607731721047087550336519606981379682662449592984879616485258752989560011287396513205607028985986802001977607059769917818304983604533658986400491008167093900282032057388057126920273218280615463800123957025028042648661073227394901596673510269529213950546005918985076419530468708914450118796448053737807101642343484604299541397049505414515577448162698942861121618656563276750404118257289782228790359843130582482140768928132377861900089237484437920955640674759340571657104320621075646892430983638761346743234226124570165495703784376968091172774098176787271647468407550139945709081738833775600699109281568286601570656873041312154097751040845040880481318217656510885898376907856100615434951823636680513337774290160856772930029279832639263097196852592463606035187351573386275415897161266183613335763960413051457746771246691480072967238737573720685612280925627459443001734572170326523978280270180216592765467890535105976639349273507535632105991100428623369083049933337857958308485373446002385427056251383196040038237119349270073336702649634357277436172388697052271459020456070470729527614459269848653780722239458835461338284721988224212275937128814269110386854478134053903970221000315972981839263092144839976754906122720219374736239735408705274740874692537231308825066529243923099928626368183732087626125540166594344085889754378304934701698111146153173372103442981555742618400297599378381340133335905139339735795089077093991905524222055815472761303883603605549143400218365750031935679150126238487015171489015997369927944887314115022163408402317890856134881271187942808460212231900982962992235914666370680557655955303272644897220608816065727260005404384223886679302761395836525351808326809371168229316677490409553650460915017924699483038332359301480651467739610912942552038829627657815968644473911573804824682980225712907201165268421989552373188361894485293015809049000745960549338735009442826202767402190122841997008745963225245241405584243600726747275900299715056747809399636614783892693637223290913970339776110107156786515336623213864985681864490144298026533074459595604631858834594276192216279474352152069574208690837137024146113367778478810979047508783472585530767358620188060502450636658622704356470959803961316434483180581902373398033764035828570723634901903890130125684016370918380406673360015475446537405472321037310401318901481165867569048073596427212104978683624344665263396665110986235429998239769744611120651001196674951096395882782118508384103353600068035861679030994594984636837442741756888700348634313029701114021584887578971382715568235493601192069198568251046386242012786537156436145041442690408019645473845907121915967579158842314943629676760617665620029587629496293733468403202027736742246513075437763296376015923478468544325909974530285848280913773297578083675535400431758960331382209712734545559349312397091956831788073312612953524199144203274014150114400421058062153624428278106389235108516730086921023853596044786515508410353159434392942140819975688706082281490545186018609652349563234606492044351656430083993922301756052839532379282749527196337759409489380462998106910681929338533872327425173150819567153606043106106109768166938500598065339148319987066653115195096145277447087606519726792326282705455273213158727694903331487747016525816323581717353966742438188348839895345959362390836744393947068669585215903706500621611039016393256140505428181024763388362216601467277039642766894660258634728206327788417060624368539517009497165952551533695246420276472105517943203323191715719124402617947502185455942275761096964347591112060773363603207761772894907970495449888334983039817608004953476500718973878885167603614258235500543161898995469852170326282971095356062675627449854123105516042080900924205689196769531541044576860528961706469938379862819080697263922878124853986644577900575374980281580969127499596001312447610754198422355421853885092437536751311543213794462512601434562341047223915914519374460240145155160077379385491398776987203363586488356415666727549000913064429003096275119555897903457275291799873076531393755281015779712471120322462721021942361417839727409929896642604563179023190830605702814182230263033950540565777194591805003475119243306423824048785311285281548618595704331356142298865121137565311302866092589950593661847835692547033999329873856965570387906422828201895923927151677517982659811854103330140001326415328478191378014277980116419669940034085855191552619097509305889777976325419043402486458239987043533231200172658640741052944302813411694816347690351188150379476702623566444436515310117086738231416539150266571643702661794486106792429057717677683030808022234296421454104834970530509712200331581632670550928117493885008263310165862866857050450702468040964153813442050482288454732212143526270858645392263232903059303408496123013334920852859272967122317613056863085607121409385879376274698208187492959634942795457232071939892484858083549978922881150186556347103043238598292945915695666273088925060192286214715030548011606207106008348135841443403129100432383520472261244955693077037282577604322826141789757126605592193886671436796192441611956215117640689414680515919193476650613272220437673237747584745137191828838190393443241308244016822215323557920733790947732840978684028055421711401704386763453924644917173330955735658637655604737275099469855457175262356523963679653753272784277899774360223826954486730242443226798261336295463997878130109026259289345251705165267351981606064379224124754169163757124261810120142544143375221469131841493543009063457562705587552520226828904402620743923949528053426095731319037047668306786704004948670242534046335093056821744395015634852493365682482900126884296824042929940209299573260668755901153568088008875992612619212260171947266719552265865894863004133228243848689998954252530745329560675318744525825635449485250581164092336092853668910931834616946924905158495858080894805039392534588877013039428799992107690218740780354963797820124093221057880830162211552008530431306667037580575397987722450509293138487868234063510259778219717177729272945665177653334117924034543481734140419923275698836871148872500207897282553173679688631345642164799740846531866874831237675317809873782724584701368004007006985810805187691745894541533280666502970380850958735233798655708165318581558117155479441936647004843312020974528546638651543679021617192939218842812151169948733421278952864685289908510252930531782980242039347949681005853073008704613655414456949716754337667011308665714293548646365073372373968234913366751319926511230504014618554490054334988248950326730831365595232223609902529866828114591259781347022681748660637857320309261556351140344242959809995951262836272488628699997140729570516461517555262956229600961197212450962987561125579324659696408281688035352731371453449023512084502700461928964121945578799554537505222170847677700790026138877755445171271915710256756528397939457087207717797313188669365256316761937480104660098354307979763369191534428655261562004379105773286858829406298020504556492903516392310643560523845293300543778236688141941956168964827757770641267786814906353427747052349383448593731925031265491568907396261387805604895566841826904712253384781759149738038668038227254099762036702018122343130623727384925499997560948387764335844595275183274759386880947515166812829069628025528041461626595678219599688612512574149362625443594382184847236918673853920752997305713541417574691828953469769516100462454440599317553770149757506878623382263821889860487664731352843055880664662105459947682676383730797213356507002722611352127922706485274552963011684004768827345717482482371909210358865663977792007234098398069120329122216076042129662065895611365368664483251986304224359219067793149959099472597029730207959071951833636610047247532099066941659281969774993517768797804900270763456020757167726411657946957715731133808356000725851040782267849741863851810941852693742194019084937770777073436828783904883965724020439875717128623649595935717656573872530756549590502552158113501881832827533904689817580370984616315277755375996745353663592836934020472665941135821487792006877551353817806255228573386283440827648701093661302781161506172700235226097231828295878280062651968307334810682937347314890238165235635538651002595951299763526162925573085456869622928045058986197111570328222453526075817032363011401741822224785367693133626268990391036592299977810443855010668684654316283546507743792398183876764560010830322361865604475317165107564485974570876284876566619106680279198389404424019245729296267959425452298236388048492743005253865143632720155649678660394879431895380436022475038490426488121927456250835089056638641096451111698279019610266669601900829288536657925755279441863522651991914828620019324210652954445661017992091445190939765391055938269458660328469080976849469268789757678397254572538706012920183265699985488804738079691025088777570539282859631051428393193634650713704899742402656872094898164412390125760040038110799607719828638546523977244149632101895262371693702405595086440190304343636504541808032861917110317911210750251396481947467420021074025346492983659568203511963653593399534116755827640975600982226827339799162277544864838703391270553813349275690861703319009809480891196934084959346882043183549985114588957087852911122235995834932129194952444925086418392322522725047240842279124073562303257880780085792920230502752494416757142865383603993635157272055875041874445069080830927230384030665213250650052139907986691263461942424814490465347328535190394619400956661281467355950658340293392868973628717377400123006441406337483710377967963974917951422812729823164886389230421223995504296043413156833531104858198219779563717904061810196347352000930338379070701121546527606307271744415563370064400242173078142530995978759050794615980547425095968775538214371691500347548857436799838511593497076971719176985825132110423300815617271566269170500101568583784304707202015713049943716710615547780702203948284365198884466521375200182745116305372776549576774734419687064212031369493270711643158916262615330027849903050741913567563496537174492035514866943845706268953495199382662935045608234902313353889439652327239227159197503424588915168782922217374620859208092990115527901011023416245360901517463999382504312883377068409042512018864183457150810190778430232390310820573280609934088849974274559246034923782853851488984905779798502031706556055009810204618848949395972824533070858578654403160929364869834218929482568398734153249154349007019311217303517754251907598937951416353885845260168876744692122752224156785070468405835640259671475401105828475720791173580382278886899682821559854176404649687107260468128651326394140954487275405673053115046402856848637704287466657512336955684493807164235135642292808285374919209433631192411235718368245438315511196317785401319868219563503610400883568271088539483332619914331281700854384594959956255874164843573084638859855706900160196336290707029309959389067063122292003230638661528575424571431517035678876813200371781817195595253458731843118161153229911308234984858295074949355162199627064945252255402662302310861367766359397950339552780815826011902613235103296273186834608775383780799163797746874285275870257038919532420623045417951602409817865861389016560462746176683200370957874369300331799320875963545477614613015190852594570761046684748710248832867949269164873706470326739752221798572195724040030364461159323426228695240576641118728600869449241888034107343660464968602353594267094528254191625000146189844979469458662196505091920055178836812546852640849349699750466579113504375835100570005276374021275974355079107477295698635373021785953309291056152690649549853369680841508902099233668874523646682259019366116495425607561375273868162204179160415104956570258343554142754806689318511360136198673230794482427119412720117597749039514009233712098160001310947287172490504333113092660945990777863393168005975353118777713107409882579655363488709044946145402834719994903754572164800656249285429859724617486320499420260831799944868277252974096791564401193082985995393534890706753867092863039626074426045571353780211684162789606996279413300008120227055292112594095431084844603105528949992686406658357005494145192553032609181634919849387555043725618836950965046513330119618450855440726326844122330385682523615384411114651314376449392703405997073451546041023863422643022357535387010941674874289398465025005791361186413591213838974422991495023336079836181133064574389535239711853078199619426557789721775249979318896029440755004323103503024374608251267913559126029294426777743393825834331353046134405546667129653688125979286717840271322426701158488093772359180765302589087010106466828126277657378498552880094005653055161210306579860323408061525010720358209860652281803755789656584908580389991724181651784849159505038670253469228905438000311581097514862528212649138999381548086410211893475030651930544955250020488024445496584733959839465433994051354096452099118698817691226246489717659705988077251216884175751447260955462311457409995271839406894655814864336972187779391649953464810041075863636669563334786811693265232654535289478091869259244514471178660095364419246647853407979376020288186939481562957257258282444974522512917857580717176248360624734585723402334761942088432757722674928104749758221351437874926157680617764301621100531151040021303679757826325140983529448491310794923605079388294483254269983105945401283214961617800995370298421963790744977334180818767573955265559014213707095767479356127498385972206435616038681823769044248121633882217619311259155352124013120944467349172843739590796387745427359733953960737734091046779002575144368183281456506154406693528016159495945379746713431022182665947107100622353454021688812442679780408683782419175082943355821323228321094875788238282785713706605992968582919434838607936657906936870078433674242087227266621132376978178555100957267418205273191872066325421748067536324170310344162328296172603673167808676470836903101778643582069847289312919955091249861502470396597626984163542564191112593806589359174827809061126345222153657903409739368073329125026247071372118706398797328127362776682996129866059748733184663440808258790815474872312553156616765417031020529479392055344669151018004990459998411969588096360902610940990013036710295409628494257691654158693501892707342689963202018986484753668257652396326049373174043232464096438586156346500524317853391012984311426976885704913443349248132380015548504735761913073685846627018260908609674497211527095730453130088240806303300370097237199702004990052855946285671858255926985141938230574906001257792191302787595209964097120264094137723909548293663913042778609699316599509398257678403365372045681042817208103618571440622156312664684443097489851806649560367250982156544007642135115444472805783522802532457806412268627299455269225044730714053288627794427316159983948684515842029495335992660426192302208167433889602769027155508030819809264708246124739099517403958286911909704433587498058916893768583978850390118084258869934404865473880564295440252943772177340250514379563843309145133303004815256385908075190390393148693613619952515500534401074021837692936929293646503099875398085223583095901095243872858851101382881419181218582964400975896992126865865547468472505921071211524639698636092058577680470053565031501750937569399947856463775607662859988101746949071165842811310889245110451735473198878031598051819262423295057744748193090086914677733760215670650411346748425671911854331880836417575331380945121285911535364896632747366674974605142341726242818033840655286029512043223579875789420319442316441737474160817036705427003179125868562252513280397310254270615805354033379736118898785620876782795588826255513343656510317255703091065600513597653331679951636015430663574995192130084040374181295353430332273114719616306711683789044919967755519527556066102629970325749902173289937941226861596561951526730274071772126580038529646708405499730649250729352037027994415188292171273117899357644430332458983966885454660034993787844902727237044015162497512600809743294376455811123083916663210902782610724388021090604566477490041811189982686307286590778204528274488350561492442353616715984794344810134760071629407387072406245748253642275968851081279433251581745841359863109680885570909009247551373047240979523393145293175712654726849591114205661026433364058638165369264690953206794593341273767521054092796117111160541254904838580528630291535773459863456817312437520420234315401538963785539425656740034376489475938472487326184258819711592952163255195908467169574025449455765931897538408276053377644734158772605511246644081856898375343530386743142971243419420922880972615012787877864444810214598077205968611239239612040354045278415621658006065168157264586746256768414292976740104284698552267613807806400797644314455114232582931401146494643293172767590762590480458544433595063852139452630719624261129324558254267485041902437462455375515770101299042918385409435965974945523638434350230319587698696356708192157206377851819225339880384888454775418462994806601606379819812806954845479317915764573164414710848479626933309734732228503570988618948613164452281540607222361827879635324831948272511213991778988874473369523670962649870496493981259111566334784810078754913824454739366545132492870854810319065288981723556667171489118103270053856468945208718287656705460027657891621016232619496061108570377989662577555737773482318973377666787068379018961474886089361830496950597243970584521315804615362534777962610341448824980452297470382899669578595612880486261224141444299595713367103377025073876223340306855201157567606094374677852179368083231146323171323226003857909818808026267458736520918901150319857656641070000114843206561684832811897323357545555568846848488174926580799873039279802475952997185013191856676484239846481830124845463246554207168156420643164489227185688139034766786567227794900394943911539758941331342946828316473764224085490067502080080268189811935349476480274450973044306593706949743085859317915351051675497073929196961394103068678836811152396092681348151613585273479115066758445446432618600180250970215732917829278608901534854308680170566631708523741533964391903930816590643384709820480291116884972008110526923018878196214174565563586635758456567035635573001563583506991928419785558406930817229279407842511187545868495302410757225411009371058419840178327964765424828676192274722958732681310503928904552727432955574882369277451982924224927476827491225942342662816332209879763776294288221357315571496273223460617146366038075885125507907971822519434396642210381085064010046162317897112001516755232318874554783727122852760967891977043723532136798848678536942831650754197450072830624388204446003356417641771430153121149587826060439434372413076843090801034321665049700484887822449345120613769178992676847159945726928800318395254086649487848992451807987632236927508185270400832715394402069103729753752735343149979159903792977571285619090795148250138507649288113933148109377921183908020458313639975585121431933945760854865223003456085476698320256280134903484698484737840557251132918152919274929419861630844986066658436577285673422833390351078041778164511175760038097784337124603909095921265425610786430575267495076689247694171071062813084949238002305129178529523559586128689766763843552539126885102065832486587528625912333362870610175040891222430395391950358313843203737805061084786262088459297433059833204314511897943445738828276645526980354454826474157068329607296493589905802891483357710919083055096926984916226433746707871387401205263972679927614300790030794157283805698058680148198153836878779306605944740027883435601025936588003261613353140885011080272520316299270927795004198531554969609458025142938086389875829763476003529903291318962312579405395925419610246014062011417156799072952638307296296666809956220701890035439613785552609528814241411036479711887760719127678176249536862747048544588591487986998549289273743958511888402495433662936124029841730206458248603421868817555818611630356975351739476724318400937690012227112691030444837522993458514211668352095468959272183767863987645278471768637984956326281466777732263478186940741822890501714591774243102961209169734620084073008616273848172602758477344130921624122269968189609978665698011756294435172573711863576105710579887405773791597455866476479683324126474446481433029664116676815014729535295111824642645733868429412013364215497757943612053113248129927765470474161427022600839056752833775265188278683350131844563304081577534859627237441951179461316212947525838514835315218521544791137666826698154024817809397765183708886954041570297692720880302102930363705923128041847142826821881400738401297171148932338452940449834300787357454348023720001325297059024976376756547326456713604012972952713806149510769593263174978197841437470257851362801940813429150400731050205585279636376676005530930467934070515784585385986743509642246619870148362562055389381171381905118375322809611126035591590103970175742323384134130169672850508897281611662497209876792414753397842571061069678268738319903146758133928446243894326143232379212718538546227538487454534637426324919648953572978385072037812943235016074053728483680672195331078210952823073719613708777330355414877207756365038840859001514863662682334182003528244592537263201336278414890281255341547651644403079369458711942802689462761909447778405003596259052462745376770148774830295618442309171003483876050059016572723880060943556183303372261499911067174818998809741451327787098157840321006494421998816516508986653504657761605628619220710377019624562334187072668315205872753705364868222881069042234509494147177894037580921463838488021158637757082941992482194109154792586219513176292120441567980190343229721237456645565244240574857843864326314072246780865409101205502728483221318293987282948913775204916076502785516533295828458818072456175737509007468462779730446025788662595958004888390593884064972765702585408747041459586518546261043503991662278933029863600360003032124118883020579653120481982495212115157801164423248133678241983109968706747899465126032221284319503443643847190632934273793206147356263607016482424163755353958948287068334008266346340273715067515121293583492023997970213912281207798702817122928185056641366981125493074374861701108797207186343258118792297154918282452994568041216500037626017272476635750965263127403225744275922752837258267506679757891871891327020342784509906619477111264807436845708442241678978421601195779188587905974842618290488906981637021864241880653185752574791937481091974876498452147325935139726625734032373510996481369210659430224012283718346813055894086483615244101561240332538331877537451984221939191044124076862732943524944260393636389918922992504390247751695172263435226903616238354101257605987547464096055444933462654784336384681997270605524892100062377910968395582923190034270778924476374661907688675472155335440919537138643539757217175776484711119563656897553834638291446827469990510190724239349911784164475433012999358416990741949067151452141740087995650926968931027971581056304672227252608301967066869168809897554985392969672050902441970898434192636024571122905903198800521514379690449138084095460521560323604280435504751839053112682870929550081527372750890638059128565712272593944071038595836441810271241777481565589154401609801250985896805084176901882175004485205883588299517553173706025900715926940474317124337105783041710198217072324703264598448954361677997415985417615808618156485197383534802328701809418613458177693882404983555001988704712048558387253746217100673022265672810910007133695777421499130729417684917368976999168717374214115686971855362556536863304513007667192290195185838102925140075260969784438354002701296102039432971378360640146642871767535867365718249460330122307604242250429531291751056655260878899907202657561050447408521044175589868266079037869225139200965885635845400425217202860189083563061571643275199576755805966605861975644626747662475688350337534879812868363512826948156652117548734469718896462581142099417922494004284702951257738646301314586810342415597629628325545706243462334954200887221246081739178126046835645344631231115779577417589773673315861942571684970438099700004553020187391062907067294720753693814750622778883934338325606062563840046311337697977893842293988135937121482817179679416155981081136784633816816246159523532303641969657460034689267000951219219074043582536537683690828566247201463037389037759418927498008259058746394413510299271911052595954718799493297570821446898072178027115924570396577301832182805862286479233122326479330395766949221036211544089446648981057886574743001281613756159108812094811391545564359274278508131016914582936137497616265369014742118174210180524089586727948175305275761230179547029093686304504119696500359967973470945519470155708386033220887176444782595463440960667464865927445647154134462461634733114158813036701923592341767060173071517651075748229056199204255256468022540154242363091517403243152137309839415975648691730057847221259400982452472307020975889836986878097747998735717424792351035748785500871511507033813880667458570153583068742893650011106852265575664706061800552344728167450586098389517093309427579069825127469938972621014049120306101307225567723128606962667834890943728505404772165567837027071369427536579522527958914068684558736293853696840996827390259470990490388146704865273106232698431527074576186710484834810977582651204137032191808342386387448717842440101260569430986648094821646070986315032665656605311152147135159993178319008394608022208945169537748932733855144747227620076903511970774707602584931453972475030536819085835467115709297317224154477618337639228319158339147672153174476659562433167998103505594447777858608633852792044195999861761036633516197942471589469628396160911527714193363042175218266584895165792762730063442096797275735841623955942750955649959349134467202646537930348142420341760211841649381938489156774803943908199272220486893329535694290619699967341230367110788912532507886232166604327253446067436870372439628639274107667329464766931382933609827594386874443201694021913142964488793309542224326904229939915657423642629512601554225360864926183461089872187549405851005160665713200118883832452854607809605343176097391122910152983551453180631128123599144167673226342535238299306091962119848251175280725608659137828015619156324381437049325837126248956834049919767585921074787089320959528690786372974643436498768347541962509900477626617384906115590581765502245059990095383925747625418684421545793795529099796227605683353883073959439130077740893950316150137725440697689096946065371015377813072986603029516794450098439294235553297371266287101575461554189442299685715785249003863941171734438821652074556846703135626693115347133978023170574709808414977153690850101628417332827021194664403191962370077570418394043167819616656206548801930054343252038709375341844529911800380666132631175566905354356992309042642305881886471645750868434562354000116255902437637576512678558784499280868158527504234038614116450030485382556803032673928194119388479447970174695592764230859434426404726582415042555763601693726697473329776713559032696743632768046111336428238243871292776213068836995970942710984721810265551753944842732581796502781001442675540309800275703177919801185298340392798063719669363531849038687102846511944251239815656074627213098834292722399780226779369772982482170866626440249949076488032021107236993464397745030681646340384839142626730534824112964169758365343889749313043668261647666421334177763983224788512398723408672499667308691944767407935721095800834467886160210900141272287989461461682453845782615197101626764052538107928466498250165639928404405400733067669195340490909942926941406485400069739559606065419544194772983923237285925270663809300905520061584905843396757378313545673876125435757442930499189278599928301478840849929738005335099545651521020882068503508649267192274017935181935295690702243611161397463021756514031575678259387750011663455659956811745711805985108838431159767121891733757048747977725719825815744733347209881864600035318922516355886611784422775649982826610757537210732646173674210573899217471475043172873066917420262884812638412371880636624899187863199595884229547106879382518637865382595080997136075234804275180225729409316336601298013186734961891885920084102654606822698773515856324892387143815317005215235157057903521611513316849192689373485434236703077841729207225048752421039254400694307114715513730836307859201155631871293291473619756926516528644202568315731443923564423539350327171841794403739188388109212063509537820781072594442159202862376049818509852713749664514891222484599824098749519475077809167114121052061357792786422061765226887120571742089710806154654386465274969542201155951047940204931634857712061066133323532886728053607397259000169490843242631844425799180047436230395234799221062439247782644802840223372936821061357013790357983917688673496039422950648212265715806358198420783490205122524641001058631742168463570769005937720444574023913961404718152766429127450968657083316622623694198670179172946034999358984669767150334869551785026824294316027805626188671076914293433603162184786504181303014810872362849249914775893969361615127486054835962738186804046322786027052868318500204593228329758740884091480683276051126775117644810543824482892059111743769815440245109192456200277383917994795001782826410582238868421933277452132905753853651964150424662660118003796001448119766487468624974193842025430285178863132900494870458703200138178635541829691886253566867908063087459045858785499261792483671689324865083192909129511047616080274925160939130776661175343066663079971040306641281717272455960076497652042425362878465304115942643269265438873457442717682444118598909472794256800195263185474609497967840147958597113890777033894967623420835713642609419665151868123988460530902038338108113574979386089126689330190961497581204200933507500943334051127050245318152994120330862639068236451173249278313526649835393936740501479179555075870268641239716342629236037979915578683804432746219099175037667924922411133279080376287478755595516246403266280375969368378620361654051654260069266052034877874594643949498694869095893013251982446538620730935478330572728409959216915378319844761794446163401995764076505385407777754737874436172944661931179283921098863271185837641781822731949652970488064757045943301990020303003022808805150762519649368733752004521056161867112074896610010776950535187751654359900616645055105588077254492786981450481242351860481643747757087997567087125954163220158114762486871184392001789943148666714761301787893757165210002165191464891555466044568146330896765408290833016534103761456750124211166334692093446270709896792706893835595302792666535948204979522642977102715026686679827004511776452150392788322549740488061954897500723783084073469319856357754634812785586384263812027003995610206785144825085007721057283622203960167460686755385459343340894739404730104150328993840845017263455907820422997807261206374442746691403074389826833622610930027492385011164890452221476569429719498920027532094453696673849990270895107978396777755681893357338542984811502343776677630609986052144361666235064918615146372841422562979259330774346097122026692666076331085594054804642534562654861209673469455064840846971793757721363721708246296549970997734556094287324893008623823438124246663837417370600560253426399744115607028345908231407500816370697684569622696877079574309616996857877324829659790030159784141899669974787633768716546163853040028142098602234919886815273542943454929080534177411287733580065810939634272640739160900892127813038340592350130800478315738184481420234010310580836399686923869647339924056165144268906658125604049385506728411378579928972642178906402000311582110598892608543721320698292879533157739555280957445878695092412316992617469775323680435815415366652651609195671592208650410433409490383587083890201748084345236384147399430650619201981755439016582372406316560268245901864467532689376614658401048024606172397982014909192430961544461680553564594513204785495090116961888159300984055228767869671010291491702029491491565683017199385475344984172027999326990906582939679139811213186298449832562792928312818447541817175574118807915295699518304944842510356482773611798253031632111384782489874683227162785104311470046782179421711565281868841187032237471511136760387637471225599304060236546497848491419856073073329018705462555435290273073667028213973352045409421940552047673078642600402977374290993464512464984813005905035602555248539764926654146680157863792245254741225010802445292207317929661188264600821577082578491268333769365621023674367656969433122986047987443320841120652622361614237661912252289776142264294785375707182581178994643950006484627273729280374722794366550919669568715753555041898313060367716609768948151708424244809240595315150003092603598465135131410282395670785685780779737178270397926860388102341592225349268701823150332664391841010188678587566244743829332648400777219260031595089804410796927376991091892090681083550055900179589007314940945900174048022180976250655406830132388104117827768539188101888246389665793767127262572359032039686063744523387871231018526098705371636719540142052099907475343376922529078163496183951623539239286870319028567513688239882205897549108770620564090351239313680864954011160528664420634522129582362444091666916072827432965816299136844959576890349394764333971309015758962615647184954666016648343714877020795469062496455166817757554973146461227132577956468617602825558287253577298840692086973976764062040636909830107662965881517330993073376097707163914231353354154383626053656056972174546315365449599138683003140231354486823943798914154268066986846294495218597760582966293744860010334957234604333494600296468403432917528702086668465438613562137407388622725649736303083943229028068959420346411695807378192208553638326606157116224732255555078656348178069567501705254957752733158081997686155559608233860554980470721375115151985363289163361358482098366263057117145838693726330616378250499304035983470918076475253532084028520778417924261855201764007038922516086429625901037834455309527603413496980662199383563748557890597201476092372195004710171068901249108012823889493881554470550416290358669187308781719635319372872713686690799201301611833463676758989152211448467529907351743994351137746999492460033234643034800020767770395449079679525256345343563074987835918031709539747672133721694317260175894404428948169695762369808220120962568627325453986320373725976690063801034682796046117548504344799157483769590375124894443943864111568133488242562611026460720102843687396120368601089951768542278561212756129698077807834355374988821810430173528121018484436779370626374590116561146118183198395697739706296452573860010157351191574732926492352330022668273595271519326486560116849325679885522393961769617227258979130836143776194745473133573277940586097876889602373855250425887227118977068567576105863243978012832018033973293677178819875427770901476542283104094075625060805639726073421909322505382235465259772671682452449058785876508311727757472068857776579209612846749694136424351113709914729385817629556132381803003737850251860908360117962436646191533061457151538565401569649435397731533037770414821508532892463401733269248811741256794533875284575945346155130252350665270961349247128840735168486367870308606038935596619078440556899891411273939782678731859788727000504092751214372702195088692990235032504443453553997181641594327939460190534030457105167049062182862558209645906598094731687366166484378999300746362426305069032524488241772676524956226656166190888192950469336713967660863915663900368900904193966885620961406705956414117710278435164514675115732187690241177223875597861770209153948381302139810554310337627168922182274480980783385636288427917691650131429362579521206337464405495546247323515884099553896276063175807164578813423249689267135171709961616949671081380422053903281586408454064824374218822112150556672555764769737705703147970897038225288216560845387857211862144131898916976532280614834843224709708149815490698587013432689334520897239025429090349823492303306108033121125919813687102235427184363726454323674943299821246147290361891620117787735336225705640761632625192853793852319313751993332888284316840269715057989791693057871069899947663234456637650998902217521932972201482315055279728073722720885401258768544877981815920022432312078856998634767045684725532709966750628640822266331315957842376970026874235012683118861189685653017659603789763949295361684619555237083570772077093978669148200630167975289561932888757352698093103429071882176798459710783523947549239619549963956925185929172663073887238433151280615480240804550443139231496914816616405041941426320303049095545064479787551567378049035239193825409088379764298408619939405875309876985348329949112854647057055157552657177778333261709562731067861908764706597024080817533834249918886105734915666015013165411141027288055131239001959137660360153891772613691248097372576980006429359305745279988161639235816409838493418496176693777346719685195888301684846125480935262246040521489643611917409675391333829669866911468802659444754200340667568488546280451681142799308328790944068499457353884851392165950460439473946915078211201217703217272152896515446487092697518954093109023096458821568857791638339741300670013374067925331166828422768628187607962167449188008114477257341355221376876426173026195931975312832564408549068659464838694821217859392633973781387231032246086997001150646757690372296712271097377505036500396927286324587850266832690002959838565415773704233523886285067887752360324087879992681223500538184340524069882383835134577197781683927140538654271883689038402865939816525629685747402978407142873276157098041413437126577397059766030541724909839227724736513706688195889257699883584008566275966097384995152454902749394241225225509771833960761535445893852223669646394016232946330823806473668905166923576653491520955188143716317008375083184704058020405402938687153070495287473831133831308340340382828089272388054686786753124661697919592919335262618784877282532072845440720158683110761115904402748279886392679700266024584349301170592455635979619764132285699128624711030759490698543534434464266417858543556025192947008919571008009959887731715981915099354530092604316599734153659005961629199422416283755529138797015173216231009234210521662779705500065912329852152519548101535893007236337552890216964386654183369076107007511941156293520538301138315300989512757892803638292119349660241236973720262022734963377846595783737393949527461045184151198413493894859602701585885782568557445255928658971973619666626642624026234771689316447478576461235942125565767372366803775815060965632819520774171400213576675182633729005199983808713446081044275598953663151082158337610753633591722298823598138170233436520041252292994234714479176786267955330169979149235775934777913787491121144085496270948277977369808198352561956815946519856964647616020485676635660000786448868155796413781023714606625984916660486532098400474078639053467732786673543248080172747449371009485659608244929474515408142445921997971845285923044871574095650954486331150630203833869252432940160763492034056064073931124773164621009702698496830438788018539507217661019022686397678243153825091178092597312110197469040651892563191767669575326389048505952993209219628497088789200306617628638222390820124297699843639451485539367563311190958255534294447897380955705589389767348336837622223296197009661401326206016977071465539838245652246734297221099473028107431354040071290847131129595886919326749530627362715148156720409817824210622440478457425437719149927933851203195349901581703583376224530889063772816513745377595972674206300633193659875988943058055876477451533291676634250302490933233002322066087253834398235088362849033289462121204451396696621730141033945819195818624881406286846747107774273029150665326658547330533763221659649137208858722416851649736357640058807213544299025491372502644917761908762218162180758758693126261739206432582542071550358566211209545703473194892686115691448636131349659960450044870205947683824458984601513719638269055465398648120392220462358049730159453392420421553343343812275288613089537121318061492865662551826148166455572958342636098034619157296756651043726228450609166392465124593102702164481132604817335953833536080031807389554725019400963904011071308028621715299326154100709698282367977202479902689492397665798096624084783813740064203464006091095981812360778235338451268298142667874618434409748830650981299039143678442479496969465909187620809191766814682642429143197486826438774736668241234593712623607908075990040964252395924990847296706912642055131838093916598788935888836552278006973278005007139750255674272968607458216872698737249142734560251239720620109475396967508659987993069365624430275244773190350550585683083656180764683650568690667958416138391499027156332963289798006006029231938886533919372978593427323167012995775864258651021854969494962586030055417352524428715936083815574486289587383774337632885583998742071657752485276968518130057758008213621288016452348146286763634629103349086690057109470659177082581773906405642193230137048848487800940571166207894816980474569649125247645588035499106792684250180805355731837539940345881256150021372055391832845405038948205690774506732027484090551972803990728155163043881692332117348127671585862860299214994357680580274375580673054845221289372765479590108833037905248781809474608258079854741788968651349290678839553164522273447439651318832626394129347385794488433588672115399868135033387874560648516030206108511983202281487146300023706600441364212835160886148044210972742381793775399322950751574497622200326512164566211400042573017056387338215385210572266773154380521102765082595193970359962249489645353598112239917746272001224616978076192864277528890657776448923308586267341536259830512821194619414055069863131127022701855176419068211094107537694274430403684479146434836569414336009507881697496740466104046407144508091278247520303117937531163978682619290726525304619133505106079085824774768158033494346220290778531190369795200672476800251424512317419147493814085133624875306822976737889218621320965564995158385992715668661632995498270970402427684035157488975485729260201318915825707717401423081413297113149132256958010719155562740651052093326602298016358413533521644079248280757350447441910262769623057262714490161840917661214654682744398459436020246413021079017289726855582823418288978439931676236108486294391145261200555625945508878264386240877486814432147270433673095418570978375571649554273562663441475522348985465173783014498037292820816363216014881478697739236512944517349528228439918025545781844813138289869544598738329972711881500186516837048671344942387896012134506964940387660622543887933131065500935149823386603730341125321895979377014264130283393371635656911161095466901703268177291673511127254858207553690304365342180754607561498911516395088508488006687611103328536567594057492739532117907485703961374622622156396612381969068754006410837751117419757744074948926765019264185046157256422732270372559510415081685506641988360818961327225901414594698678549322280640700093565607677084850557054154617313615545961468977479701485962213366727319940189267025343395373943094467348611361652241575402242988127984852296446336274786717339690010938539194091600607922163546982118931212090146727644077606441926170608358765815338922309776420783058793718266262532743577465705605387695942351796454376382299575246617489046762285769942852267352439502777183698335857333853186519733204093398179068196060617750042919029352188861904357668034398574571373252476625569251569534711836254979436060705212484650293663981239425616740432356794674996312548419073871104682085765586051515522879784065213423756038302196014995265726055915967875514945266954712092865790836056825698516784069525707473230352141254061505916919876732108164929725830065233838351698776675315592798851015647264692067248966792097649289030816993259446341951608708483972529947772046934333313152069617075429656209523019036860427689491095141167872650561888644868486795678877034014260970591164744621875775741571416172038166134100691528708219810219681019125959588563251452274808343188505342770389948963914552951330480607789792960315482866734408466062501332564055888728305866294816615622163508551609399423241010318386266785198192204153265511210995774890075095301009933618139650264086647333913797838602743130846582098248689788793324865206144603206961794639325889961278570373854714227031555144855865432732617111311629119781520456004862714530622305709864043237566699042392945099978393557511102897780113699033312179350638070113530799383145548823310342898508227354785674150564254589933504117338090009492986650858448746861980710711319290036368439926817738225238475360539529513382307745829457411629294114896010606231888492688235558308933655930930429632862413854216970067358680751303475099670121547913003756999175872920728051367726126450178519234015652355818787858812952099287352195262749637152943665104501989305241738632158610447308298237116698771302233759102125303817190702929561056035479182228690063012251144032302562393363100227333218380455260996667879267201512524927970325238155855951908374381994681318713448189566155149278936173137801216939389650421934570290364368041121636980540085876080858967437798068822228349060677702078111505212881963865637811789700454410827831742499892833331915393408691762478171224522847653858818170266131579553192472683857746103961667789035182205684200215671591950096585757901149582791336905152435131622402763814348518817313012523414616687877623927990794725301524360499244928956703513635312901094467080257234178495773569515193806868699947477663992904327087201246979059540632313244894187510016856667309549360431614266307330917307558311349567917248859858114867139561389116519743130615739928559345381267808590033654809569013730501480023611094131910352579140819067514461545416420700516934815125337646829573328865490519977756211254758226851885730544428903185476676464999006021672128985446985584517930494936649180608144741652004963987026761420669969094739729644273691504375581450528845810491187020611220493603885588626498417604129285319088771472850289690669827563745770325615625690595829484958105683256494719586882070634436662598179786718071172939520316257322127782833792276031526756776059749037291082834196085004571880669029602439695268962812833160327205726292821192876449603899982117463253832486651106587394480579579915417688369665100547712229304430117229659091978362537030811598307849618213587260187569309488536861099436564797650794059244738060670034002645971831951449572938289426571195489395114618116320323931870365117197353989054660837260690275730503578428272859685851535942460190091264285722144180719268872911005512670045900235664702292563330704811288018890312840477391985378216889371900390012405642855646043797722295605732582660055728789764939080273007800239635471524286109574114989972218279473844378832791912733153356766851569501242862234374221669814193975642737767470032701349773507592694899454132868651438982491010038231018946579120336049885974942348638441243811748890681945154916840236267477724996085872664450966964956454310702405562505100523067877565705412011421715622326684863353683433206017910594478049284667069112219925360330572263298937290050874934239140823439087063909614924301678770387879158833862416835106833868106435898627116581061283358262360551900246797469014145057090050323613657535750795899389887836405311442788286127065546146650858001260240525464282933087140303170865057663694054453572476325665083250872971906043221004612604307779477885255850544828929245665353138626495382581144604185031204292270019983546031552513268505879206470012679970453474519736078673008699581127354735598105188213552374770557366465275452480311052104233253045208644898826651125718089958127790194395961174076738519711353175934230263088776050314890474508078605955100479146120903608742229300214886563863020288539638401068453907368889176091699638501166683632641043645343833938039355375827650466720296687632092674688738099610465777116237806913821167978207831245382634426102932020078425003558185172741599456875368459503144802894892591021139645840188260596634298406094548298718618288437341689128650587625206733253046014583225398360435098181747915942631976787494009681621204144594679488690057214010733806566436823524071642432342350628979726870444870074974705310082728564135989258594502930454272874958103922255711520084653723206291014295593245928516758400933974327091488004490560295178604331822232971339870287157969992723361779871303889576347269702233233896882208645205600637546966266468515411648170023984594104852226724727585087337162060334752104408683583057922122976100036807410736872104730120632041176651248234023879914870366037954635621621247044609616071165314625570040031918619692288025910929697248331593419034285481518297569680324696551605758534446540990734803302064680737635125874549969213492983638721461131105924527843106161722310351246824314924106712958493882541260886597951838013854842993494837104155984755261109171300632868815163179859095850572102109944186176105494013811217424100336314178939145991748082793709410662335812419847193536370408183975584759920279696880890459608719504147723124657029802178660083053136247032079864895954964519152657443930735268696632440696854665707728200716592244373366962661127698755461529523186832170010604601630781571645407735644267129508519998361466409606195766679624596183861233181900210344240347472195670430864540011836191175567540479568368495833958372431616954396108153929882057559660008301700004414230795301477364392314495739045239362773483662733423116845608835916995345952464320926610968175288246523784317226589286229603887627099143922217062931567699971538956156558480768435497534948485383591490883240825654367594310499062473783435998120485008166735188119816532709224220125187103585699509931881852053122915003043562836887910031074524347110927196105136821426142121190982458002917423718416884265827034895732610939933776002806077786967834873048142107874597660191365055835235077342920810296041183602447351559997105675061254057288886435560750934884459556313423737762702403112923841074199201297354822391090779580973389980507143178719688842605497021747171914551106982976599053513619110271399729997925305594144233605538344617678986579909513041977035834376399548483323670553943662458765388491222770329898525359184918166590983268120883838433741721037044512683706372124273279073640746657869355543390925550868128746054603845881697499044886672979819771260978940240752224255328739130885372918560344651319698880667912697121275338435836323759255198077757409674589224944162319664316402038311952764776178281322476525476033468303112157661734567305751806642778364488997515541643837340812180677946771852585039678040071107548080663212197816036441511122943985409337592165183531320967017571755598963939341466028059019157741770423219654542813043498516712830378680988280358947692928190604454782085301865161800902961229138836990179215828712896197322981297769932164214176903647648653663617767513316232301169503354415122018663767131431752911882521141245914650953841389374960792351618528063253266782581177451721874380631486685755357098273889932520116708302107919475324063814163239172188568061621510363563276875163746308535678444178876201403265683009667698538082394360683509198771080349711463714152729471628240814160599746974328601323996657640249420486577966215808250693795267280866524875739131012681635154264992131298207897276215087719812824805221436437117291191837067575136896842876368084528336912889786147214426528836095583576052551283900472374371806986675199682483411299980370162239080520744488536151717484546957771293895909906384790979316527370224620541634118171992362979016602554841715605801674432064238452910055736409498971762197401560473881634664096777312248478585866156102913205254646121790955921531206025812791678996086719070389782929303616056278210998366457775783294798939341865077646052738901784941520378268504704785919812987302048878045103272520071148030232781231719856899787570192891385941953721691602765684842756754427022200991910185302705112830404129650423939860930867447259175555022775123954197896903981850217818156510994366780670202211460171608501225286109831912372761685238612876804216422429392509835778458830250909229913383740939441730774613638884867761476398844523027033434070402158156321722120368557528871582986187272287875109069661007785107535424216166084907393897939762290363510748252632591996497993646984569923706071614890569563391750772788035319790668061548579952786423154398437183382436796237113160728346001856847477339570982726961953023015984276887431218554873042331983167198522119513516635493559725257866931867014074008589010286492755567690531493173491317984856734103468637945737990659203343612929069888725945574582633240833959164039092772414648460781365665370574899137024921967211728840033646192361153994933356977328897893518417966527051639239363715211790386796829079543264270997450228566647874164401750649672576487172978762022244940221562408718289704413269118430666629418663230011591340750401465302453283944839818980040402656028977981316321441173863739593921930206552355956453305813898171782306078266062037885367152082120758616834600853023679929014098140866548508581447329254011620972716836226712040860481883971094631243492919916263324863246952318569046876092928869752362216040682998844342630612667793995436429242012382156830372253496942276163257200775091369615890682644885994057585536652808344034810931008574644124418663624664186538721635280009289394426395606697544624884449167078802464716983961875729530058978041172956856772165790867821380534995582631714893136946940070017286726924900372913659350764772196022713287018593359092783378443125411389304173151069821163606492399424614175268433236270335225687385297288819843234037618658563613653401006765823782351697886406971711269867298586716077243629941057947276516480627086228153047323909390869400065417561002596842061812942271661030356803646977046033433097015964724691654849246875834235737205084020816402148403579906980804038643471424344256308093130853135853994952095850790966860177203756961735894954473944665561865207278370651169595897574873964246008679694487412063818877804357392070520804482942772297858246848293336452063866349110873010197204558050419172193872569776680086336747933638578736886463827946009403481947206598683604354037994116938153852514029187298768853965671145459600402092068578721416132175374847601197740274924903682986620946689338685457230861015815348565051989730308114449455987317267164883404895073693919871599541143925457809392726001331407575057750766470879618008041618629761372521588570617993293555864415425865260172477935946183905222259729124702741610803278162679381054897079172103932850524371748282539169175741299907685995819705168000923783407418156091792863552541202527173731096877565895860936809301747632197593566455058098037169935239017369725322669142865293577016798636444675466216278297293098067784747602911678809367614653816165621076726998858996076197338901470127405265167840010110773339217384009641686096096257034720037098450586590951534227935068115882209812898784163614748549607038718777660696282987452920078779090479620816370637704803098142777345254850118539380911564769988927684356158359837346276652102607594259280910084370782009658500862356578598414690550859662122279265633938259227489862506268857132694807450905556764110139638609977263004987451761295366985349800243093269438101476648727008359860160957890368926959279602255116369738247793834450163500148715296019721273710698329398538497342011077810736799070366371115380720671173013664603368499491095686933311923887513781982304622766284960258643097550014525151192862615517299827955806321729403953345528062185265888090717690736526742396188254832507997435570038144250459265647620895506611981795460635802134097263398021354870906850777515647246060145200241933381702984728952045018105267268736975498611316136771067663185863282639624621196079571470489916038507656027590726779548121359888276456490545041765268707243396529938541734937746016358946342880246997580979637657497298774943452202636236753476442019717870781469773901184583734926528792387873037520565354452576735769372809162837252176605779243245328460657489560838979500317814600304695852638093371761074565643482375137985397345087539827505468086422053106447863353275194485071945183834187987338275970710120696703898120218849969480278017237639637611329006815759473428343259775753126338009822760097538564097357410136042064590817667293834078663602394892014307581966627377555293237870047855846857886244912187266996420907437436475535630388359785496628589263349685910171521779230967335702802027033156237138266086590943405240987333543129887409036691684178013543711132911736025446853982173847935443567057462065420041033618206739985329986297969936968612833812997428031798443774998697374445175679274580339769003587822013175508068565329013955681254809852747625024190434944875605335743394517638037353108188756083886548210937054917790460921104067939025141216358745196661749352306997209353639730505054159959159293341786292450055439690430584297539529797427290340605241860000050557519257117670349723291621582943244251329918254707910914512710367036393968941136093064191776108617446414966521355877958763133362405534088916950073886785557216029357568473041937444750434332805729903648195253143021072384286827308257603696349855575654271091204367473905729528019632692681699049863747912862925511678719142142804199354939965800812551819969659797923985431788834886189399976584814124675392261373274874478518057817626319484311715849563615604250340114328386321881231350099950316256122897352201707734661972111311216066764502395951397379141157018806888986185320663415161390598248360268313191997041865050841447758944697718862271138407751943664471946980379537774455726378750592230628157901043025282493297422947727492600348966383118441564140181621838691150107108953767899298556888651787701606940240279676094739286825338758130230759872003497160841599984234701359695245099732284860638456208659322915523404300612069351929834780362149810931782169966002496325439330329431370598691347437931913741836743361280634191196739390675830488919640261470452422467184038644182355973272644841193043834234956576397086174937974386378566317275421720296064366119381544935346935282154499787344285153488849584142804681766119932594239020568037334161454978304073431146542693320882920231418601530203332244419604874210335961968777578778876300490829238520470104771268930956357226356738621427301831383586763519233534554374160953773832339894184659111614406464356176851425072875193654943659430006340624087041600194872799945119756305562102512619673408112280370031700261962184558614552882081447769760938206364713985673107329127719436080458449538921441858721230977005805286579092706125529727038715210441127774912177716984093075990451750286748209005899584642432456242809545865009686813443551228979438151877557798185122010597646619872060041970839070432320524238545454718444295291263942980751448670908906540705904417183005996827886926303881928082816436435086952596087910850122114395808439780381081623739282051781854851785251789370645558436308060002629850217815572266364765801994193643529459671403660677802001390848934888391769868498510447050373597722332834834630599178968409181028156559556250625979996540212553920388129317755038293093368439615849379889627020159631757645405672346003204375355150856213123675602927327482899594807154859735038807000252380244860917789781748543359574177626715208887778487608876260218132382120681636681558852832966011977772953169968261825743315182704114479195642661049348411499710216384112309158907573012946606007306315776034979401329139975579110926374711629583600980355968552280070730159319085349918075001904927562527961279959201396135914655323656551569947931786555683495485565789334524467349338683393128077939244945171686114222369627176881486383007515853720486775666652602143257496915967592371989597109165243599133993642921870654656524986553520645204609163250321514674464421001106762340445344279452376189155230000829111701134717687645506555000059609952591775629734679291233183111349670189566673219209263197468113369893341662962958879299119334324410885040881056645288401308877567748877138655087819417490708098534314440786081386050754448048785584790549348792046510975031795581740408002932716486185572405069334012313393526965756525936521685640002010811721881457003284404206702050552784014677020246151144514112708533233240860985492982688556121416615802990613231920531593016273732350046365516033894555100684474278487330211195129385090896904238313936446710034349517453227284005826419355497963498706370874261272882771224590572897916881622269404645334472730066954969600814405539171174246711483564478851976275332112584887875946215443263586157244958654166449118223631336249538934218151553959188410880072070264699929073149426305397758789146513487337206617829688796807758375608662857780785524483660525454240420160879671192047591058331934563885861370202268929840479442194029877952617776597411598443230957353262312203011485795134634541051897727860727403068400399470158018430950186812444700589152228100289389447688433651754313562975812859893023294221519194716820154527108940555389358241235909644129500800026757868109547119319094138784226504217484188561739870656051383417763376046963494890029650021500257454135400360016030118326554034813664577499146850124444112963097196505232482374427710256267824287057865776320861770322886306625020787294713818018059760798687501290325079550588995223918379488274810890098419589654797881110804429632423019176997810316268895151694893549297624610717859023129272235441073020005028603350455392706768499448873224864419914714588731150816709155588453793121939716515937770355737479367204834592708377775506349165791903811434543039697196867439654046266957740607129710282143582042856051179695332762477629759157030134934018085234872824945191351890572265845735568274886244104889662292910755786785820601182081514901798474231002510729524778480790203395184971158137716054304251911278629407918249885888901553040299490347037015873154461456693801411505777991747323299804996675769854061954617890056136155905160550339760578704157078153352335910974896608414297669676554121807057998509094504443524560881794800853701502642802976204078466872161368600938867764068185952538590062981247956816719892090953106589061660788079874365370336452627433274472954769666082705685651406902293834567323983659094513206261103245131383645938817535900867063953755513616085431279779448791284143547086767601970926482327011190550734772676662712547601238938951662897715520821559240807707729874323320771467379199071601996170957999310192883149303636186735668800409866015901268958813798126722943237236743203174413010443096492726937188493110933310515119069495974264450629769326963723274001935764204095061282226297113689354912573088415408201788849013063543664344879178924163888937578164143118541085278749079525275564594259204107420388629820675697088383107862698062597865737647393398457878020953149231142714496995254285434185798618892095233556525273940341556699262597608290388599969698111656186589761013556397949175191736547275699737973046226986742198547467034317528069172625885279179874432267547574132163005140924337240235455954450690044036129840330109721255397640502380307304540382222793348363313212029317868867566507240427132257910251720159550476695940503115464433825699507733758693960140538515738252596236687354460350399006933123044863834132432828051609463669539527204760749621465519156830743231175390960796433241101769396425393517786064130043996249405419497442631928627020210492796484397113999247167325551817138918124931310601678971981639698677530199207320920233669752662499936881497718924160670040373663934889685558219835915027665635963592954586516725424312159547631434021379409135467218957191297131644109943677627520986263474378500161304310735433378931697190368924620240199495738992151176294478122334930983501592602086016789500834911545194697428885012016540431894052451843119475616339253240549053946614307643043627832254781999436474276639496611886830347919216404268228897425902968781900539428204291480338282990452287809477306909300550174860378280362212807588740770041036172278229018968472044415200790989087532626085459861398055320799095049960578630548854850239146221050766622386805251329723350815422535869612253590889387041271524581488499734979414544268439440913487286156771947373421436908455502319738924322880889440222650556678784562326776785655674591447744942415026164344875395285294558988211725497719183393224089285491724112777210449637929117921989292565048731944995318577332223925415901964322070272346808906515419330164903170958411056652411291384890424283907323737033694073803435188556271428818858913875593450993289949634633578056073753143370953424068668341572953953843944233000202750605621936306317199318835701855350286599246713674223720124383829290742181844299711452697895510566175066664901881296362257410453907425746361541259120703995921958024469193248045759903752079418095300218929407590500433259580351035172276307819609257278279718599874591966511145495879130693649209341698120415933431151898253934400893754896594516976851554359540317337637729557356096740195144647701991161020993941723406944947904387681795780414443822414253106157818875496492951205823936654074824497564023671370481174743365844633286032695663852379486086879875948542931463174189688870809543936105764617184854557941960232557279844914749708761336245745052026354109497040405454466151780341744538079764208524232832735956691051024341262188886462139029454114328748653761386017809569783445177256565283233653643679900058121995829815083934140820601075362107604443549448102332041157894558969162796462055235203425171973709807621706966132078948378285924156452747184972620767349208136970907424450178034840816762602847616900030360763171850408984108013634688734308109514765807778093153672061402646333421343066625969751489715780087399867997261615959465764718311736757524050835369669174972271639181904486211738471841759721845121061482693030309951432666058573864003599528189605704633587663802085086898052504719800353180877971243108042526922540474959323085966641352235384124517810177143020161175448785427389699941585883057248967130559551178073403375840095076945721165091503450917647380554456073196692558366360847701371653024572560418438235263300264648593829578452909940615594292724362548825076975792971900129843128944245629980932606468283578518695327421551734668740008761323331883027162435251090468781464800766254690032155735329903023065624853534424061670728633549531018558488974215451179153619257936470499804144673561186986891675178094329419337936212901485780108784589064743746977812799773812143186421065600946612009844476291277709080564771409872367578645055567979909066208797187736536975440268606926662163859460768547678870446472835795580288518475456976392775791382754204289619977649495816649961725476949173799186613463335417076471593180936839053604060085712722219161042539917773436784834359504147300442183739968435485221175038895460781965807789716490842265330083900301947272685131347745043940087251248761769995219036289059469009529319624775375039190476734715530916974072130846720834636422589063226073508682938504476900742239613123655159690571091737640123262666317428950579853412780741522532799834798200639805014310749728778092609676739536845416397147370783902519595449310471425747602055031671655151292928079455716768010816911345035393627150833475840905661316463563083267230366656442622031877883373671688983359283605426714810450808202757751106686649451277697871034531372583313066525561687262734614320433720831625006161198609996971568586786398800334754594608749968888664311163361560743133038756163672161533891055176816724102434906603125008254443619454474989681548744031993159610667685402107117575009395495790784828442382567571082888809627975123488789754663354085146099281321804113973681890084353115793820647261429257455854281615405807497708254296706930990189263252498649337404829370680763285022906919626254105904977808259728733688814055333971382036279443182176269004084623706582016687762825870498651441733046802351420263176365141716150025309541062566242067071186572883517899313258344884775737632910077041032520003010440839180281424790677458360621552002576943030265829440259295486577054303052632687186490947274440855582239315607125854203346764762460834171250928869941800341767496006965599321066995683459538224986326134406619912087111933896361351999941035561493450668037198108071028496866872906296757415870896472292849833694479280663782891482122675371697597761636150855507486970032172934159885024429434180988094185672254183626632786457846699291735706344038908238052842820787688255910479297152848559819112714107379594045326977393830768327818018088244066955532833455257831220596948486391655501055736559216340436001983572300398847789673778944198564845121702226672496687141372002873363734930570118316074595526761625154332094681929703789939001047374682125518655486655726019097843578199806961921677513365141493822674894726093974814103491281541087225640843363582190793576350534228390000321986165570146611859863967874347826092917069065974269613907619538176201000558457854396823888504825369983750660338041846602607955177462464641360341923130498508782372466648913394901667069660868367162829787030354012707260911444704024201087863325565548022691676840943748302784720456749382002125193292422438094713604306993317440615121811615132565754080875966244778768648448587591625118493922036541240673154884451708869512341946931819717710597810821473390391523214411904061815902240901810478303589639244855722474955502972439318247323344705147545148068810531316691059944047409803212686260853298784971508711176039921838156555759996606823100285158279013420448694515729983828505938681856695925620522703379836514363541744814418533288381673147738818209210420565335327916883688712863392390011270363762548578737584107084938091247446897177889352846320312915777372063076071280904939445415463592910137849683042271036033186301747222327527833725970437403640880306532943917901591469484548208901719382985198490001836654857161890500213446122157237948821260696647883244538444345777544708904707536145183712490788196832661162460181221211401763216979635361355882852458532730018711007227100721147784817266612537571535872733804759951382323696548947204730324914550858422668175141396962567840905462774602594994002537689466737774347212067252336724627667064876679282074892813510502556102892471473312975454478600078691680855903031200535650534311239843912537271625952923123964873136416254821401365637246453196338352089772994220674352667158267813644786122125222691839922505284187755780410335545895763228418201937804652126283520825213032590801707014819636892116829860336956468495114199749421546522481414156985616573427106121356241071687928017885906643921296429905027111082148248431979403681212934671221051847929402892178357456988733334720145840204496402858423986745519959882399718393804776148758741112056607759455437517170077202574734863082860480944598536632194514573529186176017591679000071524790524223265045896278193309652735869544782156687812137785079051100142397570979521646846040050816545800195548960364307507709805436027335112223665536543155107294869095908216187149278020686926184373235344950228038542126047253837245817336785970658989218455415657494459435835139394873215073359836437514225399842733640365825011911047838869194527225085624482840113510248897060259335132445258917697228202720996499392797291798601134114697871762713851842629982421990139874647945600703058169837316809430216792960037487995621273217030531594969566284818377722450784384869314303595803742904529152034319494984278442726495951641479986249289431663094319186659477100983738409694568901488418865621902118735452097053358195341232689597798781258648256799719574827559951350667892904227575036387242836300557473579385048062222065663997216944320113957709757036106264005768307778642464194782095574231105176455971659214735195607402246994432620030826838741678220092969148303347833885185415092675292986792604947748826399665746807798806743019310768054090145150582135065096734687331407083410687402350333572690993169653102450945998370107522087708336335149982247997958955110363063360522791202202217237953442370821403559029859613562766773080491973936949605549528405518528135426596066782981089786333420452157441800542961004055985841314941794643138913843221731034686904221447604866227969996152070515775953034554830996453995889234741667859928284285540552530265437937673066196347491578450338316744805080738435133599072992761430494014099706894204032344226644777441823805117776186186140279450209432015217302571364589513764070671241032612217204613929035172602570875800625553157415314152285017504356068142950099656939892950902745096245720027772405976208806204686841753334866293105322564694716636023535880516052599432320979745212493452652271603056903602684829441119637908149497613540378582078503210768665701464361929849511793626897353461230681526956869399688476754288716560578708290006232214403563835701840637139333578099797673767080946779205341390799657588632831792350802864013061250307342063436358852267617170890251139101117854071760495163321560880137031802354145177818432603359042745469434973653680638337758355191966416155045874785102908647378961061741543334553591371159919656899131497936961549449954960874595314757348145077697746054997982620983236695652693171744586213506352889397244586285559827411999862043693133833024385834580318705300379286353919725835814475391931137671670082566598065544015584653602040006944547461589628653278735200936863576385896161106805511467939293320639539107816259196365922403008199074455079919212270492845596009408567748084999878243075897144443881689611764563442595700273779807764605894390747372517819470722500571593975680686150289517081658680067780743603795611317218792144242730185014179235200251315510759385998012427255988235402854757249755081662345964666257918428264625072357762903319207288979077434359126833846107452596227538613936064892875311263559698139749658214241495570839843798202460951778537705976218963224615009772622364613195804611440786357875927698833689558930205245956867653001668346064820403833342244441581434088815000487887935338497316328400464187991108469457265980095940122566229325268327098755441341933680581750737876735367085839883001529920864757860317367811505196453777163610039009861546348874253224777971734347413912551516216762774122089303264537848102441838306799613210815079421632354996557061386810707674850798962151490105817135708146984136439498748547755119528926579572606679376313888770931206195209511717792307076269148146000054454713906607145712718616873346321197040592619282503391393261317647342792892522085595776366553415182257998587843892805157902553958961432153741337669114180520031573948661073350918356061816377600040367123377371512467117367808718414500938376708905573327616358322462478887518135339001768527736657602530699628018230551807331242009501860395177128825355381033738835819638872779428800451554608402339167731143509293381575237964727845707066770204890417678137397483235883137916018071786779415537702046436863054530452054837841070563393535041544245130454456238379350908813483795814719557785353697840748539698284604450124517809312979580579274358677173106236831703795295737011214448603490489648125290063881706001438659406110276781948065089833574550224173659495433002895707797253260755830624204316799130955983602913873686370604176545016653174163563880544163198686538576337457135685230480835722110855796074131750125795881436161845752299054796881692216992648632165311379764114915401958369588233524708974931856824172897894469663286557141739838619225098349956620212138031497791665163040529645247010462692333825655422310978530608315604379308614150500931793619359769562351492723653629154827576486951167288393632509913300314513076415098639967139341239644120343743212381322781735847610220758457829110091988768928683210174366921387687975486245470190499334495297907770327511735505397336386776739736618949878925184010030386173476724324132229167487259159369089101345445480624349277370792292773140197404590767364553123242405653878970533459287241206081028324691134376228269843659598933537423494860010554556887810909097733800542130898649067305350700751901570399913201049853342503185354156181710829133363516754499314437252417706224443844979628988919727024982667001644518626484736253512186281677051258498564185581838915315795000812584002240537966388285475103676067092456472355825261801175918793434815809816884154589934145425347930747536156406604219376486986603263867888417020394815824917828925852943014615709519070051577434486922674043544441170394756331867102627624533163263481564676228609373330956518353917351984876247245758953691734290310331384922069742159028463851773650826647438164419645295219228786045452529127763467440317600886032010867953148382882840974043038453899052832950832803807062156974738846696843324599206202414677804585478402712437965608182550822206527849089718797856999524961136349735692953414089815652359802942008703462726662328664549318947718801297470749125016826840355112474115786759766767632719354847312628470403335957169145923745573360393448118278598134715278793265892152871867243712002674822837442468184828618872121133711798376745140181003803108038526932862500912134473407640267169759877844630610774201038106145815736091874034469739157732437314674748401767128702693280385665778806908658480954431135894994278932383109987189438452707098271404943042236933926411509431016888044333737797854502594865486641468112462849267722793015661430405999979440521295906506498728601554147065588176766093657233181533188275107084305093877396365671252112525475758112471538246935038839146963437465530116643333463909964392868091172275890849469612367271941914664172346822596744155706473484866656904077149341885462042240607888698951670655639996486499974136897734726280264203333090713387914312280288091195262783878338126528475162747157149389229929775722304274833349641639344342836080482448595361726339042455951959204570249994420629427723902665133955022064416914251048585616118135493694331012243362039521164637218335022649722252999308669026732806958619959971430930019218981060201867936659396014196070124340147904416086719103046536850832203056121139437447024716558801131996113891938308649895221762709929993590169686270617346004888367711220676133911410536495118119194073954995475867501340369201581054296192146472472348450574681214398299403923726410767698548201393500732832619761841927821590273713400430001918539715497905051734789969778689775310904196039262954751163794545254881974544228600490465935146211154643051498656406181377887450801329234509383629476411489462350559958990433349152671612880207479029537738607783230270269037277850821401010439682064905624468502789136565646288347740244117852795144764801859244225919949658467889325078844602741973001639197268191837887472350097302769578031896262753262700155419350675013431201783318230118603911752785098783702772758464245146905963185364533747352589079159657190397315110447759214526642830126584841492694582813148532875136128246685544579303606077838586747473384070544964759768132078835958040411470964121553574121570097644083824064745503982355737078912724659126852497389469436610918782625787991834518823230515599475356721347499227448932503539926372048355947379648705953480312048091031508931350312361241222031611061545196846562280664611733673747389683635054671212984097103579401826223429887127425868654706284341849273093784738604693040090299562862624217512615702539270967728099655405043463659426617751427596227263970216348417418958669062555667718799490844793762820606783644298907798488870142037661112186778078561227293949162909454362582855127914752620165925365240493071246134865324450076290276300828571330670270742337177350863360156214170115391530108703669164698244272341933215606180835242690915774675802256300773898959527739754763525088041554398676049946399559020634767975244222975926660864049238020800228210505482712264388344961021061222887180389887117990653473524376098872550534208236371655165786024479980050486005828625847208733722365332229791747523583379474791748528755241118865516395663979388814690385080071539738444184652583615013724696410087977762798138304338764095245664527945663286256154228143078803473353907183072852359911801361661746437610230796887195079251510048648824696509531783265675201061440888115589158278440561440015583530559227269102926947070324298826136220645088173925488243229219969287310482562252419193278887812034743263537153453266682853481602249835799321870661419379291791330459066533974895470419507805867457022300552858916187481351526915120955010781857812756629557198976819202719185498733674107479068891880354280051206505330601337693349491883579072102408089584263574582284649455900639423764363959493839363794705224555508674804446710513279258283827026309172695609480863317545343115928452797827705204329074326583431051227897398748792233674504453775133416440297704317568991187733449955500297173055758882332520719637006906523892821058348555813306371923702018170505434054148577090619278752739729056739433707332550961735423560259057120530468401831990541605656251280041611522667966142866419310566735048977180135939509967013984118844598967769727145779827631630325961882287048304774691301840278429862175395640542200760475909335121623908234083410516582215461218785246193171231178841423190193613488261853838218863892470046360349979124594245173016070752887551585272987676148645304434753301761226873672637920310797640170022320459335018332099528441056084110154415150776118321986508680908688320380475198063652609350251178659870097950778082706098323220661283535347374128508963633850351478864712270574040477721377133897077584318970617895649268384554505918523281978286435840636403172185680420941450015852341659747466023492343346530675119676710149339639765429129971694179346684398465988654219087002275341258805197318800470566399080834113905426953788023904319676152209212085680860706674402026997241267497948637600290748363570473291686399712945625880411899658186512978792787523119793229164321884269204228598321388295914086158242861461567632832332121297488100368140449654181097109822166110378957593332234797771741229429877087643801495738700465991402331986492250129938841387212396143888980007646646224059167821150844098053178542563944504279825998321211438683890295341930203276701277796428965930112003772484882114208044108798827609699524752833623185883141706891975818695049431987843737863834747192683847431125713696500213698825461356568950401551781549548207784793608344659996537108260159619021034105646849171599446633663319393854572508133425929228731720614750793473971153129973964516463858380029734995568645530864337219605137952799960658723892699805346253233582355991044419503069967778524469730414511913996858706388958863947658082549409064705221600779372895658794141957270122894256621651919336249043489012645096608343836477396916176066342772389494904127378870220931987256143475520297012888626401752217755032106985788997340383341277121733893099858673853328201267597717431967060786800152834518147410631411544100841455525330477699448527658760333907833530070691861153796764948473517258531449876232366043029949224077972884775810532614402396381873108302752057816371347589438737216111315866787056727586345876269263898414780461569287550204358176439717395647475294025361593405555423996708750272402306317880814211656816189858127874753415610106548091373969718011598569725513896791239609910388047995435090838295318363158206238092708158697967611298023253896623799678320098452417164931413379086246445639040838302383457287547925845608289234400066481882107887731277165506299325613698810373747761990747069532118663625263098540716546869330638974494205868181154589943413780554974241354736706272876316859542668690482048202718791955805466117482705464655444139816116493663603041915479519699436907691871430044927243784499774389489725219989182368353876047366444369165976286498251657248798546007080779476739329323165874215634046856908776654599258480757612976942420412733529257627721907361724806652151860016844504925626824319233560455369444950499855906061441777803245118661326948851372318415264005408666411394120327257857100635944725571772414943152105853161570500849059428312344499696429455094083685395031700774473861571919484248158813930226885672296356843914621883171128402863871552507698180795771202082613919019233310931660508777362179290467675140064065910726062588074658306537248741364150049098507962101281927562588944752309319313058722836495552663674234441135455951015889718234473621051037789460201291931540929775846824491826889619711629665068647208036990626568899195120472844884988607609103907412902666523953471483289284439255914621324852998245728553186838135449114741170404711332251369737375681058179052782037016712848048903352468555856448059971519690777695426361714983639118649313158846502583190293500170314546591217987085479301164283182266728439327077561523751531422924396152013920486653890087165135668122781467732716856220064874857848886691926131467780271147206113453935352317679135416152724852974427156227155419925657249491663623362461435420345586635763249138941373682185917456282372985315028746514832092534910127918438345107307195728821784488065536990594415714471938252005759719298368611162380768407746504095622585285589499780905962625558674118778471001742379394934057746424355606517088250415404310668016772147140023981282467973400013821400270757979041202456762056184531781816124458831123236154717039574281070353001853765107860497757384557365733684819647126914159885979386623521227445914780559076864529774973699066997817614794875722433935531089119391643254364240114627285595041260845354362493892922221882633176362703371934598583219745460774043977226186154852341293689606266549393314002848326884609448393191805677092809220601835770999189224401877769271798833212530983478592236335198135291123903975281613660234716967695943927478355337862544241420668911459115439453237952510731703864427909217480225265282841963056960515397512681122934050204684209060136038043627343299181897431102722637119945037460112357728819075282010479333126361599459822400204498412493501452146546417390652112275936589307258889340167961885923129669350345590848810226170767402400419451381191062799824434289272301441353537539031148014295725794540726139558290262181092159198233338828388098767494449149305512597571196506637277068027958829270692216805048529081956582086911589176955857671689416283712971062253494126058182684185840522028871301398183864983232189600027190652042370269295360483738603386107004630820579533907466973018603636119142513172007287761619321959313530922602596415288311526533212439979489748392308163861917695054672335818858653780167316175026527370595911003443341338783811801591710547517853811731263683194998678800005427614819965264939178541110371130182133339900080861926627668319192433027524082145025353837742912896836982501652157996649554610471290720338763004483092253281957126650184352813222820884445080570844365644134256496545021686149523252893130394961527147966485873369033897083089899966314498133799675233433381244177468154054616273296320499206219371300725933558713805049616419296552909222616666432430696202497141378472960375009525807741517230872688456921055962884005121981706106217800891764683784535862747410093573055366642974287140485013334261595146789845626617914974508742419536435810600784198394373236251734547514997404380934011120541617707419880924515942423651248265552327206768873533307326113091264065359183795395832472737376650784530773671169215538108065962132949127121996333204712027958370283887237847311569105633817209858571857279061399367629156633285931034365612848923732965957188632472402109881871179395350106890900193464672638660622852409136589061927566104383176799193502677403747434433150010382333482745780330228223448187429517253012679998527636347716291707373616056161990844050835247303191284580057646297732535403923272423315026592576639332913211064947887777534147964798724161918830189199266062946428545640836360225101708192919343169906877402161148448030931754919397791108704794503181478953886172295753178995392713946358500894978491279451256430859069599332491768622056316293120851868494292156375199747877631944003902872292632712011574903535778578941772158028508924829422386537438607745276898467461297322864646028947430753124925017613690990705238539816390115422657499362750785510919308086293366537857938769074175432697579937648177375597950692433573110651101619893593464854101792741602793528085150156271587637457616489859835719602543007215443859711868927950995750956828105247124702626509612293561490628719207155032817400246467312985333445991543435233934334643327068267490848533343047460586984220522182285140404611801224022526563156317644882543262874535716692849338656458503145584611815295608636687317151765534896509887191397700832503876800070411432492332673062253108006093333824520653979649228682329069169980653380465334124034081452592207049375641673656762632230506884015911342060249017921835408640884247087787901928474333960891893005322837514257796266728284370336686935854169265767604691757360037933295255916729979685765929724554544346501590094732220647423557390128706876279852817624058363809771631893648073125840532573382579080606233314024816409695514306772490545685888577428310454047218376157308934298080722144790696180595902707292081076640046343532942523624409384046564964054184873163959277121398512410368958500451505024463611986333649094424597720037644751362272101500106635745671618385737773562950096280470043212773211446155130470129129996380093814031552453494989709566426930402562618967489154419924513780301418053854611341328289893694091085018010935989884723341319693134834576125198884298755794938552463597294342771452890452381451300396592312163101923850029211369127082202243627340630530355703167750880141939851773566242352873092889696332189873431531594105447418758317364933227389729121556671176436981837420702401356334282527507301190005546783437122715977979126995532939889655727422012658189815184217478123833596101048899353897535100766553611348742032227388886319680229264438547602753164774828788617889430885309725714830029285507885131389203956688256286329423948098453447855401757189962846975461083835801053530276187522458064288045702267044061088584141569605340429191063535940175805948404753895680224797266131759529080726669895924022458597397107592152434498741417036066680085152183762336493269218392440960138185105271721929759378494698856257073138789618035783774543407473047296356278030013672102892843907750546231484375579751131698771896945349727396967646921013636246586795062164510892464552847953408179056166279741565049139008436531407215770468921838420960691379114592397974790779566323124202641271169488066895549103805516050155691455115148802587478244096107981892208130078606163010443175030746088953624080744181060890417176197173039349613649552515381492492445477185289541002143178698886913741649512463973930609795554453642362151884708285755404922058783127588853410128245313960023954119299629740399013593814204178270065662858320603934882157698026037203597415205243700717675750470463158428216312935351507768541255985377568566409592627808793001113114260844154496442715995523360689070071427583010192237630839896181882915349216116541166637072876091237956426436840433339679135164779583848309918009814810329696551701955805238496159875406558246401605613709277436315990685563456213564615842165603249093553168638593517620692277435540400061122162984997695505010941669332335500503234382381329111847329046854419270484017090479600310192258722405337963465699183669809171903503388906232558277706371229683392286345295351978961136202346795791332620761952334988625176040971478104571218859985823425399208693799094227233161066218484270855450109992822842666992722535693599537041601165562793333556081233915517250902130069715185698146858303816933309876362393522886248469147215852119751339050169398039490106731749260863988981701535570385512271109564687947016889522885331153871280808758829351463597731605958916214042076920959981858760484101369651211686231098064094174071555986409352212167656415861572761611959145480531029818243794377141490421643050262320564093988294253259475230402515622135872863368233562937264710806589051775635081168834615421809467007075032257011096668237847511898003196940488451205103801316503263382390820933593511911637235449999428268154212599974671859048564428583824502700977740735436544672179407564940764565021231943515942814803763329191483985608513667762765001448115529184775265168152968077526284350485469241614835996286970190585536358417006007898624754119879259493346654642790363567873031033009614592220837585864765739080377328041027444716042256023337260274305803530073838853711237352340907547957753636533960954178104724215487384883015781961360520958641437531916254633027944202623437472924755031707645944091825034743900978671553576142499553056880110910920956934518269887904523587514357432327680834583326838049348806394290849155298197391866835145635574886864710948306013655275456852684439852294618257921060942549671782737811687981804277853813310217067027222492656964509882813934948352333967833138376236042679904672679498902754550805659065983125360050154073759769336548807051578870704001973049778767935014074611672537410508689654328448407709110617958719335301466829490155625559509877818626534423053650330817255419436766258839906465208143170862992955456680377703302274227559492233289819012472286749904804605170817168651188797696135416860774179031381198739709474495341378150865982455015027406971772533968270842037642493216543146642246254864311213711348229039946359025591137722204757816803203057918416275842293714773943322085246889523564832076311334334901347466464415157255817791169201259102336164117870413979542114336558189323038223506770850995556798049998112996922005160741254030205362327944030238122321444906659860613000606394351240983313392191500536658153306259513570867963289392401440809030111129255314303045467448417335608412226534825729556233003456567386145813457160541252017703719603382104547055944055545829038414209500273457755176457501651842814537391148885051079329201782369865725381749709811038609539355402166831658159422728543903297599097366589080998182658325205451148057034489153067509073432934670101760571320502832828287946650080590840174451920412037921440929683767520650298274983743424149428465949688972532175995613698828399559904854483628966780900745674520319928083392623220797358334046797232191222252104005659822815348873404178822829691090870292918172885441621754121450237156244667050525056595960405646490714281150302263374617722483857917535793939309321563041105215051730600313932889783519212196468065131514695878733059698689294005906832827036472038364253342377307895908103166941574574668389886382506610363927601413962920140063425969432399807157100174406184132017906376929740218064594137403602195653970990581839983644671360489375423989080798528142683123627240363276502049388686174277273846883450430644023009356533374536147110522896941684118077196365391881996256144335065696867363870413416790789906766571123380557594723637068388211410369282648445173001650313054767972867709167515772089215090842354299702158532255045526429465941377019144943398756925574910425906559885648520699187478112924489654653462657452315565874997576669946864242756172458419761432003334245985237682363533307293184057330972761512276824373251312526766266964157010337261240657315131212005979075379450572879126350566849922374465385755863715259743256128904856360187063974201194110570224788493855992078405185642261725110261112404498060968110805493369848963157101627667244588648087565718171521363929868256262527641275525476078195611198537042905858145875759000979389228468428741174434391720604462900092509338589025477386987112054418918798944820640211000535687048080884454623617143948973105088826280321071425412162475651140238085198695863152431938211911784394915437230705980699201712608381847501492780615038109865118452718215114509722101522845199807016121588088027630717442734194256998904671563800890333404492312304779504676515370058626226132096723213307461862147891736048109801231228337361960014946862733890147896922811141946670872088357259960038772414311036945323621755698765416592746773094730729412749785219519861514303077963254934275393608422532181625243427045088019473573608696642222734576598794901174072292043393168005903772663493375014111550596268603261040303624830219016039324933226320005620329912259859620556179944782814769517443068121195130168964635657203167954084568770649103246834800704774740235689724321572144423036381381456041032603129016146465073063875220756665244985031309695618798785329320762513617543760991096484419083243961394544933434644721267586480486507228948777857248283281656184264702365906686127390231472599036060608036065057230320024816950517382744433023736750867824704651119998869514134073207214525695415537114177796936290246950672559627106006554341696952545279688984385056432813704232360554732281272778792133268141814430967372543648069382011400167738278675990134244458674806108464320627343392638499472016712821573023406292057107834325260981180631326346830873956896576243178599384283410223290386072388856537605071982459798720074729139326623116747074147701922937597831330190812681860703834744804389881221775682870958582812908785906538442480242183824212143496932931395543519882042010002679514738156304744801468523368329841956663454321858306514978568183357244664292262083295137894685584390646704565182152206877046701310901014548312974228779926783354401068780415976463237568247913962004436301855525877076803101678058503240079864903729093457141085339033252661794739711544338988556113980713708731504142241363713046756387800259584947343785703121859191453643382434688804627243673556308561602614714347184949286900199501910339629919976078639253395775905325502226976953265227403182660487543105997183420053816564927493320895262440573383533289896295767767782935741301759710833344791813599173047066103245733105249559417362930800458443437751021086953679983576971940294042045430488943684411874492458797441762019793991397369966416127771252919307661371005957862644159589531646293730264821207343437872002710382716022414707977910657399209376672496406567097023840669147906955963491553185210711683587129139695519714003521972599243545444368034980922593057261457434379485072203452059371635209799298134359977119065234243150924209193843651918177508407557448062342146113191463156616650094862703247576052570594428026618731006012683588558053737230536157370006424659336786481051478392872814144147231258937766626321235583768438911043995918886736453196925442520613457902176236593294386811341830739196005433276674368254038222326974617571090436132655610439697283251476736850525183049187756937830886135168490481477661693065797150439839792373286735767936399717648631054700385808732298254346733042974792718299437460925954272458596300945263456679867641281962097382111144614118735756447525698836175062901184353521123212908378298328920300025399572383836552253699840732271821117795925503020685760648892306109327261046346341262568298029979132853604179028577781177826712124488590217286870177701047430364222240374172334482598720105602993561056848684320026944471577270291267181420730775296142001948221595419912779872954148702828868427372383903680539387065134200368579496550174817380310142266858140435499999844262558285471260375764885217360149765385431871495186733648228068542690644097154337581683238447135632277392686931910959748714507549803305109390449681606119658679895456357426954147913766803495855838570595046642090247175845565164607501546512413450590371245287359900829428608814365714837794392193241319963082356276877405952769067346196696426219792729886601073259010513289458012289439011437224859506957820026919882781023363389251987411507549285764459383246053877227820132743492909806665249652482924060836652203385627612466975361671900329601341287791009074781636239981583751291006915706996258352985779026161107743442376622744830697647962291370130692344966928741420545961385572136578755196839057373298849783094144050733986035445258051985820299367273908513886853004734838432192111932412429366636231951664733870122758913917965702642009131818866705265954798363862830753277867627885423234120676897121353734679785585636277837851251079627491461871262635672377883080034552079242439390303321510128917323339579386544708575857504743049712713884752681504075220483556564653678758240731275220192531329790976837546435474725506162566909872744089969876343445568448184238468900781287671517936719095657097543878915841965079615693122027393582238942708755105518391147987362451488856971397513807943859257217447699616347505294844835875528415713691680863685239665820116857996136470298765278964199665886486579369411546021096324054854692531253249490361563070504248385261188501324272345424036743974538865244749775399361340498307734603477377343801681348028727949182278541454133922828424652321725874758473987097221974377983394140531102752556267258383734497804498854023911499873214346693820776869703714083284674695917034687146909008167999852874968134077280843539331795099361002710030111420818828834397686279082081533422980384972725889199173156484162838046402522790438370778653962372543105793795660722203794994968135188361701798743910482180058439530873273988673713164121375576960652074559665771012232240967361114430704280971008409743679282727759127403745526111318059083152302111291117909478923040952507045846852663894571569182814524172749279170636016107940762571471411930576652741507810042594752163875823879120168887562550185124205208961808869064297045554920192820971364738711655794241400510876685272569254831399215475150413894940731535667632913999992005018432124586842751483624271411110312016941644915773470033185248204338294916622601192374271329270828164773689700233507408089606054778424804189271913694347097504676161101249020994213996486096132573201152371331573273519873303922648217199805545164752255445931620092890155841607243505938374079460450804371924043573375850767595224480388896542223473489686199716754142375415617178817435631799247273577787557012559246462144166032974672236183795418444682244946446399202418529404673747989783897234293625115508080255967315577072801135824909201247799518698978172072764150010591993689364526859074178533094494769172941657642910355388144229809825316860050220550943773532362055772283330740542148951771417470440231024214422541346683138380773329789476293623183040959308693058070095360610916950710998202063473447900964806748763644730536197453565428658237408184525763752767421605894560882662252038291287112942630764514695457678197266081199630823154658089156320997507193015356836538276895802640338545892263071780358867905293127991077355528642717119874714191048014585143288775815419088588586653079041202560737883104352739650724920664465369948443462050128577380846615732865884016710663834937755475450818998236087195331198788103762742526124907834922201029261559441240973848517686920864387443436873537814541931633120723416046923356804027967888913049922538530117818717691279800153570690441943401280986099042339144610991351100179060397321352931870356141047226404263249989101961297150527743871372830950845707621181464363901056686944410952304362731810803701118041785097560186775966793862557331128767318565597215476686011197749474216653571125185365982379067787565861229330660548510650679812697399248468100727401190284278395528281369562010411130600693664190144412803598467326084207925218726343433065223287116367449157677932957954864288182854106303172538270681362173732031120444288336218516767347808736960724059959598589956434165169441681304078109597946149683822002199026853643425376051985265163471192887657454851638563690798769783585260627302964758412656449955549709192430663985658495605236186415008742939352033607924149634754195366678154069734158571403523835911852752017832135412791622677717339174691156189746110148616654013819876033281365273011263942620795032471374063549477443288570615603890614029770764711431673871656371935391434326081468384599436323621237486621841242167920130527653525399073203656000650891273350219779177669862427442422081073998124005003120894473439132916058723448020399298136279731290540898776646451112172653412983978234857805110512204905359258675697598929559149678359564466961334113557527201570759639013738453786654110431090709336076049917561295827541176965682918048415764623276410933501164631612443775968131689106035077512823456019698877129014355432347124026819896904657514747749131811569364623732533640168063429802273888945566095853110835517202964385768976052420427634466880332447517655918465801554774971920579049297884683132521696133422069215355021703203356046325613183271089113942554947385276905593129101085641568410794648424977288400638768398454255059843729937084320384873825930458494665098586549128319570393991706719321790775291229859545244837929828730778003297538322129995931017143063575625620104163627329051183991211110944671201746575042081013825208885278842042599434263106520130581586382150199020307576450441195530299767901933554970703880715911028519554454147225211755417686478838863549665465423111991927263991362448880894257633617375482838779823955775970925532375155832920100498946445514198185475114961217030214598295965466423083287723343279808752646179579498218879792914406197744695227910796504333514133906583920558984689281885890261962843438723815978363299511556087098267495634467944165327937046171414581105155741811058301742676299694550688921603544052078493625051345863323145647907060354139920762436428222999173620669211275651650970820884519482086649237137301165769707358611736809309590612381984410281225675381552138872639516839135050289159346102654869139893085143260987509985904757382088131436525820662912300532684992928113845408555018343890368259369946183901449973592854349600159658586820921776223218015790580038043670556428914817691570601664404760926212575820551788535696421575326084980109807721596332914663020499906829909414191863323194194290066753198906542353253054644673137013064517511063283977088405176087154149529410189436265768556646651633971046459168688111911499583770687710249238701933319111086156914246453070468164680806680045338541798341700835832236416584536863696392127868084495197456756136512270155305324113049326756645345811158618911161172171919759121661786061120760355658264663754631258379722603026251505548561798376011999443975556770372248985087286360241587292351825339997003683469826690669810862046640584169765518140888273393259007263418682632737741172953305528643884941983446225640068987785378930569908304717412507109760182410705148090383066405849027078496094708054765365269691313967960996496836389465500107407926757136601651597563798321233197115007229837804278885850224840283555549403883106939446825133433138102493564052674568234978357316855629576722342167843089797443956195489175188714061114201569777926520112529651762708015825700236640061847880665284814609807878365841812144947311940105163346256965815954088428756905496686935702149173448763365249161847704564655959740748111494500620949729187902036814160505888186077815962994274016848692546287453297909452741644636476885454143911551218661550738460779962193548025916084731514634588549159790357588480621744988231749055391248914037743269354315619428530790906828587528843334453788810900376992245115926636519522632509504511805211353960339703778808258524984987477574093316135003879779957819266965126125161106694523183616259344590157268514598743387514978511415228542381425792128370448964260057468002856582619083541971073134227376176905160177296004501727676597456127692119250993436140506407606262711187998041515500675870975459773623931528551769904927967820193167685146268833513760101284423753590776025421836371691471464290584786341953240052141558966285229475893872557692448281265486235379955128787805098236923406758103663956970327137286210274407035254098366478270602928450298872203796660913568939807185564999833749441436426704716558582118478739788749086692138792165341897756278072852201227824411843421458354664094411319763966907545219035162971404179492957139809264682065423564204737468364715925982309781467892291898585109740425221059208538055498403133463166892099096768654541618005326998695321905327628941251935019081327931400388145884318514931374695941176762135366062477879855095508995372326328273576819428007812487890882805631631790041981343272901127224271011795453120535248329942358716999005234810455340941933653400698417778343981065182091898364520600104637733890254416287174776578028265738704806439085527376480730644155991435662122048347249021521457484694199448737060850075167345835084721004043757035782641076395328544718859239168254859469388541457067726830014641388983535502789734262726702805272651144987696440663979442812025219103345089320585294202301554794786654740526685617866237946361164646962193852637990137093116656810760699394163255433109732080604524613132014866453685539879129383283435708255500136534037990901744819873345667571480408071931863672601671435275678465142504570761522358576389245403846838420012605322728573809047344995100887621476597422619934365282799056659756727287861376878499811591968209434970901979176248326915462551471116988884069605525563270750547209076037218757744139522845110512359244187545415981044626890734122642882335448056873559581027713327522329129207649780606963563843625943266494153174962751856476199507768048165680428619491440519393771285198584226448547079593909251755865753398194369646545290818772843496554193191602777998996315573139173897861896573210975533218300300348387379596916236685169969200186109936486095773432603062471401212039431724870470443500593759164389335831754843991573548330188121154896051527727755822442871504835917437466577882693300920905523982375416928407705627766683435134571550989512504877271370571268060462608938042777142173023701242543438724188445322876090170549641069273525333311033764170460907843405487578031065672623682989299659093892391026689439429945944471406186608308714937987795400952640356016248979517789796928972293206670468343736152328603303685600273804976298068150326136752333901556088643166559564764177329105977026348292210667578707897901354687036280122884197430653980339858131152531542159499573733594379063634627465843457040452309524735763922647690861701360724513620815012649790645709557196880812753234683056307564263811787594600056455864628511479221368771360928471049025358720334430233711902776853950902973409031076539544775719688354599288454794199263897656235046266152631317583764179912784433584886996425585412879211404896772707505661317846396218830774897825517882563103860662364068887123205026910706820178171695289594017898065585827912470018541644042702546262840828036381633248576501782768806096230106970868464933085926278765490721771604162999568320585208423409070234043349539445997672669594629065092154787062173972674023652563211216174701045680553697785829725049795925673852653854288707142206371817325672237727143456072828290907945422005526531261885575415416115235891608453021925310884370009857443548424026907505989887828160310730945045994859182876348680599456787428322359965746598294507771031834701566332429380292471014342437902100649134260808753794943623692226042613553631147228851566088161690262873293920565839024427779635309900998133053150242065877035855737346802905741958176525332975047222533771300446060390757605847327299257564188415665913794181613212507466694995314445233803664217227643196830044618580871073178401131517717106182294225907840520766404598768897914214823681882166892051140969549820381420641926031870101497562006301401051253360477276834483203091775768990180971908491224552693864685522715905092940103444458912119171242813637493857516000915715943746528001338117961987699730392109403583566486224477394557408488986931914473346489232599102848446176939064518967553297876716017248922673342418578358032129486919202889344419471606797829700618570751710865424544553125014854428929718220444143915421252904485436761246230123606726549751722267131355020807380002385768119333463779833191559395130055739359215195406565286123745889533713819394558896295516626595993348632484930480042127719290676157235037758817365155624444346360431834789698571719942047343649603448753205962363464921418800852686203501817682424067676573270512115102200553710192797319615690825458089939301301187490340353560423946653275150370298364118546624298480232750230578884541429274192148343479781100944057120480525016495081122843617929958642636894255491643363079797876786641555301811486424066655712844556249803603761495637008836273590447467084065764215596711244442106450455236615708608345349578805774420476413072326429286918882763715898279579004330355375525867663542576257002830392919824004421875557856380022697354357086276663796087295769137932851539826813604964611791615286915748516840900959346954969264711278807423517245332126224263395742273572249129696178827575903142891383628536903856495678005587483916805614437464963635321705024440010330314695852238947863010208961474968285072260137595915903723201888248402225740038767143807375985833579070971304612843794337303995384023028352927919147686758804629956647086799468229860764075348944654844070402854907317765104643568135034734810474232217145297483749944398220804611600421506375176032569099104518105429882008787523605053387467496912486377077763611705132136273932633622312036678318992926852325632147966977104379628417865572729069957003234329483906716784228978015407368308912995673716572860695516846977600927688465144155412771473207865409740807700812695234228993578509542332474516112239322359662922985710434522418476653418058788771686541400006117535526952869357127066984788378638891726303976586836921523884799798356047522125699518221299093567194265766465402554826061719460810871155811059267966519935123212637019808437994802950798842036404979499712944355085844393845305842237527310870921289812439842257609972238230415804969186415165609354113870534279121280107108132491548603809220051103604333272311074666070670906381278107374374351091600719433250830820937526255696993204656133502879718852400896211735818421016426318628087491789347452801635283729549978457540179565716802590803463864624287655212654521703290689801669024937507877624046394674993104909293405443432915860468980979249445144303915257601168003359842970780341513975127536187989578720151332755686283012952245322631616668064712784871056491918908408178977452085177183080956187325043965484682617262424040601452427696263489583483014866098728850941966799367199267645257155673568801774508482956539500686419660711427981456174043372464090336139023296586263284276408292853398518280978698973895257697349422076418353609449215508636643346649369791645932542871232215899981109160299837926563636396812436278854657774821547925096379943800391452420002653066499777416495405848626425248561494206212732490225749118868406749634539074669693859706458872416429179460027974501168404670069580145219542495116055819166154268951026193480990978578072587596687509120303168157380496359762820678902260654504645526661084376831001736315963328527442370716734971788486602748222867263536285738478678119565317283304476112126866168450390571386983996729378954544111927283702676943049143183674238825921325602390138492204826697372478309490327509204839377926383958168448086724766474366834096613279636368394208289252491526200991520962626458143341293035441496708814161236181002095810832202470698824417095846836566150910322613466960020204999658743727254617971324165308337051343650789177530503105399776324754609836670439446174815916726955893477438588819943808911769667390708437688505225465384167680028152049185549446138864058506992311917709067480236275782581714437643808379919209534315943477789118813592938047869528787907078400587455317409842906148482336797703018267145974982178666877313132409418107999456004808307489883333957771905951882242281384548539533991681120213228996720410313434964392126915428014050924567591722608165876061576466714298923107801990052831449961710990500261316639518790576045505287338038953835581707943794293631734135907069451337235776884444576499126927514759966336062663356093846379782176845702038508268148579977502318227318530396446427789802026648101631081715116743916632721307356584214625193537896251424280459361042771875163025340376726558930485906628267774757873930241904689848935714543204754613421963131374625481517221569021331775287170271170369259216605540111957262886007091002888413995651422362553836713279518738589042780153764155628186962865605073707472206634324952854705121914607050619205691760411087632521689997068357560978749680087812278796463459441190868507830977048650294358246636835877305706789971879252231318299679481471152914777810590789956917107509675748539566107623079311216273827858986765455740088328141734520501155799497091138772045182067026032870993295353904123122841012937899230620176502792151562181707717654335673264043663893719965935252454156850538168126629078975228806013036478931337020536692264558774052075050310504531530598992696206956650776540609432136658914191567918318736650101077443635261745883373559247571554331776034789001438123757678345966889765296098404483588443801600208191461112757152380759505431923539863312381448404663907241925662043409452834467224753991471587925551455697845127338004250176479793435379993602812488006322162765302866396452481640554902615498187686428219797712451026552880266034895057171278229788328348912573630802971857833209015450100047726936758935606622826871619187866170181104153556728557943421040671583646260393974705147486425462768916164322285111873680125321677314324105333570573112491339359115250055168708542050911810046819193453590609817049125675284452922329415073286212329608897329033648324842485814727275411850170299128682246532532162660792595283349538411066037572014114229125614896779316273407035031317753166591954525884921013087877573352141504944361864929415811150778360257988854843929978312574956498774111357475117794254334945303536011279595288630913137016001562730771245805335296165949303501627902905354535668592897542952063733058196807921147380789669950583973606899130964451388984877001465664740621431463971534543952210190940878955685029554814099351101516283660077932848719886315246760092892970059400529192586812001456937108460116637904419214812233234414293390296885479802117780357672473317037851991756522374580337523240860842143393540330574428532395949105674169652149972606574618306640371152440585492556132136433225238921063186661185571956493251611272504269331118701628518886072501427402942502861352777691566400782889423380201374066936731140232076171653344904939751202531486112056827019708972798737448083270059377186208921456023014268513873462487413139625370849919260356169274869402459172145296766105405913271381010860780554353861573874941209690839590482795323625991517767636107935498299737951126827456727499411639586667413071434599503828798194752146741792307823650149021360115275434978296566783289485416685774234238309938376035326838671267614183372803354954422615184839284364798511733396797185639107463491780977824707042691906087887520351193031799668907490371346597850272305643573467491676988235812113060994935078318867437932504260247895035822868571797598422699011096813956078266948910631769855433117768475629120288619376658481631278175611152494887652349045619244425518335407093772389047190982539545815919387816850679464335192110621215714648121857245805881806138552300285861062655371968351544925365814634698480633410547739727673865217844068350993245380602603444022022006655851864180941460549608397015663954843036805752698734223489069967050244768727854617798368794394340915291095180628361544647125617416486454027963750303182515550818027700755169421127162580240830205330692514814064279928796470900048575475650501123276624073777335642463562850931576677306994123386747793954874707691735805023405162080793771482884482126576393327800144041751981493303957940828791706003643458027220070838676215087073426605521810281535578443026718967115419962918457326616143321081771448111266128910582242315211184821607194384147403136622748664941730582184231768363622355154157059377891993781112282559978665741738926514743902628961674050834512026229683088536155769201842944483480565795690543900470629540208693201800144901876372999847783942854606187220301300848950709341406981175926375511378351242948660654004489891818613369968311024083270579170661830515379729267399527992675659487171791947270171264303157680968733500891364009156198287705499652376671721965368590958921118063089894458609639942187987940706852084649050797772593452650740019349413286635956797797423450832106191443590327596908058365198947215803184888866211876595587256510055379324905870738093725247843187146094729096298681267000590350252517761049702263787046594265493953076828205662528653116966448197951702220894861644597694870184689580529506638933740605220517117938840484398763300248325199958785734391993482530397062692074096689227402956458640138970825712429804296069217459269206106327857553036125204585759787750314326688668193537765810927829155622168613691815844990264475210645185839772115439610596998923260570858783683189120616410756121967321669319928498861750437807044716572176737176633196914609858342626980828585547787334406517666353562349754995025004848074048124248018271449527222922533403841039151968215632885585759238933518109714312680777866979911678487002801412443981726532563577262021709212012289598298085211927210772559349638491365488329453104585572538610180212445719545181436688776156843803701073719441147352479310667626146186648242837767044216165983890550250568522465531335407067274424931832798233026974253097323926165882436109503424869188801268968818124624344414198413686662251498400194876448312454454796844924183598895935244900538528959518285399967552377810475575685135406990817663859873288790317608923296343997176723889958238281024857719202259970468812730462438483638222084651510618987853617730944013802205243557758205774327839501052808803182173623200267851850978682461553414016709577520673614092373246187865824087959000858841067263161972342086859340335276004033775768157614696809692242014894970366313895286581602942939308154093600456720337180381016045706842389010111009339736913536349267592851234226984097272246682748029972172297890343960746639277816482532090625845203168501711077253448779529829821146216523944564338355760935643893273117663986576445834229728172031267709959790064325778786271917302797210568104694987138324222428675719708775948980157362349478351054328876077648215646996253399124912837017054904899438916457958633806767499436519333689660330358641172996880206692863637207872015999413253347667627630594593110235262726236555478901629782707601680521052409788195085176889263557640945830865164503653620605983608963139271913712163525497641715514611946316790470523088507989606741773006579807695585383758903363803450540209278581455109853110015654798761990171240316275403955841089193856836458076088163638042508975725196685233747475353811445654082429191354772716499228694636298463566838564281209459474600431146314455151253470845094585176921323938531160595630062908881066945399047340475297607632680078082294470753519310385800973287464484209160549905370177793326414154781618239458178001044308770526727032194610547057094471644261540693968188490958235221895848488987370137451879258731943176365323149426908047133479441339376582547136974183597862936846351840466283252447251737003858418640763829809422301993449875209415811147404656562850273324147531934110688743699897337666422105646604150416367705200716235834324228339371885068857431308216310538839647331163748956336679932838885603210175343931822509501597521823597997688109654977254081715839195826472308896191790190120872963479128874572566339652076536418961925451924149291224960079501250409754559058899546233928822513017147403739129263260367099434097549521965347497279152703390964038474792115784120087001741644475125882356268210646618209344902876783092932655098015134887294085888894121590388453035772581203185930538237447188344077827991577014261502594623290480526532733382169630169039864531082316819908992705257845996608143861457090107808393891476867714630280840603643879030937167610272306844012866832199895140974049187391091726884007181336427421428314716700902731719080047084419101356051980687897068058555558111749986239393183266692046495084729020095521176345942146376464542210253844819663549712691355722830283936930723867907389514597563351306684208371141480789879432952024479879419103646365370081804090358127600336582673321461492010425205701106394766860370048300419723055315805491435822777658355409079016901341496676596357503733580604570605267179496282479344310037780501221138654252273331845342248105827469503224104176361914068376213229336994907290317037506338262199004620707740855801021811079853124298384572314029198810639103159359812126301091538988426446257304548066586361829869650505290818846002917860352624246696977393376921468276357090601854624807055066685688780620418104581549586153107270848380258501678553382205005790440206906944931193513736021691021646281305542618374654634766804026005429978465750488680549285337738650643269074536859038691140399955833024857359903293105809882420413035013054110800975991654590318025841370260861079935332253518580210264463344985179402034259649054350681149152662618060057069392254424521686060583999257627728315724757033994139715566741248293448178633736875929389686009519057391668786590972423554451624096173893431162717573804669696586159813048061736704137044292678791724922252800732403646707514293036836059931601670224611243533920235920814201521361249623780095931471257672919115778046121289074910392478406851493801397447225223791176144950594110371929043735386339775379408965130731669998479276830139356561762754986476591779086611401342452667018103723612398606228652778824301176243011594450180543334557164206049418147563448565476255625136224270212731852406720222798749326759818684662741680276936775471748563908453494491754690371112781665826733350624768540911877021454603951501455521237804534747740253881095690855437758006902627093910742608829033957655951539314043205650588399504026226649791913250918006032898791680896428112590228804520446234434740421794153638182903740336173760942949871960066391709403813696982523002600674747427082203881096650402656508800755066747846010163136330862027976439835206816642176177748125868272568154430852460096401120072755555475203765276072724436987909431963801738487707411444056039005826716267214601927753302529580881126273094526892132657279069108814433867213883137349403682352236149091099538294403005221613118171583630617992983107913475268305350865893120071453592945159330201049512304911877733859693151523758838233075615626565175966544723078260987101672118978430604141977610905727119377280581744637915502166360237401066489513585688685865813499410941097855752986161038262952440248963649177084612346807964744460221686136585349487738373576470616661787908331676330295367576327009828709389576175230873518131375057220816051495565384020925590178687565108821810977284165475960035465476354394162357641176116006517747315587063369836835377207482368652059518628804010644393759018079092716884337761011349175079052180257136423080598595740983004982473278412118546242242098137077935525651350769211087128133004131012265720147070330543124357028325934807978778808520936276856267788848754060221094157007522826567451832755196250566538774710919718530425773977898938158878797879116436369212416327502851684930246940128490809706848999104900178578290206045966515107057224326813292435123085332157139795704188636699121338754896139608210788333621139728237900703789204659360646315541535743030095012070249183251447960175144775058651845002328308772510980457980605932668112675188843782886195493817742822651932704729524896008316141151121795367377554015298640592922081226074595964825874118903136818054228438205714077757648973293960092648548782812160486567132868009108205977501875626496763027690174860827447737283207634074830804672982333510292493530646918398315936322328238483487105484732593331080625528211218328608281633808834280145281710577737393546843763727907170211399175513169780305125853575969604618240130941878386271876048154207766221109392971140408715043688178232690860966141226343572385238848599053591572672003882661500609587801126806540058690719264431330310723991652441317075902115960498391261370162494813409476445141927369290375840128606875979322050378777243734663871185557149809908695913147401954795596081893412994553512649120459730371002098901623518253463048316910044165489088219886356572441375517657188245999097978314155395006618032056179569602645443992143176161304188652629866145494589329949930742673033533024185728059837635813026185432128224182387008158243367554252295145454523242280869339049316168979487431005682444752083651735087206720352020389892898980128825960350862852518572374102808940341119115461093596053139541205258168992545643017215561004076151061873761724433934234223982041034736046723838087268751733258289952156671423681481536703567222827408460945134542465188375735598895978032735925815271884176386235186752350154100481584236871807522547194023806426916700237411235125218647443224737430621367803200474484535629599879184942714879180046155294580052854812197948563277160611659210348183981905817210243875561115658902652001660704120110315910750322820334613943207467065083742013275649091172671449205862966464052931843973571849387246933248090475847345087573461851380494100086331185686869941654081904961994488434329997335955188851081538534386712102994525670500889648180793691002122981518355055116596596858106296157342392086331500974058436752352982439543430655645500606608781842539653332208207337744386873809505683484563301215731579392733193040432120679006509130630745779123335454650598057149977961729416074650917106740771548527194118093088306152656580663010600668785739189360640402199617303048136338766477537727796699160070496839604995391526630271183751527196854783157145040977841632690634126257403798576479728443450538544436249027394338239341300022153160472520256315850756768159785702594191628081851337545992531843562257379104499485201828140077084499442610155746450074468509594480305612895265636332222298584413896313829734592480115510528714782466807102105320294997462138377860162832248460374408391989580146937338109063140790272094683577297450082548924903227261969676279095125009246275734589333286145697854022021717804451901249386205873478154946441186030283033323439836188328301631376811190242900697978113153371005513502252131396638611814223241036451707796625266214546635061057558541332351672281925207162551010927188771844498888801987104482006156791747130876519710678810621283573742106955377644770611878379047331634795231301246226550418011311060218534373105779117497881320273669954832658146146436865554432910512785433376573930439148941171506206200757579335497452965583790982228096135492831971365518410784597020151372997425664137225221922707533821270028203973979402466866715519640692469465517614567315859953163696896500083340009299834220204441855541775617105980858719154311013421328127009884466562617963107009832062125166876245574517021356862284591465361110177098848505114462082690301966230039252376457626630871538140952158775916807956776161011180043209039072563032896868775752250489748502271212348912446123180347465230972587318664792793741252235698677326957141181066375670941239396086248699220764564987035170154798433368476369610598739931892502233643452697362464670919150776809719093871345010847862421586318646721480775115264329040668738789530617316015761033193118473746919140822635487225998069868463628305976724980245533130397784475416100043636852251943222807114596075485526307587153006674411456384240447009145347666838725497414552989340581677468490996936684429622252397129195915001175057743674111427518242797649792235479732044173130656234783081614433081381258132842070013339321394546805198387367959856623750815418016930604083542714963353055552873713222332374030286152879604774014875204272057639608468647972995351434971794230417659906174038179714453505210651749651000326865246414477777322622699037921224964811936107565415467306590482164984064838911291093958957044965586605212186954220414687557669805415614334921456128524888394852680100692799113983557424994980772043409367277282200710982671253518168339152181909531565405179108383257953991521373345444477325284814480966917422519744822613312096075300405493211148176865247041070733452566428531428197985553645841566802873362655438003343120444568253245032458524866436574144782791836855282230116612912612297695906987145108576736549001134130217292089623142499337124955813067378517276999241746311327314901853420526212782126931990979212282494757166953737761328720321803559355846691349109216127529285904692271383491862046739943150260653603659952476850034075814875281031766558589038013119580820459241086735987739866608917525593585236991417320325412384734557620668841155525303915525581359266704050963454713419287943079013657651448829507933698225123599184668309975059024493654533714558281523961341852091954247862994574994918206884522972056886809856868653034072919352690402944614847185343983797805144979197917378833614642476379935946311056429830211298334110401994327642666782602212962474814284055169660734877508298277431919061021887057133772516557584021603150837184682525695974246666346317396821712555724513057613029477942788905116514800806303461915521437568964628235186035144448601944356465536869149327314340018610835607546764765772953080510080865462859815128004307346108298947402216129249033956496092342266288431696215375576888842707914043767704333374678964970009414967897471775180370595663523250418425835974449780626563812949130263617133955105712182659307015201264274787446211622338215048486447598061595758849912831145622433937283868131274579114204493152622856775768859404669598421352794859951274990195951071132547791370597395334367390815096945079415149930975940716602300979500974504608178306633146230581895176058379432288871157007376280579947638616936467262586626582245477837509559606995350225369664287866514110469631009606591658943413189873129235701226739505229795041625961536548780361013765006159059927119175619766743203366984263275166806406546230457980246933420293561993344361478829943917560911218973955701088915221184575922896600786023104480332140975221093207277647548080569044527406644757223476947722586082000795267588797487479331062499046800874624071394059509317997912383026453422842377006867770782082008406155450281026599271667510963899027799994346106238005692584638969297594331040323711556040738878573424466730287247717756153501997792208051684010340382199910283573393185422962377824666600792200212643797781907818295722989594389872266130122696381750240277197532477858055853537739671021886034573547342879473631672586179761824165251327381695770934421683227064465003825910173756456245898817982053867798873281820075055138945941478114219586072104847912773888631110822710602470757597300464525625860944310415352885442048839117820356467321873695160711609516101812284834573742553276778099227290942485147756234014469714609049413870241424564551096132958934777519193307168849277445474190956611298973811998947716463723857146420894621434735311925535950930219156915720651861035002016646147785052989567552398154048334263846868264875707804613797768775102031521112898625593715100317109994307051646478176487143566837786632198141007011396535793555345217973432056503628382015606397711642507131251713906812926926872295304956104635970660004008503059994598496474778536591462408877218839967173272899227051703306443162753011628872218063312500956935130749226972457372225166903544033244409727941488917946061338265601412634979202667925139333350689031789254127601371616048648184317941005855454458537188808003126055803207019654870805269568955784288468339357027459659354936336369037422546987664721620943340291571981807990885461426961964818223598854601105891903496331415120850489885724418884732205644943415241599842539755452935018431407809375863377903043647008410048216813209465204350755547507801545922849588817772217215882733005586369649821991395051666520394017792191099550308835858941952088166265757400370059451799639440577868414214300653378071628626288874056902229984667642146554635271263273564794501175187731265030830570133647886951918220589665911681348189528341684567805222426721328637058802285387889780377732104285683511202899150007699452213605535641795190394098165991867148225279771355017898838044409432283051047169413735051387435721174631643961494357705868936274453525116929760430407812567196051159185086783408116044775102306940460775512613417733464000164496465078715671782701778060905827510743573409976339535817519449099034287331694783239922945906677482593254524520326080661680313099099945633008299097613525772026011057121956348907925007484788261454804557531239889837089037415247338824569709772253347084911891051480295716418036062047843252878470776331394437775473586112762528834488342158723085258092332396625150945458258275141392576518859718656308393501448902480178594568101191972064768206690016727062828290119920596561629480593789359830142777525032658556671084468212272945279523640505907440966540101480014696151438729986083261725367534172852072821888378286371594802254859088418819868681083923827233356292703509315128182234221514527001901203428778743729469469137170410921926319997828611726474853851546448349742093327897714783928365308050948798685695121112598809414700551418962203700996050228134294108312248399342560048919942103570679743226427563911879534410008841709563772045986928236038789424555434259730404627530147160348838664794508564965232296548578859228200236414719388753495963498945847964225053305478205551112040247471709665140968023885942306670486806068871380584695753857773941597150176839345814345410509761239875626798800394837797806369939110243460615861348413542923861396617011053330473503747035576681655126002896019504245205807860450505347307372351309131758990031337256116215588104782433333873548883060845209857581637901551912955995562075811821366866165833652243027560122641743944973689586703476752164279531461254147201933776037310840078460372087018434876318488186992768130966329394118899172972212441627192419449026834883732711056843592675636713056723425279709434997926970651240210149285540982949675280928170917572008159737746760953208116734976245180430066577901485537566928412045849747139106041808518402902974970358604564106885377268085324633237858831019715437442556294733645565396337709705937301662437717026415812385298485806547541251364285249251875576415273462528872401871204149489488385024351093204044797141446537614310487690488290928946623952118420456106587188017980703647280752273840758325755161327435091758342908731470644821930237742190846344860880973096067872624951690072300617063176478367220733740975654804970811899718762243509956623390159652353001264611922577187854437735397267993117338400045941200460600743831841379035919873271679121078147249156574378567857839864095528541624232855610515073108460055831244501035416892233568635254123309099843926315857795861669382516336972499523472571596567905421551263158591832131087968106493914443949122333674023886816272445515405578941833153015534117285436354104236281158281934819287694963442717613582301022949512607025432772608058380159910043874159124945872083824110905125747179328308706136680350131582882872362090231427422645484818006724429961738149697217151819703430824815885230956220611609118299626333903706733276893270967559493097494426716806003322857535331569584496144519512009451435248937403136935811222491502528226718247275683248992874025658645338072188793871563376465380751292110861270056989079304293172762037685133336886629911779675436543319250954515379845004922846714098878527315747334480499172546878204284981497789174272964660622225483089415418732939596577456082925779212867974170460365896693016120695445821596361447983327823897824127205895974972668017887364430062642826725551844133867374604804526151061599304870000598079647952449685034687609246804320612609553934833504819100792739507134152793749689760550706270997938571179361555027064121152560695135936194454925890888732206228752509715577231177747183285027107581378519483653465052084943201539846662512018858427755129230240831696067012901131832565429244855829166273424985385031925440110356473278281793859083295367545635640444954719456137860421400452007365560819947591931532565199083241348024240415243852222493240268035980566439873746529116535966375635028706861391210792716409369494427538680462517634449355416318414965898916418740486663735181966575299987278682984871296128935363068080268435756638169471316237662507245465753492705233210525490854187142823887307037190827089190474208269649990211177345532739208035057745318160930834524611437794646849686620613044148528408769325951867171610720276205152259807005865831475268201309273025035671290600914022476019201237674093279882653813343165739121031733973147213749755111077533404832654021681631961249315695691512364807097579454394474657807869355530508258395776356505707277209729612570938335468683133162667462549090627352144987749667437351768493621101721287176356481636854517651938186681009560529422624684931087038623427432134793019319548226739262631755315230724651963773422001816312458938900847319998123926534845891314497908289306214201439288427637075070112478347338357145931148238975899519956556518099062620213980199144816857283406186693113227214952173402088229172768776434772793805394159563117751039357598592081966732070868636885030423260682588999203886678666702111783495467538200353982732820001849215362153172231904534695863561305868757736087893069717207376319327253117058463883512770787044074505114965062818770774861848181983015996526782049771266926560223405507180708497628355631948601212188931790351327008285557720279713375435244842996118268924228851294468624084925752486275108975374825997566901454476446209602750266473262432635841790190271846013505556346435695762963466125693060676553974046949538843440267805789024056805886301471708378555116522699860336203157106360700531934114010460805573922068984038746498360768138460918148788676363099535561781268422566658945265953372346477186133410148091239416632658802369221092606315193124557902946292759272298105688161128045363065919174006428159116257397680040035247784740059042268442904613260785959082983874001996334634784461719965209727616580620046409538707553697522249184744513464217976013641472936410010171115450565024527377992756872849986190993223294265538785466319720764508564263729358698334896230153368768702226990355395332789547996875710342616611930473882471240336856738108484980718988541716652030243762050239478105357784751156787227840625383829641600736237048069322746963515138733181216039804472068263040460236895809484245350053223346516290463004781185593558658681718400581655392879564628928774346427551304084942773407707326411576020135597018000606089694265666329041573020590694564765935731618789668178724050995181829963682043100106168577132090217275878777043518980413097792760283207171101239749242296395726776864148068011443369951400296943893008505773216344812750649755240974707244658065506570741765438848675873893562130280474992728685826756145441399875958378299843702222793652501746864101119459532383529927832018652979029486706499957454220263013766684389117768571739827462301886911866601636075437395224938815578873069794641956587006450747068779984996102772349690910246455051393019675211209627076835161348748536270278563877303519276509828744087117701351036002093309245676207640774960561084322415451250032987486521272939405269773552792700964692822197945570065392448489494766188010876219617934904890293966977191846756227591534533300249057725797489430603257506134129965156672573014177337717285931193623946860040957635804413227155050834288168660307010160191064878960171207569432377351627395563208002524375273721583284887043300411006421886427845420579002559921912473144186639684007598936152016905244884848420250785155923584033407718854955004238108609622661880406329442718016131920602246729880813842459572450745729037981004826589549050612041672664535273764995152156757983047623431384289017096742741006600153656785521318727071540983501595553709767307679681299157018815718855804332556940935368237855238270866485768852001431513378438373059801680368183600058354908112589319284415226321315797753524964776102980878889182085267303891113292460614262963566515939389600173396128565657402118461442203153206070757773467617603313135563587747245106706935242684121244133577365359171354828847612293533852018128096246084696297027875850028806030725962421555267575062187338655368747594685484785529436741318602621586293983263192305233640107273662199640231217197661748727605391719924437563128498005707882794202523854384199515407158560592349111100669747062263434394834105911351164818057183075348758797267073144595793930302585022691073467124854352663590702705840361801657221818120133812707481346825603104953649031907932645026262314090646373937435499052007168331574102537904947983790770845275266208015684282564678560681753863271262534731082082951103746327604217719596474166854590438742709671586503430682516095249615632345790128015510440927143819609414257540274562809220556789330033918728268360080852835593197214867513654242124556634602292334843942952380539370637298768355145743435420269334269929920370348654536888777441164668367662641206377299436018186133482247308976387721755154734420942212545225755995382457854034015908166281718535653084161649516780161264396358427946741464118737234294355942982650299877039384999171373664314715234488318796910933961916033926680894184010785196005095304593432864848403335050768197170507272029056076113238589845886254401794120415035395468001404109894227637765780335167337724912977094923024651076353001616557746987217472604075865982535447178162473455160571479243501923919529154594357406143399057206231973856485491749677569593154726002347846811151234985063635018979190331567116886713392213562100286595236146017902057640999493881112640963296525027965818671157756443284171020601982629458304173505949617691705331868051103858813123903461716848072508613480623747981969006854879714837540247286695284922854883351154745957294374880008703943414475485943733199193396126297728059547885665559746470302884850545801795428551077944552478017220380425975695583707741497506070477379426360805172336697447908221410772779550622318718910647879203325501041486751274058218773451315541864097218036404079893665112031243323349199674080724873176189614630255715793588433442103870937488435961515453439522042992086188431528760866031337633034864271297953564611287911612879903925197090982578248103901673661468415498500573955177823243860686283489589565251232162630566224018918154143647510528359678186277827789602658173116370923790391906533335685325205519681744589550376079481689022598658122303237752907852256907936280699976827465956139693201656614936743528243152777408349126644118223862696760450357820976979879325806698744410427095570951193788220319258539997223496074880932751179025061785084872890940496473257570950951879554688249956060183121295325084239302537706933832718235590266694343079051410169078680020563513316689319977923756992778617868661962624073249580655181545058951009187931313873823550909247215171064850094435364132870474314230395554091160926345469429610341041425090581352557406257789956094020366619267180224158361554622184335601767801187950127230958710383745929846444510946642727165882294817450117587421340294555366942527191115201443854909564629718724527622807354736946469388903425756995880488369506015372517570553897754472572872728784547657444480804415819251249899121690439260398095724057147757333366613608901036630421984914427868038913151352438125030509652674468429480731712698984499566983876697045566497767401175065372887462162956972893050551891518805727355758978797159839428936441107008838601253289291866003896896142117663005551398847262687667234204255994935827271487956444859069643661668548161818407197229942477230745356503006511279510155519784302185034861164492338311898616804372133304613786274068620939263999996195131354120972619291130420139720189103438470309853228100247577305061464230212635086467727051138942187740702002292546766458043591105051664108996737805947062192449701642580911718870633904368955608559259937280269086917945634408555326137281387374437906978562955048691300148346995645242827364295113075363889162723610037543348519619144076100783690519409200478918089890801814897227377485312156345225021450992609019985839412307770934042687058661351593049120705591902104568982119276082975914485113873475377409338937939544097127778226945647976198341748008335354187958923895910137105767282357214481363339421501272882357777580360508350913416609456415807161407689695183066261855969075923010369824536408374694072267330597973055615755340894445976345050230664557812340815418791968714329925335241044631583852226375669977432305969817800431271529262731636917984160211412874774580532833871486438926460271791540532836713728208206371224165114897974749761321306179419089158156704169961947126653224568139418679518861258308071444816700749601507243700656069563567531560089483612416524168151408490187857411815289673986883732302998607986994000560772550951948157834662908484833090490842756844254869576045199929507923109026130927139538857930257119011161749968461403326889214996399847284722814637336020887938859222382839729673573355415517445559707616592533263284440433637047254065217855516705905539463587035377438556115794787142812079966588028413923363529549364207421249164421732760814277817073089331079409822678401648316762591594577233359812171489958552254711036281151089965681968305931934116120336636638415391814585277564659689805767352174417967100254995598705446822888819177003096838844606326937363145722023969709235392610874071199755179377812596482949525308818658673236510457102428921418279312685915710636388563458363409738484942136745827555052056126329538094208459306813620111997195111524185706590361056500487019066034177561490793318138541980832146124247231376636501979431811755387747387935239873180456212302555023727380309707709126652361648808519872035814861399908616354855556609368709372557372921232350928759683980106524858685012807048033213430913428313710911380052145103068058370051082759579112095652393106125535263599399344400481832437310206115632327192652002352379554695334932038723988143483671173280382508301217433755185832862024379408173347306045013300007759888671296718474337319738785380476801983848529128018807773019548965572326715453093332489908861436173973883566232313529530371615018872434500930899209008788461999434836421887259287907305182877184005500152565635056710269476526724472462970735705520304491591589748779542365145995363852927109220265176783253322414708110336489747660085876645345201023762455944600073348652639391033782473419089751644456853594671862641603822986268562007105915636921758416934787451060815715466114160517078691731412384300618440107844982616690895687454850823733736933857157258962316965336455030559473713032388721539392717895084374908918659277777368510688940571990566969193778075645661252611268529482236421338604876654817811450486710303619834382845461999432672152373744073213487906079857958989574704099218560427974786356436602213705848232101530573365195452590035992841742557472961365717195944167125618545979452260714794757253507470333784353128592424539077894762710795098261668630763919361762132626628508013101661824533343984018842830173459577630371136470540847131588389767080690171834958502838011036908739369940886714865856283514071661310321485770188161108786007184118875299651243823226982767613385754965019521058373168211412973458444718190718328960424988924059536719922754938758968372921707500549805167259098522232952648808519689373865630489025041920922009904091928243038111207201395953418260116874075647514627029133010599558458033305604459203250688697872432220136319548481664330711747679376777480233998302908602273641853921835317591624016808162255947942793372331799242104198179313098858367104544746466973012401735291701803104089282608120637128283894070631167934212234247039989695565072585818485572736161609924496713425985539898752391665549114594456820505140156790258244289924277681633622330096390831375960277847545395670446684606286754658961429410478015232106865000358874679161380236633024054711604170069687660099439427854395607298259713072488595791967092862316299176253005384203876003192207518081455174618230505667573758506635025439443112330794622910934147960290380022920566439631047499489907484871402186827346101005846170683389421604970022623858619021688803922333484414784787801804014748227345137723612996688906712145509877929844608925470447674869769322370153477065568378896116175955947744196306515872667087430548246774830561529464428500137651987322155146951729124273937083267213673409005352847124543297288024522984994728425227323359753821012820907891849642001430606846146587433400425568328067430384440190123180759853149794997630466869744923178277566075899152235241925821215058411082404795878089302209277768556135730813847922209888098810304287111933163840881155023850221290183059611442443777694348814897837619157507452987036782628667557787459024115760452071002561494248928250105791531336756144929042051081775489771107626459835570308164358772364842604907234602921416404960532783148020830468493856009001749205816841875150803564151736020995320578646596439441416360531785479315712744149188916728664679963403732155919531262735615810450621449492507890568158468865763318437192742221882575844541320214334189764749851533471928571125705030949294931044507161951974637152845876957899651459904330403310147516493634247097820987901160024840014427266825593198241211256687401755704237537953320927427330421541583634643225894002888269778728470262435095228412337313745230421322405457836455106463478850522067475630156361387783700956674681454868267508073793795105730397753760290693340787242961688022342354514293572734446325657508059287804022181905488857396425309281487710538766260836838251952080146261692956951641672390454140279193801815389228507806417921741427250369448843398025522286954494964798880306971233864985863709066926899929616909491754456509292096284663349181836471522684797736720281297384535054406444072655849948682379005528126155448022659560889112464626910949246262580778896417393213055946593489482512561509222604645858324293040163540737584319522301432442481297682179465361084172168338340384720321397422924643193645156418724788441177404996286487200555189876917315417628449693644712882261812327605398238283433168515976858506529537891635171353659479530253036201894014646317749365436009885513326508557790014376735508970885807104012817484778750767094142524003337217673320046672775875515492109787135185503310152047165342819328207472299515049918752901792849372872351671553326934412894032467902777480295301597438894190957466678964851884413607622371502457204469178385758448888392001712384496833537833089949863232739736689278109580391546322704198067339328952215204730090539677982525004777248374928944007194815683365921057737726108605669544069552774710702310489634346276732526294935303971240701495086982411831571874264548952005083475426812411113866146389509053963962027606799139908539431605597808205833061928737564258095587344389172653639481436893977970317116947098023961385420591206722763685082435046793899275741380856621880900895581018460847628039248356627173261050283852685987023768952464455190610913362496378639091945872238913982765089553460188549979236480037358714478851007322014860944330100585879887792749990405451011506202891063207453225713362078139789002995810914846686573917633825387848731303683430349478895165785100498440372086877194086221372994769148290402254430672552193408697453164094972299274579263215858613645472511094884293614593057388609853118224536294042595135528224193529946602626044135049651753171339446380045454077967631217260044700300512583305616238901696723262241439769668063921267898204257023847578343053549697379654637812892469274817800057856203977246467284760808647971618186117640325946303800972303816353557987342295955319541610444711599905835601406352195407898703414071690633877309349434708351460693949936211967271884186131183926465577255051855780470989183353211880978638515814245367457078472870197730234426312175687502519564440538109370043286482413753429193882341085141738619698159453925266076258925662586969153158560623931885790407020518026906707454632439534868552311044500435147617576759160864732056153878544799545132858756493950544802230950857815330522522661524292512592176856320565613993071031914872973906600294901953977841932452847702493078956500762427611991787127896686841330777846377924445092243895389059669426152388164198742600096779415199445715785811664451327514343935904722896870942432193834086379242998796392688576010889882636453023396242398787194478889068511482175131295262765133106910975081914840204113641371250498955151151183943516343650856208439020845697635825500593240787199323056110732592790143010682757580291951429020437058062579521064563080748961216838077752977191267395952112034327774774912170447882879784863640576790837876970288796172522757731587989729410957922903468982853334455043279747199014226485192241211642733893374953480921977832530529831660374884752386778950767469421328608023128734251243433177749886328275917222001096780722463235787965123210087188919529853822386503312487194933627511065566027341408313641455303853168762546034694170474627903159446670434679931149620640884901464901436792689159405278073000087597541078951095473003224224960997069599525242188844533844269990824388969599433151163729846708816466763616525634183924964000506257898794731717512691897628219723010694617682417409700343097081527301331405989481836247002855881726563115876120678454230627817585179916829585269549205950947530891947540655763188968372495911697225148213377133049561143376238909285557818096549221318710489854931643510394565645081097037408080221402540603283344148640704858823837137274422417050465849608087611663262267753913194403221127546183851958504553643531204569061896560767883535422805357767933961658695463330283526728471167731989745909733697366892588809731397460367300041974034531504770962667683158175066712920162721994394157315145871295982567007205598994641111816032767932035716327927013249596710181282979609462560429885828333863649607625310138537931746830896485486254831198167971144756551252676642472883125626676879195269429005971401171374893717221322380184540370784016990953223604107683279084498589210258541400829475299834973027411955468342025410141912636987772383891045893671815088397125872665767464061047048850076504717299179839971908375890989623890964023432148182704992663136993942697067127597158468534655753012534826136128670352139416553073378059379253771078957519818061104973552764653918389081817631387062882088951007298038660751910139918586086426644444279724514771509633317698234056206440831390876591046659770046076676270166592854962997783714973208975668728387167438264971940724535566803035620947676259024680921105729541898313665624020608455535784589791817655671183827101680207378940476653480678124275005173692165983501070246346281403051894623173752273289668137619423553729703896963892746751459524497222964326475722566186982043217051537746624075172012505386856766322533397197198795106902713841792888918246648791015645353263440968142762155966252389149130754076200800719789168897240831699520163025626376850623261079678613449791362531912098704768659228799536297031530376314360177463824257990490116496870134188851424421021006701388565169813272757937787164631280928139217419997497130359105173830733322533482840413404269643858520612274724617086611692520723323616821044048890119518285587918431151482264333263768084712838309619573102572309046001883218915414135835325624371286506717058905038512927761617292987490114309971704711875739045772320880718887249307990075088090272679443022816311379222138344494271024971150201812584471787173052902924397758547215447815932816942684470776481899909248455971890832761021494907512775375667861369360774748065957256946645965802135682847334498193779965358493168551326630317712226315533907139159358261549475202445186692756931847439169684508750296429566195549441587721274478106076497408799155143857238507351342290844230245138671962367964891138565639477983977196814413681006275355709592236025214908512343543281996129314508421479303276588516315532918005074230544619402727293753125057339428392778178207926883947471576796164401771797296128823883498201271339290935674456884803830355847565038799406749925997527845903108688628331069856511352579654045468589883549277902985061197051337601988389981370406507355349373367306511524840978577758710027091683513404596261407022709031497922187505086773362267577781094084300562422899234238203617827536959644334733354653171198081808127792740157123991510303319860567548107904028372617049869523805138449347948095633970141113327709158133614937151374912364665491005949723315265941284453181737440949002286761620603578908555392545388988952056914220728059992269957644910294906312000147686534547020327114279960844340586887951514780787754618036135311822318740310099049627034263196981242621417739321204494775432859439574235912071866292761855532798218371803731573769762396133418405686187889044782235836465395266302036013647353215592249280804560698794850643401607863407173913516485879153553449976158508467495103471288087560296004133403072666466760844153575395443848101292928383937198340398740412940686033061747626858874070841996368180876948773547055643827184950262994952460165504553512958219128398207254433326976465705385923910325213323716685029369381422304359418598829265962014948055803618746202676553546629776354900301445202130005658556807549043502245981985055048298209639638380545131317968617499035750424417903024285483898402837833968541135943882804272067451216467592455153723515336397405793760072276975134963764239510195264981676487985981250692392033442805343336124081721835435651854740223830973060853633094293545910636100250198478647028830194332761240438806883146004645278053338342944363123495179382050469959518416549904462325470528061361980474818432328354940584976000554673696027752761190518132624746838652307245724418058520931338298095980002025790867258158723443606306262250520618289973755663434175974506675110976974506911152049013242342836677897538949713498514935827995769860715330212223933105308604975121554220777632857958437916107250466792582626086876930939786307253087913569534817098561949038765207843530869349602452080411876397280116003244387415134199003153003878341135542424120735373416450524849023761621859257268249437171375342563407249243350545690228034938262644766314165103604399159248022528042614963055622416591021531054765564383578973932131343282797869493365985757227768454704249792391593568399295651770058653439975585644793207616547270908811151998362168402376223841777971688713649301109141567686291689435809935375963581322652541368491254797337497940931438256157654255705937775329229838741025660847399642749228169506874966626643259690771274322928480177031785384118606776044235152684014398289591056272123230680570906313346093049964601753849500346255967704332048761425335969910007109465290338956097844100623747232902251744308039580685717764898587464812178418341013575199996662863902918098076840073804861926546384463141064904966318963940913135822303404910683536499197845426693413670054516266046107415113583471328928366935321523159463830850040725586323399071380488264338657624607762386588373154648238198349189837533462012608028866382430105606659043388197931602883490896672230151197990947759138288843222623741145731106673766952906934386919993712013277707984280004969333640612242553026546222143746145512517109436734929569501261508305644393311978066860928211746981571518280625274007823318599317016035011244887445821073031534517488187370444204662658214735013470616355121440153150951108862360451467300939371066401203144837105066151149479930480892517594289037372784432495282528118660802340436858098774788155221078487677345143921049751944658288683535257823355009797923024827983909383439617837285674068177383151816922841734230152442593431591705160789865346606242103444793701737290334717000959798056333951859993542783516628611973622556674173386616502898445993809146580602915850834334603696046591620195817971860912883567751582688006208932687979055069886370699187800471947677313257867953352401004046489851404589430731840809889587407387776874474830527658764946826605677750084335421142607687154585223126778404888028283425137435565564948407084026817511626141951608320953869254822257383062341762230605550258405626010209656153094956620302563824691110456672562374625634883983513429289407356053458022711426925658165086898401167205019667859082416638171800843183390821954179909279058752678623262935142879443391514448008461364587031766571389479330093622677365426243186242771896008959201702680423250518501738615685839768355828127831921615176034955950009733318614289552035988699603541779117636209306969357664265072988730289471650966174501272050443901327074025460049938847803410517429480811187566528677911435321001094134220382359150264406241031274963120995341763710575743785169744913679268847846633467393950646506765083923423201823450908769245229422005052077061743595888053803928944095781227810600712967432478473128448918518817346442808441110095149861470442941807319125901135836007429997168925465790401060146530790313867011276027745816788325752574859153520930325547767538945071507475541459228427653852737441931729865258798279440870296750552759692065404438636851035430149820798856108611898557196295374650881577828084555230388912018907889234192181985515706116707741365830923373659413484072567217899612745655618403610847799474185893805859631938567571995253804443098096890096199796234779318382517355622455806605413064771482186851030197143527416744023978942521434112789444750636092247463834479663260750164536955044256829757485050067868005158278123134285402382905927012334242468074297279077514523096357601942367720761465518308127809854511928379672984040594457227957756915994467277756504361344675644871807716493593375394103174349910603259043843520525151287756574028593683406894984387692937141028062849482897544745589573167551649718526538806442015693672405018940600334018373813980595658260226262435965610781655176344510418444252758592035275092667294039835411802508038212591419280901087532507653941658400190730632845387796454890169571247968751534700065115386772924445149260303940462478308595025728125230432063323391142236577855260894039987385636276411195727371161023699195561393857794449422737473232372616853998499583887362090038819800278535519638869733516416564617333696800096232283213939252752537260723933803692996093031533281522710177714364859886860050862744689149104640987591378117240678556428596642143225063806781270752789083428393199906561029895274710200157425776047658578008534440164256640466770484000122849642710705290139953573504828441731541765320212922498051195592121171080148885594237441503006992103974798103367957111324571440867289017378218286853934948479814639218367467196871288245136639613212744043823150710479934365928248483719572738685985053535986960534749831353939100936171436296740863259503599993893481561102123797864856429318223765122438701772767690979784461807078066021981079887925184701277413131495487061664608019680990951505350723112119149978653239325410025277759698302734710324078544467211842631409946606683320207030188908521113589869263097377495272190374881347048923005010111086327261235153335075503557070289412087480976844193454670356148119732523614728587559903641537702239797139812807031572382611425937644180980765997198985729089219999451533533980420080475583522052144464916981029909125440985104590334905131468599858387731049157187044688320233210690949081688256260916193670916617134708356245619618877156148484783654039841009960454352804986704667149010151206113404491780000051167794227763661650950481955433731678686866549725390603564244889916091072713651176619811777363160552524208025281146427067375735872051122993220208671884701772611352836099652774398474356703079104065872124789223728335361443721453918505758068861816029845640433062558024272810935407210463718558733184287168447200976622709437613110400710805297582487706176687582383120273046811146903457942923645737296959345889167813165737723222077020391792763623315156319534530409096358172444070667329973793478234908127227241085377602236817038410420815082857494617557550673904310193327861954294505753839357393996542031232361098327073335952550052849026752392540337054920755823744135516548856951231798500864503104222019582124041773072336788763011358766817170154063720242620106163488681528705903980695598600716027012408476291121021793101584949481596157035768398150656585000290765028807328996199767894012055855411295247990494793651101356962152718540636844977850741072940042392663718830526477540325587164845899889628454799303081268508557323371743698403210528767247472677407063122084766084463954149530791181297079927156065078068882111076978553496512682933389292217748695194722661272593602614486499326007662426130937209017482168326031828349889421936531423123345757522088084826986993216685619593216921182930609470856116841008648518487532032173041699912750771895911571605959454628767738676596732031618026996948733586381041535688739075621669748566757223238301400280596133498236134209984537861106511606295145615255762832116066044197444321343298664019824915518286898195188824011495508114896727205528033104909811440983483126386452192008763013416226268854324954483929858756452556048231720662941382624617101456834979943666843610957823968933706814242335846226175231081630115485133520471751976442973596993514070662714796938581094464067439175194987015872800523424075474548523375244060269112087682409677321466261697375328103371861302941830964415520793619158138143578223556843219049823381118638735536953632471831320605790112120688418317150286703854768547583630609051385260292979716917142425894092690604712503480670293521950092839237038788187911561732460776038312936686178406777928085085532381785101082130200246978830809883921300458866341525970893056133700867875004064358078887663104506980995727709713926723073166729780042627031604747831245212145228686512915168529063345796721956675454870911378302162945307143530331767514736770022049231365842291690646318639406978192555884125102215589699733135601617934421685098138487083129930961189102927245651301468446305522881814020910527449595991529385914504817513772667355644615720419729750317562677089301416043215216525846176513070495733508087257742699830993301803605928274106893435424140184078377572092151307298115212698188453542412506170268042390406696293294571658512745379271210096089192372439416101003335706687350477928160658470218291013787320115560792145883516405152571209135253518300369010711746111299707384221611506266353911195173693010914098557314010265125820605614896658599934689186531411462034440682525412166279006841809434577606859590698230487889372858771884835145064314200122175194539948605304365927800366764213705085771663715933542250854400001711835417615356412653907256890934546677216564076534529383995835544296914049919500431996941849067374861002845343552943823683450275971243492286341519643558808144384173050977620098574309446805898519730887848528698514234011625324355137311895207102958498831583716811624183972493546405316343172402502817892799402672570596498560165159607855974212550792321374589638704244911762318002287435871681338604354776064106385963016684466229119679417163970073944551099680537532723718736313076122472987717425932301906882606519678679749401548598135541154661842932752368705295880163002591203664671197960689912533644526148028626194260126247482067662066366829178321338378048520512832039076056028106565145456655691810164246507290322408394119628047670749669039713550955036908644893061220133489507333500136518647053606461736033250111073357518814205717991965538309970778505274887862995564050260023053506049386928212585027886245621318081249368115955240931557763157085572609917030699521336144110987881518896528392931835815889872337215037305764860276227699151475128856686068050602339267404717380067847227413054492746483132126875465702924990356502873900517598551917283990868244447630260206071246246721268867248621392051040349610471463762621191374988952929511725309877806516469213825156129163806350510103006838142455095003389943863797808085609673236693359391196764355588566591081773952777907368910529919318741153790774647759395086058002446026656635128515290974172617876258803372871098002023589090422258875540367305148687719387274718222815029028191009643418985882111509965754552652414873085456947246825422893950230544086873007914735478889166776002670051010878438829335751170361273639835470238992921275513274636367278420676855641548487979073592346094178007342484889102610333928941328227201377242779196559970442689743868781465084206881425645985274279108027583936783243908466593226069390970883271809294239596998026665702011187327958432781061410436227600212641021907028918465120956704111970949579142092315936242227150846142600580850506048139197978373497726719510801126403164932573858683712320817310386854471287231766964865099607178290214636364528720951338356990150205504719574595942132152681589006750148599909428136137721838163826619944130332877125116634691788137463238038352869622998743275009345726426264020748356741847057683181352353234220026984202444693764189323733670799770033855384495063846005184323308645908562995647485637014567305972591349151047953804532020196399133249109645991061691698346157537132670102937441130592818299516751998716407451297174271916530222508951695504060747839229837817092327197185171743144017235806715041882398881856640254502350877606664842362970895458872565959023586919657207987264322137127836336237624880382023754483126260359018764966576265111890515916896671736981072964614884467210368432381677121208380344978242695369653213947844270018234571821731095302604779403878424092328946665683926119157927796592546378161716107858823033630827922701945367203777361331619353268885549656978484809069851592467888548583072926438152526912305350774262415384083961301687126447597944450217297809602300229041953661065159201379495429044284076128111048484889380138757799171180997448734254986120092884069839311746503993056304719619189803642311036550451684521947771305964329346168933437277684312090463447979099496983132109133833873979992399881471749609373003014178696701266837132131289319237614421734338263994779932175690040171212190519136867678886955087569664578235215837648574535244381376529717931147235594859138860258836464886865056081963205522937587812903216862414548130713815155360791340885377227052321425026104630947608749572416567300519707284755971594859716711864742884161844571381245419881942435789666641160789621361052812723872172593802336803201300333910529994615988867532024534088223014610324873878247996702043725453195977232746294803473615819370746897682962088712791548529987946811060133453650122681972748985179675483610444562684450092310445412520870094473760007897368289527923546181229922048612336873912907365264304786856938093024049977115886325845331534238210739513962143314680774725264739041948821474014031219174880845639300722456149924801503454986916450227223228961321765158544683611136545171547168644705713177349018019915603106876438877728647798143601282369345663540959206046602031606010046680555343214108428309605576758481433215499601829328616315200750917281758063336176920650307497484379325343398006901294454907570036019920267089220635276356186564334644088836754707574447807182097198647045171833512286651089740962286341354037690746686792954451138042957314231386130764156299187300057075529737439493759887630946831541649127716584848759114874740526248404182039882743321786082824690494466111761545618344675162914059594029860997513318087059578060459542128677092959007896937630558287425251712016673006215814751482456915958987956392587186086046992629250000037367101673471049601593413052879925864216670169685358786761666189984056568335677420074364470692113092886532749908532593753031404981526257040927959333907846520155813984734264045666938391133927618546063862295355578745734802587522776210038015028130554165779730786112284322885101458556705314783529408062918776884815092631009308325484836470525901309881063277929395479995689801439056602392460344089169713535480383605210894941949141867086670214910214914452894742552023429254935410076861727102723922036868360410949624543921810165881197243600838705952844328344019414479978521136413558264530190283748938954467817052990529177161530044384122283824181056008010942523963496640973550087266537266983197016452675028471173821877557311110145010953657461666551325978202358278595163909707424439824629909307467627232327346518939973251910041562583129665056557835993798522735643365982365272710371217395697670998123652024886958181087964564543672421564605336966820371581277451450132171163201903282282356738219974781890605481365575443747029931097871860521495895545307065960452414495593398318000709080099580654285625290284171127127015653330742861441692866099121519112360125406193780673454190218440401351833044934091080724942700952665172347501106397101125891979435318576822541505324464500603841778386085890533256814567255852482781396075866150919075096400497917028382502006233525578576526827443401044223004869166060359892081122545953596451967556437374655346380479093211634433605667917790188757569087601593113252930064477419742598368828709706403587368796317254741155477460009595631029306855659262865514026143207786245164300816770505781886952734021050378893712537289164665937807203123472291765848987317972322457545601258600570584202667436563203756370895854005482079920211505419028218359567721401101166863996231566498199724570344563737409311814295876175024581957438465756087718677658781309989905483743651436481068816694009432731798716598771341267631694936211790031233225335540129384917023150894396195770336739967795087758847690247216342886449410381220196384016925022789650338409965635624436828277442936159843463080322300863980431595905103255331929958774577067425321721526990614402542360971873178533245340724412240287790872343171949080604180452182778430685534928601644169173576526350323369490424069748979937599062226784449498892394977006709991271061403680910991927541731046496524167350917486191870636364856884530573642036281763332147407847444616211042177856712650081206870283999403827188926455454619307408156522950343270350466780865740398258351633059622220915618118443458091118457430224451998806540564777502695137049009514790885235668460172345894985243004639101727621711950552617537991770604827494291447414879369407835190705968543978521983594647616704254963729921711288815641467698502886259278739085951058181524568056384389914234267361108224640160919960961381858421482017587854194071380967107949339528789284667998028224607784791325795532387235185495540446823239584266456980709209273879776503709416161138755867357113114561546688445010034046440672388062335158414874816065605932720952418338883737272398394346799257066853807372732506457168361656531986813266866685933683087618992947829327589084318041245376461884246387909330822604601492268380332751584234958172991492868463929713000609071088070094495482672607903826150697767499337801582108533109282900387852423493140883157522597444779227640252586540130238859847370765748013079022240282098078657808296966006586747216502531250573622920462673808458801555744285999926803201933856098542250720540970295358347850206712375482594847247179303831149424638479276796605473899377190115258981764541395894683938941047442251963093200376142917462645865245225756584964404324285137161854821719535520201723456035843385179081373660386141206858939991560123009043797102520337527300821142177956654582358553004945014464442233403141668071574104526728047400104645674262360185720875461021299619876749877152850361932644317677971954101794076133476686999642031105350022461534625841639038643660169583094252578784164323263806116615524383346612349279383401085140928179273106496949685656950106017474432727701780775901010636432549928546705745747074998887740639778964500740905962923479749825930841619941329203705724383126501489220983637056325380464394068354906343136202866235006967722298158982345348902945604646239574209407141428409810695080747996829977436442711100196255697010127717556858791130657252110771691993912641349756936190873865731391349484831626525096615675748284126726631104774118627990414896085684856935149567556188875435572548840879917732389022729081905167403845094847075267475758895494590404162137455027686380580622421996596368143996408735681392424030679450737506858874074765432896891188558388938426348888552930267815735791390323941276221314350866055900696307892297802762978909532066961885925216590463876081976065508625663481783410514735397419470978633880167675304701614375876383724112168344170861556011564843187431248806290505041159153593649921493775066426963706029018301755562168087692424540819941979662854296935459109747146083628576375289282654294234237874434852600028666622525948804693079043325221794492384696150436653037414655350737178867384888050635122615643837047196126613111730529862320523036216976219651112556960683461913446576544403720160694928688319611690235400685641768085875249914597619394945974166215601290816807847670776804792822215985056360663341108478397901592625628151474242178486247289840832651254318571117019159940169114487999255855455605008728061646704204137602266072635479945374220687468454186858818731607624885240269064960206730012227680969442252817559569021579539689538524490898250874557479207631255135967034756608485013887888116087044383806457238240040665553650753242039882122870340694541643418746995908306846204149407443484885930974676135466560465824205563028913346224900632679783336720692338239784354942551668109215082354356348668367721513293452563050016532794237700029571414676963409823603542771370124186658139585797877292150547504459981854875303503978494179801032491492752413104579169031192033493497014455208386593529472353431278159745237985012947165774492437212311409170694760408610850350006141324585405984492387997649210440584884487509449535420999832711453449439979397540487388247861859399744299470602889389956391863142377075664990982207700246933899096014096723552336636937799794086635702214979920699171544764555389486001442687708000709671474438405128736330687343479356779579065542120286584164498951838710884586719706823100926205678409759044539976626016710823285328745726067858727409300112243858640657791356066534249431068359197331128541540923105969917940696676273081947522889216785497613278215344376253244972322643173519890927267749708981603481556606929742250828911994449642883541030271334809434099279923614506309509192763555164598055052759101155671869899273339173209918345891948554399797001177365610974923089462404277806158641358789575856172009620770308188237683994022970523432075785912023019363339723732696632660184197011247759398151661338547788331803977218122482940856902854654171901237101246122082280617504293333260155973138658463424142356358650819608791158187602614097240117398474523231921949715942749686220972433814106789069987406184735030004984827056230310770286132483113473056935689017937060267819895851921156044624757166160755141570512461959496895514995326503252673738530498477320994901141120992243671483891713576209268062945490860924189502350481048792286695795767386083652090757961793153371492101368530197802372769465365167544045506374957068097924689324495117500531918466304334221372082244523664999453053732640093945380539003443918312173401891256377300660790363297697667446070631702052810008265387268754139276056107846539654298997494392589758301186907612573647337565516383968222837428930414690933776217177854235614311058035040426664255994526650907672211694765186759333505323558770422231933086419817303800676368501194454482099141210433566247404190583248102212505188897361725214973119032858942838572022232927033505873205863819913422080937506801054661757293666551125488320055570359867700869042256094595076790649566377432280362315092832222978691812787692719421525883873486360385993827269609660685512282731166962195852777540840505626853484097512155949090187617697107395855546022202008954359745604254301937058223019079721415892166567656811606781228942922958457836526084325033752073994323527912389412390903803914106855582940050587085198870762778101360315667882574450364769330327575636541531495566389171543594723124632300432788506743323278150523359361914418048960859264767127626864678941066485480285148541041831868818951471995636196138893757739888583047742478012224486374421306392092666829599061120462360038833122185739274634870859214959413439717514060799798020731209507254401669604884291048584281356624872971351070499181171261938161286623039647585239732751237427546468594413935482439378390706360779368995776402938442701694030650935674432690164731528569230392288576541265413655347515421328537937992017365295485497090130818533677043375585851399104836283380277509541124101795757003505556807375029654281979033245971286374790006104010421315024464131886454307096981391985382118443182786410215640425332546114449632080461318080721570022967538072265623488764632353369540842781333828847312226434672652092985625032853610716116357499490202299478352833992926118243935724623772858206054626738038225812087375320299459326309345642341254928520751311916202597423859285917107665282723432672395623529878303909208891841799174249667768637253529162001246995274650439535896929703455177190920278424309512804629303324573296314405363545006965434642157909630919502989807447549665501926399849005781179049820693657955552251668418085026624638021440155572360934843141626097880678032062933210513309661338180273515012515595251576102465831539108459827480068310331878798185632352955143877718884837548122819217902690231528896466658634300330716872773938883228479105312493786185933992462878559363654494584560599757563105027052901896118252404998057470757709885774642583765405884420779268907115289510800956598358877134489177034913259282530466555047060480364401258326240031847043520199989219001919699522712766837690492684080682720182394296424815374809108360778563209577813554086035699741947605997608235749000636768724880069861947122138627833663898644190528702426811121616043195973645077699668210428895315101009579643970135878155035253959801773622089292051119712261381242750552873048647761738403051125629866245671920260305213903761922567582599921709799645207067738486176775274413925808702707772139090907324502721047938882630317768904333890350333585257116476129880597848210781439919148151398324937590941880467842262338678532884385904942627476317267970614337377728890419531731024119743083486674590909867299707843149839576620696585784827505896489237833049089459853919751106267961044965817628335300515225424512307738934846586697809671030631635373354579541977910640383866493957954907855923488211936851874721609809146949259119215897890807112772187339013506371062803182770909452736548429106744277676799383560480241848593531626774723960284732366117810958343716355688737476718361523150060116747075575535387809601182145231063655141746067316119201597092266802212635757812020700232688381893908701409113542502737382676096728835425825107185759351647560589667205746210921780645875957157199556008199776333927833333988921733650940035679512098035293832784719292613147801040049909643135728094273807886340745908460113311452971750455903283392892180922090918670722664125830284504043511180719192690971634642558619755021289325725689533067732399741083483642061803386295768471582568062265843403329429957381931542635336627829091169808625631082474854784712909993331447237233721289781169228295461865915195409820249107126204270155303900309131546451639768237670465744647875417277022387935204980145628444365272735281974233357521555897753901159829104842189109355277169064166501755598053354045825471555985066615449742385734777675365494044924929125239087219567991518967640662294032185051396786468864023428030707084399115086245112572015102105313489245462038022999888399887592827652424357686708029134372624215894399551021998812111597457832782866814519732369698514397049868117119150946425083356545289964336948359596244302622013429229577990230205398825671044307660850001856727548684971727931363571962792805372677917893528585554835141990869149812917263783897837849683013468250635714777247481508366875104312745595939349978341048835903436180516640374421163223295207065235753651625989018943406620987311387246840568392462999333421119566644860920963178048659272379470345993059147310242841883165509706918315652375247542798633150604703076157042542951447933293613575687180033649349381279819117390422488933382948565787099487980288449118008654237427350819445572031452224402695056130411864564641603041004858275183232532331359733859337188387931712188126868569942442960833691922997168147385586734606388643405621063556274024517430788372727956125236367748833932411498552686053505927440630582141781080737508954000478221515260096331063170293981265919419304400846533346782052733063612874017174294773906833394846265955250634154659286569049214743869697022663754587552607209878909232419511856165130313133591873759971535043501201898241084402164634754931990712132332934216336840149208417056807018512854970846489297075037126327501655428989313780159676932131092928416812591211396989182793894034887379322292870789190161472353843863823980099139413783124258203569538973246645976475406230221188304792627614973558859545383140740822222301306946714559590561415379199238256807820491151333620607419680750459904760626555383320888870891748374207223330559894877200086961963025017927673257612035291516159991544696039452936591294328512304073177222342032717977183308219526418155285435432293284975536497685896791446844495485425340646384960506637005105329189232975847573111478670326127636411705058313112319655379496487865207769991077035315057495483256621960441267168608571136923453863659638979231946097990271092871759268337904860841424965924617915762215745309081983898857559369422294559184900682542645076318566135061507320715490773348599678256029740286524489038078591256252776339518711893065666899866264598931877540721138182703112297539869067390333306978072132233850280170283032308078784338001849549872282564482813462639111149940551558623153665618849085877003636249134035435946340118270405668957908544599892410541486402637839055296530178420081306641061966742430089640834852795285400190106319498217995458277618824697794920628918031058793535405572295077876510158128518337655903898642548626088832076770339896552752246977594979781506685605471713257973455797776874039976129262869440740426212186472791057492447508134371019340761691521975795725184653533889131100417614499092202735468357506818700247055665487003654842877564298289525248967109724159190256136049694637955709693353263041881254922244386601041000228907569102758241688325005431572478542054867095330736897260610689823103046089922393230169382384788876064281452169539916283184208655558282550429411175016176243595554658705356009418542972696836762778574588229361796526546653038730215398566283276664950117204017517647857361937910036315721667473473008941363902592406488392824826301328348744196085652363405496302288527498629192015163143748837045183409950372722556439064627000177393000632454088447230821780059515538566018301394229669956589849067392501040382343342787847822352322387060706516602812475345876628115971734876517647566077418577103960146959178729655809335428292822792623786885766109230052205593748491172688563529283850254965062234099016005015542616897821906297000147544000821552496124396662187472950090414225082519652662407361428276945704897195121569706696715088437494765196319413343342236224111798223513843939340971853661977809363676008469540807073827141901647875066689688919070726192127285861145949221327387301021873645610997747129835805038800463565509086726054004917630796998183037728719526967007782704027458744416923939438434661567490146274483903025325543510721076609533181474062557652681331863207022686852329706537148748606253280247282555439897365235368993663619290546523279160566022531767694976321637237440284042196783119538407630389440693370970193537008560298618712259709822065237729093471675574992296140718302687478857980615685294965655331535125063758787114362144437257349613807183643901905706296996049841231860552720680200674446536002861913742239134185405611983226183127456102019795600217027962967300185320164144923524834531465803849181124780343002095230428738498424429177260073360296239300800144562592787147922301709690729485758030617174679955479999688149884195827115489897013694465192423289823450486545172948254020709756181324381117853222690267777854818355771018562051298604159487669821280327661717733052388936216354147274039453138155924495910625320795038645932545654071001496535815009263725680891534062479877653875074728787826132142361394127590364618623070247608354963373965306940265538820815825521746709554033255332039132769654710187776266877130821942243034022986884029943333905149053019538976820163631582600906157283787863940069485556109181701030974309843114096508011429214144469936904856960221358556443393561792959563588255760788325346104758952783098528483747088223478775801574914863547089680615539416981924316595428771890571812028081494235977908259659495459737695458426291884043948292820719825704846608960782373443880766408625621907594215034433573184652130377608779652630319313833999512699613245052491213459580041469998267370275322580987744591353810257795680046198638884405757066040906593286906142577725958822977608730370445349175385377739473859645091283082976847274839959109556452662931212004765040738190660544270281039083400666164758021037041290342969497645326093376531302210873410821517701654880885656368510621668297210243009623105192580770716738206916322977127753858979370355870520295748028144250386320022203130747499382522758046062019979188682395576983801860867755171230177899293819455490752964290330587767330049557462610750017860468715016138091282764901161478083422651894510347994787450177497422613213689441180345715835769463689232163005685324621752416756804905367730802948934078248145953485946628412845079336814683962062336402919077716499101802696106279450324106140009881716986303802570335742078373294951698316771118802409974262300961247844842986153890364824922106650502321745082423927100221145270004536192247158497302747732643381904141551480101025478995500935629385847023854166448694138840689327533947101450370916360031447314696324672785107422494093958278202489209741091918508341478225040197589488719500224368782461889783460533407131423937561936770762375270848130290750224898184510786710768666507051123224874734434859147383622738852997965462470014809496880097221734758993759244103591717827741842673015874810898962497553414332231195059490952152294569881995576710127626339145371728232879029994332732051150007213400443597908844980240594528983998743996762352104183507152474551031561150733394964590836404305277656902863730899230331032353569777841142448444060591718897191990134280599530515712526103711002106047469095994497522290576456326242721613048429159795228415046359058400517205644006293231550765087227322689235988642090951352970371244695050912096950300008185219763098771779482053415084984924407869623799302168568565995696674150052151427050753514606665102125989268071936867235026614129554289050182735079850734117641927940763027176164688003773630442548534777681208941893718559844746502348637389398335925537605284056470237733305959039140104169069731899854458370488915501435416223458630563903848788024792267512228045850228173418917133096467822979032121151383192457924997893153927477956818464951174812952857288111828242806751509899717613990461044769465802197573701933808021287274935491869011456698277483723485138526943208655990841271905954362930493883287666564455372896348624328640162925810325481215338055251523701705290882909560480121245618414295673756784626457821958444025145792828774116035685081659052971444463232306656627280893818719356309328510804744306003097652891117218547831442980582066080504284173312005395009985719498889856766895514640622689915462344594057597280559862261669532502298016925043833346820416134370117013050225516503008321846953097435190942557046029146147595671705805310209915843024087224492753905742995260084513742302377277945913417389637970895259898188928568124190989641991632809310990666292806781360981956570849835181262766102197973216802413786085006358795115887269933146000787812623917145922321720025402645702834095971504105234891027457272942922993682833393444091192149257764724890318821218512579870528017303619373836828226736687029809511287826790395353541090862204506302222088021851314581412312577830401060158424286287249608354344967501361102515343117367844520351954239775655567955787317709281509268154492450075957818436763709049100639059547168607547388470965777518897393802955271987041257720030232806221361206874551393535191777934910310099040361867481260184189810708518294775883341377202542853498347445505200215475504451849185827926165878554060139704572308115216012482616446045032628302943565289616512599917742772484142732697820824435167371632171731182307959815491809074243801775967559178047161328889623942411818615374063464214145943023973442229237931250660444012438023134349048287047262738635738636026179706137081681584492701575578893703524276543483470301579869712791805480211777886241552560992752333731160005202819355367039235250984129842798269567026150934288620079650945833638302892968339219540647858583858114339456998597041455301767554850541618604269071030671948581224430042013133754672846021695614691453314206228937024670294388231298658864654495039890019668683866649980795970801318568530355999556359928783463647869596537841082854861641292639876089646015115369323609286755089978161433731736145490329962048621599790494488353993957117544356123002655829205064236279980867519170043421936987213467522493260437649072053656152170254939817845325163768976969716040568542431968894446400700041903687345466362173854762118912425079915153418870890608286598700501502325634979888813251170025189269675003732740115866244931851819692661740725107457805529848619326470541834403248629020292308931811751804458397296526616143842049973209835614817853690767119220935030887878289944437990466436916532521506726805099002728498598591233705546159187104109469716670741746146181171403204483297779655682824490198710686277054423114672176214248554587391138065347409676048954794989940789354167770426689229751958833320333122429876171587707256874535038669594655410149944125757911937396098425743312776350065818427473449330632332950477942545835059881939442980720418915022650441986287690947099255837074740775708999915090810141179097972559265853601996935478837874621600430119882490209176443461631523853970536179818022701391058848880510503697777627960336654788390161115856870194109732848227759869637480123809228950396259668632778655030036916806866912272305188189819522124403060213521296338020100819700813909735294778772242792795976418065512798916088165945214282535623309414528422858591546861062760346596570360276959005948422014426454288815430033362496655910834638225824337763711528221342835482440221459490432312725481475850788086569165425431882340382010158923993865643273734861083869957915186945190400507305994475377309942534289487482388332049962605079595784063346190331411091799520860216583925368796351548974818847023627081950615200051187755271601595741096471933799640965167546058805674184179809028527952594203714697874961826351864112092477870328811302282496537353807128609568489720419538021371972699447265335489892977660822760186232996067337190089747477129310455532129145641619865722728727476646233620568048434119793350366785208627626047832331578761898697759035617994063143982743282076249381145959709395847181454059849459581229164759545271694811869316940662035309130034821465267131699978165516409534938957573783778463421119700600517165939742476272597530000197548415930928162028742987879699073145907014361886313886150665844425140960665802615146444249019546984496997262966103312256664496252601726594237424325766653325800552409054083609373044181452858718946423072897204995032376710842532810951768393860449427990194159413351606305588493890248695064167855647887502275619697504724710888434110948140520528668256629106668262818028297323064910253123119761442750179679615917783289065541598113596793685395207695447502489216364912780581614619670898104441357618027712903748346792831512989637735973346955072986791978512776438797691977967801352426068915578124589226270375362874834913508716856945722798623861600390075552893551504398724864809746934565365127127902825976024746298335010976431544545815655459829673092691122712871786910350966923004019364396959144420559032163138461831619186641962421528237069006033729625504555666842351892492117712109023853970734793861868252626347574646222512631866309298558173294299993337494143859727778121605969389026934115242590504662264608428274448761557713526088654096992187667748620066405018998136161339778331504046562512241961861580601596452790586856123350406011221450422496479477263848547297814829533791030108677438011860697976221891134136346802746171099444254470848520759418859710248749442269536407843960301751884894340532692998444067309133962460337353965339345622496688973500696660917393881047681271796332686952245718250204557909111740081445493663501250348903092550789266180524933559822816928812101014617528681814203014991318980052190031836518864484326703389261107334010181052603742698839392300445907753103084252471884058451104548027452421568663689539061941821144013088209052084615818892961353949534575156775491352594777568262767880113619588761709959912024391153239263421724870001774980736473272553241357848102653142919294916454878545118272324201769755278170576881213349257133685059699873338008517045568081512501680930049471156732177685480335824996697422866716467226945599507824162039903726723137358014274299112559837478905520416933474871967845715421036877166996055862800778350729354383785068666276864380563597139875617669614530606743509471851463854569101298467520644752847055779805288817244787752639549799384968725234141673710148527697143352488215642778139080180890466219546088206481057157291177429100146204691779394660427970432203854060243800861751015269659631077304864526494173180163086622153404164327021908835886679274497724030394831234520067407389944575456102340984755563189714730816086251208689160644207238323100639273428292055774758676868257184539395032255993250025729224805363814709733364056005062673051160183194087875228038198651206773037517748971029982315645524118861162963140263011762758363249178969612725431711619389378089536214181548723007393413080373203569756772663820345021077538325547177077719516215206321099792066154230923951297106426052719020266252173982823045778347433499508910987804001660848457522256729471300268818703488454739581090231066133372691168054250276647270568568168191042261552465972091702255504319832080250449787336681778486725364161769563039416508789932323611126939612369449510259052204386763977730084180763329897936653013393815030986598867647814230706126682686387906521215300566526344183466226905923518208306341774390639220862480572081584893725629488784990758763076334942991725159308530173881718001439779820315490001875094160578552641802881974176232215016136787212270097533067066238044002833181717055249156212408965671374619993120935280720623094376858166278864312706596051443293818996450530125914932363909170916554891039985294667106947198243274189331440523526945538570782938598243683411615410365994946989900726207824529170193620962450749167858856726195465403539730321385157664002571972250465734947230938895379560723875890038591698895132456306675370929454158270080047714697451607794017897944667842165256299821303381430076798049466609967532780582536038599535156117809705245198406725786305910019398033133020778517317393218889978134651768880241335445660149617891174570152430007030725794295586898565431949789309383699862669935877826120219259177233125089079931838058552502720869928098368168152283856669673540016100270159583337670268752193797319748282970492835326586375224560474592310365968763990426028474308749306974447583430771259549676452980289542867216537451807730010012738331040598932525874764098195966016298165950483674809720351780514112317944787246162607191228549384089642897696654273309254568007843457257248551020173217662687050669393422563995533725908622446970757239243167530293939897406621836299439047235379450778510259476358390728599288444901145955841315002802773841890512301707575105282303680257161830916973375182714695314195982256862933679494155180243503856969298361041116207607173648369320487088145570899226162488761501219425795251884739727348679027242331993183870006866875408717149821266076618663514904612058877219754855744313937734515821399853799283551435763042183574429688238489182767405192868992563145706000502351241699077743129472370334758471369393212339487112053194501393331853283819074868622960892720558715578008365371328476608220909519610516524253222057378568589943521373844954112433646881820632418441687742821825193404271498243104408890077336423878806272576006278467448375862374820856537109184398778888495540798389269982393185761718026481737096232874727915919628554702157769094191407261304849008581405748576996418585896360242731759731954775732660800051509043933444256789593727901524778159151305055135655139649413160044410395444092296634112092504740168515780430180206159383058891046744239760822597603323525110539285940230364539830416779591269567736760994639264406445231366693402440095477837740263099564053555439954556656218834160962144221085835114394984850813092348062620101384484749599064898445648963498731124264126841152910881080120179010654426089454522960158857879552600546477410297279491724226610374577287725351420636216566027965080167219688019909013748883328229307301314424566066632512181900844505142420068372594565124661288719613096922795625640734057637256792595765823242412753431123937494012150418335151179867324029522285934790383373253073580109451131135283257940216731931167836895908392261907249778444533757614179999875489469586139569001104628390644384519308752555010988446708527192394696622258760950702981739668176001622127388945868497238565212069040453620373615675953698390286372936518690107983337388202929408216724208158297962575937848988334371626598779086342775669589019431979874402744581440507088401231685249897768661652149354946482684462394978739370387888446368297303783821264731685794896170079748891603007936260487045153611124823254036742727329499820413833101612134175707858959495448501394406791142147710943653720478626007904728819923719510426954364449827923286428062931915315162966685941440551507125697947060364659710091452011518343375528768217971151098100831928121614575345702685451529427312574220148315460649353561364951847810229649415444591306048368168163754878308008874103554817443325263877061033523476986316211002491654854651879485061603943848464698403957110580748969128910213386140820248097258211760499358088090643434729448045021661843908001317618933640427083720398315177367838603243520147872658875002992968445086676751086826695227228899327370839233029153691820779722410400084737350251367975591050518949951026193982889781140213603628510899697715765244312518811678400746688534484832624364719335769096847663442958216009307660195707669663927855835568984197600088524789725004206879531321503198218402324356527941229493674035000479184253529155263669841215592199463764327176474802920969080138266977561532021100246653670063812590849979072923787388913322362338974468926813724828287330170498337181439346125147175241375900004568659990357042976573705846755634613041049534300744971800181807688545636100700248428839763257473336079446146776297959015200210197607212448534938043680511099415310812612814671166748251048659037304646935678790400254124046489010955387407108905623942643104295620363652010903153718467794002714611744147523312995104106140392090083838646433687305405334339849383157698780931708276447577444175751593535311165344625804633727993568462193038952402701175162475713198010933173260296616144437327793817862688669630645194231980571175718978134079190538726611651793779317707304693373592830751289061874086152002745985599913548616904992972017365795110984005435906355604999331137836540020067612241347769343248381916689814318339253696882935675914263859228837086246690771411790876338993432789179535836624627893369808753723422582081014471073889633231770672391088758702988774735406641256428939411384226662441348935979527362195471922571364098608177383517917972261675299732483222120183991672675879302402869380597807537423747831976754467952114551829143407080873794401938836572703113673321078485018788388565901122887016535955550227099632320169766566237368775924934727836418072609970594802275847933471842031838163672069458387623773522307078650971746319857626325334160416895814844567458643929918592364285908989098743412685597446181873924188360647468578377191886429363941751807931318051510943390570864317101438208255819446420704415971390116469984332025936440343841833102353598348447509057763361994356541357003077520429046740118091077190412247685457833026942694734380887784395892539141920540808061077287491866118792982051983920015893401723675385409924531141361238379756182927844801382035173123061012491534971574287335368997601327849883746201068366717477730396951453326019741211810497605383869945113731956629521865782090145585494168086911447483139408532193354405187495103300812723023013173577125615234082278815714145245790047397354922190058353381710846856665001951630164599325099677080854655297435205592086465890941784517275519222601253165304447839326276515397926542159280463338840821616158395863104359003993640260161714936129748262272121448140080954104609837497763612617523705826548593802932749737059164494583682655619035802165240700409055608866047202110241497434576175045545486993734385133968138346050876609011672941688464587790438102393526018718139833636373503024147725090148442730378636633299147244866403953386307142653662052393468233480162914888499658801241582886408128437011143660168811931334772596842560458019866878607072059779329896483854898441600149348171989817373411419962748299795518289561957813973686652097549838249475227909233135950919941695829794303058696715714854143715785096461139757736680287893901962800122554973743683491004822512919912313677413289685865481271108523940117357881895165588537703337798898809182076245843596697179265726534829647244718322691766243203010106427297428706448163222652891034595279658706928706784075261932809015237678503838368686223871975784616346419077225534930025056454732898600402532309451130764576025838063723534840566244322415009270591839089579678929683032732122354740291148287709127714285823675626335644619625781634615247987483887677205681103422348601736758476862659264755998581705999039529199690843221264867835261496687762994192522493940719130875689325371050140500487100200412910445107501773850676096388518996068137985356018453828879825009810927855232875459052169677061852076127061774762186673210992936314555651241147840349659337659741365432065029755330543350009770282900785073827850046651844617503424710941642709412490429765828321160231010202743741853262713670910714981145230573104233231597104469960403838619647659919137048321802471279274496281610088682586419129038564803542647831781050615971253398001716799330471919169191896621860444735996213706824624583652107656498811868955738986091042760300258347148630021330182289620927800221774832478864377177567946764266241270579678343439351808111330371375606518038613348696283982531721177559787496060473883634158116031278217241874307423670230801690877637456624059757951830125626567563091789637441106781416496772132871343768016239011261840445852079761545267198932175867715931798373343499518238837797329233041966747316439441086718051473548608942084228555815841661126952234448699198203636645563559820563214873589365680455231042755385544183429926814916395398122237117141921999993173606540706677013630811453578164566046587767974068962185524842161027738428003091939620224810953280242168116750989172953960316787996536882130807355089829654850832306389020857174227639933553339573183520612169323948067763891952422564921224756293233473554505621111817232652581414872722330799869882186248970632202304218041077942920019885579729667035324980300792424895744259982123528991352387399314921759520964920758149604906896326179345385278915742233734239793663942731252193863223564840052906030964588515234059671965579811405243196875544177692874370603374166659387189537178073973473115166007331009439430555518196268659970391863285828311594347820183112644363164077459513366703930312140692357887652215575401578056943573804133773051611154588593819305929936953480844565639728549021417687948180189047890288841505427349212822534572570217817992373640196350006156885366263291127601596084852512171687291422969515441555755603009717616603848519401971872536147733451842340730349142148139291164620665296387827881679241781194877598212589731376435282069134880120221267689232171995066299262093422582379192149197435500512638441089703814776582267399874247544074361709838054080619455432403025546291637277120906367311225374154369641832569233826905973655486180600728449594539646133787514518977088962752968843503226803355901076915313948347950272968695977321475287468291328022186633138708050269429898209848681529559566024991405125648721155942305520802854443215251528376969851399785292011733543823317266993698751707021184877683862697515602200641366494000450055510318270371761494122506673507240242170312861241433717004031270789714363718999469346101222283472146490594875771426441090052710937323682583285083928946043500483496900615388466528293545809781093312117758809592751090403148598577372810078922787435406435575286965939778318736437191602050645281026439876634912602616594978406856928641049947021466512042751209270423530739823483040098887667169064925969718029368139112262575018555949836838058219309526851291482572391841014307954472089486197657611354963578440719354610883189752892112449151615578425653707717232709189518300180673313695343474606762144104672589007817377056627296788163607104940580490702577091765573141864423149656386282526520233948246261216743810099255413901167632971248866345125944575358596839382334210531088089603299550580232195449235627370198576525260212865451470857838348451637171979687730801545020980222896702481756773339191665434295229247326661729631672094363252168732350370822219281085217958921602573309403889913203513200240889725523348563133209874787751032613071190571285245303879565871531806093108939429326794286184431160636352049850782445207073593267242046847279882115780283741851133858209371154799860281092030326909746493894556410133169018596249669700296517188932012565665644991706953719296536230286857600248086551181435944113203953004494345247778865263918936187670429072553387836143716500528510836552644782250938841142948339048984009134125176079149217528298735177861889201040908986329981234050005056730644839104451378561414514617754979623142763203974081570824366535681125741252818514483453265775858763220831774342289179266272497579411429652360856441726412227699254214268775721584908861259896043641297336431766200477953316753894050388189597975898368924773761116945298532556083756968068220915478549087072919854099913910856950798426729860603417295220034346436166610938499215001696836874286276772394644297615190199563058919924818746232319238406898771017519579984468549156323249171386878495992908684391902263740012295536315441175169422396850620462176184266480761951360412358448102731268362730485395119968639193973363106497577745129323338201656292800817501972657925577476268274640217512666404689131082826063193728578252642777856443565082396425393352708960799616664654047964486335560295107745440855128585329973028479341319653921364824474782987016479785284258404653946656006271209014589215197062622147238547333699175874197048231635184439266513116744173084217686679580476801715934323825860051304203039969671942068112580791275409079065577606281501094292260219523663980800726771768573873046651422356775439563928682302848522509690964895544927397587979596398434793276822966040485204833785776278666431190112255138154814169540267358694799436743900069994272354390500436170287770439036660908640097002991210568457581694056020827681499670929470751692878893158849596021088368265476839155960850327185580133722438613857455359580163800250316459482186182925626899202112731069969160344697212276266616938984864403063643058802842132638759451035514254803230150573386906024500114708971273899978758674095300755814865310928815896756714848392986363819588311544691030811663370670533880314043662436251047201263209055244418666296511932512250458789802021868001673904689301715629376569273904771664837953671775493122635643533642999847688285338171663977768487255046206613098574117274678003299347913034307248586877191455822667656875209297057376683044657298698027556436170193513033420909209700155911717398895613218067946287768132566833718544284771533193985053398342326074385258384477457017151360660934467912191631840394143875177596132823052503465284308165354477579418564396895308710960615254563755866625819264888491648782611446885892896790458175837863537166949829938880190465767623148692303443251028155855720813857815526394075407219486869743833275111568568302984429431218407140689432238193961608316063941686574697870171804942872568844793409029718416848590855980239840375702752568348397314794639386142156960683932493251060331080887738565354528110133278231031138034832276890159601461419444158793807820798372535624913638369472916425710269177730815162143515215479623494024114640061587233968259690708924750371690616545754401835472934463958223412214284825256450168087359958432185001192856001139240119319263314515389079863205101265294991539034083701496894262374081068481100913291295441393168457370557124663818508475008480126648770241427836649894282444467349992457675946621860270562989817850966718772077410877999250999825360100809474224644177982320027838544343350470111209177996559920911870325118202498130784324973412903707274968935651220363236758874435622936539210126954785892120781847367690662035647137276771150224018014915509801935040239162789142641355996250474510526866848398148792194955635999756065142400562915014219475232231748819361369166863982288569716855267904474906282915715364859215113487320487554237862875153676833963523460175972490783418295991992211991488234304714059416649609506069043557726255777075334422514841610477347184248038289493312705019832514752811907871587336577473326288219422083066111427708568326222299955496532250113245147592722696034829243580426073971730925164173058452783114607824614174889698049830533712573264991753178357399305250300042709858266467761701862666393621144374249585320644182420454421118433944057625745664188877855057835231923847998491164102177649303825234282861149495922805233455940447718686741875605308342339955803052458588318658138367823028737309822700303632564636237944523046825414033271825600882682098088622468427439429312107623826148413212742633403334781620441291656076896169041386127514329847972394247550183751736350532149625499428266736234240929766395351290049541400807891413268722904944392673213868487085006112475583566460859500112963775498453239735471985581386137446979262794151082330842771842843822345949216776179210476237619054664617638859788051538410515385048742883841824616659309879593564085091756487378922891963627711348375055407788717050509631033317994208033754566407435751718217217651066465372139101127936985929489794673431833992411458153735759483411736528157128648245872805305019319589968396765328068253712235828863806142222786053564394363321297844225781723649204172090879816483362313978427845480532947369606062070154432449778671689121814029897915821074621353268968585616210618203592974410380537779654061776589265820952843157989862770960701564327479102415610255896191393870190095805051387058122351159006503310370603474684338533711666549346448021481102580817608028633034235282455558043811531564969390940224019527195537415865956013077956971617499940782166729234069604098298394632960630581084554882514251498861070926318036324141846281745608994140506792403157265684570662981270599253194206443836416616444002334830640247411598633194696557070746974065281679758875002473193537243188888529814723056859801484249590529069333616571615567560736320799006533710145297346435815681508728833604506381732455924413311982108705586744129584282053333275346751324854343762322656661132065060616996046197817617418058968706283351173666297937079961074980686337207809501890479264740944694079817288626055018950070871954118326222527053582496097610959474857009613720314692243734726980848766770242282352438896788715942894491738977589347913118898654817902233156782811037715599637695813168701918022438728584563669781742022832249129889997472661720992788174123879620554873721247546122323659873970509080126390269168572038459452986699709005765565120268818564840912429347821968415166723820121477096345514598965342933541324609963969632118341463318721488084830720042930797804021895722226579582662527671752363341543465316379033482940288550662091618087049317820625063632572615480773270532861111851190469572916246206507164290322903492475927602286301253794318015325252281805875004950545635110878525184938731482713762698959912416577918494004614911376443257554715490607076271625266883265548428965642440820597850356263096942994498612844807826388135537193583285766950494943558045298031284962045039111049606259816542647072276441065630232307949970845116592307922917352057774400344857154052931467686523066083333014663361626440910196082800818518222180301202823887003588310261901550172897896511076280128307266112258635670971600608904206871873369235058317268450753933622363479477062172766695609411187297267697784188496824949019120709686713402296393718652821917172077911552729920159713051424634951593992939751087817763029597733749204047319198653059371714695205728494053665292053183444385119849659409064525657269007227607439352034541659140470437645108141234323301914404400789504593437024755223216850133397150973667214981340600808963070162789310637431760407352178166662260165069870623690846848888260344422169935805243043238529246502441980410534320223946802202826059670124965125903963040073015064305273360653351647825861536757837980272670798226403032598593439420046687901132684349379794003029206489936209308756959414485543609331710472310251582129044423762689416138388093319363735070813116937208912593605175022097042587226264628434868544038841995777613510372955129158045819000418430456735482510027910621137617366172813399483907751434283358266888399254621935161283331258883944166337304526425451846363806530418020560626671402036521161523756735429113602603027383612326516298346724615858549762821026319242426740821945308715823099285419141124884203837850475658239096447863393777714989246693069881426960820822116633370320479082525076068887833301498990750592020712041656739309290385356537571101304609248604060771931700430541182949350657828276201247070365005597079591347404391609780892104378350222251190996783289689121861127233070641814293568299717368330658932498823427493251254696077537783041585895685358944973444216549155974235874914851065461009489271437582511615306300414642753506532804114164547398236441894737024342141872043693472212955248599430519989141304124187940680246056574179783305043328553169245775000471037411688014150060880064891965221666298224983567225317117335057115319002733555971484573128600057587155154265224930461413388492794756136258169351271598938126203698959321610666147314801413587614493354503987770313132813219418009521398672183269501750548900133577108306045152509403702622310151475588671496307530166145728515171042204916786322474215490547434626972096454676564936604679867693445152197804030694909762353082250112064578546146100184628864741344968598544666681134926287755808980559461314581391471971619688543360857421646480480505314399417955752207496182873833811905725542542168266863319298691651381669965223167859772384438720092293153130653796283288624900713505807743212157078597538896706806734753854788593881627723692641847680619806560297242582504654892336899995438636252889658989174677607515406143622533376797486689568147468882458600384643628080491709490279989231783679548818965419636824589615553379108651036150911695323859494266645665268184029841932208887544466184576922538829935779042633485311025459926520310719629354207580989681726422870920303135285503609564757879205947959229206162976071979904433680094963887977401234399198213802303562993311514127640470572359530453957134483298352054273029671059006535588876937851414983297523973233178462312694778403515908494539572427877225159629600731014427605049705462955903764428552516761413817658727604088955487075819739558732878852680652900750929947400918400974875116236783732822534026233507669042102968106222483278650599360128464270505226283963895937198146913898737898916595416277202560026154200957060769650838086586730494524686869678181428795546843409171177421721824067421501609093138145756902868959934149634493479975078524231619231950414686688726081773769406353347863693506205879982207082066322643415104706770593690252749734803976426134765364587169724363998175731100200460184405941823479316407481030675676783145410385470696278012599860864750515929941870456348395426429670965622079326196150355844428057371133690253740797791447140838461347693222504126865465695455367545388943931024680710243843392635834840688691838778072030199248497149475221653389282751449032638804347803839882368830479797299737199522872265353952790348238342261247300880964007467926341363998141182087766900780222360434048611019873651707692060423933247378016898881409618601475258251423489328434612743289783494553371814311764641439033786815438395538880490613152578452989108067755557356253728414156460054070836853686022216824538717903353934526737171578088034851967382557491153746828405618046792006359386665271840211493837687117749170684967480192908793213357990920634329102832042563272346381274472042753621025840576995287280150310602215634819889341494162626990434837975675604273545430179954814092334232276118842770776936860284994283735870964177052293216021206957529264958967122492002118428750428773521547355503174884323484530643754246915625884715031679364597710848275120403007863793309670255173181739736101175321885797568570442761785409446976079573843320803753133975613431157775056136687132363105120672954508504234388277916908279658114239602754354623645918147578941052371527260884036144240779316992993367893652534712897703145366785900465168980689094818743256787271350175828709300052395702782785442082923352965833268192550901260950913160633172859611475923744939720676423994746876475218699629395901514145117159963357280996220068697270931296897835821222391048078334319809298859654100067770881495972328609710145979981204257423681209727138813988669677327982150305299804528516102572269655916056362273797018999161965005147642263416651021551580157895551820788516126028590701185667526719893429480109315810508760455660451416393848466785097334829559455349685172845947425816609445785196516599187039966251045948815642048300196811996948303587313670283367617004975493730023758319819302353809845998070439080692996431927698439303533446147085157645249859640824227635773540441938964713672446781905376346375043111719242408819271927296521843917737098690787934178434164360630860713304872578357156832548950409216640840423690455964513578592457336708737917168992400330392233737440925783050293691375160048903952246071692967539891309885021714254454650595316332424043700126623439866567082273941169590937587178848728091649702535648562227107616164700989535162192326251758477298271081213225577197578977051824280929415189557225149035939652931809333873276993928915941252168382692809052096449354228835853725218337677305116054636347034112787272613666049448955503579442382755825796900257376698003989681180954524978894978058117536646893120824579415622143713429733377050611336832047524761521715733415691371524294902401529870265930979807721013737716293609170322001440786589875620109057371482383185992642166268482106511966112284863524437918137268419574204977523794857582943873059521438642386453323943349984907310853655412165492141876261789751884502043101721772273378257979381926178084727984579491843102563643122140090769245429099809189855717867224149331144400909222410731180281741137917646289911759150482521991650332038157848290665062095809516485908881344606035359573916661746135371909847403884172212170829886262095006774362678608604349830934451757723920323211079426277954308227880954227161543529551569396378084230813801644493655004650659300487605147183478242656296406820243858588481838219428261139428817207095848407691996079159762552820915139778299114307785283320555186506711233780591379211727038491607432688174967475102028529210491937505363627650021358948525967728349632175009321848995909031731399104453951249704082373074035408170792380738750412393591500370417821206121426798422537464524194443653691902625668520820082383586731444013406286327866185404145809431485065048304920542984131315102238145542989032099570234731701318515474923138030282302912861347173475834147882118061770527764367051424222258190571820120673177241828483687152884230158184039045821434303164065719120712340458414518311793306263228015256160276476833307413016789512120746586081871337111103902151275936276225747971215123950053243189406501026678987076985626277849812100986096347449910807895652051824165354716807398167226587692850510253749130094578850844094458791183019350643391760041173079891226231966724252021434143893901976289579676904303281142067046694293204437786457888893893667321409510441533964879490296933373044297471093733762063054869354482811436657364816104793416439376245852003111359867011423469419941944173925069914455837382650454711666184050543675161006924324878492583981482304870906798759408177244421320621402835700591127348687758936792943520537695717023759782689417598069001038237153129025825651782668849572489821622959215826018863915111094729549241181751139823220932129880059307907178799447044073481593334827510228458357121828347921167959240320914437288445958993638305740190338678731207011601740029740606927428819870797770555956830825831423304040372404319782153863259232717892164678955342251336899809223071649856696561278515153374942484525978463027819385465133298040179112121273051352476158340611650516874214464758750921781593439946958316631922070390526982613985483793248992753823663776831999922751457347391268610588840290187425657084603073616298675314220865892875923783489491153762880115775956915814418946490248644784189524683550735425352592424981101146419489530337099970208572195180422423531020199895128168217567589201126782029022141463699212315730244252310892955451095340758515451866670096101706785622797439654034490130181873938616590053581768885133690445012846012163472293273633722012960033567139448817509631854319099051017790173973323379878000478116236079371114543233144756337671347142278730100684300364348638037262524487300976708864575149452637219750739160444371409770436570735522703369181821223674860506832466454938633249478121236310179150929834377534973788650233855715466729082879052009915156492063812374088301549027671851564179617252098769968926259101220248390323669293980063709527115581016313646629599956566829297589832821859486293358739837432331655703033295940661490965912116988018137939536219424684522438982176246441158143243331936839264672560849715051342484129491291806408689958572120878496298286656032063990769422285712006117481938056880135921355191456232337265723038169649816807083844841739672840685010485562254053162031013886593823444579745396166614869133988499748710032358097022804753790612728095707356371698432902267525524305020968326856983124590171861437208242546433375894553865309082546745603647616320577802806213681268936963211028885521929589179457431167929273115610254698750401062287162020787199872927100290851258636868425908549449567772367382348241343129701753133764418823232433679448160680184583886393258440547465363098300316635969214586545648131116891475437133870848359502026645720930503405539748340775868236321407992367960521843661465468484707373554981138929887533692795306295147822697294505382327932307745101226297137527340198652235795949890142505193963211249218213474346935325663577167702175113203890674144018942294217975532728810121971060796653844659920874953479302332691596711337089043691271532288131972632417387696467850105018565437816264416638779150497400004116916333831895956086566813222357679505926816146101504618671558152805476277120526010824554530307448366038318392359357655479922883099155445168534472404566090184152275161676086899461375062669542592487132106213268779838775979013325378407873040220900880763980583080673043992101156219243063430222303322520649679104972749449191151421715349490267178445928967005722711336904704837842866080483898018334118322437025799192539894276587686856825042571614819961495783024448385772027471236202268368393160692383816311792060932516574336091166823105696970911098136483858498774020461098977732750855117723804836705480227743050494487403323493541816833423831543731403146585721257486806776019833718329639350667347679876567555473205680188339899322779126946379816161651746811329631630960477973011482184683954474477059247540008480038585025563591321273829686408308480122631334069559921593471634581605822865647121853675093886089429829635805978912495824489369640267082570075636005085388435105882275139555642777589295596367170217199385664970083373309977275281316485588128982589606984065888959357220759964191673865957329155456516068639967293781832357133427394677313620915781260947967967002282917752549977084885641436622918999663724549308159771148416346128774786733899293647077499811114770898319566310896733054940506378659066045332296480882510259733931024451748072568678834111358117081687743230458158258813228268379781305926059831581954212795353864575849068322961702600013707338669684920484301356437978897240613836605637872707533668081524707193212747213800907610255449139254452718419203808942862362648611879020657225984660056705429090544979080521593732375168348697368580800538415133577428971973624666648747956941747588588715161926292310670033686429594053594039535405952708802875754293438365854520051329203539527641760650618446307919387801129028752201144403956882372868870380498057344030519098616322329656163685986393576316315690966108566333443666332592008964110404225801401345132393529812664774804683040822953559171373180472917147050502252340914251724151785940196742891876113954414509431710146162109764096119237076631796200124834084610766389592775396523040422323474788482509608491882178004379859349035676859552070738844424103047106180585929107407375834010839754539671457649761740272142846847722396357437913386267012209986119115123157662538930883419805641268185839048227483293099809136983249746185234736896114415238225661196922208705088278267800072315748419319611024643835155026143700559106792178749551196809570910302345548998930233028117228953640088579973669294488943440912929679912208107101626739776742245473149717504666707256019429399352880463057329250616159445574324330091156922589738338767490192355022542868539792695524841145351007231335742805504027361241841576803544661840392135785771618511801086795808061292675345253052296806047882381206118816005182726521383004062872728821266723753470813875308731106759732936327762018960244154865393678519061059873008528996012591063286131851071814894506747539375828828128367071581726615297293011402380805814896003033881301217009089261214591436338874134833331482955213820460631196238283894963183268536013965419120606492934363536749784154419030989006579851249930791880651982080593203579273084400553949483810022656184247301757559515048591475688775612489454515511961111394679512580440744757600979095344365200569569363550426903995360968624980675340798134864939177901490862874094332079596285248218505501608951723691392987925625385178429887149769765788487602501416439678558130790840771762563058664582736910746467010182319848991359522163215660058850240340844053668442223353890258766054434634977954518078805829742893948374314203761636545257216115849135093863445757102253332933712979057082097202234146457716664731819668918141987419809332401364233151728821059333183543029802397823369949316605702253215625242751667610408756699351080034547205713619548379347622924308196348631850335884948924529855661100488843465643319738812065673082187169401864441909807541977945117802133918153818215132222755517391033839484064899165482538603387567730271432206015393767471850997989135874121319356761936740172956410952302360290505937473165680673034021609784318659212837391384008434141359711515981072738106469795502174088325743253227291597858678157589549664117085488451073260569533743228545172787698241413321652805765048150605206111862071746722957679785759470351955198988437099202395892938211903274885792566814809491645939640398987027242504786946824546602160508629026608674274898619726366720429990724094661134061938821100032515698232795479530027304450462814779053334294009377306621113581328734990207882802548679709724145680545975371952180122328346282301687176256571468932556786855142419669659042972204285846653175117497641062096329493874730685521719895757234195201257718935606636037769497830931418354239233540609181686759269645770910518842735947214716171974120614092551754401933146496734960461897182551445714058255747666384718331975986117103082227860319428475815293039622705126114807937683537401094999583596405389006537704973018844194452096633254693005117213004470472109409063749279438492549442659900879029525625938861670326816277423564657035751418093250185974037024816968678138550564637231788143948873091353028271765707707913664676043104114389389127027671279457757322918728552996598259988762013690814766658846407470914686330407349437287954628895238034346921133065254488033310634671782154479501095672021879189652931252050627097307478100421798440066124103367846176543509222410354108760051230909152755911287207374800807312964135451739838402763935030598273498840128826517616704095300677044686405211981317310768410969292186389329424198008057371875566905765363237295663331940726910520405993485370255031911645275488441085839930206687320751846038287376551740249282612557095925962998742151391562544393773742497657561938856933208830545906258466194286325833380414852369608365548920046192511163309394245743200563901160849336410061680516069453022857568287591264136273585599914315646545242641513316270889898960663245683190725378488967672302770837356842074541543837310850698952344371447036254142927924296974855610858484832158445756817079940595055665439903759478638660209187684725236435340103736936211858418328682594710493709767986986032673027634252806630918140804744377895676138471878113268407717681747518758291483130709614728840224370362980601079135962749049109899999133612579865219640855000568930794276152763939989636495480070797812580227800155010419443431164673304388949044803810987898752933835136451875537360734051591476168545611715643096008604003797259013384773187353297866841886126368047873266498913915686166114275340770440102436830896919310040560910103240577079912022780248202133447236094830875285225068838857489796542081125634294877228714370026373358437895118615227634344304983203738653580000493061221329355024676611389829494431805209921361407038946329463339812081690090200099285392626393718303440536066585806003411420600133821689921240094507100009848783493074557196221186102442562153388505639501444680061198283673364778587706984110140895286551972475515774370500040141867291847914118038142350257588197223334147817003441137291140163470455036178451334112374478627104053860137312235310149032515340312310259455648631587986608336704792038463219004576349387686441032677973832462066530689063031613657770288851444967001337011203388627255253400253297372411965144561445409834665899738989663883731693980406719659783867664026225833397512539744042743965637681161651768236510211235419561981472047770272583681262196928289316217081794631031106550073075957942160750384858239883110738649625252770698544273318692648373661339375156886158177520456758578042180434108118198572399705175697805292341619985410079481894344801675122737024899228775073148250864299798522313927388920633275903540452693231915025213622244899688379206088396068631210028402403095857745450764888553602023307619168913791300016696760243186354841591724998101742104759530214078145968999165299361347155596468163165521015207427308887575195507785579348704739139835916316114138021509453249848064685423617460809389841062722328911230019016894084149650199075797397894043236391507210699630883024442719690934605031197674967580977348098185709354057391010040741263423976331956250646548751058042253126941904430858673762952579748283041177460399171895074914547334776119779122362641719306760142915906946801337286804306704825560584484238404341792817061218744891344881347277528697613247240257026009009182213314818678840472835126359789915764141641883362650275933578217751143225811208697052021107284896341693842593297109941189057773853533157388852190441719714777917565441458499575900796750618488997841778080761265424255434324483340906565844219010691464928886944848644250229008568463691253696719158135909915061976515475180035987827682270722732825282521244695622129821858013740849627888468186006192613511616625710367387296973759902238019606629712579495322137371712813809857823701352899788613176554999330006534388853793397747144760074679665848568168872239391088704335557578621183409776789484666414682716221587050325787527749475012574294461857145378887370315565960085870076403319398594743900693084474597569079722541344840178088869374566572492121807294422579289942200519325249190642486906740546483327646571032845830637780063428825708186312999284518106854203693092928190282342838024960913943778123538838353996204314848417226798604138130350295935264895235642719637413313100083545068319390342535240825040539784239707817076503164744239338486221589668501205598427280723643908526885258927209693652039177346104103356313238913829511994372806921761028473504285094929703427133798947884544720518516347460608681706869349487722744174575563678555772521184955834008985404854236659000142518082280634127090208736895737521838261523864538248452425223357389717870858949684800793878013598808784365174967943778610768042947552319917864515920835932011251674803915293329543028079245377540161251757914236842135793388091945864155987172403279823595099191235321276441051305330702171561044900720926181817666461084541435211067087804597448135025474560212813691953950049484711291684394100498875823116407436499997407122505553234638792783778426306321118104604547521191564627298236359935342257194076017707928602782638769313407987791008356505211618372777716950380073206495922761872760542193819742417050049487321056102327816834267933751878272926214887621392519670024727925796629422451440073578965204921412935846311842191275678840212223330597372293926466473055385635647555532083885529333167377264778886459346227445950949110926628499442484833960764714727470427982423867690528904477077933625374617146559279981411707449296527693589117660330893098124189015415936957625088371616528609327713648653009083847869563591947833018898655225163687648276561845208452351947615222278495115619992338970378966536887257847813090340638898886808008312312011810740851338525511913388517576612905198053618988157044900727942184254710489923328144653315364826042185050182998170073328896979573543745009176168325344149502105418294425482807538648344905191448526338825666538005703374928299011836089491889984378876791550560474465852837794429277344689921250593918607934708983474324744000930559613150539195859445297476851768295040058332397583774839711915839086758938231403623190346288278301670836319568198097118123550674860534713221973476152070913098819374791067243993883903799768941523895860435738847357346573887296786809630544615488599417037458568005159861465229649789036672666019559411441691035824385804043963715516995781340137770715881472128459425029466937930368639267502986196200346192160324801686175590889599462886277694441702482722207808220879231441359214498447603308095073856541878374223272651111293266703644947076656093562010182492567709699763664711859124648394537007243839435842149372395709872286020798296516065317640530083248906139419703316535725722128585017860945350909706861449577862386844891519730587148922469658695194785452912303973082694542349074466311296820717398257355327372892495966780962448652421320544984188595580610100073979269854208698462499770015450934667912516404946033124072065128190085942901025628733824268388965125250665089080966401108695748939538644518172417031217023717256319007096026117433650956569226473139121564008517563576998172129382913428899425012664668814543613379298289196486815895661735363283083492064161095080201318552476504030936286746250918966006289335804645076565162043752871883127184564057746193433149596570642544015560771367063536052425213659841684522124380093262684303638265067566613252778083104451086306647127693271748857680951539815964757844348188602999635865905374778410492843091674559268665595952026587334717343684260401696263196403303574837168972438066630845375037895573651196207616064128967441208174162113608246701005237598774570157415669719386530794577517792035753471498375327437238804059734445379545381835879999739258677478806284822063800200544131585294637648882490168700443062746784487081839032616059786227205442612133318857513026145542866153217357882894311542435616998883291772207392577339059697942771887578235140687835804620466836485729859046124129193164859162930065874889556798618464137320712671427039183808350737040037909457071868278592267423482420156745505706260955797568315970544524811706213520214766091196101276254009800919405767571593966032062387950841682548587972328840026816548895135298256859452599928206135990398629419633076638648521662721661216074656255583793759126239390166584312314881431898651367834380372080634347658049782070933592550809158516455783582612200385201069935447333646079227688288989925637057129793537436711394042487751183635035494095067578546702835287453184497688457597747178545723148645283067738012534925091080867653878384311175714016067535331414960309819340580691742312402390111748870934499570337551785027304678807988274734374873035001547654536712791225913590868993115714710258647555602058292454067201315723404821960098424570156544385442053444701124803533371800239306366821311642222931389055937109086744423427585308183028560694576160760100152980200696899717936054845152389185564223406572940777153738651555337740044854247168389918965440839865496371122947406516326269281033484294553124196977689855066879540166350707539786806085807351153141276443609032610824334769588470802537431571091278646071948033931952605595264266830732698249024912517094979531540265537778733290931034587347093197891513874888809077854222599650380005887024818036608534980331617446757457376001277220878534985625036229072846115912535127040567021800199275905476889707249428528493621747863982717793643479461927836915856514962720312237252962706525446033815017636582650255681979331446079796152197896565676741278317499069500065627468723305589118191230477739725505178060198609134713859840832364080560442602538686843074400900597325807143331667639421030918953223831622633084660214921275976035857037220450815894097747350694096854323067252983966727111415969607441352352306490445539623254963835805634093670742213376530010681781659606801511038832159679113883675706526122017167101005345989648126983623123350520574004560911139029754910912585567225140471282507156845730102691069831975024215390876559452425473684186858355704861580335011598081190101165767685323246972126643700442580998310839240504827838272090823829893600114396201119807944986002406597469332436471106006310673096616674187175428233266898996356927193982491227988900199276640050029895603773227525285714276318468990815793489377854828523132148363841389067812180631988860528544486749377584844123531024608117152754224941999970458300989999427493909394506656645684149872511752231311383192440820224204057908158231171162891253032405721587046621603271110582364449862175893232892051701005713434293095362929836567699144236166082181713650932497146210756509174395593853303441559693617081710353544413456830245422190426871165459743087759314253434570324912283973431419092279430644933236733246544009699175124919562023892222679492426769811871776311610543800995690089669633346295137498938889745029911238745788962764086031869270387203266481836872721209652926749827990312873055442611240036786721782314764897673649484274433251854954422665450617622979290153014368922407121823663461348623073099797304459671754922038641317571057374384033553260259843266644965532897836152999530786386605812982345185567134870689569196750502758901306887312818695761383883661226510295045749730841662883257562039173984618832432071350092368237052022821165746920746563103100805054128125983506222972579971262167940638431324133225661361569976636181341333978791801509453248343085574824153008734276453459666029866623718278638719435767984859657702693253610944249300580132526018633943947421389463487033723686239387211962991815580101074737879741009482068853504917474421994367640031959878193288746627238241569977365045471502077280107211134785100285681429418965060221436283356877797479716231082034347644880701658901443257246585006142773928729889036008020603503394441591218517217960176404095293962787889242966405578214182630501886477252894948172397488132272554278829230378441636823277629948497711403128960304619593769886257929023978046712611812597881084322721917697216785730419381152565651604828482702848474113923333718419774362637360330736023687082173152176283270745998038213456353007996412947039028581164557815983516751831434259830547244361703840715415383177632718885680490118910081336245824072820282655370891004114475936605154873508515276639736195036051720185854242442836929990711234373197307493735931986273449123503982785146633622786482648266573242934611889736411813897880112033191397720215676351779975583167539561305991310134219947166408706949451277909484340055474716433772435896029679616225431251474949152629949976401760596160568405504508570151079469239866277832007787800846119506838845529938964441475236155165618533853505101162319723035201934003121987075090441949837344011739659681635974171094783913656941931724828234462795898170051087845940864289646127667351635875924107531439608096635428425490569787184452137905046005304351068545822375982957389996290462174590398870137810379717154656755321100260433617266011666849090967885731345387535892399244780527691801469672814864742120414041890195854359199930069502272368763769030620737563135285570582974814481786460916194639943964696027308453983640939491646528431819648195435582366559068965202832985677561173531924315526342088760301606409361186394550443541490243643491125238866044447630680313276777885066471593371569668556725096894925447407130989300929743978081193872675140263028740187194495227257588670847567902158797893011674449519339653787578050484349398402185246630392623753879147689695285838574172688470014249794992685893340526985553324734447228135445210214047013338683481687906910004495001602100991200458283325612903767292745015380508568773319331007520235654960478211349415083322484605504345332852587243661025895823084477067158971121773630148368768269537587297072172839324029542101685761627510391551729966499512782653204943326531159749095627049840192174994204363603190970852053448613713861760689920344578636007718089394017223266206806061025683022197106653564345123194621196547600740098817014602923472829666136913108189279708456029316114410149226528490418284368301733394940611020326965964504723355213203436990073324929075083556201614994988929723321678491940110154467237291060469451230592212043579801310345758419581855561429389603725085572787821532846561636946176159345114423894744671961109242602667241815009785230601508451572651163829626353703864717655889025905102274454668080176152112865481244519628392942360828572016282885592183772418442733361868699889109361133273526655620191932699154402751931565357884297001773508547530376878779155378039660903648411187292261536850789435868806405144969594919186152288223017287080306629423874134449879314843071760871585923329325837767880252146760416468926226938408890826566433513064615855609581999477664172652779064700166606084560209435077352451200130841910043455996788897563499360598380559587352977845399173331673810679076050334776113184084001769002132643474287233429107204599471089630338188673396670417157930153863842524991988691032986538612855434244486231897234494981363874336039131907687600361919700605235540268048425351770398818519639194873783035103871557914703067710290475848430698078472561697711239044241847365842963963095805795932754873275260082874738104421823886550744045682425471415112229584110855030033408670296311448313661723780621485474203883418850328790804268768894448097449525093873747692600469664125283026625014138100644967241469737840273399110113747984439306965298307745283546549175153717047543254066662079773562937260881600134437360862571034247857328881457395377353594125065073809509335891300704894745742289937699446693661352450577621366899606103562009689620663372651223221949757793429228898407486955197663475327641287250281936542244099690426507135591616296774821071215229802364438705882452546179165114883039338055607068502325537096146940553537026027285592348640350157473236736383031979648888409322186501573414160136323224079952172595514944264155994537913671222203775640781458680683462134369575914090208198471772475832169814776123144051127844059956805374676109937377569936060726465164921179083051327902710871711623385793081776436733276954638567912969850790769076690724236246690581824498006304391950891154449787461058510433949572499508672654245984505719400798666766803003078646843738367993296492800460901574374769374810644764160887259930644537555002663969131017813430695803375577340144283630885373537943058878861939757457151493085714412361651930606276307201197379479987393845189176192464502792878358551026946048363256862604062174785899381440528289808470054083321218530503461332532856422306658175311475013066823431037458385103929178740993079732637072982925498202190030907472399823133457552383043361472724100034038318637743524808387603989905316551101783005718131655820004103973619553047160503180394251763199957649903575399667373791671335602186248796948534229341379218050884147825966477332446074147564108398973017578440672281055985154030352349877185433026152623591117916056681412338515525471065753710461671877289772762978425991227005009153256994047443172471729075659901475078406026477591631315462472960750919078960105242205652147919626803361504256142224483343453476600605277808570658293647647098122924142836619061169801658738965795787332933466380936205430811966424376542933150085550091898334562287314681710956727639772281109908870636883678109026546736876269308472298121631221957591801171268030209891160228702447155894377757681750101378214111617534860285594390934508450070658407285194661690027698790619019334691496037166678254120011807329224992953712747711425965041565974369156456821725529448305215510334099315152378643490158463541866009606572594441171155554717289846400071361853613002467933650278572383537782172606273796211152604408655149927853770208578563401035261199988169351050903195393789317604957014627324525732968610009427791803104671342623252762074833102346188172898318112106331720606597487787385574399890235882324085635539211910049273906706393120520042832025477544552539025628676685415515146913350129442163960272882729579085831289373782279286011742390639588117297986442004152797733675599046815711761031072395505246774510634281068498658349635827215901526963377063769736628558477374626586582771916173879201700752140677285173964438708291667774942764178814736114030357273579344145495492717005504810047528110188148916541475671805153540838614255196393126265467982900401308510188609513820185096047343982232230523019090846142435624913461181930038337183976384309132492872361090280394290978459328760814795848217987975438188326348792501063479379075651621885339062345737173701004801540110715180514677768198780241102784720122935251663425215563828996514870546698289996321187854980993885864068449417181420231075353049190190641787785250839632711199979229424554709523749033341326375041966440484251794377542471920729818795750767824223342547667653892182211251386321662823991606344102461623378755729011289373449161306191533496551859210874344119992161210143750078694009598013939479908546309418170563429284672798613107417316304619513195790229305903224193889563794664357455509485959078412845226208729319769471432350927281313404524238539040390394451882234593382709264050449924700797356761935233770224363414170164913794790760105530240204035047004968262619663985551131461957202764838299105382178663590855531770430541274212325764052094163471939678476952098666128304684491416081023471611690501263469962330771646077477654567148999677331176193642972252282483043246106831270206277834478546608794799414187828027971513900549054193246188648476088844253504437863560930123037532592897386384689331838441634405649701465151096006313273249553443377935387779151700412859846770055422450850342497665014442083123754413067534825248201615632863395355025051703880478046384052630930049323421901014247133689554437118220259019914838697928681327070718936901516196009637417715367720220623056330013717340644666674709762602531868339222298868985573951108153848040850689708182249011311862863944183431627929567402771945827710652324871115388990591498774771521091898033285000698447838413608748208241881248152404422491779473215164046771572366483547411267041541602266481967044377706071901362164974427717710059394047653821096668020663734197350255441966390039418560651067059601830241928989404830971073222006166629730114312429675996509076911650135423048361817600383695440133302009093311311192223619329768529778581172728503374904378842478429343374551038618790034238444667571250822562327679446082908860093760500627558400004851192053458520365369340637927134267402903524049404616546099115106348140809631931656322201520550449044207404668424796400436785614637030113644175690060085276240994879453024164799319205909095123274389821695091366701459827893687937220889708775583498925533753410813633926906494510970669724621224892363544309206736836924361736676598483190082257985384234083295551853650641886181650518377334331483522327802525335993545533407941390026033247930753515284795565945754093984280002046775051033814881594884223638317199784843625189761549717368373658554642310098031780832648566767143759064458549653989415895631977883753488339676291880877711297157939576216289286617920978483463755761039247843876906586604325106516993278266071865821109544311691737857855925433477800908017992308839238901434054762784376012389781578150195541244122133664138318570584335458058398291443036968594216989166792576914611828790098814132803883717787432942041361018902318464741009336344253673821681211657163406010773770217007052324253881901992793065589414997199942095497134168903382457798750885598863714508895237287667344726143817425478724223628598333475264059751540465181252914875595437572767278504719087046336909093569258335360712629727162656128996987432383094664700458801612365144907752958267736566760095218960504444110890603531219510787437279354547894089577628746714898599817877911568995734637039268694973338603610005022069422077559355363243581803233734000884484916505877889121524132628384784453939937862435166080486661015019350165908229712472772208096045365451163214319652199817480816610135017742611864492439528183380865242796276332646050903416395780663782031719533878680701060469781909034485545250107141037268450652716141198859175994949685249291975551565676998288880074740774944006640095115927005306044126315868311228406722937316018451624305335715931118980799471633845035227659792736496664580365631441371933965270966415416636493387001243337448053549917242702328337689141835978829174584436367953092480616774935738623337547723200004000978781160450028071285180903585111567186373840553455353359463591123979482197415405306480465728669201028897076357822002026128991964557076480899356248708024090680196245682280182536577110425997108072312314756904877093465533330988695009281931486666835001690774963109193101096393162878180816459056078311351431884592898381583398194850282085700346788296291281441210443790948602827210782378033169341162788474286047497520096241283257966400886272369541237556695100956429964408915899806566682219370018843200629463336880725168856105113751820734708872665918069499689496488577434423717042295030454812323765748778716492070964673890114113317291752576743505755066977397754398294800722197815080153380774950257973298148621114716014041892294523598377607901851786972590750369609288465977989278040279044854966592760804541275018926406743892240225599275486888419348640530924035785952732713371842458526004096352872078933050583815943461287822608650128823963119254532189827893039069352365258160429324960908034166673434010244758568369119537527591682062685619862045540164003221621572132976733781485645339811847811202164865212766751402192030637004604234657441481562508055526185134189822022145276144491806333652786216070367002574023278530857762483750155486129105341240377861388668209714369068011062175065596698634743342667962795931474165378528258129525510756391079256125240280356461812958563243705336749930871349842603488293848435642471659259113680025482489066612050079533961671956692796238511852054125666599696268749677798141469260132979486291326222613327688974499738787327217822754679126657099490106374788654820183660584722691490686884145187676748026250568904818959483634413682122921388723318748853598444215830500977881395947887614051681943629167849758126021499791185552928454950698322303930540954423661934785785979779541126932968700196667223107338917082968683340441136024408039333379689143528838509810756456633566184574227938426127769372483931660137260164571534173837497241026820669941914921115215987057396500625479884019420682207900787386430208867540472073238982864893915428042338380999188564749161163830795381689182554127059608854669779580186790269798787276580304875228939988814715633372404261530868001062711728333012389650936456870399080224987580280985986429672230020532070894522288848127364109266317219522329679648649535398451485590819267092289897550724006895196526263620742088091391960021266279516539839682909024850215085995546842263538928034544812317820337666009652187392228688839225087766405636554302613425007683053591338234781401713437890303451595571842426751752121672759989093411451757031050714506472996405862709489655799545654097721018824849901016566855092112392290735304397523551276142210292410937308409021479563168202645297402241545224973268121827426248145521774413542905085521211449242858742940966797196072776239016319700767129684251957299949379060421694350198273799118933850498309307675573449012690725886915035391201909106950476168530996678230878908052291942970456088856602572563248597719856708679712477957189921135343106691220550339836670085919670088554892289493619219950724025827054760618752512430439416455143400475811829979676402323902418840148179536099410573027049316995250328961264662632241846021549222188586521223602754198190102705667386191613873922197669163012442910718286716539765275238633814187743221397444474178866053158894069932595210136286421621812485582246538359508118377530909610995468471843245178126313630999811116180991046179147969592030577615242618976641039685255666801887023702439941287006561951542242882329459834136257843985224370922956484193958444265363485513914718554053816710448601095838828148357316283153405617501522344634878497332112505608284058865687040220299105579583416744283101333516848499718513250176273123403451479036469808824074656804503280555270790559463646515224152661180719157074037340202851060449625277159823268590884571915471318848736313867254341693727623107847318774737476752713314864441759129828689625580358548309355841763879886347838770969148258369294759328484864949913850654861325664277396044101867727436902112976511264610827084238305720639750973482921409793982054459810010146156401226261622194456266867730737672879931776100963494530144857969645112844526221588405201271137226862723112533955202738938333583719282638117845917519712718084862337130567719428222016937180258999902405570905738261042049027187910582651905927526833168532067492772085491704853591946822850355204407102972934499748521944388857419709694614176841595799919045607010902809949952854538150443998705969842817319365374409648585958902802333224238784684149865296963182363155363762732121712687693381975396743727509182644796722814469699663612492247487997815052022619285405912303660858622275686314975701053537401245365380181794660694967840305354926556016954478514300374195896730049350241456926799765574631699368349420515303769127070762463059885239390315943590096908674965825412308228670004408118598985281038571949044640735927387371511873525939462431192160607857624617040456460504634453949551690831942603576725916375331674261522261508213220020536706054725768529802315596706062092750042892269214497600669467933168600202096961373288422223199645428262730148459459196959407739597942681150309081768729068789060679364070553598430818888714254500586983086494899480572066469744046500823550314712929890685162754437400656462718472591030507062307530278911028359201128495956951297201504892167943675535380659990815946174511468365853945744942241801705495621587652832819299271949422872345902834694810744105640536305800181523166437318205603387392318685898728297709123991121533599298972095451538286705403126855881712699648600514198286758797845121551027007085696233003928096552932061723702500338682465456670112523347932279639793871809898524161024080688977836371689058610779221458839610746409454970898967629531679694805156751381852247120588850446529141742482803866289631933629404285238776153389119350577210245507305377913292613916468967462758337672330546530919700838179158349666471536402769841497229568196883321814914674611959977221471797992324506956677981372650900777016934437759045781062109171952579005837807195092842328588170733257240582137398366580683145444688515009270952087471148060318027485263339599014580744106461889555816078854401402765724308185916004804156665991890695762865482118126990208381125508139508171196734376257761824791893549936227159954681288896892714973562701130638410946042734893667748152480435757684248539000107448943680233641361025319622633561247044078299491757823691385121364996164270935969759156821001140344812352056652679300213991215701264461792852261341541685715315467956606473996015077328656491645825584146678443233276022512722340356547130788142480416117993136066961845043163498517535665824864078427257941105711145713382594799786917166747903990157153215570232727416799606781223319673603684896128980886089474313629599121123924496864117451498866336781261627014548904064234542731552109745512868506008442849736878373442855229965247923127174992154137255400269002223979902939602533133742103408581307536067428853717452331595529267767857247435342022390315781639738233343382972706151264409127703068458923951151428995222235438501143519301955674399083825173047155175984209664201042152215934274854964313043661073079918620755485647148712209115495190039492455143938042011347772972990923609871303808082476289126099747072518344133106200939831967818650835235440589738500338242746650829376768634726339106114201982659813087788606449035068589647278113747044466913695990078993422825490223854767829487942111407060117043084636192316048822195238224535222314273706918327202414213331440045426676976307412093811799156253378919901050626820151929804365409932034845228725353041614854281395038994034517662984781049201567006174361247186152858014860526905118175009673339415814156444560372891218059319795905395215073751999904313751717906055360351845479478753136373616332535680810492532583622422504795064785193172782596361213399302271217453749912227383601005573170805820950522043202883123925453038465298145277365000500890661505612088882954347687485202680777487209974741219860728901870965722520381513663386225484099774093268500447875087291269828753275226610553017178034461225672029705687917854087508509449822202511728541841599245227470662185324814180060008401360504011025314517405711981795511424997113300083910502697891606648429355978890948579476945059707257665004065194103083367351869433065043502878430001574812515794650721605576569353944988932925395210230798336418088523273824684894042458940828668081727623377604951102796713924562797094563550442731302469848383251001115319433008111181317563040306061381518104443000395120205624825369985565524349147055058955531642269374861490064228371258037778060930507530666839074024547000452847715082423208174912375134585571100060591530534276196338402966890973780397295784729460740366547573073098508868368128470650940542216546668477130634003637221850116118529126404724304217300794867850741788810611630685122983717416646094696713818309044947937001543308511229484659884950077270650284199053141484378356962012114997769108861064972412040908251254355411389121876559325132097878808632210532764698476000167032739069026168497369773095696709660225126328289948450765697650804740932430763761725836946006040478839203662471328468823242390958292985102527108411939737216770895587601861194065885960377195774911599488649747237732301730869277072239937625345499792683928859347546129986809293758151518713411449063639439229194753201408357208320286858066506072766322069959971842210311786387640661801515552433769568180443024527656644482483156596298513177775784575496805983754158116396606370806186957654324149958874768921036381472919632287812226964544200867871741884556608544684520543092079259864001308801306129182697441275606479189786981568745883015001788166146251500804798218815162058530891810568107171383986305033911557729574295437443012025244699402894780350884704651613617466644331581695070449836765252868248666686374870688422877347580269332501134903004696351899483942773315411448867539903612880994150383783353670874458114990650977206319314141721168701552141973184486304593203245486367130736027975564963171401184070245515124189979227253701428298071042196486592326756423223766913651055047352406602818044430603449585245457060078240284214302182995423068910311582853876750735236827265151738062750580753569081458507554199461163779405090555436505489897160633373413890853962286538410449055551484387442190388701327765961879349624692367861851465162297969838534963160389806838693834582655342076813896034208681892411613976423930403307427165580048243368474832906774536778306126872900397197843904752517310074344865163684242092809282178303173763888297948710603676803229816287735632307878190623847092629830736912388048941229394430471178680117397574705937403664699235093445601245170853849686661858414737618657724399689571910105140932960958648281765912844141937613108596898322122549240582591788283069987762966630374829832073286864500771942274076764704241098251266315329065887634874673015877812725497977743443061314336485213133441829540224274556110923593035547156145764708229378741361595579985031375746624265676384843814491156360052237712653440629944150862065158391535711981526189956448978982615136808925092934372982488122649099288931799615124234367670576179021005021634396723781877801147519326803659143879952941446466799427570164406245411798801266475373478644869570946767561213537708684374575051746271071996681066663641395845474103124320351493840869651962291493188226381356759844402253027411991731976525317659393960113792588134651431985852902772696758992652795579096832569711869378694395968670140984444220001424978171315902941495749454185858943174375311353329448285204194616342936550796888773701992357782745779488282361500053022684749946671100583659523919426711578053836641926897128868874182561775049815894249774719890268436002135582087998721758949995863527367532868359709571099902532149318683406641950641730828433810593951765378605668400936893075490769061851526934188764899265807864421225323470373340849652994925215489423563031415112846618359047451447981316255099023199449677007594846976532867028794866508866421422135872444047155747242737643702157376124157543152471045159675439773083341336246976542471920836425463609140525094185866193897996535255042772099877684682062976228235533344543570136369311818052042361396378279480297861497515202929398805998273978702280262879335139282966608671093386086890412268970244041770008448117269088180969503732319046262859665492290494430134701329986971618355222030300326558788505197956077136142115336505562163026066488614223853992106099937375804840809347738504031521266647673570992343173010244777352552893404604943329221110686418153964500180170510171152750403745477709353164103917270951619844661824811875637884429822470385911838139070599668137830499472610235203120827011896388657722089509296273051616639850735177804479104223025131687022222193407215034184846769703371546119849838954066717846387324756313914905192760903123207869918761001352961113790509918639600088842980184790708026602320054222582318636835644798109723031603290132718720196831310974507206609868466822831681429425935910472263405697251983875727168513860001413558440325646824562037571233075731556328499587521029959947818767494729771610288818748688783125783293795142311473179380178931750222877438691595736489295438695700494939631589876057785258737142934147616956409154433702832818696615301843204495701810532427523864454963807298088102377224326905536209473734075538389620458732468332062528593054136913588031344062574377967339365418946808649339212173674546549394801609956734869018711558355774431905974146691455395952447785055945235996569563050614421915555180272192689218070661259948025246486354174852804345387548578365255363261615895973561013943005403764382420858957617423480694056064311940804328666184878922612932339319166280266203254019506630575202209269212866474618733579122246894198221331603620338139970172885104050463434507751083993126281905049688150553836255489660941554902820610050295867178043433253667509851279736432316680414305308733520640037559938766407422458314981063987547217731920120050162343548760661453726328290241525626580699936062062127599303672617466737675893128408783053244789099925693207279590973585984375928685408501359559098553372763705125152149619831666349096677852908012441771691247115461235215735380299271700837313111412305870019408632914118535808851436464243952552379299637560844296768585903176923867611626492028890310718123800879782065349986647247833694446822129696027502938444981097135455639184326101262040648616380721576191506887475813652958710247445964308335060381618856073031730983424280773348990338045409321495330176062526953719965389791632460265265616311525999078120195313334227643769191605253902277386836155849503532875411551739112751158551425739008516182799779816595821216599195521903196460332317167670775004522905181379606012026328660564624310858639743648584802407183462559184458853437155103401078082464976710696774838169999317289539877473433941014815275313282685637521522206587725171844676153155098872486722271818010839509648282228450097619793541595116855877599560115979595999910996899904508965702345449752793927136567776510899577305541001499321136495943780303039720761804827788247562092629299279711079887080568193790165206767051957213066331836117775091161369373066621368350978512047747164384677838088684688707388351037166092689997525300577549109176317766740003642013119787585630853608491846863688194701231162996266796464564548798521036588904526278219697184100898480893123379625727786570252100621784944321090359463283421422060382380052208817450800680140057146485214714800774193635802576628370557527907202285080120817155108845411560202837413795551634149467418043848885455652185581881463301683052347834790585691470097844591206651348190036159839270699952709518139742635695595045292555881695133836376300879620926238204903185907108406935777546448386592753953841748375120764307796716398949265273325931526785420139761767105278062155028360268557452642950371028268375825516366955500966045510863643609328857881312023553999076458328556440231541094965187790868636214147508045773316107512482325218230216819636343000374887704131839804309048536100866981819991382986940322211552442311838141917650171360690736225644578887548544762965046235886089180170734390789298448901345377983263042499340726565944102201214633368149830399531669675799480480280392518861645063293009284218812398068140577133930312086770207849292465014700159900262229042973673816737928091634875979791295457900040661529330299700942162726674050144939791725727210280903602129774261063656003738908503314758350677682737042789837378299037272228022751859764577433395859435968572918812215470536872433950432174955964010449812611005968550538606334043287249961354681280710045781211446233410778709088080995228379465087532131075317146021049128086099062768453245346916578348500937239151916130471269876204673617195567372508279372744696525132084346711682305549147399262201015114001616531710478533102313438014963942813889401218184029507372289835548941282641228042755292021553775904914065549799358840761372132258011230331960548936618524335059284729770134292245297627098492799893225522034132131903664364075166675265723151451371164538559227467354704593112720204376032189060663037623604041994564027297266749697942846627830825826135206986361105182575581618123151474094417518330087690870503263331231685862747380962523816270446995286401521377086429222617130091270746601474009330623866766280593276067791363353938658214356446176100480146698334616563219721691712536903097308425465172019968229693510893174242098324963092345165919518993371708192011389866661815056841702005438629150879809583914263548340172095593021635718139290062619985906282638635656668526659877119061496431984473421598279709294206816844443919274780431474874313341687015680286077217350946884247624845345481762101453842578698696847259068245077818347172654624564570670523559943799001042813403985726332305115638275740798264463465869039455399956173993429163158096363730256428849551022626176894337965042545494410804965938992881275262580086323325956122456918445467278661852764234185862628151759491880641291151628494129600177054874256116876536250870007560127122732877600636549729133862292511775099049325963120190762741629016526231390098667122442549819935759576780731339415816947094706966696267368704957278166427646379474275262978906814650805067162244474870314967470087467670195565213708465180908615926425164067211058860133379759907721062486918440926334749203930685233146838977726858214903919543953028490726161707200444064594107551111194434009485919452288438758756035587020917253252074931526366460903032325340101645400232721965945482822380781711128207445908827464712446790189338758624281544423144252547630022001096524685005150356568115855141972129600550830041334139063866720580053382805599697387965437213574805605184270910978417108276971016679717944222817797767058641847225619536873365864558526667698735726349285525019464494059197722498109383979722361197652365868924961119522510984445058889044305225409769552089841744811361581454067127844060449162907949031588670440134998177664358298700335895154734715476865310832968953905282682255831605063073549285808304677866715436508492640408649823004696699998758746679072149594006771809133645744488369161438987603771698074607893122773119296357514724081019799386110130387778274435715406426002310192632752759417020118433896207397603482534637707463861929983892973709647119841765545742957666913587112782315089758241646413768913601838856919913017796318675483232737239556500636638667832519149123787681496771018697131145477672950329695549297078370724443329537438133035209274705002161050619321484450883891419592358833459655602031629648437368776158330832326570982257315327055214256510459744154725867508902652647783556915114799006224670670497603081114233698755335281718891697743163736403675112459059454011001057757579527682385936981001376561863743925735915149631236927269494219400917323974597122072523954806983016633737852213793088820892397223255778452191622207102707686774807565623836387316342570226916546394763115673245703240576576096811925478962559136686750170368488346652024226625579652653157002769443026695814277906163759210880046082317795002967034855371722487569770525606314226388615719045185912073429937584163379744580223215702537746257579727726344528795529483626566563793422170910144226677236884793650798141311291721588416550192364326730401692989896581931760270737145724369256384113861518489159560996665642960067978351916882011363150321397821702812984746674445905037585185848534163007628058361573932281871782718737235764155775294210753035652847684177105112308439644510471160825859232671083665751513644957089534537935077098016869972650014750246048122825009731056829209158016346528206176012283682699145152395537176019511729004168809657058219521288753111904807106435829768885269391809851821254371604231539441720625846298323460479860447723318956257163313839164892756083298362869849520207098673443498395593449806783731138629727946318415126278846196410408462707825019326988222881357548864569209837950243108975061734380422723968677461161028185376734811986708025103074864094071894607492189773398558130676588532439549588823839979822364440427351427262212637171625455119815925592579884740118843224728463543653232836356060042091337936849246486676734152117661361228730317877180103563493567003430731235489843810464646135680959752155978283367456817599875670019725390656605407902902800862639784885601261164649503067429509778595923703899964105131110106901276329968992457871552204400520784786434698602854683479533399565030650985466059530475122267815825764715379825017501068809335391868719076006749702852874148057349809535108932102671259842348809407655916547127987899775789120847240049529059432621684418483798179375945908762623847567009282387759577827818866099557785454076831903679286089629819176459434145185095872538459267326725028886388050164293729025214121763445078918633476882123667566948644972397870552439406142463492632860463719173841969900208922017843680727214975291976927258760805034050056332078318197291676435125661768717094626785077110402318622423007978515725093815185090887842079396230873596909803829934865436821703690332370864394695451531612647276798648766006481835620843412782448419063379545409640586708165396886957624106347753327936122904149835389983624563251526992694222384235045851879376455835912820044098110731756518156760600832834454972977585547054726172485368568778272394463026530544571445266624263208488495986650695032387924164556856089129531504574575394475702245450392240911382719440974022402494044152779638924476282776510942263310582871271890815250705320558440296175907842685066964981049127982633747164777905655725309554321198711395327554868351121160309922326956327226824580262358902451031325755342950638696306784054474137661728939857774456631528806053904916509445459075240968350105239624484987099667514129999719218036863068880430030233130533686060621522431829045464735967299239970912598271675376713752961593653020469523909631992274863875604579114618516269567560986388334483433407362109370856602139615794945672275057226261766171171590656002607438625611626348415192494369620762051951246377750154440160370145644835317038532946136638701242239345040027789967504180335912533745510401202486686833359656614127412166040129765555467703291000898434936405475829964378623933938604974103531558792932508394479875200639474603896140059823145439807556263498890748078853660245336243254946969863415024050185362381017974016880869435529603603203730815903818557783279110387086822150233305579215657766268999758390505989978846258244379109235267170662883771990983852006444638502265584536085348484817321475185219048375631807633033006983602933151530886962944967699196093347038146452293270522218195086768798557937320350179387886131718688407931872793249117930186707423662321826315742301581381528612045257422930543111389199018813139618317420485579314082853148869325977174919972980857532443661372036070288566307906921357894707651751983568865170227893792591658963258064081043119380332768988476009956958798199591861688946676029802108936873848234963503075273458356357838333097252910078797118861295184995569838248672851449680653897676115605501192387419628817887257357356719943110131390455386205387027768956586712346409703896786340622530506111995194804054118479965338420299746456473506617509910453573487379604170229074989019712196522243448985805854707446251351794317054790722689694507011255162597889121277386159505896635571716094237007305313725107431446583093812190256401861551082703836192377350331751079284769162066246379272736230055384592120789404847831789611559104516307303277153888702032950456952408744545307660236368519940079162451534492251043617443911744584907974435586718214534977196841631263609052853740775399849151963437370644455896416894621879658523500977684931666320787489960368470928409851881421337970682669704710697786130835638741201383871705869189448865145713310462645738699311822279657059589338596482443916963564758816305738386855970333329018944513896815655891039586442748357838474341917812621631063987377892025343187525122047964066733961970803467361848030774501262011550541390071465838891029623412992140029755353431353945937514172828344026915684678422134483616767496615480870159316293973117885623332991681311268404331484928557391834497606182140622805411906692029726684915202174333808190355748134805981417170329124158760524945982398790422755416813800563416917575327673015447437151350745760069677921434342598062756730921994494241094910224140598150507593666855652348808880166264817326605596440198817399129478538020830880043049964373333601965807919715579770133655444902225162013284657387261212632971242596655286233189006647552434514470508520752767332452826144098307169936016295930199165528327384514955929402533646322402817285350507713991169688350622016400038218313437092945383880244558434623187548382261279443776033725877710163809019400660996615353894293477071269711549571292021000000447089656563744962770093019576813621848902339977363098294553608293854099416016046761118104696964504844600069036944970527035189827536294118969905770085771865856907453355436904041468994095179038234790410204989355802885748302692921575996917065205869879847865314254667836076392477211190907712005638054123775332775075957890591615611530665631742581736339095900282262354521024630415478122933338320877127103217697988711317100057895045587874536530735807356787797464497369239369604145931897340193558822650835705300292587392846623107623224035096197411900933403153539105268502415872496898472920635483715446823985732116298291714827923601288206029144401804946541014726572064870089823232534158090085987663880335976867654340187202477694570302049078589710522628948343069193633791866626182533429055387262519002821210709153086338829898564241375348348605666053817905477441303434923240989873952158844781046171101904222401866789009476881731419144130225099988564885315350437632268066008070767887592587542601206216503247242336646622443472997266673318824036463853349158011804913664923045728641854884117320065441929049756333036661678142596235097568995131231770167451932111657893027836663600631776895927085320822068242335718733889410021761585460130804121533097527507245537060595217124678772905511987543591586819578289813261582525800641451916974415090087759461002674954932946280646594587515386306806526944811321914904783876130060653968218993270223047739401002867030727916657844125998642913066681199784540289094490240721462585995357622665860661417116095136603844033514210994003394759541404697463106035446374576172459129828716026374431510332462595994671766487057226960134965675669500783901307991645395165882711772656112656100259680033597136009806752785241356127351890080296988768098935182656089049454487248368884121602262705686889548030813883711543504006985534364289854218555723876088237019575491788610115366200223804372989361701671134871887434886448430418278563129180424538446486391571981954227282901327940826837979777791156921284171951667102330397431546980238985381349648922472365414860813748889508502066655224554263289134388389653641141753295595959872606224968347351749969733877713180619060993951821478872809913533166021294741424076704912000691448092114946671048405160501172254259907050570653460963997495562828117474775881512062327614367666493899860456394251658802030565610693518889014218267105443663868456350902294923797931175873564447965079704842849876047073402389380421354936197522716786297273551060174530922371362718854226981356355295099526486260716989491937774482959510114323977377503112153438553954749125775120757018562890953798489255621466855638888891622855725137378331412670697246155548662546676680173105422773206635159151237607505711970079444258204687667183585542980245472492552426355780959651420702938802258497732686412951884501746625086907512521231545959758170839269077214957151162063616795137371494834206657138985191553842381414534524269122484476067731240850610949599213135180556175132579179235447218159089773325109176261129443917009644732295253229568372911983376037731717485833808833737169655220949420244180335843843327814497730303763489709703516637015916944924526975274230972494039666121310296190168640827266743099886309164359251935107245866849560610818267401256143458627628759445887814581996969584571849203088017197043281197771092009285428099477206675445554423553661335378813133845578225775168329431088950781198078032017541578810366996430815064085230311187070580825803262847612155264179546492702768437275160818426581789105036932050650066486608977842883477956539284564438537593994791624722667167265279741044818175226957860488807554619414677005056526459381159533532047963169683043073004647169678291082112201247298059481523304149215542819101616486376826173797548792640833619687872634660022504446716085506990473614771964299193513023755972797611180256465717291217128223719134822854801917698193140558719183598568435748452655077595919523919550041082205176476437833042105687298943263045742354714308606030365995380415322877866583264681490385247283716239846301847793750052419767913125708861489895767368121440100455103811700283161978186716267674879527687279052194051826775026535971066336387576947220350555483708571758697496316542059296975095325500162727222946436788646929502915153667543990904946822643329426794505452500565341312965195558387437852702386213097123979751093700770583475419274828392430956855822285369667437143249750106654519163305709623299507904729283185024211966830316310280143402606221812335162540101193890546112072438536801541668782004989624719624722905496047649870467688739717366367832503292187336987517236021257395474002995835341361866422312567603786166450718537557901727323310224812483068356479796084954400617564823810550962026272493932968581886184346243292270485658424686697752646410336536485645535451292397178271012152151085330698124781743131348706719790573000137977876345011969635523335081407604065455323854280517856541652332531513067877804236747429431349631465670287630232172185082084395654333098957102602654068129604557256953130309689591849702913350055990641952917660246117748968968308882178079485841793351998806163739116573049791803548612969775568977963120727685647805799615089570888016723850887653594451524220456446535039695360178359524647937603256661074195605592335000304319049425034079605024806705135255124860561279696247457993133058388582271462285935985074606149823341621457619606170873506715740456923362172493372108619407381859603247094464229483364142762003322515251447917246360686989106027354195575791219212069437618968818810454797867524531191786290888894602219667242114800080697676564709235235503441679922128029153913940412422891645079535093355238179414357672843734888840308637333594184925867217774914891380113466357984836631912173435895027035300750941578527020211715426014615422427072511902904184555476304085819779275299300350041034552274462700194760600750597225284476221040196029073461436072665075249565108420365457698165803224941977980616752695838518527630704273876280974319030754634081229438325066375880287903933935480615107155353421320325676882940481194719204437371353475376252501553551554498028003869211576143503400067305526479636488602497738885690606427214291764712456298821606699625339550494707682467284471423833190283541182735395014994092782104509637103938471939626739471894220454062276149187684786822645495457830934815281798378539961393584800618122507210573351390315039665686633477214091886408169407554349011949677130202443837147481576665263671495000589257300034836586213198165676829718627120852147468022880482371382746086092693967461962446218208657956489401556097167300134399004757237046700561977065472507757453126306238574390560108125245583417137497414055103365836911598350237678372006763166776594529197692090983099127713585539860968008801957258763082747063647933218644556395032484082345684531661424958719844291750309439624549912122086670579468799907879432866450081271822836802867585103022265276397948020962133012812587118341908793208261516331096272582624406052576527890370061046079478459905759177312528455640803400015985492483730761497085614070799642210369060946464332195843635960398962673281593091549766550829460431930309387266944655222872107598728687225301655925344266275452597553141733435867490051437859577938117502340530982114645117910516861940790321816956337018001784282916205397900689169292327181098136664277383813073469255016370468526486122698605363804190399355669661816510819779298107491952923100841645637088651219501805401842752989139727089064344235715287707991290042552525989108229231002279747085703192850174918157085126123167680662748178683070021744088780428704520855607630954348996649510085816346457483573634298807476648087821297172659969058547349407552201583677948318652517899967782205693009146820362534334647525569794727599502863247105285039021712347389964339911231769360508567751190768801723810364149089490368635489743680147615537418936679011608522453053533938976197891433593202638886960302311931685686122601136717917871785112388028510163614683647850981445620131183826011650893569236842433545643631572763406373047958882956609980268821923301585208961337496225815075345655465500935857650315826985416391210199467371613878338780015873268075788896857963113100066570384930817098978288046524137968933335514007773230566072290893525912577039653525428571239428551083570695061523420394605267139159455900307812598052273588053037059173573606760779900279865880074548129413185758621445335115504442253748477185172956593485752337880192296159854834995343452898367188390947076366136786408851282316845336848581146669190502011268585155869640358100586662434112563905062808465330616873424494455443832943427907044542516840965737775433568777826093608376715756479854098337861204729485001858248817007550279144226812332855247032419236364653539691848407416850719347910774677140394424071952474253349743321488501465976163944841586278371969498302084861396309481552925294191873343074207645723899066584482801203822886035146284746121602007715690384518741492077043760246735037551809818653337339287745132575626269594075274731159457770059671494556134173288833541352095420586702166055627395219840669620710148170020942115143278216382664699691204403004039506702672984423111621898999697993985206292495028767291925485687901545345302558505128624036840519787126910460198121663209148943054774597555592618309317946893335267257943830538810063731220310806382110142697798962617407919770052755718293318660166990843678752168189651001513688712334661667589956780171311412434521269739466698680436000422748645492607931931422149339843528280582335622811393050456878272080258568054895768314628489816398785011919001431967485183285847115208177843630631523070309342733086700695584325623690636972648846904943894226964047262646545035458996787092236883694852533799420048133597728845349188778174402152350444594144746756402937926186283833155989168531150894192104129682062257102581879204348053028853997130756125460398255790526606221473237413917977718286331169552021237593948380567734959267649481363311942760518809388657743011498441535739640834192631524785927267787354605422758985765968621276150727980008942409598225958567355306838937394825624769469050504912959988054506479983692948532648806577598001544095453357656110987283985186050772277183815733333889282031456087260937647411909961442977982188893003851247712118137421433884362546589190119858324286108473444669358315149615328808347630912330143119679760815142749006137313847150889353911634826940834193901837300690447949945947410410308763334157924550116259634517052476154576742638554953909968004383561169400737009972796723731543125933903600809219592300493624802975477121519155579624538804522997828191302795172065606579042674152584414717471397162496253082312851848651063250322402883035209637699678200526282669917807591456822072022657703083692498739288061399199843737830345921907702769300546363489023552826494507707176418461510436910806635293762892557317372130831808898672813365859834484459354920274665094751801122621856970047940577085774649052697246233238585959455237561352277556870860857338069320196046210522590391081170171926280777361851671366166524996531266497389226189189443827839793319204708713274946784690067451356168669999451776926488851812941941503735294949493028459279132072448938299651834529300639118474972284644717014065963392436585648333465497365718149880813686719298685457642605104523168917684478925306364744308022228812980038579135644878173186208438285964019565325967232280752412194667684774023385986531162999820298076596442023524770018464057099451523008892905745987497411510540661668959674401147792422586318641413150229619487990301231182839314988700222494166746894634847930038764500563656876659069209429241561770176424273388589914479039928914558643180514743311552475851958221185927672731641967917726774898427484423517059032001341806828858492919123141434646551617494115650424528631858150228773857078768572182548965703117728509967269191085439608551706294253555624632207678566334991369090204201260008765901988079302382284136220146546128248615351807261795328067446005071375641879110733285449942327637624273752405463632914914107685439676902728327299782379877728060244483659546391412313075194660883069935143660539658085223792934081977839650910889063338226736705683508254261377686759424676252458394012691807899672203588271458337846385929042268168896891873334321015279155856800551342436902565721513189409096689097461318642889218266149986827360881819496712996239774532674013035558906635751982242713682760120845547874750878464672125753264044860078920909775405974346569868468006180265958712382005732762384438307312140513407385611443849085497893874521924150833196353360439908306315257659636841927745690110607242472736460902725158778613880833534002015683218988232385348568562321200454753985936103470403409313323525626042151015879255690678304785282800415265206501153194362663714616914484036920085463029833506137362537966778974623875431677333582084113129014555670850356135177903045201512878739837260194674204899346782702992833658070215164634087886459437216437029952219423528970150894762566153465294522808234965746873584362739357104858372910260059243362642449528582227927112527386508224042431708850361159874443590157317002725247028886465267546476415689580980364117430061765922232128901994536841528042110641864997281193333669467855390930784075814423410869772022189150714827527329264112485648024766332479222840438388467212620997481873359662121635912859405361357016708534583571439763253572085135185481600279626504960830717451553443185311967527929973219636517165701015042585160597558142879299429484302219338597527848247024066881293839706661030737668215592604080386117861407942999677391702289990982885627897027304289729103123359543422271437562143348424998941822001862043898320930709203325340026244481286112075653953889182863454426117538678871428965434284451864841334434468189222015343610873870335477541717232745001681840143138465653658558467740697713042358644921612489700323660515573862034010660415877371357588601077220599926093955412276404134111986998269674131622904151433090281756496879257523183961009158177692755402710539923212942699619302570044588379051715183317608786135012447159796486835754822580146996770851162811069679760502997847120356016104619342562155226039060384687001835478631787960756658982280231431024358466313390853709279198791712229181549402955758856539622458002136817488688508650985592429911451282040865498974404207289878424805294103286171379056608850370454934558405261682613285653174562581011274135319138839856280367203466480771764942890812394445915433497448154211319816978354592453144372873018978573492581858388883832471562585109995981798113608551861071427306735150381066897370439369795242189216334309118360893354143911317955679016264551644995521755749344049990889256812472097668280606927762656836397188156407968902666955628944565086768784196738488634788420409000430732052228091529703484053886539856651772186162578704873580988405876819375420587670277411684573012534214457041254252507341323936103591050772250861015230702615002977962949351912898907228342081744179964592674379514276041414819556255873005160210996744033980973978420786720726878841117855810798051689374430073588048212855228860505577031108450891202209428112708916488441889551095648998800001800459133534177430388118405149315552022207980786682812402474258664017673776502736810275933488678087090869023258748995069552680203478765049641917328036361854392969186641051564555612497884324300854854811886818046396883294924217185967878985203562564876032228243993811408225799809243089943525065008368532241651995792943274726692296232815077353842866903142213775306990326024122231471302742920243004896900561050360546650657842511995062947496528101892764445366936380013633293707514412254718082441067149954216909368116844133858535092860611094359136288628838469207332527477984529202267688822339879224470734598991539533163673092255391035474809514575273446784695875285397140822100328556372201703440037539501172622040300348460277419662481148637790619223355257264015134601968667655229883953624701205559541933578186100299332320892370775398358869352787073557256847314946503669859877238560996975975107619461225812409761404809187643957662722752603654676997726560752391305509060372648899116999121870900383052666913011369997482645274956449792805886082495849672170826922253036867762930082816985665493428205517985308509223437806068541450876997239767536559584088337969991312845698627878204954741428977701660542102471062215918486458470987012218393977883052261917307422816418297833710510567823955432627151021626695768961379651222830123338033446620364500791274448806820895056588050173344917011106367957630868770606484915595221531921353265113294947099836048491749096426199817863655499575894014644041435711120444000297336775125176350791414844777082807209267850461859896751163984858950380566778979922119033275555690352293192292101368487121523329484981996789520337651867938164929557995351369440258319038250542733091545251916000033423274726050410113692430395181885519804293924739233581091627390679351003417554815288109259267680522863896097057933858418869164543706463861961363804606064636993892367283162564697955491249659978226303964689857101274556477620957949516159541230668505528666930663919061176233015593349903702190844168306599549200927918895826076860600840493719854063418667460110228519571268984396693811389319835566552428750932304271402746680905963779807856809752416584867217163980218757850538925686828408906053306730327717629861117832119444863451750375498208407513340305378135124538201448842921004785852649301136180332259764229726684098129083735667451111958256565788454599199650183374400394912366015646448087394496056214703798470998900938308056855995644233267998662946478991325787057136045105085267047525942123488616332368881738079890597395332049375597499304319476382674346024245649847528681259668192644196543201401492044594301987660668652894855342905717021439685079257689714792938102566306694665270458395922810529242293493760115023731584439522398498112064756790095020206403013523244064366717606838036538208052947844794441328251701503870319150785427696206406520985791420429911227302853769822320803702820098193977845110217337905355364817913802051275396373309797178630214073023090579043772096110580941844576229923633357664189914936652117468571510325016007897084976164432150397867695995116604163417274505056605199936661223172151580755409741333554093443588314232213155228628976013770680965945796453119646686799278319422327153732952336383190443768438609141350300971785767519307813848316909912415872482476817567382221176752379864162974044739987787984005213377992431322986325908752332998928288476254197322172824983750731163927334691954287187768185489554520638633791909596499183066771007573214113982417315429878082470603764546278607134908293211220637936183751287560321649000269043925010593079974823434129914424744778013606418353468101393609491944735227812781636709967812629111453872802911598920632968352652418986495290912534859743267426594780987114465448264543650386196513745693708812039013001359514952498421574873085911555838648183968805543609298083140557419500291432772386318778322892058670110158247676109907657909241452500398960336845076829626512907724432114936313173539118596875668746761664591921355277441362942008092182830584264932393321729434407459943372047809438781185920250898337611094436539389246844211908413842291365965447362888246776400930970925108037724194415088812632677488937467448947505975418226658884279660195390742070722176530975902378862402171962467423302944796333038185027032646356768829484423011174819368160407759483253787350352161416308005714071493370214313734389497246262421756078017370286015871489761116547567211401036548173372299236607725424999547845688502012921834037600203426824614082667563107029828525521448258807421664779816928004201885467503338493268361510030412776497974417241506440407177521032747988276269109985290426530067045179071834996704580566706052346677984345256574527410001818487751069689684014575585392126733137780916550332957534811785802292335609864693249007959449616178278345779893061410140807978404715142359121631967031464284995027639325418737616765504275535559008448535492950178894012843416609412075201672704962506320205790622476975790052581636527999986661416945262957681289252650280855662759430902714573110013446304149186002795282991466128642854606605052725533865309475802253845957116907106500614303984842674168564393076189920577308423299494471816165705118736286543386526411329336516147591816736034834668712575136880123841633738166121163476407775296660202367602307620984286629265013448161129121396616813638592891115350397181468876279348270989070253658594741732028782937531817369344808860717912049868073212494018982981015021161854431962582349720051768209594409282708497500030809728574009464370119401950487812664121038027995231731019786563565839714606092949353974300542220634925266575430098251762775761886888400227540791775686989951440962880206306034252116907134244411125701537218822697990134659446934749649102024581598246042587973758047591874774256908334223283014887724201848540718264323879242585946504927613451320939203207336534996897475327085687450821609888685146966455204623655482019081495078687952229556308647869465832557861287685178896997568914407823440742269663801112257107280674317903212871325075256682526635435491293362067233143564587334874736691027074736761087271453003480822796338533090951486249717799463070271531594288326847010100766440583748197864531156006840220557928094115419434432816182065787127487648130331547136413425423010006780378547755674761408573432040318387694729700647758832534809066650426923019218875981404666375451769283190145005869621180363113397819050383578707111415465826313333657072114442604506977252277196877872892302462018227211418025088239897357072210357553265243060063564542910461224998065930460909385440772004317882983965328653938109577744998843979369376696425057924215763609880563648044678647644826971485508997148074259906132880388179092847048812222142367132189249233639529057496276764149191486972969569147813701797905952369816538980828785429063644047129046896815105307340735220144637335097481473410780328573553352079582413837208657943998110311204774277988626587315733924004183002476401019062551091268867333704690294760790223377786180925603902531313934601736078496231776593385577255053402506135972924146588151687373267113833690960260611581533845734557097299794914129580045345635045252447923618532237098515732236067862231552354817230791458834717260931099027520815777483191311645355248623086936339729863835525059051100541497826563835100438877388430958334887698596846216948749948213406531956317968560188449995252496044564173888997356966704385721880256675271322972147750623701675385149098673423166537779497498403026185225981301429196833502484596362062912288766559797519806593973675542969138721960461252020605950701518444275537683724607111915625333146267337403759015334004875016322939605839918102178007246125923927578764404242676368249733855959617468140187059994951767736043830980941895872770616896162284263609372274660417517253095558482923380672139471247159146218645217112382442176274768862819203302710306227223133154005331741042735732895534953191785592837099785665074818706287377345279338929672366288805056447789597636320804345805377503442322145302892977613600144117756838225576233123961633989200903714584672057570369811488794733564306867097779520656233057076130981274424971532604763656824171218750566276504464033039087613219664064826214998846633591911966604064928522148649009046322684838387292099867412893381373103374762975152365506574577663821752429934767321576627091923202947360856766853127775966603957042008622633502146851487788378145802804735382171236584638482676158764266618388670315926173101661380821513651674929702527126088840962922434869866468693024104168904269290206040808754383372421348527877169221115577426255958837735132911229948926912008800343050131443928627344142240721444667498306143980141091806157135551684867166126515318787229582534286784402903997077654592100627377175740649838760910542659282878077392927747727508588413773897211865626539944380788742220217265429554049983172815907018931898835103301640552396602151689627428419107639887438222863218779980112433146470943749045447376754837648919031960613973984435011375905993395452671237731648212116541687318080249995425669374998944685729401291288519836294769960613954746115234239978891867954034052520717259738846306058982306217551806212378055040695624060053889684083153136640215862213146676405971587199046466975640254015993183767477566275722490038857075880427333705833254138368366837367901319823603981349363065531982678207286173695712085372440962255641013281701815732883548156365835319950670881903107929310454341205300892301876088453054301842863041930582473454439558841827740342337861738342714156217899958181832940085680107223162420259591599426248752236658925204857678454122215154108450735589673182385972693671017576204826053831220842002892434400485533064604880464353696346140905471377388413672536759586509229920853409168719544275609985916776310568659868806005382629587753058578713942730378439149048096423968658941790173821466000248668081919500791548756263091555731247782832898155463397255468389175093248099976577191161215441026760376167175013463416576206547472833466541488014196148352704959496851037947397466116634084053909403310204390189709110371371680939744547498998207310991910849892380870874836037847464555335195864499396497460959231651723492737109506880244496476138023964449066873268831028033419880899548586724121613480551578365525868025469184702895302824905957937229097823638463870548434230692388022932033416010376453082813874322093955677807919357208358705963154474639394849762066727233916425272087711431058256101475171571527324592147287800291830358105813936506271301545014120249201037481828425226050360906106705477457467469886878481842970610199388408087844555062747797745997028982093515251908654084353492671171893671065641362829078825269110463047580686613245377420756991975240358686635730676114523919423762149728776532563349802264435931733188784880479734622429527838565049191907711572814249553485780727873353755970635384436622946560686536330059646196505072684667168169937460199457247415075754415788492236447379834571837155412012038166485189606612910944875920033982976516450406708677941659144332717410743586581018801213850443039573139893611711532623261121677864979000276634542545770354173979456181288505399284207154098193027127291504887564444479189746067584788167558225893550765244783167298847479234360667088702154917387017305290921000727221829115954148118590450059883868433209181183271767428297131866761958674151046851071808697517661454131725783663965243557498922854819282286987746525614790828477292876412538490151158145215708935246781043255753552224631250929216290329928180098813889572522879129182075631360508288178604066757744387513724131729458845515851852535054605063911770237125089531368065884898042500641438929953369019570959593750625666090178151132153885379622200252989737885131210458840963512969832326919276858505321845781313248574315319343806367927454252089064834664516735327696638734945818746307662247477959209289149382337520218695898862336361857277932652757082367220373348779399612327282662110409456501925493961305061574096748053763680733507757609054019422921520888832497586516682629679407090726960163434427767190965858311921343536438674410577323632626425540064417413239263150109448071715588352978526524610750830231559239901630152115427890220943798035013345949213437385068876194834778528383377245591348683032816480442627945493451151427822758750844573488081330247655136810417066783393496546364610446458970377589676829725226655645581788176560120113753655826691613732149137312806134298085490446073700098824046089276213144191975108890352590747455690128567369992618230573720144719780820712158528689551674701808453640941760016489100342321007946405477339838944584967830060747261913094854833061848215392625478874987026945288358195736704415875072819943820010734117591709217936539646029558153007363110754976342185228980186578313266324381715161958935101071428045612803474435358520228748718842199150332294323007053010283706984655599404291398114798272783721780785923115703952840676987326028711438920163835213313897325067980573683507025705163829564587100015017233064544251983771366713720945107234183641830278176886587533168152789511140985993099356858142294551909472024260268594546747045737270407431351857649649227043079147879336915933239470017041122900840214717538295603964402000677172793671660801921473764608621959602046586308593635417710035894761385435917751500659124690971626171422284312193336387924800493452241720371725412042227370152374927536728245092787890682360904490426044838579344737286467684223927174987401375965297770132951167742336537351668901020348967917067073461762748983748394981777363589013113789301127215221729547815908026973101480715469993980083257337475140797322570503818690821182966725783971804825676980676353663669883641312649412124334747700217048978344375544402616222074092009561101529139466782078404816603771480647868848949417979135328040122907136292158976770422451413511057097928888006521488868719600460518848760219363389353176364156930056593175963992570848840581718465749700599510631203684037921036046998370271749306613319138982740639277106413269775996448721371709022826450166987980209922327203150948910265087072232621839509788885347651523910255681073429961058026458902904920358253303046783305666028639638124089972393887195021459175835815827460242294893002537447625663046006124301977236619892641272726592170979048860514915228735304297449519091597882807701615094530363738443813240567883906306004552348038994149741247951033755880899977665332650108973899938142276805341725824025045988069176948586331443714291139932733436803908727155337306486529268037806112597692688531368225251598438857401606767076090805024022322359407284178919367381699744588185392969873965124808040822969980940894056262909310571010031988237840354187272601988801029705598175460199031988008129498058438619719100127779866322870787779814730083516144243368603680191639567650704887443278904317186598779412164925210515742758073720770262553806087082358306331070562262885382553592780778800890383697700376802624976725422045751401119049930064909606656607180686703326715797600745325149345874692723908077932557951984928417388250592313376496148883079867401547587100212219854310351175483398432191363364820236734086768211378231736928291773435641161436948755239519894591760373124947825546925062611661263518025667042591929086105920256268827612895193364046123988320617826675006932023610547728188140999975255981105969818437972811209426070147972376367744918024722096813297245861456754640911275305042657862163130968697311120855754947281531810941260957090265704568619603426321162214225114354493568506587061106951535934529237808007642875961564105846205614082655420851813520812336748443805520128407086340551898278883248808824941657999847597366363204589926550983498196931632893467319373784526395509218931119210766165513046194288569372825540251160612924425260949226416483516227689815590386300813268860150276221395895434620321310841244518010385037997843487241679956684475695916954228843063367496096103155745135876071382484673432042529950229384714139802946506578778230413773067106707649302503096235893889710204730308186104445889061304194466712372380910494753392262081179131746057002369092722870873853280005483459477020893250857497778164920503510139422850300585587125050182734342483585243774921183183072851369800502918529267509657104324393449889466726434176703117517534253226749451690679037673681096147519170911610579050104013570845621481740872929711625401604516043739793252282171067947629989663979741070582202229189071483978345660364215256597357896392669376937001672726345908075547176444549508511185406246853640342803189479550011375252204025821408594234483771500225172069263027801742421920369990553887943695963893317032411692740226615605459679775735419950039508838985311556153157161361962122961853001752946448791106229638632576577473009990578043249747321950736362873571460309655716853080907620238811729237040812774199353123528483668811057084204911321874127534920745283032458631594284274325550163102073125135551038160787814590965378518208022488533663918665937770451747835158052220849751688336513959639915333407490434474052722886840461745919640855001343794548171603903485764907900947460106404889536837852207344730612692856164962568824839840451557913636102720915375477512480682542026625877593890745175453888643780864492465646620706768978380849569146058823413967996388379559650912441582227436548014919624505921515837369995370537841271082828476090471183480993246403679342477264169379518810105388727449058811933975403567369302315922007236507994923022592097009349278509072511842342231485239339358153043557596279468766195254913867714593334558534651695113986916595945835026596060678784005840657558473154297111684232417428397993545704241142777323784147562924117113529689816255703822899411353948155412819893900666165176994397628188614586815216523217063483582379691326439228772487870971429362463596289072130966028784031032354661554390132526216662829799924928586551481319465591086043219030359207044502422484017904114708329034660000112191404532125399617306585884152958792692884926268318497007027498525121236612098510704098565580965589412606567268636685500072447187138323249565008900914685188563799221842675433806167359857955043438241431635569980258563491726537469663919415116603494887205428742446274499127027680489225092762998754012407814325753730016593364968989504118963315745213317079442997777207372676329354841851971198355954148468033163700560435335137245952737856458085529259695998596758764642449513103701392179283024307302803107755515024485038423782876435917249915423795854258230595338038519323946468536569207537130607452876028948494105341259155781750811172974467656451732218407568114524399782427999604278383577283677781963124197595793358155055485159364628594128037211710324789668513945949121982334798855821261846396244641686513611430995994424993982989959620641108096143130589443570790525783611942762781319549371755690968615469503024476164802284685083462034853381695662045763779955705936525790278498046208128493523692055152488744149122407811260725677602360806153733261084452219689869440003810911925187188455780590542010851283122357766679675559613794367051376736828203764084442807259297240953973645406634430281295214299149470075244213268613623159177358055050696432800183505906646481191182315881191343399241122208947574720838169517240626706617603394927784302350231224867404542401395344038621450220368238069302297294908875697997889519428460704882184315017368406729835637151765701269437705845639316298495628909186787913848730265325861723110923277365315903887270751208110176754175757212918242442387212734857324119190449679500568890691674812178475249675656579060486554347124917581436702703835752895034948265060285289085584723765493561558305309579966673740326758994492065717864087022910612547937249813350516118165789709584341879702451593905969473784388473503658527984722292907676962431275645053378241569366646130501180507802286924976220813735249728448028445490700044515710241528243485613210911770677620105455720763807229248550542102568788337947610497197717256512828563970097388464115929816072984922791232303905733622035171955581972558226395368546754113315488142526280937216290427066933417246918977643878648371793922756147636385913022235646331496290915080442936882033317677187297575575294532040730346139559807721125004265845462340447566016016534299380480821191816421606832714661080938170344060138710717607559307113118048964359567498134340815972928366092670241662294471276860260210412328492260670943099944929141639016236385329711985866415098344520139998995560747727623175632576472824686145685248611491586346619032976899110742187411319841848939787900899546526422829617236443827931569169904034451113367010352727893493754723294620471807876544923878373073747797494753840049728525836997302053345727347823640281875345000466616711110314646189323919000127992138456308227179889120489530502163071133404761218044109149143441819761513540369252672891570143056761280510594488661321573640967060078121328720911037945503647639144316499221346250736703691518211529321589324989522568483325159694848923855183944428289815685268860857438644944733991292988570748567144118028227538789901025540693109978911567600475246649551134436732071089706617350019716724721842416947418945113037105766083198952238539867138903652627289624255129399910514766557458224147408252797206077700428950217825086093193562710889660833256459820521385107002911716128572529400820966062155601637454773150074129826065472476756049522022660684039950231725418168606241207483653832039699901103682107103986443307543738605651642759023757740805588026699586430229074450130125175719246140757741499228996504156236902371841219914870947389664871487768368728709301236920301935482596945926842975605411249071957983264281462243900763093325304007814213149891883593855109587826456056314889156745625847331649528772987444604474882473085038632930326274754798198893042255421260880462852302708787477704502514811691383332967180693534602190046965011098301214213021261776676481153027832756389110597168362568572138733875402132187162177989669155366008024517480618660163734244888642492256811148331766460508220048857195035736199328477552867654387313676116678084857244328032860087103762229695227495503082330595191451620517200702866397868463629436920769875760914920440998861868634820129117909589783790374003491664257231379516816428158984938000971191413661528274020868043941242280265433418437489521788681497180487099423660162000049403217643034536875636038815438821616251099145997444894189768358880118853155629596180751022787789853876308339943301521789167921007063181188842805328018184843332297893085406716898745029257115096809621833753014795090421019643327494998239633029852502120786488545862612996576201125995922275873035298823960062601070735641803065246979877573378666727167065840810199641124268731905676529676364317417648953019064354940663701805022213259136453291576342869516809030875126135830138237454386952169992688294342139009330841042194376470179600634531317707792404988522566849934557981586875873087779984232911272713116074287261148104039886807020896442333023689722095376946660337861713529424800327938378834528114033039167924783602880485526305083700144761436402872975040041823632442719088024555648102185385508273833087979660161611047683819368600676839938926000790681888491045538999108291042309197077877876009568382493399049244374869425592958989730875668199605977039221960044993084865872726894595915044918682119705705271147779618822901758271434344406905291100326586573158644194849966223381775832160197312838641350254311580425609948338745966942745599978031995354073879733619793204314837664593095229251872704821223225663224354825889742488371003014822614338357709700672950499799201313874801335429357839716305234640984162104063761068379875179491423140273467683817383235861907268900438264388297934012556464585054642464830455320069414855795859413666575950626134665309266447407510091247238617811334915858594999560738187128733426019935672076088680628038893567724257659254869492715461396707587808102281810729461156628225074023541832315895681546987416407336609850326206897759773870815052830034103663584245039589585743894285219291454752181815868182700852919581733032352102447336184986982829004093478249723304709291351220436639387878297427051281112909467976612126079800798873922298281706565154784843253707487781869897930823710822692273995528214627907531799459899762640447729035595094543295200159298438691453399648391432004762495861617594014690440952296066417918680894072183970052751071886356916031835781955012890349970815320380103033235639248516203795509672222690806174312916827470758025224984342776446538850451123978192862192903956493994211924778090077943261902931351405075964013976152822573177840640150577244303317014093174462115452135812270547629302234762863002695753229976151295738194406986959965083143605574862227955392981791271949984187096840024389133051098366736762731365255060620388050125762295214924248276350219716057703945439260884542420609181392293230964485814035324585627137512328821957730448340000898618302766583293695303782043884529136606913080088593374797315914292179955112064397980635391841752873262640340355667028612092904706872774652155486372091044133490287060571570023378315720731468774397597789702811561836199923025064523796651772321650968184599727324106107241740216845155866578594389422585483497515455726875005084823256444966520731860377145290232296105821701411284177016170885406572252872736258376542924967200031237340393936618321577164692064495454294707783658640392325409825745696772988007466939498938153109263532165680754197340122246922071039773560863185668727586401918147580230205107591332735170025708783660317756170708298963633522338413767253433679328251696445486773996282015944941390316725392893102621264590301016701220446488863069886455908461931251783430757798541645124274087242210481653668725805592007475838419923327802766780176704333175132698123678684309002582915174186415256202396437142123288195793938263517689311046535407066138357542414696987296463121984380687861860917859396364117199123636460798848486366581631835492322352091261616230951635505370829899382813639417507757781162635129989046363358994029198247164281808219139511226442093927763492800687623665153689115693797359986168461467030442105635325663492512598041690334845012210658321907063772317352306719956401556275967359599596357284281889369808746488293219350134884369754864724322991723306545603341044593185015094666676041071499946980921323212092048373105287602980349555572718708878675399345717684492750832871111074109883953813805848826501859297962683496180100177791524651101209946375748906621103681806803515506101472903902709890475674767265341629201908240350970223809115600317064224269156320431069255554060691855149541024185108826239691786778433289326555059984442694188996002651279183396234556718588956085759112639800824245025004191249762899686060857376642560591956883895500011987116127941395765729295476628414810803288423446234878260689532395697596843084634472096660019249289069486473612209436583504426661065259026304786950416366795750765194724487897507069356820583469652686228530366445835616389477120070379312339560712585042638332122204357168613803588088653422210603053019407448902371771650369515615941864335271126408107184427259907813029707027725481879066611828813891633773882201055159210034428219158011471243588837775218290652535543235085125387769051820780990023684142111999695732165029913631619614759047585655587676248953587539389165928164195870490929950907811056265364655881353874792814598821811638140921255769275251176482067293250988120323793727347043952026309672766731572755377328882237024511457613988543509307581285760379360185045624664625031960414327352754346983701830410953679691365818888864940478092507148772865977782173132785525560274148593896329196628754625977511605169329503298899421261601198680324662930978018031767839768551106279702518941823645753862091699492956816469884458680890679177142847204634214121211815651769541042976284959041530112645013788953124136839040843414018723997296145571241071472561757790823045058547801081044131184472697403958550855777525566257711701305995154752121054598609177182214492890644719515310893740573659419941236556332610499775799746881756854453619613057449934686728729574277682248305869273247987460715749378880549067488741125034986441931721435403754220898140068878879655023068794403332326587059684129576604653350196932910215122300575729801598677645954926254085449624585832929420911232900395150938876015747565979438729786661528878391452810018876153548697404359916855311052358823699857487094432995747145298939863275217156874498356603107429245175344782758550974592440870020690520113383846211714413551145351839724136694725643291723487360940374512786230008394265243276787301452003204891750541082925330354654786389624631344356231858893404164599031205946747008308948889815900443892629504309258736528492819100809046792916179442173626810645215320621093781381351136651072623758568812581667031642929471891197320249653171652193853974860342266003821860061501697231970448959055073474265617846694401125559767054081500721475666148485740828331492667880192207513598732804284585276608705867054857672130753157257077124342464679965361938049346704059295306746925594843504908917716584149158695056935651821033543558762555306949325883792440615859084216754209953216293791093753056307878338233163948188265072615467977268908737339983567488213464898846581597582669838991200313954869942224225374457401388229966674997135506020989105396895510534014969158447665557515045476883914001104013991787705185439894169071497559658711186379456517297816698292687643410412708234475050105196836816940661085071813282546217677369665346009132911984647563073206883648512557157153473368630492908596931043416117235406283637233708599213179614421677913945776874305773712463931487254721365989662013419971185716440779634767009403207353159051387647404568377048272798082780725301462184238136262573884433056758600737945649236158146859567393060426995160738545356310804878619248671475904413493659541517533705157487237768268063273926448171206386307003470870126036014773917508644172295870281883206967915714807070744200541682738986228334247711398471606350804131201689548135245153656496144433355383315199726188181733863777029343211499060255941407086990807359291212452814706949659353548054593325109513612692700066641775384523209926064961710275285548952509425115143359976285370598808379148740826338000198322323076934678184362632556227970476941103543190560626652236144737391762778209905849742943061479256569205788077784627628194964452880513220107150685290875295184345258478444573557316186412889011200837091511737536858822942379694540889277273093061986343604509730476231564610816448522270447202236179613907938185092207138223266240924787848254720181598866273060484577536451067762938227437103327206625204030425658830008719121073000555408974953636535769364620056127240528351185246604832652280036694702655652151898523261553445239916799919919290285750216916088009728733861072555826341038545919165978248081311611231150863438267195663362300456736986322972196191746485005642826719406518872985788183275773337635465524124689060316090614677546272235595191775182213559588844702397256816237700374828452757434729916777307257072409908901862613633593391844126763245179941309540888634694088257841454272657991760149871501424922185958476632073295856136826787441392006068787964657636871010829995007678061504512040726087213160237762180435317232202739441971105047359059698194677532151543570416636804293041487452302520436311185170889775255328297460449242589640782377048037153619622780385758081282700624670933841691605433109594523902795034810009960505600297471803624666932986098862137533526212148713789741327649776826907408044028690728349661439502002848367087756302576334146924995903910757832433444107845121386800292511640949851931751616761930271287258278766645418812110340233469790659753151840693951185192671502083289735006704424184542958074490209554973824802618710539117188031258548005135299185237405615169797985069576822024617545335326332943480854161466618680636446142484186782081560000888710304129173557900146500000637157510378757898853801581986688676047866303913989533357539674463518184383835513940197293943989583783786951756649600828499511844384542000378551382901827618637109195564867998878206301588960650015698533338094811788251630069438465895507371831130885664701177527181955357669890288298046086131483727494754371296439815084838309529765043792893703568049423324671599410123885217119321716524196259892256858753252750540656522712648520578298334660021347365329827523832429872542373791826153115922814870701287816105176983620409709003279595792142564746791552224509301626061468403810483992999096147983688868729776519668764216247495956420049241473624094667897762947716167994204493883952086062179100818198010785372641751633560520794296263867287092137230049483374424006822929714901336540044890536356132071752339444614152454798823916495952783058870729884420003639274247693020548161518864874775867090111246009790079170946398980034509763163024000871003520279430318805584139973986382105451331055108739794862828333822989957098499205083669498021891843669320441758613571258664555178879952487408233962217600900865719900284562861943757165003625342734898270129836785139476124211322765293145843127423199947131266717049421106907306945661428528116455884747740813008605724010539653239262271707489360127931757115817497868259143756404277189504555480653524771025609228339288017000091185313188310877521220470443371702465827398230052490636733444995300267745771625890391430889172148242586086724441948156576011996886332388788426912861513616686265651768722427445224918058187718839265732993745683987671415133442202944559567249238571034074157857742623416818843220171217952687301951427857441195531904317476468541119767386113555484887246225993974407132316151084012006768209333362958786529548329057606472763627253056809325785480137574636094365706814104280004145002279384540581545151582220910122558069058509625354126780677208159696312738189654942711440329443244837068713506889102085962032805100454485066476306919237264608969702046691050922523461308163486715047793895552094677371745463996612995920699952743669044815715074989482024543035817439744288247416075617681725870483191039942796979366952739229525754486449393766007397741647378936708415439553978563265756783645658325095786673306925294218267328181108550652161547275149799895843785483987813206659114812192842162237133523530138599038384150596418704320107802795743061080629265921823812878604352496104517635178839149186227978775184709748872587668659257017413844307961320523850144128654396797676475565511303887234792408747342326688545301345910396303284736960473581918158496245744894536311628466424907290078764203855879213426580149797602016465441630838877659041169883265199310440106093003900990556941908957386188460038564623981967164540573126487512962399106374856775307819481325730197239601971735562796662145375508633344292925921516458325200793370735009668670936320239975117052064187295810074871564133302144485884075007696548383902491052535391472612972536569433044314324492893236895799861661884089078986563171858456046723182090970068392991814421811627887972381367233107805781138714076421096744324751839829236647367323833655885932323525822707408044121623883428005708932628810210449656545538122622081251439408239148597692926206969352299268836141414381208492495628819622055912632268476417582595866007630168852617769373537296654006821708893164038099964782115991066921495932426768167991583000998221337540796943280212038898639099029362685117355021249938407716072402859990532493228665009033684989804135138934824023681436834220104942744165833171356583680663052272625387808456710985217946947184090653053611873374640106372635524737180185462864648075425764987384616597919500197496599599539320975557695833985364197651963992292223642167307191303198316470690199996663455678251184984748243408386492522207055948209887348139406849642623952092780545681035493482147794386828422117398102071082347132874968820397423691911343397252617985770262925145865480113204186418432703182016397746962728682257020768001788645713709900078320677772565288451249250412400486114697356347700843110079863946830017765301479511329481518836445873321300409732270966287563746924805002819571807555192407943858463118247943424297425565628752571307516014312524879542910019946660452506786697923173735836617613172021518480892324926468891495088827580050034448890640270424765793816567169798193987981183180319348229524430715986488684467721601832410801823210378924900994063221163902776505650762941357387342963883809254555804856410058023137818509950663749239874721745180919405502056319838043576844363516597631580786153879124481777757843443445653160444199626128644272474565511391457949604389846490525009119764158798940441236120882066767564673915653576245270842961757482669212497759231678886637193254223534076177746383952784954948419020430441344546751919153749757606003571253611037700407720296278310260156655038095766739096142191158558861593670746026549983224303835431258889941984472165378098901237297146579646823081986544370063221010187052157955521677455461283041889155636509938642329077128669302156594190083124570159483635353511855886896255601089699129256860234783410597600963490105767948662193905108417023471297029147875056458345454675030572977493002280858573330789715167374016745318508464153091896300872625087567559375964682320875178289779564058377150844966572139031044790287713037913375006833699785649841832994821914237149735921682844484913297264624359389904960635286128520956738731114205883711139930261733104951184125181208487526532010691600375761191214361924466316948145857227843560165841141594033056036175649988318869719683928823523955765936249257898644057423901531782415513552898250691807303808049977368677607441610865207180249414353280963714290503779068520771782983145401722373136752406811154240813118816753026988176188099480920965466978099682079546265536915317622039714583164084989707119266934730784189681721449802666438100102336994627290299624223467062205011498172127694160886867038791868386241710633510502219322056313292932734453306398298179927897547291656281455141642540532863663869442536984834809044137891744085032838945388954394486417148636672103303892291681115615496592195165660759305300611310527543329121009762578484367893248864250763205792486555301653442908295145316395848986149109765975938692956171976205944269998403958860774903291699012201678094390089404457659964938868471414576273808865190683140474666992834133739730683708320847012546113976931703852928777327358854934994239729031827659966444833727705840081669053880554598409897499512300133134315090526004586118104800074187462527731359136562056434395194749138915160700443157840259185277638786002090624817511778806670302049805688459366920993179170343446885362091430066334109030675905808496509167195749223814758491578048436732011002446765423202026125454317812318854333317684933486427249718839508520375967446592494745501282932507915138410532006729466807067540655906569534845541084939965123227150226872594666854185112572425525464020569887746352206957885757085406274409896758785969179141904307903661793903836079392557979538037443599516077313751658179701321057719941522773024540580188114263710941696283364978605213372722833238124466062874850640123172596706361556679368643536004626181500331192951261174497228533127080608269172943865477181395695193755214857898148399437885976665328474167428510117116122111560884718582222063293863999764189918488122986741580457659003394027835464975732229273653706855798496593452751906143003080628517930380890165902032264393429836667741846095735924760566282471591303240494498920423996966460835625849557398747221694435412095866566898082779853252708650313898909392572551573759201623094195928082447202780632716090872265563948927843785424861502058251740932746290977412463847580077514055097386332126092953009316798251543645517347357200592818610493230687536003638652530304340140010715675378754937540966401002808900862521748176367009781298308880484323312882318769262133017099269165487884385130121981311373502240534085725529692478934025072466327147106797816957073618197042073764037610745418864651012035658808635495530240019322878740233864505624324689274703361318057890990327152245468028626383940430652880216696819083943847845766857739379346383806197605132682096377483102172465179820108955434555152807640830737525904173622146627207416695941173951512578595192943869178533801410620522933328860759446519252761799085283766076481787426288350993520584317751864800329341260750414866801076166536948560784916499210321095263616567198772684788668272666931350627506660224827062675605945319782060068633344370916812323101477477669593924565414406365071402483528865732087532223796119072517653595204936359620131968214008599136608209704199523597063074745596833636365595405482814346366256272729058565835669438968696617599298809590636651310585887177289422300999489167723387816824695716933750672613114344350073408176837468936241970616456033257889126670578666859469218771181435236354381200829750052825919362185956039880719861825185432907350439841685756366643071982703690906430727848867736508258496904209278164784164350634742438432091151794153642102920395758078717719335713357111165344925456902069426455907961764191669841722556245062583582562689930198808695479835810123584250053290701162941809358801472370715912128410148355427018730754786571973577185594122765357616801243016092909772541509126298486260248135626149734904309842895808305231140010571862629388566449156324347576474806561956687460647283291982386701266840743248192388887714403717980143046610809959423286407467565280903473497380214591551742931166757714195085761409326185010665483849086417425241688170779595504761889673840969035976758206819099815369510388293311328390996375784059835512921313747341979871290250640781301781357691202209142428870223131585565420387325723623037687773214974217233218434725788511823752728814674184127423816598045379886562607145593511123622918255904000195467845840863247539582370376769757809802029865225240025162552217204784366293169448270111418612139298749415539729934499203697228851088687712633857604475474968299608110620979095426011759633828024935001759295085289528631011723092094414419243129485361555710180196082422271418343965093940892429520849708407309890042011108407760735682760784152391486202194584376531430660000937201722652001123042548263337508488787979091872537461921462479621694728560051331256304711339711860542133149213867432606312787043574601585738853925900400939224283712166405696034965873783607729092697667134579518619166637526644905627309890823889450500872356589481572162027735983860746490424607717174740397480999239493366341005522921988758073449816764459773040489572692922812794279449278232377496661621413234038244416917221079747332375627927071309673020263080183362063066772143287576611704002445444285183262153118811659895448749590239677534519033245972262745746989717101023833590745331119854904190209888408894004199846566880539783296665566924697768697554049106210357358808461066699521919666090999354845622539626732647496715539592314124936263229210686213793040758271588566995705203454937379075873403420883585086282418142259024353194713818975687489471970044807628531677544390295778947036607177222487046215294753630541959595816393407970989432535669837596173181805992833083907241773772244282284917864039950897852635019936238049901816166819289480417791421689941908372054498574745765931265258885378625185455129711459444717665090321824546828260250517553216649742230163584878440363237873499351688435170683671230522252622630297606899964900360005861917166484854068564961580013671187866183822654277467917167770062776941376000736673281959481804514733984345561735622505849643492334356481857216786665716471570883915939170746423808819054458649606528827780128838683842342295897510398912798306933909861749887223441657709634619664130646732414663656471610522647252041809890143893935063938632860175301667965001148837131665131076615058329412256710024453826434051063064798954182821954146034386245867425527141219986763777931942783700557236840372592825355927276913542174453957480383456726541381717259806696975008875816696372573693170221936251432307617590277541604726794940423599835676855608947068949186205182238574680794717146952580279415716830175916074409526217070374471806808340736054641340213486674700584355741250858228667828809799012622511629363793675825786755321278203501870674942046518590695985743118391007249756763123614535107146968996631581969576956419399479501532305344007224128850267759197246611911091516552275556423412392516954137432015323094903811940635201669527929508213525941792920831778345179101401546941352392647283238362272347373433560592206773846004367179665673901149033382764339410568292173650300158891239519998295229326587411792341502915049644880440381887772714740521811717133826653980146671203237417224579303872806815691283507054912598996972765322999846863847258889627719583891556703953735236328682373790979060993794399333264034149676690341966217850775843591739462145315210513216369487536505514714924515938238187122061215076483196514875313992433727445558132565240271528692752070545878616567902891395136880221324594687781315872391588681968352739824274360375464505210491974154309868658051417307381887649681469388238538589226261635896651582257077939369067576159033520129682379398468468155410629667812237479104622325440662220566531837925687058639504137877842501423648997845463927129147631021090675845990004475127986561816764790851330348631585166885636144573256575091999457441146883214779989103269450932688744840787802238697431294454415790786882203878615770717025756365832224674698350093326165811574287889270323149297756874623840791914948758442406599560971884585091970940197758285272787204779033238591979146674040058561823013685894782340064070806871001065027427325420482286128882757988371108085796594621687990180805754146327375872349798331140709321709138301215195731824315894307401691108570754507337883667347810188838192296038146729742356679589937182543634347979481526265160221953399601203033198010350600428001938532992424992365606506434353185607395449960780422803577523720989685288608218397302780419936358355317585476330763266972418835276007268794648613412718373158702677447403197437906292159992324027927437343169377677926696412680986442251601012759584612213893630091102270403643900056780590284007946915755125486740818283780822095403750663137603938695790304494613782653577417288428318605361184563365454683352144031464478834498463589679101570476637886762128077293918491432171939887967583141395223572107050434133248731415940051353645453154439617928671702183658765705467169514474950507491630114485882385239130020386224621931724332921876705747214115423125562619162678453436689312849177913608449038496575870256871065291207271775179865148174087394295539152556151558349878147314417616759228809347955901448240424730308635918591215679547866893177391320593034772855462976317047058286359652549619260518484291415525079827222272311728998467308239544188691187988350512089878292824973060286186533463754464915469459240893094353580547241434185646350177304384339706133679356625452812303376194733071818760707779057623354214513730361946853703329121785660723601971270635148710808145780299320302508107047062491584260350011162442473663098875786542629061708290322498441115297529761358458935859805932834873817094605099583884149997781913081493350485596301713604227763402400605484498001383945804672110760984357271688431610951778106634998635576915889358467658413982888552098101754623102011878677660302212865181736634448154143295595786698467212089927482110649289940231462512654271276389669847466442966065543762219857883224935739191462442559186397754684735334563440055233722670140393430864359552137907370809762373357021837566244777979629329415062161701909509546538925796860103681542473942442460623249992158648243517816831744739671292036249135358687489391589749835474269262532633839279211196266770469408504118745478219092864268908994322285955968930939801475892499963512749549423636336749782221281017405853202558094737870008724558475535975731202960975767486504984362889597013218509191739978590839751302021449056505074834863275756288462808185298162095220078135901996657596796153111589836172368494630216219890184510870937567031924084229059718060253221824245027584471452711162910095175768555061289386401281853029474685150048513352710732518271215022912477200926806984147018923535005761694533024102308132731393979285503946398338470177501845694803966754410206570463719291669768904718138838083098860021577516534002844721211263210582395166251289967359178653523953289926831811528553462614811662383800619441220032359467083509607529752646549800218524749147781884767949852067887986871501906329391341378965696128050535186013117728911604154599259276244452710855097964146350060451712547046501288986035920821079319074690257010602613747186597219643958385498425087604948923052615731584353454618325174213351723629264571834133034665974109577836648950012305442292351724054544949238275113382083158996821903857498776760709428694004435461369687473048266897135914460270176722294254452792969439320973095032428778248027798243059227295924566232954417481487800460359843237874148950725519947834022787916200958171276391182234820441490440380686214818982416995302126199171742359838330394353033707902616721138399458761206742909731819860113210217794845737514375100949964136228448046171766552837676244073637668519834049811485909763605157665342162640920881874949801976857074904882985160167835148391948796052486041108058324508971974413232325983679352535758259716924023076770366743710884129207047306711290736825089880450887965247731315790904554241300302011987402835527669902315250918063695006746571602349678959416272984269999152041439290766255436977617844663531155152580663851472614364479188905698465235059338365903860171765681170259753487131796779412188397841940538423609983883786119605273994252245723713660893139153803339468509240187073196551790892032150435011932569255526516685962525133737805745636537284719351306623028808688725237537934335696198244457217745700418279600989602165700836920742660518734136766418100901959857770420867951173461908509992043462331962193190060692865965906687827420275103750840018225930797842011791222527480803918738437893105880717021652817844945351554938453094821067894202290787918376556727733332706185942574106848676037188568286492434996262006273260527144922315054318712223684769729565022075517058580961764310524383340187150320156216625894247690343152309954413126961556525416237628187964205539179136814407152070782828265335965412898695125858140952877072220616494553767357121638022279141880773607125735436260402375433930639904681491978407332464796306627251985488929233776763057998950323831450111611106353749708943596908257731310916968303950875175695677385349705796595648103360549753389306357930460521014052267253016837596187313949942662440362976948426834574433328259424432493524910566216477034216063130253453155835283706443015108057140957300851535406003906326711200011602679046624611304771521141899591270317848376177193362349987295710285707331627711307776391526303814298842044817326801416290272904416748383527240267267297903008107709478388856204767435492460884506526805879869681907878847259380311309240339978391122442105430645725435745915216789697427187929254220254006850306901959747381940517494006217290229136768020356669063180665740198101903041621704232891096455057312056074051917871260089535870339403550800507635152069543761556161402813914258682704613359132955393476944627979843607989527904359925580689672557579730636772653432273976811350318516053721267023188094599380444519382503804309805706150692989014850860394199630273316932190908482055339960570817549553678045632425037798115062900400402032425989204277767634095679164709757524124601510976529833933941489033427569799158888066148124920822958530118051315653739479132770082166400208388534555220386649283387158885279048661030759456709743416447477486022051564557517379774574645396706941101239192608535994947336575384699413398557043447824868853675092217012092569666774587088063581621795313328921820856904409990271084347159582538980756293451878100667175679416708149300397321134302710309869505364423730684206682652199982884382001624645284353090761342272814988265480344876642702354002221900968008241487022500901391171795484930834785105230885401165750278808317690293062278867968207290608727669411071903757675039159730524356045702271359499411127172742822791669024928952788657104537424127746478125757034901446300085963678410816703995870376008515553876899650762231143463421698569259062353796747874417194301380917553508956565458870215063035895901197730967723189592812765297910091946416051931584777768750608856393037975896138561147277183106114086425663432574130071137628980229249175590591844830973006527431267493002886234733997450873239657459399793590738902735607407866495864554635972441669321417808568635084274457055718340940372900293204055656147507341241988253574232741711538294892745856223930140747264295052662794936785226129186874976977255781550680101859945637119132751403684518423410803182013946123135533450416862468782409153102715677118971114189829112173152306804329162868253856131717384965355418124795829741748857112475409049630249328014502999565783211052535310107847481614308420148724398099821110251851257000868516467792391367534917745556458523659342516003567828071350367787237710409213076791925338352311439501661050239514919789893173069110040192155899047675752865582823252535895707461386646468222302103380699046738378563868047781521141755554652461426578284417965515851794252429403558360156783284919570781299646639858230042630725154661131726192859071616092769110581919849838865738832464431244795798900392164111427155944428147693837530525339058338896827490204128364321009473563808980495941957378049726535424519576117669219780471560284244970281476392810989237550140676591861976642098006471571840836095334753729020207508679006152859801791193498842598633243278035273675208967177701498251754415254069649187993310984888543915526836020743303409914803560518944571173152423500766751980482051350662214154572973934014400444574322427746893883881091325906318383164235844603991518384252476636049815220265085794188708211000623391036923302316437732121448201306471996435190852327149188866377213257538026415892127914037093557633133160703725838290330948039943344108364412782354299313984794982254811684197652309217844161338867275689410418725597804209967319006435700461514064438577910092428816726384312102864654224981005742685611730996561236982138588234836352292838559535136919339125792934863040242260438976515745080872678829815904902203722928503655802406204852293665044022473829105024966362515994154087776817537654218965993561882165946003802818547210898015147090281535331914038784582706321135008464497153811255580379260014470732743824167672967733854036962697764137923375792634024334055658895570137621547100801617863359505086010552079090424483072778976116451321885570555216528272067732599135041976732844799567640814179189262736731496553779925595452540527387030142244994260210502212976392623666514191986456430013438172082179381963854409040602142646181636027261411743846571930043002430754046388806744659822075016819706177178264338347873880897267612400885304906649177528795262465710887570146476130555430942590013405963770339340109093125576084713965739731225769376769011975591083504816139074318302373838861614457026537667673072799866681481102884911995805277780074022956466629085161545391890635032652851409686633276487727291304770310868345688886468554515893034204103740576151033445603646982490932959231014201108770335840581432929678750538983255042682337021273849865806155602726333792648284368789204211690793712684457413766853716237781033724679456579619403648218588202296561868288652847531853567044241163776733256086049685106462016438464239599696421244163655677292525553899394794244600419109848011207121316450344947403877920636534859503800153161872275664441274265219440430440609171132523277763244349330251593744934865723618393528785794471905160982510551161772746644342774954748325762702512641136146861830406486177949854413625383200672626693725155277306784638661571170228833604724973065978023054875705599293099559905596324321575883198276132538520079408515407321618235778953407142079179621911904503018562563100090935338372506470311427659078245257676105241811561632999566871598595354373523443064516588574161104977017734088087664542830049929508889096754241032381931953249416958513047281933566105308889456291798382157077153085783295412101982149298680357579894303997506874630276891175526028325048385588652685153697061715348808491524526064684984654904796207431316952430258064259124530063428968525590992003497402312888273391606251495894297406355099138046911313400714841495160646847203229388616624575492791383959466865850841362326138073191031293558555561620968327660878213532317138772904279680174204269081107182064701227541644839470068640782484470862915574319901362757778095578835319119501566613397492920625251279623576856104448306481808832933324160748193090025649792647718066504253905620052170289795940913142480081375902965304163837534343091850230312407784860071956583078953148154565696529482648037144706506208666231637175120736669887421666115251327702416728937353093880967012373230807696830379074807473261050455346240305631554155062975288480146145616939752657933147641804513328766722267650366242539739000218865032229295797818494263659532196732527124082379346181459285536784590846406652328207406930453739937653013348918506124840287543570042911066087325557191770527597019830977382115827694358062163276767189425483672624205835798230729281575313069856810857261760498153264184959828455131305424222929051821746670093546791145401361461835917431536738109414618442624572259422074655592454396099596700709094380652543768941054129589040753053998989628367184454778480354866330197196747191315871840327204735745448158123829341937005545361515134564576828332030848022676787853705765525371982483893558290440267756861947456459883488824874494476680392785491101349220158530936711554104247700241012420669296991114971614742988468478892288714832091964703401160396986087916814951340751776395359629929977979069483741640742338379488035855981702201025029073124855700218014124628799581899892384777671590980881655462821658801188824766276650943045688626534453282936921513215892800884183875089297143613153645350097467979185668968683629017149151618296280183515339342488777738941364372613906436196502286762464544025805169261617401150140583411326445695751641207513778266901635177757060914862010668772987101950332761814005778845012965020728677816595331590040128009806473076307454608783229628704183338104649055379136178671670127149462269395338489829159107110163110249732462162814068713370347058702785211986529417897098562963103251512413547747467678045422245417625839433382935497631806045177859793942947888559111159749043174647604789754348274977359382451269632044627082371322029210774275930340124104513952465667574771412730875033468400178733591489457101608671706507901069282154221024106265435490870559231047685678927233353037519305773562415946780212493512762521930701508825273690156873296434177666942894453795661810820786003038935618327450813679156320612389718961012771392682056209149266978554899096658660046326619515251062124379446439223492999956067429691591838295363623436902000060476499805839853288741085480290205904751602424060194034312058379824849241841487441351970329896092725998233763004563249776900094439482279021992068637293306233357354162987195767123055933422932256375181566244816173380661632335749823087662943217233996224692736138006581570827127477279632798382983722530027233824351646845483487916132872504155327865334168739347239417476036534386847000852681635894009198455632613618896612852676237063761832684139549620812917729740000708087170090322656834534924572929104030961494338670953228546792010695046309235907462592957443246108845005961270875948641063578132629176895492604656211037822798593434418879639509380066606323607148639743395692875489805975026498824873900408716024222101443715926745266706061119358743237825655208968343480144258879272168173225202474273110502590999389265647143262316354468474476477489871137674895590470908004548367482692914826839861898161677173688165043900144919706498464885171233649257379515496847416522749043936360501569285675173619551805725808017692701173695140764113531049637173380090942363440173164038047188338662348357226444979324792503143418076540305540053177976458809370871172898557037731295243519004717420964919290711064136599479896254420560525730060140150157778697662897462784209465830920545055076840066351513126755571170938702666245858083829798160243820001923866706718823523283693504775174607745065345937721976664068487184975416459569762736738711871061381845120330408117827163814082482190693707285063695226978998357354407072277877740383755710771615322740080439613497890988568619283012330921689129336739035765137267243412119862052831429813845990959773810230987881223065047128611831565529967495745201036308541645598702562390439512544375741332498405543636964755803839823399285554742844060685214118640774108714192504413295067652854058039690576116359138185809289074545274047558975591236701117201326789486398724471610056702239825905022870995192270146337770568471018104420906491655391497796230240953216858112546619035231802045420861242331823106446949008569823443054700511725450120537731663423467088815956973203893647401461890192811225706406364498816410147133834769830025141094364051095482959634178483866874615198364065899279202268073148828558505724540647213669642382566742294335860128413105658768740080339964563260772147538003715280343820333730928131406700709485056240249027004512760752349602185594373720074546989223216775834008557292441846666779352821190752471291170680892199308780321855112683204547491244896834179961037995410555094050759233955943703055801490883420907384906116155361765511566395494052119158553522424140255262566565535427391444484790736784717599932154481406302779920329823674758369242883548371930561246719233477037958971237150771149852213875089473652245553292295070903516817213342130837967566753302895894403062162511021346691205871344616734826427798444824422994285103258367566026097149018584390569541998494329778107222717752914132694297406480218917674766270058648615572379138040258673350622996134618832079618195280627279001590746518262131571080465278883352025133918372724698253401512718622700088994440074044964290893878595597231664396936902930522870740317501118358334592378537108534325723002199816711506505331826067921204252760496158982815196540085866189346381183366693357086226360871732428074221269650882094523541409816662323522592044482901352462110487652785998804373954947608824791588129432320699644891511012770852788757906130496705446052259477638956507102741107537954185517306293397140806112416110602451265639256929128030774914165251712310340244612560725632737734663131562052889602335924551410776440965247427068928027160269565387040498078949458089174001011704122502803325430203823824513102702986033498355599555774714853921316779492509177236220789511717346639177480301099867842724297880280826838349639471216888106362765529263958119685762262324151274576320503285400386768218697532149747357493815662711884638697445915930966693936885193268711727110888984433757511665362733358470141555201281826041351869503003838599384004012219384782796521681335207842225299819022061886139938144595953055426272441867199334325046374845494761401359568959054353548536896473238732126100865460070168625088814220991860467517661015992069057800075633575732272824074214771687883866732833273443269135137047216746142914307817595270447204603527165238098924513392668046797892818674374583447477788886740836179277929248639613625045359003872234226913189097485127773845960163717440978274665203315078047653767662544231639708211445653641520028526081114656026263559228836636538799222815354052468244467923310848406353826280391560607186209105090527058147462258943021676804367579184442076129910140222429843864950617380310737151646570283917997295772708577959610073042295462088324143668798521042106566489027892673585620176529953347985832945707369385897058689803898909240928324043171641030464323715987577450763371875874994076855025517786652456128030391031682518604494708801785948619475918680568099484270871844893348531362969690752878172021244561356754577614912719547387669979700683261305566084446670020034851867724057259197261140703244316807377215360393301349521903213261765252662225891392618712107048168269933650227439321140580268741379555798194190618347680217106475873396172922094860572789412903829451905885184271501190111581051530014079617667387922250807209285055857753119651660851872927841147670522650948714820582090122056614515939401576751414008980998675478184013450088217074777485747884261483024411612052597191139111670000573084617141142331239028633376564110179517414079197890232414601325534754029197772791741039761850976893992541625378525875070326340748960716000862210671033992188114452860261433554604459260814679279751297561396995869636362792639870902844838322024710957402457359188239843085126339149620847544278318936887957700612843351182078624852432453364727011764642989696705402083515589825586451446844318063010236417503172258856632981671474798457569334547033801637806554977104032559238001282736790152835729721308265338852367207383227724194716170281695432645519329735554525553684756271286873424593752631312975702701379400159067612851873761873268570805232947433950838412399181193372515326007087245529797084892379966725600031532616490658130964839055361410861512195317595660404422304846405783046872122564457140572427096855248575461384224424230153012732566764788478302300483491680424456683270564709916891908466596393652414116202728152460523809886910930847260201767005669283141264199164375914970734165597406109962226921883927559933552136974630380532180426958350113610472051627858902671658076325429110273311152613061217281449265057519441455907544136273459782549698287958832248432729433036677705936372302833872116299198306376138156265541493935062036193329725706098298246853308409135817230538141835038674548897244862892264450693678665891263759540202506944026409346864507748760412820957426897917478061132562343209835353070512351967666308753682157068776246358264162056174593514616839489079717197522626109072796473049667983831230846002549544737167245591829198923265567960999475686970977273739809127055029112451336582384829143586774784329727934800504314913426630178534539602613876545749933192980701636696188368365113164436652707375419302274939591366773138061374994298203778064491277691790213511147994806936915729472281645896631667768227158784790585217248063169830831134336806352302993046723450934344978091443494302762631317402929665187479935716398882801499178510425683774863167881968822440902119808373613329717825657329525115154841250778879519435526646249007093999738387244700849522575495920637768474220010004241894655822856991227101921710483638739239586961035594527941059682907202080449907733156143628862737409521317939471190121121392965730260751759794536460167758573254909710752808799614647891403226162344100119044391893761803381213309881950274759391323045493303302600103550398680807612902561942662882095936397907277737747905312511048655605849820730391168597315885135900627267199417702774842251699313837568650568800174221077559188034277635144950139446261107449037529435632780592168369442588325598535551275951117272486408617343110419600138688441109648177238315806807718458140946999781366818116500968371518802670744011372438026968712589890687095217889119981745516900640822667521222994938287276469036395292916420883692879258949930833620503897517395065638992222489981266531464040185537288635025327907842883945465449635406942742181056060793006371043517486360521778918114372533450004618275704075322521825917927745017228195247557904551577240548033479205399895438113154481915904700484228677260463069681215807071148709611806287631231054940764143718936945156202092199667223221254155961612073435923460395527459379383502029716809569089063435782238498830660909737060667589912562320309080445540707023719708763244186927651902956604655460412966073597092295139170862635522808706904925030646134222993309153317050524639598957352844584805177615928325888180539388821936987876631547847411301489580304111759220416091671823927000905211488751416013264115217182954609189833211780841533190269845547570918319897999056097685609209832329477443944161424166280631981977259533974840110913699603565822204281796793758293423253205689617140479193210972025955484015711256309764042330164273533001397272258323452369643563696569828672188686546401145711673320086772926570180741068866565611327110562092255018114105098947452114825683555937200296809038127839194068476584887222914471055690219337869072330668676806776468651068763546257918579641747158925336128267763340045355592119210436800214429515589404957599284787745238823142831888405361334739896193363494449883134397626263806384368024069698543163061039987367924971804660844783996203067898198043884894213065354811616036529704820631702441745976537664678294254398852993844659705683368284434900307674963136725490164549322275277173816458861552895252584700455894261592931735459390710645798654048065359883054838358049989759001527885628465078805939571115771127217947618458471607409981737108543404361209391441536832520192421932564039231798322808672588883624626890528395999643987342367940332611944286868487075679854663476230724828588372574670399342682111970202179345333795841828490071711256233058282508515434345172718111827096002691915189982633967743030382796253645206746865321070861587365237196056361238573043428264916297535602295789097944907890644679031615850655239215236182047779960371810372157666898928815852487882390203933285796213819131876972759942155295912645096176436880290805050745370405813654808839525578127797403648541913694457898537883460309035736674390409491691057848159680058705741560321221666512686705830094248718448059788471250623721773373401454550205702403912285647720327564627037028520068820435139150132473190708384366526640484210512654226834871547488053531270103088034341104719699784608003792424118741591720417304478188207711002308468459481538989828403286177401646210691834244552911937539847543929120108773287054554769863965342098994450738366165689008817360752076915495206133991410269257228181915556883190890533017217866544314339040252047244438905421176462555563447902273825077087989738500355811869215699159634316314875944945425671242699911309214187729512253429681276013990622155563418202210709273284558408759436503893445792073460402687070750673714244350301838569390880794190348952877721344527706570047061921911148204794956759059289829806316692423979636097559721942639936578284203849491484467988394855395061366331220143708662634783004626804303166530495855218942082891615117008406641771098113145197468825965389785106712146688807251344644468365091399640599171780073828678777538671722310301254730613522650578309610001277149569891627528105663388267214381367017859161935525359238936737877263301068638367992781490872674950858870047613467895341538728791824172538070411913481068587050799615271723476923160289573788114294698781629299983693790173435195469201413295189840947403635934508929849600922115187239595365392823618524188662497091837863199773104261335292281784354916301199382904015063292592730925673338898692531509936242075285836346986362832448284461398727755881589282662204004056164795746463286732262034184806672639719224028100410352099824254952997370776539948990012729703023397572950483778927216353346679968667237747769549775670490371093983091765396923359071798243840084581879535594813266671057046434546117173077418190953751131604756782643732579559188711387281506564037289378291566567801672917634494868820482909423700530694373274010587932771029412483886086120740457640252508593489677541898666575759337356446613317570529216605985274935079691961150039204772659303562863774329625367805870837799424241100085488752710147696897116730679441379938430319575944088853281651610416999984006124346755491819811181891844802423117508993052275650452072870213040488753590951441571088140966378770599688554342512860617210601718365304495903869853814702844990666060733189028089661443123129881093592089077294401572046695684574495644289473992236186782220669631827792112329131079038452243088537749287855249320465332411549879527332631301786645067201994484514675236111973097653405410911939060527102437760694507971519313561103871921629000671216032356970809086075270711553052137464509161926161451096203914780694521135336241891106909856830764928520927494779727662186969145939153509520376172950736779722882160676376957471141884816499050348083911397438979273441310949939315253730387212994091397698647520562287181458827476712172099224820241538034499812668571143559430937374897516015315297530061199171321050544177297558874063656943601478945252259441790513241244752587282879448416139527305433054255426353063663111528606867269627629813390256395413286222487863043946191130032988764378168947102353077607651323851178182983660170228971198885794063675192410941211044531799285539461782359339241828524119757518221050467254695636075903557870988105675283460428517849806623362579585262910594134897538561633627125086266089390031008411611012342572986706647003664499977417236553080761059535729233118750860175823690385737557265436347965218498348494327967114250871672785749271456516875025266485268533507743048356749986678104285081065824575940373773515403416062004821333653576818208314776849970345776274029970349574615176175029445045965775883288502958148699001839369636036455387522111655072127747637874504867566341543643136537248494910842785629665706640563805761181485785825191952980746365924804144217676911193174861092821996067133593477769137759826712303673842185285674852240734738364085213691465134010762829161450851764115255099273384450125904317448403838160447129404022602234481667633750284810370832008829894385457155453347784666550752187543021345005287796610893739545756041287600712031676479816870630519568018521918599350161998955195176126043788833803413037524870818876222208338338955198004074028060946389849220392688308568849294659732213954019974710079683059324717211165422044938849490809477756671224160269240182597440835043264498048717068324489053633483852698826889592011264529053391307701250660910326633751398665087201825114592060652197041497195840531551808719861377041919338852803177914539567840162644511688851768027600035789900603892204439228312976485110003574145841654346763878448338453646245848354850154466969664516291277143358722329617034354738448282178388384096061359848339105732380165743811784920395175237979035208584390762959263011289292827360670673452249707101477236056910946358602988265454970352042959335176481119104605257075156229058042043411717311361496801843719482897097211005637686513705759202129925416080106416445189937565647598904780782278818471483375060204830477813464510010089326048997612533908405912460954398506951404716121544744154820084628387268607001533980006880287405008307404184998902924713516223901317891298339775935488830126542605007143427039513657992545883669468368104418157341412461054267484228896308176306280281636748410876447109980695400433375163586286941714565701696766523184171889150954253816457433984952357532356553513868639434384297628055140818040633848655411451226989891588928389484776982222815220819824303057490657911511696324990761682093541480084516844290243282805107309198216033643007574277595997853803824688137804593522129670151028801662476883057473145574501989583147973389607802972852560942634275359003724448559259730998986833488641698876852374695803154184025552185665729342972685568888534878726076131891867506679412154250393229847866631607663018579101892595075768461211859253230238189413983229653812845757154454475477871303960964516208429227660398872996359768600372487545634488636468016775975454959174909631899065447306736611190678114822771736054499193378169741820756187519102610424698689643881284998003227400447506215389216124407362600822755778136681961872632946892259662557628697715541224299590141443122994450361198082387267080770763213409438819366830016173376336441179423615350065021694019152155754139088902546105620039311618775512647260131156692776138750333947799229760189498745119477251403825375612002873840936761908354331254306675379316727267696709213797797480317448066985425958545974449857135980738638991889172915997790839108241649656357385411842340560033115134280754769676587294553910608814228678035921996608142581465585626900145549019289502937966904469098585541465843373828587150870568091087211387747120131372674399064245921887377418773151442306426335783572377326170409763446378354151399075516651389695192318290192997835008989944925490217813489721912224540847691584451350846691869168168752050326226488822979329514933414827727441032520494756897571651394464210808007542803839781670092031785965148496744910766897751590698316474627860214870473805650544848047796807861431592719096266221272421390926416840707970484112994210125447940381833619459327867880012678595221432826447972881196400763183353558111074290605497539598984831850311372845839118233553836624344794251872594289559028906000218185323866851841191147254452986495608245032603628285035392206527859124453729663858471615282274199310089624252427799014771347404924429243292839593091512343928481098929212337329911123945823144950935154098326095603626183259256545321963818981460549751505558111692490890000217284705951411010737530483936344655534016978039901109171384746982779078024566530697558578718004816229611001274224909870769596101167976284489462507815632833202584851636833255790515392759566795500862010543894533840753091017899277566862042821235271516591521994943482860163333492436822179817083196688249209613728156049769742648035333930312321388774428728832811237125108417615302444057768100601320909811187005252859761558396088970416215827196853527676369190507953639814433428835649295570954626150353856501352661270775076416767913528056325430108003552785117529314522437531571439873188653626371596964165061759304082904701799173494092452180544266211178105420396225924908268362791048900921786867895364860321554936863631049375144283886831537958942517590316848277968425874740078925349004862976511195451313361132367392308338253960439541554439346213196198248744789472145272436790149173152485799529512510212765061712743640695125531944183696698092849299192842403967806817911284072411887996730373060348014086939970155926883991806964041227531623427841476410982661213545994950324161949173048142876103127511226913276515871248851879805162874195632771148101356962281236175335546245662774935725302302274401821905993306243664499891824401971859289424249855713291320307331163373377025514553845145933017992399067866040815834281805970690970558056032963017399286582286682167366186288307817297542819948546878992392422954491046490704484368659749880779102828288200374175048870558765558534692177083567009559846439066851233670161957885126241809651438510433258898305285387528369782297375237675693978614003849824714462999711683707319516591068225051830075021455122187762826663924209339639136801482307684850621092694553126413644422084456842883856309622833791974441686836944513634272715741310245369460522308593073253021629165252910305272595870540331658920733415240140470404005566222461536481913301991349759878407810366008837879938838704616708727418804792316690748549203973769047797868101237195260777740130888909314580123116055964098294750214536021826272081633278059487309342929002400749846058826968275127027639693816713933026929179060197505313631037947414662704947328336873406984184974112154155789421761305543446644261612807624390667817099270216502385070804941904960175571016606970677150238328093475505126915024593677109494063188627415365411587281295007290307665536485913542944498940518783647292816218793650541280232043234979297261190526678548421993488306817578945277440653922257214766828204482320113185107838985744133144550856822862801663970066723376976427810850028153267091749238881866624536476384254960636344500979572148615203925723813694030032393436395682322137105706374169907634088948590394836188335155902039748051467566141258996985663750145761786310760994617890743703661977013214237067171477317882830467770229196401094467675409410155305568275736556398598969353868614132188054123339140537531044951293691841441432371435961880574438687709086965672138341670733508866706866931934007559675450302716291434875057525982888326491805899057979255980405216297646927926772327675011410603267615993004846713768689224602864858362369559379668182970864922239249788160823114277066092546457598359404321003217596944594158857278804158044899336034612157949043489548390132654121769935164695503826650813058505189578681642460243569233926328171332208703616887447062872744733473323661981254211780610050034684561263205215103939777793347948603054530766176819845814116412432071067459315672703594983193373510666244632288648643690489678364292927021111715369200717146401513015729089105083565485152338848951762739165336145954083535711516536674070537527529859138530066818842465457156310596379579210140853935446169045700196461477340798468725439737513013556663897505771005494064385272750498583469804847414101804433821791085406785098644074910109629108731783965240812939965050103726627462736594019476192480157500843653390761794929048063547792859783966629538084102204206841339455883780908458417096501714137219740148424355231030829570053397116761484104873042290109081349835386863750993375885337775069148746580924150763000536596532332423273116521229650745879734564357207294715526128662312476832700007189695102946943186062811594593234109773835721432543983966065288477269480629448070754076897240740574677862195235560165131110192386444376890157127083011697629076510532955845777707973444186251171444757798979737109026536585325501175017517842910141631964385370478844899517563517218857276997947226347138508761509304997418764165949882262026783000924249205472071933092470211079386944909181104092835804295730625170397570729418012734226867620885520649911780719721810228835025152160088286412951559034638203791399498581691580383120513315349026385200090499683077399849979326369717554109749700720332418165018432484764315380322126176846792796059748011341601673108660575661647383365444630772025969265520619872001876138924132441433118998518953547613740048157095672462897914429765894828870785847708829180667954947884110974758851049622471586379021901008915309877309082401712532851831013686550096711839670762380194535659365427186985570167933930084238331698021325435099444246902652752200158795923606129463630798460242570112481503173159881391313807163855699440232241441053591865833774104464568268090522935191795010660822559841177514278316160724676511008466492893882375082972802260523044563611702116475797313353476504815471776015714095214606739612408919226380660946864496290576945481832040394044995907951364633537101504400009766811200157649240843030713127527343038242733343136558060274352940894020126253497545941909995066639244112435469753716622632402491675647940179651768377059123674850886813046416574154029927450458582843889224733285834068667165216027307248281586303168470762084764330271908859956148538733991656080185559193019359899237466363006632695558187330870118388413861127290047024267260865568459189676385829660845471707020091153595047771284431433705532345456990426858463985898839318045488199456964859413022148958071681419301102186988703241760181014875876364945232509397714842855632048614220847954115962993669023515284588182705620368354309428357449395006694451927996023492307766697884169792017911814581647531577885897530350290308004557110422374348419433358073376082358753544977970309859453492705581025724950722394708003403750478619374961801201078679597964915132785236043007062493690371104820450224624841135961028326013167330158041195604162136631534768361662249598403594898540778699240272932625463125008882376085646734626050882157927794125535870754929371874222383661992535238049294907141130566377012622034616916903082985611131172339058430330095925686420930961634504357227683694512537277110147789318625966093486609965175813525501186555095199842718846924559705919532554042397571105365936573290059963255100713169923485899262001882187353020452962120686288947356178236470122720127136449654921264869900568370968784297157382366857854809921566020224948261168915834426318018358723814497227341655514853427074110429158640236536866769622575563515050365183233063139882383181814563203906320776687107453659460107863053092804487153728546904117333018503012715400502265941352315084647237957356815291775373786262501400582503474694970221714171629138418453831198438506050447114620106207029889551861386694672249888897134841984674171288265797670494352647172096661353480630776908847357519773897290897968970151565095565824555475335468171484848411284882685241173274729246689231019717076937788481107343237015181414869882356072626710351684636868262249077754767365254802968539391706760352069203024215914994830828683104921088458361624423832435731710790503833459087869989749734237579843919444424749140681190446600074326365566492978524020262027450733727092281351622865251407495066575207021798134174324772021255298475890495500627187420859863272713153909777663054475338591351544868803644496869544997035042704923749374662877978147652106300429035617342528486285920431829943811038448882148449001908698083513372405804772269561128935456072779122971000726426445226593836400197641138185327977716004176472563647123487470999477647157042258943635770115621081248361535813189887844310385659787901465968960530989661422559330448196597825817226370339049829631446232446569352747244907873320553044854102165177348032354477517887481038602481748814443236817324851074529438175144693271529365724358542172644729670394686549585728055129839643386166425247232805851271826898901162842661946682319319406941989279889141676227273029221067719512021788624524882090986967216264743372839657053395974361686826612639667723748563820010390025986200030527110000756881862616160656928226515233028886413731071333866466465382378064731378929476570484003603350437899429463018769363597268297754821227571950686788608205149387804426810650040652320750569142169054319209818219216251290717194152145356870290088580090141766602370225457807726881882276387915828705041511462855112253061229403888128402091083415172450514513588134769777580905250763419895005007976777751335383575239143928847484134056424991047669434375805249392644985701877616586880279955241348765216269070516065973820553468821832163279548504244224154194174536071119954710037871632591358270700474013549763590439291566833016586511600207600337527883725718962603617779072159065991717989317751421579640458210441649104816124934534414007178871879694698066855052777686126204820062521688649566512692154151448645085086664126016651251370941945056919554441814996896219208479909258883064226785927618139710559158112234321546094544490375247891189350698125745992631263713582967127558816481323207235594375071867614095588393327770002650911863813057915208409832755147652609774594340640224406941540247013004904024250356835827740464149963276634660934237772652442951962003047883086803154003687626966917178976413389847676781811637783392427677478945561307088063302760174641326406184968880572736162097082661734697834489083745810076082959375097123062404782687101539343367682427324810706717245121130107126689868867913534189862365764869654927003818449882268673052449746348192669931939730840494345777790666699065647014734376485005489380196853080578713746997639006164904701706790570082564456565237898686244120032812171366784639329383819373997894133169382357274045059508502629334402318527818760703713289495313249109833334596104443756730426276280326027892520635625805286267734216988503767018922036918589035819222872324110625603093427885169857441373118897634172402133901941627246449809404444916492723560866546757049548983764300300539842634393060046505026182880565588320236192848156498338010975608572488882756655039166031320423439147708290744464557367759148481082693203962358166840214208183329532413309452077768749556512223468225911372205365281221864596275081574938001439675840016835377802105752527415550105815129487703934021543109204991182829045812133987659957727775859924682512503936585837672779027375506705363911606847088535589346560756196427248526818976647554455980609212238835274097904281058299195167975954070739994002548024407917716335416230771053289546492695138501232324466651287067609663937914785088921671069739130904874988885247837392869701473229949683340368127268575634657402207733955587981617649950725397608779646115115726907113506165101810405777680350583052698616941305859697213438927962800738593225519564920498848844291499134433969095513929659512643010536757576331394588104825454732202762661336292740891132551293500488982588313855851054342355208996263343081905072876891439171137856573958757637827576851847640670622348904108184114456917802586597999387407828714342984632268135460718186953732641789470867943911846281571849771881091256024300077155641854998838862421879296113894788908283780462736859866668577697252549215824475653404891817000469857899061721248332538103365606767045435623685731441611572609688146832478681766030919382994487144264171758181469645453883902034358449917203955425217584205598827685844531375673024606078768012117657917910460250262095403227072918508815734983586767096242698813324544944999934593932567084408970140541215152123247374378284590872000252642889673185049793203088035704052933285180478284303395309065064463836441133211991011165418167512750603252782770063958153884260583484623542589845276209864337871328108858357075969276818680264803645233191865868487335925636257953604160931861702267241414893707923206089668768789752154012343955547707107580401925304539333131206101137198957162705396708916534995382715528973935048743601653718899517403339734874002640658121015640483794389615938742117089643633853116008222124201761352900926336877839714909756195763330421624980572113109287507090700879945567492607572445160942380313960702308468864674666412811209947499365724189549510439808859992123901573880075342975915948917786836530362315418235615316447845166490165041948382082062887481687338986527640933289752112530125311683648085200292173944280009867912941629949775108825896401225506055722378641178559157874641689400252084133304582077885855715783151351806660315840283392459584506249118394026372900400446428688888615003229976539433920663741823549590446914631937720247123853418345623464986401728253800984091608742197232730093637514655147857717165123976451318279708751881132878340517866968485078399964650371215423353889767830365888341693196434301884569713828689508998551565972876348290669743468029944125051278769865872833968627381824860029495271807709162915076699164799386955213712086330294381430143328907943793761324377490584036459241801400453808282539595207359382646455423923157664123495787522568446686527878943435011527066564461038750577088244328100625786458405764624127215836660515110317930915327879734023419851902149006780634074642852509350589072704367454937104418590676453655610976477392277580800225153938101973647544901974205854730224049716957182214907478539251216342842037928650788931366339550004844024606905220647709014384294921332707879495101270799440299090476906516444350374308519349352574186251863289699193292972146307154715780352750286042202675786252730111412645537208711764083871505569810858968559373529562234511431433399498068441418150453700311137267860488943261028283166740053387810455721797809147406638565012410993912728224256442597514632354552866592222653381723094670204426377544306300849173366459091208161287388832625734851217103598185611996499281747020098570641858149176646740206359336765410185939869576820278788681681655435515349346717623555875988295454843662718455782643149077892902604040518525631693633709776026471322866119366753433197803559319728375204969298927438834758599843416895188042899197190028767553271367242937431191526693863351234137895140507188422983988442523936947962916504343614528104066060674803771967632496054069283670032900193850297304749371338439097181564227804141580686822622438123776358238392902784964322445701015055305368546613213544021447779866523898266374228223404912026959488568721206178733955641811722544194124555431100643596442672599916862163753335905475423587658402927264663963883778393634684817241553632051354505133689823916032394710272171106275661907248355251354183742986127303709240006037800012209772339264445284786765817002978627186765939557824835104949512877943858729883520353255665708476317040418857278273842601686313207438702010408587364751970961429064958798730241917949447051069719433592889675437451258934555935870862165058527017470273776515655193256489845841439602631433547935538051716366369107076306478685442650675774591817544092559157784104176206226940104501371792808416768423258739261305250504037653682222750843774574764642324358788905955076974575317004966780076097801635918507293951290796468065571736771363698108460091564372140909567492808320003206846486211231155346941502217539885344489596964176578596659506574985851912408816769272609458329580995878411109304952058567681754010668947213206106217602556163837772511545461395229446409984799173082590826750194929822452979644215476565373270753687324389531147249693504668718334945566573612988404224334599217193502462203440461544878735323887703301482863011694435279286730414493154277567625169528955535182318130912386934680917544289464552581067601593634583778280204448558460957162750099135129635220648774382299643599847135270828030230337362889204269104036766651342532388833297526768050784488042945925926062550191019439337032944576908461987395336711838669848401031949015684099344470222063863961872695156490944949215412549782908031591611691886685652839940420502335177571921730824679194616266560628052216685397251221715465623150263716885653997242986622407119061927039155262231508188199987354727085605958308771794521476976025753334921462343790162592598206332559532352631373527946285304393872989796067827698988686563798911211705535598445526903480581354697361626711228771321473918856238000275505310244022017836930860283977116424209167076117860292791158579283693639718881749121614219880328511383647232772619203077061486676369946063984623587132677245908166552817961354189225067474059316467837853476843977565219888623876938824083232420542250094788889968737100102989488412780247808426870138282336063226911747109052304367223519493105750873692128494734666440979245462159963293457345743616309613249149997132443753937762515578523073375095484889212556435366490504428302980618677514107610908084265396566396812200012498439572706815280475429492983937161198028044973024326287274205437084571763641936468106559052740242134457215298064596989168695516797484878499556899423860229250319258096001911947484499337768419188506224328791333345070750793138840484389063373764315959538491004656328137557959466649724999509349529911168844734142730081757638125720662523573662864018441747161783430349417680110484107007219419981915227089333980067608660229877906846785002041281455938619982631377232570409367138344012023891194522065866338383988357134912915692278973712863384471721725789948470136560114318195984261477602921168270631628646919966743431266581566806186186132107337610612262353555145760087555222775454905726742472529910420122010563348674025015534994426296263071423310924844513158651982403472595185161461972924419645034242642247581829659292777312509136879368134400412719491050112130044492388190234694910080076784939937102430068409013215797879577070366019675492790637791358318359911923104483437680251724307042640492992550881080058185231032847443953518258339086303341321659033876941988910445289451687844731355525612724318435390047146359471376731479774762958948988480362681244072552900763882297242331205942920413265887282604530983848531149926272639480371480218624484308654098385372893943343669480667969766836095662834933605880278290963621715288085616355449946719539819378441102118875488179969151165215987030278303820989517217795208729414715381695617301145323276975024181953251200292045218333516134860370704579303480510228964018998326528608105497302154894123517538241135221204202644942320725664065081848657708360398728385035101474656654209224459403589443887311607008837965122826547179476699515271799259519952363556618393451988707191249725341908070844658484876577454620510280531667618977213452363402879093607254717471951144360835937849716549250982095500292902233054849804671721455905494056394457781233342023544878100157874695397517102977114043876604745966304857348830238039757013299555223153101454828884960835234098934097815399998431232845617976216164218521758701118298054294060718030563342341219798842819738898142535637312515183515742434836350688001776103315000436209842129192006255651678234534705208260107987399961462940593670202329704581591908756122973686145678908421857663361180979851439234657720398006624771017445498527360281913156402935464538120254355199055929717143605280470435726615816513720764250177899413775516952640438118888034754858994329976552078669352601636754619338132651219524419652931779668438100632182336411169439433765036861488012541473254486594205174007914058389880973109143596127160649853730507390365919940003365825802744538694649571554767360429799500738679558038297597892040202483827486330853410875627220088075961016212568160662997179216273460079615071445729368467168864348754961909724734350572281805860137994388596931809224863756804729269702714158684685521006544825701956001538384643646934174991824169502577812963340010752543403871337789543160295304406554484898191806109068240278792828470581625644627147795510573300020201380498395913621895531062764150796607683651329425427541645524573706583214667399028756863705414396431395443133992120442870676076961839609549280753532105915084624037578758063117275044380521181705633673393590700533914173428815459888589905342328927639110740755582732571167510725930439924444049560892865193543452565325967473924526505022081021738858649692462095713581493982226712904586554175610056861493147868680525756447587183420921930623129002855141579642667074187060767719636353750619028705470552700621092659780982531416352634881758467097837520680116788648664507989106079580285381334553829064123423344183302033208971637123748552425808322632562312029847653387518758501376059456189846084592127064372403936369098878639241799352584442429050124879240522287284853775471785611714400712931342548846643790606210928387330546609870712643789549198234555536769550401434466607789458202114840364018218775634515598638933695627650796389766809207171084841408844365719653288417839429176761980645954448630377659686192953121917701979133161321213819921496397747321364334917556207457205270761431509028132501100823180203468588075528086611681944579281917119833333571600105846124440551250589263434338586945952413535089860293822140105311535287334848777846933983530062788901426936734940805843406027306188887127097181850221156405611560563381631192970863797200513187988558949377084841536746295329633696813649831424308701306173437099004057290445528500187284022019261827353873256550074607667456323667501560965250686933415117305876704042492443110714246750776612505111959869713478597205022851403818314154151825585314716317309380370473687162345183092256338107591720867385512510195764027330540631005019173909974384385054451265624964563703394777938653330145415526754896713549645287654918250019338276770869003741397548013132321558580429518744046864684699948018293635186192557663344313479387258700460325761250514601725052256176263941911424574387226677901077256244641214701472502270634665486394304319064641601943831704583568367417039765944757371972740850297311813322680782359798871413388347599725672061988159714240725477041033817129452550095411661503077563054396036057229487314307129443764313461714364787488763225060110891308202703978018991675541283248206887128829071910953711239040856034787223848175761459438982009839797335392003950651090672329189198962431953835425032824720536891600432650841526320173993721460088572493066597953178122790191330867252885803137598294364200578285611818875913133282948807467927750260700995857857534021562077526656760877365971569509817442328581918561675802323563679002019790403871299932316800857833619050538871483832109589435196279692242772259675770380293813297136453559718373815159966144993879021962175744704947754911678395143252618322129306391678320364001524331442050679752547544285314996441114445012054994758639335802414518300533351869768162945982185010633404618085387994765726105392248836246938526048548535377705626502414256012694804186115239658584409957535250455440232097385871735157228246248682281213175305724338388407441450544422560211380021225897377486354885605786308410703381035458547379129437931626474931708226417130187413814258929338212718652700517032728830455024093902328198312721167637238434449945539145214381201421750299953919717794987923226844927313583840744630506900762883502937605341444323201061829647719184085991350782719412023460489821758127926039586689540439718445280835531915062668477372495678663435918016213795416670077171820733608547552239037960644486063589807084125036034344334277977935118857516695722538254005553972989220079622922068804565321756107860227321750409945827179579290307872790666629419451972082954150753683876135852477420223135306744317894628513335184766959698860682336628339385611720526576834947779180559461935942045681005803500734429099521273933499253862942048549021658365209011485753760715514544329499470809087224236980136159007809429097707267980209139030472078821134172439167346242434514546368448053806770891835759346867099485452521838123826235456529343554567194476513129734643475424229919272411852619329595179454670225747273618486830303340841788040163853320476125011523938633495265710513628548947812343186689009249383747454265295504895955811598657571572645580015201009974467884899276664394375180445740243785823757548007147042767199339020550935357929894926296196205191507593850090388770334643137906042860462456945969855884823266314852976474584034669293832854042831513032388835899978140993021632679326560578118467473391449805369611494064164846822757208532301732643180261718784701888137554031352742822233016768231440130872818395839318186636491079281170386915527152123592638507993073735987316958133851897930345502359048052594895857638756416357873591668760380777517326507493421940885421403432707163996691269698605653333486657471442519943326079951366456620540376842159538252854942359946145937316150604441931118443506922158865328832071273936198585023678898719867158177533430112626881966671054684788920260730609038885730028108096071202964475186240315163633738898047280177070197557835537902358881925349769972260593328466458878948363920341037047359596970336081002386481631844536827463588893235343163678327978718953041494509528030506620541894300983946098126731923747451356302874288490038161189042575318596324987611145173216406839256954736727238735013325899261678358101814466172911651477485018028485278127652548359926290309445268665793595297680800427594469074451160167812226731994937387077814373361117026286168473195867358748715206243141722371981409895419367563391452931369508740093105501165518476925735559131567689092257836189885592744651618954893897240968964446599222292973919741409749951824095814716866173736705411396380431816573876491536927738214114047423126049197663777232958873040086395435403808263663619713798432068042988904302444364111510674733639990376435807528623744438827338509218548667888014356671678076255514888804519211647504421856366607058573520295370689644917154501172149307085059557362246274190621380118019641475434830588590447252463396455249447345428354489872160809585585089374758727177962181453177550122316157329044514314529119670992230723456562855648020602224257773447511020902853442119992757933944121550426489079091472026247612011842178064763595975253845350516284455162308164160722152064550516921536308014412356836742408526381528203664377876607368622389219983954548919640776639331333295104261007308317036970042638859052612115313119407752430597008430917761226999573687088365339900495867760966922214916835928195653814271731082904405542198581786691165143346044930216061472154643215912380535661019045240171807090949288367262858644872823162402890682720437666345991260880983776066593505004836554543412183477357341151708310002486417326385316989688657848007744815972072857948833460408699918116226367468971062677231736732896734387123151533922254506289522323777586549458171344376905113759926861476126829765155968378284243280347865889024945573398941889690907538871838904943984370589170797349690690977238661388510448086253864790210320018107048893254262442410558634561148166668486008374657407410400200921533913608125960562743295723043530867863220513723053768735947210450072989546358800414748916082683377845944173912887603331487551144971126199700100383078362016123131591390949312036216890678568916511684532746641368494023739415455049291940156621455529813139926497440066488756941975426551524322760967422299597062007017851083275802867619840989067650598885830251236140443121926113997426879067931257873126291303612548890738759466965354397204439103213301834133352611710820535807400444441594490037971752535578446962764730227372767329590437585656278325426981881531329213030729203848283035345194376484410137015725530350869561520578589981720073733181134393571885595037682990011655811390997705492248768731214224334629890564958810651483098902202077442852702075430361776778187190248636732293796665537919910481347407830049463034541366249145680540225646933142049917650312938953756707910143276525478956916687563430142920661125500090162412231219851369342386038589389560472790892569911235577185502026985436951442503748973808218928868868025398143815333264996890427720024724344520909533213871263531617990932031921390362349102371702840357675223899283702284684131731923203551266374691363543320362031514017428618560682073947156537869168505723394349126178813366422802114422374180396018134500973749785439574729051681281251530611421732921863351381538563224734780953614631686965771032304001274976570575203880510897934089714046705300236338679095965575615738939183098004677995938003047841715629065826809962105196949306230475384290171501098164716290793408241083811778729836953127048614710933749744514488791869166957347518310016881236819327115848582628099551764791512282327140969063352007474372408707443217930659820546984431084471157990362041405114767924129081418566259878217303313969424565734274855206632668875902271656461342107153766035476448145993596668772091658886601110947187623164268812219409355592039587855556619934472453189536533860866192187239273242254990428436685290232989847442441995278866747137769348159591484839256884343086043348859367325385192132373483538879029126909442741227633777069152020895951013851545371132479893863042613223789511861538513103364590772749470682906044710043629389168310714029940536873791662600821676157356266370043034579831190962896794110832784826060876243205646490067524043619677196204613462293388226670132006001263307046989093053866201111897661571356367482405796494585860575726020509779198477938955890515123303133538975475738336608353523106051408792167214069195230403351533152922093377340892430033507125116613462647761650177408608380110846880586163628221304771473398005910011058131881724751339368219645090297216671429818441457223147608313570384893379414387133329635938569418937817365951405635533441613891059197756252013227985016054118266666148782618642941583274545316332384749376155798450722234321323689852940323692718142391452835982166772993495223229983236130980833103836992975593518459053440475088125606664732214899418557836998935004405833416566780885771993377281191367133502011526104056276849424531688173364016094522613123792139930373957816196187048337579040600750930487412484199822231743590547897812752147934659352155881099470971199523553645741143901994413545250353123356874576221097656321741255402815348200220478196808145719021007451627599301360767431896364841616742044888587694768263195562150032321761352710834495922086652907654636879816778862332209249277609384943403891302790253583971385925687082384090192384563984248196211813177064592255660547977516859464265405455606656521701142892691266410934655976457470966400281684198964700667810139781961196363994822041236318979716369028635937717419328731151316893784442123733139849662991788086037766402337263526637459805380909304065715168054965657916093574553320610269699119291889984619103752697643354137759234929591249274337031539625565568704233948229163047510058540724466982288789294303220290032935981581760798663776498489679864434374080346490177405604956594500137868517346939493156545116836041975043376725184514672454345359030759575621662858733948491181369184924392870054949825299971295848220644174715108630137366808918974759636633656684336784405026441223074586059026398524711252036875876960992276378527668203388243771510070369894086249004087350439634421438497679266948571382175119949238862648916250341539043567306997201393603935481318403289106740702911206563500568149370306525955704953683920876224718704524333611995724215878356327291176322952493150897761544715675152252519733911798137807941073453936664457073743443449147312521761010111166687517751664415334842214819109219893651944969477871360322470616913171615685582374703426970569459604897264070514931871539178651305874904663383957427827069736614573811331591320541351076018061527165585149659720726124332162734736651028032057573199083020566143475187600682386348357975435461579521223196853628278799872193311261185786526811934025955320502535386327207954712288316756564542277773721796390306138608261009079407963616389611564336618250963609566085374456283167770702049294676486758902692235307241103790739663143712841343406173111806548922025342026764009277799068375126412430288870296363428369586356860527511693649744607682966764637187427785273992606376799884723996670754570551880655673274822285394913983695244696344695380203164498157385410429013864846051383722754748671432362000955245948542704259847983802082979960945699634964064104226777483362947002835156598889648482124028713579312661794348464687914726696107997238570503263811065703441278948318564428999886876504851100594595284309280831532624636120128674101280635275536409631565250330156517369601607095925707874757183467107489763245322432492051668248437296117776197018720597794316948702204851031046825947987064566140748773398117463854508059711368893360504983906722714758176191887992364324080400745268919491846769011954283708502532756459629993329642096923452157790226071565787523235139420407422960257966387339668783910993371851475728189081266855448568190766603138975141002425455543312942674934826048230505064533061168666229283428766847468231546454803502800010565972122782162558532670390495980110171722041620946674665834963071371372141199762363845051502278352815839521341340148519751732189275630662535234259128863911009335792439790419261335470872339119715413918432534060461854516424665444587304517386998614434536753953220409257567636669603561608380786908061925819399842445616028556933365393553580900179961662242908399578032002302104726492602850595699074087570923270798875838576083844502581491797745955581358038226258771957547264731413109998421630183630905817423198568053466193486738459359337862415811513066987418337509604525024599704036254044996684260080404579576703375411681722776451173543582001558289204939856847563305175234009464382884643706149709571890195981415904750752316925803537837765989837500946534690184524853050917506033719546825162756530175975636308463757993288899832576807334596674421037816755461569896614621429955483208147141888723649220784193867521917835885748698601391864192214978738557145088224215452354911838748281338656276449664079542780182608587683955544406107732314985527680893822723902113134334402610540462795481063069691424135932626096947247128939677317557236581122904924396917432521552740685712410097360466993160991549969147351423853450561187265906265524697840804808507462302459294647354907952054982840843669113607491602779387270088599141943436948818222026444168379386118411152947091339879492689981326130425139065309133678195048330823713064381213290853310000374994238648721722063351196175384328672598959079298723089517568826771667393536701677781257419688683012121657071787871628637134766976519839553784134986366436862697502348535270626285628155121084043940233897126909299089964117514484960805420109021116517915141564104899418282235943161746478303953186509193198862042386691033135833318174767873171888088149187585184909196731980381109546889215891441526669120452733523177973572558267662735358367410395499559767097544426566220967869468486059687450089809828662892595105015475058333494269710525622094938479632840577821133860167657054787462877826911302654926278599701316572851125021284532842346211431636601369544286755502370258766896768847733048443684517068074278664986130831908153814391160873859493649811604933135468757918034538369672244969827122391128441774239637281822931169391338083521210073064063233433582954842822107778933645746554606690305437812234442885217785925707362792570915880582663485150308342410477310806461577500376856691265823393836878789584684005611367497402378046578728511562098602420695997661482268083556914272348492651215978032690671903092889573077462727086541326700379170212163761956255804728382205032782370201261847163571800017265209219998037277774638693526416499888691137712101022118754106430667358148740688574323657745029154117763167795869328418303589849246293173352956173565227805343674728925535329557237722658095240022536956115125943717421302976350221422391417813042295780073439856289136176505729193506469929014232806879481097090576941919329352568899712827083670472094488229794614184925858891628072138980274486021702258253954624394724851234441352681774338933992587317078076443045334382811642515551763494171922960213304163212191478264180023186836770894216249511941718414968583598940599504166720227338611952066363900155818960300588479788332074633968025948497099028626604157626452807005619662735140776346204153840603660681303874014712837633035181141158387687646585158362629275065391939913021564206853317154694457206819034605714740006573316472857835257263471099603225635061300173406272120779252618574239901916444394780580295360877579637646149396979708351735817584787325972760783179840371529880420160561756737958491139167063748973197547183320915310197599196071559905886252960686304564486469688872332506652131884049572653771240683249163334970129158039303637427041393201421267418618905225871099570022641926731222807689841801714138413736643945985397791098609081479178879684359152467952901632271201265517631126213214507926628258182397400021574166551526076545379357006814423741733430915467217910294510692634734268821445351170476026801707497589997457636775650537319407215268224634157309341073973840808801883000929448968243865510522589617451108186669683842629810328837454374059864043280276356768408319833369239081033253206502650346221183599082055325023777824614893618022882152146153703414408730322466351255485807169027075903855142475277867545269914339028675417350843274572647201761811586507354554387280920016086499768101399873401953955225272602661736869616559898295885584654042986321251435945059467976996912400478532786830970495010851970393345721728311274805213030646752072888601115001771275283871844202237665041849842995609670204832330197558670088651079847152796620967221567399565730003603779557437007575162812171143426605040376875064718786263099226340254991448945902773161746853675890987969397095960141822908447366627231883777444096610231748273504971728697573051203026964433503540873243335150409244857980316496584669607605878977868601649051987692847056590704140449989524901432829039428152009670304961429058773351401211678447401745579735149155827193755187580199681487319659565409396600110892820044968436092204850884217772590898936352786822466352281595375865145032324927980579263997587998758612956012692268890882107316876080903574047025995506812117599233462699918554449530775795626167007785654507671267280523661252555755002975660822542601970733078701016689881743076642513081186797035604503953694395493727250366050086854954150864918444101107798959710798691596536880248681012184194094892833541119979716167223168059342130368962767357452961113707770587196195295768065589159041768422649844283746402538616232669134419216782761156011342692266028620705555377492851040440599873415958734948179346705099066736853382993354090182348970743781699766064737278836050484089843987477932793067272862004057190552114948573346106916374016432527128176188075135629445360589575709342328122742550942417719049152263879627352840652887248395985691018219719311470115413722466986006786739263878376850856803783076455881774520588676021682571926089758034437424933198910645890173065118048781812181449993199854167534817513011120221839827464803538234113438873286274472929648472848981084414129471724702782691613109426628807011014042671142005725376534232325934071631263171523326227543503307826179230557004070500289552399697145610969309885649644227892333780746883497693091446234090702116293849389938869517827966186657411721882397067843272298564173187808471902182680701578363280922003593099209339054181283142978934843548804909241646529012861872485469152772462972350857247127842585665835835523882994266290247770006346229777241035451142941409440846988774708571001463223396143348762409203762924148877938026674574817833049932790438930280801738105430201995976535588833402462251644981571901262484396936896128598672688435236374169890811930650971508440581358930762806347210674562071087470534313675879680975209005275837192772689773021713471632777506509904375036258652331455948060838973937455037107243156979456384395578735930346291154943430269095002403698933692561779234910932795128227132597256122300014867298347854299169025493333636796956728833866756423116714241159360655187308471546289450102511137654284478059285006530691318576627589003431174645799050301104618499165029355729008538514667537386807995477166506518909513894663583674462822823124679991125922360515582056880814864304288647939971881955522890394027095450664406727368131411620476236588334714592706962654828259899705721233338987935483997231063024073813688193429532863615704472235258166181666113235823414745227751830347615821746923259082375088783781867015516963284175340530978657309053251738209263218951797713757190670529196794364698203189081121936360023414374177840138525237141913625116945872491643608896693088746780395246633092299775928376096397958275441871511296915039210387724329587043466608288189392370347662637719645143570455640159890818793176167807658162376137578014322294144497064709754112646991301421968543931352838187074019388944781518634303019323494422943523031830977633585480652731431220463696250802953539032496568220888927483183962820731942442901844469759998474120645034238313492141127360120309692774383008262576182673447513038434553399911861805005430931314359906977120489290194545433698042909507660530867238500102476476795516171226744479703640960155200968372023696066329770850376363492663381812875891512098208479313423342826633617634030160342328390760063379120307017899932882045192547587150901290676355283235224945640066048335696265348046620248109466607073292899038185489818985436177044633682299808210252137712424723707755898448192700360424839509628235657155644431966437092110452497408380151477366625908601487293276179204591149531262158242282840095423164952023831401422934642599171885461815479243583984619882887446237317909183263737220718128937382624971315924264172265011993435621492941301265736840121647517879943133870142451564313338243874259843050240461148966502324925770355211959305735632149699733014498629370730060298832361310227713428536469070833127383757366886729938344538231721350486857983855771685225815753086625043579748373082826667481782474881247535740310805574245338036905046152578979657489036408966516021163611155236998801905965716191422703669134762896493162645381631833119182126304000388883077255009185654579975195355387544447892470077625514224076041482330985250893721631807584843392777607114097633011369426873160057855861703315080961191437919070669113214694137510535762039300106336308411122395751195734568056928853042423646493332204775155512004874120354032991646004844340121567974337361859682517416085364733792250418640235823451661044492562011637415185615663825728535512841698626383508917763957807314559404219211316743346578891026861809917609173817036479391628935630263816051446390890064148130349899300436997156729163311068720921890692849609742437496984838366084341804413024858403384552268118226678531999080715905802216991220750072391299683519624173289506213796263396389226904678005389252724904793706717935124099988956755157774545386403906610143782413509919982372814197747514829340761649146147222440583921314206174078656507451420706627230542347780896758300061931996796361939168358093702057796788079856866336246484681783118871208871108061810961283486422580764578486356289477926516432872479064434399447592025888323842387319072318980032793353059097551099107941156758770167089782117135760681947072283347897299865161579555584348620386989284039599343329056096969413422485550408823959761895471524772401280954206956040897927096880751126275694837993032596476023585767065339921258547950204471677491224680089634945238141425041854867010976876424334108411676024148481300275683915824547613994167745987492981944861686094980734817995745405426023108273627300654164439093115788852258304927174278780279532327378580482300808845912373880647779615964196812044254443508162015636734595629242740644242323598705400885255032130262761723126437712226750702570954165241985750373153271117939172644456917172686237449521901529171196028862256232930971745188838577057921460100931717730891203166125428140308507798052756265974373463617795131033993611366030688454939632283014217170621074817594130273052182300100028160918411221749407923988357632619722138377573826215102045478763674581328919521861309705361599802053387092145199463933622847370214052290634186949613723671102212814651976525533508834656620613766465791063638099158272077010540359316300610372431527024172385066325933967230421221134053925509732664620929938608475344686169100889753990609983725404332496546012775223996558386330820763043413050033637133813385180550664766178255054358026711507434092719359817115229277261657760046502458516300101855242178639220929827820138538436722517953893844028792262908616136337501528775820360417766102159982205777247036716310014896246815001246543214168430372767060755474367001181995302939247255576830402804400085335748434311406482856914363695865653678481760248536848940872073393468902945915532192677505685708396832144285440994728012658639615088461389225215168050729663213824682993458325678334075752855821643553451201297460678893914190241477404007509578252421344977182212495129724329939288654042670052457906324347495739911454166786893600403277139120702134091266183657116207242022564386689705972900264236676818907811780791029563748575191756077838206999137716699117807807520380840527481735407676294840957470976470392167929129279706482069594412475243415243885363119914736281002758431519116609876950014900660198422897332069407458332227722801966416868398286996913382539926429928822778246404153315870084514245140570685170848142096784353594242064897513831245577290830576528005431977064303259960790773640159271529353898252937278482460703305203370966027372752116602710993227377279619722820264269947483292003838505666499617650089721600175172601377986778660702558710485784584876055617734629114836733871632181445492938872814358924611154035370377125346950313509704398566942114719805667042447013471883234125294438636470506406071373348183084232119318987019650007998591781222759252877008376421822569826356845396347363873120276475122713222378304955570551873183342699850022972829241880545099901926782138841761183835596205818598374573388503538164787843927218575438452214688980659667751950726564007493694049531322347451290582381557065884384509243932082479682191437545194982296087999914390688279568976758224921096190689919626361338884511960518841061109647578521351249164782836292168358188383152926677068427309910500844101689925304265554496900593371528657200366957967666792390858559101617386583277639839562554793924575580292225001588189614964037157802906910837405943926436292833469009965802927445464959615401067835228796439064020390321828300604017040889910183743082919195292353425884155111930833228847813894719148680487192327111517180858239228218259692297786424178067000516411531480394573341273838833550233240109320625674474655857198510823259917900210714383241999027488020479399955491148773357836783421798319417002288489796307095728643166592913469532139203370528418529637825523656103529399502513055006003080263953002384169110472375028105901322148526026858415322135731229438730515297690838519804493800593431750984389024237581791373243765364576426503421570498450677494818177169137300084422721384258296737466811373493018621847597550126686468317541609043127476344117144621612792335964488714136033465773245897368876206371806178014313686923914596951220519017469153382860224359290512023804359638441659986201005556468961936473995233982907419012822703362921828228680583007339932111784725033753329812072651278689065041198253299511457026709827371415598658131641592305556681528616558279836998909222285447690025299783081983964528128454313457608701688373311252469925681116057905197375325497270375557644707738850855556696783005558040968094685653346395903089461806829301659003272168943653600828552841324931097261583715266887142510915774124360307979113316115540112149679114793873822775614364509079997035545733810254025996834625815100626476933264149999977759021580845819423223404541633332785206221054494182889704252177884205045178874157549195415527790254510259079329109985811306495505392985851234647140336193871674528574553798801771169298771262504646867162734932534439350383634482776904633656157510291951294268227298470404851357641375190980145781409705565091369221544381716335046293155951990024163861041679472189578325188632664266594397937292997108365582369859541998110269669740117555049861424768088427804459996749911770084790149004604823957742061698616909757119102158813665603156607455283789540147266112471531203067735294273246058662402006032024863916016008799725325262557866334937426169568111067674417659167123168156125248503390932378932691956354692771028794933615363028738128250041951912018138785560360913327172661192760945426258441768484701985191696950064357788755718192760338319802697511988427182891293617888352037222542318977996415152179772773628885715991128592382787696417412266579799797030793174975585525058484947295973408271807938475660390266431822774428643193207210794017933095988984055493720453500604057532759282722574844460581406832049438168587741770051867768476336867163470591324066971164381438112758924598124184096655936985213479075370772434992711499132238231764409199456644137459257778061635381200348264393110256387646336234018140382965249780770356550846841002918232186583515569963029404026867901173980986755423168803007786444942909920141681920600101135375731587269688522472298070786389429487567817307199441692606643586696868863768621066152656435909708517899564211430773371178761265706542891570473251625288964496494735333094087897939546010269563047909875204364972260709067119672098991244719879934430829954620335460097016584154418524196502307523523026205007946459819706323349116344025553037612422936041936239569770295274462885170049927125234714957329161177504278742828042186989878414867395360629732220934554912477978067357543501141110920969042278816490309632579895223227394938139370034927931972762287926826771296585103810614264744315489004970399912554831858263588998117940755115270618367987066218043337287039788561661301618944679070299512224593713597862238180379383631315486852210788345939644619448346801190381604855967314537925860657553618050528002205597877847214588578159699407934334918592684717442371001801844915878889849850947909842130488962212391005687921264565969284837344062232918458595821955888852593813089856349666562436160355252438270619450431286490221677506710396110622453951228314675787721657361335600141434929955438556118193745917906340576969314387117465160724764186914551606050110873521811171122956339305845769119107394507049975957030947103895731056194892067996682203439428707615470439561618149569182749468301064952719670186842815190725747633986256183139578017901897454497700847054923009040835521582633056522877631240093565712909467228654294632569354849599889774798710495880544270828696681455345886975773842641232104399949999602307393181967783281561375690224876033072694266760718386564013586700051369343678177442468298795457770433087025945584313818877045793420478799164326171504615147374946707515127371827502343813363107516932317531805170824186994481624865167103322376584490700030366468389179538073865971995355202430281700014441441552913357360193476292775346337985481703248729440177397806091438334167762742205986597480517665651905669423550513912905285076252870593270701783869606343189113447636536791854613913847376302600302501451446501438666450054244818808058637187431341970334732644128545478628153754432026130550968174054762197104763141096695686701770353371607577916369903577686403641867621401775030226946940101678342946993343953215732812824484968436698888367799048164501881109539266806549054441760738621220303768463009205054892837920590167987897125258061461911528960995544067559019847252064434884439240170749165027182830065514661972125272881911709307429849431257224508323719114589282386688094959023321551643719267880320424073031644823794765726158212941824282824187267128661262958776740987428547301030146577414283380605135035084843830656793624956056511688016467837938470845820362120688987397574810558723456108654108980399337354720829553322999802674655483633607433376713603671558968690441993844088776556183749413652877727811969291599527535542202314976004994494446065747428222604063870484157967517119966729693459959843051785449088022729575388644385575845666769232255321944998113801148071813622077130618361675596731506515676160723887271054988189998071143080534398461341136446199211385546322352375248267858924785762451955406690623874002347692286050557168111262465343252025450942669010457154047263351350476992448169889293225493397276523142339777685572546819169408373659383947486026174065168333658563159410736662299521322401399400324003010698409178425378160336897667969704002099582610160686757722950303204810909615137380819429682356110686135257836776631328731411846724537822987668052496084729130794343114325229937810148117590989268895806624161786529428497889264194985063708811854798554958403861792923974463700572076626018616576317507402186470788263148008945082112750545159142867008857768554316014037946446091547430907868554778056799260786284466575885408732873844830954948732867254731261428710743634949231488732751551597906249006563957583390840159216517110410598486393198933606641387172647112980724458127766213011392947659163928227114533986956192989948830352719626100260978308314093927952978687925997255791009540473566739905429994804841526774452255995175669053258189216184473133432722131439390542070461221636443434185934370549640916190779251433884589068912073451474278756081049630142527427835781061407261922347374165665608229833762011549038702586862502402822594844717091814701508918374622055698868992319213134178779197260046719970138198537533452836029792453541499570566240314183674249794066806133091244484274871283867288900013425094887423373902716151153712088610137049078066564084951983167173439608180957595694440822784552475770562941597490976488023000261840090124212747636077296054599873623679943731444607747140115821398549738112776331339663009205825679195967460227652953652420956494895064420133264565840677385461424610552534235188403799829093655181816353498627444132338098251288703836683754037310062163281495184098678988110601832826099148931314615071771680552256004048021016316741866410519548143280775982658208846314453906801252946048175987950617131701134084001425043686432418941678389626968355835878300333473426077960702107931732295921511578517404043372248554200135902098291601426117608169423810240973389633212012279652704517198414104944838833257085613751364337856909546018074423008732620070904923761226506330283175387731698744583801985479178509272732274178696968061571846529026838521926296244755868165375081345160251410331695665757633456604509131722365784185613573945080766854175727279214764036347287078734178893492924666671794648593833312130151862242026761505057338911112731494200323487017891543321304475269546680142192802065314069058493745940153789049716140220243995081262215965584522677967188721033581621791013627391229103170768937378421256579891530033598003089429105537085395660748275875142852972571493264094414704545845116487538402271763240541097466576567282499131972040854691178153350801796987922074033606283810821198438905050667732540262078014569754346451651310852334265139838830423849154237499288191577129894006639907685551118230676302860333799647530318209661146616019542877840483610159994342659815280633028163567294703260100011270216108647538566602919036331232684149267899800581037428784987854226140580509512845262574759844426590163537084869444614107424380940897840540874689055003652702012328158827621352373965129554116756867375278015919271382739554768946128823266393187229367850375284640859298950651638853882550437702591884343196435433578751911384679874414288012380112154170717474737417204928449351780208514948728937760492207298687757450640081325424904864830617203892711938259397294645760426604191829317047698447656051302453236099134375796631308720313300065216341366064911068083731457980124085777132000335763420179436986100290415344991303687240425105593385728444850158466738213842299917240148238661141599329716270892457848574388148681515734885913574364520017066684241619536546187830609555569970922572478992996749868324689589176925796067475751441142345678014027641720796553483052212904429912940968025187269139794510182727809409719276553643261764052490898792294876075777457901765054671456133081706287006998930491209592040198014929724138183820835903192651623801189853936467939112002891827667442423840921187775728862704540834313933639583491355483887132833032566192063155261616588914799177643197169831074426227445445012850654127137801861221790367962063210989481319716473045330789680328862198007649585889699283502514571839088153500331243909515746073242621752134452610713625904543939734577827841456238039858114080662775107119249637162823681760190950623837762067118054592502804264054715555561661350030652885798325259679744753367002883774277179289232317522111854826374572711160992732952136975624648230606303015642519933495898896479366504886849555884160540397444520308346714657468688748919942479959731969392702492485561063956898688132116060120506520604174444147615110872938616798626021150524293823513170921524899353817376795857792236936866599933994404883365600434411742939164274430613305048972510183923000570887555131049438975040663960521308356850951867828776822432348158374281316196898610763731211478994006141200470952668568052434658104619889452568760492191026461917167981200073191897566932005467240388099720691502027737986550466190934456036939228245557718851934011602016900994772287287794928591777288414037795274703936669274472979338569075674718095047111160365705431967463897339752992297837726504919535488644882387939413722557765164568332842222796051897609184313413975666220503025788120888094143889458821406076684493760432939515678631567090860402818786162422123323909610097285456527006385638296435483592551464661313065477080542375467653332470096693738197010430922949839935731119273976176954052553661519463276576578890376453051523540799163956888879790661660809652358439012687001059586907820943018122186124535059501983244269035103046021084897153794107692553867246238741639452971654168923153590143062012159663463150352848623757484061430470982620202393345827181471198915483482393648740765060164561603370002385965061332302347362536762885914651279518734816697251660231626450347944710566612089694907098865147412297049793494107887582487042851210027462257397160084953711402400657523662413477211598898320197716307228118160152838791425410953525566196886882844010134005810109439983300715471073819222302103651030141235513220253140339388453038666526666990853795936706706356392111018154641607832603548094325854734314251842498644985544307031613001918045935502880743460224923311963528310719611711849102262906357308302227957814479368872427319690452281361961784149437379283183634069534488069565413601793726935138631130885748969569116237001506106257689365500914450734162133664720522710272150899599347737715220697589321989488599848730413047155081437711962850913302887445129754562374906774576452665096697970862640833294364486770117659769099398048253136664314498253839003846551760323766012122805389222589915660657907702614585445117029843334754472215675525150233545445219567566168745751565923821583332319978894528783246863389760676668714233199610176180710850971886916000985304093196522195639310580630941241072293616778190211212756819502160649389909868587176092011476639153645489590781955814504126798771993930132662887890440643061628003828840428608808170678694335310908312904991347172383571090825139589473666239447434434651200172986830455891693934591202279681319412306549902147425786712989800078924836215840094689412288672853781144441842593321489078097804237001792772031360866952777543831632430640917264685398491570181918718573692907315490566556056741915563483561377760210350723879883954500671099367014839845548884548737474386552114832955958656789520494488835065012579468410542775860657553636019132804845569801611277035817070909856165863557374091097805328990710143494842185640387166749002962803091593091019130975897384570127064208410771081151447446671369909785171926261138846280283649743076419296100429358893629429239143970728222453310063763307180636792216703301402579209047836778464973768168582465036030949043792498810381180712676916659457913221871679739880324044904806155357844354242459174479991269853606708813733598296271829088327720741365544700190896517447226943647348721573287418416660357474723233417539390111423846419940427254453430403879513175559685287346636693089547920894344076899973723287857922830874224446669594029416869834681064833463101786172387652145989595908036895760476616347602742521654928250005593131421409871617904129111981064285626970524311885312485784577680772129743532798478264996668701828305163982184188053770047754934938071763104552715926259011868932680159000844119080155051732029066835306002050409091692952310694273646045703496571141155746323789042891532314043367496976943504404623551515892361559572079167255003451309514729731689487378787125461015573085660836302293789307998050439934876721479889450860051972697227996104371297463112810971119078889106003501345335537690752416490860881871186902985862782782194227225661153987662409673868762310872255017298985347264836649578604016805024381818788331321744266693576721014696621002172709105427860342761979939961922027232281909161213619966949218560856841656608126845877679058916880507376121100705689625742730930089607764924945304587633255628912720044085851452812532827216530616027055318876274630366639222225005987369321574710438505921789694818127545177431735144407541191309700622628121412460209698787581954605247376435552281824147606491224767297694580794083346268667962962212067616082910936738091492659667552983674795243907711190780831412798532711141743184383782494438870580531480266940164180672245749225468185021303077286076313589303128533508933567939594688784511532423716545147765320547186958681001251116326468189791467392907634495386248643087168209017959143345143837205163646881528638640720666514246469669045430444222438663973650438755174999333499546388188645713449343126296296247428626628950377787593340802273930286209603651572195906969311648313975608470881640692390466745521667712376546225687679630473334685742562698200668981060541339190856303062438437453950702166650423970530407105239224657090035945231948237649353911751916480259976095094681157059473616344854814161298539556895099510835340331090826327376539149889999757591712603490904980402867545674564723492673177240253859043132963060591301369987555346967395326838527671224245777680303669531516190739600111165680122594858935584478872476181107536934803518987612577838643966871345310208871184002053694320114404551445042723024005797444690152565843663873310141750779412327823906199097187546329961397535742884500940508810421926344617230843440648223105115132701250709445593438293249082997155022810951699933700980641932335483923983976319414325158060889276728205279411956423446485204116285384624143801564975022353558514662892962857929155197617969494266677926257226801704495640829246515454815336071394268501212249412011082614976288908697849166189142897501454456754255192149583790217243954722145702235237273029335346291551178505605585532308023992075032566040885693113902293595405720607041288306492283711244421443533908127725098584381380934080507084898976111441989455074992654470085256455659770795828467602912065430603079106707526453165316600080005239578078478077683850999873305873711199721637903604112371388760527962623680789243317729464465204318181213072039430205608241482686744529701566826980888819596351521732722864961117103967099626859040375641726268077582325782873456942775930244608448266666257841344183596551020425174582229443979517994428887379138047701097410001211642708097475063191759182646991976943233591136310828318752442919268342299719460766920078864638388659875328307754672514826965182598160587393846809373334953152925819943637245467981161954726961919403547819917745545349683122438154157546502069152190361695594591261279845847970704337733519041841069934826649518160788834604898265337848360806334452475881950936673886738779061903403533737999293756631692487174926306981244314178114784256067825118849402191342017600410967103220795430718887885414021148154008806892061317807529520493799325540248437572246518569441860205348841104846683572831165313509007625722221201221858799988526419642854677101566764480051144261321571500859145174863024739010639206435449981346895129229959485100647090411075241534692496290682531898847929032500295397864352604893258129206111301047171487805121495868874683821099283795104753036110410138291537210904691727065749048347511908224002455401755260859789674687905449887493334060326566649105781541219787605003248708074031932991877188486653549667008542335549238729640742272766268580849685949485453315451141669179467735402785681096630007965020381570420913485277500668869050894929021616567599544173581786595740349659344999795176054198123384690485843221003806997371123460385220930840789179553975725749274572187631490858558495307166638114535587723277299516153638466587752370120664574488492032764384559950890820119572876657797331058872193819494419269482969955632402504093698765640664989036599241091871075942749912953803552467179706436367105381572816005081424693202049248061033013001751416108204230621254321514338676081126598602320688972035430928878596320491441805504144798328065338098477425781860924524389536584912119686903741418278560026499425722800313697619558259846879134761627886702594887909625357568578445395305104138113651312240020443247976916891872559116049880992005729552491836995241390527700205307238695030660092180788347042756696181666600132719564785160478201751345776591208161797502532974083083195170668288438086386828412174219509695918234782296633695571463807087910622124859845652481228373730340490922161441155675935891509447783155683638126915804193480515138553060253241832924313671123935132754836162182690524824885597276411687955810895337641093381308908013825032282525744527735061730652439575006621447387951210440081121868178788043432583130892946338294616654433537776113161488888145244116937657750876164194057544269121442836687601044317708488259904393839590484533957308694865775094386979427785096804145756563952701555574835152377320718254229368594305178975123531455711255734037777602180749238508617411717252637312137647420573211399264372890318432815231807311573168918794020812054346443098191359010944060873411253464958905600763868978832909551508077985941664571041192235311070455083761494385795925278044320307290707071451857902584460822262914952126131444019889906281649767627261701707621447517385266957855462489467904573565513284121605226591452936577137445269247034626856292233914185169361945557095382923882466303599897723865523964312937514610713896537611816834612572103572880748190351575469529899502006749252256426927531922581606697489720306235625237542781460639734306347439246898193815753410807599932213515734640146209885111427963522414561879102977509987427479464845489465838913679077725042640723783196878383148777914987534581312667700902217564975704119673758173629449788981478087104868290782230544647415944519849433651539236846715649827244380842256229480316346031731673724100471630511908641673287533226636479039645252408134270080214853907773265255095865833923760566867177147612615532388800283244697838717558233820271989220381136701912191696378148931952858526077165075188509549641461018763561552318716962147571582415397017604838946214711198576714619056070455836588582908838719713885259383702495339065500649040109906087805233507049408542086167143039973787821245097177055782845409703592536603113569475708127646754487356726695123862044375903237652504755230441526623675612279080471965390416690206602353238986994497162058336261675580542043064817591231259597513229104511974091843950635942588901314520518989112683562401309711929771578841535038839185318890742843798972848251249705385394763380657136728723706947391165083102620619156293879111419959138430872883272530980328175670385238371240677178686995953787113515154099736704148677099680357515245094584752689309006602045204595478313165095233662952085967368411816979227876843720590155868566260143458457222668279167983443550954152942643443968938943669967382326095749046488704730083463354786725475337244246601839302742305430835125001660867036797450486336751202571193349811249985779335412827134364040863374765088991864889980060091723030817785632064706733330485555053374408507497736353175183410141510160715743411219223594639168698367436360965125058823597170933521761296103201921608251159401357386058931071117602095980084467463094411777205295358952613301205237302119891731552794178575452837466673301266761741731283754562173595348937014336369241792355675119530405972297767572462423977152134518594755900342378232015263274634775898639360259973496235233063524167772727087826787977079453229256135054926295983144927678445427193266365360163322235570023845462827564592376198018627580581723546320424506610805977325635283612742718649675513963493463938900885867330501387746298134509202271248952202539832254214774118038278742910767643983515903810747815259376907387242953459022166275557127233358825367378939167857324595066151173548162785196129171730049377756864968331091706085045584607343931914878642438060944602083988543819636428657270793689323987362677110786887725508949957863248959843590859054865951462862839562319755723335896645557609973040487960770429427606650289679400711967018787506871009729692156660548642775914099759032588788669492293219130813116660920976083153783934351509555332156036995726473496057911895537741788963004376928974338715926060849106219576553544781798629578749653728541721232057286451976310502703269522784987936675544754368165952147821078870517615052129857601534654237318731088155442839548839826167683889029918520087688963152101130326344395159655907538648298678594146009665444660729250860672350465233653187566576041164699013367234187068954767697378106352922152409769999034708776104985193640468950445310280807029307530615013395159375277916364198929902537940817125324638183614058401207313710812092967182058609442995076110620911807958466355650965018865786750543233755514726917021536603527611081926717472981486379325508831672538404297012633401446214454830723503892610599261310767288490057676622582703077350072719053731801419955278951842262113954225275643784276104559650181126290952216522502975009060048110717156331447506086671047828779584806073474759935941408078431942783426939268337709351370568893398807490787800066203367472183201191221459206065330738908275117363980167327554449084629734325858089074184126321805048275701589534297295636947530390628113118713727381190598748581169942163342551758317709932852781303122517859252707853736375761706746403482680722422299626316029599670063988414024241979176053152825934084473216828786359603354827486106978618038921473992623794112067802300894093679125999960029906234443136773585547098242118913221739154034081100347191243954276299754388914497682886598380766049894018561137093363888983999270208279764192497156544740120033550055154813787913139779008405268474385111011359518866333804251788178311477655096038222298534382028521252698625270035393591723827995117127380265066671878189949293222816539121983202184511883102264230837430447167715819882030658832226395454383232583842211633920140535463015556480517002716241543633957057003106189439160862158581666109102705437725782504671097173660954922522213195718548473090546113452931158549311817084323639624506375410931643231356323327424531816145508283073196381320790839761454440765185553667741244358026182386552145216466524476187897538706081983839493844384416162114845580045050532489982266210315079847144988606583055579575162924587134316808702884420846866526178187350475344391909247539515233080509478246400973374426987585365704531328182642050960738567709003534883043158562437360449354844177780064208297651665811242096272506653309458582309526814982413553448641985393505264780257045376920886095233383602484096758339865872594063651678492067901312750268010086031622937734232397429346566970817358576727797538823629011964577915420876534923416097310783632241563708974276618163682627512532775494077078704767504839946229973595466492778308870551619214644448639871950251163458945221290636667792500986985041763553111018283156824519716715840955752643488481637749552629778507463438425606281957292974388887911449136084350937368712474337914364271364092291994546859257118000104045756751883933268866913379701030098742492486155812022929919269911174556031376796812685719592138737277732310003483227452051764323464347912875200922041134934901657269958690590784672383081345630654440462239936055348032039251883057302548770451686306329690297412055299533706230306888956973062514374348667492053296033394292495046061598070940602268198544861748095033939038210408702244086530164231399591706371564472842728097020128331853731184573975516497661204786884831631237042175913052360659144306610160751303378605028316330177150681102008407815871304241415963685803785210484358629473350608869007142021638641878430415977410493561774770376191030234175117393680790926677974917935876587595691033471334400616392420920899973172006141462600234217159776085480814503872867381085413418181028728368145969987132767332497052101807410498355502693286437254625906655066491051978833422725355879794018997753668860541867887942053266464773986105765824229237699458338465035489394594870285732697470213676484516232283653166883099193319459438988618662274389318299257784336183382972189846768455295037245359787843624125110847581753209995634919442038198729554325686142445767149639786939089105396876475366108698110154074382734557351029393204149799595585366578144681236082875865733706795696473509790549724252166984084808425590843533534775196973458628020012737021937272871502175473133645139908506312301667963436328446539824062919278823522486530890868789758407064051362591314337850404196008652539698884615679944464913022188816012487441726532659251255964810732276341702824350017164365637059316793827344284898364228812887086409326738131769668691211218101420682245171300322642481816939877614631150086462654602495172011158448251255223050762774292452498639387428720534008203773262059363295254118116172493483240333612881764744717080669264953063752407204598922545298525207238899526658706089342177825707305501461901443064407488857667231441585451651096672247450111566051914787344945350435665574059327875497497908485786545255230690010213538762382292288143538120043137247100407957649941600758655197036137678057857189253665834286491476238596027197346343641021476228087723533329893444701977413409449075403419333796256845239491270193315239710355843435582803730683953031649194232673960095657217006518432230442970150926555787794634902430454519046374504520839819720580864938014259334609202679157337767388029722268469454295142933915682533063393509201198141830084317090709831412622249794447574726249649294641933637904071277416511633550969893955998268568525104736322749675405944742369534547379269611929939275395276229811302287778060892250224160361694817004765945853878213834577514432763986719326702105100588207201746657388018337841761232807665244461476497997742462791905974149787038367590869400844789412494326316729075293988825532521482324916899583488196142041076773629337539424702584379213189749944502393668382777903073680860318877394883940385737662665039120665295042725168837975245675788051830285297078342302609243716950779775109556536636380942920530191882202629927873083405744434899779543550926024560333438313021267496222798984792309617800916487105077853588715320197792162079836208878661965700139974548092573948461540136647192769509746613580401183655885548009560827631991332811545503451798375885169150975798375674129186513520924889181657473295164765101075631717881345429715592639893235630483181639489108826979271819456393648479090862921386548467555979860871824677744045668170590803951074335247251075958785756587142425202036453897815263623958943126933597934742654887237078130440855588909237202876073173754041211901483934837001591593097969082392692477354203273473284926056248971618630043643505775948239663935283957748197791339566353978649460448643908267876385845365708943304852106654799199862500713839588000359897925164946578418415172893270311233259123162507209094083102044185310389443214172089909885328446322356271851665955418013661157409739599974675503613826363602661469102468910784341798657761634696149719881803488866283729299410925065386254433889313840224805094606965856548566373391607513784092655234384311997640328633283769831572655925883087641076934857369154134559127918609614257237362484577396343709865648297452642275625477614368516920081111766812093359315764082818169646599485643347827517511349632558742036750208535564255519342852166770120227191888875864832580737356273164440030912642275648374024130504118536355658330997757114297345243474615918995020646348833208839280104872406259949834862397549249621656233478780466256077392371950079866885595645026125211107865762996656780336720795271957460748084759791335792461421880077575583898752119676851519180814339235700741947052700322833299545653626181722855404770449044410528979701861661435270315928979209662220565466925043652916291504467640318251263848383861572857473895098343553448328154443439939968720941088350357417061171574650428605705455049390708878246103625297613158649300679527035921448682646270812600173359270109811790658406767986990057323694059573960202395540555276690190171437315637047976475855089414030487175166924846874140172479885027607644380441233409195388641742359402655838633873222080636331223173306136784605428234169456171325011682967839178624192882632593939574168903417025179479839636630079143364224391647136887123285534785601249985368139851038000537905069254260080452464014859733288015647001806789936166682891479671715801752261753957524909436388320583618537998164279338592689651591240664699553504609467348659286533766163552552737510998168702291976114865783897037871308203097974952971067080334639177991122944857065458490062577963463305603806712185022262713093126442361239933880336766404513977811790331979384727571153251850047912884201202306461465158143085289786450846019958180333083142389271530683171496790171838096996562627444061456388388249390242521209063423517458793759722069943537637287191634800463589004801717133596618089288257883246849185241863739542916347709861956813814603756448471445108882491865582780819891033590975409223632527779005516757468979430427510988539847267891406914836909819904757605514087166310871772676757197807943238793838743193643433365433856667921673329440736135216251717480423569212281152384287895818903699415010995297702919420389824816309319635306851930051100592211506055579251526235818254091042601819365854670400061122782176020085101833364081308107610150320131557923033702825206235900052494337968339256212182631564033617265455572742107251360565856945936814639133273508672063460404470874082497124074362309460282851282956393935903144331013147713054560889628121445949501053296383374042112752628940054435727128553974942431154503172617982951973169827331903944441066170494266945652449001267066632929686912634289533001590846010293119300863049946108281119172380422445896444123221608495341068691423454738115543025024797181749370497543302296945429930481470483403979258229186175768778427849079197468650467172386239537933857676688920731434836418501372612612722568534595022989586375854785380824647562939119798501180640747619894913493342929469621000546406237230489166259114143957915518158041507509532035401179523552344005409951018176306569875168318556240354786655009952741855068760374508366341096389927197432590304695772077926659042988242148871493736302760214338984179199806115126240243235675240025687277356356192361385890001510756254099019627268951809073603051625570582136382872222506184879663458410937255857837239497065747712413286169478778490500755402029645204283816734183932723811885603327140146573712926920398900479154789653303636197101645774084990447497441499186545883538582633173078254074205901108184917593399482142239252131059945688435231873243345225648358640990763725484363189102917230688235287960222108201223156861684441632185095671701287704702039090780010241438003207070466763319243026899384757692887993309178850116786117465768841048714297738298712865071825332248110472296710164266893325147711183848485891163855557608848427282243596265588707933111281182501327642111086336761465005094819779138597304942911998589098578317175470834971260410728498161163811326751312230822384178995899887522104438616096402948766195834740820724769899853019825982940821636269485169361146639919093789570520047595169166297731664702135491882940754128310866799976407352783139885136162696608888793842069787960252744575214869136147011103549546422631307421549342535553122828331215040285054546277806028392128588888777425993936669704076655946142243477264837110556051799950421566095446170408478850844515482768907012857007749527588126119090183710063009687797861493369439842891834536267319680477247469171163701998825548328468854497485196009959888290819285670624187298112929554781124437094549429971947122291876195297870739974629970903784372530170666160809668120148894705612425422441976381970267103186639890812327743996311203146264633617039845716478403366530875500369645623923936178520386546768049487932800634457780102863973747725603980273784024787720378255129947330601826096528972599998650256704931426948383343240424698855674869808305990368534090796409242038439651527502461903809731454998288746447311164737720641735827020848108432457475181415165900784099052413840493407185450832466305534931961554557820319124758478070822812339526896124032151312491302901790513144389141598374116837207787250025870200536719356971472857259772140104511516199445814186237631844843735820026094265274937238553855533592767933714730333477397852971958733794667431608324865493382600339460272069970792019635346962265650919588826889891878051781365335422766081607107715878000476697013053194908062001147998803207177081755811050226216285531501834790138136412104491628286354819529312845373422200836483441975538718603948336126229437441163771644789052061165205073544698830237647270851297700435567952886679947355611596538770311023788112705788321043459417135441894992134877623728635638178310234175813928890962482495052692931312806119148061618910916477216368404548115790351550899236210987281311297710022219431486396609999341618559077673139170775277253173694585425639746217145150940263956914882930990126839592753601634287048884289655903809683599715347805150324972421197015561608235756104491872115866939787724093890986504299684723604598861525425784641228162438844675613663258450291683152631346044306678148894885560549788747103777332896342969073906086888072661144508131864571849527354379073305053192249566045709922924193047999433816933158906437573557239846093564606755375821313221491596697349310479820094558871279854316729484548230757715249826652134135861199866368177123654774098221931174918354333227058511817270207013271437469906351884397377755956476612690008420294041011081831115236723240880306605279141471183396239710720121836449088775205157672502727585063177722676486996154491061721812628473843991138638359014044493199589571060836207126240848507804405681214358297990140042818171922216178525025075303738026834018092448730876216745352736956008492132161248879184549286443465527998146933991577982697296739322810371791394648355959300316253440428948260485335141084499871413909843546520749157691259465745164515288775727357979533248803448043343581171237081028825003550840987825488992484362167347695327846725242962664632930505955856600791372066996789537919949698974827839258917757160086617982467985286911055109975878050566435232203511132880779956909052117874956029012119120046977286209605968007701501976889178194850039827075917721207133852337658116723099503843089478685835982102341895780841871835663724546805205135847825857727703129134418712937946877973259403181560707233423308088035101715363419417044932927477682525285836796644439771288093968289876669034426279323737600505787957513497946298182335084641170994211828588819639229864723787604291368801612058097021209104246813381930816004208367949302176024752826679243733864043546056149917012222935198785112097409637280501737937072071660175908922648836007843212732149262184127489099016445547383838258470676888356310091580713737273881757020404233796408061461840037684330378679123334382549190354662832435924246673543687670719379651057457275938332694380672601347300415845025821804474281872175817227947592869879588846748008490422671591529515626555920951058758848121392700087196817090680597464388270067376968847032060881052201681790677638408880841999972852527452531264876798503427757101057529991597709381300431795984479776482958461506808119553465455660126468205315246082122987247205386425593789057467017355697382722899628271927495633760092516744767853475025124028552020994665026063599403119438011036272210525283124397216785269930069447418555487698554485073036354624226745894484611113113820712405122304309558563399682917416456492083147673938460111837442187986391141711272327255361511867676408016619670599802485240575686766135188351285378747888831142510800091307067615486100473677668327964062764297490058279693800331464302406447021669824113956002154523149742387233243029021115496161593372447802195381818615366992449687283356729733422208564652195517727627729879141196303019984231411175173499193522089865010008820196767054160888327735053802953139856275701550742092873364206070299401092125076588770012132461493243525672048892659077527238008668098021829973273055348382311815418829060069830041541355035385540562694472363470760645164703791691187406137767171317779879015969405011759913075896479183540248732086631145364468042973993696168017032036060305328864844911662295689845503468853587015343607702241532630689103806563230235634685457277859162445939907447061916098453406982245793946994207742536748450309573654947039670253312539923515586762935998352868215483046969410828849561674088755719523587046207292068973555400917505401018926393625135561416481896065286511356001205296216835574712535233512167793791397462836089446792363629257300396824799510447763673416107681242779055040472638698517078745064255018147452916175141460883990719558376213033580287272938004870131247118130858736029380809849486920302240625747835974872979134133180890111917446316644683815205649331857746700643413216738829129055310292923805838540450238498269250238577001254319437577174659844622328440904745180344034718644483308480868898848018533828256651988524014644812505874466438037665418850092303821467080744732056488767085108557214504532707694343508148373392237504967023279188985012495502036948493977095058734201784126990558213835057781418532893286313309918271957377571263498399248517867057797967186305176825046488232498695080185688483063033622802445661498361691178573443435645838933987839186094328785836609646359193996282205272004034312083836014317486450106011004846974545154304476238814052010742688325543094457437558606727285168286010316599660164361558022969918767263885102448654109592175585880406625570233264470471413238116258446751538361928167232283933610177163058108062077218968724423405357255083190056538776548932752646238796675306370651259583072727100500372506462092813543911628682426170693484520355550464719143421393140380986663437757938862839629351153309672412089589428939653983008345570807122780490096736076515110430894370875547732053631908355015469510925388596816866193060382550288848694511168866324744228897686745560556234677473248852000099230030507892200500603923100590271708798942636335647543686045184021415497727138657186631742015340642449405491780583776854314733982575518395986439946733882201503980570734559576700264526470014205912893389554665874959493710121033830990969155234162914708658191675464090459147314649538901194238042180303793429201179833064106490100689282777336841749178632676169881189966925468529774750165421292982562357348229567046670759806930545408484137572425419921595596754254515758571378837994772818687414330389530700740157721629118874645221317830244994855841964337520903588989617570684093548171349527149770406561785670435084430691726305378297101180142169374481729969165834491995497031297129728805223397015007347906719724137727470777862341649906253881869616323673428302741548431256294915547199384578755867867787369889591219505839583368817121493159917664497373052448928360655256538524134881795953766354366543333490381330376217254602815680113829257683231544515045241229638582092297753311617366315577866264718491546540278524346174724406883538774891376182404632180024186677475985395780642939909605266311556410480368842100814156647606651637153008399780614306209854150628254278336204008183565391265703080121735787791699829279221756953650541475783635853480164957584829211277629545517686768003816054823229904989074491020862874513041046024207450655358174213948049769178301972409632320552821043016081588136837727183088046454861478668571490720750149357195281660262948679785580070836530765258892207642724036263316259199355110135083031338250449653695305059475648228347812230735964829171609813496273312769051762271117715937625852893091092368657237557963080960848809896562931941278776986848171883921381420152079982304109991992684683123579185782312746988830036666947240014587663093313960952562603128192424072464335163605485635860406857597253118443250242359670617353020901297578115626680757464163031402647465527091792998692855503184847243336613318828404405342485275538252391762660658477854740837750147944621640529060062670366098567656640646232463155023800657468401910171959196558113012555486113683731781324041024970159538060712548307227302639234743042004053391583891702043813084048085670103528546821853834682813642769320714810202902092010894454662217707397310875056648273432797932514671149521912400238093065059775605562801904575807791684738942627725924908091408358404381257668272579455460708130550107337984641476884901290776552628151472817012558939017242866606344239281857688973441754690950477221386589510258569549512226684695130108381407240723655685332411233750238007381805844598269772174073912794637667984443624711171782159268558387870961874814919023467439942035470402343048921263784246916309339139053585191086957983734254805250183990463053517122580768733156950909462043160098620891105837217510284678175373413750325532717610720771217473382457440387845441929435932346181560450259072053205938294502273915068762001773431878338137825008716177918457758256445595755512241891819644460252028527976454211097389040128304199817762901935542057553461220629216276294020194739386217930048023012641820255575877645749530771923899275963650010948456332712502311188475910126400785254640543681108330701243380136620350214053357330192632707319580882962350560342583623170009876892189992067560977852482104933296741927476603946569424853542247074359941288778231138286637768843570719605372780429072117667225057002596837703758139750474598674800781687397497030980421790285794519256056518440339194446721663981222560882743872859967867811207663781195547679149125513663602907705232091990005409714561283282682787499560766322589168655223601014785235560227015091564161316866842325327908609157148774097748855824291814841351602739106166939514311650410445163346265105853471857286490828559881422157641910067031970065702269045804372328747328273883241800920035814765986525990001560483568853896814160338154043998141093755845782123164761121386094672728370558103943647211743576325034511784423760811175404898474804973919049392269916717168606629742427042373909948117405569243608063185937528643873137688910388751215992697718564138213621475152855978583913458798302907121423989632054367523995229179671452849064110784063513805906949166032545347831602104398102673810146168062666083973174324091286018142988857156405989613438091167848832288160539111661581261483771612190586140158221039661393238673534456229453174380755224520013860802660974045735642125652586053409730372814007501125447675957516085176719282844686651808207245794935173973236603934241035913385670123577388279340158004269061130013057261349094728615343376824270587766264812209091960741400017429260717609455221610768151264271428520376889643800620421435742594894043977296662664833334499062522063216322532225088561336452692996350539144124845305254314921193573140933865623157619725942397160799791781913796299026589973744275846864953175636883450980261397392757996776593063006511909904879505788759478774276623715306273816814702467873551440189017705156573584585080381057040049600684068892221417588191715324230414783172021060411838497941895580568460408477759544516106419254641230718160367499167941036832950147923054762344455717691866823072880460964322196776450516399280444891951750154605944809449797738077831517424959997861329938525272179405117779874050347333344920503013801079988247896928134528988492725806078579957027113363146277143246327707876054369031334382479139962903623157248876930681123437935558804901032290539602028378186951511108865325028810503649608722590135700924292480784028147854305824816466779467968023917380749596033841161679303265203214893723246926738883890169387274215880606705738837007675122508917570099744152542488680869025818134977498099435917807101390205588239510189862019245911643846406581130430148040437436701818619340334288017527110624914477766304809344064781548822683340707750955159199708500308335104026643622219411521635243440138274234207245381619495696032845243943802702631876267997561331799356457335792405146339927956783118089191758957168564831957671981193959041546657807584790815382721439268461295737091993510311830055329465757471748845215487238222593434331052771655318647142019109183213643667777285832055423029693545414113795557146431824861424159694851702203502612438731975651850247460403868645413164706536695912339858189132208158277332604759493955010193662008933494226569045818090682832537315520582701704771169170097181711381697169699744159094684721456363928846655420705393968958040819906704574777121491624916870977958268408169750993236849460936634085651540178139822494954421930751754540098753198504406057963919328255143035107007488836208537375318075140503170719988289934424744175338934027470597937977492378356817119273365713447279734207121006232178348705700313325660004943265982296225086776950300110679552921636740279348215761073364182884187282529193859722843259245383814119438380312728154077492439217708558275560738965745431229726778416333169045101518789634429465062934136805120343112589126129498438640964503441860761299312831466019188205716858351334024557244178430962165667839430865589067157176217708355723369368945666737765431054635286559137101637949598557424861597882177275106488866137954876442674401487907240130353610348304851567017632966184381960874161350623014727211894289208705387814432128541829164352252115870899735849473348868462649243792882733014869495611777667347843702163843513747864883284668363751713654770477480497020356054469656041962982932154391012125341733058681491465321091391694789360463326213075944528805031104498986037896367189115745239130314681788193239530811872126575723724003978877237454586561586312991241835301073112318217721019163596492587308569665529993350306432865849795655992904242516439447785000362852287314750490884149486562691866439685616243962221920732149373436487115122319602627306319945340207160331832276417280445431784781297353349166719678252098588593032091338336348821817577365689035461290497627731049197786945326223418065810952270081493241390135268064705890873295019866837524584407292464233455822557819182673972455822152953345592706344428877548514607148743426423378848907301413996761393901381030680887977538462695519056018062718896058716266279668987926366649147781154505634471435051608883343354715937027140361610939546008139437829748348354096041322377125689622050564088844993248421332257427031397759562014634925433991200403159855630468271314976639932941855950323057438903189267902095534684539125823135891130417447001014333635207886911272950694236294829186889376588341739755213848227185416873523076214442168493883958718412081042639625262738123870482585244586562798377169176392989070607017251310295528151959696652443347165029885143739684311654790186816732111374266266731586115195957243532932657703575621552536422055514581105549542734809985431486880240478749448293775535752729087694673572289958830149231289503193554838015221608281896400133750673891838633196718428894427407164942738727073955708886836375000554217594192142875441267979386217012547212271980920212034883028854716120742198966456743714199254469500676246359759406845085154739391048727299609489573648030235846528563110148920973148928669669606675730381367238428520854976947402578710638858810317435440631154257982335145709722066366592434366358630955584346841121247853153677028273956689106374851453735886047078259072164061868408885282274331718422525679246382922775878193238673766793623513321604405001622794913097116473031695037495549408202099188702731903583679738958844791045479459126534783889991860568102817519685024249837134281039065711795872257479831468715089792970343502281480000211105804499483782976265761781596708104355316233135313611173005884238403209541608213718675176197216794755054458048140803365165521664607792058850012702346999074414389183384085895408097772932637569888521675643279744882111617993662459817291281266527131601045135640822196714724520108282777188559300903360838482221079051733503067221454877688543245865427594282251978654421708083610349567491384535170973725850631497188187827676359333737029679421435945358722879142594232339429730633032510592885058324202194646022820266368570430262423125086896817555301447511851888689026811752487231976010793291510566063157123464587310295008125742239323694950938105377795726566293982542280311849388765966307655695219330794486758846639569972206732021358969652308402837644434828796309557894384908342712002017391956552163150829571226876305399796515268924572317116360763484535023591057119952981346957712768933846051087796576528820472328576411845439445570988264916110583833364393939648406197630434869833489258468486173397357188453205143087847240886853727541411951011876203648581267392051264798769856860829158009463930779722577923352835960150867039874061241188725956312082497907069106555885701536335352573089056888320807680442782783839340174046776357112745541345460629092331838079178689309224277284632919531819218018306482074090217721679657040113218644822257572128604292618512368617738225825916126482923597673477701808185047539317339437106352532556914349695834298355186599961504493567364130764595326664823610087512802358629458233714337095967473791291856856754520903499239479913908556079411091077056013980759539795672767056295532281583495557670080449963037052411991368338774835729384437798119529325223976525076617423612591423651632514598226689554908934914907332354490019048235775074807565910960482750022976299560457639311976571536631356232210892319172746032314508525270550718387472691069828974577071312893411608934211434979513670990872530942259537416909541556665508567750892872792067605182801567824054340301548668148778524462387616696594142145237827508103740965788399234382003487074917593589907798954324985308862550484410222083101880847694233864891487350309231986905751341969266774099281924922275473098867222393630513563085074394635683424734958701532764241180300524175331655649314561839882573511062769708255911591673210179769824762877741096469832348223614458475403311236692583817742305427857548718730273583557167985938552888741516234787368535175217314250701880945653738054686977343485649183187780562872117734757255747695883456189820887950122913234687277641533238429607256461281362894859946172489166254718299039852061864963781222401272352069001868928567751596107225815683462796671920870332277000898910963581417663358529475429204929222526069315747532783492892840907028626525778406738014556914528729869955153107995990665716987601891574332402313799922404597789193970491412545591258587134000766480068170640735781408574112734227451573480441556782365882202047391138760238961536554560444582916590490008244948856112894021940895091868062465853159255399464805697922789107718346824485058962381226777339975257495938677862546031681658073424821724800050039816259321879041453016000206863217822631531730263367120659204709222351373697867334145856754771332782417346551318275031284088201756495382038653557180768715643959087707922558783827501891843828678810067476317651471915468752933170271078961586955058452091027997622659985159117585829312683353498353938613767045275591178674141077739386680412520311765373342117792657121497842919882201280415769358986484645572160487541061669710118655562341255467029625255834950950483983616451066965725430676675153856020663587279375768343926468350491312768090351144475046741599357351588852857880088854273952877380070111504338113402447922883678281460960339008961407924219473798216993248935811938506550461857506410862560305593710631495233945728320235752746426973179652910915924157723766137505227722186459723065475040649628936991479132120152691239634982723705424245559618819122331336224785728030443306062220372780915868780839270761740408916827270068646769839364739638025932169768587040690699204686309936352429474734173648635993648800160992515233778517137080313359696922880429735933331713720992121061660802274720945841775140035724474089882614282131992116805193959354391687105484610287450358979186356424313441806515649832142559305642772392204056332235869643069076343516983292428548777624594171033813322979479494117267411919004248292746563512227963178427604615926384748371593852083332825076492232572810708742372977232051223093783451727476493000720060834641957120320667224846435436762922576866099289240370896925176996118947767298724236918845399719110307180812376532666954695716786066901230067692168437425495366888704862283381813727262441230199773603624017971177598367354314314366047020075353564215986864472440120927337229755285029777285269268498783534158052662681539737673856111411337867737313746445515399484831615805332792184937277798608373130841278078369370723462811733274769468095107982805948070874706279112844547182149776605055331354632049624780499740671062517028453269647306392828193220404655460225883087221972522781652145235581375329907170133224237431620105193853844886994617648997158480316431582130359092306170367547348499938341777983191504292923955144692963327515352568911351334524003481346281986830765114585127615707163616809856690482043647339453861270066042528923864513430470201188267036045299108808509404553077783018564378784220357524408806055147376609169190206197628918203626859626105465822134942849556599101234123794430577774568704405485625661569492421127580699337304530557534184526557187868960770623772767728670741626888869077130058202919535041145315658527175881299373838365975660459702429310035269721218307850021152789428130692266323021366239799118741216745920775883146382333665686494064183210466145308936427164499659004431268808391873042578394173352764708264614156349706347765081060154758458421877385327864417923354104537302219664626520663124733905924374684817667510831672987984117077598051408683313462605636337409412630982894516320258518834491765006764980398493688143313401131141115844635003732578109558280374461965533058657437798334445662377784276968127052877945076841830964037798934690761810851497914646698679846280923335875719903328450300621909223444838917914865138892733340447691234597945068458668372034988687088558600401339245766864958339786025832692321359050911741577134463561337051626452609162098003656567072851684486234629198157936287521911639507904996985131025923100548065710191086726839906616254430802295597503026506552156614377721557859944498909516974493631337185668391615462908251597570414952964524759452256342441568760425473747397045475762672462240759417537458321890648793454078472595336077196718093063330328545831529799076082041324360883188660608800386954311067200913129734963667914777937846535076466694227452468017728175258990329288645039133114480508076795754200206930522411125910461376961414013430034359724055070711327593250027301032062000392287035732103466214640777951580783536633678776235707469233138025861901014807046561557343562644543596075000192650493322288987991966451372383933921202254458094693850491887939971888145538949890475603444241278373819585243320541148755270731375862094971023616755648566457389096034024330307490087278956672276237245159448105228385562362145243128860504729518104243514715719457960331764324022666004030140408251009340827330084921346633926652390425049458447090871353994062166732909203931725944127195924914311485864962153554604898146951922631309472800364799668774792052966646762718157467104791154318055195576171050017570779149617403626773952921925643338960280219502050516276035356783768358628212854644514272062344659753628214579396474033287936584346813122147815833851437603358443973321962481085462459779494846211529471293139119185054511893095757479652255244645338862074864500106408385623231895077386386664438373262733825396223332472013827966653763222216279892490497465136262485067780279581359863386943277755910915985742645202089246524194663814618760689794805524588645069439480145480827458244350540865389546524869003009619591979153036865019252078768091359318362754678603979841115949089177726401172046604123714261292475366580832974532762899296037086838471783386537135538553190186457909170775737524761956450679473638903060310327491033939919612262577571859629684974410288644822602514304735634446798113850818965808887913947285592894668476277143862834857232991765156148360416388461279937154320688020073016738705187419589549226109814177827850027099483786964024754033582663037328522098051580683997862760909977041254389680350960917371948922699083452420778372627753317368188919588272585430312245120756418902408526181650702512368149650197112389668214580357431544382081434792546176769025703330891689775424186996149533997860154958518892747968380196350430772401036457688795117567551694336474662931225702423663994362336808251952020975085757910134512273337338115346205684976013259036866622980251792057325651130077039261575949975601636407394494042093829938724160512680190364265477242434151782906701386115859335039676425383001981791187724805319983504787469093130041927783758382574484291881299682450650490533839629593863462505096919968695322829804121391085132241593014377656672635759070019385965104564764326387034742462819619663545942221872934397926731700616183258141405936652200388920265162574537648176199968928496683639077208902512282778213742674352526841090896429903649105271123378247416948919364714551648472207257764170984610790804662033166649860956214705228200349802541880646013759556314277544638447148536148814592919305996323936126680534294270974492101888364237952603593738843470592385760339204646061802460516457669095707137580263065989620611109252673838916937275077241761878347765463287301048552856112644977206614203407279935116603502934753446688445467549124155083428812819897605614232477288076361585717445126290552285220639619974460480183599053956197087121516600765723462399244222911114565212239882760022018932665728270043487109619717596263815108573756610261063852410814566313786807082693602061492803686470546928718186166302362128668718519330312520256894597592458807885355693980653559502688454571047772134233362558595245338760098669656822443280342420866016628357010133711552776325619043292937630705588873536218200343570067831032528551244805209731583538422156293018095592535660700652912981386842154675355302987671286721766650604251880616276048950323448856938683593505369902205999959160370721124543818400925981780603461985865686495952269215737361498803984005677195462050524508806257088563710963175956627157503120469715185898166310375617484815960838547392359200164442353728520409553887132762393128422788242580506743223618446581580714829470947341486129673894076097438812854462084487645443586817495897709357906217410168740086272450123474635067990326278367549646816069220503077434114365724047146631446511445426726569151852061163436171021620695512989771032575157671358231616779407292230031795514507166124499986985360425709154906962371368381119521937479942456409238597943356598045931353971530143361388972364916036400935513475602438513181712593549076439098810507474767879171297999464530046529582389272326554901456633999855941170396311413188384762638559437337886936257474678451969819569313223063837877254113380277509850564812635496069259439161194906156627017127033023890358551819318712128462355340702078280365769955338682931163701948886781585978405983365717046399937491642444299221343590315153899119741506863590716776114764904783280588169866862451538142468685055221562178302385720995040599138196605891825326967130271113594753649607802048255139675043100131534099994232245159251572106712705058756035991182319812634731949668853015602732537590646582312557886970725897637353991821057245044856100295570448454620877771054717548032304709752256725129620382093565549731674832322038083962524398237047656855921712402019678821685162228062423769535102916121893200166064184181184689365849912487831832958103219702605771993276416281772402756602842193746715537706856026734829187382817293274128311118078696075425096911413115240376311553788810201589209464327742597167541102456409133573981865246088716226778359742906829691746067493719600478023238238247728289829796678635614410969144819816527870509808178445501492547794357784100302995277092179316051523194502444818275539339666701539181772097973325715486770954243536006347159879647757236821070774721137729563916559690052096373599862881871419448719847941315603412434662522390883237193666603198670898394099843534312414588409402825282601270759713478874715205344074657730509786108570571140505393565298201595008551161283393760508781237042997383710398558496309976432358870663293342841727411263636435546436019215332573183825558610022319802227342816991240293898786925250258770535997599135147476983169972013360867191078153056616150668349095292770424042174789452267787565460698229005110198594164337183601885131870626265793987255481872168094465669404377476122519736826687581423760452047490609615296217032351845056176073223331766233915636020680737092881693352010078545722647495750699885545903965036927881995448836251892280915588171971722351110232594381357004955592853084325361944324186657529723448820698255034442387194444163080206640817327099446588733861638872991153927152060982577328162079278684277034120006183825972000097937202907713305469059564642883796244759732494304253390749893979667437231389569318793187155924754503577847024289185319131581129764962270585483055773207759434312055173013041093089729755480506966419925996516325472633913165047934455855560461270890849340365592338203104307628366496620701626097021563038166949973343325200366720722759125446366209773214547348274596432443210428619500359808891766789316441568549012315295544568072925526564362891720412713574042591020957427989763636097370201552386235738662393457639199201277175280330176795570558573394957011435380996355167112372011171039240541840894884497085599893156988044844249516115104728882832291808886949930637770834234207777940878829561135624726753473779271593820585932328374162900752525770877197760137043758667015634286393006538562496077249602953981281746163896827541387836082260418795257483679070586865405008107885709621385905656092144384317108201042987256559794939493708704904142270805021472707736628084244020816628189990674139013189082579544419769819617122379018944884102406930843696114249499479879860348360583573229310410702610998099314214686505499104662510966714040812752700227157491377411415397087409706583458955713365903579007632153073782118186375528232310990605990426242608926137807044051520418575305739425795147637752426628558938140545779838047827590572703828061453251856304618447442646620625254505272789901515051651162907281811950929122431760634436836145294274272106915227386015635984116456823879201045348059718521566904979161219001672113951592396642699656747115603351057717268178748252347794185781879820213286222905387009524786911341667664508776115927586413892655564634931145089766346111813547232423732966982868736209337570570171250374321308410401036543092412942311243747318037797126371257880953470881030993626046930517529253549676615033019147761297641440923087086849172011470034305095432783108352820374938551192051615903371698707395834843987058294217846441841605938100760995076544666246809677871884000555671090113758966237537925441741624442814745805259898711325189070513351596983479205122932309674438220222751416684217352857468951153781445508229550959473474475550673877599262872771380210302515357646363022210470290680071247223616670912241406534998716936367048081938952862927754315563146033238880203064937558450360855567119671628520120602258629245797212240740297916245900159269487447033688742602497494622044813377065868657018493771813039152118944262874184465194933395838371728406895048509787099467665107243750645432564286985612478166106233740748118244399425504732670949356182145019839547504379501557297373252173209070221079537753464047839709601553620642383217686348609087487635116736404856270622525483606212756047115855432828174296209970384801932961693051331542994387835165252583843213623698923081510951390011366090128482916666174828402044762527932661383418456606185562669063412668311001071043737256853460083741259005209773334925190978730534518862915549491765050565428686184081458196129175740777464144223662477257218835130193561524519374188967695111011445497287741895463977772044216895786492017671507808816006115469195153571025323761430642851030581159679820632177091319810786987281386995078484326055292963552665033873464124133505839527871279121645370585263537858896976382772799339316555753307863839970107714189440327789169663022652167645411682217060571620557554938368807660851707415796701845478755331976829198059662471265261792738350913469901440193045643828937643556966267935977191593613582281399652020589835903027383937553770826481653741770712880470917089821807783517984390184555313980607126101760609035379230526458381773220984048853464940156134949620127203282363493514814405886793180653108060926813401078554731716341691981786860684559223630910966301005709743618826810142346683171313816332331587660389150919897247816030359270824485498152745221353506208661550710512537801358787960840295574872128179792619303493746849782232090993614814322495925450321966262480912459270290296985624709252771930392005060214537871328504705349383068940639953765878207349041947544915040825177888258997616242933644347213391667631903045829088181220290820800829079205135782757505887643085116658829395697414214894416901306432181012986530488348144529666244139996868185094420018439726834881067004388854344452174308817409898897816824159502797048207459060371189072771756654978797694883852176483451428732515009077819053588974603986363658363459711127238992058215412733465230347310691351626847881459849832296265960107813359174417844997575297361588642101298196983657640034480007290536040943552815745337882820649222888937014114039835171904789676286479513272616128951699587303705659608421931806908813770759635417599594234422434318473400770244894316120666543160612732055038283441300163053433639889736912055143439623060857033256780602632381322810680268972859760692297482758388373241914381426190754011597930008647583792697879425672460029020078349085649870734357151007518928305008540518783057775256700987312303821986814185701865738332791774534110468784105872439937380622282604964791146983226903646327703600788630554775788079172539324441481815264833356878105083620618908846289719271370143995000834920328224259497335676163082059783535241736337663623592568566590748534521431211601464266387008105608691981170028793712546612749583459993546986747850283448797109631562500840734391284146051349572945752654373455897805103781160446029714823381486325865936057554099433872775969670592013266119335637684545994836166423264253309861703771235969444096986234996594566339662581242165515137719035119924889730535452451298864091635711874116282411840660594064406078870204823057585826983164856840216733350789805306937917783185927459323599240925731990300968669834600830587097424551134653468246304163121917486449723807075891385422412913747583564892568535706908397536627912553282057096564855990389078718950189343612018837940418699651440944757240815319129998964097304363922679501269822445724124719461430956305826504099133226595131337150482633762005221244067126110107981649596876542610111049916019799603140609614358522678555697505330416285813990425856665074125218679235796762407493598227211735725937356713528461149836658834903540088165539862673444936299331608758092419441327903890993429741673714405985134168131952296336207735936310675989455565412552339743753537850532163097767134987602325223929392241837951168779298753673995284374724858791923477617609153871325446483021377478394548420283972874817424440328595068542883897640557891778611166542182101647722894835188520198955746393526964875935110365862541713084041199138575446945310507053213019284019733642137711398684017825526613882683840187968917575377434281889588660430823373994994597974717042638771368166687456025443442141580275312513516953332980964269647949244532471828416926445426900748417535222057958697181317784620848765643817210321965027474242858244653797948780666112932216953046442829349330994885381261570469841999794097795510835751423558401677760632387851102439547476177073391752841025367270426160171978653389686468663758687632049030349071287856560644303531692939057269281012681856025410583943383656478443370070904374008213824748612873995870056627687117630901934164151512962363674165327277801089982045249956559669174117624442524126241854424227592331693742017817630961188951249149719013381886201919762289282201880779584663784207404559719698857106370161671657043903103979234333470913572001086822309530868737960144295071021845225865721615456512513704357452397269682161618557242535302297199403679825575137795766356040745256628109397267101897156114304828716248039029637227296310092090335232687113926152608310838485592502792362677197525178300682990999304228751358457393337189895018612642388277589851773740676769106831076556892515098408285723279705555603941953753979356155027626578680444338082509775667772232018619416045471652395349609537022409125481841433186323251537121997784440770690267143542649645739925938859847821732023673925885489102992976453420910251303117450356453526416222749934818535983999653974924895016348455416586897850318862472954172798794827366424944811582839130539422511233517437074949277700090000080085987561229719451264287863642611034965768386289108111665765659277334772313434268597298368138544464786572697802738126823241616410413109320580814386840249851682997532868563757734720806581379097033321898034702371115965436987411363403134647641504405274507386600471005991778665499655254081766900088593216305352027005282234750066549786347328861571829327050440394101108793040058440079885535303714630689401741127725389570563889546604816543719088473054294755712123296757243426335001351478490947917471320726632999512918713752298833071522243162801849529851378710992765744386597755933350368543813540429730253456809826928905385121331861776276667886340349213541719963800271117582388621193971918852011648772582572928871872680874082374768369862178494093147977308567068366787197571684335247751217755049171897831078479318211795342389445721866990615930164092431776400722922731473051240292345599967483151925993909394746164276925655031771874033080778361538583960157751104164367079350822452053184027277347213182914875632616398550598096117055255014818434683378425211505699532557130961647280905241205339535960471571713810071184810932460312530561172472256820870947051729014377435306407713757196153866237326270638834719891031335040617453617108003198961925147653108173087191875810007505493683648136450963429030368917732137984032054361796544831778526531568739319111829832833931968104277987084159771953300047027500439458669624544592300963191176353109938189462653740147436512787268282016083339326336833527884483997612625856039885474410800648373867952601123613947334325326714139373659027487650220840326170087249328991187903929447724758493461672270406420008434668304492296243315668970400677999919026788120766839214389534781125874317135608132476550401224554389412295041996806612431939104340108548812915552311386384884642664060275086305345740923604097220450902148242162965593576980527176487731268729385837104716015214655997442146780656327768339895560638952458154256944288803604007431592527735134258385507988310414378150216224841410921976700093033379389811078747027777046414933183776105715792794665293575245033732259663757094286499318904948552529740382696407939050911570878535310357466735460564799263312423031758157943470586057325163104820384567694049318224813155333836407004046663316723451188160580006241834487884327017548334146669374526214026251590283423599638170348470855756962419017721897426755454078268035696695500026918107797098005256503854779914767467998437841736783742529575037295668867145891851838906303751195642060764709063886361297749263610291495957861497133567331834505172400034250596778856539026811832243645727613808035030460084898203600480839137848104784904999800166677038802510722487340821245873190042966249633745881020483500693200026244222219651834475886846475904063728388919130387286947333492220430932999325589556174570510600922132601135598179222910946212495094976186212281159262662695743057385281040014041312336300487308336285109893360673888008179196631584803392602000544742218691611131630593603632931734588700752388166796260620772247746597714082955384642794352329871085616879892808197025785454433921582865907236036828749722551419586046387678293289439715762643978515918678544896006862974973516269717480595686373774408424366986444564703301914666941185203188529908310304279232452409295555825417507156445376834343588051769111766786140121942332407639222452450998508111627738065289385964822238254436029362661735909856738423155584560801529345112851640872998135246655720076300311890766332990543811791681732564759524188278124345253960000170245954452332796560466617213802609320512619247562955455224318277699546275835477690506551827841686011931176570287414003291267075252196342544641997294414313852907205610354231565143949383283299509160198492382379504999284216935271267516032381903312560028521625026730367081773976455856375458088932709544335289027600120190432230993063138025033886735740227502458076684334591684354144639937750272396590761453869375453261342981418647596104063089712134991250185741311831929339254458790209071700876490995229776651780197526212046929229560961820672220643604590630605583005458708941324695754240007402880925493624436698967000599725108583492255458237364332502986849762850461128524994312992812844424564530700560263960645186486533931164228147063259965756826053639335162383876958232357509500960225828694172094906708521425380355559466880222001657802422058066204728949430488571836359210918282620972112214111058503767833502101319622915158833521081405605256518228918031065470674682675635673249923283800702150577317980796823800918467263942888042522247480066319976981068167858529825647904998732596998401172443026644008314056554735661088453639036967079079088906993263659949825063224203661389874924364031973005399566004890249913378807706272235874381880007778613470979184196213291743222095211973038324335604372143078022705437234991628133127424830156383752354209385431134139320479617649173073587713020107475190898511001667175802013790426676097010031250421101522924922479092301517812182207974303100577803935474310348390551865076027298442027088188917215481762952649389862970079532941550747621926392153241628500705515188792705188474350242283686280431661074688756444526318986750830934522329183172712351768169641173900633732985361147118533305656457227586767325763535552280534166753905298224446308135892372143895594021608794592693404401396662640565541964033919966249305772830451258526636839523907408080858956455157901457300358920187262149711618921829338081735064623675525472414336795474753235773116922373391411132409842231315475094290772703329223743762135466087350357868657619220970733556368318850719689933484182008001716617178644148965186268469535483945221689449181207297641426634582024018885428932283154445368667930384353057780168433415048625426712334959592135259420836319425728740954986751818654125992364094571502986635186391079004117912902914289846999003225850868608508786523445550143963627493179285408516476908732017179397438760692815077596386252799869717578318105808978707924041871886287153028105611912831401106839037467654622057118329635256830124729279550376071168891985001866382432983393247772789359104029169473729426749938012648234324887052693584170118390372876694436143218961485637813628898920465832143124317255309303114115119461972035106816784055416452600373362867254362544093194956474829492728105404123741329494784047052019640018673704375477440651441483268557231719558840473758385099927570900517749235267708514447457894573307176011958093380021446423616853635766207128101965574649876858991137212551346189498602083192111834613186881607621828116556089266508259195043585978249208372404785448287499276829549477828539576115133398913637888366534962996439493773325581065337523949659795587095910043687670640689995651669511391240884784965076205312373300578157988179934921911207115687644510237665676288382094240094068656648548580429306304338405353798431889741252532703982030260402944698615022588330532669719186674464585998145525774153533517194209935949242708421709510737120561869212195967398188027565955640374121058104872195745131497622345833950920183966959005314527178810835207070120546505831441696946785179679186673494648124829342153553860432919571102020020475032445999839030657587274624236495820278561710988826533121202061858786017817026195772140989274399809972607514168520037342126150150406842194702111947149316150082781777108217090417909535391642722325115881566970914153041375840604415481406966158318644919857103422492756960465515220767498469669493654021215008583181067725745531715326001559399802615056306992018025077087534402446767231005426112828053751645924457255574036590205125532443439371049722905602692413425261223377200510317396791322371649147998850888380058869296838294681275239593981775659550223845934212559713029569552537991467290891776208887706719215262121338534807994037685449429360342910284209611427738516202489037801208591556383996903561155204887302141191345110929042371181949462499389082009145925411011926694600816179420757855362428905822230342016411188141528027957915168294233257274952481057912588139776018185059502612523940698673043668310983679361620554433139383568796285427217241128862948366785293572329137161892103051474947325781047844308229251730885116141109002728724528735530192484215108644406171693021748322112485336735416377889220719668598416340600025458005144084559245423105023736320389752299000553876652796128803065054222073323871936502770414715646400999700949513803840267119538077001686442047201033510863184719314009153942519083487426534726150663539783239362063616554222192258298691478693961045028967022122566833983350360201929043544689006598790602693816254102356478797214034451568863614130700924869602289592193141591534683159625824856855106426534471526772542232107183270106876851569922434408612825874453925802630619992421157814554576710027349722007992115032260363454586544213486682292143290550598033612073466930534953494921509661964427775357230987488754481520390333015613957063549129563203042018550396315645144896159635950774781512194189295745406893511497202419146735909977817712027774115019298798304748690301913779009914076428210863961303439766767825470831649517209016094303420344887818322488145298492509089099267497086267537499860947449386851248879263182573849864761634136254633038817008377010906499552816659597191069813245102923717084417638552889423172239416332392265030590418253189918709854964388417778848683425923703371404107771674467017297445941115937666925474962557987916084514492025278884979000579012710163970302389133828537756299338364614146652891307656035276833460850987614283954764462020514466906870664248329657457794379394698934651930192011514817243541718633310187196242992477107155269792354105359812951248103079980616120019971530835459657738826630439802206201660968942368923835087200092099555070558186252870190516467251933142055409127091074242515525834901733256481630483840026756368612723539715140412860513377643314273445748185653436766882003713599328096104974644920054351053775650779594962976193424879036411115470073355688063898915811190542385827111932664977120585824967891912459885951157771979780238134814818388706577098619122192820539981341310948138910260052758729343394090689436461082565444485211175135949680693863876392426133515015877038517508989608439708794133929441156377371185366303962511128468309320540531729843581490032721678074997387863164328340676540739707896468777590233861157415172650543050029680640335046808426929598908513772475664949722972411675629558390661436759802904421182611046298684622686401852645768170756291103073774321674910053069338634355542220652742919700370637024353107417878622048226313974442288242369147029314421246694717439134486375015252993915473362406665752069469141021524841076703929922599907068307784712549116255679107247882664736194795751629009381223796474415453421496447280740317203836911126698777516141404673457326930996393824225630618341535985314793880285083857705028072322429949813336421631964401558405631143858298421067736592938017015863260949789898854553182177123691748427478250471915493385496241415177183668757866840401613211682261533308606576734636702956616987706330539691237221679932876871266996610203226912398475692933302689906427817984621529840556303682678283567666262731121682524035876166002397080286408732025701697149936289624144445788935064076483135254961778195268129339417372655861947979564542002504692489769246345642421540828248667478258315099043143581586838301441932034360096355040211627263635296452428400601303009300406733568343589705355449780169569471027774601105034509457308136999113769346344028625872938255213379574258835696528250486481195472978298060408412592942907996428069003257972664366785969051039728033635002531368528812815266059820499022321512771525968363007307234560021886333017702273774421374962351476253452504158432335427683670659746319998354334018285815573364407166437442834659564820588628664579425322528045850548946840759245640353561895123708992260838070572978746230844876110253088618793443414560474186759586654132052362761657970980227195270051990659235129251314128299044587896296134011599432311999597483534883695794282735581973360158779272659657507988722846833048478581707767083135277118812365491631477191371212977699484214725425279706924502537332058596382225949143232212703595075288368522794689558417677827826894638452561275445470218961144759975533177253066576985812549427373560084463310935263035248195575059123134639409574827712594636353285052827872994318156540098214413421448704869987740338618095012492604138808714567971815988497328207553226069394717787615903554857292245633000980510971522051459979904666370945165409510225216309202933883951463552488262918744816752332889309110628200556291670518155512733290245785748431638012946054565737658259085344176003933421009823732404744934629785964201828563206240950084195998736920019177880868741025350858469505925562400895601098511035322579462348476580120712922557584127540808903156475205790608684927976903396192442836813555487024462904583739631616555627472354977507487620649320552388275906634548607582859586735225690291524935263971646059768114265867647300708243734141421991789561711465507905356039543045205710593959176963686560102735502869750923011380410531549406439974944464921636655306117666554382700133044676004383641098004653831128205229925718921705606127680220531154564286630433500453632725849535474933115299558815186029066478040588971563422393471778180326460646436910287648773293445334817099479688277271450348747056554036457529632522156435567744179940559936352330349343208590221595532840341193797533933583178286198934918803186220259109367181962146808884169712503754851611884484860536045931703124055270326810829226631742284804438794940948262752857305950400580965581654836335923880137780853422216985642537934711527583795606431122051360547053501172578024725301904111060122789558664717798768964525023822331462685041330134344413818845673415604167287254506235312324276706165351957679463919046942047430755652513801952972282527756509572740539798001204317983096398749915099928242098012501777620116871592415434185442944438809446655381616287698293894463142045618726194605201056479300112248177444148046611485454199367842262685116254160930975620906596819125058341183015334430414404989025549307988469002533917693271922560156206937528914595863876323274117492752208944271762443702009704835029631435370916743664430518284605753450150003043661979269937546909785642901410036057943349066144370747667045919760667988095989325189687254259890199625721523484232357827906730271135825599192274997538881912061671209224808851857473075076858099037557564223612332647891571266274780292674863056198044066690489611282601193585369258918580635039383997259963889377248817534426939668290853553930151289988709401932482544739556387007085112850952749497668769396505841456153187022967935635503524976816780199757653605136782541156243693752852046819800934440240233460118739669667290723827318651821503100074173848736117024735687211160660034857980771669196684048156931644269298514791288801639707127636346443061842726582406947948938714102126733312884279852031596954362220427836244551398806287868909342342826166701382352232286150796754329491773619690102474720866302818359288405563498705842448864654834197161072436401996611393875494135658490401366267680775909295589528780368395944590315299524110931288648516079055834066194277137380895556665512600186803103479383847458062411720386100116955687202547911748473886753354246535087844089313184157401686149842455790835051859422562430662941818145763180216864507882571363715199311606509390062547691317844996240323266564633382807245408101466821733038104625965982372959658107659997534004062244836300010148654371950843054519977763242614897216216768045163141877548071243559288095342579271560637715261662047720406264726329478316822876541921877577606463490505441483195702358833461623716441605914652975376018518985094145921017484464177176310799348360360247432749108930313728826344558572477751861599926716699283335045746378230417128957563153151720222572122048172369459995062264817142372162838531861600027642156183251608913120971627254407617602846899659532041621534773341175892129155649857448775161281906452535694206122146947132233911212680855420241979238562701186348279488811350604175136352152924239267780628159755996842115575020293363878638450815896114691103775426859231625798688724026343368749285175352565156366634656369775556715214047498262083017816192825437273978475836858648149646397741524652549356006016701045267269808121837541436487129289194861605568093408159098498825025937870217055430569791420898220802407294941352616621609913711807835280353565379733315463565284402982172586759400412761561554729560750973002930179609904092171915151869958425942501769590461818863611876531059097812861915660590423850873187615323136675464533969521854023813982101771034739945173447623243701506156237404117164107869032425463636760077011203779052676171647437734019071575755980360541815318190140495464609204907258883028495016797245238647817966685462194768540566562324557608167669742091445204714792693113860760614673552857516566080635957943279033852108782232794336838157816567132509822919941992696162096137376504986303198372034442556239114496111946354898829916777535744383523942988101694884806601427028980488650038975966913486920509031759077217478427537529999665674823504555248072540164936994819977109823069808211670169672183641515727233469525410708114640949969316767578598205799610496480383367314576592939191787975649735926084964990575107465117164244724013016261418551157501051967311398065807399311162896763382311504704141987703440254278162308970895810022204065173810141781039776106186765664034533491283697946333970553573373145616386454624062459669258340917113387384897457993695087430999572101763868873125967169535810450368146028402038950699604854129891361709239116950431016219748208333444443816099773296448257006197472432783581286230725572271348496237957229727899714602152285873461762411340682897427681802234068753354703911949547551555795864165494791082377920014825996341221733696295659939593204942320978577305462498417110060731982711058897786518101085052023922624794058211150769346128407099186987126584064400345310359715558028113763152367944044333371678488135144620333819608849101442951406100400189918202197633492681117434080090991544427795859180179103513238863281645517938764043083124229128993658532709403834073527374914496303553785531758323803962157452584609660679301126650568565350138458017876803264286059647665046626053673970185803043887761184281106037156303519202715374228943383118968156702026628017804736763065746251801367801395145950357991526024403178642128003966743052616343387170885655715279429628447487266391822503407515381984059966081067293069036362123884284411711623637992812663408705006754851804350047635878201305900411288934243968037239810092566856295749302357980734645940393378659612253942725571049026671944066423919117826237793863178979257367563243089649026315331596017646183906707703846765411023264763499017314339801635966260036664675271904585217169042550980447821809932240317449461461138627182692574697266326596366189179546396277902381445149919272483435383290826424363746241840488224432374975252010195326755042219975213568384498017865910950551180885024646436506857572941937394851562069991671224446946712044549473930925066439983005692381652433819188200927038779725972573153985838098838527885808863194931227721911965981372785628048845598082066959542532397019855366084357935783453745961061932864540604772065828437982380838130658020703732483255992065472596948256901364747555198714619101715450130741860748791573013334797283403770803495850487104813682315665418763776234633680725717635543009353465732897557548402334606158368373198109547547219105105181861472956677581947184445083596417633248167195912316115224591851537897769352727969702039713480189527950872009483704470880887625479014405946707569551739402959474762474920062228285411259188479155591665002660863126907199390910436361090666984485138325227709964260742218640093100856852363536165525243135759800449500608329742250815719995523659366138003958279289843482163879881757056364136282174033552263230639503075359999168832691029227367276902300223794319213693220517296359479344342390014837828765508084819412232213313717526094689777052236230204746400094111891785271867960934127659192799916674718286005939486186706681428284531318480212740724132700256981503669150848590420345139560394250172746889621664521752839186695863652941691549874197583067191661842712558374950697845328025488981328049139565381289366784746032730526234668070842352218828071419437202878675137390901478002509935822676312276992310712536170839932776233928868921210285382276186661301584603940591771608823014257938462426652068581561520782341303289105651483015897562968532338590001991704410191114676348201292839564762559288362712793436979991289783661777426173927345040120462765840427173964710918777131541727085941087348502882089364152449224508290746318758977444567504492129378048472442658259015026138949350769758592728621674489151376715995928768742173845697148255701512069256568898603743092169299314901222439082152403827910598850694777209370347683839138065055808921243461047901378755661145052213213120583425235588576886817129686384084285711152267440512865946171913484643435869290183069137309103227802139135873629481738809064714013421670684297715352497532062331224693869133219866235062827751992308484884801351534577685203250866263702881988208608416283871078532465112814583302324962774587435836447929723352257274607779023194764849773181190756984750962704756851311930294344175966190188971345509848652099954487931960604438825336084337340465086881172390553179078803658182931533776238069365819021919487604587035776321965841988601785675831061148486254198678990890970716804336221556203850601118142269920738007944781367243813678344941442841142719637878989692372590659312644252975382762366207274017376542693726653689257810742885170239053728381988647623419153601095511320218106319001080455451444368897324739124846887452632838958223460712034067531641063279188662691588749013204682772913403560588382881417259990764275468611214336189890920806181810949503600375214203370216478321804387310669602549366073951615729773056444925887147849805023484436344811948735231645926514626546762339836913427601506640510690814587963924929749588138469441818475241363913614410401746661988685999033531186478183659207948021705679665241936323700292801537661626619786106566652771805048378020504270742759314904450463845582142863325552861758375388113321893375035552995463192956604863927378891568380839673319245815023523127655809771211599459674010140107953760751242745568229951009570681043706454605672719059280263317271635223808252540082262673238465674416584092096366121001990732290418607005081378201959239961418151956326742156033867215714219773878677960924862407908074852684599391302045098588194523008556948788835993706391362928078898904363910373290652848894615201272514226874162120190474825562547508925434507553068979873440937240172841682709939852566850303797355955147180531944752878494674887123438233697782436581985823171389995865727456364812303123858952571296106006891940623091982691017867840219232064948785509513333232027832394217116061280887855843104714926639527038630199026842358668453619185301269148091535561362695185687597965475575013457323823552743803892667440601280174440022831526375944382459701056427231157010988611397883837373578897348487069812394765430590524088974529776139009957479082790725905383232472832918886823252700392453099952196440844079189228046971231478692457054000887611754921301281046741115194980244211261651682440253530375443570352890879789247164216654503764456589847267799797227412626865708327528228041474034996125169837850431087986124778052732897729153263630642290957110988615324125193623345889007963503047744138714904810757365269863799242338641669081458955394959648834455748785569271989604993110105122472243005759905865813009462959889994738802186686801155379980117006531290601267756295880220073629628937286645931858826123394914443585827096302604145136252242773381590404758216514323710418673636599127204733078732205403894158564105417800556992135914609917540257577494591383613299492515531066782256974349502990433387818795555071610507302471919927886112322387430900047934940005500564746791893338072563035547605223949711199362566116249407489163653632897515540918369548955227400298876217713498316944854455975460406489851353464084293901857244046854696297059466408790018106008111400622600105692458502134377133044102416308495124513800135480548079437766269310238987236358556522498178374486117234455043016056075668940069948913650212120222908701375768050083600049799792563503325943256658749377174485009141441730495308762408207304159631753064413418667055166170878038218251487446633935475357349845559863983960582874141199386439319776041388982559977194598341803828599532449781903201594920316758193057233949363039079176739877428754612693846409680810190503200569068495622752097355482518558632564962625876194708937711580468310748386332843679530926269903693770134284377978984179834955758117998632113578242905651706145908412324153557296996143808520299937852564532323605800604886361682996897023650231698124590168116873209718298732848643545875296357384850418197494268926044715205669589944591005473883304079006807126688533859945683791196757969852304264513955901415099151656066461426849403208252486656381790770784294996115602074770667704824862808953189825929773639420164629144116364829658061278747837231320234416595644256643368054835600081713341263159927218635785005386191547704406586468752366863601771343323553063619620083546538973774364342809353061319864478593268246876559132263594697283577017308168089501343953312431562548426477285568765717714512325361223488735492557137621813655034352782684760768142211059259614641720829972901027657677088946829903001132464525142595038497795447794543638709905242474436416268580845369115103999992425971619606948786585397128331899199026637434213631371297726044387000733735488020695561667603198812981929610455751825001771130394831561959828046466802807903673600008374384657321544754978099280035154406214146011610232476305956715931597379214138897541253313862317133919852908346405553917684531260029645342747444592362516838932638065281216335305496428196939884756793988376010714674220703634943624990135483007917894655100038691820065618883456566832016939611155175412710953711146932578781569732769991229244627552017306798771474835178632768478972262632199655769069152776670141753282800134369181523161254374742728731578885443063184319788974408952352442014518180604527557852118479001531900198811404433430184798439107796991860958909145016449348201079075719757812848243499229689942069719673107298696356510992282328094516690502036481627051778295246539314874995221438898261153913448764709274140908085693084134177746958169743502120078746560487005047846324845057615090677383072941049662725987507979345526307836083649152054509291361724601405634999571507416433860561041757373122492331850629393259226347430056182742936731856572119994882372705213749739321935505631723465407344666998324621216863801889912385156044333309023022262850184488372818982161786321949355311228587682488037100826349505597421082128495043500479083581992571788925539710657842519600150641172847583800189835625037693413661861812929806079691808949087346549772774144730141630901709581066369221463826265292372799708837774856138929338375296376137089961237566464703589052831601626604930825401222390250200937969156803577444435472489897039486730371885530456893026789369794650694199222125156398842718383352275025596427753156267423219205565462619784949933091811654882332465630896587703990062195062161930164731378342432331228847843546140043801651699654216588874540319459512312382471042890542802884308760357353442805008703162476004392722284601872234706774602419111807349499835739524970047738638507239021673458052489987773690744441349931206129760989096007300947776048722560908081596331021018676447597216937112804620704251902016506098644543522032591483910431317503223937865382589336680840311471718949552394998737615932629044580719613869112741132241710788454411704765650563177174238483464160502312068640449759541621441404270048230688285928653141837387365565205859335682486497524065370927336086078612611892483142033644109137018080088266119805463370163066723574390337284312179757707312457715286310627071019981064476114870291044288353158712512371882700634370507328041694698117457553810150220681785556014778272142764386689807912411105633770797629250460456857273485889602929670074041435889095270936161407397526674757773362100009908188510852496191992867355223441361044466315757626554981726914305937017271451798182650963883993477778617950197373848805220837738293086967424059845785521264957048946879975362878253949315015909273440647728787476126032664092882567352391176615935525368973907221553257297109398462172155536389677742924467365754501090703886226658126662268835100837787690655571766620916175070895995894337337324901375163831627659757762516544987934661554959273871085084496883425141561281894096691164694944144731362630544704135132541487960742146356792787850316301111781723288993499042337977089099367322148297508240179089681976325919277931958970086121668972514072020634188629533218116746336369695236250032312365563208023483401123030124035872526692004508464931395684081188575360230305276802569645361548906686075183982978878561464839110993749840111832083484475921885295510676483283379711648289346910136256722543721185040833807640862807873100362812875174847457175520332823755909531279053360324894380111092500137227633777972408969465353837754987539294939216857804537326268830005950870361445994729011117934362448990764372858649243144108069682551925430821575574716679695088627504743851338648410665704385424511640830420753959832729304936862099175190871293546393144620363260803973623445753663032860823064664433292570728337348947564608497063013134264829333148939779279047210412310577648227763132425755730214223477955246741483940115742056541059398633444161886357441619346853238992275977586917613392679892091649418685274791877600699962828402197431268649772358938138167599342146652871164406188368133156063292231884572872538861206985310881619069168107254147996881174252299368839710202997155700268172378962761992081951587488957933401512537391533090165366176535321741155707336828636958809913973787393278913277211688753996473407303358994420706001561979195506749221161933511755581799295970715977441539212946041485184343282841541978424796579459533224870264302053279956000499471549354307323622417995757431319932829009044221867252119361480820462661650345852553314065414260903832087326027011353413111285969918906822997334790393055116391082022460501702376505675509998269900482777575550730320962758850508410486177012672921854765072674851648736433698666557698258766564918896795407436211973075009529805374629677562020011465868423530613671200942059097032900569215496457409229318487829509388227612097837275669831424776453404494421134987283487288942735270156840176026750499710059235446402439928334597307448377011674908446699372554751923130521653186441728907845591116206492400382807275568246336849549473091007093677139304049517175799121708024299050638839551777799417594816579219846967902493973401133555162920207997777659277759600532507783824968127382498117737545140177752857407938358940588185374988463142272522533924966844072425900322949632713022083307952320687067401638427999694032512223033112468402317605107882564865750973666213525356700677751653174700126047043812921411681129226572094799635244578334030408281624094896939525419042254696522078552291986295955323103695204230502518292662846091720729911337432942328141065023851769216702405183763902555924214157906784959992414586684207510281993386060849592369085798591455488536100116592676208352128912297539434426848047427572475329560294370305584495125632968936668620750412816381791416727994240502978500520462749755154289611583565047442293173740167624949057346396653951474808389838599032696791966492630494670159189044622757116222959318882799689673763428940243621977850409398312945380748676523924891497410659063703174233814082896504252627278945976220287963649175822646576468879408846132811885684891479529728749208907605067000716914844890094650091506602403552529176133401509505063092162337848801916342935778235111362699276618331585643634599378294035157255127100981033289943789997128848629922395752994873034964332789215369445522193390941632760343414092458625727758495477160065841944317095325907604384113516930539803646948488397219204599161654673618293327619294354578004028120716403123682537303397317590695623000713518001147407994966159534810725126044600221945411106072823734101565119922577882427235931280728502875618598857941823218592796017238028246450504476385998114994734432826494576167881709795319020989353641168209864603328524657810590679322775738901850247769871267789176593224577013795441694661631568232242996053449017104632305748017724105675682570406562035915483556994491446243857501994843353790017689489833466898845064141085092488353077981666575577602322799136907214781240234505402736548898921005716563225778686708999655795791912962311091943485164026847017321995937906594911808134414337136758675581777134551891573629566220691747732416181988980629569243769360137667726308681157399363964313626144718305316445853709729737244873451761717898410640964424089961158290100851663702265151548646675135258663117299898390575355334145933661774942957941852469875235529809021741137081124018413389443623134494655402941920330513338271684305142698718403052779967882183034496655285023537141552443007534210857621746550176130840778656473559198537852563384286611531592146861014497050540306053813456413884371649832399510681641253133847055442175665359090689204309841312939002739307184054439596231107277077877649200739495073326087135071689805168729857313354684660977680486368025038846073356491984320486580409666276432221304592823676361525794507605208851494900067262593948990707415997910389448840726914817330364248659604147041222663915984489649245892139930861029105274745074317895761615409318537806046579432628965131159703771506183156664494575533922121529394520256930681074688955438884990140901283140681910162379846650688737195669668475927589249153898284914578971669156045816444158886179958687063861917408802904785706951008140330382215796576756071122577347579801646254751149579570800379509502318633410100425987320366693129072943620026246314819563459495201434139672387957679843632951952640087589055551625275687249835149068414869595145788434638162883280110465247752622056441453391403524763676130712060013337319093907595313258921426708026873728777565864671492561536218756665285791095312399433984251009497164757147688646572604655752376149210975740062374013852388966901002345031049723680863290257147383898753639754621345555660960146677752318002943907357611334817240932009191047346002139618726031556546562122725101873423746562642777821174972184566383279691098362201796701043452511615554360351022164803481525795359681713143943435394635081893841571735303644727598850360843787531544129793106560833701023780451699705006801195691901782408970834907615086181766219568705973789480221624310430471738074891428827799406906378378536097007684955920633673234514066078154308894738583927433108693646532997847072575895927906077671311877403117509259742034605555577090338560220599182755250571256142866602434136220245787307726784340236611620600991096035444594067824856248210546567482324078596527514092142022547513404769165680429793160074789901488383688580271061230071546642779743313445342445019467375371381875755778829797928870243693629835418947239910024622036071624346576839475340146522498409342646300000873159075120498879255932840220633822120004132371837672365799342154170654880327188196007093490450049102999432235119491149097623720011930960916044342087126071073384462066765137719586693172791558467492230133498395087844383330978627473661481235184491629000800491069487436653908743140755008514990954282514577355002762775649597476618091395940856806294760454770137953735784430579163232374326388614336268486371908689476637707876830745720591183162162351186241928205091737042440033520505577080933598634079824744832057546203370460128237386053547785253162523677724517874116222401119245517034979171099820022550480187429637998426902522619532107598417560096359089227775429538615869902445557775447958095243630106411576801439276576476329779596371950584955893635249314205723807524157052086700504746505594170639861473409318364683326994413858261757453006883979063168984917488379528545779196342623277690914218827499200661558412223979915270751911202228149777596858422825230100203290849217563276239972151747720586376162072013844904100942958950799575096196470659845063677731000171005756324637479829654910825780298295698296213226431219188638306573253153865365163818101196460794315659724942480027856994230966537529246208370388824892831048073222254676589296976586132946943504640738761515105674672393705209673999251190767781371537910547572963761616080281378784634810513245239175628614227762016693241397898161540301056867065955606088851780724517891307379596629662237485583130593806928867104283237843691607655207489164512057218203391840737321165251856245676513320213266297029801111501377090916959920713393776519095992864316377794766977449823922780039419986498734995552512425236062590573011075755305546817518608493326016815893652043823951228730762448109104783663296333795989697841900111905988337316028608168711843730038858377180582996431463437860707052723630028692221081254742136274807670923236039875752733147523502922906188118459713965709515778027851458816231995924335826622618729237814913809979786693584482913602313409187910586333291196593859345319553981312071032528668434120030237390438160596880031091765448260065277888843645015267853897225025998600850114931172081014483647198274059158486661073688709915990242591525935103043138325283689604824572360801873402979531052132582963668601060914719696336607217561109959404988346351066404600649012854710903671509832140733545000691583794341647120032339269657201814409459637211922484762341959266737164370000417036642508481130033051968495620318913282025799401218572029942692553931392244310627415375832260908886677037800134561885419263221586004398295400756803570824183312398584933750758096314732637343877444394938760669467197308904317276936230059739953354624115641437568057599630911827616682587692847106293323788406128677277882482696527636381851039529554598960001209579230762546565732044920841763312616040198013965052479468420648875670132400459763493628240138586133547099419083898294458981279558399599481539679050107373803715858592505587084550612131906566230848018700213092976334041491571590811824759684296517109336268223059695469115310385534627478546730940778169898071077077397269390503603433480540792911844831200762999420004801372179453280694511174284413846059076965617945688292124013020533359727884877231283221455042123844773161493362728085877940874161293346237092309946730013337047532140121681211822985356700075272917330795907008863990964611935587484109717835942413327394627141551837921657919218784885306769369798661212135585193539744506893908297794873141333710991734575991440189091708822793817419242032257868294420513722193806303367018301003326859542779920923144144021077640611832633453951025979345797399291460935049554222737827190711713691910901677673460457927923615110451328257867147753340582757904226291451696992550668392483907458692799110459732552073173544497048374056413343274654734934440618604536714423560068008107566009524105176504102524277293140903941307024033590968489896740792919915994820537184062885124152375446872094331801918788612162771861246665938837459841323025415985156909534275980279305174424379295788610796936509609891848169942779567037647997859641167770728305613798451616114935235147064955269362618568198143715503837919218733283194187708425372130387308790657551670484367446851105333502528119468215974016429842090164804131107947880862406362106291851465507313078052295868691656407144713822769717374691861156206437638117696984590934159467026044033559055619829283448783497310673652253358417180763248871694965505317863167681804694157601858248282140025725729191788926245111611194641290979841563230440484757890478218072105076713259654340181721954197274087775778160417397029059703809887202834395010259353549330441455102753304509662861261886779784304763774488815027843226512760617541722577569463990950930592428809645509609937563642067300483712542058052785426475633822109389661719064007341207720905209439512679986926290834108124956448283759746218339642828159109173978849311052681845458378828758794391979163485105258621611178034608227107630666845577087318263685244851331478747142779124446221668051356220090152211226781292930991351479277466865450322262423378208413101117056993382040446493888441128699590234095921384063095781556288937266355700830889141221010262733372161806921304731606076275393213542768456718489164785830837194228273272893281719487745330472246773033482119293214761396009464788845843366224325891753919604859333277739459574694972278519293491931092711067622683767483667551445326404744667843762295201205126196865320880744145983125565342153582486260232425494059741277866554412640987697088644642089866168941223888488638531709278365923460147875229213948292148217168267903780838648435101448250047348200915173353874246901133412120929209414174346919424208174798538200357183717427274381466705180100125561097384323381893744144371113624560105432195127342473968493330215678445768238603307965199963280367583720712148257926745410191194651109886234991287190245404769076141760870713919015820219128979860072429653507117015151789042155654209441329472181295218424303138770837802728755415067789060924470852099913931858576243153697932666597622085114214974196945001158598246990807645571750220105012601915866662728812989488913713573971635508775453537906873114043564207880246509491721659302373000738949078678330050860463880123504751889521286431490934304751793662094092159100476022780964510041601184846993866355830837065172177356112721403754428845310564957782152592876324302201275934841607548849769833930207564896844890482465144946174295261351439708120987219870442911670025484490872127442090739576012808718451528262935642239706021727852780733284554170825999304088411519882331233343284121161964267257375157206372712855276768876962287084633723429032324923050865098601994124884400478208096987754752844289883829570129809243763646122905669673510393813227821953867433041720934705935641897161180531927810520840193199537789069969231345777631063090119722532425457373832605771499622165643529723789264923424108706062822318305932005255053403831832191111858996887355517909014785028062511057109407508799915294047365342824789276603318577747255288593604167585693195977069707251097359205488291077769001720175176336491294477918375677527657316713770302759547340415507420121335546255037217569129251428783699345662606319988767832906662939665320341714646965908117467878482436047074678877091812837781186636831634236566709645136053957225549453582270521945407440069724922187490686238145768540984695209980305917231112470300897498964506131050967475091176043021164440659422429814445400120963445725647080842993537276351629419124197983956544674074067929872515059006457211034867157806390195699092363627803585735271579595862322211604645725675730773734906289826054474581156730742337115687153300397689925938629735675871382699558091524195056637129805607977957953417713726233774690222889848988588683764121149188766907815814640750955756159500834834379533014777581329433487216905322871166889592388276691609033584144874414670513051925401198462136250378123877075903092610173022926508827621896148621321281377236420086076511723885685453233865477904871902203473577413370163008645413309561104880131215843333445532122161639046712979514051855554058332776530491997541522183500913500853191956069098001543941773968766010549816575194195148255287238529800305657236069143285699555325524825755103763120327124440538432000038339238654474850023600207088111020963053101489711101971468945627961370905754630506787318124182227970122998115378696337585584870186136419422309492257658851783342347079807114526557504891143825828898846063842292792930918335316219219547993632655106375339576648269104859106334017979834824418540422039569152287996077812470742872284489097451459222943451334358511766487316912490773621548920527041311068188121462468738269173460986649754756644685342234499352340815803060256619897190082618994910634116827388017449048709971073960112540107507981131451627839824757246980502650317101853728201939221212508936447552013891013660850784104053177826267676749815154619816338609325632785496204006567359949264790715112056108107274514957445121852302361044374916586654620806239737068249712933566342092417553355075419016227019134402221419255541386749470042084454785503161458927212410947754652689975404720348429444172022001669439517323715141458586761297328639941421591470732754224560516560124185141883497882730210636060513864742310766588089728667416538917379038476744140673053516193165082557722329118393389944183537741719486998773067077345676407440176282069034695678596803832629332524759090075691118118695792877100117190377676562752738827265225155818256239384451606597632409090867395582174660972117159450402424232666659367376166816424279845688132444111718930248651178871176258199947109865734995079914943483669928634360212862733280194157622162279830335262283205823107453521083801500819018027482386966949486540094242798398971920182787424855582027590120605854875016373384502134962362104490133852981221244200031086298798057930303259337884090835331704875895833438568258315246985065540347409441045301287427228231908070517502928068702517875609934169180300395247488482266230468789123027105313248401644588815351512826016484949266311869559249960906826068473780620987139776995129530319653148945729346830904683306113301514905866323666025191357402910932797909298906229502540163829265127421793653925313068212417749049560546962662472415059122846343503835239885423710672069237298524113608984729248659180139193592476543300173554830337528414727265881643642450514612512782992721709901140388054122078730440676813621463465924841452329571401269032533940014739155853029868715686525396641285996766259755581028262559532043129464114689818507063480805644373406633607123818905487674222907824878357988043584317514013429910572786206452927223116840744141627898895787495670323930185684557242144068118617626465495483471769711551156560645521713250314685506777855100746392434888030157539878326293593929533443457474001703902826866401239505548800161492184466079201629137479366756089913698626003449475395114266894640087722915806237596176396100672551811997661544634830024340034478737127201833767555931901179691673551991830602443869236125530655518237393374720779347708583118741204457014364127398665975266119473395259093150573020987387139761690999105303110160120804801323981142113587397505704592597238887375286182828087813355425064458826871089755468152057574540687378103981752983386522268759196049932076993443783309039555440245371973946557114358747182230322831884698228573860191730743309898535911576391222979713725029870388784617334668889703730724711513311459728346600222084791098294081571602381517818754924357603362661930020341340731061321872011619152069510651882938280215023718238997155598528451081721198871876997904133224186622663055008781831253179851108860530881398716770929675669069481356147781518887429491591828105242577785774887410552051112035961827754012001554184784284232520184105872562739297817637056078545052503078580418408255305502767840396243035012923805131125844828169533660081578596327525047351629443183133488935194648212717458094344890808626615726449366281917677815514987540045929843035726709124836832124926885923706437913373025051852327232214837442572104680008795796451091085330629508877900328812425116085711777868429034029912116194884432735082973380868675098518178684852996795816612823299113925953097804454849183529587052302904926559573397030319582678958512042228298483844313356176008446841705376466142614714612070700687133450960453937065900858532835106083489718001756201052064593674763600768394881698739587650963417562012461370502680847244828719870900739911751023202549483637833584822032544620006518756128938912470256246947857623470189425330149691082888506291080927273163337724644389489815969757994221613074244742661387716580553947888080963169802907310199646254130649933604658026389350261150904089899265193420184884212090282973133653853524169107188485006104071695469255478405895430923920631589954385558115058027148159876297127155800969027212564077491509601992519596232297065471566364845704808921288579711591725996223777642415132568809241609928900160194733486441188676820317973092568938989333212534097600715051788456221350901082254797379971441378043428330865206718722474997914909663130098262295953549352320936964089010772558926209725550311977350229726722649230018354783784761093284407902075388008617353373860125830400930511231818046415327616546123187582582982887725119479902060939185021274590432388179237509743353084196540037997770167516365281269058746873860346451116656207318878488764976689823746837528358120700280096505097369631733639043437843494801262976761198691319488371687206663146211240230654212976349842874871680742048803753752996605206146550495963132925991261007576122527575577548250805148835102696598941699776379141913613626247897389673261436839010753317494415831378278046325240725287431770632833353173698174956713263837653612758276917286631069914318120344371258393499647726373924455796173359985020502693407357506013332492034974972224962620020599299310097681045791795879657347787465149752126079443385466468082945859352156732013083490020058007364848377348866795776763417476068871525776311857965879289188136254619856590274984292836821626240875759336852061353370261878037145729165489116370310232907347856413028227262703795966640570667030031104562317070270575532158179161273209838785743475504596113518050638469536685382330660283779175585045736469714508500321637760272699628101593943928878051585372776030620763292688772680411067062720453283502957130284232928408300153421458953441102105009479134172289706569396190300140163338167905731001334430222735753601802596316971700620583810859789474612667744586049016503659297439540817172307005521487581000020783130009641350460395227057353640638774652097823907365052517018197560252896529294445742402016687720413210660279339347611501264480979167893304198435771670898146064161961342584495504906822569544423108966752077227758653368031396510001669657941046987356828750268869676433286705607624812914836031410712379157286642162450082589903489862218186149402199647859845140621751500791277069870835930719221058880545061436869708147009404860865238033892107489981845730196789875992877075184553862914129172052279364834357362333486698723471345154196899990114764946809445236300416433663494625018298235185448081530214282384312349463640537555746820480965715986470666537555034642037666011739322592473369206954073979991001444482897363079842064780245268074884693855357579384989188338846382620808607645937403701102971609265647959225887839875892502400538736788042208309461824612989939790241161421964549041598490603019835861085673146595959615287441128940516296091356200471574981499927327659520045011361782309414893980933448431603424734985389497367932127887923304096509672000483929513129760773418041947018343525653866492863691174719290754496411230269002676271452482165681545900082351075680686104733940350822788452670596954443712222871825442057884100086555690043695374192628833124804433740113497563323800609886669400158019522202077086213039495085616504453779374247271268018164147350955306195092538906516003423608472261085981291105948233057680316316924218047094165666410316898941098252775007682385931955128147959801944618082231714799401187169603245295803144679874892570630462158782915680568695521613932270857152671691786336760735747005920230010663763506531965308614085414181010069822816514005952218451710584773878413662868714538519773763018489197316330982137222334009061486923655780504610955058614288781681010283396363619068081764105198050408932463801645159875742109004642820672774704068269970149499426961668272446410719595652790445743627611918629605458317023015527924242888971557060174806303444994143582971083182721824367427042603870016906087771651974422746750165209817737033508057192497577763409338269566142477813245011036023856488813355860366625963375045944633670529567612954597272552152127034580854643688893028281956073886045213948309316891535115479964509149917206773191290323708706268895467659934404795669122760867149876307823082969776822843509867165154530982042035201351821561301615638798807655210131853830092361019746991253274546153085542696843497232493288583268406752523495162407792794544395790629498312477677395979667212656743408627392966796828807839656848445727203693938935277821027854808023019440846792827269060607123592583020386691760383618838417694536993045309596639640676184706577876037721491687568078926853316938778437914336774567398730308269811199387821374041503054230204329477505970430263640235489868213948769704747136723678168795320293849447697109071671147298960279281998492613996700755179326901546441155430193401693013969040523858362978568825006211068215501436367800935055581334110186505767678128200601623975965634723385296550605283375796931544407059725879713480931491103238397965694652884104060236039893271422180235288715870574311275181573052553363645394950203425114687591086378094674532928683234719883247267017247293342766880574590007495829656264551547541308510226233197771768713921550091359101041954280659274123840881298510521284174452383734570333160609999985961189008986013549783382466653206040262943918864015401968414450590589120602322124530110667963446531732224840631107113226341512578205941975914525803121568949638240926488173980417552834964012685225129778164927981219818245922944340065514889675104506659125113723196521571556800802690292055338951529499639274166329974185997373301520039141313460382367537530779714609911612462366856401107835853401908330257626702759290440173798908923878548247652974249302605096103451136606406704752929761441637220029571046442438076884153873109402763680369722541668931128676059177726811948503367594232268368074236794631945503042669445750868043314897818741294628900173101993375076762037324856980138901837916873911895429713482009989826636318645005102434028838007210394635714201547347965637772839527661195825616369372024660036403841849695739579618225251183578370949488772556266690724876218290247413723626059526404592947386087813076471291662183670744897401875570710236252757390754510278936896077511677915573380705225932944392042595986179720704417882525631239001538922749864465080170140541731493342345156228774139252090882087652870668207339199223967995609734311914850944642874395323208943522718861912759357375509549405305007866054366993215072344201374023579990529071358914209227711272792262287251860958366711490475158783364032348143391886249687642327459537708977975477178045675445141575171345029285545453027879790373693175378984364417904082899896311306130279304881812824775860076078420528812592037157229500000383387007411658172026476284013082036947357409616550177901042505085998106895602778352752273894470906974950819719164404887673796969266526301447196366791129541903603527287397224642050470786031947559503798675159943054191506745872433801059357528642979535678728829576259495906391094037331116692548589523887417303856305688578291740194489503509606098035625377870618825923041377524397187115186565358755175806972274818246625666061720870793956341814160439160517557241793119988764494892770021117799764281930770418281674067616776922360239996564455314305925347517365165122851622154166106907378339961266055707337698954289699411055895106609791544547798592893739322424338044521529172254986516143154928428980465159485633735780568826056184384126778833828225060696762769177920018065324058762477947855415513723902005344283998837732110763083851272084732055558187174273235482489850761440570664010921560878782513705278815355793285397756955628598818740811462536103741956761005144437191074609791129220024390556713867653774183365815087332613438446406489634014840392509701707318589815458755635653398414430512042184869997443258764241118426761764635221050306662059138636996297348697182705091435810205394952160367629848331074394902891722458962041894821062954301380277785444499280891460741360624002426459083356450664976464483599798351682322925806187904784181474871687000842161789281361793535703681320135806643749592082649924298563399908919945436313697579050411632808578172301679661500326087714340979890088735105578575964539797816396402481534059337460189998737676735672940205588212468727212398216995651450873540435897839076965484772189307248015903413019859144115516495075127807654366827742290687577891257463226193658537460337024532692359416827253723444502470817664995343680803450359868047304534253392675387924226068177174872682027265644051135429019558776879125723629440638283564101454779710291246647193812780310753808806350247598130401734923887692271770250647967327398634255252694643580810031291090550185064593358913431700807396576770535161247498441593854302661781967122179499357169318484105199494508011559969885308841557343799104710256259943142611556984627976596701008867146203868030646677575976240225540171556708445077485526818967264105163264558724925212021381557139565845858431270458228241432563344116429795329230009095920667257491273882062764644821796188032010493208792317083763718769288809797831172584913269042108279111716007141629069758128969696764340342206729202069810751717694314580614370012805995858698449732369349741258924111394432913790231847472104133616805872600815719029891018182027277038188249175932800603672502615176915087110605692088786198116495867924203435389078428228776176693589667217288599250114322151468700330281227106984252282345174200604866849624587422509331190300379158547181821391374281086030630146168544619886156977748381705365366478875596929073107978863445704446099870496344148689413290940197107831994423688190261921021816203304349301933991016541764099724226614432466190022402646065258387557454665976573686269234464329533677596829223471749296820282165635151426746328563852806639811487335526366689037993170917381035962691415985262632224858209515969756342537970053729792625604807044677570584527403712118748613546560447482869267481963505745525798266344442039919418152759975217041354794113197446280291109566468966670243728610161697106140231855665265635747368597294679676467837956011412045927977784591067620480273490519136737718012520337797570816538295992691391658287269095448774458915555926234148989087305232750561196469715115080743414711565723419981992852054222203228817033880860261182493235550958597487370172595880393232741636872565617697364212625019424020868654074808171663726690570091257374240909913659629690372477684832956146970235804846165954223904330099198116113260622907717083103490507403776666433250654184341924344348573424055466393896516062189857223467010553941702713263787303464209724508907567606488037492055956744974135941236025682718854077533226665098137102357825204827963259104896551680308145619894296890726929164575463949687329203961446435860723900047263533172925215131254646922236838717741325159752086149752418145320250572437924135410748626005426249836981423146931327650222399575556641390574737055930922436832116694449293987797067848982856572467554369096911249667977207375770549604620074092187728960288538739114199434788275756779331950231068220522733839998958269330723269679777590979571694037020233431877630685568356747974872441782606938480630951663866555568033011842913899017331457315209757848837174007523072464375188669500178470504780744891998344573645427164987313067141220571965919861258996977247835416711411034283488075305607466653696581711946820823231461239099920160370805395518564022465638168293881738633141506235132915767954760506219756517684892453968077893045773584275301276623392786105676739971763640527749465596946333775931128893446133108446106168153812209847490367816954326528370194681948422076787060187469864444647255734614251393957916677761258408120562319401480911219424543659116420071974683308679537517913002037578827519818001259386249599838586729512938361238696318676936514226819561082033827540165957882330155425248299396300526668228096352677973331848781859779091355672667994957162522837901997052584602104699310206658740152248278469709658233323977150447972084701556528149981939312227399241446242165557049818233772034316196743893372420027579944271919886346724786340910324627306518113021806766827662466133461710263832566621976115708523900407377810639087524823824464704787781682117286639536192984754648493359310200262823299368764085001410541372618499511341697162945552940534952144750654864960803883673029200049218900325469548167271198310767013710292231141925937402116332891865310134224838849747702934857178695993088704168528177312850124714837029883162115900577812961327719137611585946210416620464249616790367512537516756639619375037918265001012470360566364862554381043851224168441695409865261770413350723874957659457612889514474116424852745017620202650022060631669636001417123361583349921044626519138076751498211057531295457051913940024094971944869123682050563215448171781607484320751922231136414347763037963806966311107661459922996221343992396488272542106813519585788767350886670406201911416709666677939821703635161445621829766454003742099756491972482266508243664660132019381024316342783582041974121431002914560567459155957013610614526152552994448512712213210460495112191306474611458862622545403506614256805981342509320354845127468290556362649597660259577555463047771763006826947577921979020596414108265073360273526390936960862564713467918001201974903344596301759194612575255937070568337467803194785801048692589764328465346501770336571534089221206940071553716925635503159371067390422516279584289117186833125589756557401967300924243967380779887733495678262043308350221945015335271225084723634501164177304414811129908155088287479203539370469384647073677791624503302239417051540138916731889967707456303392259884888363315702128467611199612687118600559539687311426945421261609314287815954140928180344271866985991895781539449917441131884662369382367171770598107745952873215588389812306406720299292948797563856079061210439049872988467854975562440791671666398380938112652130622672618591302932586750692700848590181503173378523046061349775287196696191130796183283322327269050248956362104628111522382567653975992238874404502343361781065115849958995763927007683469654703876868154450994873613736236333756566936519360327485176847275714711915485597642554439882455561260792184226387959105632089943983962452496756039805333658369792053569829873446690113524887054337659206172494811858771388076198769827910770137414300266241735921097749392344286360302143615086051805147894517373703838645125025731392574073643713375428592264855642835340105742653201777597815837041371531386059393276173212403813672719413466743181114377828645438819827373151619235236831845484107933129826143622925728512192617691859220140903294835497373576703246112546631321792117607172268754896794179453430774742047646272804501053602239342528430552525298745840092093832352984958530475644552104818939569381318145325353869060352182469584899508621967250823176305953719509111728025984712054291582061969893557546909329082998600722459322893373185203458357452192293637628635620597588805176694890705593960179735581155752551860636187104577300501701880281112739324128353057997458478948634841967354267073537334513477406339144738559082521814215549732463603904627234297625444536706698905453417390544498556832950947841862783558775384103373300729590006809523751330647705494238088484139578285560257916548228865447649088165402996249092032266868855097732973036837774744839413453174718032469053226728706218849598457791381771622017544104705086756002307876964331769662188219665403262762047304976227752989068928092417459500356310683368876516815941402602769014919900426564458110558563577327046928186020666357771815060778079321059798633533586627971789992537478555848809401678314651420852932593936042583569075995905657641249061208272357960497974615154868264881098520505709406327960321858094861238440373854822484838843515170282517681247718370993300600706174172097954102209940299474924204191801865733554199968869969287057781974930163082535734137079719113853624407618540082628936335690952048071109076936960091088862978130690398157608961998166835164139585567926498864471742969662000166691581788093869882467414191521905029414111929308869444563122398851891932855544112319364488526839072060403697241125512178041584176380994568453811314298374566737429625542937503846587790812003081044766709137110173782988591351400691691534004176820516633788550795041380708271383735129780010725046467122463283826775951720140613919958290162285942662679880761156607231711323181189496876379035631185817284283367272013359249023653833590359790946566734683814495069963142152014296027333567465551275332629414482349421227585671578026765953211864351073937851336135786449264633435224936141138686684549342204357526906157061124599647879580361507827217574631745576783642283013787107435624062113551882520295217479598428201151036006677620271516861352088682909579884223372604774160958341074619196632550906117104621117397624764720676025538626795831062408226719103708311925617962648114701397734051760915860810944663717928440953504049914047710385681074990015540196444049125989082017662383993163893635794458701210573516142063607788685996982173573489812977723178797453000587899792676000104829187369841625761725547547687213630326732529416767193291676667018674541819926459375767951483147107986722150136093880397209677114342082798356190477636624872963274520745942387810011649790976450689483240811624866913063902358875958223500667937046375693029871826313145597050447664158887457000392835659873072372392607968036612278711476072620392044668128499775427106745110629166103007730328179448261015897978949649736642839981307840286541586105238705443727334977541514676021047216411415303869145214489472657742456604612301022849096925052751911043963902700124107451602309575175270192660133414800655398109483111135282903245239209460277989822657393220328606514628868525739863359805594138306814462846853439516762075841329720108993446633976276367933354051216187302682722133503501197017362538148498441691899114755174286525072805848046119110749930670084456832628732007908992688175127746155130660037220794810475344258539853697908343259482716362998121079744991927031217285379388793174993216964907493650642189953102123553268502050010861169319636099765352358036095701726698460732336462250459073139476323711057499775460420862247986939310046987924192116994601511545248317028653988977766860245778233911665549971033836844139896415953742634220332410503627217984704764231430527042383937464179722817633976625326916224275391017590554145438705990681184679264447919493637718796206324678705407737979316897131880191726461798299686097553360305533231415287805050687062591004538526980655833265399442049280833392823851120486039742924584991757760602299365989970208973611053806501992077381798589027539305783785850458694635040277498495758083432413178784011034412783523663037459771065362619910408429962617201292488891840345286611088607865407364296764893317665217706644610414557323093826650795541905818957616948315187095243833048031480576197266254187043607572154999270639084813743487646610477939280793311314201122524703905089553486139343831742043983062176619513687707171895360429281381839952671714568508812489260409126783253019200393831115917401809306968070907343786981438175185703001201532859000848943170419027935419699071243816418757877831199032217859640489340031632660551342570642417862950580853107373072308036551829002060176624037733887636284407907294861691515042438015172063508438085877053082117493315473935459591284176002084935186640279583048836669455845723895257792725061989797945329238943914275556203958751359684808934167106415661196893301192728777903682160756098613074509891687413150364920763823417723078055471991005630225257978501622341079740174343532521457168897561966566357901796837961100043175984384366995284464858988149096767772716114104321568675238671859634597365501617699302784568207475975082473372411019771384170445786277837818832145310835109613108271251692454587104679637982304861811233930544187139390699969933121263085721894196018289699392370935414702673161036721773208237350013225224128048905408279251879419763137462316540337398108800283723600550131896919635071575098466330539008740223764723795686586399274050749635076324477267455099476278282755367716111367943025982425448320016647570411653873554993728194083075947284148784003451573626907375640100648836651583615233685321352381268999286889528114743783891128785204725869935693694742979266062958767814933330076555267919294671876399713613891470439032458795882634744004650701979969008442505168087040307170812453352615889475965579530516615524966631238969127878738638494570000339290666038611652676903293773758866566944163205919952596131639978082694087557088517094325610334146046681578260261739438601519968194610531526074232559668570554694441286321075988396620943398675363450435829820537855369887790140282205702415005620940792339798187426025623991583298148551316130486224372692461437573217362256576055711096928712048712259423399774602486357828335909518571995244418960637558670325183527759682314929711393587343658256819162030447262308464024688250509335710323695602894379148259926402058576011897076180503102635779858404303080216476447543320916743374863346746566397993422940256069640401641842642216642590048148267077503303436730025859107252594282286100142271313034881172656187963769743766089570997842750876190880241501102908577473787800479688166357934407599634840923521233096647738959471416272446339424456222656194621380414825756933459467061953295594569489517376864195706185575878043347971527931450434068304411101038518206522798527054167670837815153565526851984562666607724844826105891487800473994678532362493076827538913763018691705458332558476641203992643950308390558426762341787442814160244200531120559742696348961680435012579445586164108802812487658901024107657124148974272806215185655059129426062201367381031380603958009710937002264684570510203365417051168462605182887631022277357582857508698758181275544092945662711477591670944932462843666809546796133492934891853919022220429562826300923174461194513779586460746575650726960403878374682198474839757237151595890996258290834577527820506310874095043839990277232038246428930985248892337458560806285447344521807638798474711168615859013894802759193779722576460291480946211739756229144415222607650058396868828184488616078355218642517012323359692441296643921478395268369309824588896890508588976277869218195879589902742117408116413088375528340557548522507479964045936289766836146049975207398552982665839533714300338226510341641769657229703971322510639200622718776732737573747135294778197212329642978056932658034188122942040974746220540364453447313323662913155948673942511924760923076610815814909437338410893543077476320357308222124464226586230029087785862750226972961762158746411688649607487612601419451692145039261992710319127559172486102245888822935956970339754547968138125556825516587302869032701585619777067445903908552399773489421967792507709864737677386042397530612334670944965334675722527414880232646268640885986806602143764034823161568358196038038073349595241843652921569035099692432616705424043235625091483480267986732489233200411274941145131388885740862434495168218708028232914408525839191119279520579225828816695746281741510794862882043022087015823144255810856544881470891598241650117633460342772830974627939904302059617476219793388326973610069102644625323255335001883132380427979638461701051826000765758165966279273439758077598864620380439355615346428775768393388358021763554517316860746667584162237148698026211636276062841842155712374760452521166496958514690356650215563697539808870346093301118608698027134867909616012562443777847461651131861454386379334347112086813430342570804813117414231683541004255944039667242384756472137394413500602883554295983465486136425827893604660573837777603159297824179032341201187512236865304017835373165838784870745457415246949497085943475767889763498303320253658983151124237366185416306860614993157231104015392238288668923579738658455217321481045374254142291909595823193873290894840677576136862751344850067686523815012367948863018243317978977997514664666467378234613302212724587434715835817922292276708661540057038945120216609623317372295938445670626978672104723537858013814590415845641469927209855351404341127378841950501384098878955874480416244057491907879770803012810275567992316017466468062711645093859193577747129730518527143990846012499581332950873413309326991810522532192231383598917287397131997236503885182018649545974228986886656650376469024739121323578362626531428192189745712643255970485758103194784846621658234251613246799378711696589337076280105055636568340486591504513389200229762512126359914326129785882051154822531383640677375980914553307429342728594172566304220520693929188553916526267424256144368916049470921829703014885206881420108348157804199219311631411710860220759593672398524099769844919159948958826977045700297905260653911212928855642374058381721737849908558852876154101392402155158459354853724965901895148672616189455665574244523536295345778832753175546326510084942138419414693198491670017410505033971633210072286340776683772431189672170473949932178942223228239801158015503918731348485928973517107026491142129742985836822423087439119154753124531620928687534377112601782121986998333516163385506124294077617769988779939896104627035710349110935420910648389454913366384851572733125228117013053436062596533963822180153961091835022221146498106477120368297978215563801894358710554292993962804426609100996734938281886748366044955721309769759812903314542207699672399396474466648579482943034389443626178819758479169586421786560311130637075470412626783899801934465752607881518352342955831481745707770457068007692506545473179028542519874821934977492246225477425459694671386849307266669098376956536122110926118649956713465578915969698111886692497905236247865775359841864974140213661155903221455602741966802339939689537023262186847073531464947672307929024257303876495443612903606712111268774106297150229192146675013395490747380581999563343946464279282525850514577335199410352098097670631916204227236573913610532608231920054678324650245335706882136565610986971328882217277105690432929756422657593941644935294976141346604690496286890599987600834296093385495278249042916184101233721332506315391757833938187044538513040171827376399559884266674383831731520886064871668855370066786981755233658424571747638019669731478656162917407121746988412656899722286699146462712562007905180346354471678511606270794737060865867320439124426938598666992946338432262114134447345758205027392260176797550410984035748245018698388037706894288720078602641631835911925367907446587890703920890246691646751529379081015674494043191847369191768167451977838266698654853558368571376893760763020651127607234241781940308667157694695335570655539890238289548248388783731169346032705782798293738937679614013348203658895921462548869769883779467994892045230208630740937836526173451550446402697423549103589782131329822244936316239509128658412006882529916200546815188480662014299539950102124437158319897573428591058669871599065210169195447782407229104949897425661752448770764484789019013872918017891940017066784016565405464355531231144942853868262465214272148056385131374667213047454595490269360191403358999913101296390490733956537883990979526243138014334652705731910266086909303636619759348946034178333856685343129176511983308938621570405502692839019583326801147239292881274751872145417731383126386697275730276615644462858993359092700842766338607301525751223225745693584646111020443942777990745658109701444813781120208680914968493793935904566617979447205938407600285081574676178596044041902713942042608821795831933128392458827150383449242596929668101100297429916218016119382956651002625177453372796635159281697833553521976479119001111840985474028743042052673355850403419539529392725744636257732642038663823333971179328609293646674382300401908444456546433480611688138574755609254318004083992711896800128164278181885618153692669987999976346279529755121233092044242074816368189225826099093154073401681246659869259974238896989657860860592128212689997313223732658590074163510212187053728245174878932857143396545209942061418479728261050448608284941140003795276451035260537235600226428182430948544014425605136200831236798710660936587964464368511824017357810287252382735622502095509125331625417624663416807505145917947159760707418041767611776594742581971627670559487502144086408718889065118375812918305853079210106032592898254992167656562254553965089027297948547647552421717192733180126874732328428807305175771784409216750816238189934884330771494880690309627941653270082964351372414734609570505060618832146124070203551533708215063614106087527991114437917281089472790206226936331787933600758541733169401742596092481877518481303452382601145487326731764783615951751197021291359981268404673051759950794221693887657909330838876399848585183931642794275141009185320810371870657970567455427602257775622342912865508784069551582987379739849450910747340250456293207766980905029689311217828364389714168624024233948022909995348728671534048615644055142936497532215453178497620951628999009079816193127939309316523563046199629149427227094072891444913228685228777069197246802294607586316349910411419854282462705912568933628123901273831884926057518412196167082884162488032266167316463653321991718015411268062686793001303931790418297495422512547040170323697321275486423431616873831730911695223827799732987509212441888785889871260915188365673250236193353673991135236059783986378448802008978324215760703227824003849302021498355432768524095079247830827738883360789375098907284704650597455909149160002194377103088378377579607191986009630047496920970627436427554308600123021178570031445892654328248962905275382007007033345720595388717224726722119955323171780511864253112826103302466840248464711815274299385231402220673736897891515709381811636238185924941564908714481909544377660746425028791486024254201202689364530511141441219632796935608816616480810632217883970227261400401231186687612400982890895262051262448981518060671861065602882159093887801204574987324509491936635566892662206049956474683223833993043264330869183341856707776189347005641299311547097868416261020239254097927817018324711551685315889727803631496384649966770884757526816589355276916308304335485973814885794908507352046675106122475239133554670006686296337737790095574814945957555836726872373837293521542307852528199235186980455985178927762792877997650692500026094543546429019482218797248833453675725339595108343259188237098890335269782213927817552933832330446073445952836808191501013024750058868602386626535831742298290610393592234683332305073750144777718041513819555847269534566936400704448992345651917005672240515270654330047521390488226935239151332990835992968803719243008897563243776435574983087519185956814600246148613583481269336399464793383371023372722358797882748774718792018187814236365631470491581666070312766194530660678948073985064384345087720625463356365846754483117713917374892369290045178767767089529577257703664521628504655987160371307505207828889473112410569529703957079014300016066918660791024396944400175189260338902656879105685439886984744818850376319534971355925246551432200899642996965215255115550859183470603241187925357408462332712899409776518499576706804159381422931467994454277467099072662782226045746758157658714686390794090934096249550202660570276035983778314892133927880426045428059408692842638022860929844092514725258304516163470945409964290353190131614632951457386462959249916215382382206162146480308125791447238239623481971367744376561942494116193103123733921158327727665873577041483366328041338078940185845760674010157550905300892660988428180748880014547542223832118507285074225838401596689188282095809214842647323748815945293324076283458169821898301469078892604621555112100032502602380471266020084852703732659641010138175447992575415976603072519283735905405379607924161217737244583405766095583509424116323855267898613591837643763152881789756608163465839843796570540959733915675953119746861544245852958611920268984556429038548456627777593970703470313370312923128154817688185197715658975041265718710988360034411135051924518780403759122857582202550216685561154299717170322400320051735880094435306562368695757750957856203277769497394798017188627882970425889134914418675363059600794352743635737234384954269019533627898896610121177506697528406942206505230704991338551227209565066332629575998920972928603612686871087569370951638539758802358007377870422317526558508559469246853563772880592054410969318025275648484039922151523499739868996302204931985941301190212613719386697242861187578748848509157139395485422900854392247859090677105955752946324814278758976998480511043500935646230519247506898544283690005501367934229246550100580183957027375224093110840276826596983044549499368201093545946380320023117497578212434624073286471269656207631466452639452801379235521381123867508714173053128048133701840858094388768321419157909789133345073006086281090900197897837633406595029209405740309698759243387558029822845695546430392584806652085148947046618179363741028043835422581643433153778279910867274779333631519203210461157494876688161396810812949543385707480080201056386822935787411989898572571173474747914453584162019948779323603320854439284541583314355200809073509536721528036264636111773244820746280088186101959883016767203411787740446571759653107753152882766272512138391692157088882425927857251319381512555662731219353410607120678722232630222766383134220880911959172339805266737534218451747375488945487617502410986306638277322330118903971853513111029752049379222681573414163478058916680232157507334332961048652678933862041458590245206623849019940173367754238972859760717478109006900917643113671780290015145924681859344777161432668650323853070781647898212934852716569907358736780027386230378783380073847662976325309878614378797987431460340713311400508948595622275752921863062539294381597827866092355192470188041833734892005720728059172499376375923921212079386717253653413321607736913396068486823167377592778053795527005353074856143182458443186647583790962198996431473891967521552395961255936420857756439010440895815961880708855322159681597565997165809235793760664799056174648594081854407373225537888994815851820980863353514283239877315016748250645790162935942614293695907754163969492493677294614426229639875669516633978699865217640152636956876493793087150651314101256832311957504982146323410864822420012338762658641964916192679311730055276755749062752370956507559733076088621954385756195739812988616720196284382752634134198265102378066016104664007757562790231726560953473586877266471750617538953773554603946939247934488076165406484112900547881714662007090992312966550246283362706461781965444966008949045743531832631322130597130037868075521383134398317607812117500211618710606490659396809487786165293950541937871547709561871102058941702733355557812505779760137548351160100438191135753500476376817517657639430791448798643846930395392997813163450684137280681608847660202094969763526112858436776446540500993612218866351360601642829959199260461392696321785915146046170247775409933797125539619644144641882631782274822213940632202278242543553248133764273317581905940950023453901637905086143190968190347320825475954509146716839194633830149040444206866142963465033620094046994430616997572270013488136174915632576886980287216281915672610141739929677165387765305046269829208144718288376574365786552848062209869503947256220608362689830536152169679158500246005027564447782545489801585085704391101075035227289469915286362819347497645726393740769367814671029767135945225356754659569325002377985079476437442763417741447664497662598542379878521779233333088271656244183407928120901652697264810022684603115829670123014880000614138451671519020256267504524538918143633273313443064481476207503202725614656939326107900749600010991837410301550510208003167215436761353365609042859491401792553844261963797600532124982883769989278668652645893306907023325860996809096943341658578417941340314764066315064838268321565953218220671057843801081296799581806939425376330532022138534937724410608322510886231186636282164942413639240688241592446870244485148783211262821738525274078404891172033775601168085221114439716919812661811703544888138356311042984953087714047093628307219574135949712439235029316680785508898640963019480707505429843837966876604980006027942838632178915169710105120080028141171297384519283348881709364270349728196807102498709000009144744080429545007575926036324300725474680565340223550907275192881790314368786419565760062650403071282379153397954480356651773094281097044256755281435507731455391986675781332424800125786505343876361832757002194540929339904508887633086986994587201089226639505344676813733310814123813910248517189085838449625949453929936297603084807603245061044627260710450630518873050775872011686325982258835435083209124076362002575650970795945173755997956672087516264782883009386613879801196660834141181493428542460784535578920821410248911026189789960357752911928247514402460703284002766399897497466716443969821294123486053028385084680980757420645565501408756283657022039037387527379981529981584645703181487656638243016424439240040271445297735829873179431041885839016674548348188442596107153597107943586761850428192797012271674656440881830817738802878539637841432841906636859878289575890341836191763129209240741734782361705806403150484158290544387339704433539572224370086148917908198000955083195702727633778132717361336331882081703029349634043035098398564327923564930492450345241406797898065395402135426014825367637040843839463043821566387973641432633724938496678665096401247102610332801082906624231608645951657691611896918480521540101670787214581378180649435029562848901559466290436212714042845665300424179627691681537166015858212903688581914993086923097558862084839587548570633668832434136282439306758906095352482394695172133790420913809093590067005052899279473307872920873911643867923489471108783946111133764955921887352007025046015017386624234599030672018137205541069387262283945320421803685575939269044870043339132837857439042252465799208845429764948940933309406791223544295242240748074297020527437045864099570553113786975586321152734674246186903736443656664843067605832114457980607440397278857690602137290329436486644228506861924102660006263999841696253726317738442941070408952477234428157112429169142516123031596522476053150675570505923972761958173095938742783070253019226793536526687295559456030913494735683843980528106380911989556995899420921060847457774022624235693031803412936695010769417604025880256201785956149108449590109405564754157141251233338565861064318490359618816722323938725122377421920656839349854009662170932898171454900670565677453968709625032933783665844275618609884500702609743629591330351876105763854115424634622075768379719981341373101979808263349630135291464988123078549864208970788325225865591303874729412204095661511817640331264876230407385081608668788334320730132355462450998067702808068753012712320147114570800141005439182533184971621275305209673699587707924229675274425075776443259545611074444966558986517844028845933124385185794588584873666278478325249228536767054476820205978296726625962437684367232023836538568520946497846223445123327403760822142475510107613882113802334205487523723811723491120877066019228083754865326385978425050942550580631167007051572271228774416227244154519380056233783953974920142145135491626148518256594156114615788356849555685313046331098747617935098780671510429526170407679048505234908827203767113380915932296170488068128983657725079515176961561402361371501533405169175077124303005708678297310505694384331893680128281823017326297258339566011590478853132172480453526254765057493232999557221628352498139311675151740382270829935507198915549185727587559980419868442942904099844507157941163562159858303065357925151781636855050373788117616966989969060674343606452262147916348800550751687017662196946550896533495271464850043661933428365255860973045827843237655835352706152771895918323439325826458674920151014326565822771296707720778901649285050924959298209643375143771032610956719473628341368943657041823118693948080692936629929800949737237300407384327008460271847370783675333388831513974539984566665673611923136203159299200471393297998217873775702619607286630006411748995297243169331541556888305508932271557967935363948696700610733604956267822302862026201278808250108785616348369562748466206296153401917898759633148231387673904609136271949246367683132653821917232791849487661116175113858686458919379931215372746788827857677144228706967935121654471263092630212294274402214789147217171497720986441306803906279724075383760522380867571620930957378821573701555632797003331231690790481775621745499560810616675371467116772371617849542484186035195937454772533805032588556828233470255947551930835931039117104506336077980687006686256408634774933191897216378525310853801648652134203381576475203902025381082782430835247986474282597709334064293585009804015345750535590980881811018288829920336719379372953477604004353437195746956653715189828692610362377238085045071135163569837683053585305930579496500386714029455506058259043392455409935279452458750241264490541702071085592875022806528884904255405699032341028507347825390684352928639074403345041911702467039435434357667340372495289968100625379821765747985970909093678780835422891599521687817522401600920595962445170032144043971859378188097165699979001725309916588844642901011188289732716504948508318756922000271689666384145967152233335936563548962012449565271059812691514399615610832619526321288175558496298690633485448150022803944135025162419254437747750946749905962698809788334687947289884150302804829491511531406015068938867258579107518840835360387279481328404987601811254440806230426528688345043872213970632178965040954599009195584309986858266429298400833361362505462353214706585228964751495479380795989025908034038204750224395284438244397917798236781851983172268942246424403867852983835304958582460394084994789624422613107570571012880686426597952053696315192953994074868822042002774843375548388811137982202248717118274628981192144697726675337563753513693855253096175657702247941083085362935415317975350544550579371646688634750222388197479843327556706814573159557835470877082557247178590284895752570588136291078239048568995376540838206988320091486312035332442933135573096831698063114518432778175067785119666955782468966493404265255841667413499507255660007543966013732653794440654594686797816610279918534212357640294706430455898447242956564838692489017582531185006322855370908084381006710537852280717547789622270599821862281538382669307063513776443754541662427646678658720818519724156496538831559486138169943893548746342030498682911309709808711548890351114346669920351907227716514482093715269413751854433563229406654703429145775570754764494069650688152379748472112583402600264230659666362902322243657939655328606215870145231063471015166370646357263558980865505803613533874365997919570004365044325277584637845641071138132324754250882431119019884034641165547479878900398043221806233080356575013010968233509662668277501744284989952326999432937406110398212700402380078682028456779392058564573345556484944324231521535721304676234047188639173594208237393293730353562407104151690034952163514831370361008627053980330728438788362192146548725114183176024244320655468239560919911407293110780224639302268525718142266947760016698575706699384776382148168376011201441987305752575120904616205052129221774973576054596013872876949830505026749187010172926452077661132027712750602665173110253729510346004478387869889218497299381926235148175381146188728070668562943235005458772140237859624614195678126868490983703474609148394062188500336054481068316290014917762427245842155779444641868642727746621085971517238948324682119927437983479673010128145215678224678382430708533858606904566915881239099877472249834854623786372599770711011526654317198200832244263845792646581552036074583460593718279638975732875733738559770658338105828194029971837213839798617753883737524357967268267599376904353720789803887386179865491023599710899037282349477540436778430619340552695796126988004609729348107203165189008159270145748965672044715950683376917706305400865035736325713952541609929113968513121644038296834907883127347846545574010745752776027676163465404845267925254511442149561514062523257757661265768298732530117184709208046102190387265451157988971499367142366377113782515172744096708042843593781261565241704792175798930229591887444667502084130259041969827572184321614055982442174266571681622599376747745581571280120423513509805285554025243445112254347784902172874053249017971299139656358914666410639514243161164428472310221525896104868733089256481993934338090866705284371862561271619022051735589148092549223760967647597499353426010771015750450871818807867637255023243323893701624547316955084991300861346086976926136121664654100984191322851820657688510508736790041150768004328449193776265442339216982282580801835889843645060296264101314896626355559724561213992408844441216362754645155895711795376001585103407740336142548907593797866596624833371917974423234713965487640285988226775449777751154067041089906088524953631355395057004674951011581084204547789078752405620527352845005391790991926429198742879310274332336968001725730697887988828921449646586772978995877578382662146511226965369817774852789433871411778354079135623364933924641248375073618036684640337473330661146345778465408674255782006012972841053013442729302704264983739321403239541036888630590764039101621921660076780756686785779640350347011997561966593837959391828054367140634286814534481304173361855866217766669910760510826209617432598098091284816548963799160328453983710442337443274208048145090110130505831013889449570386889233908143713843433665255112160277000826493031731202548340171977701507596646541699019117443359831168637393852648692441069897462683516319715362480934146007380039770543675027599069811796882043516965139510575776687190351347265896405511489406510693224962980889117600788493906618828735842477184630199202115652471175337219018141492342671847844030965033688738231837382450679048817528563893558376659266980538000319932440562025550015444095631687493759293360901429719748002472734255649733991264429638306293519072607071247583386615098324960885224104019201473630608319487797919400293300514244374067869923390557184848376944938527466888793107474799844205962620409194533812292430673797928769173729813177690024943730975772225420646246391144620449922102104166904752806145125146530993250297357302343660782051973399117095029762812868825084197096370544187751460267607232689588079151570524790831269740416860676014397218094723306841653856519703549609733921017383816086376052867289000822744319319038954035108840729755611896444793027144850845277253913905596498560226290125738899990962578228572140219533723787505430682492836342139448575800134839445516680100888312593449161797610640896373786781300558950053100972678680549302608720944531714352261940285502622895514435636962429632476501915691331535380319038293958510039188270883972998239290192212875024638038563146776699674456857501914293787004559769073513938363567355519918304965146265629104582492449042479828654572719140582286594142369008412569718535539080001947440124331203088745268742734345836823833999617173146415114003683933216321549573843156388524627053756514165296585327165498136381625297472576216710918284180941851021058655232466088521694093591698012260105700073214206842973609744718460144012803142840641071101187202027155385448676248804885487323086501087212351707963246272112388119028180454514153880929254737468576589346291274497343261454213726184903210936311128532719336226400001324250130144515391162071346285786481945619789356956389078109746134980556217543299422112302038607169608484164360238875439781980676075513656246319642442280387921775508453574698253850429832028438372148573491172230994614308164461597947091401056163225547290919699509682398673822678997284785389665365897800317142362475852231021937955650433381304473664042571459167434359082551604060793357383798929268356804648337652713790683708355906978340392046322036226390745892657194463357467753386305618345303624637664818618147239763465009904469796873277206883113717490096864465689168808097943055733378941741494873299589327307430949302205191408171100525011605622869413621283087681778544302511307647540718995928879168216516311520155170287588410982510103620097055073139028610130169335286532515880473454130107304116149985308041235621326265573872757652568669914712216734698112897805842597562796520370834908786273096550704706463589160485139716589559834628395432738089443614377906739462020942731224627265117471117038519672892806457232439879003551417957781078230817137677266222573955433116382057996757811286384913670474372862950651595162874678779142611988522672931836401238998504744951779787473431852461875408313566261901222349362002986066822510168115385666900499129179430490343957663080291692079390787871946604844768442244687313191720331211092985138924870299721185426028269628493320136483152343151529353641972669805790729646349666122970972869685911799626918432629744538678317645228143385095311600568756376381588059305382588677777201039850800154913503977403337610234432485634038014301756453000846112607178914793824598665284138628334591320259280656799734783107089870169017740095220313742406182751071387164625225899920503688479317115220524675394833273877664063425642082096962651462360866367254118410791137852576809041902205174753807294738820136969319470345045196100147334595585120571069458887928392135733226087673125079396967686578038667016714768384920578839281746636740573571164401615051135911548355367069122785571118848373044451946768375243828289343385553821967047458397183359955448821624379572035011418927426383285072060970230869905597904938367712574804681861289422474922211304962787293031815941881394594199471159425010020452116411983752479265339168369427429355432961493174458496134053855464222258926099001590918049959185521662643141378767653792740548861229126240743450665111113793501599518775381311430268171358997287987389309165790094238641697996782078901714999655849733700050271816644797830167087056664546430992507206436524219125176510930908039281059921789171254101065185575836959844623425086104579335888400856852541334159520328619904351785624140131101258392119488905864287696353540381132196673359439810757579934465818780186801962126496605398542920110013828474880949819471947812476422437315183667835639451459502515589380140090021172914106065571730287619205735030082355737568025022368748014496475139038146646654162893022007094080586729731913858110623760244741109412348357272511769202086559055092514531506261212802809405941693697034920639526807877514056127802728564014096842221770958331185586434468706824494128003216557053435951206191295000803420087690127787174395463555944672826549297596256867632734667113151226749781932030349863841840115290158837851280119062366895088034171260504917565529466315829345925186725010346871213708148328903291648649944847961636038807869584452277058084165067038774540527212941234952742541879609537367631477763507381764161502271563281396979879847575195230334059566974488251766808474202597674831408928758261303324177679498550612406110116787396094886580183630895657847967772346883496808333745320673405277078075963200117745874360989696654548936045505269566162163939792844376208492475446187335031017483086911351212761301983083725453290494673833066168244093398064045230114774634063576077497811643054521790242891158318921124940297478268479041684550201546600440190770991103227345438714988270922502278282518306257425295839063244589938964782828229307033880766150340171495811806197646263578437729395386706443666933904818163013673387372896053166599232923886844284328220958041534305296992885056317656535130287685380018558056693787755209125901900956004229106734995785159171513193326615894029496153886724889956541987630370700937289516288904507175248583765324347996102788260698623190078166383077318601924655257057475967244300082089850774662309999951601750292065775891091273211891550749976243400198457210770148092669282291924697172685137422588599090446870185642585375865389671379439079367611892423052674609522822073584840052105475879116897719755443504774692506184181229926909738544328290228608438565698992047505881237668610042939378040769237317750979525288183415283140832784691616930543503151604085626395298348955627724689913111147839833152265647493813459458277449170747865453902975603062079367448891454999622410280575364656529471472011395271926156987374433324466274513817679497695954482186669597152422166527691387026049278758982285933169053524277332659226058529525046548157115629858179863782039786737055968009916452571165479966895827142930928679490279063437010889811361844891101386562594399155498745279031761945502303533531394128740902129809818251875524982933950316906885448720217175398201035941667034905460783561050974944570467465824655029260953198577697045001815736468811715716141153756944186509444699750172144449705411261898790524260062250753356142094607120198924015542940260909586508915942936264472409809703147519320896388956192285288745043167641560907959558864119328541920191187227226643599898899423979274349846875237721895161284854449161019273242715995129837361611237207447221993836162556585948069058902972193909097416063270817693134335426253818480598421876546747562328908851366190729693396575224515946828798641384074539533806520504578227668808770927632379971005029522842479701489164825713498246020890633568135489673704800276813596953782752145463555416405981596892252419311620391981595803763217567569970839835303885123794466269076836312074828404122704746469926925874686637477920386093022323998335885195162117857244784231341486184048583834961767405913136885871674136321948350840108005758389748075527027634964917731900613072512060555557184208353827667386698313469289073958968427619265820257197453604468442795131955746080504396655895578983014259013982054148136861052082919711548854685134613475475016434397501756202045302840342045059428319796639672865350274229406145696151376142427227785500445809751295595818315438185070302497338324697579728800442092374408085154415754250659048071877732194685627259420807568925562374181240587803346886282472466582599295271488507889719730280791527042315136231304692574825222594558329700420535098792057715188707997837223522449889699060719763812210621385773171949639540681620701525364636758493313819568683032974371725736516296515224696142407063020502111873903788287928054245512303599729426292113185872516326314064476494063964405656235048927110716896597639510329069721132004976243055976827951522691742892791391393647079941947040832765193093065692883242962660840997814027170025595313412684490824488603284370534307864509189806237116302171546418203539887749590749303340570729703692052709219959427474916131085291977279221319225169126512707897021469085871512742068707399732951242434771414572973863158576660888627421951106269931852254759362492757355263519992810654977057836131089338500850426096590523427182333570520971590772150472043584419408927855934290314844804404934519609048224762191267691159085034426595998504662129730408416651683233234572687624113493441657206956927710128081104063930117548482509173760910390830445475536590332992769638691950826985559023514320928110436245256648303481923918763419117841396112856116648604713491005844490531093957295624674127299674765484329598020364034749407861495902360835846495251825486465669195806022458480876655389253839424082907132811047064161902860329041156711845107352074868749493638774322620118791841228223606907070717025317538497104591650915555044733429870158230059343444142175106121058804357770382798581692487973460518769105066031788321278800049728512333548582895316717460052446015597911020430228000880086809342762429537143685250279449167942606560083106180183624551528193523500565315259116423456199891270709167138371839524318583093653662887151428409425135978231429784112099851223223800771663553330802228794889627076244561090817695112991856101013554115119017150355788156626368789755148908189784118837794518585595278107784320268025387965956225125222182279758506191224191114831296375529529317838642298959335239993085722775352683981054810723287403674515102031062516480097358361447425125199301913085618157744689162960392815526104424011095735702550628116382408881879465042476789233976182636505336228559695785378470949459291016218846606388609949268778127310965497686159878342747604670454776151163076118950369579582655038194422354998871990371390678993411503462589901368064241204037598254351415213943808973180687431482264869535008165835039058185252276381866262955871800107681333740863708414999229150232258472674821513192895977813117130701973979298041528161800601738112290825814058877670071632353052097571864328637892159971300564205960905556956410479917191257524508402198489474116356555089730610769020011168125707960674394197161166605305696927289841433314707066791102008096296656999807115585004298899998274272753627536900733038990982624859670064143634539708019627781043759353981519733301600768042422248689872582009049964845725303067141161750874231831431102899668064362166716262649598927467042741104723433006598249150418375941686508067477406601125150349977274693104795992237643921991905835131358419907392261001689590664554933332150595725116855595147888734625103301879225060902700274132676357457181350852609933193716145601410009333060936390492134758110532834750335444015807582043367521115697870098434816704894960443625609387791420864364631502115567581326197214170078224697888729617552686022406629246339223041220923147107304100960811438332426655229770549536748354144522322612268107590324206339692151571243356913125422280277608278885198239387531489741214593681950211599242041790765836878262456471214455694399690436363315916826836825334416818698779297921542574619210554522865012166894898858898123073832838423863744935522755558473320049082526059037358692894423485436429141918153811110692035321822599618641783809105071873948312030345775646407110652285763178724309965615604827083384643228122381615719632966007213727889989003909552887624085806641306408180016078950864279270482240347342342601023250594456562736831817620096638051784832838646802075622308696487581605335967461178756853688641946489509682236415018352093864851085808420019036052051251249529829952770262363247994619106319805419012549807054365286076832434087187553140128804965203471744898008837344073394570405150984836770400750090314474045694274637577001604885566270651788132026228543716109340144362690592721535332565558360728908086909186794052927858443059819955151270995516762393991846013257280708061552066995648425085957136655984951046586147403074228806504956906911594183497248919164386208830286545867542637639737503056837617238829664482926849140535261770511675273568775977266094304684879256694666048091667930989174636059033951015933381266852837738436937605357874457435335270334815376808008766404868069381887887949834299233552004270735638136656950965662260254381332863659321904457388400688879081758723746157026596474290544228327313857548769245505380242550079644543318741399276497852832316961128285709214708601053853151054443409261635693090178933329798754265514713425233990491540643849588825622395755131710344830718226278599698065490632658671332287964576535161368001334451764646236452947270106416271764380984044194302519390560399843347244813389067150814178873676841592611741504576990655445006849947251757910100907929919141452916216313110215898467505029849471699517039466056876754069024170893447100150187485628781287727748059731817082664370815005470739722745816039811572616679819773328752145147799781051560554330346147389956110500802951748227178779066403208215706833861035689037828318890494548061998485941639399617003701831264342517185588296747967195929431577538450763138096113741817212856806652282221630492778527586676527553400943473709211306249190112955592366725703504106128691030247563203404395383332014359905141507409276559514186909414472519049071377606350062301279155870837686371317867389755728984263606874186444793990722509820737768987565603931967289121662347242800807104772189932078878915632872558662931873399308923450632781053670582506802740938595047131342886662866029603540320251646779540565505095743999446499689880915845464309686321233831696553063355399044515404443391545057692623379470648802048902171910992489748634280566506846843975516661344439230793091999040620946811829778457485849169408323612179540214961315152901277139637990800333400367766781166048745121132418070569171578185564370410720107258373474094219479287640229059279182482961524750580865082833988865784511658643967241207541351270881712656198478816503093879542733481750717380441563184270305496059663395689402673928823381132893411574433434288837332979755325311363363125413053768597933503135864710603318735883074080393715374175549612448478127730873532235954213778526833863935214355963906124645485637739530152467142221820450068408903083754521251198733966263254381302640361663730710534833311745469004440521111396115049446525235944009197783837833421088762422645883168268984269262743533323050776885430968009196315797812013030283842129237777149955418856322810604718138410376116028906709646409796962126833555938969976091313027312718931107878076725634416888178903638072830325101606510300407825732022320174364717137882995021413707271697917190666096064984649886299489951590006775670471672681872197573916585176742122915080022024441633919890680971182441626779318570393561410036438908759147979055289619502331530808961240556209648437615141255643471465576341164228410409657682757086362166212847968573328971435828873684995445211844374721654601500885850218103043951840586341760299143838166625812142115937016533099640142297943551549889374493734905561208348282585779309111971177070635709050365628450521236176100478407471219631303728292681670438202652787241232968432960273196364318724301247620129802074492414305845544760526732393350379884227244874042574607952371935859119823706873960474607655332625157228711099736138343740777970635651371797476027614440789394502623524048988548256541164758623809864404301621822811101611985941855401380440712092887704102614834176587699550936163516527121933691645939792095313127578536018292891312799216588197220277566240973969784232477129065557664124959896389565819716694213148849690051214688234103004807969018892793918024140971574926573221696594376989806551768167197811701304789525581008917586785809858096013574045217209408474137564850662661714332046830645421393767376461938611693939874046976853856270496915188386269865309238007591010331990610907865146327488020936739765387533248126140556712662237946337136933164673439170438940163129318559642961398463221981486945882692148937503402318347871866707466323444637361596945461083978766085375982599817294729934389893475714418790998168456330649258772683113354059893914303163856435209778071915230357831340207758716214464485294061286840455217384517112457725980042147252632385483702809031104561044554531802035790033598184415247827140320105929346779549373900004437398833095191214270903517753578213952978996638143179040440590185625758923720301518457162697464465974466323874993398564499704632718039999591500826260950678949386302561842217431007775236154790533450084156555011415563869675626358264982951154912550349858669275797112664505029658925493883887008621267750477383103754985895297623622432063455140079005189865780535502874453460004837560177026672614286357641766983094193723547826042587610482694145765615535938818604017255266057718736073921984466735211706848130316278110549190970820914799283621634768692861579517208871717843484840885868821285329936030144598620325680468817741644887067535585419053501425426076871266908453779994608724331509278999261370027234318453009408574762892688656691805252470892233523521282280253733440811489070235616618808635313329541006359210050621710070775057057589051460694500460446299113879010280842751913445565996733974019064403346791388594809382256428343366396599329634072586488910985621437638008947558023387318972795474666322358474384004609740126614876026219595875364762014686993361876890257015870408003649886005479265451263696589315421157203047058486134466692874882636124907514209200319655999586667065980514303955964734275097282515110175796459936283076989727799698850607673619702681755515162777270615696800044222776275704989139599337328195986750812338684679235463236335016522852896900420872407474239867023514567551574292390575033366750529838566091508699132401837870364795871166207222028040599166454489506027292396499736834497155845414386082156077239811827312486808098700504632621294318656382094526791516374533617638927407427114365382182715751596747831531819649815790643244679436381777098946020536788001033201585983948112642245220247260831560140275682084713044314945713163251154566908891147462330362290419350778072353049087851470043952655065066016578244967863114394167370714352150662945675823138786494106103727220351531291011095338815927699373409471932749462734434076787304534641354506158945130694116109907959313037911643192556325127767415235647322087528431835729645363450233481627787706248164645983327219096085336107527772045074697768936221936072629728608914747934651798323730405636809926986642020387071394658181292487419982610415325535183312268639403579293107063648843393946291386031202932620321705330206621174028423614723186652400146572407406799568849482958451512766813325109136051688489176515629066253449140247410559494295244756534211999651951321151467949746285014945274289045868236661526504413176783085926632773314084900062491628360281084802238779395616938005640076417332194998188998655588692137027913669921296287476525755366180985109060660281480755955240885931458203787493181896235924198254910969363432575898088928412708482118046542225200208864292967053102775473311520740352254212504303077453499525307329034500926596341948454635857620716262652220980294455681781489856396192302285065832706561017405525079887328594894868009148960014433074732953647652921630875052664031932827269638289938942097839800963282354867717981431432816391854624591546293028222576705326686770798893968774354364507925782096149298207820786053256401732651320410094014100679308079089814032654395421077788237634929995864615538019211620778558413039677960875525943361101961305295462240683387853931790354054631276276476307750274441532690190670006427870021180412336417096641978504535407308326399499500388854689038576558179433453578262264406260353605105595115828569432403960644917076414528164544128041095821306609173344408019506830028302773901140943440578479886363755010979544743593706439456845206154017197390155342568258401141422513547104148223126016072080821261283372674728735212325622310963117197910742348089146358927786943732538836671463412463422712785683226378332704859663147236948372366765588714941222551392081449183141291485238260260469026392883184359809884778916943741181270806731692228927518914839417561008255483697668143318874429581354071032038399062152730809228341722618007489144438583633215000853254796178271456354390863597312606419741999596487655317189420748817516151902415446574282536022863938592692197387211998567730811145404379886066466761818109527613556260216882759812315320710471475308138461034219194673051211033555114394493444480130348554169922154857058316784476579881511215239238617016121826878299087564224591852274892111741107487529025839827125587651156133370638048679708897187050789847587417622960330193983951375972146959829074568219203302509727099919074085917586211229767623785795675423803153360628514047637620459410229563843427573798548221012652788986643450089147744555983061986206900447056937670876243249130226821139072195022832178028238510788340522126472745801279928728114480125377259326003915129266593295049337393818246165931686837942869443320096320255511031320934709415089256031712523693918720952807469765315040641989748713505501878337599400175844328743303782237732983688794446799493451486918072803284843660367681466349816952720067708342880940800443240003590453981808381362000902891563100277892963273416861356021754752608287373545315399842042612077385216993867279217504037175129970739262406252165158371873986827918507745561335966470707166941767001270063011023303098487007434253708348240319916665253621283054244979887126802020486172191824852963291571252847273400800616990251225330770803986549299617427733632696113185753888545167734883206327737856021043443176161176143285805273996843374968757932578258186843884699832818190555637101197238686671546235307932702688497850125481129073908658816763363753642464632040648139120273811048418639217773331196129364968046861162479605171251872033982796969147605057647096998249412296500685632216433484148360793163016582012980977091785052413121575766352691871067661774936170714437314970391081283432196564619351239025794710561104099738195068099151029042066770413668752526264658328415045462899470483266355660308242769352645753172175807558774257028131186370172843293264472600294958739776983643249760940684781157928838390645813712233687227466533573781333453629698449559003918612954936962287700522888548255580619185809747500927994197817706685119153639074097140546734845944463821243793610888011774375916518013572171331095917427257363140477196417695605157403452374803451384680832359596850798305951670399189602537390771255037946649765348846851818978509037026577528957156978701977959959133766459436750966599272123208300986502503781709941940800630856899947203854345007048605561579295038338699467073936242094334351010481341320935465649105417895497073576381959727869014096065976636813292459600284944811432589560487050796440321791153001983496551033468093975140136549586800291677389680683546869492901599871592253652799167190207461172686116066180247941953973203434009078999624234093200242372469419584126837260453476911475997741774626001729099368801423866036196242581469485022031691713346804471357696682776863032859196128572288019755500341220136894475202769630989066667744515731983693483737520188520871249444753876651283456906998432187553958019570347596091899347288916993518872837444593112189372847278693152500423957241401926124935031665137997218858982174887794133742319271210482612417072076241131719515461757388938819859209445810156701198748998809111695663988151155070777320904927983497571707236802260641148598739029863376076818131990976064263886104660785146569498279647274256212326129289046036550348612456638148015945205180244249787164662492869585601988645686811845053191705124005204135306598295294425257947544102570589967240325127248136331026495830036542751070433970791209622716081688709436870050775203701104815514225978079728492867001268832353299237529989756054008488301993325355227378556558585528479058769559438512648938179926434441445696083539002141658417055463372357435636114065374272695047334632439264158680514089549177505065669772541013038360067299033137423260007976143885228659656906291711899994274006495533173437967400046734126501355853236596797516142048347598385188364090910423894941311497419793510370529731723169323574677664085611422547898954815536536474398968279431164065591512890830627677499833979535450173478229054448561395476556619186057731571361790615358231262121584476841653629407707587638992528437506088456068689071208913046610659124398516220166863244213696428804910210320036129162046503366853629079700541253987411963617503623732128317627163325130149668583618717005876560162653232774921150623810923159077314249834470217054216209662096470264207280082167566731552340727586004672616077747978114369890510811411340486547032589728859073895819091025862701615253385617688912890943257323458353612165715155783945629354174515459898512918071865357884312349059502786383636269680419295594309624747134815886405107985184399984856507787005403433337120053881387769583492589683258876346198160435920831978531923565548417400118529493854792903089044253035916241754827963718585735612935187161590289336131954071719310544647823887213234145364674512256830171482653966162794176714878042977717967811051427017130925052301110860831789913046048552348129724650020345637370403010455832410713779267611153221657041770381099951608492365823991715532547128329533705343457157883127660841623257864019862985715890454867403902652848182327648434967371627126017039940613946763284866268248257672541377153643115674005596308069526860955155115905271474314824523053682981040239324467130767587878167414559280321988122867817398726611449984232029404031846007582823585478905840374933201751613389366264075832082630794222984660665658916207849971258609405106226919471447913819013779268381920794635792851955597570053525645636944199910444052940971284192655107688294125666562770761234685503130796790232526593115316624164888077078164437207489516039841285642198309381438293674183103855146541802554487268012118921696053006214243765970146066418576416896888786542147004762681224544661696433851659039238456906310543388840250250961914450161388624727120744299245048742985992088657307853915189455748016921539426541077661881433721012713152120368980453643170079524774342002742202419277488401143595508759588706524093439872849276620075577212671579581078988314055789695381322965916383227920667575580814058254940045944424250790927026556461487224775894074176207242426144988207813054271858523150437934827566292545564032893129352269330492725253942758909223291441912420900762799257587294576631765827050759542703933163571831622115419468160694697554333861317589385943239595063168139114195733382773524418772129630063941759868611255079341485595274275645050382826964727708842880167338385299716910448732035355088577784067133025758717835042671576314193909746671176093469239038553623310001925719818707387265795915435098887625685660637315730933582247413957485386611739575837515592113459320082950283218359536368102356968106054387001861059563025502705330298165085673853400707243214604257010931371892721291017268858764813830547443482950460407213629297159508815817951636422106260482719454967496830421707083290252152584541568981133237495935657680364366867148360532754960547878884150733503414791466508518931319030157498207047816320977897991249725425257184957869511291128894261765205553733487726926190853998238833926576309561898462579488977993877332757210624933990293312817129855870919202796520843250178878014340297392093630111967972023969227774482520195774154016893984870175235284874187497128831132988652445624436113831681721916071235874187377888700755940224349112919369107009810426845384961891294195318819856727655955046323320748788182831390268979021755978141723646714032856780563206414817756850118629632980971796207609579560330067573594296252121107073480132208621595918820199026818704936691542751301222793329486003993132722912326796998161988924370910061507216522404226906062594491874943272770586423446263126536416709566848145206178217493546666098472427382807405629770770698243408023838612053189248626234000544898182778209107772466398629522137115870733452760317492652620074001784539601042068446677919869372603638139285710046977504318586182005634393588349151104393046944114726670246472007780914561825716635579825904877689381565129417640156605488156103722650444858422398378400606957588955932291484396892804990173472386232035872453658631485844755727346094882159111309803305557480904117101373736235215391561863268527265046695290230306632351410267619280036430666326670525708105525923603096736874567461899534279463616361148192830761501510431833800683065836722517033434258800035094451242518221564529024116041310743336083521901254818278345046623111216397426177034146858269453509510917265061081897670709904674974901931304034896065592489011808415698828004157059767048517408792565641444036949234338308109884853944008122401781196825424775520004992983797839907442489164824722488941233452600834087866477478505681889279353951518528888835997529169200793222678422375815748275973323551781354103130259358470330418951240877485752964830535838463473559078211793994194577716219839454501100089488131050295588105717812872644758474203472919434824237235231302716468624230463402070416859618553908523699058318122244371258553500510126324903407074157087844861391342949073246720306111020324901701263667669854977382266012357906813653344169152189115806364120735108915066185026850742269269477476907089967566117162159595135536819517302692120775926279521420641195321703324698932481889820620983938336167015297827343082510902394926710454086327930419367535758614305271538201835508816181126643907629120527610442212107514757706628872801792872572992762924121000344855869547426408000155394555645772290601775743906892238862884177867171009167541166053565304505920268110705712675223298755072380638560108339674358256417484900471234343416071672111801033195505180950457766622887961601345976043000447006408162736843035004366474150138254002864935214734957017914320832580852372938851045538391862854024683686496771322017442137819539917120433226412941575288142963922019255181507232321267020591400036255599111604611721685870586944529051817463307036962469576582193132004111924591001212069733126061056544174653520458965014649396938231720523326881611331704843216868866810890342099688462235017442663857405253820635850442764718635091307439830901911501953263606239165652271457073529207357759988608444095609805413540313264402009447369148734164793397162960905619070003184053622868247766003373662606761517794141258792088409009495476994730108763678472748527114522939863839516929694145235843906375094099658861738030204922687263418904134125608608662681718194886413782993112344394083681439301791432235094022847402105469107733742678012413128429932306644342583602424777617102107369794304100140083894618871159310325657098885578312327273760567875714291164367847335660952668757864695533232237947089037069016201477783705417296902739958448726457830079923708439731315822017664646744591225201354329594871920758790834455610433701086389873372895532584216783514652745827564461285400943096558441554632575389443961157741416376427490548897701485080534669255410157762647467404639897014704608435602633588223759078590069210155647622300952224245663721554088320565519879597281186607592457418805504505106578269831652640711755316908774334935849229988842792842045104950254366981555297605205457738998303978706996516660342335361325319836483272618935912619707038458714288233473857739623813707968868227753110410725903434101287364091426640679749590137448342133648167925049470771412197488777455778003955518089605467825558446192992386594126313778039904478675118952620753091404636640494049992947116481187723095753071716420443632699505594513250396107228566049793497620241267841374495777066864234223591959449676892647465547249501730818149650159540578382037958717608805271695236406443948891039842676778726652637701728031369166941581930401604628495231803855611557411330640524093066758774788023602186068771791505200830211637280716716912103929927046988489201601684354457291736829826610580407794430908376752178111062784312051142236413623112827910877107772295265630897572118869685574405947256238734790347755529308019103597538475136520418034922274425177878175774709141217451574188179414306456549065072102691655964391980820847430220297662552989524101481687384077862425132390871310136081116307142323537935730161446584154452387908144870403731846638430127291171136873244840331201613990436483922371981662285769586531542856829124461525736587560943985086040671831266428618781386095295092036302211501210175878890455970119277323381924127621028333906468307367212580901606946900902609193040097529365564690461442338456089343875843390206985776420523347700259981853229870987044644552794166910412788552538288649253183120185873860142510875989695695936623162169117092111771512122848423401782301506739466491519128673658308759292225612831487856075988928382240212469479646262925127752688811226713163222049487862055066441415760450064863423446980526306478280398165049754336329682251307654416183272254379805286985742384092108571491427003060327733713648164839885199259602452818001448387865339532088266723163869558175213648398985926734508466536916043627575440620250933856714079637704613240184553000934415937078178491588731594066004029621587473696795476785714924761838627278014146164785707180180828567893938075019094951169543902853098885046733625097637671205559276475787992583121240111431844172871251522669611435448698568256994257216848395453487519280771950658273717425474519479452701881772868907256602189770014496426326380912291758082791150385230017023298051088119233078664889073812596729472804253031852846358803700087812792869255381463154526597219158468751269237585979100822583075781113989274226614281737644125517973920222395813423328675438417956746811528528263552898339712879778683999349755391861815973322653761895237798620390079527339829047466587728045662922215582673755741921714090105262166773561753125943470432609376371446133622463664924249158905558071902423183022897110472180485076849168503537051841939881195765036872171321491181202308422968532523429306124829877420238288673569443178704357746926674663694558390504022147085595149220350887315271536264401689835453784029351023781922467880508018035745929106891354829516050895084935872441580447292350484774007882638929313590104958489054032078643140692530224487218097869528265505654753895882386540894617706031363685714855479975742128981997003519810380405073307364668024425299267168219525029691082450699583815861841363351257136870497088705603769666102063367355382053237009194660084371319760732311584049485661303421387352407343615757617431046656522364648223747830239554569884675697549171177280137915146439220864560872298172467015556375369225727724266413227526111549183589970928648890944292564669746952481553804663600983385900093588405117964485030864992790434452149802729201249732916817409316912359534385354152409015790322661605740946598375485913137325107015209452063462478472866150013939516698790820520087296927858623525600010313280769610066448055260538405904080703838967357298861972368597341935250743139376867946636021452861494669646152177897832732448595417165138386667488885656287201922811031418587593251204855949482471257261337422696067637368172575500233610230520495231821065959850678516858965783598706774986274440963272100862006378597077673672603225419907526799240285133428743387260554919457949048448981640935361066490872827247949098344726223542210664780209772550156187994880334239527422035803269554870225918832186465321022503515808978160214494813532982029070331129514786462629212415489207139213755556540346836800647875677213597969572656417458204241260810477067477334358110406282152574203474990117155075070153654819439950936842074384146415944890490976809536827187496945197307924937304211573185200920639258152874456256104259606248901472533802092214341618911503711380079369793794606540783628190846415825243698558776798208669641652386097063635039351611670045494771522386897582497685273588861181334284445418784957072646385848515382415881328193892533220387408924930848078228761477237889048844176125177834128807389286852961646950516539243136999956608333429628404012252778103989558689188987609286465812171061195131950251585143295674244016104354085762636879115552671636172466163305556602646396612894443477135912741322431269245071495688402344667212115309466931845608769067032459462672507908902591067332495084702719597627721115395300778629581293102766390299619900336818865912598985777158855224374579345726969116700441048673248852899173875871078281009167063767870326396103586219963616113555304496712771514423828408416700159447918417355514879853811617138079387798305507339236427369614014055785020373895462217206339228893467202144701223449236940865359010592524624404614146373454565065588221738598490111751241451740568949253338405015861251248692796983649279024214802840430059304748893159598759479696409436279986024676945006989935879985207379309891160069030259743391032429728855173086818700639033299991383334679376126905212555876413354346023032539493473185427759254015590764617794705113951087869758879390887145025982103243311298435379636616790139400657691722481343572252726339295716589467960856524109055898442467150719880060244641961060934812796038366171861455726362528737572870278548222229430303397038140732563196567797537113902051800071718566487050916586417761562709937661587906251813875213217244606490661195762379186601874221691535058927273063788519534640579074806538227434745353681130048836563692260317876209406241591592649080841634985543139694949165138470445103063932971893270712177777982687376913028769283739280174286265667785716846378338613853863162294036809919522394812322953029515390530885463591819606823191360533241053133995567098255640148018879706786441072343960121390427441670962068465479166837409502826250665016479106409248177394697719849915882797440668364320037538148916199088003920538979917327363185922629756450045425404382968458288059160677813030627378926339995772763961877457712430414565228789183389679814386524854026492904281152930491958340308864911998805372096999562546547637532373974060884116460829190683334516340915552975299043870418471662547535243624218909156846321310390288141268800275545686688752337112005736106672323310846502965493238501442991288561830010034045691860034243627966660756781204954685150153953065617536446530120677963720790838960791839461216160814727485866084951466397514943882545426477406531902280736950314268464605638486378100754169838208211071286031122659528279458648224558260084300768220120168292812981344702249342965660352831336333735525904318007274040807591049402714251498044854385407254672768430165679252678974234432677383329213286733635373668779244189846187374110807172517226714142421369716138039633038630663825431768154826339846930604875433807940231039277649523830957690394868938018885849115293349404775258215626418887039648066311950638460627187985638382199955548882559914232997198701322427204914905789251299128630266580766587370065329584083204369385527354047308685602991745524046021764662208945689841404824782568117386439351958353167362444950621196135050024459663104251263563540906882425288498984796755884990802415061636390506433584642957732108588183278629759013444614631152475724178459877213100804182210418668360372106767698524732444730884228259231327499556262513138812563456568208709498152054149766963362798578662053545924187759815360986944411648773794006042607931513711295490310643682275287504631767018698717704680113450786928859671914785211324953351194913123212578663734158588591124421105628315964428522181988140878140514810381767342902277652308128921149535089325787693251802812746892620030096974294035980259020185272813560459048540754599169729144696902489391474892924127920849014272968353174063066752796256439309160066119950565653844717180252646409328911696562620612817512179399810787343699939138809492822468084785772424857683686282658881116172304115238117402407805039515145920817070325846782242433588619163121228019348070376671038114793070332316529145540621524381905247234635092684479755393891797112413558527444472717150378057498252377666416309473500573295690023446942793123400618672054526047783799169134528093920006348815791928634516285584764716326522794114663305899851640874850004562777641138004197320120340854087921483524873056573475930602195302141598674784927715813591063183219554240304823687956900883695910209516735464618178789384751761356927186378254816792000931465910665270942435367311444382981626907880587093787465908736557762655994193519006164471117859360023173577186100304075326169127111957771082262690227355863257975499443395326386541765710230093668065505603280455066013820062297144877566403067385171815288780921933752332207125558315418396932507214969179328879995785617798079579240225333479456638082131836086978095079057840162242729707304628160374276751241262027092555140307804011796695761228916180246276895026247179959291489943608907091037064204916621585335424446024964123715872854329744521391844865867439847105544053342649258268023810263088549001038155593252469794114725299226938692402579965984837350306215219842299820971589151570532469180936027741506657344935689800422428978903454780554871272310770878204933578377935723425534792736861097106977683442223496117635927803762101188941483383917726908772414941193371307477821516442917852874813800106758356376068161380105263499147407453935819912550725769770139820803855506917283687658663397540276460505110545763352319812759275472691373918918439150619975910122838584433312640518770116998805297242689549597287499654728956929419411819141772042406888873330096373504813236289246992022851639497992713677606897443228142846705599675650561999213357430860198531879144786671193792031646971358112755801159117086768280437447162367982817220826018614831975208931663335187322882867906174881212581460179333714259733347579355484690494756332596484192860667084165998995477216172031317410649661776579120870617368964012809358588002303431517581782897017346571819905427614991782873250004689308340336263612447501555495564083498115147376013382175443594885843809702830418626887818059531109694937340627158933952722802492520497758087509256387033539370766084362439789835598358268481138337370390124089794122472341512016162035645715907491531857348506298216094345739142080453595924430968549446046261541174021536417726248969503326528709526063656614389833465088703375357349175775320235768663327418810786680425438085451001922667920058855460102546363222880824856813377470676294396078496277983422584583957462918280537424824552782574465119467534164614501285560733363735569322927415187525428489928725894450115258247175170256270926323648667225633709607478036447461406392413854380678648740857161881331551467921663375710366988782447100854774497858951823725576020265210613477587007014155156174114884327491923082433691906447401282927693066384141115948467589464344784033698666966534835203650245167918876905383044498898134262007021335894496971893204662464978763736166281052541025835545350487710923483797981853975438931539884358938801311607464500477546462416747651045963982187608433892616805474567010807845288789138298300865214892906883406062756051789396716906580004123145980294646978203627252034556311705329849082806674412335498567600410479152517200039547026973299270347160825851197681895272481411454983427554204458358038767869058165138829328008979493440214303152625070513489838893847534889068333767745127118166816149938947192268305613858353519680797423971235155948629833561693550229981894841372179592426933762485937418086292332458977368635964972498375912474084163088931678790750464079045520940922959221403657391442052531827920461622989537540231509254733847313167273432322474191001800378409717614561021660229235580196885652353144821277487833783909946228096432191726750870443016701973730063832725182647466404085484282528867782929462355476179675785345903066084624063020012710103466649871024700008244166686095770813561194882462881364076100492951323546765007797950416205145796376906375973736426005742343193419355594424335469636162907253117774156961864469563328106800509539388061715393382566604998936240702964749336823415991227575740545752011999675989322896077160720417402181446461093388039573751130581966224064298111946350273659697080119182017025701338144161196035062567503685751446007844972244768206421184182800568196579975634528009771728803900462742746081909583945254836767725540038690176194029415855403422820830723740916345680752673771563332362556645094817420950833712505964276943712984318059316950778944785064198365948765670074706742565809156345847641805493113964065916847678637051137230576943776316771690317418415078749443402279039080651324211389119376569469009691086827434447803024772345910937782646439989565777731580943787447963481696369171907618670432854176355178850761376015020510683974089300249925911030861165156608669792233050524464629527593985240824036446939905597665314118417772703451547718340662001066927952452701683573525950617598599506325620578700874855206910412768644287586403579178211779401607350388992676071776961852290075729272621921730068900929265375650841696002626417249550774276596257746827918083399078670971192991881241157701602552304413181265402865904837416635379565392968902740609014732149930638011404248272740771913752776356084602134749651131315093064938631720293958307505238200016947894683302406019563413190026119400401875694610944613623120713111028881740600959452469032433049017463880043142599479957081963785852538843243019589740636469293368269161834813729341539251858942150287826010234344848253359045399412370663724205208825608063585704929751587279944881010541593987703900594544891146257238547014123642776313958244937206918183081153544568048975476256846953087949102106646594039846163769718656620489465855122462481868943117981940244548699058985078093331201631970414128175302651364681045046646474852170802214210738532571078305990474689806750780437419015317494643864669737933513438863635587479489369668871567898452138684070783177948684057785206835291116897294106785316875309577959670048050507342035605763032118761118434883925167702381966130339302471010976354252417236665360636988996486176876173638581526424982373992657260687060827195150807265281663268327477561530686519268402547022145511669265760518259797328120654252659798033701583360727644550812435835836258329074787567444928597606353143753045976312995751099992596141490588720985275549876547138044730461816362610210847004992748428586639019001654004555952230530843116256252097333411130159682768647144469373331252111522317430759875599874669331207941805178428406463958991738534420786039482310271132377049683005494597781468788271946612489192103403534614917933220700304119221417448584574703024775115725690831064696676367226327860125171353465922908373965402644497217086934250538730428833543181012009458489886665115719903878773591403388362198694566141731686953702177005472287058677609789389954923548713066704398052610158488789439254715260477371571630006996122525312289141906633689478248658750966152316515672569678950073628963866671390311384000140850798557454542643846352342551599466894721736310978438644593239839642434821822338146870065354716264765001524623648264779754463919293862104607375661418913375560428801282866493494884348214050609022126469387572852280668946220363368884304893811569473933239235286271308634915986146667086744142345618530035596031739126171854146637570857039389617608478525408666918050271019670825467081492858312515731892174481646796181732982268359963955901977739711078328857774669696359096717400185489195866976710771321121746288679395209475120609006257224713849145884305973823442510584197057245794962516917615376280680732480534228663098378208628279401935032485147512344486985254326598130060752057523051850712408354292395161692531704478511507659827737202823485142743083878893748511735182670760795823104167521011058573140545390292729165726159405584754516043360837946131429695424511889178700908340464515365578000935535728432376303590123241365312874141256034651424131548590614599638525062812101412304262731210144164294972555670097116124669587693721960548960466891645704734971477751787402484754592042070605615346757764625224583016981712624207472715130331473618380510052498306538920596447754879345745123915374302060349038798197469137759857362647149444939402754536715826316412848628583858163307055472155323242179203010263775671594293183573400470897317505831325041406541602966740308285513642142345925550003873225515226173811151831269922459478251050214740171267697058962362675270930293984029354099857212570442696536124688305955693208643797093328316660647780017993613476152560334463556631096297787425426249648465095863268904254090304036778683573776682630481825949501812159109939004487777512920778909777725868663037805344484431862654285843009711495839882430872460299487807990106858916689421200349658920686230677189005215647828637285059874555341940524540957514861840869219624925641485298047041720688882922420510627660190138726781393622947948461865073132778971228431325098648622665057389868574078196984133241217744885067082248963344273035662207074332350803890390811006691852731015392940501698415362116114553858312483465353295186671647677894314226083004440440958917172329892469160747941076286417014833836721621929603497442409358883388276934510115337366113111312933597346639126896345733193118738579437812970482068244612222530100398373004075238013019578542211960307437447570813858080001052023160797003136279832672976779777268672782765495188728527687190808692236546951817069635025872160992041327317622532146339714941012920315565532258731615634355908659431173115402060033512945652985303758606344986606810327647855501502093306276099265578785672156626996999533222772491090895571872975030772034610846077362167083695528374113626389927991682463080029168451000010889687983829738446007692034652728257998421554060307012103831640685388648128796216633130033328842731735145184031701492942059718687946341752999579217924886557273260569662895181254896533207168930112992586762505840265883807211967899795561338876702183101546568207907123661309353107494065447301608505853605397328441907943877574121392366014987054831385155697378475782811027636572232727472731239867496519256761972580567442412764060518842248825126991510574653970671621765846032523002661382756977986060547155729380162175884295848443993433455987664794642560143929682325242871924930877943449335942453017905169798905025781891780757942242362769256755820208100533999246893070005688827905558712456271362772667200512657376285454224149298199763607718436548840984269809795865156324901232864992214558284486537255992294998306555336401892051081410331194574981446965425068638168778855275953056674521829924152647891791143922367719044664812140429601261182330774675308240053777211140988803244365770859427574729846042307328657189013757726349159714748625707052987918484254682606124146589226571923914999088170139340791604156300741193269907123183512591993040115540571741412379201424958908375346589256837828848680331567221743713523399981615925473073923666992435787997400261456841768859099924088654594435215015799942795001425211648753070110612471529867977826587015382177066768272293699421170683899427090751463465683649135276303101488055524156022794757756008686861699550127613910848729994169843278951474753697039592283137249323112602937525228486843409309902641492025621409676941449600122908535931273779834546827325930129399853585754655580677641683882237800259000069096743401350235019668781558609173538650857221759519621321688059265640267587288772662485023598387855120632817491057687701248958590644313569923888765500010920866782692632574652723162141043200874499783438923089318139464354767106697563967071700516388823086708348164613058318856737936317391175133176435254852746096606275313616308878705363680018081894640520368048488435965705349107203852830816117205591442796156454395191379721766687506403408168768548539620701144653111174005714985437201216800392289145753314619862752365850654145247730668148300585920411427690578699736420963747533557764436316666056265210390595680875736863858330257203540630063968588902463535123597372554175376097657376870669835077607821025145099242750635631988404700935565925460503440846401681521531321333017628954188552456610110422264659901400232192154593232421988621889484709426217003007905152256683999713943565559355610907847619145037959217298318742649388367575560450058014441534405143335358056931751226761465437869441589010516660684985389427869398249367436881181235349335354082088935086708952460059408273431577630908020003766225549092408505146638455828991093356653722366798412586528570988980060087835021827231684452838101575262286465561898003102606601633781208210433261392954369074214272112539389553214568452069044761401457049169426493803902646440200533161987047876790145275983617184440013204728011610741140499334055216643551124218367740326301098582503721317638609305276345071586883133906224668806285505523838637783491555748037387485446883286017617264124602564602658447252859894471294285907502001739629776725358398956821601068029767881952324046960988795255749364229491825557945203378095917834113379819448878662454948697309173229795509960554993831419258458045918967514564510072326741027463414676471287029686993142331104877496556667091837513676741478251876190827849842862398422993327547363405933797620253587172486918842853813745560284531732266834262798968647418562702776288697208827568122186285407635877322975628016767640417579220917368561736147845264687350131448535922316102604379823671810078755743590110882541379666156681636414053329985044988602172474954764226765645466409822271845676381035662351822702950734015971387222839674429905769022270774960214741033726853216404600600932703130971875112768668686760508508824538009259667862516193921431283635941502099223160678994032242867689673955321521412204197739491275181045371193311411999440021397103220567013699765893486027488473238678128755635732886149722530156292900760295996437177478691079690283655754074568048570046047630575902466201140687492826564520164845848060131511818956723212386247928507827431036801046388175140862523857978773457341781772660886103524114782583091461201252717839818151079769732610335965955757253245892680639104564497587855063458898319507328939800862063008261358319383994160860882776474222973486572177976082616481539848655970742273400017692818103059788750662085544337150738764016463378967901680461570184257793192158016135300731994352538055051153973162440254262759494881650834570954701657726556758734094845806589912735595937479835326479838053203723705222978398471566134359448006419267999869074627202825541175648698049508459542466478289955122079528598935317789011761169189004469850621423858597644908419930571989248139877121134380640923270458262894041164793655443596767412784409961253861774493366079597843137162778038200603769247278263981698677070102198969459428749791334232641005627525875786492617252886799743916738753083999026498568767258966309188020204282339665163010758955828399971304904610555895103309158776045902732269413648833543520348601100433412349423054298233108943239366313955079494121269519716053833494086743283579633353286672549717106936506529700051130630710457360797369396166631985828394319270971682369622682132147949787264750856853990651447437639557237512659350571680258400060392715725501467063354460091416250923411854106208232625188841070030180965412317133478407311805302287142170215598440688689193195048717205230330862077548793183381819821277786713321397056041790733574262698918335146022656352548537481528790875745632889526100420577342537620541383451906781848666343474157469236265806653223498600741047007868071069136981102814233762679843818761103532125788315029057570477715081058195420511317154090076319663805279995880830797521147237442591334439037000583305446541855716948841683831979139103334449024749891034343482825255453307170401754420422001695249627048244535315586164215847181729005961890438059832767715030805015105308064328307514764776869618134646979610575926701162991273014053046471311870889533368229431763168870325177834192874983874668906603675668747768628916320533764159282800217932252241899385391101956011413391524622820522845338312181694562751420344258283599946098375090115309231685899590385942718188062130328179045450119931162626698354276318545447267147606993796964344958747929869765396307319986038509803430278234956872237261463750936214502560195661725297900998141001446372318216127576362190448250529303073381021325353973260508674494331391118640844857646511310737973087354415213994329859732660250274862368562413363015598500189728165599922772980198022154354134148244636367410505175661742385610096845329717548344517964090328009241648876233191180313208418872662382235093037707790988146945160135832911681885029859560401727250380092564175931473482967595937071019423164379561192120132937454847131087236783541275580616094187018768601392695520159787416844892486548601862975917304255416747484107850161083461791770287054865117246588507610933353726704309766096214313235048049275038150228627429263684150014610956677427167028703686771202661692351479096597508680378731232896045808335839156439645230539146162138406062660006145917924568189857552183067463163383271186161169157778708150638921808287386422961243671131715628099779515550929899846512092164164522230078594242644942716836315795858592903156572583762415147336837557060493053939626900611630412504873573851037479620256393476780983618091450026760025579066819144293264193439427848823389879447051820814574231395244856302806445674700551068234930727731564181157735449514509344383649349474071497076918553568980004599349479387445907349718075704010206806492797597672161711226171583296211875661165534369700093627093394465635734199848078140154967106284105195643203946548866107499885132501965091658200167486356395850993134830572343936900652985914215609485946322155089809749916836394036745548748554781815383228256520881688328772829188238952272565868604546836754956083111081056018855714792225957507976846038678580055617839769035403105799440551735620762314588513500385660574079714347867606056056238195412008565665474967779306413847474871218921740581443806390804805749862761878235417284794265684943143625419802712997465474674176069213084117653194446446657958974938343709594618355946725719454907621583568881106200403307897775502768600835020625258478382397960752495104669362040190372010091115208207154181211245674362629024949778979107414333241664540138165886485144569119064867745251065132916962462032271499851977925582022574482295884832566675440589817523217513404720099204953282671987712120471006751613111770570493574012606764901495855987790535149864656420462431139078145720157040108476235893427720474673551754100750108343217737911293583511563783521938552442884335847514077791472351189748199730944872796178347811505432880961698165856606961866775461896622828924191022160235883429546933725762734297921702225836478518913117801959483721155816167300533240875283755186907949152217618617763639885919294899231376391745547996530452278404932241705297149890924053591329992061976945094355122203949824072157045429604632442184316107112809307002608952110598848319359155506325562455960179659344799831878629321238465137668568822464436237799258246271676295512281673980761780185079719271512531596833783388393733774521824607148141381897093514301273397556552126603608333810403056162921555004186006077164159937377256025417556446816571422819795039333458841493163825221362551918730634724563370153913899294565601237927185462561874264120272308815255048916116125782512236819384042127684406620023013876969919369498103369813781653417935093305211886569226686727016361965724755566993658691932921754088040339668235282693727429741429145094370863176391438476877269159686947529750517384862713015617474543194578097261685780121024261987701250277200534990092097052413344368564605598527683734525098954048507295886761782750104298890781720719864652423568097144398749916361665611001296557029258872220251892926432541399203667892679688224921198467438790990748747759287299125931497209174001368306305300746163102667869640354276648040166204364303394009659111784897975289397189580658238872952199654993740097012693563460820683263944539404445404769537392762958574703115346910354356653579715000962065923883602756042777494554366431631028183689612780001290875941872094336854015955343620160508926218460733266254631908303600042977957397031400762662603063999039141389239758493889725455867298073411956547402740651112016757611682705670722187340738552296159686862466693712632688709170251401091432517840302354217833357467362453081882900135442481340037500321739216491681236841101212503920291623237586127736442121649571495776159549942351413900353030577957783122975332071049766898423344192249282875509370609952375415063885273558615883663778896473003516333837368091667656664487980136295759598043863729953083032405591660830586910892734291224444964960773936970987049015683681616892581468047827800322245738161140437832492017099313246442847013710749544819964684700347896251735132579216369350213737688828769513096988617946326801381911300963230742012940411188706876637313780681183690684534380582682492960016775498917545299755472676739658658406746865565229358692685457937931540087067112767569089320788207194654141584956920045717219604228861233934342348506536868379149321842783781699026962761089176892539826571290757246581428214178141795091709786577606988773883158532705296554399802604062555835635453541603978464645437480529613448090432892433582368706169192472154704722695723082109714992431826982249080849136323086833405963608726401987038275531223736685500998034994749112302484170519862301182223789331352494597455538999890260850959293134093433004789722685951132719823089321340866025221423901959346892650235556820551221904745500465430775529707742500159537931499000630764704538057709425705860287950792687717797874532088480799912124640220542527536264391343574112073939306909234934173995211081283938723878126280644616794424362917742746031876277353675261334903944883819061347241304529858901843497496740552673529504184301066729183603221136715152622305680813505941877559168602809630307536339582102078585015811844366828342788958311593060907839349520570218412435191088412024692942300513550723874538418452740470019228160133094104679740620343589255347007773790196419758000005809862063188406605365749925548102239629670079427042879836993798518934408663595370340197847147692752247293108419834112348583155351172294866535779390851449468765458622879676469054922221411421448945053326587674322931160176094016091608167536914601784318045213353543016747450497000498191040910021141641343324997296776862473098752505116700542905603145306755698766185010863302155950852932954632910954541245675597714304769522283492823922492166931022064397665766841680089030340812130885471221886678229569479813158673681319559305706764366098752640071683458246904797650380918523751989780446855746730192386694192084356819157464531110563756696344726838369057510446204723167712147658820717975208465159674821970659669730282532489418891485229072326889294789718891731968883745622415301863388662390097548059957800523017108157856680826610173491317851774788616229859970833349915979853915934375414486692914862083814511269555942995865774986570374456469121767139079727233864923429757044703273619565348313574187999967694941836476858465247857446271491134950555670787283047073465213366421239745525940331132823184086541088731570294466354629959440813326034841076757420885491942066265286934258106782980174074742212947481180172517779264807502036795435991780822971211919046565700919852264415511611386611384831865434724575706038878246226482222263107472052101996360092856382786317938761898259501759755601953023512457453192835532552542324004642071565505155626727555653029484988983793570731549213989880125379668880325524570008411462511490002277441793216718560725596656873435970249559924339832680414415275403137078973904410742912969433915316909106346292369135849621559957321031586433034519274830780558535884116716290357086615588444683700124409283497865341194625246639460663249376199769732747764914715110234168235731947572841933317819234129855069641378030766116061399401660358874263147854543768706725732853577917424391550003794174041171713023680643831563846919621174390455091051070863890130260400519820327432894609116207779655485011430011794112066271759861394349011751260174743029312404926517309402957182485635092812491242454888833101237263496902962194280072585390697107253291972759000261196416123448099189049921678291999997648577752446347001318469964544606677118111030386925305776328960489436068417989474555767415679212175808817652400916051722614497418818081810238098950801909196243065583241065804171720841485589434808452877169263119314510233457729371979124247947376387853699881181481675828023991324234787758569017994356069104008242409137100969505758071028502921172778948692764203417227917392382700320170853846074838239012549749000498922475704145786096279764763022378217252820074032899789515571765847557026157729241872681515056822123386331891614500428926450963318461335877645695101587688177768775142365609178306501435050776419286512519406648929993550099700407221880276814116062416765711134369056986782683704081319461337500873628483581560358478356913619681919247995214021796276578525799618101492215412118210529753790464795155298411767193619188845241330970245435579756398967486654726298337979602118402507056549191890707840878753532063782563041472634723297908381559764685401348090637473445133077837296024033309005193677779260431774834668632563944378400763766626560565235165019918150466746588442150576703318373901204439328984883514392366067714824019549184224602151748188296670408383093209708399336723595905708274061785727589927383193610828499850029333323665653488930655927537449685202487411228711918243717118397654822557766830364836878482877930549833301262970132066871400936783066944227087537196128654786388533601433389167168829424562399665310641050225723844308328566132222308037551012277292819971377287921865564097675306582214569053358566978491155856828669363222168575140720052428554910183872987699093032319876930194782308843032770141881937025822008728288934238658261773753721495084198184554256440644239977817268625299288173781872553101932540734400363997101974587189903190691559397930264812769811854220614786923376733477581999659008728345662364446902021342335849712587098905494361854760103143913476750832252862599434347954756799122969400555935586990520391932251779153486647027733966015154685251657116820397496278866822240282909420122623675567339278218843071239291756186647605847900035922432231097118350836099510035863292388881539937217256426995526763245361314130865233499241245716030012517944527183375893354622251750728069246883267194775652540280480450828516261272713750681420454105913048306188248282161832690642742130256010007999574468638819286297180064423663176245148027046348937853085771030111093501081500571840137902379662970775120607863113916799379905181332004805672178525063602919786040257917864875981877225703693503793882943896552671686397123355709309809851593879870299077471112848181357263629943978045977171176715275968659281372587281067557706282283273447009319049254057343797418435431862246092260188839854736091635165665452853443282870203246935941397600213761665330015069000843154352416489744346211184456942086766653937385913965607644516388302904383288532284880805231489399053560960410134918982709300819923253888226916228082858020249511995847625528346281336858875524770468252593224332129804607627729710149794615619869116497961547720439342386570262381998591821444725226893323359484206166504561220725788961411792850611997548276046451862306740838418351416812405614342155993232487263335905148135754772551358221305015302154758985752166630443735094951214814247011093965786483589608274138531975449810704751102545560819167094734765963117648599871488694682389754363509731518354916200157279840850189142307852612683570454638054460317396817177609633371185322289867822838957960834620501966111193631301160719843726938521614699054922972283100012495421994732716796019530248018219842161974278519657632539659000434270707248799643211792870912479432393393124994014536618693035601178961638452431493344376316326257474639636757034715590124214985280698103888137646138188841224415959126887912195477674790782490709420100812682641091380268478857027965302029871633502353667198635214733478396336165683849465765645859237203414510624783713046831153883268781047193711791641781570219126150559076411932189770410591871482502024666718127600102061911234287705106869207728016572888292386615711899439787519027048380506247982030081256126668051335967759506195802755796917964181139236119690024220479053770656051049853375377572360616773527129958685464407453051646671399907057631438281487169418963686194009663409295654159406638825824504454920784598309493376001805128223583876751148128867377024451730602817747547690742684535934162479463399778919193928089801474447454621738812019772885903432627079876642368517421286462110708482861805404502960317406753851500241198687243675279184147215612323169181004825468875727531490971660037738672760496705841997006136890350380675128186605003450920890502761263106348238481910170869387238594302582925486059131865016253005228213985964401771819406397796561959501765313065467095557018888104851184608656198143960519899953975555689730016745861984730924484077693226208842785210094408085208065526812078477637203512356312609953548494457210505661830063638118448823517391239649360018350328254815338740571281847011582502487978656687973927840063297160741391661241433608875121445374941784308480764652971181670689810720532089627499350265547811167934276166441260823347305874420665360892390565717681141559002611351870605869055561707182549710895935375675957251206524381002571949281484605881860815849238507320992545725752785453912712649924580823739437729182209298529086927125283936255966110554643694098101275182773943936727942359538563229907955233474668304151186522986948247192143977559108224522129935390505688560742481747812172257031144884053887829989329497700226201182882536513829210719335080158960731359811346115230215711281583899763944379145022112470064883174498368388475249338181602169358812435012226457331687062951734610413063220317694047750691214560521524186865642508686656095314957562592745518626998942720375616036030496749275059587695042736627679310107207018144381374970707225601509476025368324476204367693645612626122062415264000571058884001588911854269743339370883058677511379983835774090999893783636561813647693203071658134929138647745250685467231917111932290618053410668636481656811411379257859289468128974617107269072833569656637280486500645813492763974035277894411865032745681119900873276903805610182763018703194831439473476765107765229978951268563634760351312732912987171540899626372532156011548949229732317452517490327685369770684198547499070163585824099510995508218901869830427189522549927705718898752640727569681289998590831580438134348437196316049624180900978849096369522908714783366406365513973396141989266431243868259913637474093971636703165585010207032304158113311530864124660436466116997882800494686670297296663006483558316202839612038899394115985722650822520142755597099851089391133302698918982210672163206599734537026457033109870190919675301692717981096097948211405029505206538894689100280482013631166042018260330290196394145894251018000649901929979030835259772893745438412411738600111846322963212260188326063659632446609110350419347555982348141007947383444312026553578361800121601813534920777024764300085091003315530146715587995368061524338189031526505811456091459363975456112574217515136285251306823107298451069450361582702705755220077147690791758844114707278727902042420361316389120795433478651078796127340345251905199052797332830248215248321436969247047088934411983821973810052612935829092205654894763025478820034952521368202498836947051726828921886733827481340573985393547576062705895672294773361376374484000038296688117151733468822672021488638517610006266213298848793888386298702829608299600270881682293518170155023192570382126768111190828224227593153394084017650798228821735471595416901975016803639773905124061616482366139697643462543788686177529348625976474888830513867667072742058516913351118005450514564104194931410640767327951946412974301297480262544740072540661891206081118009211035562767957766987664756770163427678166934834656339679062324632872014286486551594414434920068256918096514218036139293932611083017864006498264710520449007707007716286184407004034158752332354680393287780023834506918757327080494619813049780938124095592751644059690442364522294587739154416093077422571382621946267989350227952556465671310070398049447194597728842676763585374934392630970003180623495076673996316236192116768920388177861125634416970730479056273329042808727538355570852213036431621304558971588432304792801847954989544144374069746584163508377125154160492635689558373403276635090186260457633112935968763628236094668898338914401506171009187705314627125742206450137211661300065082743598775712862946023740648875407807262500967466012892008959242772308042025310258148682906544892114436728009585814219858256774871088648267925250457851119407873107594666234703773105748607550529813546373730180118023781086729495479350672755490891208454854810133217846838792421582452339128008624229453646115135444462487278593772107368262119705859098665160033752046127917414988880378952318385647278135025069706506787643008375008251212291262350463161702187357132466617546060721857710099918962189932895404294586367001513123950107322814980267803508803996722061438095692346622418002140895204904560981773691530864550214232538879016501092967965293111653488050178069802307232639424091904194799780814010064707660624592057659957024220672474585529493280582069695035871395815900032949336313557560276838787523607870813950414078472519695080132155874572209511674093611609794051988271148745931106822349366593944386397316226358167352750403348982563833202069394836053563247264776547020982231285736968879612445102009163408796114482155217628530679658160286892877992091683518317384752695189772019330284541523309184833438916507746950333879049439863991491821271312328197849406890149490945069848624113344608276967736540142783283821134348517350479780932287674788103357105623354328740570842101544732007461388624507069277251985220501758223871469624741459654364439740271214160925402900086523528884486339354674645713923355220482197738382684144857585011089977579550079295181398447334042086973447915960462908578116005929934312641695102617385367815556951073025133105997252421928158262635381801560801014553987607546467603829703924181380962620198488084727560150291757180877309601685150868308261296273793426071064277836764934187574971222865358597579069731127479002737675012382445946785072051783936667307075750770164449521797559936193220034747666650276051338467491069213710646596052136003918851563592269374052892198289418695955550939809028265660287939243928693598815802956885042186003990629794859375499813478273658084647515439852843842500080637813634085820572997465165247311594331375698422603620199577964617686050981711182319583752268712555661160162098342428541060336000993031515748047475761486887275950718563281128848544407242207125563761389703631267843500620263142871944220027090125829073016212481538044671747507412661567857424784614474271538027506333923444880292889225857387037605916679619662593338764192099957571716505681445422696895907052026336898395445707574076150709016057651122729337147437467433436711674306234272142348587482969152599297354346111221404168426705005694242469775616784232792610931564807571227068730489363985078649447054894177683828363096159692749824670148832220632984714848305085651633045151269054208058167388566989438224918748892517735826822698583220321937992097886511444029661910284843896536614585667908044768835371135557415674926791724494384234210674861944243600421920003875875991149385818489792284741077190739362981532437733170237006111487935423787561416524245698887831158482008292925666676633956724396535910266661392861351042307227643641034305252513748656179254381691734681846431745928307026428952936362640091662734640021887077564340331860985239686121116959535615876258799608285062386596873244375401196328952963136378137724986603059916903174535681421763684407090438598507469558549616321245294617650802248278527334506779641298829084860340955600037706871108278400681615046201835712392358757540912401203958399952212036232532828580572699205942918035067359684558367160560956323572442954493922611852307421550931410139966283405914349483359618870393449302358606693144562323938451831450075397350109295915884093293253206250655261667013471901603068286852813475677210889126154292296507765630256286551069137203781995710933707684745758666973845365408539836326736619773116998270770586820916625543456171394667483996164185051773256884963140219028761581458261306223511894340269633729897157083161459169966458670489684275742182086123441768619424116359808838118254301819057814577870116365999297232255238410505626476933532082199029837592830759630513548872407810098793164946530878581254978471505588789642320756504805871838476451965447588692604953200602346355098407855650163684490635524898044518396329687931254912098550351765656592246617114615387817226586962173112583648229486562061946554368275069481162397370236558982491947589398470942123243007065081940245855046168848924274140977240538969953734473107174109676603783331966026518173859928664413434094803961689595471377956647496827333285374146890498193874619073786075984931442152804446165636542591594673899745810846537429216493771391832482085397130117183498483179835001576448709857292989835879676501166059528534292034983435832524464568683861409419620900330526901656663176862237102345085949307875983317166912445770864365525531980854945819143274133417110905570398671383619391865207398184523437074492303855907826631802489937513321438543977175346504083682181194858456125272462978805351287923402305118299541807617264143178156130090608776431960984663950521882785092743376570641173399053024095163084540044960616069414776768809336486595446247802098162855176364316786509928539125378985253756107775447558243652968715421671737141493148433504070301979822915563556885813093866640031149189389684451720622209429191514791922810320865221843287205440494591604176954024945097565212932920326971328598375056776144992832328656951462144463889333867230252255423851322681299752331329595998214059393624514934103597179791082306007151230041529309679426997105957359591102913640172922514347028212938520090117986657586458776797597770109105207484258660026470735119193500923423368207509039476463864444326888699541313339992799974784143519649376710582693115050109856187733376841813448260639564861637331802715326544789890968318648511301497974220415346446203356404844598162742165399524486219014404259015074120814348348540136827245131433621330998407926467653123759915442367264244674900940476427535977415804072866561559706595203776823735574147029977058151062657616663781578866812591941636335288934597043558986957657671173625772213374028218981520141940469561247304607622644813023496289572817732646248829168045656347440317528869494679975600618874506228673431560350608447031069453138744221405448994111582621377326961999464387320698204322748836172187649886982028400850892964520185524789437346077890370396699813218426165995352036797054504332705227334982453369964128738069541173557710277292663666287346095811137876269911373776519400131900347958275613861563044619822713430197136616693456503502881608235685699181390183396656089172762529588098648244941727939088507642431839972742252423185099513234165726472536038069594070549071382792039681969186240045909919156185738756194454059641752507922738202016044631476300951040819176223952545014365212649552378323357840848307514525363156148733165478638748602504114472435325404486147209053351464998658938261090024348031979242933893974910146081017877109132754135361502697459989944047543090957203477428134824124716463713610558835296968548285623690569867947895778610666658757984343573935758618112205972392344971055403139878898487999207765498959391072727041301804068473643890008606060821986405187067161346088117102508531234856432379602201281965437118128133834486978747931109909203053835396206457846999041193036002725658791132469619212301258690625318690786510525122967665103137094240809123864065150064427764577724041255664351781614670623351318780559479734487492711475337200923584626118127337943525534826654311588172553149216671923305142552271153003148597023480927623513092448390571248583643171100370120465791535176705954067047194783767466510748647248587638054014889602995369995631215779977212837916742076376655700680898381030025577569438637744742272916331477905994169363935691262918043760996693930299651115401531850542122235478589832713294978213817932532258458513311399108274957289362145011139601558207192655385108916282682802448200638183214833935585502233895417598565025430585401415548227785498750847143044287795983179518181192295678579195724317750946343245679094927896319695636441657915918620290995218830736996402614519633643421230837709738645946943790961374458301640967504932948886304030096821227204119210032569723887845706634654327254926750393382877171386868744205259633837452791738786617378867186002533107794254068944671071318947829533705899112121777687482527928023679131892899917750050072620953872889924823937626003659118568333492446268206365297636248780632841733012965091550626677987669623983112942231772110976430968165368358091456766268783675240029446688882439579129391233091818636926653348753414270073030960376612273042125730229311146605739490427638487402824812273373453704865335755882001361264134774392427472052528364965421880042296788048014102759154576658067864084793797945672567888496040410692481998354045035465804257268265764580787819865567084726116584459642879266813312579070807103469778521138213360495689563893284813596347508825738359135263382184471032842270709265559075264620988126893561187440394178373519314768023089768561272454425353937844412353848299541772658535797225289859217388851412174271282598167353557715751191312479245757987413590187989867194831977035943448709178610949477138438431961323104519682625855638079487351308172471578433689099687515868355631305533613383850807072058012137639916008445064550066055675442296280392281629638074157253862219538942070714819218735363361150927552187719328985267148267813806778643376140375610518547904713745173922712749509974224614937142882744519813351918878236323346511907063832275822770186050352615210352369937591512480925884083399557456556096641712899560857839624969761806473278285422110992623095173675225931662970429317033446899469528193119765096102436047462956451907390334685289026822879340266730165500945688617922227145287881761542831983728001584861762720534813440621983187855222763424895089357919769741019520846519172316988140225347129579001039130276564288139618668875138842644385338109010118627974629519607071300406729927131380329956494485656093552247978992150350397744662798015565047358577710766935297807508979080804012501591927349098566816036161084777315861107506982104260912125558320209144487713930638458498863812093475431913923995986693121629500639942102224370444106781377177998134801531763002161530141869315459866880226385757625037171463235101444902755236729551490811918123485701759682075857798985280232705397596985315639029506214127251529436439209944561434329472807749681619115578282083143200597929416899004585352920356940191236984914402062192145036015789100062021099381365450938553889855936449165699953105349087702689093098593637347062891422103882058969612090806003592347083457504670454467340350541891478221376464345831481648773482529092632026968729811682026926422914547093036203147581839894793944927521548165891173832595567095340498855971685089010703325386036162132709952521603675322153522450830180026860861716262814709767289956362218105511046189544831114565249447831710596901522595050181003099274768211427276272021383664837910562933511970832812431038083281873663494501832693148220881799440277323287343251550319381561865261088745280972649158675900515146578054326020509647042872116237259559809766513442134552156929748463561182113249163711887131018125439566253740716899025352387716684693445631671902693877391669922839186309289569947643049521320110110713855510842322247662446990460324026447026839171491281748532858012013711094277084317940298306863964894655046453876139826799914108862622222076344502046811546885425250640636683627130941850671773773403053288476606978670872465969656482620636386735276590205724080266217807969331182771896323420583914981642657074648067789400277359717947514577139740698105657645507485478861577621022710920869416083538790014376533522580590299632386711557196083332223807952514240797834371543545463166708084878780528422612480557620107257150831335379185055048391963839149135743566979340927630068100270532856432220524673811083639936547714471235661144624226263509023848149840506253943611288578496498121858777312552370062665591888173239825902682974495293318812831026408952424931112565837026834237005297121578675630664749442839045765918806185872928620011706600926072196887843151900540323886163564332550311049337738245892188695262468759525529554462675115790151569896580693696957429560057500054778209235888405540878255768889192139723580028544893237959976105989241750003902935311019407680243482680108510749750611907483488907603154588836412013790715360351427768367684759920442821481837803880967154575331747854781140886734706349213141008284338922664195625044694883973321915915464589615024946633936494165679741233200484217627893018931132332587153933752267970998012751698264352857333217614502522273651286620293999326381919286845351640469828744526740610860228426971948604285185643411261354213489230657471893314578122236470162501793526775237572530090284418067277899594235407812914363196116128156536333105747770216855042971720859794786727267222899321439008908130698009165163806371386826349092148465871496065100756663176564922297503325102167756544118314845387852859633821591653399326665404442361040510433242983956935937562997972660001878745552927601598331283374385704348857716933884673830689211091944159724586137790175231206638797721307527617655393114166404214860643329275551008432069381020169713464489178720554479613360142472693342789100185394127910990416919101162978248915873274054378164120866295526858610480960214651447314372332836855397371139595226887312907263077779238221721582275399382905879339915156366454972610857486361609581623563261491131848160337399814217648472925726503001541889595031086061142954819595397897183368917188002113511968330414014875721017885424758560008852535562835533684855528326893319310524968122086680139064545675724097963223300049605447891917300207782535805095133130180556576381904078020783716234643972868885573196198085023791371676860979100150839987307316317894402652150043188637109580118164729295949779913052425569011590400871604099143382409717952126003702418163649635780400101406190109535402689490090104451486820932698841069537685940188483106239346975042448159649907161597276856568165896055029364956114238876578462751800738086221743997246646063246901124008578469430715039894841212157654798257217984937365276413811785964388479865774746375139339131536097431009076540302877598612250530613632996720802935010114813112244005053052535315780721312424088123593676585135787733581708333782998926223025654428832540433516200715972306368652166212413337427814934180633670711183359697431646891078292364909291978919146851738045287735059279059528712329105184137420806631060764225077893252317718043737573656843569992315665916343897410741543438323244368518260291770917157600397699288137761697836594034254986763043025638318367891164013407022098724674280353849121253951404321738722334184752355744974420680757115124968069471184587775366308502806307713289383202640892831304982795441018071427116474871338035119229686945655894898485036116004495115814072139281648014740523687902536412465548516685596574037596868424359073999997813367087013979820338629524610051709509891276186691732077220211466799025138475174245264811019657899793464299976106156313643430690214162297123020869581371812615907864994698153636488060242309265975451121901755207400984466100597409746388395607108699915393746371089211809386120701807097426408275693391182052087237658607731087156515497455765152104820957723913157032749718491084083254808244543841277528336199739788149558883396863466746755823421288378959646851063039865765526023449538603778564905313130395741477816211852645485486360999096449323951650457229751055772833310571802490797655598240498248000382277014256170450971558593907984725705281666396163265447822634202033637489862230078191883492251459089801928886224423462668238282391102005381425675829246397324689094666488249883444316572256723002851885610072439072609713265053826453601506501398935723508788788848267604782776488583518618730023121523754763369092121433689065846140005083747610650581919427257694422618443511110318472819161785337965444486901575132046121674490285763198989202346268840489295628713010816180216679594821717920622578838587547710280856147059211369290033541912091041579902067260693282237106492067754862544168720736138158503423993653919003348227161763794878017396044866195347346998707657086433330102226340023181084475623879537365206806890443060695790926811484428548789350657432074505881306579208408322267993423138066303889406377360523592464319538203075957513498881909703532606030455820228394405302828137570730320078528927471764934637097451364637139221492228139792411788558923775333826160737233760443248634476560429998473286111221529296362570829278254056236154078834054405473449852047639199593956940394521305231670913085939858450037523397114694644664917107535543951336089271637665985961077673908286363311467983506061983888819243144917905309432783067622178301231296544233748857522111995472224853575055464236095098738942678096293608714287726385277584694276789982085423264712742041340819500747770776891363545523807194271083592993144086536861850056681505818832110618348423073644286095050962068574210646680542823487760508940398760637203044067691545386822086693476809631587434608539929737522002730587943226332666828811935480529558340094227632235489253070973750962270135189114293825253276191897779838856857807859394694953738509266827308517117247156540785395113051055672042019884306415880449172263755537228146303890046930725566510232849147151151521843315267310492203458951060723880490703447820773447759074884611217457863797634454582761173173882838102701179123455886035125422373685908954248443231164650987918724034261367172292344512689632555441592933521781099074656820223392518328025425311203244340220497003706883463100582306835842469537221681879501446904692157621818098970433677965801153009440192817742710558211348230464223294929685977862049629216091171637254710841455591686598919998323550008850554160450028818698879251085668291062140169021532915560889616489046161970012434875515876769683188929069385102788457479314505769646552051858491870783319920913866789201094285518252785487328022767182532752984082718552466050065061561856880208813320279898653969020682418138344191928331352979231692880780897004575104128628130926917805239220329134856455001634190858123262201350204992533098788908632142126752640001356490717081960262809393846042489321027240773951824018823927070636215760291401886556433346983470079862966898874046006686433390650926118790056619812918513713312498028496663539551531587960454531296035389043281792583614544196167478990213897030401534082328220088525493990064529413829707812864206658897958256632078782939478958950888633795671010511389854879210563376308271985349769696005117627387667273742169318328703378690487607497748801088207372364294171118409951395215361334733056758970113470809741435401792939613291706231120883041876494674743561858846469522775307141973408230888200245984164069822075115479155820042576466294994442322483153039430706201396689802536095088145811376128295826434516509766427538297385375795221963385068273447569839787167412775358543476336664190595332635576797390462128724159271213099031557680272603760992937462771280190275546706291272252478344301303081199937642415657305614922328810787628507196323591635527410371032763929481573934210058011109169834871293272573274160812299094001348749321525670642631173076345514442019995479317858715354570211242052047111555518482962796358000664929641953335005818929796366500805427657892224832542745911570251976807223625594499074874176142402536212969717752885945089203843938889874058769439995313527202001418334040705232478177994611172245983672139113927787198971608269071946378653888342572661110386209691237027829405985822933651261988151985427757377072843565050984864706482068307719507176266283952596695028881960355918373662769244985554036164711068946573247423049351331640019570981889613103259122553702988846091135957303427132396522395129619701750563577657243566829331848776827552563328944183573090578874579264654007061591936158320207172873423301743500887503803859989735954794404248357844963594191883249776381841595300347235738965619288054792926238533292079105665520571384466725964947437229337594467969751907971822493622654092254344688134694772037273247486382093657600988233520331434221030246812688963834235521715466668524991148405149403661346480475331001811772861299578987705174602957584090802439769857849511234371677956611195379245536698840197427340690601786273100134934768471462922241632551014440503948624467800893677133652159185759744941292469465910560157156630854007329306859629686884873952892216501016947655184762897118793946882787848130392608092135194659797892337269334412441072280278220076698241366538488394066914146764744918475799258147487421177148989747172024964395029861304393027395077232796925692992001778182217413716032374222057511314636137166999169577468724027255540132015649197596271874289771788872440024471176224997505710069477978745125492870399352577807309482158993782294484831317478868168496210708350424549626528338584271071858282333805569969552889555365993625032489900371307536670042119171285823526310198806571235408138520240107283899190150915274617174475352442344288116440237743760424453136655272851617904312716142132770916328844127263646867303893078356133557578201318480631582694609392165155349996604989228023135123103103366896898702801767861776843633073748986480897293582907577696797142906375217960936080507248462283183356413070739109091201313317067446666559938640617507123503636337276961136661939614358525993825142486154197870217797047304715727018501614115141180277047543128838923598075514642725496883873508681672440865369897296366644016029786602197360315415098117461990739451262485243057417282424421918391478238410542116944759812510549303611486722101189461590298926480877023280809735078094547594925511012786589598590302425030747611310482311260276442069741258995455406989932155067381473214233315513801770095515101155536366045047639018586905694508405044107339042223340908040542792548555125132857330916164352423312017456932394766813870950795192727682243814209606618513680747157537277605838092199814122631448929166394930887765421052838013005867704366563043999589201311696535641301672128168479149477028929303415168722475966149991724557520512621161198024590199543168809906663740331586917518209175473098053810219092089639657651621590555477866693378743858628615969734651172306503240553758041996627222808717580675461875433147747003531214144133662066607901635729198169030142984212593438865412681283454626577299814385474513169062747453990619207798396001477739462065520769022053587429256718562365622111679257283704454318755343077951710127501777449394068685532619217510012980794350383184035748673351909315517012826388972981214637659763272085087531839922465597687353551033472843433199111989790409018993434260823217465022132313237421781376712142338548874056199131995645887747714252947405561318346233387004458011968048962096378519992232426752979922070524768286524471327341401281475493967884660852507742853154449733074143085037816484275691847368843094302137348896789506951116690365144629927396690631654725680398156352639312308862267892094716242946444170795856454149779088332567719556708640434100420848625597540896501451842187205927464525299249408572044230194542831774475162492710313780942756693653250226974594585354587020744162260274402055374180624382114711324147087682380515023301443089681084330498459314598294979483918785684972637373286410143209122131588281328554769964721668939687548894498063111917439396152861135986283617103063224221164799209464641471945150409809992104957615486331740429099764687516985176583555082646953150199715762976607351300868669112684745075137369877390970056858411957304236424197968182508123791921114791769245082820608504351429854373386141537852093476316419914715603300935546469625497472331591301418890197778684033952462823126544989894766340934550065217490694346813672900670705663645789887419309085259492531926790100821887166834457213889257081005747564133074170977059440827814401731429986788443611174693811225959166634179284574239146010613591248532183040442944311494482639463577084502926624832491110671220819945511211817546923989313654353963615775001828964838223784148626443377278195870270486914249743941016528482229453562026665587425210954241909842309016833392758181677362263846284419134450119493220599082488371247509616538216778728048000222861023944099499919020419635320944898080169834355476838603206185354396830828216834175550199334765679916552608127902039656738475221651623937729359447436308151481638320977370767629543057166742682419502394384734821933628787411958271233931588298890942568396334789616833170614565881628405097069376497642778814425944981507795914210837376771964535102320032218898410133034677380573974652013285486980479002325041049246865887442655080916429740627631559897445205245207364554263035445111160995008320858571722362232698018942034091860166198342769291016711983567010878153717636974329864244230357949092057448908758478427520749562116986787218207141679742889314707045989873206590546866315983750745640063305017993980287503856129946968108697961524210869477051709665229426678911391190157101011319862470299090749453908706452003615900258210209769850776176813136774491340519886839050129721052662342476972530127211949963022427279617009253578077627110099024704524772112195492319038016959370370519706490423932408600213802042413244128828098964699041106719282913838030040910487137795509941741953157399816363242155929233569583453610520007327702202819270466832856749773919601048543323066282750548208217003882286454219455031480581017669902511674741972110063062011030587770137283082171854659350707393628268490939620693892945345266773878631034672266775716070119725132889287669354101920521267586347009567751209852923105482763325061831167539657045249086875068292145733331051396747509545532636102839073752807354983123628082237999000164603646661085659127282256167602139896476229962724994653673337249821061897959518530395642989165458175379223611901557174989386037313056549011158912309144979721486264827569024605945986257184553551933863858317958019178490247960709839529764215919743304805769016727005265479681655289767788702027777295039899055845761272954283690951415453222120903732562858750758924114622105612506586553718958376919342926957823296416284219166393021391664574830017785816020880897133456787473773122764635530461955467711193138311876575534275466114460358054868361948947112657603372188451742337786031568105457358556388507252221646434273113046603706476393710648390617149191869950570104070688153025819118026393760363273792613377186229132390210618646499707864893273523162694847225010341820907625926125815950351870223060626214832280134078723759466075466045772050605036961192969713278188464044771309444172313338412121756976035272041429350985865230472856069960463263870952642200133913624570791143557933676791273459756729589027674225614846064951598372115074816705831039571063566333048638492746860052668977911086327489959249679120090067769243266198361793292541366059313337090417625620785203702847607968859230025879705396740131037817718067593320724601603196772498030573426077594179710115173982258824853521226263792199096921514220744455938346327812163366202502748156359566691880799287563774142525659357911034652605352000848507339104364662077518829490608658500176772115844423244415726437733973273364892848973172129651833485729276339534342745478938303502183493310989320670825018616106981222338542136904519705339492405740096314713529035543367199897561045239292725031038572608912928595356396236313480498550283582985436964085234130916562685192784128906176960187958711940903326863067772161553428434546694622543562598136673897736508693402068135049843669244821731540709930817652111389634626410929723944640411281784875215441814802428509775134500938023721656232036565979485604326388860750285444533563426975240092829277395242990616894472341787493154665072525670895684783044783518154058896921181891181605608247624192832493731663633535072682203895664147503434806579927409672100063867930750545750920450282523566396915935557590251253062262585290437774954238023380675137050497435591566022647136154559000072844988960972653864752070208159381195711110447010398306341746100826336346463709796960763446764332975887171544236448809318442473066895218914289374684702960767443195423734555879104315575702392581301297006925566750842392630071064709442913292208593850395838934649589571566374373337914407683525732958892792994942816175151923847990748224160057598568789100010276724388977582476657269494757218891007716370866344631091682357973458899227824405569706626375173925594481699739035186772177872818770938641189546800131469195626506680278543192489476635746896308602868061037705784671268829606123403449871126268037512240546338837510592774580653658664141652420930265964658087322099212130559304671398245973616778945041374974337713823881229265734194785949641152478490479499307097995423176159994833201279058077177064187709268668509113927812113847096485426754712279109275301236603197897826098126065719843514444930150118341063796502728085927922221104605208393124816661786256822235549435620578941995340095088837076161437457511913897467872256737819719349339102128615979867621761010816050109317159508529313723583504294420250345259505628953483976901302952779647032503388246185851167319453252331877341086389506178541552829903224518573520464192321328777451113235902423008196796693380152205548457804585701335046418161718524800702291251111919168534620017774603902576560442728071784580717891797585407879458438966012659237702750590464141585873504972878678677011464136877594606152894211260680027635696129865637932353012014291974088861380822329741071940408547226276776761933024367467286396247294865503923704215965331138513209529277307971124491596551823640123510793977907805744308513565476831773424514465055449826870670236630662802683221346539644596131855499597155738138307900260772040652497418812905440206614829383187283576045731704321613406377348037785448237103484965941066541984399595146208483600026440548217304273179160415576395926171529780229695291171263825387741599537069944798494435889929620588889009727567393468741988542848420255891963329788860087715588644322048895883723902992200917137886632103583367336734860707319358595306403909243325679320305951312124636395213116793118487430987891370377563294085870544389243133970458881273124424185581674254751153111833233203933226836439450508817352114785375357974182112344859929961631438009449554351826488832208748715848960283276591484169960194937201930302316486570834291074489883161006740148033005352045714150119579255949545295600596537153258552524955210202258437547474687139224441774657666681587427834099711510353446095091434657870341086486074346311303414424594090609933546748161623219625532080972815736916740467755761157021374060285700861004138134931823757590967816723842446663834681621567718218428831301926579555019481503884691262758825996603607148489558773731495600167543755978578250308413266270497777932449280372820496082861101280966694880165288144194617457676383853154429587204346041249067362147895044043411307512062227597193789216894850931910572882912099462929128159652841487955980309947808771994744459620333831722640581627999456720616552995332364330041410017997885483128522261161724151097452132748985590147608330582471665685120283219794086365920532472533415759665702225990218452264125463151002894915229594942496013339821055982742751721847731971968097182950086643766941421808018613473417912330003469385377192866316945344623999406574701916969256578307648734837353379127783385634503410193673139066666509186131140534832011060234699156887636375326017876871652020465622481952826909807481338545280351439872000780569099980223062010520103995795504525824256634632644474415544246940115857825916630914397024975588325828670788985932183621852498192778970596803337124518075545822541536185997584512171557676055218293249409521860198884788615830967416351394595465145864798702406475217071741262518826138007152720949858809334890744759374528499441861066111032601888148999274358550256053995378206805245385670308744159407938096146445685720815718332876751202125502534652150886502743191196791839278448058002535560818982022618699168921618295650365206212977266321101860271893810777918558256178671428309662803336362443394984959967835671668065061069963070594312016053372285255896458790520855812945917482548820865098865228979548191911835291879904903123588361243456423094821278305560267361349460086737688799781205883845255779472049629748130242149747498321259351201100689622644083177726131746415798077001061248518749193141168090187997500403019515209950810104173254463223548551923943858459847708006033448622301373390665797870022271275417517091290747510348724676169519238959662881523631499431939316651543254759086763757653768961329832976873442699841726801511125189079748435129113197882942702934478608168582294877414393130582246334542895730092707853717595138513430687277012168057032678268427615529841645574505962922410494613508598313415805558076170505546905531208696815100310908667480836597787767532309375692505673585309869176434353959924500439297871281777221334279725818004820790483906898409955898826538983626735235824613217009595580843861065732486068778827765470618427582740071763966294879957292241126111365642586700658115266474657823879083532192239579223690156857517452643096622454944631483541368313116009431864733281571795699583815800234520030252663209195050749464936007587733206342085015953318825311527088324720897465424788835901445588566907600447928915588563479120214209892423383282799706946609584829377850150433799143031797478708222622963136066876118387366790994130578564279256117628551401098202921797311074603459656649391262128405615179388159343460956744761432173589469607060943867306299245882794701000051936267742850794320325329715970841506572078874989771495074765948705193090786463558909981092780669656811884845606090922954159498620555050106157515713657402670906944858962559127148722255007395558768334892312757404032825192448207601991469958966909136239215041874728154844195887037464724479681031941651785293065052614267964822449319658833988680957547236742672853989894244127811413447937104790314381837738625740876753036731155983780302266893158836787886504172491195669367730668248446067809099315575715215047438090303609442609400258105743775627368916028695666604975574058668164845617078424563310166462009260634093979041246213148489972708670279345206398980614238259113387981645743962833795509184503923965165232926791456589924872407685284802474084139064279635529002244665828760714845845374870118812660856485224114827790527290842372969707846684421048931101486106091798911350011700111451580483191472276169691143562298872732609269131488949473170248954172916451349444612615589375631353020484226132661419302808098732044416592833271806828213564644580027944044170049552779724059623908887327417247199278617727573687611770146485573552628214540109671462491088140005232928877817100531092327342625267553372863874533853033220099684663448331781126895817244813628362830876101077997640833381818111123046056085889351299298986109992641941815733908699003327496926557016681934886546709567748119975801416344630703408552127068412167520361448570542604963565475631543166758657739719016615727136161368464853273987332577998084439148584874500665014763895689919969404644300459253851849451223881584394967759657449455160712956031017266525384056773532116701565266613911941029270051959280944455019182670562457136986636724309666636662828038487485859255210202602643598785451108543554365471402449671624807869909784594808561973636649797603092154706704075542201415450702771859546340154091196550556870569396120198965186890721638455113210183548078946570149164061924981289890302223919523062791123324209287560347791471190932730693476523490859308129801959280205100709121341708781663721374740325756046537691462841903762276204440644251563781047643220989704120657842264005060072514186294650634815397975388938586697258471016173444130619075715370409303142212728412914687653784150404805505121132295002512490312286083691013609465972355537784680320994927633948576625720332710466133433753392208720802189348277791890772943646737109120019268500486975883254380452090240597417091390072539464679068386938064031457291559650936085008282354812288134328785011142647027957899938434700914822059360340392404410271338746709604166205018602465911126796103015115723187499902204341784753329380842840030426080303332170175671476443912941517860391331033179691624076226105402553659770124992835512567082346864653879556752998768880597657187168495519147449336761054286228199979203935725542383204060494754091662399946766453070327577648832862835422878051060650121681076724537994937716980709238138774058641611050235202396803171132837485332454262520276172755371723015595058486049472395837074130995114318906682037534221761260326024549019642352033116721913213120934928598940775036199924836462682762884775802009550912859316487341151113898019405868947064125178738591140328012030930970970348328322566175551798136808127777630995267179652868102204442861676385440557324937699701447121107835836374664028894766163404703473044343431442217768155283205954998772596871531101312257822484646381779307281574838042825172975946819570888548999617921370156161780182246086675903338424998935796767138829756703485107877200057474370641399612732510457925077774844891180803293799053451582998014954198709575226175577952718049509527165773591401687308294056105870667918127318378286401330658060258487938191220165135015404059315902753856030050375822938966861714410611257135186544337339215825782896736237815833261795397067174711779522891120309278955593399321243641382681289318020224159041459350783929640527799686353473568492917753873503746440947080653840683270696431595737675825499948090119410045145101983451770370145612112545338787545015440551810769714060748763194483444734093354277792763039510284640156931082669570895021436355931102621611021388750937270133294488019884803556804241418614382292941582952828022684629817156355179746081469054927836720229652335664960782433467202523050526071930731878568825111057760951370000001841697580308221506147051047227224340392890138426969371450514883864190431772334256649169967177934961997698621380651931560131142548435173752310692690132180130545517553980919498752392620760959047563648815091178915102462293586323197679781018938945772999924184634224246702007270622533246401060528850906876451928080901975714833411645004347137473553310226468462871002706805759648615082596851179517263526212353138993885365962003977739119631622256526188168415748072576621182224492258252497563584345765980522019931808234165994660571841470188339866025025004462499552031430255029352486774031260437910793979387303492833131993191179538821191563368049667144875959640721747429068147681584342758456359683397845563793610267311788565313565285147441951531286109066006392502129596525785410720916290246476781643460107180073755199621639540624126069016552184020793227711582670597852916997354046557957209165097169490610817866721098483565309119453939673058701889245017898610016638351915656982213467230603951848228649907707461687920252634555564560241748002488518996372269908832591850196451308803076024010985318482089359471921971132526671652838830612432396877823296474796206400764942959389983206677348047944095539802039770475042671959896118489569560611905876721733001936209410718678898014604748090809976584259535223554849252957907607258151383327550429495773293542725683612793450046196235703587372687604553437295909055472056067463484638270926321272827540495490628013599190464323550897445096041039580075266985833104861940529255374251387013609118398347767610632262505238921214912234040014382095260929333126366960226507855329366777755983746606845853322095225149725889671197780728844727146885188519461524519852131670812664822225359632512761828513991594527523020322765585993769126399146372401531498304822110219047114149067354837097317442864940263593329974492933723810896314429163886488518914947090692415097893325324312835795303378365424691146964282868721143870323401945487745189754311462471458118174974772304791162821998005520626797385017036670558661378463848730454064378159769360876546852865723389915564170274392434733542834600714309203528787132286555088381550510420281652948060745682921515124085813601879034126157080964313133368117104000727296370569578130379785874017632159354950445762605100521966586491901975621653301505883307352948726327266577719861491796362136538078296193641272660051972372197092052350441929847286420856349991637985330361149716198564609931828486998916120551198701035762906597787353364500046140661579657612246206882924470062318565272634987496396744321282790026218158128733444372662421424770440711548399814912597374535449220708821611847169644664198544602283856664526392010094313091429312383586793933582534157036949366870220364149770603827129645892481520214371246662508880372119633201869879314255416479380508343581791963924195962937228602192542790320690429808804975261947659528808715071197653554280249378616134031192277413087699072678212366362809272247774290958327643500150671069795065662469179768797097067089805045281839858029641578773763601523463333117597046939179494349296965924740262202074556262369860955475285629020635306870413761349323392743032818759490692705398875352286631319189879292738694271364207168543042179537117418621867656968050636347016885289274513700087175220605382102046749204426509155885583189225768931222518106780722674940067916896735631849292867750746148684815497857924906166127933747187270885350449688000358496958490101769311355149737822420116752168551710607683091169817877727565953506391380939763088219994421283280150675110295411322332157515105087321282165080687373624969052920427470689943731343489995680557971110283036935245120254683109689462009491099495912124633866204394509717082763822067584904112766882258411216988773084149111936393310391422149809889490010407790649405121680688180365689379394675780212026196816425934338359203519316547318690396026061646513508173898456978528147104844787933397766099780740761713778943153652273998384072193590443162792854379844182920472787275081439855813673826768229254867851924247574966020821754266939223950625008075384841312136301962289695537404836293252327848348527321533930564575727657793465676788477464467679902273199078587874364109886091668244568516922956107943696137270016381683917160002887549665472618277226421601639784949488348544691871028252175841588542998286434234499575192554096290742529647134910069772570077994280336929284012931832336807170289770340107952349850304367448477566593406146243428380116678220173989700144234237279407866592746348387728172487239036749873902593729870459047581165115397064180603606178162355819257083510949573329227144837311890452820524988381770527200833814810031554647459509184730928782166363210767985855105251563896701212882549989787667913700006818939610115971118931943259395118688532646085228953933272782015917310680010698103398443724673009955714874151630556316386104104227474048869262430917440774080748029736464451332695676180554783459423539908525820195339560022263574561487884953370140793745986178306726314792936082231712772338757967316091847591500745223179204174706674520969213785786167420350213526426752386274408706422684456243446221744547066030218444361142367184014852805874788639461743213806429319544815406579067720945040562831768285619482338141476290863080751481216977096868793001496032090702998115177954309288652057599401804303069503525593704972521190708949597702646546126704822214204745837692810120666956090176657053347963326343395892152129650415640872365521492842907601198299732162702358968934940992990297519295230073904385647228498308180611117319191184888153172848152335440167119178534347037369911922724974661190998981663416290341630917582822152115074996866456344901897445208008433027686024714944865761347037791607533842164345576414002586780923829194328779549706415096046708788823216052056575922420534051328291305373739074425072259597352943818362426843596374076923001749438479665693402339459206392862468531315133947617610740799163596897744552246059546350491909136852033803376030577893784469402246027029506321018276134085508020568512291712207350027881619728466209399654204814461047678195520946853211657121544853640175687436361248438745476530544609556135026655373892862565084689742565603634088261678472011322805788375467349775198234447622088890177149844426543257632324831904961160733602156539902308081098493587910727534862909553868601771154275441213998581953867397884856872763276339169291717448686727506942600153873977548587904322681710505916006454158549038696207667293713598287404018143773983130489285172170682073040553570474349702028375381487749735255356491134724495091015753485031311529052010236881000165911838290078153939764158057258443670651000301992646622733010840932788991720895993734176220522411910625735120758345114222299243734596197343416604515839954738574015157089584818101306254066610217430551174391795508030749173903606229269661455946852361937035323232068544389793771086012400028577408320500379974672581276694601756611088362939604496239863364409206979293775405644308113284418992695274141678456479121811274404841613522765755025404481646562954436492596886503827858547563784587395837083328512666453909763647286628705205070524563172420778666275586568350197722843891535992069075309222089393314891595552397763224437019561506519455726172864752721261404561637619506329154154916422991934926116121762361335302472451363307518917705358233565708425288237337037146406901509643320789421907604985622138016804770643445732521872571822293392356516976500975818713117902755345118071699896774113878155642708574816970691936155972013482750528279412136621456286438752094016649477628710372645986517554152213040443554749394509604975149121094495642578854564960872138989455875188719471270207105600191229606194065745073888525386122645862611026294488569958575406631592554522093857233416140288380260681780299608197180327749889201384861588672319509554286857143396993249021710018472363111595299253114573486091646077181170752193915767854033970285318263615316896089119898934103832240486638225862962349882769843094666502204574824285230758896063052982764604492659880218511490835344898585451328848274725537960707788288856041802159259478851073424241941452675270801321736521892543929340511955017414935682835711136906137729375772036345471004590190541778983878184827102666403941847285804638928364930611636187241948409506523418949621980752795123638018154954273638272411738379926580095086169922067877119466433523188652461551628354110140949802673240655724836259707775438442254978218491227029778078381735247329414034832445803716051709684176091473747875219108641721419981180473782891451110661467896678088909100544315233377086392886340081138086058289820722511160725453086336430365856324434648705462563779021419969790224195941437846002246792958305916580738376637761249290716330646211619780536659017709327765489257244179303224160189591487960953189867353331362254526289171095176978829788103353108517946491833396381503381284843617444727168570284540160293884248798104114065351884297593958722594918596957249371061186422797594286615311691073768935584029110784459899700365333767826107015192095104569865396965594619900009980092215924459621540563465913404078286049621445280940775744375887867561967552771102776809032127929430882278767019346160882776327295069314180844471696033986687805646100715729832408440336116392739633622860831321259251978647147803836249633757235187688201350715972081909117783056499889715022227489602994269484278975742625312072786679442611926886563119833247718479903462920370880813445286768555459671510409513710313130454124616189420369265030185648392090403421665254127680926733562550622771021351310700929878491709489395189881879482574007409107866961579212408437953313801299587603025545944978429955555990893070286341077539199290519313512705763238434971299371851304823790298140218382639003099150005897807365071935238910176964088770075487609894483762721554045547232614466331454924752587478884813376184607954668202091408830292729973026179772906796536622700467438235467591045840238159781208236319774250652107259281611906984570887159474669022589571759442528313731797884823471160031220515372128077235696870576485645443407856680404344470481710984470712782949862270363014217016625206583706010491610078233190363350705952174067125105342522540675226876766204566416548720052901439905996634894833416022875418498311355916636368743681300481540668411504057314263809294556456259499031890484053150633161054112300297851227061238159952104542211845156671724837331232481029285605690756468681424621300281768651576817832493138162245940401526885225266969731159989929247848198963933252759558030376103029186763279313205084156887040210785594153882814164806095380045134600780914562830299077575023526790948614209588685644353099036749103329097680740396052567252311588633996983258584605367159203913229974541916444078560453861231391067424752184916690278614872949154373307700287780695350920742571251806776899265105050506122148592212358704160262579549247107417528970228201700042843288285403979672160959742766093689725895303361562879571788714351860636735715307192321685448150100173112223083198442321461306748214764098010992886473170408981559192427153644593934581085322552784527367633182924989373350703310103314046776618535930114137898551391163547703185246977554997298579246869191635015432948869086130625171841530546020110352302361970053839144542342945120805956839094578518319163281803045017437171058229818480629788557866635730299410006542006783133975021028442883599139532525200476423468286483191442320505272897349186968229979137456738116022272787768266760035788877953127700018768957335076499735542129502826689317260294756200265873786665722100625331087783831917394528606519256318209033971881728613651725451914001079953743999821876099001929016398241549511823128838122966535054029996684713769502661410467088744369406622123139645162817178147835808134075821367543736146509165449022461074437982249960255438079039933534797016908731354084849236324081788385996663069787708504838328198841104843257150731769022850412545086475683389860253236520426809651966064440181242688772000600828149053566433448309360316941040999526644474614118042357847285524012688838344928463313057385876878740858489036177611177627353322205244489441843321041885140443849308849231709728960373597286363187003128851177336524782759646329382166649866451102686951166557783088772245376332154500225257315128523023267474718511592488639540864602257676598565339073262706137888501096478015823981143437728440670717904144439587918680303883581038530142306087304750900993191883279407427149354257349057095258783621006695056997091761364636568548450438926298928281728818696888961141785570559285748707397624753710054774226216175201602240666621154203711810407572332325759813061919087492267952987777554419979353169675028327754527788403574825989944681515690805465862210707278542556125945027301593188969141382570822733569311875841128468177075261212304122074510878229650698037743443337309396119639206934947978779343925119254284717353651918147617287780607722272592879672521640973962433462453015583143941915319749487809100458281802853981133484940889203450854135540104656179215058665899372028543178715282718570459612220067550252647916836720259422626496458204530238495401118380508022242570341628287280714068618183617435086429343917071979009467826901012858542150744533804021082799034795595284278470513376967655928511399353290200152278212489492659965053218798754258002882872722507887771078630917138296372178172223558267905180970138345668357047466823038533565876519697255894689389696071413634192437865350242677415150179560681979273217243883889825052877005022053107403047213028504772018071704651851474266339924606859815024401035006331152128498247351350769257402760078407412630077615608310538380044796293302762566623335878235646129811034266672131765629495991465578440664888836321842351092938370701444198435795571840118359972191065317731815649165673480491160186172357822187936652142476531623194266938295480441472805928866639206087204541760902257337835106355157913247731574015402813622280045796441591634168083199451583920160012562266160409652616989132201321608654712849737538196097096770798168908841729412652780628028929104571628780639209895416563863772186218018480984069144124031856726455283380360490329107277794033689052043457648878995907772308288049209644612328287197832836112622381774262568915612377063360335716598417596140259973013770955994278591939831566514874789762939131744332035628680416952539879687719816527240957345589712405092981886051889188507597938584271006751697159325709527816018841916528847854652460353101023617627642802130089435453083387238299037945687415082588122368965207888991024609628391252522532881866944144801737813244159237803491698471104479415326933539559158770488499294976423653793227113972517872024113433508188767389556626536609252356412871487570102044488742604019920857250665084201917244834648723534461051755545310271194417210098739387382674160800445652027741138063754058896809970702865236874238470097096014045953532011340982307530699924183710238939675148824984640931144798156271501935090140277012713212960828753113356600248509918292872978840777476795846314304781698278161604141820241566452211365830434650675857661219698769813104639454062903853898207451265729336698368241426534642129561169708974897445667188611395281613393227397613862390582172217199099351635508065369330475383366063592544428966618925590546677035582312289605089739405600553644047885716083493183787011844955410896341339570985536896445070246052344750352950090524879139336493549361676356338314892774798189782037921957567133114127203915843501603307559708820503799890565240691496656651433533222601803053298424908423098501130811604288080656811350814673043906010234389066411100628431968810415591975802668528169331115767469695701336566056269712824983651542765264516728919446406098326439804247574040228766614640207005965405099739437533506760423279384793491404630034338831189733254509517687260377573511651188412789541989319857974629041903984386155984759431047558847230812174048064585827187045266427833825021175232290813058884421265513416242646018979256176360071471117120244480949351211130273319463454814397335127422828730322295584138152155762383672471481461736685564000596098769840696523775098586616642502437928524517483439483396459045398651328174961366164331824548024367050748135410780896409463903124595849701163350430092265180780573485102037091278958374580677385256481711887247039216980658842280140984256774728693678514482190278707538645357030144558473617975109671309703740257269614993212926924061649746340906590093679342960342400249665796784910596427114640087769723547229597338684260891758177639803668505806473257961707777819411700674712970450587776121749053665975055055011897491755234144673144676201247597681413079686863137160028115833988044134784329035666722958039542986981606212374628679618125773678508288719801386339725686280034573684971455748105249255985049798764851900044825074159962822586658133646658338334068651947241794665135559150888096928100002929288233448777066037267603142447064813368576637405614250749715875056330470493293249736626428270539853340647248050584654581782924725784071520659744414729658654279054734316077723756152540758231250587560893034635669630268192840917090706074337787928091560886602698589481872007897386989218317307417437522993922206725120999756577735676967982397967281103336155601042092294470584682677005268388251534509393836530674853102398219772253271604645374266661961676561257861697547141916626957517236100981053565342677657738243092861809697576316088838779904655876645710813162780439119389789304266853212462232524669580853736363560108823906966761755524508770131371985435521567723672982288357515249228924856335691673489244216885294426256619498254625394678848283112756495077007030121262605240929773567766504389540992847674217890979489558139469525493900438377988656473979446783253081643844760043588815633714209192089495062139339497037722726983610370544024606565836072096319168133717401032320322530202811238402038513231222079086064737013190318876450707619809425602881650167987729866573467350120338348678680494321677345656670178675249079840977590574516508134841655259929047306520429872665813140879254118555257440674399444425085347903268761925615364211576797222459799053918312276646873654754837386558003951538107288980349622149696267435283551158694758843258877674020930002370364871961448363973162496002869429042668424500680657583711535785224460483747175870912352016990188219050895665948344763898789952252497702393489621207974488188137932716648671999915417344111909878730071061441722357164586169346138507412796413355544589471075080009022824944451127104199247369249589490558208891601239611539875028858292436378814186303541996873413824319694232199789386379014869857793802419872560111825166480852246587866752892102423190000153605815751436765256985930117088088172605451210460945954406842237063918053781827908220767213097125319342508254408180486359734309022155343447919417129284751440569693212816242644551023152312518125031557422471912265144964516944391270181165773545507559184752853983954653149839154909831309628309480233516136920233253075725444461178501201973926578799538783955549782028557090111558074262873362909189045159426862894080007209828915983608491858322087862908770188085801239915544197462219638124976802698887475234225701965332053800463555251624975713688733339574306083059837028809320804956084551386561897220922021878003336835234813382930090704777185906121919842438261234776580915383348525559339899618812360380506738662045540025207305250141965045020607163795117108176255579074742483210008907841917181992320469659935118510139661738727807920062479912425764635958231508122163304416800661074469629726948567749907670148531996728383512017301614045859780829056819709420608826085557934454395416600560138342088221089613431086743944407102947150601445524965423042193214694881780489685894556800257482892850691412800716925957016944965910274420181147738943997774385145624064874197941622052961383910604250546021501988530979993191274800017574934559249060146539101141811915733690268193196203832368227233101146052239002770999397935752680924138585881740785966002993879926497388117290478842569665499631992388916046994266509373303955907761627876953400864931108708736886316108029781049131336846428936533071019472827901344983376144230964723778918062974219860093661731718871820325545462449072662192846302319154472125206057365004598733189447158145289078055941383316156561395008838407804564270015482318870685045963028048764547451384024812345633339885245208090856032136377442803148444094032782117014602333486002972976931980359197873779767838682703616894134452187569077954329183265667612110470653386188809138048970588167661561741739341357351587865763598435510781617714158903369602071654195582864948132528662159090894423870319687825600621894296644550449723461570594984535284486420193830353498422141355816150364663623411943474724658994531787575329186444791512790699211079027748168447262660536058823945359079846759815147149578473306931181490686707198434395023997605942180365199197532489526350516813307557199179049760117392138910913537343660658490857836491706898630536596799169274093106464194176704043426671631008491589926620846199574841282609510674214035692443938103461562320625150516521087548722330053261136891934299002418348837804150976818280155267177170846261564315291233030927464338163722737454004794064865157540921873224987474410923397922241720993166817515854865161900835067769006392508347051580171396515756743818335098725268850091837447544928287962115351078093137447287056342891595130184218553623168103815522849390750547778419273437093821101228773797834905030994463517712991600542180848334872540120955155015839327189611188333460759881869788045208496350458743052070701746845361519399078727054072520840836632872362387025561784138397456791645113652789208953520935881516692300688191842714038653332080063677144165987652955437093359352523780410692542658443406995966337310406764262889075481646070954871977715707554898037146086483363972934203605254963210148975517362149446039034394947726026268043908484734182913536029183670644822521013391425916580380266905342299883140142230284470608358813584801386539860703388843774032609102026651539576827951287889293324186507402198978012008422575714666339971108506848935414243840929549973046901732205941292386737143597835184968521842422612878024781420521716639286055579756566226027068786329690717839143839186238361731362036779461144018590900100391343028550330146045783405619810067845583766670301387081223834799754859681667905186218514904792952144216625217056909182555519337914107064813196856701950103886054237563285606534726762183321673978222924493428773628292876773011451925784635593097952763124651147360472761899558753587209637137194939451893995548080274700625982380514260857755356026055099910115335085945067122611567111737614654381031539635898595810779337256420354755595948328762934184541427684003111318185891230938204361154866158986939531576237714649556911817980240955950555350988767016975255735276878278602705742141944250601525234246637181567204782222565936625945598519242488413264103903127224438583823409557383287025921057754670942563009125391593796340036583351344439671281974599726485103355560514922814248424513495441371017998484063393464591220657531162997352582683613329862436812213533420808474352086293908656354915684012050134716140299404716286218749634797469545609031042069305186475171733871011973303749513624956747859198546309920422023143445998863561416677091570414465911319433704817140293630895724704848441774242113153437017129265901087571804101841375977721768009868954294692378756044228797022283161871704645292286136256620366481784533348337154996302182516413035044896634684733473452250990590439695329535456515470740099879542235278933152783301856407215803831537864113078554940006054572260491703003848200334300706932681513752667503852734907894883230749438845249061221198333794577959351097147981107324129910752091301806870429828491267219151438658565840388464743472484031261598703222549090167664913379767522616986615543845582532098717108477549327283372915467009627517486353099961291258990215036455541926829331733835866992812930569168257404261361412140172275911545479146159288705475182166516806934587598774466515571383100524387094205971641285198833287406515674586168831770431735663031488066981625174202274324650636183563995961479770817644469526850306612276101487645744929622925342829962758513461961636839471728946459358760050910359265905176879697938016998186336920301281945004843688042779361407827740509449775580281053136906206315752299958414865758541365648234220382944458270809621746018713960406356171483355415145430367419554638999476058417399353363514313620106422706897290278288721240922760744167682447732442546630195850362862934738486211400468762560569452490260056392833487902148342053972377254231495284290549183851983053928277554259551872715639687235577729841515019633402436534745403088066593230877106794307668597841941290797592099967968138964018367258126001156411156232006884914671933906715560596508674800961986945642400259656785323875480430289048078655186480776214217966318234589216744564258207887438007268470315266397297523863176267970486401284331565989104289201942988726740825724972811060926503562272592718177002931177531520180895653241159842119364631376602248722887183724404841895216600751689511141021651358872522294131506095510624476884743399805628661359746378467490818303418703255648732378421102828885442378646024258315780289396713286240127882490689473707147676545386662812856350439569124532100715654169542395316182740628594127737139467116175692175848905044957635161662760568328854669703977427945800637703961174699470803021420376058159513288533880826237821234352917547449866980325973206985488759288874980392973196881680404196330415151549198629249709265269778695699845199228092188702877816302812725029885242849871504883611482433364809498558421597273623764598753261245706115949087715413213337856319258120840907256535177615056290680381678891142653825744827458760817822607646155222468540046922488170809047193733308034539237477329745184375394711323784698226303081769492284949245474147577287373252209917974362538394702747575361104649141167316815812585419781224742588839049223611652548572656223530708199121888742064917314723597087976573770727225361880291606818399840865968761547567623018319595023031896953863043780023120866711790288772837476532732432370716014970931648143020428964626829215327692251846274053073838578025237687261598956872070780397339708345464782388468553641663760452267914244307469556285626228364602525766126776806415958906171869904620838214134765298338096835235662846333243232341619134452029129974242209921317212492737024481605030292419405223813386658809634822588963914875969140281853012194194134572568113844468491131921886826891667988162789751896694200363345269828413013123684089611154060057143677310149680075120282307040405217049422162406434859830145674124637032624733102212408940114895371624099890911376220226105797177040082352885065385344919149060410323802249438214105743924888365023455987591552916037897473946894374007356676746096567614298209045348006410998334984419295369401323721945923393528022164648202470844261283735235388696633654806292470698674925762083900008610404895636588975716329092776981722319223795223374438731217404528506191005437123246829867696082012953775017227051775421649386794792235512845162521248341761644235450996823493664782553549154203082964348564443189779048896707752381433716238123624830694672961172793449928039495509127912169976796207994018982612975733365532601622664510937834065229431638305573608912450345802071487921269184318454086844571863084831944348461321292552713818407059260062606542989524499626029515142453658441537254564511631720730528567822435336795968145706926088478931676595237873145538266537882845054234772071931912766334632685995281351454333161129298076018113942528516258011992541710148720792791920281519580852592961852351906564648776127891598751596818097100636880642548009077358440296294361279247185025548818773664889360645233257614389465941977470641432167806305792866740044760317023927177713622083931455053175060937900303006565274461889214583634149203311970896510940666074511567945938693794270156071326983272915463412255759205323465475913176603866905865993665216698472823529089686408386661304633299610388943101238799906324964614179928533793236509300527096471654400429582640441700860393366299633368578666957939655649270470342533424769062092580165936028455723057120786584155656288196933659882261329677999108534277312000111038680869618530150743636249392925155901158856117343064313313878988906664285523390906183725307073952324305331824029587390567925435995172616163101958302083321382163511498643465211854755799210765906123849529953425241597856783029414468959620468041107418232798658343958799450447358205215302008449661896934575951358787022345954339529858361187046245249140327179496654855323240322551663317623744786250814560908356246637329411290023473264338887411069500044479179827043893801351132683631727294145625598068534358541883816708928777668869730326158798594437341799113845685804901666040483619758113365027655900651466338400534317265189654677440209240137553445513572208214949323749274391282926417418006770835391828404847022518778810778996973546715130529338751104949591565553481254431540270585873125371611988540637214382239749821838592948690069000929842762443064054091557854867843089317594776636711413152316336578332472400212346594043559948131748177330695642142863040022569993323137229389635585781804393598008833908432374390594153074469951376152223972196647477583918317891665817448116550384138383845689894457487299320171201451296750159700856507617837193934480405142657716902365623193131312954860180253136143484908649439441644530333790421083460798080936311924248760668448226719732284074626888815634156215598931203890323042040495883155648554371678510214776947555572627785208522442777665306388710491570744327467502817680815442524841248888741818558681847081336499922221437845600214058766969538122977034094320050144925956021895769047955545019288819196644610545307494688661856803772637969392348914728073524757606221321849576032455577050624045742874198993498780153124252465863793650449466858261040674526352520606780954215643107445693728788082930155672316132129363276759244958451630192433492905377480086798780655268905091599651249780658511177888976287382952728123834550429139306535526863703229006249222823534497748619674419937830625157553299266923636831449145528538084633929437288565372241667651562191969145936869826525509690020354646452727371600166251140367853746268955780772391563380901942298596191932973875443969094537664745901809276018028216273043434282202961473989868446422227193932906515064181679807382179251797709555541058721408871305620154054574264086819326856677852897917816327429589525978326833616156385507982486082263572183178902146381162559778187270178574561840768467222660018009766967480257459057575249049818153129314432238613016130084166409811175827327027856004032134156083944113420905824370373637107917789504542794987345842989401804572267515407207897830777023469679792968479116203760560248941103409273774987249237849488588596452476783196380400292056910796885427284167168585843840695267715221217798926778316357431816955397878005370646469746141004403578013201009189465841763645414526297267476893999780031986697247212050396133400489388708344292506938142094450174664741650999946581382429744917300786232353174205848030772045160731079121053258062245887706272113905306144588670840776995683968499258970089304155802111351515860653771955595327424572032188317438580365136828464037489714715889844213654810482498441096542444099825593410944025015545155135240797061989745070826568818740691201492098134707578179933868548480978050514862217206799951310301737867331529835151194185491527572280641506857671133044890539340887895795547640810344902691324438289828996436111105537915494654762355321315243345288478536265468422970847655215438528401781396447123791567426081810393413273442599736696240115694149625962772613429532094927949006499504879853537223796974014603108124062716737468569130541590123838530756992902308114658808469223498769223068618883447897057583719783090000050308839762961046656361964157843141890130775037233797227102731943305075453563007799642962802729579033378573952481113977668600389934772249274963087854156632120759859057526283998921750050135799632116317556224068030109236715836395277138579715168533758593453725718818370878602789432437717197972602140327740021787183584822297160740086245142124010908908694562153387020279749284452747136472127774387372143258689248019555928862969937539511664647364208565588372295605857912431576501487837535632092899603657386937900662909412130587971946405933690637659499563759718471956282312217970384087376741721641892932079967446844189315524376177957240687248301186200793997250074261554232811145901341915150557215549841251496603416680393586757155812847611079174229889906457538794069242931334775366290944997451803057877336685234495304223554464931996442318167434463465493913514258486533269420854319754472767182272003493031629690512955529523969479235064760939086595449927795322220039040011697706520328818398979588610631443666409646691287494689915566470725810779592913489477797143874771673583415657243180797198245273959533623494827718832707870030912797702139020710337925129150436689939534883508158742923930752854498377355834307591547696591247274057701001222883487875489089736925920510268028791490852828568857191646706902697918300795742484595211585045961400345789778732915785992341649527288858712965093954691501093255141819943891529801785662016686891183362741339040034025510872107210001375213230487218613456986796171623488203702351771609690841030463499709529017286241323811511675633893206581131399317315884576543523483475436193332635986160191563335839357825556807636306908138576318540816285459511959746386709752384113347544578469244552498701149740087384913497186556068307009476949915143524404539452598607385595596682779334287158167094459110997780379871322155207769726852465429375192487932795962364533765225271272329782988378620980647325089331626737939900563396271682991256063093944322145660827709466956503061895210871766479573669384443859446662905241467348225720520672911173859123520842394550953554343025298463480301707673685266218710050698117371682861695865050739028739752349757817780838160999585682203158973157719948442252268542461011261203568316504449384948137570441019043973695485417770493793817314238518017419548323362124947607173676497111143271294540519553012631617405932749696955972118229455865711364796519089389780889513120417838807046088527192427871142155532793643510807922255726482337088460078936629395947057142979608118155934262701037393347271701629973771702272855849514442574382837953685445252069244991030180246523530117815554023003374721791206136177426883725462457934553409533070228304998671767293057017653664615735933562540768396911031552840054733795118129919572535534483074004665885810337480644143243335171195066746790446977698925647955807931983791566743393346140062141644632038768512040973517351963195818057686416432342715966831068149047083394795256960489863299796010899233955951796071298058064498345615659297538059798648839404343729965644497102811006110186151783277863183980844007795063417155287463222536138990104066091021784095067094052732841452403733630338786668564066682395147685461784033976369608334885595828429101171481866166572349504339680578555494227483047726460181037784802451541836887959323682400940843279992848229138039223334126070008683404887885028973258958773183990346284267825018295962559513385753291097488198038239203090333614138899777094202789821147372936568022067941018328028813450992077537269497189134060373128663690208014503995590499377361231831175333543181358467009551080709753736834820151551268230080107381427202414190970025628594284645495102371146833914205825244675657991743066596350940448084009331779092419808164545961422584261979918125904328255211240237903685935938376048763092540340382670557976078143234411632012811497973707579352212328568461131487822928765310849495954819344376222327770737842017841815745435019130804878772839010014340053968216218255235444793876098347522787776402421281257744620277738173718509225082366131775732945430402929458103065385790242413613410396217299509000617143102630727767837395552421714541172851233251355522191806132533999356900572063760551601867214964622570516592749656796143735857568488680074797875749327863853202788031221897486463419782287170353788039163346246764373637345451061535409137766965218236860944351711154670429902526099233160676968163087175792509503554846211905737216388316485041029571151749097066543454338195974306250759330097464784353431772635093780076122418670351703804502467118172638001274441652758943220589033951496746765203391959681647830796689220417137432453414351641302505333361627881752755592335450350321887293557350045517987030833715363303202612697055254113616565725506203333498085780703265083464734285996989174777813731990168319929504923668264259287622993132498140328756591319112912275342893933673746950807990421123783375185163616358375946363179150526074114578097761889579288599130927639507346949488624917520014795199664927823079962870364353483433120173060713768058835519140186647400793255968668681716081556192399890783778842788429575023617758955854541579014479195724075807804071080464100353786251739414056110168712973677294316723652923575335784708785068513958588560494953275849887147196853747599539407771680527163519767972871787275010647303436088392462759292871711794883237957739914804082610121226054854217321038231877327183413463585512519327703061568282920928481841400266012765549542609287742288159667581823378025800377674842197109362230520797079255897161733544904393194141399415327060140836978886694411685901177053380245376063318025685023270594275633059860693631312260724008291806356493703654741400500534621169920301855012349082642083632409762131730896973784966309134349957775299854589644773144404979237990202693914096612142964801271730663724153762831680259258642948079528904631408973060958217046525326502379357449159696655834571094428446803337344807124164558011044951037042792143625089512762468334584233822253591875401720988952386530335504822641151502014066743741783142119722466357369333320087171027366763795973812090313430887296102087276444541584319198234090715387683913820741275909786386533215726020679717474804235266781458922697373101760718263222974519705469611150754747011621605594648970474964773901401070087756899808783508678549083646029720076700951291108155577004245457344995099923926752715550134098694505316360917075074967451787836240938520985846186588410542288435657007946805058290874515938986907429226488571942189361030208143981387841534738789828829421738208582221209539980119521877320626623604197680302060909941884371943983659575203933671040743261959632848849312057481915220534410216690750952174812025669194293094010998563592732697377974277032962935909705904086423513533131720679384687446866317129772714252782584556883834940825922321802215779565752371920819060089682601059473287644479931271848032654525190181021028155719141385630735587336150946062383818250529337676732430733321481365364276692375553434585198880802348445409673302890696404537084440959859090287053322411903478042819973926003253783553118184093930913904749438683332350557798979218018954002894519051993357587317565078058254070739860377648149150874399043243664186865226666624862171035443010860803589522874068499313179604094528234334928628365480566368001296482579082630113871572468958519599983438145322332408112350604376842795882055904604114431367991269176874774643293658353955601043161430859324358654132068013936248811691978778975757813009046946052366509244457087047672710161361798059341883773404808396437027088762057431172301023687209054851342479954003407276272081818335103168802006869349510324610857120339081196405648041576150926213234441500340051452549592705228978032918451631630962717669259330155225378826011857266639362337277055864775092035869818802649770197491666828498159941500117851620182142136367796587992199835534931080229431702004195286318896148027874987566690042588905745389428509177990249796325086436981372792282315181697268412366337535725997843121816615591094423878933813179520073547347457170334109749395029561074996231139523681737193036452204384182544336928807185856351633744795627581581590749102624889270068202645204787984343201699492607337432246087459016197569034844907443451222254143280319182691742479745118512375386888449079550020592858741284994878848423842439699897125394926644956598724651496884434341932328800757410785710740719838044518896545327995951484145544483696771922905771046337453161761704681681879213623433366668194222577459219779928304160707640308625774520896694457090997774079402786646731881507605163350138168969127792789970665266252347292426933221585749876012499074756036686173541142517276802368716266955201162378698854488374548015820721314168705042051091776243321276540691241769983517652348990894876138839206016456697942038469777226001370853465280004723748612951806337731693131754006653113270487209254729999521603295857815859502690897957019448010201668434634412379203485182749544166163231321257033725596368930358566649115048082113415104747962388576313830710371872117617109489611983844892300007634820610294072500917362619775592163371632044322625644253393821322341279998220021519679165676510690592516634830220039179199552469614071398932012223486509895977506929959947212087102791606362670240760752630875352393199484811142540251268247590613905835790951890098583460183376759918473762145898417265168435582395089825644430881282245007615148151525927065409649964853608286010699216286331225047664373511889247483075376786072093220339729238021986757358541224177009924242027886420687678940822664857339036390534344714444100499707695502586503937563439893777786830227545052536301038526584625844649868909427500121021845003611057645148239673963689678920912074437989869600316919201369213124207665274738419896052012929812758638008345229636161209667918297437446079140549768938081062168455528991313889336553722617586477975597752139650329971322777022563883842427830518148014670270074771195886768042673627093384123505746261738163864538295785432986801957361563126702232648293308744007538300121815199570270511441826897418995779054820817820512744244694484934011717665389606152812379112962098664673648994184419217924730366287779068367524183879467813070738906926416123978868464862790965822743206073382058848632736581719837831892993086083566084393784028997134189812790365150501607275953930873644924912859592975738807507232505731658599189017292861902189190622448020829246619949592058973570498084598807192963263941385082290402490173695019431509199850583976787511760874965525412251798112276497256957208646834041212611753185177466016283292520119048160092980155450122963225043060360883695577855484024367326544392462442902880825925989980416736593797917578605988090738673468858966916520229227657453371723468977790116428298984410235021243089902233575864291823020736550255459652415630520601680641517355808949089229594794623889241101171242180341973809493493958839378769412364827620756876030396302707473594637833837557408641955043601019081791674895907023135620868323252019004033198371926433689782437554120086797029046598770639035978225702681959848089811887946945722507498474795400601715236177587020533511762647433947133871878944016507347027579440683750108950270984415076969078916155071334215598976224808321408029120601560195162789383356969016541534315889564452751603488538748498909166808597062591008535369633840193019699281166083822829867457677334987450464602678323839436766913403445146985852168209627124169983807495435033362125998641118105050142872307451222676346277175910567706906094653123964045030994848574477037749525031376526055848968097616518172635655474301967946045794579403860927872251963183520930160141514953966362724517712060513741185106962673695810145752269069733880138794139163160058166634201792418412622558614220748252115073504635770542518876165685835909902002973364234077489802877442997785202827631976018665809385594414287102071819278433456494745523379622219647240791500854818724966145236307535026251648589701677984262596723566953342897829776029604485721044994470332973595508138831278150857271414503626733529942728343887973010531617517025217995700951252304867651508810361098884268499062660189675205041993354959859169602970941949244713501219103446333912320483020779443552583453856215737218112420354280295271643935335283314873430236256577017510683716403401775301726838784807900206375409638391786871854949439586886587727242137814103904826430352026376905257220191152917106852279827432473127732501499827666728722452979147182975268439177836428571598296308469707263237658591163952786571886696354376920356109989520861214027877488301638523620808389838516633017473305202476703900439620441639099556737342742676720261328274298762924547180989129145811775219192397732739855575557684192451257205826607956163613704577205606032393418573195268796701038097980524810992922652517772043718952659313319214745611345657239022437633518460086562433874656202935836783202879347091354735183350208969078896181544841674051150878296794377223513088681649136124317228768151968518159866351153707881532121918727414450687995209123379011913689393055806731523800072588272046449896264239816813093559182889310198750820623623936737866611444317259470202641386263911111983198685792412653555548504393963140193512575365367124112434952253107182966658778595144117070684606672954552698395332005085274842944275683265070025558300233132194807930278184145721027565598396965622292132804694866807670782207122757054679498881421920148399728884042325540572814603909857013597507866054104791357626760909277816627648645819014671822046288172133214069297996110715026645195461341143461632154932880873644507088033564392926951282284225350493740931773593909531270215612750738568839090379780788318039930390078025737061618454255059412607841391467036428268964580474063771703517060205603835649337488424718634866673264389678119996224614721446213396062665799493918119184560989542851607481763225038305398620954078932139483385123695087546115446020735531339197766886059551919857081895504190901284883491305516005811059604053967665034748433744297914147497327392516245860557706699741574875564177671789204544380383819288057118677584617205932747356673736085301974170511145205346594622306278920251817797749342542016866130121739811291554934080551110134392578947044625177546260465526040357243166725417295835156127717042370451373635645704944447651442110210839441097724911331325942726063828521048734720531767817078690382210792096145427337334534771783797126530503380750318735262575109921339831675819160381300836065529283701552892999848497543627146285228260136950711386322817491124626968713359095685451951958652710851359252251143924963180992153792350592717394759816083461715741171777334834979385903162760209460885826739650663223487348297315038884546080127164650714422572847133211481037923705816168184192287236568385904126572883721607673732216812726088859478278468253077379594449234124195769173195040023552753592712343675296953192691482187018283839316239229216334691212762792577588765758637768517846662334724879669769661600797641665367396454609783988654884610197643972491437727687112384648812596752916873409881805579429864521602829991662755219239502715837045370896823871440751067089158922665602987983641423622831036240914627004873331990246276122454558608668382452386729088250872816552490478293951436690728946752191466317921561101689445449743518697381322420911574973944607173778523847644573176704283941968382373522710429473632949536742845531943520780543332225864414072889292470765638031158868046269994924006319417776294074702299508133483780196745130036952714256337068209649724653031722750829636237246838619249466673957341480661595362112816655151386106086930416985029970472505931023633855852979573307616929926106938666692491446390106193848347002761442603910673091978815441907227370359176349534388794225540659992214202725184645904886351857462079432188559676827862721799608482368569567147216922106962561361796548376218812185483705034083534028086920501935270731580319953892114232984418057319435308351437532960264293998689100173702315404321951939666748763420777234526477232004448686120844107507660757979551328549943169769662659448892977922560284468049046403287134539217772261274420284004556693149698899594681744823482886428270178986937919876639014364788542911799862876813465344961028564998347352507857589722199409897698787437459555054534922425028469600296973191012077988052497512639946195287142316634193694160720021754278827110396738267701806245608542854301283547360213762122796917062760056082474763216153099141319045271434734315513525284610002567190922444140891642921838126788385152939571015244840066975425210869783684719936001913615418723142211337231346514947235062859050322882814229600935913140204999762479833091403224310975594107930704457049896433293239224947087589338235045947750068091098457941873277081894315816621170988125667417708168291240733435316484339108153247827351269094951263674800397729641844687749297849199786942658812370867048969469766564320736727058910201658557450756805834800682143755407536623149648040932102159485109579432015837429170850769004556114662263576513652345926136992116673123172120539901115303873179377425840636376853223736232223666811021271998605915730303420614880377762113172443857991084501086850445228569773546215246690615084372125468820891501847551664355416405328192313396924940060062438711525179651640502138261090700367074567392179695773209686399566758135342501557218329104858058001042194053310140258337415047540104166005801206734536454201557988502525777730567961433588512949215175005855663129299729919990486676915252978196308175141562266465944169099695845330298760015398089596754431099779856614513229376727551888997493446709562881133088088549618341284773729503695820432621487541207073993446827236374468017303462058430908080207955482179602908263916300205641940948212226820991019189720910274995266835917800927975163755243124485919888484592198888685506831036463225871718007505083886031910145119770704345801477241315187067966264845030768177756327315625723439530437671085114926943621928727325637886142524022079707983895288412896747986089117426862004763016858336146523012695904065409504064961983117909719126954364682863609227944626785288965230337332569480633140554147439199334923439403402063560698181857318909817682937084857100589924383766125684543810328235065900822277352100673875462549475579424354431134187181257333494205957042025958511498611194336498628220323595515606364425193668186962032290932463141044731591242622870715737571042492937995525728770306044836618633234174049979433397914144781836022047679917095212905810442732381768849789535015216193915337267808347759615791891078549823513508420419636027795113696204513826792062319419977088886569492155293230770730007962195473059896214492585337528463327401621373177941443142225001995077536589869011459215252057367916289630940592975865244833775195181557016053079784721188371669067722834962120512428460283046004195627066476389858136464905173381881907116912914443654735172452776765271235152247850377677013694943012398843665210551488160910691723736244474419596134234181905024454951740903548574418735369656789017788686816305302151641313077100288337993846907364387998425831475646748667571884184724445465561255821226180235693872748463801276675597767691753179240518717466969936703023429692070291013539170787813749506151311007046659780185217322039218689540528561288507074244873046297786393609081128260909362153078829982336673552475630387564054164546547775010898748044349530185984752919724038922476003677473868164761538383925130748883990751067874910130390783615821504314684211175806309908174341730050020691022295452203217613134624735234866257353290677134883978469654815208347424737005070104346184144251354882496654910059952999754038558237201317701465569259728270610446282933838645816116026440415555286134199113150207549343962602451588957616846087522060754686237244750279296857982879316560851942897390301031109341703117985729792801647783253093243738735193119300158778070258650756372103241307436607238274214778954522262382699029402436676965671174338160398316209844273392975334858991476677758402195005159477594647482282959832601284230886445441247847800899191297170038313937032759009320683457791522877068226560538739406181714151275471459932361763419980869375725266663140141085053650032426732189176531576888887035531608068500160018888354953966997638513351202439816684759229938477772280956992194901640259956757923209230143996934150698251041890073863527667761371206101316227775187567794258646699041936338398832843989136040707564562981322602117632672095530416530584711790614200898452516966958412707496735763423592612661550137992618524275020493298601437063933150975669091871182992564757417921666462399187139636186099545635995956123267208943722103597415966142079144311325804828342905234682591011161255509948124776686211347690939018311160547982742058681604206002023130705377796292123050253762438425961998781599545069417191834482657601347139828983239569623871661605358234088266536256888101779345021763048247907624745713915056084913191954229383209108154790512077949353806273333256342482332292309970967307890955022650254691755651352865527567942227716098974600894261545725006924352796151148637963829983957606082785865780447365900755105961806655041035451461030743844446560705584483190267613580919877884081675834407140698711750142118382441242521765191900322678724376142204049883676462881318756921239656213521887368678495746080556944682135165030918931933044017811107564393140522471083453619757556632317744373901511581085839671881172328027784838148324611662193324522608688994979942729702086193076478000681847389936444071652124580896295121467167662297957311629521953793746146694061535458944592205452380361860729941731955867723387841420340063663281307630538573803564607707190300077435642321349010000858382457713333020749053021769326627773321698234030821222460460682903657160885599224685633990984497608892629608839428834485890687284657298115470861480908066810399369087542642242175100201631735254170443431376861513084029715545231585675500241790178251588255291790696912747830679076223162778928688708871832184664901758842959533187180757224384349387729433498494181894906052757409093676586124740671697052236690247267771559092278719516038940727427039533692759660099528111746187120741265301909350037110456989798607822318355697234465884994971238724650586832344305426837539731940495399844145510628861346733557463031135371057878912714604602764723743321209475207785452407981664586628248579815444873127780069972335997387771420091271466954166619361740458358028516999321696466293180402919521764339446166544577402389427566298317889330831871364432944910546983587710501428541382644754783895671482749075732348000797920060778639381045591889295300332034754022027314970513217714740450236043402776495576944520186921960439760074453748979008201428865465037383819207854411928369150763978368810869603285061319533941390858200462310308806348506295367774484342675526092832463570962369649801465215557448046436064686198973050747162383624952116303857814314835790218674210342844203541491597206025885802972982027254219948276715843905084511277449415036973880276215925848310280997128255688863117729865333611273229369823811356547109993538216225943342139628657055323991069977597047039682095724376076053097130376639906993964321965729403658339405351542213881330548913147322965226920177553098241943510429999574072271437715101116825462155286417336930791383447874290154233009681655210814770000437273074587390396048930628206684985693445819806454685799185408389104865823815086395939534395771104592486449763909716816560350276566348109365520692746087074331906919862856794081011950575945214880761588811885752410739069205571123363850043201365019183605050385257802694876307608047291690729157065270796645129200085107409419490013365093419652854333974912728173488440645165839328843398940294264422935389973776181997631864037610864662148819770964861668702961080944089547810112995472355003291636365824239928295943433126052077490836978271016128259727545605343819902849361743660697379695327271408055130109805120495697720659573258902353807556399351828084565052628646794959362418430632477728745328793036802495764884638781687392994166112378749063439791281137912100609985017160283700079481246043017817602394277078488344679801799500008686855767065725934887576408635309410231836644202640398024927159867111743507425176533314766656045671480973280495861637136146303482082890608928771868738682580759034388333127128027647781112775974671663474281676566138798974729656956913674460121930955882128480674848432459063063975668624077436152303876744608767201921775159403757056593826000445584764686021586079793703144384697830998576705879001564847728745648052709359067878166359737197896278840400189714176210781949892161511936984705446015357635292454176741967295382033257536581432184945678912896799915600506176010313731109628962027729198029152347848617516604766074526243956576085661612161857437070764018659583463910296935813771767653542080195281569922391183668329415460688022615843101445947384448290786698789415188848681328593077921299923882695137715770430510620781506604215223443432129194603806028081346397075396920866697042336475511728276746253474959197663525421367640509479233906603207384338659893131346230940640432826610558490188284199736615027159630751543642507260481669873406711621806970243172158566413444111610067540469058861315898381577193471168896036308679846306078178457650222957745347876896991957692783532928192790431126449240367814124672807004827833832498524242443217928220617769424493979694270523424607815567913416456105049630964766592632852624803494173600735970336928395383387074605652358346628964242884597299776617515053199181955902301885062152813229431709168809817857707089292703782187883155375685564600363488778067231370276813543240044825828506857694602589811748620419663839535930803171148002475713554119132504640971272989624045052583971800168886018876962488645031507550605006824558092341061432947811907598563592215770343729997185711524276972882597661714782053224418691924075680314255027724811594499196718466226759280018636670705807120105816386659393535430311921226793537192472319098424027912566865015156601587160547217987267043721195664794761729074730860176245373677911184899621207063290939287906352756809475087819894297506078402070722582990853453548605341089436292590314299963288250169395565172370677103923534792057339452156316164861710798543848620646072979073329940351511010328811196515417214007744930405487382508120114147238140672403169427911498648222253778049955473404662704861508225205358933062430208665776315695699496323267238947530379610607472514879479398410604681121434856530819110666903905252765696765243135936018786164237799764375864017421512073315355107787776605744594664898645608435881667772956721490628221190455862047524229102599979583186212461825861802782337652205002001253016993314387259430443871015116052888478290357687110792833970997877868400590068259121786053594225557313792031260841594810901283272717514385325424390171063957831584200660579192474215748390953058579461491430220603387635213105217269231504596184487699830410672463571756720647740839010263478854243532700456819850620133720383478567158857865580908211930669900484486078277331482482949165366477333933429792253289280258976490436956906723176398991368833738401686758882375060043244244423309395032969536167820432061315080001908276787082784219229412515626822698683418814712546279619067525231153362751827540524847188499657904797039379023545624476067623486514322494504761027077761831472406826961578396545276603419522554158614047104351160575607386893093280398531962946892492664360693691896403947577393764010757266627095414244537131515801689387632875156358519429346532363921674900946208146897431265773611990707323442759097316123756109009297029250549329506340106946755031726706397560481445001112205596014575363361185621442365169403003102239919027582085568973701472793906942309965423389047199412449759738847296383092373833501147458503965418500785847652741302963963387655481836629256564755662768769296571987621862093684284616960603909116338160099556718634463292226585623026546461033197286457064959149951405889115741611463773388219068610986164025439810300971114688383452930548136021892085756331052553940421725166472560763318879150753404729790961809193328981430604499758263658331663405849530713345125550020918859246137220016229453301582178951741320910765885402286174977580486568984274982679375566775654651081126370531843434669569100861926113830875828447191010568240688948220995181846501295696538965646735298596440210681307647263493678641835409386862842174671594644280945464901231037946185141908824585048403708405457742526254820336954414068047723494422813287493037412183790693646783037530356978369485234328305718320364119458198376238914712858891257488417242471281597390291632714957293227570668996792733208323640622706674258559412606288903136259159623122414625097466644139714392819552811793920663331472058094014796865438439810258551422061573147703606985219862874725658091341786613804630311055753210040244958098456497963851926686205837334039391746604621543630791042805283835195424650061229299658549609356601796871993057926966002234831980701840879843454587042672748789141524018412326516818861995659594738948964764199123029327345831139083755821833959680632280717925962905127828151177668823803378716009126122427090640410922219813110172179507758310084817922222134526645970399504507965402655204114340990160493700133748556428480553846864111141170765515321394010568356644419439605505524598051049456561565738072944161924381293700371962126815202261882955637221904887674319166066772223583755745750961086547978238137363596858739465270349918445160308664099313926417428184892066116419695781673847682370882865999967370181289737264589066007409607364993475460433304612457372092805719872168721447999487004508274230762932647375765112356644282287955822592517350429849840160395606924205586198568459149939420071622939476071136599441314645358440453878535352096572897336573193708047598485272279651470192179090461800337622238199731158507845445373791242938126983722147869704425438462801268718799975232266812474571935114202411611038547145518777931505736727240758017317784020443950901549311252827257813873176541960907932481145613047854266158768866251400131740536742117499497421254026511726194640034359148605539832688282850420227262498123821003596718687411769706587114754451784422018113200770239028292785014616733878437960154024725949411535718534321098672127986206125488250110581561452260852384015540591846208433552473061701714575265718100862284856243435184788971909180904015878656653480605196255858281604669852540647934573622258230753384353944641907848537825944180793556256062140158355974450126820413208480534465300642888367980073946772919683137326090949912499590319791751307465633856746412073190220530182059663653839328820857844647975992615719208650751802472100864442662395735870447101455219169798886503139666061107691478652580030142935611600200229333191335878178692163869738725770642188370239066408859163826943987752075303847441060864134076024404729274455990159465854607465508060861852854903675044777595225959820772012517056006355928824725080761816451994247822797510996661534014185688853674840536265392874396449247177432573533275505386034480260758403736653391104835924454864214380351603112777585311794654693004913537315726783903645124666235409451659105345468369086099791233498163473361935155447292500672452189514978518941174351416078443779691457648456424760896219108405704768508125100127059647577280282269840045808123117497877444564979646999705272930322700095734883045392202444892724855833516911177449049131410323805818429472536315718051850491505775415521118516842026907304036530762822146472189122525099285785117251305915353791746099204267044962663766892276233495200192599237789257473981627484235377950552400093203789769911109327328023161024297733260635483359289174146514707139804810119964627423618086850284891458204340271161733829309698827675861733050585478404145080048108708335152357881673393695305046301401249242907625880784321715105548378732778307944144791075651487110432243127053850417700117178151215967194420115298577576356927588196987235431369006560286633971410531867615558339756232741038375966817164761829415680577347765168155811124412477089228579681626989768744717943240171007138557507512874978709746534483995040370314237179753510691070362231320617472236395176770839856661230448557682771874350785137469291906538640049740121056107400797136800653910704920501441323132926834111719505732871772018571531030465735892801353581955729981019041938433810436761249014420866965779038579868468692554356211803523425482838921121445497843660284100056068546339330015382413384221715627359622274600359820909889080568198457855146137189431902816865506560855537127114783048863301593661802300734165900904898988506399496123974306705384476851462917786696625234848679060538613867821438520927843370289041968741014374620382196011786118949915200443190956499946724603964395817680986781438005560573511376283280878639848498760814928008026793292772696311262471501420079763853325298850864451977077205475841589156305170919496184639043066141042426110265810176230950181857242153535575032136628518574893087796173742727624907357311945949219044985715112403173532967743033774842329599114708299011652660732938330644129930268239842134006041975148122856918420719201229302859447214671505517081850775674895392393688982306814283524144243291976897750054790593962886992035420936027368155502920245671261229636085571253078756816476423044475079339785084133723980423414421681486322494802320659737828210674033250690364264988470619108221590926069886778902432479862884786326891391976147384922246482707572767836003563191740209245109441456151687474982088263666072218114758515691589671141267301216461652674422561201098281375143742397623153564728855425136495414164094149004265629770641476625503372151228053793681896441053539507605547618069930767380670396764910226797149385663378164081761374414731655781791369348605994353879718378613738193152655926286080816140090623704146254944342308806367495318767932598057277861139475506956135470232640627314976549182404752444142940411065276363198017449060671163592765848203518635900618157189800138411179058389151954754846815579933299743283839284016296591102076677316897048515745572746369396630557387082399895430245066466387877579057657271347123433548971373899907752321299876331491964113757261507862713735005862023015632354088122171582088303068802711407963551530698977956512434478771018595977361443540670526414389378981805170623601143972147658069823846657022530342508709025110502884722692824919797951480084686321529021044028746210010138321902552147110709099845417077464457206413291603264928444525583474602836217992716884958040166527682749000459603818063620311948573849564597200677020944683797388276742643198510620295225362776285534845751484657179720861670382078400003489863737885755427168213682765426877634229231187579340787600450862342678737872488309624224571576200444719601345905665516851497336619602329033050479820822886639378561737911741104028104821134036191232706772107091863877783434741921018383986257242967287211629654113041722124470846373571437375305372051086438111899210709301417668930627880236032768867785782447958823663321082312835323320786998840230020443429626175779181525843455227334073667529372869941775665071087947158783679893017625143251717400317717409645522016229468814883551043772786962385068037098692113203392967865009121442861455960439570123091104083546603682216674252754562912202087867956821871086143207006102021948991167714134046332474049991280022811235225152839455168025344250767710402928258110928511907119622915865642412082711796194406116678614995598676591755740131110985351188602373319162275118514022706022536134370365750542323888027471426184337277536532687524125286466118095605577666562355533646665371284101029403025862793247211782622284221327877412442097180912613094456150689953341865840451745009438096072665304209429309712419933414741550536895817780474608008169162755906343766059196620211182779251245332590062182432566927607822800139111479652880737566177518300051181708244627112414996184635982480279765562713215890464872696498124519802464933657278359428606213216788006165487718484516308267837069687972765155258679045650938928650267572387444857297476272854386212956085078704394786356301760580079984742940589747488515139976608397831805558752068521306878345196378826506272667075500026136155874930167816549216134237759910979701011032852996039509485068242341833025032931032195369092728992254910755743138669158564256820726388164088532011114869292318275274090183404919948035424985825405546222642618968554433161945587387436242959500628015049923916074052243647972611870810139943058765122284201788045029249890549512647305976204735831102830241015157071912273811644517318447250693962377404100981598552496278766152417328334290424074564050277575433412303484058969056000385089938301045741042798450699982239550074942205166696488500959343215648187465726203823993595990139870492309243152785886295024514803463689778818228790776988525397073829828451825403996952966749382620555399044744047282760287852704519757647502269506527304791427059894951019239770242870631556667884442307958912854541101295682392649690643397420318949001823103787645684263632662190738335391399527561285393123493504248355817186882794837686778761384799767602492619931026056697869038113480339175661631201400507383592629073557219358200720118740590207508329705772646480029817145239007887007742134762192275242649162654885731147602849360694505932953507958653722310015146076836992993376259085646381586120484225900865889542385765776922108038035986160113961682757385730984769833908981040771387149971639361060328967692229645871600329121999202803101374815647030184951168239268762108518889306796469058540373326273557892400829132499407845291166879882199748633411661222760859077790851189009354904569355004893526185620431537239752306987542893701199241713225759053071958933444290028885481449849423725201761957955548513741882976691511985912620139903772161132818525054410156111550656010520932768942232992204048640053194690303451939647960873923576750496735547609325944325007204328027336782552262772083880078113331593823255279807515750078239165615305413449994971456057102867574042973204090856850264702240860740804768926586482195313004605822571251084623469532352824295663202128799367943820571419134038745036636655856896248759208372085596456554359888511639538660543570499015283843005821217779066681277650332542152253445664688983355734813871275029142381451746938318514257715828752902086193796918860901785743269321218513296462531653820851793215984246749853825106901076011975933180300257260339100651701264195731582405364190542245959790920077884306697963013127484149865373694071893039155098775813069188844595004861546406400993376682685410219189256593579774235415757026899235895298405742826153443648998987131256450277242893780899493115782238590174145984657031812878983205452515505357539994983195634992618615611475860844785582105412486203468955590376606935793164562001953421595395104912478647928283730545895310824120164885206478622628291527739719115651980144778975091906212927565146600685147084741473866714801863034509599781581180396034105306765948868233061051526606574504008645668678017412280675290420500655632136909657186800438162451501716061035870604700993439507203229412416919757792466466112872750097815695250042764582503649402655138660836457499793472783341008538509306138491577791523549386546253619087378252382487092778332869188939251656350331394652486685356926854985779072963051548623085421436928890293034247182426540837155427405181643253113467289902313777286912883409398235203817906090419596269911711611882350634143941632835695150034117667979588751092776649609917699178721804198953318888446527284316451784924014354978266739764605915502382552676997756305232357004843520474145428075573877301264942622694271894445592868946782222835185655955831659764038363365115108659151531622746350010197830037016306722632332565012553443630515856091181141173436842487254063955675134040143941215289258503917818128241628477457853676366795381911146787192023862574838955592609428734316720642272686208907580699117559971968830111542340675303192059732715706764060709005429272754045213682589010223621038208471140038097548195410769093543982888736283524418907168084596596826619171443450576172838501485999906832891017105077588110724231309745336728219829467965823551678872400052252054681940826154130475548498932618949573571256872208374918235317382252898520591295997729938980410376244726162328646542245657406879928292191039132120443801188800659970707534069420496515473850682743550502701217381786058564522898523118894815494908913279810363603162296531000409882681031882229281770507034256417475240104273764262690956401574274636942949446802955641341510266251382065535316357331259658347121411681209260521021643705702418919178340723006961433485646905477101239498915390330936441841702228492144769717564182913382638965168210933888165773200910502511748248860775902587292753552834758472430064961388383059882362717824847938097914585772334362557249851429149030125485516032356464977869044410698008582240134760779800368397745634813088564095829413842356221794128201145470058133217809069437047992235574307712083480817229017629898701542154226034845901942255229933222151474611566499222509012680463483342272512279694517073239819552305863646392140399580001423507176167682943870606810164560342422007902664473399094679825245773904238316700481088512906524954030738080499771596801661326889333997855168197744397076519132422332545669474245343426133016041525898161628322033469101001489842041924514007606336126854889865305188109324582056127147569476797695273536103411086951172739284865867927276678122007012180943489560183279171391177678613572498727332943457434051203652463831921210674962996546201929415656491065497607741885546976419504088978618263549623173149888558269395618445147045559832904991653485360573505635713696147321024729759373905932830783502597678224447654379193888647053021210504202152925961306257774068297780583260475159029367007656389497094846279044205689976164778828818125097103615301104313658269855178263367712353842052916529180959248103043483310114591162433467925499619526696622757128989874729837969392119199352888910385661006358061946052913009476429919701808788714097339974157947911259659512639847486217345065701412831137518476644858533235654354738053355616152696313011418666449680824777111600276285584912066021580651877456774091239371199402496801156215632102591909101683005229568214794050048703285328032151375681238961787958559001453253989802122445904093284908574425910344837991552465032128149465140928190711982860867886708473357814192959955392142139721016459040478962128217081089153782133866672242374672378793638801687851958235183556978452468102766881182647155460435945187670716793483637541079688789648975660100253418627043205618237230782290942651865213804726102760378895399829851419458558491556531317005360086277595920778657786710850857935889422575506291757836566622183687251984980031911759558014454424104604777533350436727915013806012789449309689272444127490953790312382650144656323779953534326434785889275157953098479887356617636000107545896127600318940210867678352873716597398256311586594950666459136996797544833139762142175315052231302787853470316380370475507787836229523064145747527176492768947036080031574041016690926886882248812915816156215775076709035335461079094358945616229394492889478161987615159547137757014037144525664865446149759237960791879915853752503989449230251969209656141817355693082283661571679547399660240759997183850050501446217111878414832824175808005385430306072913061229738882525295026798825153660248750676312258685648709620605307472101716320937386148562898496164653755368576047642739390611927496454479275086733901238661443989093569571947647881793087172586050602565507846431854335788480972190766899989972589004481853467208592755727336792417496610527519455058302256028985282502857880656262893112327286713845364135626422254239101736993365423494675837449865172584838460500583960569365769463436516649588248220766131885491342323946193064101618643605173115348596194409124605946085860377457984862616985900134796621582308342768225235472362017133961491470338630881702613703441897156125154807234528809693866215393607325220086328040936413324634481997438496457128291590438831971030754496285170442230272528717470809377871319779446786090097900265448994177735099106121904352595420144651526154020753460455618944559071807446845705862344126509132565918114641979725487580927341216937574527920248532860850208398953194557968468118789641580102415297038271634120576413057624403118368028987051493225073839110589095603522922657598487398216402888931310925491243047045069436948319730237155946444672006326059056532571985291467509739311313936191557052014950285237133241771796273252126038156793076905285517648446064862426940534134020951731187303131675476766788868297310425299230434278375662798119203821642617960518003542683724742137400154588018139505232119691330048051275434951737457217199724334733895764461009028074157100391776074549800146968032651045348027724580722818242728231218711712938953869813832565205747527113641416973772117901147619917717411885417115178196763422643284387812742341997160225962368644944593170101756532406003748915272345247479721026977205485906435177893926879449046133982322400748543789002637861650416020972413717176254921963365566642334255085803446951548614705230761197738550199176098479858557855224366587582175751070209668595139010495450726507124120395087604545888770002595263402760152284460693283719142433592275924955470302107727757539025446175831726342825939853945664225800434737827980335656772803093963904080549566633438175318636291703376847028570565008158959367740228983119059832786379657335586021838251348490714620683425200442182119922489529655755381494117889814439090377673270091424895707585824696831040700751197936772203990414819792023293165592533292637652006030476869849909801005099646232097270995256898044574334458749155730307235592029814457097067919099917721424380418402921367909236301231447418960388472764993027450250682387874216926323884640986760416781952569396427049634661354148840650163996872331244219720917425752369605111631422979766310771164905365071163980897682706436758109354209132192618215414218651575357295522103985129133756346100439973840458513683226247627481590793829160512592494054376534496204474871169490233468082127206844706674033094433858080591639333450835845790676093723399126039031661851477638831024101527381269874912380732471538759131735027492775668402827544381728911863723702546494589082981996340307323567035713392873946907998548788329035877511952388294362872004458812571987089376976788017176446721816528216862181216701289052478117587444568535708106343004609700291909727387201044198898918332749729875087297585525448391665939225463021681306350126757095269262057890191687456277044330953965837378332044992051084151285769512575501931618405678703938599799041606431380516770107885098486833915905825566965598542076829482532212238899271441311878077232642105406995459442273325829924855443145793147187381597280426407871716649225964400354484826741812719813713785287765067740833520520280941471216895685886913695507321318849394218902087319881171593851641762227176460757932225563608882813031806745380078665483428061217342073603320344111758886754763536913792569367803702386703489961119294374280254380049732957705133420823905811390621378104971729695041064837340368393971112985914556310143509564007736188310115535097980443046563435270630749419640240187488715474052570699471317284798765686053077282096144641889955140308506238902331629624076566287585396100653134933208638353845509159363330427959813382136659830184268634401792740425895492050293475490837003955464967255704716762280742438676790941408537324761264868635291156984578830101943584252840705123296559678029156489880022395660033295740008024995086522629360874477810839113270484901532160508750892791014885620988456135558058731845935873321517130576688883360731343707787447274372892001501959844725543290088614690444480836996846513508925764810131274467233193039290700172213646971222758227440425484372999545966077260312832061681272834735193845841805911119392636004652410212893409412301487589767590281129089617487290711841778624131591931439686899456881835258276773399196490964919459126365660151843835881010114800011648664716736619211551705499728847887578577757914617253563342422995347152610397181089997604195788947927558365398760411677742016987816814975102806638619455611108507463797230350843360480998344190751375212644378197396766360296931387834393940215973302430651429169486145365929440117434599092934910069511630265988978609209080876102737618388399618957878432562026466617639264620149336853436928941704205089839125682951934794778399069160420523875551037417560464892346629253451038945299588945810524045244504029075991828507939058475102754622918522851145339032185342437836491718601730490153293882880705359201372894045276437950356463144426544309470809243026651494495766663860371149419797541992714786897495589302722657170458487615505517652691573378018116437514839690567925500460771487378846935237773715294692043562271417424782760566157381039600984890991189467417354139934937290351868189749472281367531546553921412165011115962613824755536998793227918263161502823075130834861927531823669846401518593994828455937223172874073946641794275647753277989672673776654673611361454016703492461799244648586548489696821710688219395439751639613653347032646527211491692682214703906929735793713452805145210512870716224243348033287676699252422361705504200449142571419369634323209121003200096361525302556867400637230847944634788527707352956542287070931837557765754648313388419997539589639004737556351238989527762259900843136506796162414969995001915449116336016329130251780450720056426055234874015885839442512477760176689996445894186887249353400981879540328253674448650385931759574112700859204016816504092402207737939427202744877965781844725330271061762238164767588344153583988691773970450507738859094244968528979355554634642792074612723860079239446372203714986671991491297295918688079168058998461534041902503971244432759139467314067399909197492143647095770799490784157401602391866424277638864256240481728985983008010819564820489714438792104051524722174666597699153216670412550268742131824066991547997397335820020703082517347414337570123848657576506840402212166641508695684189562970170599286346776642984016833740071728805290668816075766320039921543258869058875775105970638740682064617088237430318185849644453430997775576165757844407387684037693595754810306477712156255235380937586730763296811618441357199965241226238910421050699612854507063816573484995874861621302802976162972727692706222600810811992594833940062155657322848337993646836605655906570790877530456950332552301995339225418015167498121092828788211148255756966179955630852708938030638294284507076895693056606484632053653339525907245527277724431070854339326403601231646880760643093489899796899357203884630909599340574863958571689344073578334655057272129040871552302959086928699371312196458697705494467625184145123280373038727288169709965946632585948860428313062411107641682723848976972248945418148867128342553129881201622431712927006933228815012382529841399422538152972056188126243139911276130713712341137746737840398922163538457535171373468076005916909471358616956042577803469812153882020468793451467780763216419791531536256499810900263997370092830706811848891453490590687858786171395095469977027067495867524613785091062660025632605689583893845130081268590241458569155228905866229087431119052537331883048215697349012419843810896250272431318874135174667126670014881237811048606853811844331884201088520394338445374438874937239953169188742794366505550314206470706603449848729927317396472189379596752850946034943877635490020120763018907913691741958897517590889303440638749817864733095465353038948720165160067750875589919903415277330544382142510338177825949996285697980144632134180419446743596807582953508485984990922929964589870808715704611264840741709424104360595728128714203776883584737818839587344341051708791747313076586876558090042115679977490071450535577957100165362934141448994497099122360200385881681244820363568996286681794352733528220730912394459898329605191114410871960390112417922724003555440401650519892650113348011106289155279566129096937775042667126632248931492060441178470417122351105247432650772741774593195522003044050795341047889331086363007239186964880925211431214403204734917260754893294707520095103396346391230246904984300573194192846670414451032098560351804609345258171313232009205143304821288424553243179552439443939141952919135960061864233853430145057204366867077021918811606254995085039653502253188847053795055084753612926767327336059322803857760703261843761430537157673415949459422657748587844189247582329749775435670099243717223404157800924336468196536937279279715945526112114450847127903725532057030161277750229815656902735943994825346875428107002128380286921825167469176243490684007678372923951230682478575430693941288415211621566840456853061633731556610422389399674261970820267753981432228923776458511722961227112627382320772168533315606475942298801025951125337510452381485146858996365202256633563307356696665368870220879233134451200838727035669200340564906013690446649472727943987116950806450317612248467074041718593656306485174584565373995793491318059722155086373822068043545171226776267452511454628641443364490741805550828991679832020606724188381814006327481435336784748852326269960520872603425202672924238232435003071604047720035787317929951500681266780667375624060651912513165003927846499906580170888605901851407768600215639479007340804330208023662755034085999076713127451593192025503435978860840547108343618896799007472483075662080394133550640943118185373782530700720142630049346004168668081181625921349631370624237689795141656577751447839009121133960423397923271524963059320544338387980449515364135937624030382421199391194461283153842515403431154645807938862018608513835310392445908320683490697835822138773203953507536123372175069398789743112991544702710516253956864525759729677826027015744871168270611595545227539765200236414223700863058515584337728400630621755109159496575459680551136449429305138156594132825136029124900788672921426906857736610457795172579771973671763706877812936301290279673120644296271670555098205206622054377221433171672518965201488270300577552817813359697315115934767300761791403172858934730883582644173205692792474942731916345694667991464449154927153858157426041711705704669477984536774081661730419960685568648217567898692983999258825744548031446343591882702919471875779529953165064856173649892799592179554180609523905044335924988250102555317442638004736405839832350382748472216209584094463614172651419836060295158025677798832669622027847499175702500069597216306048718768099611835779185471795402833393459920654632790165820273778942090670158713306248754259149535098012811427662903807537224952814439553834726862769791700181343154199638260263949055002585939126365991980422075073106132398624276729798999194738296566468983585582885065764290493374161174055368092732152013810207519602459545227500363242356573156280970351777978862170924343062213275924273019513092769340476668778644096466666489884377464871589500321824173064785914808635224483512290641812818790931874757026988362936811001430307468580035074454034448306517704341571468725892615989465524714059520333575643520173750392869028772539306051810803951412365853240352833859146904312174360351591226240269147059951106469837417453781478488292901071009385210847463787938864961329900820529952318536689034717921940822155604779592137123816883797078919229778444443458540056614642003721448419572632703209076639554770729311900305917736253151371899369015823451919358827718605447375940755264869721657827039907918157772858890831260183572432682267519022335004731989427142646011786351201182854742511535624165616238028952032056179842847917152597896507194235434129812207334482207990509864365199616276413248232813023063051476154233725809895238241089015344019913773962080310409178998323984943092496837174619335139501313885088280627355246701080680882201006915654020023218319738861104388430917589194000887715443833530339593087935809998516804694102353780929465340922631074486075994677764190875843452871725155857840076345396671994059187889368372927912908807266376558667402581781278451805959231210969392152717665536423568378087009449516658678060918237217280881976154903473656155500314930909715205239630535943299480918836585492211313278069828624100599625315267322741851826157386924977221618019799964986962611322680400679013004547022980374728731892594983317047496264711096228706011226473795886516643519245461547031578832037411070282047463317417955082441957904177401002902978236358528530228531071665344879744808173141827755970086007410631836199594578899993169903893921463198762727084871435701854141176262106410692218589551033131175949430903828991868976768195829740535610138228033748244134143836476305053320514176031987801670882297923866694808536854288629684862515489961394180040821177565639564922856832245027259667704846722751965839701476004828510451845828614321878923129843869749206979024337760104879230873524772528939306292183325653808095958078904229429040659819379474161316054020538661822093819742304210128027753421317518457428997868943522965771069298398320906271304433096026740918095702371281438328308147479344238750136136696219023166908347235353172167544570078638363099173127438262213924048260845566669181865730018702293003066187414860031522027852511140857550260354379788413482911998052366025065509706477526947413790252300240880838526287902307791912839107987873652909571010623442088789951657595891424457047138219139827224273133880458087374694829733040752483475837847663231272127341393784263148931024175262582100699404248943347489833296598866084916684926147528056529010907124709627520048258800923584887618435815034951840801918251120763216027266158339700842234115528053250532322189710986666079165144110867370641721127225034886663144917223418043196592238628713885988008979413386911626858467542598107467613445006807918415720587611318628990158301826155623401006511730952982165538915622819427177516033747352983928366162205123295324665056020869530943186263940685180147953372753012626668258629718312914065484770292539540390823944633719284444959623743236366197190946850753534812206978010023748499469703245371062221433093519251361677530439291084161621571559895493935671091458884218519678040283630264919204286910113052708369260568643544627447950798496047208690863131761733713786583721453278472592921463970560428530776596524589702986068892239233434156070509532546691204357799794440523976846397284376307974726825735625511105155187964884657003102502062852010447457515886904877156067073574264153665932545800240659979012652413825763795180108333218384424765386153612669558258700272193451238393455170928029901176650551080467627632075872216011566397865861518691816130142511541666344814389019318546832870479903897551602303748656929273525584525851028701392504376114958567494408079401844703131731144810489612115317003324852240554987859029395466942136215007096056554449018335656199463172857007499575160799590643408851509861166817210824840825377347885251057076174063354214785567597252313838444519118347094488570512836966163849944650221056531930224262064823995365791054199703390976732609707017401007012586173890525783390286703632608074781909398881938755586021910944601428905102471571415310115636693192568293462718762479960298387421643963279343741256996259078583220330313166101807948865383599302785766350188560920176305569918746285001920803216112058341658146041022651634064734630223635359656451870086232318592293577770464393497914400350454404378401560978916107397580164873642918166261826827747781511510495571312878656195576528903873187744215190240001598836460661615028878592040283539879903782425011157262955723741891605536530473165180361777508868506483571894465596579528457804648498552247862792879956898017084627634402360244741813216596274904411607020555424372556044402306676752309662456833472147815626626810826271774117478970179472095157272977347263213828039455488046893372489653432487203502715962068450691634987323464667052312469255866771593925415882474254276610458004219985684637885581823391047192904067128692698889800563195207936415653421330516716792001781764132167663421128595810831250928943149610666964602940048563582658814972739229505383745421321985433578423325793413353677926453824391847662558433475231078748199183282281601366649514748029512466520571310195687327719751411243986319782310499001436917025940727735933716091238809539003009532152691627550154022167147690030765490617360345510135724393687226026680345584389921183106239406321559349122249154476873928600601253397288493073749806951760736610575523771754252885080596570005534309529448996823883681996635990394171499295442835191049164005393663053757761068531873502136970793667661301165135189251304042397950801719275280628763002680966408661736129639227312652288731161910469720937435939840163977480521134899902714935279693765663452657105270955891641577305830875530715318251382735154523212576891991795564021503795862572214605571076777787772635433438826848775280096358094990560252438350700513755682162904484579302852216510209305392459608616486139846556442908699515848170018019318061834272182497379534640800839314789642899009739069804308875456303363642572994432491126438932679624616948875687833759021365818558270090490966729291880781588451736865677858018569101252520925928553075300021626782331955012461663110892945722488734728052486959553774184607573888449362824942585187023673293093764217725252251813526235925448086202030097865501295552346669776038692227481248426030703215776117058948584686958835178878216404463677178745072615779206875227426387281882519105329730356170650050949236621780915374006804077071332686903017285304011728558942467727235256933315768364481167901308392040773995313856312114778046997682622189889846623129108437791894323087011585975346956345322489873272334612922554967566915036502526845561464389323424540890249378408591871492367342575287063060563271498162157614667032248088199949918481272313984354125130182274243092448950741165924905043143870908903921481849136048686419846781716132317969384967431876141293008715387909580764598993812166364706936714039129571634797451604432362386810481553601594950804206372189334139114369358924119418612101133429230699691167306546549266569160913469821984379134229168440060633056603029499115597515200302915565946779267278872842940807680215553252684275260476263216117583685263636248017279462934452301876274723208398357676629474595580023057248770619344693645909721354871322286255016248976168164697212901278201533420966408062441004769265732269001571538498872407993822243240293568293129645376791949079881249300784346386433115126935075611003049733217950642844916396338546857449050716731669631276460115855299246201052195110665643519213085987470882172758618805464014794539195895985151266890246725430966077578865042905707534094984898437143173994414344060985801503988838854134906725175071503208605845118867265262812865455283822296334411275721133843364794130393541589619913032620930521494252353335383018370141682526595778977950341034043120217020796994753310977862207043242107160232186831043337344520937144747531233884082145287019775558482681501168042942966495862427478261154011823664531837596050775395235682582517433207708505931209357374790712646631706944068593812308274197400746004433846220944728426158722271565549811631321817622099571055413914998695721678962373475833117920426382948065031650423250360117353006388645489286894336908198728678202596071861274703842091678612226749037865781062791008975016518579019234247669204561822574026869620609818848847960228744810450449592405352645753417240842007680449635877156381192908029714822816041268475307589003639557854424272150416128365047125289419740336994617306527773125299021585592833456563411750339078020639236065429720180154529567789274520975849548455386811652291563624971002483161817662531122123998364704547896920895080929694812305743542651479077235863075301725943947044154811845352820203912592271014174630054040063858789944168711027393725463872805744322245288535086512587812537050702924926596330164752640084006649394999585323838339110103347551557939043914428342421286663917770437031338142831542232569418071140487099899327956427189813501180941429179007145900180965683804974479345360965676710998857706173513927703985744960103731081787821513852707887420308222840260063654905445535869743811771311647466512339340874424978235348655892721759855656572237498159965198789784674229762877186238675537127601432414538529205757770093267783435281502465581178672220890008273032399777421838135820284192997136427059396418726645754970348820321651040933526601241171940777964472222537026229081704291739756535621595587346160953939884766014208364740270840788494204676200018872202432941701511327794502536314066134195075286557977876253136485433479327959681056753175176642010828651884242815067190869384178175214723417119005070760018908526530648923571716675225724778631429637792774544637865720856944614737968080382385526489006414841593399016104330435275889065377865475611159304515137889980361357034109990708890020096117521294541382866986651205987850251247947755117084961008254511207126656987849743936052561917410415538426143367394192440844158835799140020660247543364753884614770836736937618171080922008088172564910080420613918776380771334217187668332904770985576641173029382700786151378372607459675317052069568158790540365769480879125891076169180457576862774430006701648530063339196494957294471443988754383861685707259815605924405285362558098693041161998257632342050263560978414150750967884787381466692289296911102508338098905644075127755972274393498149377155958512404657020075382016170154356884770607782559444004431412169228217076800953633856572448916777255931446031063962298046704342859778902146545479572985744328315822745972858183144075902134076467239347232823113994729708543998634610308909618896375237970171320522785536505895631925580440740509419559618418963812219219614548080411308722215623680173932628507046835025719682112845784755660591699033563917084492779260088025860165802655092757930939826698026772763909523561366111772605452528946697048495683592228514259306156814199956387709143725431208122536794879768984392373022445478842617656915620777853072802416210320977731993013617929258189397171785313698143400530888094382835971810214000576341750022690924315394912894491870233204250288414175961288104294657708449171086748094568141552074146494707736717362361213703242934288277254140754536664640257188848801458068297619997051072581475851559554626847845501132909508644966584200352927656840021142165119081993379492668679749575626971959761257489532154289193850430689640539036568094594726685803847649180787126203375850434207085808630703725951949921362522137610728962344050423001938644631401737076434448457000917096831776447674627503407405789399633850180407643502780671147569589083222652490387336893580764924763977237083862136091093205889980106665257234862630310157005075381880974690218722726551520499366823328887155039588259636017478339457062119735113187948149074546434482930694713291664632628976780644086038035406022043417781786388742059627410700761670793293632881509929997249421534674833440241280727430727571387245592349476854080587283440543613555315866974100530865937844528971869229664294028585836506209426417600610295563785070576039758587239374347191732323079653518903601364244354944573858222850264732594959594150600017397095002924260438111175621680105090520540175599304575466546102260231444224285382880563710222607872105337235679657874829462799709218721944996665808758619125882086274149561849747060310448980285184152771185090597494930395028425601511950224238393077450448118232695552243924377549525743098137960476089094366752025037330536860328196812823210996061736240970108453072238885208059597380229647170203782096953787237677577361466229094614162628583326545971203424254669849000131826520143930099323462536881782446109238618241917436922053815413522068693797189098198338827290373646363444986483722673084697804484618145067516535890588331604703538192043772618164743374501823647712782960655533169341595465478813614195282580626181949450994451595238069768956254245176495404802452069786856814228501567410467002637268834687903784866892847099521334615726708331801521232210357555905314399346662633212683240604612025948277616063256810381557218716719369805638381592167530512357844091503914694629716574996192542834244921796705936996850260355658847406278371400323715079753637606227085160488930911808519219078710921608922252514682659681238972976745314461858766572161758020359763400859757473594383352338076353057132795877179499810078016625209761801778850385798705544887157674735717570392278653166802428022828108094358130174908963952301741912797973532255918526865218045757344396224709180052242211286250565886191159856249391834152777511305151018602990824077441760276802881263758225125398399796722597388536633924606737973861373427302984869084194353652734107251093178657676551224258439258230780739929694177453085253343547634193692468245487770934714293745324659478496454283845736509427215504016877344168349831567087093629712821114616338257676352080139325926035168067176621388805171050795790968602234503967371355406252574812594060269448944973448922469531140742282612763037627273914108881144727569392351872206716394291513603444132826473862340462886006942179584299703724964419223889970991536254202101004779347466267851952261999864132210069604365978487373121717468845971203404366708285393583931415712221550923463130824140203847791281069909458609388709668467925006600299620051802727206465465649620124819259911906103539219134164724037446689339879318433668302709347035318122682002121004697345871754320761497278545004279293341888382476599840838777090118714493868267550769530744639430193442637168491672046834028974325250975804626231285533878942317288083356182752009335241704268765822064436142551417640140223157468616250837758807591286952561953457997188443292964082300048423850751004614755568188434472769766283819383611230662876575719553485023335126109931209920420200755926552761882631181168903899342734750144119194904134657694267303864185962087805402191265571153025285390107634584659134306519435230319209531864891076668715553418050418710734051736068917257407388334690045966938119465429790707585606337501877047336253105782182071132587503725321780018144216942826355631744133961390686995361987608124609068112892744848001802062227829978515058468727848593622999052235329629090802927055994223431311126985629347645596543164230033135006602802861245657827391918541276063761222987624059564905559143519682821766523627457210453243148101374980856858682792755865941767275852325779168285270121686450409914842110399038997148156454515938232340578067970651985606239766319985065777330153982531262044389212659706228528449028622239303350861415617984352870265408144983019070381901831046267472225004167764254593455691283245685315404152666526590796753074820493731119840679690069676283519552273994125012891428591906696877138978834586573027909179403877681022862175852485841795029847025415310981581790528263892696558489303073800910432371816071960867944371176460926902990079300056915279314075517823673316817179702213151026428478768989684356911949876643426683258791717259059532738761951021116428830109130561678449876459741603501382205132516787513713201464101001098041817885734092084365199943374352120046679443426586744397212809461544687632071230074518741443439919018721526865584149547832156034702656294127236599190297448449407370060753047849410786750838388664555215230919265607450522673919079772517734754905935631039932942016106734695611372027879239430075919128243991150951718411422345250154084916756508567484694508924991291290761669229877801175025182981028169710030129279299923413116463734783149601781405968515204030276838032906717152681568880453406226978924536477844408114943350879255838673991374822222434320571007915708150630144985386858395786710602949133318358173732080484923911312873010865333986982924364601184630660170562208682345205929885834449100429279791807130193280365967690493392210268246510465847199543793007329356450121958667805430621662271764371260456971680709797860434237182909193512135496480050836865731706233027623549179014027681430268347946950810477751614192538593182735020658972621520202751041355829805497308920363979579134708752847468560863270491958022228839247884335551887318436970296044764906961506395151988281422931370435512705875705569085127283406900415386322562651820587154529556026641200249292264401657186773439589037327283876719714336789168154939611126329841508782478262089380444738521073300421390815605513561712622688012188462267383915546999379560780669895088270919595697897224188759644926224700446690808314014220158644161972285720739854396237279137426589712983579184020827764463061671390082690420650828194835968198879198292294748016122155120345946478811534664828214986879895640473294142747413938789857426153889985931000915365514865211205422028022888056244028607993698142322706234667005113020886420339044855906439132086966588476931015440875401881297421146540228882042970844682875931647782163174094134214400405964813651194120281378279795525323317624404276593504026905946170601645131654344925318849428789127617666443360304953630234445162861338786023961708109598456623868851095907472836567553043072823292470527165146761902475765456360090049686760929395059252782281520649055571262873434243675251116064721925485520561815835185145922375968331722278720859166760383402532204679115833586373656754980907876539552441398274093798646005462349776106606074933292042762109236902569215474166099931563716802342789887776325568755946801836379972756212558057531915491874134980970951398913734903521886046142400076624637927656633725074328586957836952133838112990372944823435372884678847405293928163127220533048399527920967189046173521533915744855888019409819345546862390580713825596244648645928975423563942240251938145831892156920511911630665555897854109623112615134574756163451589591011415305501409986717837702403319906946760979984038290727564190157493963547673467484820554283148338756690418629954756703635873403291279530386569045333157561567142433707482061718557020674166792732436335720198242486493100392126284284619171771041861696897436974216753565203909604910445447406801324893337889847242242584445799975094864110001581193800450764716272509578302954130433389751496786487390195408819521110653534552736191801986430881230850704782146108797542641044311581025191351108753229032535744548052158330392958746143654883257478259959957772229731113594271301320480930794839675339979855151405073524726943746781437412345878144420224996232307831777495736727083456589651515039736676174637590113680815761753840988909756374625053787922163525033987911314328318209440800043413212379777006220380940360224122042031731589737244077982834930174256582586634635553822211856181723948247058387035194092503916195640153652285289278983875411852905294412511200714445935071696621143247426707326444707336386490064676580890536322330458262262535934170980834142679086495104209961535484152995379252253813374654360588792681998532465605993475424617230214814673663736665120380860003576470622530526327153251219560954659957264040206826214680240579811899926791485712438167963664933583227993033634241046247243417704817546899953899650369928403580301925803433084517776974377364304928567673674717158893148298967473200774839049353664389264854729325632712930976414925284822525279970094796785010344447650533221856089413415828002213378794377650356486932730632034812130644678098901788377273582553053635671154566020944202306839618585267244668622082811926712280898686383048381905332602173497434649294917279423034620122245298131151510376679681776820830591610547593734973632185069935571591347524303925522646694646947459024639263940187651114582725467575003995806176347437259731989524605368535077118382662319991914619134170906486442839584230126135715407728996709038126746488918880919640171352514218603883581242624027425600866342829761280925915923158929407230379957357971502389016304613373955209045771680823623034924949833347741990021834749704715143552968286392240886029933952536053724486843929001366704178448910034948917949111028784077569472569110971231556889906156446636328741478666798204982046833742409503745161092813677469057280895102327222786241133052310120532134753345279569428749280633847580817734164692029531034477124081987063712049034861837118599195044348036410745412024048937458976255578600591497878035206935356712124446764301172588458675644238073610594489568115393994309279344250748790199352847206373813110426711490975407197800989638443871637882890659617786710800475108293280730011004121314519412626089894064602517828854828190188006454538018652732667667040903995063368834555454487705238580702635120627756702539736854133809916395791813143651297402806709060559038272486962300285150595847382205297983221235033271587093837073672628523129490636755454832091261406682585239493782909126627487154797811744803400719223381704325562602230986160598550359131377891486367137523461458567051078144768633454402258525827638956960175054956922699576356790769176523986687326557647548078182873089098140519136397637553509186424435442748398538881605729681056976199226540658545421545226995083734376088416366230987999357286673039432830433454101486467071062617629927031774060570703379735588957157965843482507758911127728413785225920829698873270237008719440390506299998678573195134056328940046750947215660990947553993857153245573196982487089417681947735831987886586493343437259195645517020415618458609200634311287634427887023154996465400202080508527310794882727885766263681819705516569720673748626702951629477212421594880690550973991428076523968454407532387831984276278391738756229161675030700904875743358725844864811477441518858428268764239932178370155487870219266041408052341388051026768715906039096886601258230679123649231058612288339259506495409213894178645489828036457250093976142116401274129760354892793660221348415452069179060237574087214767941220736223822490943499311936967083197533162856323315204374501682435370810073881846002967068813852836526912082783752106318393243972561197317263335606037403436594160547191286367455788968457388504817116477482688929823574224342261115658581591798684724112191995091046550385753379445633331891513285672936091278095804662484384691700983850512853850603903302926216438385624949242959624725676358271509749654758921790226306053455774885768419198674672676883251070210034112081292984742427316874372898180841242110491248706419267052977461481402709208929226940624284814009619308151425498597165484319921261968062129078699120657559967481111842566935661973178848189143456317111312032054904150125595611303855549667230869309845665308174374777935031152333399780789583910392677234456657003811416465999480039425906787018719346811532344815780735962363511934744507884420855474903879144927570346580225670690636900452654022326563552058955996916079958299441618458803641475345168880514621253068780298962260577932275859158118899526893241554959434248154509477384552433857787869340864674580437599544272323100434885160068129055193744252964362211405949492094641489833656210865009107676597804691179265074229790088236832645013670378933970083476695454932419101838876569023163831012259986595199025140275233576389636836450087949569953084243578086582661489414950258299151835920090821770957696094812385810088536157526577678674680158981789735633657126150402320074968675188235317021979581564927812621317354501891953081738000244868243944250045717352119966744785205083434156251398247769283142067438025343755555440808300813821052328121658298949750235575313834333705139395961288406487977087765675024793835204300407694887250333248081539834821238482120421813878080511367019171804665122964718745281933643777503451580437434466457445335093895421204492035513732932816769554403403332426780150198144740393014829020055777955698639785026037444856508077973001321375429190304781785493374079895046720402321492619059718721773723568129522303854570843640331526266787509443436035035770683721920671759444276164645037421925380698294713418040613332900676648294305768892538889633064543431590363919527006198377075477898592865231066535351724040407871457576783264338840817461763072878546517651349306742672116756347680301427396031595984804332036466253902856803349963262463523469922810548736052977602789288451864500615607582502311010221959286609230209715916064156531589151272023008879453983159645967148651233878218461301633431508838861111539352847926886157708437393906746519654474041633735657129415618789147644884281091766761061767766825372052911444423013563183327772968288613897721182598675071058183159128053197722544610001196919324704353015218600240588431182378178199871988967852911233505572125946353096680003047764115066222136872538276754828248232226523166800664560458197969223887158098732261757305449881627378870974592768988812620101746323415756565152283262294798112017619937998750070548519405611146325821050251058890904664423849445950149626222698094849590505153136147482512158598842158208881682776991129150778482032242154636519790945727428383521132970512418842739751675224460498685217210970849370700961511123930123666645480682961392641752652061870191609838220736457460729418743059575612473683661650540716575641524795981724962374274544639768464882487827262676162297999028062439126745464955604779572132147999904605739810981537531515528236246721419731147081486870044898577953662049224778066399689081946321887258548450814242122535806247961800937462538877566964913156433590523586367300423180141775925429664748209224605014994160248672230096257513028409963560632020938060786964261828879399392888188465174722406645398410013681758485439518081783241990594058129176135891474989356566072684075712933214966719721927903229991065134376354336477474131796099460247230531246834061949556026243271759717415143031193326175463972372214654386457165094791109692230650507970503873319187467065580646233650790418427689582645818907292498335105698262646284403326937553914543382868680762167441303577977128311065147776527148536997761570848298699294070424558351324992795901369752748095810720881495297293195183755478606510744099717943755929293836608091595446459787110097083949492784678628006918301616448153473069478573724243849833523305972118730374089728946875477351404320675116058082194282697337770991669464309958232411582274886192004089786321235138853479647966218745591514166783802144757137187736767396891098707243644989017049873927602486102657817921182074769567319660763960079877500140895907634841437791415982448430605526174456242149724933937588116241281738968947064250871189874827169821394931054102322638614871786680481440087166401003208086413179376528677893632081021286027465621822348959750382835577700648248545388913456825558441447776104898911950390386564828562420828739472310246673249555426033878102230887403296801826497050231870978958817248692166283521921447525939334213704371128955210851518910019063302822366779324958055503245109253853934954140795495767136893473285871779563772903586907116399973372286031103746793526806060413266993943451445488254856634699997262298155271565247505506855015391857127165392126906962504572743732763051072783506681961269175283389329640474103464698740704764568543099275573571101824417136355978217059994097207235146574933510281397240929488969790793435707692776298410709390328053429068370070580169564231778716684222004256748448109373165393639356111512354860835805187648970686098171707332911885516916827444223049094177802750975511833201525847383098354815847149995275103711943198600325084759458461872158482059722065970834699070931408348316226811306286968061392627698073015570689948163489205058318286808746672366693839325975593124173514064993239948789194962404920140155363617347977770120042211586738217155807305027364646847721310424390731630629609015952820090794063087710509942101242223725872689767060625304678502423891617037025620312025928593462770187733371806537928412217847851220104093573376879374617629540380530771701028849273068434372685640156464419335512045161781058042079272741638320921348971405905180275747538354989746482176997306657925156581008311037924923114886914359725986865050008667857967890004393415343090658448913306028857713791416002703402751752316802235019506439754402510912092643443295564176386732133244074535135190767453396575693104020646909426363971425571616108262712869511658058484706823692795940755591260993205299011405663388941372112552470202491417436569983592139512814490820288639088549829239061986640061154363151862123814069320727100101065379500639677122794068903960247904977017335710885087913482205420872946453825370472189039602163745721336627311700200630187775780299340286652658766180166751099571840856482652266538406094088685390227986570835737053375780443199613836900466322802614747122415681120363129382184616261614441584426732444685417278400161492002596115953188743504157959760514834521427651557126365364998022901396158146679192395340841756116889333319608073844170556768304968960559712500976598557046724055567370279707210208438320821812214246908791748377302601787595659636678786067206686690649065347372633207560860678927610041603950208574340568741032293984387572745589917655530981612507946015277526446209298678021023952001575445211977665872336366882026684979930460034994830809483537061973173591975710355621005894149136849554662765661392576150498534466448318365457145249958599189113558430205971996380370826352676442957410771000446420593434504063825458759610958047474965554979463360473586244687022179504258443265961531259128937545090031796549177799575968879707124277274560118930805365289670628471001291254909031219764908814664039173534922886308687178517691323909870593188848634969592886537194981113456540211060022324800497614928302221090974076379190452399017401742474429780768581224891765153590894643016532594931208336549110817135872914510573154195158141705043966831055475747847636649121516475619073531988565255806309677593889577052603006782317196750472306398961098113479116798035244537816879878412238209309551482187150104158317995035761281212244562336736428721759920742895549477435823399819027760199716890618109246707674309518030139467435137879700296338135345409511121377337776362131302509900478845272868467007044804579667666791745456469943971228034799611562898626758195137052471449101486654380585986238379976173265965375696071784247761301016347660081803223929109983001323539705311875867945673440913078548132963584671527046144512037002234224184421833830402382676879273995034951848348262340933619010068175542035074761298356251590627726681047508426803467772445366977839322548240577554793095245054702792278603564168719294078453906681862969484857974100823622461117663435513913424929147470603579233808812439530754429951916217378721355704873681647278539199243700637798247235185684714504202503326120979342723114254919791484633796272845402555195078249356987995069441063356533659508496596904829519717749202475743669837125977046820575239328225440366978477666839099052726001463695933905858175250013876959501054246048685472867305345463611679068840712766016806183624687840154610920699992382377518939056758788765397657244165498799349248377498377991283896436437778967909281136413914181669216916159040668917011785005645654310750470096074518060710851314663297303861414772336814362263567067799007505599589909704521928322952634189629177252451376030095131308720425669960751734542817928204117555554878013895707397728868975042920167842595250072582132907580439652188716105273086477702079749314182746121632166197087629753620456233467122778521935795842286443328915285089138717900035248690124265048392868384286223678473839751941590433607766623384483088105430563605982756786252247284226080476253440705181868949933040719472616586868155441033832316365936895703770376564141074121632686039209006721214483702758503061863783103965353006795499864568599173667719138104424154863524116703259457534005888125205691158683661691362191251307329729347669042415150545645908188780940993846597898698777831938634411368848503848373825030819593984947271863095777055708346468812038070747466598914690943035718778974378788270346213145878109582207710653495970357740366455784478333294963334592973336506296034790541369878397067849139493644769379821039596526374609049027214293150807151731646777645413578489766226698992596890995106877610011737432689796131168430148552375722890064103590269838430144753237500907958629519391794846497291151311383989157851880126192352902526028477462022744065517443242554297479922158467110293162497547486215968747806246579956856078325910336232549729721309667397476518076662857298553097878905673536501341397667247502321608860055689703940650274535968679903842585564058043053778618738076598445833040499712860835853517532493092999291039501404809699591336176840141456770436476001491707212817711984672346371830846827976133068895295555081477484235157361031245526561565178164433889595957050701315682705826135370595050433462836107764632215139174288378256641605091343759182350688908345657152682163491397108659419603690262799216267429981132329915238338093873753049858753385057742122257207242145140884748890318947343567342040092293945687981630685618223447846229007920762640796262304768795670392198472963854261288738871464367024781974565137119819938415735675647027818528938587506345063531233227832779106268859555687107060549085697240349682984123502183588794763978326032875610588799453665188890505277069849534021891814406897446764378746720516102124825473033481794627001660480160154337308601092550856035061469396201490310410258510572567680362390040394199707722952244643220220543405958772028116449122806130118341445617918711649762492335802107595634450780095012948928473218477319712816794317179423157004635882445330611333456971077851629433389133199854397409284521902764412422197413776760062733678699382141302823919657446659672270619095107067324853389954702181739906718943175287200537792205191958798830148396929903741615461451379635788503029574345533998115532370921979529719469740868046455285953240849227654377510793776212773640680713433302249713455761153662705279468419028181038837941008688117618150811770666127502778554294322557269947636598106723362634989256072180780554487893147900410084953642681739341449725722434483682822168718967519134393580283874680921674512858562101014649509328362125359829450578564410067058990497327952302567130370817775373496436119662402307215395766207035072161676660183349386193790416217044388457978362559311495949208291263878420122264858711175142934981950227133461228979674289400490838912713410145269879362605721193475914206900312397973724469800042024281026666138417852777790886246683071945710133809314746721987191226132740937296558738908520303112381123383237246423869547568147291819171764748262425821430078967938510395260066669751009915572761937567249275562694072978006472620794394076851723388825333305537373105725454349353294836102150569370431912832643177636253397070453955709236863930799654434556509097761326878461571375826084064648919870957979424526183893810733145615695889752237735922726445960486491355245618508095286378587789074186835816587801177592885415235730261422600269547609530014507500227931225380154849958279561997103972442327409597065075756705167418863084182489472472810046331292576023996495011579383543188497702189460692550388409295380057781928143418581226525917374327019967549884529116771281241316303870332665566112781429765738112531025230347024254322464228420154052500110361317816606722586029434354392012171488354136499095032441510964778063764300336910292393517612010496250120135927760975877944298455744034990496653069103123086470293757959757508380573086600365518876209937407229884360034220781494655363565393949925014576993652255889305350018996025843566509810813928525564290292831535542782134694433940748704819730929033358670855498288895986773083525308702358367791699327577206946121405005247551122539860301760091086067002741701297155349069744872114636897468486632402520758964398334568403747166874498096179072761390280012215304541920021121189812991647873717368251352785120999259675008587637330442407167514976431721511673310048867371216173494712871943827492338355497544508533616063375500755873516098049172346575203041837775905517656266407383991622338011073441866593414596057034975107852135934687008192864522832912374323638215162907827430396206128113801580199615245169421546869444202517448680271286268995853609921983063470283203684126385732827315170433349581026333848913739057532850846012332118894074512285196572766460867258463481459201929806321373232327824711022685370688845256618699727976200061900898365136500893343231463946851935370887147610382538921163171563744385895167646103513931711398799129273430733188122884017848012441141404195901583584784392597622036115403317068629805696905806019182554380149352702855873180450007298847566208352354736792696361618755656727579129469794792470274477839019885306214804098712417264585683546511390187423294311831178145099055417430513158067013973950299483670653100856660448475831618256252243861455097890463574546295350425025401594721371675638653436076211890198471859626926996603430953650935479327440884793244516431318905234984946935889105718180166193317615927043470959164485979392139245503735622982301632208049958199112296733018479809782062522665239262306437654361061868587760086722261046307154747955229017563516621289276728411654421854123966568723561809000821687893418805951620102897746612969841658204653485877976236510903494444319708741378064912619162417354312554381409466173318888507196123063346032186946358387674191646204341917142396268029877959793855014719462044509711216930781496076705339365135571710106365897616492308198940839116539748394425199231430928830712096301616046061780414628651384230565853310724487804040675441996823561478233943667695500053296522537074022542316952504812322129411144355163432295448196147598511560355101294949215766765907688130711220927383242927435665076472802060700818883403298471612653414992872919315733677048261090341695038783357814782882848521868675316201083096992423205243687562907533098573640348445935941048295499888315593320063810584989189091638114397618033132397132495283874729017485196705414074163397393538712536038038503805426052667357353204737394636007175186728787556750452757435938364989430859141457570586683600043979752702624284644098715079602214833296091885244401568197271392148447377418744012564179278840281824850830759260683826212175391259976256308916617713441152125651680742753778837506719147400281388836163564835284545656277146685341735540658214613739031183117036453358255089446743408880384477322819124768037885512620654087400037598572082360305689724047871810606296157460791857549046644115826135827445684417100582913773449220919074084843004250309830062095653140396305173720868981717895673312214303564727520507556944191260050047605822727824205487452121464423309490041968289576686439330813348927516090219308740070731813293993215045586440547951241359343755721313395836225807399799209495283938993198298114335533452505683799255186285753974786472886768848103919252972918248031291813479142030754909154663360802020403738499775015505471174692191840830416720016120688075825588688348080180520028870798527212796328479111765016487157870037453394374380862568020347890517194586064890264288149548484855151388242976071199055837982388266183444728930002544612651592840643382458775366835311669802268046490149156015797752346403505066581167184450106708703592409884469356232345010265939951800792302475890736623107449718116872584115016771093536674953177952955726705144488575635254703190584976554932261579426801752988280001422895654973786641162492860429936965164415790924009042226858154201297018241480640727249774693797771390869334464320594198443922178162692903765640301111868630955764580966460430042253555056089532043494137638687357166900352532511374611442241861604242476542438598706058219465595253995344789541574098442515963365770766363380818286190151411400974327475501971900494914976314192928837509462701871266735174283806816745068955697905983145331591309489792402493632469673997548103932483626789615850773192324127917802833937927739141221344650249658386302691112291806642615107363516247156098266700261545343159089375751529423278944262382992625014047966416874540350443369863538142124607232665392013596082165296598237320862793654226257910599032760837607911623728295606357601391032037597092118600343522610378147600712044956529208811004794302313871963843447520083955421716499267825905674253292468869350033412354881490367815493953429064367000032274357367509563806072716143955078840248372864297990079683765305387370628908241590164057893037042990015932105978861978775608722182345167113035828672175060203105322749352861570631946934228820781558928128264027863735801869645110707784463442530342716346384154200945847937261562105950148913319105922148400476078663483933126884658384786415570478283943665606006438601103184888167421095789069156108262982318004644927818045278430782503629557849394421821391888052943355572817603157159445719508131076983757529615062674688536598186606528743022029617314954486841820210834307646680303252963070540232077498016218734255228975479117631937936260492871974530131773830681027494388352110918563984794505242465382328288871496938744387820244892034983063226147161070463275025502646113838951386416655630668636045063028095221056156626529721692044692834209780196976835747973870201575461685666254840879693846232210399015713372323884046019876958963078066535912703508891909392992814247738373998295413191342316590173542859335930596356670636107031234565801341941614709934187910222996105146497609971639499165827602983720857460796811997667322360978040115897614506762685557755386913388601114658475297020034527606555295685652154959423272207537874040251008440040523977832424603212559607698549914846443287173250507507588455413921805766787602023045807492629992660831768364512758734414861730464773165356213100658529622355306782490474655056453610244346479202306787051489807453965194274116468154540462791088722191230131090042958551540190655505392354530346528113124024520189523744560248867311358683835629385498783150249749872239107627010279031579253868733366573429829702688582787532026978720340732331523518854559185621137696249567488612240549546559608575411264527549874669448357454574742564333728653457547256762754334178609426746571575903565976774671258455914818329223833059014823441494077180888363044753245303240220799083535568987001803128349849608613576700066203310008032316348024315874574092710939648548373574102810083882643719957132201285118097071083237519307431202325631649043765084475693904645189540061754135816358965748974968754793001400285903000385972452372538113035307062899793623918735290267322586893855863700749280760112907634484590539519719948836866559842088116289326963126409389346320749357085153761694003373900943803832393816823426301192182323383695699579574647446731958224530070128078649464680136680035115875927619069800488264525934486070794448661911565999496826209211323660868272449744711896934226328725817978278894721683079579461264182532869758682434312119982129222180572502820133831978741110738681143532964548445266544934072426928377118957995368397187523138089047198464606505172074367488827811788046988637183916265013585128486967222963837590275850525493974511101996998278974227412986260433868266056072787221856321048083245219128543801848347618839144016833160057950151955585398970936371309102654306645802265809081551749420229648865014598235647945381854585035741582557275117057878456775205529049549711739411580292074219299244198641963536296185968079320095961610360097869328699214598996604210153502230300050406777409019100758784800659181336175245535252899950723286309604313802138141183451381908376630550373207347891206607870110176051481685675907290376137706346041511902905178354524186656847355480506222358874196651031217203637339513274061332200498740716237251136797869124045665784163959009459809394520863939814676673846449576850948261302552096739888689134388939865789773844011536624762704743057504800382145498929118835312079041562459731409411120997699315854368544352835601524223783472263245151354217462355017995710657936257834273492924229807584754132947324117321903847833372545253148733348444231915009680057312044349836606901888588080387825115145028814786078188397126881496001347027224151527821378228030276359689126500394957647603879330746690215712104970737979495058068241546142416532614100210128014399079774166660326460602527471273631236939852917483915849913931029662218800541419608268264878860663792525488280564748392181259485501709543266963723340154070999258008183709767674865575816061252370488875030401589733231888242258169616884670484515154625022503250384859767728424294211907696892678653644720539370810946739495201125744349894618899334491865466478909241768407615512159159364525151129702816097243443732504776445810353088695923086891993937909775004585381524537230806796241176368348534498281618095397321851779553262922223277387985351672571085669392989549849709194958173934514256479217980663217354190935817378766822478780150930535004739813816866839649732378553748735120392213987627438284754440661725569004180417551054285682367814520380740968241974646779159683976016298471290567516993112410937046590660136872183173489944857538244713253163988502922507063655086515444072673608406398068735064602423618317300011462114671368506810419312387034655111608335229186543753999191538062267856394862080033014338973908195337360326727128061633808285734903992465033777536119769887607202331927759431181902827373759217756504229385455047660088517966659671583851623416604750891446287768489164294980145898954633334667233947050459054371996213947854822786340189695859774525134152769209408740560534928307599695384272238193827719224349401406643052007695344678961104260985242856840364985502851467201996300540905432308756752833862545323379978990171702335908358087414453648073930313084245322238578869439493308716568190110640062963816224152427740547748934459430532730546431605204422079413586760038003496591027264324508928200617096629071922558580163713371940099284590198098739108626024638805461339645141006789760634502233687483550514013779141127754120689119273827688174132619635833837742534855227397085994402776578209536240970550366556929535477778813817007348437910768082844416379996094569393715676749130675599057873936152968667029229728243800435389011817340587837612377133487093136269412200665041133007973548550040731139235986317935694838803559271829598064048017073457117994725969723638039124626590381988504731788217344958060270529057859625790202678321447575267575950458335000761307534097815699287332401513485148072190456673760656184772336309518721887822945570903956093116231632036881022428451032501080841299784424763300913703194914301540268989016567172595187859517992531753251079424137243809107735565486647728412897728803872247985075796060110377358506901665023879560505592645495982006369582318989408527383758570784585500695606645259777745688537292630275109719799266710754701196737612215810999241621377219468033750032816459782938409019528517852551898751632166799011680571331535373791056658963957475005203008718942192708014539891246937784359326768266639949681732544831323415910469121024591423505129784476434067297586936877826452162454951001210568344659762199278639375099815250454387025113449433066073914200507371315913252458356962648740539786464203243698150891165475994683303435916443467446408876155544721634806034627724472389252651556331468846027299837818258722120260240187965298869112670621053408392638209958313502604771597513656289125947687427525390346852893199620142307520761894384196209057076491229594204981838260697210040020906265265428824610439088388644655345852527449916083309385391688063025284440898678882432552944777521293376650784092044329052869056364296222454191242873548432758195594512995010475913874075996272486675528932589732000050345292935421884507673011009131544234615454355192906953410630535024172476825678167935187224340822850285976603282488882869328068520554689901397096152468395190989627019596814445004734033236124274341127644037429993066440831505189714634226826919324670555409062729399795539429349349711768165422632811425613775605284612555013455531631181538207741630082258685670986639603830818201406483619985801519683139948385538758594130904321334065909232981871671153253578939387676410588094290942940042452660867200479677870418956702049152748562892167791640632486542149304148710683572474506456775515898147866471309484514783961762449254979922543506565374080470530006430063987888704247281246085923372132048876188523577024854131333908980757368511186035069934834056030327781252608939433215518792216044127775288983650393828584149310612405361873765169045884545003630231799254965329480596371663793645338149672641709968798222347802836823535713928939591206214167342654167762671859531292773371905736730289438841679707343194279079785969781285411830148250939074509777040889099533060217884958684398045646229944782114540790076305734604026720709122465318670428420232471573446046172459453098410291650876107418305613222739244188901655045982674524629887905081540690498731656609745993472289536069577493020610190874805530986291685025239897124935433963086851709313908904228060519063863484087116979802805448566059252922847850157392008934103093305139943020126881092897097044338010862969395214755811374061924935349489545192912010920752863179749249936306604309740112077349354023643649206263592670196676351609683581438220633217486250444559974599430173788661545269949982299634685919033992756142734535170148889744516920298172979231789615809192524843993071982414895359949612301945643311810752974302822853947685740419198068362755648386446320247452054074233130134853553031241666037902272087767507127653792150580743222189339647520494096080357035041604381724253491183351962076091779691665925398863966355243794320756425180509104660702896644655480905739678392796283824518879126276248134731889944350871181958041163027998046980666829306557420679028096950280189922562534435179340402755956979299096725309906105097527760223301202877864684175471468640998907136802428109595494295646119423971820908280238057578015042700160269101743117962710500233158031127762106491062898350741337125065680958882373047210033198498055933207226248741409375550079322930646815595426782558652613939534783623215501626260643054775748304256287633866334354153126511987616821326253576476054825710391970822292591959914113389599281141993754692713838028511953654594030980535340618923925950679691159126869635658603846541670703374471865863631872439108832601133806523465539487714641695076686821654486348551634247511227182009595660370588352031593934284478076241666096437454840455879827009992467714448552088293985365680751090862939907585676059519731832561860521250750117133512915074868010852961950164570693248429274410061254962090663003291439440123983236459989865024472719520172375297353207580579678681090371150617618965344934315123783475239059183294359349608333755597297582900928587692733545329766042312285188604843558047483005779559512211296891167448678152225616619978413995606943845483688798632782270093238105955323781223866487922016112745241857726287012912020196340434843975511872020593646302020185006580708042921424110296762151199897921328597978456536161581269066600547842732637981586949500557893891903636469341255835818538280687935852350009925058425348118522177001739748237651897256652337910455801982430697202056213491385778597425518393319002747012519746830983323501040964296231714556644293706742604532920106026713610225337280427287728306441927760686160577381565633093919957464142243268011290650840826780352300623395220406685961610566896152570400406344237910910433469583019557544586223173771244355047515124742279450242642899548920948085220657410213632745949613046255393071423578204709969177428825483662268934702405602812466673142946555563419932174499536589129131795707595885416348798020574816881561227210331798340419913764281705959883537738633941214792095346240007822839232700154424111972077789548759498839905631186104276728021779635320989624740590801729786008496482746741387312031962366095355339112991743739907511716451306436859796279421682660205798849673419001498409672870407677473172765163999133164484855635453092158275815475316968828160899338961194546784445992973845418957042283352780187159359948806700928127534895486658938319219900892718060039723935588481483042084798331925119222273873155992258218265822220083751169555266460123372809258728835084222373927053661363857027416838181300033785728548344670910401046495044206673137484156288374202627361996673816451527253185616884061403272177475822374598088041952613829400741275227536908829563608295499670911811455508397856161865976756956930476742547656316600895032172059407189200481808282300291533929651305995134302017414779141805596174449817159236054649808273127689158799184694416227515371030978273347879625148695159572148641391799216613285733088980320607399686252583146340024516922111343760543718312996141849038121539171064883112137185592784124547494379329510947373113244367950095806585596416496889749063873122526888663082589187374294338076121344850174687866538528610864152279926609997510027777956429629453293571219998675844691629626621173725592916982108637815301335082062320232081910656333203438845003483183769697637379071844234688807101477668410851094405824860414482628325876627922404888026858840104756320287530798964070883698812432974291439716454335585133723434842851085988980868735462756904614715677744230851513129619059064518680079434017927328828123923677450432242716010055497397963328630356901205825196414094217340933464499963567456451952269179933521120239141733746343160000004309166845411528871694666316912908862074020863205039164112261611678364569912815317665579922700903536659951998567308415598730510142967853867110968237481702023765834704163434342221384469333118775175171305872060296659255671209214416234752435918538219786240662489364405317575581058298882477504238056233491872144077120555829698956175632261526973803820519347497332479340353759187809397690682139767780869983538250572225019793777611286520577957619696797340655550101580573009077849802246900327074584880903518987666013069256040444631809718487252465740887856952277933630058570693644129489758630556198136504080718071600138794920919880569192468109447051568280823069292402113390669270078371522157057826548248562478078154566093399868955923639086395761389776298301992376835844414575759224736746870555975225744953971988999904962220090913316354056040314800932683328920798065688699150933399929067717132639593117400863148234265469757729231569575067949351867684594699942573780540005693505629277469893988976244267253905866418047043893113348621288206709649082346953658222712676318216086639716943428351340234750871445816254560338618297438527792999731189691236473422982917679658178343455025648459709186253677096691281879092048749636981734998043026681106928219140529142278334829860184903829293852171078822447613679104080897243743970359483905897085401653710502032398881850702505492825223865965571972362476889979055914885339937968232855003413460036249998915222751934267431035840079070991621747766181194771178073963187202530652752340874763829353799843562895170162002803554747980858840472042529133063969899340003914124815426199153301557175199515561792062856210865394842889035085557516113768694578071441098451721672298692190306070985058718715503344675933489670226831821797710544761538689322773754968152591843030698073443711826886072432715488880766042461526501190497815522829316243292934074145387862334226880486474633082887514064708330955131009564628144965735565843588790457261948030026063425338202575167253864350657347238359230278987825025633243948044822740550379792295087330102684632594495282914333262161928786385466210810195085377688036508456937086275840169433784878859951384531142969880017541276640739827611279374380254565190245159431851122288710466468295759448587947690518758943090366258494936239695264878004387730795928488069070786649987183758846930909700114672170602549432156244225329945325343943973329469477975154447315043881616381219510000173980367726470923210539528247732924318187340188798294549288898139452324990996033949951032872117815247036781667194061183967207285476749614605491409195764488707588867919350666714930912919148073363241089460949373377655269840431270086233637566161768437076033697892440601720759457009356659301264706795154043144807952347374765614957606618437749895874289068714667565602712849113925375580329018170362304484135311068653118372091718591899849376748021778946207443434093779734067203992461122866809104478828267508623012357705948668262512496778382269285240099356128486020406053890597634770354689857794017237511558660346847614126627171391746639880373394153631362387968783476186386120056672611090048570472976495140615130521354126333592528583831152654508046275369718788876825492816409960508528602016935073599043452689741183445985498364659579750603579108816403841187944779894008781173098491844885781910099246083269180302518638727562679698216642403405791869307663302057856187775558977403629494770152242616418656217510336522570299857829246911144229815477114739189092505685688817661062749512995744437435745991271732036345788526447804752280770175157876249396896582860783286491026358071127078761457801519281642726667414081779203616117900699459633631831432094798431613559528861588256426094819178023337123236957507260745803716393584652990831827105789473862845036321485590670849829334349340105912669129338084035809478549310146918722630517106820569805999392606112125830094760185465553171748054860501028770588099176280883170971725493840939826402046842896871998843077538994708271833498186837793211284883192242739060752487769113447256297615947824971504931075335343771832166127611632585551528152010687667856735341870918582628814688236276073614292663802319129346765314963233057328302855784101385218477490998988071243192345248695874108353214834039340991018031857212963966803915415516208207233046889538346310286778467185081927532193310695477676661454651996922013167648067723406830634980412880255134429534476924048364800697059566645839906852119673415100540745059325800705566545425415359170504628298910319338429299971787332364404166438350191842477207007182700640513039325345456486488113391941020059121422158026146494610791467949370407927945324015379234378078029289766384215553349735227577684163630880428690560957779732926980879079272937277297263437047189835702689582023803746595815594958586930699564037101482080154306063903733827178171285430766974245815297683240529732799689744110824082798552190862688567647331698532617253327525269002420992540129724936109476970794252164150695764246098208101382634788838758601809386395589818808792082841823259634112400019330014103631519455106117143501105705919690842731584303902818007313442839163001580809454148119383734467163657512577462290951989299109884927683649631510070262456135681535959198129757998470649137079856091675585515927830608700752520899843913238628375858749571739078263206231218706025701169200488999905906872258675276812155260097077220658850354601305856482744924536028088321422685241232974074800135101406760186337671772264513821677693476754841157585543323542200488372546489968699957306493173426468569408311423465711650769311559160669465498913815841939617139369749485106823424643285760069979698226927952511688169857491725242351031599381156222315148063556855927604071980762206853491106486036768500793953450495504472601259341815551031899979693677521098916489788338652932885319493251131929220749379175524054513837762561782143338878997805913216482171816079514440183764151914409989026264284814037034994253519170779901326252815135255067125958145253726168766203252984089630360551643300751796891534654244711147024130552629450210917369990915152478030257662033818248795379301790002508480139707038980451513126860178747660839937626813260071253907756417112880058436589647108515245907751589336518789197102928182310442004313390841197417585712217976244059249022273164584222114050081296261162075785461346510553454587013055896638559877567655957699744712237207470283944986274559219731262881543863982921889387877674521731282265742047228566420319594790110363982780493689010194041150736444886921013980882339600931652192696366459301400581793439666110040938843197228406561750954136996012694123970132686393332532946902454374831912484743831299917226449134652020591044913031277079142813142029789166770907915324014869081617944359009741534555374418863133619895163303335398651631404318141047082397677016134062175191550784815855099216162339935093893233561272430618785775044619185823268920694904024873343914537326690841810222213640261689585543148868067538505497390422570354313872580939507200715717902109299698104582795494456655466953096420369288833698081140624121891669305219528616676747902968645010350733791626058212661663324184714233545081282213492951900614362770892873954012620718160073969097190984480816356564435172362485760454975101417151414653499158283878020905621156687202976226777354706279121220515206365779413699441438716318873901045102707834889122584686741736974753165020283080120248415934682933677914173568558468215423246200990137863341231811830252270198856146615556346093439864435520026330777384334245873380342817151593771190257115972884302125359008512373212037266777308381819100911855400295423476109709925684440013184471428740116952731507248708532907092268589934734654271620822908226983282840051374776675105381557265941873129123229462769862126454851539790674871027838539679971744564851742759275987188050248778220997624864589023768610465737096600443130814090972834120472570698696244983335602389895824151413134082259015596999903761769375112144582409193866130873415298105995093631218189318290280328290000949620394751421916347222782568931162718157730116251870411216031456143719858210704836644032565753795569451480096243665744397217778863533801917231305707633447929391614127111638506094865340446299015516390755627232484425025292017942739611620075294809347960477625597875548158915762921447739548168945103550258701206624222595115582713203284363578026390407170760715801057491439308222727950464455814276961412566050678739317833820023354911556418124041864090124486842814615115811359719427938241739563815329675203677913643240025836195980281195282851261652162377699280477524740787987530963773846798904387215477583723599907785848885322954502992967248238189791532540953786842375728218251298578537276020530337001881793014888760626735885504778277683410149273085982307661461003013720845561296399655993099958365952235493375242446621249742955851053309965130999431284789916171355348279415845189966619236833550043695914006698373052832145950942676506532634449395536107545627858682862467722638042807097466169308243621880559284530126718578755040472577529500260605416486812824526254009804765172001058779657914141072928651800406838595041286277787451887860164349252157836629921908934502138334660293445812040775079388942439016072888532506899673047292114249218404665504824082713378777097620270640905254901192173981125226607264887451796457862798877480091109914885883164393402259482749661407498595654193252868271929659878904125946150543678495188037376717026400944437047917288152202860525642500681480222926436714318331363962847474535933230432572783326620888696130582540281100774907217956112996348689870260630838538761776525344885679905498347462425630607298500194006396342574294755782644961565501528366349240545811609015632520447473765171729682226755918177849010979495498527026347688908647210793804372665375761240594786590633410474018933026055378234833720174291579154484443731085962706876991736882406985039775792719670069912948399023400075979198596491291611358433719199877075623530450089355006285364879797225758679551574007365330237120198680592695212430843371009806836241340505680200542128122288742802003746476857084296045043321257675461716733290357130024995067717709189361274305156094534802665535983274669606227909540115122127521042989713861506029950717889532934389493514390159438676784827959380291954008543576858313985990466514688040870334744828351412527827136445325320787772327547801816593335344024751138164386735915393905436936639106097052919497604582173426689194047660654066559555440081070034222166609690007521986606284469442240996628961787285098159544914527592575993301916174156821808821584097578222644925965616743432718693415913882567294308225722385133140666294260402134831525357943258904074852278979567921463884320980177530329882186921691954381184104699686996835168285674151363914790344521553604813942470341808695013116562514277458122414886325459160897132896588942211317157197443401483707903418309788910792647106088104427502017751986441550101488521002082768320897984122891818563261489794619205977533332524551470792302349480936788795149946030034364440771878947819448741093586040729530991898772428768415016505667271490680437081832908156818774054546270254194578453324781740372575504730737241739015852721929259752519425115301478785365297128132762399420641604523855096863242697759863334108493395366836780074626818355982594820685706956895855447045917905993585065451644011068850369799973006955899641533850237506842519292873766397791666770411619778210357536460972273552555079639233944517638990689392004660794471272138662552184726746674662512054847100494084332372425846298499425121287037839262428384709556817532423758578746510656637489831667234159666999987187876226620963008166881182427380746737269407967576700656762143603778136354286111891551490756876354488990540345724084243843772126102482458031635407806096301460316392257487780585435727910973506961111086828791803357479867563290978485656944019897700181789618467452190649851678681280023781206351488539035430911528002038341117202425128256972933707160732959946715297124519257580247481318761542870820658254389114745351758616531761346745813734137098701007779260297105532956870324601458142068004619673972092722554199160164518028901987033257689136077050726941626174462672538879954348220226851099446343693331152826392389313160427347736161287651827735996956991502348782194439109961453352212260553742172192434751172715045818264728871775067971894852674545808495400381270100147804618677899806160240520447660049542139642398638998520729575252343558064922659185295486207085618126209750316530507844419962733978523314109647873204278596424040399903699289529462396604742258487213676010987539885568995192635160404998211289052608531987010778240163142334980753097858904811993951936342375757166838860876158063341566732430390831326902833395186317782247336324061459445922618147567693045908481122672976716489716518050342106982434333864320093158835307580138106557324828207118118675148123048036722383158941563967938271743605002177846333406356340796385624340136525932354212441064753192423834341736418662473144343411629073265689135510884072670464247467849772569997703064041024279710661382468305953700853404169732651655882148227250642059611857558083684012988854239810578535090909993158033365566964138795527777322457264700828918837592314156159393625049953069812760158967891935310282824493905587172572934188768640017665930062712972898478162724926352105772542430791105441841690641229688799443742303548445820891446991673122623115465644460368689069155254212720444712090543591217290127359328681928599876660862121265452568632989865120952198077238395597315292452180596371212391037905876428395509472648203575065410490867768277069945058570904343826646128907336603244722168282707362867870622713017184509687379156395674219113720992592206903555408965215045460981659946759167202033980421972401492250540509017444520647271076497429737099651115313795188369890937989475530684669333882761878572477827206445788509142696109481616811496605141884086271271581517970126062967356204189772376147898110694606662474029507925389612349463258928141973766152902921848717131716904871552060253700458693992076102090299616220088356410985949917410849206143528021482841805850898847650352604951022822591496267729069960176943704193954447730002447792873767585164645430834841191949347801050804959050817266840995000004323351171036271421086195753886938664872237801266109589668581251746532762537932657627025907323911582980196697060889433111969913924293136399419978520937821899192257990948686983622801854355820951502546958133827969571389886518227774500075932062341023970316759702525958341316071829609596473272888508319529659601625398313441993086915401455604581990274229612637950943721613295808341923902983469665119209634465648525051937641950067883596106401511053577718433440540551994364820541346911849587308719000647403085480436502123994431125748695106075729730899368747044203970767738552070763251947220976044832120859030973764403562657955831856433643855231384450377773489378551482333458659075362575111569150635611215398949144613505415575431946182239153436463649997854016461323019481574532922909205577375030567158581982727274046695775938079159210863416450236792049772310962009133117700452509338957855637680949697160364201463254652771161120833792338186433403650665786160983263718187556188764368968511294794178553058953797100791373969228497104730072660300627370159080602929285246854574382633461108411471035905428342491800716743088243756160104592329770549314427299303244839408217780440249062751728584921167263882822911180061116317408492264515330776603237630104968938856322851133318619352127689376551081313734204353793811575020962825116123986871070941192036997605550145871943344109896933130600073168587667059719283486470015762020368367864908079840470738476122128865222531272083434960928345862739991388943804092046868536269600335120723145629015588300011221345872148157462739256125552305970598259566467446303599120410730408703592327728520977225617889357628761226973314152863548624581477195698579987138305167052990574772690033751812220390811166906633470246803953004751635258715464384105691800038913463900495399224769911843970868788842407412788267642668130923671616551828720701580706644240319547019073327266588688544060263629160498107838602800456065456517462430213552050879055136831895803675475565301639163143233625990897043405332984167423560687226580916247966308589151378287500332654741963199484040833156697079043004158125048864267927786948733612621443998919318728223393869097653743954790213812879171806111284303208247759488754317235706299575578102117453777894165734021909716843967244258227618318380364025469295959287767110741960857741329000310106050162061533671018410209862623114373613529279502125597886664884285281650131691902539599207996693942405130039247399437196927641074945707906784216067198889512944548718266894103701023677657839551851538504522962391978481133697339070466594542291534427379543372250215978959080636802398752390914176118535749412248036558376107550147764579877904242755236564715939979200706246129389686327169081315015236949892437415772688432817796352472903621042049546911672479944256316288220144423897869598401064454250694487637706685669621720027570491989541431697282106089788160507269977520669081528761027642681963509547852719706233836126450457737846136643342882938284914266018055907527139960835761323781807718185741871239844417534460379891693191466158662816518535508047841775690559954481226422269770933417551287524417332270634132847231489519317687959088501178549963574624407909592062131292902929906665423661110093204909101802392208256616643828486921429073069019101890416389966834168614401273113181688596841567655050530488166588391261711275454468879869753263508909318244446543105953831962106158078846500821105008211610647945157629909229733524336885727569511414935958225455831876139778350587308104970917828100069728046919934653287064443316067099198988990535097763942057733427193768524369709650221515712741057441896821253638475514207802833183370435961995541265726034080865295689988275719108604880990257804486750573226085777625858983185951263133315263308124900284930905479775881216495704036085042492534109116385530411454587767316767141404331102485273571288413723281253025209958316197448317199642490429571737686895440982497594903088975948425373962695882065249981171106779617837440539051000835019754350268195972943055004333851448496489647339735465702325589619514921030425303414918398596872574002691395997460185302632879014156348430486800168605730222251141506814572109692820122694536679599199185559791479333775031790844969478866606897971124933638334628869785449972955526541293400277455771345716129234318560846779711740422631247150874458195600981312753347427269667254338287701460625411228505936368515875599038427687757877240337725052902649464521316544470951265525644506642647483273561640511953333789278020461381216342331689828916101058505334396666165404707315050402267966183162444846023254328192870404365607437691208204015570222684560391287185663233900882816408588558472287356272603966334113281668456281046419806056701006695518047659376927234092705420900879852572388236497896808962343364947497443322781076713169264014074155197203595447899801403566481067614095834223702496320280841068815034903721358994370982345405922769355402655023999154685894721398446138721807317409353695919946284654678818067023578163138714921158521197488445512784254668252577431284745129361569343782733454654584780958869826465345692578595372422125419909767470741808546183981000031735037987763104300173819968932507264748866560688140906347629539524505883974867075600497331824291173529959906103950923461888831149573759085549078350498632872570422082886814581342486236923367940903344930098790604553316672278281061290489441477491897509279982460894103570673114489343552402791262313651197376860193084354167352992389302184719616885066898508171302651287693887971338885462144227476428035823424009003383740396132805536926714479197641767916164867774282033353479303912479871047065491787393836310086391229113109809130037339231629652587407635364699550129382676655926950588691767044277621499969728539721689731609489329578080899510389652504133160720429228346855765921122782055819428848397954662554631623087235888676386447777658075603925305507986512704803784747680330499718604402134860882766915612967699955952697239039275136584328985522695667021430169992257435262387110520315276504856965342248760290760678193013774675568637781358508503496957080586870679190912291905211469588722762601670596070040395837523238160607774713754834763395821813332284353012792040987513937076507385203538444133692845127571782657798869999794257458798820664954430848738121639464530782169442385081547557370804536545102664132563120310533345777575949175372273556536361221090681520362204861804685404596118256714409683350511489859408707922196578926392461000040354274820198187618991153438808987272170638778786675094296386805168303599499327869565622998529327997488221058372953575503974881429030407467738931202295538895530458568761435180076419070687177779002183026855038557309185134756997363268854827029829330821192522501121621784601186269519988561755636703072377940539325409539531581360123958873988646276066753296868663643105569960529931982041414679243178442763869632183396649077052389746610617623119803100810522613721821339570262192966833599438171689111837196588160316273915143128851208240901617765209078500176956021373883729591991159693215426942295460494423351372990417695582465609843557600907687603358571557987730881939290279789365391942490710639425523154927784021350892314607012845625238861256208801866380397739740385655086666920596710249593217498123254788475623994733794109367030884818038421313578371680878382818504485186487025127014331880732596293883064464497184001775495310484419325322207965039387565002632234341647906607152173575730097434388891110473092420383810942411510797268532543712716956080484460790166307405661406670446079144412697962145863961240108328478415678206413072904463764659808249885293573163939010429486006128498234821583798542455636425144002230872039244691131738120720592983579889064105092784999054364183700705200768979562525368727016286798503291051142028778134753152764466216876485678193090544415771036744017741740345747980427512516493281491859940487439584801830730339253534910439804331281340299732543679656623260826609293930036912796687532852385167146751013056174658672127435352921221451280682093082049415376392066872894741894762849087477080655059385083982843479638040409176561696684614707997256459144659657962485575897869897343320872525382952923561449404651713728984110726128232172481863483964000079582827447547571280626728888885824974177107968708093566750280340786572267092792913558356508878000009622911785627262001526644540701048536514602933599699677609191923790331562969071538070945877928689965478186758767741174161208624986192948555227243326850340905350259103566664966956575466365012024025537293375271039426118223841182004772473284363038596102804636135249590619774539323896989493131976292125981606549419054474195366293796448171435723857856707712799142036367215466005476278537794593783384215191607693027863295941339142171801196279807960765774097027011573503914726025797302394452010273720644614806997220888167479932721839008638276085727390803365816001576015718414853371498254218971790865580381810993730930007825761838278722993823251028759298378983623151145434138227368838507744668423909021512296465827113392724554027192180681713940460138329309179646192438741884238810611325661394076223368405098179888606226635901328900870954771732886789092675338820736843125819851495507230398029886742081678906100436308717203142275393036366550535663331841409148255428141994934749077620152173583662004241734602157266330987641454759376542592543156574983331710368786281901986848637215380504070234071989359098815773419404040739054848851491951957057102178358800973602714518834182775019681893801407017437710202424318711676281138607136724740333023921819706819264353973164823215933960571669435045532818642844607058044397009635343419948502318753920827116148934388165722569005199823684887250587033018067723265785623709117838246655175918216405039139851613245113532665182071762348049695782123655510415278527669220220144892814683423178976840707637945577994402320092193203235378117784982702680845187155721812986360604957163130965137307757457581509661038908589804552777304752064907800317486399452277218417003185879344455127978962191199767040894814045509515267329331619507498948435290158869873625827533044975649667253581455223824603198054511710958366925243954994118225491256046346243728307878240201093940998722893397151200092474059527156994796622721667353078546588178779901741549206503639358984693690441466792689255832364573598011549025349028881103354987153134717975164296123623103066090910190356637279346927993854664413210538844161367240132161282975398901529305540851574976768653279562852983669696740686719357564194731245150978494919131495203907017362854276036545333482112183312263184139287845539041647728113592945550008214347206382931240519825736526016024969906680139698809821454138658656264517389149018938722776264107418181174656641160672390343938064234083482941570411366500370396190499735580599500461965981853138196673110786280769764757160464360555967869123697280438800097878149584384243146211276436503430205916948540743168446087121947444431836898209949052806925166883943761467301198312066395641483759115670360925351159178498407726414858529341770181988718912974761176480185287232785441514175437663544943678568434626363596114508909154118906600888122214612989566970814950701147101578053976780253739740439294929826408131625347292649191988377148375745598200188647153245373860063592141722169489331449351397370144526664760101813898069437337564284054551827716879278894014783877366255062661886054894164100598680465122793551423260474142159485642084881673679844172225132060713595911745961428222210641664719892157667330849598613381571090699809390266646298241439255283866649775690590866483960850721182939852074549574609404274220473306473241628351198309983747173260191200244531108403024417568566125699245565545108634884969699890068867573870605790101959843547280249245214226569932786978051255238363065358977558572093123660546244024302400080490067751779382020642817604321679257076776212524377476408446171346514648917489548375149084269132951433589167408985627406566659749476323157903664131999885957060682971954802746941987205641464067127364234772518877889743679232338423084119241242724040546519207504364391437250117391655877751485651773277478182471905631717113530289743931080501394970537592662642824855179679361072201376815693361042882022188864009099597604821699812103755420008391831539750013631069589771283652381198653065492333491687161538342018318147374175860046170288365709907369605766047901261630416744511712639878610648129368494706055783732898131798901672347379765870586669565446533963723094448146324150148820185040262852088587158848979156942123705929440947824114614103854258849587966019525166841022008541256959223613205154625081846744811365325274329576786888060831876244107220534513201314620976716437833727334999678899655418388055260999027530270877908979118047644896664201378252092518845908919792129636217684724493155108949780611564552541081868134303586409076259453308500040238849791848252865109413666610995003765480996789720588625376712799456549360810775539331524110158612788943468084473652917769533039233045363430743495820465614793936584261244673154697663330833298600632991429519346962679131839881804105459316138555695693412790115421818613008288051510375634562041209702554366602508674041584520261112467482766820636431007271005325182650743423523556792330644946132577848210064963028536046366687637784001485234450188558751215882124951904308933102046741163588916375167280031577702661163729521022867035558939453706152072818341839276313968786372180480308194920088467462102126210585215273040376001615774798781572892796811040200162618790653844815331771604008037297928659108904943839942704335920905300159576447282832705133354641753497212717809590723024700465423968892996067141564644502233485827870817085889788193365394727577245138016091779657011212443812120731547670993614913956642287247732785702510286904137098930992340024771579497926563563516962771191476504808014747385199377997008100566110222574598703487688153616053628610567710987481121026690026838116087720388153002111858957853692644024104172380266334795247990833004156384505818359622101518422102325081964295551951241957865523216728335231563461960284693348359053266951882610497285342257363499142266956583009887874876648485140911744039083095742836210747996089124127407074901835876654607410485591463359474388220530374596295327847898112855011395483307531203438530687344523004069284798048799120083016532327848557140543276039956100799073932145279738956490504302320889051106193714829975665973448881212615424421463067984553521205011287555693261142532497430111641745878507874497123013949391693457792348886135969357709180407219194594673004774466373120380117177661562566777360841125133019504871827936770771841339960535037559810982667264221233580810231393360861259712850130780220271591429656250403069037222503538393105388352284757762338989834855273319874427310250537626317015659281323983780018487454230612850892793520940180156755623939619935160018207747656481032630654163273665587023292447655883719334264922861685653661862484906782404213385241372973496515997889491427398571897409095346327308907224506399397316389469346101152545326302205745930452273165775495555691473105977538929751843276514156665141755522970706509028854791765848608101016792605862023282796478496346706834374654646866755682210889354417222933147405530152877442794035553539519329040597098932620529562621389089764675642468228523777141957800938775958639940330216377408836186781213782970738365689398023732829463708371145894110077535493426350690685395988907152560119300728849685570402461040483087061496462375480090681859735296340336446538387350592505906191112673215463087677544486162548734915392527850242520153449100057539580415953475896619957670664833669779221789850629061511390211405749690986260947484920156951829292342457422318888633289630043200007882627475837626273202139202388553283488670403619998896959409213558416014524362001842387916669761480409797528733739178250051383495396085502771483743794198216782338323282553271149546126549182172931699525982248645628492094855319170639578423049697701740460117744534048768516123208658172444152076933880924559738641958413150565225946137161987423115426252009869846135243236551154815281021510205972694963529978793860392503689879388283226793242457348747367328986015206524981903219851123493639598607054124938467140048035870099060407516777938586312725512727761218443247400016900311733953208947716301299790576099858697883477625186770983647649640706568528778004152584760615706006164867458920899066143657905518508817062491600072266331518011441935825967590535381532329416790968429240275198885483780519813396647972470993768487160220673186908409095765177778808607260511911871530192043430806255930253542166376306098675498305713287034407782496435769439355502574583860331711756314648429183893913907989490015231037275721346641126069092159326309943350830422129774901388774094173639461222969470626528003168127754592461360040954939523201929180976510008057181123131399959098371726398574528118757573268263890431324859960697725828445231731452839598459618441284052917775390701568847627910033166036086262880559914293305456850180542664942540223643807940443336242898503391150451516516952791907217434320366583786906002829866936811973120701993046616834044169921399625637007194468284601024407732113871516111086264411832715863436455772402204429260536735084103723453710702241333663530978204794402623892690929766048216832025232174204713316580116388745193265211743290401589161479458365447624013751710978826445788713649050745561870726668926964451536160377185610960126323430874389231965513417583085804422149315314687768580323498893388044988782098847286670008612418730318382227371478898611685767054866789336398152341488328171221089193916340799618495799212920969698549911581266078621245484762379504677569334316262085463134640956705605527879634903338867655105886716917381472313485378144397625124390639023278918821457933360442520721054894592251447418039195113606731470191120511130120069783172225627967312081787136153441905899757110277803476143112392273358818726298188505760237860637531172285678639328298808385895010093922095759195927699135606405497902551086698209192367727826337359295000763677027279827089947883909722719050920808310008985795771890531364041238744706983681576910344000008270981560013027624616239221772890046165087584653199548475158326136549133356412158603594198370139661799436072423468318658275502065556665669081178863840492019381791176700440083218155177003631660897054459308180723239713040460342006678382900536973280191266933522793488173189942780123532403618721548501540964892133128723726252585527360552944817094069263441912980341602721056999665250928720105582187026915759515146205149710102215530291798925756886139501095734613153531458524512758944548413207309501529022766023717670518164194251742540555766220475145807624055669466089279960891455979329588183183342828581132606555273130214921392462042145319561322893519985039576898629687705765651049808964264403765658457278446033258872920220339999188794478227012507412573545758666047650834291802177131721419791738999657500443107619630610113582387546335278759558578665189685386279023044307243390198253262462933786065084307262680416842949091877316192962769578907347139332361087005231330628442318423132304475519973464049867824964469152204962706119514635980836577572369363497772310434138238139599039820278496975978575651825309893472219415568808052905711248710439792210323406484040805335665999525151597419441746375633459593107323253011482822544968966271140685377239441396282012088832574598709733873937980164788375152171025384241307608918259692784531879371147464097442351091891003206103472987662266252523930821355694898913837387288782295869071370122961011180458834598751706753642572777650128812148055700326331407050942179778680999988062007402539655221097786870570098237098140491309983823612610610022265598574383887392536503277253156238420376503609111333457619514512243691714167275905350827871595023315631651063615555013641295546940952336444111063682025532475920174345921931107633767613973056609038343254209977432968491253074773858158957912870386755844956535067560431518216259714266655055872532393276175719139937491846037886414470578711516565924431557964198260765828945847494699550817974303856302000345478210105913646767228670033024632368178799587912268062743175650807660384869098755823642683553200219054986356150996847574622651361181254617179730645943484780437470002307863696293721914490043561964302460990566263001284539584029857823092176119251687639270370252515465919489509372220420272614008941564427294033950223635341522391670024064709193005269776391468906411863526668251623853026397550780446742219421555080515903680892368337136721832569630026317109683197014698190732619335677869028521022751347657559308439103695304609549042891254801484447322202600498291273992316562849232897049334440599816688397644073962061325406932308395482849313949981145756794620092834651304663534809972271046341585581197907060340931118581069676885231799354656698025145326570222945984112482599799085158522978818519495916922251203889759352286298479134963029205399983073210252859667116651501411806812035202800881089104477147245155118129608839571490386144246675527623242787600091073890888640140116630089035768929127547971504647354066200934617696348173210092997987140155124227297631049810467684981654307207121979132536929737967096906420839388722386123283400625360384343105307743094137278702697306389508772220445987850194609130436635060163012883327992536173273270955625144792880244181785336033755637006337300206806751461152269106050510293493169550710736797263711834626173392177079021509600168318948795196826175593201593725737936366146827989313012160102386245729842853423329457276149020381678359612335438949933213787195886844843213877914885232794483647120149056477873430751144233039585602063177470922105532816231377447255603084341140514709328375567732943035985811661929928229109784401264891678978862685494502080165628692324098269014591721140613275197814855991240851901062280758693674992238378732956121441994531959693785770881454658838364772983625761902272960052620380691876487316133902490891684937844179764313142204237967694874679322284516020416108957635989152283427435391039130898406425515750488206348745119614085988699095698269339799494976028310185295634053002641310629065371284051964916828506066489785316374869339293705302390502132653306197969198232228434180364630300202089453118436734869736373214824730704621692901709614136472806726320805667706367870999034584129195932176343002531849546205168073866948039647006622734338884766779149459017909592080142717175350236076036881193118741226227324004826462369235999902101214637200047533670789375467291708556172953085946190152447519611811295262043677216618870525650104186472810618113559988035380521199329037804563621161216271643172180787379415218341559506477575106000897271321654882895539637941421951263071702256430705321148127952266947158065627549783093372446864214978783069829764039825411131194715200978812837496550156879541837426824550348423845330163690638311130314154762650701977392947445159255143914281687739947602313537409690927226567622969385797765270414809789213121020961508145564851273885002570481850630381966162954894242685014919002318576950807883787258856387091723025111457432884029392240021256053870540311650802777828162196235401279358265759375630108533395680656046118088524910938039158261509505734754406451135862527745842567928135285638783716534661670306829774429043335425132994180046485610816119200820725364111210970923748604157893116920026274733013762214807826252881156486759503244824767228945796157972924633264843444429629282438895342645664368082409269890846897607879354753374944145168319270001193369170838885908661062464293157286684305644755527532037681145658403033339698559585759929534599730485996152363279831002435226431482826421861305592578046144177384765657397917595458689495690889472451243144540377385054655111137472080435321108425576209369585684013247249328147713316973765211395972023855600713433382146270334290970281503025227780121517466339935929797744732840237064282023995699630614536160640050178481170363963186699739303884005729661522793946528435370933333676002327850501062011076993736603709932572885886597845027731799181804245735808121474565912279929153021891174290659364762547276845079815509871915648873105308032870482755861671254920731055950197035172144597466971831708137213131894053079205856008059509809286972143216426814815489200066474969911840451177571249805972777265362623008211397789990196077157979470480784007077659755607767204273147642528753202714256102012363180108081552042432667992421060391887458172030905639447680231288223133288290758787561932083337738292383513192317762384804668816102379807315297757467028810316759240776667813474644982814847716260583874900700738776464917652576309161754234037607658759851683183728457300466237412452133418349917456398163730446491619669240618454066390345204848126236859135395555383755391270736191491793866222212377637702354169019002955033383015487619898837098329300178023181302836298520378304408217404445769989392897342957284474622232868549648084332249174598890856539746500160499086539199928836980820345247549252505731759082465214856454189656936068521605715269852427668262377055829923914346291989967479256884230372254982944773341973005119441467697396523983157985289800473472555987194906228407403140939352375980659691545543012257226443864694305170864159543893985771032775202008242268425508758256872221971907879265648837557977994928863122880926421783140559181365128519204097931427649443517606736905925632388405167826932597447175972283761927385539686982992798006573024092579472231937596295011476009373621104976081038235358377521860506511877159039454520949045705259869497975083266718324012305695428956212124471245233321619714432417249123895988375151752500558414906021864328644810236695848491765107041464284588871778844780527767501853921357456421488982888475238641917271573610700273250846541614120737407697564877907649369942469399460103564704760922045222629896279951375503193747751957945023996013362818593190250819217660475960099503635005867759274421648194858184341985025479616750561893886459599571429973771886524756060819433277911622743411097560045530366042199068642457243389282026435671656152261147564953122577581457235396468676894111094804657532338042810140237300514836139731008297339845272465398762291897951082530097799819203101463154654387044227625789605387327561144664138004945024581596455442320308823016003198927103124427883146229991284222350712307876380983856214334771547755167651370499837501312693758320191915700603473506664139584721211770203135186755693347448513353672468619910911654013824225968297982537140619795727434252426170716028156844970910202810320854378095908981893385820916526172535661813693211169496343392886752064904273385088096340253585293618209303607969440198839394804247383544618500301747444048576328670968692873926444816585855084881514910034985465725758181471447231343107692192185639022454128364692681843002079109942508786715319132787308940384194233156116348718767026715266381012261472925968967097771459299892719286361448824500133987363581603272360585761364080673762514558121970356332298837813317854396627139368404935542446366385600392989244522861551097447989158483799852564017696342281699425018918722022948448642999407330970660204156892914031879200707937316739837454623510542288278282849389678105723112496827769568329487278990251616313090855191917849886006776015472448974132135665859284861311575139882870018585293416676853861487740885424889276746962167717394467449307067162968485802000755942139622746269035167228764147712484993672973096392953131698349584064008233817846348285783081362690565193221133960906493337248763701128080516117399431012253614821581774466906849023320308183749995202697547358372696952299589071821334674340610456435839928784173098449887908181078614920371645073817541905270729172118229105221776704824865505875351371692525429972083878721220994111213577684092890257404849153322967524026817601583705079105120857418271453404566340572720339521470715578004455032852383537814076076568865575228904958746063564856130388355555818436427989453907087713809404246641847868550525863140645109069573941227732935168272927389387313216475390853583479645857717579770521307484565689940194623297771369665841034519925569263306113284075352282842944471217433721075454121294030603810080064343418542945457992085410239735283318151704788589830102478620453055336106088768286793204305367418786792576175362270305614830707195912424927351945328790859192526599751327188185652975615548065410408405965480190235313571043338707434398645370295129300055990600087641305460480016521886949428891730349125961950838497935482181444146423287434068970285987122702314032039955722703834545266692520128253312421144142460170030864988241630859904456031354291084001588365933732297676747391934761030369009802801009215621483862579520716248152012509271300695617597648270650606584078247790842233241825258147182060074917441986470105932650068397837306851167321986962002128048383460462583614024045618346933825086480102302819463310590613107708183405325507131654555983865270407638777921050128817219233786404653235706774558470131604139490708194131171451956589290566217534855407288347923053693124226912384276402857844393973384072040662787485009818888191847098406783300134308968052311352991760646456946145646063645406979890215158568425724810246664142626555352500767881161945046317767878672185658915006849613207140437920119521944242126121566925778579534237089436460841685094293647073872243566521580971928438408721004958658056393270781801083713061681820811138893702064148908224839375747399271947942858930127801355987365623727839959653885293135280713248479403638404108163584707868697159917169263321120359718402057485840061865553812726681203172601345107606796335743257852256137084544025050205697498273249676247359241962896893810343035452905958677412317762989211420763529912698000831994048455356967431108070690674156284326277862542306149817372755130225268383982827030002352243464908831474429312048430470553133118135166594597135431351309324013762563397306256058283150540541082974638269896502425960994393843495968269000252391113998778669871055138084429127891564373081611228664399270791474613284477568276078236033028216493818112240969262827438925901191089015293295430642529390825938419691917647572147177237369562119578366435541154104125391999419210426771110072438328356220327566091436386773461830150436044871023969019628079710436557064980092544325195535142985976751650141576475057296300979654284568429704486228445474621509030573175062716429494438731687765666877705328395011559759482374152129771976077750139060455959534247920219396945685087719190580158248380153600559571453229929927214966395350786486245360757273226527972770992653650608026647837401850005576848980229956288241623255321342787859067595827241065502680645813707590683853661340971556628627929020739964248950693344404741274784466234505917671695899189489476977272831265094762431498770695493056120146544332798024030107419584347365320160619943263689396734634884071846116555693744625956713707993649696832774724911064956287470879555681319159241421405284688049804611294546250030612910174776128506698709632215238895424212534251156975299063898389852432552107415516560360530682818758559682339691264595490288459791018562692580856198942179201994093309843909621474504875738085054189174664839470784868150275076259035013212092165031661904482908188215640148691292216231221509055639790456493627987554555427061998354940081140402103572096320485285455355955950862077233380132713461229484675726310218275474527141488601251224865429689397173367528989961898637622920308747930157196008536841821529525167008734133395571028615423291177520060687939361381252556029029808476920078198858252423050518361813638980757954682370703459901031745743564603377896912053227443951716856810024701716083401827955310435446534708572172920701735371180782144031979473245605695682538236740307191336653542218052059839825322560185624328128779867667606044692016771945597974326930832592028110081043934191282708334386227817934745854792307456361755930815465650146747579665477755170792406238046572078057138814304211415363367089684407592854546143599509654813804590138653357304350815504743298642891440147358779769193758053395783473546392172952932242404386557281339771042262881878610727804269365730615828175700269112570322458524945554886261446129072059668360965044282922799131929080310020692835725360390278890273558697658290251833970758346494883730114958760098890444936193475585285319900062616262233715474161699746404778060611189458021697044781192456173827451021554069831824362035432173665051476171604090296697707153257975876870226873899994390685831939542872554850409778872485413457624795783622831617966764352077458008847774285878090623346740307186505430947293893873399816152147524308548343756348281341013070458833664924973401076537872817005544653316827025800636464117927110087188460175236804680373917960962379411206032591129917476550733597797923502946679949245250172577971115688891329850851490881472673033662629487121231362706292577308184351776432725098615476961846456466301140977101999501401195892817281429481381739031427045922464115901149049692551906140387590124837885208912458629569886758759024323111718358088956843073481626624698546035442251673748530444372724464862348329926705221567913944320316901907868690612120435515445618523197708753370014577072313817857000194300703356307808815902404734827804119515226154671338667030753190557838970194459926513746615314486910820810180262428580807662498721288844585915098139271375938176955172277228623876778157881906055826456843701094763564343399232754990306739112933598020005378786751507067004403882202692727373930216255280955425821941452284716348774945209443589965013996741548576136431756311580139336158477949271728236063685353149204299190042642771584450820562785330989381116403647403343613196067461978487743862290333428804542838050683161517464450700774309109333143765239040004830638170348123072236508026729214125870048646216782162906288297160379933187448604667219573372629828994882720957406012573932569565948060772239653825990633965286263948673102559769976682782033742616893081450267054359396769314100085786516424334108555725622200606005426927673054702160621270183058224506665464852021390680719105940542254683096327242457166575592988773538065668373428034534002372376178070386106761668698831828038814333336365415017407622474054278116591242922614517200570780148866796502824674753131959522099267774852159893595957202258052255737010837619651268013802799206490624987280551451944145431243672358591684427032924000111121200756548905319486729365925383178052935029072906108637710681303774475066976643731082884606108196007219739055003084292647058078557157541285604672824763552591634998703729355017358286014076575063198863365795152629348996672857630177687338010215069269226403435526806703765837080834906838103271961194378519221649480427994371199726099982244960212291980924152240677084644844751833185886055077003050843890859074279046228818510695256745166775836035051208542381846141715219826107413032207832761594738248118757979677281984731337948454652773717038379814797058986910728913448437851672940339789721298878971069115031531444175589083730706632565711059359906261975117460012779869900121873237540450243985974412727386515606006678512260783690631389130809084380071544549770562675526789404469052747208945347320539001866095008100132464594050972354432275993351008300214572812785850333359659367646585819727320176114296972342678031917951051408764983682915559485153610421794769049080719308733917748303420114854092497921788996611324138628952027122682042900642266546267082274837593903735984365035388434077107848423917847160083234147468739432542202972734368041962801485966127438137347740771294401873011192477265121211127508000818002138011176621294251782179492851447233896214089941282824596560572149366289831413665297540395630761326627685732024176538612072486546013905313965562986952717938255894743191327553050169151611217121013255997151141923599157861894824973217739580142854749132533662771348872117637078661471796805236725078319801456869157466981134653562751210798550990858158075165651291204996631780109241188321676787868713254512582679661766234273432409160165845247259768030472976040684426093547229863188863283831253376347382598314600578451133633966586604970236880526015720791253973930623673118904456944019051071463326124761649127841826992670527330419786364970088627999450900491507343511215578073351683839512023634462675876979667312923526515941084030397455722667767082561665687988474810301950685086398274333239732373992039663030074251660130079222170993943526735608926399498308327694779466354554644065121280228129233544060372931684079924650053596683519468755554146871010760010671493332926434062835373849351881443451953463026039428881888696804619006710987264220868813612563761776812183143069116366100224917282291016384368025318923979846046700690797556356027581209196242522762611986622029789963304292315326047285059402149069212079476093731362811828393068145542439018447527755112487961901558361180240155804000059465282973746093224669922361082140624843553041332534935236448787486391602357493404109438651390890613446987082206691655853057254591492967248716146763565084909545972276078570828541896987161557219722436321021376965265568823768605384800811092987682404123100048690525761892917947477337127251369541527318311307052629843586940469902634899441371160637384485844214328864191289087164139168412782124896892503609811832513672175562463268904673521983980192223851004988797762305156506091019723593971343034163897389253803813524547484099967766557400553065624290739315080292672980298069488181802246652704330522366063002506784203629342532347358108083837159101176672199393634350245477997899616739693825668956076456693922805412519212200754235340625235758449466030754651971882259079320938130265912456179235946664657430066286903095870351636370355056620604264044043301509946260394036074377109746910048196347303148234153024447792375302771359122317871788858567279223632027941921164266253275801396508612299886040687095005129019112543651716813234163588223467990439503960420740260897389788497795534175003031914802017631406810493964720349480033676948384148495936788834649538229286528799934495215666061121936627919871310816389239970044645560559340544170163256984967634343791437760277085462569647534876188675512411119758525871809577692704804389589938295486243797357271682433130490772863962852261032435602532322744797263627519394110319317662535377365060223118738089949236795134518113296796267652094330974910114407858522819291925117299987180594751797673251661290311514134515731689430089951076890559038998882475460110644741132003842066233755806980805818203478427105953306214962444831728542140909506084062297664412147040982413104813630510993729376588409075358326427822380875498200741997477312931628373937121080938048136331078556804817796059703637437819774352353079937959496551011595939163968945434783361166004124799724353352315560779887072998443111046677152428032735177949521188574981535167723999791985010122074482387419676698551747359768811161587647843278074001639839266959397045793118398806336186746758008556548877288908019820064305767078612458512771326778789076857216176696506761762717071827080911904361262755775950135218473262189887753961443068919260126868984418785543181991389687765734215736799707236163828991909471576081820748942500651838553423243476386756358340359262923309284128017606239904865489026385401413803765841555201511224110386701078807722136252625990960470800458858158134967214324221524644429015821946153326999743755536668759388275151715582306507339028068568124444549702646248244783583071099274227098314109407184655459968570403841355849198650661357010816352619514279805519828241408985269041298462301481209544127749411598543240906528003338311948437845821008778542494412733051106564020306607319690087378417518799601395186869633734055952076117958405623768000798595176642384828128936318512529769365632814895036741542579207532262607016870203907847042411839166072499074992908788216053277625506958466164106781241394109265514526213491654215797445447836947166146800416062653653741987245930676215154488434148948414400590545683842441151391462354552508274038295019151453764436444148425110233414430011169627068629483437433416074617602005496939181714479106922075175328206894844284193618227183376652022804145348629317192307318165903610924517185613038790955238706814054225381801923539438100151702660092079004832195233393628383121799678284288579494389538625289193669650359386551113181167742882591833824105950712572777762631825939334606048146614500632737120147720674556396949454833648648368378115938565505466636375527063483365779168692741439392220078817762564003099994572462970001255414940507152707784442460384688551323979825384623538449634213537049843841466281047727426993864882601738699422076930335415006921987362802726877352302484018721844482522000206103751979424007780208715922896090122323124736021359726803813596153147500387737570159209125012956436764554244735415967106862321103076816436915786067246460657173132912252454361117181431668055585215488823143338072324959129865524819515545354951931537378821222471634086078277574083026390459349986293972339894744888072029281260496524838966187125169396331998889640062446528253572109972417190139606416185001985494963437481694180742143872176901007687674344419086232277872776436572434408593447780840578090661425485322177448801070285881461069180719701200090750882339397484246719686328269511249902472285743571659007436315549622197327295581052940023158588962319550343350440824720274073010706135744135275916057062454942362826909801940566631635714244259287304607863111253804199518821942267706555380730406978902808789670396622648982173334108325752938946397487737794634316688096217373153247911053321740838792980214551555581543514625132087192319531295546014688173471729934898811748711870866037343103369967755409044074014899995529926507209132340917325386173794276681583905106280226428814232249712583155227267477365712418161419261084921760483427930757411298071152929041854336378597592921235650279833938623911038468539856404817620822811057168847736531668739199147070791010652047886300935243474818644542233824838602431688481584632304748883657741523369681109834709066818418601726029035386097763773879819671939145013096294378239528605034157241389812595462335938126815939589056842428125103626260084489933525970046291805788569967975706471886080674102809425441713186737133300601275884222109241618079799560103569117589843169185538163498923316749486669954033141256598206998638919046875703488051438771677452201327614689714677221712828214828950233113871942735326370956675612733031681629058722348230296648675736648589924454750212035324241788526206332182846439711956060414329872158336310060893993240703247551400944326127964466631807507181731819363992419227859520605642972501057912162774705573953378822778263096680957060603374035993447831307411574576965429685497438521175929070239820719202851319085091488386438257570500053306579866028881357030303418010461749440798729206136244850405150782325166435292068875664388798586060130728091781801040247652855652326364837848289142176821444334384473555026325202749606474324366712191591295667203624660261499079959886865974379422940792832561312224591333118391551551193120307516492190053837688957428335253349726083149345178235868312848830236752351844649701455066302471900807155034530291757988832881662423406268608418932390150246429077741333340404219521093462878763722916761472688188804935598233770732649595772653949306830929716162028311748484545596738012495409267434152843205472582527343166892862239501790360950741756986066737811881384917261868231770849480799363386974533870536101011950302401408550838639076653427738159703022767273759606941402582678847258536371715099783018362512277728615842114955075367625238668406251460441176060242195591626419820604914065265893810986210646699771384999462293242653000870989743011162441591681713600723277893620907425756165595162331803783790911421222434666642332835862391415304967892945559450848802855596012071719578015893467904385637080447838880641076401725836092225754243984598827632891191620817702892375672771916345640162052035037308033270048703911843870329910447839241092314447436270387056537770980053604486046303787029257423616019285830501515176659370280377460253687157776941274928476449824227050265836584355397144165324647805618716978974706004069266297932194294420987091793423362830076530921940490243696067361629862527341657372138377741016379607356300492779598893987070711238831623524150345443421560619206668729530476013305962390742155785957463684179497824779086726649788656939387775284931996911434909621234995863530131641285159372902866474066154805706831937792776972120499447431463224326025311480142762441820574390029129577076120238795925126804257479200929806606786180573363745903517038382097073362560809467993022316956781206875163360264180820955641413192944868590852464176804276528499412267056048727492354311558436939397211652708335309766969998632973103060705001375041040880886290203218100052903004747147953849317093650079035224084060311867641775671258566535985875094649934802708320932670437770251709092380900868612189788262367005362576390375288081702300135698278857487403922360023144082564965933033011245186325207399860574417640262989605378704275777258072496803341346555251435201511578191881144685969200835081802484553831112830083993331611205747183274832537219463747257317052242171329578250159758633835789006075754696935073235042953606573369270297761037525036053514300825695474633978752339542154689786878247196460651963484243195185046614707037669176442459884491053378066662155790435774714966333207631722442085884714311413108790223262249554571148839451613637214812365735516484271682474543769205570199103193420393243947863305055711366114953724045877372370933644383216825546965087980661444940606223793325879553216105475055604171946121346407244389843439582834047737707710536683693043079811130665401985046969820026547864856202635487970125985714774317351332607694980803854881304871313354397465094929099216632058887983814808325671164386025975585839495015527787975897166255378105771505071397073630955106451181756782144937950329738950707256666286617737076634553093024675060000572324883515649445854281712303842540781155807504439555688901579143097806840439726215915089735574003225527936346809580150439841857607766304017900039241137994621742722637836679173165516176384706798442804276992275659003963997940801865814253533004703488256898473170487798306636438712688943277746222730105085657559239140560575079959986204944232562294632440027148158135369649460302737963132926439599740731824235515625861837126527401256510780502138764452827433648743249285062806179579965030291208724889758001519360016892285927986492332231909816667591250282874821781152933635820475175581685725082152345011864802964850463239441779352437013529364719616595879552185681908667076746649522708228223970259864925277326715075282677753566000945512425980954832015052881061648929708129293776326726890407112784427777972945936714487865771835862144769974148906290861395577706313648540032780445548582826213948276017829916279565009307269448492309580540350884353967332209575987641812228779750780606447629966461292069262448498302104967242172014829625531444856009933675432074851998101642038790037627078123781883591776992014706921313014182363907364767727936626624973972492840178739582631040733345420455430373751402791956664719937416060089716095460353338114278069339840900447568133777367790593354692915497816917052497798300128301436638505502035165163896615770022771791699252720238703521827438725803382232056895746567221739820791327967863748975272007974378955590586129817652379173140599493208548492592807555712195893010760180117375484008898914141371713808178950931015583719489968433057359817551125186121184014080368386627450462249168118063352310716589190451131056371922655830524814111111752324698301918650520674736332423686611084933148632375301480225356845617504292370343313903655128080896763759022235550892073148980449064821632373360480375937350212417609103131931797600899697453951708301708837994786703984570011164829815792933205240482614441819202779694519487926710710718927760108042275299062418560280635594820346235891241944760850839731764649430058561713081741350247864404685679532782131244228917849913932923327246516283395601906105524615113843800308050311707716919477401691144338485252069210057947470186953232721554714196716618642993961215303676907570419332900753189603175562153573792890230263872151113861695791815696270239603691874961651097985355364986893794857595957289978309942885708867985099461772712563330536950603891405756118409017046984002685731680780846645787048462749730503088084932371529233925347739587297694514077910229523919332557277480424178700677411554823641861047118437972023491420168450149852690303767977888166047390240732259864566244327396703215291803734616091698455194927567059792091470505934686778124829905926913628362958804649029338463575381292598915026786017714793111085314806377432040377669401963076824211189365379559914994468083494659312862118116612245676223669038833994427265568039412875079915976566137313794610314835267936618745698522213551594405493088043241623354040870759734314700913998434333759764817370892996597971441204369245042972311836551329403257391214195805616118669497225414360386280263056361159540430737174175704589379497227314427398550584560459601139898320231197514248857595362213136041212973673804286808175127721163558905332682256227366592017902194697523587954493135569373263861269436687930104791789706170402582482673056309545109998697410078899052476826480743715127441955926440259483156420358509300723161417921652087098088409043023812917214147090186195022859619801639440998354926637462120432845630526304801970391027737948947898229791450042509860441146644801533547028311737797353028631839065289869345034688987480949199225112987162247863403094381654473318205710096465989735859142695683629190391672979339753280990851323000131925793735913571820768603721127179769764629284576637748388198918477312432585853998868013352862245882714407772785449149670934649698479921745632533204985168431099480944579311458757227327069464493266975043779864624724974954320104095576207121388378715276231452239015649886794577133729301413309007086164764366877785384845120297026095627764430061702738683349256001870098772985776590479245635847703704806028319287492535183116303773096002258115543092190548941021570179941850688981820317516232964441759323156262655808455465573776776461259910158945726493046039714648827477005768933774798334476785601124269834023588737184314366072993446992215260424531192572861047911972139667440179225893034427189178939185496378064602212403554974607905458466612532086662853883178797444217864467189757696410707275011716817554951578784137928559571496965232770481083189498872314200762948787732688455996149664993102833782067014508001465182550191570606059615173026820849390162439631694669615305049939289635463316028619052822696882194629660859368976788849759544751890963222548709056363239721824324951772990847061375027211178193163542867777623648381848903888443597348227402448637704029446751225351490134834072349707925479454088825214042318016472122808639428208206930523136402686090499545370543256372242738573343895782976025052849573914401680262242383505002304045860305889591284638749742985975336920040189313244249643867557651570825168482045723492813956684390771792247647799406163381591123372475093566283145762749556567981441642409761158988593407709372013590743817304362392526611577033496878131189734414497397874014701176024539298013549963544945386214428102459567974100015336625941732496232897143264225460393985309080351389821127947147818955833475444997405858796676546160776504661960691951412966304383893846993735623998127496053600854057962790549411774820663346530533336788188881821926372574201638066356467127670894607329192081752006404179621225441222772537274587391367225693974175826414474513084633007288726979166016462172365233827486677821937153259095053175191536515587415493490180079831585697490302029960563950965239894124774095464603228561478081243476402073565370611476371631117456858968486707141608224292227791540339453066434328180751523772103121729704219146998194554766047850437970742959324894840137033436503161121638767269521610528009859470798766268635504788900116106924191320902525288274114086564342723360407791447547447493380550372269491163198573988575992014956775371745172940682215102485361310228850836480160246649040488614658697308047146320369694232817598201201754817634106465803546526368838739259144728525004077964733850365390558542325585468725897289275019677033837797832870743694259056785043304379508082739226068511154427267701636647565678937607378981011322280807587187456017076530664021343942231170801253451621098705975949336350947116449573652111306320069029786123264669316155181404416117450239725549452406905321299675372210774498920708616588300106480419087484498432118106193727509740629447488614736204304866754469525657731053720785673925287645503875486384452971644759853855935763079363207115078388392107970124686167392350123654496098636845303684927715234113879913639275124336983393149156276698547813980500672846513110404722587453841813159777236831863924023473978027859685872528298558909417075522234525808123168215552787074201790628008600732753414118986672781470904710561473498539961538907229681565150169946896355448993046396546514374275181417328487834858605588966483143623844159367834851393333251893697319737293755071710309881677065239321881079875391702495376689020033174243540456388076237085645428838883136232195578095504699046066931821178207973235101406148041530311854243059438853256964107891508152192405027389991494466986262179339237013005721684797599309722885931067522906847615152378196994655076318667237902142919775308455161071498089615065315548122319583538546366039375209469849548218079706705575944000796405637610178132194573035351669552503909610803144099654045263208845447046593761085913927362184077563191050164249355772596068993468080468940928964280801997543193072886482604951216504017306843299528276922078297173435471103324614081276081035915085548699835512434106282968742615235342571884782204782720008089994700296838584376447272266973987277443226970278219166200109261769619107329232058076298016874146352711942267811261512000105635053180138265109381958618588164235621438250757964555266419129259338125066291425393645660966863870499550688889168660088422605150701347376884794561403807243760271203920107586395728444639509875479736315391845940241132664637709836584551591137901616267413030733593991025298047919414715289829189765026799505549110283094497651107870279587560456840677158498612242869417695246353352220241354671359281444193352966543144301748541851189537172539308766061670524557965825405538867999312309547792213927985777581151433253128520632708567405011348267993743098491983673608704131463726439682500131265209592750817495196954635501227741489215876825581182876670906966368215946122495758389637577793969901347351863319876642279580928604275628286429627886987917430821317905864475572599003928414420449717238994810496783640300410647561236199846253404753544312504295196065288622838722374470790071333585586859844761554876222173876062581555634216895787525738149192800875327208837657350048020532146977765602928243815660182167342291271692690590705297275399593706014586332148864182573828569775904255912700568801981310761205744822857168002116577599186800443277412862842595080939406338385359195892012661964529868624087484080196433364996561702699132244352397748923031341505566150061928221297548175933535767412319113529282609321176819321800487728934687408072899994423358110406244233469553785739686275782757840771084765577866796057168628997253399833669500693387462317766710364792578280767095302268867153911687960625819354720460955790484143925732296071051018776433362046732124841175674083337532709621560930587381728701137428700517361816820356145605569010755041061618204732024629587083017678781423018866332714104700231988294907334474484739710212522124220104169756904678125560621271073606819325299904591120281740648457655225855840342847933155910504569878891178032856878387020073821921495290017717274038368930807865401633289331237663580879410059740492276103319890633932342262371947425685891867174480207742599865931937358932873371376462595779729329677010719643527638824035663725664865277262606059253475794340810045667357217578302392244011274381049795226611934146276903219921580153066477366594779462677724558779297002941892705530125265991655755064788075550527798114902002326763651319213981563562678670488174567950537673120863641151996288861355755277484189944940184294804898288214599909025490658874998125678542046923361181897434370342762746598057240212744414880550791571898657333256779850326787527260006980609036475726720827833100323632343326102824335054312286578440783552847685142321846630906732634865192272345800097702190394777320694686155640428646270944699577259213768908919248407040100895708464670724187064428468979586278861321803603738674997835464503454055958438919597835570284614171059876954814337859333785441893359964634262545226810896133966229477621595022323042468700961430712023015825518499128905032611673855622819481536099502910038752369302932257072209820968940080655617862423363426704865309994746245660419317136955110617440589713346671431643326957212520256274480837063822051291892902115408091668563226160108468816730769828189718076113202478241595214971792643080811047135308351960332694527784678465529010004936700356772669866016822217003932690698624401220202051302802241131677627132365726079160479334153360838298840979317899042263294706016709373726917690424810701802522339558692744491836919125219394347904729508981256083656345106742699307239947097178458843820538427245673811401104014233030656214365520570656124593912547189027738549636592759771965165419840163674931781155488063682827261302596902833345855664560055612344697738286846594039459531495541792829765569941683971832592902572182849231566899745854121084453788931556240744518852036407820061970448731534121815193937368163756611683944573160780968018273628276756388701311653635564290000159177077596387740259151103201019520288984541113620023885040707442143355815589651808308540624534708651230079836806957718842607253193601814948940375811735433197849064414497410202950710922795722232846060611586602977474034496131049575588076116470279439298980118620007642687866510822251853487267168852554486715782243499015286432227564075139218256173406217062386218646535627162976460590848322753382461995075634961225657216042140818079918171651864742238769708659947499536592885769780442756613387877671489428198585427894851496383451980623413761259654218016504746522353932699064030454498802051348145074912771862791278055398293534712583344332969701892989256183207923631972742542751691021618219673555578034788245938882899618964306652607470976573038258878770920681513393831703246726092427858344490688366348558932397587029563137866365863025336411061870489172974482913087581543226233937596260394821252717686340241315529930028856520993281103116536564218971652026273787849711779625084238864229512782535709282017063761115427861266908423023237376328120712655081401195111810870204886676886925651574609249584866529989034952664148757580487251370043386296904695829514535818172513420845004546721342269095386608725205115758110120959256525603999793788011069730244538477598237956453806786860817567523764958650792016700797751698885382592693275396793454068145695172409814621374304360134618299325412936068161219038797207573281253178223011407653788335785266776721179156749465961446167019948693276650968658082076327639548458169778130412769539048452110994991246737993494425925754169497533798647981579047234843935954262072839616337619699884691967982933441505453533697866604475953986670301619013109153017858985576641916450786924329691186652776681057217168198727508556531339813574281939607086663946346557874094507359094264516740877936591471757438343165026481994104672273917363634621283552874150077147373081325684261337426639581119966624800437388743874161663066685706633191599810550136035312772815127141802872627852261331988121896759248076159878640777828422330798392784965936989183971494394476196197494403299578138667445183674487155003196281366827688717628098501545648539837676211952609589017200470728358653895029977058076759382275246203394799089888343091120776887362447228079918148256067303818763443090188721356393157669290361412680617131065857970640466841461453301223619935550179547054535155401443486540853470723292506708549424816439001373091762588876373837135826434485269741534973377580824389947647440253587006793758185079383891203417342070033027644249446710260319262007181544946966536414429342340502561982091012631201995494947776613578589335635280303321299588101113533023263805568685835638137350785392403946922320196773047445955984874121076391651700675779590178322170304232481174354390365991291327674188866848155143074982933324466002969405514660503684834373038472146380336216412210701305088363394240410996888579289641367759588226158943925177667750946303045498100199222833540273786248728328455541284661168959569787152493238089679493933676422753532656319844091142943213626479814371709549884394244697956519526592047975485325321777074295720565817878326575280692636349080092831630671548799034894930571738572094938416213477499127527952522722413800994791586513335207971440571630369718972514999501726669008995921940854447369748664207363774218674011210542326244234714404379355798901607848696466612810168287829518588935740029299321148850757147866122165909461828348363692496115123515024642965014589270791439525536852745463359952710694043688646202082079330473518364524892778998112744716290353734981770551526270496475665069233835183735709007491175064331647221057058102351741684612422708146359705321232951607873547971858765720702115746312507673113011963133293553900225637993101551340938161531957206341400018103608779343207924716630249509945819473737140591913044695641688820363460666280955468587862676719741169070430139945312104047187020835437914636588519430444049222791674109582171700108225043847892173257261158258062165315579119669741007919106970549831996916672272522440438549703414466265014259324980748977492147348794165814220845537660029553853203264962088064318635720693916714865873917781961296569267544188489722744292203485123613701121595882166493450769483499126127898528274902304964242656127893144339171371958539592079931829291803977003846722337839705135781535297316106268314310633357151813206203465561769025345736020740268329693263607479409171040234734193669568329030745559882198832723291450873871244410053667508168681394665832019847573597195199206079384683842685416124941802722499885814685899381352988064995577314064247265308195975897624454252514879010356644452969343719415087083107553164822412218228903713772289987249857182869471082542996533733140001059740754839220659221617809667067308919896204389290889342622999935826103708304583698547886755335587908138709979314720293575097928756011512258799279803141786882017345253391689856787320286976714877710509650839078580763352851873803068897618792138015944402496974929487223995038296684260173423124980984785464728857729542198851149232779740003557077709963563976898605225014653697285300214619571178171816587546496637664612987375520668525344579188615067348168441599949534616514940316206506571478134556077259142566707756842940729055895916909944394544608581952414348227825069690289087962037733026046735803595954448615036971083474549504947810373037473810278142064693609849083658003838519069925456187074891901543792509756374329323988976372439690053516825385136579104786192795356840002681618337944068411573532472161798942759716246529288955400490988947168593757282597549220620293225753632409116314402348425960567824589729169936871472178246794343101855530739392078244203752138492476603009558404034976104715804153470407478688448513176208368726766419321937603265781437580796735483757279871821109425225448221331185792613730935552287330395828047199615525613003094534909529798783288273955154301928090450476863567510901007911195540193914388066557046323820409551838918212323024425055148365630684212154071443474106304048613860402197055019794678220960297134546011803068783608825953218631598987629185385655487762842924181898066126769006807470776320403890971300526276116197819262186815535722026482836533938028101101180957375486987592000900894621856791678820790907595661263350518982319430096728764315575111470297771318419658273036437890143515232442938490583368550000334036450856796750247277833606739323154300630326678581376932350993202769688988042346555274759051506723073507461161683055886330769456725585978677621400241460072289727950444847644878732389775712036492456153777577408771316514290588673642002634567365955769716034179811354005298740387269372267389102245234920556212681524839640089100490540397099855677128112452856327480009103294979790323296180043049619274834419018713835078728676419970968858860929563723577287619500140821890120416182782561835936990174497781042808515980895636163392632780800764333215706756354749090029367682251039504140056802400626328581826895294654706748170316257941031662642970777713559054350625180590355548375210012715532806004016121700362961298066803609868662397397068390076179779542094734878844580349669273227164444944490839526748195717239359857777345747776602121257530419485902757207143115687518569292276266262219932676509366220303346667877154602345580212747417082602009281120867645166833139097981609303190186840803649187408617356747432505629213774830077347770183679570924958564608109553341456921526632232713989622715079456079712052510187374510077308441800625116665863164044541226333765895044910748698036416240637302945005768761565867911820104158343465914244660018197641983406380606542600570266946188641208948611885040008360147707221959873857422162203531987979509764267726924288247688998298690066912504099599006759738848277491546272616561208117614828572654416031077970170621434506760969604306210132167550941196371082339069810178642210228230809749852341725146331951965657117908843473313260522234233085497884790400995674159523102700420623249213540161187009303254731495648360971610906911548682614442389365161301015640578263513707865494390373790837631572582023793585784444010066126913894858619941088445280592382757175576084639657528988281280493381400157256356397226246723010558863764690472507779498818334294163287488373904858905769859351306487009937212491177515280090583693282042310965469962994810682940325296159140543719225883832952856388773295715782756818658068693119565504083092491959915673793843191775717401384405962513031885080270312128585051743785845959157542588411120776244729339929155054289890564875622911636618535485267788293063665857686430701777381980984563031026842785079383140494821237378729119447223174335835213604316450536327524687561146717039453218414598210962349578789393877411945854238994569768022552689290268065730206962938036404969471076062369818658911969812016396860530534327280681053160638966629634732116859881054310126617204793552343861897551476507352478136992802065890727542454992174523311888625964640260060483021939709342922896430383034120833234915675510874400879013501019051793756853271956750191892751318686966420111351392080534180817398971011638455633804553583334064886283931075963633389349525691632805782886475776064431484629600330334319964810302401583762439016343936979271575707418866555256255612025178655091003739431239769470573857032959022342830771817536020667793470001553748915649512804469855721466504138664105076627227578919998578298508007260064797149841512540724483945758296029306945303301356113235862440920246535310704005780204675606421320501579374671901356804325137607463128431720368648063958542540191911952559211005254386734843743903154627144363397785454051795373652505411801725210364959888537734852373494291259938341041843361336582685031892088008173761489436083884385488738283750465420862344675990023096315797357543925058966840988625351021366193317549789169455530664924052724564881282481979688709331665764539385249994980399172329654879536135317529980084850787998820113914448984162867672732935299307212644263714826657285927123973258469199542579909902731693390589188151109739638188215584715057174617657021037817977784518416690806501059916270638250840345182392863955316324331885004515496006422643057177858621965849925645980804396666341814794870480521533601260753429711725216310322836235240751524081683098493428916058929804932969692613620288924986972659174657759670954593144903415008088893894473655186478123438704079124049111526727434084308399943057359591410340613623564266375144493129775501629289623126866515200155634437617897369736224700716779288380519120054084356216521154217634716760232480345205638031782872336035260504682426214234004228051212951520897844759682033354406883408882914162668225312390923999567427879485649639811351384065867803071926358429657078641754218330232643401083425927218456558032709534639606058082066700005123263099453814962185103569520363729011567495841496886122657339403932587316376951891125307927543112172564841425012247473969509112777612217792772567226345897778779060103085214492350828598130254307735753370213259918234527055282181576832560226741303483065128406884960644362874166453849969981245990768279113660630033076892222632913140942286546925568569430551454768796777366452532671690050732994907258040990413262993618397889458677951708518990473893559875376173944578941688943171984243301487901831061468726570413093165894029526606957796911747726401636152752544126290406001742722282487152266435461398680832319720656954844479893212452531925448490193110753822998297853106022630666959498804017335401007646144056252895585713640148002811026486454544499611458907024750582384102291684320190692271202632767205899716480234249104765935917062729270386644423552973475344354558936623852264647142698649525316577891880365170012413292825652528324174702942993794264407456690807944320506139413751959547447179521770191762659631365589655627446160106291743713145993144808195484458581145501255890151071568081300708930687244421000303695804332778270146577346468630489662167140521734198288110004457874851042218135834872237212853641056386899144370278846045447405092993357518691726560668693091055064664281223860115545601420053760070626015786277807052731302298491899549010377863059336961807496258530031272855113361492800306024498637729142459707194937989457704424795629673831038954601863707458185808649055426941455654620322099029369454866923182021164237247086334012704516855313923260029052226692603491912675724983161690133216111506041339484372480294146841026075274251392144739058740154443860832504183507570914651775176439383198564859977419017395979227586421816393082909478384711850817881972110523746383496526479074461052968628757255603966821286911526132127706810387489533092422492974635751066697851405313776929706585832481298751895516617179572410705315855551197654180379167471589116550026703006819066244806374791618974232254793105252671725972916162046631315525667526292431109706361397652531927587793272632983818149258925020385269476964671110505082307424010977906859247206542581648247040061773167153787529280262832724315472658881985802763160893648545470910397364638712398740307719468808595619513031573815878298793541647337143615705737236073161996649986961255109537660842238269340390940564893741092198011648165458765213360088198194304329547665278833810466502655311638019503986003892961707554448923636769188046872718859638588066719478641535267184373711095646513452629661506267120778944683664439276901901474059105988866338636156566809943542849499329022116254437454163133397061118489563877723725862557038046163738894294652990139197137041689193035077401250614229690902762280966072947115639800739195076754953582721022072516000844564024061019158480504991187648197637109976850543676511566729642816199577149633139680660128000593135988704180264755725515487370962352915019853526472380425220944632614372702621260671372564576603152708529313633942333419448147600315364946229478013788174956360613233830040917117926855054006945958019069171560807654047196790059631955636019112581110370346120854340435649272091702807394730214204287574552904707421763986135001814421943641058842249349731757022239127033977471779745052237887520772047290626145156733294123615292349720301316729391034999504407504206912042680999271794260333757844269272973708368987582106358026406530189746774268397750222449159377969598406696057276743320759525005700754753320096215199867273764741585040809939577293286990867899393067889388664990635031928274877550604781543967323632808423875061832770387900151611150403955198730101957518516008562922610847539852021737099351905911567592982718764005277444274604924259104096194711481261558193106611331161979245783687714630086645369648379752158823641232500858760842766125865930364615433405297309779141451969432452751516879778470517304208477688040950404081838822780122363509530210858679618880655750971198318596644861533592158659048157826804108142936009741735798170209382242422336484714031314785232996540449156677217010902979929559584755968394315728397300728376404293996791442743053159846896563234910870210965669160059921347082976924937271182743950391609415924619873429936726919779442899537434667363599839121332590971409365400176674249997116532467556255065444095953273589370540406404356579586391261274737586505586928136677859717663297784811052832040453031766515136716415914473726602095627440511002650095887429587762532684926253059087806908945834720241652880969671169150756103756202700541760311496499154823860486697683129497649374603197083590338205017238325794822774969627071762759297992372745169093342966540000573859998036135281759034395037764469646770721051372331462530838831692915063335801952787824674302677845235173566735639307314106973777296507439158357858654100357452029381151595125739884915141299303860119669822254720344023972756338125389932772871995103990100672737233274712938643650332286773076206122352129042205436416014811604648614396228285632618560189980006999325297508207465047273082647737139331510710021782333677405092791231197493624357769645032192732903722953908371205495524528248764079983455366116780699607513958883186040955747669417709109902500625394128444636663395088100669434208404173271464873481999673564882475746565094210361747928329853147899538692535527892365600299687174382851923284574476193952672038915988124417038142362952666961977746399257976150084951053796885622324439054907837072722607000635305136835759323224967940415105228766005932154958108451945232661768552636989705392852820605139273675298697921336327067818341051656497221354063225907765994617801239864980780086336506484244843831315537391474077883645616073825841882978785468234827516194862436473521705100967289040605939294969742282941160285331406929430761468286844170693852366541495942883908197114609719062313446247085539049657467389281706773900281941577337227656225919588480948756908628250978305042240031162615547168534490578510761681537829133228738344120697850921087462486827329341747740065876489710559843419866737401121895573557755536069121908190598585010492846211386266111005573704698061519609427357220722935470809487556734382850223169192080556621610115603672503080907371253911783725485608397149425119362554849789615232253026269327074354776434947065123468528406406473700102875165347455532417355998968106057530731340258995789042720415495210262146237022608732648687366433299268813178406021117663290889680022670090894699268499766764908162195769957418393421508441747782458527029161015634905513744885249091316949429888281939642735699551148561245627086514804840574540033851045358104193951076250477166743883236588741891798552714314402550221908817221851143354304551429440618755223117031117624101036692435269634365086586526383038153994475505689564588271119007531606637908860742467104617774092891711484932004578111712896868920713732319659928045391293092247263818985856858267736511443676128875731219344878626030725077803596879930800964592147151015609257718141520175062869439094282725473811035383854002043666914181938516352046118462427682893757881324305290628762023583300155253486853435281520473402593973622938605528846861868341119271046286958483116295941986735661678086426036675262090179180160522845886370742522925520178648209870458731871757688093592752398859985534987813157951572578135344762164049300427059346162711954356647434032609840779905409360257998568330750431723872251832494685284859170120690149515646224671742429298630173650866996187352700053074681669121381633098234453156897862157268557147867882855188210981009260995211382132504307684724834285216889202596269329787578510020245657599522654445567533317710425743422228476747540872908835959382687091710576152573703580165135518200695493957332956992922892353211318530441673826032639965448732819457412102468993408289092762935481758044573797427553568675626926281677256123384984394044213436394370689458762179485379436079945790661134782357575154592688996090036401828981776683851686555619840499758530257415592690383498719144668031454809977788180732614525695699911529226961651400549333053379873124699457326008490368004878971396933986683771389681816478281902176438412376042671990010809221281698592752520725821827466005073595328837957902599958710591696219192054342048939503520220213585320411590778684774977611493306216143979603464740610737288934770315272290649428942392369963412890740885431464321388191683328217554015549539072014036930633155926422529366064783185484612933479395908122928003398363136661440908909191361441132310284830217643680810208900624750576307025223529275658565655683723729275965913208234963611319022733313289449104653822566974469376750204739463137707776364655135903624166400942947597245340589652911446954588244311368302164881326667769404575285595500421632120402875892529767054671144052135913536004351040441699227850937313835283660851974043179594451145868933962241018788619144126124458766936212111946543449237534748598344786622083017521095968639074203295068717671433171505453620546960165376750200730232954956036622349596423649283488183495010869304587059763438556728408606642138109348933839418787553517410940001875578063554826633383119331589657109424909656272791549136371308830746796550264310002937234727221130514944325424260734108796026393770430716811976551019576650935398513184540399094351507053966383603040920320228744036563803401995490638357502295676200491520369123814880192842183303666684031823971551723666377746992270582600029233449088152361944119763944259650999959063168752573329692807989567293119409721008308677951643692451939585350862974865681488865527430732847346918565609406541918795624701496023884360580541455721156765023816020066203740446865811327787176745818929434058035259304679368199999304653644936003262916904093155723130897232299913750240014483092091747142766625970261476032009386857564406700443579350303711654929694511247469713767976702729573925481668675142156637672650045063521878961591936546897485091737115003793801145198406092807180469092879811136205818540122570007043917091709878546950807104567918117226982833043979021716660062368872803626993423762786592962071120631143984126368218310795947776010959687771337297015791978366310438440775733399165281076031542386189025545240265968196636998928564708558269892581377935851316653988003982950375552378783202178572227194295760520580934027307171369070016049011663231571706500149808429436479383700974263541027494034644467238177291184974989790867384775165008045637297210091527710142215883582641544815606332694779181830033220435292257025401110707038615704777055393907201165007311122473158952092425984545836425058198799208527174777514818463327610629680957646862938494685465747556096176899829343400760064154144549924510594803347987439314363189610589401606232002976514565106582723987222038083348154101909653966512478248719997449796724742978494304972647237045352009986247951980207417470925447772151585773249499395412105330785696653796340095678462320402902033803481022842106559304470895645723990764922448136991569832455395194976326065103441579807362866750661014813159663247571402284876662596586332856314317648594806833118015352093980583393458117591258205657470677836159225847891523155057678472096884382716182982196947727045171554647101764099220417888932015051914380082689670810761014103408331743883286338938168143701013622117576536488073932210885109250685109221949098947309542669210675802863480299577904322077461408772584884606652366704620421628202506399461550337700445907689292072938855644251232357614712268052530603658431078122703317174845117268249699475162619283002548778989951650623186869324378618247871734396303916070006945678764376745257474106256517359390905431204169313832301239386584140549033256726720020541095713755076862150872694409931689564176564734629236189968007157814032121194524190061548559962062214472987256165506664253491410881859734808547669244460856141946798145537798038631959155456583179418529829051263245395985276449297062396700318682818523678761668599908308610087158670244804376892080326150718357597062778885109584608036155654123123373537658354625060723185593749940601753355876084068497868066898171084024287471683539833197201078517277045621279556988979009300706238899721102937269959122693541686393464760784620531222068979794175829531758377068456900204250201273506258097388294004771960848486987755259827306883321887905915296506771509535942913292470458984342336779706763711512964350160590939611707181044919068537206451750682995790407019982019382984740691204796309782754633100446086871543756240612078930656438453479357940567265393877025327580762530286140234062176770525978408510883225176628140950595364952180034781818589174500186114888485505679426889176253280430175788071237458468971958331096501717455359562014202610662058710189220306219623555662929854936191386140764099113156390357917188863652837350945670755318682626076547731445113150115143754543629793035794904822221690178114003327918958206433908223709333062219884246977974001017491256065820015943938604148854287503234573119708593410336320735098985273028759962965795683744542450684429410208762137494646275181440894790268686268975132899255781717807718981606277178042937752646168675457334129306577582018938733165123009519811383133599389782781899314254828563416147278273281887110288610640020628606779268989507230849776480564331297062484470966235401067025494952907032341241929432763786998575391968164102359485157143343850256381690221984926335921932538553542292312166804755714664483089859357329301487086593695899434473052431356191828986571181327493639472161411513143909724930170057861334378267233625407484800381634801725181049494030625365968949490721594623817906210866929574594618077618825865372638701036798010458439023851634055070784238823519623697283048085812107889872448690282411167163251398414675852902229249060885399041440891685073005307781098368035567781604214663745360675639269716253262999038961869107738606137547627888620580633348799656753151663792421555157450455115032211736631703370259882666351693219085644072488299421159309967078461426135717260224841462028411964118030789674379232207303092216116550824371307967584483194569877884517334981386597596069671271071202838023858206432341190071013149942588699787652784985454466824425099719282832600462609228286700048288652135655016137580362162621755610488863599252824018624441148591355619016635499165120907616458636442149343929869239142867239419918094501910754933231823056215527596052671334849902511566897231761335518301986068483606731592066990901502089227194336321299080978707864761110400300873267471687727837642747014161948432344158692909976260850176851541818745197076211875347045320152858962494661089381783027086786260787294195873730621080404887224566813677975538404379730974221832818348364502730556972503614001091121593247595586557002205720399989323609378792142669240971043122315571737890916971120060488942033667701701033416176779331331244657894010703795750746245747422471588008996014786666203208680969781099607612713053084259905307843555022213616157098079712673209576563902338439436848422156118879221173641808032851241050855118437055403281867220450445154326215160836265629757859125450896666589056637755614447158395920462836465437615644396378612588573530599780498753174638883336580557078248217464064275584710968800745119428423681239285844926156796433847118160867105573022490995787282067899746750952501311861192532810615681686860843802324777448424016514407398169237935606239174738574496806581550944161685417322104816224322730369871215477688696289667735713362419517323156825020481559808405838497334733406973556530139148971915148989111444568238224143357709803771941277417946593501118172692902610951315324174533947314331956798015663908910497459001047728251470313780699567839462619016291159147391983604382985957276385054345588388618818932762274493915693950772319186436387699282781361856901056277360766764068277780742756661624143997865129817543974173954352031592647776237285850853930050601474680336726821626483220052432791012072619845691255271677433312227376531205148425758751782068848825908491783094413214400616487281877783671676509931747010819982135908203820570957087841593673420850037296527413561682605673835966416587826685105366853601972378731344558164777182937767778588222898796681275545225763251469489408751760151570862347206518791924187039607960571965203447860487354016275262016665825632678540295199077698290072868105577759203475194490268633444694900144648740146008443143001665244613937197320570082903466377543776137432979202645264565182945034659293651881259827643681863984508113823468970297086008023357577161681264942842562061358769719321303794130841699691338083310877804523756740140761572376396156505683329442993751132945737057883568773999098245494997912482145867170665907431651920625524837733629047953129311214887418816494551217822187669047646984564138808968361557728096778164845639280218770041983546443168263286747257880235425400680120759042177428876875011786739632393872302183978245601020116166231202952075314892306679692928196814374559713080590800520576911058975835970434747771622355076091784635266389811102163620321434698473601115121317610198899369742790618952643725599493317191398826676496994559282763698970553804822237650077259953392179831529959948335010560405066650643639356461253803376162182410586883067984030085239574196501421122972934882993070681134341319964565151146941713428987385687906861015721110673797639069207523735353574984615521357666098572444884110712216978322217873346126815693323425591596347131461834766951320103997533493905412297052968037754087046741783730460009375988103772763537943266505780348963127371569900944192647607768890618146099550954234263794521481202372820304675095111856021598288686835535349698274680121262178268004001804125947952662901537524266198447688383380704109014195146677367258271618497691946187478291278243280176675498880846065511351052200607112331958721016320707586617540308477468710761899577641835837283388264652244415706707700327795890021836743227988228814593883389526236555362831650218348552180478646910327813992499004440951381964414225949667270312909461955669907925249424507542751910824355089947075674404487485303180752068359318339890988102178589565455470355892772678912114788426518013655362822362355406883024115250856676504916045267223112494878529698903632927405133088683423368198502718714997331631709443158829577663005472500079342127607846457916431792825684842215608439167614436820831071015332496567319502949196894778002586540896550644177494329556826103250859463980015932453409742587161618638494333570832598872058658313182513141725894478945062224191213855994642131193287761241507284032039048390538102502461802610171788288820374697481147514343154451796868416878212852921389713506437052683840076907991780871668523821039025520645976541380422799745020506969247293909693455921651605434429574911499604538871601966769015981564511785026742498558445661091213522785958148616299932787639998748505416225947769695769915711470311477929295387080957377649739731383965179198468261212922849986570787283638587777894714572279068610099660982277613461212514920126091712745057234643047300645397783184762524067462921410073100435862910964923905118205758641691000880549362651790979903826066759571467277421181390696854857260571925455699894008209094756924047611970842846492315203366295729228851494586640178922923839952833550909602440640401622081730131816373106958829674350719645947150783114240181458518281456227539824963844407464661463614982676902797375326117933262955799571996627170050211962293232050515969463802347235068632943545206683455634186258104618257261194092095068735127688928198511200092971141391782473049721284887034619674708305610247558179671861477841672037582496002080483030868416776831362289122504845928696624699284468116981324682215016883581912499138334324568965882703767789758923857393890048476953194287966924022605771675485217886593329387490297273563217168534695377696911796091507561626139297902972532396395079768190532701322138926520551998020868432402316565536349056632939581745939052445062523789393697234109964682975319000059274770776968984968167122382276690613990456949775014650758021946378616886802210690037526362976852166246115727795547861047778982550338502997652062228949571966559128470352302653879973184132948085129627325053936080353806541082855361661599483339422706758161481258538282622194262288059418409172799141332641875835071276811785283996440338289064805613183546185276834348348640737244894000634467920139128255022037380699511261146922876485545719493443274902171486773249895819211885882968947469805401959686893855395016688815622624181201453746377596973177607916489877331002188789056776626665017428568211213757009822353590096222289912442261345100306413087465540698581450392782987899531827442577226411478790030857444241680228602675184448252622032030838702581758041887369625976627604009229750724012460610182047821777683933076348989935264895076076182330424375497575061156167026343017838897374205334781602533048572879656530372279172394835474164022945621632739735348796416070551976287495900260452672480939086244243960736982752176955807299832354080495392927494706583322727975092863864115079057885116700219479149445738484027390293076920788014910579576620500806426488916894007943579604731304821091091041548960838529942497787520359792921414507764217656982570931906564153746795768363778037393799761733214195893141208410412998124543254464994328898861038999713661344893174646850446831561842904473964956707373805563966205781457715681497753236958469925792813782809562877183023261750879421469080132874990662677449596754197339988331208017935448183381770893732512796583245483734208555172836700878306625394891394733636106990074374664222592623384877912656838616072992507138480277928562070597285562539361612996794117648023171817473539024138294540292052734348597437216282168841795157655234088798748862222657468070045091053496403419702322089015441416035893683507795905588310300499615972778136291145069029968544768373685234175404751789274047415581875687996647092532152846582830425850364510864490831235462230765851799307027223578580910052056799202087411710811369198381857265150999715119556931831307893589208774971555647238985345401421247449957317274536554885673666917747450442142746643849523241354508261186154674921922656705135774058956421439368155130850604837821894308541997060001542414373295096670058092265588052805716357205715080007373869900809062665729668292506184770992822809843609700363775682701752889709322422598401495523794220706335203338275304297004669705481556074575564050721717304364829301725089635637935760492359562108690713882690131699709685360308711797930759118738024636389860275343723874481583250954739803956878299741423264454911810092757501705267268076186611031174468468781041579441345059051790427252527091240669108169812116445767246151606395981618351874365256348218420004754796372231583269502903766693618425958031926607912740310260659168409799361298747443598592714400895424239137927801725615005275678592877217921369892618125602029575532721314932024278051875614946646714150010931409806747538305908154164113696914076674576384899128029398982055129767701332598208310066156439041108358428709162350530806570969919161700106806629669651244988820615729724236814220514464509292663881630262552365631384059476806500210707189321460629651226477351408111267846474385552371272036784604986211204199666243275794424187914234933282944021306343902196490806643229485276548773148484298622447153416481585702799061520177481849782015746525198424669880307140437226183084046583288743401398562149688457920680294568431418929570348069160441875866256986948469279339703483754206432650095899116026393062621828927242267792379131489939512328687219535817888737180472887513345808403220276976101413023773742818454354674927334261932965942455809610710172859205075502356086700909335897925937829053922068827732742699437650480995657435796311337158879086086468806555085182654181692757302864558919103755727624568502114528920159222318254053380801540529603370976656798168318293004660208690899029296071412335777313493189117106785673840333488414217000835763795262853209343996453701983986298564173970140650157094009802594583459914730570276747592455545877579130264175957457557377905802617615394683955303678414186774488765483717151967882367119667895298798005628072180278935447384427971457351478766617033019549197443269487743741869143688266666114153378808965189658223702616030162505526036208437309265892661638774884469231101864574099682561591111172407492267388228889229302117813852423191046266450601403032741864537224926814528899308605917554951867170105723207607964110437133664435283713504875612005908648412550202464905603711735134905167912043763586377131984865342825710172986516377767630731171655921322368670836933460842268835495263713898191343959369489761322510269205575282209488760561560293498491301354723188638339837286813922902775978915504282485474202457151571535857737003541639910693746960919362574190257395823992238041934841854884372412856275944215706946064628588845172506703146033099725524372985667728780634563428476762439785813537425553906413857346644504885512925392565087607241836621379133352436407950902506680632597403243881687973126856161317289615566593171120059507236529114027661138542712403073970939496268557788590429885938084546352692107308559580195105667966905337773357021881439362250981189183200942250456556116985338271031228532546160931667860449471570568349940105129933308305892815693888523005626278287142589416095744557868270768775298083674073413820755230506698991544249722556349151000309437898065189396993264200854493366690669319247207900039143005133455029984814672900904511689416807892342237117145087612500930894983670218271512731246334459076006101673183665958478409051138051704914943198329580311469702033003988768626169676239262121028521365054657534703566441677199669585028697449475430519266215750490431142637621704346910538040389538009826547191556109278524833945999780119277945986208863681305172160878398070305749854986781052746533562026293109599664482250267731101520622391203252257167516671736421875690701901070720115827486284723684391019535946758754291272699829591750769447715746471238012222592114145760518046114028676033018848751394676565172203619393650862305846930899309315461697252128488199422168514433029868065220444354106708599503757855776999788543712159278872055239643355591733370725296453646949406182617572586544587192248734490792036776838266006101548850898792107115729106863418089455356363538400820116148012828249320004149778226173599385346158494240659100507639457805594597073894474778913560017958818929429095166419020985517545435069969422394178594430071982394685152694223758953543017944332478404967728690875955786900825582900421193051204807305787083342225984963148951018164542076635033054314867281919885664286096597304410869454054790752745132911614599552528199929522853884029319604105284542106791074537185169247423624415517260240108739750079612069956982482426805360384849554001480210185472906114977705331348424323271964827688969621433516171722471836178194581075309422748173606798515884562147852113619602893538665621750576169267724493267085615729099619974158085316885425935365444731550632181406378022232448689966640112646120776834712798332926450766165028750707804388425428870671315922695154328732420165018138467943973610240270319467213664917362726115258363377538582317055127495466350919679679574364748351161038865259934047151180213341203118140219627476449495684569716070800030273146453090560751242086398489871705919928001143401519458798607214210020680526167229716620269553980034005640564280459697020263966366975644025338732603354870629696395966312818875995365506582850761032153006004939204700252835295859795439141041602552748908192774445867307806055544325468933609516878112082423459746399148508561597708594844926099083911426068558491202803827666108042423670014006323123252268438168031830229433420333583450831156488019439817028420073161631849070047564387711416193763121371349556843731617351139200526266638743095012864274870397683797894996700026852022348372426425901529879639551200434097964452985516676128571428493529243979421419365278960547677294251414345099520385966420278136763810333247183958658125785562877050299404836510020487145000041851888704772552658239113393003622696294150971465547555346907755351620151787052069546121675436525467409180580335902036857727607517566434991478032811265568016602707874096245243726771581903318050381580095969946482058707768419962781872982579471108000770311608084712814567551768094337258314703151399434625619747253558545692046784825815845488205136899526624094745018161291577935709962559179523139470257202683418144545428049705042439261740522270765325323373972961600164434403842212405658628619866064080208063431359852657438754553971032302791585981304506438777712648402307116821234664930450581886772974457403251130122035921146061625442099189514816674831158940909274950236938067206655677621193655656895150410812934789650070973795814787445161631458559410192904299317780785216692008528760972814375647998883195864782830906809293691502667344562746456716196954945045618989910648544930365571647812278793943581042169213189821903607417499226829163179984660328388725611403248533501355150626979374882861183695491714649490201119957524131114682106403365835267902080094411328070499142419040593215437199507679686989138268456254033609715648564187408516662967562558874865897490097380763503041841137684936298626051822548884712907663731596129758616317063902853552870833462230346672155654221563358605666614793384276901211064830736397017885665007654896928495889003676291419739905511228811979817942092469363549408142224307371927894032908399959760429890565917244296802218922857876613809826362410072150563414144477362928845692629049943239953696358262315348430156316097113637347959237738659674530604806508826794637763835533052629359744512257450707338728798285332303075538023417499453253282250007094116075083183303878768915730991560802491464780099729685473767927615019444309121622313966188535821592075997654016912292960710770294279304925642630014648042354087830746039410531147532735437075676706761619851293211412745603139606788191852655001899828922580070830456024056615910637995917020452607556093373939599804663253510800368758974226264042343193059006972843969956975766634911263643226633342783132981050022558094872878125775074016847965149366550097169635169173266705401826024482444261725199498024739084535995252370891002530098214815371544148178052429495561169987744358515491543353936514616898330302157408411845176355044740699302783504066762070742359349847465203668579711032954961337261813988722542593998443502040307021001679993367289978456718340866533889798477245538395069665186304018503773717706405869936645993475773761411161646453240887389318917838173914727748966584307288326605912253191299109776149884025437842328448669629661491723567373053705169368585698972967140749884126852693094471392066091284208151033597234986251515562181204681843382595691853649228312489776421606887394466080783046621859915336467235264511308079141186138286124995594945781856793482221567089590220766687158373905085303818626959757884061616543063060901307385053651406086369865653048102688457782137415907307085695248427551952142768309905424863797722617070096111649478009646835544877366422112233376009263302083574235197532933676084325476533284569422551379597602914519543476584701102314297884452340774178800242759970609423166893655926520228823572956868752261157856359855273933625895034489940613989448595431885141665957721742391058215306803762198731847036601636593598720134008094049872503439412614774213812628660360802881516870563388805980046459478979985530840201401806564173257672516988267937801397112598250145688267347602379733828865828719166464979472206543237654376542119677577068212387048653810175567742720775279964094158592556885882740476047041084667673790351565832449730729495979975028964352563162052218683148937821496540861596987868755566128751010763609949102977025953384972151350249062654351225020518354465127046382564169638515039888286132005208748112758336685884187949309492370050109092433523241692773207585894831035992680050874798818775161705803264292400095358942831075455091237484624949446622678829130346463160823888274190058654123577349201333475341051767545713342543708625616870085993101729764847697690960099053046873546989180462793662334820020307035865502757141278640236821322636687379031566981106870131834282263883484336600994780199574309073827275793563856175350271734305041687737007016538204039703872334671322245326162394375029583814666242289274482411950512096795643756937403465345133181939267497332253117016746027527246401716243841446741697723551929695300557859298682723429871622608793975990816002509221571636671067424977239530942294146718154290858191742676747704075377798961712354638688310970370976541421335842585527050274633924236536612290241388608502070098255338573137115144852103426067232722106673555948725518521288207950878120313360213219219538219647693471080630951421166869990224409847764053958939420869667725882124535902233757214249256717753154110232649404589020941988807402049875511931328277148919023636139355144767417466206324184365679194121186812512976407886979676916272540412584716381534203926417226438563502387702874170559222708774913504803251699960928142299291613710325398504211059314355853970836133971756124923597404834607202931856961089064842465549843988583056852174119941786417498670748859537056510801365897741330872175123041163238855954067506189806708834769995516452528994223912086668057665020278453657103008108611047149249504867063068381605206848116922562247277030690222312981883336058425378100129836821741630594462704393676885998708573809890812972122328349694640016940538176992841100834637068683574185580534104334421558410278142202366637962772112874412732889907723909648297798397071759763437786210108552220020203685081724169876275685151565854428711468059750341288208950286682993700288005561990838784361854295057938345733557910064249893005385162307411593993142300623027116581993551096733364838527035676637985386631227195851327348006003298223311997928003660535023641503783763001651869413436436393667284513402044189538470843971329142367867134516597022903597154128349438068319030000684570254061261661071019187406449953700447489558510801731646849037716955893239791324630108152663428617456191710325093825444213449419102980477536094214843081636230601353752498955644570413870249830816005015502033731219377408930537901812406600433780086777125883044303811842733781609747149896989281834148028113553140212845997517684889392912033123000466208475863210360020137851191154447288783294323962650617534151701219238093047675290480573607285225155505827054884693918090236126477259271208914112424965382565059067305920340062646335381525611231515994655158833246966419338553408158626729242576707823936147107661162911255401305991869880466552814256044831675138389321423839308857555225759859080031642215252341662994604634909244201095776762325756570081918668575010092161799867202890695924092153459060729459459690061849711590916708446346864383357066603755314384818776172326421701631417631628236864436113253207702440186630845327459452528734069793136035883496084417954736819549109893842930270120412676324968562685504765679099847283633737166816630433102633813527796633517052394526620006681974106589970630502129895267309720607636217552717683625312938207509145406788881010599792021026822408265290434736986259020587038576072783578996860768903456055797299198394938557426067779555179999260779413655067802704350410443887809117268761841943827263607697252379629346641492510844267923187227942887671173502342727293783823632631151637787586233728399803526056055715933939183070521777910139773443797046066560505765272789461007074424218824083962721376396663784693907879905856756273589579100872772907638664394283733615108768406330069266705082930583611969265960670803706973140831189683418413078038880137940953278492429997075318738475855021540697873094918849831417799183932017943930676298773538142000006874825020312030487912618091381345809425326587779073801862805256360460713535456932162809644197256210529321423859731495507612795773459038453268202958159638338510379267721202057501517773824892046929263570248090715466264930722641059561924623699425526190513561642256711476803900205588666733994987159497922536715487812340487542977934678895349855112841639770423888183586623734949525406021212896951983723816119592611784822866484931087287208338821758332765677172346297047058579178513633348101123812796227661889968802668819364700241089894891024865476111146295766743716285247679928529103328965729320288607229611787878101722653416613760750738996854383232445805808159765008428833487468379638243245107601768588831016471901679439487792694830676025658345997036461358321420276089683204921032102549034830984691570851358620047011662541335724177728967944557786798339498320141926391801020217635079346385680589836526880319144172454105592552277263876118419949049167469837244177480317344150678809326443327372437941670877702740810244174742646079456443987636750061960617551829383751582718382691220508768490249397615270954249080502739808930170442155624829119062217645029878379722580777652530022475264008014348299897281555738379725643376547473464078515095783904413811186314917312354830418078898193654339805248263544716820816229883749571445443258511043400638306641067366638803344623821629032841645355974709217383510160512672972023509784124731082863641857340156692207950261672680099633934239306340005330910010350417541216071065520191005444360843703648966574468262640099589366803001241322409443580463035894800326851881138735682476661916404229419880949911765777097768561815313410812091496710047822321308483557523036656126883016231171201295416687125416308184808058546703495492354766889050371957391020580713628032795468650338111417598060122760509783015474716648033005978306280048361665873249714428131997673969709719156700173669926587844712913858591535672441296069099238015780766270044566264423227873445636227494516745182412517427041117869972971613946054899960791624691695271057955988583782966742706997631727398988903165631393243073734015455877392614915199182237916497905582468281994464562739676496035435526135647094628905429095629745247380160718117148048032092864540731371453554439251640475284741178088770752093547910156124707980756834041288400250629246339982538948142785482102491712591915079917332661505475035017986136640683157758185033534689912213994857748238827696451332496887847594323218932727733658520177818358073756281186296361502793208516077145565527274592920339192347779962528364485360668690049567722032262493977843883024864035286130675115406711440800206839475334206805971713245290021418548709070998778988534669546922698860873589590812851966826555002107972642415379406806990712791648184438700458469485400195303876762485984633952212698367658963453916590310696958327602006038846857523210386888080457159656663862860086318127331515833604981802498206695398443046305546868549492829364590627219920823318536370309564516097304503403700332843310538152332769495471374982957746328949282299306446806910417223794105055232028048731202734792899180769907744836816487227715574687992093507179026457984758904773520831971877718882303574811930200214429272466415705311975295403696438371930846428157226634819892736678532293942226650457946999540113444374343018754604018088411702145958041789687317136291289257611957898169358096884542254751843776952883353903392570617042769135800709428613414512199662811002423482914613176801658716768138194463466443817681370181263759144702551586066535498145315133636417468581647511479969767164821588975927818185993727979964007915425950675452806997931231709177863709409466016718105611359737368197935411111752699281718366008820822675972838669482908825490329632848017158131664168914811820350603570438243473101079023466155909670041413945338627108080022425496641179919523019632929266861278976155705513787926873395242285477627375328068248742874937210973907409554251357650023795073474487145500248854292483102052953738488496528977365619385473963115944032404964336991217399230939472744830056048030722998047279307844405196995384041602990455920649615662028096004960933316370135571784848496485648128284582227562876954300690264421160727574163463129506945137114869426037154875724108743572531021732813618940393274584778447599902862926763502695764241969737734988307037967622370235285988633323457525297415459816143296175337903271517052328050974191531184045792817454928534666888469531707918465994690612973726815694777531314125212729332804448325273060814810344813708200345730745881504812865958223986354977732382636784530337407049806965690597931677662122799390195466685331596046427326132287402556881991758647483884329406389886202571241976483246598411492697821650612862422642704803700439144982559241880068838313637863835328824511511072168511473600688451955211303407109023344593097125469402885860210580294825550724762220787215584816213871592559088658594483974501719754661353253299620500743729355196302273206211183901942678902182640148170357505207969916834073083551983880236059319656534218307500822707519922092192590910332568998867095486843215363659222283083005392851398568440162168925832375115435098859561224581003848614218792790410966228539262821348475639659927909641475271462146666537230004147049156585302124003061770417841958549836059230135223826807640508155083050137910477031328960333857580143231187366795405972858450785697027784103777528165306251787438624785226882471033153298851260580796377510413423018347649405207722319915427753952145960520084277630920331885073096418866445513188857298858822384094229738566686982147411754267907538327634018460777012269893829810827610282736315169187316930040461369394970409691731299102995080438921174746790973251711121461024601739354203872370325480906683066513928896827598012896066882098883062041784755942934538576285447781500245790965001708925644063667227628157393743847589690436976073202378726459987655698832376295173351691319221213360834423512907646610498514183777056677671264321568887531036937006608564619724310164627495363702630154887325661157440024288516459682468829843304044634670934643627828314907512636350010170493354218305497442073975559873235576779741141631710122732590129336273002823119756269060718458803975616066995277990089415681201792268413160818687072508894364578226935284636283261842866123861287826138399376421376609765659051195044867742971700848966834388390110875860476000624002487431893948278911191877635677422829223635844497566491372595949962170821621798646243387512311904235623463928255982632397005787045384512132681671748354013146041498434679073309256957465941904134386045084081069966976959309613865272399012193126643366414610481161942955116764784999037969332477325797440490597264730358177036153193349755396145869791102564155006680773598787386962424882229806190992614192028962532939096219531987396473584137649652945048645942290402461834560499839272996159400031781914923210343217937381893381911556861909135589275113050106179301762197600474062920924982196295683209959842004505042137738905509792870547429401380454760861019503647639902057053067318530842323431178874143606905740988265160848090238123976802292774894895451703781962455019866559926617055916486284747215458152938394236040112131705166899410762830812749201858210690042317665421588362321642319779965572844377933779014031261553669879914897066356309974043907185931049615709741245853852939309762085525342012170320936823660004089103137823536493261221398653596594654844187350373125035629443336888352466953807016209675084624118301398169439498087733255984239939982449574514123609512585513835228256671851013077273055699218757477973260589121679762335077966034029053017984759931514339330962481067819221591980280669448982444598580408069694400461427851141491988011940271016013391573333967842556022164804179508515206230086816146208507916382160722881451728473836624207773376327185991480284866837503281969591764808327567874559195806647379950022463692157763405233316934801545391152778405886681920893345386124958461576338524312990657929329139457206834396018641602455922439428795346915150784086770291339471280815619324865092904903813202487312275187112708990933751406224982490406829646230374895234536973580531442831533553017726561787704114791380543068275650143196256787182615397400431290037177897253371795395774854340661832291406878104372944245181590846659377117051935578119882846255973629602692070924392712648379941108327523659559080962302131566089733485595793472396368921348005334342870161444993705173335705379213103869213713728611002337732711454176253193819017205685148873335242713703300429575703780499437313459974278228228419266389534769194817888103687912200655229071752723501363394265661312945391133656974367796524606806964530010027401407063657567354753289685895629217347889552131967146775737116567851531881649696506818171898685319854793773689216567913517670215655612342037461377742829458349796483894912002467456876843568782453613681376473936113992705145546224601564540619961672817441511153678547360717973313237383606739241417217493872253643860795756797343666030023220494463167858859584121669933585949612167968598183999932894158565532928159983410336901452006383658738564491406718517381413172697974933143686578350242744328961728958363523421406404733316354623447629212017926998084883769468428945168681480209538019395947014515403902680455311248932452403195341372091075509841039235370591404735197895766569687064765485813117520273966413738242369049206195359801835749910840975904425583530471786921946759107860464466500983048029911622831243078727376655600582945412968125537439293145169620159915617577527947822299460688037460208311716361664140449915699114303729359189327229922049906311772786930597922097653829893435472566089204354881731584732826599738806707581461404334832985145267418548677280603408220303525734993844236862987869363246288983282046093900427772003717613794083168607771904300861710660131009745702128355301678924335953691127769189311179840883568986434524544835438139095777789134124834799084249358576655790739814550626602816036991038676974122412175831851839044978117686937595846465065878913281965715461379316921733246971659979373908747237784800008691121163560843573706416130391422759440388637215820785112588874905868624899814396827475059203499923605787736064410285609211669167192131747271245738243478658386866703917810779812645988613797286910041288243141204169372492741231526125527272671385824535925061953360455661498227235982901846680266177233616474351026436372276717141456735896251185776062487155178435963634603161973344011304672390713663407630642369202572109899140914953612924672382374520677344219162076395174461180438114362531309259591311709781398489130146176533064904440403552956362757821184727041623948527916487112891330961423894588633527076660329894861769526931082799952145034501102575440080683527280835877881606359955616803824917211271413123362035686328973780719694365054171484274882822393489519822167178751639847083502739833535972620461154547889645374897661903594894766137161692523362374481979762147156632007181865943899351643359187276641182367296018366138479240721559970148580305624316682386139511820914932814087192597321936383431475022031046693268106813397614460844536780257784033017903827610029377190512465208524101498819617737066384204362738212884040779904077488207102056689612128430676252273432885905098152464968423049155434694876160082170994002135696448330026317521084494405648455681792470917961470514146739758896638258798867135525227134967751455480534832242637271830919121850117696502114127592321595398784279209481962531909110175128418913249190896312788695183263033700826409343222360999156214518760838192967661494639229029057096218083970452074644509939775738742010994645577718715062760887537490233571594945649008355393699529204451061473094031786562624348258375256969782469397399975672297379628035655212786652717396792947921584937716106604323674058897497344831685352418661605105354448936791529427652097313822319853174482904898795082611440677862975179587525576535821915391127244819892146441466346472463799465661132996781232976371165715451357222005581454483408989108913763177345390039009483096860917553547746022619287600276500854239105496534504239761301368116010361624754947063710596267538690288136959506818449414785298467935273879299426418979934101825239305969932305311557592916917155970763323807175084756773463988321284457775639408006381260437041312423760404414182992457832543071172594670418299846692679713147440403991465621958618997996850963919279240089016453045995550255040796771604764822914263059106323811771521768614983351991365928944513713785585320281828277563515137754139539544467613182063045506495868089875743196308907712629659975412488857556837990218330131933974041637034740049644465881363960504072005843986042249538735683561841070273554175718534554769723150570580718633276892217531181216584109168888722448261296969966167003848893448480733730204300422003355693502354296596269113962908105859655330821899365322972318625316497732472500692289230353579650946357533164677291713352570656000393278208561876396866240762855420280121825460902110062901933218334531832617938966189429329753272906916417513521218270879031316955326198492546121720449795138658080063408810435344187733363206151988924019892073280242403730709725045200421536049622363971967266470133394966444482768156144710893626016401898443799062113647903548371963178947224454477843871583583124588632513114034276450730335535650610848741079789742341955771789260870929952992122105310019958127129012359688071008052260170289770869008242546393751492122938638363743865655478580085194941568631844993679713244895550215544435089011102036804518686108181334440186647907828049218147142803841516766560114348490467798862994436193881691550013549429716781829946214768304888506282351923615896188020743405634511603362141630961135246902598821870819452659313069866478478646837921849146835835918668699497309564551192948271718476927646522430465063964542738643255456859020869929413642450113801064174782170474383088250579261970506940870048754790421966589774544517120281243124630122884183252657785441846873302497082932690578332105222989597543062882383314872020269035082690666502011993134385598447330126451376471761616209429020649773219241770437914274033585528335839415572287622907128171894758098644227698469159225917304214943963966235884057163372058255880999811119144331665151127758550338386977458087336132631175771957894927677508536700623183116237424914673954669848244706853198998382622586519066269594827377827817103222176898884151652310462646580687331144068305014311408188676286067162383779814565316022632253651280173990119111696044541666972452256283130714820966701451106199526446437004840088550270708475742935953050867686612780603529131370470318593590258902095726757191437528711898669630734287450427044830528584330797456338699225196035335892908310921227387556312704649974555609430705146456011437456223253136376833864119333386119636423028730552351286689858845032496234586647042737570880785785557970501455466247999199537082810415622639488772237736114687160716353953273087328910293512335026119402253785603769027361033545242933143418033151772223084948838327197047350420470882608734578505596620250710243068345340069409434499013937633535621802432099077001777154993749440088255348893282967898699947860567512248554791370256251465699986964000226812694504890629241517779606237894221524743414348061496189478695507204793284594091031727468375596373652662566258708007766591253971884616081651016060752782133688871842498387004982093268420589076218407211396102569809352573706116520883399261756771168955537287905975423548897635768411851891730462752390015356805699158251297745553556835777529904392769452218417464358015064899722254807771279269921562808580089258622013323692294574566958683388604841106844678422204458013601049663163938135718974545107011983325224204557255352017445568608992412334558907214196487277639743025063681807356430651605763935942705617706862086854045480878488251599764885618752653222161848680135038451301746742380829078231692106038947894160830192285858021299478174862545505569565974999657444360290152772700404550710611721488853046175989718396486615510962654611593464886086863221217525099346953482880813398683816394708907466792068437853600298369838374444701642663312707068775139498073015731152705346891846878469131282369768225831484873128567045360309165686430197782549743761267041768897384706436804640783727704382018067712552447892671151862291569377755651871266676552074750524333020505676662778858710938341266870946892741023723649955484511547405013246184633330519245232387516767240861077784996867735843004071875842991608339265460442710112701406592622000996854855140476677327350674865243949939690039928019375217595249639969892615097016873601205140952100125067109539777933053901633487665064284117014454331401193014985692900727608474236964625290791252797140395854451565576690060421250406360698145475945423916930205771614418909080198052453752520290355027754460155424101250362808968780019559439580254419906578784759524987934585517737750439368420849356452056501206541354876560646454398644274968180116389211915730748015880891415918142217214898359907968522112514308826483911195910792006709593010068677816718837877619953345997315382580439093671824213414315011796097566098592855296228106978135870818648877998928569541927762894721354444051271795888576867290050972168711210553899784827992803219904691511134150361188143591084224977713710542311543228223168765334014056506959899701066284016929270274422085840530882093319526219309957765942959098113809428860728547585205543966584863177181675584228422614457169971669967164972753801796520496375004159650557290303557524385052150754806126878041821631386585924244295452810368753794411568801273716213090152458844480161041753307990817242711701088211279624342795084837474954798196295764742078006673402815154592337306538031974652625647717194010285407737183300138611159830382352602583079649690716358502856854152726098610789827926048345287146970342120330379252407378534194451690120095738682401712454220124963588625855204027189315113856640963226491733880627572835092580109411405802691396050780150195471309388652202349244501849580067862738933489873142110177198480093733863989462952092789699545662591264226786217093146575967277703834767444140948424964463768017061909124341384283415173495794816710167387101668499416844503397738866894879577456437874700178765974240044378504573351549069595046666388843673858927642002978904797217672657417628453930112576130039873089276033171032439604709296568156744071356502088174444721731237870037866288809647244650908446383085709722847493566491652540508036357935613898808569090226086010748971939993351973275597904537179158152000777150759718174620466560485012142276096551452571655380286415647175353393267901315166293310179278476637661842295439920727893373819360753737498494894058017878824649988810069158880214298625642929077611502103356642242591970178785095219597653008936090846166714461722428239483474784649518457585399325702350233635194739458213383190547612668252719256947039672054853763415676990516907530151030406165933600738749157728632659670659991607646366085311678964844963848890724896187274238952313319238851620109590677867647331010058113707293121029874592571772248864891684710187478536031165509173697912287932570908282687517301370394622874771664160645433507290500766273110969776395673581876685008376813454811289143454564259679624151241774939274065058022650312820669742154590459471274551373892041737960726483758153211579164197784481758835893333091865805787634212268118874591391944051910717535809117968833781319844145204883881210824564804330331870971684737195485605072096826870661172793987902198398979772826417916118356123518095799190794439202933920234503013806508972212618914042726753103298452014150134087988860844566543675558728876871861771206055555726709280722152375802361151382606861443906519962470709636115015817510511157502822804883570869210209611009153789957216776506956237795759546292234057956350293378061813017060895828848512911478860159373652533961697803938062736808936531011166920824288490018260159412988462230945608021496521172285710154654398609393580964495650912888236096793348442587710968907113764634283252770731684324994946439317985657043754905715740667135404446193037960266243112385968858982526461643583852331156923289439584788036831042043439524404809660423354289094773634233294030906073752931520809465580145697928495636005701618865023229026011906346240677425192106517965921951040411712119935669075431958519347983930462269181258446945057567669222070965485031383332338906203259475304892018122542735994736679195990395493513323889832365557625918713614772056816448030676437078852510102251244178561661639310330013505518170851178597552604550349233724290762569759547891902241180679691602949408339330102129549858448430818025260996222172894082159103397279238142600003155829129001831885160014378407069722066434746152803230280041070673926698936324161211602698294365143364822529697841113768673125159510048767125254537423440728050006126140219064536194798375649165140899032030226511554591552304782375226572273840752423794523632473715125523620129097585972420065194874880302257950572539518131175553929609135024442244104050697156762441291057062341604651460844135105622782014281918373849444632804433401965022747807987913684624323664874051717995859526102627106662165849904753957128444560800495104901115807638272460199346224603728861489069648503098768109518427844987451868471889036266813138368853987724293768201647764913492970375478615779959608791961642225298613356147939987021860628326210981527379399070674499811160800032225316368188086757940806713177147169726658135725921944722423680393699712898619649809837929470300249423262580320375098800241031336558178186049631557181266765628929055546946282718886212211780265244809002516004005138125706661085188201772594966646134716560611217549704748250282732177116902202480477415361054256426308945190078897605900486547576146239274867755878536723447858095426273159382296411823287790314331330060403165707237641695185364548639932252519092155187098318879214114883615593121834399497217852558904048318293106669288348914916836973359102876132633776716596274319442781512282733729400367941686713192737965047483179481403502708063531162730926158866192722888904661530963362128505217139275021033574676067786697967727483804266654978726522340725820622029690315350072805526567451132362357846478793190361295732929566347029672972235273659389428458632393463526918044502196694363482382400879876336548965748300575738723192358133788131503630101934035472903867111480046450294806568662556819866039612624566186062551760152724509495708541736903600222791734971731327728153172665258594969035704474434623355737087642395632345831423498565429378657855363871661009667697317452275463872014786477566473312266857407124843992320390448444140388816807320437529553020814851949100925407118233444458403653642667107974353444694661761034253245405897243069325140241736126602953171893146394749719148130125740180031723930634861989950434501244773566643679041228866084174220835533133062587447755498667776904867387402006430652375757949325910536471166052989952605103061785822445263285784005619497361460775297321967955464949201936577721464251890820681719698269421139829475438129600929488695341850463695334411630683141418967921191854893251483298479290404454875142374636748603516968415710700842206344384011504883123535983884065215551787158652737963845357867824234876280337507720484383403273957947377922078772633478036535441989556762299196069788927560452999236426335506317821612427533906903554011225714468036319399407714041538440042140905749763454752861866789304140564865902946138339615683561931956043521490112721496977869938333908567620884661338424335886513744792834881532528228116258056624117668625467555098027991383096100552879231680913623221917259374513652181552438567380411334657541152070303639464725470199697676043337342506388408482282329188684076303895190115747361421261182951760596024767078331458280910621616835339163639336614894830153259840343803639082213116933912746600322874696634670218176845222337684938082725840898024504550490938986084972690757836473538440660153301579103098164409519231683508056815403170257393177394980353703840473053763433451014930422661209390776828125589137871018662342740245402650553955338967027878649206211615784409230945532308229409556964145946961915975186275047012694506130894727040446584381060193291010338383551109552041508773218545903911316030268014370050776797390739586949437501460469542442711044675996423524057172894816311749343335676475402889568284147140150208243195676980968444572471903520463109152338460245119987663114916155710142172993925897166844478329942155220228761948260168080978701598329813782646634917087168128536947267664311906645234646855704465200434640269471927873310281323957147414669321939113933720524259361966892478730821397117464166954612028149183480326587795878974707923045358130644614921724831901188506053723804278715143966872364656974522185980110157503166325709545958417669135081772114020296690914803318911681849642929188097303910710362606160882978488635277243905224937280287815973042310690494752660502699416858594249497536685603956135814494436140158381370035905995721874704702143580116037024900631918986218717131476034543091991713164947405585599758328145199976551406886746160581428676485300093464653565785616678284604325617396598653034276934417031875618484231008342681162078625441908690159310866828453468329806278610299361937133925022539909884294585253858672211930751117700728550424011496822834507628783493253198695876822826158503909735811898614172509463889079024049235133112143015628539291743975452761214730338369000575302681297781398983140188294877148495907006693261241094816930878622102290381388848892148071665813879326353443368112882328812302239267641891810667501079313106968143705765703575073007526145527061463688412210839296216730351775207651904019321959526035642932634621159129710333516160309479910044027096409137171094175054899270478620225854054379536475201253908884905237077331320329063149805444530394168168487904271121626677701010018378422801520811684918064372121492685242628471513739844476624040510720917085947360044997100618954287995498548424013468125343153610320379667667620124792656530310642736031867195231634791434747888508792902278994124688520249261289029867862352443629375340399295888902749467177433029178019030637244884910842647248877675200841207694272378065445047279562644623012326133518774456839415416125200079238492598108265549817961648374491127931815322506519471963198511839414401134070972475851774833174281762874407243956852827784518397221584390280904154312372198409792439775861598185018577790830967991170182037484100274439999904626069184519086368940575251700726187348458563544420386365206781951625444097938895683184880806997550692043514266327394457021454494136364506085555626532307358594801249605583042235723425473173603335609958735420203833353613883443121740616020774905868922358479634546379243641891037865304014191992854193850595428304661414636998767329823575219410462051469015652280658205929332414869108796480856706565094464797423113056916678135076541552966217893896030832747567699263482505326616007094231821571828387277312399977821195382985346424338584697249863409262256365916768802942766030352867629099185098988061318652119494312279020601172778283419212707405254317546770279530938980821347102747433234473401553751289550979573273250955476917380504343569835443943318370365704457958114359042650856916429016553206210982113261401633273856457129819752538821240556415977940439079393285249944842536791980171070130027159110524594005243015995906442367037086943139334734736716278759891388735846697670909798824471029973789705667869676629754576487038008033653549915253704492691990641129366782999929316258261850169608979281668160807703143956674641428436006451099366769997682730892944995153402683783052485384752674286096330600228896166852048506459926058741872920536486577797384264277475415743205458988411771693969739464648138644317667492475460312091991699776774646378960199638335725208659783435159410994485655724796441370199075868475865759266087508997347486777783411255795348422822844723226775625814520623110988612988956616819025962507130885512025461524470938600069961150166441799906327571976946366184483740709383565712202052393338828335109407409393487149879939461117591545524963828261022765595730704777800965091171055317746603899697953799795465856134550495119136827003374441316716748129695855213093902946018044268266592358700452927254774940894666941468000594859619975403232054243887955184427687685395377474367576590525960458522400790239082934031997645044510490348924804336127795821303025631673030388936905287799194104068134407495795652879894290828304244832130134699006233672522149057671984602543008131585757207967896891414637786900672134298642954019880409465427735307785616374203633792001763205067375013445477081224279086764226137221489306952130228242100884907170830212379789554087671798558847839074643342500716006096507134665397785482878262977852160352865999398079336801635764748760271253789161078605309843129152055019442229447416854648729276959268902755047839988025206615124592511266146576884447259683523464625131470581854535750319974879403605379988481724192324250732266374390446811375766826698724817339757897646527349341420770968106652309963048757053286659410945633008504755146650515030777154567700678578258801010997341686539075419872054643026025345487300030307221392985181152211346826381393934038775429317657991875564847645880904145876504939653419007723151141190823756725182258624068054929129648843701201301596665243239575274374407635395612679578630741879234891085541793192844679662928918890349167337615587721512718415353340581176009930254141192527371131583418904260805012399422751630968360989604921874126810339708464535340764850889936025204041672216572092137446903598028123362163805442781923942978301008361113753994439584977959413440083477489464544868208623194959490623143939683888489584589311622652657316308546239539216474508685519490618570723912734074892942246695936999844544561697610704793632849834404414084401931500165651016481938122110449686599418691365818084542781628760444471118620570275803165221559448546937264264657313493035026930318662062231925221521409713136178453187286957968377698721361476637049650256343118753337674201657989342087838767170786240383409015266127743152836781713974682958170580506723635380728834596773616398191965762924768343805970120006831662176418691103756973480585682231986398414127360512923265964115607029406464358610285099495554538468577106132633677786846435970961762830220781363503355176412621327903512955483194123023521536598347752255486113470163207072818935937196472867746658624683609105994829008507279553449860460828163508479572691478955258841466312131411906412332934435603667506245735091034242476487427219054293508378118614306648305692934717661018303691860817174769529541709228103839620478838688898669594958569845976448535559831910851331247033713369751972640220786974028817932727867236382632278778944060568028444610715614828753068265633297766615182840394750415603768932747859242037310698769232398367223153998653458205960439280602898220249645803458438764519830040443171084754058866749838674983701330132887647348778845967977285562847119956907331920257051528526507944345474466398852025243066411011955952216873711031569687751948637514814875924606043574221234058692395041974133069902596304587556007226723882576345332561053719815565150395905751078105759913391421409041688964838822553314087174856729519731868512031217554499007957637419934034028803969794998834363046773119824154349280765735111943516070261844734184670841569012818886045372955210714991234538439403646703863388323614308421592737214129795755280831198954435402825381199458360770962506511368827843768066554266374908906590045585437817589971077616993636490952588441413249449633752250011001299115830067826674198810079884210784246062948608213956173528165102600795688408756750168154165406166308583555616456724565553817353153549650719434629135762115186817712435955056831826032001863301929250442467133899582429726167069953195227014199717951974926521541527917762016091272821347740248189009823270893934300216294805184689950137638759339344036998184554043940424375793388321061516859054259721691286458522929115052488732162251043336912623741763586737303140372059715360880936008727553233540018195887480788133514791496980856895447737593087165401400791692126870082869475166681675650102473969694050020540906142496249230962616123833226419910395908595230696088864031792608938635020189621971987912495737090354959695365656194385059484229552236132169539706717923122279021728569490380277787549774547571740473810099417882943544848053844622504184629775679512147437660360997400513349657969923483796197948817679405357730690157428206745863992336718386213564976802977301515181123726947487118860685526928019854023281908071782945127994889594650404936255424845066956474474549376229917575059918462875972838369663842528254163643155875172103970423113031225864053084991594608314245509852904654434741638551564625529880150352759762764612315053391351254654510667239747314184631047345585942329662890343023961343026486210278097276634220542285066426169171279049740537047977163894005878530053790043462782604114845899432628067631760300039718606337193461247764549067489466680403308120228933076447290706713295689107671425745571625292974925607062697901286315957741586540716809031062343087910900198154213885824455776338413827751791145203056410878255582796088907590773430108764935002894285772642575402806515596363983552850161237800534982614076502594773868778014097533097133261786736590216074076026131765907731591561435337721603266524550043552125417343067833938479877086682773761347667861025566041939104425712702479468150052502193078187853136770608857580030434463742410236580020045601892045235438240763624736718374390259472406424877259262082127782276685873732613641203739399706382731423608406771279905236363503698173098753610748520082143787476579595816576186552030920734489068564482260941488800856650158264332599956977559313553293506602359774882943018910866616671615315416771161577451759296519361205317905314795586976631011062314483673420221978887728549946646838087414237328121121118129630956222584580460394023879046540326789608316216238047425046484749059836706411491078218450872739698025096540184833974820049134357006445739103433400146573906175589433105292579931471014595772843031845287514145215485769633011871909474715414322720550432793016726055770486884410285765980683910712350692339927918670762470023445753554089479676736760158966428104843145826135975892447331269379410008731503974558512663612101184080350626643734700037560015912545029443729206871774110086097945818508976515986635559153279904157674764001565021108349397978008727989034235620812750891171177688411919233586068678964535244563279863925969259096354532780511672246387678716544499467930175990951721731984637573091768092748763786718617311924891344486535674011916603374749941435527585719669163780653212379879520539517447979441956850837591242332153909314462336014835675712408512925646931395503193785706829068167828912314063549888424529604762881729711939528873751846412021068686405693025735455157042051511975424533454493486835072150761337834506317480596757043795196351904456243652145084582052953256769009153028830626376355384283509979688160514235387802147261947044441777579688477876231602484034642335203302243125836703054189437644666195487754421460555638355015337554431884927546356147996048424310832419116049316574354358648390904472450249771079602059657916823614748602749750899855781960383756375651930278541341410808090405890385863114533516794663205792087621917045159333905204622873902982535652217399778164971137177387377773815898044749258494991507118339031213349798068942912413714265512817331491716219201447252338670893372113743780242130170589103998714448604269687038847941423498591524230798824810572930731613744554755843090445512847082273865027553371640977762651125284262024241052132408755717836497452937710417566114353518104702531068939982608914893296846065425704903548947322617063702322107788089594821182682841123742296229125601326975929158042157508688150818675809664201264091192430538782763076807019999496244784873558433465983094443259067391258837003558151645170061943070782406916577038664164157702813963423860350636849664801106658871736962511548571824206547763157562207881027432067829446438830816878314217867177875238418090352035420900331578687847152713038559246705835986512994164131090604912357798590723996939927821593761999352726836916754285678451354627844614728372016241303252922440788977828037208236870047440780458923353245852517329947075922829657031463320799690517677551256864650811571834980052544655186653584119151741390396085325491741534547962393901246015736606617695444833367321483106841828408805856109681813374397563790777317509657396044933209803117007713744233122940279057503716647674027346859824687740031657767507773673213915253817304547012316682163137532740015199249264873675935665042397553330464198659885846521507109739381556517315490149592916822348402938868807673993971723824250318042130566589309687812358005983901468687333342827967062790300848719985603489296681205748958102242483627487944935906191581639070358641177230094229130296752972762798556766285203322872376493271801302156603988633573385938872860926136076243905768364780445152785990934113886170587242498150704802539854622710415800536357074295035363953496453198893108136229231504578318919187710530841951585200009235180539962060917240216050331572019624794958915777481276252809250271241451507222332536654205716944523770966656484562214145807661434530648181069388660266885033887071479610684842667540828303619007819118324294559480865330235333897851476363150840581511809446931317690041772029618728463765894690491130111826037586597753885926778872310681662621086288219433776458714916341542926947091587354856682273487801853208001626883006966445735063092151149165846952044121161527433339340435815389208448835143216273493854276724817189767838494380368127112480106091242820770783637383202149950398847578099158974988331276803585988132133645208372715666587106177265491296161511448000242640748764496766305668149588736882985865171318101057595006508822474303635220292721602818568113210431102751495180610304767822407131370428955240778547271292273766223829081871299767534059541751557489378116663969198699761456712184192247745177973465369091800884109156450473840961309073342295755613029540375156384744097294692854794578672582573036662569014639716572429688218644529509025686622441857768506230619721919647898585630985558606729072755600707761356060453562078254240321249233634439270062243584390356719641955249342779098668150728856289129067739543830832352150153144479427870938345358562385601842064087691738468023600715790113675150989791255451644706097341674398151192499802349594942912873579837883269423054296664926256284009217728733127310064196873967804711916587030057339590981106051489385750015786460691670239922950781461120406693930567894727311008550602534917404107600648477292843865996721427054783222346892470800032782662413958882333638376466293121532069018520574088393452749924138833172472483905386110783334602293127581666996400552953779543638735253443953253383229490493479468164228236637359499667361557524285260105411337507258517687989135135461626355223876147922022313322813597205392146641176190440638286813723433164759466960493785492694356030164570935837780147844875420385693700511301543112414559555160195560537751979523241130252913461583969997298602386373197775070659936379704094054411932484410188368090443544521434955055868069269032902651602585571863489961456185185758434659968082195119185823191810323519674050795666608220661275403716594555163424961560763249158631495736431151095703603369890086644188713580303784446244347811185386240095192690244614780855303466420626798039740704624293641276889545729336298128957783424646953637102546596210929679434266481857503519803096344592360193336711754703487221526182562227882672375601019954002762453713423094723048145253152441313867543377320342897690763940455836965636121268899968860057525107959643575976587277675990029107580365962198245855380949810327978224782866488462428600066464966317501203462103823641196354592462635927104995785297501975598406224671702008476847810477319193382000451057086327973626390948844969959791535775162838242675241929742085957842927295991705307143918865408299356884235727158678827194957457777508534874567473036309636907670620453025546319217965727537897335042945549390932380962161621674623167845993923945453233291273459406239332343118333370054215590607673123523038110034652945519808362806502737997252447041939229141978627922541023956806309805293309436390556606776066526170893389793529319660853274289731052988233021177920761930048896295608830493218453094394200249098791507335157602336117872222283218172303794271128389308527954538016278053877267401066498226324018402371283550111961720598276624753448916192949313747059207930305097592457479928948292587085489078747136078719429967806977785191723699258883690400459427833548658286123784244930431899857362871883314442299499967446875541697344900541204346222502468625954620054740676595061049315032909541703438501990171738624221363802062949587344928622381438918045559515796125610900162792175596685162542676069387485943289094812651256856100328412532314594303292672139683846530307586713985144990910471842834091687374120400306457565003665698667628447293816149414754881561028129911953121088010956754873919952226656628746836493009703548964653388073381136541798804295334706952900780968917017069391052747664929252701644277778309581661505471612952179187211022578701678116565044817519256469692663611458369933845618764041678064908415119055010190373777530010492644274709107511918964346192084131532365051279136083726157688750720421644408239814036213072078437459218048132496641795989157523711466377494247112070493799484539745938512711685364266070891366225742540766970488537936583489500930180953738218770465998226912672577200002651590073159648720279136710600298042709616952740465094320920682553149267879381126874719654305714605842978134737441327142610006409735586741551910107888851093771582259552754274008962033345282210746743200579332247375879850722078748099927864508346196208297532529335756336463115358235584246840439240004409903596319318652738458585820156722410215026244073164212473679642128913736001600095662040077433681501837128045691235407276700926479651089140649784597590096794936059405635058452216643598071451981627680729180046473316939780859381528609366057281093755076755224611213083656707859620199395500609304213068106973334118416599329696013341953333718273095248433252359488283623259467127167015523242253932038196761675800112885280743102386015892251598640515455366767252817745389956397855380156562178628801875885771968658513883572325604776483774860995689392229062522466781199150784586570960432610010848569766830704079362129791667684304049179753381868094536354392425036413767561534413953933933365288692118351997053478109008085247865055047926615111071824620888421972988465620316757245592610608872866489929457891146001566565252140691776520153620688497754946318905268126015185568086269532316820075855053937321041262273214637519868535629012131307385602514606628728937206662008842563406163671770073588072963565311374428540755555388026588802442146525504122421792028684745149648314542689237029556377333684730304259336933522685546133057101503212472979615030472263232873296877703539712896373906232009678351713850048188718912495746244729355011788382321657470899145999703766082988602269493075376858468291659023672277379670569785845823566216799709668221253056202623151645782920729937423869657576640459272136622079387157957585455878545477638115588138135263225328787250349446606744253308773240559063250490065719477930785896763490790479578471942939150374368111923535914120358163196366988265622587687763939246903972069356519865648796588811051648341815304451202655108348657052810412386252695724781941023239958973600186714285044021311273167603201010462568853824062900082072183044729877006094022009945013264200160992630347021467657601234291954051109000673462628136911488678169504802073761812022809267920629785213486565426699178763493883647764061149557723657951439680083219313440662895933527384490890860067074164532006400097508308429131631754143956542023110203247353475990091273243147753965364435154072191891692386300227416804082195238021564348859710578277802351329542866181792216884713082550380693870906758597565275646000625855983810839024969741947037689423032902141771752121432535668010748535983534497671306803838966743194684129064294062522336819947974055474730488886663015919715831177701671536413695295856212877613447948082255628250290916903436213850591257676115513019198785286833665949215922252539918806707945669155387614965543660820185564018799769009613574819779772312439139732385931862880563694381600358319548629615929901900656044400010342269400022612983131342313779656812441282186460303251823308611825922861678122734340092274197591628341924836771748186501744251535407545017679706454290065880534674940872832344727706507653748026473182826162125938857213363381463359264732947692922082973809241700048464042534282949246390842491452355811296459138930106325913338677541932562993969637168442442119042623363598564873948445514198922160169997155510772561496782578660079909498598700998327717241764519870620069628370663792372824687801977306866337534061566897644043304561015251809571215001453607783657309639409630911741987829073059045046826033539652526634150233039728684027032296717312775822498990562978672104587118632980302045292199329909212547266917353384698638446560603424145345674916287343651564526454155098854865319259299104225173661128651033760450156388888565813205791525013421060941583049748101557201051801978301342686971644813490702906106946881939102102054340777091375117761693722077180644181630235747392380478594406987785550321265273587096876853214790801208771952024236505467556759525296989943577297701769230394848084865562767438228846025400519256846052596949906709649854503539561290655855248252578472277273282000455071643649902132615774602613989168131890120173391197956179911404354649326650812739952063744250506007220476324383737590682551983839963688423852588159691081608488004603889590037180669573041307234566565836595427207974806057713482993974239310408003883604996321611590699915452651469668398273729683085976065751609308778190907507094532076639523861552895163473980781875725561160380671824160538039137121667494431702119130134442268933634261576429894806607073770128202088552895156238441368468749622909718775470870262719359109416907715667130011506205363253516157719953479322383110333341288789577522009021965368989400377053396755274171109012880277844695058300443989146244519389226380376888506739195551914681341823266909552017558335835659158387141171562227037972889468936024429936590104781202807252681573545084838452849134490536858268741413524074689075434159174142746709805213789910740751810205275093755939756096562621393686887920592347798220573182498409779205792279643121337549906428435064634638995357934579825685592653911575446000814852580686601763628459081650574127225595819501622133167923827746724889976009998040078641759778637086866470368279351153655500207140572075601939027822876051599283283819939581601729251494452300651770454771481223114873759329633593871178778210512813795234680087512199199554323278787936961016825389090058472284599382007409435885505989743515327181092764062613985870636728034115846260429536466270063204337390441613098338126697350249906216501216483774174573612284953446034244452192209009084475428124266421495402077061687996133804090600401978601486181024379748309903645282106383247780805936479041301128053651492299856395193118228729294671293692505728862803695227474227064444022646631080103845004934402497254827632556076330240932883886392872452643957635334885334912848837395137680887016593589881106050744704614504089049432160275173903015120165928530478315058780316233347781362345704862854595603269420550828284703354775286011724688546684948074995185606948351390717618112984020688975419291306749781655472025085732599791083910484913714497827168190463852685309130953921500954314714345840566902411295874187163627163605201277040374121148964895236696122741908650472504851761541331442789185065590671010864507467954984248943577074959584077902110747947355981932355639892007777518443123724974280194467267472769925330354626122756726174631706397049225430223142029831093252201724166121591954223854510285586568131178837123215011204400830412554489538400537704043894751751714996380048782324927006901120900140098631135365281951987281799231025009788775290016754885947841255397655678954171626803633206059156382248545746354812715099831952022293116279799997974983004848669038663029514454836475994509710562007737318030707352024060119269878395276107482815981262677114040331747031319332216548736128497697612857868116921072051208681296145346463643150956806379613321602132100216088931856026488948531178417379998576049221971453627945010809508185317489888146466737974469584043885263816538636772534852599594736652123421005841730398232130977260468684103783706968097050233621953906516538176636407504364290330367695297129818499946556256479064776770092120012682393677203197077375360254110925507395014871727930606600824551720442754196777313899623136015707299001253787587202682289315200020412556640982102233827175961880166704581411033965209223323280342393668286443516562037930383573851807254025566484530959911734899305499133283371897124610932975424060773539943239796896269652878996558734064323961511066341704900339738164228341812697466395060921654654462138617447106405786556293508473429293790710809842945896610498908142145284037658788143793751285601885252237290216796364425594878398561175351955201666406168754748335064110184030598866235532251020990257803120993965165919097830251349397029027543478355927408261944714666262545686583284909340905591608577249254421583505661463186564824133745151944557544979895885110102310408370233597808711160260423112647768604726042793427447012613923861362521482417399204217877464339266533479460019060949433525581465590652861360507318630104693631049450324286515270212341875618994318893173920238510983039615307287349378032082951829906650369394078425776949779227299783718329947560291526441243987919298959865319551553598029052836148584250349803438581853163832360992860650434137896396515624807288059873687293360657003254236293102825852397848777893782033120617551242424440511518723090682629518559486935953101470343690484915191370897500684881346702873417920424913134327025574209167227806581973533786437891141832769249301469386135961897162135534388356137261800811072578314913130951327174140010408886359451582565880295365858700702495379192615818914945590193155152223646807890407191423726232312412516665382353430778781675543721122859602224728246483599346554389632520979151663122793616293473363163656805966394854828016121359303914044555099608808210820131703425223014167242669668362264098495619002169225486584565702089343877613733764270085219958829511367019532099870326333165641738129358660614536591055797448088836618454123607239173472544159821984810117416902716507215159368062940287748934994091045140097046801325692817372240083188333970295485616467797228450123638556683606285889231341638412964373273129363071858456186513631999306586773440761468751943482835517070274358683527287817653801617243167300848310812807651672074599592525759105152101887987536809487421529460332859239324786505214921991722885972844698054693160281593246913482931350496315739474439843394593936971237890962054869888930826470886084446398617633801790753184915389474211909196214392139202519902339862129104985788591004173591977178667545502685484272580903524156972072716488431069871885635932142186079240851778948610061401675299490500410597207228410649931091165054913419955844047780306390478077321734532685906734083868517104703136399293033551807315983515714318028463383451761981457017598915369970245231997676091882923982790220785180411650176288875549674097493940790647638622773297277138199850878322587957650941904892036721420581635774051752194098120852410929597219211751996130273217489144920047400621710153088972341015102747239171336476921008191202393000962906320435047518593900626718697681476665207710096443893735284532702204490044620222339640246209972354593410049736283497567206622586067348267993805303730793588340114149258034345660805675148091903647844487655015352083280923871337315077818306363365718763664594330095034060223121930041303677218805446753596871701332213788675760343672286393620708573993240808179498159786740398019614943966074253056014919777114266261444808411988960068440977907632445893417406526673107735309403074606080685527643652878942803128691117815275762838203145425279422899993048813225140391532786433785196651948123518699074596479496158730639742990921159490642721683688901918680768321233578524497918078460888666865337461417996729626845842856213240123932031074620399606850604345395357641127623798982980576950714334462514492575042496479267586500943325293601626861410399560107186305849672768501447288588221278569003387811099998805442700452620727662486924587093221899143083655387699196492422247322341989521700444936978701575674531457809321599046256227221492250685651289329361604911885998703946533747854591082505026578623446306346408864176159206717783476870469274491007890878402922420472926768127541465060493576842515906433344492936967897689495596953737765058830690504914833863071346856016135215407090454365948693956913729165152304689004682010438175945516911461428053910853047895252067374183925227736053264958108956127119298789407625377061946317371438014600944674469009805497459563534996026677965633841036240187637706447240437171188253759338623075171154330208460597940286725610308827104666725430731252475935791693439154204409474240447007102924499011249202686570267309303980480373939555538797271370351573174499231679422301963953644398148929888234718137967402600824450490559275388186803916851360489958853404763953145576439797502356588077081648631613508745132524221926306625766244411153689625920395151400804696666091616492244051394514565381398653189941646084789700721780284406446445228082644393157384508669241595480873401271943447486967025619610842277394701664921123465027231247271449746799168951527906973127290820759977547399468143674294919659849696847906964911956929429186747059104969848277596483287405644912337279098213566382247433786273144154832054317224243497861682310244156948297786739627929856726825301101975782914059213214716929585462414025435401093192131278817537163305887095378444672276595486993965832931539522980192562145898721268095122653233663055887008893516294515862502769903030340183036935918072777144809573732234389521270148046700862837704923835649974620305158876154930990824645295332567257942912037909852962434131697645108708001513720822546750407723189608451092557849667886938622930952723217364290505296161756551480097375752259708738539305213502048668907985594572876407030939135393052114675075873732326250756722260886520318316256460911377454033838112532404810003548619350629270205177054828889596880522906254736182574275925000939476467244633740272609377071458380577304407121641362317861921965711248161711876127958161602196181162791712453249704889106770203245314663018049642942594036537864981097137577494124997735235383362725963005269715988124706749792555197575707435051027493115413513203109768881252948458863182619151328532789749910992380279014503690222432331834581392129670231407137128471703966939036355953477275793332993396798983328173608855953752233285776083624214404819367799201729385365711061104014851777156150569870014943708163736868529689996222775793841499067712807036723726652676236271431834415530787424591853673111462491581318892330227100478879449267130591197705254487081939862714449459193501232154260896343984396031532102425557608889171842221084375591032525911356106736174328291993435253108511214420815139807088110312874260161474615955150168998917534400138772197650067533481136507644783342302168418099538714071122502024408270433526129623864913037155596744624148313094516445824886583025426280548645763780793603682598134602611925283331514724615078917756503357408413251576633174972049162196064634072081050836788876241502864436994571347416558492939236540731826132523853133627916113908705413054697302022085581763131922497630473623255175136149675410174694041520514965197726370008276912483412317021579682942973575413288299956909814322946810566924727445469951250611985565015770097327306722997917960593251454941233789015537127805803014697202399833039940097779377495820655069241057376301844432819394209187446960855537114949759986852662180020637013707212750185997964851024848789271242625223134919898026302232769954449187419940280985524873195898686473657100979705724519865109470795875815110685202922734726561167980329089174934423953017036628303708060999213183943521438183904439132331945659667999927039765900312942359982001653192165702708244728712760701218227386349447915286122119747582336020472243067132597227521585129483813387540988970048961503684888220247513462165669823427584652732493879666390273487284698059004731161820766977032760985528153054554585743315492970963750613099133853942754301499668732844167915001354251424225737910545478038602893019915173170630200112757792597022963806762499225832697827026163250196591466311699032915253642811146698638921939889032820557422373750851294621619322530824522138181748641253141114489559632844055048701420667538339938732212024020410696274662381155983620768577584012676096327204308735694012866720284719550127802667419421840722261859318837920266475815893612508939764008899346706155833517366257337140931474150328316624830259415454205988872504253117392129929998421459298522108299801686841265353198360255190028891774616096362947628390992507835324462200027893383932745102083189539961125364410485123385642634357477435476660134247796795707285550511611681317172929380571726794832436264290928359408264927738357228879036206934044426845244541964658826350120413961609473319534583441518884949830165479606352675431344545727318488893839523006818666402717342810434779327528470819619733535706332524879329561575190837308779048079667781079833130801127062009602369339480072155760946996804290109120634881039488926613420155724241620040440413834828436538127200757650536768654516669840480991697087445840365183791886282864972057516313922329514998282283005316347769487958245687008658484033439162147327993266544800080182659500660927001116538349067112749553660064049563781098269965654449929701021307041803704055386907666505339101077077430166129017502413472327599207449663361902787798380041916188840191869310623212849933175329067266347754880555868280796804800589527329199019000501308436597051346817659031277497516097811078450511991188501392996683058553917751177015077639270354310405482065689808722359899170232882231218436369539340540746150691422250437401353262261730812927263777564205572617148105473694995697511687376918909837139572386617659640336908579079980613147613654220717096742144185380058666881801449205929563885331604369683066183357670512544871912640092718629641065676483389160543037409574920079939787891163876089487247286665391422568594130377749122225632689271696895710834368833150263840409728961712053376515849957910475767845109652571355761398680069566480895022030913674820990002604780512724162390577678958607719662313196924864987056279681729682773046558186533595182803700235462022875632243590883182845522449960288153306101555722244763283199963667770866521675168798783991069761782888918519283434939861806148559894357839708282225234188684821892369704148723841855028244331905205784690481015849268831067146408832549626537566219588547632358139869407540406485334859816421144837016946255490652171357491746441686266293790355765706360491779313602331817933284135447974096050990188487135075824209078113001677746708429973045060686516929324700774607481978498383798860108500297996115834558677489692126939745200379999533592657607186801644759337636876488124076682311867289317395964184506394024616687130771531822110388002254980885221378957713031845225503964878681013679371216557650454768056224670460759561599338170664611628942467450400944880605255639711354509288620237743885917328208818751335531422729451319750706886388957788338169890515501350879998257452786432723262644708397692324332608486394611572587177394373413599239556403828983063654773333249906154969591058781529980467033565039105785413027245983335216886824477313609469047063894772764329101140253871668901117680756243966798869874755298841511105470131105031704507572276769510407400494182940156646227188708857019666323878170577970159358383142466004481887066082953140326722422073410363576253978769585983353789169268302172337327258980370180290979308854638486198022524182700249217601028919098059914307484002932934631597637431198864716793115704645092706422495511740775441173099501317097136440385809410466615048769412542998045326392869813484080667224640093158385493121229071476017110748950675815660575142029931644792186819896113002873054525612962021217348919997666891207087642394580493273157142182074145785691084141027561447869293905398142185723603160819906578963951887290025737542052481377258638265169173028805171233949889183624782420050825900726980663956032706020639072435990337596085075265004908400356387298498899598537726184543363983785864134200500084694256902132358301801697576756428437734481109296293826208512448971540041714764651427704833550945376086165410825598943786325680418939756314819571314778018076744878825608318214724887433166710074563037984704097167268595718149347464880265541671735093653576631133805237433373514661454361337897347943488273898253123641871420961730392295844247138804552957515570383320343008015614128914431323718765780830705538856426335510624502472410070039842048468585703153769169167676443577631543024601702076318440587598816844204806113165682651089895342619353103444207506998720343391598528531314784641747904783706633764075490501101000719363432060242714767023211595666293842160760771966485237744766585082184279121109639424738398889765937854367405137034445020669820884899861973894498466374329288952837801559051348288743755170720014170171923699070721485977973319105515968134833628162328886255030047340681226569750661796891025828298282235622774554685873184015836824978963310310890860026083786741424747035230040163887773739324958788379524604403568425382835509541084835809289931062106564706953201656943702993611520348792269047821183044141856493050024691922457107295735123959483031690719215623201682979833618874933329140154395485493878717616983362901925043275317879618097758498391563400382106995657918828816330210368627430274354925975616169016049672603490598853489280343012840706682130187041306174184921812676448956590029546560126783379117850420968399267972959449225638747871417408154441847097113249310637842741546770316864099701333680441887165973906853014986165142459517166525592092621280032318248844933167386568729314845346599921234955820995640522112928356007930281167033461810237838296620155572939734267127606706645748879321119339760387063957382551831839691656764692953675035426446836500846452771809838203297350836889314901069225774042878138549072505512349593043466108741562552532574226493935095334553934815259954422759147622269089945646295106572173040537750254057376254915728637613252194492134198269139838616646946310154348278275168943479501301647296859926400950871365565612817443092719066513662717214525778577142343861510230887830115776760782357521699794320399251518076745215440212649924012853570480570440053372035386030657187577406435293466415388254327598316781983061546154635194705100078765548597942792740347608448295513053090641503188834651681210272098907225097853132261550838644820748311505279351982011634420294925510291653805929064214547493113133372555390282543305574663193593016409486482165886664818991058847181122447072102466403845621426681514497598639795463375627228337453663798809530013691553564427717775682891284832938887089688664861510377200567991973538663588323335254182843460340844436872916499310914513275688938926722880481309015959197568444112324589983773354174775050332603641295521544278120482854289304771581180100447613861561618638818243550312848372326022733401111851616580836730210997063838076868631917281567400570546885964771866642771985065956900056051404489069883868072164309715645147140851287511712682962823178016593446750840645133839872670150579357907515956785452071676998379477101225964619796442773886346716198913730439307896136814365214210018329189883918442782145116596958735657023147970746080122784481363758955081467452487084923684549958212349163792032335780441741443405609708362875377069249777465080838706647003391553085674147385252073660226084738004236197618280663101961145989559453128917940463154711023690098057550417057007258378674459994705708987043955682081767864088513714981957569121060579713791377030831135653901460778653837818727686554317099569960603419636515789676855530531727680192685029843840207312629312165163648566257060203173792496976343870803283984066179245506442106487938488504444617137518851398634554427036497713204143004942186804907760002430622302637572414403847959392136611809601009179179526990512331237089642616052485394578663885736111667969518312041291853235611265682051845225821348758440965312808299951696382956757655826087268159997918768250798585782215177003817030140082078587302472710781092265463717799627152086997586140183919515087108548990302732197546606389800582922749444523705630740118030185474475083408698957849842408204809601473767904735673853143002812384503793514668879198731173964214143071542795513345754294715786623595973575592020425796266591091342184021804388702438234427922731827418767634308497581604272188967689642263309937071455839734234044751629839987459701704551345228686825815895591246962624307186441801621373790320500069599925615296253495830987086752953315562208919373057523891385022748302361606472291444455866610142296764841699173204655357847599692231211903227119996960097741051125800300586920050418610065534882320744419312657705373558040003534109857144599748626074866594768294260037865956191221108973144439833598776355228325559510780028327412634023429055006885333374331648406129710722262690484466629078482607888830697440115650305412451642300230246005308059290545757014020277832358148712681517507130489156667178915170948819926600384508043939096286583895515833918640259317564015480752768768114118445030773712534803265320701605864264702460686537224280280138423473174371224032144328911286294427266048138844714479378390757019685993395803976041064347934612508714995357608776707790167934044486497899044621076919328813688634874768353479517705711097080341782754712978920888647581419693693839741116762986897812841018648545608073201760580302163922532759423552361196827444786642952984234432640309429623550814085945442966784027831036654374074273355890441716237050748043334829131625963460732178359571839865930113512380603878015165289668925894521858348432865295934516828571000356688199436366748942253596240065086296178187098331784449470173379704617091510881967332910765811480690602754701014156732419087545320972430512988634533568053820683132648646972135894607262554976874776629712403894814712579297919089354867052119485058741990280007504606657376291673467328885573266416252049068545810978258535924014225461928946589694985900578555283332176677606844198805937448738250131201493822089683446831478412316212953781106605087823052727894987668982466737486021898993538459756850174497404128077554414277906595557943051636177864795742107487320733169918730554820865148605246770240292622743369622856496239886182806514626467174273354121003539322078353095268668422116299049248036463207717831301405879159287554837328141641338055437739224402288972022923641919248380483192858570409509269336629427794688466515342012964226157395326432925780662152829781202872638640255905419674133265786222432746194504037039938490806482498606390423943211494864085985827971361227084451228193286762576935691791721745762145329922044554474834922786237063539057336212865476352363475043350327602153523214674975868766461384632568251139490839748650114253625013618171125779778819063700434127771589503120123168067245633556411989883096671876896917842171284023447580923482296584241841282030350601235163218936191450064968138243040150824311305313409169327019940989129214552189038803506420678330762937583888903336455453871409582781670603578630874253465961988027271748738401916843026033277516810417456213554772686570113087560293892423568775000902744769096608813673560096121320101130967368427528730597927642698423548971223127047265251277019661982772857004765916013591303074453825547726294815897342897047016861472953404135901199625141523042783239965648082080389663790605590293078830759734404874575399997249450170503142909308936045397164649846894040360662083580017819701126796920824118144610395323095899420919130509679446050296061830505556485409853985995635934607852617664128463759868266076430293477300352174842568446453230289099888303856907771457931709469032604310959255758892254698893921743200840256628323594389490246893140227144143630470081967534651411925654141399293441462295130643535452713311673887143906194662100304152221088886203533703052968996234917442329357557644483145921702047345149589767927258377654050011823291656362026679713126728622106873153004026240165230380656827556311332231407318673291278258188020755119611387533348435304813671337267060510678163994855120978565909977333580200709105413568404195032527900468305880313207148481009770961694715840186591451633252770675617208686192860161434810588492074448238127469919261174699008098967828304479498492221354739224956920473800633988748284196451340412586650703181264734517616726224433799642035323769632122666472016516475120549992798030184941648901994994132845758682868434228616501036250684769817485177327858671042695079778866802601211111219785201742270943115654707215368706016541422708018920281890102558636907462155766202758557503388305709413193598694859382221544525854304826702364931159624999490215366045122278696684799715945260238055116612836648172868565940728446139354133178764852861204946368249613791297766281343211997403087223586734102814301142969765849657528089165424748504253482455896930483127462542485202914034967124950335878248045402444034704680251478540367263716638953505648371948662945858884198365983538372583050637376909884611276802406820084980745542236086549553712406424470360530037332689647044903628866498263791395403557816329952903273073417152513407089914989951245065021435659102799923431903506134065667800241519210014385948908905217152120430023548705568285577579785753240448394769634491140956528772444680641716469915603016537299768838590199862577799733209089818427450327990578513695023657259325904122651828106104909903633235803523334711249792736208170837682558595392076952719551552302668501048347927913974514657344441299066800398102417262708128351107260645002227201375805132703507367470903928958126701557343706865726396941202705466324123233079981075706695133102259406885875802593877720385869699003711935436510552813193301300091373883827429641267665357867710689038763219541365021200991494891286268581560575584244700463218717269959250106338598336928858645715481652061960335469784085910514872360838549912995491737582137458444353151429095353629400869277695728846430389735357256256959652617785820024054849858086122318321626994837317326881762281460064756017348672797194594062341125209191667123591612103279935700353979140202897396954162852437518400328346889443624826170486753307670778592477766163338139795527143300371905649193695076882345587564851092500519188525579223892384630316706798752611933211438553153681628608191002188842422495683153555088612821823922463854824509060919380076496348224168500276359638062864389757477137127487265291172785499357281533346895308204764804881571963831955089714606621976920450672879320056417422109627230064555091205340068103146345069906122668221572043293552184139789058103406991669041557274503967947750993795932597387771978695100343403443680066295299985433777161804823094227915540482498569971115979981475414007336822870824376069912112540554964533804955441788506706474308983030359377421634766223289048372494646957068327045025652117139325896626690744388426841726359316435275971650604193867017563333478732952296730023203312603571471128357187998820617247132544819551181041661333246970488878887619534628480683690723185184356739770742810391551410838828990866152647675671483729600275351889758388185391652681355966905436612098311964738352987812541830468231953473551248163975409288927147823647748761187228937178445366987722570791952438391683188212176013670151037158459099395683551240382946543834850116762537025400098088008829852043130887444044995623774634598388392377532107467887154089901480128544260515768454417331706776812343756438750962919450960251954435100297445678011694672306872619276984305049883987968359914645726837003592965101517976871194842151318671905815536545579229554417407224955013035939292086888371560672001538551984074386555181969905570787097196819586740681297763550963316376501200234862185135071671912839774200218621062497758351049261982619142521500975240854943460064295592507317117712160985660584664292618833817166444687283319437661490234009647456933073039851392042931914730014326885979333628835824695715133010770108644151877744905323840169550469869746675867328742407724928860955253722326208778797620635046256574195668136700638637617628389441041189932382948196355945105105006291279528763235123682351032884044832627868608361602185796889188961805174389154876210980716755557639415859995473434596460279118399652887832229375418080431826080018598798426088259801286888365147155939871351792743797386476925638157228228438613203090617159743150852784080776719213830268702847275454173334014898470011409301951073275282137000421714896485089183953054877043833245745006255102621207115353327800578860329541073500853532702951977962361205449497814275638820836477518667073920861150993506220283403313570147933837281974585809352506339601191976349535854944429404532172760056553019973095170778236556395361889968414052019550182212248028049797822525996086819579189430492504041653121486797304513885506344499709086417745703717774936064808203206841522278071258861039124866906611233197457436171602143140481642666452837339228221616316700318016194667868139091773612089750037633314642918141088087465286250354134929530474666941441707052622343086921381516425007734731913108620120542147987538928493043177220725963056839606755972573322571595218013659601026045856369067140379346333940245669164266266622811092223647168314296610589990974425762671993151617450359776550339793650475687586868959639286788692166089262828523882002984671549229936045636932676598891306480289354739888688660233547481658668760142344387214851292256109317422957732620470234617741247459124020340175582716044293169679765279201540945409663756307159417003164104131627675293073701301437321091765129238620095382093528330370471693122597700574481173691342187467796018641581682455431309390279310743572153882567549268025019803998794215059039478702188933781157388017661597439739367183997457360981426893365863858318653358044186611906303572395142465604254385500554557344006338785253054826440243061612803943570038506682943951208159392988130327794855534119540415885684245688679764316098419488137462143105778066866500222350912555135995898331931883168107503003990389699178944101184994881812631430463190351869672672113334802143628798650703288101464880789432375977172318466763731800620290930976481973653551177879807659724887589185632485535193214211038400643768165339969586818707777930832638000623423204820936602584126666448740532861095751080040719591222210462168464317438862732210884617469551666366914748687927773434077507031797566148689716424766768931034678432437433551612425769726185383765164110335872684910071850688425147307624720873966853829821624850895088278809264934018565988360542767898752219027139593228144711176085387176829390317896246031634370498467798737351243477552334851470087815542736662028955974322750390474161128899237658238723601824566112375552464095928758233843149378080043747264875860696095713505627760486006011752732390230734243660304674379460559530979852136259348586613164007994902941118464401493163571565909101447059236104658634362006916641193589645296484532879052683409969126092100270658240311454510092357583186406732889456476468986986931370780701627584791426876799219291348631091147335818048012207195618712962630781343733130412743108882407407319419242296842124659021181158860350166062953445027272453345911583032304319323031855120345228919036122759097708115858567719339967939885773268490063013985369409392492564296767482917190465621732949216701245406540475102329583155303561301598765846765183983851462785457308685492647184032340496086443091113797379623275451514772749919478073817816918133160738378085834339731067485773843785067574635468362112310441771095226994607841616780133855609268803360077253509590196609588792618348086349646119503381529539363937814136253385439511979114874406443237117027059118406536769669560341579959339897712256154757219900434355930288371283012421292376556371979986736890752521057134699491547678828037845134209134512402990300587492190997728830435577573784763833313390309281309052824682287185612585550304180540358820049144387755916896629680285303372245891870720969216655148887760233497936371485054508204915983574019807784616833983493923500155403726114552798021039390374049069109475369370074772423577322837477199373268858536412429515986322207820490671652051094356953217447425183446727239449585258010767409318493477484894145616064935630276891217505373221981462719281641922523797517372867763496824549390759897810581808794902633174892960876939566320664364503384761723847117954338101548274629157501299126902621444666569808485124501870272435126045606079749672273272212213069808597609296237039089758224308840883133945762528915715530183295924230092898712297786769023281416274328449458376994526874005178163977375357622837325336614790078762020241606627175186496264788049893676709648602895374115035328768434083419277902787955191548681966093753657167331612338496656172482572537270819292923199328815879557130133403506991783792673313059086693382894168641464143333179364945410300399126198762979713803819458234728876477682359399836275896273678770547218425617827670850295120265949366593996428061729237285260740530029295274642008329686179572260083086992361684243289175944292876124994546611330147051328581309680158044957589517178732357536083290280062213280715771143859866082071817335878585428170300106185037842211815943425287237599649460579534323696923595652207950639309858621959454292580439648680635320689661069910257281102794482146702172135820985335501682857016264967215204738797518207962341226018649681069264445266615337674032998186651834470594970905402902004501686618798383337775746538362804558754446312341841746123498849064903941032024597770135294788411851117584537783437389762928956538769200783319793073895307506827933130101181903946998010283185453155379660287849670523781156881833848071011443371252650007168985220764086446425025456523169320537517585967169939325503569173307518974666729801711124691477956096622384301410878101401286114493767359869959702994178277809933958653201653692649579138535858884908433054236069792151969225702116760269813107956698213375477183143246195837524923036123676088725161663601361244187690257444711776016158831208009138065729024482291158565124106467485639631853817167639086204932340621412480662790849518118894324240274326410784292931561722567833161753752823576959545139971939680781860716158527987508086399281103051334616275168106233962263802305454885217553265275260881294693572693837785120888881897995629510171577298672672207636013808638991839468073098351109404632310483744081152359678747318227968605529573625904188359815734310487635344087133789307647694820574854136560695045602861633937085894533090212077389025005756942241276174498972374290795685127038242040107867940425671152128980053503762999344338333844068389926567807654757078087720277777440307899621713855545906771779314912421748762712786289854015786563266875972273367093499323365971642654340806416178174848994608899678572609719901564124687817685001745586415585085157583620994170554109747950173099440791951925426861040721602947030153242938266386736573611295439766158570024466113568124393551580675568636839544914769013488260558648257754732000656107675317976977420888626379870745897885473950230744181642625155181033854115839952276100937613067271547591401593229991115838978191734451316285981382050007150429256309326625652711707250410403714147609458631481989621538318069444174519818931108865958218462035847768750964622938813429887820503680250566172467563114973175073745963715489105795118976762369688231492947979966280574071765600471196943858087130644303738609391504053126654119743738245320384742512224420007448921612533949812669331940480868426095669850587728937444587208148340700281865567156912439146177211502143088798422402832014004922484923781668002645460357828731078324474318359783979003247867259435066912939612830685197234847812029332360598985396826890747363725373552725243972145567875899962153824109156118397671951582264292945165499277175098128098704953923410088936328778801579084895557435821904065270242265448277139924219920300082825892545836389305155476698617540788311777659353034251579988085760381539946668412234138346961124076568695035701172740361449721143186236494298347681351701587036066944940962506454014593955610553784980143690678857985830971807643642982362424552929161852491743088161008217748988648086829949421712720352729692723140360575639623664932272169795137272208047444943779585649348235251002093961260021637070886339342793178003667595572461599017676107423065987156652034406141740587083584752547061546395311608874547826610839459206113780366865123947777410648473753367783776386873701631246732957172952324085637051127598313780783883307221201448190434733663356755803750463596795492401211935921248337429020467089283657784361985930562785111419837022379433573607502463532805455553148800048152645483920218639925536548292520484405019921441333106440428149990619705570509856193750900244036809542730302545889900281242238209318652846809096315324975223539958747744953151596513555153941861856958042939470503618220666943135872899769192278022312407422181036486144216056238602798557817827956523992405073715745069813339342278713966810113557690808802193565164817218454217787921788653490899483891784682169546893963542479447066458183466160881656888267463549059923434428665444639690528038410573231088943282319360056436800015156305446838103628161754007067960167025253465065131971125746079496441509797231358068260088106773162674840540349987042815624434717203580921903551653234514656911263415350858702103369647668803398458210503063083224189538443000442330248816318545400130752038463030212356564291375339918851399838877102062333908619963909269327617701036224555577130390071480192783757659357735439149575068193541847503631269866240649561912848508548969341255846568221788673251790116812041979449398764492634006828039053734124370774686974188222565129996073358333764581246226483036394296859025686219994257819948490844017539706036243645977448462545702305873775870964799941245500816121295987897169272485803411811723610110648542684933429076729667813372849712529793425726276458699788234703297110523352129747797946879338236425775418358270038849145667587157289548822583180148560318708195608371379150606570552363697384334612564315335406871544613073558474859786090504050751565060617588341669502672401164122213593859076344815636685238465571201818130490600656764022311648881093508898931520353512467040090189818272261035895594955310554011819988896670735294465841502345419949828396924265714578406483572499623462127497521304202139400418549405452862630116543383245135887126879202256858629439931232271700743615787238346478709481029484991004894792262534352391408228401933808370924953711957888062927299656908528675629084086609098775733722555094523285484989880032581132883277981332616200085221528880447002863921311115769608017509707287077553803983174755203683318519407654983023198355505273516922765180523128035054901628593387683125888871804431416943573185055127259647549759031937720652361079334389788351155794637403390308995927282450122633660247004240911130661390818188011863902449016030484882763348474728846641106904815368292905311163556738995999958751259600035765436483599066962563240088210161423869494067986694797037761283882585203659808667891657888413581683559839032111023058442800159525054326584379873203648849021648757027386376800771869480815006354669805278091021694275691788540762205235863723243114506299582713856406009768506872637036536593336577894513576392900462704845566807012710547540009514304629346310377815707711004943988273276414918704019856929074913201135623214929505692488137596149064409460257216439181931592780515264392259889499365319053331646506098164323148662397079429691851296757397219288551194220735604864960675649003282792217340033104908798573038960268299305995983854069392945275846471763956890577943063149338245821500586605619266163234518596792979615361285509444776043970665041767349066166207320880359239372862459638015908604902142289295324468882723403216847473382343565090479579461642757901081519667073501045782005186603280017865250534633384533039004751471603823995463721099056043094104141282679473772531535470565689836262914769409121463979940048831165528949395224832822606825121047596527038478944307175942535067033059562175262478774701237060798064947962487512406106196340771155011775213188409564346205967057483395523411056342951373645863927486249333629425204660196766197042406331033805583222881448899433365179020729859727601630920126635722171916289556590299366662703971087104855321001616160052051180607695732552368655002829734201409944598705020048691611840078332993630239866348595920752391132076465667687408297629857638686122279137603258350657432929463412668754531580627247283310820007077442632102697125991600274658983652128173530311191102536161968639187933955368853870291640617737195447048728318917907543277943054941495936970110920161675872593616541263482822638050171514207866033161828361917069945357139485875803402896525704433270132736713369244054068697119720130763456821410511372083862526552227806097627332181018922344262008156113969795598595357925426206358895348172444905536746645372353763731254537203502584593852054477636424130789889257580041286987598098939028563924782127692575859906000361824592556497960110653300583200625643207009946294020205082811666242268510260234846845276296627106937388612175919200028239069269761594094931062233867168000634438646976024874952161191940744350163694329848398069609370965314603754342731859309065367991482729549782243959200798814848590667884442847991298315987178742210269521109883480366564124399147172509218911653101843411957030794228263851060330487527157657933700999455025953356302960427617813855047298155332264645057474151863329219383214093334277913472817377741834553638526837521021361165266013774201318854572182817802396554490103766901971312690801965718082028908395586668827256959922894485068223181848046241201678782891447245457667536318687364699426571335150018848124098781550926681078660194671051260519914806591776189373571012272392056285835328831541568111111236975137290958534718658655272797614047051053685775282695038473126556930988293208730947078452406891323744347260433052025937416902402264349497865987482018746641620949435027888338765332487366644737267221188288538551425933157579671864651086783298366044819638358470521440952493786935604509229523506009133557935834329645448894965995889634859265043577860527198076690378651959180715595906700423702522355543010256481248005729694964045839423058794650304180237843713067156748575673346634109518620503762146974649699061526955726226040968685256237925069321609407463743386320137949060346443090683606559185126343202881463984954024130850869513599812503280625618268016680783625991248141353881352766684487646634526843508393761561048488133115870948682450339091776566741946012593217486029234617209237454588794015732740359321485251541778866587558104820035838015499234615651622607586436812551077961720342273475188467658318554123178256050717309284590366200406565567797527341772718230211414486963408737476602739207543359899611116362222421538934406887929286439096444830666918007578775039190663330307084824440713812414766880388469893685972119127484528874438643237235103960195157285599612537231072018783218076754951961825928951515462342506630217368033604157263567341783872077237482503644733739857580834236116406997091777985914466512828037064619102671931914010710842777468984525829718678632485852943174531310877935244438633124871563465663058585467100117365532122503325841508937381618898191922924996022608369914873996209915734726303069555231838209501209072977830187656652769031153754734931700778351491490412967238566947695335898711767401696612185939948584670980535023312824511531789930467748793769914363816068863239942494205563785025721926380119798244105327439220802015300780849754650978867288409003420960603125167944891124610194863902093847272151345447440914415306841608946804614751802182641171734178721761221333341705439420348785060685885479231187202857558506184108489720269461719878450120374079072341238345008322341602638621995630701737317321998030721153988985754673761743908708690580602054963072826329265013852892985455666284374268742914221610446857903157629082501594005766187429419931250450492557486254462701776226168377830618295842785672130664630374552055078649411795904554735631551330514853437139184643424916845584457610741382364253869352750469955797457704212017182359543990314797596751016332254300709457616783660457443041529905771878110252115086623236104401101548400814471599790926486162267214579325285043169327223537240938977243027095397533606607140775985722529821955671276575279418791483750344574194974329844662947768341198084438410250282617318386217973076589872824196625405972406624260997892311301065310863720729971399495566105319936459272592069257753035723321179069882682702606082157953914081280950687084178133587766450734974490352677278657126203662978188096314544288818799616513604631850072356884388194484342036581619987080148919823900598756939555590599392777293503241562688902802941087127795841488676882576754127324946562986940671803181651420340845072629161630246047390777833585417689469090543722698109523630703004029847807616826737835966877716828426227613267658300364958564621076916535408353582110247829026366494465822162590950537156152687499402960209005130760618890753597004470607972494522061500753940917448193746168646033987577946153813916960637139979175860510213669513409687990452901958271779924858994579743785646681353718157704299818031601311946810792369995491724145731873624232648862493330552585614274551094908386491828793352285469621257750045615001855515974594438176668607097298693323162073250763140139059116328416923275667616790077436926826659951283337878131025649024799304495530303714293258317465111314766667138545399479240804987980422401440838214229722025374208539781493097529095055429513988438209838001081580176405036856050750701055185979961858807141516648140821944321621375423576059058939738379928296186663662875995229610153828667162585294474812628436101647068872075575856341032823991625606034033341886908649746686925071903512193792460600179440955674858097188549349520646684858752248462268672535494455022634252015206921841727105059049801844002933864085017645670332926442412723238572317909758857850672645595059588332663463857040885165765402946641993526944784454620427635553271178927338304962521258697682480851430252680547043398669724528174233247314774388637048950278996250002934406682329133152218482316147331179944845927251540152438004025393405664494823732138705728142230370907212581802281515441574240843853836615911202110381905314982336666288158635792551150053274481647443308099550473715253207463276513639609288689967615406121160319022098296537574883147426232462951055238490610564248714704777935060103478526927928542366432394128022657174403546578112688963431734109866807984438547726556615749976387389632152034543591930119728876723053138258192507183548421178040221327812165774222781226486132214705201892200510791542294007684013331071447580825425790789871510678149695512593233092889635323057156216998705316111657611217676813829617900653928771446813888585391725652357091622549532475651723227196447824154920019036583015887978057348825259398222678061370018668686232077574894943194592836369333836770006558505876923683873958696274468552165832440778585896108364828669670630673115490230167004107588699551514190313076316003637920530335849091109502634946894013624124636855792152262745966940881982942793337943721984040957499208825719519959774547115390287602404400495691961917699631369516485180897578289148349194633153078434869608643618915418365922642504024967519124135410404680016815368912784432218581280642278778576701343413802257240530356615318636108433357766547920900040767729164654663726373369948082020209487938239469978856714901657049399935230709832651132412446731571523435357941779170218172519961621035241913743661351350485365877551015394278755474808166856122546996647266204446662162285418558698533976657019934778993639699414606121849431199544989939327633336730197693780626068212499730992287858677157140447086918454989046878636088151508719199081031198660192560698694612323159442806894833290317051581954979698107690525365158639256764278113676864027727991657762712637556970822331239059014719625476601242380033585416624339005690356407804895144265729809690917331809995693903208519578503674968934162957753189679182890356249409562051084392791024341747206954079958220204823341922866457280156638998119328431552484366554798485033438122603508914930219063148341175111280855063628362568939324367605046475957897639664877279592086035117243130246319325020086981627838927865624411853824211928470936032583325145321709790264530657698997483701811358908133157233195893480805581664900932488244652526637517264276218526843844794186666477857144143057502583082890394998788025467793829081906282818980952743499598798471708086601579344933894847122952147378695744529424425238634342187319949582085280992701318487065914868975911788768931999694659517556270399835938219621013268887185207040359874500860979140710301074682101843367141527067331860182972168641357173080723672074975576194793819860192318002955701665155876447012446998003195268134136123156411959970565111685347109374181158868255701386474248989965820044917076545853314021914107759501239906091053229378294015337330398821853043301142705463740274480196258697372566184918125580743391801524435981874117962211478616866069190486540821631870379472059065411825640059992301691355399730402724478590696715300780228352985720803061946080727674391283387152245406757031400946121276622113745359601483855297594722666349167050181387942389942866182078357165665959140193131169982872452644468240520932342899021485290381081392326602119324030185555692582636153445798894502827867068502039663588167312447508498364712120228833238944363469796808558867826776014524515885768040495322291925578484145793041528820784129523129800629400591916413237427791021091885791220667691248236613096706441961440840862099773845433375027407547597872656619587222557393382407377147725805547023007673267204158908565271861360579493639342267428578207113629943463256668561631913042366909357187570862708535816093684140202331604431428686391646363651404428161812864833653671828292369202949343450648583532262661020252496553140358707123959528149992879905668940607282671485700237955848299112613497955894863070630034360993893628997386859550118734033060901160297731949909759820882030785995359898049547016209382852709287541244400322469716196341378522405302175145985039892087262456101548781287352851268683391921884752969788313590942185275383905951862925487349199528048724206081904525699604417873989444772251547168016589682874663920695385340117232605740304799650109056527715620479234472482181230847628697429879385766144688654297506975372848409814550828818671550656249155353740822554301820145742847778865444639860376396794895596312252505759835883739667963380478192216154883905853435904761858839470640241454273674032176331281268905676209773680325644911484834149559952115371151771625542372230389021133028968103193289329267671054671010682467428616811296555880645600682596843589038373599749658348988621526235279496027251886201595967992389959394201473007614778685153432095099505388213496932013944996521594647364740608335176697971850024025082868381308295277219145534415607246723076432240250666919623058084907975264652199866591591340474861261519862803918319241781967164135735626814317029241368448461705050972043852976279006598199612584689994361997072918716184981447628865065558857865943077741111849497398736304201498570459557560615468585741733664772214140080599638411383364340595567219415555253329948950977876818863612789377771893081890294088493113606539546537181206644093704114521000618574311229080353936236611119868442403324477382621255018662137772116119606392184559190193545062615935334342828214150019419680518326879301175230783080629861524519714046792546555662114520070527845862917997828156638337995956517821035655294745717616368991194998048048588995189435592064552870137648352145679544028462874371045722760162652952833142947026080284582245786641886216166277476801794730999107938475269008625493227107657352857503199189659164881263068354992336187416336783602375791587263302998593335024740390423074072439758777092261387820348591834246772220653043636501026186831483578055041439707134824522646622442619457406835860981894600710089671512820569732465909351266628484742386394450976341591863406181929602396886356033494248001716306056605187376887567078349122902702732259302469270260771913250838800729150980553995120997860797999555860622658246329457826152842133422182810461463167708502560639140051565910111189168843474358008055824682178575674386005644160192951045282742457244800474771871594967562743524998678593436625168205256754115261982393503385667550727596989742894769996722226217776378431680022447533747246163860883192048867055526484900632211717021740572022869219348432052004339685667923527495321761386385609069841331641118569608188934929976133624543559256786597700318154435308126785153212846957699855161472357339326939568206660891103101302268248128477446516097813734840957978462063604807672177680613340940890665976246937547022687115151930712503294039261554829720963311475913853719055701371135561184507439333782575940089065833000378060088652155235591283002141982026537431879058981708144643822440059087077892355424059879671924653003681016142263570410569384013281888568890287250317701139177678168012895165961645833040683477027965229615967474566302032730501445071663499125702689570395590555876978199934724002400623670517507776407863987048302196989085588164477566227008393557077313368029674211122803375167367731890798197837554465224969390360844340936457038095283877557448503494256805266354651707019596815533255469628987955128065710936819533990357228595868482068072431346527796406886232005458459602053603455575918776761267999403116327305601519021280428213320037366604218309474995802363241763807147751488262220974597779332847083997799565362574948084476309003490051383462731156800011534461948864155307369491799400574130794018264191340465256995987503986618079250592912552865952322616257282150916133334187586426477863633112158430130563533160933099865482679562538464964918558686996989911130902805783423168839587772514955689408470039853086733989666383794745309714358530968685097510721105156637349928195539668419223556749239410870697368751540295359003830190201806246096304239847296068232340847428729814883683988716979647894520991525336153524354515285966635072579530426412284657061147900804300942440749663921525548632809496279339835041343437828046462151026254804798397529621802442054568201760756399980251203699738936871724945251864159196113799341876910729362239361335001685609686430929609081465427777015080764246519720766656078686163527137233283821018110565386688883004173173869957276759520624264412479872897063329471222221574248385298028210541491301151498156698718105154216077617549116652203376616791717572905558001282484438922646126015637878690098691242340216292928517497221072605290156436012422224533208442546976947308360678607190264652924833793194185616124373165695542388387300789440106786447949807149789745709951100936970484355960685487351176409397148643493237245829558875182696636700903255218304500730351502032498488036559533419426578840230908780733356444405180895487913411141363342013551784909598566542127385436904444820689767341637906230845298001744389215669935693426140913388060743314217800856573184468599445644947121315980949820136805198407690282291329049463241564200283428631739847670294105364710528722459574073756662047788779174776754855975388045493127672490769766292435064586388775170232013730310662343392179119303402251900342794399233238537102566099575149902685780561138956275761092404127152927827550603530782716840764991019312334145687557385531189962704315903449345569489886062379329616342089938707313663392927539329727370305892816946522286302112035397154590624615379209792944140389935972285525357648111482012883644294285825296740808429587480103208366817102575390643098984553177868615282808519395113681635764482221866136282264326536829071999506992123174562293309582579603479074691247083368946261888412623493723851349104221471843223907199969942839394945511297101110422262813397261446171853397598058901170914508661664259396549841544261603894478141385946045002545438489907112983647576101577081364733948352308782109092622811075778415650140535927466363597251256431689913313486524815357118762155141767150531000226769533651357137374161545082740223928739262241198395221220030332799324396765330369816720417625721656340848343353610512120332934362455581942329863293612270317651303518044021368827907123885868896183306463286331322400124160148874997927956213020367636082571547268789346858953968845169813741312463086369865444047363492578158334095271088391947221809522248179094846018598558626301672117166330366387459777964321270422714166643890443917262777010119020479294337077606721457741632309875795848922738816273138668094718535912618013775811008848399535199661403191972904115804206831371219605679810863326313601031351869134468169777055005096557721706428698526523001466730760074010716698855219448782372240103524253372981861824080800045800765006434424639180194492815657197401218415771355829965287989976037924671458185604885383692814776921900680171687338690302707918349733786008531805229230185292926538287763911646466796847847229906808374912283859941684521833125006768412163747371619715710335115845235164678847405101317261939174144973556968826379672338775668504935085103494132515119246843794016400140349194177119726607511797367414611640431598523282022512541726552936934977275901413328159164962047969415832349303734840978824776455025483972670442010940195754624887282745194228851125978438729250028194174504206837935588105553803418389887285587717453017492955681675943083908826093354699831052157470747453806419982952530978067048101386780458321078155024523633580788762386197372715625236584307277077216238701958180538108187045571379424561428067601469286437234292011434641033126824227639084118315168074492573796798747257609657079165785218772970554030257487603822097106754368921900904746921177335106296443857191945007792166425210485893367739501194532920429904848111954015251529591727616904814951896124065976859651293287735781347915915876939815458821435806862759938892329631749452973733920137829703432000758649722740675848007347847236954377395641298525452808761770490422021154753625775267006511258714627402764855414281528154743442736157304994657123305941532594884804115068379023127191467564752186273304293727767738187243494036769341828240822153451105935991792871478306964712048917332467786963247419049807441636918938582833435034159261837462170764799931601726361520724248611051215231754211916637815334281371686332291287111598821856833179952626582258935176117597686043667653138554769411995893112939538676879539911072701529124591420478637276066964586979225407211655219732383370644720661784959623962885018178179982173636863212066340994255680104212038341075228444345777274026716232452758612065523088095368167317283901735402469653683605991106155082096290667642138981719647971385598836588084609396617882014194561856301506021608411367959597214157292247680596934905133652396605713166885241097011557561992035742889276402961616543418981342002437759073469281384391889705414380414271370491671073561143290424078940008849777801055814591854191302263007677151650515901766114363581299015987573923717258404774190732207207597179820408494492908209837792773431481809941653598131910972994184364915536893367598385919940091123424579988646930578885289149326038846042766452025746282318820276273580718973122808613008717202564707752868974299222544921177625501696532174626937703983600850471564110826821833738665531347214124923930666104470432423133795922797731544527679646122088823009251505318586176276939880630776027137035360050715532093348807465648772301791069989006382156559244355017335868485411354256106400249564522098201175185272177014537234554268869296135675699947413857158194397382595673710024128391179341401636155199402102860251301702570266844671896246537860400116668085636756169191936921102826781391332815337515432834846396500593567488833699545176584723796564584668015292830657240596376057563797781952231885192690816111424627925989282078795618863016705142162190133383723089131885400721347622535062470844893596811248743938382690176500012255340500619566880840936905520043300562537634020558398854924930869787798880128438933844222092268360667070949801990109972923757794651708238675608985274837174897386467044687813661567002377953062382997012252070134672011730256728802413714561767071569977192444441224846137095705685471181984344908243614461729164981907044526176490064304949994817358400328167870117354682380746188270925597791120359344329489906787954319089067167089107595234538610349023039430727415720023794060514524118708910972421764176937564205075354646588482776191222801220123421178039436162382515853332586374328346390019793414956614949416576221341704745807444473715220630625814747117955875888638541468269096655953130252612826238282975382760398746074336184138128683039756105069462295180547071996498945271501518069983496208633414166896833944588505080901950046232394827326743367838229637888757416750338501955995084592914573673898524183000764709528815072123889139083732095081704970559646032799160880497890644789429787386015448937122389066229708472315361016716051076346753984094519631886911907556873543318484483749001165074655447668035603338433517997410963856420845308086416327998456701756107543128088708355161983742601515678869678357467565889174422140176270108209307084315883279672965854282072040075755774452429293719173053982573357165362510784753876486646399767446076982501610529854508184810588192909718424050505037555128981466350281424744451319312726209675212892371289897712621091316287981183337377566062944339225055034274322275144469541829274439823369089129406319925654003894304291453082578558456480274723212618938578582104978470046302444893432220769311852313111159190729502207567203123185486488271381091552747220457671104069358412247456254987116022575789609483062162323428832515592961279108765797165498068340794702969157010348603400467557322640124815921824846671934897567034300033151061736507013488537798575099269137138916331876685744055299557982938670348621661703730789874607038353920706415459231954845103246514432538264275136646846951551787964908620620547409689034276548160666488945367569114844911436361195386200726544708082507287314528093544885618954639073848343076111964765307514699855604613389407226708493983112833861813621973246663529851541298105532256888415100502471637351462005068723272173472315935140445607726544674075393848257524580850979292745333606657593864097242216267896413795359110802432267551923625201718687345643779083919852632314966181506573917512849833521862194765874301759328599087752202269484419879739934509308147751080593055977323870920732550488113712117773608653395737334556170246827828312586947160521972237224084908180705933326516493898798687971665548598371174147785312225102197981651452019437213778292580658930852564712380131587272851608185077738798273496060653703882807352688019417043907978352645446426661148942347034616624760196280196113954523243357165291912818731323311218067357717077333202023040879535103888114335392984434271304512351201408170748490479954109406367364964927405112831043595674981984754696083042693233336595677225229779737504988105618530264322284904734209483237130076549517678106598252451229046183915304930501294742222930150301918368242025030747893006272369608220134182805059358800808175718225363946644378199512372380159432711227191457206557814828624611245064056443117405231177698690703495412327174997416046308553436609817340380719472052042328794276304105833577371775895048986291040267722893245874388644307987897050560264905986765330506271258098494563974563500863910117484419323259722500330452344892688885453835740433840415269369667980980150138101031811129470233081530408718644345796889947235133202832842767348700095297141614372515316509705149181865970354699817363889571146365135842155598390563732942562059218453294467847758855286557957934752086637856744549483150178033828641776902870834065688723139052517229686987839097152784180285986324857979872043229854138302516743409128392486467033693859765283972161282229390181966387514346578570896517055024291353445910092633096662369506276720868990292506326609912466851090032907846636075535332858839499169999019315113260367364281131964986957686061972202907484618733756608211757199041314887749040676973223194132304657898535018506128339507060365378329076833162794329725015352735568586459154111586858860230078569045871529265864665791768229158866457029002018370406534497749485234483135979887042023895866125371126852213755592841384065592769217925005137358990867404747028789100650515952456676895304541104268309102467848263225030647441481159961333429380192466170642330429973363529779518958711917759314788851964472734191364185036553738678434242004105852384310968535117907124827629992586509204087793338755458190017315773230407082520963100900644535385744261549732181079023612438554249395958268222315102115752971638716391517053676991639358824362140168550189038060896572342668008224257581460720721534426015823793414962648038892454866252992523877681156508517577440045095243403235270576250640304717472428689822587967135618072481131606880125629273404175323688651303104849620711216564467121876907614729572995672219438334250245160801026465444814414694038558039875288676289678353187087315750745786205397329686700433129072663698267817309314391876127237486313126652075840561543636360960535849017909801340776737372732056149098007043943393148058358740272511084302325576756872272080101260231887606889067984208888623347142422243877358581197467569756281359227799094397247973633325812894135279017100941138631567999277264796753343259045621656199083237048518806836960375921809923912785235781312457561490662645628592355709366933663742018205428414690937373434694293148207499889736321568193725016868870610740910564621229329198329652708034038521162563732353390918890048405371690137930733503298262912130081814171847175268344384694483331633317983087494889542748075720021831010726869995862950839016551334750528534786979952262038916010902246169371042644912050783398895626490748624416053681496700826774610898409404914555576504707471895103934425790365694304745543936260716442085373759997418836292041652576164409893614193464736785334859824423088503719297025960587848550809408244737517358400589068997291026172397154947973857703331387017427060486477232147324816120802533476328186404482229593003164971662603347169240334429706048368726766676837167755210529153335626856785996730069139917988158508516025845716571713217678954958539274179592353524743677480449967328881210396192035643644613337062909167757426377992420734818023983949980554882863999266435047778565867024561684188675451336208267111632416871165426971311261524935626217745505914860057157628397754522466791468942874369282951255796098682528259264787820007664399670588112569208277388157578499491668769440579210143007062888838793940663752112201437650699276678160843195677419378278449983095064909752372222756669500732529155372638206969079902020527727192526524209169056148805736892778934027030529501893268387982928142995796270338231259532263862847248469060270141749519967227880018117305149062431080117296537258551693480483917129676153875048060524047157308880445362692813890627556856960481080148341388626297474970656809327756291500516872459644727602149233579770713470977053067045032110114580516450222823431068098326345566073801682047721881323011679700110148417344144008156868693112216273449713223008978052731238396698272712940272835237665716792741894822774232106904051073489125993134985178406858001933688330774710398688278040533796307581909523834516897384866393893308154369640338472464478392319163559907140841715018210023036728650109035216135559311794585994868265110594617979488688673577575333827414946458922412244087054854562338899024518473526827495330050663881315761376727990407434076582952281901236673700506318560924522978016239391947262869120718158715752558819041901391130812987604523035781535727759191808079090036031753811779145660195694357702595360794776759947604918760304176587942470484409366085593205067493000881755632074732394186002866585930088960942370338886601901019802758185221973952128394730442400293277683807027065199794133311818977465964669524307986536246896529513962789319616469099695069200155515682269288650638261644632349737403677586448439726506210643889748685625741203663217434292824793218987530093273198972628805770484853752566542640900449073395417709775721736329657709674603834308657053485081843638664338057722822829698246478113298773607695344881641944883866969246505961226537074996218966298188436600838918906522427737217450994736791598255819483832629281180230754583075050987570824706554084810930698292935463700876888833591622126929772770750009402550381545573784109239784257357862313572914014090533109058572494939912508502522308156340032471915473168003357056277013537373451733087511826026022456378644005059247551115315259000873516304518583950034947578741989855507952098883230080273414928101322962023989567990715562665761674933360822785496728472630752383998308158801656773759998917052103616847098823411641769569926984670048612598735735066855219719310926898067284437726516592288532733977351991025546593469318032316621671744083266302140454119028771066947219424663539304007703779742525446941800050563804671041493392148085823372619556974947481301386279345740876538965800890940717661483548486348337153860888531712928308577213182992983852122307762588686979919853011071331767939602249484491700558561885382899508272146419384975278357259374797690049631184720264105334157168381912045374837341804540171165746542438557362411732059274811334803489940577758160219921424599891337668133947639602826821184705441812781244863773736214521985355216420935816915633115836205659205148092932861247292635884991881644363822363070153848444103843781074354335885208377634915349395717064836953890464454395769095269939546678008963771741583690040513720106442933518589861852541390184975151957745076792680037796835212542423447037633017703072995165437306503713609615622188113888547815725552476724648736155726932235819277991464820956470387331995513859850566963946693606076699860562941585943391729497814445673886657983663122957795984549100900047669999067167906978993461829911405814877578907389602706559044209503212520848524747098877009004340079440141813439419147455700091970869280014888360290365413927659837000341300388517716576509704764906508041231814797339727388402131319711732073808098493129527342455374728360177990002290127161861387064426260096407197509007525319606908495948733858330388203994682930460573896492233052954441825878424523603699678190717543299251353694566879261428104502478532921414415369056041024460122358360292650264983231685320967898450177609883668429605474025376172755749693095756019534846427019529634720695123181572312361075786439932753001663086294651653474607969291788332962623752950803232470928017596572648024376101343281074245254016851036532444867678940745919674503232736105052759165590636580939750071167216905465441257820409978788650084724225164645523512653747585929348906167789618640750714485534216702689783035412624761093472584504202720966486979776274374265172474350791343227761518261591007227038210489663273991042327424067225704348618627606232847132024934750634736762174787723758289915615294509051678796493847416722733710014126600713172713032385142595558542909121138636553836658554100050257764086701809887175680795260754029388918300208330358480738919911668044070541257204799775388551543582435815016699106738726470172533877481366766111506564262957877490522569515169174706109416428966970889656062207765541288376971869892853462957125518655174558143897833836948170044692834360227489847320146256887719014273117582625006685558791553766614535501583508517060129668608914173628882581885084943849456005079259708889355874427755526869635510164916252026891182492907178355688657028761205260697681909559085706709135650773871950740134379795040056211656611135328869261649699415566230187269409366027822254586189028625520471987158876217376913192568722767641160443628376826600366233902961119071681045811666955578093168195702906827038582812246314075382651073116360208821149067794540297970091408916635966817618643972732983733907282325009291430047008006305223373329459637225790975721777739808970254839385462633913247412789122985006963034072389294060436730142606729305601448691064262255740597789187902366219823331979371962790128690145155830893971915438227162176383173191667094664615617325256084214992964231856536506882669176822396758573337658514981422854384451053847531213331903586491983764198924599184058399183119491341214591338276634702179174058844726356489114994968306085877857518536480930946313571236572670433308376153629176793504529123778992494705555293331174778775960125449974042111907419591776952805704381880964231234331212292949249087057889577852457864493041015735206846569493835294283674946586706820155249094890830247101706113166243246818700760989009696343991537818403782480331344131194711487271845466035430030545820911939874802873942467108228216548132060511923861474595409836086145477861359086257052604271256977654551820246028457826774532824338535651921057302553134815345034467580437010415389547546826277001316303744380230907902379908574172837641891554161016044390919156704986288725419044732163320788913124470455282822394156198525124061269564320613134912356367271587857459248625832994114043586032046609417826277816469641178288701860175269613610096294723382691371511179257929568090508745727582304087924344065783931428971358447980673785618266962850374907849840049434151784191686552520252060257030865198695385957707069996926547073566653536447115343947234678497752445771590510472654581433087838087423166867296317108789012144879764422841583173781047944614311248742206101630583311276671555331558374969699500916114908952863551974669939291675176197467058654223858994010458397479138787138836318459351551785390522095036860941109027651136838699939687566050797408916459595734107311441952158623304147272524953846148286041392058087372587225978397538762418444189031205448241050016845388458707167327643762547349318233763566138724294358068531450192966964043774342307449039890697243050782872376745514786849616328460901153586163415361812140063972796843260706156272298393226329035367041231233915676188460458585370120890058777672346434991759962290728331957376064437418254018724209983670852008162293791084849963834318715417815703451307041499030408303975063915886680501725954009150768001928636942847217695805838425935638918037118251482889237889453935562211656602787000059939266171054237271568908285837150206187783053339254927737154967663970263588066734757560929312928204740658857909005998538768526347965171843457206362168176021606570288310307717881709536667582488266373977647726981862241706238220788760094980736543879832639538317922408134876608842272139142762662215849332030116328080631445477997176467265676714975024015272511536533529913571292806143138218405319993984151805419312414499388699605236912460555383884454551429687270034741768932136954031470106935856618700591689963084881474668276168529636384897477433141389847293890654294285693560733809634223308746959720818222655396432089023609317256816215843903711571986209521905213624000973850885241051156173394513675155641973748927086828209850529483837100674460643024115006981997404670394685112050292956062731318693901535052774689321522209041392583051834189988451802956169182327455915680928551108484705097627221219005233891080520448740015281787351052453078883641833912432332225449747506735685391492871121505219390895717543281403066682864528619052248161571779698821527402559588400934880755949887303223128909382036671690517613680862879635875703821568131230872084636089640390823588536344508072732197994767664594098413110053022247386236687475059180332832843075667753274016618129627430439082544967386338541198463874725894207208102292760802182010074441137870239652113123281010277908398068179772042858927180989733240193855978582987877168357570849615038944319559032156220020082370867380885965983105692071469488491276292721362690823253573560734035934515093622604401478961184080289308340311528042936857668437912188067331637683924018949650734415945397053263966291642833075369590636658090055805980329592642671112158392442489053556960246381314238049531182709966527963965412320036179762396559273857019564684486238437668076351793814635894864914766271568232502729087902761726551094410870803931561023026490359609761129874928716469132993603430969496667469594482564173964150810445825578366108264490275437710480089021602400498654843200148022074062376110180279950853454258470729797318680509740181079248770096440943732802929445406161884397226757238542121647305140577107023142917154511045921797766728489207269942641408226642763961216106939284800949286148136602145191634780524229647341514329365745939512839131525041203490954831570917406463790284368282633607987584170596417379058449010949825406103982882680857809134727951348790834670115253956675367967738974713759612486248493227904159668208316251014408549334757413875983630802906872592915910624961577878680244732144511169460046799039406485962153607760827637747692967928098129565110587988957321389364424315390639219987545773164076561541320449556865627041146415428031010842619694356274762144359196913401341477356445550398757337502859616439398529073242252451437090773043968678614729977955922083377563805274669491129424997421742131249062827504416586839435382924389589941083240503286557497594833783959595229750185029805102824255317316878166583392383187310301047668651937320500906517749193352818342298132608245290483634815134947899611642846600008659372535304921182832081485062464379448974570581442156080160849898564182290551081405652886952699233507270270630762034031711842375943777116811837255172973866445267259890759053557761647282648389420054862117456106113711413947330442522422136674353326266585103050138495129432595752055366971746450510861499324382626180252238443904351889613087022193547011588790269965616134086245978516634469873874108533551416747343568738574073766982532095694955940542830077739586536373706948046940365512599245163269874060497178861095721159442416593268110086512687032050922588409435508057844302570177763122965896345285479071627373267506068065017427142480704186730610132520288386770467749269741274859339237692564129882803213729268314910529629054766312478185087414853711945899150731777555575777936803027290812570478008128735194542847072499300866006554642813486809012316774727711934874613899461104485772696576910278381647391172729142704552858339742017836775822277140669471230842665697163064307957719664659617515619800539994936438855782513336533329773028846643180103278049041326727000945480642295784762064393766629253961844541399198981001828357153811522942015033880617120117794157280341778163680992683435818091728476944426361759999447189141977601672342091963290532887791037632165591874017216608762851800380088026516979592025982710389449803763610093918637062012570145872088222909196290268351027358814456268113580801533472660118248646415446279886246999983963366509652281824300573194371418808274321233977133996180608275529635549745257850178111738581448443054274562784279509397138815101951622987816324012163951515063877440332865252042650167906533442429744465383272900849804987757520940656038501129478969289710477027613272222800849182384841675104019542496760005359324798825629500874187477733702014012179493535176459006325955838967158176933320813420797664431598255075687222344560454647244822550990427376225975049857866040245256535433658875401251547928347933347113502857253873908293729386971905716902151483743672279668142122586973821862645527212821385384437125981864590180204628739769178227527023822952757188926253200972869208748322063055613377920958272660182805378709835388240664347650058646439783234263442632558318277023974248169548392977853984481130885010466714566481324899313715666710151224074784103773271778979057881807956541545649843100413715199153788453335094569620496888194338695679285926983787040485245727900315053059845007133399480916436906088037479322827731559215315849020012574548485376144992556047401321049708674268535445465549202617686706164470348994576772085157885388692968582024135170330349445004277333071884236575390341521551184395984499421478645329647094101996443099465441242113951375292006360449808949213280330437184181490784699889720364380247895863953783856261008790371086082812785869114518276974009063271845753225101518290338790877000528432237627190065257285391092531389543920747702009673228159733209435639079709846030075948174053807735747162229672617930519965605390090849860586223884056288216237404780665406993699907273170274615807323630783063623184836939164907645846852590551056982852163134963936069611698709081134621889821291148970366511545847458296174890838330503255027310782417161351307029977055488080529623192926355714061683983445490810547174682343784640686308231834124761248915590650463130835703593698234386196117015524895843691018959374064772243123223163927229023476309322478056888994313434158872418575971346628450050430072027451272354808645240874826793721968807508547828357228911627190238205650996966322319664530296406132652722000934937224981593119337077985764289715896206988755343519258789516360130799660987351025794332847444217019706302278838725785684660738884776991163443420075467950163955727691507861251400403638574263304621547656344394197198082564155919640342189704877467659944777259304344396483680615581727054404716177117596446474137737391492951518711648786671378292893442712161963901840022799067503972335368715802257870596521648623269926228683030191715907762930202730634748339462936878113918838277886499892430597853043108944796442101680183881998661891832830100502875510511488996919896163291442950544684541061385544508409786212771598113896129300831276427663349443919618979904206036990573318639457977233671758023559873787929842732114774319323254475120650065545617866058884782425727829734401570602180629203526315944805750059624842087475824979129621463338678046930463550857691953346932945778144683086419664985352786179973216319453624257049931144424228595568343254884432728917733694787242848787769342273111471151313866476629998964403985217351289476063414643864224600290754130643108833742813929948539875171604274136004450985463376568087154281725500050584449595194619139851094461108467695737918030729369023888673800072444322252837305015237725297364160735530616069428674113311753714205132235676170648989525297188255536820940710014167381567644340829882473834255178731209437893733314514193456246131557377626999747697252209962496311127019429578123037976334112043457078849602542204179381681229547451361228102914369733504613970252680896064316844922756192731658584212855561902930004521014020881711206378847155513913490540708833055172458802316761651962519096524389175983446483995897621591994627277609786775608929469578894368496577473220454382372361806113014882327066814120048031475107554539997952623925278048842686789193658346327900642502211396215397757434576816986292880029472164899799946064495439094433770432381952327116310696653349332171835998858334250151428172972048083089853579047410981780071397008490349982157390937614772366805473109345900234155669078092451247273466893306841075306639488274196634279472978208131317350805835863988714609592844685575288103260545810986025208638505278837770476546576110500352371677615478794263449643986912926794311826021914790565337913479399073389959329954227269753642334630796379507747338622094274730101838631825890694408170504914609554885367973090914775979890213211083990436745836646810031548384137537213939232054678182426711365386861318737871700887454705127975627845600132263612084781123776065541277808482136216343516748021150254288608834127232000688396792787249764154279645134517341949625295589165845860475748994720189335157503259982783252889568738944720507397698240666870134720118196616849417118833594327664240766640304296420264409320265176998372280404204702263075488551542835825469543268894335024917597976041811056344727865013748104795193931118179665925645929720526888511860752744691121526921022081661937050497696179046182636762898651138465156293348824558643582551145915065963993437454033909100173019094608401933900567510020902974619855871876860707290127624219553159618189344658479163272460235126944006684616692231800684765572969817410290668691703747390262430247170937117431142904951612544728314739430113518173924341908484664645644900388366418749868170982171931038532653576043383556937412344378537460745288011435438580174980277317155923802246250080655123496677177180018922426028994458624912436886968857790979510107127513130598075440388656831681176882381802146248223992730103767682463551977036430534935419535829112702666723561940001699077656888803979212000687309754817157443070524322890017494773352410827935978828981337669168106766830846166248563401669433373534346659454192450601489813598836189559349867218652803311864895656413943496074639948119101232460905323709065900120866149108705264467952088975463187703346180796186045519704298559593657595235828630862106202839624750095481892100046365822868358615672785673681305281480522051976737727683845805148425723534092466918552849892413189967732385485045844025483940626677977132593129422057278172584201045831041195849654497880747392322290838538258480402789663153501303494300039225508416918192645207988607212146280145740139622194069492213500210586148714450388523313232768566326741057673446290117926304941291422157819176215995590401896606575319106338968376296411646854288142329616165918234409488647542108264814511859352158025768285049223138099879747720901890387616990919396444128105616730336961378506470708947051001296404048171409585517120584441389665698028491076546997540253570433710288566121694400664599718772647545004865278039430071397192496160599126239189755246167223063144874076884213731533360861895660715021379134916116378479810552067746224298685352415353746744221500740086112094683277064066805740771822429413202669138227082850839662843407170048150705954487566252237127353984356499485162728971518919593777270329672696671816944405711912877333571660017813759275380693850810975931917939163706221919679902782784392389401164275306895491103123069800304861537369043486777260583743202836777105798557315920977296757831741522062844737706221888169348990080331988859250426552826877516955437946296039902342682683655503439057547150838976971412426228219696743448462909817978164760535633792629491604807810842955864151666682926610060213899038202833087131736295581787480718126738593595485255095236199963586336999067331202744051153413022135446194614345263002169063265657559904483005612071873404269084533918118978944241284677594371728748444464224304223228425044195527295232665549592574116236296879519195419043844024203546699698486956314478249659205124323974892390388542993670876702438244278163331700980694700954849355793252065436331038325589687044816732169559744298649491082848139413132130099978455925047909980933150829841218059799594561836659970608254809227228798746816013774563324586220259805179200688956929416581958249409295035718261451350904211616082632652987122506092143931456356358327955355557015423010780049558451970297403981712043864085208379425605511154954295287085113992640828035421078251696337216789522698051118300189534550609858066084624399427270001372338450400804266465121675031018630784685974929677306421717744459755404520553850547407807839607599936959916062238778296580271462370285773464385663991246708932665880558334973705065665394042668710713790726748313588997264098914776676905107474759264745661815403985596994794149347316372742216557193067787063122884545041482539943597452119425788358010663191257126120068601555264686917230388714998384816379947187466490793672973751505831772963812961185418888359393779502641567001968386345070858655932064425591432584419083779846359189785241256096914131789644902827418106516654621975165792993679100208137615693196852709889136020800117562840896288069018760041612516763844184332663720393338613099634930665178099036086740168127920924907638901042434885628267847204299418930442175273862475471708804581588351673752244623405215013945282352548177814130651408888763008302216896742898025373477820863603713728000862937887038212215815286244392183535543583649410544500285335686756515926963535421380000088076263930729325490810876249230197218665388521541916302171297515178076267860394042519372478718291233400250783486199547407324451891531749722875235063474011129056340595195233803571458069395855003241326718260242152882374382225087066340922710853727706127478492224529532003946167622041217306245865576186620204703200291148844774878590775160903141974287552768580240571805937167857027020957037906287460716542374452841582612695228505803955205182215647728947885055809846596843442686839176050310918688045707797755651104017571170441956102670824844932733865125673045403977784668802744838462790783501868674542978019618000451859339734230157365548191551633035590600696834556648399765411880306847432248371862529259927201167217159950904902605609918780469858388008625921338108929964847637742907496538347556292427495131786018140856407328796182442361675150285602693392860632017141830990943013122927205568961870425781771892424971894166973915756267696709384222574138650727090972398193858192157981397511323563672862959937374297937609986890527136229642269607185082188242013447133225634069562765480571099456641198867465878188862450647911515322865972035253344853372502195670065726855881307084290144299415526743398080535340529922266940362506948408759973457629956920070496711145110484749291021693406081783921027979095557189011019882741744386751890970830104992845886506671850294163905023776590651353198271788615588709695403466426152768339622563187782020127181930831071640289572045700167177371296452262478393323192932812492991484096374001550630300722780196587998722524662362742210163985850361897075517343677242057816662996696618411182310039550439772231739273437174590763308515548702445383844617536082910204465519176784754986719611923168706161799686541067328679673124006323216117003238847252542129780606708406146489070490485501241168621698103748298246331524949979284610688414247725776792676538931190974473084888705357983724961571633680186525995312535497683575158049008052534992375231551464870372220678883026598507508862679661469504893368562968119056034688464296698289719629528063689733735625776509965899249953693061725525388634762634594995542410712726796859413967664349766471604142123435842658740966190939273892510367775797321958626200998430270124109733677946194850123859362334967589992808439563328006350555155543154821028051860690581048898297839630449464663726777944791158435067711797313899230993409438433807678829656476420732375101704258175270434522495729603671599919625651842893340048131771684959472400436096156744193561045642352413970371921589115195178433225555888842597385542877262451512684159604028723592141019055990271922067339329177933094970499956209543450255994018705438200295660355755087794363867985209817826680289972873902707938046961360530371640878115169539439897705528609316269170564763077970789113161866065199608931807623395880548717799579659911382450348132426859865443442069686217778229055566100477125190642737319675995127941503777704911017025805235218277585872280090712619368366188883459568936941981917928789438032877621961609104390739929233138184325511140604754493399928811900063531880014735567966813137225091554420251992177016653360985722900238566450636086886823908361908608514236591941675347844274059294066105633213020227281445790988798493678170015797411306439914844802678283410948340498985769509519409392866285398867067330031013063407363522381552534539875729753898255892422987789487591647820727957179928240000455664104270469638155430406167024276478598647098187455459307401475796734310749552119495337238187484971099220723377688268147477675340000168991920312758396130664243009172548673595954264045244278366168439738354215064587039071324918669854172456466496278312662996578445040160642144328904591526722822991465649766210502785779435633455156661450660360173826902827089245341291434491495931090742151738340049932517213968640040549688169252054719505542923074727759133618699542585530683756466305327806444193153348052505688359755598006515059987517520950416484641998974879384072088996271722842139990431524343949814717951261030576351195139680667806299818012989859616596336248869947639063329284139032488874593063859078854463384621490759840274462288950904936366089528779750222519732358669357687005280180140965983596291468605826676527346117746075106071016096586144918006288048523509511569284716199938169000201824804220385248566130406287459936421075890489505727067654927720878503675317708973006392848467885094148956453829793750391603423892037662469047834907141272610938496881711720863699739114218087594466791134010158769348710973938999005440300315455606221838536808555348418199386773816103901583950368708147388514722760157705935361119996036524812485897516423099292207106470413731398625333010507798666405627608473109857863655155124465487740380599547266301480248404792730167445841387473942546268204576319253052064842817739646268294290133834182949373123856766354510445963730941753475372026708891736100120725802449220151576979716977351357589875622170298679234946904334401391573222323646966809330196875695808092045588712590499670402310292331871460255761457406930116493285495367460954318290673745830022126446601697706596400342888888420398877146353645981344245742796977940859968847076538490427752421594339841669234025110558876055249159802264041676451501100686658762187454320572481426512285901316233559196668468467971197622863179535585685128379447649092513632062473469460831790206645911023304342416038554832130061060415475684985179042378256085416829850682918935464595585583763392399757871882199483468263910777018150230429732407869843838997565548635296402008714015825511692788078417201293016697894686742044688258571289658104148743333047783373963775590439559288209894792152818536571762905765528473327334613653176822207747607723770815206826325590793651817674067097599661119351492212617524245861043926866411313176010228085639356292437587868048151835110169918069927097604635967251894840882859901216752786899528528992023559999345766385454396382292989554743249489986232479181657491444027859066712762328794391952854206347622084516028521851976150708063994573172301825150398419573470993581976773979010294505120674062112959252518418049276891784812677939805261594100863960388506361989975566027462151205588902290050963979087655345863704050883827691135359999217493769952596188992035047173957654633364567186162148465127936954305782928438302568213288097593699952545437175905941775177256234124855458159400202304038163944159849109749905913715241232880103124746112711801513068417471970913635002798688393251702392382569697465513540886584707476110467763813955580849671702923171445397341184645127127571683140239657527675210812268640889394752658550142846123176642369883458462018878362794256854426811212429741438151944242666994211434514037648819004503618725958940547373269453297140718897695674051179898764619271468124665075158247621340029664046978188145493700098860222296932618203430889357150184331851982128677380781904925556469265142836457925627360828007373748487841251322586658499140145797053592012999839687190241311217086532593892474184666157385519291473480715104255011129161282840718902160548448660017611585930805215313221250806728232336472612295304242739165645237799757872441547994163695222052149684862828092653924606844462971298785889353593206050565187408273636686089447284670082330232859570370130189013673561994500048457875263363158479189071171195593452996527811245368242833096164735813739439915947773140774756413105649246463770660602720174774101170819026551128864771654270087983922360068192073444413147523057890800895987970126544399421571556479306565426901478306855683988704392427643902152563390569269571009081264458799099636753591098664852345384394764706050101850552813670270544998107602955114558722249881697373305941261670620249948911623978743742766595413154929767918690069034745826013509935797348069358754303388571281713527451977612807603335025405673689492036687414544145563645178443650242600289387911724563983600897708703322843308034817993360015777072092629996544857058011621976283990207610749084719089597297946192835651497548836200518957480465505203871527660188568238919447063708535023991987069785254194942609510283496159261029151031121405090149910551577716311078687497907977144231803074014335959637343895505037006061700128883050131156361386640531422818289390717062040696328992242827390765810027205188591013043622537593033748293794044690057304052676204125638825122681316611312584801683601220872646123071670744865779153130602717009043003372991493060902833006291170413311902920958440167989783387644358537478882007422320501080967050246055380272466135399621848752199943042911069473815376186362868644207850098652914745282196758235081296763178365205432994691535246814441234334380484228418324994733208842842475419412359561037497194356371808305414926348533304676457758604191198167341145073740247506133961435955103439424694546740168481089686525676007585902972896847666523804419591841099861059414690960246766061759390765399687244293832985561754813288761713907571050310347832981017937058930602416849641143576627324439613386770872343246007496052978235346643993814027822118626947198858530993089259394262727609724178115675245008885196609515172225861700299829150808933067826537698129663608382624912519506406746056157258203281938415175528254412869852220169742260104273037664562127908068543873967899192763754149898227707295973269881366458872930012275143216892475730551315850881312191107554422808638432963960964226411974344336406183656045944246710580283135408316744581390176880314956318701429968003271316241312100099441749712411083403000355659511838172951640276911276860830441628563383314052586298806139837445484247468924035005219530736474260207664960649329382235941101137785353353920879821924186589632284200736066386755307199628047770739444919383290154504491066169699303851028421556040912697037700147997842531321914814183584407976636731666606605456687507518989838906535927389812472118578279154014058988419769261458619956079224182563662512319662210935997087832375741838118764482691762464334402265140124340867044875953276788812288103520022450993055056361503065685359990570240238313813982395926372572871718901975882702943485225787781134013161978440984714815130605810301963511547338081125847161753271260141712926904529850565872014982077173500680757758496048950278363021500667883617621728946850699394320211863568428656960926096883789462225749637031667985192075762357117312198823771915211641396190719683930980270811535142031826533375081866383923014783534262762566030115896977774654800256843394386415806414091174977101872111779960500167362804259931196886127452912808735836737365754687939350278557103203627933062051867441584613339083776066430201537467178254686329738362989148069359897032503033884575849225505552531429832335699134594962563610000427865914702464540897911585127315121972930813679407282004797031985748582114838813166203973676423431239986983905978139604342599602378356180162885372648957483369190668321996403195949297612335687624192925457293466748888438637694463878956448363896192884337799163000705712034654845040865861077728532965133261858873210424318940123019023333654808089503828620673959032293220335911224830680634138570925983966523069357864247937646925616755813897061063850099128927555448300535841217563560548916398750193267350756970002712162156681658697460383930272651743519645852744923938156950784984785479085023938183213124659789241895364925035727474089233831986293577840875056306246112639222822757362298857760924380022511104212794055421376068473180976696858153334418246212676580168486016770990198767330102088165477193495930513133083715633039480502430244958941236893423235709879316916971916862270712121401966204705908614644800263237298838293723662210984157055585105334980189513984271194528455830836503031020423111469629394850526945339832959936638500020457117489714459249076108353424357593040247974900079938311190124714756320817450865123449092454792525119869841745948702419268707307811807851786167802550244480600456148423207064403295872460893193929638974045461919414890931432990301622866736995502701465634606622443584070431085391176268003835637977939809322289074178187889577324132303560858732149974167525388998440670071903531053320307581292528478067791064510916709377032730400274212931892959657919944143149534462463593832771197274457870070755068716078916009861965130055672522052878725687028282154460832616074086048122379394737793691421889284222103391746682237345082873779801776953891833501690313471089128565600653263011530264779328709166332833041047456608478299517389657796093716578988721719161736524935962992213475405941638836006652341056238126173624710217101765324049630725226668516506784115216946400753128387228464313072521713813054019343535475874185405784527731580914130977719206276931824626985430534411246497072000598543375186309858746657601659232454780993526771284576958219143245066096965860405096559308716265078518794318465157592029817704750063834273304988906700123716810040121968772024463065532951460961540428391833833828006499447524889243516268275403374329686981205250594965860772133206149923244014016628998978667244254632811744329374230604973374311667998387601989671813494517217818864971999879046341714698090435344083555850574310244916483417929963011577749796690176377019968905116792130228710836467086788336056094823326130092996292590069672274228851207162745182260460141828164915621313618996405602617820241181087828997565612853649408741415662971903982567548638409154508686283447395873831034142207071079772761483568212586449891527773136705204199188240721425784909277499403738712598413988751953011466486720718548564920631925611981500661456922750493734638148451177064216180266571308377451039271190693670432802764800612231218759379978903518219582003341555323709179663739515092558808873840705014669935864848880715865705438849034584750281600531318486869450129630542158071508935721280393235958338334657043171471773834997198028197624214744195836448450939858196641460545889513341042232985869433223271978134241790785130869196300639909487659871287812534464531926697916062963789612027482585494469783569560447364878751315101015883729907826034112506567865126103651565977683830442205080977723484203978394830222146020524108163633500346851071939799267688118785712194641848092391011750549664130586316957793329887062747109941231765577350372965403112957108942104315238530536139744649590699956456215184435958398632330851690017077910463279212854852552825030485692146543921532670850425866398290415943691553088324665137419123955154466614274580644676829276938304137958118130768686964606737574209648378757023105443692047852730105891557270589954738599828300361986057075704676996432237867582071998198234059518190858280970061277834951134368063323083149640121047758889944971016914616976119854849319549367443483465080773586560615809711979633229688064509502548524981679228086360873503602640184277177598486824227522402513198932402191114177964812766297395223758727740222011009301554069462777306957900804106870858396922857854610226429006760453080939623355928124518145498618780443729050551088539452498816638436567050827844698242007217697794442304492822865951139618390204319493139107083716587442253245863830226640019504824752504570229381374525517894873145219485964330247662295400322718948205173340371145092617815497064303330663435812261319089489718090467204460222623888569500692367227144507463547223351101291700396062513815576420968954924019861023915568982556346553347798536935675316069040964009719132229023198468474495713367675639654330126134197308769001394932629649686552159692986720333037963762812765190532502144997079578032728337537939813818415299119966403203003373968075000824843066707936157390798924271403056520868700044855964257254927809992715149797433967228141032732297557271671346300612714744225213089643334396554921692820469832790678569932004632126037749415904523294865158883245004131085440034435689966970080863796313580069912885356429658731974867311148095071638514613368996705128226903160101500925310492345765811120719334158553825117752910497075271801792744153932303014779602938328534799219320480212759309976402737375425726333895361091327331710972711073122667942312028156507899346475593823448649380064204485999404695239558967158675128152133503980452448422318613471323991244635973310120806369594306812327093842973987249636007842710652232974450356252683091505780712898726198703049135959548045352133654402873591298753015460672430526724505740196946045954785955190511234272129400044452308514405874690130276333101514909699094709026866904161736360079300018398006837002440374995230879093775476599933642518893943293446069991987698549560315189651801760306468190385608004879823216173965273176302040200843278984242847000885170288349695592939044308765612517591904995833269698133960185381832933433690277939087219362988722056310113042119421274443003427109017844457500684304266844667607306518294612827304448088410571347441990601557555352419503546583269364440832933332505243542297305599482987207509241087000953793626935697608087253240385206915953330400323453901240545712948249606429618774418541568713842153911377760743036467700863607778748303081768996836084174967382987988390899290931135103122822459235868380533831699698862091388860025438457642898043693152451910197569180603185926034139121260643769499203466295723616892875592535847551211923260039941477428395080178304828279553827856324108973704799091302271738835198598122708488993777751441274957844330821561384425786225571882678556485534262823298198882110289418380140655023564815813085332879778397636113469570722990706774074638104460708549078977945311193566820527850851587186541746830584467697967198491106397504259791149407289495328643709419860178218858730006088911052970282913074464723302519866214504748301696595661603622930581021523483910685992431043448187547377155430668990404778083768456138971220500463099180566365954667228981596252516054108789166724424022155567504054918461103295599595962813661258551785946095462395763581446409535295192685675589031257116573269865707671721223131204638568176053481223524517978594860450751348198515756346142545689418782696055837342427516974806278303800783405706899065735225093299294155921542005896763026961487780291038111781164833731074409081751541877393178035122748112463890416422875031956297444018962846259959669326147141951464318345054743362406334434702728821480577737888708285747691839548713135822229481965385540155800926754153024947820329738052543449684407015086538329572420611958780334936626911151650325684139790075705752897800123061540759806317802942355675589060519089765254225616119295716612694900657626000484753375978558124437967764692764257034999126082026041136918019300823877180787641949502471414718900650004318730465551143330184640638027215621289778736779473366550036832150268373481983601986011885801542238802062170931224464543845326258738104119766756552161351607446226421254642784461834404229370696353140283128087244343219187684748802064982091556397893894079390786808645709819374266887302109080791338963112163988381849486322774269599267752457239385923337755859621937283444546413682327123809089746907460660058351620466369359716451945544237180690396301703248270534714909552053527167552644563538276161499406805013835088388092484203235767319048515485755189775781473651880102870402304129416973403578189876631196740932596939860728544113697049059328308979297965744034582365851665981777583142953904926994479712975510618339659265669198106299672078536415346439104002082117399428466020617722035517303029460075767287898906210429543902127429912684550459691484378838043590616888692105007989289456320260684108327607590348915209594441662214031014255306323201294053350669227661124186729417599547219394428770620195137110046590187590481545813012438837123816645926233042896008520717913982101483768362419952141386317565541581342463893847367277304263597745821393874991221843457018464047406391643243469559894507224613753043524774316639853095778222919677358262838744426531552182707225368253460298822054838628906551844313934057079179194524780357493938978109659011789350343897085798327791657302770873605214812262579801830796100524148853058691834425837956616173590537174852202437273477521100096385379628256088819526957107870820676957322743251643342283238132650307353169824212649920593654017237732333053658597652731418204262552360877546657421991068366682687484050687866376565073819906031121875001384983953637881175007189442442319088547206236004423931120668695832429736866547705931511348381730837600737825546221982054606368297984426482262864173966011223310038939437096388871985001542854366483604125796441284443705851797098060066632200378406673769215194334590816494114069649407915680406713083179528924769905794383636782011179178592393662204540698361414316736861940888001216230440798661479816676239141286546270024328909299569827667345421454102913125540760913627665647714524714062541176329085405597934312840359518298420669510655373752779845388213757748982037749639281099951439410014690497282124753885333737237033488816403097633584771174010253089946917411788308889150664387482842093823220891875709999171284068426607236972309265178668874693266379490221910339720873156234925265797661637485905698076120640219425238090964000901678534434440177319569280290988121108444386261579912009516973099529829803398347799275078487422790637279359603000858350989025398573228534193033836480545664012233048339614042058368025706574080978201706923507420469121094211460595490818098574676134343967348467516873470106070173389764008281092088528925332724965574607931463082791067203589002415711859081066733074967933302162786620655004544298399841447002764444960082867722759131621801076154238837415368796749639264703747058988168431621203470271322702644163826181173245009002729774603354297138167396486594427731672764157995211936349979304593434191356350942732108530392174805667036061451763818340593210310538173556325724173727313076562660862562493055691547402974152204246305977544006566047705480815973264879149284105082484480860051819817545757965606198331629883831214907154490275431853285810031470604250052499303097472855194348306942591014441033713832391749022668918116124080915408189476401635348131061375809314537870271279067890488639163682093876157329425101826388414881115384041808647663985024503248665462324328330646211984101902488215337771256948381094794005777539893252905262167353963386949247761743869235711714589558866624112296684683551591975548723019164257598970314837077584820715320520557618283383682358753624695058502420239390584424459887598355358653919378819352122210113062665485412430577833797136262180614389177060890629788079091910727271241496993671778665036806507125590649964630747664603725557460895713161981285699739928260052890759001413250812328971132451934143473138017267793640973909225632855601338092432160191946420889956159828618643017720899387185790695968680006941028914194485017407276125639814129697618076347215534005266160450004537345466054196156183130753936904244907112419261937331074589645018906246971007936686966063176979949980361987000362208744317303072604391012268421256451427798267309109581660670769789946556428391019410967838898479927948920604059243694108783578894573235705565678195618656664224800936416391061381051278120881709793389123466163743865705132020800922334129710638097839655395678595742851293160209205178610560186615391378356651084932898354831833471239898989381295240694632227871023055379200122529578086757781254986254948498811405230225335599120514935763119854630971695048706611143816868472423192862812073985867439312286057578892669477534073887754466979736177081380409722502019084584008057076171573516396956413982543070807566913758048172603680067853660609023580541922461344549678629367706061477460356399816151821507862636338401428872907370196556138216504780003546002927537056193874099490777339811648071452461395938882093077277826368456252485487974018829753672505689363784415175278292107061273446786070273859751738674791026984101505423398087276171183402175112798719682022259782269211471018727017832996502153652069779961381044772026691774537831543591777479468989337571715447170976510197138476077763260095243124055784768624867406250039419415843749812907064524651638456801592066886439931997317407307877173581488613107930867193186985796083618782777330501900819741368944205663460789334677028157521786994986496697610073225257064723198069031781533573663104793081028111955132858431346811028544295636913648039499843457677565752649150694977933002837262238101169200140370678415158878382991526562702300548411269054777920495509610409841152155087794737253535848467742813813977555095681742463882577891399674814830871110797616758490877054059541647340190878591032906102198131610205335538085060678920755337414605856344344184085269434009445058746387107953909559391962260040968023898410601829218924731146454157412058670563062312873493120674920468326957532968478172113449164472582919400407367872765345252355041097975884291220559198032866268392359343556415968519628009475176772694860485924038479402237777480949235698980643063879135869898831977668348912256963191356237738841268029409644997152302762033447248477099757656679862725375979520554276964515240670108292575359029121900558273568625609879359373354349704172065857597678607400442079076062892725530942127707358306745983296113718079050046253087800458915813118299814984363089880352499741596697179965610762299693031829220644294969825729604655014954942403847822468413652676055079943346587642412718428839016739323091694891972069225967911396701558338771997976923907467061305114777829228725696994609039156157202839470800157254721609642465200306634661014797092262483219037644550986146829601186860037970887661285854103633496628115716183117062153163372295527194564963892840777444071723724863936532317073348422437532765920027799180635855572539846014128438260800635486349258953184438820546619060258878946948712561128843129369226514325655521512503955933603854587619026592150269991410061672507567063939079099401679203713020626797112618690119694925922539787654493974420234846481074881574646441914523725160877539972704453952916215148717773211424108848358534737709899795504307336061650436924990106281207596266109613420135600784393395241720208590887671257408157771309125300340595024381962231773948386111188485616702379295970827871476338306053857685624797882246240099154954081447053454029102886494882601901738187480373906780051005090857992674727751472433457007169846703831607715907609593320423032334873219000759064183668024831196747660110167384139023103905148337567423293058217073059553824643677839834301231508999982904733193007183859301498986781547994623635168831251767277762341849657151734143821124321747790505310072598335485338555694414353841461094262032215846421799374853027239748921230752878432865781316516246389348693252305529339531576532770078835543560979341752581668831313134847890003460928005375742476105372446303870756958054870335145371227272006461427238889244201285598564954959850829630862623131036400791291517634307822471910572194055392761460173705921233281590464936269156242913355130437149574627718778287594722400361327046570687826739693656725766443726450688028516693701484409532796094717619978350758716246183017009690461867651391016602770381328467478445366367625964201060147626594685481030223758164874609893541494108329402650230625788237608464385828730324512610188883027839175362565850027844034399830208893369308863016525819270654600588155731707835412921135987393536035585718072216614356228324366963743568809261570052210332558994728566145385518420869970282771828657907998433003492684929273111474903209647861365800179085294099312468620768842027887118996877762066266160372503342271242205196085792846766147771965387863401463697174128279830324369782533977709367218333991056474902500360932423717984751908183209928082358555240959283061972960040618031927577801474368674507671969940765668985745491790036177018124320001769582932785835977000989854583667056072591986724711376156790866858420756589985571037634432813391462978907299381899437661874094050916531323651400726778541167514707060258553054089554203996659891107849231140451078259465057366778779972105977602964688023299339661020543877557451452460024613909547287172464130439576074349064269671546765744750296449874539092381976418500388127662706353189189929625387993061782426724917272323159106398921936505420026907174588053532288035790484733208578379920483902679724530154670321431515013222268160171840319902683004767823417173183999586696225006713548520841242116831056997275716667756685689213467008062629511667569453932251461665516569464044148357943432909348335203408285250808402708853937378051016716523320258555376916222871246307981458827575129545928700151119905095047121724697353345917228756095779186561737667300724705461214751208806981404554819204346802170459127472649078757972151267154343365225676156065477095261121536434888101028420840686477452646066536141656813682496330574943614027127183576870778881651570213736226976695643648871126491473848553163060485654734047704937573298194192121898396810361780404317276176409015560222632249875657038137155645632246723897502240031593688708029580440443738342228197991634719140927494168783441529518652396080748979663121036348162020374754369088776494933771367705670534054665415781293075388327925378352015217488708074158400733158837997955402563330127532902009339310227092017728489541622328260253826886035567065524136588747862722584780762873922867619150923619298211331178253076989419587776647607012090895564388198715390611099087982204683116757621517070368371769713735869423031846788859500853955560867642615600946928883816106739040304127239451466863627163496097502113724288070172365097491160177174701008277806377082874314179175662941698677826480089232249501413247748178883138950343542250902748272438680627283334985811277216347993072721461602519390898784247449912620434144437197228693324315605908741496079799994319826176231244173804068287379882101927072978274981896271125839138519193555880842461629210789154259402802550302480724989233470527981681771456226910171847012795839988861405084825690724659230857428371079821439058478638912917775007498707084444998455401260999208570173008586552645262762793397120130407235293552823314596167067103381267622335747201996615138064380233879190298111551145009720508704817244988093144893446984658426987975184694210263174798590403195169267968566938227225128815700614987484169188331536440866222431427714794291837355439936672054925323145472506219743667374767065040327311336532121484926026826653455846611241700959280595773983743221199908649003790676090914431438513267878148789668607229270323840153157177078387949300933658166785523372459844483221202483873508546245341749226851936613420423014589652675744421899464651768611516077016155585702431511015583601449261043942880796802707699940676317346886883383259434648940014272492053214945834941681788813890414555803048230634513956082598741445633779949702802420484459459672375636563734434663905214881564560444439939273843724111253328787633547568158009437358367178316372539496359571684382922220231828937536864897237725906877808377156748029267505500687302565026691862067016237907066100922215435437718847578060742178342299995177775699037975608044210617102489366337763368766149361169082472302767411268837879015471783785384995186664970648857391531265246875403974087125207447685034487097094616736961247564759473407164950588903122099223638446816910646664549961760499623268071304572867554965318341445521447169591417031293084901047010271727669968679423036284258349409311192724061195791743963576208664128460831817957530889822429233124897068342618050182086262425919562298379296107363976494144199199534294238827482849266274220178344261554057732135211501629695326231600152576209298910130018325728319343022999252046419640746862042991490670969214586678648535440000135388386420187652047112197746948475069076251740303467137307364406545843978116161133105010429192071783247996744246804981879312754484147088199393590840433993320953341178587781744740756084996840633718963011541187120409600536263814714249124957234786776752244519377560103528985591373630280995572601738372235103815830019625848794845603063983358546525163663919277526633460307184291905367723534037535290975634052728671255833944048123736264301998260795299877983635284077865930284129180781903096741654541942712016069892239754617192979713649828547786147518571891770634937461304279923635923091824445482846895795025545108070909362250088156181057544964236334801379191919603246582077855570627176345705807754269323831541093388326782152316194535067421076749803468938458469532199164661439020754761425764394146631519321172839848690125782107386664246437609774608290905157524316051430934250938290311636393024229986189809355150986971045796628486274172336645693646359269664577214798347755527422816366491275941472448581706555871893643332563049891453260599136798613460970825407072160195703947376980735901361436249019091641102697044240151992704796677714493446269350573001024723869938128838298035582998349134757427100629565011213357754895801910127909265067462962777047686348879102580847098881208622257563502270234446352323845241667042680518503019657976446790995463653637832256925232100005932304282898373527047290366865133891712525811334167472001405080204682218851200743133612970440803455411745677471805708292972529165550330524837138516775362149706727904121629890036139370078258737968474306256347460394816724152018495572412941939580311162054579822169085060668307550693771904261682745154805065805328921728734286262619954505064981018130886936071919341869813996088689931463244308269910839630456060146993005302803806373195816448956912342878330943908089318193543913824520129632266279351129033204786056234728042702373588806814107792583937460530256796036816605849782496283152152415404217796654321375177600091828023887232031252804803351095767236614922257278463041761904131434298753692720643922899812416321663896598285883393100820609591582986022100726777360040874156006679680019233433527086830506986600956023698227985903790415397810717700588096777014695517479849732733465031456486870795488904894094655068840488318665900266018282828293029592254124672509321728434576060772455507700572553369267838551493576105698582756680573676298385561143600306268035624024631485473578865801946223091659491054087380134030052496378475528689133496128374963246672284258568071350431064736166047033056788175715691378216793899803965996816385164272702647119829514469822278126751166147798734332608476330099231525483057547262213636579655341577886049017740692873722385794043796404568686835473336609441928629448762393257550104424046888150852786066372298155409594977799877264701198786395317494484416402412595900623033282888554447555512974592704572767009321886580449339749706344870400867357412599212575493433499374581949818356390883289631718778227907889928232354179715504330972953669810353044663023133856649652890156423539862723793964457286990090282712603767359878105390047238836078961531737865625357810376448248634040607587242291746383087292522435866847816284842354192177953918880812368353793095128213964398808110111116822515011504730592684086476535986948825685151680458201019411685830189164286148868816141997527688784598425661633035518798255397820856206368361198183831213162470130196967828875248553320346402061002888022126190061395844884423894476662699183865494726375296407165281460983842243854092088384794487837773276558839082227366007957411862666113286962130099794980833997369750249312706710990545895170958984889202654283147856415568122939019948411571897851493754546743321487517491196542452593864560996654030305620534552396279073982057547827145287215179251981880069145852297576782546705530649528446730577857303305008119584829247596246179803024681635344912054582871254378149863908086690357867171625493785862460623238414401118318631372694811109379764485088998595902700159712267502242649142504411179069993524337479648764735734161655577390353850399047897432890862801058488087824103706260407707169246763065548883510627053935758167502783216596807499101580951382049715242159446382312893963646409778467982651577554263728674007516109441311451396369618092612762019819903716303267188741510691204856949650496523842776439856861599922439302724652368995073358511337558369930622744998697451439436695449781217724709770909185676450262519090168754790041078747855239594377777952977146642872866315637183966947933340975107800440574192126005312627091531999800915042097465153679707473019249868377548656074346016345605214512200742440102057964819323583510735406233959727160860392349647310519297147317362856796730089050905107265538561710195803603063308359412392807279823857516646158124459387095115042506018908375051220870953239382429063583898931664802206957017796749303344874264666600195091585466682714992100278595225439240250634867655594087186905873351502875623603521633024770522996385885507200308717069044143257412015874055100870110847834989743554109436085850429282722802479537239275982491758484900660712957278342714096490975681318551252472876815924684822972550649490389051799699725423028931086872532410555251460195912831743535853302175476676802059512274479759566523503217541133517052096146243953889839428971613367903165521904662410753593948950217196807729773411791128366049218248255673266127907362430919720617663383073093922790132057779249220067466294797644510954615591984967452064210065693762866647683401458426918081442121308146884581825361878139794008948477722887145537564222752664176618684441155062877812754982346626720772861232701949333662307071478074044088325003280629681480958151530849256797705380735537176712248906956404596225817307473232017511926019196476560879107753422125303870882045297820900280823936167942552764862871249618193152483893661589955241433676254731881880554875826073743072327798894634344802627861296466674203568435010338724397850772578037479187512365083454825384948957343851589021760653618405374426501370563974550785395141096042708730279886140989699079163348094119704204083707049696810528515426842358069531326233393821323997750054915997872217119760755849424745757287851284454002572933737659962114964344071593367901032678335506111584894532187068466057171273747168668183746574183442176811820322806112724100657553007389798956523604601173932018146951986447725890024792307420841156254425552547516544683531521127907438783694923169656112101223230216687352994585878625828951906662526682758098357469009626366344916817887823642282295076298078435173103398266986805745596617278641397031210326988789341698580038923559979829837880283041298792616025543594880116924189054381694042429192334564965554872074028975423130569165195485331916211957481247996590883331741229933029009885535115719114261004425652869943313338086167281104453285402079684073185147853755770918447013296280063195677610238495653285276243272690401779376363823178108576326643282204852094416071227105705047127368900405115237150931714683121991089290376415767074375055983305137460306111309013755096245545562354896874425373496037853239201651232786093430141031278534840717877873633933792871469764844820203992730050719413896997836802453329372579576514418602431773900590731740279920520363567415218741906517342516610873714896610985096419012497215764655812122029870178495603149231902165552025122248401051509044247079981238582773483987693396704736381453123406860586856750706377378298644290834752873364252632977264148417142108737020523966874022835172730266970749318662988352003060440169624772394503760448494269392964387314457555013230763209395829561095864885063709218532821389630051428638035102041564836887369699254919285258347201755895224011649171300970171277446880135857040443159600859240525796548060666696385445270290832123715386644122647888840457344739355843330402372128872486545345213357363671620198295946795243429957883265197412938161063936297970712803017890335775784113128424322411351713555665842261038768663670063577685447677495296331364479059332187902114644993368575447114715002733503552015506738556600534613356327246363926549986805214425697582528188861167497468929969557319165228012853025251856299484663998006287971351524314204981133084415230662668103472051127718330272391991118362271980052003784890387848675532055268375553862653304174178708149131957112346701094212128508922133554304655865278998516496488083180807938278146180152861344209983681488487225921862365740231552433496735062118174419619880942230901831466959227585873555304653279128693458170494004812864911702640699767833641830311700661867282385487124409590820812855308089268676962350935838368214214962712428664038037745284823224415311736421814533515101125883489440145097757541240970955824705062106271945174808176395905925566629925403258901436789689970746871521833386138792437325576983177806547611457432028912373187483675056576574881215378780344566150367883539397946929831595839813170390896037316610541480715767923482289830893623478200646921376883717469260742115712392689376288825390137355489097263642448573828538614390862126336896938920454727671552829440190689574573814221618610074030738651650911583060489826825667537752403819128165335518830781888480935576336270158150170332478407805762235818373945933756407936661588015756607662683041695962278807867157987171675514257889788547723666268147972931341239207599421272456566815391843834849505962343264377299131320104233265700305374751733007708248308511543588017305924358942497505901785863839394605984807525479072308723429410292244368136567307111811246210196284193799812841136178545490518822848299395089089911811498707557727699853044069538239643399771100970239888551108904697694836222157452119580821111196247752293183331534457125870147003904532562548538996423986870063381339879498546068095952597962252530799635972877202815894116216889414084727249667379666161935442141968264336842458009590543987043768524095944843209180114754696577093450433879621229876647879041759150418617762374365795398669855887727695636822820356752187324262341696413750869891218266511973705806612483734805187019236239168386357295666137514298804723861140802298296815155425827736854307292732526159761301157007061532566704875962240143208130195411544200852705035849033909857471782690282811936848405624326509671371646830678307953182222791441213728608854883142976783747798809166132028092614175895886754592929862112822960331225238470123051407175410121342473894092372454918457097646544704781769375728324510304821124023146073462850190981502807560459721420410955113019970202354189616697258266207519682264801720375870320543311237247414910526977004843694911406018147324453106889718539505279406535378221686357168817380900840693977439219998313043760302915857281767793622996740153803241002195544446047666809691789073963654332545155681143911226205976871646361638759332718493405132864876240570519329038257364389230664220208247879301072968102454727903882332088452074142156091230671690676297885150734911035103855433190730028821242834015216287124379090843230414390533474055574073956092128180239134414426681285780147194783551416631047842120623290531905373065225436876525487174918933492026196186042670031278597442277123724581535695859887931489342310758953328220504291537450807333239478543374961844883656930271041120567746635442759593649714074088417793319346219989053045770441827277854891281387165695431318711058136964021008199895463925611694639187094397997228178192417999791074907569278929350054476953230453348324204841897040380704040789824390482955198028373658428739639690245274410112541017606527405078393130832459008304268505311908074550173503025670467786718779068346868333636582358511273667799445490625334541155229929257678693340250368854667455277392431693311833646350642571003629460568313060762950776700758368143796942850891350746218139537222312995774065529575011878010709007197473694783544774293364622879893430002613108612495367915565390007440203167463684136026641841038094278555990090337332249012084199381775137342406623856910399246775990319967820241581944628375973628508979974500907557843935457434322384897102140525568244557688470643489597991670142544418025814858476838266967365039081930738039521492425550268675742169245418649966452320586694560000099532466451332390841450498091044985968600227953222376804153258133010538797554832302439746412686757892376497328243044047816346648959438735782536740408961400750124916757436129649259456483536644234528494181146817586279462893010106352449130014094963979801442491603074412716888037142125907428487137916921761131104681427346686804429987019423627628497804250835537083209947411501046470562403944242471056836028221414544603384294579984354019984773679433894589112287372502399095797838114922806635869342245296670605973841620894179633812110395043739664086694781829488992221576804475714637228576323908938338990604903403368031112447786370873316906274322616584716467900896780843583462084262625245255417900654845423566136442606185133349263253763608444997014936073460576490377933353490513393436867444690505752689822234143034925904464231035789753921091803918097061384015211444392892784582601879232816194211923564486031553488804459360658311951409309346625688985966515336313806758475159827692643916369807233442783372247872429339887421329122788075886334035136421538570118455207365231601996022724581327678242133182043096398004177344481792667693277401436606984105180359084158091237015922419760515621353397499098430873884654969852130765332531933742925326894646021606528082585835711071032119030365663461245661771663581908077451486351447572695524273012100717041236372500549015890551919893293350310008742802439872067652192426558357456447286245621022585898083390740494579469804519101783283339665693308470357427744410061466354608044263311621238941886933794571521272140794278838919693665736322321864559408614517348843646442295572154540456112276666380604397062150054210391658640594775814947094945374882814336949899610760311859476679916549224716308383132669479090721292502824553611914306242644576709224657058277957502347393334101356640632250170042262584849643286128744548209383085789919684297283329448342769118767190004504883723821982818484400602820153845325962560421598229878911225981960240341461888949404427095268178527008992241969107359963750672924475919896664018649067815046881709852237183041711051127951828021703631335637103621355097286647140048092700303321353881642863042650628909932595184630358350179505661571073208780785956177053566653322223982573707442039822198646003348025697644197611177425592798545762677232653207115599553625190629216015819095985694499043113391002649537629838817109726627215029199277164538218701821524634117947724462182775536543541138178796216003945289294499659158429269443574621048151696508273948216897704909030850979958231744907670684170130281337125079608185379902572969530804903484221172020537348127570279991705242271413835195151005840831113442090823756158443103530250449319439580398400211271058900920047722810779796452129770335704768304946480470214504325136814148766295944890517436624004924866253575326699287455320076466877470604512704041832935321920846252556170765930155891012211008417212578038305148272549357387082348318009363568132986255938907428092944628288129839833957965407058087476675733256418210970517220726409868873436160242962326196667981570860763482085254830626803724627146479109781170598840421724944377854253104281657365433783691008503952868513871175118685219367859137029847879883206455606647082477942153293468031067128595347426658560184727895266256880902692920058988718956783677923003743959884081285158593027212138988880581002439750193889630144524113635841822595016855979071312788249388241571427876859979953828299110343203591830501831603249906947948996678146947677959644674165244768218931293948317270391834597039659195540433242758989971557425178508396791386485639967620491693471106818272577293322097954954301575252442629492456815586524577679043136760619922325593603078695689777928672195578645061520414256342817922403733971340193533728929634648282641218585428885538195692371742805805045975979918491223017628527716909805565681440659467414962808071268886290195930229829057057671543575162717915358611044165557558096942431861291513499832278667329923335408745023675981243339000327396545228530270673338555693041280483002487613541223560548458096405484158563613071095248652901761377811977972888823422844276725710511619217649254820901956315908963069841820223223587838355256783610255238920508456840762212331574034515015304420942114659908217661899817157235621421049259868004654748734355581599750569605000003366762016655801040681798248681414310630131226749867252377285971380247470376884811290009571577436035683841242122368750971935102090496886450846653400710548078150807635955902877094152596561619705746476493872375232728714210366912510923669743318032805741051243171347378592761394218325838384722879879298890817238616128285555698783335170361021715163885715157868618940894862932276259296944514722259869101833517415907455013544805082741213962000135095734802682284845577944930469536435352569624712689498292496376347928789782911633366871811468819970539612205612399551843934775028268088022012605258511169855987861320035284876024633869604448129427602377787987544638526485509761111943886322927851074107142626262201809142861712867648130433958417646125352369827688289829692905014161031860938342635872639141393396572868978112848925464705080723861988088841336588773155389109595631222421259123839948074734483335387268992880647197253793349205768224808614296770177355724542749886864661344793073649826308266906393953529540185959902021022192155329052468631843186173701683938908879657723015613427864798822503564132299061865747389313202749913502249577215011732067059475462617725499966514519011434066206438349182976898834601144309194051408919053264208495667967118769442556945667984317050788641002841564054976473059649349155237686900447440760961200206330027655973861846625081160040690767332241189271033383101394164393373153804390551639853217624292915525090883711463849217041945629151968533010477106084810538851116143743663012883555425698169429259286031018099562411262357576526114119562964639785346060949561335827322161250622096312399548320438502970414417624282246151764603499950664058817674801258267695974147983464061073785236580625460124180050775945945529795008203495081845356896213579810255739365168806566059810477607426037131895836036803579864501295119931250594128332900476923978077383020344295398596140082512639692175441185467113150938786108185289638785857939320482879803401874988439385258250014836678887204916334379882401750798642683297478992298492168302060969587746799934536723331551867335021165880571795632340963124542460322882659435657916572277728178028304819957960220108166906794599425812585640781577051024487972000070242458643180598382328598707576086184577531652853448075030554346729223648124751768749449927620303323211863840356091010172937954086979024793795188906970303213687857904655777748511701385334157267365056380040660734255396191279915002896553826995815511934734816465941930945032443386744551269973861031694814045815010856272861801357041895792254608988925624109706720980461830025723022928225933965794366901192098357105382236331951585971114270726323752117071674618178593880825031512417805614792543017080328708573385952945523323688499071437418281504317356492959589503446344562895085031999225933433732231389111778572561312960990023711133567863020339763357724800280185385391223648802249042857504506226416114357151572882064928048452197633680922635198749753861900217453411845375995050862429111030256266877208857164961258367123721444666954970590664902561598432354144458437846081728056119296495705099730921601010833418622439537853950133297510548278187374580409316622029036763557536627574163744059109891792937505276551777796758803348952546599794321768504762568367073451890823440396534663472811019081051200066049530360051527435674162285368886277618707725105695844752957375806757058636456351148166157449981672705306998664701287575008460297858559189883891197785707865686662031529182602277653164446051779632903201425592964244788538027161382593039367138506310967877894375927122091581262459535750129799430062111963370234362002897286150936173262735679333530425735954834746115528761613962180246850147992150369924194518510350087079471872951671319490241252366157702840065720584718120303927842926922714202052367153882974096444555933596714519558972038813045040574356181818839473841363784698593621294053983539379355517091500941883789228106456164573496194574607145830221653766911852713637049862191663966519825372378323733860470482890808998681804569975596512611922172756932542243104215351110948559914811249725303362099256788788154607577472194630941175629536921490173189254931728458507439055309722193079862201045307573034622902402832324608103348096590986512070475693707163004049586900338593585485311908956746830574915950852160572075671446531626196894468302222220345912006360695888848211079846017024894576560047602521168371021696875235097315072150964790836116656021598673542669109233693507315055056943648501389529964355188181308999631996608651642138387262635110664950575357047627299145630666755786398624448317137109046223675360179566289731377799428750572064959344004961338238698198375301549021799323421110401115222331844119442259424662390254153731514855057615246986127193750174852698099657264516563661427959277166983236419746990294398001589170320889446826876412711997729390882475280037927738757389961561680395553453062852943745436217764929347551418736384291864931784321751674917402073473638569298719160426690362267522721845895265058847609200544194939170142361920689047573534139136029044524918561343906204426893853497127631628827190370256018316966844048598772815494780744071733225717067098541822821081602668373561508700770721592481845304565137713926437536955522762631557300844150898879680025137007379171854050595191724581817734916232370650545435889630163260738465034193438227162588373659968521815636758545760324953891386576174256852306688012052406187495555781961167188583765486072551664973265941878413634860982918745171220802552383264217002195271046694639367908373189569094027320043912321399063708683547988914015755159048641853939412620980425483474179109130711410478068721859653641193647536810124327498585112100266684834939547425970295210807525470431821408504571670424364483783249519051105794904433520295949264935515268335209936739400626004388778489538731293022825048488204502342736121740796388044569896933102661622108431762617703684182897718323413974240117920183557471742821433144187283018622465172455349002891215968343194527549783522872584078442395714012001459786509327899881163022149156652511669891240059871464744340937314214440364854272477265547802603447416623756160786998960273074484912743440690075447351435846356395375098607756974242405128995162805050978816204219178341012217719434797050666692118676788594482780342450037024636930015783015136006532650865303419185024558352112810627565263647936647990639770188485249914474077368633564010296770012326170375470771651601537066453338588275117156053571401122913307817801353699189561416192778122195792180952985780168829903508661969065314519243334171647924014782165225170997676128554013561097732052190655350903730111009989667384148063851400396578293936682023218533323034342064826985100423838001253065630826966110451777255124598559444590286354053717230085651036818460637025620944750899985285677519665534111622096323003870388828887639793126535110957611707008354638188836479949081829513772701666784724132544608264415871067381586970520661346062024487500087387146420950069289383721022644927638863759392854326217814361919740467852644798640567668480200998084805206741663923511483830207556740026167256345951562480137737858052548458651206297868327989120203358151102148789956819111852402145325719433619108275776368860215861589733905300476739900263941202296153443984990765284852072423001754642069962323011208605197917199802607053425334141304159510848837514679601903766747440577994821328391548692364224926686375409551456623685782594543909920075684942285092169405284793097604491270458149912883882717275744939317127181440736216443835773424249433793241553647963373995564705272699486246174110088301753938715029740610341013539614268844974694594547436034140716435698188507497734176390525686780547647898787178429318576298391279233583055832087901519886980985112601082450267748657329451437726913411299576378509381721333874296920356317551584815290486849887799228549570016205478464516638854894401602659361331493027273615214210092810477732922029409520933019376955991469158960901179381923579052892071105485199401331794434931338043376845927052294288084504012815406313801402211609803947202333048617895144559673233449115973059284371666739245715559295528892735568415412491051461130530135265629432844292668509813133526374941364329582480572071992934612224329961875956825159656103553976239249211487693808321910652348067604890825072390297011094249612626479734927614774482623800862757463090341081022145905481228592083681038411273593024313228502483927134445494004964422893743910504129032507448969538225187546358585257302577638787959497917218176140729842189925587967551565379106746418406113068201031061984816681241435922420357769391516599505413276185859955806055660104792201318128469510880539866400965678908876067644830625238714269775573153190809701803179138772678214337612414195692398262527251856629584503195897984097556066847333463244831315636975103033750253964001307779919935220763229753975510244202035894715127453237876414868754617605239264347441441672847652082555985597278208552990782886680618266349827577008735690502289547843146005691647146938954126858015779517874309375166207004535106467027846172248376782661471684026670037256440908291614887176922715397585018243994300226243145362160050790254579965913132993762115127154648342282015583090863077485455962451714922640300696173037562265824380752769670350840885017467137149332491164585239631263364064831002476631019375121694723424170234878389003212816221346216014366400925725273484680158452137814589291265160315932189888582041419520260989923510486970261558478887089598481254493424390105864071969845458405479352795552129569156906440225002188388457900438572398089728287124603474799316200599348772864152213189923206627964055352179665085276029718876494992552256517599783106022258389241140624054830710896241578151749703394579733503535639892573641061055486366900128702552979230121977236996376558906963415074608897225283091199061295562126083621636878420306021246497289813360383949510231542771868681215276210311103840044741862356531531305793334398365113318951349266645340944423390275634253276076262302741248523205146729979891803356781180373745313693626137633644739961165861131004611588809423339316442299542455407664898313028641935556542208182734259321934470277306090222717137834613574898302381894612078224842974571512095259540527462624664930345358599490502842959574604380005001226968694459505145639285897688778981287865686694747809394824453684411150345241703862294566393673595418837839704682763565767785936501703501092794351097884717180603742208309056613732525757818320411624576812771498597471185947720922023258910455987423982351332413314613302760402462625851116284688092811077229117290498658694084556770562489029146452588309635502625169973645510538476603151551398091782508899358348637236425207393350995819219017405539442773819727401699711210961629608666070196098182755336050292751261399883100149172184740318193600276969909054773933997149823195903291980437292730431163028087709284463916162246917740806230262746398043144446984716296058674201722195444307424528675629518294152224765252514540042399706985042203458081874748382784141193628819637873706389871153149538501898963251965244251486563376800327972488695795175532551926363459785737892143625781722722496431244200196485574375739997308688551940567377502284149139212549522566163170095825711675244426149344326919462403428145873401430390332917223358138806303018979523561845967720072306841991938399491836999169693000565098590142112478060607357384665700308948882381001973743044756380476873157439870320239402233119430309137830298578535993966091100456233299061272291982978060025317451452944855602873735063776279373520326135317151146656342363407267163231466986772073892895738052367556758472714987756500483664083663019922392845123549894023314880996776770442868347897647628178199846015641233767556317731428107467369121203633554842845253368172283864900709319897913929403623645475321098643746626593733919123036014923868275638316133431234201369195510872085222659031165851126500195868417954268418563121384823589534589331663715923133692943722072158318884598731261900398566885996073118291438441592285155516228601715749678251890708384190972766468405310984300740860476892952753938118410647832445712120832054829694761700323975261495902529504571022526887916130689810294590480319804237015279289473887581362279917361014361690186956324788400295844149840496064525484128488188701460266593445104395258207064990581309383433767989841205953791925898905761317088270493048103408811361383304285572205073555465429030113857174716408197236069069746669723136184512626020380621502906640801087426759481242323470305113209137898057156967247218813684053781943246359549125253513573528445759374737611929061628435018706309473883857482936165879470469767571094329808899463046993176641262804083659545680948704142491159488583537991072178163070035925889800605059919118627808559317487140590783191781989294639181810983935570016948454897800377638504652546325668192189791057060981603638402095624955059821601151662475407683372806751569039785340770857302881112624909512252872912870044140949080705750126004993754348531219434776070175297271192159788812306658359439505887232858430902640345897370921415237989125618141994474805463422093337300157641256433494698792309442416776254909586680405755165207439362700914196634110044518621873706236998579313492932557387408411906913832405813475093095828795224522609296157100570747074469172100386212703948776027348842135285811963478352199471879369828017283402781558648493470897911481184576702466420507495024786631277905726177861645341507199749009425289972310967574363663112464322898689826271488192844669934306567242698681646246949936322813568864639648459821123423163378871609958538198541547651682693002766195181353836301113506806256466513864115426643047025644413292278765983983304885954591924301782123081079128741841740530742069890378965149537718098739124138357938705092753611946560954888070381284898902119363817311864152116096365464278864409675002315300505635109321350834791409619400825962570705621323339445655967824143489810504758112889397346877461632294928363202802046464029136914651189393779920407456247868170222270072143774637055612290717028379594144052647386887571368726682472492974265676552213243154906453577964640103700248746922319627805750570689752522337604094294148462015457701013735798715237252629419472297914049418240215065374238624490601384907863195945082363714125251142558861674897428540924847993348141141565357883404687657117720418158386159300229017049961662462611940061393398440318058276646434290491034007018332194101702919306116683727767925781835353359386237580055002549740985170845439595681851968509600820393845294668446837990441667876383283793450173065160683453704515568758047512647685854751369300448375700103225654099876902039096854886220882359310460051509055788544935157295962757778894409652609542090906087291675948612611376255075892046519277942948329897868268597090787584405936940601898646202545235993011462510019140746852209409160644771719415593231490276020136276917272294198868731385594251755145951146291830445444930359357242081624208960442815427674255579672681976656491488412072869707252124822340579250398697107054946762670545926778525133176904368223835261949663707226191455764074819584139122766810493789476762208621894804778063655668385665604063381826410670904368287674542682609932231119635341681636128272998771593834747615748314714558669251441725473638269502194044500200993230740799216580113855926491466027595644123408623963277993157076538635752583852868189496287143025859874329817447405242251587012715064561480992013091627291250132015878760321174244511038546762708325329509537437778074847847998588690971529788514433126906866979522035839494057087600864596310513575462233197179901356617025252676319802890146565195341823169725377178926415097230191356250388175563392859917587773620862603553795026213952996899782792613155112400660998662372599871048138738819366861055646237107484220688855968293066208728762965460327904159003091670339065682005526965084503159198788618806429911594385665267448591408284361581180364798190222928518046127065680795687926878242052370239007575509224897815864223108219451941814742865688720787940175562400792575882828030937693266357278317156299275408202797250281230241092587191729202239940604894428459173951870459567967256537361957447922841093765631810916157684462705479547443840967169659471898006802359821758571595253674409268603552580179435861694972488870469687693186041073601595536558565409257406936017690249869690746081606806717139737900145074858103405310092574759749259265441001178242133541131678502532746319884354434253831033335012631994032753144054004217117956876959423518287672808636299625773794015306541804877786237507320234162987774035994723752172488805672774400094097536112275852010627915400807918204920200357874667652618615889137714611298646216197155577060260622165466542970360868927613446914197293618118548007224990575637570081474722968613492539531579654772997371413951621790605232559094739349550588133671903856566229296696868859414037357639787522780661033441973529586966123312557840702287966656645940465566629325399590699061180217718404108980133045820458092349643669097309156565809250491300464066093236572267776486167101193579975913560853773475482363353932533217658814917636810175500980050736588873259277712591905856178002577109542257279362857769574680603097069106465899677331324611171728081529184026078305613657264229346268486648183030212413293268248696338874526889214820715205919488718800253473986821364691577215973379701411224709388488399709739784097883185127603881382736680602762348489888881299847833175725647872598622386906663771805993674019202255516964856141068105644571912630041121138419624867114718760828081259398876540776216363927581667679112126490894756229338201935745272855016511971035696491604148393766327118661902382853291496584360072176998251826307121519207470648219811676035324574983109364347319146820349070404832869037182979015532497268830815471441684779790443216859212734233748647985494411421824449604583206557146455318696358797459794368253194028521824870115296230177212992636506267714915320173617753211160928050749449495277549445521866464306301328350050129694864290831213124561895128114613384381476191501953172405621849869461065840200782880867556158857050153220174085953749649731354431629037732212151082654018861541985776852598255929227452695196650012821445110306512854409564434888294340091986312971584991693894702144150575073672278394991530337630753870256041783440888102632338398724520407058199961062013289493892627725168757413040424936982102709948309399012458780958478454966626746046448818723150175433213312603530894397134706186401256496467654503832447005377815998172038380245618549118849021391600204413184576685391332989934825348639271653527313216597758909333236110034640225830385971771750000327635402502866833414599830352972459414124400539200653878134580720638473710586892975317110476438144396713006896709970184860002917219966270406210103343360687308356295892143293500008150276638054837726824232673240960988031555823334949588591990708967395934069640731079001369452480360447287638727714210247641259672734772992521735372153194346399480577114800927785975594363486560492297853854721681101183435049155266215793850050805366902828101461534981370114469315906980600755835100556990017870945827872183503268756652087006749039856762110630936772187308129466550829785809739904108164440666655455195984683545562402690019482602504961443258131001455848043702470059017165192726550888253844267002210171492780027277534751966287605059425159944088495466699086329688809531788083287368087228012762266655678642259576358183620521362654622684093348591729981229184541207983489128974439731268220977434155812447145934412019276958531373607195709910705627624540114369274319914239566078125910297346040703598733209784870588637507583732582830458255093482701070312534565403380805739274965783655838700122032383562320796242297561593746695168485315376633509541209419278705864317315774910909510239526130015184526027395369267327965311992314750117902725338649080841826078418704655455985976948131193260835381284386608457816139934198102833287880058769394802824763336537032815434676361963071833713616343936621305801579496427278725228842844070591660232787267208591081321409458933193700995258905729013937696767688135452661418594689913624033775998580215024414112100533990508481078673092731929563586298830517425786665846964594848560153440080497233132288022917123507752739881836110878063257192600153525629309775449392912021779619206155713066774428798152129848334902275449210732403516031139803096919290916421949257969800617220285482217489083834270327264051534214418801586067997158531383236604331574634238112329007587097866146679014580654292870483430831320670554561492755794842694906411694558225214809112043948961016739577389209658248106226130513237486330404290635182636759044341901491997465638648104351270840223385133694740570906363874374537555751682112216272737086117533592260930558772333595767084219082081650422143676830117528867190170598199858976154005784491413661369107934636021156006900203967367657494508339382123920858506310605699599012876286063186739848172831438337624916485302776087670219841521968933188906713238346294842696198618375110649423460861427692426293873706435692027165013033997705193640425873903915431101502808816133001229307102062063870340967446676177206653994832593204593794079758269245711651782002651679598148392990764996665422881496695097638005579398253400438999408256854103133650933577728272162181250126201967582163691096722986740590064593404187104701968145317412763846513462942479908351535426589470048699740218911114267899229751721645247169451716637037642646463107844823913710721604271045513918579269348240054222396177871195367038851410182165425646716997102448669760821414185003778579757975327365140380681086275126336601055178743401069269281684512128751158027601969994802425671595958444477369149870625304103416099020674937190359507104336007737343268725372316631671060424541732767771314646830920819255741199589688517470337395075837319250334947313932954028093312994509363546096815240268802428846104001464159926103169247896007133451047053866977670172428734480559268198812048453887308736876186112909458006011332189704247304453523055005129800576194107594493701813730373184870105544380693400452472050932673612194421229988463686631348630671754235508087676790164359468594572959477011825901617645292772778204834828626763065676604396618021929824536453025145804325934221018850159429054990677370676511675192100994770053460851769813956938266964024296450545243826101570852966404292467029881811716247292319739822009105567469742015085540006387433411066494782973602392205535948875353314254174510899818416159811491788115443595181815069212458266030850261989830412984116129685196841842372887541030225856800692501053384475860118543461519374361547408779205950457131944746292532182137016403477703597836994399245540593901183512902225614877724847864923174904410137616783830925262111349771244140877233111392153535679452093836066362655495992004459427108891766086245464748725845392347886339944956490623667484754747923074084552998959674461521610727109254151614984718302251243002724363100436786625319557732680542463446673586392700756016006027933687614557020188954805664001434747301531966474574699006201798283918935651257086423860806732937612464022546679234149667687854379419592918744863780422322919984140142122279786695716831362357624158817388312768873565068009742542002853451224803863349665033858612681186633541271333180761057671501723094489024316160508622774809421300911400813206268784522714034136062855471440133416251434909100850037805206613386993955063335172497544041246156991380719753964292375675259101045913919054281232039803762592645529020112258606867245012462309123038415425807024341961540682600467431856685164359226145255113992436589731199259579773572684235305630484987806575496427710066890002114255923798037281375213643527291543878036380457835463821378978043925365270277648357699427248533446173579635314792099833988495599781809636327855314556357362868072654144850518160125833527944319467243315790232237260980974278845884199583554044638220618360323513843693432253004314755791549587909296023584551863563299467959998081708353074220227375235004461228793307504435997877356526046604781523987650839553783278429701270606321596295043097704291871570798922198871978100179504333492744749832905954777161038590636925497679969405084440124667320282943043296346824498152761148727805056764593974655933738422137747639800964925010990113731797638745324524432605710832730190663838303429448929108053096352452067363919035939941090645569072528405082104184036021494357144991866733437134225578521033858656782494329414078194436484440675232008518816093734015800667044337410808552472345327516563763056059954828070130359550643803587506278169330206465486402269529461442675007145370268700081863373396257522676868026583588549062825672302442630293996110819386993581733205742907096888871327643176623083402943749664382666068304837052064756512314480555419734426590315118401797647819246545201678096471829835717498382547712114059081838558134695705692003826938236351041475337810182001805528772954201410342053644795067193699001313470147118903932061078519420330502418452281899792064157611664224422878847062421007908565535866736212258117803302452402469110119851702099833118680111577172577742343344075809006928854044430584122434009577897933150314327715226407777574315745663595458279659130610515701415137642255645057059046639782220398628620173087349945355803996011492576342514810769062731913194277713831574786169461067711613180801064373946048264762126260616626733798254255778024699705542313034152586457434002160215786925829591709937802070824071568097362636476727781396123986136833901069860733605145855836258338631832145712674469205384972849807053493248097626919232258631044343663927561056773085483077455356845072205625476352297867570850190561715321085425515552866185305598897994405563160124170815751017172133430424073629106801521518420452890862617812923651109958513038101208682770802556952321632508135824561996093644887294486353968241191773310213950340235951626985457461086928507620085347579154665422165113630429271861511278491352559295616215694732461317550595869860109403300341953725591761225622237157203308196750016130897129120432172044446359672724838210958222462623768978611493641235354710683083308993490416516980565605926302691148493894892826304924093478295244766049404253231747059628952661629945156682606538188358550471917676576564384364844395084281336814499604756672622897418365486138943380129587455558346583878193205493167868940254353810458414189354597644261077143396231690025057516091672020805353406631124242747938694092199649133774636538830706116579597968088005029425939424782620519608633523794684039558777062944551283010871960501039855865221548576869648379565784588293552120033089164076374905374707775867039920200752069566801328196832672598166717883005158004934638376318519778369030278370171621288798064436334496520699752268088934482968917328073274602418191641408878073591757494715316575643184068780406772747429888823651061141648777071621126016805414510960944846660375598913451767809772321488779768870522384293434753646986403935015782567071244494060972321465361372110627421124441288172426482925520162569659734385393336947379967773222602488932321065542547864702556250688107395390272615304389391271848138716951302844033885453206406881874747115025246001707843532873387250777244137347154272466680334850588699532625484559816438639478009105281683623337742298414593054144984771569106203067929806880452128378204375335370904395688857962930581725289417129593231146797198184140808096038876899720834980943772910692588493056536504104898929313585939260219637131500570366566384676401449126043520825851314112015723762609575877900551790355721775705045930512268102391762388687589443889754996643574510857953767116586388497946604819356876935786244651725892891271020406584648899483254519431991045480034281669155261299599363168966550466275714163960229402513465569818537400271643295317442689638526983889859372281962900791806539911301522762447315242752285702793018976998629307442857873677754491575170272416587270121881338549808462993518379001961602731603785263283400804541427274862787487147176791953637486191900503422471056294768109755481111978223712016196813892491060751028016674869758761099652426558901482800593582288304335245013298766112870345656851220472932902005823318772172022345803944100041437324822461871431310826937727206906414106434678189024822945103906832167474318149891288903520145489793588704651608284859296420948191122256762339921925325013735602684445081627472594953211468023182178826258867025578614388896988318545111187834473221780595053243870441555119776410960809998138968024204930585034229988673871125959439130983271132504107275147049730089744190211690068080863245608046288003831999516784268528536902729392417407817794715624410342667947992718270089791060714591056126015798939263753426466532399596344371094854253935410904308733901412075108277846808224296030739392570402820172005439349193823153606664376866298862494621632362690272602888882802287665170035467982029946340633265929149706099292386116948212689498660888639649624770007219159417501669241305404497167855825473697287885812255237686517648517624704289087084339130886712316142290870669286440109061701202569782096843975024490295152540559163265907884911892686602523941085154901292999341817187654353015669570913573601853303708076041092940230589236224447499061476295797029783846171574110436705257760315572830975447365358500395521412317675843487634210342903145224512111200335127403179658806970047913433814366681020009940170221882102740971163255851810405851344239402113718692276235473715464384261327071599626706946859726230492280900275959577436299200195315678440989990617534432029287461599859426596443670405303211330790375184733030755211060653191928715077086839730864924569549308418896167277982031060473407937594972210437495225544652523232095696902150456554394950307102151993173881060303103050027391754080915960335811511031384722571517659735819285085928146080392900337257313325180340204934706322976409843683027512316344521872903725495455321282825799274907473945449852483405932357099309102499082830856175116846536313915263595850657880510427272321551250361190123841383881878435565687496229217825186808931443242360502555080398788989725654261615410327860328535106642030811505261624289513051449095425691140113266485821086671931232034291978998635714829321875867427307809755120113307611409361039008924873851905675706434696002398508528178656399896801670128319414956742797277310489135741679314555690950126865374751285821639178958209076477373889122110004428879553111659325121478212781705315776010028544004030558229910695380932763880323473565039958490214744985997155286188965526308519502636994105254164196579394550702267781265824399088205079596573644641689132548382002973483339750095772524350107770753932981208137244782352859947054469043440916290182105811410609417365151167359042709018339552831241893975253980606286985541128100646101988203044299342846408832888570584126169426331653598036089131326614389478042303331160717932294811826580547951048422221029692807767481612127687455240549858960716947347897410836850215432596214147368310093153040773068105585484528819660910470123116793716955555233191450727609658959562213848792130570739893886802536229951875139033739182744824378118853282110658702618462820996538412344500795680239616584705453000303039105068361577030729172211292760658407606707594541880986935096723099704470928890840301427495891163352380183863727234016150538295794647474524706398878845666646017172222286891483679394490034553260045511719764530927107671153308649890968367243903393932070617822725188923278365461351472031167083806522942732859985282800320552486243077207005867929813007445711168929302140076835654765240354257689898495201233300160110150954226772692504228536024387625167161822431269798045286317256859147240199212912390750630934302176728447210124879652655506278162754511448904465722991031527682234954460434977812582604394864566475880409451031139447157138010671845260903535758994378835233354834529119507284838294419292449840319254479729098442705133009456293024308309874808663503164180035418748168542476854522549666960425442021107365161244848897112360978010584861811950703337097303503280324052679040180604553862387593162238500941087422790026377748969273359675741621607223570269842837599451275693840996049915465056244788980104907314917046352357391126588292579067462349990905038468806672635364305104007575281664423069600727953222012474328620603367767270761853228272076952172488193026040402489525963938673537044813746894081053309359501514582519142502033380500231116103158763317985197378677632491443435786060572702302840000344826970006488732715907383190848197020363997362265760379913703697047670912175566682404635697435964697825813901347229141082372565284079192684196709285945566406228974179581037467213047469463159758554731418214267890854287896522485029278315268678562845676596327176301790236850700684497345377513837061962405810718657654815617466887070138605472402169650376318471783736245358254550943367570099590002805080063987300505899286368216202894165464392633193354719184979542918382352769103562620946323744363279533881902552867329771675785776537760952641846144138880727102434807064847790338487357302730821735517826068503976705327131048438149436666540611744453858020916587092613953328754735752696288464724226235925846948779718544547697515325827537048578587349651288218088212517142395620651596506460870886646849126920730035952925765637865123132023589237577756563969365282940466659300163809017963297085432309181092133777377925688291687903611845802304484510475275758402996780794855695734899702773664148529964095656667391640262348640517771294137364555323976291831919573924233043925344366078687975972009271467854450069804397876494716059417995039200936183686660811403538800695483176639094071547168060099618827365851434090230910045894938923474555393769211111459603708159401452113491051834233277882736535096372524177920568938408336407224701021163859417149424959742066801815348042273257641629076736515231960658961110373480703926020392515371515505803596207594422928460465843939379286785186267900994180661593624435595273170604505748603827752517359170658669355717259589837250569791680327433407438798715629165803725856986604987969129532893528651286117157805965856409125574690290338663542664018704660537865185978977067325446363548170598611969511707692717061818788388126754237768812326077398808396462886972143565268314022734942733905109944469329900008772810463349783563023411692295332770309750458113453777176432434573003649328519658759955060708371623786614417916736957332359253963715255127790813406967852687863688713906689431035039977829811148476810979910573272206736997657333660490384999316308022784837142099378625313290237866345682232464229805280853984097437859817991295722593788561613581594339092365603836877803901264318406968409394028602795669200760028324755152220577698739578458730804180469998518603448426459358620362496853671615586225185747094200419669746892962321108756083288579551474059329542756035295537559200290917953712273928076788688534700628476863409046832593308425343854678226772223387933275377670716160416599556159413860306555533303626821373103500610176722103443190420881252158704643261800953467889339586745146241943361697349685240506072289023592819393935905376957701065600699744446749536356587915726613182421454292351488068668626869275412624785595922910948351224292702078795897656284778058604122604189862186514130760222389064845767403770225677099265959662793610422003303059797105585099821887323882274467633794280914001830454027425505345997724208270131261873138058951326223892623276527853382815914385475131356332683087192691014646710110735512571415682190209084466415910205993387856087203730795860178685212934619355820724657922511940561697165157535799151063764321233672458234960618337642371556944647557131666672906270335218590024962868814140624030197518283159185851869325555843691117384911726586480613886577781131402578337434898397066633303708591782183701258216825721380980160738420586659299750755623411873513614132258097165733651725836728989359636802729558531106538217538542564184987897295211405810697413782910727012567950120916377353590739637967044739110106128098528555215802381120132569654973260346531091632025046631610201846967567025607964590694328237503423200369235001083635708493168485580135638512660346088536200424447861717244375272331771172878860433336305947247506202352520400472237184414588692240782148905461774628702518701184502816931255021264528282506146276750766460668072092769488018928936585856976339643958778687051403023511589357251953048548512935578690542882631019534461665570405778797892691787872805269165085229765423102672379518279806208282668872900104936560804358227095609605412416434565283806245617334381882572414022074453559912522137950454863823576383958698171962874114662485006335409401965372654146299508578362274550983524576600207178741710498760476979923729950600749210048320993036321814071628423460316533514577571557136303000843492594076990088623379085726825185838686652351927635470411534964646891719311231681044384196637827900149422781975500904577197927786532009952515410915618222241655093653482510776762398102308004132565203268207646011385280499213417543970700194704164813436527561905795161217810045405120944204238822843889629935139021069065102352519113196094089417648422438560410442865804966701278385338414108296943351604900384295702921927760300508072386906963865382103554287792955408163704375506166721802545224252190972220620646735964341943128611650963086940893228934295122485491711771104921040509181815895393034965136598403723067822049174759704719408183620356863555066823300641524852525073845465516900012895405810022101117284435032840340500192845378290611863114829731088015690003303408654093484008994484464266416520439741614386019657003166208570773649079563178009470394241830492648198702950709833421507944165931252386533339049035847375850173009844870213736780315945086439887489216296737279781833528069324027917526898367166506393932661596593051561906512105769164268303052825096827775386884696674353922047241306223898732314174693397569280884330611455517684470450079330005237973135650616856270871027548730875479134595536007842156858488676339791120890808106844027802997325110966269582728427078537088435832412291598011947183901541290503490998632200999381118758061631077887630877592655230096491737908161409701246911969679597099410978765024825262464211807130567909542297992509192767139263200654150427074899035387909438898907890888404495346392752588619998230646329200937310868212392288674632855366162379127373158807723405418679054934413126032427538100751139975931517822975598470900999336949219280541381332984986380049900125002641703371240369968443101590727412102880889507131595949376284902907057032339511636690734075151431762615556187882208057138836170754932484816041925743540723628186905541428357028761617761381099903925215520872134166297234756770871691794382397031680180552924885355143167097817490723287968049657921481879973787341458230322373092543704844026005745588983193939078913025107241594906424465651061427323249049125077405137589247390162340147021669769440945164621417729396660225081715295964013437544880107987736561323989714857650975806262723531289872655526050639747828831356485399457345730416201312579017699084156355824263167463639503526264032206066750966911549506543781933587623697882893375344993694128282366971290621077474317046569864071628990829683803562556665320354779101126609786307744031631394451673769464820405190395520858479401228971013009714671090803141105408282450325272626126862236515325477094294936627404280649719402714468321265933636749387187484156779973246960571788495172454340952465380761500866911134008529453403123333248368745996772447620321736597521461076349127724473987234921943589274375256580442731553113776780545412374794848634547788439502385573501607665386063052914275247253377485611612598138598504158010088268866311843959901720784384080255467444142072306077601714911127930467017812306403889957696516127638975868139707044588023586944517626809964290481014711768880755768623275769172045862202790759326383070607677580046962741842569950893269298285120507125813226331868348900821879318450126415090798186756002315340159128416633203850231521945049719533412827082515834843995790545932795998801341461934605023567633098554976730752800916933349896849504209699086894680071016658529505674762024329195353403134823122730303274077696194880884895268897348949292635112711037282082828142102746456556017789521145980216413241888044672072586973313150537539247678293950660117012754340040071364613489294737592478476526842637108326999957362996063270087571708399589157920322601430644531690417562194721560291604629474296462198363575880631212300526315577576413637503593144144015287055131418509994901156156631780158521760244324622821779585284181215056019309209263872903870206374882770449176665365900192405904654957382587671386056528526982150831523528617939245278632612797643715824993394278432324503241576124819933712426002260155225084430751512198523497928318539773504588154396380135372780705271966767785835162093873805923452272755580945951733543969638743394156639559241377690250653806062420320877669067726446996738609129049233306799061303995000883803349071384367925691360303799302044580720573747133722700083963421628218148150135338258833655616602370402536116302107851275254094154951289540297521053187439653795214921380572240210861483805902480120967197765061482209433159932960199320864381953414819239124799170013473870210171334057070367133977470267664961667307894439454245645236075398423671650580439554490523947124996093596746734094712454142466203203042253797025927394409368578367138941294484831785616323573866108518803087773903956007922287635260230141040866305799100161472360280424646420438636295021311407169919093520298667878043619498456464680589033893900308783141411202345043484176632209262200906160727909474886832141536264924274278315519413801082021967714197171056548128630257480719029066055447484819440268667235423345228298879255220974844040216126446920462581050182769656139792259274498944615421847031285715046883881849804815391956414886852180340519325844992741586617363837623277403033737772823638885840977659135949433532598089316991584638447559800210217067801811026491409703657960611056838714689860318272658650767092775945737890443479397719653880341409619227184695781255578638203053099511675311766567104724996942390143797810609532117578999925422107970162340429087993130445559441246292337724307042920310678240017674778701597506126429687732426246599847291512044150757766029755829746974683086946498981485305322425057593201848926700028155092331531028990914522758203914031732532511593412697511959082089593434078486105088192405720271587269681657420297296812321097101141337047632083828801326698061783299287736442187811787437480639200439090184533299662010958497904975615816321328017232883885761684500772980023558658268986116715976736977424344966486918314615407384228019932403926166407943866913973611627478673684796490688428179219253016398006505260722620215720899010568199840768528828988695925436327316905278369150259233395142586717610270140738856078795369749200651651180570766660925187045993159290875796922424302414937632561055264778811795667118784555298881080416348063993867714448409104160279971829345919988988347557600765161430055639139230785776228003005744321516750880355670793895032981585593613817290206491172275541530997686738968232948049301625878170219986253722590305231776189173315893295272158009797497708859529897415734079959401219996387084713837104467983039133722566915900236111320120057831185333382914484025159837557079945873927555008186877277012132350426421589710759431488179799098863747975450894671204232400067982461256338055995259174711424332124147709448464617789455720110438954905330008195954661677409293916418565262743770579927585708067315382392143841699069942111081878286307182483592097163333392637158597329737003250327461054307984047931512585940166659154871641972565226836302708257940118530533176322700476001326207841229118482377399469789669552650824829193182618683843957211473706846949108209663392089106800503293427231238978638240188769365404834690442971249937055328337076929776883697861055967509942641528389442705917478215939907440139896940474506797614377754325794742158588649032232703762304935554231339619052001940326945178202151254146769319186215038013897676510557412664914090567829461800314416032093779684457142466612071434602611937678481732076462654626449101572171396334426619629089633134632877281549278966071741910702473320267065011670580935789365412331015919811754248190109047439375421705416241846621113251000670075649312544812702291390293698485927095172111001966197382798930019022267905576030080246959002300913158074723871351415693517301887696583250155868754349541028195514433273430578356513755531311347812530711876042102132865464507332306591687395472204197130721812180448664820362463015066416446806278947885410328650496031020458166232825888242162709082221346904161932933917280140751454026704379671826426982381700577970825375713791290980012578635762178278591057589976245564020873421290545743087291284137496571149008033342808457178231797619168935830443439924386721669276713674658238143090676120831412479885140987744920210678802657607103489294127771181515290054384464686434951563516943231438918489282714256644325048412221209102241000098590828686027671017473357451302721403963506072796190208731122672816242235415936183474438357692102102418624071272009213775050631621915116413468877129287262297700382885209518827722083551678016809702924247015943773186878339754668376112919775838245430694873633091788892013104139397969489502356296968874093370833993789030715901080871783393819586329658160488054110058355551906345671040949180771567590479363456213248065323869243641629342960968867660582028825160719571878406237789793372578581825283542660284616851583030852897114143287324065872535980129207534879504723450576116696408678116932344447673562365996454841132998732792352864433030029253420151355318983274465360708283882213038405465756965111919943907781343956492307805639148366453328280645266793032639081887967948220079289161636043540686014355349781564440194587555247082797043566243905583947129351833208471151922384581187137756142397979294056916236424254574745850259882628048466821938132386391912808607419214955361407082039262284801407268918434338065410944778333984818438089286704745836687828633165968244146168007806322632585994627609535338778927554000590802740392078915895945116054321747122465498185358446032276421216385392083408273758225576297821473380781676646368286881555923538172140541881028253109045842819796594341164795359109712815719248272538901592691689242796609308269607224285274282866680504899410877395039808148528185517102685942370028433081163763940651061698686118951526797652303797488156748578192329160259776992721099673707028382565631004946322003910677118015413845155802805499476891199895164825221547443460045137975473458082485317359865194247502396393909074329302031359838540235540020052988681798323516343019781963520870225716013134884676078262370690946146846199699246670086289056238169352365050671680668920118097815241872950312817998599265428406191779826757634151383845644983617837597306881769294069786585436085000029730397267721705081695059568548119466682341873440388529668996160667853244030833381086585868847766697910755649485913841276997536922733899064040125380170148143334962972353159008808465742747637205924872096377050858171569381473272366585654483055957517635633019984628370469684279038580787417751088006914689882810147279864240349950147524230341388658407687561273839993996973768270902081969998319041639940571157870584738962500294811872234321802434951284932704135161471304662381790332793045840352232474243094605871064775405155921953899762581915105005731749972210633378068608858244405278491182304947060120092009319807179214127099528054631274109192006785195424840448341770872620017704798082918205679603387721056671632450603804550996672708146825510657667725583794950159238995501928679087093403115439055012277857321726997663345182286313051747613986837005879878210008640020508571194428442065393728702464880049745971253754228849324427971591559126749307226118222632078195968697016713264271559460884531197837968474991247350730254940408033026430202765277137180951713365891533271128825340945711340012711166725591006276142102623246332468888178166546097555399195815171969958804290183167327280873897938326160893428142801804721066420308018110193726091994067407740142157092613585395159536879873449526929946458854596538112160722190953660893030856920642445773191525309897000534176383699818597346313899007958094053564347012568050074561874579662982287773246066094267840103585443842252894243830064100964686845283847900514579164049539925088537681478866431772404727732143024544716539325588079779698036936469197714424479735391394766850472615328133313290416008752292411640204712802562910766791255102576770974504275342965429100478075806398747969002681035817834658915670172141484093361153488267528190897114744630110670841570679486929525635055122453804063876973903728863808459800313820335589807907569375643290006573817618504786177785279997300299322755596284841059149352956184287051257920009407908573704262917907858612444294695909561954334216643430680213933866784679753097556343140586007312250865629090697116047400622290957116165677225971672061794931023630540441057992214060782047756824872342335819232782968003561148430381741818306677843074240011151673340983977969893328927879846768849635163542935563734113809446727834729160581292646331555872466852976009464947314021712755291245261577876504700049173303830828719544622367182606814878744911784616608807577974684494063904999035179258524026793132781971800261590500232492726456563245177961487842439185053031082573329965465511045046456978801337605332962376806854850423065480256845755225729880405663041583546979772284545152735930547599428415639566869720101341355319307886814094894949052372902801239149327612155527560801410432598798157994057846343460156018891519387752790123669966147695571622657847954490396905523602086179633354511840270226041628922146057012270880694771266012201773776049884962252637909219263276703066356694558745187991634761248726284625540072174855754764561408720769286188914815952802610531699679932655102556254742818418284357405486601222166002399198262836108697989336911644656046591374983084460542830962963552672051429544005279272082709076040301282717372161214464468158660571094348545786543598788716443256589746916959665296639041442573020513297870122229946526742215594172479179686650272996939633832168567440629632536227090133919673683755365615043069335578848876137440039137823094822364201718406583559521451406718334127919031157792258490362969871571026595654404773010980466996348277124348641261625782865728355631152972753265146107668934574032180585091403312289077026232596744408833282751586644997375935107104505994714549201806318303589021682449375267160319646355633216323145913942139005082269726078600904177802397249917070555358231111151946619634288850390267822816290284072651102121383202993803919707511387187403829350907799033256084645603687373876009839602903497958291793176319042686408127409636166811872056495897605005323679143030065272827022627141546049533652515019868123977005784831746938380245954713870508958860867172487273684451650400180109545348500328411531504170457135682875384982578209885664329062383956606255536039191527364746353320853035114622475570154462756684903170115070538017838889356749037199955264249974829465477925662387617425653497000879103973648106076988329661366533836580336821407467261745472142902937686020741937506801305853169492436979667846479347557908969862400105442499352612241721637147009372805747896785735856848936905973331725648337049111732961562019899551720593950520910423769236380993754489861210947858413883150804636080333056964269574324206389990842506254522833135631414200241175420704274340394285035425245936066980948239421892584645155874889851953652783178293043897188361303561265723353379838971219896192796071947241409711068358171014357666610938040148030947345641872395705717175286367116037488324166632255262543868651996983679946788734563096914113309944508960301951178527981890895725051016647127526385930764320085634501710925658649351835472987074732689530327868545056044496923854811678137821538450964601076834510703821010376422161750526976789638357541580184523457844124689974330644913488419485743737868346645853790112289783712140637185406751502742525159370922260850789124603938972537781553649786058011301603961478911059876893076677807299463199904659332839284881574428558192738150609833548170313010178345464563519272582251913190843802508300197527123163344031236380389393615720467294010801024818881495535320657126533492622926284202868195903557264215801976568716957080967244973365399292525309327002513508569194420804380064168613996891291679703338098524524820199973266163656301322566491463677674262549935087278256216638984101946540681808055735996713737105782143969553567775251160419312727253118887711147339674696076745116146506155945857014306656112353029639419503968455250516768228957745429742179532417122320476992266368463248135607032255631040761333941681820720300921850984353700504230843362148809858935900774797492477641301242335738296100783935894039192929768647300672590285220267146795476529457812817704159331600771143514806413369644599008718943204992637665984185384854956806892519757313061899866971924512891853519947492240231529711794877222666205502569040947992173523807380699438704148401706101128468813119680782708194655261887509307556892552395465451112730053412141962811193119827379698003397402301754510811419047447927799243522119702833645962760432326857243442805215219837569501434851336839476979429230183539725216298316353030716081777932694379295684528186669102994126979078661393848442176380005900197362416257293815121410956500923451759389384344450949194432224006422734739455426477248422423974846789521118418331277486000118413588879769070474012515113048989321076808394977677544197117504821702624129611785284638694017641524809785056457407897357619010523322390652635237719434096548053775195746291178730402437018532616968198471579633073701943003397182391710641326944635869058107154610019731228691259197914515217012875735479467569288207169707017150733626620661841207843691865326159307363984581091703864475779980205646559298362493222990280013780123500990727967047022894572500935887706218482049461212574520118282398909532718955418216705277821573252678198090611695612143323692790756731030798486007426992241457727327158693957630707375479428066986752431589428834868989366935714449995398009095849192107700109596917206866614523988965990639431254675368043242669314538291857854380868603933903794916528136004078457401580645570028400374551620488567014787715072388692344871508093668781220005133788299168614950967716811945674821106086336286065348997775862309885741308729999885409712323386284690428009060312319139919412354741432567947558156626420657649996278839944040935810830964846659520598472293627484315369351369968309806610893879136733838586110201884383243185696351038376038680212729885905263500101159913271966542060125129223974125188192228990297097921606025695698758390557406366185460459710825404980615917576087434328255223278183549776514031290880509102026261291633798415022106959487573034292309249293228600807920366408623483844994641484954517222226538460795935950201859080897825862342574833560832625890139831075785224023827535793893914140728650067823801326676544978752621614481498572755263328625636426935603391254694734957177262162928755332587892217329581961455200772694745525366467472714819102504819367275217773779351604522482813575562454796154378020966491505210995171184577800283393975718669764652760757930436249985090122057386919970536792162044198714610888022898518785986991130471552615708798073116964425335038678173177356289610659939356739185410392726938918279900113738420069655413173119749926780495340129855901474164630561404893702022818567635610833766556656523383326028806313992361581502560505782670939310884818611895757806320631182339124242872854493363937313265075743613287912102591539660563678272367102462448531589840161238584552021258048166997353451835079994868503199854561382968755485940316567279490145376054160813270490913171260487405865620950419594489503866477631556674779283587083955311870287468777644984015884205022309872529146683739050900912416355045041627588106942435579244344585069118313762837361010042795062059139141807728433198195497559384906211398561091209802497499295835028812774761021829649514962537500177780767106482001707291665803173889084971647458836621988884141730934666034206167972642857802755324886021328513660838446090048077126698441733226422966655943099793784812166257075184645983746741619490569896471506201251718992422704713610395774981342380591085730817343139730811755111997490756081694383446007826184627620125399688691878305871655154417378629359041104274759095456467293296672506414774311089758362491112594815825116223619824911794798076815462706450436140702623504315257740348457499164395694548923233594668551522005572914780437738465045971655616731157338788495487824510155767392064360544128482701513499280280679961188045547323984477179565495928043827876140606145552689171379153504022167756860012923466612343624753900336827856782418876422674410621232281728012618861802932205494377690354110340455226912590826562785970135401499712023195568149638851844374153425417880775783621745980202807540040349536006002329203001011856242587101140395353726274709155837642997099150051015276012179541012123682521671233394323267434919924352184885445947547833251269578754929916726084928051999021963882674018954911512901980133758216028620661498043583222189699709845817981151895270003664319888060737789419944822341923363017690519432588146906801336883338091593671489062264899997353494343825934400684865978302107331220906208517698193548548406145545154182602678696405191549208802691977020703885668128648764603245145367016192485003973249056929152745005131929785845867141348403334392278184308786840221878719792512062195256294121802237325843074000859449941145313401509936345389887720947706048760107878911930027475777007878898378702231182721416125329992161624729324317365884013855636304244221163678460034475665619861269024418379099622463260222043057292203852953896172691937894813922086201734418453602285000114505168287301345558286872552181826623693012763684017332453579273394933057409013105577603777334562701226595255480945730415251057212624600872629793453223690560658704192314926475575670381443134060393359140306496546033324371827972611101929235519413228634714026975587182137672503936184041824770908164660327581877741476386434428206969144290974507407249646986526530544946747281148734659328767890985957072558147841502544316065297021862566809948996618058156884176482313657687023106649099765024030421328579031930087744185396046420219373629161907380964747122174189987403334137155327413610094883541618038088451107359375371621864079901288078233113418678574038582327962398734862367246453677730022515391731113973098342712525127694405063698478675206891068585455250184330303220073077764228599965046960595357136853850530356840478506676523680320427732477166182417917690460402905879687718012131252031091122748732400897751300091596748644890145972595404145983697887482087537004948681566958994997816555080169732151109410613935415272773460378736257827349403664208408676450292973000377997267324745367162526248817839923530342662137351821465849514305392876619282998413827405035332924425344269914903294569013037427176642092433957701377174617000740591502188867430237345480950864149434305977635927332464679366226154677130306821915496429761143397931043775271321177500417265485315987980842208115141236538450428473145060272779374687192494030952378115025765240834138967628212104424193705391270449810010485565758215187204270107673864031426570453295993014430353104900471576568023395697577808853868337481632452416601893208287033951437174148097985662648478625614192710722083685894329051028428993164157454236812092885780713900209167499820277950887622565574624321978288884135750892521537059763752432510457977330322491532319193761286030150061679069526563976009031939679696973811904121911770885681241917392099415018205723292955856280476034289074325485687758809408374503063477091438101014200196965132670422138559873823373689633234135977559567935950707868422526516493336225688871083002603116473818943211895490515844725703701487177441686650457404170774717509098807695692955508392739482563865489783750630652223017446951528372123077517586266465975378267625877219387273317853343938490223676623672867953927127599151605277368914350549065288974409078659552648040834294648883834261086736449549162679947433497523676696181106635066719541508894260887819640466258317226280815332578392484588861630410488246135973714134085412801848913629972915253225938823284766252203953230789721099209176997103383124673607856045683105615025833876640790912349873424882730203639995417725980297830155135263471958410320486913719982266030800074719208884706775935430303860526093261759685337108088002101005986759350144981000319732369053027305289860523351461921481409415276016401940010986618725801654473116692014691550328891377605528428306594391742191499930389386122872118767189345431195648789918228203860942416697584453411386482572345538757415224139097472582159905553791454825671269998003110593795300252239258664937039323337323240007785808415224557682633958098919080191698424616853606569212851833939611689625333693231687405251334734149391129501771799880023491630455769666653699359272244943830847518452728538792052988688722226250734464572913453441702935894711809765059575589583651509110385312050798768365146117905970605756881590288485724912380113836986364407190264307187716959121750800708521612813894993070497100486178211933918751917865936050488072856075467291260269629488220026338790729650345842472534547215880099765561316106963650853659540912938310174110770081781006463668065378833759927239370225850100997466821013183132930161956556618312231029276691794409990265492814602264690573370295107446150654023378497960749191881681427632170550624358275560690635354842813637460648874398376698059100336807645157344564981262269239815489641255346840332280428159095671655779111450580462967507909791086953445660314476909682057287756483560190108006223934237194330876575991848743006978156210931234807502386290961724702276051643622455210922988330791768659874274700060556137927708965366432712806577741444933554186523565169922725189444183565920951430827696316352120304525717072199245834641885383976625045955407119938756095407395096602545081524509125434854789181721437702204387758648595660260672476336641284184108492346412393988889025446292018066347709150145522357017286749250722661368866343895373347543230729889321268466451308871191862068320038148005772768684236231464191096240855474294176734087332551750549726125298111677692889231970981513753608304069830384483096525496434860573198100355852976759135748032001374615330101868837462349605875102503689059543092897361145162586361833725462314304334355199327186555498434262086335467700029517589670042030486753511645441248801182394043578809011092329913819064684376263256861820615903829143786580391556662106779010789802463512415303010187568108196414012890790235408543797535577754653734255235422242627258739856899224242183533913476740915360827049181283222210380642246357615919197689051306980003206906293924061219033540656153041512707667584050721919411201126338153176416680826912578852091783991363071082026432572229206193207581557967452146458703577753194417382746877214233801706957832066526990608727304584651356676561723128204590981705012470624648767840435865580037290661740406077904038549999205812264530341225104869404507436896680503643075189113357675978461516498791570007929482284383027557959946448801404592648903248298268784447998261636760437541577779144220693893208335432512323718472721170218768593660302149050873249440829763330226757133414276232351726841795824532372276886032633390743264316173852032050202901061720739461160108888235421045735851259152533036345223253012639494721720892115102415752873566366304611022878795222742490487675540593062088113183741409506959415237863430526943863282275055984167034100828188703737827602226941920094468471558407164868744805553392623818331692975451656161685728105153784312881733835056742452355175096396745109102179308094122632904068979245689972914762847503247696097847074498338114958243157117705352598334838380266398618637564271826765543373676268573600038468903623444326893666601898615878005208660532179161588331163678912087569540264344272967443254245892505026449238330038088326697773356587798447873900346291491839856999253875910612004747995232161157318925128402474603509976496416286897184516696227756554359272449200353851595482033465961411405296031923309891729507156723886847203353005786669959295661933594278860746480909321874927608809651600575114946902757961124203588012484722425889051725090382732314938871593210783298229124455228559361665499568307278177871783002375966131676074704988901837038470970894180470779034382704302451143664790013896982600972234017480154856113815341625400519255562462467470512847441679212885592413854402042941746744008984784652211719405616851241036741837958631122972059561115367204131920446163744630385241423686676273064228176050917624505790225778869811699874576013335157006680226148598938416875942439751179145371906429321781369759799525073321791639738489455098812079298862879320120737215612533044984847148942894679212419871191562733310062836219243866913308042150399539704883500734375009933978687273887707396265362295083783265757039626406102648956014661855783321068442857731392776790532313197609704234904741899334233031458960995630190373553672795849662453752154286042167110815397167784654961944392245696333728930396473916419933153060919381169338904253173843392011368722324477712173123498873477610669464062951224652983927175823615994392992292637833198344400711771341239912760058637289320801972753195551328440657876731616159908872883246194068442022049523296968083088646441182666889281583637096306823350158425074286235482530266771047349743276446623554977207565299974912960311577317623651645741906441170227986468065056703497782636953068235145419241932968900236253257646821112548861294699752050152624364808730343699191034489799161853759929944136884719938449096459427028278775092306163579603895494937753939730928578309783663199301159481196034528393466999366058240519589922713291543004803629351509421462669643452387829061496230951673858040435329494186849933777675064382586226000859314849712039823625401323355972983318355952752277429565195569110325191120338909322457106660875161572556234228273448450419824087598779518958990629862858042627918954940617274209377432886664789600875661834610112528693535583895381151829694584334054740111602908511657509818651267042613831274055876219750198427389372122276187065646241884429050631096723238220334704906828908781811798833340008993330630729357337464636440002958460384241368930229115160066180389731756456160615692554691267224384532804559197886033956961948612060629709145622174137387741645978062770820248527921088215658423477031627851152783064073351150003333509902752655073945627395339252496438171331837050477070363691623095228803937526786332201444399282361914306511163382883574075681011166288766702384229223876204176700842794801508161926440927145922305154675384323332446072852684426088700374823302633967681425777785889720414869187253791771100620246891127269056290125138600194248317716239075308245092119361622026269009659536479254111482241252511326461161218762195219661091364551213264685711143273580801884826399865630855697360377892956233314686907117038855118988448359754708177831533432465868485111468841015311056222927633646826755793369379555323153027210290942015406334672252320723246163305218813431543853424345784851547404621333493100629401237161342399929649996822574314439663515255503335053822570736783599615728549404251270174570341611884398734981373903750126732727486920162630749127315034842179175036451688299740050810712071761827179969808008732322382466306017181667811405186268308547380928902700854253170081239997820265038773655660337748378167397110100421957707609413003816412281410094238180196040024212834332869859287932758372775677406287658513082736675423333040183194862502287718889779146477423068747590224785992968690856824448802316750133142112688946390100399021606392912117303300340091542266755244011872161242739591974469242451338333530664602819294130299357511548723879748616299622518778410835503334509021688311667304162931729077686281020831878704168984754200290057284748216880156019399997941039425529444098601763521484974094187189938841338489382806943159890509988365304369886338820385228645256574011801660672610829918393382543877196203482637760077245912563867283721880386617097201832115624354839477189051212702465963096593370285352944913837319838409426746899233128565346307572159372079250987701327534498445437111794651747771170157467175024488620555555267291578677542859678528301915892583649557358524296396669807391033080153612434281834589289518678425573397110439421675509704903603411476538351061951900402120806793260973537181226344158999749256561918237804692184473818327129206428778747013993419870269062626389652309562251604024857028498646118443400103599818486537197995088470714404197968798458665096947321596779782343404917102886517140478694424229101616187447137828891578721756865440716326511520185055839726833187226718159134758471557524414303421574893398253029692207888936963793672638394897223482523183371524030829340864103001824235363160199435638717013225460940853935576290411188200154441328417007596918937286966780796716772904896875332332636304687288282736248729482892072776546736750666713178813571429321005884685539002454619173188766026084232966909169501592605346213850608581147234466848553643854550006851435599869075063527706849656761905252534463719738619730122549344329213759097557869882478913505626491768078152367871040906643671230954394237903310883375355036147523051443798059070560342684402882092570463895052876672857433932101857152660777082455677648423789505677379330782316962481620694737282326068855143585677897950202118066261890726637324151291108405245558064389229046097858229517004571838692339405177612812940367980893386833655366736291554044351536251162751167435030528865783633623624222353386954993831471638273862000485238714660555126891347300612641173313771910027162857186531820444526578666141231555915983100903988430348867180838918219953021498595392581001344278263841072264466680966890497388552051013483247328803874979290728865002784195049208971587463584889188619261972204483204758822743025528696314490390171940949405838155320921368586073466266101002154555107005579599357918539423551838513806030510867332414917748771020080974160550564462291457388429674923028891886559498143031750322994098511425863400659208405713947722766035022977071041900621249572184753377306380548519533715130475669677295523368108528679703326138343755367996455357192965996071811738648241701643175513107525016710911737098403931932006014077575037897658783220432582547662972234235495685347641508900431720475806254214964558133632669988879967444399458008707846757073318550359142764380848503869081067592272991674471850781545005834521746289872927585315123501062687808345207910992083071531371506203506596836174572102788179774337251578220156000530894650102880796688333502402179113122171091502555739443787011337017717354988224957046182156549377268824583317691377878741549809941933396055895348210862272810085385156001860631836434886028809069716487051523012590663928709756912478040040490855934019564604536964210283311265069074149046312343225376579842611492905632518794755500983116662567875934052852844532602074430435515913448830112316180167366053588091989207078710354207736536928526525917000522554559820138592532865593822345327106231008258891729874376035506213764059360389400015247240451374401583483843406193281244617548779990033123042531119892854423958510772167936428057272335717970343675142541435020879856967586040499230622923441746405126179917566415646808525500638356221336771331189216673920448778009219929465631705465495400746949790210619524567576433941556518072585257634004873392523566111185302668922950432046459674006370204542325635880416303305783714915128077766066019959500558062822800029044619976188825802845704757381796738162678298175086252348548320737221665113410092053775837446006956394632789241616536951401829502728084300035021867138038432591290332957430597472771755563485065223161897650511101138072771579055315514776279679530014204423896285359711069248477955994533557363776870864183623280454385567695144625099370749053106486547585722612699305630863421945286366659215713010123046745993247751201330643969693392559773556358166066368103443465695549169384883811822461833958633579074547435429393413858632448145541303699329485494873462732501021516769328118944764012937483436685444379386880893206723605679974022621285051781946059384198694433441256108365193787185288742843151107378093305436333133640261550649637397547895109189194308945295243285502050537072574276165326148317498932469546898201441278750244958951982609316316691840934361304612128908027582016288074335396836591705079102124030230800704684589824715313118573524836872709015101850787494607196353837781352743817245722116104455219515789684687860537020692947363029803156241957168790741811599091954020583990685452993930381197344020404561681349714001471244879866127147933327826786679543899503487544710498703737698065086342729604608802797754361322527785978478858132506794214154821524476761988445347558405633281761503965153467074428813394575136445782373329225737115274464820673365026609792835074581600745250843701777327632319120356074585398600297997675605483913368087316814675018072841789935764894106591472683981271793454424906524576484572663743692433614163328442748605362862799271833115370742453409533926867051860331429696149754927562597997265683949203392860808919722602382670361677352535598511554959184392276511561973576049981900232802807070747603180785387336348168290248301128278537237273753656932025693411251800566606415005336977700722244342287344194136722463602465738404292944243229660771452567483029239026490101563832069614851561684682130468565436698034286338600288217488884306422817236159483573853529870653375071036293986643401387964654083749674786227262718818600678011940446194925135884760536272581907085080978047828249946082263149727718613663279178995091595266331452247455030589173639896276803504229484857067784992074552264421858081846973526292952738015879365090419838074107781353417784188051871759679992384948329591264918558994851162209701852396313631599505505976524188545923006853691707952093492639820569633617344872344305928602364283882910650576966217475453482744573477102882139739824901826457822580594971155059107263534439622211522424135115280219923827770482925347881609429824867430008611630256282075295786734166999990238039841482926842776779633367366292581218074876570102657590708183800379261577429243390722899302705222874636450165955613328962743805430992527848556244524526385396216272258549045423681586807748243676596546738303561120281809636645192591820750545420998918012721937881499248695198430571980501797977906677905485243716585451018509096562497417434111394258103132470112279026253900246957988871024405855440039853516461404069752130911972745858378285540716818889421080205570063361692038669439433797340250543038435210356154658771424373453895279937219103240126716487948223174111590733263534565116680193982665472867840899609398326665793004507619538064968174742088954744074332608960906571386337880683923681864610645180437055145591345520031665073284747970590293807472437859738093796453138158805759210542312542963799291444673338039275024292562761032076525014381237301586895533999657208994169710593482019318083073400734732083433355834889894712805383774001337221126922794277377865084963378866238588656941415611764574738108702573343820180900812112266631589490572846550875151297003595134229355308321571765012264806859867687780065403025988779402080780311193029956164524026049947575951722756110594549575389718563081383808542328774411543160198992851743615395902423517190970294134414957671989975732186255504999696435771971222007203214687388821763206507229051829266356328574382618286636291061359629992658673178147179049887925284747684299029984571365728102887539928674666322647282827030425663260822606138136795600876338317551188848920002854416958532089332968409179218431865943240214780704861227652958795584277446983790271614514932241120967230009368491975374135331869228853748009839190607623512033245937507319186327745891049177691207497115612870970829342623400153291486226247490950017349791509891382871823841092624669890062645878404914766126908755674217327089868217314094627840109566026045775996153053304137564683152862734341245975874732263504325435397964664862155292585389915688590067279757059465143496738613385535180305623231111574613838401194964559151076269464996683618290036153428520353686016470493518525203437117321713308543997376241771886142854543186134880873076398766372916219817977679407450714112752885726363634834780124202186152682017625372939477347254072272285339956118180121705921332636348475899734605063180421859748879893420306431316242807225531792047040136261291003224076701046510301317903832302473824291928771715943275193429908973861064015057388283198006087855393205314246576267663307289844484908385955195171641461375028892794265566275051969396754357940176551520454627752522972422122995074427824217116251593419684173248736285611510526942486389065130036449359391608209595985120410932116323446307847062617817284997232389233247548067157581254748483405073776283672565631133305194881579252520540700762390861256298693731068872272613097869149024543906858656610602645028982419526120296599914979453810340676730796269496438861287921877088404481231731063625615061853856398300992432076036748945552693152722564847737917061173015072740811495386558165401330472416551158723348242375730053666638251979175725589488823979129311172097329491852136709093733565259474192047615829855804830400318429519462143296411924158128586703061176922937765652860528407377453117259302498763031624963306095435079008950225667366861488247272806289644889093606099572981250425380676831584535067049068168512082265661801064119770087431881471504913758379295420850017454425155438303132284365553100836202902315753214827050943886547191765781281512558202509666251998556903130489523513477226069121039734506289805266020217896073885817201066944088785663057788801861126493439405761216175285484581403616820557777621912566785785240249305961749302911769600591449892836338270844679047875640521739136723111898622228132518278465207020115564121244726818364141796512526978211473270644796442473339486567468626248202425984842861524363498940864985491994734404226568159703240322277259753836662629619018942277863090951372452569179760237083953240764150627800818813894601239372898095124173160869083764167804085122913004062465726416818295162107095010263513567931265902653198546843552882991868513621058448455762092166726172585236045853996118276682670251852630710400175409468700286714469910740770067782060604746392220949140199835959228325926220460732436795295103324620464753648925202925035407914343106641203999674767264852854953114925545937192363466730765508631363262872575211909598416671194388095461463991099797842101238595172945506798663279802069369887769239375519546003996990453456228067617989862630341948564073416895334929313138523905405574714165068411905845360016300513399362967160006861662631173975611037492929637186278569002136740426512726039437143939793734303535216187731674482821325418744624131036219137135391140989258139485945218147540968529361149298165084116186168598802755835298292767739294839248511389411116319501734203246504933977022637548216293488689693726229447094196024059971276556394599279694894103025613821366197058082844701073020878722475988127096933815219586538395881989892495191171675860768927185545100916441284767102703775054669743474370357769646775230292991702698136745313721250137116818805634601762770781873633005422315793829001742827806280804242141421836631198415994660952354062809937355789542526223554968633208279979496220377812058606469500378586462368549208671757472189674724038742104702412214446452853663213970663186952054303004834289849138346022762060003596980339478030790484795466785696691499597913028964681671367141840929878217501762862313756617919547353359842539796895334956983600715354771568633802790510637920583776766844319627994611734302279368461548169935141435056341085208449586625820173233688166246092041531481832501126527011500112024437441674078902486825431043207634992303334209782963655541004370205037470091087556080749544613332189998036220393403561279186796344706989473261901319774559430722597922937278613333207625803620196258386224933031320844884120405293254457714720451562025737280400899614079605415328553084665240416569963520794973132674880277642816554658607644635677770990722983633388691429648827377238155978761510377489818946743453329954072289530669081372035162973184961325071890143219127682248308001290493082271639676317006658213896034201428015108378266013813985179147277827439180611953099375787931444124677784266839065958677837789764981324976694307696526098753097710999230278832730217686709988756781916514949292801407519043948138614409321396899573672673039415864921515255588273617902343611306788270737562725557755680776618377713656784075277558039485389793513953039599360681213078235732969076167527822810200666187597616554186532076139851602450879777533726211023632089754332901783584202258306100642314818829332734067421480947089679637715179519705152448717470486263410655160050598194433568609693932187102924455222467810234113055091816259771209243117625756822846863145493082876393898079428586024142316722482245574480593071198467149902058730736655607606782624941217958144603065153732789914767785775405189523595712642157149526141444327641828476365092309372623713304800670256826651002748923777720078232043620035869328621717239396917716720424079557460021884725055031078727268923785622502317090499348659469608750539913344219306559165788184594723144463898793844615422575092986651642183778644058960409851260473256631998678041902905486193675447312402365550075855298483078270908415965617828271394612818431004155467247398454516193423554189258954203529529170711217078588460091633003151950605446367475278726833730514539701089572966721623899014427275338697100812048085097429996604058188875139372967035073635514118934309558320575043441403179278095662097623771549172932245940010237193510051357571078008241572453131351023440235162887675192084889434836057783327516316251325485076521014611175367732507701235722954067398493223383531801955599550289933976489227781254923539038938471626365876370693937317388956662967834493550618178150424948275377256066565625377137580665649398113448361384868980061922720340728950956533312263691308708541883178302368181315088787944045891167606007036154423966708912691278559846905177169539422185934107964600351906545212875374690980074749587401211090089815715147136964612269792510050329701998077525081194716552987257172536326706586017416428940756699165644491664275839607108389594870336936024509420945901702404953383175940800406269180000382077296825958411380057782611507782312307647523503918887616843738348592994045740473265514282052650502803652447709422044894079577915566782765733724291237872256299488208862185627802658743907556470923398711943396669644181444125976891861286960769226657043067391435602292949240945136716034482807177848315019551785011947072181800302177110109510297064334234590154987952118520948100182944919925417102408083296373469116137132584640461155352776203435732701657510210721007792772995597871172109046927836028684368177703587392576724605402736094280146456177593747656149287830133779032671089025599397055175450825545185140250055314110702339830132630389534366144001798545877899352819564616818794444668657167820002771316227230954453987986545201301410303111546081709095354189638802527827295146761348047231616437389838600931209016417599620119311551111540368142855247086435555120578174913904747538721273871808935667372641171963749547274781016815723120963875654069523171576499244804762805817683750738156913501816859975417891058949921744042909148598833372314166104668393656031733863132566808827372474625913149306363855830587171055347463232694801826486697888352558164438382911657195448052021793886087895837609187580497738706390028532778143898220535341977799411180457699498638910808815632049127901993918914266244161218286437599624272032160667387967558467759485765425267980835609113283482739864478493245396082601638370546668398493595282057786493427613564444958733256153477911857185583528365532427995036267396599949211096422801566757690047429090192747684610201915968458205132412325877385822226359229801083404356254107409015068760341726469761474389778865425014475550649581181651671082369592877991602007366370375039633418840817942971725326781140112792159936385823332697705899015321093657783519547382890392587476347997019173555712351977836888566811180887495762998782805516970058745280245446583832605103923144292732242624691782438863715538375293540671513612345252702125650882887473528761414886156314881983025799508185882208537062242313218851879558448140668901090589769736412336944563904908919340874912073538632208759584425112265644219069366231947973626149072316323222730877353339480057265635581127319691993778496240835809921355985886242518601315133219482501852814417866680931916768265799986411595788365373492225457705383111095135805326725553880772677737929511136533470257746705900403324336888110066415788512637016648394166248575730267369903242452796140045727529003645269009194798390537208439087264620903628189779895475836757887509428724149460086370724534266750600783104641022308480042741564341560319432093399308167836037867388339359430463548460230009163851885693074788525924659210503084466895088047206492529244882622457033563716719939525298338944158288519857446559437040532290225583379144068673187386485040480779435047895943480478838486528335308071048219887645113820445544491159012419993823003946157256422411656905510808291576650418722914594864269345510082144258758560282189635583408004288396706529270615643588775960307586646951371758622508052317576705406314845269091811887414472919580493630852095391041200262142122479557045703810538966526946468442590426899914938744572190898011658872908290423256116087463661633578867833029919517442802676711283252383700498337195196611338336419657658042802976021996973506735479716100724688087020811846762011670288833874925863419501228324668998226142646435908608438034128052648702017372532085735863973878405640044428357141418863184998235709128628449673936377991069616494551585015043731894320222333462325840958805476580970301137011559802223865740487855199212886423340833809795541123545497233130457839810816753064852513585088571815211498466876890989300465315965946973194653898154552713392639068933848984031977315345226599053592975517681913756808343974108630880175109954678176601549889042473626545664349949643347589271007434900815072384450743854774016211537367405310751959072874374053118855549439103950381269674446872674208716858943029588454451231343742030656435800844944726941098453420736955073737756395967432769585864438811416751740983434580390566491335680769257095173009256241570209427650880921478476318926878250630312397604154875637537572958338087125583358373261809584072036179480377344241761294139243625299194936664970238145666881467648262185130513146783602620795022157644919007419715077245623212331634421822058420946820765328470510636582024703856977856516147168062194448623616651382022884614611879099704525650966244752373734417498784063284858189479559275091121080170617994474465638136707350143301233802228793295230787435806189425378361298550702216464917843890853611092272953647810937970434615936631447230270996097266468018598926569437598086096726615769146916611095225936107292182406692809334336265685198187386379744815736804635523715239940987659361287090028723429871300545916808372327622917180691219818337186680238750106982394604735072715025456718868439989114613150617508381517551207715757015900453237668404493246244023868183781447525547138857555174993797456539346157162942941054678840076349846146607657606082097857333259552989005918259934071901097032997491250333100653770355048880716140620809404237467773496031014620815555068863029473563341503699282749804198378660414727230668305610439717539579078309985146782457255096418602516211417467185299632197539254715335437918412249988934440707902063792777621382227724864780134321056577317107324782309678880062295530577915478165971342613455750281196409470388432622004212046655084815049867672507296335066387373331809434695793303816095193015482173394621771530474812202727112297758311962415910736079894552183862016693499169591966138739980567151137078309066594405900925066592687509141121261903277513393824398287804509057376074759602288320094845816669267386234858215273674947054579456732848348710215561128455141044812533500701548212988061716385959731460595197810370184664984944884667694159755673035369604357830051871834446501311892344823212114466466709812228720262357401950223064163605756725654596488213186806059847910087700322691535805659054038724392398944036483210805637889742990194039227390983302179407513309643262255220445940010240784636740415227614863836642540438380825223663680220883089327528124579174624910115648067100293324958636941019270319947541541162109711751371941061087716064741223666624971841092795778687316706433573015923148584958944380228759534979664952670698929634127369475920015836649060695819378035225573093935425923150187536585586342210000936859782868855937084361281995585754322872017605109907841091606772036347173288413453520424070401302388765356460217346255007908509384297388241295358506517514516191952632334402114912095985924889065613533998692945310504405308953690044069757447944161357573593093074232456927644803542568734867714194222851554112795832167783436501808743945230508284299601682991822297953050383263166437070432432488792054538164453500087989195528668773163377040401157555372056982364455066278889196684309782732650969763756568174819230335886876945981077254209198447947541504852811812442613329421355275003792843087120937628642088797710443665040214903370814757605624548634011431525671318837957717684638849243419790116676589122270253587443221695542743276679124041707982427702193195104033349758521890232971691786724503531983748526123603595379189930458962331810798610496983657657756230039576368535908736501599682734836440276723239011367049073408360673136855029760836295554445757551265102858473685823409619402999119114740345440920297438541774871902963293394084309320906876057324305302852788653826854158500006915146004173780116819306393304153684031389489034278674785202445306286678559095207802905446292267943556005578364756781188672643212655146625664153831002360809707198560517580006968629180210388850167371496662606421447035461983053282505113771628791138596165850611296468759877751499756941915208370626097088798336699806649879160844132821661495403553157586974412334230002372105458747876452764890604193844473005232736859727541655531606277019489735176634630963546313830510813792518567505557649053794552831086265996705201308633147322449148177677125577992621347038144121153669092403578414597590094550095640670264229626316412445243532919060115497589123561788010112011904420855242073627876200990902167242727045613907551252932433924630059733543621002479417433714678354208664619926324819260155311394407224649779865704741660043923448686228059799068932553062707720681896729770798997530251568855028335110358346058355219742131230217242829582284472883989222530038023807643387732448363245331052434681677462473280920658776284948106764626750958024648110899138562280047568180048008505425027589830499039787511531028654460475186576494731200597311965153977429684726370661607625958954042905345138288350362754544583936844455949881936159857402673180994955241302886974879508989898186571072091008908862465807118262179901826921017125326541465974679754099731874822265218031408729144144915201680464072284601344671531317704825943857437418464610782093902390174622346799771205023072516951396285879766747165552808555767693005174442613157654970625010109430548915152391727969039334840563117840163620311143534702766992653233730776201617514872465381821609912758410605193837908548327959473661177331139907186553389939017238835260924170048346855242349202249042069788952471703323706605953126456980616618948078065285985523833143431703579397183143225519312124503086244682952008051886765348804761452148157995544324305855668948222551371191534186932379137197497401119014366832504922099135356763353389371127544577841838284229176733207302208409627407336512356725622485599670090378317970817184030185938856603899384230166677742933839596458376319851466037215371903473702442602028456341219048334342993306230559498467794944543312901658056162827931582619142837543097849089232006563903297673348377442525040095199222807150590503058353397419462988193999344083534552625004735551561218277849749384516122706228855725582383919326054639845314039097825279390486856908222930934284281674359205381347492546476735663911302725353304462981083086791915182417613461865223124878953678832999217081918951255597682378362531462497388700829684658076832654647276692122978784014668292063792718432362082231874697670926039271298657407845829382058124496115637875300348614982240805711693901810076309910211385232088751053804460829323423226138172392618472584913732489949244368923067688306527435039691422883165387042176798839707992907386969668329570474732799940019009868622294410953898487160652466763125860999020209200190044913132396519793734094559054170287846124125848570781216569745700264156233961118599490586471563517927108512868691646488821156166835186805768801066571956504918461889199021966564234476574063041746088832880402626201225849648773334455837715398853057170329281626090766102563275228923860600837887357673598877831014996033430445974798490338314952077089898456701697252970258892513612488502999957641052630622782601810442440782262565471275677068682756346706899571900146665838228670338436339448933217430247441980362530205063311566437967125303290693004508414851463064398337160162424747240048799667746317654345289886397573626820704391452066362772583620963161907271777732951417857510725102657758985763845756753376125174994488932146869157533973774516453507271041121605063513119239602253331496234742533749900379991156590506773774109525416057388324519129724484573223582302342782472068641676066989900789241668169318741030254907293999309768686527650085249096038823027092610552027368410554243116261050641669024282115606350430791473608938406030140833053728690825600083022482598629406716815540490284998850583447646038630211469528191453641471475264947027363991605173865641945753304184943757118041182509080911879696737451092372891754740056968992731515712020697527510031447070935424710614226601920687647811374364391172239191504219591543368596690754690279940470924732098630123517117937199354840711238078958927129749381572495242296010605814374093156997936455015783240800138564663707590007793853656505171417603121814855806796743342756013925483283792623830688094951834854376155496342450750512459451983884549662605509073431605412121759749779398398733441430640030782063376472724999185018487204883390522453070878905218708859861548434987770180434694620776510290796097489286217602405468553962947102133168140284225194424855232925658101732281261300288689197185459048953771799844633890587094893338091605662733624145448759728801939011036862021055886613382078563035573531086938916680519268587563508264512258557296495811329076421354408592669389506921361503416262803434865292542256365655461040807247752471587770926372708176387431947009355894258061542172101655819661340848197056840247150827510320629771411752201447846733223406111110826661250241299392186974336603253062330855064739678987519959730489241238919831774843941093334842821189769539947838665841397740836132169256070046741370293469795042075103482076725405688443431459601750038950277055808153352928418417601362837944711520130598329626282635907991145379769740236040311700952589347525462583941295895318043119815886229599288794471722255779494760518893092970102770408162905645646879719729509176829995337329023701492821053048778304619049860624998505968563967380983344647196433965954633489955697828295949966515292635726033906227272170488719104103825014282450684696374901109166285997507141807165608950414644355435462643475102748498527384587772356057701420298317112003266713400813396134706053827442133688779462384877584018588721210265391562808227891026826086283419297227513963190615617697396471431185536846402160152552571998734408321536141409918393784749972085551143983644689986413570844865019737361379183170021307435823341591654617344172272948534066628234289282328341010826463047725230819226070025686595406138980819241423690598169283464228366127761737224272188390032118906154547774286391179006021690548669631959289005164496628837538826774243401901723325479656391551357011171735204628419656137805868035004706301145884675849850340773771371100960332108026864111587287081330533596475104329298585784638165030615386400261888594457141680371474446088741885325860641410152784814497829211454570943862534699950799745056847183911220562250571109918374761134405105045986562573908194051080113379989708303628597008395758257663762999922814715460703749015937516971623749540648142814652696690296110155030139084757350747160568684480409562584735688799909660299277555987355203882536985960164371467042964303661516439281191356888271534816203834350027222225855539803200206733005522650520544306670045456906624687070390199289053869545803337534451422741238828785292928353536097660763629672417569392954001596184607757190544126438222585958610904008470247078162721665550126319753794132739143282851849118572610542884515149421218362834085175313933662471551764285202182312738140356648078319895082484151222247192597539707675666755036530303965600227883663893417959450284621450324057174050780699771833974875081605063967379249175280091147450802628083988248525863527477583865505372506010784985220086941315381835182621489384890952828190713712292848611644165794053529639122977462163962934812668022366158297148990966712475766933911593889400429814298706790714194905860622271505845192942290320490277885064409237699235123182663238979170280704050494961046107561982288195265539425141322377661220558081901435162467766699662827252484222654555557868620000552281590181339266243973544071142492182200133997889218553528185821702255147249377876976099137550474922595599533275528585409462085488148432397517094185740570479194403912636746034606770108230758245230904027456132309849388395511030501077297389252689092789376143562951371949882349562043112860955412128477536786268536169875129133495682011511838974525201155595180243073138815586309409640398210849848595281566496969090512732867864948109464795492060137808931740847542887334410278534470022756832464817709414894421669079292771766666461768758930815212726838865774313510322134658954582406598452844559240329599580077992048823228068540884137567080387891479539654300960210435842438542507195485528017820018353489713763757823227716573496251314828299551101995244395494539879869172896416135444483918985544641431492011505578554410472434109252572150257640474371258813955657022433867553306957313359532680876423116172749462753982616136508756206949540140345486848471876517293033530362233734277183422199036297994406867646852913945623671185909975559023060769034335759353283337975823937429224224472534521044843435978032078847127025396597390195053836769756135883113782908584537962393521072475673685879370398752626295853303356341296460660709852950755101735817404420820078606774349932510607876858994161311427302862937774670808844168267673521931808945258606012213244364725689779862429592320830691877458673526665230080770346727672538299081067135867199217506827005435714989659729629679993894831820833830558025285720762516855526389429023116901314842571066318736520748640186920751006372778037722432585267994996338732998473079441389570152463502125158722658141410221494178991634525772083907593600427328029807234405733655958544080026118454241619313929526276534199306534875263711177328276678023031429438139725370888124992794013939949093722874247442996010811892495011269540245318916253417205836211274635506662823109797859947696906958952835641799637478592433505016205214384358739171303545320172292293746986667057637326409992721741130997779845364235453538591465800155669748465569623200446230345634594992881008741825395049101353920438869317119920540510257582705811330847920281659866164640264821195838962618092586607598084230319607739149606875997074227401391089922537183871994162840584547146400869624048317540125909356066299554185276328135078594502746331806108127863441266567909548751417112495201057064287213767216610868811387435556444950353277858029458652212740021448286096958779657298797687589671279298809952240279627213248878215468586435887394383560987308091897177626327377584176914065885473761513603118946484734540587535374999892418930692317300244621060100484300104435842497918967642695859212857535585319073735357004979845601549267752970837962515683136542623395399752524394883175817713209102396170488231553849998123541932766295319872607961870324949390395378719868417265036053700462694851485570718535623167121700725510680230492468714130631857209606855863737963673389314637843019954788492548109199742886874796697614290115402951342468578523952886247350678661327690269652286284563746826837328571045231519387867680657937634658573685721715620889490049062095878575846998645749988489880284146837082052922346382260830043080106110327766493743353722065155862209442680101167458641162778792664160428515534318988922744937361764327063362831528045258903182832298679673921894898917110222700449963445017483579692102385650528460557587106048264685095748227549390997733894688552319167810434113091306386708453394505714247038278850528539052831884804742761352068552875147349225964164150889404436050758916614647674375482359545201346387558695646282984234741971015037880270480650787161469220941581327059320489932318572269306252478960904586268424613682535932132577827606769264736296421772893075583795735594164072851056979255050184513972203315208401866217155519587119595479390302513538275018630221056237230354261890660604941743325070198912905487920398224589827993905117642174422991364504762756232731166139859169642335817286145634578943617470708883846516896842252831278834157158361310387613256388392467798383907310975427057666789917923673242893744345788917396149403776418873653959685332908933660971673418722601579038057471657683784573112038805478848320710462587124572577134719915433442743384419406734423993861122122240534178000968249854410224176314199133282139531674138717087871392050043112489757880110915449847722669833353437527449282461113741205930368772349984941751799620977118826398088795710873559272920351583302133317648115915553985543368585820019346606978053290630074240481046191366833061964525979321449432356141068481945695285054449440353926669477152341370141495806693576575544358932099715793187299191728657940470409753306708835397863266316895593696420324165014267384956612151101157488364311530338468108039620901950457432424064117243303213844992412143579667027481784860833277721404177199551876507104426675774438412061711342606029138452306098948907500013518834965884859096491906494820930045551020680177246354908953286018434692231229354697061915977217128141843031408999828522851384328399733564282110367487126660967128660879474386401818014827951925384719424972862568668762973887370097626739536732574133734953151797743352887351298990080691646258351595130709755537475225366083078617873607449861794121075076714534600343058046254208791330711774532132822686376682766215273614860001464183748952704687634573631991979266950409260172297667784110711160870547402191858636331317425343302446478927862111054486651505200302312372078642100700180589291954147898534862862521472667352466935426411248603388880846559029003396128333640787708536859807124585616768732877046419030964399737970355864882539187027844697177045584004945429445778222868369671037821332130973535018709514440463659015721970314513686518065734995036986562966489216009709247507572558795117352141250601632234522971379960520666656382524940033516970498692469192273191935377719370661381161850828331512507516243602129500183371715513099936764902146591354483041331371636657543954339184035535323075017952169804336152132958996951399428354264970178849090849664513977442783531612961635115769698895434326583719504158665667140840534814078631269014571925225774924747277119643615018345000924678373910855266500883072542675640843457495016790965114389285521082564035663957025692542672661313403976117642782905439830285323203504245865523865855057672128045385680131364447569364598857022972615947670350883242908168790089562479486623056968759142631741078707349862065993332376624827453996435115538653568638774909092322638528817674130443023165015622060709673152452619999846251131614673483673717383798845863897817814615304337195105942269414551204368530166229519820503500158182842755475483338537122723214452711418745739662030424878822023767003621218279712383676535012053841363017795044009695715240824162253594247144149214498429660072353168674032388903519549794061541198128539284999424570365852408049750015298382466544520067052387482968302096502767502916627179303344326439139030454513321327568790528413264595714086563660963759290245046131391334487699405550132722969056218620972508942774705029644109291056191064916097453355938471191746784777701900219757647311536987089621420186855241777516778674938490466449863669071149012481125190442548818772248392853902087435274085130411340687992469951213525208508477585180467839577431340887471076064855295252353222032402138131681818048691136368581886322599660964443687001556691121352340075245570676986712708272933415215400965363463139585328794934994201727642747320732586980083283390689901009872758064367247850323517355218132058476599895345886212452731570423582127990762973314175518017059012814055069172694098268862826218470561263631680906709634691938388413576006842015295148541057621229185815109289518448403439911142037020378869273785020762307814156169166221654435787649476364603625018451721115329391302647033712685426986943851522730584978664645921103874385268549404983480035521236755412466823859947898921113907656893775137095737987616925155418009467003478477205702755776369906454776624598962861292011007610353938640107948387973264103694321903893170395122980104842206658190892509376225493947790541588934878957253224246763931411397824590906718491663577954980831669242883589909301331768683734753151564806321870565276505768055781280754908151521032759251393056270935047083145413385608463015923727218238152938620534295984107113378264496238532948164827981159998754566696916815148674424732636833719569541440137404793217221232685668412799513260865580950323416914883296809299444608017551662375862274056151323085991045582165484192929997724404761560440501207158205643523056607638866278642844800323895357338685494366580622747167288682044791927513569229014686640603684619853833980821705555927135784558404765067470968165232841739034884302662348276330609023422435371734580976331759797092036238390087984226236380235292834713357292411392437106873502825790196636711251993197985552875260865408017219657850346636861292540454077514601181500132730628152397083181092313928542857676526993505544590173335030787297500033938631212557032535509692739211366712227118406903664119151498231011239657108565227412009973785852938718677935043731878597834963994590680660037651804803611301915999898558089291694055905552951947404147984440114680210512779895667322812946018518185516893972062913003915056751386304953379018029900454484584198796593027957607743821886994997264015492503361221679163704480356800469405277633761099948116109932466322617235350577389315952729755402441027563987006777230904889426603425551752484420933255112570605898552628319560391994787868464402296138888747537429483169383183289717742451824585982014477188875643541364244546815147547670505928918839668169759368077777045256000336926150041731076982467669479954752459943858138989652570049446182254681374645423755555701412555974076558414902702340808462466944844008775664912962065094776623024216920386874908086838792424977305507073311036382780208713231881103040579969496516322444818773778945144340343511430342088454482955314804063563327687364050501347342623605011691885415131972532534998925506089825411002356447855361838670277183609105021973149559810746715613485329843135770198278012781865043920616524324298434896052326541384147438357835113731657714868725987767257596930769148183794109001758269907230412760967943663984090574939536495387239716908050468831148972958873262342560612530703047347785987025269241702559021203592155036850701188710846951080620480116500840131900381456470950399977627339301498360891630974604047156493408140208846610500528941282421446036322753604467455717822848052455468333800407009110465258184908290763664932241125133133873870363398559040829048100224854111191066484266832776730376162808465163037566495079155038000887365268791713621965178239784946628471408897483478629090679236112898968687366686152135434566803394700412321839181057716743641695264705477712217680032961487176107482471691924587447237513904158261015265897008556724191985196092470169965251010051777184982178158869256109532122634083394912269531476153047729773012832317368280169931402648644066596566915462255125248965683737220148792724197087922155669492163011719846596852456208270151200274626964720254970118466723853071675387671736756021341164625738527197055907815965480775073083697933308209881829773688353548741633607025016997787022459358486587419431212635081491378850596219182806556497800559344828888047495057976690782331603991775408761161687188857165698228402905026842157374230925207929361479205300078585183628721505014777897088975290524233777406409677419252407452014122612524683537424256341442870421093304677795184076271145281723834165465495199629393996882787400795405199725299924038978783917814884401651374230138122521020224897302004660646260506810366457475346049021299137074867003829085843776088643712271813942876309585361517112612488496029505412929952406115022457918140285790043117459379577037624649335886545682136063537139736330194876262325661858550573292954765405946528585873473193496462478923418319004278928129907927053410349471037920173213777662644567864815394960314584177295066590700805671099248618815307796580783542247641952422854791840478474967472381201532217991270939632095698572739224978004350372845804879760009886310199724287396186666043931662586895144741396185029700086118290406893083947367221591650429473509836941100111815228948848416936281440906726191469997913603199373248644011176926793176959296665738113140427003607356304048843521512892747303408776279473654037265874110408135120623462347993215929182904748850585114704597593354321401026436693962086883413468349617493227144575589180787575906572723166734062731952510164396469541505466600638998840026896132231583182431692394037982650618903823618763923436403137342439830810622304615520420904187597755686692457761506453128657538122291770880658002229148568718513822370280210337471373122738268488842498527747255036962768653615406164987038744555642532507206322921586345000364637401655397568047585992006202889793537806984084764524134604961040329719937324114693111377725205247549566414407229675526965970909447974481741876494445328566109576912876733594797758384108262027315216945130599341200101813906066058963514189539858924871596797240535917069553731368221280781822273496108563692535054929479139678581771780013928697821983480766922370892951921682132959997762753067922422093778250134600915828553287802568859918106044099831697708271177560473273011829526648879115816182869667802950130435112551660318124849090295755982321266373521763507355705666320754053957879029410908205682121823025997510240200835973272584257290486211524976291923527149660464310124290098297948999825760127055468231983889529814423544764799664890742452511215523158888110519486905579831217489642480733014367582480914819024079666956223106952754370672308020083373070464292848695309082311866825418908956446623623420546972309620091352684956390259438079990803694303977878218465819855396741135792124105588551848078877274292990060789024116854261705730749016527030778596778123359717649068486901133046053346539869907809722656290244618368966303009095552364989701646519975042204253147121886085273606576393277558644153400541542005486188533553732068629151902456080376900866988454309768471060952167467168303846779159129266422284480343571602223563405268995340196226653855080830299718763307207397581175869011383259136058080627783566721097380829310392837782087931844635669577916972500914223510870413520307052030887974034798263881005564841832161514432560538855436259970992638101886060458943514247389303795018787054871995900061395875539619484520459637559674404262175641059341743971609384432746872894517023049003962270144278142833937499162646617220905235699523048827772243650100240362711588916418788608405796543767734463236205305815082674454688154321862229355243035290791080391919500169213710600127338117252778046785425575833350885415601305728576131445634811553419591524900494569305809439618507534295305603985961992032447902730950697394300830361920855357189610677025327575183111045918647850786728479780496238079548186598994198542658994161341640905084614332121797349606127202303175167869636240820185117209295521406327008442404789921256464512110243582630290211460531985008023568594615812282851447321488003764836799292329800234295970501588337954890273058708119428115255190597785527015810285088771722747356819598704192378239263274928438715420368453765831912173481411000298304048157035511598083579964694320758283531476222499379007635187616652766010332962421398007795671941417476385820728477689818857697162953515741533729104466668642430984368264930393369509301148183512766336636647644709214351923857129449710925403336194973681053732960796354044128619530400075687908176081960962150311426335285823605215144793157168621150245963028376485812504958448701838459319889618769916426484910952802899172446761082305387312166660308603127567090890299886686411742612331223266628206608822063098564047711940032348260724910708968932185406849244658519670381155018660036406881963068901703064217089186429395062995760656023427838565436552506776595065850546598631408427784419364399371777000230153019632242441527755451642808620747663483178576184870941977666944365062218060157644530428864004234080126998143439606734010690160171512864746789491734953178039520677645346631576169395547558725857915544283712190507990287017466240834287896802751522007553738363896237381204446581916396421194697649068533233160888117549418623832257173413036663222360864563964281518516753607253189326551881068428678491050557288509399495182322861354980926262833488823660493524488012367500473734695491847266584171679865100096202320486862142131622318200832897878562657129708326965208566861041035419552589769569601055005130959245331980391550202190300876498020639459441718496976958101286366873321584527609566301208487765823392443020956425907833437504096330972717868086771670891924729527917004366015732531768735877920994449323048936005695169586069293557402138704967598964178179218531409005892041117871461733680879598854263294388091394118396712786675334796693759021453619928421055861970310579842921095417963919247899527731534078535017735234335759981463737550392264628294718077144329058458491670445909744154995186966379815325979651995839693496539900782991739607071076786164710822788283428242255745954320849459961565412499364038026270372224276709532238644211635215352450789158835101574867940640101657997053527615463282972979524415191781498438923521978688334993092584449192220615921604232961986246909117981969764810947901884469968791701062460396292779342148567213823537373784472334884881309248451749349348963503357453989286259494180519816167520055546806816542719466912156381920455242464758690721635906160603031130707728847576922815059560492269793852844547267027759588152107063709642346908916361996576653536032359258412996558017091191327169072278916488136936827225857307846377132360940931315114458625052776970715557397874565277953321549392440096500278831050590003748684328898311757096214541444303550921442817128114398419660868509007831612035775289434623622585398169851124924195915109833209779905416672062874775707265572602423250835880716191801233592608710033214574427343773183079778705976363446632423781080404648992712175741426965176894630190381199680883443125071280338253865453674341876402482732125525013826097818643824937453875829974513546450544713208235568154236838392088315833986685914417019850901217770014966036189453847869659073992825478069896171185302919495227673902219431452913324032861956484941329624727320123867419999227415801179835281478133233007801357496863114751297605469233973932634140225521168318516451417849921518466810573477967576375188597378226029897695377580137569329033271836591152486075531397453697039662084075195532933333507197373528961548309619677551629517110519858759572634112292326325006830947538898799387905904651302792886289558325461656430291866234208062388085332891613077264926243773068717263566603225697886646817805305913034778286872913197849061794473609326455393735114503649442217472821905463121822553138747738277069327277593047269467904585240384725843922498143140488777232621651876874470478438892987373169907518448995675463704733468631425525618553743824130855747220668795827856896483784192316636592553221263072521290896903497003811424796524658920591563531118964918677057951052326191395565919960826371863127335091830645308761539058663757508906238148304568011472757159506248464808612454986781521311622416121298048164933348481448737202111104637961164584542285681651666875503754963476450669864879481358922669340907787491186861178124475227421159317951839207711979787165661814919876424862633356653695256247822660685186967565269441395123804704427580177251146073256381934101594103090764259381361059708629282915204818319570277978779955564254381360171481544919756633506190826872852689222082617451496904171302835568901313081124701128494832023554218229875665961901594142306575907335929834614900541197154501559616554828719444300309655525838921276174286167115271051092336835825671806932689002259104907266476458292311879464149310131418905731204161631519701689021257643380755182730576405738047135084112192808342649519670893326752571177674760652614791207497864401275236856992890869874800095020260420157876437668556724417710686889251458358523820890251573353318581424298806181584559618233485053933804965650396975908369649093655805289213630863349964008898241400640601871617748990345310780119442610965173746741092847201755063162666746529567126802507130017963731727185866019432358263978869523324784848987181238367239112372104169074347270082739115340077964662244349475386191704516310669099682455492381869644730488764809899079858483222218247819977617296173576721322756169795325153968390320433416057470807318100945699268134383664909554197235971065348450344117974267928716491499938904002670555840378384009911188694151206059481417221827776301968588064473622633173320656439702099693714751182495393501260950686342044531166636063547482467846217274670105355151074923944121379907327616829755456980429288015977173430188127483380523016560392682348749723995366589063477984944142539382313258067957575714862249284382183432387102043255535481676958693191638524256324130642977153693998066002934116402341489912880159041651755339412885355119801366698833136741450063175637185291457543461447342571170343723026901229362573769562574999200296699327486174456037300663587815888143850437465109979047465631598136232977258090996297148737629550520539480881276544890803464164367860994891632052031883695058653374393163941018628133243852111046419833939887336211323919356874604454473387544238157565388357241218158105616792678195468754957603595474188896227792040386936144720356335619746999087672989508726960543780689732665845660347548298461686299416121679329377430841286046042754063759888117936064950298214963376089752614008839298713225331315670037169816728886785121781652454815863825133421907092587595485021413386374793779549131126423776435939254127885495864641258271813794243752968107933385535913379514276466169744967601218870712628531257715032741324922239453632356620305660403272281641349426388853238145452409163654341095299749586749527849256009616977935229332897199680909662357932117500651082576126513792346552989239399424752944645347039364018024252943239684365845131017762111586133614437981736760507081118539397580678526212577359164922169291152340352383706339389032354120581132322227303552858250780790035041253004770005235967156385815303097272187776237442823091655979762532846628284670267677107958415511103223594341797363231606010827942540497868495219800389834193597460630282459589189837198213807238772545451900878152203803427766840993252085073284025005356511649971463969689100342030710046238108436367957242152075941805143585886965264636255763490132648288919064525577775337940195944689843997698423332481907718908431766891403854609690890771548921860699692328917807568791148120823746759054105966300319321736683448484457808817104703911901552715633772338190463859594373699591534369597420178410898459814550265192699859175914836061933294176362021951070259558769178677202456554619977858382665232259047614389156525932328038904932116697276917136309601989069009324407200823718330469837716073113160220538992269312463034956637421290895788564792555918685141690864792131602619351199877572282577941906170370150228685697649541541811266689881014909195531247570146374948383607490036392615863400350687312708532802025272002427277032873344475971265854263657450097498096596027711337934502239835141010302821449820461112037297056487364493844037955179825073446030675084188601811900141616081953421696049290911443788504218752133646449676653524293244793686582453435530078895697551321975989014587122564743627979627369948802184997921981245170835688598980807903234585900456422804284303979448478581102145133789906337027745181668146148388080620436884467629685969400281615198737760936221354380632368196724734036960242689540905185856691672001494500108079790724371324290680507913582537925521964425170228609417907120654804430191930261590693267229710314531230842699156101276604763207080608680731301605224645435023985180280553551422343626307149425287897930800661660333330334425690158836790544745027627646462933507127729069915322541519572083019683570735002007259020817003238693499789230331391164334245935020477240518421350877125586621887612600484203100443579800952998676173156063398172427845525656604035047215970580804859294288187907647681557551081949836665112587077725332690900879642259165132655467519405559905413628139305218314263517414078499857420912466740861548364185937163498689615393245631269123928623543289248432343662709594969300810501451898451734938468852230588142056026006635968926715476649513996675529916137449583861899293671457436687587794453295413871969549287615022608569451057879710922721290948653876079029655710784913227704261263554293901501464555348544919210454917568930234088436088696503291220176519671635177321928883239730228617145613542130492486438209215911921048338670778597472622856787060965610682695373404595135821545972010452203216126507318446368544532687444033122947939375084086205181195087171132742350822649076215538098042378795595076414555942635127397792183884922809336172496995627084683117675017091458492290812179465362714516059343567570354369592758248964762275805563430701680558942043211767362853269750504175815335162590200309930809015582496901128863256110678593108394771833499978342303374151755070883289345131503813954645585964353974018845045828761067927481529085548159084781163616802231232995151532531054811292129262513072182436505097555795662777328875505036033565529173461592138871510272487404199831400984198032200253084935282610440172725937598651794826968994844331215048043667353145053420138940670470349498596773561553544275861611223936491048499631095032720088283067397325322236014066085597180299923917436802557292450929253448481688642866759470732795266220569845678061916246445739192349703660447265895567414563649245192805094162165560220215916779091204694789418152907666164399741281804954967174607683667890459530192344592237797389519738994203935390765229912451526046186741971752180539029575895174406857721414505610820103987338141834874014257359953875334309530907164235069364119627551226794987062795240930761165300398178281315533877179718878464156272291422458247933973779155846150909005977547355688003103510299411231054688190543186101384183962695430467652549126909733042617301977102438042477677811756552221416340192653629028369393510108977340381018275329074638864273870045306358569417689043396174969504754983121010816932439996765819099261497220162768822184197273428700284007184760384334368484174752153912475530937748823452534725622743172640238327355025328024602337284541031584230183245843435534333715610071096903856850489418516782457387872494295475260790562904258963431873143170643742279578461472841621727076231406676358497379067082552196558974765805182462813096666595401725090784006534625975493702487685012302608144114824224814050955966497654005131398474312666926366204168906988919491091991032832980154134982379170759797784926508151440157137004696309170580542053558063340669925390358585166337512803406407347746796481271543142137381342514047983872509124247017557171496063900687633523500497424674449925129245398272098074181072768477538688749166021778980167331064698211356529460787648772203141592285378235105985216241710135910977642076528633846143854705049377318587276305420501033189983898051414492340351969284287661871670865087428828713412191602230820800361125827190869894649010888188030534633424089059695345032990424359042515867482580670780043594389678894178557419563577241561433254023856618771383100313155374864784377242788677685449693493740431901223751570569779296482125978945510284777100996517717059949551122639436510174131877266528626866626545157206465856982179833229254510608568153828050773530750042112041184216523001943891652176308476150208258266371256635287115879355149373282402763938279433606986930716654432422377077613493150315785443851119282490585299867604956886550320844377239590568971927772653168113519956748036398216430791744366220276687464281275530807185740781535542457588809420576643226530683590644774168659185447263364449222562638106251342873119129960365769638785767754402496058171509237800490936287308619189857676506537155230494652741387983229027563415137033499223023721663873965044878305135972465260593742961298855859259687020128246680984734669997138300948095092348525061133055217682522752527443200916334065212978264867051882420125432945670561795019614716444889953921162716901022643594051988083490409765892768861213400812300396434758852776629911546454312376280909026166797865279208729385399524477344454649397014735064687778341763624416976416259920040477160776480413398172538911847334390823982815884798775702206283515694940448506876503230831296246841466484657327324191638983292909157537510648447094722158871581615481243694088041108569738338386113019752526847415491422053426022436675061289617083694545191798383490539473209755915737824540799781251554057700260375948866886718424911981647021046250302026022904248293467820118785690166522199891425900741816783138647868237679429454874661927742448740312404723362475865352982913533064758055786120484640654269251314123458233819896209965034760675931868026707114186723511003388694777896761880144746840874383911981772697433806582885683989009730379754971472825847219049747813841048642159265100155960185883767747009220625899997166611104387000992400492341134804580750037464667809297255013648799620784959308506911806432371129480123248379902310079069729650766015378066064673860252951034641306554308921599121351624642054832787008449362358711996387490391004050089281939903711132827240336554495819683478680586224826239621401405835287261489425128409164386660232836470830520963493020499831227972506157521922776403525982290487513378989502063409011280021150918122356781265743809496857420859053793188518163012046902670132019185481697816640535259224807671677699406723472191095293837527943395145122964840008742306103859034005486145568623852856150085560746913471739243276753801410118004957017862712011765682163174259290904236426977290239120675806208513231985634769354053653276885812876232326633209461412482657270592627887299530584564105505437352270619518817940571067065443380567865221161521398903138164120109139408042769703344247959970682546952545402995847926112127013190626709164148297513588578467890191178055578851324135581555110587326119680912848354021815304340438399052720979433040282010318885782274088754624458966055631021722832055006743370339771780164736968962231291939024071250080935106459639297556267267793965440097215547783721826640467225715499163854582157906328896962544747957951686864105121413963703031711830311084640241522879027100086597849680928140451498233173376110956637239975578886296604663109622483724055608380889058645825897650359252462564283704527487528577230996860222314255949510150257486488238271316427240408364796377834780083024118997059254062040537365907826841872812948553734997938341920554136440652672473481958533267739235151500702665731507680910991538713417054053717886217100010222450242377672087415580005527135950351317191993246714927801769764170632140304465602234327703083338370420071343096351156833333588015495845255263708896429629455277413830959558010338974682730458575755734898391567785624289286853726673471710528777515097242930962209472891645957862381109386241083484344578023557770180977319765915462392759684164130749882084758114949108361845652159363716768620863518149204910881234099768523550413433919516422709640255814252732804177379738181809732767413643953671716412538540681728140804786544564330808456651990788397928409278175240274006488624731799371922578863221805590108048374871453516869713552394660750278013181489647996408099881674792160584403821406888946018259077022264874419232062649428048069135204743926003381817929354605461578599478524525884018815486435686314488682019372418087732835897324215065506444132011149928719746292983427738128103333794099479486454167086071615669645781876329933773804469142255841986205446177092106312791451056731945145103166732092414109000854755721137668444343039779874881988216216089856159608807834916378573497818704860699110393897537649355483429524148128463229943859155617777249092215076378448773570861453866934399606392711667554138197191183709621370813547199873697388666680089221722435403506663411482629159536832545145128322773537046039794321392311969314612427190519043906290855352991387977630106211745678278253650429707531809133288350500760082001244246176261509379099856897536638238024591078490941692690754397326620237884505301113899582175682846040534004267568091868639160034988309032085788714276146921340211111885121017024208670328886490060843933018638325027161096466302917518150334124916840996481226702623908478292377709955348573066497924847870080023518659419242124346507786976168100460743422351574249407554062899977122793372867293568790703761438850635758641467813306397162643098147210367974433012868834281994646676158080375151974946563359254741846413260420996661170103287985070904862009786473932350056445342193141852244844851513460589760310724907722856885172404141307401537704052785382717773968485111869577591245404009541785907268274175426255712518441818141380608389907904363434379208632363089365784789270491952160555586976482454567617080401402213559095557617528032809688757126946130741967216366779923338314774489624727210366422152743371128054714148853354213862541579709488012729743716800815207601861130798605824360305312871300723932423574446647102782885733030818295920364087570461803810507298819966929133578744929984422655613803731309440131232632711158343327389094871317783149357869769331469678503295539880961984605692242302824407299514023368431353355796490273377234355450214197122883230801804173854803075851371767098765718050183455399756404405901831271878178093593724971327991815660504629144942787647959622799926334300446332832831234507160197763451017812541075226059613766313157493286669807761033880534861653315648188938641587418035258985995670012927684261518036253326273396891377297473120615273313812999344856544316838037443761804698059818307802751890148855439493506403824051521067460989503686485642277770630188717926089822472434973090800830536541990412878367968976167301996866368091347717313497287852830354500951045435662345710464308935621014999830749857302355326452352279589936734161016550853177665750480857707056499889438423326565047187995666186531931925961874774791549386082578911359420600586051884614345439091067742191593474493221561648059156147552650759153139592432017497949863072034098788141514942101727178092998915307380526502520563187645297663139490875399674996178995376913626552419785981983807624114624265576080873805364722824772968025957537591551653386185828299753787449220951357190226085168056486311600818576542976627382238216709140311629071491658071288679806871662459461702178970988661273181496098752683376224877478031160784369196417930416982328048448498105193900791816974416350872363867032583108243711685783421233538985398837683680722933600784461165367803873129032007868614385785850848785490326509069547258699847606842557788377288584926584029822291107742609241606049931307964681485670931701503094065666481946006019178561522297360780946981891796190625733718825469250767240594442178532464518010991070235875334645102475348899540777538911122591128135697264763876188250387872737826930506861133745463874446989309227296036992425361479734759183774578736075838349431212316201596495114606531246541443197213289017269995414028265438340929394716360303496727522504732043119591019771652988318094836855620613043947453445572340971504769170744833182416897030955603030703243267589903430009783325214076133160011238656212568663736708346952936089756091685945806240070808154075885594865236615886339688986438532751925176786114640191366610199658101430611400771707240467983247897871628988939304075615101533345410538606047363339391590248007813758254822006262500669507229635407500337540380426537113498023690830151904085406186226178757023378583335237655262211060226252135520857349652686655310435233169203260345903689281789189490291251659805240403660838527526095515328512842154162984117910108423363072392102784937565691319376289606879471370670583965189635183321144293382338877861610753471662936425450947509585276986924479844671458391487730585687536800091635075498419762961814780215205798023900832462305931268374444833232277252703247059211316547540349441679683560468752689269085636625702893152623152805887710993778394730034936900235673577346217471315944465504593113786716001832648926576478242121276297509039173232978022073776808409017030102514711592766347874707897615732820244688212645769958343328636003540813415122815924662198275457253772984168589951242721850897286327088096714172611992285832674634594107954214772408972483990708728394770584860177514102685737195540460757836113903494516940255625852218729165920238483899990346848652441669907564121165010888018102337877974012304260677572826663377575170405617434293965962500702126491163396822144877390150195252262196038517658507164348154234958399394936211292565588277213731811726968118419113127607610546820331000418658101034343433227087694172287524534295254201398720328211836259120470300133570227509792205946421372085013728506638001927828639777730456685638943992700799639959352219504968789525310411298449281797593253544092701376851763501745829358848822644403375134535167917738638271413437436389214951447545492031583660509046860102212238151352098377821689574945020872549752775956741185823510659998999720246924852948890737663179820160705953815887342992007485705724494925774733438394381966840022920869876369815365198590237675954231947513468089375398872196090161441233555910187217074032863599387812057621040636467754643966064709174601391715893784752466529317871797607385479238965540708381985397968684734299099874886353531073687859197627144900508310712252856704669709271550952391615668562746888846006454752476882940704304030401597361952797035507736933701841560946599280291449397362761366699232091931604913156441733632476791824360368131151247114823410619613989252759876326942120951504466853382315076611609284497361302751672710305861894847830858737456154358701949079473650098972113447660629432399419561210116014900195073763927242727281136363658631073906505033526595952562771365635558687158810205370027951755377102576706003320524642889743979832260250954872788727140170625818736853672248740659500583445152052118619862748207664653677129058434633204138979072508663661811470975961157680698156974998095868237494476085373280944192493190495285182988498367352068008594582334156180746011767993159859941128628561059056712512815261937162245144226930460381512284540953252002465770896555447848275344511410371233811752835301803351508515469494970121858602130287019241266438324365062234215608036888916176206767718689362333309864750030996938580477035038664831355440895809030722548751022403291403466151000744047781865680603267935465078543197835995803241401034736770928751654237003708295212819512676547746246186469586819908077432888160803940148269518120252965396673639152633675813327680769956695761645117975235942068821632727559192959074876863862631259345023131165182437032096554937831085305782241009876909478620293113994853856247592970869439001936990764321133633338672547314809089836502266689649868773950981775133037807098296981146537572306724127395622143129441773439434444865558452826916492659823781939791308084151088350677443463287318115472926177904025042189849807689914296240123329425868608442377209732558616054079491694699517249216756209642297211348921558547876154806150273018365724429351192458111628227153558518095533554617042873336615478007050246354817794720526633373935629536107567234600439917896057357992355995998632144148871889513555657101774106771668597646374844211026771331308890853014941406441954461060289933492149102498267800088521619156142689963804079523030726540333122512489032910846421870892258500427809311304683092903802209210207909158582512239408378437532512231407934541827632975764266045738923730793623653896170917379021003223925353256812064878001883479974992660114494506203686163141056644228582147591763441779440987088590417408207410829124747957094472646924355486353726893806169062108399363636448066421084552362501942860359292277334983438936279932462668954501710486098068341743054959922550274486220373203610643847054637130228137600019422923016420968586980837629726915314368261459121951828052253085739840925112240706900487122956836621682840365933885669494031129126728546899683540683821721829731379823812826744792688179687330061285157376281571213687794806658442337247417503937877736957762065611977419727351940050570216934007361890071286248715345102308627704670491835416485411261956334757982501820820160810084735024467528498387178568956900695119332910830013474387454394144532450223954930290806194779729953533609487547192382136648794720740814751588418065472678454002566438895965392800428266918030029923944466958998220100585528205799793516420854752596904618792893564757494778049757212792423591721261997163593482334882293918706571562950947707382669244361091575631014595115310576928268584178806821732227730299923815237313329583221683354945656802964209187383710040268674122219399216522831057464233706804798983070243668949138319666238904081946589191326542990792213945613513665982942469109287437080376087622965693822141043886655113140896437131607068385236035019693883765721454182034099937624210921208087684774425921175141575923833565400819459587003476052614184558511897621618082840018015222861471301892572545864310206214373378815352961520821572851127709279829859282614079424836263781068767942646491915128070442650002895802272819768455459958668232127767831121885235153203336934687374396049006786860524626504394936834791324532211413587240438635709142909573285207999393905820961733047456852084059301103689599809565647910032231496764322669915619167752478540372935067894170617686924405815651886926072876402422366853586431064190028654362154559144822204875364220137067246088489402350861258831308687126893467412803295599601028711864475568047910125856609185891296329369723392764566714303267620748623722882066490728487413531164751269323064154331772114164801733910385612386102328184175155872608950190332006050138412161037097367685875754179257615085999593891336374090226060499640375919411645540381119522190946709498173825481353643286049592006651068144480017053095627287338123107137383649545664123580094133055062066716676976997464950130696702407044730754314786002555608612597676747005228389358758760437134340509166577526506715375784845725607092043182809856241755030271689162457133587065306481011375603470494192599099096355513596071596614844364741941247240321831974987930913281773194715357630151187563985358673162782444934879411276610531466792698805469432938113120716927202265827662491038546038131401224207977618425266733478699058610740213651085508827402375335387501675684896960110812925638176078759457589370030736916859072219879477759790187624775254531834452703987570974191289531540258689679006503616763287897907466755195279278550225849602449562251020051745965515305006552568398187318463807468954847138782397231087010793133557920703351488824360338460378400903743908428912819291195047908597872933981308321218097461471735511063284807804062163014945887208804036547074944676113680354739691530590558917762142312542924224890070420083578157199662370254312432120292680959460889885958425481733896731630158219910081513647793703779819212865624319066419474827084844122176604637909631924568989181234710226079498337834443268796492196198456886676176047012231079166606318436939251584645006712478327369802625132961851858925051775607642720298316018320996539373836740033375629152913035857487958807277470597841567464612319484778210273011664833110056104639314557133726142149100530997390415467484215213320785132546459596449143811587642660519392588546784949337278119016399647051558141157024500532859752099021980529177808629103745269971626553680814774843889962738564761137030104865454450317478804485411525644969239613132194312197120075390156918679477159321989149258672469336299349728862844516281346928200354821698434404508848727198306237987823251542228488934074543874993178327257588434250398985878341056617119950965798310136766473457803493776482360052887214157023229267752325534481141689079956250563064663335353301992590565498182904859216013388023897433011323093306400873021748297125813347877956915814578627735186071577843837882782562941945416248655765035073488135799556304819544649302627799891435122435691973717540367004463410159976640817567634728235671677050050361096881116131210224416281832628435225345046905777718312768040777424466019712028714573028405531750539974124280630478271491634055640193145107004425993959293833288939954535618383945708815678147536382027506187207731077724519216849084860577878015208930429523625960618934971897589637217551249527627431759372185817864629256545515338866014436941928909675093670666629402477910169864824905243086661264621275891421709366580074652350270073573366540618274821153376607155112477474839495667678254490821850526022653322308185213901706952991271652732376171685311994403291078576603376110839995713122948062908232075634672912423959701387238552406562111664794407234725354134395004218938842150558803535867039839155347188228583507929105546661212813949200271415689199316406652887945369772949720400777901951607822809944389880283475517155565311351469108513560396676076110902207444897954282160436448449208270526708697434559738530837742769493577697608865265188071218283558081310447045156432352658998054524483956838411934651558240111705087853250509722166249727942255494615363428009323231465835840807299848999452778601769240676045903153592287197460262758809121398967294685227955129171874400247435389363981382401097914837629923938260789730576375775123363130610920525823863513755286965097616455793717876714384660077619462818556795767235842089007575226766157597178027056967490569453480818309979234097861732872192650948859112521855219428210216630706245440906991621902638170240314214318114111737326954643194798310321336939987239368810213672745973194159726471710949908252802322833736060979409865956907436784520683588941412480101139808010355550075233193771480225800512127129353890180635953897999711353194373640880657436323923676367711830192362854186413530017812151890254448696040747214133214640668021587666310555958996260969580929186270623873511477993396497603641015132536981568893115530893980221849450531656971598363642793299245526024387170200852501016804256571896361788082800198936907830724846728240774197269700479136715187484017912204861811444864332053991960665758253140878595700250415579220184026721989857055977777709323699390129886903423711207002138067398361127691237731789052097966869933388638484184399087093315792140368572456060582083149287316802477012884546575979754262184034933597534240542460987475462583935092511355202530195105462559689696778135930784479356036488629592879147835967171952747810572386610889700181121378691785779857641824006572656605102012803883226472192787077337095012933748793256471766257904079703846122704178234431442584012528436451733691866255137565169859640300443376490985503133772509009854360312951141744100602972020950969805996261592362811527614552668305602222228275828025097388747706266677765555078184099261191621498714992586506883289344796493204094228449953862976528670615784067361989276874363025838542059665528116610783049998445937247149878894616232123467267636897522104406708055053963865415866141005070727963394001469904711853866190755287625327119595180957584921420056671612331130645982166590167802306008340838657476364641859207701699542390936902518971999670328167849524259938746563475323213274713154848252575608525039918875940902278631630689330403543971581572674480870203016733661638847464428997612879646297226445217959908206560904929629438782530188526128768340048768264506024927541595028596794394322366597042831336692261383721645847044614101445008244536391577359074125895117494911606879075788455549652782058599011062648530689182573795374447262536490499078841545560607699747977861340097527474688925110601872744485210619955447998976312398993161223229880758372524574259300218813098085952901694131605481129412746256247438784953904098569530067612619117663921695113292148420762137802501566474496131756314131002629958331420259851640076801280685711412951385771397820497327545423702213113061866015188968941121092072152632074282852110682235135928141487597475750815918537990389128194268683687177483056050551430658680345326270214853547047828296083607618010140074228137386632697491483956849708146227641787938923955758805938005567120081147261116518116740590488008299194933729196556748564083397391566825358195331510876351611074458498192163519490025655479910005159082988427748449486503940787141431426065054303309543968455080419292730939502956676587079113263769081488850942584009218362366688889672376012121182716863599109182957574250812035243328849036387462741635382651992602477398826472120284091443502042888058375634034649849856367727292737954644500647742665201945485714298409739138795952756547081561534063392240495850785808445471598871540953103685353318501344064198560595613499708682939553954737545674812869544598513988097671875238030878918870557366514955111699445678254454067891539244290879283259234195809425590910305416184710749526117564752007275680917519833005534446341105783895260202973041180365922690222683334618161444366847357894148589797161941450081384363017842147390793080949090354615013738481038684697814601414428978520280239612237797925298456524863057020152835271263041448449611717742308706311973500943530125018611451586014688858040895940009129104412221647515717979771138060762317383490945521924436512408695521038468408556611135207533245255123655548387267522514030723426432889233966164732944499632714849576184196691605660395045871806689329168071841644083986743315740982714863959482192622429170834830529216485753870519474603364468085794405505060221440132806131324241350028606372142476748945096132633951707561049826290344747773529452879349015207538801127902074029738429711519587333789238413870263527684588541856353739081406406913510303492882114331798052676007060767070657003070792131779362591277951925838472337994078257462003723661530724188847442914071175909706662023898362630098837102730101540322372811740883648466116926121239976403760026365252830746493726517774881348687005898970133786418145660933504499590138198191080669624560609768131540842180134488404506799010583587949814020187621599360867618292579170369143148275806693795625774782498527545330988390500234102839329856111357470856617960520383080448987339294133988595963050625619860399973126164089952674625534616729002869689418267949733342582188515342652245483847496295386503309633965223132268152288570565821784393917837263951275276821642609366926414005284975679066988249762372165829678058116786017216598306558453607585386728729723371503490925903793699593121343051516813698744679395869600738743628573087080590529203741399389475025850403898340447495906721162280825032772117546605619188483610443119581794102061295913994751803092879610389250179393067527473043906618167946044957081254849786722519347569931462916019457848423869245928583653913109370618294786330134322936469721527477308544931448568115242494293357122540342475535225315655159104720211047802381100380382919170422885714263556140800717735269516755318478390286867399101214531218995037578237642729162762329820935549876436030503413559741736583726740148599241338882498669716112984290036345079294621730064352817820970603317723194719731921366152828415874586362301658053128393347415581609199944229455896374008642264360327690615413483948615508166296787670639079332406924456924937315446621560808279312723309822269041129620116156846102092268754195492999534933275244249211408434311231715801919827040681332344383440635091038320412871710586170854478094635083911122570242831323652359869855917461297718741521638334594228531448220663899407188142107062508794350654019486454789781392204460393628874535279149290792942839033580460426005039214675884872193982654169627257920458594570652963705073683296266037283584908139915062251227780288218910038747381245809890150794388285635955585627318461808574331457370501036275485323364446098094655643677566681359675032889599199781661509186684255377693493043390765683311997363669245697245688369172967879858363434953899250144920777646193380167320234364557629908579785150335174456879132848659404979198177761242891281755323637035273005965271636642713683820757993309964678850171279437950841142669891465946836235146470798441345556924947500191701958446483957204017105582665508482144744929354853177070331501657278073375417887815939706122167534076346036467367491564428075261802419730185043363733517555611036897654774590114003657855775575219675520587426718821259781504219873465104047975141089021998577688717253725208629120565578116140530701844804611178343246956784510687009743024382096269354378608231792339318589470416449739945359834945375748029188444478155380408666268574252554531405121539435396324704539559035261772148253962853596783054722744463059920864849776897457622813155198732311208433288373359515236100198889575122640161376767358816259580096651160010119370796917346714572904939087614486890828714311938446380949394341605339659902960753888198744090416921048100226244196133007018310079608022670880155457382267574601703048071120354794104308037681892805115469514761126292268563477966038730454434890687344444055041159768088811479345364727676642087893508783291440622773743161663171917452158146829742637809725114022620211012757386954779814747151479773621340103739323734979402754011452834545494109914754890818878997914792126378365534131468582073087769851184069994737344987901921569249032291829648719906197007314673340432283055127205150038546317257911338209511147473662778638429295922582584117010670658101670829142862762800100066921819466890338138168266016784413401683726728337064597289611320131344939765793182691860776342453822726978584316902160839491578887896497111524167324392370175264229159010448271861265085735046950265014376198088861595348191896715417298658982699715977734367500505138337055060359885547940541455291810404096768128493487364995987466168541962273097565884136984285055559850269302617412237615962076821533679869981023225776927441253184332527335897257600595433319520092821261308802020686028548849006059251379981398552229525749116118651790367757718159860066422777450677530405743681668079150563682198850080406971355750763303770059772815166451967753984747963063768743664983437757188670051584414644487955531500648269956214245414775986430218050072560608796978250250723147381689422226704850074617466858702198252477286894914832896217539312289640473224362583928945389128829216950920158095584874254402867972557246010416534220781709999586273930203392887322405257081317488651273281288225281154233902833108821985408210358018670297255621840612948228426197316377683182553670825152895340687756634673260593333229823413133685857264130527871009053351755417691406820716962636264500986619584417189262071545656837728956060739858956563036759878636577739049206133869591610579194916037674543570524626556435075851781898343660965541452156395059218352781800865539846044690581726634516719829129127126159919490643192203161389508494571242586372715277347890421966481766417986816074765656416572037701362944162850669903658091411501153149789531127316940006340404202517794743452229162065304692145472344703271591516407660389137229724604229289486760472532704436961383037982758537065124710929183236437183388206939032241651984776408276042983764267756762594484134830974753660106858135396016573443275615729860359300336864773981871927949350111520297874960842085301982075690397546830446372881389290658303208526884194930398397558800172072201554554372623319418801579369066706291482093190499225739407174580293962109391978687455093919478673439987366232768382934299065081681485805556633445648180287739220299826855036971403554435657466016167052577970347260683357673589020046378001737330576039745631704876788580864303678603202280422279136348779274614303120620901672568401898954469156691113115739219890757980084173888276268673044681887555484303949579525237471525669200027221016023115781470965111737041155816513607283593324673029276785206669181286054643157228356456331041241405348002744520923976074145681302724163744603656704342993204593975987184368227812600113636915659377078099205223730821306693805316826960075441947270145776090916034102366429065662852125251610998536175864316063251887310865004096600981946565094880783014624231254644618269410249442636106024749625956616532928994546361719173127798805894937435311366055117509803865510728187561124827540540524339643205791817357114888485138116372431662394657150452445646318823133567368839892907173140455398488782800515168728477844634880434677561003880974691432646506514780131047116799778413816606846021574173379657439679018986629805021184400631922605824482357032891694150434728803261335439765482130868545083540304581925406011574757509586914570467441645508972689021555703328920125912133145366202755671607825652818012941694504906277513250524711317874915312184699239244114905228257730390602538661227049848397985957561554732034213125852822188277981762919442651425278083856880869366378919779199476046758844496042577494662748522874442295758860818729611088285797455113452445095001148102393396731618564539057505869746030623330326451625977399137732341334074664729207620073668318890240876592690589962640850681823671052860472688788325932944009872880959011822580017381051701953876021997122850170848555185356279051835241517409234834723593443886879550842139102138771180194024112722630584799978024602605693425164136717705015429390387639088349798723794078885925056815387987223714584587328871161671454356723438870070233778132319382760764586993462095930226157296151458013690275722630565131498496701381151332845785618987734588514593962133223537753683040746311775336131951230573868912394885405191227485488352324914088926219992995810090515411318009232592610857694476996481013909156764437098551970591505204739031290420290952707288602873135641074718736963621527905506356071460870969616296256567929770145430838964040478825880949933204149515102430255491787982478132768356775235466801160112915162412888785249519697151031012025874946611499657179815266514227629441766320615393496193297909208064910026718104918292225616700757823851420922021345221169686691124399228967710547825557994158420190000593421758854303150835544582679042442729998907020650918433177655102540830519689737890583897582588913630915135912853333208945939486283389910684360035183074247443680955058820958214544554491610351888087708865475406233935818951424700911051577839360461931414601415488956978174236817910474016810750469189565233463659755686212175662745308262365821708143747172720882122630350472351850796101788532088207290878112864246655693859674435180102345347432969973946541879502380505736692043791070022908542626032554531029625575660165181859472213400172875721520526568394758473040285892919079902156289105198936804279995860507484754560102991685241128298101012390904542756458715888096131910367069901717175329337033594916433661355064497080563338381837245150692790805546445085410599522079165050191207276072612075941175512008425331171054061260916740903405698156846159520069996062854652440680555041066457424013735026435819488401389013948029245571386458247389514668995007447124023083522212280660279526575812044885319867149284010000173719561656633350556966393171963834272457984522043524318583054174714374546175721276504866692353428415775915663503533619365441304142261754552290259046136404644482262167048694680939917460002178085823661305293165930557979508956579571296627530572539162448278927564523037039191474033701228233983755997009797597007156962515383574444961963852592702226125788718074859319332451074602136718224857945004219853326269476548956890490733762432339435378769790030611856367408684080032592283414052808599077346327065310444348302391071650603581152350632786470033616625832628011009168295406008861805756065246833846708204576691800299544805001498683833548406538852707486395444540736504255412831258675927677884632002614205292272584041716674267723038437634831825567285772298197615027511414154379528866333165787519022780283427082386480952078642413669340878383357736255048615655438777360545070381684401438302997079902547565979309157291628440451746213359399516393764158993514325938098228245895298466596938709491338446194739808753183792231052310522347305580429061866251111755195729816488551024999083820256134121513921053614876467995980752594333357235859649182596452898435684622963476130301016922034823029354423604549350222026594175421199891866472289859044882528376491032257968329957643701541777371848794086353112622950381260276212208976395195466108838853213920978563725459372271299675630493766028847653353228995905315696910311202169254301404035657143082145289635755884865804358682205698901383670282073655768062024712906433041949700397828613522129662099341584920444730984389312650615981109530776089257672792973955835180831833343673563692176016362112687207939729831751238719980269310252370898996186783532385919524926571180620667328751736891533802169666627455640171816038569138372956274616822320781234402411690793631483760662337174047477834036158897408685186512910317839467956495259412839123693430978721118627766086426995263036154090217801255108928477604859647241053315518830160254744459518689885492023113819098166102441754845749762272352433972356106416621049509059439791007835903544553348696231027214114186307325628908460417688881443933326717793230007757609058103649533237474418666946187189585163863684365651796137559245719921274161474906902579078064141067713234649919375631552044122069773030126749651468562590103446290526651391949493056473046449844341497619547675898576760234052856308429010634048664239268451550291564184892004026816753071356404221259039849823616009960203661765497855872764018177959441990381173510131824245242666277915575217445369890715316544303944797317257791484323639783170534004719173626462075119692753526011885760019609747808831450495575857926755575989617273395895995113638289019035420334112339831858467708199077963652392739791076703645789186113474681172872249673136050463848279625450436632075150787831503711289454928830211485729707969876366059750982793281283891107885548269257020180702251939479982315974340767531045139384856626691892781523720293126570064580573361997472978059884043650700669166409213742986914424862976200616829491879562702182028353596931616183988114183403673511028872466127949824986165130207142195451589329349464705590923993807267071922016780240515774772212295772516257404335758065729070874064808726995444181247022784729129896293815903887118845131476413363585109430283099096053654930712244051910456860565960923200265215723266435817883829254070234145790674344718988319504969753310559872908797413133650288937004368882068176804316117298348430629063921179318494605071595194942422386406395067756425518584891133418372190093707550643026194823599742049836570699307260903636821610191851374150499024107085334082781898237312989710925438188446912716109440067716798998692509052875873976395798273664638211354204191401536723339428001660990863077198259333044505958871006354370052914136402829412269863616448453532159001291224175137413829202077769497444357667698283825018549921306467943099263949455639444497823769601161351459581957664805961265513522310932914296007504354522313660893838295872704286730556247813285076508757386217466935499389403409034968338229472522552727134005865958611446412610494807247011651560958550076241465892893385892788797155262442732852058006739922659368259505209918377551771418430117386838774524309384379559375948073343281884438805222603171536095964691386176544868659686500845046220013754414803008237091442180726848658695460250199225643580358298200082914397240012580281892524498950940531384260547120713986487636092875523784023225363938572763913522852756597167140803183904074704224362356234162413305631316115394192799807839863334815112738853383256521185540421286949772208332978253037844136545052316874109186539559166237956739669474257764618257236804746898982826243029490389132133832263898559968587232066137785736639118003345922874133312599128894002573237347481421213669108724721981104769724178546020611031603499699373705913714287978279184050743394083592722078608378718314558284715488128846632754949467446610905481991982310941086436914326414583303635749128528871134859830349672754368912438264388047964839493426918186415234353474487691068922903776686384091721253705081798407089594403965746940944971027263489984014772616163136159973583746910731923487385217374759306340619724325604240457970202866956257305842012193591272452060628145465315140212330847501755092162300127681934632331369364975338098474807144275003346990160642698310263492637014526837117829528891189325983192057493938231787418020625160189606765473950603650413713831687584968814744062018294507825023540240770063407230967712987101568240368438623373670392904052919105105285445924924921606880415388639847098056488738246038053536706024106798208496237249925957730035422634626922039445757453070372259624010556995331217319643883607905867895769395263680428483623155776793862306978423333809415621792579475427730379256759683222503023885225991354248644487002011027622087306203960609179678245031530670457625812961280828147352417675526726247338395898442404365093966231676063687852001316305775444977150799028993359091998627462254690485804453762434021654149341451252005416847162319686275775761946299864963711298905535391032444031508459329846910617781217731909310173270051651093411257868310832720181103219640274895163865966984105713796365724524659601187206076808210209536431934549474772894216996118457042628412369415177878877398548645993689203993832234193388942861506766722583419593820524681976542379416445686796109289265009096906247342568959291297204138822176544444393785866120806872132837228941883267402040411616237150482165257087635674240061644147884559450025491797298908782332378967976949106726903263763420796058796919818357182167898560586719949712901048589745344374028631176122025557641208501631757407058501945579277442292120949293428555708559655377039634848157903443354794328181781584557351794312452197737314671887106867905987813222454924661961102546922889212438547871260356436697363105799547425975275510068024112314375112470348376970782313421458103829268778179519751295121345509675949472035106100823444655156039331541870130396615862604265913760710552482444448329816142445826081653546648757742519130550014292183342110743498784904606043063837842962288635114839535707366429217903486825649038708401693594380124182970149424145745404235418579063053569452237268243305181075081069609142850479137733987120867051531341775255132078013198525812304992978824126477197264631845439727254338996096757726959773647193417282794439849969224136940108003720218004857411666965530014514734096642811951877357026995013678315244505186195906590330754568986819757221702983808232801503159778815644764564293362193766654771330589320991485878134331399466587038468878928984160537557243889451114158754053217984020979463121324822055181168355396325556963504880240196044311258219967209312607553422304524476853996877310886336584132656216711938355668393607019224767563435342459406958284047847611650822346516669463714730906227124240078350244641825375331741292833081944763274690097096481937925539745854081288737192890426309635883537033877744768177018277399933679031549346015461615708614397532260028323817520088415344816510951117569588268103473357749353960684963850169789080099348831164508734696864487065221008127938009531481690014837602030503845961565108615289249528776645906076829502939461622852107515167064744588486236852394671928705640000354348853400358865884644791381441377705550251411587212878448806005883371999389337162117522038168364031898150431247207051033299725868690954856881321337882932501260501172115972520421585338812604122606781927839959501291304144430950687264095750911585942130435816786139300740745144998780714247672407738244354529518191966487255272805088203078983649750075264038392143511200311036447049713350748717454284247632575529716274555069147844008035163496829069954072715161492611681209092167499773016067357349436004987248140816053656680685464818648737520824021632068803009880323801778577183619103541821934540869242184167123463879553206758298644165307113522725293247212324748724174766526032545168708293285039446513579090139475258400577074841658212891893331161006561012833971366608651918757195340832527629500576833007462036901631438682304688914923327320217119621914969250474725232078689785719042816016789080675894671719926563394913027711633111936124459803022158791027051404839791347737197995518126312876409979376540269502762517541635679817040855361042696792751365372267453606377926925213430600607936404049073739288807170468375696114761904554143399170024888346934410121991316659226509630177752385371343916980481166722613729219837517922311639153227765102219766971526942482624398649683625099067292166446353124519470387500545862365251502222070592241383981184201436652133025514619272363283041202932476596643834458102296374557382445235388993238306865504901907729756129229464198024894305682838272340310209416258470428942012336498388707750232051910296993209605296157829388126414620355266900870406387717676798148385402244288411939814453409452643515114934650871294958823840454482522431766471518967206235415484138010109435560732088039057991269487830426525175048835282636767544541239756044657315094074055531770199799009636691901740495930891387108395869546393498882509287313838868632607400567061090580935083169145305407978302853100245425112705739933214329426184502385385035673318142234791384297159982710363016294533736927255820980750991755415787312594608932459808713728449412857229976594160310011132088747677602537466231181298203127372388468266317023416454238389443728983318992116451936868665486572068851950544850378966951847957737684663369972403978730256977598355694182165885197082753795704987527319659959156232541228153615055601751306545250434674677569121666891483215329732274628864419510735169982185813186798013708863765795239792110162282789106642573564740718936753248244742962771310808880701124633289510459584049311230745946136575679414521243206356875983667456908942118882317910178176034350660392067997419433137272463221259063241907543685576199460604143607723176431767843179636657809035093120059711488612172480998861431626874052035398783630203162985471465259720377962951313508418594788741982044810326624870394939772124955547888785963022699697700132165429048754556563261925338027512949840786339079997236664624246609268160444580594324285738365185645171987196061900953706405500740460584355440196638321542257621042258982962270488422618973987031435828551889355753068548363004494791420324416655513826841939050288039214215804514862081343504459777726862321697138451235876751088679593847985285416047327027023437565876094893258512307632660310542172046059501226179966557820156140694146759752547968282279939057348906260412371663167547399436369876338847694836445169202642939646457695072685367161825557227272526510240652913873201087420866755167097008720814811804281074628627637416692283450731020357596018135834649347113904740581452639266591841690201545611119515680263017960892285041115881634307739501329837765434126924392695891326033247630495140034908433378857515842311351782744987275546630280603374406953718401849966613175545155898270649090187024446759066347896719041274582590481767310650449832806128400843613339716447858202849850292053934693176830632281907470415628822440830916130255263364584652995591006709577278519635411458738661505263050199320354149038051303457585916070793859415068127138809778070370391772943635028383970494160492209496360342568210767287604590331022757343610189885931267938736969791861578541322884515981581662629251288489289888936393798138290367424603086650069179672119144597473357962800840895699843393499373600711064699429427503753293273665479897904977900802488197115134965752048494803828988738726407452118182631428283501681144801332476581868425262307963764146292162976873411269971230075180818878641368863977359122284125699652723968673865945634583833122519204270062219749493229524001092807307762179585280678546913294635255368014876590430611305802546481550661666011940832884436506797916220173890602939831917933856415106288328343134167111474166364981521956054662093497485487336607184151955729508395994909331611536581670616379264784264281231117025223391593817452183692763104567710695936778961614447582603980127921514517825013506748345867426894338169797857983291105606606124152461843720288945719502684528561110521654533384240134280458909664286903588556009554514332730308492742733921740086331797080982741553732847432083473061778828526914131019486338317703832698418242690929087308227666583205648205860177467705892676149928513549266935893294232180834092397405822133828802147434150941695838142371547672151433448056154021361456265106694756778122202329451129071527352081460246757026608174114550448985237204003666337215643553938735706104964089443575220508755611299182872375926559176084124505324827171966861060104299195317708144222387173899417143479164217138648297753555539922855660581020966667561800393885539711514697134464868582216680472748345535447160068032431857108287446234143529444507761130674000785301125930402902231378523366561809292703616000803480830061864658400162979945687063899324863184201312522736632516621481920964276174115190950158538193987400924228958326106112142416031646532044622748217781819493171684061214034745214909087389799394532671239754862062653308851880486915363077641126282368528830415208134686424915217105354802648340309161846137646666119511166101238829287678290195481358406489223384314004021650297538845269467360449777114591841185012726071543049309722053357452924281230293985074282295101971663505162401504294593173399615462994291806177116068845752440506959936971376478001906146383178744345124405925184467345598191740640322698879600389021545830243815985680111403806403174448216579234879713545335481773164440390702090222811774193874952123312416305307775046755370076568416624304143140459811043289881155029643819034500793821994301623408351741942950620403338023977881827277908256553050616020873033428368716155741555119770189991813293333971265523850720298285475802076833582635234714764259982564572802172698142468679090823767374670681905012228379821789540655851167282357034511636636904073803035970602952261150355016492164436099092537935756231979169509273498168693949844420138595163816603292468002527617301357726121611854507632002737598106702491071772577784348706122486825142907573832439959582810742631511945172591338350553476024523227990054953767785263406918386485562506127471846299975386410650087984464519417104237636953306095828285048695169539979032900942566050471829546102998974409132691567357368870008409007159499038386963070261704564196478816986174164812579717519276362693537219564846997895250179826355802656096525940397437291287507902803252335431992643792414590464327622807773131058228028725892641122579625106715415832409027629027528788048823798722485315397580708320180599285657142688900187341602977217122984803764022661755044552077468165295957437911693951967942866250343372613484543025427453379581534175711350556458228254585646351212752172704231216982439377973621008453069906274201890369125924978058040949640976073519728608179854066990522136780041726840615163494010358799514315425793747942562008088397027348769218562814179618400734481679719597330066853755246761395053382576687753123667683122036596471049967066378152402967502930940766476644835073537352819305077140553780773294364870635956806657681929990865030457785861468423246798760071448642871915174188703359916706844897125765476177359744732644144132241083325024136819083450067344992097253132569910683380844115070578078630594216348009170930685120913327462376984583149702571420404411851815298902668187850112802764240879149991223904964248619479661122378607879492641025149548866876835190160679930566793112937451844483857740301330897329417158256582654088673231404331647633394455578651652949534783778196936525022999254218486979884470012368233045612249942431322794203252200903816242267997548264265599356814265180150797224183703388755262670384831415055682804763600650662672159701878592145579565398101669014351535400766508268376851499836392170350833654304215931822430390313988785177279127677610620912761087885690144337329822163894917957861030429656737908728998068623708700520783104338587312926275970793402658602800115876005414933560185296908400651184531996030867880004893281582597089555013209239239133580869084405996055174440262836553809697438004949470517073702125729234651299582972852201610443817106904981927028057818424157871496435534781967575939877431007671294970062490481471384847003169661450879082816529979956912993741960256063356524871732970342454756954024574371257582850079599547162809225263002038939851186178994462260066243134419966361328097249993683857935214886554241990014250154830530955614440826477586116402883434819001347083522474170246694780709277182364619469124916981020552800798779335553242578868186368922299699477100505990628179168738419024473205516440022607553680203771907248106363682880906938012835764249493303495119089770113239550784277386069682615117859135536698081155985995343360713638004802984129151170294258153042315082043804863753643159546515891164533800573565762433637629126390356744761389860182630273562716074356503833056020696645664898848208671251062017114813036394203890104480824459794664799532041612186453700124033720631150783584003378616194757192995872294139752182411639464840929111569464114766649178394289320472670708091812612209958409362113652461559468153997803968026887567547564940661633428769810079543706690367867371981453808934468277095532559851229502928278463148885047745630620713890428922581998782727731402646996923061131422522944965664764809819341055476021022157216628325173121870554128622141180089219308662883033281086443408743080910777896969434859522626947086986594557686978649753544795493444116573865825884364929234232857660066423970693938448243046984903773355897762920306101647681825052914894430873352897154934442397510908131494980644462045702183568822703601919128944318144770143528197859019722682815693474843204504411272902532065743581058722399952516040789351758194364839682263024128272373033675756554717406488447298234340682524405172349403329435999792721820960646966473999523222221564104549351589288276132573243660977134283721193929504730563913458970301563167799794114402649578426523830399072556650626714994683455131716030888958297988839965166206855111215407003361866664453731511916446834547132144022333535881090986923051789568216884820742591638602738898063494422693967787565857710426707173250753794813176609554267377944232318000198005035083079528521234028021811200066237367165127285007458696493643013807855418418891277835389526420840639225518153743827994479646191739301328478651915891175158019372834237066651040645741304641681874962984342469187212062520851841400540910131323099042784131158885550753706656973832690000931386826546367507917406260242408187811528207535511154925047349879857216834453659265161510660989285745318568673109678532008244170293430670772222449398399309320190918044904722050993795347562736475009369940331562772506067248213010226073730983310808713839062277607335112273203992887586331550835973543016741485501098560024970881946539576408654356734755436637366390213307777920644505879842315993347020943145269071513410209670034360252624264496146968970860652303148404459283839925450321663130179344669150516440311177738383976182560197232111894165965689957178695564002918077204968841105429002660892964775660876981906150083991805168687220479765818568398054402918156207111760938589642561688365493039913556422875582248428199398491823643673613371650695353112057748833702179574479162548356861920986850164253288979911702838671935501731476166055857745464005786495359043118803487617347024272440493802490807583863956067716007460001433079645310119834274091858984004058645755499326219131850732490927220084054733299870592891627329244414275356449266896859269139039561014420107694704925553791200157024810557739040660098080721529574344793593443364592450021669283720297812672545936196874013628563216696387140598555370020704995402778206235773344023845341325184154119489535257186823163821781534021136498568307395845889770629348336731529338191214393570642327639521156843397681660571201796511171541961713475855053179080716992393246592693423086622883823863062859824277112966540969815171455861956475005021356333337418959729344065281536300390498312209343827386178710477318239880328144618243888476438717493564343229909237674161024772441794473458463781256566506760012063330759868380499965366747640940897089115986229907148645488303380282518383999316167259177527414516091898357452544195917902017606165355067040622825613932921800905440355555020608663418707020856312282162578431294255414726146921191673743664160762676093452107126651040640439365906082773171626850195559106510183116862036344580473948611105412795646317199250157601714853084374009915730504121882720571631531271557503559952191247258447889311757801919495971326810828326296833189950711596945251044241890988764215530150756420108020748359267006927875212900931671018486113799250627928163114811433509797241601765900963866165880822227041675674079933943639504167815979919850038202525933954231073508872989836204179969038474984026019330051211152113759727419321851409429773655340524512182568207903240082330703765187674890190813886920475206607034721007357470819986394425801553277805889491413879563811053696220395245787199389635900741700580544968327918044986430828420587677006558163155983237165359154566367419333275743902602484739795030048411031613333992711539620949350066724935817270711309970021624355935733142477946427866503376781704914715005485396916470249319497522664029160693500240875973340847437544619800364828598249275425649341655826605909789361993945818967092580881789820370358365313345969870872227272484539994310025943260096809744983043259451834406883204456656105177588010026996958344136597345902485590198724553220214813370337097429438088009990723358821262403448158087482796979965195325607542019951918774346397219181580098101587507564498854706609536773571452293755660000748301316218608143867985101863354226193724251674563859007352653432405060873216129918330918500863211615666980214363235546895010600463299842627364711182039667783430733554188093793980388751003789246598267702471670697724468558943859924257201504502657551729235277798873479789868942504277859052413217605824593299452370060271044609471331118655804204320611838681488646064812028478945728176143480726714625689477143992939673261529108697417053724177463496372056544756520739492221307641058121493644178475932442309628353492074587350200487690453745664987063842468415277594140085834228405769479231910797005241245199643921717929112870977535498552990167248473980785445868409257725720903559850386197247549008015028248452070164702212504407504135209396983154897259284611443891690465354879466070311356348715828797072308452759054840926911001999024215321570868047212609575473526515299630249968636531074329647203172175478501808362322151214142336011552109241330047408510459465047645017166484246252064789656979377933628417800604804498479059301066964650867068105152117349174828534638118494791191146499845206712736257064464027107462890734385811866505203177745152730008075775872567363274402607112645166013465858158085130082723518613147796575290707684298654816568368047628880178896330441378091852874954330442373709130570157140826539141221052094825668559227934853246776025421181867755665878089327493329483214868298772710315501612816563904950631263620903350108459887928276506131568852530671856366592565333245021387132271069319422052127398433276335692448870143365972676629974876008203662295889097477050962158778434740390282311286349471785504307923589941387761398994537092918937356148981239916221456454302378844202854608943517268011922728669462436872081003535311966442714519678675878861039655551987207279588775496172794675946058943920610330814356853684202873024384642312678249579412174265235094946638748043440818547778825542426116765720226205493754342648827233214591724960060291826966079024323964624359997015930772010928648881519839181148590925258728073382153901722553017154791047770475891071215676037665454073793809620056010515205766212206680181700991208229618508073674873703244535342213283009796062792638143604916063526814271615279524012524682843342049510902857457811687834000320264220724787078856688229031178303195459429555838838012736114610166445887749227762707744506011998212166371501116734589705008414198187482127267825480733210866017462939920962966547831609193169351307868563530552126003860579587638165085596964271523382182959020621177263889926193905639684653537520625938626422595520215165969024361552971369104573816814171238788689521607271420947406458052320552340084157853924118184040341401200007524539230752020526939643109129094921098532058724178687751971077687401227582222049938632959397662296523211802750312219394085216817848373281485187696712056783250697076327552719869330405612909279261282770327209099046365450508963658831571810134969645222938666731128246902858824510729121904150216427226568230161550239611485754500366863191185121315024558290606676643118046912476198856686442069662419718201662024400920192653184989411590140099004694510847173929270651150558895915275394655230901052632952478414588981401396207586619419517808378454274151354501309924311974468657604089546874921489587616107201673952364042181348424414529670418680237722621645715923774718366697846150574522140129172460441280986750138192137402060460927008187337260528181804215805090248862358526325523676819503101312779820823052227248127856060185739047965264152100630644477119726820070693272073927212877999816096160375855111578311675012682555168287411137211866118123825859037589678959048532485448685118339904489165561873791676701092280333807153314516918772435547439345184594511738356635913012267684490745662250777259836171011424010185620188968805832272050536653350906545855311734354980205015614403851975351557067385065015618509951477475216115422170103527541649559726992916805891121374435534153651634410906103686708381313104742293705834439500284124613058128318954588997180770029204243610288907219340468353296262701827622198467105762391958578394003608817433154935034480866144840980867007539507556010817956518881975139977463746282357349839590205437500286452730216485655756982324009099025742102627073308499569996830315413697283059155408545980696720135224394075249205047121357630569861363871264257956448473686813646921401132083784556457499866555881486299382996827101196125422054916720145253477371457825142214985817669425046748639885747712593629830152432408051169486300018081825306421472488796725240594865148692992299066431829341426875882740610037529188101851755273930776512667518832610147202318280574363349583945749764930640158109162978499100207027731231598883860195652647989445467391900305729476828697633273291764530856840951114207242187350297148169449672208068437217534222926025701907178290858925796223245278985689654371039684878008812137014114715492026039954277507946859252305904584199887276278603960115688971896447137292637237639077596195305970288589571034261785184172211450447148083486179740770661976554775039989762780223904182049032424916749808147909436378408008809227173187957853278402913679107304020381483933966015454536950823950081831884232635673666360290154467420306608544675203688940469430833871732737279436710328360927589247321022024664031384463964106324647032749249695848223237843767258187040042508682679431437438818692945839113606194136231877925036128138051130881423542508593870236781365295884010355167493763788568832773439544901195539743412848075757666144112181472709857075579187343994619224805470008190254544567893792619732275172936928535061004819842534051472234307143871312777406320544589704386258384287419810465276954302685057620440034693041273181741956776682530832375919715185024760339558891285402630592614939373343771380743095908219335867767177252003602205753037543416174439440592891951882474492101782336740171918480729163962942939487616940998203060652828101503780192033176539668904408405401447711421148633541319680199244971780471569900689945117225502953026140067539916681046566887536389063403435745732170958795416369990101189677644314856700798457884873376255960057174772694781848577235137598953656276078230301799771270689622476025646575404365904995879044699377904146689115778759257563760325065719714574964433664192721269022335228211988215480568752660532786158998317172920070931161133634601755550089330904265671297597210493005779443205993788714970629069285105675482613416189197580729765111037049441025972997290895144606752748976706740273031630860132207385836893319965210492436750460130140039642635041660787346857932777554447322816513932546878820184130224415235646172288138404164050792660424757704991145664994423273484280604738002731410882921718211253586252048607600989075103221970667425433609988248213186421863692613295011928028240304041728438914548866705919084024719032478509457281712720520402044898524409125887933173073171793923005206360021522963772920390065471218823619123423568309064190782820634528600963801557523155077795549646636210963557316274355514066163511877320584540438987962169638848991632756933278873895022476273205853681241511596008257407283424489980287193277066926225350838276368594714787720750829900641895754313566841961213762473035158066060502382323485671920611638833886799440262425686344937234764218023094645918422282857060452816645442030707270789606342715709678847059908511704806351508178574689859651001361162427288869257810538196952502963254265132409579775690738404519530102378601995874311025496917284597600218472200079278466008820825124373228366724157749018695116087037971255660137874779568447352411096286869728339401281882786492226294336699162308095078127291187110150690912735112060940907593151278621456828534513346425543262882708948577640868545526472532123258488630012284094249725913293320304107413223123046266818536649738396014211287573566537836183080114077931669303178888859449262769313958091878944919033946064880368168109482058368601664651116115467437158587152655700406644458157306694393901757119755692884055677617895106408348336930816208980383742945821538161878272806493087475929841131526745865808159692669130269551742298929812578819976548794026336231536763257343170658550134954231626715163426730647896106694970274794102756730335555980032412736285195359117044336176641887520979247569890100294508571730690722092249851320031596788629371074521523725103763152148788270959212535003409037471860372679948100823483464211322264861291319804176441168327598451234878907963496967665552969216042696299217179152480505616630703501746016376413547743698896732914550426499685908140710329517230969599130822669093056499779281466026279637373267028390156096126783709418739234381790962848834119384481712822081603997077978959931042112353645485649016678514819479834012869221401149961981852681079542009125277039453168270116505723703424392043022724259139261566238660921518810875422459855187219777596679071638582911724500246762007529264392346313804032187534286435789331660048317544997163053787171138649308782315997109496674492553856227450499233017450363997514689688926989835579788329708280622182784547375670115183438654416770436804403363779267179281389610940831858214620122935282049837091275575242217853033927503657946026370147561108620529091795081442854898594718305917833240547203439417534847214261350171993718266091235667137752925643450927456507739681125100646089382898500013290247625054135767688608465286035359681531273109548899130258364351069246299586881308820648107347288286930701061616076782041832447224458574590280732486617652335159534749215933508173977154531990055386861697746066979373912757794090239310228369595908019394409380782009640533180315968004884913974729580099189016127821476820674278174262626668593258402653354292214315281640337862548648120586516936380172952011415864919372041117032751910629255945189496590831619314860793276911729569362850074420972541978769851199633283302032212125676580042490919764453927221710896966563436549426409688290745550972211093202389206079636412079197836595619793279659219602258275869149680972413306061379375440112990727987703337195517147082378900894945895658429977598537761202659625805656089092716847023006600271215239810307870719814728067683321680126251127323782264098111808089522722467850556990069346221925597170507278849343452808387806296917624780454018264045791323460291439709115597728685128555688835484134541476712736453231046151451955611695425308624434196542693803752901658190522288441604005142823118407809313600853442077339211229060525510968827012547492006370354534808458793560094198038980392962637073499609852414655222618005591420325985692519348738052815270056835509202213501310844315485013002218018560740796904310440228058500051678295127189618385740182578541466011609283752249342192245798985281572399153936842187843073949366600663217430349576762782022802155873989209430490166466205053168830519540904279574717439894838582198586976161760132168273721053724629108654114715728402616020986896919772738678581430907384391760401055423954274521888628622839904579136849026138049062555127636402790716487475175119158319570951840897341950178820476455698207497012939468188087930487235369421759018953429671113508374508907720296650318149678164421262774613838889355191660678946073713358815557852706448907426368396554734267132423509087071552320719179017628576617528148202833833627157810993303411117557040958975615313469974057196484661724094845817620182881989513969261534812308980244958881954694730942268429571508855032703871586442024059009286064533160533464870985301908538227568278981302873618834743048142218998380678188432578550667797768063499056729473974468265427416737539765445383545938721411219997640104979436172131334141664806866042820336601825284890233088604011147526440468185724167679065573353945600309879963838666678870845619587772358173791423225143849201418330938809664103727874235178405604472652232515596178502113842026761784950596685103694452109004161710838486583662092940324511712065886099635776526877097476090145247506279979900451904871599361298257530641657679491027834992124431397779251540257087450067717702555870618540972450234028928176474171253905406242043888122384130922553538501776360897947733153419118513262004041463748429158956882320115282938492747456739711591621888919392915396374403340941362228790673515075546102342083078202124442672497233018197954544283842275208824450387026087095572216208187341332955695049562740518321116051696470670864729338055898950752916901498880930100201606128098276940830728916662732338233405803432812410509518500384600127643184680608381593867772140361290054097448538884293671863525015828615617629261891764394937173236118211029412587926581147147452197687685720276534091301236081394994891750285463846963381828235124362320166249988152410116886152549616848890667330166074239417226846794277166208309373373050338709213165880229701881174150577370772096368042523291436820485333097154164628100036392464836446039672717766177716160434276152149449512375607348187792143912304261538289104703839368759208510919461692217274201236906677856007477273077561083042682184715351126914967311536947619597511850448314117152988478948716717968520693526923000333533421265284429970701224284534013962522724868748991244017418930763916576374694150745472729107529514979225631296671660494137738963636976330625028168864609248869656764434658633169823170244422658824144022553605128433425178754094431982660881966629889633294721294249354150833129930896459555449573021566860111335313067216511831043795329360112243817462414445905361602944033259511136328171897111426093923461670641433588627983181241777281049948298702310134196898017394019798666112613556970269035918840824234224230417825815697168540157241896386774364553856641945097392405628019505458964666170517018633507914691641605064672560951274932221267471201304802013695581157835578530638443677216215942502125681824800213500452478188018738962349605827764864419858102325230279592494997111098495887366196559398388084170981493432278376481922692604514523202652147929564242152295512382646790817972400915440124470315744234858782030323773636581576167602925253956898683569007970810751830250659069062591551837388924216444639176814974698362748609307311296918054968755298879883317290770237182962937836375428420027815280635273958110889903058758490921573908859388751965642496592989156973236985326955210674580875260262270163548684396090155530400391890912904403595665696896094462691847058387397902420164489031168368165998309054523583585809897961125161116263212173787595461673120089484474680220201140580310174117942688161806925971662526468377330787246510293672524094854803434900246976289984353131131525863918344380851789169706320779747937179422611096941639056044124073127353022850057007816735104987560807060126362782061009756724341994036659251700524261227323215837636273415874735690481656927448165045188324532360007510710207565766742294186836352806873150115248099153666851711926982936289432045563203989518374523930674384653826628488695627151455240453624878134573312670552705423461209298783898652481941641213598197229047155533039925230734198782234133094756602675125262674040448717538113982342200796557549899719116778060795491928068377992561519860758233901331048596207158244389836195018585422128125258312695179497191050231859890044207811864509931115595385440876441554501578365715163186089852135815889974695162281149129473085823051750554890318562848060955878298564684399426497451126817702438771649196548058712980842197361457664044049884389407087448939654240781687672672166530608872700085333552797064921580134845830855607533580318597093480576110784791218434948703177303085404099924306862025210845702609618566058692871179809786674040275243480653555621785190762145045306946476799424618133958793902873251804354414139864896970911067421491470504123390665754471261342458765331905263714400159856222856192053437803291583609351492539221985953277465763297529014475345222202387944863812305270200296601586519002404248034143428255693518052153502340878390553672254118410967083117769853442712448161738701331846310392758914211962542579778278493059716031410334834288846587946710319892260410046860213236496723440462281104058135208833066198385864983250605312438282900029673339721216820362876934188430866273605780552816814537333743150239396441316807116052146389708010509010915995744876122499002079336863421534902775649306546198666541685845690318786913206483319394193410363236918260184076488261751621914739061959896686726228665452015217367522378194467685815361195925975995409300340801650031073638446900278133496844572707723844765450271744871879088477155155128376324728302817940976498292897099781484117900912510291037746522912060599032208357534540404805336161532391668292504814456468712424883547856743388482475266552370187611105722645357259892359036221753785873096820883939722830433833320000737143612449401138640519612304444188636440179726448132119408506250346713705707278820761186193780958088294329122959848195215771149844080083745097956928250872155611499744404745664966168942904298409123969959324902845531024910972762334828125166893078641552937560330351766338146511223230330725635262166990109790200282714139320841342040455740061161196988386172939343712527965490615736243078692441404964265409317638139162246391466306211111429951770875400511978834815781848463348347941298337516938591280919618689340175986663848103446867036258750094520922996912291259296850912348686339897777840207121907530323030729014014116725853511819856664706785614372604318705989879273864333150812813990050650888698176046274148913300280896854162493582840871622141083035618401655093616641675801500089943861631391165283593080404294251248580713989656239713846505562330812345172627030290566754986741745396230785194836652438946149262023280311045573598024418484817018520823223559966070276974620116274241618555493251494717882740366782641260350027311156073592318215200160290501267352056515414563293174081206504615890389630617329086026109673993214649927740439501518778143265253361734353432913398119472317657283189885376772559716662617307990595079703602379231056339780959613228685863771050793464116454145725920056584901640150895187671706272254899915789863459742255391063934358308770500596861503161549372822367962297127050507158995198973374380153859235932345130765014877726217870513360323596911188725666247631219242785597539095818738723353303949887837976656876933442238658271658818858942039184969736917629824386887544932923749084161789184304072578041012232644319946584535021586887760894866573918479023508094806172290181190764404959783857616537805926118391314828024271263482867797930692647787833717100800545163383025978453090740666453603923895934610500560040026969950595056067030866804117623653194759763307752810650197759443342411975788609142725922938847638126657999406403677182704509564531374826890317987316248195992616348808265540528654071085979817890923206971492216343282727567032777608667024447843653252777502794093017253648664072430579731095885393752931492719885717828460707546673054188390760528942012743946578753545433661151036927098240305433363133682174025984262279972959999520310906348984689486953803524462526564212858563259150723937422968381743857642840997975991564448801442755607864514378031335952436421545689776447917741805285463613298952767724715824494281499293812786696497898321933119716970802832533185061212764167612771549651144015374689026208463715057695433093363401623625993271316381597328159926381557299845600212702046126660500172060007412137739841010348145690683708882280484938203889577895120883325711805299280469681336876382289698848183778666081733109176809725172956551091807723892047717893347940382922682169118939304873414987648816954470358277825196158472899358097116923182900983925141270356568340905051906626989735309893855052027071286158993142562499943901784307918665716748313079953757466936402052757623543936396032200133443947849158502437542171631233628513866913198538197470360531589717026676679905665618399128963618609110372960129576718154051879598625008880528711007422831676613827878571838661646761999147375589714768078777646978076371353357077774061158669145726587067840287168140610289936920736177328720865363531973264265963662894294584502802446347584886096157847590592954735090091331132451095057604402703019298667012597045178172822737054635105593469736014769099627938007029542919178181676361985214642600358937640956905562804372442322872655548325450176914989336427743303706160101154751757401519806866804949394996708153210354243584760765430948317487670181892727042406511137126781746466679008952341190990598742498289122414907531063290893700057108325597032793234035162469760396876224004672042829278370945956040991162270341152559307989651654837214862386461563408294640158576196741419773166580869108187151222215463957657169822050787305781535765086179748161707408259410943849021494437706335704573226911039363840014042888578040065521843286816796219076945245431477701450953730652240826290126115554137076126449458297350499434481727984895160840401155082044749262962249704568077716257876646806636761099661694923811626880829877222510443107230988674762471703731897538622959334230771454223786475745992158152031088888036806353958270361470446762531380616820630338452625001131078428819969835271698583541073772354699191446461599848650262777731733796273334623106785670419912554626905319130665515481068327520955024587846442694053548296948466149287279672161291847551692173461933141929063117749379059751187512056086548811062400482658406824207191510157638498529682443962062220837947937826107102526431569358872634651699055789574134750157052472128818497271654750891783728695903210514458015065181912740556365073833728702879653160528254778256391387747469786641765112534249223733689769315188862541923237057257098198226432300330560646450811790412847795801325472015983053366831714659846033845757288167821251400004441874968692703952431328670712447897454232082677678459794444740288031121120755050699287148472745394698547443147243846385107776996952196650995329390029166900349412453802793845402313276788787554985865931417516381756129152805018919526224838164061686906801766957025821921173973171005420188465243340903496083830078181800279023727369148685065968027147927700558905525959276379737738127871204254037911666482842278938343124584537681053523649992474776854350766282781726175868380662876179244877283403056540143931043978981373390330275375273264323199070738479760822161665192691542093306230059312959100369895177985737334388946351900050919490738113358129025460486555385549572945116574607872808286039766073554462829301534395134497474365221113144298723353020966007648687761584993829405476701092544104399825284361370063127400588753870173426682305036928001583792518832665145233269014247160806723887572062820454342645094131106143118921812648574965976086992802696559773058994637478493546885005982124957634617248115788879881843073914912029283162014824608734436141849555316749390744621598497527283737903811775346122743861776217656705746000707873065631202351659145173541280398336163478438130239442829976392382641979370970112526179139758108069716778415936124958140764259033654493622414691853001687380122581586669288406946698773560716197598838291992775079037202614290827210566321897196317408702654985018053107163631966922738115460149285905480896827444717515921399454156938710168179489161823485402525660753118446602623052703124640309313091110155101369577723034930449895853974245947422499660648778272047072544785184572617975956286309446886340639904313856742887283246489338253357627076254747801055829855734167350360046229841658095582466011722873983837006462092127735018174535147630841647218886971873338033809822269672632432724511538054949874612318399863048753553492578926349026478579421881760448523842266793224407359904194600086376399304688496268044303638631221088714771622494435677774234881539349033336410974983096058154609342623601229701452989715721511349272808282174813455865115258540912390541549340749117855744556988851777808143311378799023217198480567314543916925293320066957978935168397145454415624505103430954362541508095952270552140608023318675383841310287212279176887997098969787060072808317263457623062452082798775401671172564509330054108629999781766457698109331986856965896911370450136418283417853777315679726148718846497734927099254901707616791588271878316346067455331664784175279699965020597939972794538872218400976325067018008270457255723160244332297511392526157020058887436241886811025880303391055940410944518038257343377718560253358212397869891970077697869265428411135714180856385800903944933258446663448740628572021837846885580346168290875665638007933662814949581580621822317340750629607061886938613963062494123553592774972234562105284014459297944658716204892141237852860620286812773451959926380277814363809193446352952666652099897297846653998532309810558062598166658278480507031183767152243131488905442957680290706113301702554111514914216976892500624929092543052004637967368634507755950471427114361314559547264111339391079382710078247520016375552231135582417144392067399495289913587826369923060775025930558086381884456103109897930883719272806375814272290846057883888182464185733475550462960005889838863124727492931047236241561288910106636587180266773244844983431675079723585684486005151263252714234026571301049330377907019795022637253331562221202949271526652175045512879967328421863029250419317199433101631577921754537610291364328534608994345027181324550444168736530294576334558931906126731052285360607265036643187878635739092950221503837201197976597150870559091302216914465527725963627259696453269116509520529754772325500944187198816928464630128777996675839146655260143684367757152575762285215270871493738049625841622472055048415311974985782083691628646267397824643119614981828332135096644754084768235588751560313264963801197909740279296073998372846269423210914809068658161844879036958767143097830157593984885336723771693610519512015720557012773751714876771273611933431099756254716042764518686300194067447718511371958669686154299221600676854238621448896265221931828455209659385768853218128215886190698916241640107627640476271390638380206735282600258231662549322410355942504387086107950935085109816781779032351238386843925185391537646438708109707237042265031565743667329975675812493617342802405658881513196992597736706120201917076770147190970762708581722219813656712415017541891693598702660298007430358151387377475278488839164719067593277198150591131445729042483893510385747863270281450160668377967913098165876049887632837706222983326544456398826718698248376968496414480924132987663377661022099333269998251754774871105023328295295528502617361564752802958989787519399146313127045161094558480105203315937705798498070543942786501719179559437650232466754075783388482569138753359382474929126533516943288562951251787391711407411844701072918914350713146301113525118264423619703631342208497077711546329881024038050895214482395140055040781646118417970582330091382580015602397852271974280702963152499785869503753936231432988996858126183824134293043109528713032014302067321557022901333241906609345437962887033933765103675543106280860507899391612631375551005372585663320221137880449838278431661140790058007585130960520577433363685869444900654311022952848089812956803571313432771553642995268708465376849847089120736025815981365195634280049874048220471623019227979553290776174231712576767797417795851827153602594479572577872265892226843781618170086538634296262332755436411156981710188661827860240357541918356643930109237939666515616037783890734388418639621154003579821702989841970045486842968251676137671692533100818980160715333989297519019032582914555399471498557948076393465667463234093194875400877818776877032071204483295262256036190650461426285531234214482060246001173535145400021394822537105097650182634020664394305172968038678006927213180360834871421853841366833927672588622273250293818173097979342034756371981579868656726025885499747692654113977675329499123344220684403085034079235237350906714844511543731896868670542265946156125795255491988720618169634489125227779141422783881585740470962959830648838310093660364033047595178360765416626078523176338569411620888589076083419169781722401445556478019748276563318204701742228098529425492239613949661483206743975650439216458697134245768030933563924152727991712023514130411203298780823362283353659204712261907231605266338244384407881299683164755539865728661057521917818450810614142438756872869110892187116287903321830844059733708502819351513167953538062776003519098452880483682744943971941454375335009745032928495202799856097597744916169695021221898591698858544228030969699006789305207643096190042692417590139897823338582104716046331001602570948413098966917277130489946941262273378717607657247866227569071551928578365158997374304110248909158853296310100847617870243124596299241473156968399031932587531279117843817350410938827013059503840014677921185773444702881724900522470158403685618204881933494659045155480205778296619746820472639238412713688614181144408619006978451333858667198559950539419403995127037184804023719481670918230145753955725553280755363183409035626196662973531734567700699329492733437783585345383220758005385138264863389828218649814496864820309050380340923512288426841855407391637782933873628388591013607090573807790482491699619844210519346444026797013097094777813028409681498659762027247846773607687425889419513416715769277658402376772926326830339444452964930855375429624545273748845166021800561181132261988072619268501751927337776828489927458226414116011989631862741937063075036672360034584773835096513831854615766849042452898539851483763539726617315278560708276809320921740724211199215047237404646345733372853155277279679916708507888686953564344216091283555153199469789436104798704223381747130222685626364750409149281037986862771476315889981087530655652623929244368878536238328022534022788060495457184930017951951545039240092625929373370247695405970897640613004984666667319981855542760726149265815671035575471878658838155903703812459897875242369562569628577894692339926915379609141185398160121057668517301461276965332009060400348830935710267247387466457132931938269713631020043893622215122567817065420795525546835162498719610869179021087404830704688130143428985895179675900832420072120461005296355516924722065227312591707343951642268831488257036506913199128062319387142213926528472840072492818462322748659810044499605317232042275887274224464028610027274716427844404475779185912258249850936765420402627461026251125737328676739793932722190433905277560292387042604964071172924594482093877682850669480154500375130612633882645400809463720804293788713516960401482661777529959847740354846245953205089711518470547799749600835569538238692061490737562375486500748020318427952767210203664695192094349071578205857431171692745097509515556835242244045976140520529921693759687690492084419360583311680446782488801865683077494374366743756831093278720458911077072674397512878399797429522534358201753580953087378431979156233313202803618627818549374864282567869999176441043269490510947199719647795792112870905432353646847607837728711597834136934156854002028200841718848642106552592762868001272869930350965673096585047425405806190404674709287918675691380582496031397234277968727103274345783886252329392412501404026630805987090932637970651285278536047244246266281441255527846867911360651422164025146335637393905427536310176044725403950232131287233697072418183053300233670136752578591557631233455148362723804846729609569462290903671012525614120217140173237119095632608732486844227549261367486806252961966389394103711949105448688147003837775321107493660874007010884384437304973095377164639072381753039938920847243373638580889322446703923530212604119647972262862673139523780399084797075121138526745588701466838725010455165574829634015179542392669857281549518409893034550905104240788589342824944659574656668308916721341547108143335753565787897671677067019238045609786904782541032886287991623987874345008662894954740417963552150360756365183050224464581420331806755086767840338408913593557900767060305368810222592035487773753897626112495975665504066728252637594448579900944201116869658671778573175756560711438082826219361689301478280611854438337695220542303348126452734496884613486489448622916630480784603160266843341945233633484256471287468547760836614756632985405144941704911440216120093953244193863089737612812039957201296919728202587877529520083739091333714038246455192275748755281044615872348780418543869698801837221516080223845327526361597194178550126733935203724029518777135025882608612899140855713642204861752376801368004421914137080295585135060131494304092687878682056471650472425066724869510256292661666783308440237326731359288056785409411964891538607824041249269652057380199904487999751698092233190749303527735720245514470771765153755486269920862821439269698550520162827132682807593496428271259149364687478051640763193310748330533814248141307785717152809673170719475978031993952332682831462519685775676152250764158950572537837857806620475890215557279274589885473267435385083697500925192779170215437259519505618098411318980600458887171898392574094856712998325536509772850677800150618024514731695985516188330603016046995088801256798935782468521862538926685880827935178156889805318224437091542981889778837907998573390602801211420090971995680203423611140496260091294197254879179346766349361938825210816923656590744647554544462228879670020617524273964397917341140273119854727209687660230018629714904100774910759645908416314239200110099840761073626896702557821660007937463733198122510981290369785625181668939755409734983225697492365731271619923507441456759057360780947318790138950940765656365962654959717476279609829177801607951209630655085218999354269138205323218320687329900826205084575712378901345092503684407136317523268734760078691203291979966278023537253231517713109303499453835957727391485159892151446259461983335014307960550541072652406517115155208026052088793530362029960732088250340608500910199763750171917786887229212552321005606333994181422054373702598484801471280068326541391372894490208953252078321825619969498811795875467771732490934900675643647493403691066496618810462703663806770260756643165952513669470716835556562033926555348723689207768860323663282719026491471464372796027914146527905586266753566782087912841718949146175249441674901094751057336632500216756406968196662336879798426889982880836660659555666148686262471398092918343040280743591315023755350648877237764434119054621785269751022267563232321283647619046141952657606566816116283431612196760414010555869228158709811941164111319181584165505212626695413816791085729315075465925262351632617249455218082153266279240729446562367434862557339131932734942289409618989309496605152002545529097175202820491613756930230632070290645322198364978600818839797552207641966613178598292190542838790136410113006824863890557992406095193755827357127870077766753017021194537020059345733442662617180713666032993737290247287093473875636483007725928196290023568198785415226092371822631548180398084960267025863573834235434663944147282884394921958155309425382323703357115228969340361832632525428415661690369052278716209869526089028300046693175322722951092247201263916724164856557667533777158823919797590908559737980531163659736454760532726876956492886636292682427276888914514711361643297703699888863585177354643856118616314199074158669590186578203559654269265858792335544581135120955088167218508459038027299222328311295392023031332161745213037303983619784041195891491604393404221800616148447669801048783410870386947102738326992300708846655844144925615735302146523829634743208492098357638019283367189897204420547248267312363732020412657030681081960831583228494734896101894262008043309532925998766980143584701106381283794922211415405304321109430252377732682544874299592460674288389951687292297195702438867647468527281508399769523718874576103703893103363602214379361496423891165212384463603737840636766290710896217191863981839466275322052527751313841070874627493390796472296172233031400010585225393175236036065303980241163900427966877578353718842522324457758241647206898881510703750390767758568274956013565358007289630447550356866549308384717536266512876373114132919920075552372410472081023571725182094063171179548608165619190377912336368208388788732253676906161648116097454034512980570258624282475861584612404915887980738686236666533293406365703366023835539362363523475947240346143688777911944601827362915869917582289359938711172443977212631991887350400294905991813098218500452701043242333148203223539002214230112759405605217910431035319755401674160358801595890915487810019622745884730061650224551936165587716909931277607472947346893332516532598312209091252132107395572362858637802622229318772386757726987682567575404573940475560738085020608160356836765232711928760817032869268848674338974371192968931725708192542542749221942641525034565408918576128678533971934275663296873297442374847243412442153435821529984872193082458511526885858120190813895161054498640611691791928294703057440777554566257566100368172410228789504270550135655488808164503781709916600032269034154153307906486340330544179353596835422969843478209332045711342905097117921657581026992846039269966350361610710749216677440666115594044629167649443547354628690490648307997674944245471267272517166684300588804804371479276704737353885009905342295786076873126814834936907487692903495543344541439865934763675778806753659056811739635195347091342294281966144900262418695461389437859898433251352912312103156407428600410295720521498248768270641079819951647423743836425794711434792344734618453451096559944798192911122976475289379024394304098403796074985150459166439478731139731846590026960631810314404599826457514123159468566540087787140874127481117065766233066307532232842014506017855635647540422627310121281615969042703670261785736298656348900756525251887373066071816965751660800487003271997313568385887746898720755896634694490626085150844002817172507127526248598087209650143760648031495706113860316711392658897597788026255983974192072865079202472468003137561253061143481893085170481502056011144369122692861312880092227390502262374346513239847595062992896301468887236792925101736141261638897428824373121108688719155641600147957907863226054476414027476194686737798136115731813121830776508132413874530367787325923055420533995464298940054804193654430232296972245556535539522986955771317073566492793839063815178120812125071334573168580566486431836393582911320668280721014321109998714950803574949011235754297287938532866552075315727368343727168653579367380044142260544020016275554473780599437308421308948328930441643407171895854136435474007181972489256555498144734335254369752272860025496389854471135279181717058372609247807949808681855529470069191451196381304120615992268793358463422520641158472794772995681616427450032913036882753325879534499236333106000338003547035554681143749778065210084236581887755914793872081985053190232971284796222233079151588645717523144717368947399730516986687773471863888076320137225506263771580129017884286758267059035646507069264457855191297846549586220564927761559384293300222448272364624749931469808096479779409819845887789948678416825512233060656098338327420022506435837721001610630181820057436187978664702137011034006319630149726323632558851982931347680172594210262629590595836804265961995707311486407085136605090078350000247232293717871355435815606286755247571652197047148442823110696522353104635849331909423110388692303445906927688063756214874298912277830292126596607450007571258166840663990412504602740778912693717055935283873671400299569717433565832332898294240640192357949062531976970614190984521961576854304242756131887470411487151701187242301546325432543428486956458604261846554605751745197369232667759070354087603134184965693331167216396195061050292810375892797642292469848486466089820737199222614545951852790577062392161546156968018830026781370615225609511671486395485940464739751451831042714133464046219317432927094558378264924958482178773590329812695224490212541703840694074598840260245770368867815496672575313013278728017971596103769829929326686388602768320960317593635923434133497441312758986699366262755053523635500099730078086119804302316253717305135838774997382741891465092902218434059710162802946439039208869835018828240707106444106124013871838623688662087306803133452530127037439676443891022501157351384863614084009642995352331296726912973079568719584185257424677752838941836875320844547873426356776762550444817511959719032179153619321757418546827911885801590836336718221426037565404331542247997206434123905936832319384682927024267630748081837723900378455383556953034613511532138243231362588442539185989689321243353357433533528420142948727091465125275120537360617219721198619125092951087427157478947020302402268363233026088641278696059379085082004748901648261450313850821591340383692353450487280830313544273510060588651495686080523325220066032151202651391305152230952292564348439168588340157476694536536685003479493291656780512350512600796564978049999666179029562360138679102482735783479822597878335550569290786939698398774017722788411671267717896030117324639496331629319308738810309206646515077143585553870167182034183509576598635374156572309185905032738060639930769583370196036246752304470773808379844324316559418613896341003422843144175742795658925449187092360760303618380203892466094066182838350532514580993534034712415536006229750483553507163640360779025385648996795945059039674508021337854893337365982628963970335290974897999819815854761412361658235211547675405836417733110429742499511084055890626520885064401657279782782793202849799969222603536797799367678464968086510076770526296649458147633452255528036960522313180521395050629790070950567170659306559622649966440681324821608899465247512815916528728097493705856185896121686624706965224666905343829585578433196399370706094230759270543612975701261427349155015229000980263755349554764114421113589870185452577018296229452135223742415735295568723376740322252484337675004099866259870737862985290184447338036628795127339230970210959174745525799639985687966973929242806644863016677444236350747923158434982379890184558725920156641473931472523764166303915692966194931363400103615131393200142304518876622926406191925306105002002303779252981180150517096335659416445871025997005602468141812260821295655822202404389272427123264998409380136400416763073510858847458450806429080085901425041005609456756672228620787943607783868539299295766333445656322940558968181491627052334344213679319706010421637079845197016414278215418863222199090867552328896838395530162493891318293029910256853136281432146616089933688066540716964616490679092972084913792430174465018598328521289596972414226690259753775693580761504071631950803595104201005897781584332742446124416549479422069765861555283064345007999696547574348910275488754079155811543387563614575385404815039811271702248954343135584477668823101065550732106776470965769761092788936054554460360671816910128087726921702558771381929927469778900420262095527389674989617388263173204967419952989292422156448825074998212624731019949464496152537114883264360479287516528844671130974886287031467413680461630142494329986067957071654075765568431780805824061678890476101681257923503646682476408659418891212066356528177444910504119638774079213301958953546253442596997394751309087923283919682621247812573741544140563641932714998004501284514641253783910488217002859064018886201053330621510464177056608613009001283450037217594554682698190132923868209418975590586878624003465507206024080941070798132974099769727865545855662545064342972877871789551223857065366663132288433241574882304730667729800732668157223982713574217870914776725612159441586463611968851954260118371742091898554926047590140779961688595769855191153248726839526624599247748666883307548453941020918360555531089257742131656133438937677005121648379117912876788038676881398663619545952237933319249551406482985296464787106978846134817286909351299234212683596613227933590075427942736419335856606870514207954010560140765851095044863360884806579697670135746979016387703328616160079501329747101309825042807559306365266037100006868245565522520355143429840942861844900802910683013871182323362239541856872374363411829730181760959261088437935437347757522610705903250735138496810030092564625024458650998105133790974140702489499299860589245614142619556384164446821505418891908258104584435154262471515832158445139069490693415753688587393639681056616879356325112789736132628532252499108016663606464612461460558755483014383958924390499824340968797855223782106335552491181530650201744868577825343857136577315480462022959379648745715954518657808163384048705749587639373192608166858297707524396831889291754148190469524417058949893053683520469051950296475796000246192855084598134952728194280268254190194814315283159754742851687269144135759984235153456646206980279009907451196140343107009680706340374013781907714858305205258723253812050777284296666754305471389665308830101703883715167636063758769696273456724228138769260094526722402443657095635853100915900344093794086849768879532246676746071753491004013160248451201112069044973028300027348936249957099723116253303850263958732210148822896566660697643179894663200742772678905465088155963151329203831188027660414272729804980521578483308786116570037950401343884366242168339624596039566294944456889878561317068796793328467714780103783964579699054631770319941033755627085101449267037307749668950235121553016855944976604954695682992348944220089792859412378524727607648824360604790276832767138628770465995465303236354746007026581977894401457963909290018901005966132910102771521300418397468228742601674395804139788972993219206338882238452085095076409353005458819865947048366307664928477987996796333738224034426838729822205820172354151582544303761359237057832394450428830588075672246766448430966109655450617096889693254353624907748424352072291410459942819731528663319826744955586099977242242331333466317860454716964861582179543461877597315017835131173616798554100726640616733828431768451041921225686900192962104895505061963253433787673112583630458072744737634462101044335526005129040113363937163508626443888099967337203660666781527394097454343182129587720103959648662624413607974875103797570738083538037987989870737636882574400621776525910284747427343121154418479041738615518438049029614929116813738281925398946454016470844686912260058405258497261257543413333261393698433284543105283014078163594686076726178460476968476830019665574512131425528300797028496348728942975600140053626630873195653998147320888071421050654351194295468189740566053278067632013979428089807104581311178793067869012440916884591666940115849212949583481635435962168603880611567734362648423362817234369729232978253888346710895005030353245929032954431010549880090534198609912506714997462244180768914095052082933363829230916242574905023952713350881079872429174333620862456761856167401181854457054253963268623588278707344331563610727183932937216709966381873120531763534649267438788773028892473121890263534085301125507258114219009717642920851024075918923706240569489726287848203527111513642918149894351294827345144268035054621546548719098388350748796071660942206378599219965696647991534267751753252956118642033574780501207359993257587384049139907142798627746892496452254320691555481125230983493063436828576275014349462899658659444916141459837108355612955682293532353073404095075722443534613953404775101486232565732183714262724794454317906561369189473503127548802424355497609604899960998600364583923298656456513992513994108612708899517402618247578741904869364464394895203288109875975462645729448929746194166930099508867893581978750537383069572716112223428160611526583568276937451752882098496872735953577733813108591415512727774485315138134648016257615005447096780413561488576094436785796529636568129773739211429166898630039460458951646492545985406402854160169765465058357011526885556294410855305544035217808382760410185614886669126905918462293732265832298548557026732960688069242215338069043911999996388615768432588640385548974383917634852221812992827393681121971749186802022066752682475934406678653960039551097859756787254682303293347885519909321531008270431002803057627661781914090779390386844711404220261055791019355709112899293574854782912154331525322473761421295451701059999460376524147272129809134212919729502527215059697097104973631117570352292451456847859946413960396686179232010567924658768907987093922553811821543377125015417730550663280492660410632281795350220677703199051773177973812954737450360929204067429974302937787135549489516023060563557761226881052101833793369392331906440970470536723373821332624488641906265851651068475606832411952765078973717092595845416084839577776284813780810590743731188831285943430855028622161655402017045290005036619465383873118586292879193225368604376672201370806694359905663592074438789472625153820321698912266541768509188466606165232165739473372994718808391175294738921566009188463515322051566366443680475544412913155121601223092219232697349575163818160956212315217792641701378327093437271022958822855762107099900338336145797111762448685070341829774722928226108566337091971677237471496067158472517914153571751122159106937228046152568992388330059081607501134956913666699565280408845776967768739790254117414490884774395302042473644165550401173445919395468084021099384798697841904570711292416949330522888351404934433599324864621485587554313432152143974728525177219048744965360860958975900966723250361305918527783835449354618256396487276772353005062077244591574042330210286455958765384669864241919117101896399623607280447547930268537997436691511596120888392634027094599838234913455240626637816607903186577678470097869524832248447920567650172901574370534287251189338029182345710800381120530625415382823202188349506820627922174953143984585596573571132289095759765774720784541820147604207624722637928850124466643614572799935133326825561163635805339212359182155356291731713136678817220561333725218801780346558881933031493351699881828770250447382984705145180069299639299390879164014304695751447622585513207125976543907671927272399093224036849154884651740506096665196421916419387679562733601055044935760199991763872630835818031732821411030952857764331811396477033512964700999458385382586448557330837787446997188376262928661273434087799111436440345361581164564199450515842340919940831836144903522570842333873820601564813452160855682118568844900501564554690301172554884151720700487934032120658478419055777178506212665703006258557267763407050594398680932259258251971547254693044921605831103374528201899604773505833877842850283252626237571698782195109794268701095371233466122120876100193431382919260852116826868678488431084549832626809039920687578153403486695104960558171411474756668752863991059332973878265189824009726494278935503043736294153493308906177104120350298665648609559387488858175599969150888764292274177858802764930039911784805421775378615898035182087035685608953523594507655281746696475322640344744076145201872459908606121254395431675028742016034419737368458619225684581495936623344897563237185965844615523442333408536308018435573326550681240921246406152534730329951826209830767380298481323339499845720887796530538193115293543734428152235349375603065964532069868974900513185237190384817806208214783561482879720501364871089580344737735363568852462173224127591592638775974355725951710445068370006789331086722503182421308343807807279176063561478014883628607776217345584744692521048310909632616072628925124613714965962567390051984282824136324413910521213202565641148530192424348093931275732261605280752852958940879754248242943471199404772638167451203618982316724534585107857187091572152154263175500757141515825711678613044408984237777459735506290604348169225422325130929669078087320196195278377266382935790488187111580425272866070556633212727844074436879452107886497941426492645088769064496408723388093561732661784854406115539617896617451449774712520479535757953889631267621833739927087046295298990477287294983655942452553836893149030581424141885660409229400380656089689296215821859440658845228428481177911835988650083480232900322202016057211177931835545068071587758483748125500596674211874597993872678896590311796586609168186694942522680403531326453748503244708277538207885696830509003492734152437475150172620851677788024629634729922891645604364764719338033745846886072225764117381821395450704977460305609275547937486004050711520091838680131808564975245757050566978554123942668189857821938645385086632373081823403897519377832399575544394647213748776338387935755862370128708101158333788204250971390871350300420204674647682636487112470412021201317157266108435598001536244586182476248393516539104856851099290676374241150217466563326361844171019881320302169125449842170001950023438160841101769762192674832554822277860355887296788116902350438273692601074820747526463467910513337169088657168241941494473457233858762004259411759576056099472714618092806758270759815248669428260190899778594984973928364917917767114268266366943221540824589916125291765298033505491866138790780706071224278354420823486132263429747915337622549374017339206444865420950946326304661319217365094290658669339897556930686227109526072832539517202832944092571564507004917766649451043031119475720703382352896948642837000479864200736787552825228752946025679933290949857066465428250978966742487302472176701354197156375670152978717305290855902734297575352082547921225513792554199434914346955202370374747370999102589140680627591845148508644059965989256863462132772550249728078723086352164158861601903908485586440121005965261427572030984968658889187160901185019880813139427244077109804152877425749361741282412450223098966773253582692821423432259542485912783678966681471748350912911808379564595194367235351951475984167760671753157166292714140732276840980226330882804815755435074320314736264094272089663298974524416113317264368647003932817199915124029503723771171840134121624669435058137466248635063868248495175244733144866806256970159403579165252013363117427518949823669407211510897561897170454288255148000195072337187623434325985090710576108322876454402134107462629117465388169640169039379951414882097191942245107391050387488308814808371731477726561643021418395346398458523790472357710123726154206586570628154006779510670717557773144928172091558777791795350633516266408132183772301045799632539228919080170126837507172627232154527332948565241030264329838593598977785633428983476459772581327479833908200597957806152677879341727117453329853878250687418968212104430903424941625367348332050708081508624973977058389664302992417658212906186187288400928302402334565781261660873670932678594802358328431946056794811407509040598678605827340958063605792475063651533880026243132566666397906848118500798550550752761034883425791048523854860552298104078756600513170637444664085540493016505165798500753454401964155850383682941178748394222579423198792638147135400904296566021234303505731017319641801933914637946835441756131200447163014608846155745198009153547207122777503065885754827608322157532714331154147708924258913595678692100448731955588134194657914394946413481336563807418616068975156228657121568111063138411173752779328679018601029702480512649675825195325543650130120773794297556209997026025810983843900770392868584523456679402469222724144962159395366219933778765692512465843567814234716254178782482666656610183187896546123727431061169032405862782977032746896512741352256178792168361217848716404755858981433177437326966030230854125802925860101783436196934781436370113087630866426521983328374099365041443316054941907016812867977965094151400178083847268530748754337759080972616793682048685167496412340441443030339216827225047190358777034044795091798006264228565177315260658688041226004738274032694937426369636297599903426302813787033002613836523875410556629394960315443130020742676552355883401218626767553449273468954350478221209364896026795648959087211601566352580755445080639122455660368042897603664844331011527371035337019469673609825477623284442318657542885328955063909495497550771001813152461127592884753779167249295654949706958348375377328180376576766669340925439848463845981642848526710117602267726516490966629271014600997186794959292909457387310574880864283112117035482459348363578413586160255238998410369686448090037641577003745726994332358505313108794273321578242647272343070747508223717533498457776137244101840468034052142205486962639440837198274263308680352115115423424787113410005634673737271674696791210088760403818682312438664583694053833153508747679708996282373683020211042371159457341187508839114732782026679519103405553451261168148546235752079532846169383133809444231124797920462372317302723263286091116341076876269834380839163118663410552617793336804442401304161561083059517444514748644973053985677803851790106316052109399550283967888987586967317196198396131679792492476909430009668195084845742503296584940063790891980021748379923652400136628649352959790137431982203049559414475067453707959714829603939795609547588382371056926724672628064687860704405873792293281316765084161948724937920244806277258125881365817032772439131400463443965468159203722075369873764072512652299565154557331351313011170587522125521235287400868302898178596740946196277056034253202938665036635073709199661581163043301172691168914866228909110583101892276689131423500702100349295475126272687338178696253947510430790232441957641450681292667135162947599048300728606013594066415361681794591208453270946892725440039605253687276072850671278473471364290066859567194052130476260118557240153116175225659308472521811150222612099076121249994900662897779443778415083256077705376791637373773687858959239996896912829242135900462996466999665641631463453499567093155247428608242755487739081906349090549537672751064060924774008194787329483968370818407412574162320355036337301491553118855008246028448922469840419938783852911750796917961295603914164328009176522434469995930681650553723099026771871266736895022023230072466176671208044810106738375818407644118605617004871237907974916888357795699721868804017993670489590137558182967813121889771370144141115710059706381580639290934764867080294629836579963259336343930236485253989113257507290967639360559985461622290363012351441900210884435920484099146985266806670159233168195712325750874907459325241255499092615979362382960123319337819531814830304185105929114344900896901244335848332679533555652288065446147922210478679318877439573666192340896188293372049440513578898241729101437053582250391351358200870578780690198655103246506235563323472443158148492285127682328020615037710365532470081436081833546022710728796835475989103767888767494278611018706338287895410963659818288576403519841079818955732085496831696394038517333219338502854440043371749704547137419540834072490242122343276004525443318344702042693581895608470062670855009024836859955681007720421022114300942822942979827831724001928748249545701602834522277614760644904543865200583995592391069370870887381902599782119654538131496656617271722507675465755772072327083985882841790722325032142006203951824053068495030634985412854613551606581133374300680090055382595905097416128065696580630326610017239971416983880123838371218102292904490715586529315784235715141654814742022393673827252346036686863583633230751380019757393425628445154021102943956736905132805622223143764760906345603924849469623244662012648886501171988549038190706776454279067297823793849113594784851506804431326836615282319405084775290752551820325568144077798284133594773719921430685736620280281063787441125047267326201759816674918327379674979654786254655748220299393643083385667017109118844905275717595229920620188881482139777688124397892973058878225110192663503472673685063050335565808787274862491768962914370201568472844309717913175090699722815314515394106013077283693961956944701747821164760275930647105841788926253938968044871792205893417105776708825022023890796756130686354507239296331350032810988855114129245794726305256066125719885866472410305334707025415036092132032165196994566393183058083228006569015123556775034411180509062767673867859616364505784547561311121065081408968773236017579907969943591820497633844430238160892597250803212751065305919661225725751611947162106289062404285879090290256820975786728893414840714429948937363375581723652024827873013338894667402091189383729223739961727087494258044832749207729453042853686442752853462451394730741520384699424150019235058151782761994212896788840436120112161057422021364425898926113625640295071399057142866561529647866470794735380702340505912777649109010589157459769686309057471217284485664770828579319477279027268190937259634332987433181266103723623359171031822299388795891218629564913233781790049340948289394226095034640193541340970883519771655326511119461911297176807241301230191092224178718168776910285687969634996971512721550491257456725812647381466132619514847458272493486647866564465740377987869698416266531771406310935224491317832498756070161497494688706053548423039955832718706291264876301497374418784640522106508290732750811638281352682939143297196618839284940216772931072140746426329219004654330401551339182613058883405801375674945318463929058137326722550756023471371594794037135417852875806320936677112786971139834357354407788715954405184493587083195726420451419612864153732874079367782117071878461270726435555636730957547312153485191885894240331567111681534460648771758094488263637369922354509403828492907756568589728509176358897721660081015326807531512457760085576598048092260248057199025800863730479183908684789332648999731871476505223914760200343087516410750170281975623298039382988299436593352194350526980821179704101970403195444290553523818205342127363452399470294193280104870956825147738564705446945931916626062753531817185475982443051183317945547912939942751959455177892207933121948443399588844675411833274140104141358108021383582667544078439309331253696188707571022792096681041758883880937010039868880441416975953674259477538890937632179030371381319739092862183114027031681531979098605894815383518954295913571202054019919525279312520937275115610034501225142598814533276146160702173790015616930231424937811308351807053594525010669493171412214552474975233905358658183879371344935239810585409704919097092814980293064240368784064343054619056238969723437845179026821105776316080033677942362575375807222782396050737826335519304510543522094685840795072172286367269490583525548246822832724119212700831466933188908084767108432144084717738445446134158507060118355131280445349937187718462633769414098174756148163287119889837982343116016946602142889298800586352878019134217885823554043397752388292754303553423954301393637950158526376934006056308386182105202918119290412602978094361091163362430968303960105634229450243026970164820048954191469940633692233555848513799640841702998158361970806256138583729147505699282633733733915532607111047058703691761885222267134328278772809534700737472886003842950518575702427466566047803510954299729559300447073204455119841725025321151439527545708588118116505122564841832879753942763323442566213074913492693392962964016600591328493886817152384244236145563579509335300841036490325411308495616697767955099509643255300957601177763794789536795516421784324355220358435806245298628748809448792492115947975115406549361561296222177297189930150948410225041907475447991332795340338054382756150180643222162517674068627085401914090678524967514931588220146334694397216035820551703977939674964263645194092284600821562855408625662234601505400912919675329121615450854819856500836153480609063078109098727965538855007676892912643348461169278308291601898579577639917140046969281961799842173898523715118663824898034752206526628046460797917967728158228568324204711633128615639892661185214170461183628342695299085758466774186212958986673447516170532191872404007676428687630040878698547500362498881880369072520895402211190004572169516510870734364663858418177986211732320210700111978009922339642607675804001799551411481308718803222196226341046573570127785880556045638624742362291804977511466611439907251012623159071320966913275535216681751388214271261216762603383177578936589897213847281124547345931414954937438251035051220082908996942375424055855035539891761686311108862774712246812435563114189046712544156331904037057404224569635327384143542107571823666074656970279395918240069056048413087413210823405061953843541774406032401013141266925999018672668028019245583960829073998442423036256435325089011276653208099319756843337674236120059241561403869938370757032764939831989941555222272275031136077622788617614086755462486237758174206139625664681199787838662525296779975613919250632897391494853592604572511775161864568934490416913414077047525900954609068789429207446592485032860349908007792455788661087352928588579212410073531225120203986991674729319289200761701649895238234971599201412745088140081472156311866780421473034199137525441457110581779378294749494841533005956620591872891334373383073376866307868471641226036409386673623189315068606334160298797160142561364493961505479309271666852798849019972197600295869893108677657516351631469371800711086310808159821337802763654273172194080311347008957370409679396231128157145156345412049055598238944127990979339716310420870402639745481459725694391264555916697486483732175715824519429107849097064722351491512672049048316865507233012267226067149223487453367369137389944035390407687757009580548591504233012117441286927797222463948116503440205684028739600181224417963949372690551802649070544575485094257794939473725775802161764826295192952228995935585239375676304859142706832194967915281225509005338070210505083378515387062686712035950277463368013812022197030206590726561533086621436994661461366327379885977867816698288597466771491236427862106207799570098909453294533918660588992614897775058740186486405895171754036861131375019252556064627102134530383303829946413062331783877689640864247784891144235280347204635184046201692719445672221628027976125087713466305126987947681664238822843696614820672169853284457370853880492651475952706485874944651809966564212401840268346851222658402841793364413348838794463039502947827080969029347883300129359306180066275639029214349375418093909749133998293078895316792248815627529406468796590825195482200274727132109440883225660124337892519570845875093610391059138772172573642139364877531534689808052850622611341981765882147883487196551632283685156777456580591346384005160512000104927160215591584203039175310080259531742737453984831250271728146081575076588559576532133232316667704584584172373617733203231685765409645356326182054735287400281106118124502289154049337621687664711648678443810557073587312162889311158211846264565250793808470057096877170681352169384500093010099113706865657982967718923193090068937632271106492228947866839802853934393408223579902806009712677510052077713719333614474341339696259293875506710894703062957883283521406145868918213724453719950858821117957410565511210926688050943034583346210349420635482858525893227638671292222332936696842680424106110701401675306856902167856965590239914879707411124628702428131340402402178908126022660119262453732174262684578286986820503414889444160654949542305819508406020684190318567900299969341493803481758425899181010858587968073858751934957076563648545479221308023992020940742891570408204890004509446798261695598069964655932111244779522923523188599377574007388801642118581144179912047940672357003152917839334917599751093994935258299185141963138226948666593073904552709785222102543373927317623167335869199559895621578493480659009609039293258069630044004513150653030608734711437448786023731712501176750596624565080450047926060904491390858799398670363692062730912390813379675746575298622485556961084947176739987319616627055970795488209414564616092776754074932512251066677268378880065212445358026400483697161269943225017554432187460637868138296386403188255806807869682284538691102766392461416158562957522579431720470704385746754086281913427511774114190350767588680347836027356615575554950932901438776743342964727838878170459137991439499630180247504426637818809579020155649631645299672100790280213767170059151868240964902698064096316419532133972111342104417190023730727692806641050350855487625232606891540811160287479588600404113448208125525982052489012531312137329675549038988720593795283055035110258374698291722031372661133940444070418570306333257216484628104079366799758108257939150721392729278831985045990067537898371356331120083452039872757548912789055366450757714618101958287753980252126595562243325266242035644627299023034231282692891803102194502304068761702061649820189330547608510610106013936634124198540628970880010028160577998412583687511530932447607315190206506391625655707810947132738923867666251834454071437179529009057538308137399422581592843477782971514428578410171263699911949942556457885188388075957419111998655763727858047138602464723831183922490372138461040271764977754158413671007610416272611382565942162051695754605437202414725982493676006472180305886757711144998026433324041100899281657814195775588944329328894264295885286526506550589592882180031986651353179465880579061591877390660068507915606003031523497212490817724612263022639074225305551053723891906650665669990781800259802147883744929437755772381035467412530650735763044500606234781698014957416809417349547225203661166661585011205027948124693877878364453420550479142849168896619669788237073588958211577288545445610113282980019445300333519736343266776060893515834877252431818872663339524280610401087721049718794802482892091906624777230803362943344380681945358553764370415302950511718800839933815415330818539987502473379322031068706976748831888821586931084309095931498901774813621295352184079744864029411498080198815940447068950728813876607121823829397666809138114140376189276889958857188384201418287792631796639190548638195538138516245581184406199076152486372514040126625866392951180664721896813857882225559014260473112836759134061082495239860404224592063553306733116835219147035444772806102333273499684274349933915801919801994172210323890563846326588044939938068829613546454118594919753306279170997273147520145885065425441278838375350874199566452026763702397785995829422840129311226637753822567661264503944771279497338576144971642085727429402834282607336335228644301894681681861931586719445220762500565117348559326351217726866313232675940264155726548140333586334633329759872249459428663574344967212825796865423726601951388576261451395384334300067219362605836981242707313188997752061270323285788254604968686336533468828986809394486382292567812264351033384065253272455481896059865091132828465606579445523179310728653321636159829803787411246413588548954566118774559849677415967614881595201487453711619289179226402691860497650037219044431609719985578598235262178872027985119638223943113477120397115568263161795342230421959156973392828278500941016670382754727812054178901728905645259820406162796419682418175957498310004084950577894613348517430811735093001063295823199506062585924281564707409412926225083959388012771895284473636345781438649666185023227161804809464198839890698712143857776731326571725171488207836993676142414338306315806922151965840864446947012333143444247639418688354255299897560796218030889872687408218446008113372809195246109684099572054366761655001843124158981037243562475823718198155371688941435395530667539674111445430207713497177364764930445814263165020744592353598994279900321472768382759911338904137903726884452959670869905213510125694294433484649484346952414213620672454325608247932186144176396062769481536959651527189583110070018346362004046223379890258146167993452168501009334000703668614215897350959955632433321388155860611103117314298432676285240106959699016456143692919950318704819548145592404281776963577671837153908590373566671553277861190570411340262934028055090629795027618051664846469668625191226699623684391883110035735005190783233075759703326861471667819177235564819618046406331287844938076189480232801065540831735456656710223117101243519837840477012683126882709339162049100939344185881238506584078854548750967646368055068126884306678176155996567933872953138068126558027873911234929450330190226434715456192522589618620554644387525702166132243109962534793794493223747466348159110921708541145149891556724236431497283163510645867615236280892544725051771720058542364067031847432051631007596765172757986022705356963935001124853226483639377707121328645550756016907231078299944413959587918266331111940815604276293613412701577719530407449469280593544916012150821014007847439085466407182447705913350683567786110099531132803383459511198600910814913279366841413891439481926982732623112343335999459338702700689555823963204478662495032873593992231775798606363967643726670738403378197464920606647738371029681599615502362637740558600600007889561866185403866929204237833257733835229281675856706978360623081219001685725460179732270741408844263253762690917878968691189415384465771630676833786966393935962007856313841431272791238434174272404183532515764116078332380856710283910057398156809351844447441038809435872522532659276170895442024488133022420360820776703907995221175567589629124734882194096858794115455165829956482279397139716582676432203964219442013996228443282705279662051077226194016441243836662652095301444004871215715068315295285494294232063593645051905059165938389826929323847506127451122418682947486083192916318392867011484584627394438682814682206181074914079794829559679985125846191907568793153655468281583820597048934133442090284577095369085625049035992775045139852174898620016494266197335041202183509209209291026836813520791329958107447243736864907090290417798756690284439452495204898078839858888676441995430278296873275826632070302292420655819912547475735481127842473720882676934054211855833475083204129725467903541180140043396291282018860843950519176891304361172891937488834291075961168656748207522388007191064532767911604164910719199157780376841609940066760405067625384143644725159632904872466092764546813998241805321504296582393082917170971173146178627836030362288380908413860122986509508831091490196893977698993628443902846939576259494539962618736796170231860266911348258935014015718355139176597158304987951219763104312362363920451949249808349984355714487558677059197447080602880359199468486591301021954715792300362448643163689855242584881890446298282799703694981253993704515187717249862440365919011940545949567335893691054892128454819970454680189174597710552739823691854456805595528401924629699140442107535994296746770596176364979731034354381543855375306613602581729211032124579189842150388965505578444086429751311928439454397780586228101019930253996666748622536592769252482090709755600861578815279416977591150004772300952545298495829466639993474809766212948691860053030100293934252761211795659941540954080834730927290226049723667738586170421188491015635714383156532578293937990254885720221255850313773455487332929867609840312500171269270136556171714804409997037164093196165538320315564304981902668443528674799127343444056320468187686785618674750968191423545227721867266599783834993673834049926023288745387218616000055368670033597451020221012842595358319119953208033348873247498966456043228883051158761916693871407083419734194601291071452089796403342336817291662334773134385250681335514068132118637041375399365391441609296873320814504213310292788221664998036914655382184609192556451824493676399455847832227334373411174216210764040169699806170127556547412972873595685177062448178382718210415097322724983783265067059116400927882691814955083368954141667403289726156529377961908560300614913005502434587169181845930836817298982597824167664606940292396152245533469802568692536915729892751385700188304880899739516972067873104941944884034271495948465377037871366638335022681821034866212158226778739190897744992314998276702893308216102326576514014583143302734237457750242593399725742113052695236233564736834397669389181072285031812808475890778898829297607982404582499828932087752092825231665117286259144761719408117879574350533737135592742570014565649291350824715939664078878315747039038118407604492033957323389566398152600957536752857280435951423511004763656902552272997678841249300287626791176523689852226269912669259381540008764093458416253741057657316152492762023101830057182987664043913064686774752694097153139021839682424328728909160582543192769299554280497480882868929353080493251547499997700164225189246728025618961748538455119549207405993117271075083993855643290802354848880709620198659390516767474053496210120953405717328997028803618913170625958387748983223220020542682124504854601685228065238142246916579848723151845493583322558789139012485374539945269897170484624994887579345844643317340471679373370690749627252093882210574172035911021229545271979645705391142650612425103387903364053474939815506817202663483777363627271407154494638679949252173051357606384156035801129116263451563288770838438962321131288317508526359601566645278787120570602276334798094824805181116951189717185307031670999740608510670963162441246640590335484856714854804423375391324175995604237333517004368967546582568446218388701012060999257636692400361874676108874296510245130170595966873965395253260913051681543796315156410977363945423654737587692488407779043177490950051203980977104830857584817169635524398822116030947553904933949685143219962579902353158361612811062777373816615618671881772969886039852575717677602696303841706373206109598359303212635172232653215692901490238808878656576523486057742657540955528827573727676734022335138625912507199308607164570234867322938373968876514497956830460592990447963231137017824769681374818821490023157645958467276314489155694712092781187693056855273460868763751226562672481852619175363865400403334926972996239943174025802692712787503570292118032538522219934362402981209656506238423471604958025028699236396324405317941201796575056248408278284356407252136238029658815452440424340167683653616931166433414420785574503858510151673477229910239434267577792979298536634149977281987517926337985453198122055034174822302551880009594436828893543069048658985281667072529269678107838789256760225197602028685966559232763089533607795880046147499325984312499485517767601201472165388503826995875069531888112245891705054008452737981728478658700742394670110828625639551694834449205590083822844515765896482791684126554765868947678063448083511684110067236203239203471897988601004558783034665306317762930887567063679740335234326584384557100066322457535838111748013657819579042531818201315530138670070453709445178132013772130461004270075196774443788122778992270073159887098602728377941055219233789653672264131033650048737463576583411157753320682845529438044620013131920445345800091102827439933093803630271104197395685639838470599915042760697453166384041695774711179863352109441536518658609450522030976416043655169933137212374984480883005352384602203166809877331828224937253880358282632049163011925481467879207833114988418529511248490242810185290735521754209021212123384726877699667757930151227626324341661442898623433937253713461510006046473312620798619081499819666597008015355672563778872951548100271421199793878810298403186661196936964817813709608850784965593430462854485333887818363152172094005160089188294409731972456553186566510783958258925916563970091422607395562355289298057038964421125438930593671420901500418103734943531253513973681299412895332914586305336060372249102286556347796987624620994087756260952405170214423875954892830186733047659753066075526159784806193468891066804670844579725160842265297690909647477720264239280400649265018008820299027169394760911898907318503445913684219611076076084716417998261907707783882173515417561181918951676209469272439458696089148323768716313666551070354181413071628265447294865517880817966108200514737480889182208457978097285196324665380758602629331423310663184811927536061347433631861760124817838911593898490811741857654636919341628250785327614204122518235695977563254285665309150409644576445955792097517471329698656330471864337286167277234381044275361498947017584214197726045335188226280248962673738582366180836987481834492869796693804704101094235088228348634395183609731988805567139398624679076030765740323704225497874481821586686020330729482658630887124979638820071085421466788996096148829621631069937692662252251764920651535038898217803763451303457498976187432036720340740911770196637818465027009416271381410748897545044088192060526876721102780396362065059277281572959084742675512382993701026312053299076442229044740798226481948488441510536102108573217236866047332830268413506341628802130472711178118258018043906522268146255918476794468520303206023587673215593036594969821019272125833276415801435077345639665035159096481748544271024302852030457094324070028957101182651390433357353396637635306151914036784011694290065781291553191057040982966981569895682199197038544605046376990882980616979170070651635127701153075764688254863352278463331566889656976344007444118050856013739794777554239012724228303918303895312611525119039986083626090996463406704235626601522793042558032700388933311711641527926713118417822882838140866768287596870851311364223824815191462281094032202685476996290316334545857937284198883635816611240688524829492010256676923806532325756540700950166933385935636078511366829717701557203261011108123175197555472617844838868677042886331542399169475333605026824891407939045573903242259632858091475635747298752123885280492707522073082794800600044489928858457909443020598983717085612477808391397426628997623505314234246093488782175091894007953303523543288193420042847841511451934498404586293760861881341117503374799050146667448006281459087936542639476581016240250934018868776618480560286101633947288897304947858069976197692216504351326963946994524807200452340064898194714666628650868875089095384433329172718959782225174184865426492935146122075288786680092195302690178594215548831631448868347728535781580981652880396107989295531579509530333554822332921922194097037608121916640413143201910475030005314230406369538733949756511338853422498295546410404275773911854474367365339714971174098063719386057404327427769800201415925795713403259154463505851156018201470316498729218339495732985820091738888155714736316451221219318768266828783462051829721793207041003160381914768364864744970913808206512797578336261593888708771964560967360694331803510367507859540735727376241789498004087458810047156368539540127714551110026007536865469962593632912109127123186545799766052088438930629360897299237375219251894349249899754335363315362573597202301879812834295393911808392990475658104325486420146181095661796528669203538346430747389434779596356948861496759740752207854398598481898884954968853360329985241541988887492774017737953027790308437457857679907593516306779033468617883700330015691749764749625424411642732560471994991307169633334367384867090816146348450428788136225583014635302908844028260391754794069392632584061951289292265859767932511887329312843893984864755469786192050111761139029841315612039792406334528841610119697699051364843295503107643283861248700876995842374024353565657345051111382757267096795035222854324437282882216320544939909621359107598878461189753523140614170862274840229026574618542245219586247699975929591915752926088852702026338257787930843937509944507129452788676959863513036778109220846898681439355867310342774370443660750429100488607874593072189799219775610271431503440254876013392371323118856214032401868782723303895292204115706904842171507433074326289888232089000030077252014661495226340302976589432511574836443414138411428258827609368307980312732797687821051957718900437835335779860331838209612350664914322726089510414900951009948131532816529202100710256460382459178880012057904475084289307575236125015301898211698019137384373844927841481916301997327847534464480747479169975676440787835143816013306426382915481753576819138348530295648401614090210255868430516846192518527535551161346151546178051450560525131318210469836683645140719590694478912738917968347739797459668625603487587374744443748212568946287394988718239155140741270116427408052111627208926074924089225081376946568157524920827603232213066120006154858885288344627499412924203791259859017122567220295854245767115847565037722523416491401006384486856587264167804610365963193466508208777864254872233049048125377716188264589755594065733264363078429715473747006257778775008479890111685289335680696026160732546484149105521940647116045355671808079163495576164809266327432869054478321302580486682730632800217880849887443845596767714270202422494540855414683415999614639410134060412133368925828771985405002228722214474549760723340328110664041535723788585941543289931161347789702416680021722162968854059096850878680996435267753611127757564220060173600433614713246638758711629580864239274989055557082107529395520869761455054600575921940258092773909994910639203981853847735583449541823680044299823899640186944039268003367218539120976986256271025554356143127723869572558933422673135034036474956192063045845750711576791542048355088350065498596269376856600504083572970601405779233366008617934035471344246537085744389306603950348539747053259883288423036235713590307568456802396853645997034369258224135957752170922428033922200035759149715187467263465381059782440280306440391155268574515851386164286308042013708388218238993937336403007350807093497664687449857130456330697565957945772695491106639257626649348399303452117006707770825827455538733967219361563758380382266873486955021159378078074042077167637151297339259900964093813984018409545166564634450619770827446934503811290605090769866590264493192636461956272518865023422863138746833488285548495391363326946793607907532629280649049875405010917753297192645180769252802606732458811239522626731180917733183434612027428184743513863420796167347101527467516999514539142817919523332760066203857167007755362917344809435242000819608854330334010998175728691322802844060923076209091677074969989550473858497237953930468120839080093281683971704871413257502185537274146393805591784998990540490063145721689542360865295666479264803182255469689885828888667000351553974750985845917313277022726720739089633394752117218113048024506832750956583483795681355754690080189602595235254525095954123469276253492854538634102341722645127295333949073063671435589295006175037905418699751002054057002323584644893195996263218455348777289290128331015789546357554357291666114088228100456298086825819472945978361821007174675564305627951779756957661447555009960144586690740949861204735425137757952312709641669621523265249283842459403778232020865394646788395807577845574484359387171576011001583785403417443219197197347839419302783083017304192977008219283552101657465990181785979527405913907401694219465822957003492460483536656069485096657920789395652937253169823691248653336253293719893528461945299220579052063630715054682531209288345027239634757081888723549950949215476801968758213906748959124855656693146715618004947341193512937144669776495512742022611780350954771861109377355703771004638266347668907620828401752129393461013239511229875650963136751052945225975195812654009416278109289506215170487190355574676219294297670155975560410422841745832001975103684432437919918063697078717306071793723850166482735832141952482927514758991503672972117178046250890932417342593702897711155426557261090082272908955379008720770559763306471515434662325451025989058064493614900058390917567533486122381776341226601207104118350572365975970234598288491149770636563277071166592518962810796597562663155495536448742282069074383266421357290695228493656989340502627425356555941690101676338107631454416912963963099320245266883684935389417675728401019408363277623196647625717472104409663066019881356194292625961544039657721274795105159099685443086763567828901505563009287573779422160716941772365288298186996640674908014162854513609557197899716833846125566935747637441565876848291574843161988960506505190262027588387000520045553041845518300771347042874920085582164797817358507149842979762581869072362789374084285281767814186874992155261757114644329430007848763217547763590443923833849933869006116629175893622562424233003982505170208528002354700936116013536461783675773605904284621940066762468262690472937535765344895188555497372789183599455291227536481563195330986029131706375630962673322155451517805670904889863799595539841158869536615862563741332636198495180093629049701646546350054802515329475086209968951708864681829636662151594156782729685264260207704727462631461701224317363107464756779181463017037283010785219170455556245299131098186359578788905767705434041007225525525170738574200220727553655162207067461013448968434213957115557539680507928670066495077236807044054446793186356139442394426841749381689345823654937570633452116948998860993933494492009767655107107556210551713331747447749341950567985984324683148693441411182181079820452457167879371665803970710852360230364107932578151210270037071598967168316011818009374549524340869289019598253402447489374413889160655055598291090419532249766279438148380369515854713978094144018420424886530492096214465435692049746615738469617126434262902500826992121004962583702088640214720217692253731800283014765005376344808371668021750629429911974180623168916582366572057347330718024779843562327329025659795018837062318941905945463298048150625143560984395387583040010646801628090490689311277107066700409294599437076003329622902478685696396513296359608217152845004840032571320894654920979411232347986544878724821518833872243456240707161352157977070003380806437633211406151361355180546102052468125820924693029806151878409026685431526506762090948006623709578633937347975756998991647035722133651739430803867763819409476130616237469081485295558844207153330400228012268738822012701781569854584476190424344620188067572930266019152669421682169380900771714334556913244348261824605011695241994628820468999761104004197968715576723673315149028626485519855723703356232065864559324688525750434814715091392795197550967725469303052795339640357886180115237452101264278775113623278416856042193428975728941739421405747576445970015572156724014521895160842884410686823378781562412782897993976750539655878256472382505444924788912933519918966241908070002963953334617358218974510210485892266225033080858306621490953408398427459297745239296250728487170005809175887866331287705064762905140566501658754016039345551862174352484403459203172498892306495448259739357900223374666067655856704160285318079466271420678798905314152635343925103918764086700971297991916670534175154712252820871249201974129817831479398840150968652347828153016739564957371655560480017831546805806734804958645764231522739353798524352938370064641433801287501052083830133614593124976639838816407661166665312347437878175296261777422001599136050405117710186568089527349599634051681942559612554976261402870943550670242971311589190161451606490422610643767555746943329993538581145227194566511234837834541773827628058082342009402946069650538951461397194217620819306335767238408574816566002892516509027570967036016676514411058020415142887571360901785332637758345100833120431460797780942623156148582375569254126854554236337768515467852599176449373710777566244212413052773205832231301586575015125037086962813850076721192621030946137049936633762139651100453838389469957923956570347974330538366741439804201351375421270981526138387301146446822263890154418848366360121916131937616999813950182532823107137428752907614047926641871887554289801665585877039182502885170843434274705128914314407227686222741513898278653381675650533354816669414614718736938812572617361970166025484545614938455670094123153743587368290206419163872799968180988502442150215037331376779372739619968679603604789246452666960814557291267630988100942539763600177981225662581646066916708725445265528858503501829295711285597769007544949609036480320952498885728087386899913778300052243149723528129738624396194724694470037399593290351964998925622552937007362371825203750234734386993684457497042195926822205346469043324764506480798970174052738786738087099195484230517742521634434322018402154486355389416829167928809655476168837025270948997248608615228678741593521595109094280981380268675041469668004419230170793901907053688397933745738564461014658912805693494623592808767837072570731621120482888999902224448232842736147357603194014164428899854453789566705175935869563275614266275376062980359464631703879031250758785964343378486433301660685334314989801125504069894751000996423985192872827433850360847504188667291548064111446366866860764919391085956535542873568898985469297264576216762908299294712935415029629004603789111931623297008983177523640288592796061851912959008037757566189590509651690632127892173424440551108932023047100252597366480782554448878530950182054085413318045347887375901910549826211549179571313007711579009990447212158093652235949357802517699759742175863522797229363812576047839114001837093502713700686505171262700833504002736298602686730611347332678793783794621087746395325025135566936871519454177342846871490142587703326936004842931191834647134989911473090666637649686277971646026932092177445416107536255497274936082634243601209411515685495463901722757867892304073967350561409127827936461036662623889649984682747184808144403773314449633036311832925303041836604336263074690289461382693682900095550266083834875910717661336208257462363673305031530848928688223550400271397501913420400395371291582125245413255855392051816360002718210906956231067495495422267973861698758294158083730554476001178139560937207884211465109547613860059585460367479113492538759001986213137078785388768330125617956161974585199230973780967672523841528926879814824303409669913806581297258553136088444750722913723903484909001575900057661372505145851619170436446484878413560931731274520746666738100332864683425249537246878700629993035564350424390660985773627091150169073019551614722265982626637362298469393036689708358449675272454429306127139384309183792747805753261093252588385778108510957700741417956381042297191205529753493249287335132873622003019831002817901658779346833289070183357005534817005634738965058272081151951136785653458554075294434527928761352956317448588088861744261387555351457185070186917643218915452567248291194050002607598383278835339916599953639783842429167451762452684430710658817088597751164430535148944769341921478686576445433708442016214081342765051396370868971570281394848673367786894237638028353200215852472904491709869684313854034135962902592498031622974144700187642660630278890866658896097495003366803261024265932086001518890393934262633574894520978306716118202480154326021736192921307803601298302269332213442649034804722424767176679952081406266578561825528643877676201486981454027479598372265820393636638193567995410245520944031146311982184127388165052557548477078141522140073274900366876785134826360103249756208266395396543924189185942721807821530035117164828615070607978972292101746272136083020034552544448027164823383327402901716471118052550209641676058158194978077647051129662829406064822541330816008154785033715021702178800070931485425115544082948922646326181961151830546180535989501862954582563769510281318422101341185988439036148488634016467870613589773231216479025074746578678247731895267740461654649702879392121610467863825885072099155059869727918214359432620364500641526116088615373923291817447363102178727526270660208903932882548925347240398070627028806173903383962767294112856139786630973106127418606485225026126536332810800850754881454598322587232404118986143407297541958042714117119231246477346456638324785908163190303144255768150044138397281251613783306353293605335073615757135137894765541020222584729400024617550243575585527122026242577381248751888602992091907916347730746328217373131096416640548607725308292587922893792040812387152381176801395872956633375382696712410872042386376520218570057180753352805146668810904024495296399083321419822104363723355475845211653104721518689891416520501908639810872146473312601223349233170305573358308909278526057346793075589263392825018272754525116259591668847613824637426071359206022050296431983671093302925325470404460358311321472920615474002773723426427346820180369067517778263382413578624405541632067119564638394960940401630833110181353250522820289810348681621286473404534071758008184224220132291576392649407558896441174192579697889353030526165444710944337221987786571630351489913892264926749880577821267304327974201487421397308174577656737448070795302212932733829100493300287902913768701630192926368175172770153472482482795853017772957136373464830808174773382163940842663027994802857423606726363862664725958395066645727540048102487653178007355298366980505213446084706317065175539882316190327045626538216985943091686603346804736430329164872587011832752451045829765725085539660577896370265726087643371294322625448573113731102169931946141887375723531398623320401084504537180241478431553763977421834011716768710253669099759330384285409392277567504415310786152075259666513658619058659767069473259489475045420491876556555818557701671591837551021446883668722110498406843134983745680654899736770340233749268160172048602725482395912595879261075870752575171622241811821164013426350003892432376629082524171041849313242445641024987073256413811499130173298314402279562234258229676756762050623900112770752205026682967588371371220604309254130369879459053217552658086493495630269405215742160384285993826721600758755159198978422531236560403531906591199162412779685408399884597468518435736424833635353837324915022094507239697878933975810859960922580955182155704882487061222807888365040353524649007996239108274544329233313529608103013976963478752309436621761834715359604079340407523004745247812406225500323054405255807547491130283155693516445443958337589221404744812623284256493660188932399771409876083954759898507155551575857501757603337858588444711364677650764717301074740980851524519927440494844618096922567843285699550963860929600611950307786606325536513133001669581723946068682765891242556740089814587862613557164939209287810134597557412379691147103176739510664727388532023714917226256243380344356578338414081104718917314887797766349519385272392465584047995288166447343706823725920048127990703675386381697119913961680166602326603926823853507572860621315454983690646764531506295138923175548258308282331457714948535790304338403394106106251098290000527311758011835052874517420394366445386407191746829542222680096429402321382111889127737160200401151059313516086991257216493034226111914113320819678018662114819154883289225323938989284564910369889528232058594330363779773904664683676044948888575577552412818781123373569485308800102874772305818539463921250225320411244357137908333902287755797003364944816816169491525314901723917258729743156558156999024812308470058090126730919764612945577840082194263912238764622652007979600601986187899175502606085020565819357202913301794392635614710573273201206928447661697942036231634774090704662835747728667460471928452149778454848941766341033353129950168371695678189478641259534691280418882956781773642663710454059532287746800300658411049238040509180981894572448950188940291639878224497696278064875438759042355393152050904702705632400226882210835602736332585722766582906502793146684099996975510176889184377382111734819463541059854919291261929716908395663143888434561653088743805208298198421273952111599630934999869581926870210099124971541569326987873710816461438557976738245526451082917747690858672418477410254253340177775744404424434238096289109900974901463852218529035395700291194559012475031492408716932730179981932791324687942277036874885838342274292550414974572132588564422447920048726996998347256274363436210387459135064661758899750449278153532933839613300514594117340942007302812195601052028279230182817968441356761213622186887948484664486404404432261255102129248478304757782155569266746069156965425408563332374683823913717029420800049827459206004615855099465866180876161531711608107971039985285638952226654052440113670140205813032841665618565864233481085756207722425678400246386570883027855461634105242600524070384132068984265043338439545271423613925736824839402806175306665154860829832800522274675355156891481084346940776892397856192008371226470744361253035969270823268697328699817482413998683694580947945123865669982215433883503642326950093476725483654479251297612781282924939608299350803491130177275800884951224580781930507535823240936226423095239023990794384575621785824167055871626932392921635970686798134821480455883414541746190189778613670702795624491905089026536704953036591070896406879547156553347031327123704276469833293917218717258949962043363235303515454379614686510605436884345571246105873943708912196627005077733098741625962629176561239532561186107402960094661385690534448443426123426517086612896370645273806770870231457516855790803449034611524262632137472025289254254194414446101123225038882683454941865015256989629565614981446034008725069476006564974562814121448521224847366207847146895592956718889891388426075633811197068744261299610066119281599507956936578745468468236999123202666298932857673300931604035200837542281815530898984915419729245590336329247773454655947552278766471488587193121763179384005259530329361129296214072843173025567184072255921740558526167560393351298550621744660701093727392484470202655098376828782061250405222113610578786324919394404498661099273987838889052220996476799332453253682294319889428549291987568511028768334455627215715243722683531812498929903389403897789147515371850905056180680978137152075409295290699711189124412280569972319819136139962083951058784197859932802222332145664335667236390049891019091891205320254202948529285675773605413651519625485486264844952282606144074267579610853615395374038193713067050727705234551276825425092225844303468263883684365850455326631224748384188897237769329517219572964143591340115791383288637637661913789898097547955985776227335327472941747587556275452520829527376439778322659337884708635828400227980009197521780583117003130457769785533637836483542958027493087168175687464934341499855193992079959598383725273324126146776676680189010956181587727190288381167747525991589603563628788914765205957980037266952068123486395860922880081379690678394344417969955619194231749982015584674037378890268976391013974597068850833625834519283674610767288008539562170198897422155107617504352705199961559656659543905127601693588580223332698583022510192906814412721490919918067329856057808917437607041948705460526329854494036275221027005147947875791330096198884968314159487930864507257744601497829356461873413176906254497800615113589141419239969735850343062416339053473793354882725054993535788420307903210941792786889952275485533894552100722714244401933082542081065477814746034329161976664713152896560076068142318803259181351429839342947566076190528635259041079654973282614018994097080118554995582733137122119719166417752424174324075100350487924551269373543255318488245653324989821802222632244914839849784701899776363613994094102701384902697117402345133863011928644762549462899218522483560700145713723116799631027748406649380209031414590548597901991535087943486521347126732066881009971675600837706123524715779631263999474093149838166610933595348469584826751058449823909416182982772951267328411307358776145445487262730083414841529280112352087727573677434931311089248446627411768014758599817396416434698144288735072419307581095573706815238943645799098386438058571232036124369671334057396961989150518953362555031420824099068587935123568735919810488948986619453704301479452166475363387569269595316765947507601214115617540732180356418753905394143781283645200285837763303046380979665507994524707853689155581586407702391924874840886698941781274735950995126678332621272467518961170511493178485078732191653154102086462321912591891529370977475683361785286221394664304258146745386214411718380890047489760598411016020946544025732308711922981786587131486040963806934822167219249430131705315403457005103249744979824205869857679314065793161118410181009620061647821263374756198447254183276928962098341471763280354354054113266733268826638773593885480523634492997166254135727640793618258767773267030674084410913423858089391410871422193769615166158619780330843201827418804750234338781138097766500309126847124336299133243806486923152174234003155389025399049814669462103674002175904375944818146873142261248696194966609139401027136057414691068207019404358225605799392772075188334629566633577752615093935406063438559457512200682407969371724753535340433151828138297595307099136241427559985964415976200702292993795944410831258547255320853169049212655429808579027955372345567592559855958530270698478017874247454645423664638071689321545279898189870657065150162452327337512787568528648873086941093639231639895067208900680279259615471725733678004789537950813978240550117195628900726408830740372980833190101319746241292645024093126281678606719132834030948581837183313110419086953107690167941531185993901886775702770055602837856198683174518188041293697258869529206712124207026105604114986791063534833051488675927019666974025150840024460067155729898844759207884609366303076482701775921438343901596677180889372331014368634516709977491353023855095267735360219751955412764646241717177110586036751067503261649396424915204704894489567769886350641248375028726672916993212046607217182032194273116687398914516362734002747657900346445546156931236119166101901315272440639824824703533437347264936075592059546190300296231903441996676517746040870561332009855959825517370978442984777289411033248903184213725739100861825552122482094649431397262654440620158410254845517196047143586101997296865933073043049660482854133264618399832632151795117578547721450959059818033133513801808369658799119877941569405224993486387026229577130359573936063431660158704415978921068455841109850905725331629799192542792955364458423396600182843613625873738750463516070755230735626544522061336108242885841756593421345460765360091825270992757162025823330206433743590994492478458115536073223671568932497299699957116526258552464968900035818092941666295475885486083198278716101361741271794196114184066422370344861396031140165440518541090605588217192956314498259972143302370982202093765566338801435572514211487395997131679647729710735594411548086087907045091887296042544346224293498873654377248502463309136573499741654732209968218851851385660201978498294135814278366547925113799995411891932794476189682774917074480164205588111496778395495059390212723805349608654716848729350881512471239548373856470262739410274508591525367404313228420048432089719538169831812968123662552638416938029551914937372934443797974116023916350259481062911741797856482561945454776512815248678572004327226341211699832640933143642684731125627828618315065720927782426229119382361080872406891741265366267044455594458801616035118679776107654717625114611829817587798799249584513820411825122727162009793351278225078911082769941176776307505462192300384344846756768204816588451212510517470750449957208603261719260655860119077569143953288713428134076047059935467251910472209732940331478511512833478320378486358015968799496521934118744784733933937320745784263825528299512814848453306472807829120527101819673680231865829148618375911050653393923308023388676398416998695050098133419001793039118250056707406065233480016355517876660559714530942147492082551220526801994126449976843582527515658405385620036864130728174442039693122416993360503337409854986147336748617001912557818107298307239108192303151707549007776305317979802185183601450997346201899100910244144452377224455044245749496235601010469920623888960828423203891648983471106073551022507465123038168098109625340587715921894371846317451615125986396053082088284848540639122512655192974748529581037075487169766184429955978516713636060131187338978616432492321115683289352688993377798273719746690404698043989810340811183115618060288202888564465350375596707287003085475417271401728608691246461932009108987254893045577472935807747179073791114454789768567782856662416056446386079350384093280160931479123933272079449176406744565316976178082335866789864438218871277483066407077597055721327205246861876790980651772067957690065462316852098778917866692554054047655698663179413749193958555196785036764661644784121018847813860273548240253178166611791419282144280349672007072915336885360186617324500986838596085557239824932483664762446447820343626067014226473829257827793129598413835727869134957591321516094846412652590426641790331403435735078444528351399013176829780286272996714682789507088246302475100431382959978643978182951298708607307670609959873505328802629601582389732100902435471482218795951286637289287458992744145753753571936369435371727963463243296684735537288216902466023288800280524752694080425053748039875301444064477237605919283570501781340842397001369158406983832185559216945896132337205416647210893262454504399367244074095125308090694835270822255562302803283878816862275828052920231621480578320013896442921829328042548418810770544251926008428980500808590953264570801309839772048519017432734486001586882448478586893051609104412220431297351983396417400525916105551110965401120013341279834313823872461256677535055911677708107550637608884012130628254835687062137277860471330207917109069263863514111295168331036739109224717982875263058921215110905494421635781787359882420556920162887034959395270674880735220951454010761814371141739535681421595371087313249733280662449316516942459401782818387644408842732662962810468793098914889728267110857773668397842967222865625473980233118280191975678746237975343517856625750419572898702993626292464895202540107124473983329978371155730544401359482421073805123820928228185246015158699139390942086662526285772310164441071845469317672380693873145125761873897893328052885599089066049017498578601378378000135710233309721440203801817041233428865436086775873535582812150968389692625362476146956558323847795056653078528036089892097999092808864630993614647772471551990662510607481006636917595480723546592480730521681294606138249646483423655097454724497928240845175366118581069694016919336127593407245274405503003200747262025582266417450799038465385617699410206157253653346912440716724330446383592918505810644167545951861617402389493193034214993997778561107575773233541960101263249360790564790073364112237110081287103181034736379925456022839846827070653290596097276211235008286296365251259200801824149443001596127536709158888823348979222182762280757188256685893056531964294495250559692546214280375472581413625701128172042195893160541470829573020415059824308375509726961043780450605331597128337583108039455833292574444616076811361193898485820958710606374617513328411614758241733955895155944032309810108380585828434569659763695385610914292592560443499772230762912093597812103920695376805442040226922903280932913557433650729046617712566293932133049640726679294234315807274716546628388726918180692676360078243895111051450518877507353370393109199644128058318173277001921925274547484192736785618052139011345306605322043860509103039072992744410435652217851511552789879904805162056903519191159516540115633995438964412360594236644035432901851185700875464532122514975208753701769552232850604951551752527338260070797073645388997961386767300513131589339058936177955990711556133641185970160419302678787910172639904928623133095161336712577436662927788353036284793210644780690284181758399819526803891891309178272412809674054746849123219402831313084754201408673394187013553308227933407701108978153648525618336063557268361058198066455591584021269324012090235715876185792299677891892076571527106576937705384051335030213672818239051082919038764468180755520508651724319933744570542484664065689128237951461212215210179819522778496265989991226012416174655798378698648903481637960505253957633202292102059872220904397901025601797327383605393657871121924924410536299698630701758847358824603218278429534351341754539460938728854008605660396934168081967112216066173022019197313580678011963298016202137838068399123996233639949348756286302148785787805415580035917689255727963326762440355490834652830057386577185083947507617355402287917390421768973571663675575415898972586351713093636617888422563840072297561099537589995701273032364137776569179807638641083615975305593289353586330135160758868403612499005654650043767213999862290253530226266141951761530287378836887871206284250849399026438614451112944161883177839850384240594966945638309043979692785657674045499369661437312856896583218703419328110010405386405241523159690585331613719437671653627920059485382088019241542340503805578625524401115036160534545297074509173741334116184328705563777575164040822124502858196461637464497524452930479481348533577325417428709172132925741144783180977351094941426609264172385657947137271270379155901302997718741851311400164222002856389999863476477053645031038700642200892953570447218993363300744724284073317929098464291036316740697097579888233114193132045727176710309056342829123420214600452864066080803540940790861314779982008387663474910547196522007001180970995566553233973856217952426942302425067073082186214742186019734516564896209780441709028777299325899785454256511084139777968828262358417433979603664534551439251366762797661286146439576953170020415890255444936568926406188520154913724494684549538120089168294822233880918946671294414129216032943912033174156130914917513406102144522144082231308464642347014296115528067941758495130803657875332578980938092208776285430351068463695889650907884506224761145403813930149807219137630068296017663401221139459381750013947588939735771588833598524781251335806255388897836932912489663267157591824127658109061467257476184358844580540001484822384388178367083493992520277220315046086835545540921891376545960699327724334123163931561015519162570448206653713320046421628125106397242219649618104485063489705172458107899277115084257958722438997904609987283732332535552515095689431644857348441810238899282229127268868598177788181340366025911263253596667446490401407006354515946488784347426749121327022832252428693695895571166611830207789592494057149371828002278691419004871289146616157497657017909291957214120188859387829959793909525073907592036749969483006718581637077505772537926819051941760279298405154045706394975697747468297273225284736036460066515073026012298819381424911741772877324620288912491957797064800601151768190937935507140117740896906522291308791371498005696320888571033056825093458397298666558922854243441958603243816801038066555469046194959114549653932298793932947439470991827708909778403065239531879401266901787536755644576044637127718138952273247015972547298959293038617165369443671446661987583266850823391112690201324804302929979142686130364276208676129323209574812300516772866821799257120190927190443456171933101621342613342832231217142683409598090822918882205259390689188658809922168909610881816818635095323092867085558593715254659676670951339975545408125574959464648804261276907529078403824314847736836755866096918663463715391812084221547024924621162077779250480230400762760428458631213723012147683824459368170305273052256962414674186451711483656525439403260097961543654389572519168419369490410380037681912014878615067774402342725678171498484967455135512199147012103479133811901281871658459416304072511126700040915014153964456213986080860833358539610468758355187541940934379536188104785951442353095623059402315729288472818341287168496715065644536270914790178424840530086341429667785696821866271205618242760546680999014642230515768238462135947140209504954532844427719407155740224814421389639842558185791531970491602350513999600822334054537085496367351353449240161086924076226172763158229131276121543097147281015727136792833871558519116400100351367826981122948789496777761993715623692884081179913897914695271355157111568119914927315289392626204826313483074992691221718453206377368384074771192532661488327051445901174448964719073004500513688296335408980193431831057352940736542290793678590475686870297028150349522873381554467152832372733620813602297714979141991617620085880992226925307325216970330879405201664272170129017053107857461776819810109013880588872662257669633579282764910876083073259430650745395768354207547081651223778147717955111408977896956110092137357961533845490945535065821123027314922247418333811469103251386799451019486561672184047655582273451425616389706566086405922224224889894224167983359163997069155798339126307490447311269237220689917603438957480261863281174085657743354409838390328394516190719460586534644149432965536442140830210997185966213475391321757351876401316586099652465088550906560364819606128822387016688749114512115879573308176462134165057491826429723325059604618464195679922842780606766473394749440805012312457934278894640608128789579520645017361800989642153902482571100060691267535798888392940565002739121575655896256064323595228499593902135691106658000617405192614070905954472544134015399925790517690859300903904582899014871672006518986687415174298923489903272955048402711591329009802935792229128079095159974739661773465878156711501095129301710892805067584616127520332124819139404213525101310380235389198610298123601960760222053581255615765745180384592772324385907529317370554238883513224844280182345554200120849096053035555410660387142514668154416377198377239352961422606156568207439853411268596168309772055285008742521992505624362776498017128178019318002910457299722737351079707911628574488469275779298206966398798461438630929281126511967966347345104425946457518862590320591401664524018225817383008979926636362549821230130251268045883717978669701847937661625393533795741829983523948232772801613443814498678109740964968164320030429121604528880286370245182371763322482453766925856391432311105510444544268188229491015515470010576911353295584017772783910902347667636242355191979691958035395365949773393045571913879881469442385418304693692928694909874213700121385510652696237508804240657296836434033318515527766896635066983879379413227732920172068353104554415559638897748655989489253580873162135551144214857206798494848665450124197212134770054928814568716128467956388720634060831029027838571399522949085589645425693181157752703803662619509192440921380433213010852947946723236590342118146957598525609038111743004267702246651666395526867317555703842366150051585059822914159940007340108316792547932315478464674615146595129721521110352380163933197760850101206159731488015797883331547322524565839337404638142805655351096901762657157072333995235795082779505990178255055609788279418493561784027660121568969335501518893517427104783470203908601323967373771969448350647031475996084778369638681773671026311315022989385069388338951960093522755439254779625361871474049237379192862636428446358052585522202834806526453510011157734862328263420543277285652198139200276133880233999702012953672153592700231096843111293331237609607321479448708486916764168285788932330337741652275865376457089774673812107154391752277144417097348033363616382476477409095772440528683775671098463283600231289352562118357959223280358254013046406594614713657891646576786861141006157136352981749991579837516279231832270483900600359181138827637974931330304728783723646794705508749431863844032584775154687908755857770245145925794254063705125807779537488001624096468450775830362511550202653730034144065316340902299987538730160890318078908501778605410413705259907098081043407650871960793659365786910987711753669138673868297745991595246553432628500550107647089124729704987090514378090139720722742048869963614980377070727392775694406740313525153509439306905879854242244993087432934427281235082852048718272842898186308806488902144748584927263863148088878687147323189464395341799620447699865378667741184199635084991320830954561931526533619420692504605066680394224018258195887432633701276346029288997011436199888486367962708351416734502323683008826149856392587028141224819460210891909791373282433006169006456689170402731831594421014191180885737197139260677019626421142481135109483233593753395031859193162232936207358445599698791963324462830226095955175717178583749842962849562810771088253905814562752283058911029736312468753575893988586827869707223602586151234484692154460086734820624277059051835937389097243793726510326793697165777001702566552370632998471841167668855052418732723616487654387818366010189161705036008811201031997273721846880234577667921417954005998644391798756167996501257664024634649320732038558712237046197197910999256569205596416461431365607910492255521503606593611974137650616421606209888171639596037180909661338712517211508495110859516998786315967239561490073731869280085051912329175332521910651976851308441165904179576879419975405455845780191902455698516653892702636283204833639205907507626636260400728563615629470570681558226453448108480255139140778492123340537489221692380024215396653270578023514200986526590600882587078004134252483166852486351616829461381024041713775719759776570236324674578472011352931152942657823365569241148945023346160421904830059389080408257763107054579165042235253334942964961683095474676544180173336796150605121559936134532376871637976939955010809495183361964009495989977751278413893925287607066213383970375851900804210504422293461327207166569630651108124377314994539551200988164360905263229125274830384012544336721905327017495649481892063986124551874163920946582332437997968414403230369276207036458978009073517149720231104590589437535231005811420546787736643000697709806612641616349769166489350324564281650270413390446912230296471173500448461928973684457384925673116771757377870990036030096823032545364128627790160581862869459361217575312358456206237155871458512203159655776145578255634238480816147156090617900281804887415385397228690148142170839843206797354133940701135640376735332340358066967839603763789499659796074376706381577110174366660350860720551131347257120464421915639240888633953226003569082812207735701212982392411569325648127540540919115083350667695139426548585000736549941514360266934751402060120847665349729408606424445460725386439675195026468086310764424864238989233085194439075855119795667186492324446526062015409302811309464338647180343160685591011065268819051827349845405615601306430784659274546622632465752546121365651135380813804780337243235269056034161326936653045439034674758288234835470428460390549005754749411778361006242571890457471891955278334617827382597464544452767017995173483550144438848361730362469739616735562075977600207276416087028877534662731561970696581557218688410130895573048849526551475129720713122309990614679832160598206862991168624508477567417907678145726630723580953370694351372575546113070534826693233580337070265677612369605963183296609941293938307997668341475714329409333597479785304669140127919362881128399897748745322534164225289801448872248937983256117157640793550589123720292165527269302256091680392335479246426844565228712291203549682960789571118136461775025644128806392442862103282843342526346062263795727264389198338633879311149335046276719805024019549568194135009816337393854688087127885838286082306072172159083134513912169642589723360609318258633673005444563049286479439979711537761477995494337237584833907011679118693708117181597161719328116279483972654601547697847142685630291963762710892335871666459824801104381204573418246697478228432886454213984825773595218213093464749504447515676060048351036642588925056277383007597982956069470718128583605200379628956778954207136226803083649356725840692778006711350757446057185200473876747365473704418851899100382391323950108315504571161763874885881372510365953170022966108633717753977836084548374219720096517764974388426899905229750361480671699518799987623085940518693441392509345078114131944476980407314119161951952599764631800401151073979636105157344313048077384320122380652527136092428814674179234974109242076870072153215106110113861273912521944901415376058106661213258804536096153341591191571531684915481040474039812970429011897046149497699899880090013272520310049427172395004999481094905627061586696869539035601965502952210637077523760030882472189161143935609672813789674546342499236669402509812751516864564420784477791040050220975316018028196197058618970782502807416448699098160309666755099334837995994835230209325377334364570671213072180265665980396286368752733178787456795543936600018300867486081245401373862192706129417091619118091053777767341197022220634469228910255534915266938512630169259647353871111042841380135946498877706477731291549441386892625313856526466088954279111429842315600227815589543127973211942907971596826334032332154814547844721788371314335434113394625409997135708962803153884121625420404615085321638122187383788119200858175265730106297477835875287688616526308174712885059921637344943583300520627524108723380746045856957902874933272069956924764246086177156073745990690826334993054675111570837947403802433039771639333061486174365268007327343781467094948579757194750485803880869011781493054588217167601671295719953337315499164717311529146752982223586343332132989691190589596231559100648047203459498818111460357399332228600647633389824557657766933549791977988066606330012354964047262687601675938425222064600662237239347257208050554507322309240811834309712329926791803296684758516781785040328701602632860822842845384126112818688247263121697154763633887691097136607787165906345933594800125665742290371379250922478125288184054167043119786755175418544760652729180869634862213628490507290738435985943168232497542822339844258270492534908782784696231842661602117565562296938916041262980096987103177941760775512932502903257407842806377404431381104852496568863130787508578577418960452301470610589041957952212135377344621280109371288390852607197705403950457318190797109289836236598244708527863871864619433159771938352703767818827081271835488447304242389962021463694585245056219616787572644411547444829011288124109135743275983433121327285238197081210304675896504644935455024392119597212208710636655023435928828315137782881715185887225674108827884078394135426109464218248391434951377222851277852925939967317679899215948917669573530365635531483524754463589531366086896612773270409257368491674626589266325092334741009487845995410663894950179435297884181959995293442621132870645754364709652369903122868888651779201202276335083314651953693368022950391857828150543551498688500969426749126800938136647004568901838716799221941551990298294484531530644306741428625188709944174820544893145491158910543552897815143425010080611574309995065066678045836057444280872962255901728054113917533525957406064483927158644657128801303163511516789820751830763357413939439858760024046005416444958598955949100307738154549444757924248584716825063523399180416061907966069555435445057448423905171998829936055708363309332142462604688385518437990765562987278116610032513244996787687881306940527268224967727679071140831158771910927409357553883734319209631890312452864376941015891378823208395557863984946055522857299084724825790328637761689772487719677303412658445672790306989410038317931657522468352175384219820188710835138369804708107504853740511257073278867720253892911244194416626079662087152468442121833009231204891325306440508517114783509173128669394087067157647534257648842492431435510245364778094060474136356286702796663890949970106781767916997404671973745486566161385756315158674341666692734613570657578316709759283386105890785900088990529348983964996792003340664415932370767109933242241826575743925262450274057427073091364022011707856538490334645447139100344823662177851650476570339753927472350850261313906632178100648864173198550219310342706373360554162150048282120517277270577266597731883645421646607329692460325824371216868650438088573311349453363780787062857064891300600058829462343315015631910335370962823380368179805473038482749010016838529230213572847562898160944522369745300494377219757714698262033822860666146991296580401869487652025282710663234093732806467823489632701177919532759180404541522932190194494800460252798654269198357997810871158123523901599824219171826610501807866845808750784185091023887424095150075324131377834061976412666883468821753338797510496730209745398922019471409936463723290904468149954021052380677026474122003596086045853927114973938653085311389243616741503747262450987124098507703864393292080145663321655486404617760204721476329823384148750270141841237426237191780560359780553623217055530685893745759773584664345137234829712988559123575568580512866828143514818150260609650101278070828759119272069625380237209031567916048186633312291762965588359878393138483715115588095590455832552713749983331904065439333639127680203706999675187781662104600081422557726155258007094145128626375949967235068350495616810031905289813687546611531400685568423254413147748081555646637733280804278756142048414769171905160913965464167169430855012510991516897126743684820355297162117138036518852098782332500347386601313048055780319987467921209921957025184256857575269703026102447147645454999660096474145656080362635406652494326581486173933709538089869468816128789439473622753747682940507473421240072469143627390781484738618405772682004890131841568916481104307878283658453136694005813225217451825946059504922199027310501275577580560910950350356507888598632018468459358948535304970545214178942554929372631020709510914385180615605543915028124446096787889377678294461964258854630830905067063874877507906919868235543267960647667819618935119081268512907035465944276860612775898473358931963928442707724336149786952302509440417496486728230675748783939004232176577075421635903441869440750235362226027904343056316717852963098177779382676734189433264006525718442337285885240770180988346554919193014004975738833518535805044791295037357634224863652885734744034153566481886831227275146574244548359565178115156829667416207073044284712587446332620897352460885248441564318939461043729730813115901396868958623944502722455971480153299686107344917707240346825549454810686274143222189123351858834619339656072524939244328975474970579631484004293496482958723726290675536484494809611863086766897044728530571737467608589784352680848932414192706399252261053698023233136842086732223518394104530222879436052190275588918428546497801628408699608218790678125271848376092309695260242579910104793981842804413509537100909741761676176067034429502496370093617088547857279768751019652854167417474539494293670693955100760324763276168411372234272160876282267643855502961234064409659756351780427404534442920279294244482355492809853584579832353173631629535631837344522540566865684361574439713553539054251593105094669961011092198122394023091091028482850406733134022780903042935797065760798404329872498933661643968327488019255167950467426863696558483254286906268657592090354649763686549090733987775091589148881453456947818694049018766611515888685888541381738572265212091277054583705696826342200947942449026030992318106428930269618215977865138144460120333769305170950793413710110445965724873854199048442768315916298297836418170446053494423772720675547113119783338837150111850684697305689735915075680452089266710357842982254142700336582509468468373337399194441807030491466895425173935898257945307981532384437601414874817237143084454751429895300195783842662806051816535663642571249815545447639668794040719118457902972748696973820518462945502837151597611499291530692486730667607447868910977456544845443795076234524334346752101540878740941859450062372057110221806012515433804527918718900352745374103927452520145110862686159051896664478576166963301825544584067840144183188331774406430834195413211213716456917054477396900876499655290295792185606153623791396378239203691949846171549286974620463124045813285801427807964868546693361925901391376101469230306235339633603982062331759478648870574930252158836454710669025944740461574824859239019197531151379549339676814076057081418675015780445241953005820800554019361271599280361215501356148473607934154834148773718269686699317633804186131106725560455958247459664955499786295232623652034214419452817340650118670537513164857437846352394938484860506390471116282961539715913678761992137111724831005214843856746726285777720038438701320145786912919608876811401853249312080196705960462668055175684074653944088693557490476836293728060043614917648271263484506317820301769682395028688017187721084259986656774810491904536690550318458255546561277813157462310527548768067881349983262597355986799017848240176822422766891185183179437880464510132596240780120355389631245477872977337745619791190584663658820664983101500465254289479410604371737423041226318970606436270080012263077497815252492976846072823874326152703290975992632865538303474543615907265908642357898433381382338645471161559974670241588833965403410657153604403458679903833362157556228726796415863296099635931492084343110503664891536462598806801647685137856605829149436410294768485064995820724889900228005162774128194602830999787229464129660853589510119038266913173905050467373786567998002000843685348196299916170792682342444581260985439482201018938752771461155053092466664410889570128225120951743261866092973856501751047349783042967249476296669262030130288429468918563307529312470078461605530689784169491891861307219093657666992918733405506807111523145406680219699834271247785879412945161693748332784654483436325705710441513830151590692872892277315434888350950517680974724892593297740337399469843801535070442767387475429143277464352442084433907420096120126502411912408337206913961142762991739544190098484766172244497355453404352279948406420748391890534916008150899337273845801940096411871491300667325794760969617765336628880411222281000513390583483898502327887086362293557307162705227305430041062362781761952355898904046339051028240508225091596948164580285517499149357043165389397177830689884457627274035284993166503885609724563365338300296204178545054495579413664057685950762849231176620163883566917419550425713137312769478706401652567143609832425977710256672319485395476642719591011213904812200301699735547538495910636178444219269415086446023776566022942729944973646119458666738843389966848787461548241740707394228988791524799663576837938292029415164986400985199300580809621668296775786710486560349196493675817894937602062839080619134121342682840034161344185377318754704400041485340243283739172034744252278816320503200506748841024691748755016916084785819758259859702869665337224506929571706183118164192114615768518883611885504109725497019566524765002430549687351617088728051127963716759738825896660819348824243375234322624054073764696418468433283198088600406446891679631856024432231428411799835986069762975590259246341372362694094526563449282991331033741292169553519021960545443648323076567321880490712989790770532243838452908537927957989853462464688182670883811296808667519483091087237349044332644832129841508195529787887673713660598096154376940691951209916098931333093595986325355774679776624435662298170847896916725583570733248869994747839982704947133120914932549073608006753976348178900584310591651831661189172046901355925456287217713531354644348292920908801878265156678220771093793281255944780097047865492215308237812732673602776733444590739946533460042453471667262695716361875762256602838598767055338112750274792422787789005694503235143607909143332899418994062979253449672046192322163457123778659655927661269844173111197436927764608650147507121084715027117338510567981989640788627440158079915619303554801213515595283297791771166124696829723367933371821115496031025874046014897371655600074744487385227239293208059597290645805690323448349424168363891681748353927896835794750902522729324790643302274062941223836544339674691972781399092747505363672837319295934842663782049805155796730500800773739683136115914172961341898460525364977984456671750127717988385778129362490673966896847501741908913392317343434228881316275066936101765504010840432294101364882027677325918388478708545073513858397555875247519774338605573182144200899828195458949127630136360783618533528219462951148598868093776032474397497220598260699650157298922959932871176036034753941325140380172227881101387796871286101953244510700489320213683939984683955852854914123904163638338921960570651379370820010167076056378570216909702774363413682021157425143359726274264765125597473250039823270559542906392408489228910090770326362910731345724538260016453474766627421768193062220654863271599856378876231440147154647459693821211450801432795217154490427281314941236290655337464680058717112847043924722836760042657945048857104543128754643196242567081799673812406421618175743993509418587357793345946658453620989595412701511687241125329993744649802879719383533190191065596523553518928870026767297563497184174986240518779422527763453621017962316445157011310106250407989167419341040731842847723515576016972589383298340148112345613490127518321622583017446312187614477675499029216673964643537054118115482650237957769750093675749042895123705351908220052319231484489242563147423118940904260342981297474620809831976337681186123390788197943214476903817665127148399040823927752801410743798803107246757614632597956785176375113826806116552108303597030560709894387136286373012682682973894690517295414097532318873812648987770380221953158077206214634375010810277429529127200940928792655835398412027359999926340945775135929143073111028245322527321458258510389083374251502082747335126552994322462759300275844495446898440603912897031397018873390733857817943123590613005932897591590254963266352527031317966646233827108501315908375795294742126851350684083165827255606921324767028016106504898995376484330165384515925450604009473692580538411012389361113982242056041925411858269828988035131593875405197161929902062113924947563055371516966565077921286965486086500965392898858095822425467108735744107422066675008654296922578947858327045905956099861917972870515567253567711708780474029620909416306819156475943416448064353731675595317215648181548193325639850479988178459174716973443792162821852548619464651566968685792429329918608867386124890801593503625350494408588086591958425219106286908443255518024764771158868213940836498181136153456477922867238344515532648136414714731106660328400950590647322081070735285578626240827692981127882348111363949966630373291295970421181423438742862094202289561243175932343803286505215058681260235281729123821949089963787148560678561591675010275948113816497912459747956238247792702403316387133820165944048101747605131724750094099131450536263002582634151802118627274160556724030925006592845440920428854019608477133953259929454091877835412972397003940956951638118561479616597272878263167224699876024038128643358682280573976188875951971450378768180267284616492310491519508496245586697730831852054615254286043437301515716442658504161417502634962825700176891381401979837476204482812116924666072031456319515836925144711331779395771805326095107525421599808961155047143035576310228195561432423609897357052936612090404481406433347045844344307014844970870517167578512125155942102490240258989207991020671993444891124822847548207545786957063957831297441907252674740854162159506505672117181247393300922751422603833874823911083005708000464179466905488252070471029860186790373986328701590762907198347673359023873377116616719907916011957126912962826863525864472020677068921435734693341605144312638042401528508123387654535261006039890914878523349412879449808301694792978935333159656190675707791143469314799183303699864599366622201389687974821517830489956807782692589190023101995955162423582077101853988442263537078588021460540492044424041957649197849290941957534495966007028077653846789189678537521403585406003067354957530592191062317133387368596424701755869389774176600951458196455857011682367571235569773777611686471990710041726866548410651840285950723080396949988599070054221367579838446426115049940890640322151275898619090983253926219467840502621090258200099487860608920042636133663295077091504594842727463863274982929403193965280298670647786276932813616016073241820721164126767095496719731162154506091511157637794673664937940546819928646140946750222917601611560549408153354962399823667611464338257888088825687933976016864059227188246905152828179810961039677557956057221404258051742091624788974706785037173410399336389687590042016630612433107658117715209379998489767081771253604942309711674934141495107003553498447714921540385574364055854271779900889988500205789315846279611211439469014400881687343535752501721266181568293027198658061568099136366279880927140312595993034976821697719892374460530717675326336994017865135429213069230900969774019956331629051204997040499057595277798593138932571217473044764513271017602774543596919132428781019025272454531998114361974225372520328284383816891136291187033026324886561123639008757197044259173560823225566752263545671307679559723664490314804042091715515607906534376347727899057382996275849525598759920108886225298914646392764417718591553992784622656008009178825183398851360638141777035060609686295018399545559470631772342454983966353377760632471763949863663674724369106152305938218350056506835906864132634409076483394440197358657561555980312465060775259034557293077735914890664893037644638339631103517774973068407369132777566907596295546143645908751437292733554659184341043954026077120841697793577154253533062429279478365304478153131337097249134805495834555772240798302461952406624080489564197758906675311346190945899891174235360338153234357831220024815893591417253744076301121312415298677544096948616225250125573830945962879758126985194907654128246505545085014374445121659436610445994085207208208261356969596198352502936379099922933252575797728575933591269470448749637205216631859567935433581696825699613777996376617108937807854422503019332009014834583276577032232240019830489499931526666668627222280091656602501201902324315628315714094757693510777226266740225479475140299026068832892975743050719958616510978912187853350913288323866593655465856616305169095014313025837850868222748940786109876627158203270484897201351850957336613947461348692452494249681803290575849109012435360691269538098018777633102477386780278105464999900126556957118909342456249932434680898233568737631764132578701468980342965595056574783078178678224239625894648395259334619608012856640468520851008802623866966074155312434809121828240506830740124891967841692784707852281410573316987507471051431931643307124899980493375226044431437198707065694749033578735639592208000912962539653844782167627843445480769222387793365413087773237546643744754479839455676131355305462158083360381235690951692912325590733358259033107089159453530550052626473043205825116028664140021549043371131886711074690514628697431984194905174417468666398257138861877216775938130131415243099186989680937920091540733508531679493892212106866649994180842379298361294642581103139954718281852620736980029216869203059655217935978485942665158367400321550625256876242542587979437823516617286441541735679759443438665544531822335201950143912314638312869515836030994479489461910205729113372283162071096131492522076117721257162830786529631827992686036985125969595112194790917037184272499175012954518892909418505388590129692915188724534172689804876457785239103289740806528091851793326103591478785839342288241787692088828205629811488890412308093301314778759323087052444751840031232846483338925643568670497502707796675429803919678014436388382258810802535193690524820860347137753290816763673602846442246523460310950636649818286972168515801703999584193496609515125046163968170720341402245805980886837593850592862758519258823787795612508841715900686154792223018249770458163375057152670673498873169864571162178202645755951173649947532867223233996534416754457530781496878613616433366427221133242529286236777038131622992109618508258018375089648184196336001043030186007720252974795636636619682058825819755769876904155952545155409822992499132125978825594966766466876689999465556154815486748516837037580456587036614896541083150290868881994638395446495862438320884769468937655162294547593328538947394421468875131665364157237289420733059993402871318060218417762369766424257176378209709538489957461044653888124813701928685561426950263966802428770840181970543735773475019202643322650177072246448607539667554499895996947733413010054447905319397558241545949249992598347067126810849416823218615266894963765471259876462141134155497677818839517315196713861302845638340456194765486598199485134191519430711178503264375892622706878910885788199789233521842285358676403086145209289480732927176713678795702692713404551954965359881492946567316416607527094043525767445262819977452090497820848550549264369450389473692971949540424244738696976299335093796219269491987435768512022305565593238286046371548229479936303760908911885801812454974220535340887579653030349208529745544461767971020272041532296743996899987602617489402556413269804683488785542208449601559875360248474133190132397894092738174330027108080824840789540284767874509149552314479851384997381295685380049234473480934416504912236172170428644065500804559878762621901505557614163635335870906625409682241050994225380583673293364941288580269419434393235187252932415186374984946720725270863215923827427325736907129867937335913904377531654035959991140019388083995857622858394278074209695663114934845465569519457423980934125895493093525405880883113961350733130056858436645677284719206916112451623051947761500256318340365699150312430371038844697986478830274401399924314142425303950150597212804873838272887359931510382244176513106254312975316812234955915754152139778762127660328747345107680277879395151395557707908658191913571796273557064296533743460120226401825165872964928861678113725535782089653676929607636184592092361855663199618590862160367396373947325033806880954369587925099265916821006237160584111788030435336784235995893181775316333867782337194504896047899097874012976840072630633232327247661265400156686027192672202438771208720573536222065970328725160539588828068243168463500629689138141995903249265646623858512758803169660399243505119088928619907771367237588318976615702554876362483542671117893817107097438752358691381927128887504926000794965332009730906778472886043159023967366656650442967998767808162133068970385839983956330672702832920111664406030931082998870956306639828620472678985814300839018044197600259088283184294343222909346559987411532817200298417272252708756942493170004999739901060725616293736135927944618483177583885697914251572073739542029227054216331707530323600850554795618174530420577729428807475676971646724057879926193666165322991603352744792675569234751752025312662325121558275550411064718675299767492251028847909149090993672748082300948878960407122708386697282254915876639065928111689986720402647048281884872713096107100281933257741552679485528909202902499739730829583923034025023414026819760336130103780515766339643332699187713887992197366533281331437136827379009187663532900820281641636819897195673608832585098570178812278492860365701167716307773439729917603343876450772681858410170489065890822496974647906753632494028867088718876955025895785957752197402399751629413872671922605768668114138963513720849096855439466537048971883807071220002996879955074512453846234469512768771735488093227217917145875033050750121670830663175023772816241737239274605349363133144539439276914905180053966929634214986828994425720271688145705938833049642749022530081536955068654907970317699009374538499241241183906720303697658580137382924532437516063806055292030955537985711676553446833077923565769499189941812069450842294880101621043919199372547107399156314840332629815037331421369100301174681236524402794651172348400556811663931534350184273475356112005810879677145261240377652282782390760868072368142516476307763755171696348909335987975754886669974021971061475698309130649104439511984151837321743508845146212478736020488573788068385358705761062126572557472760886525237256890498650352794291928004704366007586444018780443470588442360190697786152658997295979697902972704016868473555650543059754226078724692382026713452132614546536561204084706358934851129191626389666496389375620660294675374052332932557691587785491983443022365719462335565276603298504800914185376919187163862223118549169315967888500328839889969498898152866264706586281166119731077621210994945603736369460027312129478350086155528421008018460524493596386375320824037598715458650614827199912922601311285278655143214303600787144282716551292073580174337501622579669699656718289584967472405894215315544152413155896178056540666182865717312924310720984980916863419315688940201889611160032901345885657705238558161730603989371651190143995133405707826385718438503381600972171248272073771420166084436323662168945014906581045338788725845327229670935484009144747623941045666969174874416464683303198134624342318128446343235815888438816316650377448565870306228333517333250883292703364940441461851514075865165888778941200908842640819793868813311535966963112763349814158527162064433877634699829253657027941819952729684098521471871009944456705859387958132527778085225231484967285852975405061369705550933509651279904862404195958987787744196343782307256218548471797225033098246427509139340006862385156563049184694752450028778485419403309852266868341247507229060055993876218506946584827160309794992151453294338525051967379833607395729433003754581675683477405393266844994360294980680687021096112358782887223535366859572862656935957164168948064323970979474202067799612394108466782877577833960407055824146379572511312458631397733163338907153649446018417382672736036106862172194213411492043674715285606774584423505126023676692378136423490420784483662473992536148228457595158089500815389166396080477598985882202003541627489608687769503303534037393853761851189496609726984223963464501769500031438228714954810995619488936379155146361599124340224976180758201336016795345805493713602462309594680025056470794294478219627717044735515378387261686803303698383247023540407312928094588560858828965488429212080477115607805243454279953786440588352312190888341066804450889637881736561965582748869780519839209226531621853455526969191560905573359783927881858798553624593270747657006323373007174052305885237646103670338220081699353372091219889201363281551768249583842372305956953301958799265373314243328599475962967004052905675198078549153137463602563949528128259425409057317607840780114995600649184859221589174398580337302554841670664115645297216669596413680851414105712666813962262326202844700799022476193569564183320972309924166600414906438510664537542509641864394921140581718175460254182050858964983157226362146212081374241702688273299483417817753109180871008589414437335335267774301969321036742735235209377542259476177431413204749848007692020479430710302657014483035203253269750449283562294255866127064489977632291503676661485853867146249717195525451375641100680666962473265002803310324432855665980673329798906417177481126147990697458917856489002423590291013032223357328749815023399981552782846038277879382996279174407934347594479487395644911411870170875206320778308074362641877189720562016284580072719897675153392423443970622661843723494537756880809863111117953418359798693020803353456340764644432018056163778802028081398527704171398579781242501345784536168731527255797504060946280701100042746995400799404506934490167278559083833578950280223409803303267988108547466492090451464834183540297524648957390983034641766168159896180258460171009739466473214825462163158436585419975963439242235317984845237763935986592300396327845952994509035195762805298074180860257920855060020688240398289756151637562441342700550545338306528243039557677764809227257540350567117410570780826465892361987907475114355798831309747606509124347916725128985848930961165181469781776535892026846279539165335124100245534680652300463759245049313636524868915437150889425554096538145758940417119991639125599826281350488965322661432851015137629602682710273311734824551472003886537152579086763004317043299020372793951099959898821340791553798608762241237329942367577684294725343645961873370452882870617754628212734593386088430318828890718847037015476721362754855906569268520983326822337729616765966111393553539641249086269857060643437623949870299240790295966178190499316571543413212482439105615119046441803502311638432573013805107899446389786171793243224701587047864259282484174067528149702219366555645612990683200474549050023534520418716491687203292821757995506867620317936244965829320689461966559572302958663463192499278973232275153303157360417722177547834204906316601796996217179255936320848048693137251142449478523359583577002406356685577089765270843633750706931473424019633269436886431199187865064448648532393193281042113534356806708541420923888940414093167118930866133358856792235771762583782248452569861713972284102081191435543816440021792947969384791188267663664457632471247470112385492521045462201398129908550200174925900831329351807706082947712462705524380587568908747070405430419779373476441645033301773780019572147560514676049685761829016314275428399281857776792367476044935732916576831968322119648619160286983371193832004811429314762710149964653282042410304933733937447222183084176574991078238718058429947495290075410325477551256426228120795144770423658827547109023684487826225816938041965829652989674007721093579825754334793488234177368367744889552809328444298576946811654182273708291225097997811439669057005307020273397724650903386561489647752180205554569896577919248998663529394279915008166222953594054871505893549698091718248202595486754305696848627577124694350488406464380148432875965964941896799143403068727088987657113828664315005581336862707444458627541619221991104555045054505147648197935987469286647080715653847217341836017381877086250253936314552157207473627652063019131484581152043121962582512670249033931942982947723975254921427556048221012623671065725880013960814755155660833423758394742762640562018576046764836455144983505830341177184856696389788597423477951966142516471341641017604092702248126429355018155288037130704640066358344209607100920716673311776533291351588122482773108448377196595681893940020917215633309833612372057337864587867244512754383073958435863699076222214896987390429033939446275173084945894120283830856893401528620842144697277744952046437443737772644335550574378302132642708887161627807558354781149393897028938301691813690996210862372150223986588362270770529744091330230659855126804966572512768997842998817993942687744964774468051396235935312479476916955005876495850123247961605843478392329708477681763920058795536500421831104450211803011537561361104289374072324931722617565197957379599800043831983476892558073441737355515867778543958360436255653818819932549265386272203912828784308758175190764179222721885937687142556422863900960680243258378826274174025552468100093798796018450368450736900767024738592909513028486539946343169040733075472351383283475000690604568799312739273010585763491026157979867133753315983535711687674748828757246116605667502244129704423073160430549047001312917834363102703440423462084847601302213480807840444862119358254016869538308817597876152485241310725582882084972310187222877724820650133509428538498923176757675644464854594406427980573948341875059860464097659803251916481542817080125302611286831900918197152463314560931555242809837035480501819112042783168893190506785607375853194593699249613993697889799320122071540733755114380158337173431292211888308762460099744946507281303341492690655330793600390496066018171793607018674343059298214067782604571772714111280037413066133224066885177479530080102190393137970595022256236218445926391610856703547204453274550578472098245142928825101783734063670607095815465477348473101275179036500703777045861260155185862713525070219836376812047720807823973320059725795643403438670025997133200918280153983176644427042103468393648382861011795373976112308179735144108446498581919664053694772469687714273078786071157282321051293131156056628759746634219411877746125971064557418880388811925348120324597751594676716331319028736540698392445742200340036586425531038936861660359869383050483948840370072009120760334340589779486729902363812540432868026668336003374374453726571310660219772403403697206998327969879141817173747633063800569001899990065955073704613970823422644204341174156393191887438536176503115805719702980494227920975853608944404697930634196601460176025078839226537795426998384114781673004203206816186380045356943995465692589150570980214164929258680092076573068778162022695737879910973088273915098482861598562766000650572026695238530290713353979845328596229320317091907121085156242668199888481055525679538909050089931810768758591533591475645004333884449907545701394479129293154794856258533587620260520585563427161651744164168464585212963746709557771959001139725865669041743495885378741716837144493767877866877149406826269803019228129451171188734837319663957623298572619845977069716099936394983134463436222310715222817274101338764533865389011255474703132855586543755289942779048907935889549998077966885050808451097479561094030074021187329403298828764868452955733633277619365235564460275696609926537484503849575366417797477705893628227123203041292748730578265444792341349263433287136731673392619995045508662231104931978497232779784428691035742541949616540784200197290441966237089970904683245700427113709727254998131573469895912265441348884361725697206120118990061856451033992579369832461184028887298915305584963329017074343079485708335240671152672198424639361625444290649150180729465083948779364035283133237951395558726988067503815903589328294873573212069353142303827763036924293002156296231760242184016469361616718236229713380904456915043722306479793194840944294868801118653176511094809427506619921706246931849233911231644933122311484525620675976266417946218633637713340382925434204815402972958183837577209091399119798381687443399241808634438866257540599709192924749395385902847379419273349863211513410142627567921447509510974763894491017661158437049582151719953149665545761490955171646121633403247524010816960378330592959390746935786885006135511382544193940643027932467134106247879648857007925560252099248047814991207374357027773243308846503576069505963829187501231932747658376186598092684305163330296255827567388292400711562749038821838027187623122397999302742379521577883695523930611397516358943699572690219229297859354085738239233664854878518278109350220581082976892397857209407876055499435621106956408305317227720005973863208049296141822251081123648196452506817687382852754462429958549393468489968752976988705579544684487333101525568873473828937038363409574544963885039789640777115660759779623167253458558870147467596925216030807596532082251079577203336227298012633807232324655200236477603295447363794973914504099336797839619997115216612547926462030603039237338477352908996931773318680358192346389605711087259379457297528921107577534991641479562501578790240245376539449764237881711753831493555124306966954283885865171071982198525361713849123027246308430668731511567102035770359653620789131358691052015098018876735841317453941159946545645202662426491509287501323095612772948484902627409425357869848039860011438268996940999437354180016682222849536951231224643113102893579993152505040276590987451009572135005237947682870288441653509576733898078550089941538467375438891028815164111185596358880958271657976711132070397422242414527710335795491665694035347704099484609910110019326324114781741276679471793261277532641241734760581908576174568849787371534632280254454199852285009070986659941648927131298101126640768237277582166469688030550700412263086775010533208461594641504497649222438237665712907019468944940092372229398720795308512721453589654405165894978499941161280818155495239849117047236648465845850613417004075194977541842698518544084036423159357509563339724540861379875698555640082599676189866100858443449233620100172843302590585811620924422189651552374088386438711668145543398087777165556911556085689788036667864749295000528046025889240584274892835089845111754685673076822154309288178011656328087389155728655659834564290872447932897346301672733035972190537400102063258755827287016924837274478362157140005050767093503125235449140679682358309803648281394689724494451132119992406089634860123093109113221297629980093451726832002219133789901411533220659021241648596344151355563720205318125290812824884998297637790715909127964024311291683077829025212046557129988628341485840881803530225473923873157177709653645792508121972691361817849243062382653270353075301280862886490541755359615044859662563568541385698704189174386610656928620958199441674479334724775764328092030986952652107064265139017384284170488786984921845814174991184137768771424981775045440615542770731862690646231815923906506594756417935758904278701932349202446958967148241517467674679454156791264270902875404821127916173512127922736037785940554843338340337411056707234345141614313969320312561514028069905287744552389496479201879847632254266164825277314911554754281072151509237911584555810797397138137778272474782066256677487244482328046805622879601798795894739496531291859873914411126758893692645413420411178797849816223755043389786982595032969902232742691540762147783490348083960628514916346155655289402509765512975570269648531972829034245330411735780282749609988945248905918394898162645004188846181027095132608533645962930069329445510753867133227319264738702068992769428736002874743971946094450064287065915789448313837168943093310678709430256067590883859712314345770442138849263279868982750588651866706975160274608265163100624274446781119075205543138148480495412314195592349485388863162314335243051502611526676464260449192756858871313002305833940798311223168133208648866427054089145175061991313789766337121933647643802844578946518949157068611545063211908491614787862748713590230188333025325275000618837195154702784198193929286825534104101879469921942158926131183278208222507904473589711160102368595986781792041665594861347218508740058678904328324803590220467411645929206780974415947883120250699654688702369080466536125891881855396933799505063477686259998802060845603577671617948214286298514908095307024939162561577227551100048968983142320151982363396997068400166613142286078022890366407801834075516397067722178096556197996612988347494648371289354140701984217350675279819410509734121601550651296085018209329445793435932470206446306306021110717574708938580811073847949287448907822581633936627314886763963901647686842868166195870451799699077782519255546884996365742208115283676765645966968466684633194889466276422260543102385593693238839930696166043669477334511494697221011686272470445510411090390328451695305960559496425325004467045069170011095754534010590968888478086044573416167404108897151460559059758333597691844331418677226921229627382830659520475009065655675822867252223305775425680329577693040605691077236411451187167971593896546199646643113185967109430883267107978097366928973395271241415928714271833715852485157772173624243474305380917949444237352656205058309490755849537847101817188221537329809025756039051073418158248670838407159011366003903058855864345370030418363964568940502753734198411243218669947018100518115549613780409475997099618004395826180010595544707267334396276039378859575641314758076520960275400027174174335382476002385690450666496949324454518210134662238675033625573701220580611712760779611991199145787586724352480249851865884660594006719347147493541550688630200699311909134663572499454360871267355922539884948668893544515633859606888162743552755223322572359335602458602456047820259867847469250628544591912056133460019499141983151632654221868721004421082375055204478916412697894406918090634000341910572904524842136090996887510995511890744525080789967780626604858565850272006195053454847996364506819069841552848887985561363173341133357583292063097545678787479761936786654348417572076122202414224023218436208512713196066180415331003915986502724843197867934786142335221907258012903882995910837854328196026909792733955817482609127997589878328506946132445390902232366922879959812196344885926866805408493492211361116251663013285170962025116194696281033277346946493763713780224494935374262527011872897376098760541346261669307203099443774846182242830185712176632970423275601118026079547964761164275905540752322054771057923853247271222910354066155486165794441105730088981763485173101186351885128183326179415781129473383364767892818312336472497265141279338038500676846955293969177012057354688424719845937727645263427544195600773540047953041265198083132972401078871340176216987598846743605412810163583384618281382207585064790131338878204619924678940149467704265905208001804856913066560343878787802202485360764103018625909368519469268306593006086727912531673287729584760465703011964165949461766052986663400066987747597702314703994966464117616751312577482678256134332743993832530022696016453686336290241292986325952987450180221479424671572927968653676466144362403871428976128846343239487922712801081486695310200817219238322714815879167399587614554377318493841572976935791760611272995652090427855907813512515122843652746373087404040611013220516842208615491943325085196142776694084340986634932774947552038343694986641951286292664179303635726120211258170285813683423786810866745013676249020003972705511844036920424976053263139560539119654174349793782336588815883776883239768063189781253863258630931285544731174899846732247854912654521275023088618678852304089048708095863012888270683804229723022243452682504230701708452204948474120671994913025152033737467481795621778757950426053681187275572717437622174757498796447296066677235784020650361403917184806466862166483770365834572947123174123012667118739961424159213448801971389306285726558436216746035475500902024201376235292801128029250370931890026932608800891919209509382744585823373923933373281813285384074494054895894195973633930173662018222389357055086426049467381805777726184456308122722866409805169657825093513153692234318003815127827455326461285820309835538467519949425649137249542580519531139476066256462127913151305299953610181963929348455073168604589178546972007494105669449267531304218439803856663568177872036380871051998646146573240766635943007118303020597617869751047671684535396848406958705061017488038795133793262666119147634501365547363539907997879375744171929887473241901661032408811563320610790496499121267954820254856647545975392041901544780004329142442974959692141980388809555970457335934916231879957937276520095330164310182112474030990407266238521526533800405091617327486729926136243946151167364001880355781580269571675033156512199292513854245873714975594439561774565476249368348452809056591875005976282974147156758893207942213391118592850639748713881369580016116017148224097364516490854408327553716905606770449412040078107255955897692539924735976913521305152219783339859181120522931854616642857310932966010612135202311033718742848674973929133559814852900870461903562796826439479981638762320832944305616875537346912710778772624654141271850226914722019717659853356321659591626858968277764725559325725355989960864719079917919667971116096247463199780430312734829886366644177728768247962349674996919968468626322260592340023538414944007513354476042033547406982681252798346064741097972826881767840228579843934677178370939674522590929410395709665131084223809457425012753907658166829164226783599411436204737279567380071433317934316942057975097908054425551968802464551486813149792190003989314708926984909990102521401513513093696521642483501939670240244745380724656547433044339914185275442018035255104654302991746827180428424692176701538024315223852921360294975139592632104048829788243411210503604592798585044900747012490474509566282936181851699416058187835463986890524629667720092271550321684706973680624428961669349559901003713859508761462980912386781838756020015026926680376648616783110912362073231885545013177328518183095630830509631822372548581196305474942411383445151199666386751186650804176237314727805686035032858104086568967139977758791223797411181218215772828866481846697467330284127301035652513031931343070238832953568625257266600468100684044635790719498958424400452761443349605887884885879259965648686475848950166098942157958677963003047212682383769747464981125129977369835226905626815606905699744839167591356227449906619877942918217274220221377510902273793256720583134263003402211158711079405681772621105129708398317716203833471634032279040805757872196061280032535122760628275996345185338496061011741450681069789379878504880093631109312037740501005461228565569317117888347790447420093835677188621299244782566737748827035763686469811977555766916159884435312826365658051705720502167947842627069864823788434067124031521212417990720521539407584504612617656966707067344086478194430399719710392630440180245546139834907522495561433374069703846750722557576224620891482935507087545841008748090818674006049566602429501238257180913332884298235148017090485835617726484325789185904424801487792886681994398953700205828016302289137033204120410764266740906401073777838368082019758408024957215092394814668475865750144780612244038987873277680380637621784805933769196113059807360730695774362737663364304964299620533323545637596370284785486654658094940498799567644701334640214248229528727798443402219139623396330009852433474237061447136300921161298447391936242617102552037191240260312284304236396185785146637399349522953253182461169391556979953723278900417066469967326540582857779272785847536414107595641759675743809904155847549053538944172726389602667175459242004404664040874886562267667076910006974238713268212245243410036607496304095703717476497037856050396734142976178811250786250610240435558852997022027730284606725564347222633801952820056190401606530945942124376838093988719346507158806363309703782974556595814187693518501923059410294368374010893421701284844048094427981907543833433449961815824588436457044424103691431585405685286693097100428646196898726305726872332856355538703312587232381403533425954447116799862216535239921724319734476470540060774182074668363038303296198871649425684022034263779681532584587796780263609162235373150321428095234052521044017198757090006738521724536499761254994048346821286515679305606244243383457407142016712482376579830154215657333176557699736168187683278513912132536973244888866585088249667429711629207624353736573831417238997880931342399350624598384780635611428562926786337557816568501033468891855437471313400881484723195014702064758412760007850663528514708947345188039341209126167478155747789824042253799466039534700477298034325013496672780586309422790683188254669832018176000470168663371969176790631557958779692217974328712772688089347161839755830749994451257057251035787428836902867320326814643568429704805948562026233704262862752331207542735011282422128977156274884647267876977111086551179825063219983543941817552034029824193421632317333461934586730196323994911258705694856213941879160309739274360352310111476600796121401429423884973400523769807172761730934915150877589759293200385120342607478409436745533355424309585970750412762287222078976718899501048438483515817075932317377224687880608161595134049218311373117468040734522733301755972615300675539815457247071963508332851340518718264523154841433312038164369511490342330598483615072904906538625034088769186688368674813196936129534984670984422518367724728147867548467598111615478401650829471844667813925464618669919984463369547470377574296545079796638661313552535447110537528824778223286373408369660087196102578078672589794019527039295200005240832414477626730669149319017370458077641832377421730725477097918015745111006739275826491797371160622149030734249242463338770763609591984062594420574376089068349544121144627584262787310982018053043236340970183556414627216254894208589093723248907024922303419412922866391351004172448945913083173397508281031896970404031146380164912716741301786778294277105225036186263649031844090351739822485225443708847602576600620848454973808729161564680411287532480355308878949065956154775569455771057712641434528396689254452795346367216002692631197208497119092420374421632655342732293817494917193453461150227777113349038067808625650787277194277239520716513173847857004904505800876590025937170256005590424731479474541546933480140598879258559563756171872987873351678789660809462734499136528553099923213879716969644794983351683510870137252329009452153508332601520662171393592308727423096079936482338279463898069711767261937471121620414368047616154496735511590769581069669945870200593433803369500071672650067981838940577291977409913863087435700872896599071207603065788804712085738361978411435815597387322915810498809995551517152295437021860038143793972641280602877742767796310379368174952109295489108215096177713934416674452454383131301957265497220918210839915507531139476815195050523755334222823505208427314859133576175726848933949491504920334869945220484797482259090067343999065828576662475109676120893037816898367392655961376806816188226691841239347131711341561235929508027630515533701196614359256348217299475710299173651592930771519095536638545371142903320972567423943695023204892550802893331072918926970869040239683137372349465573222463268545024313994758963386917696718067897600845196870822713819093176945164117854297400593288805984602894993449321614528866699624955849658440701178315915843190342916681086568298742769218780753719256558038376453264916017934579615666965514660119352690843595906218316448380201550529959966691643877245357552238125565061537710000165945414633271778107807211802141626898273977282124054443128159104468993706625578466012000224534858729357202007345961551334436854063544485938157311303959820045534678376485301323596955896813930563396835569434217933253528618884483409399199235618570339475308603421559643202728995769114052459230296355705876667163384562611746054068188088994617028304439694641019179027717772731820126989581502140605803728062244743851508485462038278841203572858735514980181009086708083740077697771161782163480848641455127262706284280100338471766041631609008201771127873861590338666181566640111755828143275042401106137178776688552775364888947265803837125022777106953022142344153341277198494565872061576381322650903765782841664636102201313725981322556768710073073252544067733784081041437276169767057800298747395228579568885267147983861723884359080359933893246872216960012812594464251828503033188038085957097728346564921958805277505977054804856103262771750113122031692099765223425294524069119945946613578347049526350925270428306696982870727217980733143590813889842127993747428418044556654274013315105109772243949823416732067477966790736102691924558928798597595328652375715298069944648344019149822785214719488683970168914906856465055729983255089617863267292588648204604743169402320322044050221483287541016842449756247554192118970856169230747301569239068763664849537537331947375265937586604829618921203229272433713981268683547945380756612661879805750514237224657730456180516773494489443654450733706605122616243790056738210979008619558927871854071242349707414652315855916805406141978958931441182303673692888784060974211018987838889999589402644154046474206054587965764795261251986469727865147828513279498060936455331506960489701658108663196261875288511750300408255746279137735805716035017908770494644595403290650979358290327947312181954327586751456424878703913586649036433294473187153463637572047213093831108726375217491146834584519411983626104874099999170010753742432874310799766133378778123529832763320200379512490309633845527838078406751260774096993315941447326543783047687456052526317691877692146352155285883855233631004265851944022604990018689643842424696453425724092688332732435340905800373573116493909908737885454683034789406906142001117274230069345160098354658091837343524213319992078081116211622233705160366109350182216165725045705370571318508661716500247620506164324450194571955706960745903551802849212011437243381518502902973066684517888360038069476107110877393750775057855789238458114509881336171224420638984856313933865805748137009870496020120516003683687739881517104807566165485631089108810436932102302383920199424742642102594325700107739845970686830791069745122202045066980755958245412465784808069572609875634195942655516509116798452628739950933000392435557348993182200932150287031170369185050281586090914006378811856251963754897966057185099641769298377117049731908764983548668914460863749575267123253276940930887054935013653348121156875867930076123007040874343567144737835033596276347636643710362175268577146404156758045636556901313973951309903411896094049921994430477108147880913484082704012255317638859087727675799125263058066408838787344570242517555021168697597030363772775685563552899348746041021606809485871585048882543966976011407163932045853917297530089141968013793005628042510920606556583009091446194975280225365785914863996068195477807481319926247655877594278493735563999089171146927654956519860103424483427495229014523538916696870620078389707083528246967678986060040242731508061598890265254961460768156227826348429261418130342027927216133427214345502004631007831282167833217218850675444482338684330168203410711900921856953255793780229476442854468789060203976733719544257844770771972211017065784535106654044280088394532065304842033666182214666602575571610089115004852101990803293265852330057457768853972197686498862927582838244268387320280818751039221174888299247105762908737664740658850780614317371100958834934127800240811348391382798062143432731187003393927235168595497784466443703122054878829015206063511242851795490667318889726225358389554350762399099032886895752145066120087674386812961159522212305963153270431940400753808684303847225489486683876376037274282745499637108447910801668272802656754083952204511468083638852839112457837029542797010873011911858714284423724700556005505402580123334166066480791796067509177351848413348243371253955115001830314731641480538265418313256737437012794594251247762257087127889289181354399328261690935198474778434031818275915392665044770096615576239103885708893453224801810927609647695241737434169614555818034729811901944051391051833669423021659173333468736096415560996769210189684605915039519034494828246206043715855629657004141590334688048310017991721126580904482970654395976854809090369012168573141939265823999090269671610062345293488737080961085186750133114868489778229585560220678961831154028403112412869888072078922958296707229241771530386899298266701859210534811493340468457959726140967958834262991507491486165412906467807162816533989112833331915710162408596559955963115264543753233742017261388843415885756489599342368819319624981258838050272555226189869462335140634781157585965696256965213869293277701236233300987245974281226081709292713503116470626838697975036939511267759518805946277045259088504420035245187204032010832328507128827274313007533429126419358105617468028662423701205791216629972341679236992883904329324832693644714723767468379524745868056392337167890657838240623650520727454951704655016496104963796608521424280269077385803825625751112937079394183087667536178772777496537662255710714443618547363007271279772072404116213838915035075680039285787219216211687940675142220876282104977083483265824543753529266561760120945653572393759898337747857635190160475103546978125054023197273209629685976720958343241167895441456250927311888843639255307379802025469784822960619460982129873789205748016149866785635219637670482763080688693384158151498514302801280472979970412094430639313460506840853597485105304150144790240526147970768712122903134979567001611996825494881863406470020747290800614280267158931763093110389710963465626218012068654856192019407175518578731384190183289775446491509678823338766981327918059113320192905412593975149009248814224608174393616513966909031969197184799842986246115284629208020874330172329488618790798439303355478278419735282879272214788833172823997449983354872058207273488917622857497665849096842527048599708567406509493833277361840038898127298063416852064388750307364138583473027921091192771382021797632380435524830072317445879514963389434751771879171479375916972410302221143364266788669581628394741681947458603729782770498172782753097461041177218886751521699179291330575799596150806573574198826639145413871548657254289302198806019227974085801402162933925404124621763477890531488624363636319781746476773828734617696459215717055108387102470162511021233260112883450757956019482206915903082130453553074532369700940430669836493724193498160160644449602702402330404106834547654433179479438218196667993609562240309846715599031279324420923016054645286703798501496625880498143506151408232878437632879469040203041064478698885940751610251192167449513766944986007655506976928768553560341462823805584425227353195585940333960169451034009714913639949084719491036862178582164397486117672486854508439655680076100106094996036494055808301281082258574903018455697567186028334392442422036874912346275189177491758216473291974273338233236885393244664933831140360144180427673518871385971894392291614587779133872617319009893583738082446205239285563289341520772427710304113775390800354393798397704489384304209014859193221141608603571184455170795148233818913084793598092124624554220932156835551123848369331750324995654593125859375340104646361169592534523892274494849899440509775315665011919414541759889022214751125134749963029405176320433352901164767374028617322817852839894504051517575335724224358531310750216547681675549415166588377823635224579029990335100166507660515877331241201877967195922059809511449396121541308200598775325672878305789786350018207667261705126159997259579321605015601840739424523721577761185474686902296407968890806034361331127950268638292769057617335324333493123090040120334465341689873926942503439985010193086596207555455082930831465918562099000092758020160903215279251443877180019436580467435499519756818044353246684174459203790840353842329339632811839156563099738857209847204256781442986370889525745882962299122902556578574248645062606629129687077865110499163570981184520506585044274182485611988256337706279721773921805507056696692148281548546324255986634477491154601346140186150961144385105167401236674618864436127803899518189173252377709258450815035009994109668590069690882865727812552291554906740347467941819158982868935005814367343542581062666388343809666742617752560664933785020168712430299921584847125202414135235217885901601326223247275173919435522933786258248033246501305672738555084198169028636122622690305690698278963722500934893767856468463944398451325682261617738497181990016100058411331337860326862377210663463100387764904767498207434794458106743433970617935840259978556947706325611068259145308012021087139821507509223636897536596265637505259349690331470160710721780666180087984405699294582829224496869723796830375571163501587759688380279077808291105493180605431392804220480567041687671959813533219162284925806612137929626962867330126610720180428221878432101065673437900955285066423634251570074132199119535470213849448774779091691857096352194272491110523605676742452890028002459543286994859497531731319004851202190881242312669744233572877815882435771228918368873345433899572339489502846458389590052821192840890844524664477589867583757505933453491485114853926804369480257703018254866436561157768916252156675261129289630697139834520126636959552335387332670285842440464426261865719272840526269127120913837042495382535624775312229945866375482462263336763874819666795343049895324027996582410043200326251206038564855393784706561590999361618148575451730147836171352752388928783257396142995594370212485187160125023815825559083942465279191184063939860276301519855349293998736966434257352417319128267402797059619004475324292238705287104482773724200692925552912220499206257824547230092699131255099935529016581455380909761883149995219307708667173610537577150267378485115589934350395170940061954323153311834110621898373963484117987164508870706618135249238495198379815539729130451215695240809530691333190153661578732458592845853061830507297765806668613861527050573161604829386282859318614773370207991184640666307582839316835599656233494116709897538950855444708545212639644503226682919466394245729206799764703018152520657425036749669423119846803391603336868811486956984346979225296730393129828290312867926527489834221979088466311975513344983845852296597978067669095415693797709750383364817476789934386377149975732367956043194530906584368810840265873740700864765711382581826126884929345289484051239443094528629611794263444501327451896207062763493358673964515531339974068395040235987319245094797977012778665738877081932525813416536276303894405879740907472350341476410722805773745129477622260269456628125389049286502813661421727360754301548864762386580839520551975328760968758376962382630236081873934823083518630272515471326086330334245700099233350513783752718459684440168315147363894243892699128807015431385632573774166143253583372373371423752214912661561611200728014281838392692840340318871118583489105997565139008604035981452913797867578700366787635600092585150618422975876307084488102294946442748124478361140570044330008629256016565028296212591002217790950053836517621896285039260477867774402164499166732625815249091823929389110386949100837816540617487064603253876798218702208423839357633082618218911690644242541100987239691637684258194848779108626074857422711534866283193229019957268350935301022577417712826753385859624323264471028677791422380377390819293558042967953041463088999657464665838586854972645784798295688712451022914988451431829037042255398105087575387763931694544855443939485299587349630057755496485954795402415714453750231225848358349707053463823016734522097709835389593301326824321053995044938700559459592796602256043667042740827316445116278414120761268509533656640119366082227971591072466877843609566620581338969798752812233240601407218733226649256730852169544662378197785113857137362472078242418869204101663108364221303172129221593233705415538029154079552938129585973471009380598673086004043236938430741905750077209858915278423643949304851110191565112520995017287115690026948387605570860024734918537172273604239451738511685557817131949189703730836320770276626413224271503612827382653945152781753013344014482454226271749780331573119649969234537718199257231824361878061548589888094113426354121720195798420587224422313134873845636651948226132269716035163063297745030325740656162501089727803810115057084255377447532447776735108071889819856247845356371013963661752842689752079389522270836429693892753346681995602017129015221354979935257545478557830952944814080380773296566326506026839338530732707344528601931613453841645449308874709568891340992711569903604116279663128104173757589033302197974954086738493817464068255720582061503078696900433903725704562648919501683343819005119467880333928924834041343149784441204105053183171091765951194684889578404035045133226267164005243322010454396504577495401508041128960088732704732225413214810023960547650323108639293091481045624112937418815471498898312169115800424837725783710190828070802868553443170937275578876845774130742556108361375593013534455606280854708108403280431505408892699305722146468144762654603751120062198281061418630649495150940470100462215449864054561314889074607149021863373737099216450383252119646765806066358268247947912758194991477836562655217060075760228641876138389749963518138997062264889097339352878199963532589389758465560708139783349561201191323858261087486727654387671780143509296485031210426118079649551033063451553187481384908833379484403668356250226784372114924428295444683559776547450346817785674600803509743523165955456006108560955402965844841773555041909844383757753501436438884394679235377719237036356400191339846842527735058295040281333965131694834262638268709963704109683838643550432353639837817553312800004040134455239035969338059826894311316481304154972527884476445120970050012225832309013809240457417161130980519283116384644996786775992075767918101529567677848177278482414823072632055194069601894610227666930702185964084665984897058724369802114321770729313542264382265127714804604658198398850388380665202684711721857501956177199466290978417483295861449434284942287121602756316724681785056786602825039502463499199147582170706755873272102252853867851200646367798599578161588474406902222415991517739325747806228487585142892757166835032356294180459895676848453040715003712669568549998376534333873637537743800083316196121911603603608380590306881112490832899586729806711511904372829257458437554479720071709878711391374044899879678899724529176516754397178561230916628810842259255195355020223096035997277728382254655776299391640634139255614023109706141380604948900484941233190183586476285817272416853708615613751494120505971116611391832485617843643858191781136028471524471688304994060736112027013406395426469833635531952674648795467981153566582416358601377706143300963642239639849576351967578749908440488682637809903838769696839594352431001537438195410278964457911844963409639968142370350519306082027215872376033908570403009587256320848856266029623625976805591393964739420288145791247625000861693164306893861111168934209956694866819062224672534464644055232549798367184667656457329944812343949390367705072662390687776873445125887790504341710508768421437476342108233194909819061569787775890583545001121381647735406077189404809092194200234073601082215755498012086696359200116235728223796597379898954312301744198266963138121312616565485485750739583263702737565660707357928216559777077450744144163496429426270806032366580781023384981837702885382829928085755873134098519818609748998402585887103033526840863655268439844983372938593281682936647906009747720550029420278635300624729462753584662843441123797941122539626175966755421698475203880241861988492141779784788557996674218545940947576199367749225611414174437021986329720175539631737111612284286190623904220993241162497392644539308161736744167939215253887090573361662975275133481632650496859540516555323744748419082284916269143097401795843780587055872316920065221899327879484715540864922836264669093013495594791289900275539655702805553336491437647258135263856613675064269142047031967231892814074795064572404456306548533220836039184830952118331982452417152730214170120814186793247751669448875602398366904478992303288040265385526216483529281437265733650875337834677742065905210683904532009791223827572424245389419621716377839172913409078616130835153111355278826394553328542006584592769222093834492970435538471297894576230789033004939168821444700373911881095658693658479602195343195015371349251268326313731947302172694349298264077314584119997180668167969060257842783073662868745326745753082981284783040725275736739369139188692757194710866479627898363156176455532248788123266418027194024874554820333367602340036591422834366764868262901213169893793879642685276395797896504530084113145242701908497673803899905701308908676270897785580471074227205111009836369413667684132708927700045933740580395424333458534161923763182517218352353323837031873337283321424301500732377989182502310715032851045123616936988257495688348644076940040224992268373966921195450040051590342612691881976586769732898329986538666382718783835782638712000821530755426450170672541222247146018712071810959923490230345870305950164773823707564157753246887006793105440870385904705827730201757724911848910183224357267011410334785749503086919781157231918502539822414211106202700076970379679481174923546696671463326579294609485520285211495538737256539456943148937340792495485315969436034012310239456436912095594273689383167979666738338304877577341549666499686017311054997662335174317323457232360265930390360261434746143270977454368721492222099825356751596373368868691550906623075159509155288964367003861835377578343729548229631339921030660923750918646456042986097512621453590839061071029420720604037821697002877709815335318885907553395606574250203591810645892171299125963342222440165049481239207878359972059959657395199268150581487552790409731608588498908763029604348279015293897969106882557423809702918202325162726822196247353588860292346433069751046593583322657770618763850637494364354145715389382999548592283111614719475495231607812921291597413473689122176475589628654523640647793152004875551817709098173367759734282566527575314719432494031942374979471813287142374554776642355376999213966037109092272869606198313083000056395630095049536819994727439471548550383124140387474005192398821809091619424803873598264133253441309137118932810252782019251069507034829715336858817373733804996632882587628806191345231615219506421194835151521170645750743564956305039222240540274113032899496229873762488901004666741622357659398142033371590751118990291405706397042582990793868892045329787517335085106875711411441897805189527174435708327321291728299130452734428797394055038071113065086807739868536333300031548450661979766352303079338702410029350098131759070804362141538113331619199089833224863039108291028577951790012234667661615867730923374680462347333944566391729158414286188494789970477324173585620777938054653289283508869521333557936640728595616654479554112877392433757298936022129670831960718161182349612436771969220680418656597117218128758870854246314027901063800036633384642809992326275938380834961549153880630415113478171959849894967771851468139765459895813913120295428234030080503624414051145892554972969231558155153475184431861396793070813393476886357924245862056834162052385622218281830749406716709774613748634364290520196299114183782750879394279376013208865324394095836341336531438026309372827648408834975483513879656357018393655375350212508531812469080226237637613328007941950927156754470654886261513495847638961208173209907997923145291286689661125366776928698136426232214305513239103760661179693127595081877853055010597460408009528935832630843598476668282220504339423156279222228874069204014559363734573546146281352169391076081305458858785945117948840461897582180676402972702580317114783614380603335397627909996872442723950813895597684848273962924089549069214366498163123289536097672878670346882117144011584148461284020706230016490070125386904493066266149853679944493948777102238357543790068810925892611900410841670493416129581177355309648146702321211912772240864058977471998066967040208441700174860534167949069562477481467964670815526586943888897385747955509461542040407802551514152714714745450051440375477361527919799113246596381098276568175287720010251333399998436564813897396805787181571044853378250808916638502219815737305379798515651333424287889309883166500937023467936620228554560598152055537149516132592738869279602576088187163015740021204703402576500720685731140858718953246787125215222723468118942420573498997518914823119546997131857298118010820616744382549615720561564755487149845219623368369300056121339916639528110971228445898377836814848761858872995365007387732276715525663277272715325087509151294924865645278526012060669668087709435992125030089934538266967403155391088928743489478221045412037781241177033416234426754600615355993920336005732597488531177069594980661520429753893242932868426500406316083741510761935565983712810248748907569625810406409230369951800996727717377847568430880479693542554045618836101159900190225583374847133372268957690650261244807945402485686775792991597568459306242068162770227519702273645317741666764473230137228930134166166401215481525156976057705065621076025185788970436039807079750022551802149471555828672728941817174863685912436908750336710736961330276767483966022537768703591242680286624186570711151435040821146308551591160391435388158348202339884943843003351616123971368639950320185477513736906239083162379924639784425670853046131801207495060362213190405976581029418644228036618395180277682703091601584725399707971591609177745768990280769853290532337815539445430410472844713989417757936796414091593118028016299921366313269354070835218800444434640387099898748623015964253124836255737407251115726893722248575139801156381825091587687069889831296705453514659867670148676216559110282490398225540464585199464831992403876124231094675155260032911960169494408965378302572580512810622635107951201586715022374125848627522001927220758205216324963410174802326937871595618381880612116917497681938706016607722731247563306965480419827345135761449316481812651210577950665259225830701020857366768524290090230051034884670040878292247598448254009282149353090967769603683958770809528560573798568915588431785179637894071396630646092384235965864345704276941496289417148605307695444727001881769268077573520690598858136487706019232930705119933958321283594576774121425008978845182489103826028447479023994350196624854655862153634495307279227469098678799188638714079983476816421415341748110452909740644351178780811511321854791414421845575541774608972593710633366618081033418825033123835418324338061919136868214937196918922478205720623254047740566871276911384542036031224495221426064613509182792618895391707950252518335051532681120588248231465215271857495446104487548359494878255225650335080239323520224514448463566852481307295181035976524757573069311746569745973790704643420447379705148930992963553645748493646177580506580585807181473325761558515264516807680969961866830786549784965136396439243134768670777991029041644251508447054045773198853179050738864208646068621354895917927519790422996744362614373453840415161188610652906793412865309534359375549535628759945649957334975675257046271582404579076184259088814940744259878044603767861985262904537442082934474524223284786499995575180309314850715980734931705406168020458702076848079437619643588999901696894008240511535110848557216254012369569190832959840336399027317349966933324102662698645106587085018157964116739100980977294484166715173056388721883804507981875609240426046262784121915780982784946807319931979818911002133689803590329175975877342137256344076289209878531263195944164996438044109964124846351357546979115758884433648225762751919494872442888765634164176041806772070536139081115056358375436741647874320695926648100891211021090156606785957536693477053076236131824796677212036208647681603435918656390314870195655452797362046331045259786674865948358093893034248137880818036845653820001323804510127913230330315915254446907608206736449310772775261753673570299008593556123467260429276981153565974343255983508656464076364024296776945693702773060487945920577214639488843568448358006142036972659880642049484671650880925783739838303063279429646763644783082599027010932420478000809590328392353874497803022894944900386911465418809070544255852228074478887754996190151871015548253757323751178688601971927897995879784637321221797039791528257108612203428017363578630676226867049938013993661915882217488033699438294793164887009126554465071020393482554352129761219745572732703164064996069259550007524409265853114996966763986468436617572202968927735660754944615593271137098627206707390938609599199293966397490186001338828657285535671901246932791354630050357483541802751737447074612620195535379469738033494699474471446070139933851255716812957141444447522294214492824341774597730319825630648357033983833880224783417527902452213731932559339558612207934804734848765068988181229382237622173211803264062600961257927539123669706631986420083946359038683308288699796188124222714918443020273601345853373932648875265901693139446519262293767869366785373377822157514484013660808516634193608624220903495557415338938231462062787204888128346778569877753328012631060034008919050423576852962578390273708617887128881807893005166844435161508971925942643238595638839818810323423257905117041397309672391739858523387114280330718865873796087513520917082899592756064224215257233693257402037366156808054444678915841872892277277460237336074694172658928323384765164598137106190029364340304737410245921996191755094887408670515408017464352186052006623940876815498023481536195875043815188451820376219563587240940988958898341685593331490164126992580679244122435654815876683250074205075458002899345529684374143778361890496067667578485735975886933826002670536094760147460715541503116535996587943043679567290806075324897185854357522208613927635778574805191470318081410377009429441821031351500247914302397070747475223033317790619763238743475574854622218328383258402588311031834036944949720968561872595409846414998425347772870426976893288149243799367425715432711434707190159275482351881403600619718850874085209462720932833016914988280329705701304611423246505913615503662358315704051120630051682404873046359465321947093984943543427768432025519962214836668104699827962000985919600610144157591441826225512272182678942260608411080907978874042396719994559460109672284774028765736830786396714408317123427150888038294091092716404518853298298324895607639632575918332147977199004419654126143044809989068590742365334831661023343674716165738083219333693219446547745878098684015872249434492684188418188611270193201951271720477799060711828132213317811385208375260983556134843387865740853708981260644467660067956846595441737614952090299706517408151239304360516908092644389452680724562519427668727048994241161632105810959432562216125647975082997922856564100034967989360529059736329830254385957603512782067062668309757429927705018762138312550717660374075530674360306354730187843644792770311510545361562104488847556003534404796804471761726525026258426228785584498889938874416423730381645950042684309981398316185127533532906575627592700689623611835695070565691886582882263278104357285437075896205640375270228812050784341902324288855757469176686364157076253788758538822250771182041956114360336205807823330349436300098368015962483661029259369396022726936140531881204087720925851926807273233696442848814978118546384004511145235566715708782953026285151527156881709781099095363452584404372134491393955861286834199605905910318436821917952362396820408908680117660693237679967091561672924398998213571087056565171644287647641379899680321615390845432508443088226948547446656376748995913310841865675400818676684647377728187802527651251771076625122142822392843350348184012728052967712507313019040576164029523918400552714571659004993377670095655256185343113402680538710102219710644964135950089183179700028470391342325840274428335311338565825718647734293402198098008210542887025395609953765980335477334332602742098342632011749929039785690705053141983898659639508241889061818550334156915367694159956727897150678245641170516263783561960692831141022321013529363696210762879090255612524664376184098170913825936956568913654419268627543744860029304915454221755610023871952163222929912793562484129058933733427681219491682572410238050420439562076089101692004020367289609530816116677690018058923271997197080582886169840133750248134689745870313097502776860331507714088400777834556933279268184051858514110861377238113679009607119259946782266004008589442179094300892093907436597177220062357436723124582064541472672674753915833284725480410748211480775667576266282331575951380578374221212325414197431292209615488485215512634989597943868632990184409171468531852291788208237000960956228408266430796175836161338737801458261071767717860831230157306114883161801810903424649447367036595901530432315686546050268631409350705864429735076203441936952679808486067711941000579318775772644780215892551969393372048486981369400119501276674330084233307388052753164423356558223899478334974689143997620185654252026740681967719720640078137331019482396336677450596714564521332247450701642495105203830115297332416609631940255833853481057471814543737700594683249533123225917430396336509953053295246604193605000976958362714759904076165586494224328931803134000649246657735352794056329075071550615210209889783644832012748613553744749316659441578733650254540458324626499565000941477590735573043618741188166797730243550758328168131982575731840879017166272840928821478767915993015025309535608245675059496301196444195314200867716530588452201489487843800528380380992156861115139295124159651037989050941118322223668749504573727155226294203687226764202595192783291803345492396841218959845891273822414733460853127841031959620428646599359113813449449150839607748427899044083960594426922377526076636803550260749744490925645906283960568100146834070855551493650054100850970354624221717329255265622395300422091837755651220143581072732706001818500915504887162669275406479181358773138809038506334276934382869269188705337779816783449433459806037511021754796004379839981400560658387622390003702425674430705863709451682442760983993601299004050939528241884337648133126771306136896708688224298418250167312518492558669814677823775921392043890909566421491471729619713213143520371726229978670275086881951822850773043369927377008986344546223428230939200491270634956435534013721367171353248992767566809431335757116076633045989721643538014923295193970443980284731372351335053269789593505581023475313297556417233752524808585151195293279665555889569764670975335793939978717584030214184315866810071844932302725785055021346716688896637845220384085242809314302484231613977762606269330764418843267107064687035586686726727796499766312914394368406251746885407647857090617410205600891540640558332776802322466804546856053174055123585733621071397923884203254783385330159299481856919188991328443317438623485308868452609238150043944588858701253146034467814092185304563744612821781619369514595420623191688210424651401008381429673651451302898003338841302101328235298661633820387949145284621755207153973774406268737411582511480812264856646901609396499728212606671342073149223635065861539294312938076601780158925625754196074937277677053113303743326357979010046110191011521852660333220730399700613135860232509063741689480184659598469992956692178438171024639891262227458925841346394368472188671166931621068128853172529430254072932431459315264991279770344577013193545128099701669863662531216679864689571266576638864330853695162784705623511898377840513187802273121692168432665572831608373012988406704515482933437254548073314314999836149278988635068285673023664983505562975970028326102881391759142825462685311004910228920259373861284048599863976925630328142349872222351552089101662152991979408396924619398615323080256895403597669601885973037429656895017456607457673114931316486351626343883337013522567005844159639582682754412547865336041656563414819569311067891738852957329276508580816426605451988345644993652530898794722016234875166459603170107413780349416335479948169385723274586532931029582839654083124842670883709505193225984144309571163173185064279424387466858479449421878159562992152257589351927492536359820846706825769965198443822675414437963718788218001607582793906234254300706894688231911719704389528865301330703544819616185951335439864278732358873515553091188379395825345287489435255246254650933466075220023490698896808692194637337248005404781973714028371623124740948651642334017706273383774724815348207287964327429918137441341654501643713835688989998150678126290114362012219036893678953623842188824014727564489732253531556063937539139610982123387294045267678997565574591664860560546658021146479211668451864818909452032115208246423494065801931539773005512192087024971668679449837798268635869038230914627085921719664073566899642377365611173120962701735137489768774864341138793751532017903806728568519795837194640807861773660151504797016249971250879684114840373767830980630239696990219790402102728607055302125503637812950602606270326198787275898645634537674899841976992452786179312767976196623428251707016798246401993005977616320972318629202779516639345698020449887446694768096032604075357217961094658403951080538867556041872073257465458590479470737417906942121997302776597171842513674080215305353984194473793361841218733011806904030513518592406488429441402581194564927875226625302298980179545145909586816448375518104608427334166295471779159542391990080725572122099582021326490550104980540457029829696627634035103050947251337928014717325109019590229487900170350589437036227425908807296336902131636745559941902375251695059002600942699630382236306578378067928654450057511608342062573869387506769920732938064356888303218222884653892046717938775458466399327870282780904384397734293224393632967102344880644754792658515457959132946746261838835942277512027371502054532398904194195087370875270107717564762275804012828208658561971824411395640884059051168929920786461961899845741413460653750776575693752813621988317909593435497774909931601107009262762669737347593917618634598971588715778097246053753077425478335548990044104777524690348247206267209652857756277089867777587188300717687474106783761617146854661757391467154239989857120276351575372272329716362409551311112039739344246219627736984024503672922292415617331393609268603384950719760506935402551949973164953429306895975213269692587867009073135784524305313227752089821948600684749679888708160033836128017793161746367081683629016262853227237602511298231748656892923172348400417546476850442671655451821752217011769084284216835723015007160258443648560785311625471089021133447765611930788093574422063157304877462064009694561230363697041411689774824020576215290199497633685441293249269415396796827205915225059708107829281962403124350300783285096553160193427341029279407252538644651139305552889565352544597893030182434419600537125132304491750958119336644362526902815750927709925795988696383501794967554339036593297707383020639537449159549408155322931274381238068826275444728189192838206456578313002587109824488111688178516109836319169973142273731172171405586636395360019750447343011987436239367561652143171778037576862426460193052305628145429809901420353997715728800073513744349078230981726610809146161294780115358721823679319406712513949589799313267954717551117705687755764296038425951685155345710082804857066886338028651241884379795644228897932569573461177321176256859250200996798183696186949678903383121546430696125932042615492219494952383714520517958672108454438819931534215779829554210326471496320919502166697374225206787772639385251107734656541504736649164012792096457059707614165564832018424416476481273635733187342985966952808203911030543548168553768454163590825331749559143566736883678339819614262834554204114662526263480167005627552555614597069164564968685256722522130205552886266280464169382254843365199364591844216750129055493763399019344099809987897871719364691712375641730576908298242614984036462995802344705834047069648137733966096179880529861084472627881928014746099750837219418422914134556907934666541359840124131769411682265948027591209081580125489410942255050700171617894858698199156125924363782800641632062032881769347239453308687736399422043891950611792285452336330387468046944059418489516905940528817474138911422919423342448272819159081574024893384087277735105355754588939200745679080840287908967372842471226882383147186148070707176331990366502474995357206670535504675616790060143384216025390541523164521820725182983113995762096748586811732634172037520732523802032010074635217713365971534457994580854871989692170135254570213972801503215723968291981459227420887252160461296469417330541330167739120927907368593981300540944830439623843140553672246798641452737199177669772203198806979682195963816631021827426151033585316906536425310284359504338641996470613741236600089281918635501714160388864577392035970136818220108560204747060739475724569499641872488739009135439642055698706091124498554472071190761749189671788328048506777207370892894065183077361612326945796810307812993360475094236907053016056109078540000336104987718169417095772699660550178098170706290815754879281622645773218813555489577553978044702199328396035174070578085092196888431587718933233057996311167846127951862224141633736164990264363805768849242293083614267630686526645580216355144577055634428046464050582432893754202116236292408147053448025883199140314034566452685010442931269252556001609645758891482404255737399121836984520454580631623581833483779254796912756923146747504903614384638105835482003133243012516134848056483059180993169584843294942134510164537161406741806201936958174850837970401743487533290618066265483995269722486980914559752083122005238978273864828666097867114221598112707475443186532332056876371551959868674001415047057353206602826496596775843616595244460396079729195406058154337951356416727882901780809686534563876531647196040031087292361362048500079285672967406067888504205459670128523372233374986349921533204915587067505545141211589830061872327589837220533059606350429376636764534459994837441288456633110794940569143117594195827420457630931659677280896005974530685732946494008178161907690263798103115248350080558445748521632534873852720925060752331199041809327565604816811665443725772323919211456582942431513786677390452275218326359357652872133614639239800688046692491318821969548182407288215783599674782439403271510555546948605732967826892039621831398427142047495414445682566185258397634965598815552342944300813604385278961340667662384331904340046614826882215763345211756971614971257862960760287294774624955536370073241467118760243540138872610767200094121637465511144446470945994455819140161945921461151689931356578020508308407546787797797072162117527582712499123297532330649781941276723249259508280290459574996777753824136806187538422753113920279292380365274294207928991639308712728736259810563493842993717475431377540981423824954115542837179379852169220432672411014036991179517559094404327235768070429890342091201283090940915935224999249865514388674697252620919872083337230480820587518252895841884672982417452520789081612669643010010068661782606576974097437914303664848014985474068294868658120409928936550472942583457347663021215151424907628095681106264152715870019543411217608542564428706535238091831846833433153553551445023165583394625514403232592637123359762920866402639529878692904666712142508121335747951111329868810669963887578062396347216364989985563576792240042481694042830542873815379591845593866629597043115703279999588857605551924939277579846131326691866395432429333495291255155596220799277057491384084890234403619100669902293212096147917315134241375263897676758862452973767678564642193506874326627824771762459896861254512703905681969975015133124280346086727292154933922879155718815413047785644323963986485925589534889935160363058735135663108933688683987286501881471521614334530585128663215964638939500912921410565724593319258318639355786189753835031210223760578569250108167329698072671738452478503312830467869048524884566046298828871826061459347517883932984744103526973138283036666809174066192800956782024269399147790797322792932629933517555781268815430399552876700664535961166564846741862229332607967998057808927432755819892416664063422777705583119653774718864307129544151974929920191275790223553425839611777327645461389958100984907894369170375496175048704194677435087877140554697139626227588060526184790589203414784623497425633038502667648859957140244113987862769584735701433067802406779671426672161443734951396539144914154164559269226553982200714275336588304629979652532339001471366950605073840583805397753975928508922019225493010971246359947492705868141833788690616279456126438473002125313643121069989783005470005805557735928760251403318552342745278940503558599746767459666255024565001580451171811717951335350662768560583296984980614994698827082154349177344095104056768547013462855568597880498987420835744213759166542118532022242163262395266230056765765623268181143388769033326262722559055497441647355046039302353140153604403193171679285445633842458985672139575689892589399409174962722385424357249698200798454136833609021781968970943646651198572297735999132405315082757994931577098915142246809437915557398123292725017924181297375189014853306205543429022250645279391623900638219726412561311022583333058218526504070091217310864151290107012964786576516134488638748703687198543326844528505293880788231721375753251165992955261228022837499876299065572143923943258773990920372701498809471402785386955190919130868440565451647130584497697548136074220881403084302038229134698168156942403873666707549611816042488656132427952108466815021573954261806961259278152312603923370229836893518769521885834876801265055647111430403063174138062963374733679105054133799061471938181093667210628616029020204205032277435321908191279061731678224347490704619989568781685007796901141534528365101177664101968273626579028178351020186713083165230753035582809688892773923139287969600196814028691548259124846986185423908286957229195419524815215250967040926140227350793771968212166567803699891771393822353721927659688095056160224186894707493865176338025231610821428667068264123942798397850493348765792022544051699069158740963779545419882921432300878815324441149786810699142468084134749051157685482198483698225573358456963769017872418852976780107667512167457451116344003638874586113466326012389343057339263115185920569843595535438021725705153391503290602312929241722335669941649039689233920864978788831170185838276017551337024323128278474495459684620671498517314499514682748291542572769012925219644615592200048458971111802292613519525552492428253008518674253150420595504543454182013193048751029409154734385424280322379759295160461311073722688314501572815058614960325397341866769696706736172611499258282735884464173848175869803911032511676566533704305384161130260308684234340522691205673576459961634723450221825053877522777739025164037586893151449468536583608607339567058230546018710994721372460602662377750634288264136002941343369455673977919140088362224696200588477641249474662851392281721392743066916450662114650337342044620627985780654041536416159698293731135209313445831089194903634577933941153010026343212357994366035551646017597639214185661169437677513930614610684333519555966466604627210678205756008166474748947877237150571552115583499121922101259407765929890299373741374238729870393144525676283173473255640544089129181297965050672270422965893420764694617480007976899587820809859804585939993866040025425862597025792036920756789858894601900802881833594596506095707400221260339404937046894595701276044817198862259254952039235567742907118129852437454839348330927350635716264464750137457555766527880017460896507430591423399724393227215636033128420393582084494147261267718005050875539284626493536792420717686968503263517686038037492816998847265239401961557217573051116179763332863912100897318260300349439265763670368161131673194921099095718702401478046741071270335727925396170687554408582024874241809882398866121721114515203904505220840307836637547881556345055442830721413351824715464690132410082073758236625779503338187629698215971272837761482345650752087059265003936290109990431076954308774833133350750880688574654061010288816121045355648993072439397333219453218022264725474664500016874570070183400339288533623804171659014183286427718527075369726834834162361363553019186916165153312613077283559626361372900562335478828129135820643546984500201366133395607979705501359545017589932887627065636119731380999965557959633557829569971581978025239692947536655790953822812841182201211528470723657297893071110234646168249330114398195534418825889281799095293982874402649694684877232377675163803107365010436388718029957078161504101304548482374856099938082259575387603915878392285386181473400851608874540108561083196836950352634934358511120828875897602415098460122698222050886716068047216330852070459999900784871003395112248451580453045126053532990662339766103296098145347920086149468477355616279571029517892864534803342109469575632757004024436786758144247577469303535672427783936948849221716992960718735570489012082793202660215028354008376847120443761628783159123467978802565408783447420480909658820178751606469066516692392586269480004616622226235469393643968237856630582740174206648409488255071709999541314243760605920065555801832567875573142577809893782484603263595442784384832972075838543397675059807021483899411814611326061047820175705712951682119468108407860745002069708983909636881233473453920481039257336703744970589276439894427049657040683633471911071748201730988043508182874978342540050597171658097929539440916721676154251101218698233446527848774648862689211618287533853405384429855405037170248837073562053133723796137524234785556554456226275466526735536092992889767912594925193342828411835524795053177211764347373291996023438672396220243470580311374164489448675335231085669073695299581968227664588857881432358581989695387043431024366011046615111428014331040427917550006192062859997782908459992254920519164018200551276165796694633716584752776448965331753776637680033479436281564105668910943336962912230659574605776493618554164541473735018847976704568171257482608973082237688887501253418380322328411023304934115133856045987548774680643466375437761595300443743915321551120334633689615265143954566318126132522839688785405330336226762044765976595328005681089201861280245380026025366934984604353831158644456174267920442014007306728135487491644091704930436698322510572022335806215645382314981513236907884559092170236565080584072087120747145359589449712347260416964311077493000182420958592699579434615841315870642955250619004619338484973176163036362038805898086474372285637495885138642325862344872440361590612252148436331642349555083003023145166243939406038050106607605691926098636629563257183593311083736213556140404772887093866530517940202244539285562009312765258701050930176800935046985306949948282634358329143254670304241214799132126945595981596296405725804731396546992390554956919448353779069053515446643259432225473137529256016251713691086227785474037661063371237784867746447220709676689497818487814751282577504211677371830733973031939643080088924925050454233778619873857801671031122937790666047657287123335494158650306411000014869319095146561392145002924933262599134992069816632692570165659805546897155854251074132817257228208657655235253209511082243649926651161885061667318219651413099577656612259189655258693858820494914053568274383360366513430281344464701994996536817451218433604955664296262012712493090296588802211533928311044556496781759091534927869791348994416694053447572690295374221052096257437812252063716004173390937057190271029376077069462981799191149239290752785654940151206769664887296183631028894269606892679593647078670624947436157427301833680035536742784862336746350844757405456543716998328224483438502429919291164148855421600008136232769232364627503308784990032167592937496696663627762667358369827491976390429424383159113346159333221874759004999329129607668814068581518357387599772986335811290342969146304428570826559920544560072500014449659369545026857470189609350103930918478602443303860085783221613416504569344220639749472170562276214125076063845339942049375870248361682167435499032501589497641557408674892369228718806266763002210008977440170848742521404955861421542572436974785638226143598628443127910372689371488484937054577684207663743978220967456766998329295623840113084494961156761220754428180009818082988118500952022534218033460994659631809927623415025577323660417585457945488985502555061999093675361306130509523170287987581286072595584019032321181301467465440156079990068278952695448405481909803593012903493948843082424214942545169391532679759083223582446162394227542727436477263464513216841578049630762897467788166092240637918396363568140220056549667747142235199783870235747964020202681196539736448814164380612003617720678287743223933712360128719240413373818753678158861431663749157025946552600955160558426786004801191042006528886590714294004929568969740269512231945366377626795695575925399916028954200268854221538530680227364277446102498022823708532417177606095355237139900000984547774589107452669218222784195602351391136045678278651151753183837524465573013941161099638944942705782643383540297994834439220335412155163830339248688634806775893224389567109715324124480163618051155292728247248388191626262659068150230913237623121299736585383912039045880951698624317430366157210634216736964581263571190183327844669091766756812231061075680661067675430301391870362813080152869129715081954839243576757776696790716370296902763969582980942279423988102291825581047653749192914122366395301333630277641950067961271145186767640929849811175007777716486050699665271143869886913817431103207121217431459654505204115616041900406851781752198382268856842471474837922740335761961541392891129064429260708432360919400753708018539928442769482050928455070497029648852602457636153473401095545677799356099642001237173257647137675573779635249491238803665238326029022597632618179249196394876327101775193539328298363973543345128374942134236138744757399121266739757922179966561646708703706403400325617624950515170735291334928235236508663425075088304602338348143798565890748889218070917996938348047511323993000434688724093917482738401240161801756061000985893915783875540212054795334548428527891305098225806656741524697365675652599051069252829130830525967331098171262921738301439693797500171076710356777558161564588039026499048763524376435988536743770572219491710110298684888591212947616137756622075011748829845291501046929040849991049515306461217619032553397068526501692113265506691598956875241542741972566642072285529869798692272715809354314763551553008145531517166663437908431869126863995917328848251159012485998921355518371128137459425852664083248987753030736046528828263231240666052655620317039152357482707169657547963292784215605667509713682652179077459965906356892011666390536151389223083921138273453725821845798171000136265071482827839937307046305906161322165894055798370464342146503617602310085773339466421758522366549937906080035397258458741611554301134908946025409671488927124264815332426859646598104292024394924186035462936586646474697420978106342175469910236321818024223180682565404535256630565708983647267657196577761468761609126299760869270099476478243977644524680994068207503488014828367982052004820454175556997725328203287402598895317156675095378572079044919934223095890053565060933504894914590754492802537138119736833913282204807092160432717919041232566310084259745602339833374106339078625628454608391142169325196652492694488724159631309834048374315848380812321075492421805021053951930522216952854863073354743977536435269797624586480380711233775385328019799067599754664259942765722447998088824739737957495525274376720322354418263853174514844315512848400782935572953912580331221651835978880218257810562807662928547469990732451187087572730252838958036622780256575247437238693036644431483061803838802647940858778465171687363436074141915974510288926031334995975245537847810171753912558591273455639868107728295252007013833262353263018491232335724234989706246609208067879336742261293157931703868922354730007476433658487349005312977197721575636613812879312536095960274983819493047699259194981617385653873522359503351749304673495142550218420077979022866119198916411724754892536693713170358984937689866520534340642216547012652300586498028215265445102816245282969128902899622825733177237852525117806898577965195551837420200967654235715218575108219998875683080418426547710843574117900034780294624604163584255614637226281648920173633763686984812239143378803692763263361449216185807421381006333675909626688498746304077303381624056413508801034793758058270496936589223094386110266950027603088881229726625094464305239664608617192065593292661942104541128936086401195992915862585030354142142158805960021273549881773886428496098252588462352905362677208155992765935367064558617023695034765662790825205084988025745256834373958268948488967805758661716075400283724943984512095992993306849181978528334546356246929068106566491261345728900397269220322493503956978908933529312831051089623634941423944298808048459844069214300197231746116876733630011442586035931389169631413655576301678250328230383141077282025341142104770600490708417563720934978199929825628533165619243628987728410796222612431626517126902625674180975687844799766107938144036533512135619448233017294187808329543191759121711314829991981898556250819455735959983743565112506009376645766908684978901422354126473056505630589758430592471680663389310188984620533201640928223780092572117639638749106722171737725888774374672347323494080746014911107837885389895778225432513895562601920222793108911923316352997368410658196888597452041879060515789635448588550137003812500680753795403469221162629564267974525549416315590226734380474087727022378870244869001981985102368437206204343409032195395774519877453660050063939901389375867108748139603199239918663123791355180837844013556742088525895068791462275077597623805601689615527248601404896880067225930375049524990646430532381140491240792668160312947837468117324925061628605795152601377559329917298941283191016915142164219740145072709501889009663362640458447094775777780977786065464808546104557176820852017436725963163549431377533171719324596992190956049129027340218113353021250959067303180150572573458102329996027300149078679599731217518003863165514535899137645635041476205312030983082542723391749018627234450025513152213003114980725334077435555034970325844257595989060545783038595785310220928708569472175532944432736132110371455246426608548805759031657132706919772433969803520695026549312754802931625627824992340014472026526283976887537697701942703180319866207427709278864572617342148455858036626254291148197383505197188168055652059973924746453224832731495095814701655308861231981463018584452137986540417414467432147248747223209087486923391373867807789023869058954070168074697375271352716292355520275437670139020140571266121780141760850654514658948158565739436019560792231965952381267038489045542448021964367631813429350346310558088972950513506328661313656839395452100991477308767549358986438281733615243308210824318485335319616701675841013224418797360646921242368722733862904090186923741857505120203623646404636697902670271238165616154985347646659971357006560577692062350842587392404864504982771862167916766381507945590917758492789820828386786858398332689135167076919606910150117978385718807663544030528988038103434962811103410879698760572444353881547939009314752764353308407343539247661348521130318206789469349361639138714491034683280519341537499105804602012429204731516849808374006756979441738151176840545771661508268623570222977198094933105331261393577726715944566215641210788711825616087493684423656930968861967562479210792003184280348177849087925129756331011138707821550703005526171563494325983622899919338190792475960590849635918048984348108416029875789472139240158649385022547648107529658759418291809428786292959106868644839891128163240140823726998337421868799530405692272288319538949297567150524518791383642415675951786150245617491715889987060135983244651156970644434513055047039074258654689994312665219695198898103830982722307440325688778899455794874821172332737768926553703485356338020681813527656398373076105531273721974852292990929441967441505904673053888474347826140318370289481411151268919150188635602813003236536309700002527664000239397257729417309706863845687693929113718589102364140007657717240445087156566777499767297985937912487572846874966483650672924780757160073710795178647900611019365464331037865501976901789738162615511428649858538224620095240813224540195377548405622421570894980613450419830434857211509382106710956036630277499962909547212207971450446615334146264417347851315972162537083354516568639268434951822634145966398540180227279687363617461274647109929920067129661023539493897760974618466907666076662065133117168922306131257121468620740403219702973439310033679230178377460732617012519672634951825451537841160304199216669880835778156362371109214974731358768143695681730686873841740697195167140636678961766678385925238887459332240636991391155065784579348473825099814653840451383202050481749536578242844438379798667677940649734624014619047509878482783508395897119688825639105579028107893530785048810053452293698891530800035961388825281440084503277614744026089197702564488995553355376795271107371459684275878326393393501988579045203515987859033250954368070456404253511434595078110677613022166807600538402355670316962363402948094637672928122856543967643991355889335445482019958876788701322717209703088586522417371504371936316862359551291194688714634279348630537877794840521012017525502223579528137625175757154669988146395834482414882631432419800547905121003681587800163367260731462907627566818547204283578555404815694786187150890954767039006236400071285687209376834372632490726636731828824469727572374370736146817333842922862114730176892108388697776063266153865305300259484747206670272549734024245362994931252294214758459008114288280574852683107964633786640406780391575394520014498057150392163139328224831505613873085532205107132257033473326435591291340626511458034125165305593781919596997786254559153044604777659371540805677532936401818158744354703232752445780756848919934715461833021017997653011153407500323991091101030196042832174430053129550999554320978735743252417626966294048831330666504550537707678454506734255087478810520160597118369195319410170680118632974595596737839502106901674867553096545259061620466921049506912596279594702470782757777131123465067902244587694210910152532797553438425718900591147695093433951094984010034451201471441379660470340686552968893074870046671721629783475146397255522976561520121392924107012214103680622724707769189656134742057775226190606379109732543688378011199071636951612376642950270016921896324051226041969421448811070142413242038627807978789706074130687079773839907543605152949840737597699878820661690368783180806467315616937755029662433935178649774195578521166740672308305683907614539002805504758411978802518713611078561835875319634150990244976513291874387508130644441208779470960378123742764614948970750971226955332099890252496627904583766904274680045886355249248504765332220797498167011068634648544143520893759236511148172215391944217431528835995621935018048913048506485294172896291848693138086760254469835494460494579492965899138485185017254378043755618306365345413457701014767072326242563674756708693425364686510797075993147767418075063802265027812503894125355383907948274116630185419227337875105001091446767263877191422965225276128911726980138340285896060143794717271321426231712900551078371122401074994409165875394078045246940911384766472772441916236916045946073974336731398736523661724874826782243654980455325176610075542479311456850726339663741705207819966850335746447824284177697043077433532589620864488424555075733472212636368485669361409061569950237528598183229299060762979177710959971233725294752067695160988577349900371890852782787229673902846125347468349579312186511156660089028763932986826565034234944101536077581096852877264343282078799374548650081912384348118538021337304480486150239627971181984600815065665150820682938128530099357453808619176117715152441550859097988608627285688319238546046821304610084270171059392482210761452700243007099565636110472595692745405574969176210609587547383533037873752379851374248364551223082613532032190618007506361538575124318779236461089310553911306830242514362395711394356147075728343171512779020172092495346437923833556430219681973625541669403919715457788339203497718676253178293744659028635531195825185511187283885648990577692751558875233204427946322454817037302327541023693147679123040131666169031480241204308383213869795205707379608725435514031862286306152385817954625823692395603499479027587553906906515258331500040214892750305097721874157536202953773261926721877876022763333364886420337302597749317644025305660156784735478409181739428204802495680456085609665788188702107961420767913244765931487979662307253817519098070762074403779259185360582379253255166766783535663833967736130196609357553322637395807510736872346133242053712519443452861455477970490561889684202083712820912046356285787212344424882679634291769322439397287999674358575227870856976747796580094253292667633959917197776950765859519695433354632948317069405228348526353034013026496715478252427292835406874121599388176770715423053859028677295386749712541559923288332237338160876054106695642411137955825183442697137280659367633963756312150118430847731341973714912127102025948842969594470551088437801989413925950496339598609465190853166015059839908613636846765222315493561311115217270046603275503559191580772667838527435595027263237983803403135625817951747331284741661341704038161972181878421226082882102809775723956600280694463136916496167790189630536427257741290816776693074106204330392210948266688815253567544376384781465423212305012475206444983433910677968955956277428892943069768370698605260789947291210410891671116161809132342717600130026550019341288608038085824134046583606858932527191198389835230730442051210540113517642903553600740167506617378516810770080918821884509260591175952309848447493709473979008599543309753293771862652663276195259413517328209299828247359936267379170354023590183269339843058834395626149699306226289450454573447118962432473875805164796659029731539094886599924557274395234988682775493231638605202284194705181003778359795377009023477556715218825508719399010350126331592110138659836666488388581421170095673800051763140091510917927101612207518051948934581544645284271578392254309029762235793013728597960816015877875799563103001115928105121925673595858251852212001548370426826131827825459812536859353872651649457402653081872373014992321392252632538901145429162965978642080664168364047739901366923884365212103236301622124153248255942660223659810432787917105965751545030217162347562841590165051156769094205840494919634877046233880660766975021591365522006469437930971170002728127468887271544761131385736789087512781422783414045018494706290477709031458987780860255875566723360000803003087200450021388438066889001810344316173703490373716464303494273046083352805593324194701584805755274597936377609350621469145127969831192802240505260744914887742556709409988424923542447118193093184260378192593070396480243805751107592862933385070555043067087482401642005045425642505965117478283204839995003419835359590920969951175406419698450838262950036619295608244946608978016990574122207853864166923000069413456096668118695607852511770982435340774186818242959815135477371973591200280045285702826446191834407258833050401853159973938310707626245054251747651388372757049881734290058721706823795519228084786958241536660575962832612262418309755100686983972852231846399580139364431263702536201019610722571331615106751925137382806689715535113363420888207964477765250892425929895864717690199253633910199992307319910645392474721145622783969790281644821928309713981547553581607310854686962335217644735357203570424700030573800921143540018212971744388523482984484158488143459355375743857221188124730529545888629842415928521133881966330795593416457172189493179530993867889626431710697554853691566280325107828819073005649637411997450614426846847827223138880463148686811322556438233814027546334242790924107980781784302016948482496311827158817111146111545931354185555443883146627741181132426366452508625588791382968866747234014246679259940080205350786377714319310782087274523911991328361732414653978378058283587515595741035504182025196012148221431214432252382120115249433005793882297652520783166984896148392982170458879879206250538543857831478009473999991759361833892465365098758898281335850710355534616308972824949676308521138281143523862762862773275409629344878908952806648085420787758579909455721924260864232382839317401253411383331748964559277111794238119317391317776168543026915671851359517727222970732355798596923792442904173901553494024195929327355227255662362152101081912469916285974009161513003418562193177275111272842247432173703967602475281703574220919963948824565209308657725024053533043563614786572635700050717333838432966900019121956265406046528966514543701217189557328771345204785867594196223899927359687537775746503037480960684795995634251185673147836564841937652857357556842769296763862018961378166875074293429408480067469729950692572244273334826623431662389827560282917549582114555520294956092812768378939151485495654472395105718861623255507799175086035923246114680859536551325006492381362804236957059747254518791823343322195320513956402937648007222504414150466744838640311044616704368717390347350852343336903251684668789552540153420593901562521919730565607295602002124160289250759435168765818207296835273505782823777102051655676660226255561560344513372574942858593489532091514883196334179867605465553238935387138734556349731148974176877806665557370744353041746110869974935507721005568486233066605093007636687288413644663413101965575677579894124583758263144786548491997579595641461014940771240452724576602490295777125946136258488597042804366558299540559017184423075458717524343261786692485599211867522158902315384149239641058820875472547003567043187143961564014530051003084962465060668789207007401686441110407528960257549254687586350645217619515279742956215261706871595693823777562701702303349101590477077091429869464732864275292493320267989434178808253357849755002922529352228273469816884547606168045826023136374304681029070542772145322310960068188254459404187333899168266335229733133933356707836958119998466959195463021559723785280309176328792145601200087696862882308633776298321424251617529541225129780341292412671328637103783085820056242670121688854861921909649882438669586473027300991881308542051496035494255154926267866001992896994323349582395666031142795365080012723798155212781673892563536318430840809776248061743720328788454470180437281371269754551831563946716861212391709648321699176048095922417742197328803874279332406483018286663632338516661614743127982352789983155789074358935993960948695278454349473375182607941134841663822481946073546919709713884224162518740455322744083432953457381478327805111085206137819419494521068626047678397128790869872319286761636479874542688743874448828164282351142957793124667024778599631875962959078609919868566854431329201691936128926479941987150924541906649650040308651636746752623647297586293209165300263381762632234847348432980574167715729157275836173211506655820927750746236167559986795456538178463784214527150072787377060495376376997129527957050708803034018764957526712894949687099955863222736985757554870161928371529665033595253376857884661299796378231654975161044878267239003539902898640869598679111884681010530078530656471794868398359712956430972284962790743478509035866034671354515086112465688738458245162214622405773456966044838332558952848124189495630707530691659443029252653609614696737137359454348435623605012042429235110481010816787492621461432304145871327926497037744703648953971998916426031924283822247096282894181401887473995313172446462203444603574348672174200493807419609807136916684805112676609280448282155797665484766660605020101010983805500780794117622680882755393351921807514474950969413349294427927855748344192706089873276541552403573362614955584675861650475418668583351516120020915895171247131847024834673031870890585900495626306009388125948023397246722892962368286054684601736928849254312673822777261231997592393731655688174216132163126228430045520348671320073018149658342531605826259880758338464070986635735137748120748734082565080977033603285163420668107869093111742193791938036196333487188761222094199832563240094597765043501614156937559001996501182200854415024316537689176305935407225098184192990204684213107675595148468365586712209104712734056703733850754647301343184098552937069708511215869651672224967936041139698406860582724999716687546204554228313383403196909220025217839008365877454435253156092636313875291462577456029865201320874779162914941506177520596555837549955702458441376216684097544514171340476020804240728819006053392085499320799256653749464815675589786858875191277862272088680412252150967363982113413257823090013995720926663125443668210431538639091682455365638218534628176525752420652276553718641530255130478245673208074536119492732720477097027589707837957492563359300293323674368766949791879417704598764999727366423679630779141473124775685819284649810149616803438166312371155591836530474005553752455537609014376828147158385045771784737133657228600162299982420197711428308933290591609445728748129835030725669729711806899835917569209237441810996963529890186081485373745862674059660714985945422759367569948659047197428878167987841794861683322146951965452510345498375806324557009663090497795549818644005259949450175497793865311672417103046290274971568089790891829450650085669457986998109926975052376893406667849117024874138456032008591434626199029677862708454728752474557843035557464532833810551876009962091879394746627247472179577759720193428984574991049646732869952405797807761607155394353021431062687724612733116036167121514465472029179256073731507621099076660777903964330048712267120701307156487545195460690580962883346550344391888434470199587296499557620838104937081501351333995010243717890930578593456306857284335308658890747027545431262223155528744922432963793902161781166354909472385930440476072594091354855970554468721107573698573446840326149918664152690950116914094698506927343060026749360430358480430121093842512876629287426747015676014289667459431985766100762451782382353306391492947246475312877409930746055178656719655828465141804840942467146541367588507900519094270825464378887427266688848818044000017980647345336604745024642879743524617379534997809902156440968891495270128359328499906241002846376651923658504343560033658285905236468789261465079827456028054002747252201209244433430752776929739942231974924227582555279577045137124193896393673784119776466745472397689655931436019022353785451082209748714204002731684610402932771336551049160045835131833194536393314284059597187638117976681568014131364150385854164502058521481993953259871193912833898377362126431849594029865588742618715676155332622845392673750401129841282513103681732264461454134757691749575171948085864855318036311582599569379429753127652572846063394729946649755800967128750831004700159550505869392947296489573280173584337230510841376248365105088555482121436801941298198341925964178385789650694496801672315507912015461496397178347588058051599465210126662683729749374961212422548076786217014813713411075740271290227778070969796314346836264098656957246494031116973342912007358849813116375757634338291737375906614755571514219388175551669144448305254242923175124484950923782302795618219362559729499168907727590709256365828374088532568386671121847243535910912802927150307021517549640716771372413952636391942444870350465219213221583715277881334354845788510863266976983254448301273220461026029620357632618394508162136063115310815623000602770881004428749066256873467418519770536257366411371381303618595095823010893600889294067485233088647305128530127591107888194226089525913892607163261972754204204751981897053162030895691170190709139166914974055094106836413626050245209234109646455760235432110855527999171804662861350771935894755953804990509831245715596578240824967695473472379597934631059013890806367340249199967164440603001459236010737339321694404685858874201583003329122610694536402039483984291749616803147330687133038058503200044462492030795010926413273409262972127294631261333468207458486399187140281756163590066063389161507040491496144050203271913625752548337940808993069609320097349241236927789308175614978802627149013795556241841477325522303107092935769560708583754724104813141265178441546536173089892489923148462089696740829126429326301790929225031759387290896198324980073656019733068413795736687587318238892419414260858272914262119935203637621947279542444865235248427976846489544726317338183933396087121468255918399470072835311335316185885419374130076703987165798437806413295515316136107537822199550881156120817959858490886664503061006451860474874903564676508390018448327882208340876868824832411331861516549576160862778085661709469587504462933577034618083144793250425795827103920780188019662633242290159496341715802995318367368224362338175608687460063520256889509618771137656067113593502229307704679304702576411930154307667725497919271680430821677613073742054456811747663761699778838057197525204183341970787263810811225003702645565847469882902205214341157486674078732783255070869540672549919078339655426855212274909065599878907860685584771043892623799626260890783903056217526412253906096062902103994657535911830637121430760635690274012858423865240688703287339774636664799115218279247046398692121478070124585320756215873949306327296780179848743695158266856678466315408589244006188134786253773423624197752245513632648203738284061673169682250061638717404321097935609437019358386595568631568894470542630856971138670498208688187929865612724600177537122387892433635123735270677646439631501002209837134383912234637025786465909359761751812768928365880451266431644774952495021494177952506970154472466430862655116136333719462638820350964472297624014357892601701688438741821902282012388247490276868554800782636587574442106279412975247142574755598735751158298652323447243978845024245999079600982480412051694474477490900824985426124397468806700703419456421688998305896555584919596952553701620040490985246476375357600351125900668563903310091743964188844420510942213125925532340295434869230174046442137844469169455468446549877830110338796919223289637783146272571548906976607282718581404717993698590606716736077111590299757729890265046723263023251971606227557301641881043017351042247082809313496550827000489691732801722661666488845273535083434753404658900863245496933290641439454517207783805458461783172655434208882565892702071202018076308640623548475183292378988618959638374163082771371996250548902634510361709122724828614644609445440957492366867232231530642596492682837018867619642778299935833688629734853494067088805847566000749794562625340132823092362040525900464588673922659244740274329226618036674857076682032341692651461872041715223561815534294917185182101478232101290102583122121757163592050048146050137512065576911954094144187378288489725190952371940361612183999678304552983453203983795134821277303174898105220371755594069754879764366915834174440978579280673555047295260964913001082751861795064346653083198031459598030183242896325920547756167006507183130191068387263749033109336722849141635984901427010948335057370232893782599341731432811599819407199777004544133431771910095743429831366665715242656022298754966419370665647598467265982332760010409968394450493845594050782678546235335419077100188148961222584271292136811633347029764473175092220590964743461499409233020020394417337394326237792097886744461134877532856287220219252844723961337532050123560411552601542649032617452254004300695835778518021493100457638012036677072165814883036794276573810424589791473353330251922323083548691388410876698145373395275879162984436094786539136334401046611606859100623938086404027694795420742736430542806390910212744460520715559500962576502492874627368900926520374477006674388167912395073045375622487597139885379358978703207846232524585414236334532181460006917875912302359344651109538966527064536671900695334208212143314875257432357858203202791240008959318873813634382546132490680874690701662884852124210382072247287170666013066577761738205006945759887815493750668309578281463477844607904771301705179922499600362807960381973426491196494878730133045726739177861281563435890850152875932391488649747535042154441112146201299694340954465825806801467208365892404756826217229775257816627693692227947709551610219572113181930012352780219224602474954681560142040065615640829184100508638238845534995886495091076623853054281195249400470194857212932928864806102534659495072048485725429720089682941448707159817949903591792896771767003431844991782723374662161665237983674176239437779699782759245806186455252593125960747266997280030268183820984734871132796511580432560257012387645166118353075076604891945484126697610750332343192096036414676993069111656354330476446180431989390057713238083208208787446350631350587264082842064306583916861281150370904821917698128237439498011149491147212216820826966232212518512384349051878167270349910333218580148287360233502734451565295405430870396735593871133619496408751677484674137739245335236513059181899224111350645370079382396408678600421298193966119878580301671677100637967659370640019200665929048238519620640614892163342541646654969778790552716746271189169832110291621967455648319535662034211700603172590218300230763934743354787482738156023199449510681880907286911853001182436337892045272995934236528602327909737318957623547713434438013803685205834207952444275301227119522523277096052772627603280764199676609903541182348873539806735133992467299422615489602002624053819264590305774101478613974016210429378248752546103045192067543704755633892960162688088692486626385723426182732194190607115781853407779595022222877989160706939905120893971186415107568794950437251383918251542319630994929672277794686187450098740074041427141591301245301440936051749908976325724830213629812522013099431904610247172384123413053637668717289393630983987485078512540120547657368906964563157033310101439127203870521975943480758672601263919177398668261668748445451097568672366142113078960442521792261986420775531654050154147846122566495915611206748765202370373667392691591993293290908754985972406725465083877459566911092344051610412875818924749470090961488413982253644033232538441649015525728204136422759172210699570867224740193866759997138582303093028216940739501684017993803038981980833644259236451640312802690495602436954644232639791885510483910447772035725329702306048587206931275953548842828918447313442020333043859846290415411314547601310891545701770735706225797111903549808241235444056354822439780876350829956994844176137600256593241663236560240010808619532316916759080359743690330932569286782210259580460098303231209689864801436402217005571274929045190748194212256380242835847287792800627131348439547806545723006806350514993137958412824309760064852835853889758136480279731448171773453167464741790125737055217443211498449592902210780667946557876671449144263034453102392278761462408859028646932983400624674350649723437234126983973372107350723907831626187448139704363970397468255990653133701677976986560827707027306170027183735270989106109908732719591570980747077489360695011643487198548305938290097722961033024680128429409649762187575463307668435979888501305292541393009245457787809664912668583032247974866109060039592354734460575462347911706838904828509717970129606336036651497666380786639833927305642017920371459429884169217405765233587865325247458685140513448168636355377358618078775739807468569211193976067833912229169325951823852137696592455932257851284857999468938172397440232423006166328694403865488941098468203830597967637152136234485453741429577284047011828721722012257376729018241142833918908407636730856048758848650980865635608275420110428564242873051300830816842966616612145027016676263843773506983441048571793283522651569675624991886194271041321274278307647824379453809522231286210729499496082142228223320755762225655657413251903615032816785902521113138842504400174382930354588887166773364722956569456554768452403596695401616340820904650653497999333353163275914090626962935127918641045554791034818128928501958841005901414734510181899516560718341248469703826452119612475619117698168780819258527079806837064811631433034901310196194926293222467014317613479905011165828060516713456924657508259467180915045036712487847762397313214156997379684633372990705711072554679733136579702517925928418447265539833246592804596811555303344408604479122624877658848198491146593573395542800821685342521681594505485633170895591550214539526535635194248096696270534349190072261071444106822885942644733991958452565245769008151894461115810805773359521502724904710255406318578018303867052175714842474981054744769538390003233183597904694178996606898094929778085567437163453534828507790606162642742330370471018254782179357629145223292707251123339625125678295721539295512099003326996467679432377301123175542152815053832962188054596050592066603704888485602430269790887145284094144035152238918424153110291319975505543187616686999914879800248881910592295977522635507373235166693458225487673809542316620920174933645250912011974767221867022448040852121944723835378254983690783674670831387622357823579346923707670765707588683988016526815270343675982854305908259450663923929769122967509753949608987773722210501873069389444494064610342560429473414112988117148371279820995411534099776657326717415629040606356689856673827022486582270650546419548989524083369418789727353421549928153216902406461328628660685488354645527373353712892202840126120930094228856335862603367262760755592549729871323108191142735048247945599274942421459631916407001351290144431254441268255161336999952718569086906928078947976094367383275736887443261152500466928138560938028581760505740405756878257754415666913747207301191132257220178708698229666204508828442844318495762861471920230239614495653548087760670737896111217936411008483686205371843213247669438907718097149239313290184694727493051983905374821680467692115661960531359162623642706710500152556127402764205655387274627703457270257104653638320669264242538336330124884827651678428241406633067636182061779518666841966796377424126765730904364911899495775403024570782643501183820520368958666089950395340002723834518114311873083804860110984619888229981521390041499505549156661048522831529211040750603989775017370663076969341309757085396016919153370115930271040226519704408812659884607530595557674660154306829258475337008668459884472519176656490817916531948625788199538337029265798154866012982035440674840590646770952462179227560023272625143182958333784688458504048116990629448138250536960930600968476312428736136793789582690310452533797834657189033644667587005376346591346013339262076846406812957544333554920717176574628498790988125906182796692441279448246518037253351170011348717048050683431898418249108662145328588360507449530960890917257286603668992488505158656938854741752544992823085478815343636680766041970985694310886494367304908852812872675646165752341504417977056323761235082671092179890911425330537378650207547508255921646955772584680627329207868066227377245780101642798292044499647892930574603442772139352511131331251630372139055884304483942606205378393271782078986128266049614077998708397850203042205283497325451236673971157438049454529537759516688585323831102655814752132062383908115988565502109959791366756864789747399321524531113283623520454641613444591817492048646693874942993832272665223120018430471692845911076321714011211116339960791152036781098162906635844178130903275570662739394733133141013958855373042003224087693900710855732369101221511188337147447067630810159946021066729358297193171951834656514216799206757174357366667951653990920823238040187092475469208301619534165132507096938237070949762290622262917103985921617870349514281804193512494751585852691498972550751547500254181970798393885278527343257140199476418142636665165053857091358831592768679930659216169197661728471013298983532661678956928139898760471747156589379937982345261741218703949814454394832033476781572172800202204421638242882732860346442227876391715545415335061336579252916353614744023559641152338056336864836913034343630139272348908100203004564168200815843349927685820450657307111403489086165328291635012299312896983044973576262840254449066365025375106592666275394231107354365014678564722759686284406720220163042333707807727230151752906235333044792451009561412373835059857214520919507682009606491103354863492042557299104736683571440909353367340269290501873001553803897516153610922598300309173610578100315521051269205945853567400958043255139167443016880954945536243042286151619334343648178471450594093311928471459816329170417960462104325393324525338157272952751811570625021631658005080072116129155703304926738797349037375576919490671038718998529872011876717157994488598471912686670228087305190539981379713731615745849578923473308403746136363542706699379602517771439310971280149789646730287578277255584651428790580067846595031224568958074054556972362201111739784982302470657570525324706216445830729765091976297879148900118834564175224736827433965520435158679081444009965616032579743193218954418514205516066499815505505565179369511142909673452061209767039123214267485681595507100619530585535043328417060764428183331266943138562277534952535132746697790695048477798278227514456114694243743645994142226077873265660601000465448061866232628942854981031861893544742230610841256579676990035864630985717942944245418700815394864701836303806687171622070902645800779220576453105937043817664217793715612406776130828176692713060144783525694684695334460409368881537565664758414489201439078341993170568357473547915487153000670209584821173632858006450099773824101434764502081326187491051209658387817756048306538712598495076487771259626118101495410166506816350388105590761376683837724070727233744490678498694654616689440407326489891318531550344378975360323845447614074918279570223326008361438383033593116043830465733202332398836171231816851169438375646637835438448704136518135437393728880181235475985756064565732318588683362746845315217550198517219583910264786959568866322092172127766872821318035846012942972908532341972727844268828138777884762895185467551937788629543524105213933879276427434337771393474611779184586316082533971559968330538581541171187439251512968235368371015287972596913902298223590548374661495099916130325887822682473758351847535585232393062476773865651159909200966616516435737060917671422329931459174272610575234138170821916729713598862604749112316126505401498203486451896482842573079005107649931331605132476592992806744830166839214829780585189308721083601381591346204799498043394172215282362152831776957753231830529877238019131137852977627519052337788312601347732818488374233194844649744421960696194227098070620468883856897916484466098036035971149710675436628022328221961359465091442526714828252260680727446000317969664316911662350616887984579205451167204461220283492097870666562127546192451966729679850230807712250560274623223206457877238596791809398648267343903188645196026947912153276280943070200169122631855194320330174219382894388617394094773293614169843493933180577529831706480036778804015049371408625509154878676842205827265182797028572571434436672675385936533211071725159394621694393266585492555543054400124446808399545060368581656760708155871145250702231180046742805319763873151536896524149635891011219736591488113199272040512779245847081001097032868140025298119735593363625081345622608237798847193872353611716290853969733427641581779799175729112541932198002301132585114057513312300444292710730623366822720089161868292255424028245790283763075159736808699242824233258359287303145966085003075224804568587213179902549008947333747014829195939710730243007621500607769750820591931866855158964372644337122536397519170355640996519843487259497715578729639936989291314961304770125882699499851053816019052076572837725937666286634372208807234471828471536690659645777067671912104246069969120668465364200202406267141661626345034190253455180973295194003632719473013880228230899403856298449959378226903484255610783664338314193695445668980582475425736868565516857726129291540548997852310814251888443057968746924933293498508767474000475169960621908934448346842634857030874459414846902170351161868720838459800522119087849104505185309564952414053580888360875778917338336782966514850953605062414835857770902099317183921275383772938559555164338016581235733652529885654789355240618480985968097768655037320461304624158590132174279574915099566790971529228926623271089056391752518188311659601634683936269713926795405788803916053705777580368514185516182054215133466135138725236114011227482350682259538478556838797376565033896778301327845907553114767397319015232449029163780372376905999127339709373443623512353479709493354592404665123977585536744493929800595147721888938983882406122037145942195537721189783202293807479708910603701939159214937111254444342349781025611455863685621822211202204589454229259582251614405139929593138537101132492922929359408913230278205975567179191391816030372926560011590834253662737590747678052817164628253882800555939968719019717952273228643726328172301767196774673853563317293576492169564607901897450596903589887347203437863753469475692007575645696688366397343200837620802271223238367940596923523486068409017789099055882748160227021091251116177749338324806939437306426818841984405421299294939789325568139019662541207685001376107619386244489032842818245080070134863666872676961737515107792442600449980226604111258914409159669712845546410889756575476213396398532890871552356402621695270236436091226355441850518635473848149966535237112257618214096129686203738300481960995434052267914808650653972208421006890548213222925592356037624034901175589681920454017491707400944588084361845669874120062585635784811210444604770470888221910876590874683312545212956804852156752465428462894473814025558089791115698894854428474024820633094467245678086448032912500780472781554972629190086568267489029728278481132246292005829547817445905887681986446610041711589126551731750813006120150239636772513640065778715737454339029003243850258231646841658642469065280066650156074585405503815469890858606767155629940951737459819256184215344241495408656050557361585718752591976712621044827789699143322040540297766264288901433031410706417868923226383373734849814727502518102601189969678130280272259321764901007676984690831777918895310951876300377578074645951573434822074206618578585384307729960535047755143955944085790159009186912990090020611563581824782689058749902123298532581575147718082372874106559069361372633118402047525385059614474334588240266275011687532425395078871936441603750490730426997566656366730459224743360236000263130440851087007969018727793881041453479359906769252611918608643769591952703725732586742293680768564737496188260476889859995436752163066365693073177707686162969901938826561930488329857151858494316517266940265185706689821552393987676764929833554300317380930591537923801345694345488787927706171379357735798902743436267907287293327989057205796177481286008288591306121989301448197053919230812692607707043989935382834566305534777422527625490907343014591646606931197321563999570589009045457004669565214294487860440802385135356226831651456322732514500883142018934225455057426686273557829071308307397261247881690614323254438905736628130927099268022721663314781013832840001091384894806987770174531985930953699677546074937170904841382785734457414867011127186818634797614945110175369198816136670733448054080792532219864173160716243330720888242572407343053773811532187509485878747221802571904208477571758628724181429092020432106697229145262336817646379938084481517055213280499317810991257352615564289417717785349957532943686201567794837635537146624668687682230773376833744061906781293731873254646214527377155565885979663328772430806678246106224105146477350831362978482756848217566059597266530081630087796245463844684064686098788662197577615613509657034349968102522542094830629633212919353000096717051180805176685969921811560459024745736905318916977443497283621891497790483617203388958123738454598050401032465342874310360703996086767616031537038896095421105711658009306978184186795832062340039575990301399848397999869707500047165200109524342700140683576786299142895810436538283287635821731207158584539082636764204831914934166403831371798275468062137073729501930483861007239898134910679106045771620584774493195198512442874419849790952414823665842176775320947648368365677130266589883958037166319510764990522025516723288267146005837954104085232745709812564081680955658108690591330827858234243744106924797695043527296673034625824307933107524527789033601021941996764242934215003511967046081068601666131439223490002480329677648161474827620133900907645952705156909943305186207495223855345344026339219979183750642238360992230926129929023720726384514688891292388221918003338274757431216535629312281540075768385277919877551460549402289848812121105618416539725389934840797541966723098876529057060582230352371184444563669059165222400091118535330503459346923534980181929681856283632958920623404595593288301691141954490726431183421533654391458933101492384029705961104321947447723918514032323765780860647390090318074276745477392078088058290279375084165702690368489121392957727055496648919328070782409367707977778048873872883914529859470211444691660998559542263249018500721847122580270929667293573407822667624613965260798070060988805820140572219331464620936897583066131643802895906271222130341434520693112114625447092396245692846311960790951985227859826781384383862834448519593522088586241625563650301281349063084854666841850471175518601243356251611139267824297963756598235589471615768332790396402551178310473871661933111307234553609899610891798286594378121857197917378079693956805905632933130244939114777370092737149679168701905097275327568978997283724199072642851999568589649827972226981680497492530758145104111516175206396254668354765521222348905663433200081390190427200310705691276838736205185783160629608798136914477397534973759798407957544149442296766446175780282222787201263242911004407203380328682547099272003157533756294091790091148802282426578699662781284114412275940160235044083470062631239748417579646177511798020260130864545182111759016568751186993066124091166908482036957226176889093602905415281834121245250382539068983936200173913337326513664729621134107072310279948682491935966732029190431684807207113649724302958780808359886410874246152252208755131958132192538097906995515297760735976306248115676169268076957965886659477007969898057688226559040442274576727019421831185431275497229574850889622040476010064661036022524701018051431368426387450589274271619028638812327116105528379932682442167203233658774461205841660019949399062097805235009813567388957989572610652888666188679360436151726635104950356323064106356071196942329589695186389887471459755002665808445837354785735747729126044589091443321616409598006511819604404035219975986756484450270184678428998966406785135480178598974032676085875133974906003843974658608132154877342640276103534979868461003752522011367823978091490254849182923460784263154178842547890132928492948855407486217196748722717891709883328956593301497121387852083462903105720927495373629722929395540496854032330843391776812294068194641241013548230552333146948230749416177492046472858414138446693374540894031956943310545138366729158094703651721756314411416302578378272728982401545610521527899376726227370859241781015355180664171630606237988847936533894070341375955348149317379681307371900657543686914771673124118277654171097728143569638481152850230034058300298796881140154679233367516149909365680016923001394141428874397175533862463225448853293890472679370613881952298012431024531443065063674162936624667828667380243814040635289612320205110682299314208018195731383308500258740229902058697830211652237848743377948581069681360847613277511860079115078310227249803625949113558754911028902588310059733871703188481811433960191320684075683894291966359557799862085774869891741212188295946416709750009254610995883340077026808654184362770604822480534742135206431062721850704809290023528921708592117800642099659280374191210657600419926266954506707550518798590011046056218487600874182439818235933353940265139531494261896252896490106762129362512008218742966799685049710884549931593644059210639663972883586114182307469647537139372732599016533943668225791590188490588704852754096288711404647169967386461111341779356087593647806924980652405012392391387566094570892468852589259997137346811342915609348971097007288458893483998791681732125641800263748543450091375793913582996549746770301518117510628542657897108908111319034006070548019163332056157521177077124192301283815572086141048426453674622991198065665771512738183899509500632730824440505034631509139099735574913073302627341505518643715071485638714700864163602524935504104117126467953110160307168287381121204754372231814431294418296342473658057644051759738430690405802223109381966953659196772084056859817555734868987740620319575508253791267641823768032683314689971626667786205876233779428080116125015652613574762503033621930857105255160234509914232326795352108714091028816334023497036544121629518924467750654846918549443272732270909308094105147510320456784971276753706367478772340981267043573140912527906915185218436571718201353361481164349046692208342012211000204806675994429561656643288265357465112625980649100231077256909936142720548068114983575308776166699320790066467352041668563821649637257503160167633835194173915664664725926711932778061413717245580639911174538567614263517110229098235229547244272359332519530225738622437629276614111585595008832690759857569531206282849180760799300857403554971303359312308906389808915798808401373812497779845133674064151260196507192489277597887111819829761777177357359169167641055219064802031667313482324291221952068954237890720538261103566828260697649136667391849963008753759867847373571845318063472000864361241874690726259048695878545554591859858731174948061587065685783749758223526207593811564883413217622266369411775115264259591868990506752490665744927361590038085821633216291944250694002893105805479612192787905604319233710150283152802161481729708214027600622695503100579569172808772113200473440808497087756326103574908278430746115251616984513768973366911004325001377996514756726325027364415385997703161124486490512572441609839247681861643871177448143224969549361954708845425001363768271661038181249149565794627608461893369689983296786283239615294227243339625696743105987243925151512392538840529450433614615779633466464708853284220095791154394655960776419864944889899834730649775929772115220686127158962264523347580294582242858593720565656950320459322970517902094267577134190800157499591902395319458009839560888952496393254590612133406795776566325915909838496450936787907985951983907296080637232303297678284109763616773965095970286439483461397161959338542131542317866368668231427874979568726209805325553180456724481901816596724662003361766804166769676493436062540759358386137397324244854520637037627192207941792818989173328576849323238886272254348807488007145699365605308234696285099891748196429172278394917517253430186352941383935747832431712729797204281291915303018959839711907529246065003519493806068841934192584965875993766272800056656906880888245018063996905437535445387343896808729024358670482999229566526996864463476077770616860138588223054095722959951594077232162044683635028972775820522206465643943859470238006657082088933185886664468733476543260211895710853343284914457281955068884533072580446334508754242785658240446649100879008618473775404980104732213874000432931738158192553002233834736283698863797181263480872062861987910531131339157143114090494947690273416160286737217678190600683387696649794338374886931048733075538423018326354750344886296464393326351459064284350189688974024896895394923740053166458064537245901608185311519521755075709704402113108201197586221672923996181290444335815552788060718434878281185520954278717610670004558602353578328151067340617041178236395381347277559537874736073721779604373533628777279406761117334720683412710662219697455973473063840071274669175983139209488008115011263552617143630336841689905812483678378469487924703966344685919157260694281381041051190406156070673649924582979728292177842724767647422744883865127379628646322167929731724757522071963001519046510066696736096774468274512955566594463488404541954609678369806508199485932902177513049755275824844910448982614105461731263402367635751490280027568742026689810829163245355877503297069982718644380061746465087974449274584136361349489508348247878656566900488782486494309711940334425248778988282955765917756030238905294061628027051824657614512221353540293647803342406598047512088609380084665418255257567125520659439414135402630990967456971802376705580456513232329675400364942335420267202633532184590530619556197710025314086305235151387631725607318698431607139988363431371990240670615988897405665633826054278175864268913723308492976384477377996319772573965575885763155890044361426296416938381391630909157760806582395723934422725229494796788403209325160884403442690007970951132360782450091914750982867612395503991227986521492358334875959588365942201065035811055351076067448269358017439531445069219910082193620560124546105563129124842223248121931335447525587088638562837171744709111435143645348330864802719971010217535198511188900704208048168614135974700576821074120953986798393322470614811500350208083590337131779610529174105079243296370930474010401848148342890846597067098401033855907817207323464317317251219320208627808457097998966647826879844149440709797635083944454481111609290987405215759454553781564133089881499634831245871972258478555217146240688117274564913287286427686409416754055410627797440141796132250076449098608962295526213832083495416236000266218286621849575309794078961504016044163161981813616066647636326694270558645578412169107909372024352693998576936247318251045719534344523894725089389190520306102432240676749579271793510236808303509269407408014156275349074963727854965923798001612048934787530987180720225221850497114297216372510005431862428636773372846952593996347560951400666225022893113035143359191007982903477951302367299369838700689248591116212934554027545942546488538740508215245003235584337527571255034148052929161484577991436498829235214414136057156800663434650287099244185389984162012813170549479930613866375678630768365730195336623112864763247133699469504407908310379288551178601490593376283523587127756440221967738789271791253564525430013667444230991701820923057530216936049972082575942306347165195188325844974831832851053664556840238865971877337662563619841218420375666594066445483552662539841885445254918093278522207808115047612743849687551509554398008460547515370893329478081802335227991926981828781441113338697846012857562484954410759874888760047628372498580197170378655097146186680833895627676205555140744451979871088168593804039645514344733467654002114581442671753426184790702300772938745854803297773132060445606795788520593366203208282846859994043584195386132623494370470192021574191974463295542441667020387646365714169483365637679273199285865651614226266782155399577387061111927385398886151966703631608782574089054409036219361678362308474622536381813739397215084613784452920550835482854499879433839891048402437230706191192106868323537484742362649959683819558954934233922970877368175112385987277065605889548410536102115811511564819644443002901095827655760603754106990624829652482736336308368606129741157684731650936308533782323245375221605728722363634565811041688863833426229633718710975447099323648132893188295341106539070215399066378442072093312920770872023568392795498161076785275478516209919431969675858746578652148808012508868569642232669602693489146309603686936125225464209550467627577274909088860004080105008314287203645772003280876123526749291745030974947498515787311756955135523668117776428615411378644529664075622740804728893482161612432842467977921128806999618418838622532966607395497649985004405915358619966308155514835396553095369445860160962791492337901842257027733133798371289683702680667398000373582224615392334127714385682106765000251711513691607814537332998369655630591319980761987336835371043788260237523698531509152811630369504670726168545097223578145838190874804573296954699939023631052259971859304137092049658812851286082990278443442034436077477861914490960431631248960447411485612040743481836696676576312827785396342086427307691266923487766198311926741077029381708883448496414844117592748818353516852968081127866259854156514344556556478757668693616322096423401010176660868687564878525309369839260710710445070923596569936028997206565302247669832098037743509129703672362260348629473254360305410701747405152483661304386611558562464826951727430515401812645514353141931593189649828480429901248348978661099789321273534338304787533275477107913364377504319391756123350305946989197553764829028833756326706398912063126036156270156996172716160575010567212540195323749313711649410750262801874823628726319073559643512290258804344740206470488192472259016942426788614058861730782885476014893217373636756792288449839027941659390051490544394269857641676038241298900476264395244796371589540351817276047766873877408118235445698801726719205388260671143010898961937912182742241675600619467490758226154256627902173811159517188226868064946578694068273498455001627549221152698891143165943954254502160225654529466012420213663399619732756288845741238813533969719951134729914774726929125174175676162392385808063331972738024848015865428475488878310399741516395063678692817254439999191296733521166664115336636220314479311443652567182625356600251535394504790098495717210418012660232899050404552964190117875323468247212224125581259706906886815140316983524714768483219230951252364618564703598152449797002655405021360388635118793983057672405829166460026087881204174023585229793048368740869953328293014315569674895709465238723319337800163367430915450742056134367762875626041209567753165918157949039546408394435834759925207611997724452147694065156732677089627376532693670560001756038740771063998214320385073882132896513462876833097872410649104423165454922366204917448547828234038506233602558090757506224790834111191915840414551386502490229279663753778580847175194610164930964702875973681781118978461605685206929730300359284344764770532737900957002225438091513341476844006249927569599413078868751282297037068833945479933204874879073412256819245265976421573334020351747872880863022686985052223399783169919429183532113862393259792472973530699391655655618090107957675370328412388277489720946827594646479092120088757165313842540538765316509579735293380837322308185391344972414638407092192133921399582413650774357605849937176740208900429874207260809963040357828755818731177819193832320594462191315512425067846236240829633736179319059214254200358532931301149881585295267821747569146444114541141269945098007719998245381121031333183788714715709332770401320627637365604739572066854628817759413212749623311562680608287763172849381608979986235087217102334336617643387704571105936271037393400414165608185499284903126296885627021363892345124061203346882525689694748570212865103321931789318969117118571273848018721650778414458574639082007116236845399316851356615191970598118496389448611189466457757750161015473855136775483426326561296945352560074162373310518259657500546779038466237265085917922665974572099695652573891893025855805249633008314292334321142820094640876843925747462705696479124494604301684440312302512784427225167728798951919791413896620423965664234117800061633485972871525049539751047764458418451801084905847023689751538661388258000696355285957605061490410711817274874882576397865825055910165920926469272263036702811914522575383851432766327977486811938704327293910253667400792328615220958538362482995686180176635929347466103078249315435777575017159503800703436515837059221961692669022347088434345944434293482997906956430271835064774621973064788283064531281038125043980377824364888738019476172308534624887367661965885257566227023434283389446896992695063159935914099377418752459325859057625014993004400589985866389603693934933258247427114580131707097650336463918864584034823736867956392766917688141837837101666742762739682583199543730623581025212961929821444598726612467358098127847484731119665354265999805928327514629168436222886447535160220991746099708153112746211729069419409557446900511974577990139722381190517240189883476802616223233591356708776918107427873859661228589238862498199095208829953422220246196113618096060261570486786100508013720615103125191581371366586618323750863798749930711420756818745644600184487441868123192714804386404047253907663140845190152907608735631612241133810097147406337892602914533557800763632739636269213142482317087018166621901201388125665117769436886535937933008516689787122875781350165097632472867034217361038103049969689588492856224439535021670886097951647104767664022274448885306107702428376401025591981056270448683193073083648188340423498477624456077238671952396058692409754310141983290172229763381334778582274951958365795135945582895610648890324884526662382031808348430404361394737853131129879667004304162358714968570377050994312283576953682778048936149424901464945270668390140880370320971065678276049480375292367621968079469454622871879275767717313408454713792391543523651514014315997139084126365768595597276536649853532162189640049770437017851326236623490428269802156209017403703571861887527587740579427380517642883967020066937116069204947938077226300686498638418735451236870228910934214513070273154600895800575929464599645205319694090835293484960417687057699508870210553215348404309689625983193310698256113008669456207855682839175811185283631601560142623637632105784500484671959269080735381327926334703665796383004331415045301354735556882493517391907624852270685029967699550308576380915458188509490102324369489397482829465124521358026374376790819508927024139704902729496475201932016205059919710513714898024351061672982627420570196589651666377154125375745691283608362477239511695254942512445183736518094676071182107365218273218695549814958866049617871286449740855979498568229464755396556507568746819959153624752770579351392821832096318581826167158691318601440241592159013545966468121811088168869769996582968267735471874726326636489244441283128153816032736378038044582435799248392618990113822269532548934797638062361013982120475828631014772166586940046217617090545863207949995327136928372790890353242033371999942449859821041274816090935209528589744219667505679626138733735787731662410221738182866721859613221964248396290469884895912035810345266236833350123817904177504107271357197462974439946999740645330700885764873654156405690296648369615361581269158743639587273457617869636453276987976379705355950942907606248588262643220221870365094254783236574172515479039904904052143195769471531733538395673370924586893787725545080467419096799174462468900117444675335537310745134265004898317349502302990098183032640776587001367237589896177371172203533343171723674518737438675588752852892588141496462764936143885936648876481826272004882673614272562831680804946043268854480754757261704780099921219242379960668944582393716160804665207456621293274630992027262682156841268905906482404611750853746823906853116894874304313607070934650323830266226502711191187474120377133532633832081759051924313867299119332793219168598395067326352405622650623042413377845532731820260692160009302622838267114715450553415691706713663408156007364136461155753079953598811259091378329765356249753766863427866384525884933173312834338399548963216391325021309073815127451086928861373829891718143241038766232241534473774668175402423487209775456788588751879338915388274017847606111055332989230553443865234140093490120045589944058748719798222910728951349670528199061665681711465915165465993265516212113818499408998274663890333780354963953731320014196164725632898412004045681509216339739905405593492888353751040459274666254295972600034477038111517591777289729753544467191180877716500182520640467607970472058514051286678824104190697830644620721355541196554051487556551018121653990313881278644215151961882617403230782753148025275676135064749775429037504575740450379461365366600800403746810245480291367853639105349939433360853024284367798148343721715770667767150402698497356385719497472836591396251433784041579233512222558220305617039352502200427190435466811966113971982056714179066677587389048516228753127552919229868644438517560651534909889993756740856879017874070809457906389112515391366843506407246364220906458216795495617884908976277926656758652576536808402005887778947992501422635398710302230970833329578510940393624686544550192433006661392910561860596517531401030028218357977939375013930945165264833037989891829714253598608392394259862332584981538610819655811799741314279041935805758230085664145696665746250600724152859956433718262465460681259632770351353992922287620590815352231249975326923973449725394272213728978808480644025419095265205924479788834483187419174951083356966607973974958774009544324885860122168798754713525319536665346050894111208607569312555245343069829386478494646603487250223119107113373843333229360965708228663853321624190487094338839168721739283557920278720295008712301326119388671255045006351584959035361097853887485269912720790927039333472258985366781810646037609762542956270091861484423037322825743268832952357936735909997377093498747901439967613842109080353040622066072057040200269982281126364359148773166438498812312699883284751438161229728009727170432512604320963910212438694586139870167528034827380545565497379198078159997424403025489861162909841003324842070286352369860575359814545271842617149933249031983777862671276898254449169394692759558107556997351768219213146383710918906848698884802181154820749193210294784491390675505204931862005986921242760464931550579036872601382818267513978706898213054973091222088432030106226668689454605684257193144083537739341534734766221696562071322738341444110195820447942477863225030243449080398199439262111731470779028850128277368043218282732133108874650653881202317680926306860625332304028362764546229165678612773518081706901872242990140051833076103813669917897027126075034607660877114956754489841179457539491946058120654106270258163789024159452231553825125437288662531474698358759918160985295549987843054288406867496895846716295203850096551094704217973880653691608513451726624821292815916979386315693926177150488358156726819887675452719783218048002707110658684975551641122332775378889404049457525959485393165887547597687467153239495052264803121598675912235063765162946739637362169278694806671014647736567137148828411214565032471203018440193543119657311983332539022949757425336487260276055471019448621287493548198575093624983648447763555158640325553596418635226772270300612557776188954138364164271840298746857464783122168570560358379258807321724247867916541820993576811971510027747335781785529692021045430316467893283001474509510570185828691280561234987863845990990363436079375257153925101170372969398676589699960783385476770394520517702754614913818093247419739206034571607351003655252720891352098054833432678960655729595386862736323080047588962632634385153645352005122336347009368712594121337138304099342435078845663762178493925732485169805873286661512617276085964897946743384607335522695570473294337933992837494416180237227025925873971413331926137249375018637401077310584734383093379783035884925963791169732293764081640107903507998898466047144565581096850698714793824221211267727964493754947574843660678432094500410166502062876091640603190164293681667203875239464830364858135856326991010224992361408339812309818150856990984170142963933420180948314792914396191089354058170135544839101707427526015313397873526648395512433698908307307800236987885137916144841325107512592729510286509299892759276441445138840827952564376154147939366077350151633201637648756358835515547134802424642823361235403081562660817377040033927362949058844793370514116729442742186159918358526071419514978284449985280221788157013534498161854030004166895338150955216949608231640516519409442040034133432973725690396138129449248187074966490945031078551506811326285947379529346329258838359993691283193333492875917049720085113247790327165954664346029421400106442676448500782896468809474314542918686155208404601899748866742259045879338460754465735129987168491753344392670759753032068056169926068251645060390300648281959808013267180633649986508748521160477261441246905537410183248597666436261547068957085809186466129964071757404381313779855625531668628755926946785788568744328679227844842319855940610532687406073254288108102788656505868075508880962233673829886948739283222936984314868636425428962891894226417485477523105655699935129960013012760635179532737329228778762433676073252453835705758662699272802524641889135353314792487357684882006172843577551161641496495053991832833005948363644915815700725791528763906156043370051429530698345066393616304350272754116628757252486557352912213074769526021217963759653983118679691538854691979171220884085483587485867458358874825196759613348079099797259788074781932062939234334575597378277807401820407696564809601584601022080222491517978928736928893564908865597980345071220017289880608362456251016454317301590265418259697740084073961968288522748584333203006958598992760269491476798573275046347428532353035558236697280876068335724141266033307883465691991123134498403854462581644783516769932253286281413516676633059924306876554979068396794582901116758512594506247433932088906808320821772001578163359167787688916871923018626548336300286048582448154770630363922981541489605075288728412883693673464568311071954539304991693844377831754459854884592140639507039168914554990184195906914204888671914692656266599155484080013399817350993079793936146533453731711826224489774911496620979262962349019822689419141540299691222606389661005520833823315528515219141253904568800910520973776342006323409419136065555506815126698259633172636996475191457482330859429136054855222277299460773682067861985267835383965711657802196729108499789041041039304870898030504736413919111812859146576140293535405511907434192597647051673446872893213153518847918791837409804598164294363643227346433269989506872651589692475745298310245860106694612566236935584403219212254947013668234395170294790747071024320004923138863890086836400012395942939311945375904473633630747070699203462604370932127361760057516792644614848130086750564682552618776487407112601180125911748754850397598977832257249176838343463378789571679539283614859391681435855609499083319180998123961109762220453282131013455451089609621442190510482838959490343392707972051235477001472118743536574288410627598939705826919716944476966736727448294526907653673227189814984286884826764611540027939197369720498925257312570270546444238102719062960377435649836822330491438855834007656646208523514416603637315627469672311629561056503964710649511745997359757341878299932905834122917124325321123541506671521809544004518878349962946256308288399024836497194521276625430107763510555325921962807291347100145849724337997488547567272538613947893532262404683096380391862846154247390908437693623785417519772546585622604894527038963125410182120698599031152644924139107714099099599961119616434976986231553416456924389019104926236442206720220412556030321289014985545002721803233729988008171382125562143158016639606242198435296825000917905419091378562451240113850142888491906665949786653024763177235035604200559462448589496036532609400377201643610882415705967145033647790001129319178202155567076518521190185372521557843544696802390966565061462445760084364732679018260090190245054998299291964481431544323340118524800652131553055360794475755515969487257952234469619654794418259659202471966470385432221225295890484754189135340634615092089227329136512154787162899777480784087079438529300954880536198847653264131064550036860405038236468837465026344302623896768204412529951226164817941885594908518460248514196953848097790784582587824402775298500239729054538607213318922321013806112996319251935749600473214869511875492669916282827519950629827156206403920006594454435746553373921023717344837653425374154856099892568014848000923488315080664189436415294251136453787819544694681515819004442945381387193576530461387719718920052484410121915461405187505466499069038584081391973312579251518123892906551170745731982425211512939648177516950881115316941970910010661537074101007875600008143275115845833855409132209762796593755807569746464756557110619319209320687286342550241325250971659384716085454586027535187362429464778679416168157965750517409247416358493382156053647462345339891082553518884313619305011155392774686994977028720121680816723106258247408443148894813809975470439369604037188757867385061241306597593677774104023496349199037963734619693073589073629616206966184155008005411156790955719560425962455049220171476384289730258318625711735649113807537625478965746194699260083634992972539278089589934887199342629682070827981339543401281451118047381932348439159604082982497144452230136544368064382424256214800597518089241774635960183023448252461937796097275141764245253548585034781882020971277520429831268095906234061182630041702124264562089653009133477361217644034132688627467572465691318988064661568427399151601678228653546597371757665559236534716710451594148741820769645856320439992728113799219391506448190343105900644429537743615976377827802184655557451330950384497968900515518949681028087677644500089976109325256213742772224687667417131163491244626467069183116381833605102638203185154345444803029074215938501132970055562465190020036863210665395765981267915105762183989108926091343216565185329275571682862803655312487187531645783740236559574326658680101398437136492356204375338516003467641697658007884478989292654644726860777760334858224538895896366869582308152934222714532933961199918126084332513054583755035220546935287322057918754111668562944267129039815810098250787135209119459133417829964745202542332492795312795621090074597493701345030911038293746826459156397529010680309859991795489616663280167931383362741785246553688700053562170900403220360410446787552383708836029121019191211508087566887912782688115199718966581355154154163683719679559585240497149513941117892202018030789910827436239180983176982394036580860790711987897825923212509044506323138297597318414557393798978079805259761827525205516160780573484441617702021341382333311109314915905442589907189092087756639263852762474410110335025630103655810072043669440608205159960353499106323329832380798036937158178897830709800960034897088668766735932270294940907214535052827845220233945986108056531233301156466453299135340555537251925691021486233254705896789488766228214370325035057768510273466112274910411891955800121610727892176612760429643336997530205192101676946257666801138100547604526011175843590954267383386713469178830776442752076164987659159018784465822557572165947609038051793819633358306163675933004392423544328356531387367844848881477869964510516531949048063266852423508941317698839700606683746197919682828688930671645813462261073287847657345583226554396391514500739559523684473776703439011099227704003008537492754717689335829089849485694660910518975919679872723521548664518423318211645025167533922212202126279554543956088152970543022104520106091193211276313702404842689314386634773303553356975087436008753167991471914376058193830828649346264585222805836147021772091295204260992966867737149127205724528782925980988116213730334832104333217366023599933676854284280978592927148333719881101531068399995048446453524624194077210293361906998828780014211977684126806406260856712340707187272517064631533521203051147605379130579467300831034203163517641483436413179834571293940029139262371638411851555187857289641437694955995253944325788095364942231409001115456618250712119503527273105010418319492961169370637807117722647270787546778889925904600084430617360641709678465086649644562436090220092212825211789475583620166744323808311111998927965892415141324353056372404803870412133978579262880767084880570507661221892907790939872081094052951394654938054274398512697654358846938120422885008958838779920885137129962182295591418528171155888562208199731702076800063672163232333570850003376310021400641810151615574658110345386710842251988215816586295297612848387922835137991921882583158124540041078542702603887092934157000556224111345759436314181358120516925963916848383200480577092661128200805612538988475377304212243921963938315570847642301828392977336443248036210501094343869782276033978051708985740694248126553574526941427511792267652052226736155035785524012129917005954126078715584232661037166047378868314195064611979553263080474758157968599562282113048475438964981941148322558172260023366601801330709253301631972818191775702519728818105279928515825508180716243642981856653616083290350467759072137073795701331847601775561669632930746019160935402851052135994438312379536457966168906828811658760245965705370701003770379987538648485544939827668865616291814440924261774218443224097074287630108646108759463334586732848788572199513386799695993047173438758466881247589578267946653644311073233473912333261040060676066688720677704988831002157947552986138198898210793487703627600534283315573842561610057780112681411657596435780689010646374202479033944497366609028412348623853485529598057044818414050175964036055900833992130384779459727207111963331671309749813424279875353980316994931917865908290239590517270342514506701300590497976101047132671919925214882005930269107837213027138005943734077773630958777198376453812673603810283770313615632117526391087688739217201685786487204480249488694454868832657163112368149896325511526449546470989623052311867603188433307694240235064706609090694365131568445347488665803059837988946388517415862704481221461640218191363888746589237427410656638204140133756313898798937630352898902246600567936751057653628699461131404502008365611656129226134035247445977942071743650632097162507154259501462284324122091912846448303603426972182636609982421651805928675491162569869747635140916417600719665287266957629756114467557750416363152110829656996399587411122726043042799068998394555229419673547586807318260577911098030991010616691909408767549286787751384309340640267906549418304582006252821016674329763235947020677205877396256033251140795985554469385041910286014395413912885412016351323010932370009322623962486710264060987080537478022064604882061601845554587879242831736507193581587579160023938735011329878495621151774012652215018578171211045868073307493005012777130337738288713090447648986130423771806627411150547981064951323928345296399040250117440836024874494306749883221110497747778007108198430989631161769122051251700485191735117822050369343542191171116692318732705297652642360985997958105909344422732568025325645677028525010508233141987737397567840473659226902124982493164565695007598200011899797817585800203609035020860235886570916130517142066492221374798301183294755840538915724799483744896698276261864856395509071168850784300341307303675918319711418980743685784054386853569616029093301709029524089889989692148122292699502921559552633735512458016596338832318689234603129307001439298278570457324594971520404446655847191614566020994366683040973087457313025133160695533291897661020241522426987233971269977169070591024831621238307093772901050241208756373325424040648236704634115097541903577382533028262766707121412846067901464742762821936043449982940193192391380864389688562480349996401315509176747359830405105096393213581094130978046734789643248559430934603213746256967366256541509340884707912411223956451860922609056754238859533535745915738138584588397505252383363785109472155808752366506652398870575739947716759196875356682860093569750342727706325094608996940368544567185651027422651157895555484087719741730610282692376717540657553381434983826495868006428539993359495740806287304801705030426546925228474942598298276851563887549612181766269463916402587728509704019530078769076907334568977895845596777143257906035144959127974641541607872644788619740633709917780398450605942103214383752378980452172062134939611767033322903152067845558120160464601879330760358549978439745171733496438209991805915504867833248161501643134555584396233659895242891524517125070406615988012801313979642259233786855933482821971978176974779013095483684587913606299820279516482341988479507789790208949215097885076732734226520455997335148445671677793161318845784751646002887763258373976793318264296546277864553553657028208149029102450440573614731776984239154582622175620349681272670412763730418531961930805131787268798408153724407585613404241185291448832666013453626218510700019648965527868330756552550857679354437412496848530295977455257820642146197438510842896012437495764871634892095813220562500786822085829704484271935189545528731284685302726447857937000898708113886239159345551792248661777864593900730817298015979388949213054395250474401630582602805991110632167373537862602139329286532743118655890137432829083384783703690716960215343017169555188286266881161304159197033011295805869013129132482740536849949498107374873010980219785425876852612477716494804881952409927854678581721036091513022042336907103905582496340970159793688601571793299903720966738823965801060604710194973799560265958827491955269019823280996665381785310215012004736591420834668063312783708588587614959696731973076932477339649829822860525017660214793409601962711294519368308405522436815273939266097930029219213212344586453615628504915064207564232629529232929527064983572834272301445865309370016999004911237554372613856298493845397697708068046056589460494193720755182417405570281081891635178752918581402399023732445878556206494615254948758013004635538594051040876517390205818048313890354001744998248957143368031790227447175965316334565216376196080408997883511858148797404272738753014599217652951648195169933899200461093671839155947009572009839823614561211866547311644630048454761584673916897478758362525100585348305535628374932175789820250806098248247224186022707792119737216194993730463466091688271529406059303821132968839788959275486865475551641220783092244630119584833605359662305347082864622281463273314916261891073634942197905085002810625881446876463703546172831811362796329613203952901806323437503255255551729485875854309684486362170160437508498323706617917668128617779149778404511399705869616981716381084133821728412818967115342763628316055124351945673020943283672105681399714611913144813864802467570533934499549204875526783687762206937109759730138074460034311167493086313121715947000994230267368934989054811200540671907656928980791817836457059821263949024939004368547433783522547323741033404016279796954798950533817488130477664531838782694963537576307446582131918971014917846083147636733708486761770609057101837238252438988713396251183279302075471458522992165303413885537371102189161865520186330187613777728416994885724327635765038227236889792204658562072008752750208647793061584965537703966605965291219393709615881102163938301625797733507646893221501558791603916144022815412900048225686021980507288354531356525878565286333141244598892604930088834672076990544738948502932911725170911432926031269394164994374842039168849540907946250180328670526127370979891952074966224379470387297332563909197290016074164075573020442032550484426625907318080144840177659244420518941315510396250110117607649256115524256010339858661394779462159523871906201723350570677193329886819129694093253303330290312729943801167567536540575479182138385906181464149696568358058229839267615276645866965684601070364553700673541960563134516229064093918383765201131237212293675445432578699008094184529540075581053344634562209298812659103076740113404702537274726219558756779001869479866975667806446863950675898491372492432894902427581112524830859771484685618014831232659718110877397939364767067621281031636916433392342197983423104862953540308595243582615625120335171489690952339279779908406816452899579831280075276078744568259879877976139369900110627119840077682116871115254107626465837021881562891748768892382348241811274551049096098361068209165072313069576497019476510901808606119058151195619584483182817844600467061040448568676493268728365493917422991303898293877159353996535552118133930616474485741749475828082955367803078752595106675696661260685753192050064287775121032026523752353260167970310573103547851935194525840344998133533804137999257100385648271162467222736024971607928129484251562446142744362825735183781447064486867055003403124038313285860590995967935651340094309153673659928739153503548363278908726335763726983618156692358390949421382555348226445633931046232121821738956133390295831542775651977529918934045554221886204529901378661329480439552919215970035854115687759901640180384216053524598706445165072724375881498093981593073536698255642542844572378063325408054382692862865137381326760896487381100632654759833934739404550503961315390503367167092992783884575389781306150073353881541629893756118315165326084473625418150289643963141254061457060326187173754610345724398578025702213526590412305631416822792465216710606312189652343310064287021037089021078445223559368299955923705432996126386084266301310004746919392295465584575158341880324827300242449571666914960818508122401926129790057616659965912899387132225799025638161596612421030672773478614610815650155122445949460150580050408344050808090797721620328056960755853265634122658910855337652303073371427962206391512802825846129441883337969126840646868456011658256891552481758464091115375827516839877880731345660879096803962090312797052219853039878586281821694433748799017476322722722948682524478550932058919107671644981215825528166989753909276914010827514498058441597719048955366845916570562384971041354450427072122431610112921923467066301210949172831580797620271694250533371181338031875171522934071933748311277461816724884837648406069708278535301343135723261058216515500274704884161724108489071824600268240065376517930153768763088702046661978425173193333550337848717506253495856995421904565274400456736948344569682579436926769894223920715261221351478331396049910114938884468090325127600924765222253678159773190687973168186834373969798421869001089167349843749750584280139846012682010019828915555589342614192937576742942974321443789590653413038742495104541885812977525366074936723827080140489516748147726857285440467225519723363725038695739727886100963354629357128403307027358764599230500967962953812993799851713736862402061579852682541396257989688539353665180170509548510282467048698217292616288166504110216066903626057011511696474410925092176865194039283547933749768508614154594144933886088757551189541549401990904431916817874196731537009192478389851061217862385904959420016206333895493153902397273253767837954665392523977849021275160823607424077865057099155169250277275594563539485473734495477759299871813406452173565664072644299064701335032202455864177519970482178963133815306283070170755413320062500677710623632455243310983061350751038960630099646543664719108444098841885228387434642601458569538090681300200488693584630415746215490284277699582957273581547086088716879134654916390353542115158739170490911700235451187111903026942754475415025661073103179437431278833752655076331927402259124683570099244989305523851388551987526191132169098523947912355315832363748025380794355064972524165895867676903417344161401015536833538679677879248543474957324452546245196403988056968053465380643558100672751048107014846026422829853363445037723991488856808227421913916753930881931236107104617033029658856254875534607934130083213597541006830075633330430212690372856405640970634605390879591524217957326208125873400994654514853132882653808911445667970926637135237838847648428316040695098935405110112984496585617878890996067060239968510674524906588278451172558753706252072772123541389885893941943097534922654727306233005275981298460131884414712198003973155503020400235694181077452106274466448311267294269368340865736390888718924724340629340600971597424415240764846437874154074178190680203149602378445514731478248501272557507334948393484213789049961891088643375434254995331884258843264790881675580868371346722460177023422408910284334636108124468253530068945016274603446930360236901320422753165616608681844055598199321395683223198828012731152339732423762391427672417633765510077867498675767289383316783766971302886398959147465881292564506869624164028002435969084809195244171147021203232868912744694798487014764756155079920837552147158135302376355658022170516430227512195599586358707171519882148601897272419201519508885187666203841817197665855133193334116364075760675910579524904225351675244793061690758422326929662518814581953093093699301432583850494746740399442350683657391723757771870728954449861516562060485458217304141022795012593384003531419117789954312008161990933910906456535915703602304221513565650203993340582724472964537290217920955854315684706263126379755912595433807071662885355055159061928800142285933988240891512195317633339953787412669527365582212651211217869848957584326317123077131151742545798433644255502669241466210705841314248192244192197875481047940585024438431142848864213094903918795959265698925921178204160999927905436699905285188979012721295078755019525624402586118152347802175536512730992484567498103686645727655476557723680826454472208920393748225706475033085022349765301411924880716282848493291713211601913379423600001842540210801955950630333387647663356731028897665369548031534717486440552117971533299394608158726846742062003044669749905578098314886756772979493544552723882615851880859775078445481306186089827339578920472546058915665448365752935487858202597611046396133535618903835569749351175465495973646831606594968578533656266007881964129222136019609861107277979166944035265601598501162473474904670142744682748394449670151058332147972839366986712522222232812984504997307968534477647018522024088414212870533657382948139033501385805141465033056624534642444923732438923531907358264193368887474950846194690544902466810964486209266405991863575909675078944532435414536347076797106316325722193426869087352845528704519928672121175328213865711193980944722084363144530444745552974895058371614413143815980914170631635720944499422962444236732355985973382137588189120490768769466821464845958870678404897766369207096643547698790329574733164589644179680233688646918926556472615643076159889333350866605146107461933776797295518403664786778139605261008758821064764812248042445146559095071889857053417859694953596041085027356237708033869667703364974073133049389831870318712491546828977555215987193602438403056472216048701542553610926512625921945402039477132662317773756179326751346320281096855864647025940287152898038545204797711132923096692209160603947154944982601061450887124408077526451470061803676850600127811239465810063860993164520424984411064853848011818253071168043885954874364758620055720749162720614802895215373100179761519610106313914214849666732824835262772656182409394823157939802691855731959135525701820922703751285509327208170142119653991029815953726096352916808483668056284971805001046808826100238780592490816164916587022542924021629030703461280597637960085761114892816381919509172541475628675657367608866637485877304584298667947553787329317563260774296035793992172270403481855771591647380513959117105272824961978844352964352451628268913983402057580589384353728826988971113637190979770991652602977117329796923177878182995979249422825174737126365932549059510211266586680447710604684631063974248098567736407450848374245537960250257539676478209574986890751112905430148338439617682536034614958435046912856994014896682107475793875230359811849883322022998790794561718844206757476215166682977198097050355254052678652188516603636167697148083180344939267641594680785803412275051680788360819911109272744320271723292463053705739859821812050387414587036853656444520326267249367748943941399399514822046522106661129058590161292138185211982362240753483263665737556461724163443904468177715002076896194127676760979059577485235395983845077290653047927569353770081420866691303291328127142840571402686069381935203275500038224000268450551876527635279458242749009567371439787892320855869056957371128494314154446599578211690670971329093136795331052070819530494722872676922831044568528847240241651724444204197399470682202388956530630972784380997064097094784627574255299134709509691491370688495059064404056988357942142414058299090851509397172569956847182762479723715945952423989503560276242572890842165997587642028457440403711466987260009771003584767036709214665234019137210576291787975412975052450096228722009079503139651775566863465216192849571154824921921366439594690196246678201261327655131309050632547682723941750764088769528851711394001892339949927299136630001424644055323128340028297842796684291168749188405397501908453969884996997690110133208818396345343367245028083648267722348383620014809597667781840676740707775174299645043721240852188622936605974299758084185518380421396644617290391127137325471774243058127479466825105876954909187166440964503640271541107328623659676268217608185085853952544800227437656895778939941342414058312380127692920425293764158426819649764444856304327545972895188019116817894216306728574502607863984075327195095207975386122956258191949348669619344979669900193491958835433286098958566065923121177110175844682517252905452771317540483603098414064731137133131409814521506399705927077262867798805154198735264460065961544114585924364871104884221558353636579831807263323052735207375017663287266292287931584320761829304219655092441402276407173386482676702440519516489946767354211217993824680731038046074758290390496704460361571783635844391859293334259008397987357433399500107620054398254433792021261129280225368283856368549069691424955797997895418601135187185970370024314249998220250426152521929472864524081120248164206169977957284396362238669429709991819795465263552158654146620488521093732621723357519419675241517405783286479732684709597614162801679778355901765254210212813137524744812938421827809536463998522586410075226696139168894567899019501119794768531961987233797143915014028899357616705457569730378926219666420123021230139599629306149966749419818731361432082340570978377846142499253443956785114353605724714939921056067923593214821415355923325163044738650505184664109400153449371931253353292649653323476346757481764403786916059954790692179038784911150222437221094645940606381650811597772634717472501469987463597856549824527186688799815353545321172874991586985552082856309314981810471626548597665150547692449310049126585250754132353947850831950837633839356324655497643688180253290383120376807215046646039480634730522583641268669392604710505318572024858127400786674616894133375577831774603117000555032152036643429412903607781968921104789103127538889777246328278033456711380018368644926500701764799371823869925281795142864516908149776784286322612869468660256564303680644064000201178144083870820728460414369838236469717860600599008483637404431867128715615521334101386299934026454820441276167275039312057985689046117489960829173635461363936325972632068296232126837665547056482153780429867962969952404188439651144225185614207095042885781404667452442552618000540923724538508811194783468995408780655804929876525639950243855646312922025992160355032380727449368802246076701253598326212459333020533216084071365266999818939507601359139472349442394597011867699170234204552889049201661644475063156226145987542583462187116088751838940438814599452337634372520682567943066210857397234113474904602611419901666972186964133264996478165421368695619994469485506479087763276921023144376486612521795729128839408405571850532030383093929175187622383150890451788493946023117922407929717765415048740923457448049263231740369275952815809775522362275812234826895966265598541802479461009089137799799897855590042243035991956919613009231267589509761222350625945190218342909244037502482779269517090792548414390181115080352788699945255087526901718812969021063852912889787521027136212567713157519841999074662703968337448252769011370293924751908408330658803014621470587178215284674380534608880175741299696907425065143481924610250302727758623584468414969236656891965049974981515973613178364159772929785742609490786034514091309096333512973978353712232442197918907516964051457089888725869099934604425931386220905198310141382430121386557913511897191013506944474611645964884769663165865716714866770820719931822936933741308821914965457852235246678326472972573840664406236844310427888458720146481056264848968606979245287188199138175485083423770895320435931428208102930576744220647679501009799156180334313203235224768623729000284269233927548492215935040815715188887818476393235154671621857792858441067358620265258245925038274521944921350735530958742920323920900548992548362231513439874209596166969175244591498048197535019898101190986775442808416329398785294486464764386449787077254758218555257294513718523575433704781931506402720794928760645746026902251496776106679546798674520933596414215832791964041351124705545206494721592851569751325212769040947013208616248519879685512354336399501069503876951785635190755343487069181311987741933315076729859979202464545198207386335628558677988410862120526760569146303964167627265089399955957872751104203676062633848358921632465523056454715578288044438116452682695748256735221732114574328061446336111600460809338404767085850273556681314897697850423265259475891246169103519827459645785864846688511049141343968674319009735641316587199878743744483677314557111608744505352579488257019087038202567860506033887569434405800794838100736428809863132454328017599216010016789141500431927245864357365101276717950304475803142610752272548414540236823806914241136695206457624986462067332743375891316633870082994380181759844188935058796382045270687619050843513551596166986604896574785925861161193478195628757711100342377391698259277590391548335682371282810133655675321557289891275070044996603998252778163545042502680085809320488722698480808431291960279122191965368045267495166761906158676082765665664660134406103289032906163856167536718314944661805735340816819473908944201463150190811336886149218080165221995903568621599360599836622570790031493310006593749231075063593200034338923943939161156585450951197902179889432132017081038540141389566479916314249324846501503040834063555407040357281087898835164205109249777627788465465979661563437803526692271383921359207990247176284891827528977790186508149888192501158244252331308761443509702868872037353090486316110912694332540320483601297440716010260959752326809048048594778419455517339132681296345557196494102021246660638558384823690150696401715607940307473174943382047422969219420422113676055030546914169143543151731861170010733949186405716920149236135791899937232308320773590157192793310177833054663983618282965104422926268844048579076828147745231040080084211913788773125514738164406046048679343072844540658605725993881111128525277514173803893507639868285803146938573233507204786077359554667143734016869323084677508381680517764440553220885230232800983705842873621559970428777587041124453803642963646778868687468654859062838057373916272308301211874476990540359349675026777595896587962395965152030334347265520741981055327397423100225922434980132457278947861898200029774884138847740662860502464102683921558109035014253140974086643725099281497790712872220328050737234870050177693667559005568119086184812406869604788916381314600085276567266209381733856130816436579877195398969597007751441875910865429510281398389114411709438421182679473555058087516186970537128707390188439130549416402618216921602875144580624713743913022142191171175377222797979472752197289163263331447476150989654256828900594258789907789791973123786619847664582312037580761838443771186966242545866434646791692172714804641104041290554711115306010326646032052982326010256508235988415829343834346869254521474493003107884496960454550570471303426330843588982391260291266106950097419811699772068040383008077418178273535721280961930382374141671249036095102341954885637503059795969556030544118152384773856706389452786632587453260551726560630779795012810218719294486634847446879871328296790469003494694468834208026601182723601760249361263371661466635639697448914850213986476641234866224822901584351106352070045064723743239691320431576973139747364473581799742115398484128153570691571640293942786834909640428124496270768695261956850316774685616724877891486683427945649172231657325875273839611816996123185568760311402749979682079803585422485228212091248328910432301000235677810352961969045758117582757941123467947603357385279785278070381149502535181406119014314610118697000519722282250413979415863156852573434150920066594308142244795891196796584449330131688974630253404382070181357412059844441189102664556053322594416390112106832274602939973590164029824558703581468677962820332363081373099873951711541372292553352581554503033947415302540508801372585575352759490428666186741674912774670852048798822835805853952699887069516518756812650509416309619151637781980978071570986733871789283356562283583673175754957351142623080694400685256856507204333764978013660619241637268694548912202287401273408591555452454799417614548304909453061181543578610678959788050278075811826630527796597915556270301108634322541447081119944133328468362726103096630290351991944758972290729302902162698976454016013819182658340092656894204993186542547001447983740921968967504057726849018892559781077806034088380092129832351317113367191201201726363713528645742647655594262517442799506467317988470186835997229056135391225139241395833772554309696338101583500834958507811438913157952630685259037591410157559296428306542690729569205824651363942891716295637274771307054344370551194127009818389269874016665745062819480363746881008741436051344264720190043110046140544052313389584624313270746230200773360211354322868462269497516687653311101784990564699229923987859178478753558605290247935599206598211258367131560373272650195452461231595491105751547661610099684543102060703370108895013498968772612823935915951108828806468987681686140301647992249696655672270353849061487737682951333629553609545372236210036288706018112583592556128875182361769089481132676085052393471592618707613045863183076362080484457041846716105491269747031399925736119752474484967717867231674220404057318755192081058522027028822771970586154904791690006632514883722546983800021353683829608725534951036518505644422870816208328775486097279336823938938195280847957419302970012181901388974208523101803427515621146001551336127393231490407398539809094519046785461084277162352406475750359669710545411987936671594774366556795209373304999223800683916714976187460194854130595401053328516684630312021750073868506869215159890602615700733763900845085584378927466122800952725149358144801623602208562443958855949966731819369858217520707454953998548034195203578696979225389006034868925238811851574083947553369966916236116480538034412705557375125286204707349284150202163359960609237700305405311914410207527779909941640244774575254818678182957667354828489599448807367611116702493991490976272605433600875178375715894823666027602823715417515711916735974644112862413655794302101735946976609627243606735566552517891980652666743960072009608337344415884787382834147559935484221215616879636435352817211884275521599258655394579083417833298635251805578654869941777760367965962181757121202540510030938843740288044898496820009565056224676711145916800367494972472705132834111178288033985954223399024085505974153008571954166611153578287512767207708570226732092624459734619162407243289406618727484820098638302559439300045487975242394483470904079796986587020496293018403956056401940286879644397241209792143642250925908115430718416158637733643111740737520371644938028236937224472783457469777195492155284809130717614600079725974983732543159009130286253631662425938946864873139122707218754684392064122126043577395313651069108917825890797436159000124101227934228263023088184307919705045122559782799799339539608828406248509975349632011410248795659255998137915148879540336665162795815497069994399866493107912073763441887447295969684912484157464677788006650316493845254984695842950157912869846547605760740963668391623822243862394831815963016276668853302069806071358855175955852816949051924293609377026750521511650297143137871160300152787288351754156536031436544707981874523483420654166846114866446157555132437749779867095683482462594376246283268734299200858265765531477921209145604271783676137722049756203305206697349384570490069637902789550531371875439923218451664176836521915121401889023028074704605820295420713911851999676020203483205387979491971370870088652419852290557259800745031316125533976279425246444676940545264046376983119606153164725044040522463001851902085962796459649109389103800401376592090296691965882374228685211696978813950487294534833375246564680446880723119325404548991419300444630369303132721547296346208228740327800428652829808152740879339244640228300096426527824742695274452493190902094416743832539235953596809026742047456208449811195921437450049194500328637135684539904078898008537535876112327382425333512679816059715343166829996305005698072250849513668118449542696965134393800019843220151675031999546157235406410179172766134869749688377922769240469210186857472875382593539063304773628872798368287390909058522889966758552533112905236253652295092930537188040470064289243238783960133070299250916097563906487755470921001178917016490253628573174001392442665886270777182300578990464509099061568691570263497621079465002322412642035947939255430662744716899634733002987525586711382380261482886923764932839802886299903805557820669261445356471214726411370777485475650463314426504233461971873753597683248623842288142800610759074255838067510933147307085210017860363343831987183686027484367849941400365933318343145907409716796043577953574124509927228137695169229159680309335051563002410151190975094270504274369853825570020665041631293417954699528719571766336036437419529274531659355806031732598337582669730498210169186996259528138050085245067359092692376962188429318446417443353811555911743288083166644785240262578538632750183133637790315681587242317160584327217157064258065103575145427016151984025417965056754863484101487265438714452757659792680574330089962365227518266534652772062526259245480149302322489789206294610108658286354322442175846092396351291226443646740225319447183193675575648586485421199871439143230286180217795618187213275226027699486328780109645031415681570189118238834285967682956277926889635374560710633342437720611634947073014322374473973262496492985181845517537766348431471277417427634917591664714228074037030717010999023959841888478984880594807839922236499122816308270033241591989015534882642641991852585066570712615770290491638756516510160415218666330240082753541947143134728123671988143246893442942354586113143277286440466931273072957879303772613696136847890477871440483943240205902238234165833133503695735783893388667384209998942893643669809946205518086129618753433549087314750938390811096638697367985154237162538572273185901408424915489344763179785024688906803781643052196584397589061189266705292452087166867438087572729070154355776603023414750595318575709896687606261045540292911964572631192477580376718543011835870264941082328273205570538520225767252524320300965095216880150803429433210463484113765041688649692265593485079051801956064196468323909703777324269296168501698048057509231923715643227362548957829405078868652044877044002505574131744693489621633181836636603150849366369748132628271705891401760321357580575297172694040445609517933110626671857998957865338308259444642406605530191093992156877381040765827021006638174024219276708338978145190377109350777826330903277041489317949156910951680939109247783162122065744905929206722563909856126325873702657514630203594228752860704575933026152619541084098390516160431596309770424639321989304654015626313409232211373812145480404371900949691376474683927543770791373241432619701969991038550689349526552662786607941197761064761041488108929435328598219226487401299935770198439745616291841087723694665835365789592035004235170424254351097642939194728851795718300001888138492875855910875524060794505644612131337208976000466652026335764533397361665573734182981339579049560381972635362753877209180066542730126361436099469499572497158675290205934733514784471970662468274833757300087457344993094969997116755924040443391465053741336537228995785138347446959181963043176671682043719318207821384154229017131219216867285420409240559626000455756997741641658560138104468939055888554858264793773910183433525259659506042204620503449017260938048725144047056174369794546723393356956007360779863324351085920186966729734434341272747225076521499561809034226818268965886793280399337753208451040117061106725817827362675844269435260370717936102020410217704745488021436887726326387935490150543006015467650141650268592853988848686454181815092408504483889070162623032294382336942933821737593253716523244346267251016656206694607256009667819988448730824105760021531583629675695018852312662704428135900870367710368139029441833967339088404123021951481931949397317929022003394915142876919681895726826126866128734647514911002080512701110101502935595766295157382473423184617396231444195718731436931456074109519433544967745608248473966396737859570282861202644159858475176315603905420739050024023482951621811967038117649506644860103695388443590195226623214183848380208337033394040014555213411791416740578102892638720732821249967395738814366345588925229928612574590631747374629299783018314577485269225502610496170506643643315152757259977535189355640563885531887947144741363789918448820023294050146288468523185976839681468420399265222484642366758907621538998700149146333955529282160293029757765456183582067354174293841617334708989545199979863121927427716795452934271831938540747847494688950961215335014755462274419583809352094967325180900435086365891405016610507068740613627720789450475550568671375053767114923916275667646010365551369521549586044960477537432722637787408725179015909588626053357085388874109796648657100736463020541043252355312718429692926000480662195834606145381853620447013382605668345591586740789285347652977614810578973772776359827529943144733505815174081391260529420893331320014509415345692081890380252903406688135427837637253746070588559503264747882022423577267840490726762820239819303696920049124424565170343083604149893713149946070676291271673900495722043735308643192891826046072137195722958519929844775770239007031312886387356443242901794772660272551238884514298786425571913217739332265520004037989752192519218472015520231363648383965838531590338456768096661886706683920835301835628107471164192765201401531307798421336147931368828301388635661010173686975927952292961134618236412807645643966366020031846360497746080866060024820678957461437453754405932061563558814117743931975973943479767257525742871191982481785181300377001634447754919545583694922116665064252310260123483424591710646552666755421140218401764792374958880201530108280535589306438471159622960211445312815091767322905697420618813991113752695179040525274643597825345612978307658329218450698018225943546855169554106790561844009180774386679523064359203838444321197777572088288306454968296141591632701975122729154579028789222204616039613706127065120473677770267724526429227696971838733501649975775045965307714083468887066921482240616004241410028286410716334322387816583319862809657662149512194194005277374470671592557745525743263892544240365949439108214673123341667867185164182064106606719605428994260393394173873323553439757678588892605508414989350486139170629124223858819728423513761308970232444178767787431052765491375425113544817333193730403623771687192580724466456941782641182509576958129379361026866701056220668993880487460347601457841008475158904420454452014502019504853141757314568872266611579513648181470207466864195210152457947664643387945688440607291067959759107695512473864410587950918609538623438742755255768638668787598023171958610292415568634238080779963090913714710817101128650474096123804378829134708463608280124517999398753001086564246833757453264950377484811798711112886815181011659644998936156652891460749874276865188949575870102729203808946372480078524844285991136887787781792346818757971798679856527391795586264170277927704630889748912780472340472416337189136706077471299234331121214056542821320904057438688071650840385646865752523019161338182952388630014288953973707448669035208849967096938610078275059568200378688615121577523094553380575867614492211169309501932793885110449259489247685222361786096823820505713028332888364693012716010941667517125348811528989036237420468085861383124384836386687026558706965036615405091639622456322405024519175496315581552333453826577349933421699232333555218378994144212970607154468010512816117745819512671889691012545939404644785766194440878367131921151736877604481115997624638662629815398256969552043446126293155229941567529639889994947976566350383976060902542241107608270005885282034460265757774826235315923468297460983125114925436076246778256905175232804020223299859521593695120666902329445780619009503364063142184633549774983743741589043999272933965336230892256856645093279088157781954341655918242971839424494452956497621310644804975534286863878222317024481184537970506009830196277616148001262956674845186504194120747190103017272847720211317751190979472045567941998768462210288701849443318145116698141512832623004759475529173610168855267473246841900933583114730499540484814628572214289097472418752140342401612766213392160547410681275586023493023741936227042807029457366486037254577406124445326809924027991649942316260308104413479744130059838964595802563463487380494242529974490221107158398851375587660148059873900937648117252433163823271682611607981490791335811492383705202731309257693676433751361847684058647809039905987204689420376214073830745559896440933361269455570973200203241278174461799340627742151167064394960174388152691274268503652330877667260539727791075122248786587386284526857415313882399066405634034632720414259713738338124048689331711475809558610504702554334339735151312698332713823933904309463565322394559195318912086284166134234652728934011361532708429482632442111792187221170181823169647250474830676589049623823592490876084789981325598746298478371965761613000468489320634775236760240676374311161662922481437564626123028425840904221021321632321501082436123134606832533535636279470946009011210848829712584307767421455661726500608006488951322275676948438166039918306983493360326291117321850525809215605438546021961625859376938251868306744142122659711521433945335757445350017342828942256743015145621282099040225173322186378213604895012233109915023928273925944755029069054078677898247916682331951946596437897864681402536815302847738377634010249896585513325390940372975498256919758561663933286965455190019424462171895705421142478694349991043308696002803693950256783163799150070896006891900007757249790723951941872811744714807894353089803807320068343039528292162838546085251319839861335579823131816066693722472228082682197818329403483032115179427238023353456978877520146422728251223390938821215798531470822074425625824793291035544268853057774603243752495755953712364690493274362414525110136661685201917293358704568901764209582078518048950838319530368075079819178878731131755420048233643787487993227549118393637988374782983107943058518169910550191996257508280662811532420325355472798992796976487204826416087181154358025586146350363148604285424927898104418450095886712502151883555237134741088275507376912135424870703390214353261448299680702392864187589484967058824250856901567791677188777560908712117619491346916093223937391633917271069144848405216143784580159059509804972852663265235799483543443559429281753514566282382021229538770210255033553276414555806694077921973071021731459054477652810763688871672534235287626396978029761439788702411578138134516917668436765238740609118969668034355033091409638908458102138127422504561060503917815103856040735177089119953903752333711047893588195056227445829184626634638621721563559551174123503113126008372493566998179082146743945467358108470440422695918763461744787805274127462450475092662852986694446609068276282650037128499720230879072386365810047403276015881294081162028168589764857751361824663329666842464557763102843766366240154111863702551545120690083049194603127904197007128336333172403448546442897330585058254126758240511268144936218092954383929845772184024821467013492174810609627915956633626113258761093343269149785202774971142741875971437077543668668215117154416574548959328740458218198462236930748132968188145613572763625227070398108615317490205860920560958045177944861605809362676975989518441155506966073622057626008815388112463778008288911596974401922499880760447695427814364416558829394483706361487492103194451317838321025569015325265828410652720930149048289124629328341529308116325715781049595942316251570477129185778293875408225790414765730639138347000626208236460596446223971884429505748900349472545604318663669629731931654129305566568893094486972385192290505773923677502136447978980711616312410866367937233522704724270360672303579646896294325943166902098704947676363073483938605375572572265913776389498919760445221605993387599661256612232994266590346446090124539349462048552704233656425398910506145654597981844935016589130944325571157543332628712057150779678767955290764435121795788622691682387267334598017266912549232705570355015722273384761645317410358067509748004934229870040873394612238320865370872858319308885983512680042346809412972676373276903192637491598274631394872539648191325286074251879296702193092226994475941180708105163719328506303829500975008070622957188544482296268013293000966413697411290034563605078374115229295418011278177102292003689140843619672512756997027909156350497419833309030974059001135729853036147594833516931871576576464502924025085168188849157771805909395655060534411533279356589118311431268955304935843573399166981422118604904968754048006560213800379903003539031564974361961188890966998554479171270530949930338621405220940296828941213468318200399728900859313455649152120710227932823722428522011199905350174931854351580650817885651822938085677004134232378679916417999805428588672831093987832132353498817430492590160271430846290904412031030702917766130660223602912379517657866788536595250784124527214997534681942368352153626929492161584854250636426373177911183022426357399608375956032917608754302635953674862805872939192336672696686466500641131312536869161837555286061896759933362096273695395261264544453376719127188891518398988744466216297059585185462802142143937012332944219898502015626812746815581229246259027059309818259420115037318479589105129604508456085078210141609570245335723419579930540982871799944959918421299233193345094417505310071374632516948085841488050456691272392374453372036113042741095045553777650402971258195777056848526073833333040669933029291728826917995551720284685138312897916947611284668429185664824935802234106152112064122374917859439653020785683196024862594092622071531338891914758712811302949734123901225663412275960871444081647776469026844216051256704374557101227104143936710690137088792553835700096858580707070554115921307490944466994988555364772416364523210550844517717894666923119530631962689796696048578782124512079010658232348693094930084170231238006028727966594464536670475350616676815067251749120021728445266374779792918575710446176447078675865232674598303692752522111061499632036233066278006598237082811525731733875533915621157848159700749281526305479764944528633613841742198405350161066597168987143070511261376187644277843518791093405020456878550675821606155187807987510692136123391942824356045791481913431280689398091948756304852626220496362571883030177873923947751405469035659341634724762607138045774847257017950622999330553660169310159705299639517708998343667908817318784609116594737717846498729551687616015071290563812646204630166941722160906097704905966550828588465585029633487342224890989380481502254914954856430031167335155016578462964160968036897921956692552916781138643403188854034751108916642839080113515008491570657016124327341296766869365756301093244453583550173555100214427715395605437856054182508446384984762812642376045870037624116850937024223137099115085757734138682859620684639936073749896543235662971247822843655327875244568376060563654428976700166263424790365157854089585265425837217161148086820335613777823407370055414121879375140311671395488980577907353939240877844814541617810161968182426147507303305889464028223353506495622631024272282161279483600091523542680667240255665946021677360387465857208722892995394550361697489217459515337268310996979249808828659208722404803943877574052828892265133415902982458743628923432217335458509996363750658408919419585645787565219331073599888848688408807564579081365492767891340268546120007224157589089783923771366330870339661228942928742810415963412431921989721715259634043819739245508237394613270610212554215814987283231365044690599307234115104727392016405652245631334836224857605605757958169023430874414991172479585327668506872369131642348670166439388490803878986837895266391944093916161226945793087649867958862287622858897705252593055215918425709524974870384000209752713054886281285068411286796973872411160472967396054323871097798849038053481395805058667277391937194436185596869704448210854753292429319836764016810312594044661417907012339189457371817635772719870034436520145635224224225597674458987451239456247014461377354777937206141279668420577445089458495727983122447386333683557549320129456805562714800888954665747298509619571397988241898947877624538645568354828831621483275066104867306296546389035705165852424230187967536110227058599284673009309246902378395390760657964809666434130138758360794926106694403590191645796886949781775283488423846079953040596073357936897206051407769181258540846416800712228430190873906064821960277347826643550946552192653608350768950207251610862484410962886434985423651422824628415487717000898705016910757315644884225500958036033792131396959628413663157432567059419784159879716986928539617266093517169439736630358539339511578778169133813937089277917434086802552365181395637991492618483901869564006924441684679143863095398984605775997102880151813678417089406681825113193845464095604064286223476505629728977096207436144614631212893137777980444160237071350157454385873092663022837931810837047341942807249822697365016213696041494140353287953490676965714684025596865771690901027577704760130261398835328020614659408301458305512912618577576732631595831916141697484162334212123053377923071481917885261585282142997958936256016983949871891484325155891162282505330002000402604639590585339208711224748225169062750446358437610225963595464550066438454466263463379112376191281750088024401838580885172541616748945649704923858918142594599406239086985236106032935960191364706857463181841559596892629807770095457667522157341659667030286453813601330164611021868327421114807132770729857907775751764638634342829200556403356594590793309413802717893378031039757972071343951232089758599398310706693076732686084685081166809752854381531759969466526116121856134036653776951277604650409853477742516244937557449074925864207723375371947426647007921318981472398859761815454515889815653315290629297475281069052922600019157339208300960380696230620430748256073598354542718016589773585690009023562544152371397276263841407335963412940237981955060439634561731590825748915222285581411368306288615971405345034170699221096825890368829139478455231126412110806557812205164710481940312458037864832782079569389849532905279104735172336134472669243459494421073996333148784270414225916223573292872805491363838705252101574795250337188134414185383132615882318709923936600603990832558429932241139440946893840058886993227964386649249187177143462744921046384499955608150026110786751942769217069964586042049556226655377168505799184104594383198804588485671700845469815821049804632906499709161478337041662563588664382258570334664521713908656116382286066033966304233294450942641406382849138122883590628848373859234657173891488896040193088074056662377341269375505518010673645643039312805216196222670225406586094690014462649880307235690075686852120549784728154854827433596027520921523757684458822612762037034220067059372211482842047111494541515574054810578236847389825198769589231546645085137403824208262512787132439170706189861514656380463111249372819405664523039996065964756810373821567606846257392462619563957897220305113203930399082056388781136587314350585863988425802267522401927135167516218365216343368599913695342619286316541161542029637428637722470688777868675439532459403296710466756968236654042689885848878277328178209661126635906157066629485292156644134206793929233221243303247957450805432495882504286563963394357701410205527667609352219986489628960896042424652189934352856436908528951777403456902830952198893136685418895823865855534322514310931186330741003584928578553154183599503313603826575620924275068306637050266538504071307171467997817294528019743270185735190549233823484551424545024914813465448652229025039449335805365534231701740770428566937345889428991607572034205098568347259158634409020330241871581194301807508594831612306017774151735606490949760585480716494770776916858871005224101119029574733207109057385841142331148265884470368431602928893402557340681059095381114755218527431502218564528085622084427848189787907321074282796637041143007325867402727075667009250565325057634672986519391133079203122164391322855823001988744026098900085283912590024759781724566624395853853617318766535039949791762492976353684577982853493222743945361867464463327673996843626542918989418936683972715275052673055589505172550894513842976199828533743864206862540609381260472615641467573162664806456916862693723084311038547275408747587424474678658952056093445587344497685601999108672801739621098888602516841472041573497002058502387946578977877773125573776921778652329832408148369340498113017944035409020829766935016482541382188674552555474057978290646114862294343515793565169550638337180148464108824909974845422212694262447262098421243385215737335317117018069135214915383742614370699278405443187215889928655940902387161751940799224419926566549029480795704454346661904842921522039608173473360617052067344672832240039078753015732623017029583231107343118457929592070017711231966547173681295002046268232477937463099828183459065385073903427631897397985596154026910200070948904021052726144448476659093868656404636279470216918608403136246567492327788755143997313961901696445211836864283507997373710533369912930370720333470970228309053160470039460285103600935364839986983487703336694989685729383642220870596633557023514847875957622664757738016165095727958127883332765270292774276462996207958953162277234472029226152063980332165800380979379858082588537847396394372603806960006061079654499135208420333233392739288119957989582101980863759763194005807861776647801594956099825178195635586108435540906372185932603470616200485588539641199845143611202950781997792077055066076302839796576869184058812803419024596813002982078462915661731431228332383247606909808726932583680397129995732452108898638950431987789946518832695612573215006619259634222203957888451729809506708522703792145417260302607248575536084659966044994486735546732880865342760198228764550924412967280751392199453356267348809935832972120896329136727568056578297230790330742615344460229710361948976222653011196553305173534598941775385318754960034969187396957884105424440760454667532201715873789910566419929543988683399857484834949176115090981506679137295119638963417190974401031743832210659610915099278021307609676961255811269314622944713893711427760789849828980830615407641593009105058172707195048297583022590611522796705980233119997100242302284221054776705054248127979010115674019012322931969928142714040005091474148432514943933893675713659497339913268083376563788430906993436878921856779964978021874348274591252343753320100301977661258966873139520867369782618015095947400814719926045372712726389602995589876530489616940914061496608143907331756526488137185623905176791030187325309486080855290625855497370484290543464585297657895521409849016118555899802650321644833682713701014720694576899826520930881214585240045408000960946348603964977659760046179307103233586732733527475702572795008695168837561593174128021050378512881981889812188277289590929811318371762760254180557750470838872876616313639640784592758117572656209979119947712770419251595279171020535577765713777003039871696509428369166775356392850710379240822875960934611512811804605659731057692715822303854887098865674418000664204655950916799571604735082400876367274112364329003826769192777544546198957409244970562469903046008663951904463335260836995652687164764736448272474493796099281954179480872359989663396292065641487676723463961309671493337750957676898078050430704586328993265626355982586110834049622919610595868221478212539703239285593779571277005989865132396409970352615400531798157581025185144503830681171600232457814897611882397582319062855503653598054801961794035618160142038055137529036672405588770085443847923845136499383306218144070682312783714093656903558694242223106436853991953298578597884145943492036737726895132118514167209980668340628690944295074112674358255466752828907147435985184972727702985585514957737724434104139332698625133237269548349365623078762618320073775537632652600629024545138606603856845908237676192696987450462906651445195295652365534465152660991303718732085814587661884162001288433190002631334916168073370086771027076589612980463013752115412060412867055712848597278926442926992734310165638951381444019942303857713084634170951200441413867651181144043947527986073072476607335393987833945304163699634931119381437982340544294394751819810461365103874571600926814493294607623394253585922517793446151906394901070858053547956255034453288735725671733458946384601553516041559578724318716103694061472723998737357356365781535214447903125167208671559381900580124000920037936293985171301743229144247122995400384883529482799212656541965921003682564598854484725722349919564696824050970504704729890966382209298486913194265041768022461974435121455473903238501444943963313693224776512402010164386164825268485535541367052809037696542035812862156836799753018261752910993646887731577423335267622773382503125552494049265798691158147369958013040973857910012422769191957886071761758123363132095332682832232662881589277048851741819702049389909949309099674679714012483137008262640387779774004451485830089643647982170760999179286249770460779553142396458924375430516954595483217655116569963416936784403618166446902221386694513926376140804806171248709576722883302757634375057014262618324805746921011817272554553018453940460028018854524687792926862571276900553358843216172959297768236505353641697775386635798297973114302695289124964749927585523880535185627970272673646312071287853806914147206957401172786871389907972828126057809568119539297005784392694437459968835220250638492999649688264251383982956189547570922450877589597546944230367647854594722783867917991325863225570343073021550398747085544073544414569525065248659149115297641300453736098217728771679064305996817521876864779996889773434382445177554513718055622516754552804167452827765285315652033727448137202392203801922031524036714481043234201019216636038391132757149887263947943223223877695198508456930413232874948700523613782673956182232355412971994125663501135079025036258982033025499787529023348088534620698859626695028364123629271699169654066894791853354665382268245535174162410918378409447324681115021390263321345561978059896881563581258324800940022583306875011058705738962364071351452185949851434989848243640992288634155817614531795692256812088234146934175780077875493004429794601670728597808155424528412372357223019033208271252407794091235530184187447571049590747477406414816033459708627198530077484484954010638670848332698630879053973936186410125699819530571986716231614440250232080737808520993843200987482571454418390348442896843092313969676298609799762094787337546723255695609494114399363154240753808903892058483279015229375785923786228802041345489142289509017469532441259992383372786287943296168698671133992390853297565127654509480692938313359433784979300865709572606490445285456647004443739850921368907496646484341326468904670724316183244837207675943070203818680607741450919170651476374790952683567558078119822004109799496408842718383424179832209742238956231710092705747125940024839379442451449577380838024626854155309261651800432136406376566675417653450620414987542315040478404857235193641447596392329828336890985406924916606287793394862180274220528849452389897144782806367057185550942186491501281910614485411103679219149321677792122259347701922129353592303447032159583048799811914016863108190714768705437658368304594043203770655354168621152226264120370979826095747302329576492417214250980992344274602200800850572532441270176558070341974641770105265875575841315532135433573144542692428315111891074801872171362612392710989282093522142765794188966662173421201875392060085437246724194689752929604174119733409565699437311602333076553270182801462796223814248807646717814573600666209299734794089333735207988455391218419579434247761607720465883607170140602684851004907169125934520965714043228734583166309061354034941950045425392604742938747055914868585074630310887407190156656261708620989653364526552589917410247480723536052879650344371987075217367100919048748763344211859205388037427535697459240888300609305859509596285667086973640408209755479572090779659416796697576998058632935880165013258986856676752222501153350794604468484801996364070194868597101892535483470662263404096914336730244645926700289977703572508513437840396635700000585891543861877837451084314189426739734563759433579766091980532102787817490060605874932669384811159317331074921215336375724678587148280933548724033343993765325468585712896276447564579607873971486148710041678491874271582183406942184304724198697341681576216155293524166517621400225146721455557334148850434959863991666885112285340618988831896744905497787804952587408470660955485760148078972016617478418867281636312861658799919279216583237565625433237223403329656392640318913788301055139738191532171902112634510367874134845993870847784602625692620908323483211611932525832770184819633414134761652619384258512785306480814249853716652863533260545194619418516690791927662894849289090420304692281013512825743818351274114488625187889117573817853479401843626643223587330850752721145706216612082515885889497559081503224236910111370580291183995006713762847831971130164817273109974952661433789322847225851074315699168870960055259300703546428285961867181085052358967462452535134278488979189370705083277259645340895999522415499831855206320385203161468086411753546398658656051311510930301070441171689558073777679730587484297595436333584410332758001561910563144475502558996502997356250924791618188756686209511639269674952590082822916034610620329626446471240591774390498145577099785946010375121192952402297096309862801576720485676753172902003062990938749078397594970430791479393435793762941815648986070872769136604360091689063403547070114041480498881856137492992887774672253304014230467429858600100718377950599117758133605161788110699214923989458157511199821007404063642501987163557737864971949453626072808071178646602184352806245742627488861293690262413614930537604124694076430766005691667961455575330384228311985962148109176156497398801167930619945484061046748542969742883591616661428098073939906775706101685319975253022496063085134905388365711874113878853280106000394804145092682350512361607091953851602063295493590593527648246712190819997665667463535258262943303473208310266207035207993844309978139194516733641819510780016087075235760831505082978882059136955999631733439591445553663996715018826061804687505375654053022882259125122724693318755013178306694349875334576507645426018689404883286635580911496767685430280962843297561899902958517597806433246416182176516171142738150862319993061036909671200241653469494081360313507762688411351321863419001905562046129155352981683843675597984317151078239503252930942439597081926556942313633104127489583250918472891673270467911700145434112296553859608298808550952258740946212619635007640572644346994782966796496732187183538988597348884143552504578343185703971669223944863290430397558100311689663365986866653809688653133361663585264991178270999606503954695698486004847001160766135655418308889777189338035430931714088256894286966163582053365005361791728056994446362235729575458836219893295157746452906399552091064549388485583580750799239730391483927193430062086874686471254368067447066067390060602332638254652922572310021615985716066191368408777655996930332032869255054129629327953803862101574707673367547474169293314690892070269848348946735798437236190814822772090419199823155420279535318075966588239476481800029836598287955347603152441131236455054902773892888925752789920955675874713452598520816408361152524354030492873006314450462167221875928814419356209450119702818852090382299972355492044971706352402950631211009955109568132915602341614147634409930983374318371519477379697924910851277968012093727575678803246572570995918776356173990357587778313529243891551784973584899091036446220828232915232767184783337555382652464636277060568469858979230426740764523556375735050212025307066608172029395899306131713213536918144223308221200331970417952332645743083912476330697498244188040166868470945997744563470940135675009841408559566503210141286414248882078994375664978801706603965940653234137456266386079204461835289777201586173474924810119546614407077705176327423635552019070781418569514557449840121205991896405472713684809738454856310328767872785967579029459955382419784998694422729012046162078302858383451026098758845495764534403549505673696712563250864287313677191289975249137156748674698957626094860754055430003845449598374177292721315728933929445602784748464999849438506813235822448045140455189051550310285372828311444347320679016345254621814367915430792982335661043331867323387339435022666070727105610106421231284512976755221460176251433474859326733472898942029414401359207390364810224771077876287785372866560766421868946701578035539873668193868096535022426044661628087962736556882349434533337771125917344857696444640403109300621214149199948849963762275660113997172631272702453372247190684221447244545406362742444082647526713385837018180947816443926942730306212697879641737923910416457398338382626124919403426682712001098362098391768825081552259143161026392991616542611960257811003057965645968584856882406819446179225169026896201464016205474178266139996744902397944209868384601152752614116955444487382323426447243400344638851634629973688215132391438912980827425105948981288389276085596219867887116190679689190784560687118423260445189680613999245413747518567213200726765158712941753132143461065879233679262740687720277463268851792426548206326347010537850897788891718479914242421755751928965133710966775863627234386040414471151093095949155012757533781712757528479029997555900261748095376355195275379368608328038367241483754465437930960829138542708139561107662527351614718163571225272842196999983800933487990197117673465341093435205657293877756227599727288789992147954624171161714196465812437209384737928293479926501902793467303559258614190391761850927630423671527821103375079592627159699354656561197727910035704214093606987107968728406112259357213859545683033444303589506470347081586195527970489133021759802353428355900149714140579798080233994711329561094401904488832155720625798779443851045391210276162072062762478746659505473257332458083816207646213543819021043875856578702314826327159849700548709419750055246423593701450221191738758346339989021241157674505475510758512825941282287832498539003412646485218598816114555379539744083342197518043270124430322369242469445657965021866548462969496261535317356702800393740330293259557438930545950758474777707938488283087619063164853756313021836934312469316459703775465008057181908958035572394703214129308955508334310396387650016774150931880807371852731513023412365396560149430002656700516866840322640104185610729576339362811665777534542962985744409733454987956567739523831469615563707841034027547172484891612956546085668514257919376625354928862807728518114185521241960194450709459776521714382628680040642406383211818545714745079496364360661471824693307034983886513384344082521614236043666620080675224258967003630697036890000991436035535575946001168830246243456222209289256348440092830008743565721709867421958464653464458909839979341956646239915765843077897081767850075164351544192075540521350935482940370798316517417889964337494199717455147809127027752141237798575527867169501501870791588658598718699397375976265726325792575077388148039327180362518231079570913039478668453094042827897038509652476006749504583805620093541003197796015455728476070767396775971256221521877006497028745348835660024971119545425187647889975393260227402013646884245599677201963459927825803012604930963882401560970546589904331463952865194730126470100285836772731532740949063992282445672734944465252693754020189846094392304360258674262048839270471010752780329038536954280635409536322486122005573840870903034226885611254294571218256349127343907359425615036490240259863054881548461824159168500963792482639617440703443492090618679747848920814849860620091441222816468768487395744147175542061163998030635633764294951655922703795870874178268724291683293422718715302022093831780399853702049899151621494690230866193825512670589731405744472011912989846249309676264570839115888432132640896427896096471777677379526712934221195880483034845439323922496732302413792539740121642266840557033116287168361484932619986300887801406777848280801359114075078578914665589134274049757982053631775634280083234612453785058959603953057827578737410388428435801055633193788161017240242381551331504107961004456274558848973353786138253079643788468027419773434906398466198412419546490544847616415166100425800842903440154087810661593679174790013997588810644414188368123022401962327789897067948554818105405297021655293614852870558319526732674301283710045406545167972978109841354007315066243882688322500914514302947682862693577155894276911484281580069357402360440012996268220805181306939617481648491755107711789727546199085875956601468063176845294679380651745463651058380930039781782021650591278750075584847960066123775642203959623752547869214983532908887765672495165872027393645808765625245969016415015024084517707877479092248234624694430425698876792949342873202153428951909488953122672334235671005334669292854965294686329021366146934970839906434300205735978541448129418044237161571978650816127281265558023890723497936607993975602147661080858090883010245320465611984389352516256594564933728223717010703112188698186824305226992947885534246328550591387350477482205092853040375976261857109171712060600018464175675545947169388702502873177069252209163248146711101048377778942842383985803867126969120214487463155391982380682360530628424474162066028048010391162566746820208739802661463716406140301289069824220401618850494047356063973209825869187853352759800856841050171272214375199981372553928645319807722121221889821539634618651197364338657489982741757839590261489921618941994893675778835818387840318558928481494517274791995453908766658863873321508253980841733232859036295439084687388202667404047268201719729290429285837344741859903363786565400425816498285038005172530149122738222797616891262711587048128140792448000256752896400968969023409085481900448313323253919569939693864601067352882869641768346858227451922868824096725838335275948370713286092474330090218805805771781803740592119356620343558466612860413911860061365589129508457690082096416995136899848327448497196869213023151111941584023188744329118082273569551888666085626095185092715514098248428977052860315223467619765449254612443197980010570558762239936274574405833955918906592132114717563177439150190010968313414313609442960647283284862189961749920740563997916474263938851646033610479480718876235982523563249681940514329076227950750342506292350063257308395978092972314174101080368835176332330115001660529778327469377266516333829931240593570471090668958875491236864897203448817797457397037749267866392944143422817402134775559900370609883710791587075196939000993024664578585164562063137843079300585473026642914034863169934802894051911372111271983497301969109223938744501384541278990143319581256890892153197901198372323710503929352476582906259946763992073927920963850423775689826380244594251746506011697764497415469425141838356957063346479989871877280280586794714604192475701204899429950374836354223744552656976732328843731481083019141021988254053670540828734218739928187075795728181902951353720132998687819153560030464585450166787951127351214713672279244835620790999276417328752474176547543535716833716336169727473292150371413876498648739228597214467743913577369550957478091541553747804412347386146080595115754622750045145546753750950608891216091035146877070951103032543698649234916990054872607348796019300669109930740707352573456038040226340670112332166257972388384142694370776972269938718568113904224307169310859268410128392200660934386264926293753690330008038659464008754212627908881634541130917088087096181892134339708507444600336867518030277936581530603812554846801746184928130940842155061934652786363246044380113161963841874752097481678710062202383531226424672711691152006980969931054402776828097507363450058436358547888960258042389897970911130442842285537919703987645735958513547269038773484243684998542751761643583075140557016257307364414629957020333990629951707078675906785315180956247243749864537119764593153149386034018194996015267076934722553767484515878438922801874554422024355852234077536454491312643902370112622056269907465460811479100053484219604960754801702118436055935681316942272629021107057668888256366531552007987186522103488994830473524293904696057868857747317287111660177698931920386827402672269966530788952486722975331984785113962447554204733632489067334364793805070164988912731314905571278067406453209461807133038353279425943583323623948217338227079491528052928291957821529601498765965196799097836479521642675964582552783800442394180157077552728861904237087474696606734553504232993784925293306858943227197982325329311056672471668597894746187256559090916471638246256273600846852228791735986484219093070687238978028810668563040758251084780420945196740445508615312015451154598536807624385492481477184418151907454603458163669953742593468670648330778683300085452760595863408542105269076972726623559291770383646611482677273540795095200056810580146904738977771294928352255195724582010712860572767423499729066681534462389432293774238163119448865871232253033140944142699723474842222019407176270298513475020701282839589923252476868040460350304229052888586294915580331184387535048294507824143713127530959603998155151965706565666444201901227161466491000233143169234533978219133696192851588479340076293676375344566654974726286107063639530744334294253506796812367533627136820121653335736282139831642347752061183447373760784858770614218650672287176027443947596656388088937823366240090484967114188502875180115665220655250267653818047405077577598714644788517495564994288757358436494362151111105260245907239756481330658946214638241433498521387441849081456626595210553299509365195828917202081371905953281414736831067574200578758058679168914798890931019670644619860225795938611161706290633514227640268886810740936533727151836535536758246123837294490972296963556844580050962789847899599869898659194496565541475896806514882078035018466144743417438139466050160173291918632703446787432985881694377816400820500995539338669311107499702750727925366948019993067417532405926834809852685388369448659522617729475081530808473031887097707484090623351093323801489850559289724939501433400775876280568104222797709923017720555509116271004518388697738279885990338733662412816667772876273942466472846375176692735538838400880677184176968173377912405859460282475868600537299365808777221576857626900402865100743991217718468574085409425962175798197729014977596850821740222617786787706369493730492616057253484791053893905085792826736845744151757827592486068883083004720174413317691508463105754839664056389736146183377604047465341381932964284784090680951815384135329535076311606524164518106258477497900152229299583434263541461235282866540012846737107221781138036472092394067963508548245326132984055332418837611809800395998492437836883891876458340594170317634168776161656637285513899808408819597338727813842761026650781110289089356835665776515107483260915275983692603113049889997091960930321696020207409052394774163573135354364822146270192724774856421523391602676413509671921722994438007818760090864411759015030915296058064434661452253761329391415087866015799212870909871720445563187639408593387067970190781956985269120265899519739218396706749767777987787988200889484027711478102565250583711011527167136557940755582857372335104782864519547983214160559448255082785494943002294260240270352659743050707096941587089712580483849483629159130712160297886162878684261039703725841447848054539407542126538136775132439753320530583051592225748023463062643617896743169511105332135634682241115971478595842403453881568444434955320480949569106600907978503898803388441667886751879672075564427647264896502288315382694947531816766127740080212007193365206988879874138293409545024552254344781013884492311548020463507996430055090408655589163758017941159552196894165025923770905080865041499226037983787656632295282122294057822360013782294186349655365126020238782885064788719541554130829818592453185865969072846691298271421382218483962271010216859743398726613194093044359802906823646249163556035697254020401966712600822500358704277381438850089994533052155697477383267901263435433443988504461432879210272614926539321756906769105874556298485424479684335081307249944078364559770118648212218399535700932557631024455979977856858835674940916861169262990457348563519394438209008131804553335022880049182911913575893514994142715578529261594284766314294237637168972775560597075530108351976230188604147927230742994635763713413197464665920527666652096350254269804617029687016546625336171020069961559678168009336333601149595493059932091598169461158025712943592212844283102480558635201763553830129719583479781806356034764872251972198841451589419982582122859953011103594582384473760060950496848009614056447418273839641149942057134073264129079504659472633242809264495629969430698298364455488745211625455483267724114721802848421058919990597659432366471606700577626993173766083177445722025598486274196606594725441854774907766593374157971291461078548541523081097639982150185903835724190823180842092678202534131860930899459559149275297628780311948109566091468874928633857106116558810060736088030255574482115868558250616328006408757027294953683767322161887289904956627473823689140513318031069388432033414459795028325528724985905671060328864136462015376969632154137821916001085239111427976742822912525905308856553084903621442244332775843172594277798083701419843956423072397802506893873002414589947927129046316958164167025872510724250773908593188275970856604093686896273641354423304362341085870664514941007517752370133554870954017185412744422258178177847532059499529470454961049515244903501490246977953443727737024078714334441186911529652322406623742031948820963190821625443337369627251909217314563457687602521468930274127954446513400262106714911934589938433187939453523083630506819458300787892356452533249755345006919159948487677595945761567477313063913637376106906275154954342206848346546906060570640631080197008885033529261064592630942627685140216540301384139266365592278172349192516437844811622727255869752485743564011948946450534267703820533032062496055740015776292966094442828049573516628833094093578831559920447777738635372807092862016691360908948348918852727151447787336338417842359121816774236198664456521962176129219489027858629619085785649978747979637689190671456089886940251699313972834112582038916749584062468370511928829364350447791504156327765069318225070053618983861153061976994307853185016501382519819743398079017492372607938131486153695277709650275108276521375852929566288102984083830000895778226345912531530613094724740117740683014683406312915541664499333714812702900037403628417183914249936854471348276693720245249686044662198325630985942787282881603582299369055843362684862897902782607552111928857216703754227931467239590477120309666354835118161313234853467099248503245388175511910264649719031772139371459069440419590885241691437880216575027740639743967848322667600948088699422280284240787550901471843376036509573269289543334670130232693359881617826829514610854632612119120415681760595911671184556759638277218090789269905559240964806475177061455229513956229011053030220838385312969995689023622209604079414999956374208231921334874815419020155243230250004134819329748273632538307760050666316275012391647458133960314322325873829548308688245515860885065364642750870851994354756248785327843697971762489504838192209542247983641182801530089725839018279040556208442933253473809467203391912910803069920021016197381761819564393008040494999910714376030915159321140527724673175643347905592982304592286206652716060705005092441380218600240075742951932788468326498877260899811968306263509353511293179545343685882338498306350404437552465082620376483319341365917977212254810502380614653965424798939796145921368621351112650639382538335721816828344226141255132556953242811091026195231123530392223880454854328666892607944645491625292105794159322704365445596988123895419785599847645281042318451836352426843749907848590025618668180620349139629340765579214411834594280925738674107498600570283624655581824631702977076674582142222417297511813873444185025007075571586348559556139043419304924103706039612723269425792165837947147163018064107366343602246175611237423796910859360552724464575544610882277429197361880922416718694146281738287592793310977368017017358080312981326946439755119904200132313896146391389514240924105264891117888003979856583436402570923682179361123478655053765702340061093422397763588978492203215642295944029532105702747452762361241576645437088826528265554151417426655957710262758481805908446227888379516074294146698528170331120702790901510737409818595516586553214721410283091274639236595664043336185781700464091983670784294342262921699114885713553414459037932440492976840221931093453251059646036479172428289994457133131602328271929636947105192420470427974773432030422843946303616544989164951965364885434078023443871688585829222442277551219231383580781195884554773069181383874206016957551088733558484110401595220882288583709072889941991818731426235855421569377718598973869569847162331506420663299493827155234228916073642276273926660386104745848522847784946551284264797473806876296475498996127396202546069895441804621244741580885322572814122629765757821806103646859011748997337002801671276386381286926584074402627969324605187811174572376826153952314187721111101856268522585843002573274108629181465299152580239669898663854383957942849800310329755102567461172724643693047999075469981485571103933653476880739931233702042585208295969428259782347049460478031837921922681243720033722503439945066740068764044918245584269576935801354724977748829733637796295212958773714421380466306935473642164325482078519232211179117220442486990165944448736555948085980304079530273944814676808844627382460040906659953503898549297956784532327886171394008407572052384200464939734115204160436408876692522431800320743416159877734231383588028185811505614101547885095521966779323940207451064362174590699977513068206296368160966632677050511804949881888040335582461894794197014421312506514342166408175798841945286119726159747873694857648792290449223853711921023442410531166899890346604716881695544374079630638450388496588143215644543018476769778344194827277048294992934836819935091313066306802862297375544122313530816008733464378482874352322100628255367831282049448211962111354865183205602461293871390016203826974875280447803989619122965312775018323247276061655043397714437362584582890766874267593466285105817410407738790461955839626847306439555168442366799556033907638439434492911193798005320303662262168720755275145829983702132295670900858109533273950728609419254524199026776314089842037109525044615087940187017131820413462398950276027405088598254515796504704368721213644080354861922732293925563352644934799669999272991257118412332656854527655307491793958210182818732977946183199079486316211408908661547635521398386207622111979578687703723459025113352816614398720326985106785674495843583931738806813723715111397071192232540339627349513188684555868991698889823681597443527320717157255428040305624423625669694070484888653432537160545787341681994037793169532847425582013161140473651546938949708477652856233228613744846963984912722740208973127305051944606274949602779797990006325077534602497662122289923748295130023482176630940012003771715499191496712846951879973727062222247775778849355987390242137498147796255883012488370671590524851466860965716612839484342824958165774246600665318356621505905402631826482295724215329456123975937898283818801510364896656481775842135470870420196014061095971745601281110863382871783231020442709615695737078816987895483823061064688971453621978571253621126835047204258494430851710745124680615017046237852442188160306850985274768243907224318040760345539955139277262238494128955530428104690401837954697769504118458247502259382464818679918829595717010014946456767254056874668576670074883436756379028997455004511508047345713361555521963005093478760365098993344603975952606621856486584151469003357130401940052116213382976414446348565998913407407767839576371328945481070353395332005300109409194405290590698107009651636476695997495814910353710832725883686389356695688241636117237915730399922997759344156765172477862546355313674848425780717525485161679212316318462291215044914456135952912974307064747208649128737610967006313643527018793252915474147905398605934621325712528142163909402766011954553579549476327832477650606616783122496914585971052257071917838843360571596890527915888613984348905227818471398866752634728855085808433939056365871742527784929949067925126392277429939808796052845747480643053256937834067737482639455490537616534297789234248299721692467171613970913857283684538785705436767671797948068220201519964435058443168763931729647527483179655133026316295310180807606713983528508762141568208855246705756779340270467093936370829931760973471766866252555890723746634183431831818022604496567940182602203798835698685075099643790765654403231823790519001249510896136584139894861386293286552212382944101691949854996773376058457531876693502067172913103548558689643866641342278066456288895501531516607509881818839624099171615584159459888509646844489825472120450620053068822144596912268011317664248404372978480853473726020563246034438180432501978477051508240967507298280028725891719027009352587391697474861487675554191931948931046111981269733556624852164430240605178394105270874154218242232633104222949673078856304092227950880193627253351927554857879133281518083918704210931457748133129315353350371045860550681306940597253958702185406796475624946112176450464821535912666412989002076295387525842051062182992665872633766306980931953544832636540486543235723787401143955396796319828711321961195184170207975630331918162042921800762274594590525646621402505435356066733730816397982758512596548445311387664909046650910637964499125063994080232819256484412466130509983317472030769437776917705206721914710304117135417450222050201180197264134823064109335740296208927713645270699743499039055657281687233198255040465319305011775801643149518218739871078092924699245768606929069077295754670602669711539205387758229714543687609716409772714225412060215516877602838646150039106639924463081420162165168170332854921396746450273927259330325164499443978843313397087680986875467513639671472017155528710673483200677487161473922785396081950084658834157072164205918061346547494282155395070239141387674418147994535622942041087367072185482559320123682413861356577162530935425193759756538333103978175715810268266579857315622179285938473225972358422617135978620380232760670499242893281733236111580180680957318688947480716696450205983719248364010365550658699244161282563272014351979734722560036794810560385350878489136678849895542356980953077769349800202804722056739044061155877948200129042240273702431038388666012222447158067878307376029288966507829356413325404085633695032775320470722238000714764428452300631659589114427306231574633032754263991817351575299794858889812776176350541852574539188191377271381776666024752741900458995670122842675999701289877089111913155883925453371982785733220778813601740683128942560792899461394167744010184316889024462149509071421967597072001715055332339327366863744708078554782574252484572343139126988913295817542668989431814290497248585399285383262764262015408004108177365965910439776131975060288826186558011588794442766192330898802346807650569145506871578657171431909149669554082407587832911168082649880834558388812588874415851219354880800250622875551830503508684913349916750388410532883992854149842643146321374892095882417892764873631640581171825452298473309707416685586886316842791796608585361119394368848399182756342583835338309888984519595497333851124800928678016697859906416791812806747639207144040624158677635530506751836197380459382236625951173896022167156602717948983418562425596234164201243258690055725999192478454862193057116202518476853366849725988549979932541084069793026502621978722269082295458810640491965208430935369660641420341274329456030405515563337293564205370041983277418071136261431333095884344717670081358388977262089913260606941561699560252403539821147894803348267516436596925460436507091448428841711745665982273333284252256015035299074470346113508724365974543756576038702594175440445112722294773547878956197664393915783168630086059762350648359737083911301314559190172109199677484416885653672567946937199843686382774639493206791403569906552228725629097948396540942674112883174903116975939416564771541623554973039402327703243863526307427689234834944876503870908499995999970708940118662229878752200617028743389196080097646194266923461744065589928522423947551317051035135058021398726696202976868362768675970076557987588123573600000771251175456367808859826334631056608055910888050261435008036986426770740964962441379452823805349459042715566144622289495524728666361188954552405800226320548155613738605321757469016375618404527468363289499911442642643321317253400807316170635426313649543673769169196582074551136334468486098014761677306126615554881081959654361959251343822792112812415931046366181516022737973161733727673440204666383323576846162432220590467804983979374626972684046123290629851393092186288737311716455327747676568367721570266424331235014564251264117165770683426741823883424376999704059676861067409739214143057018366205488439907421701634135002402733814469456550704603686548046512869947893436508441234461433022603523693667216995022359715126532388329129764391847362912401850642713627638143700578036238305837165432585112838841537689562755706725844734285409591708122139850269366090341247995006626011620006245504339218346420257591595347897116006297823028206902624468436370857646600604928304008446831040167954175566582950108580871643409690600744564319533981392096022250075458231567944415634239068912436903211308522698834284308838468019268039845987598212351337940507409228241584278599948677407437396148637186257600681219108843028486617582273519547638887414899751058398656466202090299165558228074903301087578894946903792675788090529131646156022736225963904487645306607569737477549387358187620314631186298813474993656906319223280130907201356418999559953349632256365463154834832271699193621049028555933479896842271200633844457083344047303037132530832031259986859794893566395451905026009420395524966650041028156909502586216858932610908315263173392721173677213547692843669669098922407552840749937206999864121393883927468419561588810937316492088352372690775058428171633496366134160111620733153202129764883205909395896095950590365896837458297329788073646678694817398040907421865014390077915532096800020747837918982619389842419491102730877627434104220525428640749547143929955155575106701816990031024900306022093345283641644261408240936128998610933078407673167323749040860605260541285821601778318236776091734559344040606582340422473984848805322066218000948664069295489770700953291094047107757730576522447215403061214100755581784344952212384715817699181737257577134934343096404417368158895182422790618131114336589582102149802833284649806307387337850446324946627988125590947411863725350472723724625368093335185022376010816423041564176782771616138327873918350642675304367825463291822120609883529482308134974903218652939370890647980643513433754602784242557519999273467385383817751906413151852145018753444130847195129160565997790984442105683070988599686877468131304966711962110159981119889641766988675173124669691764541553834642453540534535991475891343475444604230827761061488473186313596894458143708529378704386678310503422008704670659552521285285254605884332801239515039291485672277219810074554552008510756274706161700273395287243947785213467139939680748296757417868553328026165695778665123949434431809578866338004362964750051735966954245967060182540405711999631095828562576026633852376275782309424160029207970561488829876730378760399185366923658990274156174020446421070651630688989946879447413179878355484636470840842928107782798258310154207107362739976788497539342024707801656803922127333450430969523749503090702577249609088923297236704891817865623118618873850995265692791664460767739880609418656590553614926288705272739603056012419570504266792261479872591484354501711813935285215116096755884616992956750467361158772873491315808154203494895988459049607125305255974226877765370296918687812190839022890000289893380555416826363392192533514722548026485600676271861890748707268327030078829190332724377263020421041003820230176853542004896523400176789373472842552306423218078948939208744589067405698803459465189095592224393773913811710174931653671594787727581760435251892820462053041608775143532772354731327262651161782338448248007491883965721812133283726247514703252680785999472774205656061372155465463753631205404604836410886597470615436381259460397947875705918985715759743356801619132666251303673047408011000645073106643954271353694861199975030468889801315062797378074518621241454092644677900335889599463412211467030772866326864117018067982428376090846656115570388636021703025239391089043347564127807458213472005600824175938850748691009844159813008249481236437988544336677786671681073037109369246346976892060851717792439546649876286770113142138688072970559163922105816410418967810880898854668722300438679822056744000571802514465168234885754637038384156349680888251074518157776156370333452934117400404453237127076318851190666493931583313949158660849008348687388505995826536031911702107673941877907217804531276562431910149011994672853468691232984285929700984735609473333684851555405491599757626927479734839376513134433318987985286554805550509354437252572601545608425685664293201724424758821516649501237012718678581587899680725463259493275439114490835138344045545633138338492318444970279500026365225340522055308192400268175894808947579290262317997823304431824527389546125369614141227007315847756218413209990897726181699411651024632278883345269234256468503711232014558105242996923507541119273958537563074911943846090087763067807581239290516422663686306750433198259864685403307018522639480582216267291857389204758503517010204663566904938330225551939210339859091691607961828691013970758166467899806452526621412837912294023997508766806348962543053880497607910871372198749359666777565611030287490148713992122706691726047712559095687640419308624653996591987031673023834954957572124479234538436343822356072079141552036460192914161588168171957283093019384821468274665612018928083393922544284426013291538999598957925646968232154219683179669988557863995798329181267167204547939630418078628999016482876791575867352284944289876013696007191641731200866679699193512122498439670402396032172587283579925290394711741432277815230721860900380420899728547397626666587485976133104461091336610755719904049691293715720029077286406629509383216898118769508674996689825370224183041066943774051153511654640399119526323116161915721191371166557992815025115485301172972487814351797697727150823686397417612496920497132932848159445001690484825211130741485701394165068221398739145857315035275675420392422370436457305404911221767533285701611892246184002275930745611026462894593531676334740487006090401623973316300205018499174701253915129803253014562626543848833703979110803773900111848576221510629391865457650934409438020768231636002556559951013495102995485727978359769295364506907745114930250647285058125071649856072633105943461317758978812692467581810265921948798672125068360069594306884559144608727955637134094854548129304140169128134730926944567591062255115271052567167097252376062554960411223691974042738287988406293668531032155404942568722328172807633292356022473236836285423131533070877136140439363440605507855717955812225050662502074609948835245953404683170402331884442533614798900536260469327991699153732505159841958463582504302413381092995453737952313095689059470873857084606138976143921747578391510274820585073903038952156124914236241202983366493123415745448093827464475998549392793791035747822185690328290830573710670460696609612625192593363111131764158851645005257338705537560746919626004165238923729036504785574961938174863038247210249311826916199993951245199660163492135731174643188818991406226800953473019510825701688873270842771131127004179714345168225110076525709935609238160904971154141631384168231577179173246187704398721483048250627408878653473502866739823295523559692990868158794895543760151852489005097343104060793484342968232080072786655398899674569858806937503777601881157597689834880984126726017728204579512288849383324764556861259351481626698986875954194471512183570652573293198752879546642283975577656599059667967671813222543996247181130328214588255645470820132039110626013151241866386160605237071857354015789405845440200810220477852490404245464553226095643897432372222599486567944424064571105023087615319273621637911804326532948740150582195478404035322333882325618303407487192776575814687568270644591573045015768094719307584658514094900434354036253283444913230766369361621867568483493861315156828220201016828036021793591571116270927657873610793621423475230996092560655484202480690794024290407592316580354643556665915599134212469921384656090038435218346509370712489722489055846207029316861640591460043059126191228260279969005251304169773120854195512502854131077225266028635357090279845259014217032033782748819267143291267125980691175772995979015512244861952711873881036214618903704676361492269027931661690620214563826588128632614054782698229317367925544281505983161487778757517704900092999855009305941194269624972143410149407434825136296305082858519769962413499147202944961998617536934827513040159331440015425287035630219889457253970412495381117624819638493308162284891670668793481308280730698304155032440551739249576527413151907938810817340884819332525493400687026069529377460758892717564572560466601219673548549395877920753968251020860155509308362866993258103088162586169055284252461448271456052793999707124615557673944525639508559822359586034719551790786129426648665950232930811975916838319490788301113806717287919373020968521795906245707080584089511781577893140844289636332283366273824415914859582760272514750658469445963494509779456966957778656249550281116631798499072705540219256343044717825745658401799745224699207710784658201534841920890739747386670843649682120347979900608550897976281940629082212731428552638183492757763014447013362974915394427660297816355952348149550146720538800670253699560943361911004584344337965828318841365571694782251746235068805669478215884913010814806476129519330730518430847540737407390253039069979096939514411291080305099610404743765469275379807377158992978057640977070011288041588834874798784215585553982101246552244217417293376794144880182698193935586149253548535039686289986553458288059090299667357850830468044187048155478415167732335158091976321973651784298956807079732289106547170808014960228969032766253109883171116501861286624498536476996993653072755176128213127807343926003308796338815064260481541177436471173049079759436620466665992765838190198906839902254165889940277181336001521338808575920426666772218016418462098787124186876358013853637172689399345741842706615559145364954821494768914066525553697453445976834912666262895504707761891151198230078968188586287565322993170960185784677278739459371659309787731406001284642060600709913945229557297933099841644187091250735144147178179652624330604242596838466878114673916146820806557081732999726252037713459892987275698240126235302612554918293434702948291092443251066189441282290181538577678227463968759618110601246264712182870675687848159168235947528262355566004623419133058863690800220302290819746282250255564785358684793442006389323634681184936275707136309110650617939392872581652204733083126259746692986464413796828122541753272005115382295919480507137103261556445397137108369786354925971244525635437599808726303760587999978178469845497978965831379099525187614511914237949011738343279504812453935287379227655644457010001072978436907384257099148477146379206234869748192382952691382337203563725041395247883856685486303208061717202595171184988597936164994575952071144188629823412212478194136694220870469275852553240247462813417342380763332376987353165420864099906337181502707623617379056736794760109084743102276794848872747842330258141049475141766110494506311375815850487175935603421262933687720114776445173306039203310804467493000983618533650459616913257408383477197839614359438790477373545144097886367012306388503737729577608019150437046133069184642829681555877973586976897407333426116828833763001332556964336068833667499883556247425752935043156559321347325936627067964754906624664233037905325236348624735146831647962235222569931827491342202312815600252053293029441345990767119901314559517527662985543545493028575879298111377767541764651937206936443619703598879224443718382985319921675264546737670732781142247368547883530818347600290938968702324365322536274476940105434413049837582748558255825782720529124866043342610399548670573656060763786137742412734772166275226195520492949907480103468663029302513000879309175721963334838126106124849872106180290740656991782197330649426481171880216163367185023592214945272844968328307436742078310794768902729285858077509603617756546628105766563876512204055020770733355151640351894412342738073486086527007093280526160203067167012509452374295092369329282311492313081737137204924251761025624013991883367404753590080009756011386826165678522209207629928942827176065178474931036025358204405362068036374633416187585533009518220315700492289280538995717803830128692818186796634822998510605837791020828392281296584807590696964243084693499874705472890884081260241413010867008736501040412156796692596881108920137511537305433585827297447450975047318650252717144831499491219623142801225080076395654228587785142388033092791224582107182107666921603940192732011717626171728029417389169002452278103729527561779328767858515907733283088303955950348806657155261456090058906245881904446844910487894542235527079607573428771842325207171996924892181135479978322830806868395297998101899575100445671292080529088414458348435019807736712137449607561110857522505407737067695058120035252469699510978138399401810312556095803048064803906644240384194380834390736654232132180355572363806103152954697880208318781892989561507267907403693519006109291992667813727226613588068513886360654926448364765044144051381008322085725527989984773841361267891809893748123546213727197784299223927371572696591330149574738893016309455122320294850802208040405649599887147336208241442005142661462487133702433031044773592978989970428223483165881367133821133650519230146361061241367578379745389562030288483220148349305065295535105368683031908796185028372002618712322348316351838283869093347266534256963011273748668023463394942913394427867727260310011573350263639406887501079368385856900645142590648030695886514042042252341813351748310616764810023953610914859599809101500034469655507248097315924524268572509341439421772259388320416441459098295697157384080391052186817747872724689087546693368048491704460094329154177637370400423038861607832257697453559813964274264864262172734075512714253262633233229809577653853228329830010459466506245614115142899993065748793097855271128291710123405809821211102101272729648665037389741709673352761955932682925390314518946137358348774964623216898681321629053425884742813280317178112419771568254867215328327161166614098382696197748422566138102584409818949822709632618271211602598493400265475247056728838262011369584536335290295742842871193133547739667616674214757247816715848370458291389519699275978723053829260349134804773164770915868094922083931540566594504429007296039218675077742469392153576401621885735162208888103910944606468094775266957826331830484578582991962350517081259516442139249817783873420252179575710413993994835304612466684098169810527968435818342555554661599812094298164735350709925628320237459081405583268208310612387170997187102673401972442746962764742876096129105108501720400542718275196829060253806477411715644116853614483675288145187553686869749543021795615591256031675178787444769086410651013418352869274397422181399547707725360612965938762847956826027436720458193547925142232645516887681022703007532651338401106737747434571674095804923675700358579181242908683558653720357173422357648461816708707853481554394547131911024996538511491263063258244105463173615648813325015775014183110254465755346635914574363194730497565363456940281545171466195238985643379716253235698168979846871685507549755588478385215095266733045498662367618783289020991503292376737860410996632431628253141862870426277690519427249074033974172193222964268721918112945161425882652858614954502246599649294839023666383796368391936566641646964971677047516334438058936457765122968738688467322379544756957100033538852431799781411092757964869594104736989289781572366419400665651728195625610556101121142504077098907498962537351745135825600720254066852770611925630018164328700604941656280626086312572296982940656720593720350068770315024550343104826640034677815457866009126954614909369492206872603490757947877980375792715207851389011791598121214961570354689509112008999815066936170090870165497220519950195318128611551469336460214840420849325729562138684707145159333812440544028561120352597598319350347183372116884827865214880284180673418002094103862151819963378810780120923750090714580446691541948724425983645189906607960652890262649756962957214567993749433169754024228034883593148700947474158542169839881749466471513248016488951634663495126737930424936621326857154380370871715582954427005059134421349631899622912179105311120609848821353729435513619328755080982995977191992685224631513078625541414209867195247832998424445667291787708174463668115753627330030449496864744077553496699759535721501293293751116651111834592146465688090193029546351588903529055406101316449481472234011040234202415247337521288575401379697192498100830178941845303887781841153026703276902262710424615862038249422898028683865218930320062142284697619374808443962488484206001559523404747367122903963781166595922317217826696482491669793866891318437392986765073815295965578989965406308948081457709362400477054673951007963177895570898895405475214317293450117236281778705823833153244288888531721185876516333894553115078687721115813277716590616159290494556731911828096870612947422085914506976205062210307247714764170268931303269146348752277544823179161864531480341341071693355398276865368231149118036353815818590602546379434202549149423738373379330435609554511841790252568344416058397260439814449393753863295319646696126552460934583608413631254997787222807739375503919142077471036740344162619178527045517161387028767515644060196472373386175514064963492740277357579253128130114797974161950002923484724117099599255733168241792554440224910408878754659855621207848300675293143075891913986430735482805328446638899487184088152319215839467039326158812352738072289696948020067520867437566358576399424656967431552696176158629311045119836656069726435555516870817662063112752979493886876645222219281565299565021947656889927379535670376521848550346736985804830763326341592236285880153675971081387356762575110900813343323435491781957846876842358675285445369024263988685628490994777098605344909812295509712362795962810572709176481158577968119740661063212143180098212703351758935406290601927093716291441590283833233780554573637132803607260781965473475877895745283981084240562859443955405783462850986883063149166622403997578560158585364600247366265738757571783081122344522188699501956905977365588415357865284933789906564430493889023269320354330339644733562592838919658694325254838834316874587786588962199976588132251938467144073967097420464280524356503331086560565675120614365951107614643509613891740392818148181635692870346683539554101491230100231184865993461646702148810058881117271876722651186183055138779518434739256798547511256968524972223697802743992226056084666936716265165790223836771955580990841536278158367930299211057677828306295866576152721523810988466005993333992067365484678195991886571066352834510251855828197569520716017040752672515509962221596553620374203860537219433167342871107553597908172867157120704667335817908178912892313156051691849484277916819542821643922154736601922157555700079661751311754874168473706306755099536244937980348957693677156319202647379453379315546684791094114342556256729857314000241818556775184995136915094716202386894239826034626882532697130369168783964186830115319472170151643180301584075357863297666194185575937589033335901587347207233533810225530374236716805772789640517084484863614480038567662549497639410431435780367769515639218515682938487574027705478403497805240537498262485093772463071956635488257561883375767007427691780788142693040732568583804878734262427799590703262959486960771821363851710224947372115819061251636173166039030202370770013535877839428613942109522455199687890450297865927148092000583559540412262437691298998109865512758931671487155236331204357964883005464789660850040284332070187350919162513583594656940854876740943814277290766367615101525958060817308166126566199875134536428632308776847352778938615524813280601765588855780047255987219019347177617925725754319046878656838963585321885574124676144877299422845742830753429169049648587313638091688617447668185116111360105519337571064470730752490916613107895093631056362023195887898907868340535306797941656272299496545472810279000031812566045077569696691546351918418138005115849873089242186139859166321786037828013226439783338206313541158414067293606063489421875521152117171612304594201295792200320101573099911328962689118298132409813857060893751952228042064774091603941575604750290360512078261042017425197674856576839808550099126615537791540163190896251452379716289376000144841927834091552798796767755878313995612331890046628769808365087088027913545397564008492439406709475650549188564630301829315384274782043336117527121500646093558047387565865921863058073436806016055482595775859379358877988952154680697361523941708762067101059506374537917209875196982351776080194412192920883069788523838667950545688339436441160800374242046966316758366800185352807537845238266181274534453717584856420248550357029150621530976212441830946028780230713910518207357826585766719710117894970187845716577213436250164558624407752149049389861679250171359327124824818196579903067901714136632739138595098454839970769441373919682919041484960299072422813594644888633688645726077225402850397204468049394870516566310221933177113849203748068587786848144988516974934530752517959710825968018760436270726927020809488151909097715496932396802346588109329931067370359207779028505471811989625364937503112994777194035312087737468898994500579298890608080131639755230079031981276249135076883722100695222844935224704802620638170210682175261031910675421139101212272364692250877636715958874330684151320738376962941121974642537558814751633570639210494626864521506423078525903951314896945899645050440606747555140763879736899209024568597234978255995913309688234231482211042807603426962770901465753983109516202036419530511643713193717811070735672331296097000532879507002264878553945882439723854603090928831618806657251629630805730645400508457544885827833415194825685420917924701018000141136122923237259515736146124551740509212478167072727270728360241536910396977470926667320033315854025016091602825407359030913694731591110645443298280275978229351640822551876330366494522423772776533073013429341114783276233251100403137523889042760537419754386897544676791606938555689865639963030843755636653088676240355655774223664848704867952725804534866224172256210775998405610960806839726918162600176627384128879861023866836315382705858835740018856791405997129061001274337580156689206654741230444598286883941084400462396032770691084312726837657843444859873502593781989730639431640172179509037503737169526307729440097910787360358773602464496042215909978596443741024728248207245109511378480275611099804176173077768997964446614051744838404704617126390500617435913604587274726894660511996326610345283983942079462506412996834549999625707783140474436702128230339673966367846310604175524978214073106955865791545930713776876668969158579003997203904648754066239330112246798845533452189562213974902526224934806479492682875763232846950485847629583320803929023994922484016531285638655345906891293029403849650276595047006915845452376256112567544898089069862257462091494566939593318012141086642354160866268638215138107306946873030513442997880250230614486917124293064333227923714344363300796870976753735968313821912342147148234873688405688410989243929139787274295932920434408507965427827006155790170144667078716334344107046908293889263621376412878083259968155847922485329254106650417234708778709584931315959061255983510919729191792058202173203524282443397455070806980834247664227439176754089751245671446909710907959696964096444393447704969948816755157710863240461971146936791969155131984756523753174468516510389823561242759453770487000384312401941708607639598365853006896952545346935026229944475298987131564337622118424664185860958900396439597686014139525869610516736286722077073234941593706329483358994254834446741315492516322199905319604895009361261968542583914536902074648639187148945180761062664049469601494694628506040247921594915821412964744972332699328056304923789104000266287734021390455268184474682721622174691871281988535270990483898238775565315756017894617738226388374279263371608582559917925414115336816153410014420289740275597988546241983810950250290076279689960887440853458668491971123560765796571261719307078553578170512835581158847117610135276862536802735614660281347483509037296848429707836300223149298897376323379496275799269357202249798660239683599412323200040560035183826976487350608012299683521903138182947576661854346253569026036105422460437077044504527319950064758491787125559603511911485829034660016647807607828597017610474551768008991124957588357607543620359858541839903706482186373359317954151456740963287376451565995823863154432737006010198456401553545471038651665823889173139286385126692057853269158154080631309148257401655788724231888845711662992604166972104222380706556537750484228598218484213867032018273490839239590059425112717340950246922543559607782085828645756856076407726447470393621086610132379806418826428063432308696542096304830595808913354789066635523032856813222138408441438463144967216020743163601021797059509599587681382361165305722724215741315662285484750348267253904677493357075396215359308187584066751790775214792838801397116923627345564509831670458019793274855037291988525041550712711251063343412229378584365012832744728666194696499769499314624541734841821826246013836912741250670441631154050506703555469723224606053282189199135107607410565426141444660006880963271557796175804204467227731220098065727630125847292728068747612819813230843126759330325269671822754734228508153714963767350481794341275186992892987213982312847840421128545247214491840371721092303841766571673315889449558698464162374194746336560895119804660659070264892420701276967525566987838888658376873983537611334192447086068394680586196963556001590362354335926155429208491593302858856720381518763156310934335025314806190409056335891249188420386234936851516802765396514793917367420439415780764947070406242861041407829689509056808398245854002346702714039024069284674947597017314950352351576967757444596613430622405265318646587096043939668266273154874137809195509956551281326921575675419965370936040378687809894465852520477588102368428325322597788413779627519006906830225971192082324406723438512686872396689694345236450995483882685165793729737725157692606641483444188451883777152994168284705240375600541127339621125238884366613006514942160408167075613524651620181470303708125362564608426760600442107356047796226918912538916092580504428327054388499233141442199190629678416903598458601307175697035057814475148171952841726272692609124602273575651753028716479589029302878776845364407060391109347588175459744598858030345766738516382789217094281113263987669994991604400866151516665677917367157100481374960836597410085166280935175497414571531658596137417333439744149247689875191215219526650764758688263985364033628933448489952708212185366661232387277858292260434967855861691681475889689675255604553895702928007712350942727382603200580900037879142849021741778673032264384053161667005802119177287047370690398762867243489777399783390980060687253262305880033740998611257068031852987728872727878401246921629459917554420953645980753991525945229831782106804582000098115300882574610055138745800866301090573358087416605105247882281467953753660693127750344691522663206046395906521871000273886666241752044765523794470930535368951384332915214465181349902777503770908443248554518798607693187339302305396780750685593557869050144148252453765638404693279200539038105324877000625587655027657343829294458807554106511107807165366635639179454728586221335493286548011752099695526330794469900321532991889145872281900723382096715132199897741223420514515163597234093276003799549247415029421551648428254260322569565905775487733534953483706578006309728469653209637741821499090539287910594060442659501733686355925784055045428984278141036701759540083119323264154544766040097137005407938914231335312389136874882205310701630580704316575283122067342401716748511602573865937009968682241462381635462781289186603788359642969937798498953710699791767833765818134228467351617627695942873813614308353820596857091001241475418468094121667128447866343882316875304473492480890148702883725293453894823890927339407318411147534138885125737877232614347228909196934717496738820790607980993402120805730807079540761908580775589162133937169443500815445238463341781775262236827815912326136082009492629519894917136645828320643497468011789209755791481586010688546862689209360357960847110633613055111692440178873876510677918255468870969183908262756833308922746516209112062864370048602637755557471142038394891640823825218394905371964280596844100943341081050125632073434929787856262737205528664283436020828419615863915106722065990886060471409124185916152796329135806867391911973092832673135890573059618426200948220189100829913471700061481762143395206849719311894050846717344655465101668331048180857000963540938048674369427149629802240008052955736693350091646161077983084239348447654052379234749639037738305043732734937274579784968922660428492936458415038498571807675201974616242949785080917965833409118658013538251942535680866418816145807991973147365726426485910334908963868322951401825945640451645681780747373807760790577821590574974092110959822853747139392711992024845087253054940871510859479967970801668880667205682411160582590727586617501097151869724007545977806944354314801081328938052605036576282053886266966792636979220758945330876929290139238104065703903330448242756787230273455082646538105641013520897529523897163884215866885815176069400109902350474564745644872026838183539790587875424890173690466038685916041699506637832253952573046771563407435861495628620805919589401225835549637630585947922372624967962791630044002241097896885652588400251440467026255628936158779017040237988327007316410305470784971748334326153215870955970472455396268284631290673957208220207069179125386324667526832490982846874767059408811094594756494713637707994310367889526605486854611554552504081415520621130735382768921391128901624330019956732416044676919308310810817315557692468910760991323782423109859861914179705616379531031616077325249212089543167555989711591475740881104752778227486734418172149878512118416679560512608132342529710362636185395580743149252647044714984490650398585139220280814045196086837422473472468783449167017924898484136749565514628853639010847786359131943575074653919340029409800853809837907844819278844301508761573632685732284096492275748098571402430450580198454891149465867761819695477642357904449307204252823067288550974997581388701481366555565579848753593618152758907473335101579763890750718094771551455218030412602094497875001658606903005617882589618780626978742339296459508358657313704769448872332956876709787403643703982264854298681928579615752592536823004053502369015689195219241418580767716207518510056049049006611453252527208708345470242205487376452592643597207794604247607605857270430266009430655053519998331276762412157110498158441068314636196408677762308564592974275282353669833428396917323998284301756358785381487777766397408430738828714694197920385860419818856929621362988229423433490528478099920016536478161677566873731735340684727168367980577371896101217585667244373965284402958580973452447409731474948546809317248091634270601775933449943299453040249195904961313521188949095598023138761493789918750698695971743122809875492866863984270353353770026516461433212674956061438816733767862473319251716376539334311729554633442463237236690138062166265188933918503299238677472744001138373623411241833035315263172506262198325562894177295443930601063640237750218721451966844909253091368751021860064288321984143821922805547955015434830196984146447761247028878168847634893608474199268616115260042687302539065866412667475945006748799287652266325422942878620324353705845245053992067728686603385892481738722478170019021736225570133838428881949070584006685780208918830935915476188322912079463666221777852424410910722512329525106639019722453912590268645919288615647417415566150106846568288919937275722122348183949330165317070405078576718696492331633254984112603593124119469305638593981404764033925131605692473891343442198083490140437092373373744905512899846226375185380810516116371966574659106776418360494579870814047784807853235548788416779673047274756249494908371098646755333182712089522442853570680907450509017582214377103006248768197563247783601551890775964580733979512079545582418382298840514883443106947549802237845161724287137367274273841022742327686670160984383492364744945660685927057104430324305460395789250832474360621332515697646641758655481705279969369319798181715230414661355468811022179665692084978655378406927797550195458962068343180690687013894922598123100069890684760173465997234823517784796633776077635430568870916140399146112738587466973373494711398466369022299814341525268386638798253358464117809868354986186141697774105283824911933283451950638114414835635030757122681656111020450741496462445938434159303627299424701816069600117580609969816667010263104461965207308329355181407655440012667976930502556730057831470930692463810992787061931434556255602960157174664883665309499486634648465603193244734607366404891365488487786682834431037109252663671696193265628248802547566762239280013720795589526617811391367805724875669240785236772943680249719287425354058116430529952638483941250651807004362640597036044713367966451732912496700914480845310026457090880696993998452503119547019838164074191805937157108945080274631388536815174981587497773793062765266032959492620827802331369939812702146703468127295072759567754622539089575825421070937977296548887532468894537638713227331086186217518449581566774008354001069708645950390480434051785449796226729720130607311802943129947025580955171606666797992674346925196159397652321686975462699598331543097746506120620145594944866509447378780383947191568521426803647745847279342390873134411025307308405047543877533532283627202414976704169708883924230816724928311220267338021268780198667307813421945778400785062629932844086522375784909167838717515447043473240797901275075618159740084603652321811447272106723150586101832390879479464362610895031189460952896429990435415983952725637999561200235102022946642819278693965276629157754522822060809048156767548492055694179251262398814417877513338793019793485140163052950173633269165123085162924659937126524534810240628541753155673577134493752602440352206654446077141264416069480652415455854044748470793258536585866969992444317765778935007371795375945250956934103535971153803661046027881116897210579773007309049098185941544640680531313766935127903516224691857704794920497867053144328846931247986150179481555085093988378998631249893739416227936028753151100589494679565417022459340475829482430957913860808464566889857927956784673399646323323032330280650787343906794501534845882925918278943154914628012256211358942637168812881399260735249522631673328967737494050649780409930364719401272371774555770169899854123164476648912473981897405108278433390920075700862229180563315511891166208552110039784008956303071653023505868754432188602131529224890387917606027835632181972368991089445483188463314178765291109279906643938763548271110971443201654968410058692859216122218174594704821925121421501844474396841265251906758580537249344333877574748170769662639323559695425709058341627725338798256724072520524647335057423269491484653520871501598270433226367616659107348554229504453947013285221619649269049987837003183539235089574009966515533939011656946614454609437445409024690852892329539594735721676636780544418676545907519567410831045632360465382356343052955496929689621067350252590569704925941967166697787535916928076198904830768501433976431065171512572780077707318529295074260113091566886296564035492079330981761494651172762701148685304636782345492927274775232801861296168479458234773175790395462941028307340895779435082803594078647643291486483653721639458172776353117302522703489989272869420792609488513689443555132227459496878923402030087687571020144060209604265254509308337181121944376972806419432590996872965815361433617293930559608103151938141491089804773352365363552130242479959042414169436738423167051710841868918665823282930123045886085867155057295282358967178921859011907388874323264822135753736829948910847384013701992369783511472350636146980898613499566488263479953211555951546194198106541592697298787493607990998921979939584713362244853174402732904079267824530153334480473307718997282830649719035613358009232497969588006127922696081263198735254609658632145364572087553115196461807318630357254081123605549737762219833157766198702869104534097601210151831447699273019501473888845346431799828161311748062757075131431800206627357954213858078964159312389365487956775146449986140658816325711597979835460031560999337637985853875933191820387633715987936156485139559420223861503338473915757119840147445095837056266423813845159333457248702520035169075484600971301402139287913383211108889746421184948875017124895458703759599633349543152100990795087942136625457080229809871683791324071253371041560577196586356194904761052609329310144294487813840782867098645528741749955197068667279359625996401495007156234815462621106879519705621929138003232452340399846779413274236535078152584569525245114153559529016813541880053580156945987028374428398361183985017484002355337152008045902544881154103987122060347034424755881385955478985992603098493442701725261843253532418146936362292631675112226067266105423306815516243730077221389579213737769186659462559799675013726291105005334072079906281099563821120277172301639241439155556097445457538813184421039655462247143589709546580065756360732918893315292672955989683632123244844066996619436555865193759253824804601034269717050605388823888359552813729335313785679981803816718430522741718107451011386629464351486209703025769867907128028198026460945197555766896712473250074112650140797811970094975285191935053261121960853600176931392194294186398638620414293170182246367718486211780842986154930333614924144873965188869410774649951424580949293922132875932268794165571317937482146767394217703805420019871874331845772042678392113189257616187227232380705876004086090796547796867584419800596896015435336074119153457509918525335445189568536386173695706919049842688272081029546310951930395076344590777136156695112074908594731920612788886217209689186115611117950934385212599789705563960710562676930178552821676162281434364540758094316385043231357339924606388506236309834618983920125761506799462761049965276551895023541600181227321687002628461834049117275489042309721511296750786999977808707811159465419954024575941014603517083004302705989776388934106346153849535701615792989843323148393603715983659334930202570613771448076209933327488277058364083377470260277600483869698867673999810271206554992275132066019197511818706383457107623972563170844659033303957873484566944738015804092432036297864473219676968646505674844905476728406938230845576718320714080689684421826457032709403117323759910814605463218633330547502661442118367218130427396494783328719636433601267995741497262386772891099980685430322318435015486769397509010931058011166928805189186718599283416429343261207873950142410531564787300207447105300618739973751458148644476332590120886115780964136890849563623881212550043801536156515673596412549391173479280130984818018202700842849737122148455051133761347555948231802407531799690009022082835587240607139439142433962796955468618230826379273393161184130465108591827867460984368371329676204904625288775139498425352959479783075008452029342805975487363807151008386947354226432433949420713133168025438361659458255482244443325968457855188382604979190678037507830258253075218041796998743265597172723551519740795652726433255746957506870518752951440205008605923614273489948385700339075569613854854509041238323442548030503665328360738560722445215781076931538678686576180805949115961871099878028528868436719962486376942440746049243549150969364936662423106875501130115843738905308191679696756458713115014954917043595966542747904080771708099462487704920743226378374988645474953930750393194600963215665467825156014904329378986887590231457816769821868390655858949237006390540427231832187556613923264549467334532524185733356462453113755293749285349497153772825694162505778245022483602828705798382903656617091436563007409552108632481276195000064802092930127654997103265914271045608363792696436100589184977082832437426577881419788624509852731458432894458499479785150626377191530325239943838145553661979046790493066022011637991768918685461366651395733562916339598925358847611098939682543339782438316126998524990556950528205097712678256113464170698206135651981343283447387488528101908781616253117520766631365729073209401211994368912685476590924888372465057287511214725061623571598201308402156200965269655611276039489761225197113555166682916263328496201896718921803605053039547792049029104595131543231504982617446850892379568827934176443751870230128349384685658025423686924414322380038855073648160181816992663209911895615617061262101176933552973409062115500226690756858509421145562423618170538277551669205618727612541703302930454428051625897319109286278532387482285850553041128503097431946833811774574826021058781723320338732495667617577366464022074514973777783496366430544720795035660108631104667881406815771148155136170339190745161512646833386521787474987529186810768042459557768099160471001866205146920619470236168741083825669622036539186838696534412407656725687651087528046823656180804167075235945787882706632660805187558937291912299529725169969449380688743661914351259879305441585434314569368890202604926400903091107564139460971558366736717111685996404875811998137914322470925863379719670255761688108664128740386326254017760519256788860511239595308570368160479135350358230363858448815171430112502089844542410335018279088379943192223465192717204445977737861316004926316443753412953093102409449070961175214392564391097862995639208553791028054416002616728304436741152529233851930078850013571668411776503765857632960798449981423213161447290882658661303967788656438879435243064163919611079000404029846838636311380478861213606963865381796692022942765283977180136012673361615365871783581314300384294110944850617533141836516626517363065095492709601815598395394888424516283888980940335270753787012310008515203887918077644214473744837847184147873502496845429588365442304616089986943921691308731437623796471260567335384183110200415180885096093998487907692882971631946115100737164587227901236085792162829722497237752687661141752360349081865445653912440845725106968962700350766681386379522559999757396141787680912066425402348336075009051890068507237527392008825514390713538119195513701129157014106315140013457785995819809608106373915020388674511557560408088621248587647108141763562414864824912353220781624460553009141052149471505514980320916001462760985165628062667311143035323403033118745138815139109861406834640099646679603250917338282228015062358117971487633512395561783906601802888625151770907230617309401990284827304303837048851406407722578338992185151191533984012222191905891026375023244926825465592869764954997605144678271658020114876933991594321153292100074218409750741350252734974042735617192967330831890117341776342770402619579875493598176740334575143467945410281037089498585148773070251743406377257542606895124155918661273132634037791464409110587945033101471240875877524849831197643300183366138283657644205409815677391930777975710812044973886630000714184036544565461785523571261487572801541628025609892982679965416174609463842909366582822151158135889161216896133343461640831970867161193001152548651047304743088010397335056590070699192323947652875209175125207152260037582874943942210122457668596212956396585665143983271822734061170148061453568667357863886712017265663420793207030060438211564384580713044806640819801043564869594451980002044875762451754867218782241996304895912379444868729620621715424641201290836074589644022000739259931975727905955003195565631030952121471334833316082037314786053753205668545202803400057923553138302261771634720001516405407147775652265293152735701990617062816619044575073347565573162765687729858821200592525951367853022740889809629515509501246573500399402990631310882427813846807873322970921121383330341957079512355936707544652602314571747803162490519978146829005790386929732749737506778875491101132062204609309080565230023524374600695281614640218771007772683459097551689828839682962737180295944204140327176710838565256697602777699007874648056544862477441280163091832852817365708882713550356261660426071637579762788018031794246260640742084633337339642304406094963496285460604500116135770481743954213578633772763913074691298289328246671143493687753847816323795510526446533317956413969577399898333880118417292417974929006258423914794531285228903514899441552124392519472351322207278520737250547888329139514727359791338057670361171934306385218203852773208566605805136655784413737203917176823443142325009050671683889553951280603645456735542286236046360098850056137748941626481186668675424029467091583268852168559611572294251742053967145029658011148461584637237976310660035882132274533312232983856411701904998416058877003530035147067169610509553708028406846487435104835349256914687364229266761529334423582319092810271451379499973473945548142904172317169323394208563158067381641150775291057806110942327451321695665709592653562756915666285130294294171899087709292137632583602984115693118824272722981237328175054106687126287569521769736595218055006755728802044045675154543877834052576626581522781629228036996494427342421784126582120989903693245880985579529406046539673968669350481936696519568504932330473492403183525735474632639650931782955377569863381732371474209118231472926218769332653958072210685180983285968618951006736473163148275328696692453249567651168768634514818221062175712317166706840325326210407465154226431571034157518480669909106708448062425048223054623466285768138619452711884007476831149169842942937370816936889921196082916621480272552439933593190585247089006778358688937410963589548661581568858729120440180469693813079846630150353288430132843809568669198170906267047767633819543705471459991616915558640754394173078527763045035918039923070767130777343159580352967660507387933698064786446761242405136959129212156165810886891618725918302085111199400405793011265660606749609824762204486478925843095145135113155437043186509106152986431926211875225607341800623683837195598913163208418765122145657614477381088351746736403376857872729981918201452812674750023102241435655988643304088614280524027031304906027817654247176751426706409452133279609460236695767234972652508480214703588172172579896498883696978132912522498732623442793288489792945706543154529722451968380606000815582976460287598493049476277291729421297758439422464690709230769462862230865984843913575475454018143778950382143011319665314473001396033780762979497827644649144401902452902753432871465110690563577393417664902473035121969785392388755939525929861472835623372696817419067335878736526568633877418809713971780258985242346544309394663457140292480138856177719960356312024220511126750638248048955035454179549313997433675221029761229786149032189430641435410072378080776747169241438069340230739980869143269113594359063115222291948691236134359757448009046439978178377739107112204994457473224919538660054245669854143399014143347037870044806324663999517999031082217993109662015813227975917340672992860573890098161395581121660138544905757881301094803072869212430226158547153222735465111494199641369635541142971711682053111459102038307498246876866681061469866804295110295163746827868038736937007357763033708221903728277371603614273670930810117662043989718832051896420409362075268134939905092128993199293199584027568132462528185232187526520953310400874221113656868859872192997680339476049184761598308092543132795269942338147050115154442845730750489976903599672995403363805757211482886008820439825845663240857975204018539625913660778513531416878489736981135001720695382275826160562531064096709905247470269361592644586702734490436416473390992041597810683930613847642629443691509208594131508583912836294590970686446905792358399764844649231542812725293865756400195957974783443800193660136016074822223925479170037745446672187430636031203622087583588066712386836195417174659011349892161812697833115059077174492178992996621673022862363818794668928150110935454902273718471319098446692130299336311586663786453746856159049382211402588958273583973772454197303966106567346431543147775352653366830539824738210523747897653957631042943470441805708455402908395121279868925527569117483107203451760211097231469061633951442642476635506676039510290827994018030146298960554632908521020726474430105349913724665358287374212932035357022772753383910478583782150701905187516822563781561405596720733748554590468223648725094480083341507191804972088773535950124049679825633109875430002169753503250814493766951863148171098039162482571317800396714089440050145538613122856162859722036478392446967715352468575129373057222329787748887487016077873593696161588650646525577112677468801199861382928962617832105967662181730102655385176213329557423105797501210882753236694965014898283592770042193033434057852466712693360909294440986539182947860040349676574837809904637620804912555113002826413123412753064864138296231526761167172368301092276042329924280899240201893235345418670046427545836642522022005898348167406946995596896033886137069085992294933920304420952179055794242751350722577034785653812919828887660594722240054038889890788054476967590869300311197547193756714764977838033154471093498422926523805734369687526078134749481912216640234067299038541001363648960599620080484510931417585941170276190314275813963908083122295586933728418701640817186824841987824452410042464005733861132393993542507598408873508292316363320119437929691593316224187620376348957890185932488324487795054823475720461982992652529899926008440810511290889116115340795681580083888037274611053145518298433454472941834429608409427586293694870274953408231013337963721566054374231038636752840028056414892847245150573502782894886317133672726831787642002053511372185344227698875532692531936933592273320367496383178875870915007569980240459954506253598991795228563213382803654681697661497472880715969122437588787399746356626307940261066094837148134267406469761192704508437728124952434015363893297521924512687731075603125932241380785770954082732958339967871656774335075281696348830217474945022998795637910807459529732939685131797607469602870037575586181220176505429592269106178024329926320116715151199783040992712868003124938235396461342066937856771586674658649333159139901479436306696872572293168537865628949229153342204395268007598336226878122250819111269338200335513185064170714788938138445365612087097888301293888316909592551192485032899673126518898600214648876465982965782007954403637528843763046337762662524895211186121553369452288859723846802203580612651558816545250758639444848499911995763898480261506759728310138773145640448977190360012601403585412298252353450137943550623591486143207311657660976211814327986870606235680227485672260723975470810993437043202185781074471462610767352964067476377543645303658174502881437353210948694349985458236501913538143726622364347701810471298525438442934881844997738649501367274269170021369982899504330871899058016203282013894690203640814176268067698279884647036157894167291543451080415160889322509725042020074635130939263090475086718333060731210972664067321506772189123173146441199167717759906456169939975162949000592480165266548441352789703762642533606018454643691399626950606336040757120031489878412940698305859649036331451030598529360382424729571031801321112112671963896828783043378048839978614686163315758578444404646699338482818152871415973066851051489138618465143898714552979947889962860534910673597490790612036957526705695809369557665450739933022621997611777517490355059298630348982933476256647280466043735474957677067169340901112474787813386190927253952898098267849285886246616071208009610705543106658228067676486324132173955367493281807686345661032765498724526854922971691718172133769915616600158051142997768623246949193096145055468905176298322303626420130945931726983485195363561358551153331675403778357867664462750241668138288854187917953607608586414725396236823446914708458857512954519828971229832209322860078124463232832099362122911707706448303164018056979945457998824937951057982822734989020225167613149004114242389367082136059529775680937313461250095551954794813625444060361181890332516360984272975901012971893905237921565989312671762509538202879828665324682772430498539102184288462685197166338128298895256191933987541361948937792846947476285779942280920642363324867284314946034891406086355390482114850672827314702829644852422537736043224351555550730395172578465822681695369003097033241632076992359306861621507493970837656589987349702136719598754266495112038318236941017529024004638596305794274718582687395057718924486430622123277204399874994173399254859834272490700349778955195986633157187090275601118985308447137046973055304920181162548242364327215879222885318896556583016382901361935864268607483032939450072827124875471197561098693896560561928297037949760008130308141313125348128418239525625229462560910214190872082953129613739762179556468632365828983649356263225298679488421880400727756880116240161818340406070368465757725127098894999648533764114864542830202061662531411722113067692686789120621500776413380332516600794750598879968900804419770310635414020071808446139529238664625239823674389368835574567419731713421598865463041415633867615705720234174676089360467400647924318674769399379938884176569069144586324023864343651113308076980596581939888101798475239784247093807970406996474818774460057574416322880561592634854809146957589507820006524362328445529732620503845995745769333210551545881881624321304974210769552795172791001116688520394514445364878983868107681843035218759709109123090300364882316052070903410563585592081240227684245925963636422770204875736266153589122570168881409684958959786757609862260064151054975209438081285500502263120943848841172365053999250375683264164876659721047574645221953225629051444037769031171430756742766848087275003096505642870069082965555606341655769267653883899595760149811406668221531492540239351734693850503911631390313996474446544741493781137035672663920156350713158089456677052339111470680118995705843035392484957736266620551646824055423335178839057286365465148365797577996755277530913070000988692315833244704417362939177531315574276334744171624003796307253431423013442753514384159583340823628254718120669445755864618751039015618670962490181272283550502813434862836430790072410364039929113863576455942200894322310215566049793316569317371237050637739944582484387432612056578771743900620654062380792703603841626215999571856302034244177877297397244212876306953462143282710127501816381116143074008632486065953507225041165226180536405272987452522136224224726590472892327112967569358218766014427738315477102668207579335324052485107757923888652980483007402209359545258469366689914972293866072324255781123327929564517519376123128442837901612581820632253956611061522719670477574605153852217554854334648776452136783853560069557459982073200623691915928699514821040634559767385050972267296843824820244623252297532016603944185390952490597327477920083412749541390178983379524041705645095717935400736411299604398277759664113897796515935101259165303658014819962340517143027464103601804963173292744749897165413825258371203621446969995353502887098338356854767405162489819127997276130559681617744166657321168105039567518256130667343050453924892239679719673939946549884130419085689977990764403198477347368737454233057129105835129680120657583880357278039606249458072381542898292556807124457539734427606249099965911576281735154085058058419582110614129108005504211272969547789099158025217440272691792618342616451161763666804273143013406689761450672361726538195383117250566511973629384824539410144470315461057498550078181765538393228450551419222215197040642028768989428203078448802826544967516726769760641477231779637428347827832340182732495701459830845703836446299511566585979376628391352683681035526206230448092679429641931466368625642489865336313311222340076366921212626565357579038091923363222023361073545891106629292265245183013514558315241997909149232130647701705166788260872460576678046634645904366786025066435058481770003066366699692258633852161270759185136481845785337111809693334419008480677298404555864838760563215522654808263672284053342578528180348000896257341283814483620069603092005670763061691893465913067946157040123689113761862185063830375159375148947990137093507429908099204290684880185709719540050281097671470121241110481526081848377097328857208972595705842876448904589511447721959936550845106574542216028259571097044882475729826826196608106966846013174605649763363705404560277562621377133246189946823422032607220747035499216017650250602891420167132175854711179260222059016672618029353153759304276019272182964896694862432305216110126274405641982545889344170612016723286767861334459907006124165535036850450445422523932848084042957847616909519966574076918582669051511790623778654025424681233545237052505471563635145778033916368331066366840174763787328332087751592215723639752378158896247895474071036914561798428061798622042827522220757862002496656480213136627258665325565880017045147298787875939478700813566297648612227482803195061157914324854793051822817388341225054983180650856819782107332849227329585474598161633519512707896876646018386917016319822759464610337143742317907173664317865946973116826711354415262473836361804384507681939863413324299385679628542454801585415516581578112543676377600817575133691229020551978388148662578997598768051128691769659083995857803246702504122428895703951163974921051104883998838035299219541157511624994033834390884212606074749170476533767526541004542748371233019552653765293233031877491143577887756304086856170464930496197659840148442559850667188584091727205701782665636543058516844089045643288960383592699626307226265387571566093349235962478746913454534577021027793533140126402938534906216138168291704992226929637581841090937957391273220691995656126264937620463180059526122987498117411640376415858695665284998674767135029770542367800174412585165853574863063467883861995525831668541044311469221135064525305502873250874969740589646865792062208770439773949895339889620286152530148033149279225175597558843778413287924779795025681934175889357182685945059386961768467689562179384358670097470210938428942216631406987976496926150209717842176291222025074150103804458487417957770049851857779409819170571415665070081305290532856578905540729082927388262233201771448791377521703932033513744169391759660581142252231589189693605259018979872982497942088564187782896580338229524572074093998554305857614294069021040960360422530613875760615293402001998877373750764784573687831297453053041554428761752031570513077780177010563708338533496746312369916699921655165268522192915464506286954231141590273001593139589204695624301581610136613612318188320383249590500057074991369545159282810928265889247614091955775234892885909827786158181158863684366694994299189753029862424350152392980223364214624341017691741783127285780777973720183512597391720598507380243217410058164309804712969573417309927315738136654250072329825796510937196205861038530187445233827457176326543429229283740111633527374908877559312985172842050227829396865211124799200780431426762523949338782173488743514536657963762758978525784193257643276931222700820169254274095607391256922917867116387779979645413074354117968881233976121389478550068904015525131018155371875336552723379283827609250720586018240854943286107025489801656445310021516567660030757697069878473111643761619855523283327862740874383267740066821072252541970542296499917984905928871019279496654484248538663689524438182089221860752270169104626824143926343627663087863161133990741875482469693776001931142249150209128701083952100221110477087109912414466318556664411578021133941496102066135658727017159903195628546564032342317569127304313006288520091406208553817684227594744890917670819458822220898598740256804028868555003901507336225009561761322409511756259948171743892827774054561048146097732562968068937627100415321369494163752906238108074878974216614243432040535573870677572695430490795917636430147294646337879842146654683757977127375381994340478533296430176610994161847619278411707290756073601762392777028240617367235306547643106735176261539076260544156363299410599960698345094014487704375633822602146541890700223737934147220090027743514364769780220266589508791541402104811050959229426583263157447507890701515505063113808784525202294663069317013032091496149435048188123045346713048787860298802334779618102040608790758275988658066247442631222701663917521144619291254405932552902621667121787388930895716334255718329942234809650831746276272183567701156024189417496143563838396589122894045515780975528864272980098740473974609440973983687607345006128574424283495623629791614621859575582407111140634480950460180260632906911652974813944383647432399841519390683357484334838597540476581438596495956433619635127812165924183200798233930073279903988196799841441243133338700315287553893717021319616938527589018983566711271911119853766748474623877633097210476481976358881059237545603822138101814533808638497475655876573502964390321227658801703737079868069606438069115659796931900040384316700082769583761254112452240407883041731334167203044024074195204393528809481446593353394723069678992754207199425014185530799546013091806470384887086803172803410768429471600313027747566770035198416339153471375468582072184302407319595380183464825099737245598378026582806082068319476081984221347964110554952673929131097063393576813228813505657144397893814689030035769595378492737597451095942100954430503492932493384281989314044002980222708882359083757864779086483472802845257428620533664876229117428855842519953579287847232923346199005334960109982290309347013116259111337991461586388185535967142874969016787366746795178656495021010817420217935573284835288410598988700622757694242343624827879038685021694411605144561330196101785502066683874136061106358186034198803578694602482850463151339578296734974995412071547920431335445242073444598580998878802205165050950387874616966232638878584224905373410758481127328515784049745133255594653432479627164687835994441193740752402513975239081605515888744015513992356074381118248767251038601847778299426494156361198422732932074820950552539560726626636711059301737498523210019300770225816532465860382774450483721239008585987399419731666824037636678766881227166776166598147249295309898078778047777794844998745775547102142357166701561679837721130908868722683818240434573655684179222412074861161689208104078967515508801170678734532468828939954682541663419351248993028346418334849632490982591037150185584105162583467760936918775631450181829432553283269634986242403764552622113462450945061215861379824980512233547781215206428161395875895722361597943081190502643733568827957309648313208624223746045590947542257595563297837945703657219060383766122883921127386116528248142695828861293184346334798634960380043001918623733502227980262423916902236068337923605659226069643134759550027757570506690159712912779203805007760255341178910078619198216164228852889477554025357341397873006914865844057079257535382411220315645369821299213082087084753051525461805845332613150776849504827721510152337559142864600887297359097552895890288754820131947123624635949809764999665826341613914658417089483942691244659016319559019922808141298131133775768496415644823938759263795273529335647489153362233372997334402223623042376443009893457379755582763380742147884433423382995354311024385734732026278532340825189819323638993545939193626724971220415206940412299111057875411527037007542943744923403261660982917339268572998138612626697012495453715375663292827052231914950275985041114825739740260354004338723455588517253933315669083377402347988872610304832318949879628578043425180108008791941381187585129753047485572727656067981389901802064000185405074206265616266705415274853266603223646723855126530234987256833682716384604785534446590525530683081882161904396655253243648035841519621045552656289248266911472295526882271390200765019829295525896779745097890385550952079107926968287689956102422308771427032299634108598388443117127226316146804963573522854117083490432132288747976294975623851886480071855146795298514306132611131360643191976136780066923875089483504777405701483469307316526959262958930465492764253145540815971946937567343489407415737395036107299905999591054118682071768082817151804252848075215757712103251052905195274689147192312573512011845168546544979560496901076408867647844128596365757960776912602348048439333380324435274571326234657563924172794997429662067218378507048248203931265560490605580727836705110681076823157234295766426368346844859086545162340853574431169864274428095034940357646539757111142147132269725478568727469371756743456900975398859416027325010067529626141187767863105616038868706000579338842806897151448435232011167380466256979658126442233564493987080401915040962967298948714630467257445340661530009844019463534416543596985242945301168948004998754299348968158245748609490449612481577247952173687979225040011146088421676195049876358894184646028240418180046442109558530124708297830075105314243215042220646841328467927780331613775238742774449887032993604630705004318277639559279897727659152102078282476706557412596722527255130907029577655563180398105439249060332644320906967387825490330293606117309775895804194701441539917409266501786549337154466041601432134084202771508957340756592214675468440911048704534950641687601234167994820708197054303460088561510375829936942576853498685454658735516220540372624670672395225334005506686651810227798735555543384253121923656854753108089828319928395068997525149246952699617792290643921907226879460943191037195223895292401287536754776909086514074689399802036036236849277555629403438766339105920478943662039312304220529368882763950546565822182111716506046020194670684070955676615747398757285037071780120819097024271920051290985957662549136646890880391633471937412616009096880868227032891866231522122077068845736740544278036927689891025125736221721697531064436701325037984302331443062235962824903324265356252185573786792182961380076386963051009017986961413484051124063714310380506968538873501629136297113814972446351409323172686516267463678193422580430242538723642935347125638219771452275047338666894494777004386475229589688777362472290087476381908250438447692305367026715661516629881648634069388535328720329232792235943040520285884722025369144594171397049172641076322381016173502986054203691939340324171678829816708253261753906132342181087615044293041484009587383929533109806020320339521254492336346091484101182103501432113043054485035553964874900578837945310388375900443385215043849208168651351682825182441755540323750304675600019429625208749473770878781364860837104534269666817729483887647974194013215805769825701228465985383733317628122699620884782856804888473819984867067355488303398545345288151386052729412793565424138276042588559514094191227647794178036013347529701526942977539677903732737251595316933772848220588132627437563598326006923686958949439327045168972608956477528445615320317540225867271722717522243525303155590607865573031568495820058009048138770884249101926368092368972127712180411078246277310346078001276368203141356891898478926634776801049721977192317008785741010258080846816201676039368386957031473403491210666278093772324652222118237976803139641659817220638759740333600559711366442781496520136018007099210483317843405381418028227102328672351340957232568916214279595519034322584362254311053316992315822202213965690679761345519042085706208803861146647015092544847523985704384629159335012929804696432552994277487006322333674594486364621622896771224309622695830836697655195571427011040982876306892258167142790100146945915210174073816764885456283283679874143551969147577381655403546665978112897803968432892875252626721924915032454069798081268693536554564502372653647353990078614724962573775887680246646526558135404647534128434597974339550033300120092489403368921223550749340934657837461965123935926417856589806143152234562902939712723157249221256236411644421159451191792707738522743866303020256951928992350209720189354955613699063668398016256442175651562527842420756228079448750667132320945119101248524857936557407107753559162729602089823075206892215471151333820020398810725276127358610359958535757129119233714126592867388834967836702593881659246879731361695791832336321365120983365240562068578478850179292036470986981101329921698699505300684421182005131743496662874688254335144266745935468865637642044935643163674174068032453088497047691314728150015549463064374472092523277763885999341316276332571809599855701168240476316492522969839831964191246894225646476036780402801121652782048457189385170058276717243130033851962738354110321217615851068398365721166709757693631783931739846378188714256995779010791800436021464345047787053836250246996855789787400692289018401346491769696052205142540105872878414668965059460574797461091573104556522581227589690179025695191228699337130705583326890059422324962779930166126864870782974206089585409141682367739542078054044583834925565555421171159258361672974032282614151944670858181897460046346760261428505916421983800180558760260871525932849362849229229139115997661758818260906365584294105676044861435039904202823389413025945318181396110709136031278742599695055373225667209340860886737344328898392538374243287293468186622180492785281579310145792293935003579001015477285927493935964868756918569035804946185540490013568405276296987986289020823669535023016561599075363833905092948358249900325573041367632478723150665088428294583389920727503992706894254958535281380008195374504050058149694945868369845878439959288452813218703481308134432252542924035782984666229914421698680544868335368325628231601584077817268410142146475641429796188971033644189105874464073483205033321352640174680861136612378795684878296004007123343323054782411936515845258791101902685679997946523348979578222536799857895842630341020372803957741249460940847027908308124522201920899953740328174986971523091398225277895473232292248890015596905101997235937198617499753409001147417847189351526918502698775080756276770022870081188325856034210362858780472997205816562814822152839754910195961793566733118276039454226273462483232024876098805242372897264750640623691314554175014776660251812285439762282566502040134293803466204401061462964834405452365691598982537840110373429456463466690670842767801509007146845333505166306256559145610363334803369355650770943783939806374258187564393163686279767874492794945971533323197780079002548461577691054361931289573298428013906998980065538453509385176492197774231052591323428992928418653517472305475903773205987195846562230677977847766576073236752625560276745296267241994620407983477235648927817658955004996512777683701575823270934311001806228000536776184800948607664313879624327540532649669296073299487214295156630500547927948975657086181792743099542848154205995286185628311390269634217248296433097266214347953085167569287737629472377244470922252337406027715628588246711749432837911048298741083239606221504715724852681660322856355364380825062159987218854411435043183924307095370534850201297222021694949066278246870856734609953871777668389025473681424351331244004147720809411631538176381388277661296259809492695744461829120166605719521610835175175084465441384499307810916863199254789273020821826175195010196148057021339390561150776591793931913758320856480122436551631588112749376112086620543093159873703976106573369961196052511800705369204243929982783928334008778916226346894191610906600062832239086573849355550056448801562393919698577563863667935446831999936824015890852605113583174080434672464750028154424056837588154995487963082406870062835530576698569758950879792005616578866784768209610178556797215653798589037911304207181033930132274216465882354636839552271834284042170008519671234152654039599142466216367135596053865710394070784049304824354921563293391862969955953011106774745632626834802259540424018116308061906390011499741765147233466804274564002905265277955165220694238038896880743712249339602342405339444874636447144794636836466211066343772507892498680295041306986809230727498235606128032514201751210500158471842588602895318788691515862078574641216231171021540799604783522852695977773508311349751036251927771834338397360620256067436089768924118038650200458624302442217518505195663502255403012104689852988144882596199481353651093084607225241377475060016650196392702155811601946290832615975046705728220688053839304274075752741756013823602927960319925859783060665871606713941765076535809125229915519399095415758007681586191360397495479987944966597402982384062618862019775163746312943923999623771761471353868202018784940512473225844885623449403527509134239882008046949210499912145491196372886358814683473674692099880539381606823395467875453139717827787694375210195676182620778201095822195059421124479071346579499433097466904956650275187283317716263054817818494621107644128187037166441876717417080914370908627440094199509932378293539208696007467659745666030660555865394924511367148641520478127476069424678363164408849758208464156903279326518892478212207599982371661767241369377877165881749429889120582068244036976281122936987035361545327414879364491323139655773658341362228780276760050885383058700834181390634986212309554393077632410936966704028030077774827602744784128039057261462084781683487276739369269336806369746981236118288233445437761047714073107632786145735910145805947841962927731983828581054180184052062032226716408220898249227728626405254900388512416370863292389289461602454837011236010672450309996527633110918196882282415968843201428479316508268567518604602330248440951585634897759909450894800116359067409467803333825601569556593643742927318178736081298856947305707900761454639991184900741683078708100758709980802145835218702794364386475968424203184142030443633872107667990411082331814416173486599865493623058006638026498487881419290813729412023992778187750788032322058870203702564828286618445360213012133874235723607365712575795182166524133288890385911811509377647835093372700250850711757246783247439710745194582133034665577951717751156075818703085442560914904920434339157511077247353039904168259572928929013548724273296076112328362040274726943267286783376337079442434261002694247394077222463046017943526695872337575760661142778852475488821045701935019276775755955020556022530623301616029231329111245854687804326789310584150043026170305605586639005983634869552204572844283027169495851715590465868466423016642285590650597599145354079100892446578135817038354400176893212787207908912769427567827816101576071063724092932932381563735211612948096446974772106720460322500625026559262530766688606441756450880167687506593594524661239137231675426712934842779374504496799525917063574193937339496716711670460639397422204617393362451632988833772920718887558992070048294234275307296599278443016053002378636931033559968044967176267569992116812729611571832376924448533911076793295510914542689602736763033226413432709901226027303455013282866905129693885580609833357751005246201237467630714153303304742412292394796079685803797597393963995421844712491491519120729739343727493000676991709800739350526640304854634109288926941283069948072820139663299338320151651816696614106950596538539939826417267449403787081001059961328054425674535161159201417221118253271138937417372319795413980815822002334160369290368127097887638678866825460497152143619754911380249782823237064735975991316056486170060709041161679847144212469894101812718183915007831748917742348066668552931261126733118456304817516086099375139255882483290448186005928298207360625564598696742865765987762209723396874118363452611696182923715100022865896672241061158316560159440212308563494291081985715090003776032685111808625785928347196019183243575547541986768549577946938962863643698095199429880057035470623256399582967698193160329005485660399892230490429150772978600177582989193798687300631680426800302984752499975051719536297135916487989055754249653571134495078594608418050934013273173280212721397663056317582644787803961531984120162282467398610788211213151370687955698879799306810680759864010436150440200914923146301301318569578050196098162666332541805799174853649910634449557049824045666770384818970610340356679977767028010825518583461006494242782338545480522070697991660002947253338773415161708485105724405888681440842334331751755184465983047578077216668346896685186622804553354569100454886853380939248544192000120926308107779045720116081099539542248430307159565732556821987138914228898879510590578955162771877686691111595462486260971225524117667186417659547345622319600139296952131303467201460629435715895118219611703691234390798615406222280161625830084188915828939455388918557438385708569611572473094070080651410919493153402899486375153053869778542951815857642085249872674412884929784844799521448995550996107494118272049470981916674652739569181813677752111611329896900534259213569200439303894686175118208192698681529023110689584999055859943331458559317249055543419320479195887764337428472405174769577043940235401842285861432569382208950683666204945710900119344157485801815133961174919564712827739543574722883530211431918752220375812693428568118575221050664713387914932728973414554653975146597502674625229422154938771481055955163347598102792053662573984896596708134493754681759922171899842416731808681737532398941282103383317580728943948398301040083404285824225914229533528216717729600657030432156048534406789645433184612355988354212010229758965969489928312525253719363560380788906049944899698749725237379726797709143965038294009256062882257370598508053850531322237051495630663257966687865620334990507696029805389055293999676630337720482933025278062021723321674590420532080010087916977594055116205492179187724200208898720969055278542317774849465462977987327945193281308779488232847769156355401335425222133624336289579751423015448687204710497872643682563568735544204026340699068601254241714746543968173027367720743699020066507385537987808405000425617811237102798100127166946252171485591061259757810250237386396288069141732780298076771473999618063058600490365080053835140640326405974467617710433168451056432254106853030456249156913148468572033210180975779978197595946183462756614120662704431809833497829702258641848144966859498239026001081502981237412374295367279328903712934164358265028700680909447020075118950393037147012590847489391971849099601218811359614901482247685918869037505820556978948419720363016775991899849751649613857934589630692227530700472965613797374445794053162870640331469090182180436476241943248941270160958979339659703524665599797176104382397936692495473538111573838889555352607968855695622514490213455290776397754968083678629884254410578548437158910112284209345687978616207337438486977657459612885252398763266270700238527054040342310842104053592909993769229808179668857158619761788118893770025068563098609156818006201804155946894489238564814165940379784719296987311205164536733104425437208093318399657121648738604782635307398340983434329066542490166694735657752879777026403286580867028305639262575704036461334122310322375037951239244650725443396282616356805965668569404708066183768347640776736884230635432575261367116869703145517066607115447198824524474181759609590187009642459755413733698833283995394198898914071056142858949200367519550176655585233623996416680565132347576523346762076775183822433429043516408247571648461517089614335233885929720472150308663547254318914027624063666365726907192347612604755562142315095100129345321264301505899574143501855749915621375346921934721203730214274946471197909088411242185811740030063851252249628666485314829116280682758932008194602559614193603494908402090319041621827204949053157664508071073570091205662060943454562994624243035410441222365870242697704104952909129510977665719906549983019563490551085453618210065788302156695783079062794893982820261150318374065406229994299439215156511443137330365337078517421998003982592812686371017735944740373762309881358735323416020203872239789894904679320636247336123674466089232302318886037758044882870224594710678426584325811550181667462971410889782382174953438661423721961826119095375546422752819858305715305320245667195875489358658352204084347262078973743554275542591092943687180569614272962751504702632238015997420127279623500437877628048561128322485954473370911723514676964500994851474746884584004435350738371751619663836280856854918646160817357504506579451067823652413243370415173429900497711363645761824171206593053167970893212413348259575525393684944942308706860794354146949821625679326027409026117347702388937705382007673588200361873665901152970162217830614121121067809433861119932789114072933665443319313560934890904890486796662468601430022119901919819923773424725078056546123184553459155895490270388819982792055635816678026740609958605553139469692315052660656292692590899214282449229080053424654752424700145935064988298506325515001966524689456806330133237564792179463920944225602186760467441559990748974411195433961587197635765610147152398634119269607442009996633552980818368325827915213347510144891662784985918347777743389965528689967392172013530342989120017879687010428498599955852618598714192469417782235797825668666746448996711852980389870568414484660983192143970953383005391192751414933891561059915906913476930724614205479478931389133106035827373777157239270556378886058215726481092072651112492281793331169285677270177708741507349044180133337160683397137407777886567898373035430905117837157676873452454594067519609175318874006477328819158910603211124534036976305667604813395624448949933661528315150479684638842908038938383835864586120553075949031865534630946679767195524264055861182268547626014776589217823214243707102132649047451434981403275111731520497743613604879518030222843586231434775088935124276144180753696910931024131129871422004766076323033883910865120247395928441590625011282837679918584453867063336581802071122295237482628183000542133262100572559173600577101484547930786741802697694980822224014939008139882587293770410927732641927115775780516240350199202682316702638833462223741224365204641458984752532893654962571820751057943323891213278023299028237339911662674045987699966917244975612750365081031215795467068778813139426761757288193507021782761443797047980588830789183158155812092067052110394509638319278052887724680933286722556915379225518046457491773754710039936124368431752125547401046736397384722577033573523280003835312562605689919076345931592655679099204135831359923334941411541172380038270472095367045685886895219387012546083212975448529143924180090700103941253658803240959759996113845850460746626410260306392886784248327419796866987283974395205440331165973766743156965208854921463934734963779661311631360969389963905975703113681430863022344181243919477261817142159345100303857207651725468324174356739835618575067383923850266152754871760551690054287648072034132447743647473312813729192419591447537849320821040578493343125247530805743707725381258110854671857847109899488337897625922436569578698254834359635720722245495676021298941962392364264113666072932019666876429432313393044506336332877942781643597103702718722767364336028430152525849463988810191394231521355346025380037516516241939472639064284284371852669894099160060601694270351031898713080706506428380537828419122709850783803142338064067025283427558168412664451354587906280425690792749086403925899554088993620350715535091493856578929969602959643335375011220187010763692468379835346194916417744287029416745545376561106272128988187350671040509485550056308518695167348642457613371669278139015780220034729139260935027527172870395886180695587068737835210307532692107433000919194012132774511996109206932656879380010316947933074527058931167166219937004283350935478284704058763085970830680635239219588786420733363337841188008352941861841556620851527952791546995205689085098293321602130646350270781547183437828610954645985050419761250951382465671295947860624191790548711880391851255334675650827229231319240281322961141882339192990758928245079644203200273532968024543567563087768897399122065992695819540146105353997750400425352840693950874435332380171853136456699414999804764627142979527289692461013288212561019163727912804906790130771472228524308523949914411617984754139858706946228060905116718784891546241895598649081256772051233208678308290440247727176246014481430601113164699413353870133874586659220222126205194342970012206552615482453538301412561056254992505159087680582916828371757830746222817349405984669637576841186999298797889067872362060326017057186506150651814599282860982959017763019025463378974159850006438506705628943946712066681880484568155218393295397507875593717827971749165601069446924945446478458949489751247352889387163773754205988853938013852752090502581114969441167298657516097804010882193195016585072661958109816258568679476851607920045185662303497154686694659304253853055069966910478226068916475243304198801041773624744221371803766584444407971769172177942788682675206095776138669675553016651349298665933184321369016287553432613446872197322737536825022507094482325363738786320087983642247159214276973979413153868153198214157017220602144884479812231851947377909122745942571599261186295119024068279563174690202522080095273632634682646520251063672989764644403164240078080010997835987870302220790392587880174521226495393047036258678963725841130347244115469638018659165474454639079536798306012263267614112246468425104651542992563303549616182071971451117152099627278260735515148373796804646083565327355627833988528430296342705928369751642307092061770098302509166460488550492499767277232230744639040643902925106986275706721690430816611349968950563898460835135548407186142291337691210051159295286052742944293093533099291438063723848760277774450761801509270749715949424798465305422250709604230882737162372269194531656625103161408622008917664677667141080414281447681249111385705825780176919811961757210509974568616331539200190926255100378323085874766804372258705702055071731683381794932959399830229176260038757577296875632322785659357219066252624107946261713161451882894099842791013191271014772110763321390606702450060892621421592230652176174255871336527972201634395666063255146683538207973288992666581255948817046885258731894455441123750273397467893580047688560070550310764447440334952467302267984083629425565505053697450939234191022778586690160342890748144039130403734801163551032082974548211647782245983941539066508495044924348121859189075745747583785909071730149407779441442420423559644111415171572610021261562938229660608165104370221084180665300236075469631654332624312525940247807388778429310464624016038133613599571936983525621465987247341424430369402251654415550299603651112757689682683535487720431882678047848713472631436024771463630248965404695456284297554742684319532539919500380245732033018910222457718073858755501158832672983304126313993926967562941668219560817972183602983000803768658611733704193991850958791339759151635738577765463968533625353798339732140473824563918521049825219038160920036690867163985964465034728963815103020243412122912356513995926284935637115175202423529712406410965412561814057441378457889022089537422141649259849065231978770214106647295378490351019275417087228382337065726442632333416515802716777371652661120293834382880364393972402454244476677180281942900493780239189834104093388417908403434962761470505082171870029092236283376243171785957861865367398434241864554831747297526113295220376134388524194262884795582464586373254318557447292415536988484467022331955669441291354489080449515576850101498594559424838169073920721379295048567012302648124855323972248389195072445010139877275787207799694174071177981730742140674253035046663841784670623770651844869371534149400940957990733081389966388607611182974841254452997891732643589968393148433188077428027731789386219327663590059711584861460052406528489041617115747772393434051194274750817345474019532868476833187545801731036005966606579817847485915424716385925098023043532600630152471014728692350784330649433258726910638964993695736022383132403517135151854910586679373438180131292497141096367016075045575224631294399936344842702066722086733760550620763581484742339218995563436368045417239992638692078463652049562078474470548962514119853238405947492026957923380063949436255405744822186567350626238086439653795178514012659399701907207728798628812104471112293615191610189475724679078164353858332032920646321592354194290116360719389914062778673636819428153062325149498790616896242153989835718876054828179748717491205380246199041379716842236934639119618731521671225875422474666643113015945602683735088395848794014299073932247808916607762207096432071616271139685270093225419841939802557407076950579539586051327220745125681241150768739845795361589764145284050387381634898846159417289304694448984466177386915432011690121746281830951491367662881854953069153889124698327864305198047190091676236587068895252131044905990034428502244713829668632517761628953994838290246318436185295675930483587364194258110839407617263106523229534420752608107088390381207279183531518474553323084449939449861848832139512406860250083472473386753483002320481167919043233805199214714954173242119426805329297088286717514440608993846176664290944675950686387723532181271565129790739667171200951044555563061716759658175896447628546486600930230782583616405590335639065650336053821201340647808898438850250598254476929191750167112634640257778542719783344827521722128295155561683817925487068664739773595083770771369018912339760997091823953395908512521892164142830814766568744494671035901033644914334494277061604806217180897278789428244909706801136724165351505658033186503475687491284949536150605536889810493914421082267771612693368586614247219046436231780769280979775740652069394153774972286153060342564431060205230215102229688515878024151650409191864845002965907257274417201141729057475138621651231910214270550466003273106364810900111538449510738734758415699304949614087183100329302017750307070930527343525572400011178210615687145508000139557643571868808530832157525098241869791867282451313570532900699799298236784144855227130768288774185483554098187295373750048617151385804349112063416223045233570359076372653015789316921868753008864932654899758777800475683371766291702567997288889057872011262555142993169859541325609146216689660474020409808219359399334406976292341280417265431232946070498805670075879790337749648574311996218228580766183616607991761796968805502902699337183784109447373616228517065528373697495443047025860606433135288398009503138387781351804344145307143394690637440065347513624136744740082391469579344785761693270106549144923784065294905043870839125827335403683976303542046028686915099466524067954731110810139928671679553308847893805896398483005654129139070209013979650468960969011786608834655118678104238717983368749594315105716300568268016266691477236415498502026764090037500954643210516134491942648019597383885064746598168359995137690297387520922191014934949141902337622823219014288009345916152577530728801294715531130942634081399933631524427760134342222800043224349757757926455715200808034452233548844907430937895848034873399478881642835073823757358812240918721155382567513056039323410248620685649014170925431056307844768783712932071900309955556808188985181335821127060446307929944583763099682203117788400581989660591173609110987873166202053713927045565256299932878764630783822099146054846796629845492375868827634821614100839117564113415833816150416499810739013172852781115708819470747294266602090515663795391608184324012718308993263739788806279782120608902854352112596156330279465423142848070742662899612489807199124753980849471476145467610364409020480371066458014477536458752289524724172483864732076297629546011943658730742566109699038660851390692408823182417662444057207626195442840477485550039912177698809508360940826902155416472487620732160825586596216784713238449419383330822962302489074921002256533344894815506437934256379197388344409637683815747819458802285768530696718378334668106788433431596120848295939632639520296683942525149135131790184768080678628371699470638504287763247500019665201204143641806421729856523590490938525525311114965225527129168811266996673109173636788941901491857067256060092203709559750257760420270800007108693926390166547840689439232080000434706114708391575098457658373499140110550697130026637793015904015196412406230944719286522421136087596464988288319936190527880302474197157153563619405848134805933493546843461855215907092850853158714998539259918079927713125246238195351075427590867176580288575037305669340143506219161237119709525996450018357570133788282956831821159482529557895919448285221043851581288586265528573654751416309325847349118788510326500170961455757080033995307552441029466755784580202647172247447289761844144175872196616581693056924604010928731071881533247794045905874988789057035933307145946362428966937800658820430554392280203005129460293948980068452579354422639321269196904916668601025423224819080239839480360342794615186225067333979999936031094022647495143045743057824142042419539890664875215329916950949411709128704943965437701824089402151626756444712493965502951045408318805771077374157792698003721027894084096543144721226748112651899102460232079988009393667900124127179719383639743263528616922843504658413445194886100473359276504771665354427477117829734806878945257722493536920762955635013217124569068216162970468333414857860894923815935195779879362498324682163758249509080857153783501471102642162965688135550813541136211730953760125950010550717816299827056712316528717801554929536997375045104340812248919572421875724178968898732104405572707694265770040636460579571327133717264240578307409668336610643987528345721800214844905213343762407839914857759135802069056195781069852659307618189355725389790794693009197006827676990084648892031436361181381897040838782903348016748849740613176279626240026503083168634698308623494439226944903749294904167176831753489420121939826504767444211456926353700235851961534076969283137504470262393699575989267095501708337450837406496866285118828648202198220459543306058488551550889516658742209872883383727734991896333218985768236058657101400374552928704431477550903120895898609612557202645738462753846118156303951036460281559381984634297984363345947366101930846001633186756301891223298658400305738890586671871868302924783443527411088678006539823052536859120454859627284795256751801278473720398163644989398207317727867078177604644877126725078730587195649645347920493323944050973778713899230932523618879979511800061625624171716714553372676081672118513646888351907245062275892853185297852760749288362465710992021557196021748532897632287179977949822604005190894887239502742816161194384847861481638102552818979561290739373034926932346646355693103596982851539598731631642259682922347575672840082383997208451704122012994121968957248646967782494569155693782436336260979663768490577704311552561129583067286623117699027098095536749274377675538030859544611298869751505079205853909104572182733053523346320438945521211898008157678208541312797040350531872949448884757719543160771596779468657475660463882554326973070192355106289931503999359337764448414247318697190777696697313077314411009025618098391219148292414321738176230891053954059392504390098662116002880553945881264244980660491291989462280834573054516401497381975317962987509224786502459382730397285186981840771030031095236343106245867628371931413234697712328559792534692509714355310662353347207902926755920547617375967237908659612353659317430023802984539689166443819300725973486605565185549249728600687628462099277538373421475182867370888530158452413015459543000206374348590871372779213219412532764139001714102502850337302632708247985139386669793852776073606910575217903246170171768716640373924462871910954530549775679117406319460854412616906261372881691974153354473982018042266967507228343162209453582530790752748403418063427160619766466874088546865281553599786383584407619351352433996667971714341316263279292893909774603473198533844456464311502620723585433825677526560498885379867908234359659597199332657034275897197815255514206460154373757479464432351025123384178057596853957106120286684509487037657080835901707422592912420155710913168575089279149050687428821969475020573035886626363854715730729368068903411243375561549959303132132678714536301019760474561035195741746088586190288356737881172261311968871722878911579456381669475999164430405035987061624023934235031771378721204332147784367840130088921663949282288478436726819079164600061198201437755115027598332404089621239756274529188297851789332891826608916014656733266597304003389896784068809890610589648037601038520741042353092654162910636756906703786249678270526154158813353682142783051224969097591624488924501094740249925975367610496923729274124461010208575547151055404988027894398619905279096428687445809559077578162250798613683971793158757018646040647191468440470100024023255016471033390332467976455622995997304111950116511720545400689603267540787368214621605149492824895046543814929306498544483916338904776815022350329802867576074783886048327313978048576156782459809411287011745433721943265390718661888438067439318530115212268335362206359945430811012304766336786629227380392712125633445947411030459555874213179203484634072799003243229100149134093913322076483040246642269082879106719689513319359555525924389602271491039621342944841548344207940986268442967674421619985924035807032084206326248883254924266728511230473629372332380413394798497677615936590592510374588689589681424523789296812016752508729639728922587176673287462953279628106046980252490718587883567310123185037628581172891849326511379842073874753720257635406926190879442418601825931447388107850208501763001902464055746264915052612440519452217708744601474098740076521046401824370209148719869311426710559665703211540420832354629105955674368723290648984828118664765505228382270617216026791944398750614942718995970539787949688399009415346587577048299090717156015882825969569640253009670726378485119493913568020396414544842537110735907163978830489988340834080101121229983757379510822132338594718719119154755649835403836267063936028836256600110363783420097229600785273633596254103985117778664171975707947148212573792068744519068708594283794578939651855501572352748436480314990273938847608306979047920822533900747505575779917838142250327510114508506605807188935163820171755381318692167666754524766258565495580669450140985363028505451233004493853725858098301398266057273409895654246269439011789604739143376403702080009844144410599042104929358988018920331103212748640437823035832199805238232549820891897073132913052386215591760079575790184248304764354925232908382184487073035880148044668243539564756723886374957482659573886257810385433897225248052153908482722909771547742399353051062316712977664395090132739203300412691617084123149376389185017011478529004158470306749432607979944177936391266207115859842564209114108929951824115662245928572229802832013827841255296571265148764358893719621742414068081411995361279030141139288259103163020851348215901529155915833047169916477115396333348817716224643473058315645595983644957503551991765776459274243927106270057643259116818602713202034485970120765011885534913479697870232112552403623954747383449559524433435350342842964157022158101945570998548038693788121901116582611684323183461041281401548853902875450917901161023982435880309537212311881922409398661773931292397205653624277508583509765251069956647311344437610050642099066594871851065101136768839211524882087571977005312255261935937200543475818565627993778202282210872771647848976852926776425290825456997144527334911438810680257215375295019313107523158968168406165432378445575464869959706604001450655758682046525531898952945494470776739962244737066600858354131838742783107595911175473906076228485839696464258408780210346171199167002544576440292552039951133374626767387212820406297683935713273107834458606228506772623190146341802746322908659921849050524503083012010455264208146994244710484896072265698543414335372791003731199857358089164762325542191830095928954387066040492643443833814252402595414724405318914163692536592808636450205090238155450757426805974887708951276484442694776071477473482730154869706362985330787982095172977078131783351600208830493811596464209964915124442840719246395372355804238520826507600828288260844941216324086922719699324769606705393777712450209060429910930128999648124388215771873282870615319159209855946005928653921544230978796457736095850707757571551271467833226712920297633326026259541513633569285122159999668307460232491547921031391673124215761239276788066252153660419011078818366357895232293531478289018065241899174833134798695290605380544006214590396178687335115358321645035217412516802741949893738204285562274355675619962076081727722886720784377893844379161921340802614604709323317201108017621242344884408010521344508278826454357142558878975335587735359943127066567830794971537107078606664291239153308213913763020252400736529727103421178953862085585093446403261043066652538524730309597007929382193135682002754265447887050647544840097346064263036984950909086965219535149790326149137741958450767169603296800523274775908571725812349785116601458639302325061432730815603679505124049589258922804663922432348297238407611405667134784261290295463978677048616665176683630669355457903721860081168425946292598394270049385816077669651173585986861390654795414250402289977090992455114427370724372708561044034760199388467016455280626476991673782036793591104666783626853584064515916480022810742076115317116749963800641589697488077644410168847845938186727278689816812471273650584095727773012971212746772533576729912263759858297534172767520790299294348918346982449979227224032176800283036696504617379612579248179466808819505863291038173777557741017557620893569139155908945709917041063289675989536487827485404271938728077574951172973209960383871372817264503787598760221997856067939846827840790185344187179762110167413565923765950695576178422077748420468336544668750931852504707947554623515944785159673690779966389626198098595550419724326315434006803688836598290901576114463472379903545464827272504763884391111977340690289127790834178639187387513440570770545172926856036469808981971885198485806028911656547716745086880542147221933517240414256608246693615487230916538575672710457893397549706552342706921099180187138277875503360536321418916969903178347219031900454852820789103550762489590119296288569254260683429886429102828340810094979756758076508581072441946390151726999560832282070318003382523721034808941910877560755705183694607340869809340709932477258124749025066910028864512990927457176852358184624275887430239368396960521910945934618297161966236609999309843652763219977984848441790225044093074752399645211702709855547014052244558340394497587918824774174676446940192264125507186075843078988914565557456504616294332516318446929271437773376273430591417827019757622590789574026153098739199944447835573127210991803452475575525891203183094865599065633072454698679927813520553527251719177068521921878740580116005205121955994616266513199477412934315898841304980678073435601292641192348003975915900277013270313694904851584454300992626801064527575617279144719252677406684243066397813803506713591892008707059985978482299380169540010857271535628358589907038708394714836243956377625926638305431956890947492011840283857206118199899990394982306007789767208426075566120387393083931292325465864979371120655144697587481052702523147433806017942960804429661863605896095371888253798044661866178868523674444362083104267679728933164384106882454242469394390506384189381539246769069870907413953845223744551005059699704421515638874953808767832831494704015781461656431406565303571958164520363218861124592151933708407693002806708869561618928652008902318168582705962226096158827146765658306161040726812911789459145198936612550666210975881217759163164363179385019693864645969693729055172145601430560135960603859202978052998244549989320200818685335624984536645647784301880506063066443506055453931589602895607890721951624905560874371003167869290950876266431413798352347890489436667447357235606062668157673521703755657812710716110883509130653582975649826510338742311929802312759474290367174700935335667027853132178112525033379647969433725897841268932018659481493232351805645143860083119309813586088234148267865027271647164321271884237721670419184441589451030698515680000183070161309522396495399766763944392936623941015411485233730507253713727185019252259044508059478921653428915108018341057405459558240846186288517593436625144255473622356892463169245029251226565648116159384907554617366017832153049177901436375953822554848323168681181602570187079041216187290133882287900564156979098256923575383636811987316774213875060622693818588947272053055054223454013329627028814255167915624467310248084790397979626411305958287057842908342747811716511077565102733524052368937632041654046187033792585859054511278139880506785944623199935681136467894824319137864120736618286077940559986081560648708567010707871107066491090478824261905686028027040110185114201228834509885213270036753882461638237403155538874787098777701526067649860009728080872421082587526768584283398890926537709735003406630660771487026121204210711784876146516570465454301409345238789212944420973894157740814611758316636299307401620156420465534862534217652099213408441187070814263191710105586476983956591239427288345993854965209629906792460137383133735035993569016324384471938795751688849055144928667499563254356712580100016400362017282278063006876315170965237547865297148809532388794253968901994968364278690810364881152037081145435331644401113205179484724449515287600209482426808921126750104265971754359014607410628931301287121439133695524321987535795285260477780708133683136144851750190209357953230258958286526086383743187953076059726855490555364558121915282854672631123068501227185791214308326210413034423314889275354108895196130421487235579687609676613740966945596917729381810454341610666668113831827940031011227859916571053591230090447293232353234486887512931185449696341325046245316578309705379228756891494911413440973555180252717608493672057922846247544670215438698084832795450782801389840210254282035475281228450088617224768472139731951891992578558167441307643331393234101136621453059659053519823063784093540212442476170459607262608073183867525642161087884162884843504194670878366907317806352366921359921109729710836571218155262629373816030831821614996367981957640508260849583796260205560338720198586197192846090591263424156338935819208092850190341187821837127150179170784143689473848997922673964495325740721849143503172135436660808614868667050439319453861724437467339145465973352518545898377019584146958704328435380055864396077132690516053392032175416072787213443829511011875465769441538328432831245120134652061168581944392632042129147800882579177377593980143637943872494204815914784361554443928977013143827118716633889578207417201445569877607720937305358628669428921687769860936878044219892853403823612143601226312022984925075444079843043571900584928965170257205238984546074057707664002241692551353331353367832717134814315772702274577229210942954039888711790709407657290800169588204730544284081459856167422451716354010532824970964336971151476472726410963667410823855365495892118050394371273357274531076611089627160875168382589657313598148300254769308271350198697784274165222278430281251948843120547525524632226695302737888865584666586696676247538878414777612433699783599635588560526525296296528891678765408539149655781544065126517349223035183706831036420504651132967342439590851422411375595845263105634966271674900749498848187578357005057364083066428315942686104772749600376150347777150530145085426376322847135902354879998161489362398188459701023464209413830648601017669948312718794646133777953129420400682617581033934918944513110892642165832116337590200835983343706824840396943319784654405099438202061014831612916469889989044700732751373445178406960439806864346115524129833849046728143460586832088354277666780939113657078978997527293351219795828879567787656004175479732623923414886309158555561657604737104620252015227101832094461539157073515057613703973911789949099034987940092019885370736405502621106445397179399699280314591498146976239824891427495177956054194545459994335870735174026709320398499951197017881219960910778099938051238122440127465182608484731477906475857139625187642046264411716593334514719283412950468765293265215131061095767155124016846536525055621673510927472656581625415272489340398596376199362873141680169728864469585240191863887017120026858543533161574520293384629571029346701940456029199259478926433839435194166254073279751953117884659868023121787305962016583239058055419419735731196416987150824338296266579626620267152646078942443961807338169549312842922068789735659013512459820792261589110192195146185502959845298176439992557234781377475767093447014925104690954226502511955828093629207650206305146405084502255344215964876243775353857960488555366437578937618726253654819333589297758162342177104591950707068002962767111219105874350764233389515685529929474186037530515900949124759241505973098124343125076569326014919730741418915612975445913837027309422304374115703249942391542924898670442900545970465525787700088510524112017763800241305801130165705532377329710648782695651414930630049636956517834695910302775639539598149044642031735486215161885353895028346152291667484220132815282945656966754542366402496480651023914978301864997988654196780460684592170725679713294828280123024541427747735707517558301762027512153504942105284394477005850911724366486731311472902604064373804901154075696497120138532509959203258613049063206890436645326997228296844738508954471610440554120020067420580709543833531259378845601297142573515604954851503116698442508631937405928521975087820030763815863542932148131867546816073491559936730312394836211795499972887259144102620547910196054125653766673759666554661643615468917375908951299297081691860191365988087821945625680644465860437129728168142313067046080405193481087503253080602041478345342788968383276522451686053809924543969756364527555872487740173883132947110221056586274542070332569432243495032642187516475256825180325890706002873457646632433564267483208523492767877254744182335771100194037815387906412372538255542809981601024062806531738705512572231221589037871068880833344920791272212760579870191026942525497878996402115958432055212335590971719683620148020635964181086065330652397350921418499836049034475663775524875256299250995202579578631027420540825933704620293032038590614730451119549844858395492191988429698740122052139336518959964008633772140118850397885994759895194769418028861943943541554923765469877085521221283275779497157883220345709294002844031355009319297954504065152108488490778950503960011583526917637496196873080419253107676783037137149637749144083966471506851147394699380618568213694095921018701653950883434669848150948354314287143565722187409717156721035336003246820842967854033874001639940769784151631447651138161986586609560888546041427943754858034336282641854449184555486888738886672777878081656088249736979175716286049028703872358475789032539341704317766752410055299341646066408391923682819116192149371961943887577643638123102973632561941477944455506899413386138738248836652137233921108079505586829813635343661790318845695904497851650806288159336741892591526755590992141161372974292130116305014087083607743553512751063578163011691794738796717828712373849541435693223821985353307994149494123911642491098705226132181816713872340728581354151602504174695353203745224002994880529840930641115134038454849892320175031917407773678953806311858264578240738842195600398463065107759591768213260037861201274740456849587968337777316384437898421549440063307003085752851292795064918490413388966812447656162193987258325958077231640105836268620231100647849011511795187161468474735864371713814968420607432183553166046456956719045260307935463306249287128078052446624273947933324591784447059893614520808007367449647095846364285233796137239670834470437033898335488061472757053721092009199369892319052717821394170705082219809343402575774028337182079293312690471955977414663898680547706991857389394931807466964825177438926384636366777315368064717105706325724041278207185323256210004656456280190125544950895647763393558148960819303132501419351349715623938671783791909104142867238826060776756722216398260122095200777644264147413294991404133998244458151904249052450464859446428447495018832229842440971945797251825762489194574801894216406844119726488741362138212736882698973593972886636607449926772793162006736430309739697321267053739366750351522987251003228335517422705602744221394791993230989319068012084889919287425863363323243053185813107499314973716027173047210973338127233102254481347672140634033119599489541180429564294739308269775343010697451316694703933942152265722150056894241866444723869446231890147845147437523837111998407825995455513850854589830335311114074875683716996736886051673988948615067753501350393640750572771253610723060931235426122244291002083571980435338875854167140209181768204651838407413543982718432089212373232255413972861147725625565699198051229892713645719584499627989538285300619652069411998232611296945577281443028494370914504968493702299537084730585440195197912215585560227468945061350886076293366186053160420129007135372502888957992012226674209609754017767334424481425410481580769895752032502737112780886975219558538286113570522313969243330434575702487020768229799037124915254423792787720621026651140623698977673264383472972362202458352749011513892510093615260647556695140800333849337056580769583432669033964246681871137208299608593283358972507742629099209405410955231257454029802702625864832330737464031088904117781527132890676685958945231388254739188361055393443782667582849069709469817807076572380157417500999501605786831368490823437503967258543605374206912287475582152200338221340494545215150480495937990264549899311873689765553340090262522027963867929270539582152980757001058222856419742974935349601249482812308356893386038120034354760426114121026967303379195874893695484617776836755640494742306622146966678333462221466088851903750508743960163002193482077212264355529901677733540449280945072020037971035579637602600442080336399007337743901561954159377522076921202551150020810115538454335752248506702528196478459052790008121995486678445500155235673983924258599760411754348241445127090544019695531971154921956105959630715169287644899317270770080150545615569616144284281119320707661617731070712377851600549673144739712175515672010050206421956434758033033457020399689178314932837827176134476232927753858245954508448049224549780765372663894270469625268237897844077328740442842197048354017667346934103089273370589337052182359250684667779337410872547293680410609187667002700563615792107749544725014397417265097152325558959429706164188388273672130807756277072235046956512759730471306071822614693034656027568679136957328564565207864973299917903283484522173573901288767646488512985717723084237474465367417784986474225130382810653175126843789253564322619925674572090979208680946794517851945730386112149471548354322479481054862797124695663019364385934256192526375625096731634309414867659267137969219054085117256626445934722114957835256411778521213276018498152925006746141094017581153700586743669445515281867790142787565569807855271200674687329749220039178313839993030544182849211234309932711550289593452141934627578701376439295142656085443604978214680301505237417331423496140856979124602762898404350067824659216111901563828978172782380056066314031488026660490163512338927137494717148856977481209860166573745281585247628012557861823865249145054415902381301875849418932966727057327515691777904883670206159275833104521276644970485181718534876469185296483911705068195498094963133863889193223610857209985903648285154996840952399423336094803090158515533565266285226639933065636808250352075358805347861338462254569049675556566517124406411484277945933119939827710616533111984130693765002868482291502855788631714330387397328697491166239078029808566678335634017519505805783916135752966343202729431801202124175864748588427453624417578163967559806230125848119455270533118219856202155586778777986738545037700154411200488346756014266491757627510123958221477594490407343487993281704832926410705531740505564425706937202353343837513054341198057251438085777360617677295453248537523883562220084281399891870347329614685215372331465214745445473301906885185770783231811902047384557257811899690978566488817984217240991485992432890551815168586687713917997651949276711659509121069195964513373343658652525975269497741505510094872314712267739000259733965235439716219031652062230556657080402034446345292770830545400005312508013568661987976640377567942106214496090837538226475723871801182419666915135262200055697798013353878462158421734938091170938407283005000016581825445924601095311438960510794841307518918038876059847452896649495221376121565429694221416750045960733148324754332407836021725480104356183075979642456371886169535170347893926567265120516465438867104419806927454264009794840966611736704890233599289301055838791004677086160713411965781700913910464864945330252038979964226160697798412620966111079091508893309208403397347466448584754226078652551181596350598342124848600591454974613180505400297865541771154314299653891188197728154714760728896628186910293705587578869642825715366698371460356288308238220327883266115701783743076480354422880524739488873408440606648208486799947620090145547200609728901031606747700178613397176152376460708206800731113716564433045189377689272028424240184302465916807578799237691125163340441751520911916451312788278135766114378173067793856846706710583608834731182520771514441880186849400164415922618865867240480841481896704443257158297910225559565858527888849369353950653591330660106458938374542261121988765425809712391692764205002590972260340131133292853990267770259487846582543109559364938020943469930153990260436873013434450857188679974326801995588237855949999318478885278404823824396572300561091568795389355766202545189240230247902240949347158477996955976799505047152897115089086182118437299447650023966701884762282874910415151316896318045421074326292803843334959083842929798222283992723627376839052545345106247591846287780147067324511032202795678511013547787709879431811789788600683533697097009866173751508022551792044682642379757970143776020682751870205099289733624068522265738497959822790711602845923475505827949900431029395164083273025105302459916111515669564442987801567084192732243501288053164130158137516730698909627302327103910168077298337859999139133052146511397940588604348154127864999675373245768535711875052622532829763000853928852233134679819652838835955276151367984988259688681343203970137470721201149904981482599566400798079743136808889772956790375486012255810980127063712221127126744795926991149127753009245751119319484903764392191813996868950392164516135141709473393001322787036844350847980019965543353043868279090441239078103349686883228709320406287192414943385522357057175958459856046706674501029575578402565935363600774261184128653059094440695886810053457392549880120301705141297771101097285523343473743783166625763820665916163735930668736410218330932594670645686218153969451179502669255471367979796934633665336185059154147881745281968495917138936181165373025986859994972592787820269739196485379978701127620209964714361358605761511228087179333230097522101581040249246149841704032683561941680700005112963902687265701993151039993813579636236257989929336005856404947219526833594647278197225354198149892647991728589644241924997336571550435521584973878980612680090615629434093292983217487040569018678786958821819068120773303665386381588204472145711165826559710599617491412136502053197987645885273313509254218222396157508176718630428522138540605869988723934912936248783649253447482806683301603320034255561262332461069987614188411154861464557890329715962594696560169505986329738914532972364253684913486646449497239463915553477880174988479589520307435233907479146902727789790715658658623221394317838926855652099354095466124390867756330866716372446656185836699586382048930976992601685069975775098579639326107558209330341492395871384996880368793585236885722085539392872217445495486703409799909777389415102197464765560057046131146271857364937556754597131066757852492921583896614693303347396784181845589345786363282190474511353009982068789622114542540608296782586196372500620770347951029279895658920161745846341745068137241483899069066559282090193374978285342427072873797840960991878031205312874051177745291225527548154007977854817123324542804972513903755231297730009247066941152979067913307062745483197781404967334859320929520784479904161893854052062593087703457101858123216139286097836399904867843504435083806943615919876972251585443189893782364400663553130856293640212653652648131954093092274485528124931893670046701768772517513610504057751770185039408299016222566547649329794818963497088289063060491785339832657206308834450522049576390071426621840673031653852406587553001414146021783927673118771830791782774158133620072090235407062368836865944185654956325785294363350604820237484140042897922540126640990316111400332108981897783978184981148883489270239022777144831849565395116419154972598184186805807414282569541423204628592627455020582485857824853630855559149806265003097300891993948372346182688566254092731771019413342487936471260939032291229366290051520719576562482729043436083734190334445039002735126975017585756858495946738193886165057369973576560665283310843937086877575639572981620326796998632854444601669786099684839641101173115890616770872024593976677984002850648994014063719204347933314522998693336921897999709850136334610581064449771943102627575573146375765498178158018234556519601070521756382446653016810798624407900250421293656145373973784967276896892133507804356849741308656440602917496573070483831775904020805942908541252370556368313330256572148236788229936064514867932361743645254811523272947094204603990910697024780729830246864777904465371354728901425020821630403600136621391685166369191696481791356279630446578525152040982288150811858533242593227318851001002919150897432493439311954869082346657289905615613299189595295151978923883126960179921060392782475679609666812046282094526028509065357948614509697718442952084786639900026726203028964898915200931133195405718791723632120297453543681932163570663947418374610309584876880888481867735872592084477665090618527989037797047881304998862229171615744924116400040346752653798422126561807196010905770969538323417501877240079139881434809249508227797735410013718358986512985233811053408826175039491302750298025367445282417443495642703313745920042302301131392851114648864109206132224110777955699321288120969377026770708559894402343715861067966934409406534753154800466086936724213001996962792336104779591703542472252916585234902389822480002849711568261135650152785514515470010919086809369620634419664398847232195314396951614810450987452710584832190378735415475012873955493530297114523489452999401496251166014290640961096023826685119230693322506125190212711986674908298314004739815042762817542105066597989646284468760092424696755432257403763793825026756143619766052337499462048541441987992254087378474806791971065433693380195523191163635612756892726887802002286322058761483384555324667915584983405703676252744683467826807202391948104087352310839261447536457189112669199402677975235486442624495466164242467288754115337666080861759011656105978153689410574748930053171323143546048095013849210158133473596603461017590309902276924229181295593931001941877499443810786969102469225489253420170622014010922457554499606754109287870707065570097768956366053413128577345430491823750766701172318661222217650612903581278253246345047733771677231113863669601677831400046804570993868087015376730521504716154009344923311902339625308788925389190158323702581967544067095430430687663319141173060599677677032926352751198098841927197384146647295102963394897874744419824807100572495674438325937574186572983885528241004825846419382678193395339551874399654845787043927617397803665064726261168295180475176216889965778063266941921285186381078429375658752847364022212980131121933113769308621967106167383694176490194351034934432478980404196859379173973283371301520162623876999836772392071829351944409426030984570386846028676276695243682868778116245688783180820707065882452775143465435153307636059184699890247976757247470149477535757567613213611507528946184278632016772990901232899334363534927847238180044475140734595882272680334747955457419605859567743640113438974067175856883875245634528853419963534437419576243847232968495799884780204442408445439776798222706663166459797616476304551758254292782455274974783661749731304378182921938135367129466527692988548441076853265820613628378136345675572749469153247618039035932979947696879338565421670537353897376305477445960279518803216039636895163226667480541795133805165050687286460983603601330871702717547620261707156316981825382494467961136200099422271595213169341868051994741208672182298296466192369103192830743129299106963793255048982713302085976446116109356647653663397145074457682847936413640748140346927100988893064203896354154486147651758491415583903438159305204358631542217104654680011718666353387041065401723226522205824043924475525737621661590675924611368844335945260878163702417926966215989155710590393548436543245137312711438432011403506253286796227884742179021140264912925671415904717725865319530985983514733591340926149684157832999976437436865351056813025183416379422735112344681564573471963102504008490572350918789784403315101504213509459846796479089810172150773439292030528435143823472420655160157326877109677736867028247522647457233117474789726314017164891900057794701335202505307460805797053315678750947803521091372646046030231176621332457893664566413943832475151587581903589844810177756632139575596578077047087010904297766897302417785690805630499082940442413861376930866843811138119874206676813854069336401493045467613589857789595083307954107151889048950959559415262861046024709362220108343532738335432538031172923968190036879009735632579633822603767621285381905493808626737476439945987286947003358700680614156909527106681401141837710815139083602349917364921559940230737391703337264593422786483269766995455190162271991151472559052543670178382722885032394571973715084705056886134560833570241598133421613022619668622033496724839803656862336907816659438826861312480510282432103039138434430860813485028178848612405824655348054018974228380140307034716648961251011840544816672750099835437289719162514282358842651785792476080715758206619138005776311706115369829732165260901819076658999247674932449510853851478926270771561370371017250807734263068609661689317767916026422061300528679149579754087020184348511773371874034831661052661361894754539855547466650238047197888777220352390033899201415264320809123423315524622922271691819031977311751602773676962595257090910705118631000841445255839949009411152232098236189053838535177569741749372420093749796887465671263116746951260450698942618281763922835292386258250452931112083286785065572568391077149415723027831850709205491644959088785653937685111747967837762871510117598233076997367715810999118569749350323599094155417729525394111789608364151559116409255185534966846927489575815906522485264883250220780019338045421645813901020786106869906148542635204182840016286286072436800828432173970421573751906578764126942938573920421738864081046722976032195561407075139167938456730814717606982829507084854491222464304826069380307291115336766389109299283852332589273653032572933705151249809637826020869086065020918984737433765413494060371795323952770603177032241029733056961558090423589674874887310112192653343983845835903399768030155272083285646783869996019662161245590558840667395647945542988368159864080602320201293257831707618214409753031743362979138693083915947979339394589226490387418900190815338311604931309215807986900273652092917217705544789791219460150935732554609523031553478005343076052018214951939672730488659111634148866521060012666390163905972387529771413695672396742434168140126685964541225748671194102068783021840871093423572969178669016834757694638384265810366266475487309555525633986982685745532631546510711647911966763065506932934275140787794742689538737550813885800433993424131981020170162042997503302165869353779889533802261997281746967046163136059587050538645340743282331615887358887502876111985342223498165154034154104128336264224372640269756216359673435169252967124974151055704763311943381602123593326630704551151361424969422000076242391274319446953437794275149593136785229767209887258874557105069670804849360307876795145865783762169893894593361082075450440156504307544943339057108281951519501995398123949505367880674995495939600204705763125560002245953108982531312607012357045914929273150053424898804195924955759193505649566078667885256686334379199763014545184804024939984203998014690822241683111362578640974839132981071937006290490153731671993270649398357183775508875358591305433488130513317281502070937753098236362835055533016571010074599479480876225022973450579357518541014714562588405743095985509998533157263422636087489810574637272789394913926300129646141728770150336842522480780614263322272923558048027700204969811047305037051734207380347866681125418215099456173400175592312953829237307570898037659438648978632269666663581341448135127409372025330769248117651134229352692892025375265547914633448398037220776788812772773798049922740817507517015799464472988250507912432016252857396158432754604019459986295874018688303130658337563023594947302242186861306132715419763526568612936171490195473924703282191806949958695548834417290345158116747696935352908534018504723334527623591132327177202684565687070378711892204794003488282287397130480271453826246391952160044309193442977320337146398377841411672182602205722459180693508041185886187021782160900048856729867620186694062482489463919075179111399205174066725529582145403426220746471045468370786102975505380659188511006328818722673333279130491355928508234693092454018673826440509853320629422142070324148569513013081616753660811133577246227222982927793735058046284399335486693702668433307099345213946804333495319877228134438130332508995698521724694312160305786312996531927538540523098706004589969498531462512258756109480841067449339346392198506404032178246186654026758220527052997253226646173431753296709027951056810192200267371310824811110490633277470150099875925614398813109575428951039474828027942138982967333290027302780186062190360229716924815168443586658922634184300629718908869920438132283054214853066254203061926335244047993060105931223316232772339535355648369271232658372099307339285975012539612150195946907130027925566668060247707557278172779454276473557898530198675189989455627968342001401974245367836121793804157935011016625511234737471506055982834463232478158775742638024679173966910617000884528543487989665166912935992736861888063297549364018961242104435694920315107434729398208649189698619651907809843524620444036263782685690183803464682700723549612977685440663137969648909735712807921151011092708214032471893979090900968128298823306412042531200582359541886941804959170226762123916323557450257879523663467641413434197286267115675944466502689119343554460636587846028162127501989290732675927106333803804865111724928745549518391933336701598909882385407807015911532716063879309421421577294832615436869120541615580487300095969748241549576133989520677134307885152700981406056355081030243791257916986454743278465766093297095447556931935344784812068307145188362453258288562073544086099043668156849741070507578839850962446894200170091390689651521965672561678903927987694613031384042946726693618308344660398559460154838567975061020841662610543794013575367210773481529288720257491411338574158215267475308129657037779776368632037191680415295602581025363592867247765057291049419478232791840494899839060540589754468102142851956377806997401367008663713264020842344108518719254200230214173961540952862492606477248306391336502831411968347560198399567204658043051052391394573788834566749024091084102144316916990269708194756999545007323945646070130580500046821374112183815429142162274447380198653600150394499036722921370602969923013267696632099481677475208936935628295101352105980933080656918262089130687963273438041158497134605168307969921574052308140474634640018822767231755295062124798362463151910524520799701144953453368852500268355569114904191459398540009425500523491821166461037847130317205750655248230965101635784502152421216775023581868087156271972041675509967249533945222795387474696498922034711703756946883592306833325744654954834442109908401730782918166181260883434690901424231148493937216702451445554971128044547314353570955133745914341662106854173815275003315693708200556746232679458708999950735965433648798365531158032437723149596209319486461590517016510590992862685979775244244899007016358921863391672854399937380151340235106424197249429692245696932540944036348623305007992307275222933519967115324581077296434155495617602694459224441034681633415991984244399103510620198674840515872063292832132720980383329725318166154726841151627733600228114792581836545431618002137808935778281675337321183334072232615462484513067861626918350869209163788233876632460597801044562516009323291579742552375453528526492712733119213838826659500549035264598361780301900252812041595119466543480762413218713342264560579179881874964332234187539269855586595329191536691310387860290537918062122748602743557545484418118792782291438399892081734708402738540139910143454884913602080216401851879958681130865881293608276787409623484727514044333795479180268134307692336309757272112348963401480132444811125541446235919380618684000080426085414670443663384476306986622002655289228404229778509497590706917664057203391979573683607508835251268243474905608526677879874879378491463854900510802158706374865958023003301789677747810609538180827156585018728405159079764259302428225044717042676191687556243096857020874852897835083450806577897099839607765037329723614375907872774640740347203458837109112779350174961763105627461345213016787677542279827426175232983489189760547769722125617329180914051075035661921690692010392001952018725385492070981387839162909394767941120150677473183716569216179202756131348146101560748831859540674856738924517077876579327882898254840128426625416768619264198926254235584162970055976729646810712800533536591093599922050768326638563579793598703983183070312114289293579570514552282288805451445724081931606464615627364873976477805839652427162695434902554632654590914150847339392376314975119967850229196991943201280890892322656618375203818198102642722592412517139028804219076156602465662684172992611300808074586101711601071557727059487227088568089583240046388139710042685378054922898040214185310151516324825757967905027863634273947801289424289423795506521544556727726164120071453332036261435254574993624168292134595586056411828578190180248947343732443914092786802165553728445718315065349493656956837069819839196571141147578978027273463464617865844756564446431555789290271664791343136530177392215912538865692394214533154727970842448071771802655664213601414541263552142711921767592730410326195931279775536151868886365922765564162465919006497647835770673305227905837022114644761076219938006934464338704924691029326706918906767202851937851887982058449660540391962148409344272847151393498301466656010465243416867663762531084007157855598877080481508374898881229167604804827861678318430839205754894245125175835209494218194640761360113222425751343045571105611602856587325395551466175752258024990763985965889013967130665245778281634211206399753778222898234408135796854326879523678102179308833332153078190626057234922044554693404329929849609849990314923558413969995538370325513161518300404525917587458657746696087938701198254562264466574396230154791854004863763484798561502259530153047722657850781914332657300191456118381090830844039934532899833870922497162329645589054393352127411684792167072885177092389425938889385839695191605258491067590668040408915825854717847860977762384118380048010952799463104186743413888028808571222887745109057154063832108800577644714376531542063331568749559953519851544835591504234153303661445204903175214751875749268488566346359332511266465284084965286868028563873604277187754343495314816428784498283280617176396942864800776976042800680584471798283081978338368213570160625039325468789361068439023904828273001042756619947851056807985483351760227692666227308538187436023413017179939364151784713264905814894468175115815668898574505270527285458262456111310610869551652538651952551973770314094248185215838882675387567661678720065656878773466614061771722963355572622179141051186959019856002045031855064769017733780224568529049262199218804989858159458085572490232309425590562478946217398512821284715951943357199783737187918013809498670691482281581453318263422559797844505071852793630773376763940581529216982298612771425375955797975639264303084153674437903587498529095960248503832342015806159941311396007857063147678526788052252985062976563372414795636361012515684540163193520858772908598084173096775850408588682406522381229601682225503309015721198319795082677577808039728989869345759500393278643604966616008910329941597392368660823335020756318273273552887924531049878414419401988369362538611124308227291567942289687456653000483606495819643367366525814493431211730203116268670944539051091207685754156017960704640984489269416547625018150954979462632402678218616268899562484385903122887708883036233794107367995602672105250820179484792782564813057890960046668264359968161620924950997285230148035963197825119779997256974274386889903036141724069413389880627830061558590989659572688888387994997919902325266192053190166938419239384484832293237193062436428200383983689512574220956979262840238818730749980315933044350346643330256690823059608773482784614770808502554712265301488729254476244505972735768080433007717851219406793899262709622645451177608209554062823771193302427078550227563219941649709261399474185900949944424199188284387518432889162043741557487174984224787672005659126413842057228428249728138299462882911098725350267447228364645256264637874136326797903967086576196898336037718398551741978525148363333985654809825898116391916711950108781930670451789890143378775402174002685706976864694666932597648465664316519981141516815967074348310424475553344430940196537505280383153011803488599601417396969380134873444561072705895927362725727407222729527856234158221111335483461874811523027308073245461420215336337450444498897133297467853493212754203435414871155364860670386180202552168794781852917833657754337541802087470179406345746022296966011428479353241163368632064339999334745357705810490133220015974025277861888095374514947567922656069791507020661955288721314586651177763323432571194058412999036957994720992249142186930688912995468791439741313927365049556768804084024477421738886418857225413776084669924525237662216337869733278416736385317191780881650200594679238336590150004425597389469536986710049199162177911394407735573701531668601879766893878330421163849026438884313194649905225749374504484498844232563460988559396501317909689871296126492919541890788702131463673469843822632288314178526455004456918163485574210788276767070823793228415979096221567844505621283494734216734451605845752940967823661617415405482309159614267787139956787974211286432524068836453706827916684703372599347234029179404449583645913339088895279491599512852674319070551490534946467435304209794908976274739419512009404795722002748751759291912979907296178884874381327699062733654586765928697342470525514855572976354326782088370888251218912629286214253959080149544120916082726302922346515978172649669904810280968715285094573317784513798127982761849974312754876059558461863274045895112867145548707268508220378540754818138428381132592907002118924944918799868412986469086060158615865718453762523405104041726606677498871640396478924663366749603994740794913422811933982835885157483645096968663523943528867193804589734862369538408633167216765366612325449261875543519941830467948175557301337596506071117895564616855001841221366381998222448123864624822855823376923429796012599792726052809538641978306713088875734339213968591211844278157432198246410704562537215078927317371133473485610056792901578677554926639036198874204034990080841678008012128480082280484704241813488636197749568626634579349894859894414563088928137534046705582657365759640012014271602764338856552439643835999353825505642329274778743720884969645303496622299170639780076882455287415684204193622492554712420561547672704381574586869452520971408615050194466040760926798397754702856826234745509376859656282688593607192388206038005990783901344754508809462630090728888039688051687426661210019715688083173592420384290693058853160687970459786226559552196960596625826335328120201373111911959535862051927344815391021445074977488039158427379696607544191803093588986278006288061296610937512372921590113853040776493428663195163608580948873025016169851863610755043320761980763864923523794329246776357635055495149566255291510755766460028113968166483970628082101203946558133368406561619239705825252139895330670827183016094357756139092806387400553676327885705739338341484993517169445307872966306126836911097096271172831952498911895329301708011014925000362424034930495071816079275644722760377981234465769879468516693445501789788313505058596491904400470048112112350044642100817248831112798934933246525299577136582227064214484479053350563277465273632279850034160226233861003168435476179823631390369738599590854828429813433274545346251616008803123873674754879067129607490752605866594079940596369458357867676464417256691925238843710983644293089630867308522307818221289262938271940000734396441589013791675424097659880154139548078850304896974280974272989978839371404429654593625087773299725186215214475075601060005612089431458759021631346491592950395382280938661607687686031544164602115638583314861716016209272039000061858350425614471661953510456130306073116944775971844461156305032297809664634354558232722226935020199515731237404778417281856269101314941984301830608241208404095782148003295828348070931066215488228703908875502142309259742762162112947802306363527356771946214877611028699908503770814962305317756511619252401618530737313302028440080879282963910966148792361620653922883635007918493991870337804450982140924498059354176722540111380384627074445398047534110460924615567344996740421409201336598325759184776721810425376119295816176287203869652285817815116389891933546097025130464065475090148767813264622979328948049914614580632169620220157535595898747509008250218516028539375659467556295025302030475618556675714362679790080147248958228295586752692775334226192176031496450508079771310065856831592021828432066512992533017318502586030302157630225039102569362927460297154820953630539839230981577529702421309357976262128587404105278623177399632215753142826245224083028725179270714673672128488726219007039752192955711265899018670800397605268378039468073924169325163635001931279274979696840093865583144218809417065848245274860591183772762378641296720178548773348067353178576655440438915018746750381594838330059637441297460694232074279602643435931028823062161136075788798986540614183875067371641764139929997343158426956627174367283369978980037303609377071673310510014847841831375012990563375602621820478133340912213428176465315246871211304221467438239930138764866842940471931850982549610376645362504312380025843706786032611741980045699894757548473765601328553495368229741729871011095460876796643896637013576157051429813123582321801688047697371079037018728608987607062727898179172418815722348701428364483020395730898995253199216356873359614740028300690078334285222190318244829645631133587235184450952446053027218534079131697554625702140117210022084424617051602819048606614044803663924716333451873707995815061160772101851720786880912744888971484467199456133640184886853271141177973111230835834205313804584465843089093583539267556439240832806333869519888600063291848589402390583249031243496488431749522542608463533479869825718358596801979299951476173919704569616719610696668367136672237178506858081211505893822967479728774802960672254554872421286814085822432473303507037466539842281784758004194178739595960320063120877214857432266384191939213729102594708206444011255413152839006891522476630497927905929648193110967196457512614747353234357709537733842274732911778113204221309731094287704956080989376723593955180042811359431476417745186403952282526776548277066546493445007557165364513199082354566997621132905027200683415305481652167425243867623534698372174844243587218476481425865412960694211896901865976228351898871028109564867025682649316880533253704930358960453523046078917004630678680431850109673625472856082062531590303668230388947485670786369292071121375908560718153166812230941270027328244621290189852865119392183196070851964371617589633254638247943896165528649981658124158361695234531198682931673592052909282375028708074593002671602409178829921040873155338462535008275114002602106282412451351659623678713814718870797605401858853153285827635626454862877585505598628035013897310471892768837218492518759552300485853795122387194545598660446112732675422984991007804845121447315843585365512114432481582282823018501876523363990143493537573881253340769483212971907535320887695423092160701629920041927199313851769190510243362254478261525337776031088066466804063849060053476880060673782833776701290020914322695947963860623682003845694238875687835563235601950953822809406603946279872755009975518295541730688044297289624114488500791871029339467834426783106723142367336075932131612735430962249496730220266950386529311671636336648202907059319329756957706677644599655408023317766607922856525976937835286853402951714133782463751733132889349725796243871644750039627750059039191860069334624136245041606916322390565188884289899218191516142272118476647764367950403967398486529949325200765407975222782395829966455687361066209271611841984089531358108373786159392340710495918814384686934142657790642676207934705618156728050060307315783966613365986176748262653759095477352622262592337832079214655559943849234093355733534402046472349062221937975576210901309789682474904040066851029991616302926431441399999349880033047849589866180546979113950197698979462905235215377761544402680621786353025967335639387118459986801385119732767725717094428832734763151272166116831331003777272795481678817365828752920578845391836739391688689948262515309841357591852174725724316278064898518601187058150318433672145457923003910353982515688358675677593632141296135725770156556618496070310571402855431720061792519819444171447813488465439217184655428385445137342896165848641604654222520816923032553796050316347705642135869949406881848922708303465725015165036103611546048360601075196428149874067984501730547743021417877045935691553673418811262612642756907044131214882931410611465218049377988537946595437567637565875502224901476349119629647004541501711325578088747700028817306269737632127575427554586359713247958575625149513759980692625831190529213219774823686580368874964381465985469178711188212892174821491334728667216802689488507408915712214016567023624866630086446987962734133330468826449640016033750659209989236362416016596923983056486287449614047016634518759115833613607265078375768734537607613708795234679403273199558283040813093236265704730142997904021796618941334335086013927903356767915836162657077907164018632537049601648157201495594195344690316650713534681929050909383066874488750796088234575784988134615627451549668455953315598166384440507354586169052020699759407965655220971740775487865139589802215706724725338500896875554296010692570118348272306158263193261901991667167257063582097587991429313157878891156019840427262422482025109194559003174601935394868319665229614874479812188367615270200961382686266261965488240096612206812355472463909896693300516595292002945759509257625750503940596963256519444182842689818415636544281879494696230585928216890726470698846421445505929415421578231764128374821701737484496595332475495692627932129660855723792598374225045239078500424533567417696515830516798399522283532376230685124630990153124288453073773644774127983933382142287104832881926501415696579565637113043155247028988575663117094385001723175074102325782979377975777793728340622584536992523078217546039021596185178243157211502481273490704224370449260732413556556690459744125563766491511924974016366473062823428290784793302343707182321945504766156120852178801836669041817376481896403397011778114760477573146941239401184646507786411294803132641614789076479100721395826109937120953038836589118101671265982336051593505200379113142810808447252519562476751390114592467211953074222609365144897889199234881290943951590402198987089881832829375005857692070821292446210932095786592468861897297041004615867303273293488119540458252337392460535537631810766279236967856534776920788741522604355877877667740536602543050901005035030417306267149419748814374718277751031255366887728897853870045016778117141756525003340028666158686374266968072874964445149642723936487461618175522066076263170368240150837410784627988100718300567747781126406149360166611675531609207928638825111171431465554073443332545601891655915380833813028694892431807625629227375303842691139699151627696685045084269419667916476652754571213998285527015202546713722392471566818277621855596977735362122285037221657245521072392144882359607187886219483445090731584245013993542314326741285860293089605716160410681382013852637700966093696483903565351384817073127578133859485327514016776706394621825468995383947797854708565455360353758299639538647943476672982272125167351478364061756808220645084058604918873750846283634192224712860256772960205238471446988412634615121097388084692666279076358717712129139905370055017425450888460961775399527084693209008831431573227054948982372143013028958494155846299691993733168695428676434894012844507055555916071793735454293509725118758499320420076730278836815547866561406374797732449287846046224180633230704060282207069463199490710243044257705381749105869603887802567321303939002669801397608815647852287259537331991132455043142660022012872590977059954736651037644834275129586262335497661022053033720878427976231649440920469055451759171899655015125586272221686440314986977559609498285651803691876536576537101377361022597504503621660502290107627382423003618409342126728079154280163186654338215436392460326924855278060799184884234738094337128299691567895647274263037373486944666348475668334681903784554592331976337606512152363528845802768742736183071296866843781723602797167154800228360990480175102588400969563830099231207742612844041714645635984286968995035791083166687982811483708837006427449195549807450608371728948603848756755070894594218967611767629185937341099037353768878482789181955054073796626890915995923063032083817113485035488052690275337490927198631325187938928012898195659707271681881583445781496494050536949999250918560729999874969155955556790991954064600584048364954221646984063504772743386687608544009763138574539503799509287930585857076044334474305923194534668408694548539345585392950679911981713237980605255936010936253918862432736030926561639476632466063843247322645203564457174572782320475917930228749794489893590984441449441719929592971920490287403464999338748664476567717665015747242090401624079851494669077087299680937653846085841245752317424957639848395981886916523587098832424300701830185537021905332622634738024544348260971272336879077787665630109019975967149814586026926438598883856512802446263358268628310971967668270308364686094429230876321307034290254270164531550037669568087918969183855152128955836575323912203874089305429823886349669742694718314895038864396804773645939486802460409952131575349983475187459203424895796010694516162775274743622300510933751157469776514325707037076067559485039650778745935806353011210171666670574743142986337898416899461451943088466099469918857961889096555573226306082207241843221080296420179815294708988527070977920508357598061357936503475772979492938503388802826637661961228967035412113008059384308809709071725541126963910299008474360905658679006423415266821710003340353373861070481154675954553776786692352833994895743158968301428682879038714002351144793008296150343443857894659555969210056056501141200713965963064809167840943482001785199433913620769257584500690732671803692320488244416083489953253147902736272710462105193605003210867596241695042187119031435509155320440621243717263969753231007191592022278554338030395084674949350661330546968045601407484440143655870918216693121606670713872711609781159737399843998943836410359222485564736324025730157654667011762245614868081413291776492594637568079817485843283436413620692654916441251808960345810134769797183815314681679855105215420384103824048229200770227760069332686479494102756373371073994054253667547864729239985694904938357884593134657059406728947663538627694747861435720993961588741285417079435992631488776171700233809567835149190543320573845214897862523139414295783683658860562310791967041494000632149687057763623244225277594789207531088979497060935212685867159410163653959099096595631346172934050632288739328095155248540755550243952607759687167251867254428479295173530633628757913311338521363141981360425119937510080812499339993690485994132819964521227251327038415289765422162712871556894529212440601910356270307228198329366639207528673594001573339177302643646926065442611316248792323124476721084754412738244618583190865716675558648616496504538928915582222741930520430886913314014243468818942879808341642414323741362563979298867826024689385375905303732574266929996049420209929573316489003653716105592266439025015018496162484775879040827829762360013580642679725660218376787540768938007945798548789891770764917225320946806027352203397946715759498977933428218728390682018410085797480700858963479844332658779408490836931537328161907391174946799828462138125193565290827217789993051301815679071713789599164032467862113104116543520412296388332821627676107870349239758849935809864808157546560629601052329725141484913500344639516077338215417165541299217327517845369146292567048786846771364215691407179965643659797321912697565230384423703019518329108870946529728889989452401929267477496920829633349009586773773685660580811617097362240340204198904180642953783229104133488165317379787119909731429481023339485507635088534769395395528986265202152855423539692090580057784995252444508489658177707853925177813591774307969328681254187758507541795990060286516642100136667236892644674692430893271897364616812985836400540160397916865699662575354580120287294989908812777559461147860566283102371178817447391384070987956658730016570214697437257685838255833669416017691299307380069336611449623514507780740034268952827240397207637740979252761942663139723906468797214427665606525285982792977951280179906234144711295392927844579409100852307678060896457977368817603115859471064659835116835467506356034571881990765619111060343209279834411494142953245633231825327395866123003373813958507844423518552051789091761245794804508057313826914583343436967753129132853125626538224382935676796675905105529522831285228776426744040420627236167644626081952343700638606444791975641554187701513756550059068972104478919964109534812689627531839361624663255735844423980678678922006664195934828805057514560997214154239635238495934425291917088069938190390070003745795032105973022500804143018740054777313580946979019675203618623518271660463459612102716445140037182795144209677219724351146178653984925367391495024744608469964335474098723747947015916360828228365278492434144727967465321772276740947552111612940144019418170754226156752918056832296664907603872312365628336738446416592185229213018163668099552540142734876810339447053215400177385772432529563095951462441861245498645702375900076074918619159066782976529381627262114735339724305417744218121186393275931076585675595080186451843601719379334598613179827267517034750002207862442672506875821760376076502339813718470481365716807373866263830247126806750562128294998155350140030726605651260100644974954915022568185701438901204689709711451051369562058089950858697648187371273759276171038809336937241903895945044788258242767732617585720471708729868077260824771960782092433345654574913741036316606347427971415678396143156485996690764432116521601082914749024391211659540590922638157279337377347552438349211756313136142104899642488928974796883549233032246311005942795840024853103170273936296951575330252647992800244047206333065700686509185911450061988282103148179560821609283298535927915002339651269622828718984200086500048253154086596197363540281010601675132429102075852263295083017014491742118314437502002412959429053198721890658265938692589832540514647338842922253340784597450922346688578175253964367392807841286054523287925937334590302721916407219136352309987741716025905304266769682677037622368696314062301872936621583564625749971408894637725600819606201571172593715103051760192921698960007799042699320860977885600466831923041160989654166010082806938208892562388824074678519931520009822662366383269516229732108955240570437801184236166935283577344101466846091672606302910283633184865025584231460627625044203471447752232738470086670478175675409216000828924242874192318271247691560587097900936532612071400141306382431101944639664927870405421656225773962471518032041142852964590326004647298997788351094821566123057465506263931948004244353553290223320288019319681145663019051155385904152264805384930728704850024073441064985883274179918168988710960655914645550044513562263056218306433739470837308483714175394982757982918170289432233797368229132067376463138458863374433846624843016476475858246970812620821043585370079829594478098205541671287911719917482013246374744873012947234267615023793394049666124937710754890703513845296146292748686748342699567207139781271160760582252910289957850079746085818956808896915917750052233433807632904400561647351096605625690345652475571481483333850732462843389606636026445117376302661899324371187845405121167723314170778870138211669430281459015497324640355728927071167889537585097828796611163497993716003172932667903662225973400785868151173400861333722398512525896526160156877030076424474412296869941020883444703911476495743750005713039559005951742397983774337521513164635888384056971120740316224100875142433307319007833085096725228127094821443214533224647551613424158035953433148756857973439288727570794567025127584771159293055217369790871408404687019449123599848620143086381200273166631987180440804479271418461348872800700420737489340286972044280252405529119011425661306484175849748595670609755284056532246280956722604750523237283184539599005134465742870804334941447626952676823000960070042038235563585247088825149021804673873268286786491314190418861046993314891711962045748901196121649173411843239585654053803148513210259277772071151617021157638884310635768000094480374405013977423943619778433916822174612496422572753485910155406557972750617822410533462048399955115355283769936960624073579428534855537278709489245644767627086342977891434775444617828376043109508382438722395867394669288154048922115217558140095740100176039907605680821201342063492482916174620368470878486277489403853797237042829086078812044802151235034952638601288488355451468873264233066908796384167959236187400360149767322042723831984574321860642102254495330631455602954731639434120917618306894183224096469353596560122085498741849384562180213938943497130216037746710035279261524428242840557867342820655919945746296716449259613866022994385004838721743193729286373917451686575135607586928563223773652868567676577267858089641238966507450570695422409830085453056278913181979323039269219103617055293119512800569967159485034694197365707590555597722072091946857570835910051117627014377646445777527214905134384573948757039487137306495399833498252981922551346900070412697178037755071425880352681409798037412584905827568981001378343908878089919389929140728007838382772901294958645312450302601768166709988320947325143772288104779590487964919414380776341655006313241261703072397655335162203571574490811907288047694637894405130082550922759514222957381559080794774279830451949768685034550763803086959429192571721507268572750175983799870035354853525623385662412653059561104088600750315937243868914236540602001288688881441809075789840684041334262589489131258728232303819444522818101916054223942229265378400254643436716985963543809626673279355464432316713164518095198241179805706323356768861509953329648126861384174350557881989990058585187885302519216605699990832953647760106265466417454207003127983708900388291393451718449082414864943301119735857541488058464443817088810598568776879436789255270832012212683555878137101001041212713391552037517974551749977012216356064836764376045489513098448470661735061695852733945529794450315900745607075424170689063060769890508793339490737818410888084291497829918292444681011293453536136283407618763438867808020062430281267819864091259214592833832021407703866832004567973925517622890810518825583487833808817331938268231836494481400351039674845226068657919623886911431416823727371823779358435161958232326679627425206453811008417666055235879220016182969366374317575979343508882593723630423379997334066188571782363529829441208653162013559305633888202710627101815557904111565496966727275181337810650323407973390223381615297009126010561494066006398078032325221657994026370989062912671225703582142506773722252006955241882171723440650731173198658080498134200416463415668623411375969424770784584322285409284654204837305920276618004203797871785835575994143789213213068730292661478528855276245446800766286714499641839892856026773970303600856471216822473426287484449013055112735957306850107098084205281994881779908324569445457529563083718217489647114223433193399187507868508559448499157440614751603892833252181517556374830726216781476359345358069484493231402994106348393493103436830452011605557945301923526132319356194445905612443297511576792079226743093161678250356350252351545394189247719611101126992283185635385489120395587577422655978544382842980458728339619507492639258022985935844972767223269678326018683320971226230571284985794638259716040881198659969454690950681283691618099411462936254661408932372325602612221112751417219784968653917757160451349233460159514918801915037542944207806694919063477742469423302225911119103068877312482379883122168710894278219614612495611446172128721948846882394479274876487544846291382610883164863288036090228266047271570190334954857716807154798971065609773763209327806301691981118969243108411637514108015514366859103532047240675950906370430003957013885172832241793428437436427769837291570101621093287791335345882898699247779536273112392687045541622511261369018485648760711669445917990225621909438178292917207664354489774469743661057881181868608292263643937277693973958537283584770691745860035751145257446217860241382824947258688873114305983333519619928129005534192615058496959054034439252460396994040482061892592292140717383704613091998405644945100194998118907883996918644526388752787946016374942226496876850023362852759098193399064417486849564117765288392160762614505320357726545758896469677058057002135779267587304982112109737129841619451312372457944003917389393809088607214525968678974814297510490270879044176812962101269775180848892162503699854660204698693102092354584740941095760307574485540531894601660503480901542819210048849128913605028224913144497840351998191230174269656158464462786199117368570030880860881058021760627327660326396752564907469935936266953943103707304791239314525307801465188016025773198140705012912953892130375557703663339036481071098356474723253810931529728233426713144482148878886642567554420994885781976997178598494899994988976709401164752287200709212605012417665334313786691118655857920246636740134770810131582935375091306889875531678794650462064095741680147954917386894701119969554477342748435249004727197622492465880746499497931835545411881679981758555425291675924525642819225772819315120400285402026813666392157145085463212115657827331055530579945185173275496281174096408403687288864364843057058273650044348900511797353111373546800418624568303695198569530338225392095740390575601958728101943937586727164077164634437422637050911670373260167627575040235017405747415117709761407953116395548785020299048752099109726105161836964937259182738499118668177311309782099903848697464810163759737054376592095264874042652339253878454862539715421224778970863982440628141028986530582803361469139225671639686430599846765642009192241204438171466600462027356253434170710854414323437764787380193395507601691517054621621195727421397332987146103529835380981477168072324447907211893710583482158823482397079815394849081002979643536535230909581192727151950324397844591662272552413022713169491781803845886322971553440984868788518287564176098759948137128055068955181378099876961566539197790068651389868649214540029656622568356473653067856061095170714576401590536520304006906533340778455926791615849954670171983250336453611708771900919091856081522750413538047754217367692952785729436064049791763556889106738379156468294687369319841443445642773823606948519445458680779702205033678915106729545193135207084068446401529924267927233954786201315074196982421658116770761654823967887504906345624802274208680443982504737804896227580001932783135602448421660236691912309284833918285402027250918085186110947367323487523297200719504676806091623186593618296896374161158752275360152392496415514056882478886744325645777902505905446622600195809296157921640536141643117936508829217218621092626956726338799962496157272022972270988290174780941517981139851178220480078663686341587713697267029360848519418019064031402971795386533463447470638987499072400249707868969172882537807010312530820246713750300736584659848016948668994572942399218833874769961402615811602023154550776855029941955605268384258784474003604797200767407650751350925823629131023679224196715227215542775890538642921250095772483189787507344054548536407434982840867808946619360953329107850966210444990235047501226688711540774272242461853831556831496955402997396861778336621572544477259816565005082245287484261253952775508986411773946052783988036173370102418787443937510688134815152346975133651178017091957961572898672773586910090736627095475737785453387881516447414870906218755364779345682654819473017454236472627208806269587050381527379926407640738167910442964309591711290795146484176200449936097568990987470931737742990604466758729480527285478725879038042912219436339576471120000734018821017405127372388525111633095864369772159734472278315158764372935205450118417714476993796082748173872757684239080596514237768199832344426904608578942090688073253073483051758375853300907922377892378267102996594394094928768608045052577051542523545829776172714494655775015374653289311615333037778764323493476477462915755713766752622314331354260208261815847554943641936404296481154550087595988753746246347120744794793823651539872542612796438979371051300337195869228874231476517336231710901162612706282016650538289503606966430044641941341640208248559281690589461685872644815852910043217864080216813761364734132858732749126504082012072075044195231855653556620655591253851408360288566511530418417160666537131115708955200180975029828878952623922500531619617667027890736464674794920736675586741367795761765643893166789906822390795080919286462654720887544235817816499225838028217816248564905388920244498375765998347823166033447190936906634333598979957545890736322308263702129295907696760392965664206088537325292704692200195170595542614121464416863433576582804162624557492197910632123146710657971031778858153564985679845059382903699115190837269943760941123538988563941262814252458799275075683049065012236754489749360921369321614597823757470313816511467709489966579487964628539934330260780851737142799914086585436956728208572047943943235533589957621878821001972733109193713979341084605838349259962311119000716147956994470132896179705756341976878632868651891529174195227284501557623383154140781624818564072579317710894588781951672801336093434811351161178262061040435457152763493584607632166650197155584958299228508420174997219283426834949941285700771867183084127094728777708239860221581151341553574193173160936545654773416288540290956380793475639638663705065961739445423582988169094342738227742029590394455090110936937503018573601623277477952428112568558000443665530012942073704821974343163710468885042667187291433448562938427642617811788990521550884300120422699448891402375573795983541076627824441876115507687179036982373688478930543599039734219899866980531461229083388054933138654582844778033313389084679098926943595093335673190010230826453791042778150737957772006161072423519360058278741995096731574307308332479388884982258329260769773720917905895882878610031192025274517394660296126162040180170362702196611651819398321761620724501901314009319170252879803090071907169350538360100553994661289929911468490273121073083372373130538641555731170067707760876381012681491071025801434277073931875417231657968719134664913698906077902901867514052084429059527026854385867239810707161564972674151598393916569330545028717468835373644507655056387561697522618176355929059217574512181039907035812897005187409245132222400443488660639843609355450969710447538795268409963933113391615851911555790598576748934537280144389169427449405197897637967159062200269481412331571102497555353000417965347354538294421097163735654590158626319703160010662243978777807328339874373862685977910274109536006723302205665964581859081669941178729508889955431900334611471299800493146689550687422889120825867010373088637259108597388281885385362269216566643100825526863380756055559002907843015655432241447531874201710411440731845775515405971670343940074165227387381618916219975197545196168848820366127213655177116718052893887670837686892157699735711890559588766959413923535666556177431676010831432361816022619306330569717321321081272727291963260312435099484495743938408673247807057162612244868738984945098772472054760781314469880534695993529257365086958065956699027011408268328466931767572167173479331375649346949418633210854348019211609564843307612994116891041588833517289441531201505710846907276809369794609958278955477827556313599435118177639614190285328517434957833095217579936338274140078702306475097833899406680078756246606222305565948680677233233229907816542974198980042913773505630518760714944936045991650576004675410385849325470266172477365932422549165745266331590284744634615592373806744746041845789312321739138973459225735304639091404400846783342555908349771382201363267353664095920142438571737936193224978398780011426856209793650128867540842887519983687963458781988460943702563629413050824713924627549107951664365723776309160004868401047872768572609567487674214731794250891868598888172547743672967264004778679623690398049676690817838479215868982751969198601040673176632207018346295682276422587820237144569103073840177083178637139110883920593889448898219039619262361371370779931691973716622719612835347860102523846085364669794803816848595751377039836632230737884693008671744311290458362898526975951790629335539993009086838167273254574975797810064641000001756460508109743541141362892610032695491158056288785868515163135837191206778668957290795240149044564600077249549528931208429849047132654009262959258145423817403995212331734985542096072235740469309826660645002383543712300365165398220867452561969908474731857875250530401857324899262587818548834496530963201021161524718521658322047160998011749261179479410267604970793840046360973688596498376922029861125937671526074044283006627139064363842088682458395554658910452710780969670679812571514967305950990661189734467225447146849478364331868353051896505266868409929042708783059048680387266532876777571077409982918097605111842876552077768142021833723384761885318059022776911996231690113248082292693294247867845896273438697234723261037990947913454801035412250008467344692164533230063738794831022313174265468450485408470947967068579543314261186991946787265066630357548720913631188922717932397457709910597052486929369827193049877412049542809772866099992376637918212745943583251009128518088362105750667070227749303032281470871190637539042528735059615861801506969725082082755527638973613604659520541432777787983523187713070040564970985943490078234986460288048830685889733727526793796691076283067375005214116364070247182684425175604475020150933948255970751278718182117488193080578824315390135541550964336105955584628730148478641410724185056492931389616056493927710750368987080449609709812315565471888928626340799899015863528433905697305766424392482580685684972277101002501981318695374087041154673204042038075163225531594771845963521326320614987868145232225493973596314182841614845229435511810382521037748025153446874306968656319391715398241218123004952872074745247791161264127116138120899288334655798638288267845137978422363086731359350715875542722499316041385328101616522579501648747726950130469632875969116355967037726240482409772212116498785264977707420704563771175611556804910849278416315906980728074528851022694046051239352659752821899332704520011138464356375025422417607124446693020837878367523288652876578915205579214190124842373604291601664905451322735381071407661628991791916658094301547737199114153333925591066730882657155317548418349156707619717930794954083707602656504861774958490646473943112944013251452452846994363345902398600560347267246181610736257648549386190260412073974635935695513954793489556006193287791564521931703831597570967653214112172404963792826261018958489885244210917073480032777350765480727203846126084872729974082446062391991248830504574020510988915824479103598034010891173491582892259104784896508713173246026675010627730707380061510731450510232834779551195011597973961934214762850974889947583332283745519532187717335297148835643218593276322268799838062238809137988937888643542279409646786188166982781119187137097437854659356616711617176138496477080051295326564439491295780490364813516702327504085052742513915414167492461340118470416583749003557332501728068719908341211289672292543406651851884329346799352806125064537892820508833528396662888905875570837610803461606330319687523644049977590200800411778262084618023175348484213037342234946253186288188639872845701539438866138092744104353772630274434920590185827676865357276607521020882253400861069438576197963110439267765686010901319834818535779230933344982048765885804764849567998197275139818937485469910678192423808135177774972358393650199964574960932405511244725860169499216438933426647147660814433475376621487542127004445448496208444530161907749866960638836441946501369732066853701550767012083894570639492784414113614646181528142319099285266283970083867399212383180408983807474502656348624436600220356005170555517207856970194709164427274641723614185202697922757869971614590014333699990635389588199555860550441259624592483155743434468619561100986964782578566444879983293415911692596560552357555851632341840044463562296177764882916851355096983711209300717452088997138081158118124027534765101730461089290682525159141099065713960272145079288022164733048684351076522325183946794721069423891425159670573769569434439365285560733102156295282048801009485331228130875748873332433674116430305383774124317304865220457242219997544594772084177262230990959007589607234075611312159695968021003023469138445831179881545701051924216044033340466084739699094887352980460247274431640197514775854391946868228783620845142064833238638880411804655760376421114824052871888992636384671696140235537736765774514822073894896732806073245286733227339893258687478903467932213332713185270662523695170569576937839764445429809506742772525112900961723347826743652712664405404487980779293137712990625433433095032493160852203122999220180692956403118156688033268836460368674233518244423576517891866149711600428057237754916643290565269376539431703103450019751792179120931351963392440957445948739115506544749802988892101456144434344067550855732410762458049351207726851955258071805759310990083588736024629802938192992229966300576300586428916322248074390656506284329724634875305036254896666831575672155003573626405688008311968642492138347072580810979771532995443683383236559367156655747984114888996187429313216412106207673161090062416546593723574655051589427300181164272473433207970650866961011986501828264739289736937969763991764242288309893277076301441437521109540815626038957796318489437776651497071000809062521707457608207153480270344523729235632479063085585266272072928753114448547652013288063592409590857305398031821153376596820593185905947402827182953492668884229142723725694918020871000105844879263029727803265043581372974280118962862197566699674650556382471085853871906345242933337115178845466489803798545019249881738669479566070287247092352385716440072569346095954582830043407100127981552535970886296354814215071367638991807425657890689288411384510309809050131453127784310569213836892337442128735989998326037386476797185062802306369256376634114046660791903776956268054348507732896093453201545805727155081485365018933231167875266975068013216164397025229381192279783640320131387890612040974105117083645046542741471014919480046566123184971620443855328231606903859538322198420884508669304542503380459142625842805186387533694666134034040612629693673871066180463727727543009071896934352316640178326019113172949845016974523959836200939277729843307563664671268447965461048958092217664568390354715469262441040203266817490280256608126916918814279660218258081170763678443171108453643762639580562763600813113386102508980407036499079164342030464796186438429137141621819805761446242982637207166830234212609063420481013372314107019918738483512023165999277625144117645833638554756903335832875345564342553978113519405925040169613738012246292897932494272501251757612778072876184739764278144221907624976187751645213533524952938706288566553697227402137303393124544828080670606795452755511856672622196163083305451729587926067862325890491274391782590853800814281157861469829504892497268698195109103548550115082918862400032566320060898393820310575691285314489650472958228316340709016634773208039362141799652223969648802812949438816423680878856382970145998708170296820876867016881047758995940365141160117073046769340371488712190008061391452043863684159292206741784107208008483118613309198581752241431689964499559602233501200315386957007076528237099384452086307267298165464989871714028469521237753821138566048159476383509202529457257742156980896728429161867761241318435878385906488394574474239613431911415433423533940029655280630536445105220962518339152514130187939050142932583112650190241998772424999320247837869022675388199251712275863728619698591829156068955648205180497103286250722787322793560271870406056653060753602980250494647928211607951633702603953891366856390326881035572890667476519808850485854925319119041123754605435094695697237836920807620204646874358341975258756251296812441378485643425368073704416729936097712603963314085388307052418365578336164863394792481398597870211279735225032309462457938962054144742493472029905059414276544000130197410477992914192956570893020374231242770060183585352934122819334155556604569850807996848513689889775008685843488558896069652116927860203533059926136805882884631327368965429992899596859010568493260268028898305646588061461414326880171584527402087681594220222905465948958320994227171721433835383505034201692578914583384660522750403063379083397032841927414498870891309654976851203914318650369551951197717881598285721049025469727934408692898475260052196048591784554844313139506368320091517197884191627734480241057490694141612015492244188549388789084259115141296204758415175996809040226277997258588890160340120456211551798659526630261566201438846599463059314920994860047336693469863601533941462844548136059258586868185037366333296523881997428298434279895291314522617731331478834721402183231807270906695372687398498936397096605804724324817300071453850224463832856440878399758881071177575842536315460006071642917561110573901522568162115847826799418654761511788895846397830247276806221898593056765793059436175258118988178666566025742768363597558125480937781274223299777590394304950302936608881224882502858256759445745679105380835584974966836176183444712141606483372290553533363940274852789265943865487562219741563661065193022061034445154611733895500649520027083431234903062636629529707268043753835278790336406792784016723443544507580286720637625902635467948934429184656351736423460869820764404260974450257260548174698225806277551153177873648577588295872717579620973033848839348048131405281216704235728812566828629850143130226446587755550257975753203298511805615087303529649927862841948418471643431896152539423468102404675806670081793871706767208557283874757952010900765308523921510476512981648733816127752607651098322422539049162611632683878072435756651327841832318632811054164161423991937958610384630661972001538081176369481458312353456793285813036281306019944009499477617604987611719208789286405318826300250440840890081297635354515907851708409944109509904492370771310441263763976957950750730805626161892206170990618222891943100094752774393943696690018295383370373659120011855142032971488482168510586316125842968670354492309061721310935808015830872518017914636915632409175673571418792671282260335208995303272795357215400928214765128341590755597006479408121197088718489564436600617178674508005300736021389450290287309676330003911644280568139910303802336454247034496540503830287589649061996723684538894274729575273436793753268430847045573082450398006481239063782497492348832069435110656071558829568154036172284310607136727453998303802874319302706433354535146813086709011408486449498189657183155464586870109226270333257047981362295368158617659071382517621761176419477224191107532700160579584181166172609889495710500042154215854287917165553335305125631501149014766477984404589711191741034097367676781874378219811165084129989617426299878641191243011812081704515119184878397884700619368327938742235020918036880203958518068998807788728036094681219290944625811994114222736179098516445309697670251484693490950311676038019348102127754439417048978438429246923327846543591184895732547895640055024516938495925432714038925627242338920210009564712980509743716803743902151783493730554768630068357552455832734244373443160212894847484612532796311173032754638851812051010112258659943128667361032841438114413196637669737019002623195848663673700405868261919015121226598394334313722953236309818551958743449261726252408767747684781640308624732898452086459265117538210847563999873660106793630000831709396423637301909181588737005716116639164564961475449490725130022823421734241097053095674591724113282346520918534357725679904532842558740198226279583959967513598999224509689521653115698573344097129599575580575864937807815567778334240448581503329056960500775348057900424258901150629547254563918758889941511695038754670806651415736941234810739072130833824371301364896772999458532862844438053520199935612292029682199899899366364660358780784231272367801421592522700619201796779646462851640982385064536186279089130252723400104124977558637774578834335703199412618826156171529678916726031309648247074096743048878473434014479566440408952128765953279830604847844498851501119719303833396001534733303911057338644920606545740965775000842225700339643690084906808160771003552063376072240697186621543474592006581492361889269773875954675423778695136718295667242685200308550108662976841955693020609419857629044551049700743878181998583065951748711275189912165375718068442965725262209542044922833956039847218480902725463235795825913917901091507932906901585657420546491220308934317244420042140056596480003942151745837253118272847376512096262733804717242630879989091336604925553813601388594305327607038524510741234220446973776021439096711792030057371551709700053625951313927959115889779295610685338387221140350044135428192436143289713644119602803128121274900881236307149278166648674381183789190091645626671773422229144763130869681718206111739698628013695806250101621718721894839922605873266317386699694803546250504890580534365078602387320453767106115133893128042604280217812352309590201596594326719609590833456334955423795533099811132921122894145074096106962732970669243144141871953788170226238898177824956631482033654505388254101201169544819921029331107887685214269046719011685847912360345881200949884338815161563182092325903029787978724654697245480024043618555993038033969033481798904831832310931276700275939940845554377791848332055091934625185454682452698101588636348928291057188335412306308922609311052149943388731713370471641568513374193109749425961356386428893596654732668223291563272617484827530553841979860489652520670146255002571697856891679000608810660707315793049096526016227575681066908039401066716529532281087126593448732548542829023253080776613551732129395689344034391073502103729836151709448028994328302190553175932217814763533978659942580705870787481370489677956707963007349387700294375245640669461998213729384660428215040531471104101941420466230908888968034977950890047083418762629367566286194674863669523343062925060418200984726853356582597066239843351616642209755909146173435122392567600774606430511705161858383338404999387025493126309509763302023523531051009054610264089791150572992919894621007678881269955062086382924139499485884952377999316270134092361914019466833609566588495341676044557588404186430731658199124924056541258671368407619168627118443541359205518994906555505036904098054209606966002463314892727617886735367538339426501720634766594940697839707769509732279456905747244197083306555453951859837968758892124859598634415001085801392766318560247882663744989674445061331135431329024996675799309658501237981813749135885022257117243573685586438899927398589289949368310024820196129725880545669227597760228732807372833565600990270326155351679316816337945798219362267248439518777369778308202357132970563811976616766401738817309698513006438661509638329702624628746805887575914708274220911491471790589631902761451598659030594495523732379204378927127472775529341471166685899997532733921487945934429583708293674665546311309106669975727414481197089768529247979410292129704365149901970491353430778137944867949261107030342054154597952929887973144616569770447789038130595116163637186034489699412212904444134007360789223011256003190235003417994828968079359295978811081581473277768786034209567811238041702230181325090671020801071681066266753208444604140491806340010060944458451864781027356813074856464487089424173263483305243828683376066525073682409154833906173958187474323538986894286191866350405105648289398578133562230774171582232511689703854281442113096046784796519218397691650415899026832191631199597804875383810589360199584397367318109384909889042774591485625210824862681343923341485569832076512618085196842948224885741729553188173974858499809612659887240371842723655889510682578526672872542745195353419330893230674936160649152479983037785598034098641018306063646257018353101608358673462234917760865629711361237535915944650717899506936702513465074734980613851486075451318615733592311484529201129454959139047035219403348152995427537297271834336659680236982719382321147204936286569642485290098555558293859896801569310904751278751023428684723411142461127549012396035201175706491677428782499273650637740402802386056471097127155864967887082975142194215238645974972149908811810326327380730780628928966603380636588005403971579793004076554477907945182838461600252174850682331299052618757253434010938799709336569878352044194975299465644170776723903225958266380827700215814193221197292053030134233514685031673857473959362611222513166314508240216612536073245936629090620324996098835059540107774968360844497511824426941164248114766498666157577704739894508031567473142796458965716761043499321961994196422098451183601017688402619073382113063217299448138599949801959346801648208667391323317799870446269214180757413500601865826516348606582831518904870857568611721189407995805372672591052199212924117993785018165691401857523225670081910507850373719128268964577746600126505324374123668867921684522396998794553357809117741727285478349392928969276816364399113959700790360307231428946708613606513704745422841092758807888225220242963109799476742588391332906578426260435246880713200180580820435013055523402401253079165568258470706161872764588179462250336566970253211194432665525992639390165678609523885928335744591048489118083652024314668995875851022785227106309541042117365404907953676032924383551851445847178268015957034548351806405262538341031979718553204429365829710420891319052352066341320727372175326581816948607906135941963499509564769860546710597268389820690176226747108251559159575473790791326868233362171246094322509273570055426106936863370969014140635070130482044021678220941947103525700522761674379427040342752512151988660879955669734759720342442648058040771402801001623222233666419061512977583378653348284442940054068431698282722212900053873177145284473896738965106724876184180881400560713734366694124615474716784271753035767061641780782305691091421356711220780543669003032635852598419715656415105436829122160788211823837574953531058332553847134989287084191189507435510232316513697056177472963199087116067208256959182796503838577323712968021874592656549248609128301300639818800267508181523911163161425647458679138701058341546763541602880838175269765836388893150791113448250238445135006233759703864381567004697555968868406357153689766762100862255189549209583997868240468951974597079953613918212044187644346775995617482661932735255536817208161937787210437520674036962391028555141968877138593341737242952768820871698778568820794134257929084013115086270224247373105896854829854016534324547128983058508106627294454340851384172003140148551670373334947442078939199608997229722626058430717571881374680802087745840479690750140497306734798378197595774923083202876977505232453415813340911257452461405564959703408062201409621701168487563823755292939701450660560752523330970533747957819948448617349499224512072589536935728573102470212972469607863080148013939059577335309293643532123947691827481139542645114287330368741214684502392177138573059487261947230432001408805822557651108777025277475690088191189682167064005973091902406399629664203971496970972126052231656323881645011770440327707062608053107667053407348568425841295307209825684076550551485473884031729971659723532088163946411268432700243024841199183361754458062181282022878350540094178502659077983262935349152250990623726168691858359174183817346000234061363018003480628048808372556902275899348554954636631798840915744846691213183637426613995142186546783223875886152410916638733772501064821391872251047165056060549424649987473501058283648833852739673987128579789398202510875140612886190688800496960990344237105593603179939987068176654410751124196842579292586565177039420587937626638896341542109265599102685760120462159185312785117490667010221517863071570351651838184488637519619389156305455214969315707526218439296283378776785928111516806648690371326906273903608068167141722035348658576255981263366372785003723106650298196815038096288381758177405926743975238311096037641221016674885994137189098567250029136232475851900437357345007021692526638208585544177998387798697610787970854888177600189042928998612085181965659526865496437363483531137285955386936663426738682693411485736451517140354705690309257583665229286761802891989322998184074651632058525851733415928033382399750714233660321286207918848289716832540219698023852731402605862582482441955780236729686837356602386165204194839302946689831524483692577968429672490566170737282739320818650864396056658001561942465979662576702273109470566330697698314251668625867270049694363067731307450652029629654937498059369417687500549031294122511683603749748253032921626203845125254240355009938489492243911738621496694659386835980432360633476678674778385437792283590151410521419307226544988123701670734852853616528011175184150861990833671620607709664105326141163664909705978117041164594693619306737937046579170078922300936854791300101133425558812451937610434352560329428917953815120648746610566172558833294939218988432294676119047887656076609955422144653010387113356846062844441946388183865658830601666062338359077401762451104934054458031070281987639840637584078702209094246917733672159067215083847784733483512335425735907986458549211627021426794616134098671795586148452841535861614480841491508651600773700711816608657408782261556852219317724624620548448433872103967690254430239394929222791405956323446248347995448278417401098869623804630521963292468314021121193018328726991274467748994764101898357165249257550404316109754442015127582793563573836939769296914074105655153084779512838714631013447213935061626685338718941270172613988491332769294557193011441023898725458208416100826759531347311181852017513874510081721571889730135453382239837475945623083010712123379520013555651416568903134120926739177317653514106084252029527166895231275118704651684693553152641469019753240264307005080057892574162552594134757522733511772109739349380982299825557351639711216914616571508908686228161347145125361861073663408729216319902317294757331431950287851229357442164935704254184487868664552157054559315762680585937553955672513824587097411382908041687877117048124060366465323930145147648200534633885000374967666222863367899567710419696491712169731270848991997469810295585360947905053039229051537094561523879897953628914519632974048916723693487560218096207026039301514110625419741951966751894274506451758423948101725467517997351480983556848678185590399081434225395599621459339163200769811510978161873847106496453208471200825223630473920108484839247506182265089798815303128593639005068432063898087809239626910812255092795461672202842870414499644927103227109304320138389337982333802427667936961046171332213837563727431836037881384354824895418129313173262024575183829175701143743454828329683635198751670924169878734888591464001812616517888378929888186144339235944707463252714881129739004067626864953039679099597917458792078259689416748406625571416761216694572237669630211118807304740733759608086521436633459798078270092471679210048287980372717677479761336641709459037979090660404431003192681980903113042902112111225512420002667054388687309409921306725631895421845527656563342866723741351042809045228069874242052290085953793302354186104914923842883972287216305932495241146342246774055209965543926580057019099027105851154104333129195985831888522666431307877152768867592564256798010293410794995577718980848874456280461005371033402822607250687467760489267816065933171946190145445884120222093116072359713741110114409773607343687929111329138680549575952640496391970296609901427414644604340952617231322175412084521500505125424253104176496660447211286167469447622732503428504416225461969699661042056915020793270840960596135003995409375824268562394538383426241976465550513572567673033635921267603808092623903048417724392900123739739780518393897478271758837974757939022410151783773920471316431361029552403630242119574652859170264362926677624853436782652374886526369787578792481184318883254868137908702880999296560222701245321805056351354535252306168545765726737835847877772092763186369229198918941397663045688569072740077601517686903733902093572333700522463734558007085777429073832611688820996827414417966787734101683401209237638313665695602235300195373307660640635094646772976910780812410661978027390831297904121327797362312324227278630421294946174770122847129298552005028804960799847362427762865442052987395016643886736730316675960770175360002606075658089858465470993704377052273367063159666886699843416088544523828507437586952827756848368613768739316504997059471967987128915188087294033686054415072643280353879342637257423833265307035570047795683634645609744473856837406473552004341319187568086267696864205410900061928128270691926360902909503722335117364147320340091014374303844000104983106506314802514251967290975663569190863502291250668576588552711417893798981197037801649839712968215574484632372317105340563590617997482701975877946925777120752532874709593701166599611350462714292540223715446670272787505419854520073271654257489264480658013962953264759915969073347028781104834386455147843534073614395297321167131628291345244268593851779205504406527051659861150166120471111823847390697193704693730248323081103635131491782537661050692426571614509367195390262049595759069974947916959361270864523359827251083235730415971675063145917166812796598893089565775794496281304845653916581290053691294867538989127173107180414271210378683254898264268690177433391455166253416189446748743166416740758020540128227019852073751845214232439909291106296124252606715723310018561753693430185145425415882194248038885872662565803856670559036460097024877599255585580039307510555949693767659739828779435423798935642055948034652767515910340440767093992219231437197734315888272927548986551267473414822575138574931373825427366828114872782401692975491253703452063536591686705151309307446141183654424370824192484067586855970645690251376307793233062992579369842645911840353626571893199085673865105429120315448815397012132611517455734638749048052082495299052643065520693060801968797368571389033272573443334522267868948322958073201259057028137014517137347797585436129758658828357133084250882450876025199793467908702757703110420826040026850728387796071662032909375292939611452390917249167022161781499700132354866709168582556048967483944576973458325268123352453952349643924852029159100197848446086292652012068730288332681274409221872758559984383057198822879536027812762918587546070900326991971251936261403454918031732868666972737085557570422054525914252320613449276230218328158794222603587029986010823683884764496856263794942968771151516867748195906723326928973717675823889779824277772040736320945110530478589474043305887907141100553097209975410587791549785877983802283102775256655000134222411519636737244804372154059980271983721744036422375575648405799326913933963046157341004219403004953037016745729014602970921657050888127187879862505983562844482215435772721816443640686412592506143135104838476025520561725259709277960332109236919543267016748423493385886082168800245458892683391402481298965386545858851376211591315086362933382014222676501829698555668364693933529317332021864635400294971645916140541520797817833379255762817801348735742535129001310678879271545191655999942079780673306311733496581758323252164951155580562952482365518055565247702343636534630118823849881830721483773651102764082595206424948729540371349909833335587319850193361172361410059346932256155363591774802685715393877654817749957409882578141561509729165222618459074285748303667524316545384852275118338140037349562055945793876897213136553469944781894894890001184072127676017266819743676804891100685882485182476211816973330065204660232741724238663831919024077345242576684128957333010454014628796161452615874144774235710792664694055334512075450903329714302542106190472577609891320528653225651414218816410029835141554377549842563194677621817724430494291506787294009516310582115273396991327673609747883325371130570848376937468057373675711438477638299942378382529182974757315653082467227529942160214417506783679178062574992509730974720592208654262909673149701341367793826744195419440899639763477528918777133210766036755210270466151950818076213038771281851579337233058115029316021354127632661160463420312578984252441744792085033571592297202259229860039669796886139043930620173288510828933261298406171683930346568514828903834760262323876120323511151067321315053151936047616780826408981263709861183054648629843916312665311580058242417063324361987364702147103730725827979323249431063194197656721409080750093612887362267224759484893752566648050549685209373452533633093750048330448488101911112880226995037344595168633489866258342795763383863249599761002218259469899460473420050659089412583461753418034168760307152110277623716414658516779320601704317566730650179284777929837947448834020760173542294631484239872922308642931336242775394057187961277527819454479767889918142880541423339646614152055627084155773168729447806444101174587200600717049959242577448280196878353451899726256280404361317573916906256957966361152874612446326078088616473269131906869575627376087550438941892838769586906494089194302754710945359763367890834073369561816765078822659153413831754771602732786919361945526823233366804213006731831303414737084632602754793624545512293074287031812567044455298704769753096995447852040144120951012632578222990453233840218683193181002054892390686240587748592972807854226565753770751304126095940891225303321792194519157532886816184395776536953536956223738619445830945872559886658924615599242182448109056251240360838074495568555930967900947050286995087655580104474866705449625553980483912228576186308988503582799292206859694123853818102653745734542357127711700244461392581507662681634841285034250777901097766165053857783166093716713131547626437674018836646889036607694178669340507859908233567768268522080628972921926520725138629259704522830590380954488446667368711222943080148517126787684724652025375736560638463644877119914002720365578243642485832852908859138243703440820216560165022948308465854889049132100939705486254227356179513328872654263955896699727264229377548859169272941535481455792262859278161187290636565587884141001365725002207475468858480718926639954720118249528740474226058206590600660003961510715683421047450355227795979969202311077157680566285254341237565682159588184706627440517688008616002985402982550398641906444361681527935083352415347887687983594585402493203817882159131859807532024955341556094537961834518828183733021286034470067729210593395057616142032945477019333753756546052866677738919941836862713376518316253797959520736140844108709858157909893638851558935632886831420256044777018229717446991549202984516995494712158689768091678984856877701344343748143973322918149465075324334457924277015743060408154585125239598742008456757844705407786562014427417577008541644747954385541125516917990718104012789199926544221432683701799568906717669318948412999895115149430245391111962805170493820811316412151540753935567732289897108650906180475623193034533430799429429340852748790288785033437568559036588423850624901538980185602080308196089565065840442194940215616580064367131711852915612106923432844095148366760700843840123223876645450515434060081239509570909146340709968527389793870052848885574691555415862274903302531286196984700448999832499245412711260660425082677787424027627445523955948533281794950310134755377977210197819556989045510028339557588971208120039581254114962571661147174235285773562437247722367599923232263273975019794711929407775216692944417109487537755687387686024775581864534622252068132796152468154429552841633948349953692226335369427100773446523867232159068608213113430088486162252297546805999059790844154525666314471496482181908284330983307359494959686543078127335540167199592498849081538906303588001467729517359049125276394226441136322877210065132994228304290381971489773988613741077118577314647519917177323192349948560998763040341613191284351262460135074364424093279308808996444325493289799492272281422819734319487579152104014187425762049833453649334522805808850889686959931997057038110444795163123898347934335218967603340554829078604567706645731308687277048575157459520134481105763981072737355341064772705887060957739624142153393148733014269324979315209159900350451535839550103492351070012286488441898935437024781744333896217119564821552508968797821960062531442458874141406443668681550106042527392201361242726899448863721207686345631950045380533453195694830829049619056084024848090618293461654012363589586955898585685895840804875300665603146611601247344438653968909251357685441659658480001755236675299181958662949608192278238906076071524468794288527568944887224644774412196403828430904946813167354074380558465245830387408625143457932130040515297845166756339143527465848960402242311666663639473170822674718446029504902998056052546629133291000598016374319271217217534182515156708950114298681444149333609011344886330091043819421586989565857184005153101949083416027529324905674103630647452630089219058415555316816383068965194992419433071122216385994333821674301876877570030331656369190080845965462761361287495465459090172488117739090001258829159695004026584113003282303351455755620335334361235844835717454293876808904814446704030391364531256716135279970043669153515628538753197941687905076987107843122150690644575414898730243912616866784908445179400685677137672636291728222197884709341337723794597491545386301210562812904608667392471617453243573028219702287068028358455266811393398716111031711769972676806745090011063322596391684673960363306329823635727912090804881908118632395364266417679805170501004774153639275445430116518018227573679521307831241318434563936404185745074007945803350791573967334094387240290117175783821581192195227057463137948696811477723315906490471977909787767398788272307705122580556762446650475860713290883410523484790247179911397343004127631087449229290850898356153734149864320800863455235793819353672708580318517662925253217644214420748340434643536090611012979032999829921628733441266861183938540606753941208376648906155663173561827528653862055240852006358950518508051257002807499200287603236819197099723561628615609757656947227985601334674807685708025503260443150384861029135590989060488340107432158175920451489322821805579831672361016983849079569112244251793789713418192246495850947439282020424517684617885630304397109323914604730883770620549158233681017547229252753517365947863525498444695488900153437375511136217381125356052418049705831968534094864209058964326010166329836871517154040042984056385861520185944970579605172255575206438544552882257278920038519135053560881294316547184895759851142879438741572731248361717863179928181616039695930127541798829942754367127918242236979788404737545917036954770839829210922669427388119421024639142123171092413358192162819419976241483860544716839964649094118658756520699859376874990790324354397576229526268499957281678680512016143324285332622004372170238010127964380171653307778178004464153374957470657292859674449168076368308925831155492817538859889782051200115788919745474982860455293114697562526012775055515874982897067316847594325984005577819631061327187033667072909361004887343844498249300066705169683776337702836688650503776478577998800870981877138059286239854945304257336672880269173835175864854497812440531667548285070961384306892728113106219240529613899392989853329232882940565361540455552074532094331625892007567692609879747267486911657375944140442899997043569952224952712343440567727115040332435738971346271316140518451977701013010209896348569107338327247974770899899625146721952536336651769097240119407142728047936104630066227836849029173803255212680693804263325592533455613995138949520373691397754460605791725422670124242540920421799568993802020272754547147597523233109555026585675394835885625229162844822930928113368958919430486042744430526171551820029066921104519218630745872209060015192783646872119392092519349603027465482006126890928416012415306827935606717726100411936255328222143372934082546854359672139247561604725618591194447343921290714157332646506969670680206351829301445166555633896716507063015398253577857438667049941763403156219682862655772175408984967213317498536372500422603082996224987000472934655313901135907436113282048774815908871712776018637938648043998780003833932070482742270971863159717879717302307390806859794922305780319332064460365314631081248201949865533544961269035586467722742236230171592624812325546163917695416000597668652995776834176855054260007812466587358853748302564051670788265552249961592400962383151426605297163071130168073190961006958809212380216635042120441280673305478456313014697440959010691722559198200047700517950129093285021524563703719959803765957296216735189890492020952357223211406920006908842969796312190886410044340428281769237402431476010572221212187619798518485259221913552882320697270752669036584075706017130156798222142977937927246691357968565949583694589533879669296044682035849976272205015720330218143064917497464767670804481418690520019016946860056254837777802396005049129154794975657858078386760678907202349563756735300788834287251944166602147680774196237742350907138366243951575133524229523033021299604682902817497428087896276042782133082361748855911694706263123517772170101805507631950132373529756816464630544832049736340227253958960043082133623857113443640473155052565677428877949588333275021201203544250737844253351542837285013543697570504982763211592316015889833513232655495836382688571458578255653211133198049935277473903075327998161932158359375079312719584058403854424588511575743657909412554932901567664736007770661059606933044046184284434703874544510677932082619878306419831630039074986952852759182389329593171883785137159284531563953278737931218579980398343958098170458115634575691834408730666650772657745244077680367864005385383149576037291918226556265745088682570682856205585914252516082095038140133394863649516679597856648815696690838981244553359012265672655552980060686532887499462407493873014192350766516183721269546937128452675704556315155218032812048427968041694768109107763417367389408870035715737897929398908270028263125299366374229969168762675745886141518836081219373855929835297100888318743816553249432569177782495774060054074151996136752674337375160745995446175732816144233931183299483625941895467313581598469979784132636530615614453578736301061239482788267722519294155385606105171493739765041815423290190292112677860943308408324705521461225993448961311133032745255179927547719349488142014223801321661326147729203116826518396315680975139365090118899839565099972437486642949646056668574684543684365560437034776643356841404565264090672681651690777926560891909856045973573224298985449635789997721403984897966431020098199885818443074192338210294415547708523341119160405191135811412611380592807678036276496414248174319816847179644036589588615128818956287721075321174578962422299497580968744437536418050637114394387782261118663276961952612551163371559810670554339160695786092290699742662791407108149145783696050047488034574498191596694198888832889796993463411290423496175366802440447284114099900154549790157455476473372230207900542051381657019156199265345653257137560003446798096050924720429399100376422162439005287190674144792742917977302445640198882934406596437319591100124624925018726306978897954435472151248733931345895936178685361726188261514188422046369833540078308099964408680639376954381729606968450621166510193277538935333270677126970710824017376021674657974721934320036283018746371583402795373632686049056038144725307686490541518689460932757384485354293156341104383703772804514722869692124117496083850829574378189642237693793336060132985215451567435473408095629718594742258740652140141171202294014817366207739592615157900373644472096806515187519290101656798807772418713274621423180589628618832027621832012451314299889110607832557380110705877811501636587553809250092181348741616129338844906734423008015909020153556919268278760555333722351435216585206854843161781537226740050416753785171721894011595390073497583956692405713572017462224572115399170432538843539037546703862275557322685384556981574271683699335594917886442990010908846096039857142872156291374124835098642246655742950010079698938584595936439061085397524254987431963922848142595933769791800539521800448976092375808782366367627522175609401483607074711536635777492638295738471675746920315001795164417990893733302361298313181120491545415529192111977139385506961222500411713663150576631982437194604383759158155165837637818897596077036312129879196125435185875578146851041623435424939355416600230250493650913008748397766584253497832571378516671726379886886476214024738871536909601072410370526588685369629779275909325815564178635914813161834678418518601712864215872897156550719097414333868327048809657910814964466126543101523594743463243855979213975873849991776724610198528941110302411064101705274555579670157355414490783569209114376046744603632718788275293097242399622858865990758470113218696633344512728143322812621407512974649959839972206996391359051765923203911559053663008445759918568695688758193929214719844261334445965062100934357185076276114925748795117958760576605838426231732833391682525564675034189674872660913955094938067855541131194783392538713024720132374280069874979574735270195514307443524513795237304570238708658981358826038085123035346373242412169575137623951526464119487658580896633068545282962195189743981655058209267854472278997013009051294455342504126641136055901703880803438259347718855621381498433911488004179711327252035838071797458921815565300181520983917930367360081948451287901919574383882296212138974876674760134427164664082375918583250966411974440554474949609326641995013277454928613519452401322942716341565233455940482505779905940700509652273106353006376732069882056217694945105235073205475418755764135154961400084609131517811368784846864559971893062508118011950662644912253583886976835760359685279312839780168937311686267435387051430023056721770907103865945503159381981965441473075035553022016379530096405132144030928763062925107474890903701103184427948406583132461774254125730557350782334847861922332867472375639038348925647133846022218160352845496448559875304946833936504574265291407384953326190057273887493579826595502933198978460210956014931617892084790353834158655698564919556951896733838446849281656115515331996538008032853196716327861986571730448901667930555438098827194508902303122065583935639928068463703272494638903724456063092446812819852295550790149980196482603970333597533527403506489544911919117330288924504473409360624176286431056477474072453693951914667357759793397517844055432487745808347272838235041937796426907948072482800191077641817676357345065631991514160420798049390687339240453177150596011689793093124764278594864845497297615874302731092434274746827929480904894619581218929186813797429185108459120515716012235472106223544292605838366516243367583142267622713439995852466328984112078628357818307894043678819793419755845503116627100010288298655981870737152289689239159077611218725324783403975458253906093253867889688256958642323867603404771906677356738613464744179302093661571980807461250519364212986023881054267986389494001709010436838995653988388023324296821908092282056197755107651855380308288456972467276814670836976263339396854097187815465161405111040749287129069065567891361434937294973420284966617890677993162451828150057499674018060083104116078492005426487252268591911407614117843358334195710182754092895029926651067592815262585993573176097362906867717695814240128266696316042147646061675442960998877295483503119121281287660716191733346631590758812377260688813192837578918984917372343802284015873827390969575695597631089926371351622265108676149559414798084914237116051713341709670418369972687588072271672978789666552700672906343762452438442959426589313964182415561890743018455655761396707185804935481235419078961548744339844163756352193260190556116409046518775017542278122531338914075187419068780696194136952931955846445510016837957343136841048460161761696540253289609559470139979960445142025261032159302864804032737098035236630895584130651914720194477102185572947614958938754967991994759379111657430142473502803292261867993430179696321906828553603629026697713384521201364752495176167508558051410527232114216290136909552422449829165762244699781003031353500468891732852940205671253265414132675291053247112241519136256634987171705275702263689813831807600163379375596652864896687013486521547464114488206002680597302385870703545412295915673226239048311016150229698239931084841989337680867745173036429442864990703955185350849814735925425462721436348346960573336144011758146904318872516839644107692516586150685950841698745826183461817810268874864515968818715778105036930721395756622299883445873167877093919734339266506407910481761884541834160144199000601818466602450311581628280415253347529139418306848643035807663961714434276551648714315769646043438653892583202766933652487258175601327545938556786500473645782125123073347457440632906538310537827524161891905331699984385195706718658221620754872442593954801735621499114584549383266443503548776901405685485195095780857518781512837956693818150843159439409866628328212257152438508523458113019127587385768073365952235864851323971115689024674946603468776449043372938782233574630974601754792942455030758965364221915639010220184855920961826030103183025236951683436700482142154984228421794347020041179073350546152043466753610882222096736328573489743607084786716982263996545700518916697820758654816926856763265985624102270943137817346767781667401720956751848708959369904251548580429582901131613383864528005804903053447348273970733003123836304102106565150437434195583270029333296394917442072312463267711017498819375958788944439193695884566455648058318208204233195968717731563669074878570438285292840558583977254082607852377094917389158664000063396309321523329642787415780335864158225723061302976704721538829855283710339606501043134050544111675880804718465211638761981745374413815198755419999154410697704441107973749808824328577903059636045905565054352958170880510194097502711136947124013762501608360628685099818463360015532107652355865221857316429890996906249172783675288721644804453770124936467326324867917870701582269844703284318359447033956956590237463948307300613404794173524191237340478157538989666176089468224034029677701372105394084158598078293277906010014228689004788497621504714769701790945856253663333956677580863751711591459195215901058091670709994138556440814197986387956354442794235951124407444900809174003812173815609334194683657717475936052690864764175315061871353898479772207436698928079407156197109843452362764701160513125275850467554755533800284963895696074163503071001418334822568043642803761101459002065312041045236650992444569385538910454617025031191874450390827947750466051405025379306100554295031783520767364585550667622519378132915595398664786531438522475476763041769569156616322166111579846775866245810196412944852749008662794259806181067985564921554745453837184458386914868176344676610270647208312064629906538664337918556853015582633038536111084994124123642388348025780558909943014308018904973100686503789601509215388220147487088673006065910479335026827244203615649001934600807085828373645425764162142421896296187086050510990882093127743162019726269438376998882553324922965897858908652806225264370625056485787038614692459038981685548396435055315599754708594340070432389803869185508245569578982516862849609409839208477100053153653274722370933252194769302984226936382908830351964216120184630763348866224709360208828001146762358609712933785288364757166587622675232300692657351377814101235540481762165622570470940296737045159651475499692004345205401627632448633853219088617695800946219958385303805058683361641787779886280479339259953281727559213324000708828062035530846223195009551576181119740872714617207060267417870973097870736950098019716186121818255299099661532126177949137121493278660301272298355275111325159533108391788803938533834470011320835157608740120538944731156124830431256807662777578551891865999649518522617100567121140887553908194242316186199656245034189096761213053918727891953918908768779490374671957018621797145711814171314363485985322410390294130152720348812797105415540170035119030777660507691721937747183441004992060670903090501573527831092572173882546161288521994888161179008248159606294339251773375033682934033932211415280357405914605414625295880359104581302484450169714967264955967114826200840533061972563071706566055492036901865019607940396229548718601319896106231620916241822633878689710392138998880989759156903700992665421371976377648989352621053381938070202834280900305958731274764003569180201503683040790709774199421800801965838316486427164886067394121425092404993721683069754785182698685863328385566610493591569772307441311546824323419573079318421621046734367570304227609595848330834781199428758554008808868760797071151654043735648079580531635600865107417446935422176356929232306398917823930858976145878710187264050996927532453627899636523513169537618134593559085815807574393444875213833673492201456586873057002687650311648851748488166326840310068537488688354772321407011966824216076075282427061918366375261734551935470437497160628538033848057471415803175149817466883155021412118782460784373429017928306389823431892029024435906375507320221815334466513912355993787560343545137253473406668273588619079124913822803684813619860205597245096390092602198311368206848270989167155741123917604622712067966436793143762765053625459803439250620765988179997201086390513687010320005643689335436126220954660427802835105863513068211334664139310593394479429566725891049010805381050929463361360455911415853495170067210284164132012044971773586434065424602379522640555083683189721857726252841107197973685075037874490035262650222236981580341177854400670182227265689142824178671725278322176447703408071452102740437577438461426153613382995529244476469767042671526105702539089685960256340272942406072061112615653444253608538884844858229286912713863460034599236101660466870689108352447177619106840545602576343362093598135405283259352557002417484890552644434589370269249891354060878130814485275764100522128938796885146022130422578026849387462603175712817227923967086378364623443829363190194006715955264132138347202103279045324336729505987396291686123012090156297560698379938461001703238612882930346020716554432935424967057550670242136814800453922588582012994654179318854706861675027944158017437426254401522086446314834636715439750663700018197394154585251559887811196625135984996582178882427098818633563938333036491733678521904568024544549695430123497673059012846368408425920316794078669069139234393862168439049992343949160175819155850467982859778252235388086932493968749928027279727025176475057657065269751092145414504312495884252831734542296468327296508556266776977849101592633108952730337944211025793841368874140641202027653835997720739608390581797201189478670823858025954481995574835780522403433161881459213219461245347996986567234495321161901307463882455742952555994393314779796978903043192410623589001639152490351778637181997023863638114259451517102455226789852282097237044661158450044125930217906606324035444192556750415218794022038482209182915328552105175243172112017680904449528119887792756945420484542849614664934445219431796348409404027595125900431215124749617194430490816364932450800898637916170074926528883882644419248593388954248089442091388949529840858341038402190792478838311039079330286150402186656396433079377653363413571321259599131862804337311009504161539759129350931665604617160593697084236027056285365014060302334168839538904784354118928516454040450790132445965750553213088230498063573397568692406767775196554115426851858360313032582668392224918289736701803868444054484310545287785883269986144900043124020050858196652129695533299947683134788447461110585310471840854368092764427983030829811264449700552957492102936026547654156808137923055959238646116415592774620236560798142366511293790420041378762674723701957550606133037078167796079815326091419911062274414304248499012906976154164977783838739125084675108891588316204673800087198172696571169817604166831574543157602840992899949319112252346825359819736439434699492954516506210909271246985396479093266671431503566212589316082712393704812471567102157103726998866810262929504752923629823262406047316362932842103815958655488733748976924319442289726778631284614657094122640312861646127570942250121714200798063116402253945933263471949345317247760360370795657674922547289920966854461571702663816995415479001288548710338918023466875521925095066920529977277608386278551337274255605354459491702533655585940171747096683349777850318072708149316709746876557632840840672917274550013163767159535036237230539829262178560431610009790156860368527084800267747124181671533675146520004120040302002642620610760041587103260060574117964221127546013180740707764753272656967058574137935165568612249542672740439368929354325756712194715501173830535834960739496953108920451256054899792171562125002114878060101485186030173496808417329868881159615555230301747202893586122570813619248758233875023885420497881603680693888676103102685983907018227335013895400627600748800889749849655595088455213960351053641380086407257841412996309221597522919545775330759123121764442088384921969991614010183459503405604167831780431202930318384246656503574950381022191259101987264855602395890332981845286624363339433476517092862069362682432037861309424691046147339991956448598584587062141536621082570690137073946046246484881708697906972963241134779991303424781764053074305897532578638629211471614546152866460516378561104746801025653883281439271959151930013842752017102674709448768365320164105537855547919199538848311285409481443713695613309559505787917263380033214074328069682439761804757568157825997699350331326566742311257288621268208662083770979264634136970039656543113039969628048812935616330457773182674409406466218065428377534755991498181027908538441928313266737347340073990423199444863205634377639686786168721623616284864401735271265861579305516273429386794828230002933077563313397099586159580765053914714036300241467976670660280040349215826832717645281629568942116777691746527910090986342412686371072412219231273136021657613326041565197849136079249066152411738867154849478689781189267115038433137567805032530572850586565647874692176439816357762438281539613668681904713274303245283244398709459301423391367849009248423004331279600055210457422178354347815733131508266878777233245200506635473203688747750414021106835607110101569941835423318001688137672937712233609014797668271850073948379498829825800051427562233827055473843300020535058950809523874268146766853990308194191974206677057211157562020889774633254106873787956795569559706116854676195953195732745185173432729484489695350939076492190832927797967754602023694632079039119096966499938855696511811704599024454006191298753196079602268206114196837572359631790667438197960927873161943165768297030708654254128128595805780280026897477984042578691292742106134201643314780018930893373028064180559786594817949609772361261980039845732795209897237632199940267353736353544696639003865688157418866242590847649932947616779472375150623432417120785942844757203050912297221888861467443204072235585653261523891997176093954052230320243056740600396218197231469201837876793472872052015194838485903826237634964303901015936519705068956538535286446171708990144945519680289775958008346028905119805805154843099180030256367230252154153812460058223500480593847473360971555228237291907603987464063662154833857216072718787595927073455237196379186287866733330689870644558556338707870079484063742092533186270451456060963533689171218262488859202294910813430359022456182542122436479302173131139985685001134535812649984698052628265268457384756660287334608753694800493708666939680316825192101215045034809958950340608201493314365654819532154825007466896302024739284252803529822555835664192225712765920194435256881756192089982938240208382114696927945115071289534877755687418419434550017547376815237365931408472836269442385967846613193775218417493796977537139765490021147693173084193910636549531679712058217651519904861390723789672010341058960240501227786821586417611032208469279982105190343523348499745075295402902012829006694918989012692397333542600293761190370768297183319276193394161069493000439322245162525125792808071944554313571873570518844096641962925357495516459440202230459463900345052937426554977080957474303397684047543620435107922868901847591313832970109914915373375822375269054584368347870763240117685579629454131335870928593485976479514820339835528676140362933683249931098902009530811904622335312494747555861750816898730337783603981951421693260835971256493019794185045368100075389788557014643982889704597797709639786181003135403178344075748361242100490836813442452121271553491396606298702284302942026554992781870292984048425723906114584658787500413013498125411323158551972317766630716385877249952175327553025114083683311454074112286863067505805370586368291011032840450618286088138128946129696039422449876654950032204775973760155484124073028553830737457217626123462671354719646634785516736722491490496118042226104662553865917503061294072778163354967748872360523806259099544640123283558256876089916732439492819476650755733300396415494973707891293620159228068035123848009218049159965912139779024636251592484105498164055903777932087255193976630760849446181576712552513033937850829420055942591280085324694305897721141458346561338966206821229533918669772839359739212868425939511476347031115534477811316747428820339068743541911055756125877901923954471132773450420344686374146281716118259341985621326330554971490152371843774051162295364325386507794979673589463833577270567472984251981007010987552757579695438468774188806156097997752059360888546484476061302135823265321621026764007550836260153063254961071749303579794705368725597896600641939392109891653528233190374155868414552774497320445107938413754371995155817031193302352044607500783830044824220549659383419209090549515738972880354065377523287523987068985555919015275397841302618492320554129249651961368932478246055326421300698152552078869241820895610193728285635720132164252505690047155711197893572135970970186260599097694202229780264999859453054404284382776035422386774606810805012594057129490410796162501699562357024118257434288578102043583374730815987588138811454997792301716251777967369717752560539249580941574509521112944379470738160339787692880497238023571165328937397855348063252307232929466629065256512809274387022905663666141119327859259441625354832628426561005125004936007321033237130409716469547517470413801117677625575905543920350990850938092001675020743115816035646787275797545389480253069969530978694299884871500535063549959812753135999233523531527781278831100669172378409521253587004545552938064176070023963639760256332561219327549981254646990665330969616239831660587499803139997185590806917917590355235734608390944221867751463181440174742383619072695525959667555191510106898204887361971500764613878517372707151897168577234435078486360249564666217128968313644385955233831262017514151688606503002038700564506900454988404495396711208385645812192314713012609230339853304621366279890686406591502808192118296535695794223636990759685850119477720258069110604815472824302346033267839373114970081860625381981302992663311655357818370439108311535201009377561787982029781459682302663538053245275237256116168734640802563959424918747212217303006786983042820646431949118881518772852060853811368807496360882629575422339179126129106716096877954391605035331708800303653332322574554356310479675568696394230681867182462859764510305496993850491945827407376490935949333775773086543414953125030770482833649011596381425788577954382085749281460446049541481792228251061763302831117718649948519392497229903703963630676797578893184880862666003371714547850360385468892763891614858297423688140546444139776518129247319167270268477938926545321140185216429032740345079891072610335424737442656398733424312601279296692881953113302477937059088373607287608403342575382407583298610574148714589520658581859645249501032476337813374874150758524743261028775465579381485595822659909542307979984773902809937316055030373105734987467125815253386601863346994728350190256644800054676236685584323024224172770192465018522847336970629556414938622664840626940891867603939798769621067866877770250552969055012097299151721133491617979253336420786944188509239453185117999248941151612206457378496089446606048828327970173072410744860901676842231206879051118831010349001287556138537096404764929391343591076157614151756587672749280521230032562899662400111675825031101280243351578452225187517531475117142400427708480446302377776902842271406424452947894332975945097141194326688847649161875048154868458702826833770924450243998865314998154540945604052121283293762471043130958276034161318309255788197331596536184172930467855201619399576185760867571926327834706950493122594939508939025084138702559181051656069409437735265060981684853170058974734852365254850934813947234990860595310621092132252797683868050202487474110024533541245867549787409688443223791838515104695026913624201134563083413560419206605913849060523550396505741634952915293674436848146972690198847056109609988178626400871484234742882096186879431970317956087583186891566963186258107211520518312699998296584174255082700938414727996748022347205612219062528945962220377244633439427741051178718551583762233536344358459300980894298440952481405083293919285287945307526200896925181022263505368519941357703109708358858530219930878935174119701579311197172007942147278326625378297495310054630987834265545331646655670733848663140353290323750657810431577343441179686854999429826988066591092731949081159453725270954149944277837395029727318176100208431085667924349107192893305341490028532954070686973837246872542054728654768416578985533882177788285972346241456641226267631293753290024625445015210168093533483547671263852833343480777930615340445070362982494901838665057137013782455939518275515299878654426282683143973347362551856290966367962586902470480510537751029975398201094107452249954028372217707758807789843235793474101452190250404637890833053673408945429064005777281991883119700114718917164897248603675830896744301921968997991474271532927520637081919363655864674421495834480824715172977185700508637620783737225323720454697346038880641615242759271871449179510160857022768823053043810644794361782071489634125244200373082488056934126733362392873240340897300159176671173587008504012219718355088775682846130097271752712374369982288017557907606225080142845983701589508746781475383593979198382504621372508589378205403841915104585071202334078967124655249517268620713457166790817943141693473139528690909801766737228004488878532221853256317820242756339515596545629011366977011024670564493613973243649869921931948525147156852323837214000769186632743876398686591069950047864867363686336426791865588115966392409789219593530563698045278579684496053736732451538432455959001953118759094805169978804547486804438574782644786346260849331544495653878224535120802256620488863027310335012000830862224414721392632776309512333848355589729525471872282191464883185171620096807034733690910617296140307060216928746916454389789894402801751001646302613064489332823349773523223294710265728219436667717860175549898292500909338348830035071437291456316410129088603687011695083789147835288883770805085877702540540983003328315408187968525073111342733436584559275844436566165695452021446224858399171890701365395195195560076729506813130242079232208176399383791616581789121849216532327816635930887267984901737062282811692562959363870422837393045578913996245471762040654874208860894552911374244553840341541149796288917604915923871093734028819948696307312494898398202414310288581831398652591546543306926692398008244535111175513197141360775180389893667228344533173587992286469915680778380035472289416425321541636668566564954322137645421203463359261935109683328261077883334138882991373232508674721588019682988234003361361371243479595997218365460595544158115330814530466515862455313853575384390845907536433068510085000220737605184802002986684777131037665904811511379882151437263291294234343809847865564512476085401521761125557189152735192329922846623128232045777392247377336619993450767924473403855101468885620568012552344099873230046322921293428591070409700331409156943366703502974365287654527601050271496599971966079393693119670896329300610146784832204937628324507520033187775861853031015292460278508343119015595261272319363636892650676316800520670546138239897036586783128089163351954439581548837126654623466960737122199829627245934966567806860505745616464056462030047530516679216301958758208158887443477165335410034324997651163293132242024992584536623282778075519991361782707661272291755041004549870579259629592168613457766686300506085956043567341834962656947052122601292450886570657564470966763019980647187264064372590851196231251527565201389075612986623963113041776909842648199044423150122546041655761563120222691530568553962430066631086413281988289897782052477466231543506839261930999122689684935521348930663030179718980616238313381112396017616508965889133469461177097190350702112030303204162842207259506922140040739874791812031502332524294249699896493400221013404030866070243617641319485177716800220446013401606158589371578979413266248631293678157073360653661903994250519655765957809042415367562267254597033251412762948532927793748950779032915680966490108611365293606038124960118550992396834679318176466269649065676103242282661126534906207027464434761773809403222396274739116741078579621093286615670842902493421320780089534256788674486101519071714234352164253459923774262891421044469134440838108477979229433992611826543741457785749396438930466776907032432931247299499964614522609640922962444943613232258730283975587982392774699721929479336219880223943691888733379214194964698690585757022552150268687964521690991267760105931095515980036544196165539307287604783060376057545888918636292422834641861192362925969073938121859318199911541033775281764346100212103275456891741941215044095740188354602883730073514637100565550042335714959572886381330110949372351417882202271054546558497965484248525631767790764253741264876823228490537182693956807287919311791723106076503417709906174038692670760924397046261809074473856787203250584915663455876556478815616395479413086177132484821592696644731199703800768595405219970925768994300945747070021837284607367616422725532060288307932588560872755928352945304037261246509901752087177532392462963644321887564222126356074808627973424865277892439366148399302474611377189900545518112115832024078692744598503855467746849564458885297999587997185636771162821705658194402816610359852623962942617377924230637176716807055546267461581996886273613748029090647470151224449431852702804621966313700529713856778541583933670584008709999677154203558530585425383931850304326081275658119441385960799604185880583391812535949659799292558986541984095493111271197690254541288479217429774731643104368337919767130910835921801855705732980925914696809581620967817532626016721108704529808389686679953158326082715719485450621380362463893909952145715469981291552953058975850261789971862750686670885000444774093491724385819020504312830183609998184041819482284407058616353150100277463864841370056413663237286832806910170132270982307322152701617023855272070915350984361472045671293580600970943760002549698887179671942324729758204585370586502389357472177182116191278983931167856312938129155415508125926791581305799821343139009078860978157479727882963119245715010702228688791885352969609899204633975848769028404291455472760740705809358911790020602061925104714661483975115594251819785792747869985850118966358794097619857541712217845394997535370989372278877938246116568469912459070581821772271785536767964936004640816450212031617858167782537872463247771113365979570254846833589553018585717211993166855308760500118563787300432077621987438897354701117571096328211097056745260205209023596060600412498367263768186108603894488188729600384640794570000600567763918046027278933416084284001432372093161852519396238441368619058927008452449071132882881992605634981132029163301089375728929119274339767715916991430657413786274646930781716232547396192105817942592459552736818477979352123838091081626213335060086872534140038402049479403362578812960342326331778566143924656245833690885880488322807588987614089772545820004419494371849803999008069876742783410280999306665657960387056873934235810018360548181582987281299359806036024026945391512146857693849413310846491594033663527154977976524125561682837739623199933966696390929186053666147717649829141473776779484773897339912336564887013928346323263783569140137317256774078021052129591019239107947436060896295686475647020825592646623177143520930579294646514591266700520408395905360576596610725058139547283731008418960758017853408218638335002306068003066256484935016812994688870386003288202601596796814178296978907586663329026640939057018665148513808005494187867340960797971755361340834719451734272718578262540675637748771436183271497618645591208655545235401694028161165673947151272853540513401734062042249242535399337132016402410507433339517933219537568559486219114558079489272739138761572223111753779670426376004297549759530789513130682854541670309544733511621918738860084181439743201016994194796461728984237638416311502951606375681642590040932925486163752155253024201338528925261985640219405785854148730556617955774901366914378519900487427952429599163792257941830769175537097324423198834596920591560350866989359758071520742749924521441155173433639319007224448530894193262655111992012062923961384464509548434230536644022744886471608306238751893295301223749823219332259387832419832245514998860634140057316801756283578272877761677465116197420516900626043165054546924383690758476827200960370843414542230673652925432282588259840147878616906025425346691576954118439387696316340991620920946487722807726452437418887679582605325315874792151724580232003245626567955873321084207584753631499467755915446430648292406461526583984497047130993278784222877756388393761505842976283865391269358218944787570870107546997469791190572765088207463484871715523992499482173201920326935694741254720562200357657013340503969991540706620450905253935907937357579471388273257209034430023149449056764984615885517768428187096895101739884614116373823885605477828051375539095131095648212820772126232373590015698444841755939413177040637694810446823842946199036378759794447587641675791446074288248257417961610416181793705725657370785363466094825995917794156692169538527730785057312603103267574184922553909594073275748905665507547374697538855441695343687202598028095370464970056969928043751888029174765837088225617888942106199399056771752815722978571546274793948471089845868195196467343517682015866993133984953011855743696268608008784352211702357934869088453537754288293533315334320306880759575014048939635235022112675651615014830058076977322698893197697775672773590833923695212676867014233265733274066744552320285539536129246871136773880515271616967324789491397480825427827234774382892404629408507612562460286712457434315901243745173502507076366002594473263219751835784977410360339253740866429108707968781734086852284222353981144840253499594120404628415354512904500955895017726191947701402921756302254288962751618500891205946733080667479299814116548314882054822103115324464175940852905835521859913036011411821874266314265137626422841155554355015018551605277014476536739637107274225810336372005430864114323418155036236385890270065870921057748140261158491498459044187327883064894764273846490524817050002957675639425660697100839929536321075167647074646007805931812505556638154219828440718541827906380034140823655750401564341267607015073503669045261817841589142869333115970951134393253748801089645911192006515229985092046467853402945120405477889810548260250453500817951901271077266458211681661967411969954784211962900250545100839062423557775190117197798986788730096881297596023941110819065973824949748948373582279035260744962431044210269755148214457789733319053458979196764014780846734679291126174988517644499988462474239678969883121686503099653419101323174381455136481819626643092255996134996266747439695390088815759729839590619916944494951207470124280481653740211705768825160803036578495228440495129301170238126332572997482877457496041935889915741945050673514939273005167115506628632226259716078738094517957768018254828056243817511390085911198786170706750744709842301541095747562092275089450305265861189004667002105296940197759637363010859265529838135026261786240584410812368537830121651021280571661061562446682422664176425210923270269558576752530398262520646115058941295139906050966610883962104245997427563552067617830661264619557820341665800760265680838941941566875652951766219410486574517184973778210001388539943045935233944515383642853044167061047602121788435568524805748187093502492385345749591084169674142309536748335891796309621893565241146680150164514351534352339292858046268289116192528049334012849455188086550799358530742311281407984640954033446034211335372999097389859569840213895019493404681675862171751747065354411966347802916313363973221970563532551948209882495335900575934501048275892493022884840036519386374276778252849869748856327915921649260964250210522109321582757348488605976833995419691479685625649750166245985142577461829638333521091455147125521888733866372788265731335995362598882241519198657865885109987211242095476776750724908672351909051176024371654077838523283366978367433925808271197313111028187042530864145461359948163076383385600748921095124805081068648104175142091321930397540010050441181014947162636709351561366728973664598646321074182784037910797204789611025552268780898995306572565370350531114848047974253181490335015259549487306157584973512667482757838982756498086544864003317090327521260025213556423811816385047257932657433685193494830424500379776196629781322998302208380346517476070523863238450158706208137270387711646107369597707176593672439071642235437864675902969955807424661084482878548548446518613594029708769899685746142276300276273601891524787787457487454115234302670375219097733316430306685288616822085154198016380380159583306856109255121745568287330169857862434326216044838092019112256448340987832991768011125481998660527279994391639525952648954541029583778447538476664504410342753957701957580165086201323913068803227347771950491647516815590081840231343462994469837300092752946410691789139058235780350143190208883344316643496968945182748658217513241987723515748657290037467263363359422108602698774268873880042738450023540544282831184514135494710864227784485930136719445995857973234784010341764527858834787992121687388049465440133001236828909686714660938937161366332494083803980394027702408799547971336111675593288595832573519875239574034812895595485600740100593043141045463128928865224129306868488967434125323155159886756366767893382368372200784230426481572747065630312294658860186872757003552025433626307759505176893046881185795079230373511276003068369504400400017645007679962368974273260464619513479359905916706844938246440053632209242244514892725024277630449790710647663627452474823511887210151632960285221222732835396093571204786104759513466723085894849967771564892603256535608412264809581747187138689207477090733198456375307166297626529389779214515246278587328661211752839432837949160861603844527097882556199512030508097168210506371819919267523239840932754930116422428120270678970207509768469313848194647499556880317924662588748417178220696998173412517189716134742598132070625646034501193975671325076291492175728848044857068623335258997928495666525964459982659964155431976137332988886516628155495336874431825143295063613341044787561360530640780674278332842580508596060794521000207857380376262214642558851280811828057964570776584033351407417940252366838116232498973732787448614948973817624312386507075193938501764867972988838105723223818730794633942609509462919474307869031361022983496917668281062813978612031904462193044730886660746464850335664587979390293737543169961559395287084443711295750082382270583008659647559737395682850990591507590226817488868302855375282362861469113424827393028571504050361500373780612955354923365278652994850619443672657987193826789429752399168059137283724240635781450077045560812975110609247964035000265667076299771594075489053600666603568376980308232129301752007665884067847390524695553829606150705706601105334139917745086608094170965770237689053301541522155977999413274044936637093941083624452718224473067467305017249106296452249748990636631396647501153851881890806856517029382037751295562192823242207544034856039741857623329041398704327704898302316664806150347879443532262016065025443367559023230937606250058528016027922042693525420543713083925292925420778377097022610262582317706737863720411516157594049410007904190067485299787156934725713434008568924158498128807677427694492733093779891440468637252365244004575726199439096961163024867828563686494206041765186964634581973884462332561248543941125821138018668073008822141716559861711110180653354373193418831301283377477664011895070147967197648159001618093479650212204075467940372132890765447262271614856857584140565055618511610277131514146956548841712979687769361899144014300884164924071579468281775079443615510794370801754572844496900823472696570209844367971337496497430346159993716976592858562038414485297537407335676594497245904750794936595103683170114785202253956522203043828383575354862899612905595812994405701887303295045954451263520427602294095638137888890108160063757136220317677121267112193892027366354356631954774460798473224585918174499409224378541088715912806951874621901324776765802085088378973934190652373067080791573655217986939914100461410657206776450314736469318107670082636752249029670082792868706617113485450043913879496107896310141147595311418475037861779924691190169335352265844241003585596217541284843576712495276439970359871048222278849508842579318918986233685309695294730249607936007264291292673986167355136306047477741912068857269645255514048397569060517205062468686499166935594825307304289117488725025992358354160802675857423924185939641219083837198668821652919225409584888089379732491093423774959756088865556473865707229329801209766791207959094110377962897076159498337706858342323206283667142123436125952703212786790641423734750684065490776444000236039086573197694222638776760761777932244453457497219337259888290041202019385471148089671394624839715730190380598927516427564940026575569739319946474651452185384864834940795484533624939213996872000628524233644403501754034261467666530301013375960344132033107028037762745764350655880774358243104771156095838431893736551028284046224461020813998991993692383727937864277454231554497238335880459232332520431099404149620296131353688505584156086670750252447711226169996272829539831997690396682700436002218428064352904266561273051175309419293487361541085563160534158953686448619715464017101070372189321146264066334466578821478856173181673289408003019385551962059923304980529367436165769479430569386484424690039414396782774978830494238477844873548797447844358377721730095515397905159159785328503833408143588374334833312329303618694757097239782210183512158914544467038796612407927499391999793125223480504952932886070725763420063214639129728662894850641607626694894318701837834455683292155704027532766644001567830342507862698035579155763556748111688994022719043416936286473355363033439187366139035364608808698127681900226448719886696295163976680717729023515669667506781995543540012179296269233448330249257040988182730868225172328886919641272321800628951399258744533717889841073451081489368414065902588864754122789753385551459650998082641035951857440554747050470929064026155964690626209451177037646612052469686647508040312376071286431016548760333701483529913442960417841279133512381787827161404164101926632023936517005937843514023883912652740256004342525905852971785777066594369866947982315855894523643539515022081324954064641978491523438797654691693536284544655707068245935869165745119861254789325564344117310887574930848800932733058347649217455546282778996741364782254765022450627706349695970783759446764352247482153207599411536571456049906679277103148277968986406764118758860869515242089873232023139125626081975956805074838472939182652836720955626734158412507786015275712791235533119501225295269508826560422926309327109051951960318285526041423789771215956681808690587888211259094660249239460076706359560507446491750250813383351795885709546471692790863703335641960912610828901495300932655175088953245176201541619744988107589970032755684299115813225000267474314096513085400893975960398167790417525565022885888091714048437569703086770880850766197167398913038557053957833484839388581342160547587081377356642599657594287382957835438227562628765283857237030748907298420388490178461223481863213458926762704657858401741869483766556848498184531673284827113229329137340596056718180898542492133933226567908178240201347391568863126592830335399681275811081008540149389877948719450692829362955570277858040475483660400130520279572652741827584457999856730558590705221469418472018095654193097566325303561362742192243079396982357959439906115029220840366723881438775378282550082112892200210975950032608160482929110733259492303468559938817575204711219335503087590211848723950417796037294712358482452737590920641640992243306508056181788023679852739142496492014711250274432663883656801011268623268034518664660385103731434056798088778449412081877795396806961849681790576508352999399243033291468618214747327786663543495334979908029455809950501818226535604331813452968553328823695339025283570789722280541167379575350562798617725864743123484385139803324649311264476855006242600659602867754624835359524084003186314710058608667114788934403989606818959119100164302629632658802096108605632027683492518512826123948338924045885391678930413012855309987826687694697123657270625169814485638121351512147206130434653724191750535881070295733934349105597781447286340853126461405593083668685354264154425922371318291538827102988237986807440789558918157425955214738400059806982317705506688255016852765488760023003489614318016154862290920932011570497032878705000455529580328882321013997849269592796844589985069299279870506182338005421796914543142064197158572462064810545065451393075281062702168042076023515494509502055163442049215083662844882245162494428762474025123762875247902698708833452495537209624680762483516776830977571378406244030299548224359726361789499382743339201348650964610951711268552904657244282258965362058195904833903240057022491237639634826941071173791049572548307671726718871104546246290903270179235813255337993727883208174404220834726706035333689797633849380170701111941447094720283839899408270366029452252930018157705911278805303584778455643677320791794100558486564775330295841375601390516503792675047877562077816410553033625528046576955144091662856546452785480990134226753569848644737820391826251848863634969001288814928472711217236289770488278876103830253479406628082785544024712702568577050672921744490130445024109350776604337230219016672393740500135680823850068913165764789250177960725823403311767602207571566107374332866475875711156133300985694740942533701526158897712702765397102387120620200838255064343125779649852424215094117917123280353607284668993783188052736854232790917647769912095586895445530300154218170624117377384235877642952711380288236368478288205095726067401635401665997707766481834844967660374602903961152621521962181752246843430910307924843359764164533608849440366914626016882669197833382575495849766600756975787300460906737588807412146101151090238553346824551974927110934931509625921287112296232947887739603615403400350120226014627159331739418212949246816359469266316509281591381022319666874434428968677536684586072566980747131833314516512635980346293298787794329094164134626375681442878995788390082929095284511000314817022775931059325311232909126054186245434864623251646458669773970928880017062174022575019827917841485201902532075908666416118839633873219556474648978519662758282902565007323241520238166832815065464441585466767138276818514254227158758135365149194094792801707322145843556710728896818913658406808078030954991150532759873558821273205727203106305067793085076925230721345694082703627206353253679783283728732650731769132091817109017006574547748366769121398853095088356765441145989340463077246414821719896655389339899753302260627254796139378580367172904343312390865017596049615185089024973003257714710716853455265793430493624430677899677919093868385713349602695272748604959689741657018487386723393526184002210071325263494959246018323990770730430806360471528570936108258262962448415747640836653766055876154425777086412437310475409447815330001029983858421077185289800781640222913553397053538366500207741518213625021076089677123644562696041803286990227881214666114389448846230436462089472021881364577033561567414586198386602431687750190233488548534767862235807546363173326600077879084010141990902993917160364071743381240403990933961833371095767956540920277475560654519338174086352925859241452017635191262221481461586230792332154662081011544255225901581161163339885704052147721833075988076916279056602826451719034148880691515385981367902163091034088930778919786513250448849156773818372326017786009468255095551502581822784604417096237740986215362238280504783220542469560249247334334688232505396001003782829921897657264514396874284299319976938355922938873037419830373586946376773905017773535794116400895665924738907042973403493665659884708379805793442075357786849782269151290156304890875241714863293165956655997320488398953149040078788563243050493167570621794437725557171710763356754609581047815205613897931733256037662617333711797791092723970705011276491639216560108015790312863258686457352296712727248102678831843654986686295869590756896074021547319853158721775179227377199382177179728220756075103052568333959271324600892046441947541810262976020282326843021643144571619979964599466306880406841987345057885015744637320664168233604621356218478062005551500033027789274507245967187693001860758935442940222642431704142814214949248698025931166670346525437183990090437239211662989686570144846114191013668139699608906412841501316182090402907874560338476149693392339442970047625802275097151288147299545032132952671632572232267205749272391614275208610289864748728560475069310009288685351123582384290618267687014027197202154600885954647476147394513179562733020501859559035393544506619787523918044578907884923231718993388518228454525839907653158886450555030002604072068116256671663791785203170043214727149370082650505519834093704969592009334105344536322761113727171057437676736104244681293268843222377427605856704030313107454725116716927498599947012676030315593487684574392008462106247495653066265536819215294245332456811562768108477311442884513000684400838096438658980773633777534984679576523559984629296424747307846332679608263347031530953178699817776336133929475785390935301484592040758530043284963947701653693294665613462497779461331253465074552511491744538337333130349249337213278645131287678402131947683144491799385437799297754734502882450990817519988348041800882785296637159628819384952103420367499014691856826641255869966869208752560338165354135862152835282510632631954299872802165417215962549862722612525738792920155641797392959837505167359740980854854786095200893489924852889618883949180339492487171462037342658222656099254984706014181620984236631206147227860675850601016057187456589404728450015964371086913786076144835828252447761086805969523373076641941762813073869755007904536310366955020781737767425877257630067785677913173175036747721093156099707381547657769987120801428406684435369673139915624325715768023229483479414009923095830532466469379222678566241964988655544269682923106816364020130913186216374344629900570873731354858342932327864555256704980921699815087733638936263253271565239047355942767314952978097204245010033451087306193694623911117204931350632541715052705478388788575231506874046566719465294228047609705609009472637968765378235233873910753019072285468685201740489641358704949514613179064800919843913840650866270975307027166750601442993722283786519602580553158174875093044761349946602284934842683310330590571430622270798383382317211854506755846070142702903195812097378468659723286269260731247079954358127036225007114447385404317296623334874361369634890612223853036372172503964877061037681579702356939098552703148703092703088232033884109560068361681390262128148720838445157225799226905035905860034921266502143903851252830226775606994602661922854823404265636318298911972041414637070941956346904048561115984956070507336842775294013186668507971562491878097558197736698828519530552964380327121580958855705029527746445802868928834685303775159289512962569677057460915949145694816007257124314445597832453239251821046061166783859826138232085823412699029892675540258924641799678711524011598979890946848611121838313154524762862230477231806296487370916106268334439997301089575133760380656169283701930126755689294741330787865737326394291098852623652388024562578208651973944790224338125211005413785031099685199248524278646656344640060115250120528850049309784893401312207929056084341860219554547370762267716220708814191474041543766453561180891409595342902141140270667065723539200122794753081851677673901402570789627763054534274740182013955669467794875850530724385471831091965969336897057629895374142899565752527633449827398534685822873625772874022759797160546926629505609848886865279363372310312385801672081423752035671109013816141714812122673483506931195124083870468961097628830226178446294217576188268213894230849855073118916628339339916462217158382744237291727515137827307462799868279738029044960686088826629018990684150349359031873329768687939710578987428332299183028668334635570762912739565525149695217940397499773311331910568016350075344829224362211871187582833680141578236871627672942790993650857011324726668921226010596353632240941890759780022594403772692961835770389579226499188446641014116070214003478846889721955525269630198531603530270338638312026326667334536729253147738436784570254698815536946777232146800236040167476558098954239785367643536393021996030096488231242668560755974536632155837709037293085205039139141252868807671990877227992611009178987915143004926763238701870588248033955727679133643143430078299308843321689473458222359538801404699068739283508670310921482841014015659030761116410820870692017582417748360787948784451975700002044005134704699726236486564965461833519022072519489657865609531534513236111744782202864492627749120090109223945238045658143974786763291394714190828598911141440721746676161920237069054429070295932858039685119898671693419139820546904977999630568791572076884884592738168237517725103578832355636783515164403310855567958057171725202745662074001595259627044285542883802968024087059613012915215250814254884259389164198223709146248204767014710525016134117022930613862900256584360754271757133791269662099892234282243378476921039142397067566757861995065904939565523029900317580055515108722132649378837007345611136283372884136402885003194558536841125643574572855750876613660507676773473050969849270821705279655085088119486701621207877741690379932465156095267421211214884478619860763508008568742184774100979427023983810426225066122836394867798075935751419929616638147862331571175137865984484502878841801221722836658036158328545045154933106746769769232146409221611271309584508108799649684592636502996725451990322423124209100309064843163180271107276876950067051942651324656088512839479731388989407933168728630071398019416503099483937166028252812608320031357938560905684432501512515179235072675087170273006141017465532785203912335459609612161068231557699577951346501357935851784426066359296267438002434679683701496037024464296445739641175509371709662634494187559104869388272534717192920810851050415595611779259484100234150072104280003752429573487863765473397463783360926677804450915641562970737451832163610730877612779222699259100141030888149716415417996257494496766371092657071700988736722768546193165025358883276091025090050890601045551925855688953643171163623054838235145622762180033487211027567122706256051661632719022989269628810068215554661301695578277370882527889004527306177313422588025627087197301939832427622330835030986203254629822351691773141890089376054320066448420625759360568532221590690838178568170827707593370517258686789886829424410672583729608686472021529721905971135786247204012125964946810897098198219416091771930867726467296245289201276948885470649117253669518890560536070107281263838042799380121046135075926772728558126915501049195623457679643464231098654588310237427111668053006903276197812139662568664400644497085106613413374007388607339929331052125987340230139693174350332786482366483745356738287241352395050527296831586595491976167974268209145795646073959089613517138663752609860603174748322318059086219891168494162371353574340835622314364806913173418069208369934349787309732256931219624138174260469621234866358258416268457670420575779145400317685878761257771391972061869023109959030646426906234266477940560675907529488731113283094846087128424561600436334018727311091467501763951368455589353680138144884791491126407399656556587032089332378075316892651482176461320964781646941138429643887318669999389143422785773471241570130004662899791990988405605249124566313700821578593238620761977545599190198368329935867175804180695549635272349835906833790910355932619260235416817681809812256830123281278641983701898157341650654098306415798992618478417479181790956415539860148326051616592101008208119534373589991518729703490478875738639238492161223766654149601037406396508049622111268560901771520347460290450885552571432369112766273688096842350472328824643208034732095547845466921221397857380182412718382455043375204114401606917655013439870363773673420931286605003880705978172278249258327649280987187994227332407484608262154180128153670010533142294866575014113429974732501826576282920503163853265860688391151717136174902395792408913301217293573004901555405806896651527487144714442829456872050372294608345539311774414414432184114331258711392599820610681415575557566673503391400949907913469653430701047406206892019239046961529677905410957464909575128299946893706249778848129000834291669541332405155342990487864305804827021775791844808823649659121797558357204117514476171809229027499697942862846116124407747933253955774222330479966272150237789188850795250019373285833112075385367497292245275494932273059934158506559762060142550677843970139701000664280354388743088288777077937654250031423712724524337432288419429360010647140631910648812046365634990816874865619096856882897758776121710469610085926154945511955734925703992625029882252761102979445206544096349139413922535178017916696314033869511237211393810729797744097284719792583806393376760756774653801386390532093375191095482990044636354561795782651634991071810909449385031411217553661205233737090600651772805779910812095708326255765535557434840353097405577815867629071041523093230760928311728875010277038265339422574603579647017885119844846034608112442219678179771151342194333840673418815318197027296994693790973962289079883161132772696950692848796484904560353671319568655261437867033758215666846939682931163646275988756450037807952727844661454440070427949861234939163117495356827442134614943812411073903896768416694930012924779144988484028736086165084529680976400536299148935005429483209876289938587756968808085890231184584022688418651808393037347053246362453952689698574628586462220208860054376955560245113570463040781515930766807866575376776709193852283066998076597666726309432260595762259200408012850923679616349579163693154068548944224663208214171514054318749974741962120514909056501061963034155859710048387778553765488078971466042325752292940987236028763766758251442010048294513311885735043229490658128317330776246849990917866903301489610214887582700915182311008035808142168492942808327401774273640172234874830122062687543899112529204702702954077926741865115624033991325855507107524473667541616072140043858984369103938735170167246743275799519276912144376029327745443429099626991967324359391366003225887210579724706689805270059773500747341179148598014382484379636715202283489216491554485691402270034415946678793211307071102256308394155271425374028364365586794135121034648864501362514936465636390831278166288104020613347338041760280075882541760458346143820326309075149753491987547983357364752195756959233509338070235176960433531571088520582689548648566070418222047389005666760271171856007498608289796291068997313702688631480922046285379958673949372628669675409169267986039988846755506011898318501602564502282919346982097973321999558524752577155427141347636179781250125459216617250971639754023438660519851295785712558523562752861107067311277934440885182861129312313945232687961705961214206931370126558462489202120624216209117379021572703339234918058635303882604048224396436322234235587143305736377781859945012396287342410824439866538822798287838223515750549846428691260833078092409423206633415305329192576594888234567723716888117131937231673038953592431557249418104478055764412197107280180526280041776441774503511163558430689077653763988246989027075000412061540020822695701701656826133893167674331915424581468607366710709158119968913899044339328393288746779862541007378089285551578210564001548714460925520189610866414799286241124302578926364164336712045210791187656691722838604816997956739774941990141284994063309888145697611640670587184589625755113711169972772430506178673188517988295293758381992181546877719472299598181359058345309527097109215457707377819783213297312125564405363335266973717676155693080354743240520672693076145689489248748083863783766626186928004819803972652718548000657329745538819269092707294347007294163576985680888420734692668042514685423739731192225021966536014961218782255478764825137618053450324057902576508316194971600058652395009852075999698796048567070621595170775673049101200883578361793021955579766757923270562627626002796650902067244869372415724329150298331486724731903720958486423789986910423194549779451430862101734409026691665957194041936575588738465130135806751382712938151145179469063484804398921088922184303808089218402404211353136023320834451163608447947772385072856439205654467261458644931286147908101687585295080374901658866749946660918918186981606062001578037853929070335048183768862699589510752237922079782939399548541930040424052494904418936083872636547004654250009784164737990329400690309610407746712727885151499969127913696770618932699936527940009594564790951748439526699223615335491259060912528476259294603741965633772051983017639211740476027612014342563946892030472348403607523913383036215975080628314619820658274113753608887239949234590951492985091193245719014011655248780842531101437673541138996480350432245074758916266184012810453782161962649170761871300212767102358194947056657037842730588625997961330483826733595694301514624309227354010126220206181772609569459774576023266419040024643235837393854498024287512273675075387163070784206744919078610836011043252313831945063728404473225581275705633452746691855407617817750495001407984581766486522234881456082980636140449804437025523926969313948087324763021680244605145465286449846303191787372104435940855747327668080745049768893923966135079786155187584540520389843030055907507863130775980820104285471885805774066727162926341696192851272319942848258396109901143647081780893210190980761707113200590319986399303239165381115591798707138490035088203374568582049043240409258886269096492305275663171915186382461228260857644547976008792408380688327249820997567993739507867078816245875822345852668472373356160170487579166727233345638914587197557320448199208317242028212934715609021437406156563280808878427965145912993271121275225021638461626944757531174954642031139237209025278605857760127169139868221362671535980870656801364180586102600744668561380365705429213798907160841631763281811535402143382864163968577814249605361516111261885206272506554275732889646396325525661898242801735148757169679195906793842602118683079437988481586505623020311632760734774587786466316859041704966570362317160491278961020003126975683496818882452438822175864177560642199808309941468615433678982830303702431583211259135804286741507450729094882786468163425848989360310694094163906542528011901468271129557597783548897006568877927814152486673577645636529246221583445272872772499268509887747906531669560989616696400321929551573841721644772223983998582790344966583758036336036106701259329967719880132681216800140591322954718271399850136995158271082222961047249345679257617543542222173891008052706133583344904036758087539483935861469504849913121440930627599672851818113906218296077384029752158938306228446861558800422223813687298437968229314195294841629049355973845115161817160562689797665530781395861769020859223550955609335055813565731928028955866594812795986554803427402978143935469686963697912866959258397105627548788165965926695805026972432193682471796838396232042185440842906682461384533305580579705720286232554895594763585681665277820781274061353002280445324038200271570578423964205688210248785966409169730897623730609030743351282040989732321411393779434600945673886265326228173842613403123473070181154357899938744460014711449225148060841212638104005685557209879071390623330086952438507837848876690665713523957488883550647273193088306283267787524955718246954765829427004031231532437804448198199508694855742917318167747297415719886793356124832844035916419359348756488342980197491300857593652808472488113499585148275699686778710017983027382315263492492023712863105470537636950364238279145926650862002750267445820581076000272538409831297092428874290080180572011591666264217901124170687266744826453738828492969912716169558194305485213715765136673746987218583802361263821966972202520938787323679860329882669053627551585246747061910261274950298386337483794987401055126787125763971709437471932195111681599804201220502441158777384797999354387654063398973959896940741322052448598069437454958785623266982199868662588080834400289907692284374106137606729526920744508773381695755576573280974347771658822008468730762767175665495281081361575250461542503345608147696329256290998776272690109730119842505092888948887513109978849768832031307708718307163016172340724384059254453723227436026929516195682971021546662414613063639208490834484119234191458248723889458113505613690580747897541816358696171621269663623010956980323838448289199406922826269637898456205807686219026798030002346386179264712036018463174936693156329343554767329472700388189541268438302468492121923943333175464785118606354125636470182145186247730964667710083916703973737943382733866231696126262988889568477534847892209007041391110779396535256058689654483145274295785194888188913590090194758739601085355827099557378971584340278129950940743896554129661206439208871169871545815237975126067938402793215474842066799254253121516807801673694604617781523183581561060919913558543548711904275302795846056769121717020717863773413591909772218068507928969633597709608257302391604924395042006549634615681237704993483458974434414160785242226553053127874316392687777996106830491922052680367769536633347478040532291961533129791239776302331847081734048684402336415915824759592455597691488098891839593268258540862240765493235663883254271646692536494156130966533745669487174861399260549472657430270836044373921709220369133466041494336381039531315968049193023873314236325501898548491171185291568430225624385848116973601008048799256360605742965901013566913337410188027580081507151331947971904269500485754465053436274182495012508351515132595707725991858171845568088874413573873629329654334301896486892835985891762949124309334834909004483188273830190373900773729022621917762428044815436168720612177321298741149518034934852702662225400513881854614304801054939427393598918837276824632957561918562953219904747534904107888786240020700598619129222280247689561488461172968502552380177834658082187094881668809028561574394912825156598593081976023910626313182489988964630940443605207479642128809021389904575530812114718248624595285623979681631550539238907929666981994279823595568786413766032642471566352045996617742792543797724288103936999327165546706299682720345261426461424149549084299684757914562100874791405915705685244754361693744205848149269869920112685328031551757737477228388236329568601048402278477382825378497567542558285791956386293067645263216413140223282335629689218385810022898812937330406932093813191124681007049949288377254431600612900925785120982003235990510098334062407721798011446577311686585899310719506497632004551926552033410733119350303471692515423938593233898621313117029112786657836115464420735533033445873355014793639140267452025374885481323251394092616278515421837461745512895421946470979344154485005304895933042591394479903152957296479688670225433435538031623277577138938307287898717511049194580474305030048544223844562480351622671966410202809323826433560757163291405069277443700027759416017252786959978302634036101604769206247488346462573461789463430880642393703622022426265175047822289812709402194250268921845200516417990298734700085229904044450634831469667855906774640340524096472689134472802734756448964723199839479344824035658327709071341461430469164829173800255083873139619449390900175393321368391830560366720511748081009356870154660166161174700158166847250902470926992923937686114015709186560082937878667595046269536859081212889775072025969493121423093671451572784710481633827624846044624355146227423192819241965538332930547094471235196508111642416947176136835775501863023310783813288268814851321425910718387535374708465206974818831550979718641549040972681152019855082361541339829860271417344472342461112745466013021503884450705353718856244077039781387003012069700827379087847502464388539119416585324814658371975449909769402226261861214117969043576819222436596721339955551738771203042745930398170650756307443367523184519056046243334964520831357640628179170796332890408897203319473032362408791720563606774729744253557219652625208098536601488551129105579246250470204320911661288199651880784785644503611668823443815313276250125435649630647083630931194826504451974353726177812771647418439780724633917080218475461929882424528270650233602345834445187177698774107358112240140455111827502767422710964206919904056894790405599318475771360106364254934705928332272041677500661301981034903333539859286591636671030353630913795530971914718320980006143785263175691411529347214556488024158173484811730339823613975073136498763615773114116860042507904111508753532642710759429089238440186892061444770983956619860690368662533831733401564680457148939186125191356427545638029922291698690468649422054691697020949103519616711141588956551943041752153294063920819650825575381358081806842913223686773635877529235766999929820980613812278205595327131016932020376757383822615464925852073585780293328786220933145545690907414396681799951433207677825047888134212754915817956005410056099635168514927732947148010593426234125234347484287082900745621049239112789389839400955658493911106119369906242488925685039429705932585982180220660613430211552823683343585278637752954528989545845404330627630989063403934728238767922190062718560866802850867561801422214421496818720775430643895821123474583003145716567873964308517500855502793457261785707808711008783586702864711239665841832512647333733237446530290875470351965012978535393685888399548135035828197226231985304398552068926075177601838271528095639049476862822247539408543396385701169112528337507005711391477695528930763502333770837607250034582205684413825798230608973107898821217407543958780730692681022872559049236313657532833530982667185612379248531149837057821501689545472076678425348105489828619928828194516568143793881004878285392361554161386170929493508789814649607521939459279435287722548293843282475176492786351010606312802126088322025748534470985806912288555585250414804713002019320748809897978362339545723434137304099495920554069420895941161018382338803197253678457476086228457546380937328552158868593069674552884915980008643260597692061447344240626268389191237763879286375255708794050016324771692596697872774976389293296952100149857803289813856918614308151298707717912752534369234189469030161102241347302707165052498003793966628707570624541758157884315572837542007247034671894148837374806849511610290412605941596306377915020699841968151648821411250968846650609830325369778401388436847960542086429455020553202997081793754918724053376679089462447495770096238457778728938420041511863262749460762928559497924946872865368074165005024638523400636313314513240949356796567191091000922119047801202934945063039601494861460294876510634101649836787651529122722404039969038878873447393199975230954056498898233306663580948071162927200318408764507758575324417568777452575110419854955304143208418310473721054081557610124053209314736897420995836948884310442095986892430862944516319967393576952108045144364896962307699151505771304444816679068465171837933254659764264281267539044744493859695220609097219755392397040278221491950497801913931041000671007062020630984224337126085987375393986696225625666847985830409644922743120353728600255738823724087563816173378362110964050512550467790265061898520541558600470147197112629884391893456506159595888501990924969534576549323816774614806675315233454730045017195433433910410120485480722670044295466745612710524525869794825718208293348133648786956861046321053147583818812481794953673753063736195248566368481140093825531733489616494988734110359996982976661538880654186443054666398952593536424280779374772852327684091437863703985442448216205318762684397495206201497569773784175052080913101023323503006871407764196133613800578869992387832906124332489834080903948595789822486020640000660793094434338272670379567818148796920118139059203645521284326884732878306398089205786171508361892966962263867356103724159092174176662832995482295556004407455609921931682784850302973089508191406298428525759176117461823976252637893204270813957801089920774527648024094515148026336054694243421161855237851305333880363503228271103313532435298578163391588457496762173722371533989269760528306906941834569785864902124121144924589969577423997022876956509344672336650058475348746047835963710346100627757666133385835045642025655529651201951761112154748720997023848392222675979200511545378359587680174823649224731842121912135932296467794500224048690911949286232986887734123062516940346666890927454864470782766059792646715297198105865649576861280230477280471477294190018309647615796047482036324548928747452295264403097520331528233569755734013111065644646740068846204294052333296916384169025561028545638393130596603219431724772313132784197915240696717533396499099800157940408736712382542533310392020094873404135161526863252747646508495049833810909468804623114372398962265044555114666071803716137016037673943602994898928804996820267775129339839415798213810327971858108524091643480880218190708731150348987877895527298170768836149582667005326312218183758736406278963493185899037035286458129712067265147493625011412581858356921421978502389641568300963330788690042533529408902306918989812107462334652938499113788885553817171826300104508695117806627734736211644228607366155062553973043272344422930549468090452572925025238376148061992362469750615036251261348060579528730499549420796985801214690478314551275204684660254259329548860507044942594810907349993110084802694192141137614080552483810113964240975589014533021921348040611340735162971667501082613736145142288378425387858267465083150783362291097656880990540873341040185483811264673440671322354723538603167731733576909485753112935602797987831690092732740652787434227688577921386547491118146098918590710777826627343081154015475489087949989307958113373242564699105032587507011228323295223780309284830024293345280959654842778976189033100204507299423085398298026673542591831828792217222870033697037926248165124760484419324848861104719702147665252410644819256962900429398013828367340097903089389680433580508827093859067862428075778866018395008723165242121583469723302386113923315375006457704374804230348252895732693342201204465655627666227333750729281478927127529673352234582857918304864727422474943536876065285105675700448150398479515653074390085774558095859717066032939712661458631069314150827429112087402779376178835413070360277566857364665584966469187499635614264488807867886344415681476779567239908781844174445486618859791243961467447888516541459199529226118536340135124831624266573439430658825248633951609341279078126540623413484319711974549647356653317196193312752504159159964141402303299542439700414035367176651984497885733207077146451962545987166156057963923555050546978783040985328451637951822712351425735572209332957302836729378431953474342511440503973261991488018876529875101449573606234090684380667973218946378661560937311788950070907466978585934199462115521034182874334044047740964554432869490690330567616958756851220744869402155606229275763419492583575065119398703564186820414083604227595722881506264009887035177178791514145794228130625490055400532643057619877824516720011439172404070012112489536882061157093727931652176518251998261527941781710211825006577280888357936079590577719851488471634435156957111038944655732775973247297661687586812484814892745519558044723222002493515395875726371403489106964392317191755901057012041669743768713001990931598335086046785122292365373972857313813997382935979155924505715460707611285705550333733779426912234753309496529406279135841189053467604232305391875266562490913220494959754205261127495738315061614365498070448756382717781180024581297220689670537642702586387776529267325783009300751739271201342228739485578561175751616498495868527335441757977969963338178919317101629419588909371773623591992551007017178999139071348402603340418963739610805881522993898517008713163304842657425814272942770965128469653798141165662485022202637314850867928857678263660158463500334529360612539233259227211003746733991084808053944301004971542219079403364803735454369826006634630975983238589925286067701241196780959204842171646126539728908829227944724312177910288644792724480257747994420904947713599539700938802222275932418051973510600117434481944901791672074071182069601580463109722717315521606891065584503504102235988214123965124951095412264513084758171628472855470258290413266722354393514282586534803528692987559945656234761084870043075620157130080738211825275530752345131372489458545431956252009505901713931169903610206071873426902109202418269509725390490763736131976239115051243447149041708713816171301231044708271347863280002464144967996705654207940426274103573209127094329544325133606354150821087026072666696671322173561706267346533067528648033202961153046369623788265403786515601276159294344540001337387679161968439548724724799197979416973094558282414727106504923533445092159416555999062367315327853551117948491032280641349863820173839797219699512066928669058500168156413997367862326158907930696181187145034164846438145639179651136367933726114863933932205103453077040958341113086139727184773557110514785086109262992423328610147760241334228667653057985029779351772623625019655183116094951240521094429319846426966729773771322798512943829100409609835779731430238690133115079291202571168857356654275749305574437753942811923458124601480746623973811870530605865423332807983108866196260585805684874404976436251320048234967198824457798387884987105008626457383521277470391234272677171564865471916945944508320443156893647003781909239470368362961404556266417426305147721344252866990686646687323206156782544894501884480438632406811617350246852503056605370517084624767314947364306446913990095584990738309670959439990975315643810258358573356015540585962798073386193760507928581189268718595839840041407396094176444650806488756719305518780221606903478493063942128796912474524568614256503970472271906793783597812844254414781410879104544420563634354849470946573168759759249881302171192985504852167541838320111078529641847792284151038803170834732218399573720657505513053706897125333004633696545530693722542066787466199108396383555473027120527775841832821531716964527613116679622310648071712586231218498557832125292636718724049972235827630751120317221085138078986379718572389870843335728643080422938794115146158869972277353877359087371321685297937888188409537260766322583165945733927147813992917541392980604582618991198613404615808600025206977181577824992275549064586103638216139125554855878331342392945884791147723545226523006595060000606089750504683663735688555120746967311149448447497203480806475942024428768529412097426610796068765504112052033589527176323019117762408556416674686508178613299275749967487962093653944025672921102170553420130264736633823039525355386479418358689382861409701249246698445970872072256211027760876523813785981957772430475621350318333714584460753858424435248483300495128686979970362713737226452975679670139268347064984051424069695550763004715872620167734941535438528647745271750802396846864830019221914120234501615487722836775783309965461708019233067788946995318922916901376928308473899668246114375088647713723294409298347629477331120783506459177769724956033253475567120162985953299764993840873456512933111740782070332857578030686324623332996459832953613310917103792578056336084245575045726731905410735270762982143508424206976074890467136187925570997528940250816655459550496519499629789429703221846203354541091641747929386922512404051504124491468182752879205972816873765729239789425844778981224004073007674172293175751821414673325090338694618162856982130660881353230224221318713985540712729857774854154290640309909858949502320234166396446029413321097362485500670330412941367723411395702514505295581175617200609114436215535054719602780069644856187377231480779647474710746235657437472321995487118984141811603600377667556946327700410377816725603130748491259604832578963308964776784754602215884137354962059947872157939062577611598105357656269845086815698815298714319272843007438160132517164543081833207954585516355983239036773370513691293242937916406781528281820175505171652216604292797947854608396266140256305199564425912356849059207302659872927461250223153193259433629736631930969949459527182991837905226088574896245806226319146554122221939827465367355394557522990693917068552612689454926729586997797045956974225626025166370030794230781724406645015132255618533522331687561016259113719389825624720373411988803198045848282572224439309862209492764361835853978171705772304855680928039947357402353412743525858562629644337990076125744593776433737028929747273087348792563417609505269926602943357435080990253730880137621471903185192790401650201095609926312025386218651649232078090897083423683864877438475672223024993954372983893240241212820181988753110126088725624610753910024250284648189736736720947502171823595041000998808428630344291755435814597890285999020372384728024276716082446720904368026561743513868228677311995910888709449079771836483155789970932078247755863357949124780267786970543655864809519126096184235597498145193878818058716499108349851372271809421734191463252195544723469088425185351130678157180476543559781197903406974458118640257811981728378487116707654436826342292323293240673036754234450812952312211180550276850928458845669051709971457841293227719747964200822071389408325986488287722489332041865759157782940703587121370870958147784247088569010756830474089364866711902093296760354898453699252788975932826237836409165780132282005961344468855462578311159622554175419114102930217496438946693841370749596112726072785841401264794322279242296379148476047821154482633353170151435056301049929035197356051562949455971432193608538758332253965918320229007610153340947247356835112576372274648246557259224016203292880396754869894486490403069391809140743493878446993069575889415458728275438778235063408951884506967316329385855698007542706765078689926199411656445114375773060977027282644444540135066409335854392939577767387676958965065302175877859521088981925494691355590486219915454765564674374284762893455027797622477685269883950587606159077686144359798778849230834711093249833077264653367638874986242261139001330407442990929545230123801599433777705679208613553172414972860707993354372999268994755215811764570015122536227214527545057626908004814381448782000672902589248075431465938265341819141653309750979140057346309705027936723905490143148189345270320475505988125044715157364928298502985210660227698087455310013472812769960162199246014054529925222278827988258635463985977388743674606616401206927083872261276116429291843960446947669654145745263240371627377179306475848525157417954340407640654389255974193604290591151272204119961768614625695346504903615498711461114920821813302226387023413118269118073469386086862134529793152268670430444491851095131974864271541859234474408365298384027768342320611444961286249884798367060518863102919924083680997665337834287890653953786936982220776936068396178163579219541436051162526676260949696989614932191504754749140815778313162692767203222212125761932731127506185656085349345068509784602580081100615749414231406934837816600842688016106188124710825590996538742722133103613965286359715979988251127758628715050261104459867017505289942187347410994294098754207533366919250823534795686360676639568052523713087879176922089239315480367533598197276757610771965691218100443911572607295754240342582766837170732841538380896228233470110035084811082915425568370829488473624515685689283165466784171132176486888729579648253156688766274341563786251834385068143489184312107682549403342746771235963197444739813119268718244527742324705782297210425555510479412207125132262054110323576021510951396944945626143493061527519261294453136259746582073575293020647685214610336973464752496632663979996682616824251499307714196437467460222140392751152971976545779167759736120422712618493613357349428432974805326066897624105222671946022288227673118876401217356014825967125367064218834457898980388024738186800675391084891698077092516727427419237585566371077449735760193197695667387776491794388226786836330365562941461262174949377159083808793811441780903944678927852067925423990228935379473502114121235934599709445407368947917944235169177440598209778155268553646077367414552446889810515176998627808621586063969445735612085151351716723631028572339894562194181545253707187743034491527163932913743204868657177958227318460148411696387968878869462876732451288644891126571527241749210068151497562639171929119371897299796108918462368487963310634619906391494196817394577931254411062232193553001705606776663954817761227310862888640432316747803663669554184203292128787400247599710453364182308994707970801650057237223162198100959639160896360759890604051731442305463907646647019734714802759015059517384238606250758850756237597347794012067215702578145438706311663065345125379391946551287516149351967442791344130229842603541883466845397128189336029094433820467660913226786079079388103370853202668257502322686518961668120975972204239354282224685131405778707345043870957709841857470759301350529068763665428277854414208416935960448468199437329283370448759459828642556259451422719783016441670617122778402718721745876232910636734355837730038506440391521781726421798428468990878320048801928496308517445214537156432518772753536077595828100177884999322927908087077939053503253786146585464427057307939645715231551193655370935126523316552920028723383896191263835905459616653236569309651155241943534421372307499902191509312892260732892991355661065537493731402181908703433592534963371317810480129093670876576471702301452338682524979988628114329124786935800964437709232735775746755289682559484350967911159296911078918009916416465625735944362108582783046478280308670144517096273343179475831651447822391143120340991507596169791401257904631194635633756839000436559318804869816953708618052718588480691621574210544359689743280604914351543493836140300761229320540158800976304348060530711212081039483968238728822549358078708070925670979646191608819743829543530551322880899793216530979312454390550254593874376427496057453189377014175102751644637485537265716847577947705088066430747422304955053507175442578432894973047969856113925512068766019749754477381298153107719504107293902545075859948996545928791941115855282908036888982821034730848913060715096178075401321243301940339958131361582837925197085816162238747746802889068479021068606260384773932728567370316539283099594931736638030124152093949404811022430165475595107899956447160421635442942749570658871032036098582990813112882470977340538207820944003471243922617408937821940719421172841551709745878165591025700548119904449023348552463061508656665392992605693327707004620340658708661309538220360547121012324419805052142025580457755351359024069579991568113215280343278743402751370970238753311949567443732473504367895131745379573942433819005194401797693873248426375630352810845420159127272801081530116808314828574444746993242825969035370002181372760810409089950667983294066042147798309509689076842945858250848906283526682695374228872024108363794986939518498235764051196505558424933759388997099186162737520084443455506123787882737717252375739303919854257360198584991010835612088540308117362144759112958937072954119914844148169659710489939884043206464154874064665337265121406626258490930187294468869853300671863385326320547315880031996517258971012560890824608885598864805582388970247376713179954975957807055728427954104555625754172219868296780530064413389683725418068275785502839583461231709899944957581312464897453803278209639425333997316816602605914091394601985286429971381488107193168595501901220275166399992079908366311056129549991522453547221241228110426558115791619347298505500030329881759463641534073347446355033244406446317417300485868973085324137627669167320246828333069846275862506811545585427589317378280189599336076825406663980532965500352437540318210173415875472536119278528535705940313503693166067350624791808226560426998594968088338483455434433200132584497600197948772821253941068408807004037078090607990948015796401625491743145331264680368856817318548330870255021429502865481337624094720120205544338743898634301215835718581392644886322307327348699467451181292980546584382892290637915563542604301680968174832857099236903086566144971689857353014352110515523818696054873542147245897279182156272801558639195610655109080961119047477930762302618366717195604143113357016196383758852908668604806391786103717171671199285741197857317246769366247619172887155872060246499378429973527649165180793103525698692424013845377253873113708396221789908339652314629463094848152080303558264077709547561887968535510580862122100448853052013284198674521493780902451348664716548117432008710364970368705299915643907462230537596945027247915392970191221270006403741978477634645332784281285095480917261316327348979604980820560955894667774006738214277438596737798792752213304170061888474890361972917190030380396933624980048730787149775572001673190393628708545656753887261141936647499315105741178971395471476470541569856979734707851005064637299118213502500757453117446490079832993632433441537903470918737607935119106941158514461894879395639068818083352381595292382494206549856234155486449371517853708741694191987195044423794549662597170581815579033712621537716758148945068966122279457350564801652008057451679938744946600080943651132536125201081612489673775736573650853419857911625910076543707422365659548364084908114041273909439273914883909656192149813088529304255820375197923419315502669186734439258270498203049472556041469000650682977038163987865798851606641540503571475526187415923693258792722097813914619805354702559718114092866138143092604328168404112639214436787884546224451238449963505669866094604713846979682173631738706648723099956364623127893880002436738261460543651415473996655898715051075658568018266879749643513765132302781895889941209169955837845269378978685492486508147125158836719790887087390384006830264937661750437931301728037817473892923355193467284969931191078514361189253567595758980381968646078324088866834296717734862727268780298849842579887629930860201729835931595329745959202055739758498358105861107714022908515130995558137395222282587200319696921067482682193397392854896233358090471850626717860803458025724573569935824461947301915670593412936378137784505127744198080473615909890669460521636265292583100584006858486582777039073425889191740697591618996721616981329809982386180920588154385425534226792574386427321446147997739702824123173216595874188062321810239722124534164465453656992579248137048503780396837659261363082650855383097982707922357130243735004794521245554608042766152333573985498197801633617306396268241757363873339912943584565325647333311230740227694430285511025215927869608967451348826110324125920778198253931600435793874283204632710977032747623925258820912992429171981698821102607331795428511288789700173755980929886447047539129502093635780352004308252857816078074823677035788958779275560097800809566030007405713071412414909160541114577531618635891848919222311585946242854418531528407935270959519496993360135140052271520441216308283807106376710208324050831109799054382507916358552246896476220441161659234388865497370623828274934689248168252094260750104328574744269336892099245590967595902370762696985988515986577125821642796816330954243183250668527117974218526394291476943107440123218685674245111298710562013092470445134587670720528124496145115132833058037704531289418748627870368295494182095527084012137239876673380377621137762440675644941143303074484179405072342071330088791163220349596846964282950767538023473160262700885043181141994376631852636125763834940209681762279123950875190244325506659372535888627720465367248078434294853895556883764875903664968807797861138745938571377508167478729608247176099717795408515785235102160665649217679988767911506598096456858434801952201700351559349206735767470746442319017256693594628780269851025031877515846385744245033293060281415166016227400546020169570447072543524837769899449236170202886205598016984556914311517175630805182950069115219253534584565512226953803935404543501964517331550957829383498967024462403236582101417884206051728466694293930840556417983802360586370219263539753694059429157517289736149882555820993874767808910107188449647655302308325914523303197524631578732375619197596455809123376282524353258680740591502172405373060505791959889688302173754831368270828395393810876728717895041947381781477482901225725193254597924106971079721246486982933641235949547179336339891390830378235914286694270794097995483520609337375150952634168653110663607319684262334874827707380698766955802536214785617546149738799530652680072681055426030846390868249156342748548110016405476932180312916656163170435392991687800891004935109845975055368872141891841944068649662163242422811984128260972758787223802238458564566393174722601868004552920326226250714114221315940909176081462047962578060052398597401943817294738676697499578377817670380796854542408078604581447339583941529717578609571310728236905513675907711296512167042765559096273589530664403343951459171595675058418890725617538768723336499120619385440442574520114334433788544921509443811793541997576752622873522271531146155320238636577391014285008653769594926977769066601703395806890113921651853864854429306668813365357942094511502276848736704811107875471240849979732149492332513527473699948553775954753131562039316300428813147777164137232835256250978496961618381849189966055396607657414959204039239582875272310968042097242120472508600940874928460010037620282933462546981218186903001968442084801103652234083322938135360253972591631817174053196367339215963009044480944161803807318370226969709169875384031366698972027450816352136989125101508682156821654562554350769214655918736175701053584558211275564038576625563795473156195483186977883029028117917626303679326092558431821517725484503225869657031395994207499435526956313840318072059467909305617382552192802775630834627850926283316197314903305659433884610637316472896325759078986205682177500018291309301359296981828231063391699772530545790794945505378011263708780480646225670871801820449353297062970738670177198073342166142666317952379941054780556611526848351378006293359824090566154045465235270374059599541532037879905182200802434100999493553660050973898842979907507177437333312883408720314486068718009172360907975669411545869309278050376273705999145513818766233909471487814144226007498203168080079468484193280504866259910915977281955977071094455055668033810236779482825013489643892814388350900311081108389142572479110427425298321829917165715650497412506968482477474011847576472439527817306649438052948146420480882058080991622751180784648135800093016640226430644812891354302309329176221878205049112351159242684285643854586750935729905334733432056742268983537697024649777378021878146060133542332276684042470571419530473817800529142390668368929398242370416031618023281199469989806458942859950799839525586942991301962848047099599263178573757850296927930314626694404091209006363703142445855477666529190958090664234496284826537122448958482734062055886567955825892009468521261165614268351549751983388633793811371744793189346850119169823904538654921495868453223291548841876304832531338507069804292368452604230660672456903872798892218771624813115929152208340971441106141191802377248732057830429606785471519300562754670054623272859594508561317107241157725839585254061052377232579228355495440474956133559399265002354372642581332330229266304644389559526348363267370871392191428804760715755602047947397238198872730131213224174738566168026630900803072200057608295320284937437985784081396723615849978530751421195320540841102603111086553686321416168062734627221414421643773477479389820104848340908344476750416667271430325738655589176491610851837636268408301451572240636651380173213577347331721003983967250588990793090158956687875507423082183999406101008997634854535022437826718339105686626180066876720104842754855189160749304955805850265575232902764129675409299461456652061878169921358746680731439757197939249662309724747104713440497435449099931737219993991828923491067368819496915456532562548586434539045985011889256354428730430874160317561354271191420904345601744717854858146738969224840977436093377789874170738680255910590803765553051353385752337894646308912654798210652630743306717500504612622035699658958266623203369519357206818239520178687494324975509795415394864956184968065226657837614169174024616598300362155557059918778156277220618252462761166953585580843089251861114913930862754787576451136535512493818007079161699927152252149508033221547236223521819973042239892994178026210569741182394295380285099074111096341374675613900083965538913667091377099933247748717703617729670955762043846726689300840399760833069588340275761473144680140110794154291243192314195989462751338168403533753324766510445332401669727861013131031526718147381303956989346548390557740182280583837002189353276924580129910757010982310248488331102628268660547952601429036810757445471977707749741009161934722955005157303676558573125395372549118617863768420687241717398004052191859132507782004896868243572097350524603005435297707619542206861856628078450217071059666981331054714541607983377642212390879224668100791950688463514883221457605928550132250229659188396440720185665065430056721693804736103090345652015853713100889575196360419020628111622152033112070302284823742633812237991318153795295823655143517840828046486217487127836941282014109829491854900898157944742655229267123474332434184397914117604769288391201647923683247918954996697043947850711916285036751433848551688562339760250857165721132232180336788947274363202653869662990409396006839443449296564460874481822244762110898939777283421367796906822475211228062155851210618571253441565370035878703293200019541666069748878693022581942295321081088732821051885123906347529699407948827258328097263393209622930873528189524069464263462484860537983476188338387962744981407322729494524914777829154117189233422370818271159445720848802397291516416011615550288779216107517145505356585469126593985568309010231677085481857254103051164648024212880515047540119422125862319085011808888489883757738127929588895642096047173070190746303459180505534547054498056252128705582157580077767901277839762138467289581516067357358743947155604177132017434504889895161766451275977808905546991811864605216715616874464008151023365069372273660970194289272011639225303244383476699421558607671766529806004339054109570801536881483907572225473091078378348673918739486398522568262483301711433738999598438631772641375849520036189092256196541757596117755225372897087607048202029813856764882372973473653263252286067603574708127489045413721101029352919261899270412140630632700955869679446830195744026976200868303966657727493509070811766917991307034453068375480313312679613392000195737903795518236601132428668397668841548953897132749125236158941433495411839162394636347844349530529692417288245587698904101239984685041231138939665412494009356316888778434350930783754356901499096762180040882507907455244958023119665142365249414013935953758223153345981863083382835947882199513606929516565374629487027607734459335499668215038547644316856758096324920360445399555826466653642597479559880406043221904981200330641234462955220453820653123745901925228796697576732929547320616741487222514491802786104077539549038099516684308617173839058690897030979914437369162962443438528853573528862048488860236664092975372433702012045923400779399910754293877412723979939702820138621248252125830750353456934545435990594080991515378110241408142407911290429220523661815079965881743670894023275013052191213544039344946483158993428717395443659554877675136601498808807221900883376309177913749557220269245762952068295905780187632540181803201426382488161810169074016819115396235655239059226932911875885782179548251995665408610112731005563076592089267982555063731477345365436363800421618120971694660173159325278619720414919475674201853090638761071013782064218487213999548139761338585083673875362254312486500505869427540840977206260690193641348517423706015990387916962727681805139011369912704454477173216402490207993802549457042207955342321422513125239790119271440483618300957163307914909069896202719324212488006855695523284400183191978649608755209770284001363507168993933926913195325265544848459012534265235668058566044026126495665513001491252506718242501725159250411700516571746912680065215692909412513333368835814151666257559729405156902903146673747368251120835895514282807050591415449453341634386046552991929870552347829185460195042937481212083296194349851055831010840604251535949352988263637663345930551864370937872477950725342293930119218668539375272940612339406260101892010446246918375519624983350755996686554695279861976035196319669353276036491769889353943371295355020531622492512279467977799567424284982764575364475263466566529193509776865825419828338793664247935323045220467667478679033156520616577874042679535548248152721073760528545469476755074908090413081296724185731249664315024986349452584257367421946760788442739481573162354916858072109301363167409000059207215543778543989472846222318121637161004591139361701172216782434272810695774113345552323545840134033986050160766090885788564632227092430402315743911272732598631862452967750686338680850149291281965397939577465975748415402300716977784643840956714427751222035158780584726929211614771663963084923320365108075003681776583546943754984057034798555910194601480898072514323017676245005133749783982089506110304212990846617162705793895470097843204290183203168464857862556870434708100983193806144831281419828382458160763295285466302032094546289900297212666436663140254738140208338490641892681651766713281718991291243520677692270001629440647905808979166079078652983565884680928219931824106476224422319325971548570836612141435784166190305294377090915371569012838218919673721711532478388106695050995245370912549426815223255746884169791761940093824022260567364264564814549418676340489134090868325975358754466149130015133084107651399156716669623121305929607089622966564394829743767283425411840682827571520979241517700305241457587466499635686381179861660941984435973750133410881390555475133760978873813965514038355176936896360721503017054971594501302921072823659961010451885588582963764923004699736348841829567062077785899345860581194169496779656153745654707833049335802908648366056665585212123577627823713896501932649628248443491134467503330363577775081351077623836384816523286445367315458004853367939081348976250631034553763968026483642738064450938297688945808515029457517426594782523386654324602795661278612555263414571921681309359983331494415569059760974833058520021872798598068499553229794702218107531283234521044275951596564341108349031118801721509270907172499380992879241308727500476119378340809872507503223189235071758042619123583849513114085416263177389587531291808189546192108639585134727030528010269088840454857516909571156607994183245870890813073563364963130632696507258847963439877719310947792499702355513002105516225363708375056535007836786070985775859434489702731633185590995606511001350779590605014364653105053916237899641569375155487952615585789925867850412510148324421349152376597686410562850987441479302289782212428894240933412573166447172960607528262062565582158568117966226207788357476445494205633408055086588140881778445355968372743487931006037486021845485510659841409094094646469566042997008002574421969879247692305387667541324090398359379027049615782177801663364467647206350428161312599704950194062776363211303477980589626874169541389107051015367842008821153699615288156402808427535846261880143583808857834882017350258690409979369631384051726349644293957919196475706967594797998087158503083416794027739560840853177504666269473087862687915203077132528319109740047409309463357871281316275771673919659139617207623583400363696319846373145492014784063580271621631290714588253024178958555517061183128240251470139390909797483004863072090770475487619959924021023779432120520467393588972815258033816235341802614221372808512165701173664108452154169323460522914097814468394417828598401727171494669896571069265793380560277016627857634260778563204891767546303436629843017603005927887109202583427205671972174180088275112659612945998036998647188929997507528857852718728012369859498231411840068384147546287486216970330916177362801005766622119453600833638581235184623769132728514441218100095500127115614559546200617636413050682935671211596463176463873154030416566637122828197768813456087135321097592062114643938265498219620004378085013403087297300704052436550680875205565750631492866467679173418096770552742819597565685378519572160555418215699611084168241026801483000958035799028076369207965794645500841736922894576094721694293449547681024897270261626169713856687516947787451358006495243330888054842261552980677681543511515299833720427504073480719244299584905193470340287648299180630535064752282745942500224411088504160095717119208594746309698965737805772765018094965394389099226622681688228207658484399570727457773842335295436007319600942394544514993595741917463675485660244287698228984064382455781344932591436644742647231010189593699843477257610420971580087858611180804875572598765221945969315681239296680849005624214308653258980579921004989383678855153030478424089662893287355779859357600152445086988656803296171522842509047545979738734945208090320543315098966050211117676391526385175297992399431809026159496096800054507396948769664555404066867082266487691726870592027096207058706277535727017191343626392371522144718176626008908677896486245787265731890350290961879178710980440933052855812405328336397377528718306573435620736578421733437440545578400352300169712749848239377482471050136819341404486816966631797653690129049944430605712965876121141748091297572104421228887192828761115880109074947722064855070469469625095364284842327796180409502568594144537257203611809935508324839803085714340574327273205199442512150703530516377105010530426372894122680158117627163516258774855313791755553822963275054835881134341804416424227288643143086361972484171586370641631834460647593197894239425403351066050608606624441478490747092647810121671113687957394409093701552238794403900086083682234290777198991777478074788580784109602896363518207241135038331331140735928470857318296589927942301528284953178424705120500026364281292291361023953742109551893247499486868020827827709389556853176255372000607110337214695391323319304846300327813583972407862220244305141267852095590519724544807118367376053013280369634609634389203023936320886059042597902095026051160577530013349070846996838163095618669866772201640667158715406167164367482662069857249269718214270422860830026656989121578344692777758373460641906571277431306390220272332517067071929313787764809122507540087531734522093601294319862871926599726665562459599014552647059155691018610192606042827071189613409687606553796955237957123031053645746334972268064109731995769428445928639775187942703826762400865563825851366701675970125093530068104671787649301840215210224831977494662131501909503091381385963247186591404266310857630379713775073972305624367762439372250490206029181530761489894662499425316730295470887473773213304977020032405470492768843739800551021328292817818840070593505687650408731865569948266638451281418988058974343236565682030109853720901894538178791586590092680711283058851903577744988388090746919295105703814641185093262389006275155712920944001117494736364961021201267445342824367897018396594292026803221374898783906888736384405778520182016579717854008867231080187253030309752327105962776056841310779211306606359154823775875736633252007737974604476153865987935597544710153500235906418403037355278151027219719153238327999226593101111373015324041464665195236443922604497382588482504593351810099694238198901217776201774140517510326908061943215354334775928732561495282125962236008734951319308293043347353894249091425970117367787008595214195168969582227704156110898681254341177055286165712302400945696727753599460752119437004479679442901032231776331819082455387740475072099812782917738938755220886852949541686913892237772540174183847250981917522359151198903322390981402249030535901209238730850092387956913808657027702417115351033382822652534021712168091609416272809827292524048084973287420698730159384941689731754052658631218436738211919116172507559928792844053345920251091649698603548619278356425550017501405722105196285372625275394342697060873048629161616965361603470876879530211857523398673898246404546716956923206952030185098546572033057426624326814623112020356547249398569474504195968441191728308700032002560439080076839113686355245603769925246837245214761092656441419348609688319223394236212454852827259217646048063220114622911284373671214574685613937555974749101127012374624792085203590208902006712079521300604207876843529245480234914125088050831537752252025998512804532483591531732391572148336723877993804911282004840089426693151021379926778644404392471179665754049550936365902809926520260142736801478995370981614129949416303803800539288135141954030031036252001518356585331029365294056050050751522787308592742000478439794384098034861253725749102863218464765526778737315608846472869211212752825104736134366361494582839186784050268440474170899309639251362527881478332885326776905664143943663459608718844861696724154930964217013058669131893148106512713993064326906038297830604455107210619693085741204245334234545135849043072043179082122697085250161283156175510986028458415157238255893679783681261159503020597684726779980953234971414447464656565758694768970768178629033725755398875400507150078100841722577150882594972285407567485700295293574000537348497493347285505298056991770819104851957149373613535596995604386883856558563397109845148731009531535951191131042255347066673569130081039193332846997531140258598711628311035626295682753317010046577045941429636733248598030358294211733786836069418087749689583340246231604953944786006030247846716577607113456447178276239160565484911573268860018472622484100212097236358348936845655991530378465234240793430427161193789804839224957847083609994338480826128655685528427301695769401867186006288527911358552427288469378476554197590055123115460231621105354765032640860889736146560297824557884312689369121361564465349345776987648060769975083737373687413125380552732608857608649501514914541863563046995262615684902479556031941421969063725708718152391893932209786283417954657907033844584900168150469876578130554544178098321686675798521576653447098969860502427916344633043028487772815232634587995416744633509702848326282916804680555849015293642889391161490317894054569999615763769687121904362567208110928116138380230637225538129541885472926197465171233794589979906163153149933046425922999996919680839607383289652768187734278810682557040414798201125757390034302553612748739170686787752809115718692190140667676152899992897300344787721165597463875915550922317206685052360712975210367414323054604235311678513693675198528903749592178430023654766307984210545406569113316724929716247229595977400220844119144338164261388577585276604629089046098562357748837158051325497196542410385650956347111293623668206747003342415749940013870916830714002649970405614038421483405332482321330331806365634416940539977273328311336993638046151764970921768039399376393993442355499134613161441235729282036540833298253841579268513490469379744189881891939270108327360977665931065286054325977954613458957362697386550906870539988948229862103035125694877893452555708172154777563126817650288303210348091467538017907007435324259573948543853870100945272992261862743131145998762972881260298921600568885487649244471316634976720129048375163762779187059822012887869151579080344597703990078107497067789267498681413290052725949762633973979690988269005415760221892351584360324707929233506635412655174392402454633631698399479362910474129353826609949709886622751724281506097436394568823549983475207257030202021265642646854100002258503341428148660477214921682316964136610703564069348216597837335054030435023657961458781398191339080435510360340678980136520236005485222880072996914070193423002717030682914489165073181956773867978375320707182026944614854310807905275124192411929658965904918900092989500217338677526549234204640565219786069135941684853855620786409051370142246267383365987202989994877729475425156366411570437438839545759198731469145405925195943831713010339524469541008748677860241995917100385228176222054503169479068222511371120603836779954212959395436085125452048009957500533412856438468208473656865704408071578277235100395363393999937087683404407593976543666316834078883414613136711841255999868928873329296151869587937052883206584584494945707305523596424226676586833038567708772494952237810215498990660608328295963379922304418493552214339270142405270851758147975561947741199276454259870233075813931358941522723776368411974808509623103036005237183108584872100103433630026768099213743392414423572435404392506951076246424493442367324941814463498788881729141642445711914118436451890428031473019899229524787821686572518691854311081987769645195262739620409142538075137551135306161271722527949483238363015298147025728240815465503803644754189791465717458879502226425018171396546630588607048026814048277664922675145540812027978035416331015027994879880777837540378861856456171111010478529310897479002461663722665632768109227369116823899509017505665222739382153086739509240113656549899359414737812149501916591375742072200836407316204692587492240697629686449627360473239988243128612567630747349138877145300195703537150793529407666847488863726860043102771050881908910174711935860864696138192451487400431853940516933046416837837520354905933468637201391093506375016961725818478542626871419226329937407111809125715733700307174483641148722626445541832248253280152702284773724903103834421059235883908052954990737103335210316459314426888761850910215168721932655924480893534300439102874599988783973597322229162549434566174944589861232341222165378976029876182888447299816269021775388802319037062089972745800585372956998837563372741723482183062056474043300923975875829278168707802844301105628779712217884943203289750551661944729474706254135314518323573003967243350103041690043651788313059327330509298941178532414837384951939455281778904854273398576768024100932327678325452009322558739372636123006027974989161242006825377867560713774398727672132419793420129022776720329890882717450977859590648049478075276686073580237956731744291928156464357472912167104406757862341151511590425541746861252686489182263619303262802619117286581942551848834523850396743367692240724243771808455837259147889878191967635642820275160918867614507184722296664131965698536941306585320833051049038329271542256732739452395641281828381728726500551418146335579728670177057782210341924237982578728118179163990158407624134776867296030865283581320802490860682565997163348428378736846403556216105094887899378571694478904366473782160742015623953267319830555268864850764674715796116127596259881664505499828277487756311465908340016886149881529698743341080279558391030098956636020958622071134143208557570467272679470278557967365181908570688448792665382412970550959042036972314691033627055388791378784608574233834120759665063893557917308448967353954860063808725107176767512747176011243106416812484641080155937124954281493691949247296315348422835229984923051767878835127060045221612210091095378608224254766919133067053382510844498055271784201961100095261118356639153537761635083427886128890899263300036803924461404435589212876890224879206888654208912245835165402526303897738352613350686250715373616066963671636907214443200057046664202247711814266859321600830188538380776117099235244434039736665491651307361920054002855756689426313364413016117300629544014740411542755734590865116016533069589247844006719117877984251004471806232027051496500143715642709764606754762884530047846506196613346184253639058165733610748542472568086593114007171346153735166460734010243631341383286672426063550166440296853921609153933517325915698885826205795811131337937245774423343627673323471733253797214855346848920229738810529884323970034479563252304079927321902281834617251022605607806560310474862926167490181845840072161492372756942829871466719784778908001478718643601860610170548575318379434422466230981349014246469781072570223141875946255635581522398447139038013539885962460493493324527979473438275744205170379137616004584426994909644356469628765675036353539462188816451117225755806827700646127029704545459052184223465203135679997342901580710362959542449515810879547715628194134313274855276254538128878531440513763128860208336189008603150958854303618839122197226958144864008607647929301571265746038718420017297620343139206053983068989780238776529544542138773604887741330801138787444100795071845589424942074585060946207290924657472641315874892567343934880002648698709010636548847732326656314969157819581839630406944886436296619121637213272133493482962482090617253414691735938740875406102483474375836376595982693093649972374359425001707917355430940327402086817845997493798410598812999675264431112076717375696966341549066052375077496569809889073431661800660445069040390144990351400871303251590094076599335006893275553946386471373147571963936547897673815758607493783731323362253417476226187365566320629716648584908453162047031391093810455292527158477541332490072998078945523496195495531002841981879440432190683529170668146347452961321274804701141035771176166297695582386813317396831140683579111325098758917175816677757339547938333193095942334984671707593789925894017860629867908150884487841609659050319032295928947724605796756066698489686399544065380003195095956988742150500776327399927779209634952107923076303975216386562122575746353774919085240643077659147245844294003890817007106703032184030090132577103878318145855094573920189422503023808824225122554215212299679154382328895095768830580807488840120079321546492276966811225068106120454375539574108237074396515132269568330810993694438695917789247610965595894734400752091719562208253141276508210174436203224837530440181203070590271416937829245056113179295018373948116139037330904745934387348446082622286592629062247747028511358462685100481283164749164472551281524375469443540499545348870492699058292635160630121138474877078026913760587404491796473193640044768591284416943190168675252693598868351584226550730511151280913504193154880146479176409546455812918002096630550040322411772342875956322302530627198196951667896027376226839207199812634269663560389347842573557064170937322641378967226501680855951328550049393358449743933195193926547800249269006546480772121018497906266391691372435525873996438691936251181570318871222903418530297347352760698181238493517320992873599783112697189499813795451857846464053090073195938141143052443212006738127834954165416966161899442094424118292838667874491681088026117131944567506271445465724724888513236056808421742044500425247545149752605696076265721627391470735691298589789202103185792857550133954587211500417563806907043387038243845393930576530723909431029879906993935552029929068514619559426154228144712233616148161957221013950372068209005981639445258968297083805085939010478089927686787127233998648691790060579982192720231349964511460436703363718852500341811483561558482608686263224191792150704321971737526127480213335714640673335807830297421263751791065030412147058534134098233710248947911648774072247299182942650530118808776649943985242202155586039295784881722092094130708133946176200406490608688467894517088340117356168700975661428859008169176032829127581148681034498831725373714002044366919953876232044400131671434345445702916100948533351647753427407104435452259542621297542398678365995261622455114500383358512759584229387662800009854026108242583715239228376622421668420291772004143589478249093908829438617896463335548258529747648434206382449673890333451038530309909380256678549002736735443665617735519580013312246489670251254179444512013752404304562761287048898488413234087739567352000706104007215323817756406146322357280002246261212102119618305727215475627474065891349675785668220287459984489939135562912428760983099472327726584222601320009319833660982097756883783985457788698617472264674052579240198641522198155713399061721936031147391477077060567806926294068631657554047829270401859728725620508080749638252349499847804466356281817502573034002489132584534438064735443822649636701466682031982056672304331849541561277330264130727545689336606631663269928878650926870287326135927017577324595617901641657374433119420650812620441673240815351731243125253928354209095711446066680043582569665866706056598319407440894148236536113946494593227797571845129361992511913684862889651144782836077573541065400483273812357332867870754338410488412666527389334490814128223998206669767628544030622413617275231083062133715670432365893490314498139978256948055723882791817375225711401376169774197178249172679341415106375770047335823840527948637369400091246137720271451513010593974811662986463330103891703523874401171213982366402480053313359344367892418114455763018674790215598167870376285093519615127612292081260399944611218445192355784742723570718554249028977106612655326444603499188727797907546542019414402660555974147242948897362483069546840680941643737819358911524991617264629276927594724218150773236786134895251906339424831959294984955853194472809693536155438451481684535070647946210431661296497974398927004695323642241510836093049716998840774754184660217894241656996358698825270788312695304183953879873791321415409503387244430058473646083098185277149844074046729165016581285225488866549770423138898703563595726953982060366080274022604347270247033649288104766711173957339804482254216088513035348491752927191329492758081811417701979295905856956390932025745257814304103347765351587777354462770258673834593431231615994289189951319101243966537704945179533706407045697290831152995407862787077725770970575823863413252585058720733471974682420800466247214893196077263463432655938834919650806468195070108570856997801138731682973523235089918837346373675218052429678094910875366166386026679910284798445451607930509436008151400706624804352754661142155033834947682198914813431667490439286823376418815390945936282504415796107391257573991886350439589178121237746663078138627150405250560315875363007130074532190222003704973947550180245543164942434112119155529468451998052473864626194360401931095496068840141990938610630329409569925313278797912366621680554780445204639980153091048121035078206574309356015362598801821431368200550432523294027737816282693780133288663887405381391770830608090090598542284408452051701184806410447941783384412863814294873741468473403262841976992378989158778754209228818474396758900464227305809206713312220401999602877815734656630245031191892765710969687382802255470473048305263472544186878314927707092318651727270528259043831334105781019656851074144463143171200442283874248551846047655462235120632321293947377464630920835661066891127186506541229967891023579166256702406937160368232464252595785176082662082564029849406112212526543929134175283505599281814028907869629795461196658499745883671961952547247480254427222383338158370702796962945524158311879761296653195174045058827631430015593173040504201445485224260757788727025423748001278704941658223895565775134481240345255324773616143900238163580056216863149437623683569604394781928928303879242849702928532601696010541133903522516355298693260586114015569706559091190133266367601455144193783205893094304289814244696851015034783603241610814875849738323106624600053914283064262490401760618069120283788460426881115868832084267201381774459076090447559417082247396084727715557068963471354020002242620252240151037694163498773640587899855105157233533652273480355074097201044422504227793415942887545941168563683401390732575181416565156372231834542085536967121578510815549462311916079713789370677422457725659932375323747454868908448654279610695597759084604713565226418823425447545428943306111532083712920009271943649409210628116005518707201604682031327984052010739282520408745856391364477837261002939667847932668424840248899147717830126204301413436102652356461848312433835627727342530918699341877558986951781625206367806986573661060462040364986537949144847046254165765104973235576516263452801991988878295990655435004212862921161378318830625906099110097250670412100723073829334080985414480748978186081574742214967920752317450771245932439375192427114616254342088708127354035136846889964900938130373079266465546349076134836875108520462691238701344010747316729735718448760283053974752939194295885046323659951794004832727190331790927508805396844260212246037807239899242395437994802674285100373085702749755070173301541753551207898936535684850145992768546315939926348851973725194126310552161529306170893056460686811769484713098523479226915551476095568561057482484580341919742034024419042094722575658936034611990168388481209712719149515158330075813401922190858988421131474062806049130385285041946130210486716951296835190300611220506670267871540834689516547406338300415326869004032442976856861402352137901064938679236077764442780935365577818204296259408088605666831413578305314011441688103407849661680244506412507388405815596009638118898071877116394001823104850118422275700382820574335794170200849230303532466249277988228004044982291368782778153277525970157066172924772673644712556252316280975210550025470069393285484294887550400899153076266559352401575862889854705343108090268028826807008924448071316916580097701470250394357071631018674678005912914075065550206498940158566361660468056692215853421771972223529890675177966183358671919492124301968541429363160432486675805330060562247680724797373152784193803241596938138702161250511313099062609343395337460341434087063007842715153962324429912574605022708120105155959969326666927847954229186778960241134574156927289134291939187750982242511538135274202090497556034020448658203113311740499857968830158078001116984328577474546836920645708457504839692710057905537566019351387331568792473509448557053031847178780805483453823481326807089447695492079446228990262239992500671062683654267364435116088121693682175764925016016049857483471622068881699285432619909205925214553824347427052442643606097295642459355512383900150890548624297788786246459466245971275787278876228158607807194087714902317810740109404059974110985016124245943522778463272310525529494073450311184580515806844932607531926129557538796579579746870326745317187444515622041239241312715952989772420986035203934934118769805917942518297374741280098662148757819145070984506738347473170852791701031247217723636532727900482190769473502994492411641811380384326938775231178584914789551600958308430242458108223145130423047883742476635717512568378191406581427833073448955498015428565885456047307637650834366043877772501789334971912356146165280596364049545983707510148539455171586545643122110922269563035967047558918616227369814613655329445138261165167427228418235816973937229114340440270581046364879146173780818608471623359463171195227491198243159115901803183015252623389320777485032130234845532203577022163266953199116239015202469148864242195474070289497819529048290158284415657864077529493972864815211380545103532839339175357147636477400679608274089828119215705472356418561637064958606873701315109147091058725428715632252763414680133236458334564036500653905236568673200052627532041829215182237118228986109742051870105183628368552170295137737743899433741459805601015996842667773539803912022363343824908946471182296517010444128380480526436919427264551810126402010517493230416336707478409986375015049483397918323388645869100412871033691336368020966451210589586726781416904513193820879445284549930342329827135273549276829081290297167893526517094503864749369163005351438056014427044329886196145965651918492572474698457831065030310524023503001458311029967027709415553183368279600128402374047376838460335648325450115811754013483642233811985811164859570153896669052281312774463560327712058950169819113433297250125583445337283553521148126620169937629346537062697514307295361418024833905667398526664718294350931562879252854685543404429927518622892154680785251728283813166167328854865527620375253104268428852862685593854753887269759027123993286196756744505471943008354288040545857928157046782792536070064199002500323460306102571956529105905691795032128904609560916066549685348091091984582202379255895334734868538644226394123598004058410897586683721663867636953105392805270777870604122758314173713736711081781772571820487932951616739336849941154972072661561307207231444954887043914727984687438522120910454324421221509285450630801549083271230648893321827178295912786565794431571787842830687076959989494755851553918615554790246588939897281517323474881345116907654749903264616048452804255421760643611374559784025792649225044506101921149997247443838054076482126830602291139593582647448943722917081270767395104576063897407465647397901411084548278910995369292297485018289375570471406732513086075288520140487646790538651822146061753369565528688340307460824757064134929388508256293122356618650447634971140516408102529226124526777037063915282413006943793297558368952912045709418609723486977495279117650675935626567172161638539304861966880729969252957072656638707217598628764012727382894518882358265705152900309959290747219283803069283721321413138490441284058925852436342810083866468720968057967472717595409819644660339427748952036455869889339812686851164051048722202077670308424712031625578117392141126754433826810620677733810669889846721431136068923250385995032867538182260016173253178312192607220101724742595782528529382260924943177691315902047494651474987901271952841642211084551329141542642027251314509180662494812836062038641357582495757773684053967657150701666669469972448060040902345465827454076971681225901774780983062721528641804657773925969669523525976524213271319847908919714799404766377166327008570769102452826203955646486200076021297423370106760817579254872759533495707917396439936827928289533317950316337632932819127530831874923666189894905100611728996682605461657329596473026558014079637155801394512034619120144309053034738074560030757325757762065043645907206853658956056896062074847123294142832724684100185411922954760012626492973840099982922466519208862784195023479239656962250655029721635305243956945238853399176867169044633366286484139046855156330348777458049978133853188047107687357633773694368103948095668248108377452448769257557064574288903745688320820368581717236596761731006218156673766081632200540545671712136296691965391259559962395267199562961690472771369425005768910974588986225766043036561414698826308190975379447121088475144247533539820843224729282598639488205451286267550882212246483838321821699787419287711897190219420622121709736737835980023415443814459200235592612567030807732926245123724018832636761720072788019010336473364549832809534924985764293700736129997236733877967908674135781888747186387319119214997540320779542311292235503328533754880669052294196338224270361447457594040423186435822596671409443205561559241276440211464715388461849848101176292011234418443150179247228634296030921188256297943459046837357382804876268026995900310128332909733771431068701842105984365391665475734317971475798467197545652651836971206827943983222438145158853830085862964357527893971359863052579322328550322525817186829600071488071611592012134696876505861284613901995886021734817601281938375292524474047755838022501790101346736712236259832714740690749472565949236096549220957947350323117820811846505229033130683536689444946302381297490468465355058812860935771154167830182665555165562334664751770359699473258063873772983914199212923924258662828095451218778024239129510743224567611053283524372726340682834576786078066889781306804003274738974276988864033727555568413590592954951913616720052399394908423925940419259083133624582662944531654260110162276042124448654730630187937595513797419576351366348549087493248128152452192938400780925579439773650085622045196710239215012764822929044591415739992383057298648263256035875372576314646255576836890042603817803326328643879829990157334038481308173866408562953166509298069037636479441512864055778940540934704208958773374119647028883414481759038822825482830145275690061786993282952241938595102457443639544834818713276253114399060496032752419712564796613944271468107545912611094650669838692537508052932835927667748512616112233555579606863404249627663975079401578822260617115441393721271628933442651887364813224178431237355873216132555188345192223130247363352350520828806996345056139879128415131381785250870123610760054911341664392246873601048785412006401725198000400743210540247490134009102031664088123967068676378850198115051258900434040207356619820321934986333874049440505843825869669310760334154918003145259254210016037254611593207292734625983733966552752017866111895217320460459323081119814689444681896631000196051256803824709457794803503234649529664614039549291633493511850771357592339510323030593732573303233473971535903440910483225606836317121794782018794241933380192788634186746112819920184190915783119003795874385358962317327418866453122043869253647785201859506083029369371649331935627826770856336258795438821099233822543034478860292240774029156189824737266378829775743255783901630568662159757692537315104413046057615041929631339716068514332160657596509833505913330370771481025693907814749875106047308279705028654869862036846602377789295125818040506254344467953788745759131752012815746486273275386595055585948514814557732063311270575677869759089035332623667224356790360539053632114806210688157964649646257260284812912335636834750490840648251680842210748758663617023623773046379259633793802528619778077790998090705547115242419701492924135429986041648292420245991972905838119505822196137882204881346542432117081449249990761624711010093195177078455300997866371109423526985269141861812145265806480842993002441057282296649497639023192269717702407569441096663165364609307146458469524045060382649521141903694526702439389043058755529195854048183890489269103407758786559468348186827864326310613677672775907507800677680625301941080346138057289441062094083113935314892515340237228837770289945242324911050254225822397335191634249682956641161418460127274523621039237145238237125292814430752233789354410303976859532167590739202831642326102506296155436646567251258436075024557591759321899593852487898844311934147196341201638447452321884841838320404050159447114413109738037107744117878750159507748587770800945029811131973156059951665489639581395933957384762851682452767604738534839098464193808744387626221372273737686794689681519870216470406611311600616583629667777754776163504112242885821907607374368838397165444400432846798419235599727331167914443061486946539088904414430054991654857513912053657356039400039293984785084141976945111432320614363825259205711942740012735840952139785353357963446815473626542323534910581238238879709323471634803523536151344132973729225635932520413581862459795397201819222308832458483655905039653241432946812119807253029530571779438578184704177870661539687336393582675868307206128434446519320818168111235853071439849524041170398169928407096204285608747880525620455425250842634952612862492703213811888275096283928851343959436076003174881831451564670532268630728412168464787026533293053947661492231062651016020747573966370905913272788795880376643432578225679271148576780897004214124314566031840703312705730190996166146860520456730379988888838004108424259728474819234266277502326440297268997508323160967220373211210769658849928500369985834020381490107088887405210944330431613630033602979344671338366109173284185480914735222079293568437239114580676327602906126749851837311967332642209220026456418472291605889563209411218561454217614575032147927402910194347787904834372704398370471481762545735885260388494037862679791591866215055363720235546734730126839544038272754943009403994679167741392888935852664232713687424240701362873523838358921373849370643183775501085893217312775628755536948403250428669048077224901646076343515751562105819972053147626639927234570294963721194502338022650027607148607540497833139737444949310561073793784385441802318447092772400012325573675732550494828358527532172405229336422355021757754553529632178515359852318037656078864998950470121018575650283154509974459305362274145576498794174689467783341400853561128945720151590774173009009277766504799973628124461935859292890989530525790765058553871002717275965353195224470513938708581473831961649227521275462901520388229857381477280345690427624770248148657062085889330488571862126637270669699450787228093564759469204679893439310396538420259919763953783299960591125913718350291115926107861451697866710975761490885715878116095531224096860266699387077905735522614677469329318016360491244966941727416935750546082712623081624573702426283302425140262791250983612680218909163043743215043691037088752918488417403884476535501049361236284527544244083001461481869409317123755946007926338300250820498638345608384578970913109652056093780071175533752857414338727498253352345916921687690206005763851853840852636075683639895096637159973577131433287765118532672498534481309658977415059304441078492494287994646434810697860536131694532984513354974539368459095461228535272546983734527180058418003936754495485341226955025482154089542186093151220825356119379903885710419054063218440845534973679113187225657791380261443204625748808057791738912233913954371777388097458517487392742539444270343885955017459477855765649350405197090134433379639646086991013057195927639156189948357081655338881596292602671749840742367183672503741004360304260596619290539117751521639562434515904786394020566433810735492710980603574678280688149559881417499870428441726929922770644622760465153209075495915289120385528121099300913339913615161187389590931422147176688098168479700056845317748977874386037833642481578989398278784013897574840340040644414312578493558845817189756732159226496223735637302892217362354115935088950558931577763362879315256569446579364103114697961070475157459676740431317846860262957830377661968008802754227761920793901439275743845740123581082207290420504840499976996149720957725236277072333483152242891729078072729609516690178520396257708247446990497388440284879519429369648653044545854154779904263767893271380918586719089605961487800704330076945272699953425644589161407123304478931312104077068076650929577619729691543678059754509104134421436684402031116010574438614884532427677312650938483672032931819222184971573584852096376960072128488061450237110469594780985774595557746811550302666339490424438218883220223142229278705609940860417580120617117591477902224341020415943698304290312039714952098231378780755471528281610191610405987730519483426473877309050214354095884738342614552407348506949482840655764308051410099489745892928529812658683855831535018067977451653379334427368990654648620980079234680985932020660956985956405986608903168832900806944960460309143951631549671018802052077454512053473978837336010813571065917117803461718042965369331777554082101942394926747758517909197387977860273590514272903035537218942068079424976351077164195411888589653091723842783851817953272886724111752437500651539771989769122898552658944106501744323563048414425332302661083495701475929824449897994089025225947042660867510859307378205318058747851275667134515309778697570446527512923228875443018116432593247384693308247312160932310365049836218424805190570949823428602100780891355853987856520487716443998634268386522348774857225104420967535068259854112336389105759086458552591867298998391220899494682380328069969427452552482725377984222051570202813451148616708815049065585278783490096242977142617335966874773222199688964520649849722178451286377966682749949638130961654222275928685805333102672801481264814589905966169993520369881481590261662259941572288438292909170631382908265825875190160227084910457986984180997543820855823930139800739848745657541346540574085287967423117646987786918049023576139220458971164748559328621206662451264415962115860424278265867986675885239431337440565159364556360918381959683121431926886510256013985200604665068737547011474956298464951709765704528995252264853477108903390085505345573350650023533366665173196574703321845855386596859492452548521630863557267808299271233383335330452451632751170509689631831528560049739953481077650359832267405082327498375005256055620419752945559954014992797251219940395742699631869913969131032784617413480072173753956553720063404616817815310287730935081972778101692178767378121014192421242236690320339896086252745854841609954413366500300877700387528969940830167115489348824496387360686099281429499179784113825418905171137640666216132644840184783232335577842007528427204954905654400363899667578702631122613633416597808930528410287892093408493884962172897648397786725595358478627999899338616489687048609750327154519557421437388809712957964723083147875959682329281968461007164224633830801159892158904568171179009275175500104683574703613744309580364889251781804880810828888211484538953350352610509363349745286704125936055701475770792724657453736900714759202700506169942083804140045986414089655157969289008608222434730045418135020191202727018315556851769145588237083544436084885839527335345808828942736421050308949513373180657773283436161749841184100473547629701725671350004389976544468132272326553962491146324100593627788490407102311308444268602928326931878332967111856347257891662444953366792060832753821187537727834451896526748000327909209465932193911575024426886916162259910755791912369498790531503458859455173325061511050416448087512951573910967227763738158066141016842381798608309745588358708612395883847797368052676795594801226694864473979134364069926721218295323239201607416447673112430464894706439157759299719891324875739250014732642942893143368378070400178903929521080416968731585430571414622543580054217406113048576762584674733286598719109387614492233701167901514257872263329977930888463543129964084137628976852890056006205812588630929377370326315508988982058990427812567199041968311490501839022551640490891375304595754809040038813157172941696545268182183539110234583990824166977170470418749366167207103117703076981512609834587010684201081621220745319791381983434231814457829239440601784776507318614655924944166919525965673894988717435797850914109308566077654157953955426605166485347622315905338660966116670437711894140529450125468453804525461223795737343416071071717877859643846434623509955987646758124496636119340189916464894500817106356205393704532394796127997245081266821207523393111126487763015731741280717848987406816360950072478746054889647914366958003868439688972937886435767829282102717603544389766589621437269845665519011113169245231294525788617524774712786923947193355292904247963587430821670522584720168855088619742620925604988789659836255099450906467212803794777519795949925692263800663095709129395392120043494445326044990159383137333198096949774220320403168722366235202886076788593890227210306464347370634655510098859003979220626462478630392633756373407431732132821314232444894689694582783279266517521770313014283727362211021065878903073049975911316074557211377837413125366698638457801242339145152808181514879448605002852566140173541283762220180556637128255332744634690264535327121854419241821842347501512857274876414319031118458747874712891967692759736928577407177972578526721926897019250155654184507544082052244762062601429619095938694941956865759524559869460280115870972065945546183456466912859454620604614206356669308406244044986233966240109226185482749261816248424228225687206384973433377859526346760847585558015881468093447371944014965200837321667503880902281539472561301649616062687940195974740751391282739800966317288335920740309995044547971254378201294077019194854629461480546452748679672449088278307546922903502319102204441336942478383125330649814724300003032218867855430664202324005668833069653087871475786785607604622358858370697836877500890308803655874718539735132272222178472381141422846536099178804026457931829132000431355511991918399357665273175787942018832795209851350670100388418306491396198931731680145667814537040553564388125060367866719185091018325608132545415446109099836483226176583295037087574209328523500719714866903927786855390723426736894615083829119089246812039412997341417536112518108476868229991612243887172446626111278588381196366639830250787897298826156239827527608156052655788687627390630494669788298275238060184201759763044253239229730729600256096734244997090640973437024346191644989726952975174408225693292171922206851128541891188924957415850289073476958976876849707885412166986836656602703179464084130756308156546953046683270691826017020247439229846611544216389805506464066831343710465784733427584797146630840974931013612617346243585453525501622380434365579015751376594526680447386773316077698084107303573185765698503502896663805284226002620708832126781354412805642885090024506359378921592681190387215254375889736427355801652820853422136630491798981834908004971274869298012247197101296757187684392986313790465680045673617952487881477272303994531020141457131343055031894385984888309918977271042447523492727300352335889704023634515715837989972911990977523001477544070657326515911960596065247405248401170563089476245403834688444872040485631736608161188250929061579744106458393650832339451568849582505076934711359170318708572953663812866171635436467312659643957558668601790820820199315353330721832353675146042732453808667500481684364890909123762990175285915619902660991218725326141884165906891596435369756530232211898166402645664747209510091801906101761399094292647170314679250413364727215493957078414681853703776572429296452699988870620198070040731439916969040259984044380883958957978907456253949728340438062922763288641322558487060929525874735700475532194735384734832832238070595398087646698713666569300197915110564292888403363948832864455550498951779976506428889226271167998074708291063310665969012062908276821812754308238173240061559907605469288933179942469891932511530198510818298984177554376794744166549648868512995015711169041023052573961364434947295180363483494131733002055986154877356313576231364712596567340520874426623469376910847428402745565622018794975731720684258684447994992075503183715803798909503619604366079758706632204766726869143073539876923008244459935510730080810772833588780464389466693507513420436647068922110284946116427426055620142880978436509879307404733882534092100829917338147924048532824736811760718728934590557161010724644123530615796838257251191622018745622866546938343513489129915319519352945649606718703309642477843491521197490065664425961689471465169479214474471302968342601661795303944002631820276898451588723467548954704132854384591995964161294179436855517004539021178427868564062868374335418781975422735320067025072119942022426147748960521463254292228924397257872780651862292511119083503898017135353836676581273768575498620637161817274957106759441153629882316081959776816806250437719134149537788747974496732340566481190993844832588779813105729720607198951180147299782184147070995291353931191725501238395711398075878460730623554062356867553515433954820686560881233923699245300834863072995022324183370639172517856086191089481219930491114845916278999229603730524922821118376331881150764408489151570522000249534262169571864317620619666192749550269081823375995211930070240896626750872457487374509679335183811227914847839978127634880439210806344160471133090085069036350204077118182558003144505749206815589894471413392689688976627668358851087215444941514704222937352758559258387909199904123379091628763334720306050234928885754182608161929131510717834296861465831370646498580453102179437432479235020332549900747505616594030900481431517407222648705402463236509746506152758352456074322009725094138082678262847255781406437584591726932939818502165884412484630957565771826239464757746131016621909700039452325160188251941462607082190065414788971011017946671730627749713642527158697666269710230199359994943768214349760794074539363830794683953448973844452776030642228066025295259963996008017432566138897998393837783332566464645951362868678334492677837121614318097654867019156916555782016192920371785808358339674331272438155572502064355051229958331109978676021267183364554385607098688703950694806603495178462394680843233847865945403318772720418176317616598464485311018245375180176227213387443994517260402288823962945578240726466668417658158846041371606219056674395669400814522097238813077364629419181696205525034022299771511552147890877667755613468459774436624591317433764538846152302827879527275321452865445901641806275588860205191267318516596883274354012441096936319834239362838801506738595987347879765158589181206720222904651470496766767783010386799601366457455158970667600279314750353960298398971543753023354138160982813846806826607719175225685255505426975131700298305918218817174576631424617120420672909690793729400636895032880061669748467928993678180042761658923789503706497146327902713931491331692696052938700989802092320814216055140633659359127793059200771512246430450208790222299485535182060936004546342803899934289484782872834609726971382821708822068244244121982415085520457486450541746862803273083155068031303871768530839638788382231162897227462373842035691450489628584004574937113409050643308510358552801203488431079293313256674859922019398093492702717779612640441883843450320165327193546884446408991858030610714353694119599588497025194869392956297176067008431211432938755589796472295212727675786709524002793611537928032244897790808732363793703123011246448368031582078638299202202546598554679265350723339903762490017854108213145337499066194253636758249052953528324837170939459963169000371156362043237066156284393191338698267317767471217981274852333684602913964082054613193546663163566753533032800330888840864591905032632550494926218410125291593604703675499108607156694988355835978614081870323065759662566275876468841638705517037271437362712987997553216582990112352751793576201576222415490824886527282765235997875152504707821724407281479737353762381207661539130467062403761626678957055766416802256026197242667150945418049001026308180430453351780845543813152001950023652333886137617772056124076228277390742764053522038895577218051567099692282046937079701012419628182052532501372806847279275582857585246327257150463972279363436874509310290287155515230167460911748598836408689083399305765181844732565533670645483554105521161532637414076991117464119244215146775702821947957001367184076513810818210603138789388845711715433251715489983744098110229387405755409395943797867798604578728444705386970937360659555512899217628075270938172283775780379394003920455361704530975591437146245818058230037412701174555187317273623213211919419990869467316864843971970460030366335969388515015218809171586123239775426665667974078830450065976319398227901090298083797110588584312336504705977048877649444816586986327963293348380901021685204573826437541847443222902945192868482684970127442737871798020572410996998333568999054246955782422354858320309319936530909722698484268175346107600372515341487194657324968620016938705054498675361905548984592329471547646768197497367596352109260456225827118514276847781637441424824017841348530303726939220756497841094251192666208201411894540169473968611011281336538881667985454250107016166974907177008711503815115667789302256619663154107397204826375341366573803389701051815843303802574356446638028231325127748444334534919211167985580652807290533021444261171323110847557332945208727582754954187995224405573221805741169467515360611590091035044993700267402699189927456494038882676763531652748517912415225289566387312172550756509703019301824141120274974944630528888407207631998819741789829594981279899717399124273276420451764309860979419846164858880435012461213247716477641972691447876515345373016274657446755408358402696164008117776631401239096618304883842837821043598311975314063173819259419285816302625896618207626047661531071349085117356705438174111273321093465232965634576369585640837990738215471837408197502496874047341635875867830902802129483187978650378871922371402897415522338866780940079339431767414700398028539536123101516687184000234882831486694478840634110614093587958238436767486139802228443592965482527301965391193451299856013325960847487833669245443698575506842586237716816828666430256765658987465441224676962317902763693618402614426611205643832611478148470002757458908388171564631435833405441157470275365337318186821197734069162659129477780131091755626180687302795457108870778530981263659673157707468083452916909458191531355092295825109576614153961438433937130253005724974718530267711188479396250128480336399568350396005565451451583845577839494267262814760103644405632074925978611527512710011698688053043582553059832910901932306295297536254464901049359932938006331133345506697181412254242084033506591208076209967048620227975746519607284834926893299763920733764763376594810847802847376944622699459164541013791796099345206353741975363188900702025175338556189006093966428007514305752401127562221538943337202796463210041307137555490189616967798631172616644642484546456753735995393233862853802601819085022978561917830264521659840342948714066879564394432674840670806727376626793968480391268535145642739352088222057284549619174623681775087140759991279992990573696674148591280870383590977365225455403284068223262492295703241677305393138287044386351551675532558702431815142432897068001344654115540764044367334831809490061939679667935429803279909417657344364965771867038965230629408760856937680477412229994008353097993353795358724313209874832854791171247149964300557284040596230470585553635364726493673000165286526005720195893937977934760499181328921783627595915267372401366934694617399887799701976192531291912279097564951230150969193415128985518018453315395799474403320535557426694179808963955170199168582112374126197834180289863860553641601715273804598333644834160996502292236508471482889476341494412678373530789764667146300186720318087871194748404495839156504428729514759769281112948786741447439745195929509519981736181869035349565522780581822490958999655321060085901646970726510994074030594864053259636763667109052692743309772183282437860067120085974227751631606329306554091617534517665181723758489623425561963573020574680503833369971256980085994714638559619645032607293714466539728079409256144261857651257738190757008888113456975170737164464055243585141446417149128226845624148578553085730412738656526212465287257731121145030463025249745711899392032542050878787271347521723182256995184399560656991944666349721264673746406248999959993553594478315500919506069582437848984972105297704407507647493311577133886145908716952512516836543076112692048954529756063339520291094705576544195419515938624153440865030053697588541529940657327465199521550586155114107809964086862257369484798689968949430791890041771427526446315937043834456045514337327812734761982658070891989915790615804726117816390624675684526323527128957956596881322480491654780145220748942279659191308295048972456459933838348301012084318091665627280676293664539817288403769501759001156523584448136316225299743270758921171761833136586170110358865591913885341329313857839128875336403174868706380556556270409119267947409696330877594114528219562995967397349814415323875223592086764598836869387170533361468978472036856365020474599143742709806166435160599608308011008173854610874395710379946219902701058508248437562429897290798632671170820928808795472479113245631117341547247841115239936990150409478560484798481365716043279854115342893192618578759343413612390975861050489816037860649958888490067540371977752454893606739075211496321514718192201425802998301160847536483453223380906166212064381364846148580273236161288689374386876423421112479922653156342841649809376349954614634435863620874175869835796694350107419159041278633696459293239438998411783580517562969473186061646397221303803807859259356188823678081312459609754432909908560625535498818020480123010482691218797295546293016323090359789275158909263975477413567790492849106034200295816955926587707733930472970192189244791446480447369132688871081290444616670519591824469806297495402224531168481858523634422214795094644249947029866106452539130385282268301876501757636886852970064926845750614880152733102401040013912329779533897585426299920340772309368401988812549823653218521714539275921115933530418001752868200926094405754136929582249257580894727905100283483573941349240376787156115097241373066139962622288598116854941542663329474748929485967945300050433753959078622303487633170577032178908181563841520649584598154175180036281780041855357986533856061296602572484675019006975186987169876624536178488833567692312922731257349225933469814683142154532723324889522431279566972598771664907038582477305050267721312952711878105470444609854287072859954902858825173662053674397396390950117750951888424780960967561771290300535798429098116576489347543669566794610692052532458326235311137086092008346348378842278168195211612487503209938788315706457350567132589264438339838721433344949697276081829290165429578757605244549178533484682100840303370799913974135662619813654357746516942705429122519648756943830997209127575334895960797840573851000495652270742338009015127815753092183557452552328089066697153982104422829434289966299946117041445754889110235769049831208535277288653118723056640071240555715011127828067338101051550791879516786059627900729507029614739904142721321771249360790507534827375693389974310050254114887982973281239645001665442744459690498425740967648212909043507864137028078460021189297975255131659121192313545773466559649149592654212413992407531725000701015222622051983464649311726993478843317230868420735938415125128317556768539127494094178521263888756301333219028149949170789843819201211393126722682358664528100930803019003183294053111806820963145989121314168568067905520594252769254336295905756807070253159688327464236714973670434592703974037794068351958522759943952777732465486235373838977385595688806592567025703353587172289756940289157699506398625495454210319877061221879052274281464730943480359991781625535469746334949430353215110047193947449745302344177117721374952351644442524877597499350787384912540265445514975896574861995956405521983901416595173559246533251199308859309980443345197078597435670489945078049466529251101543529226521498238540615774424438063477481640210019733457193516321675579077985912890338010877344462316886118288409657291893711264434556407448955824958461385715914518279006386893827312686124558809044840439754870486242547879754929349133166279641187212339062164314667633438306221645412296746615912984738479206004558160957755847537415516294936001818842892902117548484830729325789672811728398083744594560491945804270815817423922768366243290212937326411976979568249863056229990242507312911386629605600278668057907805061076265770068594465407477832379438381178973940922619167651844168505380692750116044621738665162582798831268269645815619684794875261522678610419648958454784557611560395396268636419576284872317883122444935289637432573865151273126076198954918205138309568173235847404686290840461445166462786501092285895068053109155145293530156803548475188857434644881330474758743443430931161191216222528435483595688360089757438804666651731097726896247555123339674103317846328865320630871746366915994764856550959709087350616204571661933987706485433344282870519453508355167854046220687792646297001271747828756614227015395325469956991994905262379109497296815114623653807360155850455587154304690645045604384359695646307778918664628348925177775372618188174967629838319228003787415496687813009987915963731971766077141118258198825095730336350935510833266636909708416514716744259770441987565529438122837450482571594457664137819030870141701441777333515745468235930194199710459036487697614535640570371503636538421992399507680355664337658262131066520739464402809850609649396689694581269589252762285012608882337232782707767612786969754075566285418924429980815743013108592937596616075347721075676543342471057069300010451538011282542369750615125427193511523365175091578449366788084869928318044112238869018775524297342994973482424858030378833017558442293371350575191103571179191845798685955251565330325543707815518811293567461137514782614886667071848543463174676533341687252729839432075390481618937918587425383500652897226996592084908093954420599287950723652077778047148982724265949541481066864444427150169043614629405534673493695006498965347941952567644878974495274362715479874223576603838810023576953441291190888109226837004747813680098982887029580043104164358315683255080605003835098627379636380828694282507929843019251497490128179160265192063912872307217592692023588246951492267372917562544604075810261151915313649561667072754782840759797082255642293478960917559296327735788849712244819121977720530224635144196943661675405561155670284776298478667571882530550658645768904108814808860544265141067339069516595297665737029470984671296921471222588942293955810071922602903740302568402618230592447647984097992414271384839599177750271483915728905239659736283712904724286420815425611390528789656401289022972766341892160204415098693034176974005247214049357245866609855424723502406554339813600074831616198491482906503436289107331817574809881087103184512347281370953244861389737363416214929813174074550033552338624181928549519552835725708836716556148099164438874674518593637319627760348580004597090856897597079437355487831921614524252589549912666861652794014610623247103888508983115700817289711553468390635349668760618092696344815665084281711310045691071807422539473977707339978328329131352545963653145580228463582900872976144696165858304678683885400170217030139513604738309490282093340965809957607073208553192951415067817819539768837297139174705645586512666143970458734258132512891625491296157017262286073965964060893222091558945631467536569455031146987325551511786140164232694787144626648811068522095002502740695204740250220784337497014336419762787003864309990931813583163649956681799385984186546381017703097419498315182299231602957750137542198135194067110539940235828202495689610062674082508624464297478209257461431237368527596513997693072868479693139083097469562750732957972635224363496520177284600685256158103166786420753483098301138348612131552140571653299396390746776262532971038491092400214092768393878606053021264557902995057204013357380861659115874411017281624294091305480971729364983370392003116945190648823608105740538521706358348931872713645424994759831872048510916359204495112783635588028066744052356200117548824057767081410956295115549637664089119551431335319927771032816152103372813445879161869627650252052412458509927343454947842025870279351479275843050111606948705400347778739562487818045537743875179943697087017733551015889773198550825037053366748634679425615359959546651171310602618156974593951077196342240587099318310125832290496122666500548404125756333565165822829536446420449555515106484275489937233278871428177942766228790739102662192465471752567679913134130933426507751540934123840014986717674187053390730342304875959709113607177510608701866427032268018203616433289692774524248874695437139033098242691352068164029720378842891563120486336233106559157487278412997860573803357702589676963330353860032708917941020569608511033687174481375679534179712074873266390963870124197615718289001283843235739481671005307021420398132848116938466445847756059863528819364795919239922396749190384541853045091651012058806988963495287899526243421031257222565070443593701432675178173154084809372300706319634002786881785713884375326049310715271617438924578737223604940385078866000402924483142151626369244504345403510892065966130265041986862163323699021571450055768389560494954376517172617004849951512755868100659354013122767821546375782859576374195385728378406771536302705077641495079865413781438381460508431191159688510742018996192242415904893115995499115664596972196979688938955279475517222774764248337354285514431662692862537237409227056240716269707149445463807444828616675995847956314905979705311103634447960683236481647635630671910281498308659288528337906877215498579018584262237887417563215213976988760983864369662591715199430871470559709543935508088463328253180697027479151296851057730073514810160818853529527391470176002633450816384453740023777806565333912099390204743208220824308845210686553869056631965451995449470909556533271199721926335001798923636757184815023099781516775059928299502185049745667499197165672222582614216784132367455767211143437510039800453356897016108903991002983541132869212801369822340376164810182256886522541269160057234286193087491807638982287180218687088603798722819880408877073979139600341588111593986951936307273824269623889067246211356776597510114118767980988919508571260111941245787223024152498275844137372555806830980381836230620159143697418202483543924580286443614664910664087094377135362639020325065146815892161045040231125460686305688216971679661349456870294426755499035229461979404590153438662798919541983841185417011484453934488944526486651603974644335984907088728405517398181097429122763140619665504612371366913673617755328633413938732834615654371110877655842322991909659805803209376625719460830211383376086213542999810121679714779702817820795323325197003618776799478842504324729229311802321121394048224538788710314682395779516487384294388144020481730968900782420121141211685071093188834089180944920584048801112977387177901010496369081247860235275687662426044541826946610095560897833447494161422441279218488614076368139600030419253107482965410618746896218018226825663882506884136331922581648187136997983857831189276506098902124221591387894142975528739681281033944794690314541044167958381704359719447130952662919223635899872402904882254371741273547746661230900703382515780345520898857222519359044721023084254435966602475870823314665319014150713308247828193663031411167431577910904421407049399055511589331782124633221204501193269786215890335658646646030443917134990253456617281761474120476059591096596399058067847671762336830775368931866628186053968070282861178382504988478459596799474225303337844034390136010369094922038366560892215390492079909303640131104808056568426381932148751656629912235835235129361135305810229800139004682748432662801225466122260987750613358596964846718988742223154001338337697160723230483056991378228394738413565956182966761549051837166786655792143906445602175781535147543287982432721367575025100235617667290993930460009312712998646734509900192702920599312347276251152073010178433672204660370486101385511433288030198199429905954210406479296049531479539974414889101376777768350352651961642232838157341751379545641025784681975503450786755538142996121271555698764177900462718671963862994028494894473751663656766132810017168038054072144846798391410784818521970158303285936175258274131677415008355053496276776901010584124386108698304695533556587663108161227436786044141544839125797824456100708431971407047128826803959949500214180607935325582230880524414847734542151061099901662377353437375702005175550088280313264921522897307402764349393941412805588347434488845557098277279280952195859223538160104668896161631583417428269194913562945999836183614364002072270306768593222198614774329347217529644798099048128259872634968760870700166064517104043131519247692434867659446798828858039795610197552251703432555041889037143918657747792627057997307346169482880686848271458319678813257432009271747439794793683784555761304933814908410977348776342257761563913374247741429506326043012209547799474619356834049911373292392820909638013832247034038609349828754665697316662573216333682810551719104900918417479350562755824707033714631906432955460201645032796391123457483043657756240130386213564875030859310959554723043614842383544255923838310573186946460749550766791156728841956412995588836151230359512677001999622245131343846389891218435933041111004680605855771192301571727425750399488861272615889467474836265822578944523228244039043960803242004573498336834558449334974096491898516732603535708810635817826143513556452357678837987837448328754817942458429099625618887152623316787606649410634237958889537485681808302199481241182974991941854650797977257586991060826307250963492704192495537654481008222020330551206723809565320715682619069015480425069283917863326654128109453469792529773735104372172227596508702424906808801157148139150354429691090689517687033099255589496199831865042489332001657109639867315281435861661115599750474890288586036826756856575083698550198016422166951193884865622052227135331673082096305801387665066415213633795603844298895669233920388582220138832070305099711117450460586325733952213797459394863413029828208177028457052887834093012829838276352082212544557007375859727793258528307952871255514778391059252202053565735645509397106333124557197102720318537949429567101205972174362952231803813796963802705396337563880004051907655506055350967996189404359559064675335715841722973096020809515482025688916588040021297196977593454795890523113389450337864275349587370678357393381776369993392629414498175794563865164061212135730635422617234194947620873535433881934456318416743814895619073000564170969356581224551069192984598176135884228621893783159535554197910629712437089140574365115081460683088144699444406320304471087054977050165657629539263853411603324537939744669490790614835741603307309080021500879033464540108628377840724017912694788931582929483037627919881163584921611281894816118690235488685354485381810440645438732455958534113274060598286863783220770790451866902111026994855415420576761227589942984162405689326820338713895682429677843096100656103507812708309815963539062885542240822234968800318977680969549507241022922629903727627871554627513968427687434215356126857455426066382477943026075881420784486062203393480363161926979366249493051850130320177427694654767976234110527225354762912351190028924553138571564504274841794404922374070029309623260245879499071946526276114471339519983651959130644386247365283489376630738534499802661988990454018540937643337822586905327282658082639165885939367647457854395619057347203706838837855251459701865566020966357433163822170722341533122247464933971095747223343518974933237513799664682729508941542251955785473080793595849537021879665912872095399718880150519854903827222337017002363079914757887659451852513445991096697306829080210843058715459858337133896474527241416506883074621998901492735273439700823875842437700493221052790552160433525455787089931691294274935224320132386026439753574979436613300829104454997655209622099062633486767320634371986909818893341980845755077912914896092963142802038799363474947586052469873314612824296631523868993663321110727134880811095041902568951272761039865235614801354406337959823370742782616313876456035341884946351984209886977493319873670268475894906999186220784979894046787522513686257841334619518838828001427013175408191947662242804875593051500037530128178324347180926222238302974382811048982221476884539671454213340433533139687927636791083221721084343888502944925625878526645548548812006092595661811687491879347024059058171989560777340781413738729389616344560952712706961562987155745964450046538579656697900758507882823856554392948107901791400179488285956839776610175469520083831392543267861556864442597274890068976148138937003709076019584531065027762772491746072989347704340077051914964690219345412337322351815717494504927166572275479347626459999885423585609004611824535476591863746041519149960493725802081407825739307750796767140105450700621196297192957681006928258361406033432144223770535315672564445055469370467441704352733905126207269043248321471527391433463221474404624268301032547961827955674929670566413157254442679685594193976749972486176937984052016650897996665763170826776553583294230617443206255674442718020719100731432366512938539754481857736548707654441581418353294844108773586762407966498753928789644827280216777071803413364439183502867389456417658065740919241986397230700608620948950555299763547229178386006939048977098086410626719804995175296582056636979563019777695949608283482180679299041176692612187667873266842454682580167197610081991839331974817184109288830966549140327004187526499692144680071769782512952005105116636059152783825528267650229289796054801989657754997616096792510071617015058502880676989735716342707201772336385404489293414717648900644645469560330708811080858234366075174003289548355398059324293875134540762426536305693228723993086675296951551183170008745715486715830868281704706619118793525982379143039095675102116866614785404396424895037490358271030157299946050257938980588886943836564545067355863971234774193528689042540750996163943093479707482734991682852207659573678587853658495358839052983230744859942006874988292010817942757225335165062615182140605537114276904209458256340635107155476389412165859412769370314057289044822802193175442949185568998926078657105231105511712475161871895464853392980892893418987964709996154822478186085420047537650137518998114661435196795614034800652747008765409771035042878026109522702172882158263069322120112375327159121506556625410237436745030380198459960879813728838735960674839789241434881210849958176426109648267771062236662753681407489763227904276688916598679700740835797807506242519274897849640603601394737998866833496705886450341136383099180300239521441808431465997595801242147774114072502110031186179008010309890193062636989555526470748632092348165530549170121550765304597859533574557247779655987659627734011742288860670191890177975262632402058463148715025157650230409306085672001127884039878512519295686743044150849112734775327791383859264626141021033471314555728913924816615714162726486516450247528601817341807511128048004624523320700132242753706350312275436128163012827632883487521436738755445394392584080639777698203368834819889631527326382862506341405854599424399565529084534975758752719768302314773611693917228857819446633327080946234473852748325389463303674115194458915195329239925935699462821737654523169695474681163403675405949780273097037759320045584552169071082677487368823396258883203153346772115459541618713236922972894193823906422132712354769453748782756518523511396472897975550287881258528770954496871578562248628247166280004257971966633327375506274746122741669700201846471587840005569739150043329553201262293642598478559042473354882638519709635279656216556245593696542928715083067746522080740574148025476797698077305695333113705042064664949025737057342826873307897882323751192869153891932327391618547854523534124614846331742962075954813843755614265042723539990412025479007292624767852816511670508248329363536512959660587146086746056340848662254423970474566026670872668828657620862760508250778086239821841566293756643736907980505157071997450015454122685129825708409410361713848235237078041170388368441066568475081610163788432965331150932909514014442796114207618647905139960708455723111564613852974422666338602895702282750814696263926787241343947714643698065030336280123974069883485970468728690621534189537869597547562219747765414214542274744487506274676432986874488740198599278960677545313615697816423614116755274052464933770290761182855094292243637545510544408235028857928050872539136900467702068466530822150487834591503577878079777553692070644731172182306759273313304996554731751906373052208499274449859885037400424654537641545841409489414169770706749597227187883005781017312473909358770359749463202460975516945941729271043403959400817028231476054865037257802306050433089275583689875749156507077684832985376556845212424793855896778962421657934267038046680368129466084534386277295809031659195051283532417828255287747814556456717428811257157744536584949303128648725001905619262999572406671693729143866263788910768032753669325901869409133238961056339854283906409252046304951631698317165473708240503628831751717209401451409051122085232207011155898425910712721547550719321797207095435474905759049862405830179776580305726087084667587826342386677035200618067992453693758998532724130902741389095858042672928175085718432987258945457394046214516482846290338248205231677511336690289758662570537219208626169012010616135389264575841915676341783337207393317742193624858559511496560102024509571989768726678723995462464815521336316399217790846010446463342270366960459142519758041224726293848985823061192383109326356446470756694170893451667900931434104906709177036721954448186294233055998628963894493374355290793539729733288212513848910288578032186860795781636455814547400578699093939481523118286190619516669276285587715170016268144016948023613878564156346314847226553922899139980004830736424395314969970309145958703702628432105160776906305579588217244839194467920488022086556936821416069023195132091158876517936251139649436434047344992716783056580587628332271359003320220550410002882829067007843075510425347948210532749264809686609967081239016306474738817864831216940482685567984208325744932627182964425786121302463342955809417584514219271314951307679631087423524905375708307828858467404800223722273385623391617888582827714532957278861524335238934701765389906888138175200635223275510513598051794058599804767185515675933810414035927743910067560625980578975739982070280035946390577271689345004750756572379230256145193401979100714641589105460826733049624398969553445290612469286004997144647233470001377482017116099038345806186486718370168172903956165575266849549185599300450344757990318363828940393864726201444756139336826706910682027414919671409194773563767257691922533643220377520177015173932258156446875261166975501235865826791223902462714693798733686593013155735337990206195565011859460583638075023004419576582189339678674398544901879073694134702529027767218255574574776785195408827852070863831076775193970032810822359087442815567430009529989569382411389548002251244562060769912737275560046271047846225221240564280456962176660635623286549943072146343241556778626822095972061641369359051851573836393348313826114169704152250485402895493584650982839649051006748156002919047935761805179489165243804995358823467021694106207070537747867044633141581337086210852467992066575941985843298708552417603759727890705954597636281938504164492721853627868662685249697582773523306291932263371877769393864249462240558888361058198762204407628357597751088784567691455323619957956592425256501278279839767234733782622623576230917022837453197523406737121381683925935545782995614119294695481077999962701606687865500502711136184556201198456738221773757099492135373995067851704514208960223727848558560251457074634086398881124596390755060603529491783076076526338308574363364965205337819567453166178665982658167958135242813517744311968444126083555457523994726414526218485278551776356834111878949911128306357982084756830053731987005780397736439397006317393350298058429722228968601233234106497224857641406602649813437592614901294204746109026142399237925808047631696256437586277544219666335497708551129754050038320586035534742142369827635270167696759381372527204120942506169923060670907435562829781638100240738150318398709854103564418859488089856854116354258307213066975159238473970491696774811998262855106839269846741425395923170127417213201171896845850568940197498679197015142666750070914923698049772839699113085890134064002001480908337964784194392277263148936300798076305401582391303475492372529488787310555056717122430100582627232071152767090711309791990627493179276909670622827325856875219402139351546815367502229643702480011169311116419264547115584319974305675225502909425651933945099145624951040327171305684404268573856393570636973472074728776079048513264581793648107958803996711205152794947188955804060393709064402903719886022702304137738702491411935808432528007232795499202423560332554909920584626426834496001693532509822742001155780011344253850349689092195524276785320344081245182216438515912234302344987453918115255692407812944314855946783185212386212024205132236106130464640497980379988228575196079937926048959376116959541074728021705593395192920538661302230549066619465099038941897021255631819546137916064295762619781950102941022144023713741247994620999584832955472686819249205021916569492134567002046190160044625364236413379783784389818278781341065780679244108430730343302859306332176815169450672068423409045920473820680914869595903263006273886571785304470870972733730864363931000441972507607433884283490616962676814546734765922992651638157753675652643422581271947210352894902466152129320690616187372222809171841748959201385034535268219811675674263992747107226726562565388768842100271169369144089231164230382566349983244996641525255065056806242672926659097529497097320055648933884962189990934629083636257163501435750470721458598788394248572979840468055990684707804625826312649836780056773133968638274852501401194654340778060643579102642431018084985079713089397876573328391554247866267159723655971766740368852110607658290371211900569686430696193969594209811971024380291986404503743955331212988523842905428147124100706065688285102603715584148988435630956813949504187780635598088343705301677291812908552448010348311100569343487500484322036142624496548224943132663163735823960301187082834825134158861730395673184334117461648566562277558840132054446434574524978714656673349130084635534842452947024990110072434871675150647252547294624420082867455900211994415720662806583897901365979211900086376209556617733333235220422215286547895158687952377200354016259429265863413308799364734987706573607346019995216711667736560655941117955922270318675020682006147698031262704382903093822852279660955560313294188110381890044029570052058950338073063483947511373879165422439685576417984761540080003219947700002652199465888540653922561468588823132131628624737783705552854200848569600571989357888436231236725177157245906998213446715662336061998178622370025859109538837565277652546875215751930339310827605547181460285142247128196089986481099203003764519928795058879786900754975668517747245767472576396983010519634129739657464548640778461879079368645550921757464638279561844673449820197018375614083172145144687304625467088522295318736254808917200226206863822230903485141484947109557797801829159405871068752518651808401891693536650710453288811461467606283986247283541487924925314302310862754231069077079629093357476192672127031053473583516757151246476641373464650585660000716960082273006757070514352319264607411403892873304080438790126231607726409565328776018639492847345530908925684182866593724026237332789612129631935759000165292804583085930336597817017356009168643665750087034387857818916242914797524906583626459543624491389366749698038978840735619535210742140972634892134000768602638514347996711522557457940485852490633113083709450504119809282385400013004525094214370689171483757858233418947906467792476190259796668005171467575973223657476093400129038462963858327054298647380579810831313783865345661013282127500443495853682865054615800025326075728146187862428937599218943580183372598065901495818160734384770677858566176883922876876168120247412428936974749316074835276205442996526816118468713627691538929076746085006247994401436943149258001197864638334737141730418016412287744914616581248065275636293274668980985569459206566432427832298677410266214893517212910031640526572960012693218759242777499788341363236867828412653113044004042820718055019785471448380496806957442407703466123349963977828308848381962544198932184833689117548586311573380880423067197727626753772110828599487482058890566487373386027623329479107512161217569753553263348618672678204352023706916956998060007113546301698103177075495495756226033892412332246805617375418623295159817350119000005750084474321456624235630754830316085936865047216372533979202250140802927366712126537199611527028977537605350171262009202660058178752700309166678286997057134580103861774176413512057301086638858932358986896486919842771977343848126335578030878264412517963231220636550907118743144228648941125885670499499859539660505931844461433010020861600630769872437759962085632012366177416188599335674762687651397504000568470232237121217176448658935176412089936661378920272953161157480369432944526375016057519094250636925815235639238985849766175018405720158208387588094801526939194288739174957110910029597539047491464862804563057258945041734925171218419890300584287993094029152118123375235969738162740117906717428960350191039649972991822629079431967500679877288023770798731394259657638767754236524660514817297695831556961125360152484538969764940337627293784565884865526884377653967514043973967281372734394312444717483726397888602389055899089379602664650398373402506585113484364858719679171484540203323798974003731464522681084608683503607800470367436927052695943576100870709308696505254482387344376565948964518503342544396229457138344408198708546629128369300110782368559493030571442600025733149770629199488969131361810703298095353527347085082203148025101539477092860735462108460301667971078505987321992530951267228047274342503571004377904347159455484645445240033409228515179373791865485270777382877006291789928971077196499954683937393111090059267133945238979135919414930878334816280322508975044948572742950745028687807376982380495942312552947734749227344099365421683600344945766618122645500176771449543807333081699651490960270027623649695787747386133358879516318127908914844117606749811076741566084667148733650730427854024666329749033531737697397083828541724797495408527579347563672713903002923856382593231637114902280135541479812469826257941523713218296985526849188244276448274294138122642619509824070421838779594636360661061735982346857796677144243275286866146068382230874742842031612083197546147822358253955344404377931195827013527121598819329638675908171768344287574685251292005334420806917246625691239134959840257576829527107835506011435738422491768014072399533670347409529551508830164401872122926733243556419034238193508375551020039372154212173903962076786900487346677085486787441235939137325477506846614707969841802126596292722268161191458059527307596345158216542434452191346804830864142307847007853502825169213126460962430579692997864592896650572698285796274427719668540863166759955524900661832560101820269600421235724755853404949267337824747721355789216673903212286801768136599741273723419782650669398053810722406880957687096351245050221898452180895141307833859652029270388248809104845895178969753762439967215008789991255866093619512356876277313015834520112866212596503824106056482136627673865395384960493637338536484378576611768718391688731936399617005708850443282089688311350143127357502953597962934053216107855403022148103614544885873243853023356314444375683624310105166541047304183491080961471216039892416186603770277584965654674263886055218450166553883031714114006272711378661200334651297279281814591687495521304441004756765111997117407507575630278285861245567946627741132254762548883530599089089212724978753593726395649992853980418991446258632831653303424513377937462049109154261495196378574705155607242537828848090946688652459377491049368372114462518098727978232180445095472563776839570537733269173274643021308833440947647351747881753678891393610533441694323337763814723564362995035387157517437721139945468102633824344590987730005655115223774728282302663640528698629182360177702520931229324787156191060137728440023555273511326839627063159946609081459521423396621327588659084499594174188494185388214492260626302877141147294428014157767168179500208487724390838747239091842694633842160558951676834664516010292695888513570777975682695307644308197242368224750591984158436368944250994590410271151589931758288056497350800166796562883469409598964255239545517789908527348714721834415422672847853994236973189507497617093028811048889558767069313861284579631649343050422530824784155627430108383728850794928698050047055352757488347655237419366464320480427763010733934096836118786164651853586391304033553636574835832625988064296370265859919185722350897718913951216300597942009110376537823893016666935363790103668118440257332715797927848670206731424328363538215002875453843897447237829787265577235253543324651991570668277719770275892732574991333966144402715360826442902064250112128960509308910229746384340227649232347644487347865303060311864651683340075445688538481062249599739851330544755757849841305504349973599676352168120598072690140343368361823025479236608153268400129536397747375223934718540605884783714108619239612605412563029461358383126647575281219881276109150355499809594263612650556988370213488049383271421689042734952885691625735141204583195179637211657147577838355736615327034160357475243577456238301280557153161403649223253192131899608231843561882842026121055929971975757346816013279122677846152546534928157255044236405166667115399460846149181550035323086547372159841129629280223939845044199686874064244465774899778827468876614080352412789121924486061090138291252506671410267875298563887696201718075910273650319459439797860520972941168445890122851239916099294659540205791339952038072584548975061047586720740735626263866109103460328762711818911110765005175867433932944936369340590038543554572032030872717296021882140154408303383713528638546637024819376443392872612763142323214276671119808810906224699084885615679696467856264493619849705915631911139894432553907699482595808249338871931478874827177859771745972921430853818297143181569404516030322011047937936423489066337311976210350860742521868936895514264967291096039779338279101378195219926000208852408156161916377045433766817986965210667176379394921450113346083161088849515733107561537080630635566910870642532639850593836924855603093752679928016600048129909188990159517865249851144603872590479399099663759259609333928758296812417916290512118899930258744177605481329807914381325251090521614362307779834213330859001169321153680927787750006193600165143291547127179098240305597593372339597916025648474626178027620613263880595941252462645214087196325209396356852601270628831802013809982812293626927930759770983516850417029259795153580846441341782912890592594160455232272232109984760330308806574168370174505273772479951861730159680010429592242941745993958249475851714186670179115500768854244412019071730427905171505717052922990053343265085725042071244340391994141594562580675395170951105790936757639378390238018854094106503219561386266832248260390395233918135236938196993808917386227282866279705557823317935402919811419845465926111629122320179310686561754041410934817418420935080868053014843469719093108865905335139314726647039095585308620568404743626369154082083133129583934303595997798472188644751265166990390365703926558109975436066754440614855478449407214296508186024016768358640249782823071906215183736811235892687843054216015207216556789529665969927418667546844522186460562861845443165035316289447312537780018509030793244329601452416595914980414812839567413939042595722107502032808464880972512612651390030370793762222055511005071067001891340248775785492275115536184891372171784226064898536200725379458524915562356500784803090710106049773848336911119388982922714557603108721952562917119625711445562590382248723362828637498255255154606296567443992926205701818633691419813352649759790616603902212998717050614357245968351489788727082948381059674415850647505074693100921934557094061526072002295666070334636252781016220582836261963046531202221092395955939750850202909062730343203642682105253094478835742660821529806814872407859890503211745910852442733774632537810827160963605758069009469141623451177630707727998775782279655402205494815540740536106921334712656672761697123116865272728066037336853854071391572576584530956401515519140309990804414112298495992675297436931330334099124917397186166186351845684346410865185162530080924308967645170076471778373419270200546588798896755683209175508334142711640094803592160801249635342401922930396551676026518500054738079567521781303318238575714034533022156145446742018916118094496357581002018791520097102588407502163368395080569897285205692711247970258731641017026338597581895624130041756651450089184528852562408603142096503994838074312719511261174183325752654608597382985034165090929966353091264611173238614842454054033262513805472109623604025732937914557013368386728820091880316533285690348389166945242644355310735255127847252288694240479214450599079361155806473658516805083030637352856293172270698925169691336297442687604412863702985546327637226593989683675069832924462458639778340848492086708738323194497718175141818801178392046238432114190140778653056877762261863564738706494559685928201703188802291686995312468064789740365602961329358398482397623490050782957219267627781366343336451581017593881068839211786553694001465854777953782397978738061324054401876383817814320492144507401947582501070841674414429138671663998517634225121204906527402600165416690975422198644456502833316510805742748085101344050112865698605238110079406549250495835460875056036359953727392672432679936254995063577283692620634180574084093525364499168293029114378049983359943553663058065514287283139795269491902532377642210314226192261248480407769874001989625773781231169762557971979500741434223431063588685485339232950609634718136692330072804506940823671901692844656681245460671950031210003827420048328049622294513617768668654700987215668839328370473228288250447781745689725122295045261795273394424593855893303510647184792482556676012169111457719495518470257248773923275956107449074466039364781928740218506555517358500597662691359155435895701599943768998512141373244853994641237037160437510366633780137939022887563161617388846395419277316277480787895841114440344163297855506302809674297476497273453299530266808483131476752770046920358102798380581981804616116253132646479120287859933842157797148969396171159485596743946010818331820601057884143788021443400934890197741146900557468565588556838114348110930707603944383415742078535886020672426084611573982432033258750704332255012049115289646160727635397364754065071138292666211339224949551077708258448355260169909365284312356795358843781904429534436546395401496928888623491952731172919976459515691549449167497584818238892750430224605513125432906067501168195133312541703848570057196531859341571084837547247327835841477389952655844779481323830073956154552568784784144126840499766573683637529447572736638413678717249069332082003092214918222658815589466843899879138426201640865774527817221616658372423644413762096578658891877959127195196029225345912180008692302455280860272520320050890673745559835777577797594263107442972396705403149034733266688802344221732327737900496369930411276815325767307604259389943730475528431760695292429611547428218668715653922193611120229290863465435155728117542621740329884789877075060582954202926669044824974171609836353464152275433303190421302755495295828860524991989752094558100478753209061291699978223943856134238384916738292582370721615572739106429163899215060899495319193830640730716299747332440864774151450422156194862726333500587654856895416800214673889265282391897753022254759418203511418235046687885305229724727749777926808480040456107648667133794536866252679342522806834247981619560105068629739362890175882961116150172793031878568773529683192741555303374149278745397982618317266073178356384574637917194811095670851424053663776390669127535650761399170862999640516410088057747700167622636871976673114784721029570533165323686085384724561264996404078361888075496394238956517211149049616165201513390517338408117988504094023231699221117967994998045015530031303095385672937335337427613040375383938094353367347495570185138159295404157830158754268851362234572424829025602448503035608749443311508720735640483700302616977251272573341677894486541276400907736441712756113524872567216107218231074931994493785364721707498273746859038741534693252635760661404427481615108644520812401409298583115182345414651092983156852121605754366651932024327785527243563251774667442399825377258111814962547342351416332541589645130842534769456469807266738351103814814882430882830549382836035809712521429518020251237797397240436786714215959337559243749205042281112076494722391575083852181227957477189017683012920483995632405625275633561500808884050856591095299744197347395784211581410520553226252654177405111593540763533012646114053710475077843435036979335760639710284938175683501953903197238487029264035303345479559551490143394364596505841951358208984985028667866744877843563961110337404901055306950211647129528618239494777064812884957389760824490988192540852512965228501737879985934585476091537715693683344060611709003850979606633503427554218406966750963694684948749127574167863725290379534597579087877981529000550018602847947726219240864958125667556902714275011330235341200802028320347907903931973855850062843220937807363206123528156831017154104294878552868261710367599352712887258118070587005673371802751556970746958487254606169208999525792830982514767173144884472798594487703362125269380198544671955952880626788769783381137958719050986648728949850479100562183180524671033965507289562720293835880567820674453364975001639945432954984550812682373022227174688936872423850562330588861124341062086536924803328033036401285842751360631220535258933226760262807848679398275801939347464849310812603319908398494220366048956287109888060455489500170100552378272474281310465970554862446156940107578054491642441722274515149311921442011960468072400100554072184523187711996149371007361406881475697841001563344062047477990690069204260826223807441916812900200075908612682458150004866693657252882689027214143686141318445884443290805231000613642905530179568725249774922570412592981691490625635125462083252286090128973347528937847605254905547692704802987905276609731835979281502077332262517788552129044040204154135635275165393308489869502594038627394930799293236247056756497135386516732006230748722773875590166740001546612707573874262569476397052005640045658846346557957320297805205220937724533291619434106861914793065328127191598770466912076790101485251641329275953014090171772895732907771501843377098255112467790558622916302857193275974983737797776627304791452707177584485906132783054047585995822660991880818102120734935518464433831305178587263297453735336270592090496340559571464444618200824093689544431614795246817628238565055657078374724924208974227899216504584268142253475569849683543833737104237397447386976197850911919485685523816268184102855131768337548262383785074098356335315117959901921059186707365426186135754208927782374491721005993738959331643705321940524130415182420482604842573089363938221739361898123954531218769555473353044663813494894889875987426545999327451111814263987670169096346717879987464027528832163146606014504004650377055970815278301169566615077105566718204626134955770492962430757491130524981674017970854158340909198399457146415119302572679972019472210956059210093343497646448808698196482512735106611548159118685871714043542893038531059479188816755375213117532368949828390413956948071898091844214452515484391715876274495537633212708519659967186966518185656666757173527482492937636287678200078741774245308949668412945515890747680589403185965637711456126235903676386635211606573979902345032996540385308789729560883242332778843832728476962340734668686894806531418823934676618946985153919455211451097831143478143193970692989256843843718718148174832338200966458559561974080611683161510873867452887493619919556963232534062380170733394917825426485512958339495151217194639435564266473545813372828691107638710000063811041200206965830140134811598587611334020611883321444791164992770999606276435797147718842167490870591173904575138222095412730453839519767194236614894697861531631152794336325184726974357062613936926691725083650685635901170057518265470882763991087516979019006746193318199448006439932435540006335750317035084881067588310423126286403933267833216125291949340528375659238403153076131803255272080604174532104070528526375388436531785139643049754827582658439959157363623092834955970803712190812793071274869890915776899890358400659270425018200032344527464810959497745575544787101168518823099209867714837941013194504201483505869673645016873719528993163332567347090682779263186170651973779964030292357498741648487787072034323536735881927691688518894731403681363421947254261202171104813488555778646584283033775696707205551740525364504126095374791000998889719233054595294985639921879686098472826513076550324657448381730215557722623432769500962282979167875096433015798420958377295496645185866949876699678865723642979878198872672396882699477639240728549015623740419959187559101509267407035378741511336642530930976977827722169339971384656235529104193065059522374833439659644601964737269487149921066288611967496096509565246340442475870124271528489766511495342839200675265464337918273795941451669785579778097538160729861117823868733504524040177189262342290132399382769460408025880178348286078225718176820585776146680045944992382992893327762642111629356419997874009478705740085502802510899798437020729631132112685152338140534578216559866057396056907047680227403838224477441944803466230589814960931459475666231336422378346803082458823675645131719427176269494365663467294237095855452034014032487525553752435999809380990316876041517499668823052206024277141421440066494532567834636440877979185831981598638112417272628112673384881976703881642871626999226148954164524801180174136753402670831282255703746226704605197969920395419872004717356232429229216312125717540513873438171777646226100112275535475651006520694157536578824766413246012159330273347258302134725838236742931759834848276066091808596166588606231822515030672686755657279342208090485235807039146799378247494654919049104876914271033258761900542348212992634744153078407116786378156911576358869821025542188027816493223185215701562054711118567815677951981743833298662268538063842601565426445720115554440578836947673200339893458520280650516092334451889016164811129114238876039368204747525458349729989700532770338881194151972999373081082595821843413721419584137687533951400256993985363357128324772079515214637944598295032966041731196827585676260612414731575201967811909940173787119495759456912272307983605766329402055132956286778707978013326748489023396167207352177844998871843400646641984492848226383461580654026855945951111801275818025577379902240439108071823972769476720684982922874134152486175713842172968701577847821776569099747871888636898070333970278510631480857063792126129803283911499144014188768223044267378289593866267551248409312628412709467147228093188953017386581317202335953190004537199548504752034965780512031423041855712520583132188226962207823497144196969060727028862489605202981255792563349476596078880078830540922144728658358323191414526583818979667143647172611513395888041603261609539294606288627124010715382694492820120843496537146210340282522462349345908769506109293523799836031557992106028699960793421651408416354359970306274406510020097300837919673643997072128071104231861088040113313401076724432923158824840828341767408605676310800366196441512422869944348782741953088964671610571597389257429627282786003118802680224676139396079056076423457137906574779187315182295560663437859935288160033183787763657323010046587870050570361094786620986483811981689737598745470185858303677025592111736854066070446026682415863625365791566312179774408868318716773902141284908807346233645617311196546169868159465039940354055379457292544093186425967556797462114268003595118617015319400032333371166544545209709038917697838768350076720794993067435133167582328916434107180727253493683019672761647758205063893592817139590928364572703671211767835128661490112440761999924684042124955129983310690900057565172578497792397571217564481028823523103690974678287163561109989859729641761251582500448469966557701652721257750479870105730801215668651427190957387833294954879474603411417949948420111820018836130284515225273022041859987627618941521344020920048366579213777677223631402714015546945919799558631596639943741689189940668453323419534700570916745179824133116608609289185004177485153714640504801320489294914745295393327091909274847900036303189320348127173962179549440923086436223502526827231373618135224841734800432932333995790360836460956842186879268301660657417232617529476705909689829628697872835152766656897872408948430807133503974916754998914317818006839119915561969385575179571341533855388430866894926794497289132815536491054984086302984103639100158884877983803073430513567072974293915235374981495904278187559962178276445142797631251097291620923173164764307580842777980453607528523211613141637678846551484570870812101583280806099041952559667586670945492812811463641323822864936289237130154019025536405773648176384761562421894498546609822292179642430558663204290675776298533656262969248400238024741531241296707169189795266270033304930705485067208489425596338385309338953855606811886225745087940248790945888979423372359853958241775645804278911938101141059376958293661224290358842148178412703110884913319473964889910300966792711340704022082247000122616696135850425673074032366204274798053896919573789287563799786844048854035655351368987713094489547003169811534888423024020518155656222739149863894048313669523635994509560546955000021098959348906815705380025141764833669141090747011919293086866704276831763313541724087128129135759648758806539168903869059595469575128854056565123905117815793626558330181109197988570819446708313184707789706203398792501358409612650423631170492228574881216890831240754401231921961739156545673711815742891197251617189981102449500250935250844518798793024768369869696280558382717565544240866311539582895379890577785757512193391655248515502292093082677311639725084549939909718102722640989428068575032048785385123457865388124498643106348503883357329127655014188863037925628380524078350286877986744050872505637034904989738727118213347161147603920661244846639566631197160747236198046625661212516894607916366396288433425386765001966389757257760579955283549375216081526221804058563556816746487555829222504119694832658683139829136498663244649984931898469784343705304962826512928826815768516852908451644041382615286796716660325334912584315541964705833735407899525074634966871466990738320197637130794104742493710655576887047861592239990391910123011604071141384994395981631692925279552167848266654790510819487647230016847241301899165915234475903428978203924675133193517391844716110964568251909842238845438411791627862322070796037279214226869066274633277250215937830412074323534721235520559227778197545966433817949509413205757514859288473083994768292540732265157626299020645664996655937941467103451734468937060594666602489716342896249142809058270507108253678031835895579060645323805982183660649033077556097619397360680684844359641055923328943608435729141108164704714043627822747482172919622896927899849846300077250124613033807520973512660199445908127353838393930179419568424548930090302119756493144413779533672761338767081754137307976295172995214112510385392812464720506388784795275116336532848480453790808488252168862874912669983580911402934537288517183833657738548361025634817135336219669585873699068433027476869350858107072790840061151531977403201040410744295641354499134550500908697214267181424250924738268031368693650724727258941702744881496206783991203428815803007666612112630351613797904340208889697480540180648941615600607921845702905144278804427314923238446188289004400156491222289423940893445908325282171085336944045033439259843262543222841299959444866654486276097426398791577043808147668687748154475603231191074655755296612072192155819810212465996617060115889262563961030824070630072265649308171379036168904329659234055750824127544140312484419087340743401386394458786210723255110827520814925893258806680655466710454927520523211930007615842217923019378535543957254950278322885795994036796004975677675848211302494500151617204420421200663868701026295785971364236166049222453248273413078055054420159217806891103979914991185994492822248234475947222236404385065156707164319817101487281646857429064790235446162893157229553591477968994041413473826064931471063032009810546532451801407423670303213386997399902838346362392728856816479199729232481461110075555323628622191122061611081551077386747476100767747796394569901293335364124129228548825372551967514410778805594333581856975391534429111013120955361735393518902115093374051437040178353078227358541662434736855098906483142880331090532456438041220341999597320322136570290711003805347650562117506874670083577860560050834697078144807758921958063291982819552976912058273835819993795663743026775315279761581425807806992640856135095328114208581013596193481406484998799629658595921019843710694657612230137986592699822058013377623376221009930836617670982210318883300033206499591365839488547570519399714453088143792329659310647591679341138491924383403030262430724302094306918431373855536189618539121131801649211790686018206077292240572639652293529833621556126077561542715093075850986461305514779253102517412425806294603324664607562687064805285137246831052108628603537117617482748103514370632435729114595604937517059621909884016471331327188801237042598909799923457475636924312592055575309539021691035622203332301010895795381234401664460530494599529862727823974010660531624486312345039966282139521649892711804097932637290256369944488750411892098803242142085613980850186708690135034551365939760113976971369531274065503732223255477197201321713862475745206427958348997049553674297637360525317015287207524496109327437614313331113566886397890261187201660276104632878079838421798832028213546338602261571659716437233124803447242031331159010576329345154166133734114194832062822211368268167531355438404772650090167039867880090130181398781636360375461092693401228358484109322047807400841020707040805325633767376655883087118400655261199454926424772740220124959966401449795569015057185726867076274391902043460143348860084733124592621155427091505360272716800839293828905915217196882924248150082466300893041805681910744820060602811641984767650407670890730266034823176455602138550410126944458064336022666498833528121357794339167015960435484972558666645052381821523698032071054512207062077441028798377622981701831633132276739550927289037671118897392204585195107081379005198206930856994357128314988820936543568321887904175766694783810516003906160411713633555227945866011485727635653257688302215584548957308216317062925311304765238482314261640029689442821835008734274786698798630854084673969587240552955426550511984941071751580677632529039283286905824408896482896150373906396470968284118764191341986439300590551260888024733378158944449485110844253187560837222725624243426551587256076494343346271361625489196442608300462899534359441256606829438074026339294433374621335349939775888660693700786921448426416748171137029508096261370529915501073052367254968164143042765888343390996465724430524423884832031652804672150598484693341287102752748373827996195731669495567094865449815380051587651943048276078336613505262705487726541916595004360144968993125707671561992136489704351299208611829406851811114585634441750139802995031603643896128956535804743281059844163094647118014987022622094017497523219142386729488810265528556287777989216112913854877402883703372938252095281094586643986392753182038415857471288647286840501071568568534925255707471854448086678475037484241587221447677633770151984155369654138159246321419192546994561045753201301554929342526259170217743401716696630432028985660022188427987180901575279045720157614288229758708155296982871565249392529894496038655803348649999481130753656087989466739982715392779958867946678701543933474505357712927097451087613182618377356548101879385489720619169065629456626218002053460522388590758394449287970578585580564799569177252653463570721484641656361612642726831627710938862637651450397767285066844902335637377980049568675615981886675244900272869209610507185874394165535880647720723503558240115018997790723767656157905484570064512242626405901437482748379213892727822017624523832723430544184334387568656974409653268196571764037347576957849670946942096162939233820919290107768180937337869765409034434697166887173973035610586733721682119439625304074358833556080540579561278819294649135096519251704187551575692044639859808999669692486929271548764432203310879092458953020811632235823635255734889629091182560600031423332636993056392833117627292828321911794180221032099174728201525161325016799577407249609919823477913678313936451220816292725857796619249310288627482809424338491873751091158748897994251805934086750964576640073608348319994555482320097365731796295370691842073775823217605574414306945705419992759744784915642076657803144577070609200188980352060970852468129968286334316912281892365372206062468236222084494431202218703392999196230687150011607900203349592469971962585683724111875599791097266491914448517263062714280009719210842423284018832790461432392474144035341195831837979443171488221815122526244193557409733593386277618035986400831829706328491975092184164398000949370982072796967166787937992607500026325622235835900070879799569516404484567585096242722455966281266144555558379126634056751173562045848133165398660497733395080484750050493975919105187615927419858456281825203160274096280277192572835411793607901655128932096907686501755865327625314210633467589820128898000815821001208863263680208980483173186489194022459527931830222414347823602110617583640983836345804875633380762267107906368926119698579381924748580457981226004448220445440520119720900564953372950883561886658221368640991067504868057621430014371899613343725820406810469831475340738122286041884782761099264048951857676076049469283778902928470866601996808774760035549621916008173609916513059512820888283044618618608099750833809108873217649864657323788889027741123400230656202352454593958919737830634549388175614843139698657818298043085804086275035186342595768131343319400230929939471088792071336360632825419051546676604232564072882805145967149969085778112949192793503909511581839294766560805723553923053304933895561681613324248309769991519090186043216037351063734112248095945198107644089474376833558836469133820637488851641525555324712994734728028970334006196560512614245734706726720216247267754159718079515967125597166564391985448498366530708973051748125408411072634779459649806774713512948249776071494205509208525753744835124260523889973051646167144422375654498119224990750657858517737052564733963926593393869357251868437960509896972591895745123200370730578561839595098114357960759592406277846706869012318760540963381420665218161885748150187544958720091649170299485097091092206998247329650509189794003629657829521132457440170123506319788466348580787953065379556967605099436232548547695484744631784057750453153691820287595155495901824069596433501105438133292197688591472900381119204020995707679420827608130660812310139277979192931204873515159536794873059052579128371548549148259141020743435692666440238206865730815232934005498586360389466140660932199851097866975836419860669786204338624483604950967158075897547297772370924427400861353824149998723801544019796536709029707386468365205648056469087933349232146329894489952858290436375412071875234910778666411095353419300327010136331581975127086941816381776834422761995240859167963769354039501855527218922578984174450408981152912213863431190805001469327828912414562008373734431372434677281896942024256195691495368107451224576995211040744147356962794709170437646817027910772559844531254228460668294307890903174362782568641585194829977814416815455988690141687278899037140863530655203683152975691484383722150548615772951260674461455107250710149888536676859153114435230486280289520921236094943613733910260080765156966751952313989121006218792503548448199134150462831380882679283018121380813862888872157350808193167695481109301070837358501669820901164707809846301895484605849270405142158515895644784904478255302882819907535912048316803493998954761594656167541169616207600991558660251931149781025672266885699408155908369597935792956296263086692868628808937021310321601745735932240643431742414435380810070266987907400859490263399811028266241845695980029755968289387494106858410708825344215940902791941455592185989672711154195272689374631684808639039406556101616343031707600016609812167581478866599297048925787014312921772747411344565146420486361863776349806098415754582783083592272063606830658622155851653371903079082172444962388017189444777030423284749128811455913207974558220824834692047701516626860986017157137879612610617132499066521694539664688397947879031692279859715110374782132096385407055355189216555886613930167449684363362849635989222288944792493613795720572546385784788405734143699401033805959507448059334014649586203888966723410030630266612531561017780967530068119910598960309751988844335559596965000311919197875239018284287849942720595144866058791694124291464688523780522591819883087896288841336379150025329011654730602624759441475227479628892792562977320769763650242826005585426496722818614207677545574616815789810480658601081751139060701778353550348337652268359090056365884997600001445266802604878793600775873118527946543515117767857092086942607743023234497379100046525906265448922402162829658484777888694525010404441646894760961123495465800298650300551864626328708173685451078269870341189742021650139448850408767288366308902017670168730461070123188309529080658646615373804129011290715364871368683820959861006093389119478553417284298170799076293885422498521340067333325360727000402552578335835460525370202953189079244925554969069587880444554581125062331463710764034488331543056240822849321017926587453543507063640143067220534382448969170249856493264575985485707431115212002096401168520568979081851255395927737473473627403814985779861019023594604384922453592988852028077308415999799886154224294664846554125248340456663882523089073232719256202843586847145753138694491103533263587987101172042169699256102645285152025449474793926176313330071896157801488949893188107902592809511778211930636504516632404823522514932769587588985364145901409181123679870379324210646804107757006397468981436600768282322764364801821419869069210753945016398867744608278768239840020679797318762328498720034219307917395145272846625021997974616846758458804337977850875368868875911815879376491665800406075000383268803551878007313102031484845185619128937780897751139257354066271347157581814113218083718341266467175307893591744674987885442599532487351798908284195986887612046080876815955040707357875074348631456546291747259646856854174605760135797563885544964332311537301842665956325760005871637647089492816892797949073541082626549846299388541290322379966533217286877679948400636940770684093307637349876564769611099982926660076498473372234099544948265391169928241679169654532107538538385486691379763114160356428359923327625015063329462920709374653718019142936833926083631405533640098514076572302600088803314708645895582265726043158718518291568014747854194022673628202377213639173597410715114274476486039532309239514653272974733900268004653088701203804938317469428500948820670437247868064305731104715113210010792792224249987445330389972384948103421389180279276444107140592605061881639554726998263081097240217026297522321004858177188539888916271089754356397676795643088075351249821107678630167925807164473822425742199282549237815775147804575495239674598555837869619032648038227244127814066362271939099658005159797255815897144970712727346816069093330721597127908323896368683189625791609945183525005445660161478441999236341743765996132699384014592093700254179943082930912262077757935507118681317780556216842425916403034570962127165307395422569036500761411371164402664956507158893601977536597595237151766798022383789392667414378763748730789699020412817597886447884606349349236694379177164987003636076421731387635706325382581204483571926963552281204784190200385856067396503211250737768229917672022104409746751937046041010058884863163012906999163605005212640366384210334654618527886913188159081286889509659682501531081615356320181425138985379184383847476647178352500788579258702043370188294368428017978163017251643405417574848244483366582285410063017463956710592483389359499392423183590182898694145003268737493352584699758945396356748948662001730862908183795504052289418593576590674080177178616002580846553441867680699595001016058705321132750494995812300265899033860303991916173114543450151358468252949480879666758495802089679309972957100250035777327318840591411900239349244249984049525002243494866959550919771715852255824211362631943237125500354619778498040144893131504541749572569278059808804191524407364749107475363650268942431647844967270738612359046867821443085739336855073502460980453633889868473995951940092404382411640568076835873070431507556421906788099145845948856863692088168853402531544287528871102441449256384769698937979126971976236607866548733718515850711934180197845705158566862611581160486737457704073743365545114100868649251421168726371857312840491724028341869190485642502635427283300787999806925382132265135834084860652986407525688951995612416039353215484937996040542387958135369408198102459658682905486360216648087657423277247025139997372519910105321230461010697868722277246926309006215386465972388287199279311825447569053128142522439207014949021727441442658091174177756154310393881054630312896326062882960190514637085009747569090127644928153503155377534677305505537296650036390638247807673636172713369753101706315000864861227166890078119551986968555646040534259514777284040965018415917644097603366276835464416406116447927414381979441458699038205945316890937589444270531116216381138521830368420551215400178915904703476548680027445485240325369820317992036013916100675721518120223332881022301849964781620064374983988080800117237262277012785403765358168613175577265004956502354346562732573416333419363307158888232758839399397560570443862221148108029044480032304297360673406049984321473749403065763045097925933060541561866486184921969404187333537787897160551017965474400522200821665360951604881602230154957223897614217752988603368422670461522616415425211251969029154611730282158385228758494101352734963742146679942462892019837505993371824640914251184691575365875189384063929673794180577174867156204828303097282803692904118705309492976642115054105998832313270792119893693935952985195577253127469112346101116394348439408788041098553203205169272122341247357995126146326241016093269610195492290427550770710349732828744358130186270058122449984500722591830114475831555956199406591706477531738055939590112956301092291877081736749282321617044522278274768732585553911514676971363926119783053451330031209098170590457121897882858120500151578820075814010206601921974894354190912566233173516418929088720310098882303708567041149229203195844584195087631095691536838424434077650674793913986735821809015427226994016166692620112571305245453947275762511132981440696272915173009703473411886993599215293006685543623814674991461643294746655494155825291512665970879661538020407488163207893747019554301100903246623879802126014238320178394829933621745501785770597736585293518156495766903137086439107390546740627705376551725345600004480999578419589852103555973980775290051845125871882320112994843855292058408240993835657125051679239050384728250018381207983483272160840663793212743593642051931960388888933714702356124498037904657777679243992634318596198898966168325616203358772652451203799914290328669226012243032743920233047869709786809879074814302722940884091104606937847151166441435157356579357644360087759367528741175169651460628016866172155021792439381961635467685064914472632891000539179470161916475994026688429730626142926073696552634138740418300129357513753549005021272957818889640690466578634004230282715306042475746311901983884880460648765455894813486371527286022604166392424921501864083353790756981120543524569002697645052860788584822426980393727477519358862640674557235400216228171548686861787540560846830611936674378826368835201978356449280386236835883393327493717066509484866091475738898431750850573542740134520523618060623403376542825880458776137740264534943033039815832583005988668376001919628632681761704164566552421238932871562310901770475970100959857202082538736288691154162250124174577348022152430866725050126934684268214551641601729143844183850371046216047338634817605459782261577836523248266495095902179653940514641084825891098854021015938592379728802060426224933292779103318043825122441615422582991984118260436816364119897221057195725472619622595335137509262528741361852045391084611197436924533816681504698592104991440952691705585543201121687300005383522912850906022102534219318467416614938574639829516107076354152401313037473135564680447471554513509066046267972297958577215586140303539308030389950224366983711265559988347984413373228462731297463121292772347531130534685143313575546938067554602480830822181400775925417684250074214258794574686687080607038283562451819210183323743825177451184803690255911067583930640714583144719392080733309221167548509683504826394811997603737589406494689089948249976838644986270572774426804275568520171305491379620323420471660499355215914256336884362997130876565789968022864907553409200010663472532506626846980827634150558948428360200716674478287530036435593736691286427102515365929171803776729690062885030324630847032938566777270561125283582513238158836246988635690449131511740376139754937838913200320466839425328600016321235127800954179539623874735894854116915605864511714255913401809339756802231416322245151264042606196366769411155144815206628533852879108061805381058274070590919393464869444650736092308064721566553483408836470544761643592117253902364093533519903785922014225050349465461862286206964502011594213057691321177006890341000177491172275602294783798350026572030711936582734132231872961311570214034713112845544537576616960479619023943947689917177445923962706835027492143268349982904754122000815917456229842340980417035302476291660751040956208072886045347826015174372383117871729572523435170152222629634574953289590142374586551102992814346064515804599928703872794602814299494899410654068142010250637616953371579328511238390620806952184108573232830338243917501359041935569835351231954172402101161591328574995790510351789358455614032515549670252170298737428149993543383678306327765773930571918139927536837700024105682788477363096369605333630935108317048221382077650206423548602452405311120137040035563655393680484530366625268812149149335221859210084981124063602639593527767510711863891492841427294128970728704316099533193417625874850182323718306747457450415857048797933535606526052100883494910221379105191253151573363849348082131666206840507070900307323429789997207991555337717857511162280661908113830440170315034182591931485187413058991367120793368640710409858641276491669389720549296471204220639863265085396844677398664737555553709918037548897325559276232960654977592372852847614992175694715014273984960045291558615674280716306546431087543161228998831678335448850623426130175598949951541122835416693048825325629112329024411945973453729930615520713079755798378646688495132190139689552628191115737831588907378723061123928998611170122020389566684381172637506002876519341762283119288179165297537129028221269640615303950848300815313081174966206748945030473697418185957704199516777063200844094864726712660126453836376280432340825439987976909804443485756691892043210131285102386705011099843970781536616107047470136976768076593507656018924491556063416897136920257384040083383437809998353157114144992906832817701302395380691920228656081080706179330457722497210472456103793414450986860234227686363725404400066644420372173110869209840586582958993755385522879447002409466440509489389502426709367304647341069769845583029754039675350993367549103672094072425489491019716254428370507389111468311763523048634906435360696422472317915447497426420465730815262530671798985952875630059953317962728606281111989532502857778093590633997016549661552050866530133764555796391294452471928471641232591200868833936976828366553166862405452553409705186455639638630847972364047448701324903985127174645086155348440286174522890398719093903572741219949707722552849159537163003968185956846244566884358302701209612291754183511697922438164506063826286432849201640192951284524753706707342970353505342340261998567327751982506468429619619833184821031490372075419597068343676756418479136563148648743591245089140763809856720808031064868130195871632413680410066366382383490546312344747324405223674543071848060159736196629881385924820693832329735571021740921449520021966362523369836341926545081689208465406951102900098909399678382897394049541220524124753051591322173279152056620899184734970511289623621210434604044988676651500692926553436674243379754576425575738424450498550071916173819448012386996856931411175053069945770490186280460077823196615688149453357562071096321372502126991198867406394148216558959584582205885346944123977303752547852430998748433063695048822230538949635617493648497644005218658665562901002656884976281509452674574139382280117818026652937009292789037413156255166950166831764128641223138869210366311503670252782917629538473560970827244763984333734833586432118833554104936850357833094509140080621794104115287051207550558793142913979226815055223229936456053795028670531932838688868452816888072538413109489631041193087660519265474871777868667279045506946759552783199869224963305427335091779798796890336217172116790381865146549163562001615651031689285670687232740884328556875947880019338270183639402103317234147862502668190637182406928149309861106295881889628940492092843455123921447278960795319634260556983478943181561446125941471934803352097815531473804922886553689788652949357922410270623187566757046027397191364749261608336095306445408203522296177698402030726512626752969792359594023950402208075386661468317716162153601024190879196136233348616077800165112958169735724077723913419469498193212994670875209095440041757163880365600568343081910948472405018585972926282150795913716514621173033905645257185135601553465899292834076889062106551076184170895431085156196652211056539454150650575783519801616139628860591013688879563973430652261887836303708943433612357026656555973289289263040208023550452122258488172818643732372162222657696784439868364773191209671801577354985266179501734444937300079303989722387187208629558846995977561953279150971543400248721290255555837904359149685089216251777996621687700293420776665178566147165305889925075960780760584119224147626770133431664569700113691508103175738363936443965936771220819283696018562085734901441073331170877951265899175162297492054051946320929373047577512375958708493318875834918184071632488542606421497732106956398809102180809049644471218378136831164308615600430139826965686761139241872239052821948862911766720241749488048986747356906662621164269424509570677980493407171276192196724518758640274364396170335468432001398112049262518402321525425126922565564386463846240587351746328281362977361699437947420754586471948422747870657845578209128265584989177194079697570959809313299826574803467936942060595490584479916488117046968800023301023785105688542575756839054420505180008451081060029308775010733803185360372326023238315972816977193745940697005456954603118057909188035522205190442618021309177751498268145815031834107665583405210642153165674043504120457084668532428762922935902863404905079480347341547891355956186272490416727465104866358236092572656222265584022620293241270400455215040532415022549949536811088818042288825510474448112835335126970713081398726742218970668281880820406123780964744571687006323478967364716156410849771947424726213370216285255885114585409002550297150027920383912405287445672697486897327141654955857673287108112933882025709662354983471423812825122791991956258015345229215019921213745457985583894531386436728533918000623824547290797618824925987753577794754001481248199579026202265756592684281134053808732848635607437028381584822419287257667260013955590526119552741371866930374842630138095234585777504096291613832832238063416610018878294437657336437554304934750597866471859500144539751652828022893690095570964173987853818919371754368266630168683399702662853840196334186529664302778254444090553029775775618931920774359457352730399199565223630836982649747887523440923418207809951692648260370958200418182234180120404587547125010884483500472598713126283119320888012419292095867198290967369211042452903220001254938366610221467864034971713947603922263877886729499239556881247594690964334141789971674302161859448677215899452497090709597290104609112254479389731371484151789951375427785608440734375323752226011012794745845456071052956376009062759067009709696161838253212851235066606646356524337002055472392276828015638991886744971582435779133095394875311103683002718592336457310102330538540118210988847842713702486584106092069655393013364751529977914381114821109047536271796983712120347923367957613165677221243582336852964164082990161612183498702134982182385640770828649495613833150059553886024071626740721940201508329052344585548078182652865958922620674573625711814901676109607595094401775450065010119896413092543100302225176278728768041352331532634700769425237130292354899880396857200298827695982044409507956738664772772741745257160172929961765093260630200885435261728674229419698896307280721499276351138494038562780151924415613513660888217772981327902363396342362084298300452382901756609036646405952148439405912733950231014937799847525245213703931617756033519266683930540033060148262907263228523143045070930463207598258456763003419146727627783394396999655737264426101213374007138253652977280080447186710025850722595138925330771922948501146829996435307124710087964661207404649105943099395717515305935008246834880529089750553542178144644183359513939024696785185786442496634288482151977239948047978413818381281084819663290351625348443745419245608262812043008268068738538871059464370169877185473013473824260790667364415849837701848270088588526662657883040026420060930221530221886712515106624732468133462583836964586906626048289942723051979741290350380990624467982189705837023946369054821083467260961035787555389000333306325660141671738067107244644075529135748755454166307545270102761328135297991296970765329102196728919005266410018114890206428987082511718636615159496549232382978903149587207693847099970553319171921600528171537610367704396269891830874283780820819229034788219739727786278535893051812017696764267681761552145990580689843404592542721998306445155878816737413756477575521862663742553998612965178339006869384387250942139315716668939557952423040941006469266306559954345763130073231792210238497539063535571789727437551275762196606615007661294392721667330688578331887840673553483120877099743464474604060968969651019594281664451751131932630353970288841374362907814616170217747166196049387675259486804416518353281409195542853830202382592504183408471569644924338155523549251109632908811749464458652875310097327400737814766695833258294894227314438818464963214874044252233569102358760636925911680807069081434064071359402853161470160449106211535749649600655380341382422385766596877828415087381009464168898506175863209740969040186086623903587248299426018487058966607098873578916278126020292199113905872814941439629625432646213219998719393811799625405034719890241979603132224210456436799227452369377936325948735045842935822673105138464943254976206287942509756076540446671797505025445384130382043046938918584380831330545420686803541616031204907680897522543593931737425767612108196184404254713698174995164714459546313953207487717134491771199358364289211824650228137834227479101665438691134380280321199847573378325388515393007992908056439392798598439434323136474449389696833482035641733863391384814338007172156823031212958794705952833889352818678158305162519762020782292057196162958841151341173877737647465152299427770945319880421632935870743736769025813845912615166523429604528143195430928130183372132748756369412530098513630135428502516332520052858837578584595415118942204970803378746743141262972384871345138133915978071016508321110719514783922947017351658770405508632622243106129246342027117944366735284598719059893604816045379460934944539891691535963339371619234555553092103347690240896903303560827777006748832936544555026376265462701029662875325744826845000322941532512919697979993120724196194019244789503130301111973724374677312812494054836038432566299177043273349995833263873884313662965013413714963162854226586040606875134183313705199035266992197478326588758954313049075897916164984374319016949666638363339030326288456501537300482384859785889760344407686586788270596144858558274016284721813301832919533434961448716726106426946928650777183674211296212556207783960881903038553424211966010237190520590398324255525471054635557215764857100854495672285393623083814352671863052785523958841347013693630581879526909994718161245293475464329829005898331318273231664477555457922464489055833171224725155439300538073480875786524644847734917095650456274608074081735413835839186579570946001012499819746468400009023847672571590552816606602284510661295311531879858210156267462296919347143891109930820122936593691122435559323995079942385930799389193674557112365407689999228616913055288217881770494007194644814810445171000479587480836852137594612326070561783243343314196665652032494394321986531277621753070249341985947206173786493393860528585035557707165962465312608869677045815576949918433007029874749993276867529203209267822944467071371554483722019984800666822944194908665944350969311205580812793772575764319027167843262214359973509335984787158169990087820984668138869475442433277105827358058394915309134747579293918144936054596098792962667950379407314279934872989234575081005905577336604124512939189728876471644157822945772625694760908752382498750403691137813424389283894858322970079329271329207247648290370233642665405566885911485098244627245843182596559559791040150859762838042967862876312681729005935664728262014529182006352864522905053650074954477485798362021174736927150766467065710537809437278023341147025976943779149030714833484124446343721812322709200424056096444219751374877247990466913858100314105521307539636441269990652749116766470435700830799422858594766436881327776743306510790040738715270032058672470831339252393819048946142607176617591251651888340719991608258561856643623755589151232757037690757911346639925661535836364847973365238057169283890368402171871869762691326255989228919217899220174586103767288642502796569122204408680982089844078506811915234498100733611943172821584993001068712589526688107230075500297463971690193866450907802122458637395819994958559194041699859979244380112835072760097949629443957591517076361361367819004098266937339980531047588854829340506797396487534516976281890356068327467324521298710412802422055377911296733218814803474386355427686004690816170407622669503242046037824352549311385843249505884497348859247106291090099222527842696076850887652677913230534132678705182148527066561225939536444042767427762331830933901856917750257513438817129927178036014724057998360148297008864444131435898233698761217665966235161777448967913275145676688147151774891785807574954098719085178544582703744767644402587199026751680973853201157799628530532041008041845273380720921651621509526150655828879784271360373254551569390166713375138602153353923620410258726770036515856440465936307315460709930926937658719273250230611242359054648306589708312136754602715989278537908867836402969534584657066985847334161272588154918752358257821023414231341768972203810857149584126496381359185964399497569444660913987929520638165274500856924547137374298927831750687200702437219110520200465291700597764060442794623254561545316986006253796279177694266179802507395796767198605920937530651540657501427664245230411668559117313079927190039812298325512770532973370349577849752941075696928620289031677235290211173535533887963894809331646281061443535548328304577047388009321249740853590191203121221433809187489584266819835869119151730849485007521414635662819637483776918609705208690556552512908468701969352307071163399304685524444078057553154301043608028073787167014027092259943253958936961024569815285440990008246575802440687551190021922714683481704125445171423344646901180213409097820184625757041336266026936197025594855749485787294379223213432133677973502572926168066158721258380138071059167014051868175644746135683432552233554345385183834578120242833374596626381180385476728845276999663663981129151705307130400699714447294729079138451056464723917092086852227460739574722349261262161730461068043675732931012377559230136240983779017410762321092144597278671804413403949641195836720842281059198920812344550142766969554526605692318374541890017758940287156048743810053683791525660572968467815395625031013844186808622811751157486058851318953878298561718494057722550094520029464068141656593788951680201199621694282651716178518924232098906872218795804556293855919938395750541944629488989729655333989019123885185694678421876656030832751041884264915156020863881414617906021188493095836731169858263638249666670724224552118766088416101943875647772128858681937265115854412997089168403109644026224985184901830394384045635092358112545600842148255049081805454859888248878306310213269020965451562419029370308404009246620908615308035026819391870532424797875875460122045840204949698620066354331759770277297778489945012531931685810623857153470792850136638333184323601368191760567515257989870454944404849560191719638548760139214919673071599017380062889524834727829465102256398066686360808603193279858719341063917662046390325771307833990338773617416308592569578202286675161120639245167307005299122342575722550650668378377744340712026579422442698542720995010737654310674623353617866201179008799796827410674429151714350173738974132266730348510568649008208676222151881966040471171319321901407018698052911255787631689457860904448702891154190339185735722088700069635788812473452922791328908587040675917719253218137878935312384749238685602214246650283261920560898401801043034747527473865946803621651883079298018563216935206262289372840174678060434225278256257439999369649681169768033381441519151347906931534031518183082269259558814902870755509204328749630126300429637002253907487942578553573237611465267069212014732148144012076696211416947960562076333061707530730989506678979253961751902477629339291849747246768443917580601824263719945160462996074479864680186292009862131443024249957219281873468519884389053883846779752943672566468375502113495979504641887763019306993502386371192422880331717466466454466280733770173973202532597854593122702972141775495435902767121844603661079883493299641650108647901259438705109424367709832118536404536350679003310933495270999742985082738618364494256436204592314663178063665657831599040369405399099523863810492252173648307832062627737576977016584739463917898121159373096924059023418105083647112743022833429019849083276459977892663128409750170971811253600214493219761379596935070958942943727876348924885388605553864334658037085709051736548212985221366700718460793906008382908407775891787530486783987850902353333120781582849740187007439908279743790895206746579916434078922363303244323240422068998011688593683331736349837254205601739028162555073296113689718870513378630477171306003653143020858387698799495427451929273663084770029897396961415943251836434516890583103166677566774627769329875144396826231460291751170238631273529059783938997002763078829643079027501863117521899992545125640167021662002533164271863810225249659648986097366045312706064340037478952252966170188265590564181854411131480708333586330241634152750160789643105078868901670404600084366320926858529856642705787901172980623333910183934840829739959497415056430351168303814205348572611677829733551605491170619144092719482449064233468902218511043046023736168723866372318021163739139574682431278155538026906389034388972221388002987853516009409870858535024471504054303825230309592042567762053279053061841705395659498093322887978911129170174052815222207111166402515233920084904638499248365444246768377725613192663720792398590830571570799052630691992169424803388567127030807644568404008522977369697088616245178746711296797454597212799592903197244234057588251837984110199367394810778391677747475396056338617446480847697071025834464231137078477246956862384385305073590600073780025944898268114916161608148355794603174847920746615334566589157306623772718910875485334321446905098373689646086029765590991399157310061008308900576257392087879521414364412776918520599797951269548619527809077134219208492049435053884174901397211024758174884382504735840264481237395238588133803405724388236334221758381039007550336191784068610164139598151839898495049728666066507515468416351494982354706176519068465625103810242885649576324274054229112096666592614171156105169129908858867634024508511594276816322873507009960736282875283656489061694836273606095438273183091478751776975912435163831006504396080258209170706955604734837995272279283956401083190904688779642936383797509843283682212920654358740579845672960358639323078082720097968341457541762416034224196672750681730959129082865798490357142532250956775406464984577522687125613867844137731727124248659857714798668394571864597595532138628573223360657940580711408902412025320768165935957884613994773036951161539037813440203908957903916309399135732204364902128202786061217370379113070688615625038295334601640697160603538733534664137915983722017544118086107873727640311719372905712812194889279240360046033953528868515418897384369200541589475294536491333533003211324219515064807513180244448037889834834690642666548450698527361390748533501011316063160733520979751103847269708253885550351569375482283664435452415206159709178620351824062825917419645923940366933591393729118850302478110374674253471045371617227196078347725582031017016803465415956755083150368204266394405810307004297235333649142803302306209570173424152580675150071956141410525564148917575554664288190004024475885546519589485285808738171365568424431869208778435217407521938478671821678458547966392984847663155278368522878902594366673833120384343508741514369769452679599588642391553248823667737125541540442654007018812344846635946632223838232639211313963348865773966726253576733445636509849936604723751590364908924750047891745070254272302128457696348364462259157862120397626605868297288881838248290077087203705065339991383091718022367800410369682947474121031751488826755761852429966844648130598416860333870180005117858007508476884308076494878194830516902492693751556693052239752580128493838241495918196830636084088052303174837804126964640084174845136198344602546831735606392231370622907984255167611272830070996516610736899694464479952567374169732078290283303918711888711475834948211073037215273689340884533740160342854598739281115132085889554000349260964024938135224635136370602589716276391977251874555170263261227039631425272512941628725788691361535334034342570565077568185716667311809647523001895317577621360929593470455825348898199004970435899226101121498180259853686383292331249240266534531867391072621001969276864927408744693560638756770426280899803526565536467817812526202687203763322889649590665998229881893135994544629094229963910730068213789898158666886593209851466497343470891709779340231644674165046511472509826125997375126212250519721691953303802482076852508623922744821214086251400451066804105248838499041583944078266422117554121526551434500359878323235926544208819607345403378883836572981515898835639026139114374259450046735302349446902108842966176678017311814794239667853441804330403076484002856619187083320511350407897405189148414357404899404277311862757180491637579900094269678131422851310186527584137742162635290844811462014155933328808985410868963794251847764815155491392895161554613615735612239755361353385380005563828726841540386051924554906707195569224946257378217004007519281544567399923723975372398941296498035331245017990488263409448849256977166601499924109960784045556051597656797997459053866838365115674514879702846652811399333233835228251497287351650874103625027217881190970560570894152615388089879608181751853108223919878464362953872959022413076352521005100920711021370420471199382863200999213523443058175214866178907981946233258463459474580722360229420429043059125562827795943940574031226700028102772005839534889886376881332017444744862450604771076278141934281080939430333358543383095938472046919695380149476072461044546205407264791250717102248883355018349638627505525630066562788246172649372297084632070344925649160584675021005238069558227081767408830219240591579841533244424499176815742200887209128466915399307014162165963463724736419671276536055374767949165071459064514952999368055403121503916277107494296432623708086168055701577085626154756358485171311011212723271955649088306228246912335101566007581023793251197568194012090521926254715237621647323109590709325902952051057990713527461499797346666357722622162817427339598998200065965503481812813709275402172070334556207778730163299755373384860324180898015246633265840808912981395526422932627632271139418785187523931984214965508542896808820357227036409456372016783305897586885021514528550183562886683222767708877125501774110104020554301528639552613828548704172351830326926133508549793678032699755297756650131524231777957419068249189607630079325692778405160341968463843026561698033955989279518034128786733581401697679807261106295793255090077139962533506979583863755550212533777772383761678184816403650437928288592141667029308346173813195042681663481686090778573697734702041796133587341212770483140440721266533251710107851357391163657369517161894114964035320877494854586025097911227279296087757304160730959784313112202859977455260265820718791782869824544641914543618471858694590832860523983005779170073199907181974267609541157511345176229913268544178571375846573727866491411420718051893237547561999809233179925228475467697260252273645738547904817170407475895401184354112411132995737538795128730134166474003119306111751711518667118101291280058205717291079464340927191218292041735949906301682085585620706607658202127666759564632702551259037469647567258479137966229863314976398157222942218571659778100583458662173899498378507567029534118197864726235763524265710531004998831470544863324551178977360484429024591384935734573062535956208875969804139069475827181677591508536371604051747733889325387762389052750428354767672677874622959697323865319082597910834882601068866989742617354820297114173557146381697624097018712342694726177927006169871395376326811173801172481747769144964471936912840123364248647344630572980233335649592573841237469527442873515401098150075403552776784963845323271351848729022727383790665816064135480625802248868788229207593170231163307602419473150378952823315702122679267912753455003377163167849816885970268503305674752342289870377003072908951395496200343475115262693959150923793966512541336542164672783062537845742787314141124551363585719212335089194533685449804699602103175602561362846128299081731387129184820776627313628505601784919238404060789290963943652394043031072411193019744988199481035773910980494471166448898530827151399969433519562534301622444884400258985732046453301843024975729147898103074624769761179999876480048713940966306893739537459205468372816406500033578432937818465390710026119726474789255984042413166509368129288194911534228428123163444294987061970340318845534363206281751139954737010783029683539555690609539612830166393784781588841890129292217269550826778944757836087011915641265957127814455859075825071555592240925705489491504472139041158739535411496719167002191396117851815950433381326316915140932502667740874233129866658457289178972657392410034835844621246000686542100775226767099801301686692417984730995622128174147678469110344248016307216582647077315965428907958806990436317063814439517427624356187481435269211035468786140957583549950942701032086788036585291207820711326765510788264297350965427202485023855831428761187029972755231214747495612647181727690120830709540916531426427105033361489940549044579168552262530515682391775010676683307766838549312351785199397987440362392736542616708499095513032541313926331020482071796530433453247532883894981198380893691639447304107846410964933837809906850113387702822020866583462173184248387662824461793193278396095852086911970890375662315171245133250719403494707998899437966999658619091852836993832945391626085509200111864970880662590378509694440191223408001972716635293694626639742513445314694725718107866568960510848411238157635440259389749270590038321297763934381770883931769053927263441772661515017629310050789765985291358226262675984155511787196835202922514100390873696227930418877183357690429713627084256755246743292717326011196739525422532715884749313715812521048755055468281358157836348597336190514844184042630850444392352911618711412496454058585270187982162111594265132313041289767006254469188631100674810891615714786617759799356349479732235133044119972146959911235700590845881022951054766297962243957338924352356723727692582450271387246170489778188419814264958745300308596441347448058276272874883529779077428136380408929309545230579756757522590479300996745544462967445323649256801142040046278691391458703061501569297217009583113321289859612098148326570358488057210126844493014102574036638187927641901483236935109400660705448820259112466870345577993831823034719375376897407120278905532748187348149667896302880158583387654851196715237854353882676595110890311728398083460088151980807104774467677396254719831144836608612937561384218953794317802162707120510561705386948906685477819698817718399176186085441754513143928423588559461574195614773589577739543423473668344137228994749784587691178716221046415526772000692043092152876987054990790231851811308566485888788156748220881017267351571201201982734232586254948183114655488965283934265636545175784066217478807216471188451995949673726332149733062240913592016016218651566974808140027939865829934005954776816198388622283773618579106691389202948289630327320003998000657268490751359537114515342847783482094068180660435379139404624751230872644498464120558504548697774022662610429237576108710900281695872930579689667545909113829136424071690684990188721417302163458407752357472112123075182874193158711165845730690005526044869061113172539040884204921582539179812377281076888014460209292117005415077401155396598428771473967180014199411551655637177622145534414307486998689194474301442229784366456527964728212750544115141995355947771070511362187788082114405955889641685243331777230264069490882734761640652823479504428644944395657055360911138387487562290445381012939545757494993661329012766648744407470712308817385415745976531504768620482679625240819859990531450155891532849557254272180890397969813858570654914923039051315894999501806354926637577016326032368539858572933788103789822716536652056886998962002230425407373877239052566599477509033399060590474670738008066966690553498890854727184894698812794193273322861551056066668623563914213628368247315687166743156120865510240439595783278773527721812354936313381724300571612380472892970327973953259977995636672494821025264740277726071069730518269401966271445413758175609057358133496301505986481560633279769959495998875109335878377559428431492152495794180969981922769263104260122675999518176143735984979394136090114804019204001309933179747776475748519917552636238487198409614786162414609752324123745537127700469419522005059360317319289570545808202307240712807184493705006327797886933937152326720385837398322890181799780969138608138795360373861005116996274634216425139886979614300724049832855398770095114705907174990282940832322128444611752929742568444133994097528376263588847303422332566678599579374914246514259940828342835395865937265534694661887153837507859272737399171758485866576871566264207814806339480873543036615811428780179164494519688725197916064982011715216411979117509532551892313973027524935728395617397970775321475981909952105283453953672749413131810747414781132568862748150358042797291794909429926746038118888629419289537111243112084464158111367283383969295290775929321244868820503532989065279558350005039659055237207792667558368212936418937833018167148450209289909839970143134325606239093876208446545171240686559757011120695715399613365342698508684582902315593794792831951964030859376683797715477842581338093151653724730305792396056019838899649050353527632073707434886910893778668247949763371573587614717772513571841359766610704726542207249368858742683121547675419584042264980258885775541303610629777665017456867633877914759986638463820690698007225017004751716374723981868433900167156503490367255040913328765959544473240893104290335492757346353714084771517695454055331285892135184916863818544250063234712143246809274833095530404255951070786640485644357507293203206572608902380852673651501002916340832430111798444480867338717659632041192183470146572937703289317760838723486821697650395685371512031915525596381030174887312520083548029141019596447539228994090187908519496577125403190941536692600379228461534986062269239346482232598914172121523542231039389879513956807214442655842567528994640578512824363468704917739825592563812264422275504849012352382630596529622649206201803949022465745329189935328441141487233757201701326575851376522966825963130707959864300919622984352867467895529209733823736170052765460414275598214034065220951727323131059301782281680527502200311344246223043991415514298009667036079552121421068853559586381904851889219802182826851180355495575696015498755017236504291125428336128066321420949403737287183076010957376998304239875658336043710960939475342979334267146110463465320789039461934255117506746513257929633660775489698807457093081572931606788279966973385742387399843613956628694590387402669126770663577707410059558927355689035095786397599843127147729505478232555155906815459972026425699820666288614038285504240916834535194254489358342696742873879945291840077548179989785769516192492205721152090489001674890401540813434945960723358087250288297734319051343385553803244211771598341477334576891427468524127242736506056262047017851391671046248228143249284270370124914081752560590093736604863069185499905763925730104510853794130422744734682590294048705207978765070982938180514877615795852916443114793035728371219271642916849169940878583229725698916290770370808062531651400677440184196200937981011378567982045431891545304898853630142034548499123484439126489851678337563521075405579673475417694451637969447180276182559790974460805801852777624703747126333769720431451314410149467046646272608415330836263481428409070280325423606038926361591067051281154265106503626921690267610940319837888559449611870833213981909915553858658398689407531654773761849166239653373607663960020722670631543831893058552755483575885086442384804837768304266280248405638958546280079508010254764656430887497949637834335912332250979604497876839139499310666561818594320748605498344556722417649410957474599544223102142993363395525415227922849419737388616186395073587455439725603470682481336134636804509903871738029268224448471634220505958039660620828034917456453511363761561290686247893616641806948687331977678133870461775759491579109388576635873654445085481990545665747188987799594941093682909711728284746504121530597472545281631958873360696792102608005604417217638124043559481603333661290766910404964142320296363586852848259864245272458829974645962517049854104381165222260177662532313550105012377958394481284569837875971260176202822999506962254788153276809721803135484722853039603028270486091358344583606961109418490698836740412132399608480680222614097492202367186044878310226273761119126386660268983431008957709839719531619008018783989297934395650542321359834399881009310359735812186543514033535436001473950489145244830758173232302072222899763570089100415784947357822736020114071967071795394874173420044352627278060142207475287698434925868119167006431870214349407543929629460423552598673072804204132008851212066089206550408696152562898260837520770581919288045036925143811516422075813185271898611499811170243011576759271019133018011693504308581322715376083040852041503341860621978758957561093212173377756911668523968493936976952534885567965172516540329643510487355432073017662066210768839520165745029233983587419074955589457699128167385716745410785355255193942552633048006302004482206965582787539764505871867987630741354483066484920816681310894005604598721971613600020164704219932068084701462639529047423121919242478852396876231868411054069308319806838130983594153351565507347479548454774608495814167609355962454266531051605124833284578025962904545903474828239309313295642113598893080162487083918729885333999303682882344853997709684030188784482178190925768938674150707413540360104689124496247813032750844904955779551101811949949878285626087141247881563224247058921477243240862488835984491380887933314905779900886893687396345878654329888551797720390173678638828216093416059693742776880824694668798807958650260006096306555910746591793008207537566976365288731221739182941319250344058018762852222190088068842923899401118369699570116266525624972251542506239797674215487816844929641486479982407716605295384875069025220358094875444792594682845512182006891660419801753810679383033581489375528556432671937775255161990602585876684542406676276407728097324351851710191844476723010249875374593082219821381358799594914521996054982398804997680244554299925670816617003345463520486960516705624930731489559250013295678395835799371440865729967345924429942812194781898900160795741693972898444030786102533699644402313130927915947962945794550169562810232531956047759451354381917926703605605090249878391460170755374177642698157017537892821419718412718579308779015622888135915031456141146265283261608977889216441018665678494303631755019309776245056290924677831313796002766960938043191758145594515288730535137692192306411458309038657703267185260644814136189048649411242500613318804102434477895530597550070016311961934071412284314533835489943845163170541590894061827579718161682762034402946694075995794982099699886375016234981047202099904237565563376429982142209278558202715804206795571760195470438701270496543946587755592439398671024258121045439105577941589994507684194164855501882353847942406867219357071222021331420930155784946997160676917937183856370464118902476211819790700250713889749011985120863725455394163904450746710635817033813293138886549565811411808898473446683033166690237191115598298541717037257382717559551695158593527920893501545716971567813815610284979983621468735696330529700962322584026661548402361351804430109590695661145771159194186021440606056838257868486271868367374720563571721832921540765292629965290365868357409068194875264863832350595507351261737767812377659544041450928332482272944732426745092391959203042391812101728252646097687107130061522086589990449440030216284799383793080795358663702313879615527207135814220701154853644170112336420604787796011148982676876397495224435337587087804594845533100391049994838062844394915150182302702930785301449015194901684244303104721120305883123663565716811561421481609112108604995165243747856588568422663862367740994291252179218470056455447907322254021952153089325153601348593303046031672345044679829558713189989415265653863353332030340215805767185978556585887549703474632406066371550492348412696996715418553856726328820038049171229237084484488140082892584170242584425656484179317687701687164623546946916276400029941792299514483607323597620584984403038580926350206967910942622432896496647015102469385905226560576270857410022842435174017710611131142429672280821785611449830456146899349786394457776880569059319209561302998005425473329852707606021173658392479743136224834065162829631633870577835185833490610094944847275046351636439351417767297303702245573797754183040882118654709740850056559227747246652034740716437514001424630096855738198185963217106834039948892966533103829949495530282828284969808618514732473268644530798111123808435312246162903575734763205360939260504126598935541787313446680593196308015410582390289015199123050683533481705962152311515973999537504848897964634830891727662416754678291134603550494280629129393255493991272205363250893089017649587837063840799136742355075838639321680883603859099161686331008084522122719941898351884316230704172916870916056608978579634226431637782353089628638588008602741610750033969759482115782317956692999719289351812671974079275743787265113627835915405892400102659444325090603233210958688658126372645400633150194417915223103029094714985595383245708209585972637390652902161426317713727709169402994839499036784051146067561354353710796511493098399362372151937700169033928841912692958879197618664881535937635798604530837136045051779950218795715706546570871768485824298381702680180537750751106730286815735316051088947294507296401680973227318575289783906379404850067391574355764980318063566751141097913153914189084431543257199523301508831261413818076113772042709419900114039391568561747788547574398557937237885400410527154195533084372350114561272822337598171269690395593399874620998053160871333550126050576848896088827299535603258042098393325787424699897755980711842769013307036342701129181648443162090928035456040138231199650973136516280388895019122228278457287756417898747521521322736832651713642630209025337592113513537685216108242395959856761935443980151524283466845571835259489492083167165207140391736955953092244925905129048465715776476240896380158411232290844188873799204942361035476240316386761840443796244661464036393829972436160589246680603659138067167424356816652079256844655182863256868744262911725336869095742142197024860619416980417291343218086390723897061284862219992486109341673625821471053267165652785826711938583462986385670752913290771901409199185904261701323245594882571973472841028447756467471038246998143529905311991712974271873227061036901264001530982563509859869424708926161616591076805633528009733393173597917473022621818539798875967727723909133944960449524626296299432847452518652454362366373782894308923232874543357563934546414320632019068821880126807320752321321530358048029585544105579951265802658834526478945821427109181780733901820031204631354817111818676892892179458797499882301747867208627591624676317076899288156021756910942249941227780729289810872147285239702090688514424984665535634651838903240853532699253397521438863239134606654477326993652629568846357635318788345158886895696687019824940107496108358817283043902995302821208183458839098623999350587336135544332041358325854958645885537376101830205493498070671041054724016248472308433755092794716592342731781556439433310468798141131157465806455234056111692138287101213728314693137345222139902502511809832829132749952388942462523109815753730859350869541912490650581692313917293778960963326272297458617939777827924293816058195856843138195200498854255424705591447145625461655949373606947811678544149951498617613972969349580932144989498364174057518706103571151071089195863609362064844926947557318688992582778250079540547852598437539132924483682341836765734976772000670473102369213205492233677794520332112551940289696898680057451288156523849310918091920858467059762671842126531857705806489585973645903318534191978270209850475167410846928904221518075663028785152209046797637274459026741319469933878506386744307222979286933315874100217422109376236596812188910496937668061353971407695661997450847560724963034753017611741503248972389190890705156003144070057322295732345873967067555264858991413354809788224044816078070329195839811347253717930229348646066742500610060126636407406482440168460106403966142699985939562858695911339770961547843065846723511244621464495615436052018951452000589097769468378703699002413710789406615426493566619602631069459581995910639071927245917701120044275622989743439028574330405528866631544358014094342802076142401173591140405499068020366529258603579117192924423585039047319320062364573010536538315204607172962600230511894848031390157031005572463881061470326493389279407655342649512075719981836487727346229064613524048236315381932701621772677647288363942582214750045239852396571095162919249432028100900295693478249737847348019900305016720919195818229455664889993569476811585163644135691848099528240286770092484911992194166616989332126411922161601960715697462997492686756440161091592159001129538550059003646599289806617095854236027779356980552903568166006627464822668461898943444096952148102671056053766052238053422965242314234495082729098706344386124348261575914664312920550533766309097605557681450424310670827444532394053526001482633751594092804809257898033660652094706685272090507353904219150222642849978489121783106264035900482993658337475305386455037456207650769050371931311832418143163044908459772617116085027876505700566498321279804056402001353450331259748084382386642085574167221298127524479569025265691175026836955856347023625067536005675126218667220315154992594180586482865457295129818601236857672988124181070181475511993176724427273113588323530363711606911095717794727133226696975669308028384795338157211635454467389056133801748581440001253057532421191881552459516521415865104848513609551956471817781886871320861990350567177836186677177166140637883629115687357843464332806582427486816814385236830849874565428936135943401630147871195826064656568990768851108120517371870969394031520893350508372567754185758708524654788537572131099402102555610715251130310150870468095123486520164094532010176323052885921872483776636374996695708000606758774842291783508175921408151068855922059141449722179898698267065401930274522549481607475841565741327537795958540719642133604301811991986427760697929143712579204102853432169018943328236984215407431731372024246248892131152788906195367384748956854129805218052789669743039529066596495004234556960558180467945896902132837497901620163544376010504514089955785928557911013230652342546824350611713937275759285345067218309271028458477154955873141272266085781443439136285442098006946254712598989372410909204128321731328163177852814004338683003786968722339454209736324800112789915429175840616740065916739701788276238824524024561210127363773875472273149210362541345465497437292915649796987164527813718818387138305766499153768906977347627338948137797169345519774905252149834507709518449473714798884528381895792919697296267870692876392958847925359156528225170209612333670186734212820370904487114405135721014358628357599478393332217552230941554939803438444275075444236488283731031401484324442222458900016691060582304125149701676065921931982653418870599820688940371729094674652345592837726679583542252224947996270200446775121352732849527425434301593190931687224244952607486828219032559381155148157766332599130786189538566732234771670563048099527499814870777120720035664099664195782733945827739266977331225868627013242182563680749102205724883347044267718742407172297945456205748038463796500501250762155124369896693129531698995585646988740345313302893619450206967517668525207990372128995101205313365095100942420466787760485098289565110808037772312883156007307241219057462134648680324796726982212144360275166769964490843152998374816134915597433125494342984418202383956464779780076970074222431314975429380098925129087760590782258029023387062972105036858340986502138362218063730541196075584078333395377183289697696677684540589734706022347933113125817540015866109943012323405814413877752496367701259533032499562328731545457391241078837759295422396200776504025787834203838399445595506347654575722227782891759610322492662903318518679107701090418770820644096760076351131199198759095745855916570603839046018059673733668510356599371322451333556585760495257033452009888444506099322141767819424582457181492323149004425465875406273417920047823482260046331640256210728629214438321795671445262794110211250496712435969840588398642586316921532992203720515164911833032391020144493106471414782220080549005372596902416564510119804875970463843864474729524715138348880679930095461508198145224674135649028169372976298049251961982853146745569528283550871149669831939410839085545239469096085858169977578599199799837524369132232114123972306687089916425817034173744684002756421151241520636156788428184862129259701479554461955753468012897296515233707992749403047868440127682300274422698252815690021156421765469899545695360512370505221561971375738544081494663184944205224620819048658148012051805165217949676059053113934201601631191169949701653528785714804200607332084162039253479417736862528703066367500459506327454852150472718026491101422649083392791953923323318033421981287684987858767752782813638936359749426369292732752944577694850374097444019810966958062585887524819044310105889281357386797358309294629669522923828902124002879085617918550139374768147796619779187411424367556843924132603720997665948985963047398758319854261919683094466503669863917421201312909262944303260192774256434619517998150303252723227476353043246785350706151880739883851431532418002565286860320100187708762418391007493034960406875045041730557829897000052466323954422772679098900729106235320974410175910078640742944268652160901152890778822316840185068541883634407450650727652280184323602560237603988956381136937132134362520797027825794794094659009845108572828901914702036619464715493121252051571407244671730236650272759642234459692807486437423634352944196149984490141471450179451675154107949731827774737354309719609399552178529331666547004338805738535553969775073443029997198146223824832696565136448541042384136512676633863583497051827916611434062811901697214034700369141368449596873386424773619700459771891467098137890912800648845803335320955058473771730245489080250955196402197471665369480693793312213125690210271926723326825960343767633384714822455939062395053418932877174447093634295138592793981741781013805971437637398941207526293938266115912962635329563343532630777314279994248073575909573471498245189364491452014124496249710605407054009474180414966919294344106028497223314223125833593061771185904421452759565358206736614073860364940321262730777291046990863208166104478536173971327589153792601736087412659881799546103347318124844843419795521706689582037903753619934698690802674665230570291821882537215235726060818117620978722622257039105399094463190713268027314668575702304782377909341135785168393207494770790787523453086034467452809475930470049032805850041240091664930823609986663306134077385530302863668809669131437382803274934398043908937857660421754951886617635020381930672288018143445711266407069664728421755314427058098512733604014938007630337324972146157126060648922960460254572563992247832066141310591610581448616498025383436924899822151283738955547089837579791688768671501446732617871051490172410329954214224904022719276969251074929766173010434759278390173104106625430938640864705729222702175334739612739401436349114927216294739052446156040122391730840004970311117200601055356355328297933812584645668515451790233249368405987699682769947719689986786526196514669619866859156872364527262040737375222352501989384627315192481026783823837098526869813111526819215615400533081508657666304150374401537790598217828823366327309161168782209947742546602732342782584443738143242590451609474491369575835228785346389721601265380029185610251210357332545083590376153331627489137884194183225354502518645703159653729476612714749754665735210300112042628555530830898245090686959566099767560890329345734370087648264443983446197021597100759352808704327563605053681235636707520771150520005454919446232443422415709758238822505235960869497139505359514891967125613153782933768838486389490385398644902487875657911361693183078170045600497223385497027994210016042861746814693317144008198507501455914002775245740785491344237074079658496228759584452447107828047720517427440743886532191552161667956162195352093250142219629638189460303404719307100463214882449163912444544952722346551389323639572256096525891234207893307767147335813657032765945540483880013759416751808786536808472555493766324400297439367384112399870314691355718593282574875946667966158556175174586715510571593519069033148242980579130227620003504772527354466364768932187502054278412117253700682970972707398134931923734662490467209095472825205420028388707550991132035376937124993904355857076410281976407481697287204664461562345159450558177128126779154350875865465095804984961367331643754634827672742864768405794203649809557858861882888599620212746007067533978237066657349596125488045933665439019184158361667002159415067201328801350808482489535971076385182349704735499314866007428216162632081487830394869541174377110313303126063244696014694836298946311804667446457750987436609337846965940324358600274942430354753013502478404936643636523022856443794661756607323064633490550858530519017880564877180848370858590283790025280166173334210423680622149734054714939570717981533016226617347170007154261608623797516832615921540287136903542498187065997358935354635625190318102932300193474476868715189071152111531587229282693096776877100880690287567642647808374402784019203661827626036435025645137256732331555590655833099801008892927410424967559061020571335271766919999227607899581939923503293156080528763009571687882399281445725421081235234659271957688111433494552083786449044066037766671646923570026846246264557084223526281605574199576115076852525708759939606513960236712605442101721868327582719539642793541195926918928249173816527722516049113027022657195685462655515371088358677854034745598197976272110471858523356077716378180227890401119639366656236708023383967369384778265996006536263596209003659785842121489388721737287454046281838902169548062133881513924288650548669395756091500204685144449414251688809971127829707861189046505265477375169324944120824185580707654960449733753398712223039938880381642851279199797345167997436982234948033128201698488591558174363170540594654299986026565693712656947707670639503594993049158890047297973675875289655273346809769391110668940198843255925702532952017228749449945117941867722315449784673661694874452821618865533775115382924908534113299023687057587804356401466871355893672168254872421896211432780803487582604160058401795776089541951560502806093180286746539228819797428061029105490367850372858160422236617583153551706230546326837231492546880767322466193597898142834409721530944631923579526644694905166690322779360643864616513632448227012367601186874947702035269486004987294946543094342843786849670445726229649231682964842442902823396187170454844699231482167079741320353973939623996127534546557184384567602218294263881950909111147863799008978269489157009204716444244906481302002878108285215957387511194159413443680702640674636697133670829252267608345896759206825549468034853334513205315715934095685677507336710679818961601402855085172618943685550221433775264025165274055104340286148433163375603766212972222699849291650970989372510910657002401015782572024842217630015213381414864755248864920932613042738486841364017015420910893427530735186301715819637261074543775998257633854754636181935738344864332433813605102355144646159724173426249132211704661235712205427464586354240534739397356791251708183163326127077677532673990464193869199585024165034483566320974204535536636395655613893095646002412129786333008878855560923618801021775160289038223370688926144462182024149130911490923883980663972007747240230739299088848285394580124618938152137748764988299753454313816841396998094489649418513530944131047813846017418568945177251476274111802382384667004254642640413988201132704920413274433646732162052824419978513859103120048661483393463067554746900844686883257763654652997857507709206628873784612748379855835535911030345811460141501638519323452169078484352931597504150954243558060492216082180966418232576826302535646140649989331680714765251019071156623610648799841158640128898530366540821957016272460908949578701100330255543138109741854921356439914979517623919278264320427018004883220044610176954718536011592127559894263827204222460621299938702175664732134668120914386640360569998804863874466759663235426333851942730356392357551554714527586643515425460783509753033296397412366108512791193875074293482097828314947834053642489534565713537434779592183583969844438949036142042493706464627213665856850225389509274409515617067978279305552289047299424527775550048499828867759731172245512539949767553877283633396462690649700573257704694968276109479128479061190926276376770815810348651646567279297368886372537956211894954832467400041270879201403193121603768564797096139518711633700114857559829104267339107961021433660701520515893751431122851881585293308493075639090492419221404147685911533155246945854347470597795980025437980346746434416692889778583010010681245991567732924239158925633598904946007838364362099173512083982767053447745155789309781559908872454181717671608434417604139882143133541080697538649647370363876923380332634601839830636461515072366600657952771874095414154070387080648266869368625312919825943087903682115173151911095948371739522044892944291909412163587110527551534831779794202431935012151281301349842126427974926401061083144403178470465229329392094363133672326560647082265388399900623859849980496653370568068792686828870135733265654527038377206357682742287700913813997678129894950374090958174439067426913952425348964462033038003572948171792346929442487055503928496141685068753347079033927876593107913187889101008395265258523534271675246112538922701995704762411319054781076815691938036241221206310199262294617090553096317616869070115470727568917597547018726391318847872743802085886918433972024852000270512495895746962082062274927667834571549141677733792277992852594406036547120053536220541909880180007152416130842143304422010338342248986002891889237444550143770006479594038134969239493576682864362664410965259794531207621374546451465221254691170717779188667980836028407471890813537951025834355721068242099447972094830050980944638124194259919222077727939891777589058721825066840754006701195761731049267449401080478721541176471210200257338339355404841538492202665822682105855588250376792220492387649543584822172720063210743524772477147351696847755215503477065005762052766562352042751117800968680421779690630487893538696552881857259729322807046841419116351682940658518252945489573722173625880336432708570534039494908326731141704736464772479054805393888250708632474429093597704448475656954223362432879816305052649082757992656536877960078895714876931105503193980709930409106569769525381256533883544122331109820853697210678311898840469981669797624457895301578902330371676802667253716287353884181519633621298245947366488502454779342206506493588295509605409052052939837635986556093106736865855993084094032457825062955699727737888085287885450753209775660372598191192716834545245547235502047786240058908626561758256606502958059374763822335821511595246806782031399965167853904202271808884265834394469113276863671735795814013441754233401479865205562116541741637010158241279581927110627473172474607865262331658958282344186028707235635362876059397598207007152813917950629058467086050727124241491361163514282635387863496143298730589894145847271233860619271973734254908210013744575933532083265036342160778746954859032413462632176228564233028093804595133915981440384161494034587379961565805776636081285871975695811845263882356853731349557429103138216355689629950511965211660771746138171185204551935199759770932368270577501144955360926724306242592937563699909807255344189512635096886340298242130024662623407896668358468037691546264467066505550417798585274106281732517286145127626313281237111258990000890568696477323052885959801760277600063603948257286635436237317598715028098008109366934163408696845662982959612656417123235069603349170386712157588512685507980712807848067517444363383039585916736885189167739591829472826135196299776020041156161042493137964626542424046761220888951457452791974208325898062667986405499368961429769111097483606152739705688970913104980736604315881618773117589532975225761963652330535744373499277786273704350013456161806322847226066762916930810691088402245168895405469632227996463402843852307306160002913876101311539333656474769373020977976041294082671200093029153263157846458244367773861111689616859409851436966564562122922611526830666006057328691853751321708576350413095573080150706414885467237647466025698720985270609183240099065505797579292444686403064801786428782050737279996709527654696257063225954307433194601462348625896177975335096775972475918741812161317151803569307074023336471905169282761395348607352573903466178009387511845804204532625094058381360418029455292162959488233328342882683326287715603015901482630002346251342044363244996041251588780992985939983696533406630875279381617812737065791461835850097060753922151306483016761264616771238034600064752224817550437099261954221462513518059875167860242324154484103457715677970604844010064774208223797282983884071219758673744136216050890239465949662254406729747815477087224977766749272306619210294886617930149694912649186174619260009015015534492171829294312356807219137172436077101389937742609491686193816148227226197789241230210169660099978782030139004239403052203604955440010997636112804357801577122753665134611229115583114079103299551345588454424719155261813799442727566361863587565030940088997798164985739955129048339220154888758712136319964881751228480349829467412304999939481327055261111018623569450150699517120293456462514890818266342250662338158085916784680156871894944630713458175018433234367632186322959454880232922757198384052947424632082382970274574610468708746089414837190882725289648727245766169082849635668581510799665666750889761400747888724390470343635370535287248944919849089724255858512442196232091343112961503632369136821764214924319479815179566653594817533351496303343470510268524699786280742100080975679978854728711472959960936210768199080468492740476796840129594944717080479240936055747548679622377030043545851046087555825110500973201271798314997519290936190626724121262561369485874227768891042356359826639655383318519578238917225621935263106590160324216385005921121984726285713849801746389272222259293326511442352974951669713706770586417087553873762649882970022603335884502833662805288053855458147086169576487580600975616142517653978329997662101161496426035044641800448410634424747328930363194394589936272021408921603599687793401315464210305487932480312691488728718712257665921483655628798802048400170853697244008314830972283304054645517833928483500029766733038420994657336429623376781955294266818648986541500190517240165605831365151958019004371633365541678528743784162810994779375687641613880939150565203910298510119688919364935991313965635449115191124767001969484111862193835147693967919210711773032414105974828041709763088781726729501036863039538901378685639372860375042273260098174827520037121774921154687913976368304246171705770447234184671669925617044343958313234955864740204763590495358967245504802585291962792391394659652155192854331886107216965861354473807219475543786946896014215476341032776786419348361262645783049636669812872599966985396976262979714847058144727019095281043870266520188462549528492512121934756828785336373458339823887524727762565432220320427725401612900238909881489550193891809802620110626005700679526224515397815555210772339869284598572804650901080076298171982300301799620317639627778075772822964719560718134244933919353856988590677133018833861775833224237219366120362098286130743700294616382341992502790962743270299050972997355101119887883785841908035493686731729372108901845328271780209828441648181153514060997615211337829919974383184319007190878505681933554745809613348990002351031125699395351514007455439341424676391099383978023703383410066067027830208928932300459224597156417937317491933762668438354670417646720448340987184254262610180432442527879908897812262882487127411708450775234977453107552491083935851446544788246945076527293745905848014861947997977541672040432357079956059826264623107134939360222707053406632407892621854533272655459238465643127092871276805445646810570752345989951450956491401428900517262728225841504619083707515182177668598810737738228163668873179681730776350700960177313997399435969879195635827493415836769506232474146479326566471377492087330301499370449097059910447982821018248877266163871894203666802749280775481952283134326238634334880339049377872984922712217600804574731966119246593414761669656569415454934906014682806975186367626270247194019187713966290097021700512064624145950954242560710538470810662854142812040197797885386878346625307639059882400402407315875909003355745287076640112760705462258627139271682937055199045539207563673175421408766614426693786653279543400567448985189305644522207922691269116846570460718259683406657966653828906044003862230803055646832381376832870067919588906340913944850163139920390528476922208250758213656372121512963685537673940396368070185172080547395627051153194995099275232719602790942028514776876322756696141247090679960978123397424583034491682302413338460010895936027469786269543946297993273313919535794670345201015730220439481106008435300220961202840692825311291067826748345917126235909660461294525008728489121858684940275100217461253080203129325032439462246464295160470714218697422065351249209548809783352711260831968301915520087158551747134565016987924654674826541663570417980971033764190813926668382553589777090492386273854898105571582965985767813710824050292553055889073237730796512136763888385198072417247598257564909069579792961258805453771292994796523604222199253655128085331143056644820497940031830972247789513798137465421370820015061646239700125877576054745381173129721048507650992839625578129323637357227112336451514711345494788095969680424496717084792539869560019879959820621421175521366900140083892536064200297591970731488324969960660198410851774821584043755099255485388433803786355387316416441682514288160080210871502009250469798771275805798017898472187165601372334412143567768579836213250267693375057611234319990686732684625377682340769976711601078329116610132789462652796963711107144493486956174314903280582822283878452865222947288450475367232723831639578033186032231088430535744877552085175615621872639347741839710275404743304699191519288485957538045638043215491688001116240722068736454750258232311412258645988520861357823388302161111925851271224679900862276082791957043842089179426055185419742278962297715239796362134503808417543264002836976858822374661682299015487240008545065876576317149082074989321123741205437134384595800998845615503277675507728319292722999374318526912582014654171779974856245768848546547750641806735903562214460631210637149152742322855805102190926540471193412343861612592273821125540832645227338568468189459479820412000597046111799069860898026168532004162615282261102616582602372968664702541482713846288909742097980155221938391294456199135082483948481938844651583830316799723107974884280835624687784174045393921233923251008809281348352336903965719454812939400031925584166308931304552381882461906211648822506678404845507529110939543015421737828818564341902550602710273087384290023303391463358556368157137919930996970376426611041514421062657531842269151188098885698175977612146600850310564931888960629574151675137495512148357963287362313301742772392659668074707365385057901453073615987369088035584348940682355145002486506364351197380382942543787396443889863995476746540740258718297675889730414573046915804172414644290089227694199930068685044785025931177844171805281700243568803687111411839437120388975710157143170117988024018645472716620787239959400798951293557601747001652715451827978546214829736989002225298198397355342396460512013357705772200619941077175538767641059230924962546432892877736416345906590950591919762361585421224746332097663291301135455243284575585163255783866543378650541699443663447471391167540853554669188276868530918794831359610705856079372631511211036076348077471256639040951292132177723355873699070852469774589070734596507095003304168534912484830601730903354397853019608607538548462254718269337432180251629234592981041167674110857619088393578941281090758070277375555719953856243983371649539287565809213831008069405918634139121412164464135360703372459113017971217490912269864090629957610559715721904277544022770711198713576782153957315500529411217065364703118425408149817829710024074067667638041362659764559879004390509914061421315114852395602734095787199369080899670172125410047912583268969413172544324492388045138222216913612676558764132699440919982001780190924459664358362834899457445289546712939404622258283091075250246012962274968670385566453225270457797615218050108109305592628663884720295319108808557159963846709442085618354784361722009755433022915925442682193670358278329936109763040005019179023355133932062910091895903625923927480138558972179198179948777622581280058443571934176544491454278136618521652340332770877312014585315246420768220037632154379108726591930668104802685752800100160907864243256756753229740392910637769849746419085116967787858045485091368009774577499185277097040805815279164159840608610990320305414481081688573407527520477041422687365122062628780196615532524082506018306942509396421220481257128394244125891803304079033992379184467546112034299644587966332373794578312929378337217165075965083727350489505459618371516117580286257613142237621069716038960463233195752111246512813664478053129625626666855499054826937209522300719560725415627778176637310462571504408886300454394672527579612626008762581794343239337498442763490152258770230022753154077200614769721467762747349082917219316093898769985339394083569320525072783552919873231193287098701032117251124338625421560346092196303051857044095333592048184945244833122288915423865645454666841429687395941379042775402306639196086266862035724599651357319553516230032886126620475947124722983983749641436768805497560372859930167681776437352619859378065974070849171168930397791340981018541547281531960099078642557852070464669066904343572961208298800106331773125750915467770995051203478267681814139592605241642999051976092469539890532700720903928528192131517050015686740689094014951948307333672941908882287970830194494121972715227264034900169439741769302347098100557776090539983447323218691755500003025065422355601596486587815929779930566261684628968089516765264709601598583146046985597277144245703366389757967956267446281237235700309941068094357798967393691589734015010429291909101970839391189332908296621719384332776500843915348598735015060593958837231404974280992966366001540212511985098342458919349346536248074400809563304259115658223224169721655512026398547489379804813700075996020678937260690195376352330934463933109795454523525445650078637825716639874280784709328404188119881768246506256680222882241730737961488758885924524321829107494310149198662501870091597515879699594106395185392915680331951299980783169230044981911019821730344811387042102063103552965605145177442655685321894170683714738044154413048809095062075133354757950994094601259697969625236479465735548963114538728146832416600052532595321531410429398971336728947160180641995685537773735475420565230411819420053676956603371153185304103649120705686995584500514986882467097649329855320752452463287489428613783901082296840191448736312650638365618570352722138792749342377438724548281823265213446834720412859083337708949801477120190394299248205141913316429502888632941278839993859683890726590319951202052774267240085859158035699080086357048666679627830534931236480452207518405645051517778425319939126068103443933794915644380076571426199672416145572898012295723593808664449288815281998262203266725475049561269843140726527533890884680366834786653437843739530459325535351952026671538840735828376288441625896653187902900361287897876202097105067137278450652763283519801992956295823525875713828709325224092612490210807989573717120052549838177676422397574008355994503090012252660438839259076473491196159564263056804305084326040189319978289227191088303913483837233751812614992521699053435874609144713212615631861083540561113717231004178002425549947039186004007087934555708585912864688162704213331956077967101686748152552990248652551203948925668556735205741049437019075021741844909277464911603787065657394144060469568378486440384361226951421552488633782800256556524437398935169522729922654079603629438666831672299661628481595285216794603784117662502516304532764357312005571479808538549022960430567450774414341175444828798171603331146076167666574091312115666211011820800551409291182101071584370697727719158626002126120554942389619582517469850537433193503281052642609130296943932898622261433040109950696445696388601376545970643137301186784004278771326604692366610604578319788025681793461834280147789904796598145940659594255448246216451123843107028336591501511744439647963877054645459482270181401435113343747950224672658515163362841656922970513690883313787755900014744619348240585336808396759275332650647313715090089545792569595402850363495119600781829414902181950133006464045873615747186920515462584886826187318585829725455394937763751486579282506714687135527918940836165002963741656277346326205786522657207690974639371759007281625813065367971457436856952967019344569223840288758092015057379294436888959218943128122095678504600153465635883810398644915819665516997471750510838186460627608980922189493710539252662515327978242420915113731572232629077503232291931981122035996514573758793178495686336195379389309675900977394428146347199479146695890363975723497806157095150949023917400772978141563022732709478091120553073596540959340321240989437038731333478767407067311767919846278029457344829454483397017085418080040519946872126810734184944103271318903506576032812081395403548530316689725653479741990693555047882812411825118803000847069170325557051479440187214546721864501215722080519247509041059539688575210127746387363523624151020644411637651030101133920511414397717146044829324158494861407750875399982642359752582472989287715743545310887702193592200914930520823720459481003604797198320719053798996184287971385700250861978629775771153453344002330866889737134942185087461667013871327582261280747936476348658553283016630472441630091559554277959152263567315025901208628817992788545858175287674547241394578374868425699938341717987600984010831341284489485916140959734096672736302079241249241203468008954763442765507182179154251859352973323927234001587422492866651189681911481838304416387346870008344230546380267533122975980507611595367811155288562207603718456043361025837745565131216590190391128540776798937656743397002459202531767349653699545970507998996583568720507163296108002109979788054838563273598583138315711667406108376494458457378427350477040217201437649241183819042443084506585106071753496166414416917496917663645738920263854383539764065302166971793187079858388560977862743818997672450480750488866175753088847536087277547036783586249604233221160167038909950289040878916600737531734471209357789473957862639514061616426956276206172110663282947586543195426436258580358080349428144240429180081742262528820738883009642716014998954112350047706364259723487445524773058536780747044243244018756792979331002071610316152112103348865040171972526164778434603733209482016275243792209756380648871071186174768454209551844985555794025458894680011068624754020735707456810865871369699329068444999906335645085082428583581182533159190435266975265700749002460908697651701330815976230671719644626413905469413160306896402757710008602646233290612456517441945059685522787046569779933481950066611819701187579189783711006716308902245778670799020806373935735970168257365604391534893310126207827622772019704321501511085477124691596331318821990802101443981132757536015748283626346062207595519296279938021369650112520508701317449791621627367224155694388333102549255410454987537895310026551533790625395221981408263581097496394406257935220270915599022539750361399632457675137081013090252296251911251440721702829595093538388421428274458458340388271527269223628883007361841036974075604686572561705029461717486968723160465432244495576310319344135837300953514332129983769614284607916150261608218169942517625298318820986254063193268859255535061520008136247668585784350967558362888974772594802366464670653375384113146755063089019188372060765814031503064877408873726917131194752128214356765077550868027146492744308226589897753554236755210130692595671099978203300744550559266333409737494829583900527008189323607916384753348886539484679685050540868274171379768880313157510594556211119757553132342117414214010258102598774652491950370212865860657451852677976317717791999027318367599074755787433951998426213222411387730488838963065140029942493216102640387158632809141315559211276422472164449237220657625295535327403611824637252815969357798785686404252263159323643458729088228814074091759451976592824792293394349407198202629422871670265629533417065731250282285827661766365908891359779195463225565546827373923600592736611441353662779588286480970936303785543409477729136098633077948500100034348951986563588426032574948477298736332571078271740817254742040810090428704804215982119717341210856704734591030520726949569583461584935119137927201524920760517638394340434247809181402104112065017229720805850968727741043774299726608594522922553073098516253343003754496292585431125067490309064954253716068749639706267612548934195785658831623793808462377442598381729356937369835363246523959582115112507703004772144246318452000454615781183666044108565436057302534469278592570522945413611094743814988157771960068367319769899112277403190543906499723720264491000605761694574702579192345106506390967505406936307360496416459293382562013544730520082486610442691476059058562274330800791646602656790775120921811612203328186975008300007166334111317464511097329697489985942509788954662382726932877891371129701581914234519751062255610778413206152198561539882183879377527352945006424261274149198858059341275751584544792049053218918757670683791814887625427111421360687207309940053429770179550036762870321811085241949455979024998366242762870308670815695206800303002263166642073608049308472228109775841677362174838205042196645692002059025839494389598514493536236837948162137338595497279944759668826547538920381924365617701804297311520551282124844116884358390274438165509855906712009083040430714630851894924594471732829201229190361302054879363587510094520961222286813697394749158224606144588369535765814131325471062167071994103320344918992098816086189334560380758993496414936317393006350757998002649038259797705672748557190151858429816917712976313223858324443957962830025834848465475987929010536929195980625419446600774727668347838883898532033130032728901463863896042507525878952674281783626254952511626654307961266076060849104733010223722083308354716471414123788339301350240938013142904815705656894969840600757175749511197979714351381214027090584823006044650393466796875648486890245822462064695718148300828594222275820528083068206547297995673173730164435409069646979619017843802065600342785731944149813049490133025592112318528148940822135813526372398001273059982491944384118801368357613049736704319539419437696164813229345481842675067837984890115408919084218393017712196835713563082060593684378990586587218471130448559891236454929503272909937472745861653394772645972787081009055632491918895382519863208169935847675014674695343547887332987075783370107129745514545600849651039541764461982112979208944873566221979235429515162021646584649843865623894553208722145690804923395589818918762291939457204761471322148435103873920652389894318489818945685931285934730470668672143479718719478872000855464865122792625599585087248182286372835440851645201250939331066084802233915905380425942466571817526045028686838907372760868694511456465761086855923090531981679575220027824973490633459275427928728832413629634936359241698211877912372427274849930107130337354701382992625704323714950455974550626989986525670950474237950204179147673978811172106149140349006251947068507270971310505199088456755214059913094818863058997787185523157025175407781055046235251960112457834086030188689017484435013099417371749173359104885126258583035764694390822354098992747897327707770795237522027941411780232469397139964107899285798748627334501912879379236606550688410912679202208608780938384140850238332036304866382230778590009292311339822702555937900420666554508279468800020518765667141264731652241236249370392143032356383399933059071397185198066624858577996787245360369209199284244835522805324840508877777297911543904499398512870056696079325196173734574609102844568879587427834374219663443517833389059266936051751379099097026865999040009857324571676440579155867889836739231516684637931587590329187876789930878795805997631806643306331329237645579596978854175524618445984392873692869073079113405302353813804732738413737208568621171369548580333009182079498885147419322197275350628794863658020512466198347181020436825874804565314704588622749980950347681259106645348632712887802167190866989474770638391417731461087078750807047528354814545035498056813882149296652283786439207168495444210767215260137056049381332956031408355026011476587814565919016616508263810339694761883503274615259136745559509003178807253422919912150891535077702425085470057053482392931987697349148935570015409732370475550082589987870540851031701525954150060079482406871871856277452544643265726488068451679937130952487415629735279949691055090627494455920231965544495401618636900802989131455881618206920579340821460356956792230896416290210178989913708743606117522740206018710274463447193451336420286977512669230521816909193436314739798171593117231605059878636265743554787010909423767371440575234003850362064930239584074269383291208625880292989298856403157282288965829601452638976921889116671419739869298331386738257641132781236714444376271862407403109172981442528247391701485837401292880366484386243117858563256852274684920792405000374705236919774591548715527438910495908979404897621056552331935066308337871908459593071301145008253638525493456962871055812177312545932530269397285701590859100953162196419496297519238508311666505778527455656746979774223165789084490494827215328785555773504639078777488456592676034146099933075466226723349705197844499912026445432345302641291959279114510837231140636425689575451039256879526278025864086542870816286138356013878320830540697957539989750615876078842505323006242633155504659239468299191767881763140375085052325386803248504576014048651700631209141671730053469463351029275867086720410309143005367713219263005304576721418399697226772936832530218736421120027908100119260299983460939540556299373700771957730222055712120211149161088165355987071157220778407492941462140457267091612131687523943939090485311611532220105838221152662777413067512910592987287036147518198295084992321296105613170786368986416184978960936098716519261881429898871269013759109450211794421896638279211224334191479459041708851560482632668166311291914767007350126658770123785362444591619868615605514086707876765895552342681063214744587784566082571274000354076601747519230276359236098729161990289549398922103674962522051706856692469078922390010411630972864449251361013136905642447092221730133852464502020094164891909911581358726878179134340804000093809584020055011834754281636025684621981542902652428020053952943954048642801769516176314252222833524463940884316265398630781875985626168983909590818695719730296707122377621099460586535047502895712841442545619165398091346939694362288999990507019955258953905137271310358653261947912389731996166039306244832886177735838316888695530768024192982061342872396037229555546588095579878516029933725762399293020058376463616365451879997386626754008131431878247080475007502158636637742636319350086188504447821610135492952058094672456136601989220503995416445640615283603556701196335123918214615889410284926450605960476801734311616268609137571084078436342064914659221278304446189362832293318562148686148803367653350202754801633540636258281302866379611839186687331784270688476727696091506753484539710300695096107566821534755949973240808179035999437123989083995054745115370041754433664697034548186962524049584166348617985308096506716284162355542919244872066381252494102728763834542397971948545433493642082031013731005120702305159692424615039070423946508501403358965543313472809261110688537203966471339954254713404892618487616095309072723240166322227820670690748060583162147669720600124544661754588412326909074418542964280668106664677034416286834369744230725839310460447684330412530540541523843577899259797789226708695439379300591660482328629398348101836294829588890889597575843350517658258818660480859730584179900385232042281636134016156791053397581672093997804909878246685055731033445165409287076543719509284056436326553556491088675296027310037434141252945234431653978860311484574958762640087758717799334678316562474802205732244162911544630521107723462028252583135227895282904623541925442628996820765082804602608624782334356742221336957228934429113433896754018378936072386112806457864192390243161142780219571692388255029988019740759207561526907509354679889060403964794975846074807470722582020710269184007929732521905755304040764035897078160947265708636122056407811492249893856339124041139681647465926498166573041735587701670022929317360166123296933073939625484061096387030065666163825575125323109231740124169989333631249896069937611803683621925237252406923663665233807784518656490193763098907391746005821029189624390402569672663973434619699628786981111175597178273801331873587816473970376072241819031771157164868590250138022894482208309431745203669734692426075470587101860559368635799880412398592166077787517816604490725583137758547174666939616531505004248069888673809636941723288763715078131209694471684188304972393683861341923482864596592904172548576163553617035257809500897497263023491155518592901834265373196231791984985305995934220591037303503737921797474123494299676565815870999797488623809310732309744453468959024313904164013801047871029033467840944234790538307549142045119137187977891418628058870110463424438242962804539195880787962796357693962482383908397876214396007344285994402499117893322361889411430856948712822655327569279344166595417926139631094806228540226618402875014234161025919719039259171808070299812693723972261330864131544268605438344002167929630723736649617314613111446268619040525065624774764399777371664960621590324452337479295810518860176637468746804546174847997486522181168851104326622902636442682586490653871141121890846863571556279198134583653968268740357120909613820050729361007474609736845496090067442038836784145111082032444584014973446229083492894051143400437220161473285486589527790317361858773488767528197794000601582826110489166818145591800991928584753695848366689220127947668059075509529922692727724605135886181277943980261365442112055243928809877146504098094080047217767055723963428984202689743152730397523634993813858270403056457011452554696277656196797290411597420324819780237533123613401840606811200293529348416752013857560620369207730149486030366753620190308558781405318408138684269147793361764228327608645288871074771762087992751297847241497677420877069769544359174629347523986285771608691746138366392030982847880500008785876732049746256652645571159075912100717906288740306863344302734620278367300257736774988752906041547491646082541514979394412180080170114828862677046071680042627320792838106822533330470367398537325319358220261057061277325501940137200841615176523577770507921342548594919851818440507192177838155128273435419562566448511506930501771032471463303088646122748139245701791999584965185131158163769478570864582702352321080702437530750345260028203289016974377287878142945976040366543562131499898910643107023227335684992586053991335547361583535571851875010595948399357083913945418433547705694035602875799076001533905808866266118852010556933736341001030437591440224728406936409505852561899481812003051321149611889007887607648957144989389688253470064672909197343854595237568943586406490555900618191931684029244122390724554957488034969430281095733874248838768440912818388970137802243082761607370303959133661735995818966888551722650944155715831973682021975313877388329689218835605133674729384718399551932785098279990550146393624687113040513889270862558755716801564533217763057329498179617445189024005603507483865156592227081973463230360929732772391792279629253649869214398496045542473904533406478101487979486921263627872670171956569699227741870858603019290906660829473678809122379169269740944323835498585428770673757243970167500546555664011141747158293862013868335570607530255996931272353993458205859492778657558571594510150306178264678506091718645276908341173968745930356533079322217086544234161254391761001853391235293663966964694098286799641083584123445166225359798301433574248291787087666529086186152353368136688824151612034085321280772215195591903557576495098664235902276951945802059968915593009292667478813777642627197258207709411420924809407605130495293303759513235439510625131351739021403499559766512449074410932567571803898664740412160245610163027278429036023814811181438635849081495792183131523163328764184183139335777346711115399759887559880322254007163296695101231689647050650131600567286150285377056410200189517884649243508861530293605554679144406603892483294084100254567521816698011395500074767562853543476918647329420697983234303561151183346670047320901126933611115553105674181906439049338525453195167327554789832222692392252645583515901335112640503334776285814878065141653624651655770945950617957600310156980634110869755613201722118740300900699104235414385497840879491279000718328632943557842763845517889816473376730367476904936349154933049671938734194040173387828509564747112716577242405566211197669826745652201564307911042360828414745070914068457533931236006857079151462465487104625350708119101616684555332211056703021076018872542190900241944004539840771643850131132691197121342412637813698505674168814087941748817971073627513901799888726369164063713769519562315905517456312907106314321085935486645668232911806429000666332511338287781925408075754340190940664845632647059879390222801023865333270265184147263845871873523664229149442596138187769138204492856955617871451612516077315226521858286761163733081523840379578482045662607965347398815099912297199263909590679044026115719369691574895330528316447551090934339181666945751657305501371525854033138199106747286196804984173901571031878978034415323836996937119519623610641510894345012146091852049808976625693936186000834921849541200506805395509545368937979307902816437453983170802616821859928954263045147124309431083327817736499445026164444303351188366280509072400337999371926706144628658268932217176792808251833719631300959778662049331992314469751021227223865889596563195508231190433666052459231701558926949723839813517077194504323728982069523388218961788386245325840151597813233093859070981988477207590673633975983314442483326826320866194808772294106815806185949411112574442489770766637222072987266968381656542094514756759644552508970300618940429174679552581315448216167600758048023090437876831354935337443334529474771626246991611650521488584672116501723329191410662210336617501934840887248089454970606907797649986215116957860995380014048773523224041314608456988250834693445317190042886063878482018404559248221396704348750985980610413821046836489692222707256752188269345586270044850957748680416927764735335217889066184674197382417404307187458958260553045813987994008331720943980052696149702485179100486481930932429286539948454836330465094659324902390417750970720723322947664106992744373852583446529158414905321661005905250352400056021045901576174646901928969682503886734472792235399915272359985999578253793442443546363447956152173252471624940313965269986601999197223325421663880326455287535311047772282201850647274324260715588216949531943219436633408145055491843944193355524886363029025877150887396134969602085889043960910122484332798011892022729233734226821980773780496197496069580658267421644027558114596259798467317711236626494823730250958426968164526605100356655205551748003741766667413952153757514019715201675070742065328113794542687724607155630386245024587606339729362316149631434952862172287869513286312425831117664244588139621902283325868236295212076037128072769799311262083179182710952561285859759444941416357765983262824182834874267218394021737647727953950494711654283050941264167147935341595691195868998361330858437704862804640864006237929729023720879672841953744909504063039900688703418699797206947894330791128892115799240742985007407254832319659256831558948486359791983805455008416274527908084582092284141778613416407927884898797332912617479005008940289647795478348165036483689780499163522565714148972875284419633069863952824273776295082028674098156473799372165564004913439310079063921416250781981142629189766047611287966053300223310577231050894946079952746650149417859631933609502730258057772537613871191215995760033033480074407256842105817498987511214848359257949688530976822192382791669508530877304895680480279198169735773557318472197316263457984991817012700113091498672809674739456505665774611769412004120893076445552032311872931726698373397369571412820437905790569583540793217090096377947488419728198363177477017680321645442140596602456777284081567133811683763183266052309168488650162866786245461406073580257514660433274144234913491084528903781290026355899346198101114502885327698029441355508368872126812973978031021448855022056698224446340134271147540217936152655748254842239530801838863941143439948079348613441175484290405374034044291443697049778255856044419474968161846087117802567088703239144268973740607741417493430281564962738755249782931566446846983631960503288830523944261012161032839374842661639901717870817710807078913641944229141473389008907451217707170924601825501805123474973167109708104158662217651409025768798665647994316996771189047006880579544923875746153872646712968773269909232929856289070586693375312007718108117375200981907398040049723201384231031242735859751507171694080410425258517521032133422336047917714780510729674906684755407585762053214511878968599637745753716999034019906517779494373275779164041448686020979202372699134066012555855748742443164845966417433951857301224878639153473476754256531221536674690050478904413341813757414322678393702780614474718759313745797260166568497200159386885612724178291351577973539003235003804005536004002974018696845879379051882161354199480663734402290410941166565608036490962055894254359766856421362617667152782182496675459122641831903409762357714815508238505063362225421300420649241714801257324442936969671710706488913157376823028153159787343227971951761593357786720874347911754429336973037541111922586833961139705060465638013564471629485213959079349299183459671761989548449890388261802865430038404665742462144449812451766903956907919585091848944253830234865435064117855256883539145742647803040080236693270933903582674093989478096884813850200536532829063030018922934562894638197525562738349182179671608330927462406026058087832708193317623888522752701004948017157062017249766318986452345398282535292352313466721205082212898771982953628851235971518888095658974777203389939528300404328162886437470430031173375770811872150245702112040688386517044683000642664568061695753309918121713807297237267964182206137505108910311542174809252496566118596260579320727913311358372699769572582540174626429551394839814574609887396158658330969268965130384054729699627459833753443682358193658180000715113883230738947263940652887241554641776112042375427027871537511919439346869805856021627340886071810615598019332728666225030771160257489454452588417130376076441395434316298996249476129305515639459355853877967248620032058638090299499735293243774224655991838306665536984576220276348331719539591588220038808552161670886347737018103784193479558431062218594849051495494988541969710748553929225813381496489062426634167242600493674855817571810970223539971366627464111214208780470632938414636236271305002595591452983650562831910608663677768873954742865636290449469470709929132509945781620879160439108391741559453101833320072393552264453113226568294072509840452471917697956513917907875554214626836505211172362258440435257831150624949634750431998023609221130157741135219333489906072825735728805959247991734482832327792839519344215994452583514280685310935031998287829759791902674586414369277437089281199238853785913908739154019027349564673610074736780324802859126307649757513281616643191622513658939848729047480993299749096433019687521955521603526919807552290512737297181489961499801336690370127619508326220709891672385601484780778534049456305106060901263890280584324143062585640015402410999692020710787982404606807036784187828380910497848357195967183863382212470577036524735963758978133405314796640134002213571921509052607704022896697870133050155566212034327318415201627744909909732270692329012412701463639416837620875986521163939301745547171563792363962749911231613163544740412901810566829529582811920235838919680553062349220522579507392859468152275577230235066639743648916150296190290360840236318938481463400348836491388479548808297303392919859608341113207622076238222186524601341629155579980713276244560953149502387755849407379239943741304726106532388931918298993309452342647160185735277124461538987647048618075474170814419450468127002591662633096433563737658508559576292832051341794976372597483427312578846976285579289905707171367192031206363485850764880381432894901695344373389185994578783117999929046149911284956737281553494851824563980287073525313986160349528078315438667377454504551796822131768745758217873825636210088259209937129942513932492462906512092636658577937019250988132728492448241481320884128447130994964249307444854644795003118962420686323270178179432347328750832238090437330575289444926835540046645371922748011062554055024606313611127818764426355090326508379363268561131106011232413074561397900858597851470813911297677063616636835360474318845193884798734840490524998438718886042136657769724457057420104422580110486454355571733086884904907872587914461195294787884789290099037333820224102098318862132550437033941628035507077670555656937969327521493895674918337552504675991856331125923820147608360976521648422211635810839427517920650567485322916625970566477932461449473804541072529905851712969866065510542471169734570730796075885415259074852739545143827452781442471278542075530745512107838379084918891457942569690033604629585900897489830530455129593328544652945480226012907145490610165167480071984368617179079405519515496915036892675064049971198664241604373083699791123498861488463479928847076423770172271999165331286398906119718974470406322034513522678016754422325398710180144158183722916497881383606577879283999666614519306251584535567080948471702540808838590988746515960139111493397342517544970263889589143649911325816007594903529306506690522770925273781709454712317598114185701587880593367101521468017153920292609781324563174469344595680939543186393533395327504664684181766011194424918173395423052112566925252922872004936428549299981183015760157797524800076377340622588095944080712537275841091140826638503693418725657886895179286840551780995725856553971181230940520182482675608944465014031728145746706327498425896932368807148582567607062384847760793235827759572185187610594451832841360246656463654214898477609974514154501231385245592177745379034628215196187452537687099371299430417177790477554225087719237803991185822700626476341500123775743436067625941185408297322033965313484641174224405407136083201014231212630214357716474364803118796590379599365087257987886532748459067553139971490113946928084743280631206656992557106316272825916130667021446882325572068627686961637037094770956734804694902499155311089529720880943086326084761556112754131554575674485254993522846701568327732547951602100482938001635968738392660600634848654030180341271451397588038867053175636250072306610381675104847089893875499901284091140751599140266719421757395419835034071229185082654447552832551733056028561019507505523966815628696246376384186118822157521807810008862004352118333160972474062730285541079548368720192048816059935859622515044720271086257961567417404179332935772825619325484970753261388008930849965517601094143729922065450831344172487227696496643528909479567819660906515362866982128953241566026934000739511080188676593606419617174319235714178924963056825780777334813046723432850841123415685697237746072648361860363943558619275777311498788738960002759321922880279680021525794078879328340959767017696259480210534691643614433004302163269891077061022368905489221439021470920073495143563453500969667584192753725872612100381338365178707601512770700822582969410493339470031039098834069902708233397669750764089656906201031009806745014977861158013352161545338985439827802100844046730649996436468139879104796891145845373814137961280910746943562360230689341966076108923237857781099810395122258060901116978410217446845125764572530039724155951564172430588402009551932811544643359792199959239103383533141374647456832847346039544909706415330498950064963400407633605234215683453899778236345324402455722923986495521043235293764380115606699242700307037145431089800775153427870798886125200420445357476318304743953258322003625043218179120598328786287050674683334982837187411460905420388427115958806817567006014996763763882676462087944532184236259051114952440159299716111895759152017478857382774632583120316891966192306596495895032972866768224875500489510360977652210413784318262768750158858811477885060800675567037104722234869547111228699779136650182867987287698641249439640892672564662533541594082936845976705995292480104881843531719704540411829180329091055880753149921975163483073668892029850433636426116129274002641513694065344369251823500963830905419620745626680619509290195376176947249530812162491044507087678709636824821692014813672517765400040929946906850818781867287300066687982964228436485756248608382511595216393642030573862541745095816136323228835087453211910733116543742203124736624802104441038647060806421587402940696103434469319088714085613934418336331986377171662340194099846715116783198332745412067203906864414484391346674231262058171568494471722770310596999341708729193296659428885617603970786706582433524832202124885576794635676088003075502765837391672938137768510952098772431052882183136061476426250981805348723239465602051128335709840368801563622927981009103689207262610585119665393004745652255423687929047993842237432737441980400943029774164253237621237836440963010008128758389953910789306849102935173845286125405777048773243161465348288544442598722928159813717899426584934094307511459693887171413940849600909980900253506429843668742831352804549573350344730850683289805611242335012504446232766203619496841849164094014214472686420777919484041031138057910482708835944649408676144091554240599971051111621686975408110181453331661977442017060045041507426125848152679374520837191697388597109827683864712697818513975505736277305699496036460978205393897662220793709801861631271137522704767803315467803886499620393169468927978788588501073234114118058934077855715154400708967376329747931428128094764145612280771735552830471722898375269136525169573252057073439457607410051162290210735403342152437173687326232440233254595448875402936453309958368325650662625587631630294509168312057864185974156813352434533160622216414054250076783964061397928449500047738604029721456123282945010390415239335508548757096901641837565555154904856897952584598812174370871812123996063887820346318377762219449232139977591925412035988507368905452373912278552921469442588991882344099657011434037903863312808203076930131774953566131562367101143891557019999413938540970292515490101977012301155983785585114396376451186757463755641783755380101323359120231230359274659192116915842436119544425194866551324957161828583055278886464025452898087942096539467035806114581565189708915494172296133847203505474202153809630231627885446021782874265594414023762701829750493453459479481750005558585383066243102500442150846364282052594563357629881217879132777931559068966904993969626252369701019318771911565342096920959028825698439727989393656168581350209991277963605500537165910780910948008293894370629399235386367265302918677140327197534413424789334408407243899399477635187295931872407633828811466499586931424358604702688435137991848479069916976410687750504530626642117989146444923159137737175326711077608048626518528251334512863376456448974270797315008058854536691416215793645903685785657178645905919745844916202777051186968249896490856729010669056926682512902227833021292058227283360146670764977089303540481033708380654564723379854059562098088021013080149408157255572020794043983765548381823475654601594905476014533564327102346098880307487374872569392881523729197058702256989253724700840164750441484400537117595815901608339026109603345439798325616864365359934676118091100478115455478956248961888420055918257611996524400789023076022232400363687887804333467755098586232592037271135027772054054650417254565141822706149872164387992885924477071128307284361237635114033232655689337396102631609262352161402683140350762870270314126276759089633667492664632448612850052103935868040365236033180251510228313816135870218516268342771043001873712330950844644736891882190823800070218866712614165775612023969768216704398026732148092104882715102815901783989380780436673552366927572102061856171933278570989590835588934733501143321167856218647276260126898929172366506140647086128409487241195338186499823341029873526471910544714203380992824086530366295884295156464267521132056210377730760300693946665674908767391542277631249238514011000690499629892536237377567216659889519427955403407463950423535324978186059054352433726292941596338001413491976545416321374574420906688885876434492364741728409725243387205402190291071709191718322803440064173267811467660615908267713308677003256732286755021331555888986332618340996072530939815503159283109192197670652283853952239844848741195479993540955935870220610283605586306346685851284694259557108393755428028621552178800966409331353880315835703726452464561997427030927737019613249517148095122048122808795481592742299720766881152568855987800158522701555600131017309822360378119123873208180616169116232197198914013045463006345165240770812272012662449284976867355259136886850558253756842192832643570279356292959589817510613541098886026057163951070696349557061536969720514475108799005059764943009960393207964571329854011589485107412285813399261974683591949589006746988222573530815862873262182029596603734424123159139298483843813472264206197382356297434421153817450391875195135219461292833366878855402603899910540574484883648884378985854699599375848481721978866891260433107615440577453304624432738068774714276458824100341744074922457374097366738830192570093080819429567403878339038636983224463835079127241341034604395586297499165980398257036215178629993137388867407609143505333936656512984261809526432606617903644733144731498928489040006773834700649749518756401759371203762468178625614160232553985223468702047904130116258914543827653689558529480193834392861207286090927327925909748294874113517077158527862309578484459767724134188806265208720627289708846207202049118371808151986167504362205824370942440513455358136009552263027291210841094114350229507487162084068398796384222300771503806470214920961753825634623629980613720714530331690957976028323983178753660116702607403390170675921311335142501651824568622913950210365984491148157483367470423826658958361771675398202505738457425157889961229604361133250739009302183892368141150149577577547680632862729072931968327534421465598586624629606069417332763940636845356145678472410922984799246823321412680455397469445484229335759508121285761758008436769824599140508482126838426730039277557608684643431382308868084383108220517142183944351415176445794576510278665153098222638916018982893276903857229266414968174528101580650273226062684260729575220074385817279469795561939062538379816685069830131017350197012500556899493473524894064636046393573636084875153429584730800584244249451792445537155358082646379760403188568404138552492562813421849629767901004196189297419237348490205855279392124520986396934176363449296699841857370051736330299804589150253980092244991001502066088053355740197621663437464361235398470551896352858209584764808999097744538733110121116816939963123285294961582529313949458190729434793792736345925946504840530620859718783410352414858994385036915395475520629168467922995120195315414008476766690373043638007658909962065913630678603951897249373996104492787109503954796723872452493435288508073829547222330804912407781790438872823625012929707317010274931085430046357364861638531617942070224621007752612229960538504257937000894267921642966526973144512733826973597109961763337415280447690726763026960724324851051173767410982163220800169528048221383823904811751558383484243371599615218362863776557681979320805659488353930046930329772330445298180971571143219897755877402794737657618687298418140119955942899038817929277555945870467822878496484753589552203148972589955169520096075514913457531662844627891123156540160475249276050586342702245366342962323302208755969372417863537192208752578300580441632585849957242894355853577972131896164456095493164890008523770685623941310034377201278906993890099116151644358340166021809607643339628879082552577617015071189147560104139615409744746079471933423691821219937462883167624630860265364087987375119885785942270919544880730901972513876692043712803043731388903227788983343986939834242266574687819214787205784018914212302244496175985016024883609481227888584641646758025661902847903366823696823326598617394887646179761552556755670492774438653362704748195655844207213211043058756183479867546895242572149608209250275080743645978587068217774993315619880580889776975455367681801627615594013994275753733066503834728293165661912565031440203673664207799351564473996566666109860566362579900605394369345676994486772165803493952647692184683715888097389013169913985732120836192393837573259604484345396530433264144334910352001004005665801202845835084622181433364372778458745207832543706662190797921038281776767868236111411958072704742564905085539821690962436082258455689793095824047006187039449256489267353137699841360197362261619060396279444465486778662668998627477281819576828108299356149639771117149502457377398271161936389355566848148675484376514744306192681559274909021013102697500037110712010153213949045287241556674115163197203314421723250405171954966687086954802773579437509555236382648635498765177957731437771278143367453914567522093014009007438879289227328839336705536016427048740847713988204299849940577224258095983481805872084217353885754870341290230813226291562274347629299289071438462168553570777705381588470609432138654986375352926727121342598561152857742933276226892407163576104120746488753007191094903778423840803113160424094095722349776240972236973892049211910530147204990483093145645075500357285455725617964107289617284429037310491883406868322423124435238686066727541604202786313176602215062326078199836106420237941933511499852194042147376090985586485672103595102190656383651667630886729110723028204145093253296639374180164323471577776150580454291099711274962399223937869829678135742969345182953047718143889110136713209574916341511209374637822451992868130653338224604735204065627728562701986059423645975149239194640288914093703506751486918125968787647069022040400914982704734680517068430718836437539287557934673394138459578365693925448664049797947949521960345537539929662357760800752555415956225758314778612881201413456334522278944953878601887745261572542633793151355109191269006611716493280448922620026517969261600967843399482147717613639167728551350623780165011928182140516168658752482123277542235792530490744743376717402476168780588735314773807089303080900478442541164806679304108456340492351569449675124689565554253575244411872940197562765596486453316846310283375239653639492209798232882665994576965285306406919669618185688116899260874660479954918046200493495106063000885167987734274339208024837531118480985983816384517843265779926681047200659942799023323587553833713494845579895280088764244102835200600874191729887194995235275194400201583368144172072427051341095577232786549561889326639377518885092802799102291672701810685656114437786600508895849685007812547680080084033141137838495357605596731000714230320532500687931533046490903729510094328645683693790731254873870546273588390345843916596173572334043209866329649383181469366931860143739768694798746796660875446443733317672962865653523113196800203539127800806101951196134742108263560898770989431952855408016885900923365176730999397563384811455721219323797424695813565460977618421043818758580974047844297044379843817120014633947114422850514415399666060763699955269797911490153106897300204871591950260888572773561854881300972613149211617425421773754893136071619849488226124506818255949658755940602954439108366508628663108226682712688714735557756100627877572835659154423460617897391936599806469640803126370393339660757325021641926772284690596866694655031506577346856413941331489846421440884394026130479973598262878355833282160367990624558543846529086439761308388640757508037370126267747439458971144871672996593462556751366529721016772751334551661983124756801835925074805936050999379985043146286190226082293577781340489877742074345874910284290396841948613861696208793638683308580118589752578178819440132092964798851674255260555769601609742864763879365179483410961357034252895608736923965801443879760281078510166927465210953622419798435960532842014675546342073100175560851370934244023015297396606822194543719261675918126547785548159538198842701231594479163016972213221174206946757053616461313087372065896854605744146414116869308839964385462542220795537707130823765568692348858983095996634220237042512655845400973946033270815189593782084364878540381245160659143481845448243662233983674188827717672980458136836972830449863586284751574470633828530128437236748435200959242968826806049698065733043825593230120337006971119255135935722070849108921662939177247290884138394183451302111336501469622693921602560315688471355149593682035200961624148282897516364575399379400485826756082576572923209796039869597123732250276035430863577229649648958189793009443607813435381568236275013009028006460009271633609833135118870527118936061733620763179576339391279315616139465416597710419763389820120866940898984434869478962494848193235160216299106923037161850103750481733365516658811076722587802611476555207785045628999247026147384311470889307802193938072485497767852363359342508818112280026816738963289339857024260151179985931470305898059880106164372933511418076074399937086079578435006947198264607785146395960513560875742520955890534578598782120880005254795791056870942416583087468739645012073942754319374493809296158317825856489777630997863169441215442002112575697733280206119964054869622024129837379987992664403328259361061538536033440481929334428028113930200534153868325381222159987376155700516350677899670480056381602108304225683108560997332046804764261511020774708983157647911937845653809064134452564955955171292303221935543512320066583301010392239370759044200469866129662691047183241922277837172103328935942565114079576890659412203628560647281895273154095258942768710266872191997482439363609033004479639723566214922914507249798939525299245594298817914799417906303168863773196857690487357374397182794841545385245796119034689825224821255385530914316836451460128913527865269484013435454447606214939046494894559576875039299155405674831815694539010731877734381753239192961487944652789925384478962570862554706559631807938108860251172376406317669434457024859242149238570982114254547463481152425755743207059679329700474790100384995597130131742836171626266791791649625077046167454674240855713432982726930859390279033086165105854548146700627351742982008392050632934253377517387064433242321619059186930257719963761662811598489448908933886214512454413106297760374442022639789018681086977398034542471348856791676408054093736994754394215388812966368143296089997459345761022628496862828653631246860924544977236387566606141669030676502562596439994161258802740781299592800188446323326064767247533937643215759655969255039534409423645618494614148536293878449984423461706454730948268398723409417916491113379323718853053701654540992640830543206117740140812344226526795745772392236605625202026098960604904365908139828006645403922638906903891567987576831850091946543884986091493028657762678898756683043332330583948555244807672053265205067932409736840283509418555683565428373124042106912948320550408916073966130658614853560573040867358901611526439362732891298911199614766250860775379426777832465878509940218439171045546949629537597762113996204144359831007965718489159005519179509490933058290906466587762231068531528653339668503320120573366407166802134272828520791404222351326656176619901907778457854736741979005287256873844996742624043388080948159524400875907346834398780120545385532986504482739625220982570692061824178653499104989859101413034871598604492023672195436120979795325851758570554969736941082132923343267606654216062046136764993870332955015589847329032925820859123954701435375166985181578284529381005815560217615889920839137857798695863824732326030916251281313367595940713041473809512365379559623195867629463002932918967419291924676034319509226270009631712526026185200405076860213279424314135544963922147294997968404316975060573483369536384125133381275914721414325586271668857427001504233195175672176399270288123316429267525127748529145136965314098249302127108839466386381761930932408414773526315740387260590076048720719703142662085140989015905654067598862713858980735730452277539023692255705453955158186246031499275657454769977821104872870778762644231813381360362261179212657089649862073853396062001603498473482209117764808148339071365114648112723291399467429832817477508980599105920990258363328313650479785858766002352913878922666547472453971329986123353971361056504605896966687755454254197278065586146547938875316325668045287101139419738937868737295320093955358150348413307861386757826103416364955569147579552122289758710728103253448633415053601104205101601256537925408366264363801231053640880549013736251267081674583518063171229195265687552983698398724763030777873306786417898698524523241118335379914819092896478369984313225268315359703002005610019655137761401111185641228515104624889664592773360540416719275128129468897614213707503608247162104844192405467363441617929521465075994730282686172630798352451857367452624049364279834617680451557108152796530883464225446801670078175492795431970957849219790703666332152054375321665522333298071437152189946538923539771385220027025410765707641925392169276810603050358940270881439851593768603585220146001311642685317655238597303586315049131062398024621625788582048954137165595923291488386026591804277033247678772589100471627448105891317708123410837197311392997956428827272251344949679392938350480888261293601121371286375910887815310538893704850058473005324524391087515976246778590285867814246692007679750654518994043159355532896731531712206382326966345740489997288880761704194842167477783969956650010931295264561729837081620537695639091619165792477504670725071229228564879777891599228426465888391972168486738844409362720670916703763117206180197481368244038458406402158670789879443837511017686078302176821214467150487002298952523082786675975562206227029962112229701353740691275825630473949536460208862235315705499262256084295633122118247713228809298670698456120980805926736567517743893105977395654610516209997062281004280141655421330082928887949191199697543430215213807250522427430858114855311946114060593703219866168545386766558465003830972236783829274775547083494844244767638167102000098172783092980262687796791271087529795698398797400022188254289446761983412793610596859479047097052683222045043546201782735122006343149115038612900608860429554124703604050642102112267336080709704835378552430543037886522850965558553852930690248891485938375535679432584534900265637436791586857326148609616238022994628044752756659781390824162356741795029011215772324995777396715153653491811729160405349498818791811347107124010078525285280907214372164157452050085855611044969243538413571960158374689224617601284565717536188842767709802397367642801011557482075310436541920436305885767507265905562351407181498740357476853572378276344379444577923370479072150401247066403280622311430802381279848990665732726397785185564498249426175877928194695284473728360301480232825947682588887458279046002748419935407142231506266366600697664970810583215582895440274585225068420936509253098837973419081083771148929972591445064619316923008928620427118821065893777494633854185601821813518350360227775838649449480633925268013462891752672489469319345496494151627115935817299938622609995146121757865643809601395632388017425748858020417390157310334138578407196899504780658798144272829952973911513936370942109332874044124587392584260749831335827765119561586289585135269532752817874562759795816250155442154997424185121118281465244885563638052080928506056008178206370396004911528649559739034450915983455169970290092617497583870080054246171492890365505300267372844909075109674948392036624314842356233065710223373633607713416886113108174850670593739713762118633500780904412123344752219451626399644040035424590123945471255320963532590483698643207670332812696729891036690147040474112405830418355803076355975355338302367871856067753324068241337017694428688921427283573945878219185814327075623191506500074621070224153876292642558356519558616676317289398140547950508888086602513871300159199582251400637614026151259385526702891020976538839281487026383704168037463727369035635224263305193473602060236978559571880978862117862732662934284270303099450050701217742257074510575245914948614516474241862636398740712156889380347286957475757894963281598840297124527806074657757229225837921508837672832827721925287425495831978858220566012868697182632370430873575898088091552858293621146163851027323759590882740681419942010439141869892696415386556005287204600554247204676296199155941410798350826056772094491671214604792045338073118739886041018670482213805565551682401920004472014694362054666108410978787884733254469153940255095180342991390264535161684794157153651542427575977763262667767228456049764614094153062097648475368423266557428323006118743645139345692309818347265859220859647537982777685549319488515028445336585013391616012748344807604627221796151378547287816540646391036887365767820302185399603357933044530303594207539701116870287132043926992225514161214604539697643558865327647149708329943306396879547721714402898836938581215579863890064805837332763313894140299656363178842297628805444610634776786481016155516761559657912939405126730940572440051602080244308717521258415060418445120275161174349293230763452587472500998593752290488351345278736022029573758706038816065513267821823772377740616126630097252135132422317165738223553139796554982542979821309967177086420289083115975609927922573021821371797227366646352843353077852258898484979274688527074896718470459777140382289204674761095133089065589081835949311733879981497057203339738084110600434366649896209163790022019205825482746895210774296800426157441518089247585035937134139154829310778394758506662652022965815409655810047088557544422708093987345319591475187028547950623949914871680652730725656213312479918441559452475971943760061481043887165096722303244247287976523706340356357186119746408951551661141307071196677107255967375264174338589139944081611696680879754195501401769415255612378452680800750217301496881473733132340631614937495829668978105489047608133831397268910178294611330561068515762966963186205016715800136347842404080450052284243036910176697856970384733368644542574976399295698361061323094054639983546426337881190871014958381168010627259600750644533718325504071508438357970347307469493733792777122807208627068254953210988945893792701418353612302327181838372848290816068040898775711300766309070637008425931976154897077699490152990432928958732678242160509344719940521354518912046309428305605841147392165967883306615538945738629030331123557753192927033207716563293307203312177742330528119417140736707436736891787273201035505415685031752891156980161559543039262865631665097231476041712948153831586312425832446394656191154352882509906545326868029958576578129190195798584919128486196251404849604916713694007530760974899595600955602773250434363159459930730946148606176685343566143858376099494249642816214867233664549316575931174314679877055790973725941240576095599182040655003136885273173651066274322412368083212870045209097789873119430256832512450224418872622306048878875982451214152717503700309345909595762798703343237716488099433650662354922448277784158477042551494242830046860355266964845183412865093854303729748284526100425475659060189553251070927645478562722398292128017188628119339766269955521275926185453906472088811758238693650688345272984065675611075950139530594432840285463667168649273461700277345792326196905580836616763045223725222495246895857608352728791182994882656031180655582978948506030042350835946947910943369080130704815039021416677142343443341944498149164165962019306010769660217414170909435561255653961664134784081021119152117319743287764023211086947266488909642865568049183866239920441096817344390837146675341185688950543403289139495386875089448753613457260405857119111312634882288461949885940241864312508082300205444733204534472839920582959845555175462806380125918686637577900169182568494162843885368824220416317061619007408206696750317444703787470660331564358996139526323583922120976519495890361441888267525941374681910598827261091360911946303311722418205093006265762784504250722707652303309172816721064019402742571858971369501365711378718592802980802344499313155564908897172403506365023207462541839979101449430685353365685313473164313574742887461050456793357470529509752319517141578563709410045227994571002116590799093129948828636871056352259523492829427392340954940105382488720371505275442121828576454583617962573306790248027382122896439221724852132000023175242600409721370732527082232543927400274939421796990783606505832362047982641577911116280143721157594630686261221785217639651316993236135990020220061241357217825136824744978311035011573725109628126002503501231147089063699219789700283868466573881910255842271710853731729848833881772766399624619206609437964633743574565845017325288064291786495721704543540529719147515371512851434246711918112767685590207140584282996063537422023878669215292241805752215674176919206111226963463974413190765390497294604371392612787505729117126167083470749841461942271122420819610576054728798780806551170550545226937184644669283954167783322173044002198955205224986564741322244851498549665667117907731760838627649394897499215244128436395455449151661081438841908664550222385877541114942978384269131726482056810898036299038849726087554392954650509940944506811094624349365548999271169285283343444062140472324008486137713007115319333320434676264470873523541768865312711666106710385947142968813224939807143605635977339424701286467364081079789333637790359772750425905871658522759768451651545096410920893126087819489377297495727921141841595112810249511567635348344571134013971121358483479548869790793796108870149502021367775184564811553005761268553697672879612287524682076937333233307233208464823864020444768470471470564409305248322274904360721581472871750727777222481771692747977322558235328530852345829694689325146843465020182944420320228194101084092886111665749445147508316658277633389192583859921643985826607906555404409580482350664686103623674423879240047410114132693046798472487417548669130642048924217329559648433930483935779664310686825012497357148501308581028045632610630281143583213845605226603706467356063802987771380479434515210293134723781086364047143993277052003641329081322793717801890682130487972235741597412235050824992683916903299939460934792583868001957718481351830853407966050131151171363883494239238176889326298049732722163414184874126810456076558842434598791227010097035672211680852296008852137847950995116196153735155748293532444142664352845813606505783475497131936225917898386466405594189163204653257489802085249455988971252567605636653397972810026222243491247148798756344657905849346719365384463759536551387284289437230894490667135234391068806140269792384211925010699477086916721888783905739625272509128578840730096182954467776457928710526959538836262620769953520540842939287168578691551664313744370654517354453359587754492372968572906507122458828975376987405497261942326008317814908513753051118200370915558615545871004873120187238948020260205827452276461179141622514637508708714001791178999343993318723421492762284957188740222167502966152455544652814644410558592128248122594108005109555022521530433897768006937248658656433909899621304836679899282220503757694132346479990736431355760105721561753833583101672247324256008402655099369605852125562774046278161507804769509196622260069985505505682798201897211685061180854378234646407132194310703692677102947440250747645530397100168607927197622434314243338991934127781345268479871950098514463112076770846069432756621951309540825532713387555286510747563037174064526884427704719002587352359128663680834828505991425787380758532406599086905120908258262242033442832602225828481060128342582241515655185644672454757000315057276568551593325045610461109167731754667353096746799782992973555998280922949189903268164716799239677347096339294285151538297126728653155665142491189189430829008253767658387437646198677155738243462976717755593294951581233425056167851427916025220914832715159019217272247049146775147961651680151891706686578780186729415549487589362051786517991225002844706731513206774358327638247667084312818254534262576585284249013138156026609721920185269816882462589932000965778586838107429235350425096374699253835817370561132661881667426167974479980157889136885735675777328475202461854503869276970418016494718576077470532970698617352399300507577481235033364344751682302962766325464930636503156876971413586537543029951835223592485021889316537701566204139430936154288671511059537847443466141739682004124222430356802222086190906302207495456212334283957073832708279814886581055167940555007250580472576260787739626339640560643003963049283365029787288256746575994217203125509283489255899341750532689385186076836063430859631416666599184964112510077535903599355019957943693512288605623301455202806965663958401066460462284944697298584743521017542603237091268920896646519153266691283542866116177030489348206918020549864239805984733826887258215993086278569745847127936005197193143732101225053755458054394821156405691298187868160519588052313398603562977427805971920194740978942306741884875257285466253653946392010992870263423804570911360647091758753499688490358279471165584419042011040429718384511924913771026986093826654989619710833068304866740218596462127480910869927234256389135219565851901939739743644684933932376716989592682168437907917917037771364282969133356528456325036119596327692292707748045748723920511091605678698671673668051451530086378357605978273728967382178183051712037244674017769393993941342724628909755299685034787429757474370768593481525890914550537798394295357433223738177584355760946173964724636730171029194740951720410697383302721494154230134972670900915448800581280865483488922200687252347168544129608376051475443184005614353031996793973317876338033936175957613398640235796446694614707685276404469654316138172646013627371872732127882225629965153399778605704511632540483810691354086854901274704704449285958809408814191392168702161900738580379339858880573390471042637806275189038566208628512090021612296910153258041206262261214995704423233720630731680022951589370846149580182738395852641603469701275525269881416227275894415774069659177945704978484988556933760996176846607248149955053330656979380809860316566482760308202512779596767085060142174942492084043625372190679766573064557945287446605117292547013748329632536558498408276489331992800186098639681952504445649963196663051642468781264605602997066092844145241012577447880364663233962314522400322696613597611965997972644630549919845339832625239992680182004558047503166808750377937943326153148529073522637117863225743703853809053768818809392268251557547186163241186883089709895599632037858873420027600822212981298701343573080084846956540219400487960807295006516421252331788672621288432088983730549276212804109098256518609668764789208550417302868850027267567120225246077458997920776028411547674209825035363802771945062954526405686177510092825039044274615158981757546905137298772326590328987200027977376692344606379712935028119569059128033478230237076389449055519603061511175580290186816064037432921669278888159833942468367170626173165521024720220088542398665889895736592356578200313627970163307237952397046774550286414593507921687906103263479827855181470182870036455404716909475225326803797744109526230032726231127442424295636955729103135312525012636705778961626813763649553606380465875510698251779310353037658812106106336018991664262562611212592650660757603971464152556491125994307223151913947856822919340692921062937527145156981222931223610244774239895273040191302223277547866510022292776078363560621790894903564335990177931057094816310890000067296094085149898816142864945383922571044124321344135528567180182121558132915802392469697939489655140465268745611237467518186163656239957130781722932694679765991991106331029845674860437045604936025266156339517318168858167750632057086011835649663471574983221882007450259685109794665436867774929365604135462940244175856584608464960205326035641136827602519329375867613676277545027724854296454834445367295431720765867900208211306401239181405311497189861869363238346167776926628407297314527652934591139506079804185024208806923257265922259273641531944324713520037007268519900941171340097477974125446598787240811476269857400603001070017955215228627752024954127931188787459625120135737186583003422803932840646250453570685535285576476966779569215358681238109810956291158312145738440764460720563195410470076391827120593500083430007359117144007077313993747460464775110445373926805475931838836361784010759747019530253366214427862691915515713733548678875871633274435734410037941288763981302857258452376987291416089403072392220829401328307423172520846715298276699992870214185784103538840831070916362329244802961794154823918624383514638864420114911403135629958273654215813468154825135707464332457923540591350287443964832132323665743838547119176577724303008185200023369219382627486653317978951897139178703779124719039761913043816498114034535527757886808312536284982745051281990483797104430130080746335870001907847085751078295949797716781379792198040380153372904430356589974090482368146845288765523163318762920885766937245930584680874627028407641265683854351203753347708622843083907751819697043909094363819405457237180433978097811779766746290627790919699050474366151197543297392683876075441654110755429380786497863475740264911720316545451819002624617472593828064065128675331135193229601342457380799456503575562606446253331421685831521113509201145269646826316577819181115176226403515582122729271382832631736660041550040152643927831476264536086758122062442915932439693099927952965108724760130827797904199391376372080365443303585859107862608744468043783392895377632715098712667768719962714883367978266276354334027794564673176288437768560682849196038252076907405117961954740101082956101583898213462183633216006222157612491515188801795135990629924473361354346623867440998011833820962288282957542737823254451320670356553647186267009078937909733772402474962607733794407833123536435566261491775092750933215677538681027123785715741279811195272487740330239343517191637794773229624792895612527648658418900062535554198244087931418096368554671936209412665247172743847901909416817666185590958642390218769617696391097146261173459063573401670394385943765054280650996836325879088886484185080312421904323352397765111731890746334738767715885002105584821639422326573425525418697754341852553036449202516498383651219031124146660365502250394430536319770098865280512439207868133129807526671032252830236975245589265189619163084942688178853146061706875192957861896185064377396892555160183706716599071168155452892127588569240566491046291744686906975191392807050448494962450982759215024491454140249440217868754439914581536877323826729482533164053194683472583413244873269862530505715552290964699985134095654642236888232826466720908988550975067521517610555631400955819284870868249799896665918789594962218952815786596365906553198232010590895047735881429462205599164670839616492449382818976021184489374975448787531008599176369339091702110182040604144331943180824053513849274787513092557557382960796591609071033329063778339742104785350444404242667034127776442048266952147758657185279339023759072319743637704067702754366777204235666857965484938560049851446261560524253665008587047692018411179133894129088104857381699437411736737707000042250193410719443695066839952413438390267178014800673644491022904514584905147858967419431376826586500751457290034134759546242814819065782254919209725241551338591094181514947056952741257798966283957791431100050895998215707180464669183223116178583262651737309763199903849645680496021951772940665886392035717175601225333856437051034921488811228588093502834126544617331347195700468047609238613059060311679172195473158138621692542272444293204106380395862164139451429274713857580320035281655468615592830330383686394682973415282748110931585848727814634633613942192195985990776163987199355442387022984678506382877141517032428920377959928099450026501271168017762946491115826177689779374080202927016647280040319803970063159953970160658028663931491775640654964943201356953743651284187665517916787975799370409141681208222037462279789181393515659604778445758497322634254527128336410697190105905699839601729291944553280828123492092639770480789023736217080447067431448920630220905263034962923718515932385493856215994849289108139981676744395143837164055896347773949497171490683431807963029421965113391200895957697518826111906655215652043025865164021023049535411445976180459312929965561972153541260415727768061963467083070881616188638059719679634914004207219560467672475590997154493107093547168169940938783949383999296752335933959669468476177788373713606031389484801592208796903707370346789661136546258909359608548907478196242252594125896195543343993068156887576949321438209898939360928115773360918824311304524828522987486053138240848510691449600059323396365147410152173027136753722287362832806812234218622393001246168812157719148834468681141071574221938742830636242330403051830960182036812354602638082807444625837009501117652903135535166563958382772266038076921485549262348470759122345387000410339440527183262705474429066972134521252615136489815995511450820660361533536767008544964043990097232239402128613358183342116362464583381059298873203196073151984041752420449700337118842919954265940846393732291836737142239640310708599164935275464471335729409982838690077543421902949798195446682141462045501952699169278652553327287667982092631648828947005306688741297751865601241538374219985851468451706003615573983586411705519402974843204176463959144441085307725769470072626372833634066680351608248074824590653377737019095492370248103038390895283807380863394644821832948791757543963771684294233662294368241318875700923812109228520003330002068907916562709254191932010789456601339486632078532430290785620507002656285885744136656187502575620299864856113563574741305470377225041938024029954266825117287786868132966451934215992063058485157091348716334174855900326588785664388193062473458449428528741276333714083245270426190670725759226323167284011404975950825555305998866554044631943328721128059095001465713621516506834097400134098889977748816689925970709135790500662697561644438170631944464062354373823430592080230688976194756077532950418328193402186062381141078048280340350044125602039639131499843325256819914157272732407087092463817066992186670290895744986398303248758467700562007541357081816517828225737882614662916959436551442242722214629237156394487315447946908023385074545556491445120429295852925392565908138597699054610901909864773093301261447848668160770614069562360974319525536858893418493856202522306898044529914727356448414925365157247199479525749730370293687028143145126571618721351000587461306248598607507084163539575396963213775043273122765436587398639716263641075375614578816066054111333080511833588485680289768207763130048846391271204196374202273525082070887755320170566682531770120972609403414703120942172068682313503432869984051372289903796164913875324493674147689031490076113201655217927704668046160586826140064430877789497830513386713625319912061645244473157012129157513186349424382793792779159135184615012597462110621561189910319051293862225006653281021107837063078292664449735749552849481101963771069330757381270541400918148393740780639656969979555372930682433970905578100395944163829505279994638365646977707802421719633278739615624738993787397454550614662717941294122469116771990613280516661258844540074002519141549679255561239557599753770067280831500708470322344198531713561051411087294867045797402131761360303187757695689687321158950229068865655226953116739445314138738130557420451783305055958365579262975222450932535743385301247778604525537714053973441614995828826469091045939463114295820611239946580400410756171104778790541881906937040723319675360949860984948234969236882137343665721099040462258562307822155294673336815638643887285733385435832659650681390444809534509247461645770887644233982847626619672130577547073504316668703473276821104007953890099284170868869302667378072417728188693400429398555270131914637549632475268511818909657579105246669417134052974581312364316087952757759996982420014271174884714958149303294809388676947344804515320631917269112188464871354351764850032533128361060778495570427827671515787272346240251395508181126616844730190834652582612605668664915425416167462405145166993788225218273806955857439012275103641404241120563826552808517302589383048905206170796950373661813563784436006917870419054526349916959504095463882585039022012743437208501242861731938125479703728188762426367809016672146576909319568692650252241021792772009272419175191031407966698194420719856277741319811680493817962472647638358769814220374217843545766920535469979041197294572579911234062022912045703847927880817400461346401383402233744498698720577140879617729415046015617411135264856039470090185868762420270995972755406387076206012165844555221928358062501646200745437929362343940613140908275115174223574172900032792434859318359608386722876042085304087841378807453555908806107264874890610466283124426144383633296276004434735725740449241510611244085210331792490919651985923139907031421460200150674888880432177372895168752953660184714472671345546640799353588834589548780162953106626970883561667215589354316503577943348373440885388358047683799392503912667451410664406544804763313399595411187325094771253161470375619783918218965632501617056782288923254053596985623848188525722076359383669020572285457376607795867086286070733240203700551663852374064701587079024616718749133427473070100057824107881472694790691916660243918161424463837260475928345308231389916832170063347638697256659521260947452605533728657984210897522829956910798165079956318946974252710355200344250308314981368909659494210755394129854112852159885273262139732303786468178918526530449953004262419313844153397281823611194881985963212347357283396392453392199134494525881888064069922784147537056353836277073975065841876666252558655332570573794156229604351583781072469190088816831351488839496418658060373774612746110709428415613471680015171813082315933365067125894268226752507475864252768650664925772484645814813854099839700470658725491114049953062135085631933244404099467465591867704828705741948489005485359876497519405489067577747233833610935849115814892815853940779894482195110628540261493989126965272163872231522538442990756009504324112949798785460767968675864262255062485765115476609648218410271856483783655938884557577846596276291482259470977241252548391319329616868269629764463526860701709342117826322565167659306651773372139939201214310769547598009345974112356625589376850032411852853575924424119936378532435307837131767123102858560171436435193582082577970796323977048113998853611468054568481361618426747856009978756878274504007702693679844232827864852331832988934443352163099569660138462600566121084353875821218819748830254396677709175075766123527644960393146991201194428406757390669075904370260014547331119675399952676324486630012409048497970928670080300772212806074188123670355286080624787284200735990001714710775888702866627117187981783224242701868330895375932018643376054263119472991905990820511681309343565848708141800103127738479685968177095579839271362920045680938554058679334895480255642448374425418986067854547369365551609405550691182677676120234041154080943534816425158073340074238297277803804515866992406412147231430477975191146798111722183565385224897990314497858613631680495771525441109840161708867678752239263328139710954908662919214929895604709003255218536107656608561745787102577686359742548106005406353081173668908594839590416807537199431388575214612521622367409259563990435100544012769200616070433887887438340364887448908974675621900115675764831706016620002360103268648080194307415476634199531812066996341542779325444486722577221430693476353779597880976374659099333448470215410968583734720896980193926071195463869456476045465806483511263632783872079025541607532534793645995889570114306286301960653091710686147920498665535791635334203218429754574137677534951694411629524998534498196990458167692413783411197122834991439684545032524480357818897108359518362941026046096918791662924366427427641778278152535748532650586902438004436772991139172959465263873909454033561429711128163018851463251760500107779627832293101631617311912914634142174334729798550119716353450555495232252916345961452249112752121205961716907677825090437819525901874691492872568094337454355976191059861165541433716058043402272592625399870214961073869827002897980214848753641462766684888148313847128708301912037536140964529679384155074602068291273480207106086033183134110163736905151573215307648575438043533103970348831150900720923157904485254875012392687182497824229565092443477004790534781128035479840958446916227923547250742490725059373316248493780386635571220489499848740511373842473411804866779068295744505626548405997733920564970288061868139450110588528996220936300198886723686458550377433455022188608572170896507129800708002960631384401096471558285238670925839007547863970290227091957963003874619810141742910792017358265247432676399824050779666434701550094032157834512229118689021488844154563082074587714508470789345301560865005369916521451473212313289040056914849380814120604383996023370513370995161717028452542291335542243236680949193401565904826085818650338675866837083976159866837355051123724470161745710872253459795674968685119359804202947026579655055416453990847009942927274966505443237472355492374455585223301042298877102043297067292463765888245715224713640624077310613763313365763962335509994901129447674252675292445816670997499130384516008136202775838516200035136941339919997503516252744062579292460336728578431206725874779318913911515306280915352078255946853460309244685994310242621927326650727395362237133853842784255271383393947675841775425913079100610275172256516172041238071064410807147214010450942663340271285753510954981100708793902896515284152099303372125497837814376075456220598657250631011164982278924918205158857918183091625335924045410282777358122831611336477928885699430589362543395087968332291278777133015935671355802957009506221837140226956717923392869886707739370510662840876409136650814581346125951549841301251520980436502996814524528889974292370383499169340325299345988611264142341466929450776725060402799475046183086433807432466092644245918568602613968090425040166660123568611067022207264170940165887241007178954208517543599810879564052613647588287926058605910636272913183846762008157582788004294935227934793113296743190630056054942930301156936915595708224547515157439702244766831262573638237271165610551367901090218466045764702447926085633351219204588161764464580471597003508579544315237352516239350790138898234279556854498539546859497654198157988841186944026012796651426586128781742439879189971978856663716860104791793118337771809693025774456884856024991258121466990901190282184466114724761917993411876230749454121994903271678686503209160552057423119367045015789415361099442912053063952510851011151103257183480649355862744193102822440201702195227877247714803723107504865915282568636597238837619553388457039900256341076712643994150366480132037134799083704262397217366520130150032579707754780787250310431365173322645399029187801686927941703443379604268015549908865142303391155754047121269629867062925001772970334909775751266871286560919282607538574981478053109072075437821663852090417757861502935273307642882292550826073404460824957236568398311338522502763421044951712868993514109787743347364577118578626656536597299457859255823136672724889569917381088004577178450823199779771967724532738333892765563010526549752622518594688558293996647392315713908720981082166512855030161314146933398298675281105321597375575053930591094527625616690473572811113371306710640148160196486544234089788693061142080148227762871664258452246876636879182156132734291090009962389972018582738204215373017273050448398086352899227645510342814802884291604124842227808835168752917006053027653138973333467156063927315907991806207493601254594516947472743266942872414795505166574815585937384578707507189305098710980247664590114834230732977225205092285819627060328474496601711942567030263530726959439866773423248680041059227205396938123133951842439351791301902106557596388722180508168886912108945444598277325830487873628957720967275026277438724379073001710863117545887087480112560269980070613689433457226976643323358872475597294156305761792013210688612984633719784933745794611197068868007138977469926142856893339477058899738945890071446970011516973204325372098738784414100822650995826427871051941117191664427676771624024533526496681664601073865422496211957077020847421360075909566479497700604467888683009879223100962605942531368489397902667324487245074513313331432013740988075575480916298356350332599888411599086129899302339341796461949555957225148627620259844850184061825793325023838907204602113257560487778143171085485171647255657273117409228650577541963173531518123360564696715168046179150176470732577084921047920996737892671377142910525922763428043889950733606102619637090338473440203610253637251894102047299094992876318776623061541459509263826494227863372720155010286631336406423773563947393589730751716105184701220114861846939792445948564950691049315039872997276358634655387048342217223908015705840245539791391827107979764025081927675714079296589926205840964014449590155711405650343800820627994812825928399240298332344352243211172945681663807698015521171609763342192712250432748058161200762084175646953919234278283989701079396566767542123979166385575671889865556415521738240695153998308074140286958827569118511394797679930862150419631999371016078923189548812162098326705851565939682850527054635563710196585429693681257686760882108776616918093128638751738742675815019195069344334315306580870260878387510069445883222096283722896447602269290131247826381602481481449038544805348908701058124712756261769149007096721624476317612036897256632323717547351355837778063140868993563676601895502337030468446415211446730009940464839615068919868796227730108755328977089362797310963394543003813262832624844159458167639868079929031354453361745187921304018504281758066938767498535035261912274789528884037891102110120888144083467223827964384876065883333188608092823303188554898817144623095674820386821091262650792077458677287695930010088933578413517954800506133082785113958195496829930213163719985811669155306703081213097161898663142324825476702230570994978217147287995168849638474802582544142863732811181861043388885524392963138246151116153675098067381799133976880573489686414965256580560320684839152328338676400641870127622679537080974873149377363778037147794241359258706952562931217037649958594908601161689630828994833491564113597978593217875057223178505967919953474105477087025565127492654729182911366779412501829871895902801676355056930547276883867008640037875272979017221865786702635346554647796205153299720627463084229359538399316726406109366377978567455300629618161461635142950730066781341161284766182690723460698504732304990244362734389486106553232901068339041142299977809424305495014264577452946864046947048004941443513075752868147132996418808152490661380271018304964436788567412624851877032575064602742872009862666493494321861971505288242594241653924443248352619803063019721238113439680193603147588536642513854943892244440390612050159446305427369500299652833968704454793093313561680025128304754682405122199503264613772951945723735576924431528865473932416827467838147974322501485328992281671560398114472352014889090218733845304362208946008768981628376973393293947842804510948370366744018674590263700246739768240421606690594989259469313628016839328670444697497710469317053058873169931012818675269451190299519844628772097982454113746719780097068758699932986381048553707418202021131124190746471216277151925603348214319451297544589057160679822145124947282863311661122227918454998402567695008530358386140884553190818101091967679124816503328073421042178694881206268259076138611001601004668690574755612863710293279032119707656826760910459753834963836437227196884841081731111684485363892855100331436018435777921854797186311099562535812495565953155477687825991548425098719850618290759302411179496398587959729245670260368949471812289214272169184624969038984166891691015640093938818175616896521152756097179819721511640726498553127433255039448141141362640398121484045093581312819552816953975851315285325381995002846745954359626749009324446147759019705338877962771941691557858963054890866267311658442990810819467209547275082902830228161300483095923260713021254154658103418893027807903533473078275144112481735385900406678651746476711718600963938975513123570252950792234573658462323401029979316494156326341212377960804931690685590282084135027572498636131705239266696328818194965159973159071550816824996617479978275908136349833079571314714750146576330650423400340131721646079562282110297620784750272774520434154887590137303926698561597595032396347797709849994061976665376888250567520338084883888495942938231468454983796957972842470294540936021762828428674180297737435658498607946940052455422670033305045881514402924764449921807221124647177092327557559568971083809508739031731530681849967730218807321079966458393771710693515577019716828536391020186973535383632516314718523180196055461993345845153237285096504362945001593276246445775076683925359746886352974904909513109901613355901223344234055664841518936595205884129959860905740154615245899473041681930465081494436949806128764499846600832669993411028166611532824364289900232765498854668737480315044485030923715053315933897422236238447001038915408977033715217156899794703734411044670286847104501615413197795062894185927686540343953818087465456970295788024752288092926577147487208097185484340250840728026811645900306028506999758683500453915360008832661920148010983251680649456020500765003125562033186112121496866909913299328901932271202029580429698857392924316196699299519228962791436004247785446485968845674602869609955599360031015141383805042076711792145510978986030396399526699315759993759974171780284243510615526907797254841376425277651648468774092240505191515259161177744875554060998225989017121826376761585008824873188914119789924071155068086806416367950192748042266217182807862713748284667605265663086401310414599272150227812999657475114489581965212578900367629493741170865057133436474303513407027284691096134711882698364602049746662361692485018301437016219420234811787019756370561818822920669251388121820221029441302352483244385844330948691822133820415316191298787154687069794059162037579708544353731200073660532955072251455250569975876929037936359063544754556018811306295501474351605509936036404981909819546921464282573764194403918494510258241295709712935260734139370386421761489114847541497759376145521162283499266843032119650936313482538849524904911717123242662920421971715791425039832967320818616599062548774013047140308201892763756152005678417540747642916186728025723257252971422082791208530474813994823641690477312212103974054063291671502412869249325542849408413188974081935183592746245397579325252741454243247451661747777261322238221620509175132486007489188726213382161556351964126508640350720543660617514324394674319702510220655006563280834095397062685237195927139264381092014796738110322311813193370267988977981364563263597814780417493668588681790573115518930764599965401267923817739398629667876575788647546859183695589223929703866306220476952544195172204055614612499663423886680003086210651425473126742180907059450301846742882869833529783323447352456045163442632698077209550868242018517394343945346499180775814149879328237521267786550602180631553500413783934200232504768317007179174049344181411739400622420608895404502446415234818320123750974471808817403125266532659062101962058463853547902079038355483957039244037431937982953654044524457408197964092814104697577957199845920821919443062452651800065874143699894023352292195799288752155798478269947585899241793906498891876376971079308664442924338900176142334161076944478915418382887385198247382767797939217831390588002089246851157568210592641840434909638632764348761163410738115644277603661519181820874210911462192631318966172223524778695558171928121550866222737941434017530356733681448569178535878945905410405610290365082200688506311269430039002815623930859821786850941482593753414123856771411633482893377866132131264421423944551600015651516325628570626949511666983091192121784272581686215376448087048059739788568522205379781275199579092449942555351687865738899302605930657933972791080507448964913505280318207506371338672058842625394617272582784197011865312134151191165046762893117547439647135398710167538551164535995802605357052101244342692467280534193867868537751238229271030724017705088544597413557117664511029828332715192265270920089840225012990493348383939658979522945522387946803145435648228002796991352877689910348777238702889683532697924085540176735645887598465757649400873928710379752598016809035456266841470589946693554812078692858640905709295102569183655839290177127883680672861881152739761345849700579883333510031907650547671708019571091891605329858784873876056784346881628000814985677943520115778123637595495888357312582141922325075116262821189944922625387382791131584859077602318090393167204518576488859747236404515294329993020453699783660062274206031167827735904646563477683259556226368986334909414934230383219850153179563449938285986883178978879968689402742799155917117476956791543794180947805817384757272688853247469978607842445982211500232605538514209568171124229286757776801503322922677108474983773688537444218889434530925652079908006347696716260321507243797099828445052325752206008304883276252458911878958867251276413535405593223376564330627892564856381202299989371385924188470777545965754155502813668293688019884067466702397408283273332927679763178597143781271690562011959764715717765771116810117324336306772547337401778751080957855048602359098585948350428631633741476723982693510753155771704286305213344469105352235377428944050990880831689459196025668277089114908009409726556295836250250702356532181752098841105341449510662178589097564641775504154554088385217681548754282054636178850889067263512386071312263180176247261622576026777604743971153959852837521262704980379032600864650040551179772322500261540653607230814870389029833132741986643445930715999103159961504552669865542721999521287305084440271911221772872108913381137947532367846386853382173551785011163191525680737121307236049208773807962738819210482977363681784330468715730781217667529980980369647338604654710953505834027735067409795182951734468892275681897021642503735921112172372749341385236743284272098857801356516290493533347806461809479773704975891622521270802042682641649001967450639988655498643834553964741969974019491232007411541347040588095028519733872543005707279930237213475574119624257922815662389833684783846840119599413246655621744591949727703877330432233964593952874406865403656609702550944178468975085773132771105252621400629089511199054407531852712164655705219906848320426625382397492204205434123705353417488206493976301875739727403570983810065676501310744645692959195565405195688400593392768350031686472597392001968935174161410488839808198536372454537468223569690845547427326666261779310384752815239626448270142280204774987794614823050500337288315734356128332478534253880730839183211388938894683337381951710640177310546976179212028784135684194119418249893080472370368495763398558731353648250867048550165424301071612175263228720718260123136924216832872873679146221250144343102832639955850315228300996083205871844143929199328646612187207959593494591176786079540370462646162914386398921799739264682066683967237842328059674150877846873967154293137636321309034848792022181861971993107132664016910486624470170472495092308799578216300831491523697790143368320495455652010478505775988402132269924023078478820759078732933798545364934166045900886083085912672272723975852360150679090272299122615783215089212087127024592694999841235915256799019159479790798874542084817569570519818480497315105542906476308700675926112732227611807270286694852679317001916357643489194651691969848909489398683519892782486749894202795637732440133662546121082831955222203070295906027333668389210593183539918883235616474851642930631803677350369801224285129288074662183753609301280837497859112605211790657226649558276082061653960739845349989385705100964399513103286298213200250613763532726360224836689209278474520684391574743522140691665305700615731986727814689127509624315847227097519152930925864391000924584423058048472389841610586444525481779531606579835283318209704114242284287605334330665538088447286646188042607800373398844072077929603271677584875070004563442210839707417112891959453206795787368942676407721744036493232221871253904330221284907917283095724556727616217494884637786311444192724187477315491528274988994304799418195386778781078292212110411181928611637258933066145476157258926487358396562903669611579284744567664345137258213559217275881956076178989186588921396461966005879207418937207988814779922335230153999854814748174292405659740424277104798439872257194757044634703357210801747327920020631090296329955133965089844089805452204264969217773001276193706676157937946401973672859146827525250343572363636323888565107503955785212032526541095648301227201122224544792423535043944684851398846617765984061682348672167167316592935560677848876659765866074695994058016994578800743470287675087580484707850976608964530431041419080748459969538926101197830672832617298295759964953762613894781664054929568473267575096418412181058993135802459025905967284301751554823210143868526199907716449543285041169296475732322778685105987696900983298958680442577840196156993675738298925750607022698417072032668092140168838160108695229194976804110557484884640579052218356179764606886967298866020964259845137995593245642956514824119250472113728607560473732579283048932740433768469344901536942790684772154484785652008217204009497435085195683860413228701660945587673955403998927975523034862040810413824814318350052115324256284391740783891521216029151692577748268340020317054059662366882116141699811043937237066641483626711975585056275672044608857395244631924620040057376001982201125244207268349416357063286543869199660532590909363975296009375227340856976868078882601266367794239629468068141819476644138992439602625720287024481824644205786224669523933795818613241745968197980853810405719059780199876419858363422684295400110368658955623007264542236459084054329601427585626657622890209834833722607390566843163502847342280751491184649061795134407222005631869997976672454736738658273837145079766918929218155187615033234939178651341977524622963940369798188547044378319586403490434912765246714763149772059034250226342617390223959500385003755745796144738976697060276183837452913785453468111220262048081243205442426555831442611456362942702113983203056893626199762264365889288570620439720234501790867527823602331236406197258970363539837250245219195247541746920423808533660935813983785409591626540494346641977887198171389768012812974373309538711013724349466548510764167499028080481572908986145387328864795095503096476916825566400166420635048804726228030818854476594485218953885324180773519896508344001958716385345065426760997299522746219177230260887376590284801623491614036700672002186216570830162879424422248424232582214513247658885969395826158426146534773417941788503103403306729971452748801948510044039020000599756474447684419002768362457654116661157193049307061815039535031972107954252256165588857605026830666197550360195069123809126872925805901367374777327568248162215304593415252747549378765939591084236260041014626846107984493569158674740664193760327625139781300970246846184982195976307471695337953615418909991364688996372191623498185482909877725821278318054573073977073936793829709223407480268067763294176946981834578351759130121526010313367253310724397956916435017097261216523976661201213753095061026965056891195658404595559687097841535300952497406599192737683826433267268835083774126065896762557446708358683658457923977554072958354880936798740301336774155119917883231256970468614317358646539068387632890803222220054428885482068326970331912928931800620853483291030499378544641081001631419065390533018941406775657807832193222473701269956078439246602337558045488440257175497625833479458102465724485362013966530059915889153923255578138513737878117413650191971833520911545715007387247485204342311785949165802791457983540595473884190994160775111067711937406613569103909301208785180198777513566994302372230033844097503162397071216463739214723113086612725388991545508812848977224926231198802258260957414988670986226051861551517172411050887915519143599973459337859944279291107546292124488033279331031297755799236518316191681085574848642086685771212766018085433526352949990517335688400121843496912463161073100673267568015290229286569691929802953688527744676691593226004218125034742397528151965728537618933881014913154052405885046181621099901085731399958654235321223872986879226368257998763067384170929802897077685806370938520745217802961852396609071058691435746480960377853894057880984834723414364659698619289367648496711928384402189094204908949672558812919782981163523743554139215710891910375836242188324645318134609190284713939665039870379923750086409945110418359925330705644119384185191836223544222742052477422913940506609808749173310779207549408716610043400261308707858455631077998725564587064445968497818348567682058955871169641618864072234731475748495884634827181290046696816781973951677860416088576630317239891182150575255782979272634299352907423350487522641312302556738697476656269743247571268569549899101813006250041243445516444756323267248726356940748492006353175331520964598442619476003884037511095293907263208022667659709329518360509117556402379806673864360394019740416643482022268336932651569432178187637951697682570589505582907741138592432868161747507497137966345691335872585841899130078473776162763835919084755091259982088934342760750618437959315877816651770736885457986186242409286427307634324988920454847565415094626094613903726619017938782812799376818775568371920165577630379457643548128560529995303363580387023819158939461003860028791011248380136261805860361762041169685897123370591210861934443007451538421036377188235904647300942254302839503111592322636703483651405515255417255735888657226545147691563804903907464778405828931188802636326465717308221763335534802598376195762022866563280321771799674104627402154437342132653768307632875999091327919219406407468521264556192511283892117744018672660886289296549829847468742194804970927086196296737221726353964350920424036519812451431055416828701364085308758477585105622883521724508987116255906986165707468491904874627309265111118965062010733829056730294627420225815456479975250230182604431317859081462253307076494565159896723308304598337252998406216206981766434197440599563159170950822307369467360146016411299972110124436782410143967298124865530983493140186024001174005437820419179500756057998613471136214659857578067628053143526163842133144693385275107960326930309971109132773813170417088071566451179777185448128963860659628753122987756867619090419380998175396234557261659437546002641583187422486382943729352838396179706094006334893300926734444621748369829857161546433456562989167658312817890380723606259429209680782173703589902675418696123315186327664244649735062137150371603225285166235845031153482232607445419662446271757057512620613784783693324128154080951432148805383588299672429327227958173568978270817047995751297919806378153369782719607531593327923008535395863977178219467359313256256510011112075154056977420554862015648270148116277867156800763567696748244020906609025676486915756403578989930182103397138861951516200031242973846761845367796903328256248622422985788034233521015154646218652387844780489286386791000641996160024867618051922395750562156035039647310829821273402910429261477309334517707172905936297587188611776689367333874224175226960475743899408395779036880901764781700284689006545827775758596748571651280066311942891128220680724647967131331595734765692425860489734764268579950477622339555037739301875285538869021008589749663491227316277038373746482614869959754444707333228070885942751927480445441846131024801482691814685629257472149624209050662378959148255578905009598012066798797116033818918034444691599594171308416742583164933927438393528971198113281545382985526795793168571027361226562995217125622041456679753166684126161346283326666843925516376143556330650368615013275288516484075931098647357799993983362411264190995616095251436472087237131607412125945108269506473407837280555248982916486790485248787962931281658097426726256661056356442005443078362406935832834809705728533492362994206198186005900569765650319390339375655740417995576398876613210526674761542009497525609959681050894984337156067525185272992725898416645292306354365690422353895321391303380652838133061372092816033827455622758025069188742880826844044654754833586631121794083138919444534675015633764378719076733443856106982792793937589717819760298894444844602619616568577761838992435069605634337125681147291693612602669240764391151798668358501996054061473721379446447042708557376537923369433875294393174301480947487775115729720645340723637163591165658866113440480267480294156251644908128788494935780445426830869391905884550478547410050150079438967219006339093496727348534135248697908195408491492641482451739945907238721975569352130905922831248721387155228605594997781678467978261486316672278009019693000895427635753074702837734636179867102303295674671579060513704580374220813766172733340918437502030847269963441062658451044476002789784975743379543445882486668146690737003422980566962815987002897320114033582335175890295459269958110412482100682334657024703624931688134064527284490901762086012068917136875805545499151326562139970534033963559236470516752703450356751965975292047585097086936489016441597157724760303193736053357977455490830366360683495018089331821459513522015564073043393119981406205322439242777463093136580134005011913695586876285688730313773705802918783401712831396185291495377893424623791520605132660273474757694172983501890826175391405935426099014705888910492741382024645747378129531555810509776756020726880152306717878488253559458211894293649109282959046777673561004651714320788761041872551607557717354289456068209405143248123032133131322234480366271562072671520862076183264221477202978614128618548733812090326270367354708770359924554144753428451324606573767452625705200739737791222892782889380956259819286773562529808282827828191940930870825011030844262545048895529238126898081435755000725651615367503873769880636929633869309607903869567981414977241215106928438679042432667001665880828231594778653950141512308001891811264213668199633231154565709449229619828645085290684345885239333510575391523739967633871074810040101973664031007204977406327941273663081478426052893886124148620134477074178081118934172292052070764989400254637788531904582791612492990839446474270252073143406677159627960997546407920795681678621475889059191175311435259275407884831481204874544327185105302972620489076105281591168076907900767782553566354859816902304914886059806067995602001230116253248179324582894436465781847434007937553775246271173215024471655461397509631372860599285906005650556853688368817011480648943348876006942118544338769774372996450971386363331088583377105650638042466416803185545368207363069491366045113183705547977777978273011985701724898472704624692942423575155740290066189391398003114252884962571281000105027588022628645533335460957734708767753864061472963434536585978904541894875122711409333472871713622240141884621924782363917266716984052013637769275273980692383844732989452280074091927469038333805628162255026376965409610588802101870080414092346742039621436930577068539307634385187699332186708653769866456654017651275594156610186025804350271224173591893652219660910829296573379849210482879623864412067912044754619151169350051300872371826383758910783712080859528292720631450239878204816732649355217161048121144829206008215969613133060118514927965230053351704153326133480068990270662011445410809597773186325086763163499358560951977344541871239188473832644774491278924905200544075802962980960726743615328117741303039903108645210102034745335617435861690503623830957735361554762582484871093222033505503687775456929340024849488495104100877921420847787717941807642629310518361236918589698142970829986827453196048927238920504878283213723716380577880402221408385440620248467636183013883140410123267213541363398845236617492120581566627862207356775889960139403435328827035559877805501989766864992234667974417677196172925743933093670488879513219338082819166233857094232991289814902250606787414455897946806890210906409119819868857847052133414220378529911085970024734858651332247246395271630823134003310494403305918396895841059554846516903946546182528752878433999494502625669587154272550410402613254382637917980547841811670318499626043987205812250925309956649661905450259137643712861321039537276312774325750781915807361107917281072454531881718800352404342719364558443744545904615374238915757961193767486637079726565426043982294442017168677454576802791527191348408767838438100486005496273368358030327831061109267806224581499190825623240608795737019720739364929690670167259548465277084131914901923758125139108546712085818397659725695420679023443757746214161906999663046870813491443908187774896570281308978430000327649552274256714324200749168103053446886120235084919844268322392501440740166435160133919899383061326628827916228217992637436515483405538455043819837381269971261182386176924239121008322822456064031216605060938165603888701922847871274785455517440365532828606050236461589794879173664667578392141147216773958511158165888747582638535922370954846672039936980622973172223495729202267264482419785766882859668171972730755265097040047453868902547240620019593416081284154705027484493228339270631709330204142217070511045745427980310902168558757372391054275453278079549057372516778397708370208168768201760650566271587015355553319323931470700147464215975306701839686671980914636718723035877054899577074141287115865800835656469542702138611195357731955768828336646170154487560952864448477064403119188565639651852267394702103076120024896509105482207924191921234247901351773685473413768596726527635314539749186419092460888955816972424787988043267628736273483380140185943678077759054249524303622579219578300391560976576628109712922715618341079125783110114191814973622525683421698280689675324617574510214534635140235730005508383396460555580211549117676186357946666471418353406444014452405427938774771931333949871343948754491307541988495643919062124037236706162761575562967990467484621086160320361522554097697047356042733014179933877115422178148107644702402526708598739837827089674513996665075498347170826763207709990165343860891698674891894705206006143521227251878248295879448448842452083522293174974603867916869926386217713265090979285700880897154148776357722688571083144365015766492180085781621420539605060512189068651910774420641469456559199986483477913594688067375856999344026678625960815756227042363621222395380729002077708043725489030405353522559903349774858505113623307606903760816252433126226416930910246765881996566076815659781244870222283573073576719768632228762119835858402884002047956294505984590638861138320267090250039286479574866310638609526320529790721079227480218279320187282287283782503652036056802710317004981063229964588460233075054295125055951646668198422884412289174647089607959174778603441119546101534571083771116752661728429372579306702847992239109031425167724937460041512746128030585894898537266137178250868318110712134258646508228727345459398949861074808018397935900184338115045986043993173962018777655001499878711306865752159115260288686510968376958464905728167601916594136505262566288489489766719838365512365751146876197610634267514619428259909259626639694377681547663816159132985571042417741375196561998832364562256618004424306986507585405191051155659544643529813832637104094031253383316112112468569103836205155513699595695674444843135239494711659386526079577464080491848746192558912690425909242982346057352399414743619979193074017368046976715498131244571040223287044933600330705245809827649952594241816104008343251214102586754595012301944862595612040104472897145847347029879452988499728041222409489168873058897758572200295927907020485047221813108847951729549961153784548783997069324086293847408353241033899148675080922738399955635246008964439122964092738864841974023757010132803988546050947299478017589535861171276308329026090013773841236382552751869563218898704808341063303513921021522568406890271151140874131054521125596896216230368888298239055345146988704090175480366616804105249413436164817173917472790455845915039411225577552645191711687236868098002705217921924754965862881813755251700236981025632995962121622246657139842140674526078753337052361105688985566118015535576396450013269993106858266525186105485552428698970763471358934969779313531767479035508543641593133594137488129909468011608908793585588721339586091403814335534695297393344224740618280632183812770121317453259350449178419312614460906518633609768912277156819101204175484852874932103414770627497659100601214637930058735801768997416530161449074008202424497811616235423227544092234420728796285104122129750214129717968774212628979503585934419571790719450313473507197464780352282265319710312483950331866044483514280611115379511714789147105509631134728660474377612922586496310730988516417506643966977042035031983901594933586453179454025149553353170180035333542518918724499450198629984252153874149329963742974898033209816067215688553602893624017692794224308580946089290159160255792247417388907899960136987161116714246429356595335655978025954028482333344895689613178922439930287799114064359070212008246253960362696244480891283309568056388788425470570688638930915979523396656990212366637405989506000483700357378603353859766040207923861779162332543819683949346182849504837271895947606915839545164932989680534571863697538085177024431333264704122674268179151582296305905233551251203316270139057759184632724872948122248685730265262219472294867978457630420178821947829554305430071277362116450830054387308016791542904101868194923773799732886826772805334313526451856748438920339014948868244862077744322700644912988050135232656130255949531565314073175373413658899231230182816597895653623112696838777863314180492560995787363393919268825213058919905145051395806443829009496915562041324998760460019229495291828842233795565113965857000074601298564995484154499503838861572338979981349867469864698506691605806409080957057248022964700122899727931625302722199967730442602188552349027232624103565956637216461935748649661674872203753967545762923311494799162073717754739267564608622443582515419065859992340737716762697427965282762917370665372151554586416969682971491180460547650072161965261002513522581752558714612204264529957999607201524283866072565613452496259680314564461092952132347762563731489555567978792597364838363266303449710241317200979602750879440554576095455411047060850638852189384604475428922851049827508659350175871961735945508662013042135477217922801796494442005721563438120473926441404363870731603791076523103679887101598736407160098289950402014303194517195591234963067526082195765967797732902573229858562155500394477213617212455462559161804988817670683469968872996985742356052273495091455288852639295376433724398645398830017099950966676568037979102692618406817009091294937379047069776196593363991078957172560648643206375347227408437946132718813536667080394575108782650882199264955026040528457926176471350523119304922307291409651459344690700911548318591903463894782978760413106811202096581747172753796521674962298578930214029610904053431837160975500546430350144926255256015935917299531572215996357539208687439664307448236679481783148121353285504095863358265852262345838218907997211383314060891615505675007791692756532082545435199069004893434850708877348442223355097730715603519760691155168096436077978859918201680900680592059488364728723568787431159601289840359500691750528246415022686575678357715490056484400324808812805556458105207967334664797876804659508223955261155350964119896205054564441866143132936466176162583042405958648449892381603771803097386402775329801748736515926854051567004445508919071072734496999215111931060474458108967275274162647816018867217141898549817597944129385482413055530184278354850352428332654387875440920729951958306400466641399648372990460289968311073613390826698307090087331622016626033852731988970773170243363023896552669429845276246759716937073645616417443189877295578179167829559965712023999714613077680327879721273417627475304545657041123128940077563466610722882322235011753230592623533679289972444214466368962060153609368596709288721773266732966795067625440426268215604647298467216936553100916861825661013186110829463898099339036239869883396660880937434521881458711671008946435557290684993656996556909960053213886375982543705027286481395660482934949781315263319466408303631806684379677502838438708462900061523297206272722500115723948630837780552460353605316619479579005152276727610566461295815026698808211957724394310647562625787216039611774636756019058680320891155757739759139112749191593869280462026605578099418006387885422137452744371445695707148512307049827350837372025184767797617021099604725762469658567484377323810983877859634605992416314298627445452054187893320503198975711741101020031309407012426757757882734498320038403645336524518538743344590598445459899346263444715641433166479260754213145397554465912372793140759824514799350358120924250648377210262049697758592288788853645428671403773891931107449161609748062249167990092943827722844530059101819121929476796587305948730450781314669501188878532353345517071245416305146895714487404039821677920560388893166909960999725136438001065018231933183157627610803951170049648630253386960093546178417807622674682939682791881191472919621699937763440253606807926421373595306762934056657354603711241723851745267624900201512113847413810014289814236566227332725610650671048557375919530797629749516984664970185813122146605146162360728664477499754151707123123271759070367244643091214798962595084571228883874404253702109410837809478592727737685732965363414373086985803936169893601066486782694881858795333967100752185599449062593065990776079952078192358272641602883439118179600970870189617807539822784318042034793984019831120844254826746793526528338015832825132360384735817591573031661459924458072663341522506173008487511741083161377130882209509404712136926888228701072979801827286476214950406939924848659382255350135376405544413415411479511937667518841023861438294555646239798910120294636940674697851769727769520928552173607333671356427700759647313626244407948726539083187204173829678366968394541505335503183279769782531051325343000056596627838448588460512744756727913619513342418500633428241301696260658042694679257465721501701508257704906870545029184837692701493741805055200966939176987886687098832073897098443524934459237980547378503611359690938766316600775236177756617216221018176564616595739428728083566363233997670738330042398951517322991576631484032486519040608580437780555581948584325256276441311133092893814820528142133899850101399908451010696232817204847420706067461324651405733162003813824307393207232052699064203430866933186980483598545191343923863372439171301665459460570949882046043613182675044355623099361782358431270715988590432509668877570584151545707118781132913480846373855191555652529683317435893855485461736147251102214862652496121346046038866812893017180681233046526981714622652486416565840703516993301045330842108515821240172986398904648551818625483029223835472274605174005007193760033454052206782970337104556859012930989792705227925012521238013509752573394917203292234896409935705180860372015482872309867143414099252432640934870592102171064824344597870754021286334289876022455910261562521586963407101931558225036607173576946378058521495611130210994184498565553267806183261568852611220666685266169317099082103548870950957314297567790055394297836419202955536434380931348709258882441953837313622368696710952904245226504601062294744254309189000556803299298982105981704472302930554708417935523329062395839619747361286003529008807574440637991004969638301875312876716866916319426074222858068757713171309122075202953944035320457730409780759230294449744029020847081440632863811217588037829787850594299331698966810433352349860118274065510299003257263160049832611524044810810225397567649747615395197443617285367125394757776539380299338334085314330600182626173594696843284744956892920090596991576951210690666051954402185246548427269163331791021634237297511899112026292090016005213415309356497488939208514860686266327077871955671924663999531475025814522899431237180704935589842325984619867022928068220078847722759296512081368517612940061694734801619220923498995654321045217640163946933113639351756391585097685406857788122209455976294075014481551303770991232232853900564892054416127246489673712505746152850010577612421337138921438366184310821643835899862612911718677499924884428518274832069564508250356303447059499304379217710120727844313821756324582583658019080112432645915936747508237026854896570275647268141247737880222653015324546629491596683041293976244143458855442199696179275225271126214896116820282630375425722936445270258927644023589671442682049922700973004945348813861753134598819429927092418194061016734525738822452843179814441912252145117318976731063963921607123524109625971575134399811865185431310575511832557596194965846712492226059483481700291810926892092150938620860498452235221500304293177623370149543221324854205425433785622331879681233873555443275495066077703624243269508271672654626492093707788164927862012067142244315091305389920650577663118764055393906655153921868228142885715022508857630536509706512258526124357341835295093540672217358123465074797948181465830701104887723146533945940727148094580881603049106618878085129506045581386715883928123673095395407851484999630936449295084588259884584893002067632286634696866625612957163364810449533652630505439490290759662456527366758401915450091348214083090957857047079194663385297964093209083081753206149763397700832987145385744977240267133653953563313245541399785291177533455483808670016627194795415484038582460872585372612064393829582178384936716291984866005473222081059931525578562423895898358210300771082734039406737729900615624175108101623524523255471526757922291806828152426542856024302773256777907139984891197833962410600286291211850400135912852794627333353774991095038347500688818310004143487505239690233218050610418789618391312712265764598095244299031470135754846802089494275688653178394752059047173739334406519836376880101546499168540811175149484901615687867027230036772794570869781824746787906852976797130357318463905348124731966732311254103345405603070977081626940453931907144298594718169349299768779483789883658238630749304409894562780961573704471254788899607761133102985328826539734410490002010956730721885995392510480139525818231932507353357042780925339985740882160803735773806251852895789799341348578546813129070680366053264668817430332363577150125718193029830786652031918065162517769087979308848430393448959966899868394310809500764537341581368596873339149093925039713238941092165633712057153899199975285031501241738508079264845247145090833025611502519215891027521292390667109798020856514368881693958579846305676375507623489444848087943820328993777685793114591179398398019721783410580181096932778289249332059483790885127183027973835362339964122346184424434053144226357052976928934845619929620464496170819352463250698053915923981901887559148136946167738287057492069985422927703078710775685617524684058426646830982533163252400993676047503613161212340405629168559616403200865071184000615183799689219086270214018121092766752968828483032216438761358230865879896939628703843565487491427885079391751220608536131280468351420758181652715947159969173936321595404790034110395512637895303596061763691598343426122494299959912086642717081944961409150663955963775718539918629604187360739964372329579278331786326855494124037077694203430028824476758939870901849139797034737757952746479740897454454212776771215367819023249124834749571301948438072365550951798056247859043167730620825359928539730776397657597468389439820747392959199739098475559550111619925543903026966561432192167175154115474121919940600043974276089278350874460461501368854090988167031646800705157204050941706845686154608556529836893449276680418740700665597364127310456669252570983671420017976899799149192333847494260331090595763696429692048619123751446769180025003829515310454565230929118260527313391328559131100592778727467022762386034132011188085512002006411715155308771089666315062397357169219743714358633254385357000438068859824356681627023569906135201229978141430172215641919433607173047657220485274502412663858228081405008748220977291227769108079458365612939122032328873568742656478398066547815322120081109417639491630096995665768236469948691341266292450123516465114767665728155370526378508701239338122946937869597904331372432423727550810438214959834250845598398495496798200255610392355624174624580725259352753736018176206734695024513607098240250987765201137995817561561142458949318733983418133417060333838937627241048773413787508196930927645980845184245257863278978722662389966560023907188502737739200062090696163586315048809221405566704379612879525871703902565415902180905460130409387391680988752328378805268927453283191720163917587788752695342410821293363854532211631036268858484761229975132990387376542875273177538727438432396903611152536660184703029701265080818270962445015341806845428024734739113125166063525952194075359156423106409665158805136868337836785253347443847597715124249465664082890208892307716973582006970111777488212195604583306556770011365940471116500867392679518933027381310646267561660106775776805522990285583620599038917088868877140658966194246472643998388374891925885024963053744327922072398164566870901528337001214158049825362641848160673018353607262418929615529997371272476223068685963150525754818110407080148698855730829123765308193849625172794131454743621125414510862856397496302411880454577061446286399807818337144531428305861596104774690292929837561652827562527371828665831473116414674690349201497177082996653435109503395477839790346639366150247377369183740803635478621455896779520022195720863138534198309789812758284093046130846168192804407067249006127629823856828980923390171426844596623715110496955215194769438256610215682151601836713905949212733467210895522121122812280499934062263052088664133557243459151688705693316844227517250593025034049656601851372170223746132922342028983556011867398812069964444801015362852554776779125890646775529485337273728025136151943655203947066838413253438465352565028510843826236301764307752508124151515441294298200951609142386657411878312058467712652721444891206953566317067736148832222903719225979598330946636678563664851657485580238951930510827140389839697970943281656765492156877751245137164299042767403851053057229296593854150035735693069743164325550194584364787847541774808634735177861279613984997239664297038614782612028367208760961956493136776221299539988083463884115298509362514861076064692253699378547437964914397302063565473909907421902348661994851179497382445367024512209204706599687647419848211493763196184422133686559098913815109328919006647366717963135009655243812874898305488734305927842812583084221107123410844171374363023024639464937510667756129961820183468471736763026740189062241027557802670572011622779965546108230237847830698141608243726182314283578922556677373368952443090655235139184196457068253297329390545819940288165621341003621090335882993365707714000658986643480591637707480720085698128540986562872348443446966566955548089210072479241924876606246795468000294459775724945289604968251437147062732654136545238564906013456084739556947523846327886358222168202444521523792806593256117307780696461490371529149766374919689728043316272732235957203180445472349445824146513122474564239995558254403787838788174714508372269976183616005014539718530131652278483808841257605984045799695877111886576155295346820659213047326419488723954157327485457742447841683249280265439373480740767330240090744975211117001861706707197128830737316646020998144665649526238094290190082784103083577524943693279129723322586432740826252774043698273191004846004578120704761588220331318110180541612817620241074212422556526233483817617820513389145422457005444758119436445793160201893085549493551966338807303499284389788996954006288136902459416713133803796128990864458735180756374853477813533909356679528005207186554175745456582208087015412968245878066589262912704067273641670673461985686589219557154032107596247775053113329508277145704236587455400775602798649549014470762532652224070507010061468969281393619765987694624979809718687466713608770937910141471484927069557699829341048036125642496843137684546561034850014769852385354975579811226955848093714127339496847604317901519952117973604672276371665193172866148114235751538493329294571393090903633612550370518831399470849001983279784382458786476545234667879619124703583404710559097129866582198238722892312837340082374314133598559381491987146936723700390961924403379499675250130899714449502973606213399775974207586530950059886135975269111604050052561605312277795118007624362898109569953083299265874658353658909921240996935479267658998903007644919898855335474418288629402275919495585266476529266526820566841242410264360882728297408909072766738342662336772761530696198789106435871332137657208204958658580275698483971366051365660563651419842525280724580780080906985151038170838604838428115716535279853163397131245320395694734605687633680444914940186545899045999554550478004737822341635207110685854552103864194493796980624304200498573217568537940151474837246942679579156825540157259912380468402498692388388072124663240411517770692896530354251568735981692888465045831258519618409014062011952698414941204974141009373080947401135727273285463575065123447254392673189295196548680568208679717610834322558921580610552188196241922113790958667201765070354362723033876214843862766223885815273370890374576627242251788786592733243162364805670032130682255502558515739231576254822971473811058495372700264286310336347171388187290909340193824391314253618258585259506863739908837599446906870688118867255682211368368403699386095546304795709253435884480436085618403314612612070741006183452062499483753506611744892911771020566654270023563500918349418426783091292652535876592143922484432415148822680842661903659664958114330500935907493785334538333060306413877360738882264337763305593280599006926831064760011678608414586321062867677300610391353687610259129048097201187816264626821759764140923860656300242473525563638962686011438864050957101444276289303564081537313845369629168685553142146016251502878924706407961895873531706757327761544671948763013368033247903012184341939257394675083984201800990757367604625687556408030899567061347445574691158322224327961026359533347250108741422765075623816328822411750825069677772994957943346484300032034463566887511669178125027920062790861098767170986185614321407535331251786669248956429187732883388046679439359507771641495802415275611309606125288796570872421065899482023646341245682097564524436404770279462047408695748356884262515396495085835360351846867308354819585581033749564820269473212493451778693979339322536582639609593567658808886128649240211153257433626168292120192083016818395326746468058103800006743332639195033006316619357486577524806753723091277254388172068984139416654767615016607598423540214953332570334815504576635950570189503894618557674305156625072762087917263597366893359194911560184837284189391163799478343756692055297854116305965359816179254948964753046708618418324683592010493082931534004057492606294897004707638414764773384052069304057527931640080152941879968794691233724897173065753398754194930009922601066873890183758441238532548921441190681931194806141025469037555269383861166208611297344211296765905302912610873622985843724763100559980831975102857256458205114025556353245515091732248302546015920929739648957036754233687953996706935502270933388490096627491179500137560883507533335990826463516932123878621349074211934287632491973002136410424775929957010424350573860711761959836983991247805616132236956342328540543686556349239893538084869376953682996067560432389151166666380126055536609954919201049356897142343377898684401250691674047015829141921340213184544297052525859218003707927660442831421644890494336977175580282551124161174362862322809007127037584784403114888740659436582913980302375431181197873851418934937518899178454496721106945292862521965446766139495579423788575749345644986024699316209363779163649913804082805191547072997497140360717401469215474341013864698133022842025623466157288613832729045418163403431320127610364256666708782323975075953096442245431915809517562213501342956891355423424741127049594623060017785962208869100517464687347893562090983904501760981769270396687667867108399610906608916107103219941484865244049792434617598441208466230534883221704389938040987254100585027850795068724139820427528579900970549747921993025844692213667222531072279221528279144101549248524330735609712757440886118390536207688448941049698185131087988990921000706908074348463576850592194696393006047813422269819667788125987191980014861991208834998642890426019030107700142903266619879116893207366766695443009786672282130398960407822504989490126049567968157775090986384985105176794709121413870120749346909678700046897179795994562963722861964895208544462538604128262472952876948508869733251209890690293533309974515364455040469974155684854295650002778364659927028043669130007072058787994694090267003991131600416417699225062247935784717877660738386747744503958038779498767674007362520690465443427086345996401344441848278613350001987949284272034709249698528100638938873298032636134109437517652738383752271186846922484057502010731601815620330228245734762029794105643879075813991687454124536452980869874601540313561793802822775612828922591974105493167626697719931616136183472277990929199818066612245802134676712060209013723232675735720789542819652300436080842466480453993772858214466059218179318291482907827323180441559990993695083647334741527293238409496750299230147004013516967068200988667081463346639497231781837714791452673182814507436956250657134865329578052455308358640339334319566793285817829544284226306574939459202818870188090749713917313734176016050946034913479207522257517903583208832054314378222009472542733663749245247416088095745163145065290638224803002466128444201157132630912716289601033582527950626498609100546494988475877646282377892650925035342798995210565464992552140111903448220990126350709888558892595111776002794754304394576304280019198856510443378445698568218401862301880869127731367610657091161864499720644257558237376405145878842977276551177323193294132863521822362953109935719228865355325048988964152107003179606855352844911348298627389005369660683467974694773439874639150238134926772804308602852317911604293598055596142409270001662813150697876091828850886655668596251673670849188327476920813374877184188165748096198187757909067508868792554725025097496916481355563669610067732853656135755916172562845534500726030334033666786731148833312009566888677215646198695344376333078462999425324169791578725303887507794108434822665425449700561255625764902573704924798637676009135218342825380131928580750820789326353484397627751060508244919165439957771744315552111205716143548132295746739548941768059029499918479007354530179718990674410100298545614692209704500203751581092986720512834625055275207711221548505219974607554099132404505163927577050945129265461973655680330155100578259666045341876159125838563842270156445248922070114146671994696818993660948558997911142858457364382962110592151461893549207198104416534185469293095802496984358583804309174944216647353864239526055141507680372433506436321381951090264044373334847972903715663922753789354031403102101961951603470058313984661686161294316982325491781875132544102622683044713104264388000297754174636040075114499225710091799523117261637685741479190262208438313900202482146839579631849135308648885992007695039484073316753097345532616118475165221240057758039407266020022988631895714567836737956075048396532588676393585296935765058287917903882756660137975625955292011272665765765138429651953354501710368980149450434078013727676711442634983247362239587657327791053193935867294065929429777477607994393253014059883593824705504779057785050103635589757579837324457808631690145811845457868745917737178613431379899382174477689877413320873313712912878944814486640814300006953999981123889760970283118147801299203539521250463883052695317140449308935666065409709467873177278891363879022275770075405660959781067662672788688439071110168750784753455356893583598283890093000964732585609879501805309382108036657937180102193912392301239962115433389950631845855885227941164902503633904906939914294478110831046264854914029083710261223693907442876792092652610465866104324451480198554882702864050786742283885232924642657509331724161833486213798048675320607452029730406153904125357215119321539059261201105440606237358751042819244181295928085159383660034478775746565722267306128087597090172638630922069297847264757106170127080329615942918162715160900181386395247398360979383415468720976291937913649833230010100812121163803283696623349733958156577289526859031594004043727139966363351244974858396785448246469029415084169699423893350016284678946538993864900918964336994318086795779795855977594334207787871903705253523722274360359024391018470459899626554651754885082785362245048618073192207576808726905906010389689296630970618405347538366433614896891980514064586953194281299776095567140976429345081480130653264486632269612473206084251649692599806121076223133139416731485107047914007558148746185172715681553652400335758451857176306735023927962556532113283378092326992904495620745310339501701135633257044232359359760998374979984167353560319715539348794058186291219255001153563228483686615286379421342074046867750001129180278400875453212335670574808107901768713169496354899348114687853824999299738878580055761201354669971731855076091997970157310024203395031580166003076886102221597343522967854465718521724290309925445041243373963993171639240869099618104599951551026905209380223896442909100129616217728346920504844468151868713791929741594654903350093163698084318624471164575809264599500229273894955143173248317675282181028831685780148806422064133309088920222553177586566818315155096349498063019893142319125855341041287570431050891628251818459777108456872868739897262861215889724222996697384303765380122264022468762067490271581120736994627930151611016280263796077857095416744148791177302581889295126948360246598310446041688893161863630365762390718746454320092006755304271509140920999308898745301268076409990347644947646629967426594728713108867135087116881822477520729128285901884949359726244277806554246512437606193820475786360691144769661670519971241032390808696898288436326360349484193761774989867854641512842741002868068959808354165747464083387299415446905911954685081504289560890682296449775693625428793687508477605781942247369498002205927333816677004499456707158047442781758809304917175649621192639244090003109217265166883683604685958827966893300823313450070901621511091031715406016168305825015521424850901662375930313741346352386620459613327696243955380677816837687035211710750225316006236940349603674625812906792186994204065518920869689542106711876417602356724671731013415914655730538655117383865913907205419502887204257099909213542496594990559764409954134607654688810380258241539484207159288391060533555287565857184104648779310324957828281812694830945030551621662062576417735303941072368725091835697947689133086007796953960159179443263576951792021565256846946535257938130718757464974586973694038724354699254301381404139793783349318108115636418540282862831905162866817837133574418608707063270639642946065927641344384083151499022253832379909580833400893790009442984217592921900774281971583576655915145795513559166365187965869665433822760629494249846005519277554528309258100845930281592148892043863589818379330958395908075070883573416116648178673607187555578284441788915539362526317029743228636903994035671833201155674707662283687350751822012065950319404586135670717047459925665004798765944420126106825745304036289902021394967832221898864546716320618921806331904385813872995725574403751959396064050680687145487314923847142960036830864028416471779773192563206528299914427672001854146693110058451714532582649642638383873907373237548823460370465628387031718472739443495409847160491822647174491480554303082247712211792523502895964345583729523511203852260345903215523514503867912713927746181277047342598869933784415744907146333310313667028683583969444987550898206032903317445091808628578060526915112667843108886170798443707763500931746337671794134075133892744783129413031839424583526866849136033374226512166956900850141472783357390820995614460617641393868878778331685327426495468557825059317241773421741341428422127397222966636078710858850665278601619826340907700419835398819071372899191983301060456154238476495756251125824380467225961724883693700673390333385800847824945182472960400117597439709130710789625027513566147138324047624460558514356626235112325567181074318488136837234018888633598423371626704816135068093984316805203268937510790686578865306335685293829580192797812204659951609446775039568836724506587489906520694126767691073562811656661336743885296426743686604986826829109272633927354319994753398102149404791908900443574394887946056102531419716165517819097141704601008869664814949662850695194345097002874500172633581051899985046374312230880417766969065042987348458739233330293017007946584262061426242974494386266321847785630778397655793379262176845054982574292300310240864213949602358644743438605413075833472960471000757966051625023365553564619383869480951311335524089263393351940903271381352633907517865600728605429099373335418587503761337784890314814254071008369921795672950960129918277334003287222507175753320263944943776024301332934659111892813480333258176266059344894870511537009513648667705892411695803473268957303036481114001266689727019590264507818248631552201689205826863146595932143557332193253609429855030838663639419921703110682562815925440775219206052282481120975056824583390311268386440277855787566291652732045193562695968707726362440205741649405550113980504470418529324376464426692447542243224267240851268224462102212680691361957412311555491148244340184694025467804342406977937448897846039942319424973399272195261092189980627869440527564680051448403249741281958409827287930333219326035954775770400918129918022459656740510055586116171234234617100510115229174934123892651498712086580020753041115713992604360478605276066436689500470865858758844517626877631467754543502875838226366942808781907868363631463812297001257696245876908520907750853185308281521434646532684607993867270909483329077902245241645672141154745152865196485986669652746834768991076580491927221698841448377009833154709779087795907359058678295025961367666041651825765338165381821931521210680112293009004489504759186388118483359968780524232643195662460356128095032295532921410828569965741621901699163718919982852431629010791303605154019754061302077170381817000669536306176837487418510092040622920792281003853400847250079676748828001106974129108013009197709294669108584803974671788752786252962688139476041385437461784614610475655497991332473743356743517826607197581530436768836899677848166130642476809664589913688655817420098901110818439641799338431143010522241633242096406911729888746706157501120550389190568701241302371191171713293883296324532390899587716851818739295539750444324058961349828388926678543445146251277810557447760249865054034533151304161350425138807362843609486579043957751689464094909574582302415386266601014445365902130652682694190012445295863740544258488419294512675724052793457803668913627591218164961213827600342212051453959744060297197363735165942764381470111301215016415768684283306973573097849223812021955629797098987839533318903718724240270951029534707585175484766410842445515645512694705877242168585055643017929297769507350593764942851585199958749375740327796883538243092941485995917544243602859890411753120045307899828291176366751599977123672588965640602453666853169740723743487185351686001415033899564872253951382777627259337781942863827987685714665577233330254036534581130255275700783673092909636063486043864742549033534213726355349998241328778210745455414399544377295426020550134765668675405244130892795974150698433569833223825474036332662295864894727228821479380646259537347999530522379323801161447797027773114728559355526996649831736754917066862420037955028068391729129724044941541717492780549934631990491128972286108476614652734462861529141313187911670619755208495154862984631232247879456870896936619113669898839398067468836601589098432596993604693169895634780778105442851630843499756360897744172398852111811757837090294210450989813323370055129538631969333645406040432822239097675953408009476410795131984394442242864897755838561639622177949564270447772753285181725514016277402382904816958483365908444692920619505363387144851344234908544822820393048586255817695016666726829592810941447726751560988334041380592935275432951508058607932911520567900288372837026889730239103490007583424147102661142035862211829682986870012472000719978586744112489958290760450258056245779375194314744834923384936236134154364380590740521671619001719699412433780236539668555477386163648425819697519846110057638871694386833431917149851886568450529906232921036093263419542535717311736832031624905044221749623789353518268660132866656201880635104885160599438793315887107260018062872161949666843618488548896516869292940735401526631165392616866262342996298576861636642123604798718274934983895925863075664193199338645869665872598596389820398988630473697900557968666153961389917628210754577892687687647033811373470286337521042453409699034361336574983222958804156928095926351538188657413003272783814636500998336849236133293772100926569285116319076726799758737325939798643261466362429864857023934813061597803647968483468400638283506958895321333765801818953542979286894411892179255806768199001995873494510616250059018387037158010472662190380981370720556078768266274319334984514500157349667291039282659562443982802996434017903063799340729118006281340458186171677602158291373656097924586266706060993253737701931320764825820819230595564414715995775838905063869933068585353391318771297827686259008906533625347545019867414719543880057952802981168926779581075008644103777714224084605229327427355866106872758785906794005294444947038665995525544013564572457109574595395248625962641144405846285260297733473846050587206565574316693196328371429998718547912097147197659609197310528920601865972313334148008694764392693894756240355874325415184138535412344668565908935793720155720119087520606547222794841611010263390736647387693764527883026799039152297521806186947962484114200996017103089598876862434929913938071520488340619609769393046809172727967872426136719489892666828130811750568710379007645645920843296834722511859678426282729866650860332333029607209792192124755763516271694900010468742714185626608256797856598082361800319131711232868942204204205798049292189454523987850608006772321062474504341984895067104988541427605521973229634597356065561133381848967424038787328928194639897637294313100507339576313789544108046843839948505628177507611518757700370802401386527919917339255854523945519056908174972221506391661357103740919251347735101300001180016255010298782670494528035153674673990332059746550423382872504525665553966776304771059707865106634274327154041073800156928699876247212448174092280370976623629475546646978345551493670099040556453194680103512253367141110040298326660216103176618187643199137788886732209924087043166040782711412493852797731035678966158122897116261475901430318650891177784725324948902137168687987251730926717054061069648194851741056510389213107386560159899230717586610202832259608103463366578044081678078802992875303776455032611254738147870308114705184559498119757213798989073376168510694976243402975990434922185053228837001138410849987089882526594658629286383574358732129880758642583739110420789660303451256204490917141748382497716360439847308465499543750263606867904167187837768609064477049348679940817224805473729645026092315547056345454013833917941460920463124694333229256427079812369361638058448439326072712390258346008181884402031222933889864715167028628184618241102723010821398014952006210917555072681905744827818678349789617285099563349631804692574993913618605203013843266938747951524896356698906876455888654606465968068688360627099471520724977966612386939107131636453082240607461822301591408903505620798891265819762268661967470052330167538924374175436025942303787051607135075444303447031896729018994985165287122673957719112286700946881981880448422160970947934070595589209376389427524068588291202832029313485266488431857743425174418628842570824987287830343756185061176912580818162909150310811761548447694316709026017603142543074393641396438786356546969281257671313577145495960034331390148430091878332584018461057978237167255128551743121164545001238799532397024838032320104306593798301785023650792444708610212016330923587199358193774591239551804260836796576777985645547695335380830800959063817027252130675885636140986408336295533351087670678572972189506027054017671317954609168093817108780607547829140463540587660127862257653269876238740449175785818469910825578571744818892412353970501548552555983408474504066719908765330493881714556637640854991825973061524867287498522334556830868324339344145256502979939070142278506470550000429221933636128084970210368519169072392454421965662028465548253882035549386835090970751594782456436449991809794227979209894201019993018183544758010699559678362948679952586125328085162921625917029539030233276387322551707624347616612079189693127619952938028547966431131723911307842161152632583278523451787307698028155632753062774976879101889570172616916541950481372273246314838532350521496278872882960975352650969431725996475838019601583188429617626106356655481935246483331609845720477329934880757316663709409570917656182562029354314404289211808940824512742030531943105444091939938310447719506076231826589777170373126906500025374892923308883011018036726741690428647196028125522094623396837623497843666899199925831407314416269703756187760978601522988656329563640145152185801971507233048411556260576130705766910717329460813357158931308881260463864218368427537460110465998066274926978149870211471911357949292737881164452513207068457818690777285666311426214410979273721786788482460054060915007395049360042897795378949927420304720146946764734985574975374951700301533053361551026389894991085205084652270264166210468661158828254364801965777329729055327959888448733672959022957501507699325259639304608055096892884918335874939518104700457526883075345529591087217287962174870910543209120639527178866886995470670416841821052500672100279366847526103105939871333414320413479127592371201157986973213987066692227280535879649763141519555634929254712547451177155213103717186097924225387926572818654601687744799069613057982712908652398829448018649074763533714732048006543815486088159938261615576443960447695685384198559464501194678977292018755354016720247620427552932290699509664962098498207335028244857515182474291506509193334716541045527346555892050861580915547112474748196390776417507888331242313647770362598809414484047369066068586726382535158848577234131216980202013736153540549954893902165308476462621157150784461787314401122709172937523111517815909484370564957186694297318246365599529207897125942928161388004181224235579043271245683426278626243265217305580722652838160380980915525875857850292088834184450242257412202120215942568830712773298093373897822080650030528550432084957830863927479519815206329948582683601985547312939001014899337977476158753612566461030352303486846444495723123478687628582024586115093753876819357836461427517928598785222038416242604194475958490235717963126716004701315413825780916320108989656257118524563686783218206143932310622584069504134454622111122375162810671006558249369430288058558905090221671247994107811776795601680048904401139564603738702963576087572644062016808654410132012019183445518207589775669467644729345583800682553500986959919363030998058496870669884556242294423939502880269596533763885573787370322849962782346818448101582876521821381497132443820264798547024305242646705831634148827808211889964869263573313145894911287320429167297452166065083180666341678597216713524127346135706684375597954505753635938022777842904510356045668092775432192405638976165838993480707983870730957138033727454607582276013720186091660597565280206264303681878081453194802264418422938444064570328324663459613078120993718586347016599241928761405667837684055112152249902572182186775343619251434872873416392852829060142511161519029259691482789879967941362934145435844385995780272670451494536150528614946379225220966850610010558842914796098950672752901104325025883546096165740366073894353065372288595460920756633134999723014671512105758577699843939088205430259234551180233642382072697156843037428941598733270610359221627600063539860827662592353211816323236578230495470191947564897353415597706596492717762853098182778203832388728413891176889770808572873777322174084558289221182899974711373417372792555370671649828080433931808112447342279571070756822449019473407112280871547397727675436252775433380425044071590812582688066527649640226705861820456476643311046563872290078031994690707574932387040921218311140789124145097489971227829661354184933003758444146281255464991125642513132454123722640270535200801972432312075294898817047122395487236375384551222643778252279657039321280739600454599934821436942803487622577935203444235869296099965612768334574558139928692148953001716984477698067199348907790591778024422849575194304902292922536367604253933973525592290118424482293047265030871602041736834197354395749264016775237748938096804822664639298858197362611455551911951826971804080803098579239246781210030917615931068591591569457155692171175236175904474210112501695606028143662954135755841892324904881430484064423376951373253852379521370801756241545050863386508358249566273395933346143728193982126827114543324734766285331456856923986864254934120481515312597194238375009626135978804882708832917869579855558336570983714043866355735152984155652357239668809709096398017815021166099337109100092671212665724424088077083570933838894483440088284733862018092190314165074219107606596369095557264644712124754409191429865079380413532128469612378964827940806238511058660428974322010243355344842362558593672191620729469219477679247709700689303881341418629746411617604877634601918267758729918863909649151381958162384422557315520177501929782060584880364684358614167981505777276441911994583428475670260986710001936364074091664359564252410273690837701862541956883973704141616831237506722815839276295998794657956888937325484178809287099801249606022837173046423862823342103316475265143052776340032971285360695124556585627150393834317142245667639093346443038475600814070990599583830256982446781637215302989052051258858774709884096610183143801401156566272128364557356888586256570342381069303524407015569904848554250566125575207800532801977657352496970029393543144904522906799022156885543329874377905967190659394449798628410952858349218097276665340634863143681195494350953646842710273033216593327347324360356246497655100300679421144944987810450430328273381369292931488238447509303101875887050339727867902250533142185885551010462751354984893969376749569016282955680992153912635219372783757546644045533864209065810234779714784327936098552258012336090867837107359283201969452185380962443421371278353076438925932642191674797417259492250817031618319206576146033127902631135081054363761636539179062014492263595287621354891017905005089276062274827487461252241466448095428411159412472236802780444898765058394165364936366486675459326403251184380588341545485332987057096053639290774354927957657399013946684524630747165794792398167380692185644769568666408469612034213365428776624742224778735500180673988380015841596588732202597413969714632571885581071544883425234123178608720149426095938053201492545811365016360056697736032092866723841166058064848082052124263753076091367215392875376928714919828417085094397409356688121561999978009905195645238497045155322533585465935541795425279269348360953020051826952695003543352145714495256591515317946453294501511145081941820740115737296962095283179216440075154103823726396077625576094151588817305671299415743053851424237582268467000555581494238703481031598136849871520056638422774164566889025823869805439805647943147810662019184394577770611710684049834338551341951657593723544705900558188793124318537564817735795527517410842872568481317508625906852212200433001148936002788849249574636773782518451638427103070858783852841844499258107769765853900068907845650105679198208317315655194648195264823165115387097561244767063593693647624286903704630597346942954698865603911891633609592862469705788904575590247025949880323959752669444717803167367262452786205474694812435715299547089781819032290755800827231939830130687386632743168185404093117606740905904468461395042119192775328795280991370032032836786001010796365730786342837195531215533969263151958818086313889559591695026187991159402831538025626106281251637939991704816805002817000413201342685580468544745637820566735132117557156851216468320634715832257023758457752327145386266012761299283822725945440798224289459644882855905177936063926451419151838950020866014460500313968808885028760889067978609985688063761865626017061662074427604820139743175932185053725281145878201729796511858805326638301790317290332160512928384568204155210047434291328831196008665110671489328098178903643824040050646351695338398536975146774735570023144376078854236216576500351519119218793645845915150136657359925939783383041568068051205602361948808907652629306826117695747710156789792491079700048873572305198587024619019663775289384954251745943235390911192826040637961796881342981710340046134363676864822351813311960052630490731326397491880104298654019017624467698194583413965252638918713941614857704038734238205657083653318054787062573797189890001358143298599956049645688685794118434596795069704467520228470908266563050587100215333469844043086328112062370364479326136653385057056005161126699522085578899863751176183676390080408703224650665883572190558312060224160314079666282939032226122454008686052630958196844285409969856750836411918506024862257312339930559076118675859108676348931417018993978554970461820696922921384427503587640767509743999149128435300938957058877817318292834001538470799021813366844259267435585799023797789081991295196131818219051610703191477022227221100700820985750960051041051040155298579995272602328714132127467265656945877981104391967596527945008611476902188481143309350534359487037283827210042139787653313490232817297568775325093515780856066014322008187046035734532815189195596735647809465562346017401079067500223137555841878253455485734801068541647687938292312163122390182288096927891617577759459507365904210922757659172065664681193379253725007788360873836099160373165669136847192483635914832626345150879614392315850309223498562006006100904294658133255879850402541200922742285963122453453635195472619337044861358346644932029697881044745626421822415403415443290960935961026201448621839709323381048134728239518940931971032268997934306571832135048276411642934681173872088408516089581355813327223520047554665016443704833506094832229632926527471418367971017753384567491074499669467104420199695037643515794830777789222323699484353356868274241447477416345061552327466967422039874429332004137441359307841981626535852941385175340734284182382592300598841646475937456831315219482511464006034516715397126690964157929231609886176673321750683390771778140722720246628759240680828700486853251210613512082230196081985594007274215081167221700973834241669658355846132012565840725189948964006276007112813559773197387015653787151595987852227518070361843545425907335443855636539265719266984773857348088178442430219254801919812765095815814736901750109004911561736099046701179090025745672912952971655338083614388337959886202501709857500188666240589683241708982283992470883704413020338217636754668068012846394877640135825048117456811281821282614196511774348498056491100350583190756371443039144604975746373079604652093196931708236265153434905519126943178899039898155366291719876151652148075656811246212850994530737194911886322995369846677294413156041277858202820949351589278142967011751472049013964232912036600866853078586624284290720135018020413830497744795228569383444774396390176350643328638833461962143103935448839958847801191889200254179107293999275130012645091151396839800109572576613562275712854574853157749918642942635724298060302988115157421459982124069215811186715010533816768172142497702039654675261376323664798481868037701957366140597578140982827166804034654100452552145759838176894664696369366359047090020756177278204927775257522416285401176390385609517737736092997314004897514166166611268559932586368205092222758917677810729204016370380141694486009225113429502080409123234573150212584263058418772250124755430818515318848256497376512056518873224327749508597125820987522583122937369300465319531898876750666485653495791445246957368908278567197303778247526410561450839378073251503805250997532386914765250281427677107842524097636122352253886205006196816378431660520465611368226313041526629865673619697099733458675069253136279057585417472119586982303059266558717560446976182454450133775824312335397165690207745124374661277695440921589984047473149559715415912880349979792988726673382760991394234062805402292467896347585610454024984372826773387016666660870397445215364083667018699912193042378776505576386214510252482322736429259059605091924665843260907947897648273911229624265051672485971633817596082016752137913074038460743441415625803778055671961026327452586886904705345456509885213270943579430942184637471638274548232416241130302896909869183712012804859090492520925882441477324229125310919910090369109096493900371147653986925469743705758859458818618531368356929090366334307256507055405751047082653828887690701355115353578879579904004702221768806469752905473686546990626994334042967345992468208153354912874860483163063551088912949810756408011360912901237554788147320396003674764892348822584281000928288886363345487720454860645669347109074855188390845592517132574629381200614692027781876796372184466894107833708485306418695018369625523541101883876919513768927304271653171438058609644876498841083595252136573257474729830914170713432520923508980464675339407172978599780640169114995434774364719372655517666046498312318370967027298729333078087600147964038234466829425197165073064506842346929750428288644805899130309830749220262987722697499913130532416411349508747409113685010697747001064379462499369748500417141817163062939502590753671941985575309164295728109592034068683512931559861299942364742303295499660652574899048918174809784940532752170379237140632039378535884296581821106768341659821864777217370741555691621999318990863198753395082053212745579319701686864451907704561526514770461284230251318247442677459161520689630341194212509304671330964666787285823499843587351737851069990266750327403394123640947654926930858984201300721211722329635386780575638299646345312236749119227471630144940078414371091090569870595409967816488648463377879583155654440492141853685865799919722336248826306040512626816925351838888946517126808515205754659551552634698244830664010118136377518991832020334441641292107273629990075653849862966313694443193816043272022742809785021648779749477510068058637281186802291590592081557006487578291539841632720297702033537892673986194106892211651479434138524228180743862627450051214976430631970556173087769911397743863634787495506429737993608853837226379267396996795098389036745006764120704468789653664840576475071556777928480885050370953455028627544332836793914285778400605730549231799996236046648398925889968888137008656235083969178608730789909855540536868753702438798726444648117729223852253403526617190904190925247655636053884120450450543334553978671255907902506741707779438604053634769958924058010758661037167299404438986749750513790402632995177680644855537743074581391141019278530562170392146460635448605355371883568069967365759486270507136393844043166272700489673764967622650856340712777681159862003633721658667058154211613732820588700266728612070997756597725760070422192412749238018783162265334787949787652350428749576311541818845099112356701826693151952184410748036934825939162162616370908950008305033241803311254659445077052626333257196094883504840619294528827454343743006205510195067783977577294639843914736844784070663823618074396054420859272254690281910407822614199328824527962362685781026006303159343897680114985107103863999643516375951294355138222860905247997410461920259980658825306369643879114884191129426285391226287213034322705140279311851843883660813476777666534971652098506434205456674806084758733654835500229533648086828509658329993143824640503713286956593627719367013464546847579759486860190541635505669185546374068978883457190571925448095914220681661479223751769901700841916210779957076232107704508084028245484085738398821054072029267812090316074798160928542776383932309377182322841145165700471694502619840866188071282392022705505559509209901000340503268140207764936031064885819566350426386557972226064917983160311187182355451270201282122453725175347671404005189048448530041310602397407433073791103217576654427232460834912966634568818348083007937126031133341278023326173464658874619824290678100401977009950882376477402734032070737754026549278653566856696956191058117992143597394014959277290339443608280171053448573942259071962758408961197759998282803417308351265759987898834271233236313143288497514758087164946006738161748052317176842731277599986040297841193064475572539725912542564933011394677421757378660100320965588414641702897280885553699090580043252397022461803446748121561304130035704897201152228990465278622687332841808754729445251665012384198813128401069588894879816000237066896231188167025659501572096982842068130977053492079120973640274270883707815326866052260209548201460991603050054650941902145039977579882974369872552249146844389140913509035160687417180390290113409647615066383080231637504878122542373065720521660778953917459090580935769487522565438050032153518310166684502922776400047057755489348728203241400042347231779733081741420658352007466241692052128003032240446408253801485885484532681428649263654276561605639528137487194099111977103752013094407619406645431988398869928995336793573410041925137434851195452621553329106941989713270421418094490124554583014359894976878230885283241692625529947502412785611684740666463336123460605117745207560640051653176667901413066248565354620826909492659181955964690068842541993040357579573930285315264295138857631913261579600823091410291647664907274733665508351950957218337466110047225554871502618126124794117545967518022897938955993766826774669785073669960159030693602259798054948596298157685350322451059323118576425051238367523553317371615150819472984941166750468629626618560100763944162773160325690396409534987286693450215738956680588986087436931242074330193510633712044723693428414325101580906944965023749615615781455248125029346282997435161512562863968312962530103331660498371468013100629713356426915772036694516149643316790247474631281372603547718738197612447641564724270918260009814516949855218767830838313192457262027628595128624605055693458021193451121892815008566527428500874958367959769056077641996809224294063195016231299486995767363825522554388462310213095773661586105384320640170773803077816383592763688937773495734865120636623368811310788707964219844408665067552455694551442913766043963661802747753884545262187261884379718727040905232708697840470680563043429077614879299024341160969834782973267325764530216649209434297290384764346878787613522671693986262772056058383693748730017291456739923452734639480280983609244359990263404105585985331497412646962702772024856970310807325554837111804897928072859085694726104586748347272313385925035973144345876907588633326689906210932399260305524607921939915830860865779706710933427731175259485519812630601405864141305541683986749798139255498193855750627704630479945187459154882366595035608735394694447328283000624459918783390421790944985969713801768728269850235550352217453634976813054294104619936352738048901793477264194454396203207075351047037435310426402026209713899844456125257342316626555454328546064427836671514041927112368800417003430158170391352277895631746292266946322331659902260312271059931583018358393489356505992550372267264571305126531147334615358204273273802259703782011870284784362312373493832660817879246712056311325090196840541424716045046657065790586438188332460752350857946699179713715240893659518823069167044397353718372051147911503336675945351173607761958819303668421640111300551534344619611078903689504581265268133323849087035678332231707724330277674518581502127766752577014715766355434422601377696061794566899049791089524773121398723880839912008834862858590885655596500874050027831607571377386494307233057405675927983431302304269357411986493584923445493031277254216400100619937758831802378331084402772478284241023941239314882296888250227368678650231631092564179317999878955139909433082897279518465761358357611294180035232412470300981524454765042767875046820556113139938575553057554170568879078369280923790507498036415940797701620243524390420080415704246792145855151002538775641311814240212870034801955922009903962224206517543814897673571844359133665673769665902956286396967363651362936772321179156816607994929734308121745138457461543286275502717817067921947932280540136727230682904729761368023865413291805706388557599798410500488110889995622584396889526081250206610689602461450914288933422732934039774848629760616962773969105436919556661032965592013405155663919065490912500151712154936380751191767555532097704220727098819605128148034438827686592372361695943246249123827916164996588001269793388042355837201073691698652727593877459543797589482541109681067417826440046555161786740178491454060629561521346915062831457351179486003127482089911862683760670688489706220553208748496369132447396687146398177735874043089305150776079789104919293657852292504620011500030228152711609165503443129951571509866329559532544633163478615787873377388556672047985131384656358479490236126816524425433396936544141039620699712717464891687935070068238102620405751144252585688669836860433049595611559211664837784411586833172070817164713500912428181903087179042655204795890119895450305920876616193064872728008002183636872181978556717352268644345714537742353946593113126751602533637138021155515910232744440423067034358243390141469748730304821012741017852718520104245143832831024280298023379589227835617571669489095219474347573399087937462097140934402704586212393652162530811934013499621530709783255751018597026790656085897840022582830739368659046643097543750846996803297514329580242455111899095735550368764910195441176003085426371306139147316724090984169574362917830350047001698284699407082109825260333235716935204296807916615835327700075128873376621193870490885652559144543769936368973536799830144109818860222962219941248870143186839832210833389872031064065317938166978158348117348286361459105340924668879937972225533579309444987232851919442192759187303691075592963906414407740509872024186871045337073310947162841237738672454016354840131850148766123316069718415399307469509394926094934016067068313147218549377378609136192488989064118874456987609793700000419753071891097356878137222130454561087095832244608789993666745889539225566115925664343877125304337553811875349872604321388094007841714724691054204420826726362019974696661123522013160782165605305395193171559890961304053118029481250160816405678226938169701067960883567563208618229496000529863194157089827373208252831557459035999543305277029510390085259547096556753765963693008196481432369516011434783565188493899974844248804141403817470518635862522365060808964248538628534924141222256233174725026691435779966191880432287413342894618123037889810143752294981631040617255245754867026761493837903209418392077856043277893353224465906727829338522386305421280140353927142040656047154418997017637229604943126172269400728502524697415962048417400992894012766179184905284262163886998372424254982769748033668003566601263818449404373234304333142297251728897144184936556042767762074214074851382807451367852099232193310223799724860439785478511296094650485603300342863788699913808753911548335792898793411778949720989786886959558433311982741256903166434269489599837128403925257707221814203023653603896793882808315299665939603842795672726807509999201086723829250023092048111794643959306466058854431193457499909625376221039316412149470321548692931215031910662599607286414434601593628498569088933350937598396254099309551872400620805435436057081425930246331736825687183034104860654937880125285377006500273197503238666649241046323760302635147501842764742013780234184550855521860831791429433072813720726446712380260612480959316039051894037903526617262261399891825570216496578781728932378387197696863478218868786393475122469953291601221188828577383553538690204655583000810249735475863790431933716795316885909970723398985645011451267485460776021926102684408230628883603477475211777706227014980715755456624542547363495265950501118136304136944947981449586849211147338675823404058702528894183192252936087129102172987198604019895037101985041686693622911539909136017428495589224666468343193920371739980046205224851060385048759518027427001636207409088445252030530065681424880172525726444982811360309224966760028451605116792119648281509671509791840852799651382398355190154489142203925793409951858113515326084544222998286179761328480002132638792253237189926062966333687066489082748316958140588281749695542606114215731503296612620028742910748581986054988779751894037843595121778025130083304779756006207519358367217706819073356664107484695974726574157739025639198946947441758975901520110910745394972970889487955757571648334586833832230017445553565252974466242543787779904719792220951825751386130438642291624851677952282122611320208475503442914712435898026901280511181979268461524021139963019860475094014577822535252959452433365652153740688070713749602239006500130668666473657128598128353485062429686029466671338440139713799238337717146250961593860191254732464261421309145436483718815118600396428332666236866522559393093182356327731121838382009911979246997083966220693177770950065957859041115448075128001511923459915352547363243189208749603477060328884336608921060082326229443202857761041820634952605957910775282351907266512108442981582267693364942016332852159761171372270105696003038826984478824822489643788786993774779845228295327085644604631743387833881469466274037123719254644581966354969970400709267558427337735693988715416721227719338199858440226777804789781439426304307201977573025687491830681691665788128859634122342165365456640073265375792216212331485412588833874842934585556897186377158234490098289303160457677596669425129577319878127770686281935607728035160220032736934041209010475785589709855735340129351501867304688022916287967181519386777629614100716395413150122963060429650896872665842814500555885392297765770130775399738090662153657615513346923780517740757320195984496059434086717787098936893016283408587491311708821236467013943153506999549461272105193361932308273563617825355895271738081128387520780277260173448418147674684990634147184105855619224617191151639643790570816810454084983787258351427821453153908253724914790724648054720764234117132903997376164031007839170936924104728626215754186848861836478362009935971728702143202669438995681077038574201943365696846830441413735709814958449319094330894139414679490639135401972356525614685364358425148229859989682930623300587829775724269854351893289294773422443540251404924816661874392302759815556320300070369120560823548857625296448490483575977150502344642430653534098797218782508837329621362847436193243838313725579244753114997818820621856266108158550214132944982189504139798672596186809411375623151845096717501274114388812704247558746757913273744018518075239225109333487032863515606530979394742854255908882648387664892240034162375848142469250691479127830131492465437054087078746640945245884309009419310080058762211435450906598786892769365778637355280116945040184454875168309611995429365344732487782356421709790212925819877544575150589599035080964048324204576477764178735955757961746417709793334245310229966001797576225397004117117213654608053459262826433520743336774224841523381319218702423002496285862513773949011897255706360267496518321276989731638132273828862811829424304499431949469034607712966706395960630805448872354128700932327677699584359420096594212954546173618120204119684174479241209262326043706779344744326212249454274924231389499615441604479213768105585496038703663275852305123518483492756348736521984248886013887290624175220569444760280321479004442459836454485831378245288972445608862027609854839291085929690780591490647837043841638849087453145209301844151619249705123322356328818602155251588759441950798573277945781958198485178062693807062075824283925069875404082402390542175202456666077782099605024615863422879865064787966556754271074309099495980461385938463899563696304246747388773111398769983870522652249752903909632990119394868722761547563482488031066406145721953434770589295422054021665908511290637911881015263082394848236107901854800401783562460490047439704946116840985566505578071529982489870432818897998041160935591227136022477991015757167074271998901927381208851206524070351654626929553173191056775006764037700479004957294373926025074503137966511531473354468656920146206115613380447776833248969594779929498565868857673401020981949204345431800865412645741269204048211958274415361238134744238178716982304580761816017991780089389081000462128131422442704852326226593584032786780267497900988463346190921546091468280941285554128531438408727871447083795029392934689753322911697280645911827072156397580545925714863075325548890942349516085320376867907848313960741382282925912186179697523123827835416855084384823603769833515786085043304988811670037211293947819587349930164612413117441731419641346342983486501950449715137077009587763424894865095127296564292071439012004557393269186903429832114854540518419056997615110368175164028408620339617922835883867870317703167566274262723645557416208668094341765432461857374675747240724553088118130372937836524206806562772337368499429162589835605257932774026424985329568521799062218307503662842539983143465141131351940684154880788837562185801199861027481846545696623304624373633473232516029671674526088628729039094410405879786029459727672354355915764283661851551031963448232442357134191631688153808718676399898942412783994071576460148286170602877250287314471995978110573414250134738096845175811382979317440078491370020002546786928394604290600735389053900046599058265184516616934444169459243456454182076423701311583801880231958820203781230439313792509196832513018494613517603487189393359111952191194177250905279897827246323356086070893159299233004615873007441369443977567327258440334919793192222221566531081579763113500487913477423659472650066366012859704615578204495674974085437039138792110001220375840280739044920147906481802329751001033205167290248182387925399294251884936348239093880068669115272472479679797414339374420223473344316839114976002514726536529738814884002894357458664804723507609356231831353778755754756138566030391446488130093525213460478864894207511985584467297242395406608651840039154416496288190725468673165107403429466687535664081868157787304495347002064528320542465325313060921733501276618406722200606593871104839654224535065948672566496563772364136781547564636785625248155932565885668624962610366347447947720292982887174483223217239532548586465291465209168999360154829511944457855097543865655847375170006553344993864776459939125860873200859328770834772275755072180901231404108394541899876270001435454243304132377409158281979647452214412336260146839398203171260959273701906204987246433746387529043883879103829962841987146329721452699635687501765727896591967380235344131153251061673135173982962145983485460957727980268779101896682724943245322740795414244098778488846529523762007954541673323160148836644073930965807315064337238854528014647702854104111843480755036022618453282992647394541416072543167662757713313883609129323705665676377263937935146969698942465890332688620185130097447353925245210299611875966684770405072867702000318487840734120123193179938993891764640528524270228021310634916588094053678943729357932830021441311030450282557129379480994939343801502754013197176174659322004800045756098151421319433497088868516376040721665878569925803481537050492202786850227384935026525985689307653144208059879752025365412025858169932615955010012161738257347924795722167180495751673391165614381748042938570978650095045724980533056308782760459729879250887980114446631614648945083951780645026907906612377948830804039795289385242404494048322467335909247647100124517236419186515235396907594445032023521029976552004596994446377185576102241272884579505875469256422926187944256535743047572317990335189684073279443382624704767533449380229067895388072156476563934941347383375355617262911836937279185450060815716418175127415707290701913992576054740489061634277031301570095722130578298069845962839103367846540621135873701542124910019740064632032241148764107219323665676870728699582151106220051346948699956435671225160200828857175177440743521928668965880577649567427550215892407965394780106933092637195838207461582315972389107614961332494000246684049430876882682676752508727078995557768379115040737069122502556991554412216351629286565884628354100448406599225597696421181784470682651195498618731506745461279339396483327259787053782674240065917505441730776353691671085408916840758298227119510652034240508582319409708504832543814111719352871421790471358819907129009869693043793889872488064279218441517946968324627232224330341070680911558479244590821467470598461823314576050591768548812956630352591508740792244846408521224889069129237995108887717129420381961273431006578485402921522152573615803744732271878251593735003628372499179342306018517857865614304449483830362269808220803743285836607129816489487290593382658436973516492860859604211085790525001314929691689042539842370675432278388133266559004258594267592774121615505630331542122245527780851505836815980091167413459366124533333273729514182236906353855229970072550006796309784623448625472602832846663688487875820075557019777943946296258806478724334063086738638532327205729207875249701725105770016395631799948793213905193801807234524607277725764135202953705917419190272933456315918557029734778033167582347294662265536343680677908681064520347376836667508293962850236706505788619911619028010884872145273194519054636279920044885984570214953054274020478057135059360772205070479024019053840155553487772722852957217001703775852916146292279465400708983943521158882634120485462073782564697971337697065042474848976644559368144548828171138351887904066868011502200547342223213599267306601186167302949094239448501463220291140337300109645519620491838226107024075343766180829351373676735614861021069291628605892101251131609170021764554586605190388168502198436138184337288040055965491580688981855717849740493755608515234555836359401641705927613878315878414101324539462607499914161032549166805292630218620550879636146271873911675898313808229013888661563590296342910123958261206145804722849732929507055352910947719901466556573634582497525163700610010864007044852292299315089880330161411562967180474250674212519569233695128565073934555189224933588309699433827861618078529799254106984627611377854755975964619108490486421707807094994102422363608800281688114797025958488517563133474083935203550895176201601587435227185333904652056084666149851077398006912082703363052138257200917880001917743877753922113859959427055849311241289442018056121512747897846540856104594572298995819759737779496759877624106757792922034360330978851507685295231250388612060979732292015011224332897373076784125166707525646296979031494530715034752634952249228132111240068789420556548723819450270186817762668595455713056439201412244267119171435032651523798922288083289497784038146530313415140317211991055642756017474223070618218801586922484650866912209080538408609379545858984065726007415424908435545495068528341366926958033417492621755687182580446758476928369827933928528034247471660961897420038124688730484800877044141253436484560671329573458812177342497745865535585202074096516592774901512803579509524524939497400862829064147102660267002834416847054948325953763928922610063352279477742989497867857339241654588172773553067976649945415410301322077547258205814126521714594349920766782101152065461711234891585103319356294354255085592369889379815547559189552352554565280035732906238142001263248746001985955424942589544421909024710816135571715565694613876280047109641400574896422095059875985626613558614512891714736414020499736179424978838786540367438361485348527851504635401962111114491176874639956858922351353371529586335600487430332016072232862171546426090010258098006047263749768745772270929927130147682417514809505088025065605457681108631569833328407248612451883405221432052099095034859974459185350348145065212675791717084731942701102727240748783397775110451291495049007781548350322562901883093271446946298455023496849892955180323016937925040863378776300689143804117612379280849354052108223367870589592178650027722600778378246485695377067498800004847635700202362225905151151895430385424000873157285536955870820498277002968216584486356887138525792820774291241419116854300860700976035784556883791158197490551313490543352097311230042469941196966349844843352831658039998256187070403242913314188367771192293288923990052631789247483316493368106865773530441486703862209818844687340700260304406253902384917740106920952847969064736082947356702572953215588919959175509218405962868584968804217197655673120664417834178724536803941461265056633493103603896502669084682477730198977875857928191376875095175617650563954776906589497615079375122773963893271624849962273147798001295778107331516131387859111291442801961290361582242152911768852270305870304732082641031541424633887214342867605773933630387121623586643200634249994570409285360593485641384190327532229860481633363995631480765553640004193166340094869282983722509419944595994795659610867214695827999058526672916352567176022205257869191833650473921567093781093792370635467794046133764867715038920592425484467008251796240198186367698768164590242698708296979609112733871144175225701586140080116493092059393686538623774225566365451964555727475030859311388366085067665216690191928293099268996529296940729538735492808338276196473747218287096255665341785523363187346813661565172060855614314769174780021870546156643214228709247773013657400567084016369295269501844592833657517061746184019083571189094916645809905354893000296102330385554341191200695408178330419717984278751975794096739298508697888156343506933896059796964138974960090464335861040833977720291489785672948939110576839481948245913844243760375573574508770421351314322601592348432288477629654449773101554795864059699689250688808033946212809312525855086983125445417897344204243235763132620065613531625292005584622573885977676045270068068856988976999427618885617041644388714571502159308233110235094701247370999235947031290596991294761867811567694630807719238761163016661510065471584731866790481112164076601534410474777582189969529750846039484658417478672422185295803003698957481462401341916638121766109041439334676495847927773084623601187498745161438562854788878427261999046246524747343084521207348539630206232002709754832327079715032085802910937809187862671810878116519217386337374776559985366059850312890314096011879441195107357574134140280117962411065512466207934497966072798624193877665328268405827266235254412277224806559797525925938705558449608659755343406989433130524483359189914362805750301662038177849194238387742941263308027641171812999158328876635238743431668270775525848599387870145471362659302601238203572062329520690090469208169916221709404181028148785403553830306661052307907743749726127439397360118412647986366460758633973202551207470844345137626452483326858922815900051768371072049141495983630303195526651988548062067603157551901600587943502702859263020966096841312475546332011713950360156606995653903514463327920805243283388012657109389640452647890370971899697879830506101614368363243785373454103300669541644838714189041918000957812366836448513627208444059289317467798580801677195906899695568710853038562353372323128998063936908600333817763507319655092739571714217355052644027318333463529891066953320029420823938197637347246191894169635903346421055175006362413136522781271243806861189602722478650172607236152098344923953833721288045045689755871258069272882511341877907869056126291038534132006671789469803177404491443803990424419029523157847089432165556953539150144177696076322963484319803976802401992152408503393089827226548336937097367370038967967137700440414197407492004820941181738288885138681979260801971632220768548594316530026360663441559625590196844319434861059762640376403093452032089768105612616113246780360180499798090569000937930430258990760903817472128692692832344393326525080989637380361114655518747746016815829752511648786766513255898531666084920973547581119981793860985118120113886880763776980589995321624465638672993653813161638632423955434247929769058193294758342913702612313993619872882835784592998303935721857986129308641685406081185184513639781720775792717635924036614479412072772284839607742369330119259665457222437706139012892784534556813154482262995122834551105438918016016313423973488287204892574954550418928753665983168293632974586652915708689213121817590850590997851068548602177602090433722420528477011663122859334877815729468580075669442317922409560434727019759418600935905190322469466592527747516875523049098046543989245333520698776043116804389510269171980476416220578403852401228891933682906394503125988317676724507448056411914941340846248360215901169672008766526354064896482220157334473419498616382470494268219683280423121966106186033141705730817253097488263404395279778877110768629489416286857405185282290626545422686885912235774347573310020976850680800209508541888913411431979451417784689632869874875975103148775408423528733094555857470873456322476678437397668741443643958550328724552932112506190511542592132738031815428368831291029303608363162829980234959386938120463920500175427321608916302104286464097425290686125676167570503355737224760659591580197622400120654977055561823701007229682505508788633794975669113119419848884975241196646880759484060532810504189838091358653179563001010942165130556483037045025711328289527663142664142632558644836105182818095728375711904551173322669581765292719726635239497302961564310787388126923556792947225259305251092220027929496783543037093264913448272964502307547875241313440792094216957494019744792087465175563305808531066487551352046905225993285099546604048430451432100478552354135422152175906555980209374457797751441139118263075763427839528264717081255671919965134162689002116287299919999344944248775255223605797209695641382665603090529562115227396263315158269892251521068970048805424010321494860788984905849805526488458111238943343738849234314132442412109782044130022116628751536514355342731417468252960821578961603942783750989327550004824383588764829700435188888427610544280196568286999707918563907808251947477505459836037620019623088978099853475122245811819268252829761495951116340163785985057680606595197738179717434606696484100617595806955964437014554403081198253323159784342808454749559053090713531574137823122915205385494487533704411863234935140572632230922606591163273643838295940997233355302782535468495688709275114469647311462120294852066570127193380281647228473605373946295255063325152395635654170196370376580843810111636648179141477666424504113067772811128686102083914394039248666669678558227104178552753452284771009151279367057824899354005712814266985853673536462942739288437191705285340811737177925006778051556936442857752302104598835596480832970496253362517257555217165070054235029906104999309601089450092655504264419919314202749294437057042797600273859719881282437152687424766587874531648427152631572537248405747324205201646030248473905015930953050699751818658111222902897720965555718480752324867577381410674844816512504382509196546485935540747087692543825914431500824484819639933064926469020739791984537737017373759199225213059743341346592508005242016728602226885891304134383150103830936451296421656172966527067524352239219102713941392983132318683689973537771653417192869596624414222600735245135403974103655356870289954638726353145309654756466418230851523058035672316625770305470183811808470574744570945624049776567513623365120660865982226611204686004484582708793323118775753467213867152873392979464117123013149254219092856506453172693110751250128676835091029854721070935538604274201095693405440515063927959696038525781477907673766105218231306021647929746404203352212707580772552330720062771593038162329148658275884770300493586523643016113959805379759501635045584052300608760643643527409180559334989886987860986889744796857534437347706743213636686024436097739499658650479601910900126799713899299252998013666505201617794254050831539609712149669681465802023024643356095756749742020059877232623488012918336889239711018015190962701331811833853819913339670493815136970051227813871783185044281848661588475759884384037715767983163312638675723396145001119301208467383910787684208386307219444611618652168442745827298265345168677727460561372044666874742873981458197620404505973215420099794161218891034824590173165672661925032913234870145019376104788181715862167474434500587556411330283230946932670416117141664831697550442733285402529034227594161889651334086761230915939817511647038235635159969487503880500853601978374885414106645314456494291787856673323644995263287988418608043434634895418249067900163779178089480174973588543402931756179321514483963112539140150733423975764569628939080575682464214854271466404640410154562626590876037645726690153329756130109973107829302137042251725120298809784748948848836229542154194160840815709254384877357892766823122586288385560203231786301554613047209207076552324531343969903245781769468729427901304032768567052460353346484386471877064751046008600318075774602972062616712315085800696135684651841971569920707794905407750689209712774238769868423437423698735550613990352661614217011193348231539124163564370217943949197646998250264745596101983212983898798646051708972031228907146943130422598131847393325154451528626558694850267907437098155519405442083738975289408297835178911742412445338498619181484181217007797097901201868874490897694638597357227487704933113650894513309956270186550933252390722961304867403210334153666677921165286109550896653624423612196710503680073808032846433762603450698816176457239867619775031495113738342863920767161434950511323524189209043421044316110696210193873477425051809018009756537098918341311305569616589546167638860014581052770078578329925442141459611784559261886829175122265206365457401893375130071453561131593702100713920267611686640719309702735275627822281846296121211383587180339474963608944123870267897577529182899077450392240722261587266759876260421920282699538698790888807818155787605696642088766104551015039862074434282839102851955461435504735262937405578403460423739396159001689216533582231595260742149922293078119731603401317846154989224110865197592448855530513830001222733280991817817352714446021660131872068822894014072658502680176962669512076444737029072371267513216535417203954908515536586770498185796294532407397300989554045743391125893769684244385923216326452454696351219575641624935103243964185921891170632928104002307952373989908414283714987774557221314720061598423260451132204966427263525221441960241940508136550963446442640064089965629871915943589329517414211982416332133970484566026155865749001898015099792781316700135833166479657710685039590175654364399012359819367226808607382574028988512792048807999202434429970604562209794999225138936335230060372575270693549895641828423726236959576700961753293364440981741143268353753014406265877122025303722387485664823481042293367858687549197376423385735021370472242548165406432287564461510536409242498594800741083403206317486960943830976708988991546870581017696595433466220039885619547781628472703674363152974835986173462974660258825028349049351061983884557159819249290603344223434059504651484450926236650249728031627955794386776504358116168371631681989924340322277038076460965262598821386846631798885675012141044364433463274051060472048998608639317168756949256625671894960518027535110316324065520383368758850583268022179834234288352707695466388784415555214724214904083732508894912890585500417124528026618776667620653063915947543057751121599390503566873206614063944212798441936005658573652714582094313178920974335261700434563411537935469472679116537663109304696302189168110386799240978939268556029845238368259297854834595126415054607719250247530514308654476017172913437382701600126091214825401356455750405225782271289985478076773422926912140205154948530374372170433261921501322695163269812760040426282750234504864912372873591120805781463789513646274869736185871622132087233038094452427941685261907545560717239974316967430027680382274316065381543871696968575804267539720263896310567526519784040831630604673623443717271082827097352765225367217899324722954248081096985452349026281812486445207500790379560144465659420764231088977637543494130772668359751492900145637467952410455074461132862967665745849645012501073576128839374536959423267934567130632680650327582709872103405102128316731790240832016670312832867084524277785517340946760999763915931966960546410189040410470746729802460677290283813081533552784240468340874998159408777898145840502253616881335026395174424461990111757752259608597465141392860673241597839463563013732957610425891206495496434727891876557452497464385660136613929461260549502490818887953212545699735424403111588033041272889460493334721186177295475552446681264738599505191670629535983562789523116602652942658811145174000069276621244763484075660202439732931302818145222542343727966614848184848903762404260000433085093662773226587908851841168304370939470454279595087349582053304016781882687011563916867427537999813824114900565178061108749983506115551589079143970110424495448529390767531484766294897065215539328032242512044673588775043671419127403159109598818302344985119684475055283763527215820769906438105801467024989413681328943691056705468087023162353167079299885367609528509101650048098513304331429938002248448700108240196073939709302493879780563730381836264080510296223426509702213964294154831928089090440441171409498954223370730183678322384837429582394009487696003881224182294795216550851895173356270043294143819193700113748593038903313364780718969199214421264824825296849301910270017114104271536413457830542556683528798299729238179266113308361916079284834140642683586037838978877526256196837636166820380126448986378394136014319551138933307783034230990633242467200350625567365388065200186482779672858333277413175968029494682677913923673233333038301088231376600160604306026113633738283602367736379768248307875676067579755328441826391726187476006771541069013622449923212873546188145232487638005698492576434396725811950114584441802254766204158949242817584627237424295508708000386309837420771834243180037654767676839377171161625350673048284786776469223526431290047850985686546537132484338805452805974369835971843968179282470324259208202597895032995443591900380814875830358903852033575674103324188071484404593406274247589387312595001312717680327990774120733400635977321280365324113835066974092016273498547897308267082809594319172261895864716137389317682675314802383001030570241809180527362837736847712593300692289907459126294372983866952689013355449267863718083427963794416389090577041037147724133707509085052923477782594263146294904776382676691725777467380181742661909595185823095261286322659921039467315831850268282561857939022593868431137454052425337529165273330132836252439171706053576523408644472833562339242910453986632028904038401465838090665060566150588055000980419110447024038136686592820585628329842620803258851519284504426751010554236110057614286480367792617571058786917523027567585669779544486395833177511536752981542212045556585659423355680085468544753641394107476033831105426461846511770312307774231864078073718264940106096976844247724200537864628970991669126334632887338116506970439211717575442894031840247935964790880340558499668625207078559346972863147009733001601227313663107168063737316091229363841961428854256233795092304115116105377999559649182974269962958220451927491683207584248664862038463924652498849313848033226794724039281246511075626209073882252136199695543833476203741923699602294701023669927898248319912172320817353413718343344756196155258317696203446760194216804478724255310645164057181575142741443524189394892159560326022419830608199300259611037946788129169716470551372924081655923199047917611506947109953125604060353207273390995052047328114417860400997370354116754661629895139879369389838862860379962950085697748262166359512316478038711789312794988704201365541734613632692336027381051266968262977453391903284013442406879387920492237143964437832822686880078612280443615102150339066767459084581569714565562658225520110529499688619880149950975734580240035533724540415024340938470089385898980218513162522503522909346862310567230407381807751731406050328850602583945113320539684620643296193183553582026442428549108566843654392253433142185505743983238079539925448378837291991793668586252904433696975522679909689822472555699744136309981193981915658410977057049678207142837868857305964916609791456456668125201801019707795454814130588001479453020148552615428821841957534395165426049554785468685834394220944246181635566796953587219494440293293633876776041325014470820614574455135403012785767280119316449861754192292237791372526715696206335764646634631585479664816236823169437158120387316530211285745609899614764687467918810535536939372646539441056958406081179258980413633140876875016008229620154826985961902137760604435818592077384084164953732815454324795756883398693103896947505760216536042262811295787529032107316189119610987739088364011470229935456240807043305072562654441562144957955884783747817170401728185290799571336931302183552424937260535962604491531356132673576600863691489275770206216693295778283855087554506258274118875798748550855940911352451243838325549161593539786249783709851404350081402689770751348429295998798002416620514493490983413857824987081119477512202329074836377371112967439639595103773066456985394026319945804947553837910964465884189462496158408989371209445667522159485531492772563003730933155900116756475277878059351300287338504226664412108449211936959245699447054462127347558010753775299878533420787706558715154445396693011585719672181324684004722265931803732338053117390790644859949979195998119429678279810701906155203900337644374874739752421287051010131068504344529481551616178962733622279931903393882222917742907888995409060929719336665112269585026267360959553522428134988507195224294791391840740490131631592721085196535267272460188409618786380704040236124681232959261673365044010121636559224149019257923732508718748943430678961945589787519712445306733236634850601707388434406842302203538437168970494397455058014626124146208013904407457702861636028533825209110238177159771451201446934217916122935139057646745412497836154436078183858907873029787080226662991028582402765517169438340275995185932949554279523350986003458834318765595170378482804151960127587164040651106772184369755968341682901070383949952128116805552837243821281289101410103811856195047971082240452890116839608583889111907911918247725986258691864790773002503017302673538219841514124334482051059813278666485158900900097927103077002000832884926939054991813042953797288415188677117300108509817781978446951180258201485250506301739640572094683550054424546304240789479327291919368260833300301716416035318028322432916486230805532744955927168172065357597930873807016101111829632430407016525425251243263947897376884820782550555752668388051495241964788966849179812209456510499189388220824108641588350751333985205863746886486612065132760119899622021060831804750471280449850196303905579148276249464758746723565302153158949366582006068243263662528895696502854675094052961003752394993366617991629709292841339799786116849727482209542641395395031566052816788749811582189409271156067404565634660838346298715417868112690015162759630149588445329879882499718827478656526369522465176244235595788295903910277345673692573627251078792231231720775879657896407596172741390543475764917020710436461783672204436459403483761607895322259236634441157937264239960184080537301233849151212941841772497182548292134683927381867773300883415916460520223016525158863151073492477691898482767983631926300203793868444954309520655465275878265906933513174615551816839804417372081775053017382575733570525309643959362052461285247019391674864721771107138507838657861991175914603755639230765028556551070919266360217188763526860725297155766292353504690235520474141245353259680982305917256928824954340398495535522132071410340226972068899084860935295334329334218929937052946071827768228724912986770815519329623851222693672722117609974688738173727187658056388555602058720413949783387398629507568250022817691285963690198838099032193079591987596502301098348743862261498286532026908470192916962795677664352317157118713705511217482020910376897828159694035834450125583390226155933230010470184300219368133524498920029188259754349052225391408826953508198669516364450851062586339279431180139469659091924503691197232070761367466403134450657415016181726793538572773063051522404728499997111297084088704005065344224862493131899971930066401744757617157173728619475210893047161446815785485419954733782496034633368720871777292934197883850311995673057424630091983552231156296092896191888508491483220052707742991939229836182297686069660201498934446745188426549235984307016781071694084392476189508213232855931339466522318979542100131472776165687869078264196695529995350078008157028562392232807321954506733237498981419295768637782134158779392568488376265138586176712780259210461273111826936461260433380488187196972750264232934728670742427846398059574154652745804100203462359023513130432494576941612527053151328303898177957104377106626777930837680112218881375324050956366967053174157239938641162425565683060705159909176975087079539566624614241652772832938720795238103266069447575809787960309175870262888090698638328833373439323687968397457048271980510213379198553761116830835969888025157132372870385359765473547748890256856268744913176368624572800949524199730415839991750565072438257350197013617320381349570351702082150304304711918863752625577172947332605192559098779696663352741202474837012311258658242684703654587517492709583454342858921467324518888193993389520512274721360236256084311123155085914854013971032943975959349757360327971677830013797229034878995394034715916408393768821936170254698767630092442308304570744597909144762769291228946555866711901047827460760074284341622387588933345994167459318682219448699150133918364943438493341484768498988165987352772765958996215407783748653242546037569516370797984826453149597820277971040387480432172854984033202153064992298943141188924936153975960381997495518936853030346925831608248756298637626251158929796147742649367376408005947339830291971271094403624437963073048437157341444425188723149669890680053776616430368971056438594150802740702543299001850795758676854099662521960949638710461489142066808853982802750053151790004940208761617200920040188296575493719290100837708124942092123587221302935196321550375509461222627128156920326022926236279706581994995364363717491749007048969165400617706422797025696829007305380352547248404114762702638908226001958176618816583007741836496859574537620724946493754055427593010402823927379713144012781352369737730303014155273993901652894660544279115194143945327449862174417482402678141583291099101436893572398678738357999999717226238733634785993780165665997819115266891741618471446199394979367563251147324552877027336016186481049144619017273241541629867832373341365578109006072923396010776470099959692764752083687086168676452155584469211758178376215035187335020402606903309555569386361982783492483183443370023300194101632537065148151146698691877053289214906886625860872581986830968948006202612567900839460402051686655633535045329790969065273284118642965349528269111250791126601030770532685917330356035603088179551698113689243691172450503572890964654669503970059205553789605919873088824956359646802789300712860984838153779620608859992669124930932357884489574030638340627900266298512992720838544471730780213138697165384168738887654955494514296392909630838501130224477854337794664226517664268794099860959181869626813105902767282157916730472642733939682929937786560170732317847892225847687729919865897367168390106645589475304277885889663347761256197221379650820078578433112994498216115767423404227789053934540933510698979738516276824986033889827019349748901580867195066484484012533395791526772368606591531407353290909845477173861500174054935732384394550373607436420010870393388914172431009731242845391550668132439513749342942527112658513251404057254345189153724340508952247727792406412538549180917409016363150888369260093579597632583846092607295921151236613005583158179865988418174576919119538594390853592230303773542750260998937558738320278245615335694387560628637448172069888957134508377022209175399970623180255639098031012300603685952439738987795758999989222631151475427103747599423163835838877047592392560267518982950971974377809907093084292278030964216029212754260156518596203161662241723579843948094054775304275753129284105148483094680567837718337095837252921351552517942837120143781355332931206795726858836885356375044703298028262403335922365504098566325699640067436090819677442308809218488800251819538356403401090943989042392222630001714162439669012221383241979045144715875692800199710852656486047483380473139552550681163672412762757338580751983653837178843441976593611865183276759310697375492701698553196823712103327051155018138675014980702511011626592947336294495507336489364503451465978122759053192093796180594364599540939417811914665164626546405049403267567281114373285074077102720343687085876147750242481343912678232829581495448680851328766802018248553334661482573899779418416982417734497784159621883192873474547328727715300286431828501537248145773504303070915872137495586346028559077359960306202925558394749316376671957762182288336403641803323085460210914657459090571839562338953974562614453773657798590137324519861806916675077738084357712538019441582265895390364093680369806270516823479069324666080576049967701211702091011482031603198935891109116777148933741741153720009553005905057069201320226200384131810069680223506351242229315575644753361707418968673713012090050614000800227644952222288234064963329021012253778611365961007644903757692056345368857947604180076226691934868580364124773608694766131268460546036257894183997659446598440629599761672883632437915359074990296629708122027142403137522762231553352882747253016660498683294283103459175255517710354591320253311728045206768579000356537002736407437983829245851489327914315396773296881198054137893928404186690067900001551831702449152340683548293876703315384688549712000912656185213793490652176026346847342819977407124296045575742006000053586971767840232696643437152504139083377055296558729204770127938341461751964979990903313803324736015516606819335809372268393348858810108778987001233119195154223827500180281056709321066938924688192246545492364647974275470731885866790185991140834414838254776471244369505517306274401877471821854910403122005875708606225231006615511719568492016525867602990637708242149837695258606390487638444691074071704656705126460492672050715657124088434703265470451258390861067296241844823321603372873090276648731946674367822448259312223040450419721729013462812221174359354467893220198677532129937849843116943557512012180552264838976826157039861570286771276206848979398955950437723998233720159661627089925156963725364087705700658173536778075047122626075479942281527164597391160599541900843509732414298606112776364456987868172698781201657453402711631199592421919321749170683102409590405742464236202775121562713618417271787286960876811951878684908316929133028166781792513048420168851116809516414732539742295691604242870832466270818791828161727985898270249653989795627075792587350055856943613359482255506441618952976231329325692134583748957347474858080933703325821494387200491474409352015269836102474878487339230763042738287272788964011448016502391852887393352623040660527975526367329666594689624956808883592761908007748734515655631317215337910626871129506578445134560785926118198516320744284555342701035621530910149589833807233566164197499718871136957999756039065106038688916724749401838727302807997407857832762001265537522868781956395324597287962779247562823533221816326176910826438459088079512546831977475637425103382899629227950793718623826011872772752260388687287877617031824827885981547895048883560344780423294804170390879014369982642202021834316429725541154337721431275254134289296215149319402475550453194124914673960284943465079486097972276499337480580469117816518772012709146119830649698277738513119651646574684205283564340665868066448372948770599352126242082775675517101870310496692264066226308732255030640236387392580827157647456916256863854688445188296341632422575606494741338154721176565066395744182890926791975101377582066982253186957271842681500990366558162310205887060678915856664081205782558962448012689828035801573125510463018183752084464266047586201878467680792270356377334192124192821179489280310246501977194810200314299465299043823689184539894245990608005835659476559937280553477021687988325927917167487919702825894237981291777810403227372860395777893539287839739170272809638376544892274129368399641195022629202781889413983747514812652929127679125706944732631762147279967666362277379978925909770460796512103327106014642232114426592544175055224556526175213488198979693790353219082981434192643490572444302002338766726049067956871911380959490248103292255651700357236890759562304384118001312423729630834828279473987835347917859147477986284706220926710745955031769575278443651092705756208693582793844525909377995523128263051184404371404670100314663182752174885335837178574302414298821964312912027849654217874096022066672216026872559249657486407003058428375488894666692438352787521181594487596151232562080313970356986844538079707213073442664688182824584682706305060356667366196796184561003825350937490890036465922032266062849286958707236513834709752558421543426234311399527338831134475969554055089872210216258384472240561739350815857140689465587338761310961952628563507226572693694296607583037236993009588143900748983955655050569952144357206101419825869847625629942195932964973852382678763243850455375661032735701560192193512783282870815360377091527043795313727850911828992117367853111343241606729029574179534059148996354067136095873344724590930591707123057923207214575263320072904007111247927513777334368349755592760309223716137176961425306071211526738475771970609100516416550557288837004767409625359749182209130893619751476136759823068733074029387450147366974475707480282844989494943913805088556029593221247983510813571521150477977264371613772165543291966924226426299609707410068178002408800415377244478548800074816281352539394977908850308351688221780666247652582118250199181119183546943435751224627926935177961568678678932967033227059923989081940815448672992509985664417670603316877907829760598785504628580276779212541863443913053702185880452316528075388030469166062096953467137039562726349200748472943132806111172419281547933606735869602846544970691173428904346770152498006774127445875966365069472745351427658571402579185079438008290021592751262197474219265371348835188823913029072041690259629695029525635744121405988378148950948000567713366625724644081213176232471316428177185125315484732284947868555531121591209365280376426121104720972294669257047483923651924835858733430162692496669724277124299305154571074575138989376488066508929777454862144223214545608437852354843678534067452131631038489071678809947736901519484856374728311228068387411168310293843598035066473136259804395492979574281018335693469917452688621987168952418661465998575784670192488701748575702505680259265752066285494759783344650499354322409022330043633952182430647428109458191730949860805341230261156861977723652659375477865752279333995751516281166527375798055014610106707662051827553240242495778439842182328410898233071069867420661686479629490772553663071357287732510784536931392175346923700934832166614747706657560128630820042073675598331380773481237542878945414933321816692119063740957912278316538143264688609044660727454477572470031055619687736264439560403019878222039318954721747116573163379227520673867833378957169399155686895680704173010546371643081703554459272609474745935610066680931744535351662529733263754469686055634782600089391785097916393420216111438068596338011535487361903198490127470008498397449458144664844837159170712604586813704006349808480780229672480857382965029024899784417418189378814490322717163915368994585274160983813676478941864209691760790350065736780666104865371028803546116590389685206480628575915689224239952652259230154620854322013382171718948198837304686714484833319687111969934011432655415708209523519063185071356188596849299655008764856909694258656336199515820727959957994191773477438814700876052742070491109673900402779161721633024143083111045313084125941025061866182671336999488557788577891582367499617937483876089629529998263930512167801405699616472719573687974511757256113412765037746364190698497929921491523981374627072388992740709733941456294019589807071311454028329803239017597527018359399727886239976108587482813937220926531313857413123356926225957463016383879571347670646864965267346524162655045586394367469264564289265269224148944733735059140165035118608903924739308458402210357307788928566442137299587193303628187758569070557860156972516717880217751391689637671493707427723271501538867002436811062158229215870227116747232240754238553381111677996272951650793609665521135248854370708674410071903271402773813273571468220179998594070661718772301876306219496742545203416167853704247910939780926398724389611694264871994934228951928009610107687925311098529959270814172645598396600835545439190747693901107124797191870702633326926773242226171622615477865011268298906075184189646953358384279982918964261969643279406465793433467731580049168644112500170649736413855135550192362262900024394623983816753369050218372392363167931380848238945201256919770051419631567361893386060933149692529341788341623500307715201119731604825896868252161670412570107351353525645445742117855331660510148897640105757339723348137088434257678982934789907758569284096982862815716492022315477876693559117894352934233453098361953111625973659297720845048763007913211733445976707909089397135123371184768503102264938739371285016828177483598737156637676181915228794242351997100831189878647131713240407523737080041229797095587444030664983018377950355160227271463965582450177152853788790974899759004447859801461387356486314562087580641032516096657274452906772215005413702214095122269925763841198277607771179296393807843974165802372066608831821257351266292505189984616955492596042901060219650411685450740331243078514487767511487059685894306168888066357874770121661372710348685203763430567125560356938497511261323991408937913392027979350755285669000289296436390692218457970009516750832709306332576278998119011994746569782398823815686563077407082973164146171491888462143878679730053998014825980210809754149492044081767745115516577241892032109859451993722092130805020546587869221685055576416086754328813337370680663201414735250912337473959389508546640221798165253088423167461304798496502845810002843932497932249866150510680094301870160128052933491646413951556131284838163214706377419525815746040810933484671288348194090665756027570151425454831514236674236648917455679597150664224422918423657070414439011987097148661293226265989710557236761218030166011309234392736448233462051257704171076886771773721125513893801208838531748537095463882433536916587347997702565969111107795917398127524394311932512554510981243271081849877398443544183197103400856201382925607079888844131619622039685738466854301278631414128414503670836057335574125942582238066459245056559328246844801420768279787477233101144743423241178959051333713656004862659265380461039650695289136406501060340263479745733330359815686756327334308356515122077255950474081614045474109904044458630762852782101048237140160466032959345226439995526763233108255229847574089267108407182104039493714754573192368614003973770010595614576864753557876294562713972128457912527294699343518156476672235734362909639573845164424016485956889194001959322286096447264071971138599053937593997206235909316624199528927393228977886004330320633995645621441925654240205384885996070262151337827577365086343004326491908141615291351633913106049972702794088638241250131371746089068441470081233736089276563801314667018471065891343321665336222743218720260379534813790907421587274597203012419886055389531344847681978469196584046521157891290889825519936349305931560330644425452144461296677487525432058718414857065879593503823619569210832553055738661418560262417410966442495183220681673960177745212559522068143301728318704469691610660886077654554153251027007598285197546583950268593707799478199127888019713178548900706411495528518285281711606786355617626235048248132187444881672287031828313099564910335973074160140818024951765218709152204657361988225415329492581345922802604607447409422263040994833976919397724294773987339648639556299811946533694475562876735643025699692242724336174986951818686919502604248910510226389769423386187497190608471809737553844567787502942781378174093436068195033227668811740853218370864842833143781482041656662949578487849967788165681161632320530295022750100094424449224801399555406031068145154809131381840466898119413371355901272923791617745224584634536384823116934565802379772114380770220418201349120446731058467989034364906508705136904602791659418589102130323414157712548173975506396243429710048407588137026406143731144938466786877566423227251412747389670637069058040601728462221709296018223132193084074636895451362346059225846065252335683434821749376117621669207571773785475070706234727052416452247674687111815998916463337847870545398083135660014273377756252061577269096253056944201209739635038598799881064369353029304386799387773052446236910257393702858315654255922040021382325724851195746787686158168928345935667355243490007779483924831042921904661920624619359227099148397362493608480240154421661281139992346555476143697727229922928608807173691426219653509026678790950622856348143224746859957730298383273056916957138469200959474250842240030379435712594267380397737257732905244308052540998336030930230710574374437505857031184332548575883547780373169930333223856321710567640462940917082574657413548160319194363297895745860669004696246104871643071586992530554249343875202694542980614078432933242892249216381157245163642236385735189537745266250124554948136528127950597312429274145746023574878205355223664703765302390233673815121346383945888682411697659268465657563325025995533700644295239490136154304944172964678127132107767903019524094842301508197216832171623167642054292169406257507741826790477332195802292061362591072028057526294597838037302848636356403693189002924442077410259664775566153022796363512362198864320864461288269819827188573747265779394388282569687189710151667913565615955598991032116062419196876194169093972174419265826472570437980117111829915339525062163918430599435021375128967542987109509243850764040105217737372954832027617620647309040010343350535158896480104109437064778262750917300393757094873747794339304235461772465219091351643459716085724948059827709299780398335330645548127642819893174862289425344479534237228323085007220098873387503678704913866910701642273120971573188438261322230773149512836704551930980649033119321331700790661129037787505973034735697404646362199880404500119661543422167735022885439435775105118495649511426326298331199140954137446182935649125219662038253803075013540855262947436396370719040207228644458572866914487889400698987221614492325081604035927789052631471032747892330445461765586280529199297567827513694918254129051331504120598101226314990649452366745298420836796054579203807658843018970490823014853065989455124683783229258825571751326608866642412969418676024130529503981620461087953348291237794357216294223202736129858695664961034142472447280835242920311307493086065551949478498594426961089716874188432199795306175140154112781470585550630665754598455722390507681900643928191617678506257613007982821399925002135276967100505773358304513287413222289707814447162408902519558999709460370007713436480758479991115382273648757185810963361149810396062169791082440749129903497953092866410170989733558571163914931071818958795878807010868520414090892845363975549923203854855569920503904735684843177896990187622299292097335988472074220139450660766682302795355393728981408054523272631259521121138265460801488296850257980170361233013205094690525296005352065521838910971546962408135830540900542321613637316945779289374154643909030206854763139936123529352575284655016141159966730315810486280698650921930881531522496530156769596511851198895187968882591329225444166717703124818635214649969462221762080201141274769864437303620813582020158875590715409514977455944013927489392823100966715312832895190409578661024220870356016451565118789330781295431884770970875261397132165415190459892577739600463600142243285129321215164395197502258785539074750018057478629838540419826646940752837137887048804312900242076723690955368639841789138167299772742186524979718438398657145559409905021042351718423838507359247834148173647607277306963072848364804126774505960763170814436083030263645465518764838002578264802342285772242023836501800805511496619430654524303471438485456314912908305057929308370568229115165736808271455785075674045879110028617422913042907882314267510497377872641519947166943858738651940927712148934233235906324670990142283841078320247292137376986341470600045799414191647098215757971379781947350951729877113788192757526491552724244614426851168413960001001900261427887446547496852584763746984549310744413406117573231040102767979328060699601552911410608322888657208381511565497561107977088323283410653799489160438723060470529706927240692379333504853571462225599302789372830070340741032601310677281548563102826867622204886375244685403251800878637086873780120193407540544041880426663275532062801396556433916100085004145429096740591443189413854531632203702387432087472101766547647554283918746069063722450571781647849969662316557011727991418138313237596484202008418340471848911045292951624700454432702160673621214360710764944360954634689734863675467608806941915040798483459090363471309296750105060957293343861172189961495839175164541366364352765559159204938625153639397944601958753826105717679380587681701381997768267483424031365934123765054039201049394553537839298181887648132356165042152843143996177895529311625934324596813746169221949366420628380901099266479362991051940671838615488280920549508679247583209169048031757029292410360273985139276679528720342406068078639174039226055961108939408948968647708776473372258945203115921233109695564143160728313642548138865585781264915515635613200214406875553095467128292200167550016674114527027986099483383345695402127444381609417381218327453343945274173999314856923579189118993645919190591876169192841978396054780962683982425586913567620416167788875234012025966923493391603595126217170947649313777451638911426066510636397982059270545333320236520319385510745923898929876813583018843843870962967385419681106366630704199097095368749580834845998378810297027630149750201922465341374147084453741393787881817017187026303405077977685004444957230444283429026509502216705063143225987537509434120785282746425091577726223698844469223022592995780880639196713163033460519731973442456698307517672177338993144530332279489041066311018057496052787730209346570715771763115519263573436955844436593513268328164853372735996709755571063727534551937131780150929211261038368387980331667048551687796914326359794334988621198250979884763992649460588968931885517701818130886885805223450188481668926302951512717353584441764824048980748345626834176467755245615927227642183877006281940625357790180259389410869956147600368253498922389743101781057593507981560606262333992461168083709256036073592400544949950049226539069303754916868304950045542700554385706814615532275847962029384605172419396183664658739623183759174503458073623519033262952632576758746107349465249912675240344079248173827830964287054035937047924523318342601546145435698377064509058290420871756508228208118206044941577538627484536951232270802779774771154525745840302749156684477908032047352144575565510527295658623535247377491357257818028990860236331079940217243737945935537808047988737518920719599970879065137816318944809960316968886320451454611484802971085968533237418866726881061454164704174405333065228151755656385500410704584814026013913748756154510576362775822436248402237264786781087089670054759478058147811893825052290918111662473260072947677072756045458854443400659373655547260003012112097688108494038002660056246883283238089116044093398801467387967125770142578534134191387237055835823893646799112265034615792536145473337959150572818265381612019081485037556490200701409518293451283482818925589675873616164520851915782353648671244196160505674317391751141909158060131577271278173943975330362987996372555701405740126534131273377647310793359216495938960289702829951484212866028472374150893579372800643183019555541543046383279459137941714045720346245893454058603561723465077763783973245292761677429052929412926350070389256683226894372345305947066812846727879526433193373291472170866366704865496816879434975159776222455426706411019793739849345338102464349880199250048400264854535392223703840823399790311122886382205295941819604012622450580121385501283323279590591478498318018535554712919729536779420584221276348477596624684045154265948728099455464899784759437252955983813791271736106521811372555624158676107491083511815190966612422496271358946586858570245081464064070584873615323029916166580814754160207927672734968453701585694036269254597501744033357412926028045947014580871212508789476728068871149607128533616729217948364528759944713689306696960255586977710950193561964678731764980425906032990822049574709741795189410096228803694465253387738016080766436758916834430563482600390845400594072061919931673867733825422367720073447539798451943319222557431228289333211193214677974245024897503825881580935770147315542267875845240057657965210714790194664830402653880167364708525285936134982765532127689664045425396640042542207803328313400999987810698595101549266570122009618034574364181971270501032228499209900561329852151184197370034447692802015231512024805165070583872355312857357866806420446046504244225942048492014640639549205161591786606374264773002249365237498256678821472959644587568110560705381155383188596995298551547578692625171403113309347772964751816616033637135653383884898023830502239303893245504367740483363025632089623479769333040376534007320459235806955521354239352884449806112240100296433099284577167722885537696557424144413665842550301824255039210067442232082837209689911083176439080052639665905802569376343102712274875271257427978981249926501756117012703811053739148616152421546961015173553153210990730750387217381006252044648614160467226876694989055778985362970485960878825874723154336856460199400536947627081406352804554390953276276737460889393403743162429997102515830593589454211044793963092105283073111233075425797786443192658816726876862144454429167677208906230070729625108376487292253459216938284493163293346328237729578729830346469020333799408552860470027796281168078087005357297088851270801805495017398357478047385400636091571144113759238083837661121304093747852402890971675734471909052619773530886881499048540783712390124380492592374426984260956137127121096104118378229677012801128317218173698927325854894849098398552396392440653442530804716829341110414086860626749078153033183878579923887955857694113519336917799547286386122129862202410422755317640168438381532634745664357419682644042981631018583633451584321336947745199530025536259957191053745190632326877482108272743298324009094439995949420815237172086823394192703730157215047396682159828488708806481598887529383424063847419452361820094566425032514077341749595419194586711006470442161101559638797349207661247528342748900600280157468011345123751475107886251786798691888656191266178467182016261318148166229027259099622834434742167308234826614381979467488177621155796325021682800325651350941906473939500625420514502011754338563703593200074066050977867181790979961439904435819543858438884933896611699347163270690295757228846690329605741580654337729856730740249848855632608370932578721273174501418136940777338010094921943461001083099138872686690423219233596946202249855428116300718773139288873610081446354449671627765541186312796187135852100222639755003479922800607492237453650819881201220195725803279992592840546522951414302835728545527318413923151174967381183094243742791992541901750357793593966975612452923321839220380021599751511490103922282441802249678507065273577312145642435871626665003540297281717236041256042489227891684067028370110022529087757225446600275483780508568792552833538121618229413109663787646221006351224419709770146445106876113381526192115283852698408782321125983170269160142792357948331338456612359698140202332856905955149235042912707531098079706709095538262900823805523929070396775559650096156279989759863371092235138349451845833701760633628819108304302556572322888082414516019911726408216063804730890344827480118889499766630359759431083238737721322667884551327323221084619613449021030406632673091053953735435366302170839259223438178854520765876227523500779917779177698531975868215870549759462840638581884989271838485966397313207874937189433495921766953060597403603599607888708525482663083460729739340536632630263315127304282350047882705163103131654541518958244410234124081011733828070070853724291791329857970956835450374586916661706540816468538079083964457411017623814596271286570879473808837448255098488398883378758864743432975192282535510482389785639354542248667119879941456767813302690962221023206857682195165354616169029500620512848262376183896135830323594634387877099404712746443773615972059101512326997632077673080633107450435975023670893784464551994476855884270801839951926494783292462635540294425380818239088646715598723517749256203353426553153917711625279197134684797735063385030857349440017610159137628758582156054846074986704358690509362388373325337834799784215126391335761600964497246211851962302738110080800358819932978278380478645078807380792807425664773408632257735432439961779217781872220093971744141109482317404009696983658633822490265577172826477668687981998328737380035483810452478835865345908760157887084960211176610862019830739288760831640424535301612957080034610953395555453389287763630459565599273048288742117036500487910013843842044674799774720990972225656093366259005973341499749045338395608813120805534142094863997362896666838183198724183184332696387011168564466029738170625117890000574514120784333441820178814207668356833820817881632800852621118462274170800515033215662443385250375131021268151590236740964763423777303583077063074298566061397845836514473301629686631654688557908647166210915941466130867610893972384094557168434884798131734852434521268349625568108896245793494603248438039183690860311700200337864050089898932104731305430451334041245048842375486798632999050288887619424815027415204660802598899377175959434727016752832621781909502805867416585509935314360702645917502603694212785868762998066046183148101419299334653526480731324656846638322888840079013701909503250769284418542459114164843574200929882932547013478946585887755843631016258399649526834009477054066309342154708247157239737276616356657372156939155814779563203682681761396454923273199017188205935350688019795100631377004419078302642324440314189370383253816000677770716296426192378946827171120964969982072862660345116636884817819377501381408999042238310321590317999518899216959119925702680410037413339433590599039930776186506642102558377416114891012381515560945935573912660702739908331906024044035821859303357792429922153201880194551127337912102827254446812602904184323104110529996402471356615148784096573873071660717453731370422183618886235495957983154756090899508367370915606155054108011100901347003799883181841738221040426645209859448318560876433236509582526565916549424126540136517503163397175682546514932476055422014253751612583878764065958367981835751152246604027825622527177256570855984073197836922212339785064090690767019304931950084773943104159659191048485724358685591364315675513244655902138353016351812239249365070360667139577513784457683563784791692577425711171941621933725521020403129085020343296990472703312310843816869390839300131677308341201395230549687806001074040090382598810937647965443887580131131098807048554405022797094285738171429717513301452050540422347990549234419923119015633706496538941602752847634510283509033629985431511042933386610171164209187000031684695411187202073000923549392845762729199368913824490807988323055103606791401849888935630088938888798406965519582110353138299368098590260872046319477750309127931443967005413000179758513110064733929442373891304459834821613760614685794964406758910196029746475047150343484080207577021146475470461775119341481854433727910843446582932863386134129258477074678558510920420467681509006796286923296116984083431126567375632634776607226205248081514242050622182703254972068059125019106423621681081081280144015832555140883935025956632131282505461662873572743888041872847421307043635528048343520082717343162963103433772999870608247575825683784505352944822628262314704705802918113589677695811386620224381492092211633113635969105752926288795980552049346020082118783534753129510794622856699037475465689963421410225845780099956576855852842054275827842685085906465115419291324189397257829137485061892691163239717596693582480087072025916900898493338685931015248306710419301560402924145701793573267847560480403725057224607679918790388836337854329021522986243611527094322521918894998083545350143691632241765821217136754905358056064723613184684207058005803647860681943827490961715458103021826298653355886304457434681852278069431825625869502704285278364275806380715738408455987488906090757696500259473357206285215490214733450592861894141966215034881639066249072884108471277604796929187784672640411354804570252893342840697144639965124571659458664063463602632977103963016000446170028769082763363368888307202834765635771274375453208313904195042805336981247798959529682273046207863419027104712206079253349975475797024633685759993618478434259947260161146407429072098301415530467864777354086511221073981644853195222311240703625110199158480790898824546662212023362256567123783541302710503401993124948017057585423658165012602767755308878463953542873853536935056789735618287422834225147001153285069821640226121664638072676362392198984938003854260932805039014537731210020126997868778098138689035730449106925729903025941060174775045750261527276201142912768507964493031329411310668865003341339375510797853515906986462360169733804604082589760494844465652402182469898590858321944946127205825926130679255496421472172698504900465718506911533095519504825032497138674353261880256716971276752145204336567989213020622411735462649214350409964190763707856570418733978066879170631786502781841091362626155830154157632458560454280960505118453970681631007804693315966584063051338473699879529265592122672013374707066375158258138016701997744978262774015004483317449072385450317934790833435989256683290267656537435865201037931745189232988217627267327679766552230835424487065166578810830961498433335364772358894099437731498055526756580382352512195452359671729270604422054821859281409585522443354564748620114504549329313071033724137478957033622996057426883190019681076019599723272534142759101868619227597423635365748593266582984006941552780506597035267749812091286618158065335504843736119170957751354338563071835378768166412937856614758680914327777920040375563055927417880782119674876518470613523208674603020936877963205200982080243339181331575593577441802308272102996817199636971867862555488138516751576165248612981508484004306412567855727673127773794579997839503821329207213716802802809502398154601725735255946825389577390406756608289770139095191615055454387100076500362625516238324508843811509426852603182069691899365026815140082948339400168633359784787409403501767573568009561449511413384246683522559304730521433317592423146948205327006828400453833833682570695477532975942085064190475674998372765329114667457668631044935313354983426388981867293182630192839708834027786713984405333002459656756041939356485574141010009180839282513305888568527577531060204374077496350239446311595230103715723174914750770273096941663218539424318546267089030869614712845582833250582914964831214808740405788561602311409931202833820830168006076914287655078910469341297193540610179078089883585294190605596616201777373020482324188812743307580637437516907081071380730821876896608402677155164565441797012413437660401845773551235464532226127491954724012086680664192053499784671259264043887448251123739721690604189691984687491525658720685713532839581985599774977277188085136425108360416109910311307069547345373336877086914631396641474726652291478410734451081352838146701010322835534380461006226995593164331670100366983545038758983826643093620387109959086887299010616368455172219987273388253817113431540818965481557916527265870752921196929230998359689164994294562055376357024370778256358514742509189119056134451266938670066238874997449018813133487230246947148735075993332850956269735030269836687991879737443757461575778187800566427351216063499042498485020389024073328387178575699384911430862762498117206771561660214991690037767004729290349292872453788796363346205833100086259540045643181044430361548743969596760604759081404323631475639706919779912866612226578372004756112445294652571351629169013391019819360765114497865233007778897940192598142100281809650810005205474667998931480461359285847161135348468006624254908930284688569225786475264459089554252615689191686621844366356898704516101354757969359335544364440918851251572826045298364608301747672919332212123436822791933777272976729827973379343952898702662262071166580604448200609795423928047148045693083306666311966062565814612328191465183596653038829527867738330007601951264070103282695079980159764853971377354513212624197762661254386785390595581876725075233097495521189227714897508095269014741123406836040017043357572818139969790285452917075205376034030657122724255199465342686881615768567388523027577341475225515233271947194683986674533546885953059924510211796446541318101628892738514139200112029927346736096581588567982356912484443473668383236531241802663509815687594819523486736937518176715057978098246433649486806563239960642343823119193819351011201473676622450857456180977083061602111819824742612169784422801197728835714876680818397646913750698814137801403110147390556730464401806646889713715083322269480404995297396125220999928308502199114793049283898442100293704752803266222839009179481464525394177853256731769223423863680290767064693253152274150461767742454341606905481624369808811069804668170704372680859742816218117601167124942608817849336185391246484600843591056511408085073979518840128374929661578473026964109198765235663723787887313377213740666558362243141339839288106390664241609771474653685255512815153641608610325950553734494982957262271207013292899123711155643542555737438774090572898288350962194400134292151739858400041980281806345131063004064335490030426217459554517800655604610233111930681216044159619578949073312325544906450634851906222153805015632566512073027177668669634261355457139725522131740492657031191757744539162664426646089938905038527033483966175365908648037919229222725189849641519120413939514379126703383103820847178707144948970757493305614597547238067003989147113585474890591273850271416863875307891034782952553083379249300061166771454601528521011891660489839757453733684917458608007857174370152603348403144457182764497313449950249923892331143174227129961104928362844964621012096480990503262577126030133024497599681497745545936811271948144479235194581980343428956407782517745411143546164948328569512836675476370055910104370241660248983945030221591384841724074515609421808360109159052165416207699237601862417099169669613175968523058543836707084141573409557257909105284083011886192008529005660389239081373441293420045000310424175864826143619163367117797736990633317443481685145731364230955215436527707516411030498268833153531769458441089596900159749066456100125868733256206643431556492771782724525867282195681086193833425802057289533448507486619201387271511369754820304771885765033789139055686739604499617204672815448005679696778148431239917459429514038652468378443769249095042290146659493099987978949718322526450725144304506611315259477212233276505739493381917500447331004735351007960836803412029066163771426352918590585441246712273272121821741982327869468571900968639369028760542556114442514980322408363282470538916942573332885129434059671607005751961867026392076767478390541587329934270704917367945846820119054786556654840135738055199878683005917030416378160801121545310504713287850730688028414968359069166186646840321708538630753290750172568635683595025952564103083775150436071614900630623866229478911564162509375538597172395552286368266656780974631296905380150386653988250931543310137642161680959413683369724099245163039373918233079917871880462669664705074302171769150704845265118869404805470928443310467457196897569693672518210341122201461625255988819939268642222420955888419713075660965504327953433235820748270080399182286497996026301118054843356839876552831626702056942828157720079082208804399706957839435748740356022910691052010936967235979204186855801764545109292704745752618631293682380764735987670549761779058053050898911894380124052495662651667944003147899536369553897080101472400283877642342496186279962162496777952339673718628310108812347868022010717727079146124196784763307342147339635015291300879563479771204767190984297974954632302733124955992281592648222814854977318299164492273057458432353210673628422044329481515890043115140275565964173999731645377434117706738038875650775542870732031891969097848825606864014408047768463315498839337519715904178698993502844385170086925590929658556765632273880860792486529898263291410387516074636390410655911297357549860062818256047939348494717002936190851707774239854765591973689836960113669963112155517855558541759504593242746400061121158883940981273208358812880963489379791998014543941163172376291746128314248345915773464702429388962864826201509185925007909568063687433254733701681424704584545497134845459891286723145636600139157770783390253770583084125813909442962287236408848532625342353950028505816033558732573817474921916512614294764677397355128878316525081666234002600480454713929363596772419252933825102900456178447421513639799690441300504586646127760106386024252587893045041817706662524395664959222514368117461362635622980519138979488781243270249950887969735138042776675954042576734318409247669487592063943715768483347063550502330571450141372192986682410645533672563624303769212099647090426157521806674805457179863854172313266781303319543752057616236058636518473913354620202085726308174480692285380059521685677555068988182873980485066428121343102040218617704801289515786167555834778380115752367070484790875813461551269043476945027213158959699162958814456347910979955085565700345320241954089013529337148420569521826466615609680146166779952527818176972070956430441902098910923998162887247630981039623793948081328526139014428852529777768874955487251255931104165229347538215118706703254692593097024740635645613383365503808117790613175616433769619250494973278593997100901687997119105244168104971187503655956509770980461502359979889571602040922824241604419148032667184204016237609988790005913570329249303755598783080382530177576986068052505770584420655344586301748725411120977482534619158508445820353551353260950775960674819000272352379530351895668374429592392136228114545389613209269129815813944583683117839124564980476933361569424299399699928025379876043863824457755653775609864925987206958138582898602407116756879251406660850134028997285019835451133227584119758917913016207688962133418618992823194465150059613597491815087593285975630767192372578156121100645744814580900634435790623592820258465046074458387654602682470659390039241109983069844251539515094321094912681717064548494317182453347931288781549436796140941743295831026235208822473935840544156298760515092952476371027488997617508228144829839651165046528222667509739786067051925184938779467155827152344663060850717785600888343922899208644257811393264197530047733915569035997842518464515314384037923652240572574894910482194889692412986786414184769913720052061069923353439443253607358852929153220733451522779826080159937122220899749764192486497065920268306671471042443828852318527185187777579233252985031780028079554749709161691554958023684675053284635306502974968232751860511910430762890567394071114859210086218694334356885587387584208670912561122984696811032482714493855977539158487754864386209417478926866219717384181522911474986081214410313547466752678072283021953175818329751262006862772367639155535072582415524873555356570114589101367994206255245829146442037893369139810935506655133580499839238319331560428312477965487581739057544080801807175362802076818900453736209444808263147528264594821764269416662535590521849959592968111790049367492646911249887046739167605523178868111212068062630498938639124122671285358080453202999300513912369758870226847317779317262918461323676935934313482317477510599095106089369486854402409779640670100557085950760116267825337761195211983609026763421212189102769458614345568825969041617592402974814902938996239779514638557640118008151624874948296531808755144930919463639345514303565613525170298160636735253022068713506906098144376198821007620192088093933505583428544395384990740256795960408494610869176606326321481242807783778801082785434158819438169290087364038544043159644698964023338798848952745902743745266940144255919755253838550573910896765697250323777245646013761712345621325070783313405047761893918922358360094991020579997319905531012535608472184351790252833430659148164155265079579992699730862002681270420858969013149479380136568237789259027787099895848266469074023997143223388446503442675737580683374276542082866146444087857730900678890347770641553140382702214735550595016263549302124185996662150927140360430171758831735330470164651220952226799615735835780521537102273417393877127215805814812083900174879480181675455668310107647904606812199153084244448386704622594248734627005577773554084302418238079960918160307356581474676975017939293456030742340408821215688752981754350471393348857572891901154961952655771060474639007091433934246703434618421739396961697939811752245515468462123906235613067596778983995042141474979661700829427338999843826224620545179568650778830090500715567838034072842381516695009288239770831967801582229477387032535273905407765762394436095997370534978865894056520876978928586151883984507008945270280872811036316081243358266568954688368874225218952462183104313675861346937672295917800023160274532944666048895090985586718859752756037631248077924251754124369831817618251764854300279137111782741409977309760074625234896805096375323407680960637545414209861377015797831634699374855697810190001256514120019639898816342945036835461462374128623290170366174839037463907966603887685591852779929960680498594681858813279525443548051718694766425471063981400641335277823091104399641250750544458130635199443273138489603618600692752934110981785326084432046942312267218965046965222791865605745838498511813261487559423585192916319949204463304631509227296752579033546934783278494377048635859305687098263672874668477794575276050249086134551528093772375059455311264982742926845393005965313882899560412235829493715251625427130601482043451619453465418227001943345437207037705226069063842210841151915508821730766844220735394270907208372576413974312109822016487314974179216687445858929870371154778582014436557484109802596892938427770659917147355224426650397290908345743368576723047843112424385400022782658329561544352617900551521711205116670202971218296924760035028783776437901987114310666537145362323312312810603297440892796998108184654254286100141923781401688923846498234599167307384288359732127248212136157680480395753540179024641469310511088216686830422914433395682744146925188815922405240584625908314683550229034327026808957936124195982820746016777998555413513175258366467877723562981212904918913706915687201661440983999504500629923182900277059362156650724643456272653207248729724268561319681056988281595078577529926334223897897959412530291380682601385539918026072038254971399269694312048855541629022070740496476370461112773753742759394058667704086237501811247292645547849140291740126259256516701107604881606421679809354864040898437215463615311248482763028042305808442106393950847884149834826077848468056013189073821300437190674524113719011699970080911408260444702483605751988962137028242431796778522346151856592317689874355558303011518858846879204632667157787395092502877357329653762889633257377266242707867023340413055772357084784162696672998936501705231341265868018971663997703273825850004331255892104476171604478709913827325454601409149520863913724324141239397230151384078353898632228507249218372662640609715629836251948434793598545627619009698098377464282177977174646962147187493750691645862589905736397695004097137767003777558111570391456635553179663612956463992371109012088979132629241395713261036045072236666948602113782338829289503827393344094110440600410157770709814577569442511727868755492180942070513814553807310341205737350014465556410722574609621796829667420346239314945340898367092765629706130559031844261063063886926226014510581241642147271462906088266927297816625918413357394150469480288786127652869221903695341712113403826136219244374080072609274193658042045362638374055112945776134564285834232413597413965563201034353151445881974547129301667596123281878026803147007134387138928297941822802142686916680050589291416534888266464783832869417172273574580163552958333350129382791456879968647057750999846641396186089772761925589185375512460660728115910764494369862853641457863523247316444870026757686100286251708100400148103015438774809016730292503376314765341153864421976487843182458605238471299506105085145672246182626946216617024236489807989514516211502297622514209842767373274816287660543509859482477367750721865624826258209010396945029087786048353058947422063894122876253778993813854767676293254416879516460567262363625145276806536179000415214264607792846066776674574951312490018145893732577361404119228907425336773424069922349037782836847752512883499969647890560585948498758012816685470666356957897509474985738814565961888630881563158560214636480937673704206859129918127755269796081960412364935780045591716915712767662415006027943918006461668497895776890714385762543502775349850892264097430260281086864290486088082099357476744918634176525125495410357802456692464907570367076447676631769795192646842199773799701426142089791835935103337735668553315288366891814443316737480623761728951013884237525909099151291497755382407517546793975590791092829797239810100760773742756257063769124284061162426934077878112767131242890313854739827185935938818393807152908918673392651084097709876119030323822053220071045271001195891391526434137886474139855672706635314754337477695693190921042770950569656495098010443541823459654603555965382454108087509865446526685649427102205965930798033440846248126764949136390059488801216774858970939606098428724884296808350040386803724367144075903535639877954056481099945859510433241448088890609199821625567489403528814289323622696348283681247536672248456823088590821089789709684148996764273451479554635615654804589241641615646403797971715729602213261166414246141979033913553945912518901670924537377762798672262320137430995526059775861697670279181841686428407104722017728961001121383670087269661078560741439259939188958318315259918087639841654849019589088308944729325675655155008093308756401103539847564637933041322311366910051379598328943949032937152170429175635187895256660331570833019265051978852796891690545958508381348672258545155176307226202007881842349703545447765548921043478987015422659199854847784005486264016883815535925743679022863692200722577503341800285052204543556711686830586963893235343220636344655734486550259168487900572653527774455176856578237310487170943930257332346562974489796480651900318333359981561576362658320097027661068034751139722642415375170258075964654489744421508255021542175917423457879943039797282118409181869430214415935827473500077114573836502023808936832755914914803886693177264514216057405932728133664861146268878335646785198941460760716719760521778387460693906466104313575520783771071058395667961436950929413686730236245534976457539817622031549793071924071274319646214044391688443028057256378663583339330250599736167431199597363889167565730572139497479059771424719322182511180071533815778121874496230649590088626858089027427071866132666900422824026534549348485754304160061442613797088094344136640969593445380351159872791150847683233690120282348619325334380906750506034852201339397370459290621155252813873481138124080922082593326756852826279104185032487200926905070974247282911069710956641629093032838795246035810942686160928858736624737498192149496358244953965585016960090191073237087511498068165281231430050348233321246257008772092147794979626208057529352192259790132722485810878415619034758314770618637414541050249186541233683638738921318918449316432773996165554334946213303092481605181769020241756626121263632992733078976637277854372598818750352018862313234279399541788150561660650349194104333170989256707800069209399265872439148180200592823159554971687451511760361568412488073647180932039875324375243059671461774329903256476380043132096076038065532839113571837084797331907929740767049698567937858500827035480521275027931455736886292268661026078352403824381103789557530231088599975329807323638515823936866270467451965900473462289505421809027567411303341607009649346127079627687660863687263212189241648647787309460861860169255064278673450882670911028996136738211578738025821539674564085692299755394034022610579816185661954738975728968000714970071141467665843186197556375780054129714144443725490584390434918041976141742732243142779367607099012976271807564246110531246177694241223567089640292092601033998422170939342736417726286364987037545868130985527530941418748325721585600571134674077469393776227573423691394018088282823567821637752298386164389771035079273428295183158173955998511799926416390739583472921816442195071786272474612185569619433627455136700135371282635506762023757818005484631588928797338111352752820256096035547206187253935824196519997549905491245315663296619343498361043413708620854808715032169489406589814685460907796934818729128748335622986475534140773270419725089689033125116887127044825144978101899705951544324916011546514458447411977202851504736934702812238661725068410735221389457630424592385900877108432073821507278254341921485967123163584381577618341423696169878493952693799127626950520516936841077799374599295065829223977245968476549234032916666292583196993513735480531945325890285539246168433984001638287242367286589682092821587161021397250726665584351259126142387234439479508618335975089895622748292238563944492229086387739587183573537036170269408936163485368291015148931620266763869966801746277585778867983614902061033647555661756223452468170753241747652082721759869806062630698888414380152648796874384250151783234999702227482672266945247514784027105219803418211556503968326860282690927716297025005450128663756544041169312888851109487459595727492390277251205192252817453363976093989034393242290735156258116033334467281832257493313051560024995247687458175575920224709922385575642858359034221964154013196903671354750395132812947826474553245707157417440703581971072005911755007933547468754318282409377516714279732259097383980639618289160372651473902088301433715220201944240951817153807832534692231267149482749387369950301743392600537332019895072812309246278090253766691454180552961137708396379306996987562723725388931532483196760586485017355562453695475664649136843977384577250017826733682117628059256044114297017675518306055422265648198510499861474339412895480099138400286501923963649023349039448864968855840526931256330625618847910435963711199888704779926498254172710830534395455757952158363640764068885204936588158609176843671266591962137452806451981577222949674318005900025559329431281286645857161687528836213717299452638012828336967914990065084367636288862861492471071859142455907576246612376385544166355357719128977904920955171085369752680572302548090385735016412298130145193556686985273143454160856471487856625672060124147189350114337910012342921910762400950573050204230030747627712305438599579615661647173370589504099459815104948956247326105072462499487655823256151210847199447975685270845399676168579811175435289335543901318698817177238956671770596797719923927592249097243988379984248701719190849277840050872610512498786467471636010999138002327831993329560575258067809504192812552384230102853756217166943987919404551432182486055985834938620855096138718419954138319839627933999580958351909110095467266937998672307723269521577082820274336327149678941361162720405804288053076954810363625207794053390418414812229068031006087228521092111114163656444865150444945414013084016785077481978741856844426755533421873219144069115594637899665573081580840763107919402246394084063618975699503095322378267862074015970573808354840578952582999298947808836284286494523312775561743875227718000320711201349972701294827720534707052876896724383154526688362514284141713275122197004277448614121529288165548691783869502984261121027663394834401420415270871392612637771097792075938216812431964954227630526752840604944929441811586683623443061933493737525147388400499991509805528811285015022278189939904547621019016067494650948656521005132302757550702576890664998774099386337386190756617409137452545764685088850197516643519359396089867930424598879638078250560371256546199872063264525210868476976971064588322244184413007407548152315251968092663933578312140929698894587601048435494188897458073112693648546416151741093077166217299589540127991422607719803024515008897670247076719283311401680385013050060592118396338747102093158744519073004660209344001267459435784568160883256748116437306424613799359586412040011809684274573058525721741087330301410268939635583755053647255022977157443654533224571174979629165145507814644128868267099461380477971262150630397052622970419366627063809367922614162461121000053703713013324800698775286917806103144701977722007715039555153033436581613837040950929955485111870675303334670513857746889374015906678866037347021755493429171593586241479231710322489866507648479525431392834168827796159940145222350852955627863858998067020244746733394213212164352887531844880128750044759114666173797706941354695291463122600143797422251698084751892363129232914557215756406864339472921652079789936569458717755686149247179990038394575276542926009780257725548676241332911006506683874316733149344974183584754144410214032838901679191151973962132714656255827215468596927319345526591323415918443442017070925051575831878640176496653485544986666601905625826799381421700614625001619670924370862814085680259247285793356624262155357178974037549250293497655500244718902593322541747317893387039188762542950678584159602384910810903166472216470569158872935948559594788607720691576731052419406756571033777593103318927572737196528242130468190075233699537718236352804310114911569108481818355694955443665320291185297839383406528276902591227497366260420380703288002032646703968203169434645243743716765812505586487324571057752635200140071344576625565398754936811759247043003682430797791443453741587860032674104667596889363925438370068297089754078756421208621866430979669162408271329719234752821054304574906039430422364797626415928711036822254511703031860976237605452719678819500137963185201342886430267504455910405775611557184271426184341418877241531151135974281269611500778421173554221996985680600288784193193524124096650899824694623039813308104583994990358783261123864871024954835924463439393899642645237934647729170964811028661496078982069323358227452320590872723737880622039053897587318831437010868071759177175097512535839844764827058580226287075421589980699999094043575529099906035366679596736854729881911867666449165965088759319481153871221368899019402692988765623272538838559948106704637686295526724444260097804108716018099861011171381686106994471529328260132272519961696333256454411078516907270946974482648464722022885292985697842329623740784608494464483509795866538559926982864424382113854872209474822709467320177190112121477693092057341520867978795244796146492245852525677802797300897686860664113323129067637087207391131573905599123153906040616571862027301108446134991646402057307621354921264710678969666740414668841061787336432577916384716601377075814706874960850612117926158000864190735272557894049781087577415791688552193710065337488909609020687922844464567600365970582098481875314939317453491787599620187976557812167675152488852682023006701665991686051207847369316491041301764303739356491998813182467738787893465655213346114364732931838243020012879268286229000521391561387121253988311515680021172743994334843904376603018994247836661207254922478085441670148292144263488102987294824533356134550097988762222802601230279295480965715478364287049892424841765174840686967718308586713494948987329975772440048247385012400877638107774846107143781461804444346042583099496410896806620854797819647304094718556716382669857273608071412094270187155507396174391147883979045575305066750345549864639352038007506119142056629643303050988875728930162976725067624554319402597984670385341319948513044081240054947124294673117812926639442942008191959824667696012134420440872158512866660094004776950560048737518079006850450494411725584914329766642775250393690754505743690161750432946114746092329650455447027133525586661290922281438494051602079514882816689777367222325539239688432028558701802111339597768331026447325884338558184257150781409510950477031966567519761074732294201973818872425179026286467825268404555152250220272408556202083301289497553944335664231323431886939104470765048336268929905743713237540748097601413362789576837085895051191897712234022112806382867451505076578154845349913048795133820320034967378145750329721408225355326699549640526609566083952024332461397979277572962771809539751932391011302063619270116821429143792213800592269348796327326549255217707501561925203764259711077929915339910876741577384365361644227886269774428281828514648596550380862628744912106881614110497256209438792456487087692823037337403086958684405138753903053813218078110231636415618394548273766885541314444888099463777070517208823790351023508159018355758956306039231143483140504233404947979844506804547728635669566266468601269030850582814602728652907840121748984056118686916693092297167681963199925660361339499435296117517370213508253376992577076618920599102375672262215410881665196491903553936200038148409111689710363190766136764194142495593773519852331865136357603355638821102619670169468792513750761855641344707633964253988466532388512176297873558082340108620486325596309941197601079793099747374799221116717778977952667909906523164410036576194714398544847898568747320768251108316759538197040074994492128810287838219756293713408221405538809378024485373414394800553027468921548788334813503694556892912350631412981380094489117097133090795924412578088551190693063971000829228767504508061575909631478703928493568289431966620667580161032925346926362782456620758802153678409857814070456516515143596496217908493454242329605191478909229608610624571893985590640725993590957507570072496242381852273954568374943621425134889057828683036564670463499593795665405121127409193436528547630532722619360664115731362998082939302415616197396657182859947818263840597275976266399094321741639457969674084991516925619131760804215633876080218892113638396502747196774393161019011299727405846290110898065979994840777131474798737007496952053958428939788726454573719155600060014225319961920107108513101896391573664331019863936872130895882105983502547390960487393406407496604394059371501783136538619471869111320338841239104878802534715889597623457264555413795946897756943425419806568473110880613293790383728616355338997427719559184194624194187968290719002663161551625943302494552155153504048090543702542395838827659610477389080444977582153870145917696957328553414533055812027071955059337598843148597587081075892137616172248090130958844973417234415738515055066131031160589556003905212020168979319674051604688074165008150823831412610119071721567755068597949370319117185995505786190563121933002720055395409165998485634394554600519279102686115605101040233199058779721242436041181216697231320549279086583096148873688508872321842275813757185884896859442083739792683149898409403720885872377140147781639394344901466433586880571926634631393671683911059575829912032952022816403237475924060263420873700357282513774056126728764039700716926942858741426250380113022727955579321293241184275839209999292700720508963831637061646115763388955723307191925659542255158894309723828453271611663017719034112473805010867491863413273298857031698227004120198186174131122198762809950674915670491895063587476096585929738829928391584011496357271488837083752241327217798880620908341831210480062486547322359179119606957684204760231931373943704493036904490806119789890551873575815212123353773432089070360430454169372045193757411247622515054316201118836685214568791445721150179493014978419744923990911277501606952441327924896637409283386067872496606876271666361880341933832717297999644693219430658700532281070233853832730726337888623059665257195516077070279391524736293709252076907594732043651902606428182621097675469933950702526923365159644676702793648974495357999801311249627597941540846346226121438228963714368018143366166382067869510865203991419294286690533239849675663267654017366815817906577422627776094361482268993108784936116311377603567716493521280572366873096468923298364266779892000725458061393481157371423782911959431084978142383081411027852237902784220480336215427734045868590389786557041139079049361057071223605437066050766532203030052954614059535664980310665073940329802645917627175223462320280118302625348439009693175408376938555848060687606482175449880517329767120086252667949788330259657811327084771829779111557344643443107634369979053521292582534059508404761111954621613431202579360335108598658906734384199358751983275501642432584487174816697393555852423653179885002906423551210147337515844197880702181116029408309242954938787914454762992762323766322990452260907214437212263268693343290076833792780726392763832130881044818164157667253443829183029807566559755104551235690305680678061122217186781433214082803127760073385301461425588222110828627524012819007317732669274652063211833912724513282555235896716471006017819071985025605497068875832892910329130147908559222912239847527551015152863299470988009949854136573172072445135935592831870545006984852657665891101415524252852671234793241714771732918650265886873607057941685198805151300534715484435432325587963710511900129676578928519157628368450429276268731077177099753570023372103994854489891834015479385271358738886459135745940720672132606174250656876321934845202221739041293213652813299646515381761889544803543952126496811722055149810350216055429017234259723267638253444432373461590330097805774882597529805580078865139508251632354889337967688352291443880214910742457569138983264501472960781089771785183954808099971554349257649889858150622299858369388484792913957335934817814042865928616604290851082261650981957620983802106940240306683715319952720487430381579773524292547220546209335969155155954243687097120065504851569398750958186456453499450557267298715184012396163718040714124708482294674802065849791280234751019578427002456191163469928059345166355997647315625856016660712241421252984414168991366831246145129834417153562012893030724876671924047221938039132301276969244820710891477708910548525433444863514988032021658107077816637911484319273831772494352982127767028486057786804116854656219038628760439887141808803032996069510471075214651022361822086970826060614962310410602710807573108926931992502828436710447563204338436650387005595845236591263154363250046850173195668655040352888435273056138062835394434524507139552882451285952969023926223822241292599671311125615634798363008712197054165833094692789484363532815790220773525476856460079245598783213390705021029499736885269306448516852174287743834367534142212959029086666139382787700104864571421497651566464348953925785597562365037063407715095330864425786319749940686018456637049291099360972662955103073847637429619207881202921999832367491192981354117796557682047467002670174036573793185787356470267545122719060031691987295793647344507242674107834909188225643024408696096500419249070987598642163988697181500324096550383642920754150376429780935183259592219556268772363605100730055060466309368141837783607202152337835519747058258667007009225251166155123968918915405537234662673150930840232296719845932714880746167644376926354809203297441198063414743371187378621685965996471654903886467719474634634136221747956943662398988094702744768060304809548370800337086469879773300669073311549316623484759805507565824669773175572244943665757022936347620566163099360488081471336069053781393800846481354853461413129694137576924539410822934621876082155649084205310764738638301146312695230238374134329887323774818033717274258202507330850370855897872400226362470148486011825246243847644926753270136703191531006079906209303385889388869267198775249174149008215605737036614418705376237415179581996526455866765931139937397304028780854403993033295663422261561405121141595147796239681481194726754873053880269578200942813846517893800522083255548008495066166827375375814983935189715709300245268273133073670250902717961842010086677198847608004088598226473728921812938759807125238478041121199803408367930947461842610403289404969309205991265902201635582509413468182983668227789708249316092706000646272326027340180391284642046554594749399790762366476409830526292230909842618070412653692018637190033081448240642542591737964323011997944710530908537863054784802391027821398999294041026339377929475990595613699297072756984650215899331182618267974684397945095825177874365815982644461361102485062259403328718628765441690764791186174475064333967639237608235879715027530070866300499108070870089316934248573287449502320615954432829898456118640566961487543671970578572070276456912237821105715312879604541372704114144305916249624898855675138834889780097689174748451986797941578676419818759437176695652476810793989977249386280859459948400344603743186089402256356429449193097612844696340658171172827417602670743258960600058990330409598463151417561660500374917488794156366329230690966468323754213078464278072088594181663487079579259775039036140096584253661571477995503613067678749593785179786370739836126471835549819169891459199841491626641336911756243594654321886902139768658226516407607593933680572565048555136316121318492383351846075494605240694785912485821025972325617252855932659366629435457901355711423004279111362409545232307345454241524682601986024942241622994799124628179043208626185745117695301162096031915129623077552717680832547910234379855297017803263725071022497441674340461947530952328173195139302636047746328629401244836097493542749998657418125770297018682727577847420094762264161037669741652002495374079636283380394612022001829630954960236056956441397712361301850976145563605787814737541820292631243538998469623081470868583116000918839647161564428141378185834513847607076934994372004562905071380291100491361982906341338392581893180950229393849112180842209820685776710062058571360149528634746877980789830910628554687081717539649797289425431030423890653651653112454834193684127611312901912369037289233556364588076731859069025383434477236236828005902636964779313022683984716459155703332808776854462660545689018913594350249103107027905533627782158878008007256680505027441177522475208634375568857147461443170980141840289333607781387648796291948351328831452322268027593625238899680472231376640046405366597247160574982432223054517949231460783315365650987593013422850076277144704579642910025978843409932508810478687462767895762563665992921988885078811865709755512113604461713260535356490652346247798317866185961432257980179301423241364598721798353691764486953826657744893474608030480031817092092912297450671400143715148889325592091734637053585743902397881860885935026016547512542709568517969350550596506341572137364433942718870307191988245355222358376314715557356031399683856971795241131340529242359251017675084083665548640016293043454748422761177848287100102585872066759743713657229164819797677753005459661746324380273385967183338907026232024496896054751990215048208544097126374216707290784372192906433214352117170941618727293011813224747877024959241367629431015833821184018462948465436772822161419454755198754071515118102449893115616341827225787684373934090300888122154342413912840444989888808357307384489993233052234356598199162602505173334160957624066618030000074538657923991981531528219080546292750383567069814024861710661424685859732191666279903454355433439083103186645919027190999903298958871102775028539435276017191856768792890841423139315672314730604497576103410485530685897577299805214581406674689131890807687362733992420685840697172627902165078336014882623600357086224668918644710154808074339015630207063448893253808816344114290535573167354945568723693260313888838599941343986654142588691898368012015265160508539350809901766681411968877549547092315803221152045761730181940688916478506399765590049877789644010605334467970869725075090488693245659911195882754845979679130813547723351252465553393754679376086424434134290199969326067472282638031753776325113215871373897998462996202001156962098421972329038087702680726119644374981433113836748087774651979630039730715148298280669436141164995946668495825324103038565926899362249595716463239087208505828077864506530224577896924868102578110271010362110134133763879123098019679635537057459257550492782454263066581475879625453804029795851881019828214243258285359260449564449232193877005934259891822522406130317015337288990384873556193114128825786681419589302761678297900745425405060315435454906401809031499281526839208436702196784710973571703075190791940018766710889715940635865381466877732008129555697195524013810097200158160313872316100827171925675079897696623733162735013368179617582782195153895566335525474333795756841353541689873459242136484978665889015673577637619603888768586789328017790330784020364093743256776218958768929748741404863529392902032426369828806670001974699231373264355213264904515760235742033256040641592067544549076328041170470426273082802693151709360117705205151091152421347196460721608463779222512716111537549820582875625460877261934142441892402212737954167821096991156488344830599504988456592457965787235629094994101724319103032130851685341760302220793094222412385823476141547008248526163297146602586338835979610182044026916914351186051920518957653968644150539811456744706930409098853610876664999182344722501665010594774257951535182104476728584949704229446551901393519215637046860499759231758451891547444583608511649965261432059868056421794742146112575446324194576083059639281887853044187434456134809498134735938542220498109879862370497440392889172654070527228072722276745431690516511568070008904484433151129032340904191655987935558012218354181973749196432185389077268194406468234467812487034690777528620401527619720623931687932941989767768029141008974963905779355719321089660397288896870772951158838645628772338753948083068013448996367877663602755226912803461974300282502302930733430258770746053242969501066700764165507200771150124111608176009581195725856267166775687151790107323294161930858180510895023673104440069011468632475631183098006939156343596246733076214349733841046807908755493100825432837369648589174191534323294141415660155014837769484398883252195937648711672978694134221135095806392585405792654899354083925953984842618781996417759623250942622220066073305591133645978224948396994435794963156473124230461250537777887054576296123717929761321758843357086435149521838995548908493297835448641028640423733018363065977500803350014209985544769751159877561647486134945393510874638074476239641807550511885621022487345068710059194561266757754550477874155251623843436744270596969895516263833391585289142291474163597521658384795869572405822675873896188552619520946008198162439815691943550420583014594995457412717370727783099255839904580337067542352781217014137220531809874818022361140162303325457389292445695532045908257052117939323098750798937946533563304724276418666987041183145621489546086314124645984319754537136362817989155905143212224078037727852473223997267097820176454946363859230884284877733372526375740627290279058041240355042183834610759396815327365503863112507884991627153394222227076987719485613731479156882453887493502070838797903449281997485300455446669309389371616565760065848651651022452061581971497681058460082756208871419414038361251403591023352663356476816325226951493548402546476628635915640527618529092843770948553624605820681478905231040248388078278574644020433217091207456373869730382510915696156391461056000287530971069372390396936318056885825334995169289904167136415290793946855960727332154386077353927209611938278753754949616475272654708537679643183220073615399501085879473133567120402855935441156448065391977889387842729129638928881444136876482707766168455408391518616437849390269595979758030537328084759980348996887247408137268402028874972730393132075326429317612326925397067398329843767473957127603125232610100038385729797872596473103587070822423060778679812965207095193861569210332634829851758113428270029307064126193826891064341758872365445552513703861842024734166831380586260758268863007352689367661636511486006960940556190983416135565380861099153628319847262638428500653392515221867778093177655951006624332603499865080580403704255416738408155826645985593872691965314797332578270289681565989334033336739271721703871546065149624870411262090876919704663069274758378645563626656883545445436892190836546729229174956672595618198369695276579572592194956272078776150643729923577917970399687013328216678317362586508016889470105670413328714130426085999522083200834720715658022309697859063032491501435288409064145266485170615614740032186629932589809187764206015963268197885557329370918347427576795085001472804661146579372144802876097036363437993749854554480940659890516868142014494904245775197345983177477809676756746940378828494279723903421930029974756023026981646124023141072323654172107785181970131995903649701855291059929740513178330768373412987377287087189191567885571285292040619975047913695567397540005563660693554635631222196706215970235379146004440468780901580907454821367471084231078162961451796196029568786009725886361433172145317516268450220177354482776109040741330499076735151752988702601509006133886254256177843500998553899322717446365830140046157207317605504846067596707829262403372367475001974305706288292190278198338456731028092258704066116864471211166213481553968842349321476979905838336624189671171836570554699052945793138408483352417320372001210681482405055885662522324654725364029615676489921747031555216188035615348378264766414176252756960928156914616343119006625343778766009650036336942192924661263873420142230261531197851698675768776100033867290439601821920732295823056950523007744163320469522628797054059958327231229321844889237780007600825276141161484297103914052359276036155130194425757038493129329600562317059433468714669554694811190839176446857375699567654252715552544724588428998662784286642249808198015662576306434047150619636736007053337030988778405853056821300181770094216826068506034881994424070354911223748438544144357736992762951699698800707052534850768727511322578332164043778243811342936896742384659747924630755987904953292733727050577478899926652503962099558915373035326114683840645376143086612721504133472851908796307233609193055585111620096899640027708281153468791889056505118587756993339504309099683187630896906400929912055418330919468787604627200235947686211508879181963774092319388055899397859505708937854912970940408100301355756186695005571694323613967179068453935214090745968019489117910844711751743898661567333041148858545378682083767423867723823378762510544165443695034857439734426902615018207859796146195069862618237726873783199062551879809562334445682306805176540406594194396937532878603294690267212852790684149462504586806344036741847542189755856072268301625125807061564614652803055365367897224953111164987883879441364070530144611966087418767935006102303936633924766582339536608827407577956347962803193384754550203728628570382874510566575488175936255774499386181222854615138551835919455234317384678012377523674406463589842404833629288531388286983375561730668593659121267307839044536074572802898706876321689770375667203095992412159690239670382935414938892452039417504858807941443524481602619369858551554699397333516660316787340119737332097357538992816903937506009717819598584290486207521642191404642638062321138456088746566827738691067916151371663893750035694839425619763681404258498567169729760728811668960461675773164562327646721887385133833215120647709594675510899917426532745437718837859744624935916968669260399681070841477079773092157552771193255495800878787954851573506236946442359722250175136567021219017790852270403735108444594844651329006170984485831377948647594609959178430822948530585057079719931543313277253393530793423711575874468394661179673749097907249271341866540270511320902081756319815172331734467931753857040233895205704161207626017621791092993166621615900826563856648589596317348679090091019667922791003220968107324840422833198793095177318324306294866831517522065898194119160276410524900689331100427056985394639753891854773139846284779717238483721333435576943901468540999609810334678475949636992156385522590746976124327478068390198792309006160040258642014838605723010056200842015835504732145084473838897468460713387849147811390548238128670734006623738350919976885049731871725168378482206393687566731038386219782979983351115718839571653797314873303921251438581722091442574506894945045191398919514095892763056147443895343418554571466216631936818417770179725517918952867060777096050894878726541636435056618393436395058647329069029020390176122185922477922821913100440342098047900116548374715711588839187017242815093766174179032157157423894374003935019675172942005491105815345341075592696371592103674099026038411330962063754762417570765305959462363934906964967488682893868072597739587445483142793802498342541105979382851991125768228572217909507910939246984319961286903062834271176017206519585256346313773198092996102070940472769095420800680601529700422464396751138656688036922084693187758354029970259194166244388627826129416474697278327789919902088718117126834695923908574117449521890860877539212847649851497995835184085989657556504782701070698660926491475375037710397727957466054458864391057060035197541460862337497494447642259699813864059049977429397673003720194696915788697221915053089561432680655248869482702145312918944667396767996742605454237656548596574243455970156168986979844244556094073392018086095743749306157270634658825243797354429137063700845811120645769561563809131406715449013641493911363242614980289158970491077919546328831283302076975950978686942190019147186660874885996605938263181522149655286511977467301422817065505865122617546794806064311783855434858942704636380681738015611118599192364567276010477535400573995907994289675715802909515235952217915313210634775680984679566096401064361518218795690719014543596828926172849489589104875027677300763728536593489546062599114810443099492548863018418201751700858802083698488010189785992725368824213037734066299983005612880677036737358751328874402311219505013040819887751785580490186537536156147272115997668160553407304871988233139298739521663724294600279248068315862297621539028465516643004507269123491309391554154074477854772568132442866997854274147344819330259778952526422896638091301638453858865888066213544611080489503969068181934051047025090524151519732032059855551178440792006111336162243366986609935503194625451337638439912398648393832310147147347555022861911592787900358811976539234146793153751723670102177554387620518707015771605232942461630598803655618974013706848833562653945649942216470448586335851539660722526189759339850986587780207689253585021327045100567701103338143558449339303597970123276970200252741563469402043283365959999500986508835745762019638452820583539607370861967540758658573004289617697288691454980703780394511167871218485888111508257926627731540922316427532552824725499820417652658493186637414315638986438469914365316054281729755395879751974491347354450845551664104724183391681930033726833796913525014359438315936880926046950519516499121470236339373130889406102450783921631837339648951821325042882735311582874487035861564181439543463883109687661101290613686526132127816292191028580590603480751940942000019298529528156813716551968013482897319411086216665587636863828503913759800904406144165172863508092394788424473396486414741144041783019624461510893976802131480428140951735810449858017381025293196577029304063804474337418137934630612954739326193907773466285543082278945386172838060994086938089517000735433437689667618508596110257592802146190209892020761270481537019990103476810954140576783687642671013317276814639001534470352754388225853893366020313686247148150830267943434156351344261563688872626334183632558874869875314568056413860575630809378350960774415219583802083811718841681550704604426720487972701074577613414092145594062864358215457513142896483999924710674045460948832184148023377823949586074156370930643065995084768523651011480928480346755798067800892671505196365874110920726718953348405144763391002890789382762165038972005556544571126920071510376862891165849966322822455131634834188905732341820306212739006249722705160498178548895883907066739216592828711525446731617210973847610874560191303930043362713864001808159276829547734858456322017311937534133139930392601792040721060441217386529279621285135091726058967318368773939541071317352767719613434245548363385083540072556865874311718550689287673221474502640749059380772410457129110520361535161385301395943590108738622263232020523799339874318004835831435156789883205196832851694450038307638647474410092942876153269293850984977832320527274451400494156753864573257511633381826029774977379092348723549425492328934238835818320507934238452741559187071763214884255612208787966753054445164172433422440945162932853502164354409581298505330232543981092042162889143576373478148386130467334407391743279697792192633924103330673907472789305101447453799880884355711604472589775959731493433049024524132603424026685854463578982439088383013413493254590154449636512860914380859692143548075395691184880119764755391423107745835939864562244469068760915036188460944492212955000274048449073174977606479260108483212204084037275568289685815796703662676943620063597842079743342900251665593888943290745447328829469834903869482755686748064964973491575432737033454255928052314412337092068191755518593317457521385856319707466474734844097951055457497200919757981558197410493823967815055036621691934769351849520889573915372349526105948592311190294674853663102526115819996082801345066103553550340862501513437458939637635644026905899122474375527827898627967878342268588432589233497317560790305700316031486011260191661963487288680264222773552181799073556797282477331550288121631605476795055517979951266357600180570162450658341945075699791470057058833089604386314028222179790921835312940763243813788491524177699148903747136233131708960193432686941342487303700244100934877265817896544617399503590903878575526406239024638792338850556717292626426955984537439916999777101450948345145253759931921840863115734856027963821869239488262899603136903378469702545061774415609550667089049877767484882964754098048010057697903173667871225322713352697901791154613053015572588727739984725342321442752880884974051722747221471888922982358807889095502507309482895868731839585855268292874769520114322136721216513606067904561398725154469678539246892413914814398069896960920042974701195910792497674329502154358979538010724063582445656599249151526578768790554628771708288124439310524653509666054461164210710883255362529486406227318006288166335109135028492173126415205132460263586744699182655290027016892653299450471049957308146634754413367204223507697652782183284134126312828518660726159469151665658526419081748173329042912873622954653630689037695775393503630311565320324390995594246064978787643514766864645872909707148676921585974042733411263748335718234755627023280195609134582703972299369003600543397566905545787782474641200523372012118913845637974879098360371399900383246131338247417537074318605775717544787020783313583950851857640100305009256232837247372224988409595013443863615613457879466820990611440399049889139276534271770419665754544981821330752458299199132553331086150730046449077744493527126281695554467737690258649060693651362830342685567640415224277371307007908244073507642356445904122937846873430545573775283217151410111848427142906495363244221318178942043777966567659148842447836613820847728859102992179677464889143588581352534806973652623937163484944399445746175150683700123761185046723190442270971447187823527770817679869930091395378304526851696182146467258091425979973384314606139414621180579274721892067370964818677311431228282967767634829141196823570075276665377316821372182334689825058258547869502534298534985829470466754673588302094504673071073397661249547885679257311226797735672710608293745508332137040561928133132405894932292428267526347803955066828293819051114468901842870614702660262535294288549834224375290222474390387077189502567573416780452257594430499018848884764894240284402705486568995341197917406370273304186829984247538372343170553275552858575967598516118397839810914002339412371372042669009414797047305128437453362162791741898911458695022180873705704473439598131390435843941761518988263155223687893132117524810133578939424010839474957971804777571672827034511866603531786235051095099172934849536922303473659716267829640018634279208399273370670228158792282980234729673245697631723734803514197601381726360039153427991712071737929899935920758931116916542880840617680338105155604779805938133411379163114743137292758868589489306600700604803199497132588231818878929659212859845537481922237065882872890704830764447441340716960845386647571503593956404064966378583956319972006050612122181695659357280766163874116058058319693045409748030543959753647644532098401483372418541029772054461544652029035669362500631857960819275572270510478695890870036927356733500673944106513460755914412318151004568213080146062544077150519921699880288052784096580384324330688460282813366045674045986552672659804889645809290514640051386679171401432520718075693403764477608521475087417586786959683745289911169880263680420016140797311011439164083486106426801508590395507360441970710401471720469420028489186855022696293706777214638914164638536354790141787170714927356526373838161608326836830144046680726500455056129310587019333883775768288446971156787428567602638306103917884261232292591414205547887757442689130178322615249969075896513549260677514538010887599076174770741543838474583628885033571356291622899966433033635092161556428636785836750149897625283861950239863863031352373745666489202651021557599374246043682043034565747864679437166242475948443028489027659490962572371549693076043231031485907129183935399566812678559705813274581239843894321721952921194976481186914281268773298979871223741655222340850544397437352170387096197250476360927208786459821731594310534062946994133000151279666095317802713244303767026632909007999918717190361209122534083005204712595644557284735915810694564193555241038916849121983158789379419859479108529150654869991651441707574701446344872229612278751908804759330837874481010556190897208182157869416328043921247132933183814740359411444264474767350709845087230867709102608849050947179715354744180032122346389189755025123373220188380639309497045574214667396841409205248638325956064969567316346726737477553941477523678301081674436055024273863897423593687716633400989005226980675385005753712660253504922369728651927472592382316427337579887358868860609340250612928542028142006658201205141447638494541509290399876161058752793786975921290597000298587084632188538454518074927333631705676266891648941053058274829453279419949848034994250118518684319442468073572851432736135975364235178734159473330278437835579450073336162033827747940981289895864524340370011163895255042325468842647885975600848879763855810553614701666476553549452116424778524252446284390139159893355426856792248596200628692990285358962641962032276897853621567738987680086680543301648971993957676498585669063237271255352817600550180669830055466730202409066885108253809052279272896165412401537828840398046130432787905364367724681968802362987488143025205206364246445230551110029603048839085994603393929046171324357293087437593324596035515090961365796567182993288600083357298621498391395389361025101249860060971863225036910342210884809235788624981593207296848840273555034610011092376672081964885408680927154912586959692917837602609377094178443661377555695703372105374293354417918175084617139799982559129452807203612497756770739615907580982457007234730244028401651445328344207596470221459300974414717663446572976886362172911556654614817017465277779109179241779210624499263672614956984773016581769881566504988201541714054589914355897047458859500524552966408647545661278243017956345291693579006640515744149049311940976800557349205474605407618709526396721703681475365141315672220539010753054400314465691494761578316967635233205477026303253171374787087267562425070026365652592872921330991257574942719731887714863485425256382717572827395629388655015909183196611150665981327907154769064979264332705796163383530913858228254631287762314343387010137740342246425758522731394078324413413117177359026715404501740371232554698618540173688761820759315693395308902959231590988486821719919456382082641600899155403619844580327118126404289316883561419934824431706350104537405425899259708138949900399797272231020878117101087925285028540592427865919968648163645435002064080281265304830787151874583274285044742819896767650968903299231113765734228001450115691257675995255427918200949433029857420416610796542807034844131094419918320467385258946628031589287740625666754829130604802363820510477191662955039049845031892212566116958519288112819671082183514829471997466245006156810299249863070582091079409475113350332206164392786376345141117872303943890361896400945005535876097312593017214794456069683571440858377962307632440415932011570496915013202386053344444783289486408475721301391610098194128421935856247862957100315784023178281340904596061514116242896712087324988163941339912764112252146234308076125104940357957848178389978938671707786905797077923725908272337183201192257157109286257822872644037298083060153359394457445534348541818286574718484893353684756896293762955774464505156235233591858977342409627681902351468185523063200179593015238298223160603902445085081384927641916696093731351954220793981366217457488142770979266537289515269854650367701803078542084733099418961050896595845419748085733984577215418140463617146054419381724785739907346026427973871740939995523403987574342179962013132185436210383524340556563038114652808671613750150278607559519182121997196060617548297036624611348949061320239652984226673274769727709883900499483237908735420369445339315462396738063191251778603701712338562814363183670761354969233401909785264419978359810442164323488090716383782792757261320406920798092254733380788651535871625669834364199945890320737301866825267926107136841383031141939304642944317996736234487143527359203931252006898147795890976936685363846644016201499549203087612959223764299000515462214740482145323024925976894557828347010404638930574265651141836548242542840315075648076880478151507492480016192720756744362040857176559997361292119073794768025260497378789350208293608848776671508979910282802048974329048416822552348567887069341452549829185131726271468273057864584139369950934394768472985988178567150188016796809647054202770383068824390700218156794540352378214102821796530276172126802356883233505785864143330914369786230783796933166588407499017890536082656042339450719741280161378481805957293127064186794084900689517961761846449345652246554183191124935130193474029636645716537835285805285703570576491670353933339098911802553348081883823608090719956569119495338574032844783331734281057986679692447887452515763232547512274961402127936577284128758217615525759308982291081942313874090179441411495324236261487198717139737740533493156905766510672348608957565767629897708304973820552414943367205158737866661974533513628126633724758188728418270876097510158863496786345428470444127891665193458875488989503227171800610898554720092207693874104790315575949457902360119821855213945448039389675311474579686318791393182712565157523973674368928129579078005815882547485790145151626474094085994964879614290457067735021234952123192317454370731314834213487467732715528662417179728501187796811167530852905282390685888610354026653609452032072990995743133391245236700712731852173137660997362352889486546518571782272133932538704052918362862795317334406215632023104260733834120257737924050566013579281820286296442875398260938958730538124913259459354513213764265393406290476339937716041000376921974925689061053345742684911910135420440311546319851104907497293287857839410085432583840147726760816485975643958038406958617409813760846413287977874703099407792507237704669651339003135874972692178296374869199544617905886102207506961737272271875229068151785586729086672488108731748385634492642685347787771644607665510610696572870904911771355147054740070887023931542446488116703757872087587926634506612506804703395984725886125971081782544549553783619836564641384567680758359765781514827712190438090747414533104218369936711783590195532239972835377593486918483158081406321760830478063972348315936309888163143136951163918357525406675299450620457290977180394138816740411559033665884415344676169170853774345925613086707334885018246688465434775775800375169935096025494258494841502135533816847512551934738912670966164632437413913669513478775713357491001632745014726244653684878631516707473282347491902883090167420936970633382869668442728741624071848138035755991603174335355233892712162344108971553715338671576569273451258622895226368221135076852031543625110247441511269208151722857297740731601816131295680750862509605640814774288169720360016106947016113552108774237335513456149682177562899273478601267131637643588616471604698568771284634782833166829234124495272266752325485048866218449475793560040888502444741778327178168208286988348231714169502328946195965492331130285435380077564592170901643297856524706580724025844019223280703285511985277529146643074900298057829370107715259600212306388084880117247801451402900661396397501040131367016044806173303884772486453486135650671536054019261678350046621292603812922842385450986455693450252251075573163672333308219215769250957187764901569872326094268925570661374617981864220498071358408461738047056841083172532287855047430780060141809727940358147247202609516871290834710836229566672418356162320817264115355732565270859567526237152433966481386386215687910712209414410653187108933184624822051804994108034455557698187540653251550485279323540846022096210960433311320102924962627455650581070676951664828146703005808340561573413248256254941843570496479749290128702213067578955607004158045552530319631893239567617542588449963346276457896136996417057753907183917218102413301129987230856594683403368818575210685574825224340633284415014050017121707588678137655919053352887648242163519274347785473909629251037479852866653050181762174833957604002940699240085908485115975043056357583196948816778699603603623824128353981986865692919444965888237091355593840635728454148779229237323352956340631881823019364164253278219055313474986039021423259391076681547002403279969941367742444576144357642644059060768977316305444868763974502851332089714152473170165789544728208830181598086386345889007726542000462947527420287535587467954238600684617295292383293714817664522496837901153062298882903563994263504646064117876622309307409937194884096109134315737366133091840310382826852156280264038886347803870465479998148778543543979823601870346296940749907802691209478652156398715977120913026078528845687039526557491615009643017247909809835391827986083168651369186600211933696465606420834511318124351236852749305198808504976175910226586126867902286659279163009506789362165324589271915858469948203276495616698337299927700775228112591930998519949127520188421165724597571384664772816150024420544875915502197394817889996127359303195162334983184257345211845933732848807645577891702606730328726346825629544881276206720966706251374129289851585459247443635081272870364834451697290545726681050278369898724848354636323255789371316187506148524511990286219178464581621454960734189998685920975238363953865384915957002810564114209710344874447354744389401374320879232048122296839039358570111308997051956351063457027663814666777588526291574859150534274104598419016579335878180858516575215216413387837496200335629433264536128887659821812090421284684143119812806930478782028207237014640079504296228242319227027092519240504675200651290944556043379186276303623420103726187611279052150830199061586180041171054271362515292209959369503792265748612657775501429009756569468303601178843964472146869181340919699067568959455325665524645746915280554343911370738508749778020466556456126484438361844937451629078228777399188477825160787340533977260371792135695908054732415672306500764321626127914968835954038535101377742962026448592948564185113266863230991798150535085028393737179621956004815385539566924011307771815235072175663311555416402743953373676775997622753583279923940430679510918500215197665535129970988372138395880302735126661879713295046656177731761659842106919535234977770112195246852421052966730462216076224190017768410867994381859785057384362664314963401720359598789288636748840455086591716929185212588030565978897156692672534362240277873803333084879956968853551717546369825604336350927851406119228217964385572187176381781500200977348973994083791722795417754119079478077135057662847160037224639767967799087452317717271086155319354777849769195899843826849097472120506653528547941064816477153837068239001270460080799341496881204416750490974868098731015577505823883873349221365407948512731006281885372618780480684281725116795650903603705651286868167003535912909321300212785945834267860507722175246232782530710427592991415647188596481195823874294604630537932416795620558639011564306550502041642387347810568382164417003163659991469644856802518926067012391583685298806703453155707252501883085878363840551740473468384669827358393020812730448311283351918364092142651129855482606857864570558250122093224752899854847186555897390587970346043017899346788728382977860405644756218318212139083343263871221162162806285017030066032154650590348819124120179866238751869558069351141478698404225824464903829061044825261642362169872180337183270253853092101036528770549188188819343304320956375475753061737460664069116352018600900178231800164259932058717142229342407440217692328658266970338549176152965532905236138317100496243038369073224448920890207831646509359026057381898433866564316154074975973455747936568744676943034417155828084376799945034601364986795069764907377227981729508519902428720970148179671991904567023911250038649385047035034575362819488346266402148709240035855991834229938275240639102167563626100646362496555504221634844000947099593299014984510053597278113762789160878884600738224101799683246157817865953786028339479467524497633711160343591714002713742098250425436468076158983179564755340201276414717368217488153623690442428162761106114762161230434286448492684341739956447098769127960142714681709222814237128907574829623807248830766393990514116952110379817937643696234302921262903719720130069718155450739621156316026618038894766212994406183837971682380435116863120850310487575254741906903514896411964982463155206756830244384913032270551620701364994166449187320408655173957548307159609759552426294630003056836791658394669103431313824144904559431993039889375480301628392150740327353444014621736589447312719355805229204196786540795355926629826311378595249928745756920805458355872137491669724439818087965455512607507853914562305481580372422908649153529033587962252149813008541965525510716825363409866675286509920650718750180393515334780388746451477054639858575409377221741033294267672962437432645111667816284986290975808888259090354528500953191488189904313894261221718492947912004633406535324957360578995635660121392973289991165098943579934428966988610150281775572925576642705767901670811173485061368123900188197003390625505277170396599035430203706356398835756452803415162380684600764994955546859445252176824510602238978817994501467198157462279415498708215696282023804857656078050899785974137598837780472590051446988488244623705083652135629813457581715193436363525596983368668519919259492997538393481900713671600729801634404292082194386248180817122967444293794145913525628858637436851334485748345489964278581324563443996699551066604915564555459869032778985426528909247852700012086337974663886024363676723144232962708686675918218477678721036481410169193287941783751249307761254462561928418576903705990877394748031699129804639090124778877712039530335122348216436572896530829763803247928812593396319308289556622208037742093717347447912129118653412874237405624803919938879905787685913965940946578615798428002732451455007446472244081201170243614280677163807722541848345748065626023574634370659065267865040189524178535732044088120264246706157369880372986282275241780401450460868683804107308765498499822816572944405990066536147291776783050525762412636634528924854888497347961519880644362695160110377050477367341500862979773471441320144180871577506183825492532257074247006724433976406229549073018588866055896424483820410735030699013055665409566240365645922680607208664336955856675846266047944295651365486135924114916183125456437749264701217991438834122766365251905983051765331578214021705132527068120406922124053753527598189906024372481640836410098915349892869398962618907978481643521188857911124422070160026133562621830669323864226525816394522674343673228979451388662701835794908061675678413656641798318048701947005847344988327549969026097032628428044940740054515539855519452201638834123715759416873019319328693928629082943956378187349942768490834199705417994453961011898076533377094853588372325133886915043876898890799261977100406252563279148978566542725001418593879508520487290193565423949883672824297578921780455506710065087460919027080398706976060571771728052939435090262951327886927662990592221900908975290617180780467416981160953583129321801714775722521636749567738618547676262391631746077045648332750342054465857554870665639444042258805228802164794287013317911950772777332116552720194862584401813009709389799245270670657794004700362944104862219068787138510951771746646796664451594779045743798312603564506011516967278515424827697952138298360383480845965458304422619364817102794814414760789769641986464392065328179383152250832257809380730780057756568438655264105805012645510601733865691115741020421343026179393529574976165603184179277963636575918806276658857514978644645782064528501405501149407497424581252687563127121482811889894070849208723611566672122319438942922700718085432957868992817620638353327068889476123078699148295028157347979853279558397881817777981533432254494126258504914338032133289447297409724595806331123859927010022979013671876694215822560213363146755854985574504506303051574648862436704954226495201209077538199435994487272809326332710075893391592171627885352834903392792626323196148486143972075701214532269244338398914742348491582892516981168689146157363993113160201270421462230122694199682069488965106015293568327743315798826928731526188723966296536161729728512609836154068192389672432147775629460148852453629677399066916281461425990492293807732058274046390356732346860375460936517124929093937911436664783328153976793416835470036987049788231362934926888605262324316239972174775925667659531750936081580380060258245342336190108486976995411333227260415422607399653095877036187875528413067228361730591127388194360271377114590028115523217803867247689124381621085865404315177979751475722006036630190404626345225715472026015155070806246332582796604289388881471040169892272344599936476111585507092797183803331787507939072080697516389199832410417512621919685755852298942482633269866296997663419055130945396421801953991349316732162154484696232153265118781026941022238817165463873703420612185558629665542204559174158812965811835534110272225582211813003573909853753167654268220673349544788164549388579347755159840391539825644803291638954219348648594794415132107776130148767350287631866349012741555085924380756948098750885846532652405707529752669851254162136762836221205190538908902096325836593625809867803583752095702921857549335985861271214005812053967997917889872818001871041712425096974679745605539474454342678838630771375174161645889033061849366604055120009908939020112311598785765062720216213578121840493377188566353349180102082033466276186973236800491705132112442322776500390350682779575616770608687450818829500534252650989401173120584389357346377068443720448952534253007682215734665434338927233912556370164629031422126081923859751694126259058138454131127995253145023073305368866551090812531823164946174556562820511905663629917592052347788847913139868120732934233682851083862824255155587962602677562692737476746244483233363205004028192638471412330429852334800861572924953415663317161823291124796218221153175511956715779421114060686819282240382098461186767471897034162409695707721544444376772090498931068729021394731838452528181319068918150594519261931402471015216960309789966995533037095875446709650039725423092029088311904758812825245086248231512718904174059464639265285434979006935773731995869023137325596419345297088689215882163435961209638573558104590513507001783463383250707156772665256832444357988354042575545577219062604237944500535117913835031003517393050057004528845497965695409796251517501731255079011920595440659814506043316013988863154989581569696528924801037056850454439405925700611871610084840863909300917314860848474683596288736934984090349522503581854462515270337625227767979390247921923833484143097493872437524328964672541372290001323933222214105933122436617861414008413617078325199616455281985694954213479942909704051643893150954386521633986418490249258949236619340454827367630466541961806293468228772128917884168852838408354214842991395785687270894324909575847335498450421764968561496404997520758364128726694641481464747652967407791995811818402700364303676586552402264766924634846392788638521281653885248913213090532236748606844697007364886787682120506481217109090159060793060729481349152042939148262236273577454090252976488042654449092194111465801905265116104376455062571161454980550318676222428405676831168172008789123426840118156931612156418891173157995270803577561225864814339981720738610281650722539562390192088370788999558733677500640552945173893763043657647537633464359722351420413609936406309710738610234122581878789591891613743677763595704971787460714108104601124083603699752116351942325388650241381060821158164613624264933014048526853721319776866012869149436937545145309051089396125552116730510503665204249064019310919923668199203197963767376711201831684455379364455188230703878984104927181214356035357262278931326144436992106350322748479094483542405136470322026476503944644009152707079652433563104991227920637908541702930280923587506781323394648077303149041566426058327101450573052767880097931839812326428139696825810648450405218896231284304026880689377941737289096890260355545985523954383530995045235814119788249779970638975034853153170035452743724922657167445029547376338812947918864485041858068983309992547801037304201759546054034918836143289753761051914348337152518507464308204327969771582884871039552749802818101668983940181918366249263493000276954886807566909294757822689586010698588051048255230608455430549832432104919668870324854959057883286665390452549587271811337226408604282503413865242970967941056060529008353632166126594448122671083515877099563782689093691134432409924506301999717323072590343613564112472590080383584635733034081995850321955746650299471548207785742881113902209795517968992647897625056024824361055936830544105305106284875125570619690138235712894100086333230884608136234389384372194031663767482643746268776238085658461652848429544901820067253059587277885612659171693797285564208373752739034622692019924199084138004239337547266846238035105661188922166399488660378764760213400758052279020166811164812259987717555418424734589664654308278435113516037230454227772813037939705232960015058422154159117984523192702093797653780764356206399888261575209957359777862778515277511783272730638398523803940410874514010972836278829639416912346220104294326850599123398429325083979153071799955740741407909506484659526465686294407538728490648423013851036188782323780610149732001180864918156626332661720206993753798021989105920753610510105744211028162131442742788748753774135976271537069752899137048457556295212333536699177278403326790102540723733985497623842489486256847493491833630738136133204317761567083872235842943923156859865790459803228178648848516542201988295786334629068964878280189444737275182933219619752293585257712000839123105882994281750774476961039489870000434179081729849913858812730905208722249347703078705740348419113781320260883316100987506667568017364339079751689495931541153730978140196316390894726915561746414559733965809148599912798049739143055809745780257942620255550356131947180561523186262668892565826515861995517893923895598937648726735880409752600900608003864334832214892326128076261303424844346695025116164979656560856524236764994854113800200549973461921806510118307192709044349489654408749434408510522255878517039049225313168239328582039806760558457054391947231936832629186166505620972581698223151415571602439111278122943918970670182956189178604779523676277020283890366562001284985023105160389454102822368644080646046717069598585670969059266451153555580082988204879793901326342064548401738187736977867144043226666731968982350887981059372200175935979933152113881312340778980808949561558008094760985209371554620114555532105202966896221030476560928455716933445450163770415181650594022103960676877118946941243703411499233896287942695323439480430110194651001779554340174577478169690868750291868485681914592293026284216933112019174199418377602851582552926112383947367570239342185681939476091771312744549537153846703516013685846791131357819489770045817955111519269243186683484451563327480223234084640598487289903378610673601378528148813493781777986894757195689162309498432791622433394714142202450572163577988098184074517110292050782257374212031102949578282943180563038032672966465018891004342332099032861285503139414370688830059343303319450621343577623738493640227696381603197177527829232694226071384506095464416441244761068184255596280167353639817427630661475925996585541091240729470051391392907415097511152850009834584876349620447397703365915797105302711601776145812896491044865705209502720169444315137617682544512944869900057886678310090364500872188947432533818014896002792680486617573495663902901795663767379130549978365351899553243616125162211228625262355637260437243018563620937601591002448486387540492329253138997135979957112054681212070200734698312043612015171690572451633208444284262771783608446331433550279934468800751048640055228466022412083890222262370344499069998141078711047984088409116735217582684922288900131791001652856140355840890203334267047245393084771021633030557208430414389976670522401658394543441247606473778759511983514985205344254513420117822023461568140644790180889046935018272747013132240234160831644661815169748685761916718940731042494855026959023530699142010148802380764913195685539768931846074554285175979272105327506085370620191592535940944315708816222789730131107884193380075962681557071206781758768354048220931760778990860462300413841284401653198760687745209780888177840276267311006911377067443703347009849915492887655363666471383153407286316589560382986655122336039414346066651669305948825767163949938901060691381237917824715021968947942909242275548074350283989276961071885219564818848974371109326610548695416588016318119559169444589640859088258073576675491292780587750981940753508959495098998384968924749628212844440294193635422736956671228825376983340702650454160476217521658552926473249509824470146007254979292625787545488396449450578155100329460910934008392582061632719115414140698484121461557344482846756531469556593250976189084235566416757060613257695452755773716249285105969745620083179009945873303001993919712919595855004074613243949598263164708730037345341468917040571091052897731388431113541590260109688700973779926663185231709131188571215168282684750636130180836832239819317492197385424818809929968827155067575065638268267836753087758605765752029018723599377804086348819236957944372844853922906980498315926887027163058939247943354389084329807299157767260549821669553135897098971334908843681211806447839292957147341996685416900647840477041169903664857887772538144867036680672190419191976553166565595832878553750893027539504475928994668655046152015062669687260716393628583409795123591942203985929231011102249854105060526318207439365333829280851121214873645963054938637284283478150278720838151397123969120509266497422613426824473359281534686161829379407636337319836520058586743755747575913828154303139815769658291469367840520228262407281389461155639124108685879604085980855416547395414623603617626368794373390495450076701095312568475479104359506937544454298907971403397586682593514142225393390541995083800700356503324272035247151517154404855895218294695351711486260809321298422208944823340494566039284815258111704666736340322914630742345714408176003328391364157652111106810407054687375729202975143009375415045687819062068943401686283928449352951985394009278290190584115252512093331081800031219545738275167301531160497949814475773630842509918513198527216631981716995049033713631069906215860261141308396881518820458668340627580366093678040674041166995660508542797374196179782590248807836070579361272561581074091770757531033797523988545409359772162268352708239681191852344509554862527552526521145816060966871960322080634102881421706348421130761543000486940728732476013365713056200898237197960340036145232820969476554644336640831521482905814202868063307328342538054470416323048067721989868530304102166128865783937148150730757824279017557453687842638394133174362683311868811013947986486034187396081433983135445592166001032872438357639523510354033195916196821621500475356926607752948595660960154561725971294041572856605998643395097799940257102286577265386513393917120601960672586587115864053041057397104700042277839137357859196466207387397405869243750224567073021860156682307601277190829693545142250659837470670175075328764146494615187597865923659155834654383205054489794148513246833997296164198808735717130171661095330026110563296208028649856047351147623373237918342468609563579784172461636980260698149508939517665496160926233635756795934833300597865741309037380370530755986433299099321119842505358211415990366162744602774002123874634153249477445110116870403457451794317386942752242159821666572347913299556019755658935849745394432282064240798639184858691370932524455200721761514673022713267097611721280959627112313826250205009554497096066974446123896286939841585030868601979003652862682968929624049942228963297766186306015124581193922443937276190290095049396147045190164514604757982021825484809158500675130049015522550985563219449792793411924422307546890295751388018571216840501501118478127907495480496691406323040626922733679638263208460877297382656477623340485122408544749164810764394770509681381056626522532559946778637809891424486654897580592427692313789975064930894183768594269708467487015137354737565541886289392028711859036493624686084022890465392097195971591857015669782425772127422044142242669954991398750747453197343456451041799424685635261904539199457297179273482500834714862659065177641418827546894605829395509661200615656490426250723511955352980971688007549196122546075189035397267346335789915016085349459142314696950691864378592533235240182095489474525792615639918078717875447826185613066639369577154611055427614929998816676814031560595841635713327876133614920197259094639681983070571988496027629727982585612210609127613715006908736789330872657535581123090193959429765634823403802433164367181980471981236386127626507659444775841571301265933681317243194585953876051706996782939001736482378420293416423198458892130825410748783875530714263170047489784844168081121942890080622679070172730976698633269901741357573377560725065693941677044055176753040408891027134050493688554442929545682486461539262868540727799417923594391389961039498553253599397696608225591595707977330937638840770806377487055184357547729089813687417438566151202620131255767599475341165710775207893905468952291078370831239571379853148493859360866464070588559765837237097374030138355337568858149269340436829519261452992849940779492137593409146959520899089250299355287305031707779725494772945694827470626257498818244580609204532967214286591576685072152798164845685850044159390734017595287376018534867177781415274635884471325903210717751538962526937339322107536290032323602976150232927625092593849045696969048659759662937148271249952391833061786494397077849580764962932871188761701189533230672094095057164732478925858016811246209428949686725595033021351208435329945803888983784524338699254864896560278785134456140347001393418065234643231695218655014049280018779307044586103229922978515950757857038650874180179859158634310531628661457706920113723323740357684075649769165925588424436465200364842471548317600197124156789667818455380488857630945735164742603273415683330668303960825096871132402981147380326633584398232652326886005122322281053302328743919238027312592015270014870401894710620349726563393587532267495831100144151723072272207510295889436900869475037419847727825574470463970866157372550265945275822030680710398234738694782411750028236453931011144549942661925055682882164929626040370087273757359789351866257664961683400772399554553969888881841610167542795728977092827649229299702962508469650116096095654495100858091260384160326487500006617971477572198134374599601581850585098670438783780557761657242142944249528728874523067829436692417081203225844027190968260759010908173108299083789470996834302155902094085582012692972843397762174076808547743509237640236709707039799692518285716847313583852301317255122995992005704277272876078769584356212648171622687547578602940480264755674629794744636799871893241270595918439012592824785325521849677214483358845458528894801756932516105486199862916840771086670166974498162136122286311088079862382985308737958652858311879757355156245918049129410823483588266504994970546504298082271408096489331876663744728280650428946248489578289526656596113892673933263536928988746063000874985843788776997222426934207315771550876645043255082084107839730536064173296772636802956288295227824914694618880133859922355532425013335433014194565197252469132681938499782506063334701936714817869413338605626766186149161124655507646294875386958331294528459703266272488120839119057405276019700823492964492805986780031825039089682748799455794948624803408102983862969641499296475187609731600491216891957482001591953565711347707431887125675697172832720190737900084722975593213970513443115997923885810002113114573848844623132733045172734571179160518454222591385566724000452424716489803650139712610860873695052497381165236412398823671806049052974197502207566250610488261189787468867323376219364952388206400328908956887212859425832286493504098448550712421313434983978429380722360424944408645703663077733263010868833577759440230646978452072048694305732267778050800702277330159297238211060465174303669764735526251117926441479016018870506898487988114797904875986855689869893161263791637080441499798400782527778181844574645819684897775686646309665371069339513453216915270810403671743178297858068181828095659314482022066446623967980104748997001354379782135617348152357613162685216861409625785772267628370525166382565844580563206298355767192142854305444735199268378999055152860737803522438147722215294924272213696646614927735170370077564802504858261589983754929846006169327094678415430397170959319449701080802657521678084460633985845230985369735355600254723474934848790480197416459278919766810773486869995435084035708703757646863539893913150652112125236416186078425029850541538276039849028576485523732262422491123422458326599583776234885633672800723077352117580930882294097247050804301782624973192220977502689233911099142009696099963234238207077581881614272790642843734107084473502994799819787271203242838576040052927090440371229967302931374582194580859405638057333454546711450353728678999578316606077248487676275771649730563655265749174799674250004847863223170989907858276656086947061295790732151642773245893176503633606117763696080635185282526647791694388605648512632821126765838539032966184037835873613581725460300972107108337616028335125871956649765375647681217963161121669193196402440801704779434628360408771224424010835021997920384559815470539509601764963666387450727512084919431078701799792568101701380654487510371913342488101477174895439046636049899622956654643521009857864367273771281849451524994121531912123559735621697024889452793727921029684580845504648764435162204109782172341367120518689272124412254344946619568577339571502218730192043854166090672802882620080591242825354208969249420027528013426588464544677277396939036203203409930953405392435061515313354121937407074871444873802216487164576133054252630244414664566252453461153121892711276172838686438408470526113185584613519146255847836468436074877728741894423605311072780018144376076860927033767007946796215739948166831980444752643222969006502858170647550468266283944945499621784162114127792807202084761796575707189766037962541167939324040195483842120623741155911086441567237759679539996163072390071506973534222784928622340581058973256963433249516489489666451051289862388828147272738446146187568648996213242623065293286302965010409364625087469660124050664513818317949820634047544431384396385480177437668194637113595861509616636180273330424235741102924068019624858794995106154938385415471660794571587275826574129582698594338492415147807508903940220831049180040339716555455176503741043289040778968466473148625698065363227680325136190473131580125303421581829668227646537700865680408535502639697494381389804535056463038957811809319182728254043530854576852458207959914044577366884575468178187820572629641981574167168678354271584062321503924256305234096183760051633819407618419542885231943656030935950590774235914017972333240717496971397480835310911467040433119612576244602986940802772214711173830294880410718599082939580988201282894027740731328329470784493871591805614707496064705394711611632177921642205138684058570678695117385066092121122064622869452378083808772765181659875952472101852432788519639285964376406336562091596094485136870088109816753804267224135613898269775021254135440499027394279279075507483025786107803961791319083370796451659166263498715174734170893720245763914495138071514547083026195211324501675751738150147408280068071974015316232454623538437675705073014182527123534518305534569620689404912483361956151900093264410880545998821481447142128694468271445678197099934727411924044044398126488446149844849617208213740315667556404998165373233180458654527716948144429854713674232106108011803666560128670200933858423560220583118949285319782180130924347117443024272538331181027678846737415282999684428369899847819141885158217982220356231877241937818103210815125017293996258807317146597999895574276892788216040490199138487067020378216069858556441534673962318885402251159961069481359093111187804758836506988509758224655252407301466562882928434137732139084705108089579682127239548142206995530812223919771795182481673115385349274807781955301797401741213636752739130783592498465116522412448338941772008459146220038925813469980221181186396790679375281037394611136839291935742164208273107082314380455736185800395102846594638536570861416772309591034439759328567463247045139727015955837373633786236000039427706485442317628641819491357165215331147853654852926106050822552246477910868886935741822541091996760776423547285845198009280697340962183738767799574353440011308399645489691364194083554628842516570413889551288938090555560654531784700792412555968270235200334049726395565741514274249132153675021114262907172044347802969622002994631502190736245208384302138908193920050474010613694509023708693269002647955142809674355397805500027849515771773708495769105926582533514643259392214262776226665358447567419978298100579462044568439185805511842900165529870954726546188871338534100036073748775951960817607133939753116813669050430842067176203608096449281956851035836825956666188712937875501044511623904981562483489284771159610387088575603638843883051400509529886853293138695962281165252422186712654894123240800560290671089720320669967509693489567326989498619656064978968554905231329370663761785354437847404316906704618689811589304162886146587314467279464293153304864895223161578350885680182983741473125667489445745280613612882862621720222840800206902056221574173694773893034925451525354120725399441320201808842365754628853999498694988826816861989395658722296358133866038714106415291836256291829360125205735235351508397639561259071835056947276619305228520447786668077513090661172754846650326459994975006785040741627519611561522200722081176500630931091783028358986550714912723441718892784291778116621212584035595001414916251397249156599317278413388317508457522010917512745512602681777514468304714680862205056520109249811990507367396758326583517903287736686539239324962572360659494657929721427197198641974888639446564473508111621799204458957009097619153904240361327757446043397072594764210561617866945528075320524839251715880582674971994770063902237983012105282508021092901300474965477933592952584094541558085159744471995643954203978095829784537950908821169079816385649545986113211823410402299056695117536325472820627373806685418195078763725062992670818447491954964048873631188450554958037791561678856743469280084476105985778835715514453588851072875312797299210138991760180524706677131372231498521891504691198866048575370437024242967224516238146604171732417654007174687504808974990953657008012624243282262550373288241340038791430368586875648494842709440076136309669417114836693571079944469999777825802585223321435850368514006914875623000583749983510369728697342154401842569685067911754459305943464072215282287220644411160340786933103024679892151571891397345023618290583712091342495216214484392415226886611012001084489997863879841320288737172157336949281969715216511181510350852877570227465652173017502162377942626862104186246566491518961335642824829220905564057582927699415478761840379778515448088337975742055155021706374570779889364821723859484346638045470644092386591423382747004152545269582845985523670564987552976584787363693510096314785718324948539938938777293269904605906850209668047596713974310099467590814988768800223689643344833033971023620771299306897167401587089355933690829122753987964930473952214124842703800625617628550038028034953715940921734635246545977041603338292816690694702418508494939637545437619833954942606978147898674802910698815518798704086096175702220608407999167079384689526206643526069932291783296774435744222146922239363375541822769172518485652559541444772295357705589790069813106158524363030225580415754392441429320570637128828124704765179459080745345933383164339757194461520875804347365798384514378828542644511407541766052771307906488166469636618621549684518320174536141492562710122476608084133170945976611192260877172159156946707181969104117568766678169377988726103300770197605765290262497462526781609217283998663953626418774781473383446646725809403087786941708703635521938052398420577942806610849821002513118931520337918761685698207931158427192070130644691368133150939540606740120515816469054138973615411075627258361087498903835618766155053137545872732862251307633138993565529476511684597545579936109256060328902870390521192989396277439670065810835908962644557949359868633854927261527192526669505992938237513424780930070347096518659882992482289248933661610247996449521600823607780625870849232305746311704657749269957017850675784143954753904421437583674736768313610244525495392126048612103485978858106394154218864696356278435770991241752595974919781249155602135927690345386680797643738362287572923397907797413604823539128915121022893663975837413036213515908182496093931085908290604971915095283586506409900700435007947276686594229965175281692695710744485102386324606667649659663252305329681332146086570957545884533036561091445127421086878019006295903546837021940443772734818742387056022912615300218225202981094863847297179175380274342452726653286040370234663252191789206779117718611804889246724375710795385352597642298069287849784499018979684859240928570981136669424439818078024765143304868218776997016521954835058994542363063796316523799746804950611019686993637414987685165505347658176741488365675928424916779182126245510560697557677649408906805664238413459217249253139945835154928931862965304648369897937648884414109589502027433239723158373868374622435133817340243405365657515382555906375953025287565660607587238715465391193200448760683941881126944722113837509959073440040834737204645282368376924844832590529124705005668283027167393444426918597343971626554046957179592547640187794073672477790127550451943872299630451606698063547209817829261771245232145112382199375203789201487419770747224423576562628833053883308841767292027928802885852386452051569354968634886265004426276465180469324754197121609553110951577872004087243404923434560152796687413449981172967152801917474880598318907010487982191024339937706472743376028419618364339471310414491616682034763811607052990313748744811420250519663809868231429637491361728260266689717059433526011062281701858214900495621725653071872419948405736049942716185080925004654897377375988325923680675011704649710613470588295654604854850826538615343144111755158602200814383714208382178950795097264122479044498875738310125812646116936475705190390868768455012434200907259426254200289257671674747432683800312694241020521861509096143731525359071631697911674919663253291244944202461351900429430948948777996591428290951772906724426473619897060321173951648523161561655009140760976351568374164971758692900922279716290180826479275009476655827078408552605080093168707275781333651483099567152471872775704357164698143460585670720402307715918826090420106836469186865423188083418254971591435369647457755097146127315492541546362777536700390608455834603085213453511043325435278119365313445516577088500923996371224358111886368676337987950125241671936241383331831119149096503098375750920657639343859637721026078785820675719194624440950176858533510468663667842716969550937979452348769848522024645216462816770880476632521934387344608332913793227672604911732957650957352048543090639609761256666459587665017090635844954730868361715550838239939622048781012702541983834340761020462539977936528420131795881424845048715838471712031661067916713245766977722621723038732305748961202534586642031051650959797201310713555271732645280812984108245060749923775063027307289973246822918228556767304727461636843818975863722596738420012964386783492995361569989370838900212468485065568746289411672305262159883064272449563134460745214519174910092836901544334177820993522584288523918734420762143322584425004169174461058607622667450861433756832433406588131203492551729180091471546648951740013037399786462123865427931742741496181115203786370551440804009721234212608511939812802575046832884878364016553598381149868973190703380665406316314593293716614469966479337875405357090890287643437349375609340491001561467354814342278092538165043094155901214748375401488394648534660730212116278768010296939488756175427232746818205747187120179749587777649589538004882759715573240874843384938529889265341735971573790559401450242039143738776311004872882625873338325121279256385806564100649353431358995591615097507177675741995340832857892085412102947351797740617768161669189599557330717403421338147212965290767311445408266638649528171843410196829966196848131878994405462497040468861168711000678949008115410644735211324347345664728910619550637962243268169445183994610577132276151996493646930068440122870656516806704714388363491798537496526141468369377999728845273270893859610972460734033717630990777879953212328417159309181692926373903940993097062291879802354256957290066295356873037205941553356548250847949966741904400580672400745473790411405573247328796561347374902109129924663197729738028377428698041070236356830101557591204980750198649881473006488987792674518232221328715376842832045580504915430858941393889190454192126224383005697561676907699485364992068226743684856225307555261039861832497797901676453943850656784679678215083166593462216273491731918097574865590231062051334280802845735699841625247919286155726529471936562271254446650042587948637053463611656240566439940307267690490242461399945513200474926290502380279169809186376219953372767702144483083045038142356631783711665571077441114497816269050710576844338463083439199306295755094459344232202114264493494120156957400725155254867633328160960466213905930295580431205863570092523552834519781902455697597497722907095384645455763073793578631726176822073161660894941949110062629654721760898802421516481708634373069182871088645006867493356873383512215435142720847058591703830300832313669294999792814051952754373552356916830152722632763494405781734757839478830179934273599250961037003578968002873195097874783594634055340092753531735138347653608639624879061721039914434285066990720151044132927325944196513773417008022787482026613215289868486630169382082926503274735356291778352060836655058971356782273977733143159125080489445843282535828958756964143137751807234591351050533391045475017844302834172081109503111218566060397890380316947408401190938108962894287897349823480021926078622846085711273572967613975069498598167919704705273306971669574313027968134177474741465567011733604317315572231899545658146537999611499251096342910665474715275419463714295871205860226178958268107257467826738035886858532727252173750283252350560357488681339543153406360929274533420426377295093772575108979379214744768641535995953384327674522207583000370354743210681357683805696890648879303511759842666882698768728388371226331903033867060520361285150967911657117244105212635024780739063155592004767999112854349136299335642645103020351410218792787033403402409606526347387087042203527789548986456750704743359860006134293854075739853986224885101649354610392799242936226245284705967407919533309546428326317112735922144191193364068794763021921168508772762769297145722646078024198256806764685087944679304239864263028015761960854172576479072556552078774110589157000792954080432910505763946664222633314204334804066190896362014026032100804489834324258981200968872000668849768103302090183664400835690899774927242960133764966702089376156952016081207602529646434070794222490710077248205126823540426070220299985124315206613159484584163772579047085005604722782483783725529409362239271780940531373238840009960054731943477000450022837258770148249335097007136954292053103093914179702120643251257515789613076454545788832551225387048956994101097722335412736297942195070168118041961113307922072900998108205381950069263279948126100837300595524715702103006144976710874478811268484896848122777345091609579768556011804976515717512626573390116483987987764456044001571233015264360867903144764454359285039357125774892262283157410546392004138516056298130223857632859186218715181530900714333377959675415610551079231236498076864814510024480087560904823399310022165425427674571559328340726832505844984102738100445576726751359684318852598972466926115845940394275054076378419192430102537242932304003508350882078402487234803672328271044103505190404407390798627251849863519869335496988455901636769185250096757005445697975908877796136782215411527647140922342335462734165597201065638623121368932848553298699068555074020137065780080792370726291866760299406978324643389347379979083986870671380111248289396758576173067559146951816360530152919335654889884171038974037044962419506116094034151019469476609249306943961755561955482977656134048609408801483106438608973324598161253792160983977939027204359507461812916243637653574901758013697882186647946092568658685578130990616459689538217158045758479952723359926274686754788550938555003856378510530686919471910818659618334609392252962759909498683445338526217006119492630214243708651783105219387236116454312366321344667654864508490723597575620793453290480119253008521544265754898066494585295504938099131243766112033009994219653924156100394413738666465357841493179519438820488418614204920815879694215549361004249637279059299101525732684491152796857315133998142454825595720100169157925345076390371412395047884431989081928707039329468674082672795427144795875663134565644426419761554710203414857654729327545341536196850028103366362464566303263120460446889729455657855315223152655344414250029581011611670418243442885765893627761771838367639486599303635075917885553521773602280121960379626445518805394839119745277367464351812360616585685491930018259076508540952545143532656308394319428319044205225106280219998390805727239400110833828713513202118157270751975374604269472065020430525065654819028196918792717387457026486002519335333479402750650473106947067510297152186944923247805449743290147639156868278389754605528335020731047223050768688102686283115469957412999401652415580829315647553598624021830959869078322686045825586857222626107124352740125728136366786477361863186373849639081468483209879352470459847074824963632771918457933197356524806943470967070796288173107690025816729683796149309205012485260968667682618613501106095143055495332070615728573937347700335481478841920227481751822595566680345082675397247745986106061610384003365912923263840863360989352152948418987848293249755777845110948528774180089588035821947383172425437058230558727683998221634487712692798684749028248878989419453669699349339070680561044958088411023845176996135856884775947521905432899751343313718500717677275561405365269218356133311346683787430067252747761216260331353152127362080197844621436039755326254651444403936025019152524746693001706929377635452140908124883423253147995911440001320389561534519346252901177322895601743685357899002614323640590636131564558921216171308322741565338967706920139187991874225276164762381587397148880012817887654890922840690079992991925142977275432406845610051312414797835025651578939713969757905530322081444303647476741123820607754643330487325482606784667212792799136292567991466528104975022204296179418734600496703763270043172288718069363115487011850218595033417299104924968314943929822811718425434094171164098079592329767990600033690877059268044131056402128490850172845700574684693964762923308731755794518053078379779958765715179914328004466762942796378872389427852709967923116205733820818119202832474804585030362276607516696288247844803774636111914197237619581789643506962108917547739554547248618570140812063472556815806901550434129988951086888706237039834645585975185058191568863281380890838210336502063036493481837740211513776849523752176288026889877149869448616194441579875067844278016501558225732941372862438238061714736878918594513661880056036457310701643446577219194032912145971163678104090657792815339451286354399911691878877604097846482856444463563233740518134244230765221626095155415929320884715446057635354640400580038744954095912550862778613664050340199291010882421763093319545254587121871533335884477774320842116786861629785070684061350953844966905864646529414611040685799751769716514504202861326367697555487454461668626489764647630501514964360401086914598462597633763543221433808557041902728419576530981736228386330493104929876123621053920236434438222047245281426425858866148458037820934259812465112448612157664835238784861448162269394454315543168116409110995752217805851559294489657072284570789651478420591836533988676648818223050423980076112829988180821371448353132719711422292106668335659945946007222976710836465126185416758277611981077078788316264043847455474680183210725311636233538424954166298824583704614500674818711057030889165135593016829518320297513675488175629144915605977540426749039133711455251627508215956425452436865518106878121652381978869248439460288971301329189702012157245275873414291923621937133326145517789214664379827620841428360932187054036542293792151658964713936627942637087539411675773577444555796249669249615757972742398009715161733513931914237247396113754136091658984017148469887195859589222444086257929696144048691613599427351620514846453933054162140253350266106825414005114666865341650861306147387524200924717400498470695884833051546636510551227140956822018827509791274063269397472142221797528195857873452044641091285833140476247616916720197418698669382425985267134576914614619804730932531808928778198620278596994803725430178586367347221557916351206402194177666772671887384897903332093956607661382093410153706452363687127107053630411973731976263185240910403789183274190727891286256470909300869861383177598581835598723894143738852141015857830576598871928661830072298087019733415900261972107749716731157143561347700077907545496748169352776091158741013363570096843046288508064252967817150301634349092387775153604946455017641964746155558810933943839249278794817588835841265452200461905523181102760165737542652993502789274194713690750520082159654038811255769472556025547101748291243759431929986941328866467980534605130097905552542919464118723708183632774623403422885444427485871797996067112167252459509582243426784645808115118994096024882054815562622411373163559892184883193141146117986856481849598245276858939301277567643110164315436195484198578957920679886919157022063712255269270676893813465862427677737481764859564619213955330593586412961378050493971879486699858307786834527251833444529949664004676105187336351735538560131623530363209171510874960855289934543579705779550211626562777234731690722170019316401113234823375673441813970886631444665350376425728426605965115882732341642820770507051046441239635672842550321169683380905629296658475137782273621639471009574337425016554055781348356759106473963423157585179536596578876301185930139653344432517692732049512345077358738644901855732958653598387742098545215461221913982428973674515196258113870468653462983200410161536837581828499434495299711799341754554280543615103293255699037419360160426325073460783681003834519562014513254111774494657627597564270407622857514302676170415082898735676411798836703742296367681762164720426607607158399345377529121496662563203943668835984757092165050971187278332956758266469826054215223654520123274583256090968476931861885361364654795483736644104061112351314960329457042879552309382113763785010195114436902359865973834387546747366505061940091778538166412303992769015210732716808466913700590808535353257244899728177843203796286891988441834960542914786139619947721750385709029155448320883280678099777859796734888788351979818678640860963332226005265179280026433539612186592904267004944117279794002389839585085244253129650486243588948324278308455981515624616064256905671019803645069617799017846383950791228405917653100714759207889272958797550297663988972104103514549892004228421197797298256992188435557361395986747098274388895084085028061299864321955677528678677698663287667464371400289210570916162113797620001449406559100396744347558951524666897829783008384920585665198036288259584562622455296370079249417354434582058244714110001968438410095552310093823546305606799506000187132149143170302584325463556128358932924277344436311264224474146859492912275172617184112052143520803999614254194994693654341679470264818571375296200986637225581849102725340536892968453996333891319562130211993496228606947302736616000550078482650729324419935190911737110284741121651247819939409594973149719329915211980787772127123072805439828576243996603236216742730840663919769017368685742395694302345811589526868959810667394659689983622306849736733127112164985122081355535597129525911991077433998873358007045398057849254993528910579411266056934170382247397379165973062071207317017187502753507596628199109117992711092503092531415102591928444620142247403708907960052712947290233174062533857559223645228047546855622068132634508505567215810523070680479099722977163537717150318273569348622576270808587427062730519457350180549411392201612321109194836988764272209769262793793288948112489106007137425634276111199980224796472149939894819552700894998596650800946755306797641624791118909023493130964804719920174449400954874817417563221686827381823636675223005649012797219143249347227935056655055542636485476730977721473051395322717250424329020021017108071576047561633609882545584171905106449502404604199724773408178329669268035581509190871863811900113722988497616101510765420385724272764927376477260090169746747566335754391180801466428156647505404427257226754388323250753992242450983855269998871414048154945164448146186045846164694013497310397425650831970788295372686013036683729194916980315782615604052795962043234153212524702223253665751982785891899783760223663057166171367619073959499653988568709170750575154115774477922596115073919767842806011760221064388461324669219549659554174122464337533639720275420815175964030447820553320590193612878519632243765896437321465327039959355628946303813948519802580512072273886549048127242328569298412494700062718585115892199622063518283388788116908091079308703823321586000370137877339837872027622997600289762563769501647095929159608868637412152182046073486407696056663504069676891494005585697357255332213334749748995219510507762810761742202435733711635362319886414535165148169762600018392578621816743662760182830363874706120546474621884206082205422113176305585401657464691242353359068303668709949498811437240702241143197105483982211050734573201611289634009790485049600464134801206558789843273349972761207877857312966893027253923328944738586519766414468462549344363146973723681237185007758741010307155718643326270840993997188302878172607427804956780727490506023989159308602653417551203337640406085872554852895896477602182043365312593095276791840109476931967623020183605136862917469920056499020036387938706977051037476275365004986416336633867115435292828579002675959370537266852428020375053675590678075974500147977797530573169306297291992976263795430267701927614650989429526950105598886829504289564785763963066011078592735025658814049041881717797170775919982199263896491348602000784816952334233731632799002354145886343538353711709938679198255659888531537817912798166807855647756751121286126894641070597896638860409164612312890098523859231104430761936607969152595547613541567933993279124552695521911208941076160347819046707866091982602323131170934980677452334370365647962570839826166617502584329907005181159401545770822129374841541525852868948295623091219954157493379001948636435960826326465785196906721308963633524123609847371162326142297791326123373534717294708049947743942552071042538652906631118998136992047386349086773279393723243281799144842959023729996765247190878376261835174590297911817110431478391951403615764167910205917832290797253420729062716468544349031707590470718858219858818558567074160593747112090043674848256668724879543438733771179362463268203154464654125036691167752514718484996561994857478455476154501206472877513674932777806106164069618945199056577524624315153675390483377066365566066279465226176298424851237369545900121340780320196300266046602903455361229472209312275139933011934736498700507981290439873142401524462565978523775475399378496920244661671925219361612710109585726275871082964341049517903624664145778218189688113770610166228023192109374482189990740884618646422415431720238524750690000071088226195685065521199372980927388642264706418720940006483939530863119452097689031639226487355580048867584369025240597138574386690146895601103825002437781201510105883775211665890702110765063738738470764128448672805765210996653957599661914539842957000014968251137513533250348009555340985287066865652496994847225405538998687901571377678079822291342609275220358613522594256361674007745396548685213159283769348121572469532953416644995692233884153856205396826346826355815816543577351185855930349427093398928596631356049554195868592085417871207043502403306603295812266317655150209785010286224608668912759836872479518115124734111631521889148094004520344917142641310417820868773357800198997484778538553036574782284693891763562784504393425236453742287251136152208950186140915374189120189982716461451021945533006816510740534967876608504347032036321575848679708417335134467210610163294865718148330553585473188093565660596477920711348164385256202917937570790233608278609185394717458942065307854464616573964671513321178138998345785021222513330037691800032011543019793647893128466306234984365371375279764266635794657228778210330166717462913202948914076766089922740766132133615350153786678082997340608472708642427363695285966507109039831503876504338110172892681583863640818853859902162514585693557394964464808408205211859855331425876841237739324108692564963894363577572450670489840309820939669783199076448779649786079445798793916692615904643458923816844035732854985590482018840674182423280091454214701563450391132449450782705861488841217194071912813675999896063869537954602612581424116987814620640357563970578915152098095643139499417555122669601933171780558070484439640612735006337680865200764447561143400097950638925578587427611689574357635395665875874040183264667765886450037184584178431787766746207313530819820899437719492985782000773462818243991775974319882561854486888354338079784065247651090611495004246806517316765574241626333970570194785794333452005890982826145958035809211777570980060342667646705071437050577895818259615892111379363856323232388774499759147778946931445779947591856080088888685035552901777621608256203450426307956566663984786319298905099147331694061679798359868680985004651347573693095056151211714345103767193272564678487809513408729000356537194360317276662574388116923665168557706909253324955674271598645305957829572438435965307133773827245508392018456711998265702171913658498387458240638320069891456717408564310131641413509680018873290127325492296961623387613077427796565057307057663638122196209239465143945218121450121439588893002879115619794590899610389364303538251604789160227516433071541271191168368807439548103626187360498287477989263638793557156259247808797381405769569534830990649910633603704963665859118225085859676864663060853286395025565147894537815090269692439507614531485129797718440943359530955188257331988898593822628222664242701613786166739197117441947894325988146697152479137767672950811182480093049490740545370542590341287057023521983355981935321826726824184870060554072323545024651152672585342725677955777270480242339913857623253173367385813256773934829694259803623452291475653881871080635887899067538784357285819745450840686782294348261930284067496077251548476599023401606237031382164316193561598278380384858888213520317653015542077907083194842730383663742187651592415356039172706638195246251052144184319459743460138865263424975717993461936743683577017535382299908672861016634517736131963988116629563018700350261579549050447872200694637455306643990827454613025294815210919351539683534428001334528809918430576540161830573652381940166243708310259303592115820273242441685990895847630198991287039356887929429080792637196925578027959104647505983591146734977197669958089406908282273394380881936381243232045610123414324248166190233534339203085235165827792678113853651954662363596197317924172605057948351808620302781487034702120356247195023341339107187582642173445804411810141296231480725690467581534580513040151070820567594647067866502528568356993023613351035125568248445248466110223580295954432726122669986461216940573252038554246115275646777717223410296556114691448690605903927045161842412647897937559155990264292455216628243690601020249119727038312698649857546179354572658997108771319620501999790915105103446533279813398852822694163683269667632226896744100179190530160904828747412916389699428381685680602814964430701873836924498601833032898127473880229728071819858670933280370405750897066164336892717390680332533827849861104893841271762584178012945282213820814004941307433886498621953607232734461189924723329533294269065306949321579119862291516481503657502433076126749488334503544207232419118658498862882056531338822283406119385072807374415902144655970543388881951306913368573411282018114179744308209165464389335554963996570467147651882436116108228257503756757109309530561408449954103805068249156126392622239744205115447694137437148608355042413398123896429566575661459539266068030797425658953388311044341711986936815624996429007457064053679719382887671435608303480153380036931915737235040386979740282509459156451977234640459563259739219341800578469450956447720409947847972503483074379722716819961948033930525480199718538302483362691928478180435487496501489891719038722620574132698437584043880629826737762225507757517217071910770776379919153278574147023429848865075745038178281579525851843073220797684878998344589473079730878554845320936420929609925596974974796672242275552867327517158213000659951876070377703545461785125251929846576454040168111737963959351176828877635767317511989862722898659221861177246562569864990539732402973626295691683661258321101302412240370008902108902588716714946025226851434419584191146473492841640481058578289064420675036989984391248931597408390967580227666014271567271630817839442499084043162859139244341901193334092941567847865093548450007451766408674629800101799835063897014816598098119111568521257235881149889249243177337520361839415426920256094255847978510714567609245368174744759045349043768521487007378355346684849160966331354470835182774960132760804619673159665813513858190129466331692832677010605700180845775208501382329084358825224162465882172540665201970906996221253613875023450702281969439908338209211501503778210926863360445505831546494675378383649064890368525678403493946945365248697116532157325223918414104365345396473004548112177746013156923884794692882907024420970409185723762768512473250930294168880936477881171948751396834534592561231686432142641671396727698485735617323412335360210899628009904265743017390784531894428781781270947350114075734767793623323513548596840696662108781832110685704437814758381164743412261960976261924489011748362871153886142499132133092248584738788288014300971645851483310120843001387289534181779421771065612474696467001764705138335339344947166694767880450393139866717021694580617915174769988446312972794756313871049996523137047852143412064763455555815100735598691998835586972628535138536994983987722130056140521451978536324330774423680190132471874107832647032538681200126884441199620556490673007945522774565911725047458092270372157263953364098630138267509279829710264252959797960443940129844355005005482253079913305499346708862998434793697566469899092422471177714028553672819880066257039614288514887994123933453153483249589628298382089970381240550970910557788703067787230959396788467613355122240155581009294733215007435950154299412420403406192226536157587529222573221131547723911744069644485020669437363502703994156578954466299288495361210703298818840221263324010920748810831637348855435496980016700991246201462325016539669794536483940363930625588444587164882056209524580351698750334628933825874870071655153002876333238276894449768753981662650177609594032163381546555831103062872924791278209982072802757910622041613588292624699196986948978807191512782877975777144743657456918350659075484590359583565464356691776171394058889910453931212667678086567173091710226516076321759531140021967517621853691173280009719112009944496851042110193100692496850445544003634870546285026725262352580089968437550031927327422016935832971710367087669205688361304169989481908276493121110616205885784676822604144538843393133191786990020720675462062007597534645821293959954103476526836863259473209559303371172931206107199362247348477986776197913712181231695322376316622705507123888102538308284310472828033442970241135392969443930414670176353977462369850158318407597808315003360881874473528749068364763954005299991718369178328207309576967805942898482100030994932947217624753508202524196889434721209423172288816857973351924259087117359493331983539108550194238743871781237347183353645194916288737978180245267259899105870598780656849546086834960537388329423851324548412522614006800723921024241772757305264459603692338845800590228199923810017633867079051540840999752203963223959024679202442624646276591262155267222516719996276088018907588174285456218617106550138822850774462544416227294361885379831501617734275702190329955944177686176480865328330036450267195978578911198556441119859601902570551554079293530314162162100209409992754502758120636323490212298778360397845748286526541348680220566920341862615079020249456207173508408461155801390031409441086984390897672076070857685174211785098961717146608736803786373363871690012947024916415141828068108175050562219277641617674948796603712874952632320609109495436160875775243064977824130500116235499472074071538416014481079920534035156720823965996892034738488269477779884307931784189162857494479372850718584911745420627481664521611548132492810509546123389240778907966974360725007142819780974918999731477119559411768620091747613821886500956938537608159005744968767686130323393925997142485810893208019425467359071526582745791477943571652291827496795004860708492728543541558203443579076748684359028774979650685207333423184328994927789017876811638294367747294490584047393239875710543173672154341429387568953100510738136976711492175589259746878974156464992196645191715348357840077842519555371739110217623340502329314614130978662987599667734819985620706439573534470106659489954595688285297385014176110479641785641749296719617386616285080167326206012660029554646903454578776167861519092128340841602076322670878312134897562763080875016666173969178332499055389084707952997039882283285735825080141130057750399153160241226846428283344549675093169980288022596785074656034933559790677852112622932314582169953781172703922009547301046100363533847775157005957590409089243696081879370644540573803559102969974930606757155045147461234116427355632274669287549158493000911976980435333057070937512725257630547045966651258224484234634258109196709404496465558628222489965869930272725905907534012577782371983935335553891142333074454562590787488380035315876849294095105518629800469665932566423517548888524191196699936541509523860573445779976693168948480231196205509235656028614262237083617976042244320778997385939131816076299349003655438535361049575385232596860348684670267418272207277956877367173802615316397397341711793408622895863539096345734147740164107776152756994874838341155336948243697223249353083782728455038189628061097985706490893532792079427914550815985849277393748496937256141912212091372696810286755871499439244042964032011851882466572516632682561241921128088177059903944420915672193627362411150915418784687077147902226938391820182483773090476552714050577457279942257283081573044025662819123672942137996205078449271923305541955353400139190210359867590965482483873215811607339152453583130570261066542006179129509932706480779506455432851775948071028195626221720618140037957222323757727762757888759933166708945912195825241830691858080957683723059254759798130609413707156304456215970479280577905445548279021948787822465041487209501626288995672540131924232586702593893931408335664760719187423903335658483644183820685188486751219346719136759110212711094959466425613153337520830090971877303067595023444191552938184482990031272282248749328700792116849860454439972276664449074018799819345136627930271911857937439003340880915271377763162601704773371180429160657043686302815811184394692458331176625452296403234675195454253838824874651146027469844894527966693830733621201029732442215515653549132504125599937335184002451098929476628213083768187074213220441017266543600394474873633249465164424908424932984738648879804915472686381454578322782345558854086911132196963752494328392123801862647759717682355905768141557238924599964418725409898803296579305960844752634314433688662065256610059588403791424644014922067207649571920257271088661034381528048627554759261994121447979845975478689014353751622279410101488330490396158943889027845142259191281223882789158867564044121269235092367925348893006727340771123788409127605468653205284482481219361112997804600507603561193217048696688078733820206045460972934695186731179906879195838377749071979779369982055393318573155882522032175318845213958174274028730454065628859323163915329139814214343660081730097163605511459401748028252874081902220257111823475440214594389197239634402495124956154268152324685726516592530091854242414265513761667663106021937124175835537793180088128985136805506888773793280581500161748074153102542095207603699050152003274518997580385097315903054472769715912671806604645499714963269901364467502168208024430847464494489377756656139583751962180001567467246100738192446212475435369596430465117543861333945600000471738056020652325744586276850951877520451907276052876183690975430802554278572673755829502522674651589572332495722965956310216512582673293679755089848342181375306148146789984007104034641863711666211545976290805788196196951144093760964654538833175715161106237700098423034485525585101679322747499974171468434032098874358785453783253172494965239171766360349004956514619432362093015783911103258711669704675992655324627643729445058721604719375495312747741845133445908650705458961288627794221409098838728570207151903535832777803578380392671774001495665418862215152291353008372164686752677460772014282995244585031792377989029872462572174548137455659422705095000881858324956833208945447548505194493414981149461299479924603591072681772365168451030184740294603758627082664055417391305418185389719289901295915891260704283877391738110984928668501075462831933060507040969362246001014198000813697387067669919889634686103279606676322362514711436650239052234974284457666223518409835242716280424991618337337123957324890502778128577219735109035376766273099088427375192180833985205761783580694878454052351016451441134133014204743271649753574434389214895104513385482789056418578944755190980784143283601019427759415511118852020308098091169455079821302049674509547151723739015544415930707140574832012088432197134672497928952979354796964916840501850530682938899985463277838631796558002663218702531697181530530233605830053152259873953704000021098872526594583698980866247045961543352693136899844681267874516767312091120582171997973436336519829401146773413390552631467402542526104603304247565838220107627861233846488994701336982654805823566198327956954809195612732939164787917578438564852811451746371151509746196460048827440827877872906593912639910117838673079215334811466999055289844622336528837015920564360922353854569835673971226916261643253335440150280084008243337241735922722480387466258672699116277390875477074279259942382137050906284028238871218874591969326261663816950970786364390266443671719986091306369001000279497290585059980190656517744311215240502511140698429480783407402034859735813427458893701010722807253267776825769677442636667489077268374397192121011441515453019279368194457977749432490229747684078150053281828419189310915476622660891081428821857919360627841361197747163236857566558049314673646066556093216887305444698964149978941522840806645231078105525047053026602415822804843869346472669230018786138223074493162868173466434219491041823989565047316963707030817959992071056332205614695119619806325227644325807854305458363597902131803777123214910544721565741432294190491523824502565247707745804614068259787734123094031123287565704325902311114238953822795812755101168260749220624076438520034219444981032853303005167152423832865069142503171900339777413828485829830784487191805600921202979072542510408678413695004385335046952971591363760728153863942198258276647041204439876565914476957493754691207358724141520769958513375590669040359212356745188373887876308361121116210694883002034031788746089715436630228946510783348954900885162560776257171377821475189448718866628954154260941879494430586070864439078012796621724156701901485260823693281029317599013866374453894430692911814705463258979768112194732130704955765973947651366943311461151734150898574108813881361240731205059582639624060633158921053702905817794970994897729053538294464815617350334099375262538869989102938622215109131586001265171372556579832677669360510631366208933760312531297961765758962699640289896520580598712939039487624607135758423926384230455973138864071105961112591544561509175381921468027991089345140285076254481330935472734393211893672692793172075309266332098854769284959756238374234869544179033450274726752361705847328120011800042478756317019583485884144076571642938246216371556095890838441912072162377479774346364667459215050778111414557378715151525668200510543979867549588425179801333001368992692121095338481527115817674925739525054271758423362993397353041833397170401500923558142664520597716782873487370634684465851517870275476661634982548622975006826294128959975473860831380988066612050112101409362628666550415806345955040647079319402243365380108315028168061945405834105167808792937441083700919946052730468673154298389383134424672195980777724930614489005004041314660451724273997312936722995031170530452012352398180275401085464073212965076840807435421138060280083435759154711081930269077356902959325370913490804791303572238558311519439867042069173180147763295376909318592519686484604199502485632709640247761504315334436210615903338885226615983816543552931842252894174985581788803667985798193064866231946709632686024222033293225550719725868413453407397220654858144809306017514787322104179265333347398959896935808884905095223034415965473433153323297069037584763774558849956559049731647316756112744322944458471633470462571586505181842712834982579293971938008584668344116262015630990529744001017935920296011196447180764997254076945236686237665533750877135760898030879609633928020868010768082555575945967648308966839754083782521595015401143943030808089755546845286727811056570546141869841055599754191258713043133935697525727579250183884673317465167041284851123559357704671679578148921840718023909230769105678856111182990935885898194004156529410778325032741669960068616815858360462719887980318813068495250424386118946245367377150842605738542481675726278091714070140459733062399959737571766025813451755474767828024335013272156926713427376502909883407712645622859191497291245904767754745561587581801726449252081657956052182477854734951264294883683487164471627192637051526936140033490997198728158799557300103568976944848436745342550214936712209847485076814564157622516067817218791869475252671300095294251770087018065701652953011857323222468752684780086007120870867251731707813068176771501100179424941669690384680851705650753913697439946225171159721799423559653620011897563151513995844194274779388852426928344956457710585082171731204626897776296577027467035021701619025501922767526019210999267254453126211023182523027575834880606552226901491862023109080145207934156116949344110573428524450982646523567831759209204257694866152648989784509238931200734295770901334263568195571996384109366820394427827230915870638575988296345724232853519135564819482454320400729071585686672470787781838228127634586324587666981990303354905996202666010427255769471536143273524977180038053005362054716074333609492405805053442678311741926196174281964012630276861986473775396554691448152562189753541764652162638591710233799039144862825251474146056594035063636155304318149721216598649882423572561906414390445438983949750707459733041395442709768347204136881483906533714072056091215688711500084301178475013005211512051075498355083631656251362974571618961943511666262884870789211355908818262511041531824000747281917676640484400008644307456895109691262367927089666243865491609287591718634763377886811338234239271957953482248797628598695171636659554106842212802184387969814991082850653797407770262326399664705097110784331410637747704253827785550810129581126490095994679670156706316287900342998760179868461618883581923534038343683935883488925143032063157285090601673040394455853059893371878715684737060583187285785768239645581743008379224115918323954845517929010753856922066279073643756473419624970294892816894906322462956450090182935073663387709742852579350207295209454809706992044552447758611082724451258810493079892687985446845748260553502083865432843997515969597172579323918722753667144976254237069454946638430362666627939250202841666352731801321944095873794632711891625262289834407724708742632985900154696185753277857149574970848074421880266192859625878521130213898009403699399780363351872671181811045719997662583204076628205759100067973701363785513558555925422907542886512609364535018196262017329894501730342923595245312235670131258536275936442923911340220774272983152763834126289488814897656188596694248932833073140805696590105252744292140439410296219650027074361095242551645801260935085572464775731890269351112579372352498286393012045886591318583012549094178579893599996484652329624564810238988716312208687830569010525451002921590887594255229433550432929348910712184718122032489421749029972695290426925032402716235777902326982061091332049890239688549461326848618857997309834943962746007506333914780402798451402447888865634053768680430833679244617447805761695831288158249855792101247107409366674177396220077560942005620675326189694139318050563538793500526972506249063718347685882287190659451551069408464943391842989542887079532370997774145044847187445257083873027061063165994013333153492995389660504307294318273383468624955772715812738969409685898245470081346055772256971177468550149828463080616614159339306614131286054071621708660154302324532342544390634693671144205535239656553371907147297049714394863246619725402783181062546110124163468702793069793698531470813864866757406119193941283371503004301186193366335991318881579986939943340406426675091302948406732277514453798361925480772945108304720761382013797004526331018665285207452241683395430077266786764714846352224036934010228153786333684928367012018563577163832195458045812288675583904104745431963960473070484969783583934403027382343563978894991006520446988359984110579335876894780395706739380575185684266050435202323855779089077867562913216375661925142881174694110117032259030979956099017052115600629947911196126855970712420601599605168059691694078518326771201500466276964509530147234830244854190548881387470923433731326744534960718545367969729140157111948399384419223445907298443379066988525701063934407585679277401943476424050607488079167115723147287226845235736700641734907460510930957788180962928181142990312335308249140484976356710485437847871039285104394085572009609134349993614020027093260534418700392278763506131102943032031808965621301970279444153408896009084349159529604901050633810106458382669220430576400926784250167916009870577575592319853058961582821370006461564064023276608325099940992103127505611211777068230484097021781780552960605885614485039790145515523326682993064796599237052270039780949459839066454642714636470126421512468814105925319350289830360822650666572172155396571139484778434472234664097388320235590627854322638785813232255003516522589535806044470363142367483039185604620550075645900716709246657793296662908053726971629394168531604936025137658845247794107815521858132641068354876796560666738979650468553083199347403692134731040291574424489430841907415934739570954203853407222024116107353367944229605215523459436988835536908801228001204689271900963195117965120723710689072262071103690925726387120338819978317271819979100413995214038385822124111735595932553410455049929533685209664188542767327059071167274587187015676025997222900078260454058612881182551413768389900029387586917430583676951584240896811477950035496667203714184588730480538197260412248220950706107901064728723499887548103247720602365795603118178250281849690895821454237137760779339517338195602929774917387355193998499724212874917996006804024351825764296934534127128019880033508749126622477687324722905473477377240612240883152515625473106155919738033789466129851747097783167639406258699932335426602848440486425194800975819194367471313367660203901963846489260279715834344518930950431532792055865071298836862551082524407778977147038892256944227838970754349954195955771381526128954246700414755637666273930404323118828897483760801515068864944091469184623783266747084696047587556700501892063636338013646924339873246517400491972560096136114904399889268221202794376325053918343297139734013918319632639099589394449368150331817983039853816162573305042784818159536014089114663041728617699447452727162323927319681243631025900046843578150013996745715304872703813903387452777975830868663290494652842726739503391222279429281326310890532654812666322714312810033088641056843887303165123732764809851448752340463979688974603210237050655573158251119989766952253240950658028472502079604231785973408010039640589224686042961533608765865232689568058925199202162899628292906697238174270802123183220079322495475296008497761993281624405193911444686559819173093777344550676470899343112819388637655934359549845995462436507367536718563458455516147985877789798323770757589343130609200756481072405881773674726193021550094275316375024453583075743961435041839274770499164980337050463669366569225893350718533241779569278371378498092049436727163627348482969413320996095126828627602763322300716692801611528075897827191994098572197336745100133204812615751483468525440449244850047107173397330601604508477537164790061690687097624098399242444605673739284139454908596851708842037766586099283134516069653539812798684236313666911726537350452148800194243128215985875797985064125046948303557280532484382820421116126301195736872730356798840907409457360901457429179072779667383550851051480323491267953590578986361893892635577366083346515806217984216468904593553548868969309797411581341970983545575673641158719067711548367967360312368394184261868405140821893499643049609941032667338579126927584720667091351510242354274873695350101853568254195700032370722193138730844872884818705975320803131426346568656642695684432860093184679011963029126256434859407872640697450522620818792605926329840827153495205288213170967279517139106857186862994081216732486795307373262533242697637966200669773226775828642587871351379490397547155102519725946852585136704258206356909893330682575248253245823501373262038885421864522155235833810606015807598786214564430922191952617497890168526947656894287601163862985369311579452406466744963758065799746312628763606352283065543602732343229161104118316825748793083153961600432669673772483008944706760760964443758881133165372478350882802893536408387547300403245686370434801516111578744937912971632591221681846837826544859343187515520517026813386630638373684300067226635017288226318594828923294926098598971583798833896817415540251453523187693617640297044403472524831684543499194282157683363067013072183242130191366665142102195788946760740373928160616003613840114365357946151364018572464235764364215613893072124854009010481520546804209271462242967426056039237252141645774177756216814655967470264475213251978199556675045220083901755980314495261631182703557804106335148967987626844665005176369194604263918740129058554796447495583793191686775622387097356970536632177303145935046933124375865516972954988302506861773117071768868395201621959838889826936961227967799168676127648168732780960329886417884918865189306134463466697369461847810194446869351274905119302594018577076582472209497134968663003166134575024167253408952186105407668280791091819654721235937570583930094501339190757295686050691894974641818023006373874767052558515073373862095610276006212626597027510926471784885247764154992965102015093712739889564063269409197632046923902189483626951919118802517614174691974760150269696391267907639958886493536718186004190055672730658115722736255859082878486255224095354329007598708663617410906521763910682841999249569822552706691041406913143184028644291530487888832295020460754949515263034805532538873876930722762182433244252261914688818103453070114946659075993158379488402515876310578122724833420118467939854095926811878495995811177130807211436646632897529894944511973328034562280548281893802122030226177227377166088561102806931601220948152561497066728308056742195070023712592655393684157133513488328354645090480198521405869565973265135264146202677199934043838018384098696295592272079083854387347315935256546859187260623025617297032417763135458179335520874646026040812025959544785471449923398687093045858854045205106570817522071622168393530289014257342800484988828944364510380895099943299939114089299840303717087785109466971698251977864908395263794944036105101534480260899206374657199358181790688685890050042013077206507157988901449391963339129716208445726623262445782593499598658771752481654637884758819450875547940019032180232767021011708604178118381086866754786402123692647082286240938629071023010812525466178610401019054279477050316664629832727805903435684173224280962716597654990520754511180885749659131592134176501394310975804560096066586743083893459485261326006443159450805282174756137560182925877258483911878757037023139875422132702881460058888909667070792705676651766261968673627070996906663089123551236462611729583354294651425030998810607932194837061968088915219509449597803813770571354300887926961901610268577283422383588141881833286479777191295492883746195189979743586183297479165045828271079709116320311876226213862627575671577373224715577875649322082379832859520158079234511040974564922949282589534104526261925119290360809354807906591680658683305501712239674211232196380912420322063414133130798648550649811744717903833854345886897651007765347682530557178554336584477401801629868838871625439104249791580786883806571017483619531917653715137521691455872475286037845341365056332190913149043437602884683338147026648745307836594207052442332467126513522182717149818538628482150046892335335674878367087414881835571780445905600511481306727225449374540075083356860462123659469907094766902801289949279832733100441725563472248082071612090655613810214786385932426809607930637626809677227355467047647398850256196141990375209895574552994834641460459016684195170390061055222661994533361729297535060538453150947781772908045687762773474028181745899681501494782429149757998575152054004927092347766172675992525565959365779559565425798808025741388463950085892833389342198758721427764403836152927551601836822623494259647283944539608247437469727626684118621303631691953217497544892689892970104717607136698571746146338192576187398914175541047879216077420704696579232807391169916477104887084746033732296835363299794721425051175061654590949510400593801450333354953116237662453542240613209153903502892703518109713178312911136240888114464705370119781739849781461946329969096107261961635435110660839528642929967483578417769301570169631731290262203291209218489804934793714521534897957013775169400914334861321276326428572973074483882309483127051202778875470189391595460253461834353669436531837877251695946557556966927844377662542440672868888286153896081162810963849384311001635174811618103694530022090508931940781942707139473752822103188137982093450253338647768841805405428828588537235551656421389925388941142961984756062857265088872756994383613004344464503234354946554303008405019645947308402537481847978903095153696765069843113363339847738481726840326408799730569737107430662078593188438110434905498309716095256825586586434287141735049996371929318369958076893158721101335202728076666061156549969573661606642384052231010019230331001407752262143875034586245156550962709699355007647596929908644757051370310033466613017751200884221993930420480348666801953503798596577252304862203317777112462722735644487569951655603958750486285047523691594615658686750780481550785015513661001913011049756307066375365234219311887715713065557067337398134886875564378439654217932352163481201347029057328749632921697761473742625843376903862800025332075524625175273226782548982607567653136543291557928241220900003397385943498872379458208806653474599520863838932346576912079469400591481042471959374193107357694049613902851602917096574346934238948321516112206292434693669250164394165656718644222002052865143736121426428559649770276871857820580782108122994869764758362234364073125661686085708121580013632453583347756838246678406051538247498019531693303666276045274509541726412531334040677687410177654230768261557780718934449662260601516339385218119525360732290016472487565556309219321129412023963735591659024997234175062997028925938675333900071352398711061244409706273337065992438188299288991472730005135200364460822735794743909331835369972385353819162987342768280662144281799995998505487558664853425213715581411788227937975925813150933177673415344087758344777050707637982344965048277465885674429641962730295158834966452118245078555067197987460490423764879759397022383949868976630378764374112650370104879944898595114603999620646521703341382831931554845962328902334328527356557487193824286966572574326094104502291919007781957293876709758017579255955132148034297226215355275294474811411534194917748806793467353180793298680254759265509684910822046031286389227206094856108192194899742752356938029845628532569654076771549575715539991177856119414330953111779826990680183045640489124961364143684960757267477738075909533292312689660388021399888952240126798667951738669314818365276345499935014725475870183949444353489975476278425768437238660620137402454968960322566421727172955631915102700421089602989046533335355226998881819404450003604890300557881549138907712260445543342851337857419185057886401595709918051004066199181229085085431357216711446776126557243412164996936515320572282001590871641231550420658749466380954596283211281473708670375990769159177774279660688110730942670777151888926392515082327227429529941767498219688407885065157684462916895488861949227381404632595990647093369373276862624593437556714399487502872730445943366787084785715643565186917031071666899895337171810546223414005190120009933781651105779508448152349700499740176259897480906394283377752107949814423725802199138706966254057320563284661735543654783934218573770410897173517443214864798823709395799272471719344606626866381083004493483334214823980091022465496953356409189026391006196268718808625854321012417029831579211268026332920815504238442051468850688602378904917125017897279326264336341169410938978996572870922081300347171161449505896192469135336819890928726990862464845362557315760916387768703747955769340345929840268809803877151986781855388786431433406993265730447593201097852317047003859872009734959987969981271517030894147316615589496751772178986374928037937883170403237788747381364988324067557493874379427486998634859011998951841295107877400882762665885876830686962118028266634588268136213013546185012752254535029381912621737289953876328423536734114014746890270087981763867163246858028046136052805547120415009189697644193004955568444682585537218503978390241076195105694527782637762027168380389606853381438013741651615945575529946379684163200381220054690310643499851613401854167873328148279514943203353020021903773880624612446916267180436867916591713279795582652771807561801398357085426939276923489469370468699170031443979500752249988101185059825111724497725771059973887280201281475328465970970278166800338359840011732992840426900651698099922904926630199079797453561094719013080310806354519667858981389709407093629225405143120665203207471612772946781895676944093254684909072231046813785958201787585566345775411202952932581277554510989782813015037959069097998478437207824396047943418910134854237975708539893967759280821358962014054999034997235516336250785247013074280763000694075346285275022500877044201056446942547635841229397770210175863421259484094322505337970704123369699489305828092464956668409410982572819538555601762712546184421215518065955741800183370512416557266183942471191884983397818371706654418749112489357453277936422250408910756839017394917003689935346331558626833134456905667710612577605594078576319023108605468129226399001567481628705412103045961093634292455487993619466114585236362340401651049338752060945321589099208910561801913122258452565876277989217332716710082385796669817990668907598539076688277044952938946724497913673258875523871382090931243707419359848124865203482576115626253367355277300764072152338775910903070220018550428306033493978819754856939649272152685537814772036632086719079449871292484911555726866036095353009286162952663982541515105376597437164025710663146741090093445517997187955289531809654997502648704656889632687843748551649098190415423682650103113242532804703449229847008542534150427183478163162221534976693301469263297179181650193628533047407216715800271611419639820069856222398925805733459018984560315697402959248849244666706120744926166152195378384770892724998299778246042545800807719224716598296098582748414926651814956256734472971522782811670029733486314339669433509092761591722464994937458052028198151756286372962228806221769901825923497259955049385967243164670142964722368696491319607445630230312012491305510937966842222591279983606807739757805564674382625408013802622290237396640393328837519311040146077080061748459766866518993642174874627739484194103123803807449253844126581114870304360691592744841050535981903078755241480371808024429959080040435788420751251578327199204347271196200630549153978779930969836905229979442352045724954100243058718228572864661185804546392256474693529645025274609940949535869684301080328258626815364382783578331526567654348238469964299161902959819353336646687852402875688456521082780627166840795352156689293566585703018013807589447439037377302885067975541321557506647867837329602607498247959822538184622637852295818804703792177994461623924285013916854212891075325929396201060500683199950154588686458953310619898873155989726915095268383817037619585936073552212504050311837248697176392088373309858476918231950764730076274240592999208979476473840944471183293945962917523025009840845636680084861636336607736019878441238175260937780959112255104879850020865320173514452504994714299249638670581341889161851064027418832611698448164927940748011597323792074815555737939379420445942584481996525721814075294954824515554137610128879170588630550890160334320440529001782833398383172248955247572327378141406103966164393806773764168801679735049132911370880462041413950250032073531178945379345381851280424229652353306958270535596036321644049180645672342806364219861169176183957722450219585198208770268398320290411278168875601997867921628699838449656875742409130603166977307507417227528107911165710118819902122240975874441450481743360837594766153997956907205379097923937185532230660024349539424711523775374624670548376043989474559886694712398233101718037183205699598898452762757679248865991399254783406928428193755818912278349004130846631521185146486992313857118791089510775192482601812674243817621589640706113391190091556916990447286628214005705545591592347193095816847248642558935654079230491436352385888276459547087347967237703786107894001523414294317403645425487904945618419494567996631639079119674348336255331084922450935294040372669107277352597152509539715801082310417461365127219806855935984390334289936093484981336305195696101793411530298674416587330520910299688823338472418963174927149681308061966396458067766007098345704386693843011056523297694047530381711744085360425211451379575971778463861944069267803275150433228461294821763183730048228176259762727141216445928069296644394000430158510972742143679579762349815882653222789455938095906731114761155934481665454284198743158302265542684573559209636349794938374654210830140330493635861983127008681978215269216438800102411908702445992747560711399468920279691438170350994371277703139067744660876812264097232564649706067623404784018066848202073992369349473290428377912113601520136556836608869380998871932641705901979177227865339718020851972964556817535777411577397459244309286717522333685160871785245741316683137466184734457820135440953010469250705575512154827437847631251882573617665441279155584811877457457752054257403732129334522031744076147432331800921553771981470210965318003508748363292429864174014266749263139662297432958340708644357820706971692564605517740636795015073217241086547965695930601802446681669039676423828493943187484785034985090517135719337741250581174294157146465509762168384589139320314694571257818321164637698506188860106493540835011895320660847320669714053126252567488593162895053475819017804993795840077909926086231008049570205018780713883799644796633595119514085601259896043836171049495658618194910809879365705512371571459668270085483406970795061702381108337260699962128531338573235731335258371659287821689020849267848119323155803553469444217923426517341341236825602198945508391271298922502988987917563981543539035408758943097977388743192976638816485403957804945700419978883105880591126716673563089625700624958042156664377323600304279903906313268321096945706493715791335795049011432827482273545231804029913109416638065236545960704670198073392855886100749855688065270572875095112333300695335948878973633875217797821796929514213275673918863804303606852871685777381527495269554600028087858477899026485711672091935172744821259415408162918016823082457973303031436550082577301960767332183762368956577399643039111817449318570347017780678235092693599977777687987977857504129661733481091953677028505407573818717016023024037870614705733624475365937697658975188920859860632767081759036253268791928773370609283692204572480489003364213973340852762666859993682353885268234541499817126892817651520888388361701179273054686263429556218606810324289217557907877549270776064475375610042579552231838692812037987064664240846692090961795903212022951838691071137125788580052435930738966443479870782686690128861562668173434840914655466505647558023579615101233714631040630332538517382900135399722868051654641939019808849206032505481750418845567697519599757075962591627135794469153734872444332581246530332617309481448010329339560018318732430984951465317032338652075640753330345044327904123111685954052223338648015117307771476787318880081273067889002174943795417105709422025143246697988729945279154564131636090152019980945745684324110309728018186664649553594415844570305922857043002876800616436660875501841767334410606187141572373018519089559534801195180177667646452968999809535010455257151983131014833126269660027377413437958202545304791537134343420756633211945003845741782654481730939217619445699527289958070701493580503144670655137735942408571787343873953888711831604070503408069394211202941850359427713281907632052934762715500587592687308780960616574024261857184134070513450593914508614383911854032804715699835634566127420685744602598572622600554036326437906822209951016330731571063844538034881086859195068427741841408514449823272776646782061822561970644870254763657241753042839717114497513046715353294969204621479262373657075672734335071208987683744284345396419564166353373560457420665758859184554293929496142253229237912225407433452243910462304614411148156223630242176778638779889539417986377745180470029496229828785241805224132562847375023053352144944080645423897217759741506513793841105186960683264004942075271572102401219991938322757798680027144524033720665551494454246047550090526581073092040595659109968956157027364662444829117820684195405687570034630712391005352797420120664580292577689550617785091338438549264363279428692555474289069098040542128230938588342346868682124525713151839741711511887920153987671929158122463398244605044976726908775861506283983653154425818762191377793670894156412667985068623937877370968293778244972322874116026456728170279141262463898493903543918886741047666022769963946736581692683084440655908051780113310166478983672155045342680076361877303604646012495195177205509619277761602086202151760910079409264545599339624169583444089936605090011618430702328343751572924535981859486428519159978208898366376374387746412425436213742287135539145356344011473041924414603908956082546990973194612523820739239060577125736514684043742076215771934875486511372832441778730626795419220612499264454126518952127706684637814683720942523056355295071435450465809723071201322179170667352809735783193153396822672499095517865382379894854424675830611642208348150853360232907506800546341941432826000424452738112115863050235938060106818510266044864540267604883376114645267210562002245101654171798739818067735658424975657358664065481382758520763734204713105468738058600219528864431075124584417900165858669677623822185583418921714023079589147827433413126568289062474556452334746165240161908578958232844338813217611330762188128170148973381712526995373706837923440841073842054025094922458476996608860846932692964227608363317214425477623265973194671963897505411187524052477416666533501563078734110191741973384785533915787416528216436743014095725896618278926972463823482747295383923372170867798360371928829744272173509026973271617847826802960035374245070824934827795427324156261509645780239121506101501019907248992909972596480208467528532070627141822130289821491977301703857803632615374389644137975921837538149144204547839046299221832438091970190705968737797347993626419675296445427996971717573955667275354281723654301601683656435833843192402681425151365342980118748915343373554392689445981485756851332095157507429628524641075117541185448581565504587843771787723984302144488739664259080394474358331917503254133334486584104322634500771877689289216565780015253083731713641766983214976025084609305188519696512370421510981724162407902206392577963362018722646165717049093103668841106157432857059782892835154926431568986791018776040735214729198338157808988662212331683208423055321577630906150813190612646990124868443693614800304723861477607678350416514708423740779255858608644361337345253983649530468344532249161636314865152427394647739226963876691505978972129097979919532251995777280428907907816527013883461308578464847723438856862497895604389961462293217488321351810367601963606643919017354469568035121276062444111179521736489617926729015530036460771216184169328493425035690615986436427054497253830977564700101938497901109978625737636245488240559776639653934476276284523298265513562841389858564231118387546283330566308718321482915488507398399321612650572040840017964860423499412753761088907325323024805639386527429432127299054131161903682052746253984822142799863858421915893329500070845457436917503126172773134574282513108479997813121938373671564666108083136431376140119657079602839177989825802945632739525990760963528147098128582422723547773545419077914151256825199872080577656528111806309394952772640852675453978938166012448963203115675480747456737410104420128916134333041914976018245005181964933638070073288250648032647107047581954004293418471589792237405974919491654757044243263200862253660515361965264471498685709645988387376484732194775837808357915111665764673336715875188023089594595644225462889595429638529754781657373557465313571454496654419880317627970514954586066589744343670785450060630559156841784954402466538348353209093579975898577269018673953276246759226832518694307111578476539308784847412431444239119763192012191191015820290481027375324862058399137237438806439454946356146094532398785577433314590105510411924216234210568592528963028058381163023989646945443074389392738211991175067485770725010246776532469005938182311710502177213788603863813797876912640066013339077758069383742609461530781135699572469093142566188547587181633413885464526199167551726440278619657614045115705650847852104311407336054125761913872604163414177792562025818172802125938547984353987280454830165333233823498328136574324671810748368608367801522652308523356226358315412496751423817933060637119605436602478439661289820672228546520043521201587483051545493548762034145681408018345836752595060307630792929992678060937861861522656650520572016208510266630896443133076322231550586159908373184078273119350199777861647463954818533916182808046948676378558792902286108786680359863504139237146524613656027869309843000535355228177272488326633427835009264210016117897979049956338966213591787285063991223899316035480819827927164133482144278912054995069103276713487741482811653525321298210108678840840166680237779254033813403669179074235513781422964103807201247686844386168365229061742404403236837147289277508589117931784900630910876798007197827443944530665464533768790962054455084667295362321096012262054778006646035037282078468251255285977084891471572679359974272364934129515714370227253803931896159032088081762215106217306958669029988999119813016077434699849865449811558166454890751894879030247022833467076683180848044182332110257085337348529543826182846486958854492420475465580343933489299525700631240785184432549615306948760814948551620663843056372515251447742587963262919467598794031764555007205929797790589293464188850409776287141486063387517055464488928493651074331823390678024993651248387225705690944546872418203781254827394794213161197553720958870402524298640539398386671113114554472060779565613176795925374194977455737923908069521902512245009342470195020907797541776749078611552158688266918668032607472196191685599533507076258727259878021978313542016660080240662888828020872390727750145836497325037870064157986964182465978981252405889110294831991121752593481605675057673015362387204659443627790391636216100307527965360678043293908005016506469401278627565819460062213216617003139976861163144520747244348514754665489755407314862499673697767134052002170410914897867251954419189847228963307070878666256306125054705286546843658719248434070488309729782280549281996201251540560940735549203352027597742786643439006580870316371834873395298501400012279743446733720199169303884579923212426742512641472175461044303220021278473443085090310607467442983641028165542152700655037024212719501335328053145490640788097632528073594158396603038025082268980371481431568684951279513358068347781173834513745967375564287612267626219141629036830869254413819361341142666484721741066401824835067592611100887953159334619528472977000064783120903057722583986146063407127554292281140757094575653978300759687460003775727447507704760278683409069363644666280399605774111696398418940347812348258273169239489656318510981512278543962910316006674160379366767642702234907987948243883061202693600829919081047776740625048490388296699863828748364856100529338875323644361715187190552587759552462264660157888088640307662971594670213631719817347885039391258103865609377924516106555653730559477387611492001448119465726413329574481897227740589936795418070184879752683309754797200332965326571575887663857877531671476826131023663812990842533156307204546352606976151544318265282778244782782068649179610135276619761439680178367050315592721922850039277666179088403926437385547307058994953531151432236756267164053714172183554546191104663675025912655085910358358843656066198982437181393763780074007213569859820181380928216584805279042120356090025449862768497312075655086088467545818807075716270584354852738016918664392659135665088538808908616465894773345569465569195273819924678805736567461042251880996800817254704509019201175183810643630797529456924772347230325892411127617248385189672766553613378260285580998428700834304591081221495695427363276359207419636286411455945551669848413859229524630992300689254267143243517678709729940599620266315950805583083133532832150147069067310226663687411508078666803345423960242651423526019311648352727170676306380118921452591874334316497928643861025969654859608029275584478577441633733935596622319823440453786625838033532507458969756854366963620110645118671683497442557618431325034883549844576462765289470191364434978487461043304109587291223612075514186628276748502937137017040220265982666691630929230489977490935419158176279702334090166647477209503592651957364248412148002151179206663562020296636924551913515946282371291408579146923885868143138520411115066727507500079999396682217013574516905451397022111605108061808198919678562078806737718017845607528776003049574282554368376482259484102598417485018996320956644870877680323516735329852124068465447803182945018018073316556701907852187488494251506889606141430338664029570313010130885510210969117574711253314592714418850901202607873872572731646752677810410809116102449375338493202972673325522224435075298581543364980172105109769508059414409697470367891355460808453134516487632645117965531138214983983767391417928326380798986241529454333272184752256363283917668306851028954077554941602571221415912427101374771997760892634381254329628090393639108486498277832352707839743946516632121022316972015457531247903932011342332732435818469704764450480761182925220867993920138610269767914982713435030943215463069091571174075469244896592128480688219803967238557733283112096630305334726857150871328493671782754979482194787163464653768139265991671960153861724518280035221369230854218609627745660776534184217599840649917977104605409446153337257247490220993075193017708051630299930796017021833399084775528801141548978895980562562258761958402367990056585040904707520931975501183303922645901518270892730827671115592838793485378656004101869352462461529055210108874057746814711096382603829536785004903324435613779378276008119218916738574828873959435539158545366566986755443089150658995531237641504055784236876633876024975438438999005848172588440630227919050246997371388270147675221739625629117039482673590435354655365744863579115499125648365975059858676717105929161680632130736244663184558131998979724967126952433171237683609213570499700456154599484972823134930639967267312714549107908757486891613867615452960916454287219683236214246274696012873655699679904495549979156732453171579230059073639689577674702782224503433767844955184861635698053690261041446354488951250857612638939316076019380024188734389187828782862175454452185735234481032771292413505479840160190376326861628951312690144982400960740640067263311874382086701628559399245274613243406513652963592908666569922669134473769652638268238022105402460965384962405440694872775515730627222379789777231969413118967431032817456003772607294974880785258670928842434941877379936793299799418323537062466413783551529764935995240205392954105495757781219731121275219400190096863330312250311846333025950887947838548157571755474669878953148816498864257098592342043772434172019011956277705492681788142314049921385472819825389823847325119135633492097007998677728104179610514748397686335968978271578310553895848592896919305956914811628780894998999791897716379109551201570937819776226653633260703303051658784503292178017431565119534385790218997756505534873368826427781230555044438411015199485969916143848451834108006734123679396334146378045755146094026172351704127946997433712097326449988670599957104532047896997419851366223364589154480122491231976500213574328202521737674426265207118561266451316088690285355891696251559584178846726191227116982258671081504560570468038446391691133637576680454137570729620336198119107412579574929480234618726960580170077501934948457795931839172915710108318026361418739719370196302524575159459344878805938073235041469883690353414761712405665866476107810353453266066371754861498227051457233771505360264574696406414758017635517699389565932088786629511134359083176293176965617889740456910195454856955421718937268565192596869741378226443260805168587878488666350928952098350297789825145109717850829221959542686720099750928341948292891889054419003390663891821840070253460615591771000601355620537101187129396036924736462267550728905924928393066908236817684294960229188654517064518273907284777445979465097488871846444386590808956570404040766508940547568386279931342962377432454456692097898574676510819592385984423272698030196338061632110449513766282910802873028606566484042529255889424495548905212746379823227358763420256469780239801115805917154654040943647808701902295522407646517851077235863773040728250403360121558901159027670706209191278529280342667441862933261772560282247148278198882185958183797571179912906698412074790282063673688360008862854335035759445358711456184527503485846664371758429488259026441602423376508927439709365340999101112062188536173009019384256724269550040370451055295799631324894322479892368953479498037033409648050754764510559624061558539472794957267363903145961120597720815947837413578436157423027924328503724409729455289491476886854332850363718336815757918115652562087214530519740583096283088010797075195833247551257185551904984934829600932252752889045297840023659291536476912186536838553259852161894547035445268084233667281431737620443769131121339473407141612591531947644859382180940592536378374942873477112521932945776376587763368534667665013716992358234612144620135105601444452084301601008657452910028761006738657980377416299837393081283138933444268310788537464476390869029937719655263117100054614475250648630292209860151237079402442098400874535065534495231151673295772917913466548697081620367388603433554451394349966822802841906498742541277074208312293476442632555459556987147926854505099388074994655558007018968850413394719569658515396631378687485947617790127141257973801642787752715335514923361161244697304332246165371892213010581763864372289458526909986030166152731848137204553923777500424828689072003198262555514421403304780698905416687439575377029644170994812406510493204808513285345019557213145415774441660469902581626697096750421865620977246297095077502090643194222965194713261023884223214741789939835241717633136412005035381182755621752209788586801326697006179752439341880275985019121803753707452594115138371555878511791786421700162155669822300006665431160004907329178507628012871877770850328861661627139001316415592610202552837123453464532945467904586033540699139911298883326762020799365398715136420566596331045897959531070907019662717321478786720805449638495714692594999704422533686426875425462005111803150938329361775464796566334847170485804002521879462935109832139622563287173629096776872226083922448051947727208436474877791357503055682060960805953300878810872491350112603033179756985485113199757292629329423850928524313952455150762818581086428645600243490896399603694737645862826537198418648501828199531024966140437416754285589961178405420251269755440038637591825332381062516639152219782290871302532032511513482079172498445155456613874500109463538115211168109652093961061365085443446776633162414520619083943970028756454344888728718063440703628149668291232145676209534636283207615604825610283968127532897109681540688222091251236089329760104307592608274240704419286689773407922919451960928581838516536650295970507476170754021248438601530605253486328474371490222558826114626370305371893236167391048480341251390948033485011496144018417488371932201150317873435939397012876073584697273834806462660202456112254346244241364870515437901624409046809695011292868190925897553781701689960556247157841021558044178942721680213283876992898275314636791434030038160580812661690343197048379111799987122588403837416342547569207570432105328084656878318080135183639668164385464928885558607903024175068337165639177388778693801588991182802622329797388932184166008207888543385268445261590465648689874595206134373193030671939649858285188436092782588984267169909329798635999370418632556811645712199141418604694682349409300916933070690926724773529896632823245995639284514970019618741784941113321219571060066174127105002513394367905768387464994508660662173144923928127825447510010306868475400137233305301204601408177912347215169802843330826723691128504801714740709501439151251303476358216569274176580470966024559178333941741636113682320950676876593863996814681706066045701798430753468608105207133398206485978511197036044428717162750658449039666816188604516101096250751612753501285981379944546273899793185805967772369077276550612948171859585116147561751337692902176068792938456143070409972095272135436677148799394577556439431286150460645001628570458810048053001783268140060543408663383522031373461449839510889557954490048469960508945938016917282730757357691665753701049930646318291375036465658622527617974823535679667997803068224406252862766867753304287231791347718326725083825552822345657320948526027980335348258545206648887693734364786976264827939061866139305890566380528045361820610698123853390178220318591484929553077493085173711534560828728042501097565776202900780441105095713336098184390189450326557013186044821770718340503461443759808768780564584128091234058430987166345109562837619175393624191826665952488116136379704880367954166050077238896024810116676597369183533445777879753229454702052027527699630527810819481887753701598725389660854315837313612371281936733456586066979429682653160246331765398106769605221917591189573122928236593057087782304001548728525467531769555180734120234672298809520947423019409547496803050123644699176731000045225590739077429618669618222884409467385466415927690574413686142050031999943056231033311165928519947180056578103214265152719647282635688270086453453408822187106016616619867482669812771509494599321445139712157026491743865701800996308408908545849395009833723990331892599363521510410141788827296792158355551684832037453486759461517106158101499965868323599432086302665270340694931206334507252012022114888766796362522531680888510386509842234281513105412786111828820504008977998075467819058035660908042507030614695267778206455936874467393425175572828315090388369800374839541295712615989878149861997448425075783739661534979916211786190783630694933950228214783500897100930812447375080600131387787477523608064319903642197833833797338000346898708026825817115660955472135429837244738854294768494702612828531424553659697505912034593991083632769639964927645507526391340373982075248212607183392585643875854221646531072281304707059409363078460883811143887658096678020085844249727312576850090363406589962481739106334372260011384748069643441232389838013948489110197245612747474369085903023647832657258386308459329365189648719856750927364241472785097788640178506087349202247181812891258164671151900571882501784775863655933888428402442943404287844205668538044748586132848478702479300377081857490255642763484241026179851558563514135170646790470339217910158562449065813417781959917888235548788271002966715125629087103424958520902234247415026515947176671695528912561981112425786593346903197499496965176001508832636335564308458374357900691650550482289918836023180564385711434895961918822662787886861709853771834168324486819404057974092226140870862677801149736721039202494003756171671121603939353147307486843974389118724970501636355849564504613273095762364504958230538237545802546467702628643525773670137594065593290502363070466434397004473404119314120640279848778225183647737320148724321044657447528835203978824927012822784735812987933211547723547033043875356617324657700309292260984021403515223047401821880178243716146442605259470877869768542303314394425446202707280191562254772698582742493457716429929350150447780970754854687866147319859378836916802656483004335812779670260957350126220687165114140268484979706637728960437413920552483870678243183615279918113792323922598741934466505568215365763505969534252626889721377728240713530769624291311050936278371578995731858040147470803613168177160537655314264153791459722154592362047251335069489060617390310585294634527181726556248170370954702674729885131529052091396952631778706504805213996656861655476455781099287072252982103792359524972022842868848159967656281312466620197502595883759825223132562263783030321614014756802910408859904473409028658132899742848906632003873866769581669684414618915791735696107892708404482546533406215447210176401417149403375790483522466177636636952362521891622217158466905772770399037296677531219360500156108043450140670755356093133734659847709676866256705500836337194597590394471733467644207435875897376089910175495474447193589555578410608577031912794239695805813421073535560657357410519812112037191089942509724614473215586916831234587756118402428033091655569789983270341696701935987068836414307564776482815804377066544366013267142248395759738781721018545620687686853910936142468619166096902418481042015529906129095532828931785253409300291380607357225423896660247553088511545688605414254807321453708719854462966935074519074279435511943604790383660713965675731103860233396829422684585928780185334155966517476011513234653892726069098972253549575020998589963507820061318068589129332110565605743648323217998284798787868171169148074819160359096797785672668682070334034362584886802435208096857507310722049458462900900275122149581059668525128064917931649797884826369256769993282200636757736256404192497201271160475146863669651426575827374526628929099645472120305142376006787940436663138816771778269194164949550037191519079397241355840462346703051665906433308861510192103158914011294483199017644914252813770271840629280795897756658217698838570285682974949403368436889067587941440518662034227981856501688931429946482168777468246624661190968902668802626252191961246711238367215684029046714706112296711680084930242537814978908944483649721885500509766409784866778131353018725441399340627735624582569309127291512708626445411764642219735845596327437407691923028204943648156222069765294159335061297512113145425722001972215272017032334540025977805537255034230167465480892253947515583613535663047632225589041578588168895312720387129391420387360391849705536734503319685707159705056396714838871428096836683956942098412328754708440228850851725905231684970869842014156068058970097562480782858320155066186335421357773057110620266116848692544072842448882274880123108735190062094437086098185517794892093601734520335909829126506794940169688008578378417033152998201269319119589131506394025219713193919624081397519717187793403810055758033709853910947798515966584067053814673447622141436563577657040997609333895371870924942896440647753529533325317360138415405209636006455016861844651598102742598941171759977420903262598663538472994015841318386721806594508782312107326633502975286245869807421427293589950050245383619055165003413469301786439725097290701158907999426031363067648159447687996672967231418853446844764582729008127657130656044736928129200140835604191115638536725978418192833134920576608590618531319471567971643902409409716974570120847545848281123792929779022246811954268081222897010059749894901872737031699709732733802920501614717463971603955811926373305625562215144792909480308031962231759085292016953141280179338693113479796799007005665414216078925635517355779198153578665791771092077688234685983031614414613019719635887082464037072750443684444358112030980106150911064523116600245916378081538706561591562405633000428445560044480568503189100527561969707567188993518585911255800789341468144940788755471306347575996043600564166404537576953853055707058270917176730791367544608821231587165718916495125218268732114608288808081039157043922914076811223021525387362613330856048245744202306676651963934801220004662841794909126983519545493656474677518611308301424862082043315293186063738276151255202247680576199136410432634834042381228137221500985521860068223683842050251975932380674133214755470362166645108805652625270173156699838158716745648346973516536728297419806826332932653038754109057731715148990681596417735983536413276804843605455950323044896240824664221149317816103002270667002567839300390955218666327065273316905755110957056952408878786513121493431330742440198273676111087594450636153753415111671844686438772448077885707141562829705892254833504229865417888064287885104024484760367440349411239093061015857964005607718899772697440155980553533676457714347742853949536319946158180943215414503770122041209750436291291257192094330446722384201255213531837188935199262803655743479241382154683415691045680714628661357423071905175032162191934724921971224001033491306298310199950002961296748269011404522809683964297444045733738402851154884023359928542464916637092109071375324626745313231129391398295572032458551262095080526058562020665746108412356947377443471265135767767843693771780683165133808989334698927491152749108206525182389716708774849269670365546137967030442559859758355606876857437449645380945708204192353790195422709082027361178015134475431104287503509020865254573977461611538796550564171955958727588464598409932323058670836244480692538618505069471378274321335076824113659961035009832132758965904168006477638771732675836993919121302320689990290938586000604500739342257299497080348063385177390431945957565401263960572383061169987749557987841938778854576015719736160229090516670230473707613202237506621160913087822349816583792081204677220862954626961897006944126173520780909134490564810664972085047006828129782075626331460604020707150461927813064130147834770893474135695694479063023377905662310424216642614679088704212466984220955952057908967530203674903087266521959745829811339821383315554528347478127885593447736557720033263288407693713990414492250315923112462070880497968520913401372471852922025246982966611102251670133146774523865299855182300829814051132690730051192173530423769297113718262261962470838150318351703734519540869499069751039827552995343301104386363211198335599226803224050771020973746727044475617677355893000377560814918073223126642362741903538424277689846497786921786529632980516933874076906737717142304194147272658025679698920822347998874504579856850861083858204288759801154358737441268819013280335675326697687722725666900264136250954855820592244601895404344975838641874961810018557786353268121035342147978667564964812839104016314740113471793083893934501446919486186266867205416241911215455255795899090893777901069280374988801368433873915206837451751901689708683519152097299996403524928629665368303777963967949852478790970010939018500840500600720915714946401185573573034039718187643039805775008154454418375358577553857938679233225890086806749054590563593071819513824468799045001599075801276259568804559592424229317105197608630270417173491960056065811237445135950991899315210548054983318549726964057486353471521640781056863391987655336496656968271218385340236038912210883102577811606235567623942040972815512959938549843016767557242818779214779090856538753063121089001787173225563437446775302497652848571270326314875952995759480208872916045352489203519999012558333517662749117773639279213193132416183560900411351432152824721244653592508788364791015197551795372234935952320015118616074994089331314652914488390417569555823875473526126061190937034705379831803622429522873958456196116069065953647799723576555232683519204450145625864726865922760009122608901397227764325456523950381445780676698265236190560301781035084406051422878541855414671455888896858788978231576859714670339795628672480123774539719078515121938870413356159110230223495131923805834386668178823436695449541073817112997328362027197000717189734490991835903911059327742797396614162356025444319689977986523500153646538729917218181108653395410657314140471292733728460752761669917125847828920831322519388725163951392049713014102015816455089365203786377455067221265347931559746943037103650057911949685035669454523009895947428071740218893790041744039185110162667105734261456185988591436448619649448336279726737293302414913243172431126039919685732743788748740831042057095262686224537210199183702262101743304637616872701248857772579948959083188106595705232286900847875416889026778949572103003164687536152727838728848951096318405563997956687837838047752660924394199761188336440737128455119870893766088992334190958898888572518843604675404445652193019006861064906983015060630999967840065774751625153122074272298652740556376943935379007408858432430436686891586169475983011645054611028200882260913714133909041410989208616930100159553565656166497715432644194345890311552003150475325988877708350853850238671924137457276377276045433280397465911323114334983183645898012925875100029737976305753430507813466979223128375956027817420518022092717682404543202254836676965298005557285676245214214654413106363628801703296945493614283973689117568262163873687387447603497577105575251680225118207465726787282835873611515147769689036110830737608324236660078379773605745948080605878342440938157837218697657722129121394531840284779923722620506187875311976343236087086428596697999693048078234532644023022352613391410170592594406055580746301355962842837101457367028187642913411715772190798889152086628058421937131347433550864255703014834000226821035416401843452440423588860966586036677876383594317802244275591574518324104825639897026139279981583843964868460815368724400977992842813606872529244608189173216712080907291096231250114219231729540821625108374348760046196114423176039744074944543704220792753020915649898874273653088418603642505115203402876244788328681319519033541375905814412138821403541556558344836646402992712227211616096583703326406023274691295339846249616558577079808613065189572690915324517949241066896323885888183077034664163020747270879924257280138308963656545710089374988266920736859753342605305238174490073540534369556013123136183783398840900647240023415922043762107497434654195651015689781291372644954620117478691429694874938749767540700507131427121172752161964822191206121577620402996262866760080419050495747207099634052298180782000981681823074867716177449711763075480881001569705693048729561073166789505733946562057274575778105043003022328745565861974499901506608040211454877269482382827543453872732509829117144355224649739275825940228051710314132466656747200171128259409643229372061216988893063600582284658918083288496325686235700437599965715747695668713912795736013631804263454794022263165669131287404348648285046122569671094689321196036028644156948473628015770389335238367295863948312788716760960733953980683637916710730552400792720920657020405181353748750480279640762412957407254917226164047935513311205284110995875683731785776306352755657760083304680008269992328082525153239040218910277105204330858324169957984433554327773848044364166784335108389953846166505754075734570394064441482582949543358704188821157235552198923620655464659100442915889782633801367560301720397444370441289386620074950046062639776209347720436756606223594477696477727575071571147009329346070978111990068784205788772279769505973622529740908501401370344907392885719440592345413746718671824993152019157429596620942291560952456519693475959245482869539466479352182001626751308586696202327264765174683476310795967630386004459599873130487965431077843021793223308246448064871322709016025486812419473667150521288883497792238074748750184069453512654285314148235976305749348075942768438903789851955207399615509001288959951834007565778791366834690010487076965279024731184561649220243654221365673500311679731786207627380467393949273865247220060900936446675405624512671082108708255927520255576092418893630957979415262665721643363479387674356238089427052969972397137167109861505647113038935276336491081305826662296478900177423397647092301572180942840073128086285264353950729270495867964002549201025724656736124443572217327675652774328689039443755947135029289646355762983113097515876383740278896688432345604216496897311530098108905174666753724498199773340862284567099500250939919627916646115864362366125199826776152246047880495266307947640209728305982211108918169500004805515702330110438815189727180241328192552582664422649482356222208495377958795614935125456601144070958217103566373061284975390774995015586309348487509188759989615525075030185908258456490495553142909722593275747821424577789169517564693346532327010051282391917642896913155221478490642817560165452505818052157447889623789788423727725448737024088714853085799215625823130464595673810237798258008031105663635746198742836070010437668111047780727795401832229413465470178202855628367883167285211993979896742736657573261025354717027736308362252228477173191360668983984720569003260060846451257252508049933353927971852199793318749771196760910547627984638635454953531946923269791367762602186877178602390765056712380544362607923588315269476681349408512450190905682937556639596300842038967852598427194454747053167064473443893127748153799114814070640212665761179718695567626305861877054836848615027488165777436810134451062201006529600170944995767842851388039015384316465904458805710043450859547805289143097135799994785054172682069129177512504531834464453489089699466873491654726973414853458511099394456331374088121214389009227844402733149611195270596828572402838796382299145338475438164466691979328389875905265307634114376246276558624705170836734409759670702114897059705887889697062860405198016119313356913718813859287923147390013133004180881791629408143102059696212382355734308107972516197012548554331217290461651047154635849033534301519291575068537147336793859698044026866828863832769064642312505465061880486514074094150504599273454903467906547844815383519890118667860979119531576292396959777776950498438170641976143571081056756859127328764293323148436158399328437932824168029397256474324833506896747256752572904136875504534723047855193603206030939846300461626610777380543803651069732675189227371493976046803519243396967264382281576969651193350649678253060649104260013659407959298768958250531384098878203712087649594599549027859073946543344816241628738276927632789590949301395208854452060359580008052039158514484831768347142154585584676686294483800504039680559404014971150927310546528391249107583736995368451234634156645028786875035252943497664092911937015557907764751570783445051254623199389397091037554828609935358176718657865157938774348680818440358167372502568661199528360115992584372626211759507040372530395197913682485894441274432810056290763963819169990494373165851073688407265841799165817884490123432421506792608986035557396840113088697576226851529089577932440378598338378368534427411637649606786150997840541929099781964788793598630427161722338221962943076728530464642743923815074093644310361466050137087138314441384522118740801350969367857770678942712444609554380830546451363412196187532436634479179147647013909071359352398289558664995119205755068155888441886466399704308408864094229470067611020036586447674456410296670233325286290999137350191239560426737130184846011663991262914148360174388465746507916679573495033661657312828762239369826472666131930599026135637375316971041597144259717185396908220632511322659249788685663791838113884418856852966049802433536989985679803573103958127366647503614255927020676606254603771480532052682263787581568024241964061934736115802128391413544558326019643481658503592266723550931336993826079951542817877505535205174961163502877029747191987764081203416848517244780184347156120853860728937834298391213935506445136186455557445088367505674793578368925066619095598172633626192816799739287883570911563741799510177233887779962184177797316071831821237972368795300150044466006069514579806060624412391705083720834927485349801853074072044553637813140911083552220843919563960998561927306350770585993496584239203399682819232024387466102048196696057493545458787316125416794209240983084893647862293796392709402353264448454609334489250494183592490540221497771468137704673730940730087431433757227657967462445691220808191673462685479375309422152220994704514297768449549751020452074933108506877960087397208288088352710123875336920160702923288764325062924454035718223137810028350796955515624960405433572788672389796892251129979118160820859579704945162220408534505006546668063091350141768456842840481230929820543829600777262228538333751128356777858117218811371188896990123049611918340137334153440730083434848576202536799380170869134763234710916574291735927444330522844677365064404969397462621781435561050734702141379899531040479693774293266849782810862068581692202256436136592397491969530763554259044296385357466949959937025979628042908416887924489011008967376216032423752726910102674929518118880145342669467809219636500310180669284353192588739414064074148334486735112809390825537676265435181423892718727417670419423439719190141257249970843086711877259930812878180223466359755042261841665262441285469560915559208003201884141800344301633402410647830971625510140967802337030563704645166738706481950645167213085168842860558992309842349979929515314122128685910981469882922241974979699395339358568105770400985423065421721833372338151330878663850706582420785558105259758084966432364400032540894201611893935812456147107210475628079438964852212723884830173977974399869667016519649199397991812243417795693194326645390077490470388974362636564941205684236600731198340650168385823054194203057376361893414583021597820212513933757432074743362833506397186797128761040825997791516690931385740376316938343436425613351027196195142495450190551965484316804925066167159733139832300496687766025024611277537889805228245662974865326673416996137071946672590774561316578988171851445804386099311920835774464638125654878135052355876403399309439110530250295576794637355821254713158810142487603460430952167017363062948481778622010380909534822461103290528909536888963492970481528062408919867289949076342319715337949739784454460923137833285585002416360044671405394262087100184864494717512815263230754351472958288389881658847466616133374825712145497124262410903660130490967653275352354969863400711958743050472770273893912579127216879902484567719220559741296433964791008180414772328327334547516187174424607879251398443925424780904352209723372403497855561854877504944600093238154081012486925867198171634618888460199236995309521281260424961686337517621485230171991039357373716141847915024837073902506383076419153326383785042516437816470175207902965066951672788291330907391930992193976753232406940303897342643368654811136511957082375107933918235937882285561171687644138628572004122481754884765635892250388689503172324058880542483564315666660305330501573145636013631668154182983727232896757017224577869443547649197603391702070065229271564592344163852560314649326625552310823212489494714066380609062487179342216765173201514776178944461420742697018632434659960473903243045232051005784438698005094551505322763423897131223050030187901217761547755173819262282790708795761672764817945855316564950905468360104639498536126535737633884898476494263791873822245825726879178855487638332567235935910975558368864944206204561664885583796530545188251379709351114659704122710325689220341189431832418081102081721957389513824845016962581689955850661508812946984447640311484487507328538021778209362666164852944058770251128117406732042452456577922710135404142326652642971813597024628746344669647626222663059646662345569901202152950789087271582401817880984051544910385606940190641721923794259229615761012222174032388235727927840926101681696479297581477594790396435663347585415899620354848418979747515175069192377368342307886621700393224423689379562581911205424952582405063360944967967603847047429997142838622012764184066273647165182434354504364892843128287768367076091022822364496191420032989349398662271551479474983787242596738134296043435535122849008542554359227089984837048990386503526398046218488480466605562707414712810871760153796277945369253885804676132122675149957987349282521932121454527313298280041633807272198508606070327640959926601855249242787008121027527872125140866330101442760888349344653827109276898090630818468397403779667715832426467857632899483684163005607729041108714440128360632431720122319670174347792249786310399440277812367670296779833797573610650916460781015128382779739153293496137219668261851085700567214098833353831662722111390607766477389576284318348829087593748105258628949626274566112408912590417231859539103113009361609685676406799506246629076965835783168766142550470582920557424971863193216519823319525814602251095900697484833710206088028978197560040741182341221044614672902115723581692396516382801718184646475139499543935578379381559994908096850870059524975262109635162364474106492756375118996349697404715580653181236159833057882839432247680175682088493358954452670592009155684645383585626216385070868882392369304305230412008725676839662731602046491509659021217584349325030774460401651323070223419800330431339056790603017586964922470644289858786841354847977041808170055133832666935319819828105249886579181243514400079112616606706814429325322736681653600517062206123459716441487320760361685460706249736533608382212627324760571409978324929926472449152390807758661204774478292098653035942931890517800615018914530759463626584074631515468276127116034812669358807130294330277988119536538520424140106384130719095158819024271739828088305267281621615059575246131529209718941537781836569228479525362735330810570962295798536184281298465277714049965923028725026861029622051872672008704115810872920385362605873807561139593840636924842480851134982727809273107872854107902307764236755083133288815351205851107427439847856322353274795952434538687940509954213973500111303106102034470309227202894743734712750539669588693220689948061569313579245760746549286829278091597035589806869833340324916354454287332605798578384816425844801644704043964627586535095491466479231674808322303458311186307855795903298635230363644794946930474972932937470487250207516728179171401253339570701859407976920381156148389959792340878966093680120790923359741939140417543268168517635724154050592297267079684802998718231774050693904077587188972693526119070172062854991195524665352670295022959228155935102668330074596977162048430923260856074527047735985993804016733753016200365901726264697172402566260511411382733099300928594200965495545525276580656296589563284971131829188786502092100120986869075810477722731639266775564282854534885288552426181067025938793287539849119271176364352314130168784900701204759131390397834109460540365572322988848168298703966114195874455042031143455089574105871031663924793130897253369206603085992590513800665371855470100283052981936336373885278383951046597770359655864830976748949022104322326099669102603610145110730829124766549476393741052571858324302061991365719204930191738082465937050515304715755456822297055749327856235274316443964331906458060542545565474964412672924984867716191633250467299384686915169655566440193396072855721296295165168093622564377091336046036484165648314401086691516823468991900318857715517325585018113902347247970427288866497808449288025744269455758915365730756854663330216883874131043046340747335108131488213072234014712302969484420048258686375766415722463545486274811067857778762298174861332769716570527877511839631608336565020388387556503878127401476563236654891057297370028015059311150054236426909593395347785038530065598628402866672987615640264203876292303331426799292111152200305555373126545799284373989187889236827966083733257643849332979149358359290647506298817179066072463579528330302512700559914100723677761858362306329018654377029251962373684378609517078781156459058704027707579740054003732223953134992347727184215723811080217067851521140329503531369720624720881139629794437325400069872292345794949007536298572690189211787572700657919936661285385883356365563397897720099705723588725490153212794636856360214078655164188466836651729206343293874553148007395526959809729879027095770946313336391284686109077733231626848994151129388384154528317192805715354939474690641073330961016770763452282776986544278773012289334731601140997757402200792104055660997004924458796733957973493791268325163114066783919579754600914928009416343495502531921750095256324914009006231398459443502777751568800828902600591734512433319438968319706900124985511713953786266223147114612976435628438941775241717939240472635679563079197573390030952247746406731207162594781204712114698430964007271894298361622562781759673622319657149780354652537671787910875964775869337977490797227884782439099681677328855371831381802707366263284817434368417175403687465480992240289720934359038734572412026704402942015845647353372033297914162353365022643332012075043882063395242032228500674479525448854948287346735633477547563994791111960276747478137101075638711797497377587367326554591666363526484830109169001793959948999054673730836884360614651929268843070702133233915604284698816122268059034250520180446172139686255254304860539437359368999436327990535519265872768768592548357943180813943535311784516597935062069421630721263724753078687716592271610673176695945662475334090806253703585959912137566458159136999048959841458037221196209981884414090294797797394867322417624923131553780280946069293891597175235009778860196572955488495630004771788686187602443761598231833219513887916685894719673608377691924686253186059626240985777507083197581752608955335938041922863703531295701417866052629206411222115132523814432022096552217772850454515290276842514359953660039659072666518179095564839442762189284957822610042097322284883076267496010848011312106951453864928741314581719306574795278821208945661175445605374816398443375078977999205239992314560225400788031150479229318714900645259409222260127873822659102639740380338547634114780698910239340175755006395132701060276483310355598432819830968041673845221966871347197967704988262973503000557793220062474393620318445163571961450171950038868359936080357410766745230133557278719807789815196721599370197372074489395071695818809725014889336366267100024007816485358175331740892092647609395325260872390042042029026758356777000741121552690633301310991878861389824718775393328484725777452961884402784365925133913289149407506143518938378897233536522317090430826289898221808656381656653901879108747017817611756590334514168725209981760825561517714423531865697940101132381258717128718800407949962711265656125447126871940735286718512127835558640183090097730972492016785141330802307520321231450961667569160968262743639809306834887411217666274837062811464022874504228068458825437718087571800380337967875319391899062950441900527263561091938925331915726983072684459776472945483677171329684521878525548088592592430723847535268273183831281264268497813816209707324775640304597837169217344628507527025105216766669007102445441520017178525290011827128436052958280342541733941143875689579233766593015580443117344918142032928579922693825755805134716469381047731382195301525272718523130493622710390979505771146814069110951844445485732574106827916353694944678422437097616005565272072198187443054992407976216868863845154310754548177968134630045834242697178164132913132175211771510535492596486577713061379935498057200464462306377368870374080631609270222204735423740016819739209770624078030321462853058766812067816629353242139035237394378149877568630879495958148883955276777105783502813178310401469839522474338881990671885752292808459975162477981304719802423356949147174389699048808475626701902459846422358191321159593823332293487230380281212931971912372798265978675247764114218310813914421541017491578409228911826980497861875470165060442962467512398717618458153842968657233566875272332001863963579219291725690485360577479171372997916025652722793191502105978088755532614105200742310502666256109214032208467310910261549587668174806186460652908756045720603500249817746115462745704618051162569147639545672296113117003303133561645519119870704667478897812382718020323410585784904333611593218453752045078277476458333276959213171917421173650402297225364937978033199763665959704868362763414800334795288354369247848779006976230037217004999464340197173177578343285878431752993133422045546498017269789523148400883835535700341806255801476011714629736439235085299363536967301912680199459529915336574516136970332810703605417063243598157078217098541589902163971895074302483842120531889933623935375306544451554774956537756575502364583259309684823433241498392423682177551970856697601480619360044474269890516023920036117075059208164504219741323795376200789136120543355759140431778388140080595269059077059472555483487466553486180415401192930141125277877937812648577951355912957755452013069193578592931464765469029574093437036098357501214975296857313877154990089037429126097788580561140165493570897303016587807628920085039149260559498666547711132591333003012988682077594329226932145168701025666401603964246797747000608567617754411383025920906087965017505701589206177107740833187827343608943800138982854280577936197105840394809804204381873903988487427682764838744277175941416228629279420517630998388616347274401436781970030543261584534780235303170885450491353260506992795161363758980924808539234464589462375538597819752026579367576572703230108849432428285274647852254731229346406087706800794214421547667102199038471961580721405335713363584979173726187803894207911219871495526183465062855656407538083011674976460485396377345627572146328843764788850079445003089969239900795765541306096206369325791988005425934878098792736730850486625075884001757133802887551992800734279713901635079652236702290975420307900619693982200028874847690838900743349233218324455072894651029927397420238418101157253775680922924324253003561319506651175838930473381443995320997908970226969836348414008837752205553835958285897807366485580416173881695366298860415992817060087648961730430044792296278779293534793494720297823744569690630789086901622528119932603839241471375155650226059906758957944469030431123524538655562923659148971784723477542668813347506115729982583554119396651698249184242429701078301481138487384699795139662244788323004328646673067662935177219917868725834033699488477905209541978690762751670307441416703183310090712321075370026730920708615259767207513309416249700504534254174213668233346241158231155706717752046011762738510542839785691124651095629009377465155463832506427082371046449429130363374128811680780913261996638453342271241621745552736120311360589437620120325252910196202622774643047177693094522241111810273048860493379934160439101664908253639983245794544382502919397884266877553620035726467510433170661668001304851493604126219428109602385807610077328111829547346641373693273261567279098576612729358948638684431211144550516109693536405931880899128570948686101811172744824483850051849596475680676072514463109255801063588989327502292831537734355469209178896600177596885964342882327391984029490288589588930188360890745030499333001432749288268147454501451068005249262321461916643927408253313643518989481586630407661522612700076085956058617518892419136154183219685261551791340040153773555405106770211553112405316968521437005258498349930525157463656565188378617267406658954169929453034349663541219938842833195734514361582006173341761012043782533632194097161303900746979690229417400964217474810410778104922293967661755354432267999433136354650250313057486229682321798089409079770313241739540864643011588684127959777942252062025621454315243249324969270010582235658315810280807698049663954244243447087908187946256371920193402482895119653094865558539247117100449132781187516733078318360268435015603521993896655150107749086575253906043806286526361220140361304411889866693621647309400585004905403034200769968613326457617250847249250833452665217131770219728233280750659995816554793358325461891854328133172620770968328498628135771318271376034061842222426293666438155011033823896307601578715641101321911057747840532196037688676141471109517557704378738333244332774059091477018742705133792678197754696554754800377615314364348995452901004720673352397340791722369839132996858175751843226157623787571510616140885652737869223907121393122205155622925916576531570475606065360800558710291451379799761365291280860031224198536887129630192667808690683033591594244650659049219527250281520366543295811112364836921690570741757312160465128985105044700847055723869281413271968327374985444777303516145250160753325709953682430423086433817108457491949182534029873770187447238332605842883420229408552031819015968188749235219632771980747853985704368690415436262897009405192038135061769419334592968732160308054573656381129372668713059294027574817107450102543026638539279666781725798970112210052253841419836708957800746221580060738055352389557783394293879508065239495805920655077087821095593690672463453182041855030295845227264931635695801579685971020666505619692341184541881709880418256801295173270154245431384194420749979588924855913677182640073256171898697300295926621529770740405997595626628848378198415359916540656930100612030606518242204909919803940633846213459778057165963447337639573773962024892771295624322210235286952212320092793180549528613126058306799050338619919582948547739227942719746979647080973833162960019956648463202511174960345353586698095171250431321605517868101264309182179729460988723744353277736849463349630342160068676726033634567418215334265873341982918081168532155752780540221725247517231844949484790032447444123838116317764558976951169629536394854991701692064696644193050974372017308643488151963817525536759370701241861452474440838819578631766419099300607817700598971274866369976521177073013941523637018508157508290834123581392962264268310430426441707578951130882812854918997426314531421448058560691977074694693050608246037859500593534737175419369214931437021999621880656001335740029424870885193744746493244334188594420015134781872034295546538386921883997170770651379838264660089981068374988461136911496611263000014027145388775475136082183309166078849627123667999114428293962568895969691657720248508194387524712126885459274977243150633959994064081997665498702813028972848743488619758107644516088152221274324120669699126978818381611792966585963603562541691622914849729545526644734815888446177754672618409523666515731795291231082952512712375327424852518488737345311146565631615683899295864101715303969828897340973543719952836429525682822540129561444061980641564863934596080898634633523038654236350480805926351724337528551383374756958296943323246642391990370454269502346823512416754271598295597135058896555016052523437296107909760564628540035044952104496920443084409659344099609081684540125124276086838913660570551734142122851327898403942484822462992890481866153418121088762141096410753688867491713953057825866193103241129893786799377887884996192049175448924663552910672824444564487146128950071602373410288286148941007265433285978133671985602183158598720112845883911361172256391739148927292837071732960034105796019828315588615303807078249897519049202055175346329428082975140968677356935368567339246917241980511748747359855350064835979981357587452514760760266159135900993461390478545595714324457541794596183332155956625645762035244872686689492424365350050287513310147586086642362703700033681152524324208663942188280101515219532397427988720956722543526491893294256609849475831701922261231378063477013984570877967184760661594193866436720610557884567946284680319350426826113401408906342564947530448720273650638586601109512089640245306257210343294361930776266907504998917628365754853775192464613459790219909404905797922845094071580136115940329037936913316638296323053931097811758357513631738050599885022524600366201731722855569778848405837410933739595642163984113862283718944692732127503818482181706145226311495590580247451147049869121680572636294478777117052460643624044769182534327464895499713234557274706832206365556389837997707383189535288144470024839306616681126674419411986293284938463877156100856957111806857787586573550383397789799843974115203535448340916351444450355604248439032147314116471363204741824411449796377859675304664989292574950476917566612483405129195033857015268258192042674014204913438599982204432339269942402402054404137221715920255115852923579118799775395521885669576773304344946696185620040326452962131779868803586517032544422223359188832081332647641892863210539505584197363107008865873527374806504877360945968903974977556701977776735080789672808670789079458610634155395974513121917427089458351967093380098146144380386058686978987772725485109571335490166521636871996767743591025935730286983189964168739361810329797412255247056408040559216600786470926236556253333235309229058107044047706280912531837508853199994760376811209303072698977152782450294577278454301801354968414731413802801733142289935697840043131914666059212884258172929749306200725109099945932236269177834145962753205687113459675387029812316363492017983380772201233928197960725359487131503949162917978310175196144708319144652130195291010636326417818834751022244074643562472419464204473388515533918483133588744187917880875948485414015335296587179305338347615228965291420581270346507337258535020071324433181288860205734081102777711439507416747100537699145691230212933344015683871397609261810462834678352437397941891657607679868015100022418595528755438953477491112148559297422265121347670639876169063617726325958283154893562919920846102399869583840043708498501161603690716777792621686096914871588615459215330430449667096615300405059662173443217058482470773372120464352286462198885242296037125713456813594175894194034325375001283689433875608493978471334320257005963474124836261303112926853252782131413066006570378809110953436548558976726891217068617727222016209530773997946443741969139078690845464653668909301793481387633028658845254772078129682405725148131144412430597167595743892283874212948547008946525990511062844414204516888850215073501128044379358684337032014346654188045325850570974019767585405504081667182982282135630448488449108906883617012440748349189326941419502885775852880845967954720046414274033559747660454525754874188193955227711354787903435146642719567470052083351601692866433963649213617306106294463236009343910681317191957211116440561022156641559295534931356398268990904807045296391402935703611625180404584450436184407672276079781813483589804264808723055240759194371349463196301593205076943983152237188572993208757755998123063974176115717832347604214825786068228392741122324023863447831247470352331087106580760131265564343967805335104749012313630052114777629274728627351877164737649261743260281641797844032165606077238296596265176646759592958478988467570292088768708180720707060355236290939676263365637612895286297215042408640109400191095330638247375733127297332692730053522360129922636363495214592113098951196374387372398224213265897366899828250009582557837778591612316649724769315182510293985186178710989634070048461339446341574678176063955876475228568735757669682912559796192906286138303911721799777270107085241010727937053622889954379818107069563011978904206228353958909842456093855270733976030675337216357172439358444984512593702443431784663621388538756844801006441897583910497250303229967441475572564013876183233354155412175723561783692223329534783555574405165430756050197379944363283185829586681860342264492009033084488298529778197195145940831344522309833540009895596937524151982329687552774081996524191287255354325706190773373962603829961642920076367393400030537444312500285366546513159949584585678554139825246915995413638102264448617357795820838710555810980766172702750679173827527895119735420305267252557353547676215045364474805619963399451265773174383328457100838879161676044409200626917233604678905664527760607799174531773704143519311383398502362016777811908490553439628432738706400660382757601320470814828624448163876691918526190452492771614677858520274368649035600594760920928931616673752521667749644847588401047049866635239922514432219337476088328077781777927028626425721698278067075660041712573040956774996866506498993654942155466583303967989771257286714675011169276311780888056142580676389236085540942733029693168661536016697421532161069943519480878826127947826200980116808339839562183058012394510591841726387528942311116075059825931876116487571857586887087977626994387086994621004342298608895317047913177509578343984451908112334128111027125149607786103158677314705063088315972924977324149292754513363227412945791169616506869521448448392855231782777954803290914818760770648115038360948280322440410661582155308493136954795003201958572466322032439136724012787151523765829312101326668641892795349080339690914176538195097949584825687172598330680412302370666212174779309727940235972332268580740070875310555255986525236761048752654022774037938237618826226353167667302976358271353370558963906550541330732039823449435135361208988949052194545019910783301132265569456790173590852067872270115835585631086547608440611948047384445793136415582882216095606949885782533810432603230029139592517045711350960225797520162683336942343928716196081651056765072701616881686078985565822265220711525118936742856424554536027985613454678576773122980946634739549606805937807398057283134351620540228212404636759090339054916044365352154193972243885098647325610062165332581576113032992624679558063591513423514528382580038736881396894705922089958595442334523865774668579355318287027566812637451808396374764254364131713107430240935503659415854960278413040353655046814665233250063747310184442952070773614171459053049689276509422378491772585763083080802084597338467094781121607869436481622841567582691637146483420354368237383277136204219915149130025597187145250874967382956111373108500437089065480906718155222163332259184168414667088629019050828421496722282772006369376259671879874718790230988655452103119849166671036480829841322195321647684269310613144214736681946670302329237250679422200105050256541006844458395492500660810485061513685123709957850858490451979742245865608898816336871810570210549093115299609579342592656027837573050252495603214467676678442546151051710812714033935391462661399048042229666613523924415291390099838518692210661357060041421029432101482975536635076252001101335012291348040325816046902814070582090833220758004656423513775840917482340816394258398505984145288864853098569578497799484764639824997093530901359391297035438298375762961017156978089066240646861346072140953576124276339179208009036191719753532439724555368787253883072300426226273060814740963933241195564413929547205251648271228506753557315532891303980069385615350892495627812829364602515612311128171054309833538242822041045304169991285878473921998216622967798298590691301757925106719115359397907449366469993070707065200197866675205558329235440472572222204564281257975446373354231446769851851184627109030072764574800220329438997640508723220626850599431591309507660014046380951918717161573214810635494502921796651063828757115289040611717769535927591821941237632885092489688614187575285879798037858586287801793429433138726370149395701471049132071939363889204732742816757616688628455894304760928629768947782266446967568737424033339654920421953294168237792333217359105977487868811295848944827515681142074994792929089502577958083007267842175527656733776871995522249617692466094352470512317227802547810973203166629363011439425372903440276991014464264904454439369508855093117697822570760153594223158240189814824990367011697344473005301183762519455850108591574822936634868224010404271571270074408157905072472140073692556117036774962727440617491144489295554620647439066278556406964787155215977383651245396633799305817363873357187105142284059103046611803292930807297345023879172914880270962965026806853438394463408258971141246748256375649256724070446576082028382752949696470132120511255699724992967627471854227113237642732944331280582649779281771686656987794777758785780382198371037812780067969689737457729606062452003616938462188099288342143444217804847692793371064279194241235289410682002929115590403930256185015217027511078339163149188815684942169788896122216700075298380689862069638977780539786675455807772645722009144517600738371060073894071129781721906963816396847568526485062277513409319659870382978595615277247736240247123251415269878611101552337287447117541312219395692850578203381046346675780942774106207908756275912654104000198876701948910092069492822497780392554802308449593643367872425905750105731422080398929370519609460687293762825566677586272063085136024020506370409020249170693841247202179327446380642880956530001623671207882114286414314340081796307178183670999273454505214698999457417975995988090373941980332053914101837164080560039445267349759937054209659553836198981737187426075159742595982071019872849985315739982818461641104613123812770989253689015326925195206310228630262586891101446408870085096831083783683809097108494098962014904362932854837068404323664746048159937831126352054193774931500226063538956764738260416763527668636355546286743218771402283021399322733951289551205043415740474104491808259557383621964979583468456862999719339423091030995209608841535758565708648082625933597208688043649406188312096193123248763959497174805620838616387424627949061278530457984893759179579221867445152414037628373031626441353845972047064932618881017781103084720479716785414208218921833864859378683965876688177515218267605722190722779154151941351032569446225299773047148571768178854390929802167394844971021647669985067895917587388595352259318042089606495528064322892557059649095359892332002555154168739121299930737538495197573622425392270461459582081192939821079180106404740836584585194832623781460320137175676233595703973030036776102145373396580605978331637621963229066274511461167736774298776214224926974064949348529735681826288659369996527717930942848280597373020674160491291311872572347885649358436921641215122237039081767884074544138476155764424169419339527817338458219036868600018721166464219248643974023792620821425765940293782239332914956436951114962420523868860069138747397292374380040330233980728727475322373131352494306339621354934139256041735388631062930155320123094517310014683352553284313214894271461761265896248393493601753631593522993052925418984550479015459537148034581583421288058589372418759950191277846066346425080958952261038922195961314376645339060165072229467858828358581876362000477880305194970241615025506835632145108479229616652111135057487733334859870081487691142035033440049337976508470211300991622322421030163894528601620376299338518816942989679485262256134216427446489127180479980086408985375479333081867605741252816763464326900259696966959914807475662397344816541549935563621155185549279649900756559864592268072814364493969353198686771685216751007847860602387554971170336837225075477400793154922808958310505043049055432083750140144936321015464534838265549030705997786768563259149548262552659335982448277809522413726812711127809359038354979978427793445412100622512707322304182244922453870393518491569076448086824195743455064117339089848518448498083586565551981263544789858410554354350631249818948482289329308429512016073197987473474566277200948089227145345511656775893507874416073532038321423420550818879261384310441799568011900195667629102124011520127791750896105918333476773665078598524699909380821554927133740404703002886845206021991477102523488752562748834967883848070026233951009831304500637068550231712135944077049361064508506120299367948224738413123056315358845852789509454327515117945998477603509940701284205316654594317419413740965452569838750937160552235746485761308460832751088081360178388463344650400802358012551056434570564382817853420117605539656935608062289576747297459059520097818006110596256676753138984308412672009279061272038464436526971720828798637437893281841177039195700397632560468534315843854897731158862507526742189950775245186454188858653959239143256118832750118196842800113319329505526438108210370847750248744070561405505222092648078176222020138000065806589236512558550956609796031740922434345722253958128522441449620687746869052968317137551483553813607480730679759971899083733122004706971749223013310087724609332251102931575983491537976334838225078068616918321727868834883691020043700603170113834374116376038576379127643074657115081249933834109276827485797713014097996251553270727565493597718794241733582283037984169855040291777705925319655531380681998727148799133013290814224799334945236222052284047355630469861674478521358081318010817187815045713984469475957596915636563492789992774283217174579587873814049360831880553015789418424838585027018222849991604906380316138324980289467780080693339586470270415465949610217907970957460878598665758322163076492677113266268391412457130047399933401757925000000622695363250023134650256198861413033092703725611567028039571007107443557989342885371301876239086573702070203482050139381076857809692802663209588550081227795263050027123979051855974216335047488476422973536049520386306042189078903047254013284759187263828942474273562240266146025834119351924041143047512212650674683748542524488950465221156656448253601038685774341494664841259731213620000497286701590571312749904847649078769801552954967954558871979078656300896020990981800086517510712550149229862897711769254497084109397455704404370171225559265935003253027972072921351274184093215231996194096768572876352920916367768242980248273809596974400323545204273329713206855824793685503494672215695167856792828061326762893375828092253922301087273939385286756250852506519499129996989116718278358368884222039540406207139499498129557235029366779244089477293452310226038784496813217570511021745991579290903685246050967835851740797150063590537097217425585661337468327176871731224164827638030222060117474184686517201857148967673856755622887765769310428611009327244482406189799066586639572076490627171606705914760693069598318115421540498539604415289668601899783029086728071088694890278952297659208126629305679453193431864847888686803580326558917461409419787238262688163978288291671638120906128771033361738430145010812175444761063756157233573516569243402218484692639113499556153735124523625524490785526556690223408246280259562162666337232708520915272730794311713300783199627476992177775455916389937442349745114986209347790265108380353783858785262265785436397210066139969072849194767682430235194834242013437796012031463223848628676806944172231525059417933769257426577991460060108561036979621316797984217531363922054349274975401235636561995139519053555754854069613342136575539419789662344145647694443161604187717284137725683240650433896342546459922205856158058676731632433047810945557633505320649994818484644129008340245542582578585707563045076367019951825649873374566902426947872040431773525044338035467844395310068997242758566867504446926419703455866443873162942896161428280695324633999663788751483394400555255738709649844926463082402364751278910425640095539803983515905151525650043418128595023612315347562834043760945383936670326136845199505347164444196267019346928467174918120449365496190588787441556154835224319561205438460087815017603629435417620284596935249711344779632551117503134425729277715790589036716034034957050469390129623469962985204777379852177459369882161763002278662325826038698799006616836019493528659060036782916765642338417890248379601143827219049850456149019054765469388478208652446515564916824205205967476222045087721387822105528476789057408039498847713762336206564490466098907404070615699461920660968857615369619865739399351018845917929083653573756888346054222217242096386693480854309795230520575987192904829669792365180231937401639003405543773772978380188178038411167144057028259889905373885093611490947186873118844467438224379099185059177198548024495431840312958323540039875647371703012937372962441151299002205894506680928135158086495110269361225116131510618268871476714267507065750603866639837026252188826546457943641819689100672751054049156671534967534097440286739637001824548304475498795050876716631491716418926243909263235721962699050319719941646560923732780163336676979317632642359193992250016809440195992627258521806809141991481690823839975212566851333852849923241709779980628520631514431942068269302294228258719743162312199126275601127754763477678038838104832400896426888993229122583063465485730548157952974237980061356012778099481754038614532462965836260748590680923070380079530029986368041165354646209126592323895669304484588834091600143710794802583433754950676743788556845235134348088084975667424583144269705373675937612330663390964731230726798901699446583299187991159500133940359040125399422431352565351166262675235217285087387947684913598856674257009270312904557773254604346728515405645021414053558093647433947266700550614420722625604743176465681251241765434570158014644265375347542948996756522469535184236340070050284380600870342050031501468873017534545717061107716739664069852565163998100884231152727955978487529378987967897605091337337022373448958500782187147702619600397521037414389719661600517260616916796140397784559638666937754360707745363085397108071517059558871015520198914029332495760947761745825388812473934387140645521812419199774375075618742426147337318652532026612363633466572069969987770690498904551909258567714396399941703790034352764288536468561668193291087276187266752125583661624922213055100201052618486196332359429621374843430520119134116677202005965457483252383567610257395433591647660337924859058618424923943334958326770213567314817133112334307279200654565378943346435451202519114893948484812072639285219288601890341860352861962492656251725599802246171184993887009809629443323973136006001296910058982683753638013020543149585426432067499114390224101474361659943704323408715652143965229719041385184354594963716785117158213702312085460019751644246917796038309037332759737075733819452808287126625726608831180235177964137994762662939206890477697898290828236220257830648122068770943898545761262763364496851779486776392201114608789916711635503378633255581167926309089519985228440772275076116065911439575187598374198067836909809910479732393739944300997426687326034914123896303603426060725239822056501783923759638217013624618444191160438903165688497191879227841091688875898516272885095014799125510991225754708367763560538895072750446847915772550020430960149206311554142441980660189036517657464388103062209286165510425985124960098160043954030554476886390082242203924858271891879302032962182888139449237377253395750389746636637777540719760693378521950936397376172467612729252407362973379348429440933497989728338513212045963057862304624507019965180388818025231764164211597705668617065481898016230894925043179173494688428491876489035027808243808529517959788993501273479054252694872917363646477492345870018582787539039055106997452482081304665607507075107581200556881613139721692373301854778907174015660429930582182037373330637460984725139906998178335460156874999509060088186086016177018521586196942293778990905927576098879354005940728779984937180728498558157658708888690027329428846029806020048055414791844523989431766662515831013617216706107610418576760938436524448541458383142689497005738474666457707388671988577005855623968826955954773591488729650266892821861202412129137868564768603880649587658118329089281780920843693222623813878253785983364068847728336768358152550056119608116157999049735426713220098774440891197638455692232005735728699601823986309321631218988212421764555983390657927185857532065184413609852783395419340576079419711017617483771211252901985580894357130195278010210863252530769763164592478568409746670640972251614363206425150614774104669116010808588132657479407622134406596310830083728394281422818719355099021970371187074778951576016207054727342189831786088421930148897915625352947297118210829390864143396929703707412319005808320650161151749259279512278350900611475202828890853339267947029109899774690659030417883830000185353396009608247787142017313450882247492533498037657902390468420328685104993561001545483945532681569688185436561887545606237315546220633963599233862105719416756524395695127086799618265944781385933455501346770414327000857271011735466412680541801265121101463463422580558279248662468029679781072876896655596974940619279646165144982119516965452953326248454352080567251486748511238290653110095348740716668574288227077096146755698008012111906980895974372901260442825090509940541208280489211195085530669741233641693079266625639394514828072579753422590760477403812739011652358756612835151402675896265272314930179622184313949609225356846358988841506184108978774682738334814769813304558535539448837452980337629352365305845714287869361741626554547944557942646276875269315357504451172229965054739654021260228913260295351818118985070151199090710809616722133332835823356338996972344233012071203895098140443640380030310540516815043549335533594731927057306449653613712684068541902162620374172564674100702827507039305391262286202126895790141638729089123029601558482847875264142450534939394843895037655031855232591875970677208801505024174525241304085279122491042071524585691705872793338657091945260192594333078112620436019205796996238633633202484978134560195383753374126638007007895483679595781781910446270900796226071937059987780579723081843855426753984378757127601850623872101771902686539679730813504593191498787094080792066065744982520399894090059417816394961701346245590418425377670309040719629760233998580491917004056713177235813724084670549725770979053356222739313029568259887784542368178201380064654549810930610258740994086624743644861498137925960977985083744947629248127695557837950623792427724318965556633563235514046809651107317363806929032989551161706106967811393066271205101086508169488181389311932222541459503042337109513397126970746787191115510051329693023880291157537050056486556378027294860387575148324813441626567351408668314011414110802111446358023791306481436526237377750047180108930754504496113591427988544028529407549021666700576319008396044488408131081219501331619309886698468563632330922571867042184344490960641364843428274910627711630930777490435226508616718788099308173458924961454175351451905979631432222183612484347561597191985989957928320164295649233782559197403670103406249405616065529921600350387291329687746266385635670641005355941056766369615582888941671144428646437475974749617621072573211808283889349385184911989990515691432168030704092179593105499557540880894727232961667734852992815510064848602093463989571451407986789436617397884385457337890419266841500885622589202518060045482719087125084457388532707404220643551719640584181287846605432761642046179210904989389268731215988253870446773053893647423193959577756643178557316491736453608272026205095853948949259621373587743322993390348721394879271212965151909751489778277007066992171710582551854462469661044134676864632573901033416868046543787910594924546117992799227703733354044493569367093224291361967090759338324172219015297454461753143517488805376064067963918115581360988994129711664846146742444889405511642391691020183551089394213397846066941672104943559283850811701714330889037253864250022893396306047951382232176559228677807157634179091471876848271601802649947605252536045462836787495838843807138939781846653266416956448373580583422706608764707347423648713106473270739618291076486930868822799722507526353853238050789724741859971938078838113319778297100543202789756658876648876699286782287820837986959704342077362899202849938875151111266115907684938530887097885764308271491364409827433349492698699297007651872386562833464260377220977971207255816420111136794245387588917399022582788407435504530882057402921698976414869882136734118973273442022285885466813978968780099670277011008168500453810673183052631012450059058664081572866495018039159449745139324605306844029771114470673589087006613623225584973933001878231069107868896869824946296962945590299670058233596117693009861755583718789220770540847633057198198703439980406863150009142613520291467622108024244878402535414752686553429465657563407884766923948107577659872275396057495169534017008198673620456527495178242172023936687563710636792446813550935430539457891202479112101302969823631513206358135975598682168890086963459978179567892356968734593104275719291231570904368462686091779154661309723514839386078537404215336227565621747856041917901349909136395119663949459203031250438528717563993992827774169109086856879028546609221496472045413886392704035724125604950513697705887240678137661571818533953170423940616820418691323364821525794494699639090712663125315596460293427151927784388744996530897404115060589534578767891111701674408311269455232877236609440188704633905204777644771892013948279839467759297696281867703854400101106884711516713145042983842142434373539809787485698869592560608886307309401451088744564362978333144267644672145552478661288699772808722248465919014887032344191188223752402810758108687635705671089461178397103255466439508268349536169555177456968585970568256555424140219020507022769827139795961064951020537467299495903026717354882851584438299814375146627145380686647335643338848778681502622171969616017978437947296534681206985327616652352966266510414217077976472337803860756916063913371224938439251830143246023711394314256746964229750791450578274559466732967183201240147243859011332131750604529288685159575389414158960284669149873438706351852636142654187047230703124939073640693196918045481707440593608065990838685178023755637475364380558386038561243951966791683693918034951963656489985061786285667034088560429080400417662683345996478751616488826552357543059237146958199332648568624185574614909102160861328040734525408191394760844748330441712059219510489544990655982674859990973614813089183017882081443737186589265279367867717014307382232763576532207967295820369825192144581842464233189951605007556618804292805882624412086988993514051440043564000765154076192278135860495814231708220664687214449619447982736075906580635479649679919454312020275397522392377142051619849773969214447018883337909453401429885175674506511343398239369686775095542834471321913325719401943743052280119476767453718065458608842054002405124825137768606147201136023731936317578032956567963518078985514855238110821293384482987530106812468462283595603171019020759605893454676596025228508725507472497503384550215087627688635469809944899222019670098838881792974156751071693287686422504034579136258300045362006406103369910370346844324787619782234493411996433062357143977035753071048171661385713328395784629511863124126365431480322572404094266785999523189127404935852210532249923493654233460874546813151541575330409870068921490398524516663551178224678110388209651105308118247066903626748125455816055677460694170408816535058952790759046520273522238681223116288436133597834155275629397808839427480322607089876351908460311239490670904646987391458778915738438836904371582701853311499930053444396557477765750719012695481180423339264620914451876101778290594444232694592586253270686247099058395910072313314299372964314061179305654461399966010709637517283967210752376245704722615903009317757111439608361525149984172560872688997162212814996490529582422208122041369609166424454155395290954163657011730771895263295475653259270482092032863576744069001153066708373170397170880764104740138622923984257344461057475485642207331667782945682709800159649030354374798464489563279715344401688256399101823766219063840776990979619167918580388275536207406539089987833685400223099513852560314667961933574823666437493298589551384060346310986442252400005036216317182515555706586860504591726698082555483902550485191942808206925312592247360454481747356734183652848442281251348263885504190467194847735767649510351427974380337397295736353352649499391654947978050386022381685527740062293732874025706954906504196919243597760598254852495508552267104570569045770842671719737554894861414968950175178715117978382056318058870394739303381055447211381275898927647870436246772751109784733335592789048718480072036062712759556614296912504106565650090685762930525948986274663438453302055891036320082949735915018108664872255593964824957953542426145365931992186493869925959845816621790802147111520928790805113447293072536456202650990757595759685863614710791310020783039653412055181272995954047687393684048181465422219396464829360232376745110120936355461622563035647464748020207542153643294453848654509109048424988185939232143726676294424353372309627188473490097729190279421252186890822324161227434591534822073057752538223633127165340369646628287756245763134242422108285789572820553924789983790700431827349240354386336909171641972114925266462462205502187173743652210091650061767667111482038707376997696090585140317676717946288734894765349125955231004999997622775308182052709206151338591867110825103645104195471779813578733357250640312282686766259093278150421833324518987855334766019610879877555185584610343606578219331751197567769058681199153032979858506794235864789474123957500385677720030092582552982706646638434075995669699670319297460922102365154489371334778343116071488731774550763949057484509284614857738254062345810105825760275847814831032872605769666643868117946612684946299114275075742735727696526905504273587892977608493972887277353922571006764798026958070966068532597069150714606185400653225806482230654116412655899070809882816722607456617758695804671128653462127104920475523993081962386730165022623490649735721666888430653275443134757159885920526009154595604607727278509160837613228950728938350085736476104740833250804318312226778651796970693624938239885908712604127676092537350766653392549634019248283543088836875223242247433931459255344852996215749372746326555153071177312124235208401927849275421223547124190857077842713229010338285878985030214564299068332707113874146961585183829681266264831002202264563757987157385632230585885789091476383875024959221166306988557348047259193132505567247821019447714899002697746765628616475575749039433111842629701811266255595211572780761766482004897602209738867662192602872256994611461905920534820630207880647379009978591098008717490276988740331751517734933251594255567662233629864328497046461519807986937529982058182884797809872943233973901996502107293427915455363396594203527657314226060997743756067848895955378240916702314104921253714562881818870841076998161456693794172795861391882216629594260551549446071265424876328256019568356816180858036215794941779271615334061549590506535898241338522920058358327015063946382929971256528847306337606522113618825711190187239868035413732380438906953699513945932427497095860115593292146069746210952831802687585989039476582840800233665779134485235345244998333158635167425099157003954434760522384179907751627166236187174498678784489473114337237154841581420456483311462475992550788629053229116791800256892803663085250723313228650923493854862588401549656494637385168048301200078858296062068119322611764676985634503491053695959743519313380186191229509435338554991721269063250647406059170272782195072188242964153316819870114311619537715306157059802780716033584696219541850050289317608036940842588539861227174567500679440538975789308071757044453620256837444386572759315050404068703303604728876672271521393256895978841615593227212427079093768951773295704470974002606291209554511976706787590531663926870349201683743654706818746980460779327219524585196840350061759816267336683846061768074637314703051199735427006688089888212332598018591019912790528622753814844678704067470340414780597435026090224327358511674350413211354692352730244780047532900469186642520634185666818754182561422773708787439612139774073938497559142532615793091982581631881319600867633086657395567798174603357142965882291911612887224409143892219631775234948147215296139881239407921568420209656513091919863260390917476572232271457248622896062912018564275122663421935603941039341928337750576029520294829259355132425808197720635739694252941337942555161190113073347523507124623961402636701650125610680437574661457588348688739374311268332349630556352251006158532653430504939787499421874097110532737321242522535694033341675970147910815561757780873305726584913945199702390687366156009576377969753985859582533099432055600212349160930377400175185396422979489151525608693498146306750283117819589094117781187068870847252325959500964663003037607755193217469801310183161519412246193991886538338616530749477809127200181300947540747242044011543707955092416876045278845688828214419521134357367934776224914364288334562321198918482420709473733542124670163615328968324471576767497431355629505296497822703412018602271092542112923468296264298890697645439078228441690954228930924404935160725340687041803802170873833522231919712591152535961672613293725551349305464611733741156275233800963927991294680377654821385169671042907042791876551590256461458872999543709222714455860922128143654895512272470626640704551763679686332639137326303126648373540480730815996977922897894740672386169404884664579634475753859624766496630548561638359403737378386592989783858108825731853501633179693404015131043932356757040701634200848441554112687679756287432871216744771099630206090923640836570018928192699948803492418792229323392944615226101284374117089338103034539092671559075721314932484535403536697983777205366292580368222443191547238874724275553316020342963106404494244282710682275014151224131950675925437987506843821475864975605748056941411620923625420603557842185449504110746976294513751324669467476366869783274721291872270195109329790845881854533433283487343973458041811013633252061734732827492713072398979770943521964656583226918264718869827972990461648975868006440407996444754826849778039675014591433375408861228675263862222626294008248338674256647820753764316742512016619405080565291915609157667277557547258274911134047179843277288372928571943666161211803224935343672257282914512954493243296011114971609957302761813400548559148464275831955900762539902627385114761807709002928069764816251302892022934507763800227573271968172243776545421192962143738206945800619092799898670495284845845636558231692746157862642777480469996635776210792564033537637005482826233070441880186208815758170229984885885579469909887519510635430358664768359712037481136936540030411488488585605162016488635297816543166204591215822265649971088202889873613225140590449106315962620513908377252310728963828957914178650536730940347255791756762332456836064783929981251244278327881765627126692883295526284494772135178998536770373862400452158476495915766347028907893714289204974739390675019475259566120498114360457370628228769863317390251433097950358709902772922663706297983492431346384270888325333393460061655383816298878356146188778708963820871188184120896324147632071160851786014058869962729717715289474820255742109058927402638695667189215806332879066717826392954359343893040526712713039434014122407151606593583938946761732312154908522529271212247411210996819407579841846558478967328397282599807933099903980927543604122231106044168932577531922928148359358029618125295064379422627143523652819222384523158800747228299838490033348290735797449361294635968818527162526074562666742803780935883040971959640420107923177136567082026557328654429224423416330687357932217379276513015143885978096281044885808045950773762296066247749829141094855379032479410532211960252223538396418055667486992128503167426485398084551400382146900219227471830519498988541563406175815693288052824526142826197866808696032973032625082358224682901564694015920883863709240487320820325811362649852207698650758765652233861920611499465814159891623344559894680449398781434139985729397749833005792883911928221734851571692083160105475316224296753911867827990952483077260342373764206495858733197379561925990684380345368679289870051177672938579620223298567163206009029262211095127914173968076830118101817921069477983394096661040764441950982654009114410770810648565234832964323744004520091906451772180508888509174992273806357088071539519380926623358182967691560979531759486333319602161588439440135081796074629041196908972053367047083548266614067921931581720894355236762975033011384578769592282266892925965934923297973216650992029135558657503845918898576804415912432389675133767789120630176900872004286788255196518626161647740514865994049193408404065928391766961709809291345360083389247043768169647538092942622506643463147501860546260057038521552525579363110956419179381627856623063852635840579111453702665696822004941095164567197691372966475500974097597195442387280786982508987570300624966033035115172906287523733584121623939291375531602237594899027165759298944260915766494466287734510221189974541334522656709307444808130374713969526250703893788107599398854725584159333889218821791180436061674200578371262470064902032034364518149834275634738664044490000674978528317420105525302276184917124005485928239717037956250321326041150426414183186780454530559395600657495359751799613121667823403732332205158806003146488289739630184542686017431005806672852763747457632713882111843529714066081851035397868065489929931222142393429779638317451534882601432001533013538289284158455655061906705765549570139263760515585767558826694074624208305282428166634964135309368489302692606546756169297676224556293822419401399223817601806370372754737086861868969201680111291250735098834238811970295069101765697582962543379188406656388022671478264948148198021552559836840737653891627034578816458008866435326781732484366770403031956356885677197490807729292727834717162195926839402673231077422068868471320351966667009822884757824333995597596382228785108571562985565900984396375836124468203782294136793260759066777243100288883540951075692387711992117307329761542065069986912464943896870686088919889083413558175474730618324579608366805915625878660578512840104118776534061586566494526967791954003025268367077250384911021004262089511310575495060055635764252614086735010241563168017162224478637085855868964307284892146152296133215434016288017017471127267270849849747365691177387555470019620039932302257113355646107611777571894236406691254700281187314415777911870714297088740777141697680900034340083878535081501741485965922054644655250686290007415245663829805204288196606963675046246520655748420766291400968551975013656475199151052089182243327492154597633451893181470018606682824228730694691219371957111797168286189612025266578938296832454049404925967517984422481688454813650651817396651159138101702121776648911711435930763254750556813307646949483700220935923965022764972984505048611494090057428947836251662978962219777322180831849023231174819641458961175260975641846725762125538857771807354594015691974976026755531096731547338300427960747975737820882633171874166175209833424203514948467911529912582347346154688948767827317148137542686065316471465105261044549317418621035885528559756659908818146300418314462795365649367998899866298243407077253928782132120906667135384855905242581154883969968257555081872907531725813852086046906077446172036242200812386973064891301553656041896185656353795482602398965617861533849770449577656843821743444194870675722243381265676306354751497485928710546341517596589741739757995533798169640667382439995208504030786110978699584301780442725353528512599870572616863805173299100166086657973634650119397118492533797451061567581348428394165267660146706318027752463037565069773867388234037155847478660532583820491213425702848625648180493513084273022098686289825968382919525274580354444906836401756573287349799691890898195339032219165664524722056548860812430003150778078265814970103447144406065831248114578611785655668695142107372533630041090447503755620095685621388821746603587875635523653780371027300406382716232440150999212631595639199771139032879292204873869483889224951735579441531056313457528623795646972980437602806472818079555215527619232591698069666883911448444644003786001790424100014374815415961658149643205998883410355597947213656808028392291425309592361550305805001038685113810028900128505181078064688538740750314077053494944590901549266915253037667253948962689043942264506911109759646213711057057835921209138095328183474703808691184428190153545926724791524302395461789658768241628227464298778359784891369814108022826792333732080067182260733481295575404842296761966667872972383078417895039913489212283000377324132629601411751986413313344494449202932908976417387623552551979900508938838145855064793068137372961585936235099613155114481701670947118859582768850628746559080076602765867418396880056918360601527576826251452127127967278277143090546222863920400384142481181239460896866451048610045486264358998310847061857968176176573856767543037986132319369739624887493888530829794635734875389866375509736529155815814460984032735592646264930727311517643298644503407916746877724194083990857680553454785319822997180191306348087884496571846595293387222033388110876294685120551745749223657917832068187340717944527951454871322029641535186425436936111028974040609047354095749412476418372789032990785428734459430555359285865541781849055916417833035790362472431644194974464530021614735804862174191990063079427602892966170310521647502587215081651149379906250252512313651682518718735901625290331905002489531649685645583417408605060836041213435147287031500863687776955633290867861596510512828772500623145448378578278844486525320503125023178834847984675393910545763931342789484345980093433572391883347283067160718332697672600861942869836194067373146623451206141050357451974179307421519032948157989982668479379541189102936617729686176942270478849900484103852783338874615496062151866073678358166135628186387550003641083812472326272920907375369285072293632695780713062860353453500058873574400861838924325293503529065407725794588594907721879227851755243121049414666122509744291971263908764915741137591912782310196296115832725172439041785061949818036543775599099733853925822690282740153991728546773803046019691455141825852655353592595522593256234556336257023165886694226222933151471628851625038269754799184838036813663381101212284712828393413149410246871317087335884317609883841569869618249709323911631357341511857885517415872123659734059999283435836286974454993612739128614394785367300102341042991874739586282822244282899779077156909704076281062107598825357978558147575779766740127412358127381907989012603164063220244216476299269625058021966816850459548917466459295543799174125967148017889662018077808504541736515256790956512370846762809204033050554647002403651127128325418465605855951058770601724400753536091281854268456245581270685638630088095024386267029573867163033217201371450424222135721880884111522091002820329308789282748850742617015306563537217553792128859341885935051871312792020242862845010430483927796973394436009889091722888514891419186443445712462384168043574699758057209624914367669510278037766203281814073308131632678718650853498155474583984214711430241228254472579329738569782469091155184195966954748642666872974746174328644255346362747850175573080113419609353736278546148493438256633879583681042624415876759908654772387555396769172207916477877641472294216924346287272110051811272177053750441773288399868336715894868436330816725605041262685140709950653865299163021432341423329764993247341053924710203913531762281221419670427888230085971558838738362676072046944620437463126207139279209051399883162534612926540660000962107217565043770674072680263905136102551579454585831735620270540815098222135220101559645297314239283900658590017401870405472869662349240391126485637108515259868968597727149319013780447145294856885436679054380936801775333834261558074288394921558291119011038180143545280442723748419212966578090302479635940977739378219318942141320098575436706349976613234341200217825056500971538837771147369223345226498448489916239838609429983307800529846511947026074496357443823014337696783084299663365202032111961900314577303811117135250919482795215622087129735717397164005593777007969367617739536933322611877545445897866685322964324979136609364499375345494879873561525340948845854577293118085703265841038747322086760724887340316319016808998830999175041474562488366465440537238118961198779324033294276874063663686036379286477938940254127228342965543094099450915246821976170642182657597170554315795532097344278673090773745347842622266432709692940573474388413873005926652109228681151234502805727820519894371480387184649804164259399438024294517222901903554575214528313422897474612410339065535956710098489379320154708111833258702832787563828639275161103481353340339748502961840748601330223535678453683696736469694714542062730266870562807072314703821650698787508099123329763668363419980329851087815320848046644674092961225600153980944590540592514028480595519149145623603760578882504937174329346313345215520909455634022816332947903131255051278184071372560486872394375893521424736581500907914911267677500255757068955440042951624641093860178925331441895538975645932349514484172856696210142513802860851381716313721861450096430206174218213151979280708835438285562390356566992492435483514751801347050705074331933017846759755462798630674731194809731707594584046175040244264831413354689054682896192363885975451881848244230681668759393016385098550564445002563436277608624071852143065446097880873128206507709829288062062479028717076818770507806031946306219085384019763724883382156232128453075921857037139185472938360009940864835051476494257000565281520999040270786035188007085250393199557209227136011566954259765700309727652409528896947647851966938827304354889572067319434427262310155475967682665893722804780717414965122254512649874325580737294666055488097000934578945205679466721023434157641563555598543609304650931816454110905858605481483091562462735815219394635290222369415063797306495560814619636581951091351084303255868110216037497801123509479145064752177208381727002028093380561994647993668179329439342089780209872814916001600189246606206710709236466109065755876927569877511345154688196887998249775953362179125725709020014191156515134792146892312441923399666642239227563014266143614197931922383183763761184722296683197406927967043001564104552416821727576458955118477581009682523615569777511104385249835585596668710952840410243295919003711299519686338535676782862528109312651802183782741248605534926116128424153480996939183972095380342489099211359029299893221872690131691733839615063503431702835288601173607691508058092313522670770358612467588265154397288915380314076971473353546356708729622448361641753762771027877996835253949654807539074250264347942634973448288539422237781090519838323424521582331790211696260950042706880621856012810170993315505020062446288326992602761091170963751193744691046774897032432338916705381439547868451504390817980143386211511662333674936983107294619749868206897156010006634394413501832160787455505020500803804494244995337045143428302810810418023495160376664048755562931094444895529163311954506014443406785404750277090766510603722361583667672230392708614887648479613247624853532946363706672988911068951257827154217709462927932504589463424053762230072484879325123718461065033781233102899897548100559587861284865638461516017700096499002008203082434244121695332396030233014928739087304192427784492636021968799327226215828524529015276074237320911674411510914374402105438251971210397276650905685385649775364694070717662093154012505203158500423451811712660551184686392178495235324357335142922553679133428136064673208249396719152827831194050248452106642965123814537269010319993745645281376140633415377770056273177038656292528176536612762781059652807388739152569598829461413385348094806221462984224429635136448846106316069901448862046572785466597595456714479674754974584518089686092105122188087765639291664909363385708675509860647337275210762622210311317395221735733060290910047010102295363712966608263031900904438630322282698989946693885079643822362433916062233795944682661298826033842965521900595166581754417731241969188169899464077017262792151486299755679313874676876999795930652972230066459565573848371943401418538918713391097047392923849307788721297650404086594682564898434451300992731449205947632534725893100181565635645976862853866835250311078932375678612586983940771218773443646345005479321487018899350987195038523865769198699809688767252003417514823784822657355837392742497178121634941285735448592630801512623341915769143619196121401253930971920712377638168795487693331477445071522566192199025559681914588410750882103090361176045986668818692339130220384509266318028572773638941975449902658937479836520398847503718696031780680785042075668068244623267638650450491015902644572912802991093623738776594634812133584260902832446325450787257433480925400048268055837305660411556466681465835460635989039213355969177232191915634814240151869342277550377825974706696547434679389737538132558352621556964062092266933149785333303455710874410783965040003398200142688770765753975610925529086945089194841354213473612412018659727157775601287161314808101551497702412179906732960114478390744312946305422391724970194093038214713267626045678407706870875466414524339997254085681816381832902714733579608077694195311840636629265989150087655320139146644850508021849764213327110885059968122851260697954463834324208528233225695274432538941874751301917891834175970481406911910470395079462737493166221402136287970055993768738631089564502530044946907328227717930539526945864741987972669862488203436666306961145544641648034671404873591309858161411630474028248185405236273419030387686433747571211320682561213164811446354597249429831118566642198416656703693649365075589773798313036110892748891200793527170643325447068842631779731557830731037156933122008117259303331827039311876783371593011271475273454207868357529881363760472799293042000038523056625899789248797406609717740337672878785679473896160427840059829084035803912974035541742740993528102324723632282118246190851924315929068852935632219283724587921963972495454853260385608233577639096797793858928836975101709296094469626905973545559411778451287664290251653410175488269040491388064286695420264499868630493159416312888523867128499993256663599654636108662564819854026251007037039905015558423285406231148248248082315136023103925167232466571521512018317643558271856869400054020135323111246698581227291350263426594892965702148085071986822266806516458642357778259176686429090130992095707018451011927396660138663303320577271327071982844858707386302133305072441739466027169236371610500450824645339723212644760776910901153855854512831806938842214749705760404331316788161585271942008369393736205364890118875000523645486997037469679366865859391947688893565299283782819741469590433492105843939635444252003379693808286737644135820738985747307751112813213167980285149526490236178972260881256830844015031547016178309140036047276248722560296743865350562795179864106246621578836040943043597008103912847325752563538612762649299727823287137297795294168265576357861269457050378755359230376504372960265879703592531094391799035204376993161052261586126526845365415385733758097494026462248484122273799683540181521872959584453632911930155058322117871186699067334205178866821831159718867910741398763466182037867767938051776150674495597284074733059060919309379564278136827935455698024935524398184379875536238274202076312423571112409354928784802834854578012293787384960507866772569106403231576476194623822260803547001713465978515174128180227955686199963123182239905546623116643673655653971086049539114768872820356747924996334055809942860777641632082175588816142447353069533379941746257243772212947163894705531486683777509326782581020813445215690986232811109172777651504975159349019232940947252881597515665447923859643694162908556491583216701070714997121084240407407368313458148320600776085652905865758146862232526379295624177056646894444801049581685355560794670625106776576043424206321671435534837977556878199256848727641642261684223313082672766951628728795421009869415853653383842060417846254456162008884310729356217540398707350811936202401275976636344556747596033396886000655712721451250225897601063282168451960600504940440281109201018064024126743023017242245701061485819066524695833081137081642914050876328715573671051300406294107543868361971245303997781857977248020426937247822025691498805898842432709194600399396274173482709154100965124175433593253192862205280015465368874186596986828435406381592701683897125710298407450469046505874315893861477913853215015025897604434974609849743435224129598840425338650794092447158521701874186772367327771193909646420319534378654845517994898530438718292779037133786006082009093055751722990795663081030445183179506255161869735440404867161979348569091312081066605142049814813963508654884623115118941398637529068524753750609271029625515118699025502650159620993022320246420996877523253855858717338846777970240888043455274752316843633110034678783644379802456685851650974774543639088367404874735567944293358438576222347662527681677119692063835968860786413272142777929535892504217369568820839376385232543862313425994433091979691924812475770646956051653636394691770601307417577351310197921389202786281278005082035077267772747821083999985512064028714838383929732907013491596484447856892642468687789514977933757376685644883388180726807516979399686119131841544877911929937420966930808184201790516426917256211789741015744544755262028080323568786474859251096157004966997458403694802400815466501811545447754923127962286887792840689011453723955497653851511514019158611141378270586418528578835510618874909039511870938515104556500654226518146870766908384348927075776278720353320942427563439928768539121315003239322280223249357746813974240249445513360060302469720405655359218569265059695480687310904371970583997599286031324850703021394256788803431839901567625359810263880151723512476884991222985551949318865304069017885594424576895948044493644278471768569606937711045232315519728202560412170661164348653149991250699501521366837846713737547433885187904475696359338554186536912178075281739046812825328377773294456075737119862999402403668380589797410694053125517063746019356938014640243159827772289152287832445742369162931686162956888402007963633740841594143431555691265922487129525433224948056485976430522736630367223042381544725496722697618913796881980908401315161796319309845790122555092414187496180231332360157505025681931217877490678801925058297003000147545642520933716777899797194509267522810693186903078251132303808137863064299168917260501486993597582571586465147771159267373700910591179344484998535392125620708739329084515213856158100919649984472805211128449744423806025303938760144350005960460704128509027362862190174340057597147461777311680498225139740697425404731537797321586964447778165083568917638681415217476646281880530121239159912761840471944393265781480016412108470019434851854222617034516511363192474714041400788637901716495985353192238048911200664814214358822454419717623729474987719022605991653327077388415468601607927639427366195704333746621201771070044860307671914306921514739197262508366080389111786928742040520074247857698549742489054396573490851528387506398148379055242650836057935642407594123365639571533491738380729768400177257067532542287367024653861929173726809595271006696360603070018609374671417406838606344241130227943166093758604209382870657409722904266105495469791961112042947144183325550712349152940686154590505548473256102131078900735191407734371032939782222077647947547713914887958595876159818710763692485009636430736655215140041444126635790465367312311026410456210098328879896513606529602891114085914808016703651073890742276070565173868146045892804917759299789019281432827484135079480818234994499848722311007481694589460297220854282538928889496244458993666609439697160893407501585822671983277503595786553564920854180870765996470915504357442313273969024022465316723748666339589969397546833281590321847976937706976548224432755107395621525780490927557917953970158536253344565520395468931695487827104858725588929898431189730227567299661767895058490820966793217283771299738125435292636396696395291278181751132780409493500882920072681257572765350708470206469219578069592698948454689354934580072591202580997236404605333075423961176207410364095577362324660992041897818580740114922852926948539637742678989124529951845447498780791635550382243878781299651677097880734833145679464063711080994074109111673350944109508450152988707213002294127260400938233146478385446651401675839720168130695355917287938876668173604676348636626534807370686366992817709383394533015775728082092780901161687265824118176902880586613559151375974304785381701237640114690646803671687064325855890428647500064556084381973346478285634029490650144626709023312994660504990119047415818836847739183150997477185062722964502833936835876417510990332031376856080797163572387653758809304195222258335616965623800987888119225789686988502111489166453862477830276818822560158583017955370513351839941086758771075809376314928819601399696320628903279907968946242428618465063909945434562926435707235418855724110575289431436506184803479627028252204178432457615781590881992363905156574219074204673979943144808341343092239840280688855379804785414354337778225927148754047486900220540062155153893717388442174474835216686126231042369482187860623699126463677837666076442368803031850409285617976039759072819942102478714247916811123920892163092762685998987500723840764328274641663760844072800985640326261036105278436763111175236781751301866444769960389880619540792644277403763988758646971002095722756705252357424870790224489361475149677077458810219080653664163231856386462021930560254629794158210273332438385110718670859032979544462099180555477603554407901922538321224738292878610871895601500121125608817693628594213751661926855214697589293946660881386356680548164739271226145269539105175114454295751867174767649615129996524435906102773771916399229876251900450771473455807317829595511469501558954014121698295215384973218587934568520889731160400797674645843421706060683730379267858579029748297159518449150898033166398710594738055304553795241707623309305382267108390178684437728567957213648745647228576460346558403612920122358336364268320838595373266729139808669221638062811346094055106809801739284302792222893220372643693785395334746394755069351088102551554002823983746828803982817906361288388199728328823521673427185286308846283515475729241248011430631454539978208258691846340977557763782745190452094132905964380803577122339871170326812710354377161130409898644838407679723517164596197481700132106354211097072039057462040384143141617201449114166998232032574616797771978105107898599070496681443724005445808066387993037862924640784050713659362605162713322885835549267475812372822805019230538200419495202719144311008008012389905126858942006073354902407905185433883283771511927310725474554864033090980689391743506531337181273768256853355312388717436239272484114974426566333776288096482081434197150999825136975956138479632371235443183790282231612081623690576334879278449289352655259204137691437785731965032631576320840144537976724042072856012388688052459934258719621773851122985631923029370201033928574114702571527678717126409068328299839358954770138945235283265598322089625799630092296305601754497757551749969529467564676326455249315656417602486295247826100422473385976212097709773809329024918821410055877647502709003272929435384188319508025579118170341414528929679713753003763862177921111632863660095551791733162525354419492121976903009569170999752064981627711783522847395298401372361470857015326526196210154153559070652736284935329252243585119001473384438831920821132418476305517202255098264996629580399593094724317260613126828468354986876491608999609648458836757627162927148931779264557939007461537956589403171923929597407672637358145403104992315415636919651383378698796239421810446504191110451881583684939902528542795279198820161764859727384219082918031043802335374907251637315195667898131135397246965633859246549849052086782753775360120484658007145952471810186108674923104842294121265072007804509102827759857997694204253381151862141867205014549607044909174874437653947138855588222745844959748069510556079618564725311613331549585132788265441033962958353455432161892578744174452381664417427827566831155487393287641934197814045855991896448181296667526558384325717200033922950989525875928703181043219251186838537165534043498343125732860999971203504715682485474082910646346954748099931216338448603603048372107805908505151287696506777206236491460779767315489140025168330592663289804545332934637023758092973983569153832660271925289903687690443680884443076363525974106649819157672685701870538066760677550822378295335759827656123627799537694645583496170718837726328526887105141656721467983447384238717617520538011483343364361060517110061395519769297885967211347156795853335701529406860470195122892707022140793588424737709136564216922091385625843182340304749554454261087853125415385394328850063051095086554450911790617981263308190413114401425744641583349000433148951361810363371720962035609347841626716964714792341313866279171579338332127153522801463788315022899264962616938134782201132995776834116573718389261623905945455927230317550947043916324631107069117194457101311101783643928574152474664487009767345200061103936019479246931856286124094381651066480746767507911713915941413937330734839654908896197041031647934656777074286045679887825011975968754207020291658380039285993787793679045074969280517089009089685307767727955177856312713251800261964787876904962558635104100836314932285538058954774034261423442814510432864162015626511341432317683839925013387806747621632659590565841570031503063037357420092758560851043092417243012488344318463156566740533247447670838024218284483148110422955020306930627596930791805864444022044425470958008305465789978664934551813485573222603770574119838347297427019382904066507388989753687427202520203374357092085750397609434812113676904779785329030575451507902079263992935964679486347608238059556727117919012372082758998087737033155498082074499209855001402426362430545065995305292319956988592232129619268699501628719252847971869192646754815145084955332873916138345691575215995243589608876049517549918536562691091017959504639852824870503166860573729707589409517942895876303522831911467336122853073060819951554899187727099931612549623982058012743143523690297003394308408765301397034567612200337947393872017130456171527589413634342949625512360228551357443075678130170180001963754865007401081087362279126476240049357374863737622327986916423007234136618174721698665765521519836975722248718310825523358805174491513010764030987368539084383255923857056349904493012954610878498438673266893570646775236004643056248798181821243367156363660382631748962419138094946225904432876008122548690432435771427180658263411841554623548903441004082186281094536811164823606431809418601634753405071675615501696054506953964067088901067038096478931072771186419995319880938234040126416470890803285998713666454301776877974158534609176332318530886654316499073304684530863364584253765584901087715496908851585669873028558436414236701510026383834298429449909653493872747328678318601703481836306619191452894544504831154342667379929841576813496338846269278527754814044445309822244405044806917856803174556156020243280597853938540363844186333225471751019949687687701827471123016497950273965469704871118732127132600425227988264804349309166426444712826653793158991816797867923149158732573399549441874543821778618087170510689060802135226548661233713459535203793720306066161655227909257520156972683299435463235723422169003325489310295352398649926476397745834512196637707136591363332889679780020769120079039780270701352864080835861948226715445220212469769596826506324184909152601872671665893412838653041508793101948943527233238280332775484294872952561589362756891490169098026038177521533288473672623463425838347301547549151463803711741667632133148597798763699243567420611696750778738499390596738060137434032526513869900247790385846512478697561701739694531165681026153717599739912086244891423725590640644235472017372085525410111937174479815152878740077190498446953191134095548385393770790707571518769201606510461325881782386422823391839105822051735892241288466612545488371774851693184216742259280803424984341608722721264235622126222309108904469073487919534729603510675706248177244248487446268437019351996402106994272896909670498254855739432483379929082314285936079467302713646699921883699485266011804320858468734881595640475269021528492344193318191700229733374603131245363803893084352244734564969896207947988644466479969996354156648489598054082798124450881151714860264351014676454502734187008723610642609092039574337104897848570718677657771423208966230962620964456582670759162998621855537101676597979050291728379423702824929341189343848541669305492960285592095246304507053034924482651084277916445300213696941558117167809795761210473518501645674370988973558693273825325275200003158401256605016157634224492060872103010055513978448710352388595148081172308447586365832417156800090252824101989633811052749564058605064330606461285930500305486872887480011131312430530417206141310428174574969354364208156005019331972763553257289823959860621646912248370615101144986573044595695813160575513711135855121998861876026490357931897375013009579453479748755157572786034842701055523067353145695012798758118531820118239587334204401176199228594487077255702322470122940195488778176896782868451742476727601152250685784947456578096742554607467685142650524526993092996576739213601137576396752035311863256224013172718188803979989446895147164680355582097072308664245698373424070335954365231435904608067736814575104019894403028593520193827282249870526327495966998582677724259159355846457601570405117897508976521292892495248820772536994532503481852064451299583293133057187749564311198107905541475987676636841330096320724344057662566366611458137084303035380318896605374886236393181840290156057608706107046921940092661479901894160138333091480874332572129818508242563793344200045702909752164504681961314591411513784300287439264077365727845359728891864294923973550355123984058888119944978148092746812774663948223937773200694270469260595335351651230565155447320616491481161924273242768356728888107832872326929670795779076792398106189905593084303341921134152315671221762433237879994974646958959265771212414694976010688547656578035051629719336490968028056841025282651184387310838682892113693859920928844509250315757564137589782986058244736553031018144931079973004200206099395112066214070700271770434337571839703295316838358971174798884123888436448017187483241679342129930317194434202593001260046596602053350545654534588657393812357555679652023969904053357161659188356328134327640932711551888802826293730166415341401823573218641777658526942163137194653924506084014974851872760724728601478471773218899914687512097813581083270360631410830646531342222248906411617353070783567602073291924174973712116774757119440269763401604064546396732519578924038176650340765358954133850644344147577684534908816421519911870328995434971060405226238826112555079349813355346607927019875886042131551357972570478218515484888594135738069859439491739147101569368454954082170126645664715688225712076977843572789282104806960354814472497199769989241036693028965240537425039251686238874142007961620370312890622369692369974211994440047109533341352366161406700407238978024897732721564094877929914156033646008452933869109069688824714289397549200167416955546024297723456073854858301351063615363712969372854762271897124332603341778423549573124212355698512380009073114700140116374585562251062092043579955721869152827967678599139044747357893693090934471972441116941810742531252765006784395645591982321689003560290570193284172917987100153862722092649318674221470837443323082784772580878011269701000492501930680128473149899840456347023287503886952697185166163296770047852535079671778673865497044687933237530321754270015510666771946889268625256673449765394331065752872408148304210505486644683488051063922977144685540544019719205697796445092630096611746851711193761392291626855014509673060969890226053059767253415187748305367434821786802232300825858517078657289132269096584437830233229991032411198750289631261610434431940860548510752437198068235237577632054034865155597421071691303943401663109262931552674428228447352521371919189507424596840441760506653959143906322867841965347245284755642998849313130663171763218651636359382428840342195757982161345203716325693349690975458587339548944141145811235120878627131083134792666471628773289889851571906113690842541940797660376893491198176036697207939424266565158298039492039889074585028331198103206605865281523827012277170639543781205014176505662339329608857016910200104894845457612247109228226351619954092066383126650565218579493803250494879825533263147439663452141410375735946037816821272481306909362070459534630461295360152807146930627462402715584682101338122930479606222581824025313562066200914720509995313541610266374755158416301074851708098273115004048921349170460223880065231759929826053844713537221392484012905109069237301827161903927007722165157098680339890398199474038581204077240948081985588662948572188291830166293533263998349585267428150250105646094100327956398523587266287633813613389662261290303520948272778339196516456345821876929170831561169445142121310842079280784149633437803929743090782533838679091266504672053790010394287266691549821651874551751814956396446802833169665533123217572499297957176331352520238958287846682386274481310757511642034329412825251492511057222881647449890861371266257773532117172447513602711978690077335637791062877240776779928765345502371917041452379891658141811256468780300905060669351558054092801561791463277713807428285070367172646530291157110732310912413873424527157238148102046452386544349326129347508849632870255083374717823560140468628235336375324486474762238550282345728973271212398502962915605360526207960019457820674668445165616768887894134618521520196002235470783691124314727736257208629361962768865685723136243657758256610465262363476412114159800302625195037501345921556840047385056852152554896423716365161548437141306536219921427898327364722170851821993569012084380479961858414271176290485797443764516604282029591045624582530386031337886242603171482705184534499738842334959004191343334658894142757835526980004372885168745366813335253993308286613170758855491080610046614329478079353402141231618393572758785398623385569415883274195646201296772745698348537196686255590527830173464346369887871167065991909232541938186975614380821339932947085025024101026773696932464799624970061546650874141648967320269942821163092622068278888002947476682307145302084939144608654416913033798977477307019850279820584656417670775860737796772204664651409120706288534671345224108418644024530542445498466102996650978396251497515560034118170473478223032291416944914525396276509884298781429863296446940656354959594195854108744195518501654786278343334318975277494306029544173035717553591532142896070386865623242941334955161352397674859944433182034514922208701308149376783885484681407314454336256148066142438112444506598135913000477452392826829522782606781928587364703369637667900297228653417493511558755602880901615947370639057944663435143404638267534420572734572761867682866584655756167777257105776484348564081722393032063464794938286310351217784290118551790150996432023688932232954517067789424699151218022038149975309152875364427000444115010770769214068551511142434923503074449965522953102359015762162411594902890301745619131996610006102565973325654697519388446687897044737454696531677818066516466698388337320153941159051190986759316212248816651232919899633985190488285263872445298560190263804934822726701763267776974646445603891882788080718356380502589208878352940541449841678789238505072612356753515091042283744724360075584838054125624098352080013515536828595959634686241433439930895014153928487471872147045990143844911712400953132776304360744249247277601956777223282215073017906502956739965236934840569830344299369025060446046367605742805678202141681696500094479601013701434521057302465384629762271766983580586656244111675758840228004257382722090866941352138669310630254291113052747055034098862058332673876860729111674442875242718987723320345006064114372422088856615009235756466975263600266155832099773085795629098047234530086219679742388318927118059207989314568851173900692571181028802756224642083702714334593239915999516263054637884613776923553563677344360317673039871073920510908532717665816205442631080263972561535897266569197291290549041296868235940734397488943670801583661450760571821376692669555233542024678993685105958121847927610182927875337021506338465044788127626245284250529734628721030129611063803534601479531391208400342763458500662947594269015687394526866373703679921822149106419477522280243218360639421834829361386104704205125722569021239719809143520126758531767017046769071160855298719425194146425408093900485023338318335997982926742183020698385466213390581132138002015003786566679582637873520899285780481708311893346278373751259227375888974827663519846791316665763840128209415296616189157555431912497877001336374490489379499037022466627573758787419739834813325410562601272684002703551412864641068128653714166341414001425933777484990276402966772444515625077452116774513627264759098569868736005535220237249518107346037451442888972315741448298533319192513530466932140487357422119501978258053570170341057338777989725589128207491651662036046125555677657368720333238119704099129053737249197845503865854565236808383707260833467621392480549577769825152904335416852206095009435122519918043731210576712800727305271470221703101504700742223474722467692945725998996160521236394320380013487531183443542735433269253007500466219691017662396608005629107841370614989142426898172607503820200924843752543531386509426677447184071417367530386970382071473812110674363372838138829285155814682037361550161959736719116919423062596308645839587369046799024098346949959830176383860631650452338546275979751324738904770846249828401378306183261284316344222088844293249027654728173930306229751708546938974647779596573507528942457844461127266331038590477967337803140553680701109341066073955615976248795467616559992471383205442535374694636318955810405358676650604370248119412247782340067511569360671522262680814707003392623405663673955486910402806277861991127524178310870437794233055954515189476705430793559004574606936849172791712893063997734559380659332912655198415153488330474274803333067416591569631080705680934650620971307839502745861386554318441733642726913737411713382702025076044992845123705046904304323313468585006128280502794646713531193520938852467413295735768727777251192034175178830166932072566781053027666212402360028764142308334475798778508199292636207111639789517502002016134586477783388194122356653253793312265055542627233630197290929172392774344511506861586994798186522489622934927173548650686884215114145691249792248223526427350618658613279514540535050122836254428109088207039852015202535428057752932641572448277326862804114667634943263854294389527804974920470179757380710667472759886552205324618098394967648816597026677879010677914508956894240883492614333918494656859998331040962270270623574835577958575494076772663004966675846820316880012502904550928485669905425481060054944499323308535332387150606198704375158600750509094567336333305667733031778292100907156852956037211055554209384200458786762203387015919008481165320883425432208398392572610728744016763668107544891917206878640689342967832271991390432630335153327856313928725681912860481894116078630346138629155735307863387660451136006377982032805331467258843720019884129355934244143744580601190361931745420836814162732569038546851708864547743360026656919059850110988449926513829408003921626956623169572689462859168591646185528908179119234143328718287920516226696462741202779170756293427513210670946983458145356931792515705329672326861345678711260718807079422949592794709268368242872855005003604249785532664402244548918023418065756657994246794537109679234949202917884328784276407242869229712232175504798549792361544408679158522334420262524950960092286092966890630741691042654579409866752715810928070192413822836423518618462365745594426861406464590200253495473536940767916600493808636337582421288861364538563220229797024613123490222782245344674089915183497015375501086910317811942660750758201373342931465553672811443123448463376472603729848404619265199030034587301795020228355905314474687589661594935325776354424439722833007472156151857980273731321388922809929068183629046076253976815704839586821622321800529252891529900683561176863301717971741890329048593915503720890445876055595156620451066385263239433271025957856446301590812582046898793068274344983674055159299505196669385676685801396906020645666349499171366576218056562029310806541157252634945456097252029069842983996909250455415989067163559797510064199426295229885632608013388397577754671085528681702098022644564082498868374878281343147289832321179181081063987572927840466806946361481215028408654222781220217005834176100975961382136699430353626983116984900056498384059884458096878262680114796298191673736333176950324590960918386336440789593681494102562015585606641347905164467464563494449890115875432324205688064436522236163675677440327081661628044457996275913482515817731467005770001962929812817630549426615830018372259728542112821460920399143358825011017181025106848020526768915958417153181783843761604871957110616586289297469340710723521598213654338092229508274252685764033134667864568863308683260138569896844198635487585318037302568876125866569910564756660225892750300680850897983787827454127960856118649013225921741570777472699396212152135380092887948769088266166006207071471951759761369046256943177254428263780384479924571385549494724863506445199322966395427751521030179412066183815595015121679468586195243180481943047144001978300029465339772273895788051619270179154227323530408076556377569435370690270130392198275610138744451393432547779777642599265218442928936919152005107959864074983752931223493720617755726933338933686420752572715526417381684989045046656204099582742486106183306915067990295746495922855275381851161921011370086342874066360816513396985063732444441280362690669541824216440560246896078825989122862079653838166878097448770579791171999406961053660969333109361761732425707052822854725071857295966862891112886960191983011681430359685897381348693935473108249964100606494068347324397498305550403785383910806462983455294770970013655562311466621977080149797957502943633984240707767490446773995161150599565856770384653726785132463365214791611061160412979874631261598724983392141518981040701327072886718677413395039047629264236537123908736062972946432986789768869218246604734330023177436586104870846106991992275589037114885246445975894114088859090159259353904901964468012299399716182604962721586025241740062631543908911566904991594467010624304058117636152726935315186826558450033692535339087593123823822696599149885841738056141730360397397385881959253166864132626735406387643762992391682197218450198810080066697942640700685104657154064056859199899120740791705237475328357940583077242109005293691049895407930605917341013037117237307457540893309192664191388902971842989533151221797831155068714322423400217351425592761043145611225954483364148424838348109740633637033146786232776929847082950132644174894094852634869792470756729520421733111178712094977988978363054793820007918069842001448922480913671021342191927300505343732480416730178260331353635497068265686856403047822023452547861550982827937854288623423437317928596602655315275401463426354626851749643349172875220376954928938130335392961539545167044023617515810937399812835865428414761526724106737162060242727569812230868793927016277355610313411467291531490367820772876318973241521989892393042635045184632647287675721504149404334978815516088514928213989780943050349303652051613404472647552671602608629877854669765107501390149267459722658379176876401184684747693077430837654257728247789441609011584158713786961911616490429720780158214984211694613578355003415373055761151223944663625331593908453313825479074731207519109691741713167649034799845709074451456983133876368572917645921378538085166955550487477534838712783156804142426187391797491516550562645043970377835695422230788250907214418888102140752726816585049600636547924946962986574086129272722709368850147812643519667070981136795109558629291344047478743929984427375225909763545146056302073533891438614070909405194367784655737339140597394092922027909247211051913596032624463258662190283360398116269252465803144273652747755535094342340886073310330042516332418171783583033458110400203239423481893411258604138567647625812421427291825679422406653714712206142532940797306861576513092852938969984591778821840438261782258588499324234761814735862270162100346351611417143135362976046779269939659116548492198389846000483543770617467984250307157357126210160750518087099536030828693254673563324836287119423936087542260344461182926214497616562033191991756799267897013744949067054091631306409139707552516830299429535959132463767296916469284897329239503233002421436993707172970370370972570768239594601672701614465764653504002831340367776464519584352579905769193513383251656934924240490936355577479155029971951353130187575299579038308865247462111222955550419364911314234631929895260496370389569166493598734096798404840454438235821998453198278669573894037929723448696397569967954375633941342479502740377904976675562461383825847354675635024859588774441121767715378018492945101651260526316547718714920774214052100149637389783087504295571749485719644946792735193336868676317515540785303114304998686175934116907034317837971638098008954949410142304777080204892942911482905522174849072623484456854500068966678752415837659189579436649719941794918052245233229186100924464106516142037814840865674640470978403469984159740216784919721696971811630335603027073721581396629656609724553647420991044537466105824008081572967061806817188142098099309859642320607321863047264271593488174688634880565997281221002063139217143097568678124722974423401523392621717675124314746307930355745643141606452598599486519376976596072575990392359086047620717773495834490675635866927913948163916516620922915094199474873190475745765768754036682510883458769435036988350396056066217984463602054372814008391626077094173796023864929192881079045195756630967722340499973038130260734859543067147074161019024040686837346074080288931175901365556703131365345499634306435403811821830105596617170894846508204320212954695242692035957180453258999879689553624597800658324438466765770448099381293001025650377738609105094979164150345358212797400794045616771934768406999057470660554640700982800061917640651655880971450872615726409609253876791293953098619798936779679889814961928846812093853423026300992996106520875086321768195693439396996980625940764568823054543297602357312116465552131897296016598210414111912797689626026975176230610170120154843440578259634139584498777264555847554868344405395606300767654552626480076847566442021197119147041744886334653266474667652600502866823914655850789876303319229314361573381595307753878085142072008808347049575231589638621302758434723742986682484177882066131939424542249261070835204019689777646290657869899345123758453568482539069487716458727016211131427130782430922625869342000465062109901325860698081695947135667279774666746186843963384571847736189464499949323513714728507572209003053240696806644246620879734881941642611335488255398066597439931707581638227588657106944746205074766558244730372552067513190881192088565328123685144580489988896991941778594078820061759115842500387273910917946035625023457294745254343709254383786387988413114840999294184588214610743473018918302678655052652545133534081928755907431240738547964985632598109949522120813636873740029856582035615673225354506129291121671200030493135591934466102602653774032978995273063319340754242224695209170318224795607611515684980881467747293279587358685447885303385270539805121683268223134376833841663356314738199860150561236575379327360676452196613197576082147116058468481009433646391871304831461771954860500341250848748744742506243036570042401259839507661288594071100329713252282649956511037565763279447128691638013371473097489732095821075776452454762139799924112026596891658015630934300025364695650483005983752075451801552605638622676955036765884587560064578652874928383748398737453819198450742017975118620739675086991163554135737440526038120415131034170627038766963393851038594192536808995485202048552137829604836433605280885986498149621625705273546432240264065171086461420542946255553368561570463587883726374060738951837406693056797243154510168975204128720381851308166505810187768844262431166443219910448416629945016797895460336444139283737794319926709407666745394719293108753311192807580009312002330144093316375483459330936029697234710625115484430497586201116784347328596892747343808660386796668131108809488220112191007903800524575652034944168452207721909955465198585034352983994108149643152348915832650298585511140585796272079488949002459907331845853980055835204482470452042897185686608559720150846256912395999859870207588400755621037987655370117691594093750797191634531980361371561651261409239128224589063819010730798671357360311865960402268650459743574955044151411960945194980551406980924115218920238727086125794852978523402935387382605103501732305325431278303173419850066888509201948429794839657881854957094372254169623712625077695300586259345922251274769277608168387796625542509951501324999548175885106052632391471461894631116286784625458310735771338524590509889472036549787488072225572283589077218570971781401192721371296876010630687182483562849433977384346694363189273941920812389248100705914265666444065455915156362200190215099834922893139764680778770813619733079519457843726031796483843249952580963693381238455133512333294628186078424926789074000768610986427829158596171550289450579467288983229389237785500135936398663749666900364418404991892447530270402206534942652999056611458024639779661422245235894150832958638966852837086858771106408090959297356145970231415031421102710830569343287158031733021294347978724422899434116910915237495433502632510621141279140138166766199223574792845637858532564087649831177112045709783543350978238452271350221965356306479193739816466987552719338103492505921946494535702680460904969385289746979102230313232782572633945889318836493108863749951793508690030791166791305521925422811876310990776874979980006863441455577799044914339032936899511436474715580178602419129363902173459773171562085545574800871729071594160548104710023918739254303001029848373570218456316576129074054627373314153316411310555353891622261216822763326525973288063528910397541595199194448944073992901862819384656684778514090849686167736790910856914753855355862482981461196537044785610898680062380271351037200472653545259503818045914323475707279462444368277121971068306816166359835719086215787760302135499918203240617396042442037769336256286676972809399079310648158051083063405190681979837788023825903585221973233711661740952298962656397478542211767403107844936774045935635927759423347633314140276234421675918375518122287816011072323103656590180450275696278936483852344175651110802463868694489563309053762905061751383350652227846995329013487488301845073717483679331557410995224255456260555074951132314205004951761182600298539998363998571236575978336698260339558558790416958601049190703840110766212438796714728047254313231092019757855316237254635693888866138524080279351886343908051649164640003798302618148721142335188554294024805953005777277263793912272202059781141177306860336678163417250788961561646449925788092798171558926161818252741214399896024348001469982517430967790274075689850680630034710691184523200599279018776592681225047270341971740692504022498372913247444190285501363536729102441721993828477501763077714830511499888090197353399706625079524519662343147724095891000808061704825955193989400264986183428732485872440359151725588637960621543539261760139004943308439976899732683279418494783607595671518526193007235210163229981097631913050096642633211137125096546055908969946490728753612389925637855094488635212792848044128973492269841386020944531316995355019090188721832723555041668398157994679568989511697401352095899038140158730404468957123418876146224907043226500204583621014050146587995298486588201661105118404415180789543472396683462275346759085729068561533254501776229978542958279085875180453932839719643259228623026810222811193715331189420544707072351667027174759732266803980034416779327682336879227327469851592360364351997909699449956480439807871800256419230121707436751507768562864227101961264855035451765665760175786368217131372803410428467113269353349240543415688482375283950576991702061147173415018508034217144263107170067373188759279316875814942250792927371786472181941092028583768846700258868109842561682513039113807280020094667106770633811705977605568687338893007484029696322037024148249662732597995257529456097412703109239072547751822313265432699364969075267166034708531589803425636073230807339669799767909029261584634976779263886528265501711296898375867398569684167345967875841982175940926083405542952511265313254387223189291510784233557083799083523825236970523506742271576633917657589935667440468975418728261407258869461095788712720442905648528025503592882422755007420633479090504978309864745880483039868381206868858204638582558534714028813431242214669407818105581363052716968990670424951798652596439418438959508764797828467800716395347988302698065777253836277385587261133988764089981352389621499250794175813618382529449207364211896738440560904838618394824513701853582331510396666868395735488773091478064358849020569199979439653244814666403072636490078172141803815329900678741343067079216420669163001885103019337253639229805910554586979696435996942159864112267292903152721252428029615685097656593434013728625699985271793392478923578083241412695536250767958960832562220605962034954751295553286942539715585705448313072508027262689882049289294575892674545941541800751468442555933293911820001160628667461114656507724980459930822828284284760374280501764188722490727096616032628045995444973304513351041901549443215557941260939016785204019342801579152816051630154873584784184486291504877585093663458981639190903675388381616371528110059866220744925137320728582654021434722495354575015357537816084251747050751845939861201136534078285930656930861566310110909539285049699107000123625802025490979469932759356662747514092941028904004801860359756072782520066052436203400834017347984984558597799007749138975278706781212955832014477498532265395835715925776901979003353636352352720092630414849341139461124926342664709787239124969003285647404167804063012663012530835043829922325015062858632062962724343567568842517653357713522644782430139326933684183131828081902951485098956049199244453879525646439162431852220718596352261891847049785139794696033490178009615615789286386800474653334889513918709798072079717092929435935650796451811075890259894041920307514916693423966869867524133960786851648459694739462824903603007719352033422139791025693632677637193069664196721659514567140807025819715659842769278306847972790296061646562063893487291107709598166850431734281014340302119378736328285580935127502591431615625744844220603513035590205157866542541402561255364034256974065113859491203735735882212725749640790190540958664012102071791384333206375755294009426686058863106033107313914514987695291805116247149697525558257505314127119175887195622797359626249912588953365074515227646719130195342444149674627426807896274342345944718567331448630426480691887222115210862614657878707286162232067068760888069349417458533340367138588872213345853218031915643307792915630056616721200163050188750591933314058064128531850544509852897964415534271217349181819049083663070545888077368830299457517089508262845908400735945551834637398049343232987563341438534515649035686685174110598621943842152594193000867676233591985307322701196501817198620588512289410188443361180676960520780133604295617958998717078636351305930539756826273356345625650566668548679784205902135522095081707722083184976582139062987445682819853175592873782200917240539963952174957346290962816114028599593406141406702416979048585205394355436697729017738136753201260914543057044813606588773156365170616982746539491622266635187113711375464342662324414811265555681104771560274413215854265672532086751904606033531476856288853077673212784892016372609379609875977117451296277663557037364946416386017920317792872296746535292718884370305672821966635496696138596323329514262413650807636499443444997800051525118688648759556229686340775357377140437483580105535709073167457537782496780371183763732300489963658455094791860057349026793109205754329243426677525995434014564622992621750302246768671957991679868452969417546707446130510891509075380795083525459085448512298763738817847451134255374076859082701894838516356928090365089785745503182191558010324565353121952248382960940474120024189220688206306023685948743434224906366165447475084873029829226353340926422230521280827600954453534525015478075733577148010289899978671686750555921563726498758920724442423498511385549758476657404599131407474582546396033541285435104182224336859826643687109689626237301998147364668701300030356429127302914512511242567984941906800762653583921597407401745626151650986696628497676752440785326534327489521745296041634640614378882917635108287328026145591658934967529092965380358691440933212020712527085072909539823352410126323379573240487246223006193245332970835323256423573642044691745335215943991068918249316186454392070383243940542961175440783266279017401258816563133465614996468242960715829236681420415017537444827967319770036176324104101590232740189432126689007891962904227663641965372983428512866839221037344754516605632406416035065759821537582979085645766909310130328168537786156666715226359436215450393821403250857784124900394485385294726809448465870244996767752494389137553277406705608991362614818114635454511026242833246752851360671542465863728790192176966830375235044425905622126249545803275300079713798204339799823139147819000562745806481008627825587604209099975307424104505931032354641018416419585061038250813859999698321338596873158235871696865265178878617168473849882493163190030070365522170037620094565179758077097665655837703909690843585475148260240019036243658940646670026876687120731378869620845483573956070333389623837558657543670380187630808646563817074537225509136521916572760204472822925400217154188334286484030173871859271835239856681253932873569186524156395524451681575073644525326941659281086416800591622654066650460320644265367600518015301250405311707774631655307069852499283713253063237416373943866637199852174854042364974989160658732920539184787837332996749602120946673590697551504786120593224425242992712211941603780125266692889833288888237117832748470856984097128455445043143094658821546466295647158625387805383952416052802995242879981069808597763723529195507344265936756274198183598795580327643607457946827557977979782255688436452358778368280233964425427084244695802513537836224201855500989175765903062857384302097902712974145652394425042494374476838368225352570680151990645438582591157653338521531304232637383928289404667371080130463845238867360575977245141224466942140268281990417050920085480945305916501385305259818354916910791919983119981820698854884068543111977806980403775822973553112159893272930658116956254201209805563008566936599680398964586071438226512398347093984846825941686594786220736328797837714967369514492504810327557350785863805356434526633943409830499041885718723200257018473699089669237483365156857448222435473542220650871182065799728855669622576421974131147709272621136808202953873089865919727886761668118290206757590116220492978492434186988141304530323202121633493041646131265412420153802123422658919062368638585173491184895129743457772407326511924351199041630247258245333262588092656215947146541033555718618447078201865307814565169231961288793376237768442941710871745174899088333532252812256848711059877058799562350203714573847726018034029642761437901314208742694402765891156379916685387821296556653985771393327221975830124126302231918796568888497856223550385871002989126417444960216274471664204643070473079208704227156899727907684492043339406430849500998167691495330772043332909281378140020415239638776049399845670537366044452778895033037995140632788308322836902847065684363762327093499488987669111397071106979291236039858843312429801681424184759270298254077648890450575640246769223253009798836633289813819582185179540146785615718684679980200778223882990710444793531809248059839478714116135852615891780666441194609286159001410354059976084306802875782415235953059053954768475677084227967078396750082528385331809448782327575621674815925305453236994393835023811246544562678945051066011871442276393428101657446132425524302592737685094659000237096434759646322114619332459176347580741607507903159630865348653894814468536582490527182175978365554685708536087223771266232509661112223256657860728157928497027183955472572452150619565878307810200633356569330835325308685674524466500760010328012255428029700973401823823322067654447431195439283995622584087212036886052259516684148053535706129669286107187830385167026783560613091132853528043092883970607646245078430609287988734443757081427192388352137102000551540173959901427322822328362145832926036321135438062232707384439142540595046018930854109629086367825375191374924668008071876922888237347160792449966317104204377636055003229366540285784700618136977882619896509162327254707382646917517073730834206622764104182375804300992887304115424420811476548521393953024308112815644940867440220045013538950380725347258861733030649033377839089957898406286320307723983328260195822718400301515291592965971213496402639304606918514879613217105831897219124714235667319201150834792462124095894455357078172413328334845710099681323471696058349579484132090956121502853606394976807267678663681798601817924301553079001084341476012200399644231682953032115206831287945104529826156918537534627530636262881944720152289596809333172701303798543183602881881113875451561498085530233957439258860612302888889446781466393308375258451077750552383235303818098229536700007338192628027835817219723106116256147633227132373031137472472438179921357569276073471095725575779179455161072007544777945267485559180569396910743336615377319690928572782038379539264077302073692116452678894585148184438865966496536659418375555458064873354374286792460828300290496343519993118365845970673703851688816631917964451131990743310217850313092920243708956618816320760521582077324222364205738236463186431063283485888423295610884228439298002173031467755341699443569361353683274562630492603576847503363808203150216814379679287068599104161801116848441135360530863889483920470056647452756876397494187257379871866660043885270126287535774432355036635401879633524614943895407860462522320117418947467554645206845247764580891873042620566100117413459722405518583493240561625804224195226905884063728033513664769129059836863901990355185320288553080047387060958787690006833413623165921219952414393025684966748781018733541700205520512229743353003918734886824879962879833853779543245579220798906990536011451829391162376371039238386137916592170527317343995612740520842623703115705825860058507260031198681750406762432494796918172378511694827281149685449545718800938127440615500623626713631362887619985941104773421722262921651636928005314218117237767399003855805856355200270250263193327605918395157406010542415567758624994694904081683597369968630643848151332603297231358966596461451151736628339025074814268666288396338694368519001253065140328419830031135434978975772624480986271344760144966607198529175486882855933993394481394215068076470706020230540482798656788380776033049274906324736814123480248675055847118179875610495570143956663096190403557882412350607204885664817342598204202564429872316758014073209945635001243949820802623532173980128478199778219314827891185538952775113698341908809787842737780648820637752579013801238514280071249054041297419484758489053374909955370835287212441908396236973188928148508651439992238472240919185047817438745649686253746548715369076981814688548892502048654137277487044473544017356906690431215078667048098833455645348626452123350572542609834232729260902341840953701724315043527641483515910350350594001933856586151490753956326756497826464422786395267715761760291933751723048664730331957706123957043996694514802677215089106928478228901919191799199628071503733195910655938376736036243755531068029277772909086411036481770454462539965205253068361375300221431262378908521544470037761291039969120808735622278906947839179307721198673390527345377962753214364137970518540029530177642895015459872099195752478708477646968204562233793147556958985121110223399871848201685468600604283830597937508311203640074479001425569722831128995308015308772759266774533541001796597822829998361234167861659946724566987841977125149522014572881397222864779091382652590386575591135817303057319234519662400440667678071207233847236119093229570131837168985669493853628137096145081694653293299490984782175043929876750941981899655478255921912618665528531732408008391170341472459545822612003579481252601264992348701995098971448621544162883246405219346391702997685744331026093439301619474663195269062351706409744985930704671278335994151877290278332754701642732555286532208451718675249223899959877904180433231493061110045070408026338388751834485183794409582036688263304394986567344387616642275936456509241813671144633534654525851343909961726913036268616001652013356173938430189764361775375612339706126994090249817940995965849975277110542304842386250284448355583439539992525389190702343269562390582499543812314694516861703544276494598205763062693548394703720321267346919943008350740847547991393904905112577439046876405600632595545967853803762566737094183242366981555423885894305463983886068833080996013118439600873536554048643297638457984597169141604059086202474720339883458603812615322486746199819582790478536269028520922396028284708790017671844058965509794754247532432691032465392043863031499675257183679865102668528113640683965541707204219383171039897888585421391015256241052611618993169147078128233295709850058901146968562914475293488172570672633859922934212298854855860575463667179151427296554202104841215638310146170120414945436822063436866815442870995141036267998419972979503546174607632224248175403668682068008904855977409775924519079624025051155435281849280301777324140661345998980389632752537443213848682225173049047503628924701340444076814526387712416544925426832171449040108094049420197671613113289278100263867668793026725240153368837570911395944279739351209574484318421354758483486507846676809965681443108063330734441621860420805340836072570621450724683421193650631934278762442264968282674273300052203274615214823854505010187179962818279685342600645157372390739221596811260732427315880853243648482357374547612370148688070345341039305201578182878918034850900491919650011340648203769730416409078034889456478436600519407527060248843789621710501877525551152926977528143691557513490557424526598553669424307329342347230385430992446899841346294481116641832680754846702875463198639965060346141256154298570013953659439285294816666823891963184569924117732664282053016824110178026017730996455548476806199632912070795159828125976621872346601053274668974034029764363061499617288540993997181842077587248204632181376404322608917397845969544379802175332551215315945656922128806737854999279842320104585801565151963704177317535433354244625306971338697344093702975662225546244375270132003607542460562959554323916693200229442485246487648327581014385208932215386193039431375506027157665881763820968156327793880125197815211428099400679742419385557377527263662110478249038852853890687988865324834841768530783685595651464711939635656552704485449713149172380794668963778003932736385618130870404742555600225328475860735977679354202996743804856726419253659140399393080363487142099121451328305552140460490806212762267581494112155978420778884343265170916345600846370200470685244349129682559520748684580307784003294610271883008730374639242818044515649641848758500800857826239032856781953743137805811301277898800387468354050701493083390081933467186026877330059131953543188150889753709417094065523114134649733035619316719487471043833888533914392818213497011710901972143054969971150134086842456220182576849637440363011556456321198911126456103601709752113024130116753622517913265389289570900884563958452403612442439347055220451213417420073823472480611923546902043877793724572087364232567384117804339311773030638838556700703184472571392331108529662452814577782676536645664002723832009354389881754802823017908022626768585521926610739312635686031036360453611724274258535439766310138455484055547176683319458329643695424820045217942910381863896234740381737820466607740719452643012254420523922360210518644505515628923174114741758647446029761161159381424744392506457641436083937843845796531360197092483937932163205863273619953930468015732650911375816114905756231079143567858171575212535528044166530983715554551798002450048511043528533605190739060317665153571831999707930091703198223673962040666037588659428137840132267882989089395972544661089319599820793605023660502456040734999303002146204994201143196746408879862640324570621196928992799883531616923193027211715474448757278133508298022595252338100165454435966999724507446419137213650784429107542434006540333023255644371377330114956484208784677992333699641099009567202037498095351695246584624072553677930084305429822881454988716622559924658194738409842959737391607401396932971986866744137681063101671669204159969478137679898901213405830502394602160749257608726917547010970484367639395736817707379244480015790922891742859099432829806010869856079118805607808357814077863844457226335318159945760440275460954509235296775860331512995972094733072833312985704451333847400505179068044281391212601582185356449071369072794807092356213572468470478342760094158011513350815332779082410206094163726745488004716646014534027282312283514098416048481919641465919904452207722798653336507402541930744423774850480130695563782509067041221870662649933226966742880676661890208556566628696834325033385482765421777909819900920826112327465343039625358111852311597804972546553823238655140052476292319753816415835005372153167995231516250072375147566384546544711063960399662528498693039281442805157862254232592941344235485488594150839265515457977141633166983241356933109799042267682964658006544019819839671897828999629296087955172887437220085245844989138532947118006225073309286770838326361992245186920775958916603227123808910484799483870246906217995697278514105742355442036472696999069981923624728868969442608259856090735414902476952327981103936814453325308970400502106818343103183617947213574515602778494474672298996785804860562425884766639633145533506602588905697202983499083838798645278541022277825985832915496886769364326555686207898208090885570931963171401947328346941448527632042981463060895212814254975983378434548033623958020937015324972450168705691583571628590893831130106633312316623634352048187978429631620625403059940815832406303385441576450637872923349992530759651613315672619485501049024060254018272893271907478786162868544374913965185789634796278606809655587985042719039740938991869409329294948271140665378933578584907760065931474930257798285798304111474955870391307203990415131628558611207122760567765491369822324939345378814673582167573294062002298350053942659665961426758909327890668342056849834891928273422348499368436391253747642812517947473980908585751556561126986878459461598627804429216709689894980675188670704574939860770143796738319514423627977529486871218323829150398635394251025861318863285833567362083958559755638368560117277299051807263981466603465738616435699815875741376932907494022199611479421293608387791828905281132954850596664853780554910872857036950627182843292546397325395985083300099941608590631895509159894580117560016639478481793655693373197398042853382740976413725917497862804905788643670829258773354560152926091879877383896178556065651583151931431770854568563191193892923291577048239004642011890204500510220120672298860072152468656467318915152390932730633582276455572826707590969213828625841269189921350855387038827591516059757972690864393694533848771810736744971017255802236578019215869061430542991978002647929708189394071700235694013436222308253074002435755167155093909540190609369046698813469911515264226237235526125024026420962324284492783260296211848373025091614091365298810812707304950168304454195004211379869884879944774444353766371232918096788318751243785339942154178929446172475348784657899741763216697424444772423258198743818450859779656176632419670822688582187482902668425688345848660445360347291144686498427149947347390212197131507367182193249342017447575062245528002319664275268902113145333342019804812440561593054008980323276005965447834644643766758489363230511822229950493457832044971942220799663284459524461245991851677682058276806667563165014593504694134540911401820164087589158818168014481174266384665690758608661911326041379703939635869886043879700724542061795412192995667975423574264103510417978543364696521975261834691349989413321993176235204125467713030605098371317662350497485747773511474831332346211612077120947925981088379806419988731557335630628837518855346176983853270643452421002703364346601164905286030327712880812073317456466338477670982039229566449446487243292168256165645495421882098782573730864325999981607958512006594028492156837450697228109485257597169640823309916102272315007881739112361510645734817941807799666537795769310353461505578150801210224550593235065201417891415558483036662429622572650938244857866612205888845467862441916801456466807275422892793712589054906968909149991210439615211221949170127891118041741457275092099090965628407102835884372036237446538936010599248549189343422236859058455055490461976914277901058078510311491131868455908788201319477691281871468858842997771744510274095486566215187813946650464095244377525373477789166312014996388000803830159153718097164321731233652334986963921463129740048385500985194395806038806204002658918376038709084557237618221299585389579966075785223731688219629997078262454339865263721743821427982441603632827060827936337013773450204773049141905819666562905116161379969985205555266654228242060706678615545242521498835998312010411366470314149539086675676225476586605123150348032165362958739031492851665435919429832821344287260187989254281051358456706610679076980210149847931637472554675217936515812836724782553075365304583325667095298372293273473964426333593119760372224462702159406813834331997299383635301955508867559375385239083466011007275724988431631893632389851028060814125582857371019847787756711385406118406472133033305920183443069638202513824682738122655979579422165746683992651018807741862933937672127957583669244315130554340508669408584619873345643131027617421533198435467497667029651725336279976819600416169554615702744064543728447972967375169851767077190356100695820689368614526999442318660666524233644438457704583205521245551498622559368187279606224310291643236456818485758976615519197264219063920124186833226599674506660274821828600278909190991266108798069451820858164850261523621815760018796354658325408678988115913299246474269000413805020206586332906770926552928502618907866566352727193138548063590609072957878677269904444408360909675861979973750872235366105426703336378313436230610219471284126868504920892438342854663654372608198956620966836819166041073524745717901116981290183915456617495815703208860008133974969366243982928781308624018264898142631748704420762904370794334849257768605584291841145507333263158368751618347700869135047624573934391780221216450904106447059746498547785768501209437798139198910481871424766459088335971512047534917497153473979733628421337367410220681349631779686044488659708287795022590665587307730230980544042008566800082478736901761611675582118109032952634723995326879829803245011174422517517292364801044362019468756952569323036468776949656708880936115507513016735211702430178655204305769980777601238971166919144375618788672033561411752481425575812298391992938332174211412915023116746517614609946003575480236101959188816190618381570501758771761222797493247397107304563641803373671105344835923904932500544462424550765816156377036704687260670738669557779284732382221545231905657304603521567887654946398234451571396997657388600369194102043414871986156118103547401566464800918945006452545500001339927259731819194726930750773777407095721203485814872720648812109889330660792290091146967933580472947944527486973611659585859039593997979640445858813090464763218418137478026299777975426631377396130916608603741212152075249414133085169009430493052159974966505296103015668898996457031654869858570219705653325232511851281133665316750269713346473807914354730557240607550693958158916229697614901830823496004288390268883567616677567528666757106884973769825276460428315115239107887336422354974703614422207095824376539013243339499759451161866898788377357917937236745686915709807692382510838333829070637193821528515774381184945673078861619925139678876324894319066360839765496182962230076743834704658347108796411284138683358077378522088944258968810657370556518434639618752012802353038948224948654098572554038733874353769497883991114015352969772571669422004769175078654588362363911858931879826027079706551265669031871488154099206405578657163349304070405647298161537482630965754462428401505637991443083171163983306658039606508334648293505791387842572064135043822300869501930673666924016259826418587914655804072493596951779139575213925641858551419450955582089990080138752365656506019863857526817987270050862134779901893985013874225679234378304703025784524796855093625054742680395697011163192600918088895479873183962673487352144027525084086180786351774986590353223987906211874713371059631775515726056875934630380499132683750440424935102765203402743153383678842981510076491397422724727414080825518491145286434148324913056925700530552551922323453371292454977948512486748614797774935390038824111678283647827049073276736435743618066367066096709650433116045332460459498216033528633216688127422684725009485375811935291757620971961191537889984940158845391138447122610428081511283324700070184643320487176706491804664580360555233389812030262084499441644704902459044984153945631013805555824484307472423769119162450428209442495862806208098140071338230317698082548084625999012414497675028276169143856588911725267312384232569691258050843733768351273957405930092119850604565977904756724306410031628760528399607476451094120332370073024920051590049411284963579713219470405405781380211761128104631267780919806967270070210986724390135924577044816602410198043557313848840786986234612853634836141618283030290053374986410548831014566048300911215907025418566798398202638242943001260711156585820442586508751725372949752270015284812740406658240732178385642024756634722488322438382151998151986080397104971340784554257547955090919073527393947131981012548426653167106722846691204824540189298168122815195883827622696257431143709086076138211036776769102071154432080328436166321600296410865400597783595728840626495347929719738199562382882343456076314546490155063843877726162563674800656823601743097689034636211848655685616583929402057984416544979700957097656761672952250120514612529254129448146341103892284639352480964754116727593334490155384931309744951240845902125308685886316601520429152639932946800266727156199349625378790466038565554459946855125210707167560485495523596088877719028565903229740423141339159558740691844248016704376083520325359415657614344280463672695262235520491184805622387261077044505046132549907705240896393166464316777554787553506302518521028814744468655348727664063786523175974532268793622485160643612784607910600614565867417153676375145135043880014293777688251048382936161479404274401089918050735462605800831848659200004911854000521573017191839344773698172335794730205103537791270068433592563397105147130041747892380181688737467914858109710688465849832359508574448140051305353669485136530499276786033417025673517994501494010210291819358841111918103135077962753302978551972455827712508376106113796493646225366812514632343844168593215589462646791274407590302364796217876150963164247631346392967636024584834408479687368879686223052908736547194360531077788437177095820846881390304594721622827604663104129896770178699464259833189332316328143470965234991425889159535686155288095095105630402573788491769813632220403203971464389679327912970267837307343602081811490918418517242607612713034652468539091883004871810145849549430246946003237256332125023129938599779474385379145578738072670712620327048274430536782645048808723131142566299852437022653002879661199618004056269539251080988642952793777381352591016609099794682839266477672777473851951130343283618130939646700727403994951907533408006071602560820291845628651885364352904364507392010127179045371856272433196387950687804774551317578538979933286838733084104973498579755967495410736005116277685016098783593206426182068249676664221563872077339772739685616053390893224001220121662922049188117335235161302116260707415341018060405234960033054233063287326743439869820007965743950805536572701594598274115048123153513705591609482201619146158420815122404468674777964366422576164921229937319098312229446881376565543663140092434705416757147398883720605469634420924936940053106276932642244808773264681448101959205960468785179106180834249788395058877845759200364504995323729477638812442663758225018212652481416937737458537059323902206346125601646853718538280273278663588922656790202254024970004344664431918275493446700638758349183514280424942266160100266091762968425564684172748804240732135970239852930437133227491487225143559340064913283005710599523587089547851406216288658852179327943074003096361194068451262955088237599758093902974194797553487842283073333480761564259443216599896541187484133318888758813749631484202850743361524453911072693918696428210841233714512439113835361801666654667035728505303672317644811713586598539729716370097029781186227122912911878451444358573272042256611901099075377710635064562848216545394277960652536096030015910971761803276760627384767595745264413089380368323787667661525394109186479266615665913703695525631860469905554426231031749347792432369509976010046931404757468638955378735217874832643284225868412684228687554188121134009030521778534835316580268967951553693012839433396561538128724985895083602582705091471531649544173848837000231308131466993253047979879494376529624703711706910681202053265669105883813935153309572582467670062318538532070215728815606201859859924791756947083587415123493977682380973400678066573013549284319968151271359841030519942866132111673488409393533627184239642990672987340535106182403427917926267354203770074406301953346128710351625374087376773625213674582999628457094868170395836929992606621939394636685777264351238555302949317340001271110142574024017564576670747777435684685052309769980395830397043722290416781252771442931832721581672048139545886313963675306600745431460042739942324930111599544697188965584761392935009141693666450595899359836211464202860312275578399046706545515382068854591407547724514765602996931250387618519739785632772753699329603590480057931245187841385686132989742658344285853764152930392569182106734815221810910090025048392036691997642108338324874998727524273753375523064580221976700386617883554542055556745024893228101606687975887391723627128173421988980212236362969527558792413261519812398732469144031132547190067646752930119645967279358762013096855584375676776214506379885893789809826823693304193789421759649175476188670920725587575794448321450578304958915166973510571384399849118323533770484865188345159662089675606719939940706844421061913318540966177950756609887753422891973968384580755035222995605782767820860526088587060566878867306113400732338341378528967613914159256293751535691704604147371781117927703300035590936304152076856725671472711946244974670855968009611350919911884602476388195447643403316108003212102666251840429768124809332807704938745957964299820305679116759305429322776735676238016867810748392709499728792726225647354597254347687102005748964591885661925713845450956513480511430354151254190911156120394954558231536426480744268064531278017163018866995324804588475400168759173929832975953994973976618701062383379038700308032090515303264512070496856755777371691762915947994350690540528401441820211301611048101340919199515098252342710392658230644340704121601023975014817673872921149113395591916088423303973993883058987690895095964476844181955186324878719332347726622948650567945344990106174226211932290239473831876323190286349003996097716726874235605159218261748426961490774542827196849865628511566688974760610639680880733225955586983418958579295427960842559025948078596240607373892865774371726816152178015742015513442383495189260358965919745185631286640850050821245423940259285574937909314027016484726092806189742531737635892558636192324441291851591005535600767525370076885637872316425424834045097011969042123630712904054404280361242583290372866175852367508165992935414655039807551489412255909083945529046435840899374096282633814160824330924084785476640639677833569003166515830224220118779883549894393356193480620005768727844298847832523126686182709128814796882906081622623861960908948060573052655111253785860986825826702928493732024538628580735720667708194920546358471102427796358672032988505809431213973443553797188236675316614391882173821256722179456128445213918520290996938625348943809552019270240233645081822789482854704472324833409340041707145858161858917424983648829859648313714806870170555398601328399501095933715581316861544956554002006997692119958571238678192364358399663027338989834442578782135393065710302960049396235712482812376045801511995707106285159247363333327365229403431594994521229550119030447109085237930910491911631236646099762525013496211137914533697234035796328631676514858970227919149031845056303753106863811107534905367715301686121656304732843713130082267472294606092352560750899167983044677530662201619784373095263847237372379032856486212735927037721904909357541522594947853076209191786345675037195570696326921875950278368874562471365886594186052899559014001806212188738772711669491314355697677612816621127659826641904618850341457097877649903886555183211698025033439880170085642685567715953786435952840360502579163326209438525015328447259103832969228776274412238044117195361018350051905002410504986895615473649637882910959517778225992506849629861383418730312589674289441068380718551369384889101803010682285302300127976235418732512072992840741063012772194003139022473178310255860166090125517499659129701582860880030968004168581527424032831151886386964691481077335390539054969625484006850273477324932582964162142849550252864307310329972114571110647284963778610850089056433749529451286680205283227451282010840933358371571586470689382962066905908154886560609073842765445556771978833442054364075817117836530501365530814561193423387973582598827436396713191981836957246543368427892302527119478230764184990863050812061236285744692400637643619578287384044472211256769258606865770556655101576161273482677561742932745458005558786417998502867750832291591488595310781578468955246199173303301014883051218966920147448608059938861446553761410658736478990247700973238612003821599635236088754317865949066784198206181391705757578568316341812020730514696552728931316985555137930239750529346744219617679875012930180023596933701934964613226991232585070894970391264999062805218266016361803626480414813666606045316595750007079458501167993969457162400146554731620195857129120220999860554310038191581775749395092598541121739218101405935500131926324156677516180749003203413304457995993024304352865709669472513618346041196351824977258281007157818022061586208134072327645559748710889208214802467148624943931812892541427989932920828819973622745867676449329720678459133663971259508766127933946139837471454171048269880858266124108579242282015602206356886676862304591820939637422755967810690708892459666288236906752312779380488200815417973026512122986885148939027852223497367968710792138841328147462781199757103302860961283840819384562033716218060389061148289111810149124431651342381588403823742401915055729015281364916642542497919122140858593507073915915893859423167873808787540208442986310830580424803372880502529395634591276802411872153902310296905080862547719577529686654523507621007067247431447567437866773554092449568243156211788364935469047078441770655672381853019552490549661879270274552914485284448856698682252461808481496003642466739163458357719484813167091561764287524042872716327432382557674890007658807176394835196884604387110821271102203983949600604085099875367597431893994403717894711365920475128531315937780008755717582392501347613024320054860197575518176184267384017676260699562453950060323564747902667460286330784661643812459999470957465170124782007306487437077718961434546320709811464811552445887203578229355689850666798548704174110329496849082604852775248805977062364561101548790667852369138130718259789746962095624485036433626959547363373400239775504688561339369714347749207433215478463493926620092598340632896543320691806370044927069297299686131946625243152930418015883517173321213680682512485868530574172538274818237591902960057895905615603129960752765723036655239382834105155769057334951709097466604587867216754996043465480399047196756339138560304830107132705808801700423268897847415669135486634641863746551699237067251307419852418583738653387920328563039957983017695193899717466554916045098285486918420971009314679021079828715337009721613701057405062564625443363539213775923935872847835866734663882209143380753358725539586857367684690506203068415776611949444851736587244134720191756356683480141563822902252433325218944373360168147613731809156635284170054310326424049635487088634838920852032109001643296524411184141116762829109514179569571990414838919307265334019283178038829512756638592319933341484102038496063166948899004375196140322967314050182782510076456905179198033496623142873976281771087197715927815593461332650145095695996862983458362581329356103588459118302724890903880453104634225110779783202671105566563619170651894518123886045766445636109901165527808461822585248875436840301492248443622585853205935230251591433599701751108473187051411356227377239770825355048651297237870473678970548349649301847484375118739077074362465818658979194807164812069970270063002958630553099155815423216187297710026464685515003469475824236724777599528730000812742241323494326171694232201479635400913619268814829799174146049111014137686597745220702009098091850282919016703226698661198237325024018058824668011760325009923076392148035651390130203047204903166269746998966740319942390019097178197740993997657834175911811978522962475042797366131476377792380961785698459970277149526645570703940220185641670244433470824301097631158068653772812975005509054327477832586231373451614469426789954752403897296581468936053722686003921728309240738752192479020786819643289110866878520919793871939368554793556439047899262697522794146008478300035083619996704640088651718388250322733899369515028402616026638291921683536971860042168906889148675622141204709335497785142464289268172439536351709139950558346418260265017207248203527201157435363949930480187327366167298847331000458877378631835985671110740121863739056354589051551363022411039150188212564105603671246325866566074275653454552317126242087787409487924338303305241682641683744635143676268743165185761831620920100815661563886927915212409558244518838562380372558168494647098314333757371314764307973317066867156541047906204013798595383187877716507123783099906717254803061211231064018386231614853330720705321627345231446676680629650727244455717497772328075272181854141004487120863786889945011951752545245154214791262503802494273894659643937520411748072859933299377985747671313460331435577329692295990869355271088215678362745542717985521605760790413807312628350198792808568564043640018628156977609218363162943299288433273612673621338806146898681570932254171077602040397334383180546224229612930896163451320142106314872750472685933120809635230511480920587797962445268881653374739247895178583221841619351029814756100506383376030102108038551701217339663996034511634618583115644070292402312667247729760115326687316443613743428485118921412030535553239583745187306509360633535081621290313719330336812521752640382431255391196868070651133930741552891194795114021914091092527923712207614056629633986326193919064469736391549724756090807613433447909217332417686134281375069463140374867387943771932724094493497261126688151708810608119616126591530741380812584394090399152760409182432522030992001276271646875193710089865640250207987702183517057883944689228681416803724228396544705878791177487966699433581698432587513106959274247276318866173521907273785620390981802658780484662048742298824757040127381090621960541338630540059266263936846799617040563096914959687630130482939317934563498211116429398494763596257004373160893425605410851150438262401402802164336427731406580694751196365384208672145232297331887736796282044735520399809769614117825416701451951338786234851930997258762773369899688906746732994451014721005983084935371898152371224541847122370454515268421819496266839522687738552114856487799700143115828104416607877973203499076037328417723122800015120071194940067682370169792021803817448600256184755818433501740360886250799614460475977707205934219575753403633918320165204068535861864406784805056889323554737732168502005444668526873683271020791853091707176537161450037493340294516415514137641155553258489203004324807227940187827804830517866181723977441496409623180969196928485142059898731081101702352085258203797030119604520170171773277567981552902387809154956393346888620130331230730445029240027741081924101880095093325310543743075427548750479427330964785586007645721555237403958081972962234291507705074468514017484708573655550498461274133847755206563782160919473833729613234501017735811629404125139359506685577885454690467487085924874913159236575951321144981915023114283762604285566885128688184916567017597899143873775906251346134576859662259197426902724896534278026283267488743644282940417373591990112127081819396941963293112902894795999612097569337860828193563590906416980045875550636526231415632314508237531468702035414958042214857103350722072681563993025101196517284744059314173495606400589165367135707907891937654949298398783123743363964729733686129306404265854570576051827592302621635028333169476353998717715520375431128947336858225887802676758411425796759555204712681815954278080716932979146205068720940194819430983335267270210493103211389760434201180026476871683288910418226529093632243215824710489740900877714164821884110290330703355019616454268809658328027825682977281645232022569119263254499524179369395701307911156208095613717525713820751386715559424252983522880013545250395525766130206721631154719096141660243743039590398447751763757807659710883598167218891159581864130110665730324258246631071605484131250213753288885006858938881850609543797993210912032059189153074296607739970754146217121941185364265393257369438490917531792564249606549328257627132057103200881701469975621620926046004583721826540187309282605035043920135251944718968804479975315829266624545916542699560264250747364124541989643610383076656105344445290298928958602463503875164892060985204688213381633736549540566836551895528336838766636992547349015255039343268625245652375939195931535990025202148283992366487526857325530573821035186136564829020522861177230929444300342565738098586265193884374118697189003448080497277190368250217100056039306448274601286178797454582404939509929740753633176117378202113297806454211155235576116938305136047413152823762860977913386646238081383331586323158069559020429226946717412647570370030685671228880091158156173046138701757567096551188591762421435015483541412709636161460259346826212257432675107039142059850424547631448438351976701901683468759398671012323711934258069202917233514730152242295873002529412779257945858489849944643899991093030298430422376614366269518077880047421001844653700825818925731684734541382093201119266109669460273452328318149425661082844914641460580483233616923276968671726679123986233961475160212313663865539191569270545628759017344614185789229470244729217232200056105137127686419429064768912915325276473319804421563359938859040639614297011449019667582618858825146890385325341623944867607911711615969958323996916199075392733672900180426894889705200441987657222603636851899186110814842281030125583226259750878416866687821966358376251688722446822920258948216570424810866402591163748303604538178979319987270833677474424325137370826115024264950244799497025470399307957568775650914932663491052121158049462361559137681918153061331311230369175968923770232563664369882594778517133576670694483380396465720028166300566274267962612856242008782472852041500424903775237107592081426457696276131677041894978909666744070107727977251679089231478139751343744225329261683027301421899738983554457290003590597245989970847291899825477936092051150730962823623878415986497829467105760183579842798908015738631914959390781791579723051845637066701359139723566396423265773945296604493896844232470161906557176475306735709502164204615824494159681107301440609452900523333332018155279675350739928554613559734555636030614185143295254483702013619898505812755183129444795456683521991070695371734158317991516064633328520590808825280393436451892849259024008251640994011654054454357794065010224170343908191247517265377555545895953702358561686543093184397567537866920627276459393333842293858157630003864386189364577720209555692915573338625408302734779507632441548235887206591623093436100251734659672918544750664059241515575948285607156587603573212788194522537315507683102289957124342409871204812017942005088007864165651497258516260993882768548613020196194407964411224920405539483636349841921917256721318378785243307577555004669229940422376555717609995849682348565903456657577191557385219161028753234336024650629329979234035719353322664380788299971829261526062292535802149121589411116382180009669275518170394560500800616770029129249030948642447709589297304278007389651857720132485947399947765837180652314115536620970412106970290244659019495040255276986156583190724008353945572312569597957280482783766348966758158489606693898197120534395099251326911878689243700797598041344325322317663237587193492822563615782713822227922139486226590542694043402854240328439683305900672394176078135383193491864827982224196220143118597490817646534462210286522178447940491543589391615191234632962426221896879504438390906903853987912087229864068617032150112812085681963264078299835321402993418607833289822987861059859552001135882007881114821024244516265539457826023626773277937244261593237752849483450177543574022597482449101483342504367315196512028679044540228339345793490080808266262033932325308761849654992666793369324196866873498579646717405414488716666484545019511433097248748260922386933293408894809168971303832168392556411070507699832141872720522713073921102599671131341933716240600835976459706969503738743515487970557673078781130796512088597902926944442472678246524467534639006153188116624907281103550363323051525935509092939329557934644465231451688988937703227886198995373891389360390687097401536604332537050067527392975437613944588316259913859750614475121628379705468914315549778564561924317518707998052625229065153205559809983484152324563666468944891891860579139439598491808203090542950394724911736322334403659074813111983759512220839102982394789816866113583053210166363452157898096396547661135157270801871403270295891535986529470570716784775760363633871592071040353427682649815591599847800663489497942151584804802986760295590204430065538523193407118234465136760130408797538388932573260900970586048061189172474428864963197737867103560603165347869199858688692388715553333433773695206174633528773900422798041020929042446669077506747774047438160106377020249392301722824303962833536778293427125427260377967856239478426896440775857914525679570051648514205958592351737326727533923410733486974068690704117356334021788302218883202145124212501865659078077270928856199949265214331072399445004988562660368855889127988860957346768969181067865424057402567142810501706162928073003243147195432049939635364318964587333628211951198949171134893228403248636665485204643529054120958486524904846596047543868565269791097473036316339198355992520730552347630545839900909579158961844945100620675039305238494593107051323749373588538669184410442285981527429362920951798712134936225669990136522211191813342405529794741836803897371451966617629539328708715476577618803496502240871582388116121431702485857150121085597353977319937131371630702547789513380651230367702189155554819619431442882849477566392142445404799494527169262945454549219143041092114232179075813724145653300077235824053457480402049090607567710780582099831669764303771184307766327451951634467130618442319571602395686789735949448675106708528334542860875124061755298085921899591751877116082129772974300538246438580002987448551010593455345333773586318693391933475879098850419692447386749579579805644257976299995377475507889073366850649837528862574398202279932228958431415049389840440682768092742062445158298452542677409437745388563349003798780026285794678185341356889197768013351122242561784966677456280091308574048705359490314996217417835414761086280790020756132526943331189969981149192035897849211926767062781774101193788064676188098206502307543058263402975577333992801527822774508569233494051593384450152800747986811765694386843654399092977681743350685308502469305296913437553975510782385824334441440512284782379931895862779328062449997810742115651928021610135512899741446600461630159589813349095603564805303591536692938895993603563763616785200999188802332490328414730294685096507146580445209065207166257794745893940058572851016271063835187705873247804975768387367701449491623637577614453160912869257003350433834402456921000364347791700158643738013288735589975570437998408093004824037077104767357629411558381517902451868545759233846518781439921122662009753450299808967161486540800820382617593580251359734957711245392380028505506336273951919067168028119569932372718209803358620064858496865020799585974754696365885898069438627622641198796773081683046731236259905229609856191052484347320591557382378430832805390686480679401605446449360019211095312175007336556010433732421628843266488252954757225222876190839244122178579470539800981774493012270348768616142063337068506907953358104336139209618104481835227148838592518158478458414728512914049737279153062693340040092674535038908487816480114867801591837703112880796844565965030861769961190592477226774111195832718932087912196145748228237367582531352859833041191440924501704127187462977189506942520261847146842194370235418708369810181436518057150909674207762850693810301938995603259015901232554428452400964580172005668200290868228416803487857467180246433216873770007345554801453800792853199335366701930507173491738283471516283224568001606861175092206974728088154587347120167834878661087243013489911823257624145254122450219879185456074519496765262633356233607354822857433227852751146404339953262069871206619189433118572370191873436279396307940724718247227346779132494220981395034637059108998089503199761325255776919981329297091512900960784557345963048142662991494554419971002605556346119872980586113436357286351437613237406577397090722891031117393538903234878523212893167764765462393922969520769460731975536866558523607778243837085378121407825362725333191747763753216564262210550874889075376584411726715600504366596002390178290662550949257207372141247313607749863508792053897480961133000868379773480592578975874740484931492292639100659294406515738030948522454580999551348077923335106528734039171561530969800656569872115208777597005714296193535559592544792152184299222837661330993469969838070167027726050387205980224957009589461631129746794603918809283225513341961685420448721960651386328164199520257860435704636164239327543725160428859541745771466549359483760027954921490650604677370888163430688835379639713010900059986451428251832233686847902164313491442809430423222804900202083725534956274443905623475423760642920821429904580678017597516276680819254835814568372321976491571821629072368525858678781328584577604448710899761931546641201431556903762575922060925066965915432637684842083855061274188616434295587677200696012507446958303268983974190939202885980056483601179518984201285935852562102647146340856772447562252703983326846154369649784517333390989643125415198722005688142172774250441225287630218392114476280364554209611794505107069647486771522826718062691172620624417812515710724844606318993678075094213721169323669921159759008991966851597062782054363448006397259290898147056852986079309629167725697063131175540177001778583361693418713951797036376207893211637866919583879334665384539922314249072188671878772385330592220609497651757090561804345557512995369548162976330843685106453446548724216993351462183933018829812746827033778643275367244404859311420550521531582171685003553823152738225521004425707182023373804280356628144267626899779412198715651489412301989639758714626261444540990099882899913760021271555944788988319755726207613969650912555045962987720635978395956844320739564618614265624513914569901595467262224468194247439872600973097982826766515389284951147568630823130394317219923399954909968024276309113465569722943839560854882364995489189567202184719163688502269470547600025278186501729088699561598095798264150191996577455750759898575407680236587995919197721937758882068966105134160531183709603846939825104924617648606976962784587108408969320160843810178223964638502412192796250182982388549905503059224652010870851857893231686243970902944011731242515311270589628268414931892065393600589206116698558435653799711935112252339515011270510868776912903118855307531483579576654687981110299542749698962009714601684976061035811850180514599504257764202568294725452757687130748436060643523188014088293191895486479162390130323974245136422771614053690225018321378008274297268856018846844524803920774100496779669038899007690664211813665771940527444068397724343137617425707702920187823339386757501532108013229978368537774651435456021037590968403601330018517377181935087338366383912635779659671311995833351354149958844135843484751828123072227353928535776737188751307048147538524296612403701214272176128170312865855280607944884789399264174621083768570468161026936141286003392542395344950772212635320154243798533861196951341185971035720129306408491310570403370645359290778875138115127931804562277452750235652848025167865275607344836116241045919485598039424279647211111268353403988739074620760053302769351297355124758291397490238926509687250896960904152976941777476211882254715824663749858323849276203476514994992964597057670253820638598394163172738651649716265503901122797404271862993949425208478978957681364799841049879145128407577645475316744311330946589747726957705140714734617936680408376201550642663878860276027180827703035562050947833742639818682278398496642165659566445107037715175814574462770925870968459123122981654806199438724511978654180082763628668453419085628995184616170319662855937535165257482447101908699922775261952815468642331607603547647304382995691770014219288926318726603137164570132538679520528709319188796320031370561556617108376618861043868233872013493929815498323312464538798546365463506359457927830848214501618307207320633429782361572661805320167240002909624512405344486686432998405436269338174939018966312829009050829301662434699299245910052280574510960034487047411060586293298846160175758618291557107765851834657040012098159761455457473305049665646029853712090937578035831484842603554170556194587135056115503348350712765695728085752242558714710093023235992454651086219811987976270512898563242379189902231789518378625638839152588919385067574154221237550136142498108845332388976471273491608798372033661036164173954907491947872209125288639228083458567882127450462139852210333862231904406647419990655527970190536917504103306693419995667616494014475444367957730899050093196246506623776926553516375010382272274717126609265577778455444624974632364246956873833200525698917580121250792334706836407898800969180087041427872871956191538596463525290636420526954904834471747690448611002142888507673054132775832083278792222404837181025678278758219892607907991233224109340434429954854709832943312081023521798616664457265964030640754707411333447460991458765956126353191625110793525786062615424760998505191346963401741968455166129591200027583962227273703454851215208884527401902222699115597575355170417028603462119652247104949185285494575059229861870521799795939518328319060133671961539342550711018094422401034801741174009416526290450416145661549902485220420399843231881005131335623401221318625146031777406137348782905996195484018476272733575865970803383216280399872907087627450273710059818719932941779288509729193665339291408069020075686989887796214891923119852925512702884737041798168880473925499050439312547935879054795382150843588590881496732679382750253733565692898967917182714325277192914569068565970403943823816635630947492116806858446813174030892302955445239969546493101898214405738848099290863427129615369043165024352335676453922676848268746957713075081484237668896588427716559513370040972062883840579261390384399309595631959946558038322975439231910389533127483331236892063085127319445196061886732257707633185251833687010972787390109270318957261426585455025801252116657972416600689239582568513865029702620665154270111365725952808346360761649443988815290997565266078185261371418197078107847889432752638466038155555658962868565139127230212250588210610545186298333019065182964433254983411931097852495665090760998754870645585544717179814432192794485397651530143502453866304888861484745755423879235958788999920032120253832142246548931786114467032378823742520745617950634974517700060326647801053380413942417369160021907039322581593559571267661787348173918619012300555144677035404848682204783415728311943003747875501953515951681524120934674970360623656476031629948012309366663395754214801928909023847807350116012789756350478093630726745716214322744288981258790756539805357825964106990774323753199063345842146159535253425706713204723005967554749954342128327249744718750744811546921647702403190729055358029406501604165788778324337664552487510903287050861595869026131018892772977242905149135198827907472156434616466204732002458308970614613485167053427350965267538159237985604644805908400014957340383752493572528120018291760366171256654317522172315792579547370337971893941810662375836782923359705529173409825456661904373269351579347765840986880763933114397548690331929916690977529171495071410738114662906271085040488702752153256477275312578927979103721360589215073466673775051541781794754003919517882192006698386745061777732688479363259429496397073444889033384495314296253539532625679589710640875670633193400195246705788914649407274291979739605844218808368255132354130736491983556779964684393587443538335990063653896817686058194772215986140180337086589680811540301477596525252045408636428370248952294771799958219178010626672248849516891090930996981476708640124900232019966019676912612438959865653357137052715583058604449042045006231161570506529328261530171464417863625841740762481256670706027637236138077483092701429887626136394640931240072808612553465296290730822193714288022449952734922606730034370269997082557000288903672759357831468906182785529134089407394429912891798321741017740765533396903478068489428391274583375177836836496336567494369315633881208146166703237195268947581661510401985909626987584803983906903206602017138119075944975059958265083147011313608122635452791109792784408801802930126724297177979461030938665847298965539975833237049079889836578272631202295907228264403701832742980783904311100182866112519278247181819073628072998596430196663290374783746185353576726588787487498043231110550806420302479187811980257201644339307466514996346879765129090312865994262543899331581122355480915189672848266158313707670612792491395253686365489788957885832299247601676454217554069316051342672212627261608302520421018243234360587823322999673191765446177063988617800794820457431000089638692739818474933899714585133934630088355306734884081509347511708757126847298519999212943518188192115578289917720189121751125054614468019071061230726731360501848672248471967868866193862844466989906491852985004095948896518622627816270814206041544590160726175304084737346354072862562552197831978188449612962146147398546744149381569610317203636547914478487959677357624391868303065211111035507206667012964246449738302742443888449685424035458434460184812778356430411764663976176198168081885447518802147969875433832247618889725953567925061824198485384584300747769745079501055558964855100368367334143319696987015823305258288391769910306387324833545475700732106820350483186355289062263446972476438873311881532732501424750936310494941213305918470304354942842810845435886568621255521447020160084753601113439941106455536011243817040936079014173842432855740281903604539525697399226886074326358492948620478769575932535965943192507475671403753439738294184407110000676368644190192357405805776828244109624941952437146773165864993493958252031065737539703514557876847991311349947559956886219954051409956710793947123517938051788675547971155756796047207641560163139489188065701715928624925078604454377753273271847803549327465262494694451514915689978342301717331970857952516624754111615694673235146587335083581137094032076644784013156956308837097518717803798549748710539715039002809446448871667212077390499435511716654004231946249805713509296698792269532867139507413178233378739905352677222692639214182522842633383596374499420802914026386823097516530532234761662555518642795056409075456987637471387603396375599851304279007845462062205704008749879376160487470638799864267462105099180986255195778278054589167702817011641016423225746945751546230343711493303706333289745501620431189691838188942005909362908139532777394009914706216633766960097316368776271619186824470506264976368179049850765280228774614388917286123654491618203884554439862904269299227363107722361057987274472745097714510413486197503916589031392310902010030216117759235726503091611321577883124266726628432468845650401065898428245743085376802607414179407126162488503751843155982392481855471212095531052723942067129577419308694969763529016532885229536813332677322792486203122163868546702025442002836332894116105632541446468041560426996045833573140097975789949421028444029774680888146991496863758889623869696175143006309975020901265603710313315540320024002907953434862655609483216160858284710692147892910649185536353765755003296323671359755325883095144321870240383695686193942374945036847389804037253741992486467118959831964110048648204570107089208278203646918810814751876049549720281814609351522959653464220463738279693598253660594305293572578714411323264584211487544200848374408997882144836649419477265825648199443627227360493368674792775960543983460203171402206518030948897413135737036013483227701698000245428428399899973850949025450614910274827380404017151294359099899269946424609300267239484200649533875555933202744662039691571661716674783882424459743723864958635654289547017086135416611842230033863832020592287424378186806891163572914815462833306556850384462983051214379906991627756416211162121401431847954334411687755966203388996049649773198471974922665807407107388145726860371015170261393498037940458044590847467863537634640401857058546534071330654243982118850624440054694513278870457007433030625415714122591699615080635307660640770675154925509053111707416979873897847537448296660630832895297028747884030459923316942966224035876871327151543210711438487952474159561039822053576327197386188416383389693802425933709856483717766906011075029966204329114484991392333193200478777104687507232701478124737407352061471967233062736519546789919673969040518000818484377427991105620530605927547966363108386449634673597797690254861739991011531470456612310770307819019059987244788158005893722195567183208155407005880159757681244288721413078338666561018122611335358840091561354001636930001199249430815506125303938791055167653642188313350559297188487806320872195012122761077618017216695784107153241008098783048923315659327226825715830500401344523600065726393161955201906966495975737342428523342182902452918597709280360827604810737915705921566481713420696078122159784886702477060385872425794730742259617120793099658337849484360764799782256092509706114877290136576977656129696573985634060649797003052651361812302000641230950801898173222949745539063304658220247876015856853190400897268484664459555343615235490356310446668099698949701441994764941299733238338221031734412624433411904589050047630457156677405665585209004693396862948707819283506010221242342054904561734828166156658404273281841302854044514492193764207631730546441016740515515387104958411057119622352497692839204715352205283890215670866141828296780412210770780668308863771232709710491806583625573097844849167196449280577993538588586193709631948285365414021444835046342533988219759389726348577820733207638363080203370513251303714164375571036001651803901396002754392003994142877310307949598723200766170678013991605306377616437676655759637120707408990051088129194272205371267370357410067068612147219362570990437804378487247776782513387799436956124966794701747802220391181176270753026160532628024629046363838059867954050475684536573252125938810903888212960144831642574186975955444048314399485726424951771255637963620076168987831163293006815502853461748689592067143308508765479751045571664341977251148562822235420648068978184502275400117474304630085971350251489334244001924299620016650594817750612172018181366803610804769593607736641276281890253346095689431440173104738032745831006653903511183581338175108567090823082806219733930373569030581023243157224287263793201435906024061146793535863873428601817791298982874088339614271317210759225786529239760787722613293042701856832884699298786723713384047319853351656682852890311792193928989563641581683999648749782227784315033902263501662940342399836543891515283114477457990241982843804193284215054915674905066533060316816607022890589816246571060114303843534237550140311541226782219318468209166504218830311419149695379840218357716285776078676078510729019701486474024932937618097755569673997182274420499429450635396191346448815040941402621893479963423728238584831035127319471555734164654135761735369832751549945961477049144940110218609508380997012805769105915356077467381806718508433125821235663929715757453254591683988301687785027650627937552033198785935883532642883924094890351759505410883483365257868456061227515059362064088136369201821470764823016915469848777703563530596638086942180211310289602941894498561363599723585795578123539435083319050126721532801753507885886428806171882632133563038764642082570806633243416059463159904453225067509638993614679900124605194636686635417219023602784630193780827895094570364053550357373893091254988523442275734770258710660557235888463987754772985185211168170504796902083159015019930135333627620035868008348470192173021959235501776457652777577778031393097358495453838210909851370805291662220924489701921257922998318954540742711064817697977503092307544217680493703558050339508030502542982715719426812560465285994056338259560873066470808179143837664434497150476396412336962865049461357044237717185007575321434914664373811614197610268997720065276785924817121815486741353513238765865697692513785231022715986411682600152670001772934033238217674423706757152548290523703112296734687218041106492271531125752000127609596543748924873420322089559932063403527023492620140648510953661013438235885462568127005562397793194352355573469800037172910295985815961865777868452646501299067282657822347688907465569266338342810706635265399294105451566628418697866006687820899156658488069368665579302910005987352258273677718736411969696737452948014138122609145170882823488967418400811259228159354808537443270574506712553260786556847351852466671223112351344644260947971108522123286388305589210071879350146900374764250014890756872678120854943372835797046637415824739210555837795944171815750354730948308709257391613552816861113703822848417477136518176923219074024505439250169981320783850793418809184759806621167056403243216955263498737111792403457550159226890993822856793894596559717359495906255187018880850770337593687566136938857577009914662097978230762249653741858323925695978179311894565877969723422775213739447650980611047858633801769149134186824319014964914675973093749854947845500342055266141677685278854108070578961034399179263866609549770161739163489219925662836856221422225717732815623748306076678252252659589060397150286805382554459178692462733948204106867686999819678511587982304225595160451224901230985117959761543489066013561236709501077232882891484148454732042683671505267697767293384359376155593357449095340042194279415306766814934022880957315041069729962120946565286649899782360519271049101050657671361955198364752594777408223551595518071588940465851171001495083239239412223749660390428590197833848281707162475071555046241266504204618100817108088308886674353075476279809025936964545401617913700788167007754547706651378893598341528319478962304611109486355104666810007999902827487278257378316866671099627711350008873284060928949423132044949643132451980843628383282496392975163225800937683628877698675885777865518823015718951058792568548278626750914540953285659979555269418266248223785948232758423140407368005676051291337261964204033554541906220431069274000171304542047326631363698843228578964022147316955843557479998197103573182760342546193881932642020787813872602792192879666749375803338422019129319779700755652399639615680266796100532554401285272154585877242680151785564627044724319070641536136674455138893210219655216982218775462320514646405340445498455874915492642003661911714952156704939866715761559530175971737361057538233874739712047158475775622284878938741370347859870320262783893371063664547274414654398789530167191745249229860328814298714358161407157751612869314896402331214477311049794339086501621052722643161184908776787891835181702691739239707332838909333905684119530272945958370938581120245503155499601765753222534159259348432960031437175145261601457745590126056957824301814900893697430606580297299121883932763745465749631835489983639117284994516517881618538210665695535373059494030643748732773092944228363531191667327791517828228239736415849069767792284812296535123085553392343429430625329491092571742293541406757103869424995830186322279157283834855434904683569688445848084465745443133135555894604197204505717869232268000348812322404640016567014113918698064781308585821704087387726595755742716031759367499452320851354394465601262374431076893173603658459865549363195185080172789178598051974100975906413298620282446632506963870329254283067617866321053308507364015895643329890634038250804216372717972298239131781080999840032075755112577107885814354698950334502816175286163980366351281144073241214438590306772869623602904938976575741482889343766005968802156040237928797638938098636629834173777199666561995777860957470482278021487035273602115382873226811472869753065999186363516408280300987963805209795401067348593859286217643099782390126630685953748402930932358041152915327828733665231330144249040269023705073561921291054385893106004633895323087922396223149532811477774293553233709533777226661659540315259250241498371912613841471202986789727147845966334427214107339271585711236531442076389610205478629874387245729160070125305640295359643299337794108577134600087160883501784380294936477069465773116881275305426906643386026018632750092064742206118352444213367831281649621219422107815810787931207168949612592303632809414081815308405564611094607510842118219016760392699753266268369575521018439779333868631341326117445499174976556931167791211489815059952587704570341725015275228163430868217423830009367991942216473465450515061297756178910040096477439017661480600404955687024585498632683944751724816890186199310063284332553860325928401784490604742283990010424001013717016924921449637088118646144809367740019127343651853071608776936493777262331566594583319297092249349476787716580840970425847482865938884574358174473510054032609610251181452042937278127026877332801734851353314294651000311292166982277206313018426184608037613383156160666628536858038382376752539450809580241909686770779525056066484846692385311086169671824355859240252216266918615447320382967695528822606473048660004370243353420181166214540256192794539088773742729627627822049797236230417662444708905069897951077832813096973988455004092405356593367986632188373512800778140575906520052223714601085034754955296410981221015801154704892650937411793787388539618411639325121149655037691643374030902769552037253839358758986488014820343807991145940367811198102502405312147505463369737489561101826105239968691472409374863483294373008375664627746013795422510700249389903923976307222474035960585938243481302293364853550153590961294414437895257785116030239641293597559305942411468397755266014422002400107806042196884344129446304346015175519773377150278946142610849385282562181298204203689614263725382900958459763015328500689953618433928870882124068329368821907392827689471343685346453704998435653052716171524477366338685186538894955960844901688524315229613606017786137118449151566296757056292577249531632005716845789813860845288039019721049475943055979192852946982222356313077899965922473072423740220507483445963019628418954317364226586216356818696548151959884338828153405052998296329265447361578994209689461389285743326156824150341844814447661791541654548654267157081462713137992082070497423135050714287319374299784688162335466530244749397986360896924993951279055138046502330315526874690304682084030603037300500932398629331335527989951974971926911051885397223013468549137124200918294800184513275815238253807822647157911617623309697099941974932177159969756198719573755677141736601781908437160039892891840555140211228127153732887106017813558474006916172790630730576343890048818645560750716329710867131931437420487898523354766652174147297283740479745341833238419646289021227916303714043811069706314090728788062870358029213050534670770691126662249399532844269479116309064539201737703218342409088087620267332474968263447439569569855581531223616389524432740012115141630435970967053679375767637804715833704795530709457628607480681369651056794558787900730349990066267118563923652701561119104490248326404362547642660666364337807344011175074682497847342943365583507565768196684988621650033753901802635024536551857865506943432525030843551403948036501825037865803604845574945336406894283550504726949780643628740754063489796043065467661806663448482570371993226054483912236099178788371038890997787332632396901468806812546690970770998283108087643517813127844419178823779722569279243652331993399334996315120803690944004175444483623213254551184917719914167009920815517890195327861439484144361969913806937250476305644309353107916078969913234306369507831427872425968870656933435670823607864320960202192099822071656851580237326266418706577946313904418477019811620668335359294842130874046353949619965511464063783537810288444240573641470431804806194081537720577269479315272843353489690603073112960647385330546024927559375572114816498209414091071494465656271986035800297073608360679038545843392266447728112467914970259717633507435315043866690446867250677653275487471762716834739432586784302389722110132845567750379886097170691388603545039316957309062828572861074716575239255607334925739409132397552831821530877126188367589727426275377217415220850557263500984093845103246035150590609689906682116076760665950838284623555454568041395289108254179422976202910068212166411193549137565799498335668045337105975055162567038699841183858622132283052165461398612545224345352401278974185731297011894330269782168035583627633566027388209250235695051949867488525349148848308108180754668817544856415293644665220028771335878190832438040897580647203163678448732982966371646263902856141581596940415148726185960686399856910793256711487718074249276689028040162833108950308290469337063019804633742735403530802342879265093148766073519069077113739922283770048156466435755426819679494960389939159006918380959246973887364765412168247825385714192805700940822146650106464627291777538436610241504181498901242716152643225558689184427054184793302311684739095518257917930689140212022613979508000284640006143104153555532563863931817769688744125143334818456908003658366079823745125481733629772417964695640332348109316642332405725845462464064469072944771404998269818281433335661366993668494246016328731080218695029183221416329514587641969529330042851751049635926913836491229419142338304851620396917322759901690818083651590433222801175729572049995556885507625662709270651121227649025258097157969282913853444177153201696796683814770547345065908942564699220360671496002065848104900328457948236140272133371759373198528602629821346494485704868706736989053828593461040567814509144106556265827886561875377140579324878695575671776313045733313606208851168038862906273632909659236152887124380611569363637128537413076446083086548192091541276693262026614578405873829405811227962498034661407164108007281288984256367766611293196622017924856895622776881940769654415904470313131745464496644886524751307616957578875613978184995860154411985145731507156128298728905157537331874681578605912691557867002938893558179004336468900106358317904980266287890028498014246269556709050850783401497298511355464109371854610351986774433933694950605716965911641776467297494359355555660862308485574403612251064661298789013507336498018069091258092517535380872388959497470314717282120458810768801565956835167951712717728512966539082185457587656024935422642921749891393055878366910990967334488468395677279012695690913447640749645222484338627066885694840693807535033847040328074117312886569654930195970338326446574435552418461715988386014837441099575107441190875163443225259026148811294042235995941974156991837434075851856488693371281668522846745059027024199188165287311846712677091938558904166472808640754036572780004048518262072950703066798395657402729705277220266260886507812811376242438049594980243975187120423065666617227140421026002901834576918925022425876080938932865827392202929809287216560150902048702706855251639222000731995193960892127561565358875044051732867001527415293757315093982384066451379840809286007015703247695731110319697425428061887018430852272395746493040329965415533239781104051504315411209840111267018087988728816618954074683136346292411311025157391058332190588046435405592866430762800382979096852291694845507713406723504478192051327552630911015692718399712692441215110764746574547833444179322961923314403152366970313254531153599640415118846543534154764989154929975596087329722009726471856061607887376469423407621288393792238621348751522162698119236083002659318876798984042454005232485214546002047449698044106991248627371850551938601884132051284656210974077206323052485378856852105252282940625528716647355883773047998729886008570406973820558551704791734534661885066427123957552954332916908863004307863284628312796400872595876401778603676372155792343892646611641343723724505363438990439904722216258763842925849795166812442834103732170355343365179680294340998890437913292883858591276185932203790120540237743082421991470615403197689634541897154661150814839207681337273334330789039113524842178402967176337806192878730560174243993134318704606876475804767742301810214613669167888323341068268701812124995845043309540487085358621196696541849031216707232932466058493537611110504569170910456575336152716560874432695580656809684368908521624989576595495280050159222589190032517823988960856925115785469229516447026158927409273382743897127294797056917833012548463351108456676237095631916535152453355103524156090139372302132506155432779163406676878929972039525027070060968559180336066067016660072541434350278233388351180921261191834648046905728275048467251463621194318634929916176574899314879357418695257850042340376755284567485309721666813135566299680935095746394621525599159324826616363883206377021966435751035305267128430605728245605357329722303295103138908310466031512034191163130079912049044387577808200892670431045609834863978913176701126646966759358240910296932806186787037735876604627175392597175560020078761484316868413887649889414342332717567224603851605964762868265265257660117036394996431287609623930120399620437683142355891414217652321860787895865482962395716321302806744664624913279034237774198673166378195138282633471306442714270500778704920628257424265986879924430067408931754014433541054472918078880576951625784844169964713584093995872637068992095421116744895668671569188502686999998803092023070866753248717615653883911629758454582514620875549533626272123157440973251373542082359951781531219666133167944103107865827148832964720980262538581436344298407473531643549714098648793161775165135982887703936265655710203237061674375650549832778407796504051246572542063592795176010050355082518625685861806835540345018233483668139338630888128193227556666779219288553291808861843881611284389193409809551400841699918653364119772256547936111655653463360964933592131181258625050270398538311477700458069382259049173836473826063721614153606054770840111316384634276349899176011290215411785088906237087229935414345397862446694383370787046825306276818709973349959007968437350751462109197531272655958159765042305758433176542824539036544651520545188146229372548428583043769025852394887536261488933189563883372155812985424823588487057482815311200000542851299001324819583184362175612767849234656506426158763344707395550769716162382970368592205984669966884162063604771229088630118649106348368676107343608656108486083275849482685978993419435761531647116691079601963332201661087626764795856169927181401068968675196090098307849326216944357697921192142069422351451556179889977690123444704310488084986396678299284518167859851304585970477940153572481916119561254416832319222783165443841817931706870832301390967618072691708500976184293695874005531165919945662461946555300450697142754694010762431286388030895344120156530946849568549389802020220480543143942468877189472096783740166817265377658320721019131368986439642938549438524324858582256553016766229484813182292024246825132032894218271317941613463187924881653535952161644475324667213566564347838986678430584315487522398664500051619474874739628425871745420616100738344163692013942218033455644382646401636968980296871397727631422596596693720095388097532487263016523635817144966967897596095663773002066821129897418202989859545903031289772115755330150790336648983991217420337602771924773338525625296688750873016576416565082521475431603950290903898622897141419338110383235893561378736871686715242410945175322525939011037736196587479568317792114308678061508700939102237777321179949841359829835863822302009075241602707670821436875222690159742600990696219156079044500974814470353397615461070166898340207280973558299204335848199769448823529831173754094028954568675597623930105109300132137858869476735590488707983606991703394569494903996390722860446158371923211484642420439302597750851480071522317850085916824211122816686102168261556118599684590597501617920617571222840492590097774801709984204914625093852580355868081661204866385985886302120631083969068548453658256368750225799742970868039473964439813296930458140722178099759599232097620178884070704062408785521159960895758477064934293859020246392363062771312439718249599775944263898561388479668508055446312030846972246403347632299149113493936300697114275071996413285929550129045796003452122877484231922196337565626824659650951761365103836546472046314328745548680963706948629216352584089541971642211719672774543804994563964017535873117918971732930272614784215583995052327422807209236768405578687859120039795771813546530860215589579256198293413783264834854464648446522759517950882990951380556664858845049343926593082086681561166975925023668164867540101637369068088930085809414986868628535948876418827123525378497423813238068205617071002817313515482836232037804773680960850587623188455615440932617534474774070230646881724056716402448624811717054355067163152222861617342069524374958841607847330579558759939261617138190697513657826869156844310050205951119875413528341218756708585258633080591873953061112469535276659917090851852154021735763388276638395091053027235851416639188199135088403729773757730622027602776445021447992766866540900187120305685268716116433131573494233059077899411892404648305773357349812126440879255117630698562936688957885008581808806379682825110548770109119786952164882350752908821651482933348167270368034283232776449755360740219972417257723386271734812136383293434897322577915718972794807978644662283652096183316730465467540515334062244718263982930976023481374101993288206290022399876636744564523009464775353053933327188141900978152978930479772792069546627630602631002907577833044272012599522243716577681367880928806349151656376741195690828634070241736685170002935441349045612060010899732047902865162434576742157083935362138835469547242127689091653154224024704313706398104093843853405110268976758160114742355421401682274558906933593186040871162286131568244139770725710290292651108824912522592780706637716311566110801354985486634864372104577568257222693188073371992092867399592240212298497469539395523629439291299577797319611549039220566741543631206423037505010404028516811963024310300781261283326047668000530214687909954225127145331553009414996826126319277353925997160443422048452947433450592194978552368051662269519590374199583298920675792209124234171418550470045561927064050262963303225295427080061258419392600647255202649387870898507723236475040441909278916506620497613208119937294770169062461133693386105024494268058517303281813522442938050293567316247911041240349347178807432824592225243292659399832059255151160217880378555444226908976933095655587240299542951799012782235447249829320859311408667096323271824899820990762796409156397174442960763829605474472348534679620213428694954412602189132743912025993128501011629865877798010247825150752431336651531302274070553131405071364339790968172670588873829051029155558810138883077772851978389759909251596144131875093116314359944279511480934138712573814683026487718867898997987877105211925513945261417738819852138772949727831316403992974148336252331866723587428824185554286255742231863239137935678796290688760620353868714728303933191143668340013807257829504963799991841090102462362023659628302294571332395512295200724624262943562320184822605325287617188695055185812146045399545838441678416550392147239173421532757227280953499783059906449318340987022893985551480088080317315687431804562424872671253464231796924589154873483499126140044405264316596714748785721962057454585507760576779941277604385278421927997111175663257745003768355112328198614206763250542658911688325122005164530899436227768885232792224879596713653498048202102824374051957519395655154226904099803647370780874352626883200408391713066216746843529010066763207909019095337631523911144557188069993640728446306644472132134165996357064750906715053189325180403417507609213319339695170938551609715982681792592292770143680227812617988191193392945186843000886535319069413267754212375651143965489479531201996383914981131936314868898468127309453981608386032339189766554510415100967085682818066006966712138454463349494990427640476806594545133940613968893542149107074474040754818243313742960990689592275849117956983830776868931027961871391009530823844293143912398560883025606774144607333400115667031424669766073646569124752213242445728779731254985947465162839495398542539758083699557376236167038629629255946712404616357024152121425661597762790835295892661408890458383261470988098042580991822260163425027140041452080970533988581992199927938496349258000304613036110961899587105322318819088257630604577660745195948861731123619427366468692507528677984721789258394568403801427772856679497481490046292539860267079190646913087530533086977888203713230776660689509420207266606856736373782260168303684732089110315825175435993455712445863481454560655214240203370046602126192777648418401180302099752856693301778587277433609033755044685633897581810503346455063840004422139657924195716645710671036308362254778972008521795602171807380764596455457771165732236980639864397630117651287247248454923956874526516597854411617612212200263348264193791277877940982783485705593886914708221678439626535107068845862178404344701391653257718037056194841402421441723664013763246772647457883192329809452987437510789728375444942622141248440428459686662851674848591681777000486364235746139762933146354062377966377164083335058168358483702183613709919354174709591214630487002244245485010701616631341159811628234138628994688977559856849524863442316712340882163736594380045817669033379421940637004266882524104659898495373465996305548655804609032318073164374544379869566458974026781802404956115749276306114904345844688119390480733100199880134575272731903879502598710515666572588879463455516355931056945389126663985667581541075851907082808842340759041812087332773812008846440585427086862639320896616498607225678841008315622082674998208006756767612457974446059090152521744271390192305164807086747371603850886503029614409285577955227922537925192243251016053462920793015208600021083501844880218101410313635876068406692476045734185019900795611036234160955836801133904268069297755641564852045857210964282890018079633485928238366724831277274994527236598040165100778220615179818543158947589240835979178169724695557173380656939111389430189331698392910752507172779483732094961196599094738348791130741349197618490925708032010998275889447028924893398172614383218117194144705224596724673133986285507440149246714732857111649705918770184215662373956978773783240382048945150971289239373253857098207059339730805108203107905043922609049749820815986311638137390788803078565815737159838969904322581141883929420651453220748810043298875011195111137436865754398575024246059894807320810111050324423054484204495481344058077321937789626133531505759164610321189657419504516552027189534143506056216833404892624365766688905690591732321577369648705240947596879291556631828132871838050975664000497571864788112776318794970680012421944058804875136263598243655166169303866387982088600982088580823020465289554909299998000201055020789307712067193649262484076499898314320462354445857676052324307065608873354411141708535063863909376278735504881374951085101743486685821670708997452652385407453249840439013113493746641448728536312743705090031245153239446103109240361422868093367052633193327154720124506394740620697666525089090346533408069055068641644766297631506423306997234233924552363224846858913398335127991454057553537291196947917976965058879130718544193795675585802256092861342976633577534749523355053460836887766324013994704186387473251193298043387088471113849697055595480613700757047121231813949083827350634131022941583549466270204031499233223251135320163525495712821481673933685213596721991195209309325693892869743359429547066691378053749107708532580086017067499268212689258426668918578524213473892512314882748165574181285939011736681053916919260053789040830705926165518969568675337293916758742924649074102580759509964633658502686972291382877074281582032866746848157539555566988702628970330143449787979954596882536752111229037031278939243674734519008346610161381450303295256824556193517536658223500580755609914806603942919878231872994534705322655950572091780951302917033829917652043839281435357527605036071184554913650782274406972593880989919628545483546427374933059748763853151271532823433108079493883668386233337118699990036371473783018866904584240123731144223702875699724133230856149249361128442964540512781987153442203979736856162732583901971377689986589334360901966211773122522393906716215339033573659945968433646082019306747187345290379241991252171754554055147737573764836152430744020104540912129251717834668423134012612380143823990520325759952533777476685426517185878368506648866304802886074836710690237609411292534118092795771871214858953821639764093304838729780805881150456270907766708306122837378701403500980109271209338684799938702969245524010644071253565358476466424325518377864371121228818292147146403708595031655829031997282334507053898992755670922869594779360004718912569463461698166513270014662700054520247290921729439654747332957375627199610045667325068078965287454411996947741998180724918087969171920007297944575267175147431780975557199745379174997729193268383330847614943666178518994470575582512387596808783427038490034713204851173015522834163808500131797828340632685601174739970480879366739052678662519362897327235335710144299079661899383051714507532581968831237851366268896758068612697182503696066035672617799894229583409265141654881360758112109942080866005661813941827122180926876490971080772461410484699855557801588157135363117006498320681849844022735514699826336795914023195471549231231246415274029067129179155497921541176037320015068078827234694030588295782107668760917480057457850704339272622518440745684229964175741909138507715623586120892821646242024154786414081035298637567388439583176368527201955275763899933308609852877268243056951756761957428659627240603795054612601779702258739275958980835437882531425188548750780429840406295599609407865052901896914001903678927936177185883141796161715174927837343903365772554763508228469550888296056744731810590766570170615484823659726233157462834185577696025366912167944581448129825631797599904603063937901551162772935873664191960269566773991823454449896096013055703355153683275619832575891514794422692042788976183559612616843160065301362130628979316803367192833116003984204092343481226081707835044297593443046474631613878176185312597509369603935778203005882661833766877134275402908168907551920497668939543691886788844893962471385311178728532476165568652773131738669669525342151615086532384155435656136688461583027702954949098083625952416634591835072101802315327616725280331976739996738690165363121752773733143131520447629426285676359594192848614551734452561749239851339143124881883864528227411821539274743158615195081085331119904555019734366156606930437718300487024214575719756058275098230424192499239041373104959229577514415351787176851859953636972333460148759655438092156896632694095710671939217079402668526602462775116869208338673235408930116999834593469480765855337282001886279241105057905555948025586638521876113902348957381002276980582512274903406447906843664027371206676857905016833532555989315885078942528457598385693074827609710817882440541265632820819034946685884787947825836517873674505990328707469480293054865888402895239846279518869622438941831368014653519027401278958561575875134052285989359509128776216968693477820204558761266324714934498342936079215789827957137081613637181040327353823875515277878945503556633177354321057144054897291602283407869859052933942074375053015956603630910537036450058806358082418974641127756652642784739907366453459466815979840437189879218343574844401598434586712442153478600137536766029689573738965733582778861255658046597873967504593827086051967210182788755612555224724918425720232062754720882682556742929061819601414481172548524015964916455682845476507814185686355881122746349437314941062882546726094504872026414748764395013894190363968302693265312796245486618842684440025219653721712438093010307129401801069693997733682666507458800276233956377889215620378229831456923627344498662613064884713418747332665190367325971157147276269121352073498515165875384777604369813329961955052425506116266254158970819437027564461037891443253569385708359734892635309054592137817935976035554995104463088003476991917513083158821832990391878180725375398599124820123945386577842328220354817926878218267081325403523731790156456348798594088280126419016042916632789081328745978735452325271252755420782355706500595156722863975076274750679122862721074986876718047009221062458179216287652951012933546205675962724574367086743289128562931621780534996151004369297186865349929837833527170155751641440286321977704490832615845347491540442774981364063551400424580836188729134158259717946518596319120023216160091437391138886902334401601358288669329222422057961164333216536546189662859130449531004761745554765365356814961101117471101110851039731670198062123495958110395091661296886150098825952936366512659420202343393097293569403326396761459618516896673549234742420214255743878963306783244068885737969930380103278463255637687902092981883550537802327914494697881325786379493740506298256546679201746661028228719678956369993033053251809573937555981792293764212118322212651458080403293657983801347265906416008825339870099154957438001143171562285508088740393279421321465837801799224811086969288592740910746962900980042235503910389524861397575136585904906677497453522708549157211467582966021319449722405335417844751993503467452501780973843605523067958756382397513560623424789211424501543015848892158417293772338694212929608214155098340679322902321172105277549702041978032248294167427391133188406640322416866084579065589614817101724973327565221947706866205229874573450436678234262312916259526950005655035024481047707603299446732912808824950504856700150915906138431233191692129426999394793046380940151065060975183148246941901637005899744869506124566348917048180763284948635716411038679549924712538605947062796514399391618140355891355542400335064115768222324204437859681602584463167385067953558373238299929679756804540685628675433047207543211104370033035922300121724937108367998808224126222412898016756536843725705936498279859577642070609318646660159501590789976350332386949538116520008879114404707597541645976331299578509192810868551428475613589002384877919625950034667580916905865442119309278798734124873551183576782344950223891546828527139489987353248308219579603907673499354699880919744301392236575755074154074565823483947520155946059729862452339787734456313973540838819150054058827623118282743771675314266563352979224330576958301589336804149455604680761947609600527153572733667935726789568092098787488421628222076208238289147450008138429769764856582562874913273121603844248363115803193880235119150071908827056463895636198770106658306011290385387742656676654099781710181062562048593737989117743464579694295318052552012664088437284434123788386967192293108152898956670426274377570444693323040834899206705697844337222497907951759254879230066275307582500938971691694002759626746299978870631775715933116666117049628221496506059715225277867425929983604121746994994859298970408224574572062841965460003014908463037025871776589540333569844717635407836811294913063470843663014116940352593485940186492744205134427974174542487546832900007614947020599373850966986160658316839700891882364156249827843820484660545666288318882449254970252283631818354207690113802200676710087105819853594913869676428667384816702336815775078902392068079995200028717984121591687261783991412170485368827425448344654353043249759398182087471203397328496860433464570480687372556022538898893943387685877977911450358732132886465287035149719226466017522204331075346515515899768331229156690034516868253364199862107002374901336091455261244852657177631283401536270870382805635071860448685257213139686599276838335816108728906457048994428401300849991410228396397096598737592418400230659584648021147925847542735399224265721826074667523496029628316088189000214957998185053760316234077077331408054698476886171372134389610053508699130073569180411535976986344106656453462888123600265842624863133111728919749370363403936416578131250246087682331669753977851594964876094789441924145819899990095927280741721653111989152214516742526538865500451192171412592177085184928286164874205314822302032744670181806136605818831252619668195932459125292579018610743088596639043078123339695695378043031073826168324008847462545076134350841511640787541400265728048539670725130788978884583016101921957061001851679767033025523479459882554004273537047793170980730487121234589244965101598390513585715384734343172374139504010078500425942780023230632098844142361577877665148899788867220896041470598608587585306713032048352060439469272673840803605011725599398832738791391653138800973589768247279170921784826436325969209040275126925524152201904602874259830986008387614921452599103082751373492915432814745308585019598445034499032985843136629722058659510860140223278591151182452640896407330251961610155793031546446352934137323145213549601425758676058612726602379751119635402101646367337767780682842486451858199327107173418893643088431157698204264552489275535536884617241300189791320178366193712957215492185984688245621005651624544695600818439762528247759713271323232593631795436207694711959926475989984816740608691454386083243033007799609400978154981516613193758415346692758464665883236306072280637548508012960149047179915918248349049258415188692090899395817747007942832580827332063762832873655714731332998099461856710348563003944767300680850976706076248409289994722971468969055110939049617156818612351334235650531109958736617745679643238725964597315205015332518335081781010674310944316385307102559941457120869032128032853012392137012559421595150252639492230594046507042519300401874444274437489506805509988364369052668882776194571403341624234996076701508792071891072571151398644512377790914441742303684451836956831049793988841589434894900992686551868271604076615746631670726694179213255007350183809462083869900427811495135528140232779092593888686628035083129015985989697376988217672652077955880470305735318727606156322189458537492502839715415780796533729848782312286175949369561310907764295674181059007765333288114996282273586259615884076851133798901125984922616891393931696733070952188292673660557612503383948107981017749271407746964535923967633224039214356819593986212614310557714984875862244054262468943402623463705996192406919196608268838788384206730275194946884236273739496815189998074528595937618918657075198531811740985813648748100950831342246545197222688602725516778535339478496998175484207159106631732918247268247531620613282512209389932325961241339584582629994104115149663453397842318361360761968172766858432858658433962612814448083506409179422048938873804498318747237769335087760343557818767308532336127547537139441993144888859824278656375302750064702718408166426154684805551920229415047286454371103205986298566415350563824257088258861402743684718338711446901083197888750234156387008688122777494619113846114809079057829528866989089683776075377105497748031019452788660268053475894419606971472141851488385952127993819582844632227986959702951547851278122406351779334626424565917190642812864318939512573315276399932636264594574961154822601299541055845801240814465328376543041858074184122573099629880129515390921258192688143705955352866761129484383973717287990527652689098955360093885537641618620043915816571765256830280717010745436800933009800357380745496953067426940728991585573238725096566912154228690474676581691593916662487176773387068036527892856943912377452195787654026660298443162293321610334148359137296582252145673827269379402309551744416014981136988457897139505910671304048859578916835258268170286239892958765278565834329254326609385716710152595392065803812768692161707230568312014051611640580870267311391411627872109083260011609027346884553118153616436799034292331602196558817756656047831173228328615790232965032375413141079961557739422643155875719175980018964861643548547995880252461467874619043264275931446569828825881239550121525382833262729871542558053378458326743647138057831038875886930304432420069969142472436599618874263895802327533359650731602157768722316540967897528606978981868454355230035869472953860535977079972988819571642883546538803525439210593290929436338143081527680930418261059190030085695163134886586732039907354769397062982270878151522035463014161293345489228041472194225127294256327306641169442154063090548629093228606322919963614502252919265060331228124288366382883159608688715545302581492393089107652043791937554638027505839034564233862892497959909642582268656353883289609099682142071130256607865978860727568486908651242964293846085072856384234473073195274256636058013465045979863952167167763540188723635177189455795851134606316099370542084665042715272516576305596630435044457565745292576373754931140858966040482395344360852686433969185124455961299548258573411308967057966889384118393406701835397633005121586563408534049081336519051115701102493623767195519682701280675873478102998493065391917000280657962832416833160535636805919685038131231887981000947088261754362500043327611943515088757441354077417691059150867587901132776337648400694912442193628018535648072740082154925417233799234994196664213753049560603451791883938540851245066599708277734367311179291912073638178698115596762765729234525371831084178997736834050653752177417307192217615980151929080148627123504755932664807959316717699762801305192004654341113268629594321692726416379745599509854536647229819724547691371021716377307161290534888981833779237689215170356123703968120315806189951318797828627143930859686372036439498557495369596856431953400794295381022745471373201836883602022626720637118023230549276766703034898697763395248814406450398083422404504413337373786573960867296324389940239221591027909129443913601351562047983488056237616356315853607963304053293226949427295871618066488578861022958293746720632570119664179773778798498603411415463207015664000472369017570224336384089210902605880363079019305540511287692849480446791300609150635395685509695808507039198388629937723055268382422769861720782921113421198159807312457803608187203548713582630381465605651817967598132751087483700460630816177877156695384137738447056920444570080366890688033747013856586363501486469277971158995509911279491470573690071927604329928506125660003985082491138985826635311590790260790728401777729884834483649920270101253203327068536637435323578170325314968096827076052193990354162456476015301697147915532068198844571712710465483505882250836535690261918494800080770954561162278545615082197442329110680589262924346614302347792008517070311752862163551831167546102860646719133389989190747178385802966794346728421614388992208191863609236856500613190080076199270591271585833948407779140359028917778222987263438126822838920729522630157399788770343340100338895419945503149199720780962504022849758482640416850812252747063327345213822252718568117222408727485793098903951175644195160182496019711878511315156093748500789390449895761940659552291697995606161251884632400249019831401246343313919335399562873190816339295206479373368062762150739385199942385193296753460648288575691605236451820014961219611764927421324912138823037450453257858380446246979677986043432648523604581327018493399229525624814842623031577506917175056160262277609102762712970387511907861167672217643525756512005247249898055139894104207927545419887461293860456574939872948996860950097997690573520268731381889646274319680740050240986354199612519737712247899388222308551982217317524260702232620879256721577431813564171983814451211137011807918082972421019719016443524698220528345328543977006654045624621578385478800669438030740984988837254473785808816325717694635551293625400962620983837095194191772272978387414590632598286877845769376029730690634175181993984534436547173461533018698176236472623766378997597720468537199366555345250067363219188888217185892378106271158353631766702111331217659195877314251757984860275704904530260473215190209438471474202015364139465867659606784216027456412591913267759566532746899278083406699717423699577741186380350166344411440493385383225025356965457848933691253766395238158293215855542494140377136143692990455281251366634028070740053310988873916162240404443175979295127671167871294382214208009637204207178534378911876251522219048049205618745657407725488157331126296460243544463845552827616724911209633258225315062449651232366823469472074762689819601332205130345748300857710038201768425707804274616137888859344042495528776332415208413652487640864810098386277159685839455177188850628336220691311567810719033017640974549655093965214244471753403011164434465520786411918805070159668172772345549240923460835355399239468792000591917989228499039296128688571424434204695353269923904234007436809428940284585227883776886473982571368894262169130135375319423253652189421593193238763517761479307959216515007422180175407276999764616660110076787695986544657633998609694796150066035888852613268272686693612833128023566297308265791750188355810140066133952280861983418877023640445430649980249384949760255939988674313253178720441551869906967469231971892677262673107060174390868417583932815818056147550034349828082240308951171109733592201776999538843019669684669190894758061068064161464178471265485648972369901313740413010830304379899100130950463298899270355620146881235370241621732652551848556382042610455478823232708268857107409185018495751951021791047594844607905642833940601466077934708306654332345342526177407496665357304573010599400867238766080113889130102258769055538611664701292259646658005661233077357160998831365627350292207121382257344360734694445331704156007066636114300410423333786840934827562241476939901374907826728960239971808216988374520997445314326398108349319880826524666115874226482246097547223532284810391893529140779462840830623273746666524230018560988336544469483352763191531937120614201236560035400165513191414868979472169485447904915195029041299054417242279543981361107368596159033997112050800733403206056152630685040929788171101908053437516668157180471205252621944509479499794154713561354359368789400794661758160128468834166405614976380442735221623254138673292422039277868307421398751220652226737005027898784144580495546198499471432878203592947300609496886850483522007236421433424902874922391495592841833188610148983334561379062192338776716361995832017948438534612408311416341394281276454461543917504211476319516817181352475026503598778087454464091739221933765452158822906863340959309486402932253427019425800798002646891359974748524101117355427763783300739576771320929464435971695331047068885530049599163371307528388098930632095546545207597317318822397999797840354457811383315242755535182063513679219470942340898298859528325749498360233248809561340674910892844207807553348656161941287039992208864294733616120192313978217148245903397924647369580191532050540727007258786162690181533161862358785270987238521268893455874587278731357509912691359435838045791520917374373634390253630583320148367784403627608349349081457260067983472131014531692291602524004019505220783305692319552293047184271282870691023014806205794999397859727531737809067014211631917105827015079277997636418266558833906740988759328776790055606861310767046070965085286319137820678146928755703899662632153365178986144290891361246276987743016315909723913659624622110047830838102201362575496373405015116291349766421767989492996384182753882802579580696232338276382486581051866639282495383127357874626076881544040904874047684695243711540387955665980428811911452194501376298064870731639658601226075829644603965565143210599565116370701076276727923018451115231735902229560963071161584389766698591810088500150665779225153300346360360807188564919516096390706308666020854938156804761485816072019512758134560696156249610047674330784870931278455372232554600916411422192047856564260499456526711015194483897973472242205589296334372832054180128617819572322450046483549207373061061761060165911236814735614218587140905035013931933756892536561891057996042776943487045997727146896278058721862285389247439150397017423188604069205563641941560101436941081612345010434532299490230768273802118273079297077807780374757910616069704799341711885283008087433036206844621309103758268369833266636414884988803508648898244464135619620710952946266589190078273789570592320366843425439072688941050552238194577604997107923215835362804855170037562497150769897675560407136105162579722287697385515573133657669290880327331581836476424936595389242567690173117027193865333857796742164679488972109604370365419766341262676105069937037790785125081751743812220448213191943449413460292425670489554891506260580707889587448376980152822531306760712827306049932268140772912849097117902764728294059323344724165484393894140113780589391422589654022926759376868920902362751741029466530401019995646007301285072678323884144432708830385639124636251158123528957865453133071281262183592706538963807526869420787979479119785000909156518373115604301656996735041087920663925551482254845177662384815827247235999405247456223900891934133184078764433971291776872527462049394147665433421294307453060763974171799432376685256586349661813655801696870226205169091168172594787014772028807100258954798143857527110190194369263371716796930073075783736643242165575260744904861988237275551285298612027386822282740236172483418361799762832855016696933870451554355283555906875522676711165705643518978275310668404024012419690733600529324208979853410750095094305805225098340563582437227202869920449484565146956377598701095700899394064067643321438190327462803976679183248386227398201930226274176409004406283271594182043252279994588627906730856384833352119332025857787801773168862365400918976130961827214029921938642800013895421296791763523997310397221703951556516996852060132755224062650049432521681021121836493130003204172689992864643946254388336776552666773608391240937098471195855615030360249575590201201929799800605945513736547198945039346724158023290745674855781872643420818347677555091450162188564041776763475798828545290776427222124555942664778045556171455905087662824265313379495441553347401362603838998695900194242575917960913186011508873392441554940770867963222710448312817270234821765292556427262120566011531672290571479410759977332421102332682471608761326522112966467065458819314530886171139504027217329523431449281665613099225535210123072441408279390865358469767477672734991330978465733852815654452549115634801021180426730573429245712478689852984043664724551864588932609976849051122302941212114160618152030109052285754762549429141199994335313646105589847769211471296935887425835051177615992357242493858763697890285693871481504165938592345976630315855854000724436160759784590249929869516417659830492691977239356623338992012489405878241398052697268820538553802254725110285028753841473300003081601275875229942996892491180104780990109014843085257669932801163165691089881591381063137973676947927054914041011529658006748080288994407140190669773189916001689002542396172970321441355893681230789721703225670624944163763461773217777287058215379866021506235396627878457672454687894151253932072678657572673587894718955216077019693651179273557688752764302875929512223345973038321397318772824414016617851110009720036144918913864551514762007588460118457564796741788372278218912553208045856938073045921357169427742037149698194827756480252228036250761140278361869387688610600067059096593531707664028253223994394981527603251559414644185789895311780755594507727651797672429061996582387245978772198125409680598611887380182965562268735405951557503042726109398932517082289156542009537901331057443097406620131952387165846286040321836559510541390015839859706211879975368066674864789163665666830506000345298989337484068227164887470579811561074115933462419415448272502728782292633416180854033516947063289029382298565929219097059273527709966196398440545381509301811723650602139175986944021231816877455028173519863367045546547370860556646218157661011910907625065772878588866891472232622308263455760391060499268779446162946673788203289532128505184553902743318241850464664427048182213682393435758730094067361225170101223727285164651216532999918968069247033973241265073980724693666621591694319416024986256457300249427888730182413856399368138438826608381376317095505008837748211285716068124320780937067036111160115411338819995552235011672587278878993021877109046540570181448089658750055663982485118644900012588982618288656260313784945536095945077624360454807295187746242737340195065733795116942442382561101977483992005738925347523275595383840521495534244345576074686196396733710231201503249430971021447369805278974838317673439715825729560711924464917850849261059204686718889592075234522352489836707335037478929744375574402844952489360859490846325915437409395280561680413748185260790794522328565661011722498518898336621320615700339648110701256302077518872050844312342975756627162100534242984055410921671453887901352688384509265263680825150712961346585706266378685941111609653682086939722681764682131454822154895065368380616708331257826383305083858803091802669814126396475111893799893549934587992359440799033773692122907072675324906609096089803023648078723003672218394542704325273475215992033778083205452924078687579251487205646763236090227153156719896300140060885661258888678711361386970644620135703533601038607135355443461886880466847039337208119567077463689982680689511268489939311576974931608247751003551500506283994913086917485145014975322658161990616142010242809246206462642494113330664614637068313974312092946281692258962505630677781003777097359848354966516728245868572155660060958449179992671418032055763359293258426962064066549843090638838928860368781435191486147534475886614751664160228894086776831019988131069696092266268837720558108641166232147053102353361338613630975803800304084435125802936999139696148196557448499544710719736039960010493964269211980976169719990152019367326314313629529178009487193933679751221770317409151210572530278763725994785506796057144420262413505596727156605030034798405263678281636423269049132071994276205280187237823835513068098309569562902844322357831256858369243249523777328321678016718253147023755231456458644317437652495074654975615535004072241133475022655988642263749228807737638196326072189826006880845700444936931235590509364260327796849041653692261039110616870137029722137417198216040278124012955554241546964994956377335058926076903718776418145366193615004448575853993979477353042212262786410750872346253393323281211864156525354892262288676423035789754757181254280212155386115959604786218559478523243991495363634471863463204944036229441406558309868918636146620950841635056602791532242139549468485399181149954155145959320980559928016735755128543093303585686003431288614219545184902628123722159271568309402581688261902296534745499189418919013227155990205506879576051252241121604470120883561745488270388823470697296842755857421215279268183986980312470321452531669324419189667203004240237710855836044869545404601275201615921720286325213934524103304036513196120629847494185153891265386980123579001333612609394445786039777147115238551628790543022881678822410381843367786819990020011253844691278911460205821032174615530544827516063399696514811550984873471685989277224660956966789314921615776831762448022109364804116122036505244501713709832956333650787664360844569880778865456872080662307825985246968098646012555850763693770211378596686270593892672376222805927626246181469932944785414051628075763181217174170149688591865587726578249286187566635787270442987464383395368758883388843501471542344747209662366302331398960347052382701040172446826354558805163996037736157107108649237330064767116104026388698078808305462545843372893679382305449416517651856394750834420576710889451171181572732460853295097183385316049389376182789724687632673626896378014119818379507793897358482439563180262521501807517339383197521694215925573233974731351516163698101553321516988258500802651101483266867059510773724268634979365335979844326699150520911325108343716887748784018494867460494883417848453752599070050270916029571276874607320815955503278492463420820772998225857286791376830248981325468183025475238541889718358551598871984367099769133322395333879235421919277893094879117524921122959476829125425800082728653049595586038063125332744429013321370810685820781201622695579203277803116198007968325678034949584823308795304242128168998923911809531096154577143588500286709804874140291572002833629678932459172520303158691001778519102554670018937324961844717962474087567168133952888944780549835748237188553698676018812134773971222617812938827512372052588261608651356258174727109012091371653771177452121436718581035315086799558479783442911042230713268070033578936248881367396225641520565643959058983735580911792359244375047244180510155991384655642655965380453558403793856291908336720503694852520333664322003212853541775451957193821686733249028530011971721808719132064476684319631235297516169329666802322753651947537423323009281933307055373677511227995013073148692635476322279802233607699345373405896081901637856517331507574188270227236567858952116167580007980312524754098008001589380973844191835782037211303066285412793779154245805937629269365174686225997961262847774303420336569114531584172918074796712243438459180833029292076325757096384307090712402723104990825057634283908633273179447058331387156838528429283306608672126518094482141584777330434971926827972973536916373555279130970056461199047097374049958926211022277376695989625767502112047689304847510970746437532891414216880642237290491396187011658055984429997660753840083805503395403379621261703777648073095379738316462880522833907778890985123093276683909823638807189516144932723069728065100720382899704384923154294937618090665846820477955278585575642741164469121147729554668249865078074793318757993919663574583288084149386335648750279370293719253945383365354315950595882882070844058134438684731556553237768113295329345579709551815534172641130124524684963838499372179664818114499531422388110049080988133611282062139149777078153757523617100449379369003592653450580209796489198648634888506417528630852953241226950798201512170164948666811104473746978041204937894860844434093849842976279886708288968814561274689423160667408011729224752001642590582463848278433273936931849975104272020375807157974165580535039347330886450229940930950786760471224735197785228668921784021544054257592278196377030209445057297048423141570364764040382197802930604297087024149798777225347261996418652456728296795126074808332794822456104972167322166940673716176086639822389345607968235586997435411150702009370704996255916890865012511243550309174124121381804962771900243826784416760442282326682484455424559770788945926856367142515412339933909739574717584377680538671564651428563901290349991668644709465774325988529499047177232124965407624384308834450743664620296296045851456101440096599445746885801879164857646100333502262820853954156767628763267296233499999831716905057533345834683985759379150930224411262952747696784863799923107254593757849467093242886412116127389898687369527345996123167831137701197267544573296746519877902583296239254730910796130457591149964946438126641175027196108545356440170683442673110496331381983461134755437735808936507192381576181878023689180777025544085085009594559185410258682086683772452546541438769387891358836938336234626735088320129287660858759810997708712518286410710669378686972137728611089939574846348222601964155660745209527299966967645765779389061657618410043103964727482315943867469891028582083670856947864241516134488347619670162923268637532563986537188360606511103715380130927943323282691040934686722452216656569148359584510440475084389941483151651917974307181384202730466620156777964788023826776978200784164619149017054859681934108736919270032192131090416987169468805720575163824331615045541504111217927251373345217519747801730408549949015856346903674039845305810020372843407116058876320074226664547264865043586405704346319659455981496336125517892237613076722068030198563635407002349255821141638249133826782132086793008148979939118036478832457449685570243963624791400013118834803842189230261096816090330214953468911949293616950388340683194821730014857991638097361319344127355023959135068065549428308275721972936230084225812121722566900573528966294510873057656342030073905821959891406808114647662008880390410285256411020436406416249404364832915606357424899772731148016049605247091097708199097657184779209285219686728353132266028343750152766118918389124065076154011179502444116418426731418324555575737941408961150647047020099623776705284251913128469300170339448029169034801605993181076233326386023138256149831945637830474695621660041748377378061176450820906262497313064168644212294802235325984534231164266066546227450471083118373517147167830932108845731608833318118975409878033709759069094595148336096392500549068784781161043146004240410707986823474497823371436443003660266075534918867539785812171672220235588068098905165918400330103438788813959972306907192563031237432271729941097756142739783463143566596811943618380379162510839178615549722629601317125063737753871541249725622857239249811497034037782719419967839610033081545376714677392977593860223287621723395151488201057781927074419254286441083609169280177403167430584255373861628665792306886348309122636673212122875366185478409979049658456735348090380065875808357999327682482520482767422313961905122988597121965727962338454517620804440768219142362677176186885973410743526574338908272426651376546598181671305486820399218576704223293900580036790660926572621476574778996226652703543956934295635024935373599033816985488833291104607180320991373523311331170681051276050746338263852764620585879441170912833623856999370138982679217365704015599672473713046736190899230612794470104823744077022973149954253164247900128462330607613914292232373451480587783663773184236056145708333679106747386124868881922511869647135748952320280543333850865974909749065635682033818970074898857753738264669729815724092566929085151383565724518091211426521923885220543639851352036670086547033580749044328093792948838327781877612376455137145583636718540530068214114937182698397273065288641071145437576799419806084549852622023116222521522535140912311437623943561984476079082325524104769711927279647357200650935830750584202706693922463353199785090046700643695545698577643911529955912616738774633729949991338214542564867367702066243892066058377891660032343143815662852233889933608934656132110994674142900656647153934997868351643727032250878234408291410266518468800100500384442159616897360820163344381627889734244519147657498050745927190008951272729025273228689256503137770673807386187514694348809251471178145029892287881096137770082166757527163968440357183295690535688628121081104712942745171882419831817405342561061318425044666965833960588334836014626279994616995387804750058187159454636381530263333840705991292489693513240119319079357239696560796386821654369293576567639184695675329616475206774265566150923778256404764206681642942388267363699532576890519236010264637572286635013566385374617957606262075812329706803825589873236843772935207230867054190184026106144486432270987893725699680731384162106767695784531798941343932932512980862735893531173741942164209473778639422177876313248794044341198168557073535601459596407547108862147130996501819054556128261467296005953062663230544341090958548285270392107038160805020645085387864780478016227046118854346323959252237254116657918655815759224453651234365651851048566717677194348714892724831139660834958022211254954371795138523586084132749915806227883763540461720235881329093472289576137719971200347161745229708817064455129357824520911439758136953914335365092865085037082309694181428131830942306479556630140299600527503455050045541504874329725602097403514020386028809294683154800478430210252650563954667225567884930686076405186794255168738318817046349887890462266969286863498603753435233520654097017500668965365501352711637399397559675811156258637967196922200520301909537850771829687276152628180915364576809215414305210553538913413777310336209126605564689601053072212564290213981670142377342768627253431126799799279788361484588233015028574338160097825306525416525734297431530464851326965398650980535227754922736945849546401273927404599609997985313463080732672329939306408662344681283157899452129067222764182106861726436090893125879759076695699652246736789094051172797532855979731619500082695340244720247910087638504765800640319830111166446175376492923540551928312254757966085339475622669266845636736468361708480245555296480401401666768479779931722215089044038860180394212453096425280543425224293892198291512670018520520803035576027705708837756091865866958656995558756426892065471164230975924267935952835470514100506636552149372136550097061442661183830062000311504864520700066058936712235230927273349570418568834224573100559958641252150715689791461036586647987696598384911657049829479987832509311003940006346962468218468254481012832508260390385367996909531490529744606943909388681879510044113940609766253707653103568978261401605835743704629990942692974291732329928951319364169676775693724555807363025247292851232938853993015228723082176734583745616802110598126619953662712864853621981710309439832266538858387361049767311026827390151820324219752001913307985684408963540655028232572956366890491232503800022401859313611403597146243645104795436716797704211605732426876403747366912704556965653164808185820358406691009704824734054235539679837731491726191126393994381853920660724007077926479522607825351349336388276205506718258941067811530185117027351323481176021114538252010853930438911477905675509554994041310936308404055699273902525982653057431442096274644319911388053358675672691319296665965753755353971109700016622600250703715621432691962870153717360674834235200894842616437776527895820202649108764795697213764875296709095944832382205867120082106925527301994919262824902854967780734566252705689336158098437362392190807682040416207191512721140443742623182897364561123560951960268692476481578089403591517269485915326198602963742241175472233275472573868511053349388301458463735586358087566148120429003663756447300548216433776360193324204437480224019635306265546686120143436697743044324579102596488163343129672460818952435245348243778980738134898762350543470745894692162168707188779986001781934942507696457820979864574251000204564034028397556239850524526808983971288912910505805928590100301626556371621127409886183112684172879116502641238079543876088669721842382784517857325840924933030614131603930010964975836473081713782790309373656668124354639051049671125072593473425930528410857087018940950426096534917947231385580517166878282814904141961001365767789617245277933714525422173337817159158029334448928451668846813898330732648533124608640026939024714490550423394940623084622631889131082929766048115560662065224812605260325071404249083424124908198719993374695299105892600343008438067756719651631082210478160405024888281140860029663070591554472306022193309491437872713738350184548589045138196451631083625826837765455513920333662424269644008545530798055018833405422041192619974367707408488344961967234390600289317239805565112952647522672716813273070622366055009535177157787778649551902275931942376017988817481382159604608943483290099378004620236758472516628670192640586179231646483017524471400367527599649084661944355388879223003293154879279081001447236878322517377449636036025259944802241501926543184527347994438062043970567425821657757394251156648387129460639393110701187110538520487913798659839136750833796304767800273865930816778117703326795679957065017506964150716524370484338835751494026249816043319965897541286449154411618225593354580926297986471922576165167348006519703312344422138629861037248127753876243699540853325585054460542676393715988624049347410814358328513654312780403191788972966639937713476865528547480428517659420784309987819496870740832876066598373038431107952225519253818032235957521022872313876402217402481444740038069198272430367726718964893636002193355112187692330551709647374497744837459938474851992037875748099036440422882722002757501210141219068600590777266434505600136689236775088551825877830628123694354193703379716290789143313834926406180416288786025235093644095784239901053805972093772112063301493250244236574992951778099545630367086082498731715752642072991504387984626869586646536183916858732086899939774865397605989020825097932764612963404834534822527046296939603664256546792698907351151916563882271852042464847560673898882306931535370922876940320119552698259099118661647432719328934971920744613852358922717003389188578935513803724756963088454910902924229882794163938458288391154817023720899572698529059681973374591563007397442794073959418697262279375603813618432138989561003845265483670629244542462328265849061618889392710320260363196654320066948787825512759124487644822483820096368766842202365097179718783964192525743209852874950723362027456388405259496469186386786719399713505202543313780613023611151956575923618763189823053620805395543530721022579337646949862029349624715234623705766560418080451782290110525338739808621590498363585443360114241174744049058079535499897343297697185997746992605807572190817897751126668696046906735629772016993933092794761752472082562483941319180336500993893400557766468765335953610897683147308845103462407183694169994928683902422039289648887626896547866380773066944742825801586933211772275171796176391144670015461265783313253244473201218451821663574434772515757152201517039467201705699134598821377645166417486175594223928592613120493296392755205157559084960363981694917233127368312592481601513677363035127320767408196462928294120908782014861863596188935376919506508246962355628691527498986829772112913379049883935690198223202689291806674537938138188251507736510181385198033321817727205369044637138956845720007763774435040274047235326165070631919624743932822691571275443660525325116686324868192084774673831552029752298663299292413641019601761422819873451472319344424990904499401221956608951723135020288328303428417557405589438912537235611734839717087770620286070400410350372863206357145067480559486072666683459663373243946712896545011935804698611239407505698597168732714498261969789605668823657549373772013390194457273383511002298076372291128338392155058079902249818280549232315767765804030018330496976123719275311511749778042954951329338702026509456820755685210417997366171622091935809277915779459790388372547107100517960920970958435219914986961521335137066037539722832724606371311922420484948041238577772094037204809828325522663873270139848041121188739799459127037911498656164043468957291089715432064303488476178147982177674885704489337299318428185240397088408461963379279950993761892897327512822342476281723810108434024567201003170321994954378329066686175376021850862293166340583570434195308725989382524584037381082977554288496787869787821101478538171035432938950285772427763348795291180102732448236276772990464830908733864430086065745533746523086800612739491047033745361489782018724165234192744839661393571963903307668335155391384822991669115817109606725277285683235582674554695495037738239097335759833518555137175451204073510574811997664269095863539088835622058531438939540871435234936539692735119117022881328483911986676995086683794039367235135303393240030023005009835817996625157073017802999863492083904094592864657409516644861635509542821223255211291636703407960076612784323318980414487951883431863532713060969845304711513587239671883366743697677076349531177318676634238873099411774877590461571534920884354395300373010239965976443831829152903863340395842351433552113339479283574155451854051642358966302778782324397296297485408641181922450919261123896965373922605557837843131297949101676418926481755968093258757500532988521709569889679548169696162913904522122107333093409072211709739661518935984598708687441643299540505199970175835948296777911023029167479636657080029980392920887033252262282773075044551793328442165097099199382333298558218719404464112698905071031090457071877683148933828099509959633363148048195747389297858546846551764652122889007983916352185434508884786050747761576681441715034702984635949920166051105426998508417014256117747368388045055912060747199794216861518334694638832615476951938161126913093662162831599320000656896534460907833465102165579084816090582083022037887349366154514903418075808743707453378927663117052441777575934606990417588964176319520929594569306260165050621983380591076962372710502450729922722762563449727791725066721612443315354882549060095190368092727030511624045721035323639583593202427633115957928729701620171572386426442250859243439471873530721465409495879157466384962763369922075572364829776369667869995671497808204185270420247678222115778156893308741047293387039151167555965559269586575734120944617706267345284581950366594463475484273462105972470958983988369428389710227920077092044415676373908803906086928761726471718514186878764517150692487485953738043284338275652064289361529818321091709157823901243052728359171287521626336799755593396017288860330989934212745126242041828262842465847104651803551161908604933710627739667210345289945029511831348406507120551946628204944979266826853077865214141346615952349591340418290119229334308194118101472594732595802160768409744178375856244867360127696120660156721542169471926698534107592470898412885571081503439854546517986281855825028658052233719093747205535425296076439012589027182651817767507327666411338661658770217088327352849639038504739439629141083586816637912880563837590439973088000105348538681238308998165687237918493238810972399138422028031875551962689566613836552728344559698541253323446864774232875910240666356210213906917466060502107915589305496709804456724018632540028476888041196948523112511071865482039034770142805821265279634056987699652524662436448763394398280458308885575454774888071046743767163506421132959032234519722070604427413373006964586133910297422011981186739772451736435252843770355638310498503631245994291171549006648772152109922576101540775501942998108969185934832775005625835930722186784741935856687107914460608239345669912338316480355983544868029666445348487005689431676159048536667369829766067958521887466566715373687767494342168139940914427057862909054867102179384739900501877605102288351831866987634826949742599513312789671122941484412139718789005013019321777487354614435881130009249248003691774267455389322439402580883502650926257469809534475975013744686096277683284232075021620890424100138759144752590547547088468630212649777351574623607841782728406367629517651874564450587108484275827042577045651691482068203262611922473684770873079043450726114703656517180446495672286768950377594840311394496280230357529634564357307079744191461802783163248466071761036511379545249049588480561895827649747944201620737525878512926317942819100781903030620309194424460798788704131480177196182139039509213570945839057142395684781227858673069878404523960045189693838789344163035304082458140618420415071934268125697790800193344093163472165825279491094972506455045658565936887733717438860449097775076981870910388871342533284822449900965715713368420300166565038457276798408368247371342277770048894426470242639618337553230348983467946697126087644322960291154006310797805669379529759869298569339426157137467622934041146636002943507379657203787899107657351836824387592127131159503007549672566679247938281600030919140192803688713938125270020265591313275765773647632648714581936754563201968123830443871413427110764647306237577058917062808981428277639997941817806305867920118408710931773998541957083834731503049145071659222831476244759281120501014890112283066915450855811578238896158828720201112528601598792016285923104175979388857039867683709013283394997835876202177947509604040072963237884091416730861180261205699607737199146361068981766590736759083573480685203485430457740378667215260979172485489039750426451747716689789510326159209530984779861865242560999428595431218330005554020803533410430424624263372348216357258354236729803607019255089956852463552710718711459517676397171932644431488159046251564982972310504125639692799871104194837052400697434383728306064033928108854146562347725054972441807223586573713573290742473214494301477900978669032632165781151752654257216825455244286915465688813051645891643258446894464341887062847390912247860093701314047239461976549759380999998484817363901935102846493110283505985627768124854732322320233284214129204794927241070957918677684019546099674088775859116244696708986274636071951737672019541525743723517579573282186523645199549988874762690116745730481287151509247374462332085857815914141001350187554967392095121833378936747149474394731065522789504826980239797256654211629537837591125001172171464093290466027901376534292733105232859065410714059954685225224529907928822464987928993349024412035713436354064004494017995899248512559867818914804992193965668688823755822482609332210831288437695688189930557373178903252850894228169543333698465686735588636336199732063147691007622568432351809986197651776425131697966483942251241095539693757456233153914035530514509051243352939046052302094015334644239553587842082648622093739021714164046656619789390516626595227491340596795259968808396770835489998394314954603319899607189872077167079829885261608600993893748175256798158840549274696552254192861654889579707351236291313249519907318799272009110769271007575646504094132351433673664644513507753742510524009804275004674815552877887198975635824186280255349951925816966665161807699763297848576875479492515920450788562374373191515914058077963994349447293858376564203890231619492645637679683142666148296151908332131237391473981949391835224513890763051003194062047532967707273728010048090922906802497577067384653609924539434358533456890321099227984977754360151756540312738910818658371704251832264440334285478808560789527060841026087631951836589143641988582413810043089568567944240362869795059491796834641208276654453806074453573811849006730477785489300394082742189686008062239614592059857818932927292223594180164737264613547228456660169826051726758494792912069724113726325714333380073522357756936102058107000366079884082022051003139984257047428122059498611422812796689907015818119994148988813553368047068629195491818259884668684695483012433666503465801674505457337313119797126763858214089763936046521706249819743817679336383369283934646573899893372841529030079996528041044664435437752251901133075076485122867538723338169924178650842109923655560919031135413906377675473888937812623541837842937597509573749785294000741798534686379432581310873857253785458063330750546774892617475240603960433664062176641292089610004905348553611613090482139244086078855278910070127796751197735379265984423574769610562262028418879205112718660598722376001598727770357431651980404433139862291685911434850577902707002032189613312691128166672944975434428095893149766010128253628300352013919143026284776488745313332383792045464525448788190561092913642618825686318896704330011648659011913639137513995420864674569949102880326700284468997325578554876887255684292071097386347868714297404656877507576079087004526879932136300330674705508290023230301685041535579176034555148823737068676093553622828620193697183010794128609729934053882926987801137927222082891852079004893307290684684286431891637829178277745220652029820742809314589996725506760911255972518123262849189263394086264067237563682820807063498256600683005331768629732367710536311867962049452384484822100683804291220259526179780198269783590367758704110752555756181162017945454542625184836188135416284396517062027479838479928595284999680944591485913045152907016591340993353519962844828411864940828331427865464614683151259761583746396629765437041503116892652002508094911303034533733100928356389495479938986660562889490889191869058628837947164858259823885428427736530265752996849128750293972362141545394556746749047935498681402238591335448517703978177582950453549882399249006977513810026389414133492336355621961453850210710337156120313759738262339468161225565126383936556876642950444523261157308092947539684195853022828491722345879752939315308770807240882572414623960001618188382996642681732535414547971421301414987314712011498521288836818504225064425514397699031570330896615885960918908134701912944021018115695818891231454646692645063565086513797055946139853921363264983625883627947415755005963530951840776346213126992825164316121225913888701431715919801215167613684942240898027586526894506855080469557851136196987620712003839385051410257655450520362563155518946637794003266172358792843832796973592337293049849821181613512010304938623899145627400059466205064815248873041812734380923485995746084446976078635092063755085523995520147995485625431012421924339029674638855317696782272685809980139487351544068769893900717689494064472032656543507335212748434880347333415463744044231273928107106393141630010593563250520330349787351969702370859182030402118220364245299474156023562491880582357780418124355262418887740042837959768321044692034744754383590056568325904213947235952556247795651478472911527541534897671739988606168515202476016763949693749399306262543789851088841919640242449410405601958300944327698784603227263816410280841192888925641150142952236619857782900792943895597633244394160514847739013328322299063957713008795640828106922606227174461287758186825330114089826987078721908808708700571943547771595113484546262679753281452858649872045270812817330938690761231839451325709666646798738487890671901206346174991096263476170790542902649997457640026072529294221626882566583728831782238623509149307044077510711057508105536959872094762471881615438587663235309857843905611097019787146779009444655610928675237857956197560042889550252372548996700923034136748213151539091942996324038869868201676037599153166231333458604466773360908669486552009126664524663920275141885599616266891305369382340916556850026726377575603846101256237022099496478944919198030070987950899016552822241213009411905812110813807847754088649681939268273758501718593492788238549987195124364756852353098771087430630259063381703128727852756123339355242921315676929983115829968173186861798472888439972287750639782176235523640795885653870747875049515014196462467433966818836567135991147286124753728442814526193555996898982264568291748156845407789236535722438504155361917666050709384952152586992456922306066066591702383915146180549517138946834553055295660268079496232602880477135539324487774215487955481386438844205799713657772292179885409978371937493450526276516766822715149851278398539051790864923695899048182818354058521521828854192463400224461830767070592491039131313094294183761320759990683138893108791352051642889292090207882875924505820333024553219906383624714175721688819736987114788725329827449381388191738125119467064808878493962127398674799686350828957925767762307667120240460111123324484574470533645942138762608357049799347125501550805277191971539526406785169205857785849092327767002957448239488190109146246209594430286711896678920873243870273519531572940081423785270601620464498595744269873279683128969763211977501045937572277358188062191982941045979632474261109128654742509735561507609452012179469253929526633145319746603545686711890000613842480744637086259053460258990024453996489292142838375401896061152701574232411761122539661470818485715684492884879766300638166413632420782394919847221717854811780973653080176859947657233999914555898708442412691620095677545938195268238633709212415266055074817468633022079940015954044263876333046621951764490565504891850777038965634870753550387776960795343401781618926965296961073131470388419210186770944254655980117343070406716413062466802383240220468984113950608731510424004165017337841883978645172192480695229766781105692581108230737561873369616540605006419253016073086446038987402396674437076811366751835909656663817785549965706013681737077857833074688176176028543588075950316875825111838390394228108615965024050728303958202139942906858951732234844529147087767138925841562910353403602575840880443920203855172953276841348925433403156007128209399715555533826532109775963359493920227129408314122801888523267019927422557084910414706579024041959067489428659950258036550559289903730741331998933690982345184453759773266183062960689685662957448638794388591399553080019517978489211276699471416665356444424351943140505246216819268382793349130084717983466278295232747264261497457933240626005362378411132861148021007517396641549417367232738782085520012896484635748484502443779641816034235204952816891165869763268076388427570211583990396287917187966172933230519731387427821416158926087476924456829836829631889892609492040079710478706754088136696821678299109864142840377296423295365464586137479864958692679373740962659955137657874326063486794569966769969172564458511367546914316628562446875474271948672779882581475848042119170804680115679871998749408690652152317972236230798723601496692678693553877785280855348395509820894257220844067283655317342737350341313880863417270097201809589531527313181948691823650531302345416086347896431223130822458573820180552586940873789530871626739679917724652896055258878012412300757892836192651470352440357771592472703527150859663546135345087137401037730047285914293272113709831872074876304402054660660927300337554278688697017062915145074321043075900964873254745905340492572001865804024194356086775438205547139157153008075395330365396922927065905302479906125265597183150432730685359546238155165746460927877590837781108620545491659721185803657295761780314718512465754745729929399964817129775200166650169893372808353018903500274086982605913585582271370056177561371225894907165381364817048556242636403531300592041944684047883559117840052992818323348677833527428207257631066163467258933707707702660181485863026009857559973100107317386326526378630664089802627956070804764808053003450678883264060317755568296714216702811067520772662767403353508410853175661204490600094570917152234467209923987038389990291559264361314247834061037629932925787975742002233491407284429047755147691784080627949915895799085807866684427924218268376984983376061540921166712577374939998522505777228669435097213476648688253079447766540774144264866808980705196088870833310950593102459606644784355698098202526275635983879932923177038425132503096820222620319506117675787291704443146757685549978615943498619644300627144605962811410800012763375655929464937316672450191489214504335967886176086743440017844366144168708845879663823373847280455661177734979117037061518316497419555451501219940996943934895508816872017450870383958405694958274421249320626062011607948163080025545811320019753082984932058611925405047903448428507713331939939225571281794656805376165377933201685815792491000397173995224814595238756569539718684247216102290600891221103086067901045065321429739068958356082265274155066307183354726632870984666793911848004568885655361601802503991529663848292347691968317231980352258264687609501644365871682954345533132811601238621842164671220463847800150677220695747544133859790101368103112898854204531386039168003182256063120792496385082982308770327478110173766172684982547794517405063233545889202990910864366148667405245677010951599814199509470634445016639092159757365864845689991081790402016274539739578488942377339645992548736686428309979322570368851874777552089181515348712210276331181069278516340257522277309959073672883399328165925194594481122797636318808252707375833276525925477003654545131549648104703791595891764866889592006229692971272150369773611767945366201897234937665597840335337538498796065977751262103365877945920095539171439143153041520433176644094610099529085042442674506605528508687748624520071048202553044498638923343850728052489156411662681291565318659570880973775043764502840599586127028769117067145362881458063609420512754242483529669804523414371789236789296898519751015172179565994987066488882840834597836184832983450629849454849315698122158490365699058755172450081146957400851419030270161111906461756610989664159175415505431312534614629958172080925929587151204468042871369120333564243178321597486406507049146192425191466446227628824439887887849976868588585242630017975475390768646971057734551394219106844027480557292487720438189513428002150414902044072663857957013275506580962434666765925310940545539137571247770760359404830069774925667841150366032482159710782929185514628148118730146217885394617459868402745352761640560202465232970238894940763869725180115158666719755756919079631543137852010963335575659856314300881556119922890275290861909953005198895082571335318900587668853977852844725686781525438293888614167145562505558601418408171297152694586785784294512020042490394219995690608382153071130725669019228415238040552162572334661926963455645656745719563781166670748233504860281686668212071744595618241677599860605949028630243525976999802332412383739946992823493416303696414711852921355131041125973923728448024734945001724089872471311700705925728156553061261910422218181188356372524688227572697661847527696833104351886802595712529335452191459449085492042675036482390706422872039880849987862523624355638795407041749716736016630093686493155017720123243947533365390817267742191208932845320247317157866035048407889734847383683196622029520299742759003790597183875262653962519413232051887028282760864355882959909757030566786001242274181515993330131013401849680484870901605140079394666999756451116730067221046926280637793809400529912595362067792508606970411112059855366266337491437379525084583023734475668052373377183950878761129615898770606585671528177006836661537105016480217406484447454535591673771698667864779608500021717226355982967190149722955932319284741504496736963382455529147988846368709280653035043168894124709651915078846138772795694413682963929777279492339035963546131006310292960363284182829813307407770916293502689524954367268907623049565938853021088988667524785393666644845690430896173473534532942111124408623832301589201571724575656587407879774850189178555337247778035808155124270531327535506212533686716543096494841476365758222242504622252598711388353097496364264092359015105687723812660688200470033571211460438544025858729158589379354728282579509725055790541939528751437611482864704807398941063692730947302165835417352120453460214539580452295637938222215105518150461920653390907998283378639531462879382758257272958800671248117143879576300670758899259564331519510425239209385901344909276108991580016801577462047248504187040504032246936497241910940522507903816865190558365933304049962522255234108612976198476600384041531208089916635746386314829658328756792476723334586764327755128649195631503330548814691212781405164592236520538750503145430054054602244964374225012979638430754374617452802994105254423727153551869442943400877305391170822027188528309169486493394994614024910982135556461919460297060544719312725871183083838353665598223139712093749138929383182075825058616967960754301802084766319639334532161064884761983442982952598465823034477184898349600139819326593949399016860634740883813946530214251850964084344369183070071036312849955438167445959828206973094849261823767695967684903051976574933780242521789946432829011580102606627002350594778438568765890642454424179130954150922017208830049432244756219259772612475844433678677619672121316433512041926866074394707881710551992275036719425183135634190952114881611346132219336384663109258206896242630429254948243674647244999218328331807739123092719907428645833363293712174495087793694085390978745530065708358018733206786310363329829595293535644199868591625602547913854560341928931474713381679620694667066558314532756626660746502927928114884983541168528057455229881815966673032127258082590572181085391932009846812674717758686203401064280498905830344478917196939935301736961112397926803495486607671270528422297628037636923129495125263064868994040091710232852486807052473034179458036334851960420874253524189572227945121493838887138331005332741278697015009044060592826939198364520282369117607575733535281889446968897530555011908294982761765402193937042032689658267282789626924946744576117666198803834035325329824871902476600604384660641192167635623936177321825833175411193249495320824177723650442267887003385441949263038729253604321754041757097874233162425511379254759757639903202269824048096114794361206462568606888848243810559570104597381376359897001275156185594576401538559969910547306179342561681411818101718280903497782864391972025095179352567823668132337696870709311515585260171831629279072913872171651407391909026935091146268353745581592348449588607275690164890202051961366860779747688944497170773830262975299244074511297066493223790446702222781067150899797805968101059896832784631980141801608325768784162162683151281725247261654937736002296275667848672458326403792252038465466134360689993275300926589250268312253308700440517070674296764840460183716146108638740422858870866563229828942250939532085494907113885125652369046669759148557007884125164484894667869244600572725427820671538145569955716359658502865499138399317314226886274201543247842506866123564084959863597099680753373929336305630967521837821187704847315204831058510552058786387351029013344228470892716929384849078513811804703299590363133676179853493592759685129953890379582935773061231141278273120726841784413828546421698739180834828865028562972297573311683519940304260831186273460863132018877634722521713082855408166312690923200074673221374829759175251539565331697330958361107719073121001379082657648692206016972103154542606776417323771305856906558112502741012187092703577905391061203245218141339075495136271193651368513506433135185293623459343475872332885926354623884475930344374027788340456454015709311304360846908742401404913422627578153369990859342655683734516447024316588492701785613004611205497919691463288058893479533855720731793295155484918312507928981479385673456342870280805439178560125528501845412425135801579221732706706774603697877967913990468201093545912432383374440107452048555682051598293165475663460668510686288312274848147501326557871688630829108182307423008093513357443694692720934546245881923877564083338250425068807943233250721875920233229627553806801342819525833154354170050135331949312865678342884279132213819572471961578255177961265285920574179121175921460889759090319245615462566889489703295702670090280199232212712594991638573653490427210940497983895320189069599105360740101696667201893050365720139495957245965603537350923944674698942203917442646225911296265412948928876913491676840991176735236345362534673731268321832514788868335954259693949443793363186055648242538456906940434048888881807971130036429650174585320228782623901288856274484347051631336331750405682962159561474651263756665279755475860152805586673758538932284215030213274443124113281830265757259172422393952469551878088360862434624595324474349977682214513319601530890610637587516522004737075502163617881580893332556796414989341545825162112091115027863102545951177030485002984506230743074897945104448431016084466802748559402098514061083463550764225771954195262698556428156664020854549848895645560958211978782912714403286991104057402606287922756561883414087992837174718814434604656038797001857583417566615008954810885070332096311209802719051111271887102974886495409418405910816841269787309151347897579921801421510834622708184389645712684029966083251219448564365497353781418505340389960466939261340843851122408085004785952778878598473834019600849956333863405486221340134312328571090417309928061367423298248564828550196581473623999673042305314133391898923289868565855184970964375763139793702097171092233281235853838779488549688014931705336114244558177318323063055999771804869864881081257346262344457540746344374101837493650065293771776538820935549665539179768522452045844315180923784933916226009989349208078155163770443977705283832885064366461207302910005550128283732739319467602145574431240849419083983829448482903210840876471370512473901212014623394094002713293989198545213273145809876196036190584727710114630140652152557549429746102950098911199800003267574086248710697093868875024932714314905799352627657400916169697503020962350852113785169729231187409835817947232858785519589025368923645197623400125292052715071109898070705491208748594692757010469534971763540948772697189318814891744841465592066907354579594316816297679201421814072074541049277848431845234217395276291017862231045541649703808729362799775158645054265124383967056433476511867973455174097474990735063708875910917204426323059836975982814116109600600018477921736332864945997731809517534531891342288827281416395324927392252807572541799214688955280195303428389729043693211990103728700814159931368940187203949536858166930272957513553132240634773786202584024766356483972451647930810304154508935225353213824506055662127361472039178824261678605243267049924027890951253420883222508795549175175761237139748033943326848266603087843764119566771297275822235270327179615040365695222630544273538937751390905601402888859564693468792816731889836116616837135186561749075579601385804165249437764346146673469148789503383359560797844895211845480012026449362102304475821148670047224264983637271147436998781529653402953176566841907087773515538971695949773390627049658967834393898054539819551055328610414256697714301714108290110236853830952049345069036366251758651340089125126733840579089493655568147052219548480096821387957057908547193528975116978560506466183800876858623323261245109085801148791774373614287364752964491739436442874620168804257779670618106313288925356820329090237187833953203739373358475921168978041089228575278671529412576927241562870495667770307742927132571747749170355266172029479267927925767702850545502176831643769015034093895065085837051423438415651802771659770370289466786156358267758180761582141872744828951694068758759234746585079437845098883201234149495751681244049129630644680861993323776165489308140618277932596644398293931265595728404071918013176919101722452949817790170173737806301248250602872883335723077084524655739922289508404716198096597943691227403218994740189315675738187410337927144579620956984979261740297623457733652966966122517456096494552669044729048514634378850107658040752994961353320966232578915486413087032381333519338399666552710027244527224542638956393867348528990629378602400380259402852328959985860851300133458316217720007398802727926918987093775983003063764960602663852790592128919346098115207201527627835851425595611382891719887991017711188003001756224576932515447868443995950454729294458311821433646676485014835711707838239406861234028752040283786374166120010370273579235698170315501608698765741400908105037673466296233777458218272902154057201634184886013923903787917813677533951118605033784957665628435748106557672607681741323205484414018600213340000859144194841134569892299840747660538569202313530842669545588251308663234431265538373001481853673100124647047956984775125547748270713719368400380593999843336279514899468179483284793638809193610032623101736406053812598684924083555860011959704753833933748046772054737364329808217690396071987133234442139068089730406363206995206073007864784360140370194229288032743780703941825002602802652574906095571005009435565464266127523933094040512027053358612904796081938074524430595277289526395194518514827264768948985027776258014857769385112808754881068299309643708970011045554895397800991848683499933981554955043898056563986558346162448681366635202480178365627497056397610886046527443206650333299916624785808306296241879133545914200191367016411604401717762604673547569476384405614676802173667151232889908034732483991979659241310646083438304557969537222812162061719669447747185110577029284182930463722645394379031288690509356295058322971853688354330860142459865063270651090201583939690893632341658111682382651531903668590400234786437497960855797478308202774582982157248406338694062168274373119043136114718590634154663746772867086601768799288368609456964000543656579656014812063429729039778180509456598601821254104245031033764478774041447646545827998595818108933394917502505398084793178508758408726683348433033627394440813301410224536627041302156619291413979912067213019239374967637064691435073901894918764465240548960568237660444001321267625807756842474142895791950193705219025954840538630982542363744877339620740723545588588443241261296802515014611226022983235131362017347537601565873769644097141991054463576877010139885008215727370498116122183900213927745262456077255139640715790386424070847353558381519153028331659521223582196407328047095187677331997596714777351180140758063653215906992202769523825115946352236664209355473922657606424541418040060099408705937693966145626599517850077255239600736126321845692795989317769516837174841594505009355742211410413079169958628475549327254348378119321559154015298908860912211723069364481275146589001943803447908096307973762299356375880329625978486534484877620718228046039796709507962770845739614326918493322608859560435427115628830670981254615578443888414413137770414075581308398846006398201841769104339317667909306357734491955847611299521987552651784723702984519081450813421145240353623590874993499826306045972934974479987373888197954207696297887790867472094021539992658139533808034482998516462882365636000395015343482205975461406465152647337640885692563195125535221940037846191450019843699423463671018277147143611373084696469485034089959605289713314595618155287360910928504922371509652006540237885508850963289810079936941258818745386701929534546679920191011898323761462875011289360590463746440618244007997594664498792392538184533636376746130353750661201815847116258414452174745030530048915174667063809910189170503058588564309349404180444911120782915215916600675640197059623238210428427611095343878090024573044811849294165195591648362512665118064199552401285261243988961263265865994785102634884197342215522696209550996880122964156037163447236940956205374761027909846692411474890749600572869904676370520409644127730248569696222219351455796299150154090990620862399849151048991232269051423872971134581349310962675409735501657286140484235826029129035588212770698033262210207068101501940887028338146296111801168892304327089905336213994653419860430735836744360236453715197303278494946727025223667712008649233413238262639129223637126448892467727724672313311446797003143281726148611137552234907605430135360258900788824070824299374817358770126352728021547963025921697856521856716981441377986562679323865770331538800147956594159650036702584809133783208258743917071245982596204298601256685330477945911344818702398290217304203362411500665173462321791930610390656729169459840940106263610900159100512424130845291532014516634107087960106373558828809540672917593405278850432445116716764351979157837136120553644686302372699950330516689731631242365693480855892110170710668293337894200946670307353219627699149537614584352394969744963985001061945954332540384662927824215661934259067884554800473068814349786445423520648789478153159301733724252016690807313742918510281854238636633229224687280737310890109675694404856811387907653046578358828865417519900414807973961593927293510264389651680921948227296932305213071096866243449477014656539454374518641005503595205654323144387740287256697459338143792501570210384500708941340266730694147961456059217794087965343970303486682512940939270567503395024263412097403498582640163862178944261610951467057700387419460444133140934893392924391102873036112759461451627625548978393201285378843228523285878427672329836411327275481124707184229620215179479362938968894888808920650573851325238561817812484592636008696813758107879857446444871508634327391227746682112069414416145773617595387489797024721647906434731616607169610668013880957969773935617275473155916614979231460256978877293304525495829427357009383922178356906973001425139388087608676383348599953458846733710550312848169844059665373845937101067364449440392976071552943525213509272880249086287355106947693828609778821425051899085875640750178697514018468745285323318510162943529915436105374315853768188776566307563923995032554942793395061837594867724943596309943919869571772313478337699863102697549474541018078845947271382680967168977791614966341119840824400846642210536116716390909611542263856923276970481770776721640149323214142814298361255960713171865294750707088432384027206367852686134430444607511312588496901846545204808963643314339238601382905491543342172822282191860912748713811285265679243658690470003418452944993285725558687773220006814770453242242129476585386732138710752026711168103661477673883583084687623496119543639859636879013445471004730707983624105904364863620620876316844928813131186494992768259818032599657790033580078746264775256199777214993263328571079858999150390983561468373832871629750050713659728637497526878694380518750160479097491725910502086893198027995104971871348052192841819402416873940865350066755467444152946120365710519997360879828136737102974827887380385891452579571329914595230865304262733982975473210886667474449133524411873818629583468349768594107926053591970187691180435633645260337425311995220897814679331569181908118289494085675689746682368931115535293036140570700380914275520780839585186247016311078671401514388567601469020843022888095613074374760107449504066254933658810195554465956653696539429973286871019247044186010806678136948798853272767553951977618662799584219615623093610125748228833583257646022669841616654325105359344067918907937265858868035577714450180806429876482555857754316710832601051613116741438392013452537151311451820341226044334724236951434363628349459545065165829835633307342714373701176471486847413141952308103597486472620925377459976802929433963612828080535891876576018535213908977506722156706839298943621391616080468535041995789324307797123704168511564694978254612453536567935132271703364575929692939046936001081624446127795806105582438900052927287512406906804239891970250246913696206294185746896351233308681724966062166368373924619526028007109679418041744763811909115522635531128414674079684031731316425513697893480706168952214720752644131800503378676965597150491743467246227385770002004696711463761029710078160026011786129994046367693956762582545336456234811120365742459983524694561057333394741213730183541426432538505205462399867187286863599068074529224238154406901228663181917229861049110711694211447557508175486600983193601460435375873079810259912421998804601340557467998037398593556015873923825427471498387066365623450219442361645197569442875654162859093861025273179886715576228862547449834461566550311939003700574694911003476008208904457642509986364105132249370442264192223588001023458592509554802872690456206814660538116588847545934984635875698420421826807248823729573396523707749345075782630087452333241363138401508168590296860184494135042242010085211210571478770165782545988101775466849505467792739812704922161096445082109437582482457153944472032410205817661025379585990247965456535633547615366820517776725855670500395355594994828653219764875233172620165923490810688753016851516275707653176796181056462164112076165095923867611207132185683102659423424066617892394879300218650964156043468536346977702258768990348510329618211415449439090563018462361633853388704248487995157359773716668934233640091769725644070863335951326826397961895057328295912051097675328360754874942206067507709848879639992824118536653228099342535847601715125208195767372996876576967266568297099356935966782856750999534243788599107296911063313799325613877777531542900887405489968729831254005014343375992306858692691422510760404046508844146640606327341166899210949016012761515437924557671646311794586638937611939436520390480449063656805360867961063691338564403294133109923433112498272379205308411273487008060631418429168679429244819918718727512794554664261953763850564890424994728556481453855557719756163374937539984327155375292267382499165172163805174068065222152613847784567925873964731736198146101668657587696351865278062083932458638714125456280110133323421962961998611124774532431309179969918668897359032218030423786698327489542075008924940735180720942421901895807694546605698981834621109562570794419919481723510331587341082182590948923611984875787737016979246613484232576200602370267719414791179469172167332004761333688596170884217436975216004686899523350399505929142873257267337585894670538176959903946783399600730754604313065158397434146634767744683687292007971479660335146525808088334844389554893278407747379666593151149274185769170183850439852793049225688401991577386346977405011230838248795557515665008465532759950631621164749259501202009596411790430893466426421540529704708160085880360793552525275790995642815045360425695688237593055345238925429935658469751383769526032408740434449720540534218190107824387156501675738632243799129955570204229269145226860386387019091453635557219667329426127754260963798360310684184326284909791436723115147106717607765172426140130093923897272749028119106015857558329178105948784277911590870169518410443150144316139045289443085913419533065043780935676364922366717614281133146982466708537626369115851884316274523718643375505207196633147009256186738402961044944519730015524718170563808369237082256386664635795439979625823210420109564535072806696370628402666392460487061550443802671904729300480896373634424022045718346791773908823692299793509672696531950734178917120690152798384832221113163355323635836467165155356895401428329904967587801863802988550493458331934321506516092906676029036342115703562994342314234824023921914772763566139382186296054373781261411690013416265951317461815994277627446417430939262534526783909747969273518988803252526295819441116815397068340351514597465800783712928141095435047953832344096730553177628677001935699714074332158538155024031940913362208090638387023883461585834530545068814133977505217393041474649799286850119619026363646295909454821388916205731783408915152048869696487827316095604780868843524312218328501853843202128333145127396033153340818698863718089834847038242296188898288471015059216069286313088257273086628168333411282825839439256676908501107308695083372631592901254149390952913577145374980153946250754629286738155031241802188960267692079023884854262052715906324853014456265184153620058899440886134575926544049361687368140209223756863680282642621839177754372738862903037784617918652152841110693302824876734792933046833555904313254173094781386166812692490449105577309718694577197781863555361109971076472226869286673456433522920352667163139021288630300971211759339309526601297833323246281522501593419635617780237484484764363642370008518299986703139017422717986072904542006361343257817455744044489568885358144906038580267230934194217989265184129099622971914644858742926413500093273070176938835269502511998720832779138644940955311227643400107360549910527908280217455517248436496883201663044821056341933807917302456517882560716547969610399150381733731902282923107335928305988848821890073398997353224245361994241627785563118473766909725280689138093493148028236091147062411177012620919695603924503300030549448658457957339262233062448111943263400121686946007665229058693309843059896687996015216140250704293911791350699322427017003250616571013845054525111773353568744913217488497971118433472473672431492966524652467358133592091071679285719244051740533870580835929231539755310861832266471847631202169276039878417157112733514931684205965628582245080534422762565345801432017664428437827875079827628477386448375910637803809094604930024076763861033506077550786295917423334611342460386415996131587065436475781047792900997348900412015247185197843681092516354425443882903154613899762817520830827596913594296854277631654438463756950013978230808484500821577535797838123075424283145821918462241400383539274358606770712292138746699911955948912202705537789748668991653910412106388220805198816179036289896951495644205198531099000137715874865422524390743800590652428457063410897358305618653859659257183697639561610524262264302922049846136237239389405025781099326105951189733195958653747491966437669502109509768705219804248321061371404957032935548839258182900266716513260122391445331514954368231693028261611681805353826342735570311123739447419097339485178266755526765797832810303721817040151106708413690638914359372851431579358675880986037387527413378227224235279408289211007461392124258861172781366007017729924914766823307286807297832011256661512066324035274806444705361137377937640486103235862068161460629660175670123719396734898568997708172623358941888117156998403708173992209576271669474628036007395545912932123409190928140014035946660616225312076157740150659924769252894503491343310820753324503588338221371163587635836691855338779151617880663956725120404860799730845650010107368153957972214463186017639487865508216100914893447652629741546813314183615363337901466952752229655448220640866437123414917213030448526982329446085577808600343352300186424723812580336911220733000387631811839659675028829642319885537058543519664928055199174741741843299599694907528116157519354327777080509959328370485533396786625960541526719509384062284285614849773087761777312580637471099887789738722540918397734736613403585877273696060149358090116227506230521656846957411901989023949222222923392578910149654913517127640420036153301721669357292462696948169987939492128943404733530398320523758501180976564769881695239806781163562898706332170998109446549808635428705095821783852034326150568442192537429428478873513692099085984405623726205656317507956090641632732619768866648602854614559913028005888416476271812976006153733389969077994483292072473489859641655393692615703780740191089195149896129185259424680668159481760116825713915196339199393606997919087269334349273586587526099502047168960310528845238508340886180091166408242899328461458203361795488053333943648419883369832259261948748214916207625728638593594376212334751379947963124447106774477475047436358229771601264954333953487011325275245623571171452287408231874226049337484528418511459235113879899213261314872503926193925972486361071549312930595745749786084357392290882466725918575135888344408589877331367614035211836656429526461293247694971031458717296638754039462443956641522726852186813738812040398223098571544100704963681116772880971165213498364374023549618409598651043770836359697453762492315477440000133229431536288548368684070736211645321169985371278175938524858899482983693270803278329459320668697764448951021315053670758744827268476760983749988473139550889382108469763697975842418502045590940851083830085145709179969204274819262416811036612547897478730296229738725691107394460938577083026245558750153364467680775695230375830229066288103777547931502216244748413131806082716993616994991348078262722342351790839238104426859993727551486455028926990455412961259207646781944925242186677739509982541848905447670719690520268323579987657313833594764550627793748257906103061873774541052713098075291740841847518111940326324728436640338107130896012115586942197008555478714882048682889886161778984910881592567379876730249254180350638237004646482600972211169168816691781009062034181539521133716685469113653223587059505576075978767399186943525469379000017235114310178907677984391249433586493005505739124634966788993209146766384710113429175894082622128222454449172717120955057418451832484715801352951437421101831024889141721919466253269392571117965447389761732917074896228133366184801812542534959414688703981268961990459867653530572347859099104114431742034462980233427150301799626390895904686849504544595073339751676816723757244702106812934576303248458345106819883449094307407298236991591539150344921030016556024390513084122921583854048495823803134672045123013874251676977616663068256483242937814480353070481351315836150508098033854051415298404568221340251653217245276941347507933555231246456491014682473849754354135247168085372161915730042561467297231284458889821105103405614767184460175482533879479832426402447877597096736893847627711890810589724428040850010888378632250372270386208190870340274664047538855125378888582730950841074847909287168934040478530367877725334790033092851187317702327901558730969702101547449810814188990313166607683754039946908016831401926575263291697426517342866023822956126121537952062376386028407946274716781612695622840956002450803684046698271512867037755773066699545725524977877362709230661517784407418229213181550894796449674607868410568125085849767715695656625905854440763844919961285825450976842494408688706966445737400313964982083870809189165240887036263898428729869905238471146019282125486443744643356791168054244008584236502794273818128064155336346571936285663559457544407238657236028849009151853836442073293461821876259879064296718947903200944979141671608851457939139073264029317961347702730962652105060713724247687050025813006015621349877619389948816569731306628609271293178124477880609595630063687828932228393680730151333879509137097548416206420324580158277973552581633005013145136232750471062748537565102799999279486284966558449733397980966560978461949448577017148971183017372736284281611692123632559238422341943935403658997009939170447371458358078618893197701312006307630897058953061016050618136525283679791112677026224681077759743556098025321355388887125150853328117906653974752416254998861635282374954488456935044329756185727005645788698583211532685586525019281567653654759431099315784259324816235009144090724142186550524240083645519153780079346794720499558028606339485643727644597872178642335829837804858817167786224963572602350752099818310179815746993945354160813574783570039523962294810420430787678454650171765036672024368457986216437660962641321410739265722768596299127240799208823273576551567324529151926688100385117641212267442401969544524871234699504721490532543651050916281153566479255710193278676157654937787678542504222241222859325220180573195222138414325350091173556277310354589983313111348198046335275083690624987430245695615830740449404370203320204326410268044085158783702487004522460747747934820888842624535051815198803149295905245651316946351380013197836660522057608214613276508859234379140787144639213133366416646624162112384012478340840698371283721442157654293380978196612541108052073520657837869703783677744770600711498044426623182025124354913104968993375328791603102320278453670321090052792958724914634207158103807892537507572168130624580621738025923683954453218843322233635584258539346939125619896371973017175823444700534841090503504863726199311821792290580482176356649598061518125679549979827410089034013318030553343550827568263434952850174384148416576778804138689227620258563036755947616744112450870282776705443939990110144415041371637431424946375400972122534746678090087066145837900261984473270456382907528652764160407126229971821545439690813598308623298824693894698115684437577418371245669169357097491991202561435641995031319893079627433929591940554566560797651643903839264658305039513824283681040021102626320575156852167092925750074989659274298272493038172157462652667643532050725784925857096589231569318777538378658553405200564474005625175089508325236351664784618994339805243500169779134085721528221135755974506122969792562677817772963941843905106568641868495003253306232598527499592328593187306094074262230165016157393706893979307372025489502092115140647432064328185722515996308263158955820553933977362998169798944970950578928770769068838975429155907104005757183732646629303172940996302522701728447803527240546918026983326605773025258164382336295051192662441322061835632914075937370236253929725904794991754288159245558359237678155910197802615720346404544383918961592833570310340548294119350842589626284727303713294670631527628655083512365420138905849288346910117079186856898112041845826267465467932427318810721183024036787664212372912448485411637019347238610054335211150547057226608361962399516661943971998584711970418948659061760599372182388164260880568822418949442167075743582889334328788804191259776900570775470433127832807585145569574393726877668285848790697374715893400393984129193059192330107512609626495762341938369353260377242986121597251318439890012765813074857897891003257444956789092281999248045660690629914934118083189178243725293536853286071780653073795137753746000706647985212022646200833088986562791060761387051103352941085477268800033500412593053036745040623272826750262724395008015196858669016837441537943405027406496975321003538044618838885324306530848888236257772735767377486726922755718007378123174800642248222671511847234866581400833431647832312079593642585797744919630311468271217456028743113713970401844081193798461823633892307885765020553871870802776138037718556283995434234343330805634626416753811158530701434703296559978522314595295607408078800921338724795006736497999871454814588708838881299201620783515647200735877197866270987436095929183662508098149589464653877638572870709152945146530155264315871579959810688274395784421260036067807338023998641368988400387184370945345751164483901652965815514214765509824443587683923584541648159592503159446800909047487705386959049393005027145824801621748064566347938477713330701779414070815884310915827967693058607141439817047158555653506978289679914324314909927289549977151331257661620834730817233213924406241819321831692830880215769246705934223328339234271026491344397640662117936274954214885093085260675783832251477466832813194148141932681783089916438987645963984519282407333043868819683404541384535482512717078544934729975342438889516639576647203834694656465723669486916467490294972605941733548663263080322302055679923904479399900601753878897799579447806497459922514624537549161564462568435610232768869937704167633428226179573783803543981368369975847840878925346540873217321201999125074837053027474530258275462072187598939267742370695362222625625314685490667544804038813819763559363168657179563150691735558144966562110974553617820561403515759740619064584699454062395003800652229068385578135818533698540994582094447968993224624974035304426428367404772311590149257253171325609021864804867544348146165698338654670031123002550146049460798676378137902066269491291140516144842124841781168499468873228817190382022667365160729507791879830226171559923257378440976186902832079325176107388189407542534385251249130758039941594873932257817081061380255498919441237932469581572276026311060099339535553663544350135759142231817400086150327897290317317867460174865843630797670067354117418048845440661848590089245393739670664284797527854277954165217662370496846813338386027317610652296257208663741419947600008502469632245831234562220753796423460352239896439389135352309873131867978642576100591164494484544950022350218338233308625355141808589693296183699814868489272471248857409107447453145482038971840270248588339576025038782698226175744639720014794296630425352868076654501190358385969782240057014293486254235678696806114062257694899585521727776234541438583690750787694961791872629319580969179966667730476941598196964228410739295983841702169640553877409980523424815338481004993204988491347336430914542862697634098530963229170952042616049927926046572041948758339470327662764749399192338130353842140622730997453899907255773250926697748862027904212281613147228314403613596758613875858685945765806157899424787970581043486598084283354126142693996990867259582263756159045868279646505683451243256029782451659517094215288670487344855994540027169042891749178979620361080293158678920811686271541120477203095266980645166467204222776623419716860287655425306663929320982451517836011325351810195728539777766297545321479762531471392493585446255605636910117770653655565922631811072782412471141481082943654368046593338645397177628123276971644040262438028058014723981923818053487060071067637523168098415410498977787790700923934415520859476298585477875730740249862849994295164391106411884439145906658734876955738298352876951849713372124058743825584311345870014342704564105105138873929704148976518731579685208641493083727945763226673688357415398992221154788504502566337957736732169240509755671382542462378127228031095284840110711720131663655115129077061375202674031782878729959285396449218270485636310304147012087283879852646902134926035128049242560119455909167247786323389420067218125348341543132380108119405855042170293699369463255836879158923443192806452557022306309223760335390808990525407521833139375059899786114314196403523766366642732754585073936124562490532767182790246780975720361787105188298301391176871606760217504676246422040954380683280469536051298012659241580339839908009984124614262307104985173222694086027818539722655217626065645472238287576152728027024863693278840170457233889223904970131613931229770309283463715489105997324183902448827808433659691790820721027787202232069761412016963571059450435235123126630844335901652634624343643653804306274036060190040726722799789188719824745030291824117555341092546497979235289130187893058795323950323053864341838519130935777168274902703239015965173730539106498914730171699600939056600303537885902561064994356880523191828828447204601473354770952828722190464153880895139434180911020248669189065489174150480642227481052298801434160896643884830801098448729865114902947376938885025783951781647843805884976041634373207514808933180744246834525187887182646967770220581680354888016536427324745482997606724397309345356332450151184659573382563106180966872520640799687497864800769988234776123580510691845316360692285376860801741928963434914263561412308496875312477845371502985245444388587738089965703896595921308216133086333784333537251768080996530491586703080223295735295278441029309236142369428342344308699848010153974335401895510540727634283322299667047264510596557117388111303405933549250714744733182372885427454185834460576499982100613613486854679799355055397952102198056748099052147873900225812086697286190752029159867907659901737508391368460051921823007426877920890126149647071842811372727428103420920707974240956397592569253372065268198383632428432600479224481561222396741070356632635085372373228455093983158420704291254599042607876182169594278851898482171012536250369357715110707359910894106724988226428322551309793802312810573925875625696439849463679836896583040729987273407617585192063025107728211905175998113499671007277102400075212023393340231313489393895185803637403194075518058500484838042011019291053155381487674361119184731612988574890015997569775584320877543045769389059337772637280208977581713263498142726728375120370178004847573318540188866204387103954480558069092483005842837538999874873695068227059978334932794838614012022269188391686432727179436004740885228053833357937768282921990036109009402987952879930867466983364200071816039598102990528153008975969006384886381528286923190662986306420431133579833561358079312313862696414347305523661430802260461038770101347912688061635839277313651203823387691665113714666438883018153537365805470829273997296397337818971235601698328406636328480439790628016554712116175879559729610549865562278406630323581867533586569987551925235547782398281925917084763883270144045419913763869595511604345175551669635941305192374218581473451277756541627865312776702337817845781266102184011913410694511373071556559118381101552234908326853604973073790525210591315319256628366402916959912383119408638123682589906402000992223906441769046082249727663600039205032416843461351392849277434574599026498875654875626153848745882946778663729599518270127517391226141023482301157183110771228775180588728329580354687823084722719412619077887814177688303925785262881881829480498817879536461286934752173133239067350455622292953120964597660990814268071601665753981412119734586435963256312548050723304255506495448003213531934277332572295618555048098362429841400752133439475031442154794459897350239120597395638695913878018511448097870827413240513030803895229853277989937168533252574342265499101048282638975524277770395706305062478605427629935160307359035121092347731033832392647176289310771979642537209300596654725840437008194103857941665197911036405559713312705989355118633297640178809166538392468970298024017777402189693677283144755317380384488746793236171781315186779042120929499446369004263578934169370834046223535668263184799331741185349490140372938557258326558248999257352484831157638343988619430598131449396520763783382771809369470710924261796249283538868487553595560780927334048151918975632135202405942205492708145984613812292792023621228468019364203075153200421849549557702878839898258829476973728602619870642594280243962064594760773765788254413102127477159519151965380893860156044781522262520978475574355468507415897608665966958396876992890282875653898972746900004593284372799247744307524754834776954715559909741832921276703839585679432739844345014732968945719438210534851680554019305420711638626828122848998725064747735948745856274032326297446794401988283350859918534398800839670418929422630017664875311174773736761050779077159231431599062852687103909812513369211613220970481721575488197916337898687802847359819357811879021390185959436031747625936008797012678678103381960974872068204607295857065447493023173715173140006400871985233333648703637629728342924754921802368467598938190243821654657792459445995553061690631426752643825944904945896069332622095618140385434488286582692756505938558577981636432383916246598151054946531568182221641226274399471078970288392546969016973199262287126300559326222517343391098154490515146600541401194485176522238061155933939892223398004703790495319019549181329254400648365183111715667409044599595287919907572906774155541620844516751488253585668109369209819483898435600416688085344184892654048727134082481527068250046965871644406134037113406483027687121326087576390432029123655391826344551957673233561651092536870745429629148706226300734829521761522597609580798849123973635132797664550372836023631112331085644475663100055512008452685032301190310561507063915459267231923815264117991680426891644490449145291982715399108297844352447803010951262621960070491219277253336950908171109828640802404028086633631773463457341352048783118658340476405019075785804205006786455132217512356656473447807876888802469325245140611291590919712954534402153790435283908597979696469815493235512837596109493746500293485848432188224304340016001450965339383324151994345643535395746854337044089937189343174736909330400310064938603300038631317381434032277362552920317061026219705790058887056929514191424498489366127517305627499182478483647021131671799830796251175926097118332309801841268395719144499907735361280059954302495122768228573606803558572627504357846056656028037304644166736472775553683114693514260207589847220857796717045178556931946823955425113877581550489658406267149845320868821036686082015554174432495508320854254133356786753463633337510972651894756492654810376902988487897593356136452199042335648389585189614641494078286903313736435199161145242364130088042342002705820821333596862780237688180005555835438510482710540299630696909125666671355476066945187541200763640316808526373797481654900024420558133634555863123303161937053127106253218774257998534130080609657749709312358833743646512137767593506959909514186835754981815974795689416711612642066098933881169433195680869405646972991544499318620869126543699244776749762565087768019127518012514672102212075815484677952101861852119554807345355599902324843097110562541110884749476140222929017877214510792354324597012849445762173464477677657443684417903443440603233952676640751307447272191918422597471113844341169514168626302215280696016205831644531150636901581318961105123176618734432481216475944406080808021661262109649096902681225011439642706967872658563216192121602170346946599228974302070679573829250907442474691030839777020540464417042033871221193082253586002080436440242827638093660869134158084728049270038108563703564973582332924010527813461148445339535408066440628922933389558272017702192671393771357585803811038465138002941805761158937990786381984863946759298062464347493777236419794022402895119979483708861976824660671802898657650444469160840682401600115319378519418050872380328982279640761176305061238848748827869110753895173046256559232609106626922817697551456346751181413381845514323867732211960944444617709344311147057975258065583589970486812507216606505422331684433678375553041175293928900197986412742818647923551576789440751124253555363437097285729525242800479007849827085439250538094877439111441021772780680552019289860196742631202796100986713218902375844121319659751977135773942690418456882292553719256101962224535341137473476807871963498599179010447121494650770204822848496266418162074898785700375006106132571743933402145445200816394830535984189536727252509236476766980231601923377898337428271916233098651557791301352058730799623841520724603753734813482675436782047105043524215353259375457174346773733971224172585958276546219818541261040232944817460370026494415737826300100278224203004854667189831019294950866485214355438397988789215161954561043677722103654587012160445349151360732448060159608784519892412358746759318487170933019799220614632584534794493808471107360050941603961869258010210398943220611089011488908748583724119858115832810725295333176442234060612120690262864445699758593096972148488682600694807691783940448451162438650194386952239981519962508371533665354961064913987130771217678258425615761625595742888011955408310642860962154349823316637972971597950969554743997136661282733810939667763610995431122055280744144641262717029450997443670066345948191200236142445018089738493686177730478069890049969551802735431964684653935499618400417526830057496821138336976404827989604526597304679956949424559861803159981070580543634954127885199165665992633176002028775598161276526498094563457841113346439645497478057619031958363393654518972699860735639614681277290493135384092173471084020102805279355419023351401672988581764757820652160961027706347662962376041515470227906408485979369763994672660440580267296014486999024411875313689775814809417629312826032844270114473866588838092398260021588671437125214310004328802524631450678018333618225951574876696214849278708099223110226800421403161814448728307389769903052661828271052669778650614730279097279154758011666533416886685024711233934732115763699992819438495262974498502581346903469798720494442005269287020589239519682209962083145503464180760109829036268850040910170950342594593191565984653360692667677993968963670027415380380012686377685881699746903297938754619748231884803605854865092865396403835992973990533125288537423787368683917498328947132673917886589366926454931883285353077783782645739220047245359154844283742234925181308482451366361360145909628020010951781518716091479185196415719249586878294592031137557087749057905436753710239077044458761929870720182995961928425901484795663657113182037682185149162318420324950084343239494660837545115152995698202973360780724050905391155048564763197985661083595670299273028593852536042935057287862859606348321843794962574154413082975288357673786979569800105817902732587090859829400376493824420469893319980270411769509155000101794139353295773196532230333187203287300465975298789354725626604275661951087825848076237055817472690503754804216063830517496943865235654688562880046972491223242654826224743580766037801435986899518424021164329978492279327118945895972037756360051607614856950039387510434576655042373945463579170907286674321818460751240781770349149197061368791985384351562822863521384560139825726807087814660143590743219743657374566897175128339638413390195029330951489670504152842283450501701809222987775718262573997896881622908716929116311453345838988580242304969095712470638584940871523913881307605644563682268365297831573664013204030737307741385992098047722429465838560437464364973843393974152524072024834351842585942516898685451169061351391052674183921405037800086949078591894123988679506083305498713339934066062722572309582998949247736029135873337667895552702493425113474007796941687508230831536999557492528080477282674674599171779116354080009858324277174186603707331858085223685384974670276455424692558058611242620646599885971110053775735042446727340022043878033857079445057524175190609233493561156946329094179861368402970126587631382618592141621342556268117789681735206112199555853404029180156691808820592582117415694824246159790628985966545541042012591907582963712690179168896315976421259477751762092147407123079364631999897589454749843287563423457837527631820014923046199779293121729883707110203293170599851098545069874036720303378863003542138339093375167861942252074160853989823738755327929641410756972872291121065046066569885618815901536171010959363422947961357202205991544286718359837161806025906983026123774584868727926957863412377129909796578145310485102368454007747296783839925508755952352357907808714585908957691385972028551306741696728664510315914063029641986376244434299890894822588079392310281878039480178927396127872541100768269884445291051778575356298578707999390296372243462602738153619889667520206085421401527833458672091777847209330960632006205045277680848421280985496113348494193077869444513937539444616934683725719565281145885809879333644418157123823532670750581403399362279629994646077176426110636637200553529754035701208201436542980148043412143839792141390511712886022444562191958352260996691533775858477381092456663056311517560594760004255484188679836584076645947329081572691944249179387211891229439041203242283122625596173381534349187659592615655863074136000387158782153381143126760991920114294284069738479306569642188833748793966987815855741493216557479770535494594405930419691448121043352352766848919078923400264073188285810100580736574632034990258972960154931250140938837100187448865006059641058029081650072535294823654748789290059984656837231557440311218887918091310141138474198039924005577240739152275065545469823239815115871422124038097634100149599786693995182369287877039819657681791986571920209419416620649943916418803389301001362235400351738230994636340009692387476069105136665256352479969228135576663576959446249013349831767162398464855515109287557378046644625510012319181441735245031144008007231495211554775462085901501842597516877822709722089247243808289896104133345098499869810320958383359550611761689051783232698968561097912431628621788543910986477602135843915732751046746440718692688346116391633302242144953367973312611966863877720042765138566634274770025063944656837414026799256290651766149124857416714165216466292434990513288937324199194036363897316568634892589338648357751458026004487911751359506950805710008539472196313466789125154858304478562664057870856786273850503837232597170933182160203919806443679457308682347955076049894598772530964367504796849698219066260793038525500651563347561292523039668387952925409859080337118044599780830883237667862967670229745278884581264945830595253114730814728172083458803796007511274676675972020879565087992516745780062519365927176095459307099042771723225011547644808359867795785219395948865369801296602567188388407236856537030413916578363855760409746292512877216565885281517680779963115079248122754739530785593361906217464928675524307162905793727358982993884221722335212192633606369047347249868649889701224075248079736418723353371491778806954837986908995724893906127180187676055193423839404786553187887252678390894407565207449874056697829446769017268307961533410673149437031307422194401170067909472084261175794173095187846632531191998755367224220800578670990969101777247858432537617263294450141071629354854854788599010183865501928505773353934005294269203078442502551197547658891682453280717651633656508650776682119166154990888236122288914566253580071367553961116265278080087418041818443991147581943673212563601236416739010980374665786459047962370571541336307538247274688984466096531821012454256378649082854798501766358854832227060278917147487976207447949804488758595870694034855344323704391702936082073201787435379559366824490617351338578659142125775842001768777025846163573348023762990563694645484329588614412291985011116600430116473049221761309631388210863933114981589315106244208260913826824358235865699255250108516778489874292672515364717629393528281784683637272243778719746610553497701459137464450161548810071963848216315951183894248387098021916744405644037217601771254252919849006116311531819724071547686298091266894148089217617964763916354918004028109388984677598144194516349192372985278497134463711034904242923762665695403523667322361574882015468670623047668935636246307139788106658502645547429371584989719908425150376877014128600502313890928843286542888373415382207805777964921778222920639056007233522782038477594530028033241745649243917843437229638991131561841943970132368873341388442191793712462509995843670916848151333559306324687705608471476663713948656400569637268542342685538692390929910794849424234245432330464106472371146989686812750507438745971490643310638987396067308463808282825494125213641612811231491231407919682370509535425231514026568760565664415180630713799638419254222011282012476512499042751595744922284761411453928589423900998504138278186156400249471998830898955033753968499271590185435972817300124705767877828773667863223947112028781647706630591557566910443510139127257204590438065270259173791953194887726690866392791328392922595000170029195696778689795065237826979001372830341294184492288164254088437197153037243486146775107236960742395648048997064643425237441495520695995277701862479258799056047592411923868184570666257877498166731360912555185877489770767543597321031390973810707757595628493204409704335620151723832252444383184006322824396290806478546416476848198721437540081966100090741357954481300966030655032013872049206507441539743638375560338839032167225626211823075565808440006772778225249867311616073380428785245911031897988436780417124509304587789788476835101472860260999940379899549478592447941319856495949112519342647371432918631807919713633534643768474124823709987838190137138365741540013500469649295985313474215551038180911406251152057515882248500122266871036381977800785934067160066653712868296940676415940109578516787144345928117961020293853826598662624883754732785897166380558366374352870857508062806931919893129964090530561128780752945300802665250651463150402523412591859034472908251906043180297923038881116515674900245372354067355435810994637868795872649418368376689130489792892198066988696347457339194607651361070105094258304725588452557754069691790187130050450944098556256788724047459521930685486211164195018540435211298501049644380804856845636130099220655224826184025903008203929854500088763700910369085897324228096968252168216275759167357975250425165046841964621533877139419812414734515769718538429021718841505698564625217983260097634493022593019707426451702216809827992188407590038172902769026187765397001496734931248432606774522681242294349656410093939113202441578304281616811510062364434541335914744675814061593762756776668516084120539981289486204900502569389581466321022533836048125903274114356140839502769088592758617924893461104619314871980462767210470272449512626815914163371124273532092646300512254672055584999525549187391762560925527736400452364230222706788778451604944800437401199389878949284127129245657826328619183527919839579833287933241841069281896623163233387281687778095140838631852427390251256026014518720789076636888285537231667208781189604511206469961903737930948570372609355292716983687952180173259062007334987932193568671709905010008636238396862764879352726186700416077906248934238986664023648397462785492332991146520582632915965710695308026527402100988517772672452556228424380851778555442568070590431069889470051911638627350390750214708369137174060918639819616952944153551605312367729906385129601866734909783901612480114400809705011225770815614412044046952471798209158909265460826319052212223078706238190189647083863150571133876540365314849489341143148521939622606157999350097228375250947581734688481942976291745360838696008401320976004572148778857276645283676450136365527725656030327847675318341041813189694747151553200032139216007418784936111015239606469365741726060668490505524123676459879175305559357897081854382585705950023652074370581165198104395815373432874849080643636659852355641787885152364521882411854580447005189250451977280679827532055859373670493386538936626467487414479365518239117641739082248254789591871443691863916980170175779608757202360951224879435139017913020888299507310278338768945657053357021186412817475623579927235422854658049191726658622539584473443389473314021869825579013193959734045607250686950761851367885075717124865676164981913147735547021916308674492892909625670937100907918498870830804704448864978572565690632385981497803580303999662860850587233789091208046569297280097084939661812800355858405565018769417125924707096244811768325995864223860508009624903328999548016319556557087850163045988256178162078472523649936265180886836153391771551702291655876703527462225623819110840853739681576224468669228992921594774798551721609179984217659838803061340725379009084130315418143589241231189200861164791821559181191142501678677216318782105452218738439307668720468252210501734642521559231699862050364413510737315147455359035703867774650976939724714170235438090958576001529542278832518603536957605717854222798945517432612695583897178540298530241343085019912263409136267771306933836490081324820958860483347728809536317248283210685537429432835489350139088731577884559416988468730362938231713004400550561669371287042956765429913602987481352643998363742817738804278544947646583832772222085039159109044490515663115994638743650951530511074906468979615054768747967636908287888395290960173084489137011657537815153053374151734333248199612299762683400448887525193174127016875130205922646036848593960966866373029325061012258994885580456994635670516944014050164208027259364754796718140013708068317736845295311000730017676884907156368341225478490094203360332854200006356621696740230243401936782122700957872371887385476847822603860409975299124882144193710613818922075127588788030546364073774468270446058957097177390226324041271161056966513876878469124942953271885824228973907981047540060087851918409817296373657808107558946223952468208192036226363799057048861228675973877887879804923188169531734433474075829990816662312990740583363815519728884000289280133553243793630961273526823759334317091971653267157172330742943723473995928384396654675399853473215036254512197754189715648408700535921388153435063160805979452573848832460217371331927074045312950517844785910799582824480643965054541382362841907038849652460676271207797928173226442131048067394773577562488210202606582640722499740282248318235366799939018795113481558839242487561436276124123469858836402783613577838153297832915322158292657871898423856084918465990232794318409027835804143988305784702522823897982354723847368224210056774054938366452151722182692519530271499045419553431966203306882320858598525139609259098891553189248018455981847136563438339132604809430710019533082242846477074260215627874897698033720410920873983401743755895736332043705342084577956400756890913697498341236303014271994315106276405715767953391713283942789197492845138833339084843478180922483134586230516432682333654064611412509316632614280825379254586448589735073429870080652886110078376689227159695575646571606056507940173690818054539261163900868576549744898968100178951781566998037632166741520367353641657454353066002320386968970078041591096282973301445789192189281457655838364547136578754024302462063005922136569255410359234623909242852155907161924067668566285914670673268063195347628434290875996742823020680416003684808450232870036428622072678692988388191634152343794959743931515958174911879499319365642751093758884242663155467615650511574117808803770101197080622335746667534235508568809063829836625494264263568304839540078079925313905720194103739840253266925416588354190278259751683639248933578756683035105582727651046210546209388957776845649415636150528641461547248721018521067770200869744670045444914325970336594285095590250915229614249104196761013934854419489265401213041770296841330480691066754038521842897393838127848643091978113383412843481191949348796632579550598133764091290394880913972294561315192618806495542849411648284712764178985735856564584467693524996068097384691674032388744602743903060218008605652294234066402814161523045698421215768496079484532481925529746672011971637721554460344462013703017928262565305925846888285961247809112533162637575450962525230418603236083911658989317453455596160874529694723397275369725337880969681247473970897549246987939478020095909971338050658041029478925025775251288442680313467872774259951562427901566219678238369070949708077664262278942952001104668880016252481154307328965615222823793436167228719410625742845500137912185786525233610712260426983754916675008469527597739645176515352777274619993002747346152172231424555624395305427239120347797108151135581505379576283808136867050725484635211979547288268159209597667086007631144521804313235578803614837850339147260395959706883115612473119230513800313222901833006008153469927826504139580149352643217434733612569060790749394101633086870299780033815561216605690365919018414912037631392083346060410809243917522950947161127830195656274025979100557978746534643534388577235274289878574522885657963007192584936076559026908862764817133025762012485683023549303777549780548107181811130899038172203783589510395142795407407313100944897369032799514827610840508045053638134073049755955186395962183168968667043377986539681460192633224414791849823718485657082407498055411142684958489464967193807599201230228230209687108471710089493126322999570981425003801779833626527229429428183113798859217124191584234381987210655209367673669675083704493866091187439594002221201685972169580142012431271367868501867564754467349607374567007681246694888486781500782128673030370402954804270288163233607509380632687403368463807911383339663032052347820537143040674661886270878880106317584679988519619517816644000851749526442668374771464914552728848611465927227627259107013704526508163512057553978381489582429052883857481972907545981607251694809791994340553151557414103044489726741845888894695507438571866025067195752354827710330572111876431863174943692569491459719869917127993042646635792385490816586040646470902752042786942903692513087036372424657858486830166407276905747866403040553926312787343112510486669931411252243665025528945257379873181409326422307251353431991991942497414353503476680006236100216765054395493515135188651093971630366414746549734184467253022821753204825220885227771209819024514045004334362560067186034793562342599609036229576347581995192964877688110687023076986461823697733766598869792317777565662523554619690750881775521632520417903145779632621704163928765977162650950235999224941785739313597020577698716526107242148535617331941732295072459548871692803180247451537537994403142390840662605230331024425914065740508267367844196871259936691818545500987839426009151149061261946819120745585312555870649548370083452142208336247288312706342698813828466998038882293786534473954669915680615833659074535882505602553261016790471483412380310330823409083391071572885101516264676313113393914414366202237949957260926809873062166140863606054916430957920307292675171294205562771846247982246956553924257896070057796909815998636266784215649353844153533305272956819473834090154345692148272972854270452892750780213956326008491925230497941677915794426664898122636030113742158987632838603688855532040256149878802766618639505769710770489840445994640793011660104027083736259553743276493139452166303779274731621000897120684284901551490480367550567516996123868345220022160494895147245041989414128617859464430772539832615047339303618591394447168454245512604670615561711871443032903668228344160770175643824076244208318718212926557081542453250781937524096477860711592651925634074955821351587935217606511757807794734956626825182224712615868588804689646825116487294400727300251951033766604873959361052566807473132176440355194452813300394782189154800125223843124745848414799133991776359736110334069163907088042431001338917549920937415682179410449447942391667061268081280660878380440011154957527723846680155506620604166001901209225422880839683405776221428648767874192334258093620825020678200167970162519068514834649356345583028352237445801617564913819636576712515506829858948321613628466045376698653739735335945826891178994167242603026483025037969669902793998662054323919784396288679973280613833983299467990911858471776256942235603489011414708662378370226229844568315723109708698640715517440480495806175659996561916316971194182889251816959609211088606682389400796109545623179893901493337743588613748621583603741010020727624265904728172111260156636385956460917443199839660643671074182891147420271547995052097969945774736954881981643799113818311584355911539823569679259721802361173701606686413364226863234041007281576961413300016080003271109511577484826039231257768217837453608888531292142129288701437334426062276965013239376876475249439622856730571630778556457504632370295329544505151720397531414357513773772566956136835451305118898610387203267808792347464369406790586425716416732241715722062774234565653086913792799814197790414651421201467529872110699609483244998769442031486790123412348526474840814547002679618615012123486331542492488530589151249414544391891522973485159513381876692963360614219407154635579552653661530296341466095927005797427464096560164832247219366416959355307098025016569820764043315955745082562441909780110890616173048324339500879717625563617948908245515416653095496681705901568673472572192110578016120130898555769533417642377376383515825254045021865511264577498040823166605744084014984546937204794338147314467284499507259989489897472073726190825109688654617562587263662554515051179768704089249173690093714924142985312068145781175433591963424101462659167562010537245386965336046069499084409683708286463534620664787214547958988212670684282490407513424331086246478016178065741999799640960027837613367397294818893769646936626685743727565012020811020519654883198150791016214140092620934028127589324391074099172924113803622190959329180927949239625698372994039271905486290387891579035408788034749121680448366031241124299868153419348420133690988544922154674748750424101538701582218900146210062554540428423967467517548997643138811490282007857353941664570776974747373287483406040795825543217245414038514602564613478021816288067578352048041882501603646617954653107596312414889027449673990458425833737664658679681603615943722282493789113677131432449210856810244998371547789462754900664453324639058834013182024305358334493401687361413106521519148283440895892793350127632789160858049298929198978445157865767205449110331185206899580200270550199964886826131050670418344453972661299395508962921462517851519486999680058062516598152407469532219489542981214702549045504302127375737342362087861419483042304613469181263387923404246007638082730787510043080649582895130286993810257279444592457872543675662769711511225073843616657973391956636171270818555119086624036665867969128572327839277164240111004390610941375154505090320749108090464051578323263873897495790241279483606019825154696806136169333982745218181518735365457939093203207324051050926275572904378917796688871567553926933166850583715053270525412074277685880224670610017080756239415593776147170460118162234508506487890874163999584417190057661341352567321373097843517022503967909280505804599595073399404781996097802200217546403115970207865031498551631194438521163708830667801794409386419920756313622223398971783312932437382365923954615172877519113964673856253081822976301278342884563579625300642065490201891041186128845078635902517456679937173858938532340478542800878521798553538475507974060726270509226004672182889422569228963606038298496520905167702295420881577262681237910782844546742339002523935557910828745843727623428067902592540060084406864157807774867270435607308419935465197315055979619838732367021811970526811684808127479240521174987523726494831510860572547961732699892201156826125668053206336375436962701451558214646882031776794713935997790724034836024734230829128948861179990566657336200129246332857670486222379236337105027129902947227962469821697155349336520540455977423358378437623245459024229360081186329089028010710085067194823071546000150565980800180775295826172311784813620990195689605887938038486133738075935874839625868648135811224743569418940962207237695492741487679218022210800203331975839893892343763298259418737380026245263897010604349684459658786994942061453874429687551833815024473103424208114625684005699041578514415347365398768818004310625377760549586114127499630236197596368043665094887134501334800642531872819700232244160693771999244073284909090604488238275151366848999967148956578370979960190960278075646959928388817453976745052266769948806152031706262236209516478181376987649677246196584947691011165736940907503623829167004968197807842195333934219276756200191517682131795650797138607793901587808591234701681108688499578993400900986142942740756090061694044549895008271026780921802140287987507944914378412155984842110422916943869762318440995965082943059372084691964550357492830590008270446091673172770457631502794341666694284154745299161298855155216253678081125336478237861972594427072599942413986014989751564438865130570587726896154861488133408472019792464222580493273715915967239240845854858451233963059919976688765480530033117828323341340574029677955423840411983988647166325379140629268501485908354514966425949418556413162836037402740165601933415697197693078265786431604151829285972231842804746806027378833750129892039870239055364979547146265123946542217869377045474701096308736796331051947309513353481026684055866134609968658705745920832348031593554040154912464104548730997931204652613653469566993704101715494314943229762322478386282324096291980598314396719036475514397383594370427081539803773483443520164452059053119999620076520601083667309698264869421218158492863167325367632385581580706052762638775067115719904444065064619792367160040538953635512326367832337234445085733204728405888987319474778999093101122609139406809922517219563400788661684229362834142216601991248301193499150882056963555493840871171738980987063971593703351810260030149679968116787413435740735444458642936010169405339589327628039663085157276209364213168089097935467825139433339451151423450678305847413667616169379021559567389156684084693703422998680418778251333898834788287533552512994355934780706772884091219731035818134906184656234934402551665191840092745634154598874003680564893590219320689902982766848743277456494597079623757105218842277265039806970841053841897219474254538606917399112140395747550192734390825928050345256857929496616658112756710200557815785933692319314709221022962956028311606225716890126206145274880935865453639776548241338512070310900873005918975828746390411400780495329943860665159353264662498972382474069272560448768105404138906328109876682553342623522886113379860024758804112485733841276324807074600755460403566501827188505894352907132857728092043442621711212791756979788203141550805495653196062176880126584586573333945465649767343809848580020599390596754252332235322297200802045119067414937381101990951338449117250195786697194636066564180354744451680603340972299787496580746259433679058404299033351422758168073169940211874189157084259034524602397843995622372659471703508059920204155825750567817243820076681887023852093170544788757618837416851773392275758817913043568563969598429616038690839573693156688192686844816324374737586060326961294541207947345896194503979591822526569431669640973168409653128867001928661695339625621978648417165866457351235336941649381371562207667587618639892320069827282222559198152797720297962579060546442647613512859032575494763908397826069531469007171426143019321701347602115977337843377272648925106633078492814330895943896094303155830147767309279905989501131180040109055401064778524528500949261598943358779145234654193960092538675462189496560579469552809448772060959723401343652385881361351180584647621500701735620909539860832115618889711928972096223774859600831653197622182880682966495326613800736105119192955279834412365106678894547984844588550286464820431823023957613329698285268908224526589585422437025502677077726834704895418146534704607543581186613500303996973050811554672512732659076254911962285471741115389483432955202793387656194455363130424904183329437861935136159085186430725033505919874742152428850629905074096055571922735363203723132607403322991857482144065969452302805401412790255783393706213287382678031923162103775909177746124215012557772603743887519216456412866410337425247791543659159670187361347601035043793293352047281528255540760032526754339903256106879185617760308055300885862432996116931729757336324534087571888962552831755582482675877164099163453420825985057792964624948341486087655363462659943235816465436351163000424057511424265623128166493290374195830980607821636127626745194256713173332562733891176945575022813661552538417568495125797658483076184225849221068845026308166173867127601942721514255895902874661226922147727288309321325779580136310999248739794100864195357623163180349824174676633669997309956921991688075749607881809428433241339544021731262518851244224743802230362480009524773650300771454317918701815366491285610455951272322075991427152230594815987345435422020853010194336823858353295296636291571446107209463049474810327695101926966476572192115169683173843004289266018432203359683472160450264927130834383735954599285674355581986122114754211753194208498893793116946607109351430992833234229881437421620072907836113672725941497724063809870169080288898744186204394332761094344681997965336679033346033082453310545451191434212636158323569158079495110698595702176677275568649321636117347687431683250271022809369634261294721383890688948407705274943845703785857819897777340298182982368281210855703233524340655484193109305439436915351461481097938344045635799366001299339921145588078273622942000928189074348495994775996675636676102620914545713122547936503280658110622830597574899390131872833641723624197165199107767177006007638710258635146098815422992498125506335442548524388685832087532193673546672588242771803161054509585167570864850135812695282764697285541161097761926484606330276245903817733822587958839910492673693053654432727285473763967270726494734631593511883864521209941246482604011334044194461300794483528201034424077316817690791312444586818895765858121958527406156741694992630159690737098325223689305111613733464856319423804475715771807712033649480698371041168965315413172324503712149513327108605532994714262003483327012987441754911692781837560553435904906748802440127061847935188392906828765436491465273584533323907868045233541704450620327141444105484540234822218749280466093210432183013968864845458579378511814857726530856703457553109634578981879371659288061637754769979150910702496400021134067157460891420765786404726440265254688355424833340199374635710953647784743452421279575062113800241926161957471888717362397378241079500660296637150679113175170759620966909317605248630233119225028195999558020982233800882276016336966513561809656215072720477801896333531127662232395128442838463078438069395332861998834264095987165131237796265587082697782870883014393561663866756130315896232041895151626969988018435267339601828643385529630450489822895328197862370137889506750152542265544111710779816007462717025325071625368579621709731295712974985979762896258573049402994633086914000698537825282362373948544818500809891561815515610985157930273234965900067079021986745991950141957547457589182921112946700121201243035110579016343939568869165112826727321997923443355660158672423527671170577223324588602490771540105645732422713384365477921242307465293932518737768137059444857227140467483367751068979984803486207575173588369639720930087773570947010155471628294358487797078615695348053159632913791912666606208042620021735101609747467880027891057312015162366545319833779804910655928461826471438714082763070600087689893987375882091879081364984614488253531451628766487643916120891254045078582331585930816945871594854810529153038515967019726563136156671542844425876314349568890456127793134871604085517823788311629860473266363924052978800914349071547931721471787379152700156856075155628167543132148759413941431528525723795016734779634604585684703296197653875672915860955131055150390475043210907853677411039803278633281951134030428437972096953073748823975771311396487799045285862397012478254860229613625392344644351123049351146786725452042912881380355193840965735079933383061155508680937893714822437198673970545690784437650732547636362925017188222923715217587204843649804503438951295839565179774347638099806652252455414491669644069646219445658060402135409062887375721641355357962062645333608091954979020620579233639067587280504700311118618459860425731240038844188963898462709796098310036826356977009791903718718814527127336933914618555066984436460177532819874788400461858673343062621707525724078598617359433815593641029593241675764311937700553088849915454592737870812438114709653071833024412661033384054621282925540190410204794957196056245333009093806347104282199572026848312892586016344001368399599914759942394476477784533775902847903343332874047681351310754776271300642263221988794294786613109452374342730145820660274605806701095832575007505672672542807244512955805458726519932911664828703826060764362776251993587885620620820517217706137165877309640936084634399899386155715291092303454495403346434148043673400958535361516949038279042382970796051302380438095886444611665180624196948731664226460379370095986594736932398990988856723050342753567281212933472902129519860978918946374647469883916263885441266369080098171146246482193215124480925259638326854059270865487797549152529736664547982008671197680709489882687576583845017317640123806310203442450804573978936674195082519460547789778438392365804703615138973892894328349369558337346598015284203857400830331500906028626656764968679497850520612449151330313355492240825296521518704884921258397693054013805581573094793199455069240250320210807956685902608948524348048241813286850614776970549468838549472600939591378437125164772596745507468539219839463748510566663310326313564035883435779024538410301432547124744093495153124546051614068298539634110167392652293398870993542043601198963054265492825307241229080084877893905927295951043257164953763054248371565067414802277172308958865002385768658831536399449892218094618678451967710526442958801649275412107779106794364501948684551006819205605426321801244085664777210321252037384860833454964238018119587459894116579123973601425402930154671632339363315188575808325746450636837240485485633913579870658954174630143886569232747528544927785283483676976785334659142249794267505107089387563724246117037073283292279805490129700123489228551548508238737315768652427333127961451724241349088917625928314384068038634528260825488085132820279186126849044904692007349560796294648465186475084478020469231770464340931016066346670630458665221439467915866110788367051487448723168895483552773146138815505622890602456150284739568078550109721605831977845600363885524173143102965382954764522478073526277308189862507363416763232655949778222074625614274087605638236144378637595223711652309830036355436455309692874903794269552428817723334145774631359654369804175599510518834174607160241728907722289813673497318502379726772490474149301626576967368963073561730727404471124728535767802238634840213107945468556386255890421391368090663031967121677081184136313527201604199682075439932367113792302848353146290854153158813874765730026475232805367466233656951370339732951463761783177442414509561031746425343258430299828904651871362104146034407807410585240358982813067716945046798022396622841540102199361610406280201643646773201378797926440285001927995032203711173622669253091959185208113846541217339129479684613010280920643556080106133208676137620468853789115907822464761484500854017383277098270951891248956505618108724333121964577066741830375598293643349874567372561389251542315672201389892626375014378721029100907783729857584649366710172152306606342454913126035728746086490855463273695677880793862821097839446916494485245042406469885492029619659524746044498307176277522450855536365783809388318470791750685053972177060214424153888797860866840377375322516975063623254305194821956655349417211960677059008229133627213158228590960961472730774382084170501975374151755435464832786401569190570523517557875554543287450838361936157540877425913581910862463865124420992281974503774709589726573633207479105035196307167086439681058428335047193327891480980811211212927187539822419526880217992481001531965872275990688185300727495524624372375843397955446065681464264174565809903739672937971502970972600545494384652323834078619419574661153603140291948328283046408573066724261804904675798018220757326235898830869080557603868358122471607534610083468066874271954335269352626032429916300946410518307154221465103340714423377268098758130066981306658606437860389952248744718342050419589697158555964902710366575620277711180198840104562641598752319946478217353251463570829487120054456941656704925761556388211084961637000276770126330527028985738668501344220864180109056305188465262153179866295326572201093558454041821874186618422420088799802396183155552347394262179243525477744539024415611282095325587923221784051621932809963415984439169750945562644948638533405066841110487061910345576437710691443002648211078314137546784396581091030026617597740646038592982207080529520991211536243176917553016315336756143649334142638116717518850669205321423831690041735541637143827640870757309724547351091508186704937816586827119786400053540162472695064101289247018585489302899790069380773122856038492773609541292567911532106071884267537365694775890170046931852072823611358818368370107901147442456908038156845163879532997980668133513687303545142230259256799456714501782601126252909670659150308557642291101853738448328594436812642353071291179432920811289533800683719205956630351047102077568455192487601966692510806103716941428903084417847059713075104377645457190563051977241469461729406577946050176639840961160543250412734536108855494864819042373667508428433413680389276233533537951364331700039898172322812570431897035555237369538366741216682220644549824143491125687621344512536732683821895401094724844426579577003816302837257191135951755443966402433052950638323312330233024564362943205016607893392729266907181544549172547850758630208488945248994682951966176886550632534992167430226206730019038603636385154671038153006091698336528834818890762564491889835846638533990537028975636548588803378262615454338920274873634811372713623695558218819243868709878544549756991811545096334979161770940408889616153222289130965686685557737700823359085001064128434982670676003049417558313554681853476960160904130693934449365137797991593875049304534009182288052453730226655627460568183675615186709213173228018643164044362898296409489385140979691590086981242589195015434560084291451860493485362481128537140287651904883680444525069886462374249283977394938805602516934686123321513419412648797493434282761843356165602096372578950739442216249746736545845026318126472741098866643755787060495628659401009292174316648501562186793926622832806682929110797506784651025126629728906652426251542385519323873586083933469944337878174937707985958993607808194891734782021663330457969760379906550052619032031090997866565122541494416371345542209519006261830776473459463873494721225846600946341704057631083267405959451572883013389301102315721426092035497893505482086445366860572863911662861389149109663943449114670860539694418256376080387977699686338252442985223439183189506701061910727733644772405481567709752276928871401273959762807354405572141175363588302293185718835713529602253453579190417066022888975490010056690478248865006246264018856677631132247164411682938472300735901204633474058600949164412724569113704852596002200693996418632021478753117768853293694640982917646568288232596663898460302213593679409320530878191424461522250760326901459847621678409752223146912417122911982709544240887172718959085880506052906070190192004569807782730088016335652841664875683932655645190920954430843277843280475714607695646535116327184510903015073778337346237870812611016642282299524381790112397370438702941048226008271524404331741410720621721698052905667857315106851601540938526419654378594440151195514132940433095350795377345679669331185681810281636814311206816303061827582636834436292700251220228436249511644614749982331544170383438292406866869176723945280799420015760872384988119646345884399476685801593991053781679245816672435007160848522922977407008498943185006225921352179084172588846580364140262307431280464450794479558781093149831760906319476685476883267150745161373890792152787964697240070336898097315343141441265039150919788289128239691015269294265993128250053413937197865698168404642501062465065413450636748076835272212021237322309365583641718762496257589119652225999654851113551782226854753632183924954745639810433504320053990265624712141950199019353598643778010709682158442400696367936710887462434191194272979032100249143657897016411169117560922160634612304183652552258091886605035479105019980516222577235345061553015785975482716888844093799130849617530092237794306173376443444357896756727708116298528484838070143142522153997348993126187102969374696727735749072734647243892779401443001241736303683840175805999663729736009622618285260552562635002567074245844516963544108553752610004913500700475022357890921925092898937496452746686187018352631623979854795360932105983372810002984649496521287590561701907375283270614891483413156083259476536827642420433985977030911722655159201077102324170460968747862560759921172805432999932186338407259685115869973854517765637330634214088413889354943088919782207829813860022119012199357843881208170864622370253620690349464398559162329951159902890473989536602120790295456922366463992438003464378000322498943001714858250799899249797228178152070788500928800614533116413325267668564139665301290379106721691743894812448654602744604761258602848500750071513968145243877414903117626731780613358565217144606750889329255457812486816764828866566262895646601489252723700308575885553190662413386772852585782723495016879183488333825809260494357198403782659881778544855668467522723786992460463630150425234945811044581242336777171917456847100012700030437588090691782441958134088749551383602434433039717196958395189500296482810225613837886622793722849844115843980733696700205984187362804982699159084571951172538085419677022506571950627129829239790067174953102003111750239084466804689678433901102101756276680745606504966079813015417118070089482488849916835374781664628387603305031810596473665417096261554073924944214616352631819609431395733144407630382128631291339131701995005505521341340715209862864147225710945786241125224808754536910430378509622505406474933485125277434157507563523456900956140446776899861891303541741729883482774626212927200380453966756145824722847809144437553092235567839367952157561909267347313845209412931030426359801360198241952935655739233602967279586070318094381915482040058295040554779868315099750019624930179435370029397232888496809670527259640707065010080120597592333372516187870341813761857520235017810651886375265178061973645780782529634179021851562094618122473705256540496460082989781531380310785031312290154814034862507014674026538034006686561687942936637354026512970870975235560961228812432187147064476851967828968518861788909815428749489467940783241509663749799496742821407966132816410420736527970783825117808550427177929993698377409610801590224626687443103182529887833082666185975795229072662719328963723073917420443287302675864419587071344605844894627200101664322325651127094589301981321603373563853196829057570330098256490627426698618849634030392654306761964001140500750697292295413855503892935614614018676642235045560226294262555525384591763634479547201666281884051627773233831103894302206159935628619013289042590005285662691649737618735357669134965559745945801711220333883509741856222290817704772353376709538028370153443595897279166755394378978901801670662599760316667409229085703832746999150062868373931713526232471191223974882832747056166022634819230797220577716467165838700190671823526058999693585428186488699313915736789128938812541978407992468749921581070348275649312119718498838987159699325255813386641827039502522661450680293200971558447208315183110634401318034226328691197677697604928507445831103730432860442352859260509979539608686483599374223406422541283299181739529010528689230861860086406319483897371002785468976068548095815986059192402646082392776153162238301882968788556287045695829595379922246422998158362287970915556893438834851818862322479442032852365102056258581215330120688389713506141227448254455848627708340660059492084652274290466647263373550376465193709930826858913295211161701439581640626489966821591692772795065456193222491083001413606715402048339018736753857942602116618166195057539874599155050734876537639362780881249075453579524267959841191134129669740581377117855396078449772643230124267512400411823466786507290563816273279917003115468094048462991330854063740003058878699295659499979580312590440421615417105103604282668859904019786154593129211354935004067404961633098632526845327223968948657159073190497608539127853241888666226086735563965687008249336879659103259857469956269673658151568960591833477618332638035253501015970884306256447811389504521693437765116019227585775198081285182689636623821062821819426568712844403318245585364008794171656572432885835789782955044468843188111894078787162901561641705985719871301410537161520489863020821736390879232427571587965204128420706792886765625079281881637581777371793723229767468286951869884917419092571637036753689095732026412001296898502300418481427209280116054328350868250691306506066067375033124823317132720430075102659748856983246418710452467543502878941528064308863861293532831642099806714808646659294507017944953959772905067557654675944696789089791224332884688102147246378763130752239014910444995412762716379206057268244247373398969784362596097026720396462877356327851959985513656056655384508638576979891462918981012758051183928039378356453194677878197169755147763147923174772691682656117249931750698998236215700048116223244196081652968466452337798598369261715167595016895666806680568888014847111656995361270278860925322709155757218514578697531354182564367062859872133829193555678480987257963989222458227676771344522732932075704980161153794414428187057342691300119905975542223141281197503700049931793073138520568529585141720027600818442935901596436591187824266965061013749322300388465109538675241153853061397840994816423720659800846696792520455286488886468724861975131545083623268750555305127665175445924248287769775952123335357753675912245644134302227477124151770347752656939919219338166306969000460518050755195703792467186297001994175484527465205094781001192413412028111813962176311337266875168388115450416342872311652279566097832460089718722663265837750397100541231127943984975735005958046022415059166034810392820431840293083824250517671613277325132567484910893456631034763893571665615280407835341409234420564805671839963211018528109480946939072931819272043178497117865220856017111740659979804262650983691855058843776992731278692481973396633231631602177031466740379751073491695400789907148011089279103323729180298147086241829422252956251775744352259948912457463592558940059532143969079005097835880305920130527421460062678055161579867571615011773773808394591139227377143830500066030956456570922345694704617918622730536164034134615285711329959006387744735937929925653990105251147814901850731764494356765326738883079554395246772154828657284018693177940562603462683892224653351831171718132883210588015874558659545787336032594447602209566292936676605390276358866897190239955624402935746812030702287932465075366632841895682679571091681258405064823633159000358416715664749506967834327977376670903468006078498171829196697951722261440391146361563011958416594950613562592400194073684216742949333455994234398694286633121106244097273805356645468232580303602113589611655118645244917631968568995629442357004878667550977124724772153706204402039260678514460632582714293779254611744885930000015096126448191788505121610790610158885912715277574509319704823330426118368814227854203369769871582215633323409569358104102746165507886443589195463428595839445963788087833512048977676075290014604199930835277031823707503747956391193671069550698508081279815170888562942984669170113500828263975581271508749490034918917085614855114230855340039605749180173121592303495248642220702773161375203648083512682133336368177604344980047353150840242308553405117028541969510844519023843625744568094755747538735922063184357224461858772833715124025990179699425786173791047962233584007854828564305233015814985378167731921420806797641010687679687317338466534515345916652631041069566403144020311411309316266500449314937399473593057269716611442124395248901589962520536158681611505387524262762982087118921374374522445857776181308961038556299016631563315037683952517181426530653148338508450674256856915854723731227767711692712187373708247679640366796869086154829396476480330531564110964601189729346239063284498058451079437273321575468959756145298656475851775952287945579179403677458845157360736464136244632362346624720332783391657671698312814386775362545817505019065770196781904083842447980578112643525556337241198671317208626122746169687630177795056101043353486642005416437654241752992121418165090468733361425691231253544900220742506933460970587600991432252961228111323127114956097030172355335741995156969518350626973010820866883100580471115020743002583688653441148564823510481812192540293462316196037416009991522178836081123317758626408411978756737317431803362448998919364601269147547286226230584345311246364117216460083645353872387421407102069406711263607327748059837550615896245395694169811570734335150867523968372880759608619608478959295696212588805537126594614054314535555862639354530835341762951027852025593907858679074468606869651212647750283010106473620005594138493874635619574481144222651022685594830737740511574342417468471822325788289090057863660669206151447765901265808726153266704854386912117232592423520614245495149700871780536904748805682922081276257904605821432602240570745512779747478556926070108771235681653709121307497584536636501636827162756557538695083900278274928223358624687311382358667570093085085920208917626253607304419627143803631266923478766064335893230068838966250308471708981887626497439300094518128806864850434350882796104114462399931921137620199259432473036616467765929692681822921652124695941528447663940910272045471444528364993242018274897137798325904690997509390036156613494211418395941654164526426220688578726269717776130277374606522951303451247359587041369534319971806488541944227228065679852052513348645806835493516412497145035146149516342013702725077179135499524730002977410265414564793443150312444898565035685211979133978209008708984088103096620935135556018583452396986406727817323850381080668571534499201572251589094471749492882208710158624479219083189628471389464371623402239882782007143003656660379910461071313903758690461260453480883219742801564459907472946296762506671213855624683776423627874960884388893062498601393209999811896606969121287595675584841052286543708177108150467584229717267488595194906887867103015294061796889447823239078352022010503823219519136587070244987141023938220672841210786840127260770639917071590714414036759628365399670326254241012450241327644329949235968967609992165078911886169365589597755395157447399073685009818868975782148576280500455186674310507281457432849515859264877068627303814827945972627372790260192196957468873335967551179202145662889253806456973645552670277067468836274016396617814054631123992068227865348715372348994775185866706239435342713712791588397098466256053209682203437421518294587019726042673269623546361974485727064104451676012722713577619530676943117432360474275060038069807568494082880723183614587737907272926691808601893999069284088724748001078586055256933347400144993482678145677079415154151890532668718522921139585403099627296052376340269008468140059397938755877930290549581150395339658207227744040498163447123427953729102453836700798401153370662757261301068005082665652222617488126791454071169726776198974343451726700327084943520741665451396123221499170100738252070330165767806769343891360084655680555751656499318336293569860804628164007653169642152239646848711652185288995484654495523488796650739587361521634929064455447952804234274000178584020994985522387271220896275797780376619185251375224109134644683942454878398493376341850579256879308821203511943940559568823718392122664220141879888901845943236601346466042062108138821919377639183754160032747501892320839131693712889333113757272440908237837895717851964811686487643205120587022072192189059925939652351499922657532081301302580146560296571061880687933275935499422220325224172555997395236677042351682542272202649480123554267728366457358847156858433853431368404794404364620428857326576771883248146063922939536125469063744634159233920877019531291513797621842659176931264646636350554540855427261212961552298647145667471650785286264205534667872593100342663916206702539414350928657278153127833037810696522320854288342861537688546710242251455622169142744157883984411207794597294454233314652319704264330967573714501100104533188582096180490840088747056545974088758008569657444878034605891207143166440511890730201615268667079229626024551800337461074005301381325507135737120298935775074874255251964429408511953504188851755290153748796854661741708357213258580104206537070647781931911500036706523262904487069675093018670200557067940207367679595330705121796770491748488597316951202139161658338642650819141173077554086254887761679295691350255662872620474906659418963864599115498541935990785531727476949466921111423342558386574448501251836523068062517838143421782080537518308908191910896676269741420400363534916742628055464309083774045485117631013433174399240097580757269015864314417961367039926833695106473057213186462852478552003374335220738914607648525178474361814169952794459929161198017426657349865722116163745312374643587970335524743086344872330746957475353716809242075977710546039258882726046554691409927310078583207759129256574403486170975181156931310054023282181968223569961931036838402985011126993750803853019867081120478679953168097268211971939873439654275978936085977155625846897213838083041452082630281274960049818670280483292513186433519637054434146756347517538069293498264198785942940964759598447752163005683750351397195481675694910876981566311254000037809325423027467538038776970338348262459107937084198264916428099338121857494883105767269848638295042474826827597543247371118170790660981255050592686751717854092421887237161604786161043407970604081325868688773435571774354548063262242082825695744195329536773978941398865886262191357001165560129667846469990115778088434130901467617147841163567842930239754243336156360063593373876485242756409755757628349286297802267289143909001981622394878892908451136322429785280430106483122598129311650452368925723175156642262054403704475010271973460263696579401633608943318652505960756574899560904226044111037810848713016557990651514326614519075534648871424263674541446311461265181943724429399722949239176858436244186091003181509161278783932748460220918078145373087429322538277496575015851954273068189183125273276174500235942658973012058046872312839834256182498620324761357306860778089276893984634272209961915431620703253494738129841561409422283613161700896976779982286657300426573815028779719517263398694787570949345830723370970185505237025110499362180532065788232512883684175434562938569596243379591775316708596990128461963120529305105268218257318573924326996809207263351563272220454155593773390207505025946635598606676337917500558292787110323962028863356612414328649687010337501228963118806775522156325291793933166353519812354139019541535009517382896739026130364857465926597218683571361482903633357823783864893473298575984787209692203683164657244353467061571245826274421522771555562852103361798999647823422210138795940852613630583830369725667211452269335685884014469987481131623459174092551749450431994026333855109826217158013069205925264267628816430984433476514054440671460748379543529846373676067660333630903233392223300573147519566795620555297645265339185778617611404819287055396774868146052673335286881682226493345146235830762778372471373771486240830711299849939029347463756661453579202272161143711741565006505631834755329906004789657945892056180355749343475079356343542259389970360111014115872616398458196573444742329817609387951203396689525830922171795323994989048799699803389136791811273922096528745511360617385242473335419822751063629424639041383168466620492936271090161737636715343650579158714043429117019861164315591511777028517686426375353207352161161845706606475755090421082792944029303618733522222124247862315714594866636088737491945211635139994631333074188778993871518593445777006435419431994651046206875146587689018074165550858920307819966934349754785951122827569222365774084270413507701727881307566871346806681837617922902617708009261615137943877283214061171334862710690476876665480700669567749743750893815804275441470667952249078494316815136180593864575512588731395773155404445692966587489215376049120365903468620787663742622922210109255065162463201992870206947266899670859208238572209889448213462701618459247019088737745696866258483017565457291461051999945786218133452531947083576534919717665498690998207474851325617050975500972629291455041227303798588527664432558231821536904421737268919610108469288420009893206238878976013826136790933273228435129255852737566883287253197619724373677318850286734691853722886466339329574944393341667532531661980712403126689468906108383171589752596764312854433601715672156413697715856882437059672442913527888338807337806552025698133089280662234239592349747357022003186222883196194359821462841532323604141386633728917120612272477596816311986288684636708719968153961991699312084003426758155794646394688461930413015544917061134051346926974916111191501686784913446852457112342310438245388842822854765208543529455421301565213356996926784057264425653480404405928550946343840343828752061371831728387930801165641253394641270507970058538121581180523238403149776469839510238890767898606007529710987610642120729578634616309449181024235248671442712064980183201305605434143772850185491540628409043196414612317151180098281278050565482341772947135083257791240746564120550959091247579559980929328263870694899999307732847099739681453929819393111756131679971475141980296101945949950592636413089984219144467260003037058583975271387584669401165725928992881074618448363468803588981759048692470209852688769349907217404143721608718154205176152269611809668891144878959130838323867272898018759897479447141657245374341945778741483992347205645182786688363220710975654774574462492691734213651197719890582540892788991092482184180180770580458478617250537524016692615696993111448009798428399166950548643517772597263510109191863689470434564549596675486039503470807371365372338859750726833185461547984035309160133477982218183668752722912190998610580857838672275910047234486372765226605493767368380491271424290474642988843386390406916506895184728449269087926080268696184919616936467460882641120601772152345829082367096233995355495500900832316204229682750415745400599127982180456901717209894610385488654733672659255778563712875542470913709760414429471505770095710970981518994349866528755074456576934172912330878274882437487974078781706024936263385783232015421727486871345312071234711459674061283919534504114546511111806532281846471534314440689849458836686694591198949413043755000382071091285275406171262618955267858458195057781552248487692702798581931348670883593354451283706220589715421294001724032376454915020030357520747165489480887794632586251621178613236944540519444702329753778080272961625338185845210426473411923668452754407490865359927545269836325939225359157425448515656112982558624458471524642354876207195428211818733808080647989864267042559122417019258232568771415114893578236644076714652486204457885799816597452969508579946823100025757617334028706422886065729268155663028755146527916636890902595487305620914989785961925945632792745089643239380782958747113981909645619194598796725005274866375324729611196621868988312887722887843542563119625015453179744337498576118811340504503816557351007650444088049174511920481099668719451818638263722991321009238130450123427787498663762865962005369855408107839422299928023329962819383131017125291753193950887378186317321201336552388817055580378140471258142749406129673066668313954990735610919917260324622530168244490945074802233652157893105112366877356858183865765846816245646017147281377992859106161728630168906168182526152981930831450770277647401731112794638928186756883685454501284116029606761682324490048681406512233540675477639446072639238600789777419853863228271358269069301741827983694818591094004003132636500656772137495955652224593449995212084840264518860025542115445914676724521106393900730158248434703819956195624791799059424045662706614117498918519464798062326466108372138049371076744376245919735612419684891022571469435186617912916719026030340906223814031321257839902836594763264555945588920841802069549771004688654367079947663305931121734940377504129689057521938026724685473843659855013796342882810453532157114354364686501745419687357979085879005342805532535688345406725373311090507400644346360688906953570251052859555206364231405134370742895627211009628941005072735159582689287132796081399158469639573956444699643559780113250608565289008060632642306259644557907430108787556418751370868653915337975256717248111261047648524491656998601423447808736140842184542154828847282235057553006028578174760785293038274646862782109214739016266956690272255725011682973009521633060084542483456430899997178532764631971288099370595589484704278713173384374229709261598917048801832399330656047265465596328521093205789967772660500945179968128022144630432262205521826946283994192200312206682767247882569525095747810174610689048809766736618473781500965806882500300050618524891180831587612197037554028827522930735779726371255482097131628994216244765103437591857017898929880880574754347909848341189147200643822842239101984671358326245567121581257090019939632847590503569020731661341131244821022884375008540776779709584072131382977162022870002548051138056626283440040713761535235580267932206381596955907529930276572514378643502003172932841921878126995161674299297096721800379589566285709949660346261818571628505612371821127532068718603597975525039668894814823319120002498128003154452927699363036479059348336127517690971384212457102967876223957915551683490433095849624146363851660202958791312874763996652168029263472163577456208040132506264854371153267541549971650082442223915431059565609394715231936422960628329448953909755656415222200267957551072867776649938475549063912491492581117756979483118048675809405574553075208959056131793436526470780045369553058319389900917116234262021681204277860122391840830524537750914262399882930210282841206643822036326598484494215487788957797173923180981047945971097432521116049604807858543944069764199392378607953932494162886664227422657521353011671259772879211198002468732803310451432891435811917830229575975731318900994170109155438784726795407753000977825766778624485944942819730042992104214273661465144590118843549220285682146805959356659934730291623271712030341789969116596836545890267240450690394374075145481684797339192978270200822855570808714722911737211704037012802372519804230133002801335092523709622395857834826994155903482246891160002405229349814598290015982793872498547263627831621321718958907276955221382989970455922410236925295169806994730786371443371335198525727187010936428736300125673957924875516021196397195884564328936451841932460193157540951825582476694203214105379042317550601968670960862637247210834008503189965235569784772358690371906925965969524383242866448656245852319801809762083950410069026635318356635632052599735469463627832245046825921368240733756979575617630061795198175539943288855522748518842660825015784316725698281483529612546973623450641924118788336025045317673207808268066949937796901523917369489471529206020527146505755536832115612439979994338479961763227807867931527417267940793715816115066060605477600767411400298451296322659624919526536594886372951117946001457441516135218811933240037892061705559341619807246730779224654836084395013577480800647957805442849716236481248522855875746723333845282216108617789186072065448065836245053013008548307023845678735321475460791450787892795931482872569744664584674944016092922595160276826464770595078044695939066638240751490598230519745920426869538919047631878945080711430211443330187023579724361833405178629631832138572669417201685337500952816885459317395247951125679452366550610459946298170578339135617361716794549760931518685135167442018760532163185323254116077922144882723362373805330948373065671129050246076677506426219139489906239818970702257821260931408653961731919633145143231824915072853711098980816039146924322580057582612866784659676814401603411436823502471235009110950589225493021483072538021384190476094126251366454085697105307238502722400482380748894757020158821229089432541550487392312141441023234015659862578880254234022624589602497777360572028570812068565409383822963885367506327661512634375663530138230240288235866203819300435384095800765056623328510989966348597314663524996618300799198537288973046372061068058172361069097427069324179658995012358004385592549858596262113064586236780149898815064388706522503118955862298790116874178272447103420837020524409149244412767516742674361663817903914025137579730726180037963835838927602235299426458390622970991097947937201593862989868442286612860220592351038047461008489078115967758325018054866868674985653145480834643475435798824410567680875848187920169500236571963369296012103888439840457098126439501498237247415337917277196314782510174647808415655544343366915624089746687489306921074363795768947869967247291957917720581825097445120364110588086445125196134397133592735224187992410987850854280627022967468629791885460301732489737547063666624578054548119338703789653705683680099417676514387595645377473372299958331848784366905317140638500868564314554600437173906719580041808374058513258749175882369122458119568787624981344595584874334727361195774126494257089577248017319561857795326920581461970324400434447230463040667156753366784011846986127178484604880184981229449424617124788804421151103859209532623569825565652188980903175826757384879849888849130440813548592281104512587302730598441184208575332834086744412799750026242694604282623639752515558201306890647158585965936648322656041320867107188226973365375338967327489002181298799035631308365667888805921552059152957436206774289600862673742416161693726116508470761459830721626926235494176591855222891112895997372792203295888795325241360785361750004186903598651227419723156797868861096798702986716823274077262820652205701183906893164306359478754134501058968637345642673356143303077146204335037632852379825746196293738445576786517241964195574292457374029257501295856460386764094574230362083904721473763044766617635922994104864192876265409250121754321871098949986354375139347778201938684801902931828753320275183334680450376645601806443307136235080256570815653004821658282930936005758703980738405247126748532253747204760732069091463274655870154392765788377560886247871648809925142406801002837584635453798898137846991317792684388724091706980808211628886930183674501168400014597649602904905342920067809576336489473194970809385876069998112564393031813082615722599912186242609279035375044899538758869766930742929318778587231424881547371366797384363317595646436926218450184034503788519126493877794074908270444550997608813694147951079450488005616467334763866276286128014574276221904930884088777245693994206405710002549140752046625179233201365932767961807917467117641057887074560591024181354885192127171081646976079490304417166591377365936669023174755180897350353357148950327239996036132634109395263900499213171942351185908585389643839787785204311769504294957930242418174782992455183993325099547070131285737684236473917681310616926681966352956780435845498548608082370996775952197602548156888546845475325542798501525781565751993951018839372886908408242802461743963052852820231390759813094092858037533966497424808445218071186435664531575393482890793638430094916954571880711374615226066386436311164581621312041709463582439406319238772238148258094178557362608439279064562689592085489135501504847456863689457410209387415524606550387429901419002698473126924130326187082401329823000612564732717349218010008719343127631256196750465288941418413740806797467186905741109288008074630710183975776426597077221166483600265515900612583201464013856716206731948274041617823395840709723241602953898453243080180257035024309072160577656129869517544463194869114970615495057350295375191129444671850969689090592682130779727585076082555919368874339256183123749130072157254359090455566272808094062057132695467747003199952796558599722481737289650857336671270266333756393112969239546769933617384804199040302188555280990107223684837804335312360303535322654070292697213255963685696260707618900326257584669757631732648135141512699543224333585978824155688360213956996537587691287889162884812269799414149990564462900189606925257967046486831353286750075222109336015265323887239274177544598901904055093268515424685035431095904689420850784018046799462425095732269641275367936243128524874937086569990273587199858292979595394777371688476477440127381803376586868653213624260774669861870784601514957114221848211161907397513158482613282095169332896200675543170325776960562771757002681941334448634718650744145683887543810954811408885069868691163069154918512814907511234239302112609348621722687630964376254482988219308144211872333640352068967513445206602159237429944709232332847058584935891112529286912391550957927708880056410696416737156797477844216894519034486276749543093281736298251355165023547321748719877596728674252930085630066057454410685408176749077798650552910624568471978809445450535432502668219857016957377772924142203746556750908966152788118089894844083966773329166754062166955737574349514942373396134904234744557813181858781656545503998452203962561157843774524536401177178619756270716343142093548509335500800678235280475770947479513796624609110313965049054724030158641216960646148001104990784362641125908182705380025076846153036133966112495965843952285556721909584974973329620807234423488772203031886589136229324323105004515261646485074368693777787802859185950217700879555856793595288243224265589823507427881666330440098080206625135526804327757588919762063828726519375494256502985375602777563304027883060520923017942749841761254707361860591610788962275997968923912103596155589580435251654447093770231885897488787115278985252876331123852361460263189781959453430044305343751890673209273723294405377150306913029371943286511981135502299773347108663950743022642475309188914144525470600395153510847964103699501356183433518475290827069906291288954738569281330333199334262982827816802109995602214711759925522300835188982233027198223804176513022944611874798153074011108297405016642001850513586029721067712598918525355325098548066097798259964723202474606104540194930798902878866758696356208935975995248318330634934152531214274303231835724370371872029691979508135916447657747439071019181217130661079593634481989513425525335205755455127738584177977091901009742462993557691735892382110328204138509519504885368550442946293300819922708198165546827848474491332750071175302752323902378023037850949489213608802021045163990136023452682123019974921946088613977516378108309972825190054758525799274708890187641134901809984683470074767187822011712019402146698757021396111576033911620599330305523014202638114130786072460125101796529682264405421121113869943655145911226922639767915899336779491381986559707169556176096550857908154765601710850714217722312511553967370995806426633569044044069725807562384414177920090209950582377507471562666456741982121652643530153742774494198590540250692470482388151847054446520019971928547375550969209251207235644800338050590699740915621940716922246926437341149352617914101487943236421151984941685897376124676167992937483106756606061249510547736437592437475244696755964561923572060034026448890393236615858603491375712224571435455721574868910241995489664714536308061024089265487695766553091283633982766052363522321656736612707282398690792034333919975879818875708009693370103972883405563362808958251971025743782670027168875667293062202897300332343131326475797426185041478179421715064324541407509446737562562078770980914958438828291777132368449848240396449980418154277406920883718048437610012453359491931945733283524679222834835361281019009726313897373894868372043085584234422931172738770532277734660569213597142249849565417354213836285234449106154058668810732397937899559058238311781502149504615002703152349662588294804605241609987302109458518346720414589472839183913881897699899768414494498151811447792890756073793554298036591907445836083129667747643772183090776007212414295595883160352753531235373497348713027631152320316194544843668051396833384595413418661567337181378202658636083385427892356263234622218380610320175955207225726841199054203239091049392260991433737384280483835184073398227013299726004558337268462400987934386540249621436792436474477242253349547539857734234142662330040425457789261617103507990415041656031028665323652652231306294462970913146603126754871768009662793003282190450015495083593681292117969264623130922175714997781311036875077340084721760801529584746505528215517894343295036532103450801271085913952914629055793384784464887581120590698347352275229801813258742097010583348689679186691601567178564252314834525672856927608778761219797210202243051539392989547276118756251458724711393128934577630874199558767077888742146222496884780236472748548880326056714469086873139310946298449334657326675861924569957675915575322170132435508592630876126297843700544914082883461361243115611417558221944316160014193115380736959671077492509746423444762147165651970970780337519975784907967178343471043087284297591050447936201382398579686509413497320146455440383470912536749270448287390721232583061902711989053742187226264529696508788689031023605522415893957236079962331465506230415551411185725113786644067099068020434961835061542759153864420375994076631297702984011472282121489400212628264201462141710052297940138066071553541237112745087415103745744780972967870477060608010307993453886645317140132210105314936789124236078622785606119868362205382387859438455040012259052441908331106657306074446703613382092907605408656318481923327510940741322638076680780517324740891692685713103615295628048617509902122547668393721431865274810107421039930644084270520130343846611727163715224850281863325833796864363985935111015779242442309405721434310112418520266936194639437839911752574924989956619784910761659169311403053880838224629470253515340181889251513673694714882506187125093515769021553890140144547897613557392191162610183805847974346844916032310367852343743606744378650194085146361927904675629696385991030610098799309125695944052271718230187527024221954132621241918187855066829669088927729864604397131060616550058227939099038275927995854359311759434646031901972950694987397853635283768985812052007577978816659355571930429732539704216374899144235312016967616065559031133306692059347538451510132354258036612284443566180964078117557164215515044200739204933656328815494617971878460226591688506950844087526250321429013520523707374127430530628070835896844577215784260113456177769521306508256951895949023933116048251896638503801454874236904617289529758242979467225898935601982052106942172658377253735318865149619371227948191493968045687091881240702235383209156555518559043574531510501818198479699715813161816591670155943879263621329377869979340832298303160509059978852817089035170402876665430432615221152889998452225275689138256647550111056918996558813803174539346350408176675480969883554261748730655726503869485687851078758505537700741958799168991651163467737773659304178730196064078979529707299721717958518247109392432291358531275170792328334049817044971443288556429655847409973323217414225309084704369557729444096591238091511222187337720000235374907804955119844402490484962645662531314819147634643227145958894480930865079882039583834276597844511425017585360534228509313819047516929408827878844100755003088481315635814929796384555524734861823274164292362026263195705910127381217369690997634180317290219380127857532083371920098290996952998120076372163617380705156867364212667135216047753457183586771901155346835774813680233223878503409804980993978362671004328789246430191654062832752798341107416098492440258292178255970269514269964569793931723633133404613182951529571881138846021330219704628448172325580597774794490732614733869426346604229808261701288943970526453481134855341198358325437794469703163756698740204108567850710099262847669334028033446990513839234278580662237291947599924347613353210719911107513218073050252375144142301606801053608674046142191957648179093533517966018660711543795714071660380374719864764518278473408389434126175861539099018478509456871146557356684684547878941672824620185645787331086181381234854569910989602684629126948367161506506376923890208136964833595366831812992906063949250268075148140741227329958713188161626949539396911305203425502362875217193813834292488389189617121385315595119938187622645548519566101006672128914747211436946289111534509049253245793956365397570984447806944085434053768797543107856970848775165481758686111253677866776911607382575308358165869681464710411066688163369199953435664920268212046034880940015781573269469134747372895645826675664082399714030519996436450586738275112907821539701407527048715548727284064086503755084377657164365999684852699353874210030846095728276283746739047924001345975836941077273589041402944320188666671873905812729056341754429003210239927145303161648594726502421413255541633777679210607583840807935418401592096894661055145941508981407119816837533638878916924201821669739515437908733330607524686263576379987855332740617643074639718212640347548557821129129235967914893563449808495352480728765896858125361160406754433327886057945235509280625447705356267922060509788345574789159851500897524151454504430269739050710450896017770221851302219505633796747537936976422335593298144713811297399209377884402981649776513919190046717718775476672877405772856532093181120776553357248700966415270562849067060939052508355909951219005541597240933583828223394117434477183408842485975667061485649959177442812642062690942095328655269294317045479192880266507860352314761188382024878675679283022385477435902442999007984933978684911423570879902302416369806406760354218461296250358722043268008515074019243169863453895381267345818591713991082920849674869345340995764574140395982016086454884270423902979055528872923327641251821475776267421820238330854945161116426750874902299957043973004423025085112645936529159482454130447105981047934221464383866279533323161213750576765432614447588043536657219140503547844048607113313771208879552033896650607476565990026200181808449346153691444103577068872337227081068128034828785387084030627912297370439806191676056342994475671277227813647046633528123943312473979407214937540745200724741223908484428008966026397778670772128455257485555429451551264648141901224563206128335103938568626030005054016336592490991869527484655213603682051049925262457065146137458672145767471774374429035440217943967450971559811923063574603387679491033908557060403795467507387691466982937192700729320791634905837299957905296229504199319417724421661005805886632229690554234150408764647739313947119590568782509886940398868421993590008194502084093210033270242217827429072179282931812960358003044483236277781640926277400661655052600571464238548922382453813376397259192940997813665967851048997787188205876073822946247009496368932539637083660732371416195546777700423807174012684483844040804704582348440015817105757506584788504248056912944875840240089157022094225616805210265696821434277064284306684315977680803126064951190393005466358130556081442627265761379963040015799668544394859427661419228487620992448038120920600795253696180957886242609877504537951424722803608539627398750100256239715577179290714544671324644809370971538757620784212910216279896371877122848003444435349833879892196783265981580825152969830893188283442838026153588195020220844107616093566480830803195802495770296186805488106857348552308382479270809154713338206690918121154101595181085820200034151443963943145986250076581218672396523488587858846659626003406999086840643274731885969533070890877589687908533591231143118909253150595494886902231603941333565836769936197229866699344955491420606015355556556506092685506143790807940613157208098243940142844743376715986246657879381795953011072516205545672575927129945291636624338408294668598724294651933165971401844657746965307670448959299422851062294481504574811996831310757945691714494832414948652959424013168528039363974682107228720890607961181243853986478532938195428658506190876262617558608524766364400787934636658000343173401401788741267554734208983730342771915509253160095806954623085864529745085561910839830649884035996262631534577682148151813456593886614915058162690001953394198516967705722728731742581074618271952964427335400761651499305794090371139868575046992309245409992544687551694722947293991337887822684120116008565193121301828059444035614216621371834498413064690236800590634377545882979911798212884655295417411357536657832417010180737648408589955782755894265017183693612714067148689322019627258062824723104677909200983099372696816590263922090036842454240516799571661001942396500816421162698568713481251879774273211231382298293573083586076245154148735719160064083871090057832792281694333248367303069170548012969098643001970570794894278012827709647189720361101407414826803224602690126276368000110711092051334276636678864456126391805666345395026167738085755188524976902754177812036021813256115238736484286567995334123323023741618579817731536781613744338541684990786104147532402784075120507461175111570198409894445605380351468849187663306079781492947469235378611149553495172276880993769715053722184314852780115565573737338833311768940013288515735965303792647253188190920339423858838059843366489043475015048771269176794487795781487828677292645483459046010692683395672834206030290367763417323023869277500921349437175204460412926244711171693426055494159400909222214428078518616984166556992271017013552217234160753010598618225736711815590567488497507660235205698362922755469481343460118251289656917855503096636029417894035868587189945982854802342294133281339410341836720418696863223351015559131304740878508112969854709958763194070953781905287994435291841737235825874443315622759168650910717132392047851247639527978047782506333567263850093267578085314491061909202332513230031365092533926679323096314555428883334234126634707051297519427119839585606526974608144973466728482567189490568190303660355740909395080359020269745546710261324847864429229060075324538065976718842083014629506432254818965963591328093618751807977217421771056194914437614130989128552131808680312943784951951908098579946944777155748835481897293498268181523175508743509781244846250396893817204935386998735864578076271798572404890155779715369022019780231356753523884605712432115658934275620441399794782310468096175958693184114999261423401776073398382855174146642169338553405595133661576140595338783961472453365460672659926285525279906376278624328086427114931119101992907591941199785908804363378950355227680157342634097911860598707857063954843683521744885996946482085482634452702838648100833749768762605742162171435470573593038239364170993405016725409738158454276289443723929241637390037235484478541133283934377525681204516345933853284927586623479317802164844416391920422130361892747374829513062121719136910415671165855634821855906751014883164339987863567085626896229745450033707260751325064341580905386197776437966136880928031488476169965548853446143799200501714384787907033981441870127982350167794850763206324882839259923876423389301838634401022129304597579024664438886352226896852125391502646129326499408236725988871132062701120926496053709390132239365924399338075808195931563492749008691115351448900682335385836679499827762151566043425187150958494119229485356059748861244066685259568888270684445999624150085864881305007871632911103084532250952094278691359700148399488805326600392255638570865433201255344160231156056434921253875841333040005837884356823234377075743056734492281011096801154986210143349408968713738967763588206363229497357157975010340575172106721548777979731740430389997302236097998063687460057048500436401741995919810817427294434368317285461334672741967521947678727230823251187896004600510657033203881515564304904680043970820344856568327609875711702866612187177848615827483706791413747752857863841527934554278243569043426159367607557387214849598709518062673923551834733496144956062285254398528086640802534436555454644823185469541688618799968020897968728218908867414028640159764619957984549775635783795142424132631793452916698224601209697519095763291541320803076942145027823872585493439554258380057058821029315133040935538921198654893336640357082902866114949326848581362688013437563348172303468838749852420169507666571800755053324457655867569452742962363070540775078522741413572462979328211762407378563629529284820088044861130755451752620495998766315295729690185070540457993564336147299410786578729661528651808277043325550278605874924138646161522081816481724761996813376732407663898740485253220920209337992723069625180141675518677737390711704961398690719530937600936799170053652994627471697513803145108834611504322616648386982081390002442144126721810774582195417427989799617523715720389980569285252673052474021607269652538008382848167505168175219491032341827477804850814908585468843352872398863536082809586120254875949887859660073872835020679523677033018003341851961799810261870212578395738374480048117060299736497548192983535613764309850715618187618134332249537933796619664101720971572685223779009606858421099675462634016802470288145715488295859572743491740947272998672402889646959279224445602664082771208254912664560788720237018400812518578767532423076116873082369722503501625064985394565219101191299626272795640934871903107540080163944676779022969825266382072459838752044041576596289900486401210566802071875164785584391082455377552714947751023912918531406492429466326260387702882338183060389121744936798859023706023536957572058183141228986338395612844255922506787282919940628119307042545934430651159467442673791633842383390601445420155533177780048786965749638874768044724470429781659077297728727912216305738772327080316571789950867018560405590419679398105492757467578627905242022791040634732223933425034168165244380156315505466084694362844512660908116638846428056574636562701339460313677573971963861432225580295301825707523756405793721621983656267553248278366575835981144025527028822755784998823569616560034045847235213088839394658579129708818114533255050878915724121821283766560558066646742828850823073550441944154410154376079420542790039716880231691474573100233870406101427269174052746381357970886697368781843178458326667201610827706245599679506371170974512151449668613473883515232756781223010242788967195109262017348535025887194279018828338402143146263961880263043580401863511375001224640655636857320045583181375017322021901644603469734876811940927787589474023937314441558889496999179847291238185525657275608481039411961504465873091705005212873421343950825676404898694224407434535763986192703103397211089819410954013536908748899035203180941769874043983860836935128991925362122660078004199726214530366771717819663684502564325018287080520765849212508936525582693015926841309746968784593220235936555715191863436431385118116975270304811914208204930359505173249809987835367011896108475756322701814710666183478540974302388438901020197966742385897418970677680234412120557287681396070716531607750348258892855302960724000706472854268264170624155080887651884934600158768856437684403583002414246833650433369585301689204106015284831372855380446726097283152658231147558408848367640907665315746823531700810030521356629258632292859656732707697029433285821416526841175870601748620221854336798254363003418967833207395080266249350563471571566632110577510144650414371467449157232378969376859612498480324173472914913045926401030038957949892887276855400868153307252548775808908385514961508582150646624417282326890444606553050923151099491501347622333189245320925906658539333694268393333868370370039457846278389785201199414217258681193243924809446055906871943000564169609320280051713193010517689552720626138107412645563739205056442713999351973780967125902910741342988147332007269625261989223927994298966158966746894061907384406169728867366673157001382672172510452670381869407492993355341322418102456073444023508084547594755502853941695787439324375284320989386681433658834068580703412749918344139964010756764656053733998069304270506442268598408930365257008328394973671542134986723247196495545823815084745362706404458626606917844598466879649774871452173690184125887443007807866842860866051504885156162261736984325241867994406261683227059318734349559297296457840988787705124849001666864667212084447047503202805248059066329810631672012822856012169601928880406701980457870436591559788806158540677883266817660040126400470667762283748679187426970930057132260515697524002731807351519164343526288242567482446047699774048706248258665527004471678342099328612904668853158575611473339901344483950314853816395175740759636416169671365855558597699471988837636859112020001452534242441285817307138777832665446230042157177673359668352309978413667604241630040791102875060041342208107999054881489495477621053697269077607763071860325766101274932181029711072236228222222277784866179977238057848794148633396685528509082826727258003770064177801708903271437855934058220558803208273310676187489702353777302271848367629111593324889118203437439689788444685022801137560163866823892053243295382393588426185736954501491333455947964185663578354606258910756327176469443594029188108488162774094359977102813808162735557498423455119057729472522822245035179948417172362512175332829331748173889359462309708057190136637258467886558951864719849122315248641288689199818611044766152949177078350804480983947877718292315036948233460178276762421312938709883502373245141582996447245925635064122483351271641508253652612284010291390760268148458011387894878235372872243537085886959366708566480053502684488529319775615362474381603041108616505654495026599239364855608349446913842629322728820008954469153523109751794396842999783423967631767498470948096795982328983745362414640614258419655191900683169655252485440819604722208872064364442991747008976629607365459791936351584973642164325247995916975571070679028862798062512215150136628752992530412238195454878879829758000236437276502633957994223752320409890108626965439457552421283972479101041492116491826142244098861799209585269713199379558426607308985086406344014694996339464292405900201343261137798275874137515428510728138241354115112727796729983463969046321494344112570473200529413055961073420521759959926083426020931663168812505149269367458297263266548172302328535187899955444799846865594072341988517325640706659808258316315787498554790821075893526832378999096364578859762039135344437902166747341692852339022364851895853266311984979442030023715799801648967247456761840081457278396446739352478605335154113908493309867810657929430945063532996724610121413847819309579575933644261603264519429321308875563278994592167509632319245890545258373120197222777923704668557749525946632086669276734157383036675434982790539832813398359069304386024194552487699837258063893043339931541880341762222062199095036606167611119993124441435539286061002334049615611050251771778929820066609928793224648426654634063752434094856504823045755554617239319833352106423453160692731431030139262489300495880192501820358878807650114789085060101110826321300506523018426844790327042282220511848421762168106518372427003783939295491096319694980461457708923570110709379452488137724052338106356711703253070400261043221849700699787198990343551766144547605737758022154974833289170688218275145551043946021661888687296065574332069158975729312560225383330224588951427573196250755688841588789235304670548141561249600378802219230691201412245141917868910079603343660707993114827982460943870185507249331885654590780209912125851458793233307100239108580289114780417835185732737193555983963387579018477840916640885746573320120877269639177936648583246697234817311847529767664890079228451321658768105103403197636216078295648654193263321219775121389725469181486805208256875202989957046680166520189154853227528595275791488709922882767724474416367780331562788124610473895316445971663718809504893395325210429826478074791854076754555204764711668902441559963590882825774698897572002797935031329651275880205626577871984649292113493468168503203827011585289089306619809106088721554789543860424158052713687833995821008319051615043778902985319918216289357606509542857512340727630753690372581470340073981526151100379593618565458149803587139949635894922362679687228069071942741229876701423309277456653861401406276295701873000140308914600830074247073384656632382306088830322347625974798371054264200327999026870945761697313866110502576381837983329046793805686851788467665991886917279268887732135840158533520830019701203338311656694128992143076117351849498925807172430698634481379883575781296009955157025502465749893553960585775829786137767570888969035145708840994074748198389223259739882121392273304976901039192211374660520555879134055354197497906602335966705650388525108162234032449257397868013686319819213641506420657269796833270728777164802369021709495960597482539785754772422791998953978797942415077974204476814179794420145735396885787661903569394178568720717649986743580939312770790969489338962774362636179358256931491780267038953041674357290263066570165929886244628876052001822763090689825047485473644654512465545089213822479844246952836715352418018670709629392443692272932976595905222839766497570171963809799129541188456916511028995233389450303439080081435228642363904998627607933728493020373081383163104277723484208275675757253178641668167880875381624428536212212697021492854632424009496369458649979785668657895806944103275400766241150234726667898304969119606388360240738136348195577998155053706149196302761208455386939722158741714511147823002384930955572112425377152598466153565313581711673996005371919893162385578863200981151482352357207967289027852629906563125119184539266754647173066503713002854721596933898796106736945776496896940308865777200676971127538292271346416921803843842235658868748661922833756670762399709372475332359358358473564377913465304602845763579624475258963057415911389988763534756465478482675460939492897175250320221449340795733121169092069140878141060411635636577080302543450139995082004331565747533424203618366994413286312433196221662139384205559973788326157326125090408705498887044853463644513794974376520749970211305054983830270978340418145642768182012891241245826067793600361524276462118481424117988708323049546517588217811205608823855117981374180416879726600400519477070421899340690182167129799618773714625173555277542898787004017085829314047486145023049503964797333959587228749539980452732242159956143072574900853769606449648511744538730082799448054835563229150105572209413015406285289392883926313586626708224676840811289577492555032043674766731964744602551483451618189881563136052258024650701738942251849192474550228240353568468512040739405918690129725664016835387701866880728973865744337162365096024252577192643290982267258609877974551663777183904466045973504472193217288301172404569420250536821680879117263765187614479851026828380701343256692181451424741681300335095483025562565197747159410507220897514641472025580830252833069845910312696893269768537237152429310525071211059678800251097015157713016574778698136228080498217177455555334953717047219726665226420999173129369789204474278829577177607200730823080424141194658093465748434451643037692444556347280016501739011727293392789167640898536871302727082923001562500368661772525098476761235414614351997216892288351358114203267622216998461906952815888979070721779819210118894015753660494996348945038483469320234850700026795253043115834882480696315369741414599736660698381587375519500765418491141981476118165105594604049017401583760647130250065050820096467328322888367697794546815727531828481005148490435421790857601789895727147214122741803783689215006042465730193573068863778043217944766313898089541394741161805530590236482234106327436796769823527559472150944758256475931600891307324202944533756990870782964504698316906196349749789717359779415962655446251774667629370673079522618511697626946119304473704159227409652998245843328838072657134704232244022942903847241874590779857046481310673249140327821254952787590074653195693570582759028245385337376139265707538872645251098152030700635698416860760132882733035635654323028663717276191758461632630268963697995254639002101555633738966766601502425267706085502507060229399061834692523427681930818757339263574091088226474933302784556724150462215879511172182658612467919895370473993988753708586470959098804949253475392126471237378555836594031233384094252574016955836810589318067698446039096794965800340787242135717859188583524866354003430222907813264236967128798956789149271145231944197450201193742389485412080679018617147003295883828824061008512059524558636815180519499491778369906131807604740568289723411607532018425378247437328470384008682040451122865829310815969759741629102492884121998314535070886662902170435582459697470458160988826222671132804876353494449892506099474745585918644110129823499175168786397138371884316646589706456230341044821378596647092013423509906055327229480548417896866815468383910477923879904228423616707527721159560320764182189125237595879542552399378038256036038806750683292834916503906418121858971857018170828550276018538253172705656685610833422178380497492013705849962821368246158251117202253338946598379949450067496320837185250717147057099449128811753757976906987718854561382549562110687839561703777802766730353038207079621526822635383728315635421378515795079735873435588855733564438073127512337968458233748755342858933633527368718736745540405455372310880414773154943118326330857013753137494277953830434216422967137298939701185043882333017559885090203712767079287443381842734686026589211162982413465854900859786727010274443076621531910389397670486723756030647174701640553747310270501390617544963577503504369192701737866790787194885011245641477296162481852942484821752686459447118127750524250011271877498681799566263233228098105350744924707530140403884146167064862488597045238495401866539345903471427229202227967587568565360318089004058406994272482289045914547671304700578369057190711625129526351189486658048018578572935956104487448322795840127163594369703741262261825620285923551066242015129173736652875029572760946032163418402385653697134830965320917681990214491160066517808806796421575853198888243884648515756447354208513000566477414609601920058611879919210154675522485202567267273658245442830635070300747137288233016437438700954806309761632919061805401625511868088950502236175314944452755684821032338249814987538377296240834793387898307004156443234582588635885315347256923586105475176787546162708722294171537604285468482288343528635263035512981918531750879981673344335658976863131957407547538579009869221700878859764965508599289073952385317869413458398727228903092971206460606913719342294768396412946698386283758071699366356123693180019542070146638973041658402019157273781438435679077335886288432735766267352138275032324176948802017789528487786688368517412955642815412227888189379809241782243470496142110700264454161944690120828468427441997115887662137211963999813328064677690344722495297271961023347260833694166992551311301642211332755189565491812559672681258686475675904258560632317895361990844483592270638353151894550516975239061077447934627107421432529542634265776055510963766608471463222112261948659294495110326085317894523781243768283108538131681124871233766174811504814612325249393488028307698230951620788139028628740692741003358398193116780031217634041255640800594035239542670683631513437914921020987790077680028576898913852131540612574271778380961312736648779241183852594387800096956874343412336102680568744184712597084808539171852720279765741360826975085374719111812402930918460278243382540013479325716683719914048348452992915445763145917752697807276298007731301313993671248427839324513975965305446527177602813388880447554404450171971570659249601605533793726515194663414329042180920167211426229691508771742718704555382179494159442783556221653849482996597289434061964204470425272949120050814183557218654693200065459940824564875227616972495074505885907297342896703331982368847563788984823055401157942245620398600714372558421729909656329575297111581037394377119366736703859178840985809942353705240838482906777905489133770476476588556150989062807653095105913327234709328944636450545932642519317506158504483713184213648683406379758485735785055495723933546561915467226485487245470643742074041757671316808125349009928714165685239388020565411878897450816600305064694764218065488331176600117887166485974493522968610766544558226496383053960687795895975745272024985948121577262951452884102412412979070621341945252610392119695140822023359584628596914264366571890440219262080273752372246860297638836320692499239075450760435563572329002072110414596463250569237113218972404600147880833744921535355271957179221251943835119732667621072557967894428092545751497389394668276393869404085565248976720540603371456224015575551267976130123180407843533877888654308983198483807356390003068734050897040680410083734815259032846240272277408817987882068697691975872865171451076391679849098934686480234168747349304304326765789333927856852302943919567826284066667249281457803050202662751498577558853229009386830551526864069543631057506574846554087492022971316361051274237580174684715932677512205613662233514998420833121289879504714843373842363308079832500227752926170077030865492727146899068846670651145136022354844072847434943942208908927871142714799044712550443144033458180363015728318828139874424226002614547140187201730495004567882393946658574197527924533582185204997518602456056351578920388119022138740013535629004364524544720142732478885305871812431659249020196246646327107991022152098064806386445098919375449046511111445995965669068989569016275403894602710803577723278384060506169674820189807684742630795552244196569472151085089256501153880241518390293522610522899628272151413721092516758479036824357943772383160753464857206088724906457735618339703865113819572370859282028579661115761503086388673005584689964544952303444912494888225176429210688559944294940105754652873200524406565992313078734871314843949470128181734381017874889840970097958556957929355124055287745768791730329759729025451780664747969465294989245781912948293676013092274842775964689930130964653556198296710551519880058363586980825588524346353073899759559976268357367625735820018196310145044325060178353087303066085455495304066371861542652646509769520713606871065720998091386101016823498399264950301057488706543884812132880592324464206085211196122668161221278044397624134227111394181914049641761878848380381272214990689782069576088909805243235486112405224799736770274166797101038054247696485692506751459345750744788353369035162383972036837101452691418066708554986348322162156050298214767240354855086179395254879637915724560823479602713434612607874883678657292851608056851049258515558235485966132870298120545557350896557437975250090372417223523986116854274722876990045968452932152365160300545139205697646604618065147990931595777683457579865856184174064852244637848636376690405341977400386125269414642559520493493881519340857193386693748758011311404700584842654875287318424373674105812017561099103773566295802405890378849382373376712772704043924215382246916855504335825925993180568840556222857690916095350035660438551458945772329309269397012150363116413132689762159460839400476515482124781981505332094404309745143147528707432652711232240498727877390871872742778850097961294101103539519916177153926689312355907738852176737313632061473019831353966512627221372218105236631788937230670383677306272283986200808777235419786640948855239170877762282469681394390723655503288832365398695926853458473536444916469076849105345336576558349827314003470411539261637048684904494783242995479002249799511513964904798327535811287376228992403759124629154314824780199602966818570313816749515554411409355526430728885227360801221272473536401148237597243335903037576251155538182410656670510880336581043761506650941979925033260579982308187014778960251750949768104394647334015395894765836886964750102514319244931118763476659503792226760436393182839550604521754605801389634829798582913824762078735897794686056913658542662091079350096056501321510417716150534010810689671291874066778912817682282302178178154321292403984997599495421325382570692566206322407427599652107501543658540470722290772963444900250641470885759802828499328228615405759214845514098810573593780872736081691182045393525103591180677120590343602814768907126042720270507369442333792518391421611887403025297340621304551250704138690034066967163540850451002503068654030066976517336205802730460908944010870565572714344098376914134148450686024738338535229027904246198928604107209625728778053394169426794375140031889436294038744693578978622406749838773760605065643124725600877435883674046215026584637274199514794638160501947701080280610303970687093528556031169924645709269027424363089947149346725147305970679587217629519924369477391639766839614256131635834009619363454761669652400111402580956355703790160421034154135693793679640672219131825803617890877846319533970091766528186802215746837840936691641617221406167792256879565356769930840832097584284513510554834707312627930511543401480594971263312507864195238022141765760552661060223251149052475010071008487094787854356858055355642733173644430461737194500125181016510165355447359421130968067285368740295460976903697986682333628838904980958862535061458472296408355203775801888720353295550101904825580350586968340866561706727316582246280590368313440565890776286160792552320448868908250937815920622629799497291662995373998215952898977394792628736809862867985862905742828909791815742828479757880935931526952301502101670214084931270561928271923551068923438669115523238780783055027212429923081796438768499924678977053560274931977563241419969137313193317984315594881382878166338987321046221171005765585371355884564675222669618375637125116489383772410621508383644535253823550867023641796302568189455214828593767642035775242155027897941471584458005477662544897202428988385124534749999377277919939397165243347902478131127658893821781978141476723488128932121463898752982077272319762584186646823416818726360380993641320246937681122206214656110625113685215604982734092810572632966156239459232803293970212872271400453039616132423663637798235323874307072413131411625781775766206198098238624106044814964090838733645331920758341446101264495985304981591981747868769293834300919971187276098861049551201002923865687199604584217321296068506530918449018856172010769989304186121388475514609654268503267899849622901956611085641286110924482345578270455026273492489802618234937670592669573729235240689429624975791757490537894089186405916758938408008711687560394573125866741522742188284164431878671258874170575736180419097405037549528757141103346780399391960679104302309338557219391703156403168686385969032381476928590718517330304142188663757324731870043628111501660150585443349971054578555362091804928657080398197191034101219158533014134537071361466722053061990756512243686219043963186696480024113940048139963181295288806765733746395319781484252353183603227010094687869603198704904138019926335931044918392877222004816478723308094113679458314956637414800478794310787609261475619279571165884026343918540706265536466615458143479695867520372028940974042075954657074638705006550116476727728322865720472252680220623173979849638255266250123199677365614445764590544400513664228464092576894966565560487058974647512719988151417388219790960638000836093437731927237776802478535888080442468289689965793510104394777576831113254793935819993509426441114790087780514490650434754915603859126751086511092188158550224718459910839897917256558030266854583668215006131364814893086276333525565265417099084626407270960185414366771670413136664012455172401331112599581907375791101234681764665538444947627517843058707696642987364134463476253354200038016860878730226067460648847746976906956482052606204888825498803717681246769137254779452549160216564273517270089861048710108762355849190639053064977630303490663817863498953479431512074580584901627122897146657355210505628511110616201179724491892784885716948052589985185244286188805952719346179497728195188243413656095253804220596128607940836964704475162291478181967590962034359474396548469335915510598484875633968345006066131455905947956700973517758347894057810295134953142223641984777929965607608057045714070615784156657700203132243768726742669269206556566641771990607579997668022392875446912230533566171912814333611487144459005491944317424391952006429419468384545171094758890500358844532597083806214141154526567140877741135692770984026402427816828052667665336069392072763370121809315631176117253223793609876641154810748493329729256218992933014298614856427868909790413183633119058677618577282836939650906851273304575720374541528201377843103217131302144056082536983165490172431040200765156933943293244805918874509238095505291483480407875769774477971186230468501282739766377553734425492558661621978392932555093665559862063014011703912482252381646764263096159937604938754909212965396039925274675612721474137554817407889581205918756318772380040446856419897381812156873028246522654328884175261043355542147075112606314573664087591661295807134383908199812373796649133648778391228302317785390620928582463978409226498028764678796381560839894789898154415172765658579688083275313279449589651842162993364499533060939924971595412765278888592500180017569745646822585790952214037859241022433543417319834207517538263780588791538121413042180010102449612609751478769583338575917461164489957829005080555891366434706482854174674778094982400501233017672781019140764782426494744959004036863053506282423406454687751169585863543529184026636844700097959395733015394357196236809405116026899192198760097966053230147477252804661876902278246604232214813744220298029750553878600578383552251119092759930164425094572857925556401128188722999855135557576978924590888701421380976903830854344139643800065148304936530963981025196588778912349326809824807577459936067376271597917181750028782039728282375548049331953611790639089288482532320022007387365103846685594012864873762902109849671730297505256604082471781820132935870719933699976160729798229455234101544251825881292320270349305080233779197451219855281612965351919080735765116864622081063498408644350831329512709038968559687302346546540652018884757866352893051306247478685867724203887458051622313409439987263786668720782335251007008180583655685304075688979900065393875725610899702443063489572652675340031295864522204074462113377126314197002463208157352741162609987864733095612229998534783445109094428496336501124795589858779650659175107098297174784501530438200504642128702506636611714623067419329210059855181241037947411554897790799766005249178109305954664718851485344276537947976802069425083462041126151428131111322731173157138602847484472045888669330619903104221772983921295744383555223806969339496085583036332363647498969922902524933624152323621061997389113924100419758550557881461736549002044731129983930944523251290140954422209640660367456755854108817085382181052319536105721235972103045227557138126851483545338902279268117182298665515792967902657409398190425052793347730316511171697540875636377210248211165126057918041048089938106931791561058149247134103692285666786647965658799675904919980738161301229238057329540589579215613847072208344104063996164549498548147052211753322543296631646206536270263689328689148793432324232830572196949784073089023141437215168647321866836246535182248307060928040626545528792694417760240059398239033591514858964342309131402189264854107460302671609039308362032918444511620227021735730423906898933491777928889672708743285936721797576654930829489834218703796075606020685952876525415174755508390927685201342190236795537491540706262058659837885916558053408574400528926960956569128010329957931220744847357975130501068291563599478842961421430710752513215940821243222156919155569420002324810750237516752748440848175020097953710711579718036409432487880233888843266349046380147095386972703229334308563575852229026710920662375329759169189721704044157836884888139587613724884390418954743710260612968002459877668793523138885096966290523006914660192176159715890240198583451851620311949399840865793604389618959364196408860206316873228289184514942359043749610606682201714401365263860062134882688852277582634325469713580684851160836077954866279271051540330963597582484267259208902399291185988342985453505873091247945310182595339048455280471516030747089087790897153119422321924731024491889172309357891438454174522549488313959524999987098042187548507290601223279458132632879251782669988650715212171859711444059360967401885626621225543335209112701978716173128062107926537876510276859953095369344037543660089815514422023147294153629931812272274083745210857647784504513659764396124481376435796380811758371192742073341487125995772425631855281309807022702478238708875089321436940193712655446607335536052310554318210864545229639867048783373374598065960685909139201882562629879904787853986445971402849162853357853339432723776424771112420534628904606964388413209815900180004469825951105668566484745648981575563796177543724232018575549988297566818562320174942394763346209895902483370393733170008160940161707642376134413929050606641768644760203001684240784687500465898822773595358601525498212349741662328112724076118151725216027270053393694472952703754025288497175509418332815345202006022193603407454488560416701741598141298919393164386357424898481161961536900937316456327284998906659065755742610921106388717464798966620937312214480989377510497514234131270316658588833685734454440028472189927050611447398954017135488905910217233415225290824208270538665575346414691969693657156573712420630818755942619274072364529534507722632508747993213959143240249879377277493698999406666295414388370500428714568087834272400276900508140599144788948745712320672808530349809253191870226112390237155134552022285347990415268176555885767353273329816835562422723248372871950319434167836509432942392578000829709864436318074180665425739581186491131766239189872025607139560374079038937372382158588824090827242982230562998816234042258729147694644488538105887435723830288010513472953016717363342245328940875842356122387045088539715475196564843277379381088899342180799600772477265714562933958125807797360798486069506393662018716302773544856698832550642220341890246559297019810293097993849532853168040783172926379935555744797121286573783234580524796755965760965884854189590601423213017683951558629242313073521603006988719059566597311044646397021440485706143906309920699520141626381775266959192554679606050636141773678501768080929061852779484048302380160660383694519595021671222840198174573375284992525561039710387469814030547337685023551829841820825444624091097299612270248836541582525623961366204222448262179649082325178650924360682927871668277301972543068530361310107710700548634450037032755842017756282080692241807548491034393400612282922090090380712384955855879771379529917438652943805821466742625499501509043396963981343599373783130867659400239994410295003855932204006898635763227280381642534197728183621884141233714369141910498894985728351760586658049153313381037086589067131096990324239790944918240130702492600900869029081571271790241996917970362348853143544407477181223545243029283565647888214969633690334228332160187748016451164579268582752947774113851098267318152545648928440015937914761856433234994379957032641006599252519103133402850375232070799651034361939775771248336103146580268426661975732310373032593090344864499369097687244036111266504041420943119820106871323343752095425241652364198708965448244675141710830262927491276272213731944558331959148779444758727246616890230595669375718111381728299824972649709162080791245248273493614813323383104298397965692862734864734793775722959843322281259041860210241331322568189564222825456049941885687043444796782101346943300376536573122286853433065320003207673670899047843510680020559649252613111663608574370412921089415711504992453425449286932661423874678472932860732691357027439419041782875649767268915519308097161543525290122828326042846706788923406602160321713642464019551208621287509990908085857955599595917050337213847728117046647688349321894266735292158762261118786128703790929246980707907904725866189842996647512038944861928445219105843062340413480055942848592424973802109305332805627802791662542133799703546041498511569252583538246308653760939446193787087582422372558838900364371637453814034942203778299278234301243468558715570599181060253975787658341887093835223995009298067130518207943977130123532945317686285512171687395344609467542187300279958518593720800097020810212089401661431475834416077247669953893118478781932124825394306214312732703156460460174224594632889722967416933945645430528583015663170971981592204522833462401998063528594685837487655912194027106590008711544662707719585911433004034101747353204930957303525778842740215925992235480332454250829360171428400320676285611580632117482394725153498345727611465278854722246297994500669812737154604689715965600719802371505733053079023227551639541493425433791980255432949449372047802104553987672347071542196467789054572575421549707360087404452497061976385059367151891265627714776227334937335676185442999960929581778640671242920336214719553979433023906123732146779300437194467693065422801923170683476276644874782409760000087420177798655079039574933663866001542465082306742783601141240142603288941606788037903305493632545670434837296228972582508742472395232407772372827267613967674450073449425294404314909325932622428660798765964541504771625974555403399473687151087116375247681091168572393695421333755815304228819835100408377332969956195046482396974232181559196494722769417651947243751102862844604642891156721378962135095152421104368675849000723841928308477210741271016525535502828841466629693070555008735402985809570375625313644507643844253690784913312946777829867628528799168584743282052061341790091389302761942376751958966710996200220950888372907216958693247586262054837392405949766967530498590691623520105359107738586692602534464253570802658637728518703684556421291962134143238436056272107774159421542051104749590758724934039208144767203459246263523152951489147124232161487744747058042207007902192531975923049743702179129242087731417440211437701778025742303140155947232722601415992085325115562886326498602496306820719598431221294020221652186392917443439951956181585444202317108544249980574804874925664787488868877465867885387166349403829332270678109209301473418681803025857999075543895703007533913829814808697571533144289797850814887628937349423354725919518914337198333355649341571916428868127137799126142832092337346786561888337120903480269806725702661332431133587240644513684028908230407459499282947286871999935115294250329519248712907511207712430225003173937174716260392812739554293203369088217195115245625574055876912287948110809047666171980740063848325431150721883912353356039184382573249250585298164085389410988965702081957582509515456921753348109677906528071245324368281043904393479881908124756416972019069833053775773899619656297888359548370663574918968773144605063561643149838910555579076806167874862094536305386162949611904140754978842468583913268923237335549433305221698159871626475233258943690496651834503918357359990040709427708226346587159162917750145072348838026982460251891898709912959781662674123380639808514382574295272021935068149304958609972138935269468399671001520558310901217302805883687831846424628289610816876099362355213571271934038335811557361450005465679177168372934285800725627497413409915661083747843810753242550441432148606465916167966858536116619158864147542608669901029999013324327549716944932071227045747731906562378566002367986795802886852800321597632796093136810127223514234297234639251330670518057512474711877073049420058923350301146535976712727177528466279464966596105746924933674450582511662443730474963241943721446850071970509574565683967778535303515945229288526851383535325450400609357576349157690256765778786783484077377028811151585495035021725548084403984489942654666935523635373325035825744275475912221620618746839920154130276056211229785940176504324590165085091928905121540213374154428624319936387300315540573938161234389098636478205746537181231064084214958939252130799876631975992078199931226679086317777941428938081339579453369888595060840941349450155909908348454710889342444521328466491256273673541511140520692790759473314173159856220320836147664869667726075034192324816900124622612676376422429847734138129777302402068415681243093388285320981301914403296859507391214815832398429485001571576260653447929261889590779256387628525153340670526873271326433770914729358763053094255510051163483970706521995312649201308129103903313967973565537319028787099187695347889250352150048042342243079279539265292997469314530630975170018975074559506485999613596268211363059788452941416564242343961144968201066446047424226341477346918148610350750848131617290034898183344553079439862785124298182179567606459927746817808776913967640366816398402176087142525011245934211047265094839719205337528246488728970916065818986750749623410038732689634332067447085746398704718579231713563218815519055693735533532048506840526677960487290997255645381397150020708142730896571271029183088898917386277954659551481781719781873788985817319427122702990380856349874344520279814449537067738241560699807156140253402071213763787289413781624355212307489545870089302362487153716263951591212141662386194934143947504803810961771903305158989311466745035898003548211301143572486290269629596793579892638256461195859485386486179592602871902693003912324684450211482625028090857949694185004715389969331406016845142503794678303909731660303333505038460036430854829218404925045718780692388077886601009132850350799140125807194507386392260077887918736877455723693332046038722375682924315375881728665265254704251503797350588766433736531906931714918274713528068106387086231445192555594530839778247101615411372805662073411870857352681764928469951675299607528848126085843433099229238600806816120534710754267468700562444681067570757531318320120289504324522477447310478652495491637645905468588958604542520994274759180079457783448062814685218823757060216800633234221571429554899675569605526982767784078965642773535592919180472829352231428526474411293536527456174297351623762907024984267595720434089362031947380287970905642861113111778293768309988230980818031569511177847592525896817917252511676896929350445521316440186858614040449802077164229441744951323712356632829218970819611917267432467439728355198856737900027899065177937736305396363345070009641339519332535359531588221427458252232020360721893270494930942595867357961839122299245693440723408223227141227207778886224705167473741207945136882994159477372551969028599279625718885229244897364589180020788136789663214616735072485052712360516747798606100724563688056200508254885800068315390845693689723510447613204364056419220686378819544010436206369098697361432262601587299011950854930103015028905956821952209691353135818936167932305180922980496221963567671725253320758910814446258103437506998452949982364193675825621335350005261618420191890438494995601398080043283909258200647614593691796658698821312602053008038191530344469291006333974750947062853266433862985105738202667733368054178215189117919712822629662746052323916979384693015240314965410878227469592322388010795313091996833749177653431399198386500728833977624458530543614640962444228696993342289504986968048687823850186292752056835707109464379611620351791007283064932273040604812265920435483814187846279664233045062854801243320414554710726484086802582628581526609305322588610706045952243315784438251263972077750129145369127012772816901023736606053060626091349516627886375365498316673609868667183227076884618849770437669815531097560195908936600973768848363761883644779430306404223988053272072453820878615788304647809922995595349581977445927455316214049400062963088006906160405460351146150154363407231879621355050560066552689860533066118476482058788220980247333331595279112876879876480647079277113311066663346516140885175421965630369161264573600291438025433889937460784527176020246003801110827447414528030411410510113765001452448986803156527389683086845600684040677717998633685085835454837397175205084242446657304195006082354815951613400747155145255143886346154737023984336501877214730305085493975573024589478457356480999391354243016321231542033323873299544266457146373522890934702875948492198947047257818465743617864629148184448842086424699774891993891355717560071577482205960504297041684545913736423239374156026415440755542728240327376174469849296210992062146917955071666464908234446764077349001472228296516989254146825774798620728539290226337262464058423428958936187394812178204957436736539205217232208015170069920097053988741735159751950959576476344494429496026984447700042672157186287446965778449922182714411962037063145613660265876886685676771242683928534755576922104008201216105706906492486895488501475745995373889687479876648123434355988156154010707388450028280312974671371136072828056558799479516228078700787992022437029379334159992130727659949939308278054576498738915141479422623573488565313153324991347013493570771149332405787606614892127483500989731805458601027700050384353794663168808570171241485939470034985755572532386300720091998027674192040778985626475839759524713541796909728423255079897215922045250135460803977302355639258292094081090699165629078209020808118461784024259677927972704951610352796750612830670053074504203197097424800280582874632333533874898600120961150398529243425632648888715312640487638987292290707207502859544233610899398680908339146718801876436353296745345425755602972571056640371358694078302041467119714596321942464990765815015942383600491637075321758945571763933038174023603204802012931637034343105529404510758062301285708160273551007298675685351025990053248275913761544420173543836787103693691826204067325735748969590261765208651283295385937284054921630123886792613762662199571297647367716486498908407630837634663926818482442681285136664539928174635151983793247557121276456138050038123565042731957240415242322456271005793154618204273886434248679713728073845513413811434051808667948257156598657257896313058914946266716902328157273441365784427756223056016483690561221770678318786382429875396881398149347475506641991476604191575396942986180813560080733038123924342692890234508327911095612430112842846219479004276704505686857263516729133616633091989213081375866221798040328305633431947297864401016733434306386871516283926000479961861862041770354465736848489191865803410638303321157916458436399339131130747461991686673629937477314189680134558684015232838938605001751478178438709327883479305498318918928538063327296684914577752818038376895759746192058631792830860307427715683167134057585094317745771634288771716427045602912012445454670417105806570879364603428281426611650312214264419631213471714498231041736575278441675834278227391965559159008634901033489110079016767012816934787720753019944845989900388406520253179351735762430207064580520922748377759150613743355194737018266662469984162325556130706551840433516597419092812172417636023946676454370640070872299898276431257036480178982088188463215053503938212128283377913682193018606090538142960033465683926889909049095202489149581109792581638960354472936430900131843314317721822524958452666770580140206253854488430055998715432970183083566950096423038430606454926818838429649910488659679862351554607829694186811987187221918943002303156077978120488056040941554301336221944465689218826104136625572888600085215855099465498812112686970706385508174656656079283302805599477162134473622085014773418680189829042652136041829025805152146580701062653806709954213537306134760376229811616951916531310088398289213293352597174309420428688013487892597531678953513658603180354716502587194702272818947628618108856257421711983183580563398006136592158873361801033969131890102190132286905571065351999750007527859609210522755402506272534700196479027275249436229759702570626813559435654603981813350972295736273838591520420193961932164131289289192265481799526649296438409248000050679034974892705624066928162005120358691840402401141548481355727635577727214679593014390475217090596955401606627435019654422499705936847323977377724901882287583953025104039238387190896654753297491425964036136168197312476593378038306550514975289457761950221289372242336648390342851989454357522681730544561023979427697023494102602719733181532024053995400371446077811581028789619714661591655934339245685390472889915956480895334366639736627231707440624632669020652484447667267531081622511870235977025391494807522969499421252748558348960216373587117402944305061306672726589115508463100254723825986564705071605281983389813725846880022660537372519818734272106974286910533914324478309185299691605644311334422596295600278353216454261678060240337429950828268734112682838159597148186811357863921172182860614048080878203942270024096175966119108254400079385130911381704606557058171623961895656757670315812618881352698835450089837432229315942133621395834346272734273377238148006174941001727095808225982987732729612277740972400789947829754047070623464091019732142221558310236790145679012881650607249230264261252477744093246968401234119520068293822054675267919422389160488383269498381780203885036794374711534143471788716753773580729344085638325289236116682919190523772869144538626245688923626956224365670122516274151272348419872248959336175081192757012594826062580075342805634238043129840031767984327585028012635775015541169763296344335321451411654327509516021501324586234227193141727940654475311041345592643006740258476432196710247279099952190358912226755942650072361449291963239031375842577870938236820502176979965441213552264278248540826673574271509643630644104805622902465264571746149469580342718608117402857888322556181973757072208297874126571106016022498365652881503852554673399630568008491158963290932035525310584027345728789697771763679437015294182662582921201001981009311543606646051891670090136097623393688902702077932058884361918016843478933008610028978321129899258955042230489491398617196010015803775652994494501342522060861737994687361874135331820973166007662235434923264567239294727101432821301813284178274047428296882282461982692184860076610636374640571571061976191101422951481880267390839033180421468887498854829580126877895860095165064750908905426108621028535868450127421808508434726685952534935600511121712023548353719701806630354798482295372934608325739556041151683722001525392436331306898625309281263385060882385324558588791888640391234343270389969115275452220391871388965207061866579937157232038652005733634963896427792238040694709966323711120124558080041593998488972572112081346240772662212001711277481474168741774030912044443562406377651378750480642826984985372485986378747620009582756607268019353854617143131455135375491166083315943966843388198631570268561939828867333511540723121329734312465647591954090791226604866209035626790971172529209987918759428172462990030034026777595625172071996833293815279539433164983202076278726255676510282373854073484813086091304922976467283316752564396953438956336062919223662812625881928999313156824695511408075041127170581330109730157278917308132233292704213530725281077768107341392717743524645876889714024940155868639062640207905911941865273795444835416322383696818772026019220425064280807814662532789173378146747903805603246973687007773176548806551574519268385584155515657251782530110631819626966902964818609403615622182353588090238610610661131514347183671588473006544568248963921602899686068314319110524801703844240505997497168868212568468580326582675002980923789488406102499382140332193285154502489211306706808292111766177527447993387992696046404067606529770470122904161618244883456179169540638674627232153354811291118380893816393949758155417817416039777946647950612103506041471923394969162625546530062952912434059538421836017437170154221121745309708706711166564244773116218093523990610258362439200638307547193198195818239419059405570631091562393527157683975342262686161549664293415648402585817786650042152437011933585962947657835992208370477708529520882352504928673329320585193813829417936620761057909098010927837738392608177358375125815202813819184045003019603259624113052457302533447051042064987264862767500980321150806666137507573026048235928270932117408762187884155413274374526460360664040646357576674371024688787448102514824127341226922489138860022906043855289391720938477116426395778421330394806271445680342118541042409042805941261534772680239331317478469048052362170740276020764891807620505886566994806836710270935810411934851890325250625119309197239688440074905096808596165866013101593273544431071160671942950435706219154774859177747441759608447677291729266931314692886900059315499557485734489996017648575346447578015962057342788328967841428745916508094631547605972101037727112170766593779369240579494589986182030109338821275840392858077737676531571561633220697213187340208678900411914067016667849877901644199276168819306531444831679791544101775436684743795535429931940247938437128687985868675832705471316386333541752597066443188243153779779182391841321846273951413173356929986340729709022887511553170361982466289945482766858971512839637781802572072779271583460911734972912770567121581496947769222020797224634815658859715698103892616182775169168544482996962656625283999749992245853466842442064087912284844554256151048532030015601087756090098685773784429984923252542512735988815570950022843992452771808978424517456008906632267839470936307647121641641957409049792384125318837476905459461897601221219265074806846216290862778715278082819316275319571541256378976503873790929324323016130215127598922581081018421934851526524461889096641057712202655018015832903175017372013194434236089371369553146906040554884182703964349232561389191761904084402784187021683450337558804596206423646656065274364106074291165348068430263466997377426122547485081785705719900942129316158951155906728155759957530367042159686091973497110122488829801239259653468641040990806453602053826558367528567111453470714960771917311422776726254147257456185607690761784312329728671074222182484436608097721955149881644122924155888620458977395300382227530533364734525806400804345080179423411976112639423216794279555447169460388552699728873590398718709750785797693736454337760968391387647093624606747245819499150224009837988889932277073586830829071281019293075415917800643773000312974019738836316372183016522700118744268303770558022492658769908373933551158094124691541343468797453822650058752569511612024258584693722062286548637375293867310046541494740208641114043912522993904591280072589822613034374247287027267898196926509588527314991715622949684229235602601679659282406945101348415184064240826774266524190844206529943406462916008754142369546885966798568546764142894903065618991056857273186350422831504014933434693797388466254515067081100319316283734639813129310475812549297406757216117646395643182339303242135665037081519602019566987235063087743761288183127437513721277090398116791007543400503295346068269717963216676627211225194600677491129167985492343636472559774306424198315535363726590326230721501092975231568713646312593420064685477817416154361903835329578927623625925639607337796172116367935665162969968832896255053391918241551052001004061791718807105378196081043627036029912781011304089657834806041380672133495465012487535087904127129410448560114618541377726229460266630556300048809699098306981416884118376047010431644294264650147806155229699532383200026276352984905166888993432091488707174973784828798363104381067215315918238913453459260613609922685145606494877886378828574666801519587823238524862813406101265462569659547519022127504845204319326104259342667285210564062443306292813348479299460523063983285211926747669714715554154741813427698080031747046182359680439655235395644675490382133837634131858405498033502775055512429945420826139206375008474927077636434601500263961709199977190755163069070360680888858105188565540391427025035548509291527155303712294408891398981091940392492679050877957360106791978887999781040032252202561766629621635565675665105187960922461865604531114436249330689772060113729711677320304572743639046937363293041096508896169873907057137232024547813760284501504610092584083951260799361901432887977154302298566218297819526433298387695663143425133622119565125614691931321911500401931071298251356359442217581648743583224074021762975633827984893297989801174403468195400690461598983449224594900562848114548924232240755913603178390215080777410031309873057070961709094460613032382938167543432845475579274446552518167056977503558711847836460397428046871781815165906375628953025041131511966486495494706961844399200603916006875636719341478494163138211862181689368830883601748449202605827779921935761510870059684661922846138130929044516464343812346259368919610437960322292299928536526053208539927832185810940565399055417863558191226777902043842738026707727928030409848250003746449854908411764961292093032239262777752739176309027682801435931665578111244380236000364361891807216467829216696028762032062373897084208453148084885088528865179996993015728634333254133831717454753923040347994395224438710969457744001394414914129302778245711795103699269297556237267860956125793408617919835600686159593912425416436813181003078438140633404944267435444959752067814212766463588908573220011189614618187982598560769403570070322645341388937695735707623732672672156761050530788402415687409636742372395763283117264390660343497428299694702172189562558158494288785190409401852278161771590860821285844942321519491161198383417593751686467596778721157196689996201934437082775163877941418041630768267668229151831893342493342707862247944256794309950263856764351943330801598962979527852055490407068543305332177247836665554700713141786910328470950892037285691601922002329345261311214518806049567485202188831740618631627889878480143079553422503786530898094393032657872033360047793285029699819250963301369936116434205680584058517750943926058681377870392112375129441354021008569663404587067183847976703558805224555412876426929586538195699264404857973904796866646578467395346856990437634659187231449301608327289958663995558710797157392454904749062786972830185994503707464893425161282872305396046647152161142428574825785988037543965792044566625556735442678865677935560844435787698239767156915873191810753274355458643847034176528196326440980856936951017029122999780263011619477752410697451912739617514303273777113729941844752681648466525117645931632002289124180476930555439533660029173947875738295607303566461930393683240507470581339387549971248061877651402507651386260608777013499888485836864720380604500484664201469070041969011033515365507276341421822365097579333414994868155339034647093959274979404664339888930782030626331466511351964653042330218717787544579338587522178719444426334730122773886155552668968415835822848524759133012672938640516486436956290237159939265534610591177567813368326903077614129702197085733109153128343274677281754122191025426044595795945829199906141879939878539093772028679139716974663118958359074423226692110813200091256375469203680678828439535671925637551894025121819579255720854412537336524693368830356361265263325273360041161581124810552714736832574686127590984692207359235113218037754452196241097126472989929580186388502178714639406989885552137732754741371248204353468865172682117415187602272506773779932443790126492599894743365776981656320280821460805528141820360140173135151722133100418755435441669949814202401867395708152974072753046035044083257782438809758519486885167545264035673018165202236439912094229764765040140943330488181007887282673167392389011154409155889078489347958745613517653208403346594037687294808497590321916027683120868358640779090546354920485282408487029816122019897441038075526641545554623359755134199715867854105353601282717895457750699834046763857088326775039817349883762497372009750297923918159402330076712344641871706115202714915865158413553676082064122850362981621252378886946570888781283788342634424517724967762599585798462383729775856699271491628353364596531771056293569959131752019553136300987425266362199871428617594594937209643443343915843134643506522657292328910326663315675654508511912621187712587142832904428029220069558020279315836962257378891510515144891168239482850823973929627005942909504417048771715338425395160198008697162401083535112643666201595143286704012710663612256404172833925449079099588353628560198214509261340466482271102894220728775003381472661219605348491830528540543461118001498792434512038016614821878030867887522778581344231752504194892205571138329170648012068765349462634987878818397279890104128244188594120063792389125856973464390268178678873533617298657357860548711432591885126715546232890596587747950495330710968890687035003738454006019904090287997003354503378591144660492105523386757821034579979793212317391203404503552283991356757615692208052438741927195890819610231598302414338446122001537298397604208063834732471667982314722418924976510105303742432002262769887510000738827378225687548312208996853947367101292681958225785884493534585391246627280104730474165721162766485442622024223521805262714319383922595622382609852206700374585060653376448052145974049554229909059904709802367993725983925311122200264203494370435676685994787308853285507849306645650119713213760469556123816978363714944139306035248454476173847967897191466212302150538897723068708812401959070265840736875038422416651504066879660292006024025475807888683738546183120707962594464279764287025453745866388035929089884257094672623928316253142696820365958824703792116306402440837316312013499171756828836436431678429609147979943664831371989647609219965548972503530640747693691762729310201706256991613578818632181864349991353159093208465572325354828375798275427890557114564739205369648202206995796903355698830693561563064216658958669618775107386772468320192408347075867861939526916218977798191394316280209281443331382646731834133065258825629798991282854943081733454835494368345799902077014784529053252935606921774561467873826660905812061754140827198686374545255564525696984502154904613929349561928667443733066761880123668977648308787441660668937503219245178488346175715343239376939621605711339967687921068667008207359397697714869994147349748954115972473197773259979216160422204255049420366777393558026095278632889329612832762112334214027493730593039506887577413898175978582021943070329625948980277837955354577932909116169851282794129514750163852295532180840967120104326694740729466015590740707909398306341025663013206058541958584772705147467751404768118687002726914786261774544471580937736052877272616636442802971770725226285413397562417475092115342215553487829649642495719164937748246544289107336837569876233323527480885649920003071497094538883561372058415416363698026958754130233825746121729359961276404902924441756138514686852641832835037479078632954762770160469135753720699519209622883251302015453963165124382354951874675606151164315121642885964473774999036761862254454915790379805457075996157405372229809558198856617475490614253130710343221396493706306549212626519670867466235487923394720862873717674139894290077017707407585304325995205047732424412820029594787992495012440780290082057664398673823225657304295377323851349397035465712808985366427050281979867525305580510141844854825356396807969430644584866417542624875837897102493156013357531074187935858896857170357756209314253609186494552790620149694911623024189907233251389000934520646077168744171730223443653710568513418392812270579719505521194128448660661535637092013151047214998075244501626869528919021775315414661145954880365591223358015477731788812135920285875413623616545071101549594813196116086859222739223384513997005541861421786136880488021914732465664945671883651251236740052567028688547048089705828658627389133623234029081551366977151024545079815671527778270358640160854525874685869701214380460764296098118588819401261193727567141319970074949503903113137426525533605014668790983606426785673576474623083899895687136700054882310259535489519201146037312042472681611853711821455045936709655454761227407092686891745882923791370945314188753644713354848482983409074628464591845887646849718363683932902746927161498567405168818023691735546646370801555872303324623075859500459163333761930941933109509294791157295841267969562973823763174425803833850709615481648773118122231998147986311280874677737070860449583967511633887915712788477147040799870268845385039523274995684548323738331672631361415682696685888645319263726850537206957521801053279057474588171041296075828374032126191518640867690044695984005823915358711100465518181683883900586004504834335787656232615023585663888462355627167387210377602077345191379637868226436074722226179958866436883362442287971158892514260798506017632464325013045083487582060627006161381489559631572838863725781567054947641575151610166338043875011840424698708575208037105990788426126733489892145538823076414973346336325839651745822807019558633449069888611310913782395868522193844640015571102640633463650665269243702207377438395511956479913923558740534545961784768614746416170164123474550271597776117384186824859184739113918262410971898947277927050829606772691835565203973981979378036194456445936069373186002300149130621621990945596286862058756124948469471774590814207991420723785163840125138392964894509811338963333827161303992379029263182241646911206299547350014067010450920986570457199899852738485601654362523386153640994962723560076500191620559030712626691632650235574390714306458593181676287200065085189972245402778573653710500628412585366203806257248298277099169857460666591718542210748002411790943848643249167724524481450859101590144639196171104479291263428997355565860208709894914039828765247397256632713761578341604664915815758949326984268651638994767120635449010345180933955476161254682111121295221902676073542844743341663520042585402413665373304773196040126380866568454720852043179844556477259606590333988822104021834744992496861255108895188948680839940154187458564062102739677245118577953392437214735630328899339572538301397749024838831265793938740834646531574234516280563675003337427903097260371987316327872310017170842101797674533383611938476913641385475696141777869872926332480200513988217321673773493176871023138897928804476019710918181213887132929761915127933264614240701514064734661505177960265167960947871551781495573403120329876350852153389817045120160294330896590651736006085463220085275980620465801095372471438190827236718156794834145425456506425281475007051093889453538233549882159009538471512349751925462444815503701727558052397470167967591739862592522000463739531330459636839661781167425742805386041265411908727283371878447905712127477867703979660588130513559694813618653789861839097621712431999519298339499205168511904998202598023899116277316532543399664403052049902434246834872056214096824877923943769433514877139341650266104193462473604173006657159460111402111994457776723828471302614069815151946220110133453984449456501659156518922720390662763568552567787532953284950383351317066350217159148264207005475043513193765536386783530207567511011360667367997396452255846861552916466032624845077230997257118032585747915855245463605952506812309116706002991013334384179642725844967607367874534626213515783122389222375534322190931373680485360626683803129895594858733362792863108016749103532212279080181398013498844721221139833159761706781256907711695358696674978899063311130580688209315703502931085521793689361174696018844177989554519642259531430494726022037933435961280751347486725452359534608785698611384782619159085100741499683045558048842959442734817519069501541511583009655810555992368669359052602603322305641055970879391941054550153166234379545141398192452394526269396675074516531075338365020516051539164461096662679689833308283277860130273081293260894818991592330584599190766781269752535976031502714692143133151020215187636327530639573446046084845028845782309402652625371660007418523757497428692931454125914096407294282221715165909571271304993579699405253552460346926496665754425207447459101473668269393216848067433344521472084259341541172427279766373844733134317369182690591468273574111333420052527740066686592066828733482555576065183703309542818276001378865303004626181179419027967035069097452741433638375688354211096280872962266661839514685515197341396319212390406617917566726710259372218776102317328123746229231637549789476845493024165738766821933652196734142319040834361753794002046895761305472052316168579512403669545960542603336568074017404658394742097619884507980456541448185780065024654780188774614749350313391812338697756804942357871491189000129226306572544227741774855075247250704923108585906048557578340882659312773243287866183384091261384053504765058807994331890589979643684544772651004520408992378882207183917683259264531419798418379651463403216910714544064696701867961195820386879411316680745322248406372539135196535765748535284467668530898800900804049445708037449956471222173484338649040484066129339583980214054238447350554477535137301814940788504973502686255335362055866617372507150388153412276218655387543961719739420595144227975417687285861189095535387792584275849350015629446295977510333922258785857084908975964386648765543182066122505247884051176619586856309491390320983036103124113160948382136859967170331069531473204692653639850072028578414059376000265133596803077362784414081774396885742960212785651854584606781431546256460039182915220511890766054515698915522729079793506680181380860174476131946175605976438547671581627999866010818828057203480070007964816843436474128581616098798880670391013229700908555506351662646865807265018814661875732830153139956335364774728481523149388255137793882000746443145168341136916985746109673088074400640294605185108739271046213129509381806120158266855814814841642925242911224032910621608512201580118037211773336132016809968374129418963760095614479124408658559309739162904288693151795377871884858934493722817928994198459314191227227522978253391221274572783892954384388740544128182248338866119774495437032304198083876977871093256648703607167628812954734233873732625800882598502074850134879024094028447235971297262260753139913425354100272377710185567647977071265465948969284058417443890972240216252757489094159495867669150762659799311316616342906892213762444928734106712751251767172706808546927818022300609579601560119998911074353567709502252113810662044711708273605607024801426306449123045388698168125065022981814320451786641649030252754063241587583890247967602368995888195623487466537624813572443801339396639355985525288882762302822877864161789930605530332646737462317356389358059082361810780519877609997717440718791744556239965626190665098579125231767773751689869728737738899896642442470961298391011628856856297744291469833574079011259953368863800157450453418813418063337589600210761331531188513632319874092835790376021867298688560358152911529690610747897731442066456168257261268111996144127824429148128755780037313939693036395169326196510659211562218691522200888832454737058353259767281916029814176677081747370075989512750254597951063963620430321759882719968108591781656877255682854821096570142011435527576853054803580440249880854182146671658647774588106749258298376354669100461399588376657555681142490809224972550318834147177685824495145326168124744442156068363226142015917018185169455182038380274000889991772713584836756966636033607498833914421022875284874691596826118388283965376697586886369375585507652676746260715456139188035827866227556609342671036001418661901585611512139762660784815317690660447043216010916765219449254565978700191225613723149835840613158794926600279535016044398240291487098491078585576856294159827564493688499595094734477129422033891602872574451897456804719353719469551272209779948639975382195832052432482773387137746350586985116310613312630853765428862499903715373006017574541630077428155588894903608853750899858454889068659260675459283572468495785324715200995817376738102326067432906281710724577336007905872645783885120120585385610742203032743707089992694153924368987523171530313952600399729137769133123069986849706880663164226427435659134872924124370596684980427468028838855943045702860062284649563486344084982799463890442040564348171867660751171880472669247244363120305444098072015758262831550279607835915756675827839604840593155450000652147833164004975187174753262569495595086248210178896348922844548874534973891620257163747184244746127408883877814135228982736267618613502926156421514993958552717072451878278199602414367455319067943704678843559125750682527107793812476219330444907733020673193253702981523317739267736822573932286398635615601898912512453654332734860408948786049976211171144642228157049390390827157553757144851069739864871937720962224566032602519757203424058688027432886444438905233710019232608463233130880108084894180198440751591745749126486313072803524092050568426751939283609874363479565268212025926985154514248122632495398529541734938647185756046452682136758870938745181810845383063361723062339206499455421759061459169430365242961810627951982046289050522668898758353195710102536014679745940046649318905025746334790534502874584725898534003414776788625293830526534626724863236914401431582243680695620562502648112272632317434267829213013623601420064105227879467876820649714443144904855267491940491277967984696283746721373793339830676635732492374200651617028111298327735890265687217543800273538774263120680475095967651528740406581445056868524151475066232056439333131082695564164750595790214976396566307857896316234106885059687256097610535375774189885850516813471845453976722810188000521985805143449664989122543216230835376443937308305340972567980234707260334452605420224614748680241465288968486394219966541692562591302373920728417250275063885190289461653343418295173411200746080965479068491906024965946053308301439980302728833174181414174654612971202482814064137051065765010476742352618658714560700452478143808877960979102947462246200823458207838263905921545883818221378452377288192460905747878749441756166371287564435380334974388366713384393982821056837818530828159134219372298518421827296545288167614665353220713354752877715634252483205593535282715104910762154054237738913316005774439285415080066960172058018395155874231693742793250310108388477475766545510087127510019606153552813214485172670429540497762728687055116821558247924127520231743903062589660655982875878153262593809321243249774400308889092263755578601783887147871594511672870532444224937853431333632686855887398340340527922946948243700670210548733428705683081751181218393602495169085264639186328825817450586468204417758885736217266994118296193084406358284590818694313071278813498321184917018387544231962841558130103452166529835985865737467657744803110954514740414222278090218049708840192327645669830641842674398917921788461169831744048208834799880386974591776347182369479052815653682875207867759503316879995171014158637845314015076626074997677538604076660023912592083368404860348153297404648239665157587545781812142658025575955801409863517057654743377985189597078168207953473855852236559738099983543690908434016748801515450523593989853720846919059277152186720292706523727472591403265922815001668422098468494234963035523320446714020555509595906627085753465866247637393937593318121616753065027698027564975737614190804117383839614499396173227689872613694479008100903704777172176160317469343346071920441091185891283555956430026145851598842443127352687182372840929744348730863102257430599691002678031114057967931584759053929968703101068689796553963491891163673181701920253428723482662116825123435136971474773479245190919367415619829558738315157962831398407580520026191977665990595983330450191452800508413240321575218932406457282562502116559327996867620078905052409440609486370634344861388563107349187585027873569295979764881907139774401165706662948279153155810517709945193627572569463825937181372062004069741784260393270544761983717066970621543338481361142851948093027892567277625608905824708800053678880725137822099351100447842191828410594397920968489861712054973572871806410928908569023476097784759582382777560182781846377412333577226358685498067098132705576857740326239235396088343855131698089955439526265099699789485845103001379969472118202058888135480322393795825127934040884275423456394319817897470910327253594042867022787586424029945784529953387936714778612535150892790802272898331241726008725080670772219145556985872363199764230809745414635043696096551323122714304424769963203554577904740501391682796143674454702769007999450601726591243714780687572034078312895121815322437764368446529829392474518003295826787144913145776954020537971685200290759099846788832469554451798662819890642093835574557477240382846837655503361995170548813850626130301282228607176576901080475853572040769508349132742930120318283154129515641587020951329347151839728195075807336447822424427127903493097504414805133214713564854120384510690873014564516976349879807661315058070717185710558708055899928932132096354880245387328352911740869968293287296301501542992290855106206763604874805994505439424847102719091751493575578368048112877717077735344492639977329682972996289982701635156740214813082834669423567890623325254630240220944970726278306416357941145013517367039982763402719395871945421267901857712336067632564732578315623768362654578906707591697340486806463042493194432149911048313365317800953134278284045641804433644961652952012437808310662424731340422408195859349714582437154258987149182607658904192144619886855159729419228839682458778990560391548400588635487365729871049749076183044450074628980163992219432484676249891650716907242612577035945339131005252683279320081701271334981658833676473837653552794773974167182081743111982539298789733860743421058406059636931209058365728509617264986692320391952448564652594349015564296458920607370407148987044761795119036196930378121847304300596246669834087104989981759743117538808420402668620873728960611615335167055298141793694153323567346425577104810407996747922111910968755704461253655083891444807640270382673895407402141342519869994333984122322943256513402368470052669607767189425100471049434692964007933125634229776320018394167366361798220838693122043572863370712160851470925142314272798517642738402779341045064281778231806515585754784615965002225563332457716219628620042265791625458496340896181535727001698933181007923827018917666171100375811816978964886858765033919776834793387439826615172758191578580318870385162030171263748935962616695109780715499761644025907355416973714467463084151942161540797408348331516562387748828526989092018653306852596123408604088801674810281512167691363090667300122319512957206023428773041135497566713795984134891396080108348363100051773085715140419077579093103308562477591169099965864995001342875482119574947900732933578993426233850860529647769802299204061333148190438320384748838391644842095059671650362102288760125487167413880174144646272961019220040869586995457164929630944010430712436947521638625550279612577493287981718770435774812857747895617430487146843720729667426127027798900034656627743553929872411078945113763696579819073891195873978253937790134787223731158754513716261185071460415741986796424054243581913049431477338890687695073559251460185902210554809760661189099839288243568971683042081987629888457159168831850278981305262256163509893063242693831708110140894417492057309930552875820010991107626544845892905025881614393441334789203035730181542644796069307918515574605450292083697036771074876147525296874251695940846989616257567865376627071229413754872297378449216553809019193912044215800534949087421333879987286999525885132993680656454868036786438479793228725813726616048065950519223664079985366566096192529202365053560561425492359034273858221950895856641838275104588679813810254665264930363508725108773011152482774743435448039310796574595952252697061470338479002890301189329603942037884938397142555516639082681647776101912467962893893646317450994746955327355720437058912997814931068875440217304612694109470789554791885510173603424276293708316420520829113622316593569888530558155472451893643872862841824738774074010116945509475341195137334679025653883380127272326670378122871545922046721496706184262663399065822063682763917277215948941423204220729845453667383290717653882014072676970122562893235858957056828203213132609363763399969287155791722957695332661244552074398133732298365756167829877820919340614873838564102310967520218540868471831845706569988457710507925925697921041801304254778736717750292416345894465479582324620252650578320759212425705322992613388463790307317404653099774879020433353803667867194028028033895119230645733339946071272927377865925640531306259704713528948127213404803789417976264178873950913056944147206948621504184488668347719871996328723793325736060672690020287248742769513431839490232710333371085175554124040125389140360955071916252403591897255224040469276329545043134671310782471182844803092758026443411968636642261607626180081727567376453015275640657989230601208537555068776481453698302556417077600972182874939934287146478948235986628541527293258554755636704069562655446216017826217339945751259613909981803821912468609492011605686450923514492514198065049248489980397412184664044793515861693176259803156615736067698543802370806954454152411924555627244725946420139901166322600472001404946311965717768137724262674122096586697860751883955570235767575734948884857151909139281242476286615531750945137717134368868868124284516690180591986711677635053150857603545472602780909882612335449049584011113974594977149795362493305490992441765584161957347619332318020409453499439580343947895305598728721477729225550202536307986283928677367327191639676450103475194354241071772995504696814022402301582490937145787827868039196807000298877742453718114169713902207504621724930699755339420543215253385360979763587031801434244921486251060405583012361753841502761899447413855196367497942038590220281242059761604206553107576131130941851343245285254280971604732313953857282884000431201059881443783106354890390667443452534476516841677076976424591380151359139008498475133861817994276429192093670000966019691726512494717122119184928670240445374487138166197152361868129520013957563121679073079580960193752007603056609020358047703366991122584297137143366613199972783484338689884651703249773210754942509589217711587989162078920277310730902916410573986052278682755942803990768935509422723063579101630915703162804436787374181685580386610333610055513375358730333773488295798323199192922620043740109819844010371699384203457895651875426418505894986330783782271094733868519127348316093898663035126148245017312537814760969193176069653578308295576978940003970729281518197942481045771832144528311013278473597112207854813853178676611701870166890668747913893608465732283707310084441969470429051499945773142407959106979798781565094521172251579109302281302832890286965355205939677198669862154236845024561669516637759604845354450345295638399264377627637147925520939041492470831307034540632293270962584642985499157288230897036139178211135630897453434707567576727022645570544888643363951499501513077279958132419156614568024928778932134051455710649196352938534975767661434599882175492720179323474543488075579059924857052232949605728284275899840367221320266461696572622853038417057890640676970539723959494730125341884633063854456880725109317033785674760110439962907853796646174904458461812140851773858556639640216603411281507414544301930070566769525782613127429415325415166385336882387815694156032945076253796437589892472611385826868936529251797398065066269588554568891403405978039171614998387091874217900175871540829861574146885115348645344707683683985915374807240787278911912494875603621178191293592587217990874436938449367809351517535129294044385703751333115902890991504104965907110083612854670119965239928814197517034795126626309067693934587605071323330697160895577332861388007359760082027040648762411127826087819614246600133071043176138659330470174663749972656620965894262297546225526041526451559027284707054601895865460358443869458026652608312234966735718938811799931804061528772954085869717357717902740080914637683744502124809122986045955860199004847424550720844206092114593709090201955612541465490692787687821805542041391733338219160807557933373153311630345611375136464643980420178295019459431686211896728146014588972749500510163582289136879162366138561594632902716799633422615445407699120953601322426006708242176742929862776636333558629049835062211729967831894385509531321127374794448570267021438740756794141554907366428611882926828567770160293714205054574528082135159968971105699876121450960966234059837104411313144221407398870809626995581061123548788261978781998619464797741597521070571480950255961640127847615093773549325466961089045043240607485744360660730800392629297002648607973960419974433555773579792310064521724341253595575091165471691438527770230086141478540841585979780483533398171442099103638279358076653309273867384135121115526661717540319437409301949016809170630523957755596339026758999183797256140080381725696753612456231415935688023157718764869676044129510790270427117626839891718224106504582848706492994149201472264966222530170050585360322640316516031762122637737632980327902123618890394823695606139423682185660576972398671867397023086356352599295398387783995365000191218130994390071170148736706639486454475075767143153266604517165105107402526159991069098693284457279756739868548340610310338332129590561782001498771086193940903655256115692200055557198245552312567949746128947995163008356226475101228876324876940117602699048844125334402057072871728898341191331147343229777749219104651106979300942573393483287043021088523243799933015832056673996020449983822561820761584537576772528339649476175415438801346918686849378460919759887653312699967932440963048534222257782704886028810031968693434843439965383424354651621514300749742400758242834412412615299885097312432167175978672512002545434528758438770666935130777109607484262107002608145313392451958072805075971197029043530552970444245419034227210926961555912580281764117863780439257414391550978950851131775577955887900508206513157146934885813418382151344724384571331985596392426298890176842776661998988869965269068436644173965552474619922570640597209416863867799465047644973840490620356442467029144923453031960669495497204300042502361334655510261998553582288640043074671223072964414047092373319436962688269413665971969328579874518555378991190359896268529244914267176768349532811383697615499436270250829987211027819557098567657856898304125874648972671768261043591720683677287809638745023469868481149780737644337913381494623726389097529619283153275983063073476304201359878880628383429357331820384140834294200040365508606340987888268773719109409712840929685450598134829554011375857795000641082824242516707956071489624735327510042188767953387723263430649749372644965782346239358325337956872216167023324934605932484645886664973857416580214775838060282434375406437502766811885097890655422825349947973136512274578761718091148018723456955236576394451344582743907723968795157168009080673425759251360096034659592812646201601231359217064667451873453686857255652936438277934821023064395946558107958823702072792476162445496399278842407020608409842694471888127567038796450170911895163923758202502438276783381472253372726680442039132250714358099748070252952831820785792364092871264854915386917453156387962267304837751973786900120517439143602501470525267705934977865402710491759591557674976377545241260640772196523331425432251274023167299939286789347180309054439284503916154626534979004833322204132404772599591127309022864698965712767876525283029650011735699824164828946930831628111473174141642870972680339888137263061644640453399470079346069608885881479766918218572917230477911761951002332095938222279466433844077564565211290903492392541774283692471915981145178921974833937449764688640830226097253110508673465218562059821947354390509593432529361156245687360127106499142809320223602033886243961534047534644208306845156097096857942383640180291878020721426296826711168237649921641498967354013098997128942941971753015062772276244833248369354262063677530658881627000615202089734542440713492165428774015097228383710869377088539140162285220628889121732588578951959555455388361526189926498937016629543310427801845773672346645136394580422566202404421392822064862433207635127063530762461761504919427455149555207199698118906409421847037317005072966914028170746487900351857979694896297729666369391136593368667513275779691416691929221060329431984811100688265297510198522871455775000134206960770513376381263493973337078520435302691862893804843529618017056733466628246780478594148247834874966540911597485590906211024781880438945550971839824951814619455422314325543378999165830493811977871051250925916915307403357251575586058939211252096979590645163661844541495971244585025366391741546253815730745514783930856427549716608860843374332574056402006656270477295035912839196250989727328444472475560161887883598272046255856756206009430571643322045934328054324698390531216523234136217105934467121738625924693460778300024701039898183708516330769800362145783021959820109817791086370348255518668309610428678073980391993260088490336337684057573818185008117287728645465697424589654239249735412836143065189658771267686538391908077352625082184530839479688847051804437428065725932941897621729046845000529239542525337186493999334480178793261483273210435414376845147901855356572233476127846920904590472064680479106940347858316471671955239594806481310633526789828824847779255079289199525198818661780335897885670449807035818673758260252256378148908227313241323041480999327864912109847980647192059024679239061512499380476809134303551522355626183199872806448361892510537810021174277514664848759345919025367706959385105943194875818312443158138601477816017108391966216868108515832954383703410063037064768975495686090187212526612674648230140881183809180936975142965838626245887607120239965794928560671069059695002988367969053729974515640887417294920927634955242080942476531673741971565442658791205435909579000541205758991641338198015621495281491101174284155241852279418177431576560768956169503176890558708089888039582893794391554819053671552035456635637751760276901045957539153812641735290806252702183622584306413816658381234562365701033155023282914356873838325459360058863292294010630561696278805836321784804290603419611880788912166065415153462869918798611382355316559300139982320978027985277337063716105232355420642337505816257238705881791345660638703204772275117640285894592654538682291664370835989850502608402152922985861777268783581332849690124835067011651045500745296897167591324960176656603357107914927679627792189855278168087593935359181191379972548156610484952601722544703659093276003436065167052228456289246820969405544446239772103848593524432887685611513773815651121659819568788979476799184477356204961818462983400248079198674277025378290966283083363094029943835189244582538803972100124134382534510173069850083592394627504224326240159949460772543472487413043413644325549201300038968806172840326046947707952739100607849060870510373871842740183116903127812457501657648823678950662465244242055677592439665091801471232645591699842162388309265601973888879563944117460405686210656870591918353810224350981332890211666340892951628117414424091939110794708773869521391980458205979021737134757549973472076362240911069999672612411379710609639509556211986508107140493552137089747843063148100050624236668638222257954871298447838955139582287652258258966309742381993753332028905151664437503802730339028702775649472510624072173430488539388759211334119650707301510706895633136186264194248840785791200409994667490925953892901377749605403822127050511430334007642503439680812381505319606734448412767691031080085391036126284246110192947400102711920112757613612857010267224566795140487096688785839079595494241555971194178500819627300654141947002630863783995122242662846668874037210944033979733622679611249249155167365272167222122309316013683426116831641103366578527942033539894673816624405324155996155609565988683490722559822579392001854408788321841123359752573685474879433544798902154685157430221919670498628663902250320326682153025708050793528022236648099978090721330547105289840457302877296731817407858002982769858153630175892607296598081388956549537230062429531005918630722941609941511638054715755440628449618172857487112006554346256703537619412946771677783687155572289246980458880503056342159356498473240254158543195627991041545575218724534355138748191475493601955326726119438650690793529096591677855659637033753059742084753113449781064635162888646019481468952219413492542899615441220566283733900011947879978192665547988177490354360207798504583424955835789818176104225670104285281897965733284645899310844623298163160439092047026014502783994374205198968940770040334775609701378670196331207803692852138199798500908231389887463289314268507280110926464720220655419634445955057356394080383910634350613585335009838772126475523760285254163470704164189619619253322452060982214089755941326249988466827301437065829472851520750747540266030189913721081001061339379574630377513954738531235605579624996799431536621242881812200426066404673854215255811075687606204283428803203638014407561781273674320850482814423711102822009552715970868212652530306566617913836750447763143476720464174994557020919110108593977426153785664528327759943906940175291060237869732524439916863992161857271066817888310554840359897493807297639329041071989451453576590477712349153248143573603961100016663484714619211187186758920831424981551271869963905527880748503985621261759135328073288536344846432406415745656792595110795458297702797751326502480377556750420702828185790987072214233210950114744503351921231468135831948510166686855898142827463383259699565309760670703170852305478220858491928142250018893798338004647725904622820763837202478751671953801740603021377941805486488019410110145395604750568724803189693432545919829453180227041621329143316338379269536185856497100074117371114853800136500044792202642042495664785855634630611964495592255955650362927696558549577145368867090492351945258931761597135321177618004113450741392750083776013705373732234204348744771999204099525264376206705638870745455029632338194740256282514032799691887433798581456342950720600850841582179566695934763628006362864296743374992363155883603219248862998458875799668114182480303589724921510719050564839186509077937469655783302712669007038894187597477663562560647448906408692525774046121925860220086705265181875156400769667403874712433550861094932610603844362485574682561539315481252868517575099856696124058569940748452189732817271882170621851387720665027302275083172418542928947905147096561066854834047981108541151255999747259511969443996117542967215711413326201486987056777911885476206212129184831778110732335072542675573900397094706678158093703260301384772897077163032839280745430158727913039893552882610276284743782271627648777164210457281665055244483359016130877377347789612585266040850153854408383466546139469490239453844275540293553669892551894864757893165158799211175104916932960220685154493170895011357963670659161208344243110441895640189655759332497038238343833682460157474826056465982800419820787724735659611745570080012034300813159011083903908812889128015427166608576006914131476781123950681495287127986379316135520438740235182207606001666603646918569211322245736068778997926812202458648020470363690361821369005551035475195701645921406723919834598900385309089323334354627441358281781681667650066294059017771270055966136080374943839241241810702225976101512987842470700890606847227812073010687074138877775421330189314348701336028181510389676866274954697734040614382630343938784336135990196542041695629349654013153593123485923987610815143270532502198094004020617922567033524724176471436625307061375706637863624412373519956522067580768541856138036184085529174341651609465005555168095878464108724405200306342285299743052001881884523747975385571260720641242325704138892765162555812577632367688790494661545624512682911528974867013709058286579431907241631948992601121022549707866557941583018172818752212596528639760225007958956134603887747126263239839035962370253172165066399205453446022662345015708724865541162103922665538881040260211310202715963053517220708239778356921511206748030114846540649961250214179870822224417935189148315936784943123617513316388709583859513233506679053529167273949426752885150292819096940228120566840689732908316640104543056737082802313825086320429676533483548913409978010156273421145539688176380744174833967890789680091868270144109862604392982757373765807117109306075687198980286149636223061742509308880655788774997597431765286507058925620691736305217295979082762534464582708191393294015617287129799946620098916913359576785239690489743281421037605568788572444192492765856003495734974745248895906141963762390739664732551971096982460851051080607422363075773458197056280124578511603763452571975221085926714204230041005486847097972348951965154096178105432343020085198984508668913670380120325008511512689117125503328060067214129139872162178034101498584865403331150290804632318589832425481698655322445404906152895051460527840230416562030836459759450467232152197119029884932409518761776335967341043366703535138324032863993560291596089061018173234865019467385196420587289199215444523192453346028137336449655809651526711349308585960848986068372077994914791020770371186232182280120697933601459806322595222894715321888081944590024776476791511071384691228564031611391799099142092569974813258980189568512279208072705274529105555867360138833284665654931605035217442125303742931764697304830558258992901169902684778607632593796691711442676779718444376067581431903784357445586831594773753777003159363152503681015802496544936180048073068980727258470983786628809302343211493487284261959375656403015221743601470800064400654353234469534455701586148015726111977987306326384697382369889709733928337572730223558485293889586317721351229100641870800757563460275017962825145549870577684035842305004847524706934438998975145658822819906792899024279352239360685885877481681791569335184568671666138536557818919746321501708247486896396383025356498479122648699206488832326150721296306213132827403792325902364770131130189608145153666945439382597665751642952222426052873654786964875271467890074623540582343368748562309671181810714761432133921120444634856895762216875658006417206417421979008976889849263581903056224084881640569496353430251699984950371845671973743606434703946092326416975266145605008946038296702221062286739509335300903148190872448679304161259108830698280679021375454033159185676384362260791514403512514237880766368133616477845479624798399867511213147643501358707124859559496088887725654211033628341603664370062023909303907318733347969336335657992293940825429094540066060059376939335335968939585835995501967937817096735064175816999635017786238419808620298213038499177545554094204184352135674912107773030497478429293792269620586904775937612910595215851163404234012210420876747800022297086002034567887133054780444284921417111518549719184091561242019187097031331727159126149271377614518528018657277468591754679272780458372977974656975988724673665478690689159859235583751335525847068279799625783303261183282460020229200234712771204280922164394421740791526881375342740325289395100656432357295792408798827243516069805198761408605986935219788501988722608491294895385431767739184867088155680788416341462136040061008044973958052099080618798540513515550784811274435925186406709100724559061497468492207578446651807378745584255882176722575118421898585956824021852971974109783893470157374227875296383590329116048889193075567427122542667145647069909957335501343772374867494685791869429450791125202705719819708827209555782505801259471366147693595006958197058349264602233892344845854062430357997466426983993260555907855278577131658488483332540079177865167681651186167290654839111177016906356242239326412084864435442727285201917973147098062134239962693239470469374515906563322921575811319672678680511248058057749644862049146454947594042768953241159940271852770385478212588582237781271479072479307525759504774477241352086165043527974937141532207712831073785912406279454350656169613377049803708394376559943299594885746092921630210021201286643572018882557528766281944936639305289147087500313633028988642427314907298500454222640696809490750153132070075038885823630493503638988487959696673830773453360216746068144483200299248290146149425212993367351214763607949516115221303910376984483644175359925725402405860783634274315822337256970870093015060776779231822843652267887565897469258835689567592306146087776237276566017139962556592301269310865468127165940107111872768697263439491473844547671013981542192123714163256316144189576906139287882185336786134042839193702971974896890277012524446569458765656672801417614108709575998595012104322890998911686431172446636429125858608652448225224984762544035442752071042491855217066445684430880130390030349469906723571584795150557097625889801734200354910239423015887585239881109986504649683699875921682312188110816712438085503920136959617465085417697061729432288875434442691464509737237750918217932746194249899937779143406366223759824180713877754744513775803158110081512488739141330261461536959200873819538900285794216127801877847145004213140203388256339679986607768309201125981683203224651553375900668279608480569589205534372123980042199786068514251709941348998028869295314959940707133757899864747945390861910374674949637473706508863040300638435182933777496371788838711343034699914693054778536702658707461299542765044465923514736890356720250516108040662630806251092553089111132834755105425289781069148018059011354022866956556397440890842492976848641522250083205903913260394091112850871093959907300931251491283608932075993668675225379039331504678863212295155607270952564343285399557333396831398701692928318677661054746687641309807028026714967775771147509336063089887454414949394582988042407660966389895624392999783962578821535252142919457308955142450651970709954778151479623686435243187197734276592298810217580685917220825786440065146908834233427424918218619986449764483348286605594467105384925601044403832764090468688001269587258870955462841298014321873131098658770218039906904366429887359180311992218948597068579612149109452061567394308312914587141490268297353346002722277963496042766068568170312309984859983986998127463373945640484053809674320538134279569886381765898101967350336777466866718695206714337250201206875965572669820684066116515481542418864909258753083840465014896070910224758031044346453479474945944104822699207539358384009958036013145966501523904700188913359870305292815143841418496509208495226427525644920428114532596854325350862534461352033056555275313145949441003259511509380027308719236614204661294314335256853287048064008969087610882326048867648643344493025570894774249502253945616585226557507422772012314079328938517675644571300931799394166955095474767773520542723330636958479474317618035803757840971954030626148304383152606434083422241586827033969405059437538449147380654272081666983294217352751700217260405704989189073290411673430720038856061823732173148196069709503430823382106951581137046047571176213460922773018513169731434185566139160623929109065153990735074179213620285180999591207188243908478871633530980659702071080006832589496816662114653582901460642686386285343636574058626768678442759391511899566763881925297666798109241692193420691477221707904157952215229430366589674068281268812417627727862969717277613392449451564969836921673786958653208016297456442625697277672589984757033813101365582256355769251814157941642161465065715397232541003875066520682046176502188388792460669166439870033545682530514386392045363239114459026499106340803529462065347502691152968543337950078076213961464347629302669397355469053686233097684200376189303162026133784345883781111108472731751900661233422772200312835212362404233244365769361753881254916313207613053538669192591732364584167914802686266622498915454059709514705861110287131989667843901719510815120536757626367104355564614900057070420347815910947729414714236768433873831762342188444426168116527245692537415349421120912180397457582129338265533566745247766580420316536306549811633724759631607415288777528678714289152976763879153458344573918687707950781156244192779847776087601348744498988987216908857180685103781957888525381468806559818650258267941064498796560292979530740921608985610328330196189711729778446742222459274510066091306559097949109126192462266217009267770787264185949090729006070891406161412214854967772888286845671638612356969801754244374283157518396090668521116849393284051796288821885916735436943430427299495038593914946828166846486943364257101324635779912593693253747739305497441170668399986500883443120768165926597806415111054699627951635699313031525329882472043622269836797764888139680232584451171947090531049280871905493354612126451406985027962229048760801371825379099442343729576625308080276310311678402932839150324374966864779738803968066168498971877259230237893113406162659945521539744212596197238911739406378039842682958930545941584668751764991196842597295252519564525109012004806067306235196965585540896184664023805569016429539660692589912007967900052387126593008029196884086912739358747040517584725934724219056348385642518493977366385074308340111413379177671635431514826153282160385649265012248166826158632043103051050349860238690976644832890885660024887674180886858440383556932782760204736453830610086266389261239596980870371159563334156623572723288274056370641776784801795879670446234407679087452293603074977456215844951704761993291516917183887927219327608520437461040008377365642567411084882018708681893979624174624430219386117633407158806111823136565608926193343395586009291506430567723201697156229809783391581689322609890301046545824693160764127715693637812470557881927036696017001211810335129919436222593780114212262729226199068815106829918590761802303164040310234316046490005581242808859519489479879415847037707444998873697583534071636917790983767622457098053471549952818638760201630195175168315890309817583885628763962756396494596034760603360152439176120961020447520088579261045928081482390961126895404811455310226247482555115038967594721970284009778723112200952170951872646985040250442599349680912172664532633312135218266383582000764035888126891694787541970348068049032810253798389839089919325334923713646464257530060426493361674702866011330192342317678381834402629057915309739517256654492655746208573623393374096752603346734037101581661439859362937676699479622433563607181654891752545269473889584948104752988549867575801118830702109389781016995717825558814443196744168910756332868187880030270940488937689617535448090149396293547882139901440903808308009148725299173057500951179431694898902083652201183934802486583056845699854648812801738831726532473580229411285959308496367039082922695125108387586593240930628517236853110444709569773004514262678095009683124548667414040389229472310700917160469408899301265743485674212309663711685645485498788577655507483123789515489070256764211379016330871310130676166748596648733274165049099622204052943006446004288007544427343623212372237351244885045047648733892073484065584839229448554260734824693867738116317909850151839751919610631681629462978737986550673593274868336837251549637633165820908683409960107548003761246705986514229613744216854445466845601971362257433815320403672076373942114467632857414398478171239993606599298946852916589974079867687883780326082022115445630201895778507237275159559439122185258565745986830726475566805516574609015255599898886905642431033106516603051573314444954641144909303673173221628205740271824142819551031891371513977247571413196846604011493364412548195954027039495378293401265815659237057792584808615874318714294794095487380980849887860983164200520996483591763942127833907630995222958586898967203072222239899042747485700357476511448245942733583056395672233046571848156600608225464338207486368992144668325579250638227107414762650043185302467895994158761543137043425271116833734841416754666083555605992587362808693216708931472850098727519623066102170637794013729418110512916999795499153678868249277547489686430854377611770182586053493911531141517427912162256698345317024362036877476053187505411288388204967721102123229219775423452586503779580059344693763143310671173293887382991970624552617403294941029348150206427382057598745259152956294459873937605623723136889783199149173840883475290146770686391490288683286510700950284558484730539526357528732897724672884276200448847464412435813310191164085065898512481891684740568652145717991084620192225468178431362347389029966399852608915574496845662688732606122528910511619892208183377829174822658527533255440697273151069470500932433503889793396037441193753746337410086564690082074535253842303283211011945150241528892490562238815490704763968069929236205767943255863572048094728464670472425173623994560564893924461981360362261055411003119029000824544857825819988969312350154013909902126027345353264513750284527104481904483072665121068115082170568053786195231690055122276496454289385862123622758437848563891563873903411744527274046487842427797005070416629206562058384815063771796116858100473727618489948727882328208938991476257095967982332553713374052262977477370158485079271910984782334323010714751332205437509915156167056429649073413188793721531476119901475672414001636814162872331912822103821949768589343026981166700417182391202385317348897490540223548537821551957647449017122336855399732303432634496367426066138941437949142227990917540885053940710843480607985306217226999355716585378137567578147003483598941361333196330836865031898406827140512269908113128061271422133532461333941852262752126683138103820103894271035569202201676566351194613548336324637686846595465938417923216961658038102148719797418430743381869293628394523397209382605220648669878605912513189857079803430451007445906866293252781150209373440531981664538882220576032306176772795095677747444761433781570915152064568379627075363892363630215836510805518379642494377204655226215837579735734582708414311870595161376517942736703639469564552493574950969803118651177396798595900680964217240531754054794216332772898464323398110893228679126642186201910634127338164744575923242302405708090311283389225394059853485723723176432495762573150436962117815605483744540886684810202101931343739897824451274866205651165728059022496263473215898748364163310488018405953608794174775485302599476335115539078255903614856811831564050918154240424881533471553625518981730802050504129898397233470821126764389479203348597817738374642885367834791445985181236300491035239814340960618239724533633317289749638587713105380592120437443098366213784713222663713362468897953609239701342865457264732404570187346496606299662581479784062230288987296240908385508971238700306754697162815910877185176936632193996088231485027056201987544512454601605541211940741447057219671755123157702849240175751857918181415630529399021961856242493440575693137184357607379232055922991220857786819481840867620114450185891170719262292018246564217012044057848951884259132881309056757319783631517855813038470570736474699661680819464882776708715840367300109471793395917597995653552612106823415129839434095835705983267873513033789199889168890175095668170363342448228941290928202735419911972772716756462360399561624940142659833278868142101563101410209916272882388731842122393438093244529275634474398868274216206132967538284446852977851380927128679990707041900344413707677905062966963268255397775101542493987979200082648012476475387811375430778666357505674291216479052645601140421348480485232943014266150698014877214417299343283834671824505422840319716797632704782674884238479488852848112946482513866747396357197875237762861918197726729057719467281878139349659085529861688052176759415165651294072829058295947089967641558864743109660994956272819173984210189229298796841372347627296036943017878504746475867969475731150735997458131983844548176817878417015006699984952781859323169613411055186979670769111692555139291030990073460052899815644637073894486950164290755976176058903353204038356806549103223907523441086747731908617223808434461276973068404666688855771393802329539976890317281066869733400233545301538127547538569977913627476819982725250773302597407642204809656770591305373043516373578919053222307204974442114559686343741619668629846777122719280011821437600664013115054463112261384929431289009165048313384808160294897311860896599530895145839159972002689217919460166905775046826381691179595926322527251105091279582501872263364048949443275794800432809410124779571415442172591825186995463764751161940910237179153584895448142936771306743728844604179937510523666407961415238266889733200336320862916333664872037714060927271708586035502845113791969710196428501682795316021094597680413611596891144797274966241777660704549393181886090379247917953921060834833780845003490023470310640300909496831683303751030908984785491210247952570807866614398052545623578663987013192178339472157678459716281248330605703913206674882769097521210893147338035653162908609936007180619554973753889531143662235152799026849998094075639403682960467268434990765921061600111565930626612215282810590706983659067015977114594046365650775207330330554370659604491634132039676017288549458648927817089959782982860340643090481285751576648892438044256263893704588373906588782717645415454742386213898792194210992759559700305237089598408501864154952360273730040844907461161011037441602920905548485671406434779899488516691925736236502182832740047738811601635319975907761606328016954849783002172435975012607834738765221440509835222320507735689149798914830661545198019635088600430089756046020162990604496130385238807280128272757581112335693337016071160739647530972172871804728964662966118951046822782541179290470609971874689408699768038822728799265705570433972077348112823490829705461752550865608964038217612674458881689559721450640688624426245550872661958406537485771660285590838499774886610169938362161629836806222264699000885851982828643986520108561076769382592337991987973433387507886269424188022182040147302055127204394558280930101168135720936797680512751623797357305066070571803937434143232967053991589816318206248991044337094189289431952310379111340968351750115996144136181683712094750154188443667020052087073421650155981803813441368508081742179768781749101493810303781710385478493028561419530524346066358910792948444228055408110029029076158775561367935648863160898827986630902598426141724850215831852725785059213695246499927098770314012114356255310534798604961733764246319970842324742277164313671510875156884700476418767423677507283675517225219762151083886723288723837719336121299552839074563832367664510132345555438642372757788563491348719976684917435878389666391264359688216271965580573973587477416211978054961741296159124552014702756610356574854772343010276603731453716897912086658562539714830695969380739897312960211001168054938267030097791805997746772301313963379700255537506916036629413226130637689097238621877815561584135343640618515141343711960732117346354263752740418181414579432040770137243876485925123878557316666968149042037065032974361852223203818292363430472991083769898702887414210672550937999330781428627986475355464313643211538414001347345390472710641304127149101143845612493127651630960516712761527932997810418043013015187912518983383550962885673412736707967739182355961811500040192956543193108004204108639838370156213884760779287833547164608030895782566039656173839151731092573183294521999286582117901706714101487530228120705002439589970126591304916363774264083442445923921315600290215229126720867764391372316144924602916388306087470369367113757749190967340369396391375255200835186774792599740102036191496236207811678516893001595895479552203683340910715149570472211821750579264030540561301026142798938254427429131917002457828751607262023028224707581328903747120043849085161155970796732534674222888512883569640189150203492385582190212394687881905614482248907177623136979682267726881157717979274203732960091116605830822334348178530833336267492170872752001691499247423698433173307357483534694422881107697598480017256641665571380957011305098421260397777582753835602279324739567568075937517851754856359349374125886245153448756756044124583702360957212944873610750019798865100568206937158020139873608301829517237994428908766426629327189649975507248873218334259243853912261861884632901577502943719351495458439448205580743146898079059722546623590285569844987401569446072202120172292460049100901995488248796338079804592293517933413472508467455165861242417976468270328112665907937304687197123645125557938677781213434313500803201723855830710561935158755753383536926629323580099718101096801519974929591169933709426205848267943645675519375213649508699959049821338893027095820668331264619258367909669851537760690584401124746842614094373454978039632875806118701149876974677647478849690875510488867504477429810791965553772867533833839448598030357517148851464348987790462293097268036311838984212999618661886162735768329932289876238533727425435397174701005534156446202722054574303921245901949745463959076415551494320229580189485872732825004195387728700719482268761268682457363227037372264816447662496960649703747732570631375139067192787639541980710785911966135053491586838233261024843127738303927310445944961525729947931094456785049650263118468280483079376912177340439242843917040701572118393321713573670141604577594678097813374169276493673906897522807345179284131039247262882169395262576196643074608901881553197289219532620229735002509255026306734273935613883542429484359337712805621141846604178166877298289834069753481211677135302590066165462745160067893718491459093247970680177233592860609529272319745648746751213681763701347123104637565583688237788163868804866100222245560116856426049755585768198383255258844829523012240269864169977530305877802715907624198457119971281282528348175624925833648765508080993970153623218917518796371417925797244100439293648694338549871161894127047820653661692942326017749309492851102646474258235029378855608990200337314416017868568309942046325091940136253881293197594131560852041687675640002700440405487778196259891080082181975342045766882778069941767175240877138743162649358667147872866677103365042437644077093827720372361298563013041407986396771507967390179856733792088748891975054052451785644305540791811404655552203568787463399790543083741385584229269394406927801342266256156120680859904360274085857009084460822689627493550621561691969972080073576210842570808899080094785552757566527893099118147248968723889571610845288904617700463901635691721928927245723351975279426332711046821483469398756276164188988843197472344865142012342453189130922525503355934573374746854684353559834981414903987776829876681313218963956759755634314345196311543184713523571641011735060068791808550125878984075816594149624422302146198033659334684256152314587352228402826817160376147499466981150687654651477553655344436265289859611533702766845071002778047885346161466026486673206818674079370778076560569168217028844732087294073734202757194867775237850894811596412234495978957789940236322563929530772193277579425022011510595010316812124778424463816115481378864895417389800159990584547754840666556727064469165798210266138286834040876020694617696619355287243748377595732216675002410374176893017299911502142175210799703258118401368498492017579866808902728424409150510624458406718821908106765788346614815144305688943437462257830028104852398477552426814089784560633132604769140704189594479140418562720738832187300348926636034173084051740226266871145152804797930436805977393507357727997504437287267664257144439930152822119974930231822206386141602292244423983057423285800779461307317430832941812978782743405547640131529239945165944604715242775692313035305758551102184787323305996411599747184192023613075597500752903078658299289430947965344167467564326048799512613297381834695916049625412025197975640924603043305761779742666864420638005548565219800967066799556541246281056532163729109166697257596522588467106335143565105805123010794780236904107862815299553961453200028506389117763423290409169484316289241075414139371916994837336584065020391128034835687965210412119370314973448149393585597297398407259528748825771272037875938621275882467066394671538709355875567492116945026420107119607657334837646996335320219565452187935327942533104316225417988394928637302294012137194497422577567975242777236256443880454362671317857433831897425076087113713544011093489591375156991099717365480721838235230973073740282686673326524308555324512849406552553404282198068096897473355838558460399828613941797767758659354888268929958622680005658492998271825916801327623373338960210526154788363769463710250022900755690925909258740408491796721308030171295678746303918746748913086674319101645487077775712141721190770437413604283187092518001890613923670546233656193928059447395701283719561650393480858930686649066750389381896981630487557087791927310124119238494237174824613527954789225262895826356523865891024424664470470351347957155743554669075424647779241213782902946317095097092663096257151771036160178017643819040738173565952774164941211800813465989236241213025916852160358367947952972863869263267164819543651397925060758557223172342802548774186008837838495824442403108200594512907854448749798580067874731887548244547389244348062118970507841651320666580260318232006550770539079068891747274361500959405744928558598223792514950824305242934680291547613900958376191556052531983832529600806872874488532141449209927526379934654194411641032917041518655242451949167925114977199810797602036886113375440515155374093504718683046072333356529211855491256009906507179875061919888459864186612742966369410719877170848088942517766926309623872476270865454470620804345632116534981799593444220417329107445450115163796543689633721475233969597477304585662596432222537105156253830259223322624136759037809799778244568327902856460922002581455655475937675355032812133896960121416967034461384980635315785508899818111977182397366061504136989142137213085077366577492803361415817313885086841583771712561785227035998414227704527203577223504214037016598030362390487597986686805238473705770863096426510826237910897056376719235465832090954188101404978538882865204468383228992978690994989386833637531934261360681372422190396601585831932107543104996868556238416899171993003364389745981446724378562619196740686737823626338471863228114742342834566500489255372624580221000147314234080754462138072827172888637353121303881327203229875408429039212126100093514395955961025043759984026111688592925129592101316613581416286955367775712902112476324088185108690079687545650514097289262070256077807949532550635132121644475281988268831176612882644908862474542331455519626366671857207634456198006855996263582113215256837135206213429915721872457225720526398871490575500500245823492527612778075580559237337522137467361174654363961436407911719466159229282635114377393167507640884500939688918588076714892819786425824627047051845548079353126788352875974193378101136849287143240093428483194511385422390666801265447936472783699070380251586490714381317593198692063119100623067502394573718205026447871927728585750859353917304598129962659981624365583411854801682815086803398993035325613502287085780623708680178816935587768326406636460941628835437484155394423091533699231456437237624490359223763200104972132132438712747222552370212416181563582170550429366027123235479261429188344581461460950349319750192513548259967127205764955189591537379317996560197214453742080971551692661098745243557666209330740597664900833307707220263334215129051724942380843873922580388487473100822044040720806825662932505967678570464720869246792808039840355044543889995288632187402627530112213625257134968981486701196591500681499644555639318230279135542204613375878784961006909424627063442670917113917527574268916308077355611551354050678543597268629951185803946644281782674041640187010892490319597907003564541951373597661220888028502588740415840894447938807726131385258418887734953770476827282624862506975553631259592083806012288466887733004108961214123624747038211963755824163297955991015777788016933286515867885841419829124011308481122705770755070518253673016770823356906571041170291367509596827005362422446141657671992522973128266377233212595886320142064533447957991109972716808792577295057261831446769784943238902977282957383937086964154968268690197636021611333720315900182006416514876792566309204201607430163358053274230673768684190089502932130017868585732020988268328675512947947551004822842281737458423162339072931775519173564163194452448819802967201176098544907250619496816723594459916217355783701205133260205446176051526028247242474498402354358976995483285481271081488649921274722183555032415287023347141534305827943387988237049634738016717466062660598278067459542560111115593434635245534694334816097304287658273336726332302651719536251492571691210857184603254635414141141737151738429528756775874322247836328611994344351762015162969485257995231770920303255383598928389294557546904412193214018789744644963928525193843956850514360852653962459297578530140296809076642343898873336116641886763952592651426087822620756827931392851921178599906064509879320267094833510618086494942318881919229567105377351761002636270046093840120176851185095932781586493125795492390145614855243639101444946526291435644071595783795683723068639975062522476425844769487735947035892435869388847574970479933039261644795137711140225993533145852705928108704046881057638795329725668576215822181209585374424241417844393670808062303070237124901187837661214152876180620170551133287255073648911349208195413010643025371434551780968491182567746391544622641477167153101511607514908812462023090602795157208431792831560027193846446525567463526647116532233425870971862688112485154521463240967937560826928823792856287079754662737788807084620358196892718044225548293721978524211426094755596407630091951946383786071263464150801562300073847958601720132665221037918212458429372225408070601086406226942175002195184631855051717516010070784941195772230851476363548107615191485541936793050257199350099309090359584789892295903392663101548888348979630473922489265657196045611104098633775672106808968542528204807820847487491437120712759865029837857557292139849641784885188140710473007661276014348540923717699583364438810172065833482801858141339437694334135029504255968370268122358687054388781424236505641975047545298194242287987709134917602398885869433443564170319867766592141352537217033554084774612213470117276592223163685119068685876725835476239769956542051362924421486997341249977498292647308673044605264755157731678948066312833146126865448085794110066374831399187577064204265692117329641862145284218315145912805264678162744177768389091489055379247985384145269359051852518461371605527471508512876278311804585673365914555852747052384721163391315841403123738793522618551350446123418174341416578457325412138469321814644059591276626727585845430997879317247292409533821732985834327050248407697235992595060391312460544939400474506949332054390066733739022230392698093459479885871182230009865856382083753927075800266584422675717511780712775588941392415586625945953301996990438882350754725868962507229415173431493403253361096366321855876696866690807870929997064127923218928984394158935822527600825309435623208125520649464748591751105915142535805818740102163776122535582480123000415293170257806541396743178552767704580697609459203149352568952186901950669556639709877986821026222607347361706862009799947870402096048970263493326538316138936738838571299404936900492226829494944708729144230934571346287532436736110424948132108754257161510650487283833483350226631150444097854879378092109454982411005684122765592857621234832540688209929895239856843849954767698961431275716888917128142431043199324500247924723923510822383101927152580106425664040106044528040365508143370825703336105736920294745481327080744063282655864348674465324816661927109128199753821391457389401534244489181684363975567418299805566066631256773793107547497673462810732171260100272804880236605804360664881597478739402437370168969412974039900578404936856141627491456186571906449290979624548567745598601914704982908558881121319344856183156071388694502753461406373948661121463035200177203035659936785109064072143783039684420813445743633865361141407710792260287466359548536003437418041033155609143662512466745209600469682330557035839778168454342646575614528350106939523047800073843301708980566880588794749418177021169905595170804804087648693650293976089758568912717742147082349138369977742349843775727323773203925813538239184988999319865052003288489270798761853087112364915027576406376488916058828862658714034274763618981950097984455863677438832778393448352298995783648342995310422779885762269474493603237497911041560588621964210555573018123659419506643437554553168404374553613588267999647020027941663625960966293813351484027116849717626187459322251323637176014615317863808340249121671232614807649684014501969970760414424558719896653915658864590602474807679559193757771936716315245086399730277085057840638446852964315105896853592569845912561351726725395328355599317843711982684276683936864850508082883019491422448599183087805418092068495173017304243957584905388885760320625680356779930909222282184094496216613102638597013212442648705573845597361136157173815166856302796322816735004695092523730407300032664584903663610356942586373418797059903168250554632286614259932754870099160017763118331670619503624491825255614534655067126981719814896934164070405919780956833708108760361014445375498331767610573568748899110744824804137988934877451562068836738226668754561820884690894209017870653472922299056802521988406023517189830210199185181726233156122556155587829488815961775744955044504809779311308895000861918003946836219559405731663992672490839996861076331021925049381067380007533527512884519143827780425309917256664378890577144653507455705479322016137170998336646246728805981698514881574623369798778781025450736579764248046115899204245327198319350857922005707768039301730233040801321146891228850493484608103674567613653682870932571545603753657476114769454907230897755916343635946928789276221412281588240885278510997731399578374448261617409491473856429583859028477897513721532739286939583590379360347860183085207003800774459930148761743619831130960017688846147558549438504665574489909060745978412084534964149892427842925103445154266790428468358652770230142675361197315978542335361606860101240667807887791634753516391680000705050948700671292973912570404540380871992423705641502637286867844648155142985460078503253091011213069248882507596238414675206733572453943616058498706054006537886227682467502065933355515401709794840924775169089914368711450828068916694928790300118691376179532911233269602995843088134623313032217894421286427466282520074827059395786651733188090199830899019659197604306169076601385546597561916944688787502173661109139761801800592252200719032642320944220948062131346110938536585930803311490683908903309154083785559782643338008371201451854233689946501098861400965846637801288608906517660133692839342631113619803006369839510726218809781722869097432350544124489044081265961902950518376413333787254375909006509201764112007295340002649200008755501422987968993766779703820320367261900553378419684131178513968695225325324261098893680207286086361736656094883487717628389937531584948701181069458457757045997196573916709291652010772212273008343750448912078054614532657724781344333884892866856430387336043359129818071600405837179539184902725102934286415658212983681752236550696679197937500610806603862882409000770072044259595194275586792021914896040471063092499913362473678581614657575009227744063856057226947684043205788275864882756024368764785479322893300269353086160608455103999493497951133754110029867364550773483078390179917719549280891699126764348923129034807866070409792696070323498213922958271201656585341392509518390104187318984820169108025450209412751124424424939072009263528091618745255780029378257227156433094950275211490244891400412652318538159812888619415741851449504052991383137598776534307209152760710213889058821590067135876064495805798694798370174746132815137723031027910940486460384862908987104954301139498136748795788973788180654891558728422139039689119542648277948067086766320204467289042071108307668159894489921952365410904917980572858199168781694810712991144128511948755079048688917167180621913956311144350826574323877366321180413733649663691884522424816152266028164490243698278877579311589154158831000285931030451037103243819495755492983269560755152036402343834347765073300354568137528876939715657420677569869197308691582848374691365428545720621001333100896932131966773954600542342236033743046039110683077602625195175080245284682257689866389440743860732515475153935502862537403875598329697672716999884347235984593715500392199027789665866283835411411722287161906280453752064532376882074175955146932305708861656570566099657782586928528953195225750241460741201615384657237185618456507271605721705097550412630183100118290988419170347176772429634244588171562058874352794462671278101661647226987265698101515146859978870575708856541375313497654561322596831884294914676498085355301029325917776291290452245665434380055428166469951510715151392266457195899126524835503631103736648938605376507456783788814168342271210573358893854020567687418004411455659869731902202228171535641751318849830527613633801930709781835217676461132352090281002247591919011981258692008007582639285471275110032692946435230971291812529365586528060401411355101177046435224014374632968370900467666722793940423325779053180473884881213274010152368529525021889249207788967691604480649276182638075669567324794690448067735071827027417620773077790041539201094454146921742836531158757697226871577304216938610494271515006716182573159109542806043859607693569358688707438396971127691583673305129100402151130644325861590284410620418970953529845631841605157996780335557005239615145975813469053471585296113414900401979840926514482923600081264616270452018698378845358538668605800186701944769672387015251715199262587870023085768971923634562879754554635782379094858271910898664654753040607032698884898990639520840709411705762814246661498253282514946822671988210940597161317024571129764350605776400949516724458057097836284436582954355053585097576558905386193178448169225260003189314271027228998790390760158358328317313647345715403909574567726033149290383701452149034597579334575539550485988761604462911258349149310698200565656079035250298798027336670701147058102431030538305381436426562802481680462189395892762490616298850028286406652125747556175279528703008771890830929689860661775425210596309177371006763119699391714147705184235814074330307283920516692913258570794954341366689096676323819672884907677699105108198408531351898119896953144563228741433450360694590588931763811810639388963993442299535714793647630385474346221680106507760531999574850956827469492783689475125712016610301566570175345138051279826469990673696187860167265673946116059170138168722836406192677822020426741152244560957791670945128591446522967362703409615882588715366844732363377468166305772439714335336811523226702218953226122580098557017666426482922070298488029683514948422519188170726285126997499030716540370573391570646998610637956821989494916767724495580195246483944138971094687847646959268342933852786171679595713983800373882383648179085478231976976766976346838396455916336313364476197728325583847920797162058150172936961696022826349370366079396245008785534060828757953751232841247785608124145451044490371724593014598941752546908605112422910699955886524274515602951229842795713053678032666625446333750393646006964223297733803680780824182188353298239884908358760065360731989210767053224113155009198602555689661892298868439293021306080583711041235765180785079840409505916444276136867178212404817676859959891119209232297976798181611764051366369885592079754560317834639868003480793026887128712327861896469951717557143459089692463882158800840706958858064427135196382874537996248387433223591766004873070079935614111889366098468554620938523358580502866884505269842566838109818462386584828426107071834409614871525506023114759247259736517863044305608703863568405985186188312632145151396060431569826686761357358292476856370085114565734947672239062669182826522639942523039816643953059154527595276687704031638659891708158912624385192607178223669152340340724827997366152587411518410014859647766827688743560648024221884986833536590666721151797641162876369568430227755719275651407227059763469519371533386232649305454469287571556470804177384155539630649133999873761747171448212213145197642384203450697279514909207383631175476400086018533457584028123676992288769420545108736996659711683672363689568071639169412181151686657621574063328167545811816668500021785435543743065302421520817303984362950129472068116146530870908227666323987407191763511338949086305444437910997966248259822759915851807651861266511232091331446616531893946183283790360059802941517384087269129188652015186766971936181983049537326373908354587763530059145075601432431194597592113590866980581005353163938423134560063637332935164019442187937837265088554554132446740966194337514445074278163827286048486361146491857690343633318467086620655060104311637047466097550868908998910362151957358155621247898978414170299728571823516771927306212542515721193367278506429474722034405870243179842034782396144375111271894159659196218538117336853917783228254501839785977456997331741779468856997030589780213754834385719960299079731554420910826544583463671518097034280712865092679202342054362681608424977430495521106110076255779115908232218125718430082936901730544168265220050883811264516058752537575738158673369708543680063443459233983070375527521458403023053473166914030863482052933178830656468231097994245358509073683413109383213461895199465455455359816761488952218171312713136580296424933766329999970196141742135744300485365547691214958498005158929998404369600967078704766405655438832071671857237292586827515856185449555696186288543340576699629924301617114007893690232018858186968815148737874044450877177555337342062769072183852423659764066615768985634639017875432019781335410782683570170673583827755552620900519384458674135453629945415948016569839781886863925098552741153019248616621911058270404275010772701516399918610477206534454352160442243735694358012066738957662062475400307727066357901069570273055995128124256352813888524613366375687121891118671535419714169220627572989390735179735487933058577579030075165716737858954685757668714292312531818531070165031061286119024025362139182402077398740974181002558985984009391470364194457982854232277587371258300744972366174266513533942969726302233218619452448056296804869423403537736628160541233204235029849734211316534893190808244104167094956932641932340989506314564035258236632044304955350282825988561972196549707611525774119408853659827995979126900686891091666739709383630419806546349663714598441988880794044242320123128121405136933703943629233940511394535971710683787943809880692195138509946788089286390651886992309827407529078258468787374311018591533704082413979753382189044836656302281297001536118607585664999855279484910703437947376329110323552605864821443418283464147326610190987620704720396739668018179060096381839627662904433816201290003720728979634809548743563127472782196809824396734966611981111452541767314534512401588393518627489897218967610700107129502878328135776170044594810989195502550934633350049148729272896941857437212501845006613914781971294496434853322937159878054866666844257806924451876230565365048189872543360962185172223496971071939033663427131098932446214988353536557315970622294962415545582980204001844775071279436833249899870434633627378177286845623034324556491948616386817189790857381099621039349885175362151779786375140131175756833387260574482711119848519948864106458612869775355663961961408332970845857348587167075166905104175830710782592706821430524217808552249139030725170072122715073453081392969178800684738521579991317720256670363774532920608669426832433109270516669705071699779613691182986835258769027999797442675656331292564239237544293908855291639537235399562244078048867111765518872216137411516690709007854183739229729137835122357092288654269256718313056555991370260070337644648978774375069570705077773391443641677016242483461547127938649619869133372339776689346876055690557141910585625397693648787092855782885609482957760485144609940153093366655638304992983339712669593275428848690610381863654121866238882539415853925046515612521424804183191823009695306527948116586559957939500844864856683448404913268751251195724324300504034217181876118650334721289546235608715455807354147636712278549028457256455782020229309329699092014825922951294819092520056742112722466718828646292749585173550493362108876310400175005876561994601749326403838990156742250417332401028438067827146374467509233885529008305457266573803457549097055979905066352358588886731487030500778202654617671373370359418685130798936601304002859710885713804070403881797292220036852418764788145925257026222472183480126758095315049563550623683024299951252409180128972446637613884237224202309104432475724333666469411145451938854291452662394466767151135149420861587011377707360934042377662236363970628338698873258311322545018542779722289652814802458556648130536291376359343712608598289007764794833828905110450059445222776949056567084010591692237843310713027942099207055449093334124396818926925613475482270993157476104807973959569825904190171712750879256562937418787567523700130452486638475868065409067993279827773182198781865676902688818648429316760630562452743384757098528604633935974972753451228701433170982584826008002971454823850020347009901587174970231331540136575899649236590226349900897807300087791178242063434084360894614276571935666159848221071147432893883320866364661886901906781799387425711928532494824697111641365676384514564434864171854895330417236850504309567877745205916264976287884197589271816019512505484941967379679769363463119001953945884041789335417562690371867614520005882775292422387956695319068421436931726690392267039632817963612085482822467158159041952556069823029777089047214729642440822739750825779873557492591183822615842497279395463805100261919699538049799979249809451170549593886433205024968437288451917590531895938796950024115790524624546424457450458118865469648854413274494704361831853536520101363304556297055972155856667089538028486353481333833570156780010375524046974745429569539735337910197098423882780252285863346374637604711999447197907941798250176434692899031533931384851291634400007811372155227404096515087632844567290679909045083034031084541380777192564144844438314823215891706634141966528373285587668142019300748852966248081026596074411134580665194142728845246269811485140182472240922874509976519593123189873929175558185794132664303519552872220582421463813188351394084789148448989911784388647429993803850156742976240230664122939421167082626762905467307834699588862794143806783316480188262897811148685931714118393777035823528857356654911150593684691206240438190433388617819416051663718120195188560879764927520480100163460993244012257248696990553162238089066693326914634650388548512314022188435388659525313880467995585162967288042548549404874812480323239459669826086828899316433158057868102072410226116821561025433241315839393739278985818517840333871250090606850151218726361268200718770192810271554362170708067325070373811379453988159992493097155587084549892528430954631289904260439306453132849710025448346749003426615069908639462095907618629228185687756850414207003512736623487539105062972071032709414626812985667600139949845369164631183925529689609581795588451747294122902015085748688062584447472516101849998665517138898794616430166950122073491465618306102102363448111284773837019273517862998793792988158420399161804363951926731511142886293917452126651466131201056512791409371695086833299439584590134900551330278355128458582542822056522257049679706356956317473009421627200372316697418559851447707048645721750098881395413983064781856380920782130814882929258365423764707535850219402755470297662624877124255331157043330125050498236449330219422876613006523038776517121403846143886315671804608025191768157168755946415199028599209643498836522707026143879524993793406920193358904939112313509326256145212418715003225011954622192039897308047693542393482294367182354018646530374589230034510709227459547448345611216669272680610931177517155171724964937906667763516913548038763683153823010838584122368803976619150735801323631460632465910175932434931076187537486588751686817360962733335975406020841238695267416283516594787089633632727827739796501160093975338903366764169389089976708444963159974926811402046437934515797010969734826836281123056250351511044562220583054002527499210578645353616327369001720784164035356337286202027666515515520768395119280355559244657259714558434015840955321880156731382752631355415825241743529986101719525676595013020843752967571683259963477884263346333698130726137905147539200798456463469211032491733455560188277948261475921759919981414773888060732971161859091147694606618620900436002444126463500898546790465094563097699287261836585854219880388716416863226511447140642102342650982770430752342464413020282069672207711697962669968384489972819115518436787312662559757843989465727000552495491918812764734301565022993996278367933670198086643634444022559496163947913083831305287021811533410769973762910207057695203395931147617274642064731284487911667246402394534041391287985048825452132066612037210879082677171382166008409123483686163597489090862452877045659987011072421567088441345335495078347547552354528896771706869164572662481386703490131186836969881048317085899664270486722618876722496786023075979645604137366846442759249970271084421261416672808681180235400105527440691329375595887842798970269544792992424501498839899213152002267949000332864632121588461319168028141776594801133107534972086917035323678588602597285924401528679766907239051729099365834139434743831655410523723851136493408659047750696118870653371546991865399485753823062142809231102061253289170987157614527381863028737372192285291595216872016619284757025305903415684688897824023359062755464798438413009871959876037939383653697916745180306787691354476078508726372961946680660666200624736455272848397257281734963147695656371109437039639004366103887927321752077891044204281971394795397593858989220191706278225791500514722490216702072497652669046720614782839086236590763707985949429069274370311726808680259733496521314420971789861669850816803299512001412550784253563257199171720848691416755298114107832446352600139172418999913933259099276028815865828265253111993703091946386695375369327696672971623490047265180198061510429994063058309195412911141314162306181842166870501658315998022056291990649338322393913987871470375557583493297245116524522382785649699554636044098082002330634338170336645987319300132075481687357410621387549669686236651427069330766499157324782155086396717808342472462729037910087067051386270077483083604460255217092983769440684924647583472165973832746971037337464335234908280155414052904482034349992830185773200230709910043438811796061301888285920961515165068414848978033835191670583129314477802147748421300974350475670155218183652393956777478579477039368074741885003557535873079816693571350100483908735836869485560235025013327261555366152965405125757058886427695485494255200644343761324596513226052405212873542795227313201400591397878300366149870389589229415351463252692821593210521088703025288003921948498290456544981995378847818650291446783709487712063071691464259831659586542343273073936721058374278244149555263314294678155442856781539781544520223033462061160715529914977524751278414394621499953662891601235487288011506967775022081526696433270905794336029600015080268212047724303733900509103032721769439963042431206916444922818393055128139227480385517370567763159816649213393413523692254216880811416799549604330297965374272371493001407447439066342943705457302101313036526074755753806114517158863004005384257777536844961870855271009517845341094139396323655374545884680041586383186839395716013168798335695643929076910556789163777346490480877280833368943938058403557931986170200860972285878892724266183395426737073748004474459750926767273274424822959483275560036476225490897393092719369911068001426386880826431672335768817246621829246578589815173582303087897120290343231553336672179620990223473900384019475947545797335555796632819650922662182222088931794459362505713312183722781605873288977286626589986554059625801974301841518317386447115485323527490235535749261051149752570778940566390132692363494604352143033570504286763953868449673957776390046899306435645843906181245445553897598417152902868986964013877468156145060527745143622050746604898089364908502796381245925429048226972548217715168075517869896772183125479629066537659503548712560595849056402145199857185677280852240019412692516350139231021150552860516840029084167775828367432612857970674226961892022792075457140280679220064791782232228337143223415897391188071183119475817652758718375347961701008187704617815078031126623741829926616569391083981984618236389978536570950350723407600183675035932766087334465110506634041551683310128357354170525567496860054368196501002666416360873931707031247327487655950433895924642659148801756608973531381263697255145042196843620999873891088480941867438550771481114708671194320861473300439522751563234830009298680455896022886337491001418652310251917673114485094883203509663815756713408968139449891834461479710395616925044616916665708125940079850427656009789895910963247305826800014720707570826479827520600309110081939795708472331443831900696968785622017542259480618734601903913126934164516470343968389261166060208055959200574490003733725196643015386806053561644176813226858767713101669509861265716595480115116752112867862819930063212309674705960902068079545151570471592949031897241185597006008187567025315340297154990812309031322689711151711054881114475459858499979547868727683501264729576910783958777113099933507454087666030133699979274356888590608545935164109857381409291511875965384976844950964121324440891380539834083702540686016564810397974233821396309603511445644341409959958351290281101048168100313291435214785456781809534954779365427830416913637011732697335977315228211348193691849432089040118907538718870967292896966398279672320760736849139230931823934951993611083918408605815588682865646589511732745615620432168184895564691357403153795912037223711750397388578502560701186015309133091625047185501181716301431216590997295127328268612573736349597792758621706542713582517246208583530384671857170321496662795848663138424094203106167742796052405994872394332230237326100008443489761509906914033588067250451955355859637782475424725735342883027037588405094494462475078949704244225121724008102552112010740150677359536963826546563217493638779889657433039840042573235718075535482685348374634250841385723503327216073199960807130116510676488218858063734001816254307352530278257653430636049560659530800742338269677454067991857098136043404869655839216540846674373502690118780396452902474308849440187716956859283029441890938790013607015345747524313490836212781106842556764087640928395662021910925892455756874640709802588220024806183465689147064127111538994437031943774497612883823345275488848984258499048999197569993361080136413759540691108343578992318305880650309179304542873523390060797223693171686450826042866346629550948579009779993364094743732581184840369639034629668567140664591226200101033029018477362530366642569320836169861630133209787273180499726413024078038770643092904270654253828689566898247076261623604247726294489577390751661956690526225108552105594857513482607119400722425138547681797129932735100812550972575954460438190534765264722595497517900298405346162873724251470412264269085442896881598440559570715844918880339608342982365162784419557440771247623465907412414365200981558911976947886672254401666785299315173342397838929916334511668532619366745784388829408827101907534860278986049038751604719513722774748268506949599623677612768278981880878322612522486316886340722908115413428722595822192912831764559558982984605667011412304366928007489246770175731088215618395737626104980434578644258905466986706391596183439695649031529274864006231597107650673174406066587018562083067552276635610001477260962576200817478648880113617177084433070630108296647344318072131799254088098663975711308029981189555319974119136624072971201762702305541611686299465787589465913012605367532314404299077025809549885840428788208690300319852735461655351063313148040430204314882892729390095274407862015930178278995588066615991068147661667254346319521465837602019202373135451790205552533619677350664971311786651538131022285313585572092294506152530973382053614040473495978760805435539378468323460460826515835976425937644762619608127661099223216937331280954094411951826537759715686716410047278135292050421844579167549711406162167214571238849532270481370208602145071024664739444054683584631467166988650160296459251391330211983283162277099899445971607927645589419767328303534859067521446859663637773902687430395257348163444560500735559220791937743219493436851009827076537339835902869331909781609961528457116737311974099693473189214027360104218602998635423139521454240127084646611004136536870209144869389452670952573520040858104196284432250688825137144240569479899828897042813310851800872134135704640379859500880041219943780628736536141230245488135098254664902371248843606081422853697089893777230542064289073573845539530559061781440164650917280103003324190188675331623560847280543714888711296203972302244425869222520936740848024876839927680710127554484247852390950181751517562537706786573561436564952099813200506926139417440288541232973375795826387671819313521285263863147024433450625453375350641060774557041016525334602100889884285596799918130840629122674815125622343393421219664413809938952882071114558510808952631084508268079732319012640297213417515669780538796263621873662288398575687882347406990424056435146891684569358778420248407200661657143429545451788212915702767529778427604343956684473917224812368020907906424390716349684324586845563537493164473926808716495412602918562041419577534124788662153671596923426648205534405439384437010702804640926560228222295194148803004737620762850902417213735904675516414449711851660506297908796111372626396081187208219970878154724211692271738887051542764399652448576214483518127996915859770806933390788985917428070546309029595010157818601118672490360865229500191787135862977940274988816997939846224025790314924565727178933338670543497926931872728236210268152181966096212616267317581220422286083071992298711581354430469972738894399585222643177270924288718808655907978161694345979390282078825496374319116791230010953706666041354574699836834411488524720840363564646240578445432569487308268540567704455494250233555587044321864544232307689638966548624273518958721253448430128041900915540179519441124957089634165913208663892861187572917142246120026019734013789599791606848643443324956739648715492038599820795899676274301980516157067429010339356829443690185296708088525904702242197328016586805857711028709249241773862954446601144761122116274112378249465771565552481754797928785284572239770842479137024442459455841525866939791994628452689346273765825998837816004944201355350219774345148320455464863192607842263989169027817575224360817152733579985519356981758767826064832837627927996444263269509736564582161029227737685060104656159686747667487261852013086535014171996726600686751084886595023678182410955162372274963529952508601216710006664727577039121815014724481260062579304134694978594679483911254402223825361985914332193185942160069017009348490331779996876587788908398516200952565335918209794919026746869101930960826666669132581160210411419804282775514085170535387632504053679535645969430753615508383471147710249300328389579875454559689974997060887177298923762776590707335408680617721678779050218665948444185436920344984196121743218228571059638788234221446728752038994418068611962628584781981512096901025976529650361487578195475765930848685959161681135126565784257495792118704838938283541791701678688735859176397820868230068474972852736647469632381972292450697048866477887279314047218612354679779926880493121494721772343156210603024973743694504756143649016535776086925209057342087927824682212232546741055088922663685233137512333620127825092394685723782573397295829429138910349493401267408353935877038607966027000647163274981649375655814184893500771147208671195390297734679492877369687900157652917718511021896583397126202496404533454614473798449133977061083221825347036258351806612099631482671073286558529752757759330396877769889366587599050736203213371767878525567815001609252198842350305288075127127580478554371427270633584981634139000827631758122663078128562992451128952316295061713051866605022918008321269927744206503127996565395893611944240359205358899459626864904644622061146242359524947614074504118995034613507037947733649154501027374342443761585862005230775176365660135122244611390484870821516135306455267962709431055449653202877029829084689735140002643590763716293077426736210742113883807880532979510318260231432603366135143511071477180677838494449271673947237174712758734223924922185801601124079106896375196483713120594299256463797960017804131931713399092762862124946701163874884344328721946692712381116888259241193190477464149428649282615983170789129630559798809953500873011099573309986812085685792874366007880510227792406680034463925438948575269731311559141151613900747976042751188169799515711420186577077862605551637060598746852346676799180769956141699525277446565721313113330446727848124192338128164751624528475071311602709978931093613481193080135990918051253539263540235558467558353092661742942035932897868968659601037135093357554636521847086194691103619243947996758170035845994158627280478160454032555931831756278182514867555337103349766411386753877501300518116360596884013201662475329709288624405257074505906483693385497741425985817426746199994056766809367990235154810854526581178936610794435294854945868610813820604476842514820407078517885891398468557914375837439857709034628789240158445701323762175297919175111101241074158022487874290916159079698818679047908096787016681558179224145834224201110430981153318370247906822061753988244927941283634150698188909783149740963836257076923490751071831029000865202658470850426658810954062819619952069876274531143996173876117091243159941315263030359443100683611949746962447282838041625140336492090606042819883390052284783569313549802884158235302280223724628263145303888952543778501089510451206568686776397328107576203198101719434730827139207076080564788913340925972194011645870971600975377009775489530642071759292842703611822464899931455911260979624871457165780686736295341529724724124414104398675257094574667160855354496937149408989757709077449292014186724083664306567601130606812852671187559953619194823504183898871086569106608386707149570123102635629865561030871650293004926833177457874507414922933928344372052167558265270696903441398505315958095569225787683650443392719658708492256325715174589330187359061484943594069421579066479745809791468111513372871974296310154535541050332139983109964827919758420929977067784482117800188563169688250622219318405806572043711395652176693018809587846895734983925592081083829119744010504342843336289847749672975084144633385198279813566970549801952046207596604453551651003471320784551594786527299057407389975360192084192832049490210343005504691883464606295178573496046758358299618021851661298455509348750780455319536842463089869603947730707358169368930078610148015487270777260917266981504509566842009601236163808478712354920104097836091663481315843496747829239325030829895921047949215100485407034411780453216247780482463410228698502644797239169216444549875992120284194647736227894435686015482173348780104879861693356301484659680148590807138907899011958651917910872568707944302166792733243404368703621583240437162842594690299275895468644320463381369403136976770901015631483577771776085134026783932988687494629546347268769242978055470888592837155257090080319484341743385641485654332075854971705681083627371796080837572222186925565599869188193592926690615743385333900669593035636426041546884416190450050340348474126715351191401629363295813010747980479436295501577765113551077600752495735442662254858265476376540591003954346835047714595545072601672313715458977657094497542441279599806784236170111868475109258206526673385876135209517000090612338000300597464699501254854209877051693708697217958781907447627329699798770937726666698006001163918009601580294848002185279115739247281149678640508166226018068719566881236448921875232657445152305271319962334266490836652704125676238160481490759464147889048200146893318863532560759624858143563752239603988693555371933316335255516409689874339441736964960496563972174813561623081120963036542823908398438765847245956749379722239911768248160106981488342258465253384678670388915116478172783508554846354283506805069706656661798794421788079370865628191289533866126360270473472831336537577981931764712037419467892749018581421788650476888841333076196536440524483202768896134125189034275295826604674111869649724328852346771899267770152386678707854822435349718988514272119278204135026429426154641015182536053371777971218505764924896977519487989503383524116041793023978171872109217287900341898504483926127915699164702977067049850823993051320955353772866806897330114307037073737865757459195116856589986498926191176756613295628043755831761309148087451916838826965730599378960902977049128869570548633639974533571174983687093714935628868250843894577138128635822440969957750709492091722264898850340601077509600982380277531101447445312048403184509904946217816946601728110008993583842814665852578696198619112302090962018424830451387206830381838162378906758130044111954020719531477316377631655025057439733548516171903216224658889392573594308366892428640370740427284023221697479529181855627471587453657565323902811191214763420230744145692347400417612910964468463873207765841630824474028845533026779899500302537088907999712543396723711668752959280216087016441415977145275320268655291015937849107652469229430198279006519008429952066444969414208804197518213535735822122876808923746938266325167036981277058924498475318117449803527716926945027275175269836097150607023142283328079235439288859052017889100130060276824440921784922600031068948920378179606948263359920558015793401022522735896992623862189921316472134709533312283209172476735373586354749470028814727308111721892806289639492051533996469989731684321459643691902788157947769778489186134572568156383047556191636367177405551123649480029122244704450048944087698387688383567927244371647502638118033805749693812476937342184196023216512747490025508070220903587100047595111697647085913768430365784194845949784652695251302388247851056336479506854734648182483600639512110113637421222370919125507892868879682073287822297748888590359731508452350570493715245885744377122363395734083355289740872398717525510265501875268817385781282642195108065980213794272448794637123884076058583879542315355101201050210353708782710562249637546525438893226605113042205761062464273213194809433078045746961622317178609177380582168660799221455561967336151323768331998203184928853987597609372705848014133992973608134288558469086655951451867310717208785767269710957631703603039461637753810610335537562728704779815366389235005599825378836422270514866430548925412925636765087244556067757860361251452886410638473149844767731897046498812221524067841564763453575347427058287353840731881900256534485214272465174971001309851787438583160332014632729603431877919550212625551366774262303415870056095901269107270212382650636906612301821217690093385537914594144461239009560780712493672993463577507792599291404680110043434062683311096255519696248439743980718759328715027206675943460661371479534866261543836511575577144074047572003110489165695902159561334528287395617851544739405209926086769006464743264749798510522443506935424982987908847693444221884191425435162253298699303167175753105677157658459912431459407168165061755100101290101929950664591054371361773425208550802884172472184331602520996981971546503452283277873418928234876028315083349149238325250129153065069193434241665528854121909792562654370378502692306855907683223693756495468889029253613264418090616879208323821315470537962855641362490605398864885296541631910400289802499393150414464711541430551447633743210296938833847882430073028691560782632727178442888316839316695132644720030249031187537010013700095885111756414096799397839726639018889506417947510314879621725334258849951027574350244794806133864101186195288924680603217987970846721235461657918082375226059702105315623745701191189834784577437519107132959359535937975992705506757770909090848296753943720978098788578251322513908035142693866156564366292411519108877356199533262499432754844782525779869440083679903915933576276099063346045355250333904316734037940552958507736360553653980013719375824340637790529221095375804017919202658598366758609277913071484582279802198744430980336986289525988285450605714493642215025150032839574768010441077635435033298987437080252098202677676378291340008365743150745152170180762966452956369306421805419362917817579169663426209899628948583002204441595098803098399716028908664735100050469451316363460842694212418331068221440694382691171565350369852093516024185476739836227988773065888599769018129076662036733590891993449420685623502290067359042428719496805273105819381839821228059290649537978370634426405862289461598287519707891178830619854598684515898934353112392445875393952717249925734940489456424053542321170275014043659007568740500507694109809410198865882862195113629702809546828102165825184835589629467735771335889182918283198479562254382438065314457092788359204942893245412534683794149520295626088003748942904387236932109676829284661363433756779909459278896132234152779291133223245924629833886629295912156530459275590707354679220219910558228095008081656943544185018752875696875334574396080487313558347931918461762985340630649101727071204462637852473069686048478030886965730868375254000428205163257676345526249311446316837784234401760416396759847004180133733035780759032535204576008445144123111234017247337923019225324681696739233251615969620598275258745240502405083079764338789261897585863035138336137115789306674182373032925683043005289452687376576192220057050589914669316561681067232114216412707523343170667469581065593157634245195983132866518559445616097509274432248176643691318764356181151476673924725869522926407725555031387265264061652419928802009678722188320321078138242400425600186499642837085135148427545870215755327763587729201797664570594729731084621188872905244502753259768796022167252026117831003408138421409645336363165201506807582388604961419062380931799369724248809086805406963851248603818336502244851455450168893263970999549644708426548348913730209362445535045725681325987944772904522716853557408495525385652598480439663809510053544444283819048876144208545665663260536012068445552268907068766100408471773210478322802964102097566610606622778627365906943638484788367497889736340467644142912398752445134110713110888195710004951312415251458480957300949266209720869838003724406390742548286768020695595400789226144590702898673800430778412802825902836220258250364387885203668882537342260703232061826331851135226245645317942348921164466712767850928259927568510624692686519359855731035856722927015489295903983909200143723715162748056895272889126136298658907297998817637481501882646685478722137066196325366688986537742820327567721545072655534482233700437722484117411411170434899877461202454958917994798101933490464491901580947947809544118499553307875143370614568639328711823407165195054830575083311434152602353050688397211894313136879072266053466378836202158086651519771401203930387517259324283151796014544316200094133886561148323911667439013037880883790615910914955794999094638064495275429263311062683214846929720503321146596378946808217631081384260113960414254525355202284564755420742121681645185609390585444277425283193676521192532697718804547805902194121872853946833818577123445639592149849543592826508986979199159242193473937040315476034977499747284185966116119001947754896640863281329125922181216921155375720459009388726392996707880835995023844306166903987919590473929651410971139797916712159857481087667629688489434467957761648355987800535643092696960157610404965880826818318462478123288078279249289667416813382498016705806987966530105824445922885272716038685162490936462343021428668907237572016323556899657918673263317462290689428863464807275463018067238920330017291750651639707794251339420150602748236836901806942768906582656027183345343596302019101694511413390056744484149689494519128716733147995316738320605923345644085016536349980569976215861254326498489783857950563977767415914707195919885248428049439201154449586594504942958797222680466641206845685142057469424467185730319866573692160704573722806790866506186847875632951912184200592100947574208271423635535141363516212149338879503380445526012214715287159354087873486506007527863882422157397280871408112497662979909706033951615904121454938596192780387793917043329738448358974936468375691573186593395823610766572531165949637319290410207354925442639235820542968563635760358642006908044897262431023390583031335384408704039127064423188298830922303546429682001294053695146511330357357934136693412419054986348962686459139014346583442990304165093704744578286452316759917629952124174529591629167001966515908122200341688736098928322851562960307421567475233133266724480881929348238379633773474908063865807783750052160902300076334789955600933243995197869392774656644967453745168210373599858462511958986087598082232744173545456022222141260176017028866618001141042820977964542638356694838733938731550560323982316228259164309927218238902996437764996556268593404537436113955558423680677529936717411888066112990527320012838484686117244529149962393425456844239091236008211370100913146528677327054967064122541672859495530445156363971936636951202446763379909260243292797581137269711026557066792334425494544497489192725445205556103418499463592465896950919900076373555476967739088084460078387989543210714138087532611894176532846470901192056201955499725471824430904531247825506146422089521156703315586226511001065617010730810177108552027815853407187727864110813137795792236211380247195431660780974131347415559575187788212660024844925802707909041113045745871282378323345162692658193985125612363803675050381617568557248181909761397255178863652031959234761507809991403356912223232554036760825003570989185526932496866373557791026886710437546689396236397956422790497096688026690236445802174846066919015104622554990396645503845426859626393721038854201802860157689208556553381038012654173451814177891402946390403586976960701366819904130358312734208705805198946192000546842062293266495646988348742055238023943649177982730424538072088672806946823687064779693145099479076899903170184853184768373226357544611349587725191131667475863149417484602451593870996873641645966925553440346833210782203679315139483947396350727685430980928754068645413943044564741246055990380113590591260820556133538011703779450380734877824302336766003591024171464349012501545685551343359111551518119821609833870413400075755452525452211915705807090193152578354436744214204645822742815598533023003940476245960216660702792565588113124396079980184040168942951286309390074438173711179665044120735262205567964167396782854914670996505969544321230980600674954054900306204269098096341620398809972383990928738264336810222745103448355044091095274162907710296177991595250830422751525279614770604569278476419475807848159538643187530500467332634115187245657734412678886428132455263614932916497337795513069490256335214725507066617417885560680590381887921552458612415969174826596871338488469086962573746170641671196451306169777617296866070377732305430055892433642910254484049962703354484488289853139286657318478883918324013474165259359781579824025897144059077905928659454321708463297245195677169552273365924550965662679997152558392965019555844967002402228956356441916567633349322264961187531205626247469718667219606711607666007433065027581030490214927256637513057978517236611972258143534250801134071122791201244932257542729564619584028309829739882348845616151826929842076865297401380071841747281923094101367190459410535496541025786866627398218552485097496754387827050720599568429488770523945885806748834422997375109038985245901849703323070848863109287923725515864568508544554380874791101996315275460550373846184102027354421765629154456177737348698350737192273795181952506174069021719824321648844120957328130136377323439478432236094205127250951313423475210958231675435342377124431588501066220678200347792697794210901293571935619743335710336329044354090718680811580314379282867118907914314797853209566778088467848735798899559235721323087783493410747604973293065196351997293929942424164404169782894299579342491382042121525363199122292621632320729820605950344456395134492040603864765545594746423887331491091839060842024509275979798146880046810637546324237051715326972663550819861841526422522701072829267757107250015663444839886533000429690538320004754584321943688350710748486601961060222870792497030017906275880100919190108514028792107800315615740245064483773341048464962433525882263068179315249338238054665116099135449661154511792157997550339887320150731159270458577550829696364296521119106258635824280637552168692933246020694581204194728128200437560364999847736382337171980819733218208075013122987003143825288980673342213177689342432146764517691417951306893364002958295720311721186320061591480995499069212892659930896788126460639644270482378309636935573826105456085014291183260021994346675361239928826744217488176948428001573364908033733932190328281975026919751229475332510734893459144437189779082020178985887297150041650859983777538448970399544854656741204775884042957005716584800865183310769683586324807927892875792090015548319361531174065131574638387564349058373278152474258823667162157710176784364933266831919671966950839526412462445695227087489314513559214785060485367579605739981783826405806337006134425360793479995079382537678295103337719539470213341267501622596036575650397967584403374669553741152371371032794319253200264857826947577254270436766093363335636586841060444111156644708309265748384070559876410219113786351157707850785366966973630369914101441162603879922500724656400189001145040539210163934420251265462173216274621626005566272808030951961767648834517608766481728577332194251242324433619795054842055031330827470923119987716271416201516186180145443906445932045930065454454751950669521517619168237509072539550358846052753466970946423664501459482244337631879702462359643638810203552025035109292971466158300833659563864049447332809916089227257446022388336956664978988203237162054414449099708404831019998812777241474763530572034270933511902665743228224611859279780836053405397393516323618421874547891214193797527985546966434320784539568738077810758550833618903709019392237674822908830964821150721397932124924063595788061079204250812572090412605247481453191844296909757929329534653361498612141367150731210889305441019222498888215617764173210477903660963070701563566005992943721826482445654224451783887541269835412720590323463001690009704947582904537565481471826388395513596287595716714832283366341354879791625196445713540033796786565943176278259146655647541703296398525723658158561635351090660731262283215903860815494379251720811529716235576285733913620924910165652835502177683343640833480808402841814203048050985736495608541261454410407366054379049519653105287141001838847138967148274276055192646186176424831752318379456638909441543267469004378524015252791210046351773014785801090346259104526908881282147698728416120070597780402174399801245142943057442024550379229363348873543887263312827716751904089265295109793587315621790857663378811802651680090907234787117167962191896312987596619037395521745125432443535485646329146945656792941565949293801133522256260285103424690110729780564877897091120977947890324024350918125760893783341696329460726631464327512199998529114773373778641183733764948073198191608105361408375960515366284111955327274506480455761297233914991866900202210654965012354305945929120022910118887022459963562457550447785347041911022527165734572233706183070978049293982154736929420763455583312056869917368588674067398310968797301224947292109491046221658834550136907436822270892178561069299527043286362182429788011104987394926053153040381112094729960907021104707085176288322004654893585951062874841273285881208785634363731002508344242786762301674050913068619259434185574144742646596735873817971544918695135631131219166469929148114436390143198624933343125611235013216608380583537387253493749731936123244034398492474681798880848743984390289946620409430833487727384757666249831330415689871849880759127330230719153156375182649627771111355072569553493758278897905077732238350976240791293911482098436614075096663348496100117339647507658610764125902011788904211084241787360179030810000180990155855122347692133780618519871583746970472184281123213483401786968334589308420337782104997708915552723401811526052699741858617286198658970372452558178297828445275840264747271023952848148803980196261841843510854655729679985760860949072777609356900969291148427112495509220618914704869491171349454310662602957845732604703686778833178346421228252058103631803545929750763263169701791125040527055807344363246820645707381272152960826760176455628537674432013653450448228273917500781544395116427125089275351944766554831738886270644735559385991030999621544448959110532634573222338999544984629709852304507531669699041556179025079084011363817992123023976929175429470996695163272957457644106584805011653867871582345945582994378304001843563528418374619572442568898624134267634252533760093915968354311834407758598000796105352317726718692449978969665766551738629067586690995613363141433899644147046593417231068219688507899961172843171484368292048057361038823751239590254499658227146233351490761420309058661758656458712727220435828619470213310627509120228069697627060071669856105942861781639289450538848700776116334142633515328865334379684236470489115593729878167269737567228839437115732694967580182037429619276378453232619424585362608894257866190412731726124757951189470889764588499276720421253839854288049000163375119765671604079025100889305332661565814962340039596682792034364431827342446240964049988222927247090578720124963467020118832638360218053314051630307830383501934362618351356555410861589404712330058873674710018902839649696986767730898445670359404182051006355530047371507062661344041506565705400699869719740804554828411126446603646947390697689101134878790248088505877515568139826715486484017812675318988543938685789893796749895814176963856499297830054540897051133327525074273315671298066899670074696559337656841205430858378546138514896709899861881381340613342590231867021956664347652284610228293454441388132489561201113575974588250607998296534354082554436218918690087330010988003922065529081725033206276771908476892415856466303702092469984085829395981644035226679652059023232959514857497581917565249765665012821480917968465141757713364896053686881638564336972375407039306260010727938002676624897051872297058414350929864529441828089045586675601973105962403198314691126499174539476636388030039757246231373723052180506115336516194916194235227966747463643356031498141863941284037790081700253903567798759363048018532603193203068658399769364498348237458493802435421211493400889240538747580112869248989697709071367337706892786932865287851115814072345506222285881482228320978028671252333796850646156045589535167964430585265572563685117547889687829526653467564785046222868190274265467086785383093600949091071352306372044480746447491776901327823512553977300026841533252768755895108495531309249923894767221028329580437830372825850628253489616606199747831965763286952182651133708972548054102998233093671772241862972829022488461745035954577962905132055737575696468615213684394973784465120966851902821537231435211810335339985530771615908813054638465452034249284005276064237631241699206252041684765238416476935867102714920685561780365608625012167555235195521200593008514154568143727990300759372512100118302182537588016173324366087510727260996693755375998102037783726242886173887641489077856733278059543410327217353599573498697637205451652782273114476688103190270736559234769743830682824941176739039400274976973688331774907102901364264352570714291398448321812372998909968743774242751190395698831386733786281041386530629936644808578804051888776225139420246960236703387432073512412887583795913807952124074279204386841008828553752914720765172256131778112738804996555486850700727487940917962602764009302706625486612387155117021737118429380301504871661212926176152431478861335451076586964763238193825593166499593330048334043152373251257576220487034349646478363828904199510672272286861562993668380772796581971925936868257018377293925904241605884572189280716511719047604620502990378940153933443943480234803782796378951169832234351534964306799346758313818846268659147440717197050149999889676782930021239377036693586982094486971214259013715817746333584791484587956498908312801346769567559761072184485363858261860380104742652649969114503662484423842852566628140946380187675813325230032459001973655296897215868120823304095140300534970007551241510284402949755682867350439491624794098945002781569000631294811275056448891804598846561950489196436539417101678781854336964785976375087690375162602007608787523834307099570335473485182228464677581666905433247280711404244804986313366023534273030093834304010992130686120349057641495422243105249680810630953148747756321812537662672856529846777345500841216701297017741466503348794499662001127703538930629754892793067594329581949890083207386337882189343129480191159389696830513873405976845678372444873252532087633872446605361218238512227575068491695095482911729670456372239841253916005120349972340061068924527693151823305477453258834632359983330055546172684630826779197584557005699560624916193140051294656193888618484423580044676213781850739112377062328517824996151305817483824546302217204867693338245583628465295803467343086850994646899402486911641840720108068843437265987926050130088200222818621746343670766511207334725738295627474379291821920533594757335466840289406506205827670459622632640610115412644582310689536624202040988894224419659025582249362854260538255377870139773189858841890586536310557316352392017357155822167308946404661853470533099323559789975729112162929339531183585561770878906950402119344449655898693877246427068899255719082498406450435928750532506674165156090138139291185162597111793080038728236755001124650238911614108727887380492202064929621307746257848013854829983773670447433132406835751469398063317222264046671660064409211108406886639200229970307108941893007000003180665597830759266385290843941103804997204346691215795574169040984285399777087484666792501884850518786935209033910139951845258620600204717230151242031723901218101972223684169357203808475040884594327999608025606217202109216627662612535489207673993363771676827980581107950179785529458255284748762811221903264189436004293062831996668403831675459127702881241704164969494984081150714768507477536567784684903871459556938475740256262339974558572333293354502221642604660520061946817347090326696776552279764380622295286722424549446846634835354477776003609159737604385368038406483920814219084450318962456428577950353899501319595358881580502345854993212571077582449368164386932013993791200001831508176013535465721169752687303811784687366508030334837345997512473265132144569021740031842667243854752152962851741429731150269742984540441960711444161609598784066902772066707596204788382096653277503195898215985131417887346529147678279562151629735086890698788323246470535430424706257416633908946615782235873993480559386556457720899977635218261740633412931314235710187989371328160610935332236369218631117700563699247241914723620029300235997848249846139617009729798268791391376450003706175171282740213515432335164875355373636581909652209779919986870236142817374205587440119331662733423187867687823694680059702032536981236269679007429837818828232590762300851471670895956004765818659474713588567806038209311300508752808845184862496384066574061611268628595704803079688183799727851996958764682465024666839034299180608814650235882545753387627726428880212039765680122874059989818916540741029834072131102168704229137340042245317555240992517440387063560323134630611339454251259465063789811940827714567454296215542048888483550623414974069985857087523363703344994737204976503694632597223309684770438964307299062150992405629642657754388760309543714663068311510206337541325582429562160911259488899399603863104650306560661165024871325396166802884466008711986465166182434059537675608114656987543273684737826853880493331229512060296158816618565381557400906100724678391784724538218707496326225639553711139298899290042658427969755624778778785232897393444404887946846878074409948527335512498380043461626472958781169696587816847023906202789766445578408018971342739369794443365498081222165268638692522411425457934567159361455392933150606373875616247112357612823288352007643802061142176992819051890251563725259238000616487691105010116790087547082445326011367419288348939341196121512773511422387288291375152712089250227639701072514949160137488459357995187797736886263230733540354569117436162504064536178699274188609365567805985656780617873716491207516268596984230554247783379614278431947315781593236214128907022029828262869088659700590363827848287456856960011410242781009380485683141954673543756700104751318677946143718135028889419052764192036750667389975756230166981514575877811276093403976908793047302862944175741816959391364446397548728564295752796909131535483452742743124166465583818770152462319556115931466102767641737333584993536839767163745418933780389701331478920863471463961326014778070784446132698783392105808779013304425394966787997375458232920136034906115082345071843711792415119157670699808757623643088433221976341346375627430408495838282197454450142470008667748814813418628301740013003772229044128787968959153604159181029943825255537956620531658061656300852764762652383143935142763961140234861156562572363765679261230145853280876043464125015647191293218857142719061957725278218577783622870045999595355757955298649141362387019701114598726118357429760258472159184463315291602544159673002459090558491306390466950050446709224595906728368930207428375870218600144271725259387773280656394342870086245941353416882542441790708895808858260877647712278939239169068208961971443218076247328984845815650151098260829806669632686548216850062713037541878957870171046089930829482820956294851373516095004955037190434615322060969972275206528309533346882211491671510031385619081580601098829897646018050001217331534771823104836575098516869356432391994966168464088225487612682848045606051037560321532697836182300616316842703827301502127999420165786108290922969371953902405257495965402988095818450101535137725816812539620236197088999151025615670454959581919825479629769317606792976725254547211648659829415914058975716709151826698484444172055453472384208552473277437201567155515922557374736191854575631355171619254600450400227652643994016209375442208796183344339051055269040141099972074551156536590846012261427081183471229453366623780471833076996316465131524274706681928629276793171108229538253825367541618192019400935251665483360490608452699106274397144611021338062115498848469772473418789806730532613264868807079558649883758019598160509083976639686842337731718329782021630794768637754025857698446098626588258541884735272025581582332227949446558679623540534252027716923638926819101541830265768367293929641522163909875000282989815470945924554322132010774848451432100786534772940096760524414035413531103937534156176434590209532662383895321222792175993495630245960674447952446940734367083130031626352468630602151270119966565611576439606796750996058700617349495284561669492378906378984157763471935756632026481669911581330508961167495414373963393122099089303714085412670623719235360257680590120183481162317017252294165275570285741216253099347471782641254712398096977818452851422488343685953561718405698948494555345920904571813084503933469562471800131755652083280826172013686135464885717487837283646565990974240479270993230272133110625810694218487664620142399585586413933570669036793706391211839003033219738141326340766573190916003559303146323984604231744656888216395483160343064141617024066079100703994260816367258403623593964586785101540668183000886296792581478849343592613493128381418948632431011324667705144108653061090742479218006162802734145172185295129389025036829092752433889465062261606946791308939727824015280339551158103365349593810174820707259790042946187494730101498030457977647269293539089333141691848805383094483547440866098454180818034461731595588481022911345801644069582955443932303066631944881992332752324673408573492676032060775749064757315258177577809311066840606217718783966462328800392359114631548664090627993466010946890159740607309854814175819218293458514163308866470485979637900631507925235395629046460163992448327848334444422096580542643588685433054852640782217774269276449391051053993688150674900426338063398443009122293759676413632255148037675884457183697051862667046303890012064275699617241104865561370983672707440438291305409090210305608891068586986750792494915234334420260405846616914767784421067697807405470307611376770727797249437385527560915257931789820385355316011970913123237813116095197740454444842503445043606100277651998725822446742881414012959776509889364585190618412811391482356036049427734500305335835646844971500941987864180950148711212584499549608732815049307087669840266402236156916204923584170520469757788897007797871013599162348173731687620648838826513544983299349343183630381615493752162751038369060910285443079061992038936978649897098826227247351980580848884896119656222119713534814096770519757593870062192423437914470813680593622224356210667533550529357813228825450882185298206026175607446227508917153487909810073125737967309741214627060854149894608369115855980818605259452930942601780264656518829818725440311109519219902827923061043538873256724727370083312391522092706188829273538648354264574618427206903253457227708045213812743728535074870328762006911729816632886023367737307182540354156867561386513305963465891337596400648685076731125073718367739183801736165763283134227728462929856866826179297945079148511630620140835312331535939638345838244724588064004522799295594779412812080512428708253250319722487685934491419053811960254501640024137247961557741470939924500927737462750848912912564767861642131440789983880941249130515085070366195645543710239399691755732880526500722665855434771324280767965812209052905308986910226919001069126384063349326790343115152014756711246457026978815855614951226722159741929643768110944818904538284262791453929268839164332332150478011770352675162778805932946723705214342997366372931254527964782165273123428902830451560765030301498838917708009612259751869687250041752564301571236390692459097283596685308023902158436924981935660912778478363843962098773271566683635460902648946536953873637976328912191775506565516602504439635416198050542608279833355605034063132955146429360644739110606697269957972682277144741854139227441429332877197570293274234817827356586832456825714577221686185053348993216964169976920108034368397764797490870835387418951885047510005814397957560790027613841364554613593799028666234623425294920743972877389834495012405174303873548899417655087822455672026017632148066206269566350068607897354847993417764152832616808067487505238733723270182175834731002068395296096852397600066646494626952209560741168742516473253108585150859887751215100928824876786146288540964167118894014293263514115343000561108438622499041820713607342286626316681714343199813993450555359469135372892966260313357657442830044775305309008949127599680019478408721896897006107899234674342075933471750348863443818974584298488618482495817405168438179047768660389572607781591954968533869285424436082246368337157848902184710803263488569828525503333589758797607876491308558111378365664491350465601977605982750568208323245640029273546192533569240434121098944953885052780428542179974275445074092520875694909617401779416098089907512193042906943597549366209795725968466585989600616507788990537905201450472821532336112307956593410863625332724411703997096052801528765228335603349992476801038349598312682478841278974280700084591964645819537416910771697044211988214988549814821121998098141687771450553815378598167950122950016299913219503584935680289873146087866517993987722646504604591848739362678024438295162697584221663448592310816914304440906676496348789642610968147843040644775918982218487872358290046525666217047339602821952101797122426364599729543536616354414622236601409543456055585114547159956652753802141570446897487552468586288212712547231700501939520011343847916323453041433181457630260582357220141554860501359214633786429571839164026540536381636307430306431605355818583771045766169569724616414373467564658226836517290288592966368071155957360523722106209915292087665215729099066964993894685289176771764935145144229022087471820810366999116156039626872035407225414551028442564571333409972896038800087291191771671806674632281303401896825146168935619239177987854202363712576029626144050200238869418619432433957280933738327289381217585298852580478886710321479465409202512847005125897880811367084537497086170214765644973004187268291010050368632445704987452108877402466645011652427804781822865686988797791023407442064658804206655551630116839571902279054437419152464500928889879925387490777647287786195472262814605554941616954362121254580459563184190226478708117019279114778811068139320416102781851588831755628242539271153789681246533995210254334985061390965718622332093473883225111495015593195605845743097128814297208379404984479734923584079450786327094407546786839410297568005503053348993585588269806719928225988828120155273963360496099854696343492762330193167375198512037855282247466534296881227762591503598263515333904524491747017223860098967527688127513103071075270971196669379792059847262310899244666170362975005202552250376991639831767788759296257933279749267558865097855564025375450504042690412571784594193809619902481298851223472002447005640143736847738898349870118511828603249496210401768520592872057094018268659209064782380140942793876963411190058174042146628619152981629053577674224499035858793871610899630912756255693438814021550496157065871632171575585585973668156013409140577030100151591409162862088490343014129188852980669189449341980622936369260804269328200878522407840424957811977878976460892187379209813456934932668450752786403037600408294057933643315847238239088654422449466333363698815853771973174770475174370516335583433247849181183339596780142989718933249949615464778595445795018785309118949841553865407124942326122818891776234302541836348420869161990236345691784405110076900407202271806767342390987327950966776315901331527716191305447588020995305104794151043858479037747410752696895580290630244731370362379501719836125608622498827016159441825422519141143203425550464178973502912855251194153256006630470887131763279470981069705368706627473167024918671076838056477353530958505566410136576248028975999611423165585698268227713966218241860512281186228986126654739349066924719643148029286446421496890625692776369242548169351847794920061335460243193077644656902766654335715926321498328816627156990669009711850375137382294053010347739452057479572495396699232244409415475643469923310316351113320477175116534253174275453706062542655812121877067638998678726324257337691842972485151898305442312837709775685778687832416537311993909840187704553519049147318537717531596237047450285285201605002539591918782316726055356216961794352486240528885572863939966858432203942174618234736254456254745245248883809014613215390639294050733285979825852220042805466418196255724422509486494596855878378268795253977895979312409609097896252329812731333110194677973638790555906049135643126586303642077924819554359308391862091594299637659620337319677428211994904219585783492412889305921854691232879898018750907774698005517342124745354237004815702059168157255356143648701825099677576178254224852619340343774709985030822722171392870636799189184590864754084207075931283209769903725319394634726822623956921793182154843010578943794472018751395787130742485530436886630884908276771139376937948216859548336593546654133835550649280212653050811154740636757611473120621694973245487261707789463421496997891237844374794743972957267527786753958173858200815835427764079712563377986509767636238644755573404131195643888813154428227938344126236178731431227625707109371384341410113004492560934127090104149247796959362106855770420878760962574592610772325014032713509005430836936961829820782499232975832234546161221823873078714869618216222752461163451603935724600995281830464803007776140845935975228137911126432346590485050223990124847407060817722622521233374517300682293009981783977921658602738287506605653206512512666647104175557605197543351396310957011733995505925810086918453746746950372642918657668774059341103115838278467410183834917180439866528620411677532374013729051345499398839983744189826783267165488082329419898803842901967002914156370569605957071713570561181390943550030226611617015333222620328754699354284994712724535990616854091997930221844150041365180537108979278018956278418368529776899706241250411341060300595588603045540715700301576250545660097285923553028046575252475703924898641183756177324180477089105200206054939888422827771622972102091085181750482427685900938643013992157350332246636872692941148191895919804115684615362941366213081091148515277475534016739083361935707843639148924265401507718570787769295006262440105484622977693442601460890862376947365522827723428815208448342942631614209040148175533979836469056623347164508991970529633194004396444507462201827409418322838848937072226728927388783752563304838888574736930840437689243398111565550566050072428065920955596337128215495560548396528102500153012884272772397747206868104355322506029362408316129949507037416274037974818934344012509428757896183092366570367295767168499492100978056605733590922086567323933682327610019065499814878134931198875702099726409433193000024626216905704870370713436661853671340498715646451340052740969148168324557092227575632189145681951949627642852987951979084956269628226695008262761654871697811758433053461941004317140284137683033706313998437054118475968659626783172223892137354905271694890473224688520336246073670370358628527285895161785531587843198150535281250308607558270059408180627498167227525168359997334645399344900304308555025731280088981967141654915551759274629467662807309994899597888920172169172591356464614366767690800523508207315737539819411118031508213622006907688212732748753269339477793107624064192037520186614708720535414807855442747337590878122666760772863872335502086464299954011727793211137971685927549737797849525785192469188112827982225401708645510798017529784097496460692094522273056284152468865308529430546411153512460681693713107759933532236846885354716772761945952039364431617990288421566298784888499873507203516745578591117359345084653562630100272373096917822341847218719283950163526783507045761739148251498059936562114418236878706454336082238437690354558041759031702912881320826728699475539569568375235953782133025540969651690642903535347749764511415361657532028904822254624482850675075063949529562511236284127129447073445461907482472335781436830662493689463203084165614409398309842476312208880190892710957653337972064704510761757950381334503665709645473615350661617861713396476249314607375859828089153231110540908902373779214269833801426429327830315951793226437081791710334269160552704994419602252403053655593724381813026583452489973348863059361128020814602982614230347726097559476161661880231375600722130253366458036696559741482433430172867991193405813406421768509856016467121132954107721639961056476432644576493971114772887655029168732732009189707930558633569770135110571051496327598974315617067588096232481106886355317001861462285448682659593567937524047560217624598097917788562482285944343189826136917670812378255681022560828969576012694680423478485442876297232519386476655322744019757597913163024978855189536206340094879086039039571361587403650299961803463450966003093257656465636869246312074765769390393397754476923596071968402760757043091290129413165589495477375431726596157656020239966086639140552265521757219562619578776119570168536043610221414551181550069710099475582787630824772121527949765736208035913645126701395608097545910742864320919526086008112922963313737383598068101711047414752305689945906539343783706438063694608224295667563936417651618742828971275191249988663831583915465752579876667479160348551500281184809142588752118914544226547520306875315189512039282661444386173511861620884390564441980408013268485012566920993551331454450935668362342627460769591581235817182159629085336889117112597338674912629985179525047029594195360717504774701416813402436430199759134976817034884596839844432630758604259841129648990820847716845262336646305348816940002419315012929522932612773813166639071451030023022508330381345437827304562455153328896852331640857320516281872535767685134334976053649125732145513321102071165384230993758018762509659351140610074353494286344916171069785452044873258141463041888370729272324072276243852276290950513074823513623825918981484523374825524171870148440228878627838081955734684019057873472053190517021251438825078868244152086562668220398990875388818376944237706764346620528794177532329227060956590291654486927617734176004554045386593550788375068606081364479283407746993250212251727740417967470417584492837925987197372170575480259868678892087547086118334368375040759733268192294076281377730577819221664819861035996078470483744375954809934745907674238919696479822033746812383731664023083447930359935617499071864206223844118880229927203560815914435909634833862952506707050482901639094331125360870659891150319301947653409494529442398064816802475020939508335723473120342115863304249662881425943723070743881089631817240984144748602209277432562167539991350258578929751177823298522336945761516484782414473858579016394864055964885590995692298312035891384895356513662802433380783507217369608255815029121656409881100175548603624364799139350606394723233190038650257000991976651871793399712312575473563896885481430154780868986113278025047243810470651735170808071765523906985413838966316465305143524462599478640199851560992597232547271966494340090635038992219256192067797390699497619835472284134472703147460938259730732485131236063553598037760122382210115194757954551154336342984980548082385632025366529785482793639084668584584989036595406819639735025458740913768619037974231022067299382500703584696358478300843202412109927893764544418577582543588906521730308300171646459097200090157672506659615878720644818620725401978060999624205972919723275993077909210025164787611112819955274940424720418305252028514269281416731181241570672026396030780280719174674402576483703815263166220048144654124365323653320524464134446817810906997303953558558368706256413851748793001580892335907675458774759765881132946751240340305707326547434821764298362831554682962218475382531569940114356941149940268171385079661032748256179563780907060293357675069473697433893465772777287453461438872416466185316095303246355114925598281993586948435450721776358374046811499644543552137761606516029812969808876925817322822123031470677010691089635667950699980616268441006435494740927321775947627027828693358976672731477573120252851959093911604949969971876127618910960696812948464759519816498016586650665407593749629478560427467143956070470286718709492029721208048050042343053504316674243403024811546536116069489490720322690917248987425892103581040639250143890324800874993437271685420328187704580587108626223374069647101787607896158938720587216181112047389432496423228863972470027420102129982968710941628028031463437932700755845815821439181533723333433167576747622946663150835384913783832696174659940755580551850321743630109981258497451474136942745269891121402318034936001102203240786770782722717745531143488506832294235578199066413344752666487555728204071868217700644544308028018628681946464259074188386869942797744087556465462974030951093360215984679791738604951651060897947753860575108815866135433251997307364749623384329888889242006566629903057630176936254021958541400240335899414283789895499728952929078125739999897296471919246600016608999112426134904162608216565263389484676196328408526491771454960922624668789486046924197863119332256924193208145266578316974188866195944257216885532851360936614511927318368397607548488725488071806757383404438483444172392000564957953865140888077901095955915364687038485187095731825843508037213214453659556018687709358780337032107199068404034559452149747582238185509994620856434877122224060727441939761981514673188225404520862665738652553692954418366499085047554814780757966810185928807802795826959527149945465925424080865930792037167892760935025063247993692621994939861757673055397399658757132329976726754476877438721084094020666818323380577121711439083547430783430131001479986613323399206001298300409143062740255703443660607837676639691416377810984740504814280440637583651676467693620725102547479887152641332325267043198656598377347619887429680513745948062870612369182510429421224098910733750544949034472142563002932350160113717730346290774931818546667913065541354686002018219783951224623513064453313779485285148267386199737771142792187921850719429948290255559494998375985569661911292663950571756452108510521656264720982473157698246578261770235222554777285155543334692736317367742322630386404460349031582170974621473503531426727612961151244207195304036539731316374135607618755864414248261881134745162915781503890330422904309731446813540763574673233227140023180935314926159502999268593007931196938127782294222145141963044851870407868928248256101105797136313178904364527490188057705643273292391776290728090463051548192878526877689813162942937171848156471761675179874992652252707918592989809858374565222166780772371980843917842639601684777438811780869176909672473544116627490523597676105537614979442603310687350464077842679916803639418788602064038995476327152900359859623441369799457821966712581142976069507995308065040297175124877020201033106675575668988199130536921498192531593837637078068343986783078172208327026308385783196772943125129780400758178482591992787392252713921231923506245800261335313173324498494381599800578213080873184232144311970354960827142779124277611275425599022218936808097841665631211521309544508870484823792355395452485458051079632470397425585958394409129017230806969211459784803022456404204399187057193899938684223672346746271200156311637200687490601711852052729541620713697002628288465568490429691218252459369012220610825061530677635682500845983508952026615744287205823996122658663532976609979427439717307293205508884123420792288419512020439282261809014251395907664059320259764984261151473327879700913094649552627147417464023265476381046600039183422568728771664231691270849153662008879954839928361837093531200372162114864674460072192365017515754949309608673444401976299943318296691635607770834969877844516784169580374822796788242086734484381449749291661784950938202391025629471002831426461816098635586579238305231871474596658297771296561560691831000990704061436453798177745787911049782352109712272362960643035482864517682605785545051521236783034400155037762235236642663481269978722775385395745626279829194378021501345829439198681252364007296291071901527462213569560586386704431333554680670430000875859204403339096086948907687601956945861565824925183462065101979505003402626248360672838832459838685992320253168470275147447511976393347676770478849177777292415810846241582168789858221022518383354803156507542768828304508649664751147293127424386833437113106253070511602168179841181849644666566706292524342119279409386744008068578248894264121689208751225737921052759501846898473319789768620800517330454712359416109426803352970241696296388612269830394114748203162190140238710396026209084475664894208917572278492518982473659214325678458149322396746623065914805589546932078389798032254254097646204133266783561556686249932638173563543366217736142312752877376335284515447553974224787535512613642436796588371544030771775845804715249935740991182449285455040381772916613727599540914685425581176379870459739666456199158387965386690597630680604743901863493099904022569971434955738938123377304743571681201763318763670784666535081985998259490016331675625720330256179746567520316407821218457568938969788081033508621132750925563729800399672611300524132175749315725224952269457980519741122857476287221752381032517375884967339383793138381838583256422360194708733070386216223000648354991807532964727679607090412828523937510576356433656032538011070744107500543347886068265275886162032446892964374700715487593583330779401808308163854704684239402686159099228766190567297066789040755218973202445021165378365154897737218808995050153637052667641787150062733476272596494186809259859516966852393504669452497198129132381611443752480658007107687072538471567540301569250303802040489638183689070056185967637403689149404390901604330239592080750306261132340424495436479172365344820453131087808616984859821065565968430677734394984688068873683354185008780204341197555428703092153301405222057681441175919838491109156791909645935983930973999715905719426040471796627980249519373024540365124942443956180632786105879707543794627012586196065910790746657024276022001219650008491179656489874777336465331903916746010323118668188064816374336901215393756308867049158406642692775938573006070014365184571040118594515968378998800495727513411384112595994850954857965490883374442600753921505401076473820010171171374026091284183207310529049654471603276545271021868269510871841875568996839170675450038434792522791265294554935102690405101081976481438276280427719444297843066377029494757320937144625858013997446023189568130717791753748579763536982498507298135809973213098024546103352898612982185955552910840495775714574227401582182428168147543648974102569585602935974404254131355960322268854311594854112916943962054212901923283796148967739528939463150083731065966114626123021413972604807546789017294189250852897078045374651222003870347969428827038541331454312289108095046846539926749428446492589421192772583100326965445175997294705971132757294854067784581747597808043409480593958132227471149348013862229491404391176132063102770157318850762103191880412451143145985621706554934152292252128087548341937239459588199022758232766318172362974224558897429068975053978256071419423806621925679779362296755133807964112002360613954007143537233451747284177716630162383036869220504362044301794900989268263290104210464811556784865512393521498273444780152548914611405715534295923393989876611875428325116704322194364181476005985961585010326143507923724805895892458088120621504413028509711106888595625754453286547413526509429340725327840496001283522558011054789367695314147260591619288194266295741595790363956198446801342042327232470658716156934447829476916113953515087967171056739390968742553782487176373846507004935971126828987105713629479271561598638728164142543370006605909664384513213316787910648215591451368367568970589334368284140899217497052806657744349631210943047260649147074048383486946384787313475456955071704962453417384804481579782928727481782930433539316354504315182255517789402450012582804647201668531711356848127212012113766599782611447157774714741452042433643507422021745992417277720839314133327980910708599237270319685930874998501591370187655299081470491622831509469511727786882085912252365674899115322314240357223456908378108693213605413239912571773193573727777528453670215116058889343137503437984010054345243187068865077599653234028900837585073775221714511311652750971439743249754964717459668974589654629573526075219276998618151919601624437351428164712806759045013929993319075188673404059995834757058834770551846739713488917037813860013396694419290863669089474050633104963688235802108886455894169947413120798033859843416922570600498050973868982725396196297214317512315797766032011819611018768612005827853976860609278491804678284186221530969788814706207304308880674449001604104397157949960066498288558528735462533919079048865274718330129549495235970433512133764023748494382241319954531909097578308389757893719206357497154471657794421019377005705241638619193117082177453703354273568409645712564233266279680909045365052768732473720650109559098897352469921556215443569451935084699650781144859114471498837674377994289690673394096667365496248427762322116910129190295937113560457123196748764479111562885031758218933830300264727423939859870783652757386441613556685478560277622825600763329170214520077495599020817826969804321484943006304186279975803474594805401140099270130933079896385908646092342504442219819527806448132473480212268244244318082254691438553284769788752250537841487349626994415029329305460612799427020189142201811574273040115153218416047609588658574499617481905031048228809424767600858110533988160559608562840024353271622392370021987887045195714833625081669411688042757540521291807308838776124532689981886248018510665464689262614820971959312003395593896020207773341743938263982124103078633706815295011409330629244660091686670123617761077199309725185677184216632998948779067811397270929510733691913933155467026576891766930949086829682290406662051709359946792414089646879404843276873569987744211021184549017893007764704083435727466248325559663171243211511817827025091725778202470449798547203403946914449710644455579550276637817111185228154209674905783690638972615813069080293852284611190113311884219337434084140831706985981018835723827323166573387836730824431327775663296902119691342253411011075296841623180596121502182782171684672655528432461947615441339929851206104605399757559811994272912734745509247229418321404848054355943170933053691126303708056001845186636411536180703588784282081138289363363560772695575752063276103042702909214824936019506939938097221207728588645870800556578899424394776069739969356785362779816223724658143607680524586810567998541907291716990304212709285499368833956537803068414672491294738722426224629085326662901343281848591462846696777710206964022789672844556725230596029731518784719355669045538431212558826454958939976322852379872780457008757595430792812198624454717035619092060098736319965051700879848908431034228723635380638944787947351369375430474810424459337804464388533789567686338864658513022614592790630936330374313836228145447121748581849122825357692294555830376330593659353675976697523511149195001624591905097820504378545602215870062139301250077982309254471597543463187054999741870915902931054181698943376029550870290380424419485911841539785289375093695452741996827356966530186226955138436713397142763363252052572452629270235922308803922389811600616251028513097448662743711522780702245956634141620421359122829985985978667781385118707959205765622221979038824509091145118562830095547843635314173322824820460963999812589381671823550526850194555988119532929646500351490279171832036862416091656484993585443505920593691329524392020251108376326423238884693940351465057221074407080734052506723413686904099279832858692862138943852872707878682891666922285205249840252793962258308746821491054409115586375982212198413179425905664644674046919336842397005164634241948515232856853279982360498848630580691821434360730974708211432275336478211846078315644413281487784890402520515325851859398068293513420318221029020800407468238188582104352900270444890854365792695251204967667527845672626669516021873662974480567721678531667571312965603444723760587547826209594503903078640437324266106308681980448952114216435957044309941136710237715450088523554860755822356253782096764078219108354354181885964566065621115029288972926532060263872854422860469132314898378021919668376612324122936287029281186465576178300423793904275274711703131771456749185845726673430424394212233259746376665800654798420258273586311639747556691173064853291456461145777556302246504527870031396631776822271821949086802956366766993989314765214997998340119376973328327301877704962051454121396200202399689142587820311429886545600399758036025695914163599542420536918218109129067200280675069554451127321947366951319111261955225638631963097261340413901876078767640946847802890432290989891975893124865043130697167099567741967303234205863959209365594790803449273539388786569964405928242533491668679780677068363787122208926696889043974315065065139162728452880618723661088328308253382887903522629701758637326933063067552330384301230516995943515097321882121031438545396675664896700748538268356899656427463463988814992310811687124736745705792484244684005197017428540219790628028188072271264037608090289542961938280635052460200832464022047697855050457601993689588171903064139897436003795175298981394122788831629563200986911837840578855529334822569047698054251484987416515314547092577504416217254496610994791679036663100208759632380108521100346426679178305828394987830126814419139934490156254546661328818432463252087974724468001181696568882926028126602482524858231086939487923089594724246386582105914397047777530800911770336622017216339660029343449287752740637828787954617596609432054114989190925612053531570647022303013387702055715068851943119108674030325722848096016302298755850038473644834667982162943643847173940107416542204455714051029648457203711107576776601430691907764467149961349589351370250449469927332961101848984931049843247015531638992566510291165180907420466818307344281218726870228744836381916936364175370912786434974523999840253946973716142470677023349094576613117262322853491633087724842214463638970185870147188183592484653755722254147222602008786326878925637577432289331769290830717221522554291595409510636171191307651209556860289876302351279511849377004104340002641235050343041915954114099849168067959395921221036435173818927924458104068894401317458745960929856727346784709495813067924891952843199809375824605444285595499570496438100292741680260453370447726223039596752780227133677838610567813267153566967006980941205763150357132215363188960325216319891223432051581101506609270931768857892985532383902048747543440489899713896716586459124176427407700550002754906955904662837871762961291697082585181499479677010028089446223335525717978537079981512143869623800099448132499782017355254654431621130661332065259215271531501867549551256076898282880417379725490159535118946462655174756430476108528001335542546291279392652813101184409196363607122201744418605446632919599216527343644695617151178409049401762386952582462311651659024293134663987128609950847920616031130939337245746132061467564400944140601279860794564327677303159676725164535678127717620435400237763808674347363123888787912424684856611742845143050625368408973650751554749349858265575143987798790846914539062863963681113539066797579129287940151651893822181779911077235077249447439913693400055671936714217586903798859551830666844156247655579619211162942342156005489836312951692723102104104114170291453626523271630546370462400308821132507468308528707559085535776921535395299517554528673051551669652676824415402630698194403585751406896306365468171176446896213174731722414093447274216145128680800019944166424966248335987093486203484760434636418874505035244416931828734789032222422475408240033273021206760964250940528311628566128153276861668620617463329829526891289402898868097640202386559582891869095746376329970132210307909038216920673572779341315565410482971620142316509506626208479428997201704053548636205292583991526946232116012810906213361400751579473409623435993849552314333645219309495100675439643175109886671815188537267871524097811668289722220740243742658417247815589078515000086177507385432397120487095363100255828139727538676861493479116913868005186560514138862081599712114544347140210674328636003315302657355764285399162334157329186685860901566410249427412860189742460177737599612732100456461949428534344493982433729925485123256480561877236435191303198401644354864632419035447398598326287032462315524765240157264274270971924578191065129201823219990751445691389179058776714780330931975854097553089261881613629227924378441232015523124808003186696400808460280374734589955406667071054920636224681894788616826583401590928086274035763718765978011294188720535826313115043976450971587497006083615528252591744748314952182261956322347271568781940248474492190953180268799238706467139482043257995707674482099063049504047843208326826873350957464762367462098387315508344687848418152931648372832155786209136013818858476631846752293764660616740604611260345986062424388117764308197705459133276330309801791891571126611033903350043196670147564500844994258714352384760046474270182820910949729825860766319842837060187786390183870687385505840800034335614935300471992937010843684684890363611142748997851579517849769473909915125424040890802410768374763666403470442461436431258997272152219791525614194075418221392029287267787794149263477649163862518122132155038952165080618230699506079669665974348769402612044784681648347127166312492341793614321560074270036162206525949381967776701605146768768644350619241108819377453773654081698520170232437107778902972149439937010631799961063141002295666157356195429942246748213667685947523316394115647438340978597015133582746247121296391805706073326390596605107543343242214495320981494222058759351084010016052313826238345354508542946032459018103553480095566859608686202517197821603422651667279563962816856982577371303612150173881496695806010817501462535803022791006086100569663930342165826678265447417824352841400857950114131904442319384803596499132537308625142611433279605844716720834176390558435241294689254574854086304724412530569826675205856267323093573004750970102555744323054400290050113444254972957978145390926834206414400159091216565912043859714961330811281749132923491905237929229050771523938143982572811361605404061840132846781365952959126721139853147080817585361434417200262376635516575112410640603468327336768602829257884516043702480802878199560923627853922460388953333109693039156133929955728216490335687044832535053767212635330219544426798891178217175942825297191559773354878534651193920970820654074000153632299650295197010479621059340268838638693079456702890806133106279670662580704720016861483930310624833366594602991758018024036700936883470547299748244232065631987913530281622743905050110912949252432201850684678216647803070262906434533724059483205915352142228161215812112777998934291259222621348365718308951793553576725151802407123635651938304265504919013115951896123953661454706634605637729000987066771317840056931815364832140151120372559556918959939311088180037083500563391010745028852231208453222401678524231876342046626248088725107682887305392964681660889671690145712328651525013002092660391407360906592590678370724428239029898109179901925085215013813657207813030710051906839449324615594806558607435606287132061771593259540602860778685727377557917416441239612765965745301967763241750365568196496182745206808813464457610477619987194821244982791422335309496863860599306809601557055343685123642026090224538140955050072229087240030844690629616161002991813917354069702050985825920731900134656924222867382517998562946033426601644350619403290125973875930758116917783489190114415998159991402796960131932417601787462414334785524010103247001053238618616385175128148135082999619396349824205683172887336819839362636628658892406620778816389793700017383520521077700848764030436730098291855981297721446527937873253922347232327549562041224721928304694762384629491983313394952753638241251288419794436840068687348565830568963933871396264106734026704961570889386316428722793139732232824007085233698352085522776608775291798536053327176495468469145468797740192142330613500365007795844958065410976481014451274907777010008860389414019493797758615999361861620430270604115797052862149927297115610334478814984612093897051471996723872903094873604741482496091463094217934801140593250845420648867588212333183828375754028493816167442591719643128161663765761218259608952399918091676966793680421782872495468687625223681121444182259742194809098817836060720149080611835103070619123547213596435626870089085159812229462125019750334433979967928440680417784340311371462507113101338092455193260395807187700373525369128745514369380974211172036953553226362777812293825293846578044340757862841691702120191297455660391201731038787380843036465678019284575017932435532694960731079614375748887121221261513920511227246695789213290629401515817470866732907180936819182751235698098109370074068906198831086800579380839254445505073434983146865387722924079403989479818510778964805516073574319646682268877672919533011231243056382778233483873966054291099741327864178869330609470795796176126144885201554528973577646679019751268023459225571250822920096950668259397436885248846078425051453824426432199679016276647655613938580551591476533301172085983259994560428282106171596730066369085251646771125788751835380787970374468937269500398023057188058180098278981882709325674970246437172708568450311214829960657836806298565458272723644369745144267140207812618898956686687411253477346770429543957924018748812831265563412641784886284399957032542492615043474985247587396662799356133707221138387928148878899135153381020200847497565776347163020097764825382400384898090958558922704211925537032199548456834464350073427528900451189763669371449985231042203709354654849167594596994899333868207845142949311426076409006105684886465242254663698272977823577053616416901723798609889453419592051220931881358628460388663394289176434488736163143840694354161332905010022601269665925545213437502568015469400663623514983035729681298935556388882513410380458349591822567476794953467089046676741273214397451608662512549618160396029370574515770926191047374297704656335887060010485296233325957749755914550819467859302504340764277753249705549078230666012737894376060972075506230611235960035678271137281347383207711552538644900091478882151449152687632426656779500683097313194040966995841743796783738124439028939492672976111666966945108647695198887981646842870730323040753615035737171909174970410689513014584078239870249342165827403636968928245979624955100131209858024906060241271444755019806673201850439680440723079854977400427244910563201026590652609201163960795663886510417330758280379661089415777189636234475190706371564621306280608535793887883800224140002429526954636725550156602168323853509188157375178083007783486140182038140439091837113192244508131824282728463483884461118389935231938559653230114659775031205968473734699175814239512989764454597945032352398571978597904725350764508940551018027131021689415373290785530459296974196524573692667557633409937097434402464449557085598356407302718376400090106054477864925770390206484671310905401706729631361761868178201377132884890208029011841113781727149009716192403723934477302165868928900419327216955444710092263863499551738563840324326789071905713384078307810246242782685421706832450116835372696161401113285364511444113837522899888919945711124797027696437327721893790630740713538609690848938405769272715836762186549884842533265400283722477973184764622566761937364466402907184960915522377738994542021558187212388826380376123961532511079807364337507611436696916645327787790196366628536306617522959987762118776244940034486136898982671449711620983178463535122814524897779223651168389650578554903254179832348907743213167948267801760735405269347973013959283548139889970749696067941498256050226602813372596550791818130673316960938133577799792535717375532101222767374856867760313646751338428770300617266121149990549105057402073565489136683813231105072129844120047483007228844703525098777326536660148689058198290078238772551597440011209550040139227786056995020877190996547415114197578950681437755705187162763376562923362976344951194121650399022609753584848098834715910528284702409461775753556916261862470697207597092495103977243668359504743112587348002205847674740585017361552340084784389343077739161952460351510229009723261834109647159157599702938873035966373145171586618083339152282156379796557420033327980339823651670835422585656911794435819988521126952116877808289539683972070368041465956866945036374961538076827151747177798763055426031610645453314729903305967488649186131519906571470204220009782739337267554703933780648728103608207699123089575559829760533102642353682286830227588577363759020197450599319465546929353098098735390815511835259105465442119216521934027784060776421883858811414657288838018573527539510906315973013012983811844565408171384171426355358298099324045593395398218242402946573476327059468166805466496733365044906696091004706704345613326977395079571545365901266104349163180729159830821580590117485685221728899774531658605591069627116926638888118784061659314682107937484285533372337550286969533168261433939618369005640899230120375829993300643266185333138282883858173993667685359992646775891508765277733512752954288764455644317109573113738905367938211340291369693882031920896561418145328088579098997695619280848089562209087132776480199878016727960622489457448157326708679615528251578522787173596818847597304022926858662094963651095535529423984587035547573159457767772626309944958928918457234930727054532884620330084365668381013592812311935042026457344660477231372413574217839352941743370885844769700326687339811607806611685175346352309746490410225785960561160657321358099541421450319594927533088437740910810891551657896483926362085422780571116385716896815380191772454118354115188661293553184750490903179738513165082510482430105866302318240945970422504238457785005496177569019322420901898240149870212856841447820609488816134992674589700883533997738479064976443987505066994009406829631071720033456873059147261560451537052299279579745197602521012499232697105654865595898267592563288946000741704439269021755236286069530210393794029627391766286877044551457839075670166378535561273354799198695097131800742338561005619510337565675380615552253300695926966051424231126881000154567453484404108458948827842682933986669356795445047497091280310656158155104906346752687040546394141895416143985808605685785523341236236229705963919034339222059248395343224477351138861586451626120936271066293474300978930269973159992103347499560915727760544150959011612855393825201052466445845634065277104651646837490249233933773833793018972340899301344819619411121995088822578516643491629397070103269009332539906388633239311064510532841859224484020648611721996609268321634585914000010636219824231642762693843089702179586041648423601514988435092718490174429866391864588916439263824025485122668748876174630077505135026058963103016783798024928156187740064215356692709153319240382069125060152916633134065889324677266469669716277692039999164378560585693459702672648948392098918576639903884476309341089830862896450716194461684108289130429505112454841479775460502146748736041484321257942896368198016204703615266047840368368868302734240404503493062523962655249584091776127636626297591137887375034376321961266026095787928793926768184245593392680203444414308714923783456570647601402155832097087651644983996517002485905802621341546240591842658604774549857246172853372362872544593466640765063323120833517434618739388787737195934823875322276415281069145439988386686499101146911515678079520707892814016458176212095804393848185909072599461342526072304733758523981642683542778772827352139056169164909961378727623157567705298359818204332055236070211420818415179860346053884470481319113126032169007544263284518587798463344350524044361448380362952245835684162037489505979486583812473891834654124036349701646078850055372343826742152668079895149635457331046309493373745445447403728430011674688346346685228093924673364455465978573592922565538729532929367162471054560468323090251185514658979129778788957027349412931326206629903376109613578164540415952115673274110824723698355732791996156663944753155614747340644805142290494411288280094032497103218012423673306269867125024054992218941656709840570856710296767587809137217836094347115507904656594151084271357293935763758541958278772191958576442987091574649056214581819104095768333061312761236820352316749101633691211702011048935675961649330255165518949487532703200747632963489335003383536713962142923091954824692653736125749853487580517985262436009062582314886847388564604575426178076676751310962326244122617219495606813084916667857340488680102703373844036903665175331606861795478921509440024405260767065663261689535239316817280016818574691548253048333040225292796129151537539753300412329452938367489334666407843888425008271700121223593621973099494532394339871836043782884572891477638652557333588681565328529271911657502652381290424697138394876806416623566367179980699349659172569180526160208010383471168699992726673575897124474402467559458683171182399630628826902346458040302322178075723300402753923788339532283689277243837614759221930855298798871315319893180304935584471623430752688032241361834065388864687816763111168562851243819780728360815326918267914589364913346102485727135329811131623887828285352503899729940277242991842542652389259469269447935388429799326380683638077149650277380330817992561577444331602701671636124964920343641566940118750848034904093696731464105391775911186273653409813085387099462899732228144747128562344344904784465667200694512061711169120840293292276930966894768404583857950990665849392182169096411790299979836618048867247475261408522896368724989743716429079027400957878330302708066846834937817458498994055239890081693282852640248015558736216699919355959681985739073119809436224445062120518388577213764135565987862437979436226706619675057290522792298553497959866699960203278253940947032522946332057602584696000308660261806877376080888203185721183343069025146682225405367255722182668138703500808929522121161233959678664996369929587390372200041142364849894654162887219802945107150165452634763371153171850827025390913686096148954269300216189583855888837929781050842562040853065869692598060517126463022074922206803782125945333492007760696564760021467177386391851945126086011868389132600851623567530288171659989752615893507533870081356171645784719755545307980356617293144648222766981012342891470126550848446337412645428269869957252367726740865092847107878098428095201928807341102938024868131362020083409516324232231152379904552697026083815460802845120633713856528368741941791308422033187657376067981447614653608694155254450051866994911731250152963330676649867719577678445447848568845495233199157328508289902854841165306162884379950735471822000070167929465403572002998013712512526732584534214125369601754375931319434864662327859180087497786988831847049237786276843576377071733132603875293417741948986838622369915685656073525342283085000782843571780754209345288476107810801375843297998493931374114907974887833786911445144823201847498528624866422102342319881916877913116922889216004194560308403903574604071048876315880460388096321880785968432218056403076386419242300831763374308670385428058587580641470825573139219944905269217295595783477616409349654133981923530035578315708103863623105627942769124385811890475289354302991898386868362991412702349954174606696668904636048059858011102853528992570251756135845645692451325045965869136837970078224694819290561771315599905609503581562965016876869168661561897328688162756368655094286224812582035634310052410656305144483781902794103636071550030746333915306026051800009456667119250024123737098134157841596168067492201310427442179509511400755826087221578737428472917356194315589896769313371964018819459915976969237532762725465351788101333177560933417346989322972504509156869876742405344138092326018294580679041986372905512830375213531305348570363452041991789181960698062479436517299914064014931506652217395517293754401769020188453620815549190007269216289690598868141819196921136113999838257047304208360572957146992036657401872898053141124809522851507212308540627945683823076472241146967436250905748167666084064654991757055219616391832333603239258814625182447413965887573216948620654659691789396121944176328085488249068982275330823868837729915800047351233232422668151414946546471776233095856006321553069989327870993152332761238086458500848287390162413370710569503238566191631405620251013437296783786109032165439811644794347649851419491701312720536076810365709598741281135172967960440077524980588913977762679749491502477360303539489557042377248382154635488831430184055286026205644217029788269341145743794101801805396006043337342089106529646749787516348802389701626178585977463721781466228000920494056254502774480671960692322387043103961911789781133921368318930204975292888940236518816210999819592603351630787026975887676727561879619835367038236328533677679313829217652987584516221010475242923429068687327403893639443982279176322586474267369542981417646242263293076764872057671622418404730359587100123853989738757380139340708384709989283896356728392351830094507385568371524126797883915890897643705314968378017519965983163837744356234295238616655691957953375187756995794095565489630523304421988408561790629470384434419221287983256417056479777485805004366301202187751153090117576334403414282934291330839511273641247709549796913860518931689467857200168447314876365862713800419859659110811364956950329720875802056470940061197048210914967136226900241350456873504927928826160681587127122246454728558607210450676526700411131362542464469494936142315532929431343677115170497433091640687516082346305753688248494896582469777778178359762338325024358533220213045463065584912040893647119715179012326885578274797087034932765877584727934678177601921683165302507398891134724654349861802903051590980863964951395182247040001020880920876573121635446621731369978410298888281460501793168374794376382492442391464166174385130296275508786549076828990052274799324445556229197258262367110338648741248327255306219311438475378193714927575722980487050350668987084342594570034697835634872619051717718929326998846936706716292320558011982228389447505793269305644405243459050801666718369994875760844939922084487490271120284071338386697845993435042576782378011790827775566429539183887182975708356162562739323301812701954225944122964208669947507971927523910574471116397942126210526154843540647917413302089979785467061926460847700349507404245648508498656374743479564819758924116976231351224377380359181194510006055783886801216331684729111312536588024856504679759650557603015986922595913171794281988153874681227616469049179438862622627384239583270981932758432866941094229270337271986573663130478579280315903272789322650379404249403939924075512836933832476492685162938515424116026114194788428332611894217093060856877805809879960933309322265490768261118245985344320652655780617792208792517254359571573588909224148010142006217462926452053324113861736356408698656931417065215865107665549116696981620618275854569682449733814093249815941410562939423759976935743996176520753213567991207060349350011112100222003444635489951670124989699286838152210364237213255224770376047779955901915651943073800361412728902906271248707733773619151268168526586466468229397874418344935933398199681639299391302895594247451319238122679585344561922706916815984524109965409555541864998413503774883360422745724364303348319409668468234397003058988695684503771224698807237252670195850094753536420866940300442088227807441313252739536111995730876613002335236404396065687249495506090156913194529161465348825218429558205882181619577629264708968038834772512683588011817048886779474987167130354114782929454078668579074699351459934429604209498459248130941478139836270492784902264283972976302931770725743336812542465241606514431344094496530721413229705147762291310907442925140313258447114354880746857647333525833971906741309730371478746232372445420102092568857509131094011942016371865151984635541043527203657488965450097013339726843519181814466998017555112311572415893307547010319622241581257872586747533780129241924798280106427362630818013955525529468385435478753850896594649618408333206012787112325824865961163994482635637749388136448588513024168115816697473433028241826614498163537113151495331415842335309521605281927610125090511245099941588811009901294196868764342565228853023634816813679364913448833863198838275047193251348072119500006207607701541077334257181122289460298393879859556844956210469280312287913541321322075281218600815501796620682761746997890581104980519462364655656200164340675271221531845980857021793873325792771693886209494565072854642708743169148519821700439930187923153881991795287613443246983895538601282628602950957042434728952871080272136829455701370721847268289632134980244532465982144489045365530078240114251843449249915195105183876330541511928347615281477452023384672817898302988383050681450648500420256743417016119324247986893696026625996438044866814545937083898182110776443150859745885070196607858361565637292685436267372821025975000933002764691385925206918248951954822462092376219639720270903917145590908994996844968610482611044167294055696559473928240089341643895197313697206707244731820979912551870649093522380207719737795703002563814295260036822361018530189639682244402576963706945389055111194518979325684415429690128704052541724782313228215770462977319713604839817848252001366392374844834184180503678577614560132246670866190657115516810763338613741503483232513427398803724709429898233286507636259645438176700226538137180028120934402013747461148841320048766256634564061634337864245598280031772638417080956652506407302500067510886897544729088992397605777520926158915785043639363374109050784509193111264917303666367162076957397401127686510012403805622610799044575755037073966732319769407950123780352438938419973615668734983955626356216015643035711230267136866756007959707190442534686843073593808991966874057108377918242147830254874435765165835606037160455025999583856043267223219767038751431089119333968577775535504994653757328705209802754808666947245843250889474495160091792438900081908489388725096531296906661354651196723596862302166412992927419128641711825785051468998671422186002523630317307351835711254359655771447790342927959098899054645880493379920009600591605775671606555099094844884501876785454214211488409985312749573699932928525560952987570233000529172367928290619856099841880848680896739134303304449478795616349703017008796447876148368740557587188992967090623516288497398284281823055754359921748657699905596269587710326995254793478294159686263893157072056143313635548627108499930454418890047159577708391799745426082376233317343773075834837300886842431538142326641146116713896038028335561765415734264406404640499937226106266127528550505114663762014514746522877618449299034867638744756112057956798429546322511755170075370834454954881781969627702707922398703684222451090458061686209435794146373430027379953600249211022737405020082694211758926449867590387738576468992006629961492164008590954746837920972767922176854109839837836559238507710982328920249588588152588970097495942093950552589360735283393107407016643857195266080131789149140271070648138074440646960235734836485969912016116782713768637499233999204115437796685172691704819948402562356378785090941647768373218562635074537820334841274119784314250446508060833573210546729954553889415472664605972883003140790203016451529505707580145590401720442117179067622180361180443390668680664709765735227565897757451436191512981492708310060774308891223658008386133214673407238176535877448903559450286115598567824154919131651656828447333318600723323365490939607051606787987638366274867506960866884031801425665793554580616083914082799171256368404622892343439029054127400004659984363919037493579645357908754880850837806398125718654871197098730272160881802183970435978627806750326982157879553730627641254346527445446305721172756634600242018150763550914744413182810533317029277855305605590810770614398358519595816575494966384878276177652477189079421673244116309015314587304540291926980656558838850115303543893505679965825977469052753143389687738299009444744096004913712009770764441204757790065534676692595714623221855688658975102228493031894636038917684904504820190552593014323229961744556131184841965648826377354690608099799077120897520378777305344051515524037721708862358617846143162896272761091150525338934765351433932483183647636387190182489065973638087211903318612061982868100020442227484528478709362602859773513448265016038147255927682860227718239899143488214807949651134282748751869294800520211028263795588457056449766712876385163227161467848223324081947450309004884737880945926731063269402739613304705742550923239468416299822534388021729681442581432816980970141100317456992512622197625467941403998375123285571183567063714897155966179037521915696980218133644739011126018443209751427771933076907891030761318622368484495692454566471850341521701307578179978934297542032123416752395197098964330932896256807390674743618559499628793249464530444261482257098321208577828374821161650731953213548262815518072482587985705961250254286636969296641662696235012798254151214722054734419507937397541882349321346777184910881643056398449388917228126921965556308487921253341405100038392682266550468910354075084604365139895368681676866655324112083992267037203676265972146752982415837175116594606863633644709962042189829982105128222722780148596827404496516317268141491734050242326410653499230133624561909747307231374811045468165528451457911991368796056472362897087583275164672278459495439106451382629780663722424442825480710274457201185371661672765371450264411514573863936466424052017971978381741447161179708520295392634606782755132439024066227889130882840845615461063234552106739161034675800590302656347472819617666356067740137665811699291622703422201460145237125048035612352723150255342976781828894329368653400759753449323961611562937235052687715999165849110664351518697871198462724473726114796950619849290664599662887031064359222275989789933388509819616376042520860665825810396004239412562519546663585898415274700364384410650273858254140938415202602397220443386796165359320970974978082685698364353596015526282038244057546170979263920808018394254942049180073460031095676905997431578979962838415236757921269197344390933243806874506240828291556654480101160444660335239000626548399664338143526018142538475627222363728882446368951503654517921814540420226457867168180715158013290943139628911516023553675197847395519979286567572759522619674041193217312167266329947756566274843787341118436910247306525067840103116873386567350675353949768730613706903535305132211531638840882550358972608655743414305369100091118591290895643884235561940028934468806004911596397259339314303080293397298673892403068611238912215212511898391568173543620613782037309159811172032316819556032915706647975183006249983695350800562201232002033305024499582603106004917579329395696678231900492149814028164034681563299373375220631966573127521044271018928972288130962112719068762298555046493808588847870915647691708797817228484818878088667528722312367291364057493526594108285922012994360943368661752583435460376396218215809358491414960172970945062536188738266211768324939679350289750335754869814306070710617934792855999114456441397900833469459001453657731143401992462667281806551885084371658267972972249497847568393128877060278428076059364963835913451140933104515669485456497965401443076625935152600997180044528456597697192183825372309078196671105927376440673071840428363939645010726655046278160480154580281294352138812023010398531132639964107483855470851661003931047868123328315337865769075068543698021579187493936704538767843491802145889505242579259256972849046179755630929648246376533631046814592170547219556075835186153109428893303073961374138294910103415348914415267317229073797795379618155673931209821837448343803813140676897924641916105938539557870288505155451327955855457717855557610593085433364884939404352008446578763159344259026815267835046570126530751209292826288351952595890731783826081907297078983238599612754426220597062590741424606147975109620447372561886566805273169419578199555371857066615812016914719573932696295618513697011492940356934701168339320112865343827352679435652499172885045611229095041557603323811350693169480596878770330545151910790781339495976079619644638183413705002946020272291363848907258305597986337982773708558614984940339232630190700812368819022140997733596164805474635512259463209392258249540746578691467672267977758022176883415651746194295604698115310504443131385475930874011397987616799394083616864010854848351826963623075228025661901747753714617921028911768281388998021568911913335481180427591651484266043182548231721056410301679915297689794324890525804376833777257978714081119983855656976101472761945972600299714072519023790030930769974793731965543183490554473286756867920223006572749631991173860584527438719959975078433372752500676613693646223335812705436065525581680628519385399554122875993554749859755915201457411162563016711918940411374146300462344504998853243665134363204074240512559455140977507288623728265081811682290041003217194354015080553754342514249476532750511508581991118916141454696336961591086225508786218129556785285487214087147942287529391228678065255787057108203082042075382173771322177745687288729268780749909543265795947768224001579412525748936583707921933772358729599998254599826333960623815603056638969044885793561842146588430690927093652675401045809917606881375633786755422939756988454909169066487786135574446122470927843844131473535411383343626561708571488098275050091044943710455599446730453400052015075624950046524852139991556808577505880823631451629035755221828392915263537722708456645717482093488586975984938808012170268402475483382428394893971415408513888478851954495655223299719036420806057288080751225990452282649954030712604356808366565475060398136501041966228335857334144136154838036310431803613884447103172139802485355453267426029915929349329947613054127169508322074723312081338825644795099014833653098936419951570710370834319931759248839455240543995592011394649576004364012798897252305750121827647151807013968294375539062730275144519858800565217579435988614980997407026601077172759851876640914965654598992507928355206722489661974961770395004133729423747545594406979573715536373557651121796941641310388184608193470814806224289877415927312057856031111393845592542644673443925845943636143403375723817513923301086149871301583619158149105538006885674936633843910260743646482119553296048816242299921588150371821444910615674032340637260830185525797088249837329204528033576354812412129612055769058761663263093312312147807270770400738665581485993276966201659877102537004349821441886573317571605736300357170228129133707704208564928338748410728239886028513298277855643946656020314468133178744062333381469295410508050532869813317372462786835923942999897639740959809830181297706573939867440512154412004515053106513397200039700186652760407285010346392765820643268111591462628555914392575571773539084224127032493272538626922515131970513247959901687689131546654871505390920683627117556305514942800128447148188239064143477581343174754111391545700488524727380989884815244887029628198083816250829810426019505107099593555198774329659875542751239652395189868314845116727642218390737337914873953395305830720057757892686565911027083861958833790749059648047064228434773531349468750046787760157570538273497129991041317193221690534059781460722498210631118227516162281408909663779236573077740986195177344559625892725817281319125364295569003613124067614784578365351291324247639311359540697987421174495786520898565741333076686285347607798588131678889477406156052058639951380208508963750619547052778746310451409510756821495388621693260330420277996459573769891364335001652490640538862206550275776481780852581664743160466271530056636983427170947841279373423683054481030810150609486443804786151056965793395670246844699248052527017707127507338637806399653762295445791111627113141817653267656769813667306105543101093953322311829260795753269495015131879381045153780305724729192705577405789494085838437725899944388004762845499634418755629768570033958785418397527475537888190520417797204842523653977036986432009880983791698813634681273763752938541360072053221928923512877238111512025908578669264049391919664943649855548897612269245410831922253746365874052092701333160881006462536060113221663290957670199266643835560053483070361631337760891540790711204070175390404489545502634048058697387754249000950257538054586903619104173350278521459252285605019668203470808238166921611607034295774599993170264578473834110924940927662973634188371297665424772994484818644207523532059514404284548441004729517378678219915969275846475115118561062588528593888319741958572774016079217848303564684325753555249034081710389199997372269560944063496984724226123540066441019960942420179592482164621140776718744261443872452497827355209087767165919026557243927251787032032342393098380610727562741612983682812246726506931400122243787245392637851410769170792157302369847759534002970774494523624292001371918832754421871198279769010084644206018921992980012584388729918543212779314212053092293022493352777378067636638992224249604290152020196673852060895095693993609887470405366424199160840181703654377241270608898018518622299440212470737071242887256238866719973590379432419933979962396560266541167100844083707463143591608039508296327498154889123638169551531779732322274976861310587731718003586281241242626943203614026818428242993021464635693887985983904968594969861173000590952859263314799968339886224845465988450274959826571588660516763954793991338142757871918329272731243886881216627562947684871965903844569658231967627665880513496643178192875728654730283572538977597744850090586786809916865118952210445617676580050522904214175651126816406430752243321320816903027052629300792244030847643502724974420418271470168883585296946670696188618987650093544053040195999193012425884739502140077851499771836943089857384726081792024552887516615286592057948111357151686519444087152182749581779633302774759377218587306862739133308784829160290150388277601057073499672295665664118864652396698404192150615872414524681983789820789618288567364613476381001112496921979557824619200488400455533806078091199461069348526482649609171169548239904015836233718948162206860061225593254303684255821370616784078704934953934060915740432122586648350723401370447658618691966168678020859102058717506256090547853619660330939692854494149461757437326753200343441846615744066330535351486952674252741858337108646198344998774593352925026116259565766076730543168750263034931185665162452538999705371370476395535461637452927727411836591054463401718398274570353476478950991166561498863407531049568209686609557601856620253962483669101942817535721973660717713922747197569651736767093216386141989607379103387720041982861403200829169948965447229550648945525009579552329144660076366010879025855843116609366891869661232719365903630036373090625603223636836003014092500614726205267771502389256819085581616752127502212005887244027065193265882059523338292475965984649368055753536739455273454530822902573760833140310972921513715942597294595906115474222259059122229787719214326977812965078412569966606991462344247928965531600138051145905055454770052486860698463361233627560317430398219875397546081939325100703259918685647531906624288580850017831522944650707629239640948208076407933777499842500216626671966841086199159752403726179249844853789202413093905175269326362657025664084559662792873938863375395465059905979015847288405953038324703494574792714175445282787106115485131391442064643758493193326919788512502917706064478863302537854125818256913458447606808612172003601443180891682855501832667026176409615293739135127938281948999669496341439315246183456212759948815722970795678756191898462558539086152342340540681052542237714138614198394544956137229228941402952596674639349976469852629857976940924943332915651285764394678021781007517903845504030112637331426221165669754934048629472430856553842458774601019943534796333538297380213663139202479146799479910971353740835587806631571400685982283791948853381976061491028311851718909244435261976103754218991634078104274432692655802246112160520517142741122661742569212102538576974382686108143613941113305497423025757845794358758144736442656772369500172136798334423307084156555218338149336765276366391835462924703130157298904018797327677592961625123143675588381850001512103539794250169044620144051218015571839627133433384042130487897887089903858663966812720733043953925294046996050551963071252040747399035041366753650953725148197963854421721641874077004937872759122662276835548151221765272941987240850292725080507536782578583482279688017436974014062961947381106609041211795283238968871012875764584758780848194029069106959825649107905048207027757008511065020931450155200750709599256235104045681586556460156672407435176012125110136451313758456564127622309760755006515605272764779564699830190225434070476607221523333380101474570723562630566482226098188412465893674049928521232613395698983541500487216988259449438893846234208907724845128021930704400662071723873464069722266769411823980739965061454052827015836855994069582098429975969127600267008998762064282848184730989228285316755403511052857093569712032246678738506601944380321789314236446523173880690531799383340867197089688966118444714059046348152780914628035730267789049058644608678729385379265001340308838746052068436787845991253233472735558324437746694904884731828525284309632851644937016941906545162605678964761353759427896668333295180711486472774403956561212046417401637617669674084806623201863471500029001118307777338479498006180732583745773283802815814900206407379194105982926288576319712707528194723399230468172477000126919892312949758285948771926279431744571114507975277975579153919579048434688311479647416772231075117509208036814973926927410096131553827998735514151486107616095712225336200581429443913852261988591869787976133817512281099740265505424030615972642754617145774506793093324903634908076447324962327626896679105135896351199277388746535303797893560862123268868543252067509210556378493623825395440370218636869498501605225466956888177378889599553936418814238266652275596942148859627342344993082330708366709962395274151224866766933995807597710754807255396677357214128230644157918058793479226841437168997541860607251696068891087316294309753968130396594319879582701781207261461976289749241967668455696447053255043544003585904971237031221664200573370605856710164780493822093354920090474464650174569979355193213599816608779080295083067340301021317759216255247178136038582888119002937820630634952398240550417953774234206970078124382507137766936665343065970671522778567116054600032492789481822755525190554298771540494793553923267716924509438771972033285909518049328197584220532326630765541033600413631577067975756305819169812172478964674037409721842826961302396873123455440316234214270404033210773450048237685829023249297545519083494303263994211198830707966028961466313523635999982967917116731103835633505601800981596130694734688235539973105299226527824081423343665070903986890644159316291867705815697700888406194434006771114815886784951744423170968486279926290374750933155627214240519485923827890492780667791124367448117612403457524910049419454157176758421042144417109947975901042871450434686044848880884589626952403973620492584117344353889038415584296000161730308941658843512630565706607527784547876182334058680190324327958380216944366427887292393508939169495713437190857315817177635088179915937936423435371741905082390034293678107936702702444042423802157157781688906529265399499238605305857509638557651528682818421156825322865338036286057255836755706821251547218844318277479550264777981883103334545685080045499980194366122956939165823706524597923759421691246539841535513568868203604865320065256167793017703386431654950454624214309205964765520716785080430883695323808382213042666913618509690705394811055380384255180635896087540811538785522187353103628895223439482674675254325840430241388524260897789663556862186482844096632637767506552537429150352346470845510937302954165809265656036748647525984314708671278973771218497794527824654849572472052276627419990099308160560135521221588420549517490707390712118574805623973222138695553827986498708610809820493123157372057629585161573680109166942526513112862909954155598531680866504107428424482740113968863809022899293860449422849274730527493991756754312407010581915531954810390993697687106936641533042375699887323252725034513863688657974215303927388308748204896621499365738299789012373976132899521190864094748257045846514925206458087786074641613633231871600406416336882376843562598556395300698706171138290638423143059550651380523009100301496964810461306434571013283012643308429733680977794412118807803985254924571014401845993708775288280351544460797250398264407096908413349223804721463315791634406034273944379228489023522592990350172703102161857056822063204397380615200507494525425823356098593533763498127011957650940212966579083924781360663355314868480330086101103846067817408299109746945063451935846481816259587114716753857323892530482998869351995938325327352132775510890684507868075668143103433616898143572958935773411407281360997620365258283032126344515921183736734226274755798651612467798567666096303106524043746766680996268701923830919596748193546210238971144027366804846848953607585475732646568698772546644007586976496819025978585921452818316462742488331752631667426021370843533404714595709678776490536149498057928198968528275264291756328551500812655349165929988809909875544758071998830073588087222828301763658916897387920916888847740936271238959853725574191057726049998309641450920886908569698530793936580022850018314863387613774926200310454257531476871926201963666577545402596419796345933576285280243459447144543192327146490665573989625768738254675661741332274849566969764471270214995973084924463268754427012743321686290100371445607646095833421566196653329695582302380554493253658322396205862428935205602011131952809599903271584957237546232496558506133251312959515526308668826735818973039765530400330482910878159286781422034623231106596124472784451844426813029745906701704043002974683151996948812278055626685800747586418590331460664470464186347541839727138622951848250171637762484019994783239305014905783757992897062088213484694495059244054941101040100003532219855524243225512217392447177038018201058224125871572647387802160735514548731664552004266412074375232651398998018427306948752643034877900397720981360159192869919190774371713861059830607681571652450357148718354327981865128591308811100227838997875362223001082164455368952198110474542085238972472859096739876806302194107912410330223503606672291031391334661699302148550814736958913435374044177488956828529282564833799992221578168014889330088085141493573994762460237980299896953502049294894121893796987058994825707044219591593894691629197403567386095864961464569252412412862708023488488286790092698004752758089344564761711199528855041369087072527891176058047581629201892801066263483738580557171022932252836836642871636618190267283312595073872610835203541198157885610329341969984281946021086013109595184203826376142553734191843591168458396883784347911032834005642746330077525112004566659459384599690707020719829109660147416562652709075102804470137231594955485022276921075361684304009670033529910732387111206947008445582050102531573865094518235448296622476193647193021153643586680834113182427673090998599801136245288506499178885768473065253995561687537780078410354920458507060512349411978193097683344508160881685584166470345212357919246254047545227443963337000775875596821106207853477082785951497445761993028483398984199139050829573761363480997294841706312378595996559879707738039762493043278621188147949577265991350966362665246843186396046148803820636469849527258883043241942051437561463355743362733760069526534847244925949202171143066477050157763583867276722096720447031429935189910200540229965614326374195530241587801183574059255289875235337880448781923114686508632533298971876619017316805812927196321650893651485765329032177910100159240728472171572783833003206749778271183202272768649975966033243318181356921261492534245744710582664507071818150776219087752678557884437839379555978278535926734870766106739375791022455320880416359025471569390729304085762733158001668386194268402843898905823899325381491751276698371517796104123438755485230485692164005054042072456748139926147314240370656197521493091996774607520953838352731959507812367087843231104468326443974069368939812506107849788779814638041535330120624120112704823789907701998168279575861963080257711162718432538279122979061834599416425639853350154337795084837068591939434113966146541903972485140377690955447324114996331470256961173101172818655030573931700003150165998563740106867256823491981275496039510035427697524438726298662409375628214920573921967287883397967328691217627245008869488560357291991318657815778322506666333327994319877882503693121836318079800409796475464309397862948236622314250407733998770704138263509255536719301945412748369333079001949807910361088706831609849191035315501808371810063282634167222281832190320301611844307963191560705300541392037714168085321442481266577588520653745997866845737693052603048771657794270305013146184154509187315475465807956514054522470350763732550113761733217783261631202762144468729750613256678750147885254084561560386916038590081247564047121861618103051775184689387427686708537310378292668470184322671426401203279634645934941639917489525957037874905657483952498408326552256489912310369191035760904908324908586569321081825402150564662947806372563125739598466822089607944742018358527622877560149949193161702978978076411743871997947352643616641402244281719980725488566951259417396826194788703247323031559177943785411931984565512567236493468717273354430113204368227136059280878117885013248639037480832530662671662252711487236961322563861603336895226902713677301339659323327203357566811682789223268447218778141101241213124893211332398333627341909726546544594986314933935458401563511266715847543238996119437286799086220812752277970616894041400473727562350116475012452155390087369186516864744661495288824510862155631580178648147697221824168939556492018453402716565639443991532498954590281387823443391207077363864714426333142834827584144118920026339418481097531214276215401289237937661022051000334859570670701038522659086381082545644780146299044083499586338801398319693055656039855713574232452089562026483702295090207727792987236655533625152485515942864886096285196676849098605163387490593887017782627795959475845375869338534139016670981825183228649307137039777568677738508881289843533618877075835070121741277370198426383879019044134082278698517536997052873042788731813411004051751920578056685188071327294018672048049530663024338020456029473284587961728865955713812970494725458637408023192657683618907300931444364940845393034128004083998462691021883008179560967769990446711788715467505952040632492129833421360292159378182392872582940226467145486435406632734671147248891179267690022912205197302089193642992268966496945084943842361001571672124703002839454850526941736977431944057558716741041211186041855081286914299834704024128713084436864965995857498540487531506222587142551199441651206757489976449826339241687654352793944358014422244739667195588686615930289386271511432004661205033390846244981558771954812972951763650800192103289152898435734553938856992683604938141379108141152503461404265472950415185333190673807050399615905141551393998204616923068441422866433939784594509880715550916946426704070253351215717157863421769912354866454439099254811303761959304995643625127846749667585749309794624495334786068574659366744803863431251456392041524196578184676549150204951010215865787291689662136325480090661461242464171585188830857741341099112234738475941464132776138481129531687108333772890313656816257699385268358716616246508558807759879763893269721063470173486250369143566521997103601160192892057222006838538946724138647746006098765470576746188530759905504345078829070318008723801213264013474012757345122261890995901754901241220444804484382693608793261751968224185118838193167982004869925070826957812966113134869513534183012753399885336548806327804807787868541495090429442574970292783592606719710659309549882465693477541565559539283851356420866870199481456803294220289003260320707705346387274885526683559881083920199208547164380525307560177173183647214445920805806377935458269924001468010340758638305637593823100484285922957159297093202244513167179438195052948826591545345223229643135032826530725015142096437546107435357803350402734737894551713721456553128939350527661348321721432139867196614008089646657576434855095357373635381054905252212171365591346793855287160262927592176773703160770607710416022710492388229510213273028209801923544594802694696634681808734822369360266927715488434475200123141538332764190883669866598708382458958172670980773312972889194476278795626160342106335833703927748281997584606707437428989549526573572472984273539037034385492320490720805627380073730175728239154256601867234226430541348670436664606919979962865230026681257791451093052684133765230329515599403949047734114908415579681887334779009668894010977294713496006819313144173642500258418021630119090063152160575123440400245653770057997943090524450406891503251298375365482714511020450564239713615392938265659922011828496968469647880586674986042095647849866679328652452592079785370839235354481840291980132511747711103931175951201260310058161614730999974885252648230033267824521660300505542481430402068459421414406109156953021958033915714804832061416413682080565928011289678958803766846094391383799874154626244533851814789697820690260378858589854929556970269386030311866094596205870377002738352386172715531350912543345363552368532189504111535048180527956829218009761837024378184914775885598653285375360096199873859362350445669645780172303729594666077151164769967231717726178800715565200060296443238216241096023665108846730017452137400450187018489919398880033951148404586282867206355911382998258018580464032351945531843886482631754655435560187255109988295733817190298495002651770665222880025624726034894989289438966924269566732389565478491306417045370863496989672504216000727242528818211956931961201797823238794554664668998528881408160306102873584608771716824156285176337685538189624562359947788236610212083521458139389210067825958224362781926873310508093169166971139979116176195493583022334831501108562668513090193994350516145061912571253526189862168148988664377398650656863788286597467763951328729113621480798559630088585639649872090947337253894975783938060824251397496441575009022168451316842597801187921776298877397708197554329595276229737170493353326227253655563338602753507287735845118273210280551019456145907403561410543324595199062468681850754099032274670732969943514336247131201930411277534448167679050450300714861709961423498268232469682806859443095707402429444613577188415055830922373202199634842350321868118059796726845267415800574790367224535593456132306564309171783218700936267482799472436350217340334291605674999181880840109318675962410809287603992844250715886630312041763356908340327018700517475146803188331973720342789474113405182648627995913185552594744992822391203439478935746393133401113310983870305795771667989304649980650612496250539248860265670528459952751546695637167039457564279050768027077137388549877367087478848922050370108975016715286758665685938036054187495188851656722463783349807028710593954766380659119147882940109397775428093623190085864648344938904180558162672156308716239010317652922347358387171657388258500888237963593286971423533563258253425235386038096470672353921482112081860802577466870517291523129323946048080569426659148902986225859670206910192714926191156635391653598529821388579009927563868891125577188503009961106585990829471937481786246054621444594231488839756351840517586868289826781463786895542530841688031227202342045379087759467140022004440056733678454988584052646701906453493356675713013519437083933894136628581645366097047836167405823679771891626385867723443166981338876987710407851177011182024577509300408378602211814762731165635969562714304990435291735784723499678738035751768695621602154013775343722587518503226322358178750849333964566608729538444490735517617041174894055937319753494737847757704562375549157682312003306082125835702151903044403147299063315488341772915461119296112715165977949709060618422446380173071129144390444894724855935891699157289131612540928047362542040950877623694451034217871455125421575344602733819194160556446536989610138009975907135456884841021146052098008850907537686873927881695957642206907668201828876355116591761502516272322126804972128203747229912805848325143166418798189417969199605660355480691009459943631878413151581350577412825038174534571651956700992918346943224510792282606438778464109534471999008425345531092735119229030265874604353795528429835369515123290768224614933029464797062254629439510014210444655891327275497766343861882947819858233296270284700402920987872044228431587384265573806414074707998500819332245455560486156369571241079798216091889058371816729370544353566419520470348542453663944173617338095808165554081685860284116440192255416060577579653698049216637755883964739322138221316923831990773338170620712828273010933985111383816757351937480281621519656210289137119547669173425593527473676106366043802977077906396724982984752608938865475818628041839251173166590647480037638779135072641139077741437320603945197340013344696290705840969487354300458094018276520561965755821912330490844669980208993333627196290681802922071934819305149992805866825610556872723721564756369970154813144414340281455999343226390670444347181861514167305837998212594783267337591692136919715814317724785354987495757713246300445128615857406992469217025724484490980050145745450305175626294427172518231148963797894105870891282459437908372386168079149575105478997153820817659135242793444331953525265648071836297955528581347918832653416646654691769246503914175796840457082825560389275589229185739599077192772978570036560637132961297718529323705651452675731590230614055095949023479367269570725554500917374978820451180494181875186028062506069046479045555755159717212736065085837025145450702646852725392912673030686649517783269774474617515534752547580042652363338771214417311541094112508111776617431236891792186782656449086808497668503153701282411462686323609558286414683974737748190969021921835952895845974267788471848498989934468488050921746214482468095064380754022626822959614945538462803147028799449196329241068199383268829071018516431099889558199102656395339507915633872812881612556819808308721457767397883164727770091954662562150103220600068097833598634230418684836088516313752246364652470330709071264104778359760479120669375421254458360004892955493224192014153124786461565858299567607855667795946536594992805248828749135349482320414536846041294107503652128628380020887582553608797016911934228042457786331122331932538901486781971638515899959612976919792164140731745367623051682779245377886952425030913624272529887399847664505947761726695445576492524474913942030329745812700390738822999669041352020368450342927733809278058354620004160020814552737363341327700379258790794767399363177512336093312047051638917614377828330122391427026802177099699464958431963354273184691738269604909865276894779358569281304533210748699359166456711927053003121410411881614407085542990462433390127877650674242898113503218287763553634385209998576131251397445506996930664108243800201208603562079151199189947002509673849909095509246997895484212838715239061956834639492273997488574573916482162511041443041574352306179573644089334659824053212632174554713277547958871673338237387497772387388069485441249734675971663420664239776207050223156597598763243309549456181325002315065805065017311655009284519720595294899210776056307310042311818957624785481328017073368060032573527037733414246233679075393197053488016940766174040022694445363236351835880424268967632666491605548363012835814763102012334109951101680734009418747555657640137469488125406653595334069561704099870251556503211741456467735796023838639169915506829323949109718477567683819850693077573106004219950634479770364267438504468861269731716402284343175803915752682635537000042182057324461162397423247790200901913235521108515034016968544026789449570184897242354575276927083154888326242127701025362649568244363472259628862741374754536775282453843919308468610936799304551903544638269021681568430261184235916395722879072360830989277952393891482115043068224739918881356747703766115189339463251403133836547642090558053213895711439078418464138287119200154437922786425743205114940078049740643999366299670174979094539299727698001083776390592418302224716082175577946560424526060192736805821781527997621912494204190246516616684476293216116016491075123753071079244122294226907634153761440831674958247297146601192846268281626356858637584878102261210564073259813715766126066620094689490711379577415074873294697576676182145827763108757769862145384307988728434046985734833277714807958927681538460075703468286791632036076665112664648931231180170668230045096853313353896749537308212660229052881260759943772527895748871406808678326748627982096452881157608493284265291614417037933322723170707118644294494206049853233550618918897731665024417226215889874697636844464097850733731275583606675989419441479975287788079616164178054167177137723764943623299660371210823971195884382177157052718777519941185720479756011941268261720152699789778034627200811296654559149087551224279520201018619331940906396693841376800562424447496841506389595325244615738601630856202835917452832367718901461329208252360880767937832530832604594571563736005715190796682136610679976056458852926082341754843002786021922444162063202270392033168700695348206603095110118748385678465734780199192866499294074843544504193799389372982649062783848758007244755305596500841778250929855456737023773551845489942734556317266877195150933630946485166053045238775534703723703205302792384768379416491401167537320254238800942295337205275456024357860348392327591575562330474212657991395470317120718534518820112124926068200780694376850915702708646618026795811208578626820486464696896629783822871757929570538972196972211335924940320313793588744188805935596935081675870401298843741112160346718346375005920242285111896429190049703770574428592720732471067849299190213960221323423041000082067093198161823633252198632860878441525962392578108078770424731152453057789780790097277318789983112142115135659572493415162901669523569333515329282800818717334198296687689368186907121163821874625808899581176521447765722714168568525084030820412171633104485023363012991626414847418145158157786454884325774259039465827260075782951479357930412041748558704710440848599251364236215470897660445174355171793185766380019302752562419429223211487993830939287649242332185964082734254532117126870587287209655825085003693283518325152696127649119309378799941512424557615125208514129993540941276959008999356966643776603319761226746678715930954198373657420990889448602462401608747443946703696334973843555305012374541224070815428399942283152605941172193547139108463445536270146882461429094330914670676145161066815406172323574157724553568798960423938658805361300694294732792451749927397831895202674988746708829810364807278065115418244643533133109463545133272240901833096426858414152385107492088567750539850088231861874335149489196749532983397952460110906994910864237792662319977740738935942702960630358855748278458435056753369918085795337876183826158587838809522759285678046286339223656873620582270854444002636364329666454264466562831698440791636559198146810543419774500876784826786763826808015675757604916724244927952270953661930425816283199609226074852467150136365904954404359348696576265642825428032905160987067072654627380567071799192280549637209946967701045772024407604000856666879091499192315834215328295514494663685128458058411726095673089096141602042268855163966360368907854050592004009782080406384696382315429143236953068783405753077380260065580260995547637131996711382411491463437518274878452197494744128463222754921161411769420919729281683445232801168396275900236864514660788881745596150666459926395119020258844281181454090791336407534478136700959189840024506598174608526152041254377070062184929896218334932962174616384209658893884687294569465911590228920128673064858371947723927232006010643710395053185651695162174476640298385234747945230883985313791436569462770564159842345621383387841449156141946575268467184203314563584782406034463467450728633189526646105454690225744174150210975529525897251369575415080571915208183550815683589135422804639315130237488133702709235702503384118966429194815753992500567034818235460559194357751576205609449414888887562709943381762897620674296870496462332178152643457687794211517536484857730409456762832168336943622651733571709895384514782881494409470062074462103264837330405070566873179311014306186696113033004347973350838049827934794432263346665441246857119611596814206744548263946289557953742165591354015527930545913119001846491886706336597389545369534625488737427029780939479606277959384339152531520017987121793728928829977144334380615080641170807610769017855195684499818971250373371071399782647022446383185889878484867614740115315881577395661095439024802341430270157665079105270989677297965660444693527787467926872525923904693216994345150876979099098853651070288330211851182065912726884835089780481949349716983202260448791292800952220871316866957953036047319026586998539652960170604244826882225526785012637357384135059701960629727083691701156378790000775459809909502160939792181975885519223780358746364182957816628855814212952679551727247327772288292772856554855388446684558407568111132693666445351883114738781812314027467662556493103160287764580229460393404020205064878526724409610366251136001625435608953708429299055871001534094662258477971379422606007216258503487759560600103453379192803200047975872038709434791542372439627009736452056032765972739810045102769923510092466237575096423044452802248358336333129083502406220052555904133004440094048002605292163243189520286942417021858419986139344828534361689385556221344038164680550749134597156470006208179003216079906965900220196284150739355348103973228627084588666465135727798208969139022090310547273376314294624957932027079569411375170425734096721992923076042586249659883988748490916569999285751782961921373786269374605979412423112859073384671168906158880770346361717514905896673857315474067521572509575226710462839343362978714793686563403240881437864501908284153211241067987951992875048024677429227408816293845102768586856940928368572746768138987401538950820800884060363443029751751494000723202316331306390925496574474742208480724690942306376865585517335741244287841250076989203273799123283635536224432177491327787847936377471729920894227882291932498096833563419736007020700565633133916006201145480840388762388470677107081959664232262228769866390374033981042005300010650941390194008636353860843413910378371695982798806081390984297199189739396213903011681647522531792351928570165203141123244920986577064311678637488613613401849635662687947887408901146826129039489889208111694769424394517187958514320278855895382667763350304997661068198098571570987864400546800943582930003317418525994839425032855587489340337590797205025020032720157357043562576383636770047317201155342771187650703045481571489104075449431592397565650414108378553869343822562129449320981638944892274910412897973932280100352053418159768836817957550281926369495710156088604135511384734178700056177554434058508761357180928687326887026644966329058731623371101328570228841928523733849124589682909197998525824099681578904033686411329782990253250597906723599340233822337755335076085088277216622573038339540181727249259180320086942798581623982324964069140981724675366523435219286180198583951004196473855064407730888826168964997669900430491670248030184538173478436299013407692942344874523606807536303325895103321546012674619963785502845966416114067522207970993528303202103914818259815354344864119125451560732516514122469201452774186726422233156720189369156581149094183978655939456737686976270449071968964408905589508608559957500429186723689860143860149548850217301371158740189026695483448701994907844163609038375252260544856486081989588964008390808688504606518127333076636664371306192531309388238774517019295491040737553774398887775199902648486849972294733952361779528601595987487549144389492329389376671501871661386682246416101653809598855542631576763735083494001513748853862593868152298023533046132070246800880459157853655789896996213170722403279867937863359833070679568104191810883794735675784333598365091735691148588468533170065638631049681221544876514589254905677530617063293742921888013124812509210525764099032906315969133035887931244758982006903281370266188533533145082833884585698201804074430670720937675752151131498430719236799474778804923272146785600016024786953196859906475247734433904783900511670395954069049688277378417365924640972841573592159639080685081128173115504686991128903727743703511098350647078527524986153514056339509039820866995829889512017227278836463232645897454948659596848888505466289179722148308664484490251787614756094024015562108190727898675531763068876756006992976636771276182455963842393578566507806164135619493058446320175209293844530669899753236431990495299425754046295172442684230493444156220129212300688411070419091627764106330435298123187120500902336015686571720399713348300535309376679948544532501059963456308568936286601717683519108869444423734282419154181046541255496292887789849956318914130070106225229385147319099866426525326259050004094525606957520732769157850484648407573782498818053218561263804354878489929876983355706507254521389124963214423863836496992875795266921068027499433302188982295616116643224331727046606587143560229969261330575016569211283604318267066246929364885096941490301150095855086040208198120915396500440105223381032499798881307807664817345056999772841357392229008006740109712285376445101565441860522667637520156392618909051184667757277619023612333464416020632610656712621670795137668662408110096284957328569023448692663649175856987551287383217473765839683630164542077212795922834651593054404719025740679205497673967574912991754759792495343759889013607316380104045179660554841146755601260611502159492339484654162268388799883491849101467000096531360573799738181555542879119482251403258349245944683526407661753434328117761052233256981851234296660172346580428343958206763059191007774028919762024210848977726815516604971253901122407173901109932087215725103572631967378238178500609054132558866828549749950097906332694800044443102231345318793433037621432865668239274644917921100913776199655661235950245863513608784441119750212960005585307959061552556125121231799634588666865160295891476760820057850373000509412630045327613969957398047606132811871502654325959229191718990922528077811475127985787955167814871755312037516482951547712094230078796283109549279475988666577346273027565469394185804214448386938607262486662187142591141828354368446174328293457279776080398919226619303213574700986092961656185163618201457791636451726762011634450332285300197956398875698678623730850064165042716942152962894687137499296352358337236909735827313538725435580965818008942102157494281635598643497121250915003942064384783742317242890388606328218109318746807347484665319656010285395938769067013315929662362476335865763395469241379766995923163943770325036790401613184007265236574187882530655099420997339226653703122137968105419497945815754416353318126269536754322711420813253954934908243618519630825326112389034877278377815416783064400024042569724500786576622584493700727645646127662311091894392208780357821481725892002449493151526849064555736065060233161345401633462461755977876986261036784607052172410261610567396621634546704337547753787696290690441504969081962514687317754256593559056376817635358295738079674447503371294441904141636830498759576160167081452966047571375079186394550254187519095450570211596764463132349837969606270232761187297318839854535067407611124402430387334004805376512291386256881934982021680139612443455395467108127184380450214699913153400863139429169373387023574484572473267080332777100454038388421667571256655403262159107122465772682046567698108455235290895930326339277685781034554178802218882845299524826246322486038467337805307201330326038198441668422678446251178428660888979287939357583214115164394863004802912387129157202734121760600074486362301688043040533272960186773226996294535397403003968829904372622626687613675606661174585117161115898775417312704523678576693833325023088455960448227527984043002335493224439735237122998209014022904113570761521400176648115229013572120176589600291356127869551421092556600356986307109139853993866181006418316447019007463237778709804148847927734522616169680924793211234164586471592054313653643916210974150312667469311187017811426670936844067128342531936862516890355515245287905209258973743843362029314924850691159115205524930391609641855793741866086963318818861104260224884991073294650698799404101372208552580596256577726605619239753928268371517490437376713697237865094584041117988448106394309243010377611657627014118000304264288397423004433753552160387964825408185520997510234789389591547285045112915513737498868078375010215937279669522837077413312062917351371835356748445773220655565006556372088090643988279862726714072876251374717588403567294853509933824942031233178673641948384542444893751894980457286560296640043323544370002083312662902783419278218009106209750246511753372819982691337143843838643391747256570200687130970727559602774298728831749320478804249923050997533882437868777568112741300963088589703265711318590899647111272926374935043685804590892720265098152750380626901128591326528225810885154621864543952811670875339849694059416962509354271131511636020148050433900028140703306909243800839408010804440853141911969180492820490700288586080314161803535509956330780028160891309261242998266756052426411454572257275825411227411747359529438943179498184759998555668750648218110730167427798604867591586876567181993952426501900027438577893415447059780824718448135798568355911102742657518175403884682257389745186954412941479075952879862761677506642434722916446198406801612735113900876902026378626302088557387336335501452146788858161696238845670948844294447988613658490006380540836131037347178393967434492873639714939682725779833978917266793432737688697361656921289728015378365750753599070971443475205311304929715717461001859229234669466136140037594011284089435433201196058097572461000756718464539216407005023439059136672732655532653832466137620181762584154924578256919246569831916914189030176140700070172912239889400063727486207814826083338105847214131593765689152546115375660462391173038948179358516439360923759658206607019587090159447618090430824010614483369176841212952338464310882960016453493339347650319297092484991180193446409328582220126685952106589664253592192733761949747188976646302638421885539590096688355652112330588473092838417841426195007219425483171391467684544822156319679191716888372040419108132931764535654627806513643812061600147109811343734235124338581159207309060022738391888397452772960396058867082845193228243262026540178980399615244653635864387667069453312103809067582137212968850152198349758736862399264573222502668185449539089779239314262783091028349110523079350755542351340848761775791767241143696480459168831203203064201787870442442804623906845452619734842041747060740322690980754067126868191510321871253252449415457282164215972525622191627725842019658030822858463609855184504595294963310331823598536830341763180020569130042731495788051347650702340696834309772477291377499472461885067744571614337651402049200081498987328700596939575860961028241809544454124323746083994907918584348009000919784700696380807933182960868751507217573293769329549063312031218419699801266662769464386715768278425661844924724142525181898765535993165305245743536527554097187574273657008958767164042925691093109734944902210614313164832307858407235929494144365799097114474941285664182239632990888432234735649775256900295792389698355335628379790586540380330661050575514905886895949195852838355190299484756336577816375727952781550338749650172689673989014020618128419702052362293660588814428204292558325275785351171544932967812254370215150115773920664607698203770997433764902801865999569621755896033065268599753159888301263267468446578560807462813106078578815579646335388882851856366598420080694186884520012265110477439964346533479925671013848830603125470858039711166210115448708997307936902926699382200632525611783641001028318819073217653040528633402124433597385552986425197007492124134470167845591155416320914863894258771492495422025786343991279248527809236682808391478466085512645615134061470751875005992368200091090253967438762154801509805052614035190443489819798473531247828447982371648001499685868701427695996368521792605173247548890236090249332020648601945984219222095079009585511716001817245022026712287895658803062843306464714465246283650799710723959375496966298210538466778172474469275767442152846956668004542277647404775246892063857314751894115980661157111555574524491360947064577697764031731563589026632438195119991309953117801833144892786987902371458997420966410158722903844258918871597502670594629030065303287854134489790488734298508517166402559480760740034552668017608902472850235514569922623890579923861684547641047617492082963546728812200697299635979417173254695708036192033325119677657749697082097629560744436682896862072259881491588913261787656970357529324570330157522125560734809754669132915448317217253106492510111354390851994783985759573947130532435587482781597598876879025024127644024588901473768582207240176792754424961829405695961601702357050136269799547614409310490078996676013089210409157239176150989745188425868423791725397795191274955016117692276224255965520949699739360226545954182372445791937476059111396411268813511894134917975973797987354593387461603310203087274771352687254754947708996612694581251577211878943767513564200533046805145819431596404691180234181086792746853695254075684982759271511953174282657341541910615876457274769206622383979043575733088533385910811365362216871786744915146062918467223897510038197495433811691193453984686589217480069456164969970442723380767038730175283042602397183003732812290702546628628825045263818521993096812772805778314253222945202583011186773077535916846562876126978888268518332612693966936532924647333820920382529017258918849461579163682507275134926371123340039496982868037877600349134829132264744477036015418310386690502974208341160157002179262235733787098650088633676366708269941858074944560101039372300817064307704182732843396151539475871505919371330488523137572584417302910424415013630999606561933200770625540669196207358665234199250763738027453868977782161647498746281987174773923681886137424731823910136490870074776835232074593542655723020157162736507351195434189315748875634191870833915243706707671247172882781669741949727023382396132259357451189049254899552641609285858928449978034268088379716582923170262785280418890254112962874168338932728191514284352535226661875897756957911281364730324282150978132456319349068493177252724609491075131654841691489192661036616364248981417452444218260683072549149670967689159254369449855177597688810485218452196129270616320755462676460662968312361559395786765132578835823114537080067656717803153499400830149542494104046761409115044813856903502123489199562512517370977854459862189169691046489442566295357583609419981049834295200532302844212206725822067228034913607239590420275971170977271855542507220280895395097262203664386929910936163111571596268656392022335585009021962598741591788155131290454573315651438239666002930102352747169631080045840469569726591933559656453455731735713283651388424494826295964032393081561566005950725309833277722119152269594890237899678250635116911876847473079506528472702830671239828920662298833081395171943700026574498564071713171146318254901313579183992947736132809896175379426261910899537001674775026152592143954997039109051838823286178820441863463909616685513533087747660238116559984431565832535612355132106542633751234379315001669483883797423164683645241697692676797984758262798397901292229245513982614293122360779102802053318059789462733129538869571773361087111723126524230669671440675049504962592502955601989677627032498227036260766245356474020805647035886392953731007499865911702889737645615494826098015053434371069490813742800689174388261534395241974256368432252976896587817641358390294971353583607976291912128448514549909045233529975805205994263528763578916050381200344909831618201807118202813171773047122892453810795292003535016602649390481972542357273218204864848818301543457030591308712817620055768120906268029453581155765219602632751971624499200361467190518998275066292334086036185017071152521364801353050001825941815445062374152837370121891637343039518866770360627348849098715355647119079297347775227886826713126950989838090765824318611328473588520468728261792562920536413745476000644034603904289378028073921147710538406383463156195313334056199460634330336379572684030208105307085435354034992366398741732335634533418297507379327648338536016785946809225005528030221493794263672386209471321378659855454299521918376365302598396881433828572204835836412039322475158615164683899955535283917362515243224852164644414058510786712400291540969242726939534881652895255935122566604533506822993196415715595010595124111806200518266823748331343576462411220822255158489522365918787921506459239575431294914197348749750959879306832148755775953921868785737038400641218256077662289178453177598314139133925870272116148260838913128704463219808569732473955666818931922038196726064777846027165928475002445314873838406121849744998517423117992380199952041461185888180020025989508223137495226383122927127418634702937159089680444140852854814157009648022997677007327313906704942499893818854997836837809948230504035479821000505900382736469706738879893109454008087706737350503117105496894633783001639148434845481211536442503333319199694250308312020460023929637441980137996084016455251981752452705866962989523418117356389218136896875357871148240154956609873467599986483261913971812213384594568164749986014189178344590940747736147986092993698490800233017065580549371580874958442496357910023404367830195637601868753474332765649249295065724775524491266853172888104889993667197362442314766498229362227235697417887112798840429758812724973412136902051904241454456949878793527842269851696953180554205496001833495274572501081768323493030333124627960585518004038453716708803810271772813574649573989173393295870299957628613430437004425749561487236525332841523696207252641016374630032164693140475375130641953725089701151836771854880107511890932680221207488405042769195724483254329570603474360707795989888077835238130474383346739578523207519805432160280951493760555904345682031368013182976179088315353013659234790634539042149725728580479500530413588189714754910964358638276608212456725806722656446633209819270126638698198371010233666190316346004865896768344839031807371892610910273076286445933723373482872745037131352930529358786861642035379512293869303237133332464359714870360216280980673910184368922842148200865795024353460947333539876672579397869833115270145061579140348168569303693219674233707531981902535137969535716286333136297441687725823321360858212463690327253191853419593906712428480136014333157725379731728778242819041251036250330777850764866420924604309351227081776213568007341746260585092101616694738692721707734924223576342599876213094939827394705927666646838465137188138213877876589532008759930013200539813862320414193974448577879714372043603616240033499818566950439918141973051442370182554964091182857618496682433472976452694110143002010919540459365163149997511913175233992807503196025187145803095047948211837131036743975403429462992891725244781585162334818182164497320516286944889155275413552561334128946619524024743083157464532297818735342534661404745077438012022161500499724581910948133488164522884615653467788814187377375982957682591475030769577800729057321129380631547387290050893881433650414353984412576583560580461182006836456619784250583958740483103621056821634322570633001683824539735505970806260956760044501606192421757178008035718169781896747611525575331286687072497364418897811134590757227125136441219904027924825371035254400229556505245604685712956982976350998838142226385394241744918900442768455354808105942035541234297318906982716295649245072588653826921783331809029606803449561962258232391080411046500790580278781726317392223341584388670264854802179607907887257412151256476195680256229462944440910677162769055858289444297042289117131533782246748915395902071619616608302294205734489271841535026093766051444149209558315936862551650172955704713694452470491814616822598771476587743188829243946545064507760913286089356827587657526791183473798507619052055923746155594877225885477521650934368180768244501198046855324811331442760333221466062677227568853815109197712304879958142914725900889173738886618652957593954703344401796371475850507334216349117817960885824394472420745548741545272478932763678608327002019096694087858787112079793215119862238918112992905207464283304746509891436722178259068910922005292671601014797039944945334010521578003106317281875742891983669000220367952110070513479406905349382277863012367110258791456446907797347577153272066097363175689734884161441836799398436754155292551443133605557483866513079289805857365335509489370863767778705197225232569973139253676286025654664457066834232323215194889486001102623785911629210198294640844495215531153028900580214292198847499060000749915115074062080850114920671781935552753487405612412755858241863314270770823417441317501318779243357142776788163076499029834678955126632280354722012414189770007413084325819667072272986122885952232773806880396256175334448250965366963092482615806016927146324150913095711386961856627264605029339206603862708607591566624435232578743961223968292607439753870517640583955150992420656498197970162039406293972296988793647313084140381952809031659647074283330406870600727555057618075124823636984719473761631997941232325195054562918509601571915031839745184217596801824987681122590808862475654881975002861047608169621537294916150512218769354609555089283790594551754358039366824465742865856123317739344008044276559271256501345828166290004940398361809580998942931439782508963714361352944813802360354594620024003661866648813992500898037362042534320831230488990329740338719697653869182745166781597237197779225352146026781027887177930682364445873270454410519000515976172665612207226306346513212025162944272267455332503226544257706582544818663917471548116880875863050947577603688581547359337408488817905633404899373688896560307722756272340078317345998559636886874558200292478255666043030581087279202153149647599613602489541218007451273848778450643867454164570193933877602851089407929684284270889306398013359990705129990208685185673524130814601829247582629690529378897885533525082182310694628755607920816868866966521760018018613085266879014010538847036400040605825112918672782184487417958368243165811283492267191472312277782412466928278434509926176962359085482956794514229225356092268183659068775963096892161394975793449495853902025523734808914179459209424906419688499848824715719690422281991229475435770876613458409244403981207543312752787684350990218671524080257679966810935542525145986675089999948141095188074554834118325693927855465962173240260225817717522465513330053107920018625312670004560993752301933554455035900342572058655695068503726803141593990219557769988980217794148857484266141775534415499840591381207600513348215655232327383799609839783501068995831657657252859544105912529225496067332356411927258127159085139333821041568904750478851779553794489612837064492715195518192853806774846897655198328015681389101635674642336926449554263907218573650517212314544536844879852830644242368587174915448441724825832747195700953909794421435202338767647220928531905732092958770763973600025159112107414544188974653891308552787423339664411895523931053044886647427268681114199003910507725756566459645478143802233901103982071290562653425199971870170479218912011724751747570783720198855679506155632083573382683428653940195421828414769660718593066042305401809723452270453566799876033175922241364406098658020816815394525589041883322256783335058909107197873722882168210931473245433878975926817264866631764178556607244592843449550077388654059534259193371339940322161689786489453429030745732920243621579284106599045721904812258802151011384925224669534376956517857823059994291139110658331316167469287496379945013208500619496674245482671069303491503781142377068413986647085247371025281584798830639032834877838559822320535406038231412043636005110853587796584278635724528347881692366801586845789453790749874548527734867468695204221505836207245266039483139971907843827687666122614891150318524112004931902083927347715820319028841256882933208657583037236537392574340629334847699805031918418672946260045202639418894007920852110650967569388455710465775064503285389651621699892596875544287861939396029901097652179077383140609148354283370868020076568683639882368377837280287449005225262010585562837372479037288977024201294328564600303039686299895170949623788181120823282384128790506298392619086903953668057795567003021605321042062805861546510761594198370022925181299444415136207922713619778137167140585967443333570286424163135585005891573309165080300217949394745947631942969019086299966851470547605986928613852532955606952359036870286964675945627876334323790615250905934831278707216313430788775821038705058709048876197241000097780273332038504538077629735905649145718503083680282973337005456384458317349754057432380772487297201710661909638834059861243375326627821480366734122298845168272627039861314909795040367070819707585159464534248371847920286952276583274548151275547060646007662803918171157124630130889225367995423067406000540237550458163418150078721052796731844717149665343522561788880747278918266105424547689121940027017198148296048010663825837001098062442912326753767430891413916489692976823607707283993187736874328533666587936666822366263190991965362378404964536547042260833164954258482999863257834564284055903089171489031730522720473963426609048511025004607844423895531811952865950281135483150237637003793586600597628531323686398970605306531100915664546396461534097900967205811225449586841514394597068762113247394114750136427204716736465088517043790571200276822045171639712081838138956675187118383290292125095255512179306195391244886569558207130895950510339619814223543007276569654270891657352587975294271093842224321197861474810195504714150545621143783707350603159700670741179184325051884851837508720228486388472712438989511973995525042139059070843817298454336649551766402561895160347134907208831007208421097716701251227011714283919705935700523715414139921224166563008601432697183586815320110487676930646946444774002614525007916910973948165898052378845665347367117526440254874438444565585857819520956280516892536255075160104754172138135260606720078751632500548761756558113724782636273296970581107392060249912313623491092036752279142572243053829627415629539464183579098040929313051618948074967903616022947947967146902632787413172340140551161767558016037572185517853039842091564277205499878680197576115014538293392067548205611719584252567442521937595855672570416315923869445904592516832132549358435457395660534865557973730059521583001573526124332828211480387006530827324690368030296810085803318025608787368530509770877848510519954722015989471998310064201234102143510642122998061041694553171453859165881867546968774683197025341053835504238826530207568581232747121941050843387040064705225979682378239076753862989923892798038830185426118590535179996579964782448176874465509060259424415656656637186439038508598320148118762705032335016333632363845993342629069696834280951703155643132343698904336133753557782106080527190775695405014068706603673649423452461820859115616779200902773243688869119086184681605449083469632054451090033538979393430312139656749039109747553419432570565546463168085336594273501286506285566177173106337551717536745346265012400439830819394569358453634577424702110801284723141649776299831301326565978279602926311244772158372398856112023801379084729734798190606406904898658108298842550106385037533533957050405685804146114444256413755967561208774447577577669546092285900255619945457593400714253833919273654181960496631222229170468309547687492835660034178830040297495470707752324788162857281559921062915789808936373277841750375111997104864545626091445107145201123866712585863135217272670456230860261020646787858125132009345569097510181948063658771253363817027298813287762969977764781533550491055879201940180226428446651880437222566680036927395493181827342068114985319215174572817066550098258061258049538785607662251423296357196012841276502768070310195911504299199723472400362322915668210196543290763613432607501271061440288302138151160611835328882773591584557620689295457724161421944374881591867308918676640119394187047863209105511940343264017694647159964724255105825807642481085558954868868227729325917235093875360479738801844498851566794707179042051138997928690075780819151189464462459823860038364509748549831885063944067244972008258355886503419045989745719879893173053000231094022117082416751111158101965195176521353797234073551840828760422517309526237264223236996373277459757183498892281511439757209235186004992449532756688427737042826263819687422560699685416315379264984877378146111872756939188786572877017184623804524729985938486779025495067808417298250878921548871880974876785964321758928383295604900248711848637375874382856688324719998494076887330756713560528760398270455031664470859616320137105369706380714897881143511100045510197779801779266478876862438997066872786428827304610764485338835335991745684082066828239570847882272746206338448100921501538292125226629256483556229978694440740066180757812435371021097741090659570194660914445098509717559857856058746649253757365146093001793606333467376999152435531209673771246558167787914701872201648250581173532780171664010855431522961648423856905526806784068595798065998610325633436718835991027487819089548074996913054900243859043489412552874435305994389609936802220208979102732284605957341133585154270015648587237926404145855163511143356961817694196242372093297392378944458464420939179030424261719349274862898205308218266364517613072918177128765716859681242022146367016996206883998749415962052374094447054765354149196276413194090677216539964637264027590337370350908229776317254041028494177511077577373085830044276197614814220367019541370671935845317945750626163672425981699658493566292584346973876178536332444926131666110269688711565370496540378706769585904409855711682132257723315756281825634278472442783693544616948825135565628599736782055735058142754627897987401919613485259990926168914153220235018882466877507867246437785498227409412527987620608208848934508375340108859109830397344229991004900482878344473322261794589988431760476119275347919041722308629527741599907824769159361213492119631963203075807772760077501052682657300862886456763407605591618948151894989592964307942396120292119302404306375061215932195750861927599866297846773401546014666239529776375929908686364964311019162893128443572663562022804342493886642190743839864919058444491677329419956946578211678943251489868867445331070525906048487960481900870855404853036561301265813000434032828789396275155119306295878448921868622012541536460695953603604250356495933078536834764661611418028106814335423492855022129829432674805677267233993459998706199468593540039141133648021245731716646159916018905837843170324573068314386344910298882176456088659721850678529346039076711851572020813698227712479157797912981634293057997971918698562558198635383508185245318361484672805199082774097390471445526256296620475314462272380381633322962384605844196778798429833559564527423338989040348533795731498574954876031309713225825340594099757911105910840864500236988813388274124094525735727670651334648353489913502758254980518875398841428695330051825544067875056609012532591612901137018748548459387913600530799766834556489689230014897543802702590204924623786635812390034445563058159658675771660706001762436157218632882248451440256527135325359012204994391427139989996363900793994594083160894961244450244643680841476163644456792696072483458492755733598183836379292672557501809019084759435913141996043350557326775468019604650374942024461611931290913446224153892500037942715409503600796191580102550701764449451031481939380015306149182680009209051867891989571158570425608406714599647425518755730014494755137680265110458907014786309701830949210462334650939056423618879984963454326146565466904099921496489247736669351935573022856741099047424822526959136016067103561398777614378055921901030303176829777695553066783234233820883462270437127779398620031941079687663744896956745832583926791472691580437345415742105775963562011219666668882426902494409174378786262820062827126289795292997341638223279122681581652925027105103382255667603867451328991644746147218621964740575329407218281894433515637520626329278839291092409960989130612439744290310751687287390656976464676712268742670966560553454448442249094768029794130124572501405338628870474544024749562869905370917620962623533714832464740505019083603595667900689742777154064261964345564915078810870387212790193497660405967020349883705835089281525477913888563634282133399003224337219547604354621870457104334105792920178237256829965781688433926412680133531525094957986843342585876866116077543792688269892897799239028971961929585503704879322057040548517891346681972938176156357910828657233380582658838800324519273903964166032884530288573648791193634467249980130209096445668635374146109383018452268819201176735881918813869612060505716676343099675889942364521473743596261796974879022834516442845311189655729292110807680976151294656094385131474900670099812874297371379127005712998481308247991349090427177645288242098995196487776508241779301600914688975292904269589894422577129156258424728619188647083095156056868973374404134272024195630755620781325832529386581529808829170585242825820714283181440231288123677324219383702019121589924326611867136177680104726995562668669573722198349457241681226816954812699447672202557818963782262783571340660206863962598973414345423319821823219254121729452931525000922650324832695137003509143667826688315361747692730237517770435003128735057341785024976432527388493034909369331146624322866774283118706133255645418723418143838025032074399482141330544216366451742157385187620092546737802613069799957896770383562588541118516564364411545919376012127525163347916217466033797935856157028930737352424613274359417323302646987801600176440564504268621380793503168262140350120831814282376900349322960166428742133731254908638189639041071827475311426847815376015221958821933991762726171045007958627825758558437008000994818574217907829961947826316267228284920933700731848634004570907534865723679566963965501435571947906161810822443761491135270883140855437268144650342583065619725554471787955115842487676174435871542263294000179092032876118608457709192024884871413933052502670027873147742428577306311378264363361839963967407661644827962082558619482806043332438621626052570891875507631793378724279626557165873535280655625883405656181867668577531997751478710801552965480033834895146558490386478914707215413123773081796572416075589788884806531134793800568685674175200870882980097117734377839965318935750263596179208278417929830420325143231081452662542295920616671630718119532306526851298734331933719339798157191970420848035052581758703673284667855837674826687476890800718452261745138432917277257789258272440897811398199510108065802068454449262154857274681580845162118410219358073859775838718755434335345759290643457169402959009428864281173625262858078679049549444286078475829763781229720112372993156070529009770756745689535188983660269362810960756879819161049097880768331750780279404970600984794648781866562922359505495932959386404775228390440331016416169680430480209160726214189333352722076456744808389776926917105930228062118253007484323604673165032619756216305326528516672264151744093209065511080752582466429635529454066289946455207190167974460203275475327557612458324869607349123995562586121986094930523539832445566948314219656023518521500272539981567842758851671957072885979984661721506423251039237869182382720088756993757929960873519221610120840871413289405132790311944532115983924180186328050448756246127782681047723319933155045019123513086163901399998346292948300511967957716304021192392120479037602775863346456275606944309396367775149021014231924092604391793922811764766988652062578408219416423756760654579092115014360105834645704769171314962118202884668485696816428726649340490382197673379560181902810554962651462844968102690479493563058190603248837544827050317052065739139452028200269376201349900634522551354134631503324237749462986304224336708047939263558110383456347089780814911680102188763265748298530184660634753126376641663611131920051691570070614201914195071123795595929533290779535346532042002987541371055164108520365935466143821305765879608877698969600417592803801364180059928825147657955285019628036111706739909299223667998321020822981668882881173318388027657783492402256761319975444535993547085213603994725693082247032558443154533925789177538480285044836571915675451013593122509266317499927694551218739005142481174361328614996007638553536991154122690699552782493771796916805715798315627728249210568953548321193923592400569985463152164163438200744859059202770213690740705357223517492817520514445840913289627110281532482442740819750038976191070024840000895422301379449233704458428326182958211076593691787855074060162063552056782980064047111599872640275313649813136572580772563048843752484509568732445485734383025387824165584556630667204451861137967082019007173285456252112231286197935859541183969848751065397827773203844152218032595824490431249374999805876214950773074072493821676447151488349815181458541398991803868592277079254955535204443310114819355455557797541004498824021902854295180418909421007248039356704651009087984505881003235173873532314318258095272725683381762351920207431621620861043638633563544009591641053912469077474321785441509174169852857939528678809269723387150503899303077206426479429839766162720088823259808231939775204211273589009303003530999755020454558745371307001286673899150336265762458291942180296168132830488618614302786947568624920940894920229319108484501537052177270457311239535457995730994732014890715242387857981669665607174343839501669183457411789666962217066281513610623391525448204506751226040297460271671719406665187989666563783757571625442021323249637221019120391036199033024965529189648653375025474150840549977031392214418113670088240022049606928419679426483876292480328611177624193869558205260790981863257680718848139388002595628002719064375298849579416802501814725437130870959238673722741428644534067521261292957439340833337953420792203059761918500006947073905103008064894343067747243107927234353022701682895848378428831786011917901942423187510859244552724944358461815947325087039484737678510844042659506623661904238226353664122776017203936329349248612899534612982791132458184789377100830649109978134812086677612306035360661859393374313279161393518192456254258111953482600098102847933190191747055398376991380687309469698828927000555465146399197882793430850870065048338644267893203616150927172803399361820162588805335712311147386644791908875276826827748709769861089942127027816375918540782502174279946335385344677122518441594798158459558448989833950418081589785359046589915002116208963628416903727144952127485521174381229555534152181690437985562299966009951437049775829897068723169051918942204112455341727097831740818837860962774655058073070023730494603429761936120211078609285501861062352405239564767685935368834166914209407185738486237396711988925634614020547028070920007974921110916961781118618667886172457274301591503767713168335083839411023958177672613179347441558859453717223108326673435439249573497737572504034795945415410389804918930363495526161816189355447565688788611178260469417223050148978487590777303108833930617050047014492444597706108313360865586132825840984105771720049354518435089316594292526529849124966723647061502008089649600749323123200550411342867309915236230241441423606960294377287006720305091012429859742291626410520620959766746365298933233299895404805823556771227506955903121917551475587676167454163263889204998055384029364591666639812147674833966479105432603962815244041531365288925980828122568290879530186853983338164185957988739356328944371467929616749308561998399670216481699677952215901528629692176075795697161842734721943170611404252583066148310253062994252780941257172235337213174556037288742881017848040729654483099046522804338279364502024204382363650629750257915075323512739402881448477474631862998090121302414325666805010627206130303944011709143678729960320160651258984439123420134205268785523806049752475889761107162470322018996764749981053235342375164886122884877034399351684341668215334693736928608581737837808938843467825761676252384239379653885312324787323331714641735890769851376615134146723441983408337637192966802468958618911407658515262745282472154821816223952392694131982254001305964569230368022965790189011238029268792254515738388958952390113595042082196466691061670100901110881364770132984905497124348839983940323376215117969989553264730276092718632109092641002525703888766660417123368443594588014885424985420852722226281461110754289731196122702801995627439927567710664917294680205610684876884998426537788516714307505057316731916349247404418800577507156440542078724369686486741506957409384544878906457995145854153633969638011888923527066128713831965176711411569404157361020881702043081604235936842263902863654299617264337424508114302751270979642054381784303143163888045821128598888426868556099232161986346621835164058390147082998970920508697644316403549422127090732805059601483653152205435578666804253063470025089786402479820314896661543680064807349168165607087365507465962755259661277753358232936686050143778326871385517526556600722906456164138734989687049095328386432996791869089855333483404689584296807003319329573131886548929453762136925495006374327598321219445826964096307083513802147532890871587181500651104803852655485097429186972532643074606886220317314748110794211827147056047229250436127671560965870620590481776112996367380473711224670934923541076839270582588959911410639783823564670025264395649047441087333300565721376343249499267245844917044029947283431329035274929311546229610235211402977899716563709721310107121654828776164747216545881903365899484619223516493737146152221250805267933049155545223078688564906166092563019068624554887100814892806744474751287459540755751621340714019953394974439087893635154521769272897814711030785665241165124237226910645102467913211225047995902821683907239177262220216944104575351295043507005929140260372757043162203734765781074053552388767937722563014550994932994345447224596509501028144896868720536420622285829653062472456377603835634554887397806166500428389341868980438738966141490927888432001392895795965597968219079050731033007980998787277082945634626464953860133315271711234983441931465722723091855341889438119717371320252408569024490205231115506890602113943975637614101835073068414839638339141571639640967896796592487322661729647592565477693285413319658583407540798684191022559185685071188748041325316384346646286049176972027122754961164441406135332792198927834848093923481622951350799450850713641479820839314630657181255890410209100574824906162794669657979134684197418814590243290587005991794919843076717430636299706760554470123708159149906846204557190332208968958052783382302284519039147126357274751302707550566976487357273341520145567564718711358498524870596662182554830668749730495034491171249258701649317319862164930639858264915932999357907061920898663558850664226481109430783028975155167694503968150578045398316002582149910995624715632895027708099312151479544867005336713415594357176042301551732052366325948691928355075598872965917016687934866317896969723048507654740873013747493101447385496172215384613527449367859894444566051224691437641757933074955124020376785138177602804019307048458820416254921745308060967380269898661617258077639088289131284521846175672266053173226504115110955635010199207156369252463392643706547526421111359188770397034165214987953830513566913199052326191078922927524864735964045722450980326448637978226277405203822234700797130317695296019381181868084909098107412192684788192321152922495015124529757815432961309917347997499807852191325685301402089288746760696295462769098655599565842679195454990117712894881814418261639026630815341717443513548052354017130483866393887684163811914048989380131008232614658300334385785139730304675879062438989834614533747944094146141462048098613092268170397274177546633956211339600294433056392115217534659473924989846338482371719783156386764814518080187261812284291082612777117949089473514412207390159862322971613059399504969391112419820734721929467797340926941690071640967385673528946455376032167600332707349464623049595176465965756006688131089300415083126750232316905266390303911727198510678884835865646794324576911095082343481393455189419780373254253170375579933492942949479581043050563990629700990357616362096308313928700915823942231737695722351460657404700992683161369149258794334625502801641599851421391475150600427506270576891161146565727932878508364755658859698109162151364190996863801745224765846965017652591388212234392952117513484824017291228945348082748256754608658991919438420448114255058720258580706806729204359679944706063131346104644769230299366707639491469617448672646119171303073051405660706866271036255197896541089632970845508934066150797115048272684061463812997868682848953374119443939283214242533229659102419840512050687909007001440171932852662302673652032872562168344872481313005301791479460397917646937975533863302991265300338387813617067137658265967658051755018086997421324390937190312934111499540449653981450581234490834781852245482901569426860266407487888645709144565859142328243605169508890861669705302327871639759991725656744654175649185458456306773863964484755320542130447274889747846818638099473607430981030284688550113795277779254551256539940414269089178856751620386967368207543433817144852063243518381106995799217440229060239401997076294680318785076217204883977484138271127072009446431044368831366029820984396340035190356681404728406767190428637381358467170886238864095308331589758026335329645473904820810071479028528347940137202862372197008210184217176564392451457648579279087145394502446981419315628924867706598025778504520067127317653377581473416727568326558568959766855649712362555710351126526923226384825267242275114316509503277351429245118676999236234727055903599855645396818842407415823917161746349152847002880660414903390758916190517632347636267047427125464922270936787037008008347082027502201029184173601303293881879631661267356352573709489107710816968974396637969935562137588816842064047532380267959551752732781775912518782432369967165265789310416821490933439243409207818875058276976009365740205999144579934137212368957047498188157181980496116404900868043755344333000962405797221639010127647125103105761099532937930389007144007204883473737806811099143014234344888342663955575908446542255067846963933159064744289369428645724884585340674415143793144688554910477743667955756184053705684138606442112600472888577610993138409065099528424466906966631782354616732528949346466304964475544398868852204884139777156996141755279883838292448594686409796968510174159166019397843405947449664149899360310261468543951219947964528170627580218994745156661775038367413048754173211675986425686775991959116127390772989991683352123651963575513317803046677804097802612678910240971211802655929610770285806710056575734516841231233078386094398492673239654280557717043912741875160344432475510675267105647814015829325002769311717458850868889424512697463371608902042111316983620176154484802151018889905987708610830121053865199392660049983875342007550084226191437153565697777721669570759263686216762269895633412218316600995375086035383180789433903031943279949273155972775411198103106018915094337252626123792233447887952070761855499285041921856399513063806731619312800874197580504499818086275691206243017252234435229698713112985639209351568496677781858424681085390068865589372062884373115317046459328697576189279292537123823286691083448758187009721015775689815100701499721149552780575796844634403632520852318477975838154276495187626668281912860388947958937257864194660752378660609874164460518290687280606130642479966700920846362561250301592452791649245313401186159908542499775748064293369517002536337999074333015317099889768713229164793420860618289253885465937905829248945648974079806869177041384463581243637991835994836651822635562251393173281875959352522687836366767738143900878623524824898909611472368017455236831622523879859230048458261144614717129729922054106527712215974272746014691473279906813509249240978021568215196738990625624684359788986705982660320700105728240648290194432586315842433870665692210411540324814640475903154247771925062840896952061684994712202830555469346804815359659640222921533757161564612509608680769328684144968976905822912996412739958953821446928207382130724504319609756679524832111617118748687726138479734543964683681458530885098446663829977272828151216022472632479383806019884578630742374236290885782263021860866006264324417961871445846038152197249541101979259787836499993927907882983808837657408282045484405845819011141832484273735296540248425722499849897189619544909453942991343193545592381750946979272373481034354105984431800700072899345735922982840642452472569571454335957719563590348474807865038787311123215434515871253350547772236198927946566182194583887091960433904162390025018606434059966797350273208667337403161118775260426581267492812709875480023598498732232016024825248884757449120210305968546566438071642185575213889909332156110966981985078245788760472963665164207250202201567863759076050510306545834177101659374405145230173363729865139127890703314408765027174377269365222287519469373599465614606031392911093550124581357321227341432192915768985880176615922716681145860644190952095711237344496892237854380171954742236669625107143262566020894469946571097103373194679246046272274237794209571953698488885141399698986954201537909690936964367189985491748927390403459465748363144161101094029710335403112417982438270819123518387868359864413764540784159135720163485052532210181285014725751264678574354269342199848713782043418867309009160669658975909231382556501207375489815683178759952754958077160423691188372905138141170808426558007499633442712047904557247537448903117158207624332680879544115704970201280981131354108923486038025927424451745085050441573851278996789953942340286544324244483910171220823586859672580441441762599850634744072071956860989784839241924205195952649122451736499238085837225060441798582217568922868367906339081429548814598911656453348235660666818779358546278669889951231990129271452454204717293514565059295931393334194182413857255261518982879655860804573392656804120530465976746950001038630529478836049872024328163838661744578313143251865635553849643046236312693066531598619508941536034518174999466179180495095060380825167935263079392234838880494275396842481410216443030597616996972746995452419318588549811142576617080224263413525014413250382740446519598460002186899337644609241332924694032858380082771429478507018183606141366237827689227271606840703564653792389530122119253332216037380712538403433594270848599450003332665690337344514622561227810980593817592014447758104639368330356529038210202740421756273624515005613411321982205815025311635058804528865648157066499884772626907744509260003645223437172119217666083378800547737532599549444461506520591535910571851500176856857087147387187655391477429260203959375466616597629220394393408641788553484904699248517791558311325412343099153492647391441398691372915867694325714399406610869163561172582738571104763406770432047202320701599674334690444772143528684468836459091371597540863598150509284198141641159089818618257023273709351175516128619690030192616548232032251406154732634088415959099451573703683519437701259891741922603415823880990977249199766048439188975220604142661102196757255711214474944241506932227074347228258721593906717507342787324262307777529808583579059298688731157502456311388957429056492282093278324036762682298413140289574140787238161909289150055049977347775929907195359917505423592583433120741988563774687570970751946646713911830859680264167967373789482348982009108672579242544961479844351617720520245606630290735489689008884749742303029584656751766259753587182785433544114885952957175563424796887334109680510820561447786140322138451572407780587829196371956307076759543122997814424845412952018295233412437397867515452417853854859016900143218911693057909666138445265003474931708540442758364233052546216366090391996095915487038104580352893596627050711049304040935113703378089668405739962609303347843448471202929568107303655521360329993218187992268352045954645864953580382419749445592400183920059677193290241403756417205113025905930697223231839843350923676005877019499193463475092017066954616104229272976759824016467517254332973204408702450559320524539442052223709869873089513290860607292918637229595219352524828714098927568359203470036149525260170826431512407196809159058092035878840505130217318406597985935906753400536322487651716608014920046582109678046008137113584311203741671403531866651968936583963565284577756091218260905079626534531657881519186310245866533269400675501250547950458686573021317008882812121935901801574315047476408055289838723887059875449905498878795322711978909955698286081323222432354400126219687904070621799350181860515622747861319406495833971559582067522357584597588836503782679385515246196559867018709533745698370809162466237699404383964809859714062889664165709468692583782833977651502795681119613707507977533633980246908963117613814149533745047625217192192326588807054326966781068978080483189300108412891242923743458153466779578420862157054261277657420904760055500914063078164297762090051901566643217183222823570335167240027883110054567129477513398692857965532604963355130172002173786173623892621921969140437360253363146134724785325409885278175004704040065327592628509644428832698569954341885331108314930590300942718186279868973650526083621858416027502879282867708432925620148702179059156011145865589534675042416031874967843676696423028599924293178699126650293349022828881314094510500809755796160706992578289787864329289857108378104950795387113929977196010362164005300123570280848337072897848306676765318586842591465072959430925903842147516958290681449965987244287151229943911152160923604452154533924927551094344240250868614225216633197565439401947895117090378024679996533793843283904430525257665217963528929002413118460528119547083383413301058401831857405000491380599426362320999189784265263365659842009134333500117027439791563516536695436553097727240020208106283588700104420856488330325611680320884035293408573581798135862627362343907309813453667450140722122116703611948480851859573273936920480841144460036650988931539556479927998405976556619568790214928648968600478911220621075156563922933598338386406932839556751655899954949059308324464945318341141313012494556207364025357722663904029848780853685931021011891399474208436887210043782909775498356443138144668296667906094785743205768412883830184139886419517005786449311408780479716011381884645813889027024175305941875347756487691735518588231902498418596879620768501591541021796908036996677617608316159411685903557377388814917095323597803994932983553743523264008004383351832577416822735315078641250024410025071495515114987237745696938600708559501466256650875148994992679276204761614353979489247824289554543530771464768783571341412042096820629938000584598701199971987035282394472504756306267346282938284619631849332669089201621389762122353192233826946615854109535857971869422831438773572857613055452747239702808464648606023283291224622670176879304690960195013669056856142235431737050144550482541557607097167393408452472954210841694711513117129187469760315913408601415631924488018413900212679466534832606328219626299045730401976682943136719516313400675117647231799223413890035541256830450066419075951691147452446113735391948839695462137624518524639899020109706412825288610634946446341293473970095092252689011500251187791852389074558231824061502489300087036416505888605600269705479672482145727700828878001910408582540879101728566279685423346411352628383690492997854101825247771953248130959205848788144500620055941872256226856721487210678639779495404309439360485237238750249451083840410541702941381624599542407193614422228607777101333995783684505629099120604212923592452370351071558321746714153590347890396527706809808726384785454171571075857391890564977783801201856329268103311847065058057510681049528376776577882449812687297708387870271935853269444869570252952024978980088365483452308076499408306571612376213912734443298725764755627955603879885729450795048298986111495974102405247191513253366033798323928869982518093725664276411651567291530755925152426720953387502694479477928477634255635811544744627593293633649629671255047059849770749459794583331519756489650248890447221195777862598665034737387579247964383021063974190162454384163932603199132887283354518261121386622144715928786262454202485114524966862285461726205484034954450394287147497539519242807266271556561308456559532188959531179113195118412695684184644033005425495095074508839162470188468593033200686595061720765185960031795255839466955256955380244484551369006599391088700261163229201474019906052773770158400262243827743516421602584761770589616677477141928239106295149179476582545249680081005451241818582270270973189316947782101078924649333185975100386961884147615635044927875937117528025071656347611387260688210332290494457663153224388106252218142997301929382265533757474953110443697319652250052210168864444650720379031782089281182355442622116799031427601451728826489840132391886106938545179956153084379654465737932643513585602010333052456935558277891901332919177164513810659698013835155623553681887262758275721421578398420521662404420689861407534455662976436523197324256180182059293829367108843553996658654602004127373168020805738014607131190015771752482968174767324333089753162585235889233612972628287332648446027945409415256699586480258386295983568808705220086364985023098007709807474291487915299371039671504868573983907283215167266014401896436717891614763191454739365685862047288904034902921693173711304204270185065899302034153379202723272798868952764807199450304851368289908320419343576099155101983814451404222082207063008051336585117358549787051154978738619173039598751115218255370612822787663390087369508581594453919379449352786527806300600825239766600363498603872868996656828595907859406581707955806275578568745761403420402460160654026630977282060512531826055363025178074963996806015850917918761086865974566848756972906499033149970887787307302259866886049369765056641407109399287444665463680961758746664797479599579532801067762876603865792214313864849079490984208322609862839458498293087841139300039320947273236135421260928240677322074910956854056457561652545990039196645356965430786761747121002430628673016173916176092374486071365880503868606498150376041206272693032310470625787369630235568120133234947532878885225128349444481232073251414223484188546256510590077544760156065616412583755467613456078365974235862640241627690784960016912891097065415130752840958289570848083488865640534261658951372986739189669885171111713895090510607865049559730240409385598648702601716679848304631819182133603949547198730355985144452040406033314803969552383556223550107977511169861090957318167819562686638318144895009873492372891253484271292720500512384695505344314511104020188128064407384532819766178709382344123589201976126230794617480972912440023417495250168628400784099254838664395226674752467639160852503185639538837519712457083168485373523755725332321895055555609919570432865310815625249730617507671883573204838198689263114068029183370446518349156497666582085398763054039260598321167561586770883332891800360178837372348046991485973352184898976179798559816085278299510368311983634305128330752309942827300297241911073109359556966321390527840245315694087366302022292903018062186840950219619757144593854231423449101688069102013249613867974368018024952921059243062099233791357773662929621186426318081791775321117750441107170651707272304651019075099344165216977497597272325676932056651562970346066613512124069260343967366133709582554677051981076369101314109436181829066509521553506071212907909615169526039146738632404865083338833142310305676970196121252067684275576999781263849354032988827227746806913016058387029358647222337233355298413890764855778269607956588857663724532950550087062664662983776070249233164412185034120698801624521762783731092459467925116906270536356328847952907378914684426646364901412037083650970884928869626688794655186208874847608399747710652842343757455651765799295130831384765394027394575930634223726018401565241080316677156700069884724580285378625703749292838341980206212650802030718121286783494964325033633885384902997471878858446211321069108200277904300031458272424480248840438597686157791348099944959826354336909910942710713461685606866615182057038709727768927750446418198169747928726812376390821519675796806510776344481917532569433455977287461604139512312784390289530350606414304205611973581733040562421430468697290718795388646398380405755426776635293371859939586218774330592149659246630028161148149024713069331518209860006625072427363221581947406056048847153098297622733001914627698488946502044723556855056768153050389349363161670791429154303615012302315325424478177979508077968979344337598245815198973094615613557979336688768567697709214193095367400508403463981113128562964846475029209545727873168952133325913194717900330893242444484661627486319494220978626265893078034549031961168296723168044795863683233493269064994038496573601840938222165624632794548452151104759602667316578821903406296301935341453782131796408590450222783648052031141171839695878459923951830348040187829390884447997195417724475165546070243126592226219195075701516729869083332467017920209829749427740131766622055565402673619847326333886324993396411107489032986629789624449633486425455962839487028933145722375056607756860367965366965960883408149233124051748063363586842291811709905897960758042967461682107578908048338065858336019171101601292293811971623838469837611733769276746897006684077103710759984290094255708886882403067473270038432259422310246586287054291149544284465155861820777334960619763932212674494918679325450780597525439197163156756455448139396606247786944613074879518574204765841026774001148081392620565615150020721970360377035174846518035833244211500438781688107118005770491516221875689921944162239150153432688835224899570670979553060432747579858507372189933117617964832521061274438712479145270077056968992749908602794803812793661596424275551160930700688817383932014219225809553502150939520516653132002028018096721895444666227850717950981552693131396318101573583580626489119269512999917279408312373687119838898984266471091840194652988144706959057100700795566932406873327586478411658415182979020651192414423121099121735721083931805499772828757325246607195554936407773921429091234252381838809094895962502713027856332943552846710492991289427454754755437928654577336426893015341768831748595679600143446180360491468217318444909280688114373427603104804628558643585828388382327350990674788300303593015274980815445229974192580758503943648593003338631581077556940056346335452375509695787991854389644606072200713920350314931956724842922422305188801413130971478394479527424512656892229356009354259547460937939153816568588641718559826424498593425027088653242860963066485072832136854655557422352774824601433049786497416548222705380442576238112948941275358138023317105604169105404434343439218895468448617711022154428897555525847146423378030050599473947913008803826004633334200951691178893174558531350364350730869697350651019924695305364655876001139337889154496761340744721832321784252527854289470577853324965538903300405598906432378710673290371169704703338477417208438451766922742829494133664138861818809753567281094434455215648590398673770236017777897128981271534175469761792373864315314812311506962287247021562241381677309052767340231261940391009706831814903856261763150967200228421561018867235012636576107495188362188195782101044769428954751175757515868578736581490349166142170374441176081312042133470440060519435138382083844404856844611552694810580242632257014543676511272775732432013270100997156674282239746427775731572015944378532546376123263157390630701995754381974958414224437834396185196231680822874998408585955554636066631969004303245550578626952209876366895405575686897525667249530220712903282589527707638716836956498976360869391520743067842560104737096208041551388235572475059737427249525269166777653892585091059100618310857591146076390825575792021955105552394457077160924135478386964705278873694450576434802959007319311269842914379203926270621502672253367941766294848390527875388632534050976865710988998793790547529866395112371012428230617800205545107691302288430369477301654056356614103304522716686776416391418971179246996045005105895679768224400855631552774171842071200887708876208640742106717738687548025864247816670034330583405810759708918149679305945096793272516809839057499158767030415260028809348204571797233158004975917442478170115945920458530903025891166638599005218271227413955700125200404973563043535828157416704821324743313222819741706734416984061719939657272851002665442274481168181612127271169485654468538125340199560404942681908402377366551046234814257120999771406036841249947084065216107020991258268329634355008974198020592162850130291219791376984152309264248386199103782055597911756308089931674351541648015543070538900087354483876777800603608268970261727828407731097165564413129804375483979833759518821140902524572664637916447550596415114554598070346293755960789476401311531649927771994331397637549660365987207347840551482831369236240662902579271125500806160640625476944619767306699592316677209003761209909467467037580499743169816843344231134273308870540398908599652648062492427848142258166709015557926090932651648042789121776784063350076043984451032263384090494842786898980296783204516740234859349879534629374863568734937980503282656280634106313483481758610013518705855676713336455128642420386658081222327250749370875805211154012050998275782617046091875809724544001905752143766149854516398655856117896927089981276252230555348203280060267659123744982125007503241373890951424725541895463875948979829603760713700032147807472520079826785141502201641656662271969760303174654964337615373496201198856125718730066835632038681019951914365652149188736344728383408381151455436126354602482993327741218690372291628106446038572428566315208660401202430669860283460042171698502493841659471561701512655106695248243769125372805751864219645813003893712914011148955945033942966791542248044084274991603069931208496258490362191876994904205591155309989139233606916832380832524864176704223815858637944695095513419158161335690434264127730918587262883759796898951069882023873202175722932586424852789801554925024099255317193491932181605518710575434802208178772404733835443179556333023682409308908360130172647769218786155080463942782977519325281022553284927201513489408169443535488044802841708532738169525777917016084646551978082216248656855793480081108002317760631764368013549935962494697478252345445505454635495326001084610128501116144088394154263493256871477018739668724566155869892218339786055413597707268451544361587247912697075407572346630117563623725302718131516554141216048474761358013190110289720622963261197304320377716065479543362432674310646713879167191623415351551606870640704192864939574214609343090080216382265827415406211697263189532868780457176944599985418441971068140093451155508446247963382726470823280229732652593890179970932124758670087915921949336681000148943837469288380949192240222311093329223850013524535809222168878001504527729229284281001850623944778435972899383277693013593412967326494726140302313191979138220810959424691950134252841648056216352230609207655941034588078334473137031022171836799322915900171373104380640605857093356091709814916744303655083996153981264253417299118623702494607910624402142402137035601559857119172658253315352829756294497787790349091880926543227049766301612137131906774941541714407708644572594863499892734660873906181244089530627941000785471970215966461580584603987803066089996680194492169227995693899004635037599862734844581071615389190683177807367186800229637145817283036202182918609010253531438715457395478606069058814413866332568272535135714050552850532365000094455582844144872756055677247050083341653406611227121895277123313908825165324164040421670206982692465348994801790114492574466493124503928672025224214664508729436886189941173130369802161977716387486388596040280543096709521985951775342267965006281577175084026563860837125373120710182108524101653271294920007703789973448941595318505442616956310450723765762665514714515771263786577528524238943899332276212412526594791695728220650651117084980780390338356205304253403487880864227168767245949735796813365974490225140851610244794680190007726116088910344247180834495776000959071351967154511432123234840370950711036241316025218545174422281394284944105166745512707554995408034828049354262850119227846425922660606155739399018461237052927726807986814128722817357589498383646377661933208668988106457578361442230957336087643617238306369756300800795275291637429191921809845556986658818868405535775029129541455983600690490338305331829723369831339672499948703954625885205093487032024309884848930262175659395518524855872083724645620166114696749815661342790813149126340880632777533208444786857619816197814940199925805292215491816026129851238226069684201004538471219622079116432812019107020942429674144767761237010604118899197522673788693185187185745327289638474259980695991184549365334813724497830811860997309986674071708421513803737141797235208498664042834278186511332890096159189694157674813080386448032637300685024080680089434433898731815081861749176737521853094776369935415497176221515908184123173544447136535435609650789406167255816608726174329518601814643181534281085392662022625215715393899080119894901428780465268511766825710796911470086154422807237243982884475824689400390304079970277861944878620757243562884126930387097840580120076011541694403154738276113787956655957826320717114654023512697423632078210525020652212660060176305592828904221459757343103006990913652486227498493864193214484203096757737360154224260174980573036663994500837943847434074686437095041808858388621156647460377714305757987844982493226111464460893606935346781808763660055622070726631153630508685143731467600219446631746553226101006515943786233866968480409580032031476145131480997536328255542474694734222838343358061359161995045371520476251347199672503609533114572655430633461489852498927625329097828355606967175709907557319836287858286751585421594961606592517995606691448836800657588899545787451095873704993557245117182852235187009946671904827878486856023156983383027410903219200841713058344091627967335026926960825851890271282026348234249848239181518802181691305029175499021803218973021163305933228916193242754374951918349541477590656374885826692198050591778923754461626363401695651206992995045665003817369346844541947836058079664394162243023529005423569011147102755930066247503998981555172942604937833119938714863690645438145666081070199037325006766796163927006874836358815239281252475827783689818514086060212406608018674592702570947796176816625304207189584295501230695752186477399508961134756663799303839208111651447909629239691765376413904563655221607597441248507849928500943013189599581241463447887222983589476488102394018830712692183690910410937613614017644842505679448532058552477918861105593631299952410218001572697382158898147869713179343592104812245147258042271075053990032101081240063700854160575978879344556961771091193902305728792319433166715657785557309805248496043919125470588553358400746241693024399956552189878196625355246461983265851859065336211642612551142649360779315266736926649834090697913407293090171034508778799933223490971717999951278975059053641805851648195636514092836833870253425096205362358761376348845103083040438159897406967069423836863236080790420367221306189310322597268662233183573923669240746330442807937788665758846600847551339084383587313633270157438544950879445900013094386152580729352136833341332014402361455275154404805575678455852297328403702224179953043134733589308687806296883416420639952567959318142593763994853434461850670197886540412271408692907188935547772157710881855310060890872713688000858838423866273137406704192855668481147362373378531635884967003100713978650170511803355587272265425785901413245213816912345394958477131685255171375919889859919360072050147231891035232202207021372716004596916869845355203947335563750645560711388525857263309940546067245042144600749052251890225231694984648081129566676177715005054796673798093567246528991011082019899086563983107648276476841011036045000769662396012764629760743998025679870838154555026105620204166914381568017072907602041345998243258451467945868781859612956491822621915922223924740036654965102264114299038790272020737773222352331422690886217054011076068814736172071083075570414115119464538010732093249209811146144460212804008492701542933939760262655223164396557906529423267309438832454238737278075055427883200254263411830807673254963046581173726818837142051650366063680346550019689940902222993679434164306151179912675173025001289024668380925936375975199190492065128287514808331197083500129006911826421075819335295021350423624082329225372764848368868541196058859005634157105028150587851870062727529986416077879361510526980857731384464956726602805737516340792086330474091639962606041332757285415649892333791583137808631170101269670627707867617620559932462673281925606819836720939353112830090166582575744768173407222058842928431924195040094961307966938460689389914838780658093396238568938748199648289814799552176693928374716412062612093927364259995791303203178101742410036216771858836270099261016369361762250106576403624331944024300375448864444654557341862875934340188167087985008447738962163787456131474231201647795306772060419174804827097216887872768465512979025915404563450020257314275138368093998642291198408143046746197019891729315130221104083256342654433488389539263009909180779729131784767240977625824656513164975052242343781346138622854934910635959172866181557381493248035218136148032318244821202725032428877278546154633700008996114220022177746557726990902076921170314165465185864202303769639464227259559879520953848882419684822404237296056370590982517843511297247755841183672658779250199765529143529572886655159931591747795593557376884478075666578604910667136257840906940115766661901152114377416438533027974575615284544068605852642311564028501058623002448844259431342369655983405997886906778621511679318841663525781268373189909710265817398118977780326457331644776012878707479975368368657813731249078008383761042269209616757133509541683335580459798616151307073409060232676372654202462058586588366312164691470876039155350423789218763484396101974688097936230784495954905240434474847315831791695242452655891467079301090095428480059689800886046081010914511363102364005723288628697027477757153125453418147887721435009397065478431154225874245620272043314375373537316991268647080235605142514013336547028573719756980706459251416694274756103766078014502890857609289682170905203148821616235381038184413123195791989139854553234328237932805106897287102070954697741912771313155377329587369152478012399751342175856925452594147903666125299458616098239753428521895682605272053507754224253929417542212982721485336180689029728198344978542436885117555862892803455115979936577995738646479653486631911553791059428288922482704308369412468248450184749691451244296363179072033239413085355306983709329774078604922140115755133900408913604677347568719560007677678735275134239041056841250199012303251147823361063714904725791839602227977929125860973584653686411396678470036929299157675836377597494400428864875999794312473827601567918061197324242569221341801706733076928014627065790182441728506520177564321957016099794514918162208753830455911666142705320691220916107131084572851142701403423776615760177130319944144637050899790759024167156420804674308946439598021286884652751923069771170734468147297152582706811160285669126752649118637035306096704920745432856478949271535989854698172424826712505672130694867835657395356452790731077998206679335972907948202143644240119373084154506031240157779939825125768088202468854554960111108162662977997736838186301605312925476197809750350271511542014646753778013636176094765513002668880007135516091160392410447835558793086460023163298137775487929132728984782396827316239708338299570666970935724942943093546480622539919149243902959441706845810365955523237547949978123617105240735556645448438515835515702686932498158842521202360149949116164006804141770214212095565627955736434730659373102999896991367973856131283739921913381335569898028624979320749227367396561188962699159153583472111869734479237733346096275074813991737432122146214837515223734754366342282824549078393990825316473446690435858273577261592980574645230146896570445397881047468581428304502913266676106001448382223487148725200843786330788796285175028911894443233384088258050582644801150205898665628150526100510459367535981389209411879753873200187514163322131756650907541607310964042084697015225185458312137894716264833216416850828390917474119800699935177005824516307708971495703102158624890949600619283353096665570324749621009493837293766683109274176875752987109637659367120628082672616987102467184342286195440539198078066684999683222728924871103078953741995082339444107226996920056773903824613056687515983258823389824016473443842115794390447502765080615238226692594784454129705415582929405496861957075521827248231467841141579410591438884407488613831502808271417991829920580285811181457360723705530487431702328180299136264026323199076768916173240416353172650897745364716306491878520829077771329277581559340390601528983203061575546208476442652771225078301057985454409312047511462215725301487962636036819316030331385982351616656941126681425915982581214183279675908612236371002485999405022680761971019082998024971051506738811300669081014217148676075072472552562449934243952493092845077334957982655837328867300449500563627559841370172454753741700089497631296470023852999737017981104160228200910152982242111595477729936077216410112906969097651276697181793307232032884314535926115527406145464560287752051743895576129098120237205476259362502324510080736890981415047263385195900876354398260347081098438187221534815752669957186602748421100648101016898459966122935977660721855499400907456090669299519838578382670022253284223905477149821356770751661862202880568115930645892006415297230235356163358730231912666689694891091135856912779457030573733379932846508060916018707557189841546545079615574932425220294461187730086533999516341966994718935836524177670821874374680859749285459629196116791434917203514038293851043816961208087336082853620576174642141690356880035953575583243967782415678396500602199580665821673901519505175122830197250098706037288047733034213358432950284015255773635079070402987666833459521252075863554048189827910887459477792953263800556141308318026862552016545270867294542907218328258472004222676216968322683200942182882139791781149604746056021256452267833795051397590593278111660550302053806430335130562980725342189076296474348662544226935596576505956647762931724327881855715215264078615106923800765385867356573428574180605843798437885879227798964236586010343793668431531940967154186243052139698613429618514608957602956442513263018138103425195241040423805406243309509858434868919498441728009870881204526927950159261642107890373627500112868163804922121292471917127142667145474802181171317720594367555050929273788028470820241458774493911927302045143213353407748421539250953315804049563384741711080790851244459797969883445476848205908005468941303043873354373236365506045303636733588926107426460688695831823565428588102785575236424395105214208198426665911159023605021688984652456223426773117944657793696255675157940660230476115302022430326806598564317318532738195289137027617123427764260847656378270240654509341438730584333650142897580611390707069369395798361108317805926484895509991767154567751580033386157586792629155665408888768187980182431139966517286723074656050766183111234468433763197797257913593323892630739280060408844418901341093067231659501024925556899564034577960211774601058565986010840628279498757275644815158398895278132502116791084889426314385401179575493867323542532995294963519470819061019553935003737440461029578322226875820917360989598672126511566487987197391603712305675857127693823691196871429263293135044079952789013922756255339062437995367243123866717307359994712078854069757933176181267129560242168264239817960399029726584062057057744289509288160370586284973562122848457291564502776859924850463816389284581565216550871055829580428408838179403968346154995778012876948680344262842341606322383146732029097819316861643391068921610175883505490809964418065859604285523606242240902216337117306674180797348239079671812817638102808604902785580023493876138354528039554347690512218758902356680010954560041696510933929419626041425808085890100395066381472742834817535713241053832229954993816264246255021275395232157673562583104591415760426644559154244143569238658972343880468623290303770085632823932962592146060487228217563056474983322601314853009304750866624726575810970380494707060847533358063818084983685473828368297858353139201314265892189015875939150774959828365720596969744088978722068992633304207590307659837658529519939819076347755269106989268384632405105857722675948591976957330326498703378605355696092914847278805545066213924201007495141661675038527699492075381864170986128586006790311891537913707716983147756143307937459493493971839114471361144545200518400487047882868918177717984621773154167447109148946217823620974593398070467133139497499205627212215009150400663792710432676896673251988355541163258936669793194193381708862268554703762753344685161552248480804493220602656777675444247634537988576832497571423055541341812229172413257451579931984147466178686712161861536335817141642133520909330829869490887546070781303400065137693837997807442840058902111467694220375500455441693585333852554668827545975602692165987509270485768427280476705494210048763691028612971195444094157424890352265851367311649634476082257201506801664540466478070690683327215103631633604234346463039860181571394980193274396946330725702599611351888812433823036738678192893973619146523836321386944566507078621926323619426061308265334705057785846945555096121996638479086183344708711963357671607777361325091248556215195350681067400132445078627548212022006997308683227079370588126968801836977528957933349096701393610814584139873731889961138787978220993800292332612847637343784162023509667126641603121968378665272523062003794927906262887872844211581280042514959900018792376447817768781709073409927009052092149434644475033963548264019557626174686361528767080013730901819205930320743330214986129311793579188874592478186313366496495522220039071166135486100503829118547052787832258848973197341819015173821509852110059753852341583417990536791298543032635701618254603039614328198550705754524716321963534074308189796407778782014165766614212149502160263317570318909219358416179934378125177290948137568556821204210164536312949018196901477443285208107991758406808847845656432702184754057537619345191173513166199738392056239015183969645429552355992116104488305936849059775701597166537089197372084940668445622038346140856930410047755481159395353874402303506903683694542758554361735925487819552719956811642550108655738832834951805209660109683266116099796523885798471073319001063029916941922938152621978706946754595005754594569869519047293560613938981109749396280305736197835835506123067906480031061017831215263110097713653544659437712118118501910724959496846828065119637900587110165141286908258493078167556336528649970262838025361334407391510754230883054912615182871392404728411851232041571977062400339814060206090028041945568082577268850006923685959709315878548203837034445558434198999831145721113570504631838130491438228104437514634427925422909011812904160932362015398176288836340766902569096951875516346615138983819511644008578235947499430560240396349096723862804496699505957834643537255664447238125448806782085692527327991582141258974342238903384352327242315434937028904891363054502575466653222366111027548637858256111402225968937745627887768986266906086616128852963792211958777187209079069392888082949658215076306341336531417935866972224474424297805684812713781408907604036998350833217640973423718460688042851097543210812742004179288283460568285705996460192117894917616502944487201677483359378455935184468483104177983623291945712286007571449784954401988150921114981323515406621676414174718386827012506689967575029185273842786553130853803160258966135945175478312749070174293852689901448902383107403822526158204193299897237168021149163147296322176699618845801095066632503467005044044374325313385155764870075005269541896296443293327220275971144505047473725088089217239730246325865461068689068440759888932856589755877704118383054025595757654828065850414298639748838443961837721702876451035469626081907311990388826505770657921395711761153377112200963961538193290884566264893312804415508110951798724033882523611451983734013112007671112902237852148598788644029611728180874432484499454169592174559560742064078843593854067889070687423921792648120894486127433275216963604418434883464331650046881962461798280504858712906940049540051043225542219770949365810576108621892360034872993046615184829729738850727391484748524488538536539467867268060423386527231658043737211600070477576423211575300290805420394794502668949441105734834231069159386379476020691461727878072891236137497304423446859267534588024891865118399369024885563484898663895739034472281307921287870272456790217717527119958348410684487762762571596756408385411218470141738037110320703018371538745441967998931698528983394631628114641310770659013350495859583346468952129266395823018634332566132574171413605194196006041670118101901051173303736982228098753756774192499097292526432991981971248531196551819236939969321572507608502783530657940227791915075298440616858540961483599408974079306057370752271016879945554585005833619150805039213335074383816754911830282256837409300671032227482304621178808531978063688416488554603456127894039724489942727130892786917144370273603921724544370837868580762164053309371182670672903134162528762636114669820331526946517193895243277979634765494180701127683946942721411190326877957258749352831128476713968183384947695696566612959061744413493631178741161158670637467324957829197974109076189305184040459350079543899905632962968631467061944200281293404454135497377420692092444050447539984622983153562957295954089153961497095869704266222055831494060681437055625757157532184119710146006374627398944795944535207259333089238032155326030284511777186536023993687448008892024868803936664226580302851188299646106056737432680211253336797291317843117910466103456682221342241277746440654317347258148434807804200862658474241206985138322242843932409207015316722384577816452692923603957557478231127537433804416075576872315893559917015153532435306874370188990090549975971451735858564430177091043763432503996393849898852326663690433372572335066933243749681066029374333341561459905988843570856398872846514233944568266215158652413125079818937149357945079942843706351129804769031184874125580708333713311537414936107435290855366576913870630254394390113354472677215948869156608947708005743034938831395051550319480001751001720816934460612530184563908963124145036855892551097077375773919838656584943048701293980283449286716453463073405286155565211154985472167837362845155207273063044757850647534842920694271186846010825229399560086962348593006629628328740613863482405107127006718154606475315873678115309038144452010138541778373653723238532137675207730997154338039780337989774411228101560573124231315963120720494280370248581776825421487137181082858907077852123850507752667637351657293037660680684655159123904398612245300228539580876174835928765333102954236240212871120269365514905759482549231553400372496808181173929475494664631069916563294363766637767491891428865642302715783929209577924575617795619680065893495932310093809374996997141698009399694446221610834934068396399558953757693205067555690411829182416106975522589583454805394523189571128553710574487813820597253209813823235958986346729929542303544648629778952895953751077565094378395101770574333297574133311944820007699544199939405771570505141036646571490633718169729974521598305576181628101948319035960277750853941735123895291029257366408888518289214064471174163031128928814516121827044157110473551266733727689379846530271538310304150969145973845733215668457120173284513331897121861285893077389725950565170617298794368606230268100639241810024171982219697388687155659624086273054209205010375162261611259300246151451605716269064958309462123426564933548134971892740617166128172209952603006823184779853961772718223928081723366825689850793162166260207330724256228504370229142007202809076062172607080541314602028020369551952249356075054459416301708069599041824596868641154447517705881795186791117083650658473876435369263092286459008386323676001670896439884253602493200445184599028317780160996469732627026679572586661833567439161988732721657478106168513389796891060512795786306271328471499743968335255586486819137629610390015322559332487507634620036696441976372253494209079100956661237433058083210012996228003192910910853367737067870959527650865623890424497410142452838011417272403623141688301423673535062893151224534965822451860401070293290928488940237811254782923421613997683878753210819587483519638162215424660932931156165826010387135096869402949466700337744438566154962308325292283571916694083128141877151181794697371325849590219397339122728572052930688923126051234165422777995178093364251245569077911297473293525557686562251167756598582810395408490405523238031473471522137374078201272720920483381158796707434539210513059777912137295404355704880027696093080068576780245683698801682737754022448985334098288523939499729542902868648944907194699817225632022469396068478314856825135964783677885707349821060924936046694133975312650468127473064167819208629333637920991207775333850903074224400825082735486421383069002243109582162347660740738512698595226271195774991323729332255870783762401483343619670087337988465124525373855800396386109266705554365822877427436566993395658867358464078695979488898661240194892875622226750071027384000409703526957028600929677697990702745947490456947513071985624601994033431427395974404879334985426041873681324742084331265452113845851411196335765629759644959463094137964084862560023510511209451728662626180493320111355925619734355941919096837978787075164924050912036231811083378967129502325704321668369389899769795103628283929970778703452509621768408220561239278750623727221233040445110353504056538000023199819604662019142421403604366035424390285905829105948504416917196055029221381608157738164850525102046771405188546813700010851653478616241194661444065552441087787136090514673743500898483639994843537621456049048965343340348139307359209384296773445160404290326982787608377622861494925917867621065459042509456615118795858564954901404801807118783638200047043415739461092493818059810366256857829144735176657781413395092900590664365470150169958841223956976970789788228242933607452722253712659430209383394928700819100660633477536031777375192382011887838731022272672832471104646414254492685270926683966706004320075824091177030748597244513348315241119984484355336549582245041145607465840684916568761041509038697330788095621481031300001570492286210121652354714110712886862760135674668001190964917336013693188596266477913366290147740714798917792324440204949611116395474852692239936685239027436767024138205985548737122490273063335888105947705496914063454463732193578253854633698388780167514334213529956261933988798825640526271902090401480460877320411914137509004684951513197500200314058301165682239970876855581011348175006388978685448675097264760919020425411748961155510223363205628468197887179897068350790154703456559517265330388146307228650152293539504358275865930558805067679582981128261585565435556466542989013916638764157997565935633635480167180725599920284215823310467822234597065688418570902460017743573597374962401040698575941855911495407598907327663551320260697310899780677996440978473297959268668660614317423401219074642583757303933047262384028015733478403387074862595332953839502727841102267460860125112432477657595841585465575755644499917285451569543805315801123850390826030988139689005051222799327719935228047270024426548203298176597347555038443732995100104748927749991058842596812940037572153362273392415233610418663918282083729543596383054889518991718327577112758011867573568221479135570913025129087644642844052070911182705341194479050912496388613592625475751339228883821237037353165718176322719195446982868752613298544561836255791985059380581633631085754084373835501070305109943787155482969327013573396264677848575781224516400300788779789989263732823416830664949729780356389653412113292834839230330104937415193973015965398327730925157829095644624494068341861617065392120699924345679966943899848813732644612825120580553714481478956363165737328772573169098330572896126216761444581010288316779653893608289851791095727586974704627041573761728193938778769759612251831533129248017256633781500569765507231338253790741327996824593003127030848501241198149603634625828810894084642755090579627821855939380006259112798311868526904759915517527237309111477814290901128754242418824005907601225865981507030635954308549689047389015553293857752644604807126726330610623232990087088930923782078318681248854671453712050706415146711835756829514864812878119082049009715750701151273238606282477642203704703434691826896447282570865587323653960627102045757890449383012397249645946000642987168624654546469829324900906726949700220006548250175642503715819386490947988793590258084348087874320063216585226906808907307566678713653004345748064987801644928729737189699472038277040602514749856539776508244597886368691371406755938328201457179493772029232104937880742603830953375502378041182189959955272267175576386483653870096353010871702246635716292250799585600447765408119496448015309374564490764774262741420871047934814590723414134087070039083288805995340141681577741081470389697174560855262507764059420605173332989773314238640542705175399261262575674109392930008001359694706248803600122505348555637203632095696932657933776361640374647501734265424664093409116113334871858453654245441331274025284056413661378940265852826535138410335772976309005102249693090436366318832322682939017354290417101188621975385402023598318508209329899811793980135739158563643681089655406485900871842571400099966305103389360511550332281018499784833148983969445749776806278270688021127662890104054097368910298196440516808034819426879420039691195039264767236234343475623922015092818511911766402930678598230033209688301036020906859949149496900617420848800326108648405275300994078949244672520794227564115878383459642545349548462425014267090749994569061980495431782513470334885995540510186108638376601708048841663512387569483466774556109355749644864314670914011961282270042975147604986208690383404766143956269262615755974718184771458387796694747331859555426856466948645982482317346477951451955608842553409699785850850772824627056965393368453622045011962523893982940993911671208339912624608111538195876754615776388737896466369871978230328584362271209542620968156838287271344444183471147638907036805771089359357687244291095580110909993131978210064607138165588792629123761646620348571638792288144114237705157504347856085407355864602311141450036069564421136873916959342413825194861713696555592193206317238736377551907089097178269653797297194731563060944495099920918538789760250534153644257453197103177409603782145915811472940573832376177772261441910520424316566189737188261077512779117385013612343404772345425087296422171098616073195276331169987403629752756728892560901757817039208188073944056484533843223545839705572221442157657800543803609325348201650931355244633479592412533112214299315790301904440450583590648961949172434094912734589614530578503199200108834307408556377536718873231371008086034607087085651675378680578576223948711926867071912166227651179217609413653124384864100181372152813808932911054420732335062305409112376499671884896629117897719066373904236725268677848710354977799025546442445899723002084055786691496569961722510203211530141283911879718685069118284764175150554906722984907001142189015946920480885675516463861233394587109989680818495709470027278764930511306493435353686862353738193757179938051164516555666031715040507871607644484732077687563386005168191407116342557198560819775761389730362166601565952764061294295053583141710681632441854663810641667454518692207784987285488777373003510317119075489056296594552299111029693076586455453411894902843635557565585501852672191592108787537859339508948232773272833208062564796931359563818440378496594841506475057027274446791822556796904187769496983371331448448757110873280774628102681493326453144336313257437699140088210338967472218810586447292045614428453119827496092620927236065542821143825949231847112727527442061391342185303187190237208923629735074601315798922473914803527345665265536549370789690912665862042318294518912242535046494024142540720403966956340707557708083451147163270189124760817824416624479701007718519660595231173430802116116811254824734212442944281762514515981303047343042265403994302068798592277056290749825074048336119966926517235144878234824911447670469551388741867150421153612435613528095309553451214785640225932306895245625182294661171106660445959302649111041364289750714741974582629774080056748037905585362626798738398078366472997538649317466188118075929768045945452192150547185786748349291709096363220875283185913874059534096386938565252560647500057634876891092196187977663463752320741100933042954085977011718050127589300361828039840579431559801917731443655682244580302704218035169734169441080498442568093931427796864146130688454184145315219531427067426416564955936520350550568372761588917313495534401856466288277183602097876956555046735979867020295488923353632621293146251283577490051183915469603808137182061019812506634154252612162380316973585656124131464799453165596993145420368956536572898755745531202018470806260927369657830214283685632692365293887212542317091425262554506668464995855040665952226618950770660631227071886324833278011252757045662801449170102892477302526121433122812735822121707838325453324347231889352827137205808154056306328529920546376900125814325324690095657430423714784358221919515408620272743176625267406554967400542415975916238012522905906135472909544394605613626668885417196199759428196211850643572583530026545757539076227476126253877268976555546109600824733723468213023535328459656135540239740953039683406038449921043268143538840075903253739119679472048201792824136207650617110450607470912023408448942808154323522682197265623875392811352401608732849451391774856429371825569420953942441531016091159627077915008385006343130070968757904331236113736826325793238130561513986387001721710357487436463098156171693144824272951473803462858353896169251679219152347695825964418384867331520754895004772698688284345978459635049267871897407015578544079874852479693242626959890562201816555923482622429356965918024637818666380570533543407438672482176627610623411338404207136574505429892209403896544222958568555243544198613366771572483015527303634457338960686451065444426267084293626185137697901077097008686325030907767562467155043247676291912644542163724439118423413460989111463368090298513918905454050629940504729490520450643625972826991270048175820480128291065261434677280753712557227068764137738842970719654415762884921243473576262121098559608489553306230385634730411327854675305033061488283754827221305619195182848600660516157599589217155361151145209998568972140130182025362490016294497232394413135726417062869105067388677999072256339523201969745545878197044275560624490588350897714768878855051987617386097834341448316865596980371244940255729987691522323198504434075836519730091451861774677233035809779033195203930322696561476977219054789693595666469682024050676379866072116495054378834560882802147781689692405680048760348528698778108874351914834217961722327788692920432240930772111058545147741616255517046065361654708456306212786299160863444801598389704874417784869076477085138040783775707993572188630735683687028815522624046814300686161184040604997657703651665427896241971575956297433134062308496323762096043164222921431219921760932957583150547790812023339924856096426126040331192315277134465749349861836845680539889633326155509306783623975841662697403298676804932991211820591564444067659560653256096318580499421385041419848917532198552615804656264564729752409506532383980510096579277484961218337296846561287923499636794963287668342255792572846662496141459901341639994189514801305689059407331812160411690366523254249205462949854377477302736327895561488416108766540709309605424823159738644652989019905162617118437461499743702177726473130557140705789364578866032504414697287642085037832880521039228011536617665170072393191536605919990411510975621087533796214289302673566013473486523059636309981091490759385482006845761233337633399780588531574006440956707644898224642182076352244359397032142601711742372515774910824153872977126439794315691071399752392584300883695103094087511843835866708036258596714700120966164590919439722222527944347125291199384876219064822359327376687201781400893167814201861011989229297280396939085429497106663967368729380018229418139384643439180144630818573563533633801065822152083469107069340487603167851372961151557283171710914569271078810991482891442868394100832565814176485525115272406843202622578729888452237048813229907139860736114092779139621735049723477545881245605551479842824879597032601561070588936990678111951643812132737349193554836552143153854096495870208691593322502982604524660364739098773530366116530298325676214705885630077038046775986433037756791244401525513733564596457219071411467125728554420827261767714747718883327162492768469342544411995724952527521192770494752050017572952613637107299989700940756120353068148222428918349833076816965366970201651657550417846235421077004360876670614801650911719250785931349445400365886634328826956535825665700643460339791268486350962813406517678167975446919200772620207096170238882442477202962832149352392800427846332536191224901898782578357055123797174825578527942597833980057815065218672374661074461712026742053057414420078850223711395880328364568739498551785948903214548281314857479656426613141205155871669908338824617609335932159429852434341802804621254581107369699524831449850271508761676949633499381350385616354795279079791990704936210350246230226008052729747057188235753169513165905383760336215608153055334791487129057477149235265113039584579061156270842321465318111692936531615681055190342459470401454567626857459938558404110028270704379099362354200629767812012607862533668820593241937945358929272577387863707535190557497106414981168851353834110749413570745633545901060410128958538953571558660174753871480214821355620234827607125023242528709853035212440524111881385478289423476308762901909023875637459613201641527000499986381891277465385312346092445252925277542603245411442152557397453940585079063565407318934152789366559015196849566250478155077454266224287694445562193198381468396804880589928994886033134160953058173968990351031005544826845321222358196209509909585163644058234664302247968528021052267267399365176944153351530085708751031690832561095835960789782568548130114060867131844841967613978161678434697065710085408842685904701978616323767353230065408064728745239767455924679794870157358137120803279721165757662430566051477261398294873380172394690757439854941130904868527856888568049378917514080316316342201825530029368571512943946169945215545137886312864543756288336750411514502044564207918156228188314646544057209231130915932758427725288333901975580629491212917003398019223250584814125386444906652412660885793478560206449408085439354094319705537416063279552883951561106840739473469279000565612549607602435680545434798257954871822138641115762422003067316429587312730909329961454358913320711644611262526623696241663853495073219073744085258841300741563794888650394587522367510416208893543844381748783668958829971226751113324644658724009620720561412842267903783676379355844422664790756885823037474996452844461264662642019678214829844076789267627294267820851602027279865284330311160636325293826019604550024506383990919136182703345940478096040305901929390110361131117027500447697731149289430445454276455089517467316406167459845414195752727011871943719838986736627638354634947063023160266375803007121132343930448760789968113785456675556359132262820831408470870705572145665092873257574294685942208047418543815855981745474334753145350135926856050550271989079449058206540252211641211689531365239423295168381931043170584231621416799688093162460016466657151353610577099381181264861838584245121244828300000932645974979714610743416275448138141289295942018715927353341164515000101640613302459956649509660503166949627404130374569645763918608741803750544267721778548581192979346643100993950527460612702749485536029428710898823083188139397806508204775073729212681354383995331407519766145712698945873769296153238968999309735412127062003531256582635228324932555784665242213629888714634660338641384476354829531389200622105128152330069880195702773508425664331046582612110993013828996146061437007904321675457130366092199994066282177503968384122681136833383206045183272199297157687648025299013040268002005413224902854230596357374320801530835971826210842865269231316951054427312843870179140458281294463057979952452632205019210260780278585693724992945179621519210592470946126306720415638024777658980729487129888391611475648661487688337111159084905033827606135396335001526667079602211478154933257301951066485663332168267377787303817609811471815416898834080969690281257196465835357452310428122778479730955350163289132675111795329598010204555157103831430984413006571335306557921325249264306040659252636209202132675287159516113226529610485484963387823293973751634750835999376835766024952522601226723616688001309995025916512318174014172151619252695078639735773566603668575848143646651450616570299411362947835501752024871130464815883540942641856227785521569014230284734982470377883666371195080839977839551076054054048265101601958684855651776984449233531745613105633904766671460881725127104443498478240873368980525771451958818853719080724767399491924305886398205595903376012207865618225484143710709536843667908908113243264266725709618737065005414941684581547943476539543571717647262675850346135601129272936825266008847800826988656617580999528855772417430451054114717593120874021318531174733667835799136723149874621971078067031727784900668235619710963224161910830654258120444797807418086880668092977411233447690656340594839366642389862697062368546799982852993464047448858832855436723704361796118001864744734234253164581047064039285155931362733697686936608721334875104264964380347393888029574201646954356277786937421836414410389260098355104438756907451710747482479230223555362673450239293770149572659850403095974333764594518744674255982202401028071415722282907238343288216101380765062762520510687542589919500831649470562119632772859036007910576689292155898889535587272921943221021453572874507494210695050157721844515304742827488505624446261483676445628676045098464067392527406650951861399743340498053029970047032700103231464741487177715048763402246343050179124831696478787216114467774972762372523769224714050369978324879267481634068707882528497689472954947704513175261069172866716915845386553623646403492773905435716024314909384664196637181668621716983244188527381152964404696804072814783862732075180838347147287841212228876198563327597003839995117752808801806467475602397583300780443229314077835135200244133276421502652366220227929399208007543731245678125271069224729564547227513265959146584615595327256502998976719276069557809093775359874487433159116705059715576464278171827292810699036014771215723808487185321890817923914387736818139276800012113264546812347985615136811922063403085167571935352991636483894650794905641646467741165987532678093933242797745092094432367882763505190333153490693831672840305363708910530262882244812337086656514769668223120581990014717629966453424375040214953724254727222153380691119088318802665682325041548776506061187159497798130107039214452087472813023254887978401650817464379453647842297993742362047531497259387174458650353283543474022059386985883522489723291652179094137399009919198067210906935608575022029833563469378215719410119261322724002405754022486542302718885579905148664872741851303469329967034679968455876752257541810953886350910576763822515738266359366707982098663325733071260734352634161146423915058744569974788094205551701960124420186637818710357901275026526668226873212093811716965777362307039108228690564535927417359008818438148385525109736641001166437652884401335165722322820764071354609759738475609898868939342368306745747103380943905128575978365304467474486138065228899835364858650705874348695986523717968219391477896138985555951493806051203097548371451932974150761333529144888370114493366334645417364800828499868426368962302894665598383609723141427589749549719850470809329621797314323441758197380886309617948422249549317495549399842911939731216049968750208623186903175295786726171797397435348467666492932529412639307287519918598896830448990409220482576348375400767480967755662376699786725118393150052348214288333894270502359185805810297784783934560935047961540190867768093851106527371823803888814423893226601665625299040972980021992085083622818297037461315803077132959018847085074859756689421528492634960539595343780502949547317429057390986045875827452227710362554922418947646720467480532318839482369445485033626569395000600688532835088252235455732430741342785340452978118928447961398487713191449872849323951206134335143485889767255657677969548648517186965260301117202039592827864255250087628675686202741567059236400156493375225298056264590159600067948301457213665647560561345079751420772039606764914029644438892311107829245743147892284087568946379031445889808601060232528659645238967309248821905537827431129282855764956644964453296372626716586635529072050044643506513163739098094409186201115249952573544691212038188455963300392001714749804386463824102292935444778178260567355889513574536513214473101374296440864269878030696000527201883029472744614808297016726869945668069909292991148252270954404012890283751932533688773805575559244246428634401932143690936586836402565555597253873707493502659621756177286459201543271117234665877259181363929701898259005456568739179825073913770293753866812779087474969572013580039048960990535505414127596864384724375704683694147415854850662598772151227407280130296415700172972426993853240620550615079255492932162036174355805786369723349702563214913456315605888326514277665134447118013345649468226279745998303942862695766972633916565716645845119969218393347311766201566683782267219637353375068072928558391645656015025683114541970111647951886368724995959764550053070720544559791610275050668118341037321064886878428048864076151259357805752747234629290284296031949977776626961694791950424304318737498227061153018883754840242711711644720698983771187128105210481073391013010881656420979154279127876018926543394756250072402347742765441641098874996888702840322325551273936155362810223490674286187274694010919482231364372461431025884764788210752848464976548450204620616480771920836141305998192006882170917782842591291352515386712072164161543051835624174374478105578424115541556483345830979363320047224046332251521675278791486553859818156030458606614004494495628892623793583893449313086100549716836205893220847763135387258985313291348965576234136346499636868705474657903728949557473680159192257763587814367883448035244387787936258713161022101739068252552376900311555118896628981053206416638028617198329012773276007042335333443928246698556983443728039704571806667595770015711914663685740975108888310291074788101304235763984775544591884377978782963148176890853469155628160863165366541014950215121203965345117486567508080121427955140550791863433747110673504951690948504153141440107130661133798905777066152802730626760154085262705957173947367557665926435555068545282210476510335163608851532368155011908059778378856679953004532492928369637437935243154748574975497518740544623951838052764945235056437527176277044812363545390596691692599343079837286035151293262898887612840535586750656486445024487060402408087570485848496795386575997243308934306700099760092731320510843514243362694683195350368459616614471183756596797191365960805777891031063371888867172259834594640645574607451743742180072073432030959990736950226952544444163693065184392296882731275574811509196727105391154918494212990777074615788422453540686491269973130546755568371973428548934486518352736033300251896216798550300836086102843406316915106605225451983459010861118066940769230475349304190268427506402274166765699042011266922725891992025059042982533515931193212585364666712821508863167619296082689840420890786962930467701772566584115932710884886772829079128502701497990972649696174908564987035554068227523177741925534646127464231821311900387771123701709664782975465948107778947117162109187713622377351299137895843463469795384232371934299278341955371391901481198659714257309040966223886707054381506240745576927122834136797097741378906351623541030744656873166762304339812447735474151873271403864816284017748584679264646391768042555409722280789514056503323941076369961806404782287173725591007631665344359788167962753766366546101795671580422475547575025148717392494624781911532929437434884968539585747291198029327486177929893153642825332569255096997073317426259870165091414132796880284174768812825009347292014153374892189455282954895600216870641595200473468647680671054532175271443214628575068979716069864888377943683738194537644320933806292765795241473334405457073388941667743996452050548655247911124215415503913422458701530297383190433867680892170013413586216770688816677213954927706021651554884361935976184163819318067161283226878116603170151060025328386227463093381298610209876615379456761556065940273170170670175376871708710877961212165093911514162369671597084963488209762501537000069813851223089706868494893670913744207064399924228256344300517878134003614483149774075301177587676409039719523947873858914547428809838085018771184514146750862180827092872297748205251446449420040830796917349411527294229751430961262091573552271516568300015751483086385514085275851717281160280580675328828130703559425227105467796350752357136345346574479624041988228975858282321227560100336395923246888769578955056187856416894564962065301415721148479530265475266629022616517309513902712609651369503166423743198991170721067032617425421017898172733115128502760901679648967739830778481117102590690231314805485937737121406662163296189397821205166857066531712368633808643718948207843648260013401492470262447290719337235393800868385657327660311072778176806277290016170677427178210638031028668185882368174720500696768848029151479841409085969031521032618699117296937858869541970230668514175936446816085369877917950088795737150230661422215554638148734641969248056565615998627729264175741266780402952734339876818841815564284840444396766849223235236582377171661740234939607431003348869530067784065079798465764411916837422344733633450490189444657025706287921155426880122023695148595030057803709826231718862686323161816184298045329777074722777749306852430765643760640155614687715313671334338846713469668054769836229372851001897744463476681242149766236724163977431755453626095297374760929296675141647449242721082917626804920906514607436468080340196155520768835235828559952098043530009813581035459295725219046987039385528114545427445295458081336205472650788581971864468881037248956986128359098564503781114960312293869039077304009605178604771129106189075887422905244232785956647721273908523771180063768600531539409724456446144748274237129170695334754611189095654914400680162372539601735845025015255046886004193128076210891356384263653082384073266502799762326162945075328895716462459239974461715533455026200639303052169992793995585585664413649205094121506637690224094892794130442480105375068168088870799503937466885003714756145157286257581948529007670796497471165725197591688422864200816492196690598137873615173828087315433813476822311548377274885914529769390830821765864922586966158141694855352507515522987580387515286180065080803398210300340369608117428023814477283322049441919155504811318654798094251001839195934308885737687343237319876892477596870407145520567602292137021511094406825862498058491328404000964051028696918868606676957799650432927003362772883382912461957398346096525845351917347945402879000998340015408724872626315827441733826213867011398120491995422022205119355996852297682227450203633597939368467817719105388924304104022283166226033757003971883662841662191036009198549048653916655601645057331714518488860692289002986215612823986519580782110668312329830565012404364370405504843200177807844285894144551402400676285697528764214011430363862821830562181598813916478499157410176105722580436174648506238962545054712570232294174901094220513529147476671549892494194414096873895149623840339170291350164471342022553350427204009044887710137243764423196878835967485547757331969269425565092712341765933747529234408959355009804401621299541952080449421800714357255851715843289306641533909888798896850336936027867259711298231098805365387986854313748063579283617399131533323160369906803912051440866288042268992499051347606061321074831979836227659454432178086446294850287263206717646666857113226167609305884537598100145502805169237288772859172358460889883659040887670432629044429546719437609615752943694127958075144965362747215622930156690111459773505431836104465357356594650284766403257655013260589541142371711875879088638794762364308945809196175304257647320516360870209697342535290772083530054419315362874117654962063601228509800655376452348680356933679062745513362729053622698391403389046309526394965848722479165510401307587049423638924604527802782920009321056181052377427571211782550080199801104558426992948860416346925010189679275441958061477346260056849688784553987803791597494963516672748987887038102086726259582764127856483753338090698990530265754291560197393108205102232327490120964892148662229843209687410631055635666173407017761082292483974843195750058411611031650927145873974039689813074565263418683185587905564733148090367494790869539389688361711776784483681687013001228021166256365066539384638326048025661235983600599806593742622062392782427263212194464506199080048439864150890983642792980943719855234082948297535665564801683188813664278420293953366756780699867341093189661562498008902628942781671824078733941094049417393564574834586544817266414576056326685530239542168495356273001760080474714957902967410865452150553765691039073567292836448695613457056305809667565144915787498870818200927698212331953716523725342106957823392586585002353427563411337835151098990113208996844372780140142362757237144613088059189030386982061731227895918840865408417963111734283387355083268587261813186498275988482821271044524670735674584181321663715608818793791022744300997862493527758113413331003031622525436028915711797683025750198696777801847130023528775763609514160827679015489370087665193492761690833801295276304537197462016102531973410573064507443265993015531221439360014133653794141289893531578484022886513631497210936736974229327138718410546784767878164808126903987172656222999757361746872436667267171581311445367104518848329782379273234492105835709987757842176994718647738135439548551223906138483753431528704375887532412534179665085417031421047099460313522016135794673338329276036167279977728515266522599114898366011121563573693530086284697633451368148651585280404463795713154233189231270556482119018600705384223571650931699892293537395299827301186466514424859178640383919204855058859646463779190049926659839639075412928169424167867140721622166193436443819805642976319515150710956183530696140519149004792685151918887407628510792880441170191944026803233800416236460942484909458375119458704211778999084191080317146911489945698282053801185494275624936229347398883807064827400149423253176069632597231129907577023947919209166450613290649103943536692717633186495814273715220145028511648646811112451297481061749436451490761395121506804853089994271575819613035156413717280299231186765485093486445793791817311914801923143277821026739682406297120476147218489498882254533181167379311847010455376727560089538154006946776243359700771620418772496854956099279375049007861631116144601276395609467609276154445624983924416777364817660917617007037275812866645827458814211806260826019377682955785692179684539766834844333356837424922375270396478709404376825677331306890039793437167529908704940802351760420518717782098455870714996760235595354161216378909212998197278768240841996746960883407576028267621814801168295440733109542215652606456636810110329728760376136464022279280687723309708283175324047948868198011978953737039476896986304232520524570776176168731908044076741231315336551606468670486404846157931894894178230107529694147758013772038013135915932498396993879700956952360517433741703774658124206640801595625006072813662156383092063469890324343126287803197703834394124796455739439896829740277780841641911800396035525775256152861549612218259011845714579210299158465671594222665752865685162672535242806146382025740633433522830996958262401965337753044839791131377354806363213320500898924954181354598676154807720476227006888138244157979965275757340253492504835207072400784977727328047990035268429786210685720114788360138243372733991715141566485171324832629756641360584835636387538348123904365319682531379589458211077432189130766988762073566768775714393952072080326293375805367209910581245348518692010334138147850293394382650538034719822854394807999952384730670894415212758882194851619593384492780312247848494676825416253718408307538708452647750384940592229644062519145451045425705014673592408055683961267877046544813920422817332387180762275270796924013594268846352401053490034023638505197338136904353330964095073742454162601240302380374150462603458736300437319848664254773901061156590735801608305168410497693431009540561456156617322217392640742300005724729105232239439443888304186681437485692166548257252722077327568808029000581533995239796455728602524108307509905401573462348907841401248165393259594190756547172368635054484236486866150559682034276174512867762208862899256481626209663042528263333816687991055125927026220070559964964312403351296317552704692882278797852727282976476573465476394659932042290550064362318740164035988317973072658333183860490507995556119538301580515828905649867612134685820712017073235234876384408379336075532669686429879170619155247587641438770493114852167968012539689569545446983984700809996998965402848272440582578279841279685412115456759847874031496994299756098383419499421174168216132901391320534457313590089765649058176659072322599752048413696511343251842417206814435252447573967645752425546904563116956414538157344834234896795651116055164047774015258858707459875394722321590204952031926411613865539938301546652226741627023484765395973542611467688879607809951671013490261135012439587824137339443839739904713619321587854415525519127272998350062346667598920623398603822889942614266188661348990819124205039765170546143321360533816567089881651251544020610223837810647537510540676607120574775064032198675275991915208360803436942953234829756357060062643921715989536810228679774013515759795111187537946675800629955660142311484944747891806802856940631046834314393042327460686522420830432261119675081729157670364185070253705769763836134118981317101781869513070371782968905954914560546616191739675295191739965368136284217133632007146357034075726674029858751542678394439848375554269757758808832662978415191811273442459961195925809482141824083560474237667848411069848853241092532501359129816360129124425072691655201375437457109871529223999482715558093172575160252985819089642789406637088380263431388942198102978015145537778169116408052153956551727966017431208963202964077729019746507138938554382150457570674730129291001064946272375005048551407613122175330302144086112730232330048656300137868499137844777702416191738070194400664992987054888872842722859238794706862297102618231319395282982705144347180815471518078964660281398563109628946515830758043485447438976206967918093459958790048823072177997389001058274405527593630280986079187359360521507939009581467617181281462277306323313039323789536936588781084086349547705574413980527232374647618180732228776313877186797213131093411296291527541840961712862184240964025346789270855088532857978987904574217748324994656960734309047780679713957185755315223672062388619794553684079928416373507997122049420029301649543213131313275498289787483471743454213260632340309690453790503635258929308768025827358671962554711255069258135350371479215690429176965425910551008332413940236347921174234301327126539327022525822539180181419041534054955684737719596502856797772356002174305338515131905311367121496219906901607548873801310924578825139614249176320731978068458391782447763505643816935513249527829032958258827942874653924549428947128552377496629858469208536210448487826151075186033112924281217332999951097227425080029596855852213492522411676494890883853570962941294453451222655081452781511868369429279714363378113889026448120078900617731333341808233475426744646146847840947126331009329233839290316235691238147607053780180884584112075814308681686589215705564317692819045595124518454608694454095795656296763049357482639847056544423391851757967759118845794642016827059776043908898449092547891263913375429869890714087428136943529466717313307271117031715346127302170808121704511492908103629026631592620256248638161429093599459210003033639573748551217494442030563051991580648454026989275756562672779618755780421636252764509237921251725815600287069575983247330301289558220138146363322990339546707158841142345958758307366607155250513186931557111916075800318587177516282767991607156309128625454825131575325087963015217455020495643038719443125499213665628216009195278880586235112682336726366408072528191890918826484249947746490976736464316175352677120862089473065482634334590962993490186570679221120696074096012033054158470340709885236525396856224500278130334166016872614504329014144596382557208010860725654615769106788682721662631598756539751707852181819334031867240464273671819986845548851446131806431244560630988636560809232675285789690458764589149791059017337780337248385844585269733686457369466026145839546854709197073537714600353989464082587777046571839996742872597192876952490204645687204811863323708001475525160878093491134632799516907482624931148754942092493364329766144926725004752126813372595118802008480188896353638077288759144863221353606192957990705540529311871797837938387379359305208548892735411143356906646249053883074406537644676367386376009222283116587085825620902854737697110385864579971715463258672495279936326199608346420156155320609766556256706802553363849678506047215253452384422980363627816763099733536914959872608914792501511252528992227588369387274820698274580334775064113386819856961960295411964076013707319586184302653842026399625556643198263001616854623206398941963030164079363322180502733502287136766584725947758266014986564266620477428914113099789382072992546638245551885345164439689885399258987591497928559917640068537151255718638153179822233282113425999650227024823401338431819129428448244060486164618600285045201610865798168140778249283725354741973371901149094424343014523864303604062247633975251371717285244422851321486761344585911999305377046572713414088908183536003808324013738436370497973804135761267788169233413328997138299989988411684985994010252025005908135733514614516740470316415819764723038282776553740314536959126587870626219861441782811972490888560400153626730304495838552324917726954664262754070699110026721337813267431545004119179071768799458073096178940892860470991412003246147125089448551912976823493676991868561844910707093921229331358659811908929323162304845136255912169058215912663081128988867849295191410421288046697008952319125166919494793198073207719913565097289840969906795868414654407414317258031700801191033684837028608991663856516955539577146212371502931861964875709221012946060610535033806472331243623736862844399953092067202528520635353195059356281803852022941282804504916196608513269696271560650896876844832762403630854249457640275036337144149452731795522354605326029090028469587731546891565326241155235897256127167096218506979164261575647096345515165750651276554767351277519964090364956373222166823303152420766504712904952475889010632629227449819049301472432661775749383267328168822213145484677841172491255586814489684256942583417552744028910056537723048840187266480571990135863179955802728877725301974733811487253081460802885239736212920587258771070154388043001324850900163292267683177927252353837939748148325728003365856738613329476504256964719708046388419224086916252086790573112056618894450095278219744260421787993503166039266101999158322978268356913094337921822952575939828970393889744868717108913094517471804129988689614583694797076181286516560501367306184858685100591175881774583419097701152093478330792212578930261399244638132099541936499479953232136600772745862360348380478079795036422490990104365606053899794239870871109019727651757505334707162568210338542266289125950002608335981775122627722758241051178788895603160552559349303161794472218870932297597968776296259636316951205227694568417006562083440452059422905474209265379652122966250123743287353500917932569630609961492809136239397455179697240516536674239440321838135678117916893812144671113876068576689643010172526216745008508965365186590503069339563570953871482348505794675924812038548190510418641416514309218262988951601707663277178160151278885290710788365324609485940413837916274062769785641810340082437636129740782017065177944768775412917543474166523010174494661488176680320574497340100816797810599508972339468890988446251176959693119029660563947415011100316436842882920388039222529916008349877366245164076991155801896274035140235831071101505951968223483322981814703615923086537382775094562669419062709248693654764932031668879087300553068525113763937695007514018202208502552788767111322838491490158545375049729344465097519326868829982699000045448963851683032350298720413349819237947998557407063673407599709092397568870872835657127853115596276358021647917333872991779085004103361242602217867319403475094127932316352188180682284926227360999502727002062603046744584291821510990001293853764107871276868735193649642722077922293614012223517029321448530700146350534019697141280227586566714453740775383133032897214460558985852863770256185636251679453364359080469687186246544010534119671100633188514438815977222999792538843247716073166031748781816194290810624545688597339162111901413271443510241400820282137518023355377128744695460500624916034752305222999546086753255424993435126641697446999990636810530328011452797887982858890066219764343503114390485738287672246884736875809966452690415530958639100823364204416155738890670442878319805018353289043413963568277490326409122240638811550948568724044887135932934382776810472647163708406584655885255398684632573791488006401132574859913620970394639081157444699485077987098398162596249414335535585459712600807466770469201087549573125932891879508119396686631915719274743422011780760046608820601313436654423550013880605490517705206447747921608471033877978131901625946535031702071076788765247284237233860254087384199314259816830595336379026612559235118485889754639215419896720850420074560998793524583995393488162723335823208786381517122857304550809051693073294420684027007425485833397294909645803893671997697578367431560358049738264703747257206515422220675812125060381230200695786953007123444781909024125204123001713805290351059416207992447036232202247196412804759603273872677856239291096187654063485793573606496418230116425799862192301590980862537853458653945958170389197289630312857720480983713543580740152290869491487399303213673581993933040063922295376959834370193578514036070475831374843056103401937711935869630444121724250630739988931385528820734029893553403173678220552250867496701269147390284488647862520285850172738858822956900917804534817790343676190148346767812400864390585267773421438315185563680696326997777915119843855942785916285276204042003075258557040824141049823530402231783253584936834659945168806606951824824733826078960045588258268638456288715769239536164508971809942283141037959407749283082920692994928415464316093177248524867429603829255216622911225401585716751527276183641243427263526213780227091943894581297730291594745385686677469754657920372871216605752700365699950428089758478007805223647597929489076491548888308219102936047254504174664921352918361315845325715602291656464067411062525024035558559382650073073129261453460722093439653974904870133366013195021135954789449301956413062906595731224316810286898404232440622049491492901555139265643081047015170604848470992414914426336014295827882499463553837853760368678150843674113521918390911045114926420642850976363108062781665708196326920668028670198159778727529785832239838910720597129167847119057146257528814517313865845565305167204131050078623382226761245871012403165335158512533118104167374127608808434502756825948032482154403703075618650521659115802746092549331240178802960119783180842077134469473499401587750651128176170108165773790859939158701312636684613100633290883831500136870469492671521729891646216882970315611516967388870331475061555405607915571776518843438137388595207734709393055764323828253063160113550172866739226309856457861773561502844582844825480234117859929098459735232831904368609540895026148245960854120581543945025613652047609381458196077055321717036883654272445840445726567551998979929626102838818766617824123416126642111373012398631823437421171370725069606107869289079987932998094088067397387377719329847502663417961276335630442412892802607722399049119788739601130267167820167889581269484838911306565597979404450921871847137311655583087731593541796812391203222391389740682131327535338484148359909600758986470146246468272837993898774062696324421713718734177180638236313750162120021219932701511508296487584880416710453804764620457740279340782983570892373376506336652265575373226512832276947196422659232581120734982179627599471251451439154397974024311094533747066226820770627266760539342880108548940666797612605245424826674994516714606426261463410657082898964327668507829442018575848437339396638637982858888377149486212077533792779188688726645367868626837691511285605047846418965988966429322517459038961654208371207275460161980636855164357841439515545094492815047264385477870276673836396811447340808671475579061435111430342477304839812125702097403175727491749027711916725723299624367958297203875620499897703895612873599410406786929943931913215681193610084221525661966303844043636932887920055553155403052615212461662661437167675471213491993256058264222202610117523466081634907106457421391828580259639704277909778112014976760410649642035056358264442874226912847842925683867757848668901572420810930101076837520476391083143275959778608957834549054844578579587994090208107545049662094332984903947735213777370134992099692023510179996439026360144947262977504509221257589215958969601089720841377172386932293566298200614027488901738427175159111147282253445070895898861628188773034844068491148655022206971246328619978930014897998936815206629005491678861727410482853760557573765111587135097940325637956757978996075907472251856200576339836720159634031055806485018796982772425684139899685485619627236159967426625152991489609454228821057117641986701775461464866095390949922720397351408580710004836414438339270706949070511316754542956839896414809756544479443251543693967543952799830665127342551316130309215237493958829702561679008489503280857755201246113064230248163144439181396464497151396829868669027283886916503769926818034790973706091449549803038238627944686148584824624349293071875534316544511457505450917795104394931521423381263161970889812601680388439349512658415432870005134160668826345282754071658703294254913859724693769182698772345423449895717040117590310688899767904348589095354176948323907952345868153444098944613260334231739233677355074927735686301908043475384778659978641135697529900858412301087624799561681702831939645370898374245876070045013534819978477980369142885742514832968834064776927189009393462658015607069083763617459450333856666102442696341084898906758978217891787117512986937008059777684852174838183795363469326267642574594148416970419440248529311787439167733861388392588479313272720750774153398897971302439289430876791685217616917586629860341217650052592797098196758117185509445297359276244990731475753368959654605519986342768681972971356897030944229180620602834401497462935256995299084948132284343049373088878403214239423867675657585519711902716953920936584486888847942957604920467583874049194600064245352311037781987727285633945260023026865606359323090370335876882317386626161908172875837002330989229087579593778122901838248497069784499227092010341461169044575969051201908410675160877371056230221842727862603012724079879578385780309108998162049198803630216798368388575255908185131654998596955337445391400955732279817647670666308121447724459860883590257597367752156999707497095008777649626517074147527898066829571246386152100850957980156964361569277355507842109656097492310266554174260983034565527949592295159720325852466449574332483112247298235136449139175038488604208525621548550098478276608129134201165680970870277631340353651706928767972307286863273194400386045086303671427087511940344747072645710537627943624151609839105340330479665862775651034346587862359311865854486910711955043417239306213226677293072821846258619629398430433275439428968225458433098884219533220586571167437556924095479778733578248836653968619003011335310419528633879183340530623380186292719297093012222609612394799716544081527646666914595704264085256660641802268199119491600664065738928522856375841298963503916925173840727838663885582726394208202081753525758624155645759478144464739571505494188871539534309732633986812645658183113718727180152213425263233218888291600838616881135264430613128050166593643810939853967506713394724674434731236130751626715510069651497867424431522285143360083134483813675387480787618030940983557578729205540507461155111531658495539908699871345540479985861949989871537520253523136961173348044268706138661460924753529710551719989371106447820855854047668668557621136714101957044376848893029049824231401110962914076952366033283170054490206586210426006201643221356039294026624252714018690420491812275948081359045424996116822983986870471373976677323933084692217798574610774466152434232511010100011613691771975976069882000925196481906385455550174037596953668799072429663642862467938815642005056043429947030544258756324740445984454114754022466796326199592457840502610148887115270372162033439445780197081920861523469353087596146298964461311374616278710969261131437435065515357356237427220087420842577624253134661393226196945814942487683996373097326865634214028961299350787961302719725245641328899977070988825654814435103022856999385579558498808395433125445844520688438410488144239297608447792676969119800165641754098229749909682724791857140574705950274571256040473191397855494655139366147497758726284424967040957330500384373752112245917929988434861451207421311226834957308047642523668950459249696753094334226774271618938213957728299885159950494023224664005340983244070696199228759367554989278020521284651344218262923995022479602472606983632942038643480619379298549062552632930200546325607103905317809169174252271840528390748552129716820414412739690792417163896013883096545134065886911944796116995287821825100103888854982071073110910474628296678158019800315713949008860627576159559347816081151597915312728449028279168899672038427423907610196224890770691550104584317385454722406440078800395741990598734875984679013105769081275782196059136431819580471304155055527172875869026861959122048594048104121188729765827206860131579983897325858233645851371368996364517863646728191733730188266803194299432262895491027003292638110286802365531974651448743096834850450993871429739899301017682520481499499611218824688104297880345016456094414981171780038981650796036265048251016660049101845944177555070620071160342054164132714583021017231045889075790360945883215606864297129510542174778981037391455223451403679162669478447974544080592292898028235691261278323326630035806617284851284792775691937999697936055646167960796054068260734123267463424634187588029409390684958528671935175564823260812896731342036686732008655119498575463205366860712007459073288401185219859643261369732489085910414559195559426735955821637932405044337682188296937412922486229270856948703517426542165116130714216204100510634709881505100988703055853619462878260303742967188416109950112954475478257999686674777583757960083159812916639381663191851754094188842918237423975309738068625798540130677567621292415165281123228067360396819116935375820905084610461908897235778218684599351493880977225483717026510170598151251393696740520349795831071651413268804123379192420365879264250001727176797916215764278219524293374050931184561295337390046179251737503029516967308455281089462190095376287516302157399329574202615425398705113862918817887724553237142437158667515233151321936141212476419913089301987085279274319667765463797831195977340093310338727603962757706877169333120132553209215061289710690963554738194613011184018373356389767835259132254314154973436338730912569958699328310485887897303425357099846112393782223193051572920680723624372143008551108694406305369258249568350749729026488837975777635911538205376662050026208615269900598496616681903227252633679372153683774997139120373277775064051181162816703851126362551131820260633480978399266865036159923084325762915078013660493131732265629750678237206577634191738347565556385264556025194135504423844978092783812645636512198326288667793997548053507019029977154767443806898656564031257964812737328582263255788456185626408572476249712620952889002763696326783366461863386787714408008624213325883924155836865527272958482064700619013994618209466526281718338201289423831725322240000521301439786390426231459726962895186986652669205101168492407122560733345210294150614084710344893043824571223059508867729376122357924974960341683562377311881772432274270439895155652580728715952465017029894743493137720457966802724056783470469608773462405928479670190444643517299081724108254274694366658581573383852458544102030979608348085932247516931545262958696675174656363254623567485771039042391848930651029677907882813602787875626649515115856872818669303719598823118258546106878428024943800472253103769636940797426397842934727541870954144414894772713585952384667692503532622608513801428693872775204790855538045021377014176641619693552449718977979673160300044927499379530706082890122861051022439488860757343157501444468952811445531472186892407690775034500458132379579756789557660410672634170026557729418619871765770912057447059085868138884428956789767914884822057697174012210402969990973000114241137010760693931506356574842489739338252698485344553060871064405956312347084037109011445819804381542088495423477532107672676486949662554207127828631758985062504760859428334662091624688177011471745727858392970980207928545134997259983399887067494621520990082393800862806422358623349620133149742845513763765995188046484352081828058822208576984151063597313019225113550989636174202681342547751997545010016725579196009871316712881514486291545722573403871922172945482569162543807698097718251168102183789593036421289551048569614996318401108256116880395075796228836277927444392533814860085419849097318162702555324705771056660015603017761168073370498730082645643501515094366215919998148446603541561102404638931290235782416533180960134864539539385998741335193322540419767103713206629609975107168129090914215096657150904300773811203767670128168306259475449077874232037425419040866963230030371720582810488673478651653133483231260570787252423571106862001146406459684735968576033800412659850403605939354583898200909983735256578302766562540476671150431530299480162947027265209206408117834851034020515772563406682886521579332359194385577932064536723034603457449320488022605577228744898556670960216951931346679244896766592360543960150506978914879002607049640354682370391121901889253995665509480123243403617992116526456471565921451042021895704017986012639540965227560813958968156833535252833134280421746853197356674298761574960784788944460433768228107793752406239523495261822018114098361753477792863227330941116334478069701520621137115178826822853479113418435776091526611342446873843365672042351641968557687691501248667190091169541922690819651302384376524382529544835769939138280815760129894317537796386273084133704735634576659385142265485476366567958286793984630121021120339592061786501417559787816312361279901240285740348059687275720427176265220378860663962569316842409262829027495718654782258790478512633699388693554883125868116997853989397583222067154540456295791039129392861526125244488889615863132029249111980944133050162335681488839037227579587436548331075077963480180695159178522324659660892935307212685390272621545980890722337940140810660431239262853013229219941279002283272491091028873785075825064261123002482911534098637790175622764772724883966076804327878460356816475433535795545477934142561253913675717292173019195645023522150548556238472904623492776608240794451916273618751505089125182862928935874348000511907287083267637759853521786235013674298536450861896197653892708999993834045348116086514177797943249411262778203045058179292708205456823202098566392393068940485340185483142484665539461054258728419733177792071780901418197010101057021151997300068356410904219654640139186079730119403591167093304666746716349625312181350725018163404393567970529941797088344573830224622263071216910575253355689414002683876868027710740779959051923053041745181821507121227435968079682894906260029139739134491925750563777083950530328066979897439911844839002082694930190030482836456366840629658202257549768693255389533236850297598838708977820747663004716246809217359289765270302508474118339124148445223347982754757749266831606721705883317469176101616548474584767999105710182252593603170269848353605529265712396112106302675421365203531709927673713368417519269297594611209274296129166628966400768127119971574534046875229973336065797601762050698632067346011110407006231720975639388331839776523941614064450883340010810748458501233274306941006990945012066565070538503586534418443959311584095738204001467901355583785633014647180537101523055882835330810900819457076351156238650312555892773519221751990376991322824260082570525978983747319470434901716459458014760679035709817585349864864672590708035901701706942433088782559369893380666186289118553050881272247568157505252246410009882120073777481477095733350552493367142573706155861654944076048186183974724799136043137377765719996413838991991528526841114973935433133036551507113978012455163492555517594851677755785921214995864607914197190829185946882800936683413515399646321815909736342997518373432399562064109881739263656761459438914999213685365452339061562001359838718413163571939410898830174657541392492007565252326793453418213473397492669467531952388966216687239653327974620788135838632054638555507246673952460619825890490638587101714465751475459672094370888342757225325861847790486566632752650631899255894323532280300896548830540412919119925487988979427220005343623293497943582396370030284563521466833075451112234003468705599712750407663869374332689880840390533882822280211803061087911955870654177058247516409638843063163357122135330399628807405161853472846460427351681121020531228968240246343991374465934081518969189995413945503230324410384273628716219676079868033569020124896967207497863657463422323898281902054541354304021323354273688997032647118997549423379308278224339045174271562641122699852488347935946106155028844877854925323006481479898895542271556927338827048201218887586353483965960048306183068441810812783396117544891275571975000133546048057422276405607937420983755769851811704761139882575090087405644367384180073112556134406803303163093074734120278399874459353839475692005306449477747572474622819387076669039576500938622612585563831264620432158450564155774855630355372756435632708373429719859625262092735654753269068771786366137576077962005267353012208445465602950162418821217743968058241080576639950641586422442337257111045368152356980332218769321956164965902343003032324336227825264567522402686710122741206315268573501816505735830374923635009984576176112237491653647951291169100822319861149189627825076700450589798075515686708231331131302636252778936212230056507530382688356564423090041094530964339202467757996226172791732781902317508120813540534904441440775566963031274081938219304197758725678334158573740718662808437234754242158505891392255886284094814875448036524692260701796781693635736216294750774886481893079721060492855806583300561607598621869939156439203563043276892461907119736894421247753907471396924461815416281120770013548441674934755893487769890994407984510565197742529939161444055510403460258435425603454136596619093168199561779755211257084933841170036681511056329095848744213910589172575490606987751743233178460749417683243911203266524108043925041422497886475288893910013686674207056626597204651724506392137166800937214863418103347658122520221312067881506087335094588086869595432503073368231111077906899869221140779398804618574871059707566454436020520527684386637922349343451772374007110603178039655939069592942100394100790825476176236469545033373009973443326964934114761781588484678504032797805233821126116883663943712047896542095070586679840685890821717346925788178533868837156891679710211684509860949991445480209458933941250280608570827786511266431813764336137347165939795961242556995512083649015289551706313484330018760204654772016264359157985625755566230305474903813191839738713722224809010408119119256003845756801015889251920293217985191139976150741092352806088705959109415283752297126699936841841529200033065051431320596778386267366655851091761992011932960289870781091537958275375657372009871669498201687842084514099743975491919696923078641710329519652400718992996441737964912570107354598124602032073017682853859197300189193833728299076400446337226685569363721601178412249888812881765239163012419706887575361494867293198847419398231236844806544486291165802964823773330419111943731969218499279989745450647483554114752942273225124934965387278637567787391437675161369216972272819961775569780004562116515510226980435225830492797196045549763400867495599901526479647451581435248613573097789175712037579095686666438809438557464722429527369985392454584067386354575514252420888785616186246161463929815772610109183769828394048342993826525989202600103981170103586305574655715591553153442736909746342123908996242571957824308468355212753148569374615104034901102753858281463629424054274273914196962703529979366623010892724945659664523352317049713385986713115354729039896671554021477946744199967121538712931175202185327708264032196430434027681121688284733717894067761626538729982003288576979780347948282718985084081461233072227178372869177061280179608951449129650211358514479781556717093280233597992730086323642314130701328349422929570044747730690659141347254318240811988158922284470752153642914256721029914001630750685069806345619157787477961139522217347064556393762146678390990781798051810572770832008188654897585934033566173263392181902817964555505913806322023487480864414046554198666515199094813776862650725811237444700287205278859455839445400366745050065267271465080213084036546679685742986665159340941120417083078863802658779647817409906507441349064624140105048844284468416373235627800481037063684256233671040512542264327164674166367846666963648827194957371997699764498430938136807276933512961870569398776015422434331634283652868964957209014442836072160546753205825731284771056073384183548083956067812995960088352703883062834364464528046307989331674252818881545847332386471446065519427971460204004229813388430552073455846338010848270998759831855606604201850880509861451709147408235589916700864194668873734635032629479452764573198144529263482911449650473667628190165621546723705535754956021700297877971284132794680019810248792710531350893300984469498715053916931601516990401544975129981701955132970513623026617175172309638545161607235368006963902634699362521183945296842118879001430219110277551862793756807663330033659542039313789534117751686243008741970151311024194867412882963256800711643111166468123870100799811684202684134475402161728845529330174972099286200883298295026360255551046102447361328323011455045029497622900224824754080696827148185238149491279119424616389034084423610728510345084645669432707050573914563042227262206160579670669904117189233030931360357005912052717722396188933311419353711612386516145778861866316126479310788078715899080697517918629897282099328687200987794239760054479133122381552686861505981297500302172056502096099089419849772673909185313990824532162100454753016473219956790393324092691814336025722805683863872371449925218817057727428658448400220701039011189186442782084764256732158338368904179118034194216732917229859128058573789061631523969663074003289567158008568149313681414719519646129731939263157228918102017792777724517099676692433351073153828576383510839731120353071567586984944691651390487524018771797915577425487907603225118544305496091694491781785323749295800495872265174271808229156069259702585948986892750769720095239029978101118931024622886964271352826449112321684836021689536537898537972650295051573304071285051852515811234964278221813850819896091831085231997704622059797190250292659539328008317278410322663801631857190715127593867839509473449868086793818225663913834396966139355713279323257506796978456723533469223058040165182346466642105596912481379691472727012932547310719736545659967657598792679911442147337448201077155313688775114832827758691291533986527344841214331199989132273138660033153598298339526402579759594769714163163771772361481352849462262650996055063238145893298373882382725282377881330358573025775494705670081629689994232423678060146287980641256706932873288491098970644255811082348505210298750552582231535914512860921663201936794875374365521814883808754454811900955050527953533380836101143736065872589319568726680056348296692082865867674151462571972794510670667951386586337743508929519197997059158171799881809036828982990574472239349296635898598866284648922918532296985059628699521998229317893208901392970000975380721834541954215786903363989497331300686529965890451468920144038644194336844923179093156806876700533540533318738980433145240407562243197783745329606977145642725271603484468431349913957453259186098617938555152801358283518124591610627309775920033906685928846148094374746922709154147292766449129089229814097388164067863522610791031991480794469918613790642869925807814021858218000538981585244209157774028169774548490581895763491244503622214420426189585438435742290452953003112426063518506077906657884250200635447510055295567658895144755043771034979583206935139151352234297194043518740710345161215676607946918720102263932792029882292125988349271665291834307121189424872979368907710028994942889647569416943469055136468536211403270882857697168199623722204046736852652443577856641242357129978577425689482253905048246528971601236097309579066189913043050102020385448062429036421941632383606638520910201515508189692858337680342292533278575708647892250408479970088771549820376296654854976107028222260428255722259316379240101508471703433300935362019604924073497603305840486783837801794373433581525606676329968640040378582999966941128552076970393782645505948286570906183632593017800047334096839947326303541565067300979042788304668183331861847766526062856778967296644674560743946603196743560006035588958286074915587280340392130618852339967115370223737138017550468067388279576885282160899017228785762518024817911000172681858239722925935665497240066637431857798700243899057665942665870707360178556944477304776370330270205301224555685997111577242376706252825286686977168685220705947845375174501883070515547001130945537710509881040936108501714151438175682295132793507181126083917878053694595168428313095023150127849725004729192284732488233299024782724079649012526700347360970361494767522023126651405297313826000490993193588651815768963861097635534618344940364291349412597019155511372204303378521315258207867375012958211871109415861809143628454673112300409296778513266717446627524618354297181207617605124013856437618700528623430581506864317938252851838084306944316963689697946049114896029206196985677057715251932092569730393980809649842509316851256374598087816391264239494215104484367104912313347720104297806653031290351981029927049417521428908783601130180741197798783357204448370058641955245231122543864467141304138659452386988647568317583426433181475624007857841568325122762314659519711177241661625337700813694108965861465730949393241141272102713311859183245279553684774054976964684245812932052956493317544369644808467911161223207424233998237499132413788776380820512696540412414391944389132270610511240904475985128257845528498373377721259406554844591072562600711369254201674030171525665988400826950164247571094669228001689082266609486501485628062905000196422046298428490263889538980174602344701383350209495000785871977936034383106381120728735619591503517379311193670180919915147870286978767341387654897969498519576636345420941704848680775642265391482535696445216322816490232476764604284394799768880638102125712759156663684614818218849742455845237182949624898893558263608818033581299558276563111322976671046157552963987145867161698518188620312234415829858756353979544239797379474063525258366069474493149528177042298117862548058847734963451785373643713841178821578938291045445731056454054062534836196051821381879811773739503091560338262639103004626920874350217584570321327371048639736266411388964177411633063121853563512941984383070882936975703692827079487392263068677002097294913264890670073026377763723273622483121691545831655433256576374382029131491303009054387620658414712379177679191722362818813778181935020011790322374418196937283008963035868861558671162684242768292489400253600920863766614086503986784667050465381977121182457871512076066943758679319941863440020587818990503436292202252737394952602795324413378721960048228816035576127730276408894536596515907407436095738613520648892175099126707234020725729002138422788107391806348781006580417447290960429786792822272602279680039915433685324036337283926171617576091793939273404818273526340917188937853006002600520198112999527210201711445702359564294155095592804867636080251523113515427243438646764445820518219040977277831328076465048908204008762988745316180433937685677777156304565098451291683130869047308246703007681245119361622210095573136972068756038651957138771260462592887083340643388847586446094644033437962883621387117245708511819381231030995813810755849206063929516946753493105496646879851535067896018571744877550630825485384720001178977614984749244769112556014806840704383480833299040048522404561667821726296472425743822980281644077976577336893781093630299070192986953257036022202471141834975214107880370551743852685962355716907811596268800785116956464315138462669851645981891740162202459116303885945221329682250850536948416992070757366450779783360681498183223268458674722929948943278883494979220001209990338212175076496913989458568318687928018588322985043233501824305318472940462054231287899295539002098478384775565432555594490238016702954000243215681864660140016713937807232256275664535556765134510958982771875288745453854339688337772629634041259664114616711065223328196747478245107370913633220271732398688602059129026612414226970598250939634559064814717520649445001689595629512572978630893046146284731528478775039949096982571501356641005246321680193150251339640960773175411703239660118247856531047243383318738436950920737815106120453352809262128770660293417937416574452435418781948721624222581815496815742767224863362918306371893154834214271803548784533567198874121474203222027357716935812221586233960973090426829991184750419236764506874736091258512173916642217527947424217728565594555922534570150768155961767841461670292232287006923924160205237788637065891156569841475879047557861696755956927321539060793341907542305378496846288050707784278809873573104240267319800237638481776009552644288099376531551117754978469410026175303499717946179136315501165858975640056418162137311346074456169528096655124948607646794482736982680100222624021608928545655575713821930331806486128022947681177574103024621715186632846816880499095308839936669725494835706188950107230494800020015623483071215562313225105425504198104802063574684128193516750451296748047433427495750112215794374154810973084902559476957979314620799642777653603980480961913156676686960690423905541956446863645868200245640089802591072749137623193220844358805315062634344211499978812153923211142904773826997337346538646078709434960157280029755300073382613509541979469614609455401358249351133443459963269475545132857287146418510408265558518944549596087240860401764169009907981878691280089637371594150410216058797641932837142209572308055169886491371468539498881430857903298588486137652181610043625986108002098477257248578727298795664204544239203505061303683851589513582753277335122413061028633051226380480956049516190931864878495459156914597454988689187168905011343214060241810146945106832527971898755789952485665389861001292768714792210599615520331847062642593521195114116852743002435206001167236502710960555594019156040476479122593157231100050029589989064513163223639658682110558514687096518289465366107867872618654970886409545134339617599218406310294223695882679817069771108145801796055452258161879786496288132343067106830513694871016932612828169155304911340155741318781022362040286738597704197603085486275537665961269095251776906668979803630505490976582667803649243615007031461956136451723906220733299094891372473029198993615627840079723277202008096679326535565862716484828636618898548833815765186788179086908635867656732313304897229873026086541750884132413531577199889635040033145953261541854565486321341362490212175209820114485259128956518435233958255115081714935219061248471059127469292466685209851529978730564785909889548580303466192560716166794107026307545359796427932352347410560090730094444674825769222597182527237107636822872602381961069755523370235523150410047444941165333020406443272581093791929634480532847407415569372317505702181223688656130127027375083147136754963123376877029951033561715420442326635477250963857248474979458371613304216197157407838436666075918455804512902343301873963908898227583499105353538089184721184801186311434372318441667605518291599798806867155104029225155707375190469797953490382967328687017285623926013507743312881725235867717332641066504962075478475672969398073718563609962116748874188557370691177177379984702441025104520329722949251203774307643881978224468552056757244966525552960075623310783926073216772241144105820402262355063664861720104389068631039361940241034207400480375643580718854644627977752873804247329943519773725363455351425465587058097461568216483938097663048870904417256041905789362400178174014687711597218394056758497223782312442583779721656008625214402887764825636910267224088857807558177582632802609363226634894282655252309086213213858784866047288913332320154612797804499294499436477896934217085834341908610877509630872889507985447770503120974131819136628425002919630965180084307158428151813332100009897199211467144314220825021151445475095767187887158956331050934898769975803694145917704084434294087664697571685978828464929973491426151198493584969840600699465701912711132158554589412400544177037289666057930222906636002285240048934498265720727276459930500339132006330437903544174561092582460195483516977562658895401093703608562296102957497020004268104374531726170259130321125217816635781090311653700538061407121560958983028983896233358438311345631300475172816157614792718208238435710706410852288777014992268449307978666811921517415631058748015588749096381819629180605240455685895904901476049571174848524004675165930854408252408159820602326645475955787959862856795726474147406943760428089453006594544586940314889910371376081926212234759341971393789777086564714013774744059233992550502729287630518314596567711670845116410698460038007609220159590492072115787012583697875280307327610588573901178247083116667200051081655087309044152686844974289417644799777765265580596363654996143829999513679380509728524875465971441156879900807537572780446169287303351927138297837130577031575629038445460204261045552094085823760374211386787473146865103788096828576075074494707541644949710860612304515577412214596909668522448721525800463035681692351308330164022384270254410502013768579817277930134010375359747781489601581834663278202493608941707484319172935310306397597074787982179965702999413570213329596520733730238770885068035998853606372431036375557116103785601592960700354308273147342014952969322635532338577058289416647054897971883085739373967035447970527832313787111206322831319482987710910407729767198025704715281060782059927938252415975102786056237959917645410403156113727699367656111397646791773632285988542167662123118071066843488085168195151535009299032593743460163449869057211473716104156608595510453156718691904856523865507551345817847482576574646388625071316873423686553767768372662040453550241277816271368984465946119271141755298879972477747724439008010317464201184647398276362047642741759804954697202704024162612639948520534439351074737982061014140199900252059047319133955930369472735356487713299491823669551524668097265930066460431331841221334686405257296729685949469149548886324313159848990364816358981931577141632772098853140736914147580557030219390127153580583825573113423149725303092043968414362499130160245980794897229804522724868682665506592612134228058691468582071609861398836812304770589763312443484484287614993475423203860546103453510788424129892566025859569430715504967724604382901935979221324144487558788975401354830356109100060560246342723090334027288838804346783722444001154236557168316225780580742610404794573126704486996178909287328354347416388519431325021939207998472438088353137884642613925816666226647984050418640043440053894175498107578174301257935014814127808553612797505810846968877115753921046194973236498795774607364135825942555522048671521990567236421328059306165141382162411265894188306701283390420294092368236902948561915351143120492583684260136732334906355246184262381067426678041415136242427084228317125242555044683228076074365136251907934942438537792215403028606692065612568170217940859483297012850682115006825918554399042665690593748691277418974139113897062589409897633476115604339552849824443869598189417760852191388932662669690978766123250599539756003117259546410175962316560313485126057946865121344921819640950335462510075252739115128112209529590475173075616197790918184977841124118346704098950014398534566676849097234835500098160931006887682983248789874898084895030645810149993138326603843650031741210823446819769470166733400467306408348819894525724738336291535346192575981562537688690491357860729809944233641784632769582123416599933080927361597640316744751733545330342569034231741687180329023221709611288370210521774636623552398165610765785629994215462723312026541808479308923728355145587149379162564945616601398069474350882557117199835814490502566398565443354873443468509896317872692197984745047452277145573929199835866546547175337952577950579046197682339692827649062459907466502365313696801737882733922568599081540543526529619788217993145331896653007265240283578848174066509099568050364031468581388421077390779141760410538440111709329501308935799237093283004746284314179949785792072652463318257005148520737889290388408749440279441331388961604134603268915810459803560494269243421992377834948075581109886767234926978556478434695675144163041238585930403307630761007350353679571850080793398073546594598449669624390241639704671702310380216336964484026133860928134844084776901313280502926013970154575560297642798927197232764725060080843306096265611873678073312393300614035907555070182894759180589615425181662494719778524910934630092022261604425680082205127392795170086148028870122664808424081993519132891402945486392587840525821448877922601857182629664193818028558461553990110747566438666346235184119654452294135782372478591560180928759280880582736105383484384079828245359107226702339699170991292071734095492095796574362442564973698584619594767076096316521414450480126987737305235626781900880515651419682251831085177058506719107867952682990319202890852750512456883312187246716651392191476213543839440731059592157953070753473475791146884328365201498499085026185016291404971792648442788229955098908317014453739293755187659932635369067007108660492702449149831831071359252891904977707563193512165583874024095140253439887171810028770061190564103849923930726069655770651794740692918352443926628630082047791955443389253840891050043060181728674568814458964048288851214392991133850737990610401265321253671971144298453250543935414797387861316997250128620893702690201076923737472263213412271027834027042180315438720931420955063204198045710519026264391594391548715036731978166832355815105130621153487373206249859078710820033063079890678871885543432143745783668688881423180048695270778672898276070208774991502279068217554857653540125419431968376443047405970670809076355222844863237178517618986174796870324326753108081557800359129914660006126387000061365027406215577275715559523527617279741129946726867945692229863800920191454604375440692455509919625615711510946337101599805919861861224520430294401453881149235714951465184030853373232246785014559390543430294147344471599619012764961521243291632426851617978259689594412721499918194229562923480209083271563221212688379505578291013839648278240916201440064185695051622367096240573809318750202424668059460752820475736536894388446262848416957130817017828279087901384510102505075956982072687305597928763106793608529428245738138260820531188885927974836107985578625946246462111349467178816989001880926608494355475715313157962645213706041889469210857706184267206785346058067792346168183687018138292939578089752421743006936655420645722291080305394052903271582777375479271551377826296373750426888964528872571150175624452938592431817103438353252854390848255333113994826282936266383300963465488172579850450937454889279332076393723928973919333607293780316842025996849521390110066312667328047307946135087206324563314463582151653362182280633727309302547846833949211655251948411173791501827826975902234947464582314695922094187777419599652215815901132080914877862155338472518537137548978064487531442785406471194579245385488601059346995936445425636535602058266995116431931031051792121019114611106919088282324249534474886625622837485820123564601732275445920967694999892337530089079634678251347804083317873015690256028702138425432798968069771738880895979209601928283116775953935560480690806565768200290562435382972616457095344312966184665841933431875078421933513708689037586636356414126381874231399581165271850742904882867949633266459620635129138110832001548011512740536305886298460452628044515793879853710857418092056121838832347435427470901521080428578827081167645031620514010623938672652590334395780827494514067207928910609537909461341736773861431572067151025728877075463247566315869239909287826294734577644055731320141769705677372958956758705663704006904884399907151880071051723285670428923552415363883028876442139941249297630049846203516221904438417461579472075062064561195313777969190808885325895969670226809044775988747583435523137357977329450644637084590827196353407517401251859579598579477599541724278932285174151048528750798566107993652511417850002856921851450094952024722113303953304423371303717049032793638878112189136876901914219196005119380478422290970000845372153589353539701482726840927403332349848726123737669654438732971158351998017050364745305806609472065066235392395659852157565171834497872553978227317177467963505474193743335703383548554899658182420195818587070869354626840130190889852662623261877761569623105035925617914345865560966243607433567117697434096401323593309910926111100494817614868872977607523992402832685786539267206864929688214159646749983381387097429731685946499834425656716860231541622300624221955175967553919822807707106713989139135280977223331376591646463652176663041284926477568564104360793728506635453855689707924636836363416229089524988241792832865409350623631869710178296678427327131792142646133675538519529644400447157822606269132563957357764057153355436223800680102144618638486259819223537652230291167132778443124584320071697963724895194465343186575495434318287932603138781252572361301457579932570637915476160676033377714051766547969657558576556359015465224320814467614705228625125523517271272066733876496769586780764176944259460448964162241530533823377842195101094408454484365538610795465701795754552190090666983641949239667181788458463432161192673408065940765480201260815951948602778646578104577170747048637685165526345481182920381453019650354367895795228552452270552999122237202150846597774290982560244817987634864977490806378135844239398985975803098466352301280482015078449611670314175572101425643388477980099537324539011810564927594655857864320745911484506264650963045018526115742391699438058942773129731965299101179368858486590605726767013743986978494936343147097077029616513620792988567573114961828597772004545512558584813395188901448412711563549909657822084458474736033500637949051364888822648046838420979782898709481333772482642984347611252548541277528320204845811536586544061167619008510920705818593250534445881407743199878477299892862530717732184996500021106185252127497492269467222437143862174856580750871845929589828387815239023083032540130467036707716256245273877864827156874020647502568663672588298121733722943379753756657966253258580721484415528743679730217145925721710702743753392769092414402308089775311303615787331780443546682559707808941401735740419990452520676176274501397918059883177794365988251095729421943484023016348754035759488231212108461957721864823752596133063355270667067240754592030781451610596555259479710253790612547911629113220301738589726318007408312213059086559325597872624224574762054954650209056406281691805375941436675362724485720185465976012901302298226187234381243303056335959473886678261551944690549686365579511087610823680093999945383465960067732622286326285217699213296560401191363064950635526388869784233364530742399152379875103226699590810232157805356243302156058581618441424757326912446007420504957446400714680707031123002935530386300663372428986491028838921737244678688646055815641086793757788908123432749926344459584033292278693814308721281363066751461321961996555058354600215927255464892334166892598340351675586374789384592652268266727464930529808756346006731441721192292190937574384298538684626014457084111580849548144546781685993019753603666243857148451967090184954299147942801737900692652909451835493975726897022812461787479347923828537943551666380156102835819927762328019191978941784074337447165755431593518485995675767394344284845637000900766414844933922523816945215533511370593237294002536741121169884038700824508623705363255683866769834096713650123981116941054535524978351961848776194266625928352987251765356478721127163727587715595071612514417286937867054913616350761954347028076416171675999251481832978481080649551630914291707847485163862165444627829895935356388975067178905824258805828196006063864603919522262780226562336011132808678278442814175249090368951753593248764169852854455543284933176932365559099792766823355424972379336146700039707656516769044682711169917328767856271680994895714843757326170800358953564103977609075884954913528193348611801306056420911677516062329687049095396979809255257232299057155323027606433414675430531283866040798184264188015255954392431325687391079592207585511137095899879423824509742200182197824757771701664947711008754551190025602593255521224435327613407597183885853756126069901461433046235994047448883678718369631889225295871249120943953976005390974527555783262686889362271562354549743550733824441844739276600710475652394385188201191801875674864918651527626277950108848294853179769723475992324903168365107811599205172767700395983196701334520459277718521378116049405566570890032416394434848039342884033661976483895134316419065354755976811074530416018898715335126725705439368559770700792279562682288199985069512731337309905767995604170512685123658795384834182785340234487087968376229068153584232521077705627605876448253804567844056020664438204229764404045534740948788740403997290044091209760855266330783415093334254410757010257217175534002111094879733908916725021841124197731659392889997875410460051322638801743636368238558228719004887017974603317490009905580019226221083115600033125650265110900493724600934021018554707332793761228746362383493619073165410992523349235735788873166967921961223248768443861136619424282910946554857586866648053625047055790753051600553330305780501190203258155722188941900259166560698037387673913917787191635093038111718999406104103548256623276567320249622201435954553248747006341342235702924578529622024085323248634840818469948300366829712234141269528106429828550070023345326538440104287366153630728874047713299174257653136604208141392313980911421223961574182189805050493664548067141812426262653988257903643922127487163895707741008831565429274230054498775324961951582484088826391038169835052552259088613728280286221399102970184649944927908147231406846466655562777099607420900311439659683912644030809500225637711608627419172158049126606428250739589569742977894652634103237134486663196990372297936918117516261087848599205034442889738001995634554856302995729189693036225015771897237244238725958603678785709492660976084532861764798214139008945554999978175978865184790021599021103652507070772089555930170011411989904215256710524451794701718437987304804288735711903134936901087969253981747708754238251499187722991381266178392418778442482272472132288931784429549301942903068008890380309125493240375977236512667173261209190179547940639190160270489086638660190107871548150886541439357462176345256457362432454861977287143630392251938800226067937540590322183936800590953763229464209251905872336240711145405106329803655152554048935063271405348159658636327818765335950302363073045137590458024051266030163332481779621757758144626472491841612922667184039987232966718759964813549790587486706308423759657171857024798456796030422106640303116498876801428228201776854766442599318013706402321529095217187160073319853417813005848046172153467246243834804985030910024124831823977621220640803656640974570699036588344383987561689358699579516408836368431085884139949923273816296616147845228310087340023212061541384090529530202838181395578492963516209402627083796711627222596405307407973082791251422834391804588145299592043029462359745379844914978460947421098973623142859792419337426311807072561533339712132154947424260357181494382950990988611257944610747375216521456879831014853991752770410161164434446617921219189204003244449285959759345697725437391400816663888228731428277485157298157014905899556122861664407595739445454754033790667558032073092402579957325359872722814249233388380229579490731363410819145948256930173344836931831937216913142472463813303180240317459509864083825680824630298299906704415729570360949852126972388781781106892928466645336871365325908813761470723403906759422696436743125954098983973757827810091558061958182652205309488457238040909184645525668786502803649419589335188206158953439370446570825638072771103276678205631329512901641399333832521624596415074332596494511172056495004274608628082655672339430965598185205042694296895175622862851128406023699750347067094366799989002190017523363134637885789014287146757355076037807713217464278828031623490904357580628595443431918358031054942751128883315626001912749423140607070981417913334588818320578909544739670766291419466983713540816103469433928203913323663920210840881363934959615998529083910634876090628753774066409998812797358767236937304899535622452876565270996234999497285807554766189287448957479957241413578078542684258375385665499186344963706897855209154787803068535908183440132589736977089121713394116406388941649379286283777612887940222511620393078491756016700663542160310376890813969785975952103373126966142582034295636675012929897039777339416201840544320811338296465670178116106585029297734822283901296461263294451059905355569510975864591364943267023069002022065532400593022991367383873046029464334840840396692654091027121831808385039664128896010572603462535323878771909354106655169264124965757722391116908049341590961426180894409334040128618979741139932359380032314782892267498776922612231243172667175789310996755213178068601099648890138311296459611161205981183698352049329551511564058141033243830423865955868057865835647979992590977023282517854705222275319550966982734920726650404129654823284580214454933868130265826187475323212737193181909886050893087930608937843397914257784216492137405939145343233051879873735358301928502555500826402923310880894286264719957881944452079584302713956041190864658480383564027480648323322217981525474931071963305810853015695861045847008973471426724688467690940686880650651533840068620647064480935988101324799261087815302648401713367258440742720791278345524223296620782998555270083855509792824289406716614340290483755243508568826928549770947097486999017014863261111569946280889888362478603424152467024949134391252360719216385802829368104368080399175099479739158316463067977347272380585658608503010107554247052082531958635879667237659590988110719278789087900268421006768610902830847794260707787014683753055835826444840644899121675394245418930100400725467408912596042535322656444075303961315925353341741358499062380206474510501666216162392448506718787361126845708859456011384863780774709144648553284184792908471368546596422117395015402614296787945265944600300628432307924935059013230241925333931337814732311884997940819325239388080846496402000837389736894123676034453559381392812266760329761014529956942309274656072187848460999454917083080085679197571349422986667913328418201069307165050378878097586389119460310349173952684051092305155223410266673560780071716772948620612527760123539706493676863807691149210516735774323860043609502604997374780118482209400834161399297293319631396446123844607765827495033770171714016977373612278668878480434227442242036481265148804428744895342023935539428329581983600905678515446188970115215753309985972819643185623392182713874664671699164872204661448843540626164048797313963627731068504173399555904651844868165048917430158689820329364036070888219656324886356663652901351688462015071583483116595691564332140615376137224729211963519824582467970659833226658736154548690509233898722972040387231965653646543495215122140323154644945246448027279359413210947328664468557720919812734614938645311948986888354190409828341651199182860548912358774730200130219719671941464219340347587969857631443931317796758566961618359348023567317322338900463849676660831884978128013785734619939081955005216651180374827563080429413663870125573525861179343255769646606996301282878673210956774415904505300486952991213829233306383567563281915584080103052169299787125037068962864481962495456125511324260342559405693194704212922856057370372749630907835061227503432496338912161823918940715917860139722269029089165472700911696470873508187088581626303678200284805353325126145910221223967521687857592972753093923216183697919477177495102510322534311314355346352226177840696410304182584754719379152194551203039508514405636964838009079774237963964498689436519056720047186084909247055431465868312265285321568673198702536642655388648338288050655354856609405886408450758764576813506217882549851085365018180238371367304688428793497531798614039687160470902683247444433308093382836371927405122429624991637516749215819749215949222886143089854340687515336390955101180870959443913105959173995401012523533038790277555901228226437680918992746794661814148217347406639438951553203310398107593507133692386537198749960518586114420005373405270425907062457899557724610246948508061151064230054171186096159148082961803377712720452933966651384700962570949971095934074311272345140938010905106600896080224979241787745908214018347224660998373629565615306636771331510860989094523046062909691009471802864859922194092111968764058002472103615223693104481130213258269592478845874402651447919769961216559834889398243031543178943760206306662269466318298704241565034834172714659432148565396395739434039578748533247514693123704714295962494366846383537595149255914722685605148816130361717378123716661433159802175113637203871479605801916781768626692480006902768364418623646619901966028766655412825824599823442868687740829605494819851580097816888504068456031314839910653006873847865294774191001538627159154247455457492697813853195657795789445999655054395042359441071586256109493443630650768460934286042908041435837660499108533047133354430374111352119532923549430005102367510822125157765770619174406549428280647771263773588937909463636601476479056812450551980407927762246299905970850860628919865300878726872270387689071979815342902113136555557312106433602081049862498611020938170345039148681942108751319135698074071945917778507094218498589240260613705007927932702736490249784895698786033844398636149452465760661633462487154366233166226743733182270687120513017607398004459116283167183756896922592430999082183285485020434963407113535085342521601159712048808956940232350326611138812708201320047225015071308728886704704743750320510978414379640495521832163275943655011519133149387315758097600917091888009766307036379563225388653742937348505056551453741496741612655806757536856479448656774895323013057112111391887603533889617861854144308423707819244401281682923138794030333432587867180463889715828334758605677019833271846519850866353427778570128649139032252822343338380633408055412227268457061772075386993544931263971863689043804761348420943621228682257600519771184327555617976525275085854235035445733981359622974469755696245220021580311043576338612188080058913092733921346397220073277728657281898259964676361168725398644173289986720824646353920235845004750931163696266083211519976577735222247661438085398118823033466593989950544381424149070241266912425267463816264427419884662145648926464375941789090657751333298734815770362603511104651636706258208804122890898566347049208438003261784912169537789123660063775676384480582194957469175439227282757913618743625187832961503108288688721460588848175743352948509603542478657791006290158533449533080960132005503747080851560922282243792770200118021797698094238988920566422782983562493416273674821198442168116556300167223974085770716441645945400810395220081370809927008214001345652874005449280029715066318448799062805662882166478176233674287078797352579963596666406341679275529061745154555385066965569652647546880604434957215049056258194912832661307492835460294364396218179768574724668775899456918624412742580232419203787414412164360887663381048536024663068573034716069046110317213828684273076675718566079664474933249936214410884323127436099574811166007249861939691675365333086814642298811523767339471703843179121356440038704646963382251465784239930430509030969066743535345629196035031704867642341987054898621824735858467396841323815666737207337596733940646225224407605227305451642176301105365807523325698266158123770210863555533104467760878154404325150458069107940279823454941127947020519959042697752005989645449780741730845644209148714899440916001108674703499726264019123476108887980833837796560095996010523080413533377160624300442914050708558140830153990933481583637387181803476220904815757146239422650275761906305341120886969659688626470919754081228428429924092720180858383469608842258322511241277059082653654369924094737650434788883863548258972328735140748197946880064642100961398094981252790552630022639786218304565535845693140363293276302606089319746565072873354076390222357807813186322383284979136653933954936664305120962099247889886200465803356119142633214737810025881279960690600089394056124492231523305087665367334667014033329534744604927673777265251618709991322116150843371585594894006633811663453200815211084841157388225350293018195406142006638363280223424896068386362217960367902330872814766077402714936504590364823853028309848777969918579244000893532976243781754632437707890483204033950778084075379237536455758879672396717593811351532813647749219836001859180267865693388924310388276377047784022301542150379828072192594571826120242851289572891800068915325923490202592236611886081342602062248405287373897044626608019966142031353904839931548828701138472031975175813498039200384418837755291105026170418807799960485011109720820050209601622218158809444096557989927528557628323429453510845084049307340739697097026395156634005162669696285221577299068588863783263118381467924663863036042597905050701254514027472796090722687810771391727667827706852739481426595196021784609370910125367815245381827408350617490315442448636552257215201507438696677147612046757137048934229431276393590529091185891247923973830134528412321379943935168014562532839555893688150369931700022179260316952162036582399914019886821535475587250260069309619573668783395125753932508040789844970317343827546087275459074497748788982460812289082657518691375048767121709863326969844182808709070117634237725231169898685074332673344574855320574955730912762014208305668751605099188513623280402226629444929334090582523373414937101480441631639951277471237787076112364821779311534904275919252484880535919348643111878026318111079186938726102536320943728893060022418687974758262092590579333150541343407377053574765000226862226196517028182689116638285858787439408190890091847920547490394965803353697386800676843641469550194402117459594033623636796167668999370018138875241255784299745458539822444632682314441985030599646170182809517715398903326340078419220775558675254351797022293454907284789523275874352552609453937535014082916806172058974526263042437459890751055681044984399365601702935487383845626687519840326122511005062842609805789668758478451774393608839925964044519324546968922545407839776583718457251758400093948107016181701307489795145931369450256382054606102119886411860976801506996993468713624012160233573419683423819255825115930130551022972727327234914107759575096529375231577342807912288918658186293622460676699699169681502790244281242275790833028689519878963240127939225954834827408232710481430440348362186114771116578077248525311349521788069305514406073721643680545382973595984631972298925675886932546087923055046324719531265394940546855177798246596583367904620529629297335441638538907835271708244750891116431124700409729363270093125877212614685556281776893802627082508689877470769352292858770892397169238160338401506330867013975311886469377467736886275287230733250127547800769745489042213108132275412689329489231303123560594163067077979039232788848008793468494722492258276423115244643795648995068199722745761610201669657055847639575260192774297803033258644975365258358484906454623619613612601822141616028483876567535912366352159386739642485452932231103643740455775523881019430354405472239870163947340706470272068352154906110164236043876403669940758213020529796005044463099739280469571001140665500346832387474618207014419881842090119129601956383541597336128340249072336559274472596326964297814157616219461751801222775147331307522136087174960757143456875079219652942277872463339839915389492184816829415041271622160925840086251246101918774506502725445164407602094807132547553340136023577045392755917474736217883222255904171502647572212010735954983595461613655276101007978033980054552231450852595884965360597588507119961223991351489841054276690732794823777904505692026776561895015287448157447544391989421959847657408364229201665481596938437162023493618389252837204879360837015923458362678551970916186883103994203512045397138541806186421660577271132716593738710700131694148084723330545003013281883122836633094377060383812975997450555790917452049614764519610484137302039181961779407557262109231991867755327764025882830675585789849590478117213292095805328434309294999254170882951098843021386324067120403994322685041437551472153671997788858708630204816361819898634187538983071024518821823500116650185334943568220852928907948794692716205808064792726218346043922065190451901599711571234373729294050331448178126604415154999921445273491856971578637167585769371040829295469850381715875204240188454917721193573179377243124767917483391727217330231974685515282925360499016583836975662043570561497370553417952959383624825027968527137045159394804301520575757033957874699912083828828822586732638101768586998054483853037104931613306243795782922580717617995197338827643867100803016720141197834504998644130126516151180453004043955529774716670110341971723751045364247608808830264974193526206946442462259926943853592914309692882697894456777470328508492891691742533553315837151153920771154706308087362091971129187782905679494540679673705568524646891645815650821263366839186666350759256855647229756422449998315086351644737126693570286199912066039215703167065645960177609872280483531489514998723905797222354231202084235026084796138995265088359954157607381197248062152413645407361244696680810883465315994511561803895221654388706541190959216517292878318439085990366139403405913312864468231374847306454425673523810371761579932163218314103478079958754974005782870542524946958091828336677052244821646895278661363100589547569280699674408956930953843464668170956108113244812129743433063107697486668611667144377243564275859814137553153407585278971896477840032363628650889380553915402021585046051574698555686243791628908082828444698793043142399795109052262491079695245961389252858317107614184404118124606334342044034167803347380560989032900311803393596804255264454983309092342669837667972026143800047923637690532564915538653298564477871375868106388377288312681235822870110873291182896447829077415445872686719158638194947751632660134684031797943981833842180531651685757244437845167087950977106815721294242835801578606944408219174044706334900093707387626613019471692468761121046182962620140821463206073493425585882036442073705995118169296616315845349833216637537065608554120290383987897005261319312863582739895580565552456975578425424483741307148640122853662227687787720854549493508210611467576394413508659461259833359333556699919993203013477836502359399531900051963467478868141707610888182861906857786986287008578698874059190638619719631748146819976995503728309873138592911644864946688857574416730049273836287700207587652494715318742645042067755265818203225736986136869894842695209131490125720132281585531469704306919788528804592387025944600699667673376906714826314351584142284039283011213283317566492559934471718642031102982479156901609789894240032249116344433127510387454158944828612821121553913396048491370013805019335162511020113532070841475831992833311428544546765071635566577933170287598521324911390490620004467388975320628708243166137734879348577082761334187549763950904922802805009205969806033158714029371423272693017634339392308554206098669294227827309866818167957049828933246874515366688156410379593332654628331107722682795650219404698983606518838445115798219083505416037907640581233668187403559590651802251493457391768308787315887223855427979893220830156274389990195918664419379272154173838938006470349278682844936192285800991780756213091712840637437859403156695859056203386284719712363953165917193371377445587146951955573331889879281042793567108717653302814086044220511308254539897867887504364541082123181589569535242059262680338958091134975181430822742873632856210564591729723235431008432726229680481820950600940900170794293737082532112415296312370882319359945291660765638430346803136955011154802048913017896319338772229165306988545019303217798457450523301610029566876667744460849800438806144053201489196834905234556201075431655352482648784655444721945346263041530219406695070475872190048358159681731728165296659786576823816193709797242620210980099092502736647093206780794804503833308388366100506057005845607407755348468142185196543444756802348241321038664463537857080079415898724805385014798588379933949519953467907969943592135833628362651101436888240566925551156642723268848733089484403306207239775352397222626891024113998215914219917292331762400810101257995295644116988344594246269438843943201497393702907041177349269671086735364577778114159795431521586654125739605953348001422687644195435590553348287951726134728240933732935530501011909915122768396377176300589861159719788546326352843092838677197070094438460958860891168521131605794249446942189230967609021861254542922101967176917450887654575293974407488080864045146407496798270625199205394291712469380262093075114263280816780586531545937397373651527094062154398643877683237957338074322818927277798575090007430315378583902250187262769959994182385070610794379499781502630256246382064845937436660691707459951392950737784879335952860918760130888002576312421564252123840133835704910145340685412047372987499224584814014999621588076166067094514942521241314992229220878392310723404425444941883835069748315759014690244582707077902501045173872267373658571960725298282956657261347473368206475606493697070188604475155541516489012006403445222861058789979464521328287811398589262189134124074173350468500641828371774336487758481322653370838138351215983402715500674957545160363289006066218318140929184184404834396798349763857687270161139006983181226219935579180838815674149393864978621129051378301184422196595630441351746149314164065446309573132691525734217307232284729609161879817199822830179219711904349793179207157115485435034884473235175900809245061429549368451190779547184713777098966494551791819522214220439516804363787507320250505559494547388000423700742962178040927005133743165911534950847268893798505254158411562763011068767661581769104555488380808142583865247500521142163454796556222526943197812393559905897621339464805093359265317752346318677551161608008792103804290836859327675557466264639131318339127089819470376827618152702513783632641988475800191932322545628850823060610611640750803471413351202023100580505370832699087484591495452933701453477422334021884324653507247903331463457083473577759709808174813921244073106611385969625883755816813853977098403773006123417079512708525570946834695153271468418952011463404765483130831041981188276018274008231777905871922295417707890636763215236113152393934371402224596976763338829193752517498985407636236020645311010905609771457060671865440116469625787196218979200701391612036292394941694823347706866891202456890384297501542276958178970321332841024611550042366684545607002389033017509098718270880609187744659284932996682028567832570491398752594593199351667724395982081332741993024832738997438338788700576821388196029357854781204227051011075864028918029056928945694679127282030686090393943379836831674892814692017157088346076950530595576250890302403002375653161733260909942389112501640091408915778018733337708086404065756395350663004951385800624898467325035878509832057020046977496479557648197797900325610945378778980060294363837629864057601458885833356461671870835248890735069693991518718752263210574261717485587699812240204242022701519109295651728747988489312637487423015533026895902264274701769336875295638361332605241519425043856379107329122975148090355204352075542469749192076056649478739449126784709006423455624977225566994757956163698312035612435285932968915075125413312842470470173999781949860274450352997534312362488157020562137289354435165567398771293744556527867010422994538926035482965140196775890505935215946373101728433316979447357948386041863791391331147011560759368825274008324930493576101549927574391508374204596785227143669335595588618457640238044256581622108497902549607326352545354789765334307333640462555277781282473808240612904471623496632893139673568623514544277603301723856207216760309656349922866767181464984562300694351699741164798862706306527561132164616213974400098625268955571933813799991519977232578425739985021974916195921756136513082249782762566532928383955643711693478567800249268968366015645685870374478864696659712051442785232894138034757050581149164368760850165887435883639040516199887962097418614657010476895607707792962711001057598639200247500977080722732300653253579778463219121151924771054060929230579684641422899330484470197614743003692115757976699359005488530267829835707941302857697485599777596269072808278825730804469497218106143653587850998511781996535696695006595419912034391551548985645881297904557112961503297646654987133220676990511854929455163601821908754510310399587119640518620824325418646261486020976483858391014426382017061466688112264478979480071180782191863447924432244939945323317822329494882255487120738234137699763693144743849428389115297581142720596109076120575455719996363786133551650121164071669869964589475471617878420421899859449550852254247941546763557950567684920185399445135929839356731834285258692223530518220953474843782780286970602568318502675937744607952248085649239251647678313282319110329357094816759859904776553571532970441748183968388423893663540932494166738400878945590045935391389723370827052405719010781401682165111161743835287290700226473926587834707519274323316658934744138924071090080092431757671006558184195366332705986580693205279517856241366906789274352560226580752728376625648421738138695271241932756478009808764443212193748308384709890649149794386370631022280826499113923521429273174726724053396320657977486407373088746659024451990359113039203731842698604516485796386023923283940533429913901575226250657307451082141795792538702123431785295770892983944124850407424339738324212408951061737289131391257433014540540215257197014194629976674407583958384103661058110571241687937290109795819254732943604505414525274053230873116176842339853301501701320640792969100149765830225802132018027222162996644452797752725100121348466780017829291372916405112198450962274605595558997227509100813171110860035974725179911414827683807705196831298443857699565962727614946465069265604184835752250327326591410602707686439791207581075349603667068281348928733614302874939122685590929193911498425180070635869288339642304202286162203415613842826767272365480996223487414008865914118086262076225349553262402634537461487854403327207106657843699334087457971433285666889684136040525622037537737070471465334646396678383808787732946168813857022812448516958450331484541673492853873262629890976748138103507519394378844371375652169479046174999156383011542735808237860614268510459076740108867968667726004675191546483223910181758185842413824591732831874574188080022626469345645874584886186963378591946510505339873432125295734963255749378567651913965398602740664295681669896705663358862417526922759607004732610454911750493203413789443847969450325811444855155368806029541241647629497878543005773026375621122920043009143558810141805361111561139542764510761980972153926193183996885411021211834201482183936151007107645518340194728531007657312585299882227735220092528057234437162838546313524527562762631606917881052210105711477952868963321226269454015058245019579080776506457078945564440748553383988221379851343811511461045728921707145557071676536276754745321154421490598332520064383954466099084141748526605704673693828000062748167171210928198947666057996928017852989434046621663879400109645807783557343102027286562857120419355201941174218014614696570802591380626233771719781994709383382851501708707733826741498478564063237107362517434562980950952767165551245948772704993938941266089222723557786424661888575633789833088036098645025011326605143068659680231766358923791109267599164460350265553082707298204242065209221125191557147364476343027700705702793131677908306210043699299092804665780079166321075847593150904233359418675039743308026913671747694622151443226846975251832981568535584009956235404022280678552996384570716950424885407953508795811037181982012902231812207295524383048514813208020555585501150682065124944763129887706598196079841980888867923977251214199741348471198973443397865438569701459598491316755587588067546760322253477741018609022472666584174186210263377492917616131714531122729618831005232582668756861542656420313028358599275547974448884684120064098682192449035807584401786976061686056135202355197372925034157408669924207968809382155098383005035669798918535370432612069004265200533689736481910501987391890182421803624376676233799939775506064926483155625511329124480346948124916315761917020359795025595124185496202927887163532778808402066697514897136331444350773806082993837786873600177661497133272611404757537380072542489372748702168982233393313157711237571233016574437933974404368702086619207755312505213916409182146338408264476659222483561321055435181249116523541828745141468904548009896641977765618780031741918282420568529149531308183247260674614729955538293332526872917352813074860829677338279373683108430883480570471307585820081297117821276071155620302969763805799278754212709959913079430386205061282127226878612275011360576962058586438112641095457858311151453394643130878455695907628559099057657870810995137820988941578308932884416707799141422492440076148624638468789832547253157740112406772836773006931437959644553416015654530184576405415573914660490193229440904268034702715001871306577294982856486316412801918754685200545934482747345150936225588446346711001965102352316601782765978871104735786427970099803984621647888669803824385620760422733605762418084752418715123587780708540150865490624374756442951179485578129555975073790496177096902755294571335174136268127774961215976650850843138150474262175394799638793847807538765538499705149273417734454540408447575715201895154295045093757788023093605878107484335533685314574505340661250264966360952795585881747503187628257034774493113005296249139048489527629142808714884510273929600595698957544446800993534841182570457535662594964831616387800529343240314775445101439582510842911836938317202985359692533252326788381157489041729418201169432510987960841530674059592968162331151533595302457917324712906157393133458328385166779206233682689853392281645951194888822464270249151257798433251231115531180602343679763402759384903196404219897367419016952195114884213972741149551768411534295946662752846964219567946800794781928710849752342375734715043353982569974488359367364510124822296141321969786636654420088764908930494169781944828134519675156228894169866806488364907765338808942751457880923902338377792526445668473151557778043498992534930174292627620551802325559517028433786254912415720556078820514624342879124684468173072460610941660964239619392776230402126892782523611711876992911690112111486928292758230237762486910889783721117864980714971132449986528839097748530684051872959426178696837486659347572739661576541162397329374149972373925827871281108517592606318673574779601975706939580830204480591568464207714251760350470238904398258647707297441385254141143471596397864425566381368943177191229752872297740013212362163391224344149643033473004677967841630742099756660656977383607516516765787922076717363781833548472372587625913577981601548388452787432595374507627711533383920767935886076079663376601118869922148303508286489892775566988076655211142712974929573476448113545177725666026547518064932677570111284312920041829893966123996795025876479031139195905826542013157246984597093362186347796550352584192191363139087384088669944282501924859279364306890991879020965749569069743475914071384555084918045742823728862017371050107825607812427221116926866757298285169260033074990730615854227602149846751902962733662159441175385569734340569594157298811694522447836464211670023375287331679851874002970349976035348067584307926743433417157098908792205763882954058578653691911543640561062057991852248242208509669351993682660079036527349451522073633977692675485322871680397220757360937167727812588775034767947938738335497076885886690784588454109260941252861787140536879894825415724234560564177946156248377325661942735588212811953623224522067701745171263264958487910133028606382924239291990982783274748189708638971874952613307636935319888345140220592425576645259236444947195679415856525497273465164895283160080508988737979676691710579547306191834979112556639020291464034638297130252282958207103678757445145847960970919290939249689614495633987147344375215764393908353401394005570327776819522103148110771955974776233237809627603519020785511947223646306777113011291832153400281112641422472452998783479657692623676069155354950131602669706753014035574408045605223709495726697307965055215129471959048958211900698686151775508527498168759451704180412544927711351674796346496387213722617177264563961148126789239801090347172398585747588818459563242350862820124052377220691463293137958580500680888167393137750982987223768912560904364951167394176400487766164305443449851099498941566775950624283266600595238887715108007038851140427626879956798213907734272642350345055861208438284145035291785827621533482355916085498642211279965557852295951357567035491352772675737799005009872383564180295975217989052584656591836004021304410211592350781185035841969254052297913534523682268256983170937103634449082387320065970461913873025532149929575222696166808525754586990122251951193594266835801334810145021656780453093857374205456465257355807186897508061537104701647470764102953681208942607005678388334572963331513609545495760663551688885375541309491239166285398701972393211046398274504539482820940716776538485732613648553540936188173613176981141608102304035166981804634626601286571469752363749971318345914328925410260214799436224313211259875364983978957399053148763312115481793654078413815741072109491379520351717740776192507855658356081134237813901111657032572047649973507472627380922804343087120175499132916959522767819665097720744064111004485783158245363025179856018500155605988382581921478924906042824696536733543496393029928351746885135695031721617292236588734539365581742408074886216479506270060891802279751195200967268379896000899935534914673693779083428041956029739138172498136160793277606735510329797846838191828489548047213397590396744044255211408462260030847937995139998843078820251069266905144115108795762174164852288896688987411304178745254340893425957358427858264473725944507975983048590238116902122883109170661460757092743177446060192825651613833994347149832146338332986016125497332122321669751721954365766968658710120970719739420831140603474888016291765699426107727684266869594794536696306110159255501527383570876799266702168849430598588938554276213360698686565510005148071843575984421085413674291776817814257846533205804050623010346436942167461067247875652390871580574123915286024347865376891356308039902391324465391981916511245742250936190745966635496441105281111784640648120066028536288394055930831294602298963946220533428753250474806404565697985398521777692801773735627962474300226109328577044132060098928515824368684647781772269867790769985616789343302807828171069864021201376406989244177323992107886841453979605960149322008982406412260660257737231434587513618009200921895034730890785777989817938012367043100703520748990510561754167968673342537068890719464720755936227095473562742591124941741957429292236543983189218683660045542060999661755650862824255640464569223008368109820479036167981863590230943315568914801048619267411201167674470246281903916364678244743142947419610789480364177496381689905848314346675640302243562840793962879071441590941903616774313026325546248901459992500373941162822888510021907867736800992573434607529449210491350190256753269494352992548142561188856157867056353483931610595635639245756870163873914355573144418362987428857474865665434290255156850024763465163976034852830849891627291608194198595511501650957985768999162045731483944136268703705207151849609585702843618617762430029725587016820090778887094928862839666393682568079571720691329222782582402999409274772452955848583595450125957594523611738001951727671601262147327729086055090674083493999808062990744241268091849809013507144593297969875661467515802253351325630538030395270646630469848211797555560668451475603219276836586963387864604306226447075840362422491313083508275403096703271194877411754888832520940330086160769102187001427461700561130139850803196443305232560122900312039399401385040681276487559789696508490854007733158502636249577914303023926274693294644571203737355344590839380189967428192405929992159575729761444271009302864798695715126400458046026689912444282481883385942452536869414889459004941523847813880697616552431273556635848596555009133388421262276668656854069773419011319960461176075543347922188096253033336190450751600313922860852021638336565966095430033872949984653045034156645647144738416660560320251141486601782713844411598239910491622151713356262742714402123706188635610896374675556071090939196668077855223234110086964569953244964884678682287216916595185943929119084721954278853524856798638870498085356715565268455264408110511476763336082145402627156314529932030030015741907362819766495528463798352682960363673600741987129687866088738989734000376901194183946641289202687513620621081958380053385088896034056717971632316907224231080786208969161446562257947200505546571813669833396158136434363201924837056671249205687225345633669314756815381215659761482502429584572043190176569185425154155741049730988430787029682536793334164081328631604694234459510716894822116981250395288067018998970901528749163981363123225058600737925956146646023490311915808634963314653290644113536253680517982227366304019851872651140454921787764167852364633897003631866733842723481078930762561439725063019754302755543629330216856833489798086744698158310037941450923859011689073470071790486218105352785791428663537618211044048153207224383731793657614572069403772322190792083761386307503823647430007162071575691655161253334150363233341200232715660826136413973194084315387204135015185845327934016745038508645708490026093123065853107703108318876538437949413186474855417107256871577287558279574765319236042823654111121816061847928366670655641028538547810987389906455138068931330782982466753497596428026468284370183376235633216008720396455622591602537897786147780982629259763432132589560353204253962566857045248928512677228111032540651749127488792131847142108458891441169608571962806215786536623461117291950803326525209830057073321972087556888687015896754270206724877873140616931409069591511409315408690493152619307352559573662264189252814849866959102852159487494269838370320472007960387180003894000804845625985269514781367084976012694715019086393251938342213526474555657880770525959674814314713392489915765234937936223193137051063316542390103930969300943478951181989994105091709799437253103845418809794629628779005871907444148638060370220260978252907005388715826326333269549948628506290765608908347442388307404073846394163832057082410643497873876098598146941796273750452134934229211517475229431077304747839870078104173562354720717466585239374076855024001571930124188874850800465860839108843950306442104566317414363820143145552796085719991195370975308255927393786804678242506962888441281048262085999431292681051092893905442417995321265783631016219593087983103799006242586116431117428325555306690632626285885257405491060768684421306392400584773369264323380062497930015354553780799496648529368083111329256663396922894929391373773688496902403147692053328747774540637815328100713670449250604927518139186554963919417165616496765706417724365784570010181693227433994572804329171653839615997044390476391382071311381310403039560075302896299355577699687606053062271593032592252131439708710736484571099256003564757963152052306387535544507584097756802409327608856840727786693566032905764151508536931921361291438048968229977385046977647994547634794287904521321675952812174367011625248019831042126127796295606799281996614311626461309767471694589686927935421005933314893589921139264264379644218380600673774331145604428205320034698644519121113952526412164641262877290471182071538757268333732811668062197693993957782082022303602192299501553892714325554252317359316622904958787973320608902057463226258984290319884579642690261650032196574110206213335942019405976991809494997045256457873739960561738026278231543518684569166611660083932654374166881601795001429672291401826387729474267665459155272327424986781630361290694976315413347126790544929713344448168907469305712332894176905896167337041865800492526108297765224526218535448361812429603510331429772402581848994558763304593903805407896322491602390049736409980234693423197568831487767151049295066857632548088542772599774324796214511206619675679764980860198161117852628196023289912101179059215083487337558205185892660171871774917195731044077939544627810039108932171852909858417588289923274068809755372959941889410921271624507728172515899120146915751199359380114539873172250146581179359959481232355344796198729574619439546727816940111430851419778509212495389200635702142917441957920459133483178026396067331071274552269861544459088364047653685126134067190826272169162118568904179091051064778626409290149816359110579599883472330227605409750694293829374003959249079499576692808888629137893094275513369822302932729373696299131123921901862149717883653538219649763554823255097710490836907756660629093464108128659803000548136443581743223038802750202701240023907289746241364066574415683391453537579360606815526201542103832073917319378797405090391024787697071401405562811015763617703323748076919570313695100873230583642648166500678880620656641702999082106754490829216744100658702848194519573425884954438396108425123710234333689698938344235047334812892607809402508785046845039613378196850616670728877728877530287861698419635826271522213542995303244327666055536121942643706255654269174111962871042968331877100558885215343071901670739788868786562230918131134844156942134502967567759529850969689250148440491841599023606413495404146127675352776897508006988234636208036773845032385404005180913186040465776067724911212620573267207706531299354863291241530466112579728109145767412246537652677201131855489404157781191959502598472597913465771698180894322959440449858408146609129790642996603992683538171936777020165254751859161571460812186417794130668676574549693426688738443102689636539348621038618564198579228653682047131517825285346011796342332585778766003806006095573372029893520467369991792752842536646508667550389741442286051401663925560157235038721097611027084627698155701716905481921824761914198066058425651106065914577879823268990702435940910851944683004322945540689356497867038162820301739408615757409116647466147746396099935326442927793716980574859852087891321012719172887093080346889832002857551995243510286567762823925802063261011180549324466210913914479700583421243245793219573468379134116132889090843886497053105899370520922804621224065854062238978626167788568314514312982187714031120323009224002102316209416437658373305632624771316326227226231118612112386307233645372508955300172624071586039950819226024049592353135329642097386640220499211033815369965226843800613683348488137165073705787173038452909710105822583818987675093943838628821409122750782539263697541556643487938489525310331997800685048557444994458020584163291771681556151750432547935123512065574219074294754460132593766587453395188565070299807420978274154498874400660017333707768130482027918116479556504519509101625354419083508920602977397813599536285006541951966461227578732793718085156613043618430468173996609843672597358411287034934965728770322869053069125472992936907130961475470540722392537014882463428584534748929173875331729559119076177785771699176680487544392387801622732691691319481333854874495246256936823566929160018390832906473117733512268230717384751270116146303147987444872283058379677916508192186495149872725213337568625485682610469477123357033734941459326752324190810598776973920038249823906009995560757968322352987677778910641220369378648290421026469488104020928928578441676808104608758983981270291224446799235303182810368697936604267667188789718321055290872259033265594937659913886016833330330716208028809797296526102526079617649123161277226930340490166179505300614870946020428575079115933766416804863056204513460771941209993124647311349306644600716163099720222291252956959043475218890706430454849038102634733449291025376847172571760369193338983850636001600484767263052351594714369803546885465789686332200957352895381294584613659075769768910187450700684019082642849058699085421580029567830610236560601171537813686159415258503352536983651807682057575081642477752978267080140810368904545173991230074601298513312477066544079776171094621793284221831189911561014145869594265852516591237555600727264796554664582132418261826858473917122622788453296601495347957435816694934924879807042865182465199652101278378705292326429091720721075106897769810308149532494168133369839682983884563158732581265201827587650475928665091695621516163251101978454632607646571171892003976548854679244003221031188827345149356373022412927491689372874036788575689936530302732300348251778268074603703942646604069286092766399688454882454211909574156967551327658538364155931767554087297093047186097881811619316143723775762747603558456430663268382539720575889622336489150383358543420824654424081915093931636519632494061040183038875098773122707433319576647502270876286789437911964762500639879513140225091666825031362108964464343746712012539472422348774278270143665244907727149707697344158826847185941963825317848499354499024580172070732784290284621207551948047233700533545290178823742831829196535499858408778366699669447327721974065566317209051469832025601729697415684252547852009879854907502003355314089272549819525822244242275942472528782363779643446737877530771367299524077992458403253031606728161340564617339336448425996052035044400258617913744912696742052929998240779869344100028145781090672542144393043431904898937578282468333288767397598690723102081120698658705444137039762894298959241957637326280127895197353029609658069715185509863965649834134422000125968402617664083724180462927663658766126839041016416345313601611130479588966516097126206380193351752108286272461696598369597933951468919915574981080162900727896327772425577032061464264892174611788346122960478969256902169377477881265969027460954189562996687929036479598248596014832848619650881850196549499786950327484783878735391421548281544077348284999487750169433518801629347025093853467567110703886169630141556214979166667445234523892239804337679584270096281780382360733229486634272783501647624975451189040607099835499528382933917819512347451999569633895310494694646008246078239707443556804225982442016824304645350857851307473231174333505204328059057554863771169788694939860376953726139389408856045722953622017131217058940618644846135098766396482462092010255967809411282197157937866155089592047655849752909088682558846867993182658404315126045733566543232883847920637065864813145260932821960005132641078124167514426805764313459288032228018015186210357217406397250455874725970244782760801495278854617674981263528539952624278836895428246819591676596315745797250519381628174588717782584078016748745435266899325397324372309864397148967424048134557386479507990761203911865914241243648172694869971587144783713121350541689871091799240309129147392767245265335333075941527501923632319508581792047996486001711342636993272331921232627616194247667057973973857549345523471064939456599028481063957631151038081010324035798263263894939175748147137514815517146084758720732837293662141731500329603324123918156360296846135283685269325280669924238914929945504911917257582955616263732142632507076120240292967309817544843440941479803473939780933839768401152730857210380639064721815814375616018207079128114447779435789941603114813905573318875273766119330262184026493455621272289953675343883159236104548964085074281023816665049951975244398240459504587924408422972631355835117368608065078058042548532919894978426270778760507379820218753513348902442765581501305720392783804686933535225976357702385307066102504744505026559705562310596135176751664223967597787605121488902727128443066944734377577455220767978947704825103173790069541888035638598956584799803925148116131609274177513342656039426059928501184039620149093016526066139298481155868183396020074588956296753101877183914969676355609241980207204868474000785198402931809903010977571605711320412360093030958502996668304285047005815444601600309855063859298254195208412405938974145308240672570868630102127025914554519495616062333204739617626758502214121108429762210118779754199890437468744475421566580530026281174346548137444884868002232475332837492769720081609430070729417967045604719989387016575332730559828156996100186564934404341649975720188268657971592820702575171914185726621874547339019466592098043565461099395280586985875591831468728763472981016221453808107501301074475598994205074153537619004101012005867883505967653179171192628001863558984017526065365648657079247948833748118799111097048823440648395048157694111572047710738608045267186950294923274814116669183919138222980455899949793724908520158620503489451144722343905575883998256561683915227309161058369470327081754189861496929707670736873307461906972808916409398523756753870784433109282601135997427336472725312382860641899215592335732627671567424618503161070366604450988110235184367347880591898748937224885302971610322306688562209190931896793088299270204561779905943070083913676052516628048471612970336835308757585520084870609198594699697210247543316430994700952879600178382771118194508704659383709657106077632762792945522272829499504974046974206589503363583301262980294351092445494999927418055796214311020523058832362189508329556461521319252709499271651636054371809535867310856262970116613225047445884610953943197663895616513737803375777838109611256528312627074179745772743834068111546867324653538301907158352426730877792074567341886871533773995725379018376070621994847232717578163015371743940368298435883222606252509120960133426927277511079567189997751991749421383988014160109087883666807138125867263586975135406516127119842156904390102575289382431515516784488873796838509638208588818808230743654325629159394806346271237588646523732934070201368515225356627089980388307998768741961101995161287180761040383177028765870812174186605508855319359620418843183458864618579040995415273528274750527253400436970534525215256051161533121820873021818293472850031031464384282641227467191828623256120319175220110558646343319877295295415300667268231718907570385819438357495031738765051812277543028744053872274126750492194273314307364515509484678455521563336176082111922316250279365091313197183264328662815950905913057263514708304559912169107289974132690734944715666216512171333592510486215727970516149977133964447622709050917770546298913441384320375684712199757842277953521848641455935494925532139079050605708104414083859230563628141165534673126121193446113607237744508014702347072993700342960875684829184696994404354498499529498315201210529350381942875521140356343777521254083755133026741146596134343480599770162010369603687400509965676171550298511723544110095001124192917021081815455438461526875965740613080657438433707572475317164290689997659475477683791353496334785833836799716613161862975584469954385057776958621961484108467008890002240824100367508048533685567601052600928035964300829902876502742781391187890578975528587626457319821547839666810914588823199982637356350508768372774337548511708868606964077974975061492223853685493843525362646999656590724970023604634066185691939722107684810066696213146851242890068686375866835281169152041550277770380376722343133182231659189903849895899215519752919473739055117105568722370338783913663781299917613934593299643412690899552089704239126998320605676052722750548329349348087391696800855003229801765698817887983830076890631297965423452985221125993852713174540944764604066256786799704043316358209000657785875578357568646830600601112661354442355196408582184806003783176993010314970957314790831617610316566801012795317207812096003708326388797270119944226038563429003891234374159291815860998362650411029136945208766838942497334091084061870765119721409542534604196487116395372476494775526157906241145697899028663555295911846817215579355196443031784427576444367981865036895372368553904045899519061029956963604313251390508169991192137592031750238022614438050958863515683834918955614416866193222394842934676719424083467535108157867020474778802502678109431894847280130495570759353199874448659825852443414225984619640885006921961371174308700274889431665722481911937941969050846797307862431291267008434308643143317092004782847102358010013418632385312904668970689057243336095976743664385918456576651546320512995476513831744686503192954235856937629823619534266210408339342858484333002597434511949993403181079914739495163190159304003062060771860554807754650782259146469450550663970270583714716150713200430137707108908738525947803016708336114662386978296786702283920840774805233376397404022312778138234207767869663217592688850279243776563878165739674859061954653708323485466715157081889509383345205270457600764684857452975222710041102493038669080123940338354028410962239647183566902568266080723096399339832629416438045622825505516091271923793307857523263049227967065904905906695211133167968199714169702680951124449645664811984104454988245264493538585640124928032673126667036078130467055110165101535803426839268644264730415563735116672087148816994323146265664304256333118443681342065806203131083998271445104549772877336982293067936481013824621191151971767827552488998402065244645996651191801585126411586222382969865819456335387131950436189520892177726465990918209363916548163700939126265134502580640109852947538342250840976126057893675130389006195027120392079447121889502263289374439722041892566117510195842011997146331985289749544150097062650677904578689568545668032826770541026431117386103096910294291793838120014990648489642646581445913808801977776910536200412614240544190970655500680694610017422192046437935565880688544379841788979932475077590434638283621804562417269294642368803473862862523434538765598965075138684725773661165560463752969235399818055104291434301805809720727266537078244120977812165027312230025725862579768190911518334015788555783960191099805167460657057243631533784910343628536606820153147084719694229597514043044256466577705313981178244995196100899675465975038490311791846394981955331660241496850070383379138910943628851348399494815845877469325441509907306065605476100560312347318079194551042684817127427093762485245268759063995884493775203354114747195305977875723697032645794588419829380187194192539566389608764046363472393601454645856742520111367696198912888146793486075317844285716602697688195263572412859151898498592171820781432374477468681771658732342027343843611433080852810286773492305249661878719781568634500896869512017420653012953617229085006177623710497919789562293379192660364137491945460591535084823061665546249309863066693658596549951444432021171568856399510200777588313366274786488864471214984954218121844099904687483661184921952767658133916241929296455948716266930416432050769336940029863354618817872709751105989675989089910501218243842398470669628013025419807385357028726290149606632443056792267114702922184610484445507605181097992631886988922674278810553574678546034145176947849599670868786088823461475368690695439287789292424356932021167351824907565427855369914013451044138797606826501915630576224410038810957177142689803507174287916833807202923555317529161232194845963588433176522094663123873846732255751390549535572067503115849763632297150971736620407623521219975726326393423803653647158503498427460395268813541843004364341907751877416631464178560310704684115113489398427483877004056024387870754074359207917188291363759096968832337132521223090635409800899914861249722187329646847936259633836488091429350770395668717796053621802038541304358932936932089890438592902792732269517390469518619314249692143175846879854025215327661606414101992871110355853582931410644688763583091350121379662202674081323387499479547013892526365958471290418035151585034665035098106966691179012442952337492737831854655305761321335685074669799544565154256714099295552706513415851329415635256885771067350880047065820070015219596336110539308875943153717334940812395777425944798686680211338651697252489646352179961741954757886878242398107304195232157865392901600033482792444855417123794633395156829567378334650813208512265212174891181800425830372695696493321017504766467801947456430417838106465403837885429050317836543113780646732525643637364059805255552069041131234990438787473993272553000410652826212677086611083922540571642277520865060389101816003500759296602731122870191262630492151879266657949518139620254024591649983700997451327003705877443173708777007995396152445484046346951466209229713126262963603954636555976211671281307523164651219512041997477830084368262809658197884058055845292908110496748919612011411774552895734853185947391623951221125057310046696920256016639585851195157092925067904751824410177913227120409160593114715717042855262981358901202697512251496010315723907552642214467176342574831736390969787742395487699566968708133119595538474346394591126740223640351947543279188057101611603879668684950337673707242002181631811641222853398687339139415261122254883277992383543206629438122191940649468621023899568027396547665918659365377076092433441569673368552149899907213920386526124287381780669622683060738269084344557802986716454713642814777489353798691180184485345438655793129987165161725558957529319785948178165499316311102470369216913584313944370424676552323558381814282759278935583085600829613343235376153383120472659945158008868468545748771438317505807477632590654639091115577423626792999364973706243657108628685244004109717014933070117677185392212983442068776177155346690006414439767823076430795189487392636425314587771982711410004189021014085612677448636710168541967128266411684727507106068028140048420974869640815159621651110037950727992573719804185941261957340172849552406513831190608553610489445361955964792436983502574319014330339703415864915363292257179775793394940700778546753708542515093741855879095988044754647370006461386492391697241386520510807070573955069064517306537224029301971992506980026635211686929749734336100714210448570243141252136006956837266568776908869076724222204031770152882874057664292961621801330333094319048306000771494029444969979025666064349274425701633570081828074002686611675514250735644852906485709819806905212931032109234363081083443581833513637699618743757596763743579678763402619935937724567379490657234774238178866156689428847517312158007119602080672190437631485260671462952499091002955742875386512119809691316520007654118272614752737434764564075133959301087200987744896332967994797128196814814444369800628326598245566273996285173276964307322047943078729116928911692877766810454632609972527914159507098183106816851885773683258139704128847850417235838392320358713706085914363243513402692621788269565643945273996116361151311018601326662433074488487581536313377988212078078784787953565321900885465618443420435176082686900801501674914888281703966072342036986931735718648922353464832651800461332136360542453449596997433732493561581169759965638484070099869133613192267444088071688279282474836698444048052981545061929243480677371781457644087604033422433651631370735997730838718692558485345118529813621921963461442658403814902256357388606316699200303491402863502605742716243170863061171337167499233870237904165267344825069637716362076713426732980476239483515847923403428194930539007008472682435054683932528563090828858958265891527095462558064385922478901983175204759653823511176698487638064612642265934444989015740636848055118165617418388148932964656998143590937252630772388303705735959817069847986917404601290009783034574823798133453966089218885718278089057276760022424356947365634194199731004740110932873771262787701221389213401204366536403735261300012941530425600675781466706674299282136912867448692234337860580310593770844411453417868752194205381160513659807352203642130157112680708962650703546098453974536221725420491486121415697134706297900306843938615296442148284546286879843798715603523374832858076138973580731385560742493698524614598120629537769680898086133537313046734273245768434183023564884801071106548612183780313850628441505228684744756999281560035442130782200328250480883234607543190940733964937329179107278663158071754737069693235745088930054648264015800725976105938584900483913100792822205266466929730874882664675324812399025151840044600992403342603904913049438357284281168585285335024120890366389063495264061042213589274484482874627583051843940731480417674711244758687889482117880711749263965892975024795600658364136126761142026170734668209697470510938656598766703142185677709311570110042203450010017363793175768246021498585177604812747777602720330839977038674005421572274372325412556914708452557063934391891106644617137505901744315617567996133888169862674195145105259202197731468675390667043009740925291675992983187130156174398562961176272787777050315139638254723590549504032936135824916639649868004744950761210194207639425844917812593256288681949007962587628971123874912401288869775723635955380243581595082032200890187463575367232457694804333705328698480947854063166186688594554121036703628045125097753042593050556620998242421916299157808297338380392607897792002616473607356064457762687921886881087993915215133045603966543347285297299759413571455320266615389106372300004839195859577170149301371387294950574925498986177065929332387399190107658263240887794094457161446148493745472428511343092956388464598163204260434189728238349367793200703532812842531063064662714889731760599054518774214789680447690983770770798971812844611358484337465084599730149369843008052587019512327851795631509181003238463191043606902682312224998412695159869971827769130751746347099446461794172626772128957625622206658934548450461129006152369590134597286798079039471091852819766944868257997299493504844173467000860456457861165472536873473802399811825065387057279294823696833098787117018889073639063908118025582221011777673992994155561978929690506806060520945522022822828533581393046690980911419999026156263721998347673892941490581332240156397206546913952425167783658505477558124289970521264993172125318016782859937260304158670026592149460873897665878570341747506042158701761769782084032873422855667336700408368627194293730631025250038558925477088132322231970016384893901468839635386941637536941967610870493316876611830018113775756051630222042072488309148517191188884833340162883217448578016811847337659153222438071231802465006661274644797548251943410252934864462492329139478540724870594367719159962268909560992488619837884816004233664111565364369582751421446913755377176954277396632806874743286583682890086074150070439729844405153506675113863832066942012982284329628210277418979016839240484247187978334962207234407336511334810974284547227884800987823405056616966489145227801882014411603913194967912437540418816591746526527280482386858389634649220340123790749507486193257798536263289690980285632813591813415132188075856301580359877695402118617129657078187817713962127986706703016812631397450202292545274763481835638830376361800142185379058001868302347549494255231239592055929589134106005293181294782907860086466630680113195165402903248923102666753902184544368988417650750818388152115145204061430104230751563000244637908051216469562631318250924171308286476320255185056998276753959197651068800308378870418824225794622624539359690974431617864183314771100082461088109321295153982569479119594774894193975921504084318408081463682785123609284212381019254558166984378602225102420970538272513775290185991249528894232033927975633655301708449250507210548610739680467713121929765862131235502129528471860204394271439361090116159262519021100392889048300359516543169214207019950824109766907869663680743363205198660888193441249940542639991923833715838939753426656051188874738432676567734847884579847161508176451986303630196627909197823164364294405722575292989502682950672762843966254512692645413613184484667078815562059822378558874086294331048257844824606312669912900726533886596818001211483992913692876366702062903658040346564957816367510186424217952572916302404676972887929611447146358619631773671342380535743891514119911683390084689936626430024449523367517534239064072411948912691221791672798210049848797777875955050592769398054904194574879851995487210855678196515982478223657516263776674570703261631094738324498994474344080920495572315396664900321300547841448935378040891907228940829827559405308799368815477353093744498574047727842327394968756861230449361888942677338997443172256214655085203255489702425924235774164702183779760489691772843503645137875100990656941029549277681280036270657280037188571934473310215708767029495648639179698179754569571186176661002102991990208948129933779171742166483963119210461493620908549685256299341098801389011078602505512807244930793213358086051152531764076929970310255735508068179870143181758346976992180254872556331082122923494702533869177273715740747166917355871787551677594573178111197094857047363552098681678528777753593846961890721386642898410906291317244645320876680685644248655648392556320787421155622002549272939724213261220913686072405348903798749202462540742740610368382424170119669109854576254488603259167348574872802937470086851525939881469185339443442409798903968845159698544405588420469720413894596574724307784353726456311068320558890165471873372625848786727048096921472829013425301062598282854208706045410184690904371665396417798424916703838979996499136785978239156556460572173446686032284571550405268329349788459433007425822964416843863423116381143231530597271655928834050490544341346733303175219330550590854433253132373846917728609645316109407719657075912864377233930965214201603286889312671708361102643561209864569078913450481714552700995035775472242312771520806989013537419104282230415299304802099966909434128862497154000192369970673981776336821351464353278769752445368947688021235957896591096308336243963701610690572350999792110630016458425277549704766955809596964161780489096538440699612938320695349835783238003459886896595182537500104000039316408154037440234750283094418020828803904478692325267281634206338388889666797716574470367659470075534998404201121358850831775889038804913945067866481604177394566409927740152624153200998253341806609324543924862185842821926902160286498824925745660988584887201738430278558625898572048862112847763412955004535181640516305422971300869231018802804724164048096131375906136448871147062471063183137714818588206981869801074339535418150913113732900616405033472736278613439438803062125350000702033430671041436012486648020357809464421951005318715676731539668651170249888290464581504378393804750774665400649802440229565287969251101912068326806873353412124910328743080501596299012787366427282884768256022796557403230309714423861448889740046093106337466305778539014410353442509179643765289757996345308171941508345675155304268447078335972609565738373874219727906854066538125483414815286428664045236777965245181068655681172164900343534563284328994947648754633314934418667418475231927995132953810575675796396952859395125752639815521794054305797651455044706430707205020991410884488671546445853288910933347150577557481769622142874852392516811804763703960438000720606066144224292031790123147799256378395798068917734247653991866731741128197543797878902485064352176275869009941160174656285236606433983671770869769523243160211308859663700065164665183079513738140525918988771987584539072059535950476257948597271655256827834225920539247398579994126880486440185464192044172973916693126944330272718321982567580965464317050391841299042071613235021974380938475740640663630689944105269255671234041197920932146507995461675957975127751779332904455189046652385058428843940886967796474622114088192247612386948989245769017963475657555606309403318201072477095750355408537586430287582828080537626622162929291000546809696000623244976268678124189447650037422053004130074496239335915867096953760967617285027715197040815109369904237599202048190245170049167317445925515024549810237796157579569780696830176845394532223356410514608432523313838758014783470721338623413682308769887070084445025011790127012298239851162842577305604003648549768605524028668532214084374358872689487937330734928203995078552899359711359723983477178768853409426013190883518800454383169726077674327189873933754508151797055661865767741533037425316524731475298919760228145527324047412581884133835378449951456260242053393409582666295621915842195191654849133464391891049045923758579270220990306796242806015086580105978236554507897894737507150211401901439891961104851124244167707313746392834527191085898625287331713153589622502757797122064398990181835964228651094832649829190754211686397132510840507837833899991009996657685487462496433811203477787458324261724625076061802076764268408794443815933757648474500517949569887282787304960181084995324980554659849207131732077600608416710017586545795725452295773306382814785058595391288696580458060826493962979583932356248979673378236119618179203096164699490721348010396746011456151067468707187679798514633813791636585821127847170370176932339300641370103271827088342291191553024057790864018733992795535810300724299304479026364872414804745486720780913145574334126469671251256425075108160911046034483358266435686352703005082368783782795008402334467924843260276799677369489086837891546714364404493794422858486851885828211689681710177962441066910874216414192453806617144148184672324516270048787890765412597325786129876578857980247060974927463004669521463103634310788016694916009099705456874254634189404958103799950935613611868045084850146019701046379360078645818975011968372730763469414066744209855824620830985830610272855767843802301281125700324259943931997790953832968562701273174354011801252331342988362787972619088059620123950357497491396119260889210756682165471019050762732810412016761102810899061795743104837830823939999612886019947890900542937712058485229695674251134134366818075643156197080897997452200235170216786468274011773173301763315341253809952060420118286888849184093970657065993861477686322228997388441271564667602226474053390161083204152542934968031854056890492459792405792182496820274899570916465103328586398080144808641820803395598794739065199201052700030506445783678042775698599212716492420964726063795408348260607591493096030944664324088901836524890824791026587143402907521838652862157877869781521894529302145056911894688717514487548054485157662270937201550444670304774152615076800839410437424467473632239495337081020665381348174740196076496319471376358858088930283897828862623330005360910613810417896312306366205134045133381272545019827042940688971001746699547515771859005242519330573484936457084539118396323983079015330219886561323157854406942246129926393317291358401864322995025113982067180252825452573701909403241102399576366460090160472275812327169113314331952883970502984830989641915502837673148199123127219124634564544256161856908651933100679529734576561747453889965237793849860305093376241215981935650650934003861128021664399388771637709371197435616191632129839346705943720478074925589673615972292726021627959125489330456994316020307543225955069127251305266481940928799257521434900337430358642815230409466586222690455922041957469748205876676764391993963233442637297820376070768549164288352868483662086375395311247096131045568678752472710963976106854341638161024241842433455948086131843796193796043629814768369024842053060918099107275504668634862319502437321591693309696150600387187658601701117659226772328791585602530995696847458120623029111086641015481469387189386598880443853383114288445083410954617764284429676178235139591382205050271927592141749404115873252652745268849999038450696459647459418647716714887722913354282510812678228233579459044958234194567643408122856969456500756739981374792768296304545959677046006167042867462543696898349147199805508757285211194625897468965203075461797125320455210327946686371182569703114888475787227188116382183168820362157072175861676757003537641924448797003503017294180140881643411824711521660462377020292958779007189906509585961602042670419252394189302104182670463757124862307120547151788957017807753353311929805469228165028526394308903431433691460857984387331024232618314991060122007530522471666262169800390188069061000405247682208641966240872829850430750922245526153977881274222455711330405942518597623424628965736386553361395948208621010062095420928178945570423988718282867188955692013558366951135528157695484209925242213332145203538916019595130614324619159687636054295254114392740474439037714914010485808235103597664142854480057600750112299224632839258604828916607523206058855609014914486334978753535654151948632596366437855037809511007194228131605033983597196377253848718366735135404661036720571278591429579584580628046415379101717782674590517969461290816757534646074890601317278213858157919600522880070612865196698484845427845992153188079232342170094760890843160294199631157518835697301998077176312662258593953966229690593537573760693566036459823192240636906534113151046123761104280886336631157471702447626980881755450093160960611210556451701894787892288153437401767772817368990990921608848181046575970008125938460873990529925230649214779004354775864371005314011121031826099035444762331622945973493740977081999032035753612215758855722505992694387064045124959607268857750034967099870387158433651010092283603159625820612032217197628955836285064740518271798606067669810214289577218683061929768435042648152882715148125860845384645608416337259226718457671491425316984799747337695398785927622388862139951188183732046954974917503290980090968672159244942097523877685096993425110857461959657158553316039184929434861786178457627357655870588125427965238081206877135729240060930756834349297472375585338319714236446268247111199143504867189919344811331469856117065437409602700090800910230276513185443361053493992867479631068610835707999583497158138105336463936658418571045156413449919598209592411158654185497457282173198020587430500564893598880667010722652438110911217637562237181778162785501287803047717963621163669683379551526142387661821575442187439587639703826331079875897296973256955640026333257851239014140472428323607108528267366361508161427403537082912889084259389536828301363747436899979943377239473537454513947096706985503246771559000970525797300488664934374657655287745030002519651073282654959922325752925960503559803319067767942220869459286914203223040418507855568863384209450736930480170470139904689205762720096692864500497760561619216879675179132170767678358150855955004208849096769163402333493010174424487700526650336364340086426691015585566131004197819308092959637250896278465570393779835568822281189023602735666232115909726401122056068813964673405806489904072990580329278785532008355302429867217908672654468739058359560969621136646782677843060344972614250392709900229211414695975157204848622944565437034585530539915940370013337110014886451202219418415328951989475487569638055814326146186046715788533243980948019421772909047603560411057090106657248929250909265980443255451257027025958039641148300756656840004813701031849190027059924968941576413154673154227051479359323068758308458000189162262750707111872018923399973103159650919151803564551124524513245558572855034076787253131484532261535548176605876291823664165582548037622195007971252923212912810801227931086884317920181347213270329096783507912713576126772620545663095720415275152147821505445006521353442972226002465310750101009197271436821134631779536001811522588304205723306023707200112738968805346715580330996010486075594378995601847843959054726123693940506561438361221097571671896804894329026858176207068580654037622686450918661103463945688326855605872886134765980909165074949889092108196405771420975661043321054182401327023776180901987924752133737460592451337180591520277813375254317246092850780158062738894073593909698015757069657525325181208847267584621847618192122240006741380487908169412628342081417280376849376117418728097842203496054710157053351579978232665223152526849755723253879864083035031845420841627360148876965459402901263357199162526387103865939693900345275576532491628468140111540564111947959660673615405799143594990424928176289252018552817868970542707975156644046439506283292084204574833403684892939270675474040982945767444295905160300526864005230885704876082613402606391960723321892837680840604391811218941068150155921171250278417765471287237742160147084165787704246874169128076875847974564570297647479899911396911714323269166196546548161013683366859463156780113662560631131657673333786561902921197789862726129369439352246910848975190137651474437936625948598115180677650134119712026739585693953499523432684627559869499274138148625722717190887691844996604481354713918215157962494628161713721163845524497239233288985335015890645603549106060422497037166249880840060628851139207466245062347035539476638134976532332354811164629298359560939107004464562068486480328172409115713144352855617697706767379616204832002990816336757333896139882845730736243550975905399179396007860318345021668901983738313896442019106273499866149763882661135482569058908575209200838068819504849711089361307375422971444113542308434762155793095526898449745342460295231392285152872390131110388684573394617758219884509409952920595303586189340343396550315309018144457766474434087773022339996058400996162359637739843787301669216198809299431917229285544861238241916967100509935368639683439483100935907795405485313196659336716971145671435145347579790933116652583051181412801122036186673007921444345395120732325934603970283753991086507713338592264051887371769550724583665636532511089893843583073001325312310536884324620881208923142929535091108406249896825127999046389878522809232548334519198115333526221992606103180043126490186676340831294112688038528259401304723440527744398143607031701419367777086132627816360682750776902540577802399335892256914483242011783139570291907228519448957797532820074418334622143292971519174118946908913334850853361991664289427476807648199431117690644474184493447683576404608775719451261126129830491231631178459653474011883847902584585885130645611005151741600006846761492017162931248256311386285887653343171410320717173000823014414724952929870448003052134852993869058735733552770516939289971628474368074783035622231617369660729769242451267146175370795022600275123964332716707627617367792714000892203261856474400262610503212803969911562892306824888644443884970370187128570475891461152527648608690058360945970975748620500551315619670201639297923646461286204875165780770201554538247100283015949385779521657119273349304015010091746929158008528869545095539843209158842193547768753213547597033376191249385132217129779466034782330305071634375581277869207929396127573829079637671401228544643367924449823815236878159086285059767737623947256461629614065343465287194621105670955532029625968845616813122315390852996867863523790016235982702169586668323069172323905447927433340823390677198154154139906243266221255096119310167676099247660687604155499648380508554466678194021705791021927148358064713056262920720684327648406593845994670099583474785873679494008936888767383943379338448650994786254993834933605153867759154997344613534089075971816671287411061703648391697078251083883598450948821538846494404053462130647946853349128623334474461774607631594133369626097177481216957316508665868065612847521322438265404888051372159824851295550225571247425995925728379529962464985885696628656878655393034761748031576330159303554153278139832611647390326298345225190874985575457144064182439721807331504225769640212484199542531103145003388981993360993395301651759966554261120766630093645482732907267101906350815917641443693270491084468290650499865511701659571017828202679427041741630243320035897148524500507866783279713993284586804955561104634929939629010613492794613600315538189323201260723292188287314121754066961514389693874127929755651793327755079682617200330517224259702220302038873540137036589105084663481591586196337249586780939088686894938957874621401988709793416249029099203134434323259650907522142220270129892900621214403565116528127191833472714964608117904512951793593860877566400131969068553526645737105658858894345446931666002368365848380928977415111306519584383132065011493256969741057955757256483727041111876331681933251330288654439030491558151435638131407815194181706942863025541806792237335436476687933312097954821820160012050178092381460095554738917288257797453033941583325676254601715253989435671147654767872837758291446001326783670196633629659268971473540285195177308017607153015961119118849380646833762614808628201110483553948921641897203084006014248221930269303309636090060011247746629485032309467524424701955025019490952699868444221553591078082418024235011599150070072875144538669048980384854311378880689598875261145406127987774417338955995600616683977281560955394659834580479420651162527273849448742895216627647776042321895319050953306750555641630178759501077843431627102319010687180879176000407669874135035944983982647269542628277759807137903693689855366084043224351094235551476560346353754244142315670453185844840477703045540546753412729107644407942251221266482612518435596871672767944779852356312620577049766846620441759955494951562137158245837755169297990784597606203401890357562489494384545680410214551447626023344813054280604615108960797445323195584387249646342906597527518955084019925841619877594241884282582482783963833739524315742646291591501472634191051643877955457859213664956868527628491528727225465220506009796747548499950351871236539270566172951826820836780870976338093446909650987832951246811491105915852781217537761579033307019178957932726662588444324478412377575027062433043923934229255756171601109514702652092066145129999310061394166434466169806997176077901483036224829617320742043240164488217584522607523226224169420775565291378561830108277979656003031507560382914279341618222075461861981697104230448521242220209481678987987504250682646747680916137672726061898435843091243995974036071296612202105457628541041652664378806044633307911994457115986311827490603064038728789853749397085901686258790504119847024198093376727015665128910134307732697716913407524337615338663468303073241234210473970881816842114336528174677872785035552840065182150173622486133562580606146312027165657809299282045315744776825527055242905547130401474420528155866994889066590246701918584253254114768154102710793472297615657687562974209636686694790217758543048926777224859356948558148688215703882814649043656461707238259253899247174639420462649864931485562100131695404277091907307003440281090442363611876960764817686299858919167978414801348244849292668523469912468243411035857295779690023718561304290805796752911391051336211555080460373631750597097100373913070018825748348625332785505432378337322771377874889707189520179809570816297229458493535103932333636068344337517717352994918329553681427962922762261452705229203740212021206155123936262273663818541875053688981709541572234154524135213549722758388753605071598323261701745158907257045606316118999688091098021282407593331645479113764007183672560601019792941639420982015389133611350963324831436148983857690271075512527745504249184262112956156480290440921215201439364312842555783710481122615861179508775102648693439335083699570052550368407776243402924414139144790946628048877133019551450396708594644750306091969957668001091081865845546912472094732475577833232545407057547570206676639734523573796261365809100037928976142708995994075366056593172122432188082720423691325230654148860586412569709761569001756478601322694031678894434002782581065689391670088885797596311042674008937721348759639092927354169400096734496738333705748566452035541965886658912050412351952593410543570885796182605038877149760178528363686400938619833518937054257610420208772258442248426870655969989780429275047416380452999919535902344186800784006546209632978981632378835350995573160636164349899942916261053933083351166583558404937376947420451135749964551468098216866313993148207771757399869065952116792679356005422129316602096535339255808558868264175483535515499990036677049745776857538997448878796031560534001726854346372293656847766187494186196086509332948648964943912388703753306711558246774745009337341990569091262928306009621052638090188531687413198175131164836617612016784101908891072428208329100875396529017066583181008750576583066921332638915020255017202577181303136951407933098458442741898246829293794212380562813703719369174001351432534265195897727760867594662047706967494553122106038746080744382709181556041062680311636412314372735307197584817929188698364118108477171781895512166464150102046199425061375173290693175734114802706657098519854762034160366396824148200888963360007935521250827625121278799848424627729704420965864014383228707738005992822161329326925589543528858313626628080299810399350420679020719219544790596105851297503552623004166135258233041999668443060510307852230718603599649068801925753761775940292136698187183721578693909909860261643405663350572060258435902762870873265023483746232193816909946494951897828494620196637096452103662548764795870633744668303749974292185730664741336372087634124903313269710123839773992222277698572241356026490306993200185781572179492295098056386670001696119422625507060841701300699870573205455191433681246986929262787744627762882313786268114425854495465319710247990390478526103870388583946842326818601084733240269559596912053221084854418911688819130572667538771942156916950086382463230565026944364030841892230210951905612455885142615116271969339184194904639259795051241939289046692845347796314330032258501259424332101562219492440615118842896385883733734179639033776686081467123182954270119665386080941014066450744280401645662359441775394818752492730112729912993310713500295959970635741302194062079542539689201119034709493600515327197207613042145721850729158038510644270864449311690708163964386359151985202201464154950048739939075250531435042885309524392546976032807485377100483330902582878161216430020204898865780193475229468622860493014696127497446510958479794048722353935924527756305300055046437343802538059181883555129508994274502038368562985901799858942677248968136769907573087193033554327080093564394642437801653661549513800086748602859839024644659919412599990476013367786650498810210481616906582839747577920766258944156585418732620269584231550236807450034886059333518722862404361592532698332231601173400813428013033774890875384215461189860774853324066635118351972280157956437568222375389006487636139473904993404971730924578544886998270580372446816861115676188586572720854588716475100890735215716546179507073576143781709362419017428107746582458120361770015417535864679973193451956567527873920033215995573767593675940034052307112251627111959679905157177724783741430286986393783186139436983500577384551702407807083892728583977784575947901480964213874406771643075456642175268605019605628738370560044973517290665007307087137026096490093282900482991016947041945587592192277450827243465150379356406546002713713435017816472964152612055292926544536988424505516819439857307351888747688939801828686006551454676825146324787856283781475985097626708111181300015410596395981304337981483188792442391381094568908716216958307770584058633393438256561361954416991041679009006410722104950791597853692164864135583409546319687114487350410929435019821938716523064183071449107753313354415373843200787613334350138933271887184654747468384198025660678872874493566330081572914682020036916315406660044228149146873134785782653805568239995362070923815223615327610352037953770672423089630270921695417250937860940175063626526678716244195708524712590400863251089721700491757431479093793535588651994833011791195514967540378404099082760278381350955482390546166174590696649027252116551103484467341025846212888551140529610919976929240278349058327394055527680894688309581541755161624976245081673973850817224414519329405998828516971271302026157958156371108101530537357843880769235800178811995234025479748034226615820012402011782485782174852952531077063177454650601306777162806502283636348643122959355304822350370323260662180320172069693987153361364424126860069914660911535131344852551410943171756237756378880770264777375842608709878373466663250957392965220740533758861200463786877725680471240001707367675445691958576580783645694993462460230348843465031347377951926037772423622684913418453127244311089524215067718593652678969220528262722192911308152033446441607570716135842366173560246623642427518690841512340049148351404815856423838765264099822174357653616666911036278803075635688716490265895710435137373814979394662540023068414914319266054884669952663390734678666157552673699128361231400424949364077866921406626629179985330348241750051410655565938906389014233083644465983929935409937193568825958584799681974975085194874801923108354030030509408946349479142938076273757117173100416103532746136421918823806613247579761507143702739695399784201096004826659799446643024707468833215275328734298472088174235264134943468662046190931390344506002344742928002171779769001991126129206542408916816642880650449614086281817938566135331945323338411367670204303291169581251302683003166858478561621862112944026439943871208293940317412505715560078916406641759783830859663244764976883698956653985665472918549898953940013141401356499567150245763039852429149592903844079525801095642231757452987281397502562297497277533225103889728083090392918832141537066444359567491911674719610004613149900249926386709677898417553063137763503954296702987689330955251816552533377593980612825233318896769894363523615835760527020343729009233776063415170156276478352121620410868484239901605223974515760480634600110477846161297633671554226856073553796305178646685074058378413035472188655716542519527524958844627659402596268324554596189802437688715680837361486220040733496275918922239648523028404051215476111644287897630896156557636657866035112836971387995730029594271940461274846825752421058795164225017100846375800596637504748383084700848568727273765034331953071402791319173524877420567649504171662707737974263662253819156298955028476168065294559385898165452944120180226282917650305408060378016732862835822787387139016635018300578751429016544976221851453979811813052786952035618331803195238847533153482994025816014341102960334517618932070581649445409266884184252589433123146344355711992175080326129295700688981443010504387584458817357348385286455838033329763132426962053052414584447310600635171434188952612015784257133387974588203711056251479238232494224020250372341646470671611993756422949242201758097629133148642790542164992014352023219765317562913767446260288868505510345230788410532228012904889175454797569770874057317724876711523146821654012044520153897099683734766062214008574551324303188389848928426280256644193517330332423646120246594493939476558051571041393902264393787311639869458770910320188294170312238008199205405683282372376584725474725738488669387838131699267909300532798067503927402624107408308345410565872992670374573332090631708801952179810762584313690496053009642743573130861204811138334420992265720675193365540390858650480463532526779145477598553648404332430819579061584710641445456007265755738548605598287197888802315102302470952724812289187479102334520242281792900270421988121555709811367299194225730734416965356046331875561948680121566594424366451106325078081197416533288311608945572925534764677377885768658758676272367092027391874497406921683227260057532464342433279380399748801522836957114264058704645415021477273531893708595253014850997264328138425973192601697700713376970368676956126293098069789802558109672970619713732340959598854571741636629804439681525541790456656585971727077555885000811736995251446367322321296808217608776275793688930798519318894187959217999424743285828822554690539859479393442671966362800945892644428401749028767728520572658317709828728704358415654363968932026403996637019764192285029528255672788454024174938026785762881794446527766769224609440079493442836404130088230527329296241854872285631014182770448051707988584823529438210420628433267375520071802833063989194375174143541452145259032194199567615801105115299370561299867785466182093608238345401503507244925258175616349679952920643340487334003479280225302793443003148547182012472545336836451697665109966472320683661560553624732569745925886710588179928740130482877780992246395570716690764530645647579935747615117867501854905024197571102098482064517762554411473026509557598336328711910737270028864754804279332300468498100913744285298803150143860378743404881926633153666999760136518271971028179485607256400784146213426121265517116693875151201972321679619381374861953087688088251173267112840068689893988862366203559081437012432721856129049285224809112288210847139754563809562237322135310862055099331368095493136885767384797856311592938679451867934744110222367628144893039750816020609946579067479377484809293069901992060913921499014452160230693673098876387179383111796816573335370599802996912670432184242423684080410659904373642991800528852500927425774363001753936035642715878181303432107852485323100684975233568491787093541833415888525730009252408457080849473716749772635676578434072202297495801155471986137138409550764154675401168150131697555970256408341260095499608912322383105920439328557103782005475426619041258190989829575107227875849104078156100683974715598197945134202886915342270351161241289977558532234603979905359917495272646773997213526222811771062726781879766449842655249427484080392697839259117200375346229486501893267294714734623265590403049580801191440967540293923700954744857448749563160319825700504885636371924906094302340165080615454134303218936436828466185917827850167778003221715362875481746285465863112762608800979761230358141151853151612745058164769117354686619054323695978884205869678943462226871989854607598204051530105706389373280275828341990847555546465991706057634631410116478301045149999067586659314581149790847649059475166951408337137284683307239619719753050845372524995670045277360718533977397942669477003660595750033784899412865248850056012776993962950392909934068620491661124521890776203900669848281758549295233953494712281058833833659471849280929199633150417040828470847003596028894885213457531683493959208669534110381182525239928542948479859784917628641205025591711775453395820158150345502636359535001999549965564397107060929022224198621961982557927293991041264900814591014854470438565761860455518101037753873922860618937294574462079300069996444461663239836380980629478780640458051289347865162075246487906166170611412312279665001330944354980405378870200699151906129686099321863244942317292988131496245193689709631012044136327230061210808442351759603684786535134567556174818020702280147098240090676669725870618339753651261341346046318726644676725825731498174551540185798083573183872360296602830482610339220254315878195385359169277410052967564824872983504467146074864872572938746485771959775461532668173991440002440810726866500420336523878084236258907932483850124290470307011644915978233771306493060762214366590904767889144605601766479993449576410473810864220564323760336253484502260194891342104459367244275694913039818620494182082970197165165311466613585904524236911840161024392366100958147570394935345828613666733921601613952698285568140714606093871683802813901986908957680285064532973230586925267102797555546464820711909433489461718914964115036011963049334801803311974614213568117042195334887833454464374066691156108037541500667455934082327547306395117923150567594459355656228099681037228188408265030634034353395544192937526315626778431456448763167179603498972836139309779245544491797889872686305453133745980796280698847895827210017682291691177715643135986131036204606123427989099861989248637050322733615340668801692539424066446569579561338808206298840197856968164904284820157357091032630508873285544962103019670615243862640011074621949771294688261113145415457952897954008445075053940172617525436221802273822757946719938008955369988251077091851581491616313079946210423848406313154101119948960901712207467218621065598052231299649419920452786732174910318875679533193576423889873614527336023740566665426818046592711820569129924569353860454635145552645802601017974249920335372189187385859679630710199818098581248216228193551356144875556147883544207829878677127519326957685405610300693601578382098005290479912712058422095520363243594729171813576028112221563248076785279195231826675048762910652866929613633809237508663993107636412503925876121301494433812873322550669697091097617688915717396847023407808619219010033157647100541472165843747020234855788317609428748664672136224685350989161353593242963784552365740057156889439753896884183606611080238150522124725764386854180056046092658624180997170040804137657578655850516423129631080001325811748184198163179888815293131258574252611698269181379200503676110897911522312372226141401089879095393108722263311816002189421601624303613504158517623931088190282708788152990682226102167434295017493112188885250592628506923779137927024831930221580010956079810863316262080322302928367856186267668183288254735396922845468078815780863611418309839489480889509185798836685927936054634127056598812772165052002836725078270826927037843202957628354931460433370855522930190517111222248819396938268609467443240789404234006588855682874788651521820139169600944633640796131822300923940227696963906400669132955782485649273572834151418416993392140017560426213291448636330450320024777000472656551237488288169273071632541055751895359642900750004362157765757289182027852997620790693273854814829636930417292156391739121555668650867691111108929623870384086342554569568817049287920379592794251727346562368729940147728517212365417975989548076240471155653888759936242618931327593839623752640957933640095883479335672978634209242859636418671697513009128867812571163821153115867131871766176004412966193977482359139984866088703824131350674967666490167101906326553510574651369979199795791628457446458681741547447294714635497543679036737089368195123551900664536052221508625690948284827604779221682753893978175475961614411774475647449296698188593161388526150245492839116422544565401568166292620301747021924475617232482665416769563098265259936824967974789187041056297955994491097225354363804470427443366474253518390488410288883177029291726674065505658676323234356681456765248356907232593437817711543016621967382834484732325474970400342757704507926256635875976304824401419667667535925288555527307171837925111512172669031155200661297275134079288073846573569780012405258468449447468534457342624101278245699806902783410842730725580664588328557471933475311488159980010059837012377114395367168697555033637944805414934855949276664692358422178006473466380896101497402832445175149584089109937374349033854793871860761586376057281764282576983745193505949109704100159195030405161053415441635897083004012305434191500877943245811503145811323019092622970320675195249922216991963298785018957919156849452972438503562863168533194611708624761668704417404996096990060879106184167214370623780795872343274896596127378272243148928127049822401060271611330355128503726551656333075998773032613354576937307004070059065641449406480572921969657723659275253515634230602305707579120989732306946810222230354264511835733981304925791298114537926068680981998721496756090619522722802787252923668632887337440599512244017006351341298170690114657339147433258873338651374623841296956421160223100829076393185081591842100433183837516971808340876614702977406593041514228785722714188020680348023329254249949895259586336811720251292081251691019274043724381094117402817383760060460016258841705287933026198223680425364211070494359709040581596869466688738806812009403747979496713724033887393249082494628377841799811850684462684775465250819607137798192575150798932261784703638808008709453446799671407350702127816910005900047152547548118471020766308626939325996296244415484305881553747280211000007594297277446822919164822291826236619693394974134138556548723775256053699968677645163603304154060328730957100208323888644831381386566963466210825708735701769535054309844450990494748162820087543767734741607807475968256356679729250969528306206114923395719985678654277866099969596020240372790630449008326283245558358604204280576314198800416236503511770588495903802852273576452605224469455337143571847224039246933546892891187050973125832193925964497281524786847523004496392254980216711294631678463634807136406718283551863383564810465475364860618382246149290764714162375555392008423778908211183836391971539880384220939542776776655704216361349110857110774563340132808138444815766128848674620873045490471598656216122229770196079186543623182855601746326666261425828063967421814904357092300446113268852907000895726628768264198776799972901733257621494665736509483480710507369540872232989206757601303180238753346239646382264368843912407693962750614826301714291124857399612958953028595980033407264113022167839291838809783055833325519231949543603810999138732781241616491283190845228955229191332199315071715802050206171586232541279972385643690518186537029492179443965454943069092579912954939832388890702218979383935788141238903801143152274546976042487750679039178862467420272271002500544768516182688376271687194878531419085621916488602044727890595961188978659882873973027598357045225717262088085908994547949068315654965932855619108920344657674896918538267898361450810372408198596072880100068896206833912600134033073292504667758524662106634185140213592869237386389658072935194899609926387635666789353543598591089806559454701449324114232894262553641572641484077274508781083009162624708260101916328251286673751119934876906282995318053488835200076410884666933666037305471838218244611189362910830272145453198132699270041136070751506370242263990346664903236892642351563607476944795568174795957076133551345925943486849196211559570848361893117086893727207504976290543590450215785805030419179315764534046585872908035935395826317720953748469027593239138589904974121804214476340220755545593446170571357236580925632275128883068906206933192455501160578491568865629915453664087124174472412446864182051057531789093921523466926818643508574030877055837128151420281963230931377158361781341683730882843769172423524627555915856982843098035872297829407566857120229274383176626408878861416669686782602538455886867333827091983483900562789723291554834958231428921653540039744055310890055032764806691220458789628981823088135114219030754552958504081898170405482878066275990781320084437558463138834771598603977973416715323261505848605698168943037344281433848526135806543048108343479092955327429296726985697628835488273035291160741592713259743299594113641858926458708909777859440960032615630958398046560663395126502377419149041918228332137473358818514548222463684701130606258099863197673006955483052439557419272224680108353648542849824684395596530072809456761691424225946620402608418292603183958584267581826208858093304372296257252671018489117224987051508454567409156805761937515484962155980505854918240675540616283976790474299504000461393127510156217029586183293418278558887618534895129076973926164613352957534130795690994046071878632359878303937235745681375750689316128605077815200530492694780956058853370965124806859681146600590788215812983035336875458708880534884165096777101585144453304779555869221072824020823685377575214608007263751522816687655793917597159615888353830568262973642598091369305224607283609374185309709247155156134478910819000233742495959066422359969483354561502815617013658689265946498720213853350732466987026855734900653726160788802993742864365197969047840741673106941349365446015423298092339293783335539871719659413726816926434616990863969321263899893950595337881682979057126685089678769780802471681765925518230486500875093088578540785455816467296016906025740453938988150401357257219174667905257912355225513578652286011191955623525769045868495909514768292217146822617684999587762712878672118425027932129882585971373515133943670988611515497595222287621067277531463599960155345767098761939751871368700458344370558074952428619996872078111240731596948059622198226591004226133016101770870501198840074187122598108325216698445601965225283033184070390748030632851632008734587309683609833243412771375713401874451567741886795542633138985864964583670324893329104402147781575527766435881243531772546614175087848877772913410332821171815965279135982201012784160634656432517271186686712463399085527333270047734381209568640412273938586259243719601233571690503468538350933633118210159628818907924333420439370669136114501455025644477471133008678312341668460180564674896302819798865088418143795054416308282310382915368025821074784434389231422266771848044770086558194671582204107441277098869018911439943785138179884318916217673853040224935412043059275256419857723779162738925823426214034981637547514142076343272961136995580067347534341807078667198467709344209437676579238901294144521313770646799043909026238538829773638560676111483552747752653236148635783570165608027132948197709089064151964174909705863080744167505077318949028342614993942356034543840936244055979815127385931256248410657448621723021878370711401827840858618192535622844521324514477562956306287687470229745650886274935005156034564513622137299830498795434934687444844940010391574395675948424008055057908048375970445559321748490023424037150583407032396061324999156751506751658138637678629565237537584082710234299972426362868758780712283338889901434600281902429607526836281523337043816928491817349168853808983651420046482171134770850897310629377123755772477031261916469042245676720837466141195418891604882652004411537415257334825402204024363498033145477066094405461287722766531249803643098374396607363162966446592713851086538163192245896268344705647937209366737837992932395345733439117783998283212650435487149480653117891460764398795385664256645058025658780898427933155320641932528368430927161148944937458414820853914143276007125306708516965867622424613527621577467933144456135004336274591225400006756492353137520148076232107332440429959848867983050056676043017513910563545698151570188913934295728196513173158812642589136947041882348378926686286394841167073357465185027682207736157957991135297013691900508217071929455374541140373018977669010488511280902598179485860329776257947695346354842229057424929386411426992281678317924695433579211775508789040238164104260708341670549648009163741625088262503234873152925267484213450192240188898207848460411924793062209889356273138931641618207085082857093267618314660273046799120097344159292797634800469267504540232018058433290875380793405976545187506520397413873762497579218801049950365877946141906137153519245857324513112027021210904871712303618332267074509092321788265654620664132315535809065584660086981583483990602936722200385312119856869036617435042717688461281269003722616263075585248577444338393919927587985966993285902020403192292848687940543140231337661054102660236689369154096289340727507381053205503130237505215297650134542983884491870389961405276846020188930217112022296952706433045296286166996054347855913674707695547956268463720955202434427781278167672508988607359515663368038459606655758878751726378007955151532733750565756524531823413115219649431631431658285464550986977525415514166119453464915011366067401600347779310957629164374896992457692987544934879243186595827085334449638850737417628278712172412607865785062956166253943374127388332861011831226550387105282129116686048513666567255128467183181976755904898396978053401104189133224101854628687549096631818065342075074583065062980967265632696690817790567500377535712246220862047831700866400166154513907240721177737223331368999092288361258327615528195129452727936585182837018294313657703388484342401376425127890042546481134102663644300479174948952144104749510874150141076802530854649603192029631706466851277033222027415374560475010086148551627111747456069293330402840607991019592417085248856251777486916284744289011134007004604771766723170187751375294823134663027565941395720321291328038487113567801653392956627167825835630188504363198600656570587318490265874582932878252092455816215247043334435591625092252301971959384419198569448451084312507182316822813867667482393471593074043651987946214235093640864091911571831106999726738623862667556985860111088922660728577828487190477851118505274049763858188844124258654124058017521105925379673923673300092125196488603289301813664362215181013536138465665802650685082260520673979705102738906247411457051962492528905650314754681200749626788446325054341838801493722956502483829727271172416209796499729057993167523867659809488555654335894713859625214534826634365943442538401858811097239675652138539505246489136858664188024201669144865955147680714964419242513050138737833715628397348774112139289444061883902812286025578442607069039709157059796906300538598705685055046499350152963324931626382470230622733806733655694886735918481918615611411241945075706596983004448134105416613496428287902310719115419917598371467115665394324051183648338734794634236909861408620241149768648988680747825958069649962706073440477251105022184361238058876080869954463669633929750122447763541037510536494858894604415102653787848419200585814859317128788337303662384964767181114314962587023350748908968225053654010714584169802296602665733431430217288596471077659298693593633438153515385515176639904253658642239220072769296571342519573291586075702231744312581929269764567345738563174566579862266931696481099798054178254422096778823061333551605183765856324401877962232764315341640270934193976028961431557022177523344709416260637961313419353660956943989947596045778497657088062174844011087399495999625184928272370706742512462022548610806622144685590484525728089065756592634352480919408369357028759124616577780267590467286258581614593042350035533892240337501047803943420816621317969073998954715753595539435930238689206925850261654233359879946032161936321557031915563777608258518888658837630181873756786493043855167642522977882928706255567737592483405822445379752691720226715181216933241135884176000391196762312597111290016591593256198735732629228319477709314974253745734167622728268375475623858393783335986459033325938960466455130771465032641527135429462216376599801457467550619438180695455290154574720441846004732264690447343061011595623531712680165821830920759316604863494378380048893532605626151244691476618435337025504662285849694317855601520729487542718201191835277314353955472606018002514273185926559195732482479437139245285655946043617501534722524410899355236802114101177155425896912082161498074097189029545856105571606537999546840176413601963808556400685837568962659047466680841214752439891946963312816654610736277448298723531374771108835501323751069497378835903505682061831786753098626428704493615508997322959537196842852784570390918692259436781549407500089843199268788893170563723047153775250692839640082333055629988153348739512003448176951601168747269715481125357725175107855917015171732387640911444142114803641803381069174916101605475035452334320742114080732433544976573883600552321679354965657883427852376367064678904534336319772308286695574919049359015186668093272150044074922139496479679005350906876874345256960047380363469935021560163073324800308988247716065529588527318122832763091136539975196731201118713143796269110218138151559433920363755288159096382412376885715764193294380696964783059897148955921327468168842502092143631226433877738616004430794076030791663843831122715291217495122767288542599793392086273445270617454089323948998920772191881785483440983249980133130077189775553445924768505359596690460052557730947408365948171517545833971301459993338000359108368991464018821470058043702261781269607020296992625767249665767702651837193432031887978779884875643378391614459057876823148161142731156033168018855815650546124819346542692589400471520627108593170489702208026336471525582755192353175528557293599385149705977970335333197000091902174932740139155410184693569151790243275366617493519301730476881885184373134787217510432772245445301557984123484856727602990068613785879321143723279753617667758008073767904735481192070017012263554440729038047260793816848647818608386087273032755882728946624300176605614690145347402029909767920596619436566565849674590151167360634200216097290520543734234064171636237960701995301144239796783103135211626060461170799705784868697917152708547555411022520189426311654208511918950573120714220229417196330700361161529558924408910389758348792710131413642092977787978933765084283755732219410475623017016132237231404862032891626351407295989599928065341469468491348180370166737284188542611145785477458128880081670985296710996049351701649884237944435278879902584572295031506643537367770318789479516508509355035018594228483233383554445030398568627409841931863558432983525273161712033007535585655538346017364129163317695063282940839666348093222905641138656839077217548055754277876504945996581278824010877187044971311082218467443767605916162169209391714006355038152776448256397206135329982727841332714899726172641207579342812723052305273144798852392112584923233285209820703032639136367173769017762865493991795871044342498223573543619362642413108462396389189540988467157125985031579657937655809652974547796455647356379061297369944965252629799959842762989086897306721650023485399601543118185213267974370649100683275483287923369329025826796453215755640986480792475293762506054896415486840619351381399085684848419456192085820361835234108232751487579173441894445541357259849754852223037362892276714618743966659743030828198885995314121187241557108790970869548345428941647286265845384144502845302956310091478704179155228473145412288753434094444841314892031424231728478159615886413522187219965376104640842468679704994598245225994382832465433898909915852670828528114013091975345539117737691265909935531934542415621038891546454759099026384748000829321275100966732011609262800636182078885577162471235310130000634696335223394368291318313178609823774372453611583920890547092490071285060667080143335315008504283179562041739594165339750264648050469064135778551122618262043419627005402787994818608064149922858254467281939464589010619312880418231467438345413605524461409475160062497534651919112634129845196856614982995508216801757674650793797701652131640579134087453575867696165644960123358999742448381989850449680316874189634158013776467709779787993691587081484408322160111620549555514082462240419770756298815762880129435015406838652998366407429570457509176847153245826574850985934936121499715153484198571719274425649247041320749304848448127952329790833960732265776654351105453587989177052097935743191489759779362794475448708338462375626425417172253341533439752301350947377910167239242667661090865537326209102108631567653734138186167069711083130714283706396994678791475448336364760979253824979987522570321458174248023501880490954338506997638158984466792335073745931131276980405445198738322125281744960227029497568198082420436633224092107809061526604796921694655377027314599089686275498193732307769912790254642322817676562423727631295348629253649079622720829583084494453884667713840181288249054571989305335216973619068024544961977102683800936481783224715785630473320833038339279642956277873420228833132294526747129668653951264294465375363238385926007598911263257133496151274012935646116162669794723166610276286692532033170589231538540570878065227732055761099101103715521635945061637185571948436978394808783753066921699705354441594539808301071711517514918368380416684179690767500056273345831160673087712193743248159201808281702470712713532330982916189200760904814265131121837975851450595759178234644115104417342780540263740198971268884257626824845130249333868472636003930017068409017715321984016205444106525826922501985211377981473961498563246904430168120299196735318533754635663474283098589441719629315172580505691751449381516246438751125928878353001934975198336975370485108290881964814633776661399084710051741747516684031894383351648222034582563612701691258724033576381572325364201416062369697913734687561869813219218950754527722301519834140247017332888897842690762984461913368809325740051480060343384873497499021425527847759952878870823137373119150801684173354246695460832718989774867390290251308234357542134902592931960217374687663727273823894259517478874343265517340008887858188285487573725759863963757283462346328434278552437491148633325797952741796042300783056009852593643824264493243799247402127502448721641771818573006995424497410488923935645367725898750695103893713226167068724089958312141230578411736593149347846626845552029879867590627228289590759112812220390248403463535972253883618026892072179381752151945912815385571124875790159579241040641173069629202412892919999893490274553788645093012773338763092221395265028697189553477158656077565082009216067381817910023369364758621246728015533329961956852096819303446148086694776728687127510447433267898599856932044930840680883624698487300412939881104932612305752259339429602213437815135142546339772925599147334842588736601010707501242960004860280761149902785731340401107053324034692852436042183660865026227670248703231514768479037537211865798683902227771382867819828488468672277969697410021519561381485991362246809917968301308951247327914000122226280009501614879836922202770262191143878168130588415602229679240360691661283831700453051626929077859169648591088400633799494422228206047255218175878077951400746754870220296736237981363653384601407802397848630539702052974215533570679483993951100118789692945627498029611413478844824627728463517628641578517998317420582755758659031535279525578202137958611982715103607350492838254942864385899522575766039443851245611743792292576539187579406133007698581705159296416748511029867014679532401910688928194131111094448939225709087841233289558887636868456974714674213775911513212418321763328574313931612428646613085943189115641424796097104088305020416334922545501923770769568726704838059530175386811917686226926759810255951920182270378599250531424274864792645613435395886298478159382291099956970423157018671727054106983483665794462130279789868769031431763149178013904841985243958778557864262167630757597970077496698788301061833247473328767227675462874154544975402250723036105157342879227242603615179350506365405271929124150489120309518264681640809487856658282320037862743189623195345756557486812469176020970482150329519470856275242064806177115714030255947675108773138145422866530761022591659349160572788126391245618642554475822791640510038931006313360374516404050428777797744226574477376548887160962023953416043299915103617477256073663930675380720548594934202606711470027949270774143313721002348133280369003370680784555844880519761624416589757920714200825755855261075995913460896483546612859237983734429180034343569286328844260792558932896515882180109708798893578515508871587039169598308880123926316823188595365641893394945769452746909847000551484633540046708243932846755410709894818803258058066174994848293141168310562506708737881054774186828149826555409663472058052467967454491645383630454635302335923235707521909153159349538712183185755278329480547228646659932525008478604830007324817656435179524670166132776226786392756368150816683654866509670620470420674860705632963483463617382653354829834390882256454700106374313662827121681954398764912738851184541448849298397022627274675732329711478434528662941161846286071020548151947781213006782671349181243418111137111096806068672513139886532479873684334561417824527717235997858614971896419796888667458424428485758638312196533317660779783707799264251367135692327330549976530515140385210083907144081919435353586039326555772150694984034788133776367103824020313076192419219724591961969761977215262309955698297462053273768822579142277344296675135095540102617783448042062293350840254995438809643369515735196441168549951482107851744029180173193730802776885780417951723272409925137421876012520155284450664441167154926020411855975633572630066012641634171810383315088155799682810258491008200108423455433762516154588701281334529269755389613835630625299079351602069294264536813406089057846530367109995163545103798708000497317484804585097961038109671236859347974547738683015101289218136001404304181480562815992014767937997222987338310821107583278545508509138473731523948291676543526561530311748482604582356040197084981012646321384041351877532955101338308181758237105936653804500969871732649331555018347887169353104329690484054649660344518428717412799040001735917328950387361916653682806661513264330636192654155299680696653902826196448859450119551255519545165693832031667969781670809472188526298983594591900553603006198764423594825568419548101524588587909381794861795269398721958397152040124838490344417992629486133104445787788135147366663663129725818181460494759703167156218209068989912115165622093889527153833343436167138438254828450696417349918976770690384640893518924658403891441935113829755569442063034948647065518477210474360252301085781107888248760322478519867159255135353726610384815820159843001767413088816989541826491853919268912173833643879597361221362259444011858522547155807065311637532593281518629754961492564477736574885015127514563285784828086609204723014032300929658562197107972801634976446545367801780974677028206989113272939461529908632907824463859356064099435555368035277287880954692318934311388874565443775236620212251803892573553407930479232872265342086382552182088844148135175380525746415856029023770256310873471829234211637299019413905501271753586413969565780057204011464335655121942065469271895656680136596266637743765713066423172493686478377927406090467750225723064401644895871066894683535944232779535549280979392158386270621503675938603844186540171391154203284184551679103438692371795245262514796430590312808765854671155441045543533666341665166754292257473732199225389788674524235139549802828278317713635775182265142919085746503325272553357224787282285406478511383626283245417618590822329367984566996866103259015867560697786466134133032010824186808755227095044831353596900057411168941085046980080787475374542407462922620705506916650440546944497588913048864409494043833857623427480482788742800895513795899761093494770149880746715258252134051211332323246270431732125999928527708289443433540151952296759014776934103016438729007288199638101659267742865733727151575669668680736704026452693395497645154581199856808496924333396148367345071887278392152597478723005815425570692205476996863422885526963069037508287641348776563945036726025146252150575609452701634645385499391192083365611215714785842448498563659322523944728273802769120415169734439860151481028517029190810955539781603424451738251346105655375951777521496040737221119548885978293112535335813585013872846184265875144290903882437246584249563201287598636510645290128968491062558180928371675483486786621803918350432378388342731121627726775052794848964743744233644134820353659009777300865353343435581140966211426104101267679863488810229949411944311427947906056132439178745285302809411125607268865762477024280471439448548778934566078579438270558005099039459056308654981738758393428548033887882454362607063671043396699253041247024608165535411799827695779145318716405066179552212821781160539646267374307402799949626532437960512744705343188099826609837719944716642526653472839687940047689526085129937850227579155250728038691567518895609016369259286438260587137745787926560082936656907334937864781546166794087734828429168663339667685701900669958343733136030413173692003305963498960667823210453638149398351231672725123726956805004326856973273106109916751341754933332906809457484197820443285778589616070318309838146037376249135527962003097543419778155414812325815993671396824729099307036171591852187172451117768260369849067889612957167824687593702938779488973599329633782999208256110736758480564107009480360629692074794810386671655101291825876308814308465856117364485560645623737259142546463141687530543010904718591810585064060350297849601158974020519021427543298707345322468428389536490572089992968074051177954773084316838060259506549907494268469542165108096983630031060517426376576520767862498932876299998202148879037823404989027946796900461519406239311097981884837288034479457145141311842679762259074067705735665062907566809749008768061428875781632857189129341586012063298639677270474677930159352260718723736347531051381522843205891227451127566332382407382406993537023026206276187261810817629432494689940330941410305154962658601067304418407055726640786827682494108341657741044877838939961615785452188866339280280403828595781991472890565108939191082763552627867185256774751336081588902203980089443019665376016102539008969263087487449968920176431973741701347113671771238214932570959538540601931798446660074993912798160225912861671297818182170071472975906013923404664791395328720954885580346187861751057599787679591709167126506403126173049031087233303342526586364232391720229079936445639057452784079848841300926244448654390861688589554127546136792827087542893528756278552719837538421449626544296928799295327909646800273259342623830858449583556022878547571192961761765451838703013577889067274270243759245548453571574141230476889229928641492498580158760388525080568015679619737213018081837667763570533491694850729834710176649847764095044229707128936697489256898858222903960410294326570129649614775484386107300926342006760132207866870258764867009259916435151173382050610401942189949227100150680845585168237927204669906507611316059373067302909899055043756548930330368815572410125380616293965821789448741107884750058744041589021620249631613574512439044421466172573912361043718798371752134689055513944602296235896834548650026829506731703334900469409086433043937082241467295109483032447778830425576037028600241096395141427901331117237674370064371143200922323784005614689920611204230758086598578917148051582073418867012640978910373303470943010116404231707037646755920444450065137270699995485937286380920291868417771007377595570286214666737993393397278373870246964539983252299114860632335425712461214015108432559499745798171241288068426508049573714489629001923485507340869415244546637648876276738832134426371248858598683248940094113331743027216860486819355014014246563908502041409086201571267571500704314179702453994271430517476294524558832037625134810291448874229355355801495964774990676288164651781614123598276144365592080664140592240332937882947190022275392619872937269502731778639855445407450355181651721020092859186790075747430494940139904119139737952822663418527484963368369388107232283238116394366993522293290030446165570510918748756432487462111429706292634293911189585459074353119910074076051083906507460094914236542713792613020082896911178003416145338245689478391520953663511413030595163763584050680364164120844526931584526235309977500095063801372194828495681176892487170989508504262974935756065299597486594015442835917702658023955488515247691409170525840038594639096737557938084260440656963413062079616611174738747552967373003810921321709439190744006778325813954872846149954580862609021897593983540984408965918465568308847471812199739054509882372348780813183433546066035616655682633905449246683819213606705585546132215690114070848167529049902932559483000345765547366221049573559071956790767975583504591254478398466769646631857916549337159141874567918551169945000914148319258948095502271391648681972852164324854299853540094995554793053116717990590286068784890345818894656545732142540395971618458518288533735222110758890112737718368138750489163307112299236835291975865198217449545732270808006791636846637338618421576212720207793120166046300023530290305749980577831114171248277067621449762837352028019765784582232869316438663511906275698753235259483753453477628818841534706994375459343079148228248367499424260212762766874093103604959355905129209176534631344855004505287674638521694018824329554277850802812110512474177401901464259254985764738438623892890071082511240099090835213106462238165934056635116700923846955221852309572558026109426922007125763475805104212271791101128360023373667871786816707984448541732397102681081472462812367901654780630403741529321962818299571930258546683956363980304534856272660705005312180062248294711307321176110531027060194377684384304551065026075769212869337957866676499340990226496752928874652058931445898190569075210909931468157854962092495131339547430080903658969996651157037574495317049833029585868532600331829347862053411246835481743071554160436878483362141977373905186158431004259043872861026326635549608223012417850728794506525404679178992106805121870316637441198360771208217808611361692933604672567284540916580325446398180007842023618587959469218698915279803712935699389185810156036352283556430071968995384691058557282257580701466229823751973834508643508393357082522866532925981864001760146840557859210961482260245091496780758276613861283481707599896637896654496886089807892961341346468757765431308397077751783044650094166177080052200678489550507411766164449740758739757878970708024580847178161303221422891533198188080793084565900103709853267154670948596247073058458964835903520711555027476132940574427045126014731300656283945150353403022820002526262140711329293164109941969299867158514191486148829296988035977050165260465548650693165797883976250948850788836658789411772260274440932926159032182570235289786734993860854074535034918152560799763060157682475853066364009173318537238625700351141574981937112061220689191009408809761168515940845750633081702158519361965694900766837543560233407172659278165534324030709040441815784564113027101686821812700617267951604042787895451904685344827617786901260224659928249023457931236663812766676808276589262038939377070013813125604060402576045665936128771070822704623634122912894448563201523183204783288568045458514689925565878092579048129078308060956855475167510849712103342303263829790096050110413078751261814671562640941422699264471602888109149566649071636947040906614160850643048440134850296210040727157656455845512559895676838173519175345014548321448221569188787767924085628116103133179388634773469414678228988406688433997308148505079984349252998899741708815353262810803702757663488101085340876664475079268449141557518667657515249452147842944145129090445656753255104894914987599449818205671876775251007723896638785308931231198886438560964104868073436559887265941934067082309826624609629263428804229792420531204752651768220404032858770951086340124585948950969801877039567963707433243279832703058910882125213594270227976444438633154862445739552804942852962315050275244496344135857726356877999986315629561284092200714898652909892952224563080247232961756791490581484322621300924385617420465833360070395010548358643981283801756593230477133774674879720712190190619125537813470541730825913007104998520832047250250805087196571412779237678697456429741274632520741286282975208761062828219260073807891045863531329990369687521249206722530521475697418425661722565587248757483132576971831609985595979246281482004059152324604631895465575277068872749680629526899881126830025501379743863105258497321077433860517396327296517958089624669134532865752229266857072552519538308364831042765529640796840714792371722188528251623946835966572488605722717313973816623665500686263186440262617501263102612391638395708808604757203823294299779698111078532614480886291221972761386307768463864229788735868233364553540766520296374656578144298119222875548297935840626068725802264387976896105289782787251859413052098347551901397230870849445144471392622921175389604381015271040672565992124054514495371422905622582925190880335164984888498911780651200823843204434994662286796117828533609889714215386589960107467360920155354719064661773857074133337326945172790180592077360143686462258117480011271892913462783955217374785297694194371229010426370333072097337166914862487805057463019770989178129104145340888244566803279188703451901675888689975398273446031974307703734633629131669578037466271866184931599369206827963605759176295401590233962091891092762339256496375550476612036805308543105383384015423831729523342425528984957240903646046352476548839695910603643212916286819184882429999216029700420675657231577076231290893386147509069433704206164733783615897405812105553955639077377666568099815049961351399353954137535335506893618654724859199613256910654672469622655922360718059206230508160517131795158641239031636543611408514557508210718731374457718642404364003986798408223472906135497317119664716368962256460673875777894224362407995907911234970810996066793902421009582774548754993179558218319667286041079988111730870831184697497531081106447771223785913652834175006889377046768358208236423847517280872193589691518057742362084784204680745306961783321868436343420843877913708064729316933793366602298625860225096257575793668706245735140227575132657417525451176041969582322387042366222365363402436362490582547232817482596166102790503775278871842361222800876415534064679521858622136646117831807752977416697554630948894295614318971595961717200887491666587842467194193885441276891151640188831277123624811654126320917709377102078249306979461292670884817278536274938848949810237529825001406069708774517704969533998961349743603795554400846427934782742720693579114611143038895012901699149830393927798013750326366542603636779778428366592374636927901861078111263515329625522985034703915886108018939169778381445588726562015783091440643329853517783301270704577245251725603788596119619763428874488968061834935244169487967401002028039644349797539143725209690502838812858511350075944211838983169519553676955038548671042900834897987998660024240537725353662381883213976878632497077541714847886277503573723413653523152984652472745081952851689401619986004769058297600086159021497931173329723236800026708777829835108981414798565748022538350439709657523991887659895605341232839881266370531280875193728338445669455321414227941833273308503187643317579186821231845218666710641140599518069146547704480934434499876517473518870574095929316575644383344672345682254824897854337734031248915369397277727429230982817284354082703576287371343094156310441465613046894341473246785733180156672690551378672227822379155105226114354006185383275531283414982617114079083705175455552147302122591602995815979309114663608255415978667891758190255192671960171125035060915631131433906368277976466423665507557690145184772228593661818455762795048693762224458948416137479044581658424706758417671496932716571193771590975007671247232150780221838983443406503686701323751468140256503568460473757669812159849457694697048645594915062261373004820757839432087189497269325329182315279274339702646777692588797891186622882567143217322401904323048241670744508052317919190088023318833566862860186549604981218507928372175731089049545182344820247570393110061310566731392992798983606402474384593750591895318530637922795494218876812912624104055080585802303262765337714970172928112343808441522478569809257960318803219510646793401359920517817151468201502181577014251136754141508734072464775641670540389159116083783875377324755155210669285457186618243645402287646766894527236330009997967202595774233623276601477304027520247098592941437009790732339606209703431009448152225365464457868326895334037542139603810777908394987315606874539209008738819997775293842251566413825036293276973284590130407165870779849652746557196058258653195256187028643381768810499341086538642132733533563824939029775675289232794725119609276425106303670918841488806559383686599317442767661985190479333070278150217608489751866592480126165729809769545803687743182316094429358398312044734639531967257362878587227358316084585162042779270484225131596147867536016387628814542676202046476432029346922189137173816241525609240267420352809720079587480249635126414125388182269775812626745014550264228528429596023382870096866862682938032895494981180251974309681391228125322576388469339597345448160935885620299521847880299901433072247852577426748176163752267088241849271411983944540847241405366197396153375390441708827934416259648584687984789501291557725434505286789340564561539774732328245551474982149629391163595852041344507510479745423343265913570576894826501632371984789267294565366571474636449548653142370541023513925438763713527794363540898610765443823475724843308729411890576931806503143586556023901667255125840632787279565700038792578783438931666377409459456550643540844638321621378621952186542862565468201068905986426264946349796186577756489613250109825605026151594979814441350894879908675357388606386049646759383790530210616860467484322828039201163847076776258246840928539662526789663949427157954201349241249051167778576610105976965943186866684943755051833188001590609708474113890128128985989660804296176893059445922671244373448435701664178283791443621439905314337163265264362491658758907803740562883152954547015328246568049736906079650212057036618800312613804614631366396892225769448245539655626081894099477748314477251572259327187382429953038961077506036231655999183464088238167929748288768501620883840181998674606529606203549804350131854011405702734486979794648453559066152306126348065141092134646440458593386403832599908919905977440983707628415519661072412812806204920625787849863721643808754699424762389604873180170621295895923976177247745390655296524994661297340346363242549354945576356782806780982600244681421928625092816120423679513665627549062676840668852019829562557370629881844584532546917178102365034998612470033371580396625394693444764968432943507067091246477256050679706956456062881613473494118833892634369589566014049111770108877117960370802417217121734577617583212112258502715221093815588148428717780814433704672498832020603429204579214388832565892579526492985332171149765697237215895364669160295304930846960704989965024273548295034705850038073919862767352533632076739052387995411352039599417651796455871351144003547978072873621589832019291905455609371043809656764959132144202595353787154572903175971368818744501723908941414538851185287708792756074933230749330214191121254360245992327502025331641468933357181317963280163648604419696884934642649710618093300066004403506137898300635495946698411868533317647024786221402445491625789098600519397737611923797058275146035828524204753394219112151429987627307311203783506988725060034564157243794358355682694014223214165306934728596310481910586532820555962170376349610293565454974667893469077504457863231909803226106991834612943110742447940707864808271164584575537591758922166537276518521450166201473043515738872335145161806861270586211173631470304688973269931394217209904776401901418311301247025256176007443560211749909293241527303126917974450118883745709112345766589815429673367720896556958091577205565635170633297013738697255964441484555493762536044186185490475664980914998984255085612992735271499264537700530648790714681444104710298442260825572263348836803945496474359380833812436037819520741701245013986316967716351520916891418164260983772861269895180187426223020772047532203512652677805861385890070869706891567205572074361257539720102507816517064647186767381378671753858559790461570576948059104736804136004172805312074598164877124952926649924082796474637667511896885066859698290898192888997335331062847962843076650714223345553293623948724229745904760812688833376901425179543770867203570327773168969298562883758979756620929534715724224737753984045200532984260876586550680467838642370776716553417742443206406698093890283830735016910146486492113690150335212371573692022070754134762829175031862183117801513274995808795969595725839680965431037081084663817395640121667458440758575643493950643086536384348537852229936378600688215903799528700885125422887322736561653703708576813100849919683548613312347686682034212937093345307311839542860524979986397623822598151465860989423996436225037572822791460278297442174966787604894129165805451477619318567255653943221865671772309745207419890025198361454934530743472349599118532980322470952227810423358689863397052901634376804866473531852049934458032263179132352632636413698453155113619395512613258090803935277076662154399543105673785643129362735857786400108736229396108299026049211393578139502030782801042044021920911148036605461967157252488572598863553735852026865228655853965757598858528558949783465430571995458257572667893664362713674343990685795814017930073585212113356636938784890769946180828551304992471501481588701810868705820817462039354118351084450954053617299344769014495070250663654711848994717466112613976279766304453506175074192825939311289884738887356477745315784354651747471041878090211445963842065199665502574770429521426490311487223113863324342833834653979809230894689658694843594556944335227556151945130315023224141916789885678034054733270169347077180650738784835784227570703151689479752317350663007020821219866659358628034338614537241009214984605717441620418825413047472091415151258552851651209500714895272516100432623097358787412914533061491345089877515829068253542051826027110113920365209442882826148875612061529267219106096455849994155848708215679725452390680577553792031704033550733349067224433745528100173063879805696653909899157377421484455843714014837836242813907817580985991142660529530650958666007623171328983969135124062353345038034495393707977572162327964271241104482925191173334774737477469823027238826483410254205998841506835870011528346845373710476548042984224817695074257103421486495825806330394232240074804260617216169956985208408257305818749132387063658114381810497951943649122589653110839931655879037156354051116368556121255423529582641110544975518204782823474079724965914243172306143992536114686713811096187224114886634103545307424725251778010611808914562679075487279992149392247856592747783906406680043395525242876591269933906633249863398848973448118186883189120127105526411510217499616055928359115749744435012417962632811005591515784979957343628569574250206373098236404353188374434281238339048236276495329858606685347770852146020489879060156046149146510948455241311160141539301220694427140303745436800552333181672368319410815895188970216801379009118455993988579561523898836734528156440875265333974752573560050782817364806302496051687176772733128453773473043342107522805174814603316158587832435538341294735396910785755785620536361922181905434211604564071124004861319971656484649748712000787660829275196014027684176891400198537537512388747348955711823212206741593255001722445224852236723318262610052591283768587182030593272290086932521145298981407962884857091732584726486167547703139503371177437139312942440553608236631383572643199217321975758497410577122421779214312410949456793241853596756966748960698657527520709155329712370838916468656888631632728333185050065972112831467361634277961472124044906965717765416830381239237633812161365189196872285546748854211016911733868628302409916553746175435288702929479904886866079669061534140881540156596878106537028881661386084929690401734273276647190503912707696875079279328026627261853225378318673248310714356012531005484303900355975714065755061359756622797235123477908665169878344429874893937755730872920544761242986356885992200060852183729536920416429519543678754492267612816729586083940593723205369661545343708144826424131014622861747786918290071083402316066158056011113631012080143215086819670822780173679084293754107122409683399067070408725239609766939271270588470425588656117425831206765616323483599089402689569410010525194162139620848777029549942004212311949552203940855258030615786520931843411784241558836639605927696493750573592247080673197313172773421770566045784552948532905542956107819598845520543138515188341522605678232845668996185435700301185981248457325069091639383181216592963276525336552015249159285619458187157692758486429085091810033862535722742945834602076249877902657663702420304368819132777873931864926270322003763341635472542300487422054499013866448275010528665394898358141110819663893776910501313637162015525347380337970459303316015585290480980294590595865488014710403610140887605348711508983153483633253860040638885114802215969984425700069728773653223380986669364660487251511679974251302100200953572215666399550716402305813093912446312669170173655951727541606107288220288038616275840988647367582917207817910961062216384668655233921539543467089483197708892688834597903851109125829052648324379638962918350318859400932567036720031530618344983103548501407507982088981004559065467620020486746315692207775112893493558697768156230437370511230581228234494641404153067237988334857265719943733298455082466549743525489831124279382315230063979539239849987027710071160027343605940552867944835749774298904017322610733271366783994027856758202458329923440850722257724211553132439988491311789552363111740613403796600745506027207391621870695881178932243024925927132988186234021698454135536386305756642105125664333370393492616153641508112071834864156251596336773538247128271928324207548506966097166678778821112787535102742175077057505377362902862034303155821004152326356398453866298206816098884504115361771091274599801231012873095588712225117013467302295792229057978286987867402510009334708197833320727181178144324946328522000452444628822557576477553311130206024100547044652130757686475951465262486077065665060891269102207519989215792025074063064458235897257259006090290329136282763982737054102826192438923629521402132293193518992268410213976069836601222041627148184660345461782832652296543906215464465527906575492241647874169133308450876266630564659440604145073406877650690411243915160541179971052091466921286437898740504953192249903230002968394338136334107412942428801543171180207377966227234141947141038483479527486688784248877995017462666020532431798671893464403219172778483046945042233443633896957699677337508139634858731586959207720682498211288469343609449891679963403281250613289159000702391451862381746802918057673385759801901711687985759039271204964229836789833653921068996033435896678443800045684091869354669313810487582784981253350905298119106609301483702593908476978088362231724065193365527853663209648089588915524194353304738486256226368106960601110736783812586716775017795163655467344234043823482132009499719265554660583110708087185879819017908033264320584095095372127990132976642369224689199569766481904743839827992087460096301950032325223100311799221667624581564764857000165581515778569333463229682039147637661012138506154153571073810778552188445204734720471164569667303445278879681813371308164568781792015832186321002357775222184461167240725288810196929347387653710657057601085658044190179071467156158725375421215879744274033369306128970284242842250214064744410548213900874348989334015930008871882132109457883721359443531651316502040193040619062300412971662198655621107309272638144780207871600186567770214966789277884316935947853332622410225239513330004357624595594186150624584653588310377216482478340412112990436864999359394415610082771370766573332932910417966747084939222023396010927358583168015163175901628852404292795463296281532062286221293195758989555431748508745232560126806951115393266108859171299188330192160430151129391008427394091185346565032783664101696451163751496961274042915223139421402157242478998045313823052558145899795946063930006377808631971603206793670225914541211701702364177240536563029789207320536498909385938551644354491064767200363168778497747628844045432226724802083926891431249069047204984382165097492769954799521333190421851115995585423641836186205132504053309546571096783604571059914786231357995849860262119574863734525826458626174016638372560852717460549562187764560839478170001777904077000979193237630847623882471962524082546545290426724228674372250144616657954077016128633897345865197511245184498369519714398016013310149781747837270840842487901952965970551560071825010516308702610956425146035652508481676860119332357960420373679302155157050258746954915786244924269540981698605854469349776148142144249053279703509136728563541966519681855659343968582151271704927180675773928269220467728937140386872666461125503532417005954728517286499519642696354558815042991148554921395848179329036601614038107623051934136859058028201453996143266311930869749337726053696120554729104914776939955625612684882653440224763756429794341925581997403869716396495302421242850745912964825854559209022145883346720629796824993676404650472746818895817611325044883627980048543744986836847626310186544307399335842102789815959517308552815274403912731418870113815848316181068890043835690551232461702734176488248558387980806086068513598761596552348816537601981125689531045477730005000146627356738113714968078761504148342531640640331072425665551575477863319216542156794211814460874208277000352003457311630784773244143994470495732840856518611224438201862216519290892950951577700523314472700868353195644872692532471502593945253736604628041925043733459535952648059866933811146106498657206223407597467453558437666856599405324969869457131827199733199450209264814350219343720750054340246754464039944762746635969846402280064663598343554007872860442228971043579888724141295473165490943250063414774350375308048041417577240947333698794401827826151964766191991762487464005642707071237176926734507608569821676561255773632535050814043021217490712607976575058560288210014497728108740228121297664382988401461894719720291366369609990833225366733276719133318393220977172307591622577273349152778972528451738987583275791419510680205069165482007322299083674227846001376965138682679254717468361471559578653753922789937535507278456417945182499805675722722375930004693113396813982460788387502191350885843574279423816924236348468572966838921528880224318455330755350737449941641935076295445074071493444868572228416266430254138103548402812354945887635334537489893485704410409433347304394621084150879780083531905675340218579604306571319404605773556264130543282758740096834877528390143468981030224267871680924750613379519511630282461519107570941599547761172514804364293260512037317189469438422497920869731158220227969280617491556275938337917963731609480648369843099453788866281624177264837675694909945078393006578697693839201891433974752015702343123326643231772568166970869123320599506831290103873033057745918765943093797696169874136553643976272224811255802091363432276036323281156545049378176681922336438465255293130557518018554422173650574826950033851898877766161572623310367974176558514280452318182881835348644059951512777940233364798811627012794206555661855874881591058248525853052682937452143992371253076212948617067726947547577643183854536664372883956596251380319395536602280684992145207399243008689208012784788860369285556144636596244135226635125023330904908136454561544589310055510958475202072057432597744617750554182794298635185748248014802047457319249486095365979801613800787014578795513980185723315070573707605624592867160455283127415755410940668681395847371816942343455909027409390422958519070821876395479060869351933702071594575639391072780762937643340977645329055700932722370789039917406943942424211354661686732549916806840326072369527319889187979235182176007369107835006742455052139745446069599583330649207937712548550762844681622299096512858734378883450905637894463945510048608198475783559515036229184588506436861385539390592097922718714926818263776954013793042936719692267651008859168394066493675370823212697247628581693710648446320367972852768005730726485023372394907889044495968477736275107113538618112544516392910107380810030610588004311198962852723358831539655408948318116785012713316787830143277382240426594233559898602023053251762723148206618774851313782124117728647885895109830727316242032476440422633002084661781561107118976683336094576899018312079870836481759075053465437235023359875000643736524103127694520354699535454812100742614213282644446227151988014226261750007479139533965924884565611720693524473234166948736695534227752631176125175581214964068613270733223305823662609527701741738920391409246372212227551588309520237450884805351464055726004216257304913146556386260846664108660728047511231337320199861541173251677246888875878448406995455126290185999826765618952632004860961148286063178591001706184051474005999804664293616333625882820566183414118009839874102549853269584489035447676873392166084990686547060270979464797731074228274297323518145374921020807020310536514477642011579727569218654526768469104544717037441704727895945950612098558409325528877574842252261147634608629720395686119682218757644150683144069092783432122791993074658777788213036645991268845011421935751720493959473803216868693436477056961263763238542066707024013148802555848401806579281056750951610878618899437708553196526375329805380911676514345873451976251237444332168862398790383699401948558192100254117547100965508474068260485033295411506026831875694092970527832352155319409355651816272522427920622944833794641699806479733121161869041887866924775435487290488819281170908301179543953066826915119852989864208649700668748965063281199719164365632069402156664562343329690520657117211782638270489925576609669864975704276046372082474135761286933192608513111018282208606355298478556636516264532656797620496337039645959345081084752836583180203943299471964659162759509859358327421291297384112561780658516529314206522236903710555431694971175091183306680067940190253717613501421275021886898982977279910581145300268584406437268331521185682561189015949794808220375931334049112945959044859025457650915946073348394592444425335935925862392729803038523926512810789316428426058677827395872131303106637797179450826936813401893495939201366989999863191341619620643630952598607295674489866783643776047493125026537677958657201818963534289750895882580604041937647408507148533516516329661323195082321987784601313115287834287247992585067491319400107964945855875935857802173612063592379029215149918881000205052417188801646655008197253313251716677121038291065157824874430413486241721115559093949129740709268285746438875511826247966088735104654660637144703041187347553819632568034316748665490352607308884013924564401579898576437071810390265382173451698098242225499521170212955510775273294017677456756452161068104461754809349737519092411646085321644739150315460959890451073728330522054410088504105451263449143569706902569032249296232504213380588977402877921832544526883490655315851792429188661292910242272024283074096062289814746938127484033684535655845600551939733209884777456221739713467226849041909771954619737859479330843387075542534964819941219790372108046217323544255987260502222414655834158212627099288980728697206171674012546150238022268932516731651828862394784385470696793106771725931033937218944037155037259788625774752988593457032226085505661512387179215641199453678824234726777124533383329318541815819598941037792030708127060869716914055999860626233484499708106034840959971439137988649763062667449415490517771171615881188037386041943713795575121073871810505049204644109334702840953641617801374317117432251557885649477821671937346941132269529478135826321120852001748193295517394647766710761815212389117928142514359973923555494862338703426456268567527361605782919982992246300575433845140032649906270346068857962913753432383640680139877838216998515816837272722503673935615004520660207703003569850044530311756477992655813283983123624737055853057757280536661371217890098958119719573648453307859255317334094923969004747521594281060399344854140688845134944706758005199922515412775478614902883609457034116466846006382070169208036953284036437792294279453216952021626720659918058258179639118654415832508861635197181270484371826031282069242010554955246045582270988380757995941418976767900268861340937651351078419892699475267817342582723442610630503176880301930531733110869297534334671520265762333156907971164879491768771024345735255185065882656089613656104081665550040192335070697713942736738725378170446501093116033403122340388435377358058509658311448863818974110011705058210685688028569170411785726353591123113551152765647856152888015638676768485706973421685277917701035799944955791234873250342700404328581387355310361934894745426182608576890101718200729883727324392616620850046288450034318821471351149391844880866012315364494603522109123024341540831090699895429014416429029288038829104153678040539274301876265014637055903092757672750768908572399864234373308607201644557851337529319312362716550874363158473612105399198470663827787967527207560235076880324122473232370981579980650432404564547049950350045605635123169730576740923267189425540414182454824125083849701048324031190683230271631969944671523118749598269243997889912179919670428373101607478993423541488136503823261469021980146317012936834823492767513285708716240200573618612699537984292667840939330853187311253472888523504260446325211344726468247521857676275153624998736572476805486563179821878222807385970524083869589553601143943130158176711807218890147281196023183353622193324008655718684466735175806687506424593586260362367019634630808518240043130757537054553440122301990053466321695821515014175371242503012381938349425371346817118056558622281757401513568999377460770010398814790976629754580808902423351963455554523634519602250204387909800700714031275112900828367634564875754726823938197869809685664948593047225068808063342634084621942681950148493916687652194979534615354672697953603375655501682503532737542583668624484878857132693095306105566350207272753780768515807228887307982882109768916773809127578034329650175899263047178263135641959381862623936102539405706228790604259420484001781367165627446610471595715446073537431134757211534757481017687887132511873478771124759055148388704663544858556765366858976820474547348106387080735820879072722995210915974428717736105011302044658423665957799761689516062905072188211048007440506611399605947489572867530859680333650279586265678314892998239660218803362980472484199221001368203421517207674534743426544143097401946907792530109761670508578387636280791744045092422536281660638193911255726637794613879626072627460518916968975994379088670323630376832932535614023561307909731323377373214592826720063353120610204385829398370811090346629271964871782292412538653044961724630496808788247756898823438021633069627870147991901265124979381680798369467769002009250076995851757863370502962030236895576042530128363713435060343875125642146847227464733521311794284506279013410858390972536925819476270196714508723785833986697054054192180547103467029370170182240489638189398564860710768519330338138673036648206287447486447959072773045955392928590254793993015390643897318960036895161281872809944036188727291029338359640906340425794778264359200138282479001374366675351824502934270841499902253339843727204857801370092426172478574995466015038237266604889573266936943970302427498535811526450761709478631642616605565495148797336236753864441024867569055408565229581663425200817346016844683770842368419248473241798090435350699753445783388637181553174404106798034060818516145698119955388605600459691325474659275404830309830846012915149873289699888480229118631159991988227228959641857876829358901188094413252007594451895578328887975783848426212516098685976702458904543348392969996784831678492080633013634543364065264952139900697746138897071647786972365742904732300101416032355589816134894901598098602757184372598387978138648637938520865927764632713228931071502442076826352061088329459445140070210445261637678113493367936583063875359593097336904668897767751560755834928154606821890872647186398424649897645115915447048405822510595646472358335899117256191029734088883910630044678615365088129942261087958997271946077728342419834224088538270861743631223611890021946957420639974600086076876754140195043673295745454392452527864810496562835441128535149516780565914058204424959491516447613361236233514301024113018278900627951364645491883267873746256828034681498002253123706005456290032818347958643359720890331269049845048001472107135524205147217697382417036620561594193818376563540477627020519606715300281048684140860963740945752429904755725886141652876563929282481381136678245564281224580004632668587858717318635769732552944069277965995746123436579989162932159243969625046778007907630947321458011159480821433617617223066873632235673110151756155741059103795632183051764123155384004495547741096792582727906039825617355592184016607998397758894054739068803558692485885159691967815516087395627781504356251200496880793169587780466069271362679849717691206096412550253228040683294885919977644543566308709959464605013137767241626764613161990335426760708468741001159814014191830946444537569937593015943253709280765346372099147563073783691257117576302336256959636596547374033666995152565047400561241528692987874999931508925961458748595500914068648307062002910875508262740356592166494579415704794467013557356218144280839732112716190150952912890880486342714772269594220781935150262512739119762466545813970038653454577697265709741766886359860690299819935541460250681149867460209312730276317981882060335763537384399090219037106685611696711284452190687547703256903979580982036986937231465705061430137954281384619335940825982789405554730721298928323346697300458286686028708763229227077348730627483011617689029769960881509311335902305433455637780384058810705636145408141017259732022658943632342146639327764679315625310816089651145334656720283610105885511529011092494422675730556343200688107032196129827448453685892687697843941644795220055397501838007177194405276906931697799405700712105427828244309956935422938068526493200782466496919251027590209163328037865188023440609220321022672323357884186276146413627222559069058470355876032742647820798728872625265560392101550283441264748612040147159819246402233542144667086760209116496263604139908201577663635554595948675788942888875610491124488570594049331424011553560370423555992693579586603889321870924027540547415200106296907326341497089336239224873713096233282925141798499581161331782593861707000842837956759098776450761686501331314144145479810458990810660652733614776809961633913881859825878919806051192349843709822807035079823382072948655454013102241552455859832522610491873014812880820416521279567725861002038698442011228366375980901824743488065058263645856928637441830197694086888346434742906245282913678796602415576939901825264273804865209657716382846548269179704082676998853378284123388616110734359808518710964449714183451467101400667204489423598841375003092897709915933184665358625239117434870738903038156364210190350113906041378021351917000209411534173530865058531155246476509268756067608567641777077185823057555699346182375968394165857882677686409226966405279244541695058271058118185134544815900086781526380471217292533638828578263276970268311119335569766192812034287568243094506364600855022757373910069331709329481028143185041282228130892638540203687399286674464911595228797530850108855876004498882961169299183391184973812115322357867306144474149919660992137456563812880713544651587135073829262516105033676178955748720527401371828674220699544027411684564127329694205373608769108152802021630830670462400035405117563751349427026601202208272386120998190227409191993888638817191972792467840238030770927762247472470858128616765335776324297561400419092835663857015303114200173841118177461098308406292571593356081828272839953695695856820960538314188611320122860512029838370498021899876775443336036621455835613935087870998776524925586015277260309105970254662852172006468630279002795337101847486864570246707910309478904594842146269686349735512898006754117896330719021311189363871316124075642949109905577878300493233433697898306342201713254682095553347624508578490997561207190754923761949105471826122465936600854009215793234212559705423030934274801803613459177472057565219933501474845095558525779585904330729044113668542710406372025568024547960467319704723233208137025535242561979089408067540080887436675196048199626883642137500019261097520271762451252168986651978968119688544482076584666870125490450645541279228257339355785072614226864400765224204761369229353695707320102123419638466102328279116864772905483747122297817164567110844341181267801025515869707923521182777004244740528296291373713558072339273118339364465651100791938869096806906019736942731945842577109514162083244160935314510003935348625605795119945192659883093047880462334217592123515663581338035620027712619121956313961170026678779817130345639039257753941598296731512444112439826393294021826598889511341534434986850053565344728198436613449637625594950999004861016703463235453231162506952501753020459054347055995890664398134486014099712828055965495927129928069166782124083741572167729063313475001210785133985686324327580581268237056270850910559444459287067307592974621972925588772749117397676402556822837714172380507757779850025231324346566382119549684381943864129066754753067145895739891960443854158364077573256981035135748865332698427670845678892730438088788096510435477851619544377353739840618032404260119374910342733809361416730893350529088933023343909888657249016178198695250313648200046719705148348519110499544101772299038076977071769616687166648278959395289837167826940388357477449296555576066422243242295535979151971964201902987484882844903346767472977865527407596920631111176657629690651705046912151194362535604407515114617562600039352665415788058119880477787377597204988726843442484888011403865529547896498801457341616864796852997492102216249503925376273303058988990896955017002214218005190443562882420259559634808884996425518985818205572696365637792039091446419334346175945478040026690113863249161993268556139275208969600398902296988515050570063789594156998823930987017326873356191452069749590853306176369721086357518279890032187974151285003526927440637160298734468697427371919931278994292478538609156687228189389284670837040539230268428191355689715045061418884585282756105937877487040740122551757993431380929504494318274386277509145272686576252409477040358526780161360408434951804698146890214151772263600624525081095169276691895068164712335009961754871742058821753889039413425976356865656489519484785603764937841111920157595819671495380968361254871740160026476633605221628025766538648621766346868802192904808696318484157675555921276373299675662970866587100107506404018439662061580231378502413412479853148673650289378206229349138858508586075455135573437969676474271517133237984053429279910148790791573660143684466609594953284576698693443887780917758936631407633700561035661836551367061693619211357789704302344003070366016134245002824983675136876878873505850137828831655915813701709417079219155504599809610022044731699622728670513216283943292420713362756598005194561427762412415285322899866266568473050714326882176663422601426847519278392565764327036585575356578264688002100590576269314558315058300655495491509721415229387787777275643408578476662211057290995258119904482918142746080626674850080967706630223633962916540488523296511101509637224487537319515793755126364069850100379523812250716611236952335679010255040448820216326098827526759435236205433097153451844447292294744829899743648792670744515736221982634159973863847344433667691441503278111064088045195793501228986986845205640569331545891396976027142183485831251787643329024985001921315855390464350594864731715778020804521955990127276095078317140611775390027828968955505954292081112828879152604982239933631722264674869787186614665206974243623378232040745353785772370802550171931184460283590233828490424953887321388029701491598538366762328797291900739688763799940521251137937971275156292299868059884887576328446812112781109564568534402006408482658223997166693249371936594845447442315637480919229093755630226476020504704370855893960607939084398979557741383642721233693007288061359166549430016814646042699177597780082680856788120021412206192535666764260898426476765317568466392500733320502889120606711888494685591856018247742648345137433969809550955826796658438795271566978215293069953074924477955894219585849335625510068961675414914006409475755416498918553004778184458383438301184630191528098059485449340003309958440200708002864507734097439117110263701091899471050921495843527928719512689708537261426856840895802174537483578258871021731849307681069258798508450854426857416303116936182961472783315706195542361709305995086140894585113704328692449214631638208463718335219343220096001433007281027471371352728133419749807219807206776077830503980950944579098404483046204087609828938435598228948494848923955337791374586880153202282140022703739374166075223433536039316488444363585186721632091159866464592663539295262138560394472522444952499805021552342175925935621975240711643114024506172872628010914027197017284305153371536373336475833818079080084095247282330775201082504204415179172802227330662366294081253737942468063889516714148162318225614055618624175044254118802492324874762564776005537511314257493104851156868747789109879338862625021752252635726814048106746100836210124444708223651891617472742461404529370528437791665499826304571511708787246172489551008179712840118306554188974548389209850170144020874779644689320196206092870491920887141304721406677810315983655519815097674707232437202138094536646449034665616340231274235713955256110672069135424530966771345109145592315299600200086658171366173010088438670396860313236546583659603333695053816316044738795472783908368997536073645716547066508957137721787644525159941699969180384033746676517894737882577663682446311939863260707262489309969224515785561753927858389703833606438338507918226314434855778899794682986702190346574491439813009883342588537751887681570044358232043469734200414412289213177947995459657435405673952499116319964105714473511603282195042022662564640333727573208279369495903584636109471440690778295882813586896797631643211410554209341181407135099409468788704495989820830188523475679153611066181348570028963498932756615312084997099370555273320364634432929725837504805076893463743187794455516243737554822673611355674810063790386081034733262644867217232167461256482281623462736078887508461940772374851418844991881676542815181209524052989222060830150510509755686297366736565351239661132926138162783904966020520172227709405579461283351629338017348836809530072544058229443574870281104982261434758410179441594797146037606031622765834984397433729624264330316423203631399340002632135179913519761596180796526440985654232613412872283709369603167187642674482656275651973120722197847958829261808186853734782347025369393504877336241517137494720504707811580513462445673720193437816071959369300633223115581655929739477411763057749020443122732676158250354635978207720631151538251387168818438589881422630444605343768019772335822193410258457119348059160529384850909366576633253012965378144203132812641974785416752496455998493291162466434868086385213991321362909451337204466178680007105120261082776540937877294247002390394890154951882620667894494954305473774753820663896202887576120331100867291750837745767293694895312119373425855603482150701177903976491125445510210623360068504643603468955047481827802492001773968443699113875608108881764138037387689438273660473556192407048088883674708645619294364148293074396394238723099378555429565206340771761520619396591818713482470906116395643845147163705307476648779228309138469076741604716174022395175103913484598814120559903274016538915287736789815506350985885744799442026231262005469975930961610424091436440843010418671753943104653032879839719343602495866372281993620800087624865596541030350419679927674026391460900560623176388187260669115096994194531266953877374347646970615024233370321571935080771576259684086827244878102972694477233768827250125696357973321134198567285691802402646136331407291824259622423466101878573126600222499972350664163349682025863334593114343238589504721881411455196976959857546597103561697505226910851647837477775925269039489869148754139626044481116389053935788729932390089438274815367290275672008679754118261523119993882901277574812766670167510215827074001047795767988207660558077302755553783575201735487912266801130704821596386033408517548463312796784199839737512860462258155707990008657958359059347783990610828162436570946675823186187919470339491638143949151029733177497943514335732808645245406646531417288167320490292295342465373549153496918914595956488339455029959929938822148934573022542367974744330392501483516495387650350410317755704372918302629858471259491598685782631510129650380837369312306429210917038180835550859411482795390814779645241977235849297704064446634016400664763264128076677387907959429787527183409568480019469265849740676766381735747801927995114538705571750186924122778884321898773842748869671973355845298671443045290670714512893861381251857926602330444908035368798930519968629521265124258806864381524091086994332131910683675997354234321918530428461243011346263736059426488204949114601197180096963897317138911138539564639239311904526520390623159858478277728204125646108859817560794172173442974154376475515532909917914813983638204044569339284794793072346946523746515675485134677736839169403712543893610292864116545823658519291416551856876399658373728656357538897880830136156997508605259911986669171975102753812917608295821327094362540981071596378426197324098396138799467935346594093513068800536428948330170949739714886569904181404440763419445077197137659887908845832185383601869094003699756377284772728558080125508089610068848898406912693093130988929102833811278502995775961191531917290154135491447881552939928784064026561509832751315234148966404471354157638995657006333778752754077023923254878362832045786152726459405380081024023138819157308682606261207083053139016913854012307822519012849038755441327276422173485279530541718520719527089961207381870123545964444323906135381512938765623404708564873463535638097185637389454280113564359100217769517409105170242440536477081535960078856291854639808743602164986844827955935421346364865475847521391771540301362866720957328109641203756660148599809238622304204761836179863056647932701062669319742101817761581441284333689144926796909104913604848170619366475189882261255410297028198060049918301652432820142620247758228251273978980278695839294399019841824326302434756787876803601464131670442351197315445256269004679464241220373430313748369275124045188537728009328039822537391097689270553132141127261262933124513647155836173944488298656322888759149089131459623349975333169845778346455046272104930345633809922929314619034533580473393811908901735031568159794347046476064661552970080024662402237304344351629009953853154129336515884735034589917217445201632284403836267494718926783861144970322491202112415962801190108716664621822443985045573221150416123541432800575049904274587770449703387410699338472101598958142481871666710962535225981668505900957148412397635193545526939298765349019339063201797068662882471107161312374352372487301079971930763942480220503463050668600571374599075248785465368119581941834077190348366448456743829558496619871812037199059221632083283184472850444066369631586437459836101037646257356373271970814946602988317441095964615935544019681811586138295810103284408065391499135887846823851520373292408822590702238443816128964820780158891046333043030175180195588085324987631382751228820588261506154319671125376209546978615533658565781841731154554041854295006052976872830829200660797936617662597887317611618540274973780046418487761614989390216205495284106010700116924992625674065196242778073574429233051558859187299753148290864814238936491710091390301824188704533914955026274289139958240239080842967754395030280376098450801987600943090684351469252991302277523776886773825286719124916341324279006774832813172632568116177100346994134519011625084750843377496292940685180180169025219659984217077178025114784787249484452642835302065015396466667121408048840606185538387887331242220441224275204803068652035163952188807056024296766842544220621031996021204179331453892208160457738898344587581123554950931886820838619600538705040585751162055156506195416396710634691266882096838005732090797444551832926030991237927301636493903191787862236547184280884717849134034352685891996408244897366650135503240183903015008400846517277548376629388541696992230054798105081570415563083183600590459799818607080748114430124128756722251539871238793127140213391418481152661923408791862132985405282520356301761801069483828782170092176412620213428329780529636727829225954639201917241202510135725099413479924355414197909021982628385129761408831235757664175393253071849100600561890374840396101843446760779604157155113913175765836267948604182980026465384047262918913538275465845907266765430050933178742825900628074225310775330580288636028023758236847851882477249512447918681775581380810782235408793763070061711224520159243063557709187130784948961481487854994550845606409182955945331193169519109685658459776000416205926161974655931069818093035976612710766934896762607420221225246286277198067136267596254386101531855439295167934043751507005040744375338774562911311009740039656948682240316748308320244183651509237596567390722210637586713159086941098467059468813271817452955934246075300655519175022772129731942642892479312343256684931521531826213957618287233592707064965942322105859618864657463034497068483414155677866386016448033071494915860236530128750488835874152886433636832610183523928264018632595654391210871906645684265553446862623250096860498216813918096408717735512370638768500234449619221531130095847587387279330596152913709940899461299199267596712280830905256061725264942686724107094035875412586470264134500228889894883041658205107791893557209021075000477604278209812033236695771242260883867990132271886905717241660957192269043941959435535356554126497058826481458881318495301694735639403312083262494602040300366715479473395490631850296488297587697152367734608760033450434018396391646488789414668733402945756700301774676633780341412429278440783806156527774089374089626540226186251864452530357780988016057144744160417862025325383705173631963511309361541792290012839532461506201876802611050478647039786691415789941942466895377087014613671960895448790545950669539484351737492587143231372708603827745504421931528308168233948555214657399009603178525869654818065375868868615558316855119303825600611034324766962621303194226380151058365487304937630617969454221921172983602748999531798045641076548735967924148104450098895822641877114562754896196782014048264935014969603671014289048003847494967387163046065040684646403656394441648903002361418846836242493557184191843274857195046365925888995209756892082446228380342487783678043116490360199819416662619592764210171516022525478131017100619178000385430110214735373381660931188293233674743952050382333465785584941926269097029902562528677732475723547539258612440479548440867274733449198120879034300324992404877609465319403374971791536820542327519478997953093781461500099606358871569969560641236257829997522234821498377183135333473540586885135554412880424764581520734897344857136481575859493419001683678110970450048785990401819524346172393479308965258768121836925086247153857231949707155641999357627797943263946558409735475205738248469309258139633770177327983304364051654701931674979533596535874747913895484678760132685137971286014122520780196746139115625769881665271701884275177821174687380681353755628498135428536718005186197353227600730518765770996588217831003468530094958363041544593897262700272686413563951879053190765193614351431774129730522296239631166262081661044393815994222830137580834572082447571652023587107140051584641057538941798857575203465264874254423354164017480421784378693523380163176597411060829213594787785001685758280830475719769125396734956022186955722959557155373623096383881837554051151747237195228775464133293773606530459557197230405659491854327587545114426367367175251577326858589540768764330505791224390637557309920835315263913975656310059755657732085834457922670432015575809037637035113505615678903567545583630969940953959093421966620895411811495043023614845364618117301839026601985857837582523570620792050382523278331437986856827766098589789089134877807687627645642560256733998145978498619965784691901624018064225239979382296075693294087420539565203856968877402428741150437230322236036400522275233809126998242604454682486344095735272309610042567266727669144115420153317656323679670105432471912947711894774936853493136597253193779042216085693847476750893336287919070525325055547121480925059775202221293599592760370430613461866929694165341610889109071300163218185817528321977346890290117131213547285347334462917485822840015764703988812596902170061222680756011570186686167460755651600860455512333530529945478837373613280559533279146493193297493192721919611931725987899410021971697436565151618973361268800946823312528116359550449666332392507360420658394253045318485492833054614345462909429688138087907800922459951795428038579202067471329257107284259493480345278475236543639602082698694299982925086326434437420038007634992525102146839210799247147369950281331408261181373971879594163437021624774076144685240616531204421487703514584460255843197148812774924911798020088071960224291376761571651648105396741023425165597608480306597430454705830936430554952179356915930177056747388596720507221335330004743114509883905061334411037775852372132673244451989949873233707664776799685460062740150456442025618570034052008328136234817874794433914031863621147084748068111948172686426611710357017669761008095700104791724184700309119516008782745186694287482422246797843461519515645462724693803301112126846531318540759094474146480704713739892639947384733642956497075634909493387444360790313533226011909278728344932941860760825244859722535061150078555351105601532845523632642854082306216034523211775571862816967965717901913980135744974594372250037310340650935651013693915318346821166109475530473314663174193292740120556502523261031994693666651243753619160021010578922993222486129596595224945313363137374140494201873592993218751441682537753138124018096952255745776647753134640229102929405981171665115756491420451348655656360497309324216458328746382289389323341495856050070077288855889584377899879096117712145967691036008830201950498224630222933846456465770335531310051341680521688800353673124754977013141269960407464826776597366606049237400294450625546028575095924077841945821686491446167667714030992260614528497816733334354455881491698262021006057041524122890940769252552736677341175094565380957133511222037407096149501619900885258595106222439219666915439166628779220902807475867826503029696722785678978664478212244496945207584897497992147889609352719326733960885695237882849499504432445883430518365111028132256185524972007829327193559006356121963791637117029224310785456430337015491781486887696556473052061325561280831755935054956058951484878436113774558182246755451362968406158654334985565825984443833684843698903562124006459764108193959954063938068866087391111793909524428123447408282298876798168920837779685272449891135222353805824156439301553003169888552665128937765077865628130311591746178411679610133347545295987748654824784923614083297730869227639369758516350629390412835539212065465131093604373430751778409988205717800751762910076351014207148964736678287004770685683419454868437786527529095202549946050178815862071071678592092041948508979969336812619666666276187296671974574222854198591723367001203913733617242048931527638908342695583570737691625879496813601266238976827289249308584609644975930692276786403010021520183496589256162367033940168946082663895896517833577470004077320571318480162924380151225834494045023161160642579281154240727896830863755743338537187532809480664282782753843466240210159962788306487836660420945441298305112985646340127316217158503149518610169559974442411889229042167903680925845282783758185478895752863279567191574959989125421424680316151977536218449809233760370365049511546129623691450407409516990973993210667218569597229604896574215506652569662239991609044359865606211498513470624587276853318828059692312254718141438122932324574192440592685000400130581325051528891149170442116275498888249991256245537976232887191490713100804214121583608161942247533219937848474531002687446490573995743891362927448444927079013181727699629656253615653864983598177670354695737032722200931640563571195873738290085193605353995494041982699500465453861783757158430860257846199203424704219838093417024492475965137092690376885057664304722470454033875258221232308848991980148914272074711342544666396703345783482059912679298923933532168670690480510464394763731393369718037368509162029069217978892809332695094270659661163468819919783960921438949968392422670095530174598939438563755279882626560923384077359683706974569963085114755319565600954283140297144900333109873004100868993655970821658073916939546911087110119827988752915429956786146356884622233031373464872717417882049957302098654763480255273149471420812800034178726850708732046773879819997304129805334046559858242119609855395245248643897313938663754846789655853229499576727292478832801931997294349310536715544684165406806170514458399960282750768750821171695058285167922512551881939250597734840567420067582788847493824581174895247370022850864060700421036861574397636319967321773676671275526496154585298040045856921801745655862780028850565966702453793196233529136189821724175484100393680140785077460452542941275098652764341194517451126935358133608330733059465002249827346244047577353313483084769544989994506405507656398389314586612402997750188594265267006888495568540354647321490806598375830010129615578767979684267416367703762358922199373296978100940355375508381270989535718488449185922233868753093975224548725649335453875767692122706934752973452849978010848078818479058650213270153312780016529547423178109370352655141156473552987898944136586478781404108174136780669691296870075322690922860518459787080104224948569356966671770757759898205342478413638368929467134465060204221393217674830120982528951560234883642359632806969053297678229494910313701822680071995298715024526236607468769280492129329851502685388732435678484167366307553421596140988306091271066132533359603889761551623203074608576886959967550013654390218178002794571289041715251487350793335668099277132392162615556733181753504909016663431109066528191548164817991201561566250577576342343255944613216852421290427501842076454644917269234828535256554628212892043381220528660897026465974014056559522504353519305291680057996778459955271746184495123547552389226011515161564765660664906698990688332359216142454121468750831579192208659957430943530076850551339550199739139884187563943810626496073453035150825342284351555333222340749133114969625689422859908414764834581367277470943234676773299308666721287127039470211855374776686996113622605534241318637757174169869499311586532335283891769157246634541272087132932834471836811155542046990176871769649780469345696225138386593032081096998025489212060550340098340754831725813436934480635361695036835046373547723743863550040270303925398485522560636323749670983111550274460303980276629807222437100201492868192716464309058305784384113018868515439907390598527512013526107731062279291883625594809353304070384461759346608600177637587206529859048011507791554456448906190795639725449172721007637410641314118490906923927367386754183102049277620664511618670221691552998850160289706790415416649256728166865121090045888088261924650632647143175298065928519996968273699240742717090400959579357209055943606123760086253607129515573936037985787195394428848279265496959410311940978596923046101653516777737593346782721137405217900951152779356962282294555245761535598340377626871253326268456503799780326790659121052598526960842975523424543743423687658510404112655146730125033378513015589472645343428471153960210262421486955022701265771115802947147399166271911294766344985908516949731977884516948234922702164064259916479010879614395004840184509723653666955666731627252944508110958498203882655292181281728287446394396698168317112574223434556241572564951769536047484694120705708081414025142040358533426934923891238868698295983262625994941654156319346926204985203332896983867802608863914887907014456591117464898594122077627574004755943924367324632738419497974897175519727268597233319203745753217327962734535728482416048022404759774135817744081810811943875378663040393993928515705347579363913455674842661327729210014751673375204663164769855134051400169891781598915793386326285585821489207084857152135899357224646819723073036570601331649959669619849031463558644847008106660972604926056663088934250491704760217157007147573499865456333342097792681285202340680754602424842169505304066768579539363520246326143792546703631809323460449935078960827239660523830416629980088405576891189383265327904634335184493208556361094987452823606205062935503476696490428995633016150054124954777810274386304685521067377797094301855249953183924321843547763139597597227098696969960497480785597739884960930901298422098982277327038937692948461218022206767663370220037051036620874568123253346485671956301596824662724568236366738639604009624821538166576469359088080197137654759985720323622147059309383554598972224576904525951083701472047721020289395176358892834176077437719837252393408817296277767552544323778226132499600606096346906714624066626621804433516403330779415900613860489857897471191497309261986589870496249936831159065311777631693660708791843792304519812816684352122135758435994995073496136908075809073177033686869521227388989415712265177484978841383246856683705437945323924287829570756424613865283834702261120099397352318274648694086481460439164906521348560039837746285278872893785168733837990969996495708742687206716904596840694223660405137970475951626088292278857864688389770071934765731993057427021447904692448624228647462708565747363303644663434245926288473500725042268066727335763452432239734917341422413614854194683110785238248256121296223601463745829588382632860975905803911901892313230365857999027166564005663257756221647663694078586606192832006495007544470767421774180099049833383883793504828418319756893694178340281861579346390947641183384191136294689436265875777404100289828494206994802453676896522302951836371546581308945550432646851179086151182673303650807684585683695337166342745450909892394637809699786148362515929251063463225279809481744154727068831801577567809001515965341509337106814923143238853456219195716483472672349163788257676153322419412797933952661916097423455053226948434896419811280631747083882547321673123951843272616672974232243539249862260440809325206101934689199308023042852472765128153538444495203310126272957319454491485016131953154460216333447825556561317195802723256478719677378057769054021283897145507940194632775802287398077650122409567185618162397149179050181924459466011513302988743190099214860822282156000602925195159085581272511386063304236034892002787799907146703711221156078602828304151195583406488563078735229132156599585914772449776529856148022672500597838333243314355217502988961418794992324177654505401415084763538936706386743440663873775421146739734287175395627991737767638156398439003214214435720548139529963968165838979980371032421578223817646595981933801838900966566015027228731408144528670983324733654076645706931794208861706094171707828788445024478334693363878747798186917452907611427668268985529102783700525579614725766986534176599174740700998357364697990934534499512956696059352489886214080025995863225174856153341068429753984777156858281231617063600843698863565467093244933417815608025967747081598737515601992577908754023176902715408019635871280260898765140129722683106830319874188302356524789185128291488957718505331814725140127152127942226197291799530216375655572764702585015359968464357050137977410173995328435686527108979258138110532080899207682491263089671869928948463613393210683799398177746496169428120688579473587132705696007520215926635062847451819614091345153548481440908986039001484348901168322737627905047558525198030922027815604903640204130657571909652525923941955957483044107614326003321436146027291397848120366473400139080296309736968129767687201920493345622501019065805017450961597620011299177031195976787146034141860174468298395333250477826379210506373187070697404372903911139015911341019640946860255519118607413205813434908666958086982079851660876439721606065775453540526821890871182723691949374091365833950877990232858021603948749154965872396326485310256074693582999110025052038274563526992623789473464687818912455359704939262361145606434982423763353295069983233226847448595213464807698498047771676718423977965365527993011429725803727428436103212788103797775515887304348972413139728997873240960535410825179928163501646590626694165649668047637689002661125823763143560546969546486947677166207430715888605874074385858063753167986111508033378370555964294361571715002698003316902363508080779014310606431462561244144002511176112837296809004666820008496212243642717223625329424637480422373901877651549581981205429087038314215538312701350430490657708593912368343368561405378846515249983786277295873715013336205721835531506200108547526981076482249709694683839546091039411235327754699963001995170705722013686428088039946928956322970743635425670329321024630572210197500616817623729320753658282978829171887401550668620434308773282338666898375948557202749906536323905953949497601070305758046219540489926330853457146879770564063725478614807062899345649520748238702268215143959149805013857905934281044371950081703645457311986091499923473757201586481871157112675795229898153362390984814498258524590103072188901648580421311198218605249074414879313499759833260790969390513986519058464189637625269184103193792550221704635413351575066406537915737907156989671486049682349284119859394455467698205690647774457456677559669094876719363638124212898520669952887330068102292318561508794094200887322229661526202329636224432772197642680621818439673163501746555485239574270331724257274179414712949777673993697091608906836630188983687503049458622390612267734364058962910629413579480286815218350386621863216625692683276745374625659945825731563000159196346576190334091513861359228423614167872376793459842904767437994833554016819482060713022001987471950577951241980972754964510275098881340743646415423847749342636635423712302860992125258762628985790425222168315808986756744894574915355819218477708195800388235049029035203605363417069728719323065621288153964543440783539212213803430577084978908371389115232931789665160461932497533659572134605692581974313185979496173446702925728143312843170563533036845641353603173339260142563500751043724823900775029063642770474589523271444332989608778342107525209502438296698010792579591868237701933267898483624097373338090913214346428538090292895416978452875257156187895256805779538781718923547828065571416559573081873614234507731812771355009281327031169259278590650665513792651716133951970697126049344799482986886109001787303431163318606540729787754131546303107654671751438867052119930149631685361763329662999462161418029194610471089458582145490674142013556794325342077071134763751668298993571862118736935804216273560826318160447258025959849527596727026182146571556210631367668368683750585543189974545540076968280598918795627283458558922471963926948532938861123805054268652188059017016211292697158005167544846714104942153850865441289282306635928915606860153472645100258319121693397090705749060555355936679532901256174559244369445121556558838497194513042522470749218935209421423669541445291336088986888778650262813044561671709742160057435653556911181528275309693087635440490847922761295817555574185302692468890490784200841851129451815480897417977069709141069711009673196879785017693498061067211675077664773358660975400228948966368012650426652973703161413020654005438594033183230452881627261676546965632720383988845501516336723023224163925437610962257296278519991701553255970121989355690091330214826760057787520605173547883483420793228929220353270505735849399631556754964216888274980870241238656029667670222449980510926500907925840518758964034547494932256272323783790966487820255329587095544379407113062006028154133713513403072498076983292761745421251718329965800759035869537292038165348642842182954641376731093145979759997374480357550764110973053828276485478522634782374659695119098432853718128479075938207683799614234563748349936498916597268057443147930570761291402951822042934754299546923332609648928715500891969075904185591700419930674918084202283794843882473432924290992705678942768297189952033282967007806673154915098429816165643401068511861498799918840679023949811391882532555230905124312788019381809511338840986549091126516579081422371654465812970423131058779435938833802687626850355948641927461082385928365766653174871615541463145816312915896458188193093875102032358172013161332387118214264552173614829995688199714152256225819598903880818154164299432710178318068080077507625273667190552179918198633028590726466464760257455217536775404872988663839148416466684887874926710513041651648598687546447261747140534124743370723472106641499059855085925453101245628246355028776001243290988249783404203726782178910970740980318003276499630493058018796558012618348160167701344813382925410265434198747778518583766996055636416187434250252532395366677668841960169382413141994182845656365916469473149416932918463445738462866215723673943959713891704760970192369778915884899126332251133472472644515738473940849755320128214949615576484411915746600261384381098990031267924141531998438865863926503754208930091583669339673223596207488030349863503282737418358813206130451445240765191230620332176104523403589277147599564006849673100510607697972972956231461546053949693526485224459960437585225755115543737197284951742444817492029156058582076227120908378943865404930129334036366998075083380728914349623011284524203469298677245141171496811125597935062789835709256616154635192157940048719023893572868123680916797406464226182001692810542694430760839492700339872633322560572185364657028106349424839958620505332813439596022065190653329627437463131928579801765054116091255913446057473150697622801565344197122646311090038901552224235113556193137278112335771424366712207820683724498184992644577430593901658140712385912180697813105250293293069832822735634919752598911312406417441388008013190152451088479797722622291399520982524677074858831017455960349866391394896114638094148602085012527336111972628460785830872475968140382378195699954622435478498456632811189926695555911513399511805771445219525849023791824470252579115407187195019292805999277838690461705024018432108486222725709695799829241528475926764806979978180547002035481721631337704916079622256028129124509936968403095610713252870561173263649067165656790580759771075879652153786494139298781164992802367707170928744042938603056471440349857239041212440108043995357593550764911934011214043040011169612120555377793727508635669738406066777706873085290678914722791618604851120990985089484186088925480758346614649803518365508087200122983458049421622740049808583712151145930151606114443223136550913468393242586138459283716414057236524441220119862365670410007496904563462210022158764857728110094891899730030458335222429702938131578229998211556033767204144952746057872475225702297902626885558478182134208924051205856919728595183299569914697422991837409786939820588424251983258441291890636937611396323943799139980836955357872332819098778658314734125565703722119669814046205102553572494710672504127128346030876541800211274609607209826129831712318829410620377571571443601650967665341012263292213048820963234386233732242206385570928737166225655386246364934982826004017484755056142147196358412125398620905451639955363003427866473598678101396391004851357317405086969426727231456411264115834593551993814812037269509287485848199301551192687816583440839989634448691735818044282703718908011243717688955879934924025202746717160452440505055827186759066161409313295271708114448637184295248110145703555048401488339381234392079325897807737442834893471889727057394867783519118050471631507147953579220526953105027904276598485954830130580175759141996049886715159238002082577968344641261161253403202004311853561105259461851975638205580316400606841112498249964048186145475971049831752323801800434178680949325083335731716091485274937335188797884162000290511595855047998206663304702321949665165867040135562766719180049253554852929473952100534660891372598876590473094370101569666849444328490334113298208041550035239532014150070815606720354149917088651929549800855664089437195726546282814420964359090322986476188225638013422997303419490296752105351157373965385071040298923778237062239112289052938104638551035074679274126316071630181402496795197175549228160827103416787133694175879951549527739621318646206261507051152134337846233105119113375809305716292626132435786893739565531607940254195366207850681525860588147246086205641033949573621209495109787264693659389356402687361936784141740256751776788357910103270283756700335420069429645762754323696928402357824430713271612052682326012651768821274631239249491357905630216545496045699147354916897118422653095387478617080303784735432953497590826545356870289119989653740964972685394070001972160338652848767528312246575960308594920093654500279905974866269019536492911992975438472995757355625843788425581826205879282867141339502333556506308483995377451488141035073105398646753651309465278385384929428534903307779811261377072033926732958594994808240654713336194799053640953585037478770016067522848705374198779804571230951937168316837382216844503191821142645441222568560750734283109825272536454855996781861113019219207673757914635134322949767501905591697386163844492036932699993667388748990941444582616064039083699562602972867474368999592520443834058420956805825664444187765112582762635625045921146058738044651294005004242619104206237990910813561621617355008334838277095828120512948965463174461782356219947242710408423936284927102726208120565911668177314276458715463213453109262052769162575928720182430876024407561642744757385186772437858605588605845358433410133808053339704201659778129941377398781405892354164870316917448595577497027496507499767099790232400965408326826933956612611614276277005568447601330780079249342258527874866028441230170811617066292264471810624914438773529491216183546282100097920647567097457792272162469168325590978400045817781642175498089289916171616102734756255304449182702523438886169089544625426813286757150567710231513548247358126769210446694457012091114384533673961066197390331500486913272720658170459661874515449744001928632335375768033075267487541626471602181427411775396828865422215439962893337747430541028522016212448510139849743949284456377589705934756266228001709956112994939966602722655208087688593683521520506788688673464754862969066668669553416040717091038357488072507866737070354999038467658522203725163187180828397730437239037667515365755486696064602614294383178052227147516272752344342754746754980272351899124481229350260113685139421504356250132819888500544480266253251533106404970212851968145662095659089340317000374649838661624946415707391629728726554894220868264434021767366600842050949117823779750221431838793467545737542324864448827447667950178657490769883054118469609922611982518102121553786064793422142181329250576322996170867320891007906742733242206643433634510305653925120987962520327899555189427178161695368608390891688532813655310736459389724348469554834053444494794878629973172321025094090010066544249984613360830467164354350251845452543342844837396280672459045273554508493017280938543757432898698364332206385744139018187394801082503530168642597800665690784229297439000558246163188724297348096101497748336827927448813313623218805766228882155780197702771792815709926805291710629656641489004036494212428295805947957141899491282753366136487584666450488337554487529266982040581352574822319270502310471032790305670335813140756137410742675502866984739091349538234347902908067308373588407088406799668682926062478478644394058170119934589996096580837871672383653318408433119061347856957821511675045683479260488041695741691604300243375817118240549984094539519505938186791015503454003362979097081606897952613198110415446217194247725630688248906885065890687652243060048838435390303889106998983196219701659156786614972126316383630256561094305785647217965147314227192909613206642014757443992484185981621643255177081905685333913275776878836883393194260187057181024066566492205669078529006584782224038855708478322293477961595169528147067882109449174637024903994156352853319327842470394471506788392790308228983396951181825747067441152040564650400160923521318240440725753594589113690371303498226700985869890431913823361022102221166081682665326703768536474751203947787004746280995543706045959761848438036044820100100566870895390410714433098608142760945774188170437256652478040236706174396429364951780495805205250315378251718889593625828271715739231443941393874719941758114266596220848909861253998451588070079167433167540274822056773627445463287923746918375556184887234143773623703131714669198000685887838376209584304440745111747487126301248346561520349298314835595477401042160648738164785609290544111267927419226537990130667931892367522628515278421408431143050824738104506925392021712515006840402582859791132330927426964190875281783849107666362684573217867898274221127520021127522185699690771680555989548493983624370700828190981965178591803514124882560076446694027593516181897312940827880579538621347858866081357794891956366585078930262094050949818345808635750029457898187747986287728853537168411171651809379662122837891119448962598877285536209483545933997453442946078830982082804361663151998810714303153223227410691622592287366615511387964485572554420240744371807195693414903285415114940287679087720945441445683364537167747875107457574588460698691945828447300919233024593808733603429564596056976496596730666912984014354412716298389892057810519987406111479077068958935433910999654991630960576763199088603977031989944262200887919870312320278285968596659921375601248010787799799551370124950133165479203653377654291400566716166913072292505651664204751249917168576877178976615657829140333087799977110015950810013678214557987514302731809468114313336329999251518800699846063519297480247146882855513869664541812446801536335731912550265919461505442386206098643165209878983306506087716194916629909302020106460839844362268590298659741103905138106318298551920727670239195490178340279807473386398460591221916545936608416431713346797204361693019923143148733161761576902307776036920468883065744627748176797605911447689649525263382958677765247488409363870953416357311248783341258105581364855056637401742483364281281334498190930849884238294014371141788047184387546572899848526935833141646290637387588074489808219580874983677135756424771084141690203585826015179096847633190783435356914147256414849973690859803313833320582979071581023816519723930837476154183802285258529216201013684181520004266004666756131030840409148924393387412290416210803311145853768917083975585682586711632350482833303021942576671375297185100301800165979235714665720158232017116869282613798785137234994886123061620025251002799772073684461352760417863244361920092116062123256420591546324869280850885036163886072806617363695574943809096282289891164871744406760152811600126208111249511814259915362599029444751216097550484467781889787130474978096390238056941180279557650205765936305168174689310281474683763003872217710011980762410065514227675085458524842468142339738682569581481909395342073764454271833828766472934781533084093455129474719047522024034889106071342830963986338827068066548106953430657682270257498824375755930876552984310377711871918347135200128514928394921496163266314262764749444629936734875923980004502392287096345409108138216193659681632933020733307059527375614043150101365394886593922616380419784499093327817898364043066476001064470049060727710272294026895025674165231864374154390782150970800591505005922981445278630624755705136515781740532102643498582378806601626752921301655812951703038309928231453976538686919151254927475367675113048284028284360515768472045529509961001666890207687583381522019600279036335976926348344749471901548447491849551017944599159584121945924293296766812730630097375214306276417522197274573636917586401294239529041010688014798403189819922062563795853760681835410733412709491067775279182813448161925238250993548633165217033901296089959190969269844819236731899896795037577683978057843230063141735579181579224457985925750305462442432645049783207443932792322961433794485233721820180584046333660791025773831809303699279514301021929904718796193915971779509721960498958827306845187161271775701796952651484244577563155062095438331082815248555080185304695196068293673793454307632094378863855336575728921973664659252446275755268884522836723426476443449039634971215468739138540292745738803572788988560887156739082009104625851162403295274179812594796636556823965724607675135778796228272956722260231610983145817459210942315701050312252719158065756757635102640274132341678577895480460141659733254648600476022351181588958581657257578977883472933522642663900368752108181817040185127827020730995552424670492412180807517165192120702367341019384028411244595445969794737335352129600577368989878047809477769330707129339523780130602775877779160268105132412617147668190403512680817268053552754116737878260732631771001229990545502617644237094211862608145924538024012509833667085377752689690780228090953605797495472526562687292213460857106049901794199787969867981713749904359079772226476715242820875263655425383178323096266858778190996630979952561545036827392918228748795615832544859337884865060712356148578759275970741484818308081106476904855866936358381245809423423080171774635295399180304101619202569847247415709099582922561690060431474728070697348262434522400279644864939801593805046406232013611675147914585622836123560953407791719385515614800338112198309927255756918129329018445421381281522247395375366133955820407742453120694835245799536662442632381877505626365404993261440768978195482565165599372332003393981766068132035550771481691410562474956612763882439838346894134550688869963601416674238687777920838834589991137481980822106329472748152446381538236470012990996034490185946796924053857304027063051649744614840612668286839598889623499605328154121976239666974322820241489874309346860842177317616737572729974612222765067640104701756307866427820876923780997275810482993782809908701546637359089408740181865366306510478813636977762538838643158487137589403442784245702443796077454125198641646534148766604917779397640126706079257841245727725939994917948229012768408713465530350459400909878876354357566777763231049889260478454222882182980163448770887322057942955095038074396841006411181090795295210747710879980314848793139278666341544203040532760212522065536844178778728552270538369497128276242149606784886223204251954183759114902810941515544086464553173563697898487949326287651539503755274959145125639535234872175177598110147828232343980313021453194113221358551789415448571017691204521579953389748699683644034991577881732232365231016162082344133297058759093928678055882184682341830372319878707225994415510044052307962440125353517463892606202179348823813837378534824128450402719623397658417144948371614713489898255086706365612088219934159078829606717327824924759600119491981163217940510709655348285448613098386891902887497286794312874562589000044762531602116118812853497735121059731396562195590444297187985756610668873785928656364260416880912359379861849360672072258096200193937229120031709387951205656194094636548832332828982954210473276519061276206268880666899822347257629876275427835004960377180544432577025203765279390295224251864841491782293691742126314182371047214427851627473605020075861561453834737843572867963583468765631419473191434989346467616774244942292177156968942834880027786418564337856245437679343025466489030183399670948180444291738783749182923044908165209713955161081854838202884011149235856532183051059118543001497728897372255020466161295521892843872873466723484981886893999006640272967199070047063386759756701344983435605164539395252781164281226088729342294852616594720331893297649734566586572531552498108650485141784017587341002830829920092412476837953274247509798726117535100676757857674149438702144186402006199242602029370610755618514736443073436025015907864334768961488951215698192728392944997514101747251243418098001681885864403046458904368585961953173736199797984124225170864062473826500430339486005148043673591929016556481309824964535074741056738414924902635531197354658516637014314471064661557211906972740454921871179636437568996379815098846867033637446024303149803179406955902990417329412062078718517022443279344952498697180608539600284474147016163158534589517329553690379829018201734607610581098654397158433789069388964150826797153414158176112429624449075328223028269552971806428753120094892565787008435076497098895519957731335050498000285691874154551811043355880895038692248999063176375544859742721885946902747441043461547196280558884321685313572542726248974008446312515991585314002596286150184550840943540564179010103800989242906676650327277698064654021018853713795557134293185945448090673192897343136882086437062907796303937448134920656480282835532382837668680075932733592180026178508952033400352740575123525129612492057348700960362921294799340367316421792734903406647305573603446256664292344002915658506303032368699375560009824681938376560079616935555077006005459828522001431001389374418986565062277533473200310784219488559247470638597089159859161293499397854489998697277309720025550326285534786743155900857006227126699960930401999247722009305734496557035852735057516562696601660744086628192214652616307861125324651096967171079660144512511052743415176585836324504232223822758327431169102295172445800820447038352074529351360929398285377318658567095460845834755661389622499694694819745635237694686928947139833770640981050482774545590274116447131412817002153667578890357332664127950996054421108859044758155701651818669319319152488722983504654308565659854615442643091450945076881051168774182413642474055344375416870488919168294497460764673545945459817456692615817062681251213866652896544222809593252846948857857494819737504404703002979534527272490485654409316045957758048370737874586042827952344430104905886097184896894022216331435402636790045685987373319537456306699977519529437785973292716786145890706800028752516442852397724253340626922609786965120332890505446346358903392768478059562246870959508678271012407659488336736444643910014819712798349367466354287904993641793479614578466405622754599772845218701555382154547263639520720084971414617626358677640181580654199592141951123000992119433835677913379689807164994885739610125227585073267188541562730560591922311491665116150230642129353585103676369544258754243855042522233417446372179722329286657114167744806288237601242079777792818223039108151590137460966544144491363213515218146864111417467102207952715564598370695178813900651001670291696024780576348136416099924339494261550783971281502049684430671582404769899013846424404452167218051514945627666855661539153833172054512830053723239967272765926550701528123541066359160378412848536212850301663847134352304706153802968150012117837526788380121388456776239810587971642648144913973909169544571360581020983461964669325023368100209446995750606678768474583417740140560231316044658116391984746317282225162884302617032308985580090354120282265057280849298883930205034122399870445968872764545001894961881716128962915940250523452036016797746978980229311022198181328584204131274205795385198989527315973106253337404567463030480546129289947474349605281678080260500914920574014451175664138804468030659757978400436234294187221034417852490072832353061658127654497587838839304546437020596579372576011917209749795744329303936890538331775020196706908681390592996679446254743984898624602815770411166410159637381313542912795370068310937528732500199288745964348392340497821525991443418049534686191386659350654259460433471684916854104786290240147698841955564302790295077830294093416971971301582062732974141631980921022708217185636825201447765145177693666137470354625596397336654688583486114769974842116348115333403974938804550915320019385363839610549187660917473486839649417793723681506883321242038931516551794795696025893529284099627697558870507290601692804519580631394989441688692245455420692711909394750467636069970770578148760337518468585079232851664238212179676318616893443899067769304878081293480603448291814273855635067390468113623360276615946750808318623590526581003445966065042364951133077165838894347136319925283697920497644278151440438886383687698908002228742355169942701224150552144222036828091682003734505729368995438383412919959069939069001838076970446317323782124379575739784078458611383036831949389301676901442604083112995743483206912435620466707035893926623404930275167834730603841434427528319089287111855791747188040989148280308290168149562350039324786350771572170568031356269949044598598097618235662055804725796444729722413651593242789980342560754671856523061373713361507132953453522739251737831705194803657705498408349183243231429188181608575866666162459689374384127058292595768533505551200536588561207513506998525038050284139491604325738012108940411027080964940650830454882473866745067614214585657008672236791041803441080208245774365839720193355185014129261128426470137587413813307084565374443543079733572450859967990559833410469139516457106204635710306561323807612701026544759964127245281131215567191781791465270166994095351986805156781657826678860648135669111731280398093370878500442619322399307393792444104822495629532691299267147192431465720853354576859680048194792421364265505807555402565495299945505823587955170971141759196327366405444633545085860531342113554309908482861378163815323091130891611280801791545256920525880773240707223969684653175235081690635160169325990796466332202816185550807747686251515867437165970571930947663568157087633763302747711078118686362285015822046419829986766494779834443796819411119294296117132614912263745936187479247373561598582532301575741850784764062287945842827077620759967977205677428452745923887544683228288185516056917153327349113651948670518169602318116843891666288958677998530500376910616738873501477235004136199814314145777080881715119085649377964481723416452002697487327521583842195394158626826693199922197197356479768919598998440088994125142050401082045005327516417469145332806947641605841885980763941612295458864966717157574121247638354511988205373512704775085509605517170474932494239220938429774123885974675215285314237649893428873376159089253253774879608184011662102148752059800074428813225447004668639245186780891682941884923103687556128173720702937749449265106644523324476936310673832047211845089443255019547957192228253878591889311845827878973468250605711115015601058117837452095975144615228176535263020415885324493130206043676558837193142898620743115330062175374493611112104520142874042300951550108458094718402397736066604375320410754889917220117051899370942437358990732793980814170261593758531536527371304576629331688310856403519701032463385231193039082971257764458053808938981911853680007535299277267980253330976154961814726476430298115126954517920059285099197170003358578903289651880638913846988955465438549321898984759719264419943629679572077636368339261093486054502392798217568162537541175700046144789802602731703788127533602665261674177552943975475137188146382638002730210180163407863005108055374776314074402266492346359399525644816227289027573572361330905770887431157297012656942725926783129496257068304265648190167568557170025875318398850080746475602539051028476874401306286551734517872677331556506363349256318096824852203914425775084688285880342898740329435141173894436142685038464068096578849534810588290529013605506319890238858588274088379598723413186838068088939256636266637680186984958336258199124128499679684807657792429110684375126917256006280556624114833893872419741991317979727474261199162638533796720827038238581485790175802110926599995146065383919283080701704546846460664677032576082982101387086898654467791597104677819879868648566627328315536564537479457498192246297657184423895812707699531493122172811063301423923533714273668435731255409693744659899180615064943767808618721329641744170196319419262775409347122334524363202716998061696025457810310610314567179877787429244296097254412082144907906771977816944217829669691194939700985941713217687402817881943850991122466527914002055843635828975370617533384361921807659035614067017596573576814394713312197585012312191079676822487331587066380637839710074621437722844824410695601267728330534166056528331834839144036624350046974654723721375883298057608564648877444396622199781791998777643267210870808032273616811075790251906666901358213479885459670000197861702090574393496542087321977195274103705128454048235528469362320676314757092484142655621257753624942732029392347715067970799544980908364074618043521879859150794663120317497013298432032486883999302781427812288045416794816170929661853388920874352728500836296571307256658596063560704910027422943134240389833422153666742240805746236502542437083561240925782175372514007795847379176104998893896019776644452827384979948370914074040365068518623408368418192005015197652824596248238135187884135445353028811581195115584366493997180702497386118894041822896173856311185660832389531629053571513033943893027524548729291451371821502170463704800770399804590697803267445682818812447717466555140537209446795161463678141159662346903391681967844087594213678812591273976523647578830446412294751134871518441569658804238964560203887728329823502111522634904563840945761883046005811664311978863838836186019670909988637532683874764168211126304171502698666811829264701098581926094142853390911644193918251473971822412883099249369011804528440160654877112614930708731960483618102330542394790157849457415075385170336490848681600915810228213425710600092923702488946291986270359151130399455341713481989877864499777994295937755860573667698829849126133333493301138018228549217374453219575699343395560645856783481020991621872272285940675404115561410023115539742954909027605450734846774877890056719657856815047377071504050350700264860385564206674431111963433415689062007735672161618035877863092761412979526841776080385431239323787808585534506245480971153923027208489452120765415217777210747283009450953776080713375527519775749064091680901216751504078653945739224066367329597684065749252976510783104686994312365589848461061089814906178981342660566321782337748361508712066003750318383639277343914752479195930559698307458735770072993553544194405794984112256280033483110339098234064041121308252886478180504493797035916528802528201405957827519968175527831815118508541196245591594140509150587732959415125339504919263038270616045614294808944394133365201304354839636762987633802802234607109185366449043860479521480962421642549500923914944119628872431884349082200464754123632868597796149545298323976035645089056352587100288297657232636253538023262228910633605436418540373360808535820863702281396755411655691578982418072894491837474955220126035371451316081129812401893843971466595763423340801396733914457119543391643087097224393236094685704501350638737233529776199355831443002866612780065641063749927082846437746805868531164759358217261713836271098010277291269266691383058926760846909668744708954180000691725564197099139326735452741442250659981089025406433691390628866284255212882210365328313767941281730489978505068901139363002280349936658970229961961746309723601715197031715791563697981059852105644544165173984578816296475890555110561613079126157448798248495649722477457883089093056310527485504079216982554288706000445083361231309499134331952295987153294483400300695532598337297960285375829600068896334369914302004120839678064216856708247846653203685864237013216230286485842737333343242361359270721997657751329898762473401028381554218687518759472306941595452772414928780067396126008488522018594956540938732839841110618666626038662431432545878629749053841633235465538947574755006410072552789404592208512545344172698791364176031668359483269359560480899255465545734632593431772897655254507517906137583772824168315945641099038906586258236784771251442549621495988273447127874255807336734945768766565029125842986389857970013416631643733104756722255037467400250422022923709364813333967031737131768277401557469606560395557276950183923817697936100479092689040153233854817719344260029884759860952144223539873229369786398486372064197400548830078795162382261055221026575362179440739980946857066976187329906634575491610535697752947169497646611699444679111043786481329766201026794754182414976825780493679947994117185650884208315909634717240409195716451737633359771102156153032145337965359570290637867493401214056712580753882895239244132005764526673891649904981642607315906629768302688517446306071574724976517975230343743564770985143017377806344822881399160663160705888078492847618668521424532863308135689432331125586172713286598176961324014508203521522759448467540458750827048269681383727979477096145017495984869849440221391386163280430526706201836738606401388292863467001723222066066514223940256079204589247593277985945358679266446623691583496862366185425218373354161744190290776253200100118283554479322140831822769097823056209361192999441353819602173885401385617165905872575575190852247728700173709066531388405061832612486583608842293547001493772487582906277684372608225296457791406203289951560134882277170540967211146984544741328472603464222119416651104809723321673459820030146207623324372428761825865856902736070705631059105191954222550409534357519236694576856752245220779075219564691935380378434200667110332091213329259348561530518138509431923466330516581964868283439341373525279815187839274114774205521270752071550109570239171900004632348367561597526040134304294092712950829129513373975209976361994440623871509811453054097649447039540915219799619119476573504518094141166626642237271602577605972939649703530378572262213026508415827747877737719439057314780281298940569812068818454074744659153721075097099350116573302613088770203666414226207248237109293271563824399756025091942249065821434913104652106215984606264324863018173528121952299721386849127936361874636902602781406959542764076587819170505279377541092801404944022279294306488294245693564287086782105408047427196818115009305282161764357500915353176760031133629808147713332966087857006452768953112596297630509115036098737962844854676103840396350961522623811590729118049438205767917570616470791518874142309472921566251088339933771453620083623844535666128288014679249327730909009554682769656380944396640654744441112983327288423421882137775515111857674767236924997370540743890655676456587448814338842780606194169570742924467377274802420293449785343892253093183820584303671268043209386822915575788461878447122511404981009422496890280659477484631847465221133495576724171946139781047610421048590034771274159085269258767406215030560187419568675545028202884071033650897912861181094172751870827927594432213655908860453765550026906316327234681329226677354796532897493707680177893213590747501851902493771967720944229993070581301638599388431137096880781442871009595703266914182372309556779549810122428066603080463625139394597060975678649419787963173138260816700010975057077434895682001382648084473326106264842414341941259148537450199096217256442533705900045879095903626821991273239110807201339931650252380157133200322613359433233130725418944780578907606645519525819138278790920787902312799692564428981011311262291984061629179419617159338719211881719308670231235717683195733062941393366779852193856305571435851717717755859743009404085092161199628654858620558182943143490606179777139813368717900575635165211031382429232507458987929738706756847161417279621500051909705887551579101416599043844467859445593480362582173767461988035338252280913114704313129323073754168860904470175201479681543614326209961440122770973387330730854432225259742160535857811406832092026154230129478254024604378488712791725563163135538223802621392674940265417035786939976135739887646490356526308823281445607959380853932490077243987994291272429249897006329002196259660958957971620590491053687965762451249931981362767783268259298969290238354685725432294562993544884523594462280849074045273721381882570180489103365368091023264809302105989563171989497706596184737656859459208355716564358399272144930935380633327033794686003989344240767512460420276310919284912225460067181649445492663731337377032154638638571630305358103031210077225016927551462494693159721763340224832874504919158071380944758469257602078801107554274908090267722820745400280210478840952943671034825716228891606999409402293035443214091155550013400393261695603039188858090905601306606891109959155273438683153569518046501947825886374857342043210980919452167807631206622289579858877777963576714424612095389803923679478312452612148415386718926673674832676526249009125368193894299805041367833171191051479289319857877498770866652536623647049887033750020984538073276609593686831694083857623566078209025997190280786532258556768538022405066929167641833131560741633346030328110396412274144172213228424712003980997557404753926488831356123286356283565854844185634914168185362143545599917402353708584755127605563284633546848595813129628484614795162592596159803358357710173459178711521708684058313339309266435858065226323605604040586358054206371360758452252612646369439741842307044945469503777178573854954837232067780120819633548910080540867074104933688154599742272062610175312429817697707505647286077134019650792279563726096399339634744788370671215297366372593006040160822867861551734631543216158320304383154393073905276172758454074166834583064041572174065619119554682725347885204589152253941401892859869654288072414051305998118461327725226529947277110974832294216161234516170649486879838599597126497167902237711023076975225429886902796603869670901653694036684288827901744108948336664538256461011622239592190473973763150529954118722051638708010994696992436496830111013222600311736078426687979706433660506249455650702231504491928799979464686479486959692854108836284967995813722184274733567326411886667988508020414187893669338691621208475691372363825101935894192250828156594331509614609320275302896077482973673081402504825048300622537360994634198670660961363400799929784123981833224878339469904273494257061577734391195629643178614903654943818691000446973211092067029971147720359224041040168270646502590864135869379063693775393574384120648060797399375283007633080110060500106689203435482813807371668991651602665212652727131458177475221562206320651186058183289332535109847107317982717065576260568349506068705564929665697314046131422814886665287577890791932545071049517016397595519042608301033682846464382716397872540647578257062346321007050535049506499417232468727457338576596670423947118625442653609346458396380963634798520005908582492252347565475217162961037673130649498186945225409703014465118550660959308857625870665344157562919281625995461529882275550869077797760779964928939421470788600187274678069295136686403451139968990510986591724472448832716453644222332071811261632298609824095796901578041564053456791009693302652855115548224085138269733349746365007983351882669225873956060273444222802793025122394087498851769418972039511942707320615228611465190689140450621386285079523424452865235329557294677389458427875149559491023318349289814021812671306847534423011507344835561429437677128626803357856365787861867818183920902868699323829300109866411772158016300512182902178325364039791314687200402261083270044783542389665379638684651197814050522905830412100090893104708084127849667693631879963319411752961733007556958073048059079442558938607491311648254034844072663835848471666630899192732431137385431002839002638144850236434752550692419208236744819846503057743343040917927792858429496570304207096043888020483693294457683286738210626577597629011616119835214959274358820664503813468035778234350137840570176609259287111885315255520479856615576629570904869689076527395485521390834178023220050791514816652898738653995266131270438156295056984539342935792435622003437299457636295396533750474517763374279519948090057540660964884953982591310314385574547801634076440610429184341640301967752942180667368359904639478331726409495818152133728873230806525566382378189912946235070432586674466164448336156914583629782807769669500164364661819502669071338737288190162401964842767776994164324329182646990199042038837088095045759327479523327920265709134285858429422079832647567411442016196449350572461663538366670934458941053758352030361715224256141442317340916785574405100256386027116616987097239621611489849325182378833345665958718003377355304795682911052056117850225919270926975682693843230023728284179453990299531293788956936526388620488727599726678004839545830442036337105857021474007191373053611288199323060892393638559740765608072093552261448635663047210505144103307723403211341598646815583035645415652867243666970486959091254832649336483480543493931269522776681551177961587871424154927972894371834952829173938830212337523357584903099396070407975668930202218453608075629253820762770263512769159466107670194180784009910276689490581560442105157126541777128443062992301219496859991936168478155959729917862243596537014998129172478151762148410217570419275713447071427496998281124580386576209107797350349355937943257398925125490125626017639760644669172271039160133907990781997431134647680583796055266635180703288042302578679428542299952465189505473540313678206549522455388843153341891226415991815762744550327904966179840290901416264322230383793581388339959963626033518302737239169874719053648311720710158812631827856765494426294350672934460205538521620872642133869178268057267625667792561112795110775152738289168118276367199871403094294777717727894871934128316891987362913335885715217238745860085607849566919515859451483157788370562851717883787063366840111341071719821316288234894810410151635961842063727819870428015472126408898919832738443176720824023734313634130154560532696613468380542267981368488653033113760886001824071503222642619596469151298475471610160391434823951022591754847417525790940201133676889869569518084677024299768516521780793647875948434448064211409586596637183518736301545827300586212466088575664628894514871245808810579490143625424956344052158650890538735646793666775739729760284647927829868287842520183337568754379319449132598252277344914913741848523581178630649820769026888563622225718339522402293001119907324067174841675903291701515084902401378449630735897958984568526925421764829992419767850173531898254732771921381951414102909921821579390807131483872093361844196034640228023598257905744468197157574631297965265556499864932765073232044239238617339397133885856751959199384503116196339605908558899336897073577760068223082864627549878615581110403675542246622354757030660199988107489980401399042387245971367816194480634856781433843301721155814225485254204787563312605594777849932917377249221597530782965276005611867715645650388284079553606767188953510199012290031401487218959104293417463867024725163919656023346450456776981015567322063751918889620256514205487072215419577990857604333744318729614175448579776630273803491969686555995968842049499721006815444209886084399237427625163001859703766603956407640660573781948538938827896886476104106406187856632809726630405966433046076692473326412117675585644561378753825584820431313613924782684986358576966128798939081963367810306244711092343708570680004732117677489650024826921775235268791609449350476855048642951771638935787072277043465636869193787226458767143362123653606623217710901286024849528070549780410826310906629605472443369182185079633845435507695942419119370494210462691226785433732807815618691954424268372364218985682262937589262153438790947232073947862226377574737314860237130744341373511408832726471159576501615165948726530972917491471922012120320843622257054079332252473735663019487124515029103647278054218967053584119897822729807193154182258096085986469808029574921061864616908951807759493453100618658177795497316371635979169168261301342701296247565756514559829148216686462949172608505861971914112871025662125212605051972034410298437360498123489204930154493796506258762361409137404312668888137750376573725497674648766436579310446922663041227821067941016782135723703412860386707177644170442614384311134186779592057459597210137546766851175156573536914311893476085384023683358669300082827848086936289022530454518538541359058582112760051028585634763775359916348150076462218041710869258146934202134515953598612617707656440309734192831157928895697591101065551916842195754147158629949714278821880893976049330691488941454502688765114362728965921973451502556573391026067271780424694364822139216699840242690679038670653358902632651713576458760676518420925788859701219168428816465787386016021793744337329963310518481268776852522165293801695336583368626158168238368486263531514258174883852515116555427603749083965450891063437681546602112025825637632831727473730557844427802918465613779481505474138252604118986641056327667045844123364915454969707655236351141227271978596879769245578205746180349834670365326871048991402147533429020387510015066415098839239915645572603672198483287294106091551108027912030680573868935271861521952745248082401353779647992077737254354905114231147950944524703126142350319307476075732524583664011906797566281875619757391821157251280809033447315876752293687468085603960165213638139713804048072460942046166694939557839469399429155510717326440092741730983624930392971479253522160361378967107621415517231581359571237486465653387941269886636005147111681737774808962149013309606237181644735226679291891521245389860266221207901973485051865554702040469698784160747496282763492146069402019345646551410893919383351317660537711695635804537847395690041984179472370444426084486594543410645998082175503955464111273268473399674447333114005155849568540223621389323711085053793880988188789879587242466924452136497728814129351050977295075446401225781948417204384046833806439544943771944829847270800740291325997131268851226139619054071494550877523394512847297380238923463934083451488596475637978815994867338534357068253740807795052139103115571552910492343552645847726195422408388800914065025785907953057430523831971282310176171160737932600709105342077420024206910718938095919115628348952097511165830017732689061076908368225047614044167334146344842265968183875810759186384554310873226534031248699965091605977048240950530668560598955323720899230701715150721085626779049733446633256259150246173718174523980579907610631292978566356069853137691536755508404515065358924691447625326945243766586005164168187156421329729532729515207334939319981820704068421120215805589333511983784695839247487825321062970641108264242787413846597577165436730475289442969867898878069891987676744177021281372686623663004042455536210849013929649762298176356531351987514796904562856232695982793643857021844404814700697682658936862461924562237990070815934175220406283304663376689054336798475943883299194573760795660531759267113937491581681574961550092404235804211535372252748698325118314475779460140806351723287977931666230176342857388467271922617516081444414434129781583699189701946196556762773768587063136085706523053508815607190346575381254586987540152802064075585819878881155011736396327440677346179877456341853915168594581074732797930322005804746445426483561056303674728968133910556133000246858329607732608085886714132528766468425503645600839067789979397487737395696841950830892043395918764097631534164675112830152364539108502118441827939276099801778129058450295899370603364027898357973997111008651255743319578848226286037474911696694015026631181210732757094467583484949871114745008514719392723975335903829508228276379943776430957448697347079273724758622073717631336093607800297743411826209407799153919536009033405649829583081051275704747570585808868743753734310152323513259545852055375185856756342717973993349329538507788996733806434082396205428626943774960571041342424016949245211688647024247110940943592243319556527234395252387225605131355004747103433166727299924858195238774259767427306232418957908185200169587098017218604136004591183028132709953189413604672969325963502339141104254483321753232485301204661326533574325182550436826629260332392939676248145769916986102462584793086912029001187735635692515833303365336123149431890173760679724594913242300602921371225844344196285868488187490250397924097374766682653610585278774119580383904757081603171437221445903967756143576452158330570101028022947882651880911010736015478559660640261348569922288711133248543761285620803940062929903511516985943934393170899925498129209608426590852205740964425975179265721055223419881400272743060228119519797543885167943357582617516642947699538775650634871177736889655523682612838777852707776598880184146480692686718252289876056317784305699359261866221337105362964047664505712417242559729664293176289008896055540172067829558171014354240348684724688675720040861697714254713509435565433585095761332541461021987541182457415594005854540881539519505283959899474704517149900601000571925273142279622864042789002921055857097524099397798093292952092834288391979901382861471581186296978337711901771906324486878140919364058008143236231155296858092985613447827620790539070046102828753623023395955821746721895714601911156969774179410200834133646513811852317949684833339552874161150000957626047094137706439586110423371530688688632550007471344232035178424863325734406706993172453144947514254863600034498791169467929999396247928852738054106314847397340778193205977608994281575019837304526580039227870173381779497784015629683128335879134761627375107348370577658344374633512855302572110346382759002598495268925678229912615957735351592683941414164564871788993091527088925560231094766969167662237300548953328539816385048029139972252519445337535414706845995331098903092862749082511812543701073089522932439546104392570389386055393515142352562447286323574481024827707020167228066143585206647153758068156784493076130800593571434225855426577696567856390129339216983314839270723955423702619347396716616893046231448746781837445457125387197118063988115133661852502549702105548530645825349410184703644920871023037108004428096106172298819889765678393955997068129005702048337199274716356278277104152559827429248063996848680059760652916247658636111327987569726527547964252908661656881452370081974829131606429848380087235679408939026259327836424199972678677434624739217876229609311880327109713520787555884981202658381551977089992287397547749408196369963923885715621972914679686554528130320694893397963717220456643252813596849231647966663652734589588668445615130139229229348929623654289762044521690359839704305701759904623094014717454134329721654189810193891480751658418054688194781801150863858711819696811681243677549955296637172589575866957627580722887736032070853391773305995773918122484143367302377011627130125877088837579547556141491792436433323282096602713390767061255417639644569138677541445621290568642419704527444242064796858514494946648549500486105936248999272872458849048090263460000225210524240114107015914974345438854231616804454470175205371864740330962545572705680912144573421792405474145074681626497674165848371334395045112616038173427511789992703495755316394990224409795904875612178792831320364218948104055968933094508619353609937317321163324146135181108684239929543475488360324708957085573650422754370119750853237503167879171803621610665460395483936751835768894183245433414160894178150137790412926812599432617582070774856391164853327763024332252254503299507361738704748666761097911652470453080073946670828530807824321128464327204995740914501419726345820407491986028821120123282673451667123408835887347074781933295290576016601968215182214688515436790039441502420504896224731481445234532790411978367406147040826473478195880498132243378276864928110694023934726471138190384279615777579786904487351238228644004602832900097409122745297825318001270329232398323432430352912501663053318115577380473744021942997906535562288342940315837999786264732140741399301002944764336768691595692008863797544624668597228572405985312088879574659060183927887505021740888761434819446261078725068727097094630742514208888017179659850989649421639526501932065418039052743035013544624577398305775762980456108222918816005877546153162651947775236905571736368553028206721588261478327176206733607677339003556040000746948333281720524145533779195790797393383681950780791153786846568743653137984435273494476446437277567611154222722657990942213075255000807934605628326370990514296038771085108557490966370659609112004062602099390379700667152627339792186727668594249806470964879948230865132569923345213329683230717096138806556077474583590087393149133327948165458292401354526479051195780970669455991725310334694435563626067417954810049955327824657416670130048975441948943841602604513837144426668002348046836805089130717953396599416806858265357717859907512940922101195107067924583274033202221651031843970717271053887480852582033803903125879336476645735333058374005151799456095691404184602879501383106167405675235322290570286835391008115765439728403324890164541972474934014135709031004834923367459760695121470955001028151647954840011773441904051570044378870794808371137784849682703332734874646315895528147423869792644397552361206287445680490089675973675810037067299146682031327339527772939555129905228466484078891434350961785255495285103344707058703507291840462478924644884392630534485954956534073689953369044979307828982258091712405554807800212827795904176529923373132837597012625409685249007283340169632030955695956714363436160801501720393443426341300315582136460867527325225505215490288988097084495697041482127922306507602610533505808017449349052062336974312558939683615774682853472816662465652849454583659497820199843629184311944136940034908669009251674477199133124178659440923789937824260986229463131471353143567998255164073394422885531309772004494470055821622098382031046555066162678157048399180507203934081269835811543294999800923817356279688640238927904869178562864227378287082185274132885373066604030745498106975648992716272106806841398285757800251817089726102897977846167514619171678808803327695120124029043322257047430468102562503513385676525334872717198981707953127100415129823243875046175592475814375277973940753418025605440003578991851068490509351708881482047961610461069889303786524788237759594876975941007141958845963254625244952887195793922292391208003420274175193035005617668559326271884032673861527469973753358471396167842828824197324209653181936508841108362095918067208025207195780926299895438107815230692242610376283867027588270373410367879268853032036730119039022293336406336789638169790341517865276911610792595060426785984967345422674148280264160746468171455781120381370982571822699895570918937891829768203322215618789975728579292500714655040601184854702105218234922336679166671978917396921042134021583776348518661806731012185221898577396383130036473794039611050452028007462398611519240101698804000835186953222637722528846019508004799351131329129754522511039133097777152203874860007871891701228796215677449940684222874661546268117980005700237288936422583422290499408034295581739539192625351140229506577328345433618625779598498297209001519001865426492940971243830181399928566678055307525288541418992513885100817010463113637412789507507903905661101313834099027833960830710887952806669254935654678396220387674629574696611559416766256222324099168059103876237454400659530607987483598759374235354278849436068791942615969201382458149659480459263992481660804455563455238468358382084821873927971461014752443164948130177644059614094618659059284256349921395461678884745605448588926357304683481075934352688856110690249509552585757414856068496357912779387256884422550923661146297535640438597414516556107224176024965804933753170566167216683190284531812418617866746771746196225226481104763550611165518749652281318645329557201219784099535916076859257435000795604117680718054255431462034849625998927803826089223412548556878437036768211169812109239260139067071913274604231536337234822159838693105693219694984258577818938230771997033192639525550163404907530982129100120457876565602518273201061457933453586654127746231291763990597220587658920417731788893432064788494897650295108395116896351206037741678965955276090529788459622416611727786765375648629775160379092153693854631583749183694745187695093927031503541013545346931741205213972636483021185825051843339734406573128026212935172459592420189475542423087029815399003129868828389630693129189900026099303223898529130916758581886029538569611828980921066180139129612513836205760251775076001524388475687009686149199629118077711393244136167313704281250013860767979567682168531534127081046056020452931560507350352554453891216873087635667951760249191958884545590236685315116354465624868499718559261661235132328241182367839526586983077836487648123356152738060999223628300041900724360403876258017916973779047958705261196578290326556937759292760167029336541536498801616513024824823399607172421259061199396600316554368705853130449625430031135691765669832909531648916412216862119891355668087959728902583643065496384505919660259370931235445130710998789676547630348627157145490909911120103636906875158662744571938855651014650275944990290408479988877543545882222310169041683129988592557373812517414017736575806469068919395615086302249271355633848211242310916655670202882962934976137934118020936643267563750592936724431352677115926145875362403573771975752808669657810552477179883665602471879339495471456969863713662856238154014540778783531923746289116812790211935205007386504038229648994126136262687901778884599358296893412810501022454515322114946230008237769909835070425904863073573134635509753871275659584100281152618698829969014660730307166242083808341336057158850809592940018811769060495548792970105635506667911994699489652532407001880151153009224362254126764486445100255974799350897813376463439095100886282530416100299908316739374147515013357381780119914124143007882338031443938584312682687241373990521992695675772352279540574077103114282020259479111158192998710980850830098685131124794794621777850349532528337909229460387449665512102427860245479170011577172371645071309568434283687894919907607939060840867650068499494891092599283572569923010601118798769640308330623952724270025588050381104311504994081887900237781513442409088218834710276199518818372281372619955555551759105645464100280154919871325109058162889631842828650146983725317944525671126579417358223036379312449439042209307292610443698912779911298842840709195152224257009264700593969365733585504661843990637209110149227400504083261981190692804459208288718886559546187959376157353923410396282589379370976741469791534625903990722362371285401190808390310691614072227930042918113516797953867210793914933187685876293223762796842064110218874265965937712656650254973876655298498561434504915220579293846107470217885139336857068017547634690090795971601019329724850342757822328490080272607071520887028251932283513476031651867652721396336128726513853389487694221110198730927075414578075384554557839788180731530663790352826421619834437686242714403616205360688477901899936213113128125148235318078849696431827338642106663247977469760732994243140137777419747857629652151002293542808746688054312192233063058223268229170172541520514682975396147458223388226085362895819357037322829819202837982227408778474277585125189193368622085509293965778836264873757741596482773594617636748662547685566195134920589753517129526210831317309228338715817534427264371526731043008658523367048780655401097180351362346004151632535211887538261908877492110327674437442334755875622834999170031403938525454395826980731795488517502306522022065536018977739033725072263479650437207662308244652498546396416798033859125798111586301628842995897304110438241014741069923471493532813571180581220370698562337807021279179571614854289481937671919022740491991364054711134595969125349411692018444495497233103051733864803521999572884472114039640223941530972944514558335598122308525279092683147915565778528823972005304292053871769952439480184940182239638493473770450306991056858855117626479693726843355323222689131045543651679345042980174868119868816087161078719775981812258557923054937023011226236769449780427799691785320317606759518894811173945681675834831310648126122589850373838336763463700691959818463044781583841493828059704703931967167456021427861405805147514191341157036001771913685347495118041506510846391279347566942081626671609641337073524890083635184858265286238459397504454820485195527027328311325928031667759195835449564906124169280206832950753795511194948846973634594919180242382651818802022655174045343136084640971060968222897730415887154732290910613539209996633223115164002703826380734148459202252907367845963309483812579453816619085253721245524232328458979280652087846727045456122879914438647137239626566375979094676447896370978621944664099896505367869363286126198418159885384436053012314097264187053549396725883007123983495173854299442645122634627332110540980953142790827627075145871309749497103097001465725451483332065959785333828022091612664592839334420887377612547207466863738011006197741067088747722475118022104543514188220831104266095281752153714612314891087100843367096437279785187054678216148470119196514008074399719889367734292781645011479717923186790387356745228782260674065830295477491361717343962588811386998580921584577620003783358543587747769276389733781493954934413719641829775799418999351072432127112214911152737149724576665300692100361901636006961782251222317704491924831048221963114683847375995283378831931966254942696550760628333564014582147822520377811971701769336565192311296049487265553678379750211704810550778004015746273319841290981375296150991717243295018258341382576526228223722579697657080689712169089754538614805503173242060488264980957108807729590263829780927401720742183848905136209185680543744552519504332963390775975165588241118832639235168084417562417575881593940213169175995789441746620834667320386001458012308164195476032690925474000088440128236841411706553165891327322299541131143804123577185812782731421381975416943190686620353887839125402939131874987342363614114652128701513332145456935822363873452403340110163263738863204626482302497088776890651107113498793607057453223630883773091229129644902910573127108379384011412102315484851196287380959856927219307496921856014042453370616183332481772931164232410537725071897631967669153196100707943631276224529616669318451765056140116357294592853044612920592703245633729391981016233550215312130980054020125012596599416184657414675571209272112492145984685283210513368395475667803905093760997555762398010493948438201346654005035428726724700124645892953278757781989182648587546699265731593725039258174020260150541399263096061209890624137407834033140357236424040050536274684960773047836607315049442930516948156153745886025381435072414789664142991794287095789154334395088456424640228920463078584602152223663527733139720104573887628376415406923561271259664312075539429847649076543802183669562737201702650484725303174070614746935132392707821185837784556977409814051636485988109481459354334041071620459454698152422563792321744879183173497827357780521426522076853426308614348789830075879682554494805054741514511191202252429897504156414622757191854761610337816248050543138535425170562333412548859799405779074910609718131215540601880149759001235700689900212849888038383862535788085153050136647053186664721430482624901505519706807727730767057331406057953332815825919535699977643087671284468424339905631445624563519709960349158857658510081770158664982793846838942994366045455546502257202499552887073810155079077588325309878699256636936547512724781087017144614431087758909698316069727040888429164504002617262859863216612843522585572386421172971145360010378347696790774125116807232116590928661169593782860066358463848985882719461190819772452455699984165570207875370319994706414160994810424539901029580950378304727951091849307794999678890278190597979795043225436547901383933295571518150997555258026461222768406441020998418160500528151222968537236639690350687780915292708122375469069468646138563665478197131946641067925038268601777671697150792880482231758789742192527825254368570258150445720482910922411366419053820232736441823217439693741024042183519565958987665318221443897083109410771207005427590282486463921575941453063168778319608360226545735040308221958163945902729373303661946288757719056235218435743620366240532606156233631248960766578119274791279751485151302750734215430876194199653133222522621852300650976013497825165698890542544730843655953677267020160608271073806587114845550975433975991877928273394809862960742329874873257080194230070368054218141508114977186130455133627145787812606220327448467276809746191236803247380871630448445821083075254001694816590601005635575114294236493647243375390993109400027304773051316221784448929503391171079369061538681913812234935124334699439908353986280217709431722746183207602174445291058050995528732534472642084169429369723097131062139993370544873554821636565023511265413826891913601904589750867718814831079221637017616728846144858927915167172439289002097981650318254432010632734831579082488783214683842090981495316319488335557347709272358387176764446440718543561312383267899093679841391700133990707527180611599019843083661982666147181950352992471064766581552137735680091636326140298990747860658512273203626305445204258372689892884540677724593550625341878172870775194182567727979022303460589718349098687549116781823435657317704880454610993059278386671858596039638729010782953108169440098850086568842819805126344970623907864225291506888882897132488037748903003351822547234486696844205484932107018158477955202213610983256998643419038922952075268540676945830629757745652667375401160200857106250058485801527216546501651152781438035420524458740493079506653223379896890676313170647235448214814126367962504077680652623278195197414319750870130590880730285499090321652629859033772165490973283693582676776892192121557804579656055213345888438108096059927573804061939772928302077062318960665411641739761274602794070243869269798378727837035207995273229993660233752855297890711580827754640173763323964411293585009665331466435841050650536124436597082660159736178725802826689737191193326732032053930562339668621527326019803323036100592681586838454572541367911533100763394089550219162413113231389286669682209623174787644083824172574698493207411348415569727230989898813520183815618186969681447304951196881890465298561845791938729095350620430194235526308300506671221865399552077030054120471425181167885052988036674223887255039377995731187973168272612114397462973309682732612616092816460258476925710699288350653735869254837572650527694318698083178544851466287140847953098032560534747494332453281841076662285465612116174932815787468817992868251443715677169912156430499903534661591589148936353413484957203629202982432420240349469719993180450953921896506816939496569383029931397330657049119731207268357126342487729064854073915731137396289603188975480715370625701440809111673361136160489050972800657395718375884735531534553235165670294620710940774505948213807234198555841153652861373407914374708719885871058571958611073293822690289292156771015331906515450804922714031570329017937423063597739041702136011698647542556400460622480285804963728670157658591860343337132994048465933479070575405298055142813307983669456187548731688202624314211889658536846534409746381440764620534669488463322221671125820895762852701660447396805139512174414828395880939090253547457534829149291117246383930771619747861318278224218796384979589341363766476970176186919073496653734738224110475890716298821080808965641434249929042948130334274499040578077580265971139032585550455783683893580311123718683906982223766467907829400221871641582680644829509641612993653145457469944680106668877323116358393230393777457384672559217945776895325501660871042765739016895317051343576582876863603798279198535707585751794503504764723055059647287322714283580413336642681430964579857220683419821376216119237426749826149435229739434394365634193725988328154868969460380646406324784899394868716550144014250730259438326712660563274428493006888584909240901916637824717561119449998701366367614361782749548443075484027796295066332699173471204644288354250004288342955101782235051591571603530825413171352480403500793131683610575475411748293762399611044446937748518753661822170054460911377747557270203399122347478391301988770390094153354271674449204963118299834048263927440024085963107139852280862849483028520769262470849509531329814813154121655742115703353355235483230354559671847930788071858642708241630169422531580161824509749851128121648216364865549246152177394909701402546327053652565612886012210992616060656728914498424378654263712168178693489434111024335838191858830552941878173891290914676691021000930016004782247558039837952618061043185534066517498619070865648036132001221798098255751713550859417665179076496260347158979232192358182148329401129338229605807834696950918215226683921170158590840276858513030514471905650915485896483162206916689301280071154288569586562664819060839215992143533005351026187883706849762608551827752145505080837069042192581404459467835112442997895365745375123857888442681569013292457140815252712643652988942619976900911297792137292810885498484164307571086107017177139765294613509004596368941845706158821452529734942567494539055706339987328719503047602734187962904146029019330981680012135822695570795855534934338570649539451353710565858726251238137604285437476457083325066927339179957775375511474860417705790885847304411662327177132879667898535188756489771888294018038088565556578130751184924062002304374577599852596362617791057692013375428662230078036388714559286935105757830252596010715934743531059781675161257645745579483515937632247812864981272235031908754560934274052566204267213830895655100995852969092525308198587526365654784435465251157382633447645382994922884335736114257635564409842619045804537894098415444604453891640950311704256635974345338904202855992705751446934362703154541122537057080152618620519020424784122064008734984909991469120505269547202827649945310039022060350990107444114317448097575640560542283091408576686451940735094977427745257241843095323693034120794476234802780642502006740644344754562573319456154827734366732595895590347354379022882373918414635227920355107238637656688666233021571435786182866396071470291401166635980871930879206373988089364571670466035334469590205086409852566062052966903131813489343551264106813960767672149313357467248721154165760492988678653570953527953736762711812361665043328661318789017487451606599214856981985878614577111472887780083693383030387788948177887294983558700652684629793434611660284701923083923132691571295980693515891191495144715001497168894266243320204610163238171449967411139792384669852145919245176312423935205809042539097948996719599922499712120743607519488432265128436730355507737359457557255124605297591875251155636633628118863854466324205381630082408745694278760125954138497798187635290344717618567184044568997854984894381185450471000726449153883535942983878183150393192554869799406764337292910663303560060603548028574371284766846662194773938686734073830145237840663791040647529489517380098628968538532537989445978056811489344733924111551922754805422353435308990456952877763660232647420793723901825244609715803871959185589332759556190992225879782040097085711662469800147027432914757575916993713661260814393663261382397897860289246529678227976459481790424851256687147863488828565268154023836348581561572512854851836685891663634076706206434119380423224792620555829972816395136398740938159589071722264874421415959986325427028163534031728322696772436265498126316246731105707170694433608260504329844038307688397450460545370199848458369728031087580124813039779565076138812321041226168865459094242879158503002983757609874239808371222423431175197289375223064004348538122273905698628636592566708734670033538672538945102451438125789212693971083263373144209004395850121314499535715240462589051966476314370794843303020523401678955198810655773550357068487897294460835509293865825325335066741028359873347618937969196380291114007863548915083960755722949083230983055535612787729227031754729144197377459947953864127224664049036130555595458177653737101307063845879190825319202568540373290418768037646221325236630766983315597087948066124501593896722111390112751204467246834485031038413486715596022239022378301580613223118209841783091195766954436396884460006735195845418812319241305823422147664212844226859969690252832837798632897692007872177627659067354685105180247091090505765965860556506850139127553163705351610152708474288186800557068972774581143284250080109941400687226769398105935473431937862927450711904055072351301693247835617637623500639347860293914958184981185896681051441691602437673610368886733167787040477322286212828999360566828359577568537779886149919895113415617609157847956048491242108906342222090961927752355875385998627932829539212241334293997312643453757360939496149073749894628219873960048370973161927714511828470799883319242111219998400648612671581568952255561924412523974124969243194520285983013039675554514889135325692305814369578938468929852970697163442086937222829344790751623322338433352149553043783436121678620685581227546884042381961982163308600483866122150899532605649834044116549621324870385744847128896269832660021522586659022215779828659241739832532029365277995367779718978172738128740234157308307583453781036414853963089389891882769807980111278938799618478936293744647670930390227369635488644386501334074798264228773240855386579108080888264596326997409752810005088693470222846886515014863696791946800229622959229152950844065669791448939244955337963871391220183229065320278972548142893369953871456770628968460280353181689515728363232105792586791298427847503968910343804518448726113805124774078479426124535762253024403674580342417718178650096217056376082945061510484502158342773042698222326885755168095854484448129830216157850129776226394387136171489370718093544998235733321719360187209022251816788366471527973526208248990840971137880423529761937222797620965334507873651001793482767789972641512386288378559250231254922235031589630973989507631585900166320555553930188552072285594409950901195789913856295902738692042536337283052173942640609168344281188236180917549535428014988105956057197668818056542358560983914445408339333144001958293119941026494574165525871427175301634299618292347235320692424553021286291552353383488959242130205828866761756934523919144271817278146238719061307216326909925859166747630891550031754004075124788043052198215911021874250883373178600947783052833878200576136316288310380656594361958392692612909306150435736493603308555071162414604900138319146146382789162744021212646341697842782559365558296596607675024333485170340744194975452029103850592430476805775067792651903128275524884278700953389891138270079979867757724571893236414665392888060842965656686255898504445934384403280391001169974905462859323484545318140078095660852585408596891069576558887021603428228534490282327505306950757816096669416865509561286775849506402347431031605862636433148713183702426701217604047595560218584424708332225886084327167191556526556329646845127358932141375661081446819236366249141975830093011408665703338727034683386945228763395165493191125983149290932069694378272287950486734993215972214112599803898047081363138039568376311352130905783344069197478018173552998382208434577076945704090752544377152041798310944941868038815000751599788448214211745366129889248305090137403332593588464619458269696952987784851939069078863599315113270524172915764548852371076911178864321831562064070717446897239709151793156239708098715996890367336039899040815044129683069174258587825061479383608489805534278219398013270194057559647661444274852025556970875034617538842244181788580191559203590378881286843521574974884027041843721866895787159309886323802545977402178453648043177463873501802079968782624833260337125255916669952813904908432641777009910465907341740425035586465650059913982438801342621874112580881669805531565951233205905065081373235512620780401526254229817652641999546129762476273344171423322538093544920382322861800304681311062369487665106661359016266264188174049896574141960660498083579621563902954282740538274656745158208129298405082219130302491690111837093842443772040927567592272102802445695643612763615247012420372264171177900211840332518860159509056724271629687620689829611276013408570786794891968515632129532772785922750384589587820200975092161454050746312663024534438776156124361089334581654542613143164986741212200707262995743465972237248020688389133282567155934967071045525223690710147218837831694165122632789976827019520576809930961953920906678606531783087830028565091644440698455441636242288851605675956428720259554282395237875897267557181099071703040767230166231315691509854151700980955939034949579453854968742549723041150533638088382576426163282261143993320841455074494506681763786901028791178368368386937509597460126576199442673611622623696969668607323905352312879847463151804527791883376284710574153544140913549745531924251166787247156962401530209386665333986292040204066334400695716718009585962643045551053982015732157412348135482441565839036958918385181480962872812861825925649840631537896892551317089106665116901918730086631121866403602824369476099476084026601357810097940171301114722420572414506868625670277502760988628575783930104573523687289025853505014313182036662373001223569510635782655504558245149809048192206566431716688519313702909116059855125069485031576795762514078274556771550721598936121083633707082121818919590622052241317162859473405071356311941881078057275530633518314303174728002902964604017071751272290473727472465335247127884435143416168325842397447374326006135548051617528536074227480860454290798709823601193826728913210546686791198203606118511859411520151211611022809506638214404409550151672689490713611867894983492917055152302066028436749508155637384004524620620785507624972932179632035087038046756657917996027848158592483729179934311121222156344198540637599427871226231312349334990244741988296632512744930315270326281409377530491968542650315535082489899056620047248239125877353362897748876929509009059723380359158333021810038469753787487631204869306716741022606965227522300445783137723028886398416575096098727119538288683399289706753758296354097979743123047744623870811494559017664093890027708123300971720873085882492912081205293296985809481828519107359030106317621070664466593734006362017378084276984624571522356235252586199147060412357177440568153086336951077998556874775994732070139776493629815275396122446692613502117706753272247275875433359699899156461730141825489048096521053841072716346232693441933888525666614734372034827088700698166745796338338688518925226136081814092507339946302249067815624130450292797720508893332502703584557008985032824006726992257188676208730822615001265192500362340080456272472616410830712698201282461510904094899797347846030146186424608224114895350999870211942842059595122416819379115307621762020309571150082632420815061582431223639719929198760037090012585242374220992142796946861950845438487795985041879875721108534169315432955048500688885800379819197205289324482090189020172641716087691499325714760110521482696064791985342069562347084749371566824347867741951822792234140414210839036002738330044539412069898718587502502727411327623248309383161440195977151338695157247458991353380631170914679708231692133489999642484897321508760128585335353421000162070070354103761103853898809423449652784410762429746228365586435196446327964397628107978355352655869711617248247395386739759686580798928094642731184157588832690969484367119643127859854519693591072830567938832547864768995957784544035802798778536611382837872322958753284332702810366785908421296575759440895550925152543515217090502668456676839145501586325622711213621860112572478025058223562147503562317923698305987884967120909998997137545991059607109334099016038243084352366841814785477158211242122908682291053318571797527234973550585695224477092370449254673007309674529137993596266596442857708255287615344241236918990749567570973959266058870693585733920604389401996360608949942794446599758418433507767910209155996113588686736846946155879470175326133432182259384492338203757803892373633172225337715169187845680722510652884216001316777762739289946484586428198718960893004845004683437341896999708704536507071995836001935022616670574344249737001355123557243399897300374974240460956025145628992785836351677876596078546110157130539944657501162952037986666890409294328476906685008130890421143343080596171775453489433575173396633234383933559082919495568986976443197884515405413885128241207555132819363024188923885646133781952957349069608525872223396422977793477954999016778051455786195144217252119743158244800595155018695310150821809755780764778966054692233755768124150017266391569964819030026008543948504862330557614776851960043964928135821312104287383593021789284973051525594424780123665443829277580841502336656087710624166329902622983989694129258852584366196703685789219205407741242058664920716460825867298938810712788559948866642255354690949603663349698660505865099067091662801674087300674030438640263733534938599911549915222206944937274952026674430942319570348905252901460921359245171332341733901750314551677764856047481330043900676846265598603395231893806577339436236186371759070657751739372255426670619408697404386875126914326895069896291602188746534482271625178440198952072117973497450194579869525029138605770897802867814260757367591812950478021768536832897178356482207136116735665045033977189854037810209008932003125591608908086603262054698784120700557661257274383446834654037871371823518039651421755932966898660479324132315986107762577193842122393754230995743795415600065326420489729468245228459460046764488372383486912599459110848471509849735970004152930715772746457539219176190429415727609349316374504462173014700191297561601530338537697935685701792605711544691206125027262932793629465981008836576110086002120404402969773028422705426780303947781058348621788796908002676106424909502397539014917883999608409973703006978474292573240088390072288770889815880226458023197101715139076171927526973190756037261138134109891406744379306563547198313064877177518065047120438800332731455639781423750790531482872736565447420151008797625900393472055869435124443686308952447171223933646270299265620392117567273089823102237825097794355517266462901568381951950284865716624540017693731722303327442035095182031502230362664512124402991072979371819151144942483116000724350403374320466957665187686177409174326302002313344933470052760083979611947535796494684859840517294570255087334524137016961747281918870414898615458836917791084343890153462633243814581543627544935356585140848315122487740087231697399444660597977936429891250565502029360773328662284015443381504649504711665121695218711780264245872959216446717033247234576323472079576090714096433892363256891797447667078089855250355418304798556970417065183804279907561879902585302608721660608800704038098602105505894075959014591938531924483654133589175893670110210799874479610169738293687805812458325400640592383599590007945696533170843752403813025317408785995339272052857570306051260712965396984048586901223113133510141162422364551287801418864339920610141914249168604462657027704380731450107551854080712900069189315159677875497251481474520737329039750348456796911497154137233167155652543317717149221577861047928404021681045289313622199493967688669929355258894531837752277559435758347979497228869342422001260242836748786357250030413180011424789082759347266290386926355541084089343017151410848112394825548861012931585345817631196613609730005622064529589253409212892388341358340855803809042195899141248245416287879049640556250435196300557555753340336423846050064396287223738833177151214455155833222073537543416222229032753678102157677575938762585023168454345054392563062917705948597158979603118794379657230646608484696465760765399911329928456844124011836493388927525545626049604738949307174819504139607436121095068164873796812498286802539746773203429883742863359787560525285107974946741809873932832653016864016062819414858165593141073895487840705604730552323179202565803033257490957561213387812301320784280093402812146020330505884114858453372862900802121743945650611835193884081806894357945552324124682269607138648941215060043831064472537221791296795241969160389680453476112783444998663405989843393802656838842714049198594712988474250067073127609487736136524639605250045445910213911472910098514253230611782879423533137959854351406773932543996215680120470632643887634163833295262071687801920817156959331495564599221600187419537249875539475499577062128457605270760912170960254715175331187979920873979463041838780351907103791642163875825966111690876412135961269627238148983846433742431800310008349835040577070985134767929405619060490544490742954440184062840682788677764462941442374912036251883037432997377582158591889513544715238580422342590770243486711570663786327392642773166524007999011484045615015798326611366562279006403730427131692498389962206416724472964344140486634071563607855344490458629091779283045384946971360908391228431482372819622305009836529039324250063066755212412494229324283863114805934641256999884274757496707867387078190405033523973219397326950459909265184082809802282571993008753559682685463427996317690897457545928393141657356163034768977281334102075550915417333222312906159651982870915405419986647634221894027059046969269725641371620055304624101270539292804206293782697343467157728308633481290056648879873897363128034050368226244987508455581316219087394381269610594324273088871260308583977296430852826832132264993814836328331112593553205931637938416012959335503270236283165418435974670451305994570728534331425997004916781942921187644250715318041389949553224952730839010755903838372470814938820369122118376773414826167237488381264357738901702033353976350333929136374545462824859100848355055046404307989551075921520260937063200724311889295741787515918999605378619245289067235708798683034903872571268568989743211602094024790069276638147581473923502249417562085288547758437799186238574359869175787773397765261060972268940663600364533950729296190158463789001647475454031374831519523457931038054143344457928881930467871611334753534132485057686676559190892970082451740253523307215439684503132827622739649144705524195312065796426627593832771981180136990775731253764496049557688905116972218813696667742786330855691047305153423715662249584167070454596202361716029487383849314855091976515643758279672085825977141730415499167316485604863065525509143629316178248095876881300145665340319449387524162127314579118599907237309818567992454263396780602302611715137566932498180155076081871185500077578794002665505727889950701166486219778144391265441647131743303745693906193257249194439776071783428596174610457048969073925463790218232006225235859338898204964152174242897005775291142688279722755970213765778579755697089787264615651904487987620360226981985053106526285110339214668726620583288767521615835238161298762243671601900404195089934446471719436042035454244607103470799490359433244563575102419674624541375081720478196987302109791047279462380096776342629397490039569819192352830536512764377884396134714177034101268456269989541084363942266896719764048422228738232339908833014335191615315899524186261643003008335111467998180157673929754155556507530941656924643905540726669060843295078017469316242742094974654443967458723177834188046951318133516530963614346330471991037196253929502927402705044203689557355595001794550765232645801459260081698295357602188644664377820808999987816347033774029247966388333407189649480250273077363899621300657856666960360495678885308386254878453169594392699832953023756832378031207219899107931616482601888911141413090166781797430654573637654184535376433694109128164329458831006179283040807729035011993185646827633320079449813201248285918584249684955642395967824541910390451835925201054209226911484335132007912281241773991378510388376026601189215968691938721311817540592899757742899696713711181920270326054904534912825549355073671932628412833661252273057368451381286256529027657564670785007337505984178122767447640340371683056937018105620895970886326131960020816747813425395032206504501600984862321939584378505450129260842559704627400822780671304247617459846088655747920768455738450369474049669839917654595754823250540232478243483880162010330418292651627628221456978083323236150933847751312372709174986290954602123135598343787598702425881254183846154420934216812216138960003101168629902737554128532007029565116087446653056788413777666870848307159893521303893434523117904118336322396428946598030198028317620442470874732937411822928605615514241144173675965186384233818645529409116813828669084614874032360475244529375811851782364954653920991420554028931061289921468902907902657829665910814906602760185770482612206134851495071860034202619984968566780933497323533200851646980415500636823777362677327578671346982773928881024039465823268390858356238619181432406324445383560615636607455508856563877615294414938339612061273789049102993436626678499807741761230650487122514487235429802214655723770363561190233786396296826875410801058842912891981940571506500149904450143291455314082374609136588746155631314441004953014848617839767549429040157428537787330890852544254649608701090416241233548267817485549943430087985583443964914208168910482716934472828407198344798644455465554260729312348024847761557538020308811561490980129532949156377706510208554052692022609698536395622541898166663910721287328110533718579246642733842766432371292811016868741291478271417982113379005389043117255101687883489675019479115619550425005140111810629861629286050369415219686823556789373465129435678042995824747323114283138522959704654643251895429186018565615565116899389397519419159933930711219766976475097845285070015664554815675561048906230968708405852091004030004819177496110302581310636297411750669215380398033218631974668386852104900760595044571656219715317985886401924247929085875915914015752924989262519283376325810960148198672177320431847218995966322935340925268842302094602764348493840547853725212737017312340721655515340993178557055893308698643292738250719984816223291316329631779064393764419762155940005103924183824005369189722238062661678897960477769917800111047780517348177848246155854909026894071049690982619452978942015043849644385938707444725225277149918695364778770761613233390017829377352401436201568580109634323511851758847728068718850285910267299000720246975904313046168661955649832030893507462961563593191452187010752925420250823328258213024124773469058318009626917755559011136944872596629280613218343515527056324172100225881160267123176536234350280405772001072511183074627299087547200339000831157760682323616472351863449166168926127909076378430976751653623815224136267044763701363355848919959208142847324757598446022640882614144020277564767674249916392187821201219639783850640381385594429384063405878731537029945092975906013646253214337993199745635617165384496241226331563768395961064937422977893302537625798234437737781187418146790579557163631047960081077871494981059996829067102066279474872276843761280137955752203863061333949223140298430606477593691050726757106320931859810142277806012846292372501542771771581056430825390458957049300187757700538577590545347755209867009151289538371077337391061319693617018912901652791911803858283141715159160661215173691076457618054119004793955799243412860977068645218054407455554888792225572826174524147372744436068201044145001574629699123869234444979687831400539260506570820518771587024994836958120672238215604020173982288888443956830651599338480083298477826735202119875307243785151822961594934736263298928544221741488192128647659805250023988650806532939523436495241172499328190815052809552702812686766771980629647173674875864888207243221444858458765249712164809852297064821169266277437297777590945352606237789899262161795150898299925718339821535356916136898140920795249240749502927766349238582754943963512492940990497702338960463127460474238019301436132861332839767497336570728598830970224121630441793272278737536092597477621628930040312245531446962034673435219853849200829642985134625255758106905989574323780520847852395978310488388521851085609072066343630788782973476066143736195091959002906837611644816965134653430614266012743840626492210690473810124110023891886203703055278218670411183869638193983984157140601689997284521811712236940848185859018419157859339525966367943085402309344065392533178777122697591449972932423403320268645805533444046464886039322521770651814851741558001492256319653465109836841941648467653005093286087380233796439554888369502229073096066168035226717386406885616890228896585292036760913634654901255878130807912907983517056271984703663270768192077611331868985153659978818342988472849518586373134845576072118631542976070948381701776960386403481681689792211634992239526697611887253713913892423552061978801079682321109274540639501499790579018337046043453887800678141409046903283143723980405681185816737242830422274246417089708027737377572036110046330777605354641011119417149166188578833393438331824434520626030026697239786724652372080918136541187850229199276714187778759517113835715633902708713392380731379494372801592307902031977005988424502240153616510007886636107198726479172788865501797258198152527888402713446468100970288322338719842441004535237082481112031815088008720204824370355174477206730708689195723638567834291630833950647662678524875175380681709599913980922507214911467340366757627064846467114360803098333471075940480173331010502385187423586973683786378942574243932102569250673201828600439760760875928750964361764823384247211184214233428833366760249278810124233155689573695796383046847426956555737395913401660782277548494326946573670480118809191291100860729535895775886024602614699232467798405837775929249760476396500167973789583360001330817358605391994755428044708565692821495660394774752242422104040819940949782575629160364757232256209482727252709748970673200208382519762106777511378109893664643784081443398767894358610325616297240315293909704567368241051319816624265940849985031158285406420383049458969630018517374521537836858288871316627845161454677925261759439249977212912673016145408571881685266182563952301883200674774443399902076138121911281168879693032682334673157289382422010705809995736874986508269780234553209759873009639795087215061278207913011106620734180147787084646584313009885325970802889014386693382094330366335705247385940844272259782662892932955050574861781022838231954679344488508265122535482623231129448248266795152248454242573779288252321225506038593018064189742170050231216180711706124616217824193894849158516903285576609683824308711814946109407914482160879840572312116701970537145024426687651915865843718683374946869886820326347582755377759733647347076601639312602945973009782612160316800328812124116729903684460210415979703526213394247295692768188070830810522119163683124633611610032749940211368410673988031243262519918760676518526872780962750383356216366019403174910769444815296125093387397370217258788299655273886150955467542593741176385442419386961206504630690331655473926792359653905058174846318058409705362530154086481499182695700885676910254462535315278164492992827052782744294562237595913741872788249747760201445270734610282863806612115345342794323897668625888852184852121300725798661754851208868391050958836118706976639812401977155423561107635564758623911166487357379777089042143372201095656294355434816657617745691079124731040210284826559536771294898256750233905830853426306099255231146410029111172046871860598642421785292326396548617772137459680677630292168877224884189565228857759029018131974245573211693230492350491224419393157853143074863488260988648985447413898737343514453576020415185065995853756121792683304160133980416246340247345762448684190218939937597401490993817221139209966501783059301394080247511628988548231784792045189216027864611805256980410106903487518322042128505219099605272801957080569943354279799155114597851102751446609172012936997287367579584667278278289241726415668585496153518187607074880151289541410331765426359580526593796113105571235778878920926314103094528097335274713478457152745865416322984447250885051516547936034654630087042001103771017025708422826142919123422625167063761244343437125970280360798717156108070818531088125735584111378549823099813513800704603778169112658414893818576784472789998900391369848620550101003584382440396486752321035329555804346659379531802252536003092978632490219206880877551158957197991954688945651498134039319878146064430647846827166568948165793345378474041660033954663272147144884865828712475519255178232754150508361705362696445395050431768584082335949210177987907297613442732123858439416521382246774760627692737147815810751778837260937474011108555234014265680467493716308501640533166578056862655101555382716629390436227487973961399854531914641816419631206117684125084122393748485545949975734443654337593754137608951482236614498843442634562060589792473072889480468742655104260385813511277340087328619757594730833348476022549146384035577549418633873214377155984189807783205155336475091570816465810693561333999456773122470518256606391479846475501876661370138704836628006964558831874332410093561577263663179572894417319225799945685650091889098261248782008216309213029719591640321902395978901155641923962761557180648737006597601885898573391891559888325154167388348880152939475415099212457148503880434142467478656604588820999571466702028148153487235768626511484970320214310692954859691755633321147235368950566653270775616278332129511649047509516138907481483667771363787650048032831414177188777135659514938342868558881527875879524731890895866528025053677277608575435084902025931875916626369405587044029304526199167666646121177012551008852432357773182890148961661224401449228918058955612598921409863181991275102379732821894551918885053249970330459370566284059512931486906437647011147183038117086211073856419310065897784658522533403718274721904363292559820894968760720719770335143525178702016646504695924247728270260108724287335376857602510877565231982825859373983457692451449544629741417346372310511366137901216139189355123330386845699205131348012038778290987312395243685293479645875925752161332103416913408884751257942891838810583850178531133889689592047107872399551610948773657776933792292355513699874104849295273909576450406470335106236938272980045920031694866039520463735871592058286066914528760087834466215496218149747677218234062242936797693867024229892429164157841939514919792114979953569616112619998857772922911536212820900885824906710489766070462505723765030135497863402297750695890302021088757559300835375813698290338060478589202495636327004161081267587251125280887286116747713390147537349483988938969926493497492312165106667579069755762760625545180603393641822586061002032169168086475164045256432574308207845749309923529593597386185443348656398354201575880812790609262400293724927341065987821978613682059297272946762458257574218311404887303066336807506711295218347291488719399110495809850862656717703219986386223627158101912559886168104043732967392092823794108220651014991555067501894545392122061452710709538491579800785964419097847579244301811445457065758214433498403120580708789078356153456231362424880278989987392476980860094198477415083584778495825762219275824705711459268490982609055658848260464393994430661721605180829040081980255659646794417479892443659733492386665628415817109101708211775268757957198482958298449305682740811800843982959350706214602684568483952187573946450788161717422001332266468682401832705061672598333506601457893695287698018823461689044706248891193022491412106624741565192156139359759269273169002687111517582962673236181091755200089356266567231058086402558606239115924603939655086413337424074334513169885226436667567455257348344737886934956304527186001728545370728286126434405903984223264425049383563258281118009328381004118474547513547612346832241010870399173667496452615942581935034454275301780467920234251896240903658794309293188375226732163467496857454047348665332870466956021796678503522751417132254877102403551187252744998569896996340786623126040467096796185566171347797265339518805946648149996785330521848121590277868699241438746563889457814639673619832788871004780131926946550400961545306371260927074444144322381330362883854034004953503122193421179514466494115031871409567374788101728364003091226438997141633499680326914790203907607372203341624060706091488408214037958253536153120342282221807437038985690170493348951323437506185569744177992492671574604295408615670300684474503373236221160668314799770694685582274423089537922675548761801130355438951854713935011140975654085935463622729255373682160019372593571731696954346135613458676393760954304726749757330041130516338337119034622118517795947784420674270530992103433491886483998071153236251262213103959721062522693097119876883921467639002423394856273891648797474704764980857522247240362645635601554571127524363079199259668253306532491471458221554105229529531220225648353328365694311899217359161809443925925353307494559956993820466973060265406247362853676162364790575696868822025465910151170186589432581542353110442252792922198461385543634322397180410136067373473208129547083507193338557791680778365356798870464903282618795523870248959121160121614404548380469270911250922312517913358628622240195113872438828666062463437621790557099635944908940349949954332373272390774431767016529159517793143550837605108294392096733335760580834867656149043206349249433006230737023421724799672492401424205913697280063671844214753514216294182982036481456070800006609507905353667039675835538041052035642766925512882073380792999625464712393019367592684655303321587632833632050420977965031506336720571591107415888322784622605487089336228366487921076888529801210752267656290262156134065515360714438930096870269266005807351799785235407473011520209563968669343332051074080709564553523776974430590790273980200176330633372244431299464117544993686478165967523326022938617372320182420396058417514547529152307265262597514459573251930661560743914573243974118212430540709592338172069812139741100420172658047073567443302997755480507809973205077657626771239094521188337998028311494553764525244960501492854467547183123045604220636510058700364422277130966349468476195226949088598502764964600970420142470524384963335482067320896496531871084529183136945094273020730509994098943553394114181457621259797234569918093899461392460108801599150990006308110478904417672751328937917920740478143813603074316088179900963528288902459452341938800246062025499496527773189260837559247822979655748892239548851506090395946474451915904261984314005951135406945963886358544192295596848756255419433689407471604562384974468546530395430875935829011198086788697391279854433209354000791929941804510999734337747056590525134730989287085173505936787743574475148513501730956942356403960055256283733174465764719918022472274191423463482690719977460210598724365367486554822411508691820002335109651854972237731114915752220505340894467579993335667060371602251539050571443232942447734556685358909107397465737518806284824643004273370176907535721535167741347967001467015598617665822043751429444909647020039707260664829915211220507371030311284009440212509878844057902780667877254094629422369284092552873506028528277247040313435176988323667053897863033115896193283591367774107434680539083336778360175274406958451269671227759239191359937664327541099347875693030846595343118111617314173493692943092863927816059601849014525534746013626486233292373118798349497265903905603797969896844295710110590698943021643054748510157009568648492366639433463101926990198700491408620548506983547669961960858397207519607609610485630928752922736453806380442536505198406440949116723075777998946531630108502526378079750698505814257225915405930186087455662629248917841796447805843778777153628069584515529191764192921636014544850275299625260144736764255415603238244118135827717179743386467397929131046339118080748306159732937630680987394779540180941402958249240741274609036522593976676869981080697673735762047292572921100397455454141650450618670565956299043163666944915681942452028293941183317531749212630663761175821657027006515430241126577372074086010420366298701992742799624748818707029655322961594957534124030456868056239672621470471257638582753647331547371987742050358829821626667203530201230876005038664990957623918006626681874078396236559078564160247207992550467119378360309257897404532350562932391113764700850172426952140839587527972829971480451159788998805007598479593147768280505817440975658871763445830923573731496458003612566932030857188395966742228248409266040547001611680279887634645106309898273556983101142673818142465563087402882683674567797458990461708557259006993532582056245300097455730092833442099476326591898860865838294159938863034379249044747729147679872852237622956134021165900377803760340681570305341709588199955492577603318715890773322394767896254461254436440127282028927796484863679592835478544246340427749936532137888238080977984783505259080842311851773921370215999246053754212188388683294458061692483061305045813175708219762688531375260120508637161625112796610892848556179337502703224968058530840479889855143037435885227166441312800198375991392156580046327001072269776021384485181527554023842843603881226775962114671805948472955279065868397480942375192119052162319000133915701408949349884664352420435987259607678245292591430463822666494807484476405665524784503456906852868135931516818220473280087297521958518342010892890471325606584442033134049454502318956866573623420926059094856991574623759937505854096663425313420501086836719595270785997867852456947642370673093961063766204496881734318370769304139839485303069142928938676902195854545247948759975568039029363325582724636715814949251624799097747925759104204479235432201259546332491480089871375690539424716409862967970163856332368164166731331293890748680648639094409953842909196864160088848809326098159249373376111745004064576863564523258888274421804933223315126744705174523093892508633265619048841244250897346349118993895262388477569639883231094930631580865856805338599109847589533629202640446489745481862024645937602769446568586224399634753425236285835062406754392778098525316651992640902555557030629692199404105256745191179238939075205071738394617626823048932985771996754491833694152726964275107013529732452418632075186445756461903160701697033393532987016058319872223390459248522801973295718875083603862372686658218942794012987555643338416611984614248993183220635204053156467156421852479989385101490933235646609360083141124187065912537395613297083420190801938402180059832167641330370571239413079060252744132050597718039936694960725407498708752863974989617740456573786566640027747500804927039613869704240503681442874017638074001126766643122393799376890087404594642127111204212978070566047603687962420586954427799730486566776727075380773965659810015955796604608636648695255981399542453103015779575985993903392145016939740092706522221593126604996530005554729674808312413746519034798288883553149767947285547458833353016387796733186848920060139237638740112308330070051975743731051268441086815659812037194259946209053338778685915202547388084375289011983637001385606990208285216145194431452264231184624470029917227701624718517820943665463929623318564522417497979354767624665441416152999341247495953888084073366068891575075217991283781891418043366200109212845898767058945859814329474295774549021226597353128199084178590929802736009187153654637687151256902036328887281121746467821880670998714466414759750397502018982339992488938205532876613412192204317393070421750329935129423880608899082332168618725492467155438475913116641413201843548913608931468072841904006065412877418102272822986078934327286700019739680248709619395460104707799373535027207837170221214553102334089771811397102301900024353580277390599055097225185707488642398361823408987491963481859076548596435668826285616671267944992309007923023670548353382910126796539940582628336346977573369815624518263850728400706441624250592335516911848934356803849105933035914208927009735653247114506235620717673832977146994081842406777079529153147014194746063510812553929104293259762412224144041902628257187806443686645964041374648296468191102587225443467362185755466386834701581795196318613952482689577541468776875772861025168130799888176143526946442557044856667606733487300177140966476498505308995279643880016686657918268024409984509814032496458115599264572408867724752201695393807121329119275383577817699267735576070040569009134140361912916808715177347108788151774000382877998645374522168154031194903601675595352476670827329049982755031329739199870176913847212151510873901394027359630270328438818461776696120841233148614403167779197172370104943959887216192974729242949241521506871962311277336053164361411478765374954352091029278779385158586147907275644059576440872572302026518728658768477094126275938082933809450132159615165298704328148969068100627919106430757641363213596894673907968130653976947640426798877691911503915957234460623919473258932970181910126927146651009181727121188918300353043198632757735993594571417862283042168032300771041040643768376955799970880002578982779298810945089297430814246666098452199383909121731016814827649135933368768128154188947132943199123248251584363169656733559987622288277546960844352177868123620461368877960350841542999832260754205968955290726221662770593985193642450332193534705829483570525738175258228409839568078437996952722584458937845148413939081134836716173776853632464681066910231021538380423516622496565102029163123829431474242221617073173102809771983841833131995048756079907635390973948786165405645925466849539537581547110128459646738703101614872553959672976813830656237575587879757076782986215476874793438576610462947214178907558202657498503977860209629425354412436439368468990966720110508402655820398993411726705732645675358842187642378442656248565066400489422539611234713515376445230982163301578300335881078073751373349574519407426086887763128807128949572117949487541086835215434022219258357464613689491065785043675767254546370630943348545641964803899341887732258434172699609489319523835785625020703094180733566090580094195060470452759654857564520658017753449282880077667513839072815021021953611060650384117161052951201731538738265661094731473896730888946106191842941897399770061197513608016540615825254709208463827988615880500527947355571165101377240442737258831175176573374486175535835541954081604537700951154187541929391041277734045310500770013176348998412332043811082867635550204521693239511009719735742743862903272847420785314748431334494964262247649447947691035884303688831783673022684872033354907936489033270052619454464160751665954501426038938079614766892197186827727075837767710633620860232261627594876673757430091327105262399595071279295425200432661383034872690028555480713368850133713531096602226415897292680770694759624729236920575383072286402279287821970261315167801263567281466424851198523519489740479298526012144749196481561706545704675769831430807415700030021989825254387876821161204019663271740212453538110396889490650521376033808394272394363827315454899107045137192118149682647976561669676305019417493391629630621110502591806123890699159409562355324229704742355410692982951571640657732704510934674640644396931855413915750596256786194988040872842388784455742570526677647818734308463476211417773988342240292490866151001131161301944974344043767020936602552055305103648361494579990428223298880518021246869370934959891922219886294040609896947017728895067575311686324879025276281777175064652815098084106989268062561882523950125618180608114822093601893083726757493166360996652192058628670702624904538249933580190809508488915881786550292214911305031160477317443811070990702527844239160007583248406612078251033378010578100036185452601515141135748992584604629231835316835512790552561277513095543986881306419506667621616943720667432886021872908870770615136938036456607374936317954902552561120689313685822762756403806892489656729596011219796926601502103841769361518702864176430398287073010762168845489431016423699313744020348436414724223192304731225777614913859067620036485546220190652243429849343236728641924780264778568921655514820994871662547538391176140836235052691228664772778344144172662041468673996504609710077982772961045863253292856564638763355100548813387627383812477261657728213834511339467601726546619413605666846171018400785756161300043509622340756001523158969750654197905499345171575463421622483860980398126100352285835829076816852461248928803163333239185852580529293499872451527724656958367878344732013638271501900598096070088603471750635536489732660366806903704551014551353436599323592324214802987466880882771623116006547118130762531674859958926421493564364536089515444016917102781483885056897762470627784935058520360444035119064985739133393465826618045084797191752648848873328375384715700910552020610326094483181545880192083654444247561367567015599229908885984411340331067164620533085173478292562049038465538292601547268527448089925904919467178031261960604954807361968254018369083658830709803341519121630911707993518838364696986018734991574152960823756076955731609790105863120226636392475699524266618269048493127315106879372307972632524457863727405527353806709878193781126400775742241105776047140115950435803699663403736547944738609791012700370771514933516072090138805692297998835679623205588699924602848592339538216744371463613638218385867565746844451104683132311813330403430122671180601141117192203850796594012809912608297591958606127944355574545084316675238352411246737229079754388385412129961708254608760169313362884528693839386672896462986577914966207477764168641272971556385438323158930387392625570681158736760920227402274867004909368510315422611718922919985601358868774415337675387844019185525602710329515850242463555303450679922120071113358038169264452633663289631982388895230265653085217807295625629199612717379889524136069438094638766845484650595105604329763415048646378873186349254048973598602859464759926247792153220636875741899289326877518313161540455769120564797245129192168838210460824911269458719801613821918030745866097278703158073933825308388440225341346744175924064299696175204844842563415150799050586399957343751328454245808517798199819419138104235361270152325961974613799980971868723324211489103546989229074915732444749776424163741394125443954773907225685637232722297706664449538620649530649806960953135740508580701205031061728486135009530339020349672977315929126726019484068050023320199841337687993972594901863530370023629663902694154108794104748860704304356457029861294181877882261757113477473243623126826916180903631998490112555444494612151894070495229154210896176021731390242153194322045677650806926763391591714022061430827407565478046288632680814847914903628221905699957412479345023393027273959219816381824353110615354754713157844189514511067498362663689673232520538207615954131339315676172745207120786658411615580132571564924613854981442390214329573580288447614662474372843361385392266115951820391584856819596309692848482231532099652176276111275450896037221256791566961632974124811347245436658296887272361130262571813493187309014214480181371752359426822317485384843934245809783998087935335760867476009822059017141997583370770919318095700693584335080294752113593421923440144184894794287528991805347560460845776582776257622502989773650672748657414875594782042958704133861768634831567313789788119628561460945614945689507797572875766666672172260000281309946751544549792438363744489652132548881914565501301884798668399558953985231959895113164236793441110128080734613580919700789883146481560652246329948630532270939791477835613590737638984512848490549533294351488326695679376063510306338968562752260151064677794932276152604234144331935060792878595473533673927590028833109997874565853680125397384230581220331731991872517859702734758120646875213493053870966741353989176524169897885503389561330180682051421434364735175596325929183151957863429987917406514999239779695345202948002153243371024863764265570941207563148267522281281658334655824975104892662089947163185810089318785433346666592680363766217644863695864421466325272721702754905117476111805043799615657569842493433220702393649103293319576103669798471132682246861400814352115822326782683767671594538063743853742493077300057130556259517396332883447406693870740275090763960778803199076585486974973199320610527687910354584175785587633919652952633673122750766523403338645149683831235740840721821013403827017850180188155705098267365898238468100418894667017981475648937353518805050858747144366023514774668848656506138112769311051925556563239743981707183534320877836274289206363087267882826404334748987301410311563833125995470603326631684656289157223457754503731666999352218023564252065242723605136509477856830019578789499136834246008075667210695048328823766078109767589488708294058205412474135926722698774112087477562618350327404540128259083904450343321355492110306612196155756186965623446524331954477448586407813435805387487589728410029344137117033371918043000079729195785550800260900846661194285286827833603457016523736248978352163360808348892867926974095855719406340995758952288291158504162001887498060873501224753243971923466682875978281889681373643425068089002945258980010524635593145239640455650762382820191008853583466943246589695213018575237281367923101937465911341063788740371159742993054672650524745912223774673148998798166936755832834379392382973299052605445549325314526591069022232561475614922435050630547879569531749617421387083556890237372329443920901467402496784152224868804428994137657681212624371462133782544341088008272060161914982538211642840091808436387120441757275513679728434373634480982908486237190926699640406159419205740352389370036457502159752240280375256861460622925008294445201275490662987017599164385101288135083883306790562953153512827906938678636575893693517728800313740588334706970085984473102548099261048301385197114347655188737825238958317234775722202888661687153731272353049890069171620120373336000439947163235100283723694584877424923427788648912501324614734536409181210133471182433513357665153498755235267404743432382015973582019911426451461606716628914152841103905249683520500842519915435718819920575584837289169380177701215098796564910661148482568594381138901877257825434855200630698390733702412553105962114012559763148417677756985507517660243123676986805982280396109103290044752089215087853210608383643114139159571839110831422523276333691802522663832947230395386374706991631793746368458827601056507361563555330000641009397923198697626353592330010902559230293124576394066957759754441691043335739796759365272069752667206999066619708473972495542634473657742377924328636256608823089722146936817191298543070728540509512277333015321428368229376386674420998910096294977866795030131458998162357767634434800542636552687615007453779929705648279634272226526629159460732362495499035524155479077273993190900497308210165730562485322886121881689538236165222344085680614516823666537042304468876550962141964820776876636412630450081789196648603137816959648341770931274839854746571146753200756037687754121121448777889984194835873146544383220495322119308141112159148688274201121976504248530746944075518801977284638966166061670594342399080787437292572675392362198104467988748409252874168124601189280721431852343855514934133145703924888345659941174960300701767147672098785212263806797748327840029084364503400787426007719762860390876438465405216596516937068494407983705173555758570810692705063576994238619469635511980867430946287848990581919505934520421238257884765652768115808487434165540031703217040916978454165947438663805107823465332112846420909043588906673325064221661520951510688847883612545724706296858232798762842054964076639766948600926447178752558441496107744567327513312687360273149885311981821419201740395483665285530504919603773637816622864613363695980215040593612676709948642020545114741743122493573993294998616219564056446212843675931912439354398029911425879964038639707913819389729062622632286262688403512469550448467492182929464862204946423602101341064998353556024773850786338807883058050335039385198207969744133133369621773148182455183004045879889625761974138519566053464141464552284992238666527360611597500685359675887843203718880641831727508211523287464269701839319261746183566327171054556146179471643289332963295771900982080560088606925936024739015757098468572151335628979756271453311144244883554839800802386372169763454086048703993587932172555137722070236064106418301962862347687969575274329256758995141261331087647336821216554909445302819523646667009982040236854192852567926505533029308582628482864191712341995634809745370510727034349459230716338820223458867281272090652487690050673871702910724413902725990942740482166881262164581957921209653567996251821256980320393327032508073835314821910250233326472532231935233340137664924487213239038217276093241882472673315022698609607889131784646297314675289517514493089864301723370708345658792947370474901575281128989593430597086615527395807264940832121935724866773234464893997022190044183270237106711610173357767134478357212174094696272585681647395296647804382492478848463377233786107330041092750081959396032854496478173974299059713078939737246669484361241477677345395967164392048004100601229336014303709790314911305232473222410847640002411711061892204572047022222507929231358669971502838860367566501398232552649275899902387913180862871025277181253055898239918609987406043456223778442312678071084544451415752200116161852665215018034713604769035369444281556412689301325744649300934857951846229432049649046092358003093898867261551515848742168875315655030121279030761773111935030644116173861639421198947331228636340051901323541044253084375047849732871199916923005850423772799742024520730541016679860076459744113675412760468660637320674304759627820686284216009734993195390472414546405083187448972793912437037979706986872385129403040440432916198842086945451682893718936009998484500233574649416831881668441852218858366634717153181909816132884100480511758836002938540706908469175771397119904383327682137683322298709910170715474041417758808307488579438987501438201722923328568586043685917975046296933762618746188429054726797292717854494530501425592674205511996292840689261763841047940147469717232286450215868419818834948975794885345531418688317456337212461084998929681134801967230821713781529584032070644173123748277127954035633599508683291794040335952503221452745331152017601919040752736956200909123905137123385053907746086356798640667422359791782210590896075742934671299049138481830962649294014228480784070738411855552397397874259390406138657215315678081835908668481194146580144342469564858921941904398377050313967422164563796860052036321579137200821317040626286342973295722343317720860940943393164286527136213468691196110502907192820431209481813824975297126625438436598949007250897912028086828277084094688294983504584176505473511077385938347040449113667175676103693059201532437520186766529272844626861830691716035483914665135274789934545401758828858910635031915750852392009928290822781592116707033758974595502862888414750468422064997329123484524013305589584865627365829847302027130629239043397204256057720862479207314707576403131274452930013446498683231605850568456010565976938728410429483677755589996359984914066325233622766526687867797903888241576119869712702468224135276930509140852002124694888998037637378761868653945328252040745767884899707987785818844239109096183812604080422447337569036153016471491009500024224085640707029547365106447673577191020097737428155584410323296004895739209863662381053711206179331546165937804823268028308688269250421653813044602838037567905968295886369162511710886658339884446613314901991128193077951772740918314586075463589203823746359479482922814144952311098668499248234405016576358790772609921695526939625526781182241344229805694108832855773569629498222758980494830501880367681777091584626252772728495191402866445489687021378518202783138906061949563482055401155003675227527326212707884659140736654052994551202738481912476359537561794142953626727961907037072696379158998351934333423774189512752661920133763926280499834384112129035363496506042178454026442889748540057796782944861271551038436042677333013278564381911777859744774969239591633536982263748742256184859471628956643018004945442347842267652959726199093507480323164444975907719599936904245201182223787616967092322016485190568316831921083525926902714860681438203242411204146528403671888764720431382828707645812238785993074600524078613087064983187900195498250509395083625709728874064659198947549996298113335232222404259645642480292428568561928767212693730130033208056233420268718718184637917747140103027974473488456894421803759472879511960152513788122254565815058467649390396672577624363205017386382475051075136342009065035524572155679391090278056919654391589828598364958331217549590548618674121435478538809165432679761227346317122154003238209710199026567888887135600903210045973755981700306283653881226975762400761344280397129945056726552333123064758867182164064019006040581978521533183150389632462358657213123641860640910528472837522428990557454109972637783553664878565101584240198575186552703800044566175796869812010765898505760129615290919971097602721324383609396249772929553993722325174219027005435942143086075530428561612788998223421086463025925239901724734537970333120765241127888235096008746151768669924723613420960944067789522695007335024157795124832474297404544012226976087574852329513487291659118731186478152390684770993020896415762318507954718728026257092090482265875518480328643796634530407814554521656569052563875271113130400243117396733784094839685624005763968261843948571777471877817891405472093512247528710375164104181601171318376509763398239508144547825400685890349409958276273380643372379305691716287289167848650824666430761942959719620020730894558700274980496660567723575868912845779362460258727028554251359549294636398432369937507564555326349139679946762752094270691225440210082099092175743381264738617166390452876513997517846958462395979619608560295469023903579294734184570631244140560934007267436650104517668192839803444906658627555391298478663666983093240460472016977755608698767300048818535489024223845468109600016586313808760688228857559215994272360722111141025298445664258202281730122112684428487527938790673195281920998824579929943440052318431728154470515029413819216486314444277385726232681394112140669300417016417252380929227252680439598054957107075427455356027485632198816540965549781069450412866179822732338541893679650423061467861266475827464225630130724799684426703487643576345435383368877541407524152263513425051890594370467594022359799565068857798647185724965146437335947630181355182238304111411363729824978122822504650681034722276613690069451802499182686283533626460508941365533871850310506882835032081828019063139319286460921763526852930056804908275385631063229381075478068431296558204610357965991791711738498495665526203575288334885375394514841755799677765619692537096728558785219772137177717723511413860847915842095599945957371424472097771731402324305607836512799313484577265732699827946293899537680999915508363028865831726736417838595262704999879654184980036669692398166333055581081052314075569165234696683775994184607125809242766863879803612291316938486186413393853358838244049327989449008193951791560264940723632584828343104307400948871893832144275189510982527829589254747783677139594951114322573590489112086317800306938368929492954533074031569562074499840542080112804665007261860753215267131566988903434389423216340449381923829546984155029296636315486277345575354524495125868378375057723949546605262496885289372543777648365862048526939459676363583546955322762782178221313117498912818319429805051068562663865653828810668929144504458433342088792715541736670544671519433155114284203228906125372998470992575051873655833698314667764613853775320450168019304319182535490367651185326760980208843456364950901322280980884518838860065008426827415498949618891722875548309811085425091729821840896606289095501643046200625224308753557409496818651605207421196851658023076125668112729347071941263324359493328906456024828113545028645620711429375840183226115494816190083056582906690901061510227100719971702348504772838094771375974839653038172429264358791751471164486237490133091457941217771724614416549315078866637423491196286937890040479407952366690267664959663775749283289525352286499210639575898123422758557032037903206297868728170040018783068313699501103173992610943043904270928976268781066717719152620761537512686432543805923601647697431947836611368909920241790049733386645539273862895165071193781479568466907393489842269792601820381244937515507890271548084044701934246984724118770868475030274414666126483130085398411160778808972134621196561595983409507904773714393674140972375557506615360904468508720281600775841376552806729875082233851787027547103984376428507991388280548419804881266408214360728872381339271378073667135207720094893232258640984486824874124197861094716226209245076804517277141052561126433892405949191524112496226763035642202640388202142794840221023576050604739587776363845929193126590450113523710807241646031660594232924108207886266518449568091508190952703545270646907226356499891802837866237751176701588644397658248337143047568856830823502924233595284686613917609671130886665143752341338290125336932978107901818450756166025760579899885221371932658169894416096146230505835111925122280862880535897690291909061848130149539949349541045424210080346461625754787716483051665922954318897274311937687639080749521387335218739579011300138263413889379798848605439961753776525271790947662761836649198602657894239976052992956371103389738241227759439785984932046588377343656327267563259941082099060338172542180206824948748806135798720974252931617853908500500917369155163399089869331175955881023473371477521006417093230097901384961965131947739230585587084455046111944516117237842539456696726033786989711273404985491396394699682688276032176669231674044279251317569374418750350893179957781848259507919931249865377903142869649466669761480385964157156604854296128001799936518350304633713028907479237223570325943740395442131925912933155180574518975914033308528536586758711215651889543539783013573433495829686908607398306547023622022123618872159400787364322970526279215729463760830789046994722081532954633400642936765792768220040329447330281762248189472956519699830887597344816641758892803894251716676985305222511710747060378853965978691597265884883391494962266592619719699383065142120106050650104491765692824934156096729854192066491175438160038873280622667222086242910125950539952459612994262380483912224948388973884481549299698378086744733575988458504185507523910059653317511439361909579634214076558669636095201743104439765304136869383643837396297819629255631869248498339229290759095860391203253096050179970195734507853760579443890345172534606428494666591008869099414040009445585113015621273613049686063064155865123854839946908049401464326971194552358030361216969920376248717408579495381175992956296333597749744276218232101839954674196930491693751470526972886522383618558918139363110302067016417880807003925593766653706106190851732543322566313276577902061864634014419839790920876351421024111704277186779537186358775386575337975912512435996323656537771063259846165320062741230493847809538071739660752734533050180251331144850440422388548808229145623499567483508616040047802159141568975768265536611736047873829308689807063496361816235606836676815411461958866282641949603659284261921314124684286181604025089443137812635706741470665393481273805110487751734202199587509274825986775612906205689399687127888464014980761164065039026131270387218681760105209587034102851021967461266240724741208888070997842311173366008082176194383678103323286563958610287962342039253182499888051734704598522350140675209502347891721346522231147097334873866750886467965008733239717027602455221924672738173239325862502050744044553804468586709092078764877896887785322929411946473174915859706840467531954677338494321814217591584836233619235499079511278715167700538637296969990061222759325934409444121779163307436032480789405351083485140416675085212488790373904374455421058252591174612337387875490150646374980235826097017701643254683396658909219531590076696310122773829355297745857312115302892386983499535428751685238854673156779666097670241645756339302319394110750241774393765288826213594326068298696393220030629859063720449210047364289741962781755300006857655347791790271937504640787850773184313462145239024031227395326692805723760141293177924183410950078517517555599408715288329768832897198872575794830117246817249726410423722675681678923449512998303078692681601969167125974071429941286507409975848655052030365315338016664344295163434011491389953288168307089769927112998569781286150139504863214301801233094687224752752657415968936278270576320684736095808670712081203021791329654370588387021702676824791993040615391875960249439133768200863997488750686108012832944765473532854253563175104435996665341000849801380316309585279951261551500695851693448459817067041709673633109456658947904645053718108603760789037073677065279659138824014815278316074350235959664057261069832595848059871842344735800454569783160815779720522103803835457659070082166872171850260115883643182069017913103221361938325005941759003493554448285052076134919843256459882716938095804440550374071886042824939906946444198704542140294386864355723153211858424607006761226293602869226142807942479126593591858128646593899588961269383156610748890647203389546781898107000436123594518691677179690876569345051459849124392538350443958865631386853209089791856583023890990474091703399041806296717858101739760800326522549915653335342316893009399959373323252892233845620848797844457559426507458800210271067798234633623693165871605475006763052244147974923296186689713709384451494623272499073581522138601968964565765742655185419033675126498051076798667743454240486700146577161138884377821506064872081504553745332599703463703660527655587140688821873269711599161332586220999404129574174742483129550920698204317163082185512501440203425024140144235043720074931176249127491575069891686016672210597334183726223996573111788253269149125596587675338160414397084234130308448062850228883816789181796561424742373950305613266200153745085004867775382688684322652533142990081248634333529662308636299736017554842487936135021072639900272776412405598348079919012328612687201974104762500862527600841212894976357843283425977819439219805147688701981426604027885267109386574131254633730603521781854210976798323085750012583942927663168031779394881530029218537510522165866884584560180919141471297010582645427984589164437921190323125201874433381540446021067265293300258120253721221509779714047666601658968627195076228186019336375078093267571350734168428132766725343105237301871123458651611752803213105214701432199182699959902929788477544565655152456440217695590987503499659191121545206115022083582235206823424749839247511006808231658450972395384350050484349062439568617980356479152634615581686826106374659721429033929202308478220147165993916275156950047854406204234363724405038854880757519019124308065590374004522578093027262051892095076618314275604124171250650570874442421666771048842178526957961650197686205607281917553843175355479152819623922981965938478109319805400213400598896232075197659546393511119595392621234389580399014312689834624161668108273759386739010068885158774866212736688424370586892724167783741937211057865039004253037437174362980149064932546953902102889609849749521030579084177059457621539676258768071680312309214436063390116504345339865501472090604270276517310180175677936934661674621355313155059410911130856913897774233258469582772432916298689106351955796474348183420716827946617962359673772766213133594987831221156617482669185156073837610650624788721029442096703874725190891170500653639713743846301612176129419453574443408777892662992581481595222780698480590901289909545148594578495347835679699863182315087527613575570205793755752557943541359860151304554628841379081940581686871481568766577291986936147212751325379923932102283005912355282956684881107283726068556676203033813923325229500188252019317951645420582177605875017096574772896934831518709678042822002479969238688119440147258744606539791522095397931652585735246531028707563412686074977598739069487524742347076992820583113279956776580842323088728308648376442537315372233110955850968278900979931241293594577712451486885324066987733049932492364303152126044984095178104457372202417288243598807517845730298928330394831321147941083859083182395344834856482856119188656992138272062292280526668872045578104593914744623231902758357645806739805265785581657052821391177178966524688947877279530646774662173162871641043040205994754373566792228384283311954458386749600830385042225102918679823655973942803466230187571055324253939887645219488982362358268760990840255014861819370266796004379894001227566988982083303749367837696071991027201424593320554390248824547307284168783286270747717036321099252192181388269454292528907884615679049280476179481893672716766509392659710797731230774473062413708825180508712685878313493511752004076907309124320926578351450760581702699081215053552051836166164735044412956681807406715760298933519647037562820672736454853088974962494732348939000971083638580991363898486040133200150110500800477683682864909843310961622126720241255236411263596074163889543588482548559485842923276788357861102683556702293464488442347266334935917280551554102418908075623613049583752637107627797741800026474724913543587169774546299426692099246262417450708751858027792924408001195321671324499024776138442091801129831490390206702344959420610365264775352078466234423289837074265337868733933423043103809331842315487839506765090466301481721240367986347760041957902773626479288237737306957731743067564992262601828716112560427284914066593054449626267515294764622173542800921163188482261225957944219184764496706481126269985787780389158697948160863059314767832785984327114652229005757261697354393856742601670135176819319487460024391592954592995257017272120113917690365628361321828990437297855148218885457213468312427322234951247802618863975761644305075911786660128326567968052424587432668328106104054956661951523578570893789479481050951148931332130468041798911459098383981004858119033550114403854527059744357667038854527011834780817752304611317507834921923422799152427807505261250374575443469909179082653551545427554389683915392972039756503094595905709992355906327043146164959208699438495186063016724770743485397684360645003803888130993236230213913648442602813569668711889442530658883961052811280185898744926485777146929192905345451364454822746622096790215378071912085620554737101968465928232448183377179140963161628865523783784692418787129304891207913970745872385783717460575525378920662283299294923271933545174243523635727149115264732641226783881447114500370405546782079489891694377607000533913536980061536802360332871136716986741498360192530009061265112355016452965080722968302755009967303800955203722401063738682436074161797888181239002284542783752374708398623849551541287876332867592331401518713618857870282047438110185307053483167541579029239441118970341744271716946921076762773611491727997401507990297696816238867758596557959891213863181134446968100614679430176706963902892367158686815955384056689526834742305199105006000558406935277893220925710740963550949286636551503442345440731608972118534776731427764866530297327059631067719428931494961068439144542688022028112252530002241155294632491194929776843399893160111519295891325163971236484376333965598201602035441464561834435773116830511966221969545667085327836845238224950846405555245026027323341500011134337940526490119524635299671748707931322190913263497859241836189830314517310112679817315034092631298750792072073140653905899663676616178296695915000014880940482159268402393677716920943968089147310207243909079257915314947980140545092416296079952385064280312118929234000477778081669800784580555786483525289950292753416407551575460501477014002155365737585968316129974007349623391559759077236083967836853179452051066707351277573078990008105074704651026420780196257665005228727941292464421596569968496571104469750056793036160702031741646776890948757541299621991482471796379007918150915023648687004121830682060462370371053680707242844135274605316535972054051481635366985415891767430255728429680747215628699726634137837037673723041056129604995745986960076550311216971142648593294501208109221022268440585124819894887438562438618638935712497248244246230329505843143773415105139961990180292129443088717295174624094068101067289800458325809197236283889356488251755250257586361543415972703225113015334701254891144209134308749528728689046158118323082129550967860186931789208689113087876197394215316228613660669377608151833818699194557594821235528818834207291785472367752205270171246647485690968292294283126216026323116311478095195323416982196212990011660253898021291992167385713494949756593966812472098732364534939287998736455103814523879020026684019346163252532907688914511994333059199766679108668601422412388186178531743133024291439326384430552515322076951130097480781032502539444962907783340063286652883501521409725900383902342547972392886908031338651695489698222257904096298014280345417203229206248909092996001997002643918493735081454328845023489976305274900317373105060382609358311045613380673017590655042669445506038004087749507982632393288197995063982067399213285346898249497693690409128617226511988678665737255396773143364549314194213846924937323616944696126678534582711027627732589969624228235460455127753891999732052082340425719866935860199157913269513154717613204558864652067493104765940368444352374106419078282509651253005602361145408636404576438897080220823990382771348157524868330201485331708137543335402312387815220089835981662721492854375700674914770044474787945419380327728091364893922265252859151113288727662857171575152173644483554613231744957434004438102270490074300401259128127221465815712087142258450064980511668731904647029911879767125702740687593747853232380940168440565878275598963637749169809310569939505395470660824497016130955612801062731691842291528772232520711615341202013956549308674328161695745336039470153783514635309307755144763519325179068721935320815858329592239130935043445841619716495185536425494789012602547521106555340182617762924004449240106826956558687188452844880144910902600800897202519171179924307507709893290589089260588310908044602452551701026130693455939509561185146815242474280695609115193968026171527035101180590086857010541944980140320966750709947803494754258185746043373249841564939411774117336037695905320366480125886535768348105740443004707425005406662708251778988432307311743923701108982402042866155390245534199653357088155063915380838941090475472389937509672203489986491066837337385052806545528297160386003073657884714771424111000119646956885242404536487804006500504437673315651073783217381479922637683385366758978219170651126189685549204217018100221670467562290844033262858748144227596363635495253810694645916537325708685170135048191311711047267336308214223902287822813218667195318237304592723393981516994593213215473616212740212720014165533712023632127350634471515878024743761212610640371315440183793933036504021556910582381147475346923273199461787633247476671273386210721086141094343968665565922420697168400453987457204133624395358707773029021670013081851951963006031395364467151191446130047957894996632117827408500084105266979253867884441725566342392970177960895204242908035430097829059696160735864422570106169945053000185405528667211569589360539115746254679132464559162525961696649241487909626077960421682032289664249141651442014167261891909580871695697385827510370339031444351994112463524977393737466978485566448720082884731937175336744664683782001936464446439623354971179881512844530062488649704872049471388645596314562253924655123398572744841121903703151662723239332319962747707574649106880399941644113585971661969339884508686914077607535419812898672768237689938819024198502226596626126568804815198557810366946716657145053549830468666310966629325899706634293571615103194474269840628365240503494738762887935810502879854734538237800555437095259712051746629618195742001166631830925447067100685878517587130536205908459278739051263849071841454387192628669155817071195074397138472411925249569717056796658772080469527861725564244840931345041665364597859375604880398070008865371282846684684355872976265746333431858714442677859939101651481006039973117679221155828976054636842442148051409813249536615058830783929861134650073760334959297430169162359969656435242685928083809734904937490461890364048129337743133150273640333673441616032723599038721419627554727721975326817700932214570486355881743908734971669852551395530664065756949329814829283308350896367370697437646866107771205526786868002219634241517702088044799033230745389665218726391876187071161177849858456992945892258797950629520713114913991089777677222207835106578364934868298293756297335681096984468176744057349119007047996648454743001918638727416970375098234052553479065518235491588612372005920672377143165252025234447977109439571822263871056679279005103858021660835665844243832444083777062715512882419665867344406133481643524428238660128596707807390266179313604242644834311754023342692229692901442819944993563442530988121026466479097588153226630411336573393793079366338992423674842812909789727563054834746652271140445624466953219085017749305207370895910707530364950523676868671179540088315440237609681043477215468663975373424066386954934087072582036627639535224876211543639650585260912707181625951459701047371640337483226530570039320029078433923027784495263672243047207266244616472961758456802118022831274630625267199784472387630036571356542591204051677470214571832230788797836832012927193825563033908548056848076451987184844507195775349123163537798695837965239887956760040659434289399855273543121519189550832355327456020778415338845374952521370355382561236589158768808955512825132941354724547054607945034118789097129148434625657515990842049170927137911062414957012787001083096633628555486950673706504251790405618429794366313264581532241306283183822675935468287512625833970753488830001279373063723399995787512454056460908808406626012022916920126587476018271457155778666771951756683510122917819850915640568723058576359753983142779872697103453502943804003883812895037009697693583296320278944520564306343627528905287699808359375882380484619923733897343370263681969076358063297364396580903520218919869523419717641843957888748572959355944585815815483274064872056477168997130400850291701519703284884903571700523974208726520720355508237841229348415578885966713963752514461464877982094725755251176390511214100350400930637339015888853984390210696593235550964027711660591819650093951601609044883324441320487202295667091256223182315868953844432139399991442143512479171799559785672739667279089196701436587136139262132526407486791776673055242520307812428913990202064063311079780117654415306410526738323826725349363214120412258606340929035379149614140683757458037802863663142073844441025466764223472127237325615494103343146913795809625470947293094335236183719030694865567111046665195611039390541223506499626496985855888687018157135401243251056234420197111248817257719693487949164069172543730918482988392563921693397921925795382158089257271492050900989789527853646884530084293453839035151041979414651858496570264793206915948141216147842952980689259036665306841750789608660666611442691331974428299525712841469816914638330696327427572645567372802802531326414289554064130502987263244989557288886709341778973826611656615144057250099868514679743018788225419627001675609112171824426239447926537240219644853473731579187499845641108711660669731969819876148684354243428733688176833934150255359183169561310202225350885609717355576605304592279840851531248935245198773088611427015027548441086389300035151001428382225191174105886798037643421002851065856130031246827558683890230148920022419105973483868623443849178902724157889334271768238402697704850530890896502765967918147949421586649413004868436870789596905993491781393277959352189090943719683277715958841142737967724871350960057527084989611051139999491552152384587896243891627754484150369979148992065367441150679358293288566798429602058075517441863825067081353939937722913114340813834303928465581453979363449989969435858302398320838990737573493901714539458270621263451764821125113125343846480735821145751926651249166648541557283078983549518820899030828394408960295243742603127629888343872644538591926599687864609747657669265716347436023451281680865092198315223470818268757438408845284946221080030552215485250024010596517629191180287428296548098005230930242094860502966303138881551331093572560918079725674299601492210726986018473655936650128975520391524804188107114283609279941215983310965268461786902064039973681448566119464130754233047968548177943462173444711341165156580857744826613162467179511756285687890248745543270246792889767728748550308271830474582659660697595880144900665098809449854335405341692568749901037982877896869748928481368238286508408974232508433398897072861196426672251590634865158723321302326438245346358411804684910150560288830692118950399670719110551290448209167135781712513108431241195000643381210319700578011931585648802648805140510020088614305690137847457887134105337106681591780481360287943391859007903820688843999384965040879314331437731334070010856927098216669403888213183799193179865095658613986450333293997743903081410410020289385599764652104142607497179815099237212979730565180858945719318904389543603204385421762434021331853743190753889753556998690483218630564717995514632945402293887061702651776070277123173562965997496124834309244050175233616747703922300276800112071526438584148143817041642266051406072084201135958604279064146407366009969376440729947257679495545094667466925878594772342398958555153081409220568348704036375649468235516545082493501683158495973796979591230861268874038881368499683007237873890010676724431631730065035741896402851122839448248373199045785170790219134174404281278477993702959707625128671305996162429575207571230858212828632204719726085440546219649091747802761168205179624705309156223014342077249282877015298525480472226622778647911952568599751980727903237307996697520971799064807445682075515794936973555437291284606091825340682550251045506804015194089463827299769894259021811630183588255582616140079143481282990550780360542854162507617989729885022544934944907233172790364908853338979580997626266183197359318938769524657150703350468384795489355307401269398766841614185340979384832726853683903682143948121204452050098692915073146465655806304368063474222844426845470690707983697582779898937117899020381441162393910893278425674765381911395073199311243295723596561943552158374334124830644153231508573166350330348130636210589617922842597056209457179153803707027415006115018703519765999019751630423199227781261970268710099270630490520350484770075083727710073692748251659420290415015845754748364761155721556125913396684614401572585538417688950758557384512870255718251434030168786694510084877014503386181476470236643864656024244708367073123003086923322412402781283456668196296152456782454039336294515605363283189060845722025108778413004619021780961433366808939672791886719119311642025879795036871589203964243772260668053843871277679516505346650386662709499088987718381885826102290683564745430889406555721738837985795568587142772615143757354655737835791312002191411120709191160702030879581703441948281910155753416854250584082811517594832121051532386122011533558592376860612734522383141667368901781627610183377945909230332431226104525289329248765307916537015600296326138985824199788627122992351174368571589592521033249524425480943638428794388808096800440864328154002721800158749238800300707188271490237112075050203916896856790793091499129524663762687591133817539108211026171194357253217582549908186486311236544399308127220825323924152931382659331075483040157799549970625152266479940080230159952588880147778199357542158627861881493674841191383649918351413457632852013752160527815753232635383416062727181165632938436384270493731209072694399867904782122020771268937208166963450066221465393466312270574870153537861254497711786613460360264772060497686180108861825546007434058799297393995556116113155592175097291994812090416080469026761502617163118376769718228796528291937187887651077476013830351841415107563053098694356762774713069636175980465682961053003506660869012833021777528958020500443027974627172095125452524042942548314721508156452556649631444691391466364980140021009507359945739850072620553888889968708773731569103799806689934363371472858403138531236996158628019927116402639708219769717534488731200214410717203037616938462267564139143038057385373292000293167194593499889550851540672103436859109630705820055170095355664045732445373796109237115624006915290914106548596341762942613074837533973206617979889415258324286755394529351088123759361303284814282857509178742785341034751290289467320009765550701896878736585430939278981946128470901498842444477633668406912275813736254589781873759586924103621255186443085842236584888335480074994211588097769428606884971652266054567981601768518953623017512371258170580300721545792831893785888079783702383665253257348525958720981615763115953420614863747594114757567071564706693195944334445922688746276688385779928844137899193729995142693469224556868297646205736592702841309084717928541970484358721849023311575911386152059082957925396558104129375124271052640068953642035006845129392276475198923318743365762470052222881652953374554158700612335692757150623102236853560625107926012191856005356451107520274742969249963694556321080587138723503537245136320161634565966671187128804802989556221083354108378965610070833696765177630335501597976004461687696178791070060921508245340274385799061578399956398517030879169137128407137390818340495939473038512628989036807553814133657405422548612852450207030868651623208765135617116722124796014325771628493972996565770302252848123714314611369010693412970065911852651701062206949735543960214188596269042449876823726894930616148654148600413186616710564830614255418416463275937838861139691818670228107592213076671559665834908608586392902859189964827687419575912457593745643492342757239043725186101022856132482358285654825042494073342645828812381493572272591971647467789526193556225479138393741056342169366155496344169943689058520917233713205464608697763139759242315090953994176938139473452152491824534940351940279958918132940825612758704634043743065627919833436250687976595786647336811427403941897205953363636225206171998261022507206535451228060048160891188615565779052020317540669312529786193100166202783595242252911560562537927779588777021757022783063793936430341367568835823701266952990883540816928619972137377840507977846028696052752898190464217637087245308226265097618970382924809644653165642118420621229044016318002352817435824584682092743241292803678852573995851838349078946924632679282128623505483833820395372683636974220321197456777358347461908039261419500892751901360289190487943316978519017121680606607619408511794684869369439541851385868214745007723409228774335121607603680519582783822021006100824616269561308798617671592263815216768795092142918892202807482376243790305732938005159409516187491825066499164259473614843458720694748929638885091755742082896252085225148598268721039165722131055524524735248390821271691736810768106088144375559445701131904486470530849990191942550488817686398949812604872295484619509198999354398670320537516260586371916304246515421574966474952001307636497256389622042810408061165662323522462014074079716153347402397073501077995713295976787476059408775357808406158641990271728587268415610528248691632332423234131139052678283535311436751017390933596308342199777098216839114937131373266489964495099247782119908095693407456386556016552978574531436940500704951931629477245061496803278082426483309992196452186470595230223354817115919684575238967805045628357032554273058190216010033417629454608411460238824871869363295657824697889497896957183385720747878817793258016951641495461621648245975127155335556613942998133512425654373131593890293759232821622088634134503380333988838681388133164815765741267237943904648220667525018973431596106660061169122343111124720140562013801595696722284346125871974044728718329911446085270156459939783720650277899197150490870448971511746258860931879218236767121482393873869385203858518091053869990156092925673370687660965700990378893595111880199315394436144265000335425666666958965494249011916919531717165060784718627283988493418323855080889534610614062676574540344174820167742922791607606460578715128745619848693275297684643527805915624280444475534118037182021301280722340978245444537920624819399362556624511706549805502715335758952132313721594781656926113538582205269675953530074120009155889072192201312264239367453877290915042865314670041293637362457846657446322645953327926070221092472522051491776618235220826143331334416654358093536111089346868571922443952575351069635978703728402888532674820256217891158910961341296565005801664782547062249823365772924790910358725007426823394277477338906734384644534731669912776768885785800810443217053347086287771362234149909511483590090108718584728964360085696533903158537289381632312045217000667641665797563060257740235590840317137007806687996953072474214078052626040804070251595874516958600916973394121069937431598731802624147088143348706913486035936057798413663734548764452278655184643473109362520298993404464435910131067879741093827335453114985555922332229763587149528274100341761789518786965579743657927969751699937426415011951811612217869990710086536264844486134316300914605479929789715976449201767637665471695553840310856594433145818075948648542305247222638408912724487605282845912148669416015099484228423718757135672668949498056783437333222073838135427857023689476583509021245007786420399855270683428551647300044967439471742554923016621047647722401214583201031602239662502961141158011065977993903687532288967632225234231984734608354118189622572945408612992541310441731687452482260969717582022302302694847380676195931755477443898552642471849949460098147762511131585680852902725844240922399303097425491475347361440664823936175031908320222742675242828315734049727768666585409331587675795102756141107717530803988814257039145416869972542614086137730619304505277740274099998984917533289270815938404319630675846480958593603810333527844731783727920381250741954526083267138511412630593072036320619668312905310095635028236106444879584855232639280981494333423922398682020263113080828855487323271130421049546301616170703170982050216375336497950161402692612629023041175465950831130449413084909474003559891318574437610671524914847435554199194018060919760475289080003478535057972483363629624897568850928393101174906743366050135463064809501389203143437423254792256292636719768579323158477743454636420600449168329566545816399718286111478237677846725830321965767006512579276329331489612398137403540550677618739801403776891824235148489194358824011806371646909282572499447327967813859841732360675960015026266716419860331612991561831758446190952223597644011532363114490845408895510483742573380158937852418824228067768548606759762342568867359450434745898731981424162517613207180686989639392171568832788581800580310935366339945133583065620380736209901954048481899914855546478005952366653077416986821313129802135883098248044898999733572966906719044488019304845791158739807956912271893904124479805682427875641308710845939830293076835341742196543272042775722577311909497743245560743840746443157530254141574393834338309413803276942999939302059738228880900212562917231807463442252444096384292416544058849340166741459350913931666375147853245831858018066241236026541516519708522870462203479867652499290780923137361536149383857690878413425764850706585744225234413675600339815548034201640991443879593079215900780427681383622740619993039480553175745817665089456208515793303505784115734106666957634358653685635122158725657373355829467694167525031430832429969503665489179001790351067117807432649438897330501282895598198362975492781633887858492505105770499348444033082740645915566390213691726380580196942346390348854344675854413610322886258871906543225702818201013387107463323290469770208073090049571740993012372875646094577450891431618098397015337463316089841001686367817380211282422889963236755257446737536312340674809055397615978255437782491310828080528699908485729213720399670316249356537854720143224308511427815528555970565371293322966169329196606733723684870864303619258450117248739982264838013989534880764650481210922282122566489496075522009631962927390099073999125132259262299989165030562324746234144487863084348551876684356777851754859317710916724898743046366199380962441429749349430148031809918255539727801972705129178191082713571112483204465971610754415234896369028380935040855155469898842339967483412305019572873416388391466164533361293814743278352076203295029556441935749755829164138273758562369175898933800269913677981722448772727874690737508527801690866312312775948284470705854098741195782340251101444556661592986124399852101755944035837067049574640894251913647590663073432369158180878734250824014201849181794209076441033078966660384769631275660632107982290763954765493438188181866104903882563189252531178444833024452874927349226585678545469525714440416713739632830119419172531069497273760730992921482593062637065356843155089992959638645111130101749061516839241879636465614661024696228649974231454199208318573196183012588348689415496794613187261295610996619820763548968930262846691861278915596206591454845972522974519722550643341449420902951070736959076425098598543440937794358877191035563919121514648364421384210147881203291055442942876054318814758526611148590803875410701263242374915539553491534590811019935125738587035891380697023737527717170892045630028301827850967984061008994386107599848649758115741897682993391158737538420108781590181876364310941054140633205776706274377522389288818034877582274642926666507613518362195827839756120502551181382023486505531595290236887758156019310916527614428389659079637880490265886566811345341915622714858636022445979284601653097236734070649951730171772591940989455641135536755165093866688783430693348796469207572343108360340497210873072353880996220626214562656594024841460680879631991001570910047008084698445496691827539763861107427041318487845433020378870106580808111570578457328654485074461453126371198998735141169549025353011001006107273685093210578633541355230119714840954561675347325052941292863215544200256675838548275988486197342099112699989088905182790737403980802771959145153530918811932434180331052331287572455428737726777607404880686110429560463948212850046895826229441915526738170654429076410895729729851198169675196595175601902775603142689983167225822024611899302082323465077673742461974907549376369152917355159424384417804287715072342773281528181854494660809400544933460853883849403300171933803433610807435147339154560844835739275517264651814930683441408229111202724764221552828088139164930165590544369214699872032829739570507578127291915405890281434344279106245193448964703219021540032959766439172672393066765685116882231853870274804243766987656359120793175747496796600769512727875296601512730752131727435314858366425962381857889472510061629174362628047048956584068556605428743980158174021120924607502896679812241665647578739853489013191227896018150836175675863739916072009754848156156420102686974353281385249693975949953880729318820059365393936093945473728689894393894504551220391134985945583348074949744320147296610547426994592564371542962039833308789902925685781898547421087203235392681374200481840478114355054697296224158876974994222611886549778974478849752668330493708043137830339622437527591207583765898114009065094071210570819745537211505386616710885447856719550181377726226428340042099577949468820413405108880276191890966443470383053705492194220996759341751423737666619044937234529265397273329517952391944659805934333423352159518550630663039341080489219479420777142451792660511856310955688357383594574224837218472792793008616656919772489783921983606048784029965662784181192669285141993602046140385918848314619004000198715481139959934362693335351022937322551560113100241509552406498801410483318041178225776429708545748771845444957775923686394979343375820595431163767391168266614043068061429946457661727212582999647261921876594315877536748697523770208973197688201763278836886009880143774294822052438615632246523839491340029889970125421937032468161603225451654824931261332946722431765885394598819381139795972450411464774370449672859951647434308815086452011047972559099862094971035562751099367906950596263622132210048912123675096812478152466217672623343159760577981691649918667510881283775852440700211772831332866478518886255888105700492883120085538252261093262494606644997109869427157075001829427717566101722570972742295902031546148674336505012883863061616513310985868033927111732196545768647684117846985064205380349428893697657885354575061323284924356782965451896412904707232481254918025855774637610393182440135962249055050526034416497863192362588930914251718108056947899956272786943769827372450413034262282028467775296951738724025857832666153295531844981649726617118404623591160571119592693268531136633724082110810961479628439089906030340658216012881317217769365440088257535321733332389772653154664028313736465301780348543933059151300219649193798765835710493370037887879960190590677716755997797120776650392435227492688532624993848604963995331854753980179487092051978360820409067096325007170856822041020590904432881560514821922898830456817062988026597259255824199388668526597641274906185444603821366945232692262880358966400183616058858526061160925561379960965535937536496595469557136799334299887858370903152806466378225828886311270787783193487464575992732829595618289531991372017587241469492671195791538379735843685574407483657099687927736037152674396448280115487200425385841840860532455351950541133964439954003446529195204638435418131998017620949520780912487077584879406325026968973257681307445151806391098897390254405800265493114084935954622728726153433240708117573429623392246847021356586004548326036677118977633982567070228874108930934648273120748219755756815763454642562143988118842516621357599140169602177074147426086593956386810417585419352066252302156363672736364716946967985388387728208873944740524761274445334803074191399409237635928938426729308369112443156259260172977009829472406003383999966788059200007457415949325132346322858789674976541125722064426286616094866345351191306012337187628424964324644511424988354837570661053960642915553963905871587435614773482704354870948100823344031697573045645607046958468322988966659583869074668329311368509984565113823387811573930662808227478748488321465431048237668333072095251524712469071787950315416037534481312993448148258530209969680625295359563483954321894126169232556371029828799171856587579433406040792014884594784405177417875261182876088097148090507447643957267361202665775514341170105163827711128198643868420758696525476876195964593081383085406816891059370352585595832555113985547896507968588312218575021367040035617924923116274863749306203523918441900751891435652820290694380350767676902760200484804357961206315392633330669765455545870362433624386202452355952454234965409351306826295335320459837859430592015406139489476992315045887039236849094205033875475584811012420588983157467643084561598539407729112419493692879581438765955183431703705012478528153048024609124493893109872599262769581078820386892192022660454705022322523594470419770770008174143203853062007142844682214363016965574361699241151910941635084239747901612065779948729624000791631274831797899638180818996020908824488212101581698253512124490133564839855300318233148933623438622571689955069401787412933021384628605849901528055118102100114627322402602060492462019439085945961054299863076248227095252906564106676015944809277914718812159868273449211109539734100232341125006655624820819631969721803601632144966614578118615023536768132877790984162729987885638294620555672695333733765818743516377907951977215839972904279381993760821325110383275702550716168381946478507989845060881444200992779444785603012568749532287809154770904730704661762340716648169833849723217491567304894576558166038258670042662123486049059654010337563994137950484936995023054898464419463203037197431853319294510793019077614116850841786392342923286903507786595182578257182427017528244465640008645136354899665081530284454262312465728780809927496464923380758090859376598581792769154755678363187721828541761746822509142118911574789387672530834768542894544785913424951138777179651705773368234721673417310297515652607912582713182136126153517377038926644778515844492239097575559524340413010207826624011245096940372099187097220650380265740520380570053140279829011402127967345097064701114686372518277278542437436844937147329269281223174172453565187653557602803665223188498951649810869324525591717996356812374464221381095520567946205156002099098530225568447598877220484720267636186204634916604252491435714178199574382047788783053826030347319656748878142999043036459315801954450198635544312788187272772851408873663320232052641899795441197860144630242807240092457461122072288411404933495885691791077192555008392886874119652243441674899982911371590111365822752067307051854030240202122893492277101052479098045314175655885184040657165705165000009273004010414477935887785177817860948529321133648487273596843767064837162211457785700148221731143314585953187428638417244394052549452648511759423698279566487485227578405328818834994355921317422922061636694445361282666329528955988536526939808373901437380753614624935632935453393174793682652150290346950783127007152259643340394028071678122228215445505168797310291614270864873344382412210800376303112206976802033824832852272213013473542541665725729411028916867269934448404163003769683241605611059596173679916699985565118792072262602114166924919947440915090719629907947612771819099641788752781409911783273823500093553487331626981908683892949392640845981088167768130167031961862047002873447537287550265017343139088394918649001000694249588896702557788934888298441101400333993861966595858610141544474759549534532750468108670108401026880001230101513239888091084434389347555085146759738051796431176282564613729318031046190267046418742646853673012518019637565064367948299431883045969638137736416476881659091061288255169734338192685825563963531303202674822815067176879712164601567993715059271641732014436379489505948465938672899102925631038730845060531229240283691901326456727552600695572738877343913648921650944486775142235149909257397352926340575077888991016978686558034630100903909370944188850712414507086269201223939237988090358112609233464959076239428168750025747090227647396542509007467395927760464228488637303740060732780367468452533596018138129806600399507858708046026870699907530805766821519519055185742132772640809209982022398183073875651286091268890879416946549377580296481789850475591795113960175288296518934357360184881929641212181878510941255695732207657694747116683993325677718342619331186638068585221699838551769447595326523319898839992209547268085736546296206355755327045070879860105735370910498677102486850939470800001075102596381489769431663787028277995557450068804688179385039985705839255081408413127084623768821896184046061734325412123625484042956779009744433505355776615600741166173821488349302294181820098906572723953866268673736891968838853459824522179448209487566322395969075896902104997754106171940380849088965073028421798838351298686578362176732570456269592592726707967390706738131436632126557867162926236440263344580721110202537371351124237250493984617981756372516196950322658189453999171707599670917925382032012501971850295024066876854278768913914236113508058747492048943811518510157930164648615009287835497180249829552904257943115739569813861705389465573564501356120617536059560905284348970302605261788412003488990481919357754098096232806382692446290464975326344404431182227833329389260140023711110396404361596813259946753717915079648929793054865032509551803195222554502924989348364730111564755199325523062929334917220517068347491862710023791666439681716670446698970729333596311854494544683061640207585446661678391728971479817790489018399803738391994030749371050626163756195559049938793708416819478047264794827117355534175690723176172197677653231946431701653484968312843267989850309963061366286977722683065244062773063292319623087562065594167045041037227750934458377292266855813862804642899631841542739472523920671874103119766769134882587232260545362436801430132630326125416103441831253518460037856710246670286750413590528212173816828038626533579666204946217399278209713705480707841774889077810642228529973031347096817502083448708253379928149293366863163015030189232238478677814219045661772071918658006974688785492746483704470074788471081023894895771672440648565749704054392963944851035599207854351378293812764660931217267433633908708621715774221991385643538682061252906098731930738690439683338833200001084083139955442678565854631250833825947217182923579572647029910149403654394715861941167781594091114596476954036663599024428573973685387059109457463953767289874225815379473561864012834546248136580790324605157615820463760139748261112429851082653464675800692389763902471415962215089609824075784072142660473169361687120689429607403356825409958977080508634942077205182614165602164626398786428888781491702408653408979333263377119248376331073847701078340852618955074533229939966209270158585605090961652423323998743318675593350536930348490596873569070145145760652222951456554833484886325800616097824696087128341938825472922499186322515550764048961512507932132628772729515651186506714708376672245444893844177866384764631697788833078316828006166386658659528261553932451636151625092828497774612547912719255115276347672673934204112307861749030605371163648967062820403776765996479295034476991503020861992503565849797865403836420659329161174780709405986204173133770575606371919574171959679091963880995285811342763277909180719575200478946384960054516928868943899120802173323749244362886704546596319561418308368678963774697170819369257447587459501547641239986012316125358271658303854010846613776406164128974184746761539785089927863312253071394142496779510447581487573003107064487287291240810234499397731833652041107973485042089851747348060582886114065647966514923563294757439453207714726443968980765814416171742397899956237446687684601006365577156561102874857720062723149784118671274075661409216260602718347397216654008469060042205544471618991300202060141784398376460495533998219900545161403711858152916779907103901477888648342301293933088455106610838172508795139727254164844456923010518271513130323935163564753089164133300766177950097023788322047519189304765813523177558428239431461537667901214739211479071531514565065357353528127754448318230819368808940330629182317871915388313529300954277291395098101245332053229711694925731194309497298405211305725617165745181708252729834565240265361346293810021540323988051758387009397535273691197032116051832393572442046429174258373424939848631215759598974698168109310702773443725398580244701912439737262261817799680926382625192419106315227537105095568708649631815663633482231106103773824699276411013885695049985272780937609288267838120599532509889829744595400625450450336333465731455823498927942768039238243492300221420259737372330118062411902434961616682512077651792264567339922749331628115191893389632060683911108491703294015679172282748289212479213273352131825877585448880308621548089188771616432353843721885599462969496371589324034809866464757542389106284734908627543067805772065474526383120865086731756933736615262788257690049019857417960542333824437879542012422838695984020346743806600306166362827948597715383819674718960584279639404417590266915869864124974781636982071328388282776642245913689457222299855551954191341286758868628219335582002729608522792096867427355676891088992295158110484843934415701525845516810585747747839761548096268879009932213741911550563951483458705024961079733285063593213900030873044539361556207696685338981451613089104973050762162982929476010384961604302602140435998541835342214848889172739179126553484816130235015467712940249003468034943748546388873804387681530306747968203089084463113052208526820418455323057173739589268188974402710199981555013090577129185909390516067734977148103639486270905095323292351283229289620276989267217265329142858152907086723208281260388696941964462931861864874370574233654717819450524574310606085028251540525049920261796174353149904341813552475248015187196885489172945212173590994419228467067748779451827840073979864153491342122597148138248735583028119492344269128014059595664530142650419951742543546720216960767718342152632158813427831302066673615812543989879496339777887961080936700023307081784435838276145944964945511337445513340985235104274466618450526733894186065446967729812623766176735700659611589696393100504997524300749333228238573783836246659216816878468485356960192216875681853920038251997240534510529388045087111445149106485871661544659271508238945505334809284309749312031752377216952843442290119212570161794774670474300900029676213509605429448024356261060413513664017226295569997219414661739721618869824718827996371656703308887372817594046306432589883317909050431964377251457681950547499707086178610640639665303869186187568134251412376554157468536054430269529730925084481686013301167812920930727105783748441701477119133515375479346069190624482348368676218327354396917698645899789840019979490655155946560901350215237660029646590488816808014007824735862406157440388937856830304400753390547800012913834638679590747892519645907752653480623310061627164124491508843216307043996718691583567141239372990415694784600200086058869707391909871095882118293909405361385338640376067788188384254525417801785500688913403254575179380494644182911252781344936624582736608141931481733028509044867872602882897974402706953653041981385476472601548976252312346000164856197705547865271434876132564179421241962759802072459470468388558355917037421330461166656205109917176188109717918171447383130534264641610404829566712593108531667415275742231376272933125991868121842590073156605107919037556367746588517770932258590202812439080552857425252017211955693203765025285134913530652674737754782752267654651665502342710762483858661069099033799453031378531357240414198356164381856612123369707956481667821105317346256585027882571999612890109546980647973286923281687396363604643114239717599537645792184813459503791995923485299205491979093811960277102989681777085156559582291985083122825176114434412869254222819524257398827751264723254402383166687177073908565744656703234454879505453821751090482221247451598230507281163309573185655546604180849758918581231701798350385759439778776137164542311417478387157577405859243524452338277009628176349668353821005681720592900001047104137194961826252577529599455414109010861882739914101291331782434970500453549831894640192406982842936522797471773184737680565384631560327834866415367301015392168494009046079311272602740409367825129174074906858796053984053339437938922644640187738247960463283936796721864065873585475822690647010045610179601804602502705480999126150026321583344021708872427124645313646046394980298989305561236130534110542956486866420613579826271858589353545101943355136769858941407414154919738866404807593008346403678582223638019719468621482928416826448635248579620195884598934276996884015578631931107229740576038664251477529156287567212897152500769998020636362511510626670395271416707119324871409587950245981085549562979440824366177995761894153268608184352650491210355590698262632244900530163116501144245151449727678741777496128887862372251221078926382339518827110983829275077511690432030173114079048248748095661258580155896376642742947307894791329611768024282530597487035783633683130612212881073212439441083196868969952674381248025472712298997514583057506489888320148046656932515178213249000984369236999673794404563088107469788120710546697730234177821017167944037224166777311301991700635798962098353243892190871344986545682049257360709258424844907393044778046403820526222234966761143520458466143286739563380653895470106605672932794984765769462115626450396394584609031736955677613451695982632254901334210585009371814427708428760701560549822271884117048357839096870215047563907797807592509452663099488010861372149996993745999558290736368049597950344697097532285595683917980087247311772465231090599686938817232942733623649309843808133579508626896327181193909682236632008730295963317681986200404951476833228347270281856454622309815473169561860732598812775943023487463612200850702745049938296651399455756779317802959944154587922538264190300902257069756692431824262795834827868068115257719244158609323707057811617454049284364435701908142901511291199558560429443568923710027502557395893619075927540494947041077276209859474260933717252444387810424196750363823172758234088740956038972624214419833347486529434719873572172226692246831446743040082379942777908554261832578491998387436129487964715596726984712599037064263757771919048828674638160858848477847775738225373635290340278513826214832206637633646473223250279868427195840354643632465726173312994611437359599357305242062113107407319676820209856938732343677297555796750193057545873136512411108996621896470891330306717186070458536921746835982158983917207526254399124584255592052326353886829944702009359087516630907795965320181575867653954498486243899597591004457944365494245631418683918356516826041339572618134935703420589250139879115322499984725536538792160556008620383636234099676240918940546788477819145285700055792190277985849827579547557195663751176484495695828637058262068041564917504336424441545865659126477442315292630763362416044019343697990343564346697098651806420386822736030648419891820287498191378692310088183988245324611692333202726879327060126362624548370416880914196661135694227852822289025518237364493879755938571025507316379167489081442453494960586709353282541642562018902680711083732212670471023376486735119111047407465383733644931750012684846165578375360498155916858333480513205233718557943242838361675526995592232726763269344132047707379480169026017302013414542259244229615266959647745796699522976987467011771432335972484688026403689119854068201001692882328553560496772836370220426525561246866355264995357129268986088293316366862031735175473484389815202815191797282322995351597180195179580969175928245220048993465057953905251936347846704619378099353838399803931655877293882081891991132788952931712970393407666897439738251189837415713552766173640984113815161028857506496156418269156010847435901134716108253764787424915727400391026080449836149544085009648372035608925812667990789750375375880811204057437012482429070486307239991568244957957739613543652366768073624902551443470328829370253498306396911154348873057635996760043770062974280166511437691182339948849667600109760229065013191881944615609528353048268173484988818631406922961944106973713890524479096030715494460813291437449411298512716392043770172002093270796443335650181486042104836324038163473955981275717572825799015289248770929000949030820598220539865505236263011437673180354596696005752866517567317971415461515473136934953715061392373824035888852939867902138589633793344090772915348317056617778747543289735466383173430014970351744183640999688848406601226444330397896728864001672381998371082393983906870152217009117790099885932939035908680951231952547788278371958199186202777080691704327772921137309092418707107429368612197446026067912034197433275150387300130393694657833434464460228453886573080220250161028114311142779047838735958003918673526212860881529457786987371996379846848457447567823960624008101137678455268849107215389045636193611441979005344433873284634690393894218629902856221829861516009267381588059306529857544800686452497555063634897103545205550962462186772705568305246460716327567362057610221261225896192431758782935885641124133659151224750908370083105847270245693440289669154799459866367176022685428662951915125158620308240749912022811018956289917919365409435599151144185341233510146244890853623660750851447391165442952481172219933989638726969745314814912426337008285370672200566544973150065478387107774647949823090112956430861655730174437866090402952821339128468531164839035572788898639337129723177465356386834615505632916476996286407655495441835395592353078860389796167205013812083065231143775466603854463293864750265352861448515790986306323286393871861204429931509811836335669175477778728222104926359848459524052794016373377431507338139280429277532819864336006285843399744947637528830002440877062017659131225222598095174378742650580314245222908221350931272035203212097714471351912356249957152709905032645420584359745691331017829988078509928560188054909684296173384471574270935114771836523984745443329645025847336601939850904141160733334292246770669149216391927078956547836452437920221081807330181945593314265081240357059456596173743146511857342157737641296857429501272074851620878697503189147769311618271765702467164624984116316990267929760969668623659032061789520837049765996209903686233868410199156832899072815528204038582658585542785387920858020818129200775136196466671016390658035641608661087883772621381988438773425131617002524284048004014386434239910489452720685860762799223538499284250504649957278761784474404716010549340654157527294098755181575946427297070494893537330802005065251234344327237016232134642485621349353364818607160428123102682306449265459415960400020414143597100085245312551787721367577780116578814934515862063339003217415241948646158387688080743338926396140071411197834335211873110204672850563175664782216596606529504994512532557758827587815589563544683759965160276371977401933044003788693789498605910548710455587680901169245309749878119786686501014649103297321318302416102083074304950778281902356784841764044748362472362934565743475111863115057651221990189606272769908785936907072897668631541050307930787457838342685892280819171199074394356901323426795010196145266634548227260226897796511377170940148487619621336528799492148301696858757155334973669057335888698923487457495178920506322823887654249548724322385484195565150397887533608428026104112990200532192192278985169156323649857080264376044802264540151744740593695223571600206230870411937443497434800078457123472952206485954268272922154280567858446970641859935466004744267394610447416051348939143886720114467352496677329555345337055143812383912700720264850943283187861853290001388688131084855793622984692895798929576724902214252189529714366571212033529033778342541999328074537327442802102771809252153937871183623071288746248121845746161353248028313628269811243037193846146210612312640759205295215512570091845328297497623267053433128810348016892856521710655493790145178077767795899922097697185529247467173560563058114039872753679137113545933655914700882696539682805608234803691476591184377853435938996474259847826442016495142556784731679630746148321242811737979686958009093466572046781954778255705679742801187931545102082600076445132910724468202462196298697212796773878196151086863171928389320874998185396908271955540699841173602878306595930955547917209777564532794386445455455756234371022456452743045703036080445886662119381576422984856617982944750505966087640332982156739089588879640682296534595996635687968471658127464169800626826907342903404870623620192287683063208467702328729918047100093660112220305413220888828977697064902196860278830290392627691594233143728016814073799496933052453515483125436016626810727805337563578803576402231449744882740366341835946114968881120259087942784140636704177144562108362112878466723002124491019839398041473391450129369869187689290160969821026380141827550423224150141217613237718045466597125710064504910327784554714979061425380971674585158956100249711695032153616988591057102153115439824472730946823682162231885373137074806700199692527602724536513239449274026682791015701674284460030760599531816581259648363345933041912632777675280687803226613149181320859245814816988208423331052303941030124328974768987049297670541081606443523750451514815732103043241189780975351028681186442458973120290002031066729334375258723478029620522379495280690418852706183962085752601255499691112238130805538977918275046459058846804204092599409235315135660035723095890047335758596799595004292030644400401531503699479389425664526153934719310061053138336184293423041365498570745981194900194967969610499111318805509819462391236150604130006364317584930523831701296061429453262371984359105140141970065002119035660780398026439220657572178725639249934777933554421669142577018175235576379787752530652384326782694431816264956393804461501355865587452872508054434059761379930381480789532858470961715032446579783496458602879069757542191256240020824592357542446660452814531857956520078739266171061175973519184466039468369410485049198700157835203249727571668079614420245855312652609115429738287646632905263848663412556994917933084662309778491042247663102959521169641336427389064157508803165958515098021728312330933903420680484882225696011269303361044068909227704576533665495113247980390327792114547312264529073664214367644135012203371149039518198230830434590585755789919776317616640694998841289374734071437059509385083532452498851920101274990549780949760472811812855539470295353288595794164125375077908527744088497414189056213916471460942022225495849778486128215612601762621475022293845187952533897570218100700977826163105884149877575655568222538144162144012245786804238283846443036386320849925175029010850230989515622572084962982763790437004419072605295554823368827897181051835595689365815991883225720023328525964974567461780163384876476423485967614527541611390234320171928976865658199347263641109225697116164608088461724514336784480499112551325668308405380808280571460543856475154987995112334583384273941784247645883284239233283312337653515650290634770337913071248467026584452181892580390094506095204673033264023233689987705254515636133741196686710318123376514087911193791959354371819638616921886637734614490148837203840257228193029027351313715122604484120330169190141611367864718562296777280334697887158575193146803810646797321082600426373991085847106051434822157288732856371479669119571279631364063697766951934387888245818607416874639301066612095955077231320529847577593884535249122672631101877503521802834632280729971311225207687386473590597978902095997670338803264153308314140868839016431279812512160065345054649608524677231527190491992592988217287952762321703451726153559404168625552183928035718889610785131906735156882349925207916869143665010689752319898225882707676960564643873771735248476171166183750549497263919940258337656531961215514077994546146781687050169755635970548494865161600634392964820864838602815119883618383439475405592284200985896260805908959479512502719227152724180371733626902838219655445859210121820643787106676468850947451081705854042269936031405497729902313822951382033405929528843307654405867901309494595823255089034246100298673717854500260134085753517557292832718030932753246319878121611308274958331118238669043089790736292819567907027273262498854539344917918718493107566138996028132853717832775035430867739743967301183350034148100314228968969526712868587424812284458615597270820201480170289030428511553293358481679015874990775055023934513905091713901060988261957416886172303545164059080811019486277365894351078423052445906057181412209917334509006380537229321236367939662362788420378032689210314808011102383517778815457520837417635202841029525389247179605029521243785049942798828607224553579186917868994427242506490881685401013986706609581994753902732348613110369860895386700672715108097942554297721959950258231493247043349663661582483722448378756095882869998976388835672814875480288565024622312195020271865046906635270845930840905991761276183772149675130573008703593586838247888053869801381310075361862595878478101414394532608543935031612641794469730200003659884809529890432568172835721125923962622586773330534531771250362561131919647845543760799301271476485218656828424866884774557711063093206308556092486530745165668421754284228769855384988175027172287962828632785005635031783326948563295188255203229129008760065596374097979364458139264426972725309924973193046707114239548890464817710239340178195523976879076334655174086921446888736032308825788270700506395032617632859326576352760355945180801445287396920665599987271974583047907996165536303239590479094540277852805917355331239410799126588115321889430029631136467534956097634762666022410201292038192602128515312260724671917938185685252862606850797162292034709544527319350082477451053923214017599682494115235635738917234341315985082596468529933501470030633636750079176756135505362764186659179377849217602350878943701195440537504358920682825481117395209206254091489170041406060665954853909445374859636652649424974671152052713826013195479774738893788224811574361983905304262919346352053929768865019417637208481238736354911616053505635284424863573733162301769022245686277979174333466303040642201317481223139112860962303594355386204059629130391341531024363695726482252327754111142396522288449197062161770833275252356392270866397173571842208203044567592744629059553734802169447559056548269007921816032634537389951494696741535452032575373142089351729229714663706088748993564754446834838560477259733013278293893690573333299634057178437445930055180520096161672192239322958302850242272147359138007429146171849462908915448169767641104247027138431129908705879032731346622559590726140990930874461872465451673798058861573998041405486354360890836142997876566132237096131222079342151437587619500877004295521483705409056238867788964699429833786294826410198571749858415235336010447444830026055524640097038588010878812145586025481298719611831559436224815243788188733180386392901050214202468638133482267479008917384487199025133616428389134422550412003433202346170767994481979706417800862513052634520918557929702720099504642049872745431394341004345780720329499561278474673168315050593443512801283939885787632259856153204889992092567205288045028302384541111440589221168727164032137123222848879222696843379164955535738354478517576410808775390440126229188534991000767312734182085410693131774998221614853730617571956693301927241121162804876789072427339894151187155480448836368673109156214488647577591419728734991113723781049397542811987678265391129247557498207163296184838528734784459404021380574213948740754501312591435536490622850990610718631218534490492155319364969336268768698123568861869915481455570680677060323679041104948032159617497019253883286104470337748883160074768323946654713947361817527683854057516514438246193801963277236221024610483114309198847638489179908897458184824711156073271031475731031378467211927969028258557751521795764623378571537557392647080386908692056771935349454774214126092982625353855537773494724145703688040037784492658302461148451470236147864307673102400083464363889513212146529462264739689595361587129309097050774245623159922852496983687912708942186916068285179379030545274855740922231456827385306931296954810934319512943724329180443836136424883182103665687600236521805097514116508526437961117291888049050967257224663086680467554040504879783880944896479300552682884067434639307654041303372520749143453461089454049830592040035405747017535197013208740998439265925613076939582773455485064241925471419719849233486079881160791383877658447772399155471185649936148999805510184527830903844162305538304112364096444760761000721112068626286416826674747044069784905475833392651014403658012093261058222651690436874288670805002380657072276859975599498749699068736153689222406035758007721617023862205774835237797408621463210286426364818861741799056865672878924460492052693166719936509518028189920447003542710960055724848813993149019794642923974760769168769462690731844087537719038151858263188153712440256309351831291890581312388661476712119683831386635512745893946017556532395984842741950356041003214385604102395198067120121779107448461649312197202579505669593149015328129145636079082657923034187062166951020345140822240705747124821530978701222546766518497018206714276482700712385990526951880646026760383371934151491801577914849628315807628141754745105454192091632576991702985852614225384554593439478041218417778888655035868030422928181626844759139943160358370514757888167448958100631703273425889717656464842457046139386931161021093627285903112314748976323991495232797756349181348932345196067579526472016912370084997573905974745199124998351475691967090521231138906642755877896112463165843360260703536070078642788821161814230637208009038756161483193114195376903388716083574320041275318797511344645669659622077979403246304805447386607019504263803906196222757656081805273178386362099444589285031286973033513150592643545283138675515478179354455173909259453487404649534683387199321121881285567894385882555885259217221159444833594416145693203419200304962472899651320586135920182578619253555001056239289070502687143580192936222371467662043218587732025360583378913855416257439620082149477348850985838571109357993129640434054986669901179043208176727928094671686914065708087035266367319625207958863591260399096115279966588137899546541189174862591761540549780647706702286003101958411500226396071925972728015760869792001152110663147193656804335300254553842983674394264085096206929036988300522659150413427860485572812677562756865402964996139835178839080595441623971920044215579867849528668012914135093615376940836633447595812975814440290316660400197260982669304143612227897538061351354790906439492978492077982268230515436967513829388242077404204816562561447461056643375514516609251833440033434610792084748890433779974296567780568303964411880225223506080675758578533389561746335828777443305478205101344487322091658687650018665864537278034204051434239300542981229453502667952604812874501999395322574001082523836381771393362841609376368060929144923594104291067605624905675561137922391301219873867443288123330993169208876930541344176245698079651808940379532929370900142619510525532483476978747613089922755445830324494108858348839639755712923459698909957502071938029603406643375148629238122191054656328779766322841909492701805397235961585691874565459582561934325695016461490512158554925837507730009551920280190880415031267013856173814376636930674368620765958722235234489412588642881894651907202472085907305038059551273437831727315257315963548949444668008582339563701029402064442018618253266451818591440359339486512747941346822347752326748181230909495680571142590277921551512020347257936933522578060017923629870985343031493142242952024848440837882010689943342936324651715738804832694448676889262908870742761669781964335563762577058308273625963363525883437704001418290389809963957251490743495605072406742457876218877896397913921262273637332714529657404848642302722057194500739756330615334543694658190780845390319996710282134698098938816102294736740624283132800741188245649418693781138225768170243917932569981532745427435630729520497769505165737094435255049565025142413869177155176418582513063088805547908844259344177125548889922443867236730386647944107277962490196199011730654496378564959764274859373493160939183269446996493503719910678735568830175210324983795493708940763344939026346989147167087500025460197348200793721037305101645053581160040361707851861719770500383276759444160080498212624817731452030317938967938601779873605661014417038526751782203824308454863290033455788275255236249526904159616822234951915657196085502539959366292226847876415348518177873542235260676759686126364050512344504596567763744933822638825418971880834257652157241732948440443436512089633575787275547123805991264059601481974321014486513623347313901385721497929819943375795275908692569698620732392170141210696418294941903515175881420592453973561116134083701952825235567283672405519697471635595142372224268183715687850231718985635508337787369601788565655699849452686340142738630831762104470781920667704651794861332077599363868068331513374438173077158288527151139156005695859273663712610805040468698799155718040744561392604436761652130566230568177888764853409149950436077451996925194278266307291847097418732914749808135862278432225848352054996386783438932441900805458563925911506067172245678784470753955600395879812881947429215030716257020851260777215046783866926620297605101379018440716513928548825391784047212723574508261559581657862619161873011855857937503533918095711275566632158590045671090820948510093721320177064281511087421827239473916520745593450218193020397466468436114958362672165953339054190731009006436426644781390328345178032694887493403757307099136291119921269958232173834837755172584317939792822050718111734730037635147337712452470091893559198109798441370573103986515233326505032348153113051772698604407370025073867755506713899876636234098135235688088609127665252895061191402769018268849970997251259046841963383609289301366064409832117515842254771436791325149685177407501934170511200659970214632092932213804993921794376965609443288914889219321608548706887110487332274861655644334981843962749122473378860926826386828652896589689730771768171576537354456264888824353000178337027844841515642828772293568339405439021574584821638006320868788598536732590504431200579210744747122303493195027289362820555266472922143800617061410933153181297094280834327370840596475252262496274122878730006195346653816313505794528014751092227528205767776814741032576309473414733337675251291405803973581329212348699424552649388560809041768292677541845026031693856934331698843859960497765450193851349534526580724799034776952996769709240773176645561753947510987824953859859719778133978002388371177946866922597721625532240030170006140098865765152459802816945250325259761770534486535209669624114034967666403689387100572816682047734742186646707837066410458268620342900434725842909863555857709827355893801908026067007807230271139131974240138246198027512704136215380929982020429112212501944268277963205144087076230844614822627000561703981806982507134619895874928548136988206124189604540593924119394331300814101478945670481899347896157758008484253768622893430234590197661471840508841244732536417356017112271299408208830295697165187317779999271996083168447937504341322081062698198000065638068579949754562210470827031883886510154075562974482889933201191878316605277647571846900898747210828143770718136514363697439460295690951027882355072691189298847298531899151559429085261952776563256112884759282696058124567407976282743220328450530895427190199107463551909058053583418603201117571135349287074867467184565211264981306872974973753017243058965643707232730937032526293734364846713501164164925111987467062132796201084178189268907718638099078565590332598201411082274290832570077627475766745894644052039126006150237826632563533773424010395928759774979574575709527143890900040416628084255156623552533473796953238879328305807935696925616162099861457646181289226683039769493023511145471925019987797570280325647152300992659687239865700661001137664730207865504846896140085923227887774658278111838499257487474554521854650633700187982891856548739921728840804928073084886492148178878333223806516244226035813882913453589053405759647223673485329173488512359758068033810406907302978393864228507650086943979944107159280008509953267759660364556237857480978258369068763178841505821180167069299266421317800063352628672885432260073992601541448565808564292177982201312888306573732039758377917432310736135358920826082152645371420722535926525894348179511897724567584073208125834991502476230943528736361670461501966611427510957731753573684372472580844895967211861571070591762653073745569078594019124927978970070458296132543772671030740076769398269612661006985174156020226067309152042831136477102910601536428736389605706550056227774435456881842433586064937255582323629289158858945985345374687696270303598763783786771873095738491359133281697378790341371657595738324044239673496356691885281812924679275149303862123666647307406090374614510305381250046223349384458992390737147335839023073260803070248733651668120924110613504951471899882308937187155875699840829583033192994546110536545541897625146442792470488323814927951366374008451763754327042854656057266055304830122309743054811644777803733778697288204600772391652334177925131217505138185229646868414282701694321995334334029656944019814950428617264111183330693563485484983228873303494229288825104816578352564073547516032272248730780021783944717960951367763745289980390872823229464334056516313557372207909831298129485327842425740401907887038035737287942991232206655435952632580438013884419231356417879999423498060558467559628637515999724907804486482804483864553814582147431107494498803199185403303015384505308758636967334929317847164355063025274250134401309220879598412887823628728468730490601231820632336497264926474598762636112822973413121374501661714196749287158900539215126762809971205888632639140037635220834138174460977159453207997871254210792042436671987503335857829780903705730741414241085057690225403763510136749245432233099120716120878941968795829447536397740280145228610553301916861059838028138040942138687927946167326330671774188709097227012103040138018793914378826020595391531165012562042667468049895770929904293801633347926293416176977399616884223465329790746830823685218082796751679054380716505266151727392470562122962515023826821141350687775266597640852975463652437947692946579511016343609918154864105239596280998904376610845954558200182074732999981327916585083507376098612669290124968923708969140488757064389888587992429623847363734103558443384279921309069747504644598528671015292860641881571727018261839400311034135444803154326706012807553540727306626699774386033961429307393412769644189759740536224885274140821000205964413699159230750608454709827078236454376450858636831718845773740842831384154510087493569521400647924353682598712674691263975224177158564177214333994850945340691016623746570587968935218601692189457785956006070759471986607470124537343902031801843602235799869130210350199958786530895328697613342242302168308939354748840412113464538580727769402138117825335037529727531726066446181090484775619207426735019267949062432709267033459650422277490074958799517556072336599467191108308484288963084009775702263664357100265824228556075955897570308067739753774698762133857095347380642692572650418911180384112880001212019192135523484811889847832413438273206371346386058864229547325751201049029276818475404533333200971263140585699484118645124421672007726409577508568010565763704951302838475814877029810646434366094039145296818157394793100571178247085031558216096648637225945811431671451394748271292486455933164559707677246142534598247237812100053169209758042503241480207925774329331892917839837414285790389381259302202798888100060226466613929311917892924442244881785253823715800761110036676375980491346334594651648937580778711680565299496411670137365311469269487580067265564835120591997461745362064838713297926217746368582072568233821801513607776382500037955020243543082808206594692936985670386952276990376347563620950814306931829253826487253384264036782659109356629923660139123228716299789960245670505115115527247794412776763812957462392136031142306991055683929047564343652746817126793478134593876627313849564161146331653384458924879272662554822578117511872935851700343695875301223872109398665649518957431125076741441947303694466246742741506604841927991927005540992936057857330836109187290723415790349531696108475655917364500935480354134651110458094567269448215257928285543343627780027126030378560110145729084773749892054220620442510038699004258212478969740191941578642204011157010457856028594697357870447646505501720508961367191800062329046886388156588806743015584863357062567463383590979836220934791467753492673736442585067428389034001002469859298732298112930926177719261481943758544289686340655600703977214897348381153611276741866613854848482255765713622563628265176488735075408381894376416475042233463819765513614277417171081347769832980161469906002115002127409252016232695372546267533949374671786353045625089458074597058015319326966851272886389816180151779393894824479927683033517329922832277133176581109716766283729994404269135279500525916658659003338823573097420456898310720721338268644413395715091863954247334388640675545674437610439860470253460013717889021074766710400989787973884049019426961584441229514600356540862208066188233263412280733193623627940014309446309544309503790033954062513799143395188777984940790269460141061155149116162912817749770578914346040482911478051242582502605496622034896515843076722286167013094570437815012203034677297055158534874151661862264845983859858608277476719287246249743340385577654289093017062286192392190965441902157042950016202296584900757569147451755154553533214805444622734182132729819139266330991918094742885553942385079543770569719939058314240697566580609951782888306382151713810489946564422196453318409946575959860329771539201265699102431809434896740058475242579657366917034915333777686581749598419652983437025400322479007382809043580066972108288236569716610022228824309505005764668553395396171682483045696583678104856959938764223024783465508703912024664994404729503127288389221677870996132242026252334349223387377556196207214558098440700414008532568043141386676714086872948037648897675227558554870287450272609508786506515094743375431280872199843036346408700076745785050018204030142910234121110375577054375013926937705075817231927166932020489604578541257888259149764312927175932950758478880334663967753304191376938450616914152026443652098196449095059937918158582915185358154499114052771696883160551032725237403952774877518220718452945756735559239820038889973793391483858651729432150622906153767781278832197834551870220667663755051870537221217762764060837274355342161200598795139333857104947700356105079751634807975973288005228593257052647777100170252099094235867620626911745029202985595209300909465210766164130422405777740714819779983686506351799853395050323082673036638204164808077038141951614769791553340620693140498295059120317145465119300378399831685713889138140688871600160479178676000972798579836013900960309812702710776868120328698446518923495386684876711122605284872109417343425942269200727191019420293684703656058331717867268062098083474215797792627890047310651519630163787469023830185542561815773882348945655537204835586791819439049690716919699538924160149062969232824448620703465362044933443366925977754683173746045858357717119900124829716445663560792295885364553994799230283553549749646217043676252553113533806147671422573144121881617957519171270347695001633297603216393090323441392274102021723840372737437372576760041886385495189762332161497586331175556698357444246461036228215803746059043260682634890930342511100663774457371171135385657140754255732979532854712438502018031780197612734557324598043293982022982063189835843050574357427834262256587198616363204621645145613040545069420091279338048086435909110418253393919939334663302938122573513449557947430075112777430826489918669119317337222490559895766936321756595942176428149284380207079913259859401059930476212915748219544218707523272257469229424838885996404227435237680492570101587458751157094022952873909597735195462613560447440689350233199092940353991642207800150958903603403557856317708042515298133210384226581312639800071013651363873462537621859855949556727155872943312270593987512365298132317291376061084986629178700047352804487642767744507903783095348452988006780309344073436549519722512818909206908127942129624618443387940137590882459015153546797288386416188340617963772651363623191441181543859869803327048756794787238833690219177407035978707042144807445386626277339396043300498239063752689259716738520666674778131189052759074826272166731674275212001665620022778255175697167750823192266137503497357554374457130119943043024631768448115593931163107382332255122030461200746050107947137334278202405894229906529720366876460223805492738544270554563064591774344306748043955580226792969865873754002853131338642546673035515850261642567258594485744158674705710018774161813310362645810814401950400978780284121721702512867193410057993632636485404277292918166305380110524046397729731872854212358297377614802658286067648861407535064574367518915796537349610494135079128283271826362009443745191197622215374888855959772725840851932241845375035006940294695812101553942118629641649368823226168958148587164710344120339354316945804216146763087172810847178496110809286212001725028458321400715258953876892999303468666628449110736324764989590461309531310318008902003851020439267273700949629234320511471565604264369104652516127489061886890414355231048990040599042336515389284321996557516181037821543115620113322217804494630674377200045534843809859847835919698216652793541067786565049578504200732083325164888738371137553178492622677329540853814251816091760577302613385356591978303692301627412282521203485841469965498373325007666531594445432456257629115566970562880507383445089161580423483092264532478368453991175791171543276494823750495109928742457492329293978971063625206298747061049177345140746825382373626427417278484349234199640829841743477480818548036018470602996481781743578353193844045852958125256290884861258953346524219797728359362983986512930222792872394992790693007972197833883543611255418274972321446475185050502398660774513291741296691313633009143707345097631081665413067829561589653413624894631080462667266783866459544754783237708673421027377821178051064336020076987756285901485505183575778425731351820546890371667085455644354937579933694924404313767143968493490436939610010335153370696949675966941395168979201238109059467871353048669921819333718378905772894207738855674951174227395979786856205276251467524859226386058673070158944878002973709527564132286903507778458189223490936470868323369838748068005248097871046755229901543335167093612264951179642530190803146783153652438985009179227669191463291924087438700094708614615343448541981795447175952986627624434606878947572920739072264628284083464765740470139341083594093119719844600963889407157005017847033566168787589745182808875202473199579461234926047256809144422521792224745739600817384994866868232908282004767530715996640745722811451415107729929043053658080771378744826295335964042111392289565812749821697509550937255538132910514711411042290561849104996371864864811665194280966817584226725884009840844318835600371222822090575365345291158230191212383477123527752562661966534688931043282490799268096083863909147805317949451387835112006853465951784939049603629695999123227705002729073892173566852712158218118119266621702142828848688825557289661267314173226235005955700257398148664409587283626762251940565986048845045957914062849068549086671635912220531102949819525237119349351458355087775291125170261956183330238455383204168463569112326267517363165215790361857365431107458236791214366150133185795515921418743925351122675800691300672634817284413641301316318463552978035515559454541950264211971175486120443317132513112320221412221062012662891956008813396000630332178969994625181599833457780816541632586069210219960305629416414368377450395726229293694055380959490468986135477308162987737302742941404937536085648625699074183846049807848799711600684610801044181157968114790673707330541594929255822753879635507350613737200445210222830203864809325642993416833490876756227509294552226397112609523145005416596980228686084683670405718126827726526416907970132900150733358671756110154737829601898548055157433321749767152546386722946018756397194925430368078547049323329176945060256846696605304569072817129627962873469015955308016011449323775540352044324677288745356419955442154243852123461718921194635531304231004285625648518855893157378836819240537478270322593148869440510680198237751203920721302557413158763413307112031946763122638105848650239807978970000983702555143979272144413471614998260273267545258790021076435731814508700772153480493478316686783450633298507102728140777936487806517943655836541227279961568175073116680898818615606111196503726359029226593041642597180892505286626480786394735001573857213751930902315852544276961271798922025624319609119286448400920211866696659813677430414584053453478913249139927685657080179779907777224906039488166081465518733553705981392858893207423799300940743661437785644025247445049129014436357630304013445037486568340259054520314638778249047178274389664726170802605957455332295734960001941420464566985372798286982340416034170201848656717587122358293399346613135518106640008804278807295132548776920037449859176832050915279850743179100873945919857272981802500885356443343776220952477766311102480559771251028498341883465489471046526854033204672924206601517638618992874270894957697137665259451205474346393382103644685546484488325601549956118411414091899436923196055446681166377509799745461111124176359494046722816215878817396152547592594158001929172669112326622606145000947707060156533107788775569742430279378711988306707746247473089852758002150315055888183080256562478858159584947970316312161161168350694135163546163339513102603065548241772441562476855214862320856802275421808568715388533209669863880063605216900446249254047821830890366211606174161009386554030593023964578322746203405270905688098769364870738628608618245203215716243892387872979754861058368561610380637670660903361321575410701397240382410802227116668830912108798691261740219021736500457137582113013974257481056539395827612322240186128516652826912979388705134413732117114702392652189623666206571139517438395201327310514635767911427877916852771336320464292817359745376881403600277345619950771966654550890034598765254387408033791064802625504607827894055718184203886454701081245966903737873095780613512505951991195098570364057314426893483685590455529791288511002227770856531852178873988275921183656360363855005316231988463130504424557556564769352141089987494556500107995100437122598517199377652753345501912828178678246277031638514781548607395558828355070850833371300803963608923350927262746170082489992901234111389142716955139586146994065382534955473843349692428863478098656012163222429893808282188370445487145847711955589268448285675702165849329127331353155920929629822575029304608551798989223821319762840499077370895755761168102659610928683546972559263202690048529726272857198158031008435226386141148786447234577180164657918744757615688851713542266876042454455672689284740586161685570180632503057959627683280598177896363717351203971816300805585817495386953901825511896717921175106981664569380777115352898748990049462795678772039135754480737516150624965983247187040586607327142118099753468241629048891832586885936013961222540024109327780454422992394649678459823008363511479889019021598162137252473306886900977730305017520764356312795128546714401333739926260176243018853010922264074698608066121641446786511271831655382064863871444055961342998023646730086249476544712115441756599779068363273340856935582991000350165534500830264092538504804169300737394700065096747873245804832351880780389926496154904216945523701787332457917250634824591546054391788841705613511285598374307453115658215873197633295964131504535661409938326439195744417423494479584656001491370207645611975784238217357059765564562492514596939582992661713233952641188770177470769294645751458682902760886090581665591453356974865946813233806857933246056526051981490251126732699205019011876747135264565041502756519014029409482768512077874669699318376209520995548006661187070064032601758668595291348807225039452648404703594463813813613023818282350347938030749170832917040071450888918012265318790043938505805693253170476849343842545351446504449474625654353841404454678543502163896794833618089355255607897957947559275984312302639888154274674563826410396924782226992232637061604421486818737271258517200993485309080690476382976550054461662719386739222944331626872729591725562304095838365775185241141068838749386529593439345528723137595516872645918975413217614862826443330710666086673665311145572963277219136949998664502626540510347162923811758274081582981916367158990248320780296885435443837577500689548465142357087199154945951109021127517439981312593273779764972396603928093087268530175282662666888181498864148855322811322918899870553512527491098622948695850437038337157778768762997641658193336702960693914034020112792080331700658360824267483225858510149862938574919161947376825232084508193437612234023832367323467187795362702470149198738675986342709834991491157572767608708212992527331773111615193390135482138612335279293419485130219685770005276715958669320064378533858375589099189596197849101191049770486475398136323371719959364285585096760616964983861265306022035029922557751841501806560507790214065999519176621260862172345108239146640814949124320045356869409643243129930570986995857054226450823229730817014771243953968944721637696301230867711363591490425117503329847485441944831403589647050852473158986465375056302785537824940406290257657456024089200351632989737434761965085941266861666077497649185935162498850929814955892730611118053936577994466934731745091648432361685251288641704236033342212525338009305784559852941391158286754969562470566111642981338926399332065586027522163520883012271287397922407681620065547977770034782680992867304178718804190556848717724559598643816182284007165042951255662632263496940406723341141410696503974133102127407245766711128075747506069019166444030078436890099824325444987099346485322934516748703723979461920164737512834012272114028832725352054080897328101638308765618484564692695720949945822658372411450740897645668874798610708943818559325632514380142869890004390706902687676531702123419932540159515128758308228689654870044916361227606767935530382398490158092442879864846525571064568214746455962502905808315197200196723297377811366196831651521379327539296764087645247186317347441509010099805587318161743957051910579873611415715526078966314092689781968309846502379224294388522705631478490222752151374336076770040970918697304655908864288924024989980025888603039783366100627345633902986847244943964422437761602258974471084876876594837561954979144955920451094087619148534587341293169918599277153400229829294795596314297775303551486832765439235923742801186292250030298308840370494822696545605117319320055224838906970973464684277373075254916889756595842444480512782209870237325694655081329110784881453106658757033798160059851008980582489590201676246295955745872602885357968743180562972296136733538083241481980565342768834037674142594688591657473732426319215362680371413076126372521510660049807029002323875513428870373141082906775290474558522470917469941345117734947516430737350518754256499344208577090047545057821419854339375133548714643163629123726773725657755492187819947974450556051036046517168622574542159489837043502404333920469161681332236753183448102242946154351448899440889778803073397751992205692619206441495409751995640517319874792992175266406204381313895646140265114992294562045824155151616033475922580433147474312483237319641955610093782269212652721132008614009349114182668427739765820085806999767062666980955377915120755653128343864430344578884061255258201519091520950135209632019023216750761277458533021435062518636296889224374932821530517174728500451343364200883274556931599722823896782729911502092619671522895990308031897038647551944355841943165973493042835098555554842205452279451805953677327221659712061816509058790094332222642702981778984208964045062449296941740195023740885812022579321008817545248939985584184184923667512005535774092858522084165080768477927824874832743040213432203448354937704469191524416199096127440564100637876050309405585642768704085212914131409150077097514976125662172071216403803631756426187841164139572975188222159653073048040295261004364248152209626766662194550589229531437666691291655952201652840594187342414800430940577065292621020762358701539370399605775532462895738436566652913357300118564938607544806934058451844943031984184116660093223442969289161779898485180732068455411512383506235893981542428626082834086390014027834050666816313310801231437213079827703545927085772923147726816132923368310621855032542790915404599679233634839232449630406444285694972644565325358824438103013830196254116587193205877750748500928977728468436545304027181219244641384421840508321439320127448479769540715572917906763249486619930983625316735842574707380008402776280924847434336904065048470546482679123755892963787173880554609911415948276939570718514978517860834749812613816779983924374008126148933519623393753492964611568477690413195014832714528824737673778083922651985053498686043791128381124324366689854847544679188233093471648148911998225588973811193989235623213740691279993017525693198759539554002399519259122292509105255507658506342717239343481241700136684849492070091919028301589902608509135637006500916922248430400972348921149159449865391929226694691335653818755718312169467999137498068295527504347287316223804477242911906503870990334624447488418737726553799459497658316777870494732324226268077831888167318467832293592124239148273451317170008127076106405943072816307229376751198318603853471381682524660578235578697768728524562352879858027761182112267469680050562512063977376103614562253895530809399208228287697739363894129898919448403191485687795649964967080673615442499208276299015440277422386147205023910138986010751165907827787498822770304301641634503609962703789099191494303050839226016594045057884672084688026485238882451851369898437281827140497504129903175645845866132168113671207068124779681388587233295420700370131876027854899377510400655032507926451496068003900478343345442377793334715088052390749815282660942157873494321964452120285375767533247048253056980444464677957373401279952191303121818999627601822502075840831304697416336984955960459056230980636085849921603535346869829160597110604243275338999678784773399024800393707708005476474607627493075051445068411740390526384670421961397442890245901964057522257848358429725236170264826430980899279679410561071230355143808880530706082248942816696805936980236224239557394407130328444616586924948341086620883867758255425129622306666041541047534369068315379061093787432039260087066397772799230201694106334948482346744567351422559051719772116100518631618272761300238395512077032501867843581799021924951897721475180841424976842947592192639578095692311501374822636585948098461868676530596856409236296392709335684975043744814444696971941074013299611856147280545097756410399360554989126943973782587293747189087173699612958260970733253850221004486054623782776189992627240364068018989203087464768990787313955803431077953716630380847063293074361725985861272468399719383572191226998693012439150866130196120652895332302965744915183531413421138124010586837055799833379916452711706292790779906149668507739108136644266600020522333779102693725243675110643510934569562803775192824276362647368455307367467533434909290889505019528034190621792313969722675523953603799498715943791376281108675015096073743207459988173906579179637761963348672913467412407194031245714952891520460777585377840316491244585836264676921247221279702594398188596180612585918265730223621927861906447016360022672126426021670946919518530211339872549732641091650536070164741727261203289018129744475229589958755273228319236901500027198253381022744530355299047090516106492318041249975615886049341746176640842938953358109246992897790495190949588799053270549321630513867714449265885867000763888253668553544563077631971743275869074694749869630030668452474912296121571877399626288200198487684745131605715025582917495570645538053009517025143910778993848287771828807750240281279409548436560532895139540847555876476048380385343212305922836727622133174202117922725186426221677790834547287399022100263913672836762328860119612468655356485617783921150174853066485183527347440176331001443308677135834696556273104718901047748424249934596892450110270802773924149998638150759700353229803163773742453582350683308733843959204357137292990277538482332883028058032959510183302657575837594082215526687618349069290176747802831024550844970052173748437271345157028071260662001717412689285670783328563729413640564222612421435026873003299848773244278845425119333436765484388667022063702792966651865334533278936368343675041517180803267744127190145343295706410298969419581167163130676037252014563285963150619407966205219633904979158932784173533540445952251187342428346427515973780585408448868129886550002489716761314033320295009411108550340019881527233191047334288182905025155663633618455392970790289539927517233484459323983625433954690221103255441120748619632944857421347981727136532756666668503605899692282868411623898511000775230360330839427280220231264694802182247856351628921214460986328187548183056918371693217489587740117787766121064675510549635106183883897137429248301646332319816840958225077718537885355898771719974195354773191219945020187750900285097073175568415838384692859283333736441853492671800380582187939947376002995361023059825464659895119176984098107169486224597283386473399226649188240706196539092715212914449006100346053808379555853010870771417454080161799904540460890304817688349856340628102817851795076370898184405253235578490502543338640670840710529974261408083132013554083470782914674065279961565784278019898043397012005232219897312560181323492441360277375903767038102474769526311024661143020912702498385766974249915630892455229802605095366734271696077846354913666024297638933595233670617023274161315034402318781486372917439590653665034589921493689684081012166315816959809074448836371843571422056425992083930528813321290271055857203790696549968436203686620345073237241714390994302402306965329091009506050741398936738938910664292365873392170332307188342900487705424856377631243757545426898676897849638529212500212822766718856959519735695572905734023987366268573515110456234148108602192310678267678058734473287727295588198162793273711231307423591655739476915090749976983169212349956492050229853858011785890339263745793109976673886237643596214100903088479798687021259877389911504890669765858367093193639207480446053339129507393906535950425319248877079045444385221384948698895791439831215574720717633440696056908504099857474804044668415677159573564042673233325968464971543009663097967291779191402969652544173987028204175500800837534146708490851046744041491037948178472313518237489224277978040710200379413130925853414817481828516040671899889649544007665941496624809195400380242899175841236360961345354089696366039162609689374161327646104993455853482067888340955323845008510065294910526231253553110979928668932657305434947891193768084367730245305861147188072503919656306403636462859891033861193762619924031554039890694293678939658159567193450587442322609845658129433050997719434190665918887620240918815810351389013027201943712841705056827223451705519552378238414724628456407439613917537536183402830758779831522701680042668234535285222034014156554454759562136835670869059759822681083127717943484749327198114387373022354704645576433632874044007229396694120384506262396497726568032271104134536943518288325319014720046379856894766103961983605034102695895436572794267842085046679201757986809278039084599398936600698368442084330153776960930468948672997552063045027921408111495956795688543522810940393995762982652399095446713362658664559026323485823420504654245019273160979575278178918744610123594038326607597175932450864343091486340092882195216160686754819172764973517703142893573857644377612802565453669619120726451972117243428284381817241539051622558366760646549616088624025335574507695333160722216780484305045171421302584917220670092402622456575535189033571465617486474265631267959774678360836955906111373973024408782542848757908591843235716549814599101391682676268042381881273467513008029767683950477576996117552272143364298090592452601394035138228211214809767387168068550719636500642871386294466008560489350161844348993497285834596758558583238298197208551247823627488750083161297260311690907100805408768991041623839479828803394896483784065909003235033332789453988801847789105720071457082489724065639158656098423667227644859279285970016799059269098149449181139738220831323404569280690722197485264117999968216875119802194676119147137112158152142516898837881693082513751445706522239773650683532660033807591048040509198765738816535472737166312625395103809371513611064105478473149386705091257869594446815723777434868741490973430183152243329474181840498767854007012193050918624240641387708350105088833213885954192598207660244214384015076328658975987618731194260263648288858365226578965865119450205330534129938716655771290366456222722624167544420316329984788974063743647386372383229934201991001497075389292952658394496166859553851910052311722012010225543310869356611956920479094091119344888603610750295297995028646672728479877546705123523988600436772917267007644709129986345767984404731077536982681342751367769491839292979651716091488511697269320779402623828337719396963791009893415476119543154241949815059903260981431294341023580428030035773460764246155760255538387805191462760274056514029003631063912458933098035814181684794085104393764282076514823920160359006470597966761169610553833621334973169400814713985107727787319872038155283327977180222805725897091499909113805760634929545665642475787976925300981175969744631265351247335442438394916417784608236871584088789442595154466666015543686472890577319206631413606243618001309964822068101516803363468471830416138971364116267083499375431870823239215271982629408207571197883140393088123566721921299118301123683945230607958982092859178915898142399374459716926806599641729151746270904251706504240380870990531695660182829278692850399393309630902602181909157486888319129226748279440607113803837023548825056756697236124832945564479708104677778493380736963269592103922498814829634348983824385353861203775634976795388771720590464575691301649017789651513025253587282914722385197123998125656234686744089992989316346745542288047991510903676640792012306345294801886101837291461432347361277777631298482688659680339584103102063225431299892918456795905831411566772423305264375510890468244457794376999534465447228489702520300285850973857494171102751092906700781874489910836912780778284474216909366041683477081730640503246438558389693492997912049195350725306956700233793381228998373212987936113383259144159852634504123688677165849198453613670349624132835427346257236830504608529925616363309581881157517731877550777165990634221948103091241197082574118080640259476125548853967976238525224192182919969846555608324934570419713968891929255546750274813582349386571177072142568419729840325433368180951787987832429173732206996939603988249691396640071381595526415417780404248500021311816260512910945758705308003757165013380780173300921700361399385750141603766791761909013125145513139104069237707028983801042722669010818991314539755267389836115159098387278770655841380065505780398988578308558519942206918400530342006898878877409065490767874973315423210375948754985498160507939806300901135127654460030352521347956505741799824275009967008051598939340662624475654134368337590805116774092963932445072903009250404664980978437719619886864757225855720458937687077551242199032595483655791957678348569754723259087074307671395864282975446508634875234023050984941171277646400694888306952134002092617804161173640662117984549189757942087817958999944380188807567869549199238716702924032701153642676707967938421977980010447777222984645053931977029300322824180271625424048794206696311135549130846074731582877026065498799622134684711938528134374916395312230138869318511021021196679227880468125490406316644607157387528848993924930070033041711499439668031536535600692914559032937706829399393626318228695071724925246106170706872352517944831629803418127067622066014946216271082687174064015511009509312373989820731715965023866531404983403233933029324694026650336393390193126904870257257029545770924419457450530569088332022514203333221808231289317569699619195917228325529787216625888853630115921618792109982668011034629302753546720904767181411853500546706439041201942182036000278629941710974940476214877735159278353179468608007292394626234713605957318606253350827017771658648286934267221258580852040470864410044680022065995667735961596740182812244592483190251504953497494121263575374918500409134802403763540716897556219677101875200000254155885556948791504402296987362961851698782600386966824180023981249329133308832658995941005228907298156587097098997610770194330218955084458867374978844319654893799372833742821173105959718187224316191913046541563447398465308166935381038762911930933090601036817002388461068840523656920551589849850232894959655599455975439961524535931601578896819932417712548405195278807153042730878257715466767101184236129495948093369223343074900328720225270226242603820018759896536975937297764818290708533050801963797778126791635669742440720215785010905136084544708850855513176354425707230453940778293721528881984531399308186347324578744025077118082437319952368116811726230342271221742105601452389341641598577186856512669737868762150305142926079655766823507981462679177926885500796816726821210030903087813656633871708122238937269854433151328116495401978105189479374457981227477494907348179224404885496639457450480752260412334013602181695380590995376965641222811506921684828646139327857142089901463634100015735143787238535231215920406927469650070933574531238039474181480695694633614467619889504067609668474137417165342658739340095782399032373221217464206695958616278419952978998747711558643832349248852601709195733798500633654996279850134525849112957539972610845413976252978183026907321935896070682456343328722791402438785521962753770459552638503277182972884944815115034043448814532312533479907310537130965419397272878425675313973602078339627085043553494494533493060180572343048293806619018548634235609528842865724610192125036730184116037592731668648617805592962899415677574120637488969540722688906498308274860337191402661733155807125045649855566593932711693984174329662580378900995745638882768053489517433259447716740939120161683683291984439123791623144164538003971419831758729430591532051717905185176815697748376439870067911089635518121592245591025472335922903112258289981801199686843656229165536740276527843837711768264083901923953756240596075261412498984317076903390402123891236967654858409584708343524861487047923448867737847694690713541008765970533888442042476259509024263240257223287512567946029732671645221217295462908089627083296536427376932227400770738790345323209205638759629030792996602496844783185996210852048006547831220855194831410195525582932252556567122677592686666784080473519278725422415982830089426259706322224963951204344923932274557301861155969986334454849432949145232266447670168051763812072763222806045409928120693107524627278651039527951198441390610169641275437883289512248430723139593737846726087769313812488032272704926048961006449656351306192705011630059930486533449931896398370230938062268440938303410134048049634955703008800882443125097887105679789187658141387405841762230057409937135477332289041970611174871308733653433698950121268595435926023518158723998572853206362909058520120286076842300904759273807795625919234627049666637294861000588045130567589063341377421078060279904818789593866526084393467836621049692999083451230944413058925786961772790602365407135660615900099116802412825509234862830428632023070234347773829398494858599960257874636622019426359437158132393530510211441379906037877957871147159288043172088215769159722561190795344802529485848499758369283134244422686535682605723938967118605869967322769754835343181191781239207142220121270320873513817796838971499308115887147334071821325520806308844030320946488980566537919630688182989978890788555432209146701138563018473693032818558330172373596445354457150291526559859074003749431322850079414065962188315537184822155335605662603312164314820325859223959568223550124805479599463140346260297838706485722421012581952953187211284402276933994843640952664249719759024490665431363882086229900124395396594073376451778975175427176034300040557122675495044342275316523610448767637718334506805563942673504379548175937581126014898982681076925051261223014146535045092167701976849150176417747125120145142767691892785275764526200824375223690941142515910301135340249467192016110473912029758198496758316873544842440038181432164786515314733706432130087568947972999297695284667963304152109228460303450490245068783967230600095601707750119777777513658920522690015519701301897714280715784780428621480524315275087721877873178032061760397835175000361757644737557468808460166419970282901589435882214699529625091964593843438072737705414573455189209387164971018319528328830437109295369803969700810299622554169578507785585682427676754933886940259372249820834332223915017156064744133960172918539218062417104661019708710104331852752219380119125026508020432134840260545227254315704617791852492019893963397771176440872991576112719087613614425560345574362153586227921197114005178713411526476980747248943364609438076966611531879396935464414756974762710347350954414275182017770285383762664177974389163850452135058613840009867725061229224331877035389025433438507538554830851007120202399285448205896822492771576861890590875673358197781163740910254270667718301024269796741932666072703033604026124162564868273680557821256392715921017918002952695508446474782509233020819292637111625251921243019895249740615129440831842090429778999648557118460601205227402959555353103049829105368843684831777919385163433001935862758125140838524134597824878520016666379148004193244077950196983540165165384281139345734900941463190268341442140538714811594392422887011658293246798072413095857732037452834345975588374435374413087991493710263247267466528870487343219277160321812895978786354589215246780624024845983714533420309087192508070905879736235876015100316651611245354973756013370549623050251754377862609607948360445206916440172068295235417934250598924014844012388369493288242379039561848506436061942968276696563874510486467755802054099239984550102816899649240254778026832786782556824933575791270148253349360011829267105383611436383774908277215852124260331236618943033577048367026468936881618415304342419481743346138817833062274028096061735508227864654820452037341249917421820626990083516685042426288388432481424157086060580028684392937074589115235469889182501679155264717256783743739363075819333667647807052928085799359956086687046192533483408571890883495956326005513594172639794913337467570778046774614789105670384122840608271405869800414820694004511237874101789758149916752594007159564048097841857358496672655635419800824963698619315035572262291421458792588781959621378860244870523112733006924387263889649626549858650939439727734471698282327299561616068088430011368394700745491645320442220757855742377649972982175708895724900829389937885558018213392333956980943526952946103547147925474451726410837272351798953750492958163921717734957144499214989018893203529836440913419669322450009972284179993963432710596554059998937481463226150176524530814927517960124948105617481566633741296294361713534619000823062103382639796465878580597008911852829547765132261691744195581310286158021191868714061634562168874787498641882959540895533894698916891752128267446438671627097965757815640020844157418145962565976524091446366420069492801758356064501863379464345616917247541237299364320170688453067772545409639247644676748247115391444537387541759862157591109458411250496717673340073007054497150944538934694280411105744994332901115269526935709494144303456671066501369153372178634016703938267088807696860940192596884713351272396914218018151575410896485982039897723154509457363449381293299854516628409719994896868179658898643238493237908589153228960308965060251011311742708266755897333249137298328647270738060886651900641889264595647546841759955615906132867764071121277945334409434597519852160837680351666390751572092380421538475285224793173019382026678226274204572305074998369453391780390924414336507180577549821586995314689687452621211023142203082290747591560724473463833376328215777785383162453660402681932070191811909428060283095449798377190030260726895192717146367825684744823094223286127554630817369293981486952332076139501822154243243729005401945804217301510903160818922333820303902780101981474768140107537134729627169938866236127720223016606437139474231081438800541560814697817478295923962768018741259969896285132682468074948462835653442687360359632582979083309223678687659684750116889182859899202395653126480737128104978070814038100738489242885764745683372230339072344001440589634533923993826252739030131141874825108465546485110295353720585555028741091965406756079062747649058079866214244243089095938170581642430341642949363174916576849188013394613116330003213405938772225750954691222997214351444764991003701408862422240770626414053488176364815856759466186020815247668208560631447793455013196018679135259723241486979183968289179976899684969730179996241314278630510902757032885197606582872297755340333881670639021818161246251814095472435086348463417851252233339762503082614437638517561427162485983163554887174321686984445703396013661555159858638577873938955045688113503314780415034439472672269146284020905986518503078348852596648038532262107002128116029118103365795060089937705940016509896999711200334449088084426026480077210186399310887474643241751038534907350231204575133539612773143195208415961323406219779081697270873515995634021207199234095065702668697500903557356653620377820379120654980320577860190618799057138147862938394712147894961692705119189348751027797398155854176352389191697570628772035357771501728351776023168990856713835507308406201529252762182891119500269867330499340810286710775554198045335765483213792660447041826750997543062199465822961070713455150050052338705829537071061212548005501388824768206085484135944509692643557921466174502030016995289808040337254917049237280543071492953636639870485832142094897664326116274307813296154339516368707833938306685044254263548072030104489635117361936440524756318183656020717106699042136766667007030155053406436998145913253458038171776292151866738098696965083181153782410161652492023321963849823335352836327173993162119790418808730018700511831557771644498806990544715813920724499747721195174772776333990608583546747803138461033067794390753217298120714057784164910334754860070311750521072919367147427486699748896630073258068030492817934516769200725553917286166626236587186982035659613253096568162321667704567400675256184025386836547275687844447792396819729630235515203771881003702221473921506620304348355991012915148721068687337842009215818996627256072609244233683327174597521838600478962912907561112294119882709504014134723267969770739232580731618876901018841086230473244122809570795585541340611650194476028438317753586735403494129333246775175425071413477097524352495030388626510516778841512306222701969905460795601020413026877110218048998982338709464410837744736776355104013519983072146603279461795453767472936624615989256931967324605286293400260217488481649576797908755829776400092278995435736075870810474817601161808737896427529040155613693051696050187094858488383191945516469450688018859671669660471987567338792685199880976924756468234110820978555875714651817393131621783934909816158687050345200934512063684971752015509945747426175292094929708902886035358220962819090317893734989501648784528096357573050129199692379370569854204249462175927084922053492692899484413135151021800887304538474133945454459958747830076164930029382608460870608721960734153007339162274279170936224182677079876824673301962797330976983346015629948023465222611229782589802918464819921256191913853006356459922587818488194861231636048883119343094818504547593078186239733212860925609064686786060038013436638170894681495334000722862774038370182984294865829541409892211893821257802857962042457880443720098753039916151605940083983399532951437809190206502084072367612768329190458562339146646305191370594480736572915135769258302690079124900468752098122454319786012811751297258263990943505893553919469401700755519285848113000371122595938025665986419289810867018148457167728985336904393162176569525883032999541643791995383850844476366590582819298524120990888442630604900625766410693522205497640749250569737417163202371097770384359693766662412135228435776482889735571106239417537989276769262594007719118122247234350283189553733952095078052389290605317950090544345914716649122305732917427118433010085129263725031440494568582129431040399073264408078360967788532865946838560718875942406362826657208607373470185545963192034944413261766835765828994282355977004732131034627691198770648091452481762028665948592575822498333111494332506149905525721563004418072829336491898402441026536603924877268438403572482614781699562173626183399335031437820323908531422265528166168619972529679651035925042641681954037843429023122449293372759089752307704939955983602083654493219462667728252117860060561354568191766264085751265122288033635047972230493981896732003921145177472593718393568305925546682376704820740712646290683435034895336201932651373635027779303507325735921824663863995150667467849013529048415956190578638392973462882728533748959620761896847257255780228349881722850487541334010204371086719366629225539647789017786674911669520809246523117916838336670699790481989218603953554782575329852366787032786457985561056297951285281675602813078133059560557306477672619823571272576556503945736573869047839774277833011867264473263833608467104391316344364158660055933813901281772229051657962428938276736930595769197719289955493197566703865526712907204017502566417732997358635236365010890152925730173634975455662101244661442688243662424616101430717144136101299208055756801285524654870562388095214227681386421594496240005400557101133649307283288008306187884035314736837797498508871025925586279254206475715657966859343655148763164240866527798874830386411228401272613043781014252977618882410152858005444963865750067507744913252361134882162941294465699575992182152142419327567378449115210969206302660495741247548890141204103710636137542433236658081705616507018833541066376158311254939831783674443435684062380895787227383836349470837442069915156121048217521781061630719428533415021896029947586079942227493757686477501021382117821129668491597949353269797507017197878475752323778701371930758362830884301055074155205799723618190484140820420491131656020586817072918154473996338542633923345371871595210521202535735560490056367829288227396063221208446844137651399507631794876825140939116880833414417712728175750985570661307716522447340652625095067333695773747174107685873690015242499421437964723102873757333338872693650113139115788604500311910468307667451917505514764689520034792056788968587407664793718767018004598843338533146950008766222689063548936330515856525208223948832443028591847957369224016389128247652074448413256577866095963153113906794010386286680852963384960252289638768307143833196834256784392247919306509926300901043368091783110666810993195774120439483222914373201227522651144674555895143428029199026967869175722418185477997527829198291426240834596998206708287845110959332064670018799775005711564489955083179898527542976676823871496026803662302385026545564364626831294192212534302908790727294196059098078697251842250990960616244299159276955507142332381537410959016308773400256499425556039181022282125717993163744342080524297170046388023662769994925988338210144063054048157322665862940484528638074660965739706738675181629457817457225783911797748573555721508586886759862682354856842462718626384558570444198831217548762420846116288373360501045992807823810049610162439557260178251435215440274212346950296537681127816979873087636982529819595433829334485356554232932802512843621160594356759865773263463766381521804847247832030749004889046402624076960423328604245401135416647547476510541222975241053200383615133879256712005553712987665553658780620796685029557610737354984744462264213247860931615351849070945115946548793706619594726828052508055007848002364059285646221720035115670869952695741642687094122644392635639368631763846149572299404568178057183658128888707765634532057782937495870939175840081633767260216342056481517706909244573336177928500436272700485433867678560871192881582347781145465205172607357345744271444287221975290022773536314698144759897740606851747683275489348594609588916682608145910305644638152580326964673924534532705801362883693326703449150485593266292933427300340812683735074934951239871860292910281743358766098952234428279676916833490031715310169367842955677665621456537753062476374561038908454997171319704128677186896702543380687617527108156152067381283526505483586854321515508548023826959340547960709267397500057379578118700709996279176180744358447037624005910690953211863270695072539098160460294543325960082286215792043930547077479839510154601405070962110616484961001454459893421066164004457566303875964067769594178056752559074948523547447818343940822370623413577853408803665520600910912821239812080453543775158078784910779994709275874729260673907618699115571759646097351311231395759129837293917779185501294379366537059079424947090984440382770420962601484267603863896858729784273358020381892489989237544887734849539842102484456142863564494814712407348114238162395670609937415491715616914484661509608380567612297884922814214110776228717410275360287732698372900953778960352351914844850648293839477284603206044159556183277029514860919774489880676651937465747609106567499036582265605569212684562263162876509583840704704120695805567433438310048546825811499737623598976625499395545847915848435245397264217823502364646775218805784712268801936753961654996879616495822598886974081334568882565688330788105552955847437426507007930676981212204050496062988322096147706723582324780500828556008724491755583204046328872730874050719828981581346569512235385311516292678649366192991053871900568783637018346331377380737580072797580366958347654243214568668526250039600723543549751937707967328850049992477580539462305221973123189901078442170113728744822262807855900073205088361829451518108692773461520493957109838066371336239748499091325055663505027981282323324827400640097539172417868468445537788108832144304366159309306825134283993227422236738421913897694536102090824454601228847290973247519796710091856477854037618568062075947882658590552490362044476200405207142462456731016907806774746967007946433364887076231959516494676586911369684514572931326129646866957099786396189969002333776663616015581281185619344062693043708772118649874367831290429417839456300601272800183205419770595010678581822198102386835186100848386045081438661433391369855006273263477487560868505200260808400823777603680589381989321095637426059631377438263964121046551296451585588573846329110495662265960579738213424034068945540379098815297711117221072225731895418149611770135117807551439479402405367592756502546318999914023232730431223238102599859582563281545956803677499838706762540822731515303667174494919343102731162457378711406805884630921559583097985515924741365778461805296077895764948236452098487423867227877972044725186762307136276567624450772569213389958978289790767770446554068799721932399469873024305356079692060493883678077673645473684271599497889205133361581042946372208395634071222516240983432265746485721677828761008227238675958540856741222613685034443774073719237283909108460698903645294010022259315665008108245457681176599111492049963586961664162472621110710401424882430219025412150956615849413509830079026703540128840511400548796839683841899046424181423582115301150638640866338003041551506395190839321639878835918256634004536392401577042320808358812443015965364077386810879033991258099807356513533508033983717053397148503904564627251789031134153550818199697133145813714635623543685522078306002963407813546644246845085879363188395767008082248374046320824494483072160848526088928527887634649555034376119808422107042753684929620159476271741975481988935451205986225720239779614079625559980882304085090249382880006438133646319250857872419852654474612769303761898847114554011398755960229790110366646028910941155001602460298828974034214256726911289204955147115531363765420635312439924204325264214146143205698238241205739729482105456667643790125538695335573967022574101779381316175282506112018621355050803725713008175991137533094436669053945328533477854780769089729999516592655502420057375662468345862463372476402382888856157360293047214986586463930374134290200310509396294721844372947771072872095284265214486459386861699898925102751241293755664625003234856395507430048272470312012104916236337520133476216932258634468458560661632326383233580133865970150237455137409740949767819439133858489694880751007554293426335328268905726666778475744132637915187272021435087039278382135862850891130253279508168715784056910442490318459887787606659852785923927746951799642633474636360092945190490066165757505745819138782318000964718967549127352514136493507618954492339586766073360203585537898574866150859763150126286486270968583360806010522140705082151239549124607328044734060337645621939088693798045329398855460450656611728880832094133780329545731887186170909821007294717677247501486109543167122952604969473746513574298457310036363347013384696724288398156678642504525190459122011310824456562527281884410194577789409896125684353464924782566996641050504716882265779318175017110642778473197168383706541823446427797294724970909544314016653712926984249578060671622135424173300031497034755068030233546708452616464291736276944238531462630184709667518095180745095769786895759850238902074030638928571397192807957327344697231613229322337501695354364210272914832755039474560470966972322867538240516442403682207124258459864444821567179695353302077662361862279794033294359410389769055266202553017985389726744638088777952100786562208676304173178402724476765846365141141750228555673265630080762016948251445940869834427386026678818504741124465452652192735671988834207958180514696334208016052425910193928998652858164471216665610569617065614588504581658562602991048894250287964216616841394837973978337246878623648481388252010664856367352565478109621071773376126506333219624063120685984505595785215254026828026851063255729391491909901619316733116407290840548254442971642281425603916972236932180542145774446901480460395959675947857270085764491441216911572726756454373262154112442678073743720335516571191992053272704683102738763733711939785070994123087054846765176696776981196765080033049763514037935474725147386168829611465108178819968462254020113492786113391144371595768471142925983476616132714137009776686896971120727961387234075651763085577235676113743227289402742098319175177573912541223141797170064355447752090061599633712070063068022867269999569749243157027928598010164337042478752815832663003004925643749007732642960027805693332768578842040152317715118165634166133711566158461348013447126366758364659307144004345166680590878434419248673772658440284711511630574319397761656654049674079906354929989732154531094481200633789550639829970123461941227963265083369393900547379118723199089055768673096037556823443577589667017440120395481731841082500907576450266647909458768885837234224931858815056436407736600025647440734713728090572401437938223660814063479139473724608300697135921081865355248716660774043592614492523203298415611535820978915108620991620862865022229074811309512533995316101171169671093638277354569680958821969382253611139232221788999097493195881794447704175794060083830007279889019670009439034061117684494369735302167447805326032340732781713575552280290550173905992455674465577465342711543051320067770185178639540435716077302337925185617705014185091182952174979018967251305559164736003528751191640719763749916562903971020804937165067813170310643166719664568100122172734631237436020669606148953637085041430858554940122037973222623940190226827614210379210704895946149277478215817736106104662980705042152374590561320772392701451850565332941293721478067063414394187764139132521286866963893018152710084769201684152347692340544814890894959860127268915160025189729860130371638425177398566719218993204511821835426560164783019616646781349834669011171150646273199089575148685396822526685345776706904659327345044251217350969881550570358961503911767083123078932526262767126449721961036455282335322442819399409332053026938315875843421927391792243680603307563788074948049280117566006186979059292295999451850147141154816280281600560978525973639377452589957559802717395197000506462708814223111391099420323843979941012572131160021581888267051446994021881077862548664889971746762050997574414206118650847987225951460731665320347410115457391359885823264944029393917665680393740648103876791978283413477552146304330962633131422877600382133883396324830689209928533480371913966996451659690303414793379945788970900864019841403015949073884596935203544053990677713466594465417974720948761252046529703368220777319638963781698974664925213902662609888622560116697425853268381707234714693373024145130314578796477771116506378678023594563934089984316633508768876987256581461570735549894204168495938492496809316064389700272504055449560812038901329717287610018718144645014505786348092281173079130025084115610457835408755618606557089317670691778358259029766401094051328621848108792063813816095496574822701439071622814706667630216134026302755868469386100341341331000489745785961670304716195011501631931856114307009841969089954178389407008532610117270089742677215388339406408502953150899676731604671434819762270134494897979100961459927525236681817855321148491078867207965628776260265840337229130810074710421579710584511052769304614471784989441685051213256983603584478582215473588703707920372827971650478913209122355463131459399640644063617172574246693675057747671153149528928789612445819323826517347680128521899985375340345457795839137069706257106252643903032122773375504355510582676507524713981924569710653054308010773211903241396721708639776543625117160515128091685570991160381292662465975444511227132806118827422922735579873784671824706289520101380371056526676274930579072488173611179284961383491904783457956219793851064158825321732256446621059677069138210289309513481678509826341518061958763735579835791569660037911724570833698668826700250558856926143615265012619514940402033739013039437821239150102587917979151731378958675905661995266776910931188893483544468409815370001516909850245890069739524600619446960843569492680676038348188227418520783895119359349711183382292697077684984605088907665806301915208650957363324112607610835226786222249699161441695132923843614532131202624706082493254828824644499747368573762981398228871520496330642306589991668293297028399734520675534420811121460841231913885620499156943607202820995517385692410304302270791121680567545632460503033795551586063879107196061166782415469648158654702292791366983264582818162245651617262972352523852124028110528298469894821725587579334193332590839245100626883712404599201114341004077366926019193491163066115550725963507379821874325278660782455520089921780524859192510694399996816818545650684311529968074879127590220694513654663177147583911867775662513611256248230423015508852884932663471137599571885658531627817767639287976623932332268531339530959927300150733808980853870418715533117935446301285133669738010068515110773440656058666757846379243122620481680974489726504438467270317687901393686584960953398863866432143342287784412819340141550532282714549149400904551566976376897923230612900318322543103427863074925018185276579365204976298493314742927243974766750333355680437280134216784138709930891112071281352821729700231424111528545427481649330343340725991196802769816239742657627817238403877214243560840257716688136061896042673295796880449498986512080275212456756753831705101081625930588185160603862615143094312377895934646674883875591533147662224226451546702108227749360112797276986067765742582677919272313920390771166779697265486613352085399709177655594372518341616483408046402266059742993515091497727184993022458087727862387509656927348964724048689359705288873690136739946725144921342460180688243246341770322265024075793789167608329054991650877022071639053912340891609136795826258934918906413383575472414644934976693946803295592454150882008372698375776020616966321835501725532179240148036722220618601935572997074677544863909125565617435294023127747161588236326610571584047941146360428563705584422431535141834801427667269271438472164575036557562798466012135788525283418528186977084793787534247199780003410110790251466030422652662032673578595666201126972244245619780390298245215045085091231454842790207659653970793215369471956033456724737809972196151146038645623490174144605394425159113352966135726685617287304339176360757596597366858981935665368305070386553617086554576906050747558874707930907194987095209221631506093961831913531564679856012605049720313941390856414785698661017190120668759166269426904858129083613353741958058438058908252773551040754884859821809161349252619169419580037313206465245637773830312379245853826342789570509360673243657412580715040290363493773260248343851851300529900281995292094698980525049891871186217131846628450141654099508722942451770105634078781058357026272700694315170803969902316461428524643423347607418904898242410236815703817215475750464712056541677854897606390658020135518903064228764090064001982487035572893269743344589307722660823107122446211168592582708121342696530799200172880513044956277325548417633088803764082670997532273763500155828956216338997240236227776563089442014791119858731891821105413475170157509296850976424609379420827870084744777201806173953761658626864692769966472142406711530491432283041633785783199613477827232173279546986887608284921440456175843023206019877303022719428115910798173575775723750618272178740827274546467773996860853691741705836501834483511013434193767292257003996301586624085812314803055905961967356670817739436334422360188320925707877204332500820228563009394796533955577256830440583396081426809845577000616086152139841787684699192213622811687534605123380093988841578805207826195234719272230256690622952618568473451441022742028637583501685433897813561599714941625342432131943573288805896510218218541369181332781719359864242597741562986848272164184285160490475912291780137082328864478018740807110757453302254640991093144120649833839394783336253397055651645667846622176748015700562116404757606809290497658837152173250097107846604605419426278284724359539691972547387556856069903841204012656794238353324788228486102203191311358600653566206316020739886468811739434789028675458597597717905840137928128218178156903544271787014731760095161223214319424064660032984869595193523563135118473693592273976145350759055860603224467598624087343443515541748842124411618322194097843150144994839277074224617491984274065976445335750831430628107029120875523349300676670640985857644733930946921888737281488809270872595364509768826812153846379782221047103412518137827230552944498789722864190331009062548218578709190376414822264788386840490321136489347970445585255296855123797369832900012078261856563693065968606498038684693424882378512469972217565255795506931022421452414000957613895321288796951219392299605897817030965293933706234021348703929288757165895006839306059733367047036341000769443856835949655042596326462976741463900332538844608327380906000961237680623912618828118897486413373345739119504444113607931119080054039954377105979867594663957697779439701161419524260186075362517744975406479943838311847226490154401693673468972060851371196067880604992944558546118813811122335895055071071048297198016994977817561453546321549256644843420847723645971263215866854491218598052185484613971092586720980993477784730466703327927390298920917102142658724501020602917523483452929431433048756218543655329872701230707260478932546425260622704460182114429582239136573200181443490839462003530768625234775906272559008096147718542089765675058858477016278207830126487458553604083096376987604958409943180601319548798442594136064588462605116245942710512384381613593634512623954466073921705211531526639737849619232671675057581974522152471650396609981026068955999331197973830331928998665503563290871101978082269011148908325843746272450344759345000884764220726770524045488353944598526524157121623116984212047280461247299420369582990789703278148838954989016971639176621405277812420791519995777984534785304483842004379664067850665517330861914360200289297967791529931359188936320636555569365452848005822502012790890355984059907162632864106208378141249108233623314761730630251018116107126299990669844646701590208270161551291323050351755384662233561389271676893425630660500988743246715960889213315948912584757468692907069441428348979261543440474094633849248089688223904660092359371199242829819147832984061321370867305317025171538740112494627683449176807152179058224539105107953703696195164484896302152475088044116421093479399061563452929902189712841438000558775363774500621765162643016366621647528981512356754582683493805606561700673752370023755772136073463337602841284532403589175868668419414960096300256308435676292027678756821845810291512431399759147074560469911981815068866954766245474373640922704613528693818865227085731610100604154709914255439377807384348894258740383144976649038147714236814937344281329879186896813595736219841809230563459941172316590801501074219954018426792877099570614106462649187719515092847018936359692186901789988772210027607816131534830727581926521227199546302489779205882197181723890982188959292481264214309796069171271654276031737471343136348290699704811424544287584134238102953197149647965432946073804852667923286196276698113733573982213679405037407690531345096303229802047629099738742321678808090975884023273043442020012928738309634293324225211034679498539536240972034004704785245676960377390447396441423090781837772091629726276466061242158606303655032249424258979050275981360473869110237271091411290920267154488791487301489284315974035840372372291223368585466006368323735771065351416315381063000855082321419444756480907282410515157642774823453399098316083059300160374734692163406560741503609529544812110134234376980143255176527566432531735354466573209938148184460912457840402623851748109037554597207305900952959654988452920312139533763927177454381173694312183694363134293628350898804913968285302755040065059766905081012748958198189280545494654434580454694328554347458995336023079210501423061326682192910367479635691581330057690970432515049639539475975012715975306487161167988119318587298223491925236326281502639080881345532583958277629066733374908710341838901500493045400394500929958246369096036251417178090505331284431109510027794559462691521092672028249636845079045852776522092905292039649611540261816846530638650867234109718126042568387810354921250954191938814439987095205149928330285508289706625784763799212076216429908203180449971249867004012289833867374691512716917651200839732261290807726879297189290799674418560002507289092680796823905763741566321671195960485953361053586224809046847089802804487742160161508108320750145462245537453499440225610895414377022242976667561101661134992703565467541602824264944119593344713234461879623072641679425164528744196557004465031021846390519416414497914455649326718004788256180436015771024144045733632554817070662038843460483101373209289330384992687028905365162598244416272487016073129116307494155461814636365048709153061948998377186162632854096710694812956770878212175359919052923177301449679700244652738483817036809918339816965157366585104014204170438242226438913777058111700676020013480788426952678566340435178992836483958554817672322475316725379780411433002085737452040436822292050342661520006372923427867930953005018569619243684113732799534852848870511145691351357430469850576675810886275573146867705422859380639158902332054243829993972412757739948234586178645737220922535574394861916132446171846153355850197569703313444564372059048908193633076169833741070990930707518861558337512723337582949258986824993694210822667565141442116421466064340384812776364851862115913131037049745805755718095537596658355643957564044067591309388947834658130498519058509667185793516171866774718938002192503929385769789534773927722735947299626125606372240261786938935020097520460485283986976314827045350608246627530438652037583868163871252051259492254327912892588638012811414217343393636511712517909384991295673099043798386180118569540552328095362950047030425345351882380707525078534286310893164379504024005521444513154177330278565093817910547537325775839320662178670368281742349200207668671936657297067330427929123559176834898288094846031297415221285905298176596466708942660907796693782751653956514325605811590996659742022539597247317924376889177251919501130495383230721106270575258920925052331502006159161650375041180457439325636504299451631392003713749659966344974402860096337632058132220858953588850015842821172295054131469382626916079060890654501429472292898545881061835350304274015123445914184547640238997598448676079791950261002392029012756290771974856761979372620650988844523687107962517822112897968073864835005959992649200007335532479696545424306252617783133886891970026223764395885183799680467901064705236152222283780799659404492494927218183005783966710857974283966532745787984411116004988360774933779464602257661558283374987993980798498727042428836556862774420519081946090077792132078385299564912879389039678628827781953634263487665463132272370731875461623277439886351142535975097314908581100058127528982022415105639370083039705613567743086997421029230225735677385408970302208037473467029132224275222430333519357212720523425804595476549298348798690681174408292848910472772289511752044333258577367284982362799369232324950391972554512530404656235506978081029247579328304583702278949578166104188840712227541654431162668290749366771707849563930110219318818152807318453573919514072519949878784784069526522507505826193442650802980340939896938523229619474300734294417156744001621703578743967740584061572387737446532699896097307318123633946913912601614324940488526697056389437333093367667048791002833064917280453427259931389978017009332550371243353149116065814664059032294564052165203343671242941081179595356756293170742201820446933853599314837523915842100224204625951942839981920578266235263664603115663089058920346127026010627812037787841061586001561934767739492116493876224802707368867428087106052611561257469740254922995367096046423321485497318480773768451112691310620718470689059955540009204321349489874819354829945979694007799311139358257554562652043804517309683723431996656220233995744951696628382930350469427552307637761497415193750221541275117938935405238691545591068871468248779130597042576287234781392033320032812309980772923402645568951220172839078556131126464223876904250297595195401660965480865749152583761273682636961114275458782114096340893031646992401937330934428024081382213849421799400809764905502942815639839178388268973251454452877987192363278072687963525549725496423800818156233459872794303345583947172819032387284482684815076330969668673013445889282187391957872991782886475848428602378492109934056110055341897629280225066495399628956839535092857772811458203273733785492266326555563618843214632017057053243032785762338127757396893475456374316762025982837837377499568355924232236847024431888345918477035255475601167166506072904344473548739581538647666354213568672284230919032153371875216462100616905983520944748972378325760980603431372641331615496783180476156409509685691613817828999213304144293768206126481853708587820642444406934717667933875730119131590144692046937204708918887292658974939565217155077780659223562741195315469026376971155934900812405053665387318747528388906276904117316916525568060879066260539573758468235819421280714734466443126370609561011149936843662031213652281707994254678272072905964218624536378856565726483525849468348504510265041979213864855465092180726458907398143034689871496980127332060296105536381208576774217000054931093856509556559083963791652449050146636919916895506411562217124499506910359290228175239488501945366306561865024777275197185089964786295604161733252317734583206411677795529755273509285471461993834213654227905721913910215765208580669117318320003857388813472123071397565350626433805947117141872131738206469178025697284171851149343636320441099882016599670983210773205023015353503708273362669681339667751593261492795389991560233472724432961796000231897105472455445036757841539389865561029754662184021504488140114802256113727168301209200515860932370309453515036920872315222048407520121426497932833493815009931537195838821594990456935551240261918028489858867646253700349332996897914781612359005328831541531583131162725530392276211852392486465683920692029810906780101575952209742928650999178094866869015603228943798946371182736997753139564959723398581523543808225015754901634952759399447782888212806206092829565903764355723986079754350588202916856808615466996671161151947378550930683630505311486354009832957051501845775767084476513424776547764840162025998413127935507897933700543563108665197928335877906782101437572982455801833712335033090836323751605890218820317835858610951369063874899027950089985896579980405433688298710650118631293724874816008269991093852162817563773527854921571004939901675468849314290540651960228909237830908838224988215739546992916990612524446153159395221364189362438259519940612174900594804206112418521406659713092767347494535880659443447713824177679020977505886541377972518541834853416115044250610794070239453594521023513642572853671382357118534586826948824161779848358609373034495543297829128992643028992659599121602143202001955790891761200179249942544582942376734223350352938359670016242199628012554962770245705917622163297829879335986921513974882221400830395079054912027780433149597585017576227396756671377412529599794805178894488945304687922334131140893888417528067728296042379891869239851638393222770546861128115675561633643301018410872408170141818791192988419643604220916392163750404340804427747369805114470938433285371509764856141079265098365499688556344144870839479709074140224112513369987469570607059409433123400559843207156613142436505035983633577622736762649039658433850721224995065776775690573824841526646568169151793463223239339150691373146819913191038166540076479579177611779900203329284592686796363525320210261175899772676381790799780211558926283529785892580953064471993932569240766028574782396153406450505097887614636362403083077333959477038954699928443657317099369226870129323630678876585907112776986626179849702943612722253758423248413408041509913526404775447940138855833149420988632694978149109620915655108252722323990370359207926003914129338202613566355654312653159782072066488492562788492075009485099289362852077533094543498857363524352723374776043584675540441356233429580243376200853306294968725673428096965759968233471761931964461246758546197133871749942263953496287522614979290753424925325950889146291282975949526531337202220379713891066862670235995694984487095619321648610614764286930152076212327941809737874656725199623057196701299951092613924006156980198381530830287718743973087749579202383220394136498988444102048315895090866462385377561195179541337197751310128753194969335857878660237244612231087724529567796212336901736482141758620448843435117696700766754813049342533623642412296173294718486128637676468035827424746570924588613476780569604340992516191615853966342033295774323539936235949023430571804129296237494234864326377852364355721453554219048256371877480274320319515557884178907539929317785648094208109214084734564725599081433714598604885179571872014453362783299199380178054626899697428317028268023026391090878386499744345201592695299743366344500371182604649846108235433964165455756038725105457174393957337529354166578231778109540135175677932489716389327385465886320220735270880880254383208065200239883875721723611175563462664489634290331454604634795772942241505960735850540077057945164255664261261198040748277544669734047657749186441898745920388289025666261216655583335315179495854445403931414762608218304058081248979043636881922113946003821438834646961227438502359061144571467273807253788023425272238699357254020038149279957317135555165824357535138841878206075545250633572794914130899025948711933823488141756587606812307691719935545944109010923896605131587041036098080588625472456645992408937324236140856936577019892099610923243256957262763465374352246058024289914066847387019110942772894906109407160330024408293239361517591623999932366964111173201661394718169224814798331990281937443532634110166757117381718371595588316695455324946805604053635184646023890187768132372479544511072546320199725202562833621917272710918133213053819147813569483426217685636350513014687718786941875127658089942257679912795432342928381875796058549007101699480429353475941045033236983547831347169934020020735496678621386702145441868646523951263236423261286314361692184191778816419054351970582850553907544857627234200770283300696597712961029224145855308301183123996966171618424280915768947940277092372670273779967290762169891091885345958620077221335085889758698115914270955342111131585332114008523197274804890254504720854341013665979748667200827998744601173682791380330865344821979672868511118222833916027062497632438485359084326899540036092873760962175220381349784389551751650255703368024091466576523733395917019386018631891330732251526999634962476594268643225028635650804048795702862547499208881666768625906142537126382129368865532838772798972893997184285256227617510612834255055152550621258367316718549267266939712600584792035967551973142720482154812316379681313011124479626777271691366863830377800092113548344299514917960042048042860760720967296001158667242111740887978786579551904690499786108933762265008801064008479045095148982721677199481009556509694628946384210284132672338587518320877940169979399132825605342570855946546632148604578868250090997391551135045064479852674413295845695114162876972623309325753107400526847561660025593135487416749868780721980212327930093787456526841060264273211936611602845865077653309223076740535845639963711350019358963169621943885808479766126339393291700939396214829128828734677183000592775585150694061134535274364656100680907881900721584492937600879246053482273960950933445308177763616434908058556736511899095861496797117437426493114098365392318216128237893660198416432396162258210655559713739302302242409739800360300698347482003643140272678068892378507962148051136567206708567526756288109307669396513721482335813393142678086930224833885998758246386722303882516172585365508069030775684578655240873687939504334708968615189324181155921530617594147007177062508773407545773847250032085610755005117112545799064976522185724091766210519600526736780309687973991546078462257336306747258396187227635384475665763806931295562937392067091773660321681809907269591482638734162562949273048982203022434132498507579050546924264092199416763818138259081071162627329542499643519595311234050353399663886360553240975704144006808188218396767893607958799866180475344951853099616719376101183323039685292247239377162424837676861577541623211555434738144650342601370889326961746368902584853891516720349870977691122367541634661190253960831226128823267368650686513679798272584285338990758343736617375699873308407945491836058899807021691286813817777987877759343838045447702370476995426243704439864012903695387958868686807733565270216338797399392943914514178650256684624959838877763257926112306925704055460114327450804059815021094595267909747084883720739296070854880270766718525831984321836921838333877681360956665555917826824951674146544211532965666253097975036305043448052278520174844176384342745762670674037542654856049390902236540066817433018492412455912046093731464536976650845567246294319628855753344166440713752653448999598129101701182756840699764148834465484158386621085392809132881885863426002005365872662261259664676874330622511972280273180147564511684779679603108339078816775811499589857039957199155112094232262451925938732726055684668193197186575583071337894709847967687816780359152237475782205712203151666621744095428300190154514572034488273029317958256841823021617646769871208395202293399598116894266547101338967538798316665127643770903861468741064802503693581116546365139395709327168423049086123078262636864051082586358139531641044488065760684483373027000897488300552524010293853545162477219292333783483548696613638762393521897305066415645902327659381939109509473079317921766061625703711419212985737464537244643599111083194570718791670014752613013891847514286826760847379938964808497362951499469796731772173413021575660985343547882154239457633767582841550151661665110097193637105596340001926861282129848972297161437376791791964637658550947893913554738199605293180943332925243665523222339141579135137869584616733668711381091797542478447745041527688090416971665361502243653926917610678500733996910561828259007978822981746826400707959207556458180744938888482740481239350018300876662083896060923195213564740533691468037630657086666996210207751920180863631084504427308361609760341025198119284186794214782995564085423934016275816226878822412353924973473253388819363951022914654449753314633183945273814468202635919098527662125285561457673383319511650759229790523606871601968004318057969541759608558342138950388527874586509307401363281903457424314743696395356166482205034356354556919785545307524683426943964928664119895814140046124898987463409628595936727424526913896872846857875890706668755900878746588510067514560464276129982825044901920186819605497185146762158038116668813691066048001749089517795418432009273865357267520445913857316798131800381673112610226974375629937653893253926742677054058182713632246387117317582379772376936673487136551920517850691229339936794997481142596260864982024137489877336453079664993930911000099978877248451626720946117835651737891948186256024636612652448551866357475812732565024928463641728692117626250146954882057586195329971090129278062199421223013759979033717088235951640740784436904814535880680754520005589258575045211698112410829884867997378406540425930882930220096049011278407902968310734232634248676206322299807092679836176303095954439792940949280000434817680602225943096220052963243316760209091267237607161129718243256065215512046195503481245316999257310950302643153506198256765231639691820988391008186310586893776237787006137376735979580364713947491208508726775127307529857302764319975932171951039296401512496121196183982545473517859744073705676717974285323772585615956976159902808574105096187119716023294219993743510347098390894169387552453530962176300607129936462413560473040118743119963289435405530379227719695618550902884197833109416737148626158522810922214964355651235821649194272277859107177918508216467000031791102410921558445143061299914578269509265379685567011526203642073683005654416921817882721011417998355744154360990835919258291726923305183205052913640926732847467972007675687423483063978807302277598139672198646684137965623953200693128380286965151277465417603621060922539145269936035943054388076730484400370147462196376136265552698305436476021697224141109301199151679183930168862730151565788157869385522299044880331930866561470292224856575723501918181005872366037985744344231278298501092781305780892707132369737111237780283972665587417778060426428386405107709477123945659727531216895488810221996724239889481251566868172238078748525393962272712216883717774012038209050085601290655446015849999132232627269122226543661172268453735390844924999608261299996280933291369998711477543593550248593757235629991839515847346883254417206013342269838502219336786087235839238629543605089388607583616590961201704946132665074519439213350748762237690919607614209114176894185241926701901682775019257480747040816564538035658871079976256961511668318246249657848316873198440162815282543344534269775515125892074410836182327058454008357661210278634653222829172961228767965723954596158370137034164862875019013519424582046664991362294524328397409879439972663784084563161611616107343955064170982465419297980211915712293881968102321447440401062681897166648519808795951070800208647405953043181914034468850018995125611361572264379019273041317819902483638195748113815298451274340936007833672556758053723972951025663804515357875883341613336288831021048361928863364426317488925697274155825464765657974718143061468065192709797864054130051014644703866208642213234207924265793183882142252374890950184216128630441697479147609145818715665003267951431991334024577147087920950841566448214296569665504232482750351240947803796607527453384296198724322939388355886862430459004901809652667333796432128479227280662736568516463606519967590907963743448811295338729377423472772622959731630115161910060547345618997427680608008215534696194209237328685041767384425953657611297736257330219696505106490479320073970051744840430023612917596711000099273932608816299001842247980192331469323996762879718372241726233639945354413228824145416771781319683446285182000583914942022305206294886160305072552109815450248589332676280803781079601074213103608151650746676538003405645461943823563760549508045828483443731680038759317988474598882782328596958050008496444280429260863902059534984335857759826862013075341669000620849301851214833579491943905600645233045451341443073791722234172853470636954505032431336384453218420536000536696395096048611989592887905780499950230312650993139840311716752199673521133704998108409574310489726363856458531181372905907503189353464307060829171941726407239854357480458565645262173286926732525110023844544777416796043743176668577225657900863972131768726748371305866041370568095879168341836507311477395261704798793877323085287084051530420293971785681524098801114682169978635217093507431861524247918148336127600711620070584456765718014948429868723621160965289809193262997001221035298074688584830728106853522327088871369881259590535697825315958466331539857715917987871209900336543724018516421319935766965501872089612793324571926866306063936695428141972982785018315433751894696098572481190017436168756376335656243036854962706142039684688735492955621452431690371398242892019370233925184491001677229838230875097419089811578391542335825014300247615747962354262310034252927014022276856826810632345702294646375316650158231244863435810843576247529861625126926010258171060022656084454987061417584869672182228679674620181680031777890640107403501803939884350015196543425822323829601016418396453665609573610417274833561290233542864500127080976004653332695847217902932855319826731519903711174871442256223162861059839166785729010511797098261787657084971726965891845923608072080806615898486047838775561438769909614261316987290233553431020425457398645847930513730875329867789061840834771452058896156465248620241802341070088000008358150544649585551321653510634730110753464967054234925165496124488562788433697489180696265088191530006374101232734666600216992470449115996312665267493430359538215896648349597057458937772996674977221575699330049216726830995539443315757423862889147934157133215745029539850039593226086390155997830434531301322462982835339831727491206109087523135520200802008591282094131526652543716186923085890334322570532443928507492016723846743559270301633994957358625246494795704981937247937342193618153782087485289250005873559654945044147498721700733217709469542966118943676390197786484540609074312159877345146100972355649987587199553012073637867473014855124906324080418369600260491734928997655970329947533370360028242954562635975948206591286375485634233715176571567522613591065524617084939456299774679773807596844762211966534572904482666860597992498894330534658218867947079106898511284142201623223864434549748047309907437667307797994504052615443160088335779665441246209450721142597267828897131824946440880788804092672359433675042538869246192626246252281255579713028722846566059151429778099040071439316517705749012945746829936077690907582301502725454127945339536440950392117418382371257285227032930293885195440831735944404774843677429483835689084074177010954463861013657352080966228800656533238607974622469461895433612394399918221360067759971229892566300976991481854639018253791770138224991481585643880626041432192009511816233034192538357535322482697077149387318472542634434641867038187744172437193861352580207631566567931991126201581171136299657972821051226700491821761228501319830248451194832776169361672326525489363399486489020392541805119447153305706596630442864332144622310183955004142837501306783957071667899428865986822674050782133434573323721294911487898254487757234099651143558984503784226071230750528240389798444768016433076655573542342817145170425120150631352520167583476796489570978723690438940931193954809399117931992601944982143550119880313336728592003037845656004215808610069563863377834312272532790017891110276001128344099201079685383964733726208012275006873964692678270845741885199136548833056100813358057290954393531392059856553487356954176814082508746430058533593480390624676231970027670807157745631430718651290587087648749139482246556502344901414119509165173571386259950943994305142039032062166645673114042688596186588083525991790074710833921464446053713682001344727791890656144387085493176136353734667029501063833198603086316700965952956089078172347209250701708046599797760346935278138236445631551942367422201396369396319708751591388763089199852443470276617435386576280591085552238366529175189067187005401750450718481669559819799504449186967699270819367729075893682571691128403653689507286121009492551701719529996255559677867456529098804760774647553613359608649278627670320265448181046362421328225839723337142000806161429316121425461971091210585954438365805182256139626037944689337703373928911266369800274864231091428733262314326432020616759384373165020176150700843478769338964482129079151818796898564794013875574374284587673996185124014982184642177735123560185215311925673608532817095497937421159904829661409982681608264886241067809931932085340740093028795325701434197485743327512626364305916163148400282789571817529071100269203915868076638411272401441271700436628482356463715817519956725616522590386130644518945294393073206293991321017268287854035536730144325704974240862950825858753331300869648440583123432866044408058956064204293432478270618039914799081581423860530413438492791749524968139296135948312112713336903929316239456378675861435697310944762860051969168136288294047353073603261342375544297245164247304140566745400167937205005653391727511216616783391610069494052636313476764692433406515861529904503334031403814995328243894343496454269837876001871807434647089380808837296677212014972369848943665064298663688630137648615653237223346421380114042707206820803832910166574502814737787638890645293749132954535149802474355522242746331143022058362723377097578396501878171442142760190651210120012081101325332608984914413151457423366724305372792402336214834256621379717443213432950145842247300609925587835335532411818559579828629332941715833292907041280495343287043464506845107087260454330794078109013378217303061229769354101548060469492374640625603795155680258522327859013546525777185848193799037088163019252257137029565242587710847863055144050903642423748974002247474223000161318727520173820431209330373311993292664622173055228971049695463349776612765961624684339905545417478318209532161124442116580343081308504618296734384884566759371072222951203127365591146761727373983450405858503002728223927182563279276327498375189412014086947960095779272922186872335038441474182709863727611670389974258292134607387492341380907936682947222252295036736868101767331841399534108178989524514907425661621776715661118383554544955169839746594123863275770784314793395464470162338018166052406687204900088950109770342712221774118370756321107394483721502624529516649356448353525649523403623566842574907369351380408364927379911133740013406313380210563425974843301847532207863183119354663887129012708002721360796341527926790232614888773153415570988369550451600450395644854070757720523809613833120042412355877724925549696447414843446405921279366456114638242904654328416985246729163156924468239711342007052476204433054111826076881020957098322392682328632435109532276184873137036687897956649428525282410977716977950570045287938016038312519616209941482232211996059865788488413336606456429423534385897220990443761932220688217804390535545786924101887157299850717753028137868397763421894655336037595286420988429775771391910356863655625066306615301507072438423342391450867681181960556660524304358851946561953840074064256304273033443644254561684196518945008207771965562062439973446944383293925816270814108640265186535113374861013309750268234406462526693165289069911217527753860494692723517574004827488143885297251532522068921326619071662787419684182426763589327750416134783061927788722364845444871455277053175258041062242231879080590347010559109380807800896795387698027325198010186817503426097391579332838956364368753162449151187121680108448596678605192319504928929919986696972218748413086483573200928613601306204793428641200257521538942611822965793466273907716284616013412230348568819872182936082848273606973600440765850433233172792406085479895747495370217675531397041139290738591579518554896081116818035089854167945970560137789290273031906903244619314541888904099756368963432002340520089637876449600527919688558330331011771057531722052162121318702054592608293827235490554896562565726818052954112574124118925357405031080646808790244207069736968810024430297090274259541487100192868529924094301413281045739860114428475300668058093200801903969071734393862368429850058516928587465510230675710305718573750644692079945698975353838558826845358512683325318253552757534213300595322586198388358308408809553670129628546569070260579174320762416333582640248736093994109423850343215172008486193656864399717241360513659486220141256678804433903971923981573837825160686746430080346018641054677436530989757051116874097083363891586798083513607756102730963850805362079369492261498176367236716595422297608118493089779558781446312418794593053623941584426643501244069545838181424993476955801356316806615874898039577155337759544266882572184307200395685954130331044794879931364901061568397174557390817763839522124164817652804501781573278576253766903184947365488269551369094271682671727394869703622166664935239947606163203456872204108553652808663915598938158640691976705791839012272037597223561885261391935709423359718982623497530285309492927916280328403102465151022066448823423845102523863432846693914364184467758272160255742079747143554841320611580376051891268233411100191491339746753207920911132851371779116676469328179834461228006932136275487994311747719061191149516560377730776096823608917862485379558545646769067625910640139700613644766855680826604750509588894129366190742661095062680817648900048870385559483999112596771035036963563359526240868964736478100980305830771429199770421553731126599276210834315106809297244916088648504686092530862692157319429567114914898690263689971329997849267573917180032745524500919451519572892235639075471661713386504087923075595468946983321860563014623544775801232053378386170190298552255801254336253441198676601378658620970710787644524196514585704582803723668913057023605304746879389547180349342817311117003286660730728835626902102931973039182343824906361021887259908123262329897619007551380353512338628513337935991467205520409074615685742737137375927571090448166242170758558380930762421490860158538023264838763350466766282553922772371586352908821898831976049446915664477301685760813376038248202605347147000501635018447587265909249416027242728803905415562531553391858372054457917336298219803979814724700557799570287029449460957333405235799975839942219569860054120956002093325401026120682704849109844309893463059243933449214484913496884388102251752168312909538912513158195649578169489374489582550187561705229261989235217755413739068327201074536612521814140567613574302340884200240448162405405739144745690025823823574490496145327001174321850717463651505666341328889818469458874720396473316599468296185819882218503235734402357926385421012681935060271102391422329111453621917945805667858531314082031757055832848491301222628300946588236491990726911954577142276572241150851058068690709343025984726957139437229406529032756726124948022160004992656810866932236014674474832004359222011907698780535816027631403422088169985576541551965328344165314101727667159767963973529432264688207117251866503664347834566897534062924294788716450985172762279093270360691038425210772370992786688317638108173851650526384067447152024920872392448675036749304408007099891111499996555711341034954290074010467674257873816703733450823858856491591903862005748969957788926126807307113732515839161591627623269516292850178943018400702914401043971729676929309015186359512658032091370495892575656948516141856794600917771795774040388898401203583876354641422525593108682032558330592445753303479443807027760667479516646534439692721234249461009542922657048286566940756103877749086557489517350415880012272208848323908165512943964009960218278927108900236645713131239789786749941694640189293402802739530264380075566562847474378334149009277942369450847735872343574275100371553585564025564606835384473466563692103526831779162147985825660250222744291199687553221295814046464524917036282202899037361936557504276749153025409430628538023137303155541661997644577230194299273170404486968089229729514139474241266723484522698682861597048372803424443867301012579849647115264731028774628638703084518391518540673716867961305812159630798702541942763166719813711062238231780515382086129969866884788349146378525017258618564927095623159655368338101772058089391690508645451317637693421868904808738789443107456111276955296094549347200541171698674268902417143538037570810621481391998425594499205781725792569494891673472348751866115795407794660783032686065412926984699720197234051519971322444925595844446649248574315195720528365959056283985567702240340788802009568195946905596694886890822969430541367591525688727885897541155274198339881997962087876866857370307198990371728177081033855486830672118447332749663608062351803735634248159451944219279025405197134361971136819582073928676075714479361891336953820623626146875400836167583040396928624734199585121070820185862817655962845635466404089361823686895806330690910557296362392872127270675431859066802167724525382921339242041765420233748162343593902543096789529580881731716987254419571871679552859079666425881023260569894128260284011803338912526346147660344801337128904922196074089085902530541264721551280346931676903522703724572997354203932801664034351850226253359720681367989686396852949937527760402091937302475260343256587184628457381808827058627805871428528041451722121084616635356619646805913448635466170853631543826303654819743954747590514388798350521395957149932304351556607302163328188207936841053335427794805867953022235722199078983376404173770224224138344385270653844175066195159024926491310524131133579922295017440501976958944898497373813469582363406742148142473563122133652484599058631907098373614494507270688011554583924236049176275821265899275732413359824302946270029373629197665589774754980994791280589793941905123654575589260636435340440519674686614750812690564072954361752550806404756655215306254690553085677856345321422927460864388352823972328388030291394403495827378806562305776164247825111541849013962103044022692388974373343485698204653248218393301117714232985785921246594213119801328756849581314801822260284844677283014977632304210601742345922856851875970996867671158402047641743277440743545356796564211759947120504841176987474939649248736244671990078193953905146579265300267150356282101960551080979587663593822189750005327881613937962955280635547467658801146465023801075703152893688116488930735936828862508828917531688243955745069280927525674231057903697726407786784242350932260721782578560167501682660614832267520097353940026627906914734097018159840911936895266032622207065879796711383962729775963703542539841763102660710492629098814785243658751202252801206535984767365755211670383582362868830310622130893740690050236697592236553449965223520258984060824568420595183642014568005187659487992423885987629062532568949963378317942788266059085282349432709661359323825447092425988403425420575413235210457131666868248747321818267436910534044457681189780494291349222543197643512051257997121795345459419276784369429235973694438514122001054885738170869474965823060434454846414207688885445390026030091363488759004196204913358605833560874135137745513132534541683319857796905875731195763128319862396322232274720877681555356660153802953595079725149655336138731838245520617026740814475541422848349911135607527858816785599435541997849442115744309078976368614149562330337775299640612105281938903783221515542800699061732587634525633525922972713664984736730907289842314476132818044824664612581105151118710397083127961857708183039421961944262893764706607412648586216459777451215294639822016835991492029396798422374844944878564429463965052727875878613600455482500078514423431545083007740588233552734135695095585576530277435324574529623981894565612937819373193989679283694494316964177925188313642292562524139649778654336317093033592879838910422167566129026451454772663103318550502089400456362109661330112153966319002003808423513881052885229265287381075373444632603961346933284939597096798968052867295097631288374475549255593193098144661822014706302931157672481870246446175644787095496823976429935793213315935751074116185517410069637257652462633768941088226481440258271649405500409779025335124512424866310872632191945890321556388805855846708791950647034241533144133957477542213016540236532919452012739348971296907165474637248299842146012217571387568532961290372424228162630339108668965838560123498637837306015824721477558679696627134381777861185344984449431602026629463794522249739000283950946548557581978311466305092618131979994358990955956262876339799815451471150707689540547110245468554484491916883239471811733499881997008552987160383848007004013214534470120674622035597424600600575102888761138958821000888349601093389484719874579894259693843636603414501321211602276573052761101849887303300402294967179320222754517913596949224340602035821252729230379255065335887142010855110835974955616953991405896780887747471163325813151970816266466076831692312974334156634004563868021862430371264471688554878278330886026068504092595660695329947433000146876227695247945498357153402748250390198839427244375325149363942697773371308776132179229472203420382128058085667465717286803699894110524146780934683370445744003655827752933792164860690755005397458599683676606351799189961820217258550244727651281334744393101490856284857952332144167173801673948709519073783016103472045683950427475137824064108588205949372067760122435700338209788191888994571581719465222127701232556291735576537488680113727947644582497797585182355163837105342782518736838661510076884832415641116340950096140642043609450429176713030428864475045913525542166272821222997293239644627230951980204137061242277000990249921870362376450169871821333522472523208116309516966342809060108179276162504991759332990018690464497454289001211046504498228979993064284676055320458363846251205712222531795507159502275125691709410655532250543453868637347253357465106689244922788727575991692542533313362380383363716327912749827504616772492841288817264228578047281432373725998317263483872533247347518958801691050173662522898549295292727512873638743182976293797586524837892869775074910411733020808057261884393028981695161457400418530273107339596874300754629268502522692016489920783744341327176317379485175386774312734395510082340517532709272690588247522471913697118581868086666268375348575174591297931995164729232720172709968362153210510680955485056618608595145736980282569735727064678330869700638674743531262051889068652366479790786808220282128292072666117163652918729208075715357870416090647892443416832709798329099133914390754788859393887031053962164543266457738438159983353999436704662841401493549238132037940829528413355938058291673923699627730982285452876096481786840647903373367731628696595359861337534252594505369536599625317143497137260591455978601929909270102526156238759749503360281731595743953921263909252827926514580871692110509430737298405064016470740425892408172435085368148019726297961033006048254653464937187953513806351848488697286896274294597078716263031294095136820052732957072591377874837071336268755472893554948523920458384973034347735342626464915297699699106046351663550552141338064145676400482295140838764792543434594420289557106401988822317968456132089220114421781750557140212442987645512961036678403602093286931756876844343917898372541289063747070366743133451687441448909700071804888919147613073090070581896366021989070372753687501958775394213336033484101436870988510102227175125887998751291163453784320759860238449102019297929955580681548964438707768474972452767293272574248326109213864780682109267022469141060571848074200496319317498901125751682544763711668533962121038942010757207361997582351037364322195123361859093946218968835008220046556296841101301657929284899118270227399597962979309156972737388522295857132203957483565328596889824615404725391714101448995106288980213479791409278783142823113267545143668612431422161728954998276982531702125434470542256122279891567363583800311582173374546326064154838178714815025790954955971602157190936408201366366260641633800969156961839810558762915855226307212434536001398095003050032488355555595643123249925120769071920920010201541593208170812769870620758320384701447674903371253952934087102084102588924718043491514071412605901485454471350154194322785853142468837139842040936438474124151996895285647505309787705242467149388150006085690382859368569940327355402168002892662285745898542918552552085183996387513346193510189397140358506430250113554380708892775134993614043844590362946915700654104734823716781432182060394331896823385976096605409875356454616800095601115796321761937219602499212585477405962614915362805720009088868860635560382450662731078735845659087629288085675139248406494136665694821937077767074772179369743285960396754371237541584249709058570801741984464065244075044442209628389606717455380599858281403635013433872530073860923055687118817077641744507264605875951035423218001881019341359410323832821690255520822980682896859919032313881314097114812273574056265074641299484479098503410012656155060203678122339646945702311755621550395602288485896943313687496812933789147251096626761690309147931032936232356737451609549248080350184794475889395394123997916403297935499389563040498130174564232795854026872061118195482711875275161657455231634796915192712710496553916955466630617069008996606620293485243853432369062574476937241916247964649161291339150852327912078237459815907621246467854022178978473064075998003361137596560822548852478697166487218476979231063874025252181928950125905861397819968294174053443150472514640115104968696597027941343774720912172768204922623564082164798862077795844936577645732583843225109090665829488791708255498700512615464135272319232571006560175684253719276411840876338296233092547672459389465004761099224122143055020677383892208648652007818700419206101691844604269131348715611433103590916888197800103030475014053683280768298859235101732847947354448440773507510229890583936656626996218556605845350051349358493222533648558520699702804352515073580845653686001500586351792808975640813073674919576392863090753480108508256113990429426800686580870159445045229941561548676159239751416648991287300453568952148595898966132806187204134654419119760595846672320207565952642178750860902016235268341461767713471974023202880381335617828628902190006244510338242218011950585735187158590321224606513628631193417846987232218261829947380579950607732446275769302552054347915102194208477828003889509532936197345299496681045590263355428202675183585532288408303767436403244324845345133729457466866718985225748992605823472459035069924602815029214093927129225049495716449468098833827891945656635440769392084035282981645298121918114104602734024345511219290873612924298678864064745142437513630696922840268526886893071374739841046270234823042097506630494868488477312328582037104980668568484527669560452173291368765691278985478517751681489766416022608249286874253199383309643875488057873454208478367426644053880267878695806659538640828703419937001681135372719723192416872068589832031781240749803264720972415567337025680981409124944500930255148059093667817147086387109732193722429177448980657958489721335829877907418548091094385244446650342209908205265897318405254877979174668076935005677854698838969663642276722135118326071146155064574695262679196539016304902813868018663548479949029672146653546579903462941072619342698001443089898976968330174222425804134598903246856106974142923779557426630538611941577796512577107532982896929596268345446971872722557809774195900449359468987762687862259608041704929752790496132049811350369039227753678126316848111551999069664722339277487056399468830253522382803900829232983993852889773031373103928318998184325238037172838483823443983071012930794995108694172745631088979651040257638291105257494714097211512293191373462561054009030425007415993480785776339012303346729135095423523383794279239811289988078709917228434371419887000211821889171931886162615380589433056094288514399442380954653572551274645268882092084656008137784260976373059747971899944717638294790105082237036237214195012748767921167896114076086421393190673094630010864282529737069055461264214868303632892360398138513346012536459414902361079838999479414943083197776637956547013649056664264004852487838445539733314903539455400662475364346878188140562355485111898442054046024888035151984008262993342250887207216738004134728148861953003309358032529640491558250842188329345924641964608698411289666425917838830864769493089841532466270039721237805654634437921895209657768590464628017120988696881034991947344653602122308043271387912418706738331709743687340577217570093139550122045818061433738648936619258809428944913181453467501946219597752273655171088345505272871102199437101701686779814604091119575399119693645166738092774902862005816156499137080508455081517190186758158985519030905023229379282182228975717976731768560016634293657604664083386409070040342040376114485046913912909882359705533649386771370566970807169649311306252177546793764936265460934855981170359941695610969332290388151747178239795236110627711776110413628913028289057334197787913859659996442220883978957029344659943473749218958388351812819713193329487670686705586463551320898156146171808247574077782222138980758004062677066324717297082011620759486447964930625360355208867720590365658350037870776087968072958711310310763399825077371454863359345668561874712511150332765297013472897682073415745664046945406294264198309694595643268061537019558551430037559543363571336843035435565273065410809760684607448865132065578435670372332408676198154102476122667203105496930130620104012369645910609341705229666984517705725424455491858798993176104275944381961082901984987377710718251151803309858028871247882015002330255301449136475602427502094719155256394321277257036576639451145382171424863593145638537632088962311870232403088462474738961122779404827848312912045597065688097778822766527006689170891114493102987415796441792990061604823628007655593214955082909661653225582616228516169910723380317816545693986949572872126244373481655520491918906811311430107433821440251365227512256808646972371788339330483447976056379939548161089350445312793452333987722326782904479003944021547991126240660039242499834106267450550710623792311004673889373860018747733587452117689580489365674528654568642655826036105707343705525651952150072185919676785928479008875842791881215857100619439625039669688642376919426825186716775134655086771798183878360069160400777195768059618949336544861968046287850157289090378703899621259679747673395787216190215793104298893117171762091628765056047137951171161668139051837578194624991434977749499550582520911226983756691408438010229797170432650465301834356436711223352796067679129014570060795058479314302782155714429618923596472090247074601419320120379125206519092720905097465576323928938640922504314720961392246751341208319253074291601985336931721718367131498301914108212171881148906231543355080294518833975981257080543471392080079697504540328133094617215157766843230314442449012257884286988071896142710235361328044164490222593664908382281981825761774766795014561234564040533147810927544394808080940315800510917811569852581739578408841038618868279600428247789394951540072198608152431448986367982506033008061508752402586770609476097646254017049018112118698465216165611116892648859394374836123990491644042580169968020261389547040031496334190417068765995049896527314151292614141057636012408800372224738092770192141778305477880261197887680661259994580282864847659909964649431254757286870028301340480160106240993623620030115945952138194993121895237702458744938869426019407762548371722898681982574134460948913712212971984912331383848834909705412285567351491464802281839645826070879834358183587987431213448137327743491765845631460023884214417496745290015360091258339974137087233385195931929979855031893917829792638560120380700467063422349619316121357485851782908037712585005014386868794940903415441952088456464991005532696752600832660368045888924665387849887551288785829987759041854015354455670778826096950671028471236579196268982076121639325886271865616997518651546967543852974678417818355237678595941273718727254549899656009648176054673413270541349828564842108223261003786029493191935458391221971133387353957209157954490746248725724755253273129472461832045038392298778062705910310635767074073058567673128710490927117040609819936508235336832104095640433124871350830917430511151048270487576502295875876892851355733656493274666208458071181337885455299294770345443435333036836411030715321465068162942125613991338305944541136403998366203821927584526917864419572173502798308854304110575012329001171277453832540271607381511642336485260188027316377793570956174728803933411856240282222200756622449010399832233798834643153766218219352413719785539107408422021030660061271367844226568594378023759880396259752821633069010005084527273721741669959582047406193842786165453802133485405682527227087847964458443997087496353811913866477783728781859171419982019136788647773659693978651016552972328859217946753414902511158069377965854460775737218946708455501602030482754113611453026406392234424777601070431130175883305631332258716760783362432346220726442417168404487655695142834729309509731278218315460980794335230685737690592165245767167517927842587511719946708623922050855852952795971729684509951096105326887969541337800818514311489127388055664790808158456693144519200630632849380018593924166497193474333746686197047742033920499893275190509588020193523512257529942774470155264724227874040461562716463562957099005179446401940577428879711061108948994819271765344212987950938079559825584571908868717639915353533331169434646024907309825628358609577018005340404416743233969774131901767249866753549317035524813201758184752078802307954891043494282327750056478328624111775593287118279964849040429730291723171975101922619836611267899042651113679739874976436917458529637778642254351279310443508466348019566043689761355538776575819528279338206770312489816756232560665188445109384746213750248785782981894312267165113167933241721886348536320281862932741794543467018916864833408413158436090864095233867800403690020108106773561066929165396041862396498360838432963480582668146184998181602665979169897945853078653448814384610489522659501335804773229914521026011188788792813310578043844938770321830860906480593987964290845239693699667161744510476071233827731773285317840748329225794015918581294533550261485530486866966655993930079408465842842192947676714336383628806139423699692032270335185575394702226514261832719442929665567293360722410385306692973048846182842271726202049170130784912550860871023741374433584977515148036441090173161826893379355040486550260204242081780150785349277321511081746237422580626762663285471627478384611141936991789663066691249280121796894063412038141760116985285103738449823136392707842149897446029707721149130861352548382164715486848750480411007237896720732698804609424562310412080989935066436726109654010724001450344218884048115900197266571453327749156796894122325480979347427140552240870776844442089781996420775014937505530607800294615784445564251022161004591696420805997282652705016467674619572097721428879173574075436066510748312112773076081479911453915461245250444897791473641549507452346594868117354535138323740691492897992054002511213962974381251251190777716253749062091766771026779428873718307517126056009985006500329037456186995771677140324804861367520998167918529808151484751281557281896173574877413436804650437393820320732477643301057367269728319580953333708246671121516137251380984281612066056641540552051498220336429599880497122925727186532581889046031967434877384898369085761312507329019831544450013263363303587167882233398430668608457083368412204125713022119862173133542902199316866065662171239926838790055844213423289726896267424265199271042718625005318992700704111185193888594297941756128554899336554451246517023243580348229598184063326318531915859072017915890472292378555328384578037818970747071175444315809109643159890177511034686230572437918880017286701156806020421641505119472243220666011922726359543644103775032249266922353662012224775290761224257950451986158542050863559743540914814485151383601459633954813084850332558407905782563330557804993466837487973052428530369845647009634937899432639421096748180164297053868123755900421049850713517410147113633005611442323404677331430790760021373961174907076385154419188845286290865101207394938846755892519692625483676272642010111097077808866058794593872629299801548030465302633923250581438183104754639971381338411363440912649626950641679249699168954714623567425770035073386255332074622384708990391601068911017630406590200676394291198851376433983050752513628255929837552042258129647641541562694359836951000920899845102256144020547126346434274203666863428578559277509152841182451890864481836407580530695661233969262136715672294370539791273168071090843847593744448109808321205457403625860625837592904818425567238052182159170065192685206474806422808406894291904516830859873757206986866960144411130673465098346461556519977221161519769091387285920458930229885747204880409636641309822476604528121086605902596159408022005479070490402870433858542500711855085430613886290980750169209575956814160307064891277863984206877249818960075890038946659754432336381184936913562293887049753547773963146095990843670411222905959185627893471406900176787818307320340515451539188217809443114370895430399137369735686949113252603183252615702427233736173840095913315889347082212531600232773385084225430360961286178904153032028582760339495234627408466393679239675643440160231863806688415887228630424272347304395493280621981372635918214810167831051899091474218787925795585712764725611600196366214089753211045357411079438248413613466239128463746068602308291422658044698661341074878174658859087341866325994685493299770311051303392131343483657526400314421125131000894756090218045738973801320900931923619930762220101546259656943990902221929348540994273086777998475035106689648033630545195193367473896052361767487273384723472668840910369421885105150853400498143105357622828512913707394187258721545261388383499349997605351345607871200950667105724657008626638764449110954962415044264849164483391703309468879089428060545841423274209084941371215724737794903443127609819686149933491673748553287677140892576712838113554098340014710865656358325500521148425063637759474830571586801300793928268342471196464518852913834683604832287617560180851440774743291432492254957429381817772510372725815232887843303757869289581185592748427662446757091807931477989169602168689134610133629255970898802998386994059128729311613583147972182736537446682593614929560488497999629886056020404043640673475495566623014893078836719761946690864178391486565729806466537943680532885247998294409123843335103739723538745634541373016323570598091944841869291467829352896731044316449418668655785010136785740226680956160265816207188467855422118348483886872709862152792791292274737280248308514792519344490160295334893107603477979173421338316864461854670541548215091280415120108664959138481260177331286369038671508158650228036863753054973184342428925812276274443847764499750857701340703558428124167263425456374637768852242411321186671457802021090814188400405589954805055046295278346422031004819201986997576274984766296184910100247943210367914433447875210234179144531311929204731487646356199775598907103139149726540953463585072884295491347327953101398251711529347769661901649304009485219105681090691442348980338813453419257325392985011925070199758980753900717341446673604801484724645202824951725773616471062873766460251798088702192309891847814000278859943455633151082973636743063408906966572306251428436023946385399777995402456528487793900931564891328751567114064385381719152487435168782366051430661176841221775476346211444008687951743766391343297855269921191866081496878478183131227404710914446423996745657068227526494718666555577809777303123012650652434969863493980428359230926999234083748844230203954324578072880747826114532577878458122889183253599523539374105700066732343695020239446155569843878238594012334219555545590425876701926609199629988367884877064239391545871997609575497621330211565768144568279349840880220346657578104422674973247642427153051935152177715966269676065536866775860780613835371301786129544635452697808092800239635267635160031155729548687975668448041921540392310386700497232142918931506420883504583647953751342416177401215898556863664962202584363637986091410305198310611641005397560368981184308529082488588544297082185178163707367951613413715943265660353913683910567151740682026763224868031189572564488271708588649937077084801361187034142712743061950827887777908365855912454088755065955317527583340252790927825202065962447457743293381866196805711301636819934745922012587769654010646156662179622755078377541811426861029506487969857810122879333778656427150453188767989934764476479771013112879356646430288234927052739996857538256824535962181984276635861281277574329854346798084885658978869763293769550056404470126798029134731261375753232635656857198834407844393427537682123586203416781575030328996845203021386826536905004353620533865040510659172624023333969387172832017422959374403071928057041062052075233435234493949272605295961926920843068562776447274196706874427129280631382115816775701377541909729711014380805453239054668925554665239175873778016534336059846230246865690575029717522712977229003689168456471283904877429844601897830018960364465511125391901770518177919624220067512176910113764956117490678342119257708887507332245359230300589526184930317289176998663132058191416516551273978079777775160457224688704014597363162800126080895028551227843469089620690688691747732252239503086408400220999383517383112453498012442401943099659263444229815454328819667823116821392611522246885579365398097427539698209230324100799074776089003705531592655343923035663983511383211519381966241824622092114125002460921030932698352973677511721400319466758103578630694809982102547916883315295440156473576759917482416432687561257420713038975186560734880203899901356705765163977200568874901965634444564028764127396476470445235591981857938737473626188047002363589868631551161035904346888435554080629195444553526468453431222840640224890749147203321404861900574667533321476483052462406934295811555504562746426173960522069044749385281893534962070405804885948509702459797530116573819808273852443650998985015046839816875840355714837730612496577349528882415420226703384606532727203622129483551149779956732567701060775679445298796937017765340056854433198803275880417132497326438430755424917097541313062249163340036962803171222644594043301008438994157188052747715246603312037500781035710770049834505994539476507048437696109459625752722856723441286740182520982215326979161542924438425446786173113104073796550186078908344087293969219914070614694918500212568278451104773260940946816577232970864226866173703853362230850495680432135476828121390190954697128326799513233832505107729364233481467180444927031807025788641066188354889706236514697691669922736558969267226492654050940277573321877523876086146936091975505030915457606435732488279698966351149683612969173867801828174344925022204041547143475806080221834113999512912428800173961501084330097178482764359228957945699295000433079327515269645618465313855900856424799163049367638650965714510340503862817194318546618583736631999029313818161918358312677367140689887808212311465021780343950748616003862486288585891723952682446937122103691052834221456720093011615806121890127262470651787903243354030903065000626656144666451830342826844931225020902063636449505684068372652815804851286480975196176040799457880404298998772126103871195083978519184078281682029377440399971672713181059659095419135029657887677916762158627577284333406696470049378205877278832350307301689846721467984422952910969569263437409593027790534890378919143153308415265151449173352461916791373226565388683884884628879530757825196047421204393979789264555706166212492555055872128428254027615813462891589709439509218893256323576538916774529292959120928706128020448761860905830501804473993620344513377613854778964888367167563981446937160735530626450618512199898427371803726473970481504389963248080272672033516447477568321869395424460394838425109584689254857768732703584007770796766808923565424147952776918887039188716948338213734925220318663687252703056700473146892178798118588281209458082455502536110184941076673236623220496072198510792976953541973658515875526685427572865385000592326001435080059871974521950564187562503374595357957636916513721786674086394497232289255574683430924106677686657469581585878686881213041422943262835693075672188590739165240971777476554904201217079849138560306680197791913514834437335085429831366928944521584708227515369127173127193219702098709016373837855007474172229604806666459946238117224029698651144253416808574332414411396664087000605184812548900274732680097388797494305913821716431555404397590909203236480634499552898303196791929656616792082251259646158162214399876290563724892371280597034481714294453240385804672255457215878442772790235408728409305875227940134389245707545821242182143605960213563817491009593369605361903641708204984659784876201744460957646223863957032006413173996501033535253616302875538346343908589218533268689799573185919580457030129601491077934396061567539637677852738939828101373343087190279573458809410272045399147599958626425813774449452359574180636397148315476430924998025583722792429014437181672193035787593417656596484684877178413336217856868804360167361965445416532947354163834660103950924301931890638770659931516744615358415748115117208844738080050325340340297957131274197284432923621676495292811180356697163973117678020516285769296153782468084023052264645531717600793650424857687562145354172207614194065911383693533750012019043369387617319669839581349063154115798833945098619927986962610654220350208671716523088449847757169238086460551069637308456343752287631424087933022829808118158281541774551773060308596829446672781459018361820660644432078082870500605808395780567583064056114346756535517268744706215685075276345945309115186473989221864649339921823498652788826673026872349841895090578448474333049978065521350349765117287966700594720688279416937136019560425741636461169778604699312332931369421255207602436333652145012210820079675429208990301101750726834906902334650869761154649058507956937261504710698676314271092951728451926174462677810545465409071488117566430249216529397125359783649201864150200555319525249661720330326936292358448095459632755677582720736734800527538562128400371140312019814794486708375896248463269769976238073968354904365629057766203349033047101379634200400687038419907927290693375099960545958231930244547559898100147777919592082754821987259889224849564611812835626811463926839584553175890525708749099819625480602042596657119089565636989899859942482819011639525683215159184752079065500068161409964966581353774808739675559981184711012248431809726818935719405311980613309093368291178419727194833083946578993889505340627098404394588709413428710088416193526194548525543948486236571822256948070280433656441167312872068720624824677344380597577394737833786633774063187220178652753954676870744180774923971908895297270877268665376336978326580407513661333818839538272943856145994261295994303540378849730740100676799825557495115347298546716161390480808126863055109200304758317359549099437225362008855254465628165581412689413832723674781777015868900522399845110921691938393766975811844897537046202966661899065837661580291274786438955755579847935349239556162919324258881843051069360570756845034881119219147375812576440698452305835489216767009684201633889144298135340378468906882204592659808718430732883225691497032767527507093655647092370996281178092370455545266375849740656741791917712589094908934866351973644783818046827529037255085923788753791353560819584276634803648043985086728144524293856276121595530489604896118055473434233315433836693464477009465399108659318942901460792428233332145401820063239457868011078502706361613749688825150656895173457308337295430674663713493344229099978743922192894113350439683126285556432662514039887860320291587792188350144043805078568684268691358855675017506086502673746087095931018022020506224090254065274242704672285076247781734056335661941496154968679873243690708786483529916205925680038995920100854646316909794447918078516563969018682092716858565038543399636408575661463788570074746030734949929744788358616083525040190513122492809471318371089183193745626548394229180838064733555562513256188747773977114355010980400351737767964036924885385736081083060535856267534020817538215166161165759448999181816444690131582549211935839358859943306855910866720928549566847591075006867070459169346795466031671810451766164453512826164164505501209243080343424976663008981818843183504310542061177630250296427861593803519081060092457103282579209348302782682274097869121682334968495320333280240330087641422077851117552303252161958622622843546577151735264330876773792861531158127562678541716244280333990872417665569672952338340883254846371457298323944687929185642983111295465731805883624407788525251679686960096103653920190390575714460660209555711433465440426141743586022293307363535045197590077013030256695108688284712862165394308244865539319513505330653581936967311364664883288478464805194681924519034929386447682991207399286723781554875122760459173535745142134018317703887619930051000456221973956694601277460767497078218570104990776914658245586701003459977050862057738795950061678144351666161661963990980480116880009350101111330075908804608044967377412175650018201228287919398525495118165047796845176072611108296091431189763863077861313304701791253214723908627176631124713182646683811679182534968418354159785233362026189278939760854725598299908710012727104804406955405156019567181295914732756387834607023998246318786730614358492708388256903342221488692482767874409326988008449579619896755414817000924708360558861314510921571499771592236895435175853386354403620687620814083513576704148555234665171929270244076983845565478915635754786071100037803062506739251723842686864082879435813722612821913520733120657178410550059562449881314443032801743380832326882417282040849768755012147614332808994593014853399105877554462503748624003379022563847203864078427377298103345779865428368290841130593626504776713672955808634463969626033413387492356846555676531286877019765857722843311353061227216046456904534527059050381977029995158312646493891008921216089678988545470426031069646278559497948013956727451080735362142701684228282934526588299788449494707372612139675122466095611204326119358215347467300954500742108203648641222395394493467963672336907423240706540364002805554017077062910075517968972667197253261676460627631208451198922029177169466149666369077124345282100857774313956211271126027636289614962375743629765625206833229865880709118860519036216197471823869627029619733588240407754166312286744355084691548484695971133733198235820590431242314742535414477587467061574679741393048197076776461144363727122440352106706952574762819251411943717917303829668803301947544036519004976811577915483876706084250272710306055364148954820532606864343977487111595070567081520530143831237179395607370494711845234954784812440096149772474113978752086855655067334379070517558101101952391935058010160297369411658655505248571677888925007517304574952201679644716832473811113796435823683403626434351553504240949630092942560047877711455216729440183426597547226607948013998464302875810119263263607278104655069209062401904076033932870008250289419939061902343677277477877980045985245285326759458468120179102528317733292182451073566411512328884827336795098449891758666241457206947450136795439870216427108296676686130934106598739296999012138952690235789326218790127886649956836924664507055267031059371588517496493550645817142569691557554912188039925576117767401674169960572469258109238624018934030647356929238551747882247707599888489188618694292642042754307906575235152582377221283625582601812152710833555527110116909505384518811412227990060655177628994519868427165244709835412751812883755248650514466311480872443311022694908567489862813405343924429277423741514788018267030413726300923437624409760088802736266452699608468493415617947768365843840480466296696823130165917049180102035113130955606603328342418259749859718813391211249686367689047045376049505084418433161433797677685486710945163517503223239162399948817301729230138962358808605682222722468760235839881948055383382581111142095015691749688677166236113673763948986612496999750543191380723879574311228410792164619744958996491248244081453471307764835205712725446811731335109409785198381736709061534392547923980783771325471311718299243094507580202856678856583519174973451373086000722928878387853936389792304069693149328561354874618845965431869261699720930819375695993301152966783813140659250595357838850572881861038291370004502334419221443673699426103055746552677132042787321204504888352148559471009128614785154732794520650767235733247048046255704858345724538536516300164111596777077872459098949497891783542635554972404387749780471876004953096309578483752213396496420415170785136870537973115958382670046195566723311004867984962254347897099012961358601336594074234533306516340976181965421469460348509732688156226091588658674128155688747076608813910604548322761218775800609309959262755731387583959379308627014347713639118247346701510114692020783082016836881416748015527122628927648746716349760447914698476957804090659540794162566312574873330141938879869749096242153023345507149225060144916874338377096776029540749671096040645665709573007223780343606861727539910596961077845377256020758226996135555065894962703560010634638476672301364702824769891153387723551369493364087007142692936163400203811454381659309885925187344153472010090215980080581662698518397283522616304476160374480001182226973285855095442597681095509520134474648174186147528860853446372659383814216635645004260712393102134510527368457785572655313328138141422851620460918084837657879195285201694401648566999131518281405940526632784074243174456299800450623393003197969967345900806012494041748239222112726792884884433792543591837402369540006183727393424123725196806822463481756868389605633991508791368612393158583558960460415353956230165966924570999339506460477259145695434291261700993842661588162730739715358381157644666105492057903914935492836040444064898056018919408256408919421021198782488842691870745670163492983500400185377002041708908391244947963133279981973635562265963958875184299412608482537858209709090864161272869931489946858170090104341784619774223124162022161408495787541333488835903403596919513536694661654104583591381632721982526522658264863817363593566811391083424272328896762114049945665552877820759508256575156308872994272812022485597430623615367436756176836775929199857684714791713799937425797949014028727576929831935892317909645191346449009698897637228203932439082976910772914278202782778782451403497932646379698025946372436746967442986738941659330128168949932787465850171016335931593415482217822201090011612261486977002598553220220495113271664092625905187138411484611639767011729946149426198705025393603259004619639445464249647836305567509183724775358605602191560199096038724371547466661382425568929583291935204871054927910818015473208340420498797365760518500737854722098546762047605836754053838984037772839795327408402748727446149055389887832800485674567834121455627702975748752494621079174440104646182026980091375827295345119579496580674092273178321236050781597657870764972811406885409566638955708760867624111649096223873803220632150774482566153881573064760199391457544394243689544633259998161119798659619013613022503656078665234536747198929864988111029211039620224044618616481447448936435555380146534912391038391565021682219502584254481701970174658104805480813031441213701209178840044771366636991613529225566710831354384226717836560911089947636525537326660283169690499714498546327764332065961824081914961687678738497079013482955449762286321342334766086187016415162593308201389391186344585574972117804387721337977061156111372021621055780341069373822550770115583663808782468571879685282062752816739717514170928342879334689673064546658030622501923591246839581085174147194303182751872300230248072067005351025066564665176386111281880960784363299681798166098503960019342563190501866452539291710379708121218573628943473456850436395259006104926659459667487307293455231099479141018107063421786630229698533770145920202666930917742440424567625900460377185858507462644574295852054086345595286220170985283927955287475546736710355401321448762532139363363810153175834991509447428224231576096527464569583806057510792468355035207477875680455007900292524808287192009418015244780464920064117637933431637492777828406600301672548258400581119788341668244347754332798136256891008597988131706807776249753184062709341772879372704313062191612048471729512914314640568587245381647872781720459407494236495030799319462240053137859607295055567363961110637138711129655043663530970771489398413037350466359379060262234772981072055219061857910296619643247527329134857548196677350568163011905714976003119952221203692620166191202531378529435750143083728882080210079624412526157667111816928658313879588137214134982167275571759138978493516751779907205739174744295923417438833369232523137829355813910897454720702241829830651133777525680546475528833331864782191851625079726596506651529171825636740544884237073551168319587096957229016022133654970297212504774956677512294623333299405525211810623571389713787951828066500176242668600475649838689300399591376488238552751696141723063287615031849985692136732770144763184168992122207615905398135470148219925616179352246398454109102643612661615461010343240840642324028951653519067155612073516711067640815529818957946717916562947762786703098208270181146302422411255003778917710582622669714117985765939477329693595091763664932448334128014257932424071943298484335596520339835138498686517382588709418339584586651596337445442067173505818982403714127278781198270825149116491363046421663042651013776426536994553750006465518700770801698004969909450555233984165470794441172909522052849711186630495713004352613571958337771169649165665465712583156593863283583149386918700575170089865493661872603346157343239455061566877718247982145007454852290198695481927083720072702576881499502364128027034581067780038858782523910888421155395624206837420762824085507784183799839664419961376200044870564980275566298620900073115374919392220684923137891362692798855720313593845608684637554402243072143401875592961317606072866533320071611796465713341054897146182628486789807041781989573124817496915736036893559050191901624104554263270366653956093546754404307012880273344474973801814510370540967183719936260077479700582199031274637644509362250432788124051976149916444618335730946862058047239075416890737063126393528573313132112827357640210261128386235260788376555317840462999533668186438907488669467270395160528023853978409535938902344844003568150414347314419749459066979683312967328909979745082848163402637731698951361553034777356740955962344982424825792727533685146805999652932904547717237995161192762156754080627761085191762811685608170388587741472807757156547536895055943816781247606184648529697420339453024261614677573831376935763944125350303603380745244934999869412937757963581654771958381514574055751458198885174637173578972650471233005334367372700512850735663576207131400261819850196010519985044161358364800271591476033558026891586868382158729525604322089311959826210340568027803066496080699612032917441605549484879003724228168996561323647827509812394541128720979421868991550853288845593648574887647790565877692836888185656407438494556615680424892573938573641292409776451543239337661988848873698471199529207633967904955937933833131186325645879254325854690136709173435734094960418088470177812082485340991782562382101071110322784985425660167050696876340602538036264182364438927507624264744918285426535384148110729510662603384395635110494713571384653613710909727397724026862790614379393276424960205656734616305649461198342692472391636423482550845245515639411867155091011059781627178912066803641160468809340735833477702035938899353306542748288309792057893332091540920257628760735230341260669248309379324471829350675663187471113210810697934490673207468302364571806984592576140319131186034208451026971634493890282906508601351258927797377488897932151613830868143028396543344785361742864092420619329519484498163609952597134648174960799946214583392983167003528394177612438666876256188306804609204338773063646495638692564435922741620297374805407867083365567923162346657481327284075242841442153823104323203560342993687849158928100634918945979557154646095713839707311603732860788453826202011949490421727498585961155095359242936493870172997339130027643768266036550174016618889509928976383091338220155177273139723943491226400241688402079741410016086891972215366708302491033728765581380803503052273371803629901999421089769849792710758830972486703778685660710474194803375675277001713055517458522577548523265886156750975559069128003321259165323082959066732386570601873645057956324399862995965460257032089337793444263483449923641759492041169877458661767056237604466289122598382986106076066327144576584133268313400497628471080165709659739875935909626758502511188657556623844689984812036774632050532406443778358442816746531682269505043294052515083322153493923337850992434687558425934577788672881377207049246130798671121316750967941131512743513929375242421148282828992073855541392382203834659764872808643595504414745639469054297457497982682036642002328727875568333389626638077661563221039398642067506226810909260077461685012593567083166002615542751649637223307283693804948496975295518328527868796313197026143847493024719228161439256047836557876739082634220925029553017667521591919939489860109700379649196674336561373538760175204306426429316676791855696745119572260208546243416811010430029090677265955971028901882687260257529061121070955212075610150696149191300270254401943526877013569694087087634641830689075751432960748515122404172914647014216226098353379987792923118657952286070599990620204320777999005048029699364887007457628314785698667854785970373554785708942226158578168236404755251885766933803189494116625817096484885437351014336023847742111295384421812938364450876651006642494623308377248503908471153351242334983455364638100962923476636621247430734147749794194500799936411724939690128806715745834665404563899327765000983732715224638916848076936583777662234039509522261494279390188535166543203646550652730097180784663999444392983812805671580676046921339009192090498556993985077145198009900154137079286734162056832983451123542875559831658885838409105708121407602497226937303391718338067406580344304185891027544211683860652102850986220837415394967137907020924731094253241735556890102683579013874671139812762323381189652484371229760093472349044925528219448401571992585121010594195221235207119915560686827812134888959605173740469102217035799813323802156482346034506652956397317136789286560793056464573182286013951686618781098858206552188737215449725919675138817581002508283382117527081568070374685446341692182869738299179206749672859672979641646048027973443622823121944845337439743352956551077768136882264858885026999856697477942273142579221828062019459341144500762317261696875540087041197564542521413057914180544651464746582594150702161625126259479711248477794124004358680624130590654381549812038256339825114333782552517700302288054341047765648723152143143259540807911217114437543680420206109103134946259854160393311840202410734145247414354505409453683457940662587192833485597268223865069210543741325909178884593334297392981139418352376176175060268340978014220352877978640253932250961122216482780667706102182624284690724691788270612302889724384589379396905744294784373191766385525559336606591619752063159539659269900037513070881808824050232405497986311527418976241010322832099538978584241360324191423754104694066798122529257568624053579579745749118979477134845596921393850629058284628413836942727931142542706809333009414681279264726619209539397389547080687815213607453674615597378442897524818398237378589758022282402246913618904729160604311463287381205869514886105585621080021686107785775426840882356315282622926038121557218416630945218014488627073757426408936122584199655695528920214011097945026202434040522330461609733676762979995567304075366380656268840581895965416949577346690381574170442676612987745086130491775216667815791587614461124618067408426968773231300755026605367029968250841858866984092455487808509015646658735819044125387925154766722702646611835161068579576752858638313962004027684308010517895833797041874601967014273547115468778062245798521188986827495792812859093287108750340902010040548933402717407443855788762544566747508032262387725335949437146810627577361324929239392161471700093586449522398569953450709592352741864720421137115516494759042923666740190518147785201154286993266085922432436275955820940302395936150700930870732754957904646107458562706906643120743474349962592171188630947262642822649590765571360050712445532008609955673218379207498030335485037533599974916087561157001139142898692139122557351135909239949285236031879855598710247135983811058431318875135786462773030563539370222343089991063943499606784253538731217639887496890340187463145095668046578204702814727499273470160762962519993892150627841826408627533409992712189086318729191608510540169825532526009925021916367554452304980204651025725126938603125271028952052526417359730656509023742984822109945121010899890939854155160501929660559158724169279186798899596378350618195768140213883913480553075915888773861208001929767221514782856904516982208341058854939955384403919448511007172522698903089646153499963824217529186558276182064907501290438230966523799091621200457815706498888557303493922584342169849335969468839742775051937723870442205513323185391028421393793298374036657632536026587049212406146602340960717521622336374968942901606172915926450387335389966632602597047011559496134017076467825148291882735822331119341193718436363237614932146801615278221501223142675355011718609926080595225981904425728978842234314267999208116099866480392455211668067388636073429867741076555871588351361560701227440308700143982424447955827105451560627255606484553980872535866403130679212508467866034488284006361628634703111709558636452327802975405416183932538857425751186468437208959526280782841046007203431506810631629276836518123090295142503747684120042963245750742832291783218273264785848018530213028005643967184240806015392107742275406370062182837561678782018042969019418736966772767857468051724863337906342553618604739027224454206865876284762365442714122810220683559687159274896829324921270139516664754833099064318423431701814547110508499161066992676484797879193676375200650643223774147509279988925086160587315345912018154006384135381202895659834077567591353357530744046463059228954872894790065940814650997598742619733336631580163298002809800289657510365505798645897511213122999657628580087154628158126980495339252396275552018603667361459625257530157507984789428325255894894615168238152398868718362893768088581133064014039661369872692800530996983282899393836034127298029173290454286750891396622649091830018203908389014411689533124217360719889395121312738918030498357985141182705360765743627575941560507991330507788663205973904777575238756211333594453484089660119606674234887605400395862177050954846104555563979827829267908531279848888300652547515938225022967734765765287676266275882320762904497835245263334801928619681909230689256514936834825485960420355090688138139856663975952269539730916951623540736772073098961968603548380667428796375432976302246601208488159044776167336760502534159440409250235435395853006621444679259581504947014753652857191558227110611174219592196294290980454281230246446476334087270021972419008435976375031096654244663527182522373100000652925923880651781865876978203871081710314537324249839542076243562897860424596199870436622671727242728012513845119484716839251657019367373494361747485057741918104911941635539585398212123339726423774563925600243113729546136651051794334603038573132342009480590982758754700714923548601373164356865403289611725816450746432512116258763971513639818523074087021968920613634030329000130759946306530801487935825262517718916783692197874562499854083073414389233179993246595187580467616567696485051156776132002923126554698501547885076254745328834159147786587531811337920586552079329935204761446689375318722417291291926725186880191803538824702259667117723317604858249961387390108415452736040122511113576026382421606199535882962617101618940268224414540072427439243403347894007486371306107455319719439609509291202538926124207923576796744201976331626539333807612272546953923604468739092768802521261697738519654490315169853364436950396626954442896861394793312623182660193154542486413403648526264560167651445259930043916753047206679918548347891065819005090724815370407905995248903655252342415065199052276347796265380328332970629710483082042164024677430691686554311706995324031217123352314362111846381202055256552604996304190862981142159679547510740634203861624194048572314139889221674216372462369003316631897204839946481133614839054117636319885824452812872545444526550286007818431087805506999050869394256568452655218872540567422542650414993059826397604052591623771251988072690805364691661299688851725932185549649390214710320707139847444911239385620735889107173411731832417868463552937067422153372623983485377217139900137778323827544239065763123033533068276297192732480941825892953275362719568084554085792881339222883567428547834244375670115152859500723755972776473072535065672293213978590138186975359668009429087580132322379745855618806755364479835537045901016672988645120959282860973306027356133637146468215434174794756821286317147208269133145682602642663632846837189448716230866141450477770875847130359247462889541516738279957861889127079273902613026095805409481654486707865415798757854847189617011635285492074003889004150600440386050033443298734632163030729351919199791109757919711766643734982295299792839896297728936444196762010495166064914708345963915556797441310430898064480219359513569012954265901500482537768086879591549365574642020107276939430226422428116268371969484230404508883446312590637926846746921453415695921805246670560955822090614655799238705256963589760537488790281253627937614236431497792092351932497205785702905085904760120601813880624028165161897033978816297510097372081772514643106769563321397009246702201853021694361136919067618562778301295792451748520124398054651308060514339669358484659939720993775099359683792876451088763480256768129229177220454118244103331417192668886852822715460971349241399790977722398624634304661371160839492542893373271773584505780338631317634049840780315707947108451580343782267486819698646854692745527368797494561812052665380310145932789163031875947509855977051572926803672875691358358464862925749499625653671188072115075044083721079243885953825965866578828824977117167047347408144678339533621216244710722668186283739652185428930181277871807463483429230679241970331933695237463233326870789765088584675359596759810896829380891304562735750828848959581178671046551927178793630510241078035806114606354572577578421898825395090795751504315152976827123223283457905987813763118963948053518191714973335576838148328739692165381626324494812221825334011261404772594181256595381811034533691747474451781159068443931070948867933587881388784737455684966036438326240746178590751694132699947123813052696519699269819303635369530646721340257708408684802814054335161070876089022243060322973353497205537818438256580470544653573286221134217761933523487067078614660836927224164015871101829654390235121293212875337227861018837606348507570453967663805859426184720363768000655776481990016857057897311220093833713273098504660851460641057171040481601473871323014556244890872293246948714177710659455998114355116349657450228309323709444404175325066749879298049981880228278122259100428935352765217299002650518462448176596091088981760389559117167813131740240635941150303312337275699431430264519637144905843918507351749999792911359673340062527726883993143948811044444492753339928173558635595107376265767716141749270778031701628841640878042237710101233263253388249031252964420330228079384184437978547290333844490557591150965145395788095077055950510565508756223240611566542456548167238714450561394246610861227307744512524403508695309370039679571540865399893125536454572611024810476460390504764369340788679927945043901899610336953252409757707116039598961635396101849020878152417990075246370501930738564105182452643577331466511613956220580950205816688912590867527347348178964178291099138409515560774848243135718167007205715164798290594982196853934308012725726410889967043247131166672160039907768746327427264767196067999428437189294877373446743919703834933385331086633219285631548508713144317214272028280412842110941006116047143915237907551933740417635113202525194196001619140291809992851741325057671537404437772815101838243127914092271640092019029812314757862617552479891082624409391110699220508417488766809314778002602247557224773890052480655944396672812289370378472738740193900195210527251853180365573274116918361112962477757529926473323833269788914281685768915898179794908389684843762584265096586284863948425067668497489171198231688839062734063605946741807836613055173271529594363645426671458857365572076837672168504605706304035048968179824644269474880395797339436158446124276842015652650953730244433243184239587636487264432228733363639557243824006861876799658777114203565323069522713676578884546799423549260654137254023747954271294403935161587661955617773145157248067720000043966181989707563673279669954802079322971934150746630548619544531811267019181765211475525726280905083724948209197472680347589604900222627827660816510238501299765621277483154045369719110158656612526989270803659316130606000022435551391285693101769923187732554612385070382369599111984686296435556079737842550306221897879908198684985652398419237363953498742479042841611750576766413566983034037880055593810142552379498144711591996243898827704403078351059520491602786807401261905191432063566518589986601930297075802208983530864308019195920561455408335439435158910860686142561626605164948924019137781801092035248548844797688946916465245259794686734776904713622276734151447866241714253950216618946616122628318809867912226957708906906164346962562798312434825084167429352361433669609739386373220572824745908506316608410496213270563775235616282003813820253949592045376763269879198870099467261017632862261645080557954173788811176629318257944433194026950725137827801874739772076037981450754789017593176428130302881907481182307546207781447012746234035698377389995606104488456079952445832561054725866339309528952103358844361113053368503892582828538398076287319831538191032885928802893255948034188849249728244070228359230646167767833872302108074274829343146675189114183727568109953318462393899925814259329780996003378514416429382423562968897171874853896468332551184005256176422906171223053042601698379772136530491693318646424576646021033966931484282289465999461796641904868255514819420324408112507853802293815160373242215057240501666219479343799188152091810637346647191276736723327248450009966107450469467329978298797352575341183029028549593569376534665735862441097423091148245598908978940812561852420013164755369718004687278604137662412648100498402004786583001263463873473088398281416248061494385167752091767886056897287122472295615403694113317981658928007798398276402337309130485706657705086515269043614093880697795905971495233134602330322044404234219195349293837257180497004637489044312915119126666892278994213034902057328414374502127479964920017425617613388301808773643416218830491133598318693388381007118907954495357573306260974572385161172159841546119430505136462418577386433571980004457932312741249576164837541134840547094955106588215252455700983441984968389092112270844906463072212854392067292692272084181740934113758607285070006658757050015347003505721709375718083844632032625902103656453257273819416755951992548436004888825561024441625078234112083444371591194461768371783643537740273495528213175665306087132678525707030595008742952493084732940458102714974623680908545150168650743897261766673061395244803044124026192724583315685254682267771925134453908638771272785595618059242429960802570094724898159272589720122071415237443169588722862172103093617873847990280742394662760852118586747970907927796035953723391322042393921624494363704457471347272689664901041729138272773061661059397661444556644347936420391651618761842256747243219050572465952595067757103924996200990692487565824230102973287693562946445056130632945771862924674897443597705693592532903978838911988335163014316580278604967645288764219342765945385865047274846901369254326976092038649850423342653261417731634182397792064104924939082605863439865605389801148703640511397143599653670814098468666350904468324474322234667390191661035296583484264254342169500846350840223893973276731857702290234341204308914476526545932686659664178177062366267861055049614854178536325505375164156972187726684822043808866998198007391070575698999650709357718546826590699719959076373806470633702242685279687396448758970609189112301536615548780730961325353505946761417090071509086787437403660674695991471709530901884634049868106603913855519631632696065006366260693692930035508127603370630964179585240044617826347874966580204786585086810027950053977613932943920528529851136073483117804954255852079923661931205163431275611798070749978585287748275362492679162553473545492040566485092393482383732969575509353046766816390381323642850680014633147245463801584024316921210257054951351907943039450925971101625864806162339339955399542061204602984388886450374576749478872279226623910020266896522167526110023331453896945029657507054796695471773075016086965228254421082521526995110812336165901049455687733873198097528944252783793212342405441236277295922021423277115270237764743046243485125411431528392731526695034685677896204343058686792561012847852483481008246752550081196161374969917774146017382408077195196487178015195052152802428463839351039773853534749912203139238010723478816406276372708738542266544385131018740433581830233890899516337096739755868432210073673544923969884892816312145432460285583673168114395273585291455203040161900245323229045832695354405828599027226256268260778524038101615342441861683453830470849438344071799819423950231841971358081952851901598267142536074592989318895780294568642668521835011626226621331956133363113986607629022851262951327868372356477190755958144789901195440509826447715016988807200877749538501391602690154694726122830854456254196685198738799329985034387229856994413489224289717685338802615471958592249479489956472928815842634869297785647563699457295523754560387219496253930368727109000090857528476447640713683432481654951974497974832183002182746547003435639320547413507200196024816861527813592774216295190055019842526325347359348052976998754997087176247722042593003406356592278567387443251885428674967017500643597332999581826838975434118404111202156320512735573419795883842806708305906006547248873062923992694922744419776799893050435739383220206706559982471279582518896296296861192050429936154127289003706736388385657060108079385476939906048549348625983423718842574193374267826553254512730358224700020722664006600808255722871105543712496973829428590367662322865915641718207455433426827374048687309850908865130561786500990365239197691949992009997706451143281632252459632486304508184238995802669912753575226665883193515919409877902813772391200793599287197650415848267075080539232184070716770284983995421685280391586805282637631629566285916641786816646043249037025519470540670659101890195821090637856278901599171104288330029167683154184753643461708115844689860559047808950736569703387683147608360501774956625400288130011118697129907069137543119567073281427371777684844792163960208768848712255217675162816637741110343267814429664508447186222135985573574663124400447754028803972182138365476853856674046198334999561141118869119356074939509199753206283451708244761855537452994495751295380322960853917659624657221506653148639404179464758065531259140565097756660438086875837199726058264007470798679187161254057915345671835420068160605225873122935816451496119881594550235368491579877643796787634768717203123124313344067665792918651851146603987356558815510953120756572321240715859805652495977203695708671429338408395423799748715094297322233453130963474088047224162231029903150118611530599104946440569694699054050118414450015091963756752788331126971190702986651865666818461456397696648550179475796859325771486708621769094696970699353690391401602023763661861400484089541595519292479712081880307172907994730676116182546034383051483544958542222052371559010016123589592749326918052460194252713301599107858194372417503186963393993744200566269011810962035030818597360334605599314217610460186875923185555038901036645723711462345537640448793384180216659766294876135929359151221134303886409956564539151006030909641371333012080254085633627961948919696085074120462327781887325472786494894982986451379635073374284462334792025910096024693597739400945694826815013681963522511427420286771454003380802799023322872174798253547642897790183546298325681134309964560181140354881566290061116257111794353195089262323419768473820816848468506133688825354380735800888119913477608657844542885518869793802212745703679212996068740534108779835662075556671870915849996255840985588138928182494108457937288792423346894217953889910939266465574525287971217447756695948952089738145143640064123724297452107929392413386298708093519185432150134566772854126221019099693132518528452461933859305979371743689240120543823862967084107873100787061205802311059032783703538204117981975761675517328977920306874620119263972737752723440272996542235807139113019350094752250971907834655950535465756456512100403418380124788870960773037781250307987111447543872235933583424513349782470641606207868222485538061445586499088691196888411230620336462506455636241590630948416856445924209454671122526947272955878913391096240426918183834376646455199965935282905775988316304860246712138503739519997070917179894432479480662721614303742764644286342782713873012552871594928091103880643616551759551484217538992006775338404521627337766724532547974429170652532645338610545964068994306753243149620641933385940173750411843177999259721345078545345606709345761351375438280136373608539339911483684043695914126028454679925048702424766026726421763605876642093527205346043158834539864750339971632004625119769265695846000586688588192226612523108804751574006896051006209941503301836698050961174721157654451624993157466732751706602615163792210126305982993289609909943449442608962148750582617638774157884832556087484281941082676009122497830745277688461041319594982133712329680130384876257851115806739998395115203368595385759130047044219601834374076512717514419004013685229807313356421044980207545366593028716230168853175696016380038164551845188266129360164640978858917584116592125730715537567093274751457553762232987300100079088128872241302965851848682453781995941508776265879659075675129338911846939685702992902667459283306625196762074378722643148506592759142843728902239523539811706462765894347752009686148002100540985217665234811572089098189955542738453033597463068388609988149094575747174175863882836972538984211500070455689334699355287655562233026383357275709047068093451508247611319621660767137979315071683114132763390777306919016545452708689691264526124307325902206552493934858582970037968163953675258231051270144896764338693898947467825141894691190494908967005464938423314447713160564233259247367998362042690974607193319220922715093585587659934828202508799936496316598342842416889743763129383590224155431266575054295955004549193686249985456719614363119938054376423288037619347173376404585795124412461884518050842212110867681042584870510654529069824735441080197176187910989246933810281967469866574774503880175391317417041214078548186590311021425036808394512898425749550244919578307049878236450534915044652346260888725414304765195303835352267674618516216976562448798972478998688736215155646255557080509101896204400761166052373724442756475948634757356560672029135689666152479347747819112948001729518308763877029189753495816279575876917103652199621014599083761617562253128666647733994848643152421234022359995043851218156354328596954956138547784902752797559049183506807555473535625775510651370384881542399937379233326638464857914928666092288262498334996740413020610368058359876183180387214077194398665277491738824248048024989879896266451203301986781485220164002775296294069220422643862158215890240966221084083965068042042850364736761505453296546453416082292658812188945757369477755918208178804147832994753902002381544275036518986513548683227387178829800160342925625547760199749617945498549244719983699802556545555158469876187685519505594843181796796324685248627852447140114440321739250990006139218669264799088120945133027668820657357391097522958192234459511255591176376961930580780956649305025387880489378957153763089477727592031210644446935656057232753945204272604923742004419941239921851728077396776166497462033910700589569543449097153355713625226365787220937848272657792601429087401459066393641306136909947642659729442954530111919845119785660811440774113340430853553090154764523199036374995945018650248215925778237832566210453091163671705574033470289131284804608827176342267478378210268551583437414975791136909248185202787671448361644477232247714263386387144943596690464200969363880054880267649066998415124325898664481925453068104968333176380371570351584681397843663012231486788385125242630917563887522741891824564383847477833351454847808192217009331391924786492166678025258805801350450919512532572946584782470476560498878694617835182312394410712364724307780714478094939586923029071883829591951078655039014206311190198018527434238792322817976815284945184244777025323473070688539130311412547015445607141047646695426236961843263452166892930259467793210209967787208047042004233449073927315859532216348891995937574562128144611480971080933332874791390788029023329644095488789645648005036445721962165485013359586852117401801739434271030326597130042873811492972886394609833421012731810839852292951978272099930286298560781546452390550533939769249894971273285536172659969800759068631675262927030320231758918702868452052319357973104781666258893955874370340906464279613340908668009529901780393800744558520108352876981380021251512414158847829916494953326984610451306305693019445716973941085584790935516531646679244467957922301720550133967152953577190352096504548704294751428394129711389033490944329805759337072479782866332366750879875101958958102020126362465044911292879853321209230064548002244054388279523114708165517225311060515533037966363336808743368757126619132304263183261064865251517319837122707897751849711154477433128433884774700464267546845271800310278670722715135807401395012809579314412476538341914209340773736726349467697533180676499929500727000795316710587351243417346079535307257227892678218660395012518653532299306447761370323405538022697658710208576206340909268473519458049794885916129278485820593019233508432693523117536856217616095801713107564423825859267903380664813547535625970205382162308621762981097559929188598592665467860285047535553395441152644994538852316914849334983203791962450969348023990702862028457897473064260072829772324870184767038187067900474051644210611647187691105454922604227852487266675549881923436102052170830451839820281925617905045839229374277704287539621769150469287723038852405776444027903899211571845865618081544460476206372651798366787401613927267384190978050134310940535421982063439748298305090016587987145920924580055510190896754274080262133192669339302801519728378641503139704882905480286561190848237767255363058219604635053105889175043028133050637882736347180673693299040798933535626946787342406877748854816622161573218718411840299049788480810475531130591728460421549428683240269877807006945505852444617637927922895541972696862042667625720082216132556327220382101858850677942289305039788640069269404570876291992893271353479138303849282278343322695584636178208904767132858999578523274928320715758869360443070797194116611777902770307324554114184254284008216299625314956660265673254105532737079681510034573689500096619861961463024996705600493078231071647003415619084728402655700136201202579787743549818417413709431742529417562177982426486730552611364706268265210147047066545812292934084453336644106600029230675703163614541709094905154646072805635098986146736263880625462876531907505351169010198661266534931532457454580403233533459748564637905360219834833730075633624710263251019310850310684952076956168930644276948323837524916996605213388965072288887778706905398231778929836533600818504269674055822000850356775756033569618413662247760862420905321670018518828201408397323481066065679534336831798058762274940217731550710697087388794305495751584329678716834782759852761252833654474378759448484069300537496714266966462176093494889553701226275514405036480150242472958836174466403437092724566796800509120896855256936169717824525246258874017675948486797648375411310696730379423075263194369504160568143911901884797117250640818872255725875682969323724557561608167751601663101702939614477311618315385077488687748528262521416686040266938738836857284855042191603272146268324118981104442918085725860248823818729817875205349565491777414993606712463175930563829596043891448782468262917624923368827797268752754609289311259401931950505262056571671005924177626155509949014236000252155267892669904833574296629195244918804944409202130564391723681921869665202189015508344745637490178433893849427279173597117722372368669088898609922667122933037982729089341905983282597995734084571805159665274342325595367824801778697015762349022162551481769584340439002162388549442870329111819263104297417769601623943483826176036646041910818115759515883807616482338376668561322257615628660949333639959215658005122380908740108216753238546971018899243466401262629092428564492745752914654715391981944360885171498586651119469099190460078663406020167724037913414517723964347344567490669497152576788027233901620920822833067555527896471479493237717559306220300003336877618485194219169502621207548151168521205632156572211551773766010960706069099192725778353012578007385010850938808700059402190079137555028474631769119571768826639631593736111695515866303859743470292927729684305550051354869342216851893205291546034958101086551471712773569270865231503701714203590590147603101246159380325913714528621433792094553982040864801499167869716725270632266114524744836749897745484786583078183661587772819259936178872941511017981289733809402217958727450275907774440135210980701972449764007255435990200161406493877794285886721384209803702446217560670876063804544842368601690080422510012342893492099926757881906421243969252504876496043230919191479765049508935496850475653431983167174299674070181351505581629146794547168331425765830355042879744584740014601894302576582564190382849183932438251574112675838855364475982278672356585347122529748924507394768140218453525439851231832576224290561603864928499062070196464223338994282818155861089791789324598083308479399525795927438293072844088369092225766158693857750354283304140133785295136637177912352827883260507084877569040350616597544875463244165133975680113016928505735370968216347355707734322231634217662519899168967054441431196159809335906893043316340418515127455553689528426182155163010012001934734636228020973744224066266793160164877879101566334709428266593489808751372735092800722439614019316197694444833308032879537282224294622658936110914120876757169281599457342062930966355876549140569721519651582068076504504206639493894048843970412335145758492274177186673057967731826172513594123990323065594205957453631664097060757892296117341815645145490921943021311183904530788771334385445718264193515676531436885532011713650014371711183956444354950688567833752817446120927141171542191111090230603411643179407963367477391126307802802898780374094270747203039822092916360992077860850934646497777660092458233009203013054981029626335718390563560497374426236718773895853877502964225223088465188022399593604652319679190272480251940725208212480094590812269776312263908999283891282121278976462427967193965629125257140775547062318074420789577325370814248673230439689081440773936861199497092657953797430973836093446137851045734518048035689492453069777646003388605279534463236538099416718758470604011502993265223260895448903133515068667725339732426066373443795147147453903321340787229678125130651455160122602355917414259106183984145457969608840968768948904820157924208830566935964436777288109251829715595930871593840475852173545038616786952479731277671386905826584791168092406377715710454019595610116740259139803917595475829748401793208558085725407719209071090859835466760136892317367120967386955570489180683479496698026736548252381188188551214125606784166527773660331742757792019842273985506848952426925543661669030765597587711164796464363259647324073842419060840198582446583791079476232176428824213145932160816399086864277236592996522224680498356564456287949969095833456072126328582322398551307342597606222698625902823990914522568870341630500251826319906969959221825121559019416967616615608826175809447654574327588435362754948616806141692137589522104967028281040450095284629787745741342786155993270613658566485593943453788059471895502566812745826087898178330809885271235434966540546136627834980650467689100316691146060001020710739629063591912824972619076014195248165147222089475032021391783064860755947292830982180262650837427619124480723893069803765940815228450137969449930641692873094152952054641835053448055739540233746311739689710348300802665201065288628112347238851195125526266047142460386814396519228511494358120961323749462478525315904394833467800229518125672080620301073447342319598937385678859942890832461494638389589075368734507178454570443627800631289380254855675971262681246498666468162991705352727942094125293337701336990325531240796923623772964332146051187435544837290239180755348745034133753195991337365697351811440240480311872937989780448396794012533861040860696456319648389120086991050964785950332784230752051381586270140613154291564416162368054842800325435196569514221814152915317307424966998855347480812502603124168030802271996386798947377889316002781535569151139691527100325129448331452033245409476149794025034142553827570300389311162374971463548521529482002574136568122760175280490431824575428989000622580772070316217265577511136083896366501197410805156156426917849478224865720985736506529291019360642708191412808958229727431594461412544498824844587481927068402413056007471467568569845721999397522338965137088542001847875356164993972619955355528159204678783402190320019455467680712500601297104923778464675828917680791724899023909393972140307487028829367564696181899398460742127886474990019495373497979701263220440019447758925781329615556855930141040791448041199961542802819961250083255179732091726796000664659667862738855863946790824524634636086938384110491229416673502035962844457884216927462943739502076078247621027508382821001007319211194526282974174418750513769722568594196268065273054933873087260738154415372197140068355962817805453813207128608743171347555565042352182493302232545419514985244701598864855131454820888828001319073476254835401673879316582079217949504257747218188218531127121592678016191924967670428339482496892252500813318926753667034092749056344144624472050030383044552861987854271252351848006484558865470634007121667476595690595579797783020815158146683845729725215383970658085504603116240790341867880778886851594199754889178608010245587976980846167467897515163269276282343793654003500759455077120787006697719743628845347929127982900689782372302477516070137603377487846786983506744442380492677232964974451753117602797621567762512287822857339574914692183050047231558824300464636385513106277635483852005054404768066416764304712768205249272025618336169611092048151181303740098050819098072871205092509975538483159654373879475555011316584306984957794128055940832013943484171902506604568178734617552009729373526628152228367058589373541652295859529084727245056714921327718428492720320556165249510010388148611085563368166520160926281040461732506324693387240823949710608841485108467691054859782102428820540302216819677883405975718228923969309753177653892338241742802533961290348103864988060886609915512793047860274462315998545092784739826565559654429092066823939224557298625177213592406109093954486757210861305782252664364437089538884075637127425113734876251014836506638349848038787757797865328619170582014058204230609658277652890497678412905911395446049038513670594750643814214769936268454898208906640245003917595510813626217167981285303576839134295460164090214554905945678165069445412839702928394927644275262468217088127423126274996037572647373729049487460393677331262095292050921684280352409219913914581733892608033275992061131290977209527486417359141183977509386846459174726592153877693763932499750146039189533259702389263181499146620150264814810996471269371837505456902572783526536910229079424689752058656142472743436006132175292724742719725594885543056009699016742550906433059542817295273300338450611921049740047048456273381972738858345825111146940134393571340957257096718011686786605089791753635892810219623183206556208183891734896338134476817911642112934193980979355276844286163761127648861924922531588689533609213878973126020583924743163015723668610319890397386503456333039623379901275497171195507800992364300363770933492632594780898145093196268086315094156062152859944203347569428672438239677837021776951114549242725923961991784543889786229763304404599490385438510553708660738656452427075318701333166489653680033970813115722772349783098722232614754869989554943757058429505597781178062998617180287219023621523590326863734236530755453017867850276956824564088154712934807620147263260896523498125699943669453382575245392976519273142459399567471112086505123966607352822545342935394506132426467129025712024430879244872514555630276726483952230742598041637316005194397156794722082998767752027974223754279017031911458520140932593850491005126676452931080943906321358559924648224924967644193465834597970506737496948458408453279638398235234616399055678815054970917289205722607376549847552294567597717534682731313242902733484462603668228531646797576613724466213378288390480376029734805627760787270597186534142977885881546602793551582252949441415304115134033018134157197199659855097112935793634271789170747958383858510370396704868386369637107965516117424710391375171991686214735326501314342137427111003827396197779038285838699113525398713947555506065568929498209773738516589946790374683410101935934821060350908795670712897283733079477041344004477144266210777123027758584163857875048293796445295187252672825114841776857810788735386877927835068341788551163920794659287942627426348161380337318979769859780931028711887769231031321667059894934329978149023369199482050730270167138814746680706700204339576716856938451570688916526986489499107745857324124252931005037590604411069793753160750626996967578035476305365957196659195193734690857874358683826586946214091727184688015562473602618461017073505989272153180369020734003771519361660456664924171581922275066889880494558032143947095295629153399641163207010687997442614936874102600381469888843591994076504425366267800730454814366244224267447169798689011611192573228407463644874776002999742566343035772140078287694548171286776628674518986562247776100388246404142542799950827149332516573512381618723023076520192371192600492692168985352848680249197236513740551206701627469588419298668575152251880287652610330935124444218484311718277149111025882676709021966229401619830101088757601559712911716968887801685882908141060622375710759353756025730394808967134948068567685460832490150543544972366966302159913595923123501274360635642136998369907965852017252829408730938811127996039837214193846083768416348247309706077241789905010150570837663096961237057396146033798420801491939308438865400770324752718236203698859294940221824320934285583812322425781729719296891215990192989085909957116556673195082838683838186531511116463985182409223043958973693806207239105032052646583246336367929128303861462898236777302071193361418964273248446659096102707015324578558757232934612091460757938813027130777106218652391776582924192375039224886851504642512183325822112611337961337913347830177378839361346716257667573034491327951050141766945496594072244735560310135099064760481466680105752787036033038344524776394653247852147219491561066592663740883871533697049002926511723063787265180126887084828823291088267609217755946925777058446853033482933105079477239781493249847987307917028860160846717969092864124083594426557705690642547252332027734363152263543605861003126180681403768974613835193257858912969882544137874427425366337922014828029103361896061719164198323083981568732186211298815958576276919650249926324821458096246926081493325080893339139431836705359464083566313206388709219398490546544546520743033143542582048265295655071555009441039501502730028761798550784499262646902191102126852117527445272257423858092506354864517475175627683700288769095156027108156908535115127007086485920222373173532208935909634376859485427764999170772493285375593533743008567636252177158825351093809796336103040179809738810171239885429075702207122079359539228948375460011022015831346052636912477898929831254968280426285928351569989162372172821521086439509008214728924484847145724404456929368846164804604615675013863942731314384589871569524338055834337099170948079813479727632519516731899001443688362215244231651537202191730835677673443272770642557935350749510362285645043225199310835862909257377643035494980196802208226052952652824764210856019102298137116437734342731647604158032177741658736686151087703698963662949920203850264881103421305447563621461905098768010879011869954148808503422395554536440151418667092998843934865368083600127086829814517384959919794904606540739075276363793906027718933264974780034604803375914212881662831827365851909771781847885951584957068041552334033769827871349072599836231578325119647972459030307116820675131271005266037316887847839175693671137368307560883910691212630960465922826715910475388620812098922158511396107556865121915393291565432677452049935680075454345718441912474422181517395869658977163814514623088414461278546260203592180439288279757228421557419865265589659343576611788740302879318017095677716138004599749758824656777144147410159185368662453147927734854018763345645613154115654172716490967202209234750522779806391674763595787151376817168407244173767161391890874284715222158624726868516511564966645591891312777556996865104951735207750629822614649016347756723329705173463442174839170557055591642496049219290559422338701799430675816742211837105681795104833223899795195842977469286261335386030894930214817391022893493150863864687317515023118369926707307713504454066914549146384394498848794832437068628576385255325902211400400664432707406617579185463273534022631352506438288999683293222443258305183731619765923577557213703701081529102898590825901878075924072100097670375569658517029106031343377289274303109682431669011410865452111681229272445746803437632303504674786883029010930755349037212035040854688088411781322472788555865271202647593187674921388645247191893429478684920050658114432635206583959157631112752306497226745596738656726647340713227880148278238062783210966233123850693016602444217715386496054664643853636133459326698617949617139448803494129366453088402914930283588585726808936565002944254530400909973231501462400767224007512938044426569900987084245856002015455607427024476508480371272057871777279647782479015085463661835870327512028891168812019698090996722260159495961264598559162428726095237311874764725421389929962507085589073162045631057989416400852759121764579277499632151924690248286697818786449859956725358768943758341385591899534854416237870518799796966906403300838193713082998474395022568565774632028253559426382746904540052352003957862605846227301401708848045417402419533742087054503603606022482801493117849497151603713842584170341830775406639076856779340563973496373038457471020928950410877445443897480989576729303152640060899259308588327848462243272887815315571728422755076432307054539606273440545123120781855703093543508041477840296016032534992544473200633112805808020085526841755323664347497335625974773873186324901445538832402147981326690792868182671387774963913738716025658197702315591632541812212226713943912195769633202732795622262794301664761851172273722426968803988377530439180234749903846018703588211675905305300328168173404157843068272330252207402959358912809882033746380974579624137594461357748280754979118596826219244599508904694224324910273975086843985721126392103368787691771937373884767064423379919398858597889988239961808496932090957480785849927503187952736404273006411203231047411603999975259545155065134990886217900121386949057689599217552494378327156430548499241211700530435427785823481605463240731253872598413857387654106186552610743186699325100729300684478077172475618575289971196485787966148361619303123152238458121303642895800192493678955532021087780220799153184114881338940210064995155108155324524897243959779632912480495586999813962230209019679345358877935991488941805238062954253494641300573877332081958235222634104992027629118092241480363502067060766401974787180509398486410260950286599423071420985275407476657067634023933339704338463532064121162938164554843832222591163157906583525140712906048869123280866644765041441808435422776013358487806028379532984336837695926237303252845294162532407883769424318987494082659573689524470214891122808177962313832463479620366691079514171624869057741247431470364932463672760797344749208066095216665661180050122086677211212080335364064979249611758148893606305368781205634290658597466807351295957812681147192036418692727303073577622028274987906811047267731364746552981665673356076494152142904873426534466456061777114067159038759360191033566517653755297110750543296646256193912357468348112513794843043638706713006438165955601712447605742789317878287893111117302003293825200400136209523823229368663579855908634394529336842835577957463955981175608728733429114721517710098371230699559293482701646690158440444560602692175409483279214274207888710920471122728973490292943969275452470715417024971652663159267367100360439518379327108284176805840017450794973178189373860210992548679885215628645681443361970158267199532874914153374068336657510109126863928944564639669742490685680355927277728403797614978328346105093081704963618571121012876225264649938335105699290299227807266476023783780271949802663612232828755851023113391138226813488081293400736253612327034127622202746922199348893282450164515573165844884889644231865614164264524771997490066706837931562708925323031024163810633932776435588966289828270253054486727524310607253164337800133052194155728133373231181896067102073034882021054866136721434611686693441993077784364736918712509357496851393914778912541338237567973252689195643087755657953602928087885434079782522733774109394331051803139154913641188250665075369914221545790205961149400531465477148555406139680393424900446663748862709092069393046787903695400680097867573912738400684904216888361275330722073863183597456401383083176881096679630344304962503055966483294647164505124260366220339338303382780108048740263858707239256650989720606091758842794575610770063901704137698950208127404046018990018863953463102001900912085869710974249795408089823703679765925022742493941111720172104213128500276823183903610571279220545450182090115708546840912845069563068977320241589679130212012336693031509091034929658034138461596598929705669754209062943730905335687835091625199190723141555968889054643832142404738705627381132230955164212042960676490238460816913020400714366774088981031125087616259445103084236043496562282735780767952716363554604161029453670570310317860911629480012384857529973562975204893355499965048709443015985422187521401773173999484671229745832720156104315861313191746945045732794036753109882115667153965119092943752839657570814385010689178819349682390047699762115875821928257078798494665889974278092015165386454394991058790662598827322213637926115851638897159392976342830370377029318760611483667073332744607689072155303051723478109168993725147244456211531892512842649665640051097210814573194163722418208683574325891312198916931714636916893331974522577542887490214668149307565061953215943869806576851407632682049535575814816644615322151746694075800401031963321656633119450399510144019252133909995914520536530999829229590621994761825104593266361206609346789633659930821325471363954889361306191023272426445680177774815582111291668777810310445761382054358469882085286573165733544724138769163190366517036434517282927064822616107825567606462168875359189707971201409746592812696689468613691614529172173228508378534268896186838447013915675933876861526152765201462229667776496424146684323738297588482885413088441509318659734256045184936311056925009343192545903075265272976073414871361380455430586457554213889064823679684639233625684340309744387990256657111329247745183799400102617738988470777374050945025970565225089428507009596678579871529582614696082902838509537243322128778076782758693098081467709422569848989527874430920217419858690480165882455993062965666908891847536256959396700323078017469844755570442061455621757958596296072306061683861455583112481099944120990969558596987421091341403091062230074175579621294602293441731312743351571146300730417407382506815214653484894073640674247115614612214715753983677503107558950937791836470210189596981112416886945454283263156905838229265107491491379609211732115874340145468449673983599723986229992256727060152145616849542498147918400354743499083812543681486076157111033365684446660699384136752519694215192474865063006004592242863036031972774607145574081799801226266120494698654697672726196883279358788575176559668027435964515708960226683548233007255063364190144255769634644510031462429316504331801867833367183268352231453674923460989347353394952323079946887430994266868051144353181610288560748289551121553982249995924410524278250249342282359780542066675438931169948422958375292299103767515392398732309917154474705514333746606339252355870628921897329153583007586905699447072702945158650156337662914604973622529855513267221914283253855904627409252035791750335252573057317662094975003788104165856284743531571131087069883732693464370230217449303447365198584583166616419894931085161035588315895208675843819841044969007662343932568826406141338352991276489497043541369139196699033907840071959006722349915033220903224636245173474675089735964248617166261616755647119808827518122219728131254417003889912125086776070809293294323925507225762720231851362667968929587379276833874859400857588843005318519613104185768569396076833355125704388788187917185409632825407766935828231166715926910567881735262152845075846471373721604263078636544838755488733397340498707555575156359414888407999122376747665796147714023071613313502225829275139974819616433808699571315769118827767482308020777065004973329778089223828871787484544157900731921457757806163831272163100571762072555078456143362854531542917700297879141247844733514240317256723779102972889050039136423485018220078117089342504910728866531689045212070081402985515574806680145376503626043669165007961258017455568453331384273600977571244372438079387711728908008389029403766723678264544899692567165190810723217936011255092746974670001995062976641781099617372842171626844140582051484304531008497596456359605094214323273129155480582998538204903337094922868197183005533669050758212039783537781778317637651231048178113447236578209937867963480321459624972873476377633258678474669960779406498519951012442492234397949623397837375573101150173517145116272028888133167060794547023623927940755669314287399369051671010328780432314231896264153006837060087934813373859948686748600181730314150397027625301709643181711613887348384164405635146194243484889239649642878995985117936757739086581298765202748451631313072589006294086521475717381472303255866804091861141103120826703633459064345375330060010019740510648189048826282384730419378308861656930085072605237015087729920460571493824975573379950341169385822567820076809539882658793671949522349090230002454166909054033737519173876707234467744221918108482002157526006660716837179471275394421384009887706335020309229790791015368143266376866094122147252918039454903013435867978407099225401820975322004285419575457575116306322722422369992604467321857118240422090568264496723415361792246163234738756467825109110023308140666206189474953274568400218341132729810101115258215789400359643708677283707110726642835882185673901881405268398675990241863257374608250100531543527263472139835533076384021232270597641210040450754656388011008858798653711578470120524987973405393354087430774818212422204496931605776894995512697512539079629103345990013053578445322288291429379360071187118279936215123339137655878216105112786730344476626866966118072263506658413982134093855059844545795993437649944001428630353094166404870924006715799187119298118165481495956202523499122809559831568883417704640514672755883395671952050973315525416046847797132847032298843136928259791513687794671791609069921572447683036786966231676871859844678456498990329574871348736928527883381242422636255271597478743151424364414827396681330373555778394334641492653685776688171921179923654691032972839580743645837121455351249074188607604181734905414304202625913861206197818016135615513595808495427965221696273357894589231114483792481429328594157523019491194465586805672119342367586251059705879944788527404926930216080911599218979300712439493190227893399326532776685466681988749761950239341424898661977214137893449950673599165000816314543024551930381772717598395799508377692406750284183898580373313782565629847735134560381892304119994146365491136927853407897333393557010575084875784809726852395491680002193555439261644113801555627544040285011588168282641627036268036436789115249725567373011073487738042202246075118499019924298707427301297848311654983656045120192705878422650899718157960326802200235111432729053497549073754438800653518107992330280045047724142364001426308962046105648398134046396355148972489486587113528129382164251308720648930212987940342390488910245621909084512054297807316329557110168885083766930465173273076210899497360580114260081768026445733939918128134693250088441064416059461530437826524052051873986866843593108063396016862440835852727456311435844773116340797687111395118516612500302445638316772879391964159876562603534823658382525581630636922540620041518433641309537295163513579355125408933485849063389787824231686560175112759170894088302702460500178823622998194575376871036143499778745354311516519972940330687856814695432987887783005625968507581007633634844591072581669846009832279589061534746211583631579921641067263689788096519492551287845283768377842594258747610473551103462492095061340334686505163664038698898904627026651690311807060704492438605258363461419286679478133250647435647208832889003052445418151218914596171696008323755610104761113884842169631159124507002678680905675067459063293362357533433816842052138446137962256262043214181671822756200755263631690347647520127814186662695536174876572368388480995938337129186649481621060371523241365890575718608884013769750093896148936339211115550086491589350050002930693781662621345518423249341913141592202697702400400507015655026098214382412402793503647953079711223575182585038783453026136086039952405372820702581015391652045985000743422267092363523413759941434872846564500404870923507886347470668562973033933090236346203449331977771684301681159273122829570055162969590164509942011613979523483818561846573206686490134666439445191665655575353919378052780969230143005166769748872478654728467078037258533374615793636717805781916992088919925578523336160940828175947176806203981723018582916068791187194697548828659766613924458857208431697025702880879394556363754113282824155277981148863496116985237254819106495581366217747010615597227104247302449903329654727542029131129776095005457917241262650646207344518160729766865751937820283638692542363528670913750991924933017698210784467603552199983328100228819209464773080475248438689369951805047945847325604992242831705984869612300776357612281839458541781727066266323505649177608503726093852024586507007119267034939366675452568937329775832564077109812038850579778939997121146994042658123750705173147975270505538912666633095465495022519734086189374035638177360084669435785948715618359336834098557610619949489801636247065438627176523241800105899849719965383027578571033755247128530261180442157320519108921674741605294634735880215316825046510432303857591700904595004673717053938649457719694711025288580761306402964342137306566741170299498493802016173905950551806038723679965665890465412007596714543614383679023105770936337054400891503528344131084767706185482887877526804794448589274073277962435872767010042418502450607026615240449338827244935127119235315109695482784444035729631565421864573099692589306426706473864272339016151660353169354262832408915481186696260608350821188294892937786278529058574127335768032173923800982332190766124621949771343135540538246572192210863176965629163030974525072101531081424225488132666005052915366466390141879155439372280211687551049972809846421267653948140859828291514282568904703521961621680640989628716115944970108903297718323534559687965988811023449973565006413747313741812492315645026387821457660761791355288112423660856898605271063645657745305142027226761496533272410626014250643784842448549322539148951700167624006774559828393219420752094227515086778971309920344993566951170474937125055941132545143992574326667982121830675951783867451125825620771585147614804676999339064004645016677451297193326833369474730871168151956844401527432836934640478006889768471306379500077650277252235356557907663120514733831943849086051067171378618265818746354153097813220760131834161737262337666057085619042874068890282095398942613900023543815804948024329885474782382518470033517954761611216853916674185234537709433672096572274743194485288918829106704353339196442764487480056701884223808150009405602061991801648146988189376318011172540551525211828143094974929701768112467372474440298687868322103170985562194477652891653343307326602938467965846241854759153759790228276454157346450188085982845691440383765253493473047663638768940088710804022639349504856696939938608291896655724548780298026915345725629158541475135051978356301233965266209543688668238179241767252458736382268077726006522336864265422820053774973180134291662987609316065176027402695019356188159925383749734311456936439327662942307437859647616694709072951041001200739683879673332132563756376820800662631181198299388935237791278144672462764071156888367573356165983621527239668762244425977289203167600785960734964416898481866169262805877398211588769435193299015938706061241071511881795843940225063926500560075134785866260031588293552695246471669820079033408618749254723732922372837552709699822205594804272270128129003698253886635545234871847149321346017219050695833764480674688804342871881222460830180851505666368800216304871029824040285736209693348441448374858048600665668253283166951484037051092410595490167652564156125300117875142127870924446614411122957454167018016372833424076177964293849373319823033318021874298475267183478486923474421268895539001435734689929337222467014965783228269190893420063307382319825984051926727876539421284696340846592853645708213278257100084725014597461368248349922612235465980772245328161947679292001085353979554330119347386112055312606588179070238970607072431369101026310912997160889908051259167605600030867462709409304751358580705553288819517331395599041050126108101451585270565168935912143088085934107999343762329243146800279646545803529856994406530884930119436411555728584366033259635582774252901901406895326093517572579985411079066910670282129881896206101131370041529747956498251463014797721550733883019583042600518693652185525553646064230909618597530736560720986256292547679515721935661885594671476332130040727936666542824780343362649030975818709633322025995087199816970918652537759692892125438627144907769619705119164522893635354272105925976848788669705369645727128940336724797110670153841177623274458068275722461394898053556923500027176816015999340060616548711903100382544874898558682086588174027732504446834034032634407625961040327107994050884294635769765367950404893693597083783131923900215486367507046293942512108048865092061383483164423872522712642547408181611803680952171375838115690592019463513807123907752885451023654005011788062338952529118978597580802033166171785245317100171540521734695858061424127964822924206222829385603325672005872129611454249910080060783053619984994968950537533635283858631502112272029740711483589521668771229442448951800484154171859801846530650435549182865830559155453982418932578778544213274141483540818119565770768499248281986597876785654707400149785486151628484974989487542017568122228041715952155869270728081292568149664948121269737451410205332077856702581235972986676830048875183159504722430861499626533450013612567899180637160051547626852931060272402206107210984487489540528370918744982722598482787964627488101299124197440507905922180638912997037824880926577466908728425924889569671855431549994166519962198235766653166698906028216356722209489424712271812344049961291647323221210968537125902764609502775308455835866393399480196195287339307134445407175870914221980739179770008777043989243065833553814653274332207686807556165651905140833756279971179459616993287421114893974802758841701992881329884478529743837063397706271644509150807095575305513352827653904065611296344950529265882992875678779442190452928670825694330052697289520071440258457660461341550056256107329289158557521075732371494183915331977871163071754808983282500931895138151931612881276046497221889843893176123797250237383914872365650386966403462239072034976514412576512096322906349899259987225856839395791340068724392805519602082502460485642700961920675568218328061141160588576208835512989742903871531268917687954704138641554993926479781167184373961620493579350062777840376833101532528824834807717060001335041367727823592219457494968884049794512108132631993924343040887986670567942092907278005606572357447704693562246230671336478811925881109408209059434042323086046484352962838542949264916381535366539093595092524753635255586725372515599863462967450080220396124938006981945443685669533684433497612134397302649991574554349981918002618964886468078864811863127666626343927144488267625926320746335089856698429903038563441149957347885999427872394936908860470236998793443500869181349574441111914905897331019075657439952697671448882076837920358809469018202396487266005345497440837830795399948460728629330986372338074637988055100791685203670118320258395087458333999184152651940238033251097845384568870688034230106696310507584327859302633213331491338672178809931880071930478870171764145800072520046062836109524261824849605891176399584182978403038521134126350423999880746244019910268800005929385078444967840140049320863128428392537967628122773826529524142291952268578294280749189667020399205705373752007341262872929753398982793127720100264888770138139700573822057123883157884106047763706536405209804274897914793039474308660880890105275597129165853750377939724733451183028837103069686979513248125562878926136638328957397424836517497423866619424936295575335184117647503719489729375247605800833352592741472111508042188741811726475743270887456626341692052939209717577974788038673939799698450086812212604097643055695301524278118360678855181460916783709926888476136063910805255010211403739488127171422396840806041279313984216921971115633610656882041700717370840377839832512315539125815772801089680024368149735366561050915997525736141341463812270908171129061123696012931907499691508067300352127274474969883749498907163541339110281460383898840690616362939123091378757588596431484029690528071155509972471693321596282295515427141886527583206198148637856275330875001311975355259830931466224803028609341306958738973021276360029733554440707348126209427668261833710907901758778026482984924240095563246621618199525156471562742300169264758188580946435960969675193051547992469825949531635296363844886173762494374830457387040053308974906815694910731518472319130624695365487691366918118759825289421981751069427188533478316103692504636620071692843068058187111946589426339184607155747919797699333717309311790845888123227429433535660942937232266921057170385976666916681363029485329768408300657947258523258962704591721681895708409153678779768800988206789403669675951509350054854924521125834448129975332104483536902454417975034027609048621204690885722354836623283197485551131677729871090252682238017748716402385946918258450982238114323766896675790819497343164174507083710340536409449107895330654579641291687025326792929302262861789925817476136816911841868425819135655391085978862426412468387905666645128887066259308333488290996238266110266005689301037235784085384162980968617043916234529629236257199750100764246893752066661813999606400933614118741368465305790466849714817006432660580696826840793003805171364534669482056550379723162150762253897073826200086732276296832792095150485322555709066277128695688684276020661786820198911820648407886679326997431996379889906507457822629239720044838045052624190009410628749573650945908928323689175362078602925513757753716491770427845403990747760161709657813788186303123500086989452668259798713978018769547694288708238956109964537246645064542337665819790076405129052134094454089390579062535908077485108545523819619730903222631548084117691270067996673195013192597102484002197410282150030393501498363745240711946632577840905425120189165536088853469267133339965626649564603099226844854958607336145565399490026700188785210728327238937044860988955833989333702743007547035282792683973103862468774098665990149325010732618112058079871418072742913673976488134105165856424360281774094163573590728729246503645950543610220663105638871182755982360079462430162219422749258817461065045632600113640667185942394611226634321597535780566545255421378288063391236741855634970784927751103263131081570237659514222546124207587868450057919161392120101575197486833576193144970075196485521309717374234853082595388432315482934300992094972660360229078938728028052404594585197669475705189262089247506525351061754192206665893157034221233703501218951598916507957638758119524086024235510669464711293049620664577204588306414527359149031638812321966458007345412150767607747338018939524703619162971339842832750169631603692183735243814371020130112443760685023917370936084291610113120699851065528181659141040398270357156891726532369908286030058092508947116601406235758892318622445306336675992073224717732373260607285894567586619784534470612731424465349829967678801320246519146018902736707948253398982897153631342654435533750919164415248824834850170539909038474743557758096178615392125474033140484286715685268529375348305885480302916889498448292483529148538549570540721574854193617417203436456759895016283593881816893052250406298423184832764611644999131623455703662563912112712468230044544671637190007861088569149727346803693643844922298236382165875454097730186337404659482106399888255863001794082967989378834709373795448540363723884372239908031010400398618517033603146851206824468540123968341168218528398167794434897640174156344257208679322881081294670503194424357206385006304609777202155899378236343769377911043534638292739049470358702777062646918484526895541945382306791926614308371941094008038836051064282945657733877037686908744048031639336111475217727837024182367851449088796786839924854457650059059481050441665497954920128791500705913734844316689750042029333435793781514068322281547415373795908133557847531160566674899593688602156860982842520144575178715288631690684178326759537294999479237426533416505406025832184407180356271369065235623240451176974865299800214838925792538204549128173245502984670047579706373970528809213394363345315675211815753986264562859564816270804436839556550036506739459552718572496022596303693669254990231655833720601204160662796459922065584953857452254006259425554431309214898174355249561657781625698424390847740534781517945094178199866592264399517942145398103995008786048667171215656543018560225596734942468157572601350123550513979972731515382585699702389110743032816907380846919893460337487362154958736064167423164877433498398284341849731331825333263080818677429794131129391840137610227542046346756440730746646762341392804563826394532612920182396695471461690661694877448867985547094583469915610719152962806827183599053991026610948022305559635234898354120539575316688139933559683850158351117042710135129286763247386854503158870631961438102734912699545794601927483132443398044759959064309366531238570910875382281423482185403209047491979046543041987513412214122546187733738094306102650935622896205620537425271547136074582512494900270622634519179241885299944469484986168923010458646660752075145356097198793453954904835870040213063428399342203217769895614624646121079362743494981761700253091298134503470579596661604349025040389546576772425699803897354939639476363698408149385487258389671706619790641277478432486508945982307642079245407186043433114039439109959186514228126990735487429432290222278400680650678349945548522518852720054004569415992836801146673509261183010208986640178727164862506119041602160295357776674685356209519524883274112663899697471404609510259738404741146434411931427325996020082078113487307609160376682306491499290271747666718660602207526946461255050472684889638561378647711148564873432718848191271344719206461317877118479692394186513639063019078155744214319444021161913996252403258398176783228184355885534049658782281555558715973592204167776009747049210081019991587822181087766361831191448142487603461563731017416080690370935595889435332813263960829313412690325708860127414876518420695706427977083400817341000284445272530443153715671881103906359451718489859116933478937656231409628266960675968462032097104096088789497528288040690307673602017821764605797506805807513390955340617870098169237218586927473683745892202020508137060327874499290710748181629939990528315930439694034444671034901397338346063432811549077205928779689953316225718052624552489651927984931344603808702610401167144189568041923112022951386009186688081215253304956784474598964125312458086306588016348557670771686155259874838484926844633383445796243152630564504892869240703871485717190056062872114042677092368499351610514671933112347312368481298706585548455930180566150798494962207444313471721272692817533018985517635070297959541006634378517407246248987224469357211971591472772575310942731318194149175813434466264687555865822338707985373339573984745602446003142619383806846792906517368259722729195516554656726890736201137572138796976762247212587852666483554509965158227189537110235226157837248885320101251478565854467776242244070038790274966608037548535079392919020007793424729828267836652162896266742106518247314471360840489783107177367698540845638652178520856653907560588238766649514816107323958023464147933452986617045760604375166365362405807538859421732955951135379704293118485197250769265187752320651063006242321612902052881062624037625399079211526691002164462741724893026172628291591876005637512434420560645320252616544680562204711607881273350145314134270099007008850108704633664137296617690439321765577036062831357047051120474852888225834891399163989126437867455111264914667933796147734833691196856433940975487810539556895880093252793570642611686546157434678972513089287652630254205124263439296048403689257816074826437387965630336480693412589472229149425629756683638568387763535320538158867161201509133974899827585398261021942698697895036760943777383864260124066808774631643187656021406739182920557342463063308897797292588784080814887761152415618274008879749376307526100706532467497341828763870272505484437202926089180635389288632300679336305707563505471549025613459568304424445248480158616910188360762629429598948054686932039980153582643934043640276987248584519701610869031032857332215317286399679414222624618250370492091684332709101239108331490149318821901382848385856012822453928695915471265784239361293551027155629058324322074129943030337752288092777128472333718735863613500482671925253210584260577106634105328008467449126455974888324555671077323255307437283290425033812116310208661356462248735694073110961226919304942583165337991086207266164866638909792336848570682160030485055072949366471210272494460112965091842229813622512636672114118923675184028931756428938107529234099280302798837287510455683018402593348177555814769739955423084938567648051459051353454958135825680653431631185836932451091934760757610384475476475745908772890387370646516010459900787845332474670520545278819874488248889997994314350712775503668535986831515118500716167830385164275357555635121419537659260757873419797643437486511854568944929722852516505438625391790169974773732144453458756690056859483694499145328556049149510231856201017815073012041568118147394199289870724106316483678497900232861319068431022225186105376488827939199466978521892219439921378817333736632480226831595779192597411500226590815640811993164730344890584807510612598359415062995419137622500625292420408203985243401382576582178465318394255563565792430707932197580078167619863311769689599908885902711523561937965193340841838557447190283375540374364492294412180005642782730632297284486496006192735009892963408577772022535713896827947432079520321567880336961251376801691957936239187870281887110317596941307746414827788795410185551006664503345461963597912323152039567895382662457514802273541903874545624718059764154235775885901059309462887134352568952990215165557152340739804760065297577858597473173686390371521484340378428991028407870242000530366179561824597710171403272486387280530108010849788070852010521358567854997902831689872978605830684268418344470635004386181407975598010898296903795123934882593411814497114083787995929336275416725333525799496102578375252620078300531962212999867248165545454702061628390247858820851703001833184980344425130507325138588294998596618983659872083543011444896552599449757158414382309399977347664553451038188849741404538116042237409773634602332733008323366920587811335069051447798894779922915975406459717705435599777744698098539655931955455510788252316877171763505419438215589789315821489376737893570173256037837696016408160821429485120311490789665080998465505800792390720294742229284902017784455433345197239245369501736339093685324973339912246122539575266384925241309745042525656378253693981471520121162760444481632179502511841206365416940940616222754400655147237100473884407713629550615203319579088293751333823611170348770393220591677289810302660103966605324878371961605339169060499111652116337902445321083626210995691856803238925712784642467246278059941466943059435688921106932267891140841897352701707345088330541090038636053861544025546502293085500893304582013204949304488840987305482566181338470170521819433152124536958395693964645837279985597604534367551491570323529526876257595454060729165113330604866965296306859583358331049811195511395348261740869665913415044570704101350745831253246238466525086360952066978155449189616944593679036125633289306222013300902247820073977465607550763612714830949100200934649133155508407285432181652396775490198850752630812429230235501355170285764469732610290662343717349930246961672176884096091783348026770828052264747969883811333713782203696420012854331348970570284141312473519333158248130997939766268518228078652609367195184468477207029177610518436927440478950683961963577283388796760199852931388241232737228434750138320898199648715241583369755719724883679513429955113845576445538166265584538954215960003585929654458343685483401486837629604964403952570854363689496201329672204645123918449025614059317318041785976297971474473123879071346385932773924472932245580988757003023447055772275642001553600786402769132691279842254548013611509178638841449367188152363327899445890208353920729437350258773251554487660427479365655885356080628162352544866185844616666996689148973164004774068293352523230739968674314622531158177342873249858236962779113616628691618053056260707342660637293580992112380374662129578824982206710215756873283511429388563277772027574530668283150380578389615992657708865148006287687916264800454431342791436979064833247318943833992394330707796811095798729621841401040188612192462479901858845487747306939052197368546975613042567725461023274395307359880714780397386443888349609332511358159422777938858442687181457408844733747372641627508937402073035080565409976717508599263354638030227660973540623988369869301778700266177186627157933849394878440687178033952372651945629533867224127242463047276510460404246387038898281905099854224425048193049583639333540498818782909957450545875651844621216611776837968114732230000737841053421978215001508148384381163497751507600127686284157949301354766351672111545116193281552899624536482404789420028871681015446909436583527769988799117602006580092040142243356046060034995448966545374969002240423736055292495537974060954439918684233609569739294955732306445691771729219152446809385435099352978815940085291279806233476284220953443251270876983204027923341325162271485562687991943624460889527674806466708002693955400924597643735762677572243931102319404141649816107038926165461181755349649081210634299594518805953484634125404129796956977197748976720598264107685365613058667712336137764691470551407707228580233488399161880821160977018394008895015279027536200290410218753872001233085451466155777238823523358722887162753838613607844837228236239112820839290940919287683323458541441961672595223268028847663151654651750545425059969192162969795572065295577720894437201092929180040516991395164270449643441923157939743433925639457294844445619261051605836512193225376437010906482393500626560319352771325585413378822503777394333509966282744248001033936360770376114614105632366349802936893625303264950705107051495637198788628978029852601483847343970041338838991549055930193782960697558532488386865282881524942292487882949359639831504868740069030451091870816997835774858174064015079535583972159999100912390844885872371173226716003985726028061363879881533055797929766230489750237437084795804330391789023022579618660239947518197028944225251994766917796536124701867722571000781225846113173656939236917379676250986256604817736486416380382712845715169884108109375813278211397623415763803248872833146610074576370444851586198950691355442740711268843860921804071076209948052811726844756120140014148928459653981622912252310944977008620496118322673856972814923586788087422097650781978578004004119517081812325029848488056528554299768963509912394812720479764630338205371435990959971767801869454255536644892661243463204084732703322939248440623191563224330670795705552634164407435446132171562494153571380530411750177113201548562520167205766859352485150002761240346341781514417423404277893556909515128750670686481025327913578393557327909085364704089694038974791496867504762060154102439309692897578856025453363308919522857019476247974246811168836924146771909587183085651576066065303120198515395894151722644131182157820679862978241119578449895478854756105291162726111761921985602778302365597551540121170586657991071771835117765664745169347618421071935564602705808795720225054064691014870606116014849732636985960416533894555062759658979394132851025921241370736935536466591617926414156652839730783783272583702114040285713562143811465846263908335639642847074816014041713787940011970951168287715254521809005230408403420730860397392018233783452884012385580277749649400650630820237326291148570223030985570782158725063067491438078040400364614571473796817162713141229687326284367190846345218676586552531683027798760095507804359140495311444002243754518276288103759427241186058936992779111250154038153899448610970697105200494867346023928130526498040558292701275688327591618990004101042883297444939329127822334721929556764752969849695509219381033417441821934948989178745367996856542053663384591143510206267283056871933009078128967225021215199560385213198342603459475650921746411947288644109863598674580712083065260949895400168578609013606324320346776494416767707127611464443030303357523443543262812720042139383890799988006535170721117048041526448341143289437340103307241053300800413416335388531111585545506881542691609841485903900550730570746871248195259935260389818594694362399896684127506110101187805744534027062687249333512193878325662560619632318416683368357516829920220237046814291736104815318859655705568242977978233287085589027832035262825351835028008563401148646409256496184469540682121380301126911593781145997158809687580781838413938683125620752385652737449890686820848176704097524882981396740112606233839445598153180431045745987800646008662900155701131031151280136800965958680595253294701377420885815344004195915005567379171924121649230213858616928061794739736016921210468194027611348193641498858975211363014695814553241635505577799780739873970833172323347921763360686056612024375774243555211024259749926336621592646707747278586303891164219057100401540830552511079626468707371450484531042226670491480676595985576524606424407322956307720022796645150475699886035410632001758776812328676490150546540581232974598766011148617711874107866217818225582752049930113449633573308931372989820328787966120856873349354691909757035622807643378467860093434917216254412568810460891276599119756726039025290360480916541213828160386741637197513353546553133493712171004817654407563498141090109377701465886159059985860349554789749418673510272887341807142522172801177224919599601159781846110620488470868953591798108972296566133251151904774916895429381098957878105667067158404519666719012943582209777123143366449829153814929843752595409382099334836697992700343299812026496400686850918191499316981716034940381798694994985945894682168252717749108038565118792166267179950329793665499072131078734988129160879955900644920802069454015365465697196812018831127200290437042009804667196045266989994198380256589760820259444271511838532020690083749362577269129871960285614294488550369131999862741748584954011542358788258708806353807068713390651333511928929783419636213660322313858571240289683866535633289593589584068498882527812250224568691427038549627501250360162254782642274377148599654055290499428938528741215571407502054496278572690849248715173208260362999919462200120470012065652812853341730403857206995331223584190405434321489643834764667789336325964736767542986249598983061050624265413008438155822165792652581860534915998659978676688681456206842920103174947947449727377931339083270551803667181769735283201455716913988053304458056204850583427704720208714941290435052768258188777213288322701094588935007981631659274777645810742880880194506420767359587073197975069900209663559967742217174434254079680596503108263972488784836806653858393612766034159097557179869299580999606865643024496472624119469027975571736171222393484302737370072950776628436239503587764330255316430076273330280061948755236818087321949907980700539650358903271205549845719396828004639863685492107858471106356218475754316306148549466720081575481565318236638576490946199097780243043456619588611517502895790008902494505907976329217604937758049732083992527282488205675846690713466852753156365331896365737707745065721296778860614820463080268273403609796807039671914225142785814102955451505371946677261119084844815027877805625252023209722849254055196120533888966452459370865155856661201856016962509954673718766565166671189386593954298784388739641499831984573797115921038189696860596193897467325403277960821048821168953902097885526283254424745078011686365337711691970970645224780232520524166769741523297979036210515109790193825238321648429909571121803652177653432531621878938253658686857194576148864593644438994073447755817516125983177036070338432561779709313984843597131259819388438207583183092203319850061614109076989464363531034318232607083847222800756010162180878659095114754676283948647181231206490713786582530560096516342154391535559708344360718740389134894418727932240333712292311745192452076804063977532287223224322102039080453197916681448599222343394460728870041104429708177376304455728583979446386645002114482267085501404133613012592597894929127563215878792321458624778768846507958195920977248288972290126504058567205668775421785418465201469765580419708745982820253556617008519995362955170467184279703837701069853384070393906522439793044799661762239273380887856827023740409503755898694112541382724173712424629292251485491007700220799948657861803199035215095949997637676567094608402978589170632445671112476058250016687203231029038122255942209073345785511682418799125117365596696008248950146626904334344075592510227042608356823507758597859753980887467469980872751201587273169582112975447301566222095856550056280672879679097349834022743496314048727889729841070083479721677000130386308027148120711466651180356536877288828912080774261561297137664668733748587112606657898196753604279024523632470496162857630074598576572589747214569004986621496318667600263892114816699876280778619826386733241005894113077033673878676507279814441137333797130339908995217033496897195406827077441636430841395333714550512926803209459876533153158269448243167504443848194133910051379580866193978739495053482197930673654665416897048865745247541487193765622843631018910152859844720061417275070658881993750648791383658613596848077479653909197804286240584911599544524112751232850030581659380421637324164409365159651200127006342704643441000367166906196004049350115167161637837981592622090496927870699974217255736096009842026957963611226935164261514150530403315108353424007570597771555425984005068151391096061216225947067890868800140058498829792266154376823192678331065518973103121573997062803331444867361948431319310403104307220844665232820307883361961744045235901757559855444863627060052900635607620906054805327330545059463878082621839374364912317666597063835824236385114178811681403976130189131758605683512699732122716364118537703576819396761556827130641747938935749196099121487650173675880216604207606287562755448664802517716150436616817445349697579794602077973637660804086095683776823548444172921191969245890066817520458900420663919263231726622621497959844662065282340550176717183027007363688432490983566290957385241809943860419370075089489587331553685815004489685521438257100084575737586607110933360971264701516016343524944571630675352895045077961640320810559033742535196710922235095987709455684513701937972607953610395625465704209450438606157935044034137584646717520763018752579343473942426944115813531395649425515194240635148080636951881039336076203796662283157875123987735328634256458300653313794853221546962630933880699042627873155393131659210276895189074590524525245144245541481636656025577964537004945639839805490535606103744644310055464087138762218949244233545114833104294636574875617950147837805799325459776679077027755021673619423319779363189681491867643245300263226051028893402008358390556829491448938278575158312894739948459032015118192433338290803133317869860127632258636253606857870138775353364231581883915300086929526108675209263508216710723827864591992121970086607262845628117928625994375305251912826568512100324837503308907805689338158508503768313381840623534884416422294567843297670864538437228780411340267857681335949810670432969184538205515248360292595707263815000602971791948095432985346242484077484944908151474119339485873437381602740057585993713287000921623159710871229239136130172435384471550521992690195592756897911483097174683769511999402568006237995742522437684846068076254084377453439837885905477162797940770995263659454744288920878169396360156287848688226616087589912645605062885303562857397556889665279521195301968258126848928623986423068866443294815071410404029969447991547676910142505968263081485599955907727950094400210633890495306288938820678028069964371718960671287238554307660180640134339364514990902440960420111177600732988515093803522834747463997696551364774851115984854471593893497796365112406832083796060054730720963870286366394500059727995550531815076914051748925026639923050168009798665673232608550275487075056070656434897318045795765898612925939424236938004599566811390770639483673085995584634828562649148857789978556999921143547244650366140310412863344282817952977406361133894902376353190071076297646371363138870193812285928061432604707684575085341285411904639198530384042993031313450356820909468199165347522572166751841743570743304621966391023520221571694045648494783221696984439804782814242907362498162081073929290541141085096827757190476821250031459976458965535823137346201497894371581516576429037523398716342270099277131211272484657545821439195264091258165775145055993575856810153421964844068584199360897692638351111512469364792290168741313613199716686149381351900074663145823685655624447531750293736589503274575127306108681111253333728926407827881995200675888134240780329444064289297976027503812026434198805591056909605763685380927793083133209321126571271936876999178028912725380402465581638959468810640506632256625843345123771100182846093277654530341145534295874287985378592817506031841427854344652877440551839583342654483503102470725921851698747797310845372883110079477292596092691364571121161008616554893022783803048457976139898529080316783692957425935602676281550654788705014820074017735341769367871589172302633571888740650045385250433657010724511004327695416347204143475496826391318111875204843350685782353934607647272245603000811275325723400218723879604276233312424137560428486572680011863565784099380859125838487908671181567131254980988258950303345500580758393065403094346825085975402709798815793149680384881081455873951742470982124707583729140485239121334163222348859848145005837801206598825311865248826422439157523624668695287562230600376377399021656866784036106239156366496573665934231559846392081481149229832669365781972030578007401825315317742151112511063398869242598458503975232641643555304108232031365268844661424635595943383735918184340797087907367509750159950567543258509770666212707492369958908601570638653337334721779763110515589882839287193392033874024611695952706524943374257659019760759994843799295720843021823008425750784789016467290862361290974136477514523142848165674576163468893574230352073269625799710963044010282374074772828688333587302406287807171423939754592373709936994600552114041386548106936320413008165693796663119163629309211970819794051171086539617557022770739282490240874052212290143684586569878479115561166062020195694021113329000339406273900437909013155880981179583530907532687513834227131582843153390971509163847389979518725289423713344161996057638267482584667672204865084834018658116782035563614753963292814736590438761968557652321474021510800546102632310677447059351682748055192743621306895086833082227264905515142626640896377371665142985855592319882161663753261820762671826513652809949317475815500493686552592327807881277548923280470595166228469050590610800367748294295457321145052756443211760821301773678639309470576298669345396205806924426177094632718428265360994302469725576879349846387016650562176149323308468178908496201101863809111415022922416206520307965217234640967233561085702729375588785640841185996657545463624362607530993254349486359477342414583319615605640550590396872060052062397074499231147118529965688623377964175843209324656779880829820418173294826289610994694472761669677657373098514621977819442520191645238349195471565985722561047083466832717130820410454413458525576302665093883257471154469953708513025819320110714259644569979197353938788504532769299099217610680049032830897926098254416868818717227674019548989308061574675890685036951801560737145580254188316444334631177454097835363814682568562004867077504254809083658888245162721864366478595359141264444379535330844783224003560563181182182680793530411989123797556468767241712741056182548131182503340017927988072111958057730545140875060243804799270195966368024832024641114978442743782391445075483327514976144728834962507919487172486608364774482016316727366057057672926574032778048705142335712427666381888004740969676827471428247897458558660236541529809068931652018636423942835834270707499949369827708234075910112161264501136014809296339325952374561200905098877295882428796143864237108947413048187064515241852037946607213777633931017936462318833793514016687375738209688689440742155049557792806257750940767614375293492611788944425327871011369715803911484248770349743621049710938886786418632931290621936488762973968185791838764330637064503248884499765411560711499679543581002833498042749250814748967933210879408164680055147555354275462495733361157864135664021127245946300281823936274224218246961931234372854324433298805000995400337153393641612822490270522646335025690620233003841737848649282688389766515925381734659730274391306031832093557901606909565450895840915805232624738320563574525602191932483803228547515072090051285555772369305816659128651908501087296724556341018870587564130582929842349317489040433356680629662393155552686375199245162387204075659600581598346224447521224038511751781504118058361467085391381746259924885789181286352666374280948365608311396944264787060088489720866354435511743401627152588452387220247778296218260079893228422057752058216257506518260651762363527945982565492083974021896393039503266449711568989607867691325361056792349311107862003362890661914462262532837395381367251952556110141551935298565267571382291207708046794828058536282857007699781654388592934623718696920198990332055694684599845470905605899653099471821516833119638591813572161688280969221856598321014885655734425935632835842506470766039671617496791876504497527993949649338911781846525816011164391196728458734369723706321226540583303413299090588386307208983281795931328346838394665810464745770252209784946306637205100202973491787313720045579250710748461102918090680948132317147875584520102064474245373964853626638430994590884032404361284502396934492321040956866504409915113528830564441553622782450466622918217593553747690255000465101123673839890649330489145360662501001818096925759802260647810480007022940755656771112221877392815724222778087995020550855890606071216794086329786293787635080792870357809325937428318993796609870529888426389552431857918518854029896078312976903925022874074119876648127645745608179504767595771373605900462169031533116513409422786086896140622529008579846542547937794236828152811491081602996650824516796306689746243990722404722733938261269394117832359486268317641933911531384691637596080128661584616720820587395535170963834919154815798045475097422894275305875300958943446313887714268807868070097294048154784117277382643350019515577106104950368206158163468302498729751134637956901322911449390289771233793453044848199268083448717204434043285166318774089778827891978729897988002934361802793270826176773142208005405305779347183068679876743409370494528111418091147805500189886790134071309318722835784153104461590035995217841874752539576760921087619822508262216676899654112969679059546617994064209239822037533560001309964820539293048221062989438405027860567982344124301928835541080179733689225972485010512456887182234047785733565573364258916860039223695751648930776993548951670208568884036786452440169534779718948647241760579333172951426714480262532100455000243684532552738582110538196438972756502804935334694161690909344595227675127504925493630252888295100810537531915402052304154166535270712283604259415264092527011808336370047632150375838039705885788001404878021373669037652548507019040900546872614668668960045901915551867825052012090427977285128946389224318422920606695101336203037746891774291770531892833399394595800513408388859797933975029302078763197911581924471794630664241326627892891269474178580857460800815096106380106071643492356057243443017899317503756279290899967515459024027887858281488160309682687818183040482677277858355370537160667231550134458639568977330964502718844444054087971856133756092685876283698912217511798064999352554562638664297322993066791497063197522960019752262952011753998695509688743573843392200046302660367200931193007606557954042198649560192273783783436953976684511783280929663415727799348436947593049803308743652970644318914587307014131219435701407031511113348576069284500683524802975534192736336127322143096709155656686961306889745021294072744828202192465560050377050626612125604803795764446703487369258736543720896089923853495021168031283042667979688716895703846935135444060013504653391158885306993747311325774998926920193304739193846402874247262405594630280731868559825206621525629309491760045343462369078926969932430509192798479518222602263288578823576957080876919267149963446553104766167226210414140800041680120971963870984105371724254614267661938795275816095942651570681988204868098129878830965196309521636227621480876499304979075346030665817363056621065402859381764992882822875960820103434622974664414173610826615624665005931604201821492486754584856578282175449658766492006469361078600584979116560255148803586945446006124214539072434391055850482638785295149362534981890034293512634808004554380193491740332344866013581856134710417079137280901716393647856886906433947702321202181959832856898253981488283879215442789772278390105026512683586440167898557525000691467931683343678329117392328007376359303856440851094852736284647094295074535724437368899204974957533787885217485567750450759713066457502960204363623290475226830452625163614650207640461509385184525101842761357045652100680794450373396675044059623970404971647763019344950586274141895496475370707058104916355737352449009679680007000154938819604387834081790489075906554802871090691675348378562366174901683564470997214218071394837124960438087033939185335705770251660002899642392868292491476110474354890108687133490473439166878097788609878882512751044209048689473054520540787347878033768254900205728603209139943027458595339935624949436438869481456190612222436502464284982312585259115740785407789935071765446380526611026819110795093853842338138522452717947208416251370710337231760755795999540598834748249847046997272746942177934924785196614154418174632252346980091183209856341628559501147854766668407506857431218965241455048302540130100329370642092728710298679563130451154466733751027906349906822157325201663205062193650808524062240066653483716795949220264609694087903222833158460421254973590910203654242755881210527124541233103742246842192638503286284007652829510214321885955485259883568223369369709067696841062767388089288561252996807572190928038966374638986427649770521454651385001355311224192164618804937752524867146072648120168213379207892064830386094892384364785815149423543687771119159768487932495876541411313408553108984016825614307866842167074048278487674294414572777767336320795634643812585128850666121395434877695235552565010957779451270551610518844304401848737729104157427525634789292588147807554929915906137317230787760644127875263540158834048372209257751604850600799073286737211313211531513994585861664235196329540577748271382650586149970207312090716579859172241859442654757675160256678421498410626569505831182878602869097527777039610014136730100137613856491191449908465482429558293160281596249155992743554347683725442665627071008569847105415701681982912236327299336786161667576058980579215596728826884308150966456086810645439856347071055890686238300188996104963879412230341854162011398469894162274191645759259913443900978427305401283167919625946372617722931669874377952147022269201187239936207315234658226068824959289297006929750959879373385898924284083381016254626910523689554575541037674496115023586436356987005889311268446142483237715337593905921888710382303674638252663359688578240399503287079431952671318222545943111300583561105463527440565470321716226006441101068424169649362003339187974146861523921473267700659552487593780813828560429980927927392883645641136073891010521178807440204667918223780524708511355428057655718696341577435958550781535989779804456746193846714073526869640609486946499563687134701643896969601259889395922699256419995591485636546752844728189664692239046362110206033220015530475857209777027275990917377080523201327331423106874982009519198479506259548851666880240978165356323332827765533299442218236928980945791460065691038492030542459808936712944350265526839230147351842707877565167734977416522359151809363144047971617198976586110124174988633665718330847322756787954934215144118542241041313586142898344483642121039306426206174335541413488791838065955591642140643178896029770552937688467363139504814214061842863573407672699981292636857939536170774945561206846517598641163329185056204151043365687555416056070886796893433791752747447707516020772225922073922639865830024377192130293061006528376036586479648139795663533880952401558701832122968801191288963031003477455598958344506601774362120152639465326599621342343385309979028007865598522069614883785794545090335267178574638330948720443155253625621692744532496700411247687003481551655325973666311651298387826067733403884231812098752295394931425506599613531726785246593040584702247749142362376396402330062952436879119427531350824596806320060984453214232031510238456559392916527370147577006477176158430061572362275359403347338123191817063078459324490974935093448471315131811695246059540506774386022459104363233474825029846126156942123121208369904752175862848847142576372617765382286932491713510572751974160363468649532772381605296515252238960676497964646093357359292431689350101077444367176798704494191719148368893285266905420236567050302298875088224300211345493060550593209323144154803487007758526747996794443267454683271546659616201261413565397946423193594422224232763058476106304855090944844946449830329386236122324996221263937673229308067239889952405719485149249208892492110214725884798524452317193827853012307671243348401031306557090129055242314440057135381774432478789796718203164985472745314428269836319103051662486386081140170506356369185420966357441212636752298213750793214221350238020290060006407324463003120322730342580683377068916859593180220956869931076670215028350177719391668416827488336606721905176980557970777557493516649117725033967486528688388832524410744212856022518049825094788902358769754821879268598531349238937645143453286842899787235933230812565120045163206148109622722974096461298609342632852768965106725313298916530997649725022881124999399240785757007992284449693864605534058973368076293228931545600724268389911130458079382661636911853613685415225028521344375303678058337325933487858253196045947310077873217843139539722822191403525011636161656570855862160549823612191207482344031823917880312209355006353718262686478036385390507134747054454623217598471202944172607410996131718001252141578647569302197362494205194000483957999743578063153484965048460788477380931167804413944061557521570061085437403241008570304156818649959157388628120330270905921491195111786565545250255352134260251623690853921610670246899254164699764161718258416550396990353016884695679766055916962164385563922425853897770875674075975978120540560568627495308472455842605702818963628824210936308403829081389749074253971883280926938904025138593352977303336755381556038591870472639817859201881594449840037996429843551382181763267906695718196119976902918831027333074910449283146017676893346792643996902115035603799631402343043476187476462720149459876215120862048487241332110555014301193508086039167677228444609008520947181939865491566857859616568879802719393107550163794964185060372983095594386151124033063976363532277126489214495655226552469493014748351731573608653827265706605852135227831372374293178249300267941573539821215422599570759370026413093059629227152067517742303882057659480730916782515523344377878336572407914356101684219819430747454891245653054211536029034343249391798481786990843724403613994299293833624703347218438416329636488108863686781126871449785872966915816517455021060671565404916800335596252323360170555337787833786312189072893230927848030828301057139291938283059646388990561054364185430987687821535505241811267933627659254857848979767713556014530849613609081492232709395835124249448530028565344451866046121675152757068174161332034260512007513734172769595247041816012229888254433022083397116113998506063526048117898434437428808009491311846572152753858179855640764248884165069471798286441014933036618779684175138343092456070130401635804763594766512014549121130936592010580739517389717470181664428289146363798221992540323790762378557157346702585294638731120632205728460349547591608688679573469304244986316274005585359339339059108897387951723771298783405019792691439621019530078704463701847962137323707495732115237099992443661149286655488842918431182805503593061848757675098067849803170890649327620066514585451894509772632281834841753798889265939541180094563343280536436878132538336871618444459636091807147930657899524450130378904487290487255149981313150572590729440124696903236517747037030449712240671370081443871088446056879644150551125652113518700868129733724483638487307753185146439895892258422312575973815908908511672967173280772286749498448776143324054019829445601770789128711072901832348377664036012018010899389847295559666786983847170998398046990894739526162607375719088662886163342797733459531936689398302651883292116173824268387902593496225265081847824717923350899679379590903178629810646642848356416268250544724465927517771486493188612682937118596184785054165639561817927254751176118201409326104016162986956786021615369648748752369085812955328062091691595495098898297903162949884533953858105576155645319513049768462009840525988007769916605621161257284877965235076602022228408861364277259126429755916268815488543494235379432657438100244040742809796152108621879971278862997362850508819074319859023842335786337837889050461532262907090059471732389345035246348413071492254660725945788368662794511344036114299150461496682070704067710526048069347770958570151538528600349534151961576845426384808421038731834290243089317153914678400215655010287585606488337292998943599070174498395790988887986321836062423917144669520245526861782562938076209389945662302531286028547304637866583589161378272271494628627225188656043604686517021203228965898561200822303414587907801152039381302546929362494419204187805788876705569146816744563349091245586424498662425277519026262145781055580602207447613469632269705896820198483415331389018821993361756964071017338874604068242104655298819807362647746372358903892507458199783479931694214110988618112614923753134495482007751302350666100672993486981191375376507680447097000758760194439256050609816254461859014757743784543116349218523218301965089163906269936849675259629361113985459823114876274606447572082494570949050867297168110210684032435796471651048419665813273833627868137738493136740922284874481010877101153600971976759173487352884844794482631620067415232392129637352528545617256542934996327850284886720469629735834889278584031925220302194501888396770640422860345424439842948129341268621851728210165865771245702624013813373835262937604987998930613480361313318367267105139318730905644472136862428582025574892509664198644313809714380612935655710372804946544771259105106708580127170335443427825366733815961897133263597954363492216939242364049059722745271314810640515704010565409380795959092398469777059419164376894621481446880882484075259804526872151316537206697526185070216375426153965596372636434547428070420107297974699647325225008102387731623672741913884314562364915697039944429596583766124057918012681150595818383454842371289361958363985107684459982305018284720727304025885449475812398063000941472652284949094921852942405800009775692762506959787386703758569498641153684360809753934514053112501494326945366082630963259948584750849230896045926781461122539335782847755310129243707426311324875612156216149368675156458606429907198288699582428465216126454620511176094866729157868436147618870089974469672945252346590307040458926730145437456373391976733575539465447696836612102127460183176489374590140453543287538112171615648997264861274270867191021863199771709726274491808724496032221187282356832644907995934984544091878948605998981495172894065626176743408137613586279755668849494317005567439861872265801496651961344845248668813866977613552401308577610352176964753029422154023371853621173782904785290119097740203079616167006837343881544069824331674129550484852326979150978145831957451936588452746849986765079213128683795164795117450147236748931667646220009956628759042911976759610645199417048131507461878763666283192059774831125271664258909713576625996671941837881698307217439155990431825362276762481018090847386026652761262054612013049761370642841067840039933118357021130928316092684090708554619274340177651989359179449973914290870721019162998133608894006842943727930324743334682156012985536626360975812887010304431457054745282880903815966060284097610681157674260698637004764421854944347770765568893753771700306246123365668889384734664302964755102284016424329715622931212493832689654670667694998377481031087702222953439927492685807517143886570656912767169419892712839489031351045884437387080007059851545567056210852122824977038940659985638958672204676311080355620685862640847060315495689138221448178948999609000093520498471964376503115695537240346297373239272015554118984422186263814121352786455030913479207498342149421171665782201053866210352379594642495631806909481142645454773738266895653423371063073055648824073619202615983922771306387871579264209121625411127214976468948324257333362770548934816705077618022538158748237258887895839069723316418216550458456606749370802905599731324680195374296453379914342877710511998346921948705474429304021433026817071358887281759405342469821473544474331552389027894628582981148110663691169499317294855936646888624369365662704820492985529723811227554471064706908478843761463898581829072135185562819368839347477456434535789575284723537973977099966622616858022430339475929121008868137404969648919907824167268140701356160034205680993052405955522594952383154296529655618987653175475999081697971362859092996876433489402087870446659292735052504363106385703322468827664141611943553898797120740187603237835772211729215919060082080890447383498934785265229201597890209112705120054521165069693647017427654196162521559475205196978861963605351765272322824144854929129077006285146841634046304437789254624941943823218653455059748294884906118601090479080092846116082129751306257826641876341150888544077888812286503352451049881569033674619723123934187064596330226230315665522808558455617993066446645502904492427391613155750041153904505323209457495491157223221465156044864452070537436978207551511129143621758294765832859690187092179684886756684638251304112806022010502247179523198614331516692500403967128725388541534643867771177655743683917178735912222608901030449645566079937242819765038707466452509497774900598627992911823251656840493126823858618029381277037321215862374201353632146676351206716572336850795891667203983230149833256289173992473467736211282126062134004853638930678387103898708697355343044352867890091509765338704367417366470111175911716807309207044086622767992449326570495787420720038799926746896298097697021305006968148126859375982149465593221436667792439699837222661231565176322382758024181429769853467693406995883426233486767508108553152131070932449592913346817067314600628234149708663490124117929373148969975989228129405942010494683656997401538685825512646358405342445462670976138064269128666585299818455674065306704564027236287831244712288376648958081486536890757016471252487907243492266006484757000345481633790788841915949758436118354732085101481818475086058647540749630139100137759727808042923337466650298867425720148557568341092491280451881676216691437774984184955200651431224923580753917438660091541133375586574560197410311281845799915210357614409772163988331756712246425907189330687509857452197940947062763384606334467314608404003560514881155389871603772217051963458498048281022172922191198178506381365702796814005777406121893545217603303567335039443286772760312278973018009736782263405948278533860469737457462329661148334056970219069063940274931254253347623002543223297627102864412909107777945605262190831732246944357253005541567897745554832012824205570535247658905376968240475980225794811713760293389787285655137884566110566842118261458714625621568024462870150313982751111888129632622888860917295929361900905801547071962797993415467093311569166995723058302598798775579387041915509379702936005398895851179402985907069434070429426767126333312857618290896873679196634580072447279168595358055783368316590078390107356164336154391229637825633911039420627311848141158498753695651703827972103023045024285897243710259112317244799327384449026227857446849060044928887752145920296183079647155915274381148565312165167691932246476917762914528675336804706481845270374487177168542476552829462352498149773204444442284734522794362765212068237536062961684600170560301424724844860375835487682943280620225374408435477587425616831500744308678214424191034099899679529434384842508583603858907167289317110787708710753976827221869392454544926713902083554144825994141997477182936658077046963160241761599923932003785191023794164102824794552732512360796701815315602509915302780840181216827942348806024223246211093617184349955208316926795176540681845647797684029079113250002007275648428489125387756752025787076190526105771639453768411414215945654120500569561506920747532624628959574532461540689836360620497176506099591275248171370490818206525266856436152128210489625943230812248291465276280649008655990214894329232839701750693715547498150830529278531351142003022078733333528558564811740905969351482536864582723287399686176703153369955286221942279395920521993046611363598675538020152412525540102368998260766970198462639383423279680972351906311410592747488445417176102247328172731272415481220225911861477628542322642811377254104224230439274592018414899122978314608722448408227965005736248530996958470079803712131400174711730357945851635838664434141281129293906158090059116123592645675585390157497337349110865467045219508301533795285192325354200130265604444971568947779194494414207543992024725576499722258352747605249366722014413461510080533576288915906301640534721756590390353537582213547327388937983507470371110248380605334251939765624975605062909036398697178382971096290863237813121831899412808924988584285481963328160717646208934401992585011529330906305627340683048597405723771092570558961729970467332625838086984997864665485690398027909272320856798059824304561302501128009551925177499361596326835592222895255479140723527740444703790650478700098577871848014148116315135340682194384580294044288495086946729507077135865111847609663578616781687414297345495171687360986143300156019225695760779926535876175163369229589511851427126342018874088483076368507233095557288863734177432421157593354443309794791372775716153900230418668918393102165431582996109009905855447080967853143133238212755473184548496576034793291370383125720742054540510450548578949591380549771975048139113967764722683825031200692375951699716132880065757229077284045021209377520817349446660183889701698955814905614871170586945834332909460160620151473602493669011927605567309512120907362542568771247762060587153324227994323804103940202292028252595701975171405418176836601560383828346987975086944280139461528620529690919166115421172819034675516048525494527611253399847841842628211501513141874022526760274686643014630562041600177816648591968031715396624988066754949177543588116255320737216058781096942484154384758481008367700048909290483433006179520276220975286885739351755351553972980124625124757201071890980792093880456805818656389565890838641220298111941897444085175991781038542375274072022478122149208854486664646444170340661725607298051959885233387558280287582086045825254752604728638964269876289528496459318188999912339914928173149850773620083863788422144394177617598193070571676850960969391674951741645442608158392003007448682838324007830672438553501731058027188615620409853100280334410535034062370344358665558311394840023402146514807381331777375672889281891209574345822807729609376160771783899080265850092306084559185267529520825636460724791047441135826468974892595028733917457826796181069350538654325558586347931410349676251009157746002278344322749468285009120930031733520814293597679888267556844966742696065677565762995895414086393606670686958600610469540318808523130891610071854381563784074735204991911939704649187011438862568531593981186116079031748384001431049547962080913940158738403610463699011984323569102170497379050444585207382510919168285633700349872632682537059835804744255431099238974358210327712583712866912204968733585826339007739311281817288804922489966253349819938689159620840253000982941930585889942165244152570633523218305587692134117002304259351778938510667590931203906184320552973070949955718940441181548750214764175243029657784858692046832567732817898653320784728133780769623711617012604657362864697823583816780191595201042122319340568546153409375594461842537113057803650683908084835011027377595504119497827897385568481466650061572993081141996237092913501579483626133919898608064409572358225149765613119816852393500544081027080679936288771168082230229603930611349042965615076143745890090401461634320308883996917956542695426828994857024869638197966376768572981363730617457417535220475457728573409890952229507580351697873954482810801255596054628760685546005259090250586223925085625545148117523626154417709229644275391613197183437281427187740805863294864025394140028141727775391658125667640346936162451842015394833162535829626021800674362648148288883667673127279617620066239433316762559599566955651245789759514424112515953002157501112335327895022314270719086153388838082165984553018871865533562276682825620177221775254208766119568710454439680627998087105424687673022902407946522049052990349759258626888664571757951425870661808154387050680591715118882669461124943366938190041374292963992945092582928512355701057912674615573254312526440340132691408210083720907891949308951925722996535450216098556256000109195638420643450734199333870241343361257252304389670468617389121774772121401529807808296528015992946208804591486262323860046963739804906890446954153466225167310813678627215722295989155016250991181903308497175941399021975928497530683746845244620368512993721395973337021609418082905952858846440778895952224087869871953098686212221923380072458447292785615870568550042219164866911638769533889591429259777040902959312516857727911491473332952088546851657854241273407838185944291520915566711758552184914603290778662490644907170535606782755327260344449900294580593609724169565485975347412746330837215517808109540240578150875884132793312078273703154609476705622919819442133177631666828279767663580593349507740770904967710378149618755937189942529448280836897725832343461148517226275403790050164727101267816249931973898454017600043140089233967747755688446479331757535788867398178143601378096215765253193284001630050958440087275758937693938553704593885448184491450386625739352490281187518364053527176168214020096395687880862661912079307988194361780554463261850435677642060193255677412941517437122396015002452798646115256105823218280768526342097034292074992506018485922032853905330951794458842497972084879487601025948661373891769709541524889508609823473665094565381891752541208908175957283031494117234292651544737501053769450418475750253631738054437708850182546830111763502505379084189114324415556783804468220161124091459820689954601917145744513346258327698758083373853328878285901003183439821941893056047848096330617445940973497967224075933445372590573727423833791046529187014951651471797950039138861033168387890588302975135926866089589476484187421410925913167305845299616609537922732360511117935885157573724823870151155386495227760377112401052471083992169554535788635215900053059359562672945997427817335365271805709996126415031414654839590475218130407976949956096750913794111057515766320185581976382688892061448372800777123645373877336801945821528104888572976155975814658819567218322789864028954789286419065622083012533175062000489439128125495278660419461169381883107156340569664587923798451565826415411001817020921418027395182316866094751537346290196408060214135281715737627550097091491951700869733764605120047619825300238339856764490877668805471637023737670903520448585102332487843270558102837771093084891961074188750227906196554707646681682207337607607571294038647685317279010722946396026482245665624454709841710955427057626809951146269534215929977282247576407570663517091682883126400668987859878392817393513598810265952756705287394799662402067866793300579345473645426841259887776505402472969097954942300708360129780012022673757229929733116826566387460740594246552363812868662381176806481002543134390482630717008505000343761753753411718639004236127283485321465648066769302587717852652908722841182660913922667173545529586339453971244311063098251896440604185770202425821475328927450228460973887192025983738824101457118378102654668560163467098903604950118914684488704553575731957514354246649183749658926810739858586109047564134850538084938679580265969261315400204762081971979245105326972600763276555308513394955935423512827401560467190359126039673634041434586103180837938111698697334970714856580356060968790286667645278331046503233763192258484950183084114992632791629696360505675268380864579302043875940660512754411380894153098401664545112091940943084181611532409234709658697379797705204159496717752938827890446643206942595119710229293927401319008985183324354308591676310387937386651681881975285783844781340472275730227768103052571067265308728486878578789302119455117480543865884916716413081273140092437494208452147577052782085483605362056156943709994260078577885617739352313314161224057620481384578865941101089254091914292029398092530442479921755043094831215273882982054211998715547050171411911960462313681964290009404542099042108237707379305179204874038420641704833871369294301669395092306558441060392569577767289354513367271320721798491659958039536797743745954979189750891739356931409966143842257261498321293295835641062155225656311622115438915960131909525652573851484426266515287877616735883064564177396124493118198922321548814149700231605331439784814435923143300990454224695299885215370722556253938224904019907749213348325537580531972547274948189711066431376711346521071398813375894530370807340755857727867124614334008281344490967013554899435638781907848454168132836883066792781453164810841377706796071445930588190100202691415413754067597251020949083248929469375160227135577594314896573055441673544339018948365238432250597357962222954057870569313438605471830671156266075330154705337656007636572842445725968798911595505547945199206403108318146223881452532627330888284168472115990782847336672604046501166532588246426164503528881851620088296620768613310490256186127155799426565733271740771021512100025842877724671452588545951613511833915435953293266559502953559639029176299321654883058757818000385393158879018521710262515459607454071207251922431370013277586286431282670424180426532309303782006927293851353688686499486765597455621245564393144071081090611807854384410485165119199259112520005073780489060215842121691723833878647081352699297420656330551077124906093293037181559523929061903427918683411740059449813723336258342844168059752739176489728978037781226555740705651314006350968646122375211304826301050185595235857145217017625640740917496377076536358792424780787991271423029745578183706775190289636651699210641627959229198070912527315475015356678428353429691295597664421726483993486609392450237949559572763274810839627256369453393725061151164967889934463933402803273571744638448540282493439922580387182162550860916838695892015961572640479948879164626191165747307689677905571250257428366436284064169789954070309159512044298569994515149422960212606256196969045219770125791665776110138474222865287432433164695748485019168485432436734019975793233178089142943477900815082618871536536538600045589085296323401306079987719566535596163575710900459534278036532279007223676363807869869027022143339487150754800505251827293886297316665446224044755632321934557270087078830299886071800324170666675257789444401441703276825190770389966403917529459806836821599434864958046969156138938457984084783394230824016152724584060034039844412026463724576355039773915345703918550372953003710120376669361227368348487565031682413941224366334305327213781384286185671102337814482137827435385748646612162807442923722609647941957413385577867785562304797177683343919430914888965379904611828839664865853554307499377081655038676808017247494346032640672616229206807468274768761796789462545233930204249603997092706481600875777037724613865933775713948242645393673910889366397611739778107200504825041840795503504044389480301332453285360948775170023567630473447746556478386992722531886946324935217851965199553171399022781215563949735123076245257215221486630118395015394056150651797209171218842282491342281060434099722716197396902685366636432316993574029185041254317758195929761936703314113702883281297542524473519180541946566526072178469238308962022506832173319359769808590390248154960197656361078640190165546726103676649376075454416912345388484038927196765847186208769954188698257464414702728790637460200653768682005363260773067429506331955362561374549724435576391216780970962216642267341981163962083274446306366656743998538015898473801328364933976393030917695609744849626793956161625648997739462394084438842806242374337155840723412372727826708206096588955532579571183730437613325436485428046123247146388408545481161842727442210104692191711756081111873992962123081578900876798662076190679453757673443161185684701965939399666493937019578695926984745042744222088572989263144176640849113954265369360896093804493219853825616536472244302615166120935855079647649958896547253633812334250486920446448991900866553159434699238097696009894366646014236097358855858967918084285814503538305636413932840177718735731670499191883728187114445919105620225080060572171623921508523068059490289107745144959680696610316950999910041364724227086706869553019081509925662292330589097713303975412294686575495877866300383449051515091848489456217437755105766890977053886270610672576909435281452427632931111108468045189874324047697632392761736042168957603650778480201667347999752501053336955672336757950159587573162146305875635067481278454278617614644229426893350117487289778998406324628697500262306026561157799451481625955295855186675417159813134691157084251178348530257648282434682307378174808863537090667428358984662941563169563836860647025355224423475761347574117255066656030965230053284190355769878955729493909169613433474998561312489871718957532030473028907490041751631426543057369298637779812160018859047841185129940700220396450454588628480561682374001850387820269285745242193914688922613078900216904644733785650041938216218185591591587945470914254009871370627839464519106336713732096087784822750939757977612250050184061865863698869857412457610293772628035901124183441157557889118581385431609208338601037958500359922800625163051950681946135920359102706040383879380177442340460608327210630713555567389398113064827720447276124683028246906173682484469419541348853668621351209713365951454699447103522446219418320326766191305373099689443767448492399720790298823398874794629098105867065451347265203610954004161666258478147346953422661062837873490230139938331981306996892065553396852693786010154374492177571746782136830203125668951772566202672009751378626063485265749049093396643699617284374182615842738772115981737480411881616241456588021669195286634808938444968974841438142865426094499034479187195798524581552853541163711676541954035712824870881434430653407480237035503592916146847145895975337684184082285432332600370823655826536530889552041755466087187410556001341228486795795982207250894383533174956265483777480696162532945790141056516846654186714602924084194262575587887828008578759721185532907389140623726703161377857116869426217391571093789039434720417104086000861237522375861586212895122292134879635378534092421717862878135917129003382589705027998182025609560115094962884567280695037078719006543434934810794183079743301891427125598900501999262986293891618639137234729956742485660593601109776363245855264834050516512368724687185265716985932391126026793892796139917095031132104656371952041305614912438386639962870240947787829885554678642545149197818999975299304472732937506563490560582339835976692087715435354424725458440312324769001614404671409183287774998721521164948654538865275991439914214519260712112304813768382990502412180887877686435305401614654011611471224403119804747541281382820937379471565858399203281276224497775676579704382604042663426116265795369299610836285804823776979804125578564918961357117200039606404139582100376390152763035662455404649790892749497463946370709450171728958694620878376905576238044325811579262366921915398610473764029916447548384945169425816238050791509293553804854418983346342447968160936192211214646172987797905722559803388699898381055748432755171858998060007361958305267797946694144606067476972269413436436623533627656265718389623193688900930891910185658237275426170914023097603359220448229713199203689490767599265143936512520602965507682178789647043387153320545989532972689123056637188982585653629703271599149653339133017311625818021900078877227822788329838651965011065873467345539916354476650893492734958559253458061548673165817536764711043648428938072324555880583811085377817118260512882659375662658339777208403718016688801968436960745874464402962591514165867045918905413449664002279379650072923444838611269136074895013431676549449399095384009122926606010149613499649389621411251705446570591033174010170724772631400277126344955196909690566594282386235092961162898321621132170833398677567118945640398649407928510882513375582213364631457325663184884746133036522345985043909165465485424737803326705050363176577889553199795522526305687972005569918339673280061798565401858327989171035735221984491876157498761394012524560371073217445485462298439610419887517252959502169935649982924686964687335762087063191929698485143729451306899269870341785447326368851944470335710767697753143204791157940466724504995086784807521883758219130472312418721927423728724470963475657038469154032360720868464887545713893089014807444280347971350006774863786476821366159437117925482031408944057225289676585210259612336003838830040853333551665398087657514418044327501407642345318103401449439084814938944536130624025417554807405615599560089520055269756685277524001847913077270060038308471846369595234492296602906886291993530365350093160255846472799994467480870208489247467822462038434790458273066210380187599693421768843142004766848232555361622591391862725897997659488615514213645927004619760399919948415530703585795211674494488816045714036147420912285301758487549761385677669533857916707558494746363043259674378272493332256294286061164971687780489140194047234294717983285378337309913499415654813984134786576872033605528898342328760823045946620597578510823685639876485637643523392253427980169872169856795426493048945226699983052478700121721920770048754948753004694038456681733072454391245668892913460159489699943672429048030636148832378313901453893942982702026375982824039963363611795549169450593301972903111412415063398580763216304962711514923597643140530050372252353382075969841900688285015494900264101961669092586784926478867324300620997629711183048071687750284976915227880515388479207818614695740788864092690251782175765069903699213042244311549759829641056714778061076072467871480481532057500082845207533168333758064516760935943712135948428326977580768414857077873033928323119872447363071911024456357381251842908242491967389210080306072705865394320367769318117211396767423317843772320347983379504095172723692637308378253808260040119985961202180224190416854227524541146235487032186495842072185416720414806395995497711215759878066967203187437396527408525195888498092647695860757462008863017100745724419073863487276493689998615991814626126710484610322704063844806973886397600570221195062888902316709825148887830173497132452962030829807647028746115681143148564410121988429174525132592474520933133836025438775855302836162135384569580708265329724939333362535912162586627877360292565312295391263251403663281370196645295532909499062623850417505512894971808572298208097316901988862672130282701554650114835809299850172203577738250849092965020479053882173978580481818201295155769353997324739720593637933285441129849217886928281344430180879447344636325340992413592285680572321711959163548776121434518474474109152449465134717601620196555169093184429399176135942581582790406265298065946022625321722869372949082908411583343989908760330392074766088144997478575949101902976158618205970559143899965267171114870767378939021656007157740166494785989865529082413787089705650136632235154472907958300891441228278851165484086508694330720060278783054655585703947022283424877154291148768738461361542165388568739115840398769740571464227206739067864115301352690091969163721808259911005020591949875146045009252039166220526742980511004363396091178569314157800554752226202464512049885675207234696908289429859467749567135677388081617217430091756417181602191976509329542425297377357609913452960094254776276592745878620200477682865599396681595183340081363288451107661886911730207727680192813324559819603315906141068195789167374163479509137641981881340979798245252091516411277127122486452377942356188300070935132213634059058606302718696552512263390137335556386660311399694375492106293739020996983236280019229757310583525501387174765304389039713543550785648298649774239966341903612690173942531318157639612332731170464468253844342248757363369312145090079342442424676051704469860751841649456216104833831886912989617899993791837955893492095582918909873171474115840153539733568149742671091201007498207556472791056184498190204656389255789177559461092726116423128491206753340076162706268026338685840642320327740768794767090804445091371364171606549164671819613987323658352968293868273746063622828451880104728483138058030861222267251511936358087554671925182774012803715996323637956037052283810886172090613471009532565401598404750738714753278216019884377761966936802131208826751437058799375925378676678696289216912281694759710334624845004759149090111766952665391673541533962491276718889311097748199495410083113403578162570796271997006872663002172192298904563484689291452160716262680136803902259804400834631106903953671713571148459226129021150104510028144720622704354345627686687036972785088427509470871579365106881971536374543556158431415771330047399682738861607684690957371223737206465121430227157966375588766260916891618168420002602102080902550390682870856073204101383520998103026977688590127514846311694500188779844136443163031931505317538009454000283267548354988348446701458155898244321611843406251520839592007301726531807272554728388236476721191649923309189847556127147017399180350680301835255292939873808103798890543602826097580122061576761449240071768310353448872583781262393156158032213673620333561616451180232683829542334593392302187046768162126248453209315561133698444123361480977216001343654269742404068537188472890590990016734082908257017085297378059910147343854424469545668269528317195215027554918996249699555835673908045739683162469975696212157520193967612397921765177884099367135093023497931609241079758829594805312564990290829898053381751895549287322000520085323266467139257415626089718194589086645305483414013607189836738356048072852580465038434232027426309519670139902759147171232728584338293584545712189818187971032751060742066822090051138744083232941804389788717514256271483205136604376545346076928314926258881496595112572069632530796276277465817437694097614665852313255397428592578911936108681005990005881382365832709324138626518452150349622098264011215560553545689796613733942552953102089976267135004748177779191512703386725990869187200993156131704091314226808954383742904076266776071049760973189192527137209097024858479341974764843993234558212354164032601502750861906552001994849033529125818065321689124658732136087374449589510796606897515382370573064110120988692414449536093331069660631599718251078601440399810776786433722137282527535995294646580303047975856203454839426877865243530197290105381186910772341883208633421842763432239257133620327630487647990356757145669930818442557920067175148402772702415330943444143211815623341416718524470062534777479146364257797593571297492986620929799935547175870675110144717625615109461345570444789511303568501270209681824742015858264946900990066924385969340954919336658955587400536919313006347151148482156117208139430927848089444568207198071892327371954227116433016053798196946582229482745149117116551468352662089052426133361724323754384843698729490403422803621196944995889462150686450108834358318955963803562173018604811596664688050551370272748516615830717057711465033922367910859833016066617674802086418851506004592108583000102624276693826235539182090220691852575023017241076066393933954711799792726613764813586427960830418306999212250363809807106170369294455957996335077972981185822756490902455898725645524165783330507535044901397826092418241029375223178604685161544903487365926772490499242938256958618280823292274274716906867486967329118408111666621785510512382438264499973522810626406104252529827618207369721973035682458302081441098678978598981850924985634646783672012954214679211914738623588855692850903824273980165564973050446993257172331767427504541144923728238451865058383757528405513916645546053993652625113523008499166416607774882365384905676168334377985972256645272792407758475912685038558264326775249335679545041718585517055350894997809949410369407491901912952764136076195128062607848217624082044632870551080921924369093974465867625380555165782944725027052997216870291408671267921598200602998254892451830005109526543832076180535157135475285723417037831683166995413676928509733310121166196083351455475428290968381096417517516363586263536205816436627849489268908817310100180720775643572546710193770183079753878131981539605274849031324650987149692335552819288786150689160391914840184857474299522818776856823969676731933977256942852182060953584288926817879495534990750789974493274077816782786067095681899800248742353841543154226933633339397546277986656059533674036315994466544963451806800490392157629273353740593443862361347081913688394421977583865077718022810344096997526708976148490758233512179807188950299528535208280322091996986126131739716469570652491557615883935051837000369786469261731545575792224630458821752687070651433878499710426042867522419084662628816184250527096519676946030895875960408925211130589914206009429329322936667727363872169989781890298938832608585591700205520874392664695111747474794787052741043219059691990619491808357572833848570614529503768608535772842808126797294740243375425643120212893937816066592490603175382708483642666583111665682501564442789049232913018521029415472076955826450585808738935097303562294593473523578682642136816930824950709151497646436968008484995768388443220083059729428651078181426191501938298484019456778297800153239804254233135645487172375235465722409587868168930229254578742422960971558779896993121912985469177263272792326320878916139166621582524345649044056237308465880887460881577689009261054800693109846876892376615093114787885759442371842662692560868893380189379053739236327823645376583984935601116573342706097203238493039882813869796151057582960067088274912761558925732077939811346493442063811336151007400535877970305857954791251318471183461191187590227182393318856732258353393991133392660254223900971336593206858552825273238761097063889731658160898033415759706773391316434696044080886291754001386051681872935791767451085861207673633664860905159545374953561193156161138692741683391254232412608495313202920527778736560075065290323005724200921321757543239264352404379431788404413545416335371900335258425084843926869234941672385731751121383249917689443035929862000578981253661397124256695077607625791746119012142074594947702823915196680821028889795635332453217910847442172995634787135449443075202942019132620534697508781643520902343415586734577383127077768128554495584171498233549844438430286809005701150978649128269025097955303133428831897149111964433631720416023837619427545561817198704245926153187304700591110900166762632955178730967155160679185145479027257482062328657985936650108771145379955824443883179824235789758842738357598702512022971737163460385297053740355992704006192377257607994884059232984169051092608377933764451512868528939146533784915165738558720016518935942624389816259238842257027082758531841178997647150010065124658351880980388781915730240703166164840307633334242528651338159033651704090833984458174417393037202542909383281136061744903217576532326402108034654753202219419626990346130249155414443031677829477708657839175069526249933935072514035376951503811993495470722452665485616485873439784295915509114899444535796020021118075464348287794931484724998842223567783577068472609247883012632686143323309660640458650149119082539541333534245016719777619667685360422353087798552614890528300957072831916736624719238738041241686050317642019046093899263241064075229105348057431547624864223871853253856845615645168999848644391121602222046740791155633680149749886171681865704978173486625185593674321959685926789289509787293275853870371999538942646546799912445486957228972956328334816894546026778259218052065648170812175206800137829039375860378097395382702618673838376566509479258561411208943178893201923079432250242329421873929889761982748210313592376340649211828216680641342915244839477060104463207055507567689712598635359529722343365877301773401843015063366068582669229197136920170216811133733268522789024244334914714884054548918208404096375905879425677272618882530435027425544003330898698365125044721701782123971806827875988240216689782575939109400392406960310574723511536568636965478915729055650155989164933157522214200723214929009953619610927854583210244919500797679764317296139091315411511767323018103376878930996391094674605735118742407609416506924817683175332218330746469899771914641991884210545808028949220857395483973805300706856922234270828371456240729577552870465368614307901141828085163636873102404590605111794473529295692273206627484152053152970229072127625581482058459432189868664848736888338725275991202052895003989543919892116860198666701310985008809564749651318435950550120585114365490654854249919149069763371658143997507199690258184128607103685378074846002555423816753777310615288649610556082776710624436018483764577013653580188949903279365127812109126078809382808066898903315585397486922586951188580958415811794799703605784077065143916562057961965716667006304982952671032835325187533248953593829432234870822518402860736427994180542760882580398049704096288152411598089658139139882203707087842731248637102322113302369025262550537200909591116574837403774680262928248118310674139292368230508536253598508671272344535797614221253541564830699204551966546457859997971498834648855671263129807128472708004059004010430110181825071863103562629875830595497193646534011616856622649442548956659160448494117670618634772983936510706532431052764411842946386771494353876213549474315049864286770951268059209689831029549618424601472040986510558471343886497035270751178280046392555028865962820245044775008231691357569180443455449649278749207704232631854314656830078301471608650536476079250787739474626941665385303529663860659931734890551322573622800852401788912909922860087161428902908566768920423699207337344057054353210679146177896827879437084733467507524989373949400378809622858169655642392535990668529492488062677428727152067350721130096536972327581625989793312872478713317846997511189748493453133669378380102090397485841606487330485564592336853679260352528474134655886622820612323422622953796037680671842086093934242838004805427846429577262443304651729261136739594854595597421402414396301792944764468804589294177924940807444980306474749005267506440828148151062312271131767293642732820308836806476581719753583134591837503644218645903879338376756431686184678503411205791912137070377402012358162058709451942063809500210020383174827176573213243720474058527450782371694198709266943162175381684763661100134592425082116309117687370052637567858570953734196844825249138287542492176458732204102915016808454725209201443573614104799163197348221315483483578333849824689438423732221960118612252153058200788324747826506083395230440598434319863980881825328613797238785117765537142631434839784673158271401186676467819885333956012575333409332466929838214932173740509135600013500020519866826333741686033214092050438389462749791258741171249773427424230662058289767016218263753650872634391336769672204321483923924326701122100277014110130845764069532228078492968932913033849899011377976830856044107967786838780940401233230755837814346015385748706548226780854313892254521238886473439045265354109647687651751179708798837974134268958226918053279247977939568834712836208126272789139120249399547398794559666756288768065703508233849899987510834830304196531968633104789137122707033618544992184556062327936191129530892184430937643984018610061636065551280489287456559877107312504131889606407794493125921181221164795356182182182500656782392563045419740127955032552074064481858727686880522900057366309159900017001074680192080866523993962386673586324445338804028627634467633707255859473727034077056312501936452968190341211904288681894334641209969168472136984913827261318192649611174682115431108691053752414642127888723420780411356652906819772139134039925381051442921978863509829103704967676465014187987979127357695629533040075895913835495811234908772274118785611640532497305296240013728010246540812671973189388702322200852628869869895798294334285459607622536167616261685693706170948631944384350115064600450020825603522077529939347285295655296813435542833435212741784975489970308662687787873781629277046978300135565679948469030143426774612425686359541383861371813924892497827540249469654649929345666160320675162534030674250678727403652863155562696395640011209309391409356934351472416243499860725768739212836002830525311840365183445488587406321397968780451775037374391104570579452954503551301166962335312865578990097241630276484669667988704476304772873995276221106953826697988757684124379185981764383308533674385676294032599325159928227063781533481556361623814461456837252585892754585954458120393108471842377373610311006676149510085947413275173081116717898562256784981579963165795839924487809417921619660202581734568653706023080437668150430489140102104950188485205926015135417856572174775194423922839667938332568428082635033414003750482360414949217511435332144392301539762564341439591725919001871923329675738795885631508408593319541269796613848117874590534428008016450775020417835577059369168039960515482651260770585316341609769127178013721809259539988037445485868014789581427091764585953981433301809554187519068729209774407377390940299711172521238799408502777421905044264437789984285916810993937362325920099731753835485522523394484303887366881563638921092454924653889524908362349440153574936060956490155167073267272361699759261321831267229875629362272187925669295918068313330336877792871721380240141402925207616226348147612160203897611637013969282384384803828365200258637938301197227203289055504648770280617856103201078388969634166528698440136083905243615841932349449205496769588362575996297560545754570970782012237562051010802570221630829878263482975444337927836464440276600299788923043283325972787150573600429594424454451718441002012707368893752776973192685177114200213384155798794339125698006713572286141803958805843338967004445491651140335820214117375974731529052198382616549917908328513604286273705169676653340995544685550968938897408590324984317391668834413930488191417396014855168144096252856585714674681858647874774619155022968050675543359173089196847724514010542885894701467334492462397900275044485159126020122081239967907093923558875463289289806848125275834843586955810716331207575553247045442217768008496299584959026608796237212937469235025293459674677022859237454723991605845151804843044741795756049536639396366199952046800992016098026113685839970105307294169888246161635979834076765525762391791217177483120176078938361268331028215819506574711016266448914402361733444083817247812865957556594972974034122855990383167323319351883198465189002801680641680260913329137029864601658730913372564235472234204432284936878224167831283023386228369715360657604269729336415449790469886538225817936909304647115351064921723882520769075529488240990190518337224194682924774473083485196184229193566494413936537148097376901054500590899555833586914336850167628325382532453062337147705815593306994457572620365611456897861563971576730178188652828157488242142458517208763061900573796619581472925457253237177713861199387409832049720622346002104020391972607643717226036898775875182112618615250770504775812365445598680327724112927442263704692956342971012477991902237374249664613632912130820687930134884789772907500038470191259919144713000468789169580207460731533928978245113001655452671965489951327484666817864219151441280820684330646668161518076268710693530035517990548873596279921417489177402572493810975356766432172346381298317210996582909766343748009773993421323256161025756084963337719269897894464243300072974847806657211488355632445508928921391382018989893215895640263105392150455540407278754386365566585139399533435678042267534028109918148578166370908503905316850855737099476399980687256606097324340545699055779033480441545597589382666778933231625106013988894982922884597958674960565313115096244976910454636487927851119209763188148062044945745488111723242125199964574703529680493426068786636085871560713356133911621969098972212699901693133125086608275556863885363560830273758755011558782960882466516032054571562702689274287237619015416563995315081593852869242450550465998110197934832783856564299058971288542907858471674358972217422663407999690369286786343245502892203548693330756417430940374454106020821505510959113114001587192127907709496809587796370372278201870642535784533760755087507612390348811449493984764241112782552458430954605088546395753098377023478204457952489676849117042330409059760005113396267054414190982260547088736848474409956468517308269154775764365837807540663944448988733482226857465482491178127524002259043193827896962377778618914756937165821105679205989522308682471316863656967477240834898696727960619730578868871627577473312400336308362465796234615260916843347736572983056938977655346500057017666794242866425007763869939091026151857389753276089612145207140382920124357135020305996406314561352196251406606585847818800103221552623393413232176054155867022209387617852544273127805456898985870918408302894978254153758225412200665704595468404168054888977410558246429351962322392162576324325405668057139938151764116103813538792256179241089925362450968155379683348176490013655652514200150890988350740362946388621322483005970755475107496711988502974866128912192354454954942015009929023133088542791644468109161924374017242905843495513456370535721738439480777096489525385399923048142240574615189096322833216672257544087104341209990367604084108907379961556039361727966286735361494928888404355659881499981227668519195491686350554996034327592885857699364343093941533355182842370632599665684360329141428081012250676109337413057095912869729440988103395354449814747548534439174941529054085628111783326158291629344927762339431594009250557391190012134698906487972579510447481020745394830461065779149081638019366966130183189511036630619987937291974062069339456706509506757942200257702984731729395478765979440594226472910364043229649478845733184429690881997862653007658542865652633734574460616186850891676260678907052659940687370783235384459213063538664770475436780304274668688257479517011451489500144618478785264133296737291254396640127929758993414116466826231662713927430711954029640128827273936343023595299408961121847064085166293264399905026049078102868575168871417972488866876997245165630054146293926368742125928408911704566494634277544046454213516229547190833321254028096319992440892960685200542325578949039836284520819644485553342405154722129786432369248222823330696124822350503383081600523352814459970833105488679636692740567297436833572450659205657827410506770356162041936558156414212894040725773856413208842677382111594361156655801953276018259532209741927133022907828230983751106426180348137600967745664636604696106665903909242747847931862242765632679351461688355957959761326745632098131743138160372425022477726239462084606970504621709033647312412365950567821958157727629918750865745595802652532743407424448863045680296041939971020946634356368225736246499362713007496251629601712641014528142381118584769842636189099089482000042072673622934244346761512478508806841258682188833774112741157062867607817047624546261621628838727945571820718151329580828692671389047277269170039310201193734290435789896229524425220667464001301378722616999690340068182894590299645901002789137514551541452269934434581812521283578396616196203348579023054533109987169299200863099418805701214417096279528154069870939028833726647905389025637677029396318842956807669094692081463670193517950394525871989409913522602064120971014878010074765524816456497075061557633144475235142419305384681781492521323303438709970256512556814510622595733823958051320168421502311197373591256720195964935826105360110700028335948281461719524999162868494614097182184610095979153321044107884998086732520688855465713699266695568642982071902508249964294460782630165077094771330294670468022023366127230932920599718299649564366848669642964801040201725579904056003317798344060028815036673438545857438020892199234216537940099897178401041257726253558210024796839962297529766750967752521340907728143980821752562496298012727647438358329921476864827131687451318918164537460078576056445463968286279245729811058160818339628915118655489285371093911623868527410079680981818887675883111700024697422920579480189667681709839602399161139587348042225086566541652362016903618116969888771679174018219203545825648613495525288895226336996394438234619080023051225044155577831487371511177298890015254342964297169387264570531753952089359697556857330343549776573661147206819320064507953171721467082665558505559930730489010585349064102408939083215656134035762518133556498486365338436929650465491880062529098011353452570271940790277595512555288478156737003349137830306778588889703082818860127228239969738528406963985400017680821489979956154769458970445403040973220832313117865261732034771349126594479343742611079383946204689462761356760994978758863691194847889663926537937522775025266050832794486438700143987565330781676057392340712542723847206240206803622420990182056891923272934000362649388710015213621986921571428558248221108279040633626337900193456985406595856625721548924583345058044357797043439226761244883281153522985773038611972405034999012613776022246626925352238091062564040350089715394647021985183939139020142177665633638526666601117711499995881999979410597803369298975264395643807112298242405816729916914569318113324964485460700054269654187140043318389412220789774773235985683443910605787117022183876187995066108805074448292258488289653072329474491502064834763673159243994170306273898733349139655051663120001678036346459556385317966486112805522801276327229604517696193326028748994972654567020061638301086821808267850458960794542312930768606874745255700095349664885417458514770075122148856224226902875875208333986463523334110826232074870141543038310233510947298475506142512020522886100361681303082790496422458071081995897633578314052082424550838458649500843413765463510786937248084426706221363340360789125118888309457349791758819569310393725799312263217813326677043793649514640333962888450245453920699473973073993631895160403252360265224230299270945283527348562329632276711057307938642236468420048407079257525141310201051915326146758204558003427647020499448433723676840338174726368678835024232984262891424811187837176197702178466942651326381948931696927596357793860909658663376855653401979233929889699822102578988163420773888788961240009303770430185565440770195526830148842719763800981702376474082724610302404701379986455951441837783103729581783882099615950909469776622920010996367774996622413095914496276506729155786396015863286416433910623765149777923395026085566534025727074599671861187239612656092920872411976674447220730591875271267430005742079556103556486101691271123266724789077268401915670789983210604027557027651046277047632335989255863716335487888248535134273035731715373407415025299874769436347350462367814008093321802816424652506737451293424504211156905095765018458588934737778826480864597357079054246158275367261145345424520604723411189395666852852818007404202869956395850254739667361125396668838956861154932761773237232767631537532827107246653881077390166519331244755061295000418342203509658355317458018493709654494663271822629754740618778124209953106691771036903622222778870416907518542622329034962073580360139125247984218911611464651683296347128168299482680315900349447400090466162792167590315847047876653626546020812986365400596193960638842517177412865680429893098158523570350028510579084190840584087026304063373244519326875709383474214886229432226439683076264728912908304456902114875242079830966756032208633817140759177275947110611844948452825945529037325895815409754423799273400346517386708670238586348235910476959132301262489800246836813672814026522618800697638006636973210548959269984649582152057526253153464838104859335754383052258141671828954483329448264098764558704535974242958131569049034350725183269293596487229581770222107303847626722782516725451210752860373929715496243799354259844644622708830789949771486170192321527405676472943131285708611982676824174129477373996542482176216590444085440059223005903790750904426220324801116479305582101056474176734386836152502014943750085388859923028834405403817487324084710998515399019798397603418546698033538069015426450674636898286775496688829743175052691556494847259167331177994261755219892299339991941724711373864467247429862154001383722936320418463540012310154859554432477049940940240298039770922304348372611318089779215315924883232391448391485641961649615095959062447849899556668107723047373492549905795562816279972718054806700505372241304483476131275962220237098706728093092061281074563271719734379543279804588402608223744177652158504803311409517906367669561591736411128564353100086401805516989892171989606306108199893059616549468299783914815650625534951226878251522303382064016184664347567259932332873355689708781641961595009652989441429864952828525977107302529726494442192896680567933665315525799204466158117888058186213536946944559201559806861911280051473703462804143388947740938794722634072060550342055423156292053106196902555948411241209674701402027758362972281085346685679620912152124738516696697056796105658437342795812787304026014390941534537559182616520337412959845283327029467909152098197004323125936332726403543862094146223469544174897988328492426777810355719605100437505795449023753859194696117247715197929003220779971569514986383579600927488785940675673375028520952190536700330860915557165464193513329515839876254694353511435858833875074187069420790018315947445188539338923898128518678578587517551796666975443682320077519708163579509643568745798659785048383776401530935911757009917482301797030717013527250399353388565125285427820036961148138408179576397295635841902579436353783735597943263166223363114082989416975979572412254199864211299492822338129341377254068215024292579319589722581609562467424520777208283580144488026782755277851498835881435259495178323040539580206268754983920829948548408083015717332337518362310709146413869979594817235503370254016346156397625492166426685020193839938107755180624105884129329697154275219911715610769826788668240893883227502893848063709418175879234470560878059353299074327851274800665478579588931865351315327489848082311280231183699717158983290745534278607655313868663945594123218968735811714158879232914988756053194810170263895232936057134840844216115892053652481992711873075388669372785126844219755153526939830163565118178836330856797965929938761048401546514449321102035580704203133974756220712364490139536006790355496988362725316230309731863654713326385051192903521901569787116618777837249559103498036370074796098625743309506047719661741908593625146149088990618454778521230406948327984915823566057402542056041513113718367340886368849486660352066031866781910427759174571876814966970070279034240943352506063357260106261507228568735135954587673095980697644529715929149604215436299356831711313239681858246271070596980069555440050882669215892592945856470558338195296145595368801223581926509759964537105208729226896855745096975384259220542525604887568711432750496796288602376438596712603507716555070023064036710458296618382041300147895646952154859112761521201324183941638929983107420111361422963309874745340571066299874580360198503510590638856543294848962986763755009690648180977267130517877785080097040883823033742661175200944544339780174700425158791363526284619330095084008310862475280542686596136432997370468961541162203625252447233210013174163374940503435161605357233736134523836683420063185767893440264744072606498341429816583139657125102483656405075856506631212776275085733367877070317651816336157225378470635917509763204103835817193236270420400193020818542804329343776440193664603226745059404538045299525340186958865230663884240487108816072229259046614833998786256005527428576503378826692194401456542606068736987666482062434229786609250770786973696765847558258899074079382238326062821912893043929565608622205699528282348381688585434264820426512210339548082695959459562437694373077378110225644392711097118506770063307585779088877096492353323623883391404042065824198789631539293695811069202014934347982339074879232897146495484438425858753173428091252955635271860853475367874645596692757552540982410120880436250808391156662046427620851508385408437168512566899354399658373156327706960791890798369195644938768480958302566469816412968867225368328933642861393045386268201630327413996511780875252564940523668145330199040747550016513270895402533511902006302626046545091621602715575860032031500050204620636252512155379870753669217312910054660977827348142499319585164862675049486891325885852617854730756058231773112267738108288682456346140963374219405238394665711697972666629486600160512293167433433378885970670421946317597174929923488442013473954377067440024915133100076857748047803352510785753762110362730294748140625067438462129921199763444591411277250233254182476290319603693814370956110365050942900939888966539472199932428604957145075580941592417097598145871160902976511296048633688925854009934469371076443606586454453586164606141727737486332232030296739299427136877256414869064887143985855058188850496638962821238095117867002442464238069441623488203635644593868231994773808061116500325785004502573424734499158118447717953338058930164550093581495113600016911508737226935113050632949313323851412162852359604367311209269322335045913503733976385422981027982808468018735590883087866108212806799828667373625068851407329723685544096823999029582143936319570677890501115581475328029578714250436592226483328702890874493254342565249388611583147663412932604359056651643317134370658731311126821026453139587842123620091633997997261498322336882687169913435952370141261221283326754178433681609869201704372161046786831163128324110329415456796433659296657512667575296491790851686544353699377833679631372297472606594114266041738477196133750333637884808316347965473212348657659425424891436036890088737565109283555664302321162172607150420442670944218903089547682670597832518909089639232252002460585800844957933048798561537120849510798507228058748684233094696792789480812146429243260799935980757578773262641497668322284750356695317990322395362829870830880054525853094511691546966021285075435550849274746649781415084770047749769888561555044478425569218585543681612325340787354356995682146331872423593649294149901349324808569835925172103894756603604988585556141840133742557518550693855615829302177552435595276229823802653420470950702831028563714961948821645032303433968758095315638498903204535149041021834973196389014600622019808387065564652735996045777131005788671634317638333301353251298609912622532587253432134639350547884548279387933851215343972281887389390448339933377173486096116220036373924090303032688010603838367555890076032212275919190759550465370449404710409039841263964241460183824937422750517336140032108977221160628784732330096143606439266543770163954613660189276636603246520187358196223074038033457871334608639360381439017453748084302691087625787291282911997454273279411338923448536373192131149986837583632438988887639388244178714178800583830303906590933482624159147229246272033550678741587883441916497002342611016886286979921834013927519321121593020294279734782738340875245371441225908375967471028678356865771293641683481244078681342417577672490477086190548496715569186482831135678544383879995789185014366223798712169278768539749547233048662862838177529234766032488342118198397462774056382673852734239326760725778257703774216260650045332579784097486764787345156432138484272274177714515553291051536493885771494389937882822694564704439675941295752706749018989981197318495585892618611973404856706680934381675980003223811226308347014211133679978948255541082204608745094144195445239571460899688723920682117163827394499952748242500315288789012379701769603685270081126507767978275536351091559404382677735160494765899562099785406486689103253659550750485774939694695203050355425489294820966413435292122301054739426976164713937502889442207595981869520827034026863252132135500281087565105973050193570108869499614509640011671557353024560867913373215686531605726054255983983375522701619795367512313941077865326901741904021156226515139691178336087154554978545521437762865611737299187940141619448167385249996984943066304807825094034908040085536894265746536019529042914386477257563247350841730958999863320211745487563541456385015436798987423565100619570562683351870636856266693909248211765123558436947090478157188164076286885572865557787141568364796060085211126202983331504326430223857420673486118953590762689920071980878750794427398411323808081438309070736261228650146090286595130676563900129943244436386250367492143104906089151269272371473001469925406247792345589837525237454427044233435491824979187011896293416782705633650510964090776860424205426488213191965426618512120187629378826097371768854431900765469265640315848156975390657303573593837471887032971162611257660236957441581063178523157789640345347035306786161331002698045445059342833097444699178964444802217209893787684093097845299056394158856331601356853771482379273586558573941128129200777931209284036571401009667842235179223537204762179343312053610760420080879784484402558510564613409754569440636518442657195873942652983229433806709205071384679626107543222561325218623359199259193983681141323545832262543312350783572879766200723157677358069198307327412602445481662950457100658443510211020298822917331187793772346078182130222475343119341435933451209617610496142573712572482425483127746860522242334665985455132542587246740923681500454057801590343039091258022682418473397698185068508863297877813268261757289461080988963728064684139759840022798033766870508272727092438071756160981864094656199597100517222078857341608708097015695095191702585977971913208742401390782898681407846644560508071645575645689650042576047399445539671225453921954724001000949249406090794621090998452173282884064146984171730758517522201584949294942340821132773547165803939440159891469972336288100439968309713184915326322890091500870422735373714367439143213745719027448184285305378480032356203646993716657188227591727524923533857581341930750262757070732149114726791997987240158349617978672843367135979538667766207386775474283105656526200911549636650034400243122365821275753395986905971451326116055992653069307001395631186587616419515895933406400139248194983295282236665320599510787565640124256448776829789119264543774021215910222949015966540059035309794869502816951084053644757901483847946435928208308131564833626487233660951310051183394523915954217707946789005356387221152196432865105551076003547668720623559700024487369082876982506041938064393768604143886400941734598004055760013369891968889080528491095195578250965921104866585402997236369792420069816757959671693374846977148696531437872463607384941847089905265683349771135402662866331731328006882766409225496604938888706020477403536642753118829113748365398212109567618739202986479929418451263531888770334080272932199755529767639029262305816013617915878422623602767284605447628982475389907857720388251602872535715926397717874518108143237539264710372549033732015589709135879596387231943365173700947417027198771782964662691522176207897862156148623954290912395881181901473004366378725453314486640784079533145785848917838369780931206557687920944787439998381328991251777723233719303568702673992580697247635748482064047053419744208401637881579459909034969084253423795954440028578926410768719432241754853791997754611923084317145775311824167483389100891143952865415279398634573878523346226849435475148039542714982067503058672265501250611252741677555634770987783624326228034843497216123684306370824507238608928147225887240733893376312156169984818139737631390773344797057259457088840807167664144233888549483061569791098987307346291627674960960939208109381783501052119776494413959090781889771792718355468383783432016821423435200024866231424301843840531703227373451331862775392214169218087152660092070495361036911136752413062837209364534550666239649538720079702743432968374390221449449806476648980439501399337250995934579696473331063363372239561667449068736768989569389802803052526826796120790049072547118575652642684931735838260050863798021451520882651869952552779278279709653646576580188956090885249915029456934195675828276532236074061438196464408365752827414603608821093512145185104907520025367289080727780968905101515910682208219165305428047768965729837062324643027879761680040341261539037093262634739609170468470357933113662132106924287658327963750630193419699667136114734571712232168393928134219207807147445468486685238062234034075012952754732683684871626726120295472903725815119325084996708961782070803684768968077502019441060821962417040462483517930372701478120642787814375814158023013691652748943145778121884285063984841004233338559272983607512200927052195804245344158434771249544811222502835777801343321168565162963870212309357125548776932841406294353335950577973954859675715992657288017463355967939072605606266944825351532414492193266927818449234256912061367989803121176821261117468421589189365835896209941184396930730956788604194214874600108833680328302883766194375877583811728886724796017065388635192692978830464976646719227943333471653980390975316958796157628412368117501897918639334666234537650954717164398905378420495200039285242541491290369097285272441791111609562655022214647236719977654035293021204951100989431356742539624198566145289237071642745272249621391408886275092760635765532507821635960926189333859993655457266882318867799068966538029161009912090130226875322578065470558426520158540676668643414896555891643999995933806912927976188441506744536426744020563070326490352871759267101970867069547839963558576037611399587011677913239677308943145411134189605932133369905181592300301322337517577138205872308119404552272610882146646161757718117982141801078524752647232963934980731985571155960867326305688940351009120254722569640705008468110997036392238744646837849066721874803269831159515461585033608562644883526566371777890029097389548266526817337103521237516496751827153232887776943073464905266837358138079538329165647780048080487014865749781285878326537658985120193138420498418508542171950568715414435163743167105824306987202114697138690559851677274359207114723397228037225329914652414744020485504357427943721362495838628182070151705344616577732323071434161024845732767781165832417463877544961787231798994710403320880996173657817932831334630984114731516403595937127976917104089508012659830569946581314858942476723423853477523362957282649026605679025671777110423520281508120911659097757628615952277919612579067259534239355831927783107943643483829678239674266934353154226182490037690740788331657472563390170295268697462261105172127059170996649979769047352324219124437557745938307391976622544236526564247214904373707848619714131787399445760406873773508408661159960045277192555887013367910234228360645682328937728604555285749273544190951409898444296451807178545801418816201236501493364082367513199501639374002296252656143708214444257636169471029053638980587368544767522724021788223650512103354708274819315306524105993062833649102823224121096614247813623900594535203910964109561301128480880946509857223051033612295295133550992452755241441430628236523218711937358417815050285694372723753683177587231590248251842390327906799490342955351681796551734037668666134341066772955061492377048280851751649967501890613336692666173522361779063805174604735722405900136005115625061347213490804448839129278135962859764560664291571892163743169219895355813924753408348144211899325849079035696205078109823814452369936415091822863761773109386167655054410637657332127330108823819046666373982232971208526906296212859395902586914313819383477936513141889216909462137248996657002019705760648578550810657121563925611173275984804703365217098301801979054459388528068115058536999630453255403271860058232299139407467764620993429058748384562836045135986294643397838080350089702913355908482913512604741858870204612214965691409539268501447738548996721587015651317956536631629481871739274071550103396278125814693477826252662977877277286818485665401281997402028645487393146630929418743311298866955972725615167365669812603238714761882132944871524053030011437501581683843686708421470890937847774464583906949952832180697804489612604737554715679916855884789859881619874037174404317178882578574777830355936971540801827333300120628372892549479090334004963909973567206857044151746535112062618981173398506118296443166291050255863024181075396870301946949575473060800590409356847819180167863140147643788546963505047356388641364684415148351108095685563923815259461135020558150890926993539988831712197684978897622898472292196589992901114690072935829297497398910304538618263306671022885145701316663901881205193412404309774361649665164905179173549016457423056343696610185807101486104438199320177877886119651476919681004882702469194258004271922232651262841284631665736136551420049515056237061648382841717989868215141665177384129023807673907765149989668302938537537546331620462193732576586362646966295498246296373797606858365346730227214167680691118243560795508185476732570701201300701329014854290067334709165904391019061175047828184887752541476305988633325390996387504365061061445436436441328169767273674977806426435220300083879627082641043634666841046490006069662318024179940687226514851831905441396727842360172074789485461217787370262911463570511945626552244987308185165135412097493967927586166432018230960313993704148222979255426715015197129364716924822481012634202269736835498455852853250385103831264774838332871217269159278756636444255915829365569232751464954277566272425694409007187998916278221033102818916599801374869802070629875655138033919992721256938673276910749315896640752729660805860777545752322535165632713504064413561952060650157176457527119621779627131706642495359741975659862404758180028992369223880868753760965368905901235212033703702351431414713203526051119067489067910293121814658360351152937416173154781627836740354977494867487776698277172710008847434814044466177614722162029909841577494897548027173070541364261102625190640901171144735599704359237890359835099118607343230770371950834089183577945828741676219176149081438168611321063379861356127034505562073761564311585252305921342682687583563170815731870945046956841090925416404399002137323501642650802765272209484879199819660713027093349407682738703071435240730189822622748908673645687281883545004378854580876137460670769706551279438604458621315470116731512983223537880661579493171891894995608899268685718923839372650845917955660581884181475339930303265551104459065892156844643736513520780393883155217781113962430532231041322104384691279578775597418697942240238094082093372203833484713093021652405385826147672196263365625749601199288708931149546683936335897328218123423124686615437494154480184400340895863193910067912667917160634633751860473037805280338027584898709708851739525840509601493286876348465637611436850528124977563543540653048660787773255480735236702217446336350274438754340969960131752974906887962520959000665111226258667065724230069420792073437786155577045333477996589709522542006168519894813044448652748002389213574580973931629475328339997646509582282972691872707628771121271789859172207364352088908110127527267829511423788742668035328783423428429270814803887680129527497429292063900324136306879435255324272461106154999923168505616250880083412332748184087977553396978696113697518742111582955529114706147939669105574139591962089415299321297715190317342612005973745283148811206619195880633319445059504527402777250545848182851076641427718849468611111939851493819048251521489409712765800035870246201663076897911893410468313447027197939153304472586738143294000081991217414037895147725291606460876007448472709424668483759152309687231720579979045770052455724063973968501286881817650669234589504762276875550273720031392526394616981791714682030513581953860641126129445049569897748833880372241010455883548002820465851374202418603605529192790810841076166177510811205830925497169186833044995741267457354710863415924056541587508486127700185480662870367527153198666689161493552514710501092747313458246797347278367067559881703359189733643914565501326728448783449977135712281145065851545738639991188356732260645855607563698221140197703512460272010499694659241948040110462837993177879869090024329803923912645851912685964943960482299029932359296991474413267753494783588739131144722806664577022729472814692927689272340967173626873464697184554818919079113969729681949128748691670139322598750618194627869939357014651976884760487442113132189876087204048605011909016798222754271407831627189914565258641261593833879988039171525538785788503798866026293442791166560276336161534022116108224611396718377463803892939934934643725873243788870541694162220960757555698543384371120168316046433352204883942786855734464421420943643689193458696189884738204462233994860340346055734793008807075020137664913061280760087795717541473720726236255816499210640795838958058394837169566402168223059809815010801047171201926349053171052453403474833655397705176300050663009101359751602056549437034305307968409911405344922318132776798576539379681838658332939006474911935809392033625448560468806167030151903599746183873560424570878661931389346607281186302611225624128491111165155855689399910730761815520190836083117549127064720450040202913210230362805430253052610197554157120277850763372959033328207784926857198382042893164391232558542737541966117526953001868868834044056794367107602207417309682016401167804899387670974589098986638129875790143438142992647521008634153701037692492912903925267365282884047404841409956699658445827876994287175480883321907988699721215829074965007632093657741944410214093444692950320520026724055197073484050993504195856441420661245037202553144194740661504618468447505611152057237479437330018183189037356566032821835147767628258012746846892830167449613486754197117363828536967612034117601106283728162799650537333446047937510583486180617594722206974629137655194385517603209091719343488234972393833097852042440498529601196394092096720476115239413148818192854875057475436679466205444651512812904807720880238638779569894092566827272006027764389340652575947192595648976256444842614952228689146197533161687295933405832270294928236042839084698339676695887599175127959179698251673804547761745314892367057268873883284556989293492858581612806535454437506919532770799168833957442281614957941098907012318920854849062174296917954807642592477572388068705530699541613073098397980362598462055061758477123943878414543654485200652044966480960917451412467475835227478327773267444164662078289970683823829971773341630120634674867932933505809891576819202204914664877798322953555124349347625735023060872584854031901399556829278175420591098976926044190732767855465546621065179503437070977247036917497124854975482457581642706070424199574315004707084545936263683204103877436829100724698897989099022082847438490155605354503491305484841817624568710674117265135647917103752049501835854908801946198266978451918134478536037802535378116725244231087899045992772500579521554595163817536958742947157310842957869000288732982684563555356821259533464675627064753269631280935366728644171134803185509466727226916833793805548735628002106903253067141814809097375583705317173973580552009757835023250785938282387826173537611210465343082024869853269680597111763802007215618410469538775384284256149586765867352581637938673705715463043415495554368349798908608295662882097307754821444902297471115731525407978969595255911931854678074264536792037158619817377314971007849707816122119940790714888060948148619535455380834471938885320884345276948742419699058322592820386247313131316080192841735459905269952951199724855158787156620827116615478483683608762218720923992909055706819937933642282384026703677074674808890003707269343354561954311782993887835560785218878680492488690440131462685717715761273272162445950609729924796240222618195350740785952006732920595250271950675494707623757284890798547078737876763864303298684945417105829625598219821411722479392245433030252505065497193764828035057197640990134449742142420391468280636047266517496772660901667873736280226926836949934428614311813804906805622021995849810841613224137186826330225380665064866214192364666978105467593979038172879252360720060236966100819322601003710057941753893332768389488025865000771422047788279365448144743138764015677072004503947777597811884681999802617763975031070523838060252587870369242948053594519442004350871265905179145746817537619349316991046575033649843313994864293773680934701280260120137745126637967396037752422233780248127073403015432302003744983418885915396399711155017729435560364847550902986526129766076430689879958413425143046898426449728121998239268136643343926659613822016146409371231563175398437222139152888504382148499533338664965986520857404315062005311300793992968852160149669068720099370611468591563827627864736000437263185655732643188102618449689754842295669030419629353715036440341668516867362617540247036726972748597708091958677794392232801177719498846127698870060959188144846563060634978263484413372840511078309636293461019532710236703597623047729110399330410287443369341821687898894600387900039116034189932432960156020860528406292889660419058333611697052798343854928175426714580285894842971300002988837052636131155437755551037049799005803044778980815266981987994348706605420379961084484002438267167392674778004004977550361587832434543304544399708357444416655795206422001038708683304150731414296205243238538648290427436198179813220222213598419240352498842522943108438286645969230084015745797829142846143169381023254151297927518744228507907528715726920964241168806786771262159193409051751491765945247040428696656990611105143967598003353864834428428524966127187473013750097686748175639447140908756388035604456885080047168077569253000225837878558532237149684984991511665110097686871832338911956891665613930319670745504919580499295580968423738131282687215177599492052171794046583601882607848917927133377714234506231432868735155795878817142864300341154682531735114009235056290749360117305137847428438512228627316252399309929573593976236399938196872378664113372407562106176088133965510249689709086432534113198308758522537612413883708898120676645361401719047349918888685256263191854121367990369075680141795791039297185855451795209408683296535176095018699579550649879780773072581941697910530684450838020555817332773709866938762033149671381351337666800059520172059569863711601592359838878354507277582200773103469170731702017579893273752318318966859220689602698773197107490112262128674654907732258103292632720801160008609664588666443027396451581945632318276873072900895494647113457375994412628878973875670688150880032335379593744032394327424862929482697925937386499551388627189186690711263611087644095481038365555782438562354025659705472408963041847504011404393040956630269192866803404149527893250662868303343679127997042071295312333353452490477919761539160461289542159049109314294601614108248549262897269907460532734841067744818555176735423703286444507707894202595232792077876649737979166052756458433158973445454246751843902535076688937914651363982740478380911130371471985703550560819121422344030251013005764722039072107225226616665521576327468395643556922469601645457460728031264908098206222269414653744737974221502938468476126559276094481956013547656623731748426360136731625010284214833189490828783015118048961535608985343499247762476185301600681319347376425338120845659310638428892469102327570764149573794335577474658008408013599617322073952819922039233218068684898836318310849241706624941347662137548178491855810327441883915316671571001279954002595865261994374779807421425688326929650364908793381885282562165854001946758646697626576073965199704180845496804135795102068863327564172022575818051508399841521095064177674065073783527191031263892768846799469163553767537186920001407893657623320501859758820826075017898139998549168079418309616063994808754929365848254021791934747809624783934523057243246590571094909300184805330448146619269921264295659791919135610486002146973811880797353657253883894022221309150289964956265527591782638149626802823915518873543610625029355782016963270845635840812509047296394680844579417693403933413198587046002178367305369658404871285659049729692201448368076579565623200959794047962060705851380086774626182194194645084741936818185539530736831973846904433752077682182971639902116364765474750677840864903858850271332332857252195096313196379933658799956081750770253721450955546175659179119649304579210216606844962866919926496148483561509872142831663598981929005239016792513454260759626213160688433598405106052009648949761310132717415574606539166011387957727494598504853012308377960528567677191313558355558630197208519192151771881567292831218875524932442089984353198372434200496937864608486219076407638913674786150758428267875536575244495553994877934767556819333825070875251897974655679634266154949130897997500834456290796030950504043301698283284045203808772222770589107634757269020831724546401032721529873958003246656369467390606813306069649152467797002154883069433516303134402552455062602105058180408710576092990066924228949957125527273510372121337169385411342828576786590807175814299787164016159675078722462500719356001279871818733480815402646013203608517917184368939427626329120109364111314898258505129351210804249546788283807835381284152967618742767897034479497449822540919016255079573573899015748005435026277844205853721063091468893862115870819161917280191034608398129089232887157897362881419316538664104581362335330013393094720457180798395312705703366673453065007103322791943499897815847526286120192627865927213027885144494596278601015316319426390193121833555853012378226817337752419976843340410217875659410922551376821178840345196097568145017131677808259057128448405398770616088243380824329494160163463547960084236651818050362476845314977149008611064001781900342820751793394422705654887770428028926371663605593878416401108664391706533456780808629424427751424164037925349652917091485313601728798884658746218516950175508143207539025044112736323044991164587767774423256233415360129453722644677372448761825175402558510713872845590067248304777401581833317137618555717332054933928113786188484461464665258603508873684118431970173594859585715349993139001504236912102794209402597673224937163139257131119895316884885977892781764159751306175751814883609340094216216271488584328892216665588953533423991816185563376103470077358545185381104623559410638233170831272530005478948344871234222324513813594941992219314667631435057614758514089005871319786487531966914089621996274740995145400264578195238594666677981063412988341182315934955528657168996452461980916151968827397262004150695537105261752201336978841547272500326109377626824086604098118539688959370235917436265905252849357580462876358943991478960386870087481654294539810283717963873802658631624738266932106974068134872288709255095480786879904077662025007250743067883218841112478737427193250589709059694996977070467282692498818532928558706408506409191268300685096437400053888897788771330240802905875143216391303204932532345325359281268540585814722906379772435933165736983629554489552471182222560041750144512464113433646204514081518375408035751621173873956604953754823867798662818948283098547089691773271823945026624118657909336480839395074238702076846743622275143461517149891076543430544047484574681831060277424138229085319332262694454625899821222634906574686054091514058491574833303422515091998323240970974899478731757933955145130413754371547730350357436100469263887884707540337712634052494614915117781714099551998375528502981887625427126446917628066743535684073734723319009507885634090951659686219607757895243439114751279623056137001639537617643928367082515055375793460659021936176873674278921964336884932591057228356195455702722933797651092095005296833790173534489931532440157261830837233282086103829616180409211951088992260381611843109449864007481425830216821088849647204062286747610736794904767265655217808383846204531014171009001906169601570594428840700370536212652419045091620689363500056188893522967491070442678805255510175050098385964887023519832542766260212991493537679370807466203746806671367120808989855085644547920219141478296348566702033268263665498366084004816062045233207689828367638513038852919643590469260895069223675950814732277611469039241979840506191355793983821439584506108677418389309912005403748861475624703462163462423976541997110969254117909591986117739272911533559157849967215549303571183221280450405052506674231646171152069876663389155650022819196606773278878249648952846149494349577693344480788925358139911568374547737798001313222303210319158368694084047198893440631363290702436756385793189093913398662901248825925405633390167978941416207137459251474070571215254412569334184749070051985187304186660201757810286405779465528727454882794329286607146567889023666024693929167241626822912734987012717833659363650399130487952012313982096438446679919768016020156864528259546764426420016582401945252023316199266605452495061283178458637155725582270719192695398769738968233473511829652833159411315702343433193420390027377668578734650113484205577246631234166769385858923400895141414365205729363634099870018695962111259349642714234775836759985768297090007465240635291646366637625701514485726859627220186682431782734731392991175777784173212418654172480933073481967472859544302710406649185946061695234133875676812017708961595529137516993677931008217872593690065153473973048475128340438228325981206487148239161680523091272709639903428411897448113483467011178491789274183482817122405189149280579242941057644654364636707479371985246153784621405449005791102310441304204850169142354161024535645117721408369270475568328998964334327124981913479329312248981460834920083331014119929607014337619067969072253333530376930857021297438999130178708097000889508469403021830138685961692791481697214461067526679858700308905057624177657967647679215335694227831436656773189419973872617596983836370226892534744349861237050350915390680890400978817821572902620080405896006282235822974017168463628617887581246926272595742060823897658280087137457822639264724246479171119242641725314359025273624919786578298215291267560069133901911601009658984556301041296215144712582350466590341256750574363956739888541579123582457440023467600326581450743632449637861842098649770609271609672633372060879054206942074083445885882771221473241045721580539232751055562885061629709903400411036591417071591791963589080905759622963401494171924165480805747962865595462509317597190266287682841134055333595652080714230694987948550477131040305336700514842636854952311103354928935544304730129452088446173196627445252270224609988030013241843518245291690377974248401729056279131570500246270784338215311038705923191466256575446871881807432113186458274393669699876273034559569309178374982395544061369729162495261008018128793294341954699319902443674355832134146399107131371945683873063031258987390857094248571624686604426598687384797488378172342339543478370008859681700986519456312514331359944095320489669457825480694138404127787260994090597841423855192969522084777711397437987932412447440888356816854010187554803721582860515442826006315243356197770057440275601756031231456770307672289698161703506757049508476259162626392519052486792649566867741523325176333659823181935015886499955247328545310406674254547690075762317444723433269445919234760433406025245814958681693469357009453913444439766514630700195804099865012204934398444666198046092161251516807465107255588099960817692792614533790732220375264567225031559979049553512620859161085469544501826899809883266156746057635098809279192865857148700100987444721996332433166895962145249258840452762727320049184878466233916633056146996744737045905925252704595199947107070240043441307522586395133748421087723339654639470798252130790550761965435568714233652238768201044911350306958375454180762125055674002159193340140367895313270882904262676236921769221900189509720222536725539073228434304479082686133388423593910354638314711223249791438099194207239447541109912323212314041807449940100495351161734671170104886340035291632414840554240568109533600075992753382567480314458240213664043501619114600232598373706893010296197263887235997820023325947392156383339238952781562070775274196773005908504621306772425064389882644226953061822885704957191454237088100912250064071445965251877168048136081286030882679502576096395638079464263384976911580837141400157924053900598846141308720776144242793215608910461747495315238528553917093542519235432777528716465808179444341934119538876476269590765908615392651697220170784097677900865630754964857199466018222288732078913959051394989762398517217951796606299600444010476343863403197081465402698064848337000751598317786665182506560038753423217863892664066073056940729499731628400819860915437747954070988829442386982028860635206626144260263962900274772838209564726641371714241054380983887021647355567960168650770282328768486059795133584605221114432101752327103514237020915808273949313410070807830128531912573394588322078142759895168236081699275568990869567093587780932761207927211047853373763726143423983115250202186349358722692402734576872533717361589346034620194153876319172375231790619147973835659377152784981456761574545629944722718595049960461482093999791003692666948160330718494109878459403725895857272155930098876111707996718560341746915515470825822445316494435933447338944949955424589133688081301637517483485491376895859349983510724785972408557256444963420926786946037477104823429495061861734291898877952432160005829261094241870002523048221814491171198076383069991390664468757673023637184732763882592719680684067133899391934775597579339090481057324785244196946740068473781226398698172304556485853315115401342641005081061394935909807040373277142709260860442772085248550817895367565137622087589910731939928530975998089434590259736201449476359649429817928917932598216180788840821892008007624872986128507022712136971615993903866006781288946323055054124949476556318851105108251007301541701407939324939816839530522087438375600781532441239093671047112384598655794227990193399140390500418330121683266146086819407467577074553471077804729547746970047830384573174804196544209207106419573984988271955840950204288670867310894799299559882831895451188606893978067703401683534792435752625921777821960573883749384642800446249946955101053871554611692455852710321567063677371036501996498046376004800653404911611833951395088544564932418313724277272185169832096298889353491016579051842829437299795331738490228801648072946738854554678925657886289429031197215227371641338290240088207656307218122613974966289370240670488607196791964251642522594524061382073214571838276449919632526510000619647241371681858081065549206255531889334195324185355409085838716888323621800110058514995762572835765279597971494055679705274571592456381346700462121687294248575945569029182151525527401016566441371681090432409095609347904151438555681692277101003815026264222540925016350632004747628842683821932507326813299046852073948680658105686462361789762859914115002157991747185432812298793234829931207107468575298095002969374069078918115784887036449438807724208200270229738888859473007405068792997928559562620099632311284448879678827940005354117838603968431970368400834740985223231469009296152972142277253247679281624822314559979739196209119636063454366234290290086134137965743634295363725422725178596948713949677654450255100496226864888470300050235978635210212648521840215828901390755917628476818241989702442908884421441156503263097556831596152898222935779681937329141508528253346432736585278144559496736422851060558325948038064969669135732380264977568722581224789626211530800867799766660445662720091881462102557723897932125764166458343380698890030516066531228823438165439008494103231138834234108360850989996045517463837931539080114985937189323746267851141905522051843077647290739579217508198418671301977083313976301076821345520831991766503235424477949475680086308693517609777536157614855089837205139661118977386193879828608127350244337723862160820891509569396889362352031833955379066577405248465777966713942292620868070978443553655804963544455089502554216726601706396886296669253387347851049012491233219153442372925887646265015852235055397202816432224593144590734794684450300000396062091254316624037492472696094003958625604788676780634317392808016096257874685455449670364737297978329817730870843779041375899680500602940779568407865626605917853075395998981828220443342582762940867388154128173577079108148714226388589077184953555400658156880520069084150199617470207324125738078778900274186063049967014382745729223097405659202141105663854704469854983396128484180884362768260354412864953561858236178554530641461472096375775496293417126459939799712530140767608829732709197273839574493668931138922678270931318557658230881957713729445063269502962801431407865289010169677744071185476117013613049128524472085121038454189155435193218689173324824526152630974810368267251097007814753671559761921439328132676235586883357773205380475265031230277638995923048480106207050247922826445654144865157822547202136175652157672386104046936583655853122221384119865088104372773814024650607023467277830544365930379201688667519918189218166108565964242732967364227911978511347837768368338324189809526698771109136167436397708769953759853015039392996996194922280575355428583214774396802135726234504986817051769618256167752816666209696545913747304738020487406221349086870329541464555776520083861946064003135297784548065449728692439418442010518466277796060161302186421371799475998189872582423090706317702581146125078185854019404018995825749543218233001470931778438142853608772276608240540442646392258116077834911971596719261633241550640675701011693909527302245068576544140339067504205017465101791237484677490825440098157255512118885338672549087157296359219362230962801976585048084584723948534916411522324636659826892970451390808997458860061100456061814056507475774857159923580119781132726053596196322413573825169445484922096343361174201775098189854326544059708422231580502255043917578270215658414803401898215193133783956706283804465172404724535040615854891904847234104379392814127289445114292537688633478161268076754330003892887747405193415335275384215020823524433664192569076115292376477644757532288022253518620855666922141245427729457399739543744248295169898555637573703673246097306685868977749475280472509940236383545743647733353079673072865716894871311508139724792150046270892576780094310700325420836771889592056896709537458962579771162531132046990634846390969049313770642424496737214627084153962927870448762714673833306417936832861214376381877587001604473556593497178290285318297850754990557659702868052078635576993167712648486977431305458989800124582297817032241238128042190853709919601185445602245756019530927176522219522356206674690873659387320527502990801792668494506665316309916762053884570290667550508088609207987579143743122178358740301938107040130964921447584087886015069067449652762493183465904108481528606301387752600769387035723209928881073088901064625135057751089240076087175767145010211407303669225630474072716936437586235694343376271260616013794425919915038403579358382285667150631266461725020665833218591028486761533445990394646354950924300983958614871303667747690259187090544314360747245564478100556127604908162673806145988534269003650636543381314330347304720178741240183961910126550143110159608314618285461091823087752779855358359588587006110313693297496511286177267851895585790590178289484819442521345741431536910446339490067552963550648631192431160790075929870090932412204126090790141117763641958059245034877625740171584637448377348906852233941603986144521138364154043609971649010647960312007553480896303611845779273484619819904137448658762861692574004594814105856906583883101026412023339515378632630467327767494843595298350222434901147247668653308533835652195763925435770491962240843351344903931285578773205466385628738358154944293073225378757441903422674829925522835500722542787629175159759173314393994239922263892238167809212515273472517721737710324392788899000017710110205491367796313399996906469775118303192080564318320147677276987177580334520579111032871658984005038978601125072381942576830398418288171476512655010018356910725900292241216957923988246834491355232916215815289431293364080365903018919383656621812530894453154594008847799774251750801237303487188050937476972222800000508493569753154715056997189395072690001541165893854027407594950281082981260029799427795302855677653180348439316018797172599524635958350867469256422378531513571357275320618582076013029966884383226860065777298038488147165708216640776068136835416377148569949345517168991267885118902744620193578888133572054865328615573738314470909902975287147266313414723460094372146388106491118626558695746963190927251833960420547892184646565779687047096770111876813286761515020863015059235478377980998338277010887570154627444561796906943695246597404137861684425907989490047758006605997525689380454065044604732258008066590523111873194529828072828961752525500606452208500298207102365129650659089750280086475301269763735736623082506844623046063632980958067252417547020007504168963341894739133985240173140396447895217612860908297791447891076431352958627830119881791038061850544350566254354309675229505082034427481491350826751938411479217737029185234651862316781014196184337596628717011076057213515446144362065578279664569897461097429991160020042209711883422419306342404233489541283313156399400302153683949118883949574797922353783862169906403998646432601250784329586271368273849662944786077011817096902614683886889340830108097261270360023798649085823823630518049497440746971015503876826790897252408686842684788836937861378280912970489086064165414873014777406221463575500273680353977000795691368951856044223918249511243916355715721292276230703307786031589589989832644974555055500647280939940096119520343034423960890029724671496049726006494909920152034138430550061925223148354438972318639278989594131725994728008390368916925106082763652874314650800338692464353456494418720118651408356260773850239996135717909596986304357578804409910415413808293277445877141419348539600871340150409024754519309348899314363536064479658246987742405939321153343873771923408714622550556564200995789501046800447438320427149534684726205997349068553103655262077971762961795028137915525749425282000711681045456782362699084708675796251568540895977722885517537818134408974008013593481325416801342554507882950307870797657543461777134305556727392895033267479680078957882472487294690859313637463454726072984180127342307484470320616918757947405948731038189919817191753078915764689440877359007916580379198045723053213731189283518565351248915042110891304136916037076106972839934189615137753796545493716695117687149983944664854716281735132489188805609137093677908614479206891432369192347513619165459840171281084956928694330803503068441358189399925764514147584814758092602269730489882351118161163173633088454768206526625111130351340693125247740267961420394619062194889457732157007712655365001320528549384228700358688573997245734119478923599259791412297466081052750636109563702269714037415607155203722456243424196340880216336787391685355716215608223130223306461317981463547746760714136982788030139500958279792991307302617463440392577974092010414361307897170536294703904147362754735630742297570142235546215626460097604146308972939853485077621703246163098161594916496877373478639286030028700364629781246586176206863299474881782882805407541149688875558236415609257371196191876543792553801888052604386827255302504539713631596409288969724850968955311306416999781753150363781147509279502074634738721850661176936746765346737767119331199516083418876192863838534957422291987184049294463015599011906931502336897777227762133221041836549325136649903736400258887815076290137249861483994170649478369785308867274719378131938184515109309171698922626600796566504841279061005770675425077199155793430290961884775892164664969679585205586629628666668569731413831133171780720349495224006984240419947042160922508383093102602099354219236429094783549231653860200372964913181872817372301391350565822834275613545753484320965582944702877801199267545319225119485830822120718483025708400312880683864457986822648895717785932216590960652827696651496748428600413961182550402862541827944916787432543438299456512016441648160522071646834984202663674754428463813806694723240569256447007826116080036653454638058241091269504008670737495927964313927467625144541020496870102131801670200433492885261071398961156090545660625504014608354706246477338531964076360807772744192842943620838404439841119534896766569686577294641139033416528272089531214287380945325584445126444181409401537538691936311550781006736804958983164216831024545684318993941059755829962793329340932616323736818057426004188597691712326739180029091029439352434580819846534914580261066845027844560504340234525089983782543470944329086112675307876541556675919940836605013614742793534027328088240149979469547778761353692642856033898860369593624693189964225984308804840546637982534037207303252777013482133652786995614785189947027915856987100470064504253113724746363836146264904334439628095361832008637533323510352208676747757239744360446154116761277251822752367096030893834422630424157979034938471561220123262966272168924116397741328474310483016389220084586720804893996195146460335675131536144342322994254056956771278824613994966667331343881693491923782160668825362273399286739326066565188959544070976764567360121586886555131830933574190171678183612781747062906227746497679634746101922136915410988663034369490504351836533490592875958575352968303201878698749665844886003397928143113461299027324944462338552922882096617500218391706913339943385285798456880360709627489870516209286901781668806041396682426427910727657024789675300566178601038702783656795533439480343606454520284622569113534932069034580707610838508696507494979969863381495054245639941955844936074236816131891724686744387212341505770922019714808147577773715920834243536565446261770336733197304492417945194207252599869493878344134899183404701307942236556451912861320711828448931318750926147118898961769664636219926832045873015655677728978205048741588143343212440946620629115184717825446272676000463738088160893615572047494134252316212072997263828627852686341965970154712120367286068053443455784109483436796175506240282432447210932262131623132676000913282247862953976114099921911529412043799050844823187713439212644750339255363452050941546931985901303375386658710769493976622481564106442625329957278439507103810111372876347633497502728089246176602294881557194421214829208729535513323468010238164295452408393323102386601207535955434142387648801096971762160952580900502938920120333838394697044100570352444900734256776166164244384812296631207604287210160788905687044899104594853150430242727057829594378674792607208185688830471378024623933440624127887237418717291256516673897232386379926071232632868831517152054906407705186644542535527245984069130105550004658267723105077865447308679663807207901155408226319836551357501490451808923186508452398713436783373791400536908043249873528848858180038234365765302017093792156745102528777244614352004126423144122288355761038242729246505781891534506520296781030078277957507848057401309279195354068374945034551739248571406976013954097543876948720403429079865125369946625327526672735075489690482481031732554386606873078793793151372106697121599082286101869569688693454120080875572589720489656164133171935966540658974215989369843939296707135728115352385914276922638309586166414913942518508450300969424032460974020927768985044439886529344266143212274406628996246423206752384342097537262308461845821948968415131122744841430095989013897225536620533849795246572144534150040923458868502395695930421166256992586036469565605186799898284252164318984492424643492298433205810402961698664447928334379091968406218344753870447271504733109163380135692623300282232486874054887519842305221940747181575199139200867965676356920808580957382538849386618955870182258312272234855917308853415695540565550063736940933014328104632136735483938535079172966155220610434912305326192671155227283027136212604483228378553226494232954228163900088248153785762473594186652304123675056793194918446264565165399733662127753706706348748711104044190186739641847524059027930230986670288044533616680244680317151663414729728374971820641688586638957836653738159712049148864235401254882611101170822738995707645838652857110775632210349521392902052814159901019628626242932536586722710356751588703738437075133128719765681320564790897834060072190005865127407367687412814222424012667222108477477719858065910559809151837215668097955086361992272619370443873597561164972277843544105679126661869353484183908123703705960365232615562913246473659459708371868527218494530324576253524294507976831537722941163503637037217660999541411890711585815411570330040783511111893816884737524407801617519446972861425279642672011915797191246290567573705267400823138924363315469407778470432819031074678747824028998731401148532427192469266398012209164343745721037529036605715027513426046658677536524963497097238389104831825607947738467754654326883515333187994058691192183415778703689999116375699882691988315094499638635255941795654028366380741072878142656678347087070149108864580479871549049747541964653138119425846846039650023805126177329448079831977921111240588543874415658046114177345761277332516592861347812093992740525240049023945169110806380092010257087561499289523005016397333115284649248219440755902490198062256276677810121771998849574859788239968971384402955501228426691118428532459064469483370475737737354700761458714107424333275717208586275500757775082681178130321890911757518038118923474215884075892423131840124487499176786553494222407884038531778455427526118468326200061791052913725050911907474461602903937890821652796143941053311155326794181634646230748387651124094371351670713072204225593202025516159798467612132165206692596662831058220850286441716328348289721349744652531270470710666236095322493745597809434819043708236974402495552451272917933541099445285546084035067939020487331706406344349710975910205908822394598850765753956705667411827274284665914135692806678299519714346801962316105118749040739678758675698325866223436781740047040026439696826428415210198521771312911006524614841146425793558833695800862075863444211324269439774711417126059345892436032706532591680163428853943694883171247812747376996184123285401348941341766310601505401636133904122749832951710162275078868065268144226272634940549970640410415593412673524094095967144899509540131634943242414407869651055852671722066896953891324662683759382735032020673284077114989681804236887948249480858964116749366417457506044684228522322256498932974833216866859001805880591096520986847348961358605496900283222992032211252994974978090836119151275196097724467040556131899910299470409061437525538650662486888661615852038175625063340407664240646785591424958563169949876786817743313881209617971688522960700741052705892124474320048959775420810423262187952314630688397555716443391747982372534311030005071306076045835229819218005391905645026140219543519076818931360614252842692094936400197244618441934866964937554881034395050136674270901258965560300550728835284768363411860661324477243738444326701437073987479079596574184669424733393082925601864409456195499574200625908083789114763998227311745956358698592996837460595357948117793495456210361957267234970855262663798940857304772951755273665705123886294241800677586538025662757099011376533226699536166947407575385935579418977914609953572162478728536659593439150364423861218562829192527368504655207820284803277694869374738874312149392700622065055571590270383855740423778607069513340149145493590975802048592452991137260571798864211849693706903234420762077772680715379931983661917327452877789846378741665954881646132342374252120718660156466699402262665296668945565924604598470254599582912253758208046586927625368436836719323461160052936128565386781763809135205044219268942201316981576733468338988870146817021613885284276344822201162278865636450267452759241524107971824624315242997868173701103617642578026291614714105008115731372014777007476342564886757642495361749972580301958073958489497278434305969479567320037980927213837005520343476194905699828325060918661566738564978506527820441097058805305414858016820450912564743062308774642783660600417244379852222213361803684915493611498795911640989552509590683996181463414916063384701100572978599443742440651940058667697172213858001778339362591633770192425038906977926532745288199627666040330235519609317760519473415139998069838003735195025469131873203860462960630640495516581125228753343773681405911020508220813710863571415791156297485435987226223471172430359732945442515041203641600639242000477863575061465336663098049390666185086550539183244863025837993311873476712592898445773376677579990412832127293540853347117358942733524820404372662272548296953943450125476725621956776878519603686010126343719332918824222742884154036091804546555808367553163908380713836520983795297756514106775389380893018722675444740168966714408391236324981373497735971613084699671448330563762433652745856151227920017121518949890630245983466568263713926729964856765204744478994094252834256888116707119094851511408219702614728418840841447823901689525457923686106256061067270251537192619323378407932693515300718977787859541228832699981289950906647019441831221535001971384265630266678559951408522902956048943545869640815878659379065420136555034369122775967044123004758491774093748028902022382248221670964646138789382937618201820662145820287680718691169539886789975353565306181096640166292264455946252262671115017068811918474797522620658253786788157403651436708970841846147918499152925638822105845826921355997461408051640300756631656337725921778861820099293843315951530737331504206302768562806362796160629774479818813002513074242500476411750532036400447287696255220313026268109150592779523518129397431406927329820446391822404651519992562302501413382171173592191704021850016900505343632024061245082452041464756262594081454901512651151954213445851232783589599296974456208145046042935375842589277136049049965792246226456786719448343322252510412034573503470674038795997946497449478063916128940950199886042645671283808832389586151248141841104854533203756136873440908970967943319079474976410070657262064440405560729109765843165594949553218164861130585435765441285826019755722077023278545264752635515979518483732930580488010149401964603333498536894403358434103689403063303124362184511450156037906292368413225389430729985664306271315516392979011265902886304970849791012618793118042483265548032957366718235416247597923839039772524262105971533053557471323296710194173390988078169854268468762252613481540273690373156017033247048494078857476576266078099085210201402392742795827039521438586277703771158530247241446710941773877258266045756414329382310355906287643988179019420191780573017891433638581052337472769445097929461429423835781056670110516263876544507813258059316486847950912019489072060382687390687368734228449251305167117139565540983728444540027891849454572055590516121401107331818060224279477346133670571343057317572325898109143780762462081455437308983979763699468836624641292405417375608585238598507158789566863580773451667160146557885028754585397136939778952051782700073508352535646856939457060347943355381976125919039770752075277440936334219050290204870163734418263619559268672537876639262175596883682329159464990197986644327621176914106561343160486872416677013600946366531549113502356808070297379222442786408460831337491834860946898322376401542371654599746442944076214716871029968967027479082311403736123935164453350743652324994407290553618836524213351735640780953335565026422291343451484206570014182751864096810189080126432430976795085435268426669882470015257002770609577161362745666682413651950291486975854263731143063983177594461549960905316305432842194997416547726332819078141363501479763747101083755198742087924991110546323294466741362076597193219098488323633519696160027771562822241406442648452219027661800705140568345991536094306407440170030694006236670611211097385733167425835748304720047837532340466392810852176561091207547320364535606451479073675322754257664406691941694313110761891722116883536469350766315175959648476069565224264761349115425540800467373579575763612452146317241728585439337486662452147026670509441313617522250593858827029248690383563739149767552011293586033829394127464269276069653872261413263571886213293043351633531333174366763246449265777146114186721233214982214496469423168286433036233946134088514945496504542574947514449036544292116376979055653028616983785428421928964624808102515160322611619097218985749542520118270340378827385909909814970179275175383925297001795828534731137997405523232595940535791534517701492527806649074614048485744548277233002968623425281816787109895213644032020555513011477838135174398453281870520229221492397332499893868627354309595716985682229831378875351107298377117892330533334238903654810918168306001626617416023636105436808759193727865800625147575441589295811237774415893089290381797124100250868573225106712807527007996280267494059426612445152363102577582730156639648678620741532451122558000590984542867135968706498203942542920839183829433065780669016569173657074714645771861724974144066955846420679757786350996757671236716536696907007207602000675432021617402126702600119714546795693490182008866914929635883390095382381273533524262839599180672449503234407125391704238656661153478202070458615603410619267715190919128724452855016668135865635628936797944396525757968742801733136026127416836941534444076194009128203173981406437427840381556140808777390965217525868890483222227757377216220806503726186168479542042225897493032087899214265717216078362939354615593425803400955603387906764726345158327444805410969923547039480195600610587453079858636646269610149638940813853245071887665854637834861383381358033522925204530452924596247159640625282925433834050076784322914665922322688767752120330454907287419293963005686728022774635641952812656181379825948503298461739394153334242744747065584809290105613210651976854827787417568936802827235688987015140683809369329564256971869186513057780737170070229368821968257411050435654512680851302743497259947362471961045257816038478312106568355342373046600806431632776894666101949289118820565446677429680499217689093859506639511911968476203038280391965776833318516813211632964494227245876322417330102239145089819528164320084380962464383814631441766512219938676927521256386759702329917140433171517178046609518973155341055400383103619124171860623062476670370955472263951786650124914325609724611075382515275836526243256712092844034197578367033249863467140178458368155918930870633951145255849401022464927904146182088307509446762982491672703378489308632383046177345680641560263959471897376154045671198108833498332537842301911591328397889923484912906677976643022364327886784520308574602746832884700836854808987201018245471243012501849838993188297881631649564630988565621555383352600713326166561012186531461301574495716268724420917615594532070221191027114777599105749119856257873883199648871645030962284043805488211855239829799153083562521066729541363742063180593514908349046158241299687376577629359962532744346859820930594323070489458198744136306364796737960443536315420452154972527097471112242471510164681793102985342301785379813091791913998563174297598089705385269602306037292325933794118795926535891429704261314978920033475603666597714374021138897493874479629926238088074408345581351777480458164727538035060578902582451026777349243396362593610875619917332668590497159350621462443068605360299126117270736256176444485551866590504080646093200709848819667937718987861191223393966108863780490616290199702701979795425623447953820493329893966309842248772869895995263485615377734968706760830449488959203388672004897635353959274969468719342281532461609128667574738088261867706217243964379765968577500663504737519627983973130375519814755680688954806321401062674176877039610556949359426729239259701513800484545574099022349198308547704488803401235157516646775830680196118152855744019052783666415027786774236176263151601666524280390336020473562989151855369205804664622322917720109867498554699207359697807685838020220788296758682938904989225379069700038177216677616774345659878631250651242989027007213802552031014155356252664293672173890737808013877897473500826913347723282635045247935120678730057724008990155889629637661178056898003124608385851425751758866913084288578787866935457747425488517467850625689763071890485003454947981997889090051260539905708529578484582371837393475768267844633485056149913562869520209192034967156172511574648107489252206436023412863167050388086610423075098171694345899176103720265126913900395296255797344047827469410645120328689321844925149534276838133840287044037446544653558746156544908284572303637241461329905433744237059285315964792716235222772017626100413410238648319134804546820741961788427714445439624080810603844637748766528135289973969311321962258421148490510417198385306525192768435589088072004206289603053644267239787516921513736559170653234843462602086700874075475662417035029347514335535915815882505751062167442044011244267733021398683391231182572286256423402530758846954524527334916566043215712028477932765269246093317103439087134117110545217587909925008638892854215989767606022860855531405073420283509737329329669149410762633387269490190834766206046780662867933340124903078238187169492243667320306826071354763424346663702135078376158466082047396568630883441747156774177837511915058482931497445792400986847428608098957768897395794806852319410744591442942377695263803583179367624343037502619943454144815577533563654079237368793746310635083879432090639359542727468535167733294118411303340946806507988461003968029406639948146497372895938062696893776317436124655931800789684028738099138498218919323736258044381843140833258594166701997805649764322998648902013717773113902651901525442446731859603183418124208005206287585678620966992176499401433883195008344917190017793342684139927179336725040839192198238548388441180885086720971757427187153390301825835516371185748648777968295759179444226458374759675316738327897460880185800868579027767518976285113427521274701672825167876766271673884435476212544305342900232891599803995416501322832792400012962852213453795260647507800818665561259106109438029200907184702257447204221855188025954275637536257111901922131111342223453788728341946094872295722398593198252061616563640771922075904103637733379613383055466818205507032048792218942358195368758429414137184314174562909642726652886618688941819536029802442305575791125618500968221254598764856893886873552804326160532126454517073423174465290163662132843540441999229682373370946644896653369572854409886371694848964655912719099287183184071012121200980861195132381055832468327514340172760103282150322494814345154176795347854249516421267397756658386105245055147582917765391371898443043222173723982127178942190220867198714707173631511612463283426712860717319593201180014481504659417718333838640212972689294997819361137244294153208843985361913081064927214383633311786837172291173158887191090797529472320576491232819024365207940065290250180950869373900174531165924594452076795279681277067658615826896094609467243636755915251305902396544714536105926885739293915726728583662472389928506814052051123048376216024564680344858841768782801042653953140179111724872409230408008395958103492568400736414573507985841722342076621407639876024501250353566822427798525450635707758441904685241282670793294277155265096129857894794370864103834908338490466069772041446494202280476073103034214207410984901386134270488300735399721508676118450060620266427733235115522031485724488385337823839248897903320967612133967797171267282421121136033293741184384691759807203773757777923001142592944084956368257345713408328498226726249599254301159870575515489594656923587010585510641807180799101654758084892612457485733176904769801068836982327430892028889408575354227461139573630358145269891123596958213272367312687705677087207232385699976236888869978955539215721606508474493468253351609610725481460034521382104210593225162849828756907817572373959219212997150563099533948948356541217371283401097081301886090443064943743680185928835599919471436935502111373098806006761786856550536937296423463063326179043088207565842357497517199513819233180230922396336491809784612306520329770613548127396538124715747839831332460240436968936722610997353397241894976283703566205751175433536804113281701903109577114472695432957844201306415641746714956652277704071630594976838992253181781810521651276344547842808297824792472540277434935372003452930655268545144192559964705788826771334153675778431675935060062613843696232083124602287389921090455010425125062309293552844530221661753451167301644524255279510872063495341158235152724024595279553632136841624677580372336355204492572012072494968347043194303347270144719998750877866669314154338173323981874334500339241782548785374768819303811689861049296664792114641158363470810643028930267627731307600508623214587207331813651553901039920565059159104307407208769341481747108546272676227188509179082879017625042313012376508655360569378952671453057484253792653346477831123352399559445267447915708947075375595227466515211236660702514871698486852622712842385847812570347454763968772150429699227464710193180375769640915884669383426733657579324059875539920414665022945640573047818867486771437820182090779755459232550837169228189702502912907904413139209810617573475664197330376262289292581811781169545196410491454776028394254991771727118749917565228268205764738948628872330520461677315514963706602780922371926638896478212459855200580750329370525792570831189284918161821740175316901502786799746120764116723708306573669752191443609924453192642866320232499457715519812736662058857003065578835558235340110445385106952944200900209603407415749253854220601554135791490143248772135182786099125739331475150657940860712619140714103300026537881208308733039229798390790721552906308345840254934678132086775284076749339449841191198029246723478513715745132415256266989542954756426169013412468023780109479983881689377666565076805707541168833052110792751300461042698130669224868675348191483248091762841683788807647325342553065668776181196764228701360530743018334646107862108556188537702664697189351471008974339470848563724410825185689197466825982229823674288316709322955775061958618232861306564981352705692467025985874299284690095217323982712330167914823148634117954611184190662671855299009288084690791887534750094155476108385034047313456859885412425318632053138915558622127242953485629466673519116069230150179581595637627853118831155457645299007447525604202821898124832959341146932726498425770302020933671299913028921929471692988205987578302784783809516445924836368616952208622167574850019180284984657425611353025507993857519544336340385608879391720397249383067264591602982190947274887428565158944064118156694959815330445005447516796925576934816949021099119983496739957218484582607963071179416833682774780758644488939693838939490620510149292828235806142791455746171694765943947609430129725522274871410210238050096639109830960205469402743159487017847334607876858920328409461891383201709340923827248537628034252546951951771268414089647175857197709338192413178646975766781812153384656118377324685797066124523881894619223004115266128882991472627303252379084073523414502725349650394707317899082719523571004484373957710248959173016135567781114464004851090009842162010971568748914105881156934734458511640286494511510998441675556410772445802719849459640133880644797823071398769788050518700346639778253193806910916418191344130098859322317954175822174537448561124697298986528623251214470927441564078057404264303382436050776793588028915517493153079750393255128438883709427570217610124579325032559117042515623126176858231004335528768468805259672027964819564196605915857050801371849200849583593968355586727308765360545715374112856440987716237997132158456865881362886849342420882738887213860153682103896592876502512741467851725204379430669052230806801518831967622545486207259485412510474048060158203098827467370131494600493623892145254948059050141029456936892601395774516484010317911822101818585484935491060160094488792564220704486898051022464858486265242635388161239048106329375504690748658800616251985443291431163145487517281135036193367943920768228280158762162392118506953762026863938384851706370628820834093978623305619916300040007484465500525197416106866263433862750649829415736490556784241526878183909974597347931880338674209524274434124501998552573582486898741240839699249267540184955718542169226464157017156519488070720847448956711325547128881136555180356870060905794584782995426816476606185741678099372403379957164538885730827231612318148982050162858368418758135325814054102773811212220030443908439839704766911887846743370647651466444351553446855084488528096497856748003009825333982584040569773292110236918124021362631507799423619388857459038463328980722499824669818515710714770859562376859105828772286356927070753708216301180827404670341189891580476412781687501292982673974442068091553576872032985438894828667723906218863976694437283288820824788421713881626367877246765155004681171243093525211661025118746844650122239272804412622106958142871223760470322023947043461404938912127653745174469597530980156211344769134687470535482131265307577041591459158031691165234216692916066455094178294830756738875242265454477971315241740613025160581797761761367545739898415842278116558786500062705872500470977125605761275434909401126633609294880172048609988043557058178147098142026627733738513318596365954272450632607896040889468997447783804173092530301124526384784782014027907760902359715250548135318574686762477784550731975754351257178489011937149547478289454664813187878006068035821323510962598881331946802963270837200247124526159862200295480396673644991756720429232248244077125890270042235366193323910872216657562115500836315851813328211069699743098926238744680054275930854509436376713267271514812664253042467980459018897490633744534220029985891204818366449352324297657933008946438407450087563010624703140780423571727415161331539607613557541232397662051571750949738417628054355090345741460580575472504754325937598756168342335541634490203366767022998964812745183431478129099735297060471335933412829777012143247083699044460096308503302561118620457892112192303925706815335098893156854880939065046156122407690610145956091293481285571290802374875003130388118115739836347758535580731081602238739568586781226202602507040454848108357921780395160243707152871966649642238175252796483172893393185412350956014653290994994540912628135008400532901300057099324011041027569596312064277673328674800661565581232831870456934615556305869676874605771914848842344810131214362880814394003693996364344455492514364002233140946147006937893385364910228709329887079272986054526680370961852634751680485366554437456807600701188185545765487953213053566004802439259009505874409183844231571211436387832815561287785958018418406812706911209249302395960049636725649302215091651681060031823147814613003287713611009139517939414030358520273182353683369968529382263860535475463008611605754786286355695573866677430853355417388210733062177726745763164268841603604587223418728779321321766903798718417921230843927558813491039980918837306434175192774032845846399883644440480868196391145956896182509451890003123431389040648976659380919224424671316196382957575113564048997925158254640079924969044635885320531472300070161299551784634516064055998510476811783119767789970652575608710314020653381074813904855789068926623206468879160352100526216482910667254868613523452430440495927700150173581042365712601196564320640395681725273386336411338858307863710541968908691415378451274756405893804406619917524613865401072539105923849153161534227470380709849575584937458879102946539587720368031483050211524852534654601150982542968886454770534008002987315027964386172710645378715383583655970177134041618539461608210822878300949976444134678902537242205518753374933522448768861653419405606928668235698213933181845811840223426429587792221593356812171107464350927817852180772064068742673319536812155618508232371833834392364814022667408201244991172290588017590165843554511921638502805004724212047270266840078658318598979939010683724850342033214890551069487692162038933580197094711948242985111041211423173571809862117538551247756632219002270716360928444491211725331019112954863683637147330002541509475611197473411444356812941770274601355134975258338852708863155759089473069300308310625999252156194033797454353725684356720413631117746144068011732255881646126635694295753310417802639539901302228660861310326667752254165016696288520966019670970454899406246730292262753333422333921838755777167154353034915748683447203276229142523232705147222719225611305799193319462601259644874639678635965690010544426287789894002766982376096414531918399283088486032248608007229536400277208842160641788411537211428446627056588799576009108947138693345033100089518433595152488740351442940141496772175117152334297022126411222138543593590804682853679611374795301746028004265461580180457548639981032682340372930539609675657247669888371520753405874782838842851396247258925616197920945305555676376232352879931562749718284588110900246782808311000784771188997836480327800355567604717506602032335306189290804464642146402254265804692440931111421544440523397939679152589669743797083094218144271298691131571194927332740839161941750754237410377729147128073244754796846365320799999657012407947162184543081375713119905192659903615546318685801982615095829052863448869074243406522402914154574798349590465713393200459768876368987233506652735474034665614263487195590065143177309934115302719192294450399558314280108957854722869860068504341136063966740668423645244259888604218334880479197162929680483564046082684960652068661605424278020041379342746208137390407056923940261218977510503442242356871843494489129921173220922462526301643562892793873467264943878209491063794258655070675894408775355077357226906677117967364156194010057318624224224818485498805803312414360726782012419317856032349415900864260898193082373974970410883273894281681902029677102694060147641990359250901950945106377957358768426786190081008352021918832430525465437305409625602591051637847478621192498837308586109965516570461203342714199671811242259314274807390200210592598239425167178914982746908923938930310586551761755681079748432610216084105717138270656904319126088986894206694119774256460157679967292003544361511100570239019230382588467059934697738785435586348430500076739511135293213480421470285459477624150553412170082195892156297491100290089523020487589925496365179322247773853707889494331916254170822301906869543806047912353203461769463481116190741035967862830513851837261664353113697868344781440898884157535078069439314846404390937431685151412824683074956878860112175234471340136011145174549087073202085577689767710438468417262068701753205876266623306371391528028504461366035916716546845809219228592114111358241067782791147995462349659997322012813008978625324218045989388343247015173199702196674178310827731177592564109853437443936084757189237235051034630252563223966797491852893765916530239843494272160172776514498542425330927290849942460883485635420410545843418553494857982517313293038969413800847387077842106950052413973756844423951457771582463469022066874588383019722091180066642912173958712386225199204368393839861213716136354097673003560548158405334230874568431524117350572426755730341290598031576634727469062849948085991080572467074407999349453732178122731077213860480291447390519795833730099038328400553883115784408436117999696713652573508968720823559084854343091577082645246055854876161109166539627246782607392368740415004865742470025100285177635131073502932259013179589309047175588392211749519181273790638172069992342627904655789209079690325211406615617540743392695625500702444934225887170728386987892306702309195794586147255193442845100421778608006988753843785341706868205282224742628521795865656844131621936317708004840404522370917177811848429174478355861176562153766358936900579179137861637044980549161672841387562357254533520157003600779767943033092529240606646944438265797551919480380348326515955599186349337420346899333800359516759699849465675091872625506472901675294995836541386981502731245941067723546242155990081575052664390019503933331137861489584567512068547226353143207010488243502233485505574037878355070152037783819176951085918485376490927094595316268900223459910031813846179912697033803415087887739200297940944479958973199379763880420964525178566888431898395610068376015350525396767384578796577605596099074810671006965335321209610030557018239362937155291162116343100255742476728607245332967779337462583115915808288581400716617776842822203758196682157484831244880999585336941292560276045258060940854206916607390109469526385836781608357722817225346494865359804221367969247806721996640704920163325796455127432262531537739702827879101934631136197629786939493451250299561645861157820353980608596722415366863544153094137115595924762897625705327846884369526139701990496263759325960801570548082746366561603882626804851071852624975116414217670996512348769664078359678855476296709389255760440006962982743850086803680178263443393941530154959172636826276359707701907021850080385919397496887115165602298390101228263825157302374909310303957489087343031911694506458154260165634289697852554081989035089390623438560041759189035569730416924238525537900869962627359655327755331956471330157263843368625286869599544349844697717254519142626177990591422360437442300356122026433359989294915691825818623566826901665852432579304861466952592229920671352216475282492714397029894489987085627442787226799237802245247164896681990860085484076443925866297724489740320873223116533791147712239289475091401244043154848472964272646423536184649684293704581442177407839240359983272225863846485439190110581556868829259681883753272540420842651932300296169612281330265995218523280824254455730361709924189372026899973661022257028428302249875442603540459533858597104320868936091845141760396847590951718168535480563245435515483352644541129499761406320908814866624478230150888390682646823116064279998223904639015236371260427337697062703098752459607070122468755300964899869632121693299912331126549923940144821827594577785593701827809965096821140647190061034461473936212052754097066967817642673665917491711682519098882706713956454402922886601312350075117523777151171599420955933269580531868571305411716933819014630600397735986792655789607909432350735542674482660801474398676722492770416113471817752043835927376446634601490142731951945196260163370474622506047635835287126691822629585233299601348812984975708868833709556083064438402724409634771801102983639416028476181319811568734998208316399943594324751335475800448218583167061270904747005902921863747184113515752496094532453773750209401173124904542778360998662555694867248018891575634310517658432027771594465211915436386781857769138257536065692739757148021441586794061372906760682996911391551204598407257975684878864804604700699097619606281896825053305416639067456637289584968472762199621337517917310303082748093644611624904191166970325585838188290385022115667496530390140482775733976452781447068043558730532313377646216633256167788258960559788513808054175581495674638453791258975161573591000147952742970268741408704294349710945487873915647584118674652187413025926685384578564047049283962438560304349647932102318379260891759466843564989067025595601828988254621487069862500721731953098448257611818606490234190975286299267164997340612586083179215699813764196694826875432964418702200438385658080213741750625359474577303047562721244836184539007981669030198236301200856381258746107686594924571314385645792550363350769728525708197652808240317291808257859991574005285945915173916105946217421369587081614683559472404727109101838700224853552195522855698798645101026749945526834437805956453125214535607733523250715654762837031565422671807523618047233272342136489513101000738922777226654188026313159761644295477937235138950209526786827075855925968586246870970463177513211715599015961262614303810603329181150088010412820730965106516101985678277668755193218612103245489521908549545444872736253641334796525816071446770838767637754593311833318754704923122026905793270753823412598315666089900346977389715168083844015339096457747278688851120440906070679445087638878479188930228057796532110596068293989525018101317204406935068762172852548269490687909252125583898477608235419696235089153170362214428591929229404015091967720020544784414178159199021609604826145358242049380512990022509934798117661377103244088934941953664207832012641983178664809993561901120839249647728207580128031674787350399034277330986657620329654280751136154446145105788384689055278782098596959054557336756611102178157111997311590657351405504516096161807541887300413876242156823101476266629850515039354391369920080121151189595264657919895093976147273498861695532305989901258602745910124173955687498739905873284441066754056862182993310271410740777745024281345915815801953791594750581546174633903881797321565501439402542230599030798776179665546015297232759557681102565843978480068757922891630746029355185221089399036007538137791138304688249681429874629937731009474829074757525222159777723923638094382856425486952520193652187339265341282826271725791946856440408102770808923430425639942352621348922544534501724989100933938044732471134575251300604780896624233469305304070372201012651878294988565684826635191826724007780475628758370819168253565310118220050430674596481532704377106962198202465232343657831836190531793478686148594151866699780541818779197451449196050589481590112398745603503950700478725745185874754356623941835658414770821632620423453883750200605034055831876011813214935807045060365679110651000420779862683961687264425405787003116869446743017206722345754046181581018143205764659451444213861922175494378278016066625720305240146384570560062544591785597020207630185248629676152265874629752242747269162390333951281153521372902553606936183374673021553752100363531642871727820607223758137517332814718103983583451210372236189146550306367296149329768487509666876674742612086128967239023926929374739809621126356556097478181840678864474984367696306786117606950125228515727875344244473906524461683080335975182545288357201240435856435196733759330025576443759210097251934994488497629994736983793322024782127936479231032140300167953585732894744851575949221734332456505794439546222309800701507935809736176415938106755476181057858663116911741325792080857331294231785805257764272859616833909100886239278200552986357285109211344540718235876502862478114336957773636405293030636725074859904193032017743867772793653296862089921059160311909989338450472408349155572336929038452512596265750358650296147806324911119662041705809425676230267514803315434634058358057962107935837977170519182934432349542141001104721811849659889547686938321259215397452104988714176816017540282256814101631578611544291217546028382259041950967332480186478115837196963934741727511715867386309367898349478591143257628592115369860391577534310837715816930497581293126945601887129413710012037966894289456391294899726441849224283627057207411881146764992709964567665678414552310162584326501906200842115595030753013915201184276786127121581427975367559236897534557110816346340362919888911974101855710650137689317619580125860772886357008790320633428404798795703957223638242295222380042397917329524996013801925308843155135008367392345569847892839745246541357273103264445955562040691712916071850537424599984492229380421811327008570363944714877478348867459149988109987373518074312365781465994217381724445868378277410554731425237549904699111196779370765893213511312109995266966791690944298075148347220088862009552648933856535949995458069480482155989901654132091932123582896524831993608370650243886759908563226483091502428412931932554829415490728451352436404639960480176645997610893348176465254318736863830574722378153687291151729127141343768893634242278029764761634859377634033576759825597201833035749652342026690306236394543826433810625739389774714555200763867285761064248806412963581409892714358381333587358260195309868876815043718496756547451001437805709190555275681549188418685147951425966647632022428587671429053172673230409725010141858538170088386637694247603651891599492323426722225477931575433210752565662077166535280418988274946771254000873348682796260941632933023536063490464171082574456371900114996103913933813442804608184679105302041521533232114588895697488295099187371364908260956382477383787642292025484887340900272844941950301076844253931090349915839307800607797318722073252924824657861538684231732225059529428662346238788347278609320540669931374759754403482680093191019448528203516146128595877871448419553419100428175085728224537494934665145368646139913181968312589113591491602912395702996709636112994354116752869388432052678260514306317864597382068829396479688963760159451510565082629519357542431808385008912554606024092504931046752304218994606304516962781091440141392855982783945390270033930677052643092261786146054255911272293970005842258222162311301413804858013722903385751148860797407095126160006604904378723685002806521954421038934518013584679726548363714989699373512716945114956548801867589204724450373482931967187561944226767692857782893208376986674037836013817509918553816064300538078410244055459940236771384871024517850031019006683918563414356067334890988607900798194043219393189568822420908196285689273528517484878928959196146066778812667274467987238553547199419616333953684613333915752755025343834107869882805555534020419839017310738314939007102303566916469579303242880280781469168653421844219824083365563792795595634954099757046964860075867457904034144312121619279746668648787347717012396523903051807941362797028379723412484154141524066558078252431700841568629895605205799353373937189788358605031771827590786286502985574330146877228288200969647701512367872025256084414780641282294459152872054354025391689529466285504455002987914593292400043960802812823545319220147881748709340785146554014632022072395343163021330066918371105869778560460537423732426420346074114999704097939095744252640869020418445235928112822109401122362729651740736496537947105505744450339214208947507428616071845565652002259483464297245331912052594075088953121526752781290278476531313178108132121438471454164472902312280551830236237482747878309266986895732003873869020960686447727925691651964181938198987722315350133178823462364949627688688679623633434787548256031734608738621890170158428425409053208643262542363734409219391606098409618990548837736712957329283313887882658754810668958826318104262796127767246729268346069949263810413919482771111016657931621273061031203213584042687372995414360236164435443172201983520149948138956330052685848645311079232971293599248920106456467142159932387004485247939224402587615524106653573057650869342037767349566345207004239897293251843552514238321026430154265190017842522744855966373844725920483945716086562826264894878985222456705757938101736656001703427453174303076760454023998007742747283529974642408355102286884367692645396534874552722142732174258110409258043080424452419641865961331467539253499607257094670964125895828893451584030361204139010372506664555424548634205997575516768310735479129306275545707726454511701537044112856011141079747912246714197344104522214308004678309742262982284627874405630416939475683746715406091971044825673413317423789491247467651323879928167652062154992007280680328791325627522125992533216081534418393249681268187352033664523056786222504090721179737936474359788145213165142096908478928108343812239188622359325716869402896352474766491982974442298546990984194045735939525017006901766965343078864893475310057556781060326439962621081425447100040921879320606672554774741422901109699512814152303054749050492491629067436730961505192392524275257561659761614680392334635479514123577559634541843773904159876897354466493403450043991117369418893179198209521629285132899271428690077721740116842384630500126968433383752228958119055935374779206806357166684130750909241419533130799826849396843445655365068029005385077611922981064131146182748806803285327724758514411327102274026224907390760147909023622405322274662694139820356294095638659050942300475578774205923623801910125706220769396093922695880315687991647119389428791100132286596515604813968433964556772655766909161703891744816810743686071181440372804980593475907653997535750762053124788949468640624435057741102982838873637292867388953929783580981422101752170830148220606475431403232001770541979088060364902085274799328371366851173771132392610187542303818080086788194989601436993086325378993302920267414147031584133493479531853332616438626333618116629186403877610178818148634673835732121875711471256132101819747959009316731189376311786209605355387834103313582356829529130029211344954636106012769590561742477348127929168669669246037752600217062633603481863406089899659320302269373301473057196146174968707331175600537580920372595132529850239137903618793558788924337391592937886623728187151987136467005421014788995357799074162336389974364166548010872256461769516009363143697123130804140882503345263470740000988524899979095387282830690354371052401315600668377537793900653260637368055422836715408274387670368271241086076511221710205791011772314077778118440361941984301222126543258776116176686330120379231223727138987884736040028325225095660339461094649788535350171088518741761097707190699387713559157149920069593960940472470004086192574596960365319792513702355823385056182159713177733482185638023101540176628597849443825900308257080129806538023846108112229631776495515847057878647769511727131782495179845473739177815205928702094405844497325397376123011259498822870225738899441145818078875761707905056195825020545536324676472372715961589130180166737189440571559806879456447230160815247557917355048840977507278834600118530954529689229142343047042470197743657203898561864332094015156005654131161215090418049536769871232815307384495052074616705977009037252397765791954201774811388402981394603084228689511882631523444623044396543242683922165367576788019811129185603519582977334025860841899828141542169436966538115984181942845196042898774942702126229907579346048581079151355964554522895343117333570064818813851332982099753360367470695154697858554788100145687484284778888006682845986072701306917393595471664569976764512943811868428862903399046817874691971485007232268773021611397898265978335656148615543057495251863189078762581448421388242412182622174687705157345804419239133205010888694887068873942209049115834713288609559910941615944823664340388848213034533474832746513930523217963363459769235002436940451980968831892823136411626350019326665414340451167233545949691678454350411563795126037892648971079166377323287113399151014116688686326389702502783019794634601271711447562730535827949929197883856211547925553011139736727537742903967710856179237173754748170429244436020746257991823566099119759598154733378150932605524666878132511170771200777186077515889110025951715245281450632797884779201674566348043932249285058270991709883522252105155251109536825607446619904054355583887993626862311841775150861187955695816043519779637935374853366323757381193898993098016205302170820205358535367487977544119417140159451475512480700111875527796285384677710115877303539306567796860177703585626051551880143424883283347263670629751469454975391453141005976120367970725709462211272232184147143055300856775157438851157053623080510314501411740646374122432441606192993915137199295567603082434482770113379953089515627188537453182915120476014523262979894272394797260119964187385847016364533178310282953872122489728360020430333325504471629911833514765793680812190051621777343757437344433319477509863495796369795827023034075123592105105542592382343368885435692821924496221479627379510007439830775093313570109698860061158596759564514812590082630665029771555159356977508769200750016092574486519405939223801020249966723530247940829947408442863158221452360697939430832808607891142470935526988107261120702677514500224980183229358845586896576319673344511213733259555940479256995790613130745116327797729156724159318676055630163074844303370784837696128062028157852817785059714313189873564918410018017777908846297696234654781361712321525750060720106842328281913331309254048630378270216223898793278218574730518441223968104744440971002163173845405547868693243683687258795419401516989040979841274912424062910245572730891094121588797824409002429038252600237866456340231667655143600319234989239723936095939654045259607151331085435670123550203539198733285340337807914051804197409106234327738607464629342653496444966299467306260664283265604298058397556502319946128200191125452319054219809819320361352821793217950768727637115327809574309016624193091020061409996881710632742757870557075007783962009080081966859878144986210066456009626905300606468094964776117789852460631805283840292816635074632389471589082946167703624519949503060143399254161880399381884322410954155016508058910035226386759612508549183864108432800207701022207062340631407873906360923661090436203315634703913493938640358259800470737629239060776168959333095946277343784638857892502095965399453252054900015883765351655640505345259093118607159489181124902477828677254604638168961284690243122449965057955125223530958451135372048370613199156609070258901366303699459757456218171120026128032534021814852697640716980374091306741745745631170903977644119620824433523818097179598069317754227134279974796424951115643355439006261480765451879319871061911315561002117810655769953632063901662591347788447232101079048602568118642656718587878307889434978064201842267181531819395053799553484900681566046124396532986332281091178314190819772825273645125951103864692416788256516388905255300546821010832421199622947801880393071039806396412747975880492664053866879870663154392862028601465622117240761417391691295883852322236281237126620313894501358854249400214314098584092196652259155147425592026594670093624577698249562092682350848560503747310307703685066520984852500651467706407820187729884627872452936205449916550984176885917834091956296337877147669293168703697014093761777435699549003860184744927831788428940763740847434054485821625429494744522591899547063296878149254748036573464846229130291551331801556818272034066782106575316555081987802132705211736000358309543393909167466376510821687306114003885547752372241938117018424575144531436486162191262745948071932005053296295331119079398108595908236438364649096409178866167215521687990356373153663769255810076189565296253969746057190822463083702252531281792681129564315334191079803042489925866846508359714525808723919224694719796416290147086465156202937266580226118209062807146561928113087085551979304613507855810431948231242705597424816154290164796128502160348231267860688606802725455205952356741984905491205516320723041591399191524819021264514113364539797915082684466209599018582189090833130616782757206756323137624566422302566367090033606299460254845993390465168582196229707349613836490358202699217072601650357065218324121094412388745355924881671406714327638318563257119322666209848971768570653126012262690988872111398868075644301820265624860760999281648140708305572614203379211545570964046861266966123075110837735523077696589959875584520534769308415761485624553908895942189198315507913795276763655289169100567265978986909934838733902619466675193297204476832079006438823070295487737862217061109195987224258966203227200851825974259954838383193481408092755906505441072536927618181099678108165486478434681655004755170379185120137836010278858429526223899875872508073718293136770081580628535330442150829365873593451525919694704116775737442775705737400121231022379183883059807281333114956010901800557385055467399687160008644013361423858604266164379632598911158278228782941885215285479447042193743709265346936715497330517011097361267988066402460771002862834668258684773958638214590455045410568997203859582926880988005170690290628116546685364869949113433841481642012881751985733680890104090681162752885765498369587515496914836049828909867817339579839303421931820551171828638213021006727568352118328671027506397022138279699933490133467126194113919949778658088324384068679859263295640668178503413396969557870054182272787142185514805828326112131752779199933886587218175774404055828668429244794722230370629423575869177457242652518445211441404383333248200015401806888471402717452860922883624295925181072372107722328939889435732563494692859976584417087472736004002910054281999369775788674887925043049339910592574166354229030172652719879775443528627160672761619120934504603919924327086071925834676051042415469274519528180917288671209857901638004565175189292114840651910706650192876001740272076449169261819764372668969018731377982913819653048761593541978918378487105485006400248214575753035086640748215934330098847840300026281960165589831070646377402531552329249758858887802045719246072267399078416062111093636926416574150605615058489475423946559643458668050861846049342398976457192152095026385469618854512450911948148248203057683951421149486934381136202084245233088231418990897370639257381127048633680808756973792039261378606012924348834090907364193529633978604990144187577642223868830082610410012008116108560308297164354103065409014848448689455127798396426522568766957508217220526351628133072267494516469090894224483775645163966075180649495750439626901584278354119490666909315487120708574131357710448843423632833718996754037298384883324900328805730572971026015357398446456876060802655094982398946832389633362474393988147837455683762083054696481492341738081482826443166984580924130046542324844980716461355075208706857691822928630633651887888345526074277610283150768880187319945946262307393201573117751111034710343531760485945834069412285898740626663103870225053526850800056865857850692911630849084261416605589411470356250149100593075734357177647700832189345880383081794249948244338002009701233172847133662347950831875251865782710740357585328766868153167401277637547026348684399218395617651777380193435525732203319579613275875676174566909586775549630559546249976971441777444329591768010302806876601057448639337603098214560973160784092919835432066380967308316159365637860671979429508802691099363004476731745329197817901326385828913884704112671414136320111366544869365012591779288569123398990913756421985507021027425498586779219254838840623001816648009020831367747544375188581619207925559704852942542036353956008626979032982776051155817178058241578088568175759957004735884480869024222645018394891822367170017552194205810179757617300182388503914398101012692332744718484665276780396197705452597806994514482965805006014647968295994817969001580008434961690199480376797067082320511340706181080762818309399197453706563679994979471224168587787379898561426211608122512238987690248581012078883937574588824467902276255864555879859096534082822852983112569228973703805956354581113536753995363042739066012556352552709851908201818615360051746192890929247055772766678706445405279607706406035048282161999341418333394007405174322133459311998758207304107217748965668020458431337470435521675216837827135088484804454626713657761843136027442222700183539754600945394232680625797423281245850502805809129825687588298541116135316889945003786535999457975749168043998704783145494246534848590909596545819756426003893840796693480496474188735653631542340217514370834921815393477123384660427272193290053476411492405844838890178252591774361253848163683648972299260276194903557441471697784948772138092842085900547116053635677363703100326211581811327952882383505043073121268377484180817319946062481858647797145050221292360639296929066994250988799780270473512596615462860079021145227082795951990375575592433270819470402626452055603202152896096993897683698354275824043911320396887712391038915180247815855547630413702750677929806944484737953530615795973005846375457431887401989521169817980664868148681827749344906735048305953830624547602387738058034714508590882689469540453299245045829080559906397044620115846279575782224087479470241281786551608772320565694904173933427342883388266933947536415961008150937017813505951336350906670280216673044544276175785434293459207739674683743035087913093330094192517718100131882288135037129578778966845767610458687521335208702893083359794382499708336828191235900927467788455544613806664828134871159779784742993793603269086644320882510176824703267130268302718597049494668809701989181713337261623780235524573276956316720845997877483985482999340904972003946559677707802782922057149937137083536179904119806826523733234858214331030552510865677838515809173240336259701755615737023739939033895403184015123265207931190325021798997280132972958579077521227349473633311061848383007257349456165233054818211498278368182579342278024992644923789158737325501356740536723588741316922948856827947267188352070518583360500812593999708863168507942749320913264983986776545565397850940264534759137858484243720018831301134309735778520679143062568209232680294095497247558357024799641264287252239801471210562359057162654662585447577138533942248991461265182903909866322836330801793792469491957142569857854226296534370553264787653933140316811566762323038241884931371523207760569434855483185192427517205538150997221471480080715565380428878589365359194537762832713205688102541910404428241394395158284713891634342969729799191353968457137918392510516553292832029695730303191135480570931519940461001139656170812361452710243232032903660778867929165336467802684313610734872262400217368502279019690648462931324489386031319139939568058035386879403503403078890621216251106923523183624315050569153549193057074506883383116878220446513843574918120354350296211202008941680164871550244224463119892036514429577573537265425663223799570639863918217274128684236946464472771284290048054774734134716311181330578965413028025971136515778605006761337740010045822203799412130512024265429556266822836074659983181471064374292164361731047676609769374852735745383463491659612062520894245168595494782780299772436611112850631332302542319809500077350766149809975330914755054169899210203902503609858180761150839001713052050825918318646564559239939842982409687828971892222452684582467326703580413694745467364560772662233525411625532261183915783567469914111146445579559192216568834408339048638517215785033743955673451666357337071372950502185329612213504501616301548646993110232635067569671982205184026763461798082221591667329144827261487782302545770772605306486841069763744109007322164087024120680671781098029090018510184620861512732878963247685392367315124810733987140839585908099012659614666673173421713163480138680749455246952328747317536223553556668343438522531918661372867639400417539681357990953615315851698281127547932663808338598091304436877854644256905111610596501697081675658959888108727663576896191320921570935646739060381357822556347215920192030421796245213781165659583752132787464917750322241484302863424703886891988291754863433752120873918332147878435495683733222023193346570424138859410861760398436146411781266070752622907891469010868900103669412013644015466507789262752201602439232857008886686958583083883374309341187755587706712332214998399231550423796838131532727844304375430611295769076969357030294435579761525709900170968524457617055500089409718541788417180945093414098063832465984713439225048539759848476305305803439737482205537032192380057054650455121844128619708504898473931393806492915725122459936776474735505793966340813568767329983279635420719279335812754687862327115481301502309617342159503813126373289762126164515081559800441659534610670661398229741442485579165404763099560914232934450818091274093003749856741681907124863981993581919267095870759823388727813818959923610883079106916170013942837744496736399633439475595471320686431630843962848889909460455812146996484252007112170847502105488358431550512989887500681780695651069658160253505735523547606720892927156992740308859231478416806702534019881797119798854647235992749663555885640965762378604207653990476822268264457193858900589771505696528426690878004394788036700635397971878136377905015791571839702203244697829479961827227282064098374020628540921257521135807419239782084991039095266837539586869526969613527199793592723305103519730101747590149598410129370465390574369681987140781298507256465864809661276517132464482454954391308766083648555974273237300293896245616509947745086371291004329099309574059579219702974988071233095706485339863619947594900854883810472387557464080151299108716577580116421147096570663246837464137122573659659339863620625092371279093385288590959390407981960330475511077958426792442661125960275624230012254691790220822620328770471044088702240358838568373450264519120572337609292036382783863249620605465379454248706234958004904443800250378429068877954952233045136269060938477332353134712075815285067663848147222012043199863878829300131167315123107401395645286097095214972805837008270669780171611696436182496573847937252158115460613495907171816866742141849044170689402888060791864472199748743786408460751075383952081667795184578291871514645862297234778331063750368639191738654503560519674690956098050215231938712142452149504313559496313928631164079176889476503550866228553102391512325080018834737121498375657703200842698761991352787950535090508777962784290679157298360187590048907804316676537219647806906159333203293770436021186194241357027247487480697816482200950590333335075400322229687907834137969127287868477176014620164474996540745010533152261519328707022742373360681270812854005229037506042131096659593239021281530861514448354900026901954731639671253250487441579041040533238356251860344111861293571890533367031155833082258865033239058457053546116905586704685535517596634446406059341651656345484792488813409861018620856468402302495185758144835670965118631512968893139987859058564413685831733767718398193333039650456996321468151412447795134462652129648595245079381304405786892485363502466297818631317408572935449305284982957098845457461669974804243571104399112772294942007783220066965092358412026166363358742397294753668659630817930308217433048339578385486213906585956487745715089251299997618194039497806643599671569660038052635305756675362746487918019360739605977839653685662485697200371873766015661116443077186586907978890769034434927270953523115597645715468454118636684133641856584491943401190847860995450303028286298954638867519829451799592709827442079925958536943253673470003848165258956099697552864704563772833941277642408661822195684996484926091085361640134268919022046507858731023981500907474134606004804515952775642192295911618964993021468420695568628235228379274250776177925728758202613383792568342581460951508590368849378161142510568660668401061386607909965714015373211664883097142195904685202494699493054624652412252914882324424541214613568440542303567589736514460923279129689152290264523576598473599251689718947635703549319724019113595040584094801914666256407150193216778935189965213963545150278176472314067449154857689149116058782800397033571995522449589991897943057630418787812487737937333002404957227355734627785505102160612345913891786014815410187149693386330433684191333549219774903430255005634153279151768333873391464428986219367019745673236580574138527268530638298728547623401867557090144646494018160139249892645599721528578348379952975701303391747310658048089471301905380287841236909676579245260372374043153436048847305029715569538898857776892577996630095431487688571122486556720104585506146175034981357743423433306360329039879787539798485837441474996178154240795035278134703577103435237926620255562910159830377230752791347346885577160106362179709907425761918867036100160192434730661247322030955911556243536055941832108201614304071845930359217191718461022621628179238981556268671809104685860345093538959531220969842435451685426039657299156681665393234792196743660762675355054162490475451850702225726221082115589367715070960807687624733176878041947457277363108835435398236928986142509846557342965427533114807073815849756274115916620678282653905302987789147868402047908666776282013794092787051011600736273343253726050167626837851829527578522471963878617539535731957841845609533065426316869185871924017542198524627692079033033249655387909221609338796746762606991881556080327575038601408001586588944798476908512200448198456124324063841795138094007141110864108020873524434528982008275748106275874080333594678375129663100655467639463893382556671528322235053995309283494362548311579395087523390621770230630993955793286457375018737754614050677750032775133462991984089444893395737057024469260552948614490910422700540772542980201393378670568044387789721112566915113816758113090971994905039692495667539100846855232762245791053198614834908483421425054716070791617380286314911217195018576602213035548429719520169009733943220779917998537270962941640131952691370157538115605637861694202652850516513625316225464594488495242781304469096118258860737784687720499679313646500140338461119170278463792345098790808553537319024934723343846409539671816527518325572443933640038317290133247133281103470237790940482884527511233200151593331735682943675013044736607474343539397149257192984797629063955648707060722650914024533603672176442032206442056907289113983809676142974889577667184138071068726708947272629424608949151186064535302239784000817711730393539259877942127599271269169922231959424109091672021939095309118261030542738318002671510524865256259328122226633342332565418300910319842009751621233256632066676633323347049205373621666976964248634998151284007596898104985943294964557926162234353803898172804720459432545401860331388330398913806780180081908452274803637085316117550374126519672943080611306548259764048780103820331127095265613045911758077450413950948866114681278168623223166082415538541897984918939581619807822758543299150236465264849100463685556565633055103879400558954741498893728765723410041593865947555459888576310586328727514675065083778275763477939033394382763586446310005255007744671063130760049708542172048165984255485382437592567193721858853069753831009880157345364344162407468750392983799119446252948128057271535487597693297710144954140390907917910737846282780595129426455772649301938138389092166694343384187331949066599946578870043127316771478892063542940212918332371742177306514633578462584457554733706654700875145363060459524982893208477120813590095187326478154377862667246077228255962166470911911536608684891963626686344766472245132150890630569773222161251056507386337314881785325328221385887048329630879695822268304063737943603766239558554462440661004598727490414734299409273399608163962372500637136625689320144531868715452025162834454910352418737863790552348671713699530105062420696756505630682662954704007618750647542195251656027601965231902179085393821759594952598251119785029066814790157804580105011775702680405235878335565316527938946448696818939470784042552188054585839645479773243351603923261833312115227710979830879647881128428044128553660095857289486718827007564282929527385647795984913691787979609422907050192949317698398181651780680958495493807089384402454836516851276195355956172420627334813603419658616356324715643211315299724257744609944637520003131570810070992930448436487070708209510611622406737780443857342298860414225346941688519118374726430718139881859055546258666990749506758274362840057816684436376902015283521872102888462254605171000779149971392745760951575246096447437101076072649726034300560684310827043593642493898997268972916907105746106504646286648464363401950198278340142243460124378591211736601885866740657999527798181067908195267746868854089026582934943684900745865715378492139094412503877661085542310714413908946576528383509158738897990379614562966599707374081575290089062619541104913203009612149587070675432559173117528939752743520067964669968031423441670426178316777847119086644955494987604239631402122452383437647244363097505854848572540072580924241947836427473713655690220225289960173759621389195148979667139900535275960296293785648984552274148582539598349969924133660810092205189661355257251694939670905977784940148442501873100811954153108231922865256398379399022610844975999501713036408368728768632889516615793730799298511067334688562714335130387944274469885949871497409645936608843407914347155553311301751712143713497269769277965077393850954734290003981670097067548646579820272794718114697439956814033199205097801080963203103714150913022652203373414434198659930865959809139014125343007682119620764643489380596012722456375511950689324503400416278938739893194156844472378584297842620913657484791532779029498814346197395373366710432809840369313996421591757256644463510198817704468094739599708453072310599255142064992424707483277519205328160788143887287194621891813522761504570114105012049875745053144203184364710583358008423982358805331586593318379485024595594751765025895281147405893763812810016009375478618386158233381855939171404093758727119394927594439584604895788421763506124429680338731126992761737665401708615972084442256079086997727284884727156836911627954577045532688614567951601854806733478125160596142534378640991005865687636951625254186529682637698513173429039708515887547728470479464855414240548621096743361474346769703118181730623231218465080089110807780805024578302056527478144415118950368368964762022761929265517450370790106921978551268811162268662027043360541617674379190394389480896347499720596151827926987437918185359331960332971476533525161298093590904217705786835025904776817840157252022109523302624091569215569143780480037856342771167444586273720840208971738095005164315733116879658243435192512772977278783187827729667280161966092727570548847379332643397288755698114345287594998825717953769640049037178540222684818067161243155301425495623380867788634898546556164958612918518436008192854935410387644094539501620449444736485464286492766346501905321812451744746300717410831194033610849224138649126220645769656308475777916791807208502404171448089368439236951546273009029475134403978142413209238481958485343634778923968372588899756711012914997205837712630578587692828053056522677572815726555485569685676896265218939788578120126117517660537138562499526413164036846432616022415689730631204672327547046856205159935142937397135947455587067953188558838501618168754567150961883679709571907337265357557877410531342852074129799763736007101156792962558708873323047204586965593496389928094099500067610792144247666701576114720996799915852328826346954601471074374910328974125202075649247776813413800326582718622340501900314815559722774290974014675449465059419045086747702619532337299211200426952551981473233014711254306338447937438822229085966940968567392065460784753740008050488252411281754393494898935449595682727542996113788706030714493085692520062806923462162589965330007330003435377154712330891472283757990043537355633539557622889893578531646405593088534217978361990089110810257471091744122715654349404561715619049033545221761928055525007732684426506327089352004585182576758749913438856603540567556105842374780551672642188981931478620891403260013899859842409004611617623140014706526890061344390179537346631134977810551343775382024592963787399400597723571833573332329267341827309250716609740176159386572130199542530416440534535237984119969534144457982907981864385753240084439921470028359599106536715508053720887267377064097772719288182575244622416732471705080469928339769912493631398476697414300825896355258661214154281192737515703326593512400315328131618224472996045210601972063776448135958376957190982572587874903287359880322921275787833973782021419853849643364137883512008840730396206745966177321963722253698746748400550344294970988651040931501585487067539168984162697868596916120909321686323323283686181698802824312211642354926523052907082264926994907065453244032836156080116299193077054234598831370928970457288808998731752639737641392051683310122245833332860459165939871176910406307656552716383306614608464015424415700830418478950707706729217574085061018662731479093085443547605235196095045264405216718206859220355604538524541676548153953730074287235654458972999850117471615225481060555591882054844281885980526845122404620045854077872131631283570366905608292584727448833139441354449363880953143596559658017449267958372080358160441565098005430365780402313430393815821187982724489953749176343061720349690265887705664161990484413497964533043174936367545386266110479226304424190947972857926732382581109389469068411305471200137400117202766474118745009309852671612387948006171379596254481246977900485312267097559388298637460907168692085074736022035411721245941362932167821444341490621713711169398587777128765217500048466916742438858627135291507055467571001147807101130348054399139825997341135847257742606153121600287290125097663109644626236510528719750884426054297532197701003741920167238150322672816845362417139886663711751355009509171842562626948312867384272804903237372056214298718413442343571029220069374576694029857779990778514577151754553927692568385788434230118876551379939457176841917861811004919755647546167876833403572559223897914950987145588823465619307035464369329852805158785692169719659312299375010264161433046618718913635104693645022064559362815807502508433309751836033331270645057528854631647614003770221536274986547576500526705661554412862590481745510245501281253147229530916854753372072555912309761231394184125415719050036392207208100232495461772670988452033277497098494336725346683053975274110248801892861429121614211673450259483675031228928983967694105881913712153003756064471720552086910941879383614865327512503607088193605478714044137430396237632916852384986729443462301324602584598103310738538458000157319112493169810814887860441845671494168627412791923168323831767319426026397262217653889388370539420096776792581077246091503825459257710881005955962760102078363633770345929501439836653117765658369107664059142433170619792852773613095197259955024377923874960994846731342051112843459191186910964827979068447352533440758055088632178096572819184694774402047945510879515839166387325446692616993456529526660650920310896743771473804345291657346507760040600077164781296954092291191880459819810230526075631880032309663671633109726675182162236751942072805930450667029379873351576323677445261999106922352586921061906370733570120922777597384915359733032034763255023842305296342441898483624416034265114511581127632052977229087657956648844550816098036034730752000845062423725113930863902947909455864312279979233140485343020219110716269096523776263603978738339943163683357579563987958348150032917380269162825803460850725300939826122079225393803514882250795728611734696768795609301407792723343789115022769334069604129365896421470052696879739982239235469010510887382924926098997970421348793689143355944701128066522714709042362857596635577976146651213443044345592584866354701881942927997962137643496087150745716836877769482947722091966434230334333344513921009250724783053643001245424027200512464627965223306181365502770999311186355018906866150342119755131885304439661101448975354099503921264960574357780486907513042646993678311099751259850950703050742404790980758882436835115799833882590974629608193421502917942503235459942419180779057135054803512969511863838092705565826764025833227928923039584926917137355586291904388718969804009876495622397482783382938036471895819496005755345674715066738310702835330482052523476633375079189686435354382531853803430383837648324215401849218441082583736659219293459193504780875609536957684717654298397940089289326838276650648623012140957529655516285006466467007055675468991905748175789236918880507853870789334974905370232719503113308471143030342130607592140591817629209197223975122054813023120033133267590724385199274773404780924818824183425583952835750577001952787693257916268677058414815820314483416945293750361503272427401254871112664647042853108298411531410290094813148135993706638775455804999231490716302729137243718562134241734387638778208583226063397112047150802674967795070705105184030278572077393491003084597581754646631936525159228882174351703694893108672212437223123305283144641185508544030592743632494502231956134921312887126963213591068618450224339479658011477492504824291425048399184381659533617443876971063269232278102386046471496943540705738667595601841343299666176213903042550830899499392878392433208008102602222463146695288028122503931237154621563196347871857321976084085982751693579198425746878093850523041700763949400761880780955309465969568118465017787326032103632134202908034743097938564105384263256850522801715938827119269230742141235999696635516638702624192936801122482108352946805353559454984567925720275938450936757105572309434822376981441680769269543244368752496865127462913687361012546744575709567625362550433020564458557779383936702844797732353818995851477975259600100301669204764698100646081958220618752183488194006459145733892949237943623479918695173350538356369743634672989740180564498125091378799248049392628574184093288281496189307316790970276776714900770618573272412878934824849893416153917202953070523239754043589550171258600528704162096938754251845752539575425046897691479691459613319287646782143153906318471410322186726027080723385368850993306565050485661347095211440971304406198140048046315067375357040705066855350338846344029890562730937623751504008856872830093029623465492557009083947980988961727432170396761010271607223624775296651425983204475513288682948513824532581786951730168389420153287826077820532271880150991679715771888415890324784395324138164487821448588500998435690774749989473356776034640132243786714881813638598561052866644038435843785886212124097109091334141206976044141322626962987101327231767766300017641468178929351123992305231874005391812571852230300417881665487446343065295486263420773857899262445159511473874089080940156704798279824475985873624302570938393206232877783162612618791628150246636267466344945210024251732024403806508650021020725688570853050576974086291283606370475470024417092452173400242651659965561685148977147056446023563544411962126924227446059282970337536833416671040453314440465882617637590033030073912813152871625573007536190084733602070816396492521787128160324940913246356707231738605862581972856076523442783602170690434269709059908480839878880246947929271052267582042227932939025090658016942741832844499568932752573120352162756283585694204870216256395985200797993336654935905199774768063246059711368302432529741911081720044284351008901902606526162801162756885974326781815444874599335290498158291772010431339870988716201035188088586322848661503623329770761140517012713697680814462885081289376866942588256747839159963055470676447477273160178449418685498904857718353892330507915699395089241319813363277802294293431514875131448167139600114014748429196199870588876140648646602923484039169782890520893708423533181204756601390763466178554364490450167184852991840958487737100575896471581684209290290383739700100173497688368728916275030432561360339732214543754838632716916079495195306187843835598514563522857968675833298656139705775190543357500948670609371377021007962522259978985548596286752151471848225404587326546089287888605211570218278329412441592088636562630062103068140529022624697685119022290551900653242035025427780704258141457812784595235818297592351164030009174370836778500144424376213222528480301562186460313826742118512806670039919591537541623405807703661302855528920881150357635525622526216709075783607232459372138373353066879425939738451395516946045539238007435380030009894746517535169214011192452577881749806760911031755715396743882983083549455313995400881685848424525322515773215230745556767328751891951444106894512636045205089145406270316394957877645941552636113386040141721234141222069124514756239834365751870765585535414877405733943929281644484856294330187852366731311014899802901297246289599608971192052294438544526791229020077630224101390786117518543657289305666332610098869408910521493513556505481688943345874574141711564912610568585675237856388833713526323025223072708424961509336759266508560432422029305848958305925211413590886762689927552542335222558772393062219229174255900964474462258040891400106552194155218829010576311104450944434054306433856353937404045606618793996788213470718888212331039365504916614054717443277313106576383391677864132227596162413131529236661103232899977422227604773248590527158773335352380172150299580914944024671208663248342045166428333428161823104909139907811429376960981889397670832664550864782569612950776960868594612475386571496128457136823750871707781134768093645173764459232547313991074198519744360581386269700286579360131875048322876415073458758834692768929663606260801971290843877603095457873619404445477362951002255123336715638943385152834846917975101707964910999928238484951656393981939344585457502275489573551602088526239335325585573152543950617943426921849919215428448999990639142481837290677582000499848509415759562853970618012374662299905870412580336049412192596636318679546049406785154506417586918219804768636690918497496388419383853340735856806141924867755889759363708627645822797070304623158626264152236482235631125954328178762573092780908305139112322077503636657521578300295533103149152892240625506466636189694948245104789093669100095576514802102904960359319543405454770846404253609137485283434468778131328685999483503060703751689722455140575132625859334000268568219689752866139264563963100311317159942890676851471823901025298158373513274783424749941255301261544288238357434801919980158174015073017259208970164263690148603013851153982537878486630646159532247701526685053612054803553648524295980074163543057119527772694458889575076072799236073946329709415450879342894501657891364318793520387453708756386144366809255978960317311233526124833661817667101772033759742465782696952223124227578604932570069220722910306172548765926790676408484946038107298539178205766007420787617733897873055466949337266331521500567901667567436215785982634092161122554977644785646327194536706001309963153803943628283816097189832087641490331049623306796023237688015097138071720651696197605564365788391453938411553218023741459220879247927091199476641971914533846189343212779906035797713052797749770310284155057409824461374103426080310897344536958281714852031030061145650387368000729486637867412196376799736656645610987617445648116105272551494326325197526951593274041378919267409242373056828474474836611987138330261299025786641469896690995136912428432829779548317076666767622441002733580594932684250615210828179763902353891877192362550465482507612789708228385583013246108684386766113209514529573004493832734198763740652205541659137119019562741298037234342225020581608294095376246504051872670316220117615915545691874548319091602628773593762859753085784053850994362084874600525480132190817206898917170239333705194605665862938129197030241933149437583507814247240832510463959119201360541251995646199994464337083714190760646176628166643019328424804280730213977944337512681230095970817868674700546726517560930713117845007537692705290584649014149020802124586180265633309742403324816640827052464982251341582196116177640666225131057645455049368529855734042503595618228423421968844161299867534199695935435720110992838346819355646213219311397897818801216297505370075970836268024622110310589950571337207637437903612765477247261000583037947329034627640217826658245961065220950150705659035938325425862931767953965282402201444547082646228778044310617699487312560127666550755502517733334298592805679682499706070611161430324979712981552915442201856796124632769905933254665076770497184749658451130924131823855321769492818300152401716637671561661700509762376623001609359723691689305740421731695962809310268581249543868996211278653922945972147392310672889738989317804733824152516611525338861447575863222622316704275598360583018757781192508057000865839322316385296122686463662326894274237159896176865614442174143221762912211600040944724592798995279470638760445708396721347282900637241113279744011694985429464044284845550035668442990865728142681178175896593532010872916953204827823972857767254095609323643291614462371143002408847938857298246485333595082951652033877779403900176597569143689784532982899350399622392404656803263595388919381163638029661673129295183637506152914452874782094115432440208182656734124541524227048872652243547868865087769015034880258178779415202583300702830442999646469113596172267904831351491948037584178328214819061932911553291680547720761254157912830664300387456985279938237524494504434632172478150918842879950476562740986870277162765262375250741872839003232133876947380702573468667695199515305232573415906122063506513157764284034590742333752594573526097760385636874617050321136110139501828687033987371008524821710286017662499442369318907328690219269724434009932780397202634220523635725715046633720469950872484513557483976123048227598728954879700830963070027162116110409243973113196490934509071593628836787029467061623684631941047862342306568752084655795030984287748233074356449624956336579335553437333962072731732787783829365642605841885874046701884536691527381946529998589533275675941358683995558590375169638864987054801072391393902811312413635911731031431794538067384831181552355213384620562107272474685198520205703438000118170990055415613455400214732601476631077213736309981623087637371144446015267001368004104515968890546701131273776938640445882507858456049445379922247829017229796974647792009487816951698853307534115159168475531043562149864839888386658118730389984122197023879289878088037957578878007685769664129598521885526180536324016820868847736158134320977013996245866308073901124374590109652118678318475784420657169611122213528376034173780500426645199263571730751177176237796110746391458386624002432775156055148363637727133533643418607244488752867066344550339174396801318447716651655472209149777121906001765826028173493401917739579898406356578124865408932150369338768101350100031992000516249853927562485943799402775342879234270120433010077912862591842447046526579313445958766038901856664025681734928364096626055459405221436329949754690210932667669914792117852991897394415513516229707169030955400194592550165346741196999922219843512297137331494840985072229861069061975043934355632547338139985895863624567007533116382046245050440800090650763378384984287725266974262408410073274911155472825701743022416508695483674436411480653259987778722202869122511470300251280010805900246074719997219433555555052003187685208642157497940680742078486250885606767266193079473936537774514253168385923654562894839674740574930232207492786783296831735546583491912471941667392716746258336825792543327573664301630526562706288861901448067207208368686122447518791745918165183888048687499821950301660534861899551490665399677014823201783513804298001790697955253372928917626714790350157054579030453452843027862799595615800471902840785485135665233560277186857748040032375454054691514024704605630897420535931808269878785343222759332454718900982035017549178841287378779175921279987486516776132883937667857000362532167295476179546122903066376940550395932923461045237860406169706641249232250990751852218487345431815884764642700658997278476590497796012426195049792635309684995212147359683672432516758721612979720190528546041604438712568220380746316452485531921330454812644135138747985110659763566195524292933090305304547892781665794135962669257370757888071048378298075014807691570962844123282789985355991422819752730069421683706903629785280763335840727287449291347194515840247071086500460187758929604313908306629615122712625708183631495521868189532723249980131544983412880128451022371237637936372201087274021689901295457821244138797928442346013716107936602161506432674244662421969125345204189115666832645378200952039481741147767044770321012211947505360323798597670315846319844544311894949641598270413640580802022462066161693332482126649460845832985032833736075509109981803147980889695821607968099304211401910347077434960398185204468117860695305957611793804084891992707841092831252795416031754658015201247324691209129958352546058984276154274806041201514889488444134353090934030959801363809228484161167126424317642563028623114394048177027843251274183624657378026599831229565014649129984400688190354640049142572752078885253520091607725100522280487343157423352281374166517218617104595457107606078407353847034113301096737523642596641934160910000011100950679623054746554348659947708107464546943338609440789130020971703930779861176330703216259232708390254397890008506774892402211296951365435842363057840477563671362725968213636974757194927663685255765431851050827612301036364483174510905331201674044284557520613694412077607161769233776856541714827815478786446281120460225187156823054864984311585062640429510122406992574752824775011521885326778376576652899052172884694303744895210732675311883374447628987227708869040472659994202430003917280881232103436686750405446891273449848243669665146159432597141141485482121480878448668667087677698064154735598049465190798475038543346605352412057854908913034009952089794799738958074413973586534583150391797401324450149656335422318637456647538195001981012735167312858722816611738094859074639803077142930191456809193023857084699103591952014242212301521975688886280783514018336218006421342728273615857069489997065916797758482317052679637242202960965216232843806744669675894916867578373690257547593004434481356586817022318465859062792602299222501189689886985820160462913187077292545799685315168602891099835594649227361328451659922806900571905180470057560205438141295693027721671140782239562984390209490508291319941367815340331873352952114518297896269089827937985038172954997732155764280496044952533863920047742654326508419376019920836995620302184614113052862575319599599374014973823813574498194913784971406955358328389762042147600447479169697342655640444265881062377064917886483850445068712259336123850579295265717161086656749193532242985312872723918471666771030670004375455395632391029436067207277534717219755774178133572522843073057677061040370034122318025414613096633281495712015394862354563972235423105509263670480338565288134631044489614273044360970139278667047417079308673509827078438714717583480527080468345572775073343546743808367386012566213308427536460195021468158672410202203047029097423481019268805353993218350541324831099207920366120682271483654509330322853651465885226446695024431012201475843989100278399194996479877110874016926600578017107401867580960473719922961401973136686731119131443577147680706174072721886773384909788743117119018914829721071224305127782418127131213420003683665671064882586861065450031976267187425214069527229586674556947615029487265531850387201471342880672771752004356923052369170063125631148420047007061720904990470467985120553653418647654044113607096136292995703008854564482460304586873336110689216875917670549537365419720805513167603353399735122298743694774665363843415359009817338883909851339230194233704303543411207933575912362955140436368355836925785772535561516855956921562952638423458165616275830962201323018593138502494226425627925133629566396906280350798341589150528529353461921194651980463893120031128659145889015726125370210901901670677987220072100425219800000895416294411463913919573858364940469950923973715965282872845428125412436822833721545721773119821098535631329454502846015820617710833487372030235697839506765557427419418818045191802232426470651335417567712747361115352769490545589341588189566889475994736979052108376625709029709229494727834090193040925362491402352406440974615355410063394166942331307184374677492255565195273067080117607096334644211037049953963547614012025725531129776827034227762319368212157349557339832427833201810144311642231326273407614991158131712592084869064870036595842806621178337241399252623873546153114272604817988539115905661765922015190337569969143723488769075416139375506603023597718536121907231305472393073261319243885127373858152491589438084579765208744116401498108791206332105655635559689337462510868584514806229023195764603450510670777965472678721121190118484781661183880267125042401819611223362221231392081660835390254113518142632357318282831701608856579803449324328753738457305659654732454432791667701021220996258186600688893629072760286897907616245256624619423309706856276189215871171983021309086220906060031803213906071769249657516138134738638913922361682691284103260870193768441326047188095848158994152456754438494800043845463660923893508448786119128992580677428862525037034590537279289918672659820888581432832812524097529608082463759108892632071611922446285774785469334620856249758580301745513784532826499301390637060563782445995045547016173362289136977828635407614637023281848843662537435153458501180240638179409147954648470013073448427060380788566523114422224081446981320111208379600203536124411920509194227092706977629474243868402344924404722778406124393082746188596731793929195232382663302251588168329225013151920779073239578200061128689876544979665731390926480496369324194762861717127318982792495261417440912334569487368658886027174290994843118227720322427296167546624134687491751983165321522657161807576108030355507682907921054378815703771292959762030547405086934344744356875293568850921933235505922371751379555788783348650705063205039863151300897085530986495706154185519499609966258236866032944723585724028137590828114913093364767275312778458941274678044848874747516177469304477096822048378895984422177983795465425985337615092423461437787871320370055006062660935942812715513249948195786699003023839805215260880344774356594146392516714692262444511151922670638215195205008810884066638379206049550194232258790497511401996262760099174130937984736271072218954151818481285131925711814247731653606465692674998449512445042184024143229586264153510384060783850660004977984105288958799640690217806066584270241307352180124279674995398577278407493763381241995939139310038915199570330778245090516584036518075090029415142772396160059642037813602033173733883339122163505223336098226176668438900228266776477131337430760920934139728205580152254352418794973189508194659651934169883514191900230363665363015139514802973123756673047955196357149518269084868675504821244348877117261557749579083199315156670561963964559457321437138545570305358619861475682763489857242120070533866701347091343230014544108189284644098138071840418981096870167943490577334031426526164876213869914481511676450125927652555739541521593604809794236615562528219987622091689342937759626707773330927541215258690275116587575714859173807819944618713485985853649140848712282672004538102767925319085726198337799221080229749866663703916863403720925541534365025322364280259628321112318590884355672670607679507905774925080944518703535186581194647985308746029869324978094705720806829725945280367595070233932535151031426238721755904105054390761900929702877291384620648264371703737250368004118316366416587886288279836801036023907180153255109439398795924433035578783601171625400803115834519459222622244620947394612655855071591868198788448645637449059450575182586407238709509996706883407335285556746331692114531590074171473935175828852298715532392427480994532299770974345722505648581161623873662603820722173382372138599700212906620421549793266580290276007054536476358696824861489425659210595811946775568538507941157357991015725013056019248323106748198270944395534236725732610578584575985764635561947296647469796765828106058288040444385571423404705987382619642907627352828256659982924578778056899890255837400794284993368033619205158650405401236121460086182997246586013821914685058718145979057798327814643679144230647994214598460640214742577306655272321790002862861231384198148392684381075641735334455199428146634455667259586164691311395556066684675742681083516793521601093198089954980994521885841438073486306801629564456007651559077494132695387016746587816952120665792983673534988613731049873912402426586681883030764440195950686300568406504928990612077214379798127220891473675485702777899941528685644532322824323002377016518435831655398375540496152120125204168818715170891161982882788401694098343513863183251262963762083987742426029153229070377001949684528014518565812028629168232217957535646247709313817288207121628503422496873170546964583889344976632727923126979190712243854619438799989813495655935972687896953114882741199747614618672632943516596749642127951941014290367739042488249353359066685231920538023867742577887442442978229885271077997393513976347041369225153894702955179988976143580912732960392484795360083072217987908998838302237265090016101253757892621398811591053689393195573463567458457704962838424067804996288880880017608426906930331213933466801955131308252718035895576051634655719125060864248857137417272309504514469524474714415118892745832457890634625893380584119518578483494081257487173196286568788146264622082173373276358459074583879405338169596603657997265197950725813842251256667663944522825155176838561489613065993204586623136373118328903624327122631113399886768430413129045429797840708738544344305434042893134965037361793588618397474372829352286971226017428746495129236041535489380605048566795471587313771723681648560935169955598476747456221414678802168822598775581526671596837817968004492110565388983499447553739896913865218918049905053963445009104100434266018411204434656038621650498481039990877231195987493698440227845660710040401735347079229791338751253918220423932407783597350570487904989258439898647799365485346329457154857986532044673987221587538667891717101120356986413602585505623228365583156702180482668988330515556338358157155873479225460153231136533483614663782567637977037859740173062808219855986645842434990548218776701606551982784169929642612813862773404443288481974796148564963436419030856968735328122414985491993914580363585376202095375259984229381334949753668806407663925034887537189771080023433875890524197316112974860469247625793374876119215513923096489707602069973104329254707419357768625469211383525300147084400367382945500014084179838174008043524976210781527120419869479572572265821020143493751519506591111553532482206345999227436072030190386963550897383561680521267050752288178382523780031437786483197514294949399732073474516697902237422060407810937787004806930881610094927233943292470472793726370743012709098845725743274477781308234663390231685680250988655717812694440805025618013388538548328738704837793630533083577274453810275660737128104980912280448971584306811111801239486929027904704421105019561660569259715198484001722722251802039698395749144025683191468515693917434500796043292272602156084092952486316227541917746113218972965412186318420384637538097684674453396135406702356937074594236552756379884241203439256509510112234357070633886873293299245881308261463144734760512360448262450602534977295869295558741421851106539223688865584002588502644258612615773970819537951845469987886262443143914687356685342495145437116989494605278362361705139323682190631780645556127960628114104328736542533182221480872419075935631842933735211567581169433055414447831947740875303365961328830932494625311405706877325556800691490634611487507180320283317957762517775549704704595550913922636510002224294432508061518670230693140482738567755511110914004334874715826926591929916800549705637246128487984264682599824633400755681042656008532316468919227931334096129016713229482027540504680197005140155985640628101283632045345431787292208742363807223323262207004673163009973490540416929045507356191604846548566380782401352729863393739732594970080697465227874035648351828219503653007838286699821725629131950030375153518139261443616868621622336199533485471371257512348805139551956017916218502313036878364340382373099115942462392757900730199943719446203177538653697207140587263824437665247573632811981137544686491514985790239859703208891760879563645484230678003729870072236555736960984134232262096442994956306284200999039531204578327896930999564550889311148462283643224736088796147885717445526351870123486337615298576429776151062224647989628797916222530526797645125154038900965725690051303141265339321407744098699515123916893108740488769228822909059010793225264537695907403138370356815958444159052589134584228286769556302337701662177566172705133340505387148523155997460992065842119515246703603190659601352731389952145552842180083922032671015719127565147105984546388520009550325979494805778310433844478990737866359191583389699982083714571555696875020969762947686549873365698864247643896674037820641713336094384910499812509194748129251614252595639845597541174167018132109339111862486235656515102116300990220327060882764272660131290302410321393017433124623034654412408612265379073382934976931987017770786066120601703530193211653899436378213263160627713233463319809049426014739642635664780353395542440355909649542199846361796022433368332264549560297356091202937763822985766610404080272570462926577135371321604587846841000733738606307760218445402556947745217692561291300209094232348177653018210054770982558762182922279036147088777052865635665951066602263067121619946628637889544705613214370366849975258382684417599145833353317478435967320542433658077980188689922086298227146662690626154933581333750858157539039012421448898190534944238667588142549964867578873353118991429988845376209178008614583773997958492523520277596327241193502402669802792628040246748893098135054787591058143542983555085953812157624259300769620465346316640068060337208028367471911469182077780370436851557801603799879771102952314824916721407576616905379421292439236292531158419207693444259899197290758606047935101293562897624796421095831051181252255551157829578279504064008513186331702560928073991110916002265422679966909456095174452750511513183399971698399367225594629444325519021809300597556617494828808117042197549379221000280049841878241833626584873780359015429940405220581917002969867769961318553763498263686834059453328190590674697726450803014317495600001391660700459212797279099106886638761984071271503135119498959543901533278798131672264152773223156466998806781052671639977267104838926043344661711210487607252981704971700900227583827892186276036322576877026059287298438486561294322032811016426351638014202390937905566251701423768722204246961792156108539777972659482001073781942168521643079148653131524782206495304249475675893558001164534480028905748973000470224261753451457755283622307007154597535689438611682098779598149112172152819600686228874888927398676254691260142245134030860290720311228095490192581151431509067134965601147058640967184254909733158267357504107688598370288555006138845246054526639463726446609482159093860106447469165264789874607166224367046647202276232607590751569262232887692874116105169731701346124161485588281264648151798463616167376814602008728735856091343593596583286662602732099247286069675722665860636976192996163907054233449370204758568012766566120483564172738963183580124886868066724479801457429127817368751886786207340193680979762722745912198934452366632708372823113716326859941790170325670719932761538340520181406914340818341124631312475668259701411737375013190362062743659549479537655323298985515985932034948467346770076008618336977977136027471119546712261122491384830477397142738017504103187368100541315332019472834651884899850623174782978544415516056801140537044486430148065308665987848451807027729717946255248765963566867494101266618235467578232520193764517162857872362672042765259779449303549971030798121632214515803309258286542021604570407200046640049598964004568708117592038667944762078429701247876031165577347454982290115403873646016932385466538861393118393879708012322941794655312693391314234473123581577335925926967587726674305625453025947850037666483623511359219092763250541876706890550388920437765510689504301926595837444291972123541910747701006586884851775795407433088117388757185080041499211324233373288000418392236102994742382181118484901255831526870921351437873951139778578292422367951291710720317083803506894964744933755099534747844958507300677801400231094628875101603793336410678271783065516299170273629325646570622645925999294800784649385867232262538950441889857256370512043068884911581344464031496414511261485323012590020829583784576942387086868327941247816883030719036067693118010851788043388385425195316799368736661705704622488546857626378990390709731385938055274677195956314864530990009267248158657978536199551912214024127940070032170602027537505319362231966364586010384699499526465914533790542812867350170597686215507418199828704659646363051337848156531459098730081997425028442927611870715377861889879660310488250280585204522626306088843651328720717076679044395444924976762580436961518529194321631103370200750867421360322586548613659284754137730567274938080826791763988924668560621343673204868268711702604257150333492994314340684936878719872199693517162127932257333572187101624491494183135122309444013259232056812818686162417058595359329828607059591579259325270539026653825239926278512686992892808288418391346080277379284163826288095015395551825848822024097380390477225142101279768241256510825706151383228865481902005015919722883033626904616063794596590453315805442565229980905054127805380482852955981498304192176422952798227693550569747850853904702333660449094391180997685940327131282778167617746167771292620302744170162466580969734239721942580869801026900777189378972943044601178317858773108783717858389291285640089570100770303096424404076726549810623268985989720134750807887388011322214564378750549275844448462043646513019293614064421130320704895859783344140083342996327196801044481094095539851510687251342608995962701607832462287142289713807529389098451614252875541140211031688093325327634354932958767217675215206177254101131395630632954276033082681448973168153068529152369155335348362777265787792118018789949808889253517766619423719834794450424425945243551354813490222493598767362138151368321017481635697386308318455507553092872751474813846632948348510099970611568934062156793518323911480629317719502749740723775633090540265525968187808163436462236587296351591594360408546680264087758411229921074149107932414691085096377763622892703964926530476366375911441158441904998068392156729947781346546446343895485104305075191296153865444295412568091897100493705378035224401671217215816124801017261755044431353217456584689314588615591829207018972511957381415416160781418078523344345524507938752137684201707322805265638080647599441408327069203983775896806331370325321471688528868671246933883894613573333499034134335698223972541250154807145353002258616401411119734480537127186558412075875486316613878129693565088534148957386623026565934068110891687750314899828105943961342284785193150704513837718082714630219118525703708126668072491361041962244580402413622994383850362909773899100450136330556469423898774244472013773981014486396647998659554197417756189460542377984315032106565227722977232195260893086827336716958750945738341739036299460012067868927983417837436929266627026453356721495849502728369917434777073256954991925150582032411009617419271997581869066653477696790659976055027018101767304677376306909748349627876022846620153722919316952338761348382454822735814425456950616147213045082778976476961416045355170405637572327060440715380446120455565193816323406557516285283832032110031453220006984259620712730629062524643977796952244809254124412437672742609864146268269859603002498819419827515726590185651855312555473465429171189186315673748283123965837910746267319843656024067335906474558717222978068886493314403143185883625408096015769305979260729949227466420566399138739413879890134170159555283537833954034428817328742910888376053603401341882993668565573759158645055061369306467814759396970722851235707892106638083594923668732596376087449576687840431231526252534279336874926514447664430008612535153345041016387459873635867214302867437870389096882795399146521115434296138729022870331956998061488801202533241466402834207865393397241548734840691631697238603049702422035497309702319816461567402101869954320025134966120028269837345253231221562106377214070390217515392977533894751290508088438034327508085457612318381239772717521225666247306543083291446620432479769663432901581055405217628899502576159884013453866919864753006957675916877791609661219130906112638312200958526268957876255813628774043299087278842090264994529787971583965160184683404675160672589572463612506884341056425528057952581321004086857138123820424941278237799390954284575631821895310670888638523361794929707926445425473377337625455556901369755065674274325504540722175135601471611794736422600720666665496380408394539040762420980206870808892003654308365783701361467810935075400744731245198079649297005882271090387393243289149350892271985972121009848724167966570988798038771519806390548770245296124592441175898405150644802762383998101276781358848017864063311469415971810880863926093414367811004607729322720947229337878486905258996550180719852175287045495097082700716667044941590340460252548285469202916831658148819377027257561838964136077878791354458708704420347266400697945439468855050203894931324850985401699053060167192859980886766913835592701697699538154199472192796176852770768296006341825244468728114530680988366904417893077789232209933249336734427222230014705328096461728089883534672896997784709381112677854047689578492135019348589728862041856940055765301629748208387597899725460175842002772110095869891617290548125899623367487648934475989014054335020256483062358014092233578289252645623535196883695677213793000424282246560859299776370824059942177874716034426719707763061878982412627081081311547883612634913056991067921165978379651534369308898524822716437506242671949615461700764902497081743711805856546721333180992942061135211238529985345446927717136254903533319965858260542412122726696423468567130923727779335482780111008322593238971711566070239754589276339083826138715207824190511978326869908321545935972790996826421625005301268260235443952539147060989230122741372938098990455019184951410597982116451326282359640446568643870465197458514669799125619349087759470270033424050666447296082579997305219803591742878313739574901170987314802981085256197848773654246473468415469437700593145943626123887079519003198323262418680200693419740404625076800506667084987886566092398844489620646422005686596974238315544346010993793664539897807751868331592517235491808477077166704144291630988624164186436234836909694497241911994945070386577445969908926557793192752694507979928870246288318736917226673681096394310168418765619084431062654766265602097363416757023040871684624957137519650276150316582479513005839106190253104123758239910305093776409975767345364452284436464829904817942513866610024018643307630467170859499777312493047591056023927112471351860462711619935874609302025727634185440212644308357123212624493029578071606176089362815366067905176359331321985315693572500109378730477486040449166824286530621777444273096256101268654948145848850393911472419402201176968775734218062840474278394944529522284466652748362216468124779280945983081550759272398745356011142855923652218515057239749504196353260527922465385059616903886683062018787743101947428024966901688040390674582922259816091078222459047097872930273647377435349866031227564105795361657782995565078265779576417867234751025340307515151279782679373244651964469383787952878306747014374032533413160500746948568686693994843877146769943072546598428131894676499657937994318003219500325813253325967559109004304306507211289404476741173668744134809957059547147369180334590416610377710627812614846815942381309818423737474786606244215992933384840123364603402465322072378588095891544662199706810336981291691426590753709494385957391239116245914047492829567586050329110541582575641851844122015963788862657522146214557751491814226139060133060959311111182101180177470231411604446672668011866880407530546605288710200111867505159477057605023325192191994406458521272113718884054205794865843440819962670578824191973740678975340018655087516962316799760273630662799365945513912662038976306212572083893593218378588088475088270982337782633606345128533672084465739716333579192532806625667885502933172083009959838626952829493283972017096183825424167572986595702139940109114189101251824428643493394542404996149231772990492189040026742630392349579254537516026916731894044570988352728765780211658879431940912816113984333110496155744038392752580225733354822957920846328299477843086516049586973124478058092846074190803878148096218323474358529342415103863148030798137372213154767010238882800468243912133366758920137896342535440591276731875446083541948222383770993257969147051713271347047608945146987948023881449313323611475178018433792099783171917371229992396576648728708824519683127286109889992017144416470205071158675886312883534572852474429588000462792496364772642722962204843381068290450222446046578087741305311430130904129973761929528886505925208691230715250699953544351775218299651405756202937116270965498309772416999729332077189712687154235268938823688182977123745541072839207345980814705363439766333223659830754799955587587887660954703892295042447085024267416970316085218884332211648982781968021321887909791047033695596793302659155132449841386809490011282940035964864902523016384126691173913398268810466736926427047057583985840776740249521810617968999806141733608999212961286915603076478863542915727566568725120010629056814175465461237897208202071347478139199050864059684206150143053436594618342538243610890292424521123515147361141676630375285297959579643137041085769265113674371240598047870957637344734470942793992082421414837446195634294968579388651221156796156089908077780249615426841646766453950514651908415931363188820760557646466681040025483716294196505425864012759503199358911191459557857379268774483192469121026878149638835528377943368386738531728956104312152811291396976581213531144407195441116415972584435376895254165365497527825646292385689501590429657740535324035144122069251752013082597656943626185104116054185884220459114337825029892706694288777298308432927243548910759525653123403485670161133157799674195699741402244050086508171026069291131519972710076228654806381231595934982302388880861242487074460465540913606536570442266672377556586853572583827995290048087160351449818585858750277314837180168422793656129719909360909013050286435502289086451728487378107615561181769816618243565982910835651670615681219707208375450988155707299819318754661002024823750013606262171435479600313076626754949011460157010567081772362988128911360061827483063503233108932978211682406951556562214564765786208942828508412970451120533858553361394179010881511588930238177189129847036867900605769887863890342599175398422007443925867592528977352918611899144508995467420503873610968147302518197066335016287189591528236358709935281053911555630314299116680392879704231580225797731124665472346763411481541482838185895769152902717001530692044074016622609220303204885215483640204283909191447224350352384052048742501655073777041915027259159326508927900237274078419186441652100064695064849536118510390159248934167142204084249170034801067584862498806830613943453895197973961658138990129253236532702632275496349229337370697684211371686258553710750621245646274804865214124562813928320904812647204472303226775081784846087579049145644888106094236021774984081545461311207761897108372505925639370010434085595041540599994169390217879808045574476619199664091413134548118755883979812317028226487218762338760556926024268389643483464796320395626469012561759429362127547947652328551718320337732097956991089088538793026279137802543865746233989370933600417503996817707332616080134141272107761831845254170217258098052237235449562374264716826154660789278160617215429581416919412503188063190746909206155951141944089282880477694510755170599469362179789738648337013535804117085211515181350348242165157896043895583493074397465750580323086891841527649106745198960921999178978858247940651458894883510385264465088743845504482413233050018051998829996970573631756197873125674245971916997819655768685724237863978105155580645443943083919951465837568828451576458384140117216072023902335369970931039581473365980507964083358354987499177096840492068700425665158245312121715829661891777921343168198303668485336916598531709594246397002589748800583506074858216240886420451798908373983532051803216312140201888543021537731948217628168268786326228250881120603035293483822542439299875457617301198564162563486214557529295449843422247594438894274956505463646678860635581025172618027738808715018071821466581042194737277640469621473365867690151298834408650984832406147011129218048596530492832720219142243499757599370766974752779130399336738862088034008620855717484697951046596631478160796766485827226257166468915535439255522025226290984458116066431757537039437658068585442996144249410658063414310011766377184454486139456258442796363675974892241359170788364737286705578489558695635581069322636521493514205763097589882146199001479782545764032159400681892156674816460165146328837330325958005884477419671807064926525935476636592305586290657662841151032736564766773596602833524292417575992886717857756645799731868447973203879216091867997205667511969454011505235961859125813260399666437730306697327202166456470419805429663546596694831566827644105758529239261339913270791547463147718230371842072879052439972564872045026377403265136959703617589887034003658145192558580005644876017097785682600790665807662958661904055917380715217012749289733110972119239723878273054034013172744735142635744181895922443796912961879549683657511678488115987915621930275278904214593024460121301152446268465490925791665793958627673436122142989019673508550805569979436537035278106633761203498819706184080877547939302062296881221578156570463894569113281657803224913692941108151813909980427577473926694944522988439023605607181445975333441492400306307647704761858935165841974404797271669618804930555329835337629078666685870819882485985034830272658278037477325890243919893410232695248221120521096173914842854922292580350774092513509830526420941691585326474122355935396906392764097292947592710123958253254557026547207476729131455303378819688486321494592607833744720312477779800866693766532011824588393293112142132311117657292374079253029644448013313972985040331967016310578590535613373525039196987409727130203793170557710678368036867028316896117568385825827201639038865571834678873076567989949219784076404337058509663209567397173909571608298227287998081656647032651781730449182317897384186237333810808567722446432271681865687243374480148373201181014329806290226273193506252153177157605038242056158279519217759306831198229937069306127680681936586827460610798062777288518172453648676808632667846558661177499806908097255083720157924868420979660945407101392324112155068524894565038442343592462190465755639934451134826744713753899888134408549760863823190063301951254954614914559983492978693494075955037021813678931809539262830499350311634707978267151190784697664355307795995455373272057698865491119174484350953121854887338329270633986123825444780385514991983322636284533985575686963512799386186633509959977699636920813717473478239786355186947005058361901102489889460584348247773228704388426412323415711504126619616776417273596607122918680983683162565800899917492841251989043752160415489510140879680902876890077119354170706054849985795099028078648494273377572143769101229757916600372466181197114104150694160012556620006020251356047868284540105406369853423981308645133591843025445922152694505335046206780478290349145770828830735200846331064526231839748030095338919566165581934316754599403759359767433356205838354064093549460034881601211132199134166632206411719736844023231567459202275234252202098754318422246217707240745293876776021340086727197542065468456609579996996107786587926130006810941565154574087530460941133089129401093157551625413573215401249793233190588862676156206776415411831127158762398255169450618580758710757423650187456752612030139838881737804665589578165930970411844633550334822485988708464909410183825764758325168522197057923406272145057117570469918700055673818804246850734909955924876299682945426181039700495319674598456995917395390725365535728368181826103090898382268567480589313678706892819778239999288139782352925331252585677457929975796950307623266501143764882690851469610684480886753744149704271525557172545024222231324409722960852599675242675044197976313167719638301866835970995999262727504574504831186117677489123574319345411154055987890128561700978781397618388159442023975788541162201825386741805044167707771112052135568742406330774764077733960795595422845916032359865174577717171799636593825468404897498240962070039316357251369829442990313964469161895716823032707993074133958698924939641571995979040673616234792895780206024054595059498010596273478702582794936279478832278771895657672555142505231740025585458224835637705148842433309945409948270749619327168536836997810812609472109148509806351706472526323074300899390613846961674753496211147549381859989108713718362555745798421210869009189000873424953121030769473440103274671922101634430968385940328840207562850264525155981321800186432198339431276425444079915729508530865000339628402699656545370914016505061913196183967757267818743000334563526188041799752122982068958389574999024587570824625927202405907482235859852147498181997286900804940593858738376337456332461409242385362574156663174381990696374261274282940924623243472201730614472038994901786538174593068123814677128057361010618175838672856821471329258202516156620487296250644899532872319385518063831311037872453404426137878087828287685425296099823370127683399308062177666787898955589031955984017535237927448881499101625457514006000256832207090779258720215748845645634068475022979453982750556135686034098450737353288060027511968674518198763182166469029467752572309880015870762613510903807511311365385103919167309772694942125757309510605978024473997865027909037151333997628671042435555215334725150449826020274956475132112536447581411650882052841868376289535092411609082758791581302800718390143657398384182972668084066694952142330080973098638235763603599896928740564756501071502725925121907314483220390148363340778674478811900719583364902067752368068174653419509885619821076147981562137204489645738082982619369663450794233985014046012865065772711573322903536465535789957978630944721098093859050091339759532648014354061604601598132922657347446661211036732064875117183823547639694463249784633955260687644006581872571656417495555961617667409848300868016440727703584940777952902196706779045814104536924047436774845635330174031386694324247578597947923794616683441479962204356116973538926223245758634175263819118042861960503824249877301715426679299941165466060799141524073589097335895857048136244745118024229440997969098143066957433454681948122843314695672845961595442543311648841783770549214805242516745359856976377629556020604675235670616012346537478595183590095149949041621343943903224880972437856244834040339925279330977437815091052408014959171867417533368453836896847995126330799282916902208635980101006283901328652922571121871595754034880959872845773609300876326463413373473779297028739435103227186678420862885139907515084126242747123039559427493772029773081213906153185304715692338587140564054446905116329907367138623399215882810311515719929706326586055970715383117261674673895090967060668844294381830670387065239141911644649338566439189591574499915931482778508819707672359813053698376682084649492329450018419559334200153392330752525101462997259504847681295150992071943789265276993603597504584392215724859804831146224921589342392807387610745600772108333800412223917052949530413297455346408064464500113777144498155971220276457195381820335819030199240004522616052236620683417825732202229361955911986974033137081394588406536966386649663218275077074025242013417318524373254895078170355357372077716547045290680104334989251687159376606206278952140927374592183525405200183715166510178733994759283447111752609304161939121370038028623593927939705454605483302016627705014839967321658405007655314688021454922615525237634209614577447856608185074590687056405355726992483342590898914577848910081397435687135641878449007031913879556322099633820739098731438378202804506266593970003542698237134445732217152070006161914682576676102936548483809950060251038076654639704814261324172992407117826245996308537722610314308596091388231537933234643460954695356433687556967303701378419894199075962068705199477531893798138756049280332071928022405381432421315130992486627219094506672230353990731062810378153732406165823191299878152799389047985213046080452047151967226097031826595301350432434207256735834134494205267438451986740196386715185619380876088025041590257935581530513455978125918583162149830325505769770992470033420747658281034852656634007588315038540371579142892716664784667841154744145839643990087041576020419652283130156630609976244158548602174393336599616615832999706381006529144458548982500850633822687295863932836125567223678732319291370016149688461019177664808170971948195867582095934211322243775960945995936515454281059295599029364093623641563404458279981917299714468233179558283771070725745776885656447137653972874152041573885418103802150701986597284743415338112809175902320598465848534732147797391232991543112853851366815208458963169915208299760382988513516169954401758445976836057988185512478939906221153022080280996291409187971754656313801617154587299124732740669180577267556160241809335822456885297022588479882478898753430710566443359647772711306978220485290795619308150409723376131015636567915165977107791403487465689210438613775549663633978879787371219075049566569029711574279775562717983060985405502028063754486922510715157124319877176546475866759326299443470286497994487170794418140028551946344715735503385564067235791468031072720420176601038815929047065838121585996648298066718584934829412520560103258128505682876710557544059197691510289900715733931018789440337240367157183045751921123409469155942772792389280036586857512285778024646708073029938783062692948085892942235926642554693043326365594639316375390363429681255159119545420221206338116528050367718772097098985498235213146325043488915114562104205224403541336489965831385636046769593474383345457023221680298976827337456948511107006357751977678709984239438680939477646921079285538518053196336041870538932485409522697661624791133727513421019203135301466138370527716562849286195521410056613866556199902123430771560748205194892285074894038975684898410346281749883483368875273048900932671819344297560042309671126838207624544757337131134095473364412855149102473035665867666360888654168635279958805139226768509844713631692896180198321756638248004307296765404816457850367017406578774686878071686560748380708458411505771313709455720554832064822172867034477238475473257631388515182572582024794022884143060694595736526154742072467203531591831437981343599195927867736356233087153316840787095628988754481922809890013590177543229664964271982912145502659819375530470480409746783544066531598182759624916758589928248905547330818422612539960497570198221235227254093980780035211027371386949482674886523069366211104672776539599302367113283911609952049023840585486728499143862269482427965678893515326825936290727573266192372394207195173177629265008364369986705612617032594832336583328973943740337066388295315166400334025720621344200193146099383504672906898121944351407738944681294774709400961021935499992399336803638663741975039536408362017150460830338629776782065482748151060851335660903767975957206838781033262138213353519788410412936006307692685483291434400891687289354428489390814152679665210534438035403290404944058839742381568295650047087777379333790322211020871004544835989077469649262340650922030005850643659491926591014343563102411056691869203437553344271273534303852626170945001320555087405541265352902316206391681562911325645962714147585102684698197307210081472571016973725897498575618796752288749224079662973537407625421696025859599523430200856408048950345574543508163524149866834578588186608986861444514793783181911741391840677015905270434544756021430558799592582223465711078010254267070608249277486972099849561762551735265165193701052745177080221303942187464077655638863869049071802154219821942988751104507281979159167583103340507608046455226653049067740121811055384257145546710657563830738511592496124107408982375255328862641618758129728442185020438144810754248593168048754927810550965187177261376022333058671256524259750757168499557792182087189305908809320505096487747396395220414067152349154804879933324009417893765043043478968965182947963775017850313426183442680432594618901496622891852431378685300986070946401317438674514790245590933057919771582491627452817275350924916565160795981584039847451187837290426737453463699744330574800658690014228163530235956587425219493918446516330475701755686420196039889272428329753750614720048248600534829159520971051175748521781137119403693589219084954390403896269599066088246430199407605355743759547554395772152961497235185460786717049655919540358541538355102814826797089940241880446745245407728358853439097563296069997446351606734083418189372941900033185338961846834780145164489111960995748005571407353697151632329781484872074804053116367221395184579962373194430353905220703498332971868159745567240615904606313244979580107887012123949421931774207259425793418000574960988083525027576424215773464468007872263423252487407069054656181293783876894555409566839317058899050620501715743164837136603646386818299979884742856512679821293562797054419229139123773364119829254832950901240759759163827524600726155134293843917529466114061131783777230895696974878029510030181159414390303432010081127434856152661410551687141442704120608393188269262007872374717153668129716898150259950464070716531527331387202575313916379058131776960347156733893702655030471936891285374750533163789854232006877795833128028831152215810002622819769012116831384806149171418031392243670175057683862674106171318967505379770718693717079548371643930161108988754167941248209780341621634064958720955433231490154482370101694901473587911150805774468656375977174082094393092176048972201495205122563369334257762414698988351107292235500133184541395626208234783121076323274671238415466458793644220975431324954825758656974540888222659193795085227936802781816288367512447368540548590518725930050660697390906095596936384867071461975886435513303319497034957339209668628960394832770916495915954153370704345334029377386414260563875623389344699496551048994276808268457210675337930399080343272483069582673286734713608347435162978076750583084631397603057676160439246354235349521698086589124510814538271028488049244753813698961647215915665143901338177976794065507605388100383478653963151044366991239614843296334234120877345121164633201712297819429932660864610563400788235039482009064648639485390458428790970017005098254392563995675067340725941951852617115524783502215754480600394167143797710397133674355666894375854499672069282901027485162778166308068268460968894436930874498363260295121172985871362833715708294845147260075609380227430262740660836736143056815609027251681378277133777595486667252077406283846477114512518735744080499711190603016965337546490461511657011800593650656289891227520637336869661331004577042701475051541242545415179725867341294824298581702063113947988923286902144495776599039782273173766851232935217549492326744467560631668539744274770193320441065146422220793216510515924164890744006492398892737547809589844095484217453419548226523397530400097411305670138692826767441783404494480717250065558896373896880069570329072096236373809971771579092990061604157979947418590165436659149910609384531036991671022800766007959072344137954097275419518018326221461165382651510973099662620199774891512211151139499052963558183000232164915588524393758493372937652049341026249981078577242649014192332197688518604917411554470510255154107562429188475227846752277996085995633489678957479158116775670102025866571732322871890942651025725649098640541555986006169491967784253196702028151257590692733239379411237513948679722648500151780828565353489614715527046053464509289381447824547111130235275189024378493743524856847613106467951408046182494184635476596788499349872031114616038065756319299139567967628866051631821351108900150020227698296838977822586232364184264698745923607753924779377889383590839453402904996583823005873724142009705328032079439394195386090612751239485015062562430511166550757238142311664327333624538347262407818977453944238792666246957812636258086593595623383761966917342312776256663181018410282514784794178833121615313259606760557633262430333646003531787836068334509960340721491425328952056047381072443698608424742918133161031264721572669840110163812044632883552115345297751432810358408714294528059774927321164624754439690870445422395013698660593234717601624786562239876435568648926079045888991670774014743713366438832259033426695387153369472096288768291635905203517539895124061727932937047851376445697132837412788185954724932359686164428758743645101639502381058572653153535905231975960044691230748684275013912973725284295905640590048329894279659550983411713283460203003727623138292667869137578754605693079225658968892914885499608270120022146198634600286889416060429376828648421228369613583180890519242214445470849519514786550768507448600562769257559994589523961282863134636965348253657312374876819844071749823350509319206302240585678760329997696290137352191931293706299625201710989143774760048930239261761812359419866004688425236064973699921230457135842591628679895734784479234221586080512574693937589438794985331907796648143099312439360257530276469590384002530907491512950825707988667322855709713877962507611261588468511964160503649298341784910428567967966682588709398021616372590859488650394900503017255076084337167107370533234239454498061714566582829511868074412981352361828001085807096434619141792438627958792342331860518219917649049976538652446253187341699612927985522390008179207114608909108632270354806949552757386138728617563126766464158465314067923541090198292145448445218599797395113952836740159064701059316607096011511453857559856456716892350951403708805932217066413297134071085014622623262387596019989958480405658591723748133714252667482791381491432219134209169528650748361198447362804397745286336378299753124145714200771943318858328969596323500778063083512743056354864728811153783462730308871168304374560078859789482758546894172881561418673010739484363013662652649052001187730358117925461500109368921500532678639533785298952187138133020031534869688532179641389100269073445522660693366823145444482506800726041303330106662628660266631318268664213351302421288317085129389377486349454645101692398723458870336802501742325901958210712004501369421788443664464269274119525958310998845955283339137869221710321751145374739480706256166447396184296986957762747175475532851303629111463344825522122140842795038895643470027380095100526714599791894054233602571016657020711493310482501575700325477284650313127043109330001168420275080563222494162604383494091249620531449046165837863810514553072542770704598173504810180556042895854796844826556347721016540506710538353957402288706075329877066891467578507264492005187297733111862420317077124136432772938567870734792467374314845002958265989792350405131185895312660369335761791812330701812305581848294661863002431278034692218071869724298669008678709481698013889469336084350220770554856428651278239494438299641648982567989843913103956302689719534055281437313988939719878644010304641634110631639276985227183443181054958846999718226022094011886358019515433969574470345507533569331045526955276180163788739160793314285997892035189171278974982223956810699928718986565270453122356453932159519912207164542455778037887276681216802639348595106323311801691198295975009463766091790727896193329525803043515985920955685936521608521990366993088419509711542302187730834178062856407393468474762241611709367962108646562253947298719863465944211868071852477971570222482433684797452332378636814260659877059736437672844426839998987102474426897387589459780409404553350023686213925732278023680329223267701760801327160630214014508761980615069077667581787239182116592541726085652761809891305102612589574501655519284811060140076637260715249531577857272948718627011030528680671822499679445101868462790775946156194467316221596848343866731921836591676761096386561858031153506977569416705119178374978934815819442281738410525929543511919883353049468847556490673322119575365767182458862920998709845623437141062293016889539793590329798349965519777382021143507619386510297017134049783278316764697307612176156586170776902101428012901782049382424682638925843785901300106341907426628550958263788794831769134803123390693742857826559347715961079485958907939443326028509540210439432527647342003106175818520635176633192149184516853571894902215409799566496817264503976685768730924592936855882928251151096398215554467119187275009143652956945608507647533470414840463481206110818317351237917211302063171677430698907654525038173177338839439995982686961483918375262477799825843673344438014692220391021585643041059373142285872519248705751942910615139309698480301121465585409677032901911075195568146331804086147252775164945562557759108511131431876315103703887044015515854596319204679767271158211184006584942918292079188013556089775077799878670841790259856901441107793999787517882185225447157497203016922646025758210625213668100388497783351872859140938199151675417786302201499545716938099031989219156652486935642041828372588137755918100510627883012510034447623312500514856510850115658656587140724348157867206201305391511776695246263689153661876677130866613319125524041926250799154603068261982366861572354670269894455489057748168758822983991201952367127109466229083934897910400001032400553394142077351339007071054242628815433861470774877922440593986459636551392127439881319521260530654863383752123432146298247220967972498171016497380286187107067384616623408286610973172883032583950470724656081526007805499816463324482754690387598146600563921316630680301798204709012473051886168194518393120391805541070461048435710965648910386792986637733967403938595925151864977750687608559961081320495816770631976922494285710351513736635806813722931513049850426828463287203847702280574786911454465394192327037846326652662810567573102861642438393313883765343883943544236179384043364331291230055458791595772272357599721253440651590750624779246501870341481767657983976702438160009819716783389119748677599487692524615481999666797994845203320574168497957322290075171840884380237981883176503566409071485271025706490444733645456967399372716841934905584402581675204143370368247288865724232209961298140897567772620622534676881199447017256175020793198830971371033634393894648771142833664827195993884856917179210298857506501421054899645806512041786366076030929154266937920685546855471353595050484976130689510427813636540381854003130778085771711145809374574861557999835070334215121336398893883170906949747076084310816108864228594897886713597869738857045760639414479492126764243135119084640941300810411228983660443714735199983772162411653786293701397830250469311534561926210694404878275787207415855703995351371340492454968643466431565297954341801438390020147626241086073262330921162823979092756827769286205319865084622268463562038951901330088049809463163799522145325690458432797091641223116019710020231035649961714305990625209941156877140967462868575524876615153871941912364538029165532340156693887252823739195360186012533196540700813262287933407852099329179434594777527019678716807893722346800354126341192243374925744935448400591984774124241112248441694465707718547438585796752950997434962568290626847146275867847296577264416786078543300774094940027907865541422119542875644312667834062821761589263575409633226674555270836227226841454589978206899302407706502331048012404937454538105502164382044044945197279456722201942166920895199075466201198943818008105203731525611829881734006836026213345163288558745897302180000553446951868524655205842020085451589812317079457286659535384997974444657370030540242858824093417070162226261838448809077062339148927044721485506389840948138456835946694575940783933731988270069966539521427583384620996737823233149366982108805816350287934879271118472033384661238882894629628272675764581479432662906144415898152085614983829394373357716852668774511121851613163885390621079988033395981218901420951092584851347126369796600687160345418438190035640952402175732799588376620802206136378517401402392880578963418974034562636950699566663545625189722254608034931589462414774316288367504287038104594642099685453732948183275408177416985915528553407368272005428422461391812634054334261200778543583113978379487083596776723997029437830856823272420430050383176650090355710780491776238596628858901899897249057227115446088967765005319616913301164959350468244349523145839476818336792755798117355644663543368401031694179514153096046741365769795989655713360325924553652461281658200757576097523891869725689935266712125283508026218492577272033139081056617731358584297203017318048713520051570009584052856775834924310724782132543475298366896026517643472953886760704967505766767364802755255181819420870328431184322537218582420856289052522281620698623484250560368380797341572890912225315364693380333130877168659830880381802594642861795075564512667867473590080221670188348311764541547865420564526395559411404615219451552112434175618419503250699236252204716393456189657462207775437825345055021367095406413604933387487379068546584276085123340323130768195191315066692071490545508132409490895265644698254860254342916263176573749521529473963431062615868350506814337544250428316748484497544402517527628623506202112647369543925536605175490005554366752821767758939694520009436138369468247897236726959273349453444607462671368389935030869697690483151586011956308213411453528240078833088916149404924303549075126542032754733180565068610566630190219363742970372258406467709558185267249860899430349290756214867060861411388538020664271402865799969561164016890779512967135043951265799871789499615742208190839776146732540762203639485929150804110059910540676612051555811488384907545465008099571959736151840523946045525119652402447644055883192564813940239701877804123487767973473307594288300226430759892853637408355174717374999952017471931972354290056982357674717733701584047039590564292273658624767965392180449433455486940400514292272213581483269498113336388856552462470820829772450152903734370265799325109232692391507229828059518325292288411113609132437863341946526565506143634991335490559142857176125075337522007661549051086927249248211899951756628652893999022696422344644263827553992969396889621281234211837935339059715351411368680231695626380438713181692086596304462928564159472056215593128171019881678062300234325665766240601023931159160150303338927596539374984461490674890298277382472828312529643842893535815041935031976547425098392407140634004270330751249418460876249875029134410397452875101333907905671081413230870645739983393763434182437593468088673233860185329728388779719471890413949075938748152535905381713884382121373890100293342896866829233869008898200023738102050740497260017986581987898116355494796246361777116999761318752880179573748472515576881114189990681643123645335406192713234059426037592205482645821674673280235483343726898635504326550390046529239198685564135429459896923139870058456074507741704036816366976468475192525746636519758082750918245159542678230701961472054464857717285970037477461090316616927755121942125814858318385839158181035186023383742644758064283447070042463718872421098283105308856872730881202478021485142994059754619321217831007934053600989620498993720080946389366250227261030416782735739437396187810920504874797141872587189586879811946518925868533289950188461081063911258358774166754730693392348464642201662363955914972466788770222106141208590004354729402367039776401495669538512154139306943972619956403240061553016969425850584372816282882269143169401977896372358253866867521856635079438032434932974265286527882446888005834334222240981692766658898672750287743111824508277877486301286905374512269510864847664556577664854584604464824763070545185289583787635392860753819142598772536045457448236871338887732050321373629722837748764054335135319265315652234133652534973290687779722695035740421497796615533995610767340780809861977955504644965390576499939735525870332487850374629744498692882163025251883872797969712463748136046220822955693443406502030339092186209276200543891434692845295332439163738227225934038846179355821083360384599778457854607699454005753607979927906349830659130291145468656288683153530992619645747025988335495043883101058238085030996428587930489346437391000726383444897504969976468232108979498361176956896903110429017391000934189991184558861737210583698169134016523568195889809900394096680567635001005296467017618489220266141409581461012423468664839815226311260093215025079495814641517498621016849739240723877124977006166745345891379931378080761906410770573475607848470188583668582477704800555056527046729985538390425826073251973682675235845581736720519672404835189723450212109915133082066925842827027457392477517019550838556816359920931207927407953897171483893008439599622977145473049402013358129389442917810748682851752391480921861850851320563492055550236553042045957529494795896179766171988519783225337113971184548117043297448250533330966948578098896463164610672574019302959295572210586879072140305091664914103655130576441222055073045240460188232400456748143090667356371509093771582886218350930979397975276540957290097382553190476417797462914643433139708808409017837793358880514961129940536388054949625175563349844493486621821735516526902953002536002814398371433471396956246027092363474739324204219321995537161291379642469792485285398182842082612704959633854518304836642971930784652049399603396393211960673312097500232263171422497188611153122231332025192688085722384286202867073244467422040647150027073374377087830866304561294989503076151457098532039211142027824842669302406198160955751665985822065671191366244308586005554572617781515692273001758022554432124062403568881859369833352201254979176822660624237698872897078907209436837288856358021229927554080657259055515896700932340440042482007319148787418563315209635255079860534761963901724911638501973878887510351987376314858885764949769148314620291359970827486414401608843348337394242700928612563997468889192505229482867200241551002764415605659862324148013850459609210680025043183454057704214323452221398581797875186376598286707357341545479225471679420069466719263085011011127320052520946654499505607702879245370792485394332180521776758600320500221644187898656775746714905773284945103500143313291037115159484877353494361372072557508354034800275518029395932683121909450395389619838467583272431966050919482437067234692130885463218075174703953249544435777386040249737508100310875814402825175840154862918153392906508438259138561394884885526555121847014536848705637139766584790057028592657127339140384456396871643884801392260412461227367823308922737568374271582606901870558260643006038913658147639907487487625464407005452891063442141438856845585294553384543464952655792997767914327464819504344042076307651368520459093805684250773872464432365939695894363825806638600195981258747789986418466528325201661527931851992526390089383032823174506405906708583481943337013735957114420599103946134241069314676339771808410251257717576956270905691807123809547548807210896824532610579172104759382221636102390414847981097032181452804832533753693446407619440242938017792878688988102700614195773261331249063813864333150689594919710267868090041153886372792047832841123757298612094048856218317804461744328856226722209599376061165721671540554573780157460560927926821799852254645640125358081698624117138314381582616455859699943926483246048181252994108730870144763761625346992461151312195663555723216635717477708932478721187681615003233931131987791221564874366081543615964616855129447018947456516176771936992310903534220360631118204035472190523719559422404572249421398353800096136703995850671656387622691550738718761960298485252981883043925361741497576070726777928126052946465433003377202028669150453714378974562777379747224866899736924734677690308741753566732770922450536188622791119166870360752449316694415093252285268694550053788485681745838985254858926285294763342757610753449689026766527240753600812043552653633852718001656376174930018639023500807366209991087276727161862743956518367313137805521192567356370755272075836844258333449807095497147689866742812686452573910438862985580775647958346071398749881333583306274577710309305926083904966096892248351029843016729163481360340252520386904831209466523699920403907579358875488971677897705654432047861648115051322418483975610352440240705715616793516062322583137243502983210453737218780590246157044482500464040324129982934816470683723654761704697286083947883823140841063705808581215434688143144983965065677587639465667943342430702684990917855535998992008957322581647993517387378027325538220547002322914059370903805091540731360991244360563736394055552016821866970794633670216355672450327623857726048026525407675630846957581468531110335332920295168879412714535278724202957746597768906711458901147965651633157416971465528564359493046066274083790136557838055312616026564606045061512885277127423173920542260508571342629904864749844455165424962960071694040485066850575517169242133365760995044468500500676169020570899697878260525363506424662533285069683068581936522130679230944213126649657797174879474526226417411683853373907442237169003565267353756279296096352469055854823237323670982117545298060623451315656447044668352911547618548666479051375017929082131512269913639264080201819338055426166724998121194239564254012386380156491154851281093866878244018102820053101095392471122300000582932971119308090365659119453443508922597227292625952884788935940529439285360436589499498037345853128600690972291037636429725129500826305153864622954078527983505426207785333734084003561102106664161890844003974820177626442382192216824077447501635165171446893201608612756728183066186064240486236757658498934699441072135343612428085425865251655358613367705418167878688779480508402569525661220697735162600494192006057673833614120578458951659518540478569970412051070804921856641840584939647258717554874934595963848202627416734735930015471528966917353653946383568985253535876365116718184388435938756371056747861017308676513113995970813490787324621804425909697586714015256336716241578072075086664316328631608356127841415880196009100408867496548103604082171767305921636437796960333757843380711669523609377830454284007746170249220723606531969587111652965427119336089737466228035289102835430839246342258275255978448803165555116102871485013632227709968763098021836705677473345877557336472862154296648287299695235815218090803283872881374963636090783801587375130649065554656522933171077484503883173397372868078462434678265348671711682599795593047848967004010548787796207589563533430546290077159667742696037585756135263369648737633298046374117860202854801781148050622093322426512290866222536724314235823293478692627664197037553565976719201868843092945506144682859259216996307824670648781894957036146558081649306907798656679760385073697968414606598960751416125114709859698507486563814350750883475974975352245508261047041257877240903790388585814311682921675952248251602774171449756302986307155662549563662563339557853802946379459350490821443119517687255182280912542159802750417491760094204799618513553819991797215303540970365340582694518383522818234747343718747910529566237024926986346934072059218095833587865347221878802656111758372840222455980431971983941643920429776873099060997986309472659431622532808811731188066530961501056241114554662186258025857081238749532635537244689143229356553535515245288702452093987312081338062806444015096227572551076277440830322238874413044162634724882045759825999584859664156346632440408410574919471386236840204975624948389869515569650668649255878990134000570305212642695452897151524100915418541404064055079031419650845589610421086619074870544726377367162838798495072095122237292451256973905434959679834685570112499923479612164264615116276956043237801521911004279550189137112676657091324112989298477261657692540057101142622084081371072422874848539966416590822848142195487423404351209179521716018600783128205577085017504124784927710256835389700980284841695897857103722767439546741332990095415169193339673907960739214642635931442308421319818287248342466377238134716198659321255476384678656180263959158011066516421218467768254037364457401428829927075364837244982061494705860556203247372708774447822487829345821679488199172618836225364092754836926730402262773533540889766204121642790904198000503453975916295121093904221451806108373696958592076911127295697486459379353459734513388352833035028480725641018090773248076041909327293229555921813038320980181397555252461579620220379087645422214423663974508488286966793299374039257846109926662637214162277392509755393877232268569087751800538534008383621181788358018341871370599378356108653824880711212130343015343168687018199447672154425608902246049510290411027992598727859496034750240323832381768236733678633354169035423996302750498020883435425324771571269223758613628680426270402726384490830467502315520634923682022632822508721404653470922462511162607195288500595212903933593817280536389100514939833772379944450194688983584936484598551972112739143237132030351499616688244307166037096005366167169768308048624116522828792777953108740770213492999488462753146925639655320163770950856638417140222152634289554862792983858124028887230691373257860788988793233411394781674789884855559703048809607152777348066130947263962585225409052827791572350434960229806649961736230297875450490065869553757932411473892751865819153089079225611317869926390127386952275270795472927601357853882248327678488524055543527295164847368407501111345819438625313939731101463201400303154946402209342187301512100435876652187760634991343225622618793526446272502204757018294237385835106570762286170291754982732046756479922099661936582690082771931969390845833426494281733620024839092176612685270248162649811231220601262167590502563294484971050811348810710665618534110385228370092592794206393710639873131442902708673563261745392250095998525556254964214387506781660337824775386172372361347768442267234130611254418194731064142557262928866771747778217696745536174579759534644916007819610397749282422790689003883436994979116211999341043937144726790417309183010797324509310128997509593985129807182880835631074560221007804771894024335622831054605756374293902281079287760222294934536327488123571139688321294722360672569545469266989784645064575947239094436285141604509244033935462264455994640995770910001458768115695608093192463054355252368688779887853841624595195671210674830144588263858330721934297970068274582684666897686407757218666811584387529135965444155331851608025046242598419725034996325199670512755815783185498788702445018294227855220394847828768117239358458122392553280165010652976464580370827865090525256042130170565831348953848351590693932495046457462887848662688658102925033404903016748954749999989523885258393252631421058503398542741073106987615664163855889845321876125897964192007385215852436805940068740468550698940964338168142584342121665420314723240398251931030811325529693746044248378957830049873769387816216372197531271897828127940588483282545122683178658608537835162821787128986649420828593771907648606230622378050119244808568814614184736894026366540841645580727483335198678467931373119790126146448454438785269822942073894996984667721098718054423219328767033313804702216261737994616884425702735911032802694468881953934014960331263644702183259202160772623013811970633469504208935469417272666542776401603318789551130299706438937341236986911128558599029832436531852203111162299802597440087810378030168789549984982523592610137842364223675126678693811147420707925109493622167890459272319109125702597734740507094726699915630403029212269624956559432908456074570900152673554832053656700437593623622591905597317857759125356609377184638747346398484958356493740942680303150898836548215658079022399892886659546106026474022191604493525023816935540968116948444997147465080285611132967421240259117216514717048911073814240613722927063136009337241823633433254596824646253978857496883607640340811506260396247439483570492372170434353450846207733567723005945333564880747432831806342649548314375126191605682250366458275305859512834950085413003995524392875752222362562962402173203765334052895269002894611872580658419517820588078432484736816261433341525250244842205717407892950143824213999297193164774704566199442075390969778658780972295304098915378392570128006303444774739212473878172760614860104676323000188243114311120723579150578884916135387463591086162801451301062009660401532238371662516900611372654769693965948155752029014857551440584005877708280715124821399326071392384090308205182888314708799303292657255990755123165072610009677446787494461408022954108396036219300817892556607366104589911132804706018750825643560879432598195716773905099348029553660868368450480938635887634884161322800785924756604308205493189086897142495228303709784777155469022575186264769969920558426786679455804672361418156095035410232427115943123045220799672332780310991640803725452220225243595334201648545155016774484033747930970226168477657121238547553265890998888702679495302995288949881363669699130187784696718115981282549162910522222756796193710604233698092606085213098815616108972951130584889625430715251988139664717896233981958924331168448780018793674891803601161448218297162753975312978412313254958314657289225630447940190356384288970885004010558284714110410012991544558951972560215000966720967251609687008589877580055258372535825087493070679669985168406155987714567841911842975195759302712704011386736645740189762225184641032274398426184758742776076129266092858617716971059467160863597387309566013324635651982638146928228226455242293632984550528609837901207868513000828039890619580523217355625248837417406381078111008133891651033932863351216007931358161258634246162724067237841282218199366254177822443389591955476790871937330312506342689825786645848752914103177270448653205963820115479349500581060751680460590473312212503356617581272035575542155079999014958925262606628491858314198347509813938146151044209303946180480936814231173386065009657039610652832606931277674260633432392128047213100260104487771138228472517773387211509788235260321344822936232037786480890583880861970503290912127458687535373713937085528291326907724834118517299012436398752880737644536822480917925289933383511241096180414945231087490748850939081718855211310183195580762459094684667348856613220321224526256570202099497646930297706894644330668635387847818893797639571241334157417007670989010092788008422593846735549058255598701571905631336829517111531594407004972015161268189160680888925825906868099192800438845689640332244175491258905668867480536795738154307565055199441092533212527077795803166639557442111006866343877509927369194588106391762274106656891300227318408684155756919364485467574935144981959952010690911958897720084189295836522363779709794712775501480472920044900284204797802042960992616528691188352935415905738449687527365397029685536918354510447248732405421369739719820122809078482538407765528114328874110623826643607861982845548693531199716335965404984180191961011899928892498876760859248353045953069384799535028503966330192857463461577770091301862791690738777619475236871548479852350478947639003422281673343658201050890038424720315121563404889964660174877731395085786091123398473303579289420648983573642575082990606557174764302553194568417862058946142053247026996168704647956694620398830115413276224824799813752088235316120091668709135118102800539121823539225396379301664427206139949190378453754681848289563922654597995151387597241229211648811517604088588833719215447776537126487803166208528766722998329961686738242149700213388627037592033607250588120490700885805323682394593609646480605123584348042247061448917485450320065839365841398066562500045639291931366261561922659721311220086492510175750272157194119399827647188791379242461398013700770628462214789314696993838922452393057663574648275879059505563028887138501148048259801677176904677136852161121184246898571098625287534236832261104642894405438532228989052536644906000213523853864491134413789832855342175911688213442353577630014606429599251454173796349409565081628593914588340148383268585304224599501490467110034558410195763896065285283028240371786658186793673829200540240963417640202130073135990544077953733058979463245850987648874379261889950412206658300983603449365387024016739216692459440598397346542992576286975703636388939437680226647639703274813201764880587314136373451941242589992896658406640024111742172443043179932454372794651564758314083892699406078767298557576727888333942639797035018279728075461442910363589238684153083059704156070164233577484901500387049167255500048133037824946498580979697830199920193066806577234411059360673472956704219261835158172346346984592298907265925796674025989037804951775425558970103820408217884585564380748644814996293546537412402245671569472711843321074995536282454418265200035590642845287862590169062411020326802696158802761949577804419445647414142197925357859484649804142270872408403201205208253552569340410751750034242803636954634747616126792661422425129493199729736233222385143948572732077093458467567224376667232268408439249897797250139334396475958470745063472224655212211399775829278655967270404378774268318242679507456706869383825715853593494423820398209526676291765869053115467657330597629918765906966443250022127060182571977078349947315480405033438036965353416560330578227920773651160651813462735772570116818402322133487230439491555275802577763428056911579248000297688709148958840689287458548415026643777342273202086212976045482343590064048522552296214387498691540237775499959610271251573552319343608229458544664360323431560587378607375637844978106078755223207155772044927179459550023157617667628218993507617874754451686081742315607971541155236732602874732329497189816959809625232249793162858216529774313261120072056514942929700366668403918190098729724217017129842278782619003354528338538873647225048843972984735482610681499347989010744074081810068101641891637546889612510707790946281305718185450169938010323458053197515613672307818438735475017514615013010888902675674131798838500013925945403241380965726161438889953063187538820679567100957207088850365780143910527027157359802088694790382331265765887982535247494206045977839453932281547783335783727994163172667177469137749745726192826559445426315814330787549630471104210887078643354180260793318744607619843707845392845429750935890269996783273173734908131861057234093640412722346552173401816986439281013222220115461775794236573978444563990549748976426641655144200127142489069455161207051975635798318286027332843474168665160561524810764263401149163460702188377067288851403544058338787156840665753311561238456650469278331332352791074007768551163435223585321531812537016637507992435137809801705212241417554713665755826979973038352526258419422377570104686538343384186759122691361225594766631789187658837968204124145835411844663627973298395870589731825397407057419415129474901366037483996943127985937089934046889919833096336652267357157662596721686416267847497794473620709711722039922262976974870843239321528933760725736468159934420772455719654395297028314418307172503896656337253808614037686617742695783607826143054657529355512851636191325028129452200773733558381162486790097308679599914985045259837287348816484071786680966865404367563966456370255689806722988998052560555170304705983556991399702089433627743554626917222986964684382420854085375000762531802532147475031758789021232596732258107563368844123829107976810083700515844070198078043635159586633577494255404113724224261524263316148504950457413142293801241102623457885931679540853805681948708485334481635330460059153980142437759195138273248343743615040771215966658133449848115811651729157107619934787114747552210956978067877559652286783802788986948568780181540693780607777010858899605808346763166070219680118669170452801978573721532017539439393905080712209190129761785068850940127443869432453652065783365385488444019258575510850773664853135252631980975552056007017838535769678775440343300376271036465259138365680968964491403544567197978826441756669597733699537248765370267184998392677541974387484008742205068568460671479124282594059957132410469730928003704526139018889801787761831673008582872517006766376212040183603267872890425406512774723303452662655066428553559259527760439918242312377710072488477977871794202919352415914837584425873160166059024065205600134966510134626836928736121092314465284860686909863246009208965011772837337484939679402543531627671847995237019568230640515806067351926068849414608828647232362249164558844934712229388380524954133447108241351112405637485780130362901841770073276537608558751060204321337726329140775457456558380514441032270141738366499248687663066357016599067374448943823390785268675002248475687375624851261485465635445504049886257634940694611553744864937449112207040221161789016739788879254675709982871586844423183313159638899544444376625086836773845335893811606652402760431235224515726207469710926027461766706009181305858110923686279229235589167056800269599081779441560085489815851397581218729334636615833479853114609812611129456017499625924212638958048914507855393259222683431526162052874175315157328774135394965368803507948789034448571054172210868065315727879830418972391482725835712203419140145471346011340366615395004331011829216066011647290118542336980373750483771621167514307450743414137296302733112808533982303805779081298145481730945879994755184315708865487936377775989608934602181053774900953465880972546632436717835723234545747715753864090618121747299980008833296059316603303455479466464427636144788427735470304196547873502516821199847865187285475458192586999732755886206556790005310038735893827722539305603835805229847495807538765678534885663579642950146901833475721978975771314975097728700123868005244807079046179452407036042917063436807879000090829507039461605347149769588928988817155369307878664320223144870189853026130830731906280151898237511024691389941215801626632801998834188074812809602614853462972206892294048195212629881226474837275923075954865109736581078343987752478052504472634699696102869090241209126878863896120286267964225510224498198628606979673253546156635663425465754951291556284273431174812690176329591657957302458810248516387524726679697925300910831680269478060168845469599045671907770395775980964808155917164272845144666666946802324275859102759431934181214410789111619562649141762268811109640306555505395313844172396349768524505741925549228119379526960443011494021662709431595584986456371109036219549236172324041908960828818595134871757870899232860761361671499060830261111128558566915440388134334959009086741348496354648188074466234657093138146009998542897322177475019480338920911465954850603991146953693158897181205619146778343349725901943601632209213013067893271393339683539993482649902807124501404029267985508574618753680969987519228981038720441669877747903943584480123701554301714202340503976196164502205285155036998139588104127450255351656537815401502612346388329147247985679477853919513620271831170098837152217338910484674344404562163076994937478378129832549337183173832426745630329580799913396207823469576055052965600837636427943319451411791527657681806270919068203742728959854227755162291597196955796347455695488417163200484739496600647190965694330687485945352604395201897527853264261561698877451972577579206759478716209076567897204760630304498932027940076919684932540551360102870498914215947419223935532875021740632935266713607497891908800814567043226696341493773163505654540355958779523958929806068050179220953912398008767633476630561748419985722974480485542009513023208072055483092389666884876495018608094100583548785691808105918742235355931591007703689453944242009439139470119248328025161260915353692933114265187782681544830311293220484483270733299272760462641170466312281420813344185177223766012354973043736372686595544158789800659981484926116095121735023599312188869191417861908119255406682004600705301538668524151375498115457364804783985272623113767926034244418889372252114096310749532360406979570629281118130130640685532116910715814850163766179893903272607578563626884945863860847661821494350685935496666588845085261262801982573724142836863805105865852695886680115255115608635675888898230365753862050966499637679957513960126968537773056823542938189110729949580552436558972144664840150757652750478818851089078303960840919509447791417203061148455512805476586163131549648950020089415464085177040791514085050606708804736835219998543775526995060587283998256705749444843701338981816293939118081082638200992595703087423695432450038256049810709482931991292971007674728541457463929284059559291202541755258123072298251046473055027550113776128709665690739376764742959982736913760116612654062571149967076549712979816473797631098023730194282072211644061584832544760739319671044961565787265003594980777434122088437698920683646127679055967180217825834115316382852415968882434710011263573336524833434722822070642418352774251371398157633602876587116521625413314679209511947759855250579860568861795245750637902528611088199393052652192803406469161674254314011692594744651733857826459226350492964975460073011465122279428724789761662075209736672121846235631869894828744842139302593274446398640696297984258407884127514561056696797839070440782501168950824277501736369569094933632683770391413760050905383075587864007562662257782776719359580247617339618245532028152809108717673681763389849001273619985116785726122837322826552182139984154244943460051899057545860043799999370200793949640235741291037122681190402457837384714638140324655370930976019449175960316160790003331148247618470705040924903295561972801794975042739077291376182774061476609123578130248857748331597041187863702289208659469025433728742164738065739335715830216070438821726123474767176509060671997487256856791544668839806747656958370719095770168308134891969978142715297725836076590202942008726972002057618579828595674772718812899497663414723315030967667110805899519011570107312353507466719742321443400868855344826244869604892825508085184056277035088808384116597878014236999185855597077496115894950630720837943019971796707512203041479287219514969191956968866059495269066822584391493604168927776370511937916333210007590780005803521978434620700726209669093994216192231215514749628105837625764556690898432007175949585192659739849950680921426006521935509552123793594630274813975901875835503898783987457574830776580063611858107647466174471412576431028945823141956587305129198771842311708679436523779509051310041164735970165868694168683130130490565954435447678092907577192227040328795612451198229775174554713524298891460363619336452752419612136334959181953559198822875211437756142801019762955007099403426716115169217390388603401400058466137223178676558614159554332118888358749166270878478212034088527004154007793948202005262320793716257191842724574718761166238257801547786258501316722386938804927708949101355918579406236083171345953449532758573086978941729978826388479130101783111219016362526117788618182191055053373184401839813937318438954842042480755107033932698640472476875306771834150983749732400591080760091119777368393385725143762145623846317382823001445934529913339305092165336672718616122662328385579068739267799407757366970043321531512220146937818317158299070022328391621857713450729532986373558706447152688195124967137938777229774163407647284781618461591295057720329105248964591992098062902052350042800077074215581315400191862943639543913702433473915578728368130549753044211459161192385094296664922851872458066116765572789570282820204190231342904880150495762788024967875747792652061052810467772425890032049453529631982957291911511320990663308718724519799802270222339372876517145703157872481755668227814514771300699538981468143293428492848429968018979467756774910775381137343983727508933078533373355826832093781562950250619030510064772173626302256188174990153256518584771836054918324751106915799482074794695111862956848621010879226275542809421820615339397350432521952422245004289772338171350371813523134427657412946126785074221311335902620206652270246961815948066712335524663936095393498165014880994309017689134049475215476966255518623764363840339381625897102845986664625709465975068267068959127417967360878334416095145119175046728215585071441067188720867206557357356699657429668139804545570342853871625769297782563888576659260479623024728482904337664978441421173183792099582579624530512849786269934818002933249415866587951830409281869199655149999397333252206086697988161848925180383080307063712972002831739176069351201824522825070109381803264398794436836215591486271898516674939206665842211397031444689430059715569021737729417160343612942863047182326582184366926149399915398416640743642708998741043372891203947693376623171931779953915415320733100472509670865896182184399527591009206424969341562866838523501214605026074463861334579287093968557454875129618681036360677950859347862058520183112806345865317075237601142931808829803394738874248832187725774325179951491088777253647414134476110064449686391694805785780867276884606196686880754291577973085574523610531081427215917627391997508766869104947145275204126792146750921140043751082705443398024623267006751838351477163376587275822656385864927011310349078273266696138382710515687422745765500703292628038845813507934346010216982297890312604822597947146651837173365443544168336257224563605683537858939980900683243996173622789865581539228183153466617536591201239727472715076524607047780993912616814024975100424727087669167611751676872011689884859545541051630014065522357092821122621302952413950897764926106351486501453147432652243834977043835345671747970213029155529662820687761906991822760175799001291271264726463186834008262915041569114801935210836057410074281914298726120420026422534671781271774970905803505094700602787792023368567970971324986208782865466384978482384778656271307371120086411115032545334671814040338836876613932462522383252822322142711421818068357586897905197520836296717797401831493406477897862676172403530527589710737852146550049583742057969017429404148846953441996456170961146011414536800450336276109781616320715471285277855497749750797889877076489393110708881909150647578202854098489976660676450390506921468492391945801996187090120271665516819198111596260588515288606106372603185658477663503261481508916970729589621639023885395043064298029024784814149408913548978650211738026490883378628537686569819302131667049205825674348214299728332094318614303244691421209287670117284293340467511671997702963580001540138272463651739632660763747015029761401857174254108280907606963914830555488956522165142435670971086210897464248754150221602526814193696035198396973717040381414537048981387123696709554081613597043296184749833243499757749114591213020875993662697889056584792421944736030317949237811826857828708374437141933977428948418820953473848075040904382374589024424121335745277732561854748139593622849835287554981064119294650492771797510107314833897855715027082832591701910899209509338290647275249205221073260530799528851614072756150308436146271182939261173509180037868187257648191294208300454613673382796495726797999618483431271831598215969275737903317760102894963909736764886477958878863719254246166337558581443863231597126150236148061459679324102647882018727708073240372536422967997377059466919112285992296610587043215266073719994140739621101225040913243605372683902376672824130730280538863430156029121297346827983011241603727505573861333713361639516537465528464512826931396145452683739266703211877863734728257948671052295823048031416882816499934135076607750107109881334215280172611068749833339836374950370891976038411422101155564469804765241168500658971566805932124406505649613011852551383151925514791861784672279342155846913587715312725717158752037219576052887026208214441474130508963276940843599855358558153245992199889097809589178742955542370261886581163582302860467217133748556759510183842409093006125065011494809212047427273013563783166210639233613808320094391913287450022395983044981110734564444420100401221706341434837401850816475296880475948426840918606031158689118026827607708525335776770586606293836461203352140260591404168191768478431026168940891845264915838646965312619340119392616903282399561139921307482466583727103440441801583476789627921803362547539614074436191578847101564773285257786878806437878013378630075453247034469686412269440009055140158908126452549625360056047588956574153964523667721752721175934218450772814483565502013679196094887956803627927711245060414453899668372730072585566024311025961092553608643304957286039033235093513384755153910470424081168449273121831076616714064206137789784013673903024750295160098019920731984114890393647010400317791874913055113337863772466943466334420048434715527551155392187929595396463245025923982854058042485047718560764492609208442238219458658375591146037912661954594420399435576016126292218427369476957366014937676592933767866905425225625407366651853538501532857211825347217154381931969133929923559842875261220250161573594076869724327347291150788310452536981356054430502307961369462733653679493495315359064686586545029044296401511610875999159711034431106024482827041412843956702935477944066521678295401872769486352859467311505244310907411942287442868323820793087841284473459570420677114382097694656212716609571214570861485223403145431516726965350629459356820046869104186690520589236148898706273752743634872483774919029238923041610732336237689407147304851660786428501813024978728135769702141392512705224587094527671364165349367970351487498659784264356529730666266704402304115592074711477631189631400056654216913934597225399548535959936874514324407249396300510532059027843418491866313204457697050870436614824977942385479969778174580263441664650888194901181729063130715642416947535206391414958356323852301317977551299464487068000138577572862763272548784497158237322518437153315967497193365727732392984418722592226948602114751055839802851583491094429313834334302316442154035730473057694130168516453504980878787063459411329009464091138875833517552583288650071759948141082229032533122057214930281510273837099197460587723819019576414541655638593281637240561350662151818541587007366931209758080183458998056030380825798928396101705848665373268475927108039192727636999685846794406255879994961009517449636079275754495694651779177975949622721567921144914679176787933880904857974225912304488075772566715033036361660660531409987967477560412428113087016485149347664328818562611955601776177031729691231828113893754784551435376073223765036311431279249090288835799701226661521545976417956386889076054358370547347496629977765376833842897802552770411164603035877353114890424489014696817189997540050463138353141753229952919416919989276496412359896173222337766964201771679302048470902703944771908542481555790050294786865796246923018587211485401442954799961559014652067190053445201693261723426167856529491865304860022256578643226435873352091202740079315666148935856244661501538213122627607799965767032036271606403010650814073404697062791065209085243238185191595867985449885229121241523853744366995044786074957848744560326867998816126605796965883263404158854590374462623823152410170628047379479729056882032553837812086599728255906092338089731052184506245154449154230175530784517780894156295947972217943457468413383304545593615213529423577876804420655356803918170028547314115716368678079384751919335526095808904610883341805364505376681486641386759668874018565778045270057254209167526043590075486182302312836856568895094080184935946671035666521889851946472653782592867107619295622533056842225497585845783825819983057878546414365146116762190485039515898456207487303618567414569043835799367564108708214220745219294986226677982094684425911267649071890835735663003918431554315643330815061586301029441194263046703567295570187713164595767255630251567553996643913347021160571467810275273925379339590388739163615936695789913795678899046532741897425996581058265547722945105577100303410775378985033117894864507771497873788460503322491416534440119319525095784241203648608919503730837096604121201550523595808869250785281092571497563051954609688312318713040005284981907390726082574778019726054636052568472194258772418452514614632184313438210087694806466127323014967407769627468731510079020205936929430683739953125707373751076043104316760605593540398792971373487992745869641286830309642134470775339403242577490586940594092324142870532719114669112001119129819407939095891671024519144001058709542604357785088643728976222121305904131589224355203793019636375561056703693320473437680540888246882784778573539213731289718016440922621919591326940973482769196527203998590407434816843594809812754956477348023878748232513670665687018447080750703182019407891668152718418417629550543967781806304074510626309189230283475033256675384432557110892610985537933502935507062903182358380186652504708153987114578816698336198272283578125313740163983500655512005817914557893520040759665145169319256441853662061539402875337672202654410464142592715569687135834691322292549518537388493411927759396292490850591141769978725963103475633697444163426726871551119913096509126234530328437257980369542229947287253270897890014338730617134720565504453907139456967569731115438188987138936149167686187220809539290823957027946856833473571180052448903892094032208660586805268769466527072402330263583307977864625775485332727549161388889067874995926181365883529510006447324634208524456151714479761175242555087764613650226480114412462763479943498439210919991145882029043641988854758634494672391982939661658477063340152970517319214965510387281844790764574171758812525389344852541522912702526003153325490963660026997526516802048142363386311809313197355164013274009184483239584649489409030700998955947369193951414838917575787938166961154487493069558700877635919965945460391354371853590414524154425822481784189317993916762824169002181456122153440034787457106294006659491505392198041727248061792121816891262284392735733846773185982341316430649895200050909547891684528849072292001965188197881105705072440127800103604899505199124890680202720300579419963477436391063018101131793582525711136192660331332832951030079042501373002659465523480261924750272709367829523041669734066521688863089242312839533361980750093312392141342910472331221844865094584825658307686569428029985551478893990767494181867743372422629475699266217736878993416792026327346313252716579612215899585715221266313833293251592604330785400549147809960258033345121307855052031407980297511815824961182742336518490257219469098795131432871348625000696733159783254857857246557061465719594466757686605543099381582886424242154734497317284703760698669313033678748540167001303315710493957420417225296368020398987887495029346662103973470532427770053365029990545419523634894354369056833151882212210790530246026387069267314609325526143625326885667323353060548503675926958694064958701382803838529230805529211979259405094271922257861094456543203028280270257301727147397782615367980956603380546703064342323072949460923438093171367214159910351715527128693640543622247684898445888656222217464796341677772767893242400262332666885109399858254109745931468789351695493506449606992921841343800854241370841534214551027905663595611310463108738071097508595444589727416616734033371245870534235326618544824388066939107313626113784888027070587529966078223552199298233228563689741470893669430462089304580651467410165505384843773737315340411127634371944647299023311229656269025014695450565087355677497238659517720761181396741944171739037471197921135397892636045301905496320746682695764101235434633724943317594917315876526397727283480346867543026631825612134900691174094552269008893866770922833993193109410514693096122204753624006123088133926330677357356780082518121005791893920736757687954785593172935600196872617627595546029151197262614076422904965452506111265597666972824526872241929815629470988262555963130244534637237161838963828516813356928364612124202483384009064757787469452856295216521965456038364653892129490059520673453464400856127535704251654862079925385238561291122953433564301323973353497361037205295182261957008414625581812078040073366609337029996583205397683612471893592451596438630090961894862684046339101372974175739700984287008546844910498539098697145440428852745500961501349916796881504675032886858221169085527620977419410839243305290640853197507705111058607280042535695296984641461708359789414047311378417180443641174027291403298341803235057947965288221076325849065481729225400139207032544860347844339666968868161235816593558457785538325022190801725633104786251068955492540368316788200005082203105807559961868677897061130662610999899403670222706122945929478293005019506601230750116856738897521423120545314599427433517243640254235689024599936157394317953834716296460109271361790812208955328868959717891300430038401670952987443464641593467524135401559086165781052402915197754324919633746272811059406040481501416660605265792189205179350259818121377207718170392976036074604289825022425202990420597480106891981926507027921144294685838348146377555161030590566103150428437280335134599819757264639862895513630809258792795862074941938395950796548611454609988450654854079352474658145709201288319995997635247947422487288984271013602634863891718622286502715147843642216249561709929031721281376363676993840607958248091921873266151620765000767470124306739858039431742306822568105002919202541054687620820486695551660430537240373738351097934152806849645889346224118868407837078324866973512635658867084966550690725950636258780120935098049703596653179697414244518584253988550451169161939014372098326367937841772928681480137708910650347745239628167958630855741072724609093435466845218181415132273737608181733129560404336109011032632302609105831041350787204464458947104865010728100435463063913441087029468768299637038341349844228752283090446178454254867068355806486928380397123198003461295763197862809034396308412950463951547330264155823344373443299141390361367463689132781527534818052460058868989808485666359811776561673871579161221477234772641224918424688736439252960906348884613698970200267734423854402902528749916991229713918698362975707849085136138791598583596130565246163688175166037804434380013068292738193094618330143613489819789238688439948326548641638737246023168930961644349086212936640608592772811648347780389341162205319211733779434213077265073815346072854843784139241675108361876437241872389492154772243430598456539296911904583270388626024378688088577147405175823322487689587074109123235950582047646114536534213436968347503341647766500128483243199913060320879196661729526663662489879302132274508495735215448858727393598175238085062569917141070739759622011822596988078820210452288099326598636630866356293816749003378262209363091107723238887353506773635432981985568036895869992609069362276140419292785388866519951011894407643872519091692915022424219915333020666107748478725451033102942712437848187329956533575143511446465965058205588229518074285217657397204583529008302889358961752258412194958572536674979938536339047740429020664905144448194267014598290536099427031851586029736887786859286500012767898519383589016818367254454306109189160123999351203570650338407562256524820415579797657900192831235822034631413479292808439990566144269969407221821779335780521527653449847359835403249915899591061153508683521950518112625775866533022050163702195145509339893279918233545852592700027831271098759410871724742039202730926201111680117635435517495408273065822713615993449307051118247690295919799697910691400659353799820665382629561345889910338952904080766572539457195945690350749628756161587048796885899374960143152792832528449929348996365677396828704407043028016814411713980334125218380496014230757385524243706899451336133787630203040950395165308995105505671223508586321449852641863345090032395276705235405028166358253269623419239257715271243391630043669436709079818449695558817263877234616659796277475869790776130796954000719209667480741404892975522112016048566307942946946304855152723518219348299481503742819006142073290223955791168416646900843826267376409811116872704291840036297414145197487480810737517729762640871852267768679195640419160883315323398379319900103949318648575925029667471813082360425314604424222316378100377570407265676455138828488809289462230001723695890607510532823869242383842412300635116503198369960102574276172425553957918854308512282510884278506967597065100755449651065194461516859625434111831850962289190626014822200058416144053990649885219089821507748456491632164061338041614791684631443425492620632272462906482367310357184286057659609422872461553491364681416003857802951502724029292615790894974007060163181885366847651229387646984271308213673924675754823455329476792731218215153713225757340503760894387034673958071928708142672635639903822778360405884554318082665669137644924364988369828549638885681096413113310205346831377521591785340022786448175186470845756354465472237298410544188541992806396524700797599409364061347160860420260433422799404382812997123100870816891688123262740180840968337839583366809681446097332213049028258108353137636788834098604870506635991956506808677259424103522316626925999227895045868597437597997684224104326532193337092798809499381897428562350316133151086883147226954828081590711114237021381287644473892110468276376354516355524467655856426798154875197706198597404412091825675268509043181843797088449006562877664366842137130177575210482160141691526615487597064427966625795297110877540948807196070139223015228678293231602839739003379882340839187685959060100717453621517380854823745757757442892411659334480958480296926299623564276366381555654639697596496322050536484058584571761035882896243716061395498059480394813447330719806094170405938519843277913997514664074042396163447931892617899060666604397733286184654545740184503927306610859913778528068625011275411803925182723378391429269629465650375632543442382927164739862349385678748129633361296170719085852550540031959273017835441064147032222988964595743321220643721152172839933088230787532249055299439115285140366170966286711223442660302871262524468236105746879618655662428213760934909507812171503153408231802841353695654933363721423013686595180411544427338502780159344201697424389868199519472896646687841195571626065397624433206474840133787419758273761450284220175502711061397267474203435952865098643003289168231721556631914591728092169069269717571240160795153876466506271705131058048413094701398417547760312216822622042005530108166989532209651213361502014415006107864474529236884599653402179459262154127207962373515870948050018272790797334165065398872901647135172747533960681530982587389215227818560929977281548458005379526547389307142897743094016545257818370390249103264831140684098847801227670423440129093266447976894957220164230838821748840003443849677803105513747592535100854033425543211661319982143944157642429725825614689259111546726262618374134942895368066929127389642511048439107105086639218091299828871239685611059904633483074357460084716049106923936063949439053811010557517999880970825729680101795140075826186680462570907458611706156343747380727446954638309218765433418322547028606946982585801191253509856293850675396938924027398885895100505258328349494707552092560497445323032784900607696085894075884305489863539525903396843067188096950639995583606709877332869842966114030597850939121140733624119788295459821147668132988468543406606022219950575664427918287941176197326789676883846599704029074151144477801953022788820025898046065796827264416541521704352137753098417189709309741043378448858568422439161606640882028235546725928463522092832991390406625336839634288136633834193000826533547856242550731728116600206179893532170558679211644027769078596415473465110905163776920256502027060400721924989068609186440322442815986367804253329840286904645790628757313177518318990398963577724418049874381884806973316753710959525836412554629552941696065085798964484300272727002357497678123990474664356572841579053920486285079130407269854832847482864158670156061805337713731876740498953319526546380189053315218222053969602572028908228371167611859500645268154914712643781383849985299515826593805910940966870206465103686805410150052939436163718448288744281112843717932464134975022445793689837171228603847803832084969996930489512459590533357379745208267044042351709024155473117482145308512705751988351136605454871794572075707382672935579811296496246907949306364035604131356171259775128060878171563481493645274254867819871520307428351420554447380210830021928628540904698048141131933794195628529841030670776261126689501168490976189469598643782939161459486144985456221671979704097681540643104053107496675500508543801783670396142794120702676541883069014993240079417773438248666901388307800781048232701772105213404754777599917115327366184799956462289970326887537696796624251839836693661213611552118290816705279852982926602435848686107624975262009389387971361554883581514811477490517814736736792239703236115124741624505100944460109308119963509201868273543927152919004385085343732349212872316014176318670301103752651769793394447256465856142171551380042818430060470738299930002178445449896619090207597660727999523011510346309501322360440688518989269231164281902704502547113400814054436242494608998689968724047138753599666313951655852649019838069048544275692122253069033071306946021845833798682154746414693165667475270083120737101334931912918657017669653730963708566514661435945660159334027106673357052186356268243154191017046363058562727562003313973427938097862151517972272143120040994922700780033827176273256711425226534682088234915360839494081853575451080264613781604745330181742861235475926798192292615007633521035993264262659834601408604720216855084275993992922162226660960087992131987029210826722105180328438900707737545619776384955648490527825621344804913835325784590226934950339802475170573472837409436736763186079774178988034304519474937797887395057031476604256016873230121107033271776475162447796331448850609027768143336750808701075882395988210833152571249508531334842674404092391288877687616095142911512337255976817575918836407017039441863978208186192845919894705024045346216434182461742815915457344960021606150857622332705150089730876964283882540048505116764478196774872113218859981047015178934472252664394298918571770513467764917922819115613862952050855814002696902707102466986345205413061388468366714210063715847897194845464718365558488340026545221740429085053560978801458002644717051730758737688796859188950192789091129240277127136267104289529683805146239559439078103215211484133816779090560459676494429191436388647183326045275077323090591791853474091312402893204907589478271615108778283986862341817573167230929435080642385831518504916161813296733920003392668041942614290544414165770700281952356672402340193202326675590576590260216652787751615204517014394464429890761061844783816054789948154666445733139522946106455000440729403884170071695195772853085259978644110756904507109944534366523833178614894750623812821677635969935843907042469231191922666966565026130916121528213076366074197814121456279721978834083050837408291183677889730534017148497633128895624588411785177300153301687615697709813937965131116717564107466888906368924016390914441320619548656330680844134274920534384855418603717676842462205416017614040703197058845306096780756703686503624245697461959698129271736349367836290433483115877376640589101174426040144672436369163213425479276575983122570479810221628598563908430468151587705192840993909514209470286364612266142746202538264602973118377780837156721102706647358179434524231381040051031129763251988778921778425664887555137604603289698952403811966862550620324822806368134591625315885943106335832248915804979449062239545289283738708697361597288618135153050754858448303965509261953740912122915753589626988268536588095550113532238413408360499952189780872881835818368877606856905675201562822019724020102223894065862113107255806500120015561498825718656938307128718463165145420071476650365901939130448432610879690019919857339266198619762828045493583883792094787505053790018829117625008883501372547089974136311969012013968164729762944380326916106090839051275311020173397455509088527995716083512692781485814372245148927385974124494767353710014592497865438348318023346241468427511457954993937659997274913007915496046415271228454694194664371932720051310333588285938123494803352901220814786194996770908065252488536735385038268738348393305267691157103737725147335969046420531741072847693809390183154338404095467104112297491465736195633704069656330208018076914174434987043827910465087099668781694104459298082312183855254397130211768904231215120708411409771318468927417072548895208693828393261280796954556679551566950210836671367058119697313293937447674212234868485862660711881666683965591722653358832893359905543695244863329273873231477928753944893867889201452204899955290856344917969674426402954125593305974426821389773769186663269488032964814873642031788460144256055942150772402276470351407158519829412773841387376712906646677142021850165027002111069884070942357572796153525239212332419976476507810498379159961086787660407840215271508909884767351455052859000390372884965500976759320190474134969796474871351903299350976302853762459395300349573558077846598243958891670654653603085077783890412832660144219074519710450665514732866095544250493094998253076238477999899876736640133127088794813568639630570375302839887566070325638250603856133121540646141953749452672589981305728807788059942144371052522583103161522532477461673336996017193000766503839792062918086331272029372553795256188773540319644761879699993784252907803423410711583263883196588666773933287458740362865963150017759325699380938391969645044077682394335276631765939306198177194074884632019860657522340093435698846511302015906512816292674306309923906278017874427985048351052740792960563345036226910708591129172883577867643412643959746042988252151983258828731988036143496856952243072096456498122748541491659404459593274932607196183981940960461828775811409333625993725620826643994699342401243805496241374109232589969363963826764929190249510558114774099226362622913499600989869440484117817767383964329093472339722706327594146820774693925781139127281948223285302961953907662362064546543829409744252888937488284093193063468755835433177112510373030834818981113830086318078196828081961371944752364747537751639510537904034914084736344640749327505306749413863781559760180387557927742515522893191373338592410675488941121134014450763416274459492963118121078234190240507562294623222082254212405285014866283692817260985987073322924114199485294123466215665677053453558687677648325441018705683445510841182617213005824242758511821725142636573303906457679106534175850364548782989859383828204431938792880813263035912555489696867134660623883851101135795895868454708286550190038195534970009829460141035161064904801388237218615829704874402777166874568873377960530538656473352483896778285899844177314738024730686186314022865921805436144420140327925215499233874109973039234200108915176529000041082935272919942920564762985389487171327116251997248058265624271345102365189227228129652846295814342496649219044488552881895578544025034090209362043472517267626549712477328739622067416758817688536169922325319919813521887476059799732499421519309360772891732258344977795807071335044125971187884215773845175425893495117912431669571176066057025360737563857881209420604596251541175252074649627118030969820579178061048991149194642207186011329368007843144451044263825988845715864882281640339797853070433588934372277359909367922563502296880428913080348360260593039970913033531994008831371026361901866738808950341483731726982273538566878957030520798514347581352669263441204107763675955630704407366342940392560002797827063127556016089898063263866436878042728992596777830835794587108637843235717675725637170179756461853692045597508443703897368051635623153037472903409909934743065641546615940544309688362474364343744743634212408716587470549826794892376941251192937859486553938941404165505274270497007593056317610922132019960883141822387690249389847725600238338299695077218046915694849145803050651372798411811539634806449054366415858885894359725279470454969561396008116555222596079150652910523510480487741138670707934274008865398183619809729445320635930224087382490392279957959048050106158291271386276368708681287548621849305993939905246960335009603392639892944482295739888207860405422524669013399994494861898675496652237681206167371397809970227878599919102740527147685800255534837432959076359480333334168413569954044183132182229404722112562735867658215261720871640348513346818407441708156892516709380569581382317100053597972644099806127008974148292170533988452906076777807139512776241008324181567134893826095332435049292299642799416855537498787919811665837286286505247998736450400515726396512760519482203081650764767751681120878864772949848651815351786911924217549325209930678516089833109407568944252648316281742899079851649310310927726010322168073995976211215888478920716519788037581206033463706170501769501771445936927219935841093601903953721312049625550686174905883131350941751111971367257888292339580868966385234550941141757914762321101817021045407446740282678502798891321831831216355055946134038473084382830996723132168426476033130936003679622767112508852596645629216546209281177628860393812846507154117052512470172831989102547589644841173497266485962750427553573743870527863670267614614403307834926657505108701168182380453490025508208446323564818683165092256021292080455386113162727455856404623566887495828222979330532547555743628492800986410765306054304678044775151351552985603463697270776239837128697241259399836784965159492841681292253195454075732940240438502702415224799684253348764105082185308048627078411926369801649605862852676180534252410940141374157093668822150583158039633029562274302499880440665472311010828459440939547701025327549143020085638682245184144727723680697775579863924206234992991150488997934632752809041802448531376524636491910415517292057741120806183437771875821185898352564260359789798979802595208283365193736915538688099280703715055156147993463958462549522158550099493743200179878403327261113514877225449274261396585665408916987743812201516099844621557743229021664512077403269295155117099968408635887375930862789826906050594804753150024337899109750417720336802820379691760671339285962640055911075819782764754571395217408662377788024895741910203094959767628277007612030026036073109940831705489583973893514629465474657242100268958599359129338806637121436146640382964182351964651148960954873832769881928589994961246182272431965905589608775869733782064478447336287262744751084744554904882747473538677079950249615422254247079152503360809080413437501564046767042682240259270859779372849388659100072473234036215316679624054138799844789493799655894693096919800555601675298418980245546464261099166101167002342860932177450270263977950376234990880917352688400413655986259352727769031251021454419355219462282810650166533590473732013972775570542031042962483204248024782972796902573273369939331729461358149342312879122880205577475412131324908125281287771316384869159192616272310043397682534882356877934483235171078034134380690934339153768806913519269981685738264366180756249452449193765700714881318496245954954099130108071116365148518815948819628832193943107162304458166180143796707818550811752355198017348583402120690914827076472920227050008174473908411897982650137353645989164887390057677760609381601123021032873843099259075313201229566877500025240303029305854535741994613822161402130503483211548967998648261858813135640518546625761103585970783815475941973512499678921094200287427003862018071874605304964316305601101991698541254650524972694861654645656663091582588800475025750756009093106629369334631342517827958886686179039107238198149689540786820113944792608055451002505865058296831579598272892427378548795691215375482002875251258563876188005312949913803103995477849577525440734024251662761925654830478908909447847198476218625064512296832670647867654235187036387400128855221962034256561482868886130208052687986789438707477628132664182699165748523776473009418504733496983810621704317918776203188385945275621089643223643373520894424893085406410788668620548897971389366664985305170927687992700455646375781334331806047178182037192558717155576083699268552190311920959783490392354550648522651908673698831879921232593412167770170072624668930819317761633764837857489630271457412559036759816095502973775604043971427393022510358993115970989880515098857115522895106688781800677825856471404552050791781295611200063522962545183062459481490697310902836529243877109389579191130035982043475746333910269832438029021272799992745911126540690306170662379280585285292759171783438523627029146473243878392953540067330248923196938829264452756161466501845861644387636006089528456657733352370847786602349799337199741271624228567179665992469063302972879042715545632845750195287340846729006062164227657112001541468525075063443573165276134414898357220036140546916792447087855601616828906856102257823827092520629120662202661499529437203032769833571842178183228867471357269794493462431525205032728899603690528808571476623794762225112603876173421668647918463014655111242565252039018996851982336306024886993285287133007919250626964244286822445687148010780253160961851596253496933497538005975529970045492693085687136163325596826916114705286789204222746256511918932843000296084588816222077386151907933702117006568898952712245287693077311326281275535070078356416091095417464069814449316804462113450526267766299491099435484010779520119941247209307714319723209965595533083312803176644367268686727052383286948580570943273192590995820110265353611093601080332189198429072306355128915429868943350456736540579194761512651879274498273381979597506007400563049221460376864857482851135281385644392536550771614112344159105958392315545956055984814588710198072235189339370782279082333246081899445675974717952764814658382113599457785834295980809983957300757071015982128413063868941427005607334047603573348145308219346001695991129032757483661090973518193674330156170196412304365504057954271067727017397222651175242585586149031107298838930500294426984734970097722169059776890491633124703269387648261762747341151900616987356143247043990897377906503344742520995871980913745953838952436487768983209173602939671048602040572072736299462025741700039647751239294197185795264733449921427834320972104063512903257555171820423021425527439456695358919024770134886998057866645201970852569538886072459901996471416524612618672020900802672547529876834767696538061742959671329201531902085497047503730707337381401335625324018231080450230344360478446964215161000229493347306021117267728771536782830736821847321437324915256709142568216235145095288700489567666450426158427910498192940251776865695932589541457725134090179736750970074125981935163336148970533278436744957185413830505821880465568611738669448692087012849624690281062447507887599929487768421008918096706616969937376492629406894249673611678290444070153417445222874874115933893031025832700362376565855913247426262922025046152587154031873677453403995278307591821307475087114045355411948042389305642134473544988945662023236785429196170908288338645254065014522005172463424367587828023048819293704137583407972206816049779736274626716554125219455397482161150026278495835312874376390311911574736170510993907739922174970056206304721167315941142737523502122128108207537702125475403771656603260290985116310483414448046024186637327026857490425752927491215644940014719908203017974333431805753304136759641412941886717449768051693999999817626248795995281470888303937212590296265572883040405694390547344851594469880291722569632865886075919299924860748991313441070806138308817033631038974465005861363382275404208974158834346437427995494271947390282289051583954181793935282900909100873803061204092014878951003352958760784358499840311025396983340344767027229545389159827757963127611991640112232174772279442384649217427608257711364566019905005083249191536536781022763044885276912578705812263047088520072422943181633825232959765125992887880178760989372905899387073403906454034719767415965598204133871907022282981350153065573790522740497209526162895646514725344359470144527496725765025032413431268497856974319367157186711129044987154296444866806412574145903644253733001800504841534244666447929170722171648676205394422857635222245378304308529385045275782981257959567969098484080143899871700048165791077883456446891067697881116649897502476901840140282288768991707686270240458518097500335175735759038820458090574846473806007037800442831362912401928323471550303791630720797223321912116382966870144288540975978145597067611950151067943852005262031303655395638231905142623930397193514679021937083329391932234224908978202973588332141506957451636120571751751471143282133946660246919577879137100620139600877522580345081584846679151893709793576344164984321854414095848216112785736165830710394621731103024242870538802931884494810961026659828796731807745032798285201184609008294385466221889716168201367162860376769215012864849215060999945397042661505367303120753077465780303057333440498489418388825101112823473816275897920744846565995655084528655423599909056574827138920781696151085619413523788046400414755368034238311803520403119761059769540877241296495302007384455014364313775097964438440972657116159115163954335539565892185383941373350702251649823930241927075729919006017041279255373815398311318409257216177823867672910990022967037876123703880496577113284723108558367162853777424405040096111559073531515423207960325621717193359236089530287207827022152030492637332219747044009131522328663603867767558294653233360386279785111679823885466883467570714943229284011151127267281352930672619907743230419249809219114130516681242117023868611213389078038826176451076474587970769020175753151561084051978745385934756271786023454822266784461305919774890358161274097126767500279534924725738257189768293705076739243336696060793104354748627706968396042321920165513464845055188780495611729014641342346066118084857675295353206549648181605450975052218015324882632659026437732983392412224536595612435007421682200959961119348574727509002552450139293666970831323167720250831200556324478179361835317731995551873481740711373321241005211842919261579200515064608251296380748109530678881259853177321443750780187545181458468523194455295069456496866274865307310120072723150089902410319203912262015762673705368538763974362343797259900793839503852394599327235245793860305778920301612576486440112951697695551131913914826350631699607657497912219888346776777076503057953036267956696661267169750203707863170659716891712682625053664679575929576704805040453880054616593187387060989956948937806092877852616753439010620107372881499205461296725554591179189032572489017748083303033285805974856500580855504823495895842468294456247257801481442356225593451590211899691337193855211518020483060131045212194482868486928724763502062903554089543312255702600924552017635814174501226704123695660754705193582022272914734277204715848627411157059920046988232610059209508977049801600090013155573968702098323958773704280790356578760489178896291327398334809405096433917550329609911627788877707423190753385350804038032456975795291867243551781711268497648187246956933053176265553473276783881946167672508484465600257700425115714653287930123676828595303942480280320961991035128679127416546044454432774627988965665313275059415620760248163414731441245914034088073309159362290853979864040672098792478226139081606808407450905137450481012943127618495105180330496585495038975840829430482903905905507719993466550327309153857192380230926592110569406141825877210317447706941674395224768763908241923159994905146591945954387875423002221109147291483920727659240091664733179934312024199661903155132073064014727803139844232310786167681411220685398473809237815339712919679992743561140879047835395673387009844229504584984626700772057426068148928384285648448095413260234843973630329858262580566946455554599396208281013639703530656560645557442953634696271491872942889904584144955946532548096155710922429279109377015013510558108459972272517860270775148126373150778525193279147106300317215642031100543473504449210942024358783595243242321294623760155882069956527742624712568522430614408213964122702072414691624468732095514890604006573111951659397747880979799147666681388904866226680903936897261868604429202981118659133320829515022355608464399201621664134678651263878556908979271485085022261680428339954075160058816644506200746447369108702364620101377247487481531283844993508610268433250181345683361298456062358806891268235848941239317943351440502301723700831241158357366187946496965156773390027586153363158132691442225441286588509668694815452739453272561133417145144564076041226417858510756910563049201593725786499982804516084863297641726754261032821512345584659707269183683171155661263088093115338940139584059014838611832226648177621267290908501893637711557120357450459470115345211676527362989216967800315085225669065837582517000741695254708402416248052420647504277644646220169554141379177246538366586859917224214094679303593361331002919684841651810228305718726439219326861452714616500043215415554587034983482771883549841478473689491848932032380212501384279378256401272943331661914925324614062531480035178863713343770670205529743665618640618005024925825278054133377468873273769047989658677372024936021739567887650595483684027557238426403276376715067936726204214480657956415456284301601794666223478671574259447660009125216931858945073547962855405410511258072292958481130146942590715564340418215668073762511285768276383906118977166108127710209184204765597101508844319741529583093544162937527066984056821728745219492574323895535739474554332866507078201034034808227599160323640832955906158827301965988137204658821005043816361766922239618762702185569861195243908464435313237920358271580625400300948968267184241541028202722882262236452532070143318089087119799612623549663675823588236331664599711419420532267836030438674650516679861318520284736613547876984361485519027636226317846405640889735760188184639701978158199087442051542409668935905794204424764229345140788209027344226725088968888949814070239329437572551044556385247430133489754131273557227585578786562718037056606806131702425005993744769788592170020027682255121985955835747490021001990502243287086211654344408959339980219342409730435593446605909020212600032244847769651373701666454770052276930470063328312676769309881554505260143622009444936188059401160413027785568134238383864220703850189832238962979017977525521566995166314003724644623025939502971838048353404098034422667295994005911901553040827180665530397531192202773647061314059568823188118598146664944826506857720038335916063799569095247812653990569354776754698500156448498173539598903340064823522050878309644037304966738843395966764271666326190647913415444144380118297521634799192438992139061973378977250210026256296241944427393442959279571996611182119316248690983553330694865950426584941799587893080482607536863345834517472532781155188363107660998845116930865237576653420906782244312163398179698120413548337944995703804291019961716667086621805635892291113601331389730280499426995964091426601592544566641583607289282416376789745800088461203004449463077887979058506029423424185749777361056616321251311101605453806206698565303411409119157803729605421671481927405344468402684792986270641316184940560592705084465388812859186599831282473773675138731043289505684058344348474009088375166479007963352144330657621795255513840393986459080374175972559306766424064537729227950273947681954324291972140242051390451386098365436988768644400811142826377308781761937141455929715569022639160102053982635368883730596920669407784444675181969967820468352289423136851150906873057559977670993635256294101506728967982739372869875933317926628065701040754918450378891049451411253461793724685758603305678083330536227954615200576700898189968724037089053795101084119058687930018122523987716218498248901582213603177645969819622096342005816943135799508336584753033641440567513967180674834552318465429592869383651067207552037189259309201483021013602075138925601222415538759523865628728328443079451707443729850663581770394832414453036479129784151693139893874974873587423140327672910135399901325313200581117018554983448744319341455802613959438821434112989594148114939956328182687619642907807493946732247882534726032186509267457420820656323964119848302553069546141631938567077426194002704644753691242832964272680083328258241095630340470618310389709583148023427416291419326248084498755242250100674509654399610992745385227209094985447683130595232148975735373503367852770275158213176787175553563546643400034780403615259315983317083927494655586586848290608956002726726085803405258375748439841399265268391169621081009836737911189387091612675621787868419221626334547315552349846303334610120282563877858649066180714236598365290481004440034028138883043141880967583991179564375797615185322123865053032864256881529671443465749138741147780018608994345999440880518296368049549790725711507401999782803547901437944008517466039539026831276978848018421126205750436334587478510281175251626967126301280921978220245554461232138650240644799820409099676254902244955368747047134098639828871105307291071711617231134832337538016262734228714231092747786539716428611665283286257505856465666627524649122134821157858485417854851331332985335839760782471814983994493326672701858935520420415604021936722802674405297992051458301560164024518768303829151460418252823780408668466967989038574201268216449312809156898220425188244220604082355262636811480321321177256523496670865025068046553176753745710703524459484504394890297417909831296204328664190675054337947401174705861874400743128845384360344140365399856169077922516687746272684583868379291966951099703895337358970957206771653538991947710994506276160211066376990701641880388922385217466545017528182545553003194159415572465671839590727685071015527433597186723253310543400570378168882196507753962649902522353033570884088947712406444684971151151638750504036632960107945190406881438281034334699418764485964307474503778736379552201736350829430421294648773904087378073537891190658077348095452027459840477015583681312281091274654938936280149593538121757108954831287910765769693251646893478397279134826029025800372597168992356262088292991207815530632534638795369839981261603757192525649815544690933831460609461087059482210658703604261481297360837292220414276994270014618918558025938928612169034580373800644132566666167540672582409862764985840766326776080744150524007104342554984876436200247770087549395945668638988723921531012547293890876047554513648485055542548084274869798615910521721566512529535136909922190570943435172921107986969563560711606320486197780229296874622684275430011819859055302334078673427246050237257288785272094645185907428248719804309719060859187745050853510740065544305462884081577151716165051885904686667176273241248006480551917807771527301853126281370687825242160503621117515197389582360772705387178536336926436313018256577721408212362699476681041769654312590618891585070601429074083344137898701368413068490356230590277957042873565447067233812847419918370226902585530668285360403976391254127579548661423748776720654026275542258696872320399313604302998995942093678322157215087923827091565976202397180107019123611389718832556882613380590108354841318953849373126605912149156918529874216186741948465828926298593703999842085408180265772133431907167345139026163498479182875899872421045070340861894537571210524830639763078560255707496907691086833807684086699632678204420002869395431439176791547917540044489897665844444330356260015259632630056366142409757034027888183157851728930558883994787647205976170601286857741689004085354509440684871053277811545658190539219563453313453183297131889014456829661199530575023610701903098051288243283645232961337393110376093356112138816590456635358290048147200103306536359410067661212066669478374985270935098720156229237625837719744046870032174192636110944961952240559154158028285368172910689680929230583969523620667586183864218757402685296370050222341230518332041169239253022845479288402003634666867092335926177203837604437240939761508760382762203830484132819323039016072504658144704993635743266777903551084793042002301401413625491084235934179923297689157382126174644671661227195034341687203796365482430168650989376257934028671757447711885452034209224837896132984024376485048711402862704726043512986793379243755490545269829881308810902256695450395297760705747059936271573589989509847038164218545774731116730158951109744156772761692804638714392287571183563819913110114964599270373856342885393457421167048205542002274478588782710311513619719244998526306136299895506710491831080431310646995426171587101474168920504560551580386492694575527749759650138309736909634654061906678950835574377517212399837201879857228121667805173769066952272666890823606028778365675787587690093119818297971071931581524721228995905985718311763600669759693992252656157208081434642064791137977589863837169258744990477184505455785677535083965434834375779893627205964085509279923018736632433595638066974733508286661926613241860916494883663212717631009485280014685132753301677303379533963719948883288698552521688799491848949522632703996639395463433713985218043730563244844014640124301964135017343323273997614563104284759742561950323793221503302068419149512387525655035946953621181481854514553124940457535094942637354019568253720115789571071414836501795598223254354901419343317036527385004315917358462995695151909014751278560092548851089326107174581394669359512133582826070226824814470929198546477750974910520871229502895801344160604571336762548952866648560231152649475312542092251706341037684032478192004967329327572821207742711854169517284446014304596029130184006859436911157781695033254654321478629578707359705462043736607306788069022610828443732718381673211108237811072224119078585747018460394191935427432694733022071963361613744194636676565414739355264886252955607563753239978193179783607893558737446055002877110738714273715118293074226825562462585616807904085965321956377848693619229038043150835840391349534564155954176578039797553758233756757818306828824545651388959639992747790464927713428556102315144703069278523265600741713069014933331851773344040427962985846822303245238908878897354962168698962280813913769639889747230530889747356415587934805664568311421533216931882965952087409594808054196660556019493074469037337041862556191927004507953806158617320754206953049573320582046135144370865685655759601431967847163714835254598971935802015693026912510213264481265793141373430663066997112087188965162311852805326628652318681602801245635058263756455819123738064433167464619050853012338403800592644028314106007862718970800242236941384205095752739477528962927720191132851783646846661425486127249634881410580471514603586993270770896240217590227020983698946866290492014502125148473689455267136176821885719417888958941406578146612035196387524486697531273227808823541432571086558342379448075797774539677256172419907465241868662750034991890081260985601907598186488795152334209008565856966110865383962893317764170614131975553008294958986337106915352549374900547282304764013525420665436954929770705371777462404733158107805129295882262742552720925948906332033605858867167598677242996438720587672235192903638760567692513341704571562344763268319422017152401222490214570735219711798977447890580155108477410779284632549629138756832585497135643395049678986802419953721655328934404852202849583839305031838725513684901612301076553472053377690550543727025930167708058905806480860972017989600887737554172983132629101010761762462527876982460180485655726134399618089242811201250316267342537992416000796208888322462003009951364714039336730011852067847480004927432752230519612084215970724080635508151081526356740386027480046238361241639292634820347839601101772435838935406608715300606488564410755846726893604751908144334035409670237393567813167839284150344618327960885992682452732724547912635432207700693840203810468189126033132468104564956237095916638583634837147818674886412916136583366289488073800426978910020949903153356913207788818065985249513002335748493394004600668259767580601046246378504736938871433137329068813284543968930761006041166326115600521076508371179456946431994016310212498701178107166084302243689657742730067681117234523633883065765006619548038860495117235506589552532820912376355505617081854223407728576069177129838246711836860216512287150858666810226125304233637138012951318593038402554716468638627379138432911899402009675128747012504462831281667795700479594396737629952649735634313994924770920603590501080943514319994990381716975883308585762721599047981286368348839543443649067323712252528903495513880156115865610723537009952691985762672088247534387132215258115936853176176775388689680417423451936922979867372166266841439390647260565980954359196946979817984701148784704274480331187357549391775892445757102776778094478247934578514458195002097479596123603083476059394094141693563655629099209790857020431997944173716010402773005811367624192274916643409999317429154183806226357232809174740889541949102022946186390936718226289149109770889783826824143246064327214145036356660871142226665499907462891465121132138702330143665888598859882693777312446997903963325954456354996026179143245311972329353179887653565495007482485260296043536131547860195284777539060547734793173768160691668908793175496506717344321574637180047017931850786567079790630386759502301309009238360024306401485841205086435405945083652059618172063523018020741878978114202903713803291600224233211912889086188984195692516306504095685429629780012823654013890511791469969696014104787323441593489468454685402849826724328762449365315561310712435989943691516714353469182009759220095240312216262171373110765648669172516591646749005897050846491027986229085400998817904400152857968991069174061248938415114622871944869671078299346614076051072026398452957176529668441280736921396489771308165074063826913219391916098805543382376691007783528243848413749555802359352621901732474955336929394104315251433708674648968045665496446856934786275555482665048108210727947993582601788348400141913969520238421799856301622195218088665522095600722968439066446767077220223467955540045161356321665596625585043388720711625318178002406058404439679386608207798302897206555238144328772014968080748866269837378230153687047696233120323746479842202749800583520848640624004854812220979609804220811019419045501345459475694373173726615580642547463479108506011402353707305139935288267968078715412785536302852667088284649359191050429071762118066849918310134052303402481494771019714966779089774399832343263186156485932546570376341562467901842483846535903821671633216016658482655273109189058998632167041255376271134088708403181668395097622699364874632914936154157334906209250197298545973696681228631516793463726517445473597275659984584592260811198316767406940400204872974572986628240399441146919451303450566611213378535223274211214890683320862663237734253121737977320535539286656638705337154870040740557278259951672776746526471142771014489829323404477760847064536380337220750041341149900198038378981364580789398440192518802115540060157120111489619682459601517364951299804045718644922100836974963380345991666581282222255108382423956861313598088274168305806361514148406207995786132575748382018266231447539857757524199002706977056262220409441052600427949307637363490807501812060860240154210527118134369648447143982521947180880447339306971067134449978010369579464877217963191166696334584168363468071684570323971353630650628693616558332023273814880992032347382387852395178771179075239082031864271089627583776787921895353523459737338131302014565709396803248747984348584580236220224560307371604252678170963025922894916369999942178324043746649642705066935731007306194580333733531542833020169942041244213819304592260408673647722678652231664538686483523481795636242096497826776946034666102465088906677435347813176391866930015013408561744635244206929907617498804645786578243378427517774519348452560934953357467575431852716539789936953894437161011971940227736128541291325129743219742340985799719990907687353313893350758622414441830940035884027431036610992130381061160173773621410677087688815941564014853777058504644618877315651040234181027133623313919805280987644643516775568463883760011147730074159364701554516491519544116676780043342365646300575310965969583310263184181986610019706621744788460542948215927425564433817219840894109569034777320807669479229896711748606122627512774562593354889200464733035764070963425250824812661012213960337413813540022031806271000330601970800797914372330983584449534375909203396182323734877069316295471593864085773680795247656036097318032815240559934107125706652213960125836157031221899491911103231100372430099914705656001243941327868878129204735114254553969644159330168431166080798553058779129608108043683323600875194224919578529548852894883011671086921530412876005841674588082535061043619600371014992733933121418399397413689224330819794919251987441025589064108221887833128922348616358392605630740894301442681339688093807915695623495261857766838992636723150467945277013869226687081117963940958888688591904712498517115538613103076316430157126949840618484296458929540587450875616447143630932505469255158484335538564922636200939047221963114948683667842460891660087170260491189709395975377219157503121254966034135257514486091681646390340769910922668430492912268274761512407706325147628000779565591228423281984818284028342495134407614717199518311294460842114049783775566624282864642739826792630883063712155170816830580406946535574778619568091316570827980714164468501976831710034413964097092092194214649305247399223953671530944006621752605140408902402023652276884277104440840670235419018910516967347804098904308295347159501869760919901001332591023892281008389974035814762320993813293260168760453906208864524524968889806621274213621845209466973851685352642701557818751832173529335397152960819395284073646076097505776876764677906555505153488399411816708081301427133988197946505851504775565384930422735450098140680626222650359899176524660230867357932793583054778986966451143786950393588411344201504361183684952072556075106620206004409702822005227396462194039422861889448314788201208865191243234489175007244645797703708452637720969003343638135752675347809109289041858082496131004591771585644237459661026988909376369287111154611231507383378758937294149499020714945928038606031579376969585147615233401801770502696056685036495928201065651712338996938803100651165211742490116534373528037220575740804924119553410432176412314785326821922306063019538967430533759933369919060052833971361251007524870233827994121107370485114492010387696251141811277497530554309271445854625324736436127104839706895424888728025513418475541409209316344138429022307682111391068904308941571374986294709926808386173046196836678396901104790453588863901394124182448722064032275286854112830142574910141993719918834748238788790367771744360582308329991760285299761454841836039939456622451574987474049260384343487260884814631321652168791426807642304226208156848945429370407312807465825934836221735181423100829987799528896983289140213663335606505196480186725839080906239307921575751584916114347260445437008146112619934324877493152423381194925091516228117978510489353617787194068028009536589605770926669525890422217444564310869095390638221926711082110914382573155751530795244379110510070198743017112587661548457935047260188914653926618163158400665971338322070616448490818317785197482994497924613066632613716627967724435465341032367327404798846637552943582581748193319733516472541522884366048295656038098456486388590059532936900067449163541245203328672096658850510753993021340300626768835383209269627937353786776767028888562576626250897012352514576498318076266843081447336545463975424397406450157956580630799593495260609543671610450388428753623106368489112908892405844761929643336119195103367644111872402021092924841796204771616542133646074728313562851739170837195288828697110046104588700135671427436706668738450528165956267578900776539752950707993728952501786063473944142006596010645413032570523509117861464831217096691835540560131002652143892088934351663800871190355007914596803788369023803854062833406846737490126074873106700102723934513745578709853315845618204212864491084666266489347587151058058644888013038432452280388290120914570602574356538118519275147550690768990009106875313183856369664409754509369272348574879020202270998173316076028648993159055098531768497080233932941524842865306888022168498070452929464801089904868846334533490156391792794998859384606556689928240383152783283413084577048565730751141494317696663401288703160142070279401709791333788786412734075585973123002931532513630634261926825551822929747100451054142264246776057613790663035145625304036189265495001842858669486455967055060690449520035734506423249891994321364145601006753787286964218140492214576382229460345978083935686171493384628277302808639455950515323092167587510638515860910706752849270864470106793035318533495870958849847711355547156190481151250794091100706718665836721907830528363391311615180061898131975788104907656701984673198827316276516508242791043394591251970210469784215058830142296252983191907320527910942269748813041639940492237267684324741733319613292940669591320733079079200907699245125874963831016018761869413944908582510398895875154499906536061250775190325300383303062985086299784598235221610399800124781565909299629841910324959518280069894065310068021858572304397089443949909526943297320201017709238565357700686378887223814540215194006357671196863564830049670721317961306876399486023993654792492855868605732642069218345207237640472980398205097939309797978904060362834760608561238341611560201191788034486145280159066734204119844979550739615443330639656000528414711049037276630401211987528708700436165340876448959223483907755359892895177600363445325274510842127775911438213517360187472108738487128355161934960279988853396719918779994158077440847311214547576898740780039105494594921020537154283339171993267742902180483862577086067281075013075457304462425917595874953743641778471800298557472199455267512832576196844273439653155119242195138565456324300833277703595583578952933524933469863825304521426165214031629542227198862639716093430455119870478540945342973791671432253414740328968572799043337338369247245152759901634886860426114490243925892270955431122256960250584084078109020947578368016945755651035775429960428726414375939439402357026975910290021521884043893761595154690489114199075106908547362626808760543324300565296259891356076839380836357950221199029808377792403745645735755452747706638852635661008385648951986991496580511023672609933205527574876830443378124988891358172792834825504036229600289331376120906056868005458219100879059748101814175247557697018454587541367869185447264774353907519306000274213905047599131476824061989747974054523051140193175879090052183407620129495844804834472169102850436365776280857349442544652033175345242765872610598365834129086162180051945970364072343406777159257292633940073235182222755481224619934869833922496596847686656399904711619093977645801088267813259630833222942923146143097851008314800115837665807103459118638300824385021436820944438046908433794724486759354858532088795654689556600726280557211466033410258661967593496446875367690339950979324055021981868932304311054588198144938446098635525602058378263283694050141678405441722902634349097765878507844264363631103239972688698922292955163693804630443711491213262092965294915159924310734723678721058452018774369109125834475725449342597655417808509959048479282203352677822363212898328944957127567391892044379409514879712177736795562891962241219689020165390226164688541420923407301658641122137885147446096703963068764219787338085796021086304903497359518287620787772011631392389404931400085478545464365728079057637287106255849957885001946269919313624346391690213924953502137733954206822606025579220558699581447998838971743253861548581396087734630606952162022016584757746969524790602996162310946470248941294681556604688643787684622232107299901275751866826397055254496140126264355146396923136760701131416316991300862768168646476920744994935154317147598065692429396331402672812336534400556920016019289647854360193761522981983638461305335745451273719055991032787348174223124477207413289452259360338172456682675713557768627834670619438600378249430303384851353969751992806448262115580795448755937364385913576858209857860990649114945838768947444683798473091505388798346830928274972787969089966148734675808714431015776625988021300944037038696039165534679716908361034516470549264479292564415091551396637247920966123385544007188846748693670029500668802133588054551413315506047238333615744394858396799651200784558964690601135370447005569971327196627611017219170795332663226294320296448924146547793884055332654023560056476584026202756527734190751484378414016248407036828196956193266062400343502064349936636726353727001466358424225789374914598246334513681404696815343928335273070224881507307788222438305595419345791123960220951435012833240604413847272777292254514919830954134797717847522297589642537164441663253433048418797211085846992632230104914157273785747177695962225678599426555949234562358529843090080972331499884273663551100950364391419584128403821233568251467703878660433256577347988239531320775456561051444890834275257725615617142212347890329110837882860747841047522236714593358252525923282912977727964622962906532542359075005787535487895014566311685011010682794366629730243967150685507851784259034296915144362876966609017882710941063153718240173985908835585092747709563823878513588891268296646879361074263970595587213597839751290527740645118523654913673317306212800074755150910762672667293701584495570740190916786814507608917569293717867443009158736384244915643866720659794129294587124667934006140159367291174857357025549177765602447574625339735349536209952096364283840241235702322952169935219545537999665913496115223860589342507285966922485752354912644537188310594840527260808376871646462132306749318918911866189384962166065523443581773891524918443190976819714333307306784786220973900339481583491205136588983424754305057126277793303750089280225498893229886568917308040482280229751656487037768751921873354483204315383339414529091529859158846451341678192677723996122551591596857086441541884035715218807072082712988027890055002788726123432576062633442083453549624019582868434482557769386578795919391612205101731415232506549414972897913730880439028921474790979562184882474277747884443554649536473517801160557580082543946268241179854594836177979646283769119605293486769709830047295560833937541275563768224884019941295471949407490922710674953818809449453865599873790413187825148376144320032029702482615212758235099663196295041636035387260976471813982245318539108700655512509209994062302467329816673453432736286947155550949084587230928617132805504037034686208753771965207742727743125113283548002445219022955210199914068658499997241933019768918994155961648215250658118202826323031237203380107511042904900817670068588087525961482686538734881503911562431928036331475581171047427229964452312178950360002828384782523142519464894207376681720926672951687262574170184174093886486174275125481819605891194518977061593295759073193475548249101732718761640497202158882545552097445345458328526448041018326904243091321497813812252384832223200434802368313572609455422691263240897791149007904440613233288672297663390552981540993961449958719674225639055051435094777907342521627118103464876643883572325708451651494264568298584395072352238434327845120018193289281699824526273482199439679964670903614762064612469742255398260745083362527895180411718748137104797838338437141839443787346479329226997815736107619447083836686865791827087250346740223496603020598027619283121371206323542196632900729601037074894911382246219758373340370545903669372055184710215357215854085654726876765637460890775866128696411809929636459155677606949890116720039569895085663920633978549803386635198522336197187161933682533327818425124224449674025289383297105139940389727634079491571496024311231511162448637270900718339836174560800901595072846906280999423973528902514697513692519265916936620629414934125876548661925285393040524308411034054256100124664627966304406206628829110153680953156894416200109381483069807086284529640542860075189069168023533867985009420200891541619806661864806913919016562122412643431627164127309517633538148148298927386719247578502694542981518841526915387113736279855200996718726419674650029872396665388771661661452547882145097453011099978768200066633689449211679373477394709111360163540193378041073330943021102130325152808616480927594343751460866277226062248878912983268269079423494849250749955778508892963358400513438094690123891174308471024535848882461190443218187380978369513498641848743789998636942371008831016782912179340533293639808688910530299128117872974559938132510630537391587710053526050790602583756417111128265991759550914863488456062575710795765261228174108111283858471003284810751144242429081729775150236771554981364277133434781805673094371497793840787364004101841416451865541563080622144872766097858828571472466053096456138480724009724244809069463658343944298053852552951692336370401603717648570642288206143531534658975765132968621717929128484539346207343242280339838212066103270563685417884923395029538246634146830174107031535112310005071670047614505002238622410767070577431131295004165728887820698877479159327953432363331147764672236861825317142174001066477043429836884712559099544094727145093899093529073134395624469400267044459241742911767062512265561576967638513442405843486769256647230516179232788668743005621603321578025215824232262997678598295930125068984146930174100897517628679287060303243232621404311043567580792578889718434245135517615782460228128632275439334941073271530331037046115977982116706968541367239167316200901874656854373735499473126276882400820858723010136366624884910292051758977396213431935644962949488192784326369303046498594584685926093591204026947974820577224403420943698711187788390180245815913702010514928852495427553026603586726960275262615791042009380124771996493052350295820301024222378691889889440762707641517842943092221862505840330003043124572341476876124068422529060694672657512779745045910929030711146491049157289817687911559888626027191943438318748641510668952979818800825433000286515190634910491680021317052443028968567210808252412674152678829422703659149896882990423746190699803384589241087161504101354817165571121360021476433111352450140733261292336219182172893827269013403802516787361047732426328708213502396558004910189448198556301740318726923390799167487442745025782447903279516414525873313926828707876394253862051182662718173060493221069682322728488920069702799911234854027100413769595391942296863589254721184850725988314517320170744968759959515473154829118556439391103012645229540078261841580496160712980898436262946774315445447527755960328903980224876544984918334121097525215642546020939822866962145599382798279054329328481850215187855000002967244900135456434800709911196616774251651226742374102933217922369817262335616357287678286401604874603014144089417861247748583074177972512813047872699436970222271954000398432804968320795666496991814046256825677425608142458384469252369311060500619282582653626435285373182199963697125033251699141644667701844488988023256044283649425714884642092961286370331223841716414713207145840218536908167410904824352770554681579399821023724375262536843055472876029389490095377962545597986709988765205384106704670447748073936768651201739940316516887605911949666569222476994959527154553426771513157460452264261722662885305749137820286042085899998036984649478408910179675788179555717316207558276912851834686465541322536861791538667567975534273333334854916777509416914092860281372953891352926792452460828989055811790286085813504898406649921173644621266606234512671333906713802688006422833949826086758489446072730254772973025167769161620765094248013100807475744232806251934199893949242717144219944720177085537724901084100471667009187066480488517123493303573794357113047836173488826966633176737208099978758733224927105140713762594588017406183656470885984859797926238078107741106025622407621896989309668934955867082207050302054060569925753753717217965349622203786803868484871594766919584046789044056595404901777883217911476116983128284732491562102897705764016270152840723178985998042571623266939752037198715860844341483004821961299683391843010479343372283755968438527646429034506735263827059450875605360009888760895073285740612786769967480056168095736768620441260478822798376511343804425045798667496309867939710703578198457060031118310134221848473676360843833194166797431173284469460178376255565591571616242352382078529233296287496045470203668540183117760206998843595473118118124836842524915131473919471374924224519847979832825526972764347817516482754088363488657084234651034640789859700245744883264350300299711321306864834282711134252493599950114552371770838101061604999265258743030729321390149308012619775456317053602498448512152449821438419072856393978066542491163081357079163749105293901621004112620810647539347853622843418579480739517370052375026313234574050690819714805064486918105847189615286063418791936506544076779614143997444019559608165863684414389971839390440708073119886902335683823084018947395100700688326448431482939022256762650209222908448973020200382660805230868083329283366359673774471029123157177277007408639831250434221773854715410749582112902022469342148916848492540150145671474377686610500412437753353373522561526403002658009158000593410384634059640716054350029135899291476286417934918294854289022211904274582582937349469169228963067874192694579195333965965644292689301305751031308648874966764255502058907224338240891346480426143859038303523635482765063893467705403066344501396269464762826693700292984133775506616096754146154390410160103213817485017463781833220882360406706480470602042084159461249715810137311964166423966713753458766439962987117890313048266682682111446921374684822605023383475708016061260757398473215970441760527541374682684979490750219756849296419720147398152037658009540902019451823015291770328104428456552717260147794974500488021940920975391458322374347041660311787138281237019067582529693259164404095696307167521915505872458127892602850959687604267963588010970251683737875987898248495593184169691851123802036093047985872491001026600008275111324384966709219329086773471565552683494698024923342325318951089241195438450984153409078666745358922641733245857727192527592123959669846892201175071060030252745381796535890691580135202341526302548097697850985275857457226774969922701454095581182910610574117269042337797486328436846571537709908874054527429882767710386772392508308490654519521484954092863566718881618820628765696267398381776914701452721487192252356841142080474752196455701992193510451197047202867363076610835482974085873023466329400741054751107973639500072711529333750893525231944806448327868223451309911548104179564784073189557446206727437123553330304929537288143315558244958675464689611057933049582779757840546661848912486615784902176231158193269845250268561348947550280586577584667903145645426983564634301358599192353342916068843263814064405960878616198294179406680722270809009428848207529445194660266735631367729119501532954503578063052640939349276034292979741179325825568862248246069979356417429904297685926908258717091790464742403234200789392277828728649440394549957249867635354883230616185150537598164030176975313366676958981707266967531593768952160988169037430858637067471296708790521706451408469740970385329839226238603433264369857245212293881980684454914357450647122061015436742496961418924457591697085856808966279066968255635603484773294321341360964460782590910953770671353058541818996148956494703238575762243386977592561976297567114273423072144715236821474364938927929974664461998302331626831189091196739147571272095469096901487900954542723654533620048981945150265288335485258985242940315560157795034328871185468320650543788366103945368737355843757980483106528145002247051023346019033561102129967649733296881066862174800458102526087053666809320577299163759806272138840831250982575593854965346225253776948047499052628429491261482989234641529870130310797697782236951000585763070859854551887612981121395830395178142465497433437263465139162312677540088884758842504544566283006425759279744416786957130944924133892060898162920207336127212363096145853656171170739607581855180227182885768691451846797536500631819548807252833469840082965580778623143392032760527324109480218400074183632860868108451701424167910376533126691626096615186748007660722502867523000882010851616171499819380366544201914204312241612078481817924077064892811367048161964012645439909819407528205991955050996263924085809784564550140064713451860210037208093166587491510859619516190252870133869868488915637637114876077048698562018123359174150185266991918565366632375635433136449127310659726591394789647142543707301071029180269919678275805810124211034318690757258047973498672916670146833021937927820425167729620560592579224061891552558084434671566700812953655584371427495702489784141177181973017924543862112192211372114727447920798693253273925694323183061545725342105746369367451067178095254270949514873062993222395699018741548571789209078213646129916714973220003269523934695831401794433466856768932037413635299058618542450195799366939539600238937645461044988162312349000098428019487563371573618672540248848993943788059195992487407714579705439073196894116091679253754665831574308748534273067119132472725112278336473338878242991602534160816233853773230029284529379999519334806258080883844228679092786396321416178416117692404127496014430668187280060514591834913308629648728885480562109118769178811940857864608534646643836653641968074143050774910491921080355388301426789658930246924916002132777405380690510672908850108408078075826497802293525442092684485373853214196422518575405156268521275469714421629446422448834997078160737663080119134659203842129731996900560342808955719979027688818008332712887512757224000118382912870425868943250005989328502259669414775676559696231134755499284299158208815314929510291227885944413947390132451685227924026019528526421673686336359142873205219286223623040481570587783502131187580623994415606583683951589868271651647583854736823096231020787161587642379074358474996415671285651604936018746042478724257811664650201181814760088003116252835178788132629943932664220231233526756004234830927542830510141514832741706763565020325791061837339840172458969884803015870305215562014155395395891658717289804811411164742944263089193051469825584561410992243567777932636664019692776740127260592264353625349136400351199653510844159220886810870932327789064266163806397732308923941703140014845576396286826218699733533223310541592798475867526736433429273002671529845833833891987325149652064971423888858014197757251149596012817096502507235203687452269907244029477024559973017144646923606614085007540870160558815936785489239923113364118280424432747361183858664789274481180770803188011282530258158856134583349085976038440411754689600235855816993786666763979626304215877841049624078495935901124249960525383968102321609871793301703985198723149348609564926475042162772934782120129632371599461596709029330171973927957427299427483543506477852173057227229263212868644993355329889448255050923330425657461847906781429016686790667486174233643859514356464270125166191929755274136003473510323752900193199603655961232178462402947011773373127561600086635141213244290757189028454594440634744522842911419472792264331799202299782903173377640691699197461071042554550890739444787117957336923024814701529197059975075480918688154365954048996862826806416241798388878820465381563276540606612094720696257491026440899912554378262178211828504697526506999429001079787424107069340360046065800414104937307401235161716087621416856244064541494954596534082844739821809058603930536188187684788531676192039737146713277020158680893083117367733781259252803045949330675725502721003219335337330636031056229417569538903911354685957101361143243669150737123705620013053781134849969493782099405311730354626738546633290401700843192648615964919133139149009351928932803075879962232673606914885829604869758431671913301707284223598685534437553517384077950842405004249001118881079177450098161105603497222913014068217722762927760201625489461858619781692402241549945268661182720680851617668446161345484772582825163924320348757393564548081301840358067862876512585921877482798196037545803673959301938310206857064803577279088729013832097801364326415648019514750784866927993006671256030773634901699313574763456789001234127681084537727836837155783570979961377106871699526770141432694735275685325546819985442110488707888563512845260935749472381027009160514911508631025590320567829405789272244987472786897471160642586125135295252152692510868916939122191510893065345939427395871298692720642161733885477623685253444596287996553295806721954479842574757345335146801149827086528806867084406571544648922324106090779830751595296029359521175741704239266695944731046541160713614681502056265745551833119664104305564386859909524572344615416468970002445160787707213800953911874706776449399856165358654436648577428595505823801001888276443841355175875083911743232998101956204946694260369834732629781671260694689300397130698332373761875195293964301019090776975828426839436108053963230869788367706863181260801688314167362241563665804004541907865113546600089867330417484232570665042410922471402236417163816787047762343422430787460676919780404350643443096330023030824303699810220358515031550770505334255969563299303111880033817117278110048437033414900446960206574541557340060596304602411514737451935274043336248598154561570195717413304804809410604716609190524868720762829606313630685700453113489990351323652318347778969295726923995315585850454350492269290016871496992727574997326254053009639989522454837256837603268529593257478910908912442945952910791080501201958087857444221708093512193913964046392549406945086007795381409406081290607147420571119112579717585874387364777915989522031614942124810238775202556458881098799276703042524187493897552072212856810911120266809504843394512623081532955274704983595143128132206955369611065122032434769161032086759076508700232000525207297595328680729423322974725446060795853570978892334081641174893103439283734157720234106766173760593163701597397543093089929743368438930325450103448022018608793314801431613463594434117704754657295224818976489177741436191792562469894851691907214446792706734675844969199645234310414466966429248665320628838992015324313188921610489932750224100045195609595748835520209151971166640368847721527594818389433321710433721189522662608950003172677994015409651325155628802680170840277699157997006009386333749659687400954163041365376048913734941241231942687065671734386928105530968298488630568538462584826141841901241552155601514426198922821787594954311497869932358137093726555809578833855866193309880263100547568888556519612191498618379557025973010036982122449468991004172977733945428767998311605940232643996018129711626856831782858188663936970615061821965830086090665618916743865910898941795186766819146639997682147549044998793574063556960151258062515588587401064741542419402347234085512524601225822214150654003362542741108035738319258202064764000845307369037890060974089460778561710061068562064998290201286163860268265948053550299729729811239758544103358755655791178797941574711533856314657416168586536662146961966482189571784314972745414842568385500350137528497525105340191389817165957383481075464164529467772655329810886052534030294963689205356621830554334693447640057795461491116549827802893206456781921441738425484737617849894060006455947313040567344460796303288707760980969907521593221652970321254439446149952257990726207257162036778626938356676801625215158218403543122189235402959672797180858106286361316579890888704728643210654047988017999351764897183284768055094473288591765480732709766863110541615416079386425220991546993073625727496529393956315424027256163129309249657003427545877484593722981822364996770085295472903680280315412538178742974351198036042467871640184698322196560974194684366861948163212310859469325008362198288775542877627823239818890830121870835045694043910181676943885049086649698282650603906387611544905799410857658904891635468956308325106981372707767078777520368386542220996728113590865936019661342283785999023137371291600620158200055488684524821257887683693863567638922133724070356475642258593539928884538126965457839549412170774171868518636638641987799060642350778920437394751271532241213680795049932494204756226605521557760218105453132796678193641235312290918762602708215523210574883208570659976996059954074417719713697914185630246807071741035714456999905764260361673772402506166754161488880253331034092070664165603683204337575875448789495815129765282733904200707984504192913686755508446104259959037946882889110350265033320141641087542215296946965763052511232620351011229886097062860449686472505188057337289264228579429903607345710789127971051366133388378407650754603249674120148319626940926263017213709535401880440249684182990594897723477626160424674305974445677364128210015102771502800546347280202664660948271160737315777185008622341233087625197755049471482956417878304429552186245252626240945739929295304405299556108065525666854050272690257363425507466370916980299578391289208300678475034075769411644162839246676009671054931421594610646004127069062994272814337357285544056937358129225717671194983952822483667414137714452805472828184582400772847788428408521532014120826048666192479743593563434115352479774390068530201683107753125940398292320098019075584134749462019533738301104234580069775101495886111375518690150330990472153275010608998430698956584974607669546545065957381396567206213096177517761242322895413580285757169164351050199705599263209148510682614669790298073249840850115761206186198936472798189561951075455192470728406860638116514921994606327228512303800978149354336455257594788575804502231600339014244736216765272256886899166999574093484150517876044379040221597450009425491905114523586938403065271083057293668991553690787882310227664435613025238316764699299535553085993798555225903640808586358709339844507713969176861407621169391634579160209203252381406527570103418689121315535488717161936632945673371049023887915129090326571950779679071522565830355959486768286105285322638976648445614919024428924104788382803528550437645909102620384638160689454571574890880124675131849641795691404950862660645239965036441212256842196829443713698979461255934144022340346262265637659807075478743512643203979097157233077745458800925335574079027240371880941424466021729274949050871578160572178714117621532474828715434128890633563537678028625314735226805205313736384244948307654380967658330916037281547914000410332755754736294099762812502857047247097396506707669889455446749920819971240411708182712501644778621215932404987280499132508302584860722602509976244832120128177845876919029101530403261033778681457767505398335955246626387100121216143677310159661989182372729286504177902704102109536458989641759042032769901259769779022513345633094832875431969406221756448265435847740821364626942126393444916668294306598377462915365403718670943806821774711681709599592909246173683475519365732926551036934419074210460810448125808983421174159439740381174151598345184630055103065455127403247684559610654020512602440565927873851572575480756451357867561008022852573119263561723995564443852741218173714249661330696340773471426435402640885893476301684663711948563416168327425338021188536577898957254179821526558196676504334148982015299446247828934685302086237592518962198204148062941820878123197958311763198245998991491590714075273672578736076620546013062981201280508742929269698665497853037228482454850161347816628120887872388023395768568778885895274609702024279950261933696285030805090461142077834162214987330018714251141280001292500008224325345245217705786379345799348496328706179473645009992064376250201302456247598712541534827362831416724976795056366185113622739853006237760935841220843353496929425958105696807483661454905757569090598363437017969963461826749466215079284781848842451083272519339396683460691819436264206592920936225020478444541738434186791803679005783140410637428231325097328972102812245950417781102398095242395099390825621275118821139149328303959160252502855338885351565506194229579537408919082481380663368193043756292127017515736617399653435407430572829195667581778201494425127693298290238530746568136871993586910507185879264231338493453438304688978834566974746666940958596282655565137803401615211645316089116061785572685223954312472272876393548538609880657682445929819604053245983371911017659115104951773454544857900196426256015277065569727405034151527110610621499447675118454092224161957239421745305485065751463415524562968254862344200132881772886165227712375695541044241439056235298446996808408679315563617403031333551302184175419885920534135081054381606143120493924077793476318064464865219961683513675746418531506874428974008786857968682078218617674099006016383092670664860537552921462187538641427063622939213640420748440935319810067583536095971977975403692456110735751575651175449155427272371204262964868646661376325829640580987445136067600442343745215951416314463092684507523147670861054704551347160685462092724900804488263494116031134848820098553280004881724784603399914934406129925146152150026781074325980326453762334892043133580702166142859400770117650592992865860273113181075263739780710407652494364738630542282011708120927232060083318358720469653168944628990420286684489428773502381002350533444104199703755110054734225077331968180098375390284398864960344771862268604836818635464415235004748797052916517161761659346161477112235003211202785257621971053177678475146752350212247526479727691084125541818720230079355087371087019851124519630671904690572461910144196133841974039194959789644237598647634588993390499990961301142667226526779376859617859889288293009804577728085679412210222693377182725073613383404315843685963006335079765725227239428241899936827094374123915890634619416539324133465136558075848727310164644141831070520799581424729348295720351242649778372662157278356471191629777233893742375904606290201738371026752258319827279957686698768949982253177180468372940264273965209017088734892596596446935420674420444632898606192426659228243673596422235505244034556471745693795162802019271059010675655543889441434681464265494220715595940631869836820617505595830824673266612128346522133818613842552799057845571112947792937417970962902851334617754269204581582102074854989226799247053197814140570687610749232580620496225690699742696871915668000994009058017579529751109314717823971155750633446499468485778175624714385602315856289829439620849317496789688064919233934463981645120785328653197499699001294942033587680316839014808644437476899174556136658756846924019989665982712955256384189056790676413410212309325178232764665636726464194299963596089161779362050240303953260411321344913601272146524309803087297678528414579870300460303500083127165455774268598772243345966804809519765298567528489004000711553419789119217484117588856512124006535616073167277001677203435858417658648682127734815580058915129229413268319779137269505656098016997153763103875200713213766487008627506996797576260181225739410037837792258384308412911502172511125351095747481364190368334324291244272270965710286403466795611898661204184039251781943999352152545812896386794092663503099630574456229254007622901519314977414162039701289912713276707317094069308232697744926497924105459717318676398578206260576323072695127931584615571330389638966063484117425522261666620743520803086768612647522043428699699676093430098014127607922003215884565644069069985922608716974222798470993751476348895035852376380517525155897109572359701268096371377180938103378081864325628213858076861479342892335446590103657802153680553886975555580179693239135871094202971877098971847500019250323282078282785352335382415210783009991784436599077768242813208665206910202617089205897261723178095082440769510424530949387736843511008023259274069652388537913226130305378090312845029698312113721562164994048990476486404409781060519524156436110055304547977994910349981786535870782068949233382557528706043241252871456197612932793698037748601327661094613086006935280756948831574707793396820826405556817757786037367815160911792997532768217769241015201982019765912342514369302964578429446030963313987008493377748179301599762643831062800751216914425285986518495883885004501565136276267794342155431229712692022897004383261646587283394961297237025161595791355274276811959585132206524669235691476344933859593316066964557753840290039063669082587254866508115053452631472613116317938307937228874763171039625177847393933947565632707496953395306723534119404685276157185018378300061439706498095960639396568903967153180812513027280344345606096544527109846289075371615082162367903674364747163963430881084444325153730067561467523498411473016109118666507731473074442299165528999819030713216587180060022821320245043282086907544227473010397106194432511824576109152301462809237070881696982862728135133643303995967184456031311296103153789876476363959395454985136044397278800060766381371767556391996184829434834457959913468942263493541637211337015542933114346366151627531827716735981943360497320657769810998538702391777941886753381685202807724419302562004565058724135107882788305943318880702688085394858878105915261205723445724415674409416378700198212458822705607903415903308953760477074452928594153088236471503266534962043361119837313438674007947343766383455400362352209637377147419241618075105339672094759823735851105302044005998775180807102762219411042966196498825148030313470265104446165615212772360582025520698734132933825286983245563823939125327940489750916694916825760757851812351684735407961621094317974764122538538416346740376059396891132735584672011138559323020401900656902164356331190713827263154207038246922515744830427316884026062055477866172331617746043901895797280050449698323980692817763690255703097502724400617856726817556445028727761337512921495597897075147827093022424440943744164754582098439534644189261575241703731640267136790882412157829526468253006989877598680408890576061400651121418220875004399720181909426614788127795256337742607877320896230062346196278347069086259310457876491625200443922508995609881252977074353456566220834722554984197107315042542126144278620257863319486261607959173142364334224310851655620026261307639068209214761993413801888468481738007573529543274535402853289915172128981556647330124874661560560591379531697628593753053584849595578829760582490859429985235912392608826839088258259083805794008957073109144253130065726865104681507971312287010510873555161010350776327340043302851976495501148456204561795153664869871567853976449469006988452592400346758570035800984063489508320218497909860357582875518356445376596868289851630527481908681268721165894537937417745991512021334259383488394049268135008626426474829113639126848596757952833871170822249211371417782423836026038595820869176807748730935336318917135324212295817661475268518334275790138708719884918704251210795779277491572190407192506481191546301405247748862387663281362067664980492754547162632172460049851430310180178632305570877903148748084848055260359413452299599021874413703644452675147580113028772031581754981398147540492256427119355457549588665563728583080376638092526622510843112479639991099611942939348807161826886553567453574363196587519261739461218724565022298501261824633822527345123324635109203190949294196330513814794424836715933202269944422147784841871909797916733177094962255219769239734885658448349913324917023987786634022248533294371925993623754706586487703590059871374812709536262533711988168646338788641336736005745827431619448698082130648217949667257715403002266200205271936716128817868434714705653056158719773516305832119657525486291628584858803597556121839516091461604546770169572891187128733583637237756673803505066618071512244422666215939438170458825940312676638720697281589954033652229833207438854592659876439593502979022509162446655735660399805454883588188746803891464119810946116955215138481338321340750597163661563136093246598088678881767874092421984176051645771165677216721350610934551469132312593664453567858330415567744727302636628941676985985253901886751494923657495002767732598183353895455542731803083702707037966783683718785577641732551936674030560576682508302885618134385598380298738618356694094573170354920568957012292840042743852881328675380540367808493670451976346168879589146916007040468040351919211122312346261798099413184914190018075925277560307428922532659420629117432362610685286155414813721958561619762952732368609716117355092789576923416181656857204022492390154506497345496977506319479334206058691115313008590230550377572232297375470869930790455792633654599885466854312843660529252321013315026934893229513679178388625853528337800229943842842649466124499391540549036764499223324940793044734655192850095634988747054723637846808280606482284517200543500975218748604262578041564241039003279853778825106749904507275774466869982617959814401915946867662726257020487844292915437624593636165517680393502315630549528439440690730585885993399151254209219790033500580662029277951911363559534812958933276466355165429978426687155210176053971232293140121746293312164931297120637469573602442005041295968338508451461886490425846717496141227764546723039841539461103713311175919647516820421713747143265294166894820957914838067079274099850267628890062239365506224092041187154185066155832172551919292169657866945988437637609811921772633695889966691020754906076438755391898434456257567247396331256822132959190772933695610989472012781922286772018613984489622551348072506583770496709359849972846537735498136988072690198523056684091838204081822207309894834618307587722671151553884172206052503954064388750547035994836311663722709287306791215874768575052987641581055318439069398584344532779808294149816815183139661012780511451629757790184516737344575702216990608637016467967503894668443998849040680673468382058038195711030627045758186411890245164433110450603339221690055361091022590679923969918175032734619166343697482390618442022379822571006285376833210594966846644333779849908550236839750878837787555170695604918366792854657955191859032942131981709246521217859963053441154493822758253846929479697776997696775587736208482853006046415207675075328740821050940452749127072796881713404323678260244695604969752311101484196137173956656723333250245943240528705486034279098436227153432882566691183087019997865060081339014371904674212274800335044071338112109531389674088806469128004106466630523379074400934500784831103298606427010035957584730364180506434122420814274759244586306285373843283704429976256843496970174919588750562838405699402824579551687088630174960273437680038229842044704785408492517032407825311123470165498252109745074158591470818768877363168613201468116212327794458816902953264608844101416053993530081998578095948837190265921798339535151246743049945478152395898242426989724751979549654993716855280931798527806284123619430734917050428111097197732205825785358474193063066671692152864581114321414325410321364758872940518708364847797953138383657061759611307995418857063268785874587950310783923061566005077639323342110079977891535805068003180097085272096657910057159517612861542237827791849446528429518083251126713273988663029594810512194593653879515299663535098116430237585299053154593501131924236808466694165314107771926954011221978925814896281282649322405880857034074516631391539292667330714654023093208012062908295734276996880571958389525871744612459884296836312258769248820981615236947001660094640813533853384244174287099076687892492152739398655634380272353699600492763968793984200469861944794690318753028600696393770499024126693431277439638925080488587619721703224013406295175375093459232432231046518424393104291877256871232105318195209260905246129886605041356658839980129788166396610116525424059974203538343883661588036449852290432810748815638198294048509361438342044177395298011369132344738413085936092442060301625746450563641076323957227670257736252467415133389609340125737163946988674531184621859915781337547942786098848941605309391468471479724647575779344632059841544496913587369324714642004387208580045754035592351903466726738066961826040649036774432446045539773446392416354090720020321179321825167623463612934155982202768877969097862684492067166563673690547660470848831296797172867333241109949075395688185975464028537584969434304410205430652931652272417868525719007759906129944149284339005240359436487986310878787057048034222931485974444558915225221463408637256706950789531096994305505717099732476792629402168635000208409116228557880048392750514364494409450577606445877763649471670201658154529155878176088354878725032283774796386381929033571574917084905412735788134551129332132192838412123853877023243002597363975015538754409746825205269365671443525350874083594115037234783529544390533853928644275971223606804286449722528559362299154209960497489295220020757996400706053788736767453654647566837368440912750847568784071061707633748753219330902487828179562514564475147907757368722436829345785841763103960152485131305152787708082288467176879462674541473051656024988067412451932328522555611254900473616755114516760553330310595968192415340584275748907496456637323190993398906826609326319412079826929168945221622913600976735284205665348995343345029376983397468805801465667850824844957929858177643929289184566903613523835593550928027023204385274292153828986527618334629669214498300340448809274526672553829886818847926190626481291625043579605443822068211691419615941946393537494491419994156520802571155283795777568182792378286431966424786343387033394067120192626963244857674701625699413444386132376242065147073011617663826232205776864412414233606209760776149678126086041593545486001246282735584824393324600267578773235441169866753151579309743109099811656287007385271421720744924086070384155912271518526821408688038884982404812246481174509606523069610505011227527742111178324082457143693865504633997687727268338456616746442954510654218601986560900971608081416601109578318190671102347472537534204583362636975707248733973153494862825759197279960607814192748733596708416093488712457531520908244096035912300047629462215627751887299483229455741167306271029718178845983337182031596081879959962946185597861162586705322609111125188108465360521658733747023555330069093286323337691306234222772137638632098937029843766239111283308392328489213527356499654732510433291108670483434921750828343593304205837354105573083295222367498690971103852868648623455270315553065966657733501492810561764446392450824075164681168350721759764384771630426857778753129957972715839597753653920192968667247128963399685937679826256490076646306703742687249620964615907326092245288051555461625903631520210150763469084946198717748969118338045098072850726288968054856455204386910044925888334852470517503462958494617562896918153674750789312531790239551670274511356903491744963014196875983983811629493538150424737824356373488602651854105233150977756793754590278921165078464315016078172100879556801785821306508033783601656210920302536533982711636717625085076161283573902988650676785594076068050626374077435712390971716548401803639684942449713362475647795107303028624140703956439647760378049679215103724993407639023658110142428510838815595400455842618233995948525874798432685238624734867181461264306716986481119201151335310618066484195830452067461380424617904690402588864975999348953532112745848920668898636666547334602010172768927509547966542665998739456139379574763589372949251572757093511048364475156306796184442383699221543888576112519021733134936940345634731634258508470691419944819597948975010510241379274780762414524021367884900119179726622859067437008970430860003214685215884671207958728532759809184907141572764506244171394262462401118701977793898774151148860865610727906391165465955362066063991348228235605860024878170339377833900161465682150655362685558631481370559479258513313736805832063843209321329502982905153485271490992261297202485116044486553162808203552340462116000470416626944906046573623553375972154200476631557376042414466696776956371010970414389255701117724183841971263055771136139104350628434468631296613423649853103303901215239926132284465702762998673462015780898177302662190683221250458371112502286201075733435750898422180315299560339062173713298041612458818592898749685891438785987141509935833064437131013295447617509878559641556587219958375804701257084782635191806596987179969637748474159528419195777698501409144184744145824948946792543435622562816663729177148747601176273907186787262608828411035665898746035285204060875638676006596116013101210304874225392268523436344018596621056711920878198525957419271419651077669735702316388491979691248976980430255324133123402810435263208848062114429721449392231831267482001663198707231466653031327644278406432873337493184624045162463090566486704615101503494029297322831659258764887746479963006364822262778633328877267005166575800354750369206921418481970887318876107530167899339710977096536610081197598089920341588860379586413870346934205586912729692075132027960819255443450200163883678326991453686916332731111749185016860005880849365395294522530857556001513706261743696943328450196884251614722247699341504096788110684001261016555078788805525417406839905013582358860108797890525880271421114058011641788258489116845488654742011159406353531242755112953727900819084074307592363696505393287902896157105626769705553145414440644295172545803953539235823250019460884496835095016846146568755142601444597173356692138389388514044805440300387929939589574707837740329902045259204126729388206189605193118472751453324011259213361461234892443330734594783485543007566813630278504591983528729491733491944622067390924155239541958947153236131064154902145429815278496849194372489648276472019321692058894054155864897068755932457168211175254420933109256432155003403513930111447850308866911712348921940172656267270073453814970113992510795230449648783001379396328740817821202175321509885768979940683364203063819367241255253744589744214921105064782505838697672139932368658271044133891874628731685301133560473300817562973995912707248847131979856672322181009472843525368773896095369139648721800349571428184795019336752361193248787062714887048248132816229145068948621416926594319162314211350288565246855249061265241193927722867247508856179618654307319755649739804992693873600206816874934822544128933011703184544469128432281040817972063995880101040823580783122170533372582049892527701364810171076105522341583642691018568912037762972969077510130558822675775334022341668154284745950861535144688360558559889122857693110869652198264547633122664797748669570871665245306054984406271517535963180999209712171816325965547129745174401981084595446725319635484282484635444227020034626902843411313906395710479563023714542233494787528795974204904108234262012104871373969481340148544484467241272984286637834896462603082304871732046204465173646375789116055820220516758092264712382833295843111864069177494335502582686816931151412898223439145258718955475385669375533423319316238528303140682881482513234847593566989915261975795448854430960795213758041219904764433673237000094742811654369036426829338111587669766895986913289212972291285700174419339182487802020771312199557788983444314227739514858509317640721386024250600401100679193018196418610962447444131057766326593303336600197923832068595231078037310045084415846722151749178830333957892683230146587687745283712522458506216626891961939150036056248887555548373236553283009210494455177496167779644963721984746814787840089575017730656784339786303680362779336553394241375958883187376624873976520046480068217430575902442031616159535064465440394993452479318143015129760778152026372223603719291945987370658416622058527305929883947652926194753537677955934353480929694665248011327944293537516091906965476979847739114791027267481325883492036865187237367495469777458191465633243944782829248257102425217497261688550202556112080418606526411759932934457500904672184947726121697121384343613982569649466609094888808777780033623876071319153575566355116468512678530065829897425311482940213570692210003432014264949611253152945621641411739089980396124044147126295900666817825377300041373024393982826480762093884683154519133098492497072805678620798090499201522523068989963188799383126954708386476135820159510481951082692417522348178572379731954510129007004386973639946514631759272119315179609303453639313118321410390899366453353271516619956664293714004513608005420068225697428462217783879617054635416766916252296326213879600992422720808877883120038057580757650968064982577960202208213079711757537166142583269786951701991410679901893525090909502939596198612373403256210352933074485187705515509720652070615246056526118035368232846080851335298204453275769474395043130565276718486574356909334606272203638157439505446848397406319707221377289091945268773543986593879764617768682906786538512203666338837611058077131961347451169461990727190311624572496089751418145978688607405891216424241166958264742288020442773796630011004270568118137071647968909458156129834551238390254948085620538439536142323101457193841321567087891481743696601295027594359169318350242653003716546521804342219504990932421738406744788120183961808134252945039921547298586072091493955088058494355868908003476311372958611689556662675575316031904301066120541789759658717140260592302351446797928650242637974006571324527850953489727643522373899982768417972194085807584557732955078534866076701442881191402883606319844679813181156406726791409723069717369520834351835716020419563320155505701997395339866087423244324141317637030465385572034412039964271234054470623792470671710229177445522212451946173251744107665443873571362159705779816850873270885940793712433935787008261721835143711454000979692080099590645865108620686651362370331967623496587004197417821578701192097231037488378177594817525846720225785688498884178507225866772924658787469249562282450621779218790890050507801739181820498069203651639281116041858403900210272461196270402221106992339575086882678321763245133948333775048549103759544768453183007041379260886690422353565100278005078011067788382911377186830042288263463780093741010723385447336168074484071106817804135467607197433780770907560662240480685356326813951529950651723506659785528642798307043815598202209588241226934382328874433246818509317950545489745348845619430920675602789854867338535215870279272359402203531411377920554767016631903035620332916402286093871283969224418806321326882254043013961683370588636053286814853118296044672422965505348107712300396499918644468588502262588895606745265597070933123020447930682655331986085317857746747760352779099354951821275834342865004093723378312446335133357504938571313664772497560158853547949385213721280920486627314795362934765278644982016508580154917196462346143712155510320240318484830809098383872035454726113764913328632919722074635820816928704736747042851707417803630240558916578168508386731119153049284579240569453298390794720070751797768209925442083189208692997742779703002572393031546139181638932557065593246188206260565665188423584925062824982597785959863567409697008971742737823386639596289733549715642467246617329365943520033318581212415429260820667413979908503478476006383802316522814976669606113514762730561731015727986597187618672563674257146789254277801286532824168356851278034940856350311343651096002583741957801849250057410127074526858009828785418705241518559710272764381046568479156505703589305251006306741356899305154746433811655339799234578584713870049778362598384130928709929752089884121585398077573249374223585323767899146368374050328492317546859483806707176957098376268449184957770294459059666570482360405193234965710650207578959688022748422810925598167609783528766065348902675576326049444508489254649171879513317568336194088441505725917443069774893567245105371815513547986688788364507913071000112558414336087940770239920944778150728733309208836148979773106440586076339819155220880062840737936805225118922363195499596103750387316221139461517093424057699552032040038871204046016449576272761389747244826177771808596462820137887124482642270954166487708018246972520490849284625242580719834281571635420008231920458428868080521377041655847863848576449867696721002366789396496585639560956744206667142176473958489269792643666620431473546859768270179983997639143991816224482722739947371699937842192540904044007269621806938512096693417949598116568672552200325880262881481109977461454937138824778166401536866885871600660319875646374827990688080641819011578435250258852784857512346418198016596896584536851348324218874717359965213981110597219853762165664347644970192192420487431941874638303934245530610811125551257981978702947368979301359369853215430806846068792256833702840766851155878072288612599569187203123924394612414531783819324084437902706597935603086126994966028113302933944496264011588276817658818263256572528521363313692192171697411446529322773367353880707376426749548371504171115862359577043562549879784010118918002850999209491485998106990427278337943264093867922669366262463043587734881309489091567749911127393985192530178939656737946412611543925006341952602111421975599318497950165241772158719940505470721612511369439585011476056757849725225686529286107773774213804861934430665713890469558322902557584061183115337145378568101978439167763005684704297370466947829242747186434363640347077952971364238091734351030518757380374010649858220235433947791692503175809994677905049993564824153096910613196999957355446415177949794316474483298553816517921273785887299599377504546276449732882374134195380544144716132317355132187257559725302848282532009739212036534843083590272157063993047116730476832252222879284114795096932301395227245724422710338869865525914117523821814847098988112898574441879245529398444555970129662187669917988831011650812563583838329458588407731632323791762131951920410204767696587970079233625203801035498683255609814906312821035841566090284914417884726089172730509791476918254194027727404040661507945381530652285569891118610723256021216110404353190247684500004264739372111885209481879843004454030312935544731668292721172660228164139855996795672560986223163302167654941479878764856813224181402292850411537678015705419244736617257263640537261744197215372461491533977088400263539962537770394926181595569881060982734837319741317955564077905372849000978617482231707807818744988904057765606389359860648236234448599781772145908588315431872159873565214856437930234316157066943928990972014001260714974948206470526829087502607573133377858298023316559011758373708826080829512292093769626051640982307771635074925134404608973185573595470206891750074941594103809749660471340995867525147939802129314423938677436603498288073479593702154704732117276367942076800874306667472755603060980908390637595068021397575224766995789837026492893448567679138912864624084198422857129195487579369497731073843613868658375010860474334586210615269264726080469280087823922501338834878948248331243034892735284508775304062130235392542479150916586690898039911857037549958246794215071151494178522183696055350360981350935718077528774590858015200615025134506183169700491478102026886410574013167399845772557051005899458744818905773953568748698621651149433323733040592569922046298720785075587092541624325225552600819425780566547283483880641337626070722536733213043531017892281455868521165578721212912796885341575914995588981025313399934484982341996190252760321182435002154714590160336867553546900698435254255393598629905625020546385997128411244006419613687587729419729495506257094668691360279847497947601872824183337911228807430916970051707773537403219884403918347454269814310445748848674423559582578225481874448429156535880973021469925046518201931965967900762362501758912510591278559650457986831410465599166373589669163749604961596238766455490336118259969869460510046602223218224439846556704866151391104103840570652464423324289077076225404318352450738340608095531769404315061456986747495004024043141086657275000861486383477499956231310821125156562587081992708234009247254513176733550546020928211371849047717654454561419122634230366727691036549156336932388403426726818552777057342383520656985518488004259170354299271885716149526097675036200438893697034477578666446938128695454665367611907453919810589748392987324175770953937509931680757283432015278070826311611618121940710904916395932423843656614397987021546496471791947192565566663385850738376139824566947341786939440374383363107310466596038759833515333149682362555375366251005383995175359203610709231785741667512574407740626048435735136463103175671966717870196662914271593623006773040916393071483665582222359865638225918382842696650325883415476812960635001884620031429529135405992110194545897360633220800860716356639464385318062508847326825901267428582990878432788436500474814907220455688440710600861968518742407346452070003784679637443089098672659564885930738412622017804211373879101364634131629426685612067351815999814407308826764434909322434511519658336844368980154694741572781587006102413023151056977889822911368042112259125055051926991934410002599811975260697446453224536422440332389314176038870051496227915988623720289988749458223824673496959163594994266342462225683460516301804903806509898442427797844927662034208405527230340250110575365485500260111721998417146764834853005882866683324648337868825497620221323268244827621626935176656669484250618690602302129028972921047018570322292845899067612006672710630599262352689143453827852785614103744054040781584942117905688607447471109548588198310975035299529496916422136673271245497265924047596555528060880678163419528299222725449413572051365914780648984280239823238229679267841530689099620620991902553129485411223323157875386411577184962286060035753501058356839683716667952812452614732970996560659496367412864848603807036518567180055649552854070418522267206873780678788718295641413912138763167259578727547999357785966800518082745081354497212668714950831463619161232628606874532246494475936648793114181351907004739550517873402363684526683443725791945945614545934963865835025780708365182231477140512988257002893348709862392236604985410709293204672630918494472999386511326791938607652294315776232094578626613983724294387160426232244813333096349476354030637585993604392944009007673349713416788515621057898042555987394985271658510379218645029012104292185811242386042885319748197833213671200405910301031352032141642459895515110795231838992284678841503604891803359364939018165369871834916253860376003531232354988990521655274347809341553595858073870114535759161298024455680538427293239398047644270507861702051021522136130374687871494180990213848493383228542812553194466412639397603423624051496418914143811637920284890773295320873934064596598844680608883009274626208619013668819221627308989698897300490513225916742710870604678980832940222747917389344802897862356695736878221942044601670420970726221606401533992750852585963521354861279746912948677353099314536911134705470872982092265752893365664419889202401231044075463132676034912851316076991416857454282778917483820430837977187650384995726110338808382280169364095266371693209676949928913023954026081267992913391041024393894413234982340513737665335778839262647286750315148271575456994554811192718861906101380121455426443535400831466298034807848778229931225823725296195850285923073554157222113213072646790519723872578906720137866247361806218790158766286623090315572346887872531204975564693901614118208780146984332635159201002717497293011572059859406652014194528735707143820736291171385979484749108968853849514067191747999399063280835522529524874363815214471412680291252093346775789297813375481966199607780250226405148234060664285159380138550604566712608537600037988478813406686692029352397718897210635941413743236306658319755385779685678141501659128027600081576797269925647877578222016452411685012027168793491914041071076347044627703373709715632047273991454390891213312214527307752134168660212239401498084036576666700521116141756184545349582669783428099708068180944551078521930451179667987685239060990316240535851387939256065375708346505664534581856154708004838789912269301237468007710465545738618650996106366778265816974267901246108345294205884214034471032032022873907671041054603412505086664132172869474368969905206105043401399314671008170501648518470237162855949922147354158419881950056131455536229794713105516533589986342818865732761691843381648317832862918143382061670278106469215360266095683206300179220033248609376730126292915804879976746994533388266998598903175338657128028693968637179367095886503759123961622737259663415201686247797505506502719687542146990521868058971592856075037316684049923923143475126028166653100723585923183326782095278407913759399230452610760398410985268862135916602043706302147740968629448064082425792501434685449779179168482414730281810423415832397415583076601559709279953234754182180768109636269925356452189538991206666971436012396511192762995240222855920522609601373399764334032252560531139576479840263154574999396316665852847480688080279636305187050474444168674020470626851386860120002633331521392295073404821900640513094552159019489864996780761927702740639747321781024391064142520506783327279312931770383573075301647709940243154733772947019317292828307105854613132011636825918736687424043645861735645503157153385314394314709029442996886364495647522335981682654327944600867481681455839234577921896218420976458774530177355446678006617725468152881364381977830987622574345681655060797986988640657328172806722338938862490484475284801612279744950981597108207188874646042486689621036423942488886571693860967226202855534240371508700037260870550381919515447075923826790172030473220027536996601836469418051431565655242647807663982469637683138246245151487512325546531322665731335546346094932317092269102934203361365310948400769878024023264270608325823266275556728818709484063308470618670612977008831918738546404662108168321692353626628421438743161450502573375568878017390135659265884839990022202091262715446311382622534211869390465822475967541683168329410417496096951747147476404157282000247321840126287597679890354999216486513185983866859346506473668526034932444113131237977729824307571923894231592139180552624555939664601085751888314457236989918990496074061507522747765472862005241066378971030516494199696096376562789148282778302829002911723009033864173434368869046418553514630324812069534427474053830854205911482733807715318890124820789216091971859324743360371771706411052768511949617717116511460571405344265399799492872589405661682466158003657973142488885497981875621896999927049790767382963936260672637200156554830257248481384031681080465588702723938213147292073121295961155746294189903716326780947110890645428547970265163777623528680354819271148127420931637901182965302506592047822434639347377934174536751874119270846805948344447095619431310569389220806353218500800091489435266564533045209699484993352722487099759896896358337716665543962831234813224020172802027085616320371446454544340050808513467484953181524241382698939123796153770009642832606768093516961681773964100749283986322286800818226219852404915482218134689414223314282255208555489582316424406275116470849047002234197499670370959405950307259173427283189052326733116313165760886261480844594546481453615631872705148968185532549868940148883424131408034674565040337479920797349145820893878614016430491874687388500330078686743742932683949988071263372918020795013097370951098949101759767687745305418143236699738816740459883380186606896378412089359689550564780573940731949783363168456321527714724860808450142771843278681798244483044462923365096056199644384589388548820329865628728465941939492284947205863266851300990147667888767322205536652508117801823221872060692232798317518987948330281017732732788054704052197087184583023718390200591647622945409175873217202052026573194202873539130813536233116224925794889346213539349569158649761296271409124954021407332454102127922133954601653625158181031614748689566036315899671282625333234819343740464646014143956515883807293642041332948033181109931103851593477137384474390439554784687265389485611636976503632267759857694180652773567016021970065244555683156762671471609506235125886445035217715622780292167772318203828983905044747924283876555507053240501996548435893909647383250847077489486139034867355353826054923024997398547430719181590873649170718284192984252215346225666943585225846094793523603640345765745202085604140063918939113093425389670700965248986029980968165432774869237206938771801050250719485616868376991291257563180814527283098585230309394785353424017243592867713482966910504073134168791503550062400127054988907783009117328626339907171056508312923407619289047531878172199471705265957471429581512437247920404867840542744283497837757634366609569146621224090156904611841694668001585823105428368484525412686138943990116767597201779985100251321325670706091983797240540432243185856377155294688333052320201329079140383264767851603177689526191446185682823301892674229653532781691625142518368998867238511182232478643055635826262337695148240790435720073309397031143117862194490495303524449596753785479294862187991563261402593864219094286181985311210291883506745689132646829981897206944789641361082047731303100378730954193803357216296048101558654039718412850694133141558356843447410268784364180874970021939537711086171425027204660934157024925277447181264338545637961432975264930329539839287074809361005975441856164206458222117052453312621315287958698174353315856614720063033690206765047585519509698579524764842112673021093809500261042203459210696196705534963758263537527694327751274457709585963993423660452903835470591844024409676946794903723622601822218613552634789595630287891874869516027350626040981933477117650334111140389864027105591233334163091759820277442310450639596540323513594596003663461796436484362099933065615689733001403015524530706936448254526779071732500746555322879673648047232767313978020103489159440989701284439322893022636604024850854385664970587418928827946913866993756594853545552320144806271633460555757082699695283549702805885516917750085936368795385663478789112509944843663755240586211788111524182201904758447257457012594741763822934675208290139294516316181221191030320376829694595706209002224241486504839060931895557939516312777230452264463944605442611950601115812712955471871541132768877607167536167993438756222842582403411552680922559652479347340740428798170329946102679117131051686571669635958443068481941021252619638063170414103153592004112725253964930782067201970559008487444581048400092986934495473942892510625852400807007992664526457841299373194562233252970524762166728097737372509363853926831360948867213629915348980929581690433456736582770102874242309568433107107468748755037970672471045273090470743141335702713825173045262779414364499259858675610736009937138697920981328688113525923602786575312122769240817652077747568390771803887679366012191483802619346756531387005191493148870982649194364256190855098981962438555808370848449705215720824302260707624303126224484522839377629821716580495129181031037585080228157303078794692789754547883421489728912552885735010969797398883435751098194674476085276319802295369218785609512623373872889844795449914474122284728757856695089884229699685188709054069484663827812188193874119892045088730949844037396870387319359035631001070839074157843850586864259303695444426099072260453529553588905525488294384563821477653558422081028896265543898716745595291035534540091062641314842763784555321334389016484202633494887259502503095301953395972916812399641569060706938248921085179567298201269488628121515933996097382704042845805112685071223558471472694626071516712024199037304112143684544400769588842268382822713689530830660243064351198864026516943607271293908137187509249808379133013961122032861495400189870165761751098015348258833978630445033835232362970392157368433805415514089465497938113790344814877744340651696035290675997863618720307744216522973825695041418535702989005416762325045373397096992953839600462210657247664868357301651679719574656128292444316090581524339272220387956003109795356674800855173218368930307412550388184477658636555968016558351404977657903910113923817284320470082176991286307287492818434678657916302716699271151396379131038964802558734478052396714892533626305524255998083239356878399598010090979004454748196161374476684770027992152264958127879905606939372630012865659747999134352208479410167818592412653586994495005805356575910946793318785697315944755821355236387879140016997992320029619232711386757751204906713086147173737695822691501573983895783759460216022318842412246944575950678152935653097159689324468947924482633123754662029350146896842663896776543967485999725631625417910028452011652489777376349343577562561561188932633727061782104691921921736776658295333954536054856430049248661752129692351742377220005845981835398711290831758841693117435973546180094598221255168299521366914160910100274982726343995456091152805708607055918510162784259079122013322469971171322175237595659659900471851665806307124070568509249958329261919631490271326269590757724940022042121256694481113413377871976312873604910783879333967103606831432581331981563761905736562599318974411415607755872458092339457085106703943042913837724198434245727718598248705534227125152536537746895635154496951823060903769689413599622607827187774268588735527533064200931605657708590177076094993646844237235299219220686448050429411726491671845805103070432799094937022943373500093439481308161509017709820454138468776453286189145262121321245512981245503148377900557364667408820288172950606248183652230816442207285753821863214928402799842105824598960212194844602979972690983715801336408786408413526387842805353532909950769808151211376009353723621984863116914340596900981718061412907796201944526963462928078120000085587407790229882453776200515701642244941805927081604895398993720317647011172495140016333095958763778230732145638927565050615969238556881467367873015278911456486170430965421171313297195398720471052748799320810421736169546179122609529478548501627857876372355342250945371281931006203310002625085251689756137622890336401713596847817220563858873106366835645069660338895730806821473265623614225368102118841518701067272729021451378572810438341674570713837587503626799570684286970156184464166095112728397048470657023061542249168877466991776181290865533455959816796421622881927583333771688145578609519391111437535916400132723930555601241045723107375688774514302624634284822824409697559720758794645850117833785509031418795241578065648987762777900388342729386916923707989722482824113618759140048661332810770828401295192810873704631201940862297580483934272778052387873968335990109306952743478956364888650724646156266218012278098709508284905553914425507551082667117520995639415082856535247415812359203236248341378421396706985100825728240925681033290970210951846502842177285437649119168394674130174937436915641037571575798821024169681115295103519737956955772245757508876356392425118305192660637152267230283689992802941283158423305689207626726341757220689944178203122191447919808132249321677258664547756486789111462767703896259740511533860255193987589747508789296015364022567966561445863777357648645759195526070362133776230149687953705971569255095042970946596779020377019616616980950345699325103183905038597946416806285359822128866777999691503997450885113620355324323011326110273028587492721635882151380056984145610128648367908303941944700781972326449033824825820348159538091234885071562235310317309409409730606177315523087589740972875738759450273755924046903501935351277753208002967544318536537034519316038204064833986955842455671449273889513347445535127299584107640497384871050992182155614181110885909453302339847331193750705248241851039324577813715582343385267213400787636028128870622274617869575951066339337725259550587961908359310199367307307008835126261976891850865875569077797795432675253870291956336524328213395512075355867247461806967029527062678947346392317273385417946249499226161748070128353207338714146389994678901914801205979005640364911311691366657993474870743421523051542246478853854631727519841415352356961835425762628370165051815082669770243423114138877251212411796902193159980626845860880069917489982653968801978895197914826838816874367635575181519035550279304163062106453909407112209130863319806531946475029377059723213001585998082818832738800781432719749930901456791460600574393115595134778293087661160975110214003832574303157453737004909422821568990286459210583813544691179192808582299969950550277854802211262874339154216925494677369889533550430684629026436113151894322240919292525078281666993162225993313597679790689789636386584678968715097214766972449189718101952947797698443221741374241135695665212183127228529035949097239820087011687328239438725305264275296464399471345741879177388794696747932472929178752194938056428632809927891548902391507098563842551946656859858412951175371952479942000109587570028849771259045854995511363949563012789761246727023240516632199736480928063589384475985062143696256408645649074512380105230219873075329705907099374696186254364771889518494586627847988716151660503520998105781739468526122848517875445070341824800232466711194728118401196717123746204849332379496698341054348273780284367946491991825121481355083183961362625285567183270325725775629104576437413190509057983147109434607457525046714127216206613970299295509018788809109832024425048168556449926157810885440902481716641840319580438360745892809266878012504563311481450563689005720793971630753997150112698758319758362459472788933664059190451249369384746920787880723431330071468455106151340187764537076877213200999424635894940329741865674305531373315447212966890579754689011422217448729377657655110478098058908637932393753413040598975687052805389133505885611393041473633482241267422234275040601297854508873114608202877523239029471708718343547624274726187133639796756668817006897169208117831510419679032199652694913655149490228955325758142901795582841129065556550261956715898227885054258428852205229531104533707662421293267523362483273550330461642402559286118810335854928527045228088520539606812423479173121795570630619317689623488273644358641761550776628647982474864568635902651621317269689047146052257070203434273519776545689051598678732287385510072832158443393989263156722802110102943893771792612885549898975896516802365620209548015770992247640682951128764763556359289205687192633017430556881288875888778103385231233854787665551909119664946055660657855747679095598066584343319662233095083858223762558202235374302776598321572149904657089472869326886986476059599275372924208908104740096256568900724848464322374918671981005093629357952680454519482846784249077525869953173050860298465896820284765983680130260724487056324024572720409059583965911560479291386010929709976379059008424322809178378549199129990573959709954029162908396531308248969027688501519779075079101484353852816172696938948400718407373732023185662764060290520842504870549652711594956659487424319497847173506019199867111766434494996527477194302917887459624595002629182406971655159214569339116193599021041532348856052493022150770822914842589444364559848493846992110656264814004797845670882075410602578149967435992094770004346271499509874070086317267172400029625445440253671077731291894358470720804832867626012162852311503135641514173617793194677011929637953508751377935367629195358062380074461807045252739067316895758518417757151502797492583149141299410443749105643778425925575856425149246123978436112745741823338579672574539905216039689127754680212769872405762228666443618263907540897935947771448200036800749426537660106549152607369850767445253660896996832911092635564414805239582689363610127819648172017820449117816546336779605975585162098100016647745492132075616193084322962397167844181361644527497255087672225136519986702422101646210278094348666757185090605942692648349044624759876377864358236748322684536136585666525294301882609995410820325081836316405126244939898936643316273073146255317623180774901570706654140691915501978268334663380435940045620111365270246960751363031427863027670009067527463789972594082138398687440974142949362885338219909523077113319759863568709561933935883420161347577187687058333018810297996635715103624344007411736114106120808251313153467785681038218680847031155415552929107284199356239104154660070851956395135195363357641914723767103404841794644740293679838114158203736945791141550697755910337845715353499624635816074326860980465047862053951216640676728555892919093546305829171204698100090981898848191376373062946122871822243450570104352138345450600799756176174610118427772931789933496767902324484872730789933010820312633974407452848322323519573315373954498388168362299085826717160539053273306319648409322225681858493388279831922506422524153802487838588345681798050826824630645530538836219576791326300915914867225532300234081672811118301084355294075743166816102106724014226253753536480204737168428382429274441338459412636454952831010856085434027122541027011972002301987855221650347938480456888313019727393697282955068748659764797640235189472738158261599277705522984139938776848736360460879314115182467896390205905949334498533298250887027599598234285245119685588945098163528182928544996432262408511342555937385861751416612459439617414939468608036001688316774679540282723045200830300328962901084908365944794698413516453700516223413551244616668428235403846772783716982946227790688288292297120552359917861656216608971361786671992262983382917040524844896430507638377194047560688230772559238027950623169230967737448877900741163399961752836837926117261097743881074925000490434675765095681672261464931951355891950265645252001155555859115489804865128076571774855432665308558995171768013824796679943584981272429484020592546916456553877862621536723915642709964302675923679663660002288044177285928433898178774650757391967619188215687516160036689221828204714767340502556309302380298375031098715114710800108414774434990501915904240993612000738696977443768563322656104468924772637254588242506404566757806855993831475525718620963028500816818774711698184627401503237425027808264601007828856178672968514617599924351346359498169500724476681267080814167719177297194452450685013360179807515013381535044443471327663001795136350526276763091289487326061009227968464374169790580522449725237322802086765391325396051796859738041829470569032045713981639694742530034895485945993987790782857793361543749446586149868041253472971973084634136388611316275699906221116366854643829070573195682225976281022555178220130106607301992541660853132525688193118383808766640028662434326240734995100342120849133510563517185373404542444788507216186948342210699442021333747782579822624672664323171742028369681120677522202130429404442915644591784223718065211104159459526851629190830401560524095784635167682727120932839262027642809468414074586577150716534179228405396101267906219237305468348676793766859720081217199318052501830857580411929083816900412982509591267722924602969844020356846045797794001366037687715491156074985777230831814579817874186774862671572404295582335529913851639802257540340267734259401422018482873303844966189993788148309205214945407142652657727945493364630726465588359533659314270843737133959118494228862398459456754789423093175713516814382721564569883985814156333033798418860577394370341323006475928653376560536444304629956885764265463787914924564897802895339687671340357077576462066385731044629856960305855465694628215056729120482318830813972467905575981579439435764429518611437551474205276635595913433361785572435018875769224782146293909787284812036140613824445747521648390768176594982262495086582115635446350918133301076548959539663729437341350262931214473161363327800958400074202732605970217376913955041877929223291873698070739454538614668640102406283734285888035626223104237549364388067486709123023641572470848721442450055758482173881821327782982054111902968761439324596163500488529769044498656489735907223440975734983272059043050714675139462596038230685328440829025492702048011485850193723886199339768180196991089112813575636814260567837461982689923471087692358442602454741257739836899382853254928695013281830288562779715273349301175327583712225189686640057080411224935731789381628462621780437109629188524821091179354605875662326436393035519874686404264806517040556841165759538198199309283352611839003820314827679385569490240320120473119346708751335393182864257086915421802997098315613075807445274825894979469204412323212478545140569849596898756834386718545826620107099379313018107136913378665044800643228776671229013611865868637496537102511331701277801140561544897580617919680797291998331214004732879523553982160086840275520272065005383802336730744734593505156896647473075791226469391469231539251069474634577180321194179931313640520995998956163230593377869316397275558452178192935297791598073899594261837795760331729155656984156157242695340400119705433526080629920168562300715674305106198475816309915872686018835717495414850143919014637802409150041479427557073893244520798660295875691340543936298567364282469205838278529808809881711300903704697945251525649557601793220155728992972570149841935675551318942894730243295964057675314185100368827553313796535025834678046940421556535862907323629984228710126016424972969254043608383031874130462853630819353732243123279249028543308337898085604082524546849057064892687974111934890754432939022148996073914351849132297884488566568555501730784315796665496704308207779804378881828953451429841237504824246150116003173616171172601788504732326275587079097725027496336337490059982564905121831880660636287094241867736560345972297744364014434170349523152659256295716743423335877061045848671356161789705858000223500539557683972923789929144370056418994301593548314600424320313957125469841821724477285971359930139024414478861186583389027076689196044009362808848359414771877374128891853286315201845892109815254781072596226798868096389887357575129845218888248050827527852755491646019497144733229531380876107563476111385296977092645491613867121817301225951219215818662969927262832558447185135734423241428914703067573740012179101225545756171012992197030258772735841231682767789975763721644303965218747368998485254213736423506623702108986920419665784670210179387626603625107541557522918900866238372838933148369952199661824388190553646676679918501560437185072987920072237240046665516861484074272258396193477041727777951226908074822336574127537514028118183174951566674793986058309255880515809315250282860619043777527332121247916270416804859357230000563575461275840691415660603755702451823096890215464756942651681370765362385200616139479715277766815161052684915773739349489891736470847732150069056259367343157770217021966897230946317179995981226448621004065436415923676868343637226521104171768479621922269975574140708577135936702541502287774981770688248986987559312640351027398536165784887318047294661461492340802464616600929464735250908382479975897871001439824418349713428576159356696067596497425084948001614348287579616173730952716019037811188129585509795577325149931340567882629360350264771949463964499228793731816859125408911671250891923759051454686866265714329113471656456286801482803137484605739420734510596680027358134647099595783356864773974088487410016883958523191921822988125930810382247327412804476867993984457661536684344858148444246949838726150770842418171966782911793587615694688026702258950623584776230714043104950025329180863300322957998446140356489546509430492128544228188290066712561444907227277301510196676912525118945971008764735380703607222217342321345171564216528420776645647113437833908357539551673314307154889165866587639607321774767289122623701671319702479697065714800332101392490518395476999817042164597188917776099785503427825685470374593901588030420313288464986151823451253864531659686065665635215557306346569053085292397636182947042707084066611951259149841322478226130207490204370315061427657525828307430953407493717537043353350996487221618151526304848390472324059182648911431888440951786436773234109487330196247031516838527881816284113482237544771709822298067488834423243057032315407616942431129320929386256981813361931039318862415010470084719352172894785334106084906255878909079302017897723255345649271667045348126925658332824224204356581696078196254760608395152726931511994774919916696762180217380214617572083348477910930456929857091746064145283317728650278388769440053475565949397552685524881205797178210374607480849783299952175384443428644027992369584911713000891335528764908584809447113229167902021592934559331021668005455132600543325125301209216532178468445256920283079169743678994040871297223977043234090537568649294484983237276148632527270302668249114671965160013908000431873375345379350220666205065511235329997047929405189860467319560258006040767348971343621808533279150888039951588679301228397757649470202551894250178683163648475893137451329461062747206015353294418574744325819381658189828310302079066716440238002568551335071531418729434350098429050877102396581374062679332425303270176842340441100273275774306163334654923942509132905731599257673483986009474754748155258805669339065321640620395127766139430237756335594493835880717029172787416102276522316135649219288571980396371314413543994705246647549957521896548373898229020795866800658624287423986999376033606484266155227051078027098542886292209832381310160096565199355613092675828914150146128799769771344345783810889629898585993862554746875130306099090024275205168119590178272825151048875443084982019830356991448493753085632037629078669456261966510489702703766851887860093215973074133178400144096008739685252366652624577928545995262591281711742972102183209183887689871032063638003674562610748227392297625031834782243028337181392597101723898327096662652824228523407439893138721972830722488978650713363789264986908746621889826166686272072252579255129612004966282510007266572484236775239791837617211358097664059934020296794161223676238502795541265111610230335976670032131744821222666521457881942614445163365155881758898688924716029341529727058351692820368603721816141593115025398089783492419273365808157469744959208878671781721853805403246069447528422241135622330136548576777226164792792415893952173351161540061689579185864061273828767882810834475995508560746930553032156063409192855330802789359930046930559183206741006198753644063719502271837061193382863293209921820344018367393695849111161825856072570683209536436233424181012196443453457058285636936495611069347396060004847626005187191391611921102211823620588550137973191061803403954142527793214077450424705060955549569573428874980693647571630251479074015710185367659367068047675940697199772302469205753484252880439877806375515026328979921768205383846362670600816087673186177861558945037582071680125622228108420941702437533481900151891617162864765662577514146221873699267302714700926376313841982780217871306144558278407958396345231824110432279559626791864025238532704387761606253375851129400714430330028499129423820999417538197887070689123470450605016940615128211142182331116307866286621517621825547395756537801148749122695235072431281368836255636660064121350228115842143620705744304929547708360333752445447312057881088508931432921195833414014387876456454221184313920334107843255823631997486194260497893405557755817514229772063089212103322832340203781586534227491285186797949347940018338104668457046714557462180219959563824137193534070108203986010972199144685184634270883923517316901190971667824755040094815274258190730913931670449725646584544829027418358636874982589619491813734857269895255181532930894332427423608580547555378673927777111256484350158173271659013821420943879455100455737104238399365607432180830156568264418978524964569364946351268021683189174053280871843585944085196730555681505021582912363449602837325472555669334006858275864587024347518019704233878555206160182302467501932476790888363044267366183574276018050738156248037510623120475383034612070260547672090110719924763288155150163780445417542841481381606339728783889750296476778387156276147460436971037396777960098182320373993845154240393048355065783038360016277606442654570134165864149486146029811523420669797008220888858664908308430282760399094841534075790443220308630116756340345996123403026643585879072049511854175995066508859825780192865435107581918513016969481930257254116509807278888752358059939072721339974582335834149025157035110635558409254262612995766523652664097680494888912913288842217883591382148833223999916747861297439287583176267004824526943410775726355875490079008804715044562248097392938978106287210919727373634601369076995052725047841251760558414709876877404337303650486060514104460382056688283995845097066241259285303290793160156700027255229633856845571891953137591542534833027031469611410150189409036041468804090241953807994333210286355507832451850693987216629380620999021678485168553005615889621960522854600971721660287276959427041938212152024641527222075855513711860733724090871791509530351367559927179377517410227495738336818104654106540187680756011695807854842550863483462339326768610586927176366577123731999063899087009283462451700951756251182944312442650176514864057026622786045775269340873993510880394765486624592217744819932531876149417783948023751126173571358160849078264435985537266030073284932013852277283476192795870345510683049787040506884920160189364210599852122476186838064469479793585446624891024552302527941137900849184370338599366488437001114017473077932469249223125526305680117534823495252756020387220002531263832755811399686531665765791264146147176867745113094124134347800407714352383012505334488767458511584595914102587052335264405758946932910911777030405759895224029059910493773227428993100147947858300038076167161894888051552457793481158621463730029203724771743410469215319818498370228871130974667534649985256229111302681206696113766805978984150306452062544083442018878445578717769162644043095795248664012035630914850681063611146658358745550603402996193733572586334706586219417087989311736665973673017738898888210492515590386472415749539147344828418295561228444400359499641357450810570381747281746733090807481383899092459459254689872173767516941285904322340444201979515955450713131009317987647401170199742826281065583521491351648681517313857937621082146356714789049883066433378303133351896565935797530104791694022267020278138380066923738466160690444191910028501186733615087579559060361143389144822668868990464566952832196768270733175125174754047066318081521500804278166378718765848708418432051585181724246954689664480483335349435531387670483597920041386663617085898789190033365561896153830805614105728672323929789982745080248128483616472156613623797718659826093882221511131103345721245804570204380781042805617999844225980659026973426476801444747311300970795070079762955363191613901128989639726553929075225634312045831006894701764758496040305607470315325556362841122007803938005251512609538396774481724439486267009002600547813112974497944711931848012401555020096995557763890316718980101835131797431993791934091831885450432503251228565545854296109561526162917665899277483049417226202056199531655871674190127715201840998044407826170239817515101351847870638052900977051235678540100221939629944798098939962068403489359542379182668507939298894208015098236254041768382848959650391808696086088068303590106485020940863383112587299871208296934597186914112815663836242003921820869563426833183584420884632196023117058458318677741851312669604616120700574068447570279550415839162332245146691642795900575523502031358462245286493211032269110618366356501380395745449147537250609583707945101437621157599846142980150846327179805157752902152928954740787419586666509684661789220720356285625711578177496120603177685814743490154735717665893754829859955306229519983203087975000499935220527510436544899723061103607499570223604895635956426882276737875714933822532536019623813297081390659405398204852565794128054616808211426330943919070411412744569951206565412770022607813678242705591961235287252966999282492785223564421821430685980668801104278859875560461149744571572151970419940464147996393365737003856279377174699936634141678145423565656901358049409216900501255714668473508790948401780930728681605099057418910842048615475411211023174017177701774218591729261525161502526609081283610669851382517594831098967316280005522694111503455765136672849504227333207776052097778352790392005736699345324449168737158217784278518981640686874257349817547820888005680048428552707197772602415174656704843292080185137539675332908897673465285473174447417088254061717420884622319037843374793242148800645061023309327799611509162555953202379237455282075514773739226722077229914465175408294562644276424605122324818441853800512491164245677945213835046304573923978604666550862469485174880450689107577900950982200554107500444012485218329366182704249395299177745190962656465589071614025996272149876189444278919846515903080387849391183376397593744021322928168396439651958289155553503257221101664757165884687523801669283337115234006946568771092053584065423837694517608420355622345528802647240818472712468564289566419977573295895558702422165565536424231434649201797243730095262497828051039986939530533938623715803285286070077765597481056784176101439207381593522529960776218966462481307780782182462609302433440015322290168428699834425382047333933499383701781324083929423635787505109935245834023232373868411709267394198916922825700303523474589871097158945104370713510157624598678094731728390274033796952115782251373944991677030156675291866267860107250139634207563583888455827415175567346514982277049035671044453601946391193966211579683834904559937035999255927875884041909144742408050554985102183072457848189598061140230064860486758417558084991225909115841242473926280172116643282334175492111274025281249600804253389238527122163695856846057017010919030561905083257934021371788409102766155667983061496950292445451557086342312823058970332572422559961253081738910938869070960219583686677533291280249864706281803138007152304887509270555619961956815908864945085731829200855971571131051668134315751128249851216185668616023466552548014211648753954420562127032258369621047234301194906643256159055540063053150253011398275077008194648839165169925016218030959182806959440503151999442979813399107641047510043725150623234836070967859741333949015034617408707574958803122482618890551363188238975424479223817217292392785507009105469949098406000144402381630919092010640589804367554987668129290936138551501295263090336932163386712678627338144673312364707482593844420378770747721029166346854709438096063311669289204067444250748908888978879632566983271702146110995008252018557186042285654749635231356191407854195013925057732495377900206572389688337872246471638877672003294415693158936382454634739348650794875695104525283018033430802302862310440479211478244803714099910879730097260456644930284468907779820398695694471052406371393424902400035691114013088080366063326484607499829609436651660808559964817498878519633611289822392759230977504760344902224412404593499876446829759416233340772281357309790229477658369797064944748608073558299941506042527892899206378148784507491334259788248757209635037687547979785044784138924968669822334647213046228128251647096337034522318528853658461649526452669310660437480989198384305340067733743605594456330751561931226520444245638044391780155587515015810289683283627070775764317081326992135437276510444571137145500446403898908276041262890593150111890861380585319011616489613566227546202527762591439442044399565363787951488134103527302390822145009884547251372958432946528604240370056044651885001182532960609289721220153557642902820298618153180199517365733575499966080570100645539622056895237144608622371946296128915079855250688842340007291545454904193876316534093252251586195072388326137786837786606874912355378525584619166810483255207496563550147467691926791139715034998946474828204769564843552529481450354260735899997154934717296951385292922930477074050480624937525347338218280030893228300627902827640930285472721933468213082454991437948756638886858791217734573588403827555900064869571027249205986138828313681550232875585862716803663791346785534697263365426247107741779629003854731975946168298763241687509041261184723015082084569980447893200839819067382682431521490813153691076859545905121072932123949305643216532911229095504155556112069103917975409125023214621470596923130553692992856152882229445739031659390390187580360929290719358331992342725669313974164263535265383033028998353915705853641686505820764217394905225950826986705490129795211753098198846164791507836848969461490131351563058298645116285192139345126692764154492136678826799830244452255795109174624114755134907524299421734906091962910782581918512021007519523588040474086256590910773848212443155831254003083294232428417854125600779673522862050715666327132921224482149566930475693069424204985815844454264110120064831555606595336595802242841523082739862554220785859075982654163119471225032104065341029717800651130775420760443417915064905051020625491975503816162738279625704880853223752526373488642893835718016746211462400358330211245341850400327234606498972319433213133882984941306782179688017316639860652265555485764923029655603102944793312820921356313815981996105233930520299769706640189881920674290505350480641071783266162425112269330957335652715684539690600207113094380869797099332928376635107554980674267697914389550049408522966510537968853857951406441031988248074966845996934156744304626312509590312286707762055756229899986170787494893059327506456752175253724732118243497488268081266166529190869786819317848575941742183310017587457521775387747386531702017504503489133035305966541457174089613653337171317661621613442785768544007412675551287094565121052682700394374978293453882477762448171267742678331584716581326737900635538670501198319001888181737575429456241911221553380536423345811379431323131330192606776231558502272494408317501850935219058291779966797723380394740839342292146829082625477315062840216285758488601176875459421335632330466691451932764791290714517974072692301713200839570356547002523611639457681754247051775658011315152177383393887665029301045740869570613155717803737805442821162738863957101428491039529373385382173781788257209639997890449879817141875960992470121239879350741257513257742387233584759030020293534869661398417568356854467347668573043433536098586176526114502556147751844871503908063175309104578248356075723081889070206740376613830449877390880024059821075022565980879047697028330231906530331380326398807865807442444401765632402994333975304672859700231775568447977243905057674776546789878815496201625313405654111320937406441220732589245962181193654000502172274147574226739683000744234310069943581390114519329109682440050556107568505626259699384878727027844929581504875507863235241484982109193849903506737625100671266447391321221998031923509485011845149291802754191668663305585311838138089132570042821589676754728783336796773720672101717559823819139446636980243578244360799428221352170459948664205880992648800357868221117493763040079273495686551556585178234047715065059036650422578463515304856283284543377644422764740123692814808166862723426642992787313159369176841756089879855033135813440142726849622912092180715099405349374278998447550300474849438617968701336284420610509705893957551410933203710637515219640842149928373585097624852830518117682845526431551192298696759314475814759401867275278637274146936151422740784811279736060863414751619504546557222670777450422349387025117904207509496292425585517938160585046378755601489032823859576799574632669098800895205262234782742108419418631503498557450610120886783331563866783518712580525985860557707532544617238933198001570125056949093817276854786738107396482235469816492975416350839201784458342567920839579160261723298212637845743766584321551314598767056250795679862236525161428070939261416511547639124815861037672875631811273064503338087583498092703035676841124213199064718316225857914741837932404391643079495376617633593243120456374230163523239391863670994499794785174657646106865851943105475296460610499286693296062923213709620314004064002377082400824232766909202241766809448982511770624305160578545131151476852138016565720658754784501213307818953461464362421174049792325728685337223644251319116625291021506318716679679324612193158010221186249658233789832005734135378646681341935829255932081385423835262358972574933045151377438764445459381942693599572201015847137392667272745669139325881885501911659403183685164126386782290967349368141036741571139042426604869445386208804801698573080808369665075438397798857143412126191539311040514606158055903618089540412244421805924184889998128894195574699422244074630358512791014042357115191364627408454734504826647793832513255259687887511960718495436756581456311456599899835822565347680761661005365782680823176055038224079780078967782135436362173185164856245105075259679253202554233551266230657555394675826024286733808815367882535570730262077144923987610511065963176337589357574834185332513085841188200623799713814696480285306200149804714493409136588491299458111673377575086280359778808747929346937469625652397939152735173942237215807394940726448698256036400254161594655563489260233028548481081023959058961845904977667466311043394516226308928610616199413780405082199137622441001571770908227808975626450392451386596216997838039404275064338274859302598804641009660569040165670331111969085107407129701506628541741965052636812046546328947065036441555899031292017869542085006048748330411668185758430416569775266616389096445019919803660838559083971861385188921363801769052749721846890447287584546436305412835451185660192324747707013070373519079451220579404387540066624880354668815267970112358446920271129355165904553847963663347960947101264548406805037497483734816362568099279387359792635173705918371159254655103152214538728059174268123251609008022411083784604813602965425413630402772180044763251272315133945576219399345075509299508149916164641448537676347414816540682859351592388412435865080403447736537946408995982505604689827720874642447446794159474483578784878367052597923090078053256652164394828705582571389185143373735220134373339742661779597879859451427174726932546386644192114568416273923655695268770645716294714854081962607838232531985946928201940270550850225616830358062826637898473931865571396320610218883127787855395477187840117876834764662434685116129697803411029459054406280231049885509878226675086225709845119630962571654979048713353684368428550246028482360708352230713701991932990033084258728305636521038782792371991359367183365100825110939439602326183971422972923191896598310159333439443772634974662753695637403606807252129187847581088924806004610298914667108551417536843656408497460804081798815907959967187660460612973486705859802147771367398466511237213102755362232797017761070490212250061825603396059082216390721095370839583026541204731277086246696175470903722597723856839702048242614414991511985383733398097923788678606385754771495832186295348328611548833965643574453658881450837154446496100090932854740905010117954925424496859477792262773989810283931338224848948657505663828296956138312208425475999730268576851700827961380606894620505279293902106930436867221148767734113861728089773566265008946349985631407601435613285513326523174254396661051265157388330091414173022127446579369737741872029266589598685337920224888689758611849021576348434499780354745846066873014841706125253640304577510746825952752254387691293553380304742447354103232615994269565541087449818380843465181995638005917407429865265316372822450409846702647091741288011720630536896410064089335949454918402246907405362262482186293991507055961439805613268203079758672737942363796544095495186034606647113609736487228526822372784387181138151034713232788444476071064507012629055059184753238711293833310543821021093272811650627503926313015107741073869743423940890054990233824754700863010861116875258904476559425071858535785838276491131044284764258759464056718281632810342839457437698655912528763739965301117051408965719986588380283088136363933453310502637618403104451480210327149392980021603642924718387814799123429089162952261142016840488520530316012437871848124116429745788244683118784593917678672959021043023226015218500125201904382482140118209760563857390854776727239737805676127273935550025394638270921894566061846276486887884717446234140785386579087243859483456045511631470518245176529427182034765538373738792298444766277957935406285789517437505432067988176260472331668238195391571809064236468715152570471224509760856077023709357021911628955676808443877232297519586478364440116300707654485321994828537953983628883973427878543931834499916503577801933290469258650401454486875681862148508438019302755388633143539930161840890007718918034673397915624834402386182940987677210381746692841141543920636055578945032072212572160333692693758704560298181087874101764407655456389171470058347078336813185671507458689490824939845912574327525596538788775581227414237782571412965362100302467952353867616987768317799427711661978597966946028544682108751603153176144132468816367671478760076058623431301748523177073978324515464110007267573204942603332414111071159183118205677822928807599274783942874533133461335667959467221908893424389337316453040517344941526236511825752839828940728789396142420110805660126875154030012913632700674216363358839460249078480943803854797513235560204599007800632345858046410806916850473904568894487479078232265750275988144490662104010031460846487520775782672402519651907752647960352752717912565128586818203457310087035600812189322220443832737594650763999707790159842613168932263825587313022443550444095767334371350040248576321068986368045872746959580416979985233355344736739858082425057808545621177536271080430612784398066183279815746330647992791747547035174473216589397088377314586876865867048000925180827519213326663894618205121283532714696701619403414000929039613928601312914107285445646742067209141374839957987787405395249045267216265558556506658387843118121485240391960781507005445326421168502283589233774042395078449741385239509129698130374486928082289008589653010047223791747979634295175614330652452526274203014362304611437114025539865470211265710477030641368364641808342444650793781044009629257627792234053569146126943614591122927097442319816196681545707453473282938778164487928043826833733968633500309377703952750385694134507455125404365630858848360619461218722827263327871108066856717530186812650563008310690588435425824348237073907214524612180170480711428314473686026688446170582613514528873716167423197966334726862030912763816899254135190347569789325716636930508129478425381540461456187544290140383022405050507473421113800557176010816870874715018697974166196787515587648728378920984691865985620852289796221653905514412832253570282841536201443049150599401064720840803896447829778412212245234251543358175663238378508122705358652388002785960014827388041204211694505169175563531719218698466485737379276153631302927599209533597591648340079008577240582693235266331340938771664242058748488299007437259230817240260962312141522718311077202904895843483355185777415170526046565138763537984749203600130604744996892991733628242478899630994073130779817979654998694611844458828256090221284751067007503433260107026323784879779718751883655985291152246034922238352190727020668464356044320045753358316728940626102363201547049828411665723643961273760700257661723693133250164642996917416289097591380267054397921496838769266388494727906506154579475948764739534072260285938583609602876468212051270772127021054526442404578937760122296238542963445201907791632723813301677045888036630361721142738406176538171374823395829938694257339516767175183974251432218031987708161598414038292396471757595797753059061946802782532778960261864741158956751578656554717007419784135800790538779142546237374074197449731933539391842934253274592636341323201799649914265764482373969186475694033867865202758170250785607132214961610745596636530344697403504799652843413743089319834748128301552646714863946239283256821788824839978662650000470417956219425086849034637778672540466361294747694932764187209548882203359886775506311950175743697906292002431410047083028221252238409825060524183187055160897298849340539111522938644920493457880634613266526273247227847842115240536107173485718760503422488322553956797264531819682724422896122611754579868636736702876948784439804820101356112902652316334697965231213450145298553900264229611471933986685255462153770389966643639156744320695087025749910254105500688808689257172907020814575256728451314746548383954412711278093642239178202102325103889946971910956538531898707384997499577849608292558935776743704962951241465787922757160104013495048259461045783040777976087068523895911321551919233368084950748572995573061487827659657927604831501397798300581982997966748657662876044714948591902504152174481323356804446815792364395676107856479308434340436143583169043864974492697320521675948048260244998168883837851218707115763315753303331145997001930793058591320141088601865508425386255583689170747103189211931740222941339322193758846104928340744642399495640547066245704652391886357844755780190174544385301049744492330092250824873031131336535558708103674467933894215167026063159161973564325256860989978838706214284066299829829257077662289655741334352803247297438437769743249968484924687990794278094620111764240864709831096826840782139931535749851780200639207505103170844811062639200982143099686255869767970591418430378675248719469473355881507619609793598930727891667390078850646128845441906506515970170112597239334429566965809531743613014007407122124111952164356837876117319603722731413322475160042113748057772335197944741714043012758051810323024088001350580360150625421104392570326403274823242767874190089133806365947573773005409399233412071362422805130314100043561960348243141409467206730312554063824424885376090517786169996424696424201929670638276096555061540008690502607578088438452009961460086208051980283691527812646952001991389036996238182389866278680898197968107535454153139240556115682480802989012351973248093006079565903236450930746144752005427445780494915752522474516190387227011467195454240702433758538428690377047026982350102882639244831845661143416438003219309535067700093853652311870818019673157474023252860073578422573989725196995603387234289938459179098343823321726566813163377797797435600407677874396643218644879053224476646496323831708579643890425705647272947927709665005872255913644725847370155448750827574432085498934416279616613640559164953266805430402324828475205051286542864214390523613563251065547864947732800024955061164096394789805913118649641133597473903846718724354994772971169938793675109307082772392326078116565532760729471171734361893896209461497242346893086185214623427445931968193508612497795014624499155327524798366527980485717441759008654289301933781548175880368576713747145550755603008365620093304363505188310306535531028454602178745673873681881608853187484862881421054463385378712724699074670252692184046861103350578388132506751843721543688610634288461680708375449029020518955923731436049891591956524299322709533751420241750169759929423376963569700358800371773756307452566076064284981191409896275925196432743508389314790224754503521718356190487781184442163380562747014615826040074873963715194114222230155109277750060272963272519617105635095636316379010900257195272680714900322147944035269525964999100482788280273268793105851014950102448740580800801740921942005047216445181881389513296854443055353226013169207762287018896498214750374967016904052575957425448494107753397727185349971966898207777154057050926820431541613475270277580819238448592496514302343815644930953168936943859693236073947055372043309805062571860530298797294873055891050783419988734739580400023692290961221042252063646698305434228233020115873342347504943181707841610284058477708708569470504037846949047686358242394440309483627134337742601271876430399470084261637763485956878575066614716719218569636998290205704386856077587110213189358527284353707966538089246430477305476455748693591890896456946079507293992746653521352561255783356159968477687518479376667975794972820496495995529152826076633484925189937492968091691661145092134990665209743332030142984595321520145338197779352191349236782135661395685863758065736644082912280814035084561141137279150998550529145855633090853498341595765678859604170178227027193039728497208142060313649619422080251989276830971979430571518857218916134148817893230304097613353056515726084365924749974339208607698207545711108789987771427996885894973834736090600365039175642779260202385089082492783007543592248905717302543441531370789353725003254815236215606294088748843850141747464424889770127900058245777037849313696841576130395777625412940366110432128793782556224078752842397743787185574995919941468533527092218132615626493090986643234652083828153935705058864443041556595025034116875633372567388826701238103596771704513306443669681163102249158803699005698600788837665226727622034647973801805421171317875705185529258584516730068723986139775046851163647580491538250358015650387964106902636094325842434981489519997160281164023732199683946661559521205904176772583988227026187259317313308762543218078650002065377603678642285368151052007961400839641426933661595090155644907900323346578420149602759518318424293366195434501895554146761072224326024335717670041016245174656321404424292532065817517309644831662506859018698773031109898511818413285086296963107965384156099273636262837101483410203033302158249316995676946455323797069027092957170607091327652625957526700361346012861056615902891321299457029774680730583751337424640633043330181409272949931030836430584783167298885539717633347508269017130648477193212162009981993768194233290270502436878374152031165080473776370382727865065703685314706519106490328065022313605970740953822234153549406969363948592229527589896952605381586420993603705092198060222575903666273304567862427830587656663915225822992946781082246153048941794605094286618144745223582108044257875221187344280222090547319044929265705243209759458017115352726215462328586393538890614986506525892752904050215079432111625531383017083622511036424307274098363907920100427161140799878245455746121953784827573411400179869948453380162357266418293338714396494382443976759739709500765078865602126685410029488693670441229612292129632225022891610600244782044172780786465300467069485145655998247362434938261899099711808967259667697607889631232740587443766289031414549898467607732238969550035720434396055929091770889599633134803851873348436275573001667978022291302992067375836173506802566885913385274783814002497744612697695170869230394147479790190393611956367085131320393327474705445729727733540985747629199157976143232077325178400626144084338470974305020101458305075023485529776322874501437511141452669395540687806680102353540505321038151391101059195054026393883615183812111218885276568281321727348526725895506963378257743227973887703477200765340243202070599743342273671791310425050578671259075521071484740943299673015649927787210058605385483130611780640058528170056869974734334126658816871342031698365506283209481325829390192753933844714205095999491511018482724157973169536976215238090996347313221727133632910822875895090370080408869474918861190986959476522914453249288810194131453527443978709021214464120748520935037845292218393750695631608052319545439004742228748571702263849114248034012942873233090523880517600585758100453584034951821403213823964726887232376182544888914106481869861797109677730474217810215948853017567711879882085621301492202410480965186802987238808803398324879304727117576030178205778000194804405043341273159667403975090373347372164502261552188061324398484820230831811689687480829054192069701983649272151445164848790284892651460834249937875998791605577325189197466142662811645984986225955474848296221835557590663891138816568088746084923419338212205937538989452698008030446212030346298955885204572952454221422034158909158428375589887661730648326136982821504709282862595355896208657476131373232941170506323015329055962817172532734782642738856955298423600264432323858466629923779046038044557546831049610802748982323856827290687722056519654236950531027490385659687680419410829621330147252333751379717388409156407333415064382770708463199168466398934270950486746054432060401324023642502869172473338878065738212827267337293911636778405744837590470516383808004511181617797660284501790212829758537672563157653349923373416294277194841690747498976594369670962599238451808060589544930127297765680273432868289037191659195299132404030777177365284162098597557740629723895648122456857253937550013144375353471112941000951291815786845044941886041998854780943559517143895913290706854285540191341253851907261766399989239742926007288690923379844143570264656952457377747114633357592007251309047031403877144777754368291904770128441387139153561445392257884016031714158952137791993082303043168691014806801025006879762299093069984578478542966511820749670770628604694517549466564642554827040523025135114038934238881922996239503844037974687217109102403550076774190282153615961862857382431473921600993496911336064638207036878543901678437456150535526368167547050336243065464456666572169717161521618895601353625435886068835436957442840751681816349350597689732055452491438916476404685328672018596214529141714130734305639339358231566267719464515321499989731807221917347878255766893165741071729341953402531403873940880671883702983385396100644980771032376976957818289568481623952743928327343186068639379294395279210050814744009646023160942178066692030544281296182073962700566201621008446677393684506749509546007289580219278555588002189967667338119707738772734661366441382538300787897434072006959226973016211472447640153789853104815553688363320413426938619092877012677576312725776073370051608475733864484800936790175469470088981124930190850366696015607933186013423474262649472296599239352713518885131566251036100397090216896985675236096976634845111603090429857862994064550666004573434898045576140707538449752389026326068594480657485546461021023260840758104774480930961483642459233891190141091555318342847235407146968065336939975751023130579632709316958191998377644401240463221879579705865990480016827922518231416961100484608210037636041655984799292831731650913080442440381803542260468292248303838535829108107067689028636849555714734904028467226886663042239739766867710091642225021527900025795161638032352903859643153188075350247892694118010177073869031262439235601322851045587401711892608732233685864914475979076554960387489793739298708925853532028002011717016556744396353975812943275393704408091090230243820006897891312846539163323594464981034831308414599629993790335110108839117663735352743716153128425719998757861957268184603839428256004364055053764675193075732919301534669842765218409209549140135777888865181086572677512702706350503095816165854414239088390504879075790783939655117515178105930938532019779536332455536256693496023888455296707647503292903878384471216435977656130177515273315024846446441249187255935815955345152900405970546750440541811650387066081425569294415244410061245671221175356100923351531297794460266454655961490811014047250944628160596126016408121588965462440840029864691534747041763645797315328297996139522243540649778647160926996704599506055759791455898520671551307985545353830737452206558743288205412780524420938915511686503837629029690354224361499385569749788988200350684251695388727586715274979795705194132400666348905414920020865493846712621509118807798108904237776272469867669176746650933915324051806020736708415077273848244231712854543776171447433517120844601428021035442729644202009195371735083846697506683004949124811904586496082273621249260518790886017325857621669669044888183783404614412251697755975449105642843794077348015881469946121869813890671091918434049730939154940750035223531687410209643476845386753310491570230787636957721305877712088236551424558463674958679045389416243512207068151477321724202802622132893124806408772216852303160117821273107574639594137029889193979906465828866926101936381947257938874277411269454005155375475606523408622826691817731489881911679034640763672371006082465346479792560087595189384665103585156586556434578210612580409239852560073830374578620646823942642027940566541826228260776100408413252463991814339163595839189344715443329383514310535486933313270360842318635218646092264297710226816729201133147543892055555959294653035695809852530036561183028641484783786270047960970221533667721821845222680913336436505943059949588887149171801441893972733758843482111979631747384157343066345845596966006491191451294157398920354101629536930279373503210204807642621704858918406415513052506862075744155955208025244856832988856254141851729077855372540576870807496017332908005400704432879743560320534819216798130223880264640327581088670005882521294860893315870906732804156099408731709747329443491135404089458068272315724812154399023950078879457471857141300208891134943144189908249838631066511988654347393467101900426679533634429786506041579543813652292136216779191862066647519414142756742064506161002647551057443603453701148964198414271411691712037027648108768686418823960390675963201125704457728656981043025783213374276784613589741818435550984370561808237223886246673073735572792984981356093399954904179359639521980299259429691637470550693622679030756101129769480416231838303654357713624229426960398051987836311016170411305890981097068339976982386085709756506422581929947152653547634442175536303664782567314303748892938545646394792060844281862090036742869485039247069156239953605386495679548949294954932704722008176387502775673489753317572954545688177843743918461573069678671169393429428237633245846351315039952840481851266056046825818341588185104046303071773688865832112884662106937840084755485040550033795402978383181194936888810514115774359175235462096892418965201348378839262532938310596840294446572167557995008496515309149360705885817474707155400636023925387883768528383244745810824640497655963351050874034945234790623726775891256726256127213760474655642288892732136713037127451853943294586167106724097683438780256343109710757195789521227812586853983148585865180586972574406374400837298634320961806023215918874557366735772536084187376215831711309029630591603411910913921015560367208324486105618813871875478867913466687984497642615987339811722219539437600895668452523804540564298134919418883564711641087371011007275381752368919656971108700693176650802958329995584799877380132765071976497754706617784707367199966405001703018726047260157960293050662624766523879395510238291255089387504740509892469474180208902616460764763445881400174533677435659208625569298915976580856312091670961269839094087222235031497260486611907179024051188692290402975590810456732172424248581285371786980192605701754588095724633486193787777831005611027012199381544594074328997028233094043870726611102198399589246781440155880902882334374156640430964479633245198465229067170831655041112881646298185003043360601908052082860567492551356103405517158115827739062343441220639491655486716022938007487647946334967607709940866589634193073197986489814441447761545746371794324740966424289126964785348675975396178938841574610597241594664870512578639233289207293143814003918154002914137454725819940936419527639146761060822259462917272715002463204556837076304313491837779964402954123138535618412658516511211970159692050603052782530169234409327993750149266767975710161156864596094370322326858395819603936658951613133168185461672048423364530572790336227002352661353317598463889206097039327580464377388698124579832593959988139020374585506159414247431523720677165163677307356607158304085111936948659830365442407384819207184413116431426977820553902162074744135506117478119031277336771410891453333951731424165493303520767115407747101616791259305358445884963378240975690546204947746971407062923859222352730695733582383268582546637292060389570914007064967620368724996336542850561861315802251929503632292969533861170565430503440673827753601388131494641237790281263805725362359914349597238332764847031829623787560037180834648688055228483364443229609122989563227202906747373769847536806581949247435662992322830660850169116518458453839164068687835547849933842356860412913926208070835067261338272121336699172884960010466332794787293942068077401987898981390943723484653881606642698107206179056759699123866000683450666744187034755991263240064446879666590979038231680000863997871239875010303945101536221726703336586848730725077973322901191089103333826791617462433608552346262148938886803181300928409320066623282681016056592334252903524046258848637673862214147315831967398458077151071736866924847814640791723179159803958749065078240040098330913434850320926937080826314325355339325927627611067657747099920500392342959278399670486145551869581039818195464973711424864912337193466660360874125612836727875887165882482723508420925063025242673902352862226029244931202343768116271480461338583748957595889396702336613002007282860643693091892431571946355109715879656176934510148232084181054210595420544361291819995580438181818908178571952994121384785741708307816947830165968450003991922457691160131158112572900215165146483894082551925386166561856904140012288356932282247745463799613670075777704760582464654265955395858270654025781674068700168222268039734794551670622539444834613834684354372643014939389435008328534649332398756774661389082048113211254536376076401913892396572636064073621822194416640207219641497591187261335016239293888844452287485661173533965457717868805587997105762068403123940682333107201145610247937200440200561926365307450698838907569271830523412861653282786236510539378697197806940383161362127686334497864201016101933860730482532560769573317357503402409153154394662918660329293715664281780951555760673000245735179148745178878529861380971478281468731008177782593942950523384939819959339333301267984806844158980578025406696184198921749611902624586273230643064112389833483283490823570067750051211145743953001607448805221537572677624777153439023830997524583268803014707844697288892999725796387128075963093350057244488818924944810698638032899241315586961357872518716595521522543348912457859990032152398051824003070146964939433184161807948201638869715542297039090892600798862477934657455329468063954393545939768270574273045558642104483126443140347648884532304514894000250619710092568328433360318868262380627687837049145840536612048764294025000945340723039679488542406282352167870741350325023722116108022897820419050923835057196619748118716093808500117353891749086936792846924200797747498212327267351697633788247136132596541131927324066148376894784446777104725925148981961824226176972355326534338844411414997809573075536792928209784932116534481646389951185142895140535119517515180687049632777479421079288424654387139119520091162534781183685439655351402685766134643394348700709581961595606673580294921582511957884269516229710915783156154118359273660484267384440566469585584451736097068518670767323730266007655285760364686597523907159015675478751830749484361024501007205328620053858390973755539955190869983139902875538750183532650973545226902088766955201289478767148629505486436807981288013625260041646294013786071476117597906165090210273337668679792389094571695418294327014910338309095382271121413076256843874640410421973001076887859555260102233071202755030217760451172822712596235108518898851053312365644806078466227229402152689399793532994803042713502766727086822425207282482687850539813106938037697153422819995039123950557278377175636503291608871208756885935549114040917756817730943138672148564926691075696189745522280867244205794042652690524167290265426290115725786545381725821626204779065485468275093558401073311331714936230609587783406284291865790608509281809509701007624587935102729435777285408967852142576367952050339678037173982012108997058826886658776540254577206680557315119519853772836590561982932231591318563652481574104156047601306944898737384813235459174854200674190250419241113557118310548707311419865645191758712262678204248839678918680859272891819753646214310601323527236736786648438067069261909611288065757131645717163597213917927424058122280160073905034397472050701904937147695097131699520180632259578790666901010572168414441431566385660471043417427899085128636453090674144376236329774859482796189228883378425903617674794171524846184655457011753580094364571602029181802208672273649765155565585137934779393825542545316043630958767538128571245377893155794253216346969579221830277779044340991009089763740163803795613692307413717146996158029300162948898262635556537563876168750136284407891844526571904781237810815272020129432507329908260868665290820497546142237852987775348100070911574084643367511094804808729755120786641323447081269805660634819378661887312930038087055704009862988859175710918841766834899087370340483597315940554478952189028419387608116536362483334050803381284895335749512751852515311677944317675915731841314845509632322320380548080560232633770919556407511420280888168357946592359034716178893960888875318185571056024948578206967793367694186260255590004842708612160589104907345597419582758095345485950288284087584320363433025646946801478093917883662638689596780065453121049373351887205175863420703409930511734891184143269849868779547969041821524826515611888227539458353671083141233472596886110743838059271994433875161698876811539223053694511697379849971690955882626624622718292820814272224415794090935898733933520609763028581324901403963946560281074353821798199957986620897789638361534258894098074780138954980621225989148579811470518554040900606920680851567623584276840987201166648945860095871886373028758692758406538564047429968240926851809986711358161030459765642698050906437617732411139089082471369456597535878002236863103808870017372640788829978078455085965498042192196290662432863523491861487716844776355817393022430178237532719827210006551383860478647015480661747189231925302448791277304181036435889534581626909180427459850738536266987994200107852997180629645908284849579457442017139653738793807779713970586238494230806741880621066057176550984246763048445541779173763687231841252433758128156641854549377102907395940411754222380133097175669944471905438722953625084519932402198739814544564584698125270000932157749468946730804063191589079789339722380474383926893704915433811711271533139916197632500574365954419538969541152425821404019910041554365518784411458350273796292246506200888978708065875305640711768982640961638143340256615499671041162211290508556449390563445778354278613877452989508100234331437212994264009930587785142187222056562320250565016281808715303566551406390096096472250515855718113245013146684408397378123129601265309562474857156003853349395459716962472988300602611908445451481791469050521231373638173351427880271522331847040875982359386637948751056497902549783200438600438826918617948102384502230583161967328040698071724780778733915047098439704338210735010927987207400813049005825017381541920677399792213442405926767083763389340627826426261075877946167855576583210720096054406665040846082780600772014389573958104160489420465530088990309672043625025977742211108021689219610414958165491896622323211927786291802542102590593078417758135158324165933442357456930314906606137195050003205328157038400167331508297430301358563301197495849542958156615331292684147487769656986399734369071255851274640150774607010880899897593035176709033977743302908933405550341960813168807993733866422476752791959884158346575026014089579270062576165219748103305857349818183882355507045654404498224587506834771310481266652223825816245827592335111811587653476205065768176533769292382849639667193467197060051305837470525571598827254172509129016356361663286772775959636946981037191671092384122586130339631034010965887347528447016156917947891595178163288614976574459720256268233707217095823941858944704583688423228628417943943407793935250122887112859756105015636386140185987936485768120570172327545833705574741626442776230368269133181186765745878502785067192887469421866920447635632057682664831979515896658320363261301613362759291470164722126048588487111890365414672991254527458953065730513629493343693900039709026877195365091879010526119881356489229975208376351202999843214330912063145588517265542960487486079305032007789386891820348548597361370479928308689554682022636764404870723747948718801071783993240033164029792894523864124617708512235549058503103901023445751425401299473632759932902656511973731311382869169395761536402910901981215176992449994694456892784989075446125568750835366322505033017393576228430713155699127510939365580314757248375398750745954458634610217816983616013864811798461480874022417603936354993847644886401133978372212684500675501976261260315290748579337965744596948680101041201210279853113496898313369152125674205561230360305406692206471735731632570208324649387036626887721615347606729495639683129584508070206556487499488638365007369396177681072575841435168474038469911677427567660794490386655578776878453292386899733532189930775804392414898666965366448674214000699085410233616995784071126598181695990145695729742461146264124842409197365376153873504437710530651722345877445384864234053053524589405474793355804414500473610156624642929946688856811507829564899693090927415025474856189712913180440728190842962143221493563638267463644993582508272707329121246097108331685434900502994541291149145057373301698709453235526640725568121150160105398862481537831793956283605238131491680128172216661191640529356407679623017570778323731462145597614085974351015231483424977429158453040674431640603286225242385756205915729126261064349231930992060617063144345504393197247203487889764474962141008460688498946187461826684555690962183849563839042131781463652638187480684574155687228267731909067428773164693997438649324099914991186842185007744006239192652036909269580496956755390232856962205417652768738636159855046306901913127601167391945696861857347372518940230570335281456633216419564628653626640820967337642117579936769407428095991541429709519633261022131511218612146952987811195576376207857305601971385661131678825760359682681369218505237877055247554407733770829615134941983536353405352697519779791633968727476447974919636740755897173663405153523555234563872494732017950273142608723960672843815989254645256678492426812195207698836429286848455606775705138643510426879416753764029981011165375910414918618605149652305418435395918105156872709606097744195995945316996376433539071550010039593270540105528549626306076896950639034502405731800589664809747666923716923300583796061991099854029573321732730703944188866370230136084015373015618772970067421546883217179590044110453545408352557831770955098245087799667799632599328222858986349529095983999668976911603752345872301930894937841440518083689077661608719663089095052429811495809477268448976752223644539090177722784787834854186708669666570786864382661475344322621813226769453958297005510251821897578215494128721835148140075732232678208964121144793082925562250709868467832584477496138656146905180009541461038624861522734244338278583603187143026126532495012124118490352087918884771533845764403533025696527379748232250748317938656099107558515719047241815280872112753507479574716997136604003102895668327166919543370163365302618313837440734252695914332576099476406794600913922416422770233122977949862819632128326389310326731577835350976078500364407098068991583104185204578507948661666841965489923516963856447523569657798867448199558192772575973536071335039358533268475164239693072888122595209507114697731965736008167553691984386060474480099813752524736782560834457488778155557135256242608774772785629836235560257417146797540531176963826235075849150897292317724911324382419583090232955060356841344834577996906319246750900814018728768416242351402437228542240871718693771319497684783916730660077293244273841170379710446869860223495484628326953102516177418858634028987316087570480899864585144813360943107756301525094213867862235387097914842064338887582555696370726275370586191342556780686703963207920048070885965655741765933912005335804543493003319901357616719646863154430545804407740095714041266592897191534043193613522170013385554765711751894493641405211889871347837441227563667047568359135043223748519349110906105300942147719907532019983968447343144416175657312758835834942892838164745609010980343752855367545234331826542701426229929739847572338892750116489408590761134614813496486458167106498923096217064319906019090211160404073708973065407060423853971048339888014955818144793418564878210421152437646512031867587066713992040846984551311124289404399044921851946160334792353090033177495253257355277207235004104934301659445277779440971847295444331991241639962474741353118468312804189710593914099212824998782575485436502531011651471885220236041847525302656562132065753561252270249388175783750899424052189500597741867789153237797268249314421129156028463741688865714978396527035905030305417946900096270640882255370676069722085346017975041856324794622985095473400058969072564012437330001379157757978359590235321272956849241051907167002299045712565205689718476678894477718803000087769555664116639905280653192162402645154745267464994930658445866554846976904743735199138014514287154035452319196418219667595553952376495140317296969243543586341789425929261523479043330460896850037781683466423425255596199991773323754977827144919297050394165760282377428523290278012823923472462874426187606535636911758880437001769645688571064155392738864821586754615063211205224505600807391267827138547648348294352678250308914839777146309236441754688573690208625474717485179040426723493306923733682847708905540767980037774236616826267830748713255969462099910923522388757469190766327617768167912510398093783174468131970260366014032852271095581832572590972269833395874330952231211195686247509534069641790497421736207789548025562436335011581582553385516074145879289942679425386521001571525586755172648026102517685269847699010969040082301370775743209987743541780776953948660468834747416285507555405696723825425483790472996809635512871943380085381141286869425392140753623199617344026070647270377854151837011751927241686166715296172627345715754833473345196819966908013311243665014191603950960423249506303116148946925346541877757724752227272146803697332355775996114976383969352145155495648846342696632766548673262266138008614563238193085782834172804889773104184723530576227289783764508053796325675665640552110397983162676519201288077961883057311621239854381516305031043105864981026034178309554888620645339782873067823166364360434013604593684703911823508645852408420686529728640868878889263905949433032277348200296296393529184134092093307013777228712809018596569931654079550949265856912931842249197153667507000585868665650795691124184990754246150914118819677925461345037793027912632087123953028544140143175805947328774085570250053163601022878258989967193302011780831435561777451942965628894793293401748877406128724524374633552915644058306534654245302956797937092513686293475072871403248133419121326405881463373766122433467214836727955948590508730158152314456150206492590610793599786579559106526904340345177689772788576806840867201444088875037772406444114011318478346757746313626144145134820906519473974780265214178421825172857169472698777740034596728104869657392266653552320751799668455283828762977766976639481149450772042085684688700629213783372746353946061059700439039077345615301513817706529693361016184542790300103263236591846779598306582802015650817135179122800555913919466630318982522955626338582304925682390752456524477576663156557931486799095956927110554284519557022633991314268415629807153190575389478488206455217929979902887192407106030399286806546288541419581710990973063208816716462176912601125782300259462499145672209834182157787040115377793094140150394205746811542048401420503980771584376468318355469545275273007559054217530652005224985137489249686532281843758319273047050207594001437872992056800224531400436856410407764800839080363571813139488171218169351881030359788868239558662270644748835061913802523172811717498269647253855527757089556982150745666189832153813354724239073761704845048009731776416328041400434027626529836956866764948594918966323703385345882832298648705097626022768162731194674015544474083582400718096115361205669515097047956691461179926582579241027696358738315557755973746709660117195897296038290305708813332685369860968588883896270684488109180034425174785622301416522967490378027664823276290882497472942106100289178593843452215443921447017049880772342120669011232822088073434040685210598375118631204303961796851273606499614548434104607163347704478284178207574026175928734993150183744529970695810389625399801808351247922454527785245000493687388239470102558103530226291123602532757507036417943842033805179607000274787232926529930566973294622923238564626433293553333289584738121703519750657497591129754855910310965290507283342231820660055618057830350907160731260930172830920390923769216987463526557220833715870241814920096746260809170272413002195610700231581599601191225210309264835323554737849663438451897630739492048936223558070945618256466531781919543809237793443830489137026779894312490051441021530505426213417945096961695208595441259262261915909248747737693086141808385264802899225706590944027877079750474380044516754097290254005686932901176729874895884433912671733200882391277607381025370379198408552599204930001500689489412316523051421165134626061880452811525493165298808164696445560828084350143452812416257333213924358905778908590868986414723586929756396553916675240505487291061557624211573070574686737996330050050722995744624524957305354731728848680513344344223461895408469294987155033353465509585481610858870486917325391048837619453128176926692012696691100886613068131703221845910376316327409277309412758594731258041295471413421181853742853546117291427702509044811986545294887097727355519558405842582152928505623027243159025069213999130222858765363565540905815117512382917380479636911184600847515723416870821110939825778562617876567376601794148308230555122186673111088230881248574002207752418312579878271140301935844116510831103842120660613847616393301476474811563818194019229698685417092555962248318925882595061154521898307141289499245798429666990667104940214144332564860414880655307701362955639239868118535377526948338294818083205230470638885543165597530084881420517095228195042544688473425328715574270365205083149558417925970642874323479768822253844204825382312169223823177059824114300436110939048143571040764871838641708516550912703034728552553788183513684031350359932848798086332137468698264480894905308438837710376485641268326879206017393636810983847523312149833332061493371147733702966248271433075841696029845301858130035737362835685760016108348224003506020862585621110011394851199663211400767448152577203055770477722763702435893737916338789133840969943130583333504195376881779811127191112074696695737160975060161419960714761293127714020997667136220566333090607325220134261240644476964057066153613393733435813035745323021549758582319906818989522761959208859790386865355939430764726841982841847198154545186211560385177753735001847237637589607861310654712072986676800727241331066969350211254037391289947910677463873167105274609458717133579591018956412032170595148538964550167719190203015308167997893775448721286779960534109651872106669319642191750438120357751764663190535591649977845419690626746730413199208399303629360055798915150024529620337233728233432291087572929838439359160384348984237396344146139670171942154608748826877902139457290791703369467401347260992894124003459273646810246898817440783681931319965027003801662655067584315764750809801232538685611613247610239567018588638871188287321201976491351217348259288480839805674340665916811359802080229607758102790591650571252694373247052345208081487779859610964044946513002856282933529073846083483058539816383258679751003063067619625065789684887634981548977824314729757755008710110275187533741251083412362491584793193612093175419787248043307640320662602368204148196064220097256514337265658442951003911038265020909061305541150205756371341843293065659798409928402395703884136918321692349279615316803849857778917454237645117688312083600425855512630234943039696005336911956809236272984666836891176638235298376658162761915107578738475989864478118536659110161551799687752850469263607034422304390436307721102141906223106068906188404141095179062498444598000077428839702888425922298382831028307364375611000363211129683784852659802285878101996006646940460274778166139576385406698228609698240176233153774902281232923275808049176370356235495821422494998912773541309763704483457757429976395452669978164867117117355978011482208980562313317124939108653113172050059014606852660512586978794785611627625777265546595343479536102710099542675346889691558630183706187492986501332949666096049757996859667390462098177342915712542357781519507537099892105024984795595343781253292942381632310993092601760292153731902851848099570118016730598118624265485520129880901099246833494592334174923791026909199652137783737009872562358719139092861967178002282078391522815948053484011215599939711663398734501803387927810667157179526975055213813627571008135099229593043576536012818952412205976160085200499227493062472263607593708361858658542793875269481087129936477081870193809866459732445963610338123225563626872550423413831308892141821114983979342149409915658363596228133229649514992957805492387889049157540516293326158662130698007605374637461091153461919653554823791970614309074769697200541508019302202412899000144604796020457640621675588212514011762368471779793588142158519676620515091280885404597796113978777467354066509766454560384122263622486944491363654015586892573743227549595080970616052198921953612572941124385997490530636872759743657993664118254153150125829379840526768556668180250353202527239061438987553414750564983649447319867786095440048252387728571031976063513254314429904795264966555183504664302188581741617194449188713499063510398484510760802800406397947336788059375537441492566738100354813209081593184323931494152603926449719450856264304500335166971534158231791760648326436744075889234828953607496433068066734681125017765228645121759014818309715060165377239780666210614570011113227848461731533707872634140334588423560053990094344182745015060485127643452839442779408571889689613606591331643404378509128060363277425941835003153866016665781729634245956134401208780228703817814230835008827096632532885197416545377824386801250608847776991716354913981031809401458654364760935602869872936705636819320515405285460187526542890160540408323382685052290241760989652456494313805891609333982401184986505259963142075331057770411241220357169483938482270728253414921224964570654117652091011620429946563532120548962371244630202601573929037839414147420122337131741328976113411548370358910434942363801832689745098767040957498259661167112019824645209444016583076779615744380323412161426667079151808861654479256053554421920904908569448659966705892858748368203582053043864430046292905226052749064802621848865366977354121194763925738606171438152874702693058257307183472760910003674259508968206343428907118621969166728179978941718833258663489008696597247688144834074679471649135515589287572881395953199644826167301252538332354039967761241816538886225320659711586332179526982560459847498436596128933935750758326381168722542489877101270236798151672915174434883042713385141220434287200482936977971299445372712840847866086649323669824212219516885818352562943664119186763395479807562000917660712164328294542915637867677669943842220336035556967847854251070835812271871030969119483906062172826936780420102288335859464160960986653008749062102630839033851414245329081090386304753539339463829062279341507976343183548072912946114537580742186587449639634271833729587116353069705159929976625599886812249856580558497404641831464473217295651273202180910148075713815590679836256607048445842905748680611667379430848361431229295046717797730017677268030962856991802180736912530290099744806341239582178776775074494098516534360392797655744272015189390485387119560753119814498292672824409508648923593759223222336477561935473890453870308476831478867109849430476291325150744206299396242314523462951125296873478816507501451499700180080868987918866699532334554172355784707433168377240539858198466459930496266480468057783849108796119499819788697999039857604466755297741884044540990598200431304179852396476820598772875713341527742271649211458925497684413765255167599847808305692163806303438457526079597785928776439583837883471188009214212696213801891937010028646865229239985283635752523066731877478532281478628946410309381310797449907072004733997937800921701030996546701337736795559286703163247278829386944746950769981922757236337048862711910799948000182706233837704506620942975940777549297577137486164063843898483073615559017230278438769370307475510884716892373712850086827542092331576958067558094374148514284523055572572985786810454013735936047321827739188428522201013290159089333879573948328210066722984018554782749230985350242841636388474896089483502266007491622482412994282865274856520407055381063282881683121154508472847882902555861704876738824544752413281054508296006767234309029874851792580082589624844383872161798221083977840655677411742328727413696216336440969622031745396676135305982990121151930730515898541055166991887762244908951069494376157730015763708455797148135694352606520574103977484738252851319263238301902962082190256295001271728192839474413632146303384028986940933630394148020668967881137460181764125971187462821241821734717259750492305345655812650015890819955364821177858560474039362478556689551739584711527537880538450823960967296542360014377984769943531995925113566402989018556397677954196154236273944019696277439535617459462660619218262748731876637200937095311307598952908529380344023646352544817511781618364143580557471967880047473646129993715944402352119320996520455706778053422947945787802392734838482324470558064474398290985667056709228304085988919243756440419358042136297126351537987945639800447173543420636817740935342671781804378288763869648188098365647546237596110884715618491300859093538622120828999989909842786282666786008573571467199773688130358214686797239268205644852359820378897414669099715277613879843497075219878725820095915996097280794537199106302244985217828115798218796384257971513411847140096688571098553871328599982486419162762386642408027119793481273035618474347682911467217048273073228334539445426013816065011556050724844336924509577068921541610881925973413489690115482600345762632663662904679914113903351922967308279828793348963488354425484494089025341776827747888524628253830726164822137659768390397491235589587175188729939761242110097645913033488641374990120566307437846623691194464821451483689216821249747301813532384547878829721491064091369814531877785042379696754227415938571486414914736850178572762517949461341578848207199780435921053902516318526087900343634552205109245370485514982707687404089753268594794495008157668686948412580685115189891774644287209615908952017293755550105131910675402879642269623337346722317788492389728003526036383021414357094356174815593052454394092987093941394134817631267177877555398506023382304640153561950828526937987600867121728744123558224677984391794005865420343298659065443794452652231790718821749749393561524696202752230848965817401062213767280699436221272924258633710347001622317193984682787900501757282799983223208101442168764624852580976000570290510888408620864971007210201792909176284102164291477413445221541485775348682158419358947374313379177659875522891602120495261960451020678928420457949596805805522457413326864186821372010213082469545382264903549162244856315616056792874021555051354631220451202658270692404060736076825776781416683619258687299442034250964821081513453371545147314741776747872766099894384869473575085547876075701825405777376367926611017964746088833861962746858770865652366021588379512572398576697136304686142566299156702724893063427787940330103203094768508393344687759384646276224769145789884196778317246442590729163107122576207085214337633672203596988813262902556426240931582041611951681399589513660183152479954215661821413011921483145349649716757560596173945544018553022680621708172999354397557238798761889871867339984921474437812199628008728792291234127500604338401696690888068511200091174977866273266784746662144638428913214397161269501107480466262354340266882395258505128911019717941166049583531846312867521649190070808889318942691082757218880308937120648836523934404659528679928407641171807188582582694801172691043210967959089184999853086546079991599272724798008842945539442220353924219746443463006387401179969931418905495577024663284745279827370858176956808678484764542634539001873291944100141903509198350898791503126397068079803780192737433233815596593129052480577060290516504599492814784437096314000448975199676667735824958078241445209563317381707835891686099829964055241648535135350765476640615251988143783980130334596322848253012848995239440814326512567613005391279433236845567573109550640990338038686806257952628438488828258403812640363126713632606454008930929368406809485500723572154832793219201699532558858766766452525897251361211121737452012857297008693078146884866857629029985938698375740586423812576889642143468517863005385597140325137796095051485481425731920851625979060907784898844269803680842919064505928255200912195904870157668265304453574313186771285256094099269210542996727493078578658592454448710173268869559456604798150372932826032218970076374514387781192907639752350707025344251158846058092250762006117926959628096376682313361656836092292742438879372713483412484618061222713930558037591565094291320335961178218134745290797574115102316809086683028508395991074359293416726748928675014675451340349231059709422546199408606978364699758823673811318207859911939741636043788057792964477530404790744093823892018161663089756610385790790839568777069944758878934961238831274698129284689508236455748510594475340833287346553557292208933007759363210437997023229121657715587236724737871575675517254869336842301504352680753255550965344980251124070636876703055512238498319270788827603406978036034126023753830348483212644434241924601504729207633056066615198029055355368290917786319935546175279218043474372614145397527075474646133856674409739935458836885329390532344768583783683024329852874259619667839650520950060020894399230453374558943457614121098765488980089306524438114693466856963418338903693301064826909910448807416051452533219757974233865596025646379417333123928278284179782437525063150315331625373495441701252712074355480158975146431760916171318591200178713362452771046455646247213943458066903097619647146022120484069712522160295328942079170602573458475947958376116964666622182449375555464103411213484858962298024908298490595889279482987672817344975478747234566391525865356321426122242085647064531260835103831311756848010591534863080308511711742050187839559821133398933558152187509036682166004032681188556684032365435207765402788188990372118093602572812223687405655139524436765714682442219548525091914848050663110949293559654327396139573461208734103191170855717650574857930575181469784210288928863213236828184588176437304709667593836387057199259566291956637729919063853238165236918754053580042248854336243588684523837250601705532447636030329848323669672215034093179661311057707121030893741761636217576455093097734036897722304953358330554161606016460049488266769877063977133438513212293783657998991439002382826599173312446136382234231317532676347271676495689791450299821163035523499332118064356449733140596640526188491198044744603252480728975890643557019806585538823343236848802020205780290914428950733698807175226158655802296626103221358744315986421778005397710128083440235870333549460574044287229250795685806619212296311386786592285086296862897540093335553812485696306897162417719084787103018002140733900751596810559810397462072528408085855508542963032181554127509234689817232124300680893753785026041360967716806589197127771343972354867276262991470475605254816690418193282670860493926580013771347276561670896976790162753686283807003396887443832160624627478358483239153959093875471447053815744158881088139818709338488974143122972851129111900856863456920916928009494949569040314845743679936971263261474601698815996732969467941734868494362858487015027289668145338187437761795294225502148011385435683063668476406767511246783058833748756644943324498909269063295100446170603022581595584148281738387272628010839376958487145490949763248514622365181567150735778663305747186518341489934895078675101282844941512472294475511689309284951420847739176441995186773406917116423302565236020726096442816893615467320215518612331727097640696410605190870361029290912847001293745504305022319848066630692361753021898879586054748073613760173986531478955424429403929097850790721660238457127126527735634670853859720851499788546864160394758843888729443808685025350505115836049207506761403204445668980757132117082515326046779573483255330691254288135702991357319078802992390334071284022453975979689313676625959385091126345172504168752022156670201350397892143668205470241979124258760052348602237962528256357087582903507429798029123891437207413207116517141177381246067204712823295904166994927011089100013417138574967001912981669964623401684382845666507222833798189744462598242675937301722440620506315378438431874727163725214559978143417127012197767139346006142918580744741385001484776589460740829874717368022835302940701464877053869562965965122716190264042467763693222456856588870805744991700556124077277195158258780119635090715795221382971928419401641149772041524280942239657589477462288521889803227966798137814365418273650613924149150714736166724784068340001397858324041476216458387496789267492423497011508194452110118872496813271875486053920728481377235638917263996393052913796167116723829596189537997997627411292946132767157802443671808893999094026929810794315740791767286526569464057567169632145324399048694310381859975680245532548788527038736086333510687780765612618290164948559284284948248471828630470576940057083612520202166248039216371358875346835778502119601623507055870829892470206248844288620024011245659517159582136724490640147407538748975471334799461999694514435376033981854354968924578295329947034259013591763754705241079639833252321223847181087230082702002062982421208703893987321821660493583599904727514740962947800824175154741693601644862619444801462233103783470348514992158512895244696414496425612569488760146183318253763307157750132961002081404535464257126376856887305110005744932362765338196267488780798629337611885804982878435487852370887154809734509018775368728474288175487381436427264422530196615950828381996542557351015624465824638734347568120045558409151418900672130413333313273399660281217793617648887714436028766030255043891511473947357712976594694252388161117762347688002057039034832732798327340835714913081611495594168060470437954303549190576772580406083026327659475339066821664763539500203891925399575413909359436276853220632805218683190184700813138805000718417318746705673032029791517266629281127907940346635595557281002229039757913948494277368068149410520804422107110690805114759810324906032874495233793770752842539865232278468371444076590634684176961764457779504649908809032286744416239509720801331448551691543329938152948677260285221883710678355511675278383229399727243945917388962617960040783997952439481509799538261078032051907002120132360524144117613206820660957614193110087659165792972262499922726854804433442940164853517653976667507754434140797689956189039826023900112681132469359310210226522489518295510776528629106955668388019615819981302086255593353559418644930619222019303941536289600661511064401991009652578402389081201620286640246784860451788630342312269257582679529739118831179578626856244883800134704929719744527332319964691056892228344281261392284852962038701048270000053032177634524006956580914022900006451823104262208239903890131694302140687819167091017270784841137321267869287732419558598868657795255998500333859585206941385155134200344756586817821033435242304679395349594927822590573808179291040341611722271191365201977903578245197872198231089363880973465162706549244497344881540337117975712031575115542261900326247321516499560326358979375056990797219820085051285105454605014771323140597788213464321081268084253376608708503650385977179297608150304627889203311618790974612996275524860897160514961942597294552445756198694411761861275994855657709837178054483168658298089965935590486114625710997881375913789846999117695610386599124679719065982292001423896169353749776497626998810296067135696580995320221777137299728670686083980609631733433514353696585776958671706916801084329626040154985355712214198294627984438321477318389718285386649971500779379694807195402136839310982208129710443901758890089784246830861593460471990886482137481516886732899278743687805612560335696219720967135594619053322055403376765938210689569920725426690491258765221573043896149464703495538699011862528572969166297741316005290638987693738013361310698309612578781104027059150188460741402950772705261731505603521445703664576229907686994640586030858168936115812852283016557017732238666165557035315810920626411195891984141993946230004383705036572358736269856282922977756122703776468649195316561404100170034241972010050124447685370424505205488867569334319919434633094731136427845848690935889383639185223090711283771980450102071103591139362349348175097878021493940592558540364759421221432149916279684432719609774097217622795722471530174484120140347407100275107547128009859441061270997208882365638539606042389828813895511982000233804145385966990562694837190248392854504344104005346231555522007090339280944491101504062519291826728824784319564211493307804684157521151339630470859143805878727257446735363357366513586604011672315858174142011947806608819534649049381952937434363010629029370411080849720380925960921890326441149360316218662822449075110585839809426519476376899046896876219465278726840839247359438676133562871512402220588335466987375840036538256515909362108437155802302734461079541943038551736357355808585801416249064370114163284157511013006690625215354922934813185451564712905340598412751124442409648261742587878988867827467367485272250468676075547340531461038005300960184150413884695490707357614489951734568119574866695335484642333833672759998246010251496532128962624286574025189966442054893833800291322858876124210951733968355043527758308783554842319168742265289234800815700985242796236537313971753440641478558372833476708645846932008329528952510081896036299743874475996796963195088015073033113480654151383922234670331697702176249124532401047070464714162531842207809161253406245349625852589758745602768231462937208997852937635812383184966449920040769566780483137653295789043975697998494644320335243364842655981794170047870173487082941116216901562993521037362807484542888081703937414535547874148537260019668798321742775493926288236651856943693850160923838638907395231925265246491467368077179361848122422999563249303828940701054187199373470083130399606408202856208667643026147661382827591155445384195143481053047577824873077303385708567705018999029447119452042211071783577662598132677319559880144303266317219110994014400833597599818720116627176052717638871044433610630114054900168391342065711175211553021448469905117715568941172184472929183706605554307358135868825867237201195227085763399242158007484249765498263479141342660927508883575368718417916591329298742700647936612437522452567853214656407196756193445353258041035753628485928511002954246166580569050216933390666131588628255692283857322660043514208988381348710356601561544778588863601288553895642006966734208789934444365966476424930183606711653535711999716409554071042246077785785660532914219492484421233546806285797588688309452953204225029031866835428974559733390334917855937045362448184937895121181002883282573243621492990053802135783140705459878740624179591200586078790361656118244973272323988696783835650460700836116686962993366827633389937248648712633258875070166653798659446711264768412579707042260190014968150836586737852057672903744180597454522343544827127266063557887526391910174065204294824515958307436925929682439967949589725143199688858055149104984156952263782926046944497590473918624925663539507960172580870431226680424816365932496225017474337406057121042683219953433201858884787262230131046145778364268289944403522568832965224293638813474206249027850665641580176029328607842829922141235842862555488635196496489021496205325182305596983622199052693170490247582496627220759297269980464447920118798003937674410015078839342189907013424460662402491329622200125182943802889323570697161778701285380976825245731195768929326128208497519764306608118537535005028595680657464828005185954037661275455203845759468617736349008439740917790257119726949329281781058937286451631156342834206840340646672557543270904964341791092147630364831771669521292509978987336354659328817293830895300212826522883076069463509142107437510237588870066808021415645328658586623826210427379644558981512190844225351508555917634169610058395502753567672221890900095195569202048645818030586311558677524443529653362897615288413380893517361000214859288460806205396775205917913533715031956433690624112418922657555171107582889272488538806777577051121229377978242687339884145060296026105860183384130342332337098216653614990004120766322126849260159324868535713371753423381003468939104437328397350003817834912922059612790400362966748957644336583520505982210751111647766902733082134079003776985945201322280283707260213399889488702200729826318594587508023929497284021126382693561727933735595783916388075520485152660030145819174408845990557278850951964952416080603342046976100789425417028398007051379086360269307973347272890608444122580362875499799554899047200813074530254045114038014872211087529069441788259836037476162291871933205737210031337494510149214607631623628217234544737642135864615128251209685330719961882477001976040170775479628717572665245647439584355904469988725740957704940490470950801332268141719063346286704327688133325323560467322689120297084982070416337578304644833148855011056740267348449434625659803735502063329026873264092529478971978070992593536391867822700620635263458377030746751005045581673242313111563146506408873847085449418162947058661495673256232617994426837831391065486698470082273791513401377972273400303372417806830872637068617259647916433875963122497020013363910018472242618844427567090792674395180456862032785499705761957301005918123416675776354993633503288604135977171839560936946889413909829589030910633012462262876650414097642011418920756031207965564552446899816939659604317488216786212237584479881825028954170506584919819550098091490166186648900911828913801396880151527600532241195956764618006319795088730482236052931069190697133267218916628649154378489733337762444000887717917338816671257776594992334309208017624178343474702674153571801848174738891695564519754091770300117100499856878290621363981082889860628935162336799018030141842233137047024360784633967800943860305213783929508094986170570396329486340603646284025930631844802756025677404912171075349537578346785768252635592100556346785388456104959123299042651289447525167791585134361925492691067350516695846792608556461518312939463417973800871504636646061844402374354117271055141749518568431077007700007310572242210009803440808696491583465086074978050253575322980893284992394470340674474451544830247303730208331435585128169724207045871199298734134356085771186365665234757372409529252874544351851413179856695915522793894103611799521450004422836603292069520897323052507161528396697462257652800427631045137634357042124691841862233082528535313042256890900737208645512860146210754366600251882718513635235009306818008316661188889808733426768304266764858739439990117835631195317829861239298624810729687713057955092914514544857993004876140017571013106890420792047679517551511696921800333851430432096067100580468258666520227988123090011089387253474492061541649903846142975074448039139215205119157801985935420296958183292913683764156736441665430539822514073299653270561723212124853806093191878901655405328482542811479538070145338534566709869543670178676227755624409130870302927374928964019900786639819239061156619211246215144717858506205912761388742227648121631997800614548569244945766108266077611562110995658075002932054866491562831247258038773985830027615963542515291669551612482941155712676427896190597456791650556883333630515237795324333543563452122602633907330651609149690864438596484151651025163025496287159215223264557421517528510500397534485101005860944051751171287770149928703303211931733437724968152389453092603998874538366729434073813899815884416460663472975336200887448137330879908926261594472848793779845862039267984954030054980234837290611970120274439064698558081920960613949387224876939307145550373615185320373004930136644680748788325370784236834732090400351009168497656298090928487854764847891879850067559099874774862876938592063860895547963159520754898233794717318844941298828961529685590370346850067495315781846012179849116541900953036428882045556450619240361506265425835448290087632507982637637616877869029424128203046712543185662102637082341643949098212379466398037620943246089946687465379459465999142575612123428636314087619638566437782433055216626490249912667935767919815700699075120539872097867534934838345013131912806542954157865154926272135129132917826481319434411418506990825982670025902521112508781716683731885486122608439730446336587894276613525826556315941957942685131684833031032745997683873152094462274025672846690355681143585892451134887830556254293534923941201116389605827611504187421447477783352900322551222447382303544532545444374537687600577898482722642492553151885984995904805137909333603098853400036764330353799272041486158556231310069670663133864443533368663756412574760351821990127833874600651541131124990291568916082731499329027872917649756589135861705442482959706682446895786156318839835776149480936043041905284702948188745911449939576167838710969130408335504556693013155284626014099966164680299766205617333564221537461613961656332557233956294148254620709041213928830683744165676058988368897391132850115050116787123377927113606442508409269403144949611761887144156425851305232378504701332142190382570735629265477271948462421618063352469398601591720480204736259625096080763764766251846717565086856509458489716366315109490535361197381941751786703042012945737459209448586579735455543211585439364200868238484566544221765171812142190248122520630481061511078963773039756358304326778029194859586623013522747128148968466561766319812978633083914377988308854155280171900344496903145245230974894796616612003882654847768191596749470419892892508905557641761104959172983620010367321896433969593315121208068907449035005553088925024659134831109491884947843740200347602570190698943624194251362047173540996243576517841781082606759676003655147464810641346981008643147175729185289339914854603240328563096746877945466463485804471740666146443843913876726358378940768643368660759542120668200957372868606691843067036166317313816780844785817418523980741024146297687901948071265434533436433839290750131926824772552551750464530536110336321561130218002732437063203432631477690957586465720485834046643045473975259793310415887845788134773372484655138074988939199910268529426008085636697917946555972282892870912237950180722570916443200001823283394817281122787506048609455566226479954307924682633967319415727643772743318786061944098129500669626920509895437130578053827406279935389358236851851110675008296921786730795228649738606864709193875557889789192648864982487282297649078665316484873912310105082200264693082936921526866174830910938151142774092915088237165569041650160092004639807556426130429019675169227187056871142254903127563104096368947192430131148745546643555352201259982092880166328401440680466064200280845513403879017512794107383388956607669342641062620863361381039517355186934199074914070495639438936266614264231799503930433512547730850146792458133891819122536114997564272075823349290237522149825821206591047903111120910574068289522810040209476275316045335944795375433804254536865291603944469502287304627066441172887679705581900632809581373114992865708971874505600225947401830243098559001688272911459459178106540095925589785324478442185731448815048160300117610734309027722148292834206653393228381481787048485740398172396588525031282839676482074358846997270723618809674961590721763875751529129984003611905834956393452465944295525579754028691898908916631833625413068635271641932207535159900119599856976407856157391817102113237518373407203652153662927475082289369486992763588576093165182594009865604515008075355698387064892606894220191645381526564647905397080283761161371746341309991342764904735124122862033845080480413611890743772894498382918084750970469278920390115759955782955280389252494182678218553120158804199930417039692615302380717379111034711002748394634597716920706000399828088456494119737468535084772739072098618009126459260382668150968744420834041249975253765875582385683508069821633563865954867087964727527128474685724154612239651216970012604039041851217238473487218464821205155107770917335899481316860789953945730945505672864267451491676605099341505113739466259956262668469469172281197970844415511418666625080734959840407505364722428344955744635516226168949917724001893130847899357992742113492077035457657701519250024613919394421153195348109388555945606082281203630907645769703537077158404083025261005541927703194284525946463341576476601297890787807269737642595120133255617116214875637901504226477289507467635710282844392159732983704056104841022258881370328244666270462051049062953652176514489216575618500478983843940895794181495491923915494024449406921716170928478731682599224482316604772762678955437261864197119640992318829042564079981902234330899193765933098327038935451870374761041901822178988109512031494608939875490171556248656723965938858759395379421019134285831176307223804222586341912770259672577887884653160467532805565284773516443097074676023508800923094006756622756327577479059782698895065218436361955756519421447082059062380480168267467184329719475885297512886174644847693630263959773189771946451440512860099193999803058626579434553964443097640622195424487412348121660963278224618325119808712086406138320757313273854421162358474684843965223551681047214082183948743701928465047587445785625158241238760638471106318976612270092553968466759058317566187407409034339220608857217044777181432621951048007342963440748638709345485473914281617640732127962895321234254381018878546225466499522769528927578216499087807801007269119113314664804477184472696066470272184250761522151914870669375501722888457384250084446579675429701623806751791968142651520705255124919874091421492650178211264342076481210620911681604150278802212332063948690159068358266148718988572489380076480114699151463331085101501587647290129091270377899232675558783729535813282038428794224129238138165099532272584049529322710430723890241163918793031719777960841088271997607821894928090700813908771998430062273363502011273640425327659605750845918886363385192913785722765135045036208194082128084422932244949871548672951541608914815631879126285313088538743708404041397462044059317123191204993980262614916696921990795445873940182651058168823301591186306948742252285649219017732398041878313827159482319463923634651352024705135289764757868177650326868022407740263512313505591112761851491087750170095851084660009712373097278699356308651229399609818213863441876561664132116203180035407922459587608490553786426714676806132940333171930492926981458033490204404900626688093257358560541461953833402814745050035615634511042938373024601283806614696553822734913549547156938677130236752812293857662928570230841991896339407823520644117695611232835304664805353892671331781558522056718410313191654990143409824041478749969660470159882455635145687285666142813939042268212995795276495228401750226150489041933455989537049958203444983870190580398353326271603509476953482050883356916153019006103447110257658327559770971749936545373167622964728802197095957202299920431613155204955753581066365478048948325955356456104024812757777526663582757420299682286705851284466790391162070209481597499488040861708579260502666557432958398857391766763565112045974278090117628490654035295210115524268400145806294112992019860408128651790991506287577046558728734943664501803403244177450805517646234335809335353012736745750224261111916372692379954652010874569521180033569296054035011636822514569028426375923104638644392235943337972319857197271334557736481234346525448370398145816624587859578601415319403674481899170058797967266733169397988714026663051465800538488723049979009121323169881314112217509108623830438304910770462584155971441611495116215965427129400241172946606053373543224224498555696622094920895625234860333944774453394965907049889985906232923478966232844223557874077554138013930664959600558897624752528049859467789034460771715605907238710782279343827571956980469175601139014585672605341543693713997895543838077328910896214345332426007790669734915978261376743160892695186294249073773025244278199737842960028732508268519945209895787373941619127596441825908261795152828962184801439248646506925786589574694628994339957837965898845613984847709641876919720058016892010430923300925746895963210320927745341078191216692626634628568922916184108596412463137067206459712964801707063485660977507799052589510740081265679542031985886100002241040168957804049326654829373216684416483330798334648313079169034013150194887116939383398762702769941379444723190633899386365699702554890734200102101969869357264936960136185890510706685180241607086528681181924960480264275210928668567534386220407376026015157727986413611580575537969894734376041470825610585252908083231973603024701890820602809637052534127154351285889535268239366187131811130535064308644427641102284454318046559386769231895403028360110308500710043284787510195985220449565027477004063289835050350628406777138878247426380044015470097445915715935044428232704703476334106384579878033229705910028295022762875883458566403845860784075320834932492150849317367587947493478674395743925926202404707496524452632511949332569969903056438123286998866355246046529903215985027373747556179170762008964569503485548401746401577389751169910332208215747300760471987727457510672690674176970296474225051977069912723477193687274458651505377813748239755239190168634592834497707400896426585720816446133610149381067492006160742470842319603545186635288380163140482082917695723325747907410181499622668847046930411814027086555588787147576697318410655598919564040701709082198159143411445408319181807508335178205192878729026563424728884754608100575834915031403853484232072336028465739183518449793211067328832605377929126031572402113153493755508078399097194162060087547049824167288819421946878974040416707015547752077645497423984211191681553957131284631164941524429793273184244466661545169195440388553272824901668470444748476147245367164556600222187397311119545008542117596792104061930212919765282516964616469327851649853461426253677167618748169589854500907101116701904161101244200352289740231576673320428977965097688294820406650523332721689016618023385803302297367779711748779448497667511339580063687911976734714024519619723905102415130370423868285016969617104247880905264095663294046198680924280238460548215307393733105024169294411708985815470349303586579125708927297716242743976356554890638149085343747676680102391209599273951875802489594288707724632400283444384250560186024780999081448958957183034317747974495679978681285590933274345637659553343601085108676423809550976910018105495120880253957296666837894307311626893479606547367718670887872855167624830603759176645328020791489228832219694672053071878098950483276811649387811868213762795055714278707795822416133557846024774999343703489045187611375135427812545015175665582932066255066276690296710229280410798923824623639290424979367832664584217204959464423402554187556690646805006459786493927688953645269732063180226042679911363999382629389484117479883258204556846261363704415122114806866136882137841442670559723219648813983490211114913020992820474286251121789390023509892820872153142664882408942103392872526390182332364151595490691981336390473466553911011973479829631047283492270186964359559111580522983040942057902614260759916064780702565736457168277704321542053384546675620908260287265003701446832747234487613648495279019509945480699581921785591165434539479967110206305349083777278978236258162639827164311863676818827842783819386581141710292033502963189589440943793786655745896241786695046336474313040491840649624554833107847346046118386812129988611973372014751106970352446282455619694790045013842644465973732058954499563591903588671575939544927189498318808670472438900482235315237571023833993633738425467744787200477742918206050308919998289580565030087307365132568634231147568396416090545153261691908596349112711474052349249343855644775137136550162726077990658264134060429758921994007610907860853554123820030589407120324810345997205142030994970401439961569703996903583631280792349688447657301259319962104262368930756279945017647188517666070906691731729446266576283571637544458723391545182673707207537779313618389404048522891779460969765271283926623380340287113571195122311964178281783179564707595073538166393419109496712174541388323136263744193492972203754080846489873424016587694637875595758463263123962161146850739598850094366694555461388314607563889906350635427749480733051835202373598586929077381229837329713955232101006964722853729006980162407642886640711721099829137874369818133256532100946535114803996972126351658310834404608023565209496957501371314238431499270572006792819178669767712979505243180262675449659590462946189245498561425434163646263821992048581834368288738308418330238071433057887414306870545689017044931883976024751672085370012896835046849673611573000323308221502149622008283509138796298971346552003272255616947597507527534674866400922711620702216736716171146697502944682659116864821690304682094153543001593448534848624020121654336835980333112955059294870045804182215313836865420522411476028135572366849545638489287128637129350196936348609122991160519960496417699945992900954886087156617320462125368009967189698493560934157400954066197159564850829774112161940417640921435391199775236488956812833230646344229020806900442540370008409784794767098958019804351210369044711087043875144154991773268837251406881740856627289837089964229045828953535782154185873451739432624144186447158917438493923601712559952248367284800487500662424496868897515920253495038533914861048566056980190528432805234969683268156753934592787134232329368112672569924698874346235340338084772868075643184011990388837048123915163398432511791396631125860623853232878004918047964223481076567818827970261438612286600729932047278865850135067802801809820374815590764554294708367204887275146785273139581420054430804305047670517462222397647776270578369731363796602522702469270873404170703514901823293404129981363659945451151938142110359496769711085296163141347960449506756359257094671806762593489241800101021259118329723091016595152454707882962126460353046171691997702273144404896543154396615971757459451198061104043285682980522914235464076623619197128187960889852636583204904145849646360991217659277304584641661470030493196346533700130141174573041199621565545797669612434321792078336426897562654188758244244450685529863835052554370669085219567314862500321188457695409372296480039915894042188307585942016813741643209328517096367361423239236562960859769999727861119758892722027736618477453181692208308784041800147103498276169589870008124630146857336675333658028299885373189058711720753550505330093684364155470710225313184317921752211191025700782154402102292778455138748262149419000716909807044299367378163139009086816198063537795805194332374059984636045012943581281018949226470677961875377176914681315907308806895134194525396084319512852355409239301820264497047299722842419768195785430868330983312318177303731401837847781850955976358205057291985125182925651734932807624125106492348433681113273593469062078235321310512433274479641865842829379448957035593867291548183278077016046175109738977187607126011656014715750566087076113771973054238660004190064034947259496657818331035835106784577092934296782109014367807915501241575158557224867722023395000521832167288262010192192860792577011543989010249462268693515090221445030022501421374060359242491734741702913597176332671714812716663322691531922289171483131734753565539308632546315678863714561269215612290761163448632626684039716383156823738355413627517107322381303010879378981719486111323050597574029020859972933421169944196962922801622255862781455682208813656543326778467131622045284607813980019907874348165947801819677631748938187991544186325626203371345946025950272261445636054154928548776232702367891146002154512831740523856726837319062783881655829012812204522217486382992171278521894591730546309019262174678899567500115071099263373196296180826489508076413844881958309159702295241538473998463085691843308350100187206118404932141638961953248126897855402629986554234298527663533432420741902794880277402508125011796251463988693352429872176746515636537118455965929531620813497329894050549701153395755668871164888910823720986059157356170407200846319546793981110608916769321124657750556584870249448260766656396223999809036921026979011398924113824560290426865476297602005662984499518037125791422003240534439371886678648623235902793292696294528851635006315629241998518331138101017740889526943579369969752197620931897065367584797312563894961853820556029836022960173951947399149445216396258055783933986185612167527959535902371025054708373459896745630211166407947081282217626571554801937453318178194318735742021719173127032755847597511508095449387303903123018235325372908149426500571284929653478937120150491801298234719693338602586303816150650295630792380833558724854656317450319864001064501829890496244332428869127392110359747058048550357900262937085605028652710765657533568396722129859665116733148661217153614254865255155162059859124604481906277663262391416141259934294625068121060873004634713546354846838744541698873411605221894021521562140456475039469509018365817201784839206223429435727391616802057236674632301966240341068628103412834102665389123002444183512654233760062627196315932803419929020245097486583317616566029049670385851962919872543575260941757851043734920158147295631563430319964394077546784008453253058670422738296288472746970098444999339782561387746439779048689276149838807908351850049084937374269024196396097671657011024378858591513917330775338537602103275241541733117790285962437174120966770332119247216254189852147626759025388661978587044223350795937177776470758521892603865215478314437775354487214562070453081151498470479379587688208524046183919684725718904658782058308924009022645669964932017855246928584591321914586253683014867200047405276991037159255003492480985961406912000465015250435670697162817470941450178549616881250583644459605614718236389136834225436227362149244507992705977703698214401454205741618651933574670285266032333754954147802788292973269137448009482457760310700718348659349222201352297325533943877120802254163898912468610377815008900703462825818909015374369508521444979900278948141538141038997031859843791129779580636942395328217015327608339564517268708449375131488425666190893335348430685355012247732549244794050917156221019720691491919248484961889964170576471860173505427645003563533471295005861466049773631251664281485858441901615492367327085927256778312680127874157715150212367359182180471407588821176365960464457245193983085084944966244819589385407282271350530978940763016373352575868319784451139819450536757990740195825422481853634000640406074398563904748309730913821614453813514419023323270399385267642340775065598267537481575988072808316481825723885277976930282794563154900095543359348258676586732243650351628618100885690913244961446343591599554542648242970720567765068293639056146723480475876753674122445329046959323520333289845112464158517511738960445187803998790826672998747122465601448456111994548131082309930849702101953830308496923602291618872983858815024886799257729773892001043289273668092640201837054932012468887155970438848824724204001671674223253450116417901404679318642327025304396747263633843885033138131181909414669584640315889145100596360248945430278201028821660734354034781670206650492820645056492487106102903579717566385225867506056357078285629817226245539717621516537067095830218391837393592912519497340194504952360983555164053615785124403512790509914638703122654801744129178839863480171159598951638791045240373949931870264614581021946374591263587797019599202291315053030088433524825782536333623332831683732396384754731345474274802766840960323524281307896032542603297146691331761708052249421984712260620106205938258168141859664079585259052780431202610111773770914827582764187486211873272786779302791975002325780025343875274441041533799540853501138778814950879696456056575634668945886688006549094505851467196387059016110362023103149269632301381726239723643805480007493300067477098016914918951897147631309739520535068406761364111302956624733466844100617157798476466070494872737148674554158706350774850850238305254958260328454436547708537563578798696484846135436988575621812562384780954773129949451029520108152533869464038821052313552712103617822924831894052029343456982076850369284636189604121216724442682258859589168308680561694298593637059992537375395694537533276556773347456547738729003621441555184468762294831554160983321447775029946051114256299860951332752010712638820662474042811855125319296736022615335332576473158865418673153991590553245380608907966386885909483720941864292534866187050758100271188929012214143584024018256662857325864528732849023818694553147914642122643802251691769616638027067840844479808875953652874672402911677368956102918378214651574277798652519762963150255197689925596283004728731919111459940464536301152580786915963763527565318510747528506217564008165957827188543528566060854522115414451248947045266990391889402398850994792913641002256495446319417457394500974223675995147798106381795163352589289973517045314968676422161027450609141406039371520940184962483423582700236981035747404771830723968971493577955211937863395890397384634254904048653856768092148885139223526415266572812081386440228545858284443731934584032656723463900021441000587120010650266726960367801964260391357718218132778960383061748034137019523273695666029981664115840075696361079409048993340268354248572278791715618762788420710759883375990045739364906245886413986306599206560058050635082971776613237024059099568228772458099379448463728198805964420123127893888435108224201938850430131610708914773356089768707356902414239720845637129487254163236231965342409482284076018357924627317244244584590915024899077254946645309612904636464706851545041821362355205302019309537580986667573894082854677187323377043083295653773633029712484944162691789737380982083961817947638355896985656566724679372873335546317373507739507804289668328571198571327491770165614164008082880241400185402329879501601830481254714654705635654397042872091752501298903339745779394995736921218769548584733233777811369012219900773772136376015251366543515461377102563082448535980930773401649308956854589332271674486874230665439656489536126596543623292907131423076617555814070408365562031166501494652541241475720649911805756907059263664127037420774781415201855511005724240574915553732184949070258153215424409635323154557069431995090934287872594271224793484847880772930609637365485642532427920334366170309586878564596871836904590840817365924951572734091054520475509366296595138271911544776924295644883449738613062746455490976134942512733660474796600141833434403228539168158433136158054845361895106355860791266858655656752927371298042466315861175818998979036983204792107615130990876292626668784032544354447636218138962812385442405256625358611046668274465225217239438310764183126954004403116974527291269925147032349881298968114031760495120000714837074949346301800008144720604220537620141665180687511018818472446603719497081104650699712347718259054598657759822726815190126739759552746549394347189467894406749720897759335635522042438689575776498406102892367792340042747956331368778918639938375029814379504744273933663208909556407976476526136630018962817467050304542916319868309700780374857315058489807830969820094346698407844842791951681191368895362569253818242391298911078596508537637030057395938472586291740298096319839165686906070665885795993373824131688878802692645288307513696686333112621400741727948622511637266265337457788053848265785301043326997376930278383379987346432681149769622039660454516277891023717423224872213564337567644738067468880185423648296083543049017894867715437617164148431444747635716673798824162840599935116875051723405575803663007089497936928005642465206232784490362103132588500200044042324140801278758220055258557817554240611799321220764777781022924579444593847712720412730685941124374365653030692425669635396917718711294005588468230051770695726342818432827246855005341754600833049137798313181949415158345829885188512622194532314481546121793435020887576492827725909309426833374273736579743008602630039154101259923233750162829394586773364718884235627734659738903709876114715940459855031421118486284970925873445604384238178246786647313011782926292179821384531862076148378675990707572937833029611901790400808214034436480348384747202785026462100618199522786352508054800855227193140007598239910519250499633267330805304906140693837057716878805017322398903569511643829946976811396585406678323664714599471325296341242590366883435181243477428279398685141205770858492955891710011718178933977989437226794231050776566983722575014732867770869762926261772192214914235935314803831627537978549537173781390418490121678212072214699035774118315547617323264300634864066052382003578060493537869521149181420701961685245895977092185449191446097201633457759684122089726094587574913112122388574731184566508283334929415926006240766353961736455686561258370065495348137973982649089767892883175608169531278132801513125486126994966204637880842192131120484959675671665695600459050232901940342033091434828495546556566210618291298259345614976206558581555340227995948720007046432718579753600918438846558636859835386463263353822511611913569660620887765782803705087439188004868431146059097990004313187808059899473341514826440252124581490476745596056437570902935819579465838805590650981812523360237390552569345452956138646104627378301796979205372564404298278396174313801016906308744752892238135256402187809132514588888495913633745359751917669515945819888441103676226043872537324036597037546752954852015870275585093798057263225996965334410937212453064980140151410164830601815016782620315609334957683632002805101580211515251582157424518105143238779622478414991199494811696404740087665112900195350509082947549064850905816609841615833322212337947152224711556597636954029308374250349011045502646920455365137923888991265945009116809250546468133605766190341473643460122712228286586225868905804529045302582310652504116483023118990237691648288124531262031412987724944437325012766441140525082258867026023126286040287745090095195225396750013498215351186623297813790378355109020959400885585703439908940923501250217580381385168140183296588227105085670874310137570751645826549607403958923118285508832178665725840883584421587848045773369764267716372950898486249230922508487662904078571357939037301553154399104355529739481857282883341355923574812974908071087837179505615364872604469605644184113546950933189033300222962367263499066306407566263886723388005454566785967121428120745366620247167104198880816162492770517668209715443859957302193166868660162777159632890410076796034634114114930337592648672095377343078615883153160506403754632166443662640267992001474659203424703807725843112375173625605788759594906585737847757720215258268118407495097471861117977955287980472560099571226611959339931134786383786579378365102183485105607920814124281877178695501391484196367747778503201957736051327584485230332531192433615037004380108981396223737444476819338389549642463956539424313880460698959845160955886740916612775114160968113101250322691129876361196346751742834277938195211306092154014884310460698753431799145732264866746639542284883006068039229359445300386396462781974591308826416345942402287142381444784143730459960580295976481468674832908155505317675464571039827878266500355260395687193834590746319711157954136621044886628122552860510356960267271778045362614482146769848609727615588144177758959768740991804094173708039674900392209320068137304934273812540234203552989905641908923495425588121797950052980942705097909783767510991080340276366607231793845428596056944819018703385645591562973810946613753432483780258437076218332400270628112614534075552499943405954527674406096207633921543841916738625959293793010279422029323876910251876095852426252404316715624239584890765947573531271974286524432189926941878248495926588000327727562549742943619638155016775781711764681754433442077119423431232573981223832191787963727178478760954099712806876845281016037674068266499519153444582513114970172740909172273714195901326276472719415454137587360779882035395610661580687983974935476056605303679623527374205101854092158037257237967443093462425966266128672377583627086846749857504771358489999760391033434364064636645024428952900461613345572809443353478382175728551246637282231891092690427906670595744286825544928610212818582134178844968293853716465029865604639765115327010027526527270266731004763281737961831038199335478083175340979661244472642633060379966472694150132719928792248384555888419983474866045649683105309165077517180740886847745787080948954917062688833285724066863763473712819413708137178825394290789088488290573433537180903680478851036923480836267456946353133033183583540509002378973225580958490992854455334888550686881501576724096273866113494592024854324848169098572057521406153234707883445637993003999073950612486213854897052166697212818659716915112911950152773928234240438301764264887401944852308114939928020209731212775520269607707291431471509558565237108125012112495703195432767177819067018970321852011884753826109516621192355705107499940315005803539521273537832094408222265647902614797306289271032047543376462352727221917907710571741699112553412104037532223614202945571489324170987928926266834346026205887266212177175589632983616696834948821060576698096121072731004749418020803829534208116579970992069347971815370727793895347698780446181301999063480004163019160672949528095233354456980664703210725632467324415498653334581705301359876347661123442907368509501709868196092255291695979625643492961501956443342711638140235329544959909663864567479710172951697902459192427991039886586354481767605507680884585397107708696018794342271485435435925925421836782426174706525298737986041750335128385061977282848507334309932995972033992690440680389557808351080709505392965975972748739782233925667595023737891983145811229957795259780861984570231515914329163240886113214647778526376818431084178973816431808471801362345014515220346131454827853780621840347656988640906907520146806154458867639497470576108877856926594285116075108048422218518881747085377353701278060690026285411597752417995912062813457106166359258771364733257826575441553148865220714360778126025148451992863653410137437015821515955672038465038696470146621444807307537331548235489134270345000716017090024546570077898055465225678640917586676591289434198186142606674491538670124222223545228788850119126339841943790209931962303742121953240263101479593151182306911715799624974534116141143015595263613947349347606206964832473610793205628146288590813612287700660078212442572220730961710963126683617177605734265448867245190062584560145117954641377422264391523817123175668093864268681303648506544552950663484471968724433007809772660849048962893239862901485720162299708901947973793427336822007233024285498937782775971010666215413974375253544598478206475468178668586650160805868842367653097595091262018850796311664905396446278484155079761972600710296113684425142953048062657022488441474341986505187652246283830890803257057071959135109112147613531740654603634382430620001888555675167974397803390959030558630252902016647231885530413431971003114421330810012686182408614275192630250473862487761933255224176131129209216778262818071912815177490067199125783747221495252586954670638746686027123112265619870120438168855220868477379147877263166264300000936451847053325952844324854603561345266567551233760580589331709906278853603275781179267691527108928847697441068596628235465020560830315140395632037394645107414982529785180464751833083391387118573979285809760894704452137612045378992977472266356469039572244512228198998137237410593761217029111116096781930752226285453288666834573892511649400316606832533915709059522216896905782978606607488368398240353001971969614998622043090294275442484448342218785565411567172875377856434180592432940645715553047806302337337541973968966968078449008950125211468415310997110479656617936011227255489383768299861522117467884771367381629626407470980789949060692026653215312616671028640265693310959883371962030775063338201514586834189616413940851381449643833476522766499228505412612789162976215901670311638908046342100927444614139925726111627472305031034579406570298305238987883808036782701423471469930860767969969254676953900447510351723214075713044844682214042296441914258773262709348305447239002736987445344970331753384151781566407985275448393129769295499209988185714172997056606141914681971348901795906206618958156948294113693426071061644704472194156880578329389184208859044081500926834021916300794078658802323473757249707004152427208061525970190899642781560625234131543496227834568913122687863330646133983345477660100786056774840737329199541686515107229328460326920210715434854640873844687944651245287169337359180861607277471102187302361605012652052076474436263592412836683693179814668499021896167760652732028252448571304374397693747220397910618339766725854422398290907005371859416191935893372484865439681807728506598116953695855144907761387800741254964246006755696770252011344192288257048587227396360298089832254590007980543864630246840064905530314324786257255720345981384498498643271023107780768820505117052097157167632416415190694446400514009338567306804238569754382736040130394998563314383686359924833363972236636358800129296368559742983993526276439956587693209297142585306631963628438987854890546505164067032193535124149862888128717276553063218868707989752091380630856735895022067337500871781317218393958484700664917315192028712596675790801689761158574732019661269977406674017361207921740567256013664294403773281955748872275903480358447475604050019453049452311729771362390090641458877176644955658923133352790593179928870673702278263575032855246517146889135718216457636118553449077160216500876180069230014368761897502385236169146169296476874188649676262150332110058414363781838727494067804419032427271038892942445817816994803123552226171090753962547063596778732450907755172267241241848584008020473171881717976148905557604097137110083729300902514941795503751275476044167779573321088756967137153724781613239671463164841906650978256912444409292816659124639303901339453927780164542719084535377718869992027879917051895201108964457826364529754991864201280014198593651755868128432688252912450551031314414093718391724189927570958371765785564026485228360486191914343641335215978485269848562135431371200567061541138079733267406933921402848637821050719679865443446151637926781400412793202337438598503395255807720443810006799618812689979997847516567966327012517578440159519503288771959735455633512756334187678054647474765263309775377641695964110125533175093655327744979194245245899673254796701044432101698278061683607368828315721753393412988343558208863125792400078619479626393063586656308651770534637873211060546842300489263579797900021300562613108538957270896513485276823988332061134720748438828712197972809598391734379842556766371081884167335203371302596169051892044479380770994662687093534596285827471195110818933017000394334151685193959515815846668479201234638013255143873816847479284586623059240475893138392673037961618335406967926339441891903523814934671490925225656783416421714724172077422720644716508331572029408620503409414064991199810889336845288734876468058047088732635721099571317201864580006661389822029080157207184321839256269866113049549342910950917282658766435813142532651006413001469907891037452361366973855699733852815002217364703837036937225672048310854185326767200371436995058568306016552314227918580034109124692606954466734406941468902939229710184180059340260693672152537846739260276367377456041631394097424489016531875098118361573034905105446933684041888805952683925129913629320013664093462166772406831762767599513226316321159319097081899638037266106400877960529378780003723987509095437486217090204582446374200665663817810339601779661796204497756787280172683700654096140674573032749588959999751456309472890442937339768142751122630699019284072945424261982371130470270007209668496418146671414089897741972918157476591265552984193880391112330250811769948659574334571348735415242672729473434628016499814767383824712032587662416793610785669268795384769258070831875529813155023930692715684231360084609129400381800284828711777707291735382881446218641324740483087012461951138094810506099996228555370186667579927582351796281594208034773219571569915035429720179724436181806537173348227605529276113198659185639430706996141163579573009830158687187024099419692515330457286644355527068114803833298587014410259395730766006306140484480672971745138864159440214094171958610857705488114988046424768771185434239098497557864152688891043927798024289163535905631301986460724795482131521625978840385819030210231140227341023296809540723944380473543726532975760067310460438810957140285622628032862771667875547184635544397104792351984781194547697127174199632271413750484132546002710241606225089130734087044657704224075580054498360505906739087425451322528883273392364190514133913143903259948034614424807971202010375107988740062746215751003151941868022309863765584212174561503094093243563092571446011108185540695720591893329381821342710099041117017532397313389739263257439421560580536092593774060870409404879866425012836853976694579477691055077572354325176856183675885834915766307740897020395942751620245658234758605567619851316423167026541916089217160993687982119475578312097843620174734471830689690760268287216502548598865475620725266122435988411511313250346145313312356977166784005050874816961648746175272966276951905178091492748397544603023179952440299856944544433631858100353107122550270880717353643923010074164758022619321130290341104794504424035048782772525413551983593778206779420806082519335051147481185677026646941096047226393465031879887760616508045420913845627124584544278489218913119784493235680500933324959880091150007252575740041394871224769851588097765211610594454728153294290623088240050539352348243421511371247002378897831526275102984327303549140312987854114405779952705874144272018652173972084829758277453916939601670587234591215556356504172451932500529135499926986850387506384333736136789880267910316405243647954728386163619883734398622685325062788503756211309266375170875178657405053253772361594135590557433563518765662972304871055517507760055009667826673555459100300864788042159167257394191165074360733161323449013572072829131552880336727703634756783312901961295356893735706136275812194943358299576335252227105021698561902192577282021095291365924343720502850793868184557749195581949239094281997683318959921466501003446689608136790285811829835786703700755952898287451765726718188495468416271101213598242241695163489918102706441105902982141986103127258373174957705628478467756302435622754261609356951984845061861509037146534477911249241123441225220400170695433811688602051135145516494907428057900792497648348525185348994775000533827952593960967985009672795707975305636277542657329195278888680787738718273303193657201305766528350218180530684769172103554984167459343864931194922343275761185134906502264205219657830296804059177795583856414095463231742088000455550285864251783245034320402993219672096590727793375535178165857865586360657862039606424389414715781500835006037440802221287747744443631449657608566445643210064844905827673703918295643479151905267918597743338724859394519470314070171783074257567297079182647769675271720768173681247918323315112739605497056657866217922260937633370413008254051111579835189276575695533868116511910076240796863165523165222174310030769307159376809596539312519574304571267792909015487307851733752834463821290762884789808191798228326213583447722461749528905187600943473906344023928765509600091603579695752064916888376039783842427632832182324185364921278775604636453603673737904913249756826133208337812438279404018485896646654918972439181834672839030025162696804466636374652501398127353912467939504405526048194198836509869580453414140468253602842818085306810496304613779297616776898521373403769290008137936264163480452811111797115439108630203642587072128376974003742862144447219178870355395946396443004283461950091129822504902279016545199959660601763638170726673002509212082102283414676845390232161037884635107243847975997144116038209488066012995337896513558261281193538931238936858793781184616684067925770421263539929816541154670540392668635373403717663897756170695743906033552689280165524076414377675698548561638632511888248259176208510186969990217509467549072037589818333413379275977901291118397388431226485193706681670676161009279192919446337314535028134567485782380220146572446494692167113841064585463307776109799510007990798236541719970662106307425974229506806065150959578880015349732236976221215704737676723946793732608915288324790227076426513439209408108987389261415288734035226549308107412781803771303064000976138138389565357311879592310295814371984813257279818878609542064097444294258462476530012702300352334158524108318359884240756130259106439443067140017843085323234393607919355708108783417236765124999955937777338696299489812431729904883269004254957996464107704122047091478546389374315473193349204301271938988557808135979065255461424682319929245293535902204602054206833698780029148904808916683846756831913513773409880847084915695671270800710959973304158214285195022362670272731688150358887586571074507930357283825606554573038080015852523269473187422207446922222276778130944211230915136464945182361324685255502756302640620550678982836292499238130752673651363168396490411981851433725407669682845071648084692728687133394276652963279570669758369092658445939005907289431026217384274221671334722750616599040150410443843200090312066308707558880491212025984849954389735480993338249295158606263865626167385169745004392799808193313129750696715281859061920671187661690486018596946054860071611555856918512101121593988119938105943011067272100582084420971637971066893217081666193108141993704110286179113345193526617372074102485627258593142467135656564340535296669017168186760654600020207640893030641150805461235458081658699707217813010756272818513046520530279631568446946146525316759559060043097254364058243986997356114962724162463313795894109711553145333702703363536684321844219612797698990205866846282440658393858976116335591637298769842992379618518099932084279039109081506647905923726405866026424656479086678115137809319510229555476363535486677744644136773693606626700338727600759011951953803441584598907104026377767508299764797692621100829552646923672021956974021907089939211748652146413897167317559745736277436068990954525116216838692783265959807015771939619945532343595700922560595858584525421831133163304948703398915390368746140703039788559894812378793094905517801429805657448112474105567647618316927321859230079730486481907108352561221570414672452814629424334611799418009008064940459577369959324185101171410426937430503739746394497721763361677215482364953842119659814929119667189364242300707247240296222255355050361826748840845237674126748556589011288011180168227064918318910799271749140228698603449551284712487110851331382291694454829804604242696028780081249049311005348629933350080314504796719116258164582194887694595117768132153133923750829547001667446439277219772862209600623771912895660155007549861750696391246700717502680222290985734127279915036775628305837794889595263832444754326050352952103139719343924255045222380230444685317991337163177296357170421370619373942244395779333545701091563886572796822109551006309643422378192399955312913966380648845104100096976370270600086294481685496453967733872134650401052924772247777124327403554002856895309315399380294386549406980151684895326833241156351979074724113913031113112700122242808099792699892612252317311085786064435691710704488935404985012363923834992215913469619790495535572817437672633313809289904449539946288161259039405692726192402681331717886885327040544833392239296288267508088247137513403283734416246002826613703595309896873996812016782990689318972394223532920471397818654033359929102585911655870468659301622516745017593408810424592196537729391786172543908589124252681285059965269346813335388955742195220973162458972640504791982739268190227116162585175286878322732868651756630102867197790217289353127273694724562085259999703254368782185197182663431432252144728966907666229239123097299646156165034944879110152968636306378285662451600218761917243043000326711185380069563733349157212499436432308893919390131895321272861050348500777508849526235266705517116701928902458135984372191718070387170569160617232342026442699334695045870147446959830840520502262314491156496544807263820557677707655263022166152313979304384434390519578719611767378291669338690870690411874119123792209624213442637174781608508758424124095033269983948335007213299343118867646711953045073843163643084047421575264467155750456682948728074499558930996244758567253207996739892316776391318667330035967905328204336761513168407026497728747197875129148794211387110667597841410957758623617349170129624917196618891458477310059942742737555117447430068586606607285650181125327165498407924962109699583675564917564414451602873765879768730974984765321200189482735538905396046873714175562779966142174962958414559764095076355888843507616236422440418596016384010283788577314179232396871730864191283994121958133772453768154195739679211152409827907494951625755732468656013161384352257220460175250182177341599462719151770700382440999413868592820035337667358401286001501303199852140250913084856016941286411294276656635400177581952175000613240458827722676598002062455803503336638197256544569186605845141784201290676561866104287413780977961454441460215605446528830542241652478115263511550645424350792812711518608888929253547639759194322018592899284568669068912135685028227279821148950799670830040211172481455085333862577426143579960024086503322002523801554044565148254164061548016475575093102479493560810138749049499947929567469279291292928519072048208406145825957244925521623851147481630059299521657213948909881901672696831075837030332238654446046256170377933998569297476072653676444571766252460687150989443371693676133499896956052515068285882885154923969991311584718591711753404812494912698543567104538269811140256986353553577420476429200777268317747285584712037756331161065618023579792109745965199043396838298456151810757389364979725808748709079255239709947030170594222588505030037615606800320684704159778962251988680995693361815832200062142788045810030524950432296249696933931905457380794411216530536183693217830950352729269614668873133649460618630350726593318733286116209807168478019945093680578737769945099483716235882377664312747289252291763572633793845653783946789788657085655757664927010019287549115053523761476654094975070706282323009738643173381189911148587815840882710678219750030466796432604208228109148827094549177935571760854819809930366604411990409886540447882303363408680532573919806247561714590514000381355039444284761815616990986642656982233513404315540203108934364518599078708581647734930061975290121182406817373780190590357732866771987509154398642045521421444271220735243823129835902375478338059035918583497992864335776238718757618603432121176088328674097401038312696732122660027431697288971218184109725256476587810765157121569624608322725345783152842287316578963841086659666856082216775322061231787399428685153785468226967791148171232920984266559454371385802355937519596402849206970382443174692173539962896841068251739034649622886552790016941444012936828482823911551520469037305669939135540356890150783306775610797952444064331838123240794419793060877017965443097804198927160917127546871912645704925972246724284003773351381626310366094887957428011132350618287657628521284588897230054728491004039803924449772955276314596223262429497253951154135748823480066360370689466215710307976525260403518010472109524091291714897459245663563777296691384208944366181559891742601122749387775310511937095795458206033807768200053657994593543071606678390139911257217963638008469615046658343159560747209051026619633261004000938194682337460155999507475369486176802673151608381201670541137115248445423911371304863630938634022284048652743523854265868490488127513541779101505799228424407532002128057451057818975626255565624683772070142840153353031176192580953740310346864605348501973764799153472382425973412232210240637460224437843158417909962791078585964545588181815409908296529309481912011685856206162719408772233660485203396381863969013699380169745841973363419150398448703036331649218245988175748901027283194512557822362347079939363351268384888179123310638561587219845640145768167420414219317208395147767097399041894362966988365401703412882990152070865747220269497088762230066228446044448864939577542252346641620398663502767741040919698620965986489329406475694385592690408309402583397448548697778571999963954875121188584350751497399195027275253104960255277329537657716583397552186461941178932585759883502762198304094668092202000995631648985886386180096502205901873018318988874393605950702208253859128523659109316220473364449694194932406871814755500561947894584770845137478181464995223990649810548969555890669761096326323245650377621309394959184040464305263543150334806658767994202586054108912154608118110483487987526611288563105935371427331653287239095942317993624298522224917823276104994248618618239947656812016204088457064315644885370000636010058942888736554458045877140916471834471451545668946190560177699391454900890339476676479350580675438069020335713749126255715442088424840935197594610509962491657157924102398813536846203512309747802883793329817180874881290910947494093643757250800534272889826612893539059747003805888847837129617696136753682310908672549940476175291276764974750018714522484633936193572339454402062667368471887554997915383370467884070262706076429564181455942234003994212348830934505909091737847886018610966877519232488973567779347179541195480098095166087490861695225283225089569082661591708664773438568976328454500767384356415967427031798327808095610916190188879521512248182062997186234548720280073846800475484495386852730492178366998196709858844595163166439394669438267967459967005988768751880307464415748323849618825330881920796310308683373588525360312884848556443085680479136253711821669115887004762248878086992663519557824375264346327677007407066547864912138687816116947698611482434134094772929245907753716429864282428413455616638186559470992823181308700600547470666666734944688205651144270198359618135630611716863433543605697414870543861991920173536247895631778528181774628921734966634555260536919314401738759421496866036241361563642614246866554025093349703665660523710709766844759107201238567637756884920392176697482403794235501207721931470602246236074960654445059953523231083907407844825110730781956618343598882950357466153016897130823652248608769458982772131200626474994627606144175074824516502395891989009449794019261733567017932238994510587829720242288040460532899092449925322287745240376341064369756416615595138003090995619833571491003835869638141287334321702451874100698681535374381730758716422990816913752250156643099575956308446693194419446583882501439525543247119205521442953917331634400492939503253347963338813176057000045736785079092552412346096806064189089927205874956119413405004325733370867738046756086027669565942995042734637039912216646772127248833844747963746387309072951045656036755621855696496756064424200141017128291382148129628228845170231408932416584879446616693396223279992600041430152018744786714840329716606951272558819921736060572695705377912494594473744071676185446687723601180527397212110762274885248186389631571875985511028736486140284280200503204299528063027115396523796113105877071295326292849183804743745545703490346786370915961150188225022864440418507858760380579665194032417557443488946774259750211517540509087828437570729680868476581823164452335297821643482343157899238428151396907145693379617815927271368575057853505807477411926718769325847212307360310202292844840803600815171395283509157552921848601814233735948981955708049845484885708138326186046140345032333710337751070601203372489449213603565326586482790506148892547080031073090079771248297105589840171959912990102886451657395512913075549211431980985339357717619757847329341951366897892911736671604125548631671827855235863120408993308095529872107358261313176005882310168413887712079734482909921498716838747478010500967499031682797333888869373541954343936183439864833889553604007372542187055742382704785738251375173351294042526852697606725280576686381197501887674001104857952054356277607431113261964914951269607557589659457585008992912973625515536763686749299105740254629664318070947332603200841701435211521983592444442576217835731179376562804653854083083252847628598048207202085702866175994686086969671713225295966911058070822849767412475419425831847812018729534313419904975628442160778293228130992607017086089396610349862092422716773161811196357685803845470048382636570945673469476476495340254597376015401415270526862854525682331811916328919491026326469743392201476596172541289847811806329437244484927951651831324499191766314270255390700638519204218908902765228456761231529369520094199273507523069167271193183402345749462989727877464504479694499454936571559994444340527941404887054570600154444426323240368434560080325745824183768714050879889477223371943105194020123773822187595887386333615911451171357148125168494567550563910841104382636686256068559544565022044634966425974682457243283933018166230793857921498229612026463766685893727544954957176521230795114187222485795557351283592387323913638153986401389946754678764537541668068659524303304632871207700590992693208215944275198245085454711206048245238046546765449559914302449917446266067253797278659699935640022346884646835610875277977334987364965489089027156111634303216747309791002435596129315828496199406933821725320447693542006787534758463347040979948837627577030852266675667336177722333173208602730062171532441024896455560845074041011938965828043195490882077228446512704601049613502273900698702944908721364728976242896575566801000800000467320144723962489204082379612247753554939159258446353513311005761409124986868525694829396014417323528111834206385158575376699416468448827485175590204026703988880731976911161707549496394293315393569987030083073054913686783994648110187468890321607514010401278127112212211264778984161339648379557983735618467805266368374904643899293086227098072690377829175638850529820941501762160107853940781435344202539799098950315994234077369648956530240244588283435508510941406163834543760331266743512127596826019706393381806310450190421539940275345319901421563769603877931845162970024231462933084768295884769923573665137955360030595405969958663833486817646675371112973610418840274600535254689253055279212243481292099146565226625935479676389486305265790035542234093318891608940172078352145711124010224987734496705106083285097718277273873331035620341991356164511431824872673440997190117193619583309562383288668550136598796589274293049559001587072040222353938084864916310914181876769631061039198402778182965871587485216968424714773230615084998128584265321506824968281008147359497611573035739689016775002215463769408616834360698777240803803621356085838273677292120208596626666238280157546663454010145624856154485723523163539375940046839761658359595979378934024790248126830343785707757702766087053734588924189693640464435506367836721950946744981562146688514022039277398022443036933589755588985927177000732874591815846750540698592761155271382210907562565452462701269873126308352388448583594562165673854856596809782133432864498354360299517778827443615248927202386086137508491468093688725310747534142017194085240491920204729409707932920521788933996642146330063763757370297979819649833890328218791777132086849238016268994003907536516823100081902542917261005407851062951440257930060252672686849021566921583464954428827737551698239822849621256154043152002355238891648130176258583620875622386758465566436465652283870062984393751271506371960074371424029755938840223863028138335405455021518473245385638228969720631863504974178831636713455444728030192942800580662086961196642914315293320439538422105322070156084030510328591885157798783747250693357597344482186776038827462857994266896193259406503058792795582487092390970270020762904170524383879894432191988158178607894968663613822920799156170421033645917394593898163968245135410476228623367372530300384604947741163654308321360539405973634243504312393342962505017577377227677674092539986522520839274880840770447240094337337321444857471392925797166352035523503149828814782557452700614000081392077995898841413995942440095881010694412578255862100894129344350866235183783783217815712732036937508063577453242380282192401417744685972825280685618511436448557285693763460166659559976135237299326683474469263372422443158473453792064150094290372336065886746018800527934275820627986711084444056758751652454054932230342568528281684279982431357664653553552743797223051325811002161358697337228587188535245095805044722433610796333901607728694074125032284069187907617320436714034859316884387357932482061686258852473048529677076658642936760929032041138096562854942260939227311408702316843666832178544749615422078697697753739611981997079453985562871725394504609022746023137967758766128448311506011792250830648675602059542727520268982404354874695015167554090594653741093304345045087500869313152147433140569748165958190246168731902023966040501178031153140796186094413223703090935082158584963730317648444188151596472971850151967374219495036998657696073699553494737391645617163176054060592338632552844759262950782890671632870917653457015967995648596862953469309516649318140445626443442932100260463529274032848966970785971310406529681612082201151689246121121918371074274188350863268742719379814508022174318555104261901493741651073226000723206035042398965216425116711088730153784357818358138134287845011224227682047916399660192082342570068356205381644938338497128681154034793561824987341660816595343861445909607097277439374953490449091700932271692065213273208979518252467948687900102011133091986104701197926666960343636198972966055129908071081957581132119484838953582554117152848735570589574615818959483702276566057105733530622920160781540203414614715506751757009264129839989497111089848713839701029548114900416489333601068846953308199220481639765047209982679485882318012276895030398885261471014299677137333593293836051649721051247444597518498532439436012120584876393412859992852788797814766014522635748399760910164905984402066222367704797434051642377627743312762286883687517128682056487864209652428071943525639985647693049078302797969298098714081133348795623106581153438289491032964386304463538808219848757524623809136622189023941727551064219695967882455431855102220457742348978526771174269325928631005013876810156263744016621801798577710283813628389888062816086131657012241779733616598387254789285236323719920679499753199672914895697913639401995340936041817553369842166699166822325779523601013026228272802757622065085077077803125127298489639613713899809046443174729543421148624534798520259446963892772662651195991987177956437844200578395678642540126928973193429985516028272194225000734582556171792919103245830141937999268771853481254335954919431322185409835768100448346301757907075300149697086010764463679538435524320588919267386980313633569770848742238748565185995477331886609574290505168511951547411488377645030284839825215309149642582428785147019652909121305420301751853946004051222149336786068577735808841292163216222375582050206243684865752012985741030210197997778117750584699645411664907588006352031958914909253088730245736227531980403211359489112079638148609966244243019463112777039001960331544549933389144762406239843484214012593647472540571917445144917585871933921877390166795293711679470503782708539805570184955411106106146628489105521050811787725108314742464259183291039881450531245160746068939340044067582662968540174655747060513419886267797551996691545203153226756672079587332095429189492026481262275655021771373994519691873837381784842596781023034219660654044962717798550917513253953470282543961017904454163265335023202856230576343210866310338660462445552870959876024681469499508681850716731706564433476182450914151532417506237586438476558891661860424529230438100235061427310521749327058434192484155959761110321593527228882730197414794880205118733482338490730471179597692444939582153042348932461934756978094234034049616389084134979767745583669562695813288933543439355274908260428165376812762127819159731156012104105007693995699019285249917491242169949709915405724274539732827437985854182994577770806882747690591014862651902264960213104136305163106009919840333622045670216054661309819739213967237895989935420860419701885457650789538838042725879470238113806585883088284191339944634900679225141106687186773587796372575612338642901837612312059823575762955846902182264649113241364801986321243687813098415654180723383786289723134019726365070842920113104659268535738417794103302903357225095830366216288101037675273926425226419090617302658637639661668012370840586192747042742873538040709044691008207874573436383671683684878743211803152541037552847976840663589541340669385134855889104114800574139226578499595347523785685333130772463088590331223702389815721105268277196907226149058845761713379306180968961182176900381232962834246586450193142792635230167438125548214553759491551368680618898345050364207609407284994457043610086076470210245238098794893648315177981539366341452000674990982084449410542623466759752434404526979150067435582917101687332176476215915676964570565772990509005610519105121863594634051641743831274682938381523304713674730980118466427880808362981528100132785209305156691068445727949856871641399420582622217196508802943963684669003894778535924645396631056405093229655599879367151117521452253067148031703836173744990625511120978883262783977912983196553141164903285469431320753291583966061142013525827765846802193595178654018813255179883473807223116581548244020701056570166529263203093410568870068497092563540103680548956769397085555570348891429261307862687148796306142120482251197979312155046559436225746477155993714762147803038063503262011844228307669969670977751237695576338196572834333068966268647855858932139614391200598446181945640269528447140641114501044575939816887318016373715382957425853850492320625838376006401966363574241563924827852526671121520746667722679487084941869864998041446137751739830724633378624493162825701879513274063951647910943114041462496054142873088186024211585298181379459277752658229576963814907959831462266147301556688255584705915732873638414306568528528765854388004872047605503464535087195509053797082072755635552261620603360417820353092066877248693736720291033600433355610763564707567258691906790444365224011258024054038694302869540050542903446362677357449967696641422166468550337840750754378382358279893412176516369604316962865790160510206848667209183232752128166121424973606575413323799262414396870617623370444033810933817072074946341978537247672209826068569346926768994007251009741925893407210842090346121018347639060749158175091809711465950374416806084832584848087768426062227955403567196132783983894660604803154854717833558159314934096306031990425276022431759532738971749002148581593055136429186963104570485819765108313475844098658680670730914806849806521149792497396548768272270055987661597279168273914595631567619284879518499339087714528400743635733801528043888620970808489572078086150905408675434759091895187805103372546912095787566599880988097324680074333799126483752754654833727004206319958177524088769948361096461229734779226228461188820296921232783018293381793673559271759754016122995700401774795299060687988606836846333400277646688455727413152259876864814606786479628542880870875430535212360611048913404725329391454279666058817393590410587705421064262530061755562668862684009031169167788525222615728669990603188443320571829540712196526415298293482961191495272269814730985769879501746381838018413647704024157345594610750742191860245961876368971873917467258226514825177532284172878182070537197250155029606711261596885555203663636991937793241532076979739587268288874415402060384891298764915460420433468441595476857985683163321002671549171698685784415161091432165676414502272784237310216830918186427825150341653279206632342772415070724240644599550813254676762398729876864623050774236553515396897274129597889877101321290418148634247668894234221658232021666138064902013480950395060281271627979676867361104470634345349291412234278586233486104672728691180830008219156876461080470702286273059839937265473638098891362025925752649697872204516350782894824701366343205860509009517059017763402288730549900010756669867880497057227780006137921623325705054269735479100058756816412564636759737233727824396463043940151071789961524376470952117667543409565926424277295730463169881463134393229748221274729055756598959050978070365770271163375360348229427604149680909098588113122585535379183016813634595440003768863767352511260941432376794642280239102574078917627305206597415638403094709622131007373205288968445254354546171761746305240326812082549780712597878855621601563561967294002443357489132845305234222997624448480500602078989222980159451677496418457789554966997975068933550610047508134718729273784515344096426352626085163437479024677134720912029141104976513480577777439302653856928058300439238829713208995640044452859718750268821209355636460916000055549132726786962376625698517572613621825687121196021417216727538312323768799470545723519397743076988278812882078660879239424224184937419825622105607367575402030224652880830434121316102214783775906060652641113110878185777043107814233565708110841345084053838227555404804811996176193268305164632273895632715056029053303010108691771022626634606639622622474837435219803873627049065023971648729292623653794165194439385053805557188998875719844028072924839789369567133652219716957026861098714362109745840227265506372427571815247505526377435968040051478223438333794485273248054100106997822626144758515689854925394431699125880194963454709908147962520212291737224097773096986618609995174383323251552563508030016221808206012285875037465688416758189217295736008479611774569612046834894394490839919607874951120400598124202320162211132623261404732465932871042355515324150477148046175979271807806653594581732165314963744472711253437640563227250246062690697084568976539428500044826402784949976500877822603160536570623185430984298384084795203546060276019036576565537193367585438726735011449012895228103459063839422143487270826105932256147527819654954366689240174543729422842326629320121554184245853392122055122660972933241165374914283759787321611955241402726865289100125605854793554659711230686027183921390775469372439070585544839211886905979648186313259963344669747974489570286110768142477131031627809002289335495848503046375750325542074223678433395629954694237241128506152451979598371864630672475446770766480895179625578089346080865432600195668222627927793020897393736674842079909151171407615345324021566003291554307728036249455536260243596394932009343012858352814095418281602125216584134064521837739242409400038038605634697587816884982146123703910708876255504760563572111226063163601954027244541922386100432455434856968112085461443431416238171324167260708159952114578824103839112189218596103959725901987976919126838354199923459837580071252431274953146175226058451385784746149519485789177708403200285291587651586660015943047709346453505279954308642179614420294757311279194962492365308805023910172509948471494655274211422674072412550470821224991084837591156232403302259241665387239800381522142473304915087530425801071804366690876290806411444857575234393605352082773805948221320494284496438631800519602286921760581601582096869376572532866853817621496251269011292307043003575806233930315673185897143280396015767011326702451465808669498955513787567618653739826601086474804467386357309624902430764258752735977503925625427338851350541779776746004651455901331433780005837303506136798266819063920157455679445242263741501511158530276561364938814914385102508817809225774386419329016150180132857127508516460228565949917856147167514491634658461187765354721199111486647700910415723480041548885486583523050372914558451916066191212351443982999351630760574971212171004621877517110229419180557986056990502031437468859428761389689064493002800296171669272087795466665583992133639265176678845319170524831699934450876402795684337387822391451112768422074860424032515832091005326995305856192674823359634559591256435597672496243764420461155092591378360160523955347377473394101106021762934428564228365604419257135252597483836312746545818264313632984096152789177616464933174323853112892005176461974841978892429704718651809882889550861123983101647450810273965964922761480920503302733865486587687569335334305132922322910475874667263261450096119646761437035130170991714928390667471411182178024966399823354645475155408986173836243471135433503499553492985156792121820561374652736719799173800014197116752659203489372928182690745983712422090714035075086980820551854896522982126804527267513748643916147545542222071890485230967775318007872225833938878408757955772101513095342704106018736850907691367344328259327341675538447476968557628818159930032392413369495698758805048677154800001826361475527653695497469829973802640368790213183021375695930052281339568385975536822670467076164690103181854513417983436481649069406536850643727578789107551510846663411385172976002761356234942426001914536598318761624396547042742768365135121351356138096450855039539031547951984210917729532807706415775937617530390265153937612196147087035100530185947489576994552532638056508586406293325596417771713425328058287996122732397688062268955631227033154520902392812899368915537826047941567009031285406366067239091163968815248057947398676371868584842024456257025752801170737275512107808336323635880029743370660441014472512012923580801018057189775761944142955983241506117690923573102698046554028995692865623708952346456323340923310243453335154047098435667336208858293063713807195684015452977769269270101144468358816039244093390239215385525944634492816121139463809052865254146177318415069668347148255232479969024940843234303401192268624482300882068888450029178063908913734719263944529125689399576038755641837254612141013799064964493988323102341388321474683615600359875103976233246447810449189704894493362382021381676669329952667771864621764402216270835203795091943031469207197059361981744919334629896463474470750985524840603456275785081543135305248317458881932605626606059714440814484550924454041606384297331158038994784542209395796683060639538155646366039099128086826707164883574764605563017293480341784022364653732293879968852740457937576331858056554333026897243314584715392713340761195199459951635637483839637719972440585292581241772150897516539799836079002900379710010481302051585104098127430509386861350963093745012459338285892642581474843630785700561599074739042918266544671958150544874988285552918823220995968894608657393123791498818254179932968448507801976892120166917730140478272249666947629614798968863980856807190673228637947572525373722803083569367502061863909209791837494193248998936247197310351340381618997914869461085852075893846514445375126867624440864972515872054848120600244215116363048173675783254109517873128890842073846718382338412390589740288766010238379994125410535025003549625135329469432652889685342737870685775641557686150215634361571791974305066200136070300971144347451123897893162382535086215329212361024524211353254122806446369644979744121584071222852221619829361194809383184807598598458789353239642406345116157770998400567897604258551392862316204269892089252201207657232587473829465720565203381192598141893989549878375140417516846234686364253003400165630158134838462274196264854775763324065986042438232035327190832180030811621361428177143001895039439900256899631658386998761113629195324600740673460304753308138065565888858940831110669482713742396920928705318550406856995759798659008200333611950115435191378294666321880425931438732557769555298016465424360122261302666189768898150693503182324427055674656535678549933426896178591791876553202734837587977899071313654009469560180946509836768395367281139182870040342555904664405485838389330748229161584991136386830770809831977752110320694654079110942403016599454325423289556042153051304163497589978294783311779279305860403739932912302324158034436313775189670026190678721045222067634575324202863921104610216154700898177387199936875739135698155745859348889634457182246008563954891063854331030930717894301931986566064415345945689405389613221272973718408728900457092136007325235250330814426926326417529256343812030485006403625752424224394798265193535698427422098694705620053640237909220416139584708045044496773949134372684134124437177219355065224302674184405075810965413400926914488399196753960629642746891005251075540374369251620431593269203450913342833327058903944662808343030655905139947363475641188112148848896192904178203170651469698710419423484146865721608634692929824040996197963731824555043666896211568511927573340119280325894345170732748162868648336425340627279589399897310241601912236530612222041741619038374255726720265010554345833069477245216407052696330119769137702847987077214395738083866095436546836841088813940789095436527062407740993108016084256550358249287900663257457836064406953216706250774470475038802146140044588246088147437154374940427259399382363572722923338482900809567574747833978145700582406539516782512612648268011217813030027880407468382862986991918551637529141337317459992722045316210845108209783905502649911119092874528540970698830553309975564863472307943494928437133768629269937554304351543994080087229779685192620153949921935584936146213270253226386414393244012804885677864697609451904876596626531258372264193528376486345350906367855403902119397454765537197870271019184722049351642979328474279303868401951424520917736246303537996744044213859178638474187297424315365393237443153209421729775936834351023463557894129579467823833441252811316250557848990302292638436068825802173322643934279662108805208479569968299983374746903026181709627487780024575959343255591620830577815045408379538255488105794635083949162415306677398428788493649348182063998166603039287324090539654599899876806882229997348296909377367163745882058112388725199308946862888625429447811686680885295398353307632731648798623211974263896075686008651734400948097920322977906850319659295937672505137795773889088070128058372184522388201430102966261368171846650630717517548773750487950907407265835604016455397249513687990863816835332800312107764085224283587635659978487350673227121110866310498046671807798911088446836666594799504236341105920066661245048420826338903165526408737561182243029014812283607756878044700034017790357083255657090561129338418115200317318740516017858803478099057006647269569670166867172877188627995132259147522953823985506554059803577519684626971888848045602650374180412998121481211083529840064000548515326375958806041746861083973037513232997759808369231573143124549760552392740299012913360941766908675615557979703823550338818909504962739074543343819396934188406871695591922747520052134160585200209204815065441461716977854744888491092208089400329925276944318811013346754669952819201090504430616384261708263018026501016344763368670014964438990211927090270250834807044101548642310284442533053040620496504403927209738324175134806471179950703267570240439498113410341213889985410208952771187672775661404910149784543717375505511817490768776334056830058619456118038482829786527657852844895993373985228052021831432803363139483262813381900048173834479748530914276461408689083006962982220307797778817283057263225022769613578704512188879214438438196445292201644803328187977973086097379729429742104620017060030724738478870577765886550556984198557023546084852725804403280847120040571177063048408549697289716908248789988026690214724605468341145960806468268511191286896823539036598937149150937111446342236460942938711031350457132632136101760236121363069938923254067671570716781247828867312874374423397659035979938461865993497288897702995900127919113082365773844392894925057012649644824491860973835570863992494243159837152219067601214611113476309730520173471460706306420790717135868247595906057158988810762098330522154127683959559200869948316580712006250318003104009585916579942930546160221578359690135883317389802163981832234289550388937728224494055781487077974932157478834121578740779378150915271839337378143832556676937670038238136501173329602621608180641384712915096396495567109447247632667670495326286662157711350795119053036294994126927348820427897264223325337390404643839820203876146741521581374739656591493400630161810937537181033979053675795125236441573050751820465057687008791615053307395652298923737803468752086176967282385088390427286228682519742874061942281748665945592910073304356906498475119182110606842881741093806069451149086478859785545920902430596442322121857720585288267947642181366199535407593737191268238990155520389237426567349711924224511739109589724365309284398531592407231647472359938220150108312683042528122757680463285879476357828587454936779028184521818722626440374846648148105987905499821555092172309688435209209927354039415274470403252512833617787921301495714789991891186140615357538095821374532760370700489587955683693940148950156566026918337026382676531405358723543783372676566654465226841460764346207979876371008307930667655143425448645384984426494364112455199187902225065447709081073746609103079522961906408156835321792045015755294795034559337530957248412356422740712409384851018406747673771182039883744261044367413756631536584884139655505665022967153113102978703921574147604066156958799159510370151501587500354636032985806387268806561417420305587262323209583566462870222574587344364644008421330744152421386634107688144800297099409110488112008017875477113521372201057993981720966246600066199331505267302293440716756898063376066301564350782032042016265379856866285891281695716290510733948064294716436339534030705799404358699649332220490274379058416365786687981537944609197333026928691221876886646299522972889257084716900408783634641058105654866138573330226864560833895511194693746148187891321869136255699712948997913189153949365369192004157110638364121053713689971935529922220162104030815545222541852623797507891606817765914118358106450996489697044604950823886651841226359754844496657541804017439180101696698439635533219181034493195866019274944405638978349021167323570339896399220376386668767659141678618159838337523509468153662875558606614083360205288109190900299392997425528117424816969013117951291985819808743763963225377378741001529130403827805717525169222687743136253661668930865642079288898119530913556613619497620795398441141482812863556338553016379511323255079567204150296402872607479552432899890618183508475760878735826428366747453429282736294458448138005959929388714076561505173466025827975620863335825017534752079737855984481365997210567147773376670121819399235916270337028395064930621658493834052549422987834922959856868868326165377489230338917543788928672400798502271303446645385077095364025547520515058435029666982451575166541612455034445374024247342146326595628781383064029281788990422313850094609205727469622085535526965550141182961746533999190586450661463594201084973877427003145017441761923923377857845502489688038831965632600614625666855124795085552896150365574823644285006882836468195144304232219391131793423433614922997602943926829217971828550205218776808687273489030761076250953712693080210785786609884759496102891785925816534190369844680208675173438578209841364742845235823009286781134122649438943374283087742900028526756945993131166900338600027438194858603401733862888171519486083372347300213090363250919563292982944670009649687107737962514590638620370836192914915456635486334949989185664143982533305515024550281528972580522241947840022870423009246435748716467626035700025798288693294428032476918060530223410010485773163038002917890137750874581332831140094154199154964853354819772164342243682961588973631321180542408382178837363534355157856566680438519889774197837068193614650531108147422173766807187812413940925112028887528536027413009690727262232117418442353917192313700266707199256071194915984586808684797766665992730146678876045815883545919279938315825089211506996605451675439954991918988140508523684933313579221190320774979252077244240623232523385820085363110241223264810005781450118166501175754468132378421003902591328881277548249255785841699720241273344345336689737656219989031926915079200927776457417193375589028823629668056166213613173697091725434443387457784146216497515257197701756057856830042003883590277456960347124631351078554420087648888662472073005240019710531797061827566991871258427024472258133923267229369034691024531127091697809768374084651158627937596653413602098414973272295526631062351057677395011153385985815699747024835692532333698149490036971837601220538864670926221972330699190421889978840029080138363354388896346340414157604653879960963491084892277506343541585319557507955250635565689709846266467661600283070115718658478846369852601634410477951886619811475151331341313528640652863653756331518492655442939510968648427535919869409331505627681309667610851171971634714907437725671582149422260672099923874679274896805910505725122557794218017071200375445097947535128913834519950360856747600026595312688132201811160805595007691992055476491174408927012341560350331756897954413946955525876179572893183180427795310003027382337858607453147843398906218554839323207621759503636752446452334543531968634797695299378766052172609794004338575964340191696844372584225620435103164095081881371111915091434729917171662524877519801515974967501857053349304964090348606528336815245452035098226686105078717681535237863809887337168549375702868854460512961836826115184786094348635924526103550842200539496420032287943818559706139515622424472833139912050777514113633248368694499685821125731157417060808937901693680171947375821293000903281659251832842368977066910502301637962180055442501924978154175136810004963830907445981963586219384256920906587400372808646881414475130101017071286735290055401157514200951833154246385999896308707890994416387543822514871430646140508070362752416937064935406204596849481211377901851750338199485875793805540941645676478569786451481360496901365179682800447959357048540997305456268320327514291727563113689286992658341784978077018876394244711822354398340391987450386510866326830619081911057470243218333656851982836119767851492255534024222967731918608977044919122146256329239946022591576788869571876974465473706093868811166176128893397706436313277014409305715430301558382430809544784387224210913404199018361838669216714397582109107003772867382627041773143691815866229154294376966224314568784618495362184285898344096877850913051349631010499880853149181365097153450610524571057180255277931142770580361116162855394642289158093122927725889282640122420230051420685005318618061537096807686478889788863930366292743358272801477430090560674230287271606108398690961538216251393061165439864211524457596095786572088490301214288397562016861853857080905010416996299566218972226367469708114123924644184024961257825238498239379977972849479688694567090678594499266662332046057385331236342097218774256300937858670864825507253940473846539207339728270836709332831434737058748889306782785498474393881035218692381360247331656966771087844292753031324658195547801027696367772072136519662663769442235078275163507715484144758837393341773006761246734530325122993569406557910237942010708830126924962799491358398641248616759671755638140006571788622514598367505476154531245181073379109476204514454245998598626785303272726366797509473631957656224543929646124974132189654729069326197436222227069779116622583433273177005575603321378692961868632915655799067982674506784150877434779796935967890087614291396188565526214437514799376445607866343684091282888475197578693164770378328663255545460280352233626916833994652149682100377561455870241664468805143933745106077920490037516086561652906555008958242761549413043453647418299504766117871228220455465539312160631980173716407631651446876768383664526294703114319356640690060913269605697991761846877380040198738615756892853558382445312974564039227983137468462041421145859044407783998251771751561963616124073096365057115894709512936880295957993526997200042326600279230368693157258702216957585512971525564460762650235851797179123128454400280656224318731100696953286910435784979563016056783916600651996718882950864678404421558129717655183870691619614257891495446162897829295682531474669970806805875558677493224239912764255398774623963493454223317739750367945399073143707203852963742807799661744040891695740467308088292014083481987511128156142940677943041475874675112599942386766522299296515470568891430597641434557348361766553647087304023501527875997484175519978024769776736143515576485478940173757379516234595652080706431307993798555830467888798086271948585498095116642954712838273744708370246121160386979260682933596609129131057839853910627920267212088207454661544298416248840915855034688793227250857400673763362875154100254442755159006223984941896102156489497585828399754029737449725413778353833943372942226341166974991042716722190968711537925717641516451496668810005083776312968898647440813875575067461574951486365315377220401605352886729500290149316410038599597776012402310768556470367742015589098139728262437994438311762285805588838865906478701433527143010552218187644195396897011796409682201954368985574157226944131338003218323405014274440061323892334140883880037936561937533282581189839776977144273290293087972138788421439555114311933006180281529677817805881515225365273040413750943946705318966910261392011738654808562397704334556178975101090573510787467652735554936517785059406471989183667693655199608010385166530795297495949762277964983836568507426045423266650451067208457589888451269020276173246961054932006435518340145443076296742620297008734642006386709392271086855616001411955187503692092722594142639841898480047724773568749752182542467139756371054703295317913345528611637666811438601893955224188680885432189690081183208343339514049849961700095511552704652183215181121887069556519363691177978628636697046968565966951585431101149073842154940219525046465526694099481088307297244022743217459585434863739580607938282810963549722073417744192876522937828651209412339862726279308843297891375263417490757995152643704962880324011192264174442263327574790284303996764636141597912488168811550102899965948806582363205772635976961945556991343564945616104858394943692354591078931082448721513552951904409509593022675924291216766499793244219412347862797056083667443825337674570744329690983788079820569312869665851387259132355902150954204564156337672571192973909488479180245545029559055435040575751439273372369585179668675083869986601871388610814091691460673666908011624648619955054398340664873899516968558818883971321229215724489778455347217891452546881395715789978153202788086358285287537379908187057318880258843144167278611565218100846679237699349000856114570603587797856724500307991104423648134108309388324473894152327021533120658056902234483849515797088107314486317423145747293807370697579962540509039947357032579127280614512352317876439854238760814098298456961847333480345989170999996900241105168758111441027409206615030466546664011242239560942235592624460047475065043172505649415612435838205601371935053891968409318329359529779193092695050746294021591264594239939760239659889073828999952033972218284312281223950861439891000833723319840439962229391306002488023213469438758885049697657721156147032701080756528004205466728370968461786911216245266298932099234969858808277792116200553452859749806581054442978726102712291669722315595252229568106785359442238493927234042691113388165748034160660912857426616150193671854189539493261394008367830504948236482427248860306279534234060489766763208699880429194328490242434721176979929150969213212897542012072405230772578375347127649187208969924375517419591082305811389493056009226632640151448567247049381751940400898389588646236677682319986317733324692487130813681453607968900906443751101552349512120844075313352780380147971236250472434423268456498807107079292283835181479446971373990629278271385401816463990898714684875251384525045406764983089146050043335847697924776317204123763642839492081030597815178736712987364704411751862882646395337597140508501815348596120140119789381382733881266180652603331471384001347248595917345203955353598835907269129525979751434484749173486679230941497557895434013206519003758315620929428881462006095119246729504735734908714355587114166592631222000636097998934977923435766754648995510657492780038845197836716824712480239430573392851952975579049476609126299335701694924339162491230860036781720634264009385595301662486439559316503831756897455856497949638516757756539991353705135915227679374609677926453567112372042531340025975030846400503911723098956075205428817781902269041988760057738391252207714696855094981470992751800164087340847679131694456659097718473406305778095017294193304639940050396226165681869570156885166896677117954074333442737271810441892992910484280549932342493860758908572596790515676034835808647768124373475374141202777530369664424835847296237872793154755247458792039789339930610838412135422780134701709455110138882443039535189581818317546895078561291166635775304881856196312554482483031642147912144437220889022074713529916028558959315290576987367939181781537133375485582491489678114988145480688154256969481142541185640634177472271154704227975371966797913892275559746097009804561228977506257171907260557741732801562919357797248713278099240134409824009272178396246717602808671971728914708981762148515757921208549429352395570413353501714022451630208820446864418154985765106758013562947237110313860988374020703053906384404628575015969028117547823176902203074441549266425730720485954293251784511091935486323604170360994720610626454656401495768287063244043205944947744109649863851355577349782839752750896325520600282053407872414735242041709694867440976907607716972586163747189998274031392177062659426091537597126138245459521630744193886931587743986956547907248840043619830790499808887807447203374220637788225602909351699608538041544599322118633483792505803548445197400173811450401073212027206833354240281681581056874197865902939586749184357426920135424895404626633866568543891319700905967383606996629932613054177079517480747116898478461633993970398804241420521084995130997309302914427973942675246071145181670215452802575502415697795987524549192407866854975486236001752741538859428344917514948842185523876526901489267785396432832010905165331397856388749629781477112558953923541518366638266222667511688991791977402321374817548977047106489209967915482862663922029696911792927570983314407597940651845968618249650903367308669791044461428527650052342001308416046950420358767399086025290320868259645490896519210937540795900242311314445086729034249184434766546400549146509843556206076910297550273810137043528809931111307428563711159191930449759341690996510572587181133285994872043657829628689898347961264242619154750766810845701379912642690323077785141231970288709548929868971389841108535541816578547577718614823355514482357114831704579417123205835679249618561484377727978551988248681274814442916063850589268932742852796222950003629687146972683534785972757517453134231213579456440788935743255939780689115652870808803820152206029638616753770504658453962343596786065205589676955804478500964478845368887388019858960646521425908012528091412444687983435175277903354647709939425547760309788705038422814473111986126116578941245680265230981990607925522994437557684868425630798116628622751879032074791263039235385102208740881164365140726186414370714843977707626083180350539478946551027139409356879619629439123020826247370874359191075897440282345599316567189556270864533780672019162448330419721197748524298150978472653638776196413616443974076019920283731292559405658510868666823105998911601001531613378507352611861036718509791934422529885785168772367702380431334741157314912669374743741260043669798111421664995149044050248351352622899019374500586049765582414928377282597713454664332898887869242356421265715562074160688985629695031437524680325279244280819343810272062948116466333073616618008063699277914125101396634176505557384914110913257298094273430273086762409944895337844918243223469510755388545742676682966431793494358592344837287077870084604613535540391518442178686816518052280655553524280841699918734208840042047863940738598542360576576824997895448786094516492533444124452484338411660769034360928587243685831035692636063637655009417785087416570698872698207188296617969195308958319740607125658606146487572186387969475409086982034768443417213625024486254460166296709208803054250296169220011842330283552899940394375886938801694249130625352242198085204828408685101448839093784169532281507257252745054297746220362389328121614907357107573900993471342389815731742069109099858841048956817439235037716074631699226302287836875393307286705099222348914307454410459289026197793372486227226402097726492125180755983190936575299289842524149779559832156342862555111906078400237709855113898216792293378900522380175047181833140215822145817339236775334414919363815708549924655183209705273895394489075574130407726687813712462825835508219429825944254452145390122635331434658710493326230393190791093290321297015047253246472792367893720361591005361964057295193285833321595019744001185559776717881389341005995461534406542733162267169325690894065787957685926643911843171526642449383136924623112093592479312562237233907108629703987945599379328675483970661227888048540898580254905352618827852688173221904487574102642146103556241390720206099679333069902753520975227487380016160670746130524438417358762467766665241555072729129756713625994702148361684072005422144786716845739360065731927780122909265203404807723209796973365947122998155962987751160580547732466935017279000126012788344080944819853316216726653785474334412013195914244202782702358931090212644285878589173442597952363921195352372068931724284385264090370116933375613729078102598234613334809151534340162117310343476910026289396733435143167113605422893737694241004793719442527845630257458363986531520898492271234432833570975614488607988037715051770293707780015973676275851406049707484346507666547447580257432397593369420215136215360417148048324665220868030961100544468304040327079313537815174024435817361897711902490151076234364593183718360328569392592306064720248393003785886693728486995243688640865035324487409880500778106483505844673711979310922732652461774898714936370191264928053565140412690580002240359583155780202465346412593738895591156415971744083820046146315322844066559876780891675221041418703169580164881656425974191757826353531407906073596378073236993157676093461250335771129011477441486987970123990964792428019649640752949060868898616055259727915886072128273721496274146043793216948635871833942617440860608162310545362415398101906430685693754448369302819059031643711842823167259396090784293125556163260798908856576142090271103138301890526404564240529221756791833345226842640392709138122653377170999799091041371131312965390101995332940521322571059216417681193812660669792288371607715581817054699903949577720199222394563432730846679727558820499016624938144669615782259561096770140432522613290902164054991861618667898496948093592769968901916592588767645326322019993805168584245512003472332927711250404520475891508259285236039855421368561689631335103201781282874811037188837031961502086282646685639611768209017429802603305436708780673585411143383071951035173859674248049575066703363091611714588354545483635354283646865772265257089495615572968183944895377077546191760648052005193170485162933823431537381307048824000046796500728990723445155594327798132477187042813981238717274370647616511636130228502265253587789171278349920534462005887146238445896757596373158270243078855969627453894146638099753391422954828929586949430487330915013197388688314388419459602080590824509257626908511114152234040205415877801587852571536663045915003591610590764798969183117395207213581660166739572746812006942856436282247952935149435268439407417837207218903848305930302347291469639506263073082251350065329175927484525405644186123787329749693944131458777474412208152035545311212049748833598640067003262406247975289670104360711362197534143754994778732497621146717825028857422094493221366986946860270629448526719075425517653599395351014169577049516934204180892915137997541135360566544947150969964886627589477953472292743781136221863896343783869487061214480725430517087051163391851571291497543805449130133406034184367593747704170634445109334467497946354020623766163314465391113081631182883306241187801746199016181656821119358609347819973951312303881968742233700376063086940944339494521263642733542411784707050345935604270140592380944321863659461695538530917357871118531276829936704909528966270924865342721942439528899391565748434174390419996923643335998692755181093391365313306544900472020345999042573428041707952656219081208771394303716844135184869867248487607994334549861149571010192512737206159511640336161485973203208295642935263635830790249125037001646869861081721562536775427141562560281837432153992176126565496367050938853986613989065373314990655220117520268103307515825848979378282630663199195525323314526894030041691790585751605360729592913943782153609261663235712845981489375017166129907373597889455355034153981478942380595028609756602097742478659231013277504261267742981393853532964836183268258534707844698763478245397400438974978233155109366526441649010151618040736850835301949526083200459436858149085937078250200711503848562752146360909463834287467126581178986227816370727606326172554282473605859597872108021694866866916721187720613091420345128721090947215858865511022503609526761490102081931493273140205599822849879855172091909368500439835851926461630817131143281550703516696648136974148434087865432780274499886650479011264708112865969287929398107578042104197623022423941130651242359446592677312934985894097698835169943751114172984588479759792045455004756849754053626604157536697318286442847690288158465974879051968827049209417579438234213318269207917155374288421440442033100603469561434346985266213691912914226826052134245570117602543386813787001383489554121024183212393782831727532284390940976879229458464800344936663995717180303313826590925658203696257944142911558257573128068645143853526439600848696819728908156714955218928112486503125894585325280999976025578503150891146407427450390780359634061034361878787263824898894182922316181913845590354297301529484249924772243044562828920339741072593742960599557666116792651966227167025924285027611240488783331019167124287213698038077997139959831009240973041403903515129116912456428555449938139690168812449222268072939941415567567833320413596331538039531689238409957134135872084926932331012170165994058638291398014675901436044347279299616047044271587936755408198508963372623644552785537613367540100090742954889609168298172550711940642783418156799043906438916149655109034218657323768224202583870758143678364583425728639701936347147377702685540228465449271714697181209476891704373150723657757649425252246728431664739655655106834377221205297096253365742473383768250822242095727991729397653412135596699670137963582437858502187297625582788690541719808155498021613555007943410103943977834463529718599506857021125103890913268014069608866195468591196320213450230129454785397211996004009234263470763058266408515511738128786812441127017982425661077723992539175595079910131732812450555818915914489005144042618668223190392700320998085215070537611380531213310618356193505746350477685253792730504168118748106820686590537336346820340362439611362331518600327967311734730626834939046970280385292488497515656125699962775388994781357567867314064125799590344566634183702984357241238739263108747524018560068278488696121879978618142637263245898887144032380318205131685012214570677901986870429286280836426630548548020116269058599703018639785494721946446857566544461984889952202473029347742321534872328149648120427163981314370539092781645025395663964231073553472229168389557315260824264684862780476781013834790876114356472150769371867517427253030089952992387483380178680631608519574723584149508117819317543213239492448683827996969377005173805769545264024045370310917427304797699009896568319214823112534058779851135032647363362719093429985736802116886949110734644519313234735174423707399208917789451265026439199561834225487420472441606620130165648195066978181523065202339441048042781012294484798561235661391262836943979055996859858976034167677309405915110208089203910511416266966804464692849701818703170457004795610372516074584330493608637903704086383456152443033431696108777895535840568266824042420004631262989973857911980230413900544317041299249468069474716736505864981485502504753949907008322378120734205045957214639752869970079079676574527611128092900343577360519626660387638651822398736950626120327842994343728142478814141177085879167743650000538310145875697849944706699898815049716803375226510724532096144430585968471156831383113671414155544907044991501639752700331704002871518934778680335900511454350706725622371173373200645495643182352831526288428660849201386376221516185937096977128713628041780093149514193935274174790469075776124792822953444193602368445244726051483099630090229818654014082803218964109842058801734017610173939731394449447133250514559553709033239970904244034841012151322786139605162618184385715815549384730859071593205074066023124281440845946407208193007614257198667813258701147055235523356766938085350361221250961890179848003396826182768534612857185539033510996675147778422392437116465885416541097920653598313787339766622541871010169123777609800803171195093461313546459288161774807717157630689935220955057445772954376715050160849439495515959577936530987527175687491291375142373703209408976341053279853003949158033348070150893503265302946140435650649520174099800114853108994211218926091132644099823760613443730442316491942994921008222417976659716406381725603330059333256698020869799789603077782106317416941335373020785713518432398382096951358315316657191859134788318668251425091496157094961218846826502639587889971367601538988992122474656862168359020412014748277332038236802737415246344637597966830424600180558560252283537509207385101304771935999819867857296698406661107239896004610201652903101782653580878017694547170518585059071036190364284759871584995049182799919816413400885859429434476271644556429042472039255236128755732528903639034988040590115482812175632282486917563205912645522906392983914557327322541151265722265104268894345175370101591072830918946085633021464608475483148335305221783139329787740500604779292567963112697852421384289496119419885824123804503496229533739383473693959159596871211874039417043760120057047207678921506520090679238244964048517378575929511206623895969206722916268116570951944276981118667301113604872600253937301487744552705341053669966546359832348733816536826061207440476240855024373805694053054791579566785382304510174475119851247949688370043440076455038953888925422061728359460526279138163739551084455885402369201482837992554927894052295336398405351649705254070818679072001515534292700435840394293076347584391130105698482835210714670330912965597262733678475734587282532363973237868715460648710952702882194863861375570099096903699359248206311943040602924642261753548060337241997855303730805200568953369613520648315867670513665440366758206080681100450723402507388405336702918894148464412174444421045197724041415714576824282387021815604068622423997039650978941227686562999079747160206147768444705100925627143387637144374288914586802239291815854061425736689914810930004227404928861545255837798434796031957879375941690816258270449863639880601913702359772075724570377771488870548582766125616055127679106659650835116418199680451903468210595547089455971873339753156633803987580145655301464225202357920951257151704521717206679162998906586003355322483656228625581025063421536546757769818731347526165972873258010251994514502761524213815839996258231935200717588694665542935810536051900319051772084120367016786324144926680285871942969725296696424707647100651665482817169910525160156878539922173461481879182886876840754377902765486247943679785936877781498376522841057270840387249665868996591406148318783605374771931885233487358812702139580666603394414027743475341837640917401051223614810925786531895600068248060957768437438214820533857254364251675651084231058578495324431787104260289987556854587120295331732760008482289063466571254851338522360270239248769638839204882549633161942985149790662367937218064507558667117303030375802814630435167765959783901629678600178360594944394847190048687648955794260859801550286996162723968203852441494726141471482350239918376120892350662209273224343573332745856800984828498664971912247040129528121492620572418179344607827210896884995265910920558797514946771140899677629637604639023616802573947593338423665103977712319283688934160411888564722811120956084934022371384071871161792118492700598914147215784334921148041992553703337771324017597612408596482608599955844614053806754255189475464620903768813955330634565726278948625009215145294061222059214834590634134307771800875574687746829886874801119988871353966698005975360219663871439298846635367423801759495634886914083057956111893708118052020845380373537746153749666511880240895758399098122565045923495147765463669505718265214601689093361538171148729681509607775008292289569707888664190228655726716863797255513574574032864979696030783021419572354615721264693596878654695508257328839217702787148243311860418045429465739574518149115272762592077874466625176439900061578521563541897081925918801591387331604492923630762743933579051363349101473440292854347311427609211735362682623981915048533110847300285993818268130853526587532303108933292100295737759611040664783317858640976653510226137672444393161731748699573930487956940476930487478430295206224817254614326758943956944035340701689040921401525843874502406147087409355085807099199735450963035802861211522482399356563417607584387838980917044267376963224358055873813595419390971562807917399808344660726719646706271818304527590430230287228825721745962436132933716785417481763774453243441409018153759413402002629579727281586893237833447580216494931637671603233825868607515096436056674152979100420112270494718069726126177314143916320079418916963078185547734794561033990324424834745962413997521717566385458174369410430599198035317454624485803662636392004707534935733969293645400552957071872348223597963292705585022425120779231889615683660707263354258244984575134846998846324365833589608625478687198598112223106453018586195626565404310750755932550439352432499054358895974147100294668941136801078434900568391752784993228442930278174457153534033032199553659340364938700837462896523339823995121015655703252994176535881155925229825055955511408860682733942873782962965495920171985980593971719917626501813026903093155558121345043066251363541705178079100534492110742908382781587475106348279462199943259784303172900303212486640858303948430249622452878496312875140730094351366628204417850952005280165721189674927430060961286119225679670737748856971118336556484359035764556683786144889188141063921442460948668486728780587284958459249554007429913883637974306311409540735846586784620157088438606867448209159745873886543488264913082736752308152825385336414429416073515011521379330856797678470213892774384018630341057924658540535139110346347792087143551046673555797702214854368420870281064639569931753755765777418902977282428270380452198542211934594490785746623906612598458040036668620963361210476854002569304379891988496430343535206753510924262744528786678733487829169355819718011969954437010431815801553166994318938058263121212010477058190497863958670925771269925310575515077801801413715614375409196627395232750814280958258562860352034540835684782839504080654525737160262286372020285635087742737196247908558600847418247612307430870549453467578015859707962371512972433394329426460004999264955746191621731390017037126556589013035240211809108186680419442625211554029766930639985342031184401609077806042841690305803564202434025122202011883897091085280856359082648438769738024213565501694141616275043179668941185657964800610481614217355474484897093676933752958706373564316470140995097425649317794795342708203724722006991121221515012950800623502890264404784571055967602297746088680850224187495133258865882855310751850451543892164678550700965914801838083346246846922222342081667450730820904203504300829534250182501164702061756292673370035029283824652948396180632477210636121031142132466174951879296332407101430218027652823845039332764874958688019318837278905127837422135818657131253774775212442188321645647447573016983075132597256594914423960886440843357213015546840273574141162612667788485517125730740066791369062037615238269846475597598258183088284610438691479349332632175137739563294940738399242142258777014986987107361379489573482490536615358743568926886148427919851414633651572237062232441791747777052379842991017201001973485225853482558157822446570471667302438374038529114143172627536765950571219682338358145361746292725261346789477531390341947032818756137638669969803283960493148338279068752610328520006595602162543167800391845058745921810366718939518292863900964292052718257391672600751101681472409382778588010625283360816150148579605939344105847976544367014135058163725297367663158808413081830335193772693210514555573349092883389976273506051783528146966825355675165359247382342391171553057392254942373851874433556198869422004713303449566526476031774774402929346718210867609791256305807798909602091038032625714199789777416195826708883474682370421260295972847955301961540673775689217200671823428043749196539229058225416518072518542824616409164997088644882909632543359682337390221615004956769432075889173899755814357457049671149554203499232925696181125818558752860477923381337866247399791776240684042660189209075581751212792885421145086410776557730050683748293906095004740189657967374334991769940467903911425124253612027760067132049826676693738126784587741420701777589424172422266746812059134514418461876120516224799339310652333800862008827499647940448799222509874530632490453966087661162241272847579007115248752472245834407280372547741278917405966937768815934905904891774404644673587410458784639832394568741628294247663131160628983926454904404538077316715795806152394283572218332447133082045256981318727509503135537097164572575419116790318089570885505143813537370399822694815666931591092779712647194181226466960568608664104733845804002766052100981499328454788819155871718791889595850572958922609648537101795623631444870834750603332680285790217528810743569908286336208861926804354923238498480744562076972138747707518104150803434805415825211877941507825600261322142215686762707302298933519456139373327317274097541185123714708895572996697833426650310201248127192373968883723305543353083434215039466994005201702782465680917797364099440081694240840613634359587919689618641964640645361256647227858413452024320474544566338346502739184275293646322248387208528359990368712514380566764475297166127933833015803992020084205435515211261384203888743971034795324075720717055881658453976500480097656806980658917705502481990220915138691297760828939912875582049706218506077165688774340173893554974642915262648906514486597085406634236157156863747935336914472857953608392474566700295897964171202741069857787690153017291126300530442269183465280254314053122014503353605330099060774496709597148867622164776399462981401041178211865719236299225457462785094625226305296080031126224867425027243263309922332845746249837615093348189032776375597676201225647450134395650683871800399795169741432339602922979052057652568582402722627360669791731037929503760938106946402478955409805043203281680003975921748467939047197149353493815192580814704371730830977317145613193066548430037386864258000100739606303235012911911799152120342098895562898971970570574717010168591624252057011347809272489991437974775696823007229056472038781622000712741999471701455514517290250914764234541027546814756297391588039364421792731128055862776825334338044187767792617757741756513610816708546443737010681853674694693365977257806852722743527477763840206365720122279151976683329483166273567885832438628423254613837305975267806047229696753775020879594500349259257929096622074807955332475380145357767180557867025340789951037847166040408912966985097559694528315239214479200679437635547135892969827718510327657342503728580532596759809613959003877577169178326820960809797289196835932724683034571299829313531253449590827367337539869171499039965136823011864096747764071952335220222461137454004277326466895892384943797398213486783330662163908399812890109266708432231901188988878653462656790548851181406417592828715362980002701879652574312919918649211987807336908476207888913789257326488229348668999018506984024179570010263817076789012175393050168838183017458090950657396740825245713986175957948891317585086486828032514999452616703585856708486050545577458460914952935494870623526852930119658257233771702436476535477760020881254838949577599145376903073629995113520517229173446871390224928808001347396835179191202839774421785446710070743260843588722318109553063049616600771843198368121120841640766245789592883314573989515901050541507616746078336372534508393510317520506675875214518856425800093269513495398591852310230287309573964665193017544040837606752492341016868884874371546201666429262688515727785615938222430176315660830046256632680487740293834248349186586778185522229695844130674092434289395538134934251739439550906730565029816339436649703176223645732542756081060513740929249010621552664669406827768203535896681585176884144685522941730947868655435231693094987499672551357452512913326069201427584231725561546318720827826820473161578589922509422000670103015918860411805359913033447577678753535936737210552833997344146689262835856559350949052335315815592468997166269851963677208449173175006732338781749629631763201192109386600988032163259380179468208413528060645109983228351313021828321029265990008394400528225791422118382740923876694612470705478512496740165893456990654316717002095383779249998243917171226104806989629558229268356631985975874891767212735777432865444984141659576177334671116066932659802794284186065112314002235225683165085114234314592718302128384072937135524935485186505150673755732865093770314500401488643280184319323503857330767895608290132163789921255783736481765787865973165647297587885742767080654505237028099959829181581715201688441439078235148641692629357802650758284975403656114945271689820355587069010100339209348999214772874966613677987990783820643677503567272392710549462341469201584293110365928782137555052153396863843598034084059588348887833188568245068845398077400528163100871858720298844097809647083612500265733614621615395643206012980743315067941295176880119204682822011950397540267264578119475332655971143893318519971444252256487487021097765899825402887427449088543256396332438426268399092192424130003358263526175103634816663207765440873339590775280419132883539400055273842030171225596077779886317085174186311854336246709583989582594883076923681244033661674398591917764783891810244020502403929597156132704843570669691724793076111335368608267227744739835747332212205806728761090621517667473261306032532352184196275312308777701517068577845618305159375413924659169372762407791943388203808823536689532267259900427963845905937475544687941481632408904799957089504687754635684397804679889056652198963270058240918589562678653937968684525127048174015891136889823372265707395794988458024189879463933743353107978119256842467064041410598599864209873906209065932361336808749724034859394309736718894808601139920024060836225927052522650092875284728608569382577645726792633406808598829214076627036640589701822286444030689172633422621876326124527702014455088133934818014657963181697175028364326383082989118863856943591012217746018321794567613105595463384564276900919587843169210077894090637926355491123233866925330093868844101597712972477337803227601203912105846563878989612451036434782130268717835250374795832620641027186343152047789181647634261779093292325477841204573795793254493615087191174801709530929730509692182456448162233949511013665446369457851252619005742517013978535374992257274316528495827183241500110942622331278696679169296140519037686092771051082550489140186242617567279534915525156738593685838910598060894896080908678964803016444900508834188971025381231973422713978967859206987693304605213656060431559717130582857700097329827136278909009947810125386600291516955343164798297203685930698778096204312430989935661395739231312734239208381229317370286431050956229991001155458513467677268175401119867661396655250036088062967398727192976117796490178801403205490705840826298457106196006619808147069867364637948228917024093225873245171725033637674113616400762777982506471775233405503199248203184667709382995094633379994521558156254133422410617396770924932552279290311504969558302920159435289186799350202080744746837105565873380957914998647857399138407460242062995933428394854200652005532631856399932008060835992499746344925838467286619093178730946524424018944607375412037990891090525591930850892343653152488742238056479186403809136140155435683737001081539649139964922584508142880365446935358191203468977152346044822285050366282141093528159872026943354362802805733142828651162416141926320361742666363770687772123957416644370176990759062292453832133598876239562313545909267047197103965844271788935101682991576109317479944820813736298238791664153854204985238834963365781701868065186072196613437795756525828657412606010357480765498266296161801148562978704380049301115189825379797219355246533620880296728958655359098033866253329780255067528263109502824041419597283486651925343258607013670058230768859352355690040065394897506826994914480810386558533910154793591104512432786210703023458743926878911765244612354322178841213043827383344602250768355344257828852303730532253554276969797674133748188626305300548580111294826561388540292109271590887849780979864145252051587342817899035149854652396856728049659431320519335701836156086113502453015428383131207275130640446828174398903030301562495785739386971749972665750406140689399569381504457577243019231853601610834767306535148382991011361827396690250623200484898610147927631090195292525694167923523401676874919782421401639390993091786445894559005489002790340912204306423245157663576779295026988039154444342765457136593888491695309016861799576054163042752278792717575883526560599164627940199742051218001960670992159172049657416370456020525741851806271790526308065385806554252307467624965924210988394884088365894408781299007312010238244008194943128259715864732953293564975211807958159443826408684384850026579043861040899719319671121418049521419364253147028488135479079552691460698364711647656887480159399262297176222851922293734657595743962036645070638762683647018936034988531652757382467794311116942078159648941928702150154128925313182195034373752261711317028018464676395084000960278225376960366587533646978905139499828589068792238790273908623916143277926346923572646785237405943677150500981279747648579634709814543835776112058430717569299639143591552212418055556626336345987768682114207565023456401969788292457037946049476224972061836092519653107834930900103447444275687064288276703613900734179377662485294529538280523268090915227786845100122859722783864797431649455920049407865576523566356378020321693498596901587662966674990437191000485339445069962947990960339892192541812388851018863539419728224488649074944223913400445200089798034899947986675250625033240614319847334385720333272863977156182939824483410266228422748440481769421745269764902875780832364871862823903331182389584477546883894461398453418716598604254835612327811170455527682867760379749169847717870640278349164703936914618570310057061146510172260778406447401728652593614333408459001253106219983969549668233814825505346399448384083888009801034867194440077771285587553735094631051940586735640651490364750459505418093850155925655499093273171300022186646382164284670065432743580190668318654016284007938307763078533026225894791574130746125611009464223868293359440371001011398682924773191262271323582858910283983000293905141568036676346868457739131719266064245112925726593703061920112568270858411285998313932885641290342644466779016552427453123586161778018871278351999297277184749129972709557605533062734422359882215192515407004033610547415376032165952101023755154998423202707713398242536079720947799803980737727440031474511946671368613609617747944449543170534132989143202632111504570114886725645597566885146820518920981372713018374009912824955353479536713387763514020652742836657923997960909025845273894845137200234429447399285076093935158396376348216202356805509184978912118278856077483581594824391410517611106365627962060569190439222691905855524837457903668990493993761830918641586304429395516534366381193621318692967103406324832748857875776616938361040853690822672101178455824979005181830026625103761308351620555648548439297192676226553695135037897567232474333294848809049412331464612295087200767975611935503733646158601902113173934047176751098504768865681225950210423140416895527701083414102532601876207389035775872125516228753827460994249859944235542090902013934320057854531786359574865717119988568819970452180448480879803721343854818069239236356072172957983422668972011905702491111407193150888031305595629698302267136660341213276448432185556741404295508167109383373958521626552275534161027315907249364241584947346991854747549715933475564715994533569009667850744739313067117564238599314932470004547197912818906096720657517589444990450338102370416428703235999338552176924657364442741389444433571759267833460160287951926205205016431334182453977692435357758435595534115729756913259890912372359226437745063958476326973892931811859785485759400326347485953134029370232134182284194106447785811689873432459612155142336436654207019259039267162487355635305455847991475730310916686077934104701479788576788446424186725140234065092532264070108285605963992355536634279868789422986545137036324037637312042154094201782221882615664221101374789658853511622034383217667477516781674435065820552814501544453117932775183528731522004786466527616376508669719595196626154884233808423687495730670772360230744190534523316075418983072954945103163065812244374834638513764654398557817531852236755919006092745635480999905261327903264605903809788537288497957861238840681401531679319188573343771158359704798408171143112820695168073368078662729235507222451511534746431163874808933610330535609062272201332200941745796893442108103394246607652093716808963983586581859471399397491047062351504220939340000652270830989682988609638450922976946617330542186848884859707867903629487506856232082644189406938740620872734280057236896431978189456469484787906859513784608376682064248648667790825862171380914327329971106661729631375629134421429251313458895245490633402038401064346520136010534244715910685799195269528660337113640171198015360918464790105928223330601269118665938193962024672112320734258696059467452290579215788142339979037460295017868946285157778456733865488339140987399977973976187292902573901444659604081268118247282070746816528170528490292433727194215350899698200074492738823522915356583357928172634918672469736537751408750699245651274082226060954685887539675243576439530420425772859395483498803375305667129679528439685176630770200943529483189759259493171321246994609290742588758627835414916574843039502435111518029269303384901563457196169144670377431045211974429547461645854962831999955310314835091796377893838467735204126071138614654635316979045811819800210137821725564744305853613611655772889348666244887414644911715726630444286128713740983181378000718211960766528268710939179642333391877222648172176539778316801698200758647947014408298135074847712171695183522462826331882338874050457080764436413607740891346041151504019312315294670269870607080525453828913419627450243882753867021777370906076639666267782648434456729093278322189054855557015381361841900026459166851951843612240272661016749114488307534457080999059087868785001971021871529401535101600218990117344094070100158309671655590294626745330915940225774308608072270539490317914609264759176255636749267387317890257292865097234917058450597203949862007700296773952379271248689456280978098883975717373010326445689634212902498178483816366585114887315030307484836087183930560991006392640175212605001039497483625817299853494595851104059327128821253840300288979733982902742281871031607805086356520340130162785630771388870434465947197646787376568083628773107614104706098576051008218164057019720702346388874851331526966863849613786005575212621838017618243180247645657433270999596830049940826995833994334566195681468011635030794411297947223111146308353391918101298902918299065924534814728202054310820937794582227789218845896911996536770331007690473140003872788197275119255433109045022958229588435608617457077046713144174787713893245647231333554946332104837950659100987278764018482460106510933885086612891595338676990744986923665394205484943832932694906462745596927669155760105781663779370576959570753998727407100281035670094910323980363799811927002750197051716470128877356822892723665595822254582199651915769787362604143890250496560688653912051810422855461431225723566471083477202765158249259721015905353534863871260617929584532012829050198146641987585865717140420809527359623960380449742860652119949694953491085668293063080545265978563167876670031321166073107091810131127755139369025179915417886920091855823279439404377431654217485020701815148022478030768367198433395769483759211386112063130147153899526656989748071426570967594925477978422293224490160274462657832060867119564572684036578834310030220117267617059960725899352774973352260462845629292571812976314824833388950601850259149443204203493757939447134622490804236219713817546602289513920857853586896987117776537550782614423878141228300951505058003379765100283226527078933721531827469140370132923330331890396167670842148446538854794392741265789795518373535061301334394650558218584150414363997256971398860401268935818583948478304683998579998579260074964708003103495333981742915678098274067812183866331289487020801413648151153196897600520787761858926484310886252127272172192637767303092781228769095644292193327126635781733204576636370535594395906271118912453652006400848495208850571525512815925991687190678230492461945864240853435475342871720012819419370334779850886543983415338571832367378229687142653565141873346442216560010805099724120132415364563690177652390932958193217411476093386791774268047125647013159497627688991454183359808460112707244722991321854141773675099722802998318044996378247642932452671655477447477648842723020675524744098640561379073803280148127526739383520678427157197842388539346358564820229520079403729132713331805300710286764913865156783269711441825989567000098256146273117317722865612904658146828814159392690502262870309949041581719859008004488046503452744239633837921936140749014076181406832280507049337091104888190388948208878581845135040273840383157546380914104441893819196548447084230601866297819949223795757281289559753433206448694100747543892845230277552889993431983178842346053153107118239482516771406024480421051762647443853410227263269742360142141425192699845875562471852149035438314691779140610788767686720853372049448889312735872407899441595916464488640522207397083390834167804109570427318584969627510522971020459935321614183694245112124259914356537814126606649167652191444003270826994354136268221204721250022206964967381548354875546679501623670271252571682294039992572749580980101961421072341849683356079938166657016841714138278650031981148549385455225109765359234413560097620543049532576691811606263947445252462274954565445864219993641807586370681657870883640466161474887193785154046238878505736850043700369681564250038507850296210868199467467664483420527488033899909224501017609627754498367234745443850605459376515956647957504032069340062965296999901615907708563486155694495691197134414716362490101848065967146178104979808290558578753960372861990087488791258253440701867032966386747176410987933990393557846854424546060864771931120116947783874637878924803964397392088790809014356290406817009724568599434472325846628349182423928784376896782883025215836247944598066399472096284728775056108972165184104386580561083458571258000773416070682200546655390259524724246358842295800514197969353740936738840328172786949643132901033239119242414457951791936722300613983424842648525579626841803888028949076155432517687757785585470435717091301623848198519088905503748414211558684491561941770880621942155870370088231893735663028646098772911252621048766767740543057753110636896455745010994656529174714693224156133316144486416956374964248701311804041338339318429323768485163196610961878372092472122415367978945143521026982319529019304064122818419479073831334506937407616738061691379825316264043593342938325560270830621503096862036694456962357787544145245984263005762247320874769476590193551509075750087702926252868349535098955410505951360526086467332281847939387199397389272501352825525684063952303055114176077342073647821134321941385345132187986272286177150033674657305246365359648676573233796807275664252184260979882964668719918673844139675157863442114316324889836652134279508186596886504221093305107074057859171079205114690857271388936184514872389361486657205441345127249535013205259035345034647313699698466723059651565207488475784833647366153676755333508231769635556554155130803967368631132350814937616596321340814646256827668124018632672046574655834436801138513303926475029860544821616600821475925716418962350719650588659111930612738386447884057652624565559213312327306668395664108616819432514183749632630509087289073925806043324930990546764354086549354371943723993894334279391087961254269757632492560241459413037097951978278931794608037492397259000748989951078524356515010819256334072759531506519781304003082956200060787634647754951943981759352004982099910223711010840689324045304745646689601953348258268025501032973220114326200708756272649421721199697637339444591397322479873346573186983673639660534997101103330192227673458099240720222305365375313769229241257595086445739784340673985384452142757471217830301745902497760106753934322928983876113182279342350475205888860980766671671638573411511044988935260401541942094100125548752188603995830669602389440262560975111223274688653022285891723847096752698940591111027144518754720850340969653563512665972901437019092205513757995338942347255174045673907505022024788558360699753998129426197816653286635615323879878912562667498252732371036014546667797610896024022466439945017765654687422738915421004042989582309586600567362066047616247387751871500436832050062266153320295774303702475857454997504530285672854802985350855470692651131322674904777561439790304571325411689046065549644821814367892681434635302182505073364673352905216902619533661472827573833888107745811244562085349314551429815323887374217210422692882106738309207485077487351765696266473109465006218417369116599091081473140373895463120671055174448112326214782365470261357901146659865726453057558100881357602877037725941309769695611503471393896474952830187811498504233519513456492236957689152588802701112500074713033293431998295050243516842230026405344635281755402259886752197408080534806888463839260595126172234164774754335480874751229653175835941450607806123276632880347128979995467318657672840497439444410654762667848077742971229545027471190003050924196410727665014527754145890683091200612563911621036912085974553979098956846422963385008538770885089725572432141220831173490202249464517506948077663660390871856330439151102880861836622058101633144526738920280318234475771879909109415398535813291400039086757134410571574417979192830440871641692442123994023093146999068986293389130705688414943545621564697778344143771010095912523188346779482912271217952972627400265490549950194135443257137706379003413550090169682015332615918653280961398694536800426400795154409504122937913589756151489721259576733160538926646642904727672163254221813095565475220702680079184998620787652418664213625757717274355836087181498057887916040651104056086963930841664594392464268224527665664918553156372943481283274135797986378591614697078803085519899139047510517449226049135763481225423243416482546421053344539285312064100467952353524469832139748097577060867105890121983639938094882678588177690050819776986906422050604681159415947334851595592342725323008826251017346425667537829141476182255833820600793180081600783525852071969655500636228656319733841225710291572803510979780430850441907905886419448551616862604046810779775284652672723900067804190933491960335354582168727939531342516696986176679628979828667381869642748218596565429934734788847982692615233505614217171862237761982020844311149118803515342101561805835254567976256018963236231995950529498057457876527872709130719094451710684955331081952272046654181937132717217706820850999845889006847421773603705728777800506010436878797418794864377646741046667359945969996505022323509056991969108860428071388312200453968671173835652324529789760587293030650519682818233271444536989733627732002440292414166306728783982157948890629501836852688374994647978143775926177503809619713374414045037774057496517841494681185031618470877808427763418702141236638687207439957808621193496291848651105616887100724043307495361091530883036755623509684316061861309449744558291798600416884861595141528762485196776088359530129105729067352893467356494174252037265009400904322983542951762573767406884901887743866509334895062286380271081690769118807391862737664212423274850387897325961063787855269306174855519829597602623940504468901481536968818422709676959055368015781837375192576594815972093797106687900349445269773366808318424788648802783530633818479643737184768849209457108130768043303512354319327083362758365212821675815712425661055804926164247661258914636967276974880097391056053075988616321743366693470839313969063869561490561218314588797573788247657379229443477814805664165895565660585229020156923467893200529087110125999981369684688921724928282635427746930701050320613223399634958054319462195419870932811624304191039812667298210108359787719982845003042456625934204490060761050418806273525307910190253731658768194460314407095283396599224035483875592518985092955365658222590094985077542759650647033540492439830549439357506568631284027377042540161507267889258335542526730191688100781727810116138522163248234184900305588168360706393879903572373241706891996003850534867689872593636721981849694005572816678978226177226629967419517678277540132012868947556898486775684401754078489452575720932858954663079580040077047066117166599141915798804942905085039844174754324804171291669659675036874275090341338574852275341332306989072812981242518579145462048482804102443355293899835241518331482173718969819824234129238234750491619317050948074554937460493528182702700948174891857371300818130454750252077320270093117917930629322775635759922237819897508707069869336685817169725047430052079557253640376047653381540808965826847020007336528286341697219554809807580627025431163500762890698718554488559903225339976939683572795666582415542129225479948145577549141338567121499579268329452103111364633987899621116666889095452146193243516754899503517304741631245441027077279442495991875347775011440957958683615805042050025779548862881823857561946314482652252219779767608047416556273993556162752347663199343421311323907865550746884126085479172883316869572257530770670453315130392943046324748613086106694113604880553823444172162295639940218916344578011343979904573308667214052959533913994223714177352415980090183627049478421150097164881427610363707413990823846470032732683940449223977615716331172387760581039613668792343558184570171884756619218859668635340230500413368568281424062352792334453226123312486608014275774095486253678933220481523161621294337508814827651239671450760091704996497531981864333850246614005311848529077691059339136305318804539041614833920467480929978109033837794367409299553903189538704891758300635366916212916503936119873460182851909908017650468427905792911500630783396156380199694063842751297822155235899064340375345990735677730365490479759022075878644728232576451719710701443218331240297526572616711321975310982771620359598500462909976112692759296311699063826744101491435753224148177510324857022303837856915297862937045091078126436152840571125912645080261706633534094889252708312054874656178840748812401038425009053332236159372844752319914391318842793632451450285085235293585650348431134310876055875151203335005635308180690370218712929650188883568894664070885693409704470995710915906777752657918998197454628459853919992349890722373313300409323024889760969614329148102313957264897352591447512955045192248007034555403017127692999237824858153855759805991427141263770551195896422770324506420832019267698463799544569926960986683154590899884942831994972360562046737879081361549060791877399533243379432941230707276053983037649776170303280871983378565088764630966908865191491311910646049016587368760317220476992006193413440819238738385753547906051085344729682599329650339016675452041956070257292777549942413657523846362989591024450266039587268271421410110489641786062929369035325551194138353493594111227932653519885695230924528755912205284208382319237989180808420423844988847943724137289345023813942968328517129666872887907530353780590819752503679908253767106471491011618057284356386667679252588111923100813414320853816835964838926265381275497899719217678904994047063892503963022136785307553024848734559683407660647901098153726197092111480217260678452587458829253916636162936666207666231568205199558653468934735061462817714826859656524357370258657825058708310330308218595544163757407822716835497441234160095642190810627898411607666764213090389732460278242065029287444833961820459772049972658158854046224716275175263368624454508643333260117149000459554176036263191002437697720639470458305431406520807844552362550705028077357339192659772678208538958164747189797527227198279144754124136857465517717020296273454598402989423963725899859430623340236311425637070948875713779644461733257648992748106761158084377073230520673685475908033462762880448517456349097185545570910287758851451195621046703763438511494206237339925823517589184536827040241121221320911070108875525919052468823236415194020925780987552057849631786659441877002719561251943193342837556538671836972136246204533652318721549180646134079354837688025491362398023654035495312115413051224902321853338212238736387523805306824655322283477426337420974428933829330360913610656482639644205458834418648870773205553694991910335183224671098402176262503990123915953384621660789741699858458283977753419076866920699110769501800552138482246391059891977355627509224974091707832867345008336184440329662683650345653145942495984983061725030312596688283869591720566931213345553395417681334759173926546597113350753396757537965265853092322290203326642264579656080190980950322494989425212021845092092247583149793859264883186842298299299836143153972518506462648323890552921680934824471818101999144596503988620801911820668746078641858288261404458200485974598332225518086550474658900012576031800936462614395620754676663100208875049749178305465354771284576436858327627086749126621393489299585326224973249056706155359323077414247875292268759064793328977607421849822535247036995867431099451664375504573157750702935050854153242233081792589980270197789927863591630408748175685851016419818524314050360848825234828312411043951280233115699166500036414397451957089429984885818228947996463458537702032362281095086483915686712408494413501434543339442334476721413945340335589808188665197913804077248199586424004748690826535103031442409314555140548431386936067603707459598091400892646665382865539568540222692543376070655378740240121899982735383570911597405878647907157665994319620291675931803638786190931509077455845779745495019841972914181130210349619189885443432952766260710046947671669801586758262300893539672850870512630018541387017228268167257635048219207062018903831587360496371237714564230927160130132439311006702832181909506658201115060776157311400715710830078092013221300671294029649766225072701950214307255799092393332926175286897476159028178322113022362762914778618261792606204485884860407580234268485262851948817589134704576649433392121598751814087432993082435817910237703576419578358070027527976423200512519385453840896729278553731940564662346797777091942594104166587956290163935826163488829002838726380096651225350426909141964361917956455468340611514005293296624318267260606109362483341298051109327175807553024707487829543090821783861833705303380225027367577098220379592343963409870153321179914055819469464890557055148098049019785368439252312723808160483912753052372578131510928836962424507730623393139796085860030287783056087918604056841916968991687363012738520817238831805240722199690791101613033958578677469581013478152118255854371789054897670589797615632439409823230125633908503435920301523597358536753974306655679553665617595390301010921008640124956878968293872691668104039774265134608693271098975360523032918695313260402012682916737994833470948791274634235233770704639175500948878502946673081228393366104571491609395300661154461930577386492507168376554509832448775712507030436653429414056908359385028196041264773489366169594804052009305174854244891861186361911188762794877272708622944314627456716335441543287445953074216815992301019560548954255985371824239598095051996988548178756921210187610207441616832300279928816800196714510025405724056935071287836381585647892929117634810100837444052184881792802448115054762401989009297295689371999644734202169488825060069549476056392132651630945281322933517106876980149581365053706521896762916029483170389669754912069700402296071559673047900850411858410235708827390120999707631564310073368612420141296525088893643342779740360543992348204576396370671166411498568121286523283817380069683834736847947335739862128059112894414813085441566133269197033772120187700784121887630260597282570816710615838589987591840465723798685957287203186975187462794216830320330945213460617768521746971422896036726362902411990497277336100401226514662479941115848272147353645944772148133152480037202002604762592283901554019269221882679174901946761811636132271154368797452111700113766144446684871926897280923110200972269877143271157716653693783452045405246188043167233453024266567232140850014405010457918277741496291893664803195061981039004190036442506310867361901928145343511384847478491050354862535795913865594309016306916568803658454989559542001014207633781743474224421771903960488079820339437793637155574250385685808820874582148440170497097865977135839973978521802277027415375695120477689631568435446023356072839549355012582120598463128206497987727000521014928246390385411367980064046611451388633686297062595764949778770210266054268735220520154414557825526707543397635550308251300207304306923965178052827550388462673489322800817402463617952302222901401219372029344600670181788472161046975350866062680542303327077680390054909087149018361300008519261699277493003745445839093872771249840104210256770537779695048060182479684536564085032802049626319350875712390334010056801649151200945950775761311073599564276888641538481393972756256676546328105431728773648106024929929758683244867116783632539304140415590646916670582222226870819784763449367134989398080049760357893889577697732613310106953222235772935553403303125587782115485528154899925723741050407606800951635383646575419078917590743914707783523542738454668215584641929765537655520995855725789219242839818344992406388368589105899196493249527515965254301403902755054148623876602615914539470998803984015116081721025791508495449492318537943534040321931285624835839090546611073679218136189777481815963025482276699087227014774991334790862551867485296276256064151107481334014365332689948022946945064300554794956746367082442851070432763042078956899025030581772103070529703100782563353338066640741882438080860662296758404713484387940506438579802410154724374218467203019911351195155924970110909388741286964651526638291009421025292221501598671312298367926305761977464386235285966648869456218090600796544753530361975561289665084162806216386877870013876041895039139769285585694929995811765633913089562234256178400781981199064285499138042825464997585897416584275859802483408997299228833716188416182693697870644307555437596962757790594701056157965454011691794618732209602488029592635644189229547684631083463144326421556809615965634317567889916138038815521875913860908965045306087149581783687850930673054661666828692339882271068597322781547289588117578414069886840626162508984454525039470854219413159284881272064012627492078288160205604498453560207098283922605424811066743690578061541604082845989103798373171244444483639903412457109770192676607679208340958849679402255864694613720198758533629353462936678039128526874701631627992280054939098822994837969826190473378201748857984061025297515683691595911674928125012798607956573861556083608455316000048361391469055683558600720480088859055788993931204698032081928885041270780022201224930800567530083634226682981402502156996242862023455883094527797433112664221846402959606205496724745324416738140086982054916725492139610803254606989153556149604091567275503052274158975896379917791179428015900593544064786137806772529449995165823325519845108300517703750026625104544704604850266668835713955010201675168970779611452736243650037739734675316099824802964764032008182005435779267431715069882755071748690042980501669485163109403861945782524567983164104518112725103416571267722971135057502574536201351969258513143533356902919811459889259866358303313113619451940416792122774340611775335616941539339862735033684852446111128573106664774784978986083661706712807389584964998402575963993566859508824860956887418085160298659836653271798163516782300181786472327853887325186374006720087344599406902392495494940851471306689153527131377127434684999495066458282784218954216656203446749105968168904543954186498048843264951269195477681698945531689971885334243503282511314817290504554326346515945959601136868079048774766034482695186863066765125452072204721136650836729374254514428522014421784646758014027973095808497797920646978228461261147862561492265633350560631522528624337119511210085423677413328847674232551367085126439165247153789115479072440934759753615093652184801581239437726024590533593546788952827449096797851071833509795853436561692700288097055621705010683030108381999598767518107962006325095364495359593700134703487468171992518819021708482575672808228123884690722409798162642779602096692790207603277826083097256425575361728060584060420419183099473150726188481809521375000949066783746518844901592009053057170199660975440304882197826625505709259302650476363081260236295985660196102622709796215620319879364368987323313435111136882723519311359366344684546139816734875472620271778581427432892028149894450434705236716635498732317620364297487999957709181920327684523554988727356790553737432263307683196290482225544143908640176559335188870871396067334105525402317490120813476649236150436235008428472938995260813915630086734766862515807622530879728329604585158115328650861335808019309967171526293868502096693175912718996313527336085341761616031427577837993669490507329180550854710926221164912784745143941954317948644476900355110430541237505877137848254433291928315618523141210579815771521767404964674042478904482045448809088858481850365587677779632605072453647659260191009317038715762633049764761971834803817557139363549623854200670392408885086884894727239826291325143149059861569362263792825217121634843913888899166684108428849352746444886846849825252619617295081469557909284994454398184646450238166540532284383943128326391632125563169900855078525538481050028716491718825387054143858376543949069577945212922516418949745797384092437069802860029357157389638402610996116913933155589393582994019161238210287515670789301430308502749291150512531454568992509933265362056703543703867658625724156641242804114974845798140930831150567320323010819434301919237819883334787953921729491678201229758008338861154899632418325941372644002741817996610037150597587859960659617606155431923193980370635272723331656880472113579593487512231956408113238056526947363240820868695343246505299041157315747160571782587606196430618621263317898466586325216962535352903225796763579002427042278654517319937945538265828134512885088727247168088838654405104314292279952864185646925062355142076522320245112098007973572141268117992192029465988826396536158546030824181097626922619516560050784547675782522524720575857224815164807384506108955402114261755665911944400214313474574733379437190154393035440364281805558482035239694536823720622518583946351835200791848174796516944956873854677267623292518578986647612315994295488235497598928154981569901267442995468765181004672478326043892597976155149107709171869766469450881099124710645772445223348321323381518148954019279673031413628941965965429736594926650882568842808845255261926627962524663065628898855452162928720038746751674164780693615733948762807352901826827564854507746353572701750270305032566250108940382838514191515580013808599740036416934935618462145186835599556996147208759528840735058677247056758297752859069797502372459699789085771255463614596221547972084597123074034210714666037040999975700802940520018507929265032300843205873967174988265358162127603566738506116917779152314646655601577179991983386957145585002135780499291536281919153430180596092439004888087487784820975504751026838189880825631476860653073446185987827088810694532954706421197925111300043170432959475453297990089764327688700268121468848776546547371590915052212924641701950559258292763464297780436123114235603247154523180694811683174260816295719039544792723881301806754359232761341490301034527219990431801963913475930549559522590276632256719739267713305430771441607687905907432578333980928535543637789886295578833395121866667890915573255427341917804764212715353369198270793955692254307932188512017682363713667691398480743907440952893711508837797745754110205930992123680432852441031853890381443436566535999835174573061747671786453028917467965829560266403009880779400258072424961759135343314171160445310137292643257563878706435455426743048027041237901862882660360396967309688124130788811261016938211015418024660763072467899036373866923102995859998540714141457334914573307280697898744781133363141593641459636621850048245124563000766848056915929664625051711044332061984200565347071736619178890760997396836795344106379202955433459216355737753217106166698290934615409281113535087301671682300193192010097068698013354070620921582953490175968438395529182167198402202561467237605960426487469678355689782805534068556286520436020159594177879447140073173679005767960773633413657168517867211079852976925452775387705786004041278741121681985533445149459169007911106779999835867484585840673905214306552185743115369923456438230487927378318538783587781210374957818263171826410885637076366930026782764310722623762722284380818717662485030841148575312011726808560489526299937420303781621638061040946337961525765292002143225696973109940886729551026670367353424800687699817402621342369188895323452993716460849041215950788295925756679843038207548091997135221188954243146981996486624792144611697470691511249459938250729316181536121624411031241605441426265045245305097196468788700001873603159162752450368498685880015873604582041101901432570394404346070672549989509513824151126191463407571038911716575973213780978162787819312224915520272194282223935912006467474061815857742313904423075411548923572375602163044060108072660609705464060856512474256318807233966205585262270814908770979262471997285526342098601452028857526685140062805972100525705378598576556947826869118684637304279830164893191939255194259639268489056828997080192553498771380845478051006878845304253198453556256891405480908780073308039288797552367746491066325486536340594051076808729852775726154446477323788035233778662082570339745417296100242072780727269217250799455454108668433182010363181157432201616115179239597495288275994579334136919301222132386372757559249719136751871375693844990993881095835130499722167898482299083343472938676628494310274038970055486802503111034253064785378345491703887041032961508727863401795090694308687783613390199703443011007420663532341502101049541551165290814617046270811388993976041339462783728250036839816141639464593869465710835934066772106549233744937192648053442452656961300169318924468790425860349049455559811803196134409985518227220407863694156918075668192472089630279531598825625167732362837068685332408585772624736416808178610765535687903302527441751009592704327319157001182593359494983667123656346469801823572213616555686320334008731164747485957647322992787895869690447962963735576576248170537872978571596196282929896946097704789493712395178392358857131537640287405007695255339946178063264882552011577761211103510506962515185667356155146702679866583478559670168248672604464315115938692832051259498957388870078156605720666924198010698956225001124958107928329073624386458729225544622538688347095002431832635514329156886587875435972680530981181342546446429608270282834826065739504171531316164659631584732964202371659073007783403855088598244247337188361974177878625860082067115368792296609899615998857610591302332977475050516025756058768010116693259168426085241168912410691933799917238223799010553675387015117398990547927169388230825358957759540689204652543712557932316265695888362044640660537569939126969259747377221310394597547320475691425346530768449687991761048903508553355692965927009775838956694105044556281166271805857788398131103868430376954834578363256145934512270497079826607102637018536129933998079217293519867397855100319307763845778770972892516206997694013109066179105322693760492657153278676495020962047052871577486125461970891547971484805636083614291183922233437285959761854641762703749624999740394810319312930466177767199020819520560294059718325997098363882318255850334560411232922192076657082191219241277259536499283223560301470938226288257310229190643649589349596699731702202362749098872984628404875602210811979928751884431055035000419023411775936202889348565370015811172388035380814008940123927426363071564773217819421762514423560159640246833855926225407899094363774423312782000716994337970186091709538205344682976157461489686914954699815868082560871457923738903069664382916947660727585705712413630979823983342456725221594811648609459822797016333872806118668246214593781894650088096280652478985446598149392606542743105966362511556333002666333392174412657262763162864530926041736559996850666562118720795386509580208244979470053470344503362448703299485354867829735244154275906781185796526112389808921772349409481218939877473186508063735458034792603847595155844539492018901805616559587201058187104282326553425716094791635460841553463305526903129611188932855383901150830429614878405915896622025913032532745833790813164036490208992183501553441766817165594752586062466115602540315241278548148832723313156638848258239817666777043637602842177137243053070938063438003734988376080770718272174158278554534564213447031705253918598339855697261156021048411551043871486239566438941058135712677436198937616901528647279410236043340046454346813059027073002538823949231329609149774578189061541174706237262463307534434088354875504072155356888261358615948642535525944827420166276053828587559849289082452110647702442807669103680757639908872369584073453666685968128336068079612884695555399119062162069356995832996459924577592260921274523483545034558812599330249040893214055201141074064875136605730750766663899390289417340620764675765165694379854890376809416197779807088305452286702780170249764472768465446013370080687822185257933823224523999563406085558829868914715337012516493433621979586228244450771970823919421769468329200020562786716458778059371681146488196868071195405757070656986463979864617264783613702567563928313589248863602219056204243629687725386518323290702767971880487183115168558770052638483950437545004595441975968467953941492441849973261349176859266720908247107507454311006096511828655770661491983561516178061644180514518863474511305802459730281193315794633287814086577771233289242743020388338563473956045413731740139114265316061567442072392040087073252590701546882886579470502612471186012020535509472466337718014266991250695870910093014038942272110849063936827985478951354869557709758451579478482816662424001423995363903740317224079379772193558283164391159371243432746110909625805942346792901765248253359656007580803306755826500033471174153044051788982570191739033766894876996739540877728275190335965106670782738654639148020967888268258088619874472289937539436607900946039644923384065624925236981898106332088842961746802721120712914978253067697913812260079567027614373591986939394028298757230197149519684471204382999975007386843899074966421321051870499992615635397440680800462057135323718799747493677011494107469797691704341040444671751290956035622636206648589228512083015923945773979806433841453806197743493915194679112685312678441446272274671105213122322336479715299648371298058236138445971840977809377507905918757230260463905732728795980047787255225128380822139986632584594124678384224029315372618233052417075427349726437127165892033680624059759828991714139085351790631193955434030013153615535917503505022714285750568860439870430323121173342283228129809783840524548337829622959425886760351378304553135600505670983172642581799301501731873106450339663702994718583332640224002982425966255574348236513422350021149581465282686597865113379875749718711924271491701538220155065450215649271935736370794654190642867364663297513878302656203905037852958038173507861763488885564906290882009725910090575184018223253525826890322667130456359097217684652332331195738612306475110663363471014159646175041471289986464706002824609330290800891248942609534921719545517876355350654415367350315512887682380822035763839221220193865342974797980291256581905465742568088348244258824053584732620975908891307038403804990516817824518927171197328018997291227009440760584417858144044775366704129469634617677128909357297722585256991010647055914677808968930049581383277217496342529706228933781729957056366982633184404149480249976448059380414721755571011061401831296528873262820921177302877817684005356789005605049916362209095919463623906225368863217952293897550713658034614088247126454962530611049431172678198414138522213474240238259654277653228096040824180023156727157525239597678422362083730808969538703628668327377669947492621699081821233120618719721000683823681645996348895504877556688296117046152697366887232533895537523253032284310721974809882218801610428017600379772318054719798594270757553258298395854768011530734939467037960710814334729967210747153469223655021535970662763939994836814841701545575470161141320570915437553235067548046419651301112219648976670279033761536951565782547639037557552358248659672734592363759142410832443556309982889199879053909604032433641062164121968825706722705908228955662155776355523141727423290771317491526341492637565828293842349492207356683293642729105624333319790554466915193580500344188420381269086952880631705815542570136997865844714131803821106488652125626279656922005863941646163743411530599577326670261057117981616694471608347670686959054209831307624204177381038109242549110667839058165683454207896655976240104570982939475159586476870669113978668250532524114687241166242478712908912095010752013436872895506904895937037417043374445596238102044578287679813834806663383825562052321350672115990453630765870860894036529100671639226358609088869406616521093161944607460936020820868774543304687153454628684380328812668075452564068712753993710563327580234856651987392587584731720445577198117093281846045719270544603467349808454652146529453651204391506685443441122909804998612998611372342260138297858182648279502711191147166340523769496369029881318004148964927788124514291985957514195134224527878921828770982146230251706772295300878803346664344634535895802556988511897650723005780346897106919293031774018516422770986908072071010491044940166272175701359726942423806537834013753648984637143355643373324425226804570005585330441423357684655805897066808619067829934094185472490483847768560842108490020712872534030407743618830982522614345633138014750064404860576860391551444921707876571339393134866293170417521902894478052648659091268593752649068825466189334849477429042855151396210740525015847805067276195771901595996718752579650494836654355852072918975825956708357656428024098691090732683886892767428179854081597199926507971289942939853265149272081862864349240992265435896884269587967103650170523648943892044851862916726909393065345443535993819736742303063277675689318898867043174708404410697970555697094871789823442057974197951186982402977609057717777345243002286398932493047543167597710949496646360365721533179363972772975947326692117750963489435424113795114481200871253701768538652854042859044930868226924963116468002273543235504502372304269104690263566116395177160522745623696790114193112264021317139822238233076511166827606726642017326773035979504235551444268362198579741407427878517620891646960613102784122508721563408551091004850797797120240123226629059798249489419053788464162300074063748595575853103797225224455590829265666833908083180097414623666348328057010809716189274552728008386399239560241960616410084289793315924745790894571033991765720259842296018791872170193769522310974925350308114496805167241049381758761604818182760473874173626436873212132695297531428277986227423064755699086619637335843076924937665444076678186987444521850239696231506094833506455652835506466691042422571223967429164011038395261308994786478637341858265257365729369794560446164672791429158944164210279803070487832124451081638734661881639854216260485304347785502502584247555714721556059365377305094154928134905949024622882900461483026049060643880837556970521345350869028932086175625973362884117158033501165339496206664019350550810818797046952993704920666827637345634183595682817553324331221529644440571308393706729619209697934597220960502835554074974943644309039389220231841014035815581476143366092598974959354716735493662052369774380306104273550064553343571835251155512401251520296143522591672770455114476437862004904931326168284785874435750342222784491657830497345724968477324422685343718463664758531862859679434812714715643079666811649910954656513904285777731160532662918343991757633527052924250961505935325886179213895020252238440753315552386964853839845183404525795366190519902916317988824908458056031804048236136185346514672923813202361355551727578523148008079295909722485554256273836223393488296842573141634628167266113342564930644273237289652471549194017497044209236068571479660986162958573976789201330406400653136119269435464755879709456398476986957058465583264692991629614589322196283952701437739791131196548213564309959584165150519658203920142204014561098733902976501880212670766114149005448477901997605629102820406147148912334511182874091710365762037924421220174001813953631226777129562039583774760648705600339856099947568685396926517733477870779749870509099622443845748676541653254793802912656881059894109104275546634160311067705874787905027071600961408304168311525398272261782505025069093651700339738505193936617887887686290234049475937540672265111808580079606421571111986366139327242769772539612660848876323605680735157792424319254967066245045790852513909378678662282332442612964829356413640173027170401664468461918145185517562602584439324842597330177988047216839891390530393646315952132552263166789033028216690110853766056368139042945393072921423964337181157335065357160249432851220801965433906560154053965155035399212524829111320248811967463274834842151366761901592424981915417796225243061748059335386705778954518388292019279833542399140028380453819277661062217498517743629969592180761965389467721665533370810364800128075597649220523389812350627815729541638084983609352666569044314638782956479328599366426932741773672771297623098963997329495555849767549873512600256156088263262174270821255141200196175569101874508428276924489342710521863765366378071579762110912635127259613743544391000208402945243234528313578885191939698762045167864544049271308794923831291374214333059602133742102905780641651845911881751278092830545624413964766636807319916430835544000367223493436670948709328659695224024163005172133717902113962937118940785590245938056824855543789948916034166438253350328862885586418908838136526966170789807374389614813600226864700596293091364390973540170149162982792518808709533219475145062391243505787829454035537977969389449642987254860558713804258886660378156444218794000074914212956045056186853568136329593658090037688540400121754949931058531877644020323892939881318294590484443100112717231488872676993863239186198592243351045574399275621569760768487467405259477327418783817466814710187246024154734932497701009845998107507628049773799069808976455831127468775565516306676880797023964111912539677830984678331326689933918768184307857154668690654366057082563476710734413995149657885853420059297336904063804691249421894006515673197080049120890224716627103619077609551585749511090094128679774745769844642194985726684708437126710524411225744250679673460728449395419476040382571936724953949117571398935687573620688065515801902489019772320861749476199271658088690831897814958659159715845221483128215079055524924796111114062142969449512237348034053573000417143512265649303171307129424547462722995888470030950480734936023510896597410108504724855878019066909903601590995614989791524994255327617626176493753543356331389898436126599801115624683468348266552675908833993022416871940963140344496021756338789138367656817468013410145785626154268702351844315590766718450319123544435416003434372093385836266876281992608951185713792846265028894834900583498791710082900414240576168919241429830713333472760036372254713270162805277425566186895978862301642004457847544833366668186988884222751939234855983471743422470245457671069785838714571284366575877663787227796537068899340215893903772404274806487547551990685913573685764691943583345414774682999500222628079914856767325166886621517461268960751552574198631267271066604240719864565315522271272617649742228800790743473037319181790736918304190631904462884849433881114264557969095955519989298114800960504954734589460541318932462286857589630697328397387196958027610757080347275625393673335626792412984455398484699649959345689111855129503688059257146729281990891976460929158404158111110576776460399759333203959552903927571493940047921676892629402572997143909685055622582378511073901819279180538413190555377274130064259540438156888441638066239316012825885644796104280696315761088747285858465399167425021720028850824690123183856646631983263361327237732673781098180930028530698486387809835744039819501334002005072132442459122499675996292720139311177108779177996591430481199911723245818883588037164629038568583124185492832103184753063082537896904994469298898531355803871589341338092703544298377060658407099448016969220426768453189975470952756971617281104587662520025323122312325854359490898372181881791951782424866627176016928324236844952511820599403481930192878452057606513706105666473046556137814209661102357405926301413035761636371353371159014099869544311489329661396621544772612263483896469456687106844575152731600834279407122050270001201387393735019192064895805226370215974475788100294005909783570264723980814432445031622433647723926534019310913490016812239871599242022575931909034139508076459374120751520006420720956148184881079817580616938272761355530534215729080754099169607500865899740257053084644497388435144534917383836462409256252867759620952348145831483762278679775355736945901602740396878273451744824984262066939071417625292450224395883567184898561642222599319775491400890346732850994984782915892691229432670039641773397959552407303263295599510551678847484157657705116699071291823777289835993403774744971943792546310990575643536422679578826919897149481345930065634202391967466166277060142754235122912784105804478543670080050061619731574737726686681515528308505858234004232876476478758181577518656878713408974543685331746232853693850667153631561135149235729060693641090779243939994643318929446969164759429512397773677647757650963570119207707992093181976473561293015576704343955612170737005109628648003369635692747680880666212841534058504828643244964935065371598365599356998716949014123447456096746510100490936988654739837022089567717117582959139882780661077594550451291212326210597550169861876153354051387437837574415927800786125461136312790225300450688514663078037652640389373615225302570232238785697303505037832979580753107164668667492809445956961704595300877288701790746234454664348229859811883668947208947757142881334522061045850194205945227081861961264552374123768056406072446296951113920924903300378217746414628201530800155277910965115026201258899288739265640277434665958447614457530238586493995604018624360259572789617821137808486769623502226902016059931736119787003231546008524412565248871371887824092795275963156545418903495835994485638616174661411560522468862161662953399923661795057686525953862414307355944024399905480487685066079637773349822476936629548940180266538084774498618399880338315586159727242822735223571749031400295515855143518912499854815442540326373984607974115491510730665605322310694488501357522673181721641821522123345377677468793505464685585174311389575111386295801619207381668734371740145550277331978332063571219301440461353050240212303055842827698502069745415072800679395224600825724036763995720554463637066126803522978397585001538154856836429138971065662430986275428168089628209752963141158786961499783841943151109673630654939984214269566859670170814743408049487911687306190777109398114826398552686919192530623046030375207917351795819556527841527716265535221399991091746439366505467727941988040880254758645740627045716577937354016480272194632863217021306059674326280231254120257061561615405359590159926152534484356930033374755272253025844689344730388142988478265692427435017954976815892654942623683472322740226459267616778458174061184935869234704221908966482692383853433289320448067414976321584705970699011225409172619849954249389982041383298477387470091538307147675992090335810444757898131086523781760963811030274163019382567478021909615236340195880486637712696022165820144665059860360323211944905900139875962750687982757967843211394369536124741334295309402051782669380574527257236771560419446416037335975226571944725861170150661215993196917520113204933415970937518611393191575646436726678739250346448776706898741197041281459389115290069507319044776538122462008623518827646599792747590141996634850053896155221253283727462059974161190612613804509675869726826472449743312582971141431433821532328124538491779660839640860915378155266487625748099593576658033103919899622777898602894413672538586893749603835851215063018374007658428752406309880981997198059611470019433412415617832984239355948322013022199656299407709966196670618681598628779716558175827247585725574296072815660568451271673267443914925493893924127573528237864262079246105505747925027444314919096067067326313909155829346954904818010505662913312748627494501573984529111087401357671371307907744271295460356283098273567764258492584898755154547170318480490673142227251395375677533656928490570068057856885383813106803003488436144109694316200419007884914679736978020959116304625374395227811024957145022677079335971601707921617493146900242381493868415913371653210361453226174673347046527971848470976187047788230525025270100958926173478252593519154487816989991182204948194702620966573973088743279088583612968576134004358459568980595829645043991885609307655795103262017445667444681043643386561279663256529191472356602905534112824146158664253395774559950969257430103922105553787204875058453016179422250241190917418215171250645434625439734394128068462556452272086470769373192858602617109204360453852362813360803305543194987565802061275770586221252865648591247802407942699800895847647651064161774833495186806713282635912937803221767758476363958291005934265433429704917288619537045218057768909439645415601713245055288640624807898897150289195149775155694173545039128258226867986003224094309503013462942438102297667340998451020489678593397422139133246172706578106895999643875398133654475084380310178687400021016672018827688722904996553229135027018309089110812619572348329920134776940529399574361963717933590349960756986079691224135153298562635826633101096093137487355862635100007544044217892455350561787712284882782576841226372550718678976199449164457630480270617313549480104588289960164327761409272163525605808734411542874564328234608493448309702665753996038003589417900989604004744022769984467152119606778132353600431206601405016464086919824297520412614184854234184517577696779664543863181289974453084776398885368786365831973067921031534414693656994390148192098783558080143025352318650996151420485737182933977112742539267912906026888819684208167276552571274864314115711130080855276434673300989941840150187574271117173332019169032270893076876852844914163986657079800042483388953385782642773334228210171511597330200672319575128296609245271111244636293661248035289110817251164117131923173295586928048273683789965284851906758584818076752404919772393669324363370522384490526758683353256449804099376191673191814738486244819072037605178152364658090230493244763188180611449807643720463981238886434077840398673338068343608545378606716704893670898490653021360632117366364861374805244662899003389185195730510246114952561584707048527191265766058509786134650208617869295891867051127179921568687067976016357415384269147687482720827829011340443823611205611948744907621539822311373011212986019764388839277273765996542733086301715574247048310081989232313978466567960428375486347946483304231334013133843563864292359905727605039916150174640053575390979715758736636387668300769787775192339759752819328577657389823132156036598584992240064838998853955203191509294307409652545064024012171097217752104899613262544217143995893924863139233259404708295477731103634159350652122332040425232434826614869081294228709808740816841258357003625017410601898957845545245097065670089155540917528193631777181607115502616003555592311882342094950223600251062691955113179430301785545758130365419255669015514473470746797288534983452683018406897362737442677973559723959374316381621381605509270771399743013859019684793991351799807809185614198038344263578831363284957452544222383564752333465802624488901085760813792394066174460284472754334962450840167024198082627877697131070823748319612783118957687754510842151449573049718520104402825061825690404164034186237289743491160241886670036808488657464539363972771029059570466299954759431687065784143350424705067130522253387197356299410749710363128085699107864954018917979528803476874787861353099379499962678068703313847548444028005302922423718027558948427518203271806656550357984521362898943561960183441908204291992376025576826733270106374827751651207189160935512891994675778255604546785275695743759003122969345691694616167601662843008208978614738100224037424659945719597937208173331679387968912800064271073617076241368074206796781880553562600967173224827607550107221509496662771682354291751405483047328780045829354156481145400579675556778279263718502485025040552627326042580141124351725398408130680250788390720766249794020504273373841637977757650432238759300534530269042216744105760481459950875873106175791535847136070880507297288631559372974025520453530908481552601941344515051403510686836459311441074347500121769790051082653504453233605763674039900885696484832393744914624691924060855850602826178695872415771707025738245576993245608443410280113118100152187778638735337785977689347599282361282975618330849916186308657466380771482618497149611160082398793218902677479582330592975365463715353013165819627115275153505737646030051668236766872912675966958319453867334129909814936826629105130203070987704621862026646814279562128153067900516665505436850626000624922895794794138724524921851599618686173432714034196296748372307779221056037267468198868430911542938569487727218374703192186613793816960135996501787556043860902843956383480562327174499993768565514939631117356740521129653595157553513108957068185425529014601219271078858666030722907234206726436227317835824732161858913332116129571326998944838239057096754965930044417638687159876847430555173227253717462507302488455400441680673726468523386851866952287280942516426471133409899738999920101486937121832425312387103105820879022185469376990805005725329904520063266829494479125424202641277645102574476168515803140570278151204250553356734479741608235479580505787028082366473535986987157064091604715963355436586385920506306273828842114776355505107063951831710530221833762725413907239404367944776192349540464844206311699275313826052368058366226504008117502684833638305399879269523298438639181634522289487947721710788492248984789979429260946844359361144618894222973526824176062162600831501116362071767575814973319817034471758297172668799748071698383464538275351768124870778360396160346350116111417043819765562707465234267949518248757538077898048974509672352055532132488374075720229560706926255259427788534382933206405558472814014226849125612908755664032499778045974279110713173138949428226769575017548516715728639971680231439475367404180884236647698683009701786515207295991908947820052407470252762342569445248602919458562149936829261598957895823607096488692055788386752496706626374926849132144452077555884727428486991881811916437002294445673445848558145991438908532884816127202053061514969858151476654236484496861495893478185003202604497036060042106773302377814706166200412403840419190787181249435829800395759525490499201580909948850230176860559481896241552719606458638266217428723446182119654591733389987782647170819860235245322819417583512079167198026747130006563848056018765369920093477102661849365059314068792651912380094507220006574032158688536809373917968921679205702250871367018519280866812787808544676823873291344582482945688186060492094656717201776827468855671266508568398402249828858521290963410039941837455054183876446105863997644715263956542656668539194410051595449402719136595768662892737497692818686398875807476123788542219986777228959357172577912038544431977799769688275319566087018144345422792014764702350948965976707400102434039108102677295674358200648167467547234332082105317399873715797073774378718282919993561366200618956989351084400951300728755225890002962177433483963853254642623138522231172693514690364349933881927379978842925076911940034566938870663641944257281053019477245190187505605469502104257668940649158846204888726408579878652510880213878811419080215575266066881357704414101969834949394903604776432525286237593838845781801350074772162567757465132939991017417939553787189196643552277960812079599717486986754002049605691455296927924310495633429780700677275186200028354509150215073145350467784703785323829724667917147459859251840915981009559482601683383440095491304552037555293919279080936060188079955640092585065253660234026970781894288142954095057217886590104055230318982370673269507341715290143791985041417931416900596466275053442761349132038547735894206728342844689491757313287617313069969926292860863527331998618738378018507182639461200462416579978312016754862960885633151862728072733270564104866070392199266128052575414582387889485036838336331384666911463236153557658891861880632795814187953913366901727731170314057220544025373472705257907144159511759360148875261313255872692143084123012724341558260635973958184876484406065000786283883879046823919519161133360473297625123960204108475045179615745937748862006551380627080435704203845837478316841310445461187793072015815394767893249507250394217435109847228031311466705038516941549501882211094682701383596394320592734809615536100634602525012906769792805178034779766353054660346634263385005938729794452197168449707981621996547785640837145574776386260388669234015623233614685762824696382092036169660875867694884586008731114288163479295595851274889484401104486866308414447094227864072817089206959590422979656580381598701309024932189603819793341007258590838337151333204423835907886663710908565437877167493959029403676255554474690385832764668602486608601972942729927535660262618851683514703824273331823458561018219534518502027262474342846951030660228630061329070045232669223894230982944877444314483927032038694311253784722816892022986326852944980713721496305794591629279929926062525617519036644294708311951365203650971303000042388922492210476493570789664179665142489815900661310663325764864591674731467991459756912219218387583869354973330679779578231308321356030780579893090048605498811948735651271503135155491826664351832065175084451843684612800810467447818321807457137454337495471197797008701135411727572653489679520898211292126921691213125540700269878174606517166706658338905423317248884333638893345995476322904003671342747647524128564056753837568556500589002017513182045224967500923136145031678218714683919807769858195158727847657136756118252860679246949145613634927213741520603251731688920084462045530908215092634660474797924222052243765171557007365987390089506032657219388924487753060707100954732823194149929293608501661214081763206294271775298307579307373115168164715393716160974947727638558980752785933285037137209235621551983688381153294808683593629184758727545414140457561282359004905662166742669724476981516933428247889655629401072904961830770949859698873893650388385786655534233250940293821614263587901412303587855220249419277374943402051419688108846895591631368211998213183473728340084926319292888964443516905834873342318121746092560787830683141471773094134374719408936870520770608498561282435898267484311420748489105809254940974945088087491611642618987211939313806515620776028932851164602483639297573220666284413575933921301221422583773191160287513810901761305167521462389376729893754684651446067995717517253961053481383481134331912774371732941808577010865486805085402742469625174792060985458068280066424153415734533932629794359914079200081397424245184133768948261961590470472052374177595867165814080545454944211876819780517616803850034815595908967595274618389486490628275943830464563266151539357130500815873160038800636155870638479733005449746645965133852498185350179814168689856816777926919080757660178004992398637201784084102842594621493454297342772091321625755972350542880291482210966701346109161931476389844838158002044788895666952920240210858554315565778413791228458239776871952289450893036629928661958618628250690395930166042138319638349648529146264500412722076282525106150849136302067623623651592688317189026395745121082371325504750594569078377659793322194327897908884376082278647858530699706584871357264110888098607217870858327897779291440410629911643805365369334320954233549830604171177132015103417767465069928556311696967273082769376650049227754182061587113781533264196103694819288365769486051529664158133679438072049941574289939618070115145008628894182560638788600256814007162404812244324295022437284205330676361285121217845479881747059549414839422430573742982807278897261983217348559068126059034772987514856658860767208921720869619326710453107763549944346246217592077596963226996587024738832865617085399010153432453107063110055842052282831935977240999724623859348754339183328841483502933677769106881342325781645027276267576690759321768892555241503659407389921056234326061686269462764893823606594853485520105221383578714960639864885790074258492752317700890155000875114525632145462140318072040337579279927470646174934208465170841994799152317807618428691217257774122672589681702922224829656691765354318079510475922130671449693709726823151203485626316072447752638015984765707323826005072259156827105172060236247350936306460440761302646477767768626824999915606554483582157915015664494496317018342302547879827524224302348604001661025480903830307372083569682748590042073747723719877260644239081878764530869564541231745109767437413934678454979949499868998303031482878277395763273224673591218072451793631375889492682785566026818141572571916915497950253964123562747571272777333056371546486991076216695659060642204924292954454993073087912378391046012774828247148802784049531211722299196902525829496273128483140157477122958195541930182184918499364024571163311759315335457430523494412674435271725863889490122028771412559587066717672566020226338609357437750091741372602420976746841626033174740523159244327363722656762574527677976548278950239904000626675147802379467641638391424416569433946220942249802106419701574898930491430817511629655880427282102095797145426618997110416995699985690085967902314967183976709204030820200687583233256843692443885719917734052125030282835661650332334852887039188504365345644360363818126180620433438496048505713691629459194768378744151334411649344191655541005320067230775614264870020765219817385863935618072623373061928431039547278784692732017936884574961283439641280483170263049131231254308788868977845147765463354735576860905032511205377500301842099925248406074721474036058539612045712863793226815787175584207350257797994245361020670071949329950462126695222819282345518175778854158032637996166299811205428789011506653389564244209497552182466033802029094646748446661403915129523121637572711950240957296817034052618842617857364080592690840791392609424783618475478097259918123422267674643565177901184771517236702610548621974442533322721095076592015686003959423308079845915202673769409016431107445741675561756900577767153585671886243966296689491060851166456250500411130005159036110740217829916567151261878625294920907401730094267514025541046469607528079626269471934553590027164781047759911039981068576824048090528508372879916213134805635167680619003457410835843517070054363775941422678532715357591548845650508789116562347146218573613346446645155002708403296651675405450305204410930798698782672152182568305765159243104783425542600156711076923048298566961054784330626819098731068371906810927104642411389647334494503467516744959956000366417589184898578664581889487799579208730631678594603729605822124882474596724352085674725618741723710624896324700927172143230041893004527442995628236429263045624629022422976051034054375057109308925104752098565658387149259266896123412982337426920974039932362601303508953525547614139094916331771583994678972440274506105769008921883549428559744417132825603143808888521700348473337608092363326240396537126417068829814857764679311714036032634144745587230411171901620553926427386410103968893539435967572534969391245095483039383015523955078733615450226227149203593420099604270415255958796447912701638466342640118905994527336846624235047089232826489181494962562992308343031969878992214408843235160132387224421177073210541196427604539402709600234258057694592551771269420939591244316579272224869263548509512416801182665834353638710121689290891288961788683760704244735409840949210548185186027021418288325741958339874349285016132393515504281700553432760612771191413841499128034114753933252309611868267930019610682631650678870296771529154590758164356115941751568950130063254678130715968857263295423831472116717714882044627453084346043588963485523956632000190028440746784455526441651026314559245309486169795716250132595665392633353063785548351398048625762978638714631653626451804447270922245031215121665669502899751979835984033583245801581822172772265066105752134113096789617378168716783789395251567893004427106429502396609294691959468188595181941374774392880692287503257611691193564786963366907157047909082592274513460126672047933473363788203852628275746398810010931853200374212838482444514385194020956505937713559360966963643551590017414155033364373479256075971305829354498581643484588674528502216894218206898928397783266919801688089156663939048547838888416474070395540712689855263184418531968747563061997962293638587860553832000585261660468021747484264714622325757790106090840303570254281208163487410087553931519303745958641454917696429079545516535067032994139002430825726781112343615586078416237431175137758593286012911749761662435909262211184038364752538650525184648362903893835835029521783190168542781459165936741680224445173240984082967578744019051457788671875431192260272543694110142050072511388156064335736344837360307973171772510495710455318984491493732391469076785412927062754139423722893820720512816625032421243902718872291457763833959848786856370382861110493556935834608232492929683750893052637012559798197765192740031660800522270991544436981065094619878079308643801326633939578257428641203333506834640570507429578618398495205190272604675867682498954348383519505465914730694316752979037940047272880158129746379847413841289475328177998663336836942157785447920608957058270631555355394867678082208166603539867417530907246664163713147603899695843563539206927874047403622524025954283522154437096005670149271430278104410079021274147473083644494420480280626964002873874184932886964203161023251535639071169398248964204896589636450101308724742948666438648325788738655824397459612089575010925617399102887260079846567756784139434069358419315851990496233670936094756529296895241134336749071174206210864925268354911448076404610670713005049734831619972184345947476749318897281320132823793947488270802792179401767593079495598625650115120556502069180769937790185526793436405087800162104011936799210092271319138703327151582401773499492657449458543236040043388093499434784568681307474966179802585305367430261959572199197105053091626803908003701782882963147275058097033379990038143945644350854990983328787293777314191395853647384563667562900206488533720415422196171676094298880175401184421651742165662547215531833915382698094152918602219730864181577438367001401695891277134527385596008066773978292394108279137236867289272771931053851721425870765768128018769114973952460120822353171464966047527935759935043536757053493824432310450728112059178295594184298748496575672322736411009559917401148423530839353213188659438350044566913910185950871007312795276661316144493428768978936255153920538955808718002698157948074801251722563862877330896454754596896383757709618195850119846952302616726197275187601593909682267664876236263695562517835723390521200629663753397128738442873234355758998498790575577821379503687701834925870901318107719095498561302737590643398817529616724157678826992496108806947583975140743128538880262827608821448361302728847072004979939188327218874520968068674649186635740810502795041413537106992846341714788150326002297899316049268143633086378353457991740406720059646892007368412169108687529995661221989848147291807066650517323697444650031281792756828673480332311604257278893966672411885884741932443901178633111492431336124640703024322700813392796932476404740589171581687151924642209184838149344082599444783832109181731482221947303846518214614053941406060727529697635973359623447264768334533062369037682982529725728697642746939894854444494562616886085038469402307910133679438776296131983596836726161497908541967228868460089322542682207525886599282279201760166521809835539934838918180667398814081708800292528260102489854433117264858186292310165424967956714760951213943150048807764908630579867187679258518868431922268507357824141479549500413396768057074275212395385557757626309019555780664439622413237625715091678277766247022686755757418567185931558784543274444706386054322131808713371774174770351097966725499907445212755849383728200475793735593093373987726030181769966726500450610127425699533888064475175215511105537309794102281888079446378439647384510288422559613627655684647364639403266934702223536598678210732352469415689983745807585245911489000577416949745365083274740814573710694424805877834597202307662076119615940554656999591755144432948870191071089225067938414593472048917955783457809510936912703357099640227477424347549392825938512363024037145113997615164075056570034451498310846025274695701907923791896102822766471980060928974737684647410568669173705628764614305281742498448598499806434510691774092226384284797499312165938906800521914134293176131626525111807648112785436052856438980642118235983238237831900690597072361689152088797838191143745631266222156677635156298965207630595487582965203485230107562516643578340411902522270536399853808631453735406344387901817584300325460297252985740938583244993489393415748934222245028320589846998696013573783568253605837722381211096341592286960930266315280604995800637497841935321050242029772702534716566508326938145862493931045528244540104771330647293681961100133959018362288993495485176699281775553186872222715214134652984663625374630273498900476578603670497530008200577498876018387095730060369282849158511949002437391751700016665697617269566630117346816766035815887494149926732609055050473187859718124626281393748023716788456001585883085549374556791119656742264265874026764123707590619215556212943123740048884852495658045628341420550745545412396137265038181244920245646312639677085371806845063841723035991692856634036498867741535731348317128861429480289849849912120500702120120538696328657929715036467902721083212083425308105275500173679034097934881005660486122158363436159140601903705662986258631973643903936929838841096899138296978063678679556811141728534961103884672972565524079417989032976723075039060564921507213517232060921470779534694602154775587014218409087368262894626304547386360583556971867494978572830747220467344029991306642323444327514078953557874579034856928628601369286796543853450294303641824465337035815329445931145609460547374748000484156025999399909257849763402010192722533912495073771483676429066815059282558494188231148981100170305305380155635539337034353896570593240790263597966399240553241630034288412951198252107898270516437004636188993062791852299597484521925324876291902922092305093328944267024381404877515701183414504839095353420253042430895804728395515208300977080847470433397016747481668807599404596971288862484428072408218391924018402269823655179660809486992003670878038418714285259785040756983767959299313044565897370139696984315651399791487617130106736336317406114568829691524498257999301449975588579989705215073675729742033825312172139485624194199853725032903418525417990326513613428637235088554104964755357166697457455162642902506251483284034816371865595375316717578494205582342940463173349522202927565199160831381603946634076245808862501719718909092025345290498472935216223071277876958496733365791199328427759448988921165099757219509945649741270045591216667541882385365075152700775918469608506337195375022044515762555237815423912331087399572158447424193316212281994897771473105693384449845684766642273830460957814020202317775684423995501759024540499987312511615970329070116241211420202428879980342134328056021905493716837497089879283676704835502895398864954912988490977752754869327706432839950438971310629409834134338780643403848496856679635478584830370603397710875342192996833658127077202744474656095231034150914286193712231658067999260531334023862860849671839524742536110129684348633805463536574396408932670255341822369272456544402308753029469933543449963704263105212483784396047659608293775836051366456116185403017973906421299425819480614592509608275945088784955013291282456585955508135180119220140319374981051171077163845963483086893940062830046466311781820613061996858656521614084996736339211661004433754277753799126169801183764894385722361730669962351629761744719275069054571185817858308606753565681211509659114130850948814141039925881759145434520819933808183739039944397516063638334104346382816233538078830144758451674627013822089105092976698588985275381899038369639952979319714024952929519378984942649221905356693280502864385838306176537643397688698499715920855990249217962271056836094407055848211882387404584027736110663126574764087017995055562848623204462339245769637197525027605865041683183334190859637063465598056979855303773932458378716729012965845856246969800004854518771095787941899200794838291714315337394157637586218645123503327351894252864870615515831736649309986114474332063684418638022463139775957426232534009411288434917341237222996893236390091510314969300591637474406027138627843311360561861455831842185145269145136168946504224069853933218771636654338549519018196806989612146274599959250689652996161794714242958536499049985753205156167367679912091281736630620161444916521021866318431577949414698916442344152175895339759203879344925568558288973361160093148920127584194387244553586868029999800282464186583029026026708975476788064649624457363811425866846269224895476739955733456324853341249619012234054392816655861708013509597270976520445763913466632735077144640018278144847421316789227049880460897597352440088690237135702307024463423930573016478160022458155035124995582300037237376656378925434028028533085428743980953041890830652814900102202466162532373687510470347915955653503020157569705790472182248829182287112323454814687828878601424404819451871042131461779941823370220577655006740153677541798254279409848529800366953102437181889769483091838086115354647555458698202110413818578001311627393297730170916114053650776479213085524995215452187242226880953684783071565796433172138486514785779853222421663639463996550451214386111155662360850265371935238434236439794381321290232747992754998964952522943440737871502807394975382796163957956613547014069158744841109858844251740162293078664904868504816950914814910550116129109051495316613753695783135602811564212280459861160615534639431225658239865591081008093739972363002931855995017389808311275317486301903880245206849803184328053138123035985955651265402496667967164656399948580887154351709085010345291709710785592785595456637701497737608826960429106606560701185032672514519668125506940876768529868505577558243353651652675079689186028347569394819566998616419655608435093085666483764086964205521878511632454152594915199662603404424717503873980242517506776599532842700415383603286346394007397327607059028358559074461883985234289127340920899557287485420290518267721269856102270585719044184145114839497082005005440252100071392198422911681910111251853371475649307167517805634486602590244215425254377831592203161454618462130030339604714298577965969591241000782784052544928241129987820150608800132449099811771793500932205827093819221982354703685687132128809349006578126705232938314236353320277346369626708932248854036661679891493967769213039016371070559408405229915129257386962103763893975000004654564974955334164624340307626652913276905220976300375779973124651736972191677255377945441294862135647343502570399706393035899634017793058672232696856258221139366917922669743235474814013205769567795463646821976410642992951721951165884068658521956943057100969497460602409968244777971860357092272982081593965117112774958154560360831566725733968449867172967673836369278297338257564850318092383355870124765583096137177169497220153304977080182675760917782095793204793024442023222548338772935734734780768818387411212824390897023722498489861908737530809675993817959872090966601386295806454770881261987387807536308568301172407665194523559127311166531374844298583892885218723781655195128576701924619871072749693538907273591032848430614429173932070482941314745260719470865098949520647673489270519157909563881593308973483254737904606931628566274644611442103083406582452899126507993894578585115399615946193082739838545972710354578454565367919132674086148310079476259700200641417100114833560637311875563273473969392453105868954268989418165218514957358700579098242923514793656730700760986559403380727318250418995359646510346374245073164764070172271045436313187702402582554360475554191900775696716698091317746204757204641672003575745464344430320946938441838663097474514448515841752921031635584465989051201438039445685919955176410178113574169626418646927744398994187298150303437115531970359330761214177644814259018085031048733354785861304162209712619633944122128775195720771412030154005971095503687431247031989999719958646652567675743416981050418051100170286652486568608209573150936944295730072034282457352117355603256378233055881691985869429277101965470146827949589053755717979236738517796472474964613077986872164096301130678917555308618183809724759247785243957587815452356267073260322892189761750438233823293884668536720351755671245979831579162419064750874756924161843272876653267979181439704147457173130437409691029638784358727842508062696513135776058195989205981914758845991740556315705090975378125621644143827410645894505051826025970093538610426326719122382212950073643000454845946743601690181702692959337545352124028214675554290132665752717576574288980295294759490128841053373415632512159862153730279141532131689336577870704642972455294317619045976246113762999464501609922747707029052058063105305910346692420061047468757260971550741863434094326489582506773222114665154719445737422053596345250517780091939636932354268863181596308662225191750251683588402665062614143924836533122600111451437733769639409586616114874870666573723729964490264455382520289278240396319413042112769659703609957033885604891085376861541980832513865458574908658075548860800852178293447527320984612404312918588860485119149957005525179024710048499309481929936445559333059759707797453106117705925461822538844514035947503039538607875011308309275038439349102237884524116350809610540111406903863911474422531018218962687165943893943279226219962354007351551512644827526450652151639630907149289305353622011771930172504438223772888593606214168876486541832298069373254148867987971924662267657192891297948869892368696143867891646166937114810654695628723815382487856178026507427164425257829708950274984336911289746781092147332177883769166411047889576024706787852600490986458458971616413427175820985858660126808838797076856721956148677509364272802692812450745236972835735257140203313154305592211826400769801637376066294622148334736861376085937127413849614924303665011328902535638578606815236261624217449576389886176750333433001925133682440056520217262514828162322295902802509317686212316908906071778205905572822326224457211809318828058981695354051228327615887361693041340950657754854669815291713609352024920704118275839174841974666637087517500422569557253135913208417118876785341589064070168133485071639685029315923664819225974146794391219908791730735560276911510531094990343192467234794601825258668339189480301569572952842504523403331000801367266948469996764873798675849587910781552298095996544430824703891014814079824772699544128401977586468026225723736836293933639372062203824588202450322010558940422129188169873413856272933908212982669975636516909356005312280921084320592851328277245230587357868184314715223190423474383861646372293496482546623119604923129270215967306268092022140771109907069604452069268704823029408993790898582251165983540050426949072515168776312933363408487136293376526602196844709906150186944519035795621308401242285423842512288222624244997780655152172879412163509523486407614499741285367086913149062402782769946671245441535699846028728555018921704585961930121257452773241687623665102567287665312774860991773914120029193942916239171964977293031625551975267969373755042134480156860429507914342144055068535926543515620296972744061895880125915592996804958545102806607032557673633046225100286233649431804216038387353444767006468563124678227977845217559255190005660502123410579603631009420025110861196972522383334711400525199662858999294183931347662017767335681721773382768428707379294059193248783438906760072680076529486353146877350329077556640774287713217957416773453266480038717599079881675946616292639411163931805168559915785180609819749446290074538340659565686889741224834448002156211076067968327458965483152887484614270581664006276624898463522070748442332677364034978097959050763089974523685985777643273279288929928332460930416281283587583654352899834079272436479748045036298181947795633419207293121332669130221121485124356576427865362793424159876943800460615315645177647700774558887254825079836580898051732829527842707371087227583647258846693181661102551196623818345947444301120228385308276312537148970519869539842944487365905731891271840952411311001024252651397118614107995821343890677622495278052912653292835387881942075895516168146381949592022130900296120615368898427698708021853779503711012049874560220631400385266444330330191663428884878788116846473665260612506209653943261331896480149982834100932013192033109099063428994341816911959925712231638604490707184422538737514064840234699490628170791877965623156343500502741334127259216844005769609132479834469944790954867445916511129346337278128088786793113467391947946879164815046960333778383043665947464082069428028377871798320498445544539282992041091981399992258545439307313724325878496232046907963009394920480762868744952302123265343989908526978056121492878731894103918785967831835989318362226528812790199430951651051501076011254793526871282532880885989393474128668846666124075680338716048237575651863352104324570289729354495880841784287035093457544757618117656405117772598486519769274029950449117519288439660549067845634569251579598212019174180889300058761316683679391042529782160991799519416750412011139146599488327930774096927334899696750076350688813283285645562650445521646760529226233981332498357193467885508950304179134513910607725159480315504930574715016791331138203180539441214570384105986911085731126821853368001036138718311349195528748903286169185721050064193062377636161637638547258638929094647843502535143036271232806930196996658382604868077422871778584055842871104417390701558906470244401979772134635781484015367597314070997893020488452946951410064027739714288109586238100961045057331032798736552187996920356124631168426252879614714811034360981493416408890431834123056318815673691415289576973044459551322167450394950172351988604553738026378837532662336925192757776568778154408164644795926284090211054715386698266430586430067772825885837691056749582573505380028895298109923066931847402194284747329697899777764258763305297157323245181791804438082850778641482702648983463822833793379217377076273345830288609042769874103673329794837891683753476720114284218688903991986644195313271401309680086259383479802307714128130664542719648732497035112477128570693583833654062853005733138458766959827193507108055644125605980226335386918267240936148627201606432800146344759517015430928141018956219020531270326862598717129648143001761578186688672484725566370112916813825507624514116535215951632209896212284732617605525888589866075216540103764446977079861922742661159919326936236010425134556942215459057558250132416588052701956751087708980463415483840134200454168902208184249989402525664162321948367957041409686221705749732854907145509234663842215314800636445548815393443926609268867785183034693016578392569505458877440721257365825981105818216127207037603287778677945289175173318853884067590672063819838228777107360235144044594408092200517787509176523367095770513486753331991099654298184521435951731651141827224464370249890416916302826648468661964310988829771486705461302953108434793873588575813022459233529598821873669386127379822015852654816733183609569512617341720986440005438442502616647367397246848072298651440938796704728097945384510999554649553807180438940071753636651709981977350979256628707383974399933484808404375101932593022148615019371360218923629182144771198388621617249205798879734735742512452283344123068886451986531513177196306860568419542292525960858911924023398020907321518077473597857657308934369594696974103112643541184030319853764520638306861136526220953745989186757718140756304512642696381913048515858750339778552294314591265861458073563615322464828281232492745723848914397638822227050892033155680246190287680546807771762407639245003009146775872260939630518329704862127582613545708720162649747970559630014810729792629986464173354054591223543379338357930962970411553600821695009275573700629969352446288419840477375225963201931814349133867423005880936359842341111345259683009647616576427412710389968806597149335332592752160930689994528957669489586573059949158855889874940638585067538167657900453503857807644315913116848670398004886893740159430307220886037671685603624092798618494794002523134572054769300226005427202112946610727124547645943115908790549993440693128946569201727895851446828742734498357287696224396458869108420495459556050360654356035237360015682827835108391098963555462648879705129430929602814931628805655999825860778381661152958647537108213401727301443261774540015921756237280957549857432493712041481968727188931079993042268400591389211447740887163131241642201036378912965184154407187716707226028754212266695273519143666355929361443267959113800503690967620099158348398226739942662789023129734508579462888228572631146964332488388262720451852363757202820075482246132757173088000548305012306128160418633678142789135124722199781271953572642671727129287797149822307238288209508068371368937311207495955298763951003010952272877626078774616739003222290218944272991408269522854334158989872249123012779024442944563980385552602168332633850217392334422989257807698410080891103931923473020507897231432647604287648618922658215602230573270810972811861666995801222934752006425489698937893162692091725566827167222999703604004312411891029524975714566782329537221235631494082513324672674366978314779585720426319575116620622702153086916859312739798358297264191728862147765653159826865726829585083305979911239435823740361349865695702961321910788891109705417342337755167688944222184097117324231185380676467362460464545628769787920527407255564049338600919766196945249368580893331504378570253857935847436471428563190013155489293829245969788061000769733530440156237521170647591820352755714346505838343612562383739406350559025086828671285885759286723050781764270983691577159144696810174119941284101618460211247011371317916479577763213963223885714484000772563170762999105840213449514787864972215282980760614493062494811701201647515684685962009124723673377080410288828889819357370816420939272269321636032522086141887243393386093678869723380538152397399624994413906806718963439720068186384088883832046192171645056598856364464372669886130306035483743424927741625548231916268460811969491168315858157073699827319508990898721608726834211229867218468143266535086779590691077049424729137706082362511394310461501851991059473604722593184871211539492119645801526020171762338504972656335307602081070142818166634636869398652159030316179002619082605056068229039553085679787686489883674847083905196187714385450794308738693844431696155827315425157116323376701645942203998808419471297336959857526797562385534445809482374348336907979769619823579097003570885223052603934161661342828949757199135676250163086281004606869699351248559042128758546766108696881897361592479819295971784643432359291532239166502059182438873485760252382482495445459734175525236217649208290572419981847462981557815575800027284943828696778468182944502966306090724102546970591803331937320134011082219797766154524034821727203091538127159755005065922251681434382202738797548710710656319553071078845041795966029790558322675271482690362325709580464308321868665362949921805929353077877322825887431288461450757025062986356115716710034130691950420507969011607580205961360333280245732607936661978897137812181390888545017153357238812099427197556189509960008501048475952293578483612926945869800205812803924990840205750808159361650027439192637734829366227164701989442788708348530558606465721598008400983734357999980870306353767196177510595431779940415028515295311702756829491928911453424923854388514851396532154383832019113871496475366487150679425842456008552793178287676003088623035439144557128430852973987310077604498318589588939396288631396736836319548827066525929486160209021117466017492595436043134934213144032428175752024976898971343084172929981588727443366977653033522001646898999417937258737442430245402903061953515791289749688236463423511882177056227542206654892346480374955759635690318534118546202378772970988830346612430043248458977607784186254448745004880279592630145825876585122072943720104875151943918844245725933074461620922495496039469100738760038328290913727929440951253955463115244625354490275863930267138432745204313112001503829447672824125131020811080044569637582582309557575761379568950553669970072084658789186466129202908628411400904861596938775924774040047596763190068381797775009116538478718022101626720598042334161081493701720951771763947268404189405550777029044970747567779060779677620374352940789822704314442522759552770728729378236609293033446712791535139697309954790386891531153348468590621316448810716963994403765436247189100364638310380687786918644934432506449324433464480779496530280679271322001312874213204373199244619892759398598887083480580659411125181482690668792506166204264441467768393350318794479612349042669877505200164998724214869114762897699697873167090401122597639768123256200635057227892877809777179791908361074396579957583619450869057403493977175825106301794882514774379910946716683370358552249536375438264726592012811655587422652813672849960415372286301770586835757405025782054994516878254172759817584789176952485158135589791765120789416636546883031146750843116386147186060982327918566868257546530432149965646950151674219188339466269155858201358165113515541490867785851230722279041522999416215216585059708068340158876494155219798300548508034536036666336773130334637640245412866146766830717887808385277421431633200844268457197702096558259148268060921297675354517726839417256433448414449678304237297515439752597892077866657325437346860903215442863880527366090295401391506637303600459553581691271423426209502538837934474386126931268981145219039231529697695880923620928137641787850125407322121329763780937945855205068377240208348647925261732688222230241607681792885504207933434757131472717567378137567851720533119450267222339936097672328293399378970709931774508349470018175066021252761431854411749204908762695982929333946837216945748307633390289902137462425498184880292633401296957650401633557140116984859983797777333195139994658480005041148543337744694270617973727681388229136955341557864809755645308679668577102321378859213762419648829551692212398927665055326148927784908757178192190849998277131446774255704284070677122832049828624895120449962746160236038413913081291686741451897081571837706659848725726254174345067292271176308452289947874755980409768976647238588877822021632701397225858060293845552764912746215972914547233371917847870372766483548614935017481001455747271912059206752674217544115934474291318174665057318975394222336131176480229451416070536725816235459730212708711297554615946642326117574099460955037542569808372596769305009407118019878353067657850407249805024962130983227109292086021120153277527126466025039082223063274196104927345556321828080339416411707719295438002106739805239389788199516195924175053423475202977561153266631961100442860660349584792679895328078566504606281185619818993200078878608808843889033276411622861157806272455936488934568682291756055607941419999579220513531706436136572760168166289606473732492953836247578895965924786671020575073402482045408615235758846568032066009305333578228792306609324477458281345794216331679374618999661063407198461794625604394835848198904120333033712201042702653705310559778713382024051092862429844667013298706123702695458537074462746406113043973022111073909078047411432426383463310295823903212012154388130085210133968462211359640457847931636460820148960715460420053111770279897218316507961158135744147370649454305967005082467181778016126291373016803718107066911501263211394847385845215360665723027253909539332682513056789905818139351895031028497094648566688476874380534779656152432119568068582707689373822440997780512438616150212253383063286480339732172560945836848430538531182366970595688468137551436307916707927568234672745679848770896760368466853188564319072614191918282339982510654738040741272348781580287947958265330269207550413620496724355815440704597435218142256968913754168332095576318447128589429554650450736602681418709190439553188984950336422018593001923776177624326146803146542472553578568534211351086414268470903703348899123211307192336165257732297351797512132508469928087168558198903646585566015326015811059371697528515179395112945226630290964348877712646329946149085588044005181210650082584809658384904824741775667341810280951823711662334920042520053912557869537887802342220351495308124812959696327483515898622490710811496741257996808075030739023382036676825264021883029929891812248119888653745445724986513390486860669124866575180229654283565390956590996576264452700381501216523300092865160415222678698162409559927724574669317025763034244769594755182111876474647878149526422704945939059417297242727795889678645682347392834524274713541174297724130723196236254793853775434531256831719476959006053942998994215702742812578823488256863266720627242583361368745013843841370216600420018089114698435235671120201567703922627294890128603335680720855965110128512864433314772699904144878407356168502453460632254266225394183156672315454341710400724658526113525836805725244204939923338691140741075022521201833345565897045144967968509959325000470786909733560128025607188900221170223912354702263764577461892415471526682782121958297444336291092983322535632552426121028037730606571660177692234729054953822253186824964545841775430386922271690232928132997374002525444492285975125296663550322435147159656784595918435672829899123509633728048579597354643884345985089392706709683960573093505266579135103704098425190394025545285848590141046100135809663734780043264102592057286028245802475607910121088206706768388115150417579539777066687999976192210103942897194325139800413100741283238109481053710758985771769550280606689665386450330948659610220747920160203425714236962173550219269680478611482982405801181594843914235944361706135815452929093839947074368871645812396259966628078517730384264279150086549789078657392324667880163657266558182567654765007105136900501020943844229858377883157165820817676645386243476228993923320651878429221200489585208944612352676356852087043848491564419144168638444903433382442300516097627539691945350130544973152092518194381729337176397643465646039202866622701664850488511079024432858094829195720455864895783235873915070561378334471758569892062966743895000734578030834281073385650284094088438928801988752560300288446185361753145837121006291496695351936840136920642020040089547024912231921059557792634477823557188677826015886292690274159047555583396046884399169462384918788776629850039533562163930952685217118292695680791772813818920298275828554910441958090610717886220585999934360855724252882040930079491001278841627528852186609910910376291843677374139025496539406596940623805061439702324751255648966505716653527496392190416111762806208609390954074794762773310066358372428086531417943215109703132724506616275571752614937268879825957549346247119819515629766774808661622144114638562213057815834962867598227336205632516812906372783849213942998501350967714794712417289438669482294790015442408519843258070695409412777656679323300691881960227772731109148109488973869628118950124381850090335325870821824207291893411513141205256264314162462325587318988253378365662302107203271724942477906949926976086673583231907305348301713665381899747185787768168599400896348467318667951148506065984929982995108753668290460994644684844613272974630234221502620669926828439593323390371844156380568182533950248957435021297535506232083262543421057097290598668530288200433168986363002269816810260287009876068932336241654245467679166965449747492930030462004262130173683498330321584248346153134578308964328293745273815366121535230823052849115804887002297861146771323446994669370560117202131080902268676601375207961522449795162296724588651339479168014738456423135298375946733372259275416632993801482025149626662255802269739161522467238984508775692974113957526001315408833838860975388729207355645508841511248463273820537493624423970965954050294934378339129795312926151363970687500214030165763434189189595063222107220085065370065914271798675670134209411021572122415201844993939869826012777133717592298675511170366938589914249556746247729435521692641527235455640623868163384095152796158698212750524407754679027811696773330802155356479453564889119435804332822788583641340993968605695821653681219105651899430592358563579899488030557247814744709959267922616128138973089809972895625519129167147586583325515539963823365842180988453733066525141116172120045490797417502520428260453380123561808572484567210246887637161087122844272663325655154388407181379884727847134507849109606718544391041034163282160960497372821979868515414278701914338306074862223716751859493397292625615867877103168856445696100887483995206734363896101663268351175767984362041108995476835324637169675521464731605166077337209938222402992505719940412054050111200389525647785901225380450261760406808450999101723223738075486912434422166422163369995866559875942185687675964506646566069773765234675735766668628363363994021883154552001739830420760500591522181747407674301085033611779332967125968703237128673173989503014409697615867120265609095875379393137552636141736817224512116191334025989178302753751170076775975447514459728639437147017196593210978728847967727828239786157793575969389098662540418067626202640347305875177109800861331316668040798057091441181580739538447065257750213125506557706081059776551554779697852667568851531254451861839158161447799965659143999169809940164411711068103454979862877871715772671653328671959883964489792244747220958829971086508153535333698192533945878371365233249225030801052406845659873231836253888985321504833608060978681861863035568144236928335618991655345270891903624551763419647967708705636015209373039673572383344653965797183306245467512261899240261906846428508056583410432233331913187211350172114151203462182401913986804475527123884523179380242386785313507533835013186838733988896533655444442719742277078850576958248601424184652997170405643529593863741351016045869473485092031707725435892996713035761268068215795054985332063660374956681743554512493298573974714398585663888548587728747768669820021280844600642897450826194304321457534679859734289942427211593467639025236553841582424404862037728024995211303581387995907347320529460136784378871616255466438090105650509515306232990555407113798151463843726755710207253542301264734249602571906757309713980533569119088301628240393170288109008803461364057407700452505963302345773316484945436045024399733708969230959748025291663213374263018201430384754670268088225181785465582986207331898464883025341607022423894396914151502908749095076822518905782787176510565863345853402907796088415041484984055341489088973792766533147702024281211282507852392662160225155873223526861222415418491890213849114965583648829124855872260819182067671879124594646672328496162804737735379210116105176136443905347373391928537936605432372687264672256575189981414887572702387906466620100637863345802738964857458691576792628343054290824247240430054703106977324275807590695086658829989905109841499599199655976850666377999188153632091787910664684267157835793874712082354130277236901906893597735826761882981686826536836219789337915503350348031696137121322009553722656958669039281330939584983201161171336052055387614789437621665216267729336422307604895843803160370393474780896647298592689856141475302864961574900782208294129354957368850398740628322461776329655492293197725033204421456353733557860590485928491026778802476949271653947192830923027623501556736528499469652784308813840838063752173946060783128966386860544724582334647020480159423321165081292365139182698905130450021838967978865586838354317332659404033409633767525526961285368416072177107499400174548487063407668671335329140375152789532533725402831321420186189648947913879365840823400629869356285472387569037428062379701032118174529439311089192718620057569984906504721404793150284362670303999145325518647422152501189843382104633950580617061595475769383882670902759563152203570628401584483591674171819795872663101496320433591082542060826613838376049740545567708118438938716029250920212322093319680263724478631954848404700500819269786061733638024577791446836516068911714051744742897494104492762963532230743628136450206799342212085215313711295946894681463426073389346850556661383199764940164215575056190630111380812677583359166114979635448037693748224755451110495611723241877903548124053181058288531769941434346830315890656185668621585379080506806572023477794431796205571365475136412699717316888177334023863412407218543139044574986129899295167393354679862054420777192275760044072739676882839542261236842881138638280488101863285029992155351228906878468279327924199237303529861986379290468303218192037752405305980673035850082551900322117760932186779942311803424701607924883360065660130457554639968735007321050380275510540458171188274613613941483283469574190330198984142271422036182780880142182228910364136181906783333474072419003959975905015584596845201110674465744731501537931551759913120258800464807610261268899741014741387310845834405326676962403599357688099756857048016053934603029914024491533937733274213056929970690491173972190129989296561670994058333250451605118431372890919943900998212040002449760220874892287784207093594837109280843399257337845025876642251209775316754357456556653909346758213890857017183739064079830847286223052326263884457954275855598362202561550711304847658699111560656788422074395365140144073823718583704259008843961884249419650218970404406389465422350716856159328137008127930564498050095827869244556421072657180888063925280390299615078811547286200597241930102036509622239805912261412361096989461042592509586790358472421651086790248826033365640646885780787694315378621200983721363742748960963072873644699645236067619574319174862742376738510203350143260614114380434660479751838832754071598575050384940146624395248289630780455069055560167399381974559041550651696966699805508565548421697199495188677817095767675481444475347038484340546968709721064699435837782199909372696615387019204280231232936747256545409274839694691703084131400216641804140216131581790078459107569556526351570013439041403332940216388294420867889343622694023801072730094468927402367685174681135990436611073575742929367292149767037455640264416285228945109747491334200055575755584642661420339425930226630973661889928369039761839398149786132701083806203100835904045149662564136871527466027785192995934143900845022689907217513550353302721795179963658424563300047899320932694452817828681146333639023736025836225749844868156594032649657702652992270882175569595003386288394465953658110502101818882697329821254076057444942512062631188436176881414568198828663145139444348650460617734959842755347551737485749389856206856399350644009975277743985565057276232152134354921473292724734338841723912902466618053345252740765819588433775844037610197664695415076863123038526819749495082659965951345014159265265059348654903676373528026188027603126200321669191770570839860749382472873652651366086784056046478198374889740189208288959784255351389648781720154270602132052234444411251741245596793586776329545073791949070122970460788671422588052576353944741617810933270361809627236956112814247332051044684225828282800845499032373751934587516418761398763942071156720008833960932804594941698699666003142710194625075913759249368580529565606353252781970212065075508323416526851515621856450160084160678693140135594125303434974746788270827192127319764696842935526082159213395202868998050576056435643408319523521580269494672708483846191249837489399322739047399103885779940425456680827115439854174221748278499897489626070437433870863734843425607377348408771449715132197127686098048172176247936571967551914382236648091212560497445389584496221614272204053929372680434272520906682660634485050171518597091129817165127321727389452582535500677032640185792608605949813767454916033596056801121839640495300126544619508948177655370901039002281722417951015991381253633212405580309112451842369844078152324964211995097270206530906035833908605957217050196239437184658175314708688044355825271768706906506142351391696247133165080283850514841003902726220525250454599655561614384010003996521887143131873017064106730286903740604243661638774891027458426794526998077429038101372633073331756061060145426455530304516430908742057621467079271978069787978797600253492770507446511100063877075437968161330089073331384524699060233608684263730002725070936421976104403852209425012706005277843794341407894589360145195331973457420202788387014417214541340553990036747135137556676052535241860515911667526869895325094755473290289829079027458656201294367165197515804890186532215508812492237155485617745684335177788688952288591583545256972410676970028346196522400696651933467162451608968719722894080511199934949872639027435696443766101535869680027487363329915900842616304420052577658710889754372057948108388583395211117645740709350601214061592827890769317727704118253557012937282383728838656005537053227865528448772071571926366817888808037530601179470143219420856847795527461167147268986567888244253036896030797278245357828069740929168986565070010450268589418286077337002394911532993475900760638300150483848831550501725702545716867476445961273776278610863257802409025707811520982205730942923174898362990699606636578089189493114026945965003722374716814145844656992242499254331011086004104951612491985212562404558807954814855471312310608059472883261479765683817306072557526770234783459577117981611375865594697319365266212090236876808789434868068213445045405914400309020326026995444612968240143539713083126664411834558941766591709992285957811388966662797835312889809201045773427603226792034751664782065129871819731556403195364299179221457726779994329207776921433618570948432015892319843109519740633215361350669086341217400222595345872096898803082679860608599884870641129717087356730445367516766597003020672681930278374125349123526739850086574942169163614272649557727493430080622415107830362878122178860276362258762406096563285022607031967957628988058595499904226126800205415636258144232958526365615897337727411516513046556592390942998146654057785960428159642148683321951712312263409335124831428782561293304759589152780229625098226661773548612477612497973947784629063012950766510659427902057420918173585979558746538048080011528497572244746224941166065372583820523742164387828114615135384042349089315492212039514392419889954164264419170163519140811517847020392051961373686305079125435993913826698386660418879408568968535301254125673841334741189019828499977152829156722398720089268477584685979621438958653750628084417193039880599531788400866568002013203417969124399217809731295051495510219225381652383583094863592365246290797106897638752169578792282183623926816447490550464087650026437277099706682643187304188549865270796781043521856603591654001426715460139086325878653423251811975611490883089140210310615260228286775857801624911755201970977542385880551916484621909947247426517573807187259611290949703192903405911633089492075245586796625698998535786221611374595216367339174072268526073735057614911761131220982002212519651565755284997931244585207485669041799443395643481081233908684069559653291502369050500028395271759882934545249948154624831776817018212172207618156444353958188248672928003547011310051660939377879510186404075371660358860960938417090578971431626891859306216423779957454840763656434948655259694898022354528496316820571144788872861230970477232689455923501785711759284829688472088784368023331804830206494149531194071279592011777177750702852157912671190482345002131405926800680000289716623718425124855384887908841359019168306777335341725237340472104255829630345111007370842928598983034178358022152443188872386172151895228090547989023994769324089161310448858916715931146823030103348733798146806337710992005153404376799653919513393876174967429862956071838187426254207337266674710845369185794721556962257114222602356181663868663124073048603636706758014440558857316061746610616494626857126489062997005551542245740726797692486799085752725029540361896125100056074063603687453312828713511930201294962277089348798607039098912201612742448647614874429070033665898066644172279958889132466147124612394736458187317217907270020772515440647368433546330913980558200874689534017963681364278292454488914370856560331059484937345652597489590490773363790756461310609552059082524926061129645431131508544437853277812934203210935042957697629966520818402939218771074501326031616307371865333133457759697867702209381584714734949947830449698940534143448870557601733004947618000003240867728946506296438168134325873321997922539262027397990301603171302873772340988186322365867955104864769160297696510051831579543537928727936438696848036913994278005892839394100728174151590888196964096544395656656653075167673503497782315924335658720077241291478156574653056390493370597245526188155689285047111259707109806432946065815250890232728586953506591942296289343559603046849226204568867258037263616154857190453573005338067691320281810408005731900798128651350046266933237769252617013350792441567046952490510209271191451060012039179312047302877256875275121659401256194916417078682094549192512262759229017363979071802715750860273486734858244589243744860170464431506989546368749337625536762638238657418409358702538203136481517698003699763624341198364772904771980233376568155364907080103577795198549453301348137987830210516397610159142063219028858748189320243354736398789987032471077004172095143611562580747542105995156077947345761700908940662112493314591479947348315808191420556065116650696746176867517258017191752366749205176760072346425261464881519995597068435000030692125709120061855322898667514746461198860383670578226875119864467270751087619721061063304198979993314251827917648106368837014258798078066894493479745549241517716282034729807510194424587809019898279017326419209665730200957571659143489468431615249743582771626238290053039182320978668715634882836909657342343785245930039734614940363582299614234277427341726114778471404586308212477888399799618827268057177071752500706099603864427012478978595722877194390848336675866383773961892157936107358142718266481038786218051670750858429805125957927390265632071948371418279370915586660881642132440569050204269279007862653816529845869751059678433175900923356674289472401920342923946327047460000378004554697279228624298483973083324277711316880252564518356894637504419101989292426769049585272151083611808314041653482584205392336546209709570088938979113445819842697597683533929290652545515597573089223150278056972922739884807768982817121412742741220393289872584694884011208292279659079190874456549720723617567029771894370486724729302901097707767634994398246773288901264045909969393309365757370498558335736040647944108512392977444047747187041640569446140285050246005355340489311991484369609308007456972354235226586700927253149432628627221086531872381028424971815266953847376573924404455129306556614746509842163609801299085935015186680461305768315730926635799778531387763754865341206384490892714068428185332417136117418296519863783235031073450004055482812666164316193178406346401560937681299930500548834943621741929867647072352910523817895450748457315310548476940747461119659045072112124052794659657129164948040519037020737918760544740030525153376510119402431105363458695938551934375748978165504297989925690754393655246473559626419886255495773078498277303349981062330286377133241459553656164084422369079626375895872790893001606943652895201171605312420166463474482530449996910339811204613463531738198956352745884509584659736441470453332509008738908157231932411859579066247731109738311352526748131251172003693001020759374506325881225190618802461143483029595363037134430364670138839427884511582586432534156514329102387423081382589032083048062067691896474265650595487595384695078983956499025057695163555509816567738514499305439691074486674827391231096018648013828113845425789430311263209036671818441676845820851233754745010826003740223252372156647716238608720195847207210504481782978218007837151732268161841870835855749421314302862635892259773637552564075223343733412818818574351988560632582179303827871362552040149181976323124148925908279830636061306173923290576394493124557373643231394051397559659396770807946717240451479358490232360533459395572439584299109414927681596317719280430841382081731331595386265763856265109518839344441113715659300131053592707676189147997266247613824645913859180735669261075851569447645902481831399364994616010247103270304826279223256231550626355052195167486724615022982875884798462863521041838574015266117957359366059075088126897671415677907518352189939428584254613688738395880997590876452300889985797530592024059724866386316054324986351083813582378791910076837996645717252718692049970393770382719880652102601713127277954729461013720184105584489098808127456094765832984876837169298060449253272825611268737605247042333106839264852361239679793137077988718265175106290226394174919088425879883713491770055585174566007404676426551221824546204308544666799884666920772020280787461266216184648493864333842891295707380290807189824106869769687675815704349607076459927113290179975669804889394947671022056881124725366845083971563390494218076930789613448911756325773744921495363507091045186403829197122030821458338405555309357905636372555836159504951082795238135762909252469272011106972786618012176533128428764753340867336069025755386901155073058784621154753477147465842945287292935238680386316904884226590933815350352506022607685652567029166451987176602641375024564121934714997990469955450160009982641257452189204137061001130224294259517901351234300696416768218798097736964645340303788912944903086219001437995451088841579502932647394973942968956327840809457941994708183958295908421303563585558422066064020595596023769836398352600060097448514054464897745754474523069690482705476175796225928819683970672835013459403515039663118433862319546662400433383636988995394385330048885240488287807143283974238061109130574873073916134357239921661899969941232111200412601364955862125295286771116729670196376981791523079120385269647238217705008689940921971840530187652808174578666347266571110778809665882789527601358987580319920020266061819277246108809300089745259954066807466784095953246252449609761959546901664328741826474995620768713325657202851521597181038096358891106618929118519624344589381585848747652086387165917640189700564084592678202619020195368596300183902728806361005338048163510322542665999784453341646155463710338258016045123359404541685436755637428989255896818169475897587239699639297652685172315915255230871436153192764870301025254393106980797318803074672512782185612097871240845958934539768516150431953620731356494903329282070433600985440059142239112257362101023770175022206148198098298708393400482668231734323508291607002981330240733067491058341684389931340577271868113396755874150764240003178582503951550310416120562385294699697366964548302695769613398372606654209577181262217632704877964953872655284933142976534974458965047559928268088053406034425224594980512206988378918110057161591813922637549017995703093682087679007846054607018639821214994118883533329443448426800333873835838759622605259670429044128604702605870421388790581425719874485117166120888208555190992307721361413200052209201095751006508141214721558161112858317673434962640647682432742526313688566249442390514079845261361618930177990086306668630198024177494321880761855273111569170101433747500459584971451096534703520350509003242834512200471537723909771289158985183323818245033101902756599075653716554194342763103725359932291421240069249372420454186804066476946050692499967521296457713124330027572554344860242450755016632949015930328550727497775850764938257913823527706360442182564727028290219599647419252216959354246154592522403714316424359854361684326156201297182008046252431627472873827084342550983536166193261058353009261081574987288782499042753351136767599319239215992755560410331881028372348190572377790564275158443424435575314027786342632550606599670298934970166140296306601777844602100460748334811112459902183952123605732029084314207028448034583926797142994239915536431724080434999043518085028875600127706889410079748401828262546600016308375217586817839152185540952265298239969612255139753642208166906478993688972026761952411309301610798067291173354718799129037663113624542937512768626946319866268841512977609753023137401807007465451727599606222934867945370934495515577026100044680730235034134342082946909807106560782771244452642121754274752236932333406995566958955838541564917283322046665012421427681436741867241821503613642323007087740405936866661279325304739878345025123728823084264944252444024774203808177267901714227818791026676414844097695644770263830043205724454781933747177537479017898541293363054953251295378933618596590690254907347757640571262229172726608983368735581358338096070739557086649846847174348555979575350361026144032170574705134982515767783242397588193120658744941799503282317105390621882557013414653159574669315630025889004312934111572669538017156353733259956400162688013680490736096791928100597120466653757670135199537453153257829576854257671541822201927836609299928807098980065748289884954783200624813395847060663233160212208900872144644294202476325079642989752490068925885318998311096966058962230601252227185759468673409441821403417340297751273796630282721998531945757795718046251793096151628876993565090923494080143495364902748946846041609709847106528098952825381541036459578735708358022110534545452230619783061992194577016918083041088118799111180683522535485177693747788756753470065153276116554161684149748559036865163919644440584848675543117896088846808090228787865426308640050198393718862722348026238784834154572217210615393333856941361653034434296476847528358361174400166885437807067205496470023961078411882720298378156724101581882736279781217828558196142482620918297613888896671293723041565818260232504263687721658021503283575605019207089811414201117142953661501374811091584065941441639973066046222724947897087802224195750808001124756512889092178625686536018010698811504771846970647137891384521725350593527311975570377735835189957380171451052327909862614908266633087727208918708594038403299632209786237752022222201490727849400756495278069713851308908069247207198433463465317536933775054389496804198372704784638550233604915556228949556076812144800236314309833065752590299633618076009054749573522883430628453389744853086156541876635650881727181146511134967352771431220844074836535695176850459438118237122153010758744266920904981747925313209081740802562349012830837630831356189917672470402715800975337359206609378001133717729507164168719819366126523415922201983768915417657454443839859406152505601700661610260880773555324993470203815333324260357651719150569112582219336485529857471875776781737849163362579960949242970975882273024234833313288583661821263561467183703042738459837908124978442781280487311619923273491655707692806709239887390644941320317391133067415805728523820609208587395866907347765290054627799022088054894157571086739514891911705182913365688795959276319431812836924536954020918201092595587371657959518046655300689166590334389393435520588601553792148469800365786693788543835965037437687248476960487449805193265022355891924541281610899655917489438938320190120594202019682940036618054855556544440932674491683787899057604650096415870127417901364362593630366166381837364229932179910921945254233235129294928194302406432257689167099189078424428663603156877175249691117426915295367528868380851847147670983848778390830573833906930108672506242245639724736302695076912469817996584610767334394057840179426974540110915800059899551316160705270749315169895075985627540339582879140015203751976451878792728460795089710883374392899031523222005106873944654414946142008936503706784516884358660548559935489586984870071188225266809249751152241505669489329638685438434392748856458934231084447851565524092327019373705731263444132071527844436330814717067209177103786377252074428952747508920365959133373548972294288357764140582212227326815766590164890122596630102066235165593899202866984893947924630016358265521781997492018635632652109755494188099781383345580449263863818273623404756735432301195515638362140902222409587159750755412472549000619322883181757646766294659740239389447756414281361026621025191939577647614473289314634662250461929765565772870447934327735167618292090520386539718503487034654641682173057286033391654780922523875261299034602842093459870491568015778194975516967732192702239488407863089029882172292046113341828179059195245152989512775554770325483972553559803921313841440021114241758561258848317121001802890276789267434396765737251839438369970032868868915746206015509678195143579215291710185351029755870222978517807549872710862884398492864738711892446435032221289496590478877556382521376909335963172539689973700750694422340224610648803147245180032070986846145354007582253409124583363472839162206651459216438915410291009839734740424412588200770742490504885082203788592812777264273247382596572637964468158016764014496151083052617384736572904312643086687888749330164470363087199288742704947012947744364116543907325158390190969857779796293905345958955317542596885217373326979554079451396758880182648797193213297632301571105747692745582956795589953427014774265329508909608023333970198012411442474645663984477791111831278796873651978561049340355244770671789586928747652532491757016851583160579870535137578420754556020332193185653974004798636433483000221624172662403413701328312225784960082352415893698528298115749914715309561427239124289066118322870922649634928290624403451913946804252282312266493652962207249614639381293393527069957840524473960585313621361186549558746511571126279460137613303210505391630942214639801508010199474603771577427606582431542593494821487245189882371421927592070331771595593225171368298595953751363409014342356117141191336391577157778182133803598703758686271066265349832024240406216507235716658270966280672100939487669805443794631016515388602006100587999372205350515110747347141168874853001059068299729711214275752205533033893931449671023698852633434751668609531678043626320988710089082480565623580713330035582849671221646106573783605824935712496918818137085223381418837517184504439367538721745096093528833379517381386633819029028898732971241723832489449507664203436390570948866726991437472409559680527848111455965229917886638375684133523149023237962668795550496633335073047412456861002350860161832867312587949108927633280571824687024385140164773515799061999070718597479752770709832393974378451738372873939640423741480372922998042446551897637369978655268342661618529623047074183363846636343841017104907740312699880474124161427580584624798951996581146453902673069993982211585621622370490688386409880515076202718747011866641952619249801598707487475953851788251639314854703438864638666069287077345461205182748715969864841449215226711917992849868949568578777193898456395607039003051832604985323232551336881465226733554555730863537405192814585503064555789739479035139476689163754875298467649981145929659369062470139820951614890064170044629284627165549523851964709290358788557763464332338002656235413456667562293012170221762024760994103266712159580633431371762318448259375814319733658438025765148230262535673583512911209544261704187129324056396629205608772735874843906998110227663965937617932580151220163329930228098542799231974254538205023467435632441907465240123425711583326672963313181359138234509783806592474819267379049921313820618847697675207581369183030505306438341935945139969077122194639561018286348801163445195763330488528797833963253086901454587578023777620716086607273407913962444508302226676597774466284007776301385338743068478231757532618785672484579664598171601433969388242861307553137714830040701339277966070393972187333284944904326169895178137262061514673685434482510763480207209605040772268478765214270323782611935132253694132885805150799134275647993543906079567334550549015640379897239056683475155555962105532846078518682530277280799406193898205966185114510316472939340586971639638389619325123501351683644115776109898941792668600073426719365144981379083316392023425627953560944389615942272620563009122954954593999633697359766493832808422236015090286832099212199746232802803907172120477262154064213186928064658290885122155847295782875774233461869040344014483724942756544743509170427167200771571063554549723710659800797101198335136074823581496654695111611575237564769547764580831165535788178570448962664896003059238970378040985060190964714154740988344887656620783160072217425666329155967716654319921403760083726469424525220402004628495655780486754181798019747254695300479436376724482486910012076041839587728951731864169920825019868177940471081265711352255767221263850666233163830290684194295887556401870886455700739131304175466326025672074659411729654017934522005789783656700823378417330069711728579875944175065539143690246583340319397561271182726276914367839399236461297177617022728628453697702689934564184751697480042216843765461287424109327883290053331874796112520581064563194013876903061200924695741915856675920213769669202365720450905655136184725658819378655066739689077064425057192267076550040543131065180470377720853767875746320408141575154724314559660332767279096700753071893771485482826385061638833685910525984983645659647017002533199599084635109826244082662998904678142105434322822725413607538260290262691497597620689539846278277199615038738442789440815860274482680620184177677923781832864553389389171577687793137926033382847859741479972988210751227565410156561927057847514938570022436564210736785279258091200804230758590784305063551745899312588035733155445504413547872061945192796475521010781874777051228558044051688998086865290277491049720929639824899417635555240548092298736792118041796649392490473443237208662090204697346172276041515827904925425037247854344767060581695181600536033544989050114296112291756305901390437180243977078543844322932200628506609239801093389355550978822624105877056170056753984995316271863002313897891707190431532261740272466702810961131759837072460100175481044185687573217138699836400007493204490338785181177423033278726799528492841471918196700443946455472076613113031367654287557173055718439184096946891491079022208400616724846196035631808976538610241503617484365703383071366367906116757439670244459476037249996541665374397574194949831406964264585002943308738126138312338220923754502674142570929288138237458329699435835582902287509160897822662781789436400940219107816451794254813658049146868786890416127846633739617873868999660434188148990011702609422711135112722939686447360933945754983352693298085683211073262232993160735675621184416086873958269403608918954480114831198339742499143405322438617036030920061566272741107739380292527159292919485926136193190428860031802501200104006498558945312694361939522008745446252514595204836744457985770436337583311894697938391870379077772750891130950447892373073633615650572769230072036975750330654862649946760244845759760668730391085341567640979377417930896355024349141815779894251704829903494288343618866138148926493809081706635813683410787894654310298219008071125484848606640975570136741172520167059984415256558292087077687998313460767333691712724004254025897873752965687093315883220206791317218581152570354704859322291564354828071075514540386206290949199600386657459819987460753416372479977003133374366838446981494206512799780495239907276271194885653755980681452926023958708859864745035728958327156947433947119735206811868645238235939356033509481132387275312293646932269977147482491368207005607729355786832102475600404245131296065570781108838799760331694948700141308643505093928619635802898657058606574621519032155547624517843355628076984379487614683819957491142546589018615180757727218282269839657878537737751282736629050242494480673732229680166784667404864752820675885830779790127641517241105599966221478526305695437046444204980446875240927383031362763326661835887281494810264191312429395433583330166043269724277658232895662734610328713620451427390747192508444880041064190201055560074820015169696761715915922494648743036199078666864338159441317290005421146570505048955646405120188586314087670794043793740506273408413453844726963337711797264528843078714387642276978634489338064544163480419681689153703146290031055002534735416837748311041088036893958257570308727119607316289859528041728358602942920189134826719273727208509551837251811884197900380332025238327309832199926412575612681806518463070222605773688678017359316432750974916017344983030430745903263405229736592504061018330291845271184013043491637064254835470857997381267116871945497103325660011026596869255677088517348047161515746877013584620624322243201969331250432735781593210785053180023038945840180020206675208027188926539148323833597912200533354377592909520467460974275789089981545636530398659240905808061236041253790464533674954829264396259700611215953527769716709624671281558417510078602824527827581487753357830083400238532504267374821420217291888417154279940876057675623416253109871325223886740758698513011006942547846763724284179518265682299080873797587410540067161964289332440194221047179690601513217896437206904205342354818841377309097862627839267149674811933273133400415658400020455936817233673130985607943180992712566488773140749343629594611778244083343050531840177545158113979430583579485233195497049259859834677955161574310498461613208135647144476143073851935744868536182435181092387439644555760112142620396310825737963735036606202729627613388461207920465161669369830530568762785134233174385796219582713308868745326636141589737818562856008621505681859554976105421092775921536277195350457340451126824595954584951634055225063664862964187637074801315335656211659821864551043981574863251126944891024353349663051580734555319026148053591024726150091883996954130205122603299304696167204524484490017181699997401463709242208610074570079986885764980913284249269368005198895256888587998492229468605425368044103261704618069790821897248920613511385520678955487080264600574932542076557720888465816927066272658497402209328136329746905197220022431370514676481003122967995215542151080312463515753102009255215883703365909794262684311261076470633468921363208603030277799032582114072362489901465817291410826225578891218688376044017756003638532178352004676781738335432167809290610443031824451693442290327437969959689926526073373986243712647003333040594799017879441625527397147124977962877056110322041308385482664129017494179115229251320946056917308077777262518244350885595553434515204818585755956923516078847292808745003140418368857933852396167739856843698266037894634654121537772975869026952893196112931427441649069843499500863761381208534431985637586515564141619464283902396356239870342050602951405176465277000395276570119516684549817821859896392814526272295181595739178151402696097133207757688498445219108896227594328426880919620546889963983285753774074331342120541741003488074907792481698328501613597205565632742166168530750639174653057338998175472148766444908710575021672610417266006880846618095530398482777735882332942656225681099927382034756530901783222431681183801723017770741607190443857908203595827157024662891309092924296573428315324620952665191014922638278442749245341344772776397227617337262133552409815068364543823740333477792069848583279133726412061761288326777462993556706398624417271194866914564641732928204041420028370161476613262621223545411140956381576778657608182622045211004909650124510050744369562580376147463755422243437597982802683692563029860460190185736754232259896638723787199461704786030169814400673573657270809225273349483799900771893654021480884465899543956796302624914707689911543132280243743064451446641407899192873684391280627457718395228595560202916497065596000281264010236149836103492344067970800725993894200627370789344346851008013079855693816156456972539512508254896363325648103624896340800965757535918804338876433113831985547072657046557380556679234889786840638184004862632735504293089852813736710968633180320178737576137606911414079504570930847938513701852869703334510977809202493762747249571046673742430789567208082139635443197274804531442211850015231725309777815962669442400199898812335595601631434459804572562068181787437816690177607521028212653725384954276036342781091561730900062335307032527902226249982821320508052604546771412423296537801860277857289831891105383073272551920268243511954254772629294159990943454339405180132150689208424568548316631202185023981259927709553769116098474473226727201001118853815971362047532545756711219329340549985777425877037490376335305157817706595278150249695015643364728340570555237306095935468622088926101307028598051991009761394788606534288570238223171938575797891291508393305939470566637272415768169610508432372516828488279024161952922719512732097987039916162057535167705127792792710215735968204725842011191242675088915411805797669060581558429613610886391897434736360292788153795219455108772082227882806947555376871339747495656628948233191345770851047098855529382443600846554147926004962705478610541084488598191197872259267633897574186818303595952269581099287986667007455074634848656220635175249089565368082204606028003459886610623655601655202277247034894127130772328010805991262206720394943087881596802028163255652575233104053690142781497897149045934310025717324989676894020591802368542793430076641309424569761687846611479966559467529353304989360245140837271897152947744742498509249180314771016601529637323203186466010888407927877217009336602739340937901559375786254986293428281975564049214765458954986991163279325184708204214828140539404231196674782233385961394964172233979843069412694304528409557562081389255605853527210008379440045816154534004476268761164736803404363720119376718972586822289205919117056196990214345025123990123400168865295230665488874067810643658570724882463377788286168792348259949346954983297379939865788786826855269613509560862051034128597537406852488153175621226665576574952489083495051048208377869640459176934364241199142225640927891846205408138304568313183919453926634803250928327809837551615634404248777333430626844060780268003088964780509450966496665634888809717856884024383133638440239455780185237730129499682606747216490083611851319051029751052260286863971006799294489221305003392899468224005055164730139991553292319656389907156390663629426784951441003502750643540069769687526364277370106110492007876044354862676825783218982989208913190922963410138321086890251450679676406655029540931356823534588002559784805081339927974053260505171756101380504192617282310645012964405654032002598495847808534227645082262627926102378981228746296989984264448281137737852974128256017017009260058241142477679692576232049071190306092146246199939920282213071092469755440455638056976634962751519419031647430136519329884489501978072261912536879063240887977975941585117715636110045537238245657979708027592757917484666208512329175804725886604754909257479927487263241368524633830685105303363883512710358963006383182308754319060360477251458589829148782020624534929317242828676556840405353318209462088200502404973546326271772427194015917067662053868171529966942400060293775167515046511987730816428028127644331493894118733580849754672972052081932500818181297871642899660326990476251235486856194258587836668205338142958832931316512800542146837951031166604530907948080242079356031101670098014326735870711387907233614385409241852335998401148888950853192748553509806461930081630523101637370490910077773559718841485628969837794487519950061984747438693518801586870371637748451223849627412229104176832819483035113857451394921480865303118562760561246600207211221026069139420524428661843823224991801987923206800877919810918631881981391534671093417529950135057328259561898026914479965750600924074715567614212213726353704055174658689752741894698299283867544051239734723147446021040978453325148240502169038425545266530116324190398956557930158831526338733513042848857351279751407159376077287656471089098713898289372702672537169033882744792690078922741221230992852332960604576269304094246324024654375467274639019204514663996963986642993290644002383306901742904219873770790198996215874694884335120988892959520894723463432952651343642835352987864364015623686686707365365534195583077632962966409063682173128059413037157718398883052114297035951412754690416330001475083554225245247040779643593522473436936435597355989240382326877744669667848395173226370826872007785642600440751919895777280182900628710159794054320294919901285959936975489443960484791964263262320529894245312079645017536979720673463066166513613784123380771828863149370709262889828985304028787580163984564935798533119235220141365459699954422299070767127088924918956419192049994244003915508187063569459726149940214100221271171459771590716683198801896238733306822098643796618622381903196974697153646917368550147164824105575010153527447278972645795825640655499416792666671451696094040853748274080780295433282091762581673316494499507885425211890178042119529154320201389504422894415694512721553939100350409127714798381736040822817953462109370500314420377491598758466337673216390230882641537333634443134539918893992290254249757410128146175011532700442173597723028911056301221133878660797359278015483998023268878948631598286388676582550115679909375969101368245619691898943191157307712097650573440560364962185866287124505746749327018293004926382398845217362686134333537091490799085458271641770311770600989563745591277133162972811357736777571764179344570436011121512904070063150329473828963353312673884125295205632230088852653183274847758547458280171138608597246586456198131963695103035900146708294452712836620797524388811942275346598222570177761004923126307859714100897477032151886341841630633669275408643889133940881658572882756382858597553136774385387126796304591074412759289988639882065916379475467116839758499656914446642259357625035491469429678715320580374326419159586086183385540991372619902839192046222204435136496191732379427232962293424641180282776442849517181448182429308388173062534022090895912319301381295413461168847502461910931959504778075238991732840196686171150020072157138259149036434440435983783245903356844190432096296419070966999779860353233363481096535843446010978336191020436415891769392282405758153610564202471029125136314144343339262270328672242570784538929153663205694396227601878398589896534012997507577762910945017826518267048226620830736259601547731535501878407467777922618614097318647032927889018137540588704724775083044117376540967252407987256919751373522808192425523268740722951206297319525684384509870953037353998647989016870844504192198068446079539124476847373637664835172943257426027004808494341948989952980902866926490394953608173931727957229972522072220889121587563590531641427558750520270338220163392454393126337664396884161158493742965896410196262638159518064032626543411231828008056127733775899032499209249144841070657211129532290448883137270107389476235339193457450154738203932453912363024008878659317564842282852772153812754461581949468149852381231595104219429953511874309171517129770939551967912527014681279499439727879931557837146978057135729183370866193389795491455604903956675634677554172428871507105386600439443790074404637596001330800039471787446616391038539016365808052816042707284584031916852545183214712589132645477605780147110238119378247546006389068338296666378588521266708100356639980104880185919796023854432356963016892708108054534069822601354182814194654609444577442390162924972916241610274708604787989932476863426657601452172073938270964468335927981529018422302027733287671526971720124534872798361770710416234195880862211143146717454832160068622675204180199946228598097575501068930678836206495747952689249665017808671361378965960566332113447357069155053117490988294618310587420160411707645385709985139113987066245496981285192620746702405268375673718744988312350004969522795108264691600456536451176936098139320065072632076290167158127652775869609270585636656828415015480076230931135962517871168741667696884200675586229037406358227812263134628004188531292630294194660633276714658330186921398339421577105143058776653327534222854157407867911956385262838891559583459729293900221621734910080306684098631099739969630738846398102906738250121725446207762470024283020545675767983073954724280740769397883340010302200997965693588095855463217485966770729892730571471343794463853744296228188167174636697458172558001346103384865631054249193154842211914342791953865886595984790055572579304377839108775478767196813103359581219128151332348883652043010896528410435787091901345317585472352172204560319447018603264391521231410783930103966904591657069590389670462953437165731182279127323877772711559140327007537256845176739211727792038802119047297251952879086708448660688639074848077135562992126676727031513055974014273814841656068894401152968673255508140572122051103520888831044522649543974549694630829397621529108039217870439922606011148367693240961601397780348608422723068381470816962396019508429761333060222841150390379495331064769065277909695879414322555198651759508317774575561169375660807318046504452758504964386306524839777170585564259648570532105087827161847939634390468478002093758087086799877429868196374263033771650904594991698593525134181749769934871565460628929412116390952416294444520096494095430017981521733932981461821079433955440772687954414201042153984759071407233966081070617849690787040378019845024285751447309662092748771862630642587346790966915680410087733373787195394812886493909065243048932932077806337474240593728241674078157677531703629542404059808859027664140058267889323194498442697811513007222515247341706692486231571469601872125906906343348734565020568667794786768908124812556100335183302776398620520329266230153953301249820069290260102748021476596893860464161476733460648532042468609826498658304496120186912802969479952269560663562755440714573039995336033451651230488084913807870306923513599584961723443052316509445900107896214625798164214577140859293832226625089469396934856299675051821634057021847075436163144860703342764069633317956565142302061045070433542434958453317381339607249358319055884816065474508168878568248552833024792353405085322941586197757470521347169316481107795334460452764710808545151755451817541571704385529832627282767197335316443246938561403107826953301933054814754269415299161025636207823316133361798384542284048068353781855583592331549198844531987395637755368162324062500805685041346673562836347381546171803557810522374041912132101400413782368441185260269467683958759722541908385302340497757168426819721497374024019135081124106961707692555958695258514852608171131729274640866307690744926469039908823184241325218157773241751476534697203283017760626738647848688967809174633109037956644100892716536869491127748655145502861462438895740722898206804119598929918942036877469845581803711693881473489674135826940145421739489628714912550396156896894751240349807735002972980786209384066395109986265585503394264952856581010742853859253245347903951394762429921588207169513367014839818063289007507395029653070421253974841047634643113164643793348085431127493874380940855403552579025001679524932016678302536185009218077541055106796543107966561555235256635067351768466144136708272806366028582390654281318662809548550611643362756267044226922755944335780343755347993184995970445567813391107459862354034468196752699897824323756875859783121232655754401208655888513020117033427474408887151168049222964099898624113612754037013236295422763016532726735411987446857902268994866223714382964449961079731705356109986674234609431432127268566809829097589630723714899928852889621832819582983772937885423365643626740841296481678405940914112864804930985555319317192729742211675765966780944984589123304518373376890208452217663611868133701491778435226229932556599571015461074835186214901223624360393385103201914119887707276980357652731758975685214672696964880730115826339087528679231909745451121083174895356781542949556452875810276054516615114566204645335900436180001589211943508056467061448887452991118457795121710945817642943258420171944487068904379663745158778562594960182446850792630986756188946490408045063505353225814860940909771923629047603954168347114812870426699814581845837949549136480067630754365092375299886812380135572223065924724086598719371050980518665052540308004417076510803858655773928872994684258145875597355040602391615124899320914538469982494429207461382314736872757136469389265404721509274284351621830512136038399550960483786722163236448468700397182384560869963023427296648832372205540663106945720956378150331359055200052380352555766422357136866364534381343249309095330169457934366674998531707999574427911576341010819908904844635873930785237857666549886335281302658767640440869511993272475969166618042441356070986483887347109933266039630795993434770018429409574971715321850837961661094017508910798498842578835426959262829486049285258515917272650615289267624169247330719142484745955303159886952343276632885180033787738763707352035383869052904137846228133674987424966927595921437514952767269830425123033769126473712907875781963150110614478026079428352804074402529104286569049314814360933269751151244404931037313543220580053203787666575442134897006384771539622873329171163723794659220821739507736832454205292292855066910864935579204640571521229425087775863681189906221654553253119154384713280282581678270188502126077911979234495909625055260916900932170787412034823328696397265355180731070409522801204560305036890690568255151261643675964576798097943709563743417956800264791672113209305632790772193200508239953905570183952101739379409865710743288461178943955736478091912866026749099419124009468278823486980958811265405759987794835926794161154096597333781836507825223228288158412174874107521262468888839831078435133963828906174862765441495909107141131640789202241812597747916696855686185387954519967888421578729199171769280836627234319421930179531360669213574222708513652052195999346261291601498156918882665603832696518652903559156029444578629027205377156045008662989248734435520130210944373921314056165288478239474125642261021227022261798238472605548890070362759233464404640609702989236658878788629491332991242086946470296033337570119648248153912217835460218440050534445554282499124732938527853789988529176704972826912626490305113424721209636324449387762271780330367667309420402123386534619522434349983772231472036198710719842379374597595470907258768002500331472583502933599442365478525815466524949367036845634722042366399428765387544775783354641604142831844282310917611012575499592964384889276215810379435079336151227764829937152118296180594834075655277570632631354690587783419225856257735367318272911980992256313246641423414318472864456898788873288225096352258918582102138117950249009762587960752904921204147643675343661546703512036221573928080840793300286611314126840175249688874270340704205290455474678501831770736294233460258106860759457329259437283829679643961877078293428801615272222957716864812928280642024706009427375221076949059172076511784744199104511114030109312479131201595338331481814637073013661910798761826957405554072274564356354185287651850614686440732366793914626997908762077611029486172244224303782239889120269768623905502294216224379136669402300007164348138970287853432656685541203495919933094250647506133490599155755051296048007113947505970319620941618446651806553623837132737697219376587500352959694356498608629043027309338885069062324807646575320001721284374705322858626273992114492868358384850622714392546977203009343687671807634239346843317151828382985452206009055604378661720528126337960774406800003831222972479257756044282385117839259102612184745378476761695179859823894382489889992395449069638712281359769025456612886971323994852230694320602356700242200844242750055180567723034836465257127565068421412725939711074016728784237024610608917994102902484146110945484898846579087568586681972778665893004265516703914971592381934040612724224155517382974143585630421437353045292698841030699116577480994774980572103274910916510220358371673723721384777876791126268692233665510792195391518371814994180659671388580956751358630692929305501332690100715979266646654401156599192748936514794362182049216177457708664946028257834536197706021992575620152228811848364444993163852572424896754207029232399121519448407514000809612527739809818131218900251443078907375845590060751587349213837452612804561433650384389901267574438936827957187264062304492159593435449615220024742638493660517152825276434593337278697720439820192938495981332190643673863830115732732720767949081461495752906434021256308709657602200132639385756546701990907183488461698317106101880802540551296421981804338734284880673027272991818567785830877422193979232334559793106367304300223464347491405162267927068815590480804912105539646762528941110844085857598947884849771921127014998597693065983623895821701954924632776407161718856347886035101671948069111030400643607562359613129120952602953739594023077290082608256884517920204639255490462572958247877917463766697682237412257202296247537727799511866823592136389059126175491741042077333828984499884330525245450565570230435881464931424292581656298658846350267463518662630792299233304948522730113116290772949821823595656066561411285063460558658004420026829574021426261841844041422952762412659673287522460420445935569914107477822325017129407254960575754229730698092404428987143415764643659684202719952699942855424727112923289408797931937821398704315534064439624912184742828052615823075124343554768797104498232136015290343636021909973130273218957308869119906912289917347915173898007072203385504519063966525028864942182620895461272765802632644608402005793184372753927136863505032861191549537017064635842226929808921816840930419106917814129787095905137353696926748807856824537692583482734467355611485352592188339619686267546465679101051005538229046619558524609994445787058630215745041377771115229796838836147400894810615693188170862549608208454579856201001736274845965053208250819357689282210099322986554424035330117188422025636364196840085926472811041580319961278071044315276729214812720778760230423933852003661839160996921777331631366992108471496164189481043082244768758727081503073861458121191480636086409170961784195759127043625454289312895592552559654943833205622623913962680411926978449448786061863289226840922235258580663200954352104332437657380349685586793643911046680586017613434592377734706270608986221615346224510936469857011789308607392408847600244117940340166911352659503609769910594724367754386759531914728237161498619251985609389960631867488321053004256949046162149669405687236639309868626772025320187381494254357423174986281913508273795826019541285670423041798761978284085570191340596786911693672597027414035348890988343908351821251525565911962955686884415786219539786896913339332154903574964947763182012908927041935216026014589584735410520989907235164668353256924097471165542169924115771558668087631589807524688384141102950429774787057769883620509133742651458953067968208159992321953933931997185191004374128613949757923807751722458450164685180508397476959420005021769443579361361499087460818585458233539807270204008924111355667305902799453186265001449614618303771828410607469650202335174868449091077705864071957844936048800421268369449363555155764019728261790267059127532041402402817894566189348657873866058195836241123423818632089936976064579155961834173809150855488372344763328006627293571933678213381488079019227047761064649641736319141429947310680410721809236925980495585997825112744140026648664914630334244345355814592522811889907020307612713005098977360959238185835165835880659903847850649936001993556402803745970157922039200689837225259336634281699622425842986585583553477970571861594207675359523228008004662727944761688481452955888908014667085556578997580857039913914905795004542461654781285058999718644069788902889347628441223239784789528372821967604621900395963874908577858202560431909217952375528091764397803762744637144977788316433303585884630258602866476347871086812283583746571571886194969505696441857852216219774835230967173637126177331983619315956551612453068691130676292926517740905231029594336002622570387407841369090754235312072772420334181312043766044259248670463881324260801932886527960091665594071285086455101089660259090045526547171874734534505118212839662082981243022760370271452613187577488973998134471000875218620269088895678937765910963374420430121676624538321479433679975737242372770057590727617916299337957631383803058414703597458426201015559343043421000905801566885958371774583087207060448125012298773857116212934954289713696395491625077222871252638947629165890420494621662865748041042402178455843865502686706915261813728012303791876035001963408516570560096218891308208616273078750013804945562672375674970100555266122119241793268872653010858970104265701403499174962195042513173552649821755935098163386750262275548322741514623960672225913222020520297151164958312868834519306724145284926602220926959213640012179862339733632208877593641194374689741863910354454789742371409287118206708252999591360719848435202520282883587243391200152316853938452969391384086417780650476665953670749774820834430191729286208419324408104640501020887096037230315325871083361241672077818492933745356919165552671337493806144079155415030416183632579206625999184844369312798348260903407357293405159327365565224370347006602158329947467990976243568784742475064031088084130400904964096973796926651543954486754957104083444384586700992961323104059053436329341607431714838860374005339887268202286865201280679964815746308662801519708714502958241708551115577530462134906675196045542252747800855589314688809508925508164710879837758792123160317925307692145165347369139103073917714459607008159954478426744267835340971955431273979291825667662650772212160532202082644694090361427264840564562077839151999510331095616474242284287312198849757257921756641602180869549564185930952064023700566563128539429415361760894780417478657826152308033753784910368448924738322541825574704632812409757035842616651509769380839502196548993407547481501180308258201875825146795330830570275133296559828249218953940883313299919808476147406694466687600047736078026870219007669259838123093150038268582817167373168330906868482519036547806998113747892197237032369337938191197490804608772604593246687856598454767712893196885661824887152625234920039781577607341781913853466160822670396359414604737029236842329521618602733882483715335413293295040036080679387688883422593444113157112877227370216616456413448859442085318494199307374115542873599827653364847127055010063391735788939513922843407668216133573133212462115607857549550395843526396625897281523242408292929192074813205573189152739692839747853796519939159660291959033393327001844546169413703181418822668605921819184888962009893788736571829588797390209706102097117889317925216352262171837580465000274401143396860318598360833314982848292856075362414693612753987034101719571210481245855544623893771056217414502529844245447537735976117193874654636243945227688008353420649641694676065711831851019051124579877896264556218205187189249656963318049110427202553252598111782054943059966885886603766963535716013267863957081812800263766357927970252911680176852029827876704004919846835825556988569116897162720337420383420546526818007401511362640752468827204915052575251314453968346672921219002892236722461549903967798815859946903786468032360292088203349308273783637477649654472574859469010110019347244169875281369307592048861146884123721624735790384862437972267797110777306905531543412521883510414174178502232610936423724211471048746501810574165532734763640107928498282783095173992739963050290277600494958902699309299484964513252345838658972633924769500687156035364399678793191642963405372577462540063237853378077492584291323317866292381970094638929535825570789298318742449645479367371714784588298714028706331310414511152018528710231822505688018131588942810549894558697604699122476439677609995655903070274946672937046459221423490112845026795822616648771937665253293208052287187741057700503606794647445193821814435720139758651440303941409355698130009721661452652647720654381103219323792540703721024151051955315055541162309348533436541977669994709010505347623854899052380450662813983644996534437254712456081327387182623023115168695264444294324577011429365296501778213751696745857278926682231130416123265377806424923994541445007589440285370764365541179129658915961500540430931057660718046711777207761995641338903425091573714876950563341053278336486177792582695990634549482952744133493947447751389587747442942564958848411828505045328847824837947097948423093653670251474482362179141536960820222264505535311361492221995242806570617874357941318511414653028671531085384334794793411992646228967547962669720453633393474608262040677830221871345777914645551556278436481013339826367462101905091078720688008786090492630823762843850347461416195141766230360191266824511978994115913934268719252822142498211555782293013080394588480210184169370244143250795812373284713552911148822868278254920767494353332103210948461630308042921979853097504492845921256766340773109987544714196169531053969080635974733231313137270822542013797493386094444504557778082177826434865738771896828787085971880294183595702181791339052820895801875122664293298571845668750968954253618364772343188464798529268510211435336805914589718764616654782319711283832846066360742807057892765647482351929608553120471028496453416516814396354113356059943734655118596338079376844879698578016373539339116965232810691419507761836421061160066694443219536902480345466265661006406930274759805953538016707407621733820433164281917711953880956212864531223276443269044348578061336087507247216086847203804726671149181103311407335872124938436859634715391468525783176565926531203063801895100093132219486561936796978570439792144538614249462922946715281254484699921562095271800428852475394088182586773494203244911936774797623101612535498803853506402317532045876774922999752825410090322733871037055045173215973749037450891351770062391343591677264145884454998896984722672199679028087647425588581538673173292117071172365728485050356871981915820951164639642630458877862090393943344774809763861856709416797514914395582259133824588608334616912756290387119045190678179897567371196372876070017364711336092246838184069066779946290169690486427765419582903705251523525655968788222753836848030327282848993733342455777250504962098178474536623634547104878830131850302792643440711863197084228668559516649511559913603738459431586763253943391318779116156632996101347459035686396660364811907793719982703921509894573631216151767667639457079778586660432529094069407334708964247956026773774830331848280631334044191008983918091977982259759059625370316788836296014111238681087190587251833169418315344768559242781203190055840898805011183293495225989933481927535742497006246266039043420256728005753439194664693353141110893208866068123669883057686076845209654746774787130561979571650304925720315735153788864989770713176306856552556462470963370951255359852013727313181850170409720500727191328790230666014637414336376673425104433250647401019197597575523175796111832178565234790327101341159759352079650591427976567950013590526312982952939689805193398199052849965209399958783953553981089883685089522351230543171590389498913701296342529510235841892608619911490222069940076548904258085695991152941095437506555813781312166770786630552750584701837339496001049062009058863130546623642861606596146036897928946864165345886623526179362793166981111197534254341192874910836248296947051843517045493950598207967112238648176728722622949296374892672658954850440816500919054015954602731615338163197938342956682334157215653246508801679867349785224861886621875238453998997439231870902979287286301216817918952793079096760947768643322567230986522000515180789902973213220590099168931877478120464338681072628687037461654954002289189052752308971628720325857007227498749868836230231010102957827671585326407955568586193550017460316708416227224841186986688880024505751748883484149028557207077533612216972873531096434950805219744913872465932624979260143837921105614524419292764492424879898646661593903207751828180142876108322830800867937519900939991823745551842132691219751837799585611203284797032576739418013956063653276302187989182423098603069221281022198817110091797406090610679566277001457178317927711749538109389370495496379214976953802187663194989066234257874221757743353580438509028401663967721799611146459118848043172672129765397673240733679035258434661229774354924341074176372904300098823764847113300850852080094247138222082529630783704709868981928841865186966996314240799945527320371896201996435321589026972571091486424700590194826552727030448114132655687198038496306709314980136666263346040377997841660306526674475544390791403223831275361169886850202495763795273690644577964120680793340453731294483673524265736066714654157841598346426168266233636247448392087329833708085799334030640000189486044386958207703056633112154311242545975906058092941189243270095329061741496046717008374947695494552851248031175359211288558604006043112440727791606329036135613737694571187413000921017926395406359887206819887843418362428056701796716258180806119109808439470794364440164882642434667753066055417710823806846300406499025024648701620777986215113676573866394082173234238205700086716767490630735978380463830200554652273858498342289266161873558641932966316986636517199790292145645600036044235787419684325331698911451094733842001352444065441380935009941819627636453343193403393904866600799049572163837102913260970052657910077434239209815863224939645524919444275199061461764498052828591144974431879624539065762014554777812019694124379644247433954085840383022458187626726950972770715539552254135839216091223447910047878464296028876398209690906043266904252218688862701099425961065446748876947708628548805670333474633263498292174135829798023331762257777489082297727960565799967419650394338662450133131723617907667692374862471373962351578185938218430639337609796652700715153445020494230751436278629265451954960674018798126723519527940147539080218504849299519914267833293306290114017553222460282101679153582947615031721495056321006557951930690611413806535554689516956108573006502636064920221909857050380888485238681521582592622647387749102493064714805646635162463850613219245827099648199773418015246098989259106446933550559864781691635469100835150019213260164997309531086250785258076560962010865565234298895746770797358190509526016763906241735371896284099189947947158956690362781489067923322555483904124603904713654443518311611826678568386374833318964245880553944781023298168428729253995860005268450453435903479444567373464016757613217705421189431556589217522283237415370215082720099956832108634166302442528355463327926684537073360110011819901904003087277354276006342895909034285272184229319555703717159167752870793237547350218711179020542792080211423142146878800277203867682161030686408065532540048108753571460564947680048594036235379987166015769416316200663148445107807046302358961154904662002307388691419159176300836180959089871695760242572429857591750587837123473368836595694006654127706701578878604391066365397801322399921463814294142664306725328745412384193450684924428899524943896681265142019755471694949773744697748174673250226601546923287870917292868245304735353934725925983008996299192772770846573113899672070009061889522488295400636243194626213368071903766015902744883818351666514833514443064600104284966899363198258608796662927979096379021262312448070053402918106872573992172236603753027284308207806657293868934717700134104765660624906055532543021541550091939748734203103041803789243953129956176324937628674490386799911378010937495589620846602346852783940250766033657663367644481985930242659701043133129825654838413796209617711812173306039794184309641974330224891760867012329096923016221625099009974677954726072533260713274243378545880049510065568261561855759261980398720112737089059085111945196094302286561374934572419575930591897841863159387185799498019126894670145395117226110846939708513869853637593225873783625082815688076402275354338775290349797185742830180286889083626614646650768835888204983928891259998129885313475507364440471948799223257053428066100169552166737316820152694181977608510349321451565640962502178379785000385524306553661061858823773476030773471484070824591883286994772032143070709725312579118797297936022489299299643062669667322947272810116210616915477096445546352883066983329734251622410781405325456443935834459960187571999590115294191970681883551092704161625157112201823850407280419670733588306286598594959421687358941789699784373831225335090966178668372788045917121354718710901852727996216913689130821684242176478852306725151456904447767020009360107260925188623018777876371569403252841043178394124623332336560133742378297268154893476797933593965947223858694065565048169154157222995766694151275929460510738530564279204404973205217339870296537858874614559450957028717889793168848871871336341667504829360616527527235185542493001825688017368081480913179798176216182225471452884416378919579663718599575692533965276238915839207127215797578854869561731157589855861351151026560392313697069450098441261605153060389945106814072379882930657766565876944831014086466711483461604411795287989963598103957378839019964592838810089860048512054855476455353919789651415249206506341688942454788121454158126845997470348697688439423228319474153470408113429144084881046970884395587339231169219294481249392158603682794080339473495048671791237503202671221634547199992964147148800496789782405308350516858093525992017460300592264296929788867634379684328786214873587752075235854357333689393430283335443433749893507516211142441005767248071043779595025008260727545668406584121066442607765020578383766798641574990755352981943608466125997302262576684899586269475489220633203954686354087366616881980833766427326417874270103049762685941199213506375946324920536341803601834478598109329288191319959303087051128767923009215995053606490841718112813557271944036527127103837538605879585422469495653925997713028178597976518785153633829863573058355490274131173972569357416710142043477931483262281530088393480624476520477452617850633332703921285259507094708392933377828725580130187288207933095639865876422273761780317183194356579327256491301217780865004393203340002593753978714823287633719152855434833023736279468371409899693397793304443680652804422245273489055303472541032836164616291999309345462075866490258346675619956582105798641089363259714015013840883821813013729684467943929258459513574500073582840867733213565776762018551755986398757150484979851009925955535141214893431826389567272858920884665455168750968223789117014346162478419523963477530957982982058155629351793338283256029809588857010687193509512326821647092151951663329349214671652974716545331992209415705280005686807095289599732881496942095490270346111057053179215889227993572735627190714130184181813411617847070283194270197020754937849920904449635394599295484933937284389284901590270839106153600589867554511250958832858192798955432655379779144114388398273285576668099930163422989116025918949726934232083111477625771016938407913583491550737118650606637686258346741298968667500060222694169916641433107449448213254014444190686888605148705054719612896602619323266244629926857487291875418741292723994671556026091066390615489548374189615599915978878144774989371988120195975465681834033910849754427860468417680301840106314933881049642198577897491641651591106938011658192422279308239616284905093234157760381066566779601378612294694166583816438077782803841614316676537195631541060967754725765017705923950001980932587364587416938800342018641317081343251041421702840772749890211465035871565434948267989897996537237698913042674681734913781869302570844970307589889307914692271805422493579693866789639495747650799343060587545863239259298371067895106320751901223507979642131050885768492960963997057070381541439854694191431194251854532679897717602820394449993729056273340912393105442399447531013299624640482000473414666921113219619935949473311457308301657316024957720848710453268524352423531182813921571348456439240389337765378838816879578644100446234842764029599121115742392919098169009834556520522714303028779851157525022743725098817175057987606013991871689557698065203761836327719615973103794345565031742130624488332300311020406262943301965415083553574842177922984038639771353645295823160676432675787302135480137064618741847595486322174027719182922188173081635468562982206225509597476455536748635166904410127221546035365016448785847694217857796371851188534421375106160004711089619290928583863022741531676722702514536909473107208678278621339319023919542631246444987585264988965474986809444165576548898861471135034303159526853385023058562940051144861173927548668753365591229543914051716014294573651042156820991435018314563931240071926040339140392121998479193866299199192561394995850944590167045572664455326531321967781220814001897340604058360369695715289734836950978321747486078679558463603289182824273951488138125529803675207313493707663267876559031850884496790859708065574686764869142102775274589731300323562659474554609741071320632551912688416180985199976258460919442545194480636427697236690738517274116602251701472872029244392346502363448356052802549668954553741289824283791921857987307958507554266121069643131779044422124216869015860916470914212098881779100246516630825964701210679576285538918585732465208245523790326802627486383757629131522852508251767425522801997972655521294751003520195661407001007708895113153493597985346311101358042255104328946696617848500572364749886364728834768359341682802595578646646785410990994312449432308154769408745716233024322862874838156160487752979203322494345388729369662181112547374334543846763884385366848921038195301252361834391737370346449727671877467331515402701338217000044658935083952654449177853246145433233498171356064543638655196483355754374579741559794893055890710006770373365829391821430952123733582489982199907351512791462953125714687854467024261278215362906788701528738703696005944252309595983986000900359845945238410980728121219273897590533582171176411761343580879332315891502084081847918441244724426234672674979036998143977669145658683712653961157086981465858013689867360727598536151013020625660594272602119326910679834225937388574833522706059060645092933737410611202680909584450524250042286446930693045144454481807797334955322627271073396312545283769424259208017869665965869078536613452378471565373367245840044094791184123730621640899960075056207347392959537820190480340170774694610965285187026708720711723995855250438108193262762952517436346973304027981888258393983430132097832058317967199733370715890841509299792928732577492511055484855477475487521755364932522066877066343829291387789007082778375032670817295469331917462258450456924856840739876562071764585149717040378783381579324793047890542790721844809356271319682870816969366082275540719221575424171386924083361954817034002982727092683840210249876848052675286548200853339458733653103951561668052159096234803685595186164394463589483292584702249918839767298002965066197933104278865610012150944169259987763311972178374251334095211015276995754983459503030926285592167881428893503882066861367175164718441834292773372984781831275804230889928151644028064866220467102890108695836020813735062956191573165456024162237668798291673211995374821768758231168662475159283866506944520454003230751966659540554051346972813094439007162402658754607350263456800268501314059691111936280848797791111522727358355311153550103026280804396656000332760843798795179794385920572349235471724944514538803343352053338279710725699602215913445530631495723926106962310092330759375462127766555692729478821457009205164384668373711863478976545214627947689747125791256561501443561715835504388409559074519079719860538038031253032782385582727137692714147718246189445557415655508228619257218044339242633401512342647349599997216950485290230452940629355845776552051881989466577498171664925988522408184107609803876553064956304107042875343988496388775600498590978694692473532760284071178933955756065021000136088722708439390306360062498129016305048033556911726449282361093191757475797820449524183354168600381185716725640165038656213683501434166794259882814800658771838772130360142607134410916669279861890315762793725088782472500632252568026463610280490047896167659527092139327210466435341564274052681878602830851979527553440703722192128006154737499643371371273876504966915284278468444678686551414037254613195995196649703994338068087063516495080084423796160316440235436921331788203883845743858767735390643070442754954181715477182726680991404663878361949276909899302419561502912347110142311151629539049336070192670335277518472194676322217705727826300997367055880535192131251752222134497537383667024501119128804521591197300648432770475774483913116310827968973303095686848145615031450625924368876602012531947820755670986576764852827825879570320242353699618802274581184684949456716605309940428321869346888008906518318036775114899408632887823346382215464453819616740757987191156495671016155366645222050919777864080491221622677361017371121989987487744627023120916573001996075702309538074506677534691115595406061472364761587522743456588086855082772567741110305128980272499362096614216829515115778524643382290058880803689312394608936496970380242584295055745286670459537267796967639458006312914751036700116962126853612579556524726105324281374366753420269422522731961935936962293095811049364204371108828774220925316739438715158850006667866779678760352158606507531568866207087503310368365535479280314569033839437680627359110267383665254804499822107938223537770790332272884222980317576047407527123369239250227039698062608955396316344826537400382700907365075712105331789341125620871963225395975485234078884380974694878191304236375556655746810135235329572027685348613124221316947027196106726451172021890920421153080589485591038799630467949433119386358052503618825453164468128275223646057420241515460115228158542439603691534919545590799261128324295594148954414094034226796293430549593260954267707785567729807161380441987285644265265046804210392022913736609665976759847115857358305389508430015318501682749856722033645786446296180044268215044253413868258344077711491794704826493721404443856315742910586587858505815329236394775234247281419362198882110378437437372419205156236795949323002667410865595486956249707597663319254939705389736187793663191356598315317817146364046448372723113373886339682941822279499509968312634644461298656403489481036659143685611427508436185159198808959612540789588305868678022942803026936819155298383993636801216805325646369423640976681801524660319754244362910804717117530920978845372522746971053674163686208683717242316622808904129032273230179690329265123313448540168448640757385249422115273564049063427086942204860752931844276982882337303801849505672877241174552138061705821321626743641952308342596493791098135115504775117782867467503513295085632189184134485830726645437312082601070712066562596190764573959101341425113666731257658480884491394762361026586425197098241073676048848885677552078780927052386257747721986406322358633669068319689251783212198443032091949049343881502434915650962944206438180026729636413499891381018618273279974034148016271394263558596735761290557803754199031390146493755701897804537667134177984782918353983775988443609655517110655622032698824637054985420937485173382640014459974667842995787537520270848019923852539590223273001567871739528477191135975102925631384260958741343189007990073779256449934737027319313162255018642501187757210170114155278542197303627276429395772871577604891386400870922485764878736138210254997062090370750906921027611606058922382798652686041220524462633270159626575697312065991930249149323280491029200278940269520757919686060347865497414115548497384391976765265874848999113154926783549500524844955927959901998624531271358662722415010527780416119592438056007651567642909973184068973562504150621275381711518804114868474988893500724121648657770810600493145151280133899081433669507357442800109191597928341669075653701172734257647031725209115875080205377948368758060279857303115874573467084872955206588004728087663803447915051532586470463495623805871951101668490083324929076604472289739180792377696423683545054118434884306385757308236337626310142031737109048763296897723159739514242077907007076221651111647641941891992480849441108524953296741121715666946007639927017562148085341331727763332002118147505700691373821479635439708289642018279299671579691435866526039170341180999643289915805399306575944211612857345955456539449120697174463774082304493671697025690099191743517677487913458505833291745664440925926329023014127145661574399923672290222194028271479148662488564422827692863428745152230285717628793841906133587594058600282668519385890908878617670756734284185776767201553225633005532498708277073066177736712218892563043117862361211504033949065298621385143532571586358136008298857771327612146346549028113536798204404802492403474418095694283336998915006647308358936241476049677707834712128842821050655195099995508932965787391711157206638949963261108775767425501812226780617968836635799160978224290793369588867515552746222516318891509925526161278922441059044680108666481795617883902789834472835016223304646105266293047861945814346940810406135048522765952111038165325517524339964741899179911798330976590792150872245004788115716419125974213227978697018346375144524016938268123330381390819791085918108643763748498076470912847202573912356177202425599448764218223390875427637013596883535730718046040201780073740061505172341158438481057099776446769411093600983524894209238693441864404756897354101508323944186132027849002952490022269240839693396491409852100114118899196361523755052592878760402248518454016634879084894395488682571067620590039553873238395152167920107346238499322123799466427998445493511271417637294859341077183262827707155122522991088368703408515975690304918791785183200401434425619650742791028147166102615043395387100929651214453900464317833634845026687103458217818957293214984992242189817095317091130564289661264782060469810025923987963939496038854614243905490733826447803660436201459868575453059411213084978923089173832205393676701621534306768204040061643739952077604972203154425555597941450615045116480012539735106054907380580149053705448585898237090966961015214855602428164548976431427772188767992495002395924077584505417977834474624952969760375553794107138725074301480799685914426485625147308538790309210344134783591254246166226593060648228459785228657725181599154203652253110330096786112720786658156870875883374530364642396137876948340822061476017533244158466808327852520533099573866484009786392234088233811409835826147508578817788899269830818117340805974723823041993340884137274364238751861347367599622734745869326361970912475884680850500489404091957615893139548470262039961245633986495537838077988477557174922506724914409295156828324307022725618639533442570203755254181611439834005401363374737693524619637320240086913637094984123982371812347587664981331762745760625437530515027491411644970647943586987903940176834230253195755855812498648805925825266549799633498842373250570806189297416157004015058303240856372564658842753820330972716787056442338599971256795574522837294523014816168110237898151922428490094542601740316918823616875601804006205454703484622666493801875498523192172494540563539595730070487024686777723764010445129521155469330291634083463525003305672468086797336998317296849105273814776054047979279856759683707284135909578193890698679074877962599780587538252547183280714775613433429510276761603848195857335791507722484669484710665166401827539878130237894035424534826063420960691568795050203481937528765425755649908541278480126523486134618350300745576754320004123946584427165499091204861145353286457857116891483393874640103040817842039285001409646170945968021421051448608035689753614788501282424775298966318243911557191863364794428775135382973869278541350720414977242948194824942523463687836764712145035005914947846740649817873099401401932999021417210865256217095048669359579499467697163000618889584775629054571446387020110155107463147130949280777664644321154114670239580635352623922863723087036947758571460876532735844839715394428799989599279996368052397748008436607070838506004908504806571065546918315396342482152835845115671761785466971143633889864933263555259588936769703554624281395215874630263901470023033908111553507120238185683646750602012259018502731107857171730098237412417806016729889711803739030232811519048696108855744348192552750047654574827825794356215990148005645232479908935915696834401043615614515128697085470868300776868993089867321503656948979246231312292656793833252576181880169614544039363465309455662800507246720731304104535181705733797648291967111349748459446555764583931486870782577296491050858614381853326818102677664934584298997683150347517798015872597474110821233354461145440212578582300074058102315773422563993553489656054012292513561197711246683788470218518794565694587015151436402182303123832492501280573742078797083025590761475896845751082342809936736795988026940777623151017309563873031557620831049899128404623662504686086715178173555413570972177403095917858706819324600323194880880242045239087365251464485978765961205454512121006639835199766703603852845952867758118515360921018966502566766058178491348326404756814826173635183714432121836979187678437524992485585778414950307396127225508705454388922497713552513525599894110376930556411922992751239539029856999693509330464834715760351697699827072847678582982885898992201422005513835381272235638163954902988634784613732558958796112602558894074536007667594884792299538446203972438540325386121985274913533801220788538024472197153891458078384030457566743088273920823569544620471052248362945153080636452788570847663343734456594741313145583748178526099934161475668561186068162459630977268033005161284807213175700364929119701525082998809833910919915839275382296271241092505108641311705421172982261440714967384025020794893549042255735146871909104675423770419665206234479323181353781022923849755383365643497427915560721590000951129599630442785353161569718023383105136689383968404629548792301802748361328403050384143219500841243981458532813574679265438734908821252569548276853217333873991695036870354354837680892835171708185718333217635598911078703024826022680128405242171552921957474678905074424102645351712986687828804030198560810650928272428135966444615529494693281378252566714463027212643796937416791783762785056926643890236264878234138822447852986962928233593973438361715759838703759446047616842658880537046039397409941803386890385616182787285371322008543778592289839066729170711675692622464779650864192554782370930745860316166015393953191854150798042363774589178827286792948826978795562983421948823337098439978416607006987294330468917734708253343336118959434085461285848219327552098306148832025784319687388677262103586339530162534697183546457917185285871900203162835135530076765501868462549404922515933632907898262046528549754027975154322263737398819424576753135681125528462273741220378718537369356398276954327457789772482127979535928841246242171405828069794019441123688139514352089347479486429768181978865519454326850565445467215298547116971420675757559944461115145862854770715580702643165137671445209961426469118025529278723582023426949508637961820047980006634809553433683261455223017165461051019588058549384875443251716998098704896692323721741878706363412687799126450632648975041173317123203357613260361332248608213924048036044528215742267995599252599105169512657991523505629158365857736715723580800708910057882029550239818653976591589693501916789612042308570948192447469504906572223850210769838645646942168492630910466654505045872424930777244005901762334837142558059969605476767238862617531456080395494122013012474668626252571592391987043054291934285294925640358492650657963795303342410008990869831661285028714445806997350802157927846953972196189585637954063478826499078985783413202250433958456941897345229563684897084966750619436098057365521729993552709890805826335050629212915068652486294929682321668796939698703988751392943058538678023032454969158462272435810769320250581110827816676982824048448372547432974001058386785458348704658419782527577956841428373445184806134149444812266435351941206699301689996814211999724992852889908326697615706086546083636708587720011477915934291744895985218196371792141907291341316372447429642100748704896248829661991289918655688801946475682671611521921976538760050294815547068234519009450622350651993985317027503574418322989035246425993869193776975324476403406340146612614597155402752176543212387099718343886091044569487982853020192261866403326119046209070987228200286780320343588776390143808571930227391400116760495215416461117124393218596218401441456347713946176040810736650970821782519270338128107052943740370225870453196596144228036448619242524220648583267973820679829174258199998209841686667107463651638273235967616580575657487727639007319726981445612659437288565061669270210653012284570680069730596660637637698169306809599675604355271220700667253917801438996493023889434424493766841448995796662392342698468874233849079629673448788245449866766695705559686418720321097259724141445469639137234625753463239402813713947127202335987597680508555362486717125220477724655541210477884583343053150787815515227744458529526959615723722243163840710038240657129532080220805588904659355246048984234759358009923182814010782713981894465689265767757473313347443117592324540319769836778349056344673564946879844578073670736214693390249850892946146512538893514264534492292476517741324943310790590483351487006554706870658412013437210017239187350008456131028187500821993126420565819252880237630854539518960458157897230384870713602281880345861201759916799291973167472690317472457694069690872591125297283393218956420322958604232530469279796739598366973323112933782193582038829753327458037131051433459911025869962665161572188967916939372022554344665728453883443898099851135354530882995996909469252997976759100918971019796008961055483606541321284833673970484057468604515682045748022475885687869166774829107067337309238934598992611749060028385005110859983987013497680275809511321301403206033673857896172822702059021818317723030796607551726788919537067396818088140446595454752584110581365007440730027404475776259565787268349064542313464939291577693922595226612306727929039979123507643910148971596341650435466500759468541206206870801896405239605862827064551563570474078307895014282184908715804233056094237102025903702408595180404815761777092554315852700737485197650189063171730962486104909689137036024537455724952365120607347157295347868539380624210136785935193871031354485848566878059751624872915518283213470709979378146665199900159603293222815620792483466841535327214883337756937144326075551017190615692499555306889757915177436126926265003975758098701962142694531675349980400649538856421539596194579188979447094646590807246186197513285607161389409152425570404266875062024751682367668468124026974628255990818087316599339665276596006572126191049418999562532726828155307776525853046547212912948236750667593767803347411523216076322548083643103441866596111939791748084881366506247663487829273148405089244766466736669091479007441250720458796881816762699089998218483043756921472243143239941656049889736466956734648817339076337256999557258095190897191319926726832415142451396013088408097005006550296498442322417806545669842900356739584577396528890045895847946204593346255046000100339648371536260176503545786483063542659340161423198342106575695688067749294130458391454034124065819275433587813298108087494518934883564959442027988506098127749199975875008219814624957098841325791145510090639297732467384446674800738439940922993505768411720674833362540378969675825242094873284340643045906290099026282000529032195939013284772893692228169019453265304390944331793541743917176790263360828159090127466760758370258179884235504703800456768664503776353165351745337046845092990954945719194852735513510495502954516180618170844499496805249494491322674520627728439605404997579919570231605423864380486662393589718918116146069878479784327563221242962658515131336464660710907211922548995407529754561747198956405960013973705729537932482840008617777089101356758313698528229653653111800542422678021836812472354947574157209786548160599957603700639070819899771962615530718284383896504885609635391073867848575099502877186378690890201075926000810660730712693531251373364364833346157742992226341866281315913688881715815095437519836915954704120120926964363262693781324838367083171132247607815962357754570608037020095074919366218029119271167792356293653728452264884985975119655081845910760106810097402991573841317185732522065177257773193137356767240958733501206768604354948757921238851874105223130540756818564444466617540215237501046586736892377589785908098217150998195500849831719603761825219672169570007341832599923333676465920990531137291011151480280472466799980491375330132548014188911770008821780474709687832379808269324330978309062973618409922489142048888819491080937897973300219098252538409702803161887204177777768530901892149272314055566949068708055522716384830477911254927069296397751214855209196618620407760325889546837383876749859106083693889484657707119412856689251119604593985534615703668352865362224819232546019794521627495365383783486673687979639616785493880927723478137946669776624768503134147475453320208150257695137905054233884319498153173302335222493267030011223093070048995030358601858096143781502324294097141828232252039241271335141975256989415132041365354926617732464531319451149272942155197916661979704908112751445129274183898081692154229151292025314715653602417142919160828613233954869314265143792301154612435610205128620819848209464434142037870213823179597992925690134659070608236766032544907542682760565051007656889959869639415636445781605846427279164472572940768205408620435179002603160750402794087672204477421979246798850259007101058410013245871207084543951783326736731016193389080239074053513956731779631188244027704738498099975072598472089047682044565973284255191741873059741933669716389801038944027631715811041947911217269143907224077661098396234817603198615699091778076190916029979934805964014191511639941286048011837392584919168143064460508721700619489721957200785472746970974034659152478415324783058989818794258175338347196259116610033836299009403003632061872453326494522232149587941939338857646404905391135592116090137686087713326828432666943670230145396801884660484175585041798687741220908371503290875354509180888051720786762698478761919960984152019881861790245967477130137232227574847581966788443937017895529802404485808942916694571714065202515604594778866010083321711112662587030212021258063273579925786738489358897910904325042452030765790033762403158870257522937556906768717394016080697748668872292296690564466024189113100072623953495384882562353457847732467965102210259813730510941522491210999977105369579092256401667743859399521610658856138091704548359047809236289738464062807498435523213645287061283611348005634837093183915034145803872429884114191551390883464771920304313554256760983492527086764051409622548746239763639506587574019408158326619588374760140081020621838991595224253036677018434519134056054415264801293841407277123411511769662578458827452174322243869113375389161097994156570424186374475746047133575391540528321932136596704491606833635098110007192669923201821790722029192627166859052448599109818829799221605901907655173287016862223863875213564125395864161375000727640060297070498705006707167761310618839873378565666104312976374130680899616901312625459503095709596818703267324816161111294057061162194228920142119033480917519540589766258888184945776513171827473156714237847306812258104973504922995130989730730574630678282314562568246943315801229002678739318531073565734637739438881379758261273900519276045845496960568444023091411047510007781002619335976555474028835787748829000648150399484557591030323106878354107460879111510660773990256844493738687804247745074434508226928943491147171911452245932350835599619747878677361983993727803521359030892295708246330994433397073168445880195234763586243069776689237677458639992970819206397390511597400330777816881699446771129379563405269785731759760321891351028924447182402760115136246999522021792776541090528504518966085211192769911546293289907073755155035815729987067899018141060032422823968787922165598075612955745562553938450760767399571553927328366097734536982655684055577329847335834576474067738828764464738574750853596343987956924716008300558654502061567229348386985423910745129856537714395989053692877809830542225456207809353597558837504083815745820322376817876573977154449037182190972829149540209424358841144477523781820051831265901899246538927035099164882988612984552833292133478398667811752462515535097769082948106923234530678683128275612962839206687365501150154488622478958404629644301111550785188991016023676741725563227646199394132723078093331239938568273773843923533699384971045067179508074908619290427243546604292023894045709671381036300323065197688517551333622094474013870516715027937908560972002594466253042102192764548510179192311744262033576555570567689447931128167173682259065330125710948648540877997659177442104981750297810323376283453224803333918484254252844061002593297050815228623096610444552607991978106405132784027345017260033669126737181347316301898274094179315655749093674011204084986550270580708894790029519396938620311690446079579570683242518225388441576659078779345349638963279115120759787862748753958108054986859724358108290903347143696574368907884887104483484129383746509381297594519057156792396292224402049686010439037554741643183642646006001449318009623792750781058677438599345341415015564205701968121285584699729345658578214631531489288845891538640835764486159451683786706599396361922159105573434948217861020198207587450665925443497557669787039714380537407353256810086458606131027141529748573413058682715322404828580637159462943404904223633799746441706009771454760516110812208887375289083165338038823361802579870935504410906391759561315316581582865803728827202475445333665941273483618552741710075153575620853982877422633499768358073393154644848162612665992469863526247708047898522860002102092802217405476096269035924839379677646022094754181635140948169901780661808301223861236087529025421601162126365384509381260277068353076732344053683748551702564040082669702303262200281077245944023394637298317773688859203632447124237111237449530008067609808953856476576406975913123417140810074993570862561855449287336483336860664456980194102749753676482268721122248370403167477242170260265362020949438046540346873084155885983656680516140722251335819586440003789550122381984985258274379703535537272757706357389060607808356388740196254236252533915322696697150449271075849900652167826393543596935558033710636338670210686784950063062628194420849942385220258311498950188214889794316660109414629303217812247645464588979960186061886458171606100429147999713645800155126562273113833234542797182840334503113887691896865482120155342356436548935605222810329249051746045989594801582271641870080455547895087159905991515041538328346413478796628253578623356299988366424131816857620294109554443606253117249357847640174737149187222097550834731557543947436347840340305389176362306080160046517752751788618446088361864412132135706203095348695744134144736616703927657694709045326461943948846994877413021950031314455572084952787923012561569133948131617206807378121715844759657701473962215653284527411537162819802490343550826927867310832182498794179527130770409398279170557546106558252198668423689866402544747100392495121114246781461910996390717149382614546097977356095007381187314308461951840326775154822469112166350886677159367514029514951806495831080779842693107821010038343863655383658081677684801102384955044786951215823228395857941759163490663681195443491719066240679737276177330561482645299455749849807321816039043957585655692804338667546420402056629113623600814253802349992387484100941325167277542048096101047071295129483422647779254781650139988773793753236640945834963388099623385880000619012035293610708496015943420301529750476401599756245664982161245960172733371671452991971973264531404318999056649857544081169277496218370901388760076542929321697830129196551494146471539607753523924875328086407353316578616580534513163092899535866250348485838681832082443680851412075006239220188227707243138427390335021421801327132310247231452065165925907421444541404840961136595833865494024409914608557761521058676850184298474615834278414340127471559027757791478795467481580295947902839645798736311928775338297834263184442397625816728888704411564538553783162544875967128533210600688792384565443675044737743647241030165732130076430630716309398629850849389829871981320013899318350133066244443442778994003396348553949723852349156752264189964409076224040592653051262433162911468732630869897637751065073048484311272251831943084862395821683638989141136671690242808092567860107813996092100770879328199547241483475464796797456494420086421391312164249082782619420384151848718199988658461675486342101619287925022211631029681530484173849035009519555512800943490201067441266551401649512598131229371432358080673890599339317054922986830851706211396358857822956997413829293666018866369099432415759141496023414413886053894997880904910822338248253196314735095767161679328223685016062363481824220163640263792623557452594884408673142210765911043048777671588665803439802136025844469510906580404669440278122931818315870346402479452189477005367260288788207241026988512449360548605840862279442666951258488875488259509480462515626351854974679083517535505517433822103433939690414540990267042592229119236202446258836397767173721012424157188170547376437533767684471375713586881106502203582240388307143168673746373823776802499275598273638210140225114289395835188632639332619589651148374682342003471204446971021196148619983013091333311198519885772873571413603869386708427169967748104006331095376147486810450782434014736782680920044436492094414870016518678036863350471515096809417105821509850688644127352188957001001705192992756700062433102050846006049886663232076585824522210928292790526690864696352381646777918888952695386738462782942222826488432185396799135055380210044622216529181312646443164078259458092733062393083665965784400470397032004192783010267202283421094584540746030107644408499941378978884130656792561310433160598684476484974164375200466637800083067472583964418766784784203389398723542944347689639863006983792629361377164708367621271242950840615607548960389705980643365107860002265499477578138386434725686257626997837356790177607049281354837040880114164884990294790093889957550628766373928168104155089259389486954842002576597640139787512728392367017207753334241962242828720121898522291274866366264449292921666490239081796854952012088588945666582417835705957533157107313709818367529873793990566968518532730616469860771187142236355145868510130776826506601118130390175232671359537354388766248874176599951877175034047951061011866546569068437854395114529250627842981316599123275023039200799367433657086120483857590214834946634102834187540921974874156115508689981991505600001544273547427567665351991319091488510946454780838611641734670920020844598629110563740667320129761074370368866085928121714133124181990410273065587542212110589197492072985870821241413280481805887009465305104826587943978848759781497301027017560927950858096972727912890411365876293604784334096230615700791917810824569407081077693618425338808128808043313346383849129107368229804015688750964587047942892342381386998914039991399886279348583898013911139482616631103016275203531823998063229310201339191105986534813727717693135659303892029812576243514233254836573969983785745421023712838213799615611730125290301561625452834567564153627706947154153579829894483432512376467858741822434391662211455409878181816736202390209341331836747263911099144674925465451509157777822115856311638413616688588276093734799051266526330329423513739728907632209738602038997775310771378160459010270293296076659533276562575684039020347623054130492389911577846123848790126863575593375492323320372531823147036887895763187148218417398352721220809952989391432677521818313223294961069825450225020509042396462763272616007575815548725069410100424055292395074634868891224644537152301836780653818673629523495227498005400437061668248374027552013043835648928208748391375756356569395696988135320811033091649820676731171761143008391756415931860346826899558137420778458631584543758981924231120615468276071009496711476254201173767586103476235286121300156704424165215513232911065562774692188968632919012132502621270848736152511961782842145967774948863427189315296881683197765223779465254460142909574966340682497281351333758833578388377606449207555035132810971478797632302869037868349910613860393423882430497066916200978142815532332974805596899446141999660433065996406260343992870212531263791572137198431391148183065473652251717871979820243281161169165640411853504523869087260526649986619463405180340350599724860972409306696492282201542982187515289204096314396173177864017565832546993079503880437237827502247271102743508140449206076739011994646756289653630196916180453966936317335640099402823203763310981645640382306786643466394620741925128207678032531680028653998326975267873183528859795102910233004976890748335320997819317740662211638129014798656133909053097105884919407542484956349227550474944332771507420277567138675647374049336646966429424481463674939886274562329574621408501522925476114455319495532254018181585759265491271816471851882048994469507694331688503452318322348616268970991991939720794235435597916423994549997921199934538877031950819896827268975199861794868188671707418413843513915368859577214290820662650027504601219440157572858158045616934448548716098816366666840612733380700314165858874350914815875603022520229747608700685631339939918674014944835650959065461851509570302862172837991552585785904027966417576171572493554478716510246262746535334578084945918809375659921212547926352068572206129506384702764131543397829732373180962018286948363843854856180016157680366573993382085333966166149563492029442050145644513806587154060960301440801090242343159745563979005102698011358789520560407483534539203597483847677286456525317166845983979635358170214001606174602084678029426884264625887676349979822795620185465030941350489734772412323167497671105396685251006526266254102792943813268137104072652215745797752236880130674122494092873524886274410450415432934493520812691004412755831307430886670590285836809843480093881422243265915387092894376681404755467520370091775036454338598183648377812938135020601254883725763296735553533053432901319833274424034306055578729319720282438384541507190707656500449009303665354602762013482862631001216993206052398903747462730449555587761914437046972905222006578440387663089392658538237494391878614368740332191086402744664959507138351056774111174506706360981249661331311421875362126754375259905151145703789858197029529026070946034403775779652419055343874337055998698406632855567347205390818765674888914515724612795827549822376214164039224826673084328663815076875999845649519938279397502740897416120537070804768017613645689652307000478810439903463781396235404316370759102368764844050536797651421917570389075934411289447898315484076230555133970021650048616131692164550235060671600300935685439671474563011563342573632717287699413518971109971177997717134074272762776205495383156151931430284056628516270647707557252550297725293426145998316489343011188497359146196189687814745249053482220802442524865279490671064592100680174628123178311487493984486343895807261335939019055143745799437745159951560965779180575139200045728536602116108658018569234206453832731877228624926826115459913588743656734237505903626597041424322999033556719533054773463205054229129226076689256065040398913642463633529948285990988652252412335287317862041250628286045504750271995687924111258752604928064975680363633638031511851847825329852728798820079495370283785887840337736897262723014924134083689499611046506559721350610314447918330536623915731654883845457215641313341748580529047955760491865156522702126386622960533493008119442241853460998942372187981992809719665244118008452904735295498927707332594175075290006420416779654375908901743200512713338817351222521402864564069159531843886795599271808565357910978436442848472649711296841910691283055212763680313611250318184832465019208555217957864454587222382299392914315538934087284168854872919627169122144190457895031148813145937876402705381554500003669451602841497456961979906325622592999382402230010260591416439491394497245430174015000613788626703441162579935483152828402493542932964049695255366563597408851006814460867488099751030526750584418656852716937262773730639651756078914269398802447980925118044965573819243363453530131617959145414101000509160793561394660711955519857621939085942464188593060032575066361932188200700458098936973030017006855393680975872759624314901314109257637366101136554394735717600538968397230919873005054050881005644209260874971305723505434240694842995700420835636464117785305333164421940684885281635597998344634038348832751553737169028884454601013008515581035765467021308261234799526979771317878428116980197071118831022517919731852080162637688799590018963420260473779537121107160597852772184751456585744700167939654272366868056420580665637736807650403453282553705315556881399350749687440293759983310651987725850240017700932253251650513503742193383107707479442678475699896209649822432304848364415504092405378084975055208980432156898961440217840849522847049552180196870259700878453783445242845321660450913849662035025631793292849442942071162968414553769961849153373940747818662514501256321743863430450580955662463613176585749671259612836884768068125127190920130540774876728160174740970797583257578885838868889846210656133597438386768294021508795442630682692084261761323667637604555561926710559155056193685801635352486123422917330479119305403922909409058159338431407211595031490956300749332846320268956500162088021927290952699596956879926611527145164708411911044105566809508147839342617185458553770757200557021111591162078889235884187003438233368277352694554842694835082203279813846485104974689025066121023744748736165476988305359912716027844576089383195411139081672400157572705830178457880156708339706006637965877356606149709677150696273846203969308982583748620346941295116144509680936350290023459312506444953879259953750911294004406403718253525255318810330399596598353730242607912413346913529974610027552622381250528718268898207842271914126599723603037987356123848376485007147786606037154625860526627343386747041925792015526437061372431929093812958468480155032401603697747813267930979805650072262035510215212234716709643246129242359568416880622290429199515890483665194010341960445278394356067926222444276533014050157195786882687996324624307788121360941285455827878907828533797000938034294367283751005762651857465518998435623607238078035390031607229316690831518005329770974169006704838666552220493895703809228419027028010449677198466361328815016385818916219217424700992610170745142737229661049110647418241175832411157814748926104814400858811880268668410040287600291616087714704936853050725543291924619318535760230247173510191057562564304611409426021986277003667335616764431066544879537328191296234261348234116170517603260199904678242376774576822061931336335759979998989186048089884353342848127624726105124666395256338958963708137243661967607347101233635125023814703233004685796420195782879039028257816706231583576290091332069586625163097876505483934777585466035630501931807963997871017932583758603300155850428328722087149902247512748651914661684116789560018207423497873903271945537368845340502687307219961547762130469512640144425383781487931470068596149431208331323475399926018565341089932276304672154734805622738434249423710486857837715999101575928139769510842460433319672099965843048490157634495406991070861890401149840576373838040344174784524098452009360704960283865093944076313455742476674090469355031246858853915682555826975048207879056288429260624115531140144681673531419685105381136967186640933437830556190474501507915793180506964077093818075031253961084460553944452425629619120373694983076777603678446649501235269220694027292388771136950703866813426536459807331213963551312872129065500032503782983903515008461895606177695030541230797686909404609050595757630127916331799381154072362615696972661967863277413630180114066009177932170287739843908171706397259382497498123614187976499637758079094533747378210120025043311913387870352389514071183621522809047367725622175004616879092962416269047712443579345521117489800815592785359058840073144271143001070578879273726771855671377493215240268917944814459878448867608655106534273503689628380777210920731830823000717161983259872847520307264675937221608165082574899336148603314473822669361209703264141075139441985980992403218983562996842678845869562664754526113725814543621556078400601814185807945338650969219444811909599016017787171396336698916852404677399285153062166207925279683422472189161778758560076491865658549790005189037709577936272128846027681945683452372202193142867468573653090248338068859004919476370352355469513474228106350192360320167061623070401041283023171168718606582319055708356075749742763828257102549658564029409536651806702736291467328973245959101577809533649162596236264841594986673124544654886050159781464507432704080556216011166893350626317393358227950840547029189534657597779523914989377904252335609051632167770618486552249635678685442037359541261525303551912957498537380484938235526727376925530126675488519901758981294111335071793395636146861317671695005633432239216497628786463924254079565039727258313763406656036151780322372499498177658796618700640618261152762705552624710956402609495648149441009539049995075358315511606848637665979283251309473488279501902167212422844241584804527434453487473847922945968150675506351771325061543588635728743991613503215030040292952994403296330552515247137364265887755436074844432068518966753350209304004641114805154348877974407318558397986268808942938900548111686242431641021216145576428272259453891224420489933777598393502587356556939349693706009628592430915211140811526544687989063464095045537902505062317142076428370877387762939082979428338408035401294716527126210140502140885767414069545266243647411092878129807382318266981866289301411572543363286670191326558069361729412868073244294829008131499933676518805537246264865946563249417791612639676270412326141428097799737330114680853576663722641945458717901256895442948680722551171160839884593640857298006145046027644640674376962016719356300250472369786893275073718509906777259392482229083659166621550348768195441638683573252687352641595608616248374834393699257110455273902451449067821602021516601465132759369931853567684945532416327564842978088048291529994510392506624923767055447827204793433798595778987086904042061472768804012044867669776735646782635289116179404605830924562840783483416554268126018322601266856182439247214240766695868934013485099651703591603832311792673218499950098903440457723939292754058885986307135443142297777016404213813633023176089893812271906110335747741126489383407336903548595521817369015116394802062619266289568684265740123786468852923316120532904810166068414880131342589399641810897540292144297695468119050965469450053686703084342823825502830478602635299492665991588220414382488821464065404748336242936935484160432123886625755240301357668588573435841177599353881870071189201425345515094802635145301561605112275993775196066469139766432443841305965125127747564952527682124214641220973561847720782573878997021466989320621181899370482874413397645706055057092589073079322204721890340720054111482067520298937402543572400825032715196056885071384831215352553801306594161777114459052842123646049755096013345449078047052231726146610671728227020204814014946670825615696140809694179340190740349804366822648063192961197314318985314648028435006575122176481917614645559799154039084565650825620047264974443446034455852761555814453998718041672437864538813438593742863723491613476783605423540183637090146839123864612548439855328190084484126841951010270590135869499348150258630619784740104151824387022951481735307146969864715217232175160432413791125583269662663061663536642182236444672874524448730651828468805552009052740039950325894046062239994522717294550834226679301981817044374612993365070149987427161609478532096038114907757573171085933287879982868336028697689910915337738073424896628041189170273884856487038913415738619355708886404730274295798084082967617839153170885145319162623646117923039710753329095082646673544761148180408202247121609426777677208829678608116251269552271214584822531466791727995706415554671911063124003802708839253909943895624388819880171705339788660992182156030547168002790201948561348698951273713049233051143186790183483982372076894995602478295035555868723186855425599800532793260114243418888793209371649750718948600636010198343225263097182249699806712883184545107286217636729341082061375020316393432527480103740378037294814011295929355821005536594761026033871453554791885002480847552805658948286722247657920295494502657693670411074872622998945565375864264146258438788146898324045040693902248457830708202524581843359329616167138539154252664074741822093135573390448945537777548692780296992579555309563717938515533615799995017187260419649937595497128040300386448088137110306788228356058449291795302470059306581704265046079065270479222350495565428651792718706491587044885634534579059185754385038061521715556847108685162881040462315508706826225799152275882102697686684513217591204886441030394471642406442905956086214751665249953515887756291698945821177619120955161782093617046944606990203487612667443924319235967971791681216438148511728500944385971650954921214693821276066734124875021293728656456169264604843153332828022791209684471796329060534591506171987974135565590401603744036062046989473217743406729686276207785030894722251400957476341133184155824540886437830095042066269044919770258854704996187882615875444946301504488150053018630966108670707968496865016672842770680452563167278333481789081331143516173828770109998888666600798854916096180713661370302741497262754923313493619717264045922796184875436390722567288186483399901395731774019025434533420119979630321449639882967259719753569707070986420988083225622719288317230404937080940949783966560858378111732432680746116537890886844443104981716814059236051246165008503431216230029447666251027896264849178194980503560618224610938234233785774443277819388657494274241094103806934326099722682747728097492698625362665111423509400751259123836284339973804739535425802066953081346008282827163267438066689417803122691841124296238988910348787035356593287596550643705924946336032545919775452981641176992299457645420889305278331968390534765320398716097711818092237009931880411366962425338559923775197737129304714501022149419714529437040220457644990445650084453798072440559512928227831262449156948812253956604719272871140251667315907549703029887733339787081114255362847165123488087886619903375159192853682355281025472846791322224935990269875209077233437494866968626077888390605623004747014873748462579237234743313309677698051924822774834750285310174407528192134378907357675790130533850579139561499445731267326448552480265921191392292845676534826513995090430476945735923644136476215654747487705818836467607201573535890249619032766509819011134449829902357701068297284784947065681690143259342818355866321144506025260954470699839140983514353789084487998649381985189994700504160805128218210776789840098145160741640119298892431637428438470054455034595223340208470070471622260941577438482143295995572348939037740276373630083777519719981623600870439783330680596065927392036382816424658051987131936623469859838147718209807718517077053262028399288479926591880673726945995681637975976950575553993795287586266866709900020536917968108262890234583349120463270276413109130556779271740258340301163901915921771537440234926531533391764122823872087314301285908480303812395809790354977129398289258573816467346735776189739719087787354507250301265467555618365860458740995865601736376312424762545323082594595399310337773601392957139897596741087131398300498742497563063189897548806484192746535472279672367152117802301437181340131968706204957413197653735011296472320584815058350256459766544366003509784258180114343986918990222248449017500897522107326848349380597353111344370637103437799835289041049725479521680475020435147518969325315401711311411645539234672172156732647114601464846873237179434928108261610677425231219321080124000422806151522172010050643820792881191013047066330679039447409734651625979545052401922535847754051226862718033388609385653405085174130458218013311110465213883946464741304419025594884062374699406631748115858167180239724605445053359308658942672141675684745688207565964225455108237797642720893027828287795914934320394834991494362787542238857448939919346836654965807541954043134443087419292704835593654584277507657381344692058478363193553209082681456974982199899374995224378620997972791544977852482319359305633561687947151608072205957955860670754391102194743563869587375834558237956584199708807103458482350399224494344632642058293883751652815424216308270664107422180144907099337847111371632150997850728126184244331247132368138768090185738428639169320195950342559736858893175516593059022113902971040187127487783050636137817729217895163591258913282983712288179089202601638092094560220984035704624931496939697854004516516706914125822306813071797368578412077906182756763304826669121477569616483766855808376769191970994107689277492895284730631519974582077936521093238533546678434685322223656966432931763411529347196508417014316692087315867312390794540763458759950704433915574311264024122345519648039216857695854026555835351785904589394767260763715815893476032660545218873892893755932150156644977445526992529964453173440406995453995318947643571938713104307093912476344731537330885157752079383682451163179238705116897491415625880261540029750952295610884244327439761692557394290874654011494866434347102009328314903762849021986693748333490250701347383609364706874920907212495134168591699555094670315417529952024833277998896739538521205712983832328916273295106864465934877831029606372150500783513374710643375860847445121457526777294685454718248054174581885357387644313529377449622449306036194263540149150381748896198187240156791502514902804194550614356099878176331695845631579889285303041662523160707271121551963460680271187747618213266165666147093016967465926929252250592457146092330095955074934749840065751840311039490533206843398267939474784161863460603780261912069048065331085764479611161649779767185946112769403895529110461588870730269289567495188053021406124869746133820514234988037636348308095126432714886697107606051497059953740753947409502456936110032117454103139572764676249726215324838912504613107189361200837130810189466766532685171070394859409276857725606900492704782016708934383393120506563752170281419715878090593863764734029869610941164809256553364020031220634843259109995454364513917557188668809100548643779416391859177422589207158155548290577137586305509016037752290389194184973338430605050037358483919230761861473104256124231446159947253133778611305320277154376069736560233518177154855872842589495284560565371332381412096971952255559556000701363009738184422654269709981384013889372955121921740956420809668686987727363334808775736123203928899626676735814115463253804932277368954498332684450895415787325601240224653334840616382012138355880421327237229686288878041714322832208733132849658991226061148426849636424693127813762242771207911448569738413767243557700594752460598129999326020403300187018692987428101335746220899992853660269010067328864656535049778643956511771456857638301240910075923593032260446417283146832755496695431291842677878638211189755614820650409540853110079430290548899881905347861522070991717446343883096766302686356599256917830361071426084762426907413857031897027206130642903849944370597747661824624062938166163823231847439453176500898577219709649772846194971898528226802677066647639092913511475041773398497606935989409780917015590895914078857604874649979528720564766719724943074525326161517278727766914845355522119929128849274119924183960546880995441471596551024383979791631576997780179395667449394650637221997460533042584671631549781164546657006033328341573925694987126564537083316124143258087624419844707390265917976301712188355669115577785387715316227918338566877640040181597223972013357373875694955157920082767893866217625449372095136013995438755738180308254793009972384025273519665779996227573764096967318353553583196307870650562115210153500746688752875386142234262875148089298830230098680006471072713247314253570714555918948319928923210473245166762895149953292134582395381629639387200452005206136799754994385789255046181304123519066419931232900682182005890517847889280615438456023638833825335810114456680877212390472370478899422251496682913906086932617640179164130994967238208372340503599881691356316586930853891482676786229518600575614730121309473238876327964765721740358560206960514742539050053498378198391060480711964030386759715650965739724373126581310337276386570551708373717083069442944549455138016412429531389438366313081261102022993710097971557124376206886754357349591335919402300807473745660665039953575265010580448434720091471207058231335077974982594478182967309699860422353119041885410693767730563170320764412255262512257595647782069623694518337424301489145516776757398847348415341641865280570027970852490289448433589995437182067705616543836708146017726410419090860460398417582164476170046070099413967357552233846343058235643278426894824362947132370360785761942609704218649847668838061854945832489553426584898010292679055682881143458202791193182509545928372245212578493126257334123571903679735510272686544662712140365312879938508782697463415392888805411679833024980066769190031085404357682566904768133286114246134440443521031714679167229523142764797958990443578492326539030180833720514354899941590270265424840281871194628435811463814787345754595345613594758263202298123148909555346016738907462205587735764796124264931589630953222060902452359221499273280654214550162789292215121904980334208280493862544847809340141799385857195167732160480006639120995339010355834390022412800176545449669834602829591270640528399566848948330032470343666026953231564030001012346201767364152385639629010587737153801543331116793335014049104440907590243456970569191829862546922793963643786251571881776258667414935594821134252872549198408415784668199889558593006029854986810226163625401265586708203976052044263473187696211548941548126594498399725875868902508519598212346009426053111742952293087678433089691295189167539288685918495119041795184801829431738825375881303137222478251057669985410264204841867902944523750404931392933765951991509040714266570767557197312600314281048447429433140897254222368176365881878294124848873289099809931648646418917944484895113135616645084464651105010701200880452561103211076153303167615830571100644262805635412902992128322418976896021215983836945561102153709369843675123834191690336276332665025261623794602810879729677686045125925451453087687424948916299006113406442736810021953946400658266363323782483598301733400774518647376071347927046751370568310999266077296415348786691733239327433987731131675196762697858630534206316764025988667119034155532128752636027804596514616588075761107277008003986403853306603977925345087582860996553733030439123252713308675962047936337734521670597440901744670588793991236340744258243130799525532077136413604289702173311315981280810592932970912162845626178684499847623614003611551877207227494025010237596948962594846207319434150742334438831616783271634503887830763698782898389001015994848939897756745835113132380221604592276644717080017226710558514348703007463894010404429873905931523263718066261106186716370666641184707296879571522412228558353720654622762593369000225497149527573959952014693843078357546398712742273270369494007778889553951281056338934182641120001755162268334940526444227382210987269686175016479317011403156312202001806354220390583499627126554164315239799811424939390511459394506572532214336801480830228886486196284953978517414412233217325268190164472572544783604933347775590879386686121140365747024560015048254299865898535845808373814686385363044560239442147018123851517084259280457882951052366981293551316170797289194892944423915808065240272543743288263702367496463684429767219763846766437838681066113366866557894105025117176187897181803937189076202608738148981785183486759948023270527465353177747701268224122303475541727231268356875111287537347900394083338369924563892353762776641800246993871327544157770076473227445143748955056987831842043678655217010888373450766444688778140011261335294599641253868563252807082047964582046667365977039091870370202151076835876747368246383471496895656783294336740239907193553702345256282836697491914493930226604738260345960121701160438201961149094153893425019760701750686132194466356970199217496785669900495463960654526969884057406746251452849039331455303548508125075082966266531527525981661463626966567744563922441254026423622123724798009448355943783260765155725660660261469961211245624670124509248694424206675895804988953266932988853609122736313835723647149936880259971150032564953481470149874755117456455439803186289669463195995479392632614509786140583542928242325243867874894464868337902816890652943747587686877847579899803610990251274050477160692906175316383723241868487522607542923354474324546861269740901647733975808784310618396847000684936240181086384981366532100050237855529615717298796004521106006437041553531639393862902872925492506848623049068945983558557991419901992791167228320963343113097729016732117811263226287648380892861429052558541967383878711448898446417716168276854142808543298637519911923036356420012867432714042264222877257578922718938941973915911213764476383124471658672771318110957613532870043264745666757735403318530095713376826451304082542638683215294909042078132061500015113008002271876636670719902061647636304028942741650938568389796750570469202476871546966399433312970911086942394085005725841351064851204485668730539798201164019175859509092462929032387055889039323684894590094435793693360386485341935553585776972488597807545147335343434360754347325356749328192514753741969254959815023026517909840337034840180616924879766819282820817174066646170626735300459318301802131054594167840032358755748094299655745356745052239228557789526924445112573484571924725466662792277124951256174781096522524074098272326521099347511445165705412314606367093453652060757568561104925379171912580452665783022055066833173244829227922048654165690516508004437087312598525396882143948784398299639045228308833058820329127931554788463272548388252484896512890695212472302177258985980973678428526553926459243603152359265823019344897876917516389467262341871042219420080260441472910751362580519264886184123276212045555688598241881967143372738996938274777729755835670441162739739231355803179632045582942598123276091493582044362401911669888497951881220357589649376694724193934755363732063671639632442979030129868166852706393944535263268352567551517138423717697275142687588371568398461985319279807724439611264962762740373659576656646447442806089532884244855956894896873584765382391843564434657999190055192616878941396916877667307209313701029556852701922457663335891007520771827345515755373673976902048884400848738214674958342059585093372477271020784005423789100191082698674172044636393977022622990551438392399765719089819116230474307294564648871876701992687492156724323667320717297741206094179361616053306205009767313532715671016372208435293939638418122255234632049609842612316097838885811898812530185597839168310466462503407299254938091880128502528297492387983222399064519712419909387043004691788214271967536169393431352477922891450260435307965726281951448789037311798256501119032483836399019293544923932409361745856430021047302467233223599844755071460602386464280427771521979810196318949108915559649639130995903142670511759860805170268542947952804365209239121833892178167718801716841807116267760366775643531463560431783740835963278070409903164753753629746597671937897335245613377781136790735667988886856890369964841616912702154723597676878917229197674288082628824371048775477014708006326634521888899049861001389933603519059325678436816588236894213425885402653746657639450070841476711729742306577169824831844586848064688268771474303711467168493389613030937049502355666162795025345745087768513178224688188480146713276418776898118465244130660778098031088835615644399889862924206969975400957221886877432241420167521193667296549009683473158824204028493943865174634082934780561228751622435649832335590907164350580387585811157193565659051001990708342959626403741138191990558567484751785630486953526001860675901790996957364692769355230226795868751641594848621694363403699619013014920167969777794550974342788324676037023486086827759891302926073625115296772667828794078016950534487998723385826117428779157230413772883086213428422907658178095468974758656960864468493246255422569187554434795348591721336543182578128607357964774897111002675512703974705362560775400585560587148127116741308995629669891171640806663351597149781510914673644274837009132924397610170669001181330631076971659875227719972767542819809089630503828807589675636963751049119898708942648432300047149950231327136676277811707611286215452908324723113913783488856552430111633960815187939325996761516813395002903761386496675812724113889076648363499780176587717688308419914704842445968757881727881669563621487929255513394222385129056017944984523330613040370979077012064607109822863196207185854184681445983888662659662225403519747892019375971699738207244322867620412607775406266357358572002288523945451346932551821063156768665642282294323640321965057894650344172484044424933536539585428991522390223334855335152924884423249124037673596183558498840023062584377384722148054798512419866761245412027619048981434587493939573274993285137596819051242634931413436961109155048757765805049240803812999334077424558942568944563923332310617789780009314213667412966420050217375557935152554992124993560703682890322615326022539302654600065025597804190608376591824783002682270538436818667779354708427534094322810927786496964242755182672584067717998695854660094943742419682305086400272114225555862286011064360948216894735703755523254643432344635792825762180588549783036872887195304648058123554813159153461899799239550866809028402570841273012171640876326133687262378243799352849373825065064600844092923905602198084140210551151427541171813047777917478266858549334690344500758656741955755017441303525327243352429347941234055913117943363711245653803927458164502985071218533960002685308387857018955444110648467690145426306578375684659245867361703388911086766488706218743252790961778796126670675157704953130295628606405884199211898987098227547054771958407109084478394379310652193574436443888918387915246170496664019537925211106657184967618597846672555046794897295332553601634467143874289826132717065431361020600643728959751223217500689162898641589257313588070018291007999386425966394120323748642837646513460593943467695932079538818262049918182410036761073897442703935658106759235454675454060549105544242054665197359138128404414914462169418933389454691888637706194395685648213323826925569317860134762799548774045697269928365692404661707799236823631066567471127088533794366312304452843614056778157387943303172926577572917731683949967010099004525920400276512408792556625606315324113019638621690063098044632524507524349404203554427206186066388939939457491973162903113528908091228817116051531192552990657203844253534047236931824249015117383721938573657067872604889293424077268889762264641854135936292877289330756906812648393745279588761597977299231055852530173914679244845718577887386092070372362680722007356111015101038117041347081007407865294084719397361028208717016290659121026071504159453580111267346374294016730665712614279088029393035054348765897021063760918163830390850104192380815611748434734545108880937252968146770723952954823421032186896071275636920955562911642663710861800364921696544897783886355694077830402420394001641657874641660426014871932638598532027532492345688187721252506824728973779869325226988697472901477965502895675326944354653353035777048985750325748310406454709092818168945513821947900293279214855169788005892845425893663756137277641717674452929304000160246726901682163569976464792712530088985920497009885427950157934255792948615191483397571352868434696725579580398988959505266997873348801125234701392452470784692518205202003290905642062838356856482299196803942766529988009630103495320734092173100783181745347965751106204352547187401219689697569812293966273140970308981829506745926294768993673277842932579142169922331659314876730872688543824229485307472927107624532050201713302498165545425810979249572659800374187990556839704761386502574738212136959600522671105177557797077977224522516793981201187443124051182745257323304193302668782187078196099493577325840363139270133062309641848069913717784568980556222987514585654973538467951896289631111450359253780840263863462943662112337893206296302372684930996089096769113950892117599596991031016366759483717591879278526845001116835676313613861921501995833693987466899379169206860900419901537026704715113004318308765423101473396276347901859320745898477155302110473385418303218367784531260722073574118009565832087461897142085929986067275631369466684834655306852997079911983328398286532737439403363719750984288979840615393206836033854723971754617009891004989119093221636657225709547802598949620194689229832344321729978940173735268547066051113008231911120589176637624708666959255410747487859043296409404634468082621729125521395668923968708543398238193537406568046110528143139214982649154583819351086426533736711582009496100900299367646609838906890890001855746082222603126702714186994530947792360331179049669321790061983029047480392518445314209213721107194827480152390741400937914027225167569512834980226047540297741768538488581164396224804434062582158990745673242867068882588736753784525751952808885115785630082618151165919129629355605412896867631943203703738888005047420414395909925855412097025245265602415645477310460620885855572195093075917800466443038371043261942814586802266416837638827540863007766379201470559849923015185753126595875260329382342308494837373686456152602020903296020301122305557286669324049237637991922526196406967195829939580094295714774656146651232480960076632639451655747084996788676434988610597942923542134173563461119853911280654694696900345026230679793773752386151117404754236162815164727916864549487285812358190703430299608620645472448609006338684181291368559136109788136543549508766344818040930387041629584822803348706395049386908552238578131261669880718828029313722943074489080391755029383553190503180682132867590399178151334344402695665808797283190136701997488568131058769173594775148141541968598941461388830471376434037113176830814392428552485662518609431876464954176125581206712325575474038780660281160064815203410545743933003389692401618327332127403118322613386714984566610484303306231709305142106538248552826464037194412054728479990729861174879924280601616703964337392238924914050404557275587897280875606237569670214362569678226739600169768865307562294571987198586144728163088462793779828726067351196694852010185028994611310100152548522482634255645058352403471479322126652675925644994134963806158041707411455191430159101263412522913569809255981854317063029507069979159398145024873023185273017811817162697770420446997261568234123510749624573815535134882890581270532257798273878040930862316184680968249330442744666791270455732188726652139372584043091948037635301874470737543945677999384390096802256714174586564503894123195019181957714049974864524898043533066879970660558863030373805436512484160632603283650783052355721010220008982058487842111077612574722151782267385067086441255002248522145230944250275490157284748494682797820455984572647286713719059393805384076005854936107213647855611360771519753808732187893778934496053003281095991737959745726778510561807166275789863905603252697072863756920899003812607532707477059334956194382457189661732342769462276926181616704334797154100416669804311911041117638188324726340753521083817198715799703281239987883320056892043372257464897055929673790094267266779067739350679208817115788004878638976766023789400370227349847998073993727612952307272568791554878399218463520070265896379045142186034364776873770151640221715643789442841989701370934108817467359921176140509002815074308325599046086437534139043789411067398389402004609537178081637455504610630525937759703034587523271595364287402003960626915128742037175868109819453028238551845297125237081596273286118961611009346553822134627812629356715840729860921144776031374258325171499359237587484583030921357181693653773950515797459697952653710147211651263615695484147736832675316007573561909184166879796951929010876103871777571399346098432789626081466897918822156560032680372777435195033764427850813089116323587158720212073656993234943743929568453321916823583467148147070405636970015144795981611827846324150464471504070183378908122973007025555474856454628642969203772875560353397172053565358062221134689164578006961217551307312364608895993544017221642470853251418233183641450785560448110978028630849906270728144414958790377388005691890761906838718558480862620117267169979242591364176233433315708798099481453029902180174635827720115701669737127635861743693278933228824567468441835814270862228693447185018053960715774545493326121462295556060352014252143040634660472492994646323362328995256303092572449967202660308019567204952417098617003543959196339565858266450298464501983895909668834794327817255209754630843243023043103225863823984089894646218552413361224265808291864921219843244785655996125390692513200937992399219275452123187812598090830544771976268303482069504033174503442414950869564016694805366418787234533591999855293998501730636913037540391693487182343927533368129313335482523650379325973319427179274264411094439357859773911439848515964290105270996730353139938595445932620514543651482366208614884225343814234850313729390205149386591751090804840711683867946422775630396849976711008373902542734185395411827932275220368812659377028964445602052484686292311414006638385632471615109360409009256984964373728560947446491650181287738803536337598635263110304723554447475669717571959058650769190648353867709483946401317817933094862725357830779594838863865675093990262593954438527088197954026497479027790349873138266872649046760348054907837750799622268406252513003113708860298361415501631292702854739018638651529876988118971824420148308745417249760662041337458820519815997222334893724571211352621878388379561364168100809322416824769145007487644762996644534047305999177734509807468200494855076921888968301094386274511845829929969245671690446868280691023830654918384888493118406000772180175412701256653621003394301800351637046964815503352939795478784288080800805537687178127095915455939298291900466059563703801373611810825320517568948553397500632477061427817397977853003894007438271216445998181680234337966407203296505482570474883367683727044009199656007705990246717101940322926672189034269354034354332840184349006563894733976918235673481379858911305941069633486475835788661086353871235001775013099398535298212102484621197015018303862620435564654708302433609864134039803563747211974496127722639338398306797157277038431378240587217454545916721944530034260147595464540662076251906917809442476546548588917315031071827332019321026646054568344103143136372955914666486656580404159658449643178006428574270178896004261417634978381046819903527122308735852827006827326697940712665075883135255316406307712380613140489723291445232251177133588337798853474064055264979392286075345585461099044527403275843777032777796442268910738777614799561522721286882851103368390353012891054161511066402616510418581783205648734149418962607481585536979814028576661370569372338942722056282734502369920172343183948312484894576099875199147473693901467749900518572202459415290241753442404162347864192224416489959259621125902447935761472734694345188085007770598189899416465309926946795555684055514327181775598264037738547712846712703644219400873270154913111943614375714859442038406212369024398938746628286762761553875858674970549634898265253637158094918718869556751411967487742230748967394167802513350566756814617668585973047295628889209103754643457492239270356411148474540309759684124740790206892253710056982434673668862518334893061222236585517378893968357689416877586742203681972840908501592725375245636181232835420126667354885812290856668768496320319373230313657627269584189272817201957009349257784399006356338234627810624809363825896380487056351830010316961537996250992048431418691035659968626225370803926389603413193600175375981743267402326300647924074229812759383293173753771642602526322104480700838743559666605268513846034496692670915229171512033564982255036746547567707434899394689099847050999437632758137151192506380609603193397070720644081455226978526802970056017833529292052386347106195495807858628643588474615109139035519991303013845406151968959545215239823643970661591687794278860704130690761145150235012749599919556473409636663530328156396792088955087437801602777187393291460274597162847741053581562454273815400261894035575616707123834819196499638543890095634938414379981370531209860441057310480903352249053713355096287689049778661894621520218468040986281401837259901812859799997000176034417972875794517397169365711071135783286376906213385974214562708894057056497685461884052134268275034091225793522211468671583866801003842811031506705609965151805108262952625612711769635248992557825931621328894394334544382327623917910567993216791712161541272264770552582856618625430371379054081447039550523125506480921373699600243598659044530246524526219008305859282273587426357506183351015043776667972997530065936699427468092472942395229365461270456340993209140926598101593844300405155512927986694217915430073137244041127272776822645919530945698637567330121558848963465810478683709805561704758760988942386630824917606271815612409851207993026816979956934869388962384707174267665758576852003000079863153263624785633909494985793848102147852191755173922246339901516768593968962982743141347084891597381945942293929633370484339490659589477868310067644891824217522183054925855880353138540480363030040937041620231139224960754322744509028202579454023032271549457471812422320205795761709363211324460296890710126613072064828578578762925337198349818590909834568137502266623461354987956841801292021877117066092746533011697618356453105151347279179054232119411924139286358110716458869686874318244166944696544385283473138517465124295254689139996611786742508454215175784609356191755216602114579639554755044777357372828645757901616477391226171655903692931516499676661426242992296468722804863873671754121033026502685459105544789219500130941804217275417067075799592221912263429994428477640064217184546793759033638555278808038130430868098634628932210844146717840977601665348828366712749037530926630385036213901111458843317267060012913666711585013139184667279270885378731124228416379554845063080433713487213409578372249736285878587431391793358643322893165103727655629183348598949333155112727095824132464084203792679334830756383574376667689918080956213477255202192361786354175726391810126432740799200148001071212286203043478268412020235341207700910240039510228348639112277327696715250934121327792262211884090644079804039774616282662256034039961125322937536988564097815653382740399377133679748058619967219157373256767870406157696656849943394536075785348020859823073216279908818728491515358462336487724694299496584576450550728264547821108481466810860464221585087921098180887313641719841382479986353556105733301571281870631640729877555061916246344703890141008261400301042651079855646096417068402362212093831085786704239077843702892888226741978523141382166224514154788123687333760905079566714833430418439095301139636547186836293901428067042716557531809946330526042237099204969022411524202743360099194031456404554642579895229535457554797429481149877028424656209702297077460429099121856969399478159299405135341585275578660309449823461091293056586025095922723716302491520138458155252946430342777062781713021794542357960722765800821227578032628707313518839446602818657307663842095812507832953704408156212991137864596951949069930743089452809021529697501564679877933976916236183590050902762964264334932054152462399641909845048091685423928149512411202238278147468932182503942417610051969863455627652827613874654106505926618186816265279835786605032583728698629373085391680453230347649644945783215753200838480341437362817834506889489464422085214450093258806125663858116983559159388532186212997731507773507185270144483723616871965768670884399399064024726739408824967054416033735869412505081581904726161902333145726849454602266646137797165887126148842339592931174160987636517543451766742365771926283886970637544161678658992959400958344542792276415150305140570490279644672032947607916263195039931455353104310603997822729213002694492849432350256654729608900698331675455011644788307305819687387648513914626721058815583412569648164838626687591646601976977534166815613336775724388091074386150404497490431998341307620691504552294232483365114243656883778543508897301616073880230635611878823226000961543278624543045827344030635188506075320484512176549582254881526186962129709146378665037051533723911815687366634211074106328674997490225611153141184929499557113784337831159434512487380149092523321596773684365128368258277532492253366769847730560105952788726184396275438690315642301250539504146898058779903528645345171568506661563037605967967893468721900931876387187512069706579210100784162328146154074802017447368555744300904675466290092520872214765428438811268283249597692999159204254450874174132946662177005603094959582259933862953530741612349921984196428295866897612111803931264500834853470556059691285604017843562071753243238757900647659264898686775389715905555913081787475992933153991959924917283275803715451416630414540588335099647459614528221381360499740495969889056893162450062484489128329303974858525258771117145442501139681907640647892933813998041119146213079176867195564100213158779175993408929304267036193595032366545187968449345193368302515438161694750038087138976805877016426553195110075773287282356882298023302616369496531879119744508338611056367802658294468759197502666190598998773902090577778186454017600476324750831529344082471242520145522657038552531414963493406829791107812760819471685597654829289581312606996427323945761956902664331352678910884387606692660405226273171280239220587187703136699443628238816710002023933150171166439782164547511284679647992074664571394320193608091996098863545618598984692989229669720902420046056748188307562763358392832654018133955675152902734938883410679051264770126085007966811661524671858692693174167959152125737704058515389871248235605632814135719562712115917527156568352262388685580290250530601928268479914134091813115666885848475928837823256549877654693487022378404467719702498704029879953255156070897918638272211592399190836550776564843763482593642535317911497459694893700588023126569107449565629213852469395544870749569880706434490897920954051767280298540221536084685565046924818283066285913368956758266039134011922793524072261227643950036552708559681037368930367285277569407693824374658872359578134580394931776665095061791642650998864974568699772643137783989891284447345277899204910360422749701754050430352344367825359366003528345717985847398984031426910289327530690020723930485800010978834955949294836122574533555696463885131143436193710463808225028820860403692522389241691249321306545416342422318923012921783325042569527196357905497981606056517097290757022645173530282865401123287674373038136652749753995394095602405283673383763437536724826474773772446701289387683867600153393525266388015916391555055552923407777255565140050707509339303501187136059699881126052276678234779791200377406910019744897918193721563433740966593766930804474222949770722041147821272928553384041692597810757563167384810988403031727729923381648526642191007327873148493407498921295689062103729176130066527062927354132325045300878391186994372268665714152067053991113295278091143291144854479541836218182913312346617079944713830944386142420514870339821924029824615700526270054283261010143567367189884164378766316432061364204985699168070508432295594439501611181522185827086823800281428616254642665103510762428723516190308366255766015206739872349567344910103982394696770375762955540817591581361585713612950244599814659316850188384570013855070230765762917447700096064659450836395418714113846659915669450394070940826098160509880805810127070897971247228113561834968248088245964669173756022643228148784080403946756574770759088210101867949769821465990132944346582758067892116345729634325009970348885646395102067934234326736620207385917113216050107549500246331371381734181467944553487060343982334924978716052697100109009661983366249086752787018491372434599444383617888885533372354896870740297665166416923856315183804719094051067323667446899839361584869188255414128794278960098308334789124708405864349919989005330534595121143158191185303944728422781730902542791437561517487259851097749695360673801990471699367388383794919039120850714931850499582671656412403438278328557395432704469431170482566048174801556407369163260574496509075892074084954025976105033225650637161998842506933358576663674174740323116780452123956939829303453198327126497662777090434376350177318388062687439607522197522080743399752279614888092842420694392724975766416028849960988789791301420334371382201618696843759243096961307182270222779372912146072812671703538274226375384255227327439387189009785113402380102913696468827203728915765927595476306408145580448927155888381463893922019678195184982271066059607321768911792730437528027645591412836271603932991821150925007530223064163340098270048558918840474458015462186631073693916258314963398088137044229718908526296357999615521924049049108821080811483061881315468128363089677206332679405068701693248209783783660681792999491950937349937363065090402608774368083322816514907410351498676440227452516080813369866193727299161238918247115747448879860414983035108023547683866282712817452720462749115793649962985319571286713631688760871803594592358075428368305407240971250077121254513404127661214365577896823081708564980429334133836878945330923246022406913974697122850045753588906166735225806388113096902391776243022262727928968842520690670784333218626895091332046687945010261561900303748371913600779202502157630087889171781211691694708816308915168744822490345273837542363503311515911359156294341633801447384989102912124418900188718986347822626383950324460823280557378126217523301174962980607281023770311804444149202732152561987090071966027610141139537353589420857738540173690291959391951716473046107441009079119610106644671898102253769526586232360489781120654207807837857451807271515922298904210868930696171362715049432057710779689744839875846917298995554539322412780329826640402985633407162813569566255422491946486439497437879772537534520377708829966828370795609579155256874309115568594324119611162757007343563072050501604506085531058888822912272439326919919439242541086100103106212564865204012307197331000300999570645839834448414003160520559703401801670283345097999518265528704308176491462496816733752899928680833774662096902998088809008334199765376847184170774300387074234986130369433181368425768954016901868276274001523208766337450265833679336531839649762600608777992947303463455077200991590037315335444756455416294432415664073741727513205266467374114557864995000326050438393254458902659184467306909946207565945913363066985795772830562570790596743884047831716995481724397791042569732072199462144126925339202395809448066608440839376340732293407136208716692402334853975417336929936957204794877111133169734891881897640439169498661455868791365139100303975039469449733492839954006631437492204508788751486024354195395357810282638246315775216155320672643481607747264035173185616721743204049488135363102478519891701462999367835059304908667567307194994763940158045793973779407023974274248673182447174360612041424846698340552761064186450532642180989944757147983534481436218983361447455578921944561143809424860606371483743497190694087131699741310335405391302653898961018738740142236342598559105605662746476107534650878124523646380090192005824783928953170854456195174851118848853066102021728638930824706982348011418075760694650360913553678995224201872476843794051206902340078643262205850246254183882026524429066856461514589459946963349668888333679244473426234808281174789589643696246285134971445902962737099788691839256670985256728952639727132963633782728507721394471914555389284709309475773023564681440753752746537157034037994394881246766043018697562287269058312023403116097157662127747237998637244000001902642290848562131794181763169414597876326888091277520593107139279139802299273186317538091357304505771248190484108877725609740012319563839218668344821864560269428115788711523099539483511458335384101862563709461437644484926869438688778941421143403413961993106867520449914397573986433538386711885634487715752916194215617453832108612757384708563228958350506549370777569977717727478082732442898513387123334334930234964072043217961503235982340021082714246710404642952016421996562081829232019897919830649107352833142594049666056607092290936396391775509663202657527538526552504895416590769110784199933547652137863910468535354311220885869974603680768020085117967327306432604180691468952696739094918888517892437779692707161260744714479816098093364554854707315170180426430914456341844467459823103067279540946402526092398499884761698614508758206205475979446676429170897966718231484477714071934083579603857651514312497715755048169356510724402858333149388488275370377002571455899136989773382558364925145750688397242701046947506377079607793274800855614866166481745392921273557565094724373363893201836858949131715523241357198925421500496678998690069375641408936169397312528551102560763491278988667598575629154325215637444640509133525242629941680350774873849353283098114396538118581630688786736441502288143579472827401185863651643089122425000267360455522157376031884222451535879974789716347301568089172854165387673681250728076798938028610256576484119318885233614158657139360732681564866906566231143444886286988171426560135269103713248287396463804094049198209567380293756174827862862044980196666149809830858694391807983737194240267204911756628354180555267882241891482499702499948425702236977616777899519470041375203202393838258295897169072360729162908812859035172361384697976219115432785300084186680042978496267621672333739991877504812793270146818654668514948278386492891898793945590905596608595184710224613787268724861265026135170492429184447158372473022247688996160686119800437911450896190467511487638372397505170128908182146091850931637386591831597760214106570682363464017950063865952648713739880652000969650488872651862742585500320857917748572889748580512905493840089684922059794814962534276526044069772929494257631746114315075306318786126993810032527552863667075415384186538886409595666164654226674173445326802053503409888721640685556164216101513560483930004937749611417683147062554962564603761369954949582910326124955950208335250636864167961149070451544852042721186639484137914958302740262278588081163092798315313865705527236334804402276920453420845465359688423637011045464988976567283207187923418885941465965160467100902023456004834009421424840960681241892503349909532978143878383849957115412934010468230436564096263477893147611989797976979513211334659030728723489658190212447941852611195262120670749245108949474358637652954758403259446693481910452972364750916649821885068563977752385419999190772643983612878474445702023175919538341783855415936386930130877965487133951607996790662042194937706605382373529952359010273209162662826740151526553865840784495953508369495160303176039629586768178387744541144887551454566479475239984932322781196642625345217807975450942856166847628617311323998859952741999039686971808235898781689256090568740905010872240314793171638929987717743272356555310324418665287066410481800144953228654122632480722217685206051260146236192819345025368485369504192798646198142226216348218848345216977540304090327573338779064052706521142592483756680692585098789027974263537571532557566971323886625068910415583075464548095588648739410769807464337981260608284530208623868675310566521217202459377246776894302315674528935752412076074601274826422818493470981969625637912214778496187045123028756746119138534310681374515289463444495656377709269150870094162658549538264737913286817217299405539928294202701997824869933649358069318506601443604453083940226403380327737258374217208982337290377026853844601990087437336108739825604599055162019281595247573650030621902476033854241082592822437401216756286456586622000841145764318861192791299778362518563882116177806923182946563460517197090321828169424737337132860655225215793455861561793346132962724342400123472210917908933678793758439070728642939876154802433582387669412975742229297020177186641312601214723907167354723400909944661939092554598264838961311843421146828570860250318938379466020665503863414423402227044721679957773319701519156091789421697296719932188807469071975382133104188433472213859370952491554415256318556838042240872535366152757543436528210827487999096164050879023084608124041041448373509579337531033720549096847783480882222194284233276795273531790240784257469418353678645297016686362233470068369418693511250881668847290940912900273369402179041448141711152617017805748481065553754060453598325343512556948999673886159974878007374442272072760573889577775585138915748924154341848890144865978278510991558906007074264664871921442544069130979236971250295851693700609527865749647970920805855859407243679852444906866398795179326623932845647734050251251014380965259676371750064299604471838005292299551380757720683001277885873374246850742780843171037306207896185992247601185020422253100072631046047896733589687610455754887032893718898247712429592094940577089256832888854100507564894617082057884063893992112168458460029327764305392200420350878535568435103432923117286424923386355686996165346206672243882321108686890007041017379595080490564410663115715152828387712495546840693733852979127361525678381753732670380152699415863263299835029195449380852969083767170295523595115013350361808294688640462394309945698152683111419559344938434926300264129158952986036051081271822278702779496955161873535799313165915221936421170918737520036078746469690340979568157422791410583062208429529330228020602192541434054018912075228483177877514324069277329738553662341773284529750965184423575635587145832834631088412080904208089905124256310115141728753382541687703537079534380482162522372760684974097530830367583585735806123293273521281750045048848923197036037689198223635761743746774930703200571065657055220058347088314484050279016471060422577329296424799332841469740805238907953160245065544211709684167718987519849184617001904296889662517037392333500132344548800425211229603104657771760505163026759194016944275660857139554692162266021126452930107271669517778619375073305854535040364435861399724138936292454754851708732386422609696463401193669630457689515895006890125932112747402163837580290518026365429429059486267909073406808244502283539619712030215277687228180058254087267126425647752418034333652038916998205249267290185746138033812811415917202245255150658034576553642519024721526787027637115640877280503290411633819315617122788793271021464087361998349514179706325435549994514849469858350973883119836988955269981905203214808565364498105870365719517131534015876388557435319623148665137468263069561050473870397611076265673974100683971226474126452721113833314357500972983940772540054186183873398445596678919388657323423017240750725480306789371693192913348547507708158096541215718728072235748407531182331441490692378590060768657147942714982240405925871077427950148881592556301154182264104982346538354132700280336838765183311660184414053413427318851921937962253345102232977337983951307342792127677039515189510170426530372672999933395995213042267688502064295474489273879962422058156654276582716953200489168625432613659917961693503078863762343370712001851507673923717627143754495361996099786774526707651781705501017076284692685310623652431603779993437672589583546581999451709972949024786373939880347192219855277731882416087613598842707473285392360347687548367371688619434311632273663305054487184186370015498973959248131888470414143764019394744712598024882430530523000375294147542230275362384686769922146531931999220351345317489540150898795823068804620922715695443602801910378203325628443289981646225780981250918488952561226703049242096973652196353626056886304212537464412284472943265529030399321888118434469899988213015238410224974735672923844543823558277931699183523635323953110491378793244508415117331304562681434886890578564814467261220089293680791457826674463951385389211132854661729636746436029567973267160085232929296146509383580517758609353137708530665338728692444283766685851168128804222202065688802214106333646536114747449905922599196353983319860887278941924040248033266745354716724158619743237734656081498616654574996455664833123735915005312249829543560229482654569862201216551187510445629976694994813979197555648348942978277495637670778995048546223973999387075198561499648007909085581327412201098520193235943148459843311685153181726166362686703096552869749149992027181665662015427782652476632931600177216081798781512021926286011193220762266598324462138148046081575720051497099591359299414582322157586303982360340161626080706362852791213214444035892756599853990076199046049385980428137086400145103675815410969463990256802058669060133201769288542173832521189855207582636516017866046170711169238116470770044164538070365809923298803422010189960894064419572685051353396042269547710233528009092797792439346627006161764087997479717538567478360815488785069244684331174513595808052056205311408095194842320357963164432687444912959202104215890911436614882299227395788176237306268289380092896618827422041443877385348750199083861754729681234245839260073317195452245206313056827437517605063682606321417091285686461785370357011416903721975392814619985407512921011476192528405139009810721993375263070215769199848117749747776289929469263500306171221899711670691280293040398019413125017250545628686832475747164650335503145957567035480495673895620715609920038932890136222011663631693810675903748153470178025576988584545972010058238189053485703250417511600181150296832999374810157340838751469649204437920831551559203826765278071746411240377461245245867026961857697986251207628036816642583504590819454614457793501892163120592739413365618952295141158314088488937480873121107444862991900160646535344823994661421626105573328428817382184424599617524407530362060147767143508038001363085516824928063228317310134326806229882401066299337962157077401207493701027601977641020011417381634501618123334230355931962259717835785880853724290311834495051656799696255785879544810725249488156602136284657076571110760222340276703399669553110147693095299887011651800675826283619891825165741268382542868662438511505600819356445141369439121109504675152705042743329232677271720099795255433948456218389601624118951515614150638114799354997341355439400030470761574467893978611335602989745354771965604923263839569703797862190999999815502609764476537969687884473086636220592382046745713276427640808544052135039787595052277546889948392514419098787591093851318708112731961655696697418072018538555993447709090613164237963996233714333907826022331785773820898949717178412251587145230709066117880482230380368151684654658265102188314419742645159327578925956778214985274120615564982433235964723906356548906955552700011725697312729737480029118766380237201851516108860059899914606964439460289549355932527449110300329814733603891995711530196295968702193428718013019024493721771736328885711773763545842777740906595978447468720890297552966574493791377179656207747356466302613508926459676069755706937594521626710545973588350812328410345202249481275998474557217298063954805551094839555312163087652075283528831021219673155064686263558409370213363844269644549962717566117962086802207803095841872762372855173380853251690261621349754074638668072427754078850651510140843252594699137935800126337068243197135877449868852956994013753245151028590429160573660147381730840277365955382538176610522777767135760024323740242723671418639609558481371549424832708033088814171567223740291618403060338091503850482534226777456841557030091587675822885764043919063915373466582317069027314057634011967996001482618691668732588555986972284893443606933652696075491135515911594424946429014625435726121797185699864240576140677106989191733954611303048543669697667192073059009064913068898026535829089351631715914666763745892517382397897170807095830195388926273247173835405021488829772248100160125645075046634649889500672184948514829422312770519314653335251796378585526809051095438545163184957076766643827696736739412793181684264719398745082352608888803441636255446679942644135986788400851680108382671371405791941254354700498936721477415699329167285809435001641029251588724132294981959077022938726776065831350164707986469797880693116344433902814173166686509158487046624626820918162776805727225769867165970090384246937522072207950336641431324285776991543011957944273449744394167952095430581553970183426869913429884552936719222106610042876608715793296197931739457481574968143700537491926001063977703914776235400519539678010352942567700450146252098530024578107353269067911649615312632305014784511073758009585403615259572107132477812527599121110501901536487534731188626861908779205921085707827249003608017757918120620903060320091592089652090475928678030464922470197686551538150730347432019686550197582837529469652909535115604944475022343388779560918960118005946581380637451469317234810009813949991953505678779219053117989645287016171968544602030723105075707331247731479736062158626246342598410855986025554935993566199027768648382025035330879134389687908124012958298282822521209625251295864679524463281111852287282235549583092535481798789852196890862960362971832301976643519292356141626673901621553195679944348554361642966376077605463097458819663375985525883159573117490224090659857387685572328171203274691449042694786547789858009515361675403616595991160595182477724536011785205937383685548911726530645352832010011290343101503456768984546044785704463118130525545396680240030598824762578866993311517393137699414289070190624158194271057633929267508400045768262307641069390824770806914905053781628823619625433176888941620287447252549181241212195914335746747983441369779100507436429060832066924361311868393675312146448488707520254955971233777981536516732786873006392726959081593724109958786990771556808460724082452644534302661024890052534056215220061053214420285315678615267218662912934902538949445703586291732908283049190137893872194262211986539595058800365002197082680376102469708361384627355771811433928772048087009634132133667794369935105732651830725460465933344644058981663681798026927489317411169195036446350952007742218842273736038513911238071080618250021194770609037359808761480274141447564696420704814922379186465461915911399912273104168360059960528102475407735988096944518636109059741630144220572187787100534226172366402769488192915858653119383688574065442004033295070348443071064035270979781115774938574734449146467230879935013104473478861815435396605972106378709170417303206255632151187367833000177519766009630195345995838679100217637901266083282705047732505389886604173580965571406880204863402252998851129287860837904804089146014169658843043257919037684656265168109061810584586392716451161837321481244011765694304173849759938310315767731784172046413490595844603369434994527630175679913095965422156631630850472965818811209860771918231712473198529171901019873099827827449589158544449137064879627803690846795447279100210359908937609515913691482170057122170834906085596193148199659554559665574678366756982605153789809583474180943595517181051660234018152677573743079678191058138825769843442051609418887011688830769912572967029839322846079172767133372206168637751085703641334344898966281071702574955408047559951020810870298701829217507388638905574218558099205584864432476166532513571642982900157746341087567333852691472703338359507095850353099605797054022266583959595490001090423320812300062457702118348585403070948581228809633622069685780755517834699936587385809932492914057776874186518597819104265560338302386942027275316365917339771610568651256910384298838897350477664424563225540510076474384860543045416708198269254844003300573138620934119466840704190656512325360184641237540559153552873329786388006639836392504559583500009356997437162328901853433560470310829920626102977049259342186051876059714514464451716071534088463806472815961088332047297771553466010044707985699395169418404225818342960429539216337209967800772240215478430845354097328500501984339747140900800025068175750459174028625342255506367308795324044961313104661484592679758658091447301363190747776700006229992150017274723285379619940381984407016763293899644045394016765730627993578015988907088780784026943142742453647029266907971494880926347240317500823422978415803795758797095674393820978914798172856976922302018560616198064471181313835533780809216762735638025020964777849514841617852073335766070377425920131139248895874562766435789802729333687798856815803017227374642222816375935583075351407731676389206054508411025219384213532310500851517835453487545367487790328841675935016265798571437805963285507851098969507225359613440671179131563282406411948640026711247749692617722306552013157293282113878048739213156769001239713782043921134084662155213512395390552195870234271546695059204174377830354268805312658862881279925235475140019708459256862733808672749911955335673764807968740251238485284615671540004535948168903927260596204219786289361086099140785911386344090066713828445011086388212083765732699173868473262145102763691864218222579169151284640897150217377539902823112682540149060125737072747040576773015422823147045311462315753638898508376928479635715412119836081540673898166301249837365234114034630133980963538738716879208651196673467129320145115636974234842173317560044685437514704180546978984177095226651105849077755139483906467181043870624427266064221144220872065836718127705750784024195652599319047802527682947616633834650230206903278706068737988801866125325314818695197930883067690056182462164097752565212129310113575645523654324380038653393328671792090467125884244229485822372355695421509863136711245023871809798508922600311724020469910276557525525584491782298651700249572034203307505719348178143458919217190641566130536234253290952780541511645667723375115566460299616361717317637473792687881672939197224044912915465711522529521263066955955849328898161531442572713546084815149088295840638899467473200560918534335631707773933964698369369430685560493523963691385792740059107181654428981368404332774496279907012807181380641408709621906735421627562682145872693407276662447594296655255249462147145305751866891961466159171159858281730523344681517899323619230388848842283136539995469222107448018066019261814367924161715418051905282089734331069181443153628510253708457969650597814689189331506565533715076445918793224793331575637179039450797770542641450617289852355227093449112935177258812749244951750724835120625943067199652490218484481219766881484620491389934476470264374060898950888878968471327720110408492271474268548125336079431066299198894833331051326982716367655037745227029680115763257621431842635465513880685045624996734175008075470221291627710952782657675198011820476268869729305033606121003960690546083436505067133589572869669300205204522288421137766679207473864467329958120350096688371287892429932179544291185939614215482033662431532938622423340718154598750902980288076648966190925269612922346929165005966272669104427933463556577610571217160902271436632955122960654849538256708271574162953999267449334818277971064483949542531673272635382594176390617697473977590344335966822812210695003738023489708926775908989686644204151345686259137178302111226584534928158274563308467981631284364229791775085302004877164364932455435180477644150680247564106808806818658033906336676268890094326397216219178202012684150273508486502512572919950571586973701062156131296780746339664910753268941590456908664475243456607548742037667207057920496610555441005171726734921993341748126709280080503786231879223835655017405542952230675406148396688076947231565903090327389724647989126400515663539897341802225582108867545302055209759385848716187656306693797177391473716046339589121609859056135250439755438177156650230683707224380611495352433333534025055181622677240228275313103994919071774097584100532701337652007271232870252957221546243105978367231539066210277270306775081191996777167824691777960518840778755476232523288832871214271632435733427866739516262391585009272821391646892860304177013674221506441709566525740811873907717722091871061783904032787231717809449427745562805123648545173190434686444591558455858394701382073134340490059416330142518723697071777579138594060810848587977431497826448028049917494198283996396139360753983292473315866159046908003004370826013720819694471777500437270499586603674532732902396880701545543766746125943739508834039061242079139989315328260108850870139121606711184217094421646697510701163109989078387634877620278801371010579941986459506292792325104670348935802658053599201032957475408070799688251491511374822262321255959253619734537488835196022163272759886485333439059120350817207477633285418883569779486610346402530668262352245989541417818401530690028801075990249805902423612346328764491732237677532343226590664128472503876486164297338437489742427106970761007395447238721182193208499509526093461488756038040975037714568134725139254988579282645852971574035104984511922134279686569610772288924583549247762196538287326605584570274251045414794275554965054809989991891442517064932348740530972634501691045509680501406212763537636994676427412638316164228857287869354531385620172890344420502997986322719403864583633853170678474707379778686320951601634578114997688212798601398723651713395275956177066615379372983690510398212800913730388365677273285425095851204731698675467017147668128106538164820781221689476044432176651180847199577937178412000598984800027627315250771765974047424806583270326748623418379246352953905499402846255595923327610345632649883475714998218361860924470082450406887701276363918346531244719635147835348624320155583676423166537213455568957395417904604959591237957851401609987502839777662549259529678914571100579728625583971535195076720997508670429401342392056373216892142805686163624183334210126382342979348500563602562067102895226959917852255512848073751770600223625504938711934691355457574358028083391341836011617685514182925017405465889531314942009580233565966758349101626005634620909705831747671518324928616864456294880721111921638796047852507296141379697228398287073352620967124014033433858095496886105576781584972051565121404772805283069447963658910778490467577437319641819509590452819028065743395034208979458082801547485386773693491205624058481453583519365061847539407366030046843435202117589769744268798778065636904202806468927027517678903855615420840015204662559865344759236548062955436859601392710340625683291693448499934142858215625378273235485444811713749836569430443982005623910342638888341539570061940825059102573541943597707289058465978320687391568072209708738624612494495087212294644339771996098921085177113887151995017893508293878754523183499765859805792583778037594444115643673684858146439014148180446791140091534852576815866723267328474607733011376681336991569228527706192427978481041434780462876828495739093560510972863288375288608860638430940726390814673614149203804923879659784319459410458813189814188460653552891844295733034568106350247532765078886745555270862570372639401951700116551607133911903659938798964278617851224013382605281246733972098430532854118990620459098602771631684916240064657606804700076008943509467669455721383210538093376165497083956595562802643227852782177146967310080601685113709792657744909267733279285465115314606190037834448325076647177113574979997168223732143505674816313236622530137683427290864371960337969302373806281623236163367639027585752811401109724766095880266361904419630434341645711851113714828348451771372021633854930910912490989389028224998533128736974131811609160037629209271675586054529030774800189102056125641108483735197176896712830868275019928627083223215131565445621256073693469530801684395352177910943551869404137664344790608975129316793723241397168989025271847689285485571732770209168891789748906665018145243924698254915868035536224661014906055720055377078516899114343628784438288115991528176566222005209025380828449015536602988253452832644071883348906148137978904256107062796372969557087289560336366286807622851246496308629203527867412994013970424420797632745710076963990106256316947317481400752651098317751430910739152640727637385233666743508229919730248394068159522216096824598367961924846945446579241062409811671188976496374641712562785567328219168312938964607640540439058316537831623313394729160726693233605550917750630700461348701394375817469341497218774320569980885446317807280664944381729042930623926754099439818664603374067954466765108961213171475920773257675283908798561602347339831673422400283148366411675116708098524547714043143077328850602960001363785310622718522049793687977242858077967759532533350628731960937371600525164072016732010015510825572784136846908458954706622276644605608753638682872053674052901595370605631985490207817770775859165326240097516331946628324806924589654836351970044049027414639075270658802870812985658746889876907441956434018924719069795727263629163161153668947217727012553600180200759916577982615800520448952159241746177126580337818425305043780092962896297858596669345834741809804430269346941816972911297563888602029353291737445263466994592453571918035032892628749797617314922612718249899452732540295557463190338595646342859090497686203251575537660147407191186687508340548159029015593618919560656681167385482045645187929635456796289830717742000706202656977971717250082367967884889220129528846191810546210063445356555588302880776006772686498587619559234276061326159699007374867611293218463244415354040212321693036984638475005652609623509827060034170977641126261522027479450214299658551002490234346628316238790037633817834506289543865624053568741959374381628741945112395181223979372833420889778447685165783464360194194043321865480596624994358160899715501980785157585441196553879287049360106250508103495585494040263007780234202968386313031658048158263206400353378219436117954420270943351117096235814218655650247183729458286534463067483201889300708906829456427870131259961092000899101912812309949342650891964014908163566564385375882964753485851445408933193427451434092437574392669365579862279663714864506069877189029862748683476733173579126993706108050896813993468232294785461795804262019756866681558594669560759699520784247860478422234538313730686437576590295802029692080185020990991949636476104390558541311426144843130427518086754466551470033831076076668146298882653794101978840613597384554745325614692449478732248896134254385253139555447722614519413291857389601110648146909018283620121140035692183606500974978345444898547383350024507916116647335589986044620754435359649864123300714228006879752456926695877368471121747088792747886978939509066970392130257398942453908335870033073447815155234108315609445206243208975524055316359638651507751784224566440807428769336009537605376518171706281811492191627941169435268759005475345891902416740887491288939634085947822320511683784253441852073168625078236716452015281364726374929611147736683059177633468102785752419687301795065501904280979947137338333921401721043714660720266787264673084794312450406597230163364324046378175032522117712906600334851514137856275019357271352924116312923047682714287427297293255398003130472707703936312704000709382034235542939838736263350391694885053044115468989558253898247524137787292072975568066139425405037350088587483089211454417869080833944424878179584519326949925224382071187670652265621441633803725820544293630243870286712985648299287076961779382077109551199582974869370978183252514403521483308261779195769157543090450478097959268018495798303556944756808935391012183427496228638211406524508111640125050609694346252489331502857570996915582013306720841113042222113746143552699923922956973465667439145624127731806926383023591798025363472392344384879168265426269753378872170974284191136682540698852560737096864317346822718718499687245170696377034139165079697562719262955320666199428339776552529155675919562397540408762361293213574075563778640282730153658754524380074638339371007992714676340590634133194505306624670152259319396965607247130600204221868125630060547772501745546265678936893866029521272041283317634915999204178795699877894942070699061089753691478724681081947946096483985972086492062553220002196595490491761188302139962416164617771292487838420402967602431116861700028233455555264616344856814866846789392064318235180307543212522181423995068022365415207688361667154972779855719631050355239437383232981498301725210885495592672010258104571885065790410275593060512241898607829025070120773377600117081034121361197439833119623787546548493252652291647701758450036305172717938307544646977840478379254123240502882491667871566986361696331854946459592019924217357434634472774714067126313413361539050532752330641220687464462302918621693523001775766647849925454305918565593553235039368177085751192582280888655854167091692006853386027897359851780864393883353352604429990787619041049205060646720472890454533220447188495648766031420846850856104814978039816809340234985209298970097188782075660679351495209876659319980483345949014513679377588997657282408145920180258721224444451417902154116018306637035327412156252556465037505094798864548796950746678784415848447829991289413971929854818008318595782977782405094157096721219792933430525281601301211932386158270790238722178365048380354928583674400098714483380808743753172879183421395525409971122462410740592724195195074075436790766392206630746714944935252909254170583496194016605393669418114433915004921520837776384828332236400632418161282598619069584773789593143163035022837258210016522219073621981152035495463103716231819778997913226991903551546576893473333940846284555075372627529380625254431427866443871358448222977359855160047452832915617014140787317453164562707576119092288203946704879234121571537627317067108822998943693830631554902752217419513309228325083627883478748048751093643723131801608855109557944868011820614576210744673333641416852031588128973298380831999355808888734824052869068724239451450053817966563488194386744402759001612100604276633640131074759949856908114770339409611852453003024904029777242470182565731833433015325038625953496030234886925502867911272467753934815661284935438938616260335149415728988175189850998079538926572991310822948952951739049261934662336506836136917890678530718556460193741497723904971130594976601416444524299402639456697768292887908389277358099707496320118051877006696307938014783852898846939267560987519909753288267830366102639912516817670489607203436884609903556392814921821913982745944080942967036193148846640035675844074564846091035367492554876892408123866611190833126565838617830730057459840472525122611881076975124097197098544330494706780640244945873569526608072857752452774154204893863053935405094159565350906784505797290692063026626637512239738537842360877304088892639599551193683214728677670791537494559996000691152866389763806517650647514977502467413068665783475737171493672694408681992305808069019789896140432560282696070960285948358768281052822144259975725195313512321910632904117787163424518164501339478676418987335956363693059342420831798071921206205498836841876346734210284322106241852150877930254496217097429398574876632612099485261545895921856773765425681838152723990994056150396283747731759466330742905444766730716590059273776598936855777714772872971344832465289005354307590315988341993813152442925710248061807946143305514467691362264908470354916847034757499305411493060947317911258363023180731836527135123298320582871317729340041187742369005388402438408365851099960298424926713876675773964434550679973644888743234113996455930925111019535193844991282932632921106129933629139956042529740627731149038841432404745962841006563560055491020043249130203744868822326076232622101170953702451006355926631119706884120760016598886710487373215533370138383933871968786411538133451330118740523614875680202007801147419791227305109510767991574185419364367993580413557421459668337862452203566198193179932587327058220227651117418751602375156163146533370732494347168062594779100397950336195535950586314952953855299129860435794307077398476720092269900002839023113796557300707854668593126685268442059357711830658941115289214514571644626122753838769306179613656414932970876531931130943155781668590643767795495767729948890625086471900496090122404385983939827536887046516861486760862007020648607636236681515076029105329373639306314827393915051118141151123588317031241579738771080839285239377513802559650368177022729089346406318501269114451183971456088293606798407678563263123933743492889529076974771335034443017332084264004314077200819889992529775325725477664621674471446597413524027201227255306577760550086998146593513309457733781421729594666462954491834987600004576671862811080371398399441491052715676018316635443346880335009669178207504077729301867982051851919992064298637598831753905597233446023145201065814335289760006678126571190453474590456399801579693277515896901510075717020128651737395251313661593001375135205731985833015297006444663044337625079714522047650710006567028654843563162829317090957983686607012570673284839183184575488036720456906944202573916672497362163281325654585420155633457676278305966318079505661789506737165080835776508976091387872422703422744492135061570438436065058111803379253244405236989684479679557765139895374045274984420315768789674271681572269644264754019798317292756254972016356535590923040850286836744840098404519782334675045302265483109032582486599238851104198021501746976410469126927150779416000636985072878002502420179746592306851373299255225607436014101383731691132459170181829010493270149927942638875131645481765092243171143591391696133500402320495662137434764036559371334642672305131861442662053636120591277202040947345024041942728282492767166741275443893174128553445701179852618075179293444543840778225631703466340779216140117405343832512528750161906494396253306721188539567876536387762850061860049174179125797541416546806688368537329146794776463429262011490873886814369613192112364504697950035966599164307312924435835703008340412694089400120193315366361915752750803499854987829966730529055554287346745993511741978208364557142818518494314045265718882834077631364164366619481128189911154828915189545852470455955751490573537089956208003650423395591028976761778702525591010528037930768644527793456720738711387912686851215667707187500457348812047932256154007451615042316312234892143941876918530454723018736329920545018262890526246163175686391574155464186053814640408210086630230405813919672199984599898286262374413370148924621869971518133252086112680820158403805618103754074253403136796111469306438839985054419556142315005623777224804983222629759190873614189391247345165669046781038908211108133804421496210501886061581529111368046596758393037009685565832002409614718075950613029881363719770949492615518153952062491217074319160645688302222631651196905357186096482044074434871534515806076039079200141162569817815102865388647729914235671451376860240631940093731901409999711679356026721941873380342462617449717862943647036469166548542253098472964133699603704903334086172887025519282219913507772065810740157560750857113050973646368331704405466979544602267028737792473689848158917430124100378628990795624068077706364833366325233165299891699511959386083046428757218277125721087779529032591859960513990324546602224189763369265692321175118256911688609951381144244416478816318434479362216936963405091242548930364765531135682108379632662602797458782934451827217770664166308794170501502371119855510755115182843926415968582980508538462609295842540506649461157419759341186573651506074520114718391729905751309440114720938993661169961780841064609875947879365160802918832734467165885439041553336920216994895253076327059316710811384808592971278615574795667693660101328526037728311529900429318443254282982747288084097689216452045726177619088657331467319557458721730927486584190634946581643579364203939560466238833770541205735556628203834067340013903613721371621177807034396066718603460626597031905891894432130716578105973227201417823139647279334026623050908191812196878647537075157851492305010367998660317049937422422587068973805407598704686357352529972414605509275504092819382960729744755308596128088035504593057182663018774927916587677832429813907691262396006984388055083365868382557233978398672322849303902408754764047693311323130965669202962623074399781872832601894278063956823101123684437773620926163910289923822140832414520659334651987547213544981250045551286203939382447957522522951704414498946161537975964963029662837158868559707431686363727124727786122117383966049055427149598842154922533592702493759115540825795449767262462857509365525478556435055854649189362699274962706082109191135060475698872408796659992905713778408770029172427261483587677256088366085464343082152996365947102350509309414160072166264431371899682114450186359354041179666225359161266080171344924346480336340480292657765062463398478519592514440411174784771900098985160216969108979870846853389842161702706509955371264208920252613785500072591281854907929224889507390598602314878447854811038746998216816722587619377448583766789579577287565667005502543841526960756290138115807299535797187042575786115037414957520987391639332943548743328688378866777592298349226159310639716363343210832326982243533256599797634859950306601504851022683013641310562946098224078718579982766012780865322053383941509266256892786264617100447975620479579236955608854019692924076294885198409322178504404796852545521830760763874812928108990395252888027012221763922942207510136335170589189594264160395131988792508665015208862001883853975543143680163454823639265493611741216832003789547667672911660111215238602212705889834418723842816869573385125493400944104541718497320811882754749158900139673392997925795857969708716935679102766516079728875907475369158333317529243875106685586669366145601976986878926335982211808588744499760162463800654730388616927490366651248292142735153762536210277749988142910953260391674207335073099767230161005846415429961220181200466223830700975495444039746068984220636632321214839386278456914694981592248633103190753075462141173861446078934038510094024271797598093510979037232226782707260041442310009507527151558613652671718479652955833246224582697541183466761231088106695558598877983841451796371940157306724124085646892565889127995954186171326695231170134215715306290377312283506064108367343781080120644876486897393509115598699728741930194911188393300841442176358403075428466081492355580121017929165041119622189744214288636794604561110600149980478761277358559097901670872602511364082314108514382431532391497849241888155341372352916157817428542334500784021521208026239647838473977956195357728848459540750261775622832825258651871278584275728866542173402479912940711541030969423366265629205762987987387822047243173437805878958301410913262441355802977339142876953545691747969916100089769084362098539666634554496497345840689048573525178402334989749276358378130556709728005371560211805853118636655321278273029022535408455639795041711364585878211464535642483342733501768672809399950251121768700434211572491497458576338211575957881595684968197559094141300237656280433268634533295399883922408835000477492930001135931399945358427147505680573210569389855145302207619099480418522066092292812923392552775570310005967143581282167830760807555189139964876259094308226360016049161009407651821669824828992526329232690848276881529630128342245940867487558563170381923992718750135568775651345109600915871580775031501525383656082020735347937382273560594564918884846908826400066537954508025643169214704834624760414813014174294495550248568569106539218435986064581318061162796408474669660030706940731902757936799615625999654552345899200991591314357226385075895863776967909511973922437387200878787885513134832201963241818754880027259568811840659420558891882258979913629187103439238295262291544880238858276665818488583609185953292848560653188549061143988212721861920118772794842206048486029317089559957611573543882378458562474135215802286039623830641437521103345273605910252920272499496049018564544867661998472735395689343966868102364112283836802004246481788887836275729975192995733484329993414289588096233958129034662007078528298587211797712325385888688113768575367946777882222899468082581983412443395914975242842488457057455856418482196582554584765836424394355288627627526262013769949473324090749118372634550810094895401166578397014604090758743519625903440963569555482822547292238483473407801929990619968135735870400689018866961146196616898884790374717558067919465032776521213160575498134076054876268098836604693965813298976992383604666519590230506970949703710427886994816198212000409698544447162157109576196144061803775620128948813134035414116131246107526884716449393820493460226949071193011555536407312292816582684446190930358887674930753854501004707867721207395828642976615931989921895360706969853049992651448424379506225345699187912042156631828824888162750453065009740110820277094847126544522243788362865667855787585483199285328854184731388991305121461770775502030454948393341984119575926647202835243023375104466515931951986703771747417014949129603647117659186752072862996704393392875660473454204966471312096440262098637071807712416962387150379544954559096545323949444693843309383335506632314470977544191351143343969026583070210231410266606014142576904279963940758391682115130181013619539800094058786918433090046302778598730198235002663874475629176265621740221527568590922836291533639000468393642651545640650629084829792478658191950087246684132298079759464762862947201803172999282730047655229813068053531732251276525476254320931675346322384946105399015484782474128200089218137808813785040577814506236950142022685171676067596785880041778253768472207361211900617058092466561538787128670801728727952755077993386044754443946329350998777566562701817729383292520956800583915971699857234411816733575197323189075632020153243251711113308609725453106201632723288418640161716628114350508653031610295281919897431399004807397591411887683819367610692261463965113494287425371780005836993953191088086172731567390310262603310860085552126940651683456026627183647395152601424251743731591971460833359188405712341105680262025839359657225570173015423752671769522993139009679352404450602883689375427575110276013721535380532668593116824843260384783983732988669487145581535059811573389429940387513881509092962988878741827400055261109813404383786918871329333723372656732501713117927807981407688610149829595312927651248453943492753444633204491203215865779168329917788088989242432271216500394743664684844763449813430255404712584291454714464561113990920565449521299918919736417602830029572169405284077030497018955527145200710117342002802391222548858622984036536008012305742774317747591820203968457744332146703869968705908522257934427594066484371373867870050365575161588372090360263594930415394921460583639791564723842312552707045109576888102450212735115338653795739712642009056472589146797764810605925520598167176986092076364239875164204987220356647355477683936943520852936923838431393949640626703696540172490368028013218883501127504410390417335439195509786699169232065742234337642663775647860206886350616138331553823843135194785913903881928045224481349405644591895660322821932785276181285498699240994590278746036107951550705670672535397087455762491412472612981270667017311587473013451891179513853760158273839630398077863738323723075059900885552658684877400818486051391997557017718432447755565963248248934821402439981026176352805412730795783273667537979332190199143209558020242022989228708373650271905531804388415403525574079874891655591259790126851265500326869986968551263210328219226639818193525820873787839612008684092272881222729244536911098180133052813160967342871242187427057707213571769420220025517893195529787886533041116489525602655373618077166931887280242416325987997717210337076660435173392582137259637974297795600079052893331250400486971595642000950000018019445365642608649275301434735077436476224899485721673889806101954399215551449208138266836639637417310735392535482185964443811429326242674450771675682781890399838239658051955976711666552990531883006432353223974130468421319297681665773413859224751278336357150937458723732583464231565273846072941122346300346080923206929027291705322438008394955515840139036440295399819239914574803285248038538068476782855206584886309074642366752424374285067267313016211065513157801858261481916940130027470476133757504375269023947746360873504581528843339329760622723484787638322657697414062012667476421821346643146015732007787548916422093923093455370591068389302489038988174220442397178060242577269295090420141108842241735127076232569344451955163179518046752056912475270711386588629210463544793853602699002144727648335750701005795505197764673878650643986528792219494399020587231494341629926875958255262093798232998129039166491172992454286055228494665416695270908265564083075796269999840287375226225364327116446107260091881182794040199001057972707843613415982592045898192848783045976636321083254812330613812580331600973311196648488014943492251620966127708191366685872521994842055863687920887118387329948708005056095321491969443161859175460503868271645058734090451100640002675571696119850396665766284862266568787769342026177790238107409178563593943913674377949212287513810637100391472823679707057181620757814376945452828153268757656539273341240091669651046287401701540045275771297560043265262924362726123167719278367164976688212843698710988601408168744617594047227213894905624567943434599323078400380678601775663496232938100475601677786742572539288336702722881701084391189595125140550093399016527349043281750605054964983425994069063836903502602589674751298176480351950238124438507437570080721467203362455907138935881441309759452548667180892903596402202547091124824215551845975559412307325619618845187835623625108384971104145800328561741997701577263465374666137149548782399225088332582167073615539913245019011205358495726257619683668291863380367034236366381727675568170583580363321629956681390777851405289174737709433714364299970322918353993819362145372233749983024020294260403272288254586619845548872505448522594419512471580017692509402959060440163116387573519926941287753215349007022722459638069927870168554658542855243708987905454247084619530016619674705506716150180291865190650951109910433928669803101586380084338870238711322115089738833030103347645878340443473134660215006290261030464401517841115980063221813121645581725365100261519914690328735361808966586180527431075284564435302799549350130466503674925186795514865999360195241355014933635342176740529285067112474646704035536534941379252885505471043626047107456662525573908622240097955670743357528746585898868057860178689347084117088417874555266148258315322927104751890987624192372839967591693709873360015316292860329942914691212926364663591003508192324897184598270740238232970655374701866755832521554282795379456490773301301601880303159774127806456964639554774560785488596536578946920293804829241495542821924733516125626780172340066644028616291506781866636719424901615037578259377720144839733887146154384029362834933614452131806921079792323169502431701746993375590255877511730861054441687848142231605848244341763824550463863528766886695060423931823358528591424500829242638498948805387090224778877820527224271113470140763984420710159149655445148776246267245770768459587786942500378151868390910495946597974340457644326691467494399047751960811690070880113648645324502698196953145878153139901867658346891984629899995485718084583660384671165152694560971926326143322916630174771017816270431900767075537637986778287291408453929237590633134139836362144714235001852988498818453068268430098933655219235361198693254778033830075581874872721603931101629126904836163548238148559043654725018525817912360083061016238495542071407712745848419164461590371187024547664548524633538121834044057500524575714854237391913204888819707744410618491104730398541986023391138059078560400779512454501767314084011229508427729909606900482974606695944268321265750139483932016727374715361234751526245255805575453622468923116013542900961174111799338968349528933088244533225439434665903845043501667396562065155968938079210588991741205417724039775541887180173469314052541800496148815561005761139609248431515813028269894081771157058357644239012302831954497892335897868434284291095341613554031978423053119451557153724987584757776883126562398686989230035420361388116967300587202925055193602120762485727734011504347665527171611223718014863961907865308010613176771366465054613330922657573620648762208082569880965952955756996783902737056724363801146460666079870252408305708968693202699835553584606586347389402189708800139636512865319459072385592806235993736391871751341234083695830522743256485679646628447945423925867945015048406703008195848858153566835900861522474309304785705648225653187341556505152904408807457194851041232985764645557256262363526645561358316530962604299355792354006460239529019997864646348422955676549934631240809958089867148223905389848130517006534813730686812042719824509863977043192755263614737401058277963092896434279740963629574616187904051768932281367087867355574502102142747508377677301592554394470448857584204820141395481822510552334125007433596311291901055467108524350658616926261987781779352005200052733872787801869866531247867008567020506485788713208983515830945276837550995061820780736512716291829715340877093558653350889844997823385127692928562599372148320811993433348564374637709992192298884889654125617472000167161435772034149972705469373112504099376507843135409371338161184462890422886984413662825338744194652257054396173829111745272993589191522346264843015860690249986528370992458953440970630561375239859128451632940419094609864554920322208714869647961453677105049622840020292007043875069031897498189806293245489201437001243874143478957051373135530985036269347105816160764480420526242272554875316559202339469727872146405109449297642559038488165268025347322580778164661723448125830544152812330211227448390344435762114598165573314953143142245042542066315488930917422674264557120948390380097737576318094948990727286368881268446688674574652181674727949830717860461743232140891114891835819159285954242678125706156758235374801730997333300746740901677982511726364654758739229850890511643151946327212423291881549316943994022764143903136884101086674088232541892357687221283938275355297303484958723962246423131841430694751883980138006465770922935150965068134140613317858466855388594926895320776646141281450836746148948848883610259836288557363589872909134453622012412917404758000702065594023047817344310779547040707750751559182939296727751865146943417354056805428432520038065085736905213277046485838357805916359646430783206006291684749621290571650800135470585986840491623949431397310635389421615429151532375683866491799127121213875911071954763125518326384749155810045318282685934966874279383135176145711092573668276603671635338662011993889219830444119783599253472410496870496634394722407832802329551386643095014257228045408027866023185125878573296360263878172308504435062137928493935075044324103493042886456873150465773969560547025124621773791679617485530343180374280241799474227969502162396417358332981352948060010634963580336610932589592966235284360324927365737829359082916986569905217062139497119285060198708972141654081391245483381477157161967836077852618597370893044791177515724513404555135953613096923767639595176751559719664125507431492594124456696943332337525100586641347428353996517160721770893289714212961263898088266492887007313278893707434091625138749245480884473722999305745812081168982540429806491583940471511347689800214493982549662986931309364902204410376881633134178056218880834146852042028109151605358461587535645967426259501841667122533755613454514493010119111079548385330840220742678422222969366629758251613846719218388488343490262697296448142230073986009578226035492710632468154266620979998181870171914095889838057860467208171945042584447089768691783699731677872369928093207742461975885816138030110933164720210573249730407551656837865377668185345897506280451152284929943512602737573175775759449849444239357668348576059667171208071385242839520151299926800431630542938166434293936590047150798382412759421055624268614308845873935159632741410532262528150303783690589563916995781220694958863721219097263669028914932737566171039921955138697132646817953316893673549151324324404983773503696055022414202866577922771189494717572014605992114493639409925711295775590899913484789985212489653257017367313438288527260774808475149450420897930596426628433258335344326434889050172774552166548575853887972424277633787735200442130430360501940465074081873502582701603890497030386097567882938486433346562379880126655674737032990831279298090544952478264501614676835326217230719763606472213520679181526291545850310841228106387653622759278298088655790636965139590187521627893893935356699295627309575643124811028177671444297627481115025640358798403883524110821462050078906320555374219105635345195592567885208007738280383595248847408643575343301435020620099938817873665990556182856639116166006546010025822523264560304608668040908214040405465486922846491415239308741252332972532507313625109692338579527193021591469448006567221189755836788622568238229704913887354741432872381306059736466404185462201471259890417253584190008627592953433384317710969819434726920167249824632540382722834453785218797427762833154195076938297531174574128633196733982506269470038419128610491895373599075569517715379603228623730236177892647997939194062694281500181631921556490858245007247889792243310535974640042165552481906022167702281651587127257082321045863566480821528489087938193691040890263895127508591959349909220532527460602369028637544316632782152573529212591705956603084675866008315162353574251368266051918271855314853227092734276046202000380498738989990878018377359445562581470183975703830562290319393179082097750567897575896720106569002678150796766273332974126161417488080360016291228908541560512238737130209474990475011961773039428228664506610107841617202262945330959433223647058488847152463353491449049971603250160782333621756736578773753994895861284116760819589669747706024685850943092445180091428459699118573452785086147493946815242002429084236526623770911985048498903800028618993812497705888100177864682176310273772283964595481452609520498119860620679780760082042871577908583650946019804373695003926099326287528250563144004644097016142292192241737361859549358419967486887373870733588384814972167367176937048198313833820601323665764114216001800443374902232596533773550828433149959169578438465860597547338539753232156938368802854382555671123517309644982517905005593755865167328596457524941408356601314602464416891482083103534975131095902465282496425030712038766774586611257362501165753045302596493604692439987492684744607024163407707945964669241358809321987538386325849517590342204198408573408917623212973680726402397767928021804810997301091077238638956402904093100107408093669253740588739733725067040017377398860815319011052990564781820278253462067169092895179610227975917597275333080720664400215476234082659822374758485899639638173608398759573944900216897106611876906780245602299013754124969698141996859704914310207307710844651376337545549361264127784331889286557097106502534431251708024656782520242139916852665706160647784187727018014090559933581822082627963795503884590804135655157493208584084557662158179949812958771938618580617724725978074866577524625053013907105078373931236549288036766091554662249756133589710051433003744608242831263787666902748348013523542542881676821472526476981368797615028498699798809731967138746339219227374253148644713832269472126148411909926515162183397912733841177068941883254623255457870648179454300445820985541970580719526950627472158857034105228857768655145395338814272350030655537835929438430802828852118212595138543037569389389317513729788033799611574846210722436236703724109356735399407085187641351010672986290966512492761122499608070693286142558786121813809458048779775715568978721739938344784443233280828450042927183902789582864850777734087061576206497406198558860911009263478664059877151618679279633030061916879556421378781266841030401796736682478438515849384643344604106468679080835833656873417639588076165216180161395128921733995186861973328989686632388020462889173056168134746161657021338975696764838137041642273259137125764090823718024762483494347292569058850079630327464200190040391557881082905565374065938982981937833350090088660716183583690147703377735167078098084148550655951529850512423017386234811427162314454695791415510874743258524620783093863098241966754380154736014881972206894331941182211440240271596520269349456219327412211532777450634470945044950405602297205255288675290923172848121273127836324150926612835873489082850199186595143901374109568784502307401362322722624317244740138652969160021899557126568118599384790159186402505825733552300911266084157909313290421307560864886656893275985369476831354172941071904766153181031919926361946125090172113921328322392862186342141792587636133583557220745820657071579914012770465808624146121101805672195842397633885843251991740044147093147445474097005616745399960808338293405950675372035070424890271961246151569492793444402188501477577020662053873592540565540957165165480712001293291771806634803425878825754738637190488611084464922808348500145606186947802755703387065495252624725860844418812852144384427307111307303802805413157651478995010084243450005881754337282122354242399882225683547596593898128893110524081301149250406093844272446339589325156391923160517477522908048949046400404091253685188463149302729640311864769567885467896495936864878775031314447263253712501399540952640248662757251242377814352822011509700719902469740974003222733009726560022278898110449719847614411215645457873701492339364818559451853511741533455222983563429384289212288638755469810347704329382324688740319857419983303250775772214084085762889540245511995095896068683130702068712251514068370883730748271225052258567930619382033966930511348976313287941278271635921123615117497903826980558932094881120562197681229070066386992366152870098268032705798717166910576978714335309307440123834210513120050352860321634161286459204619800777931977262692234736746557474833373007974164094307251437595863480874199238496251315843420128756223125014153910209041176651802071657479762458992938284003107366816798711400162569876937564767981029763787602167777148741626625131870728678628641417039571094179258410403269040257978018875807132522414619504723241882892318266869030034287791059785412118001853383780373258135222288420205060877737955258092602040796350738172013913442662698400901183708098286191042061479937160283962817812811874035512071088167491839962945047174811417243047655144518150817930708781284615537170010975989329074101396139595809427312141935052058529582376116826581251565998250624053127698669387592085366461723743058308807873399666699672671406270415817887869983553210225973941332783893997772868618845011007806209166324573347379026586345275330038644321581103291282011846852537787850223163046390187193255362870018702668280750120198578689155126325376381450108574509897655778959392717848097945772036615782116622480740755071919324746741587641018446246423636538645064428353593396457331794750535357643075369996772181908770146838220451741547505076915717857989990942339019119966792447708222660640148201560720019648096536849254183259739327280773460318635942799960656781794554602653942642101422554198184667878348775962912569028395635893448135110641823322204801133937755534094156199373069725895825678954385480818702351523482051513554401528389228378854293037241708456685682686508211605020658094715827966774869324293685144885681876298043781378299648878662324947411787185388757908298192509048551829293425839990563792067456881591561761025689384968395244555920501916766994839510866773424178239387538043003959482877162298541054425383387219305104137215935196934005567845711647120247172347454583477315974491235131790258371188414127548363061477082995892542419938765813307180059924413832484106356724961840397562880396862963789230573147478999383232853265746052556327896096556870153829129991528921050985482520298309378201860235164665462077617454334619448972994903868362358039517777137791730147622155899850378784967699000051669753449596125251057989783887608788284605668878455572076431280597840190021249822561778868912681146009235358064907945039934543546488826227067050045387053775947828385319899385974853737950605580927318669915583238202293356634055811495193938883947071156985069445006669872159485885353450202990806130608154600167424031822751820058825588781662799441338867796265645280578233366379867452366167276601252100324216526900089281989025193367139512003255504435188402411475965296982630267246254980007174866555450509454729089512410225840128010127560744778770771932851838744167585269297912956631840418444622315153096165581152690992176977036415893697590394203039452258559583990099225803703471189083246650838397077866476636770072591650960274924907055184364068063437661741983830590677670731315645066999684324956888239407964890720642306492118977639348023147590152531805447626990080625672055356662861384612094213879750888453007700979075624613368501035733171712655487265435132311923974415914196640127380571882665102852987063666447804915377785281025424961890481704463340349386261557691336667168611261890314896670844968334264075079496498987528105810856446141243016147336419165827108516535871863370329079796895001608371230310355187163914718699181265968116937406640516938973171954289061809341463516677399269508870458683965163414028093564517413093895568558127374757408932140714142367002243555622906656694054860958543187315235519734288675193811750392552846246399739452707364818469916477749294442776902569948227093754959262074412346916262768819552334735612898558923198033560617694166146786681317541088866991551644679803774395496402123432000726553838571237432706966537522289560360122734994703230322800946196891578233086300425193667008382648069738313372440929995781207670755064557579274621081609154486203683498093334561251318006276465820059024472542582885665968610373291556403437210639245643818549596130089817407746620837946794068072447853340768702169270897641530954346517000498562816730329567274600233462748441271693746089289000110624298663082431199816042429048691681732372194104984752937635647477963649832416234265846322483348257226332274905281166919253791647458150182513895627845773970659759906617193753611047114298248473735106106012293180187357975911375138574167613794664470820168798877909810762451439421125070340784303673297294278384311677658080561845426645845444447375390347226750695862555976749878665837860947309296488684968799959367617384013087452536678292211621277178735460956022142030643075578742550018995475978667624091578377123711267230416330993691700114962811057080950439605016888136932622831866481546271879496990290440487170557639120206717048750174956456435495266147186831936074015757510694702238379982842512533831513650434062718287901956535718676156981095460006109573317352558986405883689935359830015872809692432760916224292210966578461395547539953502595937786995998998281821313714553066725725293194767307483375597598663035695569148933292836892242542508649029142370638530390692395753584575304623306023865462305188245537007848579867651832895619455664797559320708564118023142403182114641884489124232501060405549889403504388064445075677759144411475396535549547125951886339765226407011619343383589719697078768789861223040540301617041240444367590136407875475911072714146607179570002122434348121834449339426101584713524018961848389608443034203603508999686488426019413801414074809864048540826271301651044052344002548049703619869384768549149010274054764370722369012720204955895195757377969933782508200198977663252359217959518739404054836848734176982582601558995557624408801760929788163559211213470868381381817216008334729643408801220115141502473953877415106756802616870009610940597090362641524516050952509713391391091898375649789091854963519051561361184704888843700741002942513635281411613960983275885271510089234582911016280683463633253948727435472254814290885724866680284110583368232120600988615215441888774606283631938689902100905250635983661349927430571982811247227200046686715443113556020209573058650098376315691437593337037816971346012508809482659651885427643527377416774865405709527197066474216675576364881042589294589251811710012200222974353857600362775871200977652100763063402671857050607376765859448695745324728192570045167216373862057056466103808907885934925394484765558849418119377542177648288270295706274297553358691643865281924659619235742503622166602535228411857492981922057709529972921630532723984115164622687199687350011752699660943999769487184194825863253390668868459082875995187557902396513947762116921940688489650744834221662262757864138371833252252011319979935090743002868668928688097347758453748828143626901673979689386170487752687768053825815431178697293448395890834674792919659542525799633160982330855086855277378453899161139998178100853134098454659980139183076447503996979339078547584370734003091568779871074300409933902477876896819924568508199770129668855476273730414620525390662153448821908533345559802796050786266074385264669374414068546997875220368388413853370511252208085054760943559563951093830420779812713065032191778823738607833711972189650465503903300723193565098887654933490606791118888976632404670490724724373870609065122099974341936485924033560532818818549518253168675743165439410166342339220411659282174841800298453527202488196449176994960447741829297771761007876776877705890894882113327949818789700845347702383271168276735285436892928676644695137036414825619905113005650169292908086067487013587524095793313385698928440447383279724502938413669893135998051785923998339219419369837344073917495649912262750684602003497981960158392039951415311057012345938475298612329551830525508324731683900884307872435137656246132796977506457578113376854804765082910113696929898138745860256649749154870158766834498974562203643059878318433252210548171574559054404163501518925108393986614739586463848615331143090609308377640892751356257446036565025769639611494251856803481420351801641529064147743511227319905825558151871672707176470549556703211364312136184344577621891191635309211490172735762455172222689808199533067825613288101963016054297072002992737423506989030780200392970144882046476599229782800609003991577273305206152153092894986560800301047410533256122733431960781338429958322769854270001236095791172943257163726434444134670814310489216465588292507885363560636629740522057509071729746665998934903832298899025966438553817190201246032740905307417764941227277709875265191843033162078174025383518953407020156343924249435831626997905202140472944339183406590018429027344058536453332756452046714037583229812473662557306205945325798200888176256711347247841127074289198855042375519631012607845287871896109898706861267173647089784144755231669919989817171831386445590153418703498809256394231893293659492114302584312199694744169212408168548264573990232570678756848514941113331704439366922417601350541313365949654689199588677742293155747552906212956620301190514164018958741173901142590136759222162441862828900064744097359472606509825277846676951582447954194475516527781704276187561345107596449858535426169613701298527693297551247675821232751864262689193728700308154924475372905093969342739400829738762962870338257300157566285163922874512383155700348784160189629794475392226673167018405985090347073390807862071327649506817447171001270104631724404476326432720915937094879110061612650480575113325806452070883628663984899944760770755561742792748474246680161507652980324264441550007826113986203763944199775136919222151636720649027023355852089238061733414857815879359329727491844356753121159967455546721393015858092217082633884574130317163535309383722478403118225977375517512717707634072163009624652247843909456817433670320326294902003417265275295774089201659399993229748404530204788804744125842320303475464503174923397224670576467913603314794321808923270699674925240613728841126188129654579149026808742030650778372847473324511592933090783921563433146101758490702438637762043021687740042912100641662140936071748738623551410215518724034343680421170333939411834240174252872342970305707796926132370611754479126107502192516973279186454507434904474592337677494134248651196943047449835210604466011066505443511674962675098178831244489479008426813413253343414089324407982047699492615126543623354088469977175431921481162882504454253305454992322681653174590304798145494519419797136881267613044782165249065451977871580037226059785420653193811299059224077192003164147296638865691121837093528272657915931397345888477322502637706188980238875327845848509689331994158700588227628312853306173915028647774610422273571080595212834411369470619652449980542275012407428737683625989534137278813589456918362368309914617085360730742722142722533089099440809133704202972767083096042671878410527688904890206964096246560064125470533332811268191145550183261539849983752241803090069765233070845653758629494342799106177765580140741149599660758000190947989172626427693524719488343409263905710966427370278971775516986156587037093830688525150493918411884936082984639529927942953751811943256872669427132874411006385031316831045915535876576546203198300306462921063361962407747376985494475513188165549612055660666680382139671262188037348835120775599424807515204366871219333829048463261513422195272707885798935533924667114573613073980979561350065135984897621386206167307898642379617320453223788830683529815577420112258715271447373278074293574577831515338684534429960407913575241719455532385153601775401195101494909838923942192792606123778138864582174124395534897305026573331722815784575980594190994733014616422443588492421180528231177816570128461551184932637970309232416722074620580015148756423333706037732070999494093215404310346617913916101222911855498553201534134307408963466098428145421627910250659240214189507607950599497436814654154599258754540910041836133726934579737856899334887356095369039171941869193759868349512503995143330298831112325234996191004178909927452108249419328091911950490436349395268402764632395118196772854598425986540106549557596621021195130371463451728777456261979883842685422003543678941422301540628660334536096762017720463216291127088336171149651466896338060981303924393238868860475762140879351793502666610589618370191222244395295069537291428904306755710319890914797354569976693462437866815220282829195350946031544460378143685929206750340541087295505194605032001123720863608937519697729862136648095458031316476043291705025469016729423721252429591207791400309544885392274772639762940943978138687641118008684201750985070351297329148906046583807111201957978161237430681465069702344610272051577323688686395988844826434492076273556289724410094375434382586081304131016942057019064324832899650693694427335919918634959214289809085212237588504195966128835006007475462024439866999581204231316591013272133973783024998663710382112763173978664563789059521065389981487766563191249191990860851525067374011752772781927601297281291858077063557723271746115593935412707514308145480016480774849149835185937171144845490220756436910730945750212347818436184061977622576962362288363084973301217678030673671356571503994331188624911124192366498518045666043730655197187080521711234197968055183934227178979376623547010849597672291578515813794818885709480488133597158773996923261164292731666498835323503115984634862776984105412099201062274428333990726971610767910453485165093724676060510707099062409609288159227024244781128517902089609480089935144982616902201688466965711270138739732799500522524115713942337087003213976499732419407616165881840390070594399245378645435716605883323573268590062334637778108385088660738813292478160683820193355430354183249934743076081044569433691191779147387650875277401710553231036637489429895996833115607308879478749287807193628082775860988609834064542969820452420224478083092545848866756083791969820547771494797701759681505580665375800548565354636219196911955188660135383650003805632869786931809463624202669823072089681026032458213428111863735855844940904163790253698276964962752263097839330867865701341515691428599123952527238245347058267603785679246982844602503991952307999965327769889486843823326716237803761667550763697464634747352204068549383870140107082657833244024564216777288627577707366615780527410423756365536080054582418899514732159651123057067667748726553139780307063186009639847134893690380508522685485712914098044114962589915144733086672251233818933226215977348674970543805519279258036779948405848090478764550060075914356482297891733129766967597920793597139850647311224614845638277928671081386721346866219315761880038531074961260920077307496556994219971644828664652956066687172831387627785270722868637521537171486233965062614837821801910865487957727995921844592347351450835641488083417967949789805117637576611412126978337412617382272381216113113415138038170845323023436615036400262908431474561606818727986371155952243446754609803727538742759511974706136196516938914166288936972613135326093995112261459570120878728326447249067701514169042192472980114414242803471632302535295673870287073989764705656599479466414924384767865964434776583928348412140475386458879607428396465304477812317747293841106520059588342658586409292498294184963555207225795371065728936940918373358520663611643859936777660921048306154729072674417693674483381375337466223207686713250358557626686158177263322000966424664059410179106678220820003846099500026496809275834017161240127830373061740383307170148530316988747824408719895955925399673729580014465760130559611722759708917185900095562840639016916795948703207014910740408860826968762774605981817785832177413889465375888430023761676642930485537942931919972393973002648863521966286812243342806069468295850795097388583547423663219471053064073666837552526128165304164078120091577232430722559024697439715732291993861734500364354413743832622375459049619083354709656303399629483709772158320558531342131723397961836820212262967148608942411924067723301362828362539593428982996891177530458380139377988796775772686754589694800637305580067537940351916784396556582741821072093227578429606465100046342716676299285377210225901230441908074904304825458452201201912785421068280500422527612539454252364040589528628097978488628005873231631043557337035022645042130968427366522641403216588253449079478224832559327029538451734528950207663610908236848190052161680021855091812999362616827560923560766766277080061421555176911289372291075922168628666004473495603372599809153740352422564814627242590377722554878889476785325558031232517616682756709294917701465954802422917061617805313371628454915131267598943671181930188539822395291280304955878215810241581620385426329861337077620993304205721491725886238044206871751047395559001687780484962810598541321212544363711196399434800375101877795762283268138084629070608601803318523367339045789885959365763959987673096425718746107680551388623317298370596121220131229509513219320732345738853657379806940425585775876317490782153169410755540958986954920195966280397011071299413804748837311616287065356631876350913554230163406636621819558343584635742638328971494224753462133340467829851626954093464989125574756804250376860457338291604129917601656206738539839062032066158825951342722555560713768036468923445715549974114036579620534023267004151023736187890308705404365959959333535486872558180865916271986993422823404648459234096207233862739729484879337143771141071191001035743513505060579068366234697582352670461671315483304856752896679688631545454296262180998722075777013774164415979276907925841848769439388153503885273544297906354609636268350163397753675902860419568799642100982102960062399046859526337657227423774202956073183818315357778547187602528456702070457869516986372037422747115695801806511258891236943815342763486541615014844552455388844604756806943243172651890009514353375738430971780561853814655784158742800812216381961932216222882893139296746988922749329804815739647736522631526903665749975523210683244870541454675254312734161240685946203402388390767797684271472484419639160304069925409266815958168164571657562958390437269905644938706935103905475124159284035751976663406117172291630414526304447333018314906760353647121899900790924648492316976575711142942483988358757635699151615629718374152424676142842713351240449767600559640738646994436999442482568254110599148159877176211549697304961600145122169831761164433736721427889032821757412241965217337581911710735527536805444165049288367682061876879437152056451913765739099719664471047638017770028046884610929523602474719754719944937106723509723173424287989616843309761367270111527130814699234563801684659320732599041074875995078523534352101521781490785720379715776907505506941466449304777761444783523681377628048383541312812879315471952833935068027552736198601565187931042514674574566993505484700074184795513746841289139490731725070752429481261974733086501265147282075576849603953198326465112003851738728064840127556645783059206359282947784505175247789016073941321541400738583515244410311659142754768497484306144786079996225009167884389785828879758278479502260932113241631942100112259165856330758977019407422154977837126677350700223738606323019480982801258432516525511367199891204920507409520492827391707432152532361661328553049733915396331996406942141282069664256284708363718601043721739806785317498794587211428315656277884672303051895851566415561221208651856080872935610098108118806510432657011501386528511929340156047011447764635707835384346023833116399480430173980164555238721895661226841831863093938932017656047524524341925764791168017821627999967301109215125512857816589557931810991859229329103738117782262321600631211952201418338791075188221216814435272052288155099403835666289432298996392221193713321441592012182875639055070519548593236320509813371064906353126035840603185831547324127958578451460392356406187576818944895506334969911173981977854998194760148666559528078770266962500827638044144799675083930583255195422145978411314414637685170335392579984231656854673616070652831890477179239913198978460555623451611524617314465986336622576081119752652695298447820085882630748303788934175963197880854229464495708424445527998427531523135331101657251890724421231641374209075745703727258813504627020764309066957383597080814032558051008068441505925412369280175022584495218007688692648363919739025002295469256104735855704824731646474586265350614208188285927693948266986792942356507593915559484993191074808057531966315389284616870566557757640073180985534069424331173348680008194634070550725657139565256375673953284264332292295150497315368520418265118995117164874451370046810967481390669687802694156551007096648626265475525180388004892175589305616051756013853036795295261935401724215484689825556941286560514897111265796145447201163789965803479236891689804227839127235212966701505239095535213791804289533308797242498910634879395690556560207395626636477243527259259503181118145965049436991287139463471613094785843272393096341590296585642398736927952878868331743763944490502308383323229191492870818148904613187972671086075352941105321582878183255646410445056982120520620986052065875913477793210801784149592360634502321341193576767014269626180865952199662391746291970578861190999748914546636720672554090828660385823559772165340651414377879454809892498468449707906962723906868562398650981887251230824177305514144532025948174976467754199331737497527354591456917988815805490421551929926989864505557434329910185249927095903224302744155158039956132127568333579350091062573948743666881782192971647247149874496260753025809708505976914922456423725836592112638931180447151840070239464350616235190418189152415857912201662566266101702247566760991735533750833363113145513165520572326125977307487289007037600217950239674224417006999278485557705407527854491517039213123736789512017194717643936551602070384715824384475235181176823960337155955401309838395775259929441030837044059501998523184669835170900859105916398181823370524844320057895477190788072285215188549176845723627744399701537483335645298371257907076618685445121770568182509325499875648653497073566669913076208296276125488214396662071740979558917379435245581497283919402649914254992850717887350707001020978186240056276829148885166682691317309385174921794261733592466289056995449335289540690553166497010445002078972505654872404873466447263659160980062175500632667371759534650317595150092448731192800430325600178046830987568740784613180282671300444030276020507986654077383320613535914221655009519315856852614933218230603707739046462130199552387402839228806135960573040503638556421421059916840622421751215256571998480316676098162542835737545377313087768139338715932912373409975954250423007154790595167705041362872450091275178239652734250088373724115561686929757999639376090712985598283609418779610756604190991390036848118345970228028620753339798016526570504089379706755436806320458169523447847131287167425436180551055980192495234204903526699049278756780927710800040289973349700296980065738444578113963071323888882738286633508463860914447165084156495683404648165170434039015836020308817797816912184949643543609002757915184095680161114474520079456400705881422755285437066807641384578214301342789498023604765049933605208487312896272134365387629148724447346073216978764951562814318203061038547260324622460579982459968754670980962999724131604065191859187191404799718037443944696899360103258332599232167144558821773122613199277227408086231811479228972985497209552033723299104475042101878442031606209995810064367582011285022652487108869131437883953570657105110229558085331362615986870298748543217164376355033853583372773526979940846312626418259279877962045749435641064682925409129073450222928458553266511280725730032960615515425175265124276265438638137786175685973302675060849229598294274961137221219454899996293944084055266054396132743020446711243031266286410683867823410141740516358399893819444614119535247301444054282203134722380894937003813855564189323740484885089052801785372585300296430980496322328458189299111653422324360779965652273721790860912144762640576135520744197193453467783390711504869237795490733582533033008662309031167297274468259409796106019691016736959278384173786092111709608771152781561604962243818595714843795895552400610510133900656858343872035814984159381957382804357400540438460049280361998673327328574320932958457876370947136357954636004007870590956547164763052318991180024074508262441301878690488172428315802746008717688643872682131765909486433251866691929776293919014992678250622681432075895863365350422020029636869825419917345053826730573658269785725906675124884677544341746748012067915035715464556763582023498692426988261484953741080247405721543106404771707184571847652872320591106254205561593080605576357238291907629445158256996766732857274747712771042391039919711723313144416033579031850996198230255671275262840857927021621683697113209888346693136338896507638089351052206060138541099044553558806247927546387820490154198408254259153055853468597772513717951963455224676022393514421574377079059583134981461563455446665020445542434799547602116243815374884645313655156923897733927978454479820392524149312305510119032676643654482512024791670366681212498712408669857667323962430062907347070772665335120113833038597283410522491128311098172685491689345512517330410694366744932677220142569815973429830221379588924285211171971151620644267022964461652467839188224172249213375793555824673539562243860538147500841550425160479590098840905201080242319168384034278493616675245507021695884887513284807044182651722432272256149990413882512658012119732219094160989856063456409281230224000977439437596837554110145344076064310906046818146710884677992402134765218671725512787144807030493391743731420222860585804896211161991225436132343393634367482752524687530570309873479346250762061867031241199270736199771465889240518717047447444591360738974344219200652801860530631550724239479511262209530267556633778669836953170571390754633326742027258490768458929062322191672748449500007839176653990914833374695016865479188024148527038457809218728599762953190494702737000631021951752525603861048841798651001485229226426850484050965273135691604164095842743633534938916090394927437058320627803146479961695404130270991247009736898397290769105602087599661130245542188743728446516105787918505936422343944318322640175760224880882718579953121933580089096763790466789992756886853848600225041696607007496399543307338214868030082337403937710681555461541697777076807683499402510665119155819511440310841430766052854642728662683170162481454280398101390035583309286731493229517513118096559170927434465122391643912128992513414583726858619715504001409444885999837260866721416056708397108955988602371358245762302384632011044687544656496849574630679561246821823367896413797287824657986225640481012662728514280723990514081467093516162802074124250146941261272453248702298341768037071743594354457952063938930135862878162177037136999381411642193857085760358013785588680868959590686391412301960609820387299467999424612797614502004054724503136733313157145752669339109374437678137183033575309484183850073859254634380980849825646395869729838432262797304713431954642433410542033513384051217711698078897435891100145813910946362177663962166537882054438272585249535145479348062423894027677059496448002190320929500982403241200573979955836208937887545603131725827016208797072768397143604034082093578817288760258100518157785343964004224804109362886708353196782974091047253240023589364664053175114994160239857603325815763199800372638314078260897841001694837941303661515631363047736792301072699896299868605815601465225154404022674623073108903835894311673926213316735137024818251921694260653428657279638614298829308745143194112056905960526942876800007740146774650055193903130686564191556030809558361339612254262522927328503734019568271749858424205948700209562270707101812877812342422077468913908320000987752474522376283661621185039650649140506415806543296944652214441239746030954331760587595335325266185076585434919823792426504595685103177573701753595745624928727246763629736198894887332404775300187527591868259501735739737538533059314328635169544019452487639349921814073207879992119586867328979726695312476864242222024092630425060852499338827945416536243908710020995522841710922413064832201384820875038843455569908521369118135489062677284623478899242000484876302261099022605122068510719607085455344526585314244229571510931446714785862186601885978611240612232091391770257330705680269549430661862584071591014237700019286608910742469536763394169707860979573781912413016099765804168000013097307274264545182012628594856172901106997772183204501900811613960174269232241307242174460542334836107846850368464653026523465078095475994546318551999993531493560191441932891283280211473884869127399464781327046130707055372695300182595237083040560545690693655628669404340256180157516025036230029248770535823103712537309715578181583580780165979413687107448748289205190901624570739504465481411596429830052287260864893301936612705854680726531824636880603587388549120479987672232854055799511617919249071831832079294809134705939083383488573943625912557787560952080299654118493234380773227422172358954048308506328004313354889830526967005043492418054578000774034486053618438100403460451618317034110665985415114381235209527073219909892691376383381296798422811092037490915737665546720193258165952571844433195879217813594249968978900113587395740302359782898678008243448150586672510129905442032774206052993171309219216967144058311595709028959914773760515231669139487749764611057836119934412995352212649413451719111334304488676673164414371463510676636385856292917214831610098592320517616283213004474333479703714544808983426115117950661716998545578925968294944213288708932572473995250116371636268809103715832591190082480423740809668493913419677165446380135968713307863409725402400010868316519318649243363946844260034317906878589978673658667212264620733937674965677168887063731136605334009531958425322358595519095179000197337752067029881251150679871214168281228675533123685166994579866173995205551618250078082963124116146561758895137155713041979413074544696073207959627133042586930035021172003112280906824487072603003052163704508054329318840222717077418732818638777010996761708654637752926718447747691535125160758927885556494071958774931568562510552594554811058226389366475558444148211145579906172495261572515755175152273989992635763990023862094665606373137306471741370744674106892489828134358538675682393335403180292856482347937463573938020472326943067508354735992269833518202479436963277261155166418081270772451526576273606968680370826009914849074029587963543937842644476448429109439337229334118315749395279344157353607048010093463913248297304937979130862098939320192513619513228695668802149337807607520438364826681439323736980346128480807636349499491328849970222460074837336251066667408319169384994046856418866035640970565437658544382256061307903735436798148787632305764798546101581198400907768661456947919159665524351806672238974437079360159355630751710956827100765891259352621613364352565296202554248280438084461243437185070412882026804492148371973161533028324111215729145879824344624155825453772401200368070499066772448535117903674098392709535251205841165693759511756604898646849668647784074993194412888096969578548378946982484311127361706418199221258287031069612354827380579868091015894584793378725230298829444878837479579162925530504167607754857303738120604476913925350170595917400598653540116293486913396391649393075831384994214214146760159966067850326163956379063063904061897881292978756721273735852412230029971365803639834298853578885905541165045934583654702011931391797472268097504621164710625800186283389588050698805894111767220945589847250620689605487802580755503205708193794299197257984894539588059740309869138413084192924212605739125612360497784307795980041472305026673349556099055943115058602704578764336638106788123231333424710068646722948057274757693287276222282004693872210656338871331599021874624923486162373579282663587901487404064594755879820001989191783371985983948525047558244447207392327428690549519135922237797036619157724276783759540324639834894500451768743692152666907462894513416976303693755097209734095599694431662359532993046557582146174112664812782116916628559968450266230204022582877030933506314165637500462392482859827179512004699288368466966536807257117953618908693626470860209309392380385568783061761036034309060224786856573503356685221341952310180253472753956999532026256407459497887306934488486476969918514950455357475503100123869234724577508936210482489545572427290381491733162772490456585961026899211911899822296799642946528636318059628332265616172833697499077657024821133698353327585453156033092036600687036160562476641403665357856218746300094506604313991025620460610543530799074950553178955386946109601502495526226912663765883767384455263984571641678316134728301679540992703366931869390846696220559878886743222020543993310597540125953320084017914186273171728973809512197793353635537142161870872330517604849106512263341780514634071560591746279166735969303405682013566592813366359891798776209128667452723202641399997193946925073744646343202877322518635684875043561560055930943384112375086785221510176315787887304761036534200688935788519513730758226239274375044724745841282159203592212737014546876631800972266946550903227380348024856909085524058672490067026030987533557773420662166278417920866662851090175405183775453698382385674781774952377163831080354735833135828844309954649678612784884558332501538198774628496860037485293845615928976737605278632615491402700371872080209178128484044999852185943901865348867232126790678252355860494335174691993854553574488404576828217630595166097150948530905681917099984714698873391094386500011536998462854922349042794604153359564308642943348677701965731317628036013738415075334594549653193846871970072450485540800857480581941768607870689589631667558348210412455581707368865109337184363465729820423835835045456263035830579131069016451884832137577715526835774543924882955871969684647138987216706471324096697405290047045697372694219933115708836002997062844101696960700242962504196015733099190730857923135863385705146342103761244570754536922687733140529110276185892529908057085286250993735380231348876349179660170127632685235982555434316633150822326066697125897114574805252386819734008807747226214154906211121851039905451249527272448312365249925502660978984333370582035761477215693489776890661381293427684697353510137106169559452894325595943986662595605304367296142370811276938439465347940237732995882267775508083562212323916838929131060113546441234267149819853922966906732710973803744446369148371299359098828846150387773361677725953234065568380128112732302986948860807197789604344543253736502818797703099783233568036285919035665794205833530667982037586883150552793015908956823624851056928254410323334552836470566066360165477652390062182225108254408884790402566341379968867166453774950783005131500839396574938766711289221799915050709827777513458981307485591313782435012221069149741713552521978222437720159560752854220384159698202809491868772085497692076757330151881799560772689181139549598822322192385377874685867879282997899328127292769431865857146085972372482999839973061190226164717545075217367081433105583729522499331101280901346560110454598903415877855226131768607481499464727906469994637163022727161060996318654188587710335564420627863028439621952919845756791249566079608642643643360125813487968159382694570666056272841410300329581801696986423257165153562453919710107439819256454719154947354545388412147676812129241781802109347371598748482874228900712445285637058102902968954836498444684495650450622054690642849754358382765844218832808253433460420303074726770595715502527954205443954366461491194265178102427157958214210232800438422451317834494271624823175106487032455478557043545521277271759991596677358409279542256758899056021045797750113108070758293421971138341926494825732774659321839477785091718480617009640378409235418872153540623882063117778398521129442781460016654779833062202367532218712446640909900806818127521709559359341923170463302749285508048121952082321163591098382585544401577001726416836031088699841001842344316492088185792496735518862175093434426390504162649632326386264978669196475884269655967558569432414530642440826265438327946540113465661868336180237321010625361975386896476623413442433341683185408977471203274611861891996720742582211367205525272511923777865787952046851632324163920196556904540149655094339195206571414517765316692617753456222324870958420449311713241912854801608910273792487600559195790856295211982154236595065244805610941852064836314113896365391535144329970123840511812770348787013147623806553373005803586036440033483878902008365492351423031792194379854440528970453742584629068357269964325338790869403545768057042146225752168882549502294615020837216869088540218978657031400567405792228148169488647886301444670284518405369792176336696646805622038446527637572689332085479925693614586777758809980434836298998432556674688210134793655818946963461826510492941768825522510459654157745708941404158788887716315525138567188229584141241631102027980024062703332291181766410356536856307416384636264565208291757298807386362577926192460266977984868567285996475227456045951388757954587644110628504990536812824130562239595309698331350516809079932815451233966572251105436557159561955271206365432862126295949233363768256031413534499547881302285119883603136837068243424893415090035454875917350015009397873339723808356595110987351571153555508118407051785213590062444129813341359078988075356002761836333115098785134314609352041963259584813483243045782355827350952866707879780127527241226750919877763731712581734248048064016861976262846515175476060193265119252992483410959124760745475035948541039228757536285134522933436918877593992372157750011669829192836984596284258166385675230981715962325120516306640633781954872909145799810786986291688235982257217970730896364726979693839835657948236464198163729423182253796805068428914836738623767461200774745426892769202866242718116055500308338643436224647541388562940765267571101759751402043639200649458383898593206346643906817162686656765508285529093205074268932441699250690517366340101157771703411904439962292696273804858701266826244741383806638349190676294154805446862629372829649371110082633509086523751765669747795126398768546268223915173710649763718358489994412711982023727470229727334780222230650491862266551804773183859416213582048495519957051984349250135355403632421127083107313861527358074189583728265586278583862208497704174916559113079401180196780193899779424847472425739019548271211110107306608031566414314623640456861856004511282170980273340726579512641266050786284968016370094110965647334801275448723954849978232826653286837159595308485618637294396628912556273427678605509358960533447707969330208007986331586795302273324451395597596708006583031335650321111711223639823268125240267384813933016967228366344403390638388482649338541367840617321064543952621061778660981087793536249746750685539284763486219277953570336438540738449383131117936545990502895481601579307528964755326615191958969264964380925187969525097373886264439563558701272629958464232350338890905370883461612713128175374469341495699026466235255193010619114562707269655662292904821430685391533016683804007293178535683901166982659961794777409065990783177200766755654706123494083421239078924729331232361821406859841977058871545537283444202598022183284613856206467161658563809234042284987119435944736054614608498753262475676123770152131839549223957752606686708819881540085550631441514428857695460191047379688643653273662054908451638182306424803640901189702063935749765088739402624511094807940518663650985540535891256433392459810558028041215149902700677735074602864247132117429028908447465923276040829407596783578910313321485813316121458992719816263842506824467173430835884870109219852613249147776561463472534973902505923323508272037911158959003989029966910633875935703203396495307306991222114945156894759806784468075789388511606679932237890009019151982697010749501092458489990190896721904505802439502385953389293661823619005234874042468745373681135400202894170372788490679829393307866224874305761864535180158870458992538140159197357933595175813206420149638487557795222666915993720184573800440564956157485178319333055338424722128843035006684791627535179106132017813086706521983291450408907078004476905538894393537049752215134908760935608898811729427535338028245372171851518419160088838535743278648230258588871570716677315774518907986262563285308416281106337251922548204741282065381059889438958182279051644021796149369684473526814787340839159373657255515157661705309261103310781528423080095022667578861210722108431262485691007235905919084045074166729285931442726886979661433828611240065780859612555578252945888318038725634440894542361579792340618497509749434732946083351445200666004894745745603803729009613425902759412697131519732867992891536076116168205692017265051056811753145816303976804556869097020351693197648371055877748776470077822375391859664698844808000843474067770382229401491113815200882661364502121013956786275776636470438843475694205324382735362126177740986631168492892207684981269903035169804512988268713511000612932752391284707991472563194420039668964968347645460376383271973977626698072056250482990768021732897277114036156947066396151701767557170866355589648981280489616350391958980141749598954543903253009539655541402248920057104579205493993334052941278844912996119284298332501925260405940812703383448821952658693543710503345651646558563872582430522332100801195517083825049684352298945372502762047169241203784830388721664132647231160500783088093003599689440010327722405120546926339747870650829881970982767548853606109380180266306996207693130098484139615961817207636143457871743350864389502079282894512982038982368525023156491279679448367697972441465434301129674964125851488329662348710655289756247976306039358066845218964215561759547160477964596674292239141747304367332078820155895519216663956982369971027491122114092194794633943733967338915341676795123746366040563692211824877637698312571470910093570793995040831799044813370613902389090294888053276396040947869546051676694822867589067364344879231068619151629152747287931788054835318868934105518807614878172924194067265311420311435377980355026078060288570521397172696795214398222254021466661748471882012309721701834898499338688306019607198213888650345646489925960313524653460561178182746520891901165142364971437995577024622934401736906220167993612661001410583844015851559344370437659407649387884398217195563009707585563918762672096420284268915231012433241567204111871767771084616825272361948517952337266462269335409194242891798161331623572835362206285116077088090798469488881277806946778746138721437447227214005833291332521415047019865479385173865839877293887837631228187734166282394276441448187140890005826104617744735554947557176737171868935228163361980696525260264515156230576719019616375601375125789625383384940393099916948781158854687682614818432427245954482162645789564985663163602996761003524191027878137022972818976377597638981931949456933831600547304397581759167111407300657896199969546299272950340898201368255418198683868091188936273430098484193828816098362358431117804597073595324663816584089439968840572493992705258806908488920362943279778222935907929452713059638049811783692763282578543704098450618255166245762113417714039477242943843260592939853369015996021006301351678729549865438201585099592457351002858198792878900558593382089092417366158488353561989921769689589579803940206416769248590075447381905066122313377177053147835225301808894776366330743855690034634340638516316751373628743744674658595652385680529904093029200101325416544001020502453696937848411278007043844117758289646535999273591144751740121289584637972178976993497205187975274869506321874280913795270235652609521361397857064007218253177108129539451424089324090325245385781588443048916034717911737718283136763975810738580081801042073289948873060652549653310654906618950727750545435751514727603942740275071453982507379065367752204514686562156844709315079436024268590516262096721338577576124682488662607964870287414285080625797098382528290564655759343169946285100063375955434255363326847931728174460617534706694318609614691526391769199036756880765388559196558955538192858305269893306997541821739898795185644615124183104423211887191976124874028750034205727353713466766365553678910301534343076389035262437352901859873141194330910708204312578131211700052976486808215424193658623395920267865847433028858612423327477294014456551794465002834638882534164380416603598305319041953176890330867316933755114044135204021838778306643107573982847053940681981788717193818346046785609780987502488702305648857483454615670518909959374821124773671506665914779334137533426605613594826235556840148894417077615427417934953632192836277369217477688715721881524997256008375667653968889483206120719547889157362886458997746114743305761575430420974507242216169994397742814713967602672599874172856467466150950929105056571331928728829876451611838425613821157034165680232489235892341746740948312410946376805166321526947884387250513982706886435889561410496488055625233301616925327099478225219791063960521891791922724399925501181527558665749836343407434358375572530659104790450471919298090899338511002334094174507093226638976417106181587644344809883108080550026586187874292277733079079482316044666430658727983829983402047057869214836873794968490597757870604570736428564657536893860999366652973205824635951226838308906757487616893352816493050145293765909694844391667757707044651312964365550016234253402153840457452284233165307134675484040952235345984969024616463565853652516837541714862723356525495095524618584421684185694788006892612976315545089863485175902786358003575407055077700751547315708502629369263440078992499431194560863934176638413166923385710028109137259938903615771588855384086281830768818347752772603043023171185219239196217322228567907490204044206833998889449474356478148226834927048426597055345091145432332810553938470530818201919446343744096354316249896089527348427948055730614546605093174617290841576251386439534477941481156019727633792229213507252060777719232923165303103191321658626879190988591079267215876472554003579021930962939683498143833605994323568710688808395507955230549094322468618427291865793175558602751404389111001195537018086354518810664638283712855500686663348902397395760616110871533122815916996237567433621772961259447632088347876233196125567855936673145240509500573322373627817468691982311078319651841550816392315468558698418218335277783418795771580689665196070835810998124980629600658751847129751807878935308575630011890916889337241082854063649242514238432483461320775666921244585117260366610191177918865201380716408204985467954652527319711811485471227818203987919672101554782374510423490815240078802892750022256434757643648994111022849010244706818238192034704380495159144369002367974315721498144676167778335578913897724592368188372604790147847222894292887384157843333617302254667053038790885196093820573069009096450282292045576631537757655529628175432463220743740303706317982712458769598536206508411248546397996166217273202493977898296779744001123881089928339081815431950505035209673852747031509506980737445861773649776957535160775924939487158976872014621899412953043113211559832111588113155886701976027975575077014152904094679086759596617791281397979621121810075732114686483773897410083112359018383399960894136412227030250074110821019824589141808344158823431590410046899469055542235813709395909642786713701931000049582101648452856022359649845365251034485285284157636911519254447165829498790248448367629190487729504229474806507599394378256440944135062212805159301308840268706730948198298287370066003241881051074093537942162069339210596590837563207315285151803015498156335289344257650664700832088674442794745388418829622191782363006561331467092020106263239023267478225959185472843840326962120797349326729628646367755200469921972619364395138844107425329265329071728702333295063646191704134753836257516364024542801908328505183995707125923983366386151836772282234889155228304070512625885058261872745028812081128882987279083981460422728101102182312450925175741003530028853798911523611617017272310111869352984237983219487870382079967136964817049688103188928586052041288512621978642304569477990333100298215637111377138725739111231165556809103963343458693905052633282707577721529799236242093614354612397030974742366356811758007386414381422951154523796560844411084462668781951843534072522820427431346721207141245445446041443953069584669162518121450695680778405153241752515229191656452153865296059771097289700816518591200785208262200373959227484000953295234366970019706568671537942329343544014322711342369256679627847743274569567993325051405110360905488363735942121645392467006660105379784678781844044242017341501682975078037014225196571564101678054147536540789012202020571345119976366020640280547871179966822879325089500319040264214107325992670339306006354068722193235676219787829501659412754549530708449526718347112766725794212984414140080615216217737206134433081425318965866363173666095378497929143673506180279604865248963844336276757713195522297308902205493658503918772133175988962114652895087080648749524851318508891414424569620352297148287173817504502490307031920937859836661813888493689383372385649727847288426302994763207901220224773335399495406629729921472553376876230613878207922965957540269018620248625871573102627026841801492563690492228145002318606359678385926524123013517618970417918658868788668267297623579871845963459269136000226441335959696198285565454301830414180193014188930012607791822065997135944998451353291469143579850341032925979069642862256706358816765098723543335723839552899882435355318308771131918914944163445398332543869265771074329901779960948698393940402181097380077743749889348464148993189410169432262120147653376741293130308624652805351177843356844807289598128088247414889386996969158890291913357350315898908804914813987689750379416175621462312429260127860857927677846042907239125503040236541941584227635904101607322328599789642771390829443208370063858589990518531378617888105532247386548259654541862118308995556591880108660094716002034444401475170337580674267093794191178097815925705467902543742771234324235642290325926776920029936928798307052524109567284157396093464613727043183214917582740842965256090823742752742005764069070724495538467758724384193346324933472544304517452720030399846927090935195573538115981730026878532272416187086948950457924862919864688192533569098103141208908266729683751436424821506419933431310131719158111493188519186608530132005763154955963938826843017696812626757346453015242169558978813761662160627450380694065515896228389655170065999946060542685969519700561601266968952965433173832163132858254235044539855376754496155039055514351261222980987279884261414441088439528566803958052341998312685411713227726305083098933286288172484797756996217094476118026628302494929423027489520377309178072710312392248410937411714880923928419901352015202269106925489135281067434838157816031249147092621116915009694025915707895168583538907012772981606427487423176691910856415075508100383588009901341862566921542850216304841954141421141125939830676781818391920123225837745965085908204510916582469300644327161266203168960826587348167865869512856906760909058517188846959953267416665145151981274206324117875763291505664530559551207476704285653644330639320796423585025982161039558805252278328848886951496088589513829485556875173998216173513260770396898310569800730979466989044083043394280074498563025111269283724826389410740922865831618975749317608024662283334206464244237608842233025461027903574688231130557830789608957526599936975172629700764225313288691524698687207920598064799977609931491072671182551253034712909579126433175150769043951030213382439378480611632655237013484267278763201146437196404305528998214124736840696774332539913554604502084636122823132790899975414325362689489770762396690803895265048678375842072230051231903529361609973244929558842240915489978676137286480235492279738769877517487434870824200131369494220560451902771273208704104215238552734580145289274875708839791212148358900449151645322223603242631058343720720853242291521881214482404653404264823221210245132597944598275513668556859603554129101240192558847593217218167340348191396755836190724757457125911070462296506782223132536183132838283945225108013586003470885878713914153790028104078891842480698184241058011825077799757024589544037372420009726747659915184040987552863676617913125945652016685359243854758720914189290838917314207287769081710567841453978365269040491808477944435831092712138372697769997325202948668269353679021200709036958799619335738480540860532977884348203306392223792352329209920613175367396586109638940493220002645348728986079972070012870686710581212325248167488759929355965483133652016027317789707814847894049372185521145194289672679915656491022048668703007202216362629975698385772547532248444649683031923277325200338868836029518200983444508163463383611889803281030759956524117839727207047738652797772723701665268708950666352732983859835881723293674276133551533007419696272355251110089261626068070911498959883541181790347006568475566207598983749926671003002203866343523716624696061912776751084947425453089463761318223749405109542615429440085438657303083175312561839863915982766210347360226021246227674559168830186420103084074742853737829855829264626470464045940523734749879895372448783789935274018860128437756602874215473480252061324424205063932097292574675153436030314359315857518453459333953378918588599039863253998809748831326033728226543037137200462932998935498545179352873445786520555888538034428936868784044108704129888351580097588047915042570686723594782912103757582865802661506154645609491094310819299569796084116894335011059315398221996712327500817945186258372286317625940481157622357539279295123372379819110204713671422375456833203930492355279165531048738575586121502009998149365370661254592018707747684116281857832260937431892356902260579730237215628834542429080246933892192143561437837195200260373422477243605125490372401170022757135912885686063840708304363036065063949384406549671887624716798052364071253654471927400351641209338958579646924485209475832712836301346987009276194096752931528479262452164153425550683947085955939349988310156776319128375290490145268705318572407961733871135258509732609702478932856178057842558436242944563130982066162094811315633842278086234732115068444298253748728142428471218862964496401997896409958476385765732168103025047849937382449465856717632564818195035969116840595266141806357266011811042846484048756672625183314538050754749250669548628605647371302849195854139535116813856549230071140130793551558764614432790547186386945711885004024846821924169841222408533677712650159692418433563701296903422244782894520385643586090878370430714857937577238595546979053196876754662058153425433929055364146409711741214727057996783266041789770208352935024814795642661958166397521499430982716724848097073038637245874569943646590561472209708389454373856129985896681963425283974286463986359829400538713000579970006292441016780698308266428062294675007814765998175449154356919265844690270782173951120477208886981990399402269221533867253324837786733203645699042780796122381546007095369662540677297828065265770613765186573878719748136164023968892065824614947396607246125822738328234804129230049127673697708657713622096751741853158649580383169427540034819114349768441069236476342927096517315166753609348761611839782691149823641125228801389060746895208416924807369122160485189945707092167828503568924743794882047000328669842141093738921963105727947109475265079998252278480176781759651581345858258250827203548000259700259684673501252740836843125485904596726532658084347995868024511562541101236857221375800676482185343158566900379344539065293506878562325866388021100434577295904050745913594948223505229944851178854843816237617426832763548941318739021384691844658829053058503395560028055624628256426614879297556400714268937000655604009027038308579529767466690932605181668286700200331532375256235518212757654174524931157929052712742089210628497862009022016991366464825731172915714080824344132875948642741018334843879787407807454176591236485807417604285471969314296486400080750077109071900903665880811279604313895886285451236901755719324672844845954713201952871327762103782624415726916503373149269990099993011454026698203271172213517873465316325325816486123526214856688983688794209344922381493806455665951727938273689816499748733473826762199416633035451332290311309788467932289990011604229623343645236413190059503073122277548918449896572739784978700243216857304918031418598772802141603568204963337007188190214106771781520434944968203773393337746823391489638649316166780855003538215382134394208151292140637444162267646164559838046948044272801976443264988754104682938520623122846913442651644818130692126770002533488893714318180668162695429948861440398789554983449200981503047216968335217125229667737025727132932944874758998824153203255329066819384530192960621457702854038222040518882010147105330939323248722660096217763751990255199996359013016607806852886513791072517794088172507375861968497622792145047526874443797552092494490483780003102456560271419033087470855638851942540742343129704532683842340122555098927624992367170273629815296669676018808493195096813414300449065911234610549009368573960157544699905955989161423424608517076174006634421192634497753855939387009090400079358142614183969832352488083411302579392131562836225353518075227501810635836754845029428727530254240657716398822145530884856011138837616138914692492218903987877870010915001915652730371454420714752492622772782290323101683967362568905377991745371651379045123146316765997805757340888068109193678715618931996862294007287859674936535357991408269010106468145475401668709782248710933086778673508631626234210430990100964849712115135104475647393457509737573237423890214189879710651397655249873461962239792781953654234814059599924940906736508506661775672844694238970971229448259274842647205099547548076615818995143700601419830873942628136717288107636486525362331856262279639151685800764065899356554679337860770099167951921037555644324328345897598089692200108007026553483509580922315159571012919036414946788140018052231936663820856227295926184387663057243030737121094312922548503967432864234949196068516831113720092546312502262842104523349593048094000803938374736421611669906633137448487612817909869436118946724986742930278602378279938340227054066967158708153013676301265252218003038929408673302645722501368698821358728603718604896452917658533162310076880846851580088466013024642578991629053177652186528876176487738848161633274376118971641261502577771618378093762978263011502905918204620064050395345464156291761839044487822198042096625773273301232731737642057980346102200394681053036533387071247093207399139519783923285329208304697486812203175275186250827120121322543572915911718295266443587939031280531605479075902539120540143827672519507469714300975590257113282663231190294145943832742542568363309869661514793833357257100302108075131728690278855763833106986666112957929319827391335063548056525070766410922659987783809007833794118208660734573839048594237575086231979695793205351913129696753283655727994947504243492349580887807090899558533851947134287786379749004356323108801481089989438630869746165422740667145007736073182705398813618295424242185825268837675609455575119698614870808214726533394822434033394649133753461214917446107504998971566029407876058133722944378658346070414042176025495159964051945440283873628032083543492424455884705480588194797993029166689629593303246599615453114996845116662283885825233263456776487369995239467910620645950435505633884031494563425574641050234593213523789243395718960808727106645399877982753962182214076205818367685590837170713795855674754703510737057483431811902624472471844398834430765868130405179171986160662561002718223321489256490154716413669288720463144616831602275125370014508171521388785916996666882798046974305068847971525569168996060683021440929034939135833009034977763612380981157035399530582239591495213610000871933831506477348212418879643775230159665342152225894267903215503248772410127159149749947305870353598338104825784796398700901877425889299614204347911860733484472303801893223347885713647984151290234330938856849163248397040399666013452152587876058997599020364877665643669191860226928003001932353353561443709901697182435150414862069385654098300543759038082757495223124627155974939129406170029004889497669503295238802591274203697111340619701091639654587268260116394176370628657157047647200409079996177993682315950626628811288571384845211542874259855511695480662608749250638088313931077298962058912362730586414225108901559183412279907204103335970705394435638895319004836107738335771935264316734275207453304036738870012563871324041381183194896629309778756196453328527827598732301015934822370478867937260499624028668985565579947691867476044715107824504432712164077716249047956228150991975864819022941185198629329493177358577500103632442215955629472833981225527028731518058043076500662672027549046732400875974637267547683440302397773790624527073646010857710942359556705218896287790760446734731890907083203626566306728672040083429359559323042224174923887147570810054839897263181601100221760510158603370543163924688316617073006735840705984464699051358478431405103006082501187872353694967632917442813739078502182171417552362449624607684206504349439638367734160825726056440411840827770825888407784893807292162108732220807164779197296088667092358778470826972535356310686047359100256331828813073908855689893737928529552052358913013921447878379637846449444385709484367493917438290473789332775868445375498132454584596038334161864781130044791161207776433182353032746120438171265819530525454464216725784335912830885113846536982472711280066735136028714074617134273277926426448221057563162683123330316019814135007843877042943547323140654903991590835609708750206903963659497627788259117203945026047900660434442977561383012454274411272196517003466447177286187852244982741646031048178044400406180453555281883068889173838678855520824470004467472543688116123869887978033311322516133634276237509991066117540888414885217056939806444093262070406084232895568138014683623214724037666735055885850703704170986277097000402906801344737121459894713965906794654480371795206107639607724727660587285917417089288084190913620795732407860028716174510743117888549692126927925655488616888986599935178462594996667202117147502198758147784405680628685639635933252067066042662062260439159577767230890129269592879674414877540203789268267879507776021588924349491020108439590630723038969747111106155056541339997375671003917377753208676707286613024876036630845713478200331824506062206923064674920884293360770056505037862613664037239432909391664785796846587810546401518250938774077845995837992020938440530806376350123277438226006387398646629022981824987277716818637973309127785650348064402427850875038288174211809835283720491138304498390473550407640678171695781001456292121855671586785560427455904203825442104040245317975321582071872880874407949753053057456642352567095735996696807997167688196772956735347377523691457403498438570991758862792075305532714258263952443330307747154409182794859779853268375213780617557205566371638525328682272175836970114011824425092717647430687484122789704112124778513018663137358244780948786472121026973009813064868690274253845196735074433478842309002066928964578288679704049149565553299214513565373618693814269273994035096471971426140090284403401489852137097203456500230735120394263910566380263606550038062877911996385776250330214656541278668405183760928033173907689283116204157319341749790151980421937346991785360121632816188159839567265227034376992066984501981445499447124636629904422816694663752192754326973932820756421581320757223603911321760969041535639654847724368919256693805506777155456780310856738289624975518722208377562835487086591176992456745859683905922008829718724571926707052531123384821533891962776277918696238386533693000502901279649758227588350177270137634502368996693436267786019421029411818672297902716253918225753764700929574497276193285854257428142706793278928515020393244457656602929477873340294362932720363256945952007450471006299399930649137217873864892244960860493189887853831389805228886186114999787440543337803903862004336884790150126185599741757057788662493916158007583762781226491531655603997085446216733321148525921327975666988837949330529845238458047256091700307686293620688897266887231928123874785650295622030064889226843875855887983953095811632101566266561638910453798343785169694682642005343696147681793389380268954215932949381136965119954453006545171604581413751766249136327817762882564960067965404429019546018379069801053985572172619563431386698255009764031720022690285018790770922248936077368831734071459360047351705503497593331179326705642989988756092003756778078760057142451483197252193212599622411029837736355517217260522312047551373954003283175991945449777571250205729450750312658944906898277307942812371131335277552522310943371104793567671542128036644378480750284192562466439941232904998061309456268817477824892662187058534682528327748708748991628698127808884296627028838386117854660610703211806364561301786631667226508481746384937610854666219189498128250514157338407745575203962501058083374423029793240852395581307405585569987204846197843111944374497642835983752671784242775075976635952575594739636819860039720261499767027298496225711530370325401695111265343737548071578949542552627981726528947161331527597739071251530908861580296647053827736283377746247887180844812800962542971777412573563186259520376810301073230473266924306598699175974112008740707945648944663893319096300337313546788753927216291465639247712452893511223781799819451331481183809582009626702559224710965660194996428466846584537652462125752145774447792575622946309999790645476270508657053863404765041504798957266525081057375706657337615118993391686093971901782359880413001760761700506754298453204507762437570506669899349595904577422167953484284311607306432323929884447617365285114604899442116680777887805593252203185108694435880441763467522016441619629870336535765329495227753205428129369990040020778403469327980092985988324023029632784302149837180480280503165103311307921665222400100850640092290497965968917935478320772593442289749730083083476169078699153000858543840875786906369066676018019712780367541939181268230884506010558211723488343847725651719233977822666197226321195370001033696955211961720427353733338129545948982022042492673213835026848690600473761984703330761644764030060460518594695041153909648753788481032087837714251349627916328288461969879865982714443167441704716834010447793443074750065016454281282672889642918029272544636937667994505011399877665686592743868500309383867049350465978491043931281957236715297146378694137640306054424944350848743587048909142517489973961327398059949559311321347452367416908336227846385600364509090967862533261364609998575080960316724605257257566740789904227458272708868256892051384933334987751822505051500189087355455068309240453912087463963566107559920646797180123990235206559509437170474441412301048422838614008065514978797827240241262690020865487884572910449688511727514943386910995427268088814795094212771035725121611902101415620884980315987248982419455406820066868714985567407274188999614540918439313397809237845326842260439809239506450150271963306288139976095684123844695706423297490643245566667840974134005332044299461217525566894421122607781055208747340610697359981315639046721433260290585829920113613943817287568908217551641764148718685182041686284931186419805681477098036691217567094857647739785091592078985509584147200589016565498988458424490856775972003805749765924513560175935957793697375554855308199182710578368354301908538061139610575823292321797018118294285706597036771923448559580693089998280804983794653228265876532603086667066288864995559403553756330145497631150698680600913841863469054308880668743611857444456699666008022931322631772337683675603960207459613019928826173600144495955570261780818769931892709612011079249590727058199731951738063832048593612060679506176545931228376189036725605321450339006892472093667030865374947754342734743343287884169372843545306160109949400310812709908200959243612189819812134516624009504659189139214466028335413247795941702641882087772366592454486744277195832622375652425398585089756455786252312303462328528169890900237437619453407320482306590889066112972094086027513922976172455732988118264724693638593655099097557309616982128465479500742364534396192093085905605957027128828727318706734809413701020001172996387168482084362169332310793412731127509145811292637942646821084869828754801907966073187696904510148557198263966140224673753488269362738189223957476891366200178642434260543029247463921655123727305845855327866261121382685019899030232083022267144793333242656288807521886996533032207510815811391496709359735053918985593162138115819300427582461677654472116670930958669471090285179525280037376212042503649427777904782904033984455762347856569597966713368487442413176133681417470302992387074870915029122928512428745646647151171069113911338860985634032892735350956665721619009839707011651466541935646170416154869495408762699128960198098711183508590758079443255723312967382119853745645282793651082449963057566340219019937895036615878384454885228453943492341778562482822483674695682952387431229285394755684363133245720011804206214522143232546000625975722480860383863887990578520994305878323406526021891258880696002427307042252942086247314376745284664256780613287164861643359268834614727972482779006088992684877893094025082204730215327529198757888244885847878335191659763126453864767204419121056028568968926921919834283657306542615450566001821289978234193007263102082838647822879238836522474517984766321494796818937591055653876137913741122356333410584035945677448153212570873054389598283257731732209839703015508724011472701747324977706754735806923650051158094473169950753997426598324670355082494809071419066786215012063283922256001697050745441116381630041110757354919945766545657499902063995903732489129940657474666014257370311999520009739228294960402770879633466098662378896635877070467643465910350741889282942444005765909588479411550450822828328384796987304742118943809515637928232212923408129577551394745128816902009552555513238256578806673413061452089657696937968565719006596996609715577101543890928747056152334854215376842077017463509207360229680135268733615145405515779868378644051519810262174427361649626579635383777234228114093833588596512579636460453346794120401925310453166772488868784436143391167548442579239180187495718578279628434147214451724750310402181297484692192376549873569574710007803390622411438363017215671868360632449654021488276879918097608687041692046806652618555543661069786246994416427840357195181481845927437833651973344690200339170735930061751670719666702358344770972021165752964552212712637768700758006599376225047463898455365130900144951587854614009488314479020911519691875762909098776941827840903489893565095794446690812113836958117606507170797529253501105485601082152385921245970764144080795244890793449863008519825280581306708507270593627147935814821049368138591395724543409499876112519215573437595512203994760964904854416561296893926645159323396373617279664183445003507026969950134168410156660979794428890301231648229314581708014828905453674810689588569996089573984970600029565566348552605055089397583178056882427192922539947941015630041696685530803952656257700504556643970175067071644445571313281619869708239057472398801216473402017190402950168967547959489453435040553297194872010868548233911062243115272742220355394264390944353253885847120443874624231136670908315917761149085391393478736938716756070864021010837010136347650010694579122666584343181913334860755647476762084269749998511925455967494119077297953490145188516103889017110162266027976861479386940597495152311387213645982870796825140725594407613755037175644651147479372940468386766718148898930690201396911249069057163249190883807998881569194309561901767315831713780667869107938253316060636898689691583573795900075700480533091190778243445557859928182952801769368819604207598459266373021739791432117446676755988689555417486665081469653418615353399663039783437977849340213327097135873819477348013277138933062940800485427578897975419541788550959971862160323246243555552785844595041283586336618963218679054089899233013324102284207515750587538493787599997699500862539848148576252418704886211537161008994388598315732931036766598511085619321080165484248558704135226972303931443884613832904022102801230616638262472439222687869536451506472824544717045722876616719402481054422381772887923413464860766499564422007865705078148591951835407007594734199604558200970405227267004983672283054386897403910640961623522088518665852881946198304152552798457403865466933752125623710735458208205482141024951621181450542875832893532616737617373305143298348678554412924889733526128403732523274601071744704490808446499771121231701202123277747590952036776996976334491227795999459928839975996582398334622422449215922471285308093622793443439008372394512593012677684745339267212782112093157364351925666057113085138464144883727931628340954642471964807852584889878234790693211579152008391083089575097713871368719732854916924159961671495468616590272228701031273843184512273320768796622942348025920159218390620809697493772620122031905948084622233896830517398152973870211904604843597382073526493305754510360830843889989113978801561833732657363080649354813849289124798842205275806497478801973625517881168044323323244753801884667006199295886274610249375726922041368569788705583838128977966692044675568912463058827132223780744895655186619201009151605291293861989294032810619800583469448499613921121148935473460021901680428899957883689850555063417969568297389092669131571943314098657930692240440504717342689363691831711305732204063497854356671165323316094344825273155542971419624675281619350036139069314302151634680497932847092819926555008804990684982188883115881907527366571671670462477708406853458014199232043431234514343437573597117854344206446524223400580841570639113786885373461802498603523465792095911559029612111377404021568863334803095126626754013815171123207923254086244264920712328659689969071276621849420264582115082941459441878952041520591583447523004249475596239585925986551503624867233535194506390048912925270164944507753159538070939992525898819101132557087518675275021881155124537404544886480454543002971011023305354324086595439101011261271561288993142112691400430473006315302117872826751609769807872002650960947373218346853877868708244476606502742445005550804427962875393475515919040470692125000732631291132876861836245579256593797947851893229904713445051944127975568365805900086638935993418304456978721483437142752424980098223189211387308636144685229008656383163105266605802571232184255342856594131592304944998572133973302665586409766322427803554347753069603257062774534259419758643627918754339678459354507422549343630227772085411133281110567397020921513914839169091785754315379364924132828034670493985388970869469079326743003432434161547796647152011894579078320841502059834979827597816414885347817844390156662234820538407077207505251568157089047437214386111735054800698481536254243467442166034472094434728744837336874621357680849600072035892995648777895319516666663167247286562513234878115665065422702604233155301906854136449105721516597213040637461041936683412783062180941164863659044424555008763346832373121542922480011801541625098618355930954274372896077292019726264745501773645462031640774083442016725700608913457966546270787804887513305109733499493859913826457422523135583046022180953509401145967976790621595782531545956779520822098520108051356257829889229424757670585748808627947740094738935210713548137974874489615640700807925802957063517210639935884331074039728484819020258533728119731840081066862047473407795462980940420792323088675941285146520745757546442805936914689057661571035711017888897609069027148905045138860319001048898932192275906139654017660269539970822302317116909857960274952167871191658223730766185493985648502876083213475300758316776670324627569308989352212516827671209870875261701313623858474509943750818691298082375200547398885149179758676678909613805257666797738110196058881546633293175619432408319942514090590132715373309622508962206955200601759588689980815897955782247960877069461658035217829272632888093605330908004189444301164554984772483777545739683582626915941783350295586252275933496746661089734963772936563781318800761443847835266611658129939975834448605424058592736802615704006516399710449853218242459448461137570048758875881626016724389060182087235579572232933487855217607967093867458956334319303335093802301930528458427280656055848723801769514888570823169163311613319204670061611074958534049906625877263617892066664476263434398155274652696114495134351102394632403330410369116169995408371885813079908394692834940862896522368743370804100031688539428770306077315537089572436614050584178812964721254355892142110847599525329172401419721138021120254127750253939542796109756348371949095065002005138708793271359025267546929931228848025118911388824127217520167402727918661008278990735533165286888087016348350295007248325115104715298460184654781643451025501949803905775009227489173233827466888902800390392895640349674145981676809934158238840905428465912253263184701077334993652152375416587088823518012331917646412442633421418177455643212748554738860786801460986409865466049755432315814752131428277373122326361683180867344827607268108720764935167672320193328275517788836805996310072909507840787440436610002689231093415599136199936196970899064090481343127586571426670483050685985529004181179181750163517358352480144271627351286087685800189369763323958187680550937521035133651898749083882689020241799726812744551931057320238858493059181262193472354953700295118656355527876088107114334765467730754140927780864442383471720919284153207790133547384908271462441518588913747848144112112136112967607989389891269367269955786035764848063406922088963293429776803946132455679906910169529963405420396263190498673007623122150686391936466285557820395353287643471811564796306799460458346121534752950047954305084578313132976522958667046569242140488040949381774188831744694700302132278342691508045537721962054387775296901711800231918501261670406466156854575330459249466249218285575319130463150010321050650697117496306047598144152306021382512712367741094241286513365598473952971538320686874506265903430111922643784929181082270727750916108556192573765973823310236165307821205445261662633604295146617296530418594371839734282754095016601940144139564105961639798396022717148749353019242234957852311903648603254593533611324587007351640754110877326575953661598682596747522654039329608986640237815078786817364312491436531113239203549921345808527282717480228998736773280623619163398446714219114235974763508208678192607359014742832744349596867606567980379391736106033490405824997597350275307929953175359604319668568640110141562724418795745752980691742164665024995583796833995796116325876728777096094910168488524269774201182727371371691922586177210331318201085663393040946897054295668307172582218290479754968178853629680004193825266883554678141697148379040525405365365828903573898730838060118064082862280270338329359537048427677270722748715999958101328942816150105246874927777746163602375749073598973322581561379219469752532414099397020079959486458622482300230015822279745270818902285034691580939192196162093004701209338086363683650431749249838100291290769228901521967063382621617641820181655442197881181243638931307694519172195127945490593362264787155515548310822058545664648162229745036152246579436922097794377233808147610320624533368989762444599689500136377927999315998761876556939816426182343252274359426230917424731525155970472418464071078782701449187675627611962603000854880965644461276770721952030462040751682190578599344715052765027911442282820759458553621583277147353849686951176555745012485434723730576755568265862193273930728889735233526940933619131887427759574239107960940642405380872808676023335858886788180937960939621853990153838025750288610840378093882586213594931173811720356018510879350405862214469094685530393675630679628979169851994300375807339065242326372441566192403128224089421986081774222837994031775626216082355696409974247172181835739485452456773711846792198028686976332946210497864952925296487663176237057233818424992774904765205938380626073386295970571755303208104722965800710000140497155395270209391832168664929635191900172424028404499312386582710042047248930084777593087433078605112823735761916109560060538858186484780091262883279428688665601495080630481729847329494240767075384523610645159523224875399150111473418014709538534417261816271813696435642073788272987584877250043865829842316664848673068757886947197152132270700723967690920813476234559281564772410764065993897277664822058613002525344659200322137090674918068559009406275839553840797598952041481944998208188940589970691759536972530612243423507125251788897371902092615188309017310666231344558417309402140841277481581998455881909064918012982459395087753325602689781754149097913763774717805442757081797107336901427771353798123281817936031400904059242153929575215898302976052732545736234355368880200385356566352487380423069930362363763056139679550646056777748504364060945712792173731931182086952915495646320350220798086065828823739607724310073017101559339684608699268327369425336282146186911791964443554523125780686067337674828165109861475255659483362652123603238222087179769924670780614737697824228385470351888486446471352222192840427328439796879196016087894749392388036481265520501898085650216934478655604305240750260491355895892968858113734253165371837667721938079805579110714372984569237676624070202900252840259020586862401168118855067799883522392622184498521064485992107237594458763900271984033021379768005249846027304310355152034884912439190323222761219765866541878730496492885061802457176311513095955188535239791334265995742990761987175501398514593573357666545280336783477304658946283610414650805546118098488319722913039346040756297538322316194764600222849905048781193407198802807192785861546713947824572260811263478576142716058693009364107179435198495563606096261890309106308317789470712251331782154341072025460344867102307451119513261546672481564446690255380652935486830172727476200352824264588736818113177496934800020966471915890333645338493568912058094671277034756989444040856841442131407020413905816866511167277775720938350080554268118780077900302618047701104851509361238201826451992449898624263394046674870480390790839203571011266006577424588553361494259901131451611192761964248517557669804974875887434091536671449382310158980501003825052687401077643030365845237365879086840692698796199612079171797913809390474826637503764100829887149949201964725834533485682542089021888178239752440908650793178170942863994212174813112397894455222012903280591724089409964647957694362184264840261685011637095805977305126647920584497496478455645462682945937793838046668872119984809235349862323484825924820779055054964807609788710214609367838971972859549509706465101423059874554129090784633479821514007237783262651748499605022111014342514088005024751454548052286367482423723438078264453826661429436309545369323428887306148534405515292486375089110107089691750900363093022246082622092686062308688185513655448138562408550293003118896160528831143067466344154239411360463774528042159590232393403492745865391254066949409453413128850369675793362010228085512153814762241744716691731560135430848253482518338809057101511193338021685690504165433686497776541607043536008718154768754350619722048738820014996887114626295823062656672975922347101952025017260962875192647779749317809452735925922110185159158475429577648222265595592296717116631044375380311881914656956378596015640930524417538581153007193583898375138367255794582901124191766741782729343837135410711484062618448229439818631303722128927500668433411304725288353971217560175404054992492864556999805575969791577568552326136629458839844743459751542294989462267903964779081937205395712493263674103607703635474880058069488187062905741608468530109980031126107151530331736360185076404556668438229921855685028462348759305637230257792505823072283046826138170184152439523797046390818427972762944306854158489502435364411291764183741097665896859193691807040622743081460096225675872098807164914660180103199693821141862142685881821296252367752227157358721966193349265364030319473146660537501894567727638122728272724694823309109736818442517659512844479933569394553837110897709538438835022152511853831572083954980157050446701402940674711414914639359409897803568968847357353899210877242214194258359722054007506449313971387292614996648512489964509478728589391734856085487723515994045294087248839624358807177309407533389915418330828522575154935070646613419265409161364205601124994717392476777436706008968502194077984731534425122529058754245493985186740397895967776168385746514388453203016197312085891849455492791945293720335769196414845027201107722462810602578823118040980216448523968972832419195238861845801100597913812678316205174881675823712905451109195036598506520610800702230749864655519656761038138446038004823116012526529852661024092055196352688016859810965115030394828240930078979732764415018002562613681883061228882973060076443133114442372393099048519948022399035926729281334255764771792714367578210696938636189644325174095523046622975054791689028177248353962280871895044916896692207553636915789111399142535557915070441649703222799720556085116893543539056208246964812942443391057464252290331962221624122135111885684015359211917029298911012051817519297373946572578407026287513977655903075868018033701042581410222371042351481402217564235924843422525021731150416249004451396626272754687788129041666009939984814430638721572280069125496093373864444300638641173731208226202283954139999905570511827910582821102676435893923878961575546230913128118314568093731203067814538539787572095227940442688075477705125298039746494707420889225501843007891822303110924706680508058726452877038219968124566966531153823330848149677091572480230265255869668372375925065496013660290678994163920243659707999024887035247299893568120411091928112576576425191474024014215407118397359472497337355926941784521220633302464226086295178925525265202931120847521080820841899565330646825533657521215077979406734798832964331099666647400016852944764321106114911438558876576521573727172936519240328219330604791685866069981865167664903426291030711178612550137071227602563711510965539441304513283957803525741933691026263458851949408426055819993766723547277315723724112145976817559852383924784040428063021635205617055202019247712443924928122411019864790861337656645156873201705180916480954638612659329952734773422042619592160578518050682746191527545460487177928761567625231727774187515205228510103895096089203174342432424072648261443335904844411782842300040424818362587551606039898908641157139824065236701588785220982426886621506084682539169970727686745153406852520075159704628626878280936132542871217970701030900432441109606799476977396979110140459718508854426567992164986507050079618843820215497271089117952342446964253542556990413271375445043417796933886376659520802009594187786202723702380382100031411741943089166853477072469552822965788342084667565154504235889651549766298148277358447397968095796036136768919384085660764668796556654444424725000255641367447612114813406649632667976547834241491138305428815124131460953864177798767264567507613457730142577671718967518780252789656986833490323232975208174666343665141361237068936016439361044699209417144732218488355473233060786822564577003637924649722018271370556061175634904048975412375590003321235737298473309354650362487872407228861447183535825036533838201821684450542922103339909109551402752938820839881012998225499367813992840840202350454374361843475387472796999442898257501553843599451394762084240588135647038392343490850395273463204345237307688864610563840141661743282020259105190473349474051598437646829654543576385918615304827682475710530268202446192243874854026375290829073277385683680724005247075973945808149922721913823758936667150947602163828413990673908767357374452122327305956495678132836178580019030592347294932327383161504160551913495361898363580482375687058988176316403224732033122455577464279545001171535070771913122007239970978169625972840423018732943255750015011533542909343700156761351017091837259191189183986034805385418940511345069266037313849428532035954105735304167756979106575808683171885286771724074564334223237688065769285738141492036067863300202909101380101675792097518179628504655522077381795170737247144882248566098331592595913525889705106269954799686863657348154760414896813077930584746910544711317920639036005183156885156514292751513326386590230802493584677738216070327671834663456591116379742408353028096959898123047578657996379998937995587946382182087496652138238932173964896771683872653217932213620438564535776231617986446517045626240312846746955217585760993401326204453591355503758745814757082422306143951103330085925878343634044690169519876849054516706314833821063712026703251011519665945062532144809797681378332896414123850698580236572925379010246190451712839496114044849174888244236213063737337407838458635264210102346165955301214811434724177457662984280062129470547125398703601851317958794326301610881015898462382776837794665438117448420422844139866920628522784513054011663885882143101468566896098752953956159352430286448353156671529502275284235970776193890838757810262787568589006008567283634612678405060916382174185154176485333288941542150477030113157664355182557882407653618322461329396445547998051433867513376892121604235990536886758994021712330486948307174648914617086375635605235624707297844491978090820457674227908247253051504786666710776870237138359476251091316620865760365698635969469849198826228344617714056461371162694048421439468949181997287535684800512295050620889075567942461970819791027782796411873347984906402076100086398770147570816285075305464636099562380183491338445840080433515348290280933398457865926476908815963953672936305243019432427875875710084437093807801062346988680930571570929630230347853043494031962728697830174106439038093410617923653686002085346654521939411197021176240229133613795668469909295297358643987393576300950185052059861224444550514072805962066108097882260503418503434774967733574588202654840613655944597796036540351321244917345868114672908457575546448056300372192730299665274199284518591101620502423631542637168271569860183686915705240414646080804146727725341602502104343421950962560938290580997740071282939205516219888566514361959661245041789528700047805623933038316291588010610275113917157835897703440486435947272754701292198359804832020889264691381806246358718401707755521118329250397808215425236404524492913087761743960227414167864043655157233757134668021904003963465554917532146032923840033359922191680918555957361175793648559307314237810466849644334191165042431485232273843339556700241052083405476676970226006321286229982523881307205730257961600205185207266302759425057092271316621023052106343676648697834739269369530263985672600157291164000046174299823028496739692804320806543045495784396204837864178362876558544169683333896762892401597429539288696546733936883200170655431869417801141548539708271814730119325426608348276730931431782119631933274327639974750146083912080657291928157624138490482557494575365016611237594795932196770625442446910295968328335877266992076386305019968969768539427417527613433952449997688999090925862378631893352419078107990746713124601447861735418561326496446632904709566759353238637325746756322059208815294167186470114740104748735422454570390598502101237623187894922846799049001353078326913756366328279022025582354540674148877633652541316832798093489307353329644155809934874987039793973261852081223784739251495321337484886093894271828725941257495659473284343869742062364848659832412734760989424169535043056731704554005472302379716905451826218269574580490781969218419337367988424254565039313459093252783339609790138357089227584523676035436271760478598163717732514392925333183278810153266469325263963906573314841989309745479332563237603493501220900491712142154320005571250371157386160477417752619112720561979022826169531869675073705148190311138759390883601406517633560806438640908327338142250256142292029032771588837620439039931557150281091010105051897671060426646508091007578987649889303304744069309802529241094004587904168094415885058820489510933244358229238748043674306706608918681027916890724998483401375118654680265772378002969532783250005607551963075593800400412517708657416242457279647323919799676372779343245432566967217949029948961746955306319704211399459370242630127845002819341671631755223326946329992695721888842556773481427368328194331113893219982908356540578844103534528769528727348565548199150463039161233932091202626217769339148993822388757984229757004458261818501075771539986642838936423414894806286177809358697382372141695161345912881999328776726820900721570061479169764056971336372417257829705346422750705827812750845684035227301265843201048137792351172606710950643252505010707267287455302868090145009114652134629757897114026429578527739619442666945985551349721143826498408248298339694650725846497483364604273367057865881781103228605829806453194344869036774246639379581264264329664323235230979908312466111492395439669012028537980359332892200959314607468827831959378109613479557406350906848119051531736050579264373588630219761742833091821120437897594863801502182749132979764963370791670890004521858429919418077752638505918967272852243001296883971491052013970093715897111845323727862882875146313266025352409758302105299168732979544215537438387390568469868445442621725760490512999085899897832688995170302138419557138681936682422113353033518291259001437652426951517922642978197882460841136185205482731882006755245866582464369290731421819535393961754106316150609687857547439229035006516981995391528760346947371997365646538723575535257407398477639956347004253376878669006241204307357198324941364088833716005466918975064408937596667205391648459303480272553378188860153586327594288784545060502793617782483074338450382245170354975268664290158793888584784857640789611888410332279302164433654977532988876579425495626192563264028991041626108925714191131723587052399675033409381992386279521176837630452187990789048391075522921984534727604701248294028351308436872113637194894468831677264503233468190415800674443514052959251931595060403748513718469250664766409342168732475820323372380340958998211642501416041629277490933793566525717015672449975837860084478097407205575770276470593874090811051809604306404801871807170278871450626393286215149790972953887146005976029175530917985265606491476274306025466580580576621792791553427465668560044748593459304872802843799567576631349271375524455185618194219075006157789569187277834541382638172328686728595014992550694049719713800879454409912264582162353196862974130781561776014531981419986742285773325658168417124086401496974885652878726378726115859909729001021262221414221633375132878833318142109051067797375076208640491898304599230360969652656978284900376334993831685644466639685665027871279617469690316895891362502043264796519156876201819058357181479876296695507654909689764277421210015752505936903453683592218560309780700921557118310950210039398748405671906672181862785536299584853426622697805763874067551655537257914387109625636278370637029568567011807193806588320360470575664294975166255822539709925728735988810235311410232112144194756691945730266998908498631759706312684938636260575510259041613823407653634215782858546513736056643231592108597248120105325858767784966670457050990819973723280268109650290913586082457781678731807878206975366999302052056025289376754189352205276294473972002507913703730157783629789974715143224734389781958071274392506537829433075767539815555868928097201725585719119517793057305031586338620921251310143238535115299712290321219331290700560174104716553653083443196892260782953444041624354151714148961832883627598071995472993711971502853816191299491159382015473425787881574202279225521896088212875415924423833757318005822669132267745783778607892951002985367002658939687167432157674172227069642508887406114914614814192153237684607937399179471820203754184027596886477406759501551074163307628539980136811731280025644850770939096688795443443429575689488986158847783474735105576018347702122424622364684849970903305118396935970000325020114419541515071821137872559096105430900821977482950488713181741069063825847084050091334975363705482442149857825719215573773593492552940529156358865969608973649668233766925061968965944088714507632595826339196627895400640870130706876225334856961299545041602713958909783363692641020921770355045155478664756303939044078277230766065286520197835043415060242214720060787710213650047198040744369254118569007210686386365879199990975984264318930397856606127810223619641210351577339040248963946853589926310931016328153602241582705261755259786184301967563651265101980006759053158224262588733240239761009124157161152172261267447010998597722726283698349216923360181828749163963440901523157721661599168225531183269522595930431017115551712086322809823786227629966537133329319292029550424693287582610167590824750221621734314788397567699753804666985716600151125136740851634006672422458211767540174086239442325074459598255191039924674036186310232382574424863032286092479411892609295780407156120462344097599103181404806478443556304792055585030243703176350862197961083617334975749931691808335164643686503106152107053632858884352135596914529743901407893697768639961943286042325408632083762519675656965638786742187326728677080672427541659505609873879095178099670872267242647804312019062055622458095949576419580049829282537172707697462839933484014234322147368727363718476774171948310325869445430003480433646727625143563807542470222188166354177571789032691671844573234609224660337503067372616947144425942974991702272401088598748243858506809100436980185799775578509489551991736127855065110476115484912370285842509094182250141140276028996099890076876909150957692705425876807646356084001093507277563192042433290445666805374502633359388543032103928384378853267742593427638340960980834627989793406819131730195796318947126871437340615221386970661758896868117674530969285307029793764430444756465097584038545916613187176853813741158466880795790524775323038238888159949534553253424643989540373208207148625731273919823733781890287274724799850651710329740630279550142384437292525712302773640822872955428535612191779205631981487654950879387468131835793611923335030359191695825390483739988741602782201178739697057021786598666293180557702715287876183372795426085159349048368910201183845088476646606911416125271724610340348099526979488478977475318287673916064537770823421120444720194563157098708793116244857773167220806609811589621559723258627213034823745880236338330594972691800770907137252105978869622239192626793164778591591943656691832121441831125761320240665936864856659921554045833314893695588210747436490499692082622277101635245220640993718512474468851123301593152760952943619116578979270143210806723096777443839069594712517605622382555849368250993110526615406601880595229278809528991601402621308989407842448531713571031674144415964123878491816778832534922510947674533289290729477579416463961801957729761988970855121622464426077219937158520017660514816669183538229858841286991896868407278074033597338606516629284550134419475959662389651349465239483498706546805205166873028994022884728377430306127388270846279768235909531862779756494079964169822478425079187755376997618962287463264951460362414050020578734514316569807689832575909292895476846373681136060289019788535126491231889495905187107669410743050739873925529046072030749619241081787935291562193821452933402189608176726799764652956971716291968303390200888870130433709855112974722188472554200796984069474325418768921816447206833852545151549429998075409635164208790648461367156978605696930258328451784834568007945521885169320455313747279201303031559535726891943101699905259366722304576558927120196742461373408264371170725369659095352904799700161247277105850837120368244335477492409626197321320300660755452775138967939263063058493754742399311424572377933236499843281542029452980957708781323969412905225881105498489393975551378170023429125853645415852135029946624281998095625304326243619267216587797805519223408533107604010945523042560459702132431110143560247286826712249179173073986815450853431667190594550848115454185340319645756554912502712340134636355685480779842771910869845132534012385853492276479803420385425457752598170845365289040491324121722676592344610463865010812875599999270223908381399926150724163304628517380161876201650749854512264480973224464467069984379599525243195230826257921985041573701476241495716409067327967820634451853526297655464427852241315431736119896085796830117169752175539481651196253568100263030226362979614939098759825127591862173620231471973554582228317470163748709351570936817965776217258271555802126541457281737687741359286002428512616482284108998454356963027988346601194617095228746583676553762863374518883502399534559114508663604173284693465391495624476579959559325368186099989344322216718983540191933517768146005781481702816550650203545501810051809072950993439778909735793541689945165754598473004591568607443380762302089149163334016011342548372185351170907682920030142550677955822274080448177584536409781312235481023577023815803452778399882452638975978770012224119058496900353613194749029619667639273626620399876282573052542889245237511956095511528621229950090255284626208698464066815411294530358640665909461257380639679262578969682511132878843251521738989505140391881695427098705955667941565737146853424250232683680874445430849651598989385602411697593430321316464896570827765595756251008320596870600589266071271287949863957203769238904560732681627192723321034298525520115097311377379231233397729174733447838091452993255042109470964322035111212453991771441292428894549551374789206704424440809297314335597193712467354396357083493164757338623976372603117273190357048151218910694396093849431373756789245059953012979349424941587213387819136855249231457410981858866606919583395561259081844017343933516924861664982588168407470234032389932755552857538278195110916064544659880820608097233920238244619974650641555724585759175457677535923840604350583896261057122026112073147180805682661174598567341038078099440918339028938475470462297229029140149227797976810870904324210529691940360914502191878434808669803623696148836238930825230955052126164323028414353931906709836526105445914264506630374475643654919214319372641255261876437748325869939051095306427516052900222505822706434747088181141324269799281616733890225976763257226466103713215732458550850427263297289317947671390605739278266894788830408988557311113918882620969819038346956247614625351747459655769956433430016447166884061321764564095203648300439015254714452515187424550534137674184108117887692764347859554170292339037109405245970463942098454362132354825184578786896966726897678633541894888902546151834879279175013842156115750985831605135699289774800865048590152419837787223352422821625931044925057200411353041084323996709277081979623693238200388569538055001149883547781261070298958177751757209314607650204365796916621492030475278453425840412741044257564290298824801462949894048216144204695723170695146582501691901849384828388697707307603351910886745254170702371831349168910813483509623627756203058185581235356222225127229048680658186092588028887572860549664898376289727894281124024497316598761627706979290139525308041096825882340580396605429634021638436413835509659797766238851951030178517487007390512458746162286095466177906869577168166243737430498416447001220857607963571313956375611994703904266583273664807390805450667927225535636569296991340992892142944891089681511484365856769628563015588609277172344774857680932644643071064577476504759192965827703633832350142376489774830911151023998709587960695289969640458582475069295703572575354244678819812347926074534803499238593592818370456417493376154455619552375935861154663153445201611576330385125849745588475481550452930743431774546435983232223824846703157975402130805615820197877729618367513010703736011782884700375631656261983878202021652459162332046915884192503058028656308683848480370379952928199583212335802173769123892679863865294229255673063024634356262780160269011807956461586243644814639764097484666690044860844107553392467263964032986284893063236787246733889188737649313435476335602114929115032740836570062236956331823833917710962523228421992072312750026093569553456544421339969447536800214992618037742304026278676827721609020086920758016353467631284233416335841897002647098414292386871797078478286629210335314729585678547508236984986166265623477838963548263858055309265270871499810857694163522928659905451969738643824307609552547910321630843203381591964238801855665116967191728996583875346561630000692958955169548068400205589111666769690170462932956001217596947014423747443434241749530605402006635742597970715574117499028061243202676588889048891560423539296588453427649928393561306828453974381444220524166914615480032885776209234312844933692735990221498122736079063519613542945741681990850509753750813621890177186341175145963685497854089892968900844197292199278603714016186983760163092807918773474463481943878011775196601102853128385632069138562129784040351864797611979243372549429200392337838504462397918322945142526444223928545119762223518512857038195330788691052605714925666892142304685844685761302937871078122706857094353332781862043646550089646455729227536760806966960257512651904590051794983461876065509588380259836921059671383620085050219970279834010985766562257319649466445663241949852019089367030738137837704560120627344067367897214826280184113312965472390186740924880227730759639914934915394028909957842221553072238116815321450558687920851136241794896725652035618930845880725383762514961368888631669089603581987403403307338936487075039722454223076969336512722108578660266031299568256593603438348728352519349599019007504300423453583378219200679685479272936279042964755647353978101045091540766300121926928142174877877647995213308371932028080507148108967001321441295524220638771164071588405586247685801220729256516950654854532819679451897110740747252035782695988092965009724440321338168499953995742821553706342232668231518494707097978526184248003368675065359371139787357261151995390498964834580261142676973553201604324086502613707090512702389792032583592842742832464441448592250514109242950628892858645013274271230149844260649743227431057110480272858421506392498429783389263845658398453137473757525593892873929129824041447257917601784938581034359514257236721058957635790088540112253840863245569192882002410812787075250983341376730944961776148063211796262778938169717832096098927692640304423193877541842429158638020494654122351546567634420032580496977096970010312093210997303126792953641950825972762176272051523204449492398032688931877752093664930554362351665766014347836558316340956858868497816318867894881877312736179681486693864531809486596018071066549687336857978081878017106092658039933081604814202309711129091112971254842395891250011410860503897323921959034174041912340938742399206084230333881762642035257109332725122361296511754855696325662339819236995706490723984266001694121825218137544583054849650961945469913873416107312255257812501989240851763963811654804497899727692631542612405632806274986353627299999775135457121367623858211225076249748349787496679691325901617281227959124851085394504114579483481044280653821313768642928859674664075859746672887626257148484298402989717807362768534510656244489296775988289916088557903839484192742771287254928178366491123511504895526017687782794191317028210917988025159529684970381010091736476315867817461685732174106246131447253020619654677438518258902265120575179981308355683955075364686085811936010727917331494181691450232999223999040806500371523436305583638692591637697132566436622466348011925762489928412619174068527012173387058541628336494542880439643009637771266100265605486737948754434974200868028886713530908184729120592942877872948969320411709552467767516621080468266597933766608195911441859422552513481124017576131608924627240045847020078930408005778445036469390799352699628164944602336897259578325978445819763619757112009005479046709939142985926694830052320176789766932808044705380909775749125151629913524889514212169065201740163972319396293480927946171771515699994853905265175012890567079177450597937143905949400286926015703449220345848513828548131450146965203926003342893208563936982203807257806558075266949509453434683618224758606010069666244965811888521453905852539587929582892506158548063482571283340022071433324746129110926191410183452749335294374499116965517451309386924220243350419549972952772921203807742858648949336836932912207614558687540209767194519124310116114621216053095973182784724174511230552222244855589537809374015831132404071427827762037133978416409790871682290965374275235803892769273447793719418260001150128130954764794586586675133625946069727462741492365040861076114194004661447718136197260841732202972254421793508802751143679129537513335504389672969312197905816824114493572247263442256038986405258482697820682963666469260878928920077474269215914113400537136777381933006281553047974977030867333425872243323688052927308129330203564095897528919064817241654554535822417157590003580804332826131246601928459226889539834308318161022732418004619459258451766320439461783216420239184290885103913165837104857216409484049221889446015634175394475498194487430948637572671995960348356118333715568538891637643574242303740215034035659641218752344072853856637184079597250292736683539959038586778736974888907657460883207729039370896159197405057510267483884559516547361112513674286625667231619079401709209356408875001106954247245801490044438328377154732419920365641917752098446695750236972624591944838095822143195074351944021554548321517502223655900380091203748022696500043606121888314275236697640377219419885920506078172856656032413664230194094710553246439476719154140768686792718164408124811838411999216813935238403724431589953586118015383932973315741082281823704830701931838925209306696205364264148215651567918689989746176222478819545734390925772072457096937707553479121335640492642774693885295944316474149168365610081024773210203530072847391933623127658005666341451870384070477261840534594571227084425835810007069691747178167640736042677913014156916171219242763695902691636159222579803657973740845238791451176374469859945226542442786304003459137393806507889526958025654851583167451470417493124950867509991260682070261920538175382337839270738585055768973003470205577119898702033176485597754413178176576917164289837451426632318665267517974804917616941189170298088881874370998515638066177792986629326708765335700584711455500542415063076252169416473467117760858865632208719818530792608497919575016380879614392669030896826676081609547189551442745299589065877572561496067689287098082806122083167743776725768678872677688625668437318553828191609410965697868559324548484525952529043966907181341955985938050863756400211438961360071539999858653159415291329817777618707422359487735414503076835066775560343984925089427684805327788554752275536201314118992415062487240686925300499495828605821888098308433184586906682409462743857293541136249624075711693760834502411318613530460281778703340762731268025079232017970312513227100643893980158748036785396463576700602383174624825745699980704585908117655047183135324601185968672822768779359085207345010821373164842874020029441326140627082312572925198228951054584959284828641587716288088536343919443743282501944787678028676587345209914028813128754684975853953462168291864420085225237762729662546734844614317887264498764573947879294770795175892925147245760268943938955787830614390860855988818540188838819963598607978581686202235449653650394945089549259406745477633231498804241342915694036783608986169229312097763807977589039487316907000776456474306193667811788010891453016173565728796052098008034042785062887674142469153458957804811658575411688467967619094715876391187258423684102440397909994977640440514605676015874943797420228514139769914085852645455339180588714700736834470534983792656559222772986178734814103035712907746198625926810591712996354164003795938394930214168261077089979297132058647123927890165180752014962735186630183561056999139009909123813534065826994704214783570053851722925063169041026477343283387013239568748740037268280084167170172441607728115935962661167865131545346259203422679929887260070369614761842915202304578392864136089567496830485901347350351928771589244129165943973578813696857831030789773563961960595221291779390334540882634719283661467533379221266065099053402449392337146532425409623703837827010097253950199765014923578948429903426256569650273961674947867300811870634849651636165547082339164557694476720405093287403135951487755807842082441598542352676431957421529022312437707370811281780654874862766638774834113278120734827344316695836071068087757035808814630734128750217765219146899844177184581594826918755175852564455422843883096907340038447229528735166595741479276850639205771347525997183020742250095664176509654645946985533071490436209284702064042021337461567659295351768789583556826922383446549886399276640802572179512539588211783458574531050522734287429055565799783124654177047949282229646915344139408069254551907978811474597253204271047168647945595057325484065307137650358828775639589958605094728946938690695048816716635559789300758401381938884523731285286642225172104286310499773582295638705699532273211582768104944036686319247541759028049607046935341466911645193547616303218724229574318550981246058701797866644273022593618769612313804987581691157071745746204129648555912521486731009841962434175732644973950338363809977084442113689496857817786138131632183098617504870185900518819071285275729079926209501223110256952655705335984308038184804623259479481037122313223491235122318894642110641584794967757954634546369159286094095684546353587796103230077455729065353765876734338835493665840183575080285065785389913720410059936398573108596309863917259017521738975624847177113739325172649050611277691512786164031857447104620005718221276968884075653158398015441515780066701974331060162276573608645494312714738368201027477824615550749889798893946582080304620468780131211779445548042283684687285177098220935295341802549742541592061529243554381430791390844224580075248022412654296308800189189316247732146918172965849700491938620162342225550881555726456892160318015218158095504279338426959916159419491954802834435617183728287299987447256880191806615408863671659950271893066486150923979518692094585695898616825186772428263225215994655173324723099491906619540408995812771691799080046331239014136694572427653159182582843207070744628312884016617497858780941353445882199861863408411672123346036827841623125546319741770349005781975743931079940211785857273760788432290931812095238310688467538295318381387417325862139143547522054790349497479966645748400909331689009972416323795646693971746283209938128683387128676028629703225700755036788141395469307098121516736057087357971726149404253912245540972276890290073889788453723173505853991474096646353658018167323462535737006518811709131723916966926674266145632836588090177925749958417966442914913524107707063830810453401040042072131722669783991012240480433971068465844770490113302152506182227351131475366242654024059036342921548415202915069608325476858035884264488828817611243731045218291393848441481002972673364262520692609856355251868485812573674574537639050626374739821252472610162014154272944993218051665727543234934722024850681091417739594674014588407304425928492601253589143197711889457786250754644996708919889017588795901578481223150421334098515050303671724755356779967481025365783976403349031656284596541074059831890397963294729240099611109293195043375931234680184872734419263570054992969844957749925994073398017289262993974798634691663704051568495259124173238454808151493235411621577384785238174864733659006825036543447929977900937577488775491622780471966043617307865999288451051875630410578184471567392794167996807488422068226875132655649679408707565745836499854727934727409539830380267580674553561943738982748021082883323826088715031425440642892933992980907110804483513017775524171815814324356722113246705130063584540804693129470990284330737455359508684875315732188876679998406120973009990953658507247939467710296708293611207261336656572799505565895084499854304391178421826192805642457692903216226079703364658068234927781228700207797869443060743648217023469629328305884824809393052455383770409703463269981169507528009228544720015140694853708884002094805244725972491593824695712514214684018910211280785763397207401860147029810890117463074439872507920436805258923467188821845191194757997046535348966953865033132624329673688668473379505512317598534974465456232531197916379898308408371617948064691817347853045114444704436486630078164157371065890931807475686256691636790092990393619898713634576932128907669888615068758396783564133330661177898564934520272828689045478378077772925595841315165260876851272198873958728097754471027533606263491300116788237532416045198302036827133729884134158529693460624169141281744606707347544871399721671833832882446296632384045227986460143800400053030941762314594725182877907733826852676135141522135736918799057756438811771126861520672103481716422936752747813096354801428380265677230029670364662375385584179685715784283579866369300788902727130731902729745494556260742970798931314282097155045460595071197098214725011798405657771354187774118102953070044544719278135319783255253114416750699394028644485073424810993548355638267787685726175272449751198606521056325236142347395771438737821842622389198321082447052290331114785391218977578976705373260634045750250129712850007446423573025457204807421426381940762652891056514952045586053479948953376540929433261728439424148098583648517910137392921389358520285712954246359340031355829510276399549259042798823295581068661819471990914824626109726109546741738934482094143760244585795548839301664667698504397406054760617852085436042140959498758583576530433361161788991703339527169574647268215549681586601932275627609738315246628424490832797886719891021397185249397625154672708907710390797079398405095931012507251425599349666520141906703796426954778632571874553914516157057794197566864522675329458048378734153992473793760630324371278000207279402187116566698979692700799136827902370281248443008266503613568576122424862214836344927176695824230824686401780725448260870283237481380257731214378568973865469977523957452954357762167984449652073794949723051758458774690652374638014109805807282176118112878523150177173962244818655568838785274823731949845532425293804275932160017622640992214153838156003578007541631089539908277046558132508455965850957656275616876876647268491885192200267254468320927600176374729347977145945862202810059925462727605518675436226941766331474070971798141679170601030971289892479129777824352368221991516280227670360201752258938993890595825549185189081462538246383102040195140424775838970399766858290872698628961512014996175412754927228988779725625980007468729256015037473314012509284595386256451744648342554613185246040926475521504865245796532380201254971444204989111569019465817266331739346433821662515118418476479120313788219105384241770991670153900349928970088119190525035638440633232887298359818684189591291551829373919184241887576390463188034266267841340156272295991509823751773901007757150904532990876219712903403716196271375837075446766849202885827560512990958006365458481213939306403530384691778588935404779518879993442712055294778614729542708431674554330420432922172665100537159294077435653822108909400367154363695630154354467879151825488663460532416950616119970747088915212000845725307916654212363502373978528586372619363738468591180988668631055800597978932981554233504338105591425960927187492904707165711553779184262933444755093406498549368759292951911072327755997320149589949587557568530574154369057776263412035199378257391804260331652883336609634371008889543552950550984993021692306494685129534791399835425222241235175350017044833207176927534630409581150105016655004064883835906967630362274333415090429057166226962988924388935901575558967924132159669292576130877667657861439057889272028783099403542774744343657097401174788835302742640796762954162595303388268613597476059126457122022697625901203496983968211082632736004843589203519892005674935337266560570678363379104070547637885746265902974380864296622004751791271795643514639263439308724147131766935239098551817202089273506933079958047884513491369637969080777237648856885878130597522812400634778511571806182289431942461099045880437092153792991809265910596808654363828917578809391364524420580693815627664317233628253152274039198243146873516867011430833242255305516837870271106899395524395527533650059952360307308999491889478409182363746278512769916541780248555036953797735558984132248066113560695937904824581096790228937646818817133459109718134373807615390849259293683740351041223961463867482945805364759749620229648696661530674897199072869523519466866593699415686051952829261037849507965434740639554606486337133448763145266075659148745383593070726258976237573316348643244419652970025764698123954680183923391259389296613774763370172161314620860823218194699767708748263710458145991519267424114085175811581954376141527729195733651797305137914389779767750624485427318326547134532404618612882111386381093130499515217895649242256713126857121717243790161740346520987147558252004494804175977128146436749454070589035660596050204210897874906408069613518643522089690004784705898888691671008897188404440854840454166256572193130791866650382182333055732508730281138410989008844925152779942020713791965180884953581614405113928028354620475703553998424404720804463578577910378515193054709249257455177447272815983391663871389083505299697456206261707176584315743076466571097014133951490962852380146237097294399753027274245960125115119368102408182140364326692978055102201739570390585461084003132036020857507985046836072103568676409856697384793969441798132046742844447994552762157613794835197463263046876252192865525576111601750667234148687161425399310529009647061203702537434521935228996714150563545622665590845951957433779705097646421853479997399284190094374477776006518113521123337520315187744696151955349992806316823535519480078784827175438028641573272921511315183933743224967439005404245507149408647326853778247085098755775098492830558311353343933651581935416693394666905278324072151779647942224648755039223736601340036548369737081483638072589824660575294961696173615913196264573716023072806511018182745956710894922362372324411350420397974016517816750494454150680649955185893215276610214870412881112572962420351066135514815382690449016718138216683838784784113474201543686496875438087833629466904478792914480233064606473628978806628813222136401277506415772292315113322206204420453097041891306489219903484707578912073183799813013445207905744380523650037241532638076120576069459828300272196836047942096049587859086173285673597485092784234789878353067649542922386486888608131111307945010426006876783804886332309550843583686389306648189681880096666236805856435920025279761643961948344128168548075657735306605018024475311497539922439169300237725497850657131148322808641417804671713557719603652995904302677111169116497244414500326786523685249347690998502918982317996612116369408815589577222823349568931083258582707822302074140524144279861171402097833228384353560263464293056850972942782153556056404478738406798904003229992414801219022616841390904019302799060019581196117190837046399782083785127771568497878102611632730482849174982867558873465115907383943919270536499770437138217517963750913030680486496792857644176125283613635942205235463526625481070566681661083870517285132916602954912320935171678427569069082343402166216943010579636073342238623404696696282834647092334230622438768776586731172269513816568411402009364332739597913795968032288865560297275966716143477966474415164013544464353227282538934093867157916271020908894551774760357641097823155056804792631177725824745469547685729102445382144634718746210551103095861625936554507573022787429406707867840883626198187947723566460364716393402295266461420889910440088192943446134580063778253125529699192185995879332331129636555871905109561931748386459984302155077346472227622634941725263833372057995195862517092779429627006742557401721845790552072259446564059452303964279803766069827198512306473984402890523721499958493060592967384913440319691686067719781216819224073060819238420783312282477445630410378052016499339866485446527538122080213310118983794433935591470596813647803836758624987005429483889930791455699767057678378502977479083619380442893588548080532731792957773764808348299285581318239293521734383007729566503683492355318468783656212971435673301094506085013227303950434113231494561274585677700151795955342882910245488666447143481484714474874576060830302670169082824068674693947823647742940161208068276029514345769835372550107919519527244618591695141069275617565799756815325859898784667858248364992034535273536402307130044307797341806142601054875123359174375789521008323383650556118204186389576550414047461512745203670712987207140423267508266562447250197255323337345667872611803713090181353653441898612744840955378430910141640762760183643487859744464294090846269390897268228101497135758322424296172331282135361396919041719045567429528606053551118312534220119642219244312152365551145155077731059121549805178906080592158816474422755542682094636926870926440372888599568922227054362161328470063072183276713281080596960420452878573905494378975454956457265241866507195674992430176971649507468598629207021738257536426385255339681396259332524277186097893052375509136835724950818951425625766199299691841945091874040598144685574828955358276311529216631053606379675484885936329480337258336520457591127088047313010068890401803332645363585816988027584490126053745410758652426851272546351732480781480867205800340022090372886626003225536597241056360532756407084016576537542736889741014526588480645020894912999274306498001611245095284749693170625317049669961881729896299633447684698125011589585922105303519003150741283374655963816313004309838883363544769313939379302353067007601254135142777475710136076001451205959027368865639148664392701348765019369132844539086216929575006609669278350231955696566924985600981054494591288263063241220602040780877104211660047853233647084470285492416061814278223128189884562234496871715515712675409733048605070853585853323155851018204687455091729488189581327970821489927058774667838879344040878669130867579624768113998611882701241281720815454313448207139199954076965909436519905228201979857659342458862735380560438015063839911349944285412894051431510741355340936928530208255191532492393476884701876314969761711791441797462611618300231927072355557211058482381964801729595889830468361574372171346319695379483015945487069267683582073139060914939786434062565846346619318611956246805512672228441803978509531836926013058574450677602179085225744239416794640467603681683831129463763553141216734618818174501498107752750601375487469989353331795060782048419338495234710085226373891627964048853108046357015706434427781114865108056990855079645367704793351460846591376753034225994573140897416423633256804524017483245082792973286049984348190927874437019077671417748631025264770073729069513807867667431427394070456730411640148324500841878998753868305176450368530522358047051030894232551633218955657286686124045317243446447829867797689426592142595064925719640034510216266055446388441550771178092301604548944397125150202716726745158147450103287501118872547277404396061168472456057906387010633920512149856692256994653086113951119094130185193867114773195084946715719615385011037801915617166170178131623380321919320206384165031555874648317682405968990964272287051587774526904132406212846046742522884258381574403169854615762725356906486327910973323905891484600411371283532865292524255777271591594564248133789750523178621112964038717399753482001663759774384987258335898426910112953791038431604938542924448314743676708696502500807394769606886561379346131297929999222230938709973572949890572023633364948353961643993686702663913665093197866432121479774317167140416062085464006196984727061546365448408001487124629915967298907081227453438117655005103890438951369499662841483823644477765385608750796838558760998614663355207521665484578125165446425992632731831847460240397953425552555480564280654672295792823293456273410566105022043161933884556682480575127627146951709592092518790552114764505671701329684948515341120254950146661758566456263415174260096420553554201802330906065870132537729862996944712704141048560305964057645011528858317217040467946040105906457153908133004646261300917179595699132876837567373160269887664280439730833930714368770720614258865181718078800901589986916505174610868855026745395956566257838470238814281899180016966581515613317127094871484525547175766001073693111191651914768004111254401163362897523111966257514540706371536074382281659064661795754863306523609547113528845145196583763965365106453089391517473070947453146188160457880438384673991051444734467126849243012070012109252448062304694019530916222826287328090117501086118910603365489287504258159097692307139947364738456459509546903295086182851826744449993050987701840202571996281474067415064461660895868010760158508740546427596264260048180143965694511668440621571587348559868293810599061512541958334690643622162456468144458548795893673735912953863975396758151513720005883960132694873361623364171918002810045978245114315234724004783218657934527050968613294706394824065311709393919752996383001926422464643334765077705406069081767297682814730613446508057125289034261487736934741602711886694041164755785465681713314195080553646099639436512045490422309015489811794248893740847023473299949017947082814791493219326220614617349271065766582987064703487278929094951831522563113310684098186573111772497892968088947711925764932987620772895683101082020171817883624776490920619432544695893280502271128317045209714517383929242843552963367927617074192887799093526891865689875704724482107169163298189058733418513255039616792845743498880420536534093563848716574273411432291945432580942039366576316261979368539592276402987710281372208951322347958432805160954819937134789196019048262428188499514545990964519164227374399837098431544748809198845321674850874416257785334973419229291420599905866882552186971630176427383307673824814593173161131848921401959545433522486965849900970665922753809613680641335823274314433384495859080761699433997554359171301103242870086226272173983098076915030501715879232374177518589604177512647645908718506512656192987152921700766688134279256335740097674658217932671411100484906781722027590715798935785277350370523319713052186108049667903267156866676130406827659001443274950706503932032073581844089395158663496399620900227395396780545145935329349537731707645044291112720319492548725711342849169878222138733172919122211685272184719984082716109839070240517936392996821611636298738634214213737645723933839154011653570750957209277758266516256754179743611327981106819270683869757236276163585506254032963341353263379699344300174377731342466172916889475278149742986928158296066362146091374329088417640459905823501878313416614726417872625265884970030745173800459610288991506826892273624326233631762813654463099727245293640307263307174997234135120218928985045558180665202621501005136739353095726129790757667964837710397795501366604006768115556656775031675529350472890026043315943457964230402913158621871620916597568756987128570271495074653620867912002511351423394896591922438456424802549548089296480378117432667413891467906902985741660661500229602438799088842033555321436463400437437621725664465790839338712205776230608729168505970324685593177763407614995485437412916904804181874787759362504859227588101487195927098114335057751303459846862369116918520248873561073101876597450285482783724836845737529044682162603711411540267699616400847974508249520149469440189415744733975409706527707222970539679038239243549218762766216251228950248648686354934130773185587520804847416562001658833025497843353752015935946084286064603133927825954885503734984999772395975219781701989068907652127262020995953670556610126723364565785585980265057529381391421024180534472439341673851637057370911980236540024295920915248468461586840436390020402189904632178998590423198130623562118927745134035763221150197782486026943312518942146610164552165813220527458739999444254590061092367009234611291530487183772862474979390568747790418029432306493789580947288917016414531142777212017688578547884685818459766283122626826908852488613320530657505393019807524710771257938829259863692230357982364610869419426267393481273571784664809705742266874950677177973405787536456245537607343333306113353108097848807403303321496278207732075897816053189403716410740737712530182930476247882239999952557442645943964669902797045962184862482054484757733110962728806745363179884116919115413297801256449207928845140652697804782797294417146839928682824828739376699581595178886863087958501234122692658792358312561895560694028137353555418498050923490797253510125424161418661797624249676118329503895793800634661005727849753165176763731368853330717330969476580404629071049674897876354878482590068040765465412879982797141660090319186866817215476156941942648155977681121283644327590738958454220539624950750190176285429680621247280409443987356484753894459986527979673359664328348145922421003482659687907599655354025258181907959629741226754465978489815620436808776867414349299108299161134109908303015148028340699507035001214031779781286485468649524410542456430453207736715666525175622275399953528430282592550536502123060112549788048780994264077360629209574504637266508896224374021500043771390243861422318738494841746133065219101234587750347897072156702204030493505423863491642520649296601407132029474611881880185050262634154507072717642373233002195207108063953016433576237936017955105614760901523422235481816696972412946107253865856347123597282411894146716286195783560786045340764125053580657352175870199657275304734452570897033070950759833335254656357098175172154138412673737880944401774902009197261647930679132811669710505522011244139320844211822364402995728266948378601425501968874893618775381998452034231692009394665699669090008462940923931587058491435625938030157457929937806719097264274556873448761945866422601607453150890664377250336541346826657361653850306235212060646181398114418484390322321877068126561726820866974831589773342408368680282206196182438886459691654398661227980144632807155111600930604005216512875064156358481932642361386698531229439836764256883710628116188799502847333876585442246303854167280570545794819292976392710493601508403668368352791552668215873743681717239188732008175996994263431586915358775489411632897960409817216071321367535036124847695947174128761813494348499538014553528898237571209338437242551800041874685540478096505144151123408426749474171698008530646086998099958813948233747797763555902829313676303033859104654106002171742828086875271714374958556735361067319438187500852654417085461185253062673105993907069896927209672029023966526086355177235450773648732437753446426499504347526173045003623009572630732161669122021979253021681471642977983830581479892859671597008211026555793945412664505055944952037501791351720155324191880272460115842137616038772868604019035524034141105427752741591484680922068107296426772184701709842019113936642973774620858927733624097991609856170878278477689737961036605257925399477809516905339685560414850328981682974457415748442351687711995410563108602765660728153747648687349115734140154059345516809929583311878837215520427497454278528167377454237583436963379308026269194220165345518452521685575428727389940669056410238217279910853693327110084701137477991078149031319094476921820496929869133164064696639819149176042071944364100061367284439517076418457832844477950254806399516786437653555907381917185457529902853673325264427533345612939668737331366993309639619133845360619303134382907377311737706350582332947825769831567438253917070754600709985942181790638944856262726323176795122345399070381808030876428283675578144208424964464103057563819231050346300638615543181066420717233175870577088586724922799261859963815516570851772895450485323339117099498069824641624499479457517223696348474065130578948646826093692460039851279431095634050040771989585173534819754170133581772326893604251886914133243359942688501812242602406888228963591777290204622978135517982285632380416861853713669583968485838499271011937856708396628373555721217963684864270864631517527988651708968901185873049805835073322714512931777979790488899982529581007114317093783502674516024108678985154181381882133484660139821383340434870436131397400082465422567578649012714136481910650811373664572212393275697229574202062181168778576691331049951465318867496404854867643051222548207460247922357115200775275346398768435156943811657858069652215600560184696177383819620406555279804285559281141038685788242566106526185129266908347295868107880025675052617886816287529364096970662845232748487759391288164249498004898610166743386845113543010674716171864906281131771498051362434276346009526512453140497286542904839815935765143789886211756546081195897296655029483884090984691944428262476836921453040769455792376450688983970741869936325126829017928516472687885165602884101997276848744351586235966568485516436746805643968013766091221613650428271159855936527207630946454476946068646824152103100838971370884003589072611592141830133676816525865392974957631000758436619216870652867767902392041827860390875542371190328075672182450972509333556136973260485779182511266301654213246298883376660153172004491250182041460223180449423257062512512346526768197716575694529018445937154089401673972303848207707789371896375992038365568402418641720050299672527017009505319267672962500218522770172544148989754622511148123079855930663252528756088698521066406907528555579168551830656594565144308333338858489540769155855192509508113861398140451291978420659324265813948932512370825136231758132481045878364863603223342909764728698243670987697390134309569622605925530335197991992868497353199082303546589965652054240719689818165152415502886037478170122113404998367745265008964070238091927808380102374448430388494044039140108998441070765121090452184733033747662175256233797354844080939395452532797819471966942141967095054287180091949834295694148937753760477033517235805234756814156729616075865121500937087258980499952146678329452332718038243530642787856952164462092333022146557762177511536082259447677559553775214770550124766017699101461901705501193528309462047862523399057901165630548924824899610352143620538474872464727072068073964487785442926441159180577411610305335451318921796890080974588179323134512064716050236184186896226288927567385377801600386189256452135128896736647520244499745852103021796870008041238802964121528481703626684572240559592054098167659717341896635384451301342116297468416837422210538817436442218876372601535633912211048799108789658622126615633354093969288621175944872929975297112778350324200261172424865073122128995708457512866051468736795323724118637114178854019531695460492876920036942789941258589070575447508205358298074187698600741965563574138628010569196640324233164067786971021646983278144361724711480195971808294558782099658709278163734826887205916002002363842390954987763964545418642727718762997847985715191293764710072977757942822410183712623764265477118744916584928022789272384994720891535577185352501666489769515580013743795862113907868998725734111747133840722686265205469659536155552849460371010612146511477633101811168767821971013465162475603922192438924389317558323469397728920179155019898260261141424204240092367159085283303427656220678796640423525447696179816136641054123940798647664372107234938499908906834844322378253036147366167777245101559367231008840386133103399165191309413427500518128563572981039670706049263582888978169040267690298724677748144348555475153881465915297492409725479704045971970685481606845318350058194919234514586812641081679280421918521631041531461223208683470563065588141901778648334308960878029090975025686260339382015665517401333391134252234970866712473115606272677700150196701660934373573870153425931081498170750437389969414902234086737297099728929303617289237403709607941063135846319266186894435980123156556561791889869475111873750921689969518545459124871135573572253455591633044112427549875669672018734971266738280586310420530849264892910412944056151049698921521077718022857604293932606447375045262217082339282602333200439828198909636955234707449461181238071287044539121642607813736448215028467268634229640194518579356411126961351986776980230084870508451640515981719936700997036567071662537778282488116033281028424482401925034637752379586619170422384565510082514196782720779660666345292065280652021123707046276190072340727111131327097690763198952042706030673984121571491500159787617508099592834620768565092922722739715963887475573974780459368066405584652766944419829261736743902562085534953495145744517753254371486367641652844380633502875255808524905564137251271046953003737399638401010647605508437308139903711422518529066555883065538124559769821165398589644125551726333408450355086471246780455838909400090815281906054053589370132748478561257116024777780713858010766309394958576072560423259389447954266920090454572759314808666001812341506453830850403760178525476137336122472869057818760500504680393175095451588999976390688005753396179812346070761197554951618614259922619651459086944129154353497486267866937805471117919576462880058952762791992886795786863728233335985799505431707295188073031261473978691907539470661496699445768831016337866462903543816688417334581034798663762376524851605522370900716666827361887398494328265508472953217657373865634460044631748763943424609441418611604382826482418111545044642074224317793178056285910854433769418610503947989070917956853705495361495211094288910160371317230116902347475482437392538031037646719072067735527102010112956112492257160104834282059182464611261977173004715117484950924678373446429914937507892641409158237889370183880231024177259997873027244690996948929030776529416732793326356386895287520514119590508823466911342564675068661851235059445496200043234583022235067881417299949920409108457355733382384022720554179899073424497267545186402511024837246526740420577172512447008057695009868601185010026290931432553901658372251352635159373800396696920274526355332946190476412769329638285673882573472810187618189622972063895574325901413134694655511575902987048052928421802901694923451554920624072522676212113054868965990773925185721771673288773385796457495202671787232078399753471782677129359363674183893033831737380169143228138942181595625381153023738222166319018113641133266129542635570110442993755809977318553139836614542691621138944783184054577105247174146329078001643659345299231856578343369805146937404703034779387179973866374099199976962362618487724324163646248355709382053953791328701434770477993029046816923497197597107330287374455092253282752775873784293242667726639336893092859712005354043224679272511602110195804135284421071985463290974106151567953177135589653816738551039300939104649278803722181662712491698647365780280053968664199224989349794431336210074693128687438486720874426089351455170990694710507336195095628006620558399657924969552887299100458963182350325197147869212939324109329711088205096213277048745031620336800576366472356037222673745914384000024503477561834199051502461285975766122941112710506968201378284518429729424482064893251712739308415629011243690060148103443053414382794735062971472305951193961261743818101928358806985142249835159621256213975369268170162036003582672542110731143097949151282582441606799767486988382914628251179906428431556013647036210243066282017714635358316925204911762315294272147191130201935278709964926686288704777405353928759482772232414914511300859393100995005658857008490765915207858262612656347044945211247734655138463666520760950710220252851369403685397400480740921251802949541365398034773664521844991120492378193842511919769973534954702200225805921766446858031183906665398470924799181086141459757168319133055524880568348541417643692427330610376778995629978823144055289674761077721148921845370534128538263432494493747525805532333444170704172262155820911752412160011054986065132837134323781584976284182330610284183408373240775049473836963403895588328604541305692642457032308660712145128203119754302610065022923645464851930451998793629103787691080780634332212239172117331119810312941377637153441095318206605883087116886239379107373929621475552775770963721194027330537881908225713642727781043187963989020763555597219640191081963051082368139382143923472765995477768137416053223135998839812536582836008174152939903422986179992171419649559157161119443984191372221283834811557681310300680503864358878881990797423687471303995562540759059047647130189818391169785285080861073931519948638293163102832943564784297476250043583893444856177719092752117567908526917013584641771941639251063487949454721493307604525565554908803340834342983354030163133691558725418297077711156771124831149634413325282848915781670253895100784092794738041673713746775236338688535747992851619168319688160292312346095191131961991778318433783212358711489799144671954180140862791122994781663454599431464444951977571529694434313891963885688235721918336883539827791127227249394304443872513127146681019200512547129136177718776770638528567191549966535932839730617249624187934319568486332891457247367133057893122880964405890611099074724255946966668854429194913509089403312068576696098188557899552056690394834033342849193173373004199468640275995027839787165063061094143053022061917631771512380001168964072065671885068765358752366680578690442529103268066870376157034322670718997603437470951656685036520562142165272784518383361879506819041927620126608387600556906565538981555622465442355083119587965865824829238584939457262931758445203339317876340891728780560997674943775331675012211587903064863063735119017194336100323833059885190828122907855944085241101171886558555208763457391553378098802452912150917108152431356250430027071309899810756160526697733621818574062088576612465003548188446715088355908499173989145236634681104723802952893995551817176795578111245988824768453161081680393435114683473290601804674829728335885298393224809722621388650342525364238535345754753316612714265409526987790735829421769307021392999708110165224408408489962240151543724481188121783213201189612111959857463362314164311148800363830243587036509902137338536276554517416797368380620576258514133241219912930922100885802686535169600608994382068360399633807335572941686780163319137005839334364026410989953163789850931731795367754265419989012681372470272343562615413160022175676116810585487772653016446044672662867965285969235574480324316180014830767182522554926712535442098461984749030252655619459000872909635392757350635366865979130561394999156349203271994711022989792162427286851766169953764763848295825046529450382829859720800716253228791727147109773556724229813911469387690646663369392383759629461916016678342659378063128766938277530634443806892268254783944354617115447308736505882248406356839290830362698247389171985518807254777776034442957923163617939712053794451996199870115679554969039364202544681696667499088901166181137220416592370982101282236870861287084039754127719376799177187594130620147260902397378134831560355097484647097383183877593852532187309590973097045415586453748382724858773266580745849659610079959113982446240567902855469873343605585227303197243752310822644263168813735937412602648666719992820747510929911464565265799486963862705386524883972459749565858851512767416009047067792687260124033748483838717038348876067329338695294580422615369784982799235967973344095880694592164948142666750033669642961991875845415024022209527509445509114706140486109669535595556907406044395113559859634944092730582706652904399588968973268936398462064131682674504671626092201137198839484206883812925720868756357066169192630087701060733803839730753649130275318543829723529773570164982022793691378909981142873023650541223294428987020844168097443794907547716270488743854777581693503098933828979803852848621713766214855046966607670311982352575237411807254309186164918089239198003567067867088344218033998567027025109178561444808795554697196736495616646155535055131676893805596751304819819365845344140752453235991701312761529541406531146764583451930451679566653085359373461064156475093404044263009249789370013437781231479704576685519980315090937080937397548964364073487527502369066672545532219067917127527530239369572170235768835305309020594730166064465161674142747400040898054967636021825978391755308527827217411620915100520906120719052092160584941526705850663611552082856419203719700001095727398907957477171480754064262507287615898759164072016056495995670267527734209720396552535580088411690071738662117342789744206392083275642610744278947939680490404664699312538133624025595884608027293515373850229272254794966402850607749811673091657408616081491737274317696735644141962990967331876130204367506325590593332551199835100527490454076069143979110674498608365783877997074365944994934886258208205722431437000424524900840225436416215409861731832122874674472853111137853495595346227693718559060619898452638436898322659388824131792981162575592268162074209806273987482869814217565374395897968137266344812009158211078585038957186424830380693794131958789026002145421042507035680499048604456370526738413474071410226638360485446800215865366968160545576742896286850192254987967569021139932790624458572965413502053658062000669403293005695202145575602189094476484628197323343551523466382677757854784594508657379866142550601531006058026381206828172552970771436914256837191076665614953415788624171250728470063920284346626865560418419046947167599702366669768279865360306611513118323635205248585158664730770989416838256394240861374908134671041445517425096112719259651594833710770753820772499633747028693964401065557740351626661274969313448389027804586038545899183816220395316744732774896311156902997508462294047832711517968819743917602062213130291748474036981424092385678014741691007089197896597715470441536500264729950645399713146028859977110208405615042687924661605986492802646503654534973382129089735258104833433411387925160549543660633077139686581950707674776184939132627093435890674029251444029441320405443644787203050816522198793969022293966041628061168869264966778160442453912164303919175224245075256797033155962716259462698703972740475808911029658052960272967675911724859996990489018704434455563717590077196688219770243391550760758990350948667077953810952406452930228044457975790896672009213417609410177162333452567839435009485906858826728251881855726914821802381734822506536736590443138383391614556266523147677847199201715445187990129061628309302099590338597712379617293680374265916234928663499728994639312863904862946661680193131230077964262281378651037678222186029837416729351173546137269170067393365549687399474677777555497101006541980119868580449751442649812991152929218358198825849432395594953386313893449683006009353377846554386307523948773890758283874232848005238314003774213960734887865859256361406361686228163245440533922439210908977039984118366528489360846880330029155372607895750952183532630719137557012181091561146241890080733765007354723098851350261924633377031433001247494900438426331108546699164857516842434715238551120270739843755460476032928896464425173847726026156968853159747352067334919855471857100344572342977232318460099046519879479917669945561755599021435615406668442701911423432872772961869184814621306580133857133075742321318368340258248759739640757360620175811592765650738399729556918269896141274649160129800448101462106597700502782339755919111455376851484049362588517444981795707431077439411119852587252388141404295808531794052868076357820300227701868913381403524369851080391915591237603312698803826649097414522254712293467386987953138876335837517411969429846551675100764848646329153604027318572547913761324459549982375814884198649392908553779059796947296703652794644691846415564832067002505300427676749366798528144636617477940133993518885060089048985793231889447720615813143591318724080731507959103378497321408978767743645930096828360672119520280206061736870060124676597937041320394834997691783079422795983117750178373352923329591511862647946579546077792643390387849200074247279958306920415927590917040984785838419335186398859618582476380730750379434251993088127683211277933488150033921899975592122017683787493428740829528799975477999385701859308128083064230086988439117932995540128636248516087929431035155315597414935803740704122788131390294686252558862538431057265484211491114499359262561909422206579674806205287411545826583556272119649278836563432070626526736997792640226878787486923635349211344275539121186179346334332499610626639493552195937577690619780416630517142989699728401839650148975254699841112800823954063160142435287689854592126190531587992136667745720279300638299680366300001459931832020954960244882788392150455263568381558947154785647369492483110026167965512074324635208663507423321721079674318967439693810087151581051629503881551547043074637585896235151873459904023290646831867322474730279852856892469348170660146229712592181305797523438443358762440531140287013238408719025915267258076799792346961582777058334820381952982432297440046282714138446685545702661035598836726643777550889529144792324071927367634267691999027337429946641935178907861113449163791975940622160528804327732830092658603737325652234893020123079414666018729539807600140552770658808130780839933240366488314173164339577422318544848543296653414956995795098036434655376512110042565221846556916224265124088190879442340964846854455664862297788418646813596310544085520628741939024293200982658076538311053415621325644428995775165073009040503774557877166093057613982222956239909673163452465017943660445231368717196874702917166182506265045826075336738003632212341739315809809489384078431110940571368711382706611430040527229444127071317840548485471577226631489848730102552780470406263835433766638696970656464129444881913922027060962211477211187504733559025289457614222984170588989905045974768915994052165043177866713634450808454001772286554689638732924465447222740599907823106599798865819741722239916129370827935959287741408948823819584304047714553270015950092519610728536622997159882734330894556039747239574448088958265546850899845237542115202292730116358191608911503896324627867578753533844270157342823271685837982192860003759510147754161690453534509767775363654216940929603189747959821602615729251415438468955156260702828835429624482104840798930679089540982042732310615054243324099790828691877009512141808222531843976624480364095570903268862963233338611996143143803146811621634646358120755027400072249960243456692719639247117772090712532625993399367863866696223564089848144782388762446077089971402301938579435349688191447194743539532614074790355010107123574521290593318599655054022949646866537969901172455992841565917628544156175140019881580013989462198547548541525419209842852605210605391194510875491642674213030435515039814706389579796404874549538749910946949985105178202354657371822803621562989870025273013044321028269680544252069615840475944971975927547096039608495256642948352492402400693621203425774234839881204949679602639089226069524184163613185792598280405972628244303995973530743412005175977485103334719022609403143964688739439391148359605812126099730624475750007374545363083817997980785734644838132442865630417735051148447616713197662291011977265713888340031160757395024181759516155213168385494485752292315375849422348461707166749382883988845885652860103519672259976617814267447893650634516068475749562026017087652426509994236989983615070149164908857481465970547771946952674327823141639844881908146638686323256364323597827270193717874293560533945893384591362854192080484495476532564869832312437552371219504200854412343599207774265900827405173244435885785562388547820205818992569172646933964018893401703302471953891986792006233301531852879234443505082055154529946000952142452937138943140503254699493590811012108166993680191272298628365323880466226536799621432069323893278614450591049416825154891005252591806294869564174963530419227944378897987247996236022156304680209989000118174147949621623125502544504896057326360880004690237547334582765099937942836193809264550456414371743997527987919969250029401383375608692901387235140923487026180751196999201013015346314860636217097658774374593078580032954245019528782262523299516061418041550951562882219098145114116680922575167492947135214721438066716375222829299448127583980275136145013854431900964857869321532398928067394417658534981205736911162944507925153502597559248218669034325903362039071806176744124051478644285241254573434499027747301505141844076744822973384703165034226982770271547701249804147461479344474196864093101317797335892853917676726402665388505394618814727733274194261252187066037626883174439444868174713479947752997784522018488003258292630887367282438513208125711197946057599727741611827554887287313676972680207813705025829667886131494026021075281727828164983095729065292348316518724519437708188076623254877156457473142237321680191320363063906009038281591677926732343859904149947289010684004840063332816564080725927521482119321912564063692369241252419970791010284200889155340211166076763372758193176126293010483649871806011083717464374043972965895664959703870847302893770268063185076274822170576293221216253222777913474672071274033628714096691247183493904413010650084582554953537803220539838525635553881064296413750938629470474937390096589539862857147434093532222691197849186348782179082518990349389550867964212998872727549674513165007278853136430369345487432387527079522830696015870032086330841361296163077602988144223442109406172666123355734391257672224313997712916258651206768905899586256493431688755784013467696394516265941579226126754283273572284374821032927883324266524186794501634278819662302197258558492938372357880800158004642751221851637313631387710311270495543539315138053397688254395157203342138663794370913830828093103478249023633707815320763199678450354028629120596787047329475324908979521794205958723220967082717316152802539342176016636034913131204905112077668303361929662744481043616088909509079496284895910610027429983849371719773277565827242334164907622793850708737566171346658486810840294639288945568975293640195443454394424001196191648060551279038708815158217834386528080606772051370323858697888892417920023732491713194337914066512890036146729556444032527309472085890066238472537338941784581439895734873472034271430967005536780353409866548756500538150504299028256999585280721106284685834524193479425035653958751485111027718625607664432983404407161002815767869878686588885875027523341052602005574630690509589476482347099564534506674798340186186900348571180572114266513402474644957801565075686869038105118454101108369419499158138414874361478221662299352061014999560252528947623863814325684972311770994675767640918896489159620420467256962007641439224690503465029035872664526619675577091370664080044435603765200215300606315583898059546917904042378460414984676305187502110236895338103449635846810589945947535189576082038180708925713741788005969159002430432119020638459839680473563359798951421933600829866307321145633361495741727235870598098671549070981600281026101503417289540194788742047137875096964039107774337304493231503542077769506949258793887753540764911178352328468673664006777831510397015909301016853322894341956989660002502887742429653446890078524883257202849251593980617693119808945123778402175716295492388771085117871963042384629443653044159937312354887492817357513579087971149211148932784509346192347876281768515389946399001785599303887260456644960187148326456912486199696073392688295770248480784524425278442676338022476139660975344470742227892082626621033789569481371893901557680940434380925731417559506767348679535244376271956281283679815836017383442844983592307204555555750897493376541105648039585842363056525716458382666051129228026800052789541541499269864899448875079685852112194808384814476218319871392816961673640310313620397600922235855475494554029974660593896076355171412240556868712630246437769235255966806371410598887107872864550569051793680992842034120843043822706419817258995473159868008234772944586954944755652857640233804127133777971020016483526564569458424528806081625051481236744594048453321046550299528186534320816018897789145278095239899844361317296892788829201129552571799533672528233871537355077999843110676286744120589219439499894912374352131148686194267909350391822157181639649413371927807471252679565900976951883409539588499480994088527356518772553366814555432672929195079108609351678188604432248659826109280895160336394060821389821796565167809627607412021187363203444506738561715291635259962117102996154617202881737537881679255269565065701563679069396831182907673060674388776176443294387575919472678191578291482803483466342652857773490139900975697698654908817611624590233542326869615858041967221424781804274571796797180321278171546184711100233236950696524875829356402631181500108373742297366192198777972107831985799306947936173892802163941417835482040867897135121780595109521701908988318312160915101925158833989225327313180902955498052502437723492709101313904377697281982875467543455857790332050794695534714145337746368188192117931234056587421033603403737354928998467844085957267569688677509034438319459833328836068747202235734871812504010092379906943622862997669208779763119550951595153539597170473237053114696172987633396322179654451659438617605099261942175640508857166864611560142662152829560831364913246061299360586815135983172614548082226790518638531811661958372423345316820537300013066214475533240940681864619279662533136288101535219375568042682078761176861630168538600143590892667570976682499008031038568143611067657278400833898139178810694645339611176810020532411566583428453702848840861428126481866546355816117380521099089249314096194130833210182903646795751375931221976969913493687675156165728695426991214335861227220033862444052774485924129653724455640079730009617782284898577455663405088824137838410976176863804209713070993813665979719380509370786444620558001708659763049571756191788003066508174110206774757149650760606480541743995850809227916246896102018100754680341642456201564309048721581339028545959292109596351439479729989599114896072304636796940593277848765087807800723732337390696582316366930072587957854943692758554550557410657637620897024917987943289541734844116049869394733878143354661273768938534855129504180208567422235337636124084442872718058505410042208415924467395541091384229265358420674568186442368329883311300357112599681547816853342868516416740005559237370781368714771036156483833775951917265631412129113959166101534032855030743296118993471567317123317620762845951395433384146885213419165218048612891227806116940138689154798385540108173148674178453518816125698676711921251413400222112419903042245123229834026049903862890477239159538778167000591560657619308433513640304914616078804415078148811035200331327825376950118789010305926687523701906168656675216106085437565193625177883870639118072378612464639307859583807333472233664721950485805445361118562305177343513947266835874653584078693456090723048341417824861696126007685508884148762882635386689648439784392140099721163881425178258862915059274780331969861645242503396318032133538151406194141877698354879308773041330712505909404579587512190667371461836650306690718777744523896179794869184835010716308498032146976298778349901806480825363117795061361744817998246024754900003281254587250575393627813606761148793829319063131687186074637080681137181290590635115240991580100243142921434883269689912932815232493500052440892104373579553587876903452883412381619537649770272333639640654624181574347330614095408274124713347345448695179563601617253469365205135239119089924596737918829561720193201373175707795613974504926935702999315543737511800759646535384075448017603396927684425833171860078113668403540988237289238216486393959427209225892894570819691266752868512818867246350697713018383103198861582764485621409716030977853113554004189437626563697800074211983065785646406159099394560552452362615434413093902099057785661211494877659568632341379274579113132819703726297859755538725134438963953613318886792376179798755050980877035632163836088026331189716314704822570454383877050854280164234928568904360199377348415657466989441284847283940280196976630707689896381466408880421656573400904193066741803701776763352659245903992190818271614831129275452280652495714770871721658277491002040329407488917455811729866961592728565219230449732270470544522718783792480198430951416117402997081514499617186065331835780113213141532023977131521020732308828339009621253678533096503902364791363485503473320896173238224111023326381405895977509144001727590073532969362388309498268095788431793986880220522502690029098134671227422744406650529567404469739287074151527721685288034940177017305180282955720787252642918678262068619777312880495785287932787461436842302393458854535392878885123948761281286171757443364056135428704874620795629715911885229131271169623253800762864393500772030845076147955464584447220961371982047116467557071120245800929010978720112549853776346992011522448955179247303758134363139864966537090748122342013479243544277576083262341571199611004439447528868655602877468371338475861648129983083524222853419589797234854199628160221163973538520439122967664747336866000820388898756910865423697075326535701975550639896737881403154045482883209274213448941628308287819002365785798328322628419290904724236681637177994515187611200797975682033300146149129061861131296844918363235922789737413981107018695264807322735728850574791639329901787822878844916483848497852483650470594558878131319989674197754894466599604098877235158396485565980014924315753526706240944770094167197413856876514784221573028501942135141982042614475078600011900719831517626649002517167556207929179735121913427206248800921171479777339008283278988951748764889766789650593436509846540612337918608160627304206753928963048727247072378674472407201878244052018808580084676542830049626688761916011826814400320258026297688801331048601649357256059485738925712009915124783850778864014378249312987408478812735344748668944165484178489491274429575322716118718689406451315203146976665523678488202197555305667561756140471820607787821955527579180985233444230224225194267643827998041769902066779471780939575833534770446702821758124943176467634493124713515020135706105806969470367132297166157969788334211388137072939842241543883311380055429694731889261034559797705365411040527243792744126641810197789856620000659128927388802679290529841583893275480424915403411608437960928174673216805258933119581915476760367687156714035182214102792820314475345397446741018268113689979128832982841856654425521411178318153826006384169701723521936723733675201794705622969581424225620679485102791444851339651587755562356968677777925735992590300292665590647349905943227673999474822125472653455785713163031195892164784488546628026693255199367449647308934820702344353420665277684857771371325169464951044966453942026674670066634844061240458262194535779367815718851949382789033550777212291155643081445306880198818177413895384997025188797159772096042284847481292431558078407760526803423028431261959766148286899428816686824181098727071360952601130263262819777528591040157631309246159609488139202611313545829970688133299611839967337493772428137947086608367582472330037203073026232725089540794073513462189780730871634700459900368228072784321647732817873809391070192072831516242973560149601735184770552957298203178291162392548274125171377351788083821366090419814469255436343364339676909810511745381557368847574410320087585529289420914803431770147419745458393212378030545853312214420282971514914794722469852948762630421947132660010169194959915355922516748235710783337393029430284291554017019474313922799841220350314542320053675346794611159918426223118357880337155955700884230541575232433588327884574871717219471496719810228287382096757808663588782453039264660522617036171850753735527250752422151475711015031584894818086464977094485658172451458737041864541828063456143481485116516792007260749783697248756961786522861189726208151962108188013651827140381545894702204047008497708071833143208874020262531963772626453658272595028622466788721280163828238871639274106193356388086948367177877033580316940905995304838495150957379355230963668485612931581434670139643904123754074338790733270617076145544731678851952849605615429214594188779609823145587224163096551103809938100156978826546666615842272265861017456766162186296169457313532424934345853569193226328605307690077759565700636707265949133390353531428574615012882120099159081134104872773228577115329886430381248234681920425976638598225155448280958723007641019212548180260268444090165863895261787483587700619681544586377876316650143459219367256891249768058142883360043840944609454468532612894196279948132805005305040921251773630685829886687191707066709237749090110177725324270627400218176765606497907410988417035170899296705142509590568249304910663094268089689990568089879843028250218084142009588572888712463843787257012385613971845870934670792514461581678090528048598922461617131282907297731802439050916281089430917606436122356412452680298713271926541780182231295221430291218851684030506215718072546066926069595302992716293841467221456641537484467084727369618603327520362808510538039939491496345908920643577341781926661772235868936683105230943117511537066503528577870137814855697001685456292846951916055104744970349102709436418348154245853297517915739836659436108319082679282302917559653076264083825115284044169390991772308744334590053036583885755333818934481934671812724091010701934058126115533554872346178351823669629852058389264973781458413822798601624706997973122252602124112506744688987369071338042312423446538099318002748257135264870210820371446886028542700989526945986969637424375676262629438466049201102833175633410488004457309418123282928021909403607016684733248983620634817182531659727206771016447593808461329178188740828145241968668190196724852347355269470766025842329944347773272150629518904271030488126740933196785590690791562687402900756736715285158424090047651013801990323929769819183466163332494272492639870248201706014822691434080945860712465767828478400195012693419015211267898669418296342658773836661682205290536571416101352930339031782431411390657947913735308873312870695400448531353589785762380014677112213736153646633034600596075197606365105211310813025805538553841718057866539292559060343667834373979962511081710182937905541879568872364001971960620920019503276211904937749301445795367561076862405706283749162515766472125416562857994383396037803814400760778976544786141891456610147419551950273276986093151090939307532232792496771652807887249937989761675482555594817447283559011460175686153706247184779636525925679660748760107657960996622389018393021031962375712749965744203061253068708262920984385091588839644483955585048714162025846135407705249413030230922637430396757649115747988768933375759982083918594582227145155985498055091955043760589759454236507455210774286216409663975650386786615483470596717841405333259246725512547598147680894731677957756362998013613929707428416765356778085230814935165188116719221299493037740126459657412330809296899905557974334178878750375501885745255470132184352963617292545637130374077937936306359003999258023412869066043695800439341458909713591855193270756693321371249118333932530055074231444615320965718728232443093177754291460994057228496009654014945947975804558482067545981990931189146648850176791287801015587381827598889711191815417660895168171576128414529818932243933829285683627512427746436850682371364342169499938666422605233764052931406072068116201385930256005460663649356634636479935738920277546622174355347857309332948769513031023454508115099923343840515038918792535633800839650370848790444972034605801591247078206965773187280626289350089094855702349146008337730090628215056419401008410154146606758243644953749772827312826499911974780373865742422120442995463192315806720070701574797730078649919555924640905006678132925747218016525649858872251783997645095792659597251286801108718990854618344210920565018761475840748183636619786103017055057627950094983716568597051956459452637495986960328823281316865808853236887841415773024886328176399535708601518854010228338799967168582753930253921994950411432373460792027350328438664205615461854603378357642068488086216031627203612863500253124137584525835694431554398601969217852199636386832370802667298940887397692671352313386876348500793749120027335339385615043538626727548247755564888334805212016468662512771666716648308825702958099768176793953428021826523147792861181561593788859840537688560968646472177113999589490565870711621380813062938948039020720437100519935558427657177902368304644695545121330327749832510274503828690867641913598252356854195080135453992428658107183015255540559747905747286831905444587763458490480189740917488462887639976550251881969482564385331836926294568681042095948640885536691193090717455796263141083262920833341207574240518385866316606229072922609253317243800252617930566123001301442001831763804894474112652451503218160254461557225107005852516795729001789993591276714872987976768999155437800520987011722808490528667000666623126840183550070718602630118053739094311127919960576957429772455626757751724085054133025784375460029054515434941850200335269744034731691271860962344707256634479864081891417120109453906987484985950565496777478866961924061088567597002423481266641122814336567300324735556889621175972405966453801165486751276061868564400413941901691614425901642203704086829507376767401866075180231383156770863509296842500678322615603293889650581935071531595686558457726482212470053161349505288785597928599315542300762287416248843353265024389172155567148881493666956506058918748769536626350228838955872370188230752508400294529439288436461511341983534627377515930448566029133385026733634843563269777864010311831251720886682498013695083443838759335136270401207969245933053869981674154892139739981245106407067811815335314219901133326882347049008298299607615255101653947755635279172513498107158652662616685430519015293168945823900974811779569992027966819889465722750374872321293796698590564013810653906167840352711921607740984887898095162672897951333180515960607784497918703212319053290532180175966331010654429327839833133221540196423090545978844740024663116072257329273361001160055162849296811884477957300747366556914089044090205861148555777967331090670670543201416638552743878729158249130776309973955969794157319087238172269159203341755415799134073336638418072615400658876445859593030761819709081690978112339447832993165528851653732207202904261848243794036110803962523719597881614167311869531781378051399343690138773066895424467545483437887325174781545395269235183428914724842184044243988691576085252081343118578222667804723528561131194707141025132252082778651782919225133776183521546001029697163904967128420574322544855519192674045258220165145428816042176552140496219236900042289343672703496214690085937398424038114378526930540170693634871097463989953058913901617511296568000849890280672202999389392223839635975574078119693372155627742884208243279443372585007610907609709653051240260814959556456688980837533337527641738496086513884563061734246084496157947022302169083505104121882050650778591327893929165247428753510028590925062848274847569884645251667942076526056524692671985103366684001735797654527178697067793001038883586366929381339223749835745825254133856829982438797431830347324052344691268949659329097985056525921473775172016828713251946288023808805968729389956127921222334173758028739349838078194190544042265280583333949827426062847787444073176300127676250979344825516980639457340627444859772442869456817545925184166258740048911687952891714669855931175806608638528331369063601182677084924035211406248987226836318611993653428988850253610611928871091501948383248579181807653222124470182971277728983240645613158961287180719990133986390965587954906899979825242764041373698231680452040817493650728759583349741462293351959193143966273056298221243697353907541031956378401485950832877510814622275487137726627154824661362395170139838357099706184556622618962049391146805399234636642437945494539472001569382230406568429603551019892059218073999707469469373500233778487042873995159676441022279437390458301294936755862590103351527050370374606044897049912983443614708584549074226455478568893424020529218118021503709172743922083640547757395695530953939415843011380099560480959349596914974577794930401981957079935206669853891668736943176842186512625386714181830449101320310785619468087464284375091933605716059905933072657943856402913212721100378794429131740107918550936719800822860258102181749232338088729593847446567616945348900975210808484516871336668889626445096740606712424218574345473863639741364540919316790134890112641211126943198951596300246188990845922259666206825846352043855007396333770165077779518770897995243473018789188888649763442289460614417920425514657381197533786286895353940928071644146240993692916250671986250091155561635023253688811560865969741033405938122782965648799908982846493511761970906310153623845730427885179869577680030831998971695361442042404411546693771042092632463443694015208593676527702144806733715464855553320986325869791595450282549031288827090356709354184409049031857013211965017785594854397488824930416997391805612841563538422517966196441495566291533070042563828968407568888131253789590296406452707158265485632917794577218309193115529523045610236085815182495881159999189591835797212938721366513382280737151590669686079382659713094773914169956365959401625546420611620797834965927125041428063178123019922974262285345368829747514399621760346541366880936237540798792459136860643262624006259100865996798464477844626961924508913288088261050615711193750480943557472283051338961542807243984313075485963479082554382852102691953848239987193745383439267284260084985306076178099410067047526038613129236419183703325063100503578685032205724317457772230399920327475629829296131395170846143115831405906851707556253076233480288786801998661254635096639276219226630212252271623016452160062451431905527978289659459600430193570682466838966274293932580858324818183943682813187215137939817921631255919547417506595649888207581340235165915255150758312272890078238713494187553690407029632490078534777494687717648536196998807050384314150531713156679187996606344755310003890277434156209302233989419296738689265149795987183500958382344687368966418319902929135171393744890804425722843948689314975596717121513105831290866615020680252480050649201613987408415001734944695512872112165037340421088270827458551267340264966196541820528405733664508069341977184737209709824040874723514572072804915694423512809265556348718406305607326645213756508818480791156349068505961155646363100446934739533323341679138902984707980213610271903766721756503499416249912356634244848072079063056358296962381462775952468727905352553145136498994078812833151997593875524543691354203209700905966413229847128024298292870467692742298259885533299296227984224246132492780765985449658414485758708851020883074842631780841414768426235584952219877114409806985406704111069768411817542187129228167199823397611489791115784240041590485370532928996127559522898224957775076163663605536622683273306554510078127364942895314262367281289528637937757242800258963271860325240439798677435051132346319389576313127792197898421286225820313559152819977373312609125925045992328041437622012570250946683097925529878962752147844316849879527689230002397397350860710283898442871161302546235103388870843817874668530910391372336854808826865006739260763347989094379190110126657722709237865030079952863286148304681565431779472182456895043490350305057904347728168823225915924284755681924499916523024789684533622950689298674793467232027287201439407167757746407073650719415207384566556781998062881471942169309264125718254855638311304442241967020245273860382674188127829980928651570913328701817614486844633243224370930711703206565645338208646563540346205316405599547859546023477918443859641338935278640338282673245426825233176418986717097067462469888414382954217321953653240021182011590296517872988199925217470154197936025780939917473772160957808895288758846657248886845866958217834979060281241693124011361007880267362517732288013066303835990197139407471677723880738572798155714516766263788834078939805563264207054056701194159555429442721332096451758537123230910733825029288370516431830426802180392916975717662635334659167687100990341257484539864897150094247947159966049167133593252476838519181359861336975880819642007797443207566736253471355283665525974418808157983182829607337432769815969167586539536163410486330539283926863912511278742415223556258675420397578476474915219499940393751984066820871548182750008201754276408941256079227792219025666033085841971900273537808617274767060866862913929235703154716626901203019851518163733937297583073645709677373460437591814424054143728725196195789817206714135119509324237032813969459858947788911003565481488146762200086140142991267279311047082797907641888939823254952471263411213708868645229644199212725661682872538242424424561517382660277044216514527946284654669129991653417179758666888279873598296789912016956077802495843460956335067085098235158723092907861316545758582115014414099896546011509819116679036831575609375914187127670977942270140345784140042509981766065236623779252785312527629824073575654037971488198645695151727558210442900155674269427790924279324468567672334657369253931440542984832830240209302031219095362542413511415824273265511439398428188840436730423824657002593921161089307525181156187532175169817398155423157835452885554325150534744404719465430366026456860213836677171441878742821883769511298969120600011116119997872783888200414427643275667553409179806025363591526862027502357693259054119188844539451102194580964416066328503816621998263661547369700068228127630834709043807673193809122305789560960837072512136898592564958061250287038678285237648012836358204915602798245948057869299158390751282943591080569905795707256148715535688834516689091142114672607359888858544775980349749708430290013242937841262296287053134961936247027095987611546862351780832649287431606191593305157106272103843349098587672152723495856766638448544889666347428039826716387778053632567567161866934990533639870655118820974795675587082573371370964705560932622074966444403544162020115312892726164097643117298253727515039424752697318365076532076800569517712282264494360930543909899584497870833789671404683425618110730782314967083438007279466219741972458520193828343984265450819058624064303568582627826675473200873848701966597311148611808521089622096140637825311163554784701395357057991933991646317930551056007780724360041006673074700389207950762278023504690625311673696612555444515880944115497262794840234207674110811782181210328382281501045039284693717648238798455388034768332442474240892314684122030361722216266103371428827854107843829267061868862096310829296585993585171424464263835119984295608436528655714263814514654750410108279480416701456551524232261286918909368029254396679454188886468942137544882057133632936158324194221868541979650143843090121732445864365326827900102814283099658534266360732514599177066875528911292674965033472162645533032904388889969990212576351911029427487042330690804518673206916995492955545003467135914800599634959882942027918373801033965004232739444140042147087362240025626693974025477598084344529983324729012135861525703152356023255481338403336031944119435250615515309627860037566219003364935297461763023646482221905212463305869188354919039969868690665067504554895758583367433217040294937811261347566112682195813042379745053544488815682419984762376921476229306146885897564430118262559082014894404990022174650257229012175283890428611504086850811211688662906747164374360399693356255863348058842568404555010030709292351243665234088599096684379393659188974656747521018550647923862958809435148524166584107975770463778350077986621387583494728289384113540339356661602006147583128398567627629033360212532234580586445196784734638650917501261372202329307185981567036255676977574524136588607350320077718730956741345193873321634926975689690374690917373916879754575284990442493404303863497551517152063835122934237407078070155571232484734808768319451566780958248596727191642714561314911094127819839595472233114315198836048289056257538848030215474495217626341743820806775539859641903268366819950467471649105829037122816775976758514047194625952244624678326474243002455831645329331952783621445715178134744884647577579414489989428882754474955233008915538193094347173394448373459128101421539511226029781133490099799590619408474737694252865648199142844956894650094275455703795268164672918206025770727816472707022156102602338545500350975622819218973597776610845640428310274856517830837024775383608380781728799740031795869006757974222597562445887790601593158152685594042395950290856078631012309019774244740991471627446484009565170778237458594895630427379416842922925948738237485811651337653779927103117013693579202130099168001344408664447161213664798786449372262463890590700408545030684392888688122394471733156053076207826722006391120508489791281703323495883374046759717891159861242189836097416791118126726638861120940204643330413344565720315926180175822959862678266542763033612340149114424466630291293428188064805198385302410242478120276525994078250162071631843233962812234164239542504352517854323733429171099854759653723507789898548406068888841751778125110329988084069293995092926473045535867527091358255811099397823519249043727434146077318648955020535544962547831266773366748142562992124209513023887035914578754732898508387439854894395579327225768571711905420253176098011788038704488187730457904012229086293236073939927304763193402703850598201798442860662822256868268659943724416690752287926821238332326472089119994258460360569846401747332864122488231055247983230554127209699367062037813305789602105664088271551665011053001937906799336789456501019461613522545826134279955130990742387055079491390052890761066995717592245791265830638153087225758512735735333636887345427970258886606350394903089785379446809362036020383054715647606334704765605067442934717988411557919969835060251340519564628728547964434175234342692934551688340495531383775118928415398025062041452869607394728739133972085374509323351358276515039455967000679498576959603946787050421812207194705896833654862121721821824683695030415601804522468626073173676301468260759108035677776086830520511284953839098262586431630500632421706054243393290061293275751085623101640030587361551925907338235882044280492939248637727363934824461268166353086480807971150606303763492404970857972107313262163865094468316921236502579118447269012343785015278763943953792738994950415813086525245626996864312421985218371926321852340545297432772301064190737993976147896383442130864385983562224831836268440735375817147660707990720216641203682599722431484480505391933985050706350827108129425217128945143139122930041537028961101358696258595760317150768749035648753317571649269386426493846859230389485755250787140610564728035449642645730045436543724871853794461482700538833722470993248245839367962985351410530041318073984468714019323230084667203191821351900160634257894204051252301318463236139303926200659623602694048240520391971916077286818586382949263594097634382399011571209450773776150141267861284738768175540660253747767415675162870652993796247566867953422698672193388105356703978976253368456396842211855229394469224527214188534253311707623705582309884557916119978723675745575935740612924308092514965589621775371659688726529868244154265219499567917058458942309537627739077146755096523105474758455677068037150991425735472052551604914277113211264669293465037053888868145004407156176430653245940837058871060304694979192692692508758514403432024315205861964341114452196685339018054029021265937865272962938758170875185453721241704831253946078787566077615757985013120870573900567500279527719543484187992424847892830364193962932517754072894456481765044503424899022859023124088923090276588667801220434088412484453995512792456460803517000682711195227973639151451371386071333488783433556586787797399861998700518074715443329449396234501588852418994990700140019992267136399028288316922080216866956292657728147968484160586496226559235697061628615240234143044813209328765351715083240282221107262061690209872844113373256511152745720228216673695781166628414865543476283744859938748352004754359380241306560396764299260948819139749624551932855304592102843277590815722571381739548893156120931885264602916086073181860551226768243153900389119758656290310188138348764705537161509589939301569216082581537869127258735845772163593719192403980131304171984006376169603373462170285863924272290801302285333782678762464672796321529096175419057023613726749432499997041620929076319574824906069425268882904453330545657139346399141750652821262586299963065470779667578810696565332201845114845371669160692927827321906255023944021356699228088780763748504251452993371652421134072854102653246308243002270584262135947718753010890797883494625120675452149067948798153300808510299439104594203479861937546056863844344781915800830148554504765294790284871593971380176917538509528573864042829732616170710421637631773221325614994728176478536464913268884369190173821113164385059745992383309726652786755979205251423789470314211478229104775836873174473648796302548312296391760251006224250721258932178791645994142372376649387682788041175679095822976503185123140370061748020626086260192699795106236495553991809336255593358928387156088812888247867716472083942642115111251241950569812045009441025602661783604873771369928763369782244429270424812978243159337998773020139673603915408957612087890206877519880983405320527131233505088809832636089140146076551517439166972968595675950062379798728377943578443013863061435777436713399089517077987501991022810205360969489189235625752979978872278472776500549357678835465925843858302841534221365951960380530941669374091395061511338226239716516087061747011311281965732695442377097262211959736515873617974214165349355372634248142622657569756310713415994186007190906216692936164330863904090225032894152345163980921908561874725727770439939185872818852547955695326151885790436202137082380646394481234089452623843447563018685905245608458615064738277141749102887481627380942167022720365594452198994591395306937235249402613298161572225615950317715278492228361764318060373333861378641061435398089588088319358290644150793062863869210031237481952626816576949645696843721796139145063429096653953968186367491968413039660092011130788948207380959576997721341846035047520950908660680102441039832062492312628230031867237231339825674019896178971808267646349027226036082622246645574717992606149677206233184200045861010718346112252685613897002879918933262990331490314086267238707792095020682885505392286434991870863808292962658165757635073421977400281485568379642603286130846103424832652918319908615178470957289491178064876364246147873320242614416904789190377934282559307968765481354422244344837277110486176054023917155851355945076435961733092900625152259908984274996180108356911897393341951796819250626421339352999352009553216203893781626073208532042599544937572220215160814179375341572622083869789791754371534448236145010106153242082161220303029193981432423696598107342447606126508634090603378695284824412115668918060332853975036743392697309106363721261034883105054764608056819095026166346138059211214890780523570185472448763633046251205715478876984704439430446808093117504668407135851326734795034801271833459485001466643824327776049038271794888191720974462933469266527905716113696126154035418156364245528764898629086844757186836430148689517826649160528701145000380904873772902925234386660295744472991664393545961267794815285430545636507387933134361562371626807835124009524567977124715006993048251962373407322699496567284558504137266701774930563695219502289770574310742839168632810844137389735407570525963462289534534055773036226366083754726506539178427687312480831514119494787203985327757380872227350398236689617183804960758902127359306024947931128362102088925623456704239821370412415608285234679126628673282049593405091436191194915122612129089350248469657754783536608308754121299692327215067260756145116027433113535922050578542862859920482625707951247919440874388691092202866832543202400274933241466033486567906939083841251436673485367478655566118058921300175064022891400995579973429409285249956888439377756001983205979941633851858881282002411248007889601506448114679651838136475908722121886412368885262322839236804748751820898493791985135279818304547408857189630321006296539245002445476840097448743391025840010149846900837000792785022162164465910175513992079662605236137769290021918216888146233748665743168144739250001769893903667224073448671824595952492506441968284539115687409645654342659334783872651744090897237168384520714484301590176912280903345882447595638432974685628962553140064745155555186102746236102321429986751562865383814697594150209264134492932905942511348240238369479519884900731775935625953315261821184747190638548215139163601773155621963491592793186068930399878538331821687900902378959945209991885095852913431474747846443164271500598536764738134724059541985782807033285525028536176969784664726415319023672131716040521984931172735943304715722612108527016678693300308343355204026724903693129718954250505160652240713954934749935221221868749304076440626810142287659858389087198304721248207251105635649659665769877380471137073754961597284341717666124772939563604434067734767410507037647472670519625144805395153711001052799365106791068403001809101095063540080893823151650171709701526639619585605538747698002621780342435958727092738519775424593195119699390778414428207306882277340583294924813241054434595947696316448283405837048913885101939539629855615917815048641296892357394571376720407651607337517684635470886100109075463400917157562415362625969842942840338494257384720115239599072125948325153588662496874611829622686223965106252392933493061213797657414840180779181805508258217027757632094504896566163521291174280303735308851777430057166891522912087240716614829390233533961378034374991617010269740450610393349909220351619082616779995770155192719885713280372888904602902433083584760912451315794488297531187184549534855521917765163696994955168579277350266510851398451415015169609673354689998638423311850793671190200823144070491403886804973449467137005445942001367173301597290177293832883763344794240474515772653287387676284636958104962376917548235719335199734087333393649133858760982140479868527660136874762698791654920497642703093980609229748818864554815260792990922579684438383563603410939527047541147020199905921221595447302207568708031932018773304894017852886859170661682643210282443940853380150416201524232248747218177986447675592420953338353997484659861272655178708281837136978605212297294636772380036559737797107654750919978328457013473888123848528436874307689139148910626412440692143805820547491750979008854029849640029450876731359336454271993444986289469086971989130346574950839012453113243939275820814418312824603072798754936031575084924755832678941397399365532185545002334839741273343734547871803731650481587725851102766915413724089106872651718475258622437825442154826163628014930272702435854917502569293391834860893137949793525045135623379627505679572505599484189892763998468088607108940662696551831928160659710991619092377186598734329636614191664171224698386358614618528840323814098802134170995866535846137139099248766192599541761451472818434357165917768707010776655364649119382089814014020309347359368596645504696325240853981948213417648567199830825236143242139932565423312967858212077549556190400778821109113140786328622410670819061371441686402385250873770940427635664182909115989543682597800369520722280076144438302605867943243464499696603926425039867913147406754592942819063534887748804073056036755652743073784984864354950127060212399233032814943604776105515095333175787833978392789227195727886422609968279832384239147385315952383666789130653981718527028639729125108293656565193022147626219405784765193744039431125845705173855567737426012774528655737280633878924172155440423721995884519150831508977357989492428626008767253366752387576010404121059203713334691552049771153343502627395812648572581396997627753645795700039933201371244285486608804964092234422402218887496060500903237470397762134280073934489322876747798289640438473977086797885254282000777919841454483579949423041146091740353615917976185290851948728064351083003270364864011739149565031158750771962058869263408157982347830806438359129520349546671742299861228476932806855197405007448613057541366537840755490207658855593090971986989810536970796127591068555979835731974711089646823285654639091568000696493596394037473505095225976652351476544269004614411107987812504582373115820076257506157382427786561328481779151363690377260396823208825353575386093202051782016788610737667851324402765041906384242360186308523278067416071162886509936504581058060136887951780344624526746092822519244600620449637249285096344894919320013057898190262167540458893124290037695147448319919909533282984200693316031464069229154700877788692210339895406462800717215870114125947646581781834177728813671861964299829047820507734239482096107031110859318672290651426328086186958724576946628805519268834501762078182944183980508691122697289639266439397589552604719349052822749138517710875754787134441157457634951033707432840591915696467489308587290482067324412890583547260008572560456470251530070352587156658188222337665569855825176914405591453389715899463392173410066737351774591208675731748164270233294932864691480437977915529453430040374029891550482301386013703684427767474088762466411398685297655974295280320107762442036636970166184491703449598465501259867412426765340157757545693730175806316720265983479417234600070431073036110431809874654588632923946796346876551099443448069751864998398342066204728029855702145885269899955310423321538306410837309041801686475606217361420175795314743585504490442155326808738983579628758636142827247170426494081068073005427276501944522157101784214205455679167506859515524695356140794727769270464860796288168419218433943472185804865082564190836496710801362649312292981227698463714385230967614367619050446636322432951551382105582140156819541566581917142380784447171481020529103162417432260826297182433029456101208326414670279263593282150157271063111912207416507484996281516664971231087715388661300346394310948773848522302701854322626313320381774455571879551489613898138529624336315337894729547117310656479969762468063321889537929692744201708243719097605861627979295201265186820657039469479274067404529298859291643190915285149899630675455874262735628044999735873382303072312927195906813020141454934262656689436556538483283369513147396164998567302682564775525457194144434059171667770693186469485278158105602224784234484732238206973903437040672461257774572757744493867828617691951021415107770572702232328273266231222080340266199660180268278983948179523975393836730263144550643648033615297415452271280532848795267723234120563583036102355380191619616437900183841992445261793800137437736599722569567429258377369383252104516574364159371668084690818870152224494417188323668763254024594921035973711049711331256747329886106174275447844706413511024432246167580971667178136015053855999196471299020480036824010716607632913162164831104801736230537931321449632492728241118202855326346677021422142149568444080806842942625726991374503605646378429408094168491445204467802930075450653540259134592418467852508389159684793595288353460303158755203512819298690813855551682198429520558888277912576776613765338568617777121557677091499240605873962952744621365844599478100256511158563108742339194993016705623387856729354454369755320822295325840350871432639258566389424011443310532963982703162044203993393380482267232443360581406389590127872428512288072616973655113803587404002643872557962991307653182696835044697379141649582742293228006110884269542500529533814260047023872896909122270436872728126675007211021888197067922006884989192916233692450269378877874935057680330178195518517584303462265529415382458482118834794952032344948379522324524401589217636403728798900468335895827294652998827470253278368437671729926548219232277189090818713213923315240994980963340425615637886017449364636673734662568951258366200882155869373989620389493717093125953816691131997102597650770187362865895236410981640358455482702110843715594998660588004922917781499390243629447804858062579029247963136757108150385942109619810498165223153530861644461371733767000177475603752860451951721497667956866195850856519520790304433184940759334031934004381352712971007899231641897396033658943021318734111576892896590910025104520595681983370443631044028257801245976948583207517488469101342852723160544058648389239727966138758249368186436533449174026400959429390351065225886422124145448078652967025773440771345223809742701963206482914035247791054240802203766197185976652252645546966936368930135919473115355074524138844636081724527373140687959361555725618756486856266326088947541215909446727888895609922527801938737510656130916472785412282725118388061315485680703391612183252833895752447318907796406110804831722736104205341393010499746976319874720235345246966137184572231725554957049761723894673831889221163896832781080824386965885654465594522335740782185010407303010122638326960987023316412892081612666275482049416991880965379791231927928680407674281913705829440309880904070387702923396188819440316403919702888417535828907238721631305362692682836541162766485216223311958988143888476547498978233082743522461288856575161687798653127156009444257558489244783688334284077670077424812084456550101099155785484859673638283042672767276059783852941892089162663169222339943025736630541312691532990032357499344682626133770683548696616985923973284882372487767876973847525147655022911384498509079739827796806004625596227717361874667963188835520935601018286289196632412776025631276263790657777766975982654894321846209779293672915410806346003801592926394744066338548224495501269548011153628915666571677832920852000400037388651294594501311836495504936801527023284055392996910644305780612968882451592537777367797054650766445524994527389815024104865343523424432014716920125160588155441675496966293159738800782835048753046251321340559428251241601828673830637867868120907613845193169220534613215196681450227480067000625045507124769601273344681773909679012724387154773967969828939119672671009754828626350430552860205329712175364838481759297031463190240918856524164038621295203685122287450592071888925347968276986182374199179829440444196686924865030158057119172255321819521621981010822806730988696659190945122732242681016288071418052433889834048639955577686150823477529535982119231399267748011286242865184170232232961923011057941749157786508378669232615894083676371795380032227239522642429507908433401781863339374613462146572585752758892539770972849211736702892508589156759312070249879815417429848928408707729957768328456680322891899634411793630368070622538399566234005960132306102511328689827161073684316237207388532992020502810013935562063392267137874339385963876689082766739996163833107531520488073838595105855879401463568901450975814998019470205733142464278568705526154933333549551964114068586073766537641298726890513480921724840074724094063224231305339529345990969979495739950333705151312205604012998158439755061951412785881191778571074300777219744237357200160591303240615895748828230740960619593693148849878717435502636354985839754458462615049976876066938154449919781046812607369432908522041967332601853118102798820980325792147590029641782931914268942991465772188076686483852471880542620406480830462649066161116652484048796294044624078354319172783760109848420968737384774971526863848216555197313226331924607709446119295857984574301275455677737862481145415578463594525532317682602325138317259235887186695102191602701099823692665722065547233577088867533578253381750235461645746636798526752714269880347874371690146515799095582735966595567546156067984158847732775125484319222117194607900749442296006815428398673551438282218769313505189814896799785572204612018406849372336296563451844617265360582363965946099042187442139166899098132081353914590413466020757399025625017793444763192605046027059596541032084003447544145334833249310478940888040665155384241348429644630625303778346504059934012604318706905750492819535073008230804768172053874723901776454739037064491416460049962861655149263392362979499299196497360281689903221649230325224434641930708969995244506895485914160779500657076196502801121077009063959903468958566831800602120753327871331450398905230448086308311608192017261241431503068603953311699375776658103285799537650116292640057552187751495736008368108996533451762198887535168780973473127370158095202799892167112732248442980871364007788436257340982907090010394721936808092254753141864605611579885517620880434422911443077163227481232904923871867762953387216901539933911102714968981365936038348891876907297799842392743229592754902181831024848458256205593548262801564744784960269603043039657549409866392058136356467156116532984078452847091480906273790688590822208061796952554630034641785341969705263575556231332051650510476487668559491563992171413372645939760867376554814954335715223243944278120791012889510260193610486016944936503747735294262582950621620931844506517641400104655329054249659841775744621759621055662265504696335416483948583927757895277182361047560486333756273148880428923187510918456226387539572313076951500992170241760870621895698716401000302499977468900231596054081518010948804585406010233366589757400949138672588980887052552844932076123275494293148826108870109330565150658425584034113593393001352723790233956880636704095642735926904881500402238700941932064212245949891863903414859228968251103409639437153328234940573457979695751065934648100612530633228244659221783427014061946472231726837351895020136482272069835329398541355788645605876849598087543123545017058372257394884932442743956011909838914182439713027055334036987377120979736793947599339330695865548281776491962091902206616687681933280227098760637040766938918239705775665797526093527946085815756882248224028691896842220228087872391291872163959691786705712814814060582130127583618806025842417889441092537064765510963887594778812160371103837873585666697872900813567144345237912269253381350079634483375063781915598740906880209932507975144254758600686806394241679910922609536631787112299385056939488825839132612289281218715511951635601041210385247640980003237046227376029630296974821120477113521638724855087414448549230011739616380006014790915252353592677730573120145841597384576713758437959536541940949235488913519098403207438861597510832179949381356849596087430350984260878620282557883717413264278748599780574462432560056706124053050904662320196805927512009594019626339385421777337270507116450208161898138338209672393502047376870418467408655348276728675085971509524144758352136162809551971427603143953860948572905319312459367690842922890897584575869805858869298428990388994454062877721510571658001682738926609831194306936390662910510055202597360458656771521181432733433980177296888135527977281317289601303487346606880762573155186782800804889851238223043540973675941973722586336876680931698075760198380895936365327503279752193417645695321736212194133240982071556125910637607337197900071022235604016618257711431630448510413524467511886657506130423763221341899114587619908181300136597319718052128868510486382190181016665099785347183863217876334582351691299639335893499853911451405818939939317992558375281363715080826925179164987942406994183172687425201492571360908635178468485492707432200931818847067702327675651301081508797058979179017102003510018472119963573918586804673293791384321648365659532511417856878179313301591044513006583811527805595398475604020408984096679698300680675158450391993476175720028424632304061332283633966864037820323003513036234386234315027642139088812090192055450898148030274736222986197156230671551836191231334072848870154003648404786507392098057866067194663456798482573491401809564468021349135624160164557842711265897650380917288779464513998607850015123146549742887872040528492870615571444906276686524716791408523968265121204789524459656655658861793254695906108955459501426853390918331947897784756870322109888717162970960602246247805336574260742117171042143198468721070075555142613354298288213339722305350481866718273727443054693626134862177758111683509180178564639994477740952020060344371604727294272937439373813613569819549943806958098656385200284798492725093956771479394705938223962099810642401091068008927549351405536980824966618631301961649998692713962652417243422275883364833312829357962282148439206767717778443747805097743462924212992535598222492030956727320067766523938646803452040176555617901110189072067946959371464472405137287101042922259767016235168507607382791646342446737931431554542354706801312187942209391611984822048171388833516217846542631489629981983006462310303607257629878473083465787310564839177223943172637200172143481793132713084660274519136511690152895046497830307884657867180650533229793585945786321165566331544294496593965984527035093457460354831988451915017273284694040448950796605704238321556143251051051296827963672095958152798100937549240305369508200073342227471723027928348653087282047306928235857360580578761536313721099336608769562270857073948530260152296886555247744258847538968212337291494832320897763892816649190623015255389445529862633467869237530720835639868859040005139472245575507777631913739834767028109780093674499518850873070975422571409438761505884238874530012221019762484722827580269596497154498980446609283002607097974097214376683305580654960263034311947679913852658750421552870176119681150615107756644257625777947947929154613341797695939347391405885196672099654700024300635389926013112354375055284449614485135134253121998199764438589325122542293082088210426038667764525487859391248876528529572914137587791089735294967697369737839839359732961781102983839515916497453537531595212203908548770213168985182235287813759644953986328878337944650391614803659210772140118824792932107358630915262392375809282755477565519780824877562436647064704973029038291474256446111639836582858377810826772567333509434069574474337035374554422120553190912190384762577713005513575352721355802335169409888446501858917653092911503910770061920597041367277940116645478833675993185108561627265394581694216293398807799973064477876703600098252780498187649679699497140136688134751479766442401595703664694937789411185873960779919453616574794310058125913976152813955034048285588176963197488377652919262427051671073562590918763121315950660840021249310016916992387856176362555709464668522297155695929020220597247595040975789513428341073174021111977899734102061438230976510503103051782416468154796521218269099415999622854331330093571548232795860828873183913478839606651631245443616293678858868493369955074205715332038588522387553404258842778459067608879094438197299083578698849528566922350828966256744549146113680286080439150410346790002477633362794561342196672170880281752064348950951198911868772024752213469538277378976394220866100475267823067607574299745220924867943187447484909153261338386153235085150251403037167938588309039452179408917711685849407306881095190594536551305733499331875109312123546278266023407986068766027481406172069073749876965996030002438797753568106540549876407774943713046029330705714196050701342348291056913144529307873238850088473142150178579886290326129505173476041528472417153370569137981349736127488291787632493236609410247560620198488887529921785550130010837844493518731654116851716811442050408087384102467695879616620725831810017974008584391754549654016111283598571388824289938754818599584809507014459041531134235176444293499304311581107422300463169650093259021498089085356054201870963858750822040621764994768818584960016077295669003299040819722983414936083598896007970704777623688388949644913492947317794634156381405729105367082842186399452300093226920819452829001741355314927086460843399579041636274353800376295873763455389759722770281044675916449878427980795157226491540126684804038949262109165638021698212745066387223042593044472976927803214928026326323189630254532515828061049750479532715577945181705020176484914944771493958381509680108829844857207825684262868047277514450786813204525443852982351405507206448124806157762823922116661501779466896363759015071823485458141341659604748905794575059113530496686829071259040977913536846160282523942858993210828595984579438232817800226828468346604985549183536832653389623991012421770313238079055399720564837325031714043305373402669607927657643673637193788874173319414294179913565177042397709915722532496131269575344197167630390915392520889139379592550464412116643464595647945674645705788967288851297457973244972715980834261659465673036990414250067437596071050019280182476997312480201178071990513092655095513686558684641938732097923846552478308089666098433595716303425353880216733942854677486983340897840111913467176220290143223377748247699148068896450312388962494363250037074620736808193151384820634139370044514289431311748120887603457288388126081214010364360227464618564472155838047905256665776607657447365517779548605863924560263879202362432000778313599654559433602731431625209655904022960137687980146601217313225138397201097630105946469392464274008579282986221508730262138287166160778121055541884503240295416882974775410392856251630480576711526383676210705858945697761881175711273870560396263281198855073021863325461947244386750215621422610592155342391089051254726247435179303917018685197548239119307143691135570583756068751381356384247277436878842247413162091524717527948318902646153917308522036473910713193170573941397075336216528752982096987226491815733402010875446877942710583765220620387547263284549572689630816386283592395307498423490926166995483839147241612818567963472479575055544016456764038726410833286194582447863150267075256927118368656450369273302384108502939868416737674727605693088177553317339730660204773554081384421559434375820694301413507435831085261663045040709940866823714281111389870679754184314791070872053945579645732499727625604916760585238411985491052337942872607236660824412933559637189267939380322996595312993884881041707275062028011262517501012229651142312238158632176484016196828959349978979769796464668230330706912619460283217626411443097256766749077180606174065368365837379613739135515381092121281857702764252982677590927336752873955307666847841406404189479247965121874485649944344485814721126216128210803351804638676310803343906884159978718168264731137838486976089260874244098365893969917211189862909120042131493634109877417033877612719604386393012250577311478406522498835993030595726936952525440708499468955560423726319850076632601914313371658095966069449679432375346978867102470214696931681534320382395018214087567703463848408577428994777340118874488963353627864023569749008878217301241362779096659416535715251932923750362737510049789682241357218937196797141140719242968347614659521601958146413366401117405516640988361625205599231188337734400290912563484213207701467175466048344301010890704739702776420601816466801537454250466582378076224452995245232415469803633981468069876668325701296259540880085619831442966465990847764603917047878822646613272981274093180168242557721474989330714539641423431351247453903230920035369625143324140720713563177574262170968409476055859595545177720061535165365548159843476070737908576504284939886732777541709554695173699338736745925245589870313497549752928781931353544514750894083551072239108230157850256320764125908050816185367386761207140758447625394307631687838040955967376255967855304590305298894196409414361281003501989488723589809082147203527840417558466553578579080856630103627833075327803070062523493076073102137364687002858769722120502896533934775430153863980049199334570438682156421541338961654590383499451340011181846549375469328402318194395926912251901222596491484599605075224569835959706530927319221656974006147322153629327981939906448622159638450614535448301920461489142950233713861572872874128400235888157143111052675412699922239019064429196101662527069309160271197433425315402412762542530446544029784568924136242412224594282636455396995847710281490328392385081067147460486735474625872175290019707088806131701876740745056012299329344588497377605943025279317976593193861511904020200152778151761437939740928750451895722215313018692869083356621157027626105990380731415607539870801700944799000290729686844379037516871754892810486215974145986121051662595867088864310166405215934304437066354729352020468647853681861263808838249816800547263087116258348940997810759756378131811203955517809100957926623169583609797212984223567767708037505970039644468357786620192441767918869273442407309633129413859800493087716607507141117261598331785644234319527410773815782695491985236716515155044255742853568186352728604064938549212545267164133279652819365953198330751812661917710721753167374698500127384230808371364493469798504512075868768032311358205264544156046645817553310042339256637506328221427678660732888538336518315763587621141869216781548408568371411903863425229888730010598702088062145963316499406243260416952287032369488289455772047058596723245161234418683923031177946357261869415270068839996655711470095618928816247145256194265353855642629186047380051269505886810417938042324372068023186293449443355823098764352743695629092484760140333689455026128852176952991771618499625642986826784376518558975377600442671163815894913480595204592359896850763978549448203094655275821848351155816544431709135521257756072286276067700720817720306217834437706306497732230304448691141463699482021230588818775676896042921059148146249457660707867070501936588363037580739450413788420531896296240067862546835706224085434554601689463475347649622072643347604962584650605650366985996502622033406292592161484772724946801113661853641901382108033595131954127709501295473008126015338198203932599500083681509585953793784534228570270194839690783589636774037015828252415278245525741230677182557500183086194412584464257687015664119481368890518813640780428862217670179130679883688077891489808760890136897823494073951882701621953217140197080166681447806814132914586657173346024986361770927427634717436261621430721511155214954681037330641126033818738317296602209583851917809193794716315021970824048779391407447923557598014909032023545226637047758224188241303681751800966105184727809584891629707057016134697436641216046818772681612149806381151640873197997045670459107987446788670255439731288358097718268996683649213458511802499186078494469696423780900748806923676579875307251797019994462606000570279955318313903160649000238285166192552430256192098538765128942618085674453249133799501260340244372602406478179506301032782505537912373290053851504908889694052726131627897721300327424733676033155867729499698044385781184548264910601687936538356053969118993132803623783842286916350305925427204656785674611979226921391323539951019470678385560827753161904580332036821689186921616358750649022114209300903402665357504257867699125836646746717379830482090784202959643010649239304108153596928286600307507680114247224607079690409532959279757000632502608484728737480751808410986935749435148133323572430993633152703812046629010085603698109853486578308721519846125100075923103075606593969412794464920690108553659477370095211304148892228957635238170372537619939617833415366712884010728196021434081882746239336353289830766069630794477233172491458298604711339952446556759629713025551759698910716233534876650147752210143591734998363276676550458268868174740139692377496375352889642693960375061468175668675582496517180181805948110404734949503187116373903111353453441885687612829334048927110680604923375410173350682523623316204768649701546099489419304867879759859097946122806546236736379668051818620734396391801564484246835925428743048734264593492624400955096156677260446752913163654210549868618822188379945271925089770876870618171216471009638977469011002978146752800492081429448077907025983109785431819434636689104716583101192909662686322241617531878354653692308340104216179781832487400553589308852287409941862629927875235880437555569067836345524986749457199083864562933989877023824428317407626357225991277998592012632033856538853170660417717553704148414479766294164474617746336595534433415416123124255497672232982741934692593571254951408463864325454171988840505974998309160289243387970212035653206501120684698479768638078420806616556747284382768949987836429220347447168137912786402341057037711252409939306140575188525737841272940139832939861008083090424474072957197681127282385751827922359266440265574388054479166630026935003764287953974725868367786472615190013911554396684965061629290732171099287791423653343670801593367116708535879588471678781988122685049614819361412764034078360851752915126701978107374141474373716315350267583547648890969408991802283134790016158984200654296991647554393250596830290196103139099582051890863268434771287470686202449496422091659970226668914518238769907665646432783883747316842817198949976815712321885613564554582449413979905846589233834670556001283497696374297171099427343760726889211096009736021064035875461036938625878281639523266931909361546365236944897939017797266528283950359528216321940666465560900240413672362756520510110194794154253690936441607711153067149145281287739748780920292447448286702698623332811995498765629760599999150780886517910850409452831084436937391210990742380144277046334105155249556487575850148765159376021052948904180123528299504133959489287053484077020598146442433120935618593003029894165927021343481393008516054205624069926557619555909321576066557078431040283762620473550934920804111490136843478188378783860541507116685689328713250113623974614408268846069440461134909788567470829858423484622139106871134716522127987743210659121310334098033538706140363865030785903146872394132498325115247303835030110643250201666170836285070514795033794427244936704392993346968525842721286197381271094759252727976121958935109476070096155710728761838787327659932425820265890385369232248922455115790256317716295839245882322480586616899154021577838432707496844613795316119747462325597948571986268472436920782997812512355021990127712884264667347118289415591431704473951096473758903876470896381145632344318669886340784128375903503660777078538641293804572495977525127206527926379014710431663521747275195008798289712327672802850436183164906135608141394595203366185520242649754549582213576906854990759756455536815591647650608950438786798104608750738721309279238967558584080004319413292225943408665615033654350710097877975301703038906284186916885861287097151006915441185391840752667194901328152716807901428401922531935831233971439287024905528662954190293435548486602304694544362922367343900716466900956059684027045060710601190167390553970968819234012718258395354999601575719323453424797259568465327192753894630849377305178945562486991959052458388221730977876540372712485256011020184970131826268730998221907455436062317453140061707863057003512847433062093596030315758345412623836732957025325434737132651714698687533411450426336169329751618334807046923187617637350661887536428560527636721099328374753456409845783137597734190122716651892517636871458139790261704221867793713323088102896861563339395317959802535672745464255459637405725116648793566359458619741211667865184531481121406815389962106279694141314281448619961263546722570246297656491224244172192329796272449963633193996559637592401221242051149240359079870056867334344505289081425110498584342196314466569173979637274018976026377474027654042555327751976836675618680707660429080663400955001668460108464641989994279617187737757700771577325808247796847682428471674219252951537630198016447033405624370126412485378822549470493733488715104147371382539302201600127867478077954010905431923397733517503109857985164527636049740742618036732734105528397626215225494294124636526738766292143396835697324305019610933262311721457728913565582102650572450459127404632692452978806650055157853109293488756128112061457647361210257106549205683474018679086205214137106105675207160511094741627825023853037621571313867171778442924392557433787549463291515572439152586271030845843589529835304451766654180827109811448523972148424303654812962687390789850863816572356467957930204783513432579088805234806845125125149444883521045141741987567201420603101789100968856879355025885959891009369221376130102751250715228162348840576046572120381665716763645259477482934240505635619014876403276258515970719005198974211811005084154188205435617471706037173763058248139167442647491043736553460429290577139810342880518925169604953583821031684228488093078857027899945449513503650811235518873406647780229120137865593429089984042774707012160224144268361533700316237178418705421595233456945718217886674779897650748446679922278106276145208903652260663273373409553844716678441594268343736769139837712380202614845832817321844868054810664363010774686433632832865824920518610006588422609063384001723757844273451127701060756359743257141377015708609366025525723057478254397141496051292003022313317448491268900454341482725903476295184440409735443703367875285617996075852987484357753760046847591447613895348331840224103163839772378061451565558011390441702745426847919069407803679213103975858954407034054157477401070446273638063923802533900080381834970227702838343767804503722382895384468323161686890481616103289576734723983443513971484514780235302594097749669919367581517438408443872037667757381510289605755126140260591334939449909640682097270518923171567095159985756263745636322827329072319601595632033299475992850586147215392368240424038658871242369591040584525269456876770124083035349919096932476647854295117727371141124041994424803669501708033786454509192140750991981398052352801188978999199131556943431096796069937871136473160683855549523008724977389692996364342620718731556532060118325271366368645047236272219726239121832990811805630545738907255458445367823382581672692348279405606912973683933574489628517404129303791381806067250590708514259797611130659382970750565710018534329368253001943421565136148534461435269683882688460860827823326563273830850259783792631320473469581193155029813706536333571459248887824894134589393816442403003044417804763895946288696960404397635955932744876552652350400401203020957181815811802573501241596676946057852090768310086344379062913209159912737541475167784852436539332721416504880444247723959510714516679783942998452645222551522984390729211083551385479106342328615456168048983217455725456290744931843123496916841069855904432740902000056763901852783930424818186573734775700060119702144160393682984303630649777574469914137437700456373588406960183081691293625311391443973515286143292326300763533283311585106156315835035861475082291780786961107193310869679329972038283705823638502722229478842291458299329209072315597800871250011227555320173102388436890949934340273151028521606393168876376851182596404248639477825690786770570441341519311519930046092624794994813197739376693371140970598180940163434670863310402123913295143469175798801464577650400096256096807788318651397016567755285943369229792074451237258326098675432797327027464592709640794501681690389682152614706329224515698816704384825641164763838266903975037173025571364849417011098282298681437514138513894376546958610674226263627426215571827891055762119406178967044642627071842928734594631774085952612928473770615534267589285768290541402871271133829922292508937976535416710327311752912986437408169430057105891217505901283856304599835876502070543490850374404755529441411462473741624802035479873193440502742803812707701764844763840975648022230971856976608137606889803933606730051894656960479017083423477074813139672187552832814028819441620959159905877667976783037386507254989905817602216453817753005553212968376393191735333048921600728296605996090546803682788897782909933329362229340097668172502786023718489121714030762361804888332400222170793011200737140625161947248833672038938248587988643620384872601077132206981634942689011890122787056668869924456481854613086751639733594080890734761658320504971695898146532531767836261353644023754285563197811871976115095412115932391942980005280820356876590998128671748833882781337283681141736224026623018037589410051863602613375065569461282883612092435367838608769537613130555777062658184409578902412305778617489244797002199571067571814521481918921129457098366818323347395470019242867649202455056513592123264136257003748951409487507894907556100738466474378594460791346244198156293541824124430373807131666853189050735649805194792202476125701836597021644026342175707910046412157705406650929780839084851433384464502309970367167284040468839877986934126848925808463705426977964316125799470109906683323308402184506203343621373469310451937144598200149991202408741318627227765807966246871567175916477412982810352444621875133597907764932691370433002150426694750867674244071629966372429001382538130980469718492649162169173706626227102586142387671298016886172207525395833384538647834766395226077223065368101985541072736255302147099869509727839346412629399104517724097185506026237620537383660330340745488957333236123155239779672185245516920361957222817123162028621911146821314763176168246704695966854280774957953778802411774952540699263065531816986810907540043394716765808716777306189662742788188313790150542531784516460775414054502530178971929420829579545034424582908197526905654989117913954583194713958347090756452788223355520258069836282283639049708403630558017191796772130045428339533044449437407944901846536764811708365896321313301564383864352489981447359396298161468015079466985873372800456405601994765377768114854746376339904372869612059658302378270577758537822948076807086399743718361940071449156797786494470600733486192309181737616604584742175679959386200054213958652013138937074969506646829803726978279780585951426079236542644458010046024113908223367468776947835219062201005005011729732012060633312939507831983569046732160481232827036342149248856605856532977865189876394473390542932337465548265281537309426585278902934136085730607810570046372044570020806664415561269653951939287889879659190121665433914813722024621897685424552009767396794480765858810330554429664590975999782155489200089081057265832013348874357632588384682354196629923260345179156501616372501435732547493048408713683526234752714954707674499659419831789853347078393550838813384062948349658051848310659952903642156967880239761650890203738510595906078300814065467745776695354487001635353892027953190681345391035573995816496709364410726780065278736600128367431632720521268651708481038279195087832983095622686220262456264818110338576496355546179042270511125344941940395743180015038281315906176133729656412745481499741147122438308464430556636311096623573908221116071705897452729161774124616830809258161731255991201808750658427080218934849702300134994102034254454775200547419359281920273039697731192878600016951678632072412200126637253528633694990694267141985878702704078914320325099651050236483410106299923405179065650813984905260301900076688182769063417554248516244565791156971548397971310440530763166066525829366055926246238184111125096731015847193778628761197471251469433044229404830629457570660615416519249190858071338344004101550917379194381597623207176949995698268295307784383325537450339513203960044934647163817342169302667592799032835559514773242755763478241413588905556747625896703361137546293972412829977166443377017185467035585783608772986777114417092024326320619471145182401264675626686780833247435563037221626123744849725209286274342441391758112674741112483123311261250158489575731965440014734681836958928442397356841079469836310640000679013217617681519038067711830065944511578497669424862369189027368373604175766504310743093350674527048761854717066719555329897708025545887157990656262323887991952422239502384257144133034385233560160306125066727614519945759695503180578143429403971722218610113930605270565028685710545832548217023042415697974413519885020607641211442591116047500987281836567232881447686029287188393524599862476597116144253264278642177300104053568484322900690677590842786539359588738281624335232906234894117759269055463761145335539479600046996363523990661218549031845094631966023986649993764318071216259488036043392622288377463135294013442913426811235471676558123171748325070644160766420943490567636267997285368394427229276136126067511600274863187346838963755658523302286282353870585314222208170546782441545277183746348945524699839598498821384346592052267297583711077382244475184245908356518390158743337000845771165892828271898800391278740662145126899092508605983882216112325981251453857386679764819304071389840798014796488629394545790465795482844932231324802064897553770057625128011518720237979931565010453085155731250602161656709709470405476616653052133117133631992408403155122857774718767633573132902065666277272944637769316746882381264478472826159414900981511658423294188976485393767907324942166539045780555351908687393825485872013482843677658860620569851934165117664227117481283690085457345257650940268904513024912913705639529964132307553944480644722975685854676872913242935556746516414723932917233270023180264609719035945304904899943550956992604536696559106292260345191726572255113874281921270789500855893953348645373809541192304876362258828564945204763712403302212072550726932144146643091268805956970516916274982679856600984074424690097232505598619388170152911374608827784499395001771565365618910273393285842572112570566764704548121740069364873368887578177638095262463493523505859562947403987800827462960387832091571995058474036252704987398377299230888602325234119988173194818701389278933481877378860494277677318692349769052982892429896555059501941510238065970826962140413818197518927233267417057502291856323099618714738588972988998873633837333380744619715676122991757096282276047197228435074282760879756787299259580203466522059512725371226501082525054826895748555993524577630455235845016345593435430907529895714283289431911054166649472373359378578496770682291747481438371523094297835391373943629911291833771613582791025047446740287668392464790626045731078489460318739025429183121520421939100066735892273181322061484714753718307540479459975133181918089938937885390555852931393794709244245652772127074310512211574247679386440817852203622556155298014153762528025613244177495367258126246576423293397509409324376443993652261359747429540211531074688195208747839957251869225624627236704457634221112635861894977322794917271550844247148599786162840931633220976137122807009877212446852395604426837327271772896030817775718945380841237430104025252367797736971326408561798604873753271216589114811025868893059062703351260093860071590737187217765897241509646903584724460773128671043188286686510978710586760159911230129682796834528426727989117292725129865512080508211924795065493127106283008369479483433798655875977238377887381914968393283341951906720877836720815053249467231500564451121554650274787197341642462990220199737421776237026288717341768930903485098289802000273785414173837964015017599487381873418367444861572592733204979316961256418371479528492739801468931963020338676954547347329527877687912834988897963969731760903786502652963392850163124672940645327172189067673658112630280737979821487976894421640142582764535717428358544793000261773935585059985948288687586046786979782418402300007192615859684022936180548709079479915999591347679658757423977843507991743844972894247676635333111245491411397863273204162026564674215730373048639368434339975774104343211708525526707872861887987683681396606964614994758835180214057422665438221959271513072011187103101678495519457742855905305580140363950379719442284288059151214610568533991506422598726895202413627233133160068149762033808982451311437136697021351961042553443956705514562864353998500687534397360632763907837966409716948045605075043908709793418029090615969438401514323877216310756597683430041543573116063835476695704767071063507128775824160288700826850507246282909629984166286505591337063783328094279540205443608334720904554908862044426572026121540889506987887245220606213751639441361448666474708673087955512131168368640870466185114995386911445174815278683953239221923473014761318511048601907234470688015005451251910414582227918254102599432913687318586908718210277539810231461883296112314512449107180831165634585309585724170949479893237032936574095399061066837275696564919825881897376765856200337470091870913602997633752865362813714650105996779010012717229758146371728220165626781177104414395192258948863178623980148168035858700021808812133032838858316440728158693386266495383314083677531802003072355133884358957618637008543936225256183208092842664010867110211744036927687603882514238242986814495533804912733421868356931838226806505550685596565973188290623053915560524922761519794028452802405621688167437432865220876539139572383727156906935643790018146437681345918390611983197483913987665884365308543615744182282845867745374934355031235283875464584017573516685013168991067446237374236091194514094398148168207055264528695669807143259342519592731162815275350006030255087692503885972250679705117745901298470289027800642025748668683790163866663357521661478536218534790706161897633309063170086436026029539234911750019613018565439653898673822871739563468715317940101727144257890620573602395190228446448638034473045063883824396046693515053509769370958287079857730005613821389762547274605755548761851592600185022484078342352545485588948095576571660749730622373623731015662743816844364553710429244426353666455306540745659261864673846460184376303014966297359757898760283533021080012451842570527603458860707796420234113239374323809201362766871370755171400209438475419176083700396608383021257163280693723880778243654050059284814090813686599170083587558550409424635571959479769014554847393588029723224240060052756690674811085680599743279855051086452671139148421571150607166741343527910998069384020424875100954876220942527462460876448836729418088385278732724617483577303102348721220147963508156671590378586002640209981502317689354349509126789262105792604523191364961804039171396316678889209710138777049511297225170379971260057027906871873640592982860142409889340493570591630523730787521147103431538288479229440722487988885923662911653846247779397809442398271143418320141463912792722285482105981043007659158077082451557667403082133259402898654601551871641118561149754625846622052074641175966520355198850429119645329797867718611737529607772713814090301086494009929047311535738037851768175573594647793819975531088457812496992849957232601729490402346086438693157782483524730501483603664444661217271524543603012107512446012004368154825699095497784520030303344516467608013266299736352792859799088161433111929942493636787640397212330102417820324387872958640592837299596664289248478673816123792437951518233490784893607940657507343541008758017868918153044300512587510254656528280533539037568373084737409858106179650776388733064216906609962355714511905995062946287776933799414367593348165813075344174172332513594120416924135496982347601970334460751388529079421393568651906381734200796457590110322589827563473395027889998190780394490699149089737601764682314176488865469279141245708361715050117054341318881454540490222975485393373425416697607553568685850353249280321439793578815536447764476557556567294433075310972199996986636312460233155709758642973769136128936061058719998507564783883237831111531340553032439549930592538516810248738238974983411959529545322058843733961173053383986491233272965056194079652084384712870697805624268659706750401272985763327738679899575821608324366761435795447911765119576773239047734173495977282856375014405396818355757260810332925410579113711562049557644893664410754926217932909535551185446711674346872040901762408519969217820059211355769551115442379181504839196991518943940113355934857954448204991507161905474966066965006723277129037674808327670909208021868120746615885429502844204370659817498397007629423892063000409050616211403709843762693046103211102275878809946827694855276102787005844833612204221448645906876294493213693511235007611352297388821549301589841594055262390939426640334140656004807599934277896588014179893019089465701885787298301647037987359693619570508959378142688635822985567960836770151199162072782002067756987415343409340064551143099753242659361893313544590975975665266156160177568929358179781347923475642962091878134025557416791666228593024739824064917450005374296700979452834215747813746491132756221806711309135738954864692178522348744548230460364615380326049304245745420866194396522002131055082159876001919555513370158115040089001989522018515319409783078403326072633391519683175694091970574468842529874522062881892408542479918296417368957231561177611097435392734508497317548880432670734762693119744029904198493806620640212268757693688609903335231039085500716051929534759626568455258945211898434075946080747900977461666689234501988323010929172039392813671186616658841820676466033277243797419744215360088081901170325223193437247438814322361395753844702033120191857725825563461446348753344014707801214140370496536000427461138407408759411036210705460882828998721286708018748423401724913578175952465909829590966481090933320502571134149963480446622829536810385960866038800819331015729420991944755763288261077094384531417951384458486339433172964901166753714995180652353644966771127780947324292510783217916468022570087689026998970471881411454453224508924316734646046434038955063848363943658051151043847945080897361142102033549828115693892375232204219096020792412257018126902013612554711921186128439547007191790657112685238876901599033232469746569079842035487224774958139219032484694155144094883153783909229893478566630857525037759087260331084501694660684944168133480085457467948747042958272724015858600187787659701034090183039396349610389384546665370787634321104250081529567016375200269969773644910025944587268794592011556813104195552870322025993658849898594446722501896007401467206661290881933294372940198222540656927864447748540475697391316270239690502593019393206981400267622575148103840715024555149443378474655911287460083389276537382572519073552870340734479389314113727353221512506687831080276124713310260449394460630695006546407533873657220346801399006292969025970814855036907083835806681153900685646831809855804382259416981959460881524154895889081274458328975909322113966443774049246406472689102954206701738382780384258256294159330955287562625946616330325868811287523308480380693800314988188805449894477943328102128027029710487318051929889096335159232737785845613969526931372776233533258577878504384813111818018224142595415233589189996819967536201630453607392294806107599638418698428848017948508010566842540804249586652824366456998202495439778350027351079992553029965622869262802280579924713598362438440817795386373453030843110164568484006634924760958430689072635486040381386736467232628485140722962264316951326187420309611292517694229808558115949460067851773289981702590300958126228297518478826305088671189568091401748444548709549486283798657035385845588196302212394138348541855127804235941177698030032408965618719429671217688384186323109105768024606882866425251518298569103705543979847712287096925181286975242070580753299285219782252503032437983359628878033800873437974688315923942984892786488130586926537340086258854087983103030185056335474272288416916559497561688294439443129991320401062890508140706171767047699872647885948177512033866559664614284025703777642659145922960382102350970226904040809372355659327800850387817623700087656954068241804818157125249733936316750292226636603063858107119794181257854689313283713459123711430943111466804175774424594162869375102380481141945544534412513366485702869752112402368324028094090616159037045320183279279292178977827747818925484182172885104711951683839113489595114194480860650606987367516524891163906469872588807258383630547378136581103184271024523894940901643783403510916297096076466519483212305753822881637319422292499579820710455018650149430257621772089705064086292608091549742152736166102937362345572430269931065847233318797172843526321335833017263648081591843734111623838815214968914225241939821887787560221717265573733876559356354395855463110394866539950663027561394143016133527647832230583627569160669103482820256238769041014847905306026260320320658410579742260349803510747310898217072140552386925987031294917504265126254591146041794101870637103571894136117156461879580225560241188732104367838610500022036616094438310574315493980051050276441357460797598555827910891482642720134399804339092318806559761466434956525367178931231659708653872169439873242216164226031840944496338060817490587231835201895308980667223290924973332286766304332911517088733103988954585565053514832872948639512607530981379315638939809567066400873036089928904310751810206229074825766867290691009233757824838145969302190481782530989798547811582843869831337177671764229760357100665025993980889218859214564819980956202605480794543076947000900318400608953816997126466473458744358874418600822309640373058903980572280472155708648524063910977934928910613022810350159358735345509745094976798352088409242823853137618370138918736184963988960702239941718647167300192502404969855619971109290599188307959168014302341655031187949407860037241727022248227563243721732441643898729640246916258478568724664973559459804514919803379997149281202985480416630743414991598768727095526419841900367896146419214854518684267998655649206654597123764911005603025534809726848310235629607520739458001775800898270681583152588981653597781064337915016389620571313422059094448614465436485543070068390366043413933627738617267743514246631964017022091217682615379483834738787012900542762664896837162047565836719416329536927716589906253128422235387397702460306356385009744969014593113412043402651254717034210309649408384269481996733520004015957773053348536896874216231139537357625188589080266233649219840095073079128761546466864678661145298417254959839609035687063955119303239219729751621520830972682561136350283932223481720935096886293613267841526027862175316008343866928175401357946632811017222193817014109332715851895587627405157707739311342261617516786879689762983130950964997022385321850530559872914760706739966009742569508682678626570885848546477143454543584038143440029367555338788683094838134009425079507173077971281649494224331168275049792363728978034589531139589993478084805709575552464434557332035566154429884505566034339897913321747108455502585019982581667936172510577917915823414184763057737565014716548618635769271442902937170039953880572218402498549009606893342782629473369107372752580718369789635105244063182082209828396700547233702895102885143768073536581173074203453193920901115124052408347744500352165354566183453750243417161474597837204049161117922046518268580920313509278742585636396718027495018700835421576911053972167650919995026448398359537992558558594578454871335966207326165680735463865787010505941012652646076381953750439112206509578050935130781337032329869989275340170870838437106176460983966514377901435431034821077652625516738546810817526055481394679769455862729909913088478671924889445006987181838709753755222642979701846955741198577063016607560679282936817784322699788152176363776471221873666243522610736585145166952337724241091801477244769884944587271731559002643250072671886471171559009584824811094179744824824378136549412712514319649850096514755769072082462981091613317872491364923099859242404176770890035544120804401138126850805434375917866714048196048669065863427453560778581966384523959662941587040579813437721816619896133828800891256895941721666409675697816539733253556713934752293954518516309108820309385382832533550493206947616106663707723188140836882235653063481586755613402080496729195758355608060796160719626963197646502908680004895785199276352305858002260100989148149724811012960058235655271675385912998612540326660937841707086145140387403036181378998831251773828450794016984208237334580240438648276986096556115231305546433828793870602462717271574410325859648384182495277157778621066986003030701759090259336454624081469559865750121405724057804610978346967369720961430495264486800497555432276092800262997581006612739821636133178397259843712363188219850271032583848564771405082882005361275278148684978802817969299340597225607824836463540236344924146545623258845810662409653390784743437760008814071103153667275587995144686432510139113023689443207435460020029566968244539294323774259443183936317269985134206137667183700115997315857520909896989918691067733104539021050821942678838160271384484501766701365378057901767017109673148706717185542376807454668075411734319300962187628326278458493555048420293490206373000538022726948026763017424955795664583094126090944778416418372637301820199372496071597375064946186984769421508383113864931525681465196201138091940888603390583736165416445367481484149928560693705562836681494690646273742904983968821661187677547967512005221698253808099438857842598706908107044741648561071821486116738797727517207704907699895545516785561265577976629682739298109416155491771114467600967418451103203600253500395573912189443360402115811284796963825775145574798577999389511377695512174212662841208967806214636197231212744758401078935880919238459729303337966223896513459124978176795913614859828099429545388069852513147554341558882241194659927443265024308889431234830130325560076626006075461992029244056499611647299470225998409392501461829171029181386813862875034677308733530005955762759710501604900070791990839861023131533962667869706162681777447091442597825210789787411301614194120507354885797112991862377702698575967730453920887097485713663611784696029187376818445294319614212822686990639937787504287403892187016576579501672037918708742939129084355243540297673331829502405942688914345732236581637143795744233680357729447577003009011821374660509966524599264411146080538697738775562651980857037926821531036345627648393949846077813047046226972168109988414621488973918293300447259453343153293667548389895495650397250988161392765316068220880258242305304608065442163665220796073878546621150419325162224830702559723625547092351885844819380622472771238853957142683182523286031865567914226305928493957149385599498790213947086486284792080959334184527618501608486030726074271819558446509920708346137243476461705269002578760673812135763475574114068615039646970549729388606633949184715781025074705537570749927061361104220256449033849213764077188412221015601078478703330025345702325945323310035844259943121085511880041294868024989248193316130587223235018773761224093401523347496015915191242362873028820478826977634635807832271496741779991610621775097893097247087092947674735377932328339202786731542797289704860398660879624387569686352665587034497673372443922039925438362379881448569899229979410643863825290858515095923241867622154047002124282041617631299202371364389862621779660829319623020567101199392836580726093164753224802650056247191242977267657236321067726634481319886736640314947967444942880953628323616780936685371943919756245007193297435958385476689845351639178929933329639994532496122927888670790131583055891297559812924852022975148003351986540091080322066555683668328281177204753312279690639998501574491255225441367660293996087861301437983747099172412734116498801238591490016306279060791532874515356028437128746419877729463233406591051648158779227118732909223191869863364304871232357183710207016850948952782945429615258097037416878255896606803419872481903468268861726994857876564546198286035976288214524893110376773083222042538377348935842879773400643539008097105785457300119912445798545708322035876227736136060347148274003705800613520608261808319237947135421755909736835339404873659417027134515913276516289229461124306973594383922660281618051731209024801290011619013328823588927926277583872181506514240133849541378419370384282898045713444511290820007733438603900833386992215975392173794371114155538825253778764675210135132634615101152027623612379239734467211984158638928414066158772646394703363117091279361021355582940383953345312675440304300173166562699386080685448461476590758120738743228975286118271141249474631059217127383332204681530392303889862718424908455343171115889960766758949021822183286724868612783003936339524339252806025154267473421463182290740252740722608053790329547373204627955958245777490421712735854790232629517562633682549153032329092893372880264608400058234973707010007738108042568866597430235467061449487292821049196789225388480655180557024631698316996568846636311172890313701707396681148537632874718888825043577372074943805207925634668291587385188464763317165538885783000515900677491555694151482695262162052481000251980817212403772715219600494435772457601808118276676620705953856831475432289827551307166438189807625391855741100670662986757336538187918776187580002650661654940486509845297149815760522721444198564549838857891725916634034078251930361856648121486256868083590920373044065184975287353943030637935191761202726478904274700368806673656807454650646143886930658503762707201745950846669420024480293377387055092019390952401719974266812775891982768352855205289501456590058882549714977462640563517802661603491736919573385079603431891710518666024391953092490020098281055404097640828526347715879730912220818836957361237670265507272562499528530215652377315857372130609822391186551509177966791739643631843572454571534679759236701057188225168146924406964748314088058485812648401851809195176499760298793168848573311467648698056373418380173372554703488211402913993833545183159547085571309603933337385303236182156627542625107841284543690770228384637543921427470194745812321241354899912949396384921603501149447717622539099922031594947456383918673407835360936334416655832818504154897621883429434359591855641062546182034946462425213902554962028018867524576634950214560674813381262197811198046422469169064422045768547904566326862155586808180181621227718637702702291692270270765980407199532896054946307220627348242739771375902972982712889519685272995989047262545425766123482864507237174214491055573404456486301211981319706413794930359201786056621817917261349499422758224245060618788919947686289794127708336729570648690874887027114067073878102080212354284617976486461201678702254574398122830541831797761913477363862478196556841059184911224119347906732078011380307130100805114931707239985265476695576662911364887141334354531319610403783270973450965228071280969516163882678678118653819265028914863505280384625262941462057277839000954515493588308499028713071989003531115924918858680064839297563612526932377857722078450616932317855552258395925086261350585832629873611579613839050530701856447272793010142017600315717980038989361119467609196917558901707295109209466420032654633543699024707111200897897346563377568888236059297661051513353024771423406068951853654672547740064920213535262118936095682283578131169077841408039729928578884990435473496908717653730270010784881156253732111071906391335422178936212785346762184233769154416042433367504816249780764850556520693703856983683065686874483820836510350954993497369639392124924572994201094869608467950102547806015046539379441653173634055742020916023470149135508144647827688697362077938308619288211974723407476593158254119479324566183921054258486754069635062792629094588683159174642905534642454338147476504075924981452411534812332450402970908172476703788093701886957841614961589951355671837308370116130294705995415274507312269551814991407639679526314049412802100067058466009977131458981040761819694888246779865199547798641851841054547756877971258461516996235754430247967401435389391826177907198405693740175105312089380297682749799520282675991092365525372356678048219495053450410947270752264727907422482511528272335695785219080936184724326243996806853075802284054176229072950405118993505067633144742194847948605974341938765305051694621353331729196249432296851640067027330081004761452366330503085778352144306878391679928553838565175504213001617636246829395534073957047520078194139080942932029683279632763840568284775408003070388362866102751774464193154915278614706129589097684344768410329496748816540705827810081377058718883983697020966026389878617747740389214796739359577800060776974213239139456020882074532790180675438870426538204962724449853333234605591264538759800176941688002544738965470928431415821085419177265573313432500121351590818873134422065855239715812994089528653806490093708138906637857013560486773414990772931295723434826138295184604549275853265950147268581654577049384788406389928092383958557357502864943612851434056740387456094071018062393063613169871356096884436534150504565576330714434913173219026933282433164095563248093706881229147754183501137951668018614017932859000890491212983360559436176278629190201314987776728774435356068735672084290893885348179308615732097229896150426228082484401892657900023540708703492972630062899908642782784433366892315922952101421106674879951184408592207632041680339273754271798878000269063268861077419718480680279365396961002370584742326196828345828761078925965301223479280973094897766316990336625459233434169376161471219604665004812347202658721120784470182562375680788883964889078339964539661236390946477054207478740060885556951489611507400774582324900671841435539393385925939394557812333783947110166715280126457749459145022527260811567467920595391416025704097924006208572058171859524288124613447055409181025894983167404007174330651470071836933416718758676131572109530846192742351842683505624085310603504362875357313715380914052324568840310547889191178096654310894026361596825200261411328883768259699702872424750802441535373408467167330864746809398092327375672157668292305734729490163755272361641853135518214624206192554697137056163781502248488791223336753618518616368317952071401708648409233568805672371119535781204139023647194731677490140368182513637169601569250519880555861176831894785274209597776319607923515296952286406151263514852751597632340685707567218052835247193024795037323573135917846917730217245851148870015551836542235577228687491101788990492325446621078415804670429095412468224421044328082476811955846163423114638763659437696038114113685662017044252342817259464532132223933229441353913330918447020546642124555420167749118598931454406224741538208904205935027942739887607359785817182863289740989968414202688343791590873290833082178882799723423528090814880492533757471470706811867029613964754585735353039454766605261432838291440851585164154032080229325391414517516487347905405320067443535928611185585731807867147887387840313636784275350734829880926642331907106898331231688099762478269854351967498159066181543162466153184956278530303597102087208160782137871038250497648750783950748353810961330633533104148382390641365682860722955863255275034481775204114329544086626086138178226585571269309187590188245289437419750159186422085440647599935433688353248179839536531076874106687904883716814768600910751106610401757286594622396309541182377262893557262102035495041917165977599206358017449201096255403628955906965236602175264204807751622738273484601839474871119170284317910910079490576850804552160891332768092602614013500485170526658261567642306589947670748354378019462275830005465846800749795144277226694292874883559887401306966826063642732670822269467954132069357246423318172422958625757759635041403999782677712484722353215890590148933961238452444185028459936037361923412292189078830822509821181670572531500748400568328661106153555062975924426154967634594295169700501229962850684602328993967062923439402726659466018311606897757181489151744173990065972314600673631324311392119840413853235632405006203302622676752258756450714629818776664389786321716407091740721269605965607911562805109426820502929673658990581822343136675807286418246120263145424020123608865445986205810530923131522518945823160087871818404432649624852583128666820644844605063642049361765386443669315820001099748156206116028108089889924474788690010689109263163289911739217966710314440382921669961431230118751665433872168469123738332289900023784485954451464276781877570270908415190413463719062042023192457840341251686501536106512518628403978493296131807241233678971863361854891043404764677323058963099015975227336095162499981118180928301911542967671330637248013891912148057008440281990445131219952921530429660773269204306045731659377318938184404762625467028325038075642412098183792756479751326154788453697787143053828487345455139527966195771634743816939516230387389973838357609030922744167827440063588189906485985395477766768909056275470244267563951018664380285438784481881497270698816310658212881715527859577695746687750162080131072551729095554567612645724681183864580988775146874146771963259196923995502481315003074706798443041816381577715252604765233307241984530428552968984642419557318190674704302625688543992258748024250823688401196210741779657494691336537305275253048537517422923989741721734893699566524952470118546437602107973213106032892789560810795571302007516712010122382433853263858238379254971071883636162533176671697625019137684900921708616795175193578114941417857984517100687719343491891671704906392802677530185080179257508625067730855386130569520648482086741204722500404280578100842068203351348280887338412494860839094715613899572565004904221607466619449270120948529717271538827491479633146257339172088439658981722147333198780408930980030512122698314643619413184448240328311689226595856995931425343321223261404646200600601628251846289678484097175435419787135206161453761965217299160746099113203277128830748248556844865731608413038268808636421002894972542365913139079892872265854734088040892413620583246023577597687213055346252951081397274932422383153390859260739525931660294337840200752856725832527596742536414237461967910621751420764164716467703333211534432629241721869524268795433583505630717635067829928827955130785954378740103006236578667574923591684805092148168347315987146892033553520165303502436470989282741492635958784321633376045423489336986542589695814411959020235456883950152958728123652093851372261586852653069538782637799126469292305241600724985840512450388823050941432244176204693072143077391640120831152900884889229508193562773631355565811032977317642309716901617582961412689819957514465245359548292907566593162400259537483178285579836569668449457697247597741205806351609739928567979816192842741715760366591505596978764458966005749899295225789226055033423281249769284871229314212583077025874631510667938960222528428282928570895888694256663179528265832256938102837810245498424438262610320106675249974960148973949598127102862743302524738279871153902518562022581315767450271812974933757215968218016398577022726690334934130277601086024263642461013458149464283336474429763482519942014674708641403773716410521499073730989277827163461124787870108826682109004194921900776097627540753897999254996255295758254994202523662376760538750493610354602746055686068259648949254879632415363580008600197470876028707912640933272032610266186661884447711526876127977290309886267278785737013674042176991466402375301130740770526064742014922170984563629728693539615608257491393133181288297839047604767424819001529908608777148595555956634323210226906917801652526541230783154520212764542354732336676391790917297628513387209357949373573024084008490741423732319516125988351497678677075238118821725216227392435297045160435853947371539907527555731843241068987562095472673482768441690434762817120289267070781297022206001733521194789542815222663168011721522199054432505143574653330827362092054926435454952435364920198868705839911475578363989516040981886578057803784768397102769944900989419698090965846473616736406568730492014557377935895787449594950533928635748291073888250946651661300317589149285622892880232377233580081869500286743743547020042952731923604005146707492522999852542128515794756424242754824825400928434562665516412400893769390763527848911843292683753065340061626839879111747720754047667337056045513853321118808255233217289695609975001916910078760861759644538858961884857417471503392060800798828229230864678345468336527780523842858873551976670923569127261276480006692435806427325145233262865769613046839056340951545751768066164176396007091313990137600166525239232917764113137458763531976374347231642577026729583993707898129597996567827427793440728726959545828033838348086089000227445909953637811235076482340063065308588736007693771649292676842298343734180598723652370088580261263876098258412833482953641976293749151141688932814885532260351780824005638049222114922740783903228265515530651073590127381148791808069261589688917597934193288765836607067926071116354656368619695990678196257984209874339097396036430481533615269489521890233822313363050211085950758619309959602196624530346058680053018187772007246146165797138551207802511847077895295862490232795148863146175669569263929200555857766077494691793637482078118454205612191697005929207783215068309613746188371344385060710108618778840265451895404513727162157561090442145686706189688862092032316018732775443275180634509863639034186838728616805899650922528424231733449290018006255098347049076529204119703665803708924572764205993647322759530038243281270338818165598451527522709514459032502931051723106246558154350825660122696206371737804870119442756720211532358666339029863808058801478608569320050278959020851493785015268694549959576491513047954349605960850647429899554456375402026999661157620993658846194506709314476849981314122053675097031369950995758428976011218808701699356501851191586724087327612931452355685126610979186609256019437027012795697712641985342584602685953958131642761208280473471443159970402789774067987747809588608577836207563847689865144469331428707984149663404395703158164037018746116298287342034552889141545179424761059158789793960280419710007515466263439292181514702646095121444202270454313650830735827225739430858035569068106015436029120366457013044522426808247544456742730774005100029565754715595202294143860007066203396951206322785401932420948021567635959408997148181960730948739136181104197829932064690380557989279502569903050977666248555791443320459068353692092076652586316346308558545971799710768095390118126437973826296225410976978289124411177071962575547477139574111718737170612354084959534721376653549435623686968655765922859028021648967754585890404808831503278899875555762149623446665288986408483922273876480804930357231373289679646132635939926852647165694862876279377081728443443730100308042453277759158590400993468225711821847744629902394257299577431814568628859914809922707334984834333489862622988695903766048705571468675648729147472500963582475634044126101515478057450447746631352762969623802933805815730285090360011708075585494590426517599760515052199913502011739569073829009285078680791343769921828473209467713605252061986753469252423439135900516022894206565025363160254545007023034032757712475818587875050059746269421835904366413200625480445815430422026541981590785454411789856424915081358208115513304005607065359739979880821070317142855796094688311577272848588200858892857064731482930388645386640178641043381670634060362523731445804060935730165130603571914114295801303654544413150564571427231995637802383389316623012299782291572918724784212322162186224920925930059015097226920808545891859428483092727561546094250481402834944255913238244637657799148587868705717826027077018671148687859607539115282893511988783386985843102335237178271676245276832666963671236432162676282815368098605712673560820955308543300087630651819499746648433865360169716810982254904784362553560956115874745879304579376498947538402304015328082696971924925810293379339383000929324313486441827973082055928030407458755192231585042577727650137550944189496927058665174444987371138111556676567490187865582874926494080557876970524394348490606321946936213536606689984509685410909268379087670329663965274774569443926988211089585706999097342142207565477335139736240160625608367370150039102894891086080530405930095714344276983412396374715784353601362215107108237092078371521931178057137612226842290798928512059166882551671708645085512487489907565478299636895322674384187775657841302624134726622447216645394636117464622195942292971176407790422076807894614674406339986139107695946555357910703109714638157966943061244287051821782080196911048827866509657420246365542103530314314818694595634129806229776464188272681273393937421917325841244415499676538524149567713105683446990683107489897018694075321743790458759462565376968897238344844495429785508017831162250285865819107428936529917711546686486921761244550739842799080795274219823126464921520184141904254427356114976030185357638706324536895094471647970467152108162304931157835754073353897615946752245755620417760760864924402552978193209245840724596211887651250706386759055113680393440996531596187641908081107932089071794906368154594651769135479213589854895671412435805934008179838759430124018449282718860069290563003604776874057245098227569259433147523010688250898002973392319960719993393890776029840832509067440663821213404306195275689534304958063841520387673776025287441525432941450538365947759523164995659030139490892704181436421460161048548704280721752174079673469399548593848762885175619810550341028080973247837171595843608718251705060438669562207957070561341413249732776971630852062774883930366388164947307928537882360349757316945537473921865812023747767480899013900281979250534340404324334424620870769237489387610490804781602538181495180575782643123686878642782088667287657051430194337187836923799900179743402252778073591122966886259503871341946963816733796442285232786450601972480486056054673464487440892262252115932723165490256897683662720275936949084088274880232146477071403310893556405783870957008798177074050737053882963377145608648804131249347972828752807416131238860891196101155285958420747422752793256106447242457812938824197827954506941706022239923335799551872881773577056757784049695133036832980981469301915656426909403128576569963526871343365685058423972650321362664292114183099306367640018642329029361640866808440344985574058535010775713963787495386089373746667084783848745714018044755271974936833684098627685453097486141887986328663388996074482150105908830523939450069956635741485992016838925372998639917617484970199178160200165682429881920859924221158840367651068167035301533701601223402691383037820886438071806306690316422286394739076172206140231389950417528151657496235751494184238693951532789434050468486055262263244627705278876811691071393360979164524475125705440666613022356875833018821428712336338868386288848094614102923097337135451626716722522022101816268125037387430271949735978449226895067467433107161076975419617226167917021781044502069854845467172060537461947361553636210693639992914799717969285144939736073698084003313322355201587990133519569025972929924268024417945140089212004235548930206698063909170931424025131564332878882998706687771000204969663970552163192849450817013690400792202713403012664813984528880174113501004041462712119001167443064649261195390670081788459518476214866495389806254435158477684860757026747583772821076073171116697887508223458323878593239629793584151926914677741437875980064132398998696715707430248779301496684339474816173022264621406612159637381493288672540268269565642018988662222396765568959458433832838362204763309521297706772913861967112113811127871981867120394087309921293736893792269445310487965065434338925016214480332262494953368086449756197225535918907324471328027462974663493613611828601812045113056449124457063655215096511356614265014881546252494839221833625341786450572182748524609623622668435336084551818738093442312875607222698590032954995063433485876225334715659589748952831663967437209024897058477544867658328504586574212115064926626411437171940267395511934947361344257152764917508869894206817974148862417574431630632457780531102120670522253950771633870942564093820914528022188340325369650256930588371654678811458418668363014259311065428756013690656792986231608302526207114931325288831358572215794747819694126836240989441429356650017115171724630693883804131206985335539052597674981552048321915762257610189842769534783829536994731186313871638370831999601025507204733492511990040683492627133461217618834888997547652892889968880432665628867109297983688402165423959833871590430320968862319584298514321094414559258778366047373263764063473748200704178071070659043321450213932551872531264841170647340576236894468505328672824379610363952994482526471328338550780822697624239335127413329420076170347739713424276340365004820429920600421902145806971985401348049691319773277975337167555410700227096776578593769050372297034544912342955325114068273249258521940005361226379948230435587482396214238233854899451138465516684738144531245741416781177539078328606260052362494813667777484664781700114841189030344894511063287326695363970576352726106590285802504926490909907914570809307296256366312753069698877590219293302144470368882726952519167745370872520885949795934812681116283132607784720770826816999189232132734141988991415077408562526799137236570264614482974228973377352555767206916335275265868811639068391973655443966163898336250864148509769434063522444226129259952108780225499258859546585868325581196567937819133957444768954109570022622707330142090515696552366607528086111660496769283473010398838661166453231835664080918806403343582700752557430803949442256641696047320177935334148394532576035168937170221084146878948895310700962855464367752469279928132409421112986438323462299159997178863981229588378163707534432061732017937468531436711116306400679091088899010688656211257065793277672783564044124815915304790741126558632755100748970593397943648187929911505344389401849937924830211533248839245022421598511434455973242905160221530583403495745952422495433397589627725150676900939150417896359845437590641696389757543453022846568970616301398906742136130679061306611685214618882367428770857732959318671080741673683191699011833444368390812804558428957439544452485990538273523113469778035854719640596812233984614358211557207641625826686923599251385275905358698023473630741643094901989386933372954629960958235775194010665075541449084600496242968346374901625485867815640640482515941523103792568034319342679902742124934325609948589554681218738518653223131518078026274267702646619980540579046349799250585851215464096401377827798930023804897475392989823857889467929771836318929410729017416165849837500368285148833207489813852257514568657936873374803150722279793417268136184224645554732809104489620241514839420682143856983839400645968928768383609329434461430179853206488206278130206738979360104746633979848776554263655000457034425911485635465791971128932247648485381324549574092918849439721731510593680450935383779424232354798238821831333190038359142767306500380971804671705835304850835998612385905607664839392871929741160373003230609467142972374598615421455309742024763811020616389305425805867167232404053306927990042527070157141426639379847915344122498715852317184960926599618712101934639470047927897767843988838943519608689193436172470827799844883564598096693574325790193640717357573075097279137435041572092748376702415597135394092277950297887905587571067415731005524178265912873424207673514821671765533329089994997496394834831219151848007105405369240930405221761909057053023099516717389093204121392623477310328865510063799673657887705347268013698739427481180755311838083728294570878514417134770009925861615301273491380479195798253183266254159609621785707193826394993293966403899531808591744049588129923516554289494340528012209813889184527626435954935758542722800790028390808742722989662470021874380308541863279873538203660905258263923526593414495644683181117242709123053518472732070062812570301784928008635660870464079126490958646062904749628548392773173129223135183208215989417671103989889764462123271266514720560564798478195400682445549202613783877352655242295258051173676010737677790304100223367417061331019619787925538151287279931050329217045204026510971450402581479064325117571748859714220949344962646332769937316253763231428755179196195794745171388013787386578385960028391089671827974890724436511102310471572227689427589195122175097075844046362743368825805541319794825422429809774760235631301133700577650938365282689181344190177499135589155807703300271791682872900504056866712524125056245138713093481325680164231463810105861553589180072808012675549519932442793616937599409844814892122548087847069154923509929064741640397257462326971787354887490641536645894740554883521600402102422392468153511866925874888890997670369253174062468141594924762263197643343276124252719987056277858574372079593543790333049142381979138750941405454607243355817209008465220313877929539483112756223759450078978228796732018676077581899409772315833295062144255553325665011651707293999168821307632016495389319613319760795666035928650121429643623835454075600337824928750529898215472416291503351203933106498331967460196351733613954235028999171875019575828136981579917646757635030524768470644062647136102408051095440629158568015234243621542668117358047471914474755828358167105744703001970294827574672932720585655693958113650063220342382293712524986397963253072467405478224300723545862125574306481918429758592712948052647721231292107220325399985499458066262896040500393678651177313975734261560551521258695964692307045534315996995406603304749941035751774096541394087295484289570469470911974253493774190374022116534389328776639997769971127417288957650142121768928902208483400643010705120104812659247054593156145474549024746826560680595554089211413152039296134848380509898416739913847628443409059533033123432017247921409372268829111723387865768915021003657462435201804429924512585504720858151386728748024876608994241345076058069675441544796507241266272375997378328593322523708911909050922221061162546747243876229625202493463067916279042117374209137827136096700986093558862712587399076969526362500194083247166054760725350314569393335890648538383874064463430013121575809439092234541884491740280938246477280508760514883108206283318509150137965229271557463539179557193976670115028066243949160665238043825508334826285803112763981813051417920714892523742041539588465550939966215580597418326168219555632060027089930791748330864861683642397466181116075693775183527960986313008508855148555113877305592264271225407282593452277137115841671920010084290928387903870681473597326061340548170576092398936787939158281995914234987608381570410479228954425507460217480020120237103464909642597981125550172651855937139023939846077908601428495932598200433489061002037334404515215195802673077854935230540811891504354880016747554528909874658216556503477272689613785237299969959660665287612918704493276755028010383152170061882147696106949682613495170215063548443416654482062951054485083105407947202684078899061191603744418137891463321677549884999351832700968507744904117902165361607722842715507415513340725540915161318259238722043641652692363445302958712807037269767801431375686679528095061425599209290294331882943560041602848096469219151287318052766037214433391822790394696190038448378244729267805475025070833147282691185285791803513219260703753854707722162502293759557816017591121543550463631436861635425305737398782527182829495572279145631325820809665651595148242565289103057439968357222093517584798812851230344525709771660152468665857799391304948554796199139865159303658068735800316313849797528030157224982429096691675615449551788365632274358355310900121190136812141306626393176386191638284571020803418800277737744954550489048780600243842085612048831566005518484594353283739412265405852680764065275584126487388713519453655846034817736730136692284899458445147935098994115328816419631966744786504525474833735418427711486831562133755368639117785484476212225949602701920988572644263188350790596054098811752948458335811794030984383829756558252600111345778493337639105615426402917750842610007544025152625771003197210149544346814134069698528501404736279518530554390808143539373337436369124416476633227175309281956483697293367135108116551572025367522044639295633612206272651406655753028471280571647835194557333028974493938083970495246455681735855746193010621937260343090134652641689866682698762823030867339947701066842660034650445783770545639793042757006668659248598307209538612012509721199297346507491225894168508441696091729980439789452870190156098127016805068733117796745140543179668196517289935929110752061475015044390706653926206346111783477712608467859707155680667700131924225069592844869319737751837059877833837323168820736523523485623122731877152727097189112792441294376981382233393114088675947021614089104748786882266021499374926637742936841717956509944978483214242675382215510960205028395573001893271328052868275118877508335235038159884130063170987439470034284848235662757735404139469324289634904378024203735267105701428797821856988826824220844660170289125895805263190887027755102460897148353307213815042744774697866533897877890859358215977353634701063903544634245754546651911851833724625055483973048707819385661115298049752213512136655211060448907727511303902884481096491442625291043371390117778440254623057054166145119007380638959056784185993089775397962100366484561122757818130157129297160317539771352849343062134084669966182215113269907468431547165471001083636618369497374720742106143895225772105352322915302412788702428228853058987530315396999337549447051082364046537714645047281290013946882631637915604405504328587861832990238360480403445654892853323775848948822491300608869236733008574092560601209987295913935162782987016464118130697886651566944226722733547996485667285605280657886470913271475657408166147900587295257539719717055439988639249036257399704595955082891733723217642148760829714059610043675188018366626116775280326934990712813287653707671949139340810885512223877796905492109856769825997010263170617812487572652361500192259498641493324014857206102146881200516910033351042902741942802541401036462482433549727149733150337472483404478400329566748342422772324243519708883064521190938388790741815025953882088557022989606665884353274210673790007791546220347092975047492474761757553775308189859195072960217946193431082358998645288264524368890287922239074182373383552395910435285795923027950293976814003732950770832648373701738768836609968527373441621329944107310490674591193612905733599766486985506499785463360356072445416946131497957400957573497610062268245938063843607732261104250010769044612186901559528919850689214667563628638139625120093959462543370487646378990587552880846812962178725711933411339513924130443103954049097056912272536789511838277435966652158504654637401552133915382912817497627257910222987150830733116117687817507223815198633924865048816061309614608856575892705845798864602081342319025481585205794503425686998901101888432707665641348063913482553279668319465975415148683983885344249079849486028997537533632791136953756847201429056103503394037381155477399414118404530340379451412554136753055506678647294654513620754882833718759389755202867325907205505686111655827567997879706826216085558799763892320444279378698171510814840978904945890578485197593096128097021354443497810225023486529064364767720365641056233391742025847013065447164672009774301504913734692391498772958641252611971060534973707515353851569784310807612076294075742097075838541835812451100298731164157285096896026714426753896349235733488251992420880978315118524193908806007470773784197163954541397178322876045006181853482421257955786272404371604268872906805682346345794225009157030363440662375515342456659033188519984140792530777135826911021162624584021817302715343091479572344928709932099031718735186220870131257770796460055606958428772263106793277287831912054748076295543685157893108442842004692399267397375528423735541384652074280794911187202268404230463672268682732278689040470607672539812071656484057598143593987126033430990571273976134562466169475037967954006965396212165764178950160124474417704044881740002351179914266765449168201837158896533413516632471770180660767362542897203476078183852920406840406640520494466648862922026392620301841674809581688587633242187877706873643531837800376680452609160299395487325553628193979747993817518687152088503286215539530276904412746341844196039941570529835607919549537724923330807494257913646505142625281254521242838745408843064974758291827302254269752723157697859757023966705715655724897301641937300767098947852923597683316785520871723355835146958699993261692798383535055164247456751864060533046789687812328773718214998105469612791616097771553314821748084050187277255923944836441295074982010443974324281016354275829593904831867388944062536721572392339264282892983579158290678837975203231034745425370570010442988830307357202169808818589962541492342594475725178936937174680409558862736639717324267823955869724530113966202109094600317327622010404374864589980354917348410558888635407139869614045489885044899737217595738485312240192528126442042835812528643245618837680511069378554423776038717822301012084674639655184608121103587073811628777236257426177749190236625295593149578246830879349417918227996276631048634720031445283404676638444156449623987357187448155841520326875244237997825701102132201644715382279207533230787160467837284365204441312764488786080437995816459509518772579665352089694925093890084298108259511728046423216595178842556887341278692330040994372775490981767546173504816999155726855319960282536168544529585649682645699764054556076601289518900906279438504365069258591881859101700469240347481506891558995685200597462399376387920068091959941487239501175862940986444687124181654285345660647567914989088523329895683930063010516495832669801165769844527991963108514535795125039725228220761306835296552857992172950702409358913351530302234617149797353578626040756300846585616979147136219636345461783450146433483923653478021462254754114237796595307056485337727568003989175663168667714645019826270715041162947954059100643526517652527374138220069753677326893628738897918964701452971091870245859094026942052985569742676433782720539229914479398997592886331915827368688085347876094224409595783179547136953180856466975660934317286385785347336665055540614267672931054445154364286147623787328339891993017592837587927512781880410751955455375478396448801379735040389404389834026561878325225121529847028112714524615841287500974175854587017307441653470763588655576247048352283731110487972079669239614414841455542830334480993480504956881779361032955568162117943434992408181139418334891860251729313204639539432157780498585125430220523253581748951043499619743834145879179602252243544835770518637660314492718519246603619568917550856215858874380558879570339370347201384418464571406699364623482944528841862664180885673196002434843658566223114454574633710140606546713503418512008686594915176237261355725514294460863055125718830258687072244580621268839838457280672461565704083032431601597463351805495531028128084659381026342879599366387350435422429846930298700918442808853517682684585719238206408009933297509839902589243990378572654061004162888398484580744678254015267429900909405356562331690619489773445389291643395008401619481233594369365922626874329425878221892445847127734975871832995749910319079300504647430811174589232110741802770632207885157281474008433052028915646616769978655409043400790946424332263900870552067425202155329751516695306253378435850686196599138037328421744192889964131512854616905243816823212478480508945888376341196963810658416029395970201102082232748695038991371653613088959266181844706192941505049170038480363824867825860417013148037639800358754599405079912878478200058654746531522158644175298146666763412898153251181016961968403387607361039927201471262686384177770029050170529859176539846709142125923848896058651409848012954603662429677779444594530086720481571215033351201342922891493595763118517973955560040503913044267885376329445474171948692162059683506163676630453888558425234917978680008854431461558786029021890212414235385982426025187216344966678990291949485992010623754769735117456046968078335110271086810056314319701142948943368659123162669379785694337884671405854993767149292411358546765115909223219720930857485377315175418619826261629645229896581485388280073564594512389280842958141058714929624341549121379256931292292443545584863140818680683532521301507680864376492264582534192743877218302614614476679922954486160592616222774160973820209816121082598802389974786750669492769728464168199718622572111650767614454613341135330321855801884787223728852184461482693190003878304521364558040140790511582287915120560254372060345928661461167754577342342755335218103555163639452912045610743802816209486832135996847154705544966883194073136602395075303768213520603288835357863238756495492136543324495686934942268105365900431295647429605584149925660894459097384863703281042053436422062891833033062455550649973398297346894754397204522221390101638820632997449218327804948919833106202301787755064131010770125454284321064331971473815160009477690900724672590328380501809024592382422796232744169875643896595776764800216434301559551486452020903291021397695067394338870939895592034752221756248747330705930523852973230277006340803259624194899617501614866421250247247784243200814622191903617157135834920644758133854011714622834257871072010742777768723251971044730576259787355916177907975813978792142986883718436103202762470807477137471765081013199541598433497529364240403244427386830944495536178682973866986009461120767207675747648839125389362500652287545479843381910100614769630421787888998167087556456240409463708405238254323362856613766914246962374309716824051324970863857362440137993221351763311792746374953363420718141238325859906505135940733262138671698298836448695596612427550698760245975366555870561401010146890537977457206247890884190313121104133736622110009073766807888997542946334560260373575870726419541162027436396550987399230558346911567831975926494790768015292473500475243029739261327330703181408213904083756327895771947688970688667042005595713659930048917330707804331338719719273709579677119631676937993517836237467809508340194397241068438930673408939212087570377164029266089641481910842378947101462763163719242237533365232072548475688315336101771482465808698154831977408751754714128866640202069336367393276508813522452830330255495760375933602297204346040574799407217651855898339928657882579131749831943484990442002150972734550501634902127043795332861879237662788526124253628007714537399216150376102777417095118310227351711459432011720595971568210006311341644721371923911476399712461447897901028988176929283472482237919210813095450783552902610031816464114902455195979716398912200735182968480059616459686035936298254379109685522766030473047787416233962529494188754426961807690253476668495189650344346065795030283983799156074741280144074586767478608784280089861411932520788757485209684191593654988570036965051742862934467359541118666943456534208434251953897523079876732184290564662275052024494760269468697802824142384548763229933768315336710145648170002293107691540367623581118151767364957969607321111012279305530918521766790933425592879639655366725761186911473974827251326546260680211358495543838341362965978641885667095696223897811487787292687629345212581142664974740646739930147062145684239674349443311864526588559683504663986925428894279594982329925547625746754157687800754289849087648977593427811976014966565431227510663137910366440250742222840466480199684519569571213101774038030785844752627807508126667882824347406814703386959760856920891706940479082391267448250385383005618394291152534247663859794622048391862515934705239118103333070004957345872719509451461693165895769706730076758785595325838075457576824681131040644583621430260726902217497935651427134501334592622563753353984548424432191975584879351405628209485309463386523316437963710715193172312691813542523482707252442303244392546572042382793402216548517360865388638085353426742855697692357303347218656679217335180132752978640197756049447210994069831646792686065798294001087942017248669786424847242383548154507562337235651454534684662515580407189198839669445828626059872293613054412508519255694980317102212371694240306832152457429691329062648060280593232756918639768209925231670815875228441639800342146230649134115357614341195483956011610445681371999957313972814570731951011121867384097537037332478777372749261809908318884546942632788977499618461811571858145105755805832556683579466535414809262247964511504531371874754560459398257763494816420670994690920576296810879801742012269472428191857609567622142902225350346879102636962397038759167572693125696676953241699044855879508939164093355377218912504941668613026686541780336024234701272074260119428048996074635458099987696855408772889652972785372136545764140618905978164925963907603319328062857256141956726166467660645609816315563824854612985341900998027855953762018004906643825767198209024904906488388262680151149852790004417489215652545499572190183052109286582265464970775085534095177138699412813871071156957250166530358432336247483261208438617265986876588382794844248847778197507885971988349378348302227156937421305301450987686990161584658029546032845448430984221715971462853080289923303696252724978764867586488130821106595583834064346458421201216624390806184416993512590868241543831401294435692390807175690700675014684949537870422858433572612484402549592347052216851968153462606954615776833082776382360210063534272114515114369601745924267900253310604929398253297682881417919500020306441265856255001589843595122709320118695751957100832137680662041919892290728136871435620104783471361190093368202097719286952400221612994751626423797218474143557615500861053507393870450530193669708364570507297092821051986754489341154373830828100373807111013483029705825557064468396255284131274683732843457480333330742632675294946906956670108137697713513252685347667284744170174058711617667627386899387897604696324804208349297037399278678791776833385121399828563489078960011746500742316688933551264614466187444898643421726793878304622178469616004166368808964899881608615757954834415833340856381313723018618937272952758956842708576797364164724937294334297930229590803120377948032422591866527834724426279658366448557448746322884640113465623984112776322932773004516446595210808785386651276325069824574998208065409352554865963695876156114464422503386523642030368654518378999717276749646495475180574537622814155023328717729315444944551360755200047850921530342613340214510911133484646859900265183251447438962787214079871011659905932156199069850500591850666278165603798905536024432375094954199819688127506307102877502123638653550910741634354922224513039754208426288623502899218840651703352727676732925860235202729089120196618876177231465627336863259737921740614291649974407261948004100603085489613160578717716496016444764689432856698765189443228981723752879110953588007134459931430825114964526475806750854624813449475445391800597408978260935666772783576838524460032987244799266834007829678720591810290735892844763075469123354560789652680148591032261480791757145298241410556323554512297315888164526553082624553207870371113600238160153756462402608372871264194755396137149147991326616823065536815957097550243751149159368148929661993439640337194565681935942263942672437246651654395912247852280164441038938636293600664230474370701292812582662614486103155694473417616615405136393783398467193005222889617218257066776491888840081252388930913569138557703861546621187867174903483430594368422625434658159241672165081681746286115543627342965375638433019164483952882858158754599892878982554872622669643064926123375733596192255384843797772186131822085995955337418717330112869645908913744735535469843486421832574974091802550705440113467868783822276074590446177138328332099201647066642818528205591727824161228535699522350748425716532506086851494931281958525897370669365218845125857175963342229169478558873175085070050441376214425437134181568077440706408214490068559806866011396178946815011831633706193213263835373913896599699443005966454060960700310725575611236584540777624667146298251279623672742465674025038031029223384683953186892735071727306778038096833512731456032754695920334477055700784624083650760850256800316207795382811037746106880063155223692367881922249474142011985454247073486060529448114276556836421003480864142202129480876990724845107263320151667003250799882585585055616630043392586629567594626558748149495853351771914598005008710785190402994645890067455461033694495222503471881323061331231548323471442079817102076848823186923129499781661738412709289643322700924040117981167146515249316418043081501184098550816747954412686403417944036632646858135721781471627473784820939753476474581097393784874579214585423517650667510659689994365532753133616632412745034252981380509146568285236516540249613558239300075940234837236736550510537930552193684905650604445408705898277523378904933897517447889763071480396507510593867984616002552184169269087450341302491954865926018383502085077259154448548336426654940878339629218795317207691366274399172045283754991613189748356001706689770383597474233516313910917680580288075300247601447622891862061388464471555247975474426682573569266357725104297193525510911742304933570079110700399416088305643982529348264072103398205139978748703163937113107108647205402772810467703468129704049293437140276533837115478503190632258650953131985531515157187947122362583764533373946719822779358232617054215764565743396669181827593094933028414485253968524926115044553077820897245546643114374085922815869338852805578097986084340698378347204751477642452874093573392282494345723724716748711142612437088553409340468347667536941364827089086711874428392833837829988772423748288207658026065196110128553078827984909680994260201973317752912315558328330852120213614051914822317967470752182525197134223406223908868992104056867907126501541858555108491705639438485243174344447636298362725354415677373229790541014415172344426596723098900010414439982431695488490687329804750517395192158236434723543925233856023853368654323252302450022560571483084803999141072596135428604099321306580025556880637681454482970167726362189115766292545808614085312607650570512219341932026335872274674067742164653298254448627464638479901647866534966703233465206495318648449427620906913068645196314517630320239360951705014702300591393297603687385251206606546179826249156239728717072206398617225272755550410014309667601157259810218352006863009276024808299198992046716503342118550748347778001456942281350419748379382458669993697240595261719707923683450175579914665716319826047841712298855868583568626837209283216161957778141427903292977461165179476873110924384783541926725715667180838400569815339995046687492373182015501280696939099674174385823164605448177755405950568175977621055454958472545478849422645721542225885057460937580505761418406486661044611739352619381963698873710977121915879501198400232986772772452710825474650415712683683019831092577702427115201038840466702634039394480115800508116340110366532167038296028708542892236241491626863365087913882756275811060407758830089517398758685142272067413874172100258671240219993559302817972665063871014228238311922308298851496372034807625173305425518864747563162773750396092958380301111758002343143787431508148721640927777766471619477873190296276596146803775231831054225813195065238212057384364821190372848782096059973921809899216986111077556964752414398043864924584576828318307354634210311484945790832172558203130947710372217763759901469933054621407580628480171848991579895423178979501792082227470987162079998676508372856114280277544356048128100211222315940677149909037591531175698563807312002179828269515981254184250741071413125363780030201737508253239584837812207168369551201126720739255465241231015066106354195946403616651324380255040641778564367046898257461773276663352217983422941309605734305913444747977324559717357434166127962638002554800336616750331007524628647463066755789092040970942618812430025872822636574816193720258246496354167402042179119217066190389352727582847942409372466081478351451238017846114850311780033003267214396641248850274404705521049014253279284374026780191873261581346614723845252861470964720447638584134977233286177628352158897091812643671476232922405039097184755914148749394663497742036012462531281261661793217575062564006946852406932234451957710076062866669988738241503808137363944237157958640122353487359386913908570228436808501557592781100341868917910269811452085262490530089246087915035204088048295004816812262131815210333520769192518073295729396146525008400483898917186874484426257876072183861633823476168411663247329820471718957575751855298133735206196349171222581295944731245523946136326287853995576498633768417237510606277505856844500995104850003982151316893071328237988594062049942411024569080504731732474545937839650101505191828546652314512650991471260621640439056650349849254771932487113909282190198224985648328981161421591590707986557416175156601282386333632924734378141932975176597443902037039788992925124894618066368610977797129481423589102075067036800477987074780220401337665591153438380118324634677097348156931109533710144753842715261448275980510782377774514772365235537332807248400140291815785001144782183492407030651868022353279334952699613431083133164629700139358883769626249216661447095860434675040293662578543099664181983503978701275429004654218712985308463115857000816481968856540694505984759932685399152519151205906724556683523514166368993824504353251023367073865779866685152544797492776169001681255010970576369625017280635396575789234837917408889446612536455340130909895742898415187668921837407186712910954709294530978149562034879171769382163137423605490049568512551708114156981326455786352605807083161064988212014217798766556172618127924555741921511809153801430313620884699578052124043604139994506244411397250620964628280732674157930324553941029637294167741373445786567643447383298916967908311054473356250964855988876490037715819415576091772739173933380034004691710463636761751595233145627297595780289604122750244750457086379615218805141766153766968453745471686320298869809116844073862843537995056577347820298196035895889097164594230396783132696445215337521224695500393816964980274027181181190976491634768233649990808765132860190345428673062710565691578641076683078829931868499048898995030601719235880598265501001426161478650715803327938075788750224692338389951877491625262206799624630865876054742052328730673167131420572943083715677083260517490285334489143052743218984198102866519124645601515175855996429577532013056448209362746102169145693532583459756141813076838685538425032616706314313989056524675422647067521629059181666359417115550381493906920061730219068650817534056980628021237035345353755118054152678923371754496187454126532543546493384234782279636512750697438184016313055804930072213908028561475727176339169902528152799310079173198566566115724013178753429743669464633602959066355614945951278425057784197716541025378599237647183777377945461559075817942801565401667105338131730492793240652804456784354795972364770903805455401731792439000932887945584037129069552587528948951558590864068924899874964824099755669276029330357194549459253084867741587935406120377174160821734924347663441251660043913449725870274591239613565327023410451041115843172550033082882845689488382790642686895627779514900014687832441343860814104316260490884359375529589033781009265413886283181123140811428811709625733861408834342565043516511507605828711738463458532150518912869503619864333214692440866111810306075261925666005471524955792028201415598822298922783645546244239428539610306181796563498978112572568684368125482265552561356487206609520303998752864513375209173086633655720017455266843006566322841354203409397757476518596954880968770758138203622169493292104241627651345663366375574249885245267434029875839275715647770331216667058198118681859917324015370248419396179397163277675243753786247435219328937504649620996322059737842218192794473641664091358242190137292873316926362932235395364128511254931224790578873320492256426292215941330392203178562422571169636349345957342062238755879129333550084133426092647296316121626179763788023432236028182526674353781857304353718573029168588998207453657889536860045822833300650605223126372667418434848728201580091885765358204164311691322017715943532517630336162215130916593467196196822248200075132349401328355972312613371513382318018021153682394935295232316729651335382925013620905777860869141228936025862163922790185268978030592212841571794438003688996240266254806846972605703759821981406413233267689977294198613227271405054262901669251867002229929424512005664613222939096422269222437288100362543398151563752428697388743721315774582791831199624261671671207104174682416195052795727297760322929001617538964626192582540318668716538385842599819356581334963908715400863070304558345708391793664253781935360573982512393762260440319787805959960093435431915749503122264122396844627555502093286268932360919964568973568399484516169717695295570312884750509678552372405654934991688736679530402466454837825553200623835753447925491722652099908685027431107491225615403805184856620495475936227095445462742369387444963030811087177820979771359483405036114875131952350424203844262943360028625543999492217796617808925777631242994194948080425330863600190461131727917507607654122332628389956498644958216419253691421124722264992652927604240526622073716713070672083237451951191753680948903521983057681427748074176246442292509807608607572932056445217393529543174746939018876940355783435351466427658062209278858714700809585463489153876070818578181199250923468149142925134303594129046050300257328080585291475016386475042626274283674213326336564407265755036440786917861020761799689994558888940462981648368354089592177634049467328827578225425242976158507513527542346112945771333750422328188826224752029060966733631165094834737499950269451069548443279779580298527240470950050873352925193416815088408271206315565796692403116500124420760120851245087796044395838505021796992212462582685887309725948411955903244004732364269207864796666624127074028266922219331948733415173306974589619475455726498571157044355638697560224472343229761201702450831332162984503629797817189936709661688511105626050241962803917619769323062892626808470564461809665296673329855134196715575931775759452090283479750082647844451729988409449512963811464717951794903677600525576078627061522612347257054724442593308694123808529125599840080631841389449764612322665841918322443787445346364356213937233676524962247147207019236234952518383623737962786218024579231236234728466609937006267567906848871393661971076102193724061570315671598825670580188620407027418391091664140745505191330942650221448007416719622346482168904346130469412790934624171124882073707942369040465691620980769943701844986134724609693925197221236199231267518254365820912516822961408021768394563795979151974258021332828086266972744283318936984197294810791759448770549323196834885922886982140732169110016526896948979128674866124554713518075245084426547614307550534968743376975005097662819922209271919920100055487864820091557521945160039952514354760256975456420552681459962978997805219239721970338778087164954706917302434838574395729524795370434426545137957497035659142356002931713095850184092522116743223476775053061015203540707410827617302664266689228238761974253576468234489683714938747966373570537869027823680258264084798317046215358610701010980092457664682380296350560893839687966885163638138141819807496903361065414397823024075467411076483963096972035725750380838951808603652377212364176603504554374182305465713747230519145973926778745694648329890304456710781831138895383133751798363845068120477554578653763034916080234094622901225141401832965189217968551702416859215645500100269977312842953902381711920775815714858486750555739196479148168771612412165129226199750115684914101964660932819565043320011026378545751472284069579612103293820131286973460261659516026353748139415398235546388768801724711817545403261047182447228587279180026166848787952326550266755963648892643004950200962092296464526686232950433231838770618794495779665013441098062256608952312273270891680287331894668626345305999504641832428711374475940404370748846208179694664916390457224814616585072424056680037717303685067705585017377232876717126548387504154506611500033251124881884315564467647144999823879487089313338081445425889395421647447204564411052160358306910141371602433636967780457628102792306157951719098827382713012153490793932399062738941771985245097114657126924097718620765071748164633901071688475127834877091998824378669063569617925117740427321283192449001516115062877103410890651466418616372247031993970235405753040290676336436720249244783640381880194406698401041587857599794414014670253156697836693755539933336422514061805222662620387169408987325676744752894207170733600757654055668749891952290371821656469634684569336472397577931961411177337326513245532372177907518426897935649667208243680210828433841738280431306285935487326889735759983139007315147229999666435800483972862579650511068731288833474819091641394192542816652122614446711940585827877910989069973832040697455227951937992386721370001992827516713415134443199956932101131558288706080403600480697400091005246332125026152138754119526517425588232982132478161116161829037951592502953895550633297110825545705171816464038402341773463741633379799587071800125502557523374626004353736588290809013099374136713986624883072131387360183001823144229749940942270243687662433744298728682308684129772106851427278857699251977396877542770669550979971587449134723918778453832111755631859691839309548212212722995770567992948983906117004062795007633724233146884024604544268299949058409895791538668669739367557183589145435878998457181189738376116776406649120953807520055312288009137737972934383591294672734259653271137486748325894156477184639925329035798411683808321757690961340211908137024422749062569278953775369428628665965886268140897594280190306357216305519967607955374844877237567575386782116001818516049394227879086356575654823385625821650284160183502273214529269100425068022994900998120127839640552140856613284618147922157588728861533596625488740405682690437415463665869261394644953395268436667771743286298877133928113336385795390442333608648501897272362052303699836760612606814811536267780957556218162564055153675437850682964656292925167800207396443468537720597954016372266265367389905359266074869433369202837215994525890069335922885936287213640828704800800463398897663249431152655986864349929755931975346514254048256531540721518272850716023424578937299200011385893557160230466189856330162266316099562767507127260422789056306979184311130993043283464957938640805687381294580206613070110510708687900374373091756911535495277961725600315292820555681800417860519663669856997882020809848512621204769672400396850421728248932964483023904280097436688290096825870388837381356784859635625660079986872390570547489694979129823525008105562426519171794637948329363893950390531158079925211467474724161584790754135923648777135750703501826585378249330942878965348390823965857992572672344445317013571824577263491686137550499550621579583023499875194385788915500259802331393893817766749061625557977655058341740419967061006653810422800026892559078859838527417321499349915985430651277344162540610796186379107205364433704542116257245191378617747940130669556322363933257539900101054548084539247922609605629619288849402888597746492718867525907127872406774122296214303400623380746334655085688066478851004370497505414110519570648137209798769374937531551110511711476554522929043792822330329836495250543282467542362834067454660092734169791877825006183949791613063452647429119836795136814153966833005030204406155787864532261504679333352798219052289997643952109452729539320322123423098715129341880315659717164132322488916139015183067972887335327429620504947915940231328534046066633161830156316144615348630453168168070208952084985023127672210291096074743272124625790368694337447540478285328426654614778475617984783135369737992735925438512823349612777803602795742266358064429903800281816479034909079549849307157476955866900311519055257100559845597470196499700793802228662880935873874494144937932110762389813977080254777186144829008292242139237942442010070019096774754602227122822142457941181089217595950566021130466577855206560321600086268968291068000174177281766510513756379046286792053992567700478008727179979460082963998869431250034585213654430008647485418612244041642205109758512302665383160128222184856655195044979411455212584094713187334904966033065399393220870838461075733188223155627942394144921973797322279939277974628425750204824178065874292784585018307539249640651985533543314564146247688016045516840242930350343182187663616196845282583258340812474519867724035084235383094386919034746949894798626165418659127316515148459026394838329991058229862784109637598912737216128923610216358198637394468234729863767292667793048942237660862945373286392361897244204301628027825799786801971859388662688894140508750110927782107244612251436999660557151567238050575397960181050881483917842412612114955435722271652796922380847484213488943891054241228815712997664641290694005204077307340133907913934215175322036374909604748029598535974688392573432803235944800844928222630289602861603960096550202227657555778720780961468722023859398288777385252941306655334996898209935162240666485885503982456186579870899451844856214330762928727475391945681119398195570202600487462196355615893125367451963598004052879777313889800062888816833190755820353229037391022034768122938481752241953747742237859919669467173206594886515168582269197865928812904844092154116596349561566636300839043711621434826710066919428559208238901056012293171826523211278398401870059394864636475031752074814436788984698270739105268347634080154948773436699527830331524377929895605973410823795069265948982843362727181559362771018045718861887262560379964522934202387203619218779140250352430795725328382777962097403504702526615617486355971937107979272542321267898857911525300122657279896981021996420272986697760929861706953559619219804251845984531392415030596475193975674131400533154622087586859757094859582660622263281098751411869851586490906386588355544842806291543492670389509181594275218092122649504929830783169384477275451624096756562203512794195574087228245850814071728791567834629825408384212008528621019176414812278496155350990514928103795870407315331933084944214749908511504898000932204494023889864884484339716610719537465545694178071731411152277043463324808843665296646527304248934647113116788412236082512192281705885420952864343069447862702272646028778000506977606100129451215205399554690397137893231548450192421155109083950221364560902238620625840203060383331521468530123183586752349236366872479034413571395175537822646717390677661800989120770190310799002236101132618795026202475377008821465911332906961596464757030142778705640859211135363708821188831399984221487480785945338305044456178055498998529910815497222928422342834267953989149576102978781468070012606307588491493349813455081266224807291701610744277666592038618809930561006436700907992725045013547211103417776397483184622106013156360429567397679083346696561931210334664543445517049049681515423114926434828228087395358482678955989160340145696245157255079806374335727192480317732120870339886514362765321839485951194455197293132720434899451109221869959152455201033837628163182653383312582792191192834316572291910935757289748356091448622785262399556042823170397609248891503285944350178340012186039026733234787797902134391200979522994791592342158261813883261509958926713728859920727575722299698381767291786641291783664614373446685937734030266793249307340992112610316178085842906300251549253442549912481882779088785020817916886675096820225446998708934052137236367205819444197526434408354138365342314894662281031737355463429066371785774910050655511948660451800401443908719479927975221157951230406363828511308298493985294947113878747330701400449509332894065958831572023053420410542584339408594255258983846029720653890965304547450303735662333732990469411733024588174225136870967476162954748538781488874786896805242960552220841131798318878458198782920533348229450347090472275168608966408684230843803113661919750945686764800242691186405174122864940460971470854928477438881171573484573744386563801046268692799949443586299930921287940788614263727101261998402048398149054597881302076329700698753876398394051427344879780475306313431375175714419009691185066263297467422533850826548729783988122467093489597481831272768133849508882785198164095244762377478421528166132696879891579085369769436969330207422056172305183700407305360460411920065363481343807780247814401382689343928423767020483572072790827698876714538268569920204473778527073261071887572569820099489339390172034690717322772458244928195822577932227634065760178425618217220772322736355193693609549315051477073103613236518753778365812393507709795330121717748735612246227872074267753950153827036320931663983914661980493271521345104081695501483748467939623977902522615377119597686510838139269394365021892778987920517862111524638795929624948503302611066116059452748015737753277138490658434844091018366638998659045583512702608346105039247569154593031735536007124465449545095995607643591360533478823674011904433470121453656208733663709514921053576695123064620275499316892597353421041819538297451195565590988787747212166875474969465926066031024002944343022716260435275070997846532905428324248328088806837513537194114027230979429360728115143486289166370514018725605168796238412714286498359500984662775884174709402411392567759303012168716807253185410692032599086968662901462490555422431249557172178141677868840917279425759312041576225010026105076122430507545271089492326138061311171109448605237046650654064492022453080039184665001799000153610947345672953129780238392206349095786394485075905688580340150084743736582550070124321629511638469281409300375927972791054891597728505575422509321798414412398186092603929048189417149779350234124698373937249968334616615665228730493729297121170161352852084255827150795010504891623939505095907474621665530841405600715687233222946956927600933443050746193851903743665329222481443753384531245860784159111543342569452756522009154780596455468748330376656978310486216627230070291634129435229464647201044021251070561277677248080361722979011867924098296566846028443063499085153141636975360730863540727832661007838925266842262853025421140782915031956219549348973968729765414900476610905945674213385551676700757816722104233048986577999192251278639177893427979265987974205000451445362636846366327290105855571638048601027267907063514347061738426624107828659617526992880270621394901609544178707342088140503799149272635226242084263210661397988271727651709047705924010252775563078262045573182643521475509434485898690181419456212519510524847751546505918838803610784868145687547586716935737139841086184028134687551046662999740311283482792834578319947362306113251022554239476193492393472451183019868765460990848803556267767795982015978752281366156814513548369631332876516663173997453866228271515567331960688005117559514812431141971961612414053051867840524285895965752230922228976687355405803878174775698835321847053897569870734797234164538770872455496358099950228301750125695412457028312277254636872247616311906403848799455923257434369403877908166843030616819234526492837682996789811427504773681562872355624382648049809421698828483423715678831685617683234317169326801586517741377427610686875220811301958429366708299494604614582103438800522891055189020395179891873059908394789362413783792546793789555593148144484199463910068922723191426355183716264532412325078510933685546727226624942227080464051955336166537175045973089972385043273432427902715778304485943101280435567163554518135313744577042315768057468726592076024518298473801707747616241855694192169986077903841659078684123171727816853164014288798110332757210459912112162105079482375238502327580221548449654789840761985002246087176617932027785795375023486090954525989612585641525179697546060536725987614081819371793476549636143086961722537305329075505512549110947091916055152315581425172635317618059234330545033813725281802101425766104967031267699356671569849936023335615201870229740965447322622184814951124571359959997992471262817048133853802805182484823615076167439474530024863956487584235356178720935917972211674510679958487006255253963089705598029923480940411423587886536457968304267159258023814505063899741296560437260666173167595642970282546955574889208017828727226143330316271541616860077944331884085949643667567604255066250396506401231761354717052172989151422862679923136898425531296482270342647073326741121934832662290571835083268135204484323645197678619505805298450097847300046408310352632021212676021682897787838243791413163943740196492563490638240404151876533402449218855927093205340242500833052853827174882412039124173206515834418806068587206548089058679548017556478690900294948247838331797679016655765106640735032039790131903866248976664883886895911892008033517935374606446037445984383889462228118447807490658410335985595219119608068356767715419647848257862187472412174642586512451744370408800155574076596546679983625821200634500377795760643427693369629480046442977278846294571638253165870233559213904814274162841713697799818105673446037933738084809829784148631226010365981488388785630942484772258038871996586271865815845817315966400042563531506621361265337591853951342215203604117732247732753424197453186216195347055612346054286089018702665926461269450675215553754016466540140308062611046361143206101777375870561654156184995151806523072476051843144067457716781957482262883991212320669489518201244095435933593077356307004790542062977279933463344490404072230942754958396089814444508190612870292009269834221257974164549934492265792565425315007055922388516021410407950373333667404823426520378703652013491647024997733851913894676662103176569131227182641824551694136227555331246184466885849565687808323900471602608645691112355703581035996290558357961204886492491946586022230133723630196010925385674193640423262045079555324093880610594820430612061466094229678168778682948333639601229026031536163114105106643911528682195591672642566009126500748518509075417224430896041103030311634247113869344598730747468942183959791924784505480445703151888742623747550702772102060203523618993500038718710014119904269676165412385182329125848329689690612525025644964908692926043978855937539674699745558482338634469357810698182243082378984967918734960350433122279198654229661678842071440148107220967936448646490940436602992716564532219830520591622036443776927926511139670818369082888370176879103058087806904174066915303744551325131632071731342029326631665057791887696747563563649594409312679427324368738919537620378282794601444803746307127701626937886063108755251960498703253868807589441896690036489254865797819426328249557223278207106523391139313652256507119979494580093208169393960675980170779786337217269010734484873660904316705419752109195513732956119592647586059923629298593673532221985305002766102124978801612695410531982585051745555484135390748968845941243255952652090916744475291438709274476697790381313170008844885435313760746082360757840415749867017256269897586618445615077148407169512307110215063702402031044639794978892074730306185620015273885777808517163764830232264986023726853681398552172683973681374220770053593232972362526529363575662860478143086557510694164277997884140435538490740888978501622668579089882404059721443374834240516814460774009545146350140105670586747889702682332883479014929232717520157668816239424843189512199018789997811264211005052270829062713288229889918640379589151161275287168247506347851706118427626219077818158856154703559368814771233759543341003929604628514425151652848936640911254791039001366022781004539022823517383237288664360896986898382796091724210110248265936802395968297792352479251332939623990899983450526248786398053962021224192003995027133311268058373154113130470270267918132745151734653811184880619034445574957307106929700584593260070918551815328893452458829748112547644611186531274416535509309150860321648108534229605025628333187443400998347541877140567359112544089087494912482245809540120426402624776311085274004721564805165148120281796150856063772710710332277119320030870052089560657374292787480669875389858757073369503426059309767814866642906640057727952797927963619728559634125085305602312489450687289616376806666807412802673160126863450559108670656860414972461317129666615743058666818713106765356192384665557082310376960474901242567850183678507941531108761672756997888615752393307332697428918324017212548269228543010007321066159263336346251855586886028311314764934633963514456243229604985530521124559518121053021550260485781275547819827087825267026756460073048242234035639125606146036062248957000626210493346898432154407551702167394322082307001127198782987842049288954609297973591979100358369327769576557569019546986002988362108469755373074902140204510636951244377530721724806602871636014084754264713313060768285912323746710746253912183489585588486171977825116033297591949187394189648474684479904614152892554017496226856384753609134061962237651290713914291387185733466665411863001084047906159931198418606914275595733560978948610351003720427896210909832924189312195657865720668031578367039749873448872377133615979385618832518263075000293763108229994468412901932107495135060255177730651822049221840112874126733961797358076169359529140715833828692676280865500237063271357337950768247774173362094981837096058329340739636104709801026731041527451840257380537546349929554353300211459608176532162049608591444839026025424202508615188899285935760794363978094682468205895281442025839761116596316664303291678751254924269032150726614171800564711663970054332393629305895415853967826580291803271035008377373860360847205812580526865830405205446302385944879610873377322215313576312230483051733649989823280939247215898176117179667276411919158920201364349048374477360912370419007798200316357248585451356576470875346139546080224619902706124421356916219715858158072981704047692022783935423178514002911686385942267198345326153094266707416320030313370989843782719867262486281232260110254952444750625193980365249208301813386825896835870464378875680898847019707572444638573411762844167256502506033016557507263241642761145654632746538690986507430359176318250365106417645513891286126533095431980303470488330937349709812763570699902339268870713358289195447834472381097665016885021416526104091658192211237418630692182984429227850720858768792364158341618909443514977418636935441060039106129695622240141646802785539981002157092298184994458043100064986221355034266640382403876766066002416177272840073072663717536756159778111160180939890514626249881302435451161218787399900231644195515155422322654148569411330072689416953495705845147855687861075153966858698595384039329747529837462453994018640459136071637837759970752140690732399117062778255269293330363332222480568401788146114970152742796419745535563835866572395189597845206889758926969531011190445854656983895296205967123249650111330548863993706164742560148461951548657843624835729752689933163842292666224800113810533176783263272521943027519397553815001008303724923810471190676627058417834797169335078363983205790162281982203528219539903658280529350176541822381313052834094219244565350659720826972251729797395040547898507965408651542515325221457855867451113363725532968398016187034711022578917998495241057204957537181152391058500137300565707931482155140918875323634048382882021566150493030857028796259199409599365781029815830462322837711499676760980429463589946175100779913191993929450094129543802442261985675748067589513640887917424162945683846229019118031896793669147936698723976297869463096240964858437932111249063714949255194096911737605026339395977309193418723012553661588143950987711431916056563617105633608225057904611819066752608686233922292794598720703646717857242051641365330626583715351502414595378299403853347089884292016530264044782599959035756743782608135959349056136390100559948452124506003097082418660987661589693871537382277319232606542381325958766503685155051435586094355690911561749570612363648707601655327754757799926748027778728975374904317917619367830651896824153749580487295839584187136406662921888933097368939573200750050487047091237266045885216774425473948948346984975677707591106441590371869572825836258099989850523214183411936053230183835475225988617964622475125750861854776213464028292834657647160525646563871259386535982512477768862044291849642859077429307694317662082894992747051870970011821862969689888053530644968626606911304509472449601183538648927075957360764960037459108971701259473794846622369748195591121614989382267305063702535326103451740416154008968088201763895782452133880584514882819952676898650236446652995733666838299202885810646831041398488698926117123769172368385045976534918738212740355953068962993196582006862509586929634866960722259654653484512510141117236768887608976734719141080001918857909398949390342842051650674424750743301986189416820541309326024629958188125856501480820173817307579417211561713511196980295080006190559766621516710438365052780931858730228148018755437301086884426220396720657188610752696783273807906224476253606205631970201280166963514774258107245226982530830895980459855646928686254993008623564163172060993174679175342212021187022386181257272832211029403399986268589388962903765100002112704482201819847557289895629704605833590481984762129957275488558019212630205498682051043908187787125300866544546330458324394686380939190699968862699704411859599598632510791683129698821086033445441669332710387027113249640376815711206553911960554239389802294911703075830518325836271456747102888550084479872218610087224231274093080599723966119568904115509371403860710975697490950028276113439668646988330700306275210949279324453239190119916870446960171031289333320205387965218765310409788765894113134667218523071644085138811973549621540279912637856240136400884010837179420436914930023767014486159701010148545990437922369933447279946261093377575360881572444189339548460179771827300466870656147784595933524764894183898784508648696906288453473752353260309815029908274241839712623593347618811764442273142682614108033153080392752861626682716561336415012216969383169946171851839829983372987432503228794218527493540938500758107898317313427011550321104669263769528114029941108477379923495583196449072274687465652666305277373378719694782471257148786663042252126516191619713284027876043207224016135721937606368959436442099018752973532763813854996366349272563901003313821111388426216687856435881480057573782002638228772638178395786349421633399823853532019530547812376829153401230693171746412013260271061608051056593301640047376830783584491940466291779466784504329991182639217108949043290165787518654947242271296199955589647008528459733771044219235427143754157368274293204573056252367488811958876914091595402354131773629092072679475196713562876594088290939868458023347737070623514680093955802944280831856537059124415517392474872567144188784866139241792749598061539003393313013500611385154261250557191252111267602762739640790664611720054185412732702093481942373904700760604955379806754524834009372481327542929084989597099632854036170878115689835244186110488656159056263755460597430090791908827209286788534335528159385176618228640661020005885449853673638890689249061749687141928992238251973172419082077179648834172328253668464225612282348808397330241213017604516581136798033346914953796859787037694997656142739767719362491301965358578669869185553477914116935880684428026115970595351814913585871939044640183505519448305485834705158211882064210073347360413153216370682132416669522473331026652085760856269036422526697067054458988419133531239369343403282808474880067272733275458891797055113269252150976827945250303023250658652004205625712235899432733356314770312043332021650175475250450102581890653660554090103052903028101015579027265006873449803240082511249428657624517591680072218543926930868353142308879054186988815699135476203689124968117687507295574424803138721289863393169685046444272452690129529985954919106514562829591130842509717208225748244522167556906870145094399761572752953142787866120915795623133534626112882115535607841239421468534613368620999572684663218595887850717643813722031599364856190687237721285542712491809478010866983940296922921448132720421742988591554784926901141361093110888914935418485582408946110699033095877675175869456951462253800193221935419792661816642633534498957207852948717903755644377812976941742530698555645136949567030596509374776956140291504865854420827972340170004707090317163136287817936263116661664219363714155177565662512276380190888646799051469054262374752566354337941258669645725491060400123224985229795955125403158940832392909023899817768808831709392672754820786876691561048592701550757519028873876974480495626927904514966434907204413290128880088609385860535886797643029885286218243007478026788957623441813637021903151811627958684174376377614861857079420401304454207861206307004686751376995935551409998081414099785194284395297794062195931478000207336230661876392938721172969812146851970534708498240510880333826021272417955483166074414582636636548642379673747476055344105634220595802522165122540048169465746321812833192372852379556549143329306522222862922502958584387221583959820781866257445089691028927334650654896057038949619751222492419122188035931950222821333981979300970119013964434372132545767162239965057656029598932489166174580114601124087753224582365749732977921164086478253180436022009180462989653940098427805176605664865663463831824689224075428899129350216878521180269305898707538150326917938386139670038707584535566652245936086002252393126086225418656607827607859347278865563960093578765666471387081761590446765342404221617764343365848799407127571922570030566921577085510314151911533964837276211176362986982203747629783326708765604629054203099950177044514287982095534427459651020771051965669984714026378352755389670524402647594546551880093550891713607236670935391494502845488214669596695908961909394173602832701631696155517969338845197291617164890106721715889873431473380695434223988351828831609761413069603064129093252439874569520499013689590738180624097716421346467178500037184736999140884717973315985058944431718404351924148771467446966007412724060365923181935221878369064497394975137332934757462822015199805263221635913310754865505552451758047338607030982513802334631368859558638455251135988168979483199071650081847467314628798153492369574820685246798511136227348190084675231438704532084863640881917615420182892407437536275377579365811465268770952993626150467091567738752867946053557081165862352399615925502389786966517539546871876122816771212510359924705225583137341866214398310849388602282310366986664057759693783021399736756493884530987270233957958779084733615650987438613049945468166542015514937577105317470961019710417425121320806647940242564046071918535211980837937383929983238676967330305406915966383025169739662996057479830395995260525424846795112576085779396525199963764276325249234510488135406538348506183434210701846595715151356184890506028440255369132403988174413467813287972764194166101607831913839396335783701099574980302929449398103980415903361358318239158917485430052573086859948535591023048385327750868892842618386883318941611372688193105415125570519925298172311810020829062176796892153168515963901772747064383500983777011620544533079543754298596556953491396012637104095933755334142406442457151920017208672567844999103670394387118361058456798083765116952432250507080230574923517506163490293811822031694849042746560790024212422774534999325946061859057327200184442106089337923246144876213975722565235557029924194816121725945056117029973163161846886826311113839095128185474948067014492639228233203181454930349325174566862958490525468468446968703490193165822379947395810207697903703249908333001199488331297404321437474006858324323734381638072947295313025078684240027451426109284229507113333202785714636342628700075186880182472055771412144514535499888504876486173815282829291053966676810013435775372143123746626775594733152837303802080839174510820596830064283649499054811387684163629637597725784869032730303313499544411782011448174786320376921217042568071739932944199255097472081848061824547883054933024503404123986217706406953760311684816259967024272069970632616867291629442110871781947887214414506504254721444071140200838519666226654124732108018683805384883356610229658542226983516122078378476500171875562975639831316184231016657843977714867154563609999529958690857965374105177804292888018574903454838557613241291529022525562336338148129885537166145138706496817435087203539228140089510505416011190455211776223825019172929908039690353303680445658172207544726976930978296580439975151452268131578775018887746228489782629867142844426929690537124335005764551926327092028530802745464559749342876690868619646604772159650345087138630676929591101821486562163805081416078030585465938602932296224464570438938129289314639579878907951782445215694228027885715509235954140610631210821006865399765807150213284022109821270013417779104706820170635992706651078065185097972480103697595406543463317962063973806232265877001213202462647206571338450708383122086513714720283676221605683345309658655319585307264656323933909252672912245489346856848952976951225854518193460973289026849113027967550423467661218927509407896762122099161894655160687835658405615547155454228405670701758035782130980939209097882542179973697149760948835842533803555414904899390055603703678443769426967943603583130732274709853686965131714650010707098621585557397558422229541849774652373867995518281088248384505873615430014693401612379987703099871598377137525907745135541389984254709225732297219237378023806539633743963213060973594999126760168340331300182484872532310534935031816073294863721021707510478349751797565644651059227351289445020631484936479370023942694011871220210094837695263986221004912622294702566221233017651172141028242752185144777308777540693031185131991999501809194494909482338891707303726149945214695071353819170107283036755678595602606326549216141817979623367061393477237628598959112322040953110230851878298363450744688507748176677950825812169980149812545475121728036694768270220882108213709729183227426592263628632395465051495508834983035276877036810122606909256051857296395315920581841615117312717802425158471893951962397979370739897583076356216804942527584173293951629659172556386154059849306805740790182336399906624967138509441962393599093627145866802829489976274582765715707626727999480601195136614677934624108840290872786770388013012091345568733004443107378825387015183567144804870333891076919293525759770699825566812489710512971189751172305247404744690126265525516711563749420664548490411520916148930373490326100960453891410723495862276659210483532354861442695189805306064338570229709525842226103803050651644536814847406283165047181690439004795375248548725133107160234099696581031261341385864826655402008234150693626012482862906477758104273583325566316093370181623939681262120262249157983810698570146234643318017188476588095012203782509257749311311934678531945904848167612378097110666529992750299277080545351086848472106996514196002038326946450343944027694316764531884220744576711009104921721844399256850434646635261240355774499842011458463361855096045558103857681182427961287164009789361039333423432836270996984005508166170842185225087930390419849671715668310147402719933915747704090405682306266409742441448886670312242437345103782646061649729199520779735263520779683229544800015217412216445226212905270702344081060578974480222043159655165583713919194443767315595380936317244306523887623973914466421892115168018250644327728100793711227313085618918988539084540233756637169556386186135120873055263337284428526597233940903633253088799165698437636220344484741668703227338524612878186417201963281961771190557771572272027602969499101746124610175604368044933508006978357010850453439748156059351525607889244418496079763219235388739258386396275959847414564585399484261463810900939147325610727251384908627517554866693914106396164321222411525330624270971967868517526205032255978243384421781076209587487725301989536792812440774038256067960923134881872163117890430218218250288140715151155049225633707983708285099142093765245533428602399365537892497173191191765564383414470799555548759269824090388962812414497262046218794765611330541703512524980344950521139384759449748086394347102078722604393258973863872332187686367427273500388017732740872624104224546713388430150831004308111048946649380323612810059190922642307224509153574651125554033993735051778816086133600891141909235943801679879071974776742807189661960948232370198957579207862281099767072578380624582903127609792257866999816485942134955093199976306625872094191820000799684295377021714334019760952981972515938450249080652148734650281615061086300301043465372759662719900561256551436030849699846317862243216820776002582976947778984807612191905074383908849691203913209541404517490846341907156669657065430114221600598997651040280023720319015899436477140919662653403628612317905971435776548626467060759237982624626708999243034711046108543559173467968932834459794738350653126749523616258760314523368747485991551181721247656063846870426990978565776852023906138040919711920872659441443483983902580170962695404729606579254919885314917839421640673305970612295265441302733746300113096529773188005115188489518614419041639825553283888385866475765002266842216426383487678380777854098958582261121189954043100554384605063604817911363889096738712835976097000880678077019821605573788768009498943455380704805691125953213799836331474969902935882118771681939830606448640332075463517491317550297350108517343524193780005887882452435088746544578365627641593387807081416932823043845610101252377834081830991786712591026698598534912868625898278672087730761500179724035359370347522193268858605907871433357760818700282551709614577206567625802534927528075001360601530339255804371736487623168206658762770458268892139926385889482872074142583830875768465045977035052682407760261117629662732030830568835976366098386769368634682861534154045818489073712629172551828224134673202621807882062512602529193237284013104428172103916587294238092399141544282981746832450520290357716473855417388072581379992649925098815465749344446110310970338088552643768147347747911107717244064812020982672939403992288292939285455989952781717246075524571710476214529926263498586228916804078791197554111878278927078104233569279140090068553581563543576108997633787583437802217651960495360508305863981059140503688473904712039826179392642826734013639050770835260205648248726632569983559386277509026279120918331148637782909988820254982849733926740890566274171871741494021137026264322906682186504743945014718780919169281662255489028178731531890655471061216627492479242579951316160712046136000064041463124267986454507932959467624668866251615445313298108457830354560886890866382194397824362572505310954278260928490727043711711614895328733704147505250450744885460848447348147248056198787276937450570029126254407705310952157052237339130539337716016227116458040802213822596052417051311643514232699272866732646896463161209195787257825232608037250647899041698240062004304413210156478726296918350857224769823284239666253284971690067943616558045961279353870516448554010215936910159337535637302068774013977158871269238494111951766367613588266927018730121870673164303060279463891212047797364860404445142207328773412368866462621842054208340943963663645894006884971645093434707782362042982260116988946431054284081573039407389810294710107830566350161903345360631597054622696547271941731812945731982895744476730003459254566079298275052036823755226952187843376738451816227051791307504607528205248137044635461236360580013223175818397992400012627154008987197443557769701038931047204274092495453111968768635475991180375961448513227193209163728026263367686192329152791396772173121691530631142623014121409910639095924580232341686192722841795978462613405201722971972232509417630472027505463109632097591005169590163196288895021660049865788077245820990311449268907892601289490704017388873605819831319071862264839533727207056726730403672621487683911120833296118920330288109307805390309560698471976822736682142744718720118490353913501503720815572287063835906744680588512453932006990164466614935317839916203431839456415623685569859359935183900581301448898225253953045242859059768114789946072337302570617844633674765957586173156315303426553640542539709621419498952995844774483944415634352420861572971614361471557033318009214152765158024380780201679279279255686389970618399860798123957598526569547271470133095478699774973322747347687438213011667603823991381377677561889088165851067099248166951511403561801756233426522869180414186522427587112699867746857557269502134136093291840834082091685746485496858551996483901521956720016963526088956533340316453031621488802619822693640247506486650495329668838695898016873888480326376022401471881737215324854315997696827344732145131888868250134000077549383084150596383996999019921718098354903665611418798307185512478748127672479054914782111079983450324820121792441014849014502686674793278248061776833750181228056984978966647844823704938239128917873116835134881099025898021509563534738996290505008811346282983133452584793281885323933207090895116900744875038805467976588238015998309181696079423155185813037654778468635964591321545215884401907430351773841039931503457490230406260084754669964851357510624953147993138662538351898042056541321686817736081320638538468119390575880347826311048633794579662532756279188046023585248100226388380929076766096276932110665090654087485666523208854095262459319552519057736504201590326220989580348263321996873674092400722173426806309938326303577194338215382073083442421481153019338717820187456175713852208910445566318899831843229259056562053059899642470438323201180704080464753583269490832219657174563435289566674193088704753611446316109056878829088268713028945994232302488393804946995869941973208593266265165507394331429529627389791612479954438026573178946428057491447911148216228725045048616526140899765388577797730996364562176260993786812761406030129498120125738918346814688711745688824507737983631295991282254128013441851225887740691461224062806174416687586663116563770388886526050976401417911347920860472514690757041231382533100926204875151777389147197716221542320634337352904401809532195032012462459566073135886611219161820666140307535444511959267879916842291398081593469087078065242515373239901780072884627470513704053079502838835761151353534186465383628571381390827098587403205441675112011269258655247439921346513590111939760284874659803881602867968920412705129141731367938761704288518391832876475808157174539466740346671017700290093148999292511703548391078914313120568631729944566230696438701645423401947928192403953836088811817402794018688202928820924607473999455578302943919920580355043077801831487840594146674313272937127556553760223164631280626605862489177558500331430701639280960816284978139886219043239086592440547638043558829102474774291003241316465274319001761123699027625064116393831252071477700776250222485032424557932123323426296884634940971750458181862319639772152555146799790303481753319556925580370972030772960132676907670601304077706063135885083520961354392409395567475068240659443901849661434446553889564113948416970852964459203986892492610052871301175001422133305241954543374754912411182348204789994569777114965306833409257340205514129473674137915015537202469969033115226908304966250473900375780478313848644306443005545255393018386817356725249974618640435076353755582307258293337697034751383907967788161747888110530422130791514057539754066889719461962090238180029526644880292958694913782574561360222819035478762634702409993217838163981155545615850083412228946547356492148692709071810248476684965146636180937503972476365359274998570657000299088619540387007861767450503642698452582457417052233029099269100459651228627508900964056131791620896153590397476901071792819608697473188383256466809504908388559012253956040528713974909754576141963001815609926087375869604590165980648153063021216808509833140427224466128836302098776679382020408213708762476374616386065668667036964781159647595412780632218991489984843198476412158971303940005307339137997220040344216103319945435639355938976406319493803694469683800950538324714388250936532253056342484611996320249802500295467329524782741894674459653107333082210205584030013595112744222480827356738584218621116354149188254664827380350074130679023397428518388507446787611970670479987192153985936551401273705285934286981761714542664253841858359732646762517880050109029979913600425344360695426094073098030878743490099499545553233376713254862850751178786279618419526512670995238264358697619827446233343999956240166184318372346792987236550442752849600750970579676284144989864624465396179804610504431597888525676778904457182597183746986521288585146151485213249779135653817768595726097538731820350719826182973343855026051590525330242494846870111255381227045922396263286947259518797430746581517338354545985404059017842775008937229061154035857671729083418919658581425232376717082927592991109521391805645581421625358580959708008221326125779425554282609068913979347412425252787455151814442298748376649800604517800244827136732082378015414105780270016421710122587908514376309110514285878032247633069707379002334190139464386731374455813734629318938707068392813935548422796000816932828683451873791256337234927623152518795763373690594887004208118392250946949218267472225073774098016738085478255781164386769292074546516261377195697714704874282584702133246907846903509867717052104738576327279598229688374820945854498744011437351396104365088042928484278601403653469049057389217610982769761289341336189420520155700597279762687587278879818291664219401805789007020680028929570380152408210481823371109483909328545486219940653694451930100409487325627917672003627202099197077145997554952623893014915260700446748602117420581801496694275867694143341425389271346214556271944562071655808580912845405869208139926790634107645961700293689011370795733882435481178983953797969475209189810008898339089398049799277956084567469724119709639259929545054436154905296659073528178525622485283737417785740832948903123381591992073797269158846135688089408798325966876735656365870162107720966814144579050573341451214082384815130949843600355976670704265442057531834074412064881311131648428500110959694595648906957433806863077852600900868577879571726794035656833498043426874845697284493850608542294390948745188664460257800365735605757261887355828362787134245237859038790499263848654308277914239643637098182449418270408348434158900114446606962032989065504987674035105814124900507304386670875399090240925136473857980266444842000444841099484954080292416319917382263769115884645689861071210457863630418920300572386158487846796470081444023321733004879255683810920921762586184609143559023415227144049577635387133824692484252262629973985250881115910616846419876785875097101146679276186437247986650309561888204280078580899526360861070303117769405678134025211941716878686484778077390695686202684648034530561898438402124288261127539660034817497567362148686169678693557848982311976497777171942441372528426013434505852089668250588004668018182291068037312725596746989888451643510109303286144653542073288325801492637242686272533837164228719027890615754521455285794297627826581003599346813638844073932544525945379877402427806672008091997505713413950117434406501694634486730277840171754953772598984029870707237748571378857743626334616049065731138846527545309554791578721808120580868123460646348780706595071491259019329371989964849643411333174441590081779548208660736354027813311397989755704223001244901187575717737262619852543741860647479513272397882119517566450428174883488736409372151872223835818267914243582441572637910275028499622851608896087774817189725055300930487545037842860597470481068889079757806714341585186509627658090576266646211672428924583704902663910071646633132203015623128296594812877361879326567914477231585093786973939417636390562282113812850207787126343031006071623733613120000539545430812701340118824588761380148510602928031141973217810276184272863851049121684655622758613003232794984708588514629507622297036419850245634661457997769157746464962782947225245673281899355476847714203522574734672964321450959186098094575773169649944837548234840235979790370805957345146518374630011296440990755691428758118277232744643849128878262967389465585969569635473318157459218909590297986965157047762440456704001733042444439112201505940376069347708019622270482147512727542203496497245998597489190686278153752421263824686034760873573800846756426501380911572581072148692073162605199053951269328559780949782228863880172457606262004427138687357675589792489812860659386168937279171855333008371630775405048800586007431180784109927239507891377721591617561089852677225820838393200785113826704094363463827905109237718258737648873715049971338576788948442987073868379184486460992386362913883689340240629135783637732091381625473162761247104840641478649377368231331623626583439167906815549763707973493036652883953744533406324263500093328725265063933559735037448644713737258102982339122907911520844663894546776982727333358235438855868396830854541488813613100841161423867546085641601008344512058708979165649819205670275945431291408681739809024983067281725578761248473211481010714560044264661046342099170131525374961775677194351117020859875520823648879114772577785641278790372304828467498694660502668053931168678514600468014756552538884090507314349242166083835016062190625493609805975568816800565705737884602557055485129942509710328515488705555144049468116455600536098942092649920064920683948428952437198231261748789162742055661925168141025488086798170878659543694205936140396366626456609298305557583739918501203987084062004550029280632648868876759451392602960901464236734329080873866011316604720380540661440276331218028015154912868091313294470639441878643000160801789072040343762776191956957489974603596080710753367078771995321694934942709500250689449183938766707849081414309520119786473067880858076981734948996769348235566191955704226637920260311779192174653424661591453168794874415465571640734918625513101638481985731050918030531206892747975858366622193723628152696807101840382087631562367477470108725019315739402885825699547808126971704228595529472199972193179515529478449292589457247145767447985548989000100237233579833063407977308056611169663555134189557691363080885602525739738842130092077859398230247982190717151396165127241560038869012100163507163153764134924808909640678575305793884805706401956324333253412466644970305850525541799993674421020518656058143196225180732185331624247478210359104625305300497263151716149625463082328381287484453825579615341264864956809726532890339282333297230550548185523313874284379107453224562305972017106242061260308594584803417528747729819591132973591726381767490155042279004420618001079063299761850315052489852212196049162780858502760680457624354412639399652174961690678412105327763775909268622645877053761118152276061655091122526985971475544071478316427683087516140758476372563328716873319298660563975803287774356097338071830847200810590069029989850220895505199708214667452228262679479961768601809627188666657360434542201102065320082631675419838833731999779247336206241262950953075978085427074784323940045951849961990695633393583216813454606517203574541084054622457213702340114627653784492706086508895867696207378817870817819104555478279897288293840642022324255535675228847951916809213192044048019590175055292876284197669473754358856356435902240041919596967413857083422078678743197834091307354855584342561013092318853200822176910180686098559803610669722971498467678329261269482010184794094260212037128361309909381069469094529101037540502766991165881137513818742359726603049331349382212471645157012163437797736574738730965470332430554705802882820712855891635368647117630428249598860551780317436423694962132935551027716850285147620679402462942515282146657423788520245099181137980432934649289921341665509996403617805047744732481396037276290503426885380168776152622687914267253290274451457435719484383861838090522055730942251282182379279244833763594663899861539173387156688567645851293386639301626285472222242757815493972775605466888703847254779215815147249842155103517023153117069823237633441726104398773752316124574552185211579501809794519414576747399566134029921994257687145146778523362877497433716731029527043286380930204056381245406966126884060596820266752042870157813604010110318259615677821485906546106086636684766381485116516184448885280053216270073218064973361351335915217732953666308123934599476390710156151999545833238841886985694335366408238787703508494498438801803385526883987296272139479461559489434545210431397034832887292798706654280346294228967387845991430381174344499510235829348706622462307370821491446776248435701473969751238217912951077024743639004394826763058161716610265137045115459860253093558954067448019399724783234511869972220541494741119894872420780038989019719801544794450002659209015789808288888159831610854817798720070022921008984186055367664246283187721507395011979791412927349871402242122303580611098098668104221634729439054092991092206955466800844607269590238991330235701529577073506813099523573386579990491483760547730517819447163405605151102066917031484162303813143864479966826305256418891248051693687873244804083355375446015924436096820316677653225415983252078282451152902421722334470986371871660741145871247275678313627735574258415566020045607880507810516715384539279671078650112343990279584911051833774589666484849377342880034794434016475921583521482541140563969374057591829664246089956847365438035907582867035453242730665146892191999399104886350436700746539315998265785760029288733972318312739083428984984347395001545266651580118571406376520096076448859684342394928432664979108371458781214244759777399239366535875728456061698271974109588694766783001786188025611968380499392750942008737496843774989934664039708039435614199925918320388500351296249928186877302769872208243251323847004995974710155252965426375498764483720219716439260901058769670864967157161388612466915175089821386835790822682192998054741115679500857654603113751005300882757326008603560327414316623125017442324720559965534545525776239865037466440023457781234437229166905487188416830745406373544720751882117043510209818827966001424777492488710011083170121390940964828170094285848761944523306869298652736822248534543501079485230193263210220079172914536402904273374165257277443379711147706417664416210608079431054845305531392054372276323111887298256945325016881703402757263728594222795424567807271494064611745494715504491953805211228144976548938478883966934095290608945177453986317450930008769538638497173631251261495147351278737971082664750618964662154722144946295618897619848139536569056861914749424480494751659723969521882042633935149332828061181267579932045584493335183515213432227198239429927103208644834309230921234612397941663526984899074506053922998511798205170368342232185112693904792469367437187784884632308957711465108370407775880987091322976218268086274632143522870971154515536082165502396728655001580470120709245344708902534803944491456245842023926725321048122094297539782771636121395251672549758803541565407938116877929063035254195499921515650348339894162815944537490838368748579318714375402601845724364005444629729467543716752821900155968266068267765019469782850496179462339561368922473274220463089816377004845481682115984787618055151199313079184269393455307447851389819361936610588849818944960736418467297193026335203612654801659268210485390050575746644109455814169012880359230833541899249854093827939786248835128686880165471472662880538906602708077801740524757431639384501547526493550691951209960992307761342192212938365265584443145947792062292870033929545018425069885303549341528574670886283456326310451653591208859116673586127613246891774074671380797131733660716785368275726455293609232825928194237652445526353291449878882650052451892824000198019908249501548137036049978963564720835672699604486314435356415453008577511785493491571135258850823148220673800209541937278580520963095595697139623042324502456109472551015717140407874223829899727317492031106208882625713377934021428239201783824662806248560892807093705877965901933301622947909319519448013354535156253846606248284666637446383384876444877807328071806241714483031059909141475712481821307204981030642759945118675262785845900070523981666819587283326173801788741620287719391874429294919333540229457309005512337515832777667589862297264036149214375272107273757204090238595105743123832444625820102778765911931329878455688684881537988523392566828535431068074796047722982179561289509364175318984192238344356874036463281898649560298765577687848258437706857750965898067983888511689819207868809428826597498059199393716840825751407146546545835234927825980965887815322706378450163787651035615431099511880593841476490764515984528449917500160333060429727319648203355641440215070827825922989856418445322860264460002467682740837344481714227312825648009708297257060461196988665038746591364566725217241230691114646856316031531927871041327542072756359314890682133568704126134286677474282420942147111435645924145807996480731812917741330478777706255193575789905651659180945915396619913901673643735779884229226449604940637949350422812789701351174775215164251211300099321263628073023684391894461887339524219214142434917477111159927755270126528440360876072403878899034407340583266089590467979027014773496228255254447635012968040188337504140957656654563523946138192876305451574924705465559352278225950517520528308749014933997044202111727436204474424995992669839235318368544482028103505941892704188664629574318865607106272285381294388221935779923995672948731244209091836690717215726705298895208565332734312764081441979953484850392915531986445246255283042237053950457816760884794187167055568691189274384590874973022387016962513145617510264736638241535068127680795037006705317381896300073329741283866763386606096953909197752885504389517404504063522996737328635761198690728776473242689879576275500615268710090520513376679427970180189002078219190209052438729205086766688115510334812040021880649106681005273487017454639111642566102139642342330108232895944392499307002487470750226860438423305600329152362471654577576559053036025537551291050429931713990939508483332482594477836742347033622452247114702337878576570458416555635838334945619962161975243054875483740883329603989051042901027465617812298624173681265352835675570625562198239013794783581732808256853766238886510190227165015746250444741075100401633813944464696871510986813694680130439029821438614666479171190869194187568600828506021448032400109665303856559603032782450174685512995077691911686522335685180341982021186651261927626187771156502611015297922962117827678393012098538327260936397551848201229275072431591077512419311419308495838005104358261154284993955967531661978598624272812163269381529191680894982329033641959594956429908673699046747722488048823703691765503207124613405757173070925304458902540567480323829341142333379134320468610012402323547689094107837554830762984161705899773723116379602706116269739430307672592617585520284264050443781546829771979429194302383789066625592660178970089140698009717903684745644015170221716620649596460374863549450049619334801793906954608600819404054337709056670369547732254073542542662017528423800795949304728327268740268177734587033464730910761590803498815128200110129803280466365717313545842995911335708468447013654471514266274885793291781402629542135373038801455070061855061342520893174577993491922980067059126605417424462406967715595213847069568436817571196366333120002263024420603603903860792819972850316019932638502614247970510890441564606236039787265893179325820888309361167128739537024571909144156433371970351445572836177683221871616301062228864671642789058458157352070002829924242086258227345933652583469256196120897892893428123522649980915375851922737334875857051221088874026102350803412471896992437531657722502474103974325494227233871738936146700661195185738067210240714201232591836531354641630050706830453233367541429730638404686610549421912240055928523759025321420533097451759397794587014013971795022855912378614218190369281232606961494300847626378636516950732951756948424834523824764510776194509543686905541681606616876031934025041666150386159457136432501223390141320910760224296659198884374795784179676355126557407618008652817989438953428310055102386707418361016516302496435801183299023958594153385200893825335313896336330078444590476376653503578413782262401917926503205464721726382897414855728074045877532722488975504832451114070113151158853476910104814858970639947632174401711402850242096664770717742811874083955851454102047861966327424061049203991317789096372823140062601478690818500174620491362932326120026731155974458836530601304710998617002815059623674943238533894655954883696686514906904203243433877292101288656679529445479036632205289516488757087921290269132238982570459437651383137367260897959969164582041310846381323068107528870913556676618164348388228601594150992270045490487344453959286734739253155867159902335980167842278525957310138192901626079063514451857681581035796528845079744015459358021642957768758445672423767920180276267330847052298834588717083056254526745286492600182591225439958593669370852114864825461312640438961838855639840369130911931406410476201638120358294164275082274276067991281495746791444042059698955016559418839023784335740626714405948527173624802367876636456842248693933880831415051438449161262960519274838761666089520207427703674106572397749562218313506115575473895300866813234253262352294962921199329659948019623967164401471035381690416857208413902833794538298109141197658465763757179222284289114105474631743773439879401209607714450955831432079337883319068563735501509538070880442997928046923365681352824780479615855045654197816687826905905610278608202273650229162076888266473265613642469304097110782877771440675485939338865065794386486366390583313069314197690168533110702381995274833876004068369947193283519034342243962812769884371237258444737318852809103844547033573154719870604249177943015052397636869033562162495822738409472598009352417413294739871497243598049138848838669819333690224444008039893132623858120690089207210781459694549444022724771807065603093115519367607670439049517399878643920768211481495967504527828021595597901169203684662957715518855468222872223730189480057744698174061230035652818304875886478713590467715676479393280076352311598729576423925058042816593878288463672379068527581836325844069930109531307971585371555106607590553225471276034204404536281212875769591468681146819927804617529878035077832808423568133703722619382895603906035092480608979468309649174718430647400832295729469390334649121427765070275806280323875237579592371891127538181913373721290166722391633595537496846048863871233900148934893982018312500033239536497319864813148913079288290475681020511067141410324480024434773817961978352714117336107629694463842257746699351847321172269743080584805799540985847583555365014187379749282163189003229152721687126518437755071036340436219964042422104012082123757661737437456655862292279540315982858815636589765897688878599466390295645097503122303822647781800969861445639906503174252348348734990508359205807621693830400097527651879912358149758724382089506648448505420523730240438502254647311171012271987989189047324150508403784843123459092065621924543011494671886768148823021594349740513077074186418183325815283408706462093056017187363544033146288258690219131005443444637356611431794267805594196859023155564636523536611097217082282859571404103903086985574257656051880436647656368717778379190870810759470837228911477112781985702386372668230007476012963787587335265642675386877127217741785379767897449001160990724136082842045285923784164328103213456620861652412580531292860977008554249917045796787937113015101640173333898815671554974857784397274535005224554383620620438152712979215487968306877096159617929523905641195501956183761014369911046440431198467997827978181363045142160660523355453797797074509939125011954896857392621410373895233542081884692462838633753972084730392664287826544818194952580438783045333262941416514572964035848310122866344264024992299559208646352901838761988520435650294144572866332668191946576870097822708187460371367471573021270400699220889962108272896182411079430676016553805882823859695859351974038109382911603627350197328022487428738006708805215190686447231008163653242525813380521086898905348393665579849133558670008364380571202223187764067623852987811012721854236611222974100955628665268755330418203049898916083489816441435793591964564395021557839814122298667849616318194683823736298760147465021130482515433032663494397387998248264105345567738777633205634977135633968995179811542924632945679304359325519535017309366997453217580508638290725418823621072721957495178891084673425216345822355540664519763749204731781515488487596189122224740398783262052469594178063183390837856029696510876872486420688924266043602622527083076054974686990970617606880326036124736504099395271326611230190708141984741621178490965848728131843104049790011810273340877007780554379279724568261450055172555197907769607709880748164219802612364216084096884233298572863037308726698129596946767792979378003238006099379202556314598248449452531811681708052267560700053376350866949413683301684249251944064087683716461029023297311163198773870504976202263541506288338838647147424442649288072536338896815365397578384910047028010885643954710508525003555600538701376362636675946081043311004207522769697318028387340726779258616947809393046878360553283399555200988071374446505971131944317307822336190338846285929766817266955216487409230461564169880851766569885703638688392845383650484197054914790398980857780198692285910569303533514107173986011608496914272694425644637928902671661267119871523166678056166708381584624085965220795211047565716431425424236600484704734945868298172682823641136135378976951130272682615703464458827183510384954203583735052269398922155045237528106846398594579942850804266028693487163236507743506556374425922931056465763756601681067260143972383845938715282577747694301960623254221041834495591313740625426093784935227487927343208821855797877413156920894646630039104425467049194942683033131642862360612283097803417915992682706929934563721984834693746662252083257737834899339190744117196325928927161331407818109681750131509484730230122131702985332222283066106986987589915559962666786986221199055555268256190639993908600149907039307587154126659150517886679763676022985786669239065243519759853141371584463943834649228491296185413124683931167547983932310860235521669817132849927717292921177324604608296381267332998331539919554697985906389112221828959701488612187314659364301418914135128454203259918312566265891319947076694417779721030267795939883605671346600797085997221430704404992800488408918413757691985909781537602272110066983778179360553782227617358554008871411463237434391931734684552963252341961688861338838306389647022632431094408506117575090740825858341846973446754105718634564258279824661515741686020448733040719204739655123166816563971272687703162336738972557264289389270647805010509343523935956706649729585366225652688050537968951901591546930905957556265467973606210573670856703989340293245549216954810902486158269025309553656179778198684232210224016747136834748793897961287955109596447210730303803757329514029377752664920000550398120343573196166030093394955387242647650415958200611667815043204502357741536417340992927554257441238795761855425037936929927834816260248445682747432867916423475050709181875259114758919367496007942488140963427062487519146396901666366337090226221581539823228695921053110238989794194664877622831480478762576219554796879260467857861315697238004546111700815716456511657971007580223739408617815174913562552545475537917896614327587542901020777706914770778117741526277761518425321247795979355508964271859806207698021842779544952900251734117551742198040775672051117711208841688291193941312857307950377932008712941809798936943801349227976457717926432563135578591418104395487835888283468588998535120589704108751438573878581024419970106461775977956126229565963511294489411619197967252960880893960558749380547620615066368589381158200042064020532798373992804095803989723936670871991487121138737719017796014722480093235612198547949280410477845693153419171122992831323643065259156314294083169717945005400433672756250777725502193018139462127574791235044150222923364353278862915843290760254486379705329947431049317381082434441571097906313417932907706001980121234662054136442755862035872452729042047351426412896295427329643304902587757139996958228050731783825012155629650894678774453497948691202520392946421848097133585486577922856066880888291775743156248454184654895047975442206916730794330030637839016847774452138435878346374698710198887259199636231519243968698445629558765730560602327728139734135441754273970752433002534352655138024357605638921390614107660938505775841335572874100417598906914346065188897983280751590021424631629483588505614575278636993687474127706066062681407401928771729557386155499399161549685829078148002078054431377620397260468126186067201214007298181856485388564741300222229280017804513096527083223476689116370043321520407568116807824056782124954887387584572534281644941860424315791906588672920219083659080231366178145061785525309300161442572229783423758965623013302245805561126419159069087157802550618213101879134566349570065992261014880363287048166170058063606957956923832369272292380317165296415178838304609604548623193665023429253533442397894334903797581353378331134305534322060837949040721256727167570052272425591147624519501636559091546919408496654103532536024604409465144957632074992728210027019447967442066183178717977686573027760155836512094554669273525327255182369186398811143977820636770590526864835904932975537366353898242467999996070815087754999962603054582538876254368787330311573705279269232736667012721053438539732470675976312211764764554665145660152039607225274585147757645036354778896452828996278889075785651385172436899320951584522363738547333324402078408076507673739204556781377343089193110763184670975214616304703067319822406644839027006298737249206408283058328795596786235761324644626533563146668863258853847525102596580555216025957595783205909994190340216523571527095403624012415642552115547008319544667760142983157559604541374761839900447566724482405923853052904379375485619003250986097625131040417820482876332616022893860033931421234732445270396445181787063267015265319033645297207984920529853989557241008866155309123467055965751272496515526562711562783759721068336446463430111469973496838836829598882176998814390550001302854481941045121252852945076650021139979518626181921638058137835919779569472583686221794347068961568514357339663069165431939180807213202506101237143789885314169896423621494351120458145694451600851118524187160824840863670300840163523833338875900329470308300618192582392620755372990834663392711227056124761911067433524854940783867283827454447419998911718368402228537459917999288320742856810741762063306093394539441519789969204046923349392242781088401210974053866097796497414485205614681754414389968181942572296550983953144269068513634107566822800683632689434740829327149071545101764164292962939539129881209727098712368455570172215013315120567210089738585309463210653405699469516175377939208238234907021478563870655683678647656527165733529696379332975379642454513625189118700960472652500227795127528805558446811900186197325028250619028064222895539949513194481072904352806284707610795979319047600103060221846446440212701896825485951091360297716864210035506609937403744314181301171901196258050374089207617418397747202058835914258814058987472901757833855991878641331285357313609801562514611265464262910531674429001521496390004978931773625487447798405036423032496227580969133333561431466212583146032203640881739229613285004323933105214680793727681599626659649342381171946896902833926150984270253173761380041623840452463212343150700734534177762151556251810073285017527448624943948593866456809984606687933967544235659468968221908788252799302185702887805430758991037923731520896325197493107136208661401905282344093535974597115694982690490474296424693583235642794386114533091780904823919377712944719169589767883440349144244859047623560410036769001583381108494667198497402078522066638367501789723211428414742119279087276146229228689394555926129983175584628451384952548275094784343774084518164331959548165397122343638839692792991469846757918826417629437892648159116764192122811080285062172714261039579568104555769711807824634538088604007383461314398992635531431223216841257748477451758422898842257788878874533590237064850955113916255297363649501561684935136448102188349859254924032366763712299191627748163099739201083075086154143638138865086184691864219401842496520435038666687239174512909725184292953158786996575786135805334284722272389203876289989778218882879382983194827761398048571981629261823524828745409073400405849594795778395858575066679675745366883293755930031009321077093158660940087912554210324080292195307406611431135504108518780333169766453077186113059658737894295075371939054544653639040331767641691371633572331735304913544424531915091342750730875048618934978979889035401595717363041252176540906983832818357297380055247891249883031276875006099956045016784546798565966789137672498853619790501504370533274974230938672919259966713011470688415177512000591872870325944728817742224284055265122184853407462436076895714678384093470090330335843220751303714820295387449815643007938699561897010421906832813630215528931776623246633985104362184499360452708695350466970438236538096915370812943530880605026960794334390225414305724000442404394431854982906685679025723272329343165764730436369547442987210899945312761285777782432546998970876860855517279793858549696778928602203445371385246405818011464427975696963742379180592439653485087150552534907182401643967208043459537715707531922134327786080862289972441344597265107978926151834117630453078392696269650878689973683216765481691640146744999296709057888362160255612964347477103579513803187393612671781873413893280092232911612144723259944419860411503128744326316358117248260421384097447976817488963642010951972944171726757085650290386102791552030337217941276358511266340456905695346014348927569807899843866166455087211754319123709018302499462154676457360792955244799485533328292752344250962936262910685031892959778695038532373887484786247657586451647213879921552388652745964352788173340793515623834704588224227393199623711614826949428737976218503982381285287758453054801968515064678846712666424647876870044232334513249156621750469734182817662048448341488262560385745832329669095924458367831683951073834765042895848113586062904198025408255179257758089623397133084016862749726776673983547610740731212295388920850799891881472070197408622211090673346276429271591006924872306178783400121439614322254801090251220216224920738715442358319653816211318080845624336255642583449406752041353469247182617241620526876075308969859990882101689683987316943434524841543204265130873945320071868699546433039666174775481366988191810739318271119560175169303440820023537769896107248091518575312148760065824284032145578628687656560725396277163435568425501492480640144384010898828935318817023623215994649916720936110649567459892663377055585686274674530361864805979749856198843383658074799596596903189304836714226641542502162465278120678294615468465155882597883485863923247391146827952567104100887861330556890232339698506436803531928257032550446529233530599782742021593307461138074169382659743695640105157744135232131325027437990228015172036334444447665087934869753024315846702352371988331630057421896205337920770296745182192403386143785879897819554187874572554641541806325087446419517331657921602820280851709979718082098153860496876579548869251088664506681665188788637000143966963678975262277958688393202731412676141968387266932895352143192241576894557669981168630232550379523468167790143797919330277124432947646168830965630987297432229249614987581772459158793008213014875741850520202592418527639808640114373831696266035893542542466280389291983031915995039021077774873843846076900742108098992017267516251826199805737676494763906456551453433799430773604778386410375970626228087466387398479169952641354000593903549083935062722317769955258423088006181170103238376584552695814686207588269679557468906585137920034243885423581088471034129264760380172304059509719664266927612723664339300153899141691746622155278456745224941762748017669473083517155713329290189500565998265250649023864912940284577074642336791891686349679940685468865718282233075369879322792789657791532819273821402048563406421944376579543862993298524909935881409027376377029482628780031527005047848724828714929665100631394738215008661692353721289053797250407602769407579370157362677347726852798840742581291517137828173987312002659339069125340610983858907264717120142391845832306485875612955462443426445634075426146845999426426445884995169919821563278460042737466397327072083309813137814540692634522760548790496840797881130070042634099420403731381818955129192863541382977835458148774135359998773994180157705130065548923191394877536877603228297116772031114649292695265768468230441550573667762608688131768172843760963128910806052420007268473486259654401830526264004850988671362544189601737403393881992894069346662881521330400288950856042543215905129050938065151423346866054220638901760697589622248610547213726102839086389285884283842380781632452807981630343748569184726258777225157613222257358105333398490889300091272611794790026439270522999760495775739720868000435846856577074516470337438846171907256785270411920324294072820217873446505910637068015110840678116723686944127589769649440668207816036396551863919841003950443030291984557961872297650020434460297749579182831967170707168088701362605690734893150519683985875583510661640772399024089075335903515799123364685359020416997382954482657255710153422869294871185652888405618629358183560683732871534263187773074543072210102925989093345270962245000553026211730846191665031224563255470328067191464117745775271903427660441067742996694898923109394014591325468848913180625931144406710218687320444836085628066670003890002461046007126947958324430939011607703305460951390158327304622087373368690541896836203054332443838306479816326880773435595236604627621975905294882294841009007983923914010817365432719101258887555139591349950305810677089804773368752038469112625171077297417620458205990048588803229014323323493442613351106336901380011556441947433107843013712102314773974411640142322753484595339897419733026637331360700510016828933630374749266159768725225424023997666248814739643673634215766195935369441271424317703358255632244555330341106566974281585334807116133811695909966670823096849255925315289727803665785589049641631399749541547347098536669298636172582803628008528705530647357099831714966320563015677993796981255379154321736724260169222795330067941359068931460217948178618283805367308555582356720397808574888358827522112096203883595652602302522154849950411154131959176366567419729677084761994080050254364674795289417855780761702937820197012273577452750396693076663707211626552159113105147855635980636465567057357307140335474964415680413425300060731843918667636642215258726660271350633856630283797081505366658343042684777703213146518659007426938176095334212833045002440971194635879793760287760828759997263002584689025819505773908439330997806003313400896215405718199428504118945889556326053520801552270966042593867977987733611386041202017926982447281671046519370086265248323984110518760202352343426059466257332220708010205746245489704082850598235788172237257843864896961597212564221003962981719818801870208426557378258112342516082989800152176653460270834104261531803339934422333056005902024410743132714236024890461701962104805822100021765343238700127016848881725359924401399901540946489114204802597454229776546364963741421740146103923147869722006606315430195035636513419486336085008768396241086204165677375095024572165582407202437975041611043164051516384464587783641215469271575020926583961712871563105325778579107114249836409397381442018104188325038705350256616347035012333242580145785760526893145741176683749980315965325242619085523150414584206097927824694801868313366196419251536725940100706601402005338943525425118422269997131722355157210586882731678926851560028995588438488703413065506367723359459203619199036310011030444698629350871211962288117255827323395805172548605557315332062433001154986294551157449721838315227269328030392727268644937880566716999795680849591363789146723590318805530871246986255190988150856615528270782550340192692138480593119377083245970555009110925370568205183145272907232143689603542623506416145086652104467709427744538662216623895096581900782636243952517083025049567719619515460130944686127178673542100003793100117549094540189270053172484378699565568468282230003537511429124322885917432155679531419489132335235130488092104211855198275201709366170481686105490049067284461744691610211675446964874280604527207958504677490143359555801842697402956044781785376139451421233939682783890885872551651465637737068884270292030969219645833138256768682714136758432402552932685686742482608639987072854220608981859452625018466887559054496346599254595747552076588452394234928932667949707325946972378577928747560025872541393375942530336061193514937060324222619114211251802560475830615055538368250924538330369111403687273606028734232678267327129871671052826638659096160479807875663971313359828885262596886953195235981116135544451061940702194948804651206860503514465773578553801796476668376156568899567276337531039025028086892268411304185050844398307953840610354152145926383601162013883923591068231308304141357537208042759965400935032662700447265097221836396026082603893710385321837602588211198290192137059103025484614527260421424383637518463530586050430867921892069060016757609703739192598358284229886040617382560930678162676007776001604328055009372289515330324318262640550693666121131285639519694587162855454514649784684608648073834729145143589887758080109872187620049726686143076689011601843326286095177727084064670294439947543513914006469147844110804847105962732341545750190533371261999194135743566144587986201177637338180769913398052870762725103751763800585717813489578033529187606546627671117788881234544120996296249775847160171841800789105126767403686421263977974382317130349506557828232706128304810248128636308822775148097003618618775327098929752295565310412054169804437102397616987185730561151715808733322746975344927477061949517173141487755756192340242456470405014775397286109159484975443668406598645250956254021221333157717083342632417700322068510288129419278258728264767996004458637589345656351815438389347227100914438375740737541493261208819743833497703078305237290595353130920375858644261606130019912725356036987392181192982187728376730638039239036654293241236732009919437064516642730308367781544391295849017950774268605344319043707116926235319640082873786561560068748463245827543313582743322277722135205612568491786536105504760567516654313124352140644003197583685702117142591971120454113908898479608781290438013109465801603777962891680049362279699145851742775468421317210000852334314106824981198589506671771665063225528705871679025755458421654579641454609692428886831004609853058264286904973795376031503389661781857848205959926489240682659583960955911705934128399633193043427144374944038609713906700349448309803227502587087700145156556714595159290134123420537097095048711163492215290497977836095906325068450863955223197229384580946488914601329827916327255992538298797239053892982703140650886613993836881355503552296552390903856199691300012667427216303916788666417437338593513852161084671802522919021979112128451440298052584208877399248434950957957960766411560714947886003431695852689518292533535226011463632897752315754861482235854254222443730284568042184469397934238594151138325820959900027789762318134159878114173860285539316108987575252694376693324873336060453621472523855925805545252082240893226257709829344480293487587831994070932880629133730494883885936238736377094561991576245352420182759230552002932679392162404757280814314297793488717524352665693678392527946208954289264659530950808105612864925876167321644054509842524597434556688032839288470417597580508728440571952663908637446366491849890347496494528704695834508247102897512870430972455015226047996564353063672688235475180538011297978131068905921220946415431255829130425493558123499577912324596234029300083489488335101118567915388275589583238016667989445969264123031843762150837797059633150010032996199571351122327908904739543168839845742958269617951723656059479794236667249666949496804904810738587462844306335369893086613613145893953348496670065461700763175575378084620529839826595743509478216773875230029249722355541899025441901290476576514833817617069846529740947373698258750890051959442007542828892640499665163719054696504995727838555871616410543958145379575370926683773879636103445970537284009281162401316344740891878817578768817457085660660163032797896297071810141610531038687183762717067480429958188745976439050661677506108698704066410669508823912518491567419051974956706232172358730710809428866943964981694147985120568070770595300959360587813312161511705980788397982111329103124502081003871130459772231602960422686156868798333536010117906225768514737871772024488026296019049060735679156388027870094579154514729764567953282215333269019328625482166039968832028130483439424883402171846248117548161157692298679177895516295603011780852048240643476902003989846829935758097402798214479187891992678594653322920111166296104962024501910189115280413084077324153751172969475317157208229766292695838257597428251931398525317523359316013493401628238261962674888016811002284582065008933512549577848311728440463206086706482924880025330948005314240299502069044863698775918855695996251302112477181999488638462561074409828863825102333316178939182612579176157951582134593482039957897527131468572054799272742276520921672058230665416725421993218389580050648075469897145051260074085974278893545448729742536334590049291253984178748692912281300456294035752138260513518761446884192345250320519029074032687334657705660671681236153479824276839197734608409150518288024764560965503888541139376280806451969289801338654271037490223184189922912554606206982525300294462424162047775392922420504514046380119313547375974869081948816437851985873098462181131137320041808946900289516262631430412427475313457814335589164129637209870523671671094609743200586337564398779293320813410844399962846171942767043102806501224124233672960898847757257543017292766874617452057449231877067118311032745960043375956149332285914827835560509993403745542746510565434731010621199681474151960961029013623888283788607211526355927492760415658155865643076757035709732308402727070945546626859831622397005642482186497163966423553574362707465230527124550103488551959414645031865045573977671801455829870795708215796307369466435326412332390053321549845877973011426426609505108411739570431976838578851558746876539890195771032218013673121056603311018428950366409613170072425129795374885802349555941344316080204727997983749538662509766824968454277628934314161406942994706892149603879392562258832412104642460708848832476842562206087776071891062900336465182671786701231492434923610900711087294453152037336979692067399447157224445748589042758092788159578004194398708299003678146819451787151486549425240976740187116388990205503084459857660436952154867530030993833790426212182845840160847419571695055716963211450643612880011123141960428196599269569233249417654452557304886962422006241534973498675143384390331356828090129002822834513161094037677024442998151028208074283033695396124055591617194011433568271010650655461709907711513433813753561951902438781641148685927974132111200291359673787147303120233423876977317192309488164030245461308664791472282607039100142571983710254570363250819658250700001873344742802356719411070471959374245128639003298366326417924165523579695768648990689496065451737490269547856059236838239702662733687404527237459577768184573899518598612490622385245605247057347649261871335751242614744839889988788422326490157793276884072110976069811785348325983946730876922283846104338042082189888874040595792173710954462914896836288476222581034058717791023090856517593102136981472622033465637711379807674766297055911194798541436630964241401221233295250743991838871562070603460947956342383409191548204120629014611349059718308973042621323278430805682228392032035609201904219738921244051649991292857189049295496616542482951232970447184804028085835643427477453994168410693162065102856817530980789004880620235512281220997259928735214798466520600772851947259955004325511501968136052757041096784910412395507371129875487032517650214564256522149373186216679958167015289345713311792342738429019309707086600710485586268523897213718304758293715581650842433692613406869372901162881707320606801503579027244097177805027019344235724416843786408620772439749353757362780448226936282252278221514540660444487845022478200034707898825553288002994784782728343683625972114491627802352693386353598893648270795663959949923938055432932986815414412853009098492576865307483151056247572821966144234742377392821628191740243659890907451033181069134013503088258866376034195144488673902717610684952019760792246410036864795254266660736687119739406528608181139062446695377124299942894558217298362010847794600744509277558421288384509683208033468474996190924043190993306024709609879226324136994838348884666759481401847126498557575042524294015408191194463054675257109812562508922469924626957151861826269437428081743030328090681698276355876951929699553906386743933661313814883778143580227871140695227794102366914803262072615809844950545988531382452890154846941671217448763607428299424251956424863326251767664091138011702815571166099114030230520817098125054151440349003662643140904473089820910308245786167152038365643588326056783968230240766028458031290292832549065521312091917670656555319830748326942607232407285253259526993988498973474473854840226460501237608137005257310310933575017336501256440571293613807551647226036091160691938344672939128306732818692887429757472922208386535397281505267450385505760127911049263919472053457270873196628782403655927927738317475782316036326418561844542520386488192213198871735758729371158367309145611265370615466424215854878621233711884301498384668044062128065204295216074433816614711458726174955949784990932098793036548076835249896785882843091528308929100184673131152124671137070809425644453339729664154961391292791784378417049524649898199649795426943259692117546266344665328950313750370972889038911859231431533787364216965268330050366375271927153527677777315232567330938807286868619300637294061132644964847355338976108799587390573472923566435826417525770054004808102000088260773014431483442461118237670621349295918790671116581138079338643256254226473452905064048462300141198534311972834285629143842707729679094500003881917355245648538459736047970889655142358318822745896388767596540557382718247981375249719085398315816440843074159969096248282914868877867374892164682670886762372979741557223063021349687478991363555891895777387139511507427479357791917934275068877229351096714414199435578855545919948926828891887044052432243852716470602061592284414438384574822633133474786366015836275220720794101993965073060048080855695977753755247509785108825996564460714123283615494827316630522868664725699457557853703578096283606588470590298610597625945767701764044138361578192564943975911188360825800154243212043493381788052301886040994415226952284263385624925344982637629793440376549752393264931044368540319251137733216379578927242863693599875144146625745219631829188699527910927518728989473509953019478717554829367245494964930086988674221853482493024188986757963480679248023903499204684875451830641230639095294467995313780869827728968562033985339929886839441862619068982855686700165064087428017271217805498388049533682282367110143498445769616670060274933625108141976091317079676433317986601567039736496336921776352579526766292717362365019057371022345473615941747632410273897514408213653753576327950071247229433863825923087494612871792009756787823935381544551428253436284863950280195376792663172915985019860482109132768993267982520845406473872741492972939620945337057605582729720172244097888355616285351148763619082375969104383016492816269933817758562128719170106412787595714474359781192536448439998754304371508741649751222232664009614457418973418375990884412240107262714310788346900179178829102224789899163525456609035039545449838731994838196052730142325357830265042658362968004901660964737549096947112165852511292297968607658502464163863752089769879649430257998890264597819903237158300483088776593892685138453440936895912120231329955202454419154647671846505826704889472590843949387930220133798506911780456704450468848573477480159696564627465253798449652803996244245450003248115450171369295735736416500238620363499761995132918288416013151609446819724952853937884065372186454934581254463278056723717835561476204654902754519617142078756992026866294449307775495488745364488164396488706399662855093727998139771635380535173020709311707819933872233582863716480205816186357703941072994872327383198874088216230967660113314764618997504161237787654153766479770275769061312926790933450116232420636845724030925858458718552572031049599145385606746286415637350775394088193630924899950205546711699280241148160724946560105163271537758178038161180495125255620402413250332369264048771633806272817409942892548445166650528373296319147751134424114868867833366894972540594510534534774859347899855253198788149889095738168501692325549762098168049096956105449607730145155963190957030702724656420298694213724756531554900500515537495383187054066250354362174169250501719093027750215687883188595078522125626044958467590484147239140803844885491602122917139371707324116645419192498754897745920995026668079866876321900601587647891489200306139820866768327887308064070603317852855980415617281900116025177312486321950035429734142377694118144109384989214685563924291031940750452056645825247715545949545773881862470223295616167103026358309072484714232048725361324753220669063389193078140285688225663813240460318155098676823091344433538107157325062506421564489195110203061318137799410188992319685571855858384535569330270938519424143880958114683023454457460327913434077731261682426707744230694429238494908756242546471929133887767646271446288370685299735560657139617020687068606502310097761573556134580436725424196112615586265435894731293526152902290834675522732792898040889237810007200779594149425165604570581793118323640050214176841551230173202659823440456853904164682356213382887647882729044913307511474366885586110658606140988580604629980400992411017014881862652056901284353828717692174236982202083366959841134186158347453000150487903936263560586286911308331909261150343538442549437307247225196479042784394676548800098031995638776987974336999700945462688048421614620978475477427491418493163442467444510245031002463937820087974473480813495637731370285607154581711281836886890351459964966122905306908176921090837630142617418410428547420425415546802948374729174951922106005328688682099230279890746178351166650828129185392966878105747181621464672724869618037078706680469844265689182801986302655374814594861508779074158486685901269602777280906632982566414992085142178994864302759353700901302590501732324394110787491417488698543615957641205094176036610222911958423674739369395784979028484050631488281970530085430758891643573004192136747019083159294257747343631393470341206298262342643310731706460381762301544076164662819587587872479671926978919996972988184700592529799350585439932941226651939323834349389431791031826077562898899117409528987160113087648686197625336840612275676023452197523465556192964458186016771090101352565971008547568403518244784094383845927750756980740869160347491935939292562884199583318873538378418937873694580272355895778792907961627054205356265666860126197732712033496217293432776480095347922293343410633006853771970113197447383734128696292105861452000811971808479105433424354839636739518368752627238486212750774777571379326050244028333188284250607578601301502402499182428422618490791964270820140509808714358237596745073046310928543213378321966203328690621599432915427975109921619136376047155196617379536772171152413490964988847826073840645598906842814824214033441901798943008000969311699312110649299819436410469678132954519023780357318764428843634531836861368072693368294269090120798613210924328849964583528001884303710769739805158675302388725879737565088299524713058196558808472983667548954112233808275833794181651991955626449566091547677981349806287235882862452553736336103467113290730245565935928086280163061444447927364199372330847485398749969350686623976064591669484043082449611308611353763531793966308031439860114032552287945784632502770525331702881574085858997116986356311594979733501502198373992913083482724246184292180202976487421133304858403644476088369461868148351236851489558853171964253775197730977543624088957967759497706316965647466964741320800449006667204086429935012096491691911456662356234686688735758646771877341845055206691693431853254004291909893691638881205942653339912875599281791812582055172435917292235135992298963737179501944150652954322440584752877395794300348040554249273124031840318933354009035213184290302017841335006901966933234265007513568039483257875912971258418265099331126679860778987383565318945343174850418637318940054653438552470537356458581297320689322448673019235629706686342856420308839256784480157202294839778517019634546793417882947435193367515356996593119582354982575305093527882271532006135203194349267032136770274776693542342483979261862290962258476318759963421620966877651188824234997575382163043189788714945408006681290033400638757888684737273868785856601548455909828911463617196270659391509415296130303706244129091120140153550800646195195760894841116716120850338522390812546794654996261506417896731623892855120688078535383482934739930548813392616986412092026920369238089324441332074740111767677890290056484118908117875438741108812210825013258448589874178553808003110509770030376638732784831111075566879199636970311674186479668767943888121943052963961800929593442656999823346122840387373189343405626344729784542725638459460244178593058491534546957756366535832552731889012951505243922777176808796463138525192313476810385860051020859554701769096108200342703810212614402140560696686877165987443322671070118042724898452316273926950059167352253860177323492398696516082224558244260044551761303963086402138588122088391155744961837832984263263489732632364921663262086240931967882717787194095175881590674364667973954911857485415134268580778050728428342018457247645112541045597210916115518886602835050958574800230713936389063775754811778457186940400480543478955176039844924151604700876454108897444195730548217168749281010943000209957322903245610654991567612739788936190737117043185474302249439818612146168718722403155650535430141994554242971211101004446337166040843479315527314910917794417653953718363330169594662281960866497695259134749519114971781277971919024386065981316342447491019795441087746160361273377229108173183504470531702923845417738920982228314482312767538403227745176485059331023642821151812773336762687041321123683521358777270433874706511030905942841555311038465625806667486629057054381118550209503014374666342038384657823653929496842348678128109039471967354958740170207917346774378546064561928589280644443470088782477835267208372042299906198398653215998115502678283677096267655232011959627621176096428634944814672393344583991920179375703251748682301278433816028558150883972465389676946670100817765708421537953501059473522477125774063126730317620134061486471596483308146186353022345391435656331600889197321668050661409599561674761617517889992847809498017273033595758555438389249678289358219011640530685509274441719101280993302079169648691014351025842282976158052165395083036427162566288793043781579341158829571033188214391307068842019197003950394309336610546802431252757194056964937288826007841713855646388022510850160301465544000805813990387082932308459860013362543747683196604101223958490611702146800487474104377384852137489404501176588420875399641874215886506731110792637667930700307670513955740406636517391041092099821557495614230774705988658418169248036881651704011941858391964466848764947671265103453794119116591367155898259310959182456598498396085378404201378658235035752253233474804224744958857445819619499014462807219342610340129343788095824932677476793120364505492705058887126022864977064186321333801150676095214704941730175896932653958739624418173049250488836567624947009558196000272694507540221151649323336657082553681594905732557522896632949777074666347302384272650149790850841249329939611726223005905535887072368463388646994832921562911013155615417642095078662190685219882638258201070039387794442973841623692272973799323927050731815676757491616328211405127491238180988123568399128729592694649871887156084334236054117560250178050867127767324156013593691104431782083716422542399197075083447950877622252800723093012583966935630465097264621143505281207398280713907172960578520664324221754248229862347793225013348973210879452050706335492872443796152041497798363233796210832623991014344952729056770310003734597221672282350765652461503985951448467480107866447488457932362407284330186541632589150792134139189641258604192536421163320385128597161596432259264152136830081921608758587455035185424597649307759578864181257630253306935156234294582620953680251317496069992201502613483918971730807405941544122524988102936804800897135343633678093403368633096160243595422320588393333026106783484501874385120266699533557556324999200277576093340632905516609165199570179395284465978916629370309775797339085501665046073823880289180543384296411595400589546949948154877742548902837467053075456377707079902931504875117208592979909414686383680799995591950020232466820283384582224970187794804534900614822516783040378032007849584100428876791441796779100210099550534386621031467448477350521605665746882257091216994753235934011745806031212624021380990314939420680410759698899246012756008865990319932495848198818783982394422363295330920919601590433597845182848842271601147968796599115716130303043264790059526796290929215309019828911542229662068610646754056539092468599155161139648694443439694901268080920065596187758244511027044560924824471779051381545080951378158486747374776461314362289420574369395307433944240694820828934695206813280315697793228820698990112690653417854681000418627494943384741981495791171420559326585441612379701774154807701428849644858436263143904807807357357863278078383261837041200452237682681669094735376570945506015521852483001144196531165741549431135996450953939445766517626172283698680830743799839091404119291451650635138335225632757299962655664618296704316853467644469886952838679800179905807893531017953135174624511921430228832779240750327141025678748079516002750947755227351935028757711003435042122915288133302792703253637189386485110294182047733603027006829110936820672936499590392011270421418727383481102327342763519570772785781544523675688117160365623641431206939361009909285741491538399904610316411551481494921143416578982125313825614206165140372479204786050383805151869297368244447793966588222494948024844756095425043930633875394595897031005687118318069731783704814213465296605733134288419937929832297547378476412531276546494278218926441611680126268904225470548269651729613844620566160340205997877004352865449299494623756285643252110568733474364757788301635941457364223957611175290934399802510665373441652546303104177198177122535628355768666897291089723391540772142400585928463948106502418941961611316833272885886431989400004881778637850032518333091175008871867962758294361410094904613571459992197379316896606646658932077655749544884445875847006699895370872665694416554865878339815359451889561065574271553955483209681441737536577470667121857275265141488404741898357979769198684180614299946295209496887774012185819723280776798790553776255685079531386099594189157777980539423501363531886411246094006260235069982877745980239952448079936797455362645595703010584170610711212123448754289334840836456488497665813844381380378821257845894441754500429627512711137436680040800610513813872759269299748981252331719188533603521287627970189583505778709825638297483600539711220014505518837095676155950121302917492384914754252197615824062314768923702477719684499220833304393226857075914299497955292841036317824765110086111159884444506774536480656817896325100723883673335596781351407501700658609836179528434568347545596087166239618908828930159961139038323576809183254669602171499599122573092434215265171709468992110138033572677155999089055072157310006682074666967205252254228957389798206644097702916276914469447744076971109280652311658210291399669865050578665302369378031420239645595255727396108013824234190907603497183351511566343209138028733805730510488636721139501870225570948617698009016491263757832235872803329136845007823673989196668344059875692051976230289539417076245593392687519272903817412383619464677816366077900685847507413345776164320955719641800844291008256969986939682818102834302705343163698065771898144333681935480004624023842604300387254162195967721212850217576886235951999431129111929029654366205393950274029880314418583048570857221346933935678760235886289001805436301833715708078484556375464836856981097610966294072904601930459387591719477159727080445289671417769760818089851607139287772536993632594423097279118423726393417191769059954996964707173530800103057064593754103445154115127117341755422638313238636757613234639085192152630371775635968457458539817827356407701411635678846177093525179090410728591392828034109164352038865334249699519679634325768588333824332239999533832893962764406561514027344292442154125689317902297261401700830375765969402324525310289380747945399191548253134507867819763469050137736752048710742082521579323745932356101951389264462429369731636238259553303103816146249198326887530152701243081846266435916958437363183095868675414924460892813886449381910756827158953529304907368922260241375957439445794450149640016284315487723227963228720412553868717921223205182788312920924838770069583073499434981967336625239844023514730173878574701421159804631288651784423834237503508595694588885604022357233252332388295329084748453233659239898624009818942074471392011472147360637517423254349951819031629462923297568539229851626753693039262344487824504560044524027116074888041879850677483150887675183868891867753597383597761799242649027430798857439721963913987559942169978311970763692824647216595480971051373428320165345933562561173377812274023655511095297184385194999496848841621222846646323786374166493667304307433228438694869763500469042098994384160714138417779730605035414462201014447019681774525217518873296540933094723627390955439119445160970249385268322914406557494366590313250579994377272073062453299251818463670076319525740348307058082774341250129546837727868997185588057883323910735517867441640953674780075913848262097422711447525647057661811625829150002063715040871899751046648221380270480387202490521495848976425345524221139953207947323864453228269597533572701548918128513544098691815268600785322125895272999680596989425889362491130724855896293479153094217144343214187241894947983500916539716803230522062005712962180499594630503864087592657993071222233650302629721816790273594956647767663726084679989084890899617590255203623242987862331673026477160680840499990712446122160449501637355820293915425774642152145843083901772088779938749754607590410757364731687350472785880516516462342195106922712007185698712264158981819940857115588859407550761137367766886099132403682292872499428289104734345002646517161337682257651372113050359450882822178668829921232021437419492611176156644429834700187606692667800649700910888507348606145169491081852117025070924937973473844901918917766126179512367922334473123440963009263976625619437743173445781684439392280710349132328314772876222106817558716988064063355723577558024699124509448045852551168370501365599031802555923802263248835994612383672199947730281424274741277201238471359668290975893245753847309831311013282507252910816109025900443836263401548383746428431428896305752097029816617379181759385048219016077535326988053217343591938424031103937753187214113933186310075119466524322292486339843625467131012509267938829567707396351590931793498493755700541028414391577666131351028598115192371950314661744412641073300994131016975751993264028432084101571126502897585987862560978160886030817438871779318380669980316204584471751971779099707046617452330760117815142547636287554847317537649129648056197982411062574164878328398628415178370199955009617190410159417595177588719170173931221359385172358190056398009587512473416195447888450982505871520253834711915608017042339938783993855906354876499772828233504124581831936753730450724564258566357121358305827803036844699947681295473218396881665113673690532067479653911834809983640815246922385686211875473932099429728397583732001561268632918814111455183770898552156124153563799161001819741292620053653607567728936596006209324079836655561971868926798361691840323249402825099741211951408120874812751441144294752762432683055791086738873944441113933521203555680182082145181018133219502520867551242952268972610038921553418286713423589183387533792120351586559929172343703656276371624798069125650794875942618047933234544560531264143284362329571567424465006655572362349217383898534859408572299665256367914125716757464609309387088348943691391184671230293833621009780295391494743263633042229177343273640018772746919854801452060103796012312488620079881002089903520627119438630359955565508295523872503408195930612207917042117646085794918644124880559147541317099073092065634831022747159899232524618389590825974615946458349177386244861590011791329809452240508503943244800644474987897217085490521420228259134349261983054887607002745643484822094856564364601766741708567132049009334335415936066599465856218653377376197894891903967829419644512783685931071113130489847778744415027899169954926281380202658089802271283650872806449277175584278498085651518491626161741159242059489528391349298053152722416386719693734591772127491847953003371814880673589712599804545888553313291932157996476242320284815977120475774894466683317730783026826363763079118498900756124712178010870030758063967881790201323438739426543247460101564573820547737708647207493494119149008862873772791110312220367855144878297966533400605527308289675849811607563295703704410775792018483084036048996206912950145805107587828522092158828521330886114291768298612796515303893174255736025261194343272752907466539983481687751270861598397151510407128740525379661249226949356411377662465634924681479295155439361692482115063390977965992898288216354351395757146130874577939590007916951316506774644865449121294050484548930055136991289545471531256030334233453133534002977292947965409695187020032632800841321642646238078514258252654969143293399184354340813060896721632790869433819887867308506186822069812862513282626413609202223245911277284555005756043710214700603131928179771967479391199600747363698867895963050835736785190342256982146245020234417125008491220996184327615311273036996216750693441684487963046057858919849575116194498447717003107920695012316215958488509363847047124643844667217417837554959758089929721751487405427442296392844495424393086750334892299055399112763237185557420721486067780654325044116905930889053882870700469916980625034409585004689451799492957669818082116589763146233448621661338915177154940896742919486414675776075345071259671398378698845240770162132588164894846868086399226699441443859333778925889734765400214796976778549214189223724876235632117628069302183643676478973130569532400693896489180602849258198360119802064517005078369227141177776581433781419116788365010817252712965562066176111244476024523906763737870084223027550353913698953592573867121918681033859142083164431867496861940568070338072440985033298648550677814706702788673384469863157277344230855514547555845541101751427110031998180047287489345481164314465169946519252944937751665053928949239742609437319362429880901964557202301613435098476847367190197056534062136004783871861020996891756810042689959922698513674277948055854488737705419965610805069341935207240518245665029226689856347632388263152767005224356793307325171199890361714030402294470902895210332132541867189235563009481765212292606825089861008812914536117513375231708914402698345716764069523543628316023233501280919515770965022520315987750948355620266526981657271738909546972065879173154196967431728959459198378643622611747298925689028341651216466404397721427837142463572936740840914748511777326169618666460910120662751077639673592721024797364988303595204804960184513422547370623566311038964225948041373350615874644512946112128907249886220570784125054993116234367229260461186928431992406212679551320589590684959222351701344258131022559185005924377634882858031885462964509001451151214086373531281857049767406846081081070813206463926633755021803087590303468313401491404716458540698761228799372883081403914649501670760558687297879246163603286650009697601385094137092152742931728207916322521719454244782611171085402117800148116744365996963126501060673781243327153243747047393657799868226800985122693683835070185818988364345873353007485063778548132401366967940373523621545175668130414302988470843324279928988554371216796217828518164038099785548575683561868032431430167770130023339023407625634965126151878964706822663898324461684651052364017475826704247393045418546202967453264659770262987606663612052123592955867293795400780706235476443726831197770439868613653238902392962755531250856002178538360752978036809565244860987538791336895280988126192475888039600247006731834456626785375372039666847960809080544451826921019573300382461474520175230989263395952135395803573097005913016832780277668488055081345115746510693394977955438356097837197589374743160673871441364929460264827347411383611672852887635250876019075581651717716012459207437220637006522006464666350924034435189436541800342694636577934066372066195490840436573983146099039814384995917701225715901558614243606803029817444971809139775704187292501237988727095529260163669918823422522625029806049281736149126682760052600914789289146795034027199338017441974901145339538830409427636647721685996116398738377393726722692495904917693825108738501071476034543342028858199012129050216201959432701876269936758369857819362425781624017318023253993162363072025676164903736152572413364156738261567814151729218448294486844926160150322305236133512791810172855817086889487341193742440762024997486697976745807700941295874248010307999088569692726949271963317263961770521785901877142737948507844381911970276260709162655346462308452428973494728469714847108480007843885374626085187742019013308659879016180569865165832415827315553270244012874489097125845321511098477467226341269843499489855082382795662605751002700406293671460414697432949288698270203578788318885480294622014067869316835570200418994364827103448375988716571299907257932871167429561694597496450697052589718249605369462599231679015363716659149097750655994195728080070192025589346708240116228088475191056387661623511123383868667735659807166240323468486147713419858805470539530337493171356887543618172674377813961342573470590767798221351697879178308923108490837861033133120472842101008408923069409589957842693492756056147227578815743398906254773159416638550671639922216152868030884570149328504950068855174373142781887557503569149072080554170745780010175825735832029422699274269055700916445039768917541019804938375110635170473686517936205577672514046020416187756688495481712246506679790615727028628269488512004303645851284901851261344271051916919494535015523128051950952276891416723521372854568359004611948998624499099709078083055343197199669621232366995454567593539595515601339426025981720291140871342901066453973798109426612071464780305789216313644966861218579556430281622976155235174761471302119273473438337316037849118134713370546285651262394088752299679433677652808521945576382871560512933334642484770989455375404465616733406527946770394508435107588165460008664608547887727834557791752302466295535674584291215753557713074706777889501210778881690722650011985775103715001714629602561420063745353968318203649968907746853311001700212460638587966377711527816484475954156324240181032323227140468925230730206016631920160835603262732836552695525939486407144133417432780110954979005563057609806990431039136023931983868145406935221024471766383160747834558227840104525724025582137608271725542992328500440520006631706170479729493583640224274610324416461708662318522054270885664980039664059375461440611945953361114539312818104398309918983975034430945643436801379740280823727902542093581299883669526322534862483127432023898452600804676237624487879768954812572531609025046655910994454017463127953332509732192130606850511343605691929632119549607420386747158279668074719121511180172588626697103358560938998096717980582303379743846986350857686680544722044935754362498126017106079511871662592421150935248299690291215383703768494488333044204264766269581471708347502695358827491200927174421825237131847629147258173431238184422725560007295891546009144848447997674636267851852867693463958688056664100557592430539905258796433501131723123410772524893252443974333003052741735512249466247074508774207665175504165472753205862692458674277819524075468321359211080108094321023541152215495940363572870743437495699019607062133751569676099460836847643682189460273061762563377404118582604639510864463755572351008764949160058633586860415615668239872339416304033590976650041895741997464744475766520050098716964768201206455564409253632780351789853506736369068661504424034254335060594278850384391686192850306180390271998902543469096526439513225781267535011177674620482470719663639557498190231554963794323816344498115430047086392144763177826676312372463481818388754823804597785177787004361297501272537337114058415407358055813602697624638963241769114540265737602056598439294019870133811099495943052970378079528462066599497678834998040234856548221001171892167723087108131610849561648904152371615401507361359459460345164974166308626337732653138888310038132415942752483120405725912759139539972265575813867968771065769426927459210619242757532407119025632608053337956112373162513697783773626772764591810558545167012646657923192484630548579002572307606108593166126287099734399551930194374771031138814319627092214173351503798171503989968092955567120303738841786277913533235250221039322742738372017569197946360839119588981583987216879693853628878216448089768887049981256141275894688197853197630525189610300175676173205523169098282428576360956257701884778723761019170754113399900658121267986360594174093945151657147878528287960036905114439372624775059149340072243724272076152894143650074077325657706422421241792260625268622490762731288214030483469095389339530781765062608414949039359341273099428613006333692372413730945466785071524943366025005045387889052078783596307392649619929165809442294283330883415564960269622026539680698671222215856794489450604094418818649855616501261389531279311819651762662420148161835064893793578730923956087169136162973465121596700658666196822868816644053137895854652191029049970405902622551452485386740699338404203245122655295801290577110717076325502646641352293146913696577056240080611334250376139222106916275595907970377056917032756254769431335801720833638858251602459323632816551059287705031111936725746506218525310088483686660193311535494330284832248335352811844359743259935112316220871283817528688592782338860709760526255444904220734254261646113272338192256698705352004391846974366497427521900692466929260734997015154376049550831265715069009987733529974620758449603672151706419903061774669451355126386838246050876676204183967300557801045083458832961263411142208799210697078779387183569306868688303874021660844453985648088848304711816068002202788121659087343330018593298963706415691699080464828294712112680660490983526500171971594272696675305157616908136601291813725962103925959566039341729512208929204400463091129155909356099272334879593638353765372207070112182775649601866167667043919861514132146875457416047704871548084482239640111733485124109868693204322845686322796375449703923996423842776445908179199800577341242727514475914317805988635491469811773987629425190450955797987877068797530205525355113198628603467583483241293604440711903118134330546403166360551457568030493006806371924425378700350822044355021644832530545748630980008705517594136501076415497451880320225530614609572515172362950327857154543813606212106374855277332428563619327603631119803492862342226429101385723182578544829621696810919179791647321831060700352228226381607386967372061777775250613804610100095668289512550024478492732305596625565819840134887459596318143693366762293383014085414572176102564018951983255962777664408170798855047414184104180752284452081561626143992731003627687526588164395381184180390011739564168837779302061574433110939200018117313791474112369345788393090607518358792397391994183360733210440957357001624489891402753091666748539441557223599709558587894611869264515261680802385296621400305472035015137462791374619841207225543634286147562236084516433859317755664064799480901626973826654212279433283773234805130990586508940422290223730720971483744665063515190026673004760878150140454983473339612773480080018008945477362147033167426677845309479618770426501870913160154456120136310323574768741543603243783878845355010674097382099307702545804798604222451625530221729616045388749309385928664768021035174039353197843551364931925105392350868548458935494377785272283914758373621856109219153074516789649908875902819056043703526059527128379641005512914645240646393453133739676550363031323487062953582797078398637544716492795945486605826573751390849997397527978173810701143356767630652202613132528569079200141770963736977127795971197620259044754050040767032491953793676470714127001862101757965243065873876308154469627914406263532344418661208555586109742037365451022881006166036970377700241437632304619203284927334561463688452740831381805005397107571125288587783073230350748683880936448432985128567318173521959390842355601732997280633718649717410532162386357408213462271669228298625671204679715360271706007303512249389551843694552389005409756895992604231193311960799833107152493165325986664209024846928244487986720297866386320315124782077134580250823183297508521211890739088545758547927996825816498138817293941370500870279037779196558385831283654340539344982629768612257037642237579695180881299516169771171673046414277350950347332088930395912816225357423320129752761273014756607950577479303775092020835918055677418213837068793536318931525797601249810523202918350918753087370011751181392558207543319913458962956635677044460082503449413225330917098971434431484040941783991245305264910225543917932506476302963048704793978540982720924711071234750865881920805932867371059903173931185460135238002720832207906834536407690815688274738492862348744272540982141443258824502226784436497829791996890525875501759964349261340399224291909535589557807862463213199461416951759617655803638955691828010085213626500388490508317977576194972396405741367609634339118256974720801548449134551002018409396448746185788882020786086211602639234837335098962611597255536798512876194822177399960510201837519153580335910172112883151638642245173488219345038219996145662452115889025327173659806950812195719442194071656615069416444407047629741573844658791754718121801870412514212150194804256689794148726088454385939980849589775933964663564426541030556346966758496369963171532098603343408255736290161479213842314286686195425835035023252743089867998370151542370295439438568151929561373931364252382863532600988061464614574858950528315789779594234241277869569078768567938236806699224646856891404349348796265793779509192935260939716802438449716862367070178104348062158756342969702618553984283167102268948053383355403633655374582410774167137800346265249766609366056804012910646440661641585473255712462175395859247436882903381249274499011372469349585661810711329460867602392074846725422766005211850601424361846074135518106485732186100898610577106594662124551576361100435533970559866618028378231320176872921402013372145187155151795137664238450397062177196568363103887842503295204260065191762829505563882316852909140199669602162682655181760055788312686564792596128621815832799872453184558795639110010656369752986437227169392261168846176010005948595195425093684036284983195522188908144903116853506038016298637642117095357689085819555543102367767057194071745421814213177677213010527636316245875019677320440989774591952143936641100764719807934509248192046948630928890909908880034189519685244976910232962203402290796148789122341385723027081722239246804838057713905238290723564414915536132612583591005250316941439919522498606549296021472046723423666823585670515766284317059384741294785853352688448111892658378850339992780860662111871692121455236543788956682258915598269211294203623406995057652440346365489826641235985277095324256643326315699153481682640921570761966249624163088361917754424513220913664781999050126365425658839226410191417708388296290557740718479481673031501734729184824976985669722361202743186827570374844263524004470656721994653959547533333596887698011878865375685968164277131901135459463486676366128084333443576771009953839621782008035614921741933484373094780816109438882144198671411617486789624593729981854209109580710837884927657811674919066480370877095129803630907888844884706756019659389003837366479408347805591638428774743280738548385021958434085581237676089783540783180949075031467261018914905559052344410824368905916191399504509664827669183109820130654137165557751814554237596167315791028275658642989054371940678215935548983358600233531262247608069139338677375712851407750806257421689740785430402221466267540328952381900191168252733594702772479572860630046342157549201984758522334016845690640320635491352963797200805597870996281651161186112864439914512119045621357051208504644926549374364460814598574044584114468087560144353755367446823149410123530499157754431336729856570439511717943551749065242494339594638330270998866971014155708994316803047122443678046749687440744044981647583777623309241669582010544878676341438073917122571061336806491469635506299715321867752992774864247518319479953573536774593929116491580049860370361758332408110160175707364595383408850794167054913717376339800210561992063961747115706550945685286112801048236554097468874764606406263661331485621866699958926815538570770359555450001880324001181815943674624412457187878248982954256535312960798147411002621293170826442698798639975399109198814228979319281159738278493924760536057341861086223094689647234564502511719711804891640117455511369528305939142904546552503373935299121372817619457446279293006674069793551931173582211622601292356662964175362942758836384220554725444269787734359542158424720956227361729913597893914126330674409693382971651068591499992561049152454699293591748626013917104538310335453442105999985937254422860102578546514568631283727162163074072048725220379607245408020730529983953916310770853436790252953717573281608938651189013309410304810984623993246599597353716061198673610631480722681810850604850632857321618473467032335747348223234118765954920798765315965023201154653790130289022178315258625292256207035124466398024263137129221043335563067768092614800629156973574174858785232779005336335470712176763065761730761616100806388354477285530251332852860325628100935093991354875980002330213273140532024228814460906523049523974610352441854407298280761857077986714691338182794729109017919625558024962077393622208192498853857839507790461475424694356172947217466878691811998202747871633252756038849013950011024766311020584135325157190199043057834415177942920126145060020620586763956468086227876550936148691116183637791506681758852123148310490472054606219150223552876932002160013896842617816140503042870690869608808898329572579446942623022199686266892754782712764129970967671966365308378772858018973243353465725482188158471016465379536110353219113270481812565699140031590712261047901458358807709363233399829303893563332685612001038918126145398877153982016024838217248384642836489994280272912252473258416521241835667791516644800044629875397730341813918432492252961066669758333817805305127178069040218944988034476504151256342931175592414823931311557575860899128878319448479827398467473999554333955677890666392494625215732626885468957853168483429890487095837703271715393780743319123351743915236489808149654206877527314090921735623486643640611471911520611163586880789728179282043392416595919781373161813053722616204669121530868523890976171564591129587449312076826187647151210958541075148805533284264590235760549121200194992293250750568479305579970528302944115928584145167501041208099212238831828173248871520653628293922114921796678433660452643484881221031546878743953214482201890096083938984334084754774249009481055065242590269131203438885850062490844547305878783935340420073117410256036601224784183150726908312925682502238583190657352802865883601208512108064917229933911615253564405648968679480678498426069387649440115240473519588624297611803798744467433995134112826049502050643295562166834282309125757080432037119815796027984366582121063742129221125063973710089388054417285597755540023943243480703113818178106216612815643721184405853271001156462705903260492425386444243416369429058160148957870425639436091378100130859706346395288638228500494402651489587077436580886896560221087778949732811991929705239950082609939694423685423456893207735359875575091290867291942455590379188874487447815280381550320111343947578776691426040087210733798107670842852369704616144889874397181802190192314575400144044726703590530589528219662350061336411521315572143712793236137989383850248224207174555787961572541727001923509982984059925626319562102728124350419553765752035664163492985158274405840423213318219880422140458075971968875084455513865106832324911030590396257062268259160054974131092869142684974805905505909331344426964760659458570228573098529287920710336685161649637997577739023174077280605601691455665834182457522930054516802327063403095334653460590549747731438826164788558915688248395278638017420023599726372803337455675758350783448386743550150944020034957851709464196668739268888758683260424058164669297649093292414264049581193523135875804265049345538824511871758967517833927956331752262813975786613111884800497345367817763078840646729049640014555277582895996280977703753910899249608102836871740321034032331049924691290419962841322809796822150007316169261354011660097000764289250890452189637633837906944980586754683887726696586213508035778940188034603648737658876116524861029677551142078818455268730509091546444746337203099679385609957207753991346887048140634127335071904220610364949074585034988485953564467598078759964732332237877496211009617853741632358299220606819160597455287853261426383206325551998648503905339520538296869895755541950303561671144938128773524520329862294413802988009123926031444708953776756805520783928031362718012472429889000233852555066919411736327169852155067868242733219517849817568627909965277738023726616707572329963551778974355780999172164173438772011903903203888057862904801780200534931004988465403622672188314186558793715058647594918169061926525361032269355626822586708567521390098418385942450644851845976840315127534360338545954855964161925897334889165714506416782548362286725696563883343651895913718679268590587411284786838069445510812666687253862230636796476315094574251116645242263065710156460837598802843294945611605470188044556634819896693002836959815688589980219393288248244692337169503607755738685756920754106728204389137794620350930947825667874066029372033058993281954593067230133418157803252210006666815991004100424050205401535087610977276267010457337696184739556264436778320939639861079051673693195650671092569586365652225756487593205226256855421700334069846470896890069120901895935738619265152449461754599585919597965979370359968288372455276105024092668595890242935719715820802635605276252111630792654579454000124934586645738566129615143703967831893722373720266330316198810863635182830291310237288511578397942789154275194979526185663655890204698399662559816825866450627055304008385530286577183611259422678974921720029024411977594138370902744614850119700329358592792105236290536674649141439150043149112263955069351708324903920533208770649118283335264045075097875535737548772025798833918986682191092518194097126673024678671161464715247369282423424942503882881814059015883274604624100858936965137184193453770901970906433830859709825097645198807925023450364157695475637404115684816183812051878437889463561482569954657312267436749159361074664145031948652314598259394886988853748611085840900269167153611072335051563018755019437670113492051251222769328944502769250391808383016131999055884616682208244772095012878374500891248647926872136172069933150742582141159935806512247601070611832161663566659521893803468438877608723813115567255352139188564205194356798693300254514218384564162854005655272598549592658650211731693630118013237958792349283446093002100850334655544002783726415658528252367358951721260685776695394880550357106617024389638321013162599429009706120267940831040753221792891469059192461127463076719313226429100950450257672846930856715354238727435750596533842579927073494032302590720676628063816758729286079961424244606503490252332569434508196493540741932462334406785946970936490038474124551644682027339461778502368238281701006721678400110273749104767864689215311654800277410165907049136395050892779776616406714032070736951157809917896141832654582514657243107412296478160460750383790751167368873710592621307696385740065075173321114243611123559724238614380516653487162878799456745538678872614193969709727052432774743170036333871944136913890318853618984779567329899465994821602806049346201393484253102177680395103017505761829222022010952653720692981247927747545489089627253529228502098718951897037200282561513561887035320967709292375040934064965444214482059617098711967674067188461263349850939689491933296194960362063171166769370127280162631130032105006026790338987801441260678514954624120836817665828144483094472143034100744773331472025291130665198675356923034125008405310372713861444163869966307878980262414270232528165537784132463395968267564498919821956927627449605172235314154839102106962992678498271552256407132126324145727631892408151286442875923098811391494544675613356623612175029680259830745833600855474156395900781899579299220136486449086475804588248258979102523306255481243160502182439668559353014804648071821418537872372391146892220207708732380603014111398473688524265650996243871776724176326159768966853485965750329948766814170416955546658594986364454534918882212090053996982643486409953344821215945486137437816180680267756191506741753967689419280188893659374284616331705311753897263957658313497735947570082961712829236666432834713749096161983964036257110707162221256226019757748140883047217153306891065041383802226869901739345603725078077137836958105079053516415794693959350562947511265416870134323451760419954928064955852225092915959200833740016261679488040937444428507034921997075861167701261279590174132853876619293461822260697949611404018662658774680670290410395287306466705450148229835276692243093321513605762093144665099530457145212622364904110961119168134742251365848671505092115698630411098536436976415633170458084534073805970336231540969395476401055469098775633441597390540912271761510726316411952918754575846761171449329260174193441555613785032198808280751873822487200439797605640330254876611057671031457771418028317609502584215436500097389097287229362871893145384459457206440072704390165404013340798699747157751734277949132381190591641634793868094949039054073582845141482670727587142192949150128522903187717404349851765553979548066188243520808926485610877863215890570947976435524879625588795939366411130041487084892090701007274183784335745805797103453249162572369333670394551058126681289762567881982913994660191010271764165266387917176783442588869408596713427314825343130523832642485648407650259552789153003302811510049588760262033985537242589079894263118749735093755617844735690830767307685963821679256902917853911806770935435925115873498418038723229851744121181004186615572960807274659545588633530343339798271651512385636399497602811254106625523998326559637535809605634895176057283354890587640440265919744392718934033419448346778278627036651488400761629551525926165149393133131616929752797047238804427690252874327403744261881767587469185076273916146286790802732887510422276275098365131774698978473846069353278897757952814456345424343957547123593712229156565000781821920297995004905926513518310580897863536634742521831183676905031870147592861381891343044935456753449119413832298343623973919438105171045578644678410945597208484840225787470450825343736838526951928358623022815395834838914954996460760495894451615555897266164582640632455833286685885152077429854068256008706082069801984380113332134428816679581914226598952017910247225323851000040805959750174151247261951297735083159168571852548768313020294984392184659100937236745312037499719804805720758142633355107996178618420012054647760116074664301883373515824913232500253346261054634697276937611203512984358024861776582132625969946396844664183963520189389072042382638596428365637835055973255246135434323447155037953248699231730083822907060741370587421503739725001898587849218299642086983315610716903990321064431206621836749743910086428259517140713738195267322409270194790365122917647908733906925919809732436960148357404255372329889322714179278851140619290353979755851506873637686293824090450540370743649212505246684417258915740969104363233638172846804761598477256830015283829127164815747965229355279796087914384438188216880095733907893841843228233113901213448730819146651341926031230807158424764908808101206572087206365703057565088708573635140521555096051477007765901169539224051125281536996379037943112668920935121221166053790207698718970879874850906839536546784118385974399426534615034366612960886657243751762389855909766513908628999192682296415144032526096116834926361029861349228255547173670635989410659790336324810599835559514970625893957921786922818516298800007471465702919829878725475985139285411728693786872278784622013975604159197473261683454956449026822409114707286232044875765578394618813301141272728728419505464755663709674921892007109163179085189573918244131296371068262002718255638292820844019596934124603513874534138791146391449093509364541109533650084386181314805487333981910419676221402628543082466808147426692908494753243120665563458957903510813821842965845880862640416089772580615431469751653584811349498058107983395411639758852169092168969643385538451423804540747981109917466445647451278971018121428548753535435615774725265576945103391298471451780552451059174077848379058018515503711726326111289941179345182439323468142802548568903759985349545318466785325170788598506278005853843640463349360941368534470879470283392395106330107529505546049862955189630924044891577740145235704757623382877842578969046437458961498516347723106453912254579342794059266508638301536702285132127403143676797718371772741594654220467014411630866939399978068920597075356206834878884184343542065049054732875506534254467162620077038528396049190400312674919480652295406522893448158922525105150986791075282435984425313655842485816891430564253360060481590433708455229907358579511306661723418008781246229167300568089169829619169126839028850253539862966750022942920462087858964685450234479848148572408832074761925798775604696100866418735988688002458821418531206277893300094461564548820680868132306128366494153688575811621671754071225319292065744040508717403175361893690809990742215600979216990667356860894264655806046799938805099460891014660066337283247752076387715285367459527099424139228605783812345683696674511404699499296433180007300242796829805084388890711042135243199427346778516977597466166710376361446781470035209231107857929347198043253432245992078795786434448447297500072215980901099593348409013482789456008091184998180304077897827262978278755305768478817947664804696283542269609028349481775679781453472298452217159862224448087154206686261857286948528418722779824254347196649316035950252739753400029457038977998598939140965794205599123805659042850664975667804880374958960798965833559910266324646279481144616747305200146275843054809988716806829641019377843619905571071451752059362046984008365461757489130390421824524914346486752736419190919441652198779670579351564952286798773075161549176263904348747179147995933320347694187044595445459631870538423030403749338220102652898500906492489574868568211054859192962008506528347989380241141944389711763281496381446882933037410793740732406807485832206777610241814817410471222419394237984389097846768424134969428303743141595083755541670066439185730798051948437788266300062174973958175247841530820319721296246528704104579477185070213568019476080530503335466664618233789543680945300078819773209122755961414593025474678567653700113209281550870736090789310776443107214499552088123950251591496851244405988736649951309287468161865119177957902023677062618723324132775744182348998695673274880956249577243090992342575525973841756203178607134769424603258531015953481711955033824041440590365244736896585840733582611083130005909593555054853346527751947957444086229956102471589591817055487680212463492879444556251801229385892130957370236226844441228202223408804870898411587313829339476606441639849428078586413982146998384226027382252458404068759283589554928357880547002143281317269501819636686568954239299146786123649253779603216920429220561534478914163742243658757667822627848811034496706196921715210949422552987625458727494088554418012501244356882460026441442847886870407550470189382313999763659958868841552522864692253477741743317901756722668429719661261425523486626505205227046677609599928878890989671263902425040444146338503927734318022027732876408243834841547787850279260160473122683536551608787166728584131132772035930830810834005517355517716968763939038156426026577390976360910669067486540720076398224043851477159575362409378837163683465392158653824137016864259600276954780023718471156123869631552207550355804510344940034229475500596371352381560863370134766931881023228980165513790120577959338869504905459133483348965059509418063645175214991920840587320071115345390465295688615655221793869036369149526911340673275668251470504616261184598198741537441805516022581369261120792875789482123160199245531521856892067275908696594765311810305721273064165616084323600163229802204445618557725121997595225420916108937935742902080462021784231583787456833141564980541954995640287878564240287093056280266429827925594203840360079266038943057743849254817391046760966439198722662787409277474069232040829662899247490378482662954255438126189782207034554921043702245313891324705478409200455681560406581269193136681055595293545966662976737682082824919678581372626615851415688633031392099158228513662608063936478694716022128261950307049090885735563697765909436224530439345488908439055342155845690967904281988314926684955529493117312319998750565033443418804910228268610966401538069229999174600711965450721990763245075122968356369339335231829456623436453940674174390877382882834414676507743649484727567912332526307324552899054006377765275531531340960893352109665788407062440199168587286556445048327873388127015138743299299966696356296099690527591640399634108667164915807839892059999345498253406239793924514654190029598748448385514605209297949825057933396976091839083320361948937794090939885543649908264655267089532460388240310584532067516166035538120413999134632420951340033313781829575665485170647982843239047153524354501398616724899276785499937566265138243844254093915727521979595253840431794664281335151084522779752094158874031546305779886161852457329199416037919725581657172989264945433358795671188417343861357577190134486936053079493919700290509318360657200739559091740727743731127477931188141481425367933368588987339748011991690967954529681584672024261534556679894669114767244375147294380085452255525213609498598516460957872985700810115305131115834853099029629542142460119131556442487272283413065968089920649454959925586375728510941339924939685506451742922688027613801685252444218278267465021715831447796180188880310349260348677883396802604629709239475346238430236279923807932389170825937679313055998663441571827884544983311138385229327622499994114325693634234419370156541197521646408203757617130999391475462979522810791369338687079463455696161994662428297973676926829189486211517012194573959749689093183950427329630826699149086761276388684851045050382897529829563140939521464025490751489270289299158542217697439574654540536078570161375055637393235181831697856558002185226282690779181106276901559542206177414016003163110235549591030427445545753657603243802416589122089702518942935996379113708961017849794904754732477599960334111215578341127083835995237708228077205477877620251133870385327368949988528378842347186066200565893924051569710408282948506998816046914226208174494932699059092146132978050569395640103559239738195780023410718401776913096160984747322438947835317571337927728215402312254116164880658095023202798722106580174232179935219269480568650032044891142943088827369260907832704755131150469516666007755433246101929828344259747159647964634374220163241058963897289301447739403763176660804615153537221025628172347601284287617029902150655577292715718682779177549274289567317246912291712295908862346842752058439430686789922326963685203386923338973883485329165605603770614324746367610544923433471787676391397593662865461003366205182219427185782043827142733996912350836169249426063134257419401908105492796545335555343234157034770807535918564214597965949412626536107074970820829641224094994317294369384857338701926775578617174319196645765966495810069744040556569872073594945819590475199549226663279350262197210286065709056614939711741696105473566956873050910984627145885254297092654344885818391416861826423409139393702112878426385878262140492600066957219048170016968623054416166800466397715730464847562776130738389455889493432919393208971405167982058571446415172170359937222237560595105897109800190269441857366851308412128833389486158614928433610802747018868317636634639056667757473122717345488708297990542761824637800156212450317903779628124740516198282905314008591744533874850211469596003292945350462511004243677070455802592737645369673583071660149445101130399494354268744863864025848165278698358032761108434104219367160536778836812922289756057240756016407655975726423695031290899292530564871802168453991355992116815908187542119382365914119930303019278659443387323131681177742879880155424902720511192777892202844902834142812670148985513612496712499220543088027240671437630449765568047193460780758457937558527999467092048145366720491998662211567001942877918739814541625232053834763353639941036919860161606204695100558457361114730833128282489714103965766513355081815028635433369074149073688220215578660601084433115379313296919311181030258845477843217932446146303168569123772794885384713716227377015457614573320081309164550282765235462543535812285016574907205118668830705519227964498213767457668848476876440367131233893041588899199137633040822551483744127894273974642011568763866517127705295498687661303153626803828657361478747580962405938740369232357241042621516654314839705983369187013875605760631400402199400247214482291358317650467381695988217718552906024073301744643546421106878305656736220936901037535226640533037046568897966173050010723904367450629208408472912703272689115561235168583798436606240050808316154386731006239312242086415830427636428365691023275214254817836922221816673694797562075506032097661374104494379444652283976983073923353861178413279502690373515568433092306286381647561292192288466042422081068256851806082213236032732712872472356514418343770293297206217589023303204595549961696812986973655113096240918555731375917574125116527431007941474628059632770748361965738655016163224088580726629384163091951149372095438257495659233162721251016931142337764822501397614918010431185145285253631728162455448241395464978441928187307031865475234638838184525477643730412463343548877828438081072460616753042331345875025312444869734551749665478669868707322975871980370488585354640673419291704286614927706699709249146504409432712181654880814068805123636750706959105420117514535508980458306773200630017781838665205568333248460287989389630133774718553547111035271823561013349242301278467290800846725179575696926376976931485601956474863383303193297145613189488877124360830672752131644224283908379364322773297279019091279287752587250315546838227599795950825719110557707560154185028822593491734208920450061186212156483808036496787717451868686257025065071637498493759476557131614403219778777044344649541555325986116926340072319908977410299816711203922179237088941153556294858876432502622486954505288899035505699398855046906318527674576425061115928223812521635490982125311152410850372029876422590263127349547192726285013874056216784407006358773635861800495290314920390715336331947934086474251015932848130999894321539648790468218004536690182119775337760191666986233073353104112328216949734402908622668403491772558882786996325387994302930903581402933725772891761407220506518826048097398751284943297981299145828941163456076870522351663667624654082920409647636603966630273722404551337852940675282791704636212975457977662121021621571938518695499837501023473081266498667361096408038772551376311373937048134128246063187018989831402738723583920916494681734641756664549377981959255245657139611826618949245640402969357741865809200798508078115231213568966376779194453083477782550952929690422597346800024624027317361372573878409707730176305146043516419490024379894362336003641625332929340385555313936826223427428859272818840021117156542725029591874146409516878860771657391103928820492558049692961531307029062841356748325041719572047752014109291251335360188450798299238328523743588892738289955329495270877391262095656961611237599026448764712911486416682031314499534390174278781780936016918694914382598304430241542969855673582312900104834456066168911630107759555025393698268965247183422740712737548279130947800653158560451143941361244728101657146968032269484840914905632269063244807485296661233541290673517321727587252492847208703678822385803213997407388305917477230714117966764984981191110072711211557482763819375479027114772814257314551372905962299791916686632610045851562538676600483964759199741907071644837372542451672519809883841693499309518621101566218399936820642732502036433224088951412901123912756557266087757887611298016340887697177871727528033814675480615193929731556243054133695279911256927110065810004942681280731929047039352132339275830643978209609838721651056625465888555245286171300091209700709628902303175932478909481186277323923176264180575488947104785721698178823132132378467218461202170298110074822364294437828919392098066876161652672738926249552277748763141076099830506646841884753651434816637628204369114682908001811163743148400123357292808556236871895948906787910548102283495531845356151513624001948836730725048554803289930804868645510192709118365507030802137880506884934939415767798400999964689954586044284135828226606918281442562299722682412877347149328544422053312617013974545867358411316466240616192894849200837632559991035324575685887604673441706262945535604207971836542925097019568366559396961730264925750049438719093210033196256478289226104664092794459377481474443768914957480869643501955512685607575604462789411484306450334946562373201040452202012480537978301530372544133907108889713430132518110034581095682752020774832596055799576883916994597516212051139557111875898093260694562915740814562623771930699220820591205625075444291786676076375197182128335501581543140539977063480517474032643066748373873405061324955851723637656203320758718187431498066472711830547780178227424096820550564332405667926986444806058558147529034825012160467203598445197446219732454862683430202034716707896989410035934203916261905300282930734179539140130170311053416044605843781931430469309639515111060329032795985770828867982032067672775313075117686614211606372002715624242412700971903633629554187728070621003653984043541475793908401139576974087060759562854069975022311039988605628414066629259803887483684350047217964514500873678868494737634269448872699525674919071714202080426381087252696812971652699591292018772631254638842933290296390120460191332419305457961426160527060337579913164576783681512355766109984199212909360373045905202730178961007512096467534988465339082027143028929426022707968106937279619994077006551984466883092750317240001154531563498365334645319411232650513656864143902599564698193523916203823354873094508457093112794310271968848953254403554673971608539912092437013656884916177088612728853076444570950202693880836163167314541087776169502464231291956168219138477210469996113294129717314436464142796745941483294562249097042400822915901623077172285949455193058072296111690133089611289469440188360445381530999998137053078579915369404968099037263762607661899514795321377581913747154449752845863427250448710177534475865401459618275963025854910871396086271188757644480972673906909670672746475407371030689001141710100926802664421681169430348676754146472601548304836732158831609388282917356246509591736016038070829395431209086477406675380188937139168362233221102690225237196962811448420378110825772318645425403619701391582893887278945928509438644169042878708441455805800296370843844264106751807402816799193593272720753792125972937705769176760918981966153080634925993282843744416603681311866683274763219214318241971966668981378815892246804017822992793068150515569302224628925634401913118305849708287256987038731116526765014364741993043590683713142455440032284626636627981693209200812982088304985667812197666841381021426503100938581148414826209396220093577882779517813055519240227968337606851888487496463553946132005684880071816015911742722852994092127473496094672948518503796002004430389736765925762096531772825736216285763180731451238305083342368136190763673135923118128350719017853530311465822655930543647300957877259576307601132666881112390091668553279900245584279566637997703792097682904550424796145336936129883008844070274368144032741500691703314102155413001640870844272259093505360669675878395883771617580561932402372372291039822530019846034452727908423012014857879760402975845857865179258926246927513238606292023722242539487088282968536110030012600066312358248036021994247051598395974862530503444235772291460107070792448709571050026487224305462022939126453294388099892009166966646574649967712893476153266073156687021581560803284668310774594922377877834394423976104912291717822203559840739058269385013357811575652523969408195556395575690728954987317594246575241105604047544837421323497188648262454029568329673483380443494583612049723029679733115284575280338642010505265542526055550264435845156688564070667999048430408674111691896324795168779985066089539214098912720561787003166872241618159502552779521002354104461169622464164236416193485819787071481629968992282064965115656095869461240992116676202942991129040271175061825974911671887267617651248729895422773169967331635478461222694399632672299094803788939627679262915384598024731579610560777604206207813350904608227462916113163186294469582594534124018581429481223829919551848853088974561090396700952299542659172543933457542051994104037267513410191405523540768538208255935451594084603240803393820775370277202272901783993350509860345734469957054975454411316577674771288771766454360875431375335123976208960307745044331676277664367352568601805059500177664718861568410126833491966084613330777024227285715086041870240562165457616094251960358535905163912823419841498226078033008492721999277686855868723421201201029044914027377433032174864817136811344131055966753064573256132457096497636201046958213817560631491231239953950180378284864064357786627078746884227222752714938046429049100667732764157896617998197875722404227328916791228983392285643125065874484787859112118081170060039035840330830404314715837390750868708505978486938322603051706655418305820968404915183309312411500916883081643810841140757438459430110847794505578072630486655725371843694852511094107058116564686027722591138708931626604975244818618938989024587674939441752656956505147288692624477530970325710673501842057623463203468107409255291326925417266890102977422143619860528695005840081521943986700042101164863602013523693287387526755479340364383485887023346629033407209208841355180589728061045667320910526863178614807521224032582777885911467282006408153185063622341611848760326042010801545994332429129551680920871489053939965200218174566496450021059240692627337768512947459727745856251595774378553690253987108940956071943740826280843666941382253305056373974034099609265752304061056414718823412153489312999161841769023764908356846428940461756414699904446480128686598627295880121380526109908666790877925225948562476558353423359424589543156236891741481753554424134757215305296301841689740522744846864441261289935136871757887916610970074131257887891212021618257280395993389322932150508297942383572993587757055298286131391094616383149842611691323494553100286462144494927305039912846617519208355716529267464462656202841311194326203286258306640491220352686060203864060052251305324309238039142918060740839862145582258065905703670990873628851220739818328048386377142890348343238274350439842448815570894337126149366999325591030793238625573179333961797602071546472597313230655236623931956127428874740450016888742600600620209168665458405913697544500276846535968211291805454347609070014908920421160842718034519311144878287236973397297214964140672807520499266907863976787319098750314230465436907918836764526569672951513319780133507009716609463031290939196120188059047978444314799564470143843213581937691520662384657062221686930343093969475467026913915883803112250247732534489873695061134826164146426115797894249278419366819979398523948133364006490636060707467829838977917646430183789944651277473240465724877884557955349170504407060522123962497224121356983491887725244161202840107523745841697912337160378511406014771157907681033327284734858970610911658483473725514568630621226655587812989897980629002864278040414452800245885221586566459609337959598789194443152360243710806164200142418233426042361733010499198743494717705060944319131656000976823318427768672071215209275443019841916061558701755263541020530816598618779888550783012696227416923060316823667146747830200880864044938818598173891936064798259215727623001592841712102366275418344275855163612867371491632416253186126135158403392125347502827158445944623755003183736763921411446256081830490654031028905124372884030125306062675236217914743572038402482489404643763215199805766834588785775972642350605926694666093620804458931572618824228271046115373768757407866378969785355422986166104245636933348388608794210689431760626538787162670956507089039220624301014324214115155889532002624701799361599695317517864753198296907857639923535899287659502698915784196060913283227228386257231818699961265222028188587469447861633814472017984200338469210175360205941136596909548729097484152362529124701724255613887190529165558086936691207046007290059638852772047044507112887865373063445589465782548929453676952014603624089319121485395492440295652115675625986928071871198603679095736414137794187420453595627131766895433984732745381256615738512902938839702538307121835469067105711829698562974394301530805118098103563773280013484258202122367891464866330773837493122370980800993334485876049642883995072055200579069905109290603098477376488693652867864886872316797545559590272122652993286121425603691802112216278918671014854187912640537508024263563274673765098563558800410896695120943141764496736256557877435129134621251703016456957415369976502492767534232112525148620539558848523894243706566351904831509276325152504474425442913141677790124764749360177490128712889484232283750175863387612225491843746978328070981684683609586142389753136554790149372096831537654809449141853580949870028574243621131378378449970429002654565521214742456518783999611905949077062993814787405113612187318525941712903249645818945077351653053481426218004075007447827729117330471405374528209426258026575046320719423455367023547019008583654778950045554673158732060770070566343657644772135349422091815211969456834997779752403673450206005106829747117470809074138027249900025826159733523558825829379268300038099246165799376681079771271492610094140796418361275461850818959280200952802376184617486319784227688282451571798935554622121012613583455698046636527593664758178337004813373328928306008968684023968587558130095345588356534142127087395590792671482703493165118439869048577744890166071728075911536908887889157670421042265062567394385761528364977157939575153026237886647117367107276102961376872288043194091376322024606094383081950784954669408451879125791592883989989519994004635740254421015416651003640743268997387448434041585251394390901770935566322166200273933295269052245794470776129279279601153645750519572243580298141185577946625962407250372099496716900365643029480610936135280252129800794491995102807261625033862535763808745148599229960067370028467331965171790604314857854879940343217013468656825410331086744650060054893358314748030351314638069076473682605821195219415433259832503266641047233011867674081778758866812382662436424321935350343720529766800718307591438149796932971648662249948280441984569478359979513330115106697911079566986917579089894541006038814800894020135970104953830372413011822031309320954063009744799912680971900395523159222569410372708688527988077877740105644907837671245112802470591529722320549883977679251398840703691861889087714971720884587552774529125263242844003379573430636128266032484566680132556992283371649001591161730421462494973074461202061926123567756435299525305213013618875408376615256180081672929956620868792995140419131941464492516575639190537585539369708200117584466956508630700619235345884942556001804693635190256587641746208590818984930938472449237771752511546907398807667352170900326652582064598380039588648065524566018891755172177194253701824018078474374023210283402598415328975703931087028661125937663545019447679300784496569062461951650640161194472547229213582571914935621583608722299453410333762172358812918876714875827704629964927765390910320226548996138941292941983319009622912006204353953859568262230272339465744492570387517294001709722586540335852255720520343091281344082595260170732877771757425682407334411985578850146036964232553057694087555021557987911562412722397694683235066039156523797944019773201564616765062134222273872670988679047516750270867584496569010038180246693801740084264702675243713968662808147248308803348256002705321644343462736396852646315302424282784086621163745354209943360451004780303785911066122631590843594253105426607272430395019149964265225620785479670200030082482974814446752799686859806087309149954452109309360147806846991149815708696984072226938294358633549416174509922691631291821649125667199434805626359217383706319659290033647546694692648007002125278330972792841917924319392131687994720591182520407490421812354710601611442881342914761682176265771966418860930002396000471200712092018558028069572457285530007361563196921133331359901056793540364232514498293976603587152579990543082594448082123142661921255155023490879893933590663201089863691635158888018382872955965833740400966226095793105421052678671274858314021467461618533060516583627793231910360309974309161620804581485795548408441784106980726756833177142324797381190340184249695298773585466678595191264059493696933796577371736571714427064342540395368687626422481964205512049284312055419609398083179288747706404034554316195037278641770121351537640934562166296267400596718776540481264830877468028996774136765564986573985033488866476168764099835523308969388376999285163249897466037557824082194693913646812487716637823700690343428371508813294291355779654087960849174423376416384138290547736521437704463947759451296302771511351922371160261461759546957521868546946828608569161701854503050827715563174266323407858592896574032454645819974783048329607456885263595309011775936944677301262332760136453876855272126771595550492002337442568956309060635735356707922199343813626167235624091055762294545531060445124037553778084288826617355354765149019099183226184101745067146631106081606726006205388283896335432904041743508598002295660851631839225440982999559990671253123347912726741532347310153938705490824001618153256811669023706093249988101536686298116411850866156545975655140049975454140895553354696764316991532596034083448069657924292475655625792834027893268413984883408402710757926174425333114111999397723665085689286300997951427410459979074853080036082270799137500908712029181953237147555935326414938999788582952401839529320484621932841503906351334812831714994628643566476440765584367921481471370360537279375103665364476982310826155665978768791772904142902942414441117632047705687535966228545279807260376033467882789839939918620670431065984769217373758758257539485946108686962582153154880942677892061896801714231033511281635370447365922943406735095522389044403628802005258441954467799380680797724720548221621566508673288524012447922751024275985931424926126386626950556909465612304737387070991481578732471823850337931543931926523412558651053507108071074794045883714453319049678861224029367662906031924738659202146991019466329395004424631689886867350497304188609175543771382063661387016327258534959582028563364600842974961211446871732811089935286444939684053950587879405419525951610984101540240009535993793552154535933230797759934240491943569729390214708683441722713575017831225900998562019929190076421526017719835323415130122774607180520141351244742183075959159817615152824173143711326060283533235391959942474591077800849071857354618095301230783977886566466913262944458527102635871236286469446396128355061659550078851318395484599389570579409955665591351789625409500902443311377919585472082051518208882837422042615642495171158139305364762816950349615017015395960765254963771990249162023400016244382523052632768971311293052319719300315106270214466299981961586814367430433296727536511639132003901017410526186080166790577151808786003277136629406879970023153499536607627813831627787157157806430053911689383391981272540256102315679695222005250216515135841310663259757821385436227067743162998492229793335405400170957113453578183211869622496824105698219359023948447601738606484025926287232493420152425733695221676768592276314747986441644420850245820585071649495585072196035633620522704330208772443608452072858546949686975219217057288636068141840526675935696013523330671817216421799748038587736623616050372034127734146789354103655231722278852870791459457823261051064098010422730205180368358560674429415737605044144772299936574294481100619327521060754248945248791284332379774497389669125234417282224003798946076720559117191418443976380511313215176579523504241046206833185748115383436146156035361675315418393160317029056156785627278369935183874592284016147641621248984942643997252017415168255938574954265436982246400336657884912931137049500509469186251164455551812474745535729528236960616080423536359203762744076015826081540622597011273423090070758748458330275131108153416690265841434271400554852211343712366715816976956514113842837967110326506780916486908108469951505397933424746900576194381840666017495533293965365715716121390581089323289776898104671436705353593721323241452903047263439718187065284992258339330095914994042344280244069691826181453501707108888523747200356664543435498198805767889627157962901976255651837944264769443413993878630128418406019916033712593991920110358585436077108118493401651811846369955560840761451300742795343403537763157227260280503407236240965039726888121442600277865060220549464086806572718811579427789783475051547109238077699594593455991137817691623196484600225617933299706111468950571626054363193192547455307482010422279398199546145580528296017716371894720259495389812283645235195433526966099949689042263367933149965789699513387668014764425369008980628184903656138411392250892551419693709124982362999110214600124008323421175021295796359711382150704155668855379990883053498332795319939549545680610718075885350362981283817097337932018387952832101325794717620361211780540921139917491513988014578306865700512326586062047066671029259759058845997885148018437973524617053845429849156360045239375957770950621331887609997905964821366018603337894677387771475449481400507197390073414446062556355364616414930433540334535373434327164962684556108718284887822580058284086826054626964333410558654842997264848637415908359724250509573139421596639870963162575234993220799201903426269392444164067906812052656508945859186311825209666331325429050075118119159428945849077907185538900359935532536865522650023493981603061376694825477548976560351945118264545618416595909733065582735569442196965602749107721692687873760943084021813691508359106060868543197240499570492232983128034298338366932752247484362428426814584095118409408198627688110337493813154585273590419537542508725596489802780197451398270076860691360810187723271853134639477557210735965858244862429234967179612361896505996006713615402432492133237748101342052161067939132906024710952354780866667273181385363363247281791444747630825676369209261112158857405532173810825731721531522039251148038517042473231219332865989981723569693117392023916507227068477502756456437258823670380290982555032906020125776971439731026710922033481389457010692335690626133173346536838685089396665638895540048837770886708047311572567177631700787262776495956871831661607862778256084795291289201228225967757198214870474136078605401361718844463750981497497629393775269191593768487178169081150069895165202345518621007427199063439660598153573311732116305323467133973617329000422341429817202172308547124118851909958689914949549850924762563886261238844364256953578870461188813086164879742325300918813934387405152113980170296465997210899594177994363124558428883116479064566724923432065615019464816858139638921849046038566027268357231848603992544917889773246566015597914552942139063818535745962311401892363885001970460049809842747959990696385202739590146464660279925343715607998612145645187428386378003245636171221268488912671479731557442267099764321000995840464656166478615977250067951059760836167126908511475405306338369612187077441349461982658967705188541835530696601682646571673074597703202929870534354288819359329213061624965993684262154960764829523982126535340946089541346610455494636947370392346056618747810472428620827875608290726840767235728368510626360719976635336334348283237743592263121886962177747129743896212450343338668928400243757361099692685217919542075087093945028100188744444533991351949009741925072777289951944737788125517826821454012239246285510540925765922101260078234991967749871539238505544232849422274568620079257048745938948416370153278028335703116869726222794166818014599881917663920643715575863248337432259412011060073430130106477761232143029949855181950706714530823141820297345003284986264186285770994374601218036990086094637977316838628395136574555723774773250906059767566226349312361622813473226523995024546495571115593538612907390475246410434166732116289267027270723645986764640245803445448441934940753681787052374970250995215616455419094596607449149427347880774563606578596069908657617163590545464042791669389829477181826645270473529893441675089134303588022561256658889496571445941382956879493176478588989174475393365325467111904865145363470330555867038685441583945219781369652871713878671207469288831834941021018109522169162810146160560076357335236771320246106952031140794731446659760512838773198890355304754054945726835818870060314798386137869453109540752607977782865144647112797820236865937287549874051081969359592582851780109128306532169582488077168602101052142702373210272833216217354482021602381430814375222982518815996885757711163046377646036744097713251635859159505585665600008778994392628607974059761621130796519707635924963514410591001346777437568961740446369955861655207044849210407232356426586537235620778726510437344356238092579611035996472409335150327464853460057386659756327416121860165308671481788484779324375200721235641617119288869223747623403055786725593698333439604718630234476040512804317849774886737090890406494366705305102193471770493281364715673539389998438016204028058798142653157817144401450326844264266502838316066176427404424906772163883429022343908865571046766807262395497063253988301968071670573187339883471120605243542246378294962537368914902192791080813984217173651046549678738295996830613945030688379442396746646559006799960968293526899161468367112275794233702794439706081486865959187436353436095392563566236695187229606081197489380967278932487331581999206652513497554302286756993132891752658994691235936388650578119589923330407779372574677479018240521473210207782183820398845845631517643618982587411278983894419311834366391192376731636230705216438836948939978671945936754784214887337731614485370748486329021595386616616451584641149573492622198861763728247523259500832096089921509481282117001507485403572782854911989316141688849240383493171513945169376242432819702388427529408840099043565081573909709970342644706222561801714255506075339144572653438511489320843929990123625095222330227383321951054188677670737208069851772011083858839009727604910959793532813108401106370194423658971143312846373943714964099556203463916378407776182849134014334638938847798601649873370782988749240945862035436322539225654961834227820502763606195917140146219960706076453809221343787689876850373702547024595658990307012676014971700070504017108636616848927483574595892803909800533944595266986797588647164761607556981420525615449588125942056937100310951543553656966710874493464665394234291839194977848942014207720915919300568050219996407511448857593811657574993144264660773547500798603622351865963650244693945086358498130427660583219122286509653546926604044256438530988406806852683261501599588736522770637660304637216468445239386215828572040350469530282163635073041463520324773264977007341539224479900298628880012024621857018202403768303901539160213849875477648701607001709146798784200947975089155247801907269470082474726840188080390487983586309876256491848049295950349789714532936611967387113462262960053405685132446309963714090227868854922734339828451302447930234916958376880161225840254217725961735354466644437791751123332237697713814476574625007402898948296033342078452050004006748104063260700980734187747527657771145770967854203276418134642977404726872777693700475160875617763186365612466828087235213964199660489776147544646003546637580164422268456063751990976662914097834242376117364396437259859144261935105886646384537954227397329072508966356717383204485238840341588712643517907731134402551294601679423171076412757231536914443978770419775508480477768829290743027628024986426526001786858092264694349219332614363388344195411898025780248406022705217191516444843225663984481036222145435479664956331126000589407841215271172924778320470891724795019153612656643168628609043247027105673869808565489566399925778950093480415974311076772215735427758768018280147121663973332586804083843194703597351972964962013746751228443729172712967283682194600484884474832410406974426871686776475419134919571513070626505208444227481196584603757170225167187300727479326022931560443222243251406528732282919076594346874317619917902508066117293462373164118972453888803596084153662670680749436871831382572512838920855770991299570208427699958058530123098647848534225970680327923970740759898117826526027910340340609908069337154796014398131740819939753475804583716758303124924233609303672234592307093832043348736737325561360373416712664864175999354592855428599702827083507578715348462017815509380801295447224991426279192234595767518399685536958029848834770686445148609453321026261913705684600134893289378466950439025168196968578569069830312091616455595050672657458536572582301793213007871734208169320306388447567335730210865761096613241888568537154810601834866253593024768177093810664149302247844325070722694255476166922551760667401390256218700921387560053611375895972301248220842335015738083921339735269075278322547988859043150421790466054796647602911598404239163696283200455392011774039313600751727465778769716091644714965954199893741405937216765832818514767746875322990389005567231055156930628844351331540576414836619367914738875741745059598555767814872279667474431202679569424136753428039876146158553969892022614493143303026098473286872911305297210613773372846621058624930012276944628197033304322857779122889317188002502027795151292677115924253819495879909852250540175588385032985322978690505740647727945226412699539223114477210223408239448909297232906623675188869079187568823690966956618630603979594518148884538256949175684944846195443620681661625474422583550765960565575697073229330934079803045125731402536355705362345560933151755277189392927734762671366824757876805322584025299060812519086443387548112525047533235038423872538101355301373738336997615981200822147293449756960374544887867514193635201605644440078863477407814056287845777986702482652629313887162963662004487287780648391574887768963807248410525856814622193521962665929763390507438182755662302268046349045596215455569921374189772757581010036628294258202274027879302469766202427276353635217213035629380321541851300596363119482007494026240447700273606786550307039558057102827283616198181472518562942054714088478540724605186068462191399378587536845531850390627381921849112010399850688491373963753672314690760463146363076641245822366044277516582909444497149264229774351777606344177079704956152129239164207567202836297163494301486491529700312072080769354160625109600706253060999377450219299498502945868622723143401236796143733528474402138036150529768173899638208325906897179829829403631486283149089568429466554275454847885348653897628143977551036047958239658055821605019250092805622131131702089079563639410051262576157735904243190031800552376638287349686337510680125393100788315084784821260961337264298266177364576858779719165958880606339619192114278245987749490296941404367058153326141733273493128554401229463613199329513594557462333808046516159967739074081740241729801865517557305746350540447652415705536878634874353031159571414221428571628714619989352045477252587258221031654264984841808545540726216667279438382868584936252922176979289130208601794533870866518433396693110650271518713977966707338408384759168078040420781765736387956040034974529318688195226872192015772268322556748227610527634808977290849451079174399569762768446842116025686285976902220776644389064466843187938019005254223988240275405993641140258016727228575501073731039516461913498171113080702247379566658478941360132481642319860288008747112751716732278564148144652968287380369984259089372466500921609661036671055614091057182905610927931745024773118396156134311709072696575373567272966261185035090805529033614148353864793130649897311860593021963512813350287179069340795795372511614594346981846354637593171768317295038290661258374291081557590264827454127045763978242132065320192044923977181560898281693227854049403847635450915948159136263499727848945996728455679164532365215672476905534516360018496106347852323535365766423896506787824940456105517022651327718441243033254520419106726454225637140764410661092439794601376588773317682138552974952009837412683992026636920550159460362610800806785972713999093592728699870559746500345620971265483632842378915355715122052017271105338747853285937321470568774994430233006458449486215951477808080246895651179372471163862653072835893459650377504563764275217646092395467158233854840123387321903949208257197105542614079331742424679174697606814661888187734490669224166404141105484579094456999655379812187938355546932687166030437385416542844179704328062045847527739740459796369756882160376510920408373892409755728616470747295154533979150256759787275431838810409941716716178624574524461724448080913653924695840766044904669933457116814449427716274486289369319259303363953658157256925275028853708824184551014522703331438667842975477184945455761873302905359904730315578707241524112017753297408912727556601221604340173782219533113163084940362595648983869121874898454484997531530548172524810838041679176727131558254260124057791984010819693716658751815889406048823705720533067640943158518496665477352274793557773726417932148760172653132900480722235280291956847543990050203085605766860411686416085751575696505548352507500508686861958759205067967197145555597082408320704189567421629785725243177057624775564286997532232572057572364979768671572832924169845837284877237644347522896165440610446497099427515404281868303747176368497791702712484836973239206697316107729443042125580388119795501706405741590933716651432417844390201865431927270415568272417205501006771857498902766143868817328477570835658038544117288747666174631971540538067818283170247931128505463146482951123606323937070106514238704067339168113043542843578700801926057141015560076642341663884976564718587423142436198518851113186396204157014216215684927128089843145744056709196721107092621533344239201044277689020995395562256207986697373153816184609573952058230325281518089098202072758945516281405700468658307888896055034130666768974404721730342131765865828107971299160479389237664152845010065731792321508455865694992347671201709538432115617668541302154248247164513945975160371758964307852842530618013433615640854699652933347348862044648455959385590737700487336598206459836584378251213989149265933566832849646497167929704337049392710030946186631229375076086530286905037455550331872357311267928858453844598347120783159629394363063638467974467426982712098739064104435611190354928224775353926923809470575410596987889921831980747000747838272321996651224609184380045728759510337690593328613726265410058068128981084397048104226181086846713713726553692191996956778450447186653578138207875058452834353883590535274726262684678792350255968352114650209742439341731819596169862537597411755074663086688194282428678894793894724811197235508473558312944361992793081339706946874725409357690069784798430033599516905583423271887206544093889944473845235399555685498928646721944191664237510659014250265228759231366800050422928805957706075642644109286426347921893709257124826048740159948235581162874291972388169369012684439743465869869248072385902930623830847765505229795953879019954309649075985321954530766440394798954767420389047077746479925918794442243274906229705140570787810426608888469219951883319554117642526587890627090459262368819152858172652281209556212040835399327561847568510538286185258232371383212722889301393117894978702797882826652392988094152287845541383676773287073769532644626230107542336249643608266245005182939723909065100306065950069164234124815821386776751659008395842323310116113675984530632325812559699757391435880476102027984822954424327856404955834244104298375190363923009315209015650977175243967233345507739352568367554354707502384852845113975424107247233691578673115499065538532231283405221375902406723715771312142838460292216718900867818269588764383294897164706473561952909517993200142142737484772936738474549723615127870773730819588341536188067770632917657497729334987266728154232150181938197806532234045673132627810450707743473905234427883474998185185363672486580645957003032220548338926964561186035195783861473809461383937851985631033662992826204767189854648164030423957398934299537100031842067683323852399832817577862535777422252530657892510846582875839619312207916215789659366600430212493106030908082438908605596667171333257517207931940848342919684430067611872735695130142402131542488530603576415755309888265548715551974230412997983363516662671705714326797084588407086405875982084209905564235629112125051445565806997337485526759751478639606624881638026897875170141743340028836891072790868527864185465735044942420101478895460921792497374501338532229942340918514670932825732286959872739859261735480767442570157537756101386484637459388525472843044038576448279817415924781255991376510486697073106385930425156498810370565675898343000351548470324343592478390990357248999651834090793199652468158954396161630867059010962207934386130296266868557400978144877240181567742152357185402039179521051095665851503925762021190995051169043928461876864787972174634973630924433539265809136531460890903666175754143486054229208414893641198060228200792615891850359120289664484775754045852181250197009184704351132194017884538104525473498475178472006388827553223371458986948730352010016322278511603702166148251420865223908303266939171127925204460988835338929973220683681345076970214505363897855580816968336531986790152871589742451114443397475338253113456898066649780049298286526439449390646900488272068247937775417644686276872354964902938997267813489464198028707561860207938078588501779803777858322089728332019653812199380530235053077323466508162404945310886981243084370608296383902267985973811474177674572427993169779562817482899953328689875133222404900224389069427454573671667517534529348798008222049650508087956076128023283529492115640823253348255631951472341313116122365537015789959543602581731563257813540723851552883377741496196073276050024246005312448149138717805335909338441829775691781615682476545976105423058498275369256266099975309918633275738082624491064440526793444347472386504758098666737463437738857874622583558565292266252913045415480311300252029104074992482885281395765261929811789288838221124339044798584795195804021978347410454659371669796518638732196489178660836405772470422798365849426343884871751427728272515650708860877929908260010685581683525130507220449734066759057383455986667719783845697712628082306575432006442397723782945466954442729910493968642239389811869428549817408694864611002203206685890286478918018280720653827688925674849156651802276074018205180605688376363945651777138573616027462862605705230724815308213630687602108024698831418529112932072541774275294849475031882342331609121322639242447177208521737176279446656685484584322200529563124151735448697435812041845610939619014162999693293068728728358087582154833733228386515965005200439679396056825559087462808234744960064580878601287698813127903796955546892249051640283031599986965773983613008270884097255467728907269098983169229743659314722536641612999021240462711384388223843014564488297178436998962228942063462669026843800730410628529896428533790222479181754096151385679239311902258179609605723845536113389302529715215413903082139048292548017290011220983148045223439954895938399659741372571273733710895109619292846579034917041459436357963536597367236180786123547692338643698513036820088086532873231860729077532423387311979570748821695611082227964244109760794978102560168516165314150269497034895284079482913496326209485055405708377914271501046883749309803159962664296859402900002100295659953787389255775827118111289923703268520358043445001092699919422206537691113704175741940070409719420397442819923742747660438521346838148066869043351600865792875208122131251489552934429324066047957526350230709917411453651443713851682969896781223854107304418004031703990316158520014026766541188598083049479713350244826194814554845714624463260444204550522775269440016927138366148193830973441612650780403528936248984960493032770717835165152012799357019858097322760707031605830491959351965509757534878613473156823547844621038029710750538555744630933612447618906906734026014493358030961696890119012721347116771862192664545392792918342964269873049391209181959610716220407566453615936560950829736974954788819345072680407732949591496315876527743963417131202562681186727866978890869667450770422736203554183310190275658919390997151481712844200874183517634250152261918867362458118820406397324390941481656084628703390194967793424904468398212833795494324367850244463774865690755927319258839239089260930769264382274515961758269760361918835211977286873224524495075947014717184300000560888652787168943064236051677507656192442380009742875355166477395726406092036734213306329722286513230817141315878094652245943021817407628345639325540929938560095637296710959395965839536572984306887520127222110955645926811721759037151989664343006670440072833576528682323408768907548003211865094359774088748554870988848696017153358662530601496697874558804653984159347466815709911446482803702696223337877291768693868979532103306972111416324631734820619610357453017138125653006036015448043239348659677134028482130041840893687303114786902999714984563326762426399839693351123957024769640685531226051836429509054138911465546844261656127079462653009466466909701028144799083225427570494546674744770549001839389692055973187887195728003657131681010224010927621068736645812718885408245228084888276558245965710544376093342358896566608207548183818741213843617291030427261615919946683656878155423613686427011027830416314884922595704472557423771033034325056337564680126274031272712648473055009965487336385284799335129510918013730190730701470246101699528082860240538761812594068824220018824497221733589672303229815939864372412086174844100063495979540375505050831548445925686070561260290906308475200512919827381960990287177387248804066237377124676961368571007687705867145549739666962324628902481445172813323326705198214972591894745740666215414139322476733276718237394952738754659432980515979567294287350707572623960763812963339197821629646581867470865337170690793028067376371363674324324844846484061007737543261186211761658953421324710375128659763851616677140332569106591930973903378165384035004834001161273675896252427815674951336888576497885695489108268302377595231356698565336032255840902042124541207521677245038334609409720764000240542901782183005599731755058169696453618415447596557279296016302906892701660936594409641378751531973789553609055565286716045047103703501575812255740444039822665060071093563618206367660109761281691706374442510413663617947252553211326997272893292028003701874605323965559715681174676433218378514072509114676754493283305425266325429040864703608656809029347153909391624711385078643918267587113708767190848526522400386109554311307070768005085688532513792399106643901473129634454478878307617249894769137128063439650988245758417044280385900324959028596562466415100812862022521342475457323898552631550668967288162557788213100849527197639326264860413369659480982184224170395014810084024996807117254791379035815303313743041963008027856887430071599006813767720384329633324067728114119048533125438928992178410379618583418834757730481821086788614250662201255763722986153483409261900878994301882461529862979362715430303690718378874877936291352477646498521635857637690836264220211183781736841318207847144663752846876082847276572664752716521694016226091151007495093651471335506179769628621806492078091328108006994190790274206243696130716945492157266683440196269420796402605581583202410530458156705630627088715455106610839728509764779617910102981198226592114056431759658219466089321256551105129252762707740901974876649881228543501840077277418171771329166741483143475855771249735040197734206689998526078766311445785013463683906948462684186658515871838149727682778097363275130192245695379102331962906559438081718450869803615830719149587344982410333341441847378417556827497085450722237147475438897441685521877915585874769645721625485886801759254682875040582833064974280324723321018230318354130882902851756111579810746733279859677517808270306178747387851645577117432568352772686620002337479605193355961415506120603730423810790495193641685950696792237796440934157704735924770282119619101614282043056804004489947120504748695770387871629522719064287819445770117807781652184036785064933051932313833381694445659426130697496332973172375269654834160791663461436722432841446583395544858175448939305411256506725394332613187037339638563211344371882284433042679579233865310377203954536458189582443317291532323946673801444362754411568636966612672578265074300580871101271983683469435372105044929613382815499918316234518638170583905129830204369229044545545319110641183611479676525292167675951676169174419353531308466768123874278010354610596690621431266333218534889147594805588386850273005126512124272535194171794344059048838733818803507660083036764793605349375214282758766351663492379702169650725757342256770665468311136332971861715050266746039050485401548870652262470393748742556415852936520180070127828733394837277592200970419731304284729183047696485084496448952756851317522270550374489539022544697992662627403772278148868414124967923810848056875571326971484337227242453885929808762295393340608656749175427915864001041773135325128910186975230076930775473829489514611305591925243190089904793548751276447264381964758373295869741599289711033251818558803553971222065530736568572983011592389491835298007715869883861295013106024728080443547297625904788624135532680576986185362169217710895664991513382497822944344960715623000093766462982796075854991124909264114237482093499755485827602482539516023917475098842254745714780517660141962751955166522693820290479339735178202230024126917283189079145047462633321724677108066487981790686237541313211437102549387803404362723427663163075530952562838250741575977777862346536492187839772110458639057961780790724721544341884767424955025045207470123073459673812116459564301355669769020265663088650742066660347417382894528957195511555864433061033146555020232103334672261805763346233738209456600454562269519032184998901131334980922289278966233354518751495336930187783504485315743615442468301685811599952189081775541564776326792074891898379986207900750734169993603208581628362713731180064523163728473082519845900692691961612945396868079083890005562142829829702876737623045251358617035848733558548374877277903811810407748678826989122994197330246052087765538738072134614430416328985364243710387135734887506133816396844696778123790776872172218941822341219860273554710855860908841887954451726182080462914604732362248646416984623778385691614242274861980552826561675522941790254430597432280347174239878488949695240823101522433231695420562216037438915232289328974215526069760562909371731600505824029884056817811251436590837058248905312632923916500862335701251357864300989257673433210551921893491228708039205805215425980916216014269600787909726323498868953556129385493181491776505396717540501465428357093557697590275205425564236095662523190927475165176366523575557649744053091692114438626602580304902969333810213274477510155938284927119763899067965316801120546593680061296461857346334190407936766355500828200875246732084934004405235332729306077465593386808355802591079142284784700094663489259572593063368626271521829937502873156781632950110298341148987926336091667991848086800872412240743326913527027790564506010083224686795624541677829602995883748264025699166873605019728319228807851706397588266714837926735785478104501373572141761010457412787014234060437075328866144604962189658265585479376596694551276655006522641233234942365818345775677671088035138503311634499190582177901369622784661336092455455139120693554673855323074961413244822171121717508610686072042114975652593485502712988241297674411896385951270782061222838509771862190492297966129000061119904710618829466722508214190547601467083144469434532533601470472433745654947154438531566599483933575585843156231500537199609156730081564578781830675056128221847070924901756673753149140304866029973941503079515011114015112038832263149350618678899954532882283058692951638634890207670321800814952874310886488637067257752594318681577196770505702922225329786042746834676403742277993394332421313880923880211452552942487219147825851463395800831727616111697307073171489023297867958197258833727287481168981370225867567297635375794033600302490008724276462340532336502532237990471710754463108763795743062476578942916651696919722517771391290619683061741522579725361236923171028471300968208907821573813302298908361185403694880414996478311473618738666144659448662536989340016149140218564145319151310726504237998599484357658451425645834200788770189165692295000946519832842414397517259103346049284219837835817965027876999642003740162301373306980189342121159303319164967867221968735417528377641829337005497933448318608807085697788939151993516418634638208620886180715869129204369097733368126990611359028097580719095819025256405305709560193553223244949635878238226537173309822096160811160007597798209754727232040373458966418671627335514906740531802004149935159599352710431511017225541836421966759801822855745167404137260000559300166741445833377214023281833584676134595710798385815272996972064689671658020951520735630529649087347874609518070090723229018337912759049417297939054941957640077397635860448817744770806799313034903884217187344768407091410710421275443979989590949138304807533204776442609884070623120399894735175104918268169397523818153192395818884697089377432648788262077522168829433474662623007117531062689455524829722294796612032132197870008054347045341639015963082849755435977410312912998098635689580490459611351800288638598387358285609769101609336376644434363103405049621122183157318372903378493905401068306071954905247389740562127349031872507068425345103323996677039993715052048510636921703540668604553877548910514624245475956960360486742559498671207509081208423017982657872698967109020515135413661111594292289737062951874676138093621114681212328936646517655142881207596565072087667500740362623071227314848130918282946875655447785619234084233861926116503691091278787117039727284596168860398511653501909911994281067171209519469562744600104294299767946589648287204502740324565566088502705645145555246488843290271319882415733803224819270482535398627439661307776690894341121214606114826576812536827150854320681112304920069070691821596362882784707006456968614623445148884869905240441019974034409968143212651683598838659496127922609699085630582736832980008563782093023274467542839128124094241395012990169244365509765651539858493021033178377977367839507828155306149400926990433621929453797484745261203290381617524797795559805046092214282780980836483277908622003035194844037080640737400458488100390680264546852690382258217493106168381025474303764142887945635984364015142048476729921572459401699145720288962454734194348293300208021964020047097166663024742263945520757847933038760635364562520638686653592549183541022508230394818325928319611423780716631587374021775944237115483282441867053355004760587832418985510825125040032740027317801277391796886947609761525392628315733197843959445092253578735105084601721014362168388275193785491348036827843495900199343173327932186384161755227339741795352601515514832863548797886590600397970854346150214814270803811282126702803840993397904758807138018598085211913289862338729877209410524578688117034774109748289875398183523413616591903421159375258113074752682509840850886733901076332561378900031886379127559063045716717191278831617598138764163120159209134885264044724362257017149064777779499206639633615614672374577947796687242701748416580444209198849994481159923058184302512053852791851983421381623319006212632205575055376075263721005717479332879566626992016670030539842680454985735098055549024634018730478791877417105875354940046435080624284494016862095713446386833794489823454352287420741356898923119899177692101345966465994564314244695541541399711055474134976499499160594439944770880076698706352847737539210114037633730541992251502509629643868552558154625355179444680859834648731421042830272518678073871591146772982295376354051930518796871502097668452305630123233187575129839455915130723559948883021043068670506187828672881100156917097135450258484262919024551301668951918022394553749244900465354566383694861654174351271526398174602522190537143251536175793291294320746522349708247161498583331464366396603366740428677889904036863013454097942244937542708667959064253225713703398821478855838054203743311635711686133704816022636197430066558549447664895911732569183179080447933372096495689643702216025479454336481283294258169359353028853572771797467145859645822120628155696333406306629781995365247904685965095921612335678391945370643042445201281677236659783398522018874609671313088005600101176186999430336771269765843626723425656773415531157451487049266571854609230260053869879747647078727793758058439934358004354640673016000832046001301290764966681353932409111259235762772460940923843626381771631056350993808409061390538347912306538145354589344394536296389411308026489632276001718430976177972509962482643670643636261291071445790095401164429570643637592745771107655627367544641186936002069666893990609352864239060034255637277484439332476377127396043945745854757593120147528499432304561188302171506463420347046386531966393893444006527807538125915272715251448858359624554362862950933440505702094441881991269803953983648199829720080621512208394063117895764941425744517659280840927381184121727125419599325959809712928672986033331385840046250979302022050101262828535900161043174756963342296708960837369651220773956150006386302858215813995295164176625327631036635446814734903344275051420835915334103568537793323597725385932638296873196468619887880133065397787707328527103602916601239822568951366372897635786246825405007166690904152707805409989589568257521472530330314683489690173132740562410654094786780515858508468108507568201547289688099141621936833287226071270783074472880091076834071349653633221581888837079019061947968400913858942337467016054555468605889449019168790945156805352019118442140601421333652406366233894663091263127045346798260461403258506080288653467253089861967170338643588313406215577486456512123125387326373650712838663196672620393584855811997014390008898123753591438377170275940447631643034094464217490671306846463192035828701119276251915703793455804695008648505988139874062596650693917807872215280672312475736610467498714415333020309520964892308570300975448013250286993799055832651841800955631860864834773455838087117673702329142530271309652229483452679316306682382833496629649690023038135755983093580697308576750841442304877430694617416415537681039889522851847713876196720786897393762375276231744062897790685382573400826211315970933613526431129315806047523058729911482388945418085303266584620621272893257932349198748531988782432563897672044839382211913221607105597120430676339618260752547764641776801003627096702142334197727077983909319996439769602325643691722995357652240198943340843703915117247475264130061835982086593499550973345418527910944319361421379355991045518149466860451512998587012434268594664520796579268815311377982894902158554649792220741514408859298309545862866486917718755101519614674291364682786934151975017265470564807901163886147911659677714488721367295165259633792810862734466706483170382495627662923559971888860985844289914461093073349290063295658003940489583392575709410828873520680080097955006987093122710488486147712736039721085803540142236631160432735194440855578463880844445070789983882634660566637498652794700126114855908040254487101444991269252785512218776232754377608720844921342475759368753865644546958335384148820103876577730404915577446537356130729841779944732812849712862361438971939000930979705643062485410131172210467044409706463389578637283732715260425929438472258885556243354542424867460042363972884993031516017725667327670389289650977686832701199214811336706445339197795549294271981274940260500746987728146157235809527593528332391003818957234141238909442193623098474874177288209335943028603665703537820578307430659375638932203392694670783803415133845444882691645866865649918157325942207639488022838055243397254892519693700992344763526041600674179173031564464065475289833900138009438147251067444081215524186031604060286068376217484402604310227260204682026167134993349122202532793757517005046374594829689441379288957801692521502150363926507050954616001216663956575112673574940745212014393438533690048445514031211389361982556665371355010374919696502283110289746637403887424722893493537419396372591293186105839327019700106714247374522813173451608443144973298531236127358902689144700755783261593991690977641154322567661521724205205682578112398111195254329943005344622484379150900513129320594367657552017019967577437227288382635137291740016772569236209397979507773079765940664637859225231566004647109724774364375040732151856241693303345318992643809923231899888736923037290367706393235201005086585120363997225032496461500999429715940401204764343361448369223368734319505664879009268985449058723673432802875285541205367810853025877521581208403540092072560360988931809061116653846615611775102642552353658100191292245257887823881348729318438858550991660314965412803116371516146529406932785794195731966341288425381028650397171755374543530870520901717009673934378617192347291742936432492202859370590554841777158851200474756296134589553562774587893542499061299906944344321400046211335381300353350723550037050137462528013471707272428355203412200046104798539583134462501941883426845401728842869391152846667830984876032227886314920369664898729909962654342503550322937451406883102523617073179590106347610463848611999885941899584657799064780445591256003720330232769675010183565353384810198966253895341410093231752903021078114900600755271741308739953551222524229480382105074748486028092842879050468087692881982907876701323087470821835522753108340084422832896605665848272255878291703554957978366464531553980345861208688272293054982372319710966016669329527338419676943552046376729893239710188216598153299169410077918682324802192523307141599997963312313060691581952455253477237815150213270412509150467513643558950577876808061817368708116085827288974448576792104991089181325354230767083021373275137265868973213321192082412034596777536565682880328873637876691113193551099575346184008539456290536628286775009821155126449519546338456979440428244039781437656644080318859817872557294007162211885130077300150773329678371604562690351082611769682518214391743329909958260086315321588146541136509721372508074755133169065330166895498593531684407680369469862379797181772617205587724425778904903516638808039734857457660487518715459989122240015412262056542139721536298750754376044037402399375620397579751283913244453238631590395781079668782291370038455059203025884888714454519488415154056543031990705009808026783161440552483506563619679784945692245989513709656026268685266039679697702142166626829581474122647815492112555125506456523881917954891023125205735425582147710333437825066108718431059424633165066907350634208190693870469519020598699464723117599361082066995702278641116745701948828386473138035306782105718269931557018434401476659835151444268449647926158670356554380066198440551260298531248916290267213286587917861613556817539962876171405838630425430789607448590916968195076967390838394089975172395921442812078547812791078712751062247930733498984543489872878402000803531878372243561135368577114718898313795219385074863669509084816551324594225629985580294991651299621932981214062594293501290107713047749850097706479784362326059973438481389924080669874236651056362818748608884457721433956080997012486154899818936515556006749117922188421424515153558876262563502805643826977264717352365552420469127413803825989451873926353018147114336336540612212011111997925696465469230090755449858712018055125006434537765616135856803998060045729804877206428714732165892461502501920598502556047057144222583412069366998106622595334951281673597337219058990316028138686347631612776333494937555209640555379642299392358632746785762516211824130789366204293405547258801875231522058187496591467817115724282608374415114063071661832575170713514317259068047315479510809977834945530098994965782662752563480859824793392195522006807024377710302726887545799071312374812361866312308100028441097975441766169261609562006244774017331854040058642610977255434217284424915245482569660314346381368003755800708243407769058480978346005523232096674223657413830010230872852092398199203936007596425900059542597461556588896998601036543917069717842543982644743012978223190061161807483768612939961309895350663751288395223940313609652734705144748779469801191688566803589787305453384040475767549844999484412567382212222206912950212735357425062117289934403841529007909654067033626175489025522968523914779492780465402407424051277193736541313679284158823750200668064646561975717004539036371766376639484105042036373728347314265254281156975908522970347405742945962252293171279644494138430021314070073555680766636889988444325636232942478921943958875975150002632096304608451128106665420795302686509075276842631935639643646949761697908366803602014619517401234719282657138082949185802855608710709460538343115301165841977352916363239602229071474828570528766293368668539085479817282022126019506207786976073467084716548880331306180411404044812824116538148504145183478831639169586133827799995369404405928212728306167501045917649507785873703921552830488791928131980669978330806475433998272492012756703875507263610684532940397867616118744551819841238647266806180012526247859915432505107012117271367334365461724545895900639246845965641579482853143937102509298001111653556325423876639473973462506681201823023239156539569925151809819224998338513380760012353682202156663038776228787428006991735666356438579441136774850339513776207721760892998720448084659707030042816542946383552869772273786619199979810547983331394232153135333035054802243260784602686955251184636882451107452448472384126493501122547127337883725658723004875493367320321185808816803376489181103616768156392574803580840752704722685014610577401921047972341744954434746591920538436458036392476753136285827864412423287627481155225639270210820082276315506715502350491912722961452581097124053972012440315336497207536499379467548105396440144917278981547008070028593208547966621601300406133469876385457590059439016092453129774182404106886555595138051031871257896711186290685213103322989639953477197868553908368594554887521515499963862111073368305330547024668060881242525279061996712701125678347021106392522982388619470236003345200163286391631699636615281078244402452299438453512888883075215703135204272050357972663605050669746946268129624625094114253100281488898330418443816605961515460320313431797192018130868615766616420562647080676545741545525637474140349144968095929103428898841596590950093542491455336267863940311392435872867934500840218486663290597035573537626993660409934664218522435995509282516917218303681695666734578474217050270322051838350566755582082040451373985750612736583853984849497561183026612309249157852407798984407973405148836893804639226409800408916480144164505450814946872192592372097485550494280713692865525797068307674869350825100852311902677645320734717367494352937305665838757937758112410021197557234779523856335457455582742574468567588411600056375255035819587601589339055202805157904789025715929974826493608895329694563777931776941607737282825192345134196447480814686464038054321589984321306032126529420142090544264976151666244442716702407087478717154188766314136300606002590509755573878625261644519862290632762120580373525810067779828585921424874451995370898972632878810667100259406074803135700156016376581396840868511756749098897070809243103283758340265947180515649028538571563261368537942440695871759394899828144459032690732791978554055952434304436900853786266502606757195778429584572762746603076976468818561444144422087561550286196187609720172720802153744842647207016755396490293331634046632515627023690209320927304025920176801779531029451203298163130945883430324824999596166754792879125329395083338194082324530012870294083695676474195285818539504446226638915971712406410419479146211975692223026856473164010210642818830363248028540197017222365200231868993479326678948714475041955895243081699987471590319586789113031788603587769109949947783992000798600584209704155564560044529297049083357886887343120655697352831437960960166660354771068951676795513947802982855132906081146655914715779504289764609987433957548210150479050724245097201641998849313258435450855982879756015659831116960910286385619766436914621194264321208548216162937411722248481973058405448527528059531249025322466503154513475477465314174355353489905289686751759934463982795938633040766681138617549338112215018558594068151609247716691653554171426419424909585127446631445472302779546412176657704919244491741933637659216378155460430388932836895181953710555427578159989446273617509623921470711912508659301417874040997572261450371136049411797077660261445114090715772215422881503852548919481992978832097428221482488659012524835010931004272733584127405943232361070406023266557149928346689483522365459028389239232760112604404182621182257750899340557078169008632795688195337209252046703918425992430509131645791390785474681945809468615156847204042918638761335561450302883002852128823557169546739481849085292432293520770142053681152208414517964154072609581655102019683883782933991815537728514355937673559846846052037660976289928942483691911955742086658127486509618789665610883812986871619130657321872371973038091911676313442218768334677486584039722945839769643912662461527937481437578647017419206438837238360824861263055150196904559213510271468106372630179239321013383277972167711263008522562383716247125184697012444945052604562249943377158442629445508192536638780316380525360928740327894386873118294145282381798646430485415357107518607606429135200544658807385204342231992512415258061496803183727481294431562027061586698935353785688816959166548876183432227149157688816775450747937206335475436903519786035628257806649118151264720100910858490640083668205455889122786942675686508583004120852929768048155215440126609904545980416760579919596598564719781082352612380820802403027697674530166553064094577741780825778959672704107666041747448989490524105481157700715514749814508649341970843746640582380085126586813966843172667156204934645399644968788420390559288855133509156998403945327487573629275604190564422630121564354874410639541932951651434926654361234066100116228561510967542062559862323997423379429577576585540359121254220943314957235017363537245714424853296095834248066175046437490616282863424959626106858931060920453859174360963607232709079806766793700709831275096964090931955438742938879269979018158248431672033506911890949239299434358081818459850486688833392538928133727931615022280055667421851191108199583090446951405106029573251256999644682254239631079155037534349865910474805677377657536084230394915733165768964059218510648620124516375176284217887142249289414071511773924480907769495569466730696655960727026779199264298224951892520973353226382920799448845730199778092496837698716659368731532137019424552430246219870085661187662713049062476393486652467607449928901314039264952655818627389902738378731664628642651719374275382635399104866638323324173313362248648314128664417592976289029467734414133431558880367427635159898754750730743572482419737508833971474993269521497287953162552907966709042410947672323402372497144722567740670617408353944482548336944010614034662510409562223312572158820353814815983674813040302746520913850633381327486395999563125884667347829252830026663657971681649961239577835217152066598793068790285097079902152302056490843690585390878203253141256612515026385467662731485080755396283674072444067627854303729810374341536100383827541945798215866922361761196916854733796214638676496033541170536128538456245417548178038711058344505553526219169118977937151982755547048987889812987059433748026629821943473471989239815972960171931976465438656693418505613740510773349642132246073590591539298001605314248656544224426564555914749375890133941462699597970599000945783771300986956562044779964072958963281869287568904654571046223964560351073393692236686490374151461247174547500409217553257583791481681430422289267966825768558014187722148772506907350260450072023465243632389124071356451474395641764594006147685246762923895817663054505303527346960833334677099543313542813448385326515201501859955596195080358428759310970672045900699759095268581251551437536424670555497216154726848172753110167927384084996873639736317304252555586854016411193465949662291957820495180413872873783634699174871031457525202234869780852539461683891780527283034117090864374726554767483694090218879356171379843045974792737302025113150679308323792907922379001195819543839355557086865519104920949369655561726395764237270023215732235726411903710330080134525895192322405378663323813937374272334026661251031565155210871937660023937625507820954852129470203749489238892134247501619968694712005189086601712988028652692742499352925812780192431648138584814907971326470615969811330977968593472676671209769984375471514675768517353964290060766303447694986082910768465829863401750201847727015969255698524348885116933883199736469941574447984527364805572518019830119153818323390887280383819544368050042805565301018984419034471982631164643633431201483628461135398189291926815761678590361294066531465448716683886675807540205911178751672688241858611139908976841519770965700425291657888050430742513013142727100917127180644013880484078670019802501955968899872976713821069125599924408464341593067277366974555489440569255329969353284484296975180828500999431232385908160332437098427536746703369653749740031853853161426693080092770443857469183127831928740928605121311980158306914642961367194380060175067151931211651939073812054121936440087533746038854764896515850235541126571161446559158318520769358253003802625723849793572529339030753268363623818445247466403287584362436683458099108492466147235723937003816320760282200038051734545928585749874776922675491080299449042092048142484494632370070022619052666336440004022931668210105045067033792127514732366321810274712557140992574887118414340996732085213631604758214874242227774955215090330806317220101705956539407892128366430904231982043123253164977393207457051182975992459324199204981800814549630869412534934166311526189125466672405185637927742851930579215630821451312679490827032929584501270807388848991384812898127964693479721459896722220615887539386825334879443378017045614533849200885017614949140141377112643514563062499643804922277376765243516743840371757725617602040284393779831359164834777644550197823795447215213434883661696945711181463701506423681253672582866019506992066314766107648383863570815453566846793020427200755439348733511614162216203323328810259738468339661223880227412384705737230565509372160076999009288840082237807061852157717519007850268302079761800811793951371248624965676682233402291498779128634430528880761173654332478843530851857219646674925470604894237928100638106528038759302789360582388516845001738613903476440043637613348817098367157141377884912388456893641049338138313878346713953224321939785927044783479815063792600956981428277541348083424195634160779283523145734095371280953840495702461274104273959237462627211826491777362043508807504331425314160891953366891282058617734524124596554218005396067873142683815358307678936662744321007635434500882200045175966540918386866373968657146908514930107624245269554678919478610146951864803761745879909570494924868430557222944565901438369690080540883824956489472919484786408376456192010043712043661256334352096003903460207249522062479113544537007690920126640959561009006136674480515239382415930137461704344544642800164476122022060250046589826501187578338787245169503394982474732271386594266520198630260691456390593705433387992288737419103058504845592493146152540022919983047629672191147874159912627812480450846991582226894478217388996593581929693306808867809302901598202575126588907169948172862950231463699282168946183859120539671713736312848417548244000564161856634667850604862261146234190586879236112822505705553027578445174479407754081606100401039386160184469130421436579622318030535239474052104325038978609299977423517231607835560379360404286802621702635910836080385856615392028163347865949523374364426828658413699210260964160641247095137646255963268791295887596395722606211579196540506317414283010630784284252615029764296862197067932921864695877003584155286575610931206587159051031445514690882901936352779997349908328312310392730100989348793345544386108406584430776962903338530671639333191634340554717180990836503404577893222082860779908861373369054835019735136230426894436279586152684549540851050690104864387585979645812143997444697728996761176114292721094253630066572938346627875781092494081958619474721600412754650423604243416226353438289722446005923691674853163265681381568659372981494317239182655311134457007112433845191234942419885348676852283429359957486340679718826753413560768215458969734656177500431576048235068216407964633472775255232214928208178255264177878750120183254420686540073542566456049207726455643301500994482765504724841245935843600181337401732306260041683342749191180407695290346791541580867656275062071346846511625869912846594203555327901220816746062988971013834830428030587485391712133129826681790869627363501933937938873101413793965348066264909066339153512196205231389463610369963108704760594515808139090410766524511182347195922420591567627046474865980962200241278656181099198126625041644867831675396504540074676353869381896504487133595340494815936134414274481510715151530037479402639651731452882596911170080129551572468819658745226753157240708765729866651601516531422076897963244024577685347404494178359659489250162517071178662719589452424478120112732432708517933802095441361115367874697046294965135924333639099473215140833922513548026049603057205485225415091096194295669605170521283090329773057644780813947151325384766517125096477257374382673544778496459712321993180325097386334788285862841825733909599217808079220467885719315045236128567399737270135936061505383842457350571554851585846822362901515570821679685129642401629789000648101873372487443129551793641480919233257135165619806817633707691776199466932718798206486069289967062737214464951026075392109480452534184082425820403270686609061434244990357901906665565460526969423507039872580109370399828944046708745415642236145473131035111110827528550786932043187209627329515150878845535884942084904640684336190426752774172315706440065029172596746659723334338213700544968040713632444157434339105155883657627396854833793129799514155162197369752514823677713659810442264543395482290895994028914979593907289303544664877704850633824533413298987438408476780696257189271584806098308441487643556541038110324544359871174162323849856697921131634304629345782519760330805555684358824941865015812943051958542292181723847598970113380364448885427520664050821532034050547460083950217223472155274861188468567298224307617082092772945974778624820719102596681803299030818110146064197954429000122284064607650265035270033062505530825458162609697270623486706042352218154809846573922574282954072317752691586403634063810834766331201319274579484470896697434187466123059584341794282323398113278398693169944860077995395936572461222959443562309304995433985534593485225460603965428333643372604753941928219117049211417003235871881818569093820055741165860711626503312530049946500687511016914557268171345403186077191240463660714033824928742039015244605646454536181215705246177454182913605607100370414011242280462470661945558195435833565780613934165881403225132465443198142200344097964603839777887899325661509432523023878592648950995612324305231031495634472672764631231232027595025767592121372631609810508417210429844196051808448072148859947420723715959469664143365839304866812760662882504988114650316872528764283690253171352749097746982291081061071698809303173056112410263905944389867388740963444239757837568170495712353504916063205313761212239788846549409229085353854554825191767586437117256062673187321978576708767741826855722696781864850139036110296573814758957414440153237761837400344436320979381516956827802950646037609156547263947928406982692479723085840439674691935902990003282323839383593559723696636408752498631924405919501033482734738555259343389633860783200665188884155126016366825091815247710250006975812516296090813463372328673008113317335785966059114182358353409162341987855791726112269719551571365029658541985266885375131163214355385954598615005310814050083757183245388599771699440621883340298377707264674267622122853538295076207776814628441534592393733767950148340658304071256678726903662204516399409784348416119124541459544895958052913193128616555402202516101170272659054834295636385831629864519467405051490005162222461584600530963177856692190487649093820415557523309532599159328971449148117629761128460810627452053780813101006897139979894861547112016851769975539433281622582270376151062004330521095454142525835384213860191481830766107829788780372333231693589711696527201607221681973897964517456094281581376298764745101477172511523871373668174863246899395571322010675157245090388018393358580504507521133653215936156206985876962441606930314009480955858100326776834802663284665970061716256982990817620173116721694692244541555855237118823720575892681396390685060976095374295160626192190780656112221201465408741144778435327528286237840117247335547797561737930611791764840937134975823782922413294196922287037058800437568288821537824350146493872485818147361699964912021145830270497418545144201571217224495998712582057319959868857775608113719668570291257521153183998822299149042680410602305879256527150135955751410612158916864645220369472557328434339391221681649623836852368467812633432988110486413742599956136273879099487229921194167082470447003753358841679606495140679966243752146529842396619760129818245670592898259128188936978423541017676639504675356601606225831802258216832091988034584171661882052596277559781439536041910482628065103462142930232059193459527434778647245320381604301170011405112202512238014274524070619091241776720870601898433464310204814380249615460633796491546994118171320182950396259601298652805281096692881451249080442367834758205948961395839426642850388240477326864740519669138007044246903339727719203134800751618740508363323951737499300375716126906055415558100934243577000065723448335935437315555070597802867184480102250749501341892290125762465168716027452308545926509819049191771376845807119966053342049238199468124796313420942649729641288310647815147446865816164285776935683672353358320369503465784471210374047740646927331753877823756115825052630574651810387953867567340236224360397975283298907561687399532306479423836595542744023117418846353192508227666370660086509817304305133652215592694422351697559830301994894997750794531855155628478728510304174333659132046337520432219586915406975022742871220593529671779226169779358876429409532971073686846597697130007550880341027415804383456667138560376860946858945354855925594144449519462970522810738038117668615342119792233772937370823031762950388424216404832606557909582703376631467698393110501998955761527342943072826653659734227192213075478140861103049252256065599937714563766405390135205764313973074218010072492675665038510713071067713486861655091580760203370753526428313703543758653651983028689424831986007055790916903877539368695562539482559121676933488912769175705154975471609133268370462711629590840936868781454158418093536740629939361044664742301826846936481502326889225691965664201564720396065542222636727150609648201312837615914496660824332278395600896734108623360397346722762249225696156983582816846844074883803828331280972339502855829066678997953599172895834075051537369727756997943650403993348261253658560176776454941877198028787780271993328983713217264166195798826265196774032874789817646246151090520665311756308444892287697505800549388651380774842310487137949650395754524504235412573439825397543718411927762704644496330601450187684539197118700412438332356495662290865197947359727621523948702104230202375928724216211937527552451301411226197341730127782043956269595878911371732800189807372561253499029413701611663068400706688990840469487338559509865920202143011262928787805194622918269144108838558376403022930791591089670499654428011391022971010820807183416029833620755773904096760218374259428204085932199600223172193618748462519710132910468229614126861378015342246914017166759544883195376921048826187602788506440271039362489521268269113221120059912073454203369122264510716757662943514956575742412597551827590395068902972291985414923234134364153484459840402275584456769383827063077690669568825789180652182567657225652905238499979853440882931727621865207116087252153091549430709214097899000340663189299606148214434021102235398199951434060532079336779095047477891525917783018615976333906271063761020240344663522551003382741994181434463604408022545226518450646577463728379233876028093699394457225614044214329353860908908844414237971144482494207896783442301374067001395687843610563750814697361897895121956682554421968840539244821110002587930142757902820881465295070522043280498277434895743593471516295455823708206685433787157461811647095898679984948544876325086506271046011176199727896180121104545424008249381360750220308412538305629250128915658398423891772373919026138646126848873580384097906831096008153649049745863937848543590450681614249899765697515659865027818859023461845763789069162772677671835247074262385108367223684951368700388125903407053994720277220175312366601849133941240080605002768199428065211981624322366547389960658628904084308009833681840037894976364952624941119529321687773415381215285938223701561120297755796346233662369120937778743652710095151725745292378298347084028793578642965953925194038261990756509567565486970405503497725377789023727674009840818715420914421116204175931440943257622355523918436238122638130153793944897188975688846584615510502913941748800786363419412503277098077852821065324714508120713826675734043197085793612816615944167472070951400724828971793204697691726629928063779947043550581322170091566291184996124166316265063190619325947431337888766288782445893328087407186956638543779121491692513675724317249358461487806051003301820000738768792753099116383109107152056855395413438145155470486953045906354335085858054742886821165217613119787959219768813352896403958716244927959918377692653990557731123947131784325021619512238425728381504870613135359787830285027844373226741285653051763762845781091301652005814057765044986023071710034833459179108033669217118348781118533609780549745560844548136724631874446674002265843443930855358509927062727571778700623477722103575510118207644904146211459984939973567639108177534561995718074918245107349847386300433291539437153652813806378664492891520146033241669762319725736274888015802434636053019338125562483369411583596321902240928983948343785277299205593372198430981870518622020952744482419609618558568308515993991702321485415100563982044823282329908545453467797449216642751099611515251313534879512476803850960704165112389187552331961781349487947798547951367447467699006995725585237879178578043400195780738290390255190245336034809172777059718212783266623249950006265473917093459455279860876215494664546788956126612502745005389082995421501324005056582619857311259575175191765461522501858912545594719331234450465277578861298937095159416288069950981773141229244184182811829658531620250903418820289992689081330394474029324271071928551402893148215231034174393322915230345977138111981858206302038260278631528486966875852755747864179616825482870251491977341281738622347066838140598804050143157903035255802845215138393876804319347769100427933650454377363145157524141558581582316399451109329078666303944379556854170344132621021030750941181120155330969990528087788984790243270197254093274520075647282336123896268085732725039256073839331394142958251843738531568119168920454162427632325249347184696277133388311672911757864305789609309337597373737759247271665512092625553349262100221783974412014141854415733782448914542262500644083619909498572021039156460530819446874188441511283817924578836549196886010180101595879140469871934913944154265248511148018249100095487391358130250772060096007971997481636943495620050953918277329692592275045339872521199344311102939681421129555178184019938295169215870002230737008699351036590460757692876331360545577611189556224086517038870310783693706416637098329138098378344475465393859879063545788085426702463468992719088342539312884088225134199849991927336017956558303371235531225752652863601962116599215899631914049980286323027758550559754599239043757825997025994912799052254212965524139150994790135859366020553198972044674994836541483555822614491048332764374458623118608497826924690046432513456584291226377144992682119992079150992139305186609328453190271831930282288040824995080315398571347948090772043451674321440406395310639517309537743168507692543903118907469267669825178636706691350460807877643225560158826764124542052694600953865703543663954506952119826881405018781939710099376078752545192916494169680009953673518058170742525621142797527609198828612571411949722248070059592174378474230452412368709821080578958806423167932764320053148846627948139866561058240935445315241468236814877749987514937492920989252743080230629170681336527161707446643386349527420620236648188699099570954779397109896055315388693980795336170033336858976088910088114125631726786421207341735071688471509567562685458683244745275340424693183838585455236758421292907106227013057429235748126048568322045559869399533167734952865572774077140963097194455992563618308145105374979332940629815879956024715938222337737104931184210398986852203445104609694998980535799105319553913370406582504542049801248531256853831864073481264748909238852478979224770981475183346902593772579608353250130005798696501329205598847461828418817664705517388783174162526468058662935271270034453544634993507259451515967105754799020117939349340708855761525016851346526172684059004602884820786984963234055028481964743454339667837567357753958077666118581088238053166504704941314459664867407815761118412585301347226632070484703885378429499699860912462845491583911575686583602018262709951207528563207444962445477265241961359551235263381442130606655184921248744538219185584472375264605329466549160322709736102454652575444557200944622547099453549775568512642108971603002961265774561509498264897710676550409864360411725625512077168420584883367581272578564982544312636898533567362810483001671238000055977402665139031695861124997977268546506274432862604213993703812130396422917852023973933458291198215701506463271609877578311587567054978106357374142602503895907682982557644906256269227104083623597364951633616350267667740160846673749352477434818630360191350419697206054614288306041231062253849994346749396073623981870494882539671289933782807597323507919229395220509913266409318151285498688249490247264474134120441431632350506111191486036007428856029818553750244658958302004439775548662254339411353364150279681695397534856413587612325019401665930145132367560194879741258058104976639196004711155616350660686457017449675706121646181179979405125694123868326512429248000756562594110070316035758516913503765520503558899628303448003220190975074068692356593132327970191041396183559080296567866928545213361139859667250732060067308547991018534915528504229230851592677165979408612495958646538611122817688602841742675801855742875302087995203276936047525629677983519510410414292712263404330440453310311905732302110560468676742597710718658261555445020846622472073519295183358492233485748426811365074434705828163325609068915585259341633312207709117413654592111640236539648815993699249415778803910639070358831398865795548223944994203517202780017138134654104846589439674431056140138836312702596952073359924328986458753927722002391921705684429023160057997208728176358587767837355928335588332713993472853513968078586977500504932413346362318434414218670177330971314188468052274550653289926876683174189102956699080563135980101561697528391473394416725161196100057539405952364071870542189079570252851222003669406288749350504909729976144104797907045995095301404482794450685031694221825952817324990765999098461987593980303110236491007923397426164152161484924446227928728619394189330714596243260249746084558134454610162952002365964402157468323604189127001227510113401790777164796748229274081200625788911788944204099499136451976603222418267405897160396655819750309179652701839454212991748374321227144165484905018515111893287068274836729646342398638192308531832785705594943125661318325532373860873721551899009158328485903840506125592436379867680880853765830912833616255891307641091806859250034673639917601099992957620831016572481854130818938975070917068973323153176365299649997168028981745765311962043165086184274676988900157409834902271268225577717715494935620093621913647398685210846260128136416147315735261934316718760445133202723834983825940891133935526231156548239137568650115759012772215653808631792957241083712560076377505684888300046339002793737825138500578418462197801149095649535968365869482811515417211325146685201321510330721959721638756132377758564222418259535617221498523753008152632288298065123057293181900499745460159992723415403368521944090262476124353874203294814988947683517579731593949315881312965247922169689627892576205025041810702318787201616373237606596428637895701712613095145775684068762284719470076652995520975467582979810040823041784993560936536842954288809485599770785144487788615574980323453491825215501501343321594592446083927790260412337506279234533196306521363628928364379693484586623471664121062595134419969074014776414461148263139454246760871152195469551319874928314362469575078475399899655267699967750443339023636282084269879318153591962472993022195952340722170583396040953940405052852966838656116226196742872565659648800983499936920034940246947559075965292026522543435369504457425922202099935075693189462144103628846301015991634862902490292277399354578537791200310784988836191972717547501173971904937455753291402436874956579317919608873270128402716356139462137779326748892954804660820217839447299171400378579811454096964926649841618169146919250386297625368263764432551651673559598884741091665075012486990801530221032618214315670973366463846978478443308219326875383415125687803059428226864906926022776040704505717042464535659916072033192812221525437897651453828649411341085819993929233804520373368874290146244753092216449628121089279897857478598615532542906772696069090656841616577290894120837767550696016471866503525322262255192957045172226381169589687431207878640050224541406809311425544562069506618491210347033543721524334237454532331436503493358555934665689551058789408238613126607518760233282707466945802822526496851961757293922120489126205950889884618887603117848302847411900359343287356454346748816585799962327765725451803146127661497130489875401972700054016353928190652330080594389884091170163099997121875001305691746688088404047735586634092049237178297759457434143672574131936163649368999350182046507341652262184292037353249952468038472822587608728387747214682977071338210511413863174148438394961535843639807423644356682698912023574797443508830969504809899199562898390922701121637253126228452808008478273114638776312004916899869296503051518214573831937395402153020659531346311516811277918504397255480318186828327276586641618839162893611204085686269140272059235929122896575364863876170659698921832988104827143589231057062709986526694733854311478694845956880714801244173597099508928823770249546783649443150475358468948045371290917599937758021266456419021178807171370703719253774723010686209412341252262187319732322977205399878343583715504790146243301676985075187187745039087368068790404338819756994062449022740268045037195132402159712185748257553885693367147602505930320694745063816780011752870200323130485558776589506467961900341950220459298284531923863476095537656662339415209623257187742408094354368258300086122119663915419408316833626551936679547492888175479211393904066386197982632800764233256199416186511973257882785964113552249983385112944425556788465703766091988853571322294961832419894225544032204360976763137899137019060788201392695121731738393718883214032347317137888362244703280123216416815303847992923636720513680328987248989079081437170069449670111141277653018894560650379845283414893458804846272012458325062222546116479782776334651555882445581108020736836444373784395124472873651529549899973692203865771694091611436618796792276768700558324171668848497146669335400667771279399648480535946875858303948321161043863648543023267914331833895994788284335593773947254440548157135522576261220781079756193259134784391323372236203245158449353553726895901495134474925102461293940679877108773224817280789946241009717493091163349024085502500784486121426282231753763634112048826054230652671654225478994402571636371727855987384423836257794601289898917619604238101321095512642223336760025742159533001019131592551705531581398828334504384340482499197973752437095778513501804306737487971985680052519631458044299861578264251002042119886070088361498025415028018906632792637473332072822456513095720550184664032345037436117081131913333779006342542950940028163060203180024203805216664499899014688668907182872526078248828193994834637505244220692267330960306440704726426736444117401388218195947710996150745236335832608556170322420387873464170004328185659134765410940872397332301470299751024279456222314165874226372593567241611774869706025713038735148386901500574461503716433141154159386175955291819687965992929910772618425878401865903604413149398209924852696422263990505460884816207715276323654240798309665575908800833224171138192527641240442128077475489290624592720748714696957702324909569264091117678951876128852092613956762485252580885432626742247803734370798701680434501203034577626535595288686217363449810630721630665667592931333440252927865795646689562867183012851987104664340353018575776010618869799357094311831528079967533283236563906696097497248169514300708222437317205249903947276703827885588135924016288180882905074057010415542526168929672032783818569249904089017986981881849840161283573488581309027034009924986392508099384844355743077438946315086326900018457236515293843730831962230632574230645058086797678244105180670958284161720410116824866957920619053034512122906803001172013569553131573017089251096540168154718785167522394158622869854123135249027114624261982896462714521375217505470033833143402589355792939953376934039583023080593417149262071498061974774271957864022829422340420241166399336840419735262701534857454284769021551877362666751078279370898736143632550766601611385533005877658782906178860053597711357768905162727695093141924807423851712915641821823167186254592783450798932372705343879918474777586203283612396713105470992556193550820545636030868086157379709276405553413837194317813646162528791051872952425322062218977952160062151151972037964714161511612484161249991772128078694165882834829574758429376782241626929477258838469990679521133025445304094477762274759853191253634641006487569745685595670992607407686051070441830773101360046068475613912437419709148216163234170941603558131970223688545752599445302191478399534317404693375445283894291520392836300833914990913349415745211546093670579532953882924880385821387744254872884361261733233841803832895529796555132715941845670343729764481645468831268322621124357601182342873146517593171650399564699436937849380931458803379425213533086178425043268810580819547958740274381736755786998458106499323606388793414837543628516493939404605798803397305823876583031072418960486977865034362467954153316552416857849838614405797378642278923221102910576122653008499771832617140558080510308071217543135826859935606938598517384054112222270063543893154741742019340827847249170295516020156346488973729798506854788875335964220191720031047299330888152995154612565931473763444159209066998934608591123103854005406588656066422640599625661174619381433330852034249987364543665564992070620767417009450829430556715304434309180257205782945178047773719624319792945278765812440408260692643241711769699700804538159790441090985938513857629530816283261127090823551969764537311869077559104259879550533235737732284111513989915992937432534783108620915564986476166512190618149825005629342373308082139004920315249831768526197864188000938788078424624491601988635746602871496152146385487035002223096532515017559184627244105181160581879191155922180710260457562970624875707855623544021264759358344257621337097455926597346905963084023823227592192527452006592092874935300965476290660984191317049420446478732161371273506023085830169610910099945899638411109945578424873510343392596665554242682849821811980068334267134502266248721059561833534424579626525738611726137832921734990106716372482068518543220746640029333465142937918569911577918346113133150993586808190738343223878217904850897441904030993470002483704772230290021076409171869791357891583846591937496461602541664976096743482638585506799350857302284846075436163663393464730592159363874342591162930060908398308162183066278865489783684584752853015809689585002578604020523225564390521418616066521899362752443865827791779595250857217568929940319597079194720375477311233785405041852581024073877943540871130794917238361981992577211476394511545905044513088561633144452796241621915526277710311133118738901217457673712887292154484634200458819587823942315095734879343625133730989126399008935467953453116354848681386593524895350407894783226692360405414772314371467054537631604628487864561612888586585640551908593114605391361716844131778853889109787233675542620600401520677035484644542833851008149952215064818690859769760103586949309985692595684454056122338004688965395767759604433459155017249600507787777430697644009199235998517137095500662424513525233951158028582746183700780592945201772943156316544782397914438962330471763827697408843624697886208891813990901320386197893123541067542650470502124998065032661330602185965799924180376946927881072110216265266796404628288925667614047304436201973172491340294644902687861907832116856117769065690893512379555251518227271317751434552447863468504442599631310770952004265896989449351351012312424475950437513677661207687723834629548258575348137763698046665315962873905093445749924806418406357890499135515569818314332653081923436513840502767834156091313557664615872797010198610846964029478163770967326579613567177644804007577909934758192154470634118991856143362699717339062758534405323507384353610460968514436289388289666888661074885539603357487409408755236147704184573746308076389448545211578040127140025845396174487218274676167352111586082525716192727627936636988463000404910512374380029732595200743628951144748781206050458997182558383630576525973382828200715354657064874826463222055328482897014506535655369433330310125513646792790231656440309000957508043294813242402479412204500845521894321391084577455922546199520866828048616169316470891972115104109935811329796025592054044566387280314374833286454001290393743841018880143132550136955918969290720317413914065682291061435079534703612272451961414787095506670889365359132103889479266054078906242036807060413459159260416795727896826341022759554033380345752851514978000084460094916905151375403712155018828751197120174713892443540031018155259740365134343752180713273869597671895085964832798278418894826958026361885495102759811185577452786664196071432864178091014428158758530185034095314333915378888947780244925786986839428577743930983182703074578086238450778987844385419939108620256482823524156546881675059620670164015197974473491710592828370914454537078658369710992402618657460703899520820120125278517488055999081209861336161629541538166039876289513834547251503439172810697277237798738511562438499391247154782644774005219760638472181259065303242095413704357423717525609557708016252872443039428332523603616211066720995936718329943249483546312605634974456307031579328738445917674462341896629735799765725601673027752656153946690865883121736859487032627976560373471121070820899260711517564157235231010324003613380642875304265215030882629720486796588240114724203770923311452689314600544474724241056522798350180371118692180508999745596568792425969603286926008684018714769735142703349414816315348407673363274800932650627468074824509061962547319519500394513478517759200466146551444227943193508296656372781468383158533467860437916365963595471805095249315052435603689024329501585624740451183851733790862959393303215146472964619356523313389959864388382349407710060715418670748282741523953118679135499595917021195628548261316411305367846681966259576251205179508541573548222664367901814637211466362580613481433760280385160835455519252005370875555964946249081619376624521728040021158344370626492753134512654207968162428265648334945268260434035867548436140537505010150666971675474598849777007430256793621485465169946082933671176530280723242096112028848623255692293948778085861756418844502122125489657391336580910787217954401164082354987019574117771514005148114838348871462050118389795150389550581985749316247974912176529107654697233340381039086616384059131083158438512055433462426638674594350053473170291466978692636707202852393455695813069946088935963532780040678202953866198572079032884109467183015765111933626120605420991005686371851784616937857884298445601902928431554948310118369931536785377357723117918814172427042301823787431204091631595392533090112792771479104900360636132023917243475089416840110015772132476353776388752990142338928394307271649849166609654358521460882840717410181191008591178394885796817831558947195815948038839221761842045117227475594205179902371755698083303247539247281645012139238256474774716852665371974659978110090284816157092228086861387986721488921716614041697135028937702445404520202311466274220664930495629738914128868141297988357701273605883049725650352775553717153715524948044573186830030860915123549090606998621518381640559210715743030429047756419300620562324478101534306734765124539075821857572380760964330166211803402517888331797397778099628329678835595098444624528084867553916005206919714905259747752844651950153842571652774227103553691701754778600122013670259205947042614509675411910357630745419409159927713555942195342355318234642000561953036934932212446714790237207854972759054513320080020331164735597816258882374598461901589246890513476193143937337805959824805338436133810020935691414609709195864881233852196004108726975546535041188143801121522655455298187471001145261451345242734535025331595386262160757512917345795830099472904690923661192392577527568295459938150090244549739314709786360669593500148709049268222152346070938455080152782452399354208924036751195108335582293743025744992709496649803683545963503732650597970180531675064835541466277548359165091940295821453841385162615117295979570731155039681294296554035495128088935922933804969264538592089460004240166174319874772204275819966772586697553016986587634311089392702081322775884686338301054933558779605615392091666995338580759183224050982536507950485132095562654931737509769680028450634561958325450222621081184923968532270589847992283663077864095932949796664395504770322383095909180553169166849743764971985234703325839091842869790478303185241131327628762645039211725263893458353989047412779702007350074021986361702913825233634927938170578027873591836220119742418980915172118278039304947468643879433239552237678235269252790018940337499351210742977474200504656606633547138174769226631199563401468812070993015767572813990830971843574894883668270635973702608669326574285386176874295817082198219707830293375042167400902351683351026737501641425471165093349985625464559996721642274222225574919604808763264521040873990483140097049132512436605135211105729146035710087770348619133723403302595352241025354471254941741263631343360877036609475344467206270328393420432781396428739655459378531437509257878773904300230632921073268415483446792690344482194227933915333054947552247721731303943061090272499626259630733495331693924559420599599321771430865246938177928953571022167233232125923916446679096674699255248712499312631668826243723167796861876071670891673347307635822623766678602386168690641838806455263654274496110245755331208334183078823141323760586441722051132665889673721109960854758112216599650293565574571014101757656654573425148769647486517959412184892988047487673324070140987262801091252822082507305750391899835204864816819417421721791429198455567317304434588192023778083087496136571393095926282480909414565050052174509369222116256672593842395848229257623803801320010776085157371493279056224663399371340174187684335064340894555324740974404847391224925142922195033656637212472044668896143093296596683609898356375889910646582652688170195579529027145759700709265520082359357988824437043505759760199231965054935397560871987542650660483321040681387042984802564309057532356015653732328693506276905054191185051397714797087443358078479061777780212856771505678182242196345500634791225436164671885835375647386364886493526575417490437755631387097330231097917904240158884042961204065824156147602908221641585303342779248061363923117042025245228308059830948329878112081576454111783130712276455340407511304768486457899720399656382793775732733178876257550702185143225444954908100616492544561592616709169593331191362643019482671877806013295040394283609477363553694417893841586178790627952527178040425184813407460816822050441893917899345879795372101943497080731841886260446262584217471218980631354588679565743398344349332227207402816460285245129106015616749038090443064315822287930682264944076155789452464007310950265998429049490044310647366809803621971266347378573132505911706343574340785112899004711756424019483344839905153605432862841132570109269461604946483454613157887704912055676577152787949353507059378835769625313966058149359800251116909183673558117174688857282216302505921080259478694359309112633188650389720311520476454746911337290762986418796329021224050080504544607741305834204644362332759914403647472532448022812110798387666488045935241112459275580593461251007232297472841850923816516050337195017747038061089977965233182182668086443372408924113152239151843110621282475855939615515594646442695695504605467689520784120673676282375937458510854533107975488130462236051159279665846908723613241145873877762004363194317358891527410515674415314424679556962164524800358621574955346107291533264183918171666576679958546111913565991769254228755426428206432326255825712773915034180658213741355264683861721059795789768097864532156199164740500202426683811407885095924962570252716905118752706546484286978071024294576704288350315136191214134907359700178259663246019230584445410586513291149354787860187706335227863089412775048259860867999696422072104094621214407649682818238124178850324662257986798043096765862161501008341827690037963160029615778778844147696965195809810445799783312642990290541190247258990160076031723238665420396278329231636635673270421247845374175631212306874440985072407316792096305261964553750197577477481198891379166109453464093369355607927166009858797131461558768433852601125576825313277837647387043573143802173383072853913889544440792652240577537935435945880170065616867129265522565026396318237693372586875371013262004807380189214792317801665582375476958134328874098958959485704199485787095795249585442706995729086081312075014366905997945608012489889234451832852068480997003537960702790970621467314164149268181877062387185113650499297725780521635347558505240196187488383857423462253900693385662667704585716467266155465663170539188355394741697010389470536954524841270600847795338917574577314797686412662629793820697717413468210966736171632107698831068803931452836064057382483262666455181492879530535221838907785345382442431366592542274843211712680220181226783540595951229763385989415679784866104767140549034637600872555490447746049720822725143222058937204009598168001679342144128480931100956763824507211056729097233480741157935691299311703553179164876605675974901745999503357893474502965334984395876491051139203782683946401004986510895332036783263677523417845922139115265060496489381343097490753664831522417515539799762088162850124810858811982305895221676751774248227432115001816070600529965441435225983326214018559192882335746190975327365160722112568045075088743432147146774672611856478482694705641775302185192451112990596577559711066964827814750248537773464969694501870175984309436181839413464174316685515024222758727643513559464772167789297936513666766611728002262297599730768569991210495841725813437019205141366364035787479862369017193911744821863847560367354137242584149261389668377397467062440302032927608171120164543962786937790076122674780232937030779745377754454040066201205035461539007590135924574882212801094870261167348026865634055340141045527388863969339873611856080262796698356913480922581670467760884878642243448011673040441972489273449913696805265327943872320026858530860950807950469543374649547606720057085894805393777428073212622546109145607063407308722643861500453410458659878071785131504255505700822703226616846189469661028791423010771725033322566666125413668745840591027064347188298731323933400109519284292795339757693147243644261477817843513650050935102860921370559700833776391811510032775662538847754563418465319224282907446552004603763896987531421475167108355549738258537975029610817754400584690253045469621168587810767387509757317481820722184493428992795402314578913625803211492737328860118147724947838870987401092108509943875525926999414279682119048234515498638047039512407626723713240372645718141343510297363024357359861833090118577099262869953670629938400512322128099589807798641476221051110909466418678472460624383757734636122988266023287622279637974594584447247611967050278270313249736113692879511952081819436715203737044673420790719030131527895565189417235777921077814285910218543705444598256032246835006271520254024088474014464407722340368311089217372860804249757930973997145370822223439443040368806987032455871474833205039261966727064006298010487671201040751907287251330667619460729729865507566520665409786353280675892169380547056397841163849690275920700620787590182162476254584217802345282887162787449079859657213568406825960105679597373100464044555577363229614810906274281556306293255422237017697217148680924286890411349738914613963025600847216926946392070241443891110311324083809817727983245919586885732818557043811482929264466978401265488584350701666800201971784049497578442306601669643400349460043916743646320348095119644770717726572410356869458944214581281686329773493665897889321590370892800081933479684204172136276449903331443521762182868201233531702178551359324957739585778670728212866551557095321539775930105005378344723148930747825849964263801465450833956586995916485844204380867615857378602112703564669703608309271210876661452907563799725863136532911280245041503106315663426335546858637687724044887691173237379880176378634161527281093415902120042159908553746349977715296101996772858432120673697941780356615801469802664044347490156992323792441790674017484102540929308690605620061959712825965026010484816520603708401084069259803924385201084132102165527578603166952266486146555835696135167009708538272002187829759625429367043978393637264499450684445530555172649007975024104735348165767178868387751886199421243139467632263649999987519534271278928835547513900487779159253034076494875202687719844600632198181561370355176824529857275932586522909927106467826877845800910542108610227106404785330220988436293814503122138185901139894197365615632466386157791539665290810534819318000149551057082497735738386600853497444657476819226397006202813332790065989754020074770302484573254502804384916114307810944706963635728994596808385614179536780085104918086377840657874064560324558756931122041665551237432973096916169987083407970859193419241093930183082215474973953153576801573910992848380593800018919751720316014178149252308228147900981349943967607727894798496712622954416150881638471620681305312243039976794985487455943261149387161232022086227787400584741954668245958836271263608173003146968406585231933252227219543098232767907064898691679941203580110618369796246755752726026365453158515080260266365744686013655803237280043758159114074024009410617039537196191559612485305065461685670559450099138694318733965111722005357650921110971117854616692975427749726358134812171645899988304395790922565769166118200347879453570203311818554031538315395074069034838350556947268323178311285785118639192614731995629529017846043878296770613061054751160572639002834111280161618025705285170766304219597351734819675950373519247648328783991667441810365558804670365565713054151482101333970167565446886845032768620939339392070741395889984486762088286570337538601647165143012997500123593011424631203565902879543350821975287261226302758302577821882192964324379884881589491338542331523064158087158730931660170606460017398719375056998123962887860206953987957047045723176767564261635303319869330882202134914066270696482265676615119206114859963814176773676720191974118995435815563239344281198139230161188853737821678391525091693673123323870065523279821596632314714623890329441668838993069492821812125871110216969572937305057410898987177003886110206779925040703090886497222770273694762638741993252214224011756146698014628074617102112122017181351823436742232014640418645661577382824643465469469177179482356895799402542258876482266930973725992365674862622335691159555427915037035071031570831521007880990868938879671967078853817018334100284181992112324951227820656374509011982283440937068920245633141980851956245418542823386376859269431754318711923615056105144588195071843365720954548706296240519501802948630623345665177597232315163354148987221663754931133815318808646844945436891127562946310768134702923343240656232792222768613444903494974593273557638039620984909201028341505690469095315518822938718795749172893533513570277725411380114222708652141918332348899579792085987429603944934742931963681926954703004992574608101782078955775990094352979820214657668295016971008105982668994654298614397954722204515520811102582054023636136975262367821864765670269971369893425743341458225761539969018719739434238503375581454310371342510170414528530528044050860176808885716150412266337890062790804484319721356145374427479661412551068103523773432728101903442442382996660470691718422373256546227911091894223222433844002881148772572171442237391791778040242289086944872213989686628823691100155063596566346525090861814802885499144387343047245996858354006344458495121235182708965693361091818732636377508939857275640689590826558917052572759511069506420974715884270790186222564554357654945892809564415545847039023405740395344436783047929134509926237353925457599048823383143714466363040021243704028221386103961039690693305784680482902187144363942104724386832933162195632415751147495690330124577830762742452277477556769690221256264384966486921863360582276833690346068389411631959208157742038200349874052503745223193049945038001843713957496622901602118713152470170066385029648186548808797396366277821572201581903999656707891857763667375469979798197148605768773093848897205025594516413962489988177427723356663608784009233934602664065715524607485266359936922654159497956359827048839334115589908446438646718132768025857307977614412133279375740605439322300193940079928429448919980974456370961021369204989728234177043071222950219679775358222101993664124552958088825933517467496943008412746690272679076754393884801734631612953512871228878177378295022204412852688016044250408127932819287393424719656284718952265094162254881276804867318645658083643060756304650742261322753608603717222428273091339016169676141826023005804536676663381119371106948650626301099703521652571712495261971564127909390098025525509876223336211641080830995238098255838769736193327587132088969097394893283577376623226114338696348322658763419689400660809317602818261200895820476139195864596429707120747308222765701816658505970569215551064146631532490130116500803346974649153848982124081389377343353348861606263579628812584083855893336211923264743705796108379754696338770955578701716908718329942491663830704948963082962621071251076557459273637663173458151890054494415563154315282564566534772687415658139768254760680982518989430010572908443208595551728341504139030444766391839060233593621902049146782278859157748902553766519925826321319485200913354490322373142775697699944493559327183685904338413238924795361694193486708723871493881045562005372653793360328168198996364509740861559383790042318796014457658240987203372301296160341515045803319618997250794132237542193406371365149715000669779145720848815011223771003672265636300866417582747974333684917621805927178360467771727299358888533811686563079238669549473855980156724817803978209353326981134500568593655972115569690464991871808452314073912799764943254450922404883779642637089360923878988143397315700410492284962347961286750691607684136087769065018247816810659718773138041023244790700994445408642048803540339222239198557668271137870382097800979345348521799598836597958821507003404528714910428256622193075424763831835107129510593175335402171476373553064616818225349031413827307468399424227268071019503365026820005899110093390736024973638776908173550867290894961936859187650858029762150226857661047448790260194638639878752661970439323247567112081478650547186599598618979154960963360147946531922581211597288200499941123542942975756462834122913406689082210017517521257052914778012665338595807553032394970509908172913965007491280152954739454961783031738520083311745198722126270773165148553923584531965762657402324334824521206705871308529211871159830794448779096448133270845547924465720587087998237465132785230958773722824270254000060501934256359573168498649404930410224098927661915788544387734954381363992204493057161844028155519625740192183450167172952427239237452801231342757378359197297478892224356545412953183839014712830265347999575665248303605471306874764227349864538404097429767747233830880592248980680484382830887493515901111590452437287423871998078609683905335671156449314824525754832345073442557941322201466715198116629530240693508301581935068497328869689145963269250284397261898192091895854582239894713591388882899196523219728822439296647422537162275652586206796832787064319869128714308229253936663036587964717604042851379905207091792082423495179065020915489467796195041401854307745101099187063010962539205398957264411185845544447909067193175819253924719805294622173920112295060495995028180674142194188525945981868177003285916694310622151540251955660730670375431451975180909531206880280805284954340074944944207773823859781062705467243135208702528128234594306109279986734963209759271520568538688323598419860527119741336643224437443355147829577907229039309221139967457335945858677585914489882778048504249661614567429435489257746722666487643678868728483780792521583296106291848728479910046956802413221094655718415299344798877291122498944902461798380064852048245749386661533573383128266885158717222831272455409855516655641482850262337975595744318715018069540936914172354240136881375007815578992848226617601088561849393809087241798139367352734664664883259421704170801478986847884595171129645504546375059729332245606145171616700375516208068201035371079499503200840489782734621132731556092366247896462095528106069540526074699163329497678534081373318193627214089265215937505621643462424993592670917828775999463516946933514900356771608061769400393224949454876122440693140841933389548275234094861576351765939532143588389428800203406686299360760520407059074548857020671755624101472200647223061538119341320485895361740465199390812447565075105471788592127855713662155466988405923238508721726478269009905198113355361449493430570514838656440965080608166148660059006316726350106735894036618525744411592037344836054339616958441676505821667707487856341187748201257849301107245791674993611776504819863212119982872730355790764072720116968971248772694882704367664958280956338529618086672112055187476265907450890044078887064450925468721298954654720076872359675178359222717892578446839813229202374642724076065990454017749350996173442895432270388596720276958052360651406926025395752543810340139901786291348771647769151562930046372824633657903411961692763256659092509530725475635928477429899501048054751147816349536484927285750379698889679889713361203091802602464088129821969486841599241491264331606092797395263520240180111915439253671336552450671569847773431366840489237803540022900858338540309040005848656576397876026683490447344425106051533398179406286893890345269454716786720444208146303428148691563295524720248180006928224715090474706226139311925159054908265263415840362868086697295841425975979523626144003626473892165192612277465860880664525757636376133656407809211310669445504798610998357523211914521669196648544159198458036793019602504062713831725914348656384176076614473587505824292098367658057546704632711469450667152142581251218458937334265720262577986159604412586301755095290142203195022930883604238826144037953538167562516060217087261803020170212000131602305915412657167495387617375233738616600432125387710835677635023646579186532245944310382659118046843154181568846838815841270377457258105980542354870418117321942701322929808029401129680835453668406667548362223638147274142137668177948018891956721499759284056988070082398499740279941516575494108847383907662879665381980594939011447086600122943097147810844631874117968667525582899299324975964619685743404639355946243334485062074513781289452887753512789380188236038421618608737262158733662836561795736388277163418765997870889165926175054813023003634881257750740160502235360351301535939894010753253237154436226669164475303040616218178183370669881907300285829010860519093886957828394209618997795063826123580297512550594821369378189577949128607632707987205990780105150732151667609026544536827874503134892573190704661550336046288083572923423542696584487803486627432525299792375170132739888905090745680308754880050599476746440387141251152161391415362716930823138985407820722327480278421830504507345005061598350473154609034717715595339606949689556833622815295446420203182156637182982247842148597721532630883039454042819451397837959230898638844582441504602306156390534457810202464363917522086238757159409138425492981405946935765791478105289804645333333294812944008242675846768057447718371051940353798220882669309257072174671353284750305701899303135239824255451694715241473187285173053285483879273193300856494686926112225211054371116287101285819609713576724876601008480334877261311509956290454991690289004987184723349191528967031767133949285910622357415689302676539477179926859613737011250089892934969309690697854161744352672784167172431729090221912506882973639070289230983700735618112932128306682908800820917627004095165844811911077673680590847499951059903445984436364028290202671055781112901589762527034211601854473441156819047540249118229575442512912635776876508626199231291952501379840187161658289262111120457851075011265219514762701390591955993426049199590267684071232521964251464539930328210995148464280208438752983174955668029889841101110058324498278063496768980590599744221279483992310461546655427909529780289024252525229203492991630985950610805873293523644850083958530576687342590312371956623335759673083476985529685883073676386766573300784693129261073649866458522768826118609447607770286335115730645542753873157649906697878144607313689510175712629783081380925020670603679352051022112622820791590910054694983382221689920151957977325750435217655275787459241008663612807869102910760654554974129779003075887714088427696236453623266465239064548377210370738048593986168081486863052618077676776534984991702711613735639631061601775104081288815948464316045773843432391373811042283878134892731449569939952340466659854807696599523083192108255434480456671591510411132955862198261492439681481424192770809634602999147685444834298155223344211025157962190605904653984184051086121632239317029172925996961333982083826990749770672811456526294061002812454828561152763212545872047666362116291061615656826709080710184836803434625727771824942085860402783301277401421271813832566393176001388500798060588944947749951715575321167831547962358701455944078451993165755731332401632564757492319204557363092299877070728477365349360365148859149606629533574334299138565362825492807065332884225471852117585901311981960323152550214700478028345335824207385881540436806154983890830354128439139508683745463771737407625307902471750782805897656617209716732425316386574110387064040476709384306924161249876807040071731833184487435568238706335303053433818178619568754813556939653571205968453067620177068127203901881226778338267404526469722537878600268916105630542696735059830395942930589809441928502303447773355516435415966815166115218511005557516046491104100580241519611078837185345930609637003809621138712219708435537875876826746822169578057308338070179089683097323453063218733496002752935893319696319400099050864093967079365231246428280688869562172115232091697434458013127497272380859525599825716095383788852207220324502996795405897026677307032341112367784132514073988421200686156395985007546286451967705227020060560517284918463381010124960442117605335347689244800114891745640616793625204380164936307897170433284125941037074796383545673205921297279648346072752881263882911970234596646268050406145970049190725177643514017604714160636063911444852353820463653379715910732386057322356551000244599301173451426534616950734828637925579121429317448174584019867533142661351872329828334155328362702293584660960288239685075792284887448165752898050838290778305670473971949466386132271361698637084447823891702985160370386149810518702491885287741236666982984544347109004515343950701449980648348246289682635895940349536293156716087147523276255424952523460141274716399020457579709816319602601412464004557033667179073191375259141869663526225031364783349621310283202698961423478984356311073373933964757640646956125967127510816700997609732571073143034888541746668652769332214578581385268884195532353457218366603436344821302677301448056960302500764618007976934449210129490265916447262867797794272451376305337508029476586209974621658124252805234305142949450146593928524969120575032864168153072140513636266887960326098381876754850882428258280687257023972928481676767680385154202716046218971328923413899866930714500143067302169681201303383872660593423524774537605286693972627466976336439337092109683596534996957955640757181410584972065404202586639628328755706069620650937807045880032773635826781577766328633581955721149919008718870165284153553326165736809731299930345118332832159227170765977151484486218011193877888994750577182899213532954588343810715930630143271740383708695352948580170266372219490248613529315322108721620212750742719278487651269006582356751769160892374273089300666134489123491265729850384029515234882294798037335512962208052733291039647821408523286669821945885421385530483314882461343795119724631150725300556822077704613584080085060034095325612551789937699106712996296722377439303827637924690020220878638553069965414933735986818336574169041429608518256090650083207000739879290349194607327278094602737287253860183786903038544135366122858104961475289049079964697752952579374739701415046364876900119939731109619570154505714417827355755123128163095279045490250835064006589572757507129014964563597447401204521211901689105355637209276173879348559404268764058114087030810413806092131287032197959524373677836438975228274232088869845050978374028612010928533961172600169982218003511440880219182705863369552491499497363063264617500852266607657607775717545440502347190057822609673853961464515973492467247775372830786880834960775725694885353864678535865897974464936488300069559508812116737894972185228810071495821133226470499043036457443122041533099333459383232039624890575931916246444239180742939604621862066174035130553666685480684416655036620086411418428307704424110740665076009264757188940204678516999213205173794650624588898946474220024915739839256630881566321631692238665220366016438140079273206424113758164940063771496505260780051885045524740718135163748593533370434756024129111439018671772382811094280196609865643682051365232450858544296312619925667038726485761111347146050692117156658822795091127051331658864415487472380971428484618082773353755089950652749585113907509937384648215499536629368645616421179032532771610708798349158604341343563915784496673829390856501645374056061660083430315753980388680087062749599944768990321971809568906366931188733043587328994936520717183790563775285822989735591731695389032956724093808399895713469587643784672381600861619296843028382766242535551889576951978621022033286818268925912641142639388919231716431437346441014805678711602623225717393404037440859514199253352952732502235040376830848304285397507152880871677614212062973053976829059264762994194149538501307174184382800573909633074599084628425022918291280863630095021723291933441153633469555462213879418830022509104832015882764795599489162135567490061869198858941843679287084566424831514871934478875837565075075077924423147232877515907584109948826574023487292322120268249562556181935087323316275979307383330322144474498723749079612188500293273962638816088562959579350817432468918284212973345730137157386038001264320531759923728131225056616741989163860208371878431939861762491639958741139158388198569373460316704454155204981188410605786297118576006812618665019133968945849568893020111847583473483707030466578496511922298098898164210589827436739014919920406783600514107100599492419405542069524033742371220804958020696161189479617995768845928283280460878210544178852670609991588825345336209413615492131036299285254655571118951602531514834219699054072593000559157167048836369838563439763268185612417619058766448564553959239905725240337665006025556933767166053293790282706343656209556980473312745894371904028506520818157042960249687474652483591046659663608380092767037582699900915778039678296307145942238764700430341208899606153053760356565111287161493050228141274049445974226018948325445925116574368321601093767593050186662914269805843178733498398952761006927973865245865275230846760083109543472835602978948931023896780869141997463645173212712009539285776078071129088425555771505365300711079784517169669721962126086097472577933555909820712893283877155675890340420725850260896408009598867598700082562983675086551554153244536951392680322099335990619233897594704995355149259448268967841119820259726640361500379470187211078870528345444141056460240512491143426311472767574565062187534170901237680674340592134934892902719700424776538894510785429186344502103595216865955644422427658812846833087144975079356416665654917152873783332153251983357169160589925776761894171242548983298894026323582679023306850770704689665550654802052282915156242372089514607423748350454299333177454719298220582140859992071936893468297958935059838503064792676767059362045060181203501104176385199569408706110866536628531690737302665174242048297773355095403193458626463230955251694997588281640061853177290005262409627414282944628437569969446856903271568951187993025001376446477879722708528662250316194382553885798522455738277673279127540483136661321237416864275104508028216055867188509873499867101064871543151731597970272503951704123394285093485954939075804672402809699249233209847417986392462219044437792499667067460452867520583983658764010474666920237784576221861453399052947363954960248809958801183431923743030630751483836401153098236905805156440188791148298944988432815348473689967964919395883164094495623979712601079644370587819803759858661051915501019750461344059324455961026297680908977617776086859882470050243789900233706322178971287616234229012186890836091723881660551927664814785629360587112904689436138402951283822665898336574689839063301512525674199261174511678389166320716439266460056231621004396625756249082901226134750300579495313364826041364636429452310974068659019777109914515125392487492302729923219865088407821539460272556374382756945580925180095046747861280089264997228804662661567186670029373295214637656155809615712741879003700421608852255729471960502520988208493036797277419572920180321416825752796417793589035682455993232215307419373736760546999508749983363744772079512543929114388739443945510672491189581760763565725881327003570235251448471692840752746874293318217652771975646156204135716890162854655435859708340467481819042284352723253259425827780540056513421501041111843666857577560018968010759380520469906070779018378738448713203373133810464349588583909667219986480313580214575448451957877160041094580476086979810213622354177324504457356022666362828678849410225185492304475644523833621867579455326953566208569516151747324083383636657190795542273185741709980089928916770473774385577947051561454114814866173115302308264929413972948902899141774273094084765640308940293258043319786286864128878625305116221589766640628771519556426032825055526531312865049003468772848821434221627599042913284621967096263277929042123578072325137832421512929344324082051746076565598508131368021447826984022117668200786792321942557733429693877977429798269417280482113163003273355729035946549853944579217072665283135056871804039630641366536267957051901036473172829995101667033506323510529366427253458886994858075954083537981035992741966491391203732908807084373007553630494764473184155993021971145323021580270130342292252008171040739452577238433006180025181709569992157625468862560953641751341801048461292921008686909668653851600941513553887437553865560380605263567365292648024246108788279241987328555476947931015606324631542367150721904191581138471025881678933830081697702749244355257227150248772632675579504214892058956667857429018665858929196396889082038133557136128032977644511987475580178874202290980624149386662807179291190658433898752709171152266484882156741689931953976808666993543413721799372876393833320271175814906842726683767793448687367341049250214882475722804737615642752637413180498715714301942380581457171611160050925679621699190723854307077030973765522300953028555998143925491966596353307194444309378078473141659237810785283594622664507742360855301340381069862040404253831915296612887977664170337290612112268426912195373952808019317848967450585943491744659341971063808712201607269882321728588598846879072496177456706853875070593404504160575893937448520040244912507953940557482550205079396865194435499423786723455962593596473794009233515326311902382718080506966474814472123813985909629861234254165935586416957794069033787285480101435137065898561937460291345513103844476389736703806165360038640923747587891901655996532128638449244513925159172103835651449038824724375661822818255139346199335322991245092541343811657694503612944015555879367069589732886480975156522145848592056040601238035097293155419102858681660635303290260227626258065657803323150058975160862719530534078121361329373388585595870155718719169645874142079773567074339547064547323260867211023710629099945571355115138405956400257280347934146469171817270503703473911934987735373385754818782295301938073079764199739176516769321398418069616941850785430149208547025952833946980711623743343104209701452586344825054912110055423491647373228333841952611900844450398861946005291316756430971867314655146242365290047484192444499436686724108871806058392664568240857134993751139275408750651958195869393572644500709018928412797663999499952733180929918683682943652566533696354095575016977062018182801937013506890077775843524127059488268752077529466073235592784438237161431316006612078294583748674016776412663490250893090298893562819318746780860245885327156015415569085625479462903857869178981355956892917052993962635053896037162001066234306391145003179359181819904195062232422020828023382327528701963197785404229218241054997704551902172666361263882093249780360113264606280822784441621923162542151769980942142125675483625810571600152458309888557622958936791563538457778026382777572998581773931394661707995993897326923397276194482570451974816575749433278349220899254653793739036287320567566036365868854397175693019564010473132933788879145713931112059068258125821378699394712979380840834564437182276915310517426804488737270373879426835684590427243880696989443656218146663855805650674033952507236216668472157668282412278139872457979587015194486608075559612067470401343327723071919379616063211062410680144188109284799411477667972310314426913914914462900892137056525338145580533445260783643115908696087642801471629504639606514443845655040199979698398965420070029426948110640301251548865176973897617543486122112704549464128569191505198409283495282193285113717523359362144474099213987525656469274031352143521142168654590162954984322847506726395003851979482584185392898435742457984290948758544817514874257466550319687678414972554499591401375084181718248143818801687638615398250114701728492943269276019467988428138567904880950170410425780367299777725521209367902296844237543959954099072649843772922651959203859778184706326345586179089388201557505903256038607082710274846187285613882695837878904268293624746346860089444923666025080469421213779945619704371694438993093435685287138318262146505694930215666295426222284552518628687344098612308477519801749218894471473470371705626152396206078083408930184483608796086024108641119015248957891094269179544151815742436417095436001690580481019752569787366138798814652764941801664562876143564770825347917323262247857443765456899949655335975150958983359800187547340231193375351168511043816664975863498946915008303948352195370128227788545696759069905428721063529170925794452939967386888435507233122086178614012167928531503630621791998173838553114308530703353604410159782728839403910198499877241994452198084199671656741337471168147326838834340743128091551996260116715442012844829214871050337616443885382676173490366907183213543995572456402918360015934344790041737138262229151551251041487215311778612056307262943477890659041588732167869522787691283472235774186288553925214512124619974262205184871599515659661916480702151184435060429384136787778155625369376541770856922943459551441439684744807321025428162823762097301341136942475355308742750500076821476528277014502204413229169468490150386402165205770223414494173891236304585853529239149977567326023406616980818623774621272193874741700321846237558846891019862265868730566514695533702366305566707072222741143321491440071464295796237034662060875489304706759340576078588133616582991280937930969223166388490978426539021295339678879885519959022007176448789046711588258137665411396396780836505511399060812673804971933911945958179099740823733211804280642991139046916286870970744836793065329453874918991846125744661296287321656542393524096332445394197890877173745507018548940625566744704192244629869319236623077763023168287934277776188332173683252799936582484487426640694448713219833576446529472829121529709175433770471979439984307429575082780988927756450058194413718117197611175328282916968468227899182165829010626119157066845866804463667250281360431974726765747346890408976581570391721756276971295502189838067670731629097273819006076066488319588465941455127915043589292847411294081027862010103550137072896046550317397684304026626880214720178489371686475863846547669639498093137235240567925423031339433246500276788564784178021112371530977933315671263539795126668442523358249564372983475286912553631317483543009838406765290569675073886762443295548335396709534453362033590013302044821726108788795900531332775989848962809436917535862565425116141814337695376878032759340946363707053454102964859391110832953496079932482180530660958328301056949633548202330740550571440751104273978962829350615889402441369985732934089243007933766731498523110147628453353612619366180986373777575063925058367911778947768028291440881485686081398202430274574962669102757018364567127989832633118078954793848043682433478974236988318083626801460362283261737507188816547011214352267520372529268022674244627658465565297420787109228966554347220151815341367225362621515892454654578876273219262727727454725302824117134868743811476778634667796732261250087094917242789384487018507469756631606813623728946593069372750906793351595781572466182289227103384703099177598819987396533055339264088981475297792493284973160414603786394199556207942507379270463969710561734103039073803338624516926928954483568143715957369488470201296314068648281779176446380648800187382926832754635127037115038057901670586545015466448891474512745694271179148387427786705678967932508665024988018034206065657957607253571656303682324595116464212201850270665107529009135865857881810306466516271114834316965889250184624776655207711577767805923463420312922706505931067025775908253098880966800373893394871111735372160512457714576539580606487812578860849583979668100085248092150097166678347398924112309122233077211737680102096815759579361118241458188040417628473845340933022747932247072953791544066032269827065046071538998870587984905183437670346865823497554400135043802126093222106820850386264346683719891282131626491436089129543981969045949301795087378597344719267616171200147132731725958157349029218796266500285465050163887373583495056558506778800607478097258824573626163098466676256717558175048472113410021375783657166209977103540001866851206407190411479356252218238894012272281353843213961458103472682056430392797239400459812537523287616782469815583152711762925861646033059391589760435668224105046884938102834261684661345973172708868944658451739900411662580974265255173695598411224637918883127775540120472820362587284641682563405552376521728037135829651927775580149018567028680687383654427694219807849805958589390376845747160764062069412714602800277102585062515257406797921031657912604082149325043950353370829869392004299628312481618979881467075053045152372399660419051198246203880227628553442310958271711029866458428498183967786301726393844468019211986869940591323326737897534683081630219219881887638651737543920202772602925160632986313615293760919937974749373104499830747510627663579979899097608153527830449095150204346491940380457247821811995112127284661705516053824172763334476062589932281872102147769288731868965340806077049361943578533382947523873860995909731995446532785511716838105525193494991288479099302228375839488656810392840057077476945984149115791651453232275384260875822569870580500560914172236516961102598008641385904205286766173229838025030218084500420735542456251520182317427822740114323150159747001559424147855374728019215983828763085610860369677470474871843485589339224172113225928369723206976664131397576552714440945586756034576062218298385636660881004369586584292976507144103685995287705464905338585532559036409191503957308626639881886403258137145224914993343666621215782790397624440248653135541725002252666121421669034811297061047973925800109239024461906117333444815822150676204141493580754111651911402591272156631363074507795449390176126858126260630893994462895214325797146947489704988642775502772359924394315145768722452342516879874721946134933013359750822248053127246135312167787648096626633190227770341651216320922448621123017271939086188957635381460893033624545790096918018246030904606627924416677655217021463742436179862744657926573114982440038406618988910357611314181435483713583734054968336542710362449185724680100172638192656535491817913805598784837338353882121417343384834810369964914956583158629319998815484090831243928867080231218549360320334599854307870690336756940777525524890479947866458039100606581709521660352618187677164931747960730776510002028578784310835045563970813454642982085619766094929713011469616150352234047571227328704117346253970125915954869695183015546937482699020591678069940682300704240441876749799312651146024513752929000521105133513579260081108455111987630909282626179149511348847775045059593010882926743260184955595973308185509945176867972587552293157046987716472608642236156467228365313309379315422315506833648377608792840919429910750020455489282235319521377069509989484252530396502868159184882986628620595350867424271029410877503765175732380547077113381962632299996202567620216640269047777835149940566145963804932433318525479376525367354246452761138010211543390651898697416927895695772502940526265652719315872049585256237177450583703414857104245483811777870701251079433636555513266749785812311653736034763595949487207393388079669389171354103087739565864174805304146541182283187924201262123475379128373019272049785314834210441832590707705423681418573200950551710524089663521708018456171183605143328788496468790156367211064068278377716816092802404475754905071487267775712650045869892529211220105995338035445005722176106152073789958067379068429707349324124095565209536590611157292131121947236063954499964833719245473761406509352724306003941040856626682920787407569501319275489999459699848133666647624400653635571410382777226841946566292353772222161940103148166161294483312222269706317364233729686885948905898030258253940738717330616836027622784566598072394714587048046217697434557881805928597708655176480755032764501205872631436446010138713934790683354742657385319910466831018767013876711871904417853423003678834752663503946836694246380287210326361339823537924089920489654071264635701001684686992432894933131775791485110334597555666547124353184459017767420144259862744929185317877540186806562051452615678206216168637272054923038147420507009841505834598592332999624564699001907070938866016292237745523016110023914773252308864281520109501579569749651964822029181019355387446816650156432710696390841222254908700445132405907726318664756826898865412774367417246123649714234327434174039860355879624947237673644484150608219416814019848170073245019664825130831608314800600677978321377449192381585051126274905061191907952597515445470712617439682022492188739072581793714874592518003779752855383917363836591120127800216320663558819838322530821868161515527545131634931173635787732116759195185492023455299388370877797700502011251170609548538040194267627881491056466815604313935665403068520195944601942423244583320009879589106637454840918746649194129052122090373161242611572624103931989586787294707610651742450425151250887181853298647804778967228282126273588473833866231938437007626385286605706962447656915662340950057336400677255316475810067046023287564523556390048848656614561354089663537124580501706046476948470203405486935102387044594037127250434942708973718048891559242333347509349891481320177096715831136092174887725749879375156031354272760801533521617790895402840133878276138397023581853770466572372201812555449838960834518212521912847112267366284026637140820859052125137671066278654270278969813661012279150532513585716482828422048295940376744327900332438292112662747426408351905095437527099034010672016983954227418638079908760390434330021803984390280115067041714391241461016856917435674145552729669446191126865763242829701243381239576531223863745061040128472175042776375490461509031079187005117024830579790015376836156605764242744271962180304763748981971120151942328877732977147969712349682431170714555861467102176156798818996740607023108036386385365190598700363291224934415384025878388932456369086129900423063846751431631871076309525639882276630027181769292340007114083680616074391359562792543218822522130517990952375209181170286702593615988229588834359746499993270833194763104258467999060853867686906526943591763250524320390024152527241741459069438620441416915272078017962592609223666671307794702051227801933501693209067804833499129670103716454609223870718315953908511630179974529009307937159086116176059172845384055969257552774621672394714247491705942265658271627929625840229122842009486338412176979283635899882079470581913614490050194011643452834802297382685860222780772448219126676963242368667342557322993555394111681135672935297066960143744112775784854647047346856018030364923610611282837372748065535706364592003835537250834880197556786204448883963664960212018867076657539842718797722129347998370688764646444713636686522022205241566319153197320485809477966601380623404818507116233165214777436605555876923138652210086440075714589460445390389047419092194187218795553532650208136925584956823799326815551213468088421928307216826845504179291539113379612794157607145273531194750517707127903982893980328073246437552578435065653097831569693514162295958109412523966828807217085629493684638796468851478089754334594621556101851190262486700799905202022418169477551214722775397948257974225492788614969765016907326942461442511567729115898319773222569817786077567051283427242216379072366103009446739532163345465969303237111740658778460110369032452774439834422031334698664177385112737709192464579572855604106448975394409624213119705791947783331832894851943109176398634062291137401214929642758670781942816666883317489105767977262399236445526734902662449785333178681807151415997900422908215092046227332285199022494386702567279605250803505409487992823291189942094393132670989141519327769353390902259181398930904067347337482636411956151589161267194982126891947922948101604445852854942798107814814965158692776529081990575058978153311903573274767659578542699486464015286400454062781044874298987448153159946680030114098033750019259420982472811302561934740116758338551753327539676987802911995857242977388174297861932128161291811823358436065656168265781475660593132501200004851404095014166313887259130815807739455703920301873534839720291378286215212301884945227256242883644748190197626040203722336460530781613416914268677459400371523425357748466752450096988174559437140281529769681716835331749311045550694535762000123602352487427686907510991697920731286069262564478243071615859543919837293711365098082772426398601047330482568439080466597190695203412130726407925386543268031034979569373891181398456105768438618639992675692305281431919385000648447765142003344771267560416508778363810517956463278617124772845725078832809500387908047978613749284440174771612094094805451464488541636540702994816146498367927523261889537951971964695331149371096708976020088154447614819294104579671490975990759982894460926506380029765651149665920150370714488734702160798362699516226254220228231581628460743689345853520890760385575193582075803463515872619160900524366603762393801593997191870461883435128463965906978485062054166685268963278085885306681412240242156232274318050774626859761642212100987317852640341206620169958607218939223317332687596685751456366071340741676440249342586260109896329079513519229138801850658972194398680079682842447092462073947872953489035338329980623975128033032874251999704378534008471794791942314250748545194117746852290470253977888574674166507345429802631061743797308759494577625755415044168195679246269937594553257933975010343810370736060345708435600426713633113100498957907369478335173738003501655758940031515960615488244794488060669807822738870779465184595153067943177311413969327336873976866078460510153384178784493172255601939860239078924105847769025783779050270436200357277089396339602803619722632443311904599131244296403495376712293906697037084654757880997838782615837955935580334769621912967600390821403117790680402427128695024649771511615769526126917379985975544119290446349924791282838379149355415505083052594225719117045324834313210363961962605650649741448556373286875612542872914533528453279649468827566736484320584110652027026900785341844323873799637495387574675813957136479808216679683140126159105860762723021078587492367828669907891144234917517456418545508354257550353947795028178000539548011242170568789514590921596016494419508827959404897784449096770174267075774800700728616381080610450394000380032896774025563401223539884166077421879603996895103731064979614253977004272937247501257643195435902791455577480974252398493944782710762961933160922457958879700425890392628355975040890103773219971351929076952407572440603442728456946104254612060557343649279921471177736078487253313387521144774358948209627016644968544750162433620224941324118346377823388590300187204885909815304568328346811916941710646504772411728262050307383719613340975899264514163978243882694598083106206982310575493613619512506403351819674235105889114530480523562391840952980709403292234008523818622530660364708799415531542513136203921454103706281268973798318748144208470382392792974965074738557541948553200962387692436925214701664064969608125824318625352494803408757106366767149599224034136119546013307320939484934922053183139355901106434211272663353735822570787974961810342988137171661742946495782073449254654300667607270452446613131878768811699677472749860036888780163538132872512353140498772160581342378182670002022843256691051580389761384631277546074702762568032631894693855449100061492120132832461132961494600045562088729938942754130219473684554814083086842913602163256186695080488358438135212202358293297673999633193788707835291161333263287700272551979972214267404092528426904046505535594513202960752021547193566251648037713776280662947205906926833640043762113971576292306356742415308252503763854354346421448234711464974832937910616861650406913864034497845966904431760155544861036925533308053358777064616290500759494576348855945405583835612188511014152091196586652216967261372730813217868148063730140802088578637722204739359276722129429931808755599874957198112055309331953993301301967571127537527227524014108625872749946331522799247710996502206189999666972928167929153263828015691635819379182336587185276974624092747387735460193939131419430641434398058056834449208462730186334998213668052252427259359396685811978427161881285937065914933752368153083290582328807406265289303686549651177811566823496396711732007080845324608916561318868053112507970443277927137556450104772600428238852811446933038374629906079461760517670435795448372803818260577642772831647613270614714772911520426464781183788773343817823843923474472507967805754742035188945683494678887231885314459576187321028795214732885955108740244708983035858086517454374907578890034163117857983125340363080316856525589926714586728850474820748459976675449949608175187386174788699169272261066390564867536381759317012440565620765235689016529640151847290807306876586528337674611511538998617002016101594949458308656015863522347236244923945867016970002836911449791295863572758803925989457493530848811833309117798638653000534997312030399411318565453124817062498726302588673114512547111624693959837977235622819062350599742251715386908998736594752246942810578104510356406957799396375010006896995240278168340198642774274892724217636217465099587007155205626639942940303502339756218531770271438872519011033293349799441068018288259932805895101499802519363909318669717855986247301024158162108251438085877214935538018487912171260030996169834597886853391264371904716347287028735992267689157975416557230647292440142882781178029518379807198005682040240552690141881011633940311139240993319517883774318228551906743521789419163813550583498255562647960362961006984334398443092186823876722988849319445256716083684992888145221636241137364489129308639739053687721281700342125757335842237902583218642617355602773938634898412361268795472574031030681403046356103299562650732227898964529428615363016828806112946547411861644120014622890725507691060436915679793948991888221767354846691154425234878667618248188816823530421297593881665282996392131399382233438747848806879941104015252016176978564532914786010008194173634899201286261857393023642909571140009177291509557667523434597796072900353167255597017708010666831822762183324438395598540661024018842547197388497621621356834832721254758688931829650727059115126643860345956296678104957401223135982548419024632112371463138555382471332818078626938273604127462135350866995668744794246619734816037487678830561993043301774764507059299334386278310271137732815569137141990170372669134945881528332370150798779664301207723969076911417358829958841408217982808328067599825131440653501717011555812367336294057690126047430170504573744810175097108190452789318340553736924123199048154580132180288514219978925326239415769340484552524876834567731821335174040699590101483908392045207742232604788454807998033666224807450074637027194048345082487520117748023890900174385412818778095824341607399875508858247132502160712174329015520812877072335776710328401106151205698582933076272526370655566091875279204203297870800753068850076409851063553846182376684964144695227307339556117378319599121622637784833011348826316095946887918876895380395424405468707348479390266223258461023395246194877335184676549608783643151142623461624355641895744224417412598520208154296148288091743289399196878793597738040566530837000627508396329873409128689468224187457292504097226548354141041062398813889917005049916624449597475448333141430604779888092254497478123438258955390438114983243633745187114714426035223765978889531480772853234928315155446683414107810324795348853102280043992330243280462716087249368802494401398467654595976415641058798359636900821815906994118935445367765540110725128463506428074025527853428667597560608105112351021333571474382048571565773604987907082792826568401281831691369105302591068142983204854457469873505723334007233301985808624271991574241714735698187281401129147184027556841981607237189265552412196633165720600531117831038140255188155185583246378803111746974086355358499926063985612482228518369447605653052308303130676858069067611449815089161995674609327265688101671036591870988416240247903965935150675875894695221222038871679913951984362201791642729042973909473508211813014179070533301236981260953885571212509649930401688271083283677315682530150041214995246750726582890069524792722799388759076725112983158479464191490774199846222603912565926801621402202753012468738018827010198768250418980924273022763469967974862610069957982112187613984852894073568853557184456532458395267688055478984955947583825390582940035812737958349208296749970744155097993363839748909958091015164103073974728006214035258367819228120569349707188557684853614528981236906739832852395100603090327095661184166584261017315527053275474880838031438513805435699429991027701036819059796444911184904588594832987042780772055964402137175825947313091804583659087291821887807935011433044963886424674052041581415695720273841438858793132560380400109894620089063111558115544542106955791378009716993817137835665675306491552592793251017920296879630369112516440366888301383355101283434519352956795094074472536267811879880457103083581852904817176307592709773921250377303954412526581830887312271576821780952844777896307772501563225216554230197278278773199723043482552522111976386255592654034726947878366158925293288190371919404025596698659686126704591508980900175330372847411850209601707414842725451503295946529827056638828771394245776793570082023676419151704288054972870146663663343707615364705799210094929236688410451617026319520969572821865199715812458819053093906302140719252793938162388751389894754999326748667010814209387158311273650995612011681180269728593867443408769570060738977957030242389131491568759788764497019324867326138795929284014784678892273005701170387359979942246265787533181749458681036005131152626085800684231796237392384699392832633931327868107210034024237592352615253041659416877238267181316835009808730174362132325605000199700885691482828039555850314741330337767864948705096826649884264469491387145087974788354370147885617517732382590048652351311432820735852562563539499673423064939805990101528026306630518502553103049343834482607226683496369299200154315118385336090246537190727430079888549862176553943946868972381286722151428737904077373034674892495323031198157699203729330445566827382086199883543668062078518484295989344055393632795502068065657432708610885128535380276058039685805947841124311347431319995462727323641905970893313884384163782284524940376890375043144958813288861457079836573331807367017026416539846237549281401366195123653051805388786222569355429398040515577612836735518140153314240959034180553406200751806071863482476346470782500733229472085602185960728391477248179167619481787998485541961903748411767343285150083230318634533287615087615464952452961228667002944490516381797172424222330081873104449785177407208800443412798418206045105750526302772145992922552996805992547911077870621933336268517710033215390048799690672684451616332900162242806777399188764937175881640193278320542862133041344888601689839788202758781405855971963852629508896757846427393271055827070420292331583967035523684705086884880623068636470257865243031932803539634514736743010038004967882322942140200771018545258312884435802270263084419737547097295705815981790811914100890479882618466549345931549060928748060351908667428304462100355358631885349506242401810532941263698193059068657554345856967202086181605834067505751435112807048652358281984025368341820530613536922725995636431697580725041321493060871444169694253086751820263359097999896490288097834592261041493426472081704780473732312505947321417877469333050255669272952044968846027890199417071702549084052318916062734430009028591476269833504312206148700624107913325130152092126602105906566540614001425395454308892654856879099468840729280431144025361531633993052986693293896183308038439020390369780931917984331110227305472910619024266419483994666028613000750202748147419867819064347153150957543983519933944076398166564055799541270051545474227254403480277753848205825012312513964896154385861904951293576663889496884860799210614183982729535197260181071319299172966658987669243220233760095010816634356305092470906495979544657842803524648333392099756024210356544122057422779553947729484627007874294684194220301147471313992217245044967496684071621604120951758750949537140629050178916310861434246572715077028234408885437212829712396383475342994224470072235662894771774584013723944416625343877735637461476726733630207492229352081665111691917903506488090299597981391159190948820096572077022085299057263800523815249978874007222647957194869517902132548933236389628592731313631743550577784438032161987461385523159482898395557696492435863682498742152470023982808155488368038223602736230890094370032100000736368941496958567674267181928837222189434735452413842434491646823579164986174476703413381942213176867645579135661935847686031880923951270512367259386658773791917851283395458106744559092094168815076786322837303552915689724853151929662509184292332954944595440870047538450915236786775575393930770998231033734303629223290644148941012306629838342569526051865986861945403216686592571690838270058590805994507893869286465594159877167523442527309472494073669247703302837336045631258433525342528529925404092428061025851075415423945050084137083974036371795473523317033341526621871363300571992705366345751848780229692833960489755892003382093406467540330049743566116388376828014093213821515982727021896321379973747353200557562669893167321173021790229183193214047468819883857471557709198254224945133645454515867728780007320799786155393285007863121699763448397435155750160580980338108833642855715531103141695608899100964278612812287973760256213679881640114949753429502820175950404003192994172702567024498378958616284313086467310187434152845220168252476832102366388144984708639621760290992679366213094330519044335541021828598561955439565419206942018897425611254653099745551964655888596917517034394434900375219621293591745430564337322389369230757182351848441706489382952733851642046964886164231082304660859403677404154449996950598116798493040829965264809673733993819998012652649617623892937567808087204827064536060562191126955217301510221639353633536092000106063215526139158903351009717838191262421696532725354546044156204056596000033943142457825442173437076393994355975627141267044863222544466456336022757258564096083678837118273529031533032020175146902155526142272309129411915000041102012900375945529269883049443370573414612524534442141356428731348614090381766939816783368746573185099342736965374680965426347608401815750381651478362602884867858078035389997828856059665710126818782984071193055618068601159124177025967445217284617228120347859207695524777908964647661461414718055787124383813729072207114491805863947071800879299534443227800564972623870422320897844952266221373779033022624188036562982591968734222363728071791252900676030021725308211542276413746355616677390836494669403633949015955574445023171463972656568956450419632214603778891691916161097205825570113264742330600211947448940108432431367834664518207043480035432278813728153745946779142146197301840243037694725712276452817522462202439923007174027790176123743046329668318224513043758050623639351116036138716901938626887007057037503504527248790839732797054262577585653173825880421293729643711821955992781211664959108764911262993554462160017696262722335045268962722249234870847846301516774184158281230918587695858616800211837413449602210281721025357449864512709964338549830568160238552528548678558273614587245677726690676017015041194165351858163157508747771105805476293541041238769809152578474570427252739280876679715469831167798335777281533940377329706609603903496102291584356807989691355976770558702659129380404929723842727027277860858194501724733669463936381669319213845096287646574630998758690494548753528799514109424029842816055896816442830839558424918929870706481751157922351768396233669314401558396365294475016509578060932554117583664571832485109489785776436352037213748928073924884163440309762903686650744486935341228408464995844619994894130538315244755131729846386132762186929165430229384733911762698534032940065970715553865265851437134885679982121998952160649226509547297563638053309410037878706466985765812164432666719453665341894319367038721823651333109841893068702956190743030849530106225590307198818338881674498822944237998204736529310766991334016380964076548498357934332983385249148456591293635403850910528825009515947627186555490326394381172234584962077786218085470447638599084555242876185591052251327755377604126405007175019654776552721115506914745977795124524188752110992693642193033046350741815549697991196835667915540973271828628089642690965670783011270772416801068261291561377712536484003107414136099571058752030048264200873329147472845033261399126451058452700830314417283595863911166848756323096551704015160936152595689529893665762315270151752527181156068821011220212032950855205737453630827957301191338956629650590276401548570407140550274107967871824401441701673825118074717617064457277612540409081755533378353719863134282551379321793316472594402731573485997592286662316705354215942717385639996460164997530899668589498431402045624972343452835041440272959129927391340335334537984127256771534802099991782965586361122408471889840385663295854056721026035930085279629022166404535525591276902809900919931242301098880610916126312150159395687689163762518866103635434190740855744524631929914421577302341024735686745724351623750473159560055652930886116277800242134803743163488460249909381275844241761649463402371104183428827357909114662734561421457165477079945835592085338520477174005963522952275307962115638717279142890506676066371420492708887432002113691202465314656807565860106194298867768199864670693285068316857527530571931449743499963825379726430814483081942779927615130073155722757291144782925100900914235167380417308583356598662938740636804508840643754449130714741894502098184823570456748382411512422562964646580547823696985852862829393874323480730652252873706184213591315019706008734479793039479163964024998018503856445411448906141685924424557892235862650418861739945760635129988137915365436851223373754960667697142471113722336678360942733191056680413037629099439387070099359642809707182622851194947116248310584951304992247708416526555079852790033926333964363970572915490847347954388891556556094713042292315807785333568998573425072472871816529293716240572367330599602658144993977599118409529620650892258363370413839432842299921784715759741025658520260716262845760364693852862435032004981551017407649020051893687570864385285293752601332112781054102157557376075567039614556523464704499885757573895993139093954624257381642021707861070220199331259479102490047807352952481971506338322153589467865655459504697135917595097608517764109489052816177461109663500812430079395050899003469499202167402604472357543470341750575007204137654738957335491050886402581880707402235393340233904011511142523176164987012787880195348305520338339133028521831647530086033924553386218278737843992495806490454358702806880708533576743582183648028560207123279457251174356668067323133874077194998521764509110451322170106113963682366371828215667449571959198119724903902545870938273072238730287451730941155992370685450949995422247467045674640927577068756447755624373462195772395235187134905169556058136000995685787140148808129881742337102282120087480613339164865233736976776986611766309807169160127540602455047433708660775193027562788276261799674084701462636931123936479225601225601473479803082244575861518171559174221819012074476188969096998377471630579355378694525380614671183910114015157752527596704442987076996640339196303164472814848648822060587652149457927394734206239836133079615185081293400611360852670126734404980095012545416807719578354671590874308939817559926422738532296468800465682040591827043781563463447718821388270178670132353315614379269064446425990953483558562976641556950972179125944769587329176928842171197508000978575201865285025723468808929153620991434375137438474698909300506189711985735143336352602364502925111265050683008074755203234040689347352765182780857565927483725964992578863755382995203115223043227523548828621516861320370846478335545653441222015583757780287199585441977285164603404537323876952892122223147841395119475975203492735883675632210568569878967641288397573395533438887133911006951647660290898822869829095315530682131584579112552063904079200694109077709570854454690216488088751021877392035759533628417098219598104775812353706846951790335053775571520991238497180116915705053333205413561360647068330368511626836264719264710873181075754508510736404848194360398827117645421708551426055230664453563693573802403778354970417375402572591336752157589770659248283420551602890365575301440268117463018208285306878911752341625759892919497023105896128378114256364071479315669237010474721503646519165834613223681743911207351936662157074466542702698090696213635556357273882587719073417979234746901486512130218285699561792665518345358591038179908107398796282629507663645055357478090179416993442079680616121606847432791487755715432679841363150224044798534673705092183907546807523842946159610352125469426991168424649276687968646833561787085782436128501444716729375971355558076289322617593009889742293036446860364149115327224968091270377938324435883868426839835368977345186780164319901205037866607308638172307319487200140817446122422428188892341592866734231157106266821272770028278529982373234478175662783028915678669382459693394324597032276225415039953737822839969576197794917118080197718659863305298938804023133152071915618350803563676375001540018950947440866507558484403750259576662031286924570559349153174289889985891607922197981074739419444872651072355181146560559225451753191830466666880389083959842572462457458231261360734638597994277526067918976882051131157007926070833624815306474201580666606265836860654950875376794746026083186694629751505928086152817245149411121058068114756627700374472485193921177021238041862699944908887372849650539543160877351201033496856073810738737337276293219216119604170843875160900411255466084471762684886628392235090882961786929934743013656861611939866196933198119607059599138193980066840523611883394632708003897825419761543953736552016273516705191679840156600680534170279394030180958608141235159383582903238917656080724465174528773080394217181399800631101567583675561272622864613037580918404328004389030870603778362137809980494382338109580714529482835567733152599801653558105587971515291349500044327072602168339368786683662940942145668326428741256734381699149254948864439372275201195702672102549028281840905054633090020959039324299327534499004313188379989787450974709668568693183022844773523989752623114577856702073243924174645542780876988340010460797596404359658810475716626541326567708578757157603335650883859027856374011775930566342231966830973690959204349205711973626386519472274031882680277504870959105908363150408501025291575354858148098357090776790615258272663240637813093306916409226499455198678943333153428994647931630921604819766876939269019432912920096119541124823071634317085300131023577703631498623456430013314011471289982865975176714809798019794741597525993227339192908273267000522411866699117697388018234183832810472265373268981313831469492191236401059139861589162929348196886509893888504877205693614951913486655613079410793213395860525892191415660909914212278658274271730423368163495393469938625272624783129118974703809930080502154905730270417473252818607401990482247096758211378839483037100472129456509153659159102542968153101537479335845689842694285866232475296845766867568170528871722798804399142367709206435338635181457645176482779829139179858757519928103502395024330069375150915365028756677215318723513869463372162109093070574603693456312063082341023401626550284317465304914960263285636903651531158224431001802515331653537085767272020412450748969343733296190326626327785137814211518258930090164298109941263191823382585275502856725974990500989326642957862016358197892097692635971270169728692887407701316567220784098475207955284949437029378536974448931146167816786973976931801736678092370624845746157378234296936133254509836114029290904880690669966565301545152300939055326444833557165079659662348972228662687072749404930601817842744250081483657785484168350015806613221050982639602596653860886280437153883944762206626514076883973137909983947302514279446112039735423662634303453901805258631608674078849646650884605931698238656290002475854877817153491472858976784692328836845292480249305953809394384415462087346897657282796592181905388778371668767293849152855687791998806697242631008644748822313866182953222554303143462502980331516795870250988512175023396476697338211721920917780437921028182293452299973073344905200326986514387647725417295381135693814722666609366047333970861990664137246061253928254137934148444771585625884692780860073252659126757767078061806564121485342412122789812527158556955856955336029480295503931642553243907316216582759380306925196635899661765553758256293534185887836193886781161357263483881038176839749829512605391986368608083643909012190177934845813783261732696992045919602147603928120475102483328690877864595736071718409494647939699090601417449991035023514419594053871692615018354766814740198654630572614256126756208111346183606689814643753679641145680168659122618044423788075209970596191018472932766757322365270943417897860888316593506707944305459494051602176062802914747219635933157097084306081099217195170315136222436302821365804206967626576538603718148769042721169967310887143092003218639418987978880886308912942046224628286220147540196111597194878399529838702613745934185536725955756915496519416456012630944450851196411433482000522139427736015523697181059997868166058036779454868846557740721704634258028337062245125321296622767650194400648200447423427651816782405231191307155312694582666740087675550756429561290977241812651540587425254604664966069998349194665646195335926273717846029619283594693134111480753324367505538967806314256608212066500255285600147247855376641356823643223151217540951797856852750939104918227820578198318273481737894653918634452866411534058756631033282685114097691302843350990917604279845791499295631085566222310951751131324717897877068081472100472122411525874105866241496095188563350878265808443930981064850922047403728292131910962307512708104123663133794859396612323024339718455723340342380346087281461424791287591592080237789728066846634609372553394460126153209252106374404411499073147238128864636858958718010535792487388185799604967245673928166587288033987849628444845527699348042236601566477392049154780244686195032217197566948794644814003939971741370777824809021912231529255187992232629319422907268631024926826293220015641611611613323782978369260891469389550049606715053407231683463918364473601978213780131513044914403634078297755530475809933124431717500086134497676590583892290898558351150096626087819674749984350959129884279920812499105922939532832193007182709288509548584389789084776334309580286822973985436793187668207380898300495959100244010222620455334721307865290023907487319506070349754426512474810688733717678246158188462292729477191977995888874282859623063846958975533388435235761401249778209431653672822119418868428537427510967119671598138599066968978971458924837333335528851037531992116414429038709753170691292544163002098360342611446265532956955393180440598925944309284391580398724435025350849412263113418237852321010693279060980115403224642480999295677950616997384232241154520604508832366956864376826463892996261963233233250358874457930225340116435185920959188017967153621890474326880673410306621377243233770937885943772509748791131007408802032315030895222442090492266180015234682449009408195005342145133424316597445140798569377538032179763956923734095402743244225873991724686030142678148293990600509483337317288260114990873875985506519627521166028627841440205692021673442257210554393101969885706828224069829519990280835765597881003256522493226955381911405480424914029545915560171624496440189244155107813679113161245542822783207693729520591080038565448441794762920589231140809177038147141292330251676854290710334893509397330834487803736425345292861201854698509638586526966209555272134524992536466720642769855064076129078935569989144416424496811874257293211875039408287461883046606473419536556368922921029430070690401761044020886897071903834872857504794660950020799048820347220967140030735471582899991765867265681439290279426833267022570619870456043815833985918391068143117756136470331601258507709396889364871869147437316416060400865915625457584908453437890414979573894355166081427405586443911435686744948865543344114472345734390301480266017466455397707828182921994472989940228677545490869556182567782481212053950505183333630191853516059332416932104879304852550218771636116733418299025456087013979237238384396266940465526389766764319489970604811929311589865533096413542539499860848684672304304164434686798350929716453993412506255986638487344643501345751055466898785247517305450631279940716718046480173641749371638719725194717208097707570871068265797991302843245937362290944936107751377005166103722179837611950797853368737989827639421797869518884198675312882283683692935007479594454676598712582050708961026106847266213973776034416391543083856133963109710623055114178358770849957202113680424383764004080993982747375399233675499792057592127784759588524578227888495736755325399263478301923185232504472111525369171190855562404963209955685112165440905863939871351720543809809731576971916168370452907275756370546116286936004179091833771242539491948195443541819634405134650278841331815463164608528368620767062204897599390799411979938153138304702325851192415684117863698858616804254037789365618875650261275691195493972644652781974421703145273344386977388845365542346680341581783273147489960034816243183305273327118942359648675003635653027655199523995771976915831001770986336640781905109137274661428780145044816039392567642644972804825118204612612741899031125318909079165533405741929874458488149867017194198756395414286026620215664607735147311888531910524300351830405507301779824567112037657636746568533559286481886316983047514728180649110688720830684073962613421764602339820924329841286492974616704917436457351144588319111018910447827406193910884206133765424453577843828065098121958681991383967001962662638029213160120527220520569216567660742934426643150094958305771811231891823416966465782790712619332483133415517435084167849964891059022558778472356160849088754019554261832086203023888424059877590231787732813089601547894804895036048560147045939000388884017131415646647759281733112673689197192023238438098843322394993985251210317815184576679238810843027379494317916075839765388233520168749095049892307468974363883235066245077516478649223862789998678578337112425277523597698269300379622476395285924419827647624149929779366007862403767972196040894585056796989739149043223244889226066253658297051201850376585703156249478710999482997655130626415463826662039983766856336267067769138945349202794404773402707270995708965757307520808168845245542628254482151683513464641807804184773192240938119892973959933277390943115669688009696226465368595850247475282575779841264118969828044535256071055099560737643284388411644958530529188941454255393934786118999889647794448758364147273191211116677290068603053781440335419554114832918784443765294783194418018240027865648064203891026296013146444560727592609986296682438584524674589261061768010249883846493899785479347995281471169593657619594731889503017724685389233682097623184994080702446222804809612248842665796616276564219420234014527193300205387774472580533075984035898882489633421965901454793213077359370942923376769811937498084607790011882456029699995536651233393603497962984720668272152637132650415443876877864125651557740540081909069369313483639860041580482514372027360096690523709398339757517200109300772715195396824584750364556013273115970693889529727719450772620618626863555920667434841617579106561188972804449089967598423819628711398333270340102691016733026435649985458300434526163155303352845550696867430494231392883204686717018709664015671944993152106316650871165965532813098906409202025738081820929223373922011070805115573963203046538164955742782085136728393570182492406153115272044074719777645502900123230958062515662275931766147338639536937305463459232378572355358124645896905814904298413028347460638571890374767464979915233748892223818105208941768162261688758860836084220650365962052919421397132333555055641582263132370168517767401804922320063156605459602450989953565405568345499745914746144786813277445761074847416258639774514810961944349466240378891602570016185186813246674321971172635428423541882053196974158028364740349226324255708203708594793483881813048803079370105910460612123690644405839553523969925941670347050569493504947551900953404198962424895690547904461336846191177084604554673400007073689183848312171453694799848491817258018697036695706224911218290366756223408376851964943831245727003307809984035988137580816661013066442461442626070267364758940490112154233982670494957053062386243698356971117797674618294876036696154570746315315862980320740653926502090266903493349018053629317660258366885936390823973347853001756901298822103026993023480895276792127962397462279163994800104897414972202319731219435122608760755471358086250899267625113206141632308677351970875743808058772749077001699413940523086678260121282792482962039515283347313117740624545353108819394539702490415618181030028042442979417399206001219626833929542423790285850656403732423716793573443420183041970831993645028639712157447072017425063301587755220115482355194109595539177635664586465551638558105415172068024879737972882681621110531975739685336384803886864841551847929388312699735871651184864020045437512599777462537603894856643573237286743166546633356715517073766082365239485839531794406435191591237866483339001538939320120120082218219291360295532456005243784307883828600323285784839398393904899697275084325673585195654457513235152580291905309442549932009738924883870934612147979241916265783427924175317237168335060720488842538193756870673928165038444710759657383968011087234653974957037052554291152443017766175176343599444848896319138840233040214877395699159408704173626924713676523536480514341102190995158589455769678002167370599747059830987624317678709714255074310794475198979874563704600664940557903161171826879216059835488908793274255949045900640502515436774204163520140925765917573918578575732065678047765544165983394698794386602100058033891859759413663447376121957081500062163555097856319639396116961107480949814228788247936008893781100201234045482748734974539375071169230232669284100564566746059100768820824098562603891985311920500376838502691660415792217226987580551978341268376000011848608715621689679802594238752785494734529690234077087740647402423100890072682995489095970638449424928029384306938330287830342796047812841054333365580743606783274221867887259256892232670888195562911965248507018798357891977345018069330868054157236029014878539189328484184468653627019182356263204705017301218106861838205289473436370868165066511937812947697517429640946049538727517068100179913654394955163330221616203858057752192949899493506588883879253771314106394805127178403608221616108675406951976853447965322776762844721210755544237593575873171409613170350208693164167623159871603935799012728247851310946928800001257698959069809293849248871993184290205766499433620955350970329090479700036533139624361752582674771108178407958104365582341477073740618519127141315812710965423883193900593819262373232759450740653641266463036495906674960124283833140455431387788856123494920119084210534194270241119000216700884753857570073148545148252438365355089834934069058331437836906489992471786770254872224436332078944069596102328121047903096310800223683789486185839705398874905279414991322291926034736414903347203955391803555240604310887522010804696044364353973489825463491720802091508443228914369597660194744700296276497503891533938819735143393600431668650423084712706750340403136164505269752851037159495198143600699301104416660476066083207299362696145886821802616853673651517026508737810914252855134104333715103483967863056129821093865662752597280641662838456967844312061378370362315282921494016576554175632559610782513290037757735524114244788698259018533613117092577882098118583813448851026633967209186711380292711365599363260355248061153799088236248248032916437799469616717468116862252905822422528387455837360999836192419537353870210092482123038354071966654472404741994712463475927745693902144820472934794186307586822289019961450947590942839792191676678630674263030770759720333084194073356999182335756117507245988107569359781275187232879220617779006911366988296812742505280426047270377275821231323855874611834429877656023188136916583078359062324876900825965890365741953649341432448261421317203137442961500843593115591419237273221668262039322575519744661730966310030022463162586004246711044522211464854337410567650191827288824731840686350327566536495262291005567597460894801747164775293928605953968387611614817000419955179456604520461754036580543926079595792347984451561420790006100212025025129654119142246304122875770412652791356723864782301589786084310761506386583767245810269622913241013164139755319970114374599402881126810469493733489861882589438262880167024348364391300128956241897939214695315307832653713872636789446922910669146964901026801477926336627585975052607292799066038283315063059530465294378327647668228755986803579768270408928114789604665192413012018182707669730442413131066278445523158883989354215949513200258189272143481470313503335828394369055401966777415398080798894978989442001417244063032431932604240760074237712037263931828726525756048221916192255303449890523150282862305430890022804125597459904800420485441683418301796979451483350130906140939791891587671967110639132031915286508725677933364446774073517927347031507141987327895031673271379556142766490469685734663329725361535072786604523789056972329329535324391541549186743312094001122643378737854473238639141075981332717204524357244137217215076268446418985907175021562247665042566382630441515400275552683127974764818234192653281255239664936107930974517321554461618482344869798971971907001478192955764366693424828958910043920580694513291826534328020488787020611455863773427536691550173728943376150242749336646307005085315820859710318218832094634159290583330902914609123504103791431033302650583621938074887270975045152393311765749331778550705247685084428029349325380541083991040028648080825665619035543479926722829881664993793326521723874220016848562003296442038885038407746614373052261912862732335405588079570024847993990521695467204189900771937832319445939982810022985229010344153662408033853579073784907673506209086039885851628712486720996699508855008737477532736105461835614772102351683941813160097655470256091843279293950081774558588637608797532619524253760366890511870671391587785942777894468721738522166356510958116641860820789868957072224229776825432247612727441688138601941137486518286170386239879544108152560793245648061249347725944406179171434128607963284259291027097401827826657733001495645229182270857004323826154507849567267891917327730386802378280234698887091622225091424179575900706118471030362857590384771986951373961659656687641721988198385311598326348324397459589007316537122682968064349245067636144048395356089651184961682372761017240393460823803375922760324820251801003033677454765623746906960496198585778833737500245025640865968711075160822356445859435695053337843810162935953577678006172681413686340875967389237779707856884114725674102590439893248734400694937004349636951544310978700996844316175846583491997021600414113160930040961510207111189000373896143840082809849241126831453913166336303021272475076007121122882866995495874023194650835224769625711716468996138309591373352162932511369925491693534003710448430274133590647629401768035362256279714991683787758470718795598208273435768297817316066025905661273785496117196053465721633577564887587660368285494186834970121284063536952881794953701515669644776154815261225745845720534519808533794070202841515496596010197857981485257332722082202747917768969743270062713915410071373168535932844968508240837991853869500565922054743926041720705322785430414496599981630260364781500732933252407083183016286513932908420943344220049797194233409808541195565932573570771368911698171069619799244778229494665673927181651559047358930766902949756110122942434076943377170947424520410557280216766565236941801712736074368332029013299093122695100853880239658990390467600310455492503637210183237321314098379904154389214337311949404302061242986956252072565172608909661425492831547068108495197479360243646911282901409869744944242269611543764859939884358944513658666171737291968408595670121166767462624010635489323413256601655016126684762011824788674315155668130487497983402827434536081175115762889745904433342634815601987042574705898262367909138532849528442707604603667063432891652423127447953693860696899270098898998829842640515328913924854389493833071521780144847808859322419969416809997370015439835507933593266414274617998369700139389631942002641774011254780456840271634213823449640211007951499802518701823124135111714249646531386034561764776779775392254164955391841238329001679177767105317077083459449705614227082336862724468104501582037609912794401106610655496291658908491977992436445147484137382183019254526777662421009853884944723082734715766668808441499578376930279243999381036402889287820428592057015881566321062591178236301486324825499848387879039860087981823349528708095730066538117001565475318565129752115974315289330416024896108711719057062968764624568062479066908714231597947394107245592388965407761043555205520942966385494660810223087095901896624499486200535608520499891318234042863802157284547205272759902270306210570832308454980285047205869863977698096252859710037446890851122675784668107286718273946263989496700275562233125147585980675850791321658705413067574312355203876695408183955094035338146015740995790813381500925100401133503440567560642880347649644045112101313980027450934721736329007551469115860493195175902249371475964911064577959373620957272846927973766869359369796956222199826917671236693358477523277167314918321965082883467970717551440530306465204538903545667686138176766581177621977850056675940568848723851174719320221627366401443197333841742975801022303795633053452414801577578721925480276190697507863886603967245320778922493591421667283989009143214021781890092652891537136243351072143076799543997970949463496229086275333703747746318417583202461826401052946298274295259582136577655553364535986535312837245879289260205153587561344699039726469647546782216136124766763218713774808098919380143173949661629457540209845745148599159369409517354062660557124571920164637407852310725813700610221087316802524229767560683034992848778837599026129656643224260460146528418705390904795143914155276393413104279001339062363446725924294627265437592456834814299822955876493951931188308902379592615877849451550009910673800667163928790110349273308038138245835384872142029503742421191622421896295657874793488683851018490265026790671643537779927952211260511213242422235068171775597384627431237441349296902911153500962499018453983636949039376638061680413847005245435363404361207369868333478051630901545698187134037641775764265033594365305383597006388856839225896515144743683546037750305820107306332235209158992556122292396350284364736058545954471434265232596998182147551309819121541115961774999274750886620226685903672058498323452450364387238877021663360271327167951262762276818092848303433745971129068554362832198664476734531193157109721897263055947170810145049042880656066600001132140781124713830210129504930420298898293485452540428441896156382221764565562758482232703191569043896064777602080956522991585712206031111828455652498802488408388885786292923974959082093016025794474269310305572215026832956657725079290947751948332036279977346218007723642865999341474976496945944332140056183976160317132937629527446363612801672292410185159251654549021551970309699017486367302334190793174221471988892805869807805519439944347048818264335973790030819806246555940278417309980066634920077253715927371903434002793959233946294284023942814792515487959810344910835168060637008381835544200581818804421050776731478252540752886740650932099974225947661933626855553819382303618779446953063235010617833558505683600154807409137228545882577903057081872933815210085361196677952141741063651628328178996746587281089209653079727807938583952811159841522330259644835894140789229888959530191582856825104023913213646689671955298084388118670270433218566156620649734644653654628490933464720131002721141007605881905498975554028934127886187315370661996888588970972401383796808760841317214362272291769083483309508244241231166000892635434791651074915581003313373490917545678225536978182662466790558829912373284456698487069206677386619739714715564296793192096073987221185631501067754313486948579154891052118889768428147427927739814339618846850809645844616974686876095925496047161563486461166977309479628692158484314197915119880739771095303689359425129844723711219419853327932361162998398311856240375710340741685366731441988184571916622289605045741475258717287299481310560138624713872528042659265871278185918980653900690775431345211952155588238435549920956635703948507777220638450071506858879115041846631458528880463603335101901149091211290322916060693225876465033084835631501753924695716295194385242503934955082644932334805614406781060059324283387557156039081262644065286302276648670720307779285921197218377654934784688907178036874126800747147650075335695220662281570618454427225897708442318789041200751801207913206139592642217487144293695592031480732408538212517932574958359849887340595186695214808499525372268883955346793641032303550337793628339767366141137926296105477426227474472328932582508669580948501098070716732934871884312818250985107488812393034332293731477469825537395905389860532902984876794931314931551565593729394007375235875187873259498331054968452565345235488859444469191183409430150619071822671372674491249716555919819428719021856428649738133787123100008876382271204231751174361567798898383138341882357405006148751555877636102434108942266801476639258706747657234425345108926100045580061947143700862220491861765098697999818004794336916239879772652385968325857825166116881566300245725248554149455901145636237715013383926764998874421031046745043782348203557835891694272445081567551032371285759742492423513275552202661068609943465781753624699265838669216211042682934272817308822799417181279725851622938727653917036232023417943721612538649174986867379517237483094996559026410582428792532786447507692211828588848176884380248120215972772464967902709022509326514686795613440631711701269403421387263158766961429904196203977668236437286100753613164746340097810765427560814932298329419795158864959575022699794644438789479680409021395826409131947674122831602213654243901084298910144598142114436517621124637493355328517696935928601190161371659266579001776910955023998331933712316783719568440882634062321681786432050994823199605343881987246305456865314968441301243577178153118260970943121762430056501722939833374375454398975811735269642808547104700800593181155761216630692973083080002487787853636461897178011271581109269357090893842486195035909746200261647611727554749238267399965566625342967351269809602582527123335815948220205938925189850438413819941904334660428648786963174618727445867011453672496662447012045561541974113844955198948492115339738935531162378612738351606852051116127881260454317474195589596644886692441200713285795666929262460026322100824119177188078894402996265112985509791224915604572966686031331790265601252008993161048248821997588025066401855240171713110375076804904402129407565036346073151908881485299122092355560865485544995888764065340017592249638705833504493639248347256129647666850540381963175122436464082724361786065758270744614415093500630971081147947406849797268418312777197796948651774018913426413027645724293739266059656507970268201624889806404638856598601256057894535819402664385720328475111769292611293414543056852351439482888266160115433563175257991636936276504965832304379417018014286721319349178696954620280595509424067467256360087873782153086731579987510713057516995079375257435502230174348165216316085545013509129446118042974299621092462174119708322324245441999271421676620191555498424261182092307399891125452518728437264759118306941843318853006338382904995542075340166434354837246868335126027136102491246508567168687939065769548870228720276086556157072236493416620233413464783246888302883934840452960766591006182862685890391135287193598045477027273558282935368309967762358091768441161745564185748034978008241883189749262173973767080168456052601507172587948845199097164689531424488729082993712078403988227618748894574585971935155279931362459291163465342973208220244726471127443443667851138618574953647363490627540526700733932493036973904181487196913062046094555348204166006816244558006797760126624351966443658404163200644683562910086627911706005611034675499812319192463339258389761767495463998197004927228794848180150940738577327043922640137616505376882715749212533532099788604313967449827367868701576994126654093048849688841238378261750765883109299763572574531226149170902669612559980674639416571134905582343854667014429493814405577921797771955869972655356183387569359143748844633249322673917962519940389006095404745162693860842477552013878575382354136969822206220880380843509624742587798324466421838796627418112820096541116038329105230475348020761825139131291692762235701333291315896706190424332447554663854383554300395680019810812114675361868189540222611591164465656994991547881133172129110559764721741584169780355068033712366547248685586152868383431383167938258231433089636393765114958185106660770699732044643446947304714523259960036148285142209851009465304489643971874348518621440312893055678794440253360647721922811476358351710854477035989405362930647045445260527497734562417419410738641086001693141826862112378065473024667583440839968878418215733530256747290596869689514815398674565852646945381395422044196515101427795108282835719838297186649243887500685196659881596809287645907234402182262624660957610092733219177172001184260184741690762946359385849070732391885635757189980035592666606638339205143199812030606498240650172092996804336327900389761712736124976176975221834461723908279257055854514755782705319397637608985654838164348534858374477885655695722025890107014706511845371653128456155507020485232708119879017272104025706818653199948096912792699999705005845251829557678248771333573319826982811737926617898659012870214704077498099885304203576831072358994405304732245072863379069416248802317949223395790606149272920736468330076604212615289603361633697894934893725111758320785358207447014640960046354470943832412815258149559194195986110958830913266798361173509475010920893538863928036320841998801364151409467797922264547403625348916135603592438951567536729137564239402730776458869481167251048394329849221095808508570224781059365115603178495901310919529705463678157258330526664104080062689803351452439644917187892283167218958854795196677061984782952196133694351782771270619536209080456525534848182263830718282202493814409987648973251386838654781229991979798467982897664837659831168687580307211687197378912750335461706669122419195053684937397324489898121462285549540612722526374590614517097597559027801245127576820073484632737548736843527449856818810643141314850451581463836021973009930404572146680627854370556110154351453712268031943800012459804235533905728385061265572070188323923103471600097778050241022493703495604073787306062545562182509965844338900340929253017460704685278092060999365397339550155222744758097320496091630309717144270887301714181040541703270428441743185427330776370558633381017886224412408092250450525346056237048363550032896337217996472149944951804408336173063009514253798958704733865656400547642018894604395261776903472865600831646676351298745518733840149055401931748697301201088729030698941666389672312785693545603547399506458625953911535629073544363181267467609523976626197656432496318909372305489383449446480069633664850636001166495704715403497322607408190539445155559373531599017746555348690110801878124548102891478604342911372645634972724894660347842127332877544698448107057603535691008180392929063284841516442288630452422557428857973973193249805251349580393650425325847043055143040464730262271548367230736319477375201533820469750659238901367407249321108733539733688109707313177827972766575687942670694282694851128469903512853216212083386509678751049965766551701263331747714327499206699052985681283371116644040937164957373408289319847906946829503055558017645674545240629641746084496581532471046854361817915877525530573260831271178956445428654170122282227397206279798695366638807532603832324469864911150524380508679738577394325506472967480151034362987272181800384676278738175806841494473946012002184049058397953346001697789510039325841599756689031558876571501291178433070626492635880830908231017994376925500275528914242249432172000992352734018938850901682158950022841762514321062172774749298517308354458522372851549678662220561277611234303674661359173038031433233595278821212008175224393293168771148681387271311273855267603204288014304375417713816255384161972496970502296480965243227734846479725472264184301094457076900945171265787775933157272201239315170941787345176373084139594125046026320986773249802868484027787242715736375651214250699180664806365273758428018566151829102942580415769145786571556760162180322701863313295953450378274290825866544066245196726971031451096208621222382618391152836419021726827612818925039872259285414130592419350828108478971730421742535216510706815946887459496284776694844979405875121194295762739141956247309773823081383291374849990797865885430030545260208146557071445417069454539404611570245273282139626854959132763404875057827853476054450057338785180809117923715395355285483527072857743070855565865791999098379526467193697883792043976630941120900559188416917333446189317047714043976062704025471216300774994278810032811209669707847859537417662370286502705373748521079772372657877026440583093481955340489035834871767353643099363252632521604757629753183336687934698181064608541914674969531696469130309105530259632738214861003983787947740362372976525205645478010529224270337278641252801000411635394214185160410957713429257546042704147811955694032124283684373258053806142191714875074211857721067567087205739395023761877753282319990585940054170248678741081350205382707733975714917900472748854310548498883063366176197099017592215669501869744124338348015321161858529389838764242105049871305364087694325876683806503242864936713765424954700951593308504523159603399617956019168294826031343775436842263480780819973048146494948950661495959934947836124088795323471313683030994124990960926933105423706931219789873097361287342979816325821283479751591554339293248516528776428980033273357781818494822139418324760720359291725863171426509156334868288519742858750981577359626823442203060913766628563027628577859477594443132218336647977298246419365967781412229025791383760883004997228683988236380878289046807628870743140691638200882581007556042280136548579900440842729143732945518963235925773896481697035606999753076471499942879655541358798697855039102452417295987823761570923377675026765296391702168976772119293884262906484604373054433570674552993639062921562958903276206929258988338083014980662945020085184369569817172612135387158874472827066790121381288626698388301095871051666569492889229468968400118842965567811862016979873050970792281495665661974945933157672353319066585962702859105085750692997667667575808153176902287565872961384472399125748671510729732220545838179994871433639691995324041848780002268356632766942721778482371363189382410502472491810402344392763517723212275737248192845952763899257950951873259069194058134340364762704886582082227469074265798145186381763729980699836437165191984319772601133019465081767450428344386737150355519709716791800846199138862903923325388000873278294952963646232040885924215775046890299370057134495154830169931796358591021687496293577632198131959991039926436718626595339983324644154042523653819325991161586481125847805254449092875336123746658024408482636901471772769348045565417182495359613062416856363783095468276018477684423029693974236673833471683219265239126897457210691691690769500695799737316324648800040620831419731440857493981565896017615839285216530065259134796711201411097301053105123361809938379106967710260059178248597145477114552308287803016796964957021705991021063849559039929265844478082755567194151102588650197339317429523006813921914599996370490887237712970599097363560034324311119542657350636352829002123615079829001842251700956106840819682698918239319669824895412389061998731164408462282659162447291486809565806862586862609511271296532016750238167248771762517224571167897730507710947655924361491439471670036465891643287462067750128964352050724190034233673096860581530059107982351000179013774891008534827189108927531364947082444870172491074095472779823241891453578022853000330568124741926451036053422325115917954886037627182356398577652569671451517587322184359780302061284005027053258821572648095911522756461332315245433607554314270272620208276593653178036369261308519365754488202229581654589084761180947215577084816078948504025813775164970912497972367158552763518266579410975294905160773573963756468303464134921457548216753019300920095520096748418045198939789202585306337304906033685447038747024050971685391927247000280248981550675570498277573652035640386033708810271196833361877310255263132433529754201181124810900444484416079980997689940340425236132350527304236990491792830527896297053875414893922538267489280850872584098939168595286609469118296263751873461328960579607215700633947630650663027153268732639359124100471427823350893688718826035096105629140279879785377326475265935045757600561646509099908439481858206114344047703161529925777879251869239492155713995403636956976625169310336811437576804800308218483382079288476930604577663649943821102912402191085906330610617156056370120519492577692413078328832458587868201362080045671693903319394579902511936591324784875301168565085298308660162542733011166013850406175070721151874915478541319533489477964400369480700956163327283444636437303777368324375281348426439875056520187356985918526033673197985822157613212351137697886095748684626079501462692071196009269918741065749961781187862927658453513796759036809345685712997997018710724276927743943509829421150353524823334891801822637018583662364039698552397842185472664526542313398978699188393297618431515210686544971888056648938995292289555884485317148277256281085593356398868971778422859419814105413261717676265157485652847511499505242202140098040184023239194375471621744540704845291169077327634584516846626107492901395690784152731927705696465638220449272025955313364764424264485915744355674774065581128443095889649744953193088818500994693647178965481073998850636155310754787602377529051363737032234018562568113048150356217486781900450345584936739034520329590451921396448987914552887128599542947587820981990346958102999308560463945531312145435215670064010994337769985616047088158787322546392335111858462216731119622465585915139327215527955373414803374035857612568730519145761399849584901939315782889216458785760233616457045285340107466099011956463887702506108619899072911287367840658437482904227581117806996419647183134091780326771907408902751614253696972611716707145727068065629245238265427632192409221862922117219079360462680807070780573103599146803921069272109855412244254047515780195639727317509643688442412279074710632319024599829829501236888603980278157068515988500722332415658035295859827275079366191472731016949245036260134992619012661997853629591728657763724285740175864088268902157453092480987774266228280040230057746675694700396795469504465194036209332084330750139658564372157282059791423934834858766785883408697027592040926903915545264325148448175450971861986327742366450818841453626072419742640437331761395919017596971941940144257071929225166525270054577061333537829336765520646105167226354677582759619571116608026329933319216220889916738381729161023680117793987473863383141415658806125305773194251900736267404293721967046464975884486392345612438172458960664502244168419054475461251706557244439550194308291156961877167434814678063618314783755546930202323046842191694475270885762522925821238703686115920797297963142394446932296260893385359095341788457648909579292931410683834227744607438713125599946467922349716589911953672352347425489787099558652805887550624407068517517359268480835412118795475678881091291834412164619106468913575176184514612303411758208102655729117114999749670189345391092667874884177278622745840112475650998166001514762960081514918616357316258408702685814449799019070887005640017740623273765587107314454746670213599295694059837312712798537711759632780669963498535040742523401162179157918981140045091130854320676731473271133174265989205309059591062357163171036043002487791517644090320850987887924117748302411086507281965798473355317625127752679058148380075653104870616564592846223347199674218144036765215436910645254813955738833168880852293937740586310113757904040593537548873659960284133041497356346045090280943160634499852954072069085154047246995582058376221510776349520203900326119206135050762850337186919311587893157942831059071412702196603940173261858479417193623543779653941114318436604409623952932196940446142255599252892825865205062765069593236039793340504546672064436740752156452194204304236870007088328860641386664197861822121992637880908993948256767489392619134736729425465648749195593887316918222669107683052150894291797835212686889070978458652972399778231259595247852191177729864241563260752110008014064046550241210167015752856562321979674171842629687914217862771216252111078342616710498674422291246949920050834481758563935928160960365054559802522914079911842843504271498602395863796464306707655108501957143184780419234856687885378243324772996600738972203238577854814449546575547496136129373557111869734924190364733195908752753492206226628694407480122112181125548483098577607075936113948035989621279602936817293807784392797152374134343215905411004210851192415962565477862735935343451531876761943177188958237420198719817464753092124588629804194225129825285606605629912901433356177522594936051527411814586307438535422160618389637028805152165273023584833892376113953956436472204488447530107686824502497702552316677281816821134147204747700825259638258441718437330230296793102975443837056581529578789990257730887143080888888837824992857025514363208728617728726218857622843847528213971619275907459731788598466671332871099106895130185027735876044143679419657221992368834540448392817867206412401030078077756513579351466466960567757968868458113006462868842490061586918771752033005964450500966028139615840723418687364186421881179375403238972227218037010097496017795103707365830314820263725823789029893007487101942238532705564419395645184812117839617381031524747916979526537828906406470867155752627754980195741542438365910138441500695282697741460433175167054020978791869451806875363585410938037095368532016596847123306768762133598633769390243234513398309830359319392795635640234611592429060219871325094551794461708374592917102006208032798947876453658253047574429109757170841768246330753522391576141953299530116820135232420623204037259363724739524221233538056666133174662880080807249085602092361162087342900226910214658814764068578102048450507955493923964151296727391938161694761873208354678655722893436308127370702120911972433554163476304937142766442285980892393799645161669149122640760672907187533126401585697155715756412793781698384243779961872847235858107023870519117798629479935930347700233209555509807680363531729215058707826764761444280355665034185382283489781061690325337151057818680700785771015365685694030443305080314628364211921014369654903805107840797270427651091970739643932863571408949486586359155327069364201014649733363943860910513533376859804035618675539717598553006319944524570291499945124304611892519111285514504116091506912741324446387207358173694386752903681100298292573542728494850481191040966756989427331422842539740277406517675006138896939129347701396362793433930737838419776581642572095152235302015082980721637222526446626157216906104788755417619285948852582268522755991538015649585752529239022506878666976231204261185189060349814302234157413883950901693789813735766871411462147396062802013670143076659018995673825076707211802249633196809179305411326792567415804125908936749714195590829718017893764606341043401312891283429127408492668763348033967015664792468343248185533111349689656368215979373866858760514439298167356241023162486897231484787526125365212004627312502282485400289179582976474397222381477712095410359902762746869700373908917514542976096082116406992692600328570168741717599908741105643766172569810873769196781929280516057355250326184509655592954861688036113905797806241069435578673387485202777075104556693435105008365715587407789685221633554320489281764065848746892371198415173447463733944881753955485236104098134969291105573944904986839405538175327585455002698893193622234903597274208883734298009000071737992346091363112491829368068031608522218832772883619242259378135932086729559632880948210571278943240245361107911787628435845109925269336989152909364796505166634413135367717770765973010831682230262279156616280571362670509146828432064912784751836267236671340754335145753730182868111796524682665598964458818623247192221279360313125182292516575092040870786954366467924769181362894605363398377886740749352408661846197793904667643051723714280910037132287758881783883985746854958822442138840842566318867805580474517359471136589084104514956409273578851493406454130817946803441206001389183008210060890952773898219824317255130865086970078064599280311174827637416305004186520462602933522567978831562887151382515755708434817279350991290415507712449137759461939291534780736846104461991744811933417845760478573166785200321381163613956929872760528419800902895954089971320519435013006854853016100911312152948245665717525066045939676416467285409230078306763987846763321898531628404749904051163049592003095449989616374222882992248910789525322982998443410297873859363274016354226266976365678570069582717547679381339790372731164218790764994561268740406312386144840935279029028021481068076557163283175282191566679669428382382517990700251125939694364302083411836304049839379584919318747118803622104860879379662675349276995624376804149450130610792488517726060733397920016634848695268855452195856076631496823613505455037685184322352555827228728028034407717135148256280313473801388935832150179694090173552158350101671967552185255952961579283650581201586585349919926439718098648020957386171407510202794760200003208151903414394122532305759731581255251453720791305420703015511649009452850651303792736125382335644644536423158014860564265276447980360073359885023962131300443527732414363450434700496189420214835677594113406071313724388869520465546633307814272309796482131311962686654446939265438727372206477656308474327880744637673931153294141946449329299576101269176645414602335021734487479841698153147154833664708909568348318208865589840622189297440666357110217620225521134955897558950082633524551804298971099229854599261325328472257178182278484809301803426154063941630701712906341104398544290535756466301404910843857975205019949818798548690355679345809023701533169117850290668877307052002524650807763804354900858615213550404675806583654296999985182897793290252505427651538854807556792683337577975605247678774178309969505676152764915361128711146818650105163207857429830655877621389295330617281127950377901664288339815532689985298639277514106134254250810929355680208085967112880357235370007530791137517865947941701575731108050702078824917806488025679188778442912821280772811142878077683550687472761218988253788097553718718038101267478185701284081289928215542115147486391013400254825481577796837474815491847409289603575940536427692067896805156433022440701284569085156023090845288745673910045351228634559843693429805551220870311777769597394894333148654074385291987394362855115886796198644889184838577067094704908213086677665261077074204480780179367492509114152506833398349478604955592790784470174175054570440069907234298514574049939468369213661032683130971366061391348430417038507911394940319414167632569064650805342115214398021252462918439854010569080351171280907642603539461590157092441876382163349589239309860320336045041177418369154167733973026971225368992611631488189951381973260403582004296452065487345374691908387931596885304689291833950907368335012900437292178417231395230689368223127035189550411335931413620780679922550710886895117484508098260343459187036993326676152951471560467916756818399452342624210464697445813792998293937673276757277174311218162721710550979411464996698769830797049023315052208402118398371672454121200841971095177567397451366535420043899997639160568666724214022876433295940205367444536891922450711355942909610225989428429534210875072816359857026885917065953200004371109235671398731150571358155623391946116724288033595818331117971673600519910370113941454509568086095329528352735337872221256189282759007093708049481866714055571790730690475792237759005640755694034543092501853135553231115919073502455941106258794564502428581312679071149638729770188862384539859169304203411018865318370648548645245635954912167297328531162738267034524496830364111203371409651336532915761874382333221192211899059778236156383695881001573561888784044939357323868186928448385248478063598399952953079819147166049072391569665555034916921786115634369858269587243276437507276497116599375683422244710887944945450142766025943244745925638784709535722101653551652750996092810634374337103892585486385079388340277519027735451978674680703049108041164042935517952944637390606706761765403784154062235212214872063713474360667399521757252124848949356070438637579443616487089465867504747662128568941495777913539957989625629637878612489104027323374028091224373712421347944104676800755716288569985665773613144756551329055106219600293453859067643425736051400375378640287180792512340557627638654389797444924468441747451102739588903431701996125445304453789461396264321635975857159977054699256775955620785437994126971355595451715765465430936466004134748718006303018484577316968865888938344006086537252585114563903986886473579022472382011299076793560082131926608989591334115232011676320783985939170361500659768801583287194227767516805658181472774305394385108612822498154957470415671507399568991922874446220356623840665179514051964855783197410507700848396963858212794867994801527973271465246009656967103085685891209565294338395190054382785412452687357504659863706144102867276086309790787182058801526266520583282249091004953253812035686854295642272009729226614316469792757881683556260797046268399549299648061404098946075941114067610227483945848079200210298859187530231694918247160711762419991464524323115457581769329895283729023884547936880635033673023576310765291863554213175674361108165203913476574641280271987865743308109542141450422970824829336536114534898218625623036785711144962309590557528714960414081885510727466950203092278500834284120576140746578299177388863357334173222670638607761602566089736763255222432141673057780754202616011311758977324315157136842869878143938024648077549906578125471238986932957570622787347638253266582358871929489259984102895128218224076423922019060699104773931232112985585655050305227652278642670535232302817135869592658544355691355286216849639447148917085732166964346604725648148132612264235628440262540030699506678129051461945057226907823746650670264484195268232574592116719651681268467915703274781050198227553676152926318929701702424831718189006511058566000881965406155106665743978786824567615267214767899858414885325267982682638516624882999723313703125291793309439668129554229162057099798498228575513903925065080886569593181523602810319179733941724745028636366205773091292438858228870416999606158896796996133727872301858614404606876466312659428759804779663703869613931249002200351212237662637926194521190858627048444120285849156363885770587928571791167293460580772186923070743302491868915300718369012191517287108133433337991398969278167769831667170720207494608674735556920184397520447804761475660026333122336616798496120807747570717383037619818534316883663348280215136455516706167053348044030731090407849331195027546732849773067477898383453006603643574708883053117119689503668143597670536606032559708461352541381521411729809364429281290401523859010266930894792263061046469096759532750784946332019985168315369664378291430743007752272047285977482451425426001051747416162185373531548894441606995962632162070783572145134871145273976331436832274624959467452054429813564586962105338280414676174686965361789584589704077640809666630098643091314373713084769817317871750215863309969095300316315298740613915979812991199354025492884420316401447329164647939161579714757981192498110476593827671409947158886951108490020906314965514190752496038932957556307393523076402998808685313870677558075931089105348639812787075017988440618610711971970452208153624447930032634677880871792640193274414283458562095655316094017421671215643380078684379829690427658767300327882803997881758332012056129189882336945552907867042121182569143036776456289946218801539585199773816503031738328417295752164547231146555886959327022385384068054698705433117880930145044607047548992746136889473908242280110849651947941611443153259826550876179472626939577410344718462532403177140798301252735644899590705673640451251186926622106320315863305514539896074568314518753766879536928924376639574619852504082030736481429221824925084603992355259761294271837952998710222948615070754851716372649681438397310515930800580764977905291761055880799948064695539497110595103622137003900312716659963842930096015672515171170354053122608183705693296060022504450439680023635133275392397703159358155244154133061335953971789031721625470533515344136488039791837722556573098408156517839657538459003897942595393927402741413681269673284907937936852791674111888231808336921566983453865488951400475585812417408237167970362466922567379650033151554476910811058191581437083979193158964717301970935912035289589306981006742890602964882854091475149746678683993514960387224308247393111723073612501139610252171730694083885197281909128693750434947804237675442953926679359186534772905271758889628885455534598929264945536454290077147140664308421743605361761451711884950132682800683246328026115949635926752600865420523957267647415074941124896227684351958542507677275354592607158361999231217561869428151777097184472998285386623166680487284250602153832195753190689107215269477048160653303943835252255508124617450773506117002200541402535892557826232323970169359366589771203595767709602804693342541721566040879407623762189383144260041992499841596613637164883870983759879705779792570837821906998868051684328105253310677345938003349218751038893425893147633373693186319874770690359926878420459863934197364816479868843944482612113962928366622626649151790296549698025705474709872391980576085228958772027508020867163040651184693619589303402763267923115700924278100092243189005349608257264172800665944944953291875224279262899915019870769513127992145853896511596605931934723448397442144212130558277196873407733287188112057979152823746088613656911155841720598653636306811827321471189928402475841168535788700790206143307772340577371282404606454040922799667760893575779820242561464034564261455222666707188313819744370874057111825582884411599517601109323334665384056330907917414484786720647077821752000422717242716685698431804386010663203211613237615092946317559105259690093654806924675726505209206726942313409854284090008680691304381524549638208229814957608179156891579137981739097854377671360023965625389300685202750758116430979162582550416383645828585651349965260884934025700812958462168967439767678782413025129198741372957221001101435837288914433289070992713978968497171962559640388025141147737076270147987625810614574317764527721781206703593127667917629670518565328547613039404364425812384318475631662301686006265492029496951512570119241057342468446211004443536408035167439595162746617886221398604497979469427834988455690381519436830383300890642235502858080849735304046911529149036722452296031070597579652928055674912400832916980355266296808701406660650840570528417973373380690275832863905091280577092638016383007528422477689489796988967955542701836868370260153153393928502165963248478229577850309466532275383061663084309224037409958142890374742789755316929938779930412666094256258034028724816125851870601700430921558193210879631234352320978771598384819852545809751779693084472894764950058101226187473713221952396165479767180480346399973479760511386023669526560972748428862340739350425448676111050862256107557481163222425762696692729822528500479860426935320889948976173020119749041659055168313307026078463393184968799115345797824265244395643172107424580130633842152639900818041516038863556798761733131353841666262972486287838559584657253563332513119177159664590479799355347972090797991727038555903355842344351273864615340871389868347010654460655383612509186591701336584174948026447107604063649615439955993818873647968642739454233274547369134509203858990852254744855087505036308187162022521716194152540455017177241697391480762409707683114796027321560849540740481721951407861714263364899087246453811446663789845359000039469721600704358965660421799108916588366796490299572915311755210781214527759345575421423389358306849453104475651779482723658005371960302941166518438560510727052190044553919085113928286250937069399558649868507166514714031909424231900890249235885920468255673635237962627813647550486468155637145359753702299311095327320793107077127282924706237683305659377314080542633954219028896526569449751312935424989020731993178963562959324921725639118451454824957423574193101133337636008240820939566239631587893943335002403244640473488601807656521344393125626825975740703876895104609518580159754315532742365210130399182218131438832808933462055663374075514741168216406107968041961951181392551842675038317699243811538875520619516318185083048929120416418387808954715099001030588625023192267383201618566648663374591278268450593801036899448016084720887093814657477626312737405169509096069540678451715904674892754434542714482411720517000855416635455592244494291922380664233212753033202066715174375763796932989987864636272873106878651183627026009009892629536933499760354559356085567442880304827445390157046929664715374355535508396687536526321483468207421907638287447797823250124849803305652631151140541702140030972925382452910329708708414170737463899372378669468285851078889353729994435726132475444986511060966525950656432375980595637588740168685237477642931835805259036837356979331894100958525365028612665801078743361280910295959179892158519285918486292992567062684234561996250965554289547193159369284854741306492644184010440934555858426347616584864746544316579804429776644135949297680416388668371802859507197106923934597958283175861406647458533796325964971271943152476140005506715635492261892058436243185408849243390719585407667118331281806241006631731624574428177996897665855938238727916629678140316879348849366926348907810037300340803710168858003441574651357921604848470678171974577356053779313968948699300727763622058253684276251098548894746301070369078853062722579946050660130858822189603994901865682891238772668302173218053974472654837341309393405979669232199279021278575567992297973022913811499431159506185569800763032949878877015330236108092929960055255460485350129442641361141806995358162745700914749573747322814321211206644896512859854687586757666491546446093313083304539899939247698764243446880376570625830523424261086664847917154615922523601128978712285328394386187671599697832877357295783478001760107666923750122046190086985949676976068541743608067796539725106946575963172542416053258829632366817805322417484521972241856574544654002973916016900626752551502420543110907144116459882299202073246987810304807799966466181011523349268523302602985361012442585289314342663482424544994430112855795643389998552676237692541507290358771103437164605521778203732611974935309175902797315778752648187291273795569352921169972062559495281880477770863848589699705595462452501196353609138951594729052049115690491406308088821264056079338023001280254841891910933667132229652251359290059667657242091484934783881346614319200245317284202012787628801100846834019972355233613462404119933026343742085187837470336378484961191855573141212073464277729574145296606990287424352190937052381575079051612359843979014725190212909290426422361776910088553849283270305084306387112389072061876082517355109018386454562718935844683111740196990699066487645972106016752406406524604369884334108325633974777870022439755215088010642506771946076471329290018140751470478325376007649087028805593301221670562952350013492023033297529260254936224268518369797689929473843256518541007025225742606649805907000232232571027371981067874995749462323602793432118744222430435254335789781216751792036530736710505083017650126934079286687031996924003781121464668836437659618178596570607197632176018858862647293300415956378485223888412053899325479748267920012446064422740866157573600414931635795997522568835519151282557145277759483017173177976180146136028628644205841717332263145425531287468543293573710785906281635493481709060461980868478220110811472094973970348793054254593626027228196393293459247347047854715839140445405509210088248645186502542650859571417817090143554221388898590213840329074603951872922326737006857588459163279468443962947266576513295926834430520758413627900054934545195236038872776075449665295084910782763669526978037121866991734453364120121097717626845058319000551841172407331106025965122007804477246965827656261685686353681693492301494424203434628947808797009558405245192065894251711252960581859607385622828226151324354555252902316910344860967258537839258665531011244290570063583115705038213189584126990454825689967917142940270655076102933243303390171869745346254303968725294268424433947264337552474161803830636585395925340419745346709685636073428409815466262647510790676473150911850022285826611854412869088869871995208999457623382608309600993267963975724168404641679851288837556942659305598363602462616975756248095942128679766475043295917456224361123197533855115023258797337150211758792812714209532444121062009742814374388030822141305829749980893950849096289300263068673712366640936494263939276304805472407854339156789546362871434955501689220651897494103510333424834599960057103665869378273101989523135122628217347399556521673944416512417038451345134720968559690486092679615675121979282223601301808610792395917306842613852399217472986024114101033276118627749799459034555189118392387904045877988259837650649905211576937002448942507801959272378545204390599132009764373882590545234909452669703757149936919968406733885638029706162513576604956910929903738088966726656493238840424661963950681972737732200590259904967230944662867437241247130623403000328906877045763644848343839643123398043533280093358701419824538910098275242491007068609304861740653482815080419902118729253134560516618899561942647147221914173201775188053978408408854910614503630296621374379597407822157601824771108690966567838501239246130965486978700640876040962464499354765068465004581504032431046638390250948422363225935640425374922820035409037446127107351269524859241414955943686749339609162151283296969863522163297947407544388421784802201472578567732726992326503430916028961625048302803328576565447577807575075853345552327887870463107978846084393206984725902645074882150057293904132650978908567613045377417797792880673005518312716139522759569892543810151278426559008693433841012013696716956421502830321606411216320337518769568312264026626483748477086898435087175663614349200802542504262242866123983624981792969939764335717446988662270265265586694707119989793189308918562891020829188091526944842771981745866718435892625585761439248324651268851961810140138861330661880368962739232897593349290577283719143653909834640497837398019808158107386343653573541904911480448735766297802048790862497266601779967878778701924345914722995037457504557356967807428086946680103015116495753184058786326837157582833890806405883461397377979567638581193301530225189588360406304697903979664263357720068464267655297296766482860505972303169025045421435857623887212337649504370390956095751059882082006615777793195280716180353612406562842955758418976383116594070220623007058670352932205077632288269216186788280204746237507686267732642521395519294995059569748421339851949680667478402228469162635424780288889878663529508551981203703677985691876132121703098785002450290567729439180705552363753237429428144843667995013091321920923110782754181166702470851837924947430683869898322953288123526784257582632220129870991228400175748872344437873144971581572792098967444623273634329561182924029318865212068863933143113472099362197128493273792717768989436607800658696474944604208018555983824442839786291187628422435536511421687511278157127817800905961578762898172734890300538615009811888395954597986442187142180508742900714557609488407074516029279853605786463733317736294505392001582213949071028235216635290931453491132917333967318991501563452315060077945778995890050320929034236615035807931161325299321329390177458988878123153699910324741386180492106847269396949761977530510541760209445079987325386455040189574102539262698492866385387087692167550689673329715446111285378926276074990997657876037351742328794574713252617832352632368931621101888265770787465830382849342590416277677243609268687183186296108485909023770883922028170627466749259791984085675301730158632346512756012024329419817143972274088175040462000955081007814248627557816596941637677235358370872619419097310657768219455339886679503382108669944126126613302837216679428518625505056093924101553624534306532015528574493897631105523048563094700260970864680545369715471387674531899719992088642873699868986234036203633795921159668362834099580007537084623416610780564055111729784413415409488989350417381521157555232522329701301396477519869867190981763470062559801304912566900004717114762209002987383392962189406853977457979854199751438427537163905601001239848218021314476042430343692900772193067229607001975321187622800032183121089773067025603356578756900039179610484095572486799295418331918831364644170884616250329199929270312729603847287680752605409790568726288598662650909825301995497328343903421998294977288201870097564090087695856537602220285728348304833968278540684296488603134911877576831389134128773912343215605743862654322986312873634752718856074151217135433878231971340496132073307757338231064325197113341182178059693736220325075138909928897724459371552075052535299188334109092698685698557012953938438841810021213558118264829464168098921265194671186697373558480370295760866624935631138711069065925403551823693098254402374851725242768712589654198963945234875865448142004787970271765593724130531750546614848564770698157318090692700374359344059328002765132720421477863258473315015733796181961924586250316134927663358223002894468390202470150044038997113641645932150784762296811625949776210479976366135247152654419284024523021504204509984583698981030578232714882913665122306607018790080059967879338614173073097759430401849261063164783176662296000755992111994159885386574975056832262281720210112058544249784766410242286980099993688296976865566129938921916647219346862057802157042993302252356572193526761559321849205215752017808158368018844979639880364795029077573220572383272088079895508117976756633941715979350496720637738048388106997195138287390395523482179663827030189870749719505071284150500514953081359292224320234447101564804169591076067042582159354668189938323188499793897580880638589654772688250917155515544862666845099498139905771081732179681364491516050023906183554595123528583012964703351366020493285492328755459459196471668274143126433813376155598535336393618491229957362859907398646191104484594709856571585274439440684181358524645368959556537514628270268656780114953168652199334350681538660809790203767337559376772289255498958669843008763103950549220620965140046981174749715030235741446950861065883958432813998082483874957624701346861288616785324409162081665020774259049703609574148757960428811109467850896737204617495110657972909592473731338444712247905402814708088193926351312235704798418440762019217288880271338478318309063517713657539270644661084299324314650356861114881769569164119412518251076137099053725754973486727759962574070519931685932783887976483235315651871152284400539795600761754806662046787774807247647967737237109488936790520662307239059547811411401559644931982754717665044986963840167279671098777134391816543230523227859499056083967974705445051847365245813623290898557846946928804276859203624417337030800054144218953276003190420847983276821427964238465242901426382081023593022424749362707471513543285674979262710715129782653174954090433813251996208240705161749970937865473851786840544676278528776396682735293321338082474583253386208558279860171087988925344560641697950460388082339646474135080811915296319350346069907487319132488739841271268248894752337948272972136934255669226652764807213554001373040485880906828562513236331545866135296244461380727893364084338833912691435548722910935828095100022240853523578081487488531010845506778960906975856541083179059435571649520491341461852756668583789470917774559911299576747206227417453663595617180643548145177315932827157966259624082987993432894108487244756070622466086481365185219012683208314827999070659591015353982567239314725486439616745702097418801804228939842533419534949913294450653052974143929917077729098562414359271906184393583479027942810327443611141951401902266502552202078329284164543929169522064995509734805906596934965924722817608167232954531901682981361868537573629005206960712234639740105492100624086531729918124042622387100564386168244157260897574060238423593291811880551755516030899019333192783541645449571007427385115415123992248475976009147067699965243967506404369261953065307971764713551632186366341096650025817550739659628404283819178344789516782566885337518299913602733724169295712567665608788600628345904711708234982790185941503255770038830482013525375321430829464362032620652979355771320795009866547579284583136492649743347655231763215700625492948886889026256936628476374397496136709844233633335041398520773841364447169419581024942235497809816167321115100579757935529548209522903740346087487549327463021348498121786939358626642910792990786015569759144518846244756085415660453427637395626079307405409631972316645470125056796535091774079547017205935610953421882575242133732066908107267265896971459741672765051957162702692553377176783344856048154697241678295601164593435666831763802226415599481309720274584604826142704833364193231388704292161095516785779772180285010431766009603802205145113075397563887032041240708071083147799393190558098425851604463753602029717600261873494447844191878540270518452495042912885784723459352181940360199660278714035877622694294464959587797748513535527241764133035085094163749917094741887852915227743417271146730260679240199563687705255881205883442064275894461201716191530673713638071350311726947066580119722961053455824244902766039418100516813088707264795011295310354426956954389292517687956524954988887941660799636848122178210143226562813445338310757577813659153844271902987450599621350228511987625388240991745741504264776072828334874675372381663537616582304919028921626244451136310939815718100708687616047052332417914090017942533432292384667903270422376726488804499542396612546319340313313525209195629767482739155335584698120098238589140671772640050988187523383921568727912630942509203190983555637902075535565223929022521606484525888296364947635893323035384209587664151778467254382075138281295755476735848675503848714765614037205799698186883248241400058280019495156633220381634260415444710544475042978560763307585859052242408145743872382220011667951188605017504855747873493827721285745669328829862324874581217156592620347317317888880847666653402473859380842532476609655384312799101706825193093000306690788152598012086310656842286753213070377924054745823699824292465258483161341408983395790585315820382090785063470335647890816756829629016569550044953617523267091564838778847913907370207223975096675486240755372328495596281101288361777532050061535382232621738014948464949471815005443860781578565306142319828678471747469395670884434575301857221850563325184941468618186210764822787964359074828501926517073379665346653178422403298714987166309376695482139180163009706800087684342485142868634681111622428435329362622458470210997706878456693754364534206173696396556649467257695881163703589101453061409817984123461812873764384990350898269938961002520900555418629117739458349871179820647272238382639621372203784573392054758222652021460554524268763911035409289816787268696720969978189397681906559183920818220190808623259797769839502110033774545413902185519116699257390539965099224935577819697326320306520931876794710488915541592099202402787583507487968056825968068891695611421279101890913097022690981630032959917476619347849854696180050250221753937360262798737428856968448000270471187586024768190805006207172783564022652232112824563687150650463070298776875363716321207176027225099928150172980960245626442586579602281123572345074861823992536356233524609824005524183195071760958582803598628157932919815810885457073622775368296034676318014105909422859644079255367007359007232184803469338195895032117151642057582062398716182855945230957048413268185863829461117993867421594063712259784602904458110845293959293580508862114361464089829510619534368153061842793140216691810495397681607570251442564075953458066750809217254721183807582831640556896746846930346267596280286821546564771385621213055693937617200592527452050951322518371836676449498357506607410401880171703250636238799982503089876450971547160267323201828235692951820246260626125222228599131656586679813632404272647105805696488496289671879689294892541393420768113938949177349169363418872150486399095468317572713622897419787568683570721503445495986116215425095980482263552488069696900339443392961544195181916397001377683527834809016040347103640689015199487016959926705997954232863088104837554781061077640489943219274810228003402996370081107418863843675312015585404892881612726669092193907027204434438133441239467044431328063964981509061200370961342986805180980577658046564056996633585011524741012064963975975054185401500726766688916260794450603422483759789141930779333380311801108151623303455107892192816804014714994761005543130597057925246503605583334079026814720117823381162378287724308224364172260753740724591248245405273275989758201541320468271910386906839517782435645189791487595290449908557594185805409750763376431822400605901919327224443615422165362355858623019094217519448744602894479572358413516043541403643371986121623020786169812174793355561622514870199693450305775316104571739193224430479973345304764564188484810626583491426691509460989648935105679182872771878604595138014977096710296501734822822793713893962955278288157842929186432358091408115839162836396898707855730759455126358995070121440768256241813317400392761941257157247751627840925041383387681270149876061176099811000230118406623482074240923278709947278548803875596633134615542050478160822954925412225535852266735138775951536481153768691684387082616232673826287036811475550794159540478200028194076724381522176305844316985883952558871213931929927228520929111782658059908145400709376332892442261296440294263861992095516456929286645863996084850478685550149897241481878243322954913365377448568656042921392663483832123113078311321870277253048730294289840905795141081310013218658240270175005267276384569665021511186122522720599164498198549124871843700521963124581761491739249017799912718961097231543719442331123898083659182160992214078879850749024661809055724438040926429181284167048542930222433824474098351522351796811294130278432132160836760565287627355058552874707143132357473644179163164136868889890382132267042283674857318272022269971597514896611513106579283677136572383623437227472983917953486946607426251290076163262029434012104216434556648780337132796772751924186257137153496446887753806611861733867021670774097371868996687084248948907116924076207452187631827610046182393034614138564195355357585284620453927341406672965310266043921195332584746419636054844257598664760543436313255862110250946842146303423862712290848418388813135439425529615963304814273185922144007282712295865731372207438226082405060759948011584334541885899216595776023259576698727747905831366273164305530075451104505695977106988388677016856936763324903487002232457468613945246342781175073407848357084383674175307138888112631631993893753255090983957414366381667721861524157271605312314707850160070804845685428198380249315317621907493223070039526762030377874681351735654353147137938913024571885701205382385758475723419305187826878429157327973141051302348917517906918526261305670952043122343682784285920415796219228784736554837240535852725403432665841824224330044783047717626351601169079476430215852663549351294265825295638765499167574514037482574662109460210364549227338102636452149110488473791727695469069448350160356877905246056274915976600839537465631721921115180522837181080801229870867706445023495123713770931163255229841395260144353878090192648216278670083318476086226311362952481850081309974981191002958230813388551325510966184362009889729880736170222873324477631850423922355278921276447549313620475017879951979500908750873236415020904490367799864947892424604036702500700734860315826216568320775352081553081129987023832374777067004045943962068391562461735981578919029397710506316282721473129639335850869411611134842806245644305808198314345277770144437813674454735589287160134184865000914478894720450113645703403344007744646410705114245763251575816841228656581927798331979210035052946138284297295731430084162257847543896685599456691685177576328813356326530902710135852000750328188558811060368660481713961489593962712231397787431414290060074072071237381196411486815685356518448083563099618963795871746146097593676938887740308893510423798325784318141282906925545360891116992903761365689092693967181975808562516119036070159760775939939162317068067478720302255870096101198437106694346879920376347955136690187165596882093529633697138391736973284642209841611709941183821153700853222287891611113147153089074644002051686773454858608795745990769007620000439728934247430556302027346663964192183367480432132350798851390522086977846731028256326026554439662319330440850121520121640755563261227463518718736833232723325342065751455451513820996886611222151650087707744637445863229041463273338407278324273552943500511314042379989346060656064110273205027432534188680886381693988645437972633892329470211601365270458900700892350325817573542253515804292985258886671882559611876719703047649083696998364758059906821635128085897461798854638065599902627578640359632105661793952544970765755759495394084689015507695165800684830280540795705920119544160609398697560363824960443004316946180913194162603071843396007030224428225177812005251879914788528024969228729385287188297546390522305127423505652399400017201963355332515297542653320221454573793561857397442765391836884620282720430245358046813584983840763648449666303041323692213964777181721059273463369881175849376542979120338919554416398823738858948964464034908343871015426949315835374117130027365702189752661787073902882398620201380452279536003287638011136995954018817547534271386581756059190475869616741764737710449569221160510468720393213843244684102559493755226551931045051656699198724321166673110839684364529682245522580162373871785881185334713038045816376967236172936395719461356508479953836620608167145127973475884080299282177845199625149486298668668398354199958448444767619015177478051498852149384252945596523999701325461792554082789768178167933971421459660932848272750449117367824325598051330537478357459643722950313789666200568005352606855562368980408973755619880650057247322806024221745115981621754099148471400594209700561751809784183927083404008136038282017152025013654867222160165529896516405408795348807885203042069015786151456285188301996588968416677350659697971675478626264316292359689190178737543609084668950959243624306899513024267816880202667097681049896119139703487857530277311516169155592468103968333023419688056550289740901269776810375063071588297064731619324056167239352191729500214043061840552800930849549547383583626201433448119781592943516743007474672450403693430644763476676395020495144883327885494972613854736897044813633960165050919297177313792772037402424053930127211353377041768288995879506099199906779087044315376649252324902530456633249685660767874741821653180874747839664490822452948300393547685830553076397219339480833726635533975268808575660051905036778163827147972405213628675844510182580907765506512601666199972769026473465662756965229711971885299222273953622679778407304608083935268245397399685447013641621047094429896747860477563938353885734870031956831821778635216446246650397868135834849983776877252852225518277666104227665682969626134610597623731623204005092418364481204160360163701130977255900865224801689583224550999801978474003517080845484091749277761185269279143440876942252098456085343681394549097820675622232046329001177361659649768040184910339984128309375904890815898744795300398368744812053708298640551367902997033063264717266249119768244069609703509555917026038166059465580002051728712556050115566851075169475327906491427100100719330194877759189699938802014797489767731141388568642752257275506540908075319776973993925663858917298672237718122489744400388907479994654221363518807911358129331821725871717796818767498141068889604982186517879354246374593637316898890352777225867383482737229962603239954918173680595225099549350259291347283787270347273593259010312911900561160694335351959666881718027135851330062737665692837155069106058147254168515902842537610144674689375848756966415872554709286765186569318022322817353640452247939919177097065710724188641131886093350414078646868492245571460922258383409973487654745660717926214949521006787776977262631794447600996113409529353047429957187036658505249566861566310772917764668734152502037917224373414080222154062141642579192274696161784762126574818703333719429831269095244887831045725514945670823550539005310459978913871597274600397426102645562949900060497971968842493999504158403737087884436494454961091600387283429153470830339546578285135607211107209075701177488327550433457469287370547230276402359959012360966298746823244368379879777546181580401271624855059617517873019104263312544429528824383120188808832022411559209155157518436389622500067561827253203641877475084386736630456880699990373891269037935890419469116200640227205922261122502406738950186954590632337288651194909697245272628606620332286680257441624141600314859815669888283524799706678618811089790793444858955562106318106055977120427389001037575644880382286456688508935439725047895841301323777215095586904232294156387680066692881170927841091350068274050880094379284144627281259501128647191912722776649916949008499342704359818946656931911029637068466001870446790743807967900476840608598225957750361896877429056491388391343871609500770830590361485634368958739188591419421581044764930097792845606332536227589137190838240709582975396379088995474923673798889880349651722067011221946599364799603472878415146193333202712739285881815991474290777026596321741171380694223975135414896606677072643435503505521969145931035318999366964536966674911508199576440123763301619611486084061045986038913879567877603258919118841719524741156616636078642893293601882101851077274153120253914264841752509277675807475585614754413829041337548670385753104456588001814422427290698543230563540827622127037886805843645092558716860009780514810233467375987026376276894158192238581248679651394809812053200296273588368651191234637936348918616675238481792894245392809574456764530615597556173642374645585038091624865580071734515092093681379101679085357318547953700926616961458976344520638292796637605941744017322213959596624637574782047851983162573676919153319862400685176797634635422117930777664137098591192857520114650173085076819575820571218000119977250296549105840968067883105985825270781773313431732671525562128275019092941008011029343419801753505442524844358966753498109258297659501491983606085561784065994748759000697735012164571141912979352024983360663168530006244499638334770672789408505995723346570604671136370841843454320089075931229633880272407627524397592965169337857641262247806910590384815456980669248475169008914219858716131986308025420975994417294467943219465773122374802313784585761084557505400972904988122209702335608841546666971919523430411531821121803590154124705255423611570751963900593545179531183373812266401485021235011080489963323493404715652652007919510762647735798412529366534038729019952664525760852786896703596981912757042864249925770093993200113413514031220450914178090136835646323330143012056672270615777320976699359839345545453423612427158238280488129838506883867994415997017502259184828097831222655279182900538827639165614128406296799692601006129954903672513796659633325160372357287385760196396246713920547784128445640804582235958773155281446914620675699675631532600759214453100300147982874943802101020021310623108002017379491891323606562030166708321812964585913980129833988674400124955892780623337843709809769743544769091330021786461052593607485480881273555307064141581295581980116395788082611299267207105796768785549240309491847874203071019912822041977335374330992418625047083805635167836577765351695118502045596537450746910567734765348039587654943596230902520549016485651215739786065723751682488793654247359686239497594677041617124894218913957122731868899200421361952202995640198284036634251255779977599883883566437273927541315017175685273664139912148370655574185642787474136671239570277579101256226070482803255682986170230823867853166120393491870785850695740315646833720407862962736129797622054588348960273114889638496552985947500599684954337772231907497795257435750403029533646772675601794780985304004156279807934177537518026581251038941524721135818237417574476859437210901061915146028913333654115727293016849525752459621633168452414177511503154790568434747071427406702147974853815596258369198025397441632685518939357229925608591840253840708168842797418174988921511757530747113883626557687691998401309657536519700457727764728999308576412821195971661913842290420786994052132702590373692069081268849879863885267618171825797845075782293105191352102567251717329255606109952436606282775582207876081549289060650758165043908303644951569223514147189235448794138932557420569811423736884609952878130405805506725432560150265530220010737652535935693611477021491656501895334065083967105867992558247489395281622049086557247526451732110618229228409243253241028100361693248612976702435774329326928143801988870982683000995699756352178843700297554412341285752973020874554744568245666866377116717439148853671975601290592699711088084934070025177857997286765595689707318259119315029164203008926058392222921421752125824478658756092186262018903511710112863223485891124892590258713046399628651553401468603204033045291799703401322816550782838112211913555274962000728339645147920148645403956778424033070039306890926141879399075272659528025000171080048858466392210241302828149692946340208078007401620708559495346255392120054281707768639835363589931126396275553053082262952628543023279260264318441511417673873217103020484869712841533494553845220460137070803415035398198148492814431459836910260984961625821817082476469546637539423953672463149128041664077674157043330148431441202951207663863556677175220978292370409023862269783951613632981867402389299622695336734361813887201238073242638542685488306571400871774767801085449799686509856621672471989151448533409137818212155458040662467840146427542408146095169870353484476930107291807010321239510235995899675677821615053483190505588090078140143912923322363145668888333497156156735856401975193204310947256196985802288659806083680525096855089189365099204351092186062695110449919659918651731118239792538874032011799963673735373051181335334450674200731377020729672207034157045852053343258852480790087045242605834566567974222458676822039818013669152146989537519196586691354241760947564728163559965701778643334346695026753842665236889085179653882188364044613536922130025392534355050676435932269144477070785700908152105267167032266168151271925750046478274830250575769290313458309217983703526662122449146034207863296305457389817348769129295494900318502013007192664800170088523623619435102836700337112122822894816852463126056513947470501012318968063465329576868539747802847646159534022407703837172430961780721918068553967431534081305443461638729708943671415120139890737181968178095737743340084909761352845829133445373875743125907316196599451649141893050722741835454914602105004789794063178081523882605095516581275600647262631529896682008989095070849231359512125314123473012227904958049725283290207712951868267313917964850089529959941863440547905765581407143619530120505363286865907283312423200070672892339823674501976542966230853371734799151148032189040799975716665469863466290722985573247396103375242745775492255316551371234822844370924810537783132394276763824121521401965500504371427035929109345875392462070355611063397531438430629532438301050859121304259412542334300920835100040800813706248507407588459218834175999080158540349869772322238732085871415708370724849296681548566360341272819659825650437301469345415670796671182921269583666543810806393337948094097014186856492699766360775464509346851358155290274279366038136450613774216155087461548491049942355753252040213991354658535831306487018516339910006740606829710769242882039245982489707169914958505265819840787061665675943852882273499393660391044177783226620159914277604491093526377163783122469154528845850551681144375471393571844201785333727188079765552726740304111589730495880098195340624635028997414067311481506107899825478109710879319530832526208838947593197050264806973391566069633842942931520595502577469511410468854524806504104973480448658017787860309416452631830911051608812941913132304873302298129278277383022132325286854210932443908328103054208530373347156290490791102366499731284285036419065682626461451941689331967169488024162780110666741293600995781646378439913877641340470812887514040585920199092935051749918110232533719939890129279494442963176994470205944953123635569206792289067193188427971678451159565299021926452075738278171107456141064160266971541378155022564112998594363232828901706601383074094951341472683269585629860166478899440534112942012540447628678225012872446320628588566199682352757161389547400271927698468033041573244631297457663121516094854898260547158799474475682866041633041919340019903497521617715689123388968851936272865441375320540555498728749542227965799523841221206215441565074459363799900228304238432028212710903109922671260810220070920281795174577056713407316075572029024036530972418883007460194981593777548936419262163286758881940831720084908068470236357762916880173615969548423985583940673567591410640835846877498108379118982033629280689035030421995481900813457917573496325963696086361013446729320326169328069026239036339231028282841801503351999985565165439691599327062946901934940607827954689954889326796898396891870452862503253471023402801819028139725441165569979522600405413124370827104729177011733159004048257095186548615506476702847931205374748137182945559543303564359815935990235675397800171825948368211321873747553724084520849897985408255389485784560908527716943108218522312286990397096395874359858947355184673502620929478195764111532476258585586819669539824675450843012398019713974213258241360918547309647872168753396471923970612185903165648865388580414706400764031881636971749993193595232046203765073412201845521706182009411743221309791393351862578053787234977177709977069190910833312860903320815079778516112922327270153495483336342527478806976984931281878930659091969406627036333776724065204690207007646270931385368359161833214510122046278010074579077894008383112718954585367741533096077279186281330501407647057277113861394127589952877020238751974836039174548591788515012009891850123747390395066515301825552053250437063161717293005335586371239027669086423169530979964829000034714791293052343624287012892954129447743694641292250076237282575627151210061247742434900682312391482366767472693409517951164572442684996218024141700393713724710897863899034241895954251468994609357084076594180253891015515630144979297633115846561671353372964508157310052587962628733197782649899540504288144905701761874204166549603539909039996983822831463827841772200962153560063752687668386297468255746370751089912680664137393478761031886766550899542496416429738077890120728906616097982012325514229634096649604634893828766964168133047475489301244993215109679067000884200152670001668583442358326297927743611525800371586104812065185287000208696186321462740106021173725172916641580736352606984714785982923382883562929341962525887853769396727470444966999070391035461750625021365511952991293421244639825206248597425092610371426177665761172256644980750516664132354826575752725521575071906860352479671978826273454034706860611090548591508283758981063768929574047008919108321212401688048162775723971538405556700307136663506522791500322615129636590796212040104914458035838396803313888777022101619813708485567168989137849588609411358673433933792960174228475945227806447686919480570831859710057137369437500337198517646054583417618464685363984106111527346118527274819494163025777645610628594649933217269643973669880459618410983590053698791507547669519276736397827029761285935904215812999975918771322867732503773301583441566402608783243369392318641542152180759345314332507233046425047368229284744610864904333932136110615053657778310640470958353519022970102421952257295879429673810947655649309525816175393143637280705230430902340836356917318450317645161219451095043346914342057641347530572668600516483605307569460987725326549849113525460300797351592678208952020680831099215991063072972078380032744179488192562732280656925981496440648323251077363252638885442416307366304366956578643661473996282510356055969629175646920344794891481957924203475197553236697858974412058619658002598132606525419423623798585208928163401327680397753562820268460108541034998671658262338123333212762364523831784712805029610244387676284779716738297000000974924526755466340355434090766159033270902234110025051518864746767208846130964398380796826277200311168902425620941847950566174122618089118668708656405195201804850425174836259440903418886164327407793888394727980511855390456923899608898901070741331662114790218428100419410709995122460113561920162984353461943353849270602444893264850396346642332753960323694480339691773944076132945449670827413794564564178359301074053006784870408642896387507583343227921807019826445242835682478441211034653420249440171406375626734973739747867085024565849195804394953362168321470489196868347826082706300023292195088256327616760392900245097820649705778628512641607131310196264294049037926243417698085667905486862789150994549419749530046277167458969075435430140945601090334023961615331866773706612386016824808646300977541620045199397766641888344229775988695447726768043285769106263965050107510343932967694745235047553489794431314103118931524551110509103044355568713158267565644501858845342148609632978931451923906411160856620385285638975284524875045458686740130704936370994270622540251235230150063275326732469065037384475730512894720814682886851068085150346683669163279008923998634248574993337012308152223577184788580303872082695740094314936600666389512738801699224699327585947606861483355497990002939051643277520647540075659979372415707890288083157800593358610768863318794406276728006302670410578492613425737868565698364543052022237950565267430787970615400326266679942546265420279289349375750103642804100852287187000592939964187909792855342906908055003053388570346130520540039464192373940038422593100596331641052042029573578670372037187826051031390377424625817577791685893400802784361045358095418540875029683400086500157556574066215477332049502370329706118555028599162027208669179989487504628866652352337794329486535961886232095056340973380493253247423083242362891585721272922227788729494239125455053432622718207265391087213131534996868708787007330160899587919590885177030743052147329729741874236268879442112905408188830142228391016924021375157091701329947885569457470264378050207835762892932591402502695660125614015519301869640414101935112233504054827969066546780362583727794195764161261773330397233849395505892978511769716927071104068590558729587617102820943174820308071581880922302128671610570913576308641288146683426669096879985120735858749122507084483800708927176329479615614426080703513157129746247916093114162794200250963551100963768966160470628728280126616305336737326051697038110760560449904962041169693827721784572759078872436751866874859706612782364202486989047287994752643399028247507464406138200610687070647734704487329272621076095327916688842248559260349083371594370219178549784542432389639017983961756810416959552935334993662674950039537731432529458938995900965879132293179647224811123591525268825969414297879751835619845341526131252768664378727774451083874847966635594674003543053767106063695390086108359994284878211793567895184647659323658051790238151295548244455314272532888801981186653376891845028243798960991815457574496879852358866500539780912128208043520464929771241944806050983964518829427682646619291682505447461612306416909293242483910417286743567370566396384863763425615388189254143534228734091369509979674232571514114477010650963492797112036764531158947664688062661216563336667964941543302941844374557931167692617550597041563301583719847913620819828399882806467917717723347595647975934851518731309744074639342083290209479629700253191336997658151295524890230984273272350875717852494681177359901955069741390691887351809847157070366809010894696250570401796147694188136931906500522086589689949222082657203980180715260708060311853668488727096753126521912409703857469197495339590647343705079360888921072055971074369900627212569894979424309801529227064153478287469380151125743652845195961306887859795788265216331018201537967782662547509504911565948949239814095873292504375411564049038548728157738882008801036153084179608873110069034174489201682719982517911780921331976163459802541478337788092230898570962843481481725241060010980388818767083583541340788687027707774721699495193018320465157357036498100809914036645517283532427289787934195865769271523346914771280623968190733326359719026134864729045369433472741838413665435807531471102811254996668167261420842096598001092303841381609589755863937787286233909395132893492018460105838481023110931310907582471535265467290464491428220704872149721109942346537898989243254355593791905077758386602068647628630653673858435568709611785208988729641206989672562830479141437121734902878616551990943556089781824317663245233282763496944252683095216048894945318745785239380803211460688210986658538271671912252191261218788950486042874542508186035753860289201320386958674222320937662956723174118543807683916262899815799140112427928091529802706216634120313453690863817473713933345073546849719382640522606699389260565417455722210999192985307739392265844961216370291470946661429142345323203183539783151097476430324959238071387562754942504275760040213861484422591464936134488042128300290926397481445603569444083044777723233885970347018868552949847915095021540492831072525589347683880835914393776898689835568015416919138761004063264415513274173567275535668778136796123145982912818548921750261033424447088400166702631978352649732639806873707730171176550340099176332379051029275942343090868132793168290221862753600312395156383113192785232066483688215669631877550845880001950791337331893665515440337307670032205725855699261475960294333957416726657868484807248743294093145971109563746921174261016750408102868642166498249556707394971441237498717830008266340795466185364670847687952756720314717007945226595847330513683779090823955529941021033244663861973640921320736771822521210234187354733521997470382201041151631271431820767854402261565840211519976095631230317936670486743513367451468622903425427036367925291452398026501064673583607528390995079115279071026225839260565371405462688141141693427574626309619741456325507045923285751359460841913058129099243206285997525052541252178428131190065723713593429791850908996903446343113999183653811759330808192906821402824338844163207473910343595215147697877402739394085111084438074709720576885318741042826506382803705014018685187783046641938724640699451312524187405914731166377338708875796406979148255306271522716030412860459836058113445075816060433023053787084045304555779245548101538923990807172858589734939572224544365996301451224213943436767093227489736728948586078816833020205827189388906325827435336354823950512337816212492174330622010796071006508478573769315901291899852524384979830448721532957969001175912941785701399507256850743412500537772567287328920318429470518957606246249311785081347123798986073767817164505210834447363054546031870929909946277736545142920542134816716866270149170371155852561063469804828462317017864458099881398199212270147860290360462273596939227119259061494870306973003455800500007501212402275174401781214150870129550027601293803152446303444966659778340848449817338064542407378158040466693212417639019216128269697855516863733236566036112853288178891452347781051597949715568365241499058682382564823351672360318211466177553496469078853993633778244160033850488058556252805900926130347308535676705300842737471269493963217000680004957170395271546726143998597468328807244881454949144347377350766762506254682464313754208713498677230879531648876611256242451473082365399419600547402803344303135179835184134876873642062991128242102684483503805996121966018886244814723341438092510775111920072598887087411352202330726262784341400271574563691364722815272048348239384823946315306717042992262513279454470488608087897943167473534416188718555487130502960449516247084330268182575988447410061849027069865328205415552622088270330091271733025746883475650734180392802020039068520730352582153695070687623841904072838796248461895708255573646723154455893326445689040508365535530678091141556063004207932778713639851768391913708995055955455763947308809261267722474441959081995073579237115464675700760528605760617565788506163371890320458050836017990602264175458254208244046594218027120463962300200667096994467089748601813448623417204330672814491269829168485604280070595186445043945304066755257724080500637046728428952695293222207851194087963949369244201112260833869571988022396857507690493824991667724691919210415286123041234596896751965538679079549230762984277475790254587230934663068650226532141703477847193799131780678767710366330489773235950829491930880267505405075188025672503757130959794012585406479117920098842739646322351106420313212487742338727283652450559171102517178367007950683548478111037714006768842569127209000326420432093160270921955221484664982607935147689166699722174160180348156951300993346591480721650126785729075461021519618531890602113533676928728595388317680955979371522247352518023873816615968009171741139396048973524504670137479509347794948166521725367093950983439844863873386337104057916109181374554462618487911525093731275846567126345803754865607264516739281454139492566941047221295731377819616622743927503188870500351152056912464176190565097371546626550351288237062103136859945569265767631371165200495729296949129755096381043532977066741001763608132503715298138873594097840964666216546095693383585906494008908455173261615103215488745009927592831504992984794317590794743182345140887803129371644122176633517052191918589530581408434790636311016792519258798025486782376681825762624565311390254845231879559527021389539670862082773593687721990288562338767594975223334853325917032293068917110769337440705632574554423957437412102771522093490847746833718362871097216376046504286899784471387703632190631349426525057717670920310465287053934230499831409675086051445313113855370284924965476570619514537664857306172837969197688716924489083427949681796057027659201972080546344426785640607458316325192404071569196309650285882728335626639776334205496204949773244805021773376387882083381889644948387767676121772478756245830113420133277635134080731736236534247193137245894312480975689480939645509693415409194730692451037909613807257131679164099332014546866253098157355117375859274182362553349473245794135199497328536235199137900055709202176343441983818211112470719329054417039756085650837253388519563076821547254932171646004649802470186441411231389668422998486281779112314935359312748361720416379131517886550547306018482928104885224087979341494411883896385192013115655159746212319387710275786055325921661148582034409933749797703697481955937434051793228446030450095515568147289444143639234888364492150320242077931565696340421733576442050852059493916171014114409556962332648223967030743171739792858909407519040368433510436524392918386263973621314865562191180693255435571911724915226754804803438046901625930556525858845392020157436745626290513391795693818217442572381769502886495295089944391230627865623891206407911011076888965558317932524192006348745021856096453732889007562267580747962935174818340212539835835326679734522920837697270722410726562827719768810697547823722195757964303931578480757026342210896543322463697963755728611019958786651714237137337666005112623434429529479978602775420295998546873205638094722237810944913560191211395282053687480909431059196551790178179552995969599595309590771857870268281545466824679655690996358954570786235907094406067619853365783058800956029267057107394625735075287310305387905873221501195820517270819783156405452689249516846233624801402290590862931239152045469862950566924687253331858303844117638868186787365142346268320195221892291774794162897607460110723678147202916142070509295400923321697546808316954073934762911640048285693660622755950382666587488370815636503900581926907377962647053454966775710620674217824550489416056936961334716346249431191328756339543760122367433789935854106587763620794417323777592733879278809916538441872624010071152884469955524669130880331557497626689718291146657041638919317741377430635824976613688242839080123075717502136669356770295173321604225840256799486772427885147772254139656466610253821491313940552748140571244058552497400169444203475288401346230335833680319731818335130771070288973803980058644579319887784952033871230894526911791272698181511702412979534245179774476975871762181830894700664174246620401146840522197475800638866994234521775298478406932081771090301218413628292726318458986008127776067451848438222830531356423583200954840701868887218650949208448396607246581814282687659182675419903259035322546947499769773409793620374317868780903744701930219319954935591072028635497660650637203950054445387442445985883288978034947762579176316238412679652228074344033134972531874531496178583417788070822076697477407760000128304972137696836054595609200425368256517895400184923516670750930064731920021274929564493015474175387529335475511625938341307547765378747840419886276563779452591210118620363295812891321204477872820618750101281248413108040844380530034177754141270077789134805309346598244418574641475593847563271211058972996553799010899172698415985651406241922795728159623821938640314769216697234504525434412025087404709752833873799111068534019920677710313728745221164622527521572831140425711242542593813044848948133861953885459765713619847831000240960169254146262568977557177960832937335792559235609656631184036608443512721000901600308975413765125316177955688109392716507530133443799156532447529337647974505967738697670167113567591750928744716196373982268584092685685099972440881842366853699586714455917076667701493632711155590588046121958042355856200288649622791715291338175713868366922337519933879359680049418462183292760148021259496534455810778868160275096140036903858894745566773043176971445118439328614325514869574785664347448335140040258141244759415847174956388100908309436908566789760593465805270794273628846787587638584189626598609825478725445375990439922779913937399076679957897508074699593788151513392515930650401043038618995090383935746421006229124427446826531229194554279778806565847216896718836023152709927293562236989464006549500370957517822843300667198377343630724331765246444560238251060241983965224911891549250135736474984453546129349592283652304832723577463482825121398337416733523377559614218506846802773166370056918910697487021646480871833216010791201995991039327392689892064422053424066931799458104843686079984321711656556815361142239670973840147921588290020161559174181807472437444611672235830423993659325601844211499200094543934340223628618416711010789995131931708514776078735934808799315117912112055067630618383423911060440766516097871515780130601935865327162899837666999442098267263076170430859867358074163621696956617912105502529919729591815463813786279516367918649576162513104282611498515291041265008487497838258016368226874228471441231988611175817244785416610966060415386416262067414386058159984365624861652919300729367559595967263130451178346958671112156212955889605005710893226805884449336468474276157912004012318734904717897333385387673511574155163034181955134789271095478055825720487192347390619774645839547046292633123799378727235528592954265886286566413158889306789809591110878586707836689297770743475110861501932831054585973810875363520626478505366227037600305100681534937051964234519589929308383148623257177465971066935370155863870564068003760057356266170339038114851731621236323335937221644211634844381239932111102390728239588481919301473013190738030840906065478985986585565189286002639344303944886525095819673671864402027315289293512178502935015049094041510005255186134915957934754075481206606308200590251754141642992627350682653338525116851584661714907354166210064236434776365515691143320724691263213682282772054898900257325240840321571913416411920844379637304181574648242543050942509833037764289891145544691883665938026365720837478120835694891466438704277692584709296677119481034146042217691958428685019720595914066111221109264231934939946527241554545685759839353168298914290510647043704006840921249911642804538050412766578219885927303025283245116257036783508958252231474059746025188646918813041749890105455855805761154130492792983352286908663039759028391252256460469479629390800161931455973077371674754651562657573639176002097263322784208348806844140350628439973991114368773013583519892238200732335421128513816912950630230437080042412451633373056856721416821619037517747403640052988625681758809786042612281252948112621487670614708767658640221211422389132867114889046834214088038432211314631942739533543164447377573283746554634020378547520879171552143135784798640400824601040045886062441838771354087183402603692930273619721588393266908989125408038439591066695946368643369234791549432928929890506927961550664719315068191933437040420293260674856261536343392441929275862786033695625779774710891560529087932616566320235697263679370148958780084480425114713411514825139011052701349308115620534932853520018475267296418496872618531471801899269930755369756472552916538948829859895219315253647926397796200741927591487726268469502735152353668614906106084787601068522300739201826591033025954540335278958058781547042940101703584734749338977154298870019066333808928269436468174219502164807842135192435234959609967674999900427788095010851598587891801169216802817597966131339745207302836678651949423273365537764543412027231937845420534492597504668488347761389326069450894984081709951009912270449429998322057611298700487190251906531876585478391927589269508376662716188509986097672255231708528398007786463435730998966055367393276443921565334378892230954234658707722591580375774629815479478944440540372494057052472738495034622688165255608291903722836988938413543440273278890867661519550384557520969171904408697253352261267065011184584919007611096216869894199822809369558340499470650736322686469544778742645548649615023677305314547231833040631123526042355410176019218437938767396492325997783103019941726582062009452809467859191432687852607379947997636253954021729466816233442075774201751403975900271096417389057263552261764368432143268990397208842494215776028171783952885145034168073951932201520271760105668970801058086408894070612680792586285390101006942537820942474614464531997066788264387734372467760055626968875893189116686689844244125181344736515877036461187839615796051799923057229189151165963736296396227034872124506594033836588123656693950161921947325351771528447026909522592514218432444575165014000183379673049029718293439038259094914468478179139827027211719864211966230563915263964969193732434514198021423576060224648761849286751338165815831486184871653596251147620859352156849266901296596160340109873994022750560829673623269002775292787778533126345489859503539756049623685194145932348187082568074121301862933249686388970490247920218467351584391086641956062820974230886192729738522007554321851174386711355887579627548850840120819058419790319350496038278474407162760797704664968338070906236024760164204207690540772724588957863336512852072742974546082911732210578771239985633938180008921881885415552390289500855825633270839187399871141847904191039286050205520700540903661721156897432511667581553066760456063568559850274892097213815406413623533396732219360064223245713681986515921480920268536039287770024181137020687285307278570665195987558519426647349861579628200900873921807286734746072906269717416905638317500298259314266642777496397604805247882091711269205865887011569313365183016313007250163479183611052529626801616953232117374889902174126109300086496606222361410825475878769290404355053119581564490134683352770738697408859220271348727522298676429938957679470689709098401340680186147828726821539215248100773249396818727209456690843677756845930144935811154033088845992183477861505995386610699027745070467997501152223061129931488122215289526416400336349399361434830494926246036084162310198333814472739713741160187184765671890126160194443482636533299537509095401083975996071579208638527536747468359739067229240311379600670307917952687717357563188142656051844127986530355343605186469780514414161993088378070170145208778892985555706461036569947165475374623200967608766347940527210003530336199246318572991244582323979485103151577657351347923957292698297395704010330038576008578092247457572259006978553428076356074373065531348788692919320236180096837863192698857070364668702251582541786689907966456974158944212101434880448978373068537618513442645585393611177807622820183440226799350055689413912571092726605476342317105014514966106480399356725132076303168371296350627067453291366056969761119064192856768090988365666528082621137772076820642953510635332457651024951824335507569739549436709327284836802904777686961666886588197800461949956620749694015834965263565035720094400746086706033020526104193574474786029023290362114781257321606699165646463824705530608710891094198763201614786720007455997458186415857080352438861393423767412171015607160263486177100193178161548556825889749968070182376131747689037928881770499626044979498940424172127432823619864817390423478571650842632903733563154637815751124391089545583204179927613069844735034459648219639893598220115122308204771633730970720866360466044680062037898145093736696814610589294214490733444121523959853674021137704493452288785215211377835455911586712706888881940989468711138601939503087671710963604282379285358937613552787253276005845935272198653441236875264000948664188504789846136477804751321501383181076809792942019402394450615625215964658159051021292248871915639011291670240655013085551725970194718034532637151787487732754677295684608922267447660673993039101967311840693716495045482579831442269837910828468813094046680596394661864123249573796970682703514199677804091712935528694580547759681708093413816533962345225591810133859659661189043356083021862819995357394506176843759413348171823395177728260532200801322750210787521959621045942152396429599021089153619950293510246848408110545795447019138463431732693160679699768513861620926407078125611804639549552786279503049984007323383026524995536166356691269081004116312469803278244580227220240080223884323618284237303357257292534176098508262153841029180326911859392459526085251223754980991443006212086083995397470786071721877560907839396980741335575737002945501699868469418537064334459577234723157189198709577647293706975114633578320064709103568935873832348618514318343306011436735829952297460292561738553590033443043712867213551882664514435443278962419616702759511810816288145707598641718173240339694057128475672350225390728148461582717301857765893149007933254061561292740303351711115888260060719828575779632134113481163983626582952974459694700047470475408905654901073684634101497863285162059636310654776326002459988140997446511333315335617064233152143255170588314909358366312322060413242810643328620483702185741302759249351197565038290930408206971529983162035800001393278655031471561779718244959566464855870970782987341830337476252947876098354994005559114201051262729797558160705844448713142300472191451263909887174289333557103259100553258869783315925449693038299579919872305556963166986617153983317272547531704333309161742493187446274306604704590891103333093910139290875965176054848425221781512575314115661259469895330047308872693292828582243731313603140343944375185099280072647482201681918281009681810320280065348322320602753465676966979528031175156088546792873202637213759016894392142126507360462742341374885517821844682445388355831628113032177690691642298334379861215492801819826127713085844172807049252196924185370954510032149673977552430597000642685342679193520290816039162955494121359810448477864482450804914923145355812515533574874861017475022818772809603133263855532715801934064448501864401790947361375640835561733933612199904238250067586945894226058031573765248606575229099963623636161865625359535538020615648030504177254983244980767254283811329220286879318224416013485988489927926664489975093426574356556716843303776260706910136602267375020991074773421809577115449079090839259816841552252029449299271768359444512390700667213010124339717998245386646471185843119353809983574601387823857039328409647803965195476765974395626028552809540948934832615685270944228678067371297985733600171539827593536132287477564821447147609407050179330874513405240746626232050158773130727114967797438659142913226345085140209147741871078754291924039449272195914278533915268190172348360263180791436084475656095923201158064600765294969421417326330161183259391779036894704298208227949355509370794744134732091450944746812866050591051549246043562136346530852424468183794316228802332471627901492474929212843507004703726788920309361045301944463686805208147610254871531169932284693362361403645054683476492537249711809326143332960085499009189089174789222447822391005353435231855593177455234102962827372167167232666552521082126990338819321688699753589902812994528725421133247745441411081374504613154012231024720334572155889107951989207116855272983756883745518476089426321312770856398259180483084147629512121594451096661849935706324566730527614919401399248767482512939974543790745266764848931044945421392934993917538340272346288963030641358950445942202595278386381963063180098898205420816001501023285771993234244129327638548266115885667060761432322283629358578779970466054899467573372399316268242726031108681939053922970058005603127827198685207594630409870596701133970614801441690333856964202524401889712078919934031868932424723456572236257073126738349932120448111523693680490036859447700244541064139118603733652024240573392944319719012084624047937715683277463957020993406626463781531858125735527028604044450261138719025534375588046682186029476477558540442891555666089421149437716288083061790822907207113900804211417063488739477192367219033773358165885597218497539114395638773293271121436827397171995738313342743456402863963286198989981161943964671641609811478289624779553010838581070638335617709588050536263667699558781117563902894951040248573819827715932295188657277010287822777134504586354215641039894850051576919711929023693088026003674433786686170772605608936136247407283438540461608075857475996978938367526102865742388149447164081168596722729247441572732415500158225546849963844263347202207023274835146719856146355514154638405958578940897871314264830691634997708107932395905560523549163965560114192947330176683664520692473907718312867123272021376342635151989343470657490612000330946095789923454663726797890913206038941517812401982062088500670271517798995203118424979101631819771661910762155348063196265016678779796070297344167776033460868264776335576288020029961081112729841837606982126821539821758154848203311577956873716778263196820016403558971644687291280305193172172245235987006815427169063358285791116479825234737333249589161322103613479866722045764338212376848263534156004964453609524232082139041041303774696666575108091244476948269564451330740725947530363000859795674648444260485555231499231254686722188661199969287339155898903822475447573360401641487391075378264943852697285901257490196529871322268679593287543624678784817598580326429736259048459869209391882867284436236804728449953653505269698459072836738316803222068852062926339794565318728151708397955641749439628443298896820340749467537717519182422854622959453142919046306978055101206040492442785788797996830671269041083859438973228535502100882159446193053600574587378561267562837900550460179383058238625223543748501387836385957794205038832745447784960651709737611918825994649171988788186592102178035372588431799574613100352849942328979844714666748530610065401081947543243665070551803801052030216878467916579383204576032201168276967947395467914698551777328034101554089521473795775467769065067827676951427334651004424192698127325988459829270680487109206755217498179538110032100655548195375135793476598506141985737981847995071161875101174552354895055821525267070634623987092171887756904542556790573095535737692703520709824197158190293741930876770559512800388823580253299254504608637733878541835593056665024282808847857906879480401595309228395462666152507847351745072646318901842817170851114007190615267354465983677973776254019745650512124475511428088296321170567227277101228124452711617633671727042079840088914794695651675950636702845835427058758002626488003556849086050049470910845286401541135586508482365325992967733324876987028329273574992902263822328226855390600153376570753165956665127061774649231525063211266035402879571435875244555265093977815948560119871917899668138736402934506487701307313151355724130920297091582804609326828792564276240706170358230547346216729562461523540123388489937000388733738348080500353642005607555081072951541071979899252536769000365979185838719242260072448295806497673509278605083925319408141628036849426061276810508836220387831830467057901919412141107182249251002043215257547838600767178432813099030649564203065087664167854535731514228981281575169780722715576689293112482978702543809911893626388965830279802545557804137136472230470426330228204380513809727582849304352479955994971912791617016305344268662183133775570400290086302288975829346558978459065901355186225855534308338806107519661989454425818550926970161759661356605090534895317353487492481265348281442503656377836582907427898946103952355704479275435402227112027811164438526341120593687999940131108181783284423781249607680452109472100979412851349685652896230802812829064612105019892656860583689238468857477842403347773033168576552099202428617276034884467936292863902550006014166204320439087820308767911675967069862135913926466194991674854183921013639957316939961251862434288838344767894892600160244046059732315890934672855938868442911645374586244360734959895062244877802015854913688113355824963462933114427252162045093979599958986658199787869164634257109811939035354987725514467112492526024652662218489971383168285651303888981362604670936555862429020091783780185063368221526129068790645723079169800668725256693962580615915999213556122513499039753908731847762693185593163074604916891147421987718961101898701155904859162547709095715106525494280864839175619989182124531831607814839118528631380735778299125265816541907725152791416855517630011021244283907253370692009179968332840813161464672178654387063471394360475170361776369210644168895877188802528847749804129962259783586890059106504447557404749689032756014542442488351523568467770122927613063899146868048229088236692781430216317991186647784967420646296809039604499858047352099780767000697813970098851023375340828676230002948012375791097146160877995968175607760299556553563946703578814071230446860576352385072528826155799986872492123532799391993632581039116358460438587840995588880976304580384076420657355231015450065787835000531696920237483945563218829278422079178814912290244087214900388958399272597122673034621394860566295388565419520090965498572423235426757138088701967567303076162791218404266117551869666914368976476480242344005803811703413129505595370682540645293183839687874884800341034427046704508395141512914115605806703160430613445349693738519415550040347772943613400266837900935094030073176834434691533427962188933479682268018154145917560988611195936233160799683124557452907618665375647431314989039461332058536118660283978941738590438996908706297702574105697720280942055159758202214083632143425642004583973859132583144552588317185835619775410683517986495972177187877273644759494881044865254205115451648622869982587094916934823274529302849741476965424320275803359591201446925392336234155767825526267724428661025436193689920724909037207346909445586602048487206643375456881132407162746709321313467234677078182917604540731890320018515438770659072248557665804439584815245309620907576459967381927208078881836431584114503939190392413025770805007495272830565189702021742350087195898793236953212209490186091985528782974441802522804071966463942838780973298275254209033244951386255160828082158137560392001538070307934291081232571760961818385938816458741611929058928337043041167045077721464997601786012916142288881227652701626330329483882157953744904127275407398110327205481917603614262361480769436974027918400256862584417004628348670524445725146126536187012861685655107204422495140166386191513446140358655880561358039291913927007960336907864388088134591287342708192243342415253560359376373381483923419636831791661412374338236609298142660576702088753981821285770774413992436420461712195435418418578072804967755249109729551220511575699583230996618322462300955438817718145802632161536017443916832617782309533790585838467974035905417221551939948478288631647967386703841197726292089944303961796996032220165181731689556033029316540816707486912012244925811855682895907023062514167058942426565253311510232401262217307462181546953290179721477696103152838080951590745667275164240214573016694323779351703566899371721353652949763128428733614943389980197184344233292188277073429652611396698554677014581731226909089625115542738618709290768530874459233207419580200608195531216705636599864884498796093451216974944639227193074999890205660947377774510102772742934354888929397532166506084385816898421090671516495475999040769084573881262999626459317459179803325194561181606845941603214642692420465295324576186806161797918181723057304252077828657639084210210599860747067089915887115002699627253989544218301981373961809794282029722818170533224969568931239625920080492360606845763896927140161688201519818770631446807501170903021880527048821625228482028162138344366818424249842070732002164902526645720397819451373249309661713026118010417652314741759468950130689606514483831540123629834434495865468528068269050887377424979964238635667403056032183489498496734975109676809908733020411351554357967569280763531764985530904770671266711469696088706188983383178714059141600939698955944942944575064766368550094190048468511210703225183075121592937622888514092707357536448566691045331776763259170532880154531460470508701070393893856385780909522097671682951334467054152310396607932982078516132283233529746731123183497472175229185067297083364755207647498422993655689675417521566774109787771224084348651744845636336706861327683075192673034476494199690157420350133796612762938044771248975069712271271308027188760729337205891884860082270911675915605534259837122250415099211663622043592903288392788539049042572739401441772291944202459180842716227874320523929408173447597780600720604066336170183986700524368081541091609336006960293756809089582231085533861686576278540912983969309076295011043541649335210249318868854507412896379920018261937987552197328660895452829998413690451012973806037760755900753596977715056461638784262376879760469630958246644363245585533695544121036492386299051237147004147101576175352368969274603336550686143037359102661734059393026956441907461169151464369839739496075898332613051508051143612233034328042243237935231696743036005706999036529346927358859781103484646621441518716070291683697696392093334634952448352990153085978548204363892705656680489383915438376517757949283197441050072994798169416168452688127502011500498448492857252337300087374543159365706842547422820547632708479847423964058862150808395339501763332040229907530126690328718345825397223958276200322244779364526496845044607638211121314587550395210432237859556365372317538039280335519136858003968791205565571097239229207828328787621907537396687364305109201780419929256966369874397225777899816092239794755687619862397363395190273276031209856459456821994750844187966471045530814317012414228670061799036691917617541685044995754705981449847524363340773422999587423494414397998316395604471607190233795997485868165767641868268663418183691847310336681579179913823557309240935765294574671193283054475510314146344720257590522710569360270604691603114160199451275734644602796185646938647532689692375717685668566305195576235941591298485826655821804769243851056293164778183984601923247696261268955531311294665160733348364284178860956952097583535861257302316389578699537321605533512058380997527286316573573963798545724826623805904192004803180209289178139186806340765459858011700886629329599125222192262633685201278661040332860151810313629740405890609278265881754995850774303726685685168180726711797583354348147720642976135815339588280985736268930256658097998052563516735287910400189754593523728464667872636616785358395912930854733683804574557125485479507675737470331482751047346112215840531114369990953208716773676269423519143290915440512117317684321305520972623006111683633657477866496535362622691629648399322704656356006830357288119773333730287688000044246121913692678793202446970930808445381069087077396227235430769672174793186917376424835444171414210989189375082265826630020755333924032912553222956797797059109237346539055607753680961739449542330943594519857238096546568396834175757010519012193542344702252746432700108986497021310072020566968470947022678952171461406281518537837031299330244477428941471994215428174050921897124592970739049331029441277002235071007905273314645299995889690567109993127493520401657343452342084611716751855427509859597084450813964724716813192077101919511301580178955890976228072019432348234214323381678634352832262646166344082879444181103685287393111802768160248815181953520006688642622535919701845086250067268197166789371604642199137065353360266840434910772619560077698288723387484637054952071422438526565565611616119166164151113579948936188039264821117170924170701074416934120442910624560732141721298813858977563304907100475737985644347763695431219436302519359444915739425597951019548854142211170452856646353067936691221527133930054427488630297300561587507680714911949603799872771352038983038339763322791400824074512384332658603558128249952402548107378086097977317139400967004336133176033761141659040089391704263244997094437359360121973263490876040852889120354343104785895452657209513359589053161695455052557358276850508274157750390734416642367482218872308310227968598214320112821919668206886750687268597117542450518210266839311822471724892281209487442530176781973593790738099833708618893925903184128203431745123492480785299344133631687242894931036258972846757483436318337811769162021590398257192592652687427314784382216254591012014680669953261656738848767037602192979528246960193682030682045727155032017064138928918293387853591163371095923711240773124745920036032767571494870385947155897814651382621203756635508702425319460700471046877060728342678778146986073760652366855152875036414256286953033482920579586843696461496246841214314124355727546174434123800872574913257169745112172953488857738995506182851099021173492868250494003133033424226417062045629731049112367896995854326143557554420257610216598265335020555167440973799108664598925820054488409661484974986249299836532790264528206513564450203292784960351908782803639729072479911534861483184917890386116971560512210917043387958782366596372481045637592242253591492764841018674743006510746385825498848988007059215841692335094080900491807116934350239771324876568008055195340916313259828721370304572069185610909481874023131897323511525672866851997882149154153066948653155174033585530416858085107686400192739324575595310770048150213924393808346933904483213515661747478528357911259938191825036607077264967657512679158421645588701567684650186083546669660373316147742056974118218847984856040146614197946239456364046874354014023241325257427095177924078396636078198748042387867458448488587097662697149888884414341628806961598226796678616211163112511858555177474078649987569630715684704233978340937936519429561564979684417754272685304207930454274135865938755610127875890792785587171813124144254664999482874070532093766232868346706465337069646431402853890344014801214022658762066131328334174742275924367413815149023079344051101484774458705604914429920524988093507303762180450994612633564880459068977773947035561478433329575894680712477748564287242832601042634985239438912936500317336382723238531144741804916489082317942173893697364053066244882528417482327537216154570064963037957727283565767525106059051317955556327557047251070264610436387441247248376168018750362899649963111560290469079776900911013255038029196222966183653787350684802257701434611065491501691115017095506472131488420220275411931583853188554312826606512788193843494078977973425303998706679603211102270121885043088812952061003457944804065664687019044570941732818202328699235708932745103028443175465563409547849018821693866846647538020490529172411458197830575860236905243534497606585092175491501673130088572393643732570302642962802712035854862826111489615310494431671920101047316061914289563312933395396363689749829562297324905352913130372809208854225107741172370379137108332823132728274794221632443166433998127284971132060288940739997037671257124894189386687962221525908023588242971192874182907241228517184968901325983786394900972843837979526915985401353891824377780710388074280385330541974303497282051785140361730736616480149274681022773413885576874245121455118476795623196013441623216735022064352526716821849126886989742441610904311791252508047763092625767776631984374379776650866152892716978541291765836559782102882959493411128572789959490662222004180636262584404504828801576472234109015462230466729507848376654812443628904393538230918082719670429004743056765989565397411876372391676425192404844784082099480321648924094313164936951216669405364726765956130752974143585025744316885577500305958984159100842789509005449276047212812209705759857564676228068178735629192726239086035390317415624004014775159257431426756631757399495060313529963397153335500659677155741889347799178983418887311472990856669383122474018050003695079126607846727014357152834417632046808976930615395087684306001934130385212455433867051788739744612235278828369995573030569400971311404194885979355297678809879545909984731224701814284158674333955878136593437448878268712881536319642709706420661584996016418023281488603774627946037674929984016920204091092000817916768548297696824042397485161455999754919663067714472260242641664447753348496962674503743519069386387753451669051951380715962326733125571739470011373852524122211090857142244285714010924486772759050292801870086528755982465901035172172331041415360742864593966352346813427177121002339231250884450910940384213902323990618534466675330947840543641958048352042205687006696155241610431050421169599062672609400128500671266138500050215551579022589399271025945788989022942788681590190108796463274653424411863642310749563819840726127038287793897653190868119458323070632829629914673459716333386320151039884051565577429218518725150701234484173391380853277348523715944225503696459362907241953461071802228616190998460252881466950614156345658431431387395214570629997844792495262692139352894354770843406678614511677294460002396553516336762612946271759821358649758534909819856266724273579960877163344712662527841632266311236096815339376563668508918585799091858763212920699206593979473092757518167155881642965985234365423900519098538077102545776950323717057873926543681512263732013538984688547193559683021209996902813947395589907498222542338308137659423146055266559768244637338131381082245727071656077518052294643344287683466460318268514742660225663456189749910862557872854017385037603517788974730937679270347900798589312667295310445877538103645870303011058182867017885339619179364981362080186996321651442317017802862944114425703302273099995009973333398930173980887137423809005956244083128016707453492400195802488860749765783800073558246939711293289869234489523324714590053216666555023213781221812079198739191392510516729142132867144546221573868526118920995690040230780492102339111821673189427643819941040465807512158599856880441241351967481367714706913564265222994129799337143813672978303529613678071020785467448211410005600889924164971203738755528966604384647111026101296628328074572789679946021826572845522299128844914744684719835390869392787082407439880424923899923479831358822913807478476732374308923590929443442477287162270661748044052126526177030929079394842240734421924438022541708176906811091655035957826709349056496784744197079645944630565266023593847407801531980487096703853163703918631599061347963045897606846179053655219236343487095384013613545881872670747526840296137983450709152491614515652009378887997869683988184740107755679705713543758933471056106242786870215810035930555848267355334204356766527225489094247626984761490560779146466375835836423609282323105522028319578810011529080139412966732084997040772228445281460236758414267586424359729850259149170691725959082024695320321839653379763688418758674146561239943734800966672773448060782312481637477136240994706642225611706686160716307534357919223488055253634857586240163355394121189774179303166975098135795811759292041185864412778689027729578452400087984898435704816751280751696642875708251258885226253421071008737299694021634894249168775389201548241156499642540646278565474293069078973728151298835187882977666596614360334729005709478750306954729415517425215413285012786639735961885948092433407425974228401813719535012453069273617984884264432578107803602997832876823927402730293801921649096676537090299239651590526756375896597197327305741592342200070929712168270514768392735976518937715747385523620522711873100824102653745450227612919692445382394053953063439376676875257712124065770381928690740327922628265465005799984936373042064959117111487352052366662508706357723252771695386970971164349910062284290054006663482800609575270961660582366128455892658479562367755295030954118988725595889385240118498370124631520823401968405165172482203402792418100379919079086515586185766565443433788674169761800421240120683044305245731746579655692025672327008208279137977974481411844212674811187821990656866001064664042106344256382360423637791165729867710100382142571503407143953615112560097565825843276623682488995426033522700790895407400106694970625645910377958108785661145474137649503210413649673064386862762285981534322452217550207136843061062877921925778332941143041189709208635977556066615606895364899728538264713457146267928540818914182453333588356669136012129530175561355542919955194858943004219838972929979064804883683765095147623484821101220528591449783310421950036783267712739911026854612892362730398715072164339012673725763120905414287442250355173666999562903529040436613810937054273117405214225132705865752511646470243275218481381781367227619973774647023100748748323129786628764935519727664546758623894561859323915307322146068698092308538892787503560097315845191541340593866630206139560015437217294732034187757213439429784471194612801018165725048380925533671760601262911045928881256975659229584772194902854215062072153936170523782456017440454900782950285585446084833855009742002442418572021163656415820910495059043062630451684360613030641648569332239835749137072062553626001802854843878452175499547322266190292099299124853586470187351866823021024939089058180737524642718937868590471089354008887636274594063748557726412748147964225278275335865750637945047400712724162835505095948314446586875239886581439230303794169011117265324677834709662105879850818440936092258795956474672305822477636222212739821897154629071252085954048112951373273519045900938074693708022592245178654360466101354952055583039896848697098617182814357497254646278904244324384768956337283927572697275245342141096862150271095886894034495775142786578946610837673087077331442304826143304212431642160771518906731756041516656105694249399962137584915196450387490534200372396096320903715396771619024891835113784880448002935917415476168013891835551393153011550474336271914754168272301812193461008245386623516545888759497832939776215744608624819751983916439865130649099572976934927037379201879008038499668117037239076285517240691574427913140372134106169429068024426029273841287411269221380679564682439378844568104476896222847588226474070183848144100865157828203274217401168574009450462445938210312024200727586487996793123970533467491425854374814933535301488388690826028323601852507820519336184990669614091595307086537507223558183464377213882952683837707961912588953530554165472451786969343854665307233840969196239839128944610459199704695045086915558119575623563260537854412734055176917013702548706358897840239259455543352609051528212642716999406763454769011710123237920055353648694430422040874402566858711302340350308617768106006451202256314791275395898025736204604764799242656909065058650131549212312780478436044640684952540931871503491716411323079455745584349011234255582601048503582755304236873550622318163756521701138401360817524991920855378196801802431713860551985476965736073813955737085587207748112034629527338044814394438796891919235144496187182089786753038653858803621532636303613668347405479854084895813077746095704720270827200068593479147674869634608258212020146496121858109060281351091175267957247270352870158193055614681235448865016597061233523238187226187305608464814883782686600782127876860528825366649944979147095026392582465619370976849053175553399316059840499546674141938495178908867316613696170940039945583740807559158942535216250454473363806597082449105640155201326703251546381046634456589311840889118303355371225300823616589269992349557360285081641030780122341959683162741346902529726255664083517401258110638858572780153749994773637040884137239893890337558592560197398822538761805478349375705011740361046333295476609452447981087007215272362667653070211757895139469329790098826302181074843579713485743021059498334586919594894769110776503890295862212198706262010788451212786047205736872111386118332309974637577945040871376496278123046752673612055198165131296894961791679017653305388743828455756277723040131098511920371169675500463088783610358384075159184891969816611783048562118142396798763641320879038916062814280567910801357556292127374003058830562882932502319534807578426164872567837135184051315219452068968346877820816399675886915447550739535682783826588456316368648738083114778667977739643684232347753012776840400259825837194725645126134698557486831699867395686558260958178210978276913131634149802162207327674289714966384529084531141861683296815540433070855937892711200246522644567003352671282349691264415323005893183193120380843743831700427445147571969644809641746869498956006509441547026593084775612203925072102284828503460924455602568622187492412782341036710462945999216991647043420526195879128265448970286719711070554740855943121970466547433956592640164521804072633524528633645471597916416104357310069270051523686774932221787982959834662783326195265072454373070380600431219925067785827949455033262897639350958295537682234440689814268282498292914152499949510694107344690238367535395342619446961862869373023337898513378476320080083527314154027907345636199018596589129472094396412688592609115752182815251627166898198634466299042088059605525268532486175917780953293215371066181598139185967942708809346900375444516005765915740979552162082674270782334638201522595784384853139243198607236451370794724028659807045343047078697857447673629634158223072564054635197090110405022245962395879112364940376039308406785476107191381131482368355785102251989437454160244221613121277102693656790734155364919027578112813509048310671466437918226009923595929791052156029232039109991683670675932701280027585799992218488131800820434021553653731797767227569469603578151747971977479640122485018542496425071064730938986203031031859315863750247037624931847920168257065197125850877824305487281224269167836920050883217168793459939801961273370574767816658040660990144676137864948980860305422410252667948514905213733407105727091728884008158553089834605098653472717737339168018948711584676504196309793667339165581619011968366578544094972796279653147531878919106795373379255349295024555145065228028874431836220538947993376567014775699753959446689884428193508115542373265110057856117724743942839849085218642558222502301948313543128308818780381307560373220334400359031876619401890984820035152507375833968744047767087934585200474402742023850714902070399290250028922370112579839410943026493911084716371504223410137094799735313674455744721810029567091736253697893724820244233749232926539142922005209504215174408529997628046715742143227202335883118308900530601564597310674285204164681656753449854185984551839492977315125720923863435063029074508680832368010578667240861575089187836680728774060016614701062405753430994886868255865294322165626093923049349028843776770101758431863667108497753167374500528658070960180588774717353708422088058502964515981964632351121389941526112140214825044968201227429464108468956772092301902798018552571088349271199693654926347146662224099411672697875101302143838725012061101159438572285290638092733526614077326658755174788643262364088570844339058459617379834464529213972998199523041010864431262604285237033279155646037774329346506378983897010927125489662142244772875247967000028708448133693421568696739695186801659354518565891065165191954424462313740360406621787915771539080997435419581793792128155593700263823530123504549655015825541990804895096834101930742948644365561718727128472334158391308366453021058016944148269672466528962072400818821900117673875898351923595746618474284412208807875078455423202241791725109499075083013771002146861957627114984590083887244660150975470186538747834425001432224979956902721414832217025376713332307533439895102697551903571934944266106223133931277407403229828867358935635334080249244783528515637481064004371438490491926887773607028744196473894931856116450638623900152062576306161519300745571223659687930701626112229265816621990044772516420201614703425372610775845220548411100032985737158540142107189538401952234090528005920871646327738979574761422871773779795370804614269436265164847023924223356133863318383673283580325772389702484875491452748903326314708455861642011889702673059973688733871330400302129772800548122935913003639812419662018115213386893436294585988128276845625676454124740349819298908420187585382081573951538232598814475472030255067504108278942391568931258015172047421397218780393973060481970701110372822478985551701241108557320144247892574196476668302727106356651083290528445504845705113720840516985766278581289309364788654721637050304673464077855742990998602486221892168243728432874206241368573724147458817501232098485966758429006280543936167097326469074759457540087957984058753842347860521949459779398987777591027113057308581287552438006000413975954195267094532286239751727470069141536409498065129547605033974488508285482841687581233440481239878088946885877196541685297704982866829080348653048191277030540867147054993232147579535326123668001062458803478408514383339647025960964486774914364214775330854780973654670740649160813791798501457846010092342620152000086310816471986579164437903384486165747292280556969623596893052921026735697498253921585103577975020142558494104239541917393295304076432693882626830428008896848242632292508074259655122093816055757539080993116986479789388082689138212697600854340590739897751194005980686809277869817982655081447543012860872175022326230699102983822830182591394693631626183774670521338588360675546226503560146375418023897732471409875967468696184369798930304026284622121828646082298955543334176927277730829865722573410895384250853002384774759401728891523428410502246568387736551374626742259126598114663382450114965682498337853642341116062684950728341287595537820988511946007165982254868656459253390523756040049750089703920439537646236548159371540781964596958996982519568501213857315693084798099930577041651361855766991224228425714266048293373940100548926439692527132210581331623523872514790751164591138913072059177310083737744324441594542903874740384533256833103460030003852323498921426579537592632694967450300515586037528804008166550970132835828819761798687370885519312481258804075211420222041460077707548028559228764418401570872045837193164552999224792084294798105833613330214387329194689113771596367787686170660228995941272071303599111385088717887741823894928499861458294308497964176365476547247278514875917871677734610495072872059221141277514722083666647613858111129311616028830278662846779236645973225125939386433664238868529461914444890097059595038107420462513874927316815409486344817489029823874954458432255129493444997142739502192595797004120919437656363620347853880226093660019496276243739840416182630053076624483670966456954379004715787701609223206659494419553143006750008024393865345045202736351785520296061161338183101367217794758894315381081602184521589426706703748145020327446814211939620611533577608414744729952527259318476174452716405363108873961206969609530080340412753187326555369807849337434889628804928140366305820782025502803915467586357025916916718059297537958687224254227961364003130095636609168761099727236415780079743001932830272674702339147799780197699001883606358486934432986940101924664394119142820775059162350030267614990102419553819521816275886168192541765112665738908026475312137033956700911310404849335517632495290599197960445598355262886484283211619953521001471961919399999016995411796296959353408070714261029011544819948253443568294506969462000498232327145139131861975837612147272827153418519056879779170500392983743581470654605681527140083553647520453963411806571305668808057908303512546787418628559415002808678592748666193613074048581545307562392262514623682638820130408616345110806001122674953320312295606844410907448668450021308981439321579357674103567706242430693729287810833944278414779532538912046081160096044960224561872321945397906396874622506050567790108564298803706123950779728317011356140463465208865429460385548235873947560720417436007529218794193171465928950426431737598218395065506728076929362105495413405961401598753935923289339507286688589740381524703343428310193303427325789203650873297036842259446404546306399105095058981968329958632601913818457255748949927006613176688596278931932838779122723999967659130511433005229026705356177086624851604279998112869616211815022649739360690602271736785150878640397526910650016420264227056071649054969613176052052200056498422219835282828809422137305785831261387274937721735772714676271418566570782160430335561388994313142101908487620570554613409795281984975253093881728004837982259115635183259590478457024287530230898022962269352507373261628610185365228422687021849768064231390962600469178637093597480755942899494851529471810536879853362062696023464907633484258917705219126302467581973215346066464528620125679873432947380855928798779052555449706941664417682269265577328183239353063397732885018484973559758225776788570077276114010119268119777251100893373892881624242460686258903184119631123581303972227764904380075348330995120252556776813884994765878283467906723112397771799676547603475201111801416099799673976460225642285320083379955265428330388775248266245029468867830827214553229245912196837412024151404662907553305894609190120911538425638234103955379210675826766551012301639109751851357505313727467712255449566689429117447677615431977492984061671096379340929759543810590147024981200389376385388797351282517931468254410178891103621490178028177139437577648204968256475057220230384071182203790961100861321870399255396431174544402836163489042568829477669768469970802083639093263318977239511182037368451884310768130661697273284777031060582021046287082164884002576789642176001801064692088860966674409030006120721680833076619633395570014073179666511619160088913591198710002037115432351192985544772672461846108942272522432264198203264482832158857172023249638928398266306450553429244283533211648450942456916480500611575353317684902813737666691211622914729693049271270670629621043296063521449490003197556399445207300484187322782668992019063892324767185693392059930102712062422556826515350337637886435811699485869567578469961841597600632714905881998379208126324788116317981689569180439285846330052144172206846237205449907291608938836459099693924527086000592356422128305546872611970576803912537198722679266927072219039156117593627890141186890008532904218995792991036727830226672182518241585069025360415062730701327461541061492504016799017334212841202873085170965449342178295744454047584217092658388356533659721825288675890430777022110634732609746514422543562896644032383130682858434918589062874070213344591391926480974084520467442531942496660149283028724752421641877970209631649613034354518903675781394595560378156226564589385087224802074048540312256650373979908262040065724097711852610107855127655722812874414639184502067133026097011830875162992584585247996137872493444734057846546745758585599948590962278935391766370108614652744273859296069124551260197326811136419775251823368054448441528994081997702723668992567005740323803766000586753724061550512051477721597423943740201866731788767444155611776421076032607416463981586606726061902006962121230245216995482447169823443269409295442171854169797808977332045104738097448485619848456610460921581269030538492858606904766934964383349477398289460682021221067916543258260610642886585979549031934407305953185956306099536524319763368584383965546683949807866936669435366067946060971947184188286406608428895337088411637618349268963863755436592167848575984711970581055511970421854475538151463855445155337708590991571124007778792457696763329519853205956555705969452838368318412152717059002037862525969707407126093193870732060091084580684727997533975305817487595061901373425141686511300224555194671977399299571150864976676868585056789119419018211675500249188015517717861875796608513721800998592721984482076377173017542000712594391323370280616994009457819686310249286666110603241162714883189784383845404361025142341515178522044566546701200123576405973994158687191922140878134491141624438507547501502063470708973121249381037214546433498757968817529606973054454161852217400685605806384684015656133101028972437633997610277029217306754188327187342714090186725994085508348477450404215533290304353938416818406510514625305509881183473646848213566510645048896721268472548017200583879504426029412374259558404525241158494410478951741942407347003387193940522260300853860474492379327889623554956886961253706710916823954970725824364612811136620205867692064847259184006970748788699623490940068346280185801987228171746659477996254815407467562184969063320542856775711108294663728896532717757054146878352229401462300963331872485905126363664966781091135227358659446290562893206744464847421826293241290279946698304795706002653863226926220034773569376200753883773053717599900092039595881083235238613434728773371204702039341897859706441197448671305047837954754421263939185879849407904020102643871026968243539879759809999455546611687917592312319121587683249107856802072717841538778969839898154015976212904214092947173831130841763680339196962240801080417876553541005985932296738889765274136507285883436071281495957591994080701184417733729795895608318603981288211316945469686390957559730278426793712224059319233536657912922188444394702751811931096866308444349651892161859391793947357672508788021274485063105952497682941097043053687197164577576385226064045800509779398011167436700029079855363094480852812348695318798978016273309509497666208202352628810957868456617251152563176872540909552209000792858181258559555913208408113546759194457854893552035587920347710439451393950540456920918035901646506062179980436145421796535663112058415804832633873435495607808630860084516803579400386339822614572354218615782390628337216029632172527474006331704049493791487058906592275625331849420846745896924095992069874295406249047332770746597894211139113907042243575401486956635004401554365934619801983515309779536866901326362882828198105967848524081613272284176076056490679785501959094994151097049295473424597313503181799425601933197782127137503684864620225316163362899010286821411532663513521013477988090518113797228856054219458961376720107717897128026966531573886272475838824278150272946392410594588685570507318426545710928050012013655474404884746480179241808035943076879031771039794652568232581830131585812347350400798628615194375764404401144682374857955096985531655409103642989217386830258245377774126220298306894940595839157702296665368003072436293584155277817969421247916856505875392812519424284117965775864732539266175594674043620527004934685764437291526010949474884545714325239857223871760538502162849380001301486789756860159830184350886071918106634137750774019181919437649989358309094360470526011664795434157506277815570270085585625727333159444265877576187739055398707739675611194049994664821886211860465364034471412881253004503608775818690892034119216339081100417984455089904810966055590254006553314846394633968597471293710950788350799844654025126160980274057276116452578099261425864195731937669145651497363074376603151294333920677512262281804800332989764397994328940876863938917640099275435985567384337568124502563130709943815640322515184135228552529970062514449789922628830542763801346190126987094726162669480342539205351142463232296535380153486733648090376807983543593860673515139313731672083014608670811014121447846482908975734489043094329678415618994878651981260056018297415158682381040740293545584998461160770878932997817043797638768599752826730969937866774887807695538125271880448262598949710495683606782605371547145009686558951435306585486430171034102987744920862862228879263480395897054911375105594213524751774284259881950323432714899650268520706082917920118408710233562568118536242142136382745741148629737436845589956355084459717695274175587022918040473136941952369605181368781809623334183059983867435507233737493511120657517116025487324916227125583109273116727896157735903076979794025969626257025272992601495313334890106774888063086626705777522501616072283397343199130798578218264529545012297276549320761698173072925711941288327526907032602998581766580035805467263711341231614263011066374558376648969173324932265239043330427975937406553819896779180561062304470727981619911700710522685349139350794595938901652829052650206960879883569954673459885515678750105543933115546105757537703436185097606934731715596061337860014181595267264572466062832801018243065612960866497993792178109756278415070166927959468375359588576019230297596250224686960438398629511774740115589214831689892514702713394019950560873766570769425750008944260953861551937081144951940371686628732335730604461069121717242271787055374868051721919581404551077655538423324732739690996081805712111771143167873598536966073068630298859592171310885318136989372497258178019910317806424227527747790184562015883056900020520445719185353519114026030798012350579032191073512510260751391701879028396971560834324257103048662369693004354319445096425695511917452102868477933227623702267285865131467041656666893107134672384391323342938614464844234364406423119317431957614790494889861725777302046222763678700872326077916011219447598665278510893269973437035964355132069255636759036415342801380555755183994040007421224103671947428421774772307907968092928372368552142802123768368772002368805008738412708967525284688909776185602463403543729817138311924629720153341171109706343906285773948814939933541388273934492930903598749566625808190068007956924284390983731317722790740559680444634128273554951262969513963173889694851632930078661769173992099916915508853977194886862065624235101968597763188012457066262226147403002324879041250419781366405205319698279048533642973728097009377000582637974970750104382632587516528451994604273870641927739800223517492019450348595363767051195884593164232196382516991333830393366813873167642514224004670145443328980858289046529492462550509343835007973076958482237864975964486520872696093015901918526461642978392295429409419545348791006144346626128569660701112242345173066165953191578066879399932054166669550476550599308164676763182399999809707298750755077281648242551610988478665540124758698128556353546424991564390888298261765142616714140359706238617677480899720540261300454535957023657097674266234722573171857039775802987593019165992693693792958027933328433913801127642970392070354844148404195942427428029449224742711382160822282690443524371751196455127133403576974922999938778704193584941774444211111764496895050339928740825096977257170244702659031057204714809815733776779568553420130795043758824692147647344553875485826191955108580219749350095872662151551529628873632968715777457545609334061031308314243044230766554378801633384534352941668392697917955318881021481808126170732752104528763447805820361698567993011962912459779681108202375756649313882971461915555402163531994318996022023775980023259438884958691090186314532730121945818715471531217805618018048992325990733155396588386558514103971098076085482936680128470646805956636480426856816059921249184092655061545472473474794892807952847460235139657305416036801708312778037184048107472925169870759964641372234825586746649440717834760018990656441706585834768585940862123856289343356344691225133962648669506429002077945902558452134799937926117686183379248360984245598591234463220111568289120982039311893462304046566976520135896524308140591901896427443942705434870136190881716347245482835550312407044071355428446678867554738861561071993231540850678780607562525414224350501932025251164516745680615410910688544647834169363773393313780066900730618826386444637178896526482258599719585957146047927605959606949697803161735162176350435726000142018962109766758904943426786567435717409570547197892316320104050464986060629732077733925728857394028421657258893310907874923543625476812006185726945459289583042192584008456162432896034219953525788468364330190266457763420390529432468082611396604117903861294601695622204420151073462530122958923818985308325466954567181472088864033411130760718292831542012468263623458828546414579842814199341132548357135828865356639648145396864849698558687126486877639468491816173396471851108848438997785626387900798634481983806996554428343602961096100682256617824605438240058585711304747966947920249720745872856013539296299715793240891661060906920440274164510504292010309590933875246346856102932748646066404991020524591723423471487392441130023534510341004102067640081701136638685315537883739088001750878003173048958320588570902426211383315433938639519453340692468628657752600872874537226383221766811135671011881861894030603554283928998617156269022912361058153751259934863908487990463000621993306710660311952254662545764326018625790438245245745057352085241582816213315683605043394797594277953391647165195249370058462412062738613405640804405409599910878161109060963177888286767786952504824661622656897315684661588643976904993422140827926998636245316980590657360222266025308250914125831712798909152815303512411437863902982771745407167757992757948386124080353370987490933566944431739377952157540389108283978833551988720612077776696378036306107389621906824730308838045576515353427571270037278432245671664100578498214883425681681407470878108755416681659903750239072357172407167472998668563582786734040216297214327245736773554687447880814324963387039559874819742487857173891145237083848253931951487657603924277462638904730908508042677835328268963545691350248315778839748562083014161795929232977283428370211137430142959151142500679086128455985354914267151790537161878713712670764075393093528330490761428344636163411156936795236991171566940772836260665068651595223921580518994655546901064492920604329236050946957680041562648703591976008415993908028299944774735039483515760791393351949818333433916417547662469818766072632560424511399317765211158243024251307870963382555728590247055714391972123309167550575405827703039213890815543205892540881763398845049715191578698188452836171418577041816382077787974186073602883798341656201437298082048549104745415727310385504323963751609964261613020782364843278231783509171862587024145426578220470026524374669139506437405221507719628154278576097835713371477159203995602912375389983386467430423068961973181900090822194291385756710435154877130711574096617996768586287461681698884245146710138210480170983705012790484033668012300062619891030393293127130851516092748981768941632047544338106166771607552784903052319763762262987401257740159533071408122695637840593969142370801668118856562048567913840157727347095255036318953669087356284523797702545933787162790125300034555817286498513598369105346446491852714486271326191174094123217185796713940790056079880010565392985700721412294867404541814872177479504841976653081350290658971917253133442948377980485332833805284306662200198860722003924934586973037845077862786773429300119270713860181392451259986627156440956358634811500121803873006544306200255170290152811442392169210995975849903094508844907145960025473776743860961794269439677944568786830758376556620459907408641515997846264592415417607238983492946744226005000016904437162084654115379676082162130011581004834181767357473367411790647316960648755864274355278417147827106821916674889816562763954627162748897347577992141874606817248915779558066966772429841615283441942615851294409829694820558456927683100242381931684355198979649299784576265080118151704435726021956167539941428830564851418102150982906539480207798198655947573010346903657143478561079728506960553884287221589092829922536062584447711787621763428837480891882873569087076074575766386663954389239702015476242726594129794998505651441423479454560690180675527355384221255608518583344175457764472824998978998622629933965379214140136800268426278370441849738992295330309844453036346424873024787639435837808682763305411419939054292781185297337311603725118449646166033515707771604110964889449339879618906108538049060350796894078884204872451143780519528756015095433972537654569942277157740889638051117907481328579629182855948429031268803257449077457863163037306585180600511170743116769840556696891858331303673645608899996059192473613165672692428791062445037877095847045108422154355078754646623957232169272285332307745812911018509112150914369436138022009081315300031024363669010883851300260906743812066375283810099591887719519312054514326077637335866850550558452514327737084216785708960717262075270011926666325059894183571212518478878770888625919052493323122253605330507177190411183985097115631617320610946825335058547113227449880175509120365514661047291328042554872042371852778824548933865504234871137758676484869016998310591422351811383150569452457794259145991661182144270290378829685860538091770769113403595297220102529790492650991595900157642491792116630733301435321368087167040391944596419435692939016527708819864955466242512606698195982438358015786119003293958127550173882449816515982825045139505675336511080822872449195082688636501705835617611257576481352336429581636803975749235566521383091027765025954858398651538609568676291891199341708903191386554067733533403376493468974294822648886302699117072885515971732326604695009732209058157386505941961224630628129806721545939126743488671413737923355074845888709381571359382880249038224336066090957082882767222823335834113680599394265876601638755008273995092549340261353911704417145980927750374574489098624287780202693600849083041390937407832894462670609597305199236868121889357639675958678245653244570613372968744214969615293300587115062568353145163320491333774318373111413053800671910339544893199150256578706664748694375757753277055780538671863600709215197499512390871696883016489519107254732882654187023708906564310247094844788643582621582243085963197398892596681282481820517798145386802702613607056232258154663638418414003270805462171677254404162409363654126037022342124497616444531507550012358051948275763153189660898027991764915007149066118320534557893089439834435651201037414105912994047618128021122406998704033132489416215215324370470222626254843158557237178822034463483024172471840794480788905698621269843351397305021295074111836714014596525649229829365363877569747641688675308082344701090803787049943697986751538163121733725274640630660398727901846419815033545282322962710234644729330480616584975634884121430308634703075222475519441282562755665911690226214343253485701024145538469542131723065661171217429416370971214335381364861784926808835005992975768555693265455208192250108093711923655416969008632487124811612816909159513657709136431602965829460343055968539639967231454758830377632666018648582069583872762497002029376080785426645065217508958030748365792050846918564882528072008124181100243398575039907982527811406900234137682335781276650223879773748962944071555914228694556368257297615275000512962042773261766347656815977028359389599856638286941219170878459303629086240190748110059485733055355565216195981822003887620969052114783347617498698874704073319185248592544354465471695609044777362684887435569223038829426896806373377472241688621838122422210397250522281288066324058984185852210792451863598611635954827839313309532484573692824637193434276751898151381586410916466029549255887662350020441238613576378636041811930885547077297999375082846431960352352520923276113738044345039084682485228481384736310805815766644824059653450610107718195541500971009819201221636332927104462273068701482368648415706174799018693439839460131725035696978008923347350705482991501082338792526290516703858530841891989206245723957898362368957015621430656072897533033208460211113712435004318383750274338082044690569255941094121593626816096917057266628727725472853994806619957719389462585844096597078840948046002340088188424629788796173500696086714985062405827431075818431037350210944283314635301851373110817140093478042973457344156553416948819934878839314298079530257196594219527032021301488805197762223866889780926465994000748425134664524100282826424084470384111951578048638382385714532143410306886039382899430890333179919960061174148770924266179291990819342039229095020711165227666469458448144324348837739642209411812418088386722627757572604114081960592324484447038945979579532366633752134301678265390348909466514607704587450553826908440999055233929969003894880981929527465617201331342320493946047851529655752965914383800951220692267488888079342684307519924640470285180003611410328432990199441470525403892943842776423412325226396744564555437839145892473884838614697715289145026414994157216107373577950125991881374427465027198077637503941585058966836464144401373833585403075427269413151697502603471595323943361884365704754541549972744026183724057964438217550429083791795845300845552472813858981971327461448715065815349956939058844247251663015374539047347588336059290783671430557348782861923479077330451540642461345729859820013920695015796244630652644127554964073435088446502812048606104068522704591291542701685821504229197043450400169767882774084347874217415833072309965581508070725599467056058778608845339962569059006209303613462120101163120030498265247577475121733211001814719444527249435880003411387476703981890834329666763271908407531670693115413426975786021143115941283801796979368883375071658332834894224550942849936036467486871416277474062289904258989025680531474078851670682067987564700609604038590424618199226529567615748694379874670229543725872904629129798639710639942833982668869970861113073549224027475231618204928486357267781924739686156855115959024930028850113911273134086850526226750922935947893379662935597380403828655132881869249676259689359617888544352981048621638502393848318082011680122776129642627456078870930709160743747310750388690038646088590901735739579012806568251133640786487294541104427929527006632507626099383480280826914182872131741352519194749053865191628054711360888745014631871520687743535342368599983527021200798299691196403432241923347408955385135769955879462874149529936318956484214883344399222941754979075511121802291412916111600227423523844038297773043710642542738480457293130629803704288964056012009844324774938275199895867259775701539494056765569601457557445130884012542297931966881404119502868223697253283061748408725973165952676782543166458884512183159192632514731896091977150768355921043195068415936557759692991256741564118867566372845685795670847033686864652147320341227644064235581058453439305902145472828452851216891946022435833353258803404892164573456710561393383672900909565051700785694439760677943650268924412420939490518169690203525901555857502482111436883775215745714958854010599398266330767759603179592001757778171855098346917671978182107465095432906665888224492068207829453632772116323201144535459114716171000289469587025236229466731203868693793232359093314634602316323544843847207943352122631667901228377151667752047679630052307947439403316969755632426962144325471862149233524840831976811608448870968146559242202084541715479751245772621421001007659615617792356033174136849322056576505342112711812381526773533064886220145539184332769821237765118368695832146248024900887042756586776442246789941679875223456650340519148469370242217700010403256580190267767388368180422242176706330001561273187255871677312254847141029600639324796619664774168850984644348004267163069384819981914222956933512605917620099795509859978407752539931316597550809590753939010555030636318169189025290520115240407261617565663697051260743030925494548093049281544273836771086001102214340652451132914864438250378228948234658866259150391398784963398928542810519242070492993698029148704237039325915491735389791876548886393144006431701396997951609602944017822577227574025048268375097050887230899523817831675761643124387276907053180382594938818272350417768659470876581600232567221275366040533221422579421600368133031167774746430099586872840550872959193028413701855810626507111155992886652091020820316253723762341706799431365962550282016157420356636188797250248032965931510036414887104350167898274191636054503475690716103975383073746229826808302874740500867010637740337770815091049091324051093456351519511619932265024980232769134229486628414707994146427102621042764343729733248775395391817740037066760197581373876177883145829096849449903264012356968373833748597138738065882712107942383214854179666399096908951339167207405418953223421193809802393096776984620765288193178056564146688259972103980461907132767963500948031333335421551769405857498559830617471809727817033730162015838380102127248308185293857177632607318805842801373143715907595596982012736326936747020728166011268080711454177072081546977194219407375894843520088119123569107985664223011458063834697325320887962921856009351204622600627430132008993380469819053296564625732224690337669810146872847490130353272692765243473591349127054069927739377853995354439479403065236355166357444120192100319496157891238581476741856252723787033540460959607446247617648503016723863855190529396390270131019701455766591777910364243154591198241799819103473318389711904554456014616897478220227183526194016910707657297897291387434276816870550108352101127789015903852157613594856698252745963794161764182046659417001680574992778887391363131737054031234399634249839393669031628410648737134656071694724739316142183954482219168831248385122420898159936577941590373397187008882281292641145105272244089414648834401165348878395748315819138283311784847986395506113382842422196511542087845417395426425630587826830557640222841334551226776892027543063162663810597327513434951378421438413256448650710245063554321245680748537395668360445769705124134269047769765711188570137275639461173394808023609633269144651830638183263981515319597845203377959813063335772218795755658320787453978305499292232776274442294630501957913534996834566334769289536015193225548716685815715983536165139949866165836187689275570892146243769772465715800434967625976786166635568148640111950333516929044528428965614860360994684239395518336518773698456172100261121481362170797611340311936151081723076549049943263589535558984271494963371373001087978356747802894560810157480823562886302328874260896013983952873433324772627636090215697280855905869613282156852138054162839942422307789873432902381065638801024276871019569125238453618359565463415576181346515521059412704107411271864352882721966841932357598715080534551129567248948331912883573126410622961997637395892409641768475030118594072572259553556153528636559933827427481257254314984833126617134447883442096461512325591378662373579552224914948111900902119538208404132082586542364255749205745718297458018774508811289765129442085267542306792323309263756887546094928751570371097362941579333639036937327331966578476701035590750644224120572913079265805202461146415913557504945519967339507866184006226311208561635296013007346148749152275763356079403068709515601407771255233616780233860609978452777082717501354353526779274445743732554198930955530420354029955336423005072318292773100659115013252256289748125544246243431579822011267672389282230167295239918359257518962715158594756659338201909915414104199740241287965386804147843203782301455752515125591132499242428042462185144603245428377758024702731180685533039616418633228424153826096094960925258281659887567126874709949458539795742528847629391353443084143981272615164346960510726617677593792727110505959798919746995387610309131670614724668931563267803292824921337634580981418401048502094147399108368026997180108063563699376767671070614673381973725116056699173291204603119079878303269447509364329271656640600138565887545087195417328289527710895798083764644097171992898142371962533200520317868314127307613349699195391629417231548562074610155966404915430473958657334027839076114521947894290632122048297038305446082927362827168876000781697209700693432864554159505127868064189268375475629909092702650628448099922696647742196067111334389795002264089736608944639875626162209578028322104892990045634858019145344780707388228196202571965508519505824994436437896309266851308805868258937410224383962073435984406345404889969729024325466138090949923008707762617475830071914998653758362888869696578569651330877024632010347011109596617508108579661165309198631830549048825231446794340336741148567803251056625888820998408250888430041908543657177420537452588510659337292838055688265331168656904463948536546477381647042287432175190445105482354523996228717374167299569067922604946776408743287511548287615021799711780564908417315681306596583788538857097446139907124808604511366855446335230830808423189289142051343977558097696442469829049132151009988435718502428447186513613400370802449424210974178464562947337671143397941902268111630392556412074794632050896134328067566506640211076011595353351575571833898433836629771651481332305968143332177223372178659308396486517720505535294491050224525498200034492758364415959217012649728294149574412909456275260048289195463349106853064847382073394827679925235909100032632718252594365862413996852972433635755687327027060895655308603861569495144790356213263245626273710808707146150879398199788701729751514888758099658943527532527720157962626960463316148250629121305346228173950172672099946988881787418444268317691150264797845592631700000962761902951240093327970988464022079318191245053128605908568210702205406420210268429311545150925004174362465301140549538878477809172795724353328472386917473069597791136147521047397792008735180288805669564576521168804178469344059069845501281315110666682952154960639792978320028413725032695338790993806746808059510530225637294266722925137794332274118265715487508160638591633478485372142740691584931105438425405600491297790837596172319299822275491750373692743735966813319941052574498634351963701545620970768782975198147735472697761950163124286185390454969740212822437659138736565099228397461075903729472603960240028889973911381647330064430951846073445104947075489447381585443072471141584035036596967260952632441707009597876607123506632991148081534799721317914180510070744460394617240200088158873494080100108358207436482349897981663763396803647452616485625185232631662069608902221069342010802170247278000273723599434220238756646327557703975693360497750462421467098919697901129104709804388890299273384500694078324079793339618266261812386677913223857416290819576984869253295985842109574425745255290579252394832624392999471774776933865794165901142260432834236285603717060320861724909306458370868232487981000093521668712418481920338292191727431507702832528617257669241736184714866037102173843576818147576523827396945813038827754574798129665787841754593656458851051731500410746228490792409905763017336346204293443370042994632530248956377151051041386495814522844495578580927883653316641186283161056165185329144677639498690085224848987081469288697777679923631720538929606955303867649078160281184554800664038667908284200227928566002231624924736797372982986774899436503233171373294725747127894368592520523227012247801983748694246796683789230020829260710602573432717576165865298140735534721283028131370800990382246423611096683093022664765022830264174731856765094004965279260829739739981783409002920132285858862063457133037790082300337964737337856415431912920761765874135412359509994151715159491882824802174659964744248382082931513638264490671796553351713885239719717891384469123172946765329394320845700035366993204306789587597184438502971045573844563849073306907104665018352926248157821643464071546525914446673366974856844225500525955556388949080165289237200721117064730708926221665882096376493935321196510849083209856414391796713819259506056421374237838303378248951060913851172544371960851819837074727361915476723360193231939825756887038984887004586320848016412937773314347695504541971255806003744131616671115457162253250988051039706232647926540375709425573386379664516445344787855565397955098182208242418995501039172191940318394410241512651256089738282890483276829343378163245832102390282437577938152069898869480634853541198961815764908993102797145025742189132444280928367293718638702789672281782111381107896974986589647441844877478282432072451340495654385826722237757013883958643755613624750598588297031495029460401828433050034880849017866630211559702384318486200803777693995658302546414833525496752546965612937671792988258073453483687657356576673854210464940193147159355510284951813988399565894194684531188740449813548002754714664137378492758005722082023244874554074298355705064882214526175781286509960615548614925394070486048843725044188464127140412832013467450464989413480212051357603659098137078166571652036970279592935779166474287845859563282404166798041762395828906715364679704912928718592597776625914686064567271987071794696272920091141312829905094091336172862583286463082346406527983562771757985135197186022155633700385854119464308594294586568162895078353661715719151401047405888748594913274365059863600790473156832003694202042744506522959095472033970908869085164953922267159331753002270328052966624040686289716348290239690764025778565090732386489231221385817304290459661197005688270957916453377886127121889440209646692081526305848674732889176128231519800693676418106180707151091841452310958014337217608957564041872020567295828007232618107650320034883185763867653546910559440037629409996274384768474327179923848983561065986476139268607747105957091791798346472593717548650111538335275188551406201585709624062192958315725683901498479815224906612671417494023250136520819110593312652580269082330185780325522862923057359809012583528071056960889511369829745648590924032616835607834049288678290727249860150694504760506487808926005798002651699099070331222408061233405367098743051514270776982961069141815206068881908846654293660100684160663342323344301812543685724437161124672388887008856432824563561997347991587400683986689849217806781042804879537627251629274455084688018683094847169668735026206235445994073068411581703573442312777117275921065796458811118743610611611129820930619076917932072247630160158646873111355453630984666044289640521659647975016599073376242896158834151681201790823285618433806783280299727253114333812126089909274972612427767731696267454852547844032669133125421814715541571809150874851330981826482088755004808246421930516515253955594916376382863193902064608302544957109758414812276513625466402616388692361350186627228899505163761705964957621694937739406578048362979610374512865119282077747756570020621670900173863316144145654194270507747745954051386220495555409693430530456692184416518894028324221793387387172126180608744678888944363142359788495622796952748315479912543983509544834220201773390631969609349317954688495340581511146828834928132152571560248004214511476679730447107738412981560539458431605450511612325466339975010478597523374200376246586081913207612156001174353871469963504031845102205566559530058225006251347205065875840416094242847602233190622328399571475288185622347603961732223757537947197900913694923835980683537438225078352476006881281730776168351235100134296893012949280011357526556499424566507670423573172873702818826074645712207327265307998214838613570734752354729226841448189699973187796388822317211442758647162417839259381608476377680236302712279450733707481752609276268230960716223902367819789935977365163422827844523476813794038050408580735288607417037538117352264621142660082683037413724981183679624381789443603473174917701260397910592999166096459552963399703417338568653531502504461409454403097726396170130163108966005061328437242877653964254655385440857465319025418620171666811022734559650417322162204905267977006409134433627957229488341070418688485449195449614136208524070870749917639370950750070379381200270823779022609941679149724971684786436938390421165819118701421623067328992145192279242043211422964251980354998565856253488292290286128549933398969082557961578107225477592532953663417852540388751542715440603347979029570662202769512712198692203120469661427049395100733859775361627084738036658571627650204942284403776053244600834245740700912013335834709508708906770532161043619488337226146291430566994497434459129117572266282556125477447440434455937735923386241055621011027842381381579585071944949177585862125143604720035067544748613957854507675930276579122354621297108432607159841332583316773833852580012873773053244689929659882763879010107414181712376833708825661787402941297653524116586778925770455549297508402601905410353640857287202364337170039138110332756168392278031588953451588892820047980147150169795567929662980796872134424313808593508208288802587642481244176882939864271909501432730398515360537034167321601243190350245203864930453637901626351460209798832237053364727477053652114875419248470799499738368350201832079821385749195205309547025820114298945046827059237302602227339048040985277283006705030635675893945269850116844850561939176233743776730712754451031995375851709167700359778305832397830847452004347653013706289679960324077117827456661534441103123487815609855478748832717046262152252441425154480112691721289684752883730996648833331804334195630853616913716261063387516804252524439289486631965726535156295360566174498742812781510046513388119246994295697588777966372521539865494123048885603947741612837890807033601967201059008053500069821266192969610761493940790024059605834843051942565480391661351155279145503485289744119126610457310187536830870795761103210814389217303600916775815103180526100913709654280197070692232728662731474209060922285253961004076831968030166241244524168989900114398289349287018933037313533365611882970513609486715183530487442503236742929844098126561255317357861273102677714473958786746793271764824092030491073880358319028463594966101079326839775445482375580533078395023014035389189414308870482850577086504112011182838829849298309634368676639388355298817120089046416139954589207582734783173030420805713465971107854716501059835158523627237508585695732600681547873451950055780482088638715645604906245370628710912689027454416054638655292832959354412758217589883672693082509784332066350971773897767283517176824043891065119004182416074850279632383017185524140045061436018892996236386948510128738879440415147842411654586025492568971043748669172976803814978020362214574401803497013594025143659533116892592502343355729863974614138587636564408433612346002469003232130024956610079210770329675906384090105395513128558572135376981218002586851175409303682147254566184009782466945774965410651963663587824833431206523440656682320365816729843666662285720325768278199451725178930629057722462105019885205548514263135555101371275808531564873950525050103313786395421847425776378250459419604033715477637438374879156088054047416727173497686519518800772615183195310660534907577304232882079998035431097836473920130986264222584217991928315261810644440651943313244477561467115306397361543831003450229549755816474843665804297303456697638691599593260424272203148801106221318314610378533329406954105527066627961680763742051063807520169622035079579857657058332852285397163228035730981137324772469187544136035448560162097688586160477996373499054317955630702297256289231372776596067920042063430279125570688668779859047609406459706022063259360292355264615390910970918993803691275048931127155421577893370806145971081590669115132710408686248876281620046995486918846905272576883567087254824129070799187294524348354327307926305861025964772419650957339479704627176510295832992376252215487292445422017862283624445032202682037509598862161151484949858423078251289560887612209881467303204657536043593023331859465241191102782086956518575589248023401175406797762088326855552575306766580402332327228892113638806473229023497780858525153709241667996466313038130421666580474500568031795506522159222246213291697445575012173851122607633313801048202238614829287622950147232516296439040888282789451139016708830469661700730571991007523023484898289858634013257724074481185761930691986151267432908898083391443174084592507193302835699908824035433764676023363829663437349538912906723763386956565161722158067818894281035652389367441304838396405803302470692722212646780005778690620498528101841956112023616352183609344328267039179857679697431344488622908121360281576561122102338777303211291127834526032171232575947728497764265328981101417014385705001752952000303503914261457923713019468857992700166218302129332455491924910158865075562849271472793686722818143957171664515155541506945947189529006958814479580652414724880481919048437782402669726848775023922358754501990489018339679519314596393279764399514695253729276215063024627498534736730962867772968321837246768000219107019377475088141026617194598875095915363998627038573535388531656161314306540136095370951769922362344796667684457128420149220719468453397805321080375617277725894356662821478248048402774424882144973167712370046511724636353999703169949045106228046108414834113469289750253376933751559001714778668854953442145911818853258625415560807838670810868323454946043593604762703512442182546302819040673821904703364062369403154073058862066335425689600923241926278658292743096704009815213601186419688547154232352641260007730857396113514954561039047234632824006669665058845974856989028076412325105620557908806438003563117198235183445161326996511576074136666319120571007039844422265915187093813255086187472669285682939425056002427672474768282465483000257019525247205648356069657330400627184561987487381067181173261218058181453912678659835722361093078856605071753710349325771517311475887220216770231709332383706263986085334235782229894022681870165106971594713207650648954481713990199151320795585638953927376831419342038320294682357180388369750706767541740305536145147978720266465840777246736630767586686941657448376735298080667156324869137935761264827597693024413007323089135813799070629557432818574493525844658077499738426547483514360431745490809946321147807216149543591020035725790852016323582953991633719172065781383440168504659118231701051139771409442158623855246102303516553138601407217755556485093683644108914290560253424883896710360846524313313566770837950905160070540567098068339835250558111136515415126167798252163206307344813266936920776735948165717354352782042935824330692534935634254064930861941598754777101470026470798982779900292111525074475671084721029883998514008032209249672929151458419837848832827656099851564234650337386067709850713643450731605522476633876668708070153456418961651781676603140997275040062792069611322989876532534959017898304337546135864716849963431799797194558405350188745322062890982780004657795770526291167208950239754860754012210720207142683410184591551453323453787033917100839264179177913581582226156071487348242534840481512110369055707901970550925946092258123028258115925435368642311802997520842674877474674712249429148825251682685242382154806641309954681579509485211001347247547529800710874195733263686199868781112808889594345161449637572914180810624348429825954757257150441570204142261555259561525647829229820831870480312988112576195653595862947673064573467058575610280401793405919884214942380205966348994871415344274393381160531483571968340730951325313826441820639665272571301300849920792985076413817230993829896925635589044534214245385835705466838737393589350965541854370821754183759324616998408818349877842677240109523021232587855244118845713716622279052398449057573395382631627479952497489853023407523470319466616533211456387278662547444813282093778837412205413667970218691335648531596365269878970386094926831117864353030835177203496288903407454468190810421325071816838689296112313721610377982128159767922754634437573078279825099734561869164560506122903653212728826371213047974795155128481196683987748271097468007797640938440978425654769184058382386888348925130504734658972419679155411508128435010915788576038355214260108674290604323286701797051275787329419752218148594004685442876157545548319465187533688299975651038767761712693797678837445008083437277868812281294755730495075495239553387080200529260753613200055900166204128249321861631057309326845703582789155105080418287356415371103734748475521369808482529931378558863754133457862147175714115205248514208545840320069809945128585285945170444699137431253198494573525633356652718744519348371497933886630274619861811645295748359619737335995068177339255691333956717766602121317611587655210887496386010408116292976789057199724431400589056141198086679625012614220995844642075945690393475938623636333000561980361703408359339717089080353106014074442029677586673802932527332879902422684759354170014254385166991526667994894299838031531743165180573678266085028665999288382115531700816414454133420972897486419804010748581852074880387961372228885796441425611924707643120137550556498132748573154730156761960918257451467881440980305340580126723692816919413385866816851397665724009419523278258201296015088047652173841113028063456812762053472193596620353986908285184769132814834571860816345175616042235505207684852031000581941642870034765972122932897669875048911294036559201732724176132676711115076266890482329880509651886231131392938056085233972145049971602095547499887302095887808984454580728707678657887789667634092780465570414978559529994212563654876219546556046671981478726190258566823906015839532425408770737384443067440233617727824624772891695811287885703046611214841515980446925724199095020235461278837412057651511823053346301876003288771679876808555914219269028680653155213043139426913165402858949338898959257943905216068956008791007063797873499644188578944106681798671303702952224018667280452576852096124303963148277424643822854692402885337630803390784399120011798676967230919791161983057644850848994120953160399360319991781298762405364129656553863356073241364482829634724586020582537137612473572517171491067423032118342855245738390137054399242843537050374142548150758314591909256372418778214199464492696553036153456077784657342364213542692295049635866822566122385031618680592641708927734790684609089079031361515164383583993412522156864190507977269203844571531670949385826618271566121504699820486164286550984537014424061603345137470172216195382509137599728740913273211128354906375437164968527564280389197754462296111932418421922932062001690170619906728985753969668531279284125123304593708118941792640042444777010671380181068314831684108123653364969532336601275050181515140918689187750497258542918411312190706969140578813115344652472103687241330513517295731355435029476735482460257752836192902939099677132434353422121495109997752207386649955923300517848323328892472251159729537005474476145267057756668281941782914371788303050045575645028246838095838760938533824218270943724422634288341394210106807331722756815867317541082132267247132893747358630712192989238810058375239967536231742768737859414711732232249038363774024698180026708251347118099355108558710736302380903027142377694022345050605450507018451871788811347386863497115398750116949786362719663058803469184781885033473804183066863759148697244371129138214242121217772892497376634284235376223023094066093579890698674725855890291693328353088504395215067313172404349239776624675199361931200089638705900920040022813055877570394312687641203030063953797547879524465328290210851555597925875380882335307961557492832970350366775291551453923271655675221599287392051176931735694468543757824678874330858870844605703631955886480117769028786025331021955250269787691657002785186897811349201400035196621213246114671169318019250951866806268083625007530519782046691217469738722309292507601465271081766371084368648378321826978195105308620825993722666721167794145568879689296502162002510828408371510325745038496118584945090470534738194006010593061098126175654287217082998339478939327701352796953937925589453052631766802807072392580637695035986984959919209091104529949682476789263212567255972292707222961249643964976299170836979034991143941125014742688534848120805434646359653165065304437189529143646283606078675287078140165442261016143500106676056215710776931762757597575971754371593036042173678500034053692344561292658454356900180724899008141898068037821453053405693265253784350670374240428649143368858640591449722625003798956278156077485783177879796965983782451548173974248878352068067489879923098877073630297006691669599882984830291449528517238425375832324060286680555207541725488013199595565106034783625057406520779107789332718688388440774512523769604051359668924464522176335531308306105423794670373324279866277301810739539518875089652614321271868779479377360229165714392114404855625483341114188015531981761988454201312798697770308845912594540215991354410537750975063836959220200469731178787462098121816354212832790041088881854261835398807539519542544448412928394668702306003277688971452103894157023594163503535399147772425826789033238455059120892929120607255579344144917939052931077810219562833439990157599708963424524919115845318250259029494815691267453977445628170674749169474009966223493250464582936306291024946644752465375852861295083390950749341335499626714134597451335656283966731649545795632919774927889425554784058443867030521512924522755954733803673001145309774494585317208344839557424086839554255819961478332526724154845105559034891286569597776108513914451635809152019801297014515033427688111919531769278308308852962257826460158430728116769442250412349810819006736047035744462785405915251671067484310857245111206549318922730563623879865364592887242116729815156348412509432034172164899802961564143198628481111129375785718971138502842173520402069110123817183308846644975882835305169674093662014487002613531786793390493709478278118520183246851310830302434325849667563994150913917836975913596621807733707655259225749610406217136982123472578694034155418470752645420686311537548344941916430879310546296486934662947224299432044457551118403249807801755129453674020957540900547767594528009273499966405699060444541746743154172035186558076471524634378585087623535892413731711563905116414508310088632126548363440347181180385523651262954686792902249889928056006127298072916448480199667044648243676277146753060246057528781199713384403410124687357740211827718859918872873218739518281673287820236628686891014594145843446877930797360868120017815033625729168871938994259927680906194688310969790752651368818400375867843975742294160782121048842414240028576159076317184420831088196816303764980269965772647899382965001683278762141652623291737130061087855514200475257168142109585893455887493008027535978875407911634334592396680634682662010469898045361704616010914661873405654975466349502526846342186385134305819536884996723183665468463461861504648320582765891283560912400654767847547637304504668060432341217973475263011693637644580540534846467737299943883475912432301262691394943508399951868627182221495512362877897260554506149386545701124095753565205133999349518235748499457535550021182747529016362003648978620276491427872856583376419291326310888819004069184830874862756835053522874612130041667811067391826908370970186116986884489737696914389839071150744799025851680284903641306479401771541919152303057677950835446839631716264998928751371681899381468674518688643163259450330234142279666038367071166468168620556841768405497492049423619915798707993092886058060398220589813988418841384328101302173941496234455491646190596004682895415530955999595546620462090745219488075243708368335330398853003776350886397188673459150357263290893805870860328552958585345551637643232894990873238917791779973989540257018581579812505519586405886062894721565038709914040473841185808370878765788998230363564488630247223421944000523746090058585727033435931305485606241794386817606637313489417124418951567166081154439705719918690384642842779183376287004741883916913180020634797049000495288675718703438164165555179518823596187163752387129770336854447925629579616194525734582695406232735356655447441411257209720646163105433594041842549093775159986564720739776853566185267772921124186021338839524292405842207353491121478877101457633424736667384492524893290783705921827752611606140764038304859719654111018273014061220109787418721010929162003870781112463653202362892675343774047541826477687606360400448077237467241794236441433013997690482585332404569491588445405999818043699989344434781585339659362295821954828281270183773567483526841670910401094321613120390023717479362291190873460217944383079359797936668136893151895759050348649718089437746097147690907005763677746601139664673801615202322817470588808083378869742320859466081482131022954004552752660342481642631051264409902111675536041136334343264104854631287935742207247465697071569756450212840030130854521078892084429119455584362864002475853388800495897090995310729888139512756523969233693877491753429218713911843267920194570034166217727084509038005401235969625882772912284778168899911675964007417253511371074708429173192258089992303343288823914900225512276560189147481104193438127775865570904356065780506282852112693609245831466796357912364879979517678409766258100168232148159937859995198887693939587174378604963897169133606522574598433060201030658036659795372318527619660715905811074978462116274846070584840161267607848281452477452916025066432884383944763217360980971464890860194000307821138902110495175486923391518503377996869326279919574879441386880126617551488431352722590084737912200832131807891325248459907435770090645008037291774316344912150653104893640488664896393698285545650577163740539459287298768807798290589482028521449063031214832953936644670409603431584472303891185036475960213080323738946883534170090024432700091374757355191290389353363836101249013460316710877816064700404441046426959664081588389902916336193484969998441674424644004349145769963434806652979612849100103021765332831133881720909593363998470169558637292905282660500669363911128093727320367371446255849702961206252722019940462719986349905193816238766474178504947874645841342678298604139865980818535132336586152789519052780117971278637108137495689540957250236553467406439895675841922998094569554436796744410670872445093772599442567969938392340977904953216216175076485185142722599431285004790132881672803539157829736090271105468304709518046769822263370315949011047164082272038006177438023649158609670978110327550106435219797230044400034676041153756503818086230717618835759740354019862284540959769446367278473572075885889505180800006069725675285632889516429533749277733638366179900986647331174204626265079503669763811491417450138988740918801111488793481255637578011689020382115981117033297551005107646099785151361935100884820404200447036244535999169956664439556078266123616457223956076180199494127462234586706242400895471604265597465410086833723328082634174592583852167283833204793823896128358445071940029381980229891510141090588315433644811716794842390055751967039583508524554542968307293175995985221374574063589276325593668568084143267199467923278563066773300023850669651530699898544148613244475782094182528264400949767314150855719160303700243416591592174811626410445113412744675045943243423523183592275311608378444852459210855109708035607342376644280358763277909726099654642475426231150709376614119983204272253791481147625518483594192535150477173793585820837017627812104616647424058671752734562517325769063576203941948548442026587890345535378771748064490717968975881570742217319127969293167868876110576470233613406845807226071481109974417877352428760239381798629265334535581398425560280242296037648639750887042372656532363063447680743547745687961137942481999810348180989652871173272892871869968592269238058022556513582772808308100971351951293499592768295074708001796434825447002705612943461190499189480424012252624208562985379873579483846064176552382305342138706132559689431725376294851003313618996984528281717040561163489283912102031940750427369541670651168193522597615069801025995628143921873997725568493173370424351111303265353518000273883633378684556631105003479565728694898468885076726364721392151678493767652845908851669024694546139040876381758034910585716426430017648819439692281343823051117369324169150792840474068952011110805928052970633425719357564897582479120546812230232021017701481103821459791971971602659661404494558475679898069827093086336920014171378327207304829984380773594142739752235294243557046153755361976372586421110162109791624015493294607531307603718355135060948887709066172895032603376264871957161550678176128634104167241219438079209225132078314181387134005325185302709170263523437473767796526642749192183244701268868833671161416800886770819868989673580685593980656482484798287494617524881548502393508957168967252287551819852641615132576508462107614602406193442610941365045691079202081484780655302442049185450151644035738812131299095220818712420352709160694700841035282851766046363442196369840282565809118573627480477033341460033233691694693726554923178804218833332248164922446338703203425737272460512802451278627069061937451343792748273061560297012766799291761882433820128194217097789376413126072899835424787140121424465065930485100754891561125168889147077654927428309122545223998890387118722926824015332590576670631867822600193601395743778303570246076064722922964481793945141240570279209995308045018770156608737311470118677847442941364580546977140771866074559242963147277436472768736234409270986116415222470130201611359654591085273728490600691195657936507846221598804217953281323441093170340663473320390040733453244920638801002559246033342025515265149629777107580757105797756956152682865133298772206220904496592652317176741622393014733250395976949357778605003336516676554440967221701152185245936801105927851067629294856719007388222428599629878252827809861891762946502337659887350502787897084964097861147454318362864565964512148764059460253100925897456861694370944980047683340532076747489517393150207316270669465270051134285947834386098831466542793851306440093817198114411874693050086149926849814831378318369612734721257051030007862871606705350696329688287418683621696251893508184493875472813107623495626257424279443133024263373572615841902356020526265246173663498876958463200112225799234021805275791113905164783113768073956654799838457736096613684896981132015466978326474794559768130561371523070427506628980814057816103350316013620612788081771349766991118042441155723122620041606130311492079734349938429479000095171585140622645906489005742884738326961475534220312053243051151105647826976028394640732741218108071518434891671077254071103646200392637779497624414688766030308025702922345702007209838205431205774460173751011997425702839997161364326287472150617139385430929266517825357070313425094346310017123441201783052405823743554490369452255563871044452359506599706355774979175231635447816386234015668128365506775758037582570376763395355445100637511769584611274203446825056368159104531954199309953567987219127422311594546692091598691955813416912743268755267761614466342501876654920393828982918663579586193703126237401974393390927192899150876326424853359712317106047685408981625040305415547106331072418887695070325830663429675086421237943274213447516977646045142744841837940735811869434381761135928286293780641046212007001264838399822883070531964459154569657272354064625334593958380348521687743061445308664915338383622251861914802231567013103225180736749423728514085647083292032074282191761041383462412596425916945238260306464385629551649547914040930740003395693665260558760998945258232823723900785255485001212537426298133101052876210205458930687738394931085057676340161179743746876904866377074272619308568464868585113262996374730423300385454885639918710774166366144072985851159859963031596280912424699486897884007623459032624936086387435426394192282226263362421768275895172718760495989884025231189663924489144071902043550098534869094654688788843178104820951608182040865080977618365220378807433307208210287895002707347161977857849633747981533751333459979957560375493805537460570920906759801366534506426952397833490250134195024894155320555609644977691704464794410187683241898001233904961415006707769759619962148133512450542073095844784433233702954627194915716575880731484003726915367033568220018144110066532963595200085297758227806938201645242020269116436858993842464210897782991061664086645442935815120685208604261707588444232759247250816119867406320565133231293206996514701780415391817591425004760076158813775750867229685414604758074868020640593459079776481807043894936752540228137826558665997092014948009278243671578318950311485696416849208532071499715047394861884783778331121751283291363083675475913694055277234890348513636159093741568811544360566689523967362278824344021142500684769353205941631914179496116966956174884594948700964990466584756987693232384444976995386674392007792615076539099849162666536300139713391106049161446586656700772689743654948440252763666317235864454249483883217926395579201176543740091078996500285488788990261524481644039279670037438415579886781834768548769409506535336590964895857233400120213157521350733924111614067340614654006077824641065286962383048577495232874453965417783782675310875948847390350623731700548278779514002974521018531240170377443394196798138394131704439213056035941556864238553593728596410017215538663081653224164363988483253563342440020256871374413321818405296798213094190178171167508532013178572183616745904276598520443084757711622072926352121904585190340343326375439625648179361780490844921064372922585512065531411276181876032065229653040928976807167408376899805289842057426401943274849136368013578843513895212037895350941410496013843470593841062051179647250859599877823222198992037619907263555698188694257710989199160365774785253007832302829981580175178623805117528506613684782774439054000901699170826523071942434176606322225127708197712737066021160962363146456636156052430675559746275429986021653031340926679925135875207837486711279455566926231804836818185122427122803357431266732054259586040070375454476689966269425669273641959873242540621263157970360922501219683389448226469203200089674297859582407930162731904485631940223278353120308194131744087093650314950243983289856643421737533649863771382589038504496468532699476365133266907511809414233111109817351077493682726702796101275353067974676499409407612031774668369823246251771717505580225408242559707915480511155507583790915577224466630043468506226318882763920224065476950861745329188122427533599090954360206379520476729757815536324348859450888042653048022513697970344108049065598736936913700011934523228041469646944239902904296392854076929845833134704320163194053972011833192730803279172611417422055167322334257822997950967556708911711922629478445153336540284588635271602393789808760092624532481194108007256175525796559311720598070857451114471866219559670417392714149977868515208927717946955902240755365742238875045935809013662421487593248677276998234544044368240127740982285840983602352937133738349871337465015649384228822235633204147896864813588156939133376714538694601988226544740448465792800687289107440259634469713097054664580847261048730077497234845741206825825768987948619526773691204505950775879794866106310519367196176631852549041893644865733084998543187202145413263254147087800235844164979444671852353353177828837723088074673039761725999986519657413548096394964667715347036988359080205018409846521937439699781643318906070476558612273625625540023218319510319859164054381567762882509618536303698621185587069385534275385647444149950652540513545321422108091264487555040804927710660937151039319327612068620852645118484727390077981231439656291830867394251398353040171996633224854663983856065973644210893265711109771182248807708136213361448243562572764751301791673434513230095594862347649046817864170253370855997423261070594693998993524187616312754696454053197019703278062885348364061701537379582797327996599119837728233606553768787028668471970185874673582496198209077329043381627455812335403619346044610367329336940480528474745267392416284498315382822966378276432342771887200479053091905985925943489920387413482493685698263824976793999664484433198297315753672554681371310078623697769150251559476859066659723873209589259168952720477369958694460969423787642041077228087488450670337200416364467839922801341084107449983527468299387209269546014876410539364976316810856579107350314950977439145622804050351683669751071991280295187674398293125893030077146917279727795113602627696059268369648894014934169784945921490866610115041261055045967844512129035666605891483885766249769484435637380375203881226948693484893224025163337679806611023977796138416142277402068491544655400055646605610245512516213529674777856165084177261801574638180098247990349222203066081448428905780893226348116459095366377275286987713084846160307404352109547162641965070842598106833598428885072659565693644318447665346610861054910125120940320212285678392867516359095936662855697063266100787538905702001311525262791209173668762982516608493152503702091350471304800180779840668505879441629600284091804100711431093831563135318267832324058565356526719081725686464154384166813159723481706588705513036011026582865762912013202074804262989878778972344276495141398284538538424469026930243216719704298460973944262405255085236711959233356582584025174202648370388348287962696645653037922253464638978402669453967871133846404956091948475652277063420532258475803003670081653420135207538561487618355879322269342414379212561837815758998826838580818177165145342133189830830627770927889788727402129905802335626983739367570875990330355844269675865387480419933617976912656730245920320874945124155965445483133678299442678643038362710319198076145277933597701023102863761226475396115693712740696710349392332545894921494773834486412157042605511682613220295365508827153387337624827143488291180282602312648798864325739446736945147716862639039178686700790464023216663960933539677021360715510633999801903162208893913773184453373529777784968392672500822686012773819225543049635079659789112835788685279512610556148252089509455832571054330154718765916819269698257079469312093138811967705771438413109187511424354501317269136100647672049874035214881726913347485685902286553058367361514622675781474134909262854973348860059708029630338511663391700519065418074782149566020570299677569305109641916065577979800503165983608494796150300462392689184761275512485137518622200640559579917881575947196490194020220775256898757154555420677249046449731062225413404768289079985349188104274687622310099374839095982783916038884842094354686201604973833573587197732830066534867877901693585408412885244059246843823821856769548550934241542177900255743329105717223752110205619830688205429333611655921668522186560360460727205083463312775609190630828888353435810227248250646622463582352651189898277642794662758537177818312068030206780826670235758239235699518053050916995511986800999241184818868714177541783211726511533969375650850736191524976081954259693226139074593467337633428173637624546946735846506349394782339490786292849756095041065787090125159463281888514143998745997443426179397934619593154104007119996705444848690932499496679717643290043021443193979623847133081646150615944636537615510396123573915560349357963013807329417525001844158796079965517348989172917771983206208322722206506897020935849454388427531408907414772360708049798677234124642366950948042287618877625983354219472036787727104352633602998329550644162362617923823220865131743947115738755420148557505639008827475362610305147455994531862239582502387219748161312331112656403278449966428443678817390103875880920571688438217645611240116209733622932905708288538926718749867220305096259600184536784985058375418017808328475671719918450926240649984090224636957364870877030046130290160565761494883788193554415305281728762254868879618796972581363900821069488605852044380472903955528832093079114692240090172728737459893626748784817998248283120196251066658922076800644984866748839676497546935085428943021839158086730703849640370951804421709111440502397514463101603104469754770695609751369654542661665720867239150410905740959156074074823210439250558678020133149783259513953345985564761443146606849478255958872077966129120978843886057299546675254471961423247543343351402818473861755808444092004863865281257238460547609137398985989605763393138594510075051457631598356378762142988643260155758693766511728102122078152445426330497674328484066762809260393090204413554573182769416730371308717185882653752003256917294384792513495110042476402032716763259251476189976835226830881040228970844293919187469205576571319800651082821270986961612170692587984567276208820898061670417192719137348051986269932277938145418561577592154312914860418377592988907467662515358507547181246043434504166251500961111491981373892960784651252337537255078663023213117041068603776303263200975930021012285737496075665624183124469436035031066169934458341685404117718567824261185627867726613169272288301828003252701221154713137438508689664505100387560543666799912698945012590195293085118709569178745607646488807593418101158791789482162043935497383347602167221790718106662865009260561200369404626727393922825927123304065304746321123594409512177828329794786768753756059113095508135287534895838519452334145649146789606155404915669723942992258518233458098828455705993790593936198230587089795949174022224136374078994848232874934259838564644783210213911729018037430385371434153152699978280355417517888149388039173148960166923704208158139762655927726760493757276400040564624392292574169150228353191272373192351120046743269077146644250751353004172481260404158762418954918345368683250867728278767860788049792658387775310024591526477490530030685842765648241771245833581007293357064073810549251539017231312390996409805706036601187862303370710789616113557885732485358855539080889968407011240413498821959686126918730735239513998102408584788673900783519382801015391915908835480945807175580440119424775255367271614149816545377312258068029852041843388144427727118100787118231386376759535270289870028872162370613464577886914463588245838141290157435540365612073919290175780445598805843819516064428974785791261119861330909914809477405166518426824257797743833556241619283968589183947324616252152151596123126830395512889537382670035516031554258538887178566636889359082070883646456265111636091825176378595357089509379403013919210468734026349433003828475280003954377739897779999205581792301877893661264722931798512346158945011481821372491585689616891051174802527509781276292869852833283376881227171707418726738952674496007202351407634516882856854551772283220529833013916803001955008405630303314649682101561125975340775542496094157129501866420117846316330669724463509899744461485057296189713796669815206472441887206917404412590579006954210577509293039318760685507730299222860599614552790663724241049097240771453270442207182421312178546035948379731083396758083841225147382494849498847582555960223385178626885110304528517425508929835040272390260052991608602661970724010105854690130484987056608400465773624059630350483843227540342093385200746166418193721208627058539885445732075585507506960098238250186416366717329087865832131216293426214315920491155113341942562340063433346259990856887070119607315084250929495699939493734051193207695114844274034536785698877858120528454059943370191158705939678068494727132299039886512372409596756610940362407833850089904761768622731072859876319878912564599821526027837975515384374194095493449244651786104089501401650115711852105269068143074913347162572501871532706756439867481012355467910702349371311786943491493035435658232917790650635563713453893836919617378724227465840898381998885545864872897290500270362763352966863482746155467978127096275157055936930875822975368515847074012126777619053427396374812406187211414526860286027465327881209129104829804627332303863370787105302727561611384080474933758863395841271668039332129431295845074581213208771294243380605493861591780257614384211308836348329215992820062498764342938872772153724243422260645580483125719756088273691709382668783276095410143481095705726340418739029517110357689601869359319746257138338801523314031352732627560607612554252916728982995914988583427024682666125314496672420753463870415824309573032692173411190331530965255093948793594642390260392637085813195680785137508791445861570971046396931067666850122860341882281390818913675532298730397490964281760024251821201574638444790688787314220367699558924346572160669619482706295896730953076513109383580701542028965054927200216000150600457222617314223295299238459158366331478388673197314806181177527189941693153541197467635968480675937436893693796848410515842742513121233441979212565956896929121998947360094486378293110547790102331876388490147725906317762934786073593550641155607412950829783422432839916250329358647668288995860680607475375715530778714221108758964536936112649862498419617105162567477813300815561902052516518770669749140300294752848039412369414510262693560621595695031899702005819562616019628067588268367063547203201871341266672483015237904555084357401983975723188804175537095642023970173109507355755818169094742494545181420168965374197541751317261299807923786931769205963958410309794224654120702822425008009226295095452856502570771228801517560781554673773669285825784913667228235505847343843671636903633039662228753366586642327355610168848156564643693775152856244984398537403758784053196771354444138205904387618257739686621513965713691342450742839908279862080570509337034075260837080351427478960528925322909427773800227341697338924334525320725732204247960910763451892316569920221570674703677388090973199574612513086481457659109975479620308188710438066421567744662618691121854937410431722826988439430231603438686443967160629237073030860743971743114457087895391273315955104598229823835021239595390695621058368199631790915874975604680456624284780890490287189935667651939750096842479919198778944557935471359797844781662658673977416085109916962496799557571770011006104501079358806505341422240204695249868876291834571049704365040635218001405321776484191832352418762223068700292916163916768762144680079538800184039810311366350418234322016523297707085810958354660134142929277117871299855092996727560183390668869994718598856880499486914331208300462634893663618749718060941290757888155254508959593855066608249903489455987156186766152310633772968449717347346012465973162747342498237472762273652321436265350409515587058051619884829275748851752182940752870653681769072501595610598899683730200582865432739723620807930471958742081480043915997073004921244398171616772756560594733579116820421794022178180035092568730941650880911267156365777656092106133491342450649287153939272738194995906201424513092998387303583735081042628625938036497770537611605106320892619562329377892914032916406326052838327313908761253243396510918987938469148873453189375370429439486476946258524150388299184272895439583736546638796782296972792933336122479358431883052312153056904733936419011545150010129452866581301980896314419573953532856787881700320344334557203525327314945121680102177300212023474277364230496427065977817457100489505447659802867355237640618297055560482966460215887227920089485015581511691951824416068626125411757004567668066125594966238763985349787995936468065743110726272631110407216214651032297777795306612069724125966727023506500163648538670638398123981671220384472231436403143798020662192316854319294531688280684031489416320540532727466062397398328328589201458589029859859300858162932056770499847436622566837776648861048194776701430087456764043484428471255199485720631093028059432206488933067190776357321838261079870096193907975626853901069997711379495054632633874740638651985239924931370694866305889173970511107650358418462383005269136164624344340019259281647341040694557057317767742168933212676072861826159478179024967784694823863196297386011632466250114762822250598376268840028188046892229265085565262443994490872234367186366354634827122925814959088422915454768539204480821168641465466503575251497316523971532110715441339024803678094483944330261091267764568466081706034493236644865963528898889138106607470613187515103061319514916943309063172731106215031604361058877642893785790376109369829124775867364808319255174545735082674857315344009624329548722958609881567209601493238333161146241169840107863191952569730920806227637406892607679770323964320371729612815047892193288231865466756454576422544123523844832888784582896525652283760600854827577444016560807033237839092322605940721446554708535999972919113184474863386045683766921248420790076446843839516412617422018084662926299246933719535543004786789828884249338629265022596828794224748696943777837315116145573793305907843896225657708032928771634135547370804901635671115778504141154442558964650127699191984039681568517752555688128806839324653410939867594846382123675743864923476177435963599795645382163875215827797655717642810663564855609760977125268354747932008168603677028752153483405181339004418875367348550133103545680122192396286267665602257599693043739756836485578555627650834407513332285586805739361297522754029513211162233207738951114028999480200411961559631355479885384700877168395919134668866747114022046351058833638133381812263571848246277064936552512251523231584441175677895444515933751717935313690106820790263955907205200572576124400559804241299678756909368300955263400629082031971661288324775919599565208623232157975955229875278475241190400523978078482591880770666801482161983151483394430965142102605317545768388315473167634874363536009374089009077468911295262503635092562134085558445653074370100034427346353239437881064053306338308078951291950778538423579187902747932030307621986447588795442644182036909347754821202921777808020866906333402413983064213935168938685593306609125399254048178497723224370546563627589629214130997460312466749757931725364467218873667679790195656054129308163826584857604127029223686628580735510962162078109757215990560752229464821761760302697109568922836958203411786710488467316224261971000117799224278466981208339464066975608048498658761729954250147952323981259746667368208009377031070962517870362842097075949703731945529308196657410996316182799387403577454689725134846037256583086742199789097998941701232925343440124592141313214610687048304092643737094849573506185748153767807466675062648902595546899689306562831693820196460538869460111574903786315624244128013831281127242381293600508510774825615393302168634419534461475241847630008130134104210173311335472766194813270369970067560302263687860247636012743268295149991675496716560356879171666765137558179347605071352403833946690156525316346445197084879918215459417847073963290180945442054249873743444318288539927928577400215444563348051828702048564906463442173654566286183742403536321810492123451015103124281237251067474602851447600212385653685667435683550096386828030850723758684160700374583207586775772394510793634347173893087080197855258348525229190571961796827288358603291281683566325082838083000862242854381733546547047072991759987063607925076579788118946183061771173667400486880847670112317427406248360120018851781718950654516245852020487840791077570824815493721798996540077722360742704060487398815423006381495845464685394010161012762092271409215210170141400110049594351245008128441707628025614816909501225139296373673392315513052016661095338047743695941783385111621741190685814369604166270019717296064873742767352799173839458955506885283734607655063038677682230219165304682809931969498249276499330936244265258128196148605250306676906093874286887103334150786155349672908742320156359024608589146175441250375629372063168935313085088263938100520533101690803972744506558244994254186023848678045076211034522158944415512245123650036069052887755479619293191267648687975911004170815630772070765100182310842058691297467564310273990834205006788102981897271593264039334734845707542779650752511769811328070547804884322784924559840536439498629642498714212866048035298406660600409869021941002926427626944244035490901799332740443192277288381607156328945250692607787868670196958610258044193302756222064166096274560533277008049178676706242703639847044705372324973823593810449020848778395190876504574391701339935601114750455674044162245830400879476203230053064566430512229812145342427146884552995491749051426397667893875078520130124594986122963672829871013845018428960539264370878944452719729577975633553437332238440975918367304641104071176898895313602998906384720464573373574799137832066935744020593884637437993411866753368329183324363506385659234035459674566797851592384509823082017829088990037253167124056855799893418235376167778332668537860986910889729343865945657470023947669341530990250256269862074018526985660521798756921185993753559586077427186825072163519439864823876869296583267498274765277543936339918852958432592954546968641718913652132787164688528559153031778462293421852346629820177917928307994551262244960394873589757501207864388705025287953934723959660243526143745668282596464609001592114544133203672029395127921789143421172017611575737079227942846688654604134781050649488998008835562785403622135518392518628352270695306394319593873842923313064827039327235519455858668412700763297616265952149977762870311261028715768923412310270877772689809931059567740182970788440369499256009497241312591912036559579558627380208363970397422960448679032780129265664442409034631508046585419907496637660904255573387206265800704494696998292180294565173762907048627937184092078005865514220413452995465542434031937593656309441870372780595901021024045407922119514913525817545883198491401548255435037577645833551208623486652980670995438703801966629750167661845415108925921154036903679993413207208084336337600078822824711371485912315605786549123610059325273559771977070976464384380675158574035637037611577269990240963168512439772424616193518162139566916701955083435950314432640280340672876186171730520385424613805243640918766717771239554731950898326064225658817782394702320665789541925331181301163128268263998129875246466390571670893651416270627451285277696443200904819134334443969215627322589781955917900166871482240441763338200993919213630573155821238560083145825066161555610331469538686496004565297156109780880962917247625489826345464400346468874244372541028274253465759637488499644891474162995927919606238210076162704605496454860486393224112209877591938061005996137412958106124453872792136876468897908876820563692472002297251048647224752083158481986344665024301546496652552964641250317436117439069753574149876601093481773629705743744440825820164203388077982419144347638707162203404642872203630449910372232307747009545760776951678693650704875763790866637332276813202614867192497486824765247848046685429676642205222394171820007242813613110055042171294675993178317913484659210448646017854972844252665030197447196245178754838613333259236283816899768404438139126200361866514566282187146149274425974411662745567244182400858388533479649775637362519542459368768172839008343183022803488466529698962026398842314966608346803884396347916167310715004118336504475111560656419445026215237621383068683108862001073037443135155368226928714338318477299157878380521075740742233151458323274595805703585263217800428416758654594288281878001568660270485542580091180293399561642145701920331284521061909638512944668411960415474817790889582038679195892290848629986636942645749986130505988554989738609920711181043914567397852363827188418313130282932354404778774646268966776971798536343213072402284672293189036379987544409677553769599715983577187047878083863304206540174289469883470302312240812652331708942446383364767689828101713660725792093250306833082281061521867373481373894716731682311827075409262064320698595489216310691726716231195968236653135684442391633947487523921152025237925537826099164963106878806847936187998748751112206083835623495461449946186660289434191634803120633357281318722232154572977530401557999313682300349667436579126013338295148813482080352590424530306421155742341420107417849893799550312678472952479312545795701605304536486098984705937067579197179182991295251010555959924984900167237347482828447877488560842895892482323660810779898872151850349063963778643926749226634385436276339707389567110951576560658208135297410112979896323654500550070052089782200300887273968540415340418449739030492986808386672696186909405926957672181556282418611930509325472710638589220041346885302372727518289531693780770100402373797037224419260874257240715843195981854879383311394851673707301479464142499464366580692264159672230249310325102145218831996308036761766667229907537972727926912181417580410123064777446604482316333962655776681355444476893872804308588510476923341091803559714806496535489671778061210954601579123172539556207218586641257413491708739208923745321248808776672284765696193136339263092994361761938882907719700215206040822618018702492353923266717951529407503149500725478532465363075348444288826871438639936236627877779745980428603111220422131811535015794513558476394274445526502783607446905558647460885660046027548935200492046558721109104500437665380491783584556425790284820016275151131860568522604518970989083241834812104382417117298839037274721334359631849720907264509265003049323004048060452603133392256134953629851465466171125459889711484682254829096158570920764165574126652233834251944236250074552581581535955045225673293058385172185866959418396599018790423852121519286472202963466763743353133539570152814403751593809189467019898402511796345917151067534623188897061563608864140108210836801112298290134557218454920693232773872804747740437538521783927431659154995198051528672758468716294758619881314610458410102264500408224389416999493831292450758311977036510670394955305260375637464128858044763609538561791108741943850470680874979668674280235603215377834644798862192467588913452900579258845379463397333599275199024977157639476326371167719488016412801691194758225370818612100310566236800256836261220239564893184232616257121941658532588960632580480692348152806090509178462723942361043687393669102280684919440941243013716176821643072890319618776085436904960168578121281378502811423857482035079176518402455552594099005733115102047344249725702179522229074992741196473715276648889120188562533205357134285825499486007092559455831120235639503718431676856728574795392577191767174524793576947109066246438504055132573080694437837173111673004700912090634886795408697872396453833024631910832016216940565564197423134492755897947794794479917187587224884920933705588734107945456942964201186244697532380110632027960151741435780688371900547377910445363034443395017940072284165858097481814696660202316855156839214742398508455733855983634744425421074066942944892505623673889398470411182141732925575396718483595288049724400619980121433132632121459343247367162711193408950528237068207437572150999950826594847391436665947198737353660928496951521331493049078637946200136570505729222939156447756222812100144867141363186135475640795278517695153120630589262925387136199770800828211623932496925291311833303548982075632177602748888054459112872625259634882728230240966217642413430251994210742309867111637159016374271403789986372301937346553544604594494337541633267479665947393723473910797974993925924848490027121073306001981548801122970345943160042923854496483736469255764176478791882497412172596306769469833591539035524313092642882651038259107627264828787846044077928814823927757425338545452150149805685594191280300350853759002313711154137890497634505198173035742846949063780396484999508949203157023755173886520146616778335941825729786288311964784511186815926986816224547302012093312435698603615279717796703742630517772303525832344305565019373395085164208043872707397186293608785820397609238133429716919263190697680094595685804918931374468287199519580741762071929743311747083582253446571360303118021203816513609685631649534311125564744811630809790819739737957821198011545402718626726427447312873905420969579740556829568175356910509740820798683766180404900014326114153260471402684327968696057898804813311015042674845984562978572473115623111676759659498827626273835356070149396528894426121937023667680176247345757756067347618620390159803332111079559435346684951766997694794630282557893921708792907746417265254825889917366018318312652862677670775893243724592531331249207738204111819728076784080497999591625141319968522571717731176324744538722859684978709289236164873809377080226642202300444590151266574002999649647363920910627453009671230081148917310698156856535153577798019973230757580427338046050623719540593206304633764108071802835646907493459463602298336203139271374897098000080080312945280024558069776890598876828023631313410394938402131580976289792485897331290017078324362134425476663301852650297349157052028345207763096064458343378303082234005270488053870133819265467116502640269390023643365910005451824925658732116568305628427237663259423016569769557572165309439892822213345962188281833114079896012659933030175239953232034722632284966568461244648350874337106785960933328301312042108306949035035559874499126324059181367280346269045137390461739374534819829774691069464635281709559129364451357761404161889136069029743616902200197975953450164743569947410591982666157316308885430287055818289201024805145382572189478652245389089722143674403329263177451842613794389559543557416127108008504253064641403572467391220818915778291029176763875264247471339760810843066977501895399764884574145900686203219723444165677703097669312797791899204106864048530036977889319271376891905873280838627335944040229214211049582715291499144143936293874706020705652811706080696050091074289361811323400897050014918489239481008839444034806835206696569008273525209911794965481881109508670874964117557410665777206063215996174991906779784791007658713381466097869927661892716473325955507241140181522715733874387997764053088651218001185461511604166529292517500889583751888142651539778731999451346226405704098090251438831234492883551347328024994997681077315743402012583894532013128336794395540791350629057429385582585852378452352616344429991076161894355060713593476819726856573834076903875015022174076183994962001697919182788576763964505617742888245656913031148352559361879348864462937939028817214997202625872666486317708686006374044019270263109641296340338685157496247450477683884374697703469987693980664087049477822068023688210718996918364468587780930142792508749949383172351322294878449248712093913472569390933050231187519664649451626214240835287347768796184305058341072164408007237197149844986698804342640181449250259568837562860782916024666808126140833697169388566287156996874202869914823335452922543778307692134556914977556048264200644444988148505384264078599306680236060913141415814732315216436610797815277717328362032939978591797125345400201473919126347946565281679862575401910196069493476082114003203921077328383594085858279396033148765601050670148772207895252261322261106234303157402063696476049942601482208800409774828715557608707093397672559077056605504848212284956907225036021326388463816255216666936767033985800612919777737644067755643987267896607255218131670531944163461582364532671088637235516738923271515225902000318814310428416285291864150645163316138613160821874547885752104542366153364485354308760613157452588543699270620086243357078479072679571083359490455115811065458685769711202337441586197667592895564237395476896805447070696351127008209298811912834679585906739086221075255548623403470857358488282344386827347423647098164694245908361427875103900819917286843973270714319972080533924584664982897147503126472167673709153795323065731595417147757718661428939021395544232222688926689515828671020307054666127558417258701789535082013795497686786828761789967139146549570274571272722894909031553979341103746554941954071367251338641759923819236257612666710619463282668322262168307578069698665361213955187593929473603221151496854711904667220337444145450368027678337234702570167138869199360447706743226960105367409017385029288375798808124983747181235189851858336598826944501473365599197578157827344090421057236143018335694699197239465915609506771579503176865765353061845682352050795995961228528673947576492647373402662060033213494761506153126995536594950160369611961614144774458842988881223081272586772708178330064777745164541171967208442226904355875112119776567859545816514049119376076935661533380885997230019402265048327702682284474706545068324950525987983587594936887004918381757038599518990332487410775820477634391250275481000968597496457699918215644185700888074009921909234997462335276422071232976052392849371782940544925419897725044121026031171096755999027937951106717615479555118148655190484909677497387209892429501577819098062920169039191070510575530159419019478459353583181933543484664873882709712889775158334313313418678992898847160420047325613475130609685348364290641261069276782671457670263149447833765462135522742713425829579115227550607280611254746927499810937371703698255908631610045538894324773828106633155510763013056656204156360100150418857761605453072296512410617003941745550540866175383722852066462387755191064675316706720960636368939780089272255381464205434023324933893915344118949579265009701542267180501636806573437825570885220929680402143792213606015079744703939278793584285803880492563108871136475784800440613322475527822845423912261780881254468542547702838566102625958642112551664371357285556071098226179326114345409693298027644640665125354975376738249777487417658566927435993133509247580606467045995389438965321707002576221666101174220922665494354051374931978674273690677654194502226656050515781479483971772630327748451890725340493244925466650977528372814823711252357807501618545158880220315420239403051152813375742327440404196529654041610339042672284451618530053285527529980356194916532019667252929448787914365988096052464084712331387534899309398606436621523402696041784496014649171540110851926952125699998984962568587441906039803616284559084218592740149765285644967677422628946616706847089824335384097599009505286909243471101273084089638296059149702718851321328477637806122568349664942246322694319132194833123393373894134995690602714883981901870227943007938115916476322265748801085793317450740479739001437353636881411228779817084109564931530364395098137453242013144526350800787212113007178767186914109098599209977805106029766353143522473343569496887892744952785688883587195715421895178618298082946052182322389849648892221642365475222348908412141504759278392745508630581555998083892309893240611897326286190255747295932065472133208514447153505062594813484626797334024141285673112732249986545912530929971465269976658052482945733046919638183786827845668382234183483053688450291339188821483136565186450115739879697974265629044206190676620546123369193737511446643730145754852537341297296754615971992810757700126577878441709012424648631310154128132517892886412775997733138139169161631934352090451705770440765898071976672570703371964629223508605548012536236861326999219778188458815965728983606610841983615391331292921378765358488725485143735850422817420906220245307222823510761518545299127833229147887566647002093679910378962386378867640965434939667077641820391046219805968216230301725563014037729603062249936657106880733955023901517381557072149266494413993887618119684172348298344362314400890453077455888783007599341768905085018533210716146193789961061574395621225407781048013752798396531187467853060814661956570943546851852538774006552131099363242106534138021493145461071304797820920510711249562548673430434455905416236500539128176234811456711821298091205753657933414868269268081404319907176332429847164179961970863729076780230893813044187458591921314414890976621806689002669018016403234897677767638158781503127765272991581563048174417327944483137154386835026518509791023850018306751231279879473423068683033930725874263394009527244992684674589766209489887106606581021111509561119862753878990149431910429362612964509058166812479744394782258130497564539361075194920606016105829896725053828379626270290534406141450874691383890185933069579117835675103115971253019815038558271359701559639923350413409501580942508137262347547991468171150217242312372474489265563647062778754880363698232995567448501893314067374494409759758824227276366746360173209652094163241095912536139329433073080760495801573921735764085893302073987777965094399387778099073803029603306259939598684263968981192284800478299399158965255335397727472904324520031681860668386179413539839827879863731130350241254240452647662357555664106915583901337626446746635741333246600666012206812194080012624197911223828193758709327247639681246066852607508512342761521868126102571388923217287315902897798017480494994036089947335179116664197957503931984713436734966067982180221328920836031254049609853445194588297282266392259578508459645074270699135619320633121360265644407467258162084988704107987667245426843440465408082227583626386759014694053943441582346882654766508909195241262678404241765712993788000516296400001521208256836583034319074894330022361019248919279517489475924779773193906792367626141479520238254429144412155082163098167778053034741957001124000177162927601123960236087841030628772533468846960352300448493733444788920085548101167977379349015258047158409178550736399109321192179656652691597467525663877183028748350817455715884339645132472224576121589211917101092375606228292906878147417692945924620063789911211143142141937125783733529451670401245024929925775372631116513389684606544339621691852873080338009249681208787856587214592484633430949432979823687663282906095799227905579527832868469459648069292493843295473173851508614744263903254982479906393313293335729299669347312803729869892980312361475160670535944657455196684605917639352574172285423281760945309022157860665043328874367172007233956762091968339639310931783017287686426896949136899092898219119235438774098977665107280536115425929249120052952339287180177701465655729745377975199228609474512262208304996134153417172965891234892373229686105590537386430325739259963705340972597130361069589115297451759527646457473756051199122754902112304146418931710487422051780445248321193503955593591095475811791235464093906734459025402249406388678530170632438856056122674984301077451304645351926203163660049663977277244479824298092884368315764750760715658748239896836222061790291997991549671412059177972810052126161534738068786526894686773748906036803580649381868121330976924397288095449537361567791880693418067714057532293544167161451386483545865285031283170720700603698948471873172403833571003715266743152205734254219845812657787127630339958812351122741152221552170573469119379701581930723172780093382020280682123419010282730303445040405038439658688564181728425676236368227015785171803922021140400570910206821271545384092755644879180654025856064929817049841461119630587668558362039996689962865099230611703828845235739175356215686154796962140092163322027852296363226697713993909490391259228649443206221907016217098378711268810464675660007260176424891822792424926766745317414305063054330564441960747110417516536266833810307903455664855391135079669344137624602731972418935316441573355362649421120518366586453161496390774692731450432023918263861149649907613269907236889166213098256517410294680280711676020880701884777277136537985379209745914179803602324439689633472169169654791263726056642511859937500709459844341007006179951030533394782992849506452845279998336304385482320974579580254045316936676361848339509623670903304552210653265772627804339553182575679946513383646014576673000145778762887504311993039852376786349110895199417953850498868825258064441092177207580182789921875923907694882874232735131044010013888564639188530284092012493943472002597622689000231272476358453075778760339135174012262067638325052641516179778683576841074191525158503908643574217226405678014963523055802554905916910675060892884556799433696407406907989483004811063366525147963229455870817413599586936455722615268690760646055291912490711333891542506299520012213646414878500480075208885589309020907247846348965365955052722654380433807822437165166088544601951548948847745899898686204049056961552622530923600382150172258183256197352680816650114200408563651944100313195092700815818242338334314018163676408898002778422258616760445467685924794784776113337962518642604845565312036523016493276624536292012259347696640965583306380996076084463005599548168714616786441077397567012833572469960972229106861570441380443717540213127376995815480172542789274777691825412672046183740489696093555872828965658794642268900029002112117830668234530468564517037784928365928886830850197003205793830375911857088190850968688535866189761297594883793813433891765774555495923426994164849084722922507887387237493256053194008693843316274068713558597672960331916598574622826615066208045623202679316522928269941738086379851062125338680152134015896385730201761775262104989359241404343413547129790058756442289224631033135859262260764134197899171259928445089323313627745941746029604342726674100824996142681406832230311078813305309645297052689166471368796751398207939421421036106667955310303225195292945125539875382078160691503363738566052431888890582675581793360000938139224936919101445722596187189359815486923849620536482896034074609953594001329787774328310303067623792662490328657231274170583798679890752632988232594543434850924994589063974771372152979351678167393772969424519354977564169231884375304135752544322093455711397221839890544002325158204537598063164166613349260129312968913354956660384526002087386724614751930709231854589600889708369211473173572292174612089930762897204697022909962030614065182409887650637824479772917502881555279979533300709907299980482741923130909238803183830765811882236907338214902655012694472826834570373374698507038293584686429688493801915197588012802781334988079602708118017330597419544603985393710760480701728105494235882239003600107743603329511384189363065041634515067115739188785635635379686617441746438848971005064496165645911842151901114127613617267199627765090783561619078819528761526460886942513991721155206915374940232246872432471576695634854498701464975199599566468838394452948309476160550325292389889471165119489530343472987908573225987994670937562520891999449573970397517680456805127710380760553768621754078438040359768535819159235535495309090796264189039807010741822546064096772672003071130645898821500820028057034907110564994983030608297434446590846791288101449221735465556105249643282056538750273109205732517913909794922268123777923024786439777551690413464175852446768561945586640853740880376312212635277847004462573464194933238822750968605237122822719777415232243805126117456223907218146415141782220764263782357271123233699522937643915757354941256255365879127270745655921767999355264056506845646479994980055198060429970914196473149382531041425039850360394859939520603082652356678750692854630209168024774624601775157600508317539211930783235535454807022179088365925104189059162007920020035762229122373298898174498459584492433638885627211838030129665758521447230831377877406546676928966616716791456484648910253685653486909915464600701760258522039338802599698925175655461858016260949879572256862723909506862653250478970964322570786768671232968995310917726322885063107781717448709655120227770845715916373411776175414666106742328238330052452845924789983749678483926801448784998248764872149832402075097197592644910358235273167560542787654993540094278195287489893471328606114724504394527377517863028586014568836739433761007719242427599662412281010330606660630084721704829122541952670575447522568050027805579715321218302171673501380193725837304689127439380389811399853546503333184842491828786528975354749568007695574043714906606576401709595236337078792165298780750582862120890636382419189766555655976576557433800588354121541462696837924968221747254898127258458483667807065595361161111660623423669947841068468522102326621608659886485744726370621934687126101659629440126967879819911681319596315470963654507892059430175692984711867541092722923348531440650226522912995914122568886632837792952254659198457239641931177376554138391079637995154493121426430123310888379135812874586936214838113258507093579515354296057498198202988149814051421743295317593576697791499535933321817347790346338656545149284913936245823121684612685721789096050093235754800744179434547830639540529790836906936130226883352673595139471056918668613651214087513418902500857201979717238644534067099716738359411279922444454543220820393077619279187547635372911740461665119041938078608114364137536115502910284206637400012424962920674518056431726484457222326686139890826250159448547514620715685636535838937621363487450670448457366977988887264875411318382400611459637028875169825906650728274337415686415531849815441892693594699548229773532235225109943849013304136355542306588891130510030193546988967925160162742341544642060729567594488752851626208571968179535525602556372247008817779278906739032190507183034554811210715232649311262298034948566980213713174722900953941502961635391012327355853308956388146734495786040580085597902657446064365173171312090087167394022370894475298137138367031987654847723859027869098454464645429015986493214096729649118023061904098384958947539646412734581927308968421819414030399059619553533179432900215442197382465354200214586629598481727395857567045872295624665910050745886264142867854637149575754499083190415348976440008452119699920651193230888095100419769715281183284903327543200035292498121850639331146476140629520003683937266371952864660762685365243048464796790449768503220423057676134143227598142670924944987519179122605409400690242966301999932824688588599775065784086750353486402501282440346143384843163982411422626167646002573159424198566593770041120034878876354970353551567635977164858432756341815747228833963719004385589026566665870941910811798457711486154150301925899541699417653736924726272411927214324697940988081329629702907668029731242221592890697322902727753619500627837360013514086145923665614850165058416508211067469333410345335228033360532552050646258470203353013390974206092881547218651845659195261141189710644002464576064967015499335425267244831649743530096619032272646944891378460879595595270719681428241747604616845120037203789543875008094361635009780496349684511440237485979642263267794540578302598636401300528550993499879010630157479444576672986727719869800842928050706039333017828745608919250753409946725593002772113428771680403204429602809734727805749606435060994262617373391216694390774987333805513372856413062288941122404632101971981787407735786343299740980121333917370994469716980573605900845864573673139484217568168542298569289805759764275971511571342119933891550013273013218298552778589693396301326757960367721064406160791494000809804730683756863735411794775896656190713467994382934357681383813670579381227908430602217818145028190639931780281185389675874742378837662414938752092440096269257753425082344580360307305613208518649723108876933952204158888890181791021976170124068382718637158792060686488409054954826355885202082269267674588209791025785990405380443727606182561271768396068569386001586787934186150322223156998102281693744780059109271397165165475583957878412538060904175802138785090287439170019096467245568133629334270133712032886239113019035145105210839917300472328832972446995554877903157828518322053423262586486269548244349543109706887665319655099709773587511281296998015642295874495690060704908838876816637266625834164116421815926596542625201035251730586582601676308478734858835643068239226407413573235204288928752098238933509177093912157318975622822659696604790110663480299242118721348333564274433467688942857810040332102116446995468995944302029039215028002225486491425770769919263960034432918265860215199069928407532181927457522748365578826773174204503860328028554485535760941898764105517544973236703230649400357401494142458890725702520089973469088235459904456768183955872852206670369356680951828875330211034613117811187253661316420539118638212951967826339116962376506513221876834742950456087656434245496737654324028512710190112974647663270387731821836348453551030558622150711543329509329384836330880800761476224279164426630420736486869337643177417661187671929675024385109050508085805666628600611612996689951497578425551868766057966293719010433613547006570228532977142770535729141531525219304456319224527495152912779737517927404948697880730027460729837064863517230820561324997331310124096522061549268951702378054294493372131866797285310573463450828474687359840476186711678353927882150706348521377457872230512915461763597371305570445169323083624348118200898484661350077569002876439441823242467746997811828124692143197555950225616188055974858329464889254407005845077547109714649801184794447536543722735699151761769083757242489990420721734730005627835283432898267628987620416341439601031424281538781370069885103989834578645894169626912964008878215813502582188878327999773210264405736324497999334474003479169548152658368092377575152930834979878722781879281607160006200510312947186087315445000838327275129661898643982263135360970474403087676148389785784063940283210069865425510302840261818199177830117936208112679512649844051936277690245400810950184728143046829630944282152102676424314309793607657519039724182799696935310976603947951804130402827827885486834777596064691505955237271237154950086717990973059851143723209810432134421045477511116620122788919140933409295558686891285929301296649249715201395332486361055197950538055097337390621130279120619018749625204907137784448126285449570581508541937665488514173945387348484419861416931437372690602486896720489621810012115838053062693176236567962743332408211046229822442838552892561406795381737312468594077593011823850764839375678055594994620567220339784836682228039314450268358492279376137857919655169991672290879413261685204005406607896272343798241213148185377063661123849713654742463766553086555216909583739702718717547245877211950050702804245810359584572426089442875003631204527220994092806361236258459796260979503125823342940608586755113235021466244918952711850291150683847709420899854884967770767123660225090478097683429483964415637754818159550818226189086894883062122075763889936533636056880344772485159260960872595606321679176573034583055187504729069448892743273728269475488920183451899756997223747961569424451943033456622636349220300448349570308573784327214838632192694846525928408354551303821604473607553995098546932934215916341779729215875882153379833813922572387114990431197155183063477246643069361788860169040400128928324980714562839015736857425032429950068741823380284463648835823485080350350102280187176145516358456837452960810440125918498314409124145043391168066975465521741271478213950374501204039454160847810958945548941904898551333227470290072163077738247734112939797943731349487646666720217291801649095198799230471565797376648310836056871128886749485421135290705268236651700327672341596068576530462113019445562032920511914637777559184066332035852315517216216195188724638195861895656597340598070076223253238336095307625815073618700487546328855039642297302231777016397959682452136774669851992084341917721920369764362480886116490901890508853738898575021798232726650564374791433517858208458247585610098912042706017859507524896171893176024383191804986839878462014415864575335630974734518086019860171872090595258995942710352890643364007113054472754706798125434803742233142774388618022598186119210540477068575089690313393960282702725936871737796758478755302920412087808990530793837502089325246574405067184716031183506175939600341034281385979135059797837815326189730580050224464475875610579685039460442137854512360757793919613475479335051141494514052735483955965968676811895197709194260387022410775928007255248431671873925502175326733489012213105688493890257681452336998914749818583685916499170989884045385623289036336821741694190457249526848304722199388951138689649689088753405727952196963656062383379011688476106117454494833429939961495401921838298708331668145560806833408120296598363397736203580519143090918488360788963336465856229511755674816073194177153262980670650869765597006499212289770100179631912922969357952300538084529436687910285946773886317940229812834780697784925855603443855230570230327382389729189287761830776717377062113957358088294293449039032513220307002902297142443001932861920948152106784137289449843985402401536334185288801192632244580307415429224443238812227631138679576214891320094209205385283661529585781666081313889154159360533557825698878876853094638723333245477156883310184019022626699328795727991365083306695513430520256734802675426448022529477220261433412228538758071447166640983689269402642915702713530071333442577314488966776097727323932248061225925103274938537502763043910517823164874994479913407997835551664965579836451149815774094087087170553056153892318169424685008491116133840765088363580682513086442018718305069772221025791219689081673573262348381167647835213875716429444972906713119950980938627166658474068023724509418989701411811116563208439267691982210445432516274143500962701632200006806458853716941371650013016738777140062366623669203865725034131337842371773209559873190630411552018460797892541410802962935635278492952305207860631014718621449785041234282949409814303310119287016023373451553835486270293873939148959950684493125734355312144414181922154895296570151142489213006016575752338214865589209803636405752899336656244878165006672435985855537030443656083237297045006050602716704457041068710995866425286163484816296674951362833998084766316260091882202896374871166873448709963043235141302778676687368162427062272441571105674860500678256585389437231343778605770496036711857285850083633346402542556567879686156997727519064401778748823133666391452835417396006354279643740437906026563562624084646406780903171490202310564957072870829823995482633680755051617346264191066082500974314077408608124772879192573664706110475333921530796576322518032970369087467651029596346024558687514148315766952973094394895705743638065089657454985958596561711151131192892955569324564925883962117151642433083760519033422891057841176189429102983417835678983257669939502956362539536091390560304607040894640102153474549396631598869080775276816528099672347853042969636580447234437313268350210999518678641807633054717779989138737744832022433672092290861109879846717516518524752037858263578672895249836159072955335553252831059386934064400207274744699118057968968712566934147374381839974372934410062159295209469481193177891999399124240864599730685839732091908737407942751247571087795889240399411693923087391680075121643703568651789339147399636746004882345058019034017203892893712087392646368147501868572450915295354282322073902758264783941717819705509765783094698762247449733609159222392615064872021885877737864781057391679878258757271689251278548987325483033589098737836483039781227324012644620623076295529973752558111197738153011895616042037674059951514223144377331352688645369756255364261799587892715905443490439856014316255538522277300340852603564876649214967663828533321469937566098948532686847058366820048826949286528486539646375204594421940481744298541352527922693508013732852927401387194006173124966784867663260194073249364135042138515989701099408554178928145458760744781204705226795066319307685349787439021833622212011061942706467045007640365968677169035962669021374934681867804386614739155669746534057455859429748454922893412434428901285871892356319835896051272666332096670780806642418263247704820448959977410047895473510927814246705865127460608663828447040358786482428352110286938369955344659005778793279116167952532461862003139064885833086942571082610401138757520039979034403739793764606867137678138538290508736406051991985447809654414172398142331480201047693222947676722372472526563907182980228126232399006113910715339269954018222102840812541121923018534248705629111575832386051789387678103653208325627284142150359134484840529778893849504734034915030430792064165283426317028262406486336665956518235462452155555699741114083805185923105819990465037267895023013565831079132165361684208405855669227366740604580167398534564926151285578825702535412263196666478481289523625971487830397794595450333375601527257387175823455547664780548888726835112490135518655341211283599336616200679936635051240200506947467942123249583073437394818695467487964344200510022412733630274847393902427243048897773372698071856488269986618999014419396850668448154909830280162487720294018786076251633380083219062792662307570743956371588638617108215381298010255568338875804812975157338486331956088928775523923835689291743546637541492540517202412738499804863087808082061350661910928449845275935443293479202867174450469834814445442220050996553889360711716930848406214895803701896206870328948706549204603780933659263987142959775319554381839943470634694397204974181253532105792913197566632722956547479879391631002099821299252328737147594521358300783511694007173122847173170253144328046985394977626172396070954814539078964650359445272009429526756358267524397344022397990019535274831352584348115942157006142663351313828840529511570195438500879798050124676187038207723670294479681231907393801610467230833233702074047405694645558880000643530020353725957959284325283700349358183421532293518497078841694799738822520339460807361907361934570119519890535907052268403819774008799200664651577245842010287198393133047606663185506728902066119823653729305112988393643931869658563474788855797598341569459519514666502975725151555159696496818179459098811178205521073511117783360355556955190977823118950189786848525792396499259706517464498551711216831165260946473318807765509141979256453595467176281267967964137527267051032002846931054927402360680339761260990055450378669646904882330929532267073280735836063303954086141821489732938213942435234582934203154558684193021573292968482486173220025618896421057890800327769284951436496475099465435616440759782617388916334439642074464034478204142127273858952106805502901500738521356710372817401174388198471312931889470252788908316333684944374541894752775943792604127357705576127918711703733067346363727835800917041542434610623441416040377867799624652971198691575176888603760459634258597609933979689298314403878443285461842606021344022456587876273619660438382616024384624229444268145183513989103428943112521047269099175796033428634646794470943318805885219003224527917146177593765187278825176095020766956358245323096844715773202773745708873003403994607494796458611898783712648590804611638647556658222337559241426414559483426213721751467120871188717856665334888127445348210559591892547910274607479106172214544959350158387608712236450398860871366757133360886723420574725647852378555510988998355950714033177229484458897204515056574192422772211740919250283703670971637502467075018344855124599679605366509269957556220726688180832457792122708746350001714815044256775547009842844233159408182806218924319961434139866854076182861611916160638197890537555918840856097346026820153727353643771457419453989097628225642707185260459361085831796992044988861257179182221369565052849008847799189768566822455992967569327652937790072486007619302240746753595859397413852942072994488243164395508361926023371488371434163075177869917599401914950535648475123942003115872981300608874768837108189786658011877975414414716367262300924852033599936710790577532201081595583340867579609883812300830877498654931496840679994924690510773994988838996536330576427671878090015799810077281229145970005726607458569088297354716462481230206912536418090794051339397232087846581765770551306405660222247404220543560687036060213410228249414851463949134081282926620790938008642809785387794935960093928886829668642118570412031479856344919773912441162487142663729066579631783445443564172619559741795827364216263672576782812363396758770824303793097751271755952776648456977969557865946993326600422307896673400976856389395303663848478418004922129550904849987705777056511265812798624835116226235283772544164359337032221984333413655208905807624230605486716143342833928439117725966899419888852215771964645939838131356695217577392521311925759137706503598767026389627721125518631763513564813153746464013491889246333335019743220902684094494225616283512092248816280200293588289756969499363372163811919276456449414158513607357423848690640787671849768987343870598106585360125532812396086068825712937152430676808534450939939915997834477962842046019688809573320234588448289969290550488079906895696094293181684953317132604624795094390003605274994799573373078027968215531553972614125225201268040854548697035435352055533310480334266098575210035757506395112510135052537435044117654599540965308891671549776949677599670977781672406577390005503307763791702822201672832639526335797811900572829536041528283168499032797385737478057418494307173752724839533053682955014469250010143653610140252421753842541048214704355992853004181689992168630543870865709366026250738167608729105755251342049192981273653272285443914255690120624630930153449142951971577663949887932042013673285249886247925029048751292710745920702599582742702559448174522971188470822548067070398183838875866956094459542641001376940519902934115875335980932840007384834553804297969742757511562509732252092251382782227043266344336663896091162558219068355048359536452389144179797442665208039921559120708461786511374686534164588235596666438348828642316375707409704643809733958411632195492861678193486716726053996463685341950060240946681829192675794065967550204909459988719472550548996685463321077842494982591189025855133172885862155546770581932400128536460494522667880235777236704236874462521401875455445757711136551175987779511660701803616539281806068183026676930554383081982225026825351569623538569157934193343712418089298373276262659749998666054606115229353027870065023382778362211067849570116129829522531903840394109298597069773717693240904549673964505773398969359876492692153543216911524226143288877057193677163349462363169944612180330750218038514728126092102531709187283932851528670913170012125224751263994792317099808861012485423459734010784016860444715722127427780657897852789328873490209248130756485215701059400741748361158247045606727516435453849713518344515551813598769860022375950827916602594105752854423972149238350817498577469006763684683682634348742168499500238104968423296123385912294678628876307925141453522007897121912488485603388471492108163256346539074742746091266363106332481895146093391574344772722407107030002166441700241233244464344696872832338154684306675625902776941499064945810132339967903432329957905763848774521268410289708139479718792288683940522747778276604162695809036913629502629231224648151770036410762673967725922866425965797063014606369882061318818951081723375249171458178057000899318248491123837692075960716642676722687305620274324044733175638177835730460036953968830486524052663748411444106140545712954559978675890143055066295189685929753681078794599963753300752618449179031436343330342348444890732854013352414915707253440697899161448981491740363862244787751765367803986769754430408615350929860602573314006109352315608677939391351177231596228104255144041963038269037037684969579444950565708792741883509252137865586013386677052699890373613446708141725699177506765074813146335535532435728631085774430239554673637877796252939122468102347049432021921091049778772482940779781887910427920139500976210602367901690961654813177963287173584811020304422642329275498608901809530945960033407075316517786557343848647495363478591294974825851880098268465816953043309178401038999241578141521849255789608579480322254140322729220330452549812289988604428563593582241473175939375086318177460109774829951939609257060045321303276281571156299973573838355228804782679014767514957723966496651765063704569976446071311812004260194830551790826915648854893877244707516778433856949306031839916052715752716869232074290300180117851594229907349035716880235237036774307113166370475521642682715525510488253354631654919356451635727832674324497571520454672793999212451555345424345400257346259342406519567500465621909593103296372682438380281507258672903698102812290858680116966874661435354035535722045580164064067174134577398533410943591926129932041411420634707059947682135092252247520595385629716376595813476985078922025132966543219976540165723338619971191042882576221582899635209078045263995894000445217766928711960086603892209608780296443755043423191746014857923498360415348562244704554812157884895545445710998583266203560494846063450048499300015299111465303173855926033342205316579725746735290482078397901332264990411741594361810990870083792897542283710271263963621116122213712635992996000862453185905377605467740124060951749878829104889018333724063332764294705798817467247038498999833955313776798159472913098840714215135021993003600491495867945971699286945315557320657521996774658587665852195093812159932462054133261863522946084759781490458470607166269276801919809976218851560780340448043675261702187404353304372926033673973832125866704244142143780534235554652266848085230901168054216985957214419288574363813980111593059512922379574690681104811154530241814061938038741978538342167622186838522277331875941154008713392900329854140382854042483010871904017918563605922443877065109092470075819883976017168467469385752151737191659189430136331235525641599766030938824004150395268915875165740963940058818844310499664406638085972963359215525640156752937613559252825842811637466761933243588147422828756557394291511545881293076612756104458591795544000220197117331593204612055662749840453485609731114291319858183425611163176238315154278961901484127259713436256307673124191726518039776210685468890764719225503698820959178539442212137873155087497558807687897253677587456385762275899260081246398531851640897676769806941587234222896806587327890318747986243528057892224817079256597199830288691257809311168962796241024116283984335915175971607843489808000710865108740627897967351103242016594195729775185587640018841336548820592690939329693712989190304301508035546296738785374739748269545568782394646796429194009636794701868078195104044468584189335764759210985381569547696963108399114169691545262443765469201656938761160630932597878396966035379186063173051704328253858435712596215960930339247050760946545401072048820951966616470692992476254529826321814943488415547344573445819803430056139777982212379684449253732442561389693421396247697999376357594292967784963865463596049374966187738564018242309692276681193192826199595056105635739120609142924541861734434970812309132554422042473070695349231351056766777497822975686032253336203327684718306857533137009587116855105981841086173870737296235565467678574483345668464442089498204790120111639512192858516796583404151798074523165395101845124844598086448732383546145048491329552978279326984852840201234390827022778591073930678731890253384364239391126209451752628695922590455178060413049584154890840705709360587806079513862135556147774354163040439698285004586089219426701283853120920618064419287587726822085303084996309816414936006867543580979796854200907773966491628659326946828620021801221013858273116918056574173950934203093995177293925366236761231594852750005634634855030488589628784100519576180555831001988726503509805273480547321081143308406488673320246919303403153346605518383777419508595525073386542835336211553629700822614088672844026036133303562107439425798832200166341227973126408992178473144514915770566699281996615021277554498013900938430783532766985253503828410393015928761490978789982158301814667424519416148824983739710832890327383225837435757416742814764446800978340021203174388239576390605388935441127952611287490930576536834437573133166531199993635177503671646793852179667381524283360784102131463878532796038866598091484257029252676195539444941754801701417657039782969491901040747654716824343052954804552247160580276115616076025047169472926545217529447071583738302627317266611014645888891796844743471067675059531765191894350517889786011359049407034952926946743063423426453228118883015865504790015358081792567818905415981092222667225304010759855236882231604706623605667284189558613615408588411063197401474416289109952705235700293413368548464282328747825863956432961476517324109366968954111488277740330569360426322609060463113637559548311469525226266359203370420871029163427295996868448049630257900740760889632495335374421593398351591666851615716515947492923055791796130555087012336461843898269500376167665291012703945052934682294188025384963916284337864944829677379476673086495435134111385934079873664442839144200685787497652580608426746293794107250990982418327459017394314231632311922239778470488309973736231072684166851942855032782401083437199873448673468770634431779523404031959543609521998093370180262489690732073424713544947975935303519319203245202976803562843364245273326440406713228124496988922736684329380213461230664798349141178022349258110850586469100488855456147266022681610859672075841339419494007648132215311575606571782055193345215564600072689703801078626832075273732846247174037673968385440189911097616239426215073644966435588587202640158932837516166043903404128198166098240289369601462422708583588940279320218166446525318074872545349768823720848510772292711492833720068814681703634773399771572220718463298639644203480795390015120981008069424722055499543422253175967738097713500179659013081493578151289260179273539635099946309607702459766748753681069294457497191062264481657167675244174680283830204076680644577026642377696181941767275441702562639747107922523757779234891071124221000213793542579535192695161686653927241193521374961491646798584696533219058441986089959048912662250950396348425437276304065461827642863203109845230980074283672466268653218424193194394481181613240203876994276263125737067242126130322065402224805828623543313844902007446819693084214831496606631791443554020258784595043367140204633715704157698229040097516883314612355809885888649662803181242723326260208338329181020987275320067747593761557549271821498330328432534343807218746325619195300562036608712105347115676498405125241175101730998259244532935446051304461543246545197406593028478903244954259748858783511604912740606333722025147541282970373639999089334499223879390534539803399622365409097086663934663684616489597370471278817422859808322460690171306363098623101039067175029045847767605975758021010600533836151146508317567901427088678412491306505117183524551362088811138014416029534645352054773778366675334041883604801214418782252268424509002166416380174328995755477728096201072419340700961946621982667825518665948394951844336251195847697292206784954870687544303647340694348820990500967608415125352206831641947290030728374039533403138536030811808925850852825111895528005267215496559300288028680702384734981849349505262192208169920406134366106580877162847282822457265689332969058488484545119406231838647357370522431705038887693720029692413839628788650763873865569568855138541688384129597553489313733529302550787642202300223460294171651149083092149098122157079061148221076508908711432190360033544330419446124645773996804631234657531365699656348396509847609405554206843533454871581816537715703204134851263059347137978016877872039819498032166148685255594327110317102438880470952568796158778352556902427650420292497691126265163791241485172223863473143717495474931162014035361705776252181183191009325235348789127522341781171690600937412564804917122795566478659981796897627703217527117837343730460158474243388587766109842860476817971835861842035901338803896496704552012659745558427733501430552659054804271746621568484466165359570551416257590387706823141629733891805946393338548583052031058424538887671891252619463085482923961064169986024861855866649951109429705754748095162235169693057586865287583940289642839592988072209571316686598566287748225266973974781511959623597670780385923293740428784112851585677234455301634852957656014476760666280753961447200071633235533419503286734389449672740445488774676978504130762523005434772227628545614551435299560465115512052472236011772947865346940646737547616757698163371639046548224295777573278404390753642369151233295690624313215759083696983315848021872391099802240873508501614753095591911489390629729455474890737310713957208590180859705253175056060902860869389789956165630775548112344358791671124586339741251156003204027663878356306595991301923550046448118738499787228744874605728450940272050206256101871428920757852575692660204450183326142586168853948014539906207610968042547961070836532165855808455215628381355202676442118614349020791555498396245777023625314682497151228403867104736560551268802444117901515534530274154199477942162636311160309386878590605949959964337513386236386618816547188853188223803644902442664227521813847057422817552938053905325516454150286381521967274675891658990980388230378061268789005722729888524449136836629382004965539036316026900614579768825932666888522079544135684423411650249311932879402315863845766201099755867220111776091419303249404418819484222658138208776077329843386421378408697376213850408450824183227277218804598657082296380775433598530433331006610257359692252096394529501764774661473096886302428474162071842634460693134170784929127547806502984873449502218740858038317563990560816379858110364961193000523784327584780397803266762325136451611285216452414989323180709002753129826497054859795364967026734748148068271525420779575053667430001258686744969919736441731751286124146314738954274785021883198413061550892530589851603939030500802585596248208642855698938617550736187591193330035123356464848508017128700970141295376057131986171881194974511644409538019913632133500900566982533722403297840110939028816504486124621476472603356999498483007081452232967184706244415566711962624377721051743308627935255171898107698449021059569388713025649639831647273167305091109304270534340894686004174309636468636673266596690620512132029237220792031837936615765486517291719132682076777788295837976701149773229823449113438957766233580397266636316354072525899979472893037410127809511602419869428193240789226667548964854535241604266559786532456586769250620717996450750744676802169776676142049941389122822282005042696531328437606112832421228164898278136464860457639549877397977974773551475180082606990866145769878915020706038479067480429089171242910574561718242398666405377737686607242268478136656106835736481007859024756435863989095173598048586719243196189946711516727823193772402326022202142211099265667252799337876985778930618599274335066963245589399082958069072443705572037010922225984652197409592589394372961371446779519067683501273249600473683079661293775467373915528443080474410012749043725957840517319973039348053274611832903576552653621349981087538625614362338252052562848891647661836092190592022220792948373841607106164723843460411667548607805871407406966530465347922177570613469254687679130351211376645302418788327820474054357796037597078446714984473176302395751044138339621890095273265345668368810669315164519176506810327346819324584595818793784542547335331812679527489463895983694089603907155800663566521668308255970701058598679876990684522693214008975595538795032676346348418799598064635747671300064967496399404662873717881121768978609420883386525300013341751320972566109377902172180199684366271738378603794787340415081277916627412539628166352726764368746584478914201046650553982580298152586458086914714165451124948585356695411453201283482503577756614522527875910741852384951661143970617009274796313506483766449505638085291566471222861245294257293430648822182974871714203360657706754205856749871381355032682481294450626761926841045288014292455519381055743116318736139744501357699092404193230059898410221684476823697836119721041728369919092382042993003137753588909227872781168810854438197161525807294367239350507751486277676187348035550363020380381111544760085823722944157634996056941043689050073011663303590121450157964838844350414999953535524621693956348362983402904015988069841600537648217391854617287470735603818374074253670984252122052351118938500394384263275578906690478456084012948350788737946294508579200139532585411040644481788267297317160745912419331135776508521401296790442498150898738071726486718479572054724969257287901637015817493370112101772525450109975617880052072433761581741959819748281827095617123654708552351743917151665011189606995706598348990766683556337118009779603630678248309797164830137813541890398329992586086253650774378354100046154033412611984140570518471079795308925719117166166809479382200278276912480602913149397688117550826152250846544809052084447289580990104013828217816877672691303639826819859658508497009138478128874570803707995351836501444325366859520247481058219681602802887719159800982069016117975978296382478213385059184757882559808068450078927581106226894998473407342543150017454190701232041061649521681790967637159114419468009182651907795272884651688539531296141308611308266318152836017615947054959913560319993048997817588870311259671834177650977243934742893903080827742753470136532856033327151899819992293682190098480120925418579876277631459971214191268027892924470558120048279170235666896216690053858137450647287480522264008344598344263059798114814240992166729925858717572089587857646690378806175633767747048581738490235183952879290758031984582904570914443386732490086095672944741436462824986398201938007619606067204875692610199955983822062218354324120327697179774992446110302192663166016402688332785326888267991056021224948331319526622305863491173307724461234264074012285437863791107069280770653171913729666993239403369351177772941153086619232202233244668501972933418435282410371835848303630358769307542670355340864331029807269477298496581200404705295061610508640062599583287204784237914753820160730517118198652725887072713612376937596163821349793046485053873638866377952601220605949633642850043157101802266327066205388416415493460412445911076735903661975907893946987000664172620997683836314944155511832941264911300940505375838046347167091225171251288152252739683011612151320172103082525552450205406831093852174299746207353580180783877598501059717762706160272215889089600532024025841024929049976349996266440250039149623576517193831723369892449843055208526085803924792185150930432933026950408934340744663333491829433008677069322321008254221949360289094811954162015677366391733516601526337976359855760127519580051206732345253672892003989625306046907171422527645792344950883607674944723724688583180199354954251049083070605992389052192975499051934732562638921873771790841361689412035822321026650375777031788674840226634582735825915670649746198240859686010809493859597176347484835639111762201810933637475655795265315255938100719632882272190886914004501108645763567573685865784728300401216804160246224557496738204331206393625729666560764104259479122482769877210927819124654561162421572632221839395506206787697443452860383661080388731649342526342132284455057597661860106342058374753954695244659380260711317022867495377458125579500719780585811478267980088178405526187806427423713990200037222156775521942211153350399353965055415303251267454514378370793850709901816028944883615284963318777159160546740886971824211798518804908740466738367692029729237829864046998815161787064543643282049984578219863006706175446736502573243332028831783296549330618626387462197706281153188346048789980038125458422993457714367104360153270336198614995823859318630921210830504623245376318511120609231484006272699656056208422597091306547320532508317628259832503185621224312116561150752508251127990446983267623952818871742928117227089560030469678197029330744117378998352357009833504390752294783531525219224641002800264551071027620466228253864557840377042894748375067358302370904510870485068129183267922840019077586407310285422464534523877311362832894307486610739790868145174021649675734112248499241609859990857529293086148925481411859658061641191909208877170190112337044279124755365973820129993529692497050507224176591443921431554633400902045204754147777435802288352666066656479781526616658318927276006098511700120260223291550368834005711567341795897562230627932303282278102082118552444759517554539210741387324541309802039626951471124690926549487667850042404694527739402475453206226311713163788720077968305997248214046959132433623545365042883812281040753761915731483552209762787998578079681950564559295316691428476226887496653094540157279980614564254803855009882413569659588375785585312086891106189250042281612802468160787674695106958254632936241156680607767532265154570737443180341986388443680253073579119271393680558619538719112535873327953921264717076308761093432255109157170189327497927695239780434261112133820960230342636685742032558967452165772171544278780690352971748067921076328195315125322279927781911054580327956418268971500738090173447775195314837116379580300983570837305950420355307699575293706738403125138261636415436009048635577262729704613632356043125292362947403305107590445639544348953969007306519841897190691087519845178263946101381720838552447299075742130650578189995348048572929888032887198542096850796976469217320552709462173517172122183745443682862460991501185835366553220371523300248492904027848868567730311435168262909477650130601352379441943908029049163946772058901261386650321448066427462353606399784518638129018421302224378573751409535444756174740119828288548655749598415405340540699047081178310890797473956629135224512989260772212612356478266914794729736886066989213903133308197464693118876470319238642239461324088851957944121159264893696543040544102195123422939077021330721369436350565316867151262786536985283265297463535209245781372796636069648815179006452352557940715113274001213399745742241738861829421912362435062755462448776402500955623179983792036155238491572358367739650728852614981961084565513814292246180405613611849819901227873030669892362319892941037923150284168248968738874409102610243326965137519111158457032337513194177104590879700603902123976671180761895661140302505966972552100914429870896206762802605978253021800464364072633375471028746862132499413805696071530413997085182065712669346008820999935296899910985687536814799185056080646894777761466782145263379259582370174638597600196539777183121070550849667098432880178031960072383228917451636556004280888160375409111527090119552632632437416128127141076082658760601480320654729676551394374555630318913272304017586550704953384244289912951941050459674333970381432105987409361930200385951817694203080968106304415850217514443836664921372551000384500626962497160755677088667973295778137449666899109629074889291274142274708112179000437033060156108829244611843229741035324170207886297596192369487966948535034481810164704954648405451824700587504284758224975161269060012656506763214364860141555792499913870178929933744039383174009769858236744174465929076812511891412466767072966166356779800816705016875077608663432925648194403190582705235318117952053573870169963560585464909118909879097657709242320317316654870483161263899755545198895623515178818515974240439623250803998284697865867826210875706629883711419875326322584267569914123849777171940654196402529843902943792182338814046706114463271478359783975187840079429394823704715091966156978675697306057111609180821885950684949898987344859767799769055410135323452500185235908568780902867111416892417815061096863151767440969796914690099320688153735864001363458601081610004051185421324397793310683929507258039628965341852624151929606583440005859154135127119968556399318131403392421917553442110331038874228747662235316732241768691734345487816526287462341767719468110296862655081701143777731365439592797227994393583977575281063154914749831362701706741424159914153965319292461573474932680733727121093314417829706966146035694867591050516060333752954914151764976513683736956053634862320886492553885517666017558431781842522896990948857463235081488065827442913644012962552347633189705057593727114446136930234712622724826802772271135388933835051155463750180676496434555534565050027891288954530172008366949022040524086001802018284835625986737797546071160759730218269431920545291860553481487418100833116301094444350635773066801905606281122533022824798900792304206747205901704345955614115690174207662728020591167351317242640906621019656137555035308641619226366907466951093088362903062372435102269905673944187481695311201076275281866906860835330466109832556730094314163992762867113535434730697481447784333823804135627276610118890410647186087090111645462526449144891276646754017898925937044801738347533405906191655659957292669783251300749847514089802827202627792698188804889169545397672574831856672557243855852721496808298189948913789557629427378427773864521669791506664452666776429350867383753497289045315898816057679560328890433140920212728159980924917185166830479259844061610208509689603464168108254411905521229978526785750471540003058689226469303671861938665892504709932011005072797595608598784639661007272707054846375236464937493381406228115670448987398854072897417877529190712675291121413137178472620209191214103564265429374734685869653532162163326016767722098478464962626610449681715227022422800615478464721772615460906728417323509810468711670762725639378697228962082668797630729022257605492198825981451910226465534059643522367115611186439509814369982263539027113450819151595326116775341117093914859969548432672654519134782859916920902724787796467347773868891400700753586377785180814974311696213213549661328246290281541577416616139086833707785724779180084306755798753440910759363633879931873348066594025028222840468353549048105040465441384380875191740643003797514780264211901870627505374559483480621726950011000568641771700412209439782276445324034642209660540532340888643544080769087002419512676479122588965326182299116201517694196103312567313368380531181111191602935263517639958002864689459801005001796862077266150094333817395386668213336696108003272410506644814547647699907036282595650442711383347276258212890483404236044838750898967229482931791791266607380720042680439048133534326762916752271281908580926273092013734764741537303805121142735366999818242123469518679417407344140256675635935869984696894291130561478848212649575470230416306688861980813308289724356991757508805408183972388071608042288007067534651756197228373105083975036572157191502993943043610055747550290330916688059114094541837444748262748020664839231125914036700878792968244241253822330882277081730485694712242206169167246634431985435632167766931388601787248308464641191670028965292382564708287382195418508526987598233453595960726327076588500462003263318138295227233715981608602567747191244933488532193350953067317980783979237927164651229572692347491083213336575211874483312583743059285637448700256977661220832408577600337910875026285827579429459152666816299728875228266143786538248446532064403864537384832283808219457554330298701636975829195532905884508949616182707039810444688677776630640867467253242345134162105854497414639630595894094152202209720391745775888296290577444203008813146279168415285288371921611219262365662744617744785054958423891117477278434726552571421910055459750190980435156806367017091043834756797290227701431705277814848711854337657946546251841256574664865236799112233408139895412687411146901474613778076591105530478917483086946128416529076802791738839249329727545233432735026101645130157883960451661654832026804576422643682259426076933990133632921595039735621687339779983287858576654963738655758494531568624507404746762433236523184488059854715501155656645573963471238376464568146258968606385484276575934509841984593013626721614997092525953313808624782307241795955403317275480326906167012833389307347131830085008716387318466508071042749047110168573200113576205152359590801865703960699019581918715043571359756201305398064129835827681150657025364727996005646734249984381376279472528053469387651999828405305619147719546482236311305142737211943254859666830200210983273489018627393632961052989275151180907337257385114689503793921626533705288907054476783905388245543871138816098746477463039643595166727975626772947631594065137921720785674959687707257825147591489585766925462553142793926008532074607485478084977765436423869212065815010372017446993730187004779553497430328694301785762579681614815950311336280369887359837402016922253991525296783578636745477036995906035329828386039309371444530620880192003684332917118436188117897741953939026304065235650457958997215583047546270030803764718761433358139292467249647822394150078370922334236997315475367909134265964867719859670594433476311951486798199240388532087474431388499539494441509337674442724398292205501441505883135894008314367162047510904810101476439926765311256645537856031949889927680405261288282494246300278209276217680262393601545129421609505320844195897332637895944785858348283265372412073849161916659245462132418389848557216243473784130018737206554340443148481845559853675864914078863783908564190599940372378177715918508045284518666350855145925894626310167095569002796090798887682462713629908812366083560121213292199345319119459549455316501494202597689297765312010214160330048479587499178700517287805297117652111595631532420958509877279047894858068459768648779595218127643953227053349490469943706927812486376317183739577544406801515259188130534678632283769991024713332537625865443859435875641444228362536738056420185376288449961294485279680187556199630038467466219416238289693181652651848276648863598518754981140702262960081750395996591648565102972742961375273819718446484813098887433457845739221547727165611342871489160505371766123942920126497045414052919449475076969092901847013572716342647711122897878144361839091387123649400297235099321347516955720622866930073667760254278728336890154773162668105236608582184638464320172963246155470057226671163718287010858557654481117817204061233226415073825324996357450874661173928301459758462185440063432798991549774434622281063463227704599190296536436863804603236006178078507320739286372714942855748313555163101075454576971634399191897131723289447596264532495606194298352539124238048604328430200370296726361931167361761664800414068783493282070068966888431320097903334143344650397421459196777864359549136029875217124059356512377362143148568497996974281765589084051830368429632057634439475948366511804919667959019652769865378240023837156110085657267359341667907159092282485050314962531486003098909553503258847073182555363184607388926902782215343071107238357427660039726545305846007706674496194057275088849753819892898412639862047732976740523779717271167124656510536554333709034934850810084564088901329149516741863493664488101674896715051011183583333136166623243571890662212382781757014052639475804835244558872626222594557805672837318337168062942011898049492825306339721499302094413806289076313834876387776547252770197135118840175090845700129254746389807710745173103429776784339233258927031878562709570139641482530051473302662230500386310867236503393243845543572561641733464058319193184535985019916012973842020866472756013183732583443697857883694101824442929373777048546703231797709859643998504643792874036286264843956753908575840087318724137445189708415318322807503641817840978229302728363086022808128488454874440989252012744254674451736120743019259715183205006866652428845429309509614566284968732086231035593080137764492257530247660949431114645106254259903714554913331663058760507178918438154693807852307856886344615878723413617929075100609438454284239229967478063575826409804372703193111990479249538992539739347764724370281038731304761602968419200910334270131837471892277401725379708497828514931895625659324015689601271686360567673840533182885591113037809176087035386434557032983741994655665868769883339605916627369378123076672190768584014204366738440951752610645390887960960864627842193145087581988451141184732060592127071391053589488749920522847821332619833217186728332162355737200781677395749593527626285508700971238438567394815994244612350169969465977793375598768591837938022635283001577643986113374998230718648530096227509603990626713435408736003670998149328483445952382248828000238931094873304037989622099239718173260943073967630597769159920197945472510366508602490687101315997413471952920665013112869866835805549030640663485234687533602298080226277751758123680317178719352902432116172960049178157714385594839775624259079740001185247865090603301648700586985209016214954702911432204616125991518712489499204293369237667114128838389594217520953367359391152183764936549649630528423535499758308573432111467867422175918083536891845257421409909944985694058354458781559152656186009627906637875575432928873622046449783910971607906706843317785907343965262337740224347152435608860060317901858817133145232980470311280491296242968054138708507500237463073599676353031738863425361820233347426995332410377085983632541661046707127079935110727370183919623395736379106675841721477977165370346084465066587376397510538258693707439664417481502694588846319866953264636395518011907495542244555261491834542030368072350379523452917679857781544030686268070489485430107030131004829145485102790595835073445902321016679023353599489902618497707039557460058010845397808206899636270215775511134142692982601430392677232254626372402082854026543645692764908367474269313408669186724666667827866457938030773780642761454212339294386454891875199931174499975198264348125837438990000172798356170071416238263399459411924189055288139031361567768504532210660764230861175067844932059993456803004797984703514775338060559937991898942128826676446618938397827729866580870352460426743271376048197389861664692128577937037793805398628479327470283549309876606117438851960524739554937398764568346456231978650451153189578850314175127245141439762665886670478376507348872078506882121854244952960195936500538176959925407953727475890072149970852475733256200982772188411405149075239244260267740338833398602356207112376139066569821446591348661163841479095144614837260344872060156379883379770947885641942726694476102232303244829065798970270325203619419244861108097978354477820445615531501732102737478581197261353226282529338937703808087979877191150737491278721848804498501609530849504513983542337010089789109198447670269101359817029049415348741653117678965599841014707558801605247374825679984699456102442257999725689938190884057982535338473254520480906067910631643337320508819158219785974364342309036899082097283552354507283373775950717015048392696756693056008212712752005018224261485859218921557214824308510246120764632012996948979752658294800702351346132609433597343004954714409743014134889888642516952662594541822828530921163165402314223914144242244746877702327708404955760458760718845319373559288368217547117721589094648656207514461941622835135382033327866346220018388338349123704183831423288289088296760900216393562709262602979672990747146218661842416298162806629194836087620741588400032309675128514755754552234647542794814931296139795661019700127496683741269694656405631098675845922385396806731069289643805836058128044047393992240215834776002973351923963574214573865579495853597960889620865793151835422702155133317747579992358310977003125801700706397245952757158998318775937601397737779020648106440133455858222275272391564931901709267138924498924333067481542204009856439907363592104810133558236253643959864341334137682128714965077654774400101114340289683358526366141196241099640418087153060582937819692854673833503203275139544703431149926172039225218726898344469388504174836710342801481150386420229481314149003458077262414610488002339746312816001056752752274212824823529583703869220881660811034803882905738047044555473314105695495724624054998246839886663943540365436673709185958104993697601031462286262311702417911715917310610336254173546938655459370827801993403150140824793168917786788841885881081357994824553610384856547783527523593236536116855480072798577597733050997503655886084509378228918447403822813604798154010431688438989037518922188890384408859852245306513431595033489436746505299650173977713734041344048044764032687284721009770679869944518687102294334805187410585560489696899189866723426991242809522886855705395787895319599332152874304512111096831869667635069336263738178956938924163305545421446610441380998879613485420647667650739593523883463734492830235555394942417165394506524999589376602403239481577391501844823518885856633515808640503840963565290498642129016473074346575196133960330094494592341784579861597371450938799178975374204788661934585341184593933189428283545908241512004644503725115854418890952468319871328673570748588404038016783762691576743879322139465773654426211086516613601673097706006993622497044717594477971209421314353624679116247255559961312202266638637360214552839940744262548521559582923818795438372544335359558351339178764274881200071048905307248704422093575430324246680369902074265136349287101934910263642790664863805273889960705721428010423202962370957103740635005372170325669820461667127889642781621938774383400974102523862659815879752531498555960350668575587443057392507555000985213722059533139214666637625572511221944159869926247901817223732841833723431838590276581065725969259036596542360627367725826550432664896039975326851625619270144878853653885071520119336342231392211516185989213511277984919466188504798906056498927695494737741879430514672596011224743481410269234737175755042882645489653278492642028767640319720821618147603267023267966337024041048919790880877824719070176596586997745059519462848279851018751837501094883109215602901615212843609993735336283695281191539045260721012857359150444689051057398612194395638312523305443381968551133451060059234722126641799123896446917213711546090024734745747488100790224380493332035856437398424346087870806953044298609294662741742830094730095990100492468240602696157657360774784095234373802604012886426461286957734020268759314617589079900734971176487122432590243698380283325004246821874009015835178299675686189514711669185228195080709574740944980861955642736498140305320054006281040654863573471184279300244070852641486678910962444656721727174911367658797524907761021955811404629861828057873783433962810725737077284010128973759836835308441656904056637760929321476449640443246346909059669938143077537889417149739026645428160349203633538827639256826195751334975232229955011524564020397430971067177741063390916093310302709156586039120337033241611047450475354833221445885270819213773153118071936458223048321427826091670321557799326183653897195899541706488354666054661439813164305069038542742354354745943347916046428920489714846053602900404567075325139203126520454946762614192402900854939571713063243788654430494435639847945330128521441261186715422457848961228866020414527327366257992281437701619615292412501179890735874361736129221688298982099778456043076428535661958514029862636076441536718203145352225378991872857983228525931836667541918018882664575151151701687362620756036949289924050390444877975434833166309575965763526688180593597130627386942118066129123657090432860468473534695838596349053413326133067695878525495679870690548804966984111966592696762728627674599735031407285124736126514331712616313649963278440874263339431149932710308322405524399032555694323286016445749174031943822030011927224125266118741390457208993324471681493753954545833015138154079988178774723189472146186162777470751038038472233766258366581080468660123612125918985411007879315056961848309156109213232282667407922098778912829902750339541120630736313949149951868477129420296874450276376972816268340830978069396839743527644909908070405729796456981140819541083587713542866901681536862043339638663879789653395607814065806043428982664890230165314447233904327416136631830402748575058914083715994612711432388291880145463100304262451268697441113273607558590254624415274998142157794002151317784383419495355882775120141469747346904678556560129564837081541761131937196427992535156061257554766997650232842657107715060427937053766549690621481507173836873545725897578241799758387984288173744950220277813680748867721526830122204408482474058781011261113481427783264418332879955953523070409920132221337181888817120745213513087931152549614059479374242584030919823639987297991884831275479084344489577390334055240159655396193196066249395399289217990393415121880779639785700328636639857256738672728292101407741773632988135516635210792921023783423266092274297584263828884224634876629067548517242267769746151899234543454483344557470021171443457656376554358140944574751734530622489339534969994203039558380689787065509711813746937134882199921778213876151980024190305952353143116985177548419622201807433790890429536918400581170416309826139310660921507993076420036113566531700963209093954617624935902702472911330329360587221332607326160187358202323857987134451990679637284978923617198208382101364252993170167769910658335504919957467997743344579739533469488833196080545110870085910182528410588112789389362912381582912210433246237190539537572809509354838395768775557193830666251797959522190198845090518977821241101434886577866972633011716379938615226534195928284819060730585611640868698259673913897000988147791234726461442896176454088764503932276514164692971990709046514864972713464765679978628052405961224931864263782783254319643271198136131497417190733044918759757486304715246732955968422418630399520202791591637143509856750821827557969317013107940980454055890052180864217406964484856559478052553358494839989800082151107974787014798123190341329847453834222671892020967106262770612948243372390019165296964076295226533245617680383483648808221895791514933888309638540229654884883316050421571032397239639512101651186865528585008578281351238654648050170108471852525801601452592073338219235954741599630706961449335490974051922914242027727128732751952876496772481198103931453789780500321723942512114243272709270854993719301923346756867919971009576769522192715021320009975761200498347632275601203483801322294494181612532164168153975952564394658607240889929787331910122830052122655362440195379783504240623126883873279439568166480991460469700857533557748802064915397526299014282261388538251047751679698814217506457666422009865810954547720535154209528603828160473033053640724249161046494816667066066749512994683235554156785457052313419379851014143217922357497898246784673884130820995474391732494472114685434595763095737959535898249753550359248338567060727186374649729991054911912597556266642449140351927115539058613509669179559158718040828026429291860336518882919941569662959107271200570032437608846203299620896528318847763853645924171743242378226870421318420663028703140937364358430195690941446761123398052055149178396014287303301915892592644720848672459870122860155590427935899397366224101917348312504524704287113175484731493328959950699597421611189791409261071799725877163490444193550538291140314895717348967373619598379542462117208430496545801808981622663573525167478902319431205799768654673946260114494858582945549733231186575242763594942865174674307624846542165371374507130979797113048960537724853817384626560931238879221759887098905720540910810157712048996399206106602856928041117921788387382224172371461885147332017767531624333525988098045051101673010930977787297793007325992592791769737384305077780025554555517275853188027055714540945436609969185272801218828406628856079245644095703113375118152520485370901288443120716995931118954268956564428599468473941921741415649696186814519920472864334423276356478677972102401019792765035010596913979589232258057291804043655620268595253109272996085198713985206666191439239711678854546451367537307011258409376811906777808058081999919476314088781939692724061056187083646081523536092291928528395929941379654655677075710232336723460393440771136330610818593048834412809602978659388828441565734414201936831073642296654394521126066866197294200179064373905834226918348082188284340781813694383108753949112000948085957117500294650306121607114422591248032919299800137962039891163644121790857144176566286431675079112126230421843995656865518945673188099026500314769143105105915752119476324875719803443491256503139430073383518250198107299576189241057963378223362152675750705919282849640942364118182166085866756546399006646041844530303829003484879305738358530218572502464086625890383891922479860007866703201383376361364410340290715744346619418526449517132933688962802630902146708165379328400347735696019596676750222245768336395841832300371194628963125833943961150802154446073725190348666363206522841052477356155421752320780077469053932999536359439746567438481383278177826873826660927718171359003018374347519005736136373065740587416273258637955167437967200982002911852413890951086073282554293573328424214015663432138620839166147715461014069471475646126862234210895131934703806651492448302669934009412866421467087299544838584954813315205971736641013351254877098856414983799194182945391669599766510839580452917649811104407478646572837746646069559869551650790059308868439190848043285769817897433118974905331527456909025032035839026297503535006055631669756775107338494377815238617589725705505130023657283214776296565785562379262626051730137192471944016496574448320547123852381481650691641753741437429894171633947159540492873715280851234515050936850843632291723980799203179742041705762366639845243506559468574220194577726681874425550991551193470153416338963021668769291014657783242870577816689257364455781113462659560010857720565654197356691920543589979394018213847539593832608827830887564274531619056304516903831772765404502143131992648881945732818264251400737175885221375118749050355811181380566132609800387028372094484463569491697119915585934371138551865670465445320568267563417099517449108100140855549267166867146866651375724468799322609661736177713874547430054344790026194773477081103237041090468795532679009890062893649975513507257070794893826655720419548555805713429559258048961973850009513467137670440208640650964810667489627601235740066222876171560838674072909959447515887685091112627180643524546563062881775301508248420190873694551565985290134084800003957962492922960724743437011157758873635611741511053551226607866791660535199411613189788531104824350680788830784378314604893886475867488698174637467649934013128774662271442153310551758498343285771210226702248704239774729858072848245256006924842482834679991720814386509821952445491421773392404430142872799109173870097099612652731448725220377752921418717754336065169148245990984030530031878730444854326112811755277450308754862027953601741925143132084612692806730088805327537099256686259767911948636561919160540452270948545793596037565682657220072834913933683877395949147892042431529336341288805527942189967491439493132666750431974332049691397024304494147181874510762192879895292153645077710049101594955035643318587889435855339532737885705421101277819479231412703827621779347441446930095938491440545145476277142936902256963182022293609941834142834796191301655279678583596942355034910246748060271647436829234741020207896474911136304902815634974429791808049481990589405546231359713218589600874753844135838449837788516569700206392413510799454880608467115789784091437928014707727329558318351959024061434860557057891276083028216440396181593475714877852597554681593379632610849782834922503584385986724264691382682021473220262477689413820410028271326532781236799066496535201743650826546220455053436616607357699789486328549434334489408931778992067839549918505320930595552693136619939393376850216835836041022061431945257368003438480082049492374011692549889406854294023319857989231012553220780963097510560634395470669288454288237348884342598165539241094777233187971424281920845419169823232075649693094400973086920172542397263133860231537174859774952636414691564152287337762576344553543338174582381093437630842369423625468551035149822616321064932672917371636673555121487418894735526425254799496539912392836775314000317847383388458689269636030808044538638902803918360714112601292408342469215614111914255232603321177612798273236673221287925850259414032893174920793835668529695013847938988471956841892553598754219630243190234588197958686729496932924066299025934561624689584978489594525882352241038847369461965667582472957127852977006241996708076848259735246952256396506769805580271912729811055082913169268462939196142143321574397081427426886805291078487140649511528706338546205375818479371673207406014251351440276839069645006271286199819273146762277488547252942670389037485016201137212929730712540273986416040464973662260700021665994589646776564432166515918332345603673274640763546928244689049315002147989172584726189126619338298477217973604474855555031238315781263498240227171810486791611305304478867655670526522937558402133335858855911012687574187055471010063017111940705059774193550228376706462604210679238984260485882434546576094367850482467612741318004905422608345338115891520476959108256488249787665146158926659989582837183590447634652341744202152016668241334231059765396715119294202796211491410524661727735988936942293619353201892420838846667303699660149558845929236868849689655479800105452809014784107012318038045009637287246197458884198438922740128062895005163805877225711013735502194591498373777689450850926602433034966227595718602080925195760166376319254405125501252750428715374971202098063424996867567269273906935432678558493642463077477047826475463631577693299824625588510673118709406506115769209200347528568468149915149779550815272444184410878479807670504488277037503274227281808244311833113951551744991964387199869943677412696061365381901917438835694270156571477444209354996125565842157386288784994155449045939809211824130879507330424989483548318573697091999903886862119212479701982819607872996844284699885025078735749572233499587171628286267679530155407894350841735180531190131276291193742534529426443700608495909641090799566428207761789901527270183951527479188408646290811406948750406830527168611101377878204241426729449463962470051721993284842446788382844613149802138591519314431345512294873190574137058001300703038404207124289025599202160661548559760428044895388206542752866622165008091226333554148018591918295238945829230889168113494753067015077600118182111385150025280222397482746189575883432440378962950988123494851317042166954076739553726757912975735641289311537240457761521249807797093327153512553872958697983621060861091287804877547845029291569924928933794364360919570817560462956780942134697472462630177814479348611673562156680118836169781803530915787450856406123531367838368723506938718377816269302106976967227312912906550318914062424666145954930969748530048447622651086912186311234861207466512115095441230339742980072885175529401956352362225602377556527939455486975578030574481381462175775719683172331038558789593797526436229661864030956638796956348758737837987984582597358987327187982264145301949243587312225030970089319558634514869974837824587415535011438087475739161368356987611838813120004594305255215520577503730391347732798656883174004617618861063328026870531327904052420283307256113292892782187275655030944570853950905994115690433081357747629619541630189130651468726458931159326047779041956924156015622625487422691021206234523302238738688347898532803165575094578415278770282234383126680932008025996353395067450569871298038490476673174893169665227572640463361352418552869414874757988146382521231712572332640190330819289472228228712822132573097400476037683094649571360442339972054688422737692774683042421809142410111388154207133344342962465213112339488469217072744192876187455446464067353334058861534299044074666818568844962566531238467265596819105240259268823372687787542849379431450909601694078233122589915483463852234040399602375338079110004262703735312160986143365962323182462917156475198335550766509809742780779494013498375180900948171694102428444559388745386074025101172574390253337053757515793850125318513263941012036776574073118228833635014669160615901370816369173912546220295982239491824226973300129742966474688828637908200454692598698105356625706347578368457626079293304791286088678792610363221268320863178846755419720558327463571538725074703805553048321278818160802401561023856628186555750114973026542120139727215828573217735384175989044131286610459132342872594035390615562284797703306531413381315615207098278543819980150284232917564671953464385706152115092744925033292143466994681124174704743711672467094610855036962468198692422206978448382140501995568356739159103848659565998098200842648737454488880031218752382223031532434574166071673362038870007976429717912501512552737805982900016359346739843096037823687402834583134763459939444806533217560339838082824651243450289919372702265806068671166414636271386579488771979188144839144639032927048284800089500442940275362590411761499382630103938698833986634308654879910160787186615037823987461530763793120222067892112200662834361851450824056666581717185119155212949032043302992786706697277075754958073862095976374543112148613419522504683462724409868094918771092835854272138309021705809874717920256551143058313978239923764116214615425001131171296106467817672548247233543859113124296985437971266887623977007041092874283546397519569986054391123096600486803472145383751686752163334187594996306006989178090974389396059811983733025639964916689825318395153982266113588222282589709242241399177941316079225942453655507927184562372464001607006728541681410146094488813697464032788262444232526878776359637213410658649896774465701031286599948790570930246880370459727750406181643193393086826365965749983601800864486817367507510904605421315718930116553839921453920143863497603643405176684545542496515615188124728695104938059760320162167861864549263099011041809880085709833281293139094418097192073280180255963651441483343910031062080773742173899783253233775715162307147752866213539045386211640370198071045772143276301517640376791944485782215436404188659958037763707643049810337446732963977602876665246814812757692848972268497430488892913185752010719318478397014419853540651196093691208026431701297589395311997445447433830839399486207699082405293252684018487351945861533435634425639817310464725366977887695771643186455552724771462360015585239099794154286620699012118735714069643347837828724743650831916909958421250515076394820759002680072900858020445197915522596425846355214489937185474308302798709419361324942860566658878647456653857206790021010771918419236112503365788313000117444300155028807556943915483654989221170297433251160274810906697004000700421645886521614801941043829993155947078798186830785087798190754547116533051832982633770696072425936833803142627813356023537347006088952325121194910716569945181351315473323309058020637843261178445000749477375677630719924705973888047677778647198314623359003196678016934198866385558496474300483998384706366102238469111544423269098671810142464485173699839854350821754540249736209083265717506645935246959907290833665508521782625122649755532410005385563958968798384796522907934913795195181923655170000195173187091174298658954980057853684805758627350658212056125270750003413868003786963414508558901646915394579840673627019243333328889735303855721207080517163035951614952307591002277410250794615997089771718487973740085639554099703808389567476770104407737591774346623939576837879325968888070995523602855192150209749553478288152062851041530594723569291099635352242732502783833192344920438472749917466188077925322555042317954718352348261973866450542222818324949763454959650143082634182201942324677000167967459986794176286797219660880469989600643603481546784054593911165542757055718324543685620377824534809396316842673561601709834511347550494444503778618202756864601147885790661086847839683429288591292484654022710338933408776879074537193357647204998904538403292630667440802013327269809157320393563215847750260946059259606284556577827913126774802166120452427347299563067033950689124030258027107628821201636163415521117300534506508766400591996847021102234505071892088738568397424210237156736224170536340119990144845601861712577791248187512193059714697652271259640476898153294961400285316706451335015477996800940527170719767116492299508947002049388778798336351720263569175135933476416607109765645840165456401897978776236591459665238638058069159453976245204347921001845402301683527998830813817388655236874500855988742040055054510779783034193261902910433263443017389055407060366525156330595690214114455022498294551828718145570470569398187437342523543345027264499701968988358180323374670227225915442740781404366951370551612157470815299025400537805226718731361067688222267172067836142477376489524969047294545411746971012405093622452813859393521774807440872927235736560755429402677250376463029762554522260714167943504658680686902695580617475512974430504024133084371315048842185379505259912363669941477559158971059558650012533760677017075437962747849097037487338231838462466732194292298718632556965832458959092701524498387615702316520063287008862511349312194636259728722205320199995312535836561439400124742334013129248713465378129301790353333899730714613175222535150058512128950366813488900023466175648723876977988290488798293569037013304322042627482774680431385833977233482995702621517101158337490683297439494079955921885650034621534199213521021786282131691327560607049682960033854212776607172264166457475018828043509223094300297161565902367059366981082538805150310580897636802892358161255580607113221916160892151320739375083348900191835121806294651668935797408624365925575848603724019297447359385773221404169445357827628283611100480329549582738681538040700431535989642122557745719354335245948052494122196110895155928718577683370808434238066296420441811229318433664132527697086880401021707412599627579088494793641716454399839318024009964314325443826406226764725001687461088751677092445424145690646088906120417782304948264441497845633323258955070137923168287506450446060821780116867294402231733869540976188659823260553174572157153488694050165096724863551535907349844739082344739734299761277041572236723153282078795402450215112357510949278871931237188404438363641889499574281382276585492539247983372840548856899034238819822527366794677101427630992845917997858644889529167973626711740181002908009142554692487130008783001489467774676026072467304181831867554768258962197950770786016432268073411143137829175782861585436179807343821380559646854532932929582183670672684195560952200520372377157891089963626771239998557711429776778055127672114318786263499593219426404657016774002717759632484679979502758766517946556369107461446576411960529863881100789979573741093541336046737440033398473880769899169572609032518003452111269193033536626034725469019187725563629871442720278087313925035019811970523051100632519489109070860244369529423583810081130392616184868886312703270883783474638574495112027263596669275708269988338729768052072567135709276513665400908956286394612818381540151449813431311906930083599163703904670298319116778800516333071866114555227708473217661327966009806916594791073402138417408949029063084641564063448202021703636281981386346372122116172572994430888015883866475991600650601416688289555763007451524379047405137592456189745186639581440150838670772334015122269555757018991284677849137297134710376700372671008250131188242768269862339246767157922940223446553822116871339575796778270895261797472602421534575307741215758630116483373895343830503175045186803819027864144742006308244810187021435130742885253817756026301817896674357554304012916136748451454456806684784179878593154043130256118774077508642270912236249930784141891970381947435304310688544685632905368387936884588647281372986077412448993449351026894189517485761613466693675030707753504147625637062494808372194119325158336207637160931607612128619124461203868382496738375559877814675579459757023574882088180382055248737439957422293855636635124163148205398276799359373566201846483184783603269201440128823556186611092296610302841322069887960186165111420380434988231806157583119601761097099086095614668149125738733798889490289112954184657185561091537848066778153747576963869142606787148915901980891674526135449240627079687410794337037319635147705824463409323585230107319947472288157512673902723114161555701828573811669197606731919186393244711798519164937303098071474788537133732111689746513871170349069622003222921900878754580517992893107168666349122707231383260831139252178450826773847339215793165524954943791111691432751670151419344368164950273365030079605250639416267333739052619635586333934704304347042805359126628122454757854919878072097109926827176165564219348623714677150621818313308408026217435414526304492699604320795246535379003060939994125816975202337290419396654422199943083341975984602460922050336911479197025038642009129821952867855990511931432319624731843159025299774254960518357551209861601325355588458516066547894696578744412849902479879438287795695897958705550887382486601694602998932462466073838217891339945380345794681949274087843501205878721280773804750619149917936848835901772760081969225030976276911370458668744158600118528860228519766106732767154053006385862203367774995640307051706167514809042930856708988986846440232497904432153169637858944835251692076286454862300376313796074287299616151568285008866123484931307820750151437693031142614028406898035906692765099400789618466986408277674907648183187111464259407600899397950798982403140457689140322616501555226300653221303323712923469387172149137365125351288114876198860070352261502883985660714091006911982746493653761830377346078289822196131536679097088954138017199287926705084015079489370293578463923429983087114647647053056770133382107385276541318968605173775156750269787433604045973547680883778750002991846355853195161155202159046471702590976485433549390859812171854822034925605954499144813735366295551519568976481874039462032848787154773148077104353219707709230765968718874522429026319190359238397183646928310064090326299931247397795811041711357887433234976330412241158014062752641796959595839532786398163535583807394290300350917607541528392411913363025114881165140764006690767753456763291435601511718110441693044260394700292841819377730401291649094753814236488273459655016633567232474176000141335856436432054395422302822461602739483028925787958664044416780100204997005261613525736767830530791076339912678325384697487576586841434444306167602567039398254009581298739199500812603542526812863168302848380210698493305441228868451585808161996821667505470479973900641582979995820665227607256492853124602352813380441155638807645961213086690324309071334933881570655077377793454455015234410214521650320786772835177598880940255452710256991530848396894694061970733323594142245879638823136159545821796840468410522864423381271132592490040701524846981588755934276077503997037527133926798474871779998922197819638324981646408973207406105574150763819099867189556614036736712694790044805224752170715031247229497746260033098293838989404734395833121013725655928994113779618872795001641998116236653502783880466381575100103041074148285495497013393208656046131385856629144150411668619018802188025070755884130826216186459796055107006903087803620041215683802216878238693013591058671792978169990460318780255380988541518965083918861369854222441826564329088546128125929545029424001997203312560864292735483762756792718154387745369994012310172863843980774915478174719710159567420222196734041397969663631866175357576451657846134526634102257714418159106817473608723574687265528297948046231913973225397156695564190954174775965499616447632335436233019023537975724921689679469742866607533467800117730263213294299146530098264631979381196899983624217756509199852016985267654885692499302022224281844560644991726495289058664697946841625716335604510839731318333575181766752856774505572922783821123569679734477262268323166660395396879890189227003392477268613849331006101212714459816936116886968738502214297200941538692592613316634490105759963503612149320180916378127566204576420128585760720540035615463122077873641172715786267004951465312759379002046352922907571368106116356191426695675199540145646019174040867546309436917992515422030674426637385282432830671750400381020569517672954002484368039678910101378909291509525608221446205399392192596870734642422502115486497105872001797790589836445743761485392958100025722685795092115866598751929086801955748142048957632825329888210998749485841635160644210485681586112060895423564255648221368659450751437084009631668385750945393957431229134491564275184764956372424536845649298644164796327365673423258488831401070760188833876309313199133431174238666402638491401448547742545228693380216994865230841320772256028118741871521489327221725769880857898713991964148896461742960052157497640613453447824597478016471939378000219401544628107435408008774583556126038607090166809468728329790506516091169401875310860545004432973303965276879628704288170745578533772593577730745211552360315411881222644648731767517056352479278863021753954683738659403891693322114109724742065819959875966751240081909516684199390635472972793324480259632439480431285694338393274047832126824453025234963376579210464553657096986938558607261413195158737462460422509815166502576238416900198979595010258317652378963594974508300501339932875237938627331784412944484244043771629810437394108318519046227047815455864845296600564735213990431983369894124697721848723014191212096945916063143113090792416404150996573293110770250072246426775641294619697572336496435454278951135020665381894628679942673227804497300602254059083345648385768399012752680468413513233039627231784609460913875538057127987066810919876793326981082431043658271669596826028253609434859421907182127362774307330135613480108676496272115762317183523557576527139307350710990118905958222467279779865159018826016014799423259955562504448622770921488386953319729586610089925272858909483546673537046634564260265434783127392658885828855918180217691883757965067058648013157484197208303852352463737700846465765684069315481210014916932370825978993626803736092621155086898375514328093244772230003343148120018161554484599761024546080843635393637460251974366579417576328963392319016269252777523703488925503003970758041488397158696506014385452778603233713805634520281512710035855935911667129577085330678336885791524914133751470139222095019739261715589854261074908553695937511246870199733603209943323707036191435838323403792224847354780110703640255263044958905726383230282237567240444470760143365909405170099029175836609153567694065650258652451965911751053973865630049547385226198795524883709336501234007385476000112508920834530001057275360251307600661518342235516586724944279754577626275878560800647318776184952764581199584353561733149023089642409726213520003379140775382227995089239426761068294356099252378529448602661420148390699612307087493186556943687220631956476575920737019428104617522262731071173503355381853533111672382901173821767272663235327719834649943268525824152121128350159993941828913958375813889137643660243030749799896611360108272780845145232713229736021410236306100620805207442432641190269670964425971592154322647058179652773354517588303409927861479532411694452649557026482287808363193885588226270230382307212080518326285471543988415695714819969154022533748448825656407374304460770291150727536162228601974708513658280711169970737002681106915590951402922642020184784595462251253119080235009816932610984124945682868015371225339020503678295229278654222878493321383263034657544977671079098555413454206332549387705382450817978796442495036941291986236578521354768020251260206554426759598247340555251447523984348253650194128314325544690647397567438821734043406811789801323291706573191353183149193235452079076799021567875776150525576466951581619703073230223026255948787820396865685592578867639653298907237500868042273636881099863294305367075589168830001320233580737251644919651357988385298062380081313908544086349689251707005282343099155410413317439418857158557090197397583552637718687926435303932126429195971197854078860355208465241831069511083791510449848428955427280526011811306136769579585077470780833300278799812227749551522748410372797930528198506033029502058803999959853336670827135517119185294456106123970782983883146530445941545724725470365942949641114411027438032125516202424294073016688293091980714915269620454925103169481109984092896480943121980202328574128624700906371039839726863527523681273345230658633980065798329599224133111536267351982213663290382161105386420764524961184996020482893542240017463044036710421491401556613454958352417424120874008620626646915387372619827904759519527405251224818541550490427935755736905404889578432502832205794062399496929614019448565288690725248540964334687301447161810768170516888614970810670740111074728593157953703566332396759529099201738581876756846730265479123015728591087135875956470871196399388312057793328447939405907278881119624735489218444575996198129860066753555626096416276093359290152231106586308952323244792604576598300816159681439994455011909730555848797594776419214648177900286146071432494597859663028197062480300453754946417355124661162281875794981474457026528602343190921541261443373942412138335509118233132546009550599532726581104015476682309233049231908488840574180587162664358077431519982525397736627177377692952139616224648264982972308511045706120102777074443791473659317457231119939374145688638865445955781831710352653698945307371295014815437022543386615106105147756830971722248548077528635456882270412281699513710278024211635190338671050143375860996351807168346332651229489183480567798573553403682654345235202013884174959650809495506917234639768088449071614229701665836731347140226212179459695869044930887745322869717093620238318649968810599549584539111363681077597601488090554196041505697497960420814368709425461068692631811378242082499699839089326785661684642828515853044839593002819918382972541869447233962537669039232305175359163342961128254534938719316662103771476684978073136700069276978998699552624294151280004845623212654369710367841038342378565854848949716526756305134904729281616897129438959136316157752054485522188835845779869606328983653525668448605164908242406235823311288141388425781335839318961637481103512346033567428952213614308541941917593002612055181414364093549150284750721208658599167397522057545810785844584238258982333716347084956166165347746294214151384051414234169460970941275633442091862429035855996921928522464706451167612552340038339184705964112313345769862468039805819346237063044367943380814130798067731127894129060774218246251846775972419759167850046564023426755427896143109680878158836971236192925521446921350611575641804836646955109241704888610711897852993943168268386085699818164350421264839344327847148108759277728517889174467699666861690902672567963505211897501946641104029000675046024290590924052981909102890043682925885165049179740927755915713197657595144589274653701019256801538956272089113992140940170296328639813128329051239707649448771592399711545345548905774569290319030724024286122258388473804917042371823764862717704905001670282768743729933759316898386114900360061936400266474960785607767597902783002758021631086169026709640399364574657200962020614602475831031462418220315465720630166873077659583844216772052418650270383077738503200392896820990894786694497728250239635064561001765732517775518092734062829290065970963604665798830623001527396659184889314154462006492632371032031108651910512088215438150493047885019843532395900672396938434139029582717962760852961214944323308064173511355676958059378511215923762944390896560675616436533337309550098754467704091990832971116850793796929304982256295172908297913505186740137227089438257010401400390821457131413810988775451136232973500729140181162907230980838033196282829571011946325242585588322545043971706884638196307978311317796643497904136099210785797377205698774926496812727156233680209301847403958367549651486484080652579916326800559449697925923105457447413172794294169550708841146792241813953715447564395214142268605066213567165072342119435125413448717655332215456291313828557593404191135941236855545612871542040547826363188303995354854735583614483079566655944266086041775066532440397769945770603371551734106279093733388988141660045155967140524030759316527561895507982401268382849720392330274901145781278845550744969967212634980084396112077403152396952629463882804395950369519780868434428673028303953431828410077074933336830976662413065306762420546155801083125199605772664682932503274921690582158448735334878758412935357161661164882807572557336965805665090051052323896075965743560662927642535962675529928373836139453379211994945754271360876403765034491615141204118342851279699214884580855588562405285179826567790842811492862987660911720060055649243850338911557051390340123065046617309916813901468894242096558924140457953246565629961377151322407382539616523589783628234085536996194753571972147165911425780995332967141402734269444341692548749028482586818676592361664188623795663728510523903708793260557806242142143764015964434034107135914346812085379335058602661152995728994232249035605390998820340713381616188954050035166003971824905624027187020570621350261253340321334428927793630276886874093817900652274524339970455933485012123692400052318577325175546048327422535448770946682465700790147436773046350225302279371055645644028339574970982016630931878298447548413398166038255582065230475652160974575219047809670826662871374012781703566345794941620116726119877541745275241363158427271108017482132852909849685942834454069625500122217496589487184289404227427736568261524269445014591213584513370445264113855922237143572250465066427328095061890469793258353947389954730242344444642021832708072535849951112013011061873964053458363369529420549579466662041036900653645808321056842936840345744355375853556931891864523763832790700676666387420901202430456038222118035826923875835575725626523517622597099788735878027880649693552214967652623654515011755601408532362586497343019555133209778964659085135166848132780872727313858397197323493839311068875364460560016467740386925588836473414477843414461019448764485707269468862394925846339706567310227183249045943748781912617154822495752860236933837527107884615812036266774894577557115903530066966083230665584339846524413255421492755835340958923977251020748326071891963321030727321526031585601161996660783483572588064586204526242194308682078565592448719331348809946942950052492389844351616701869309585152388693623637392749603414102223543689698811278439356225015372649162645816317269486039405719165127927398885017594748664835815289877970394109635066019218830926367714708030823806349389341721943592145529430213792225722447133993312291628677180413818884041878684432511731384337573950452782078876922704601162650375221985613508263135532706077184832339274370108152621625074538515850257516499350603547546877856104343536818863542868225613854340184609425536866089883743491426181996059679641635446615333840820847103324258026218644241567716580587162448167833908605427914347808416431885161327998696618787252075682950841305280943398295120426138703478769694712668797575571088028209917763891873987931646109439544182833157840107541208691362999689823565772213476120952502737255784057638713470007470127673546962009217375341337590768091205139180917006915093751817357132126269333095724721550798042779011774460034417265718048047964900356261989289711984047852100751546087471339869048546151028098140431267045521210206732182044837802827738748471025584300961369371272096754516326299662792654734463703817225850495677457672875120900152945356803223597701167726258944080986902637528460857584233381735804200176846996875028895971827715434707271199264508074212079354171444113562263089987914173297707755581453622299379073430607672152633297021985348390927645833091097589087062626722181653225107087699330334328480883819660719540947573585621827928270978639209972055663950992960198678290344603303178154741283652417451216346163830451797879258293200960181543156848461100735439738822169213403803205717703683913038605609437252216059716319423944500947086855061758904463061323355786421750956143921030913472322800800973797835628446664473186959092438819187079523868419718139677281126322086287963473317288038322134721024960650716026320311829946612335338185733636585838154587737053475551506253534740890758808530049421745496974416304331906364916752893945451668414475450559551499976801546506145800336520803980423895645348355382506777395169941784912414207206598448583951393295708890562070125162849999234349329789972855776773440579030367889132318076012050413082879812448313110262268869436386881651022226538514447280264947078635267094582630169105290935481239923333388780175581292241897237193583721687893416010696077278422827344028753888612396540936366946505445367179881333221481405517934380108791371942209189044341905956451108711741953824329117392949029148669461495351025749873441288577515030770937716254558471019871018098532024587076178909744922472760628887181659070704827425887662551290473822351421154308810293266746723549766564659097076473770959797778895218624827561545142585066347057948353500349256426659424682204980623238968055853275509066762280236102900550927622330104198530957435541645138799936112334366312652265702374782110733811281452571040465607144092059887340446614030259133586981001487842555935790501238552344970817625711386486423860152023134728208389607409242546600732385186457400772975969140773708438914246190083479715738311956732294693889965142173828439870256215023065870221875348050413213874246486019687171451000776026532465920511255755841856133871553620648460453720462239893321519775063334823480614923965910283423609323030126919788456129558856123001564289560834552020391592334705385161059718272147194544531889221420189511909356150471403185170448280917197783060839583385539434656232861870769361755630374227280396600712164524831506664211231261773246926084081811886829384660962345174988382908747497661770944629763717356933661255573767207596255655672328437318710587192803941621779458958224031698725589542880320501629728769875094801870944083788460776506951574006789716121432944333203079220384638429880750711819705034860926250235642828270872613633221373433963385240662362469918985027103713420330441102139291182243366171909500227752275597106343318419149272077899744728430868628131586068963362990254479037426983475641495018029127008380253517561828578447617606687276330163970374268304237848870541161355735804905381889833430269987374525498719737542792019870885194642802807279405856344176395707266130463050727845239638163141716006948038994106668145736081527717331610166428708220608607965323332952258267324086968694316974981766449189044304150302494293747065974082247746771565309471450705338224934596334298764078099574539874620207498052410870920774617798839072773660024977733784456650520046651794605014215455252684792450164470021454933720711065311015659639343408307596305225234507248815520548443955814496620266448597230958558278585375646809457491232900902151319150389689902694477598128094929623172595547979923617169395896960261900680533349233385593429526191153273184860698795372828211054394094799171271527535485438925023265019221959035888374724823254264760304185575197496000606397040035228419551565407483315503061171707827031993575034806040423095334563899461218613273755887514363078260952702764831373297377252085144951325143175720210564522600596348618101086282603628136096672338198461815414905661947255242912671603215708978736270559472060280708377871480893922428970366637242364042104495675422417308994254778844080654524961868338563662140867382714681293571953428839801287735262228405860976840008061803384913999131314699032208368376412196982403754646564623494711868602422113681855286177127969938727494989651050267594067539385147862020197402198882360983851555799269823443193325245638006262730262367414055643748401740532207173502297279096485854558746770649073112486947583489523682474496611992934438946006821669607716714593124907317527472071124537502429500591377298669333763559481677319639315221674797537904267473643922808772718770464050594777856036048991683821316328115524470121397014945045628794047823142747354638416636991114711125382092422246521098429629505794880216598399642253309181755848649259066997300040772590093830674029985658647716807792186848766576662040733589684651623825529830123999532584943618448986043328130352812635869367532405905680124864474931576706640954382976023048808117577019409123143295760812533201341703076720867361586661630340365163248122616219134432070711296324567733668428235344264632721474258557857124962225112880584411989412831138979454179956326762861944608160727581378961518962695445107146427072409499757703258075855245444602220142118263726081204598850776254257709213726049119366922762168410674458447807258186656528088854777898398729030452237155674533798864305105852905506232299446981353943556934240900334184438648318721828545861726849729018545701901745889308030098650140198929873100569999391499663872184254148644826520063166398572275926337740632563389342227916060191961994987205047383863216257784162494058910896612073775086419617828858943123255759820973911636117830238586275580779202419643885533027550853985157633836001890122024901842887701401299161165794684892646135487979982343435622803236662515767196266251648615499182091674239560922877448967165433244529414211196040301627158951228481353620503336134391808721405861242336356872496674236417229982211451377794702507045204622732069753063763019475889704001377788216994509896211923643806773744387569781000581519973337820419650829267532487521451465399478192562756288808465551463396894156685131072112676819020451255378264740028307369321365989936451355091073113350513662886712362904115454080016700849556765055052529839860330781557531815240657877249817195075722112672939949022939850113560153588384077322460530641236010475144691567520502721045507924774614250282007774412822501521363181872054738489803011683816361523841648856457111058222679984173350851685113254775037360097905604659982168935972150531170100153665347103895992803763351179643912060209488006991862093056254744776445106062526380841770176742747412236430428150527732746205010140909938044648368406503572357940034938278619433181853760123238112776062320874379845621911823741102068940227077880542719553612399968198989915794195840943556294765263085479019721992515843572834415457590327164953167332083786148021011520973388863483736263050668552284074418653876440202337890185186574026042387971342294702315073546810541481901047137069433711957253562595020505018280122274234810755621404640600620686067398677908879602634738780073658968252795003154867281077683526470430910395250001814853256563278406030591029726896592257328448924187719549618669277752674767673213091980056145888051722666661075334759165418177186088359436373441207763605191231281780541244327548274775755495079632483454408298722461815207441452519197188520965789992702750009643063460218754346935076717488977701300412018987807753960129969353766626299412880852090256682312275601715492152931977091118571760676792910683613649901136738845793748258899013772768931144622498447586409167491591169563772378044997928408217117980192689107525002478741469262909891426568501038891705981283486868682792894537038882518858840954187461777589212718770325944351770285535382162747337729643925601414260987893311661618191420586659168886247594901477961248425059494065106937023830737574899062929511362876348983715537640881461604256303523023674354497089819712481957576441230760859356750424194637370365601820632336482756139958945894590829359241691764403918198405089426482480999316989916905304066130313699148402223604656440162584235876508817453543352389140531702685403547843989460508256896103741171899125142122216691247181407703725763901208801961813412440732302839471277688076082011527734246358704692779947041938801028966623714310633763546278891283071781028447545651685649684700517614130293213408579808547221095993597276922262700164397095853869981884169458881847405951225604197914250750275670912925149169300184045975758969764190700219796174603946672530618315499448537591114057192986915266633893882397334736551004866140201695703371911920553235901521515719573064645534596586715095251118934728052382692122408485740209809743800095265387427446945392611126093309625459695614167585486214684972035330191750667304000340201271756458153000250478998069867674197349208248885712276020054857079912462729367857998082338424253203953822196546265635891592048016003260260681651966029342260573259401732134689915686571403797880430071729713004346248823860690682815517256351873127452946793428930487835123152630210113996713059493147593829602075446297474392797138873202341773778799444605769715331934175136319164622535769107148178736932141593818790509320275285293118293527428079388141708164766492448413691377103260992311825804875422738761896914529776284705625402309812375578639013255311365198365857071878066968941662689059585022972450961359974747038129230654976892064123755908240423327211439990131474752823640393757908282651176325965548209910233639623287065689372339938925104633461538638145165693022825920590556412172587450517523164557551880052201032992972443012568136379856174010928263490107372519759024248892222135547694203972065580370146646741195973743151352717073735008178366054372216959840781305412760518505130708924428824700390968019437540321684688994314597430627416312508553630179275919450061060674477314464096305130079778871152939837678109377566011863657378516114072856783947479581877375462508675904084321424271097116523114441298796800093404263261515937647531240707708797872587883856944030190891256625903377535031708302597604216647479143617071927570185369287835061211382369519469246988457115904940636626183877325952349817945699492508240676278566445544648054224499838623948060828238327526904780805169706765802871748947609494420080540058491633086296294589778304428871516061271175662602731552003795010243059789425137649391080690717467488532083500680649045033121924482964886113633980165300397132186096248426713988668976794263855708240454455607164412058538237617633716702805282947068025113873558232912783411690571833830331852572284909859000856971183648585696059788978292191566217911872813580993495045093065349872381711637446513052613739995053913607723347527633468038770452096759095856361519640491812358422380801530576118934249638307817412743839439657089936849569112634826055761646777988078381545507693254935759063209811993531532916498341368991234856696686687303012170742105326115064761819111364196178184417637898371425961447279187108587352857564585948116964825151799930277848875448326206191043847485172241214474016713184608017648786586115148925580748718692778171532110324530198713042904389513035610104173105085704155280431476335252804527623567837165997440637981684979834119561803298911106833453492035767593166764997308299657004083665641315636776034912494397720374212196325074460894135564876134351686553996201836006104165199802083334182110861326550799445372821554647815125933769544892146598421342256334628308755010945489076344745632876219785863921683200204813450973526772071469768038104878160438786842775789599576687382105213467495836686192806419509510335795327424928217051010697829059544403309123867642868929077753245022263255479081278569284393798757845039772562854550873782874888718734697164432016111852730348681674512332689274280048123076308125713524874920906732296860215523744712136128533311904959995169191866351008734665112576831723633787844123819652810477214949835842979618251908421902463840492553546218834368449358270533869621109177653751492683052330821817194662221790554023823781670777276862635711147792275248774533887626665566843142031554839908403983003504071713393172307268759285907191283744793170871269950209680736125430017768777859917769053349208783448720728764834884684036938711980163786869281586491251218327205753916390890231967438365039948948194120607185898388312963529401403992766996820967255084404045201072024781172963719273204861723471538598488729196711292588042591426948615595032584123525548034596735483987225006390349164940125512421046118469257434706315906319382308898329410739729383774456303124421715709890589486859450408462157358345474433728735161577826929376155860855052515414940735316484251257262693095805462090825256579955602591815446484447859378595007858515954212007966834984888706535100153433726486078663845197032141157830916093705074413486706049163308848256363850239948037334232382234816064219157814835347724908243301650202608913588346831424429351445626186931163577431701096158200192612750606860619038348574627439671381207011095398579231904169272503496619754337678352356205596456106314505387344269766869481705919282797903631540290700369828202203943921610274406098547176393588193537040276244812598213602042285899688146612391073547965227613010532746967965450612914411024546125985586737361210391653131003482969801223803053519011942097290571104022118144322865055598871057593468760200057007164481038640758986837628391335874370515186531215292033262395861451603262975505232759900691235277340827353585599984408584375702449667517039003190278024414719803547302795912119803586881305413947231371947959552608905819914998569736281260692452921585990710715067379036548034689068189269009436446520629815313533588423268948272781536761617957105610486568620437379083223103546058242286310329929828910060139604414597291423434653715670505773083973792870488681093156518014514669346889873610658709220408216189063241831845204493901066471107612134822257097783669009316315441720572782899998377599636471093727788999521680575786887818284629380819599030866940602908964447197663258148431302767923756931873981255469632888347710017853617531028993001140270745263110546634203359678367710886936847104186493737149764629655547235020281452472819340107698204491310682602318699424574514824440006984067490653768224995632482638192791336108587909021059325219630913588197218436506548704653570117524356005361034372804297573110951045151753108458870792608189159155780473837012620945344168522012180279346060750743674486157647333562503899062380001417826325737712048968638411991197404477284493718521257796507568165032027512569521762784281940621510200558594717070771353054483869590322677335625163961307104237323520574842391520508142611952435051494208718256617278528653643161591578068567659875092448877186305974356057595684138455440496631602832289230703071460382784396189657238156255800828088615680573346054671628902937028462050184119560423562380483282305783399793790542132581573123023888848864468792865997368455052131890954176299032672387569545000695888739524693423517639246872151883137650114758802656850011043982088273663711215983790802876047446011325753864458840826674190918335863978709724750589927989417239072116201167275006842223028338104010986610044112932298494908307193405419341079499426432557617769216537052037972262459711527895845813969891048080053741964885740055862995813609850280193899721647298112560939189343787437490897503587819643041212549011733684268439735226371845559764066049293613428744547027750983064874788308940450704163425721294684724852668922179593639726480745791268930206123824106593137717829280552240418425752801344636128168544361603937528155176558678608337584898136506177691830709621591901231500288859274088216770879465892869960866382738214608403202975667672484363411537629369671818295653275500178049472722247331088634077759244560045562822684429089098176027568024433087781693982499025278157975942844962601703797312362365414072136807049730028250807696766856315285986395615066601021551532203327119275871215532059076817816449987980905327026833341826067875710459298393073583281185777698457798768853760831598637874602352342541766218163439561903822260585325269119392827165538864872813760777031229473709442820398853047278823767260950398077585074846508556247448394055778074903115583810578691521064666351327517452801857551968704290679128105946992763478686786736226136725284009805612329295362811359024349969719139034342964099927993833414524323090058118137192509922653439636854470199478964617651636134463023548225422446854923398864510830008481394621744504618534740247361951080709473795571096022905933953202940836594307596038031189824289388951656658715545295993982056194368851051352804358783285365232291102628053227987367118322710138412514801283983129554710292645774157016213358717180205457626074797145370053264246514059600090144897268593950251883167208170440330524690356031234084468851936378899127840712528254843641804056563355135116619964820176018233043747981989380469416981728864001508641563949281891356892462774500806669368402750284988727854486183506260071851239870023722398864692927499991672453360234851231920967910349010802310013448568376172261167475103177101861436854673135195690317279521250282850580108227545755524544843888354406052366187282925474808491331177125826350135674129529871224676011786946085060455760665116675696655945314823923997648021272328304269273599397938441749602002626636372998022301428097037551504857705355400231009548651749044145155456898754698758668725195944528837631901938891454406623805328787053115902338007614820417868383582842577835413181851090032266165426337646213316319876464815853169432054631506269494482835609861584425426584644092549045181646810512507591537372093209812989364905548540780636527867442663148397033420310890709906264460935956131883164046487462925637080163480549545567866792033302678936880129417403351878129511131644753676315699961531732398481135241020394903323386990114707147968773601239660684045287118766316583045716856098298957826512591472213562080343326343074523039235638748485371984309463042593788102640252068499124405439862329451407999376208964470442984708943167258641762654190648688828811876655943878856813150096161325339879171550297162717099862340406221942307594788987493925126692970956456685993069874055809901097369687645612434736884752844033907067809698199750205810477668958283969838730607256915761432656829539141271371870221467436694176013105109109413575424957908776173521926053867084077005391009558186793720960425862653510259034927626202126677329866975912431229981527316485700670167928544644323146269493996449563232050239786285879008907792875189309020565393996169286295631681730263115835608706653614609137224262868834181034394865577784935955925753296136242891703128821830496203776304919595681429506932942977620910410221473387958740072873849450904293788199968624417149057807151609599037086735784863548413292411760156975169426549135038202686229514878543382920043830819565394343020750762642444421126046554474813330279486313532114039845133264256568549011330336656048149766126490021189009462490834424747488058154384907788739049985109221098090813907205530522593289594100007249584410274730035489545294733522318901182813756202603251345665936062855569228548968325793128856492388067385735683430172611774764615416865142355546931516991520075814396397990747926899007746777271413929081107054939589184644056386310206664067591175510077917225677404741144426081630614349551630930480863111451072236862541742336975794620297528986569055019417444367697407795195700588857309569300334473291077259910267974787238421813283538189462080884732309549115350348192189390118021371919466004395561088504210872095429058475146134681653839996206532060118515427966718156532831439509854121447386762663519223311978358043644124255542534241968108552934718582124589382144838106673496746716833132846744478619185603943761909671923627479755435717670068006758316591277277797995292343974033016219575815640246310298966713050006200765942181413245014064084472963245171949518735508617513458997350475013196694689405652676503667423149264203445665186403333600360917830852996810840065995103493444225113732387826090043531688363315755024292357813503702814235690555802694174299361795460062236433024790498293456118788887471977874210950845645277436219930680386511119621093972527233371037627348763076341737980556941100098812343597985772185391798494268377847835016772093143482597105926085904266688007707639751290345608495814567611255226189821377065851791096618169066225716005210250017709646754312146617295308946344166199253162800739410063072894064497205507520744938756388536341834759274248373252026622654352364077263814360374586687874142016093676492053108466004584801878186335583775902371996413786850203273443406598923037729003473762228482337406894459685125741925731486969003836866807327433006387239933232954600397749662377151373522895319828978593977480670212637317171181223193530985782139935269495201655321267245898565211454582775241461268540064961687912509848540509307484361409554391679429056673104526744260973900152261809604760236582922385846519489302413362987374010010440847397489809234418249517579404391548830167577424440931882538353742148805976739335166155919436479527631126589665820915082502502137641244770729126675889677077235548891831292910521289268360756135506469967280716051808477472976003713426891327797600779103258374878675173736012359139345561857623101086253922356004560846790304625219501997217022532888441166957283732152491625480041277857497456234818164924587252039253976981474388609000956230344481076887895056940623742417599200136369983299325038464613351835823530791426165158900766840112431797498836179116032782384308767304115478726429535964285218297506114544876381885997098080646026791512692539679153171816158540989509761506677534829163777628496430474449540714421842122365010616386067895526641381273342798649233309898184979932943284225007885581214929196274543244343860061989379335878701039767020222082679722769319416563655542887797379856817811439309508548862291838428442960076310516686067304216687330505645731325618377066693003802441769791189749014058113868357044906104582267529192449543582522938916827909804183007178757674734626154426798830846488281133001300909685579322638216428577072396460301011660955973123870344728838663880795568446754169435301155556579936495496910132385946257374004388751561208220658398122361583411394351063947289583794993338004857959248924939755114391464601645972142153576238122955485971269448885605490301703119765810746066305804139531221242922275565545000284328511686856499426392165661850873109486398420614715554073537937326990653852543341676291720886311873711634075143303165503761088518579873180194640607968377873682636573510705852386863114986554926156071691517192875937175809698152098442239111219629187027365726434375649004460258362566415063007465838523714200337864993481808315334480350876391911451483628554352481872887610667400899384793928336686494813812988323737985693860426570645700683248076595910055877088425397993563553381788412013539811932461177438526036281935590716767044242596894636454024495029152643370284763180517498898368274582595728340715710743700701234873993688926741276877470942942443709634076967499356634733637645596762796387460176394533074174293625623852508448692650883707801697417786593112982093149998177454787164585054243931432071870879778925910325528090263888742546419792923745971993600856188299393288967782549094001799967018712898207084140650930618347890964862318089058843927838305723309108404588368249347889288095894233786071738092018984543226885898358480887379183329938401297853236770139158208991400662564313849288862238797513547926020917551488339238012218429830221037172441079501608813838544795477443244815467466561597052683101748932017597694251534083250061802614584455975997388722995459182000121034081612717571635251081954091439491104808027693912210372438341641345713418900820470737532860418545855385467495446371609471890822249335056544311786945826356815033646818889096796509296235236899446349413369719882761611046554540897654470720767189658774770004418751986081864142630894729315881983887503222275057562668847865759108580534259167553652733654674091054176264775678150285218494899128039213557160305165132327449202860884270729447048581090107297651983258021409996371653128132405207382299400261757281922466221718802580767321336032703696016701921722113744163257162978589148730682692849036237669203726927666039630947761999952823021206027843235555686261110381642763426063334923844782408088444180315829447498956053313670523357766208616074459345033581135878067073040400749020327793974932205369040219153797730256264835336214507550451974390812610833798016860441213955078155267077911132252821956159810408122075558018057545678659394552686977558076610777966388495650123257281641501969928300489936508843602453205956125020722234550575277962807940354389870534854847939447685058553130794471309804215757130318926748320341992562526486156476922859628690473196756354977137625459847868007483556546867977127359489655046522398703755530780204585325473291316120377042801507554709475113413920031086941013847805987495970579473607903427806473647072462178711771923404602203197937017252853718669629936800834883968123452885495960533973112478016856736842916526618998741873449649431275978485304283332403326993413854825900649820704157233443079764925061535656922003913269208176513698036655421066280305052524108727507602596154145098514971124552133342927013461645035398873513983633931982806229073003757909580913733833993875143075155144687749886046095207307769658996210687473209313647845164554328626477210213665580582049206304403169424899288232914084757113330064276716678644304016121054568393172866702972812801905542713169916722372018957732196195072289924323724729565361640332590010202361711558954861807889198716116642819057440941057326681030317372605542144821876623812713658046389905133511901814934538250595843857520151663201559449015202787893789279416834361336219372536737808473670885386172742222011764287303385895743637314483816350648705192753741699929730200981789819965257930448424382285913526884797488746801109013156418008813722767279964000851862800967731912825079892680824783330618024888405143536171514810964592081055362190090029940093577596432032908694833982190708800412453684697328931626289033694673518326609636745099678152961232459019055616726986457144606071795010474002942631752236132746136572152025660939429441637936696964434669707469081527572590137053959229726241599049925277843756044476283661423400065110662716281197376396385276136935459417601424519806896868832985516559078433833849237693163205258164002256641224577663772314639628480974723107841425133899053020954154332831482676589763674163089569441328950897680535118405536865115157406384115178563598136907066564221667279898971702070999624312021183760471927615263143882408468139671476379677430624344996942756772894995626773024906340507819771927716861662245446707815593552111462136409984082190287815981768657898030636758989719023056554345439475539798353175816849175145855667852463048572828627238342989130706905113962279938225140848747872314610540799856403812365037714795440805911455645965871865486268433950987720139579211499873596628532097536608896093780136291319330308787887709025722303904888144685126242236556372033021111084318703704132289167777031028662623617408733383670060640359806912413645111919587211798440567515143664440577916762547069890289549741273153301285218369018188990142581319161073342848541188669691556677666983555400505937817689226100350605829045324582022859772090988720684242518585445904535619598999359299192574382549559267314688736546792889687574431159540938352442477187473104201639866137151566721470703974436240714583337150063985163768026899220720430971523487111738404739800593384489726353986197116477130207326898857924128336044954956526699847500966112335962614047660223901125310419322085480657150948604828093731245305488820416561774105828117975670281007491754362928586043536370582990110156102746032454562555307536871501041623166648560991314303055463016079165992447385568148698437382396637638012762851336270938166594930189323634070086165785592879296193117624556044512933053389947310781010211789381231717183134762290289779117647302417552005444424888756457664671282729068083954958882564532047675343441324801022281653413663901345360025606673442267040075505923478202302129388447484881106298507630345370630096358607516025007967679091512078265625147298763518807708212952697126333186704049880443419000061514455881957225739131826768144620143309098268550746954406054580416746714773803362877677859885547714959065369642506181405630479319797976893595321412612635483147474766493176218348692496122751229580039356573824508570373621637301045972406233785307767251956265372890692995517579581542514109950460253630483049153110315562460232716784635855250180212651933166006571419214635714918356930182983240646535443138143712718188755522374665400970950565916822104364810366479270606772488257702510663716820348184279826359242724150231244680022636664546136984932690264201104307406064272221729732595646876724502275556784182737853974661163773205532682197723827128996506192327663478321613062960721971636398921162556637001059470538385611119478300289126477329627014571868846176666337497118560527921401424257821733319877415496500822207571336987846793456056834448268759205255469434019031104542913162851465792788997429983142390251995208475279657010771651663439491906351672275059971863434156321205977040426317261942818718255477353110812556871557026198850157347396334790733904411302345022883974163746811466148126326495771640730042518506050009590182386614797250049280856992340619510379790517991069890293449800917973437985289108654437449895424972115117979899151946295604113807389008353628775802106845291447963122271752173320117049981049458564722188127886224872757451033420226021577846156829229700101952563817385502028896466498396350443465910348336026410303333322581207607300370508155430438226481659931409340338153232569535682601565341105345485777467858528358433153604641024284429808136878574855074156318525507423327393715758700145033007988698634614252207384532139249067642797088629750906097047226667459572951875581480984206480725894984185743937718108796092457320669841171341890805504953712051666544981793765230917349946028617582033792511355164184696202360860324482371879576821066860047856374668333025028701965082328246090401294181905292787801880539707751933046834694224177283265956770786339474439167751699698425634914215814596944413801059533897739502185484186769132622319433642660241452559311001928955898730526582075381487318075197641805064431865748025810322912483764492307716140981458178956980425272257131191047279708157857353186074376350471178809098011419128627975356729449619623255048077279904779666954558952143247172066510408954102678385451633707764129910562843856206067699141930124023477953183154974092527656375686077343104712793930108689399064853209009011757998003062455003545700564692980039129766779102779399521795420760736828362787799035782363289852127901884576944718545622529267738000432770779437502892823621161592111976467978317624591461048117334701535124524665264234372017605074040546879074227983263288952418248292899797844411684868946337970796724392373092853515059633026806531851424291521726689189250831417451815278323150581719630378500374692983321607978210987095528643320660382190064055642964899602991090678559242780168060212241801036253688961196942999844380402919004444238223533918138235100047376297431525904191192830008650585803385188766056969939260481032434665446048015839641485903172032548454405719937199316930511626632615046303794467108503110742025059170216008588819120474492353011968221073334440397261782816335354184399589113379401114373157844353758922984541459404529770173879159638794373104880336019753231178760456356536409692256740429199461478562227103570396881573212875965220226421614451490528364189337435751743410646089820361704258011410028547774758932161560015603297976066199932067448739143335653072970521326828187326404267210218335524617660753170637674648811522406109124703504754187736821610765845228235131078369776440482407431361184016492639138108060416993254404103639893155551915277739079285193761448771752880948447530157020907511949909133745364762626317952880169247477532023289266813063602826467605273699109675421124786301677258577855523717593103524717097277356158114322070555362918982141951752823597824095818426013616522849702544874944479753229040720726475271884858948020912140261821765755327952791647533320947714002522313115788552649141161242850491445841165990143182272137729715981856740281362956164289867171269497558897651305645506282189314942622510049116194455376081403842303825446166723299120781455991148515656551386921079927849760549853319960424479791907807288605005563998805997406455360892628947477296158530212478253991294611194468865196200678806937832344050175995155336012983691559370127156382700565001569151184755075229576423891105165047349873243928011159053216467334161939989355548702207849199022025884892401586341376532323388615477425836584323792604481569945733168389817169133110298850044865780135256145293700926643221190222797901793276828258373845978747925436790174101246409700908084331894802405534246631950402683755362685815960594483951184798214604059753456636188849024456308398085896113392038489101258654356560266118342714990679499555309354404953746130329193198996050166233622006048313935625334541202073698075215618543274858697179989583505077731817565465373569046583204152833040914486537184947703933463637910072459650431396428979480241499622010590457734516214302256458275979082413283636911300714933024220209735032062120707576791874908340423685921611394771282503491404672148553660907623101484705281665961272634499635774433476684803110926616653304769404732569017003763281862014624589942995111810968265718561566903136465644772608118265195200111430835809539516078892449357564931963930558210531439282083698339615808432309700912589737050441638472110497309533356271795231227273175555034984323180862686254223392530786677108887264741153722108842169865688633338450197621288366536248945118893340886977125403901701594924456079631562678210566250523224696332468539429300234134207293499051107616152418064905462121501038040668721962564330316820149582650177742529230591033484753328129302346067621336942092424017840423728363857871338209677416069071768910626334942502062911540044919237406645998231614686074579816730496576289841161099662275960833815304502096689006454236533611733113787022614036736122379892496968433295612007558869868589576513951295024096942264026503466364684100737015176748657063916284180380191820000660923335389676564347778909837548235984266316621481594636856077548455835629194524598218764830505193886560845447425723456163477248203811974601585224215190883014165834391088884237403430691727029706585323081589947683404992791618521361208756418077847370258217129825651588560214498221497420525896500031320825864090307888050193911708866651129743775913746424984622504277065226153865273073950947835747976638110645539193491364767617870520953516571018173527132324716179383375418053536902856597466159290830789988861373237663827540670427722704740640125172635219137190032346247036458178211937378861579074858525419420041117799505715121268291755154755543760479042609635742912054236548535049693801626857628492360901307494577703790457504699132625612813537513907868132927360335234022841794687296965528719969407886258896306045106294308429028959224029893121901485504347953807108958154608000791461378058637856789370080188120422546292039544244793857142969379816538118186048781187272024767298287845750512883451544990655692231537697282365776267668063023401289614310067401507523854891732587798052466857317050456437509052234563627349116432938258859850767119569769187430227994989615149035850834914791055667704364995100871648096736340324658097505792485694566416675739095663115244298158696007348313062578741490794814109745983110129267924212276859063491806762766802099020499303785296333569144588037380635212688173641009266461983410979466432835379202257834238272075783422636509640007063971428466988655465839583346384425547636666282992085899022690746357832821301951758092523659934303911750390126472426304227844777693356820351213394002811884186683423923548921324696229770465797163196443244928345094644008970306233424156507864739192407149309405723158719794347761310969719199229127403004386933062030900791796867661785910510683472583384125779316543743524467986036983623945513011040992455698642072226938568406297803719447013264337577894659807788969764481626369113727080347469025690006097490664024638463471525800541203229245462042601985873881736640999933783357395118198191457042845729357693657984289465089399846390324588752876292109171467282720825762210504679664177055882836081963274040977511729429813943762694080223523551773384009391441141684992867780686469646916506276646315082170189955158668671958618005239040002810690824311727785091718119527959444394335641672424455301230526756333180227135457033080038279355755041349271138910677980996597154463821721236649535191970134864289490097888633493748894249336197868135403674335119375616249405255865508315003360312935510723131897737204385223407329883769224918571992198063927665030579920494760688998191561635719110861405066408177437443582870471758214510809841294793760212178759476467368820794487731827010736245661145598915358501581537207291604149373851950741260290029322351919857605830590350527301939170001901268034862908362682920894059249081944000932715506893925897362943289708181261161998515436594946047591844879878389858004491785819025779021250175457411081156768454912632698181095221086128889021148439345198955629537258811893565838582309148485027251408001861309513408691411753935391678455945787234031096127432305265332339261143310055779859929252991210588661518246126771864669201322761969377265278201706581534523250136341907878600494852795421454850996543597574929697490590775011747119593487369244230959663887944236099268512989733335295859271224759453535264634839552664258655857361063209001988068244517896065524493328398030845843119064562301307841471637680818894627193299085194374429372896683024161697034545387803675499414421921207531403675675896554037255055022886900259937553239626134780110147169585719951315105508720296748911684277238036471071376601340385690619503359107343917620552355279630013479618901760700636204814158430946107175237984927388226692181991474239307967282746614699544579304322300155573481932420882193366801112272359251413706338812923180750456231870302852759914995129676692574863654638098170502220877723232360616958380387656728323626137083143488835011846248487980374474902876085265590100157569390961061874666125034820521049574723146877963840827902029879545722278027018295729930258431719194353659792980835445578262450312169271361562290741337422719102494178058421481548313571559249537985299680531249760191646971873090694757988571973949384862871600638078567006866122415913210741802896402728190263161562026470451186375846142925408997055789515613391743466164399484916503846808951904228579587126398291046168027475659166030000484523850627268266440803435368082528595976158395469317630743103162008311125245188076880067737762330844048099633225972337396683513562724588334300415522505966596595080688129419048746678399890877149853618550894994953551047209012304596606163677442107164342527347005581107126222502056569281350375308063611478577750462219850317536597012535740836254135741016454589766599988441639098381062737428834312438895438280902721220807848475903563268657730729930071601643032135070038330923685419605474102221585554058972269635891666940890501624290869279440768451534785591442935713658210998947066752095287346920927566485560434650368977154568048801850131485046847393867790317885560320771320068756502693731464757445536727327132290436939602102570312709895696014855603960989412851505202405526167867301722579296093674422244746514570361323559773357379180228111723284468790502204019190387951496367574401171655863558906227122050949560057134840636304602832004095428482739400715602914810159033145353654287208598895166207150916840619750280756067555641871564307387244973794695380361578658695771094480052710872888049490576828995586194122814395967009790275592220918111855350398013404624357090619636752342622618630327127168327658342938473995342411047886489307601250094074431524836839527150313230660167450624330699691434630026501103796044450571043237916823053976701048212798876904940013830688675149996985926479282575979170913296229686739968301870373072395161365717176147353020231895170784247562665803013811083234611931933470359983934378280151121610785881025121266967633505920985551646843307927505087913501306635852709982417807591263943536806129756195475981174337480136666455006894076904723877139941721647748957834279983086993639265609044393601647527408380102423808918402381382774421666022584597260670990109255996945355224333363680204739881893296910946590917759982353373331773419298714607724982365993869334638758982445073649306234190727967877818387484394819005756650858062973559006821455763000609283951154544923492797437912131675384201272389678204536690464017803695454873037368766372976509199167782138487721540567541805371637676507419166244796955385183937324077727414442730239342250125671214335144459904559084358042765278357558484558194843392441098276334877995179634552985682324884874533180001205885364467458048321311665768353996304764829164986102308786243960679349625675222639107633082618108396308217743075425300671508704081767120405003075341316599965752715279896512034909100286728381896572860534583123475135556633908877653777069171615672268825573544723462282882451950685973054023693361276520859975015443504895644844501511803959298615237904969983903437200510355538982215573554186519742576829030490997642308602872979343889477281131054841183121395883380290722082580279477236688642656562957768582539728095273240147139556504231840831195714334595274561707445834300115426030698058035438022346937458139388897095149437151630700952938254121209692805861732253371356361557624988051853532309066766366067605072698778270236446274469300452398052022184875336539677038619754652472732103041544050701386042927970098140826562786664820530284481533126215876003794170490413965176950937049038629314104947037969618187065056217548103555811788584548745740108712557958206573741096196216290417176517912158071047728535651100677920151805402926348790494611482141554600640065119972836234879045018097384150677740451416395034416639799722574375247247997448447952006049801449369634042071459018074743966565526689661150017780869788984845047683346733589541491007857178101867649621071577408662351922594881731760081389890821634762875442841383112521099776657790797655755841636529237210567725850928488396785231672517965359568989076064386483400134813459480386731864168543312540626849214397935243168915584905444917525641998407828471883973448193538112031405863339135542921123064057776059570257079369397667694149879623587747220474476366198747139683308433718363462934853029449328743397437617571202299677425410407697107865903722255274010623910828870362218471549976410306239018539528879213397270493165374095220088100006786626673267631275240976839810464166446282771491575945164192647033869116916928844640888359389532457185969912721291872239365783011395680775065219676409360920586309070379391431743235414366577166521448176434910217963634701437698446543929406251648236127279363366941268117875966829184129517872725507824365965611402801200594891999526175615471817187349733158706790001368493735998996576153272109314644690917434011808461301368729119579687755874609586796283883547637463831472158886882189006558297211148308386606606623964184279355179067168547869167113988243803667757659260445878213440990214847692460194758009316006761293266604575866602804436743476284222620328993132534278586859727179360695907169030755427965046360021750400521699675728736170934490376713641028165631583049208608822150274852179838831952329231612822971891627433184419978460730072335631049847438438409081550621724092868380003914996007111204739226260629787723902295266342796692536269357347566684989580327465146569812997076739345240392668105289718253991672768218142291733900264780519034905821467768937525601535368112597581940668267620335195453372281982294808523395163031643695842109909515242742365486442849531504414492479670588907748041874472573283617887638320290519978170590733239284557657099048222741216125747435065656141959325579780243345786344180661771810074917560740767291860050957208159573661257810464531935549218161645498477787193098385896862051716683611265492712005225941901788262931554062590543397301952371362387761073275301372011452878946343481420314869546976951979318793163711443374337468387913466549272982363944152694231635527145117448902305744081430053764842753509647337623819837570109261551895268649948396261040632531238403722928132775741670938469703766706692615718068361983358040864283147064907030467283253978814503191448012707156703750603856531936777323649318963475245661195624087173255087410941364124699441182267352400138193766400349494997793315045033614620247373348445929815441977944358032093317258702966879215171566311585764454817224171090463719174731160839053529914955825921581734247755640098081386396673125470502190655483960482571506598353783434212904526254286845687520231006676797756118712150339371277371425329023250295833867012371626752743056742256799839004412294556266972161896319397483881858230143063007323847095390192177921278647933918417487460064112394353523162042882823797849490096511854747833123131302704410911263050072690723806927801962584179338127024201272105220080375355903014387919979495724172468083212741932284115488401497794559983181207723719295174290345488844384607074036301360500796201093348573354941765264410573408433351787902002843581194573701442751638918237475914589213349069351797331883033195551995860812200824563845910903662345815451092340955201879550922531175291681767964846615096656665705358423187437521787119533590707758623381069836662838937749547652417619635628429902400987211854344023410729391891488028797796512090265287219653916403861438279354406012679274188731170113384140720007986039784884778178143570199297573781517086869414252309096296860234942769410275386136520251252034200515827742401363598033315949582516564685446609127765061613022968820343633646217247577012648501753048582512076118053988176800288731561555083742160190408114211360625162038645522946851488248731281329565636654994558132361174405090556618991676893812036751050066618339882280154662046832938194436799119831058627628498901388460586721647751863601518898707803228194116675816128589621996701277378749476307670918362583008535408045582213414333716700842663960794746168783674822567955586405366357915048989552412850309301595761003045194908866184222355332909191948343668769726182005518754571084407536184772298520498846939947572248237623697544416877631547948252413773918939565399485676161456996089874766246790728068533810933332398929431000239744593428623031584571358606915327283578207932287310561501480752135210433171161827380261238617949238691706136468789517553681587995081303138745455881938223009697612621070380837623663100614501872840366849605924581956551153769174970123231617205694932746400649254310671387541264247951320381042149120486649917165318939565278544698773972293364624173019297367935111747295737747521772392225109377484558204938919866353018465577395787644308324132889474024776295786331584812590379397941445036397664385271975116499583888077617807053791798041788980079270398799294510473897513080408147570879073981847912698693874103172511568720633345418574900369840587796857458421937540367563328049777904345656738936567143391554202368360253496853374844122315841529450134697112496736863068263597100319884985714310315278562625269808597862297167185974571816821320082996878574847671464651955518735307019737146697502981801501127406764766088962437147798051232780888611617292143573144705011453650947260853791952979424688552089306522932264868745341456296176891228482287762531404943843303466108531872330867485604026371401716155458168026383699535386007591460608924414858316499413832648919304375499755831563631354844085275228687116745197092255021053906757923908852960270867493338130636524027755738738833421520987330981702546105198447072062697605399698775815150230598976735381967487668383742320013383728090734946174207380380301876216317326773849756050352629949894608427034759159304342965577361479171386389388035817258127832867663861271822021795257300430661381990749952612549808048418207790264284431564727230242275669881403597569971604086594303119321885096951012125687113650845327664206816000737679102657067039088051065874414431491624431532051888570924773242135633813137735882975798623434437591186752483672817671411734764343357890958766030544118743784343572651278419035611947378346638900025766699951285280734103193022304341334664222017338835251593694888698885987321660498943435591407134641641799597123373426648424158120237900311011248112758154581536586746478604218831856771590082526126282596057955965029149325553721827344881436990938173576670319484402308508622956156038832008069943494246277945445366293526606929581343240853254222026303385261897913426779921810713434648073571084066406379754554086902043579756841073172083655825988000853783136701901818508135190347531185820490259296652705759627433769721265084006661838857812797934898014315261844360362951837249343434472798219230681719409891106313693695019701977504254471195520215313308191302689663155141069240076891899681301978024642101259570624740803411220918143360467624143787851275387186811377590401432228665309941586271375430891158649812338750391561273481958340321083479520212144218096622158968480290128235911151803946707258311650910261075667445141807545337469006290908707297977441990974971338771186301393650357686671139887302953544008710889099344265447555692762095316412237082572025002428291520601540012433298116426609907436767530993061371612667758302428408560217626112017527942267658578976633483273338075471702734174742478254652687702164534924804130271861633285665548993850937020524200718106485241926368982770262694541735667525013555346015276521590533899029546442053911089332175095025964680603700649873027484328276264746575342852655276740166309787429011419225262283351692251419229846889931847825602761975393005303374572356642965288174821300780028147694611268087345483608231201902591674043142355921433093174405424906851455350501358335695768927172156226473093393769512004851496847525697106244528020476380109686615002227466786861389050595580311472890911654543291604928649462057452947520805552405267556673530148607361660839816487213936811394437329925576954664017201386258240187054184433265153702580477495408522935020243611656108593037110302456875852711208217441327065823969061916589315879906917183700675283444868637706564745761281348683167010277726038152877606973655916741851242486147772178680277969680704082851524485805345181802660007086028587224600761244333314987393837479650637902488534164257866515596642273719190362600256801411957180873538575397834492744256866230039783531192092390305301679555764487787427475197431239080834764344587790500730463914942534260295728539097051175728462957651044413613359422688047175947620724122694651624108237856534190531496598091504665269089628761339738967019718529608364802084521010975400136103125996209706642323098359557657686544304081740691430719006643494630673595145894907280104835974770029295345382351005996078901119637413919666879475028755367689567856867698217024565948779731772450429777944255632230064562496785612094930391696337166616522154920080308616125680582489392050580715590311565308406933692051873803470658371916697984418632269082546228334709774446697510233359707428911826962353858555141813536507007015720655596364361792983205655169497046501930362797897133075704027101892407129337650744535229080078613865327803134283095917730180784048715897802449079141922130688686449585646734036912418376220418645216845520258694365867952279163944591585510903337147027645430705289443631256291538618731166235587420450166692812800288644090267867692855076385017987046826150638225182250629974730760434877721324930677325200415039394808122330997106093775291849896296162764936605737080748494598920182454495623811681508747339711764402109486863849551608890193492739440231499684531996183809101010689470704539160525449131072599890561728621123149142152370488383029222998042554873661278967584536161135245466767496035597544338899456712983626704415705024789503533204375120335701042862063766022590889471885114338671185686541831774968305593058936459641845015054515249044403394475614209319842314596338891875679309230965730485706461742364320919606045405075747995930702585785727464551711441490325057809459208278463802133338954491271457451835033889799387702836546497067593137069703899958537775477992577060777889635512500697716961380845107177596986295790955527625823994448214304408845610460949183379284959031304929238385212889258199530616251965980357146350063433506210497124262386372518712191811530237367642703958341304343043612677196548044900516556371070326059870820396499958656395836980456149040326933502537607664053079773538268599413556331133471642587042068400980216585344522317965144300220155080491973324477937307412802733597628994326583002785517574485783385344594577871573968105108245038305054096863620457713473142933041360269068622862453080621007383830190643635287493345096650458740791765436438796856728637219094148993334086122863378742294961352655009397113280098077734587982137597427267317505457070562572856054443583257826456281691715782187571199061566864147730681830666348240339289906600835853513589182845233639965560907958039310584282044574987639123613287440340800734673112437627630409950123906037805437163572066623134949356034449076686658092556875434771287545034296561312209762619374462860766668278472962351030517522578706066195927550823984747023296804189553758558222002222532040151051383625519418861495278654737188980314211209036946531114451237034046558191484133370966086598555728508768027943286111628230618297846068302347336176722358719506986247544274416362411857700956346211632241885904367137249734434905403987899013458604154071714598990768297879906156770840164937372290970034449023733733957277249439615734619508999285181713628252404203243184805223928708626432434208522524855015756602100679419350434691708644392958108298552968145142039812492130061370935797630257772787070230233619300835488955621093239655856225830612238328778706943757512807915994607099983199425683856590848885297297854932864295808049202065450389147059016540870068240605259792004627606608498773111774037130609340411671200014612605413281113128852365581667358799353697356917709612837983593753295286338193565431243533939795069843808248878834440320726163862900678164042377290885079339348785896061168088121887153315231198309990421648994047062454461367755314885133525262603322976212734145564254519857907911088820154323961440995027276185470657059602516817140255549770056889214640546363665964634179910184264471386872446634882705353475365870627958191324503136957561092410478592813485176106075660346799937676394209605522606318459518311490722888216023047550639787102319581230679179075757463928760071593264426656282398737483020032678138164766156177889603495420977336736740084266406425938429282933890874560502496944273755430433367782935954438133021869787376947047355256942381982576691960623121809441114846207825946672317296101919329700708086761304401956901669204624885485368705713088457719368203758525648955307715374687841025331581625968244028009492035296552620887461034969897542644194424252407408768777988288582728044763567226666875228840983555020739985033935871282452969856705253280508368353364682759296589916773235343061022184479162982440543065808349843628961119643816085477082026100598218093754648438388538693820213175718598603884123211849925806554087067553288710891028074491815193406942985872098148423837584571376184309289293462061091697873913748552854886099308848907583233153325927941273801665857244756860781280356258767454740261981121603080809126047472840340399062178401746091886398027570646188473386138585267679151651999819127205718812679997451723259929896003820413476939197938642069457240726609954819430345015485146793985437347742817778031967149338014514339400954760037071535903124577358729741365326497850505921422420011537860754544064783182222935113139484379331404109786576766992584352436962324680729129251174367474843257392133085758208151764278688857371691526087535427840813547632396754479397180479952640561223531666094665603004957620788930110853892547433667988571512899966159566296415948059807317787226909561886525868156381528280815291619596434266572025765460710993492639140958909605580292756706657005472255478953058850449320145551088839801062926936999635592984137631084470530903166088447679124248994701661907210848832633778522815903064919383239239087210178827964564682094755281749409302032136428128606329226820232244436205246576138385282569030253134040066887019322943495133144810966503068623639225923069985271652201573100166683993644453077762522395173365397606396661626422802922056668877465729043408964854636811894023198162324340125650167715544733357861961222152631060209154908850515560147321253111405495440545034184605878223380876612412827602494737218444575981822302640551034983800191625462459108478336037169182924979522355823733024116407252487945797955292772999626672686988915191815949678853923209193826511581498752809409627155396255087205554073032499307990470866411924103923647491429873005373687557642066888024901545890179029168861476322910117155078916478721449862513368086069423661152155452238866830768155433667692545701339676888322841908193078717719877788368675558703730465054795765839533483165922914292695604665477548360908293112288980598508503383597048255094381035478060125822032280064689921837958078569051800148525153810051027776234395713871065222918497196015915463183531818285872977308924743132400942970076689799285665250520045159207029359373377453598690081282688399842636437751947300267440147059139959934545736198242982576331770702802768776408654507107267938330728207782528687038090642239440574676545796859968158221157156533117939174296269478787635780431214217606933840215350019714897696235851167314446119326885362518028954378973867317378321390811793686194768535696240599522190273258566121361846924772792809285606225633110640733757961365571329703462792855419846259099572115622646920658612230001819328300911171945778070035516446448686383883648202260926138489372391572887974061352284426585504703429486747746173129405029868857954043336405610753239824071304008836705581793521793239926071613303383907527772066859198491786107845042698778475783259481219136268415344808877986998414509783436269625866964516434131143749214400827132090324151014192441124870344533901584371886990068598775574656307670002671970886128560378688189323908235034817568106132197849159129043860805058790260088529873374951764359709285669419711951313226325870007595404929314516723858962565627781532597761452211557722054659727155402828189825070382067364894445753950197457130338542941374634120940770395501710806206523723450530748891110916284853287701714477280860559917336407559106031363349873983454522065369435745685772723876579910917469390326587468089172817563402210399074515627668365723553161216937944094408776098176213876107336960746588826838003526429772445292797972291295453514061151319023431179161964076431105255535747789657956915148876712543947982832847152986094601899522590864141834606360651553925970561964637612400327583969179472367440850461102912349194982167719495957082843426684325452768803290741026256301986842903488392201809240392009083751047728508819029630690276195507574497791674793546893443097339897588576693987448927236210893910263896694146113243655626343743826739400082984274377367075977467204582884449184373605914325031345590624549377616557210378649404228495649089790721157003783019998853869041250377732595405152212837294561910958263791932900496058565373212736663850208303410012617144261428425214676110723899493848950733030413534427381577660868511998147371534222472523703387324277255007645128856838411258466421400766606777123163952629731503088467414984283446934147052100408915479090439599143278564030390034130508726055387598798215238849656974850211678293284968738861112242502210062317736999547052399784687678359780011870515212568480823068566973523639933874286748482601801366029046847659627912415279850113047750605980351387793801256005518283805789118202352773617629363963585328197233780244431233767777533102699373474548418707212326037492362017506501934084029286269187310087082874904989875297671420294180183463563149777229566329694011878928084753553154632961734112127969003575668451413076258353729771255697794304617318056759903090074695169244733269958135637322410553572094621659246980160015965132531560942756740356863680253741173732022390556546356871766809163094022783921502588004700541654064222292761552229373202794590091009909330790763488138957889464030799949579133360314841939344047356493534991511658289181498793525495318951895854265066291754263617819984303571155695917633683848838765989345759561440742993024358848534994507801136309527825762547458415237397394942925473765384757834611025547705637293924087248444416636477062695147036423960605276855455168482703593023614092002163232667851921084153000075714850272260090541993777530076947475104749172638727115244272279351847831351336312583905044021966859770450298806256692208246041337294907975533448602980816777934743732303751738787440998242762704373868480649360596335819077941200689150659646972760244180350463867204993421286132228888472298595934801753746852706644957250105613893216260062539546394976490469384708311229382354755605655024430782819573011115751914893700422017144797076850816109597620251968898683834909452389556939093357845944426056822634032437741289807132554862993320294239412853451457036866976405759377268289996580652222136833955172918949405681538714838106046964910910247819117374657801762308008656980990836922256662772585602719208168165108408706479168114474039143211187955043858141435054129480844791671166974127022113578316600416749756529526583357022907163942699750006533351694115539145093269206677832763699032770592559476636952312095652609080394849678945207591327150048200921086506667333939516228651302959313689607058238337494749279218172103516045679673236021512526982107448467826774089756318139339210442895551780465178924689736980066473173699938845820544216498102861953352423533253231204942622611143783276584698436105443510754129056909321293139208013017827332915000514438213417190416621971425604712227028875688237298196387803850679384845114031008631781571215143967486750844987220225269252211789433997491182975556773091259872801391740850128799146038100771520918187777401290309751961339428547547851944986034239425318298084035472135692940762557813993772655393595537425408628967407855004972728118010967077858753534607676892610568227696867180368198004318460884292066607657173401956676901344725945971623560884320716907147741088253044167894793332856640622357667915057161291595313088838558223096762305887685467529225674236990117221591458958925142260181205471167654763049143861740642877233052523162811896804365760902663707465855031718898738068461384953886807556378519997425799749717802794895240939202406095574626272240698666152983051572806957531284320392796645725477421694752300768266480330890604700350738748030818215407096744219650852745797940957017599137445108594233641150920997697802558778649306987943491775826543621356746847832986115027109427881432897042653912340602985996533660188347948629777316826911377590867643767919731354500403378575321310432759902200794700373375339600343896662212239343935658238829310193199896134424683159188314647761707141962569772103636238891048915547011682050851202499916187258537400004725175941234742089338223374031139823356047347457101656964083207470996208000936539138687813326824211122694851943201405180273910100658482216798048218851549588954070604098149140655147402580992213293358804120983687688100908329087646752862418220656980631104756314895256280340341388627863962302895065695667440107865967944930327302384108205721878232244269883967281487382797095837369065885718858361680896744726588247659534637332760913419726225061944908414151664222731524775574348864167260863799984974240948129478674138938041683433115223939621044273175996482883705439429283548117531303750422572338668665425603691754639453892927678972294762375605209940381140072606148623441781639614546837970534365229601959926455356469572619293132553757756577599975376979767160847092870025061257815755106714085809686957251483138333211391374061691466600252223684279315059818267912957091822394160931939351585557508167225250905934549792297385223148355950248515472614345420377019571479057520170260201806726077748932078807133252264234860288246042615199056460308348322911891304574946575003095956685004270489457406861234989713834538659371231120258917176164681223362668076342683890317966901787632600733428908511465731920038644920521892147412239436861460357051628396960218907573134813130533272990348479960069696829902363266490134531258318919369498497603847438594354033149376850730675049619715360719118071262191699808851919927082286041781304381631228265491912910895084024028674253275446977167346610525499428421461303553869016359650604733165140390257044868167762288202906170333234483765924566985778506443669244559231465399272430793317107786731118453188810316998233080496640490632364460695875619310836621485394880022018263705338161560637440179463559203066286073281779364553736062150825799989904031488573749492397654952166102670710048995320558892268241725074724253332239608330839526984284366266563367431043709293341829689814330287217985281127751824202053709468989061956675064581967235316080849831678952864589723688547072781912295268533624472458397617168191459161458581356716046858855366275290500738211390326219200229358606398859298467517899818977767580733503721698342408835075935785026673097191717915309398373093874314929933155961502285289736984921365947293741375879592296782583469568917392446318907008426965150585155159863185139951295157606073065333344381116088988460844451455117069864852393268696510555095921337192084583758463459626590061072129085533345223308901955743656008295463868008718430013024712888402391337668414957425151159392015290648760594534425836338307837357863311183440734955651254248880855547748732837031063429232798596814405363248696717044028646655701847888802448403706650234237195330061964811460405817850800294438036950569476772613745508570282709586253771602285148849188936662774684041452320946211747737096377978837462141318846620647458295292669769210227938604344392763038904365126272194250797264788439068320717591050482843201536525071775453392485526042960173204869445253252961663193494046311014389015903981807901023400402557126126901616989957226819490924912640363176407614781401535922847615827577071486737356810487712675804008200045654351515018605120794644663224665349433276841948583820894174482427111789328131636730710477448254594077533049738711515659710974952550680256422377280445999862576978283017161555188510547217649682614209010034350942714856291048624466650734416564513966113933706440888642147794637008783575021173096971186053052870213013084989684342196698177838699279535116182415957081367883477986896069714085881755786950058807218226139520086478503425252648948484774598499152224150547381166936684169567313721296762877269616478080806538679890923362017245400118574851073552248765090009756868265417464720128889980508816600965493341936170513642085703465946252602784177461123022239601017044580116389308486980435250192741959389450019976563830181034930667224499949724681022632493074595646825073559104917222640755129651773302925046067396561106622210495044100325731483899588186090230309427497604351653007922649700365570030543887472465879546033760590171490187877717442815632232289211752845475072420808237200022910703925460268482292329551613558913828685010599784204859024224947440068552791843216229280715706760092467632934176315138837045734059873945281923305709912808706981211170315855067677985373934004479842480585484357829939147373104892919444591149980828838848528343899303923180213034909895851591779863418859440327424756011951264303292136451801354198995117445790786683652585289521458991174260462020959942600475027389421584583259256269257468855682078039488933921105134384594139611088720669789810108168735220188269621128486958884309092739589860943166458609552724823778612891686569439876620027744256936171119434401791839208846038558265574654098542845167884570650067672657669853771418012390013064849132762279667438636377248027929772650048608594100756902238370630612381215122539183821205350953558744342564099013403920158657299329845021855725904861021757643604249983843111982475213096828326205988568694755331999930989075495119937466317740899788017747099056343983010657461138618011936322994777891854143729237520405488275302882803971685764620537878208637169165102294571293556150391606762812198588639388715924645247825576842890345504423309180407579202254475537703250160019783128374367993738534479847380732758515327766928213141489890197146929686022089363644431307618147646297791751673621728919123656182623189186006803499599352695571309135761637553059696460689705496447393778143604678290330329232397789039356583589451868520661812228350572742553124380239720128856421328328684425207800695559075722978895398833403937479597997099699566004816041132731847940913485353670873583979928994625328329539111055579622099254350382101180821186980912083263574321108872741379145653733152774918566318512805287144986883550173830585617873285589623431485550312200145917318554682962695266984348517333760036182196715381383166288369364959676692108567088912174718508069272989615672678097163754923208784058189914372680085549818926832606125731774586170976114560124919696402335951548555655993725798239819789977925947341153342035659086638347978546777707075980092256629503504853508129096441115247694450861964287941169147865929103131310307586997674430958431749182765165842351634500094923048189180633546807797287589092520979999539174714099715618806583912141704727579487082177529202680173110733690248295603249676439197369276991063328627325608625776410794024443191254328266139562672929168417429260654268262273156438511798491597928986890493482546259181969722826394181937289945224531947229912140918139580501315739727106064155302819653816777882607196886257845093516857320944810901381996870914958883405469235637603978934333936005816804588709737769326744909255942329104333106113381832595872789938420357578047271846430803067564258862324402872083124899681989873624905514387124230254720412860899255731864353210443498684395689151195898899187074142110313681552769652557429156210335484281648431313767400688554720037179882038507326606775136131598307538527731598716789962674144510095910830621365605799251613672168956993734799864436764571038287284264501882538593052224455446090789468968136061676276000959144895114471297973218695597449716012909433018361221923391710755257430830214650086390215137610040074124002671540349677567056282401924251375551890460117528872311380011817869051373434256843768561138471556668509469709442512834224164167328917367959203246801005821256487537742795075276552673023897062475352159899113914274000683605362689697760756337135832861671076491411250817409347450312578041377997245238394412179823167338231859491568407526131998335326409645608745855617063673564208352016538885893293367766625388619217784643609790848326618723484036200032782270489013430001546096588438658908247937169486517365187895724080858491241051833790503267167279692186187877863093515238948197276080044670579242765915265790045022625507645102506266919908947123591645352827664441259188536650146051521605029297506017938744659799502325063635856727813202058258520487975906756252013651845952337633033954588013870024583536523659030565465258436310263060568753962724454100093453585914134751334879016582802349229598791591533478943945181334024132096106500408255233716708459610513050844471944473035325479619500984788398205283324483932875607914266030099988154451753106333510840283097337523018659272316532119416025013484578680393052081167665592851185400018948197091963304988506242327678217298178503069064211349737891184674365168010593880134256133254736914026526009045272098364185486146740560048065516939738797390509291354876126846345966076200123427127418842642578307398030203777368612832281035427730587194125287959300399214091321840468537474734593567259551634060900785777521072796531641997892425538680608130331055402982089848533741921228416806624435210674892672451311852366329674471906853312074977517566610288123477730979965919729453099341231256355568396050364421474852119941717483203816313984845333330211725064367879258504085706907045716413000332134477067809978238356852845622327378019280615442444598862639883364049982413863620938150040308374168495669060841570882010993215516333192460410755261154164891990847327549608629620313109149208496526013665743899344392721203084161708696501545273632632671283270211897904947562308713101610089752607198443975155235663095714465103346547663876636457119171250861630632772030722959998219880812494853488737435156247250184022748580363794834357519647870035386307759635536424737380606461182821398795902840335702357351108282404317589462179089365444817756996025382124807850661136471089490039927950239598060462875124498816512413998991106083849886715676900836757553980763934660443424081920957064687677180614722540149338566262272850331172896905725948797965242869563362156879375731386405544622112843713369390690505380266970968389408651284530968247954826850001767015809340264033245097977612107709808701341761110725269088570609437993851986074497839553469931689124568648332839996733864391459992299795292938550499987534986990459749550726928361468918242179035290440397851008135503284740855277245734007498709454999365991922244613477690929747374700662066296636662014439536840237914955907692934278034915474698612649966646115991375709400021567217580140389924256728009867452262632016096874509116254642646322671883672025685844822829514663338833997997352127510776973381818996019174102417316021845391816405121806078048997713616236906279200524256033151991409794486594122475828763807884330257864348869572569288868397663278152982171306225471077590362447631781018008871166414452296848700629685241383505384402552152603189103421673690019534150854279727525440338927738775761499679934659865803428307213582802669170936327439329920734741934630542893374836429140855527472896687891905654736483004104495419658713600108251303374753697293828239177565076260862508553402139144591717426883916675769715656676493020691746711598584102758461485503387790724434722079457931881020505780682819667805583525174323014669668597102126664007993364045222095559852408371918633300849590969338473424133194364835004788313566466990833366398221925141655456782382682955754913343582698477433606389205656861726178087230223394735819733951063131934880321846031642010118570611868974075428895118278887180686361990049038194050109347094084481072679791029242701575684170528843660741533983140747071282932507148577344472403303831563143228418764035466276201615752844341906001943087003254781847728733744686377014023126256132948731527586983676601755112384999342580073840018171539252963888188871145207744519834244939666245717320600825032782598732208260755879242893152890630503689458123547332416481085726146901775380188194346534784558006057547472557111968193581082296385593936065471875489281264984773276915272821408469268942353049793872181991279816606075563471993549486244124616501290040595578190671476057429605682157900114174961603832423825971592981661745774368350622416238988599924654793754178993854763797741713810287139417105459493779532524374797517056777819863673033769708480979827538336139150434418455345946879337909458565405336577255879583402760590989674869184577450111525654425777244291406152073839953180798177103847568429489731840063314626827625706573689424881971920428191839498077513436501856659021742782381730465061404595731674083613298298602111423240272905135890802705195442306071743196278209076984441068720408994189570880503374489823665741250258056534759597509480168604389535782529553108675662816941315116073709151996558870237927995353629641160049938694093259183639005416380114317442493265033407130408217047428603127534245432912237349979376197807912546742493257246846692674807474920671885015723994504675422481059469285080656708411053633871914124224144065735095722037961407738442267826766506343447221389000196471723335494495369181286832803315312241838322343646947929259117966046132156393489517619574126961356952467494662064299546228575657567823849572313663328953305788170458447389861893435329185105958916746717415659812777376303567448844800125592827875393661701354700397372903156085834385571194719597337335466115009649237963619624749351228442493073739136431468537716731683434654958883947461998428023762004029782750418281264861568785723630427951635095028273421994816513131309424372046530089334161586397931464425185939513548454852283790560492362965228526063460044891273565875327313798006960022179740442161417683896212383319747847606532392001681335275621572018981408162921004873077060629948143573645702457228018778696843460011280986926374910499546491273933794997851059627360040552597058240613974481491308612392124279097874978657815575639441046321531279606092282955445382742532754709077560193272756976944012347245580794803115015756175491219275213765425886071180715280437415986844184892563012842842930528806799802819652301086673634937228393929850554764626954635239412206693465359568807439657791343042849367921775938323833265392470744233482313045282889110656162245455759530134854129756305634809067441309123892531573555881358489549976288259783271246320466543284392270436488236877978688052782770715387324313990166030984198574231787006578232970280874873829675678282686289761474714272280353226329602316905740350652487260630183661071018620509553892557890811445016209474331008098420528105788903068433568427389303339274369628521478009512477708427964847941266627087125292326070197264831828373897934399441584038785895716835987523408394614503322729799284277187741448956700741832568933710031396086916666431989564929023745105287660008581756548574935692804101647383290169144691277524207203016195320873577718530591226824067995922217429869253373712919508655535559734393697687444101913635183693193814603630568795442662250825524990137980490433106774218228407992000254623646938804881849549570962909333162465118454320215124626603963142976072086691476059475530236534376622102083095050675039671563749304030787249303678382305435030669311683758001738518972259422000484520121733099074971048803804170166481372988523833364608014780640489610062391141200682870341184898583754551330890503403129605311200237423607585876394454133160343547311537117673630290612633579675693218812382499842835878902848832945321938980960096307989220270294837832695387871879897298407588692240050043465252633225683910674368004348117461702192665124496980212196994765294526929115079698356308390303919516760599612553608308607150902439363710969629346679350996334388083243864384236872508527184608038370241046846656647371267571791104907218307580254363469952782261967474416822879064853288601792895208592865162880212913217494433112343337456943218502350121176371472890279254271072936847164110817524240243766595620746212858935853749656463065119117544878432266388912051332391213124304597773793854738819679267722009602346997257590816423614823517496057294424093789899634146078866256716204285766383428065794007964117982938454637844718020616941618257503381417755090382209128494774758237521829581131570123626327002793723397468146819634278467578005891225812625565148928721218493957284004506189094069327203425330700924698251697278068836363335740715579119157062764387110448240834884946558313809624606466901831535797491432976748174722208331565216619563403360285620708793172462329541998601831618581936286725817647994507581077652295726821216919261882493144150695201200895173903625241606894551883234392012450833063248634204161438488756836099698837136978836551459548158471878046251086445319531707053816523936613571825581642004153324151336493677957536905444956021436799809954725578106418381610418441648011179527894640213986958993157101590989272060199913051618777504780510866557563271183005287643224856692957173449184210353948753110552498621857611580734679900276430104324079088246565699965923740334864991328550739906738770884046159444436533741951691072938653133727075981190485723011093134527741649461631975112533193668154265985121690970927445217800114129781467977031885368735824244590726883023625455447587895830178564151418985577106796480385263323297149598172480070582321923908020279140457409287669441702353671068183387367184167805148432894418202136693735219030923843798836772926132101371101991416611117986001148627323835296492740764736115306096211253153125283791261279816298391166469916249479106606666517313418370089729037948556042914765093462997604229436723200852627165422449441402732513575511752319401874106040275559400952373929629719944155239047464080151076683513766577411567354382185488669040481406654461579291405516497213639077733185490504868451328473185302385643668726873549577671336327139111397596029852416716839076779384008830305891856833933734345538081873906719496051714317564904930048483294555943495510440727937068830779222976279676792760299894273309964032442446559229513534671513302703470927574843036672938720898571924164510176093423674682892951351578847153524381237514053501773400931479156550192801781160743294423299791281095214242683179915148748460804935490616052814376447418227760294695522414016576856741537485872150596741258343202513849864651388632171094594144453344039811932098579926180996320874242305181729793427417510731171143904979844105175330105202208270986739900986448311664508080495720448244937038408651617582488107752106438089348959245107522516775545894298191802442340007007869992291753400822337277205131107579525446868137963312311431035429809675357117114381483087314926823704617775333110738694721030685980441601703458239844331121211593911744232418458140142325787121101219114880562057794935050415405025854961570201272433892006349571528292534318390360947569863726191724137765584977911430518685889101403187574978842922487377288841964549190989715472431844466357142194098739246842947063030585791822811656104740349918899767766425682695456190470039927251993823089925783913001048460284358403485613300750885972469417195246641077844879276910284792811645638796572911807012508934764009630464308862667747315996590838238748647216980913266775015958270400950333560426261735168850141221578966080477107104345294764913462942440080325437399727939357646711687987166456502816090739488241266833061544926243285188377384148618309267918382585504726126932371198915155362329761966235122061661555015874736973684989574248215847354428803959421126633507632446131789439163494085167878175923987750004680403597067273168304352383847540966512376601857053511370981022436313080801775163358676348571318688524445842335926071888184265179635527802679028642271066177266818779249441527900244775722597823447063013534372485945276669780803618944476558720688013763645383174328193418774462890353209487116568014260520132342279108517225818828984186134658183645654913188953866420326569631142994871787861175916741246612985966252072038226318729078538770425930681787095600495175534053646134040214803871114139794942303632930557812441505042483217553789082780329504510245594764026394521749707224739972539532406619212373526721483274620047487669803391249264522044619309856481516555454270893270705910535395312094334573670650378397426893631645133610957299968828085371634211462446401213261305527020319403725522614060762940903008484992707567278319729245144869080096326793167139496616849776058629207806546205974460319734514218763608651300426010286058565354716207288133122035977400298625178673423969623680429411089343618131580130935892395124585276404579051009277372775850549332010844564064296106065695778060657700669071625946014554707276090873365636343750204994238339675957766183320925317097606742575074985456914079834471245328565545373520662024371332854543012159904492179155270738360822707348991057641007868169166307961428648846931058814714898668772651237032862985679743591260162226901228670170287123241349108583871403357628714884471293797617876235784859808989727032438434000843643195746665533642623921615805264041745359587157233624082261963057723931423491651235021937960977944768388085749625452392029933140492577181083809664667335019154175607191427243679919456576172255543040254160253532431712868548347212392220384928104015066597416756910948982260945632221983207640551306175999253596030533682434366843455135872848728280221463664662861263858679227537893339144572013546923418509009436895426914483970655769831906260628349642887725742308131012198251068794451550970088002984528087940372869624763338890989615626406039083801887476842208737911808710691131087358967413306783883887192547916209266190675733104710316797454046359843190282448102672348978831372574296990855002361481507128862350036548601209202675548717047024381226608549647308460779385036980478990076524892861762259233140627838549703730784538856273214296123991383471292386127453867197812276587122449744664752188791160532996717944009724220478272721538596732531352871730798271799185665107881251395175667349444063759779305138748338034418467870626283713038733382239041037516787469732229517986099770115928374267011950082224264434866040237813324413922214481710168174310275415085678163665593240327901943867770660313279112447005529990835227399955945636262024891210379651600898790629881572267376300739768134622774033285195200159713620278154817356717131447198451690990249841649059073309919808312605297767260334918193365161509150706690736027710786994234289473926381684973101006512316835113232185423083992548877132235503806703995581921330508194547995179582603005598071914509824631808939512990056633550605028830722460856662944686813411146803852957425242168123795175929569021081914379068151328692829582893495274671030088590043511240399535881526293673449602666069101771510130546368893707349776818512565128953913142177256505861977931874586037036581978547912347849429143824564922602136535552950264496784150708101917876293702027886838957313054567862479321692512481283246424826373006281613391738756178337891346105441526047327746148951658256751601483371911156258819896513226263345553599047508760047190617332747601806888633574932411875508010618820203931511302233053094190495175385913222555467616635151270065201418353275380665265335307641144513180477719871293270662444270451924128122925945520494158668225591236450486012415586384793005945251091688438053994513932474792257942411353093756699485421075797667537209995995607832967291206528997033873726342850582927456541053384928084368185853808085321294052852835163613820681279621665243179599050839098930959621946634003211751770428695917182047937687685688133886901125963692151179295528881234604071907220942390640807139439598805756709150334476020319065524020427004188029657326020541372766625367830619127927610872695071011733067118353243918827703559578527220831789358625691173604013310893634334934604143167693832484460790110106071280045222849995981826562302458367645296914541002004342110604302609113241231847550839764687239490869872344902067014927674114183364289743311288527707343984778801844434123665034195429530519667215579268383746033706167121298565418285088368525501898760189458557723152792701392731246402032052792626672984367121951656382629594507122216122582680181816077969685772150709470883114521578879619321758836993925728724635667937420862098490825833933505230503412815071481151991794541946419559588995275880585562172742601970391008062560391324045209447104773347211357519151968077438636593492547447432551143872200682017488207039299429519018943343842165352411869001354605562864848412856395431916980174357502333346143980925943083602473137451277795394875352718985105886769671513546950112389055154759438733698920728172355393874227692652390624527075865056074487612282109578310288538320396786752592445760398965737850809613182127511035555164806968234251365852138472419018087682435817196355286716991517720985675509684701747505466742657674203668187216841856325372923211901667097012172308547993738680752698060997149414717253696731163137159128003525220554243429237106112881064583515817125379971035016727843621314703183500194517032656301566546601240455907069753247438116926882607728782159210165087878071700700034805067599698194625284291114354538903441592198898824512373741149503326894506151805749976341397933649232113364571914840126663964671390429770177151137342295577892668546162739964017755663345216592325373324315145270688130537859766717888371263683017581874735532456969285356375596899282588191394862995912934312190678883476326798578419441302282922679542224211123780687342850612028032011998624576422960078307206379348451890073149042892355810644417698774719453123510603067764989316073631676535878288967603021620160498842269202719038528166949449994813068464774613777006595672144979438214093143809003051637472439015369562060101967367898383186522989317523339896090483204571385518161465604586204700781061676966629116386256776681917919141165141744351674444831110684583465038186179103746562561413337320707911403346710327213398353761521894857047861512327738039020742412660160512240003985194520809982843410470358847693205093666007186842863958908324753414272569805260333170159020681774930236187655035281739305727453818416801791848150917050866678191079939826622954820403094962102728812811207081090111795201033101096120971477591685149031276797794885278313375282116350683537199458865372779286728078887773323530306350406615784432460780940078224680564527152127802273046791303304880385180479912890717684992469634931753489363548665409614987261774026840190605617905355847533034752810133995442950044046156404209997631917634044396527163920822295548155418241787595358633995178502780734310301633293894195623158090496168094056319243746392791042191258455479358646533405207980924735872073576857180045852559714055899665772808472414995461382446681450359837972783786142735109847750279996789803855602760745608671549626772505439525974102657142498664487992675592406305039934236743841470883760835414587472195027369329667468018195535095957525895805007078229172148812501935782416989059260526006659954941063165355885699977100686978916880398134866220614858462466767033264891210150830405819814629722571557795178030238772694327630866823683518925186896373800622326007668198873435030728220276058532680753442808422213162539226276398594969912136162833597620115363089274335815524875327455243505028746012257291744438108559448841467926670523047027163432370195103666175786760821856217917971239273962442516364965082452014516067811122302222107628411337945243899431318355206747842600350887998129155468363682832611142728956454980253190859181271005641379222764584215267355451359226654212386997640002901794725819038127240614938467473622609366415406892204988614265221475369201496213541507803306905208168327647983400942038333341352639116310388967719334498986926611805896247389669649847329266883962218361927967297974127247852595382284051319835788836927556013840968899050106761484467028479054548143143630001969155711840958792285638460774024904852087898520161512337255689581928140188070973523443202844643605582965478867689413705629706230240089837806249926149852602381546067584617582983295294836391760241694709078291382810627399877002152427017630402223055097526364430841554732046307985258655981375603577521043885669900470378489928531572253868507955395864434575580567659517848160409137108606488423665645671099445808106468452192877269644233158141241440055323024009475760893527608173309099466215471901582591510008264448730753986507539783100224892334912839327034354419520433010593401436239799284494077094267181433711710425609576663716615831536613950832321374195671425564378457132064818144968658929202082312227721049868393919627305721340528375465805988047569737482839092969066088431604792668805468732574298309256458026415805985039140109545181424718469029752635018245687368363885459426429693483505138842177571313953465398234145624640042973463003854309721300244318445445209930572991897939252301572039442145980364341340614780401745862916620578554624667189758209523631820106684539931135949074726000720413605215646079275118078057151519012407081053869122953113463952003901261331501792714134315703868212808060306784908997676200307315641580042724836320118614426762412294366526285070225308907147746685590310149762383960246549612626035784557186657015237251355755603814876957437557536987809345648871021290972541959180370215646171010760041910345651837729706156996057840551632291638280389433655557418494850367164805880884032906722664983132950331893453695822036795296558742154035988071555145788865748966427874848591461634647203223895636542221165121101823977938122936732705189293293416111807642911560119096740360688810582192700087449479704601006354562883567758761144462079242151055010973427710762935710086668122329560187438450074697876330594763678562612903185040767974663929274908850582963659942737484682350625139334795630547349596842755714096671827641634076278416478353854570237596271374807683081682212449534739629459390646271604166562832920201015926917863387534153158457724635139624856962307494750143622354793068705270553730134761723524047026714491946913938214816563063142459038241172027818540460314989159683112067174945154809442397620606830855038641024722699645009299635163836643370262683722524906120155693203728005736286955870899953717723309682722269340246300409136735461547565643078668870815679583220964934421593029912572366143818373819191868975020134815388844941433888548535543269879401375538977543533330190707443352801898330454595735613878281592879151597615191362242964627211333378447799361598406840547197370457365832838722846184998793928745884939406397354694890008597469964255575966094612565926445015332687626926399832563795651700418406648149870406968023965454404075908082521975693834130710970311448806355076606444209262524686345701830117907055125293814039520112702380941835690197904468858280767057854153149090880570154481171140189386319157592680175255468624236952961454351261357007744359100194388632643588235105530409544821532266082738500036592975020851259642552613180956415050832571258404792466537242170666979917712391303493597761953259745537615618189129256811881548727126005362814731771256679969036207270767572319599501573391019002858153906582926256319199645493053898073887132111272315964278895555900758563324950332193918317141424423433851386576167025594053188903042563350978912318073527641905253146154842951821481748486570128971182032053976542395388402172942880238498317798280049313405332947451512012264109131104809347008519345531348352639086337415999939150252667201587939708731950296849013192424629772116477683103037145622470762700620881386211165066765282829202756283630397879755263092520888173367444168034520263198629197996592092623149079333002148513810852525035035420732655332638770273045000078794448597243318570140457831597482085892277408324184248597813514698200975469735478387067484809199040386397305777133895848218876424489443284968428742333721476808258441294721093398026404900905035758180141046839819679737490037712811534937903177897579632124547060980370387875696405880028620087639477659659154275374051623251893370567276997448720365487410388589755729899830142022165741571673450325768136999394511455852849791326566667871443781991639194354419587078385774245694031404839409982941778210675851363372368784263899692705688514858814132531134880678547194529751054111193634308504608087985806347578910648640753560840262927640291503744516602055031299488872683716419866155470155545786718027236632774172471757690420347389124713086724555459836441805207490430109491001580104153196896577460717820501536159924211534958040078546134654671901204843009879356127518300420601874806507416993522986558421070547591657627842529294481502665088189340737268390891777409108023419409179135450240057778392051708385330104289494585434269312095424133926018669447428742095001161213046042552905359575899817874584037540226915326021413845714561329459873051781918279444706186979263742223938389045345381070534392174186672109874452102455742486920336696620346356770709455483302205909851100183898410328486928984113299152559021143478606278820579162937839948021884250964496223539002617629322606133731500278330016564180219220027676796531488247307455346185460998088853217651868783446399678617277840115570954516093417273933575403957073819849267199900218582457102030214863908488872096421501860330981422067688053093256731024213537548315896184326908020460344314732450359156566643757076641568786568917241408393588082367444916393631551522441047180075067054116565010680345140333434091675880426288724054047473757460399461183549047733068073188623517573043672682743964816342767309911139548017909862963433206136033233450074219318704345785804127078907029201478210368648365773910389021045933898755908461842258677325840725601678161011909433617402509161461391265453493332897218794323620891560536664084779402649619336719719149022212312997189268075692708546898365111141774255859398179993140694867728000896237411765892546617141848106641417588046956217252652049886255120437994756308184166358796918607403266311667212730144810591058793960777639764806214704504250764119559062317055949336627577128321385319118505124258129824355294760819891300753465796543017426854455375009132156706061968641355764898082552100624368955393328270367236277318744665206862535696693319265019965512532012240653162885965060769968851594862658137744320965349236577453493657493993923112680474904829101836291328626846350388132165009341285016929483887061210974143506081536213131671544340939463067516250923030753940803065466823608018853620779494956046571991571288431652751959636493043717176135604146682704201038694076295319355991022816269217677337201495707684423858570930909013026208304222596584227644815879213247756046684808048670901241394409112547736774389376039584611964866837150627518918208472452679555950867280195527381003411926198756855154368106467340187355834965045150063827690962831510839581242175659479542698151067533982490370434205947137133078521858952246876322929445983987055075953048967393088396704954923730176510181569517387863134149312352298010809805349668871007718391592762660155162480268126543158956030605840037373687471431193174166127406559402943224106985374726770605837753893214670779853406014127089230152650049542960150892515371051326661380245029091915157630075897351240415291887854572440191439465566026511363574725970236572092887720712270542144140837966100714597286802816863446374984565452234428729845151096055957887945157161009294026331756317365658787801145299515001255901840692225120821226937784647502510642825365948782408176465706943579830257047904476883613330196931183325486712829665046884979619203046399848196654810025686001742896302742438583906339134383164546175935383290559548064325521970807601581932266272792572961643754330873112920012304778617947931468541784245302980810049466347700454995713350823413672643694262923306759989778699359089595841351687581525755789906957716724987302610887204316881682511283316720964431196175718796290377079391825224932686906717069730148080182488815397106788263975571609127571500764846134072913295797408290955843748663908910505740018075076413614884016035468926758610950332486135560307251042518791777736701488541923056130581639596743110636140806954353678051236944382691323539656304979163067843026513169142795571034800820085072019275190314375485675045346696667510202467742504456248910072943373122045254380590352234205802793944599451711259585058435652348981723640497797482852183806664648658154008131015553550284343635603691904891943604760380084985283720272788300758833326841596887981189223915465646164602548981637774999443376139535449772207005272582529812095009766483903795842181097392496690037884421404427791914099602482763955650412141540180202903596000115181060389788939801705764864656027854909624675222959739679497302695244786700123351328164919575712901010366799817365685011272060200812021697242836811549726280826220371327334176273140442623536364128045320221633692427481721004379828266996304608434337523057763266550754188784880164732764334809532213203997072012745667614800515999824051079606991849182752039795109639079622522424821676688065422094263396671886121266640257272618387050721426592442283288794567188765040712777166159141205397832213501205662041786019855203469820596128428352126570128084615868281881668035998549880471342348438836923058793446560026281344095509578971204686426653135441894263727282973588872325709717472166776157639915361644215428874759711644042889695895491373081777195743175537354152130854491606803723347813283798477415048790560870989968677330341393755573590289090870538394766607598023810639430909387353409395021701217023249480751504630215076062460311001459239974538337915101908210851171452921561764168727078717043757353101526565302808406148869939612890391853011126947819254317422169936379332408567240123430811366836587513245607568470908751382187779236749865793701099434140462350474222019165083775397956524459832146196972947999738512570594227017153302075373517605981429187739989449965248772895691604733540701157563265452483912471706266806565213955041219797274801974023315616536168547590961492086389551794209289196394459749748906342786080952094668651267678149971297260099667882588896871658009709832506369194864638502681816105188286075308771967660480908436708603532036953739045488757344064020325298144745890763649376188951865957467883927269958197704129772290707943696827418296684063755961529306671694628957348110840243793529312333157779991641565768347193959329141590446965384537211368584809582653837221310346328566600194670779666894577171167167891371679350234474563667569651153653429497260592359109727040292210008609586863027373551722667145014950270763631802548163517824363048967011774502111653384695042551002931149728501707552303198844562180924742601787269094713881239642190227168733188193992667238618551000024424930286189200887569765440779434046008394184492465057218844434930715575511208446133837959349565918557828106779614697197198675947090133446402456146568705247544707762083420350541850833698395064953868815653249467662193719413157008355687590232447459001983350415170944951296073099571558828657407703053133460956019551046876727831017621277676279864281132134764530121957685719352176580248620857618531248629201162892426698560263141120211521801018438562814535708334080841023615563370190781275267949099478358555584433452689551977335693820482291886840322490225681274785307467754060751006690354178658313327454486939349445632610780722787423678759448451465716893307232073486353228892033343749374400240510663010020627403711213012360404302146910878143693795844756448690347691977047973617692987994124644600393241573070822806202571289765113531120143950517620262311057242610871141623615068123309731269546209240834066542148061548269555467305647438375336520494139314200897738940687329389985721927842763573779752362867665097007179692267737029141520812506304582304131772915354385435418266364523751417443963077136422606268837749902113396283580038198263837216135405610868069829922338519166025846023061319704077781357883251685946697898866174442148673089087056890982181595651478838319175834619232817872830069106482931665617115210675937938704774957820346684011983630649405465053844934769553274087936886891008363458059030608139673072723717234307773604705336518901404301941541451501390059136390815273974304927881663918445632606652303523322705398179789162732127255308200199720456729249634545478681824786926564028898653726302183836722437341400123176026066173223219504424266756729241638791260726661235006312238938229661477429250439905871699843666819353561134823745347405879853532934248557155391532622368793053999173101220525269404825360495729226679245347786822879797369532621333805916342912505956266258170837593770229213857055785725741197425287081121402193063610155879849973572088608980593392205117498331786307182877402866367932295216869264902001826400446009090295751295275302437736166986933996220117417539111680215664212397307703138108239521531582198180054186155571416852781531698859997303587612039408811827360317026967251232674106918908111795884081674828308424728104968050698300722493552444620806827576422628208763297383922890948215722350806071388492473074675000591575129672856397622856300803582754085811993332117084625082863549217473235633454110341292709944236097642340658323599660323083413382226115778846089239669534311066447262513645911566175526315270952449226975826109275946545442067497402201479249336355424183182292698076913471133392829922439125394856285926356494111585188253954868498595915853054207981607431845004851698377507274308988375273645220925705509858645574568733001624716434491888580990599742890330756508129580528952416122803810066769031000813036400431149833974105463573382498122344469872422305408184910610832831434802211832118224378111734415612369447195113712599915949145849339650824815676541463631942791008659627819454703430253821292253364809455358590336565549252044715846069363428782421212947269547588198550761100105516379571967714140758768251104624495615750985034984224863168347724542857918819671244842025838303894608945139375295433802465238684126042089340058716581495458402308505884763574674875671417629628218723108109871702055164257306297477906412667841335639087390719090305293922413169543865096480954028423084705524074756656449869340417032340664328868607409309970876824820980333972951610333536643985771389860989422529741959724968892570629724519327167443815968923156445811106827637489635001424050549602385006097633190096929262859056502195304683313313641602407641980995933009442784766874538398736230532071850385187156104077518109238632443383363718266216844127483503959712681253152014496741931028201199709508562607160259152477553253923001006218563100970802770248276320157088600444750364508049105406072992481372060242080289622453116763323863870729345017298974329276734380331736182422360860682707116001519925535244451056254490762681514508309802795293501373480053281815316691937544215952984538567583032659367446578939101169397308808760884397983421321415075959259444021863384184701324447737290262795268189833481921664287749858415069322164191638033218341100049429037073761947634358164784505019310330515200456304836159554129467448789691950588611132095867312845703675363373150111998005252659063707536894410418005020494394277279540245865809323147318963012722032313530886086415963823485118458050436240804882946692117845885293531585333879553367038859539785791813359392676073699750672105448999985320628349485011747817480329715782312494002711056983222777800112615565386007944339557224821308682177783094386727983528983907709980231961242985094793711111309984340315064268074149713012280763353895459298205972908314337738852656198590539067448950757235905499172257086504224833719164422526050502300985537732445650233716571590717970577951092306209720364927555556582338221378250081748308364851850422373821511148762442092874343705307949933601988423317635411645897367046137119428219181582952533806737048070187721820931478725492188495283446194582538752502978842488107146383259744785562114245676634581702480262144083545332146168802178918675632293087169825765783115338621650504467931401163855133275818028388136564244785215080089142158733647067947663861443842735076630803455761048448590317372338468307094630685624309805568852662754525880606936381911250259815163669661095479472636934060514646110121174111688789422580275287745236697769067499872046035214897147174475481921025824406567546371766519934864346663410358967781336978951435487261886655366744293340848065708399531497628549580831688619453514491431635550693295944120020517420004696492156761811359337028751488544588157282911906906868295707832381202099433821666246754600887550665416797718238420225013801341925020667827900689929615120239418329277767404255680051090385738689562373640223076935976517934044173617606907212560868985443249781118132497015169785857138832731608866921034873011828401782192002524325500536760163898968061607346634057757952627931191644431953512682954277486095546611426834891401981524967296544132146864794130125466571422923981626810474237832865197193795131615406464262394119043201919306288764174322233004531060808763410650037772235992120808024734350349237482889123587504513175612308750282998384745842265470190288015860401886819084346621566932702808087963643705580864839036222834784422556688690228052750679792853338556603071833941982327076628929924522453933926295362070483007679913689365619617736163800906799965799855093546322884415938035828433474167339878096688270655463046174283581790606178835257442728879671038699201984422006952677653654165555361850223600016297539215498122290763875340912588601016717197748108306073978011032395610231087718884365472181119405618163492441883960889833357294336820577508741325061426832963553640802342113482313701651475541591268362471659801714066000758224342846818191240948966879149176106146624290312245184164982422803806185516831337783536698363389633536155453040407443750602736697926795841642321156956230055613365401274059474372688950915690157861657578833123229430074130747381557270190604402108764980233067492221658213354507592833689490595380635534933460151220915021928272755452460313608458789714848177736471877382411500198230665067898325835529201561798906457640284136901560612139411145808868914003195889763464406850321780872052861331090400643673240012122961547335206055262339429348997354700648495663704165418426297705862481905662729005244255631517581017907392140408827180124595669416987402782568784265802183684732020716296943178365973874068223974623309489404787761394222477205977921698929915016932287258019138048054611175894394855115576020815883989462725302122870295756677892881118722738100264314536882224905380325644870031509886661657969272722675243925889617322510646250896473839976965984241070777416598259834297405047798705030984513132806254785602813886890894830250772355632718814715137689967327567933982725648292066978861240831435458000276979678901847810848474743222444721956596506544857728821849359266358373032739932261899635233250808411056216660737662448968235485356053266862742633287458430676473310270870264718013821135384352440619540426309925417593936988265150806666425841279908843756951890557753626467500589589020502980696634528951334125280174536410103295655155611167822521507271533882654452013116586884552694215862540582747274205990357148875308486824031459148203573833365905176377983725262931948539030058483889514720204467952561276077002059296477684585206810101992747997848081375258141685448258344033398976337005466347644081965380780287603514912086318832854360106567243413645707888973268293821564527080635325843096734894815060838137509261441559556320476511765513474245675526110833233466552767716918265773167322422326665022702338635952992519568599796552447002189708723750859898120335042372420625816107012199062788974078049278140129288192478770223762445900940007496754000820034191380325443242012494177672705593832169147717686092923984504258849111285138513412711264937043031318896300115832254276554281569785276274600080269681216969887991769655336670551254468656430901934788970439160923489375103375069410775177001583021766284640439006693580241564008982218944965885040906108906345134883318556101975304963541183491446295187796314161743144529022201597277087916484542286863412972343742852788458759084800420511861127335680096462554932030435096505784569762353529645281135672714460820550722235058694282125652209104583190327128960337215246151173570980970963072877669798415132140221074694888929016565032636795897855857826619885295629405903703235830458085793478321876164590661922369185855847913521152185818841639161645998053276075320706431144522314534945523785041951719909818047635795007053117937814238777771888642732662964579650795047711486599719427761466464076990860211637001172866684976822574739934068137905485413589698582610781793738754417885905116976175219690087310577159018445242865157142809178463605412447096472326236719883053746908960254964090028525243182901760465786564393089556688339952431703399018344541144623994316647584536668460792709641168195227159254684077175663775969069920434800938755634561349589592399135353090531769144671351021066060352679827530397614039601016507024940949239782424173728989256776130307598453013758877677258743143215856663195015976834503036512296607917488459262833543915761503749925697857311581604386276093903253353640184487945232420376860709449975217675579696620795377007463499841595106265473254662805861603781266096006530267864372626270438993653104448518775616209703740299564257046107184023956146525969579428372332384806521729529586941174078750227480483196410361175281009656223581251541721087999887446585133756240015893450341718651169905077887587022547956945682292310703654278567707661455386043461634562493486706558178725557887533601615391177603366371852006808972992481012818760083737516885605789644973244497262492503073233825262108069700244449026850658181898961611233780837549832306919267038846702936275061275827954592249921331825020353822022420172669203202128932117930014348928405609993991090289163348235446626111244501317046655942439699805114034730175728369836386828279490627030541399834845767447992951555040283598865634884365412492011082995425939394001241144230733659944197716249665265309139609639030230895747997428580839215858125504011394898955842371202128843018574125185162757348474203824689828953200747298298608350716241686536516755101024016504024563452898754038785350845855148726893979568472731684619144462325632040103556921402169648468376519014512602452911940401398222621158355723199395298414285156911525405344243438459363811111967840969511900873809653276276047757713525942729963235259901016269767847346006422494903313023503865681538323717878696159734849933368255818544728628495889271866225079035563759757442940536584205422829733622684791175177467542190641879481213603156590675019127491000861742283829006667195321754622326695404852667076284661202189197606730673108849009653729255106594085805445110253741614676051798118406523686446132271261087698970429412568681095569556969909247309552363254686345416678768721626854745059308707826402884957606499433454303705388455499916673213010948690370300141293953131414104888621406958299677438065473638415579514709618037488622490758360539388857765938679296347208615666947811540643807780618729538854650441015671466035416427449321235312584349481992828443369841245581410283304297176292481019648216919284814328798379549081893888602815466000311708806361238382559075268254333015883569286957327747412559494724767844511996622278234833567760345361438131510409241653364251512588501506113854226774519606142663171454489204026644304059478194894534313460492866720726654708224420703477384675447578742660199609983041987182169287667089525832252521755892642198475888729033622634722301526172225771477617332257200514599803968100844812286563517667251822208169194742048929983964190350140474369023238263684468908068900394439559679090444578583397134270826784881176135401485728891083880848637012337402958082617743615297935261378963260056595633032799968663973572517596360664654949141024355540951130533537904118541233593091067283294703747031118239276931245899721519126949211537989121957335667182781805548967771277996521419405515525754704462208450429081435571679597854647972926215564986390800581225918463745875929846130921742674836710572403186602299869756811696334679811600344902195907419283102140108109434142690443283901910920045836890543543416281784195335643258533284425385372072842604235577858560908214740222861371716453563399089955372422646875497315574162723181686402547585485898824515191797852876980433582797715222820681886424795063426023823280375648280967504351083572652441597772236669364873309828577968389104094885751251801695109197579620643028807638535389285878010711602728613372261312535755096632675879484253855270624849092827972481980877299888368105897091443495492274155644380176372416042940872410948397645833981686388675003728273237679195756582437232724381529066012279861528120428390705808359356603861545778274386468476700268616458198294298516847507298066835749979890041475106244559707954662042158314047763487340879591888751432310317661222527692624101081426394631346929660671272445445864632337922816569876150417660046373259244733347819495403330536271708688324677740581874294983521736027281860826314616417413510315094885791619148303653211070595637408161121317205231421188143293704586745378062985125641570958337632697981784355387668454103924048424126959872130917661718321532217026106346010435317671267547801848711556701380367836194458480864397281173151343208651175039548752575089472292824941914372057735095190452655841001401579576072708792293049758758387810856666367561526331098145304257062645007928490774808873422042073290402519542107537679801010711912696913206493962087906288327364940332428143719217774275213169756112388483380679500421363082481149153033826275372154090968442563099853761533252908780001961190581077463809343071708185922822617533323587447699567026187132118663604455064349043365435729836554806108793388610196605353061634837649686675049696031482772824833538418826232133684352980451935236903207020038559323374361907341696201890808720359075114306893168691020615924435306778090227810890520041513804800739400811228547284373799187156825898790766100072349845220659248666636067193592232375383529764363289948710758282147557997014527174287208670615313684553730712189629826774917848855207233961265764832747832351520652009598611545142595537853122585987997997317323678494890950985140317756176848938202232466929608494623458747127760770844858082951817045223896246110731401588388183866499036125028996862613920828873078389987256287393321832649440176563339710876704030789620269980311504724950078788287607478349940478421864680634531260146733289039155522152304125725797035533183212024718750775619523560863560863531294963006817904246991756856010241991674825506546284278189887822866279194804913372833082786105100356879913967642954171420446962392615550953212275191192426869802813824750240668076365061076247685688742348418662505305230432605451590153349743052682303233360831072853751160396763284479360389948614946893525989590857845900418312191966674907038031887753231915200019721083274164156151216793267059686829902471760439867139518570978340533332373628163003997954280456900817347719721277352212229846370994984444000276732502784858098117548794956777979356940472737929938577626777046337880861730946423387091289390381406227147735588026529959988062793669531602620551222139404440636838519621935807938766599057926096941134039640460739391629961841247395682164019880078757600588665403501034718004872325625445825047655031988357829527338729744154794537727263646673672324435450003081506387960941913067851298687723994418775101496336528283343957837097045882013873497065703708392984478291723246572510127857653670623518760905917971796972510418864106711394161082320643655369427542729309503937054712009774577447925146416588611797077721316177097959883838379257435937550013292276672348892954093144003526836687554249749526501127879186948621498304237308827792702019690692429520792642834018792459442375384720155727306797551537044972025296290979344822509163575179333663816416499139294415305384336575596237748633575350310475995544960812143381181577242830362808949185218631690263983641618704404271410070566658233961653165586986610693122526731625993525335738060788854505826302760678071717596229743670317188510809373389366369632925229395758686853115347230109232697778180502329517120894446708354289382341397735757386582499471587879399566036597370721743461174464537680949815314102952023894119886935237873960294396444717541337723158162820389780030698204484612371860564706138817724400552511424454487025199247113732371594884574746909551850574235899213101650509250677289367680335589024860333290925067378563675439268075944929634986537578167789277088789671402478501779683200204533910701482528924798357354293558717389059715363891093570339148368104859237610222397746639320575371202527174732823725538995510960342928758705419138580203630005310581636683132489646235384060533708526936702497803937868179653689893928004890362917956078638584627108315599791159374390034731614265507055572291643210421099720162930714633961426762174523532385132247847334346398322208941985472968786495260143349338911189105766430663629917852124216652576001077026927987814279724595951531941116079584519106364593427217810323682449703944607002953255016033463301298071934802595801118831707785004501326673532947206952243781485842993080069732015861214143731808721710184294268417291691930855706913532244243495419963410779537507571818272420578691385002528864388118337808036153757887571356500438001022088127662495574063547803457167120753062496076866956020437189786196850707381160117151052639850585735282171155522072208493131111966962761876385734983032915198686762173788778636627905851872384282058816725165432658796218394554861631042069754594735807302780591148540849950062211828133159114885666425828409083411357912483503612024053325328925068435915700755006385188036000689199858388649548262633227037134390903023399769843059595575447413565772832746962295552336219196050178334510290655375640732260490401563405413581455969450797651912988767405697816425536932920729683020583864195948829724136862606118127504924744040978689925622493015498866259328227937457330936181680324357818526252854496358131184207917590397522231470809806049309156675163028626402618459093953909286444164462528960213098547860684997193357185612943570307803493918209025871953637730040479096573376897061837439045184925630037752881172186032215680400660504732530601498640617330795056116183726525796556844429925596549851822696955301569967028958747727657542239958005819755564958083827104919519377477225124004234761826609150031695670609848684014557665924148550288748024328382167859174448120751945170990575383938468674825384491283646038361577874933058595481023058108429399646478903978225329255443068675358472269405835787757594896128696500740308290599854442400978759119878641335319594506565549689490610093888720189556841475457517223781530275963944747685504121155940463902841500575214300302029078944270237097510732512376454928034827409451142386080853590779221060053152686748068149852451854483833523422621907348496382069981444935381763189256808566897171535024117214676054118742200330537331838355809620688453720335909273195158470902916368317958666613161813535246760175147350876143504291948052740779941347575309118335733342028163635028455574630605859413935058111855046608083458572193301248234687322375522310133027429666214468863606255121811672481391190155158657506643724019810689394462831531724438127015585745069830825628142527240970994620998745570421817929726524619213598033724854325498411134751649859157615124587450241695825740187007932597124406796876704837330928346028337532272968187622535003783399301657688633684401484371475422485757176085476070326033405346383721811056856585130333254011124669578734787873143651586829336080509114083946451613225025870197562171957435595443465581519619156891010897525056206509841381742809870631087484690802872170791360671736857387229997672615767872767367917746580715298576032578750350435663785534780655386357133655233741694643661496960021707187788766189521263863605966343488778106373428882930447278445308003376232266526078547372293653056807210647452654082544881749598902478630649136900613311278699812114918099218263986827775918278791226142338105631989744433583891728262852005963577950727509509809814957911751653644198068995713978793106512006105297705330332340883226386926048062857558444149259691930016518399704824876224966990170123222008624278366884073055185863795321792206010095581819705381973834868483189440510688806419950737294266763676846518973634258313583133839110808997486558566173317710913701973858340573137550731689438754271466811266802569405820294944354694254703229510129556610088583984915524437724313915931089225841636830761964395423577756565294130521748629960616456247597315546789862280815035758125083662898110555202556901976436769727891446592119231116641754176743403904494226837581063936062814935649476004013923095873834800309579517751713048836308520021129018781096645386406376177349036260334406559842150790007641243997754735378596825983606278555001106605152068560956471749421117817419277157817775130236875568317164311100909046885932896145352470028166102629833855258122894463599057917636865346140454909164759942694310660785524888301308238432899253187344997639965783288932187769429906295739984293537154927197598562762891912362803626103547097608673196545258562708763369540429117737860684080237952130059410842695942803869801216886139081742313736008221050789494891088869726008431636589937852573184554354665925640999597958668755423260717388686554331443280663494230777474591398359714841076651670269429393456054142065321656383289216030896561131026221879412688159261426371659999716723826842288430914480016146275680654661178005191298634926628164036059812530214379143228117612990826386933575788696183942247900567662972200096984437741960801706093831848299092915764094505792459084962221594706376490871298523509917091857545706891932667798690224718561707195307721500436879808789318603575829375593440443203067708119920963249087534100172174536164572495354936061884115313600167784382364840294622350145996607800583881065025832970117879052013876258143782162953564087249402869461609302270994883800249621272966764856515955905842062779802433649311420205173017450962101943135728248710969025924216757535158191837374125775262632458965480656329018915227564972044728029782081198141570066034751374375976243361668416656662702149384588962421628217127602759505209176964067341242549064390989917972671503304391901618333291097749732388972609942487068607078211173488025759924646398887119742721090756411245779057625742093533739820401509540537492761136829795610893536527117006805067157429072497222629546280405726944198892501248878742247113968953633320677130759746801911757755989960973486103812632744652897411545737492842563478445073095474366597132043344310403010655999317210497398297567817723106464919835315699285612720816544471914343532241623309199803849272154340068559809134676312359141043739642314237094140678934102602055905669805947833900702553091434050786836124688222179961631115146584161121827070104151652437132903778859509444794730651040329272756267729555029755217728123592705989623092786063709360790994960170180119744435734384766713756854417831005735522223537371084419094009253053592871788384469112762769774817025797894613255850369105671997622222968405296142980991601442529207737437837540003590347361447667402313695072954392338857578407715341763509746541983751074708116718533319645215491751066607450471206240736217462177540431758872508086785618248747678982408688888641906190183876330238420213181908376301872495215618925271886953531433254617228046305085155525810203809702486810407753801953805245022072517416791966926149462488836201632999581870774478215603312242118236042235336187573639238124775126618983873909144921168705056095477999379915834287238759206326867490444174319004925273843521123920834836385623443921924062382945769974765378721639996752232217497189158419670242411774092330124727342528792436352539499408217331964253371831578985731223330026169897549292504868470153667727273677319024110677119475769946902470688983578027402984297387338622915834378213091132044740246808547981290270109155950818352900041160522890316924560704606422999109362631119672964702641760682622557311597942930822128855041242500284229590970948299500527717948125328143198142442008728598871000800351937384124211003693115292842625183143594694995588372284452606001869403346316804687113106196185253365992812648178233202946529940898801425446839287696917356728649360386663277753789718723321050472559999577473711791404829449695028378860909423440557093644197044504589416452400190249301757825482276217788205760360417994387120996642069733195364070732640268850634333943379607628198971103629957260158338977199361577388570715058069103581033626833931224054466755621137055555978207360152451525883452284306666579236223423178871018625197893790992035140436667618564706469500000688796746562330628002434240835477669482505220467397286568995137734029462052342401352134514716492308685798827324760272352754408330083267580323853934873314208898404699508731022346216163025032511948467268852559124909964913589217937791311524586759345721351157693764169171954423608244428678510555995953589363933636038025884933283662960137251311204310215898321989518394530675896693661483305841017179614385127259307608297207870670965855445221194081874613620571127927510732362945344599548178651253195268282503369596972111426762030397292581108261783376459176444732355010437096144512577619946562316041191959183608528250842474323337622822731835628438362855030099263140803797009012618505809224937035523153146584433326530923227338024074279721735212248142758644198279098885579947976119641956440373699777131082024128189186964966095452429731699306619733789645073614375574835494449689364634477074211864757586243554472754055122690841917924035223770974656134092251452437551211171864113770681517430094411693215982839163805588664674533366663045780047722707868120820416734989670359348194422812452623764148989528707620210376882865444187943266472260860067553515611103402349462042075416594386033643758141219690243489180351353460149647842361641853702826849351877358872053897834844268530896927869887494795343007451494863441988212219841895242926737208130305892535804871471314252455314682606890012242493457947131603964230460652394190473652519984218888619000421686376188018806797422541020817234978770503652588163569656061659363814474111617177250184298740726297865222892153552604323496638161050278680971949206685572971683788634305991327533170513061067652934014458413306418435147343492348644827741187827498142273292188040156930635054202045271716813146247657792736787152564232225209916399153958804104989042413177496700823865940063513274838383018693520647242736330041176053205595760258773556242991828801652686974401938713544333619041385567547624589378874127444480359666911531729389941728492633823275191814625686931378972635882833902825528126422059323150478285470361847465684535473328963094365323955593984730027694724120360239215848196799310872190205054972989702025577885739359797049999660312278484881111755906525187292009773922354469218564245916126419293459042112274337985497436537365806195654731849739793898418725125617656053234821803237823969886547944884121950787668449022088149954135215257022500484462876831719950702639719331535407626908998796556516583732017560131247335096763463229212257370221972654667977510030061315880916453143889801727486008985923590136863908693556092907224302611127994858866917270768674568747431694545526069064923798969056930747347134211929419754445297530871699442016093329047734450837795413254939014142390132905858997974861486244153941496824590225815350185025148528867463220341614444160865988202266828861863994181201327516389465830016750743589524739084938114015900874538741600906341310870493755935194385791914548609033245381828684572556401004576015036885738355240739595080614306445980176465062970758836063667562603036921629883913010625367728013443328994527863209183472880922009803343253311977202308232732040275146035194332495939976750089384590049854490821182382965781457679747389757832171495110692808744967380912487347461787025053228117260526666413684614982749315011763935231656541334965941231440069668590091133020457485843339366959314623151170133131778689579840707090674849317206687567278630641553594146028513568760107329785428765388461259706319327504314678807867496893881368278102983699007131312749750408757314270652755652873982295377065742933052625735005838772095766309232367644940245285046098964212694862610062499583589327551794511796369375051212565924062571183618316052375013710777162177271380007346087083993894018503707160824597507384706128274508675090085925180945467029592586645469502050341080577794419350832139028879418226402595944661582471120722996438843883427256414288676607629036248632512364291627509348517296097779774726123785517853661977824123291207374093520915347406888119442937479022979214011557475475721836700999755561182801827496639498297204165337934784946623816926879186338047782556409906574552474195952076414631081252516099040857329608450665672303008089048065643084592360795653705086719343789830020887568296528033873939635453638700291990188844916810723915799463013694808918431901257077945152536053192634627248340782339915410384734243531168242588695803396506619622889030108094010293499437528599647829009415845597689456342243337182882802086524153641515033136258560264752840655851069951020900927530677348050413766851712408921549219496043192262194002724739802811662306731235025508657060148559137331522022184555125820049236777546904591350739358063316307944864572200432637979747619088371345903109315059914037527453322699493399461272718044977329583816883507064704702464751673923035878251872210316645760269402596144423408064038752998411590728187493285968572799314450712217256488285735964615272546517572113825818840954143951859037108980737014543031111659307566326077083772685955808080152647598070095267364245498797604844122748772259616947559197684908511707281125348570979193539493634525189314962350541458029637586506272916898211504706266387540498539793978915863121738258928497835167337816555615403479420970994410914333932789822378033705836290717532491639616029618203556516540053564933508075159303498716345267804742706198987222640321600674254014123119936710686524051105297715971467260587710123689368018342201617631194546974359797530863152929515751198736003969444756154850317292624698355460902494073782283137736938854420568364144839971118687623609175024457354766106776248477215916622142658810763310671124361490674508463366211759732584017549857970238845955758111353286169517390500414615768807099974595515106376032429531273797295839940082993361066396605118717012068719228160885628069621811685153339972319562596204092399811867951569127852886672927379463394652130843433911689652875258978533972955492019340815953080869160560961623783555354727535549298031067276455532405410432542722615593809646201260586364177180378331050145380971246108642050381040321399064754412686554027347638980762652062596637476577628525690667981808655482227115685107518095485179609565215600463021371521581830775225791397098428063466005711775979911185427570068692364239491663810609037675373000100584780555749872554412815637750910829265303750305291785242642535304636885778078435486127887041448547032593137754204110127419361342862998128909503627424152734537572801084622740593658097819937887142339902826917342217484968424425200468479428364259411739153064141315310229066404929615515110636464883885370583560343571367247920843580497433302575610259436280330060664281194031001917329807907931971362853700707909208649911243351054313298112493665518462387832047395323098366665610769926151275141656444272583580381178040866094233316667253413417663542187849695355701345074731080260227190618755761530952443865739815020711402015260039331139964208733417691293212554702382574859816950697047010892189661704921433630200077016716306999319876231661561077596981443300666413894834618321071651542046751925510266779155067675843017624621236678125198397110266666450062125346439940897374110577863442482083283706130514412955041500826701580554597789999994371069434051305222374848087228314112239452458958195154717422411411942811131578347381306098028604794238901060892749955078009918136315327072056010076630942469632559296335147274266918343738031425457180736659087716423795082509199012564026813466649086967944648572924600352654309201950106127017189264203682200284521962798821602971436094886369842802060874983363511830941724825438649978944852458770016824325130344951482183054889893974695562495129006884736912757415189285643336725543447448513147960632379108130922574470367888624282379463676433922918797855921258818679481691210158240170433683392729267377434372391138866934282065589318213821274753205019377513927923502349194059053119864386832922562882396125035754991068831151803064855588012331139677030449127988939065821946619593169315357694107360820489773620948327745575094365473105597602865951450658537221819654396122096105105221020039993002691238303266810063634795254762739446644879709870380378759505361534245020884563924214979320852237225041855583655973394774000835792414331971255806187849316088373927322325366684002575817825602072957079663902357278568220869361523246492254510126508799167329136540095306984425547211180186878471105842414224422202081796129458806702567147780762355823388449224349659820498554355900827643712912083336151142728916393966225261483712782954953761131850029053619519704296519730389513418849858699181961443718609390448804985833770776972800252965939873319978330339420972719054827017833503206909297828154595943202006806507534853576626047574080278272866525896481095274796766561755024344782861422200332112181874022816028160964233021418796897920150821198906199888721762184964698586424447571450707194327086142153179589304731384034157833936710031330965454078956384596405436841497286380356161268983506319772484339466451371258845448389023256376638351984684484385159631353712217475623403632719543704045950761031581230525729699609620232978172361348465112522214457047316357474157924434872299177388872688329740924670702961213902167843244544525562820633035267977232957725394473173721077671544417962444925896665028131064725522509739359702351471229345184182298785341326536187838259238728373274200645648032059287100477358501513100204781195916139712467775983444044658517810706151456719962508420555210593005484513470548324095925053822213840554746836119896866265523652466492324531540660158156899043607504061157073593802918983130336217164123435878635486871650158061316942279096511567240878590362115890797287326292688287424187174234985224900338809724793374710703429987928253035885029235792455904022733985134258000188366528517922169964897460781999935772062058613468790567949904618819674683956749342119010769959435577748555753748155630215144299795031091397137752702031632413065668900597414222584350109804635254103426243901033625381667298946944474381872116323263791718958303310879297062448355716083533213097460010049215561831307230257521327577108886106003341355401234124011510633272035702691665746841011413352908407987854776964454197974557453730457895151070440615215144537063580345152819986753323575434175910458355900137376486070950862556065678938587654278248684879475459086905582753989007855800192756880514942037044132129098584235692084646491495886520326259305597958984275190450895445381856282133852570657391809358065682389870244941392317680978638220332777784199718118173179185008562513043115915189047478632811451096288257878852729718039731349088462101810326374318688479336560176690118008544651650602141425651791953889136680058356930361791925764511944342636993336411219261340247447837766872502384034330895327706003108186837786060047202582231703938670990959300895821663397599067255797225906608910716740462622532561744911664565509912690956809485988749944309066403552144358977986342434393483499864358792185349425409234303408323707191137072854355045120213213355766055429547941578623482526702379039349083316482519783823115752113695919637310469342921109886204051165005923698992598765779030743039475528592369046847318639331021514715029539896800608094437193651674086174803944976982883242026239172915461788427245784588043111792196723495650765743043548886192242971604311079244042184562848123377667760086792276997355426155960098828468496418302995303340027965204408299083841067585737535020667589165614922342626110012344098176766164703584807400765449581981077204850829891085124133452091450771597746235344042082216612412584425696578421581524065601880233660214326602103963803171152668349558445905285748377293490013445611883249599155154468598291943899787545728979504732617582233102332524252882859782571173442859447631230330950215374735833666342416377544537040766529910803027731875237449428251252700723855316261404129625062778417197369878826097690911731546402001645874026673306206097018426783645114983656208996577480420449227292585353603721126878809790226644932396239784930756797139316149371967612951007671027613099024826982809842977137643858249863622890246257442388387563338542863935480338538431355502064384419483979103350265015743744028967109595297121375706146223337821015120048987686808729438113800158539223150386932007833908487182368132502082149671093615379666119226365014138027873924961558281863804108232196563169758906866294564283994709723453390023760558607665314970648227040038344638245689345537200086986792518962680315292603540324458487195099056057322755089464183575554984034143366992221214463936691435276016007578023877424350225838428912926482448036013659547690516132191129250747169229821701067604785896132897133071521751939478830545261026805664783082038706539907966001530037909514010335865145399816721487434280254823808765841515648217592986967745091047227906755124104677045526831800538583218901038459467048896123932316869469528621551332704904618536817882291886535387863131064488171413134380681451569554741577079574241153962583006995611369770645618172672309189325451795558409542920641050256741484728414003997953801492861178849344477546222801324523052584310769916319825459766915349315743412060271040529197272233575901292946834299592965227258537113635279770125514262313196757218818763402569622539022545604304496876759259008359314414906628178488558048413029899631567487602208178097554002083919522873442514776811033209860943228992514241626361836885551894518715318472591693837042232496022087135591191250576890816199880756958134457134391277866407246258713668076445602683752586815675439226380217139672168219727403104977470440435997635310443579788884143004252293354086080020437766697410470672136986617414303883466377790965338510909050480716039972702979904423478842561208936984313423989474591616497812559499308941616160598603927635212290825573183975070271173922256491992052040512970992231895927520486742386497127929104284744219006191512271955949991180925566914199904995840987891567843929058086175678719343165107406518334820048224257672530428659619649614474047925685086641715407037923886287022516645189375204761810115350497748052032637010586814318432017010954786737934950866058558329112662412354652012602895365794662096472948418304296118649277501285171341684842094195667086980796513600802092313157639294344831432005317217866067914322069244096094607798541025622887328638519467864617434657195967053854798593290823155251867146343359070751604804440929869796573227515776829649018072135618219727724713910125504316259007395203992375404915603761062430443548941849163088872100261592664489426241901325652918104896251176165345556931494519686169928982488812931735950129637420895417622071731098974845800053793927670716678504957231074437341537401126919784256360151664816320368199674063536921908916169152311942881150728976833730605272105762674537195285981684388707924264601543954357004799881348982578691909173903357242804289417826989461065147577477528239131775339067392028144290765279162902861610219814881466252711563097072927397286258267951744001670158097449919065337989595553277743583802806490085154395834910356404083100367921867929062368201690806452367837322385155087144308170910870258542507717065864754843517440993337243495088832885891174871272926844548068161264363516474319776626852285447668104109142727972808585126555276631502091610525428751903443444473700224040730716050113806671878874879652952125573667749300849423452427235439991528740403700557009534298241661635203500142944116294585478293312033130865440649639021570750275362159099001700870921625097655210179093513021359152636045535851017873966676278597277360044286394627202996576636308590765238326766639589485020509375901910211793364662257870207465566208215648079444449924751139898199176834265523659537080408457581998800322624369541380883801571615052117303065319683495733641565082904692745605628962283196967240014240356082892931872736984614436866277109639577988407716307099199650247997556567081624647048533200477282164058867161413251270309575307220076664216333304047527547328898586123576381794070315701359545778985971027429169433477426254905712103592351598039133425629039939747729665301733467549519637008488985163016233466470586429225739317632839734983333787324137754987586452037624659104205725590094048139655168198865228577740755252813827596248715748989576279812039941834007520579330135728330881199224885381527407030611471695999296722176449807230093728512090100844294544432971373373777444739497955317702124744737591685439053288563827861129869129514225908435148405477663216578511159527226890284081891483582982406136649761881570599006193293229112096635537927648301591473392119767301011814794880471059943173438681603201288301219831887715301112391991024411481968661221843419385218085643696408824961994451598469761227473142934253982011579349100515210063014903254044013662595599356312638984415756501756169096760791802669522566769409560765289759319856591159314724970070238811172782273243505220478027920418846645863433721546866796144899797968914861969710628826281480479517215618807686017646686674122589007917962175975904195145453002599535551340393598985243151577326294284691779779891602752454416172592949801982988377113709695744337628466707453330777686889392812508971610450962711129611743200187053685762272344395818824767670946704682090841225044846946116387095762232944782178705721110185334486994860734802944255449662498292708695643681163060957527683128935836139475098454764670652290358085632078169490239255673425237401541791308646072142139399774681242214077621540367121266766974790677508324574598071206221401733791996864741731345660268319415358307184426503498212281307418841098114868422885610556846062513235729413078555354166927823524793260620541418445018690078479325997133715347671740441903632640931023526213823975090791901905553135098718942859040873262748599602017753579816526834441164016865438922015304724093437437566044402899100698034345689902421671709583992915254059497947180338891162546959278338712624091272770484155370472196644189396719990570220136143951362708795825731408305928538243248166962330782097545334000668851885860152104245432451329407961723062199347670894087686617174319518880556450723149905606704715281704304160518888007105428936658352616031114624981006542988873851977070693883630919624558562095173316159602981237049921935341940014533387539016327409771948964700694849653196748218528108755204587449778203669784975798671039761413669565674811429545567638594541393665634927490369932525837763283815426403234971424954358899910542464619576651147677659446909722604455237799111616261495474352750729764215590951453607652396567885447810420526711763221053563620718329790920436875341067416028293994319244598157074611361179568517766990680452292706036005408945890465227017843113826792684639248879751749486258914455270881376452142619873040666183236792456923911336378857694972524263225718071020238983899183578251512498495728816621769079184456318211861060933780663550241888294478100799655654265710302441565392930334361404437354422614156539920164048509764979180865855784128949692972635282379522717980219493624096292471622415184324658068673168578327632306342379186544282451439589656919584511180197911815999738220461548508323842066724531164232124779859953483731913109917059581120254787385365482350590771615187894214228127571904410747845461761054620408442598800893505001596222474885206022644518041505263109268004443333335732738382312533268021705119328782660474759785595035664673950059178208313286355367745636758480852108322021850330241236343013344309431856940827166675711516295335799815146858313053348192580754014082623237869201375351717302463473847056028787587507933911614546997376885305209321772520746695862815274752890272821710293693159728354283861869658127699815810972345882140198362960147660356349689144327594767786147167515950009992854142478844685278916717729994351204268830629614345363082941187394877272775973749322201544842485035176889409146350776735633197403884745635081254254334269605142304655035779017404281990147486001366860441088409908176274622976480745543378990995902929358408208212392123689326410585925512004608929514811007378992475854133137396560092651097649026215260464261054314826080286796519167133753326583910574593580850410884040213010638718045010862266168464652777921784304574283304731798967816379700861067516181821660672959338892143914399603146043773669841969312330662807424202688169935159785772362203148537479872394177780695094205689105630559626734479436419938485216933877787398674440691776072685074477598017784507958632417687050197579746866222474332666633610401582940539319494041092179389320023492903442244284664359570786818880675093485077878665275798372465683940045372280619877102153811098318755363600037216131998573320416371435168534533006168393020704026311513460593695661902399461644784011826845838931480035780604397729323107796006177743814676245759520611381624132078938912548519106023775467941412155000558885195134018386360453083606950478742301029951196211163083838816288766015392563399358678749270057058644814590703512892990028636734216273941402227626060830014334704622738768741995239892121063972996470002147154215797243178361945577928005961514337272867825527670716261196564755446447405656775395672858220020546374936283138028647039729168089805997806740532321886255544616592103995705991811942456600193466060771206212761278627113787249353103845025545663676590291027242699352179474121643042513951822582477537587199162191156315549823185893499192966001836381287385699958443715814359394493623660137880111290829517430181446674760503033974918725862842147560287617101644292143639615758417575170013383383869514408686153206176180302304335452755673592214863003098137324641067942881347460681793574285142592661828169882228521092603937576589343816752112011939354159545656347334273044443682277515790675119622905356796312004834551535716337730693764743785201220165952775570201427738782822902251557647352582754527628290394663756382161986910249112711993252810381802266509033393554141535130843443239464234205105033219322113354592550105054663333842167407661672658054699522810460617783349663564134386367985839867354642684668019303766696528024060188551499496955324132324782690449035750936546570006596889096008023463449484064190125507360161871303463674670487243926754100912417580215826597449144729626373952981390654596659063877362997285343534558461923028135319707895392255330541092297215229541598381897931347157242976956970061021316188155301103214947199575932939451667033181591710950833156209003269535920014498532436393290630719687370602199588465303815458367847173285063674769424439945106465194458834509158246013964914355752695233428719651990654905805390126472198857237480208141248134519101414060405689118696901036515988825533385482308344906759125126063102718964335926056259242755960985752437015136494739137499655121792108672002771237422893909820519299364179739078242232144403394783339033033679073856925034011678329860835294303632447559359308972475633087519768257281232417185430381387136327106198417032684230525935921702268013625591423857120627091549672563217905856500288361620984133828847394242990892058344156473035917147817331424127130005621974735408568259266282372858592059884325770061113309957869976563215232388081910438283530055543496088966907187338958315807539327094929769598097362645413656471857108975904675301396803235758757149284372066197816872494074406136169352436516055141729338078418998918383309181576873197116049451026266692431665409302199509851135398393539026979029437385963456429232249932660132079651352025317209430406725389630904876202954898297759767427755864368932010036507772755078574346897478153944834145660425342749538741959634066724994036965294161972168285435201376439395089406625378940264190476753234442502521438976745860073600829422741546854458419003887790498069489523033150550684472948534591560917100438576672580434330425729809408840211814549510850349896094201231347535201526013802366015909328287372594425189935060436559140847518042337537442663937960073101474620245785769085177137541482356611762520248250917434762253889211113827043623639070485846102800315084612009302744087542995146565497164992984189761935749849274032143401370555325690550878559439375383165146018927651627291608648925560151679138996824975383587891676407642242657385451668635423375642925168408008836843748847896801373652007682991710053208972621396025036964852217898313676829726425508000463936306452802578941143332078332827879776672396579139615460445418772105510470078177277554317593693372680161898272330751024360461233911353508939426547466893049027497895162151857870061955656420941149763268684356034659703526461802086393410657133376797928485111645598652973167126155729303248387250205080907266351421015130890021644427627187700714129504851808816367774751941869207355278792695649595033905826874218869785896849103032174498527298519407908590827995450057348538594946899729150464516431846140198628390932759363583589771367858776780148899397053542494707504886876876969407118095036839983186920851921585112115188535063245301401251471977683055095661554721465429789317060929666654269641573420355760314542674391823778134494597185886599926566329830369613888951552348013681085974711929808448517588723409229859749608776518431820673699817446973759147202307202315246336545871132869812673651562686869216598006203908959215574149235250671673361571423433547350731218753857740387474830914490406051382734084324745236765574169737376827936506824093629977936778688841863930868192677077212243857953723344291077806910476542029975368115443857465566818408599676750159321798811683470165780266572786510268838259850645517028084818393923278973319980014732358257732585408295265856116975389568720955859157645567421962344638887762028523356655568444208547544853118008087489745736382313589392718261229901525210138650642170304600139991780608431550201335625540552727459729964739390316459796400569856503514232660044818378438096793915120223095731922427406010947951942687069530389685152358195258359663134287603898499495043044966483020359216953123141453578035381942193033052278378379040371882170293329821161351137237434949251364872986986820147616234272538904819400383163810985129303514846516433420252213302510493283598079570336760168236415690876232917095998134569711307591261086866974042115355791327296242100994058074185004103057533630601913781603705443052073369203358216579919381996852510741137093575109226449462512562262849939561284487834446461447979743071741652986132536421298552760211919266302080478958579204917948238813494292696471359870331264811242476424200853524023658510708238697830576708007479446760998372424917000659650528249633144172447813560449463449229801081085943841113581371722885665174899180389956630299759696625548896481299405526192042209207032543305609347950224839209545800559946598435664607917568056920485641450814958817038354487712286947418235108114188930191720839130097948644534648519719234137230420838847190286740109614858723778482313840212632773716679398943165372330509211652062004429661957167706310086720732205715745198821768332368850041128085612419084017565603529912735087395859481621973722296212492802329288683421498719766427115797562452791538024788436628207115918612554285350592547738497384831341812993147481776390694505743917485361834061128476559637625574011559743238464515448717549804173028238087896401989596905253688372667295572185924531454156741164563069165504613186187654592679442126743048849825985680432916243689053411039786398553694881310051015261921200877528475617841471665793759370358538487010786392537229930264296168962650824532581057027133691585031060639827290715395544126282416353079338769621248683481853845277129851684038553737559896961071863135014713970542824298780204357229471384609521029092495233211290829461578179166089361235072741970793191284251023430884918311152435324626486691409585362336734936608032890167549246495115258343002491061545699340214283991153059210697484100953171713416049572687667880070382541707022746278978800580346427752452852193846477407826555073125309792120057591945557961780269392506031643853141905109654051086795424203977053345161540764778810419654237803284051684295739960189562731635027189903323277842820938737297825542497550542103305224343081023077165071459401685570441038616022398048361002341546026508756470284505048035734553330434787605213359512194366885571476283560968540870836302335335740152033398014143182499296395293043525546848917589222311856712816222839654308673657440237446795786604884395448605471600267520135082485161258024191023754227933635310052504513480794155721178275774006799153824349673229877961408561935853960748618012667564141300970055633920950774810554240381303390754813832029918627831707476778164503510196740638010434781403109975687439033293063539257669476852928676644970552406904533812979260436880280488858841021295799342564883200202729343693469218614024012485547408665552612928682239143405660454414446004101267185013054725045467584136196927755812105959636222479524321685473551558050580421758316223874120718177260442693384198311781605416271642683170494219299224377336090138229569492383969911715617180219424371772765360249691789534869058216023281511074674799434928415719100106264230687538154327277847656163049212077920828286870936262732651016314903869741839792346531032330470719799174731271494374325767047543856966335568261607141082241493036252749030131809208502181793366070631001568828921450923724391785801230656143937619019188263827739426609433196801831147813965729103552827174758098247581741921337503750130741402080261559982785945374019933784294537919419843479653960203882933908946745015075986763474446559671990873045628870875989577314741605581919691118987688759072424808884022428530509607315883590585409602889621624937902215694752251251599412673482799522887674718424662684525358401956847212801075008213280538060264088650822614471009045006020137471120630341585501021890724483044101969835506145487886249287959153244588239028239823029392491728965768886415513573658142987569729721081810007891961818165973845670352787324680362897407679087133868306740673344619860584614795786764799475651646684889745249579903038149311552667309128740223162543073538282286054633479792181103963805992942000629883817061883742470710801623842542622513354373463584564961854808282953308152456935729038420523168116794272796596019472563787506084127156300500840996342504060717672882992652635310140920518554546595269498878610522055214335101003367743870202683049677044624368959134146276471379230343560549465813241486606784050084874719343843389747988886611479157548994521603113077006446860585457950987210641740437315499164202217994653331664020970913526716154765477475898728358993575185311136208155118873515648417118665267265323071932872543638860126682164228382624746536612922096054797591037296330068412542520984384654145977525884274178438348362586888854629463890095548611918828715646902674801353883933772836775048867638748087258297109574830266364096196140029722421446018893066336576088213255833532878773526612305086573248372227759251998529284313562195656387237551031822892614990232063324628072669779404199228140394185273643425181470087191327576874388972741669943965875088025151403058943339895637310679749950980983045359538437496921062481409332059539160089196633906997518266018177671840619718772793605153211339828618932419605434114984439561640503331661378384235102724979954637554241134204460712665439247453014401251642810570738802118607345732886688766888660035750695943612053774254418498426344134442646123706794694054436937493197940330991493630254497582084661231756104444036834950631913987843889596370734773427264805248942267604954338144804538808005972953980109872321006534584196770032713630197223199033556951187701708957404875066944000534648382719949513245998805632116852804732104464245617125306738734120329085245895900348675469454349482128557474139529940414146128841047650501850198490892801506352032495014274509885285021327547398604084799280828555422713917066284198971316200607076552069364289740875612598559434602688227374620949629539322863658411230131760867764420634945080002108690768551105635896135888832180175847207921664339125233189933302131507645554750948466209217869397431349700398830443153617766915650188374672740747620082134064829680188705051690827850822256587679978312447090112563071291893259252141532337163805143460342009537268704397902857721520898569443250705707493892601114087829105497692545810130879982711231573533598173265053313091512442828748894367954838687815098052628297269432736380878461693991156224354228813334393714209473448188623054060579288320631386727438461019892940625616406795323171246871689623711337886474051415208215624231398017109286060371993533720770331446345975148697271680161548152368147473703063679047063747157242356294617727209657362493812375181624619389223920257172948839014365946755046880280069239496128359230816755086036033243187096140529535214944606104700663695227931156053648842079851253017555711260114602178550218385523919132539276329677764184477145248363630975279112625137178977144769777760450003841569423645662395536445217824204181734487742305487434151915772156347632813981971286421068958889172104199031394339411526066830090448566473317087456511548047754280082486903685918739855963163975602956708140193071148004624453898587062304565851425380762286093943642313923628128671822329380736724966285163113954991345692736509686983623623604370257585563859825255099592849091498744426983517660498018052173705695212921140345274728162003377463628492309060814358757329674935760917841248077113536534057132946679163263306896213370833263326655234624638882652155348488431621795347472181420597277335009864127712569483330287265821144618966108294514959683282439928298778453403777390650325336237739233796532126380108148212172691413095683160391640327291971282325965997609798752476840312909747347461502304344610496955515276899679232310614381746832596424014398000583283334439474402113425523887359070820167616570140356296819656084670593839607524701819808159297115673671143251915974322731943741326000137407961762382327854077538294628469773899100672884139178175468678895621748238232229048021322299249289661506995429116648664018694110948778170119610598120921751344940763064226757646576140282762161104520042055661790828468664902334449365004659197377744435056195018152700646125243166625558031601071200872812326529314480631607609272181058179878219714345010750542725075671772884181362290424672913958331253604372013658031111670163681096240243378997308060187744130073584246046722074926815755028343463369272287200475991269422306554235220654801369383071119358720913274174775697914237967917409249475317544278958717028319707045814467696112081763332536157133200659646522334230093797019229857898270060419877710736165957721929590830652097344499619843251502874755046386417309054455628147275566547786760811610933140798192736180265392612055964131125157333432446820523102733688475891004047126205122431006915218956202343887854508784805514063975764374846115843671029694527025619995837447370497644266171715423097089396311694955522709958260692403701739984531841560276676632660095377641066673640339914333538595730215847911638213002550639185645035733467653806983359803214521863531317800901358957835162803345643291766798824473329893547406574114336859929740961280798798070069705488794786414894538241585647161634967749491994343570365559678017861830665465448899457403070200808474185954282042409807170791198870134540104881922835618535648819704011602184885158126352886938624594010132587737417674565869871659062591857617040192468746131521526869355772696015846108842694598759134669329136348395703631851447023044953737659111284285159607963958847251476637574051923076633647646263704698699102187250993791383997161397722373089587533869167415637109065205119542350516794469265955153829264840933357677298293868182241670996269106506852267649142160954892542907090799865323777846420325360477146425236511914000773809608730416926589160347704958471553012429408156829333312324500149770418821733175745553186670781964185572905697915909916668687964977252210754841103005290785295026217855029063246463087883846304095631399300483856697835277910376834293231573760957316977412268456974427843160326047913329227636671425818041698523819003752314336331270852048326361132595238885055445712749375104051595150340075856459702511061718912088257122918217860938374551404987184366404427064238148348902080495749465080318329844889049551613759637998127155649987834347551246741332904775883035790742326924880752577705358772304743519079347971241213489869809126015605116335127893510795004739367785449853530375966685127470907589489764144210097741908733183629268980340198348871823901466249334639384200267345677694581043734662423443895679666848073663389281678503023446888540213810719908624973605812629803072947095387761502744359733072953011009818659367489052886629255674220206657887422468352179745414351910375634207171586120196468488711650688726169780148294883645920917411402526858551823397759965904703775691851299476047003725773102604862236599204267173966169067330484571401998681462478704204554359513240681139340269384526726075363857981469751134285572463048614535900158259605373377525213190214556908777267190533769086251665460594727199662934990449307903818786203056944280568129222504179400637469376948395164464215747035463170580407422317840120480957840065399408401004044871611278801030757897233494891072883284843234590050572792768642733956505001795717015322299793710397957301220912267617059849789888543514056787807389893750878942107111217646431337847486845738138176712312336598051753760443780216256245607031623098067850227209992536325048778525856521259479310042704098991706264086961759451293676281443972579135349562132204852279323456539416427744458160527998404234893242179903333247418686164743793385005077607586926556994203186088988062629589880306576385983940030281184011442265673952897142483793871119452471714751334436380867377605390686320040856232771524839759237937288631496631914555790319625799695648748666549094795103728887878144939526667602145940491686930029578142152032511440186874153037806055235417315429892162890606854554099716079547318140797003629014092985112987958297628525277001276466366005813353877777166789151490085317816593680340282267247563621289411043241633036369431911006649348509253927251707655416504502511522864453767784119789710901717558039461264219984817919903528909474879378459554817031808700284823155938778990333144628384953174430882217132665573384994156764335278309888119680051645827089234975263214391461578195090063312879903533911846961190384351030120617064333288003186663735438263035538665002613550449189594887595102619808886142106810204080592903808605176854546706362447917785249923467817806080051065425728445439392640593772846634488181847931083631294260396616752184505426767855994854050257798115973248824403685914856329750211136317960024796327236427841043104886162281239187865375348488293748255212392028646312857698481871049135966153283303985257608761945116292090347572649806039432677934504099512441277320130158273157123451320228036114004304248537857418233788320118419203708820772126555294444842135458737977626296245958111915403543336637706515400700231773326703368839818844455553102339888218523649838322049283252625298947724836239170385412632503608678128841535130938428410111789686297641575668882628329645340619916720533673312273280734686928562889626069802185536947070939763420893575340511090732607766804529336623778232038129819138829508829001151014974517789848931860405322366933335373343216006644419020010810831108036499764235198784671818996943572573170523945548311103332577007822478709113659727203936044067375955764193614859854633929238071659182733789563370751004065229964754571048824897431163227821078702415752316681703418787403816782805861584849047444144294057993236716861017937259781159395933658201103981278003989318050185479644905260060482862249330134994841134718250331102321157401237614111506714506869936669879092278511887165388317916109734738143048977338538472438953978542519785991220850897774722863988195492018427207223506027395514987173957138727455472414935940179639882453552301807205827843929189968402545272044318386586771204663090328827566635245458653318038649777436971925819703319212282794832147938591251459441268436687255002101479383400275400192282320689654413349425370598178066987451882943495370369561862122299017087921783279296030915042381495468086734678491070607185999837817516577936023392111854478238786085013181371033015653356638589896843017900727356692371360761139154349426528707888464470516086246331898267179255786711583120540613538494999984105872729772908216575050878510160231189059386632323985535893880764772543510925353483676866455564944856520458818252574810491769467092296992524721667054759302620849777283139656877374668557887365222196386458443186824402368616189630480644983205598790888461999635146508574780734517985951990831528916289647574994691679985803287482232459203650687253737823667031215908643426042171300755378735660484398389400139010175581581078844188634926976715897395732983361626190323846947714220356665561444704993472878653413384903119513584257777795147662939194401581087473316899545862964807241395243408229603998793575250273858734963580996233530808102132375241234927465864661837430408166570194664739582415171944358127640902726132671190526909722071417511215503785333876730540266422615076107957870952932411188104129665421841988401133489340168120048937238147380375859757728480278396985337974997490447881551426397310787180447446214369856858440334006912018253626905372637078014450956677830963157852433070620535351071156164497682139332265838548140953046114446886565298862549348186053411462135894203450747986406761560095788931935995006760013045692169571193015715498924842258240569785356955700490768372071569242561523238892333784543744014122905853463308381363145777130506903427437632148310714876614926783764768130883962702480829604574637604433188120882633063096593048184344323990706414469916716837318086665553953219385083680854590592554934467691266954272105411610870536599997159937589396651613185367540266569718287928026643971151220791678960109929228228057247756571085295395567306024816526748967185995130492406751287275765343941079973329784173372604822138528587351051738964868569087025946909689567881971496956731280122992452638411711152151981913662263695396223733380274292648624767369897923107084813228300919505785705950201267988648995451263819144701195179105231046493478139924865501099048920456614488956045333295417667887392580897366003819476685693105657057748432910967151658581817188737979566231303807141190508243959811074119978059241713351719429905985968934291359195165477851577250344563687734683249961726908345763327980531752666228087023579237014834477833733543681809065604064243959734001739768503392291271857486507303502986177155402098129480088901311793316240914337603381199795323574175706824864604039577168232324281414473987896183926104775709755480211021776617220517894451752035520537974864055634089063355775110525791626829385828376166642124052931505357343977540764762954394198874869869711009867367491870662610069054966736346077046849328817137513605388906091174626653206452086276231980875944041575739972441815908815327198752445463954421884091167974113132926084022635069808050846224616354259487892847838247383438509678118425426771692614923715343891858969887872059293319095562832786276270016281748810362140679493523009898622464012744227569872136037738549590244611557591856513796796599554059556973874723219626573526421689359096606467454437375909675340848118578297781047329399316760424690899462481341592851877660956605784826009563280133972361275791374443763092047045948272766765745665255275788110415799376208260651893517527424710647569622602008503749014063471913658024440286927712541389317490768558108470153674200377432325612979264291761000847207390522629258766907073587527715778892119873262456201952195950129132777525764930858685730026002053281256233361028049017824822645614964250332693660203537373451547181007126226305435188033394130859579589343868066617643346015497046978893691627611625166912597671831145349322419991493943924828855118664015784878330927716352582144988084002413112610325362740718995783393077191805066124716147818860078229718199450749506691494099525607206278579129514202693924577849950952347010685720060015384959625955607780246292818059152649540422689928141879463551616988810762454808318794810737366656668444586554474749681938819662192419395003627715560560283218271896837620740856397430808511377035207151970939435017562135539940274630006886597393944263855706239619498974304216486488559914650384949096264974985757655533955476068827747823008875234857667204414217850794728650691038857138764548665629646550128571881811853159259225903996495434018551505535721165833538465319729956629172632727923234817414311517423896521725290367788788706479729737003762135717006186136489156442337824929557269726546248098739394028818158639271484800726040709574492004990867546995254267570724201470729616036481783009875636688458419248196622812788602979828920085729879383534999838624480813146653575406761260834639002342883671196014173319438070404437474754344861713951376050804861181490318616512408716770902185922271961683103943980640896829164311438497811633305889846996551156733150891947522720461157215374035107735938793493235218759216485656006392488935968456938143447643328414342130913955440878720517449717913702862257141433196607123717400300952000784099272226653803341697470403881313131161041497110446724065888462850162338341066441392840033567869837500511423899799751947475090005557957983311171577628729981157411229188412877236394292383764062266987489669753206585914576167904994122150447963084499029897733185479399128427942670684650116406895557519313512797656465124569975045346282503183035968815788105483134401209877800226408898707902605412130061004360546219185501596528386883405822675945766577155912298140379532518622463601058240707490415457833430622006598023440635689126737413101343869616864447528965797903607315426061016132756032853624370366875132069301329450820439114455984772730925416154815350917015445331603184810278660764930116152390442575051500153483396030082019122965550599853709418681065978739619153244041603812973482397641956398864265135203311212500836490696350550110369826041715231904038521682951857315239649472781514163050362585176862400066705095058568517388803605327272188299535693119447629010827216132343216687175979646758116607001065628298119860423964139698598664596030083394049713723230177305242074539356470952990423673655553908193070985894301635403465224091430882440500197463791785339135308935511026891011306368914024288978715968190687671808398973967006168374343481951681922690423834721543709360017430009764174953226420201159946838989457880539142363162775428910760274371926959489956221894593883097647907904431983661399035814495919583643572602397919245267356872577560793309782363155384047241254914284066781519909332245377211260640895725032932484199459470840659001847029820424436615600625245913903585938430422432009988673648939594656613824784581944058773995469125929741483602835178303672148659766400945386578280603204659072295107603848948221749834831527466890955341866631732665651581449252306608660284826289992231642959687838090574383740666589763561197512858729239740915539447664441701879115979038121800775069486710553637987509267070595469511466304056590273198678308223497823020494079873802838261153134632306622095714838036173790882711448045436647287115538946324036808233544035354902199375546154317273891238753671797419058746630585939972712848970754632523731713115862245368627300083046593424877048037698677868718616009593517497474924454834171997568221925042777952259020640010058892135606902505565642985616485159820090144754138112321270079184185335537452904774713575303947466605223178578022357553124688990862268111448134759758058923620633737044765012400241275367429790478020089041010478155054121886852347203262144301438852947154634241128812115605773695091239721951247033422681992975291220738284617272840268810705646698976700366129608828730024021311217663683795475030600469685814948841212256296547342735362871435928626809716349104181512621027786992338922766178441223223927777420607824031318742655158088108157040296391643825901365207636181411449907948599653618888134070697118462170209179152032353373398095147564664281482708840730192908500229811769921765932755012850110330457135390863898892836008566989255406806523467877961522295895846591884784580330669375067518397163850816980724352544304547111378832360164834162232215173541838040988838675335119712913711611959360946455606570721663964449066430345620674852248224181173380577446945916577275851675952387769889852970481483605574515883497977647867081671105840381652053431564707089008938865261700298606367182562017074368180413209281109711116749858327618099423492684175836500123591183564337897249895238286397597057908317300801508406091407276761315452462162925305878626143220239565102942384837208745736502856608089892819854585371794733380929618403197239635491009938528820376469779717229878745310922863448943020197987650724645059116478299656412525979186865662051352921529905711371801402180885605212754930897600685651670122801969492386803475541730528654516569375563206515454004828452925032656812652249651421810752592843428567868163289696395003006085382489505435803409640462689418949184237459424898434881965203395657100190475789306663375915951929006109435580855191667957288224619255291625629629129004653632692172583916753397627276400353511944765142377252155092391430608126285496128164297453758308972318402251492311514602488247202872040894807774685988477456856402777907148856921310291325978574967354873905420104448874939963469635849342562017258298732089652750653766487693081335054420422528813586549192062545964256162194508492280913869634399838391582997255266696393103374855913838920564919910211826160156777291767046285243772010305845374641731732770967137731993007839459650049798185861123418932665551557815073172316076837079713826482940548319120448720399733126951120743949684514762487792776950923549969926208251842704248927538376294707122271221225173965266323147778943241167535701452410047839079177653030199569576990456164467135753509469592147826420199235230901872752603999770054370219777783146209879450948511873648249864384979923081012865810153581296520577757791073810893140120024537150755187674015697293810021359455959840968279079091934064615958222864197120559819659686557499431157194606453485657697206463687089745059631521984608644673605829995371178519623652705693421171995050788324267554929757362808454316773149165643542301826000833623629714065444201024958271222600098732878364657455970807865550126964396257857095762965256009993664095260372826706509727332476921437149060629800624171003962646503733131363148781484984897500201087208653915204560559508544509519748801431109683750581531614546659982275747462951710511679862001364171516597991628676340613939860776572370311202341539718883701278126805480240892259898330358593992871507217938925159153591363809589308292580487449825358089470550135152148766793594123804177477965573661677318659535684610038989390832846293150633455083235086334693874219506658698750656926687064330661103211883435571248883384074850433773935647137914129389977129328813014987946036653843974671092323881277802056828280836838279040986830223047031614019498280084434561287448795217441409817715092741717864885870122560239402966105813248498673073665674267537966375584579760685817205651786701019759360598962003015983667883604975944313608506141526329348036214866971857448893912295336861317506963948143532262206754610259656240707946245800763917969233400337945908024468806100944989218264543706916424659500380688058894678267433887679838011940700772275518143142764625780368466767568806965951479001053180633623248363496449745148388689731108463570036294149263122128817337211735178322424306303226216616406172232771310663531352664266375818268209161742239423029680374232879603029733863914902372940467698158886042738377344290295935321661318229425027755297084000631555090391392341472398315325317899211880007373596856299312866677019538001541152798629693441639525958454750879476794188404617516745581790975602159343770060563057573594336827907527251705612897948012779830394503359778732094735564370282755249038432939612413800768815842944571073811129731871154619795564582138872483070056990177938288317316983575175074729453328652101562742869850758682257241724007907182063337514195995711358854034724622134311028456407131426519779563019120962603551364768871653222604104145640917778363837684796610677876459318829829690053018120196924854985014701065701905824365288446919511137657353711608974278061178198448597252430524508707905333819984354405661701911626045313931399534088088625236176583131249915940545784503772458910345750476526209208993938187964644338998394807491853758286065318171336652909458579111473674541824720419343247514963054304698425957899099901994941061213556268094774623076549533696814899932866016028644225303509294826884091864198425438608166438998802393951890579447119771787234153974911509147772558157065672553466277565739538011524176526893156900505292447185974310288682848561505460767182835490624681112569210335767623726859868915547602255017121768690538531139609517854525283302008182974856550938694541981751230924765887778538330584254708648168843738591510386892357582852052813607337195792535406109131037968387092437211687211580104670414345480112168227085884694882196725722355599721911293704480535142343545089958094672779407259254719356094289232509238996126493868356392688123596684605480070061242741866321178837459006508536183262758360690761045991184115746830348801220993588678187379152054407718625189646793811044614915293569130668287266118104870100176286058527739317599601064978129922072767374285305746732218023448640682700661840323607984054640563637767078084935007198119810286172702781246094815520926276234615907928840124643582257742691590009626785136845689948142005464119808084921318721099551825316379302157620442777584878759751715902729622949908832311874026445659703849792893550850162570216496646715345131232629323163242594504406672959099793778667788712089988178304063489803087987955142871884985804657633298272336086491125825300998791577889471870825334355821424163647782188801037443136800223224453064505058005519641009279990216576541271738757221786890856975733930067663553036518549968028024292536929158413353437983771702665838528101344640580404487642449567286993602335837975113422424190363298557890943444078461172680134649578306633319917752442168166787812816855635630137702559349787794345319302924903234384165874523274040463718295458523937274556785276775155358368931375913598693894714664655644431613529477278836064672364634096820537366052158046349302178358524174469721444164803521680685288700774275658051782563803931070218100407162686327741472343908935577605104002686600992488081291915496494924752621580388895646973994589567134548564353344392444899759980145965263969519849791603033961768233696459688948268623065527883205644656641676987047151469808280996073824745746353193053582952676371780767831469704715694184578297094430773073023318065432287885673986183372969000896729535659614872876100797446447568225064574396348272518011058335596478001239631071858106480245466641078964876228665501318627442401314884693286542224189308470616479836716758444944292774985185890106968984329404278046419050767815556194668393042127219959400482455543368605552639872706664650194238864792383888048199068449200429619369811675467805190546787673393217599733872339923607670162398849283389886784497602366064759040243473863334588635646201359603417001802054579529826952911095800166523740990964750343754616648520502561135853215278747779457920126396525699944169886085532555949670128927537288957812518752622909725990575745789432534512917707870426320788771208142438255286220568301763979906875862316585344400919181092114581039283084006735613877883252956683420364735443228765838047572713249147916534583974247221025783011885970229179795752350763199726059201057351106513832038099907989871291149578594533113315184163049548180988930187230852058725556584903778624234708222475716699990254876204215607492746646365143258902315355746474351670202482192952258702582416666581486160887372302642266643170016841103715830695363297862793158112774654008333307407894776289562839493042432450746829572914233964212930781175070450761725242111230370060009884439654543139258873637891115342223915342249751910604781114088603034898673779112797342827966157589734336761820363791454990085608083125346276157726836178749160872862695246207563905556740435013956064533083463417992292899792673881905264984721962426989656545153272737972477246156380150877140532859593043878859307139283984451489648570486113504680288290496518303045260438908782543617685415169452243469125565484892741076517868880721918720506305657584980316684187306647868521115686392113573486879679841769664830666098780181842467698290640927157637594332873021881292087191194901213339681639416935979811376056873760581337260255511552599230790635711554204302827152287547185062430201245285131835481645080367889113011797320402935742474746559959020938025986702736688386196206907550155038379424405445599939681132976551087068248769421843467126255885953984265757121920646763277931333146884692694659148763820430351823731145789030919209681646402681508564605119099985864490205171185679590576536473022909154426492226984764096156671671222395334954859136980051504565023199832287720662250417135817622781386632768605839430592918004101234185370428789790980581664797977451947370061938903219330346704329571365967512686943387301049400153287365957446935305640134111332831242223257977172600951051996364072909973502314647490876260916295307578192448325262847259418348277266425778124521388332103478572759338219095065544728704244531515684696110666692582822231425481534313607540935230435648260544304649831036470139412162812074612671898703104527181399793429871880634020373402785696384297921351150650947341745542866821972043685303452468194878966474323683421436858883457374171726673499727724133134884987944949007245142021124527952783007478339695869857700572825232692169662158043932180739474013174229423930161880194997427454830146908023571020143786797841734046415837377520084474948648889996895163964917666707731236757156323365533190224759119598018637782787273414500571678938975889443486931769203089989090507114708531905684571371578793719257135258553135890734144852455508489087303500227954981059841762539768058957263326528428571539037868658531118483376095102665833691422930583523112155990538020186122855043016532887245210647580059718173960298412473979009277967845860784107871945995814738003085510389348970785204492144609825476272892938791622634952888918029332275691756521573815485831330200872866180658033462199794636403038645608853363564044555731292924900859688262272348799715392176368177369844733972501104734177429670508799147487026392542601042561337557471512838598578787170538887802992172852386156180288769987948692888067392838119553168554546136256480714086299341300832460902710549037946789854625961006145107227313736944684542994133304969826128674969346597877008294162052890960765440886636317532379333990458418502759882475182905211616301885408569103094464055226180868305000328643909197222488872363781609247404068514352751203503028717447359917248479135227230848924751457251407728346320196048986614866412707416996156889382143063645835293730026419040309062913731724984729544406576576809145806149032948709299287858166321848300763289586257959026127959471068776682380952124187488494365752834262882276198183452529745897237793453304615490216920040014958204167527909258748877560669400738566652299070132769908294274186252910337217817853875847768154294237997789959992521146974731800023632228024158766087629292862626955989361838474091073035069450777074535106502588499444240351202304664645642498745776432516162342454227484437012529791320639770454644982870567695376160217038416877472445770991719097217585711634287329862311097146116915573180111603816850209164073439822516465822674399931661878302368891413724585874899379556783443128116078715507139702955739897006319059196941782472141017395584116849823657580863040442777293965641527561299003489251314170129582338610254789978329880594190649775200616796729985323827941918986024879706314190269882678620881992050918959766935006106727956997339537270693123694009013987005211585103662582501446747813973103810245228825863633249629124299627537384281340310571135950862089093684569655061950588203319936459220696446877542001065068976769421469572416547760904605217266453580559026070554008534677602243990345479828579202959713819278277647144626226916078212570194665611658930048525639079621183321020446564420534569841704791816565598784397596027049962912370621252592142365613914709573417939134961404455871813534469811561112763357705335970042937006110469796838111414599535943355939081028389688530610357723751579306222485937342315389383419502631873301005765080218974672361533243888723785656875049042277987158993922611645129486556637158939762363761436260948882534486419678296103925572471819816144573167918204077432072382877858333453709181135103679616651880025537942528274222523111347669234427620005341275454629436963611172674181384709606334789365640471756330173504766787597376759419850958455357063732970167696044448031749880954426035718294228564941148228918535794859921242003387775251126004280572917432813491594676787080751657631463932977277709392049703163692879493148525859576532583279055846039681732675589227071987250318424985200019320265703144427721035876692627479075090661772283827541493021945545074930819711055584592784828531584248663986112090040662241852935341793953464161491204570957049872510935306307701571566860824446021953542662279424580224498407538743709409198907205873440054427458641694652921926069480668632655267573940906027224024269826188942304297238436503205179157960512877792092980757327570816170863445441003924591179126512656357585209520727674905704953401209099820340992593175257786377638847356116048324231498200987251475658444514008686988133610750575571064747179953982692256990146239097724015191546795470802707157312649615380070023803823728106234813710432014214403439847788746476953656096384109043593120966261935515970978236863127145300750687018440225183923696353360289880908700061260387344255316955504713195688425883607090872285133838797300451783630295702160581698448260159149085184731503019194899201079376647809473776196800237571408547895420573452413008007118443083737606135439029239842629876338504088915970771177445792105077447231840955884818772210368798267207814486315002784065530785479582923333914125477096830529509863002667481243664672239447911674579882996799955282330385838067136723635488196230043337685923575275082268817781035876147950962980926199780639676570945176281571126606520344586244068883919375237306482022976288121496844425233250797668239347659295536034038934391763777335705851757433741076698222786703340965227618825550165193977853642449863657079101224014581074305168604622893235451521090400145092628586212150614664182761282595061724738171508168992262432272739595435141686190826389108541593495548118831755455555679379510094021772447244520744069359855551618682312733428465465191602990797462379662880162368663813976218534089659002344964392314362435257484614402569560302765285643934746854124216380828303025841592293405866180533041697215537905937735774329319331177466844257668609156747687789699557242368929546090083661368869023594720175883033003647379044997076720459707327800693533935584428106449121670352055959303495317302229709373734273426594183932321171869093150327226758794524521306812405714368204460892952538275774972203173168157328197941890168475678856975293577134775917419120756946467166037073964312984683758011087322704278352039438579183986920409271862017924772550367770336295542481060688469702683849328757738948036759573573486759619268857510420530657038919489025158294720750782644508650077602419236348718136036371920849225940738325593439819698047307409898717937378395095852044880050727663941615286045861548377177544880227415042437001496920793767775879312527446884903218061396584979383797923252661399448545221349835142588990073694571314236684419540776786832977742335245310708729405964267940860207618251922149847260371950266305521319784395887367631961380193504386319916671853111506685367671243121760087368056266224228729238238810215814013049723018984527675091499953589794116867031024520276312122530251333771143600373542620252793372722532842030940672703338717573324041673097093032778172114201464921303168154821836231570347167181171413226756588140349894891685057713778262850956165953986970942961861847299608072116514024951539139440974140385921610052989845351864469382035325598262039745235309759003753932556737407626505002692474168322902880396811235483648957375398716768844998737462198853292343174113516995791676446629645499689926632034459296841312016653953021122927604450653708560406095861683552198862797384187916019793081678205290585840672109726727943746265543719751029269306520903686155086263455430307198479095304922747301582100010218303650267027357783149563446348273172510380981828873936120190194304955541107670264802779951736789740983865811453696534223095715432491009503765028894254004429889571614594816436230321810636696923418704131044429629482134766724238586155345967063871210851902698632600979554512653063328641533804755401191666984859712243178987462950396721254082253339449751085277155241947668627565549830990287530461622315160959468254643754872600936512170140447798038895630641450263177618095530101163768715746644940842624477328150829931671360392885381813500334027194314178577852238142241034720288879296166496565744486790401541257468104857594989853577212449301298534435338884649227790316447644231765768624579949141514407997456479227717283170050828209582650743756495400125378051231068971517405598590583853788460007289818991201948676876803871081897901621167064075121331225323563151241444790363999557414098905832217695598518634714967377327439980006930474743154981851960362311238660724972639529813711495541609927258891409737476164229934530401231178203588113135603145758332163594586870518275589670513295855109042789813498309733693556055465998133725757847152893877765051133153743626279926694574203983503326044286535981844625919999184868901464614370195757367122660090391866213903199371953023970246750925666422219006684501758663625879678963063259015669120187661707734815294761535751807579557611918840680209691261169141352325525335925281014703657829467426439324146778049500021575177574369417171763539009133112806259155330493295436883835161554461889462772670533458062974777732854496038652275570670878028854364018517041016323138951506215169583107921148342041911313555638035014935594022585384443689465589653941664071101716978861146862613066507177679286687367518078616093334246022545347240267369804279112142761562607397881410726712102459076881400187205331881679990347810676710615758491554886211899935191006840425685629882366663494555968583745615487228155152172190618850742846913575869511628364598330530447376428000472207797980841331466351374291696375541126137834141118060229580190160457117648455813411503415975678520580457102412078613729230418805217041390172382922808808517038538707106264606006282205806142540212728417153726555031409187161138790261683444037970321926183273239294394197786707331681707324564863584047117610662610797491716720794910245479027510491192639435521313935713225843042710290206186615131999245823515262776880733886440214026787481651159458037846221503531061868654533404631177204506901694514376503944135891355719435615806776335613646118223848511714912908736914625309337232784969165780490771601950188330326737543616611893867293349438742643739937261418614056006105192247289772583678454044368690397619577168781983314771155773413710286000821809223538958777927466535712763656982543094071007982345919985320636333731793264490912251261213725022049591105721363835171487621197564877724454096565056540346747615337595058326819728665817456395328186742918121056110021482441783503596493104635219726007257012749635458753137793712091951669396801997347673943187986649728755926995531249594237312880074944315621461951666623659438080865522812076902619661967851784072521851951870995006008139986500742245967178438055317233925110736369441032311842946270917963296504323186822540729398878337192528088874165181873321022170040876248628110794828237933072966640250933161981751671299109849145042266183108139879908897854035407710094488928768164645005773148359194719085350169738127132597141714426515166198653568217882937714396299239119722068759239547543185182255638733750141867561342242120983671094866989530544122507146481891342695245125405096084472994096879762904073583981358926705885897079291476312152025629059620931159108142200948346038211411977299191721400829383997974243054833728220878621446568362745429051750575668256520133642904481316877292984804306091474780526171293174002370195183520324481458087523166703611224488877443972373910130886099433297693629947467564479979700030445791019474571971300837232349401484457563360740431117379988547627085887015603239792077952024927162376329283553989845854550025737161413519039613783864059592364473724210783699830298462323451829909471404369325412693633615265275652795107230110104939478938696651480879927966718729797506910776706095265071154732547617600840311743325841723670564228433474057971977173809566348267637839397133266801492339626003371304057388726815693059125617296880701622676761536510854157038389596676043232238436999599337131949678631826958894497859738577082961069631019758168367650319204611659969139696204137994509417418935246670066232539305941318912508180861904466457363789286143306890569218783647035309420504803929029329148886468427692623340592668274914890626250909936932131163082440444566960825048265072659662587592477249449968518300491073162586075185580119201620567316466540288686884295633293298919097646574579897949700225270234767306993320884651177702760131878912955425372310026130289019786805400797501473749841932465358265509675380045341318674092086918071263931750057311296067695691829858308697702768253543427123635777214390002127942305735831383784714798748089441532623877718980415387686410110035919552249509138568868636247875776758900066136724164463323569140403766286007109977281623527843359584001680412923485991461806425393250150070360013275493965136758079648004719233627563461217970449558800667227168633982495127162980444511363839185424598409027039741289650681336065693665926941474101232232636033449170196848717596539914422134343333651008655123098238543047832330396464028840460958534729175871325811554123020330789998579369112315064982128626503152064018993171659997983697799285640236596261953310002867980229515597548078369133165908463802524798343246080423458870909090210303367895407794741772940018105897884878515321228997035313630405733118614022953738211492461583986203982864676426625044061622961611959264516206579223000630016807541507050098704028662834459494752622655749817069326216813500921988629290827053974408183857730123626578831567095897256927576941604482015270002371816714542391609271952384870885815759032883686718041758058174254893730277838916614158280072676345427972223913057013621785356030327567727650109741365686928433615325110555856376631804583521721688882967918278614408174503615627340213242894655825931981984413560420067744859702518586835518549798316136549877381164802379770906204638423936599117102066111363074317535011168318957167780393118215171675018718297291635237658732560496034449880726414029019629683598226910334919360879676817597443590746220663204604490743672177165382623353630447908099096922316442204981875530515324753547668411513809815514456756529196187387795611523995442051067754264271192890528678808107831229558416538901514973996646248766923691789200930094491220731363916705133938305806206863786465448591396518454140724171840518592635918976721257883271917813617970255577008401249189769112595809500725679954918077636213698160983069403150123795985047761034518275229754505603596250417468992482280948467304153322868902383145993498643112214690725681747813094166969449626588674359508474800821059461462847310586875388489685648903896677971178649625048717660888419682443914495674830196525772112382431242604496929414302341088066201970924420036309443477167590886289028454361350052069674501200178880914905239604882485431887770172710847266264083601714085642729365217024037237064531045562547547062559844163903508571553373654845542687063571585175048087430660033905034380400336755015750868555157514551293454135752204940134152493971400166095331306981089764934403069534425930624059890685171234081954640454429049009740727468866953320145324499513646378971487194929785404351132428378238921461473604110274378413338547046082481433188938742069611109136767022164659531188694008790092903443795969440686005706078268140735408921678714777182139574594905858806614398722845059520664710172108748183354409526914499469175324151240721594748027530814990525308283294245528520340822690362224553975149388530979227353133740254284524615666846793045036095533218906491316698445381593164498379734054104483245276662412320612056079001095209797734374881040136406095996920997927127872810284006865021837009259043949851749866717672753656506601264589845240698790365674461571018406504540328101508318008423828315364194720681022001314391066771292880483318426161300498298035563863202383980551645630654678227593266702583510559174392325900724387082558334031296816771929463498371874223881893207520312625764586227404425032916254243745151048401136804331751125778340710849464337416165087671935492348642414200851784802375642506938934030128313867987112108778708639679487254367754354645045185466348020158965846131579813973328409042008116534095378933093933789682016041178180073762458173142645113565442565948233091062570262759369899998470726613578953341006760065027427756877443707466108560419914933266523802194946949450851551714338147958592056251436321203307687066272647072345343988820021931910494152317149391518944878305775627906005783993435005149991908112202781137776916046891674696895707391246449758373451131354134478658372666427328754085339323287672420275018183542451717505995844002132858712004025513629257315261300221505554115441258353121847303682960296697140563944383967222031898519035482326146541103984362668331863403539956400624315473864221271415305105540765868555754008337934733278656905133627546895699845101212441141571058135681720889231530326745257489857207311368186301961184794819789478156582059077848223620232872035939594711705825104878672647216186443640476708059667737748501218330663883394156561649975702338800404064518483672386937344277134362233124516403143074530850361518431501307733992633566813636799053930911921716508840941314134709088460086592168370621393802672195738969021522777649579993095806963376552336607517875950599431824493898516664350774939796951554809815110012987665806103102565476657469930657748170339744188263207668426260181247934738567743501287046339993157323327930267637923721784552248985292200071179669154981617802992512147534283406595692790073724576476472729694871042896676787569458026615651137673006381604869896261094378187710892810489884318836707258533915006171618671701897906495810907402256118282947322918367151205650839565155393554587674921927333176346901809896241544028145374074593193366862594969538893726426483112662100976072606823692673306599050400286543279744881429711083012184985534531449019582428565825894136567726961308477642835478682699830747802767832949429156226484810912750992480419232756501527386877953536295642488959628223474617202007349418494739722254158484947952300416275466097036081926090164460639227135527908672672731360974092903513657177245583617831167948538227213648050761665460694055749515858326165989637005954177033948497810537959436706487120146054827039733684313517419217130933651611858600300200772536771233673235982355575779518932879388205230057163340319083373285894482002813224804131661796462529505108888201084395412982065464511260896974134206511988082875320998755364881239359780314512594982889346133473695391963532864227145389637781918035693748330251552256321367762925914078173483353222061687991717120636720452041850219968101125979666173899318504133614866673135056521204168911042831435544096920835887299899151873301513595221237411772004416949901882546837028112592374674675431587715366716781870122926781509118063899435188728299743077594936296338126029024418025446749802476969233387117879160761973996646104612043262037188123235946143379652546025030564213078086224297408749138898184011206885417041967908986355078615736198154386806812788502374531117410892298085148765667938522020693558954983345235099613164261806148696879439593496692606843042858398949887929648427618315162790519017229217242289495239326201057417147231091799860174404756986335647966631004767024047094398744167524395655757277937217343041449375066923460403832800801943713457270583958151700609527641534442015893914957848159476977652551876743447697121285561750887157159344740045727157365667096755157557132873449493164352954717695142896747836586945594640601260283743616448111505192717324597175732314765925030964715482090226947330901843499713230271228447692854592618174824713719783193135844949436057689589813499282038312231911048816389210983155427172652741103423158368113508417577596064093974048581680947242276648538204550971405492711170791886455827382928614144395597121515856353485385624553265096087991473131843259565583923475523313358402657029161121460568176833178915257065192880346867529902834758020655937735509338984652554432593902743021575600560466861016709392256859973985347093016011778237400685767577526869740730264311668232151102273824603701584950701702540722771861687285190121533191632478881864814470149980717845517487662294196087318817748038290591098466419037449994143929572713262009998061364720275309987732628401593537757381857500573048381985781213435902416009775713229414236589887948387132468311634334066045611343437728421321718199726378056479149719117000489333432197839220984082780609705034316079174046886082193409729346119107224604062898787202045800055871484540356155678449792747124092153032343962095366201801259446219204816317076424019668401146888862208954580430908231183762873451114539686875762545690311396104051095982441695879466726582164533769425629044744068559742470707598524887849275032011209436362565535747533433173926442976201445650182753974439803419717465811227227225799888341102996003193321409201957020142066517352971575083415882522895598536057243739674983131462303896511415293396455461401732021566542942776196821352177580471370089845662047635414407572632727085111064918173943633675339733324985670076898533872745040381665646658919222182731039383463715315717355130961217615860861929604865164257202599343622824160349766520623261741794442795869002468719619228248811631131353693969621953854649979227421261102453743579577560923465930990994385310958733248124976294770381432811857708415493125746476323705229539031846814124001197451730347146353874880501740193385515422398385209819672347132129079607616182144815879219515021056154067879701086927761697920266292978351235432137947561008238576576489217827884560948849852632102514501210144731404547745958681246565607195233345093909027160071702668306958155288758833153251505636738299766504141224376698803699087391821109506550140165912871923352076041533908993218193507383481391470567568628150928261571449684723968705480386265146634095351293826600642132340018448610344595374271331529604974867268189091074743500034170154242116212316881231990103535244336835415722778600275634222809230500649965534978465179824575223758002639902845561104847083412215017888550788749536646113462031482284663460731350225971993891271107510183166873758562781490869398377729774714783070110925338369352121793384055126586099239657894764565036076228735047145738973290902435903080990365645023342534622184221506898333410267650270167349534486025049028544637557906277538871689856686360475723714150264198131213396177959514152002650608559948220614060817483944950953896216828763475023129490669061397080826610238177610435757067796151296151401901565258593022100090203827345844547078648789398569359885866501629488178460405195752159704629565406459355876506617576307513068157509462873641436254350382717840999144070617121300144761188439841722156292848474500611638425312527916949499325966589592692781845349126933472138829318780103406324515291395463287028821398008856391405960953299528003164450130816666677981220019617008409732509129927357960024953448475428165626820384607693921311549338881499167893864694900605936317516449451097635779332536434749763945027005859963811377820371040343035724049746300580013316321253013973463845260489531979350174277619159334550942568475722489357547200115328797123844150132773806529304444732256027939902111134659711386174924510052625983242659482073182457205131308187847876660539898541202570703120769005968435421956898824580414691769276935528183917855496263505329779561107840944920956152111310607955810727449936496220757499190147954969386299518042239846594913743571916488976251143232515536344408397540291453918967816012447257466031634430839494892652989317442781163194962214200888243208979879005046745226355605210350303999726292296127948247242511864435094362776032282074983858534403119557173151746651372779184674012103029247022123925189351649606668479006536749687326171549372580673859106045333127131429178362045631884306867068502531475990456203904152233320132214329685867876481105234599748092318359405712621809172319721034991872475329743544062111174532500514184348446166258572673760258634390785224979497079331684168655673552410578220319409437585311465182639222066304965932410797043989732384803380685065053419000141629927659528056279913524004757246534247948335074525294015480114665729070310431878690383514917059734393226311570625328587272967578067617047393214635007055179953007559923146098238328552949884917230402965507237776958546365801456472096123238819504575167625376105350213402715147126873194218404354212028418236979817222074703967668938177435128653022294929339359508943360465494735397536908898526304830354261351923614509944387776762484063294044936016554520710454406762574399820110983018381030198372587122182522123958034722455604716069053197144058196749781156063082658021389929395962228124143685332957456360121301397529570055461715316345645580793346552106222754873734188022081435195491409444039401404206461744756572810859634490816765916651825738349210655312515077078593262241023858132698245260130149521109477029226564774395760675977624090221577976454012397839572073667990039145437443436240714329351701764270867384968706530331458283185849404246382532154196918180220669424710747909906175308268884262650399595087793339704187233762220825342740469632496732400842008889121623886105649171036975026644480537062468985235075186120471446687306302996152959635642764096184833312645608174497180552674117271291368737501084120475587655121095840721501243717265298068108714136569626209933242402068081171295601483100152689795342482722472240394452158816834482876333488741011293599326331311193694940188789107654890705588087638875436315657975338987511998574331506525681384440517066954917992819339492533396714587953305571221786766467882101554124143517851140901571260312012258786438302361947182132780379504709149969114723541789093836630386566539762645615368550946037424851529178281078574980206139030811459790464314474103979233796978791584340874105859805110977877061594249112680438479181245741674504356740769513345009598282978364779931979164509347546799355198125990546797594000608284295530133345563185960525256245964045231234628144542490627034746604837981854983382363555080506068240105606480675071247902580755329106698147329885585140845193205057242733860460101536014004218680748320923925721045098908965663068740054508327770207120444834393847092306607575487016950728044408328823346165292977881219434224543785223877326674472363237736184600380971475324137555277176445088285725026704498931435921547273541902649333228880505303731829548717137566543795904526542160179947596614701214612181172052815452928218148921790197626826369489481453475636071463404935412369391192356445566643775651257436962066844738514165433833174085031267211391275753805928354441259560226704054405236266090682631836674831968600858201635898980898143283767966614406055038746319128644577463837553604544558344599551907664853101641054142316158208522133108081111418105378283325596459609642316765320666341504434091449481484830560339096805646692973801841652514728125831116170170810291758078557049251665589724545624294791937305611826739108338168350944408697820301546001585097346355115502907033958491021026737626342011891978903820463100485483655140043800422676653899454838957322327357697520053471077916035882315492524904627700537505330526987715778671466941127665699072915831874475256350567129397733696077873952008587912658997210740275312945661262512444764664518899654488702796861289515791002679534979862666844431444336236973901062713695019263119808927347666114856606964746046234518886696430286638720542096759024776866494919928659875227204246524215280702931697345808817438942191477676472178872243681247608278670159631469163054443035859350215413905280519422519482907830186000910524650467916139692563474421133385311256379423064096710260242649637738602714562840461396242792559699002525046012644739314782917649732958567659275962523071417678082669303096830976603872187589059782287538757056111300778525484874001453637018680228253096042588485355814549772353475710015197276431401103433415693647806113959896164790317056195593688281575679499292591770797297017151746016229497309666021437110871545330049941781065483764133386319103481887975936100564384762569611176752995626318008109888698267299240774776176608544750420407902483678179551301429074870775777324138560315965806628510779224310862976366948850165951295832516607756535467536763893535750501143696205288953431658679230226063560391753356551356854252513679709227758495855553410959083421600730224199800910336569110328777491573830705397846520095001241197254730298683906314923134511416469137002040981711289193289210681201086526568533355465757358535195126240855003654025532591485490945454560479767214012399140780384111176262576217759486465014342540599957323834387300485456391912972076920490824661780897773736386704607115762117326231154332270788109185846590348226945605078490388598389982790715942865439944627563128082901117857941915304345866622348144229487687758186788089942196762274784295110551971784781294536589582371717539261482010314476014502063237444438996655349977812459861308371253612237565548184837970123445660028442277134480640422321371092261828520097937434198476346893014183807082332556591848337365463562945077696737697583430468170332459645538719373665422857282260985371222304686758862964563350303126354613650667252988615111384849071391052107530726093386896959909205463577147457818989026578882919873225320641878115097400884052280053786760795355842793336469953663758146138891802171262213558187112796421991201352501344301880411873659359599950663779781919671064410753881339042420673550379537992483598606205840457191989292571739817773772605793714079708221115453193394637379262512971380431161837196895861950098157889652342567047162310809237792871223613790707703078834960825185091064801038949276233910383714955841127425529327909039038894046742330373871734568959200919973243382791085376888428633121544377885665642304751561033630429775338009047337776989842071203675957446361544951897068046766884838818573838229518025582087349218456347464618983297848865201713681308321285503566961338770779605180256753693280791775678961334418480332494589638306047744480912411992954550279898825629313840611748430066734297602983032039014280180923277255615414249286370846406239036478559281527527780428757704519545266174864468108286869544175948297986008665243556292205280451593702788909430048262044373524691688313024548984118425113903159641161811991875996395698982669179544445761727386578268581389720822240714394931718214534866885171135340548969723182638618635278142262385630954278564781525528241332949249524961766914993686519972557121086007380283870385754689964992322722047032386510842046582537199829479278359846709778661745687806304022049901068898593729072306500118376731107919256889001133408251802475594438803503956711904173139761182387788009011875693648832725157843002954715587617809354103907544570772636087137766801482549206907768732585020489101126475152902916218416495040137711630381525034354964215207752975813659386846679753732759283619585768694603436431164219731564054810752190985433898370230551840849747328370808163567084852818167119870059383162114303937167469144476663754234647691258303682118945309980026959069471722255279147073374154659325247979802130689504450350775337899932577049725638663234237611083573101588939057537713036447896048083957690003100515219219406635196673261112980137704951412320962215572384650573367437856043763078450623502558931679883499468644361280735916073716524185316974071697917570119025059577035414126273456795715113780738308455106714334819622477357583657341773048699431487421592783878946364856199301490862368379412615460694664982772517029235694578655919497524373673062237207286975043127269677990661119900689499945897247501111629276906816844142821909809694929747438469885407901629901987881844231917826385934174034829711773525583786751842894293894285771473104583285423159961362695455727168414304754207015194640920779509279783562291879343941740971811901418448854618165927219788086395079175212943193894250087384179755699134587195339554526744358348808049634427871855031003079158250246844848132901766111802546744902458082382083696700991360870704326325430892708032308990738187371995545847517174695993433402252784663607401914451175495748361991961417224255948371711884988879260076543140663861318675246734416323463384038761800659281963419847138385646562014039739744685911532824205576528469775564425397064486537248586961932599344319781253440206119392642758301567500267272582441984563019602294227468317603306783865622970605739432759271087060869560854645586282057743865397694824737342659838931017788451350007798826003926775908671930801760473070169910319683739859002936752979993371450212499809691257600723510358117487959809309449228057439908423920907853022993535967402508410235100782443671434257910468980613255047347104994221525954319647358608867169374961866341411825796903898024541012811276543507538037491104341164728472670724331322893505109403283115650947447937671837808696534920238491895725087311678163419493851081838217544814194798504749121770605909889420714863418641665528728130179328152922607719076434483320860275906272293916834449449502280312275102875697210551475859178019423572857126137054551588517121910446718384058311834767990471851864917778125795263021541049209543201491031146494854828306369011405628734838683517595926461725145469815164613552811368348559377867769528386243978046050557316204732395878122575951965250504249756582825593007839125574204862532550973062319153251622181448002249524151521084865432734122183889035187108454021250407571737240349216081808637557656684984781245248446747298859229342882810130851100907035279325524708276510609172949730887359851387912094910566642867207191102834127232822413403499065561990071783618652602512639919812508661492784243275205408186122511803956051637234249826870389824158252785900162346474448851574492665283548450868928361495992035344436165559726375718827524999252800721696841298503735059975361046734264383024020747731066155780921871190354742006836689669799123277359502952963338051959018803907753747143484689506762797369112714735666508003338794690534948485761382575952296431917690977792412183088598724433982764134322817814613439721655349492890943624319838122409272649424290988484197998655814164039151015498434878238314303830201567673886766241639694045692283657704471659438298313040606015298532851493205648715057433705119473093770900786903231303916497402552702619015243110142974959501287228969361544146329759573807230944422956407482868684032531020748674595413793204032116948292975530233385063917923632534376790209942035976598698984708924448530885303957023521937666166007303916225711137370606106549049532753593783326959903829531263383550631497082489452648815958609918652803613990585527203754718134043527508664300107076812883589630806233050610135906353847281458802502265897494193991421668839090775940757201539729484958992089867868507670019753881444188675865734072825893355456854381946320981872721507118809097809509678543557417003588301343898092160886837303641101542228427889512957565811178149752368704843152443722336930044049969033964864228657264187704283975461186499334188060805041107816354296523740031036610083084075695487194880981049526217906691656228878291153449937025862131906485021558056733195407845479001056792082518657091805748897085588753356011065408261846499932222214753939278495206314445238776226140026227275683481030735415625645118921736891204566198559037843200333842642643074393554995995147084911288974382738072116567654811476145192671777264586252001866543777089128687291141285328154723165254521074286530322107412377405570262977712208621743328247253049187386915042923811596386775691820332433169962084667326063400417597999694822312204311129779573172889271044476703307872928515171685537645876754293131422484872485635479498342794298791344650942930427240409869363101199331798840054031251680580469044997922703920856975206323037850478951189153020870008599986534701613672458738279510802236107933318967416986898420897928476372859680305113468821531940117186777448337168714665839031607674451501243740863073415953929758032217213265531411079779396285410250953089453895288312189945927597854592371367758628321205867334968990418845640507869288952967759725301738798688358881076193079875084769967171583282569054553984767524501317163385632039323047239708415962800572604638639504883295330490534915252963305035440792525940848849424642318921877250144637045467822635941857379691863785903651825405609864100965300356269676711299853458911992795338635589554812036931500000557592665289032851770921716199208831265263344394953401261177011690208158333243586874428991794944093110912234509083605441379113645375616012751049232186596950411840454643955200199551536711925537064144474323999011408434534748419910341521104973282764826827569314867685266474800122571457615185336935349054785095928697707431901626133602457932953029234070373885406334842065061150638217747990629046322224300636179065349688142629906568134389373845226473912280269273809135192679088284565916057698585042653566571478484070660151989305626352120695244484002199428360699112979423953336066131173824334750302147428745155264374878284200091288307979721892864187674084589956925272041838937015421361368704251528503636528424198278264733623170318539124945474292860635777388497416407726826740190413096703377612710476260327260191845915756102617233764521218543167989819981809342053280610143073034736421967979879709049919085844456826618443810991394361497313864602096603419294531471127952123206688017077933019401885963801238652353084757514518156465423185165085244054557414945637349826132786633412472296782561283335936201054723437208930832504990648099540869307131078531750729866801387832395071366097080991587649577667074916774567806433588862766801630863080905842985140597462022300955550031931580613838793931278868704197321261576696347550669159997761923791695375543566586713859791512052126082160580582005645538317616860340332074845671251972936027758601091004435508866353517599171999613109304516951421572752346018099994311634031996797185063576989221632168774527369412140485126042841979291421989308128216408265837237815072399404712596056207301703681523481936794759177696127797344438086784491624395920361530360055698181341894160578490751111190225694119701499852932218399907751089436518152420863230848416926395295225883395471112039678435773001911853312722156073297791844279979130168605731768575240994403371170343800200395811337916887094997306596076250331316767015160537467593136732578937210101502452574569083345930953034093955615521159143363404645011573205385739759356335587906783451516742512059693317164868799071422094850438070554223600206565143777795120566169007931031459822546400487611139119073593570891236364201214346588075489342520798165428279264215454976223067064232048644919219916822537143818481677139573566616665581254972956238645191990069022151928295892139666576248718082691428286449879112921379142675162088110291115239063633322679852911997931714555722775912715077359973167283102998259269376462929967402136650884767630429782588052714332543862357588331017126233829930501008926798155028696308905027706672768061190121078843987655227345823554056661946370786337300250200747421900366513599827843940170811365199585678557424899259439910676331152727338943918069866314993448035527532723192192438665293231309536429968351184125815321310517629235357425353794137317769629045684666684052818807008658286095533404226292631485036673890999215860828554971422582886985797071230935073989055552942122343681785569299061273260688405112209951692991990100039575299093321870455920897964515539484730771716457890441727348394167470403362310831801833535964329139917762013834195982034219585672834196697229089927737678588608100307226478797405386980330167307306579888542403582965304473485524839481617845274696150597578124112150560983963417250724268737501735100256624501614628524285087295310367903171784897899930062134338183065287690174736364461271540374789890105973838518347118266272868426396823742788097463776534920638477552995263964694551622526052220467877152832113248611971560962917415560394909994479566609187203898795093809150440808009360916707422215390391816068186603176860644629175304450905184495349505392373144889682362234440366447897265937729348373734038447186884477658569556339807436299455476917918403191746866941990299664423032390560618773229257117607167769200728580177749414851674123167934586094375497560491273200016772747742517545441575638253222831839702532521031953986488315890117750621539204171685952393366981402314129899426289871751547310216287880764920566691681525692388197838388815883367250593901029172713018651368793595613009822255058142330526671888600277299384154669925526073974114585187024936411205839593336095271190785454205738023528797027385541848579595576622123369498400584143765752605824429003861723928568965391709458625212412397035943442632055941387878090228794510162885638713814736306414203541994814320909287370624470891286191223983821407128919431735675916658315944269342223951223515714930797872469840802547959097103272125636217312922724744371332933870447456051095043826828604655852719418407710258695616059342766093915419707878194254909435068682745725896132443199648398578059133131274567813085395151391433838480476353280112274806241811715757866646406804087275725976871424120194756788580402014548211914164244193063303522325990422459291546371269451150672819512458542921688753120807348852758527320963822701615961510269716326666364140012395011354692617732533547597086247794323339472975346917530517198259334607867745920736377903307429462079053818477234586019401791653300024263719439494927226481622672770783391681533816231210006295411329929270491187988129127641999695211102920976147920371039786582644382715034404887842453883813333968078354588378052939209732174433096737760946898110720944664742340042773565020060672350586107585179893368422337901607206649793221351324662123661202242061285577798666713463799017623033949633384938827284246637692388840929148196421587440131905326755961489915687656372019363708419155101568251149431440834141880786823943409777432760412569740143375246010429439312928251041093305982551271722155346988353162908265007761726286789796466038221192331247611551258220867444816781445891872408067232764267140530316357866814782924464856742162293220222233223152020227867920768912823266898436564779702666358589215032117741105791891224808282223641884081662152237326909331989725896484256415881187157257071770020928090858700023463597252645505508598840809401057604676894873767451062227605989657208160827438686007736562775832974582503595766936804992398155176709174377787200569133995246312315364808141269169180753992008233228736436649917587785880634541849732682229614976595776766731184496476099532517329427114704231551823771339233188082883006715416945797416549035640379273928187947565155298228322657391429115359450951122024045857543365407719621720573262189928131673932348862742287364923712666554808346360758530983679781066725265327128246635202632011608644321771600453061546779188585691391842763006053520342361372171600036856182424343799736898969718888862711268433644355545509021163791320829124690281286776805078584311801032417773578270902199725183715949585060379320526784140865044983048918847161014973214041780908824793745241547474679051155989175489291426686032863218447263801663616885556526729993652991246949094097746756594220650189924724476967852291490051277882755950302310955329578536837955306400560027130285794824193391257570685122454061504250375644845098138959627790869238789413246965734081650266087027333799798156867372576267249556848297138545864114166391758640703340226965139072822463098481130587585887535541837675551130168737367873105170050558767999660050888368161916711013237849986040625914710497543021106547563610463142932900580065762860935744230632291477832272639914715113260010973055651055401051103090266112069526425030740353962589629275363523041794648768223485202607163629271523297643490587706251988930644859302813427055321441601626494482839591910796948389841964627512232122848401492437151750015058571451557909235548580364933475174065393477814871519689682372339753577890859835892015568194626791646811095827001265793281598107943782528507154022351686834953362548093895746897487036239280558150387431366920834383712513017700302059740564707794696316636242430572836224367758618363014899073204865420418078051686959818155471985603355857965249737552265863710810429769180087002416556587905823064449710629365647609582301701149782454623292320590232514201466125548921301661997311905580305118563838163930886764022250421906217129752232779868650478647972347655473484707138724898747499834478719716535401141434454298113876149108604876903074204068319815943844222402341242356751006307758391546537924670624783882283932105025770113601934133017108219467375346233164452407368396438214917459309842191518418298124800201212691061793970636883483029264245082310952437378110423272998059914758684599155461276363379893336050255982576554059625648916707064987491218843706171178452101164966580572319150860447858757305191959933491906233992003974961796508097431824099929704617773572736881066128006366461402580375424820793357765832774942799209228193558047726194434741528603583767809433665589818762624590553383408735394487902084467510607841255583946391859286547537464258094412565758492922366580689497381413020757014050160921220666302447278960945342144322740324141196412340129069145085854341981719574242357196495209683656498829467406649747506311894919210383181450659673388114747672149574759874073772673857752483958742869507042403959566507355132703026543768943788866892005481922195858479612389672910937727702938011591240453595261591227186635527912204433929487482536415812362158344135363614495750792862821872489870557420465383825449946235200697255117161779837350006127778494198965535237689338745273442229840956286357000851797786068853880298588105706119258302292377239532294093876418486852069363442325254442130215266353157051898648108663034165425090626533314088735359650747523423551204993609450161760783083290204197691295362677799294945080249210041814811942893279640333210667699741108805875834187433918176445611451347757255382765483068543812790292333766862418830170178765908970116247727901625875356271317823524209914292627597694216391918817244303667621031451399521221201306517047870991740203038143503205690511174395630333458114107767319309276835697017145705151238322559647949235078695615222287979250867307481030778340351323043436946649807117700536615254851524925042724552698073028044941463197264385808493701449490565514528313872798136038486706593898507060543642132537623540794335023050060887303423766730434714032859894926209634891337291656017104445908965074793898600743265086279394427034916586430126561061861054237290637670121306354878260504931510051916257041611444215506147941980265198591588694043629934422864117318791632603707206683717595171293636111557560854301961343941943827874096974528592635727290045873741606687102584791367605126306658408490650570183238434763652994184163495575282108680506511591893067319957407134500840185344724197889481028724624367057442454801819741186315185665119103071448672811526920052657790796271199291973109670253149879835074563721817681815971724421573882912501781349709196958365968804594869391595133299470163434674787382532673192013801605525346135907631407554971960137573769341608449593304795240102398947055548569775946101636901853161149797930029503810548103882055869294922217622364177754020368387270639156012805427133659602572787988700740448943939772078729040009508274868521162540645341354312381220344811742491444976125593499694362776097337006031665639046077666844065289122926989531576170462652556739180187357154083748177196971062676495144478178226015525024875374580192332982958902033387687712744890117076622057601625379604825005463876603514669033902912858745249308067478874694032751601587896720496050402257511786901924337151266911088805000277659993037110767452254869455683362365140889969309525783410276169205521182668354684585891008470799950347185403571527926364426570196705045047096392112319748266496960147202500702695156393107801947334060497771437800349448283496261582137709826097026474750254120006364941595262727666930595825260670516642023864591965090417455622079943002890666506188690402969088667435664746228859540645429869096943092091987730459394836477902951079667946049273160293907919915046060783680130557214378147888741758746409111744826675734444926559205496267878810953895532545674589845852972066879268794532618465628663918438517929238033881766922192816317012747822643080792597196525725557481550578150658771207268110017333857329037065591984253694548725669924907020132991025338187758937387824804979563876951130835019448054373575083775313608006134679702774380754719253201583968035516976331263361929167726662646765439879633422122923771368644816891379914862223045176290425439243182852172089524620640779349326113526596672920691897286969361612268189131338241649469854364612300786324410760144392405357129289189801296365070703429309350620498003007774006011712333246512815190220585880965504639037942655110709440429171002457482221346829441778938783389580094702091163726724804948750540681362851590613328436457969504399417329646806310080412175863639140695536934893403186393517214423251376660849611929785334124037372129358069207463844417140467657626776872680858314739929163129042329153572194606556577902431522878526879650845153043609398868701442871519765041157718260705962979409337388361945259244998651440755709103539430536838108529100652690071168491004416522817597693621848915239997918195504122230163338036888278963151411055119100022114083502741715128690147972401978470941697780447220283603836484360982054151391951766176151760582356998617374136445323683522888809976003374064261974962175311794868734360762763628690270313039684508985928484478445796541466581427644126040654521593738661747749615261031292094498058221742751046635686796577563736737090012673532794690303399865808902774581700285696719365106936726819469270384052917574863132997229509161141838488898108610466849848170040090924627322270400713805722732325081079872733556909473945357743335406723168727689304738003913217605023343492089405252787659108137442744726461676672118156843152168449184446284659514300207603103883975029029023040783849443367342854852338920716704106524333417805453117459608322656368683435465181341898541640282981713364192665631265616316553014970044852692855695618297755709460992700329222763934828634832428877055363257065422102323950926305874236107628692197149823484424267405634439592196608168999399938060798933696382950445179599882782074863701554255576546145297788100472734644953215419642921707334545611214729726141020837475457446474426735598725388011238629213729268988423357128643210539684184278995880514536249668799225555634521271597159586485039142758379626110073612620935893992239782311880005409171819523073700539548009984754164589091836126322413156597325182962677100121349910497841743427361542529370117895690887619392558490623292160717325716255964315392932808369040260300645702113513303381880971901857461474465990872300200556387746632700797993119608541355399540590505839509295094471854008789051907167951865079741968776817686775452682935419361435186106041634711918252216660646984534387831572217876468612729026316996331187633451845419219052352126026987749006326897202817643773090051347721428035223343571206069468636022946679061067943637449725250157572917811003286555650269152728569923326610918804283629497709221621041048668323140469496869935963123318634436496552563797713627736569599998773974009829998459406433139365617265181888257709935749898461944315207972176798940494302824202004685442128962917426553590168142514891676274775970290492396262289756280816763028830920538614938041884733600045123903986127017177338072487050062466812756491294426018186178300317710987375107652157404065822215966798095520149707334331688147803089021496658482456751835220244396815722693445470981270979431780449597845008566048399801142527829211492670040080122361525050483300037308183602652453524952160912346820202245543012503432438337303309548591125624696491922627103777404395110117558739715907054892777696932773696746048320191023493923060350390791299724072646212276591917993783190321535410788741421728200834270684253013460324607790369344231885798525858673590055310261203097978683112332223017750804731139901947169657558108666596032951781438065360610891418054300023458644999954362600041504963088145103278032228568244225489001372578018770548826924424833289770473009690177196478099222123487644194819016590754258629349151126402638577494882064385360582064432421976976895108364518898383165123093525576607630172157699501830131786727912599504952496373911884756653307177104492757140163396645111818538103392722585884312389912467560815865734275179680895709359972608433557562223957035031065112871888894331850758539737999103963581348848833412103750223950429908690058804096786516957318354644612457228644049301190004011131421537113694335148632646729260383395239543928090420858329671212079624140991441178213893827771332901540455279404833140939299086989133064867327763249027298811699993452384599651665856714897955977240601465865779768227503792690779452577999893906599912888975862510592890774948376579593250521084359149701919416791172117651530367617086454924847549567594710512082576823289561642374760595723508292079179237687804261668348397185292954366063569496036416480244511649821283522166689413352728391502340459337214075318496067169729171366842859282702048225476528458931565186054633047044388199900120368965923061258542088183442840402679627473046692272693031758572745086463452163805954576250867851625108242798816610932455418319803335381936187640456210113141594204050140133461634635112318509669133953285998663259642953754977494855214827947571903351653838540457389515470122956736512076916442298296925305011034494807900149336932025249056609269348683547921259440449123771973756286436934985851843977838179602743574385979880939463404164133442692689092802283072589984903893641652926549541438449548383925398670996205121862787532910682478138212847886524274656964790683459533473563706700537598327337360524133563144347934886281615276875568649451568369869833531534453263239461053320343150786303904594269491735484556640839987855425845782799114614665547096413802369601334466988352755884232567330836706891715106983347138563138424724512305922637230539574643371788260337511312700537251882179358414241138213534884516805052420386703608681569272384613429122897486098968934913282001401649139888231359478888630003536337719987812509537959173356368120365929989846393035023232610637421246352422073760051619633931912561580265937565605542697413474906421655446311709507371372342254512931109950148715253427888834089907843050495859365442662892776134977381164855557087313668337306551879125497603525096034108092671354747018823021052493645736004302294151108457997209538577122864946425829432407604644659969588733940561653232928240865989176408365100299203714857761485335634354556808535272666405836347572544315539244020655712581959010782351280040366467073180547523747281142152393465453843101477744147046823247280619889633499078073296746019298795911160365319041623816435968061221954852605622361897028782744258716509450672483663893822852962989145187916858783563163621785468597208770358991438700017432361241313437299791115516732067151274744891343597903802065368465596868291493317319882409797732849954887983072767330560309124993633036623535222105699716579555049592472678819614265871379370871317993891771262481638269657297270958010467728981035826246288620752138871209913093492238481515175801728510104261851630092929812094218582607719109635497468936708692474933419106206800138756976080258140887623813772181849998229991563783143950363721309701376245050760237309516008779422985204828929946059130944642879393472519932009715670696999966339975918727903948613902336780030165944831084984492803308986149018858962842499865204251655234829768848627292903328292483006926496624406931840893194639953920020975278113415595644411831614362886535289078235728006718914492123318778038956976046294710914615553492957942556645812147011854989100179496330210267663251662659241104978088502653614158619333236474567705067123508671630028262976164060776611350873898150618070364704154797972452702311978936816381524155197644526263356515140914284651646735431967631012451289157589058300742647400620598541721273168043208402913839777323161599441027544088690863696906951480551065448429229541679511381987340666806669127091593495777867197657003569091432121960581084442391353092623348887988160624027701176992656205192320072109987655869271683801685213519509329147853950248981971174595489902743686362539502691184430815920627555234391844998649385519921305079009645268921463764080655043797103081156842741844451963340277094949076716399602081646101450767410722675209974303726708274873320291232623898998720630520672551116025863248051694904200364212882053325390328050036759387390082842989067717677667531815733057049657075779931169407598275420882224999352759772887650987698776537701148444860964242079506020861809922428153468356538489119159696367418347902228326065387529671194322356556844767114654819960812203807563161732988692620546236522334529034266926929022231321873193846778140861673070009305325698849626896845834036774151221387794714234081827304442150775537389919386467655274700206005689166209432739338740394142753951546647666797018182211366907388604162468235211117349657834066108834598022501333905344193960710096012196562055800180261247722343219148133177016819061512415648566083666111644375139071403228742999533618628040749273339873466198328043174186613920794798049408682209989620570417961740083877841033690932659662944063456375949018148783634812123284490218742924990596946829415754601206796693018092150375769441698693739209021600840911223941088586326355155072525940190565079201847189143986401364624038019630449553852561425280513175967619636587300507262579625355461074482540266480195381173616900318212260157203976456834672809404030655525373687134522411494117622184852406678307579353954994820457676264262217044961132347798988402263066267289695174933134573643164299372032227935678492861595857055351255208974137919602794623457333293801265945355286026444512802690084383409223658174750220883449731196137471273875265124908094531961843017181816418631890287795592358048380157948063369136414496884776868889037675482619229828996392699270789000149761346004599613427062104319199666707144120528728891581278180035641555072851868502739831313970030043390410738642570070834828838369673584670516415730939882329493907645028701430478211065478776992899113828339746916992170982183152614716617029703927055446020971074131121229960156385362700993587352381726774650605469098678997096899087778501816454336908981014678301431154384203018225975107500360798041654798913501233830991850438613692534101782851447683205493424828808004006863523909033239413026655276781082117046699254466083957195193460743591119028594240335716668680236014494953477209544801137360820160472401103953134641198578229010816621609081109624788766272486151325427001956246233538763589940126518103546132537058605249305085046936513722010485001100202916016195707200299080785074326276837939671034839840559012326644214628203519401617186573489839463288286929910645469732600450708928531884628604585531586739014763197724799668075357121727810205934399906666257494292534886432753421201750294333018836994700050148928254663882597163863136523657230563732062556664401119765227631882675311163220552959672623493112575042979337728049655255702033835689001974765053908985329502063808756524254804951152468103745769915367283953228729587602467613043166270996492153540335488682158057256169124580248949096483098667018182300630194969411382575728906665985426086192965057303642672460271053521790711774072362535064979711117668806638794049109286204786434688010702851540420172440376863615250802666529134783144422470916530730855286888703985828192911695873213699591751481571109472245859246945440907148203233806147166777348519694100615776037182406349547872039732804077421974326630247898554424908498389302769834588632866585482115645313324396949525585635673256405627874640998901835422303326601984244325421512369774347323648583095161371797066746590515480257789466380195572918320504086644364826633140746601141038823204721670818702109303217416327202326700292452143700053545551320480407230360810663513817206748874075068299628148718728667208011784604531991974316563211071200272090868636197172574846748221476579628746206429605808691220504874532607174753529150746404236775469029401386543427098423883387055681365424493739082929944444538664191647180327185743078019054603721111206530677806646856948522793862245370914007614210215442752851983572949108000724802347123301702725253299951582851864673979540627040768850149567948766226131149560124378593660639554174195827463162937361391101506185966621769575995711375952144980433342785814676997871464503814192169304215568104813955765611372909471467711898848866664755608478203016926992821386780516643816746409235890592733915109452489370409679047938305028489217083417463872617302099501124365898438057096545039419109354015668556803124884575726107326249734243935530365726610707769323952182189178636754226671264434657911584643603981687181928763322712843596847307913128158381154572016179419186857578064307348015298619511917864752501805629112027054930954995151746081597525625888201326077657579917578875178772538373352334125811263321982860114372850791858581348190972865414343023729391754262537636615472142075221397516265759413857818039541469791728065988339209772131749399655333194752477139927167641613249811910167569257841262862926282152694213900372416439826256901774316513093836292354079331268063167325036272544972137777697643743106545514028463087844658138068264725649403585025749334712973332597303334186671562442265981760900001392735830465587783557874348337368047971803448551256711914392534127006694166420447248118364114778171341742888288968245678928525719853936886455808879281502196558155540211723971238472139198924676813874454693284911502461511230792743021588352652601001937015336619887174376837138623213146357545756049275279408149617636879883411096755591827360941876314425705709243191528536973807526674455251649461188668436052531194124942986710446832364555711916582713986817081030858619810812171798735765809298445810550955659667623068068854901032491067630150528370721140886929565589462146212127929494086595808389874488305699943389023615825170232323671994404861428516995086120425730775056349863147777460998022405974038186421529110604025673246667440828284189501850822935063096978901700037602883258837965102210677121189530183072826656572161974389382673495234072682147760266986548602992696000075830633694627495084813237560990624497775552795254093571215940692202066084443308422258413423782955429060830814564038466071087418503525333617636756169804998689767928871537750825804045800970264256203279919810607983849631027798312379184903562190950110862195482708628395781185476728676373104611597456895037896993763573064017238774578007464140130324237110123752071026035451458099176082187152600039671354829284965807636249696110929133737824172936181533965682681177303210557816089075307942930738664246437062285114178129478584858972361302032244868786358173051129121605091053436549750094668964014284839652874452996494352922883213561853574655614959477796046181163692479627830416024589235939456754670182497329776374783175783410608656049791512676221485981090958392759543412036753720173009171173939448964868094279007614884614371354970484454542483015824891681625089877984702604367580729089239030587281305623243226491130150929802473289942115975129634787679887374789830713737491542950687456081364063491161765596533909420006930229342771030866741397490964360784362261777603365140564651684792035042696485056962338493967154959083496576629816914069611570036198501452379106307705393053271317960619426243624943630532947937367156272189113611468304878910245228952714272261750080633194773174517477010411331998515369736075811609805993886834114720674053303330741202933097041296814845114180963241939495573438420808846835415587446682934717144055926971733865800743086545838308285682550220097158195500468443471605240507253581099035013379880229042113119818443681053442813281512194357879519335229525056056913366561610555850458994202449787673961082386588829402109330963751424744473340139549915582217795766859118312634669259617555380150889900278826680086793351734081109849450819621088463295558510179703131572107777092412737361100702980538583092534194423696803106222866166755481711582765879099836201200614807780500530965836222782392376073474336799460047046461431839315460047254494690937253873388328084952996783704301882192747950100202412461427347922470573454035695707746648406126150569935789934651045066020821295209252215444471259804604285799432816777579351228087168577708743832306114886802685404147441610312372877636554337587037079509446321365220307934529442676115952464221638161828487112079566531006890849394411194009626802221106246323281309677930820772717783436122389574124893848837363257598475382541179097194652823080255938119393905945354493845396722686443988268406495503901967734981841208858724343690283262866919554569874987052002280249762573660552411585119275764214251199037402718559775841865843431842367563164475262649197213480040260325035669382368060983378245692354700415218907315859338488707071439500404500728822096775732823271973650007596544560978043510513696755282505177051125806390298654631857051754242130018971535933729234705482593666700716625481191963839873889795643494735933701443287714856253445353145007692713432504208622802431782859636134318652300756665028599564275089910751431458373320439793626635926205912783832904634167238168530414601770283770397041136914915250686935186347097614621846046608006423746989218794781960352488752090086565863834118806942797661164102588750220328162551971115971816037117301117827369909443262852851560624066197823114987121050454803071269604411134126078796902712001981714154043640103950938781905022948393818558645339077500133197674115409646328384979424440759968867759960383031953121697171143161330195354808543494925391331194314548558882124521260898335897562214913460382093026584104632132055531962794711927691658685893286425987704651110636303249402510671683532515208344689056593237450703713264262045492808877698635995317796483337179572584548505553925491982011260625272343623647607238607828873439343036759520927436015286427852264429083634642496697130807924890812715000139490670932442883804548440016321835769097458383959884722460764498881919510983122637172099637287529220524761798946220431520936007581741963106509397703156531121157091545332077522471302123370271474387658747403415738802689118359155518663762472854270882169259667154288391037480548545964360005668229925569384665118551763409217673948914727545878299674266265449521606237956475610880915159833156683084865882542983055609608081042810562802053776404093892437544440455070767690795199103576545261139324802311526686019013020991687342259677279953007763677826199048678815213652439307749008744256832306372419484208328282943176681322566379497806807200087093989912061776263836897088229807832591872816265271167114667089716858433969049982862818864416428046814123541536896831023417030970866708612506803885400558963393076068287901351676323935818983695170063701503368808661728539781073580555718498701156555773616634661575491468180078950888512407702534198457563388192874664894574552302109657681972162255159715285898082702470922140988127973440329071889839018665659828131609604620565431055550995485625656732735949010921141448555880667140589378514380163331985839865697686563308728627219859149028354662785441259755016423878511210950911385267099115357838554759358429602030801741975439747800131196068410876226800026958978016811715735938835899216453824331474827875953618692278124776876011056553559579376593137398327956447528124978658174052588669902991667031211911032040459404648346100723769056365739598960434242589122924321688944455108277843059605492971999523759668620012125341130682733129763655022673539932708160092123835356103352808187795611520040570828261580717439405133719108154747502700773547119447100276602650041062499754521994650265816408422572603026790211933968314874228204395372169954109898347968723465913602086053842803074226273562289814671045206198018259893789061271634871371727351500654912956995917217760860122566513607759186088678416532768427444316799014264590531679084300649316537761769958150109502920414094382666170800737251370707647224445918339287770255075233033654965569576828391415902733156362139046132771579621289336753216176725193924917673664022100299405231546403895161489396392834603810271371558350608741525977482123331589739991128274771986294581875794165380018225360411527398361054332772683158370969839218386768977865487860718188278669972414942515618621322890336356512367689403081448248503854345653019667806245616587369967358565170032392148058706972929811598994790322962404802551033368346640239744077277478422371391858234798188176818561899514763925427073996512667171340882467543966780328305381892505205845614865071093643886065504998925498184843806341910324385980705902146852714390886049626323097478376382835659120960584816065980955867727127569118651340743525460976157341384243418447515187667226368820196451904088151836754690174458416131392540388803768428964721776595064022316872652698151790947848248878622781840424116400355852997587183112367953456633651407113055894098346505065637003871104074485544144931711257635108386154956391054314552602458670739678191187992958762256077765622480497670409290091082246900382595104204973410010624112157258215292457586236383124158355151963868713816050381250223928512241856794999691891021557604258729080758753175925795765696314610085614367148033769240168047653444436305131286234501109271211034718655025496837588470852098787801679558909668001835877704878346795418669270185178977523153575289373294377753043073615729934312227007281464701982978606191878800279643536718544218390531775069475100852789726448605317713668189436346175456199065222280928782596425776898246960394095260169964967879858310970541166496325104575052637048370473051066780772393915733249397460685598607633120390774668957996027869135496499011820904917948240517397532128619865435441972651462271077583787765380514176590102550238705115964359218691219639403197922253191835549008513076590028556837709774562115985794150862900240890592636164929266237075747725000025421004685830457546585850753258275702537972188127209652596171927233150566491970432287363479763605626824205313133331419586667690559331456662635847089272516036712900373505360463723047254058725730504021900903135564650649480578295681964570955297731020919527734243486296689810322616677271966034242783840566500757280566925372115211043798381134297296113074120165483814874879790021051441750851028321649153303848916733645302315363489409563561489011993865668369105827697353673409300613417460229453085252179161736590884087994781561607941648870274153840612001933350479419887227681566207334793996131254301655072758060882098799891152853078746171634948288125703733033912564027506372733479833329945101377510628717896226811959827369753479827374086817483695301316826666604292411924260700077602573722623630979498418660348482527298246050751302332325677017037134890705734660042374298980269336831379437315269153381627919492777396347059301867045686698946019564059652500648858100200533133622700905374480215580162841404228999038989538039704227016916821424184114796615939069863347516992787130444575320469763903368801646058533230276957556541319357545929673357438112024414323042027049040132432513900028792764091636288174590597745508808979457226158800184396069676407648234517921463890027357552597182950990563633488685949059875237983557996185630622657171910827532427319982418255044920260822918235018258564865552302588296034291300929131469979457078310115033875500382783061083727422471290057668721782225626758780557736058328967560399493537710750201366113105450749049544919350183158159029741988702419832412564366198103334491455327128852591738132189924330373612120744081988648397795940752167588517168811368419786169524622808142266510081885202639517642765226312643266374301378013571291442008517377127567400418100711554103274275137104221140769306290307312510460622716789707234189996806859390189081262679406461521071072074916927436167773488481975328407485503263535089426697222251069103495558422340842433280785488828864605685780142230638354583189427899843795381465200072640013299539753232313280545869916401367893662165172229911717832203015285065224524508298245219274683353315596353216773438803383851322342655143194364400772577472273015191918797546823092878050048240792178541862445342800850374768316258861602284331199852302059213092020431680673712448276985469651108761325013655611856472693207052709514986776174163182778841939356774674670922714381758668214327893513334822743370947268223372405043366098468177712352065632711316671919302667773070278039921207702487671867589376919457311497479118940264887258718464104490501728706620780266770569992699725332350486267543187907513078780469573909701582474408206826797015568341936274056427969411317236741497875657829972239431596205500846225560444064533061198976751470413051793778566620535288841695360162919579039009181445344194125876349039804800718635049972758850409261653337685234716470227397960819899017733959776664844886817980785588560270964616520971375425182764638631361677575810931466827613320456714998560070426614301261694121568652522836714452345762770841455029066960210898718765163738811628740468038421553546444139648922859981445268676278012767104974785689554543102762450592575384919255200694163620820547612448357310958745409017014129455977968247765811234591224055970632636383165658263651470185389321348337748174955984754704761363944736770172264510189502231923564369313313228422847539295050693306315960246299258027163670414494289224625209631473357314644053071727331927675463245188017703065682379944692180774682296213365776349552462560109978382325292346455203190449770035315999991467194700000668099909721227732126314873446788151584300074689056254617523067180098992200038892800596304654698424701151550610874074725788457310859499282232169643543034557613566280758084109091772235475878358576691304973597702174910934163172634647882707739887844239871979951752439390153149274328761910612498881352421027034448054800626230674702102012196966429289038579839268464669277519141957675408855344912498771769112741318640934297380415943141684125015863271446456402514669961421940877839340655142528928072246543562957599367750325501919850786222191337386049868830748548056136519744683978401001756334164357030889508894436913279156016005115038151917682223383912805435845859914824041585167194096160924307383827713935852117779401465480394697620350808305488926629174083651355595985073823132621413978052038267895140008206680958453932063036606862418713375710738447111900292569781414070671138089679497134667916073949533622774926205193662625091368770589246427202555888713050787715513855139987470813715159846992044570781572148298010201415491935524794917297401771554228673460678649828364965301327427518556433651359461826491237211533236611895675133143288374404423070548577926041410361215061011728698647453968064129036716231943649051210653988776187484910229772501566125169586601292516123110425362974263715592364811321417292998397893106378518063019479531677552456184923745787927888596341939470197279100296477495855181362979809373596048832447544108369030093922211433515039169213258656922716916209536548214436041424748002067797987288401390395858768300853667335312592109634493100082722232393896490866984458438796409637123334178737225927769646204291092465883256580482741041482765170607748266439167572713954884085836081474826986464098650082773682192891124448510375578747579594627539981987749027977152906178112265975935915478500515151073018068554150726831413812639000129395861714481472375665860280000477933961910033424908760569729190357846429612242861916359435387021341729847248331670117200172674837616497384874496685114795617452634615920695710920978317158284022817556410860698191866579136296204828403532714442171739949698970901056758028978566743165798875955431320017047137750997306044406736060562824187214792450996655897557676175661084767547188495197623676262931051630091867468887021100497138885613802604988290522507370751887028144808996910842483362321926557617613933133496184358087221341863526770329190134096628587567681484422264887631837262247223468155064004252155894264788574232341285896210208716273803921261172602688579221496333301364167422814357748585046771774731238021345959652116521750800448438022376653745339250349113683617027626703427386123025975365718363389348844822096277966184729128916524716940607711681077364044349486643649427143850473550628539603832068027527937818343916426149525261851846014799707722426700527224813766789455663432058952137085613570891012695292151241591839647643158334398921185130562777030118366081700824992505187462115308435533464173565435826787885944851842176902288959830648807992838846827915578989032461239082026655235079175978403590140987996628766189305965416231713131065245344074163089016213458459455045814969700654255345224997025660307297553598989788855773322825857072486293400387862484158126053350366651882085798399254818089460255317362268249751342445113793263335856367174893616992733697234897727335730998856742013934844766561985091258497144490513921062240197665407015728808935109518400503911986041042000972515166600960878832989592405891902111776978327799252642126869944566397651896327993761430701759973978824570149249776033861148490865904075614146936047393563408146368361780878918611769026088871279971563526284789848883756871901440946800918800648965095609083945423467477242608206235024734654782034076082139764146453174525281699692997138736083054199861854840111665327102444125485467317547461370528444130246235101746289381754167755062760908926871625711432836307076733706685967229472729524199490650513037789113755092641134893627291154810086204083714904595590020465952939808975915430034181010106939431761568909360064359652539434405273453657194803183729140264777630818639621179824017846107299219603668526011231713110719593175394068236052917063781170375696670461513399144489071370343002392580969589928125286233671302369607645475910059561966520253678866564188475742389835668147873379869411278941699264836699519821471237717105061361619020151396564775156586034512807130992323524699205175580377876224398417888295580702513758204222476341004188486805244913701102618127423783407393473678877425616437447635900423072169074540084835136596898802036437711390593186803449973730449023076430279335699002327058666183644027158022238991157708187104401240103414134514324616581441502195786843816737113422238513484786372663791478128036254374290103390757710205027451143832058378367194375272434147107804103131442729614404597141033520512185739751892095268471421799229599872952852165164503549475681426460501039547345175536776741395265222250381078528305671576960169008585616153697089731381155693898253124249500806498261512699105689195849695174506307024479277695111750526482978726839152267647703510544167302874763683335505483534029653115038618024485642942452908652782203131019108487814100016156648310990108724188790576262898913627731162569701104407221119377501248948554554767044865693231433933659121781770177784584897162824290128313974765464462041912957995144279295257862681642565843611357643208168420336959107397322532413305293826499704229239681029188419037260460687129127901171858077620624605681399275456617839092231400697403805593192077431099013525694380717107452341432243586600230522898895089264461432516194353359007261511451162106776348066673666453820656349368781819287355520820441738032501970852383394048549310210103392301478763524657136741834485273677575963360428741576747192166418800189643230102497437566228758606683586024196111334961870161100367675367400860123969925547635524467661762247883445113528429247406153125946288965284574226538706346310239895826284833427139795552682784754035833042212624288701104903127772842621385134362998718904537097955589005116920141195010281197242814909557603432168812198653964310258063339377782617649348475665879138413570090303616222769263243426590555547878572360941897158077775240407233112569979697514547904052151975718633265895596119999601079806975967096228537890496609810532436289104415894436896021925489963703392917166511268564563823275460915453050569379324147564853654985799588919818963018968884409187532277713267675382565125810673842188952331843074265990650048675124283359580622989713010508956770219420707131373247354299919492204054690926046902505580429388626790685302950867241662202511933358323514544380741845854521747137021509293597207901877298897776230114588308442413527394226870698593909295926921115576228638137333968908595491236964999374750649804038709989564438844144613343003450434871894445714136380615982918382912163236077753336360305312315747799989189962244016891687847790129411979938678591587846895935167669287433349404258616347619478537526287284594186007399253380730573826250480070665681154413132044531541137594176058390606815313591358279730520825780570731802214580872296742250805911499474826067127971912716558636277533807874252558073512424455202041096514164481040389287033963742115463824706569672428438827974431866903765589818997430859445033906667882093540840113456509368915756702894570021399361407592952875598199975764564346218240418052799092362144661713173618213510143390679091955877534433537530268924746528769942781740828905098871264566061333515476508842858270599502334579109188879199133584037997403523614899429277155606882205487915602758860678181909436766850412811476493352011229732637414579023137276908900768660081551924578473326920754670408233619837771681224003850215884406095652462230977533753817328354220035250386681383666812812393872477740605439990725281387307962398260342555668498447949071914631240112627736940699696047285570439325182499590647682747148770385678344550413868517587146299421650708688223289688761292154426886191447507347562818953898784403247649480499757680495238680850595519110519543756812556359588265668247983796304609906129043727733956487805241914081510716667302423210501675806693160383460458869247870063084346241038539643848562482074748698277330126118691768315949678521681180993790876728926839995238787865192747041375509399896227283777002684720754573461237792982742317408572003407216356611878409750152504929737358256023492720114094034041289263797258211055538455611751153916072486154359835860741311982491978019863988468614222574462473199381407786695253013530401543981312290026693326492034048390346803380507621249059200963943978826467222153693640891995065581536801472394019991206570995970483887415828187988319812372561892259788329509139958904334037360528824017844107278139672111763052499420304423683290448573265816541108967733942521635367836722090716012967210377801870539541314248153329268462833380757522265997957016018664471553248455869958680200103737167555280763356180960231931453708138992110332974818472875601997818966811005407061929379475698508984600630548468487690012477776754858704610063079041089187177582643514956294328503307388851770960507575753649240551655024175987025064852688744742089211745698804319836541220068759916601874403653565808190003492070670239088428070604878304649597867889133972824101696231714724441324368746952103481569975431857391795182812854087561425694494070448087070524603552215962458563511613831244142371578358864921721373721694939515684161804841082704386959389995680565866417447290250174765785766851656812130027448103816216417580792387112388664616808765564461739886642173455757303731342228193762401646278106875423830775738156292944487597657712961060878723412826864693769893550785479384984507706198787568200355057653909888007198022610778076368362102134394822273630579572237118532254001613103350795817713375659844131783983448033963989833219675136731723837417070878962599300189769721573371257328231719072583013886315455211983848315573321487560682593615671212257083593183905373967696759057824635902019370381548205914606663087233829288164639959615128753962664442415695432210527026339875123992327055108520801847147575021849487884606680462112913386956384310348189835077931950372893365123614561596869460452861850408564843380627205892177506628321332469153860973500503815426839991698184262938065625056728912372015948677424963275762477343571563263628196795229850618982393523808146325692726108836753269220097387198926234319535176098670825315009361491668766492653287690241324536352229728390523763207995663597034252048359686981631190790974165094203437256015823710138864985805208702725136977094983679604100668043822810960594501143034847580284783186670723371219820530179716663956146277262949095436635048156926675396030370935111346327188051216797808681373367259660948661932313545529469560625871375211098289098583220001930377070501114833552866918951554768688408966432744700896512467477064444391687567285511117889169538079477760337183602351786010335323668672925077299557387084327222121956513419372846565115347309913236741625837700054300610206814437770270373727795506843014473306796079800890459723673271508672013443986120713190708068649889434163585776542531855123698402845401117373560668998516299180707107399316930471237829675219290970199533691342043271782897515386378638197253456450933150648810115651750304929632346460125006555259189949879019082623693625545188674726018531462897007746284466627648311283144424399529779218373277223669208723761846896714846835048842154293432479084861020010360408200730192328710153159215113155487570508188358848069578515812073840304313204893221417076670439215230271023547848856255111376000462421195835898940571334191996327732379017837832068128016420835963707549160213440039207727850743396945265933610774284225261643018824771159055849783510401798969732989405859631020679742136247990827224735149981681892687270983025307715529649340947532715522114691150226250837933713792795361865529240445794481110360772798810877891269053598647916581296824181097901097373822984116914706447974804109576718347786069469014738700985268492575895664503528867044921760024245128790308507153182673385188029048266465932996114289376670119064233556150057961438264809465407980912241388715416016980105185691493624543413966021548081232413549694502861127397345442544980665267363135692735889916038505019654448515068393264469613058392028698314783607825158984900610699812673058447965535148284066425770962790684602946984032403573780046551394209144736843870164928231162280120921702835215336232293067504628610816800225396615534076908216786632463984898840176379284528398013798775716324147055769308440278143050224914917664822070337733067413111169665343711696976254136096812072292122341507600876635353728914102691145539103217730081429490482690847013958429582409351860624544515876056641568886089786229918756082123581491177542550526554882861807664795666612868276133681931246273964037836190891302201302234246609649760691328031048319092698534010555540251905754996225598072646646873418004231925235370539141763238980080453915634402458831447378018272411869661239081955965681186035837941336518236348656961598174838586671970890749344490957613618588614500878858065783922051834491746957027287094877290505422753946212448111413565403818796724734098017203316468531459455020123952725133805419731618163705376302497880669306160292527304039097470320135135918915704664743882558668895021934833724633774679639666195515392600610896927511670077578647956645520905038394875488095950876614111701878501277393604952460129506734811203128078408789281402731958416243110695428170909095959989872044668146951041911512897793309105463030542877366402164566304939139595550663503223406527896482521706163465262949001317868745888998418147776717322570605445053887235882153070454563235679031513710665264440448158140266435910492319099372354804078684739641555144401584587327057075535331019226349067389186565199334276300310562582937116192402741981363903341538826181999422177916677891801393665079211352923346581548186569468240732187364231899282039561254935168556824424365295034070438098983751074087230678369700786481558895737491891593931612653662670660565369769089098532487375935285532669043262902172738245185430312082473914149192022141558776253749186270333384877168623706946998604591413332370249515311520800788137189244060163504059779239333262410494098080656006242536281829684304699427076582244954141102531447056873237553598450869960601741356803457225105100336730868479651575524698163795295019615723087335754539904681454437366388816279378649191070589213822009987247742033605963632173299832382222400505023602733720960137794678423449313095380358218297885114821301651788579393314245050097132099521906334885054431103296744838715270183602387257446195658963644201108994702167807588806207987148860818330713810622043699194768330260957995281941776079442109974825004208939544803899043892730770440582301808200958933560010705962578293115445892351767494310884595035839769735971899122608172699126368291431125888245683553095957714981901896598440027934135136335647681819184218742160479978949021992111397083203875662639261649744176078428298143227622336041046525708909596982538190583668481741059938031923457362976795915540215067076809895612699854292414327011287400823200372194804877354947772336356945442791100993606211383029610535251601554843281882139813050693191856572337521994260087045675688426612868405028617530073677695489611215533375134561648815305103858676201380560127519075422839666744577820893513988647410196494707977511090333754631559928439993459570221358627698887217531260529936286714447536203309173625836336820992596891161151158579233923099687086746813452155179533219887947133210138991987862476146618873947924522064702958743027680897084791848567720447082992388550917913506413523887678964981183905013806846442532110661924533816377000890005772415217356409564229028762876669853291346817890225059292779176454151201420116219545029959740441012797665691650454032688396532678537664977299780262000682901793139068997339372179859505027142665961397959340205207029936495156702205432783045438257352220399154579984865962776497376685778587991764794339130988187480886656497091433009730335171347434507263653462287314565375386588210978299858679335069971601268031133458086835880578592850681588562550980908189965514206404725501261475725395720530954537838473653473545387791383795944051183269487194160869874246181626597815655356399877682260769025972495993886922220153386769792674826355283592218808979946965049659779268699945525315426625733615078563166548789225395742733066205692707845689297237355227511370825745220521993577999235102101832864283012449779489898149631508592431008554218079811261744829633126766199337765731521723065876707087244193595126844493682588186245726600017478394049359223741387798606195619608671045220451302001464548946264291017326276638987956201129725795881940926156250746589334889659782432113748997601176666059835168204098568813874904173643845644283961488545516864248386510397120748009073992527793418422351348730782598443332922907775072910542417385306009218221403718436797549579268593479796772018368656774303515001311791019849289044788510298333038964088347149960362894996713518300735487559054660545417323715754392485861952912793741200865678943848510333222300406513246128786171664760006281496588938737391393720710165436145470785395592078667344881517001450334449637064499135149103771900075803479715029545186417011679895991488581935300307655841789093027727190708868573455178508318255281232278549911820369267238260283447751677613632997547190559708610149185303138754196554209281311538430446448174123042601440821025542476491501253430328413312833265567703163917531198628251143787089944740411478120741192983479006208163007643712231214141041097205227090367621417068300720863023750694637831945318886708307841981712168703423004135674667589322509004865007750663157340857138411440168622478474335868153580158897155600112263661746261648840564017932918902689276238932009854103340491663792573134955547764273417188345856912025868624043218440731035445479264902573151700938648231304437030152136880354128131405624888991330616470079358565048108022406537023188517016342298875157598209077147672596764710827179420541617072192055676078526831124014943802442462312945169592969284213121872873094715202381843210848876851768175491554508290652633673553342759275510067006986180452215333157492527890295447258621441685493997245802741032520214770719083934479729168840710059746500117752760706327467044322121421562156332372944260149937860103304288746236572631916243963958507832374077537514515052375504902077300290515020160883212578989967906784917001845245822177348702082844706217796249098426941346360765924051654215294227654881319582429035202535161550507991689270658832877754879343100164380132660874813208368781056111552939514661759528891259561133757577379467385199744388297235643232364567152173661132303600239203859003941413805765780036277034770925693025470519897942298210810101983657347017068505039418434367489269537922655887698902352055061595056102780823557542786390748061323435771895589462278639721510467029771928752808325024614508579083318877688021258475187077603237293214276574637054182843648746721582345572078602523715783368403862787927505577792894523979196800730937691736090640532642352757891806998004279773290081890457758767891365389928760735353524207700001696994546448568749523319375829837843177245103925709229656803288055709512374496638607080455251088415349465381193109436550099901875025396702433617540645432246662858986313085303926627193747148225201742943738014087812056549010962842720209633132691914370273676308336276666412825318769784739537844490110853693393383563227463087512743873609648534036642632476177960588493122125340830292505351419758495433244384944742576360170710714126601922615609368839359589453997899016594431911378277921585179545713598618242090077108790062011305677689894694403271542792516328596911993244419514137968465270508314018930301669771857090322229937624017603004774474954048987272913186542953940812472672377497060544583076400834012504594287252330933939360152330711383891017628255746987354387952229299535153083603648816332933017923814620163144688334024155796427577483301119005803648127811512015582600224950467279572147184244057944253197044087042482412412365977644942537330330173431406837635047252827334651291596523644075584925689391979103813653400816938747397738408685721561295794493459041779067697604338501631307818195958391697288236279903019891738621309717912729190146028256403459950287667022180532676601993433962934903914271082182388618175550608878705075129986001940395424522590506289055791564077627896449584470004485374960201814346942366809148412491310244821014327986483099684487468309961931797513067365528026248062015571133210137836627003992022880911835874632187288207656505940016452282586816109250514775755997679535393590875808989566574579402721261298923352056949980358840429263517479203074494976346851726261936708574560966069403049731057447523290435991372579902635174520860587275354562684629692524536102671690757240223729464980395657819781068113417051136830086474394949703410775319686521086326090987327699171353904141075538003636102222994464280006710594144882669287480920722842695656029422629044794083504575256492266060231747789482961302767908556109841829288515916184153712786939521877602138119489654133879615937588598331060836712067406180946213388148960380568864445116035627525045972156412392532811783809565326120161966325409543006259325957098863161570683900811302436658494995377943629738672238767252393303972679892861805574767859390279376136080169936597378731073236260434105117106980005365509754578417141830798828312752714510035370965286909902286431771062029169871954638454049539857853213387381421968943931969931831947897331416990077133424771251463766822641758219285396962302032361636619219794464896389673658479655127426820717267402870865778770704085107446088415053649080826663011836786401761950326867509226510469564772261831993632943345688220891761228410836410242932730882402923777450544465691080700733587964208727437165246647890177977109995385570583316565990640056972585386223558859065200097538847994781006790538595595008176380348088113197082037694729786676368575182247707863808161311165559023617758078503286905713392258069647003684017267208145676021907592154049047618279067478708295214496932463758086610750815166326397804651939656875948625831750540492547036605319133074971267327681153857607229657191977608370451262822001930433029157927263329435997927549507188045964086427272736072795713266876863503368269795200776911670091913937188661976338308252809203690647622337747784652707542617108702130115319884076223834215611139309991780491414119105989723834376616130337137678979771315124783821354316109901362827023393176286608728798223477124629859990440890580017847843072725538977507302634969977440273485450259173455350953614748123934358902121253465753460439666299409513982242569503530876527151689444826822954698823057217546969685770082503949891654570113474096316383294844078579900127611145759697231467721006705587442333022729917700898004537837264241569139472380029563388189020445072263133963855838929421610053583039843216011182461694432182640275376012156477097829785483541947047593678119612702839623041583990124212437035101133273504018220417881842555123833439754930672526903144557323268520658869987252495818295013556947743761563339223374429919943281604004880290044748155272648829831640952786008431267522121747360502494965487566599474262868814894906411300326956040828207133852515916601562792252291493998643132691273476386591501077888020174595497646811368089899328327701803985549466230163178001477646384555155990550832884002916086649020072871809560797547807281874881886469884080657420552808262057000065153083050193225639298394176778276840721406419260244724082797586787050409293132832507450030533905804903631712691106747306676848638953836492837243695915355147484646948907974393685623138031035666560722985986969134017994136604552976679946566706012987760501101893662887715550391761803702994299229360915718109303801579055247277633460581598115749070950732450722352478357217680373836187283933163417027805251163282066810805252942334942335667172917455556756801543572103199337112135142747927042572386687657015617772230685529972279726692171546005784374123521593998004491589870298159788846991416597304977131312008594594693235710105995325135880267458371787580187468632825117703285835925383581434089291774936070680924538006750161357870119036318153148949865468928853859962835559701238204732125479914261898098462749738819831526825674826767123053250460219780118393729836935533983305333336174813838645350122415106290925826177659046252905668432976651638345545820332653856746193831072833153532103342398532301646969427966597943214873339467975393542889110255659723297551658631308681273127431304882696944524040530221000695491198888254896604109923444349981194127170061524310667106436182600490185662953256740098760918558635654233594608710599482514725548006579510044231401833123537596101510151179491685006348603235053382679238114455005086188039680141804488807811658628577376977343700383037887723667897388723911106814690880088216878060442626277573441648468970130947279516854361428176964155261386080010246116650154132903876467606236756145658021674150221143795675661661656588742754414064919186432693864019250122960404060312582840698069084532705132839786431919357923168442017862698248899549813646722691384365212303870102289026277678219729803940394451290718277109312337150531324373745630533438643980355958069440551170397821574314800377018780620892944314835368605848540862826721131264989069911509015201153954851946810815345118600103133437085279757514907572448804136092992726722691661066777546979832502177174195893736619042855294610362802016495821001414041163866971891973445593819472658612712879035191840603457148688501259926767961127397636155619525555802167199860925224380676521124400760451800428741592162209968516523367250728317119230877910126780495202465283071931794992460259853631913368345504382615898112329958678262075122302632762688153754443060701649395242584692507948136574937318662776328538181436650721614717196883741958423930604996701815011153817407967050922930484181561729251855919303628656046557637425182092486569462739121720795420158711615832001896838417601846272556752788184471595280046510474861242631253411572530072286928977080033434257698738856246414848461861004573690095187745431430563294063998553142966497076259107024778062634264170695864669657453775992547907070589263160069984739316363550397085927950619556916382587561166479120121942802723753956926985523862385686175370058710675387409306907355865710659054424411802331717180919283426542065378794899110871501348764749647121946168536040724219401315725364763161645018532299846801621398435599576838214125855441103736486649029095466163210443402318531647101910883580305019039064548182443578657261736692480396920436579725240084375960202834144931291582805798894212563840352297400692674399690339078350651909141084357144848939732739908787776500142110733146620143058787627958342017168515652880328138135464986708999679552558108838209992180331307460900398262497052540104650884813920398423140483814129302680937379227345322746652293026666625148214844136712028587639892874637930137984887803983816825605789091775689642038772167828872553501094942257070280577594173917391558989945945613559696884511636636790016200307809778764316977470222187457678062710759437531114305713168682694614995992801057174734810629140331535253543999912114610986541070884725671133128950694290939747612370607055564642551886407874636909008359135919161934229402363449854285808138673832042584312163569800791380139828906917017227472973470985264573226329105639494458835113230784195430903784982570586130678378071850631591870180613327238556669468193816650684300333528918992631932654145175445785618768982014826257029730772807474658939071220555325297599661171978651674503786994032657996550193430430447599925842686065029390823878145117367843977330668249835760832629470904259095512919919819932389143191124082709953381133123788405787801885732805151115716679088960780367162987068779500312078983408884826107924142147135604869614550682790183616776088410040395861695174177675778408767152626601954526095478626276610195678394565918964113494345846974803238236331132573529697048597369507224347190118976683647804557149392289450570413929627707701338763724914188738927945401209161046030085361021703903571149975163774996426491062810816823933780360994382317112273653201931829916079503060815112023718174815659412606832320348165113742937906211280486042496611834790896938614972746235054338721674919739187265280696064055271949061025863477714290722887064067379989554305489560817466803236229714782761604361912411536616160253981444388568340653381372145440887861978339248744076945001845789574596963060936878743731018495473401742465549393404720762604496695809619146972303054738992953001579637545695500562928901391133116350662079189122112981233050067058622440580965500596741432344952032345185001600640644000882197111026617840482433446245699271855057263520307328119631746014050411243955730884351836781276137505308774066573230714711137933591145492833737957445369267602708928204114663439946668399058145583044465193375719005701886843414843727253030337244840927624100394536049699251529503375545992439940130264980415569213537748836933334560012706373367161935728120474013233781138800171960895491482318258342724865331830205250422626063311198056240667967125756799875058325971475510714974184085180507532016932977015177930525962894397198009648979474342639293587111338287223483993466078103645457501713034426367912141238639702089332666979989221150419132455702315766947514224935035425370304442557405581370627899660474875708083857553494308695257738599399637611148890836933259268675079088068639958109783901172607882242729092088539630832273569213544219679561166891727869876364186998549328584121066041664860800240257030621676221233787531749308282829927868323751234047516990291446979740580668111887714982342218859789218007749893074796541935172471700390373904041690118211206058076738000920589719585202884932308481891424444070743606574322869251082866459356134105566375287432221370465613774366844985949616421755394267692400233652082493387683501249230426369754838199619585632665459715506494574319980443880700825508232643998337296145382473992293605198988260900244257182826913969738205579877676373509888903026266929366224307061312447411163418307466094227891577094524418618056960435302881694836687412186881587631738016113623636526252374835911596406048539983545187458433209410082952513967153462864029175394127024805465451900354662404737213717249626097548786648026451786117792538400925454771745292754998524903767184545756243790247815033536897070583016582946200453630657092624401766065092404187296562380056573054158976637183760655171352978100737682640561657369289132882311340689137504009758074612245042984651301227472355473468146691767501061410393248514787415920059996683937186134612329805796353006957302516435299510856672255454583440165777679166261686621020531893692501460977950813344466053484350515748512463178846823448332220344179987797907708582676121515826705724301395852281902615345586860781447942651854816784974778281427220518242118704428972347657524270980715069449411493070324414957540769808389014176603523253483468466318813258752592835700486648215151732781515107693387712049204053289140637870157052027854114006645832706768947175395121340152426383399405211523142790248340323915913946020446121260988301218500252524017659034317589755496271223330420607967195902019925044020828395835440778437015160421360506456208611029677348457222044291461948373763514125510217620961054062602303136205781419518930094227601251416684946691236359063109710529765102304636070886656843842320448315801025561670127981993714183100337294566469209628620012753594535736340840718427096907218728223194992952781412506327942884766651450843198799793903020989651483448685147557546116523158425818822262947009132228552347277539636042658027268443467559717413623320670106481526476559826632553482918381299925235991035441075112453045572440621463249128597120699585047711016193531937598747064523442504457152221685857610642914146506652888295557170305638295999948366231051328080529003267266218207600564975065244224942594296807430278327471151992482214831227460769168622506166014861937108857928903287311467189621217109592080848462348485635063190427660742190026262164818320843261642158249221329154819196850084954024801648922284789887946563505073348487948222674853624511245155005773333653650942488143868410833461858875485863871684644960015250492460245081449668977592142664088320914356807159131880428667970992967170145459896262079403397993796723478301370460857969981249680932258900898080942290290209721037363248800707527707070206602463145091638230951063625935331946599826480644029769145287624720392117762989340718109789485281688058015347223949775955135266061719675923682733145694344618081224239220764208307153788590133429103971362329609867138262372837850351731181511011363052567178970883106570069454851273486956265896207647140012806563585541758166419175899224201412343957501805706631725244770813411633610182188320489523543600452568668960430238511818296614448192870946061472278442028652442197913292676250229036595960861966020947486738783563500648031621748548412336679935822079355173554312322387192687835137401564187964221402994506727961312259910893647280026939482427341648197243516117867212742671536013415889025754681376989346341792014675165659448709938189622749827441153028849659611864103761994718982466844674056545287750889070240244109907844301210011910998897335831971305014101281882909470403943862043248978079890498830019694150694861990169151393832017044093953400635055592289673879657871582904099830033432104833720292568972113838620621525768437148718327692382502842753644887987646839568863276641371586746828203684489728820574017830261549434377083313268933619751646180436907640250369197732354143142868338191236434345474246225583313553334817986464236067696844551366297726738623942726375515082683151731846699429312996723762123842024403867366615135595510174099796992007298530974635139419779293671302208918747706009144758124782295896391731502773131168160632377603285993053266885565574262159424011846372717481602906765883040478966202763233018842634320412432402099335753928414332608802861229858410675895459235323867025347716569302487561007402774762272632077512194708937083933609070154897975509783451079381057112391400127194182609321067123165902926388056776508143322111157649219544383938222115473138978855294032881491334944444200550654016687770163301571852855040123940486433780200787380094853686697700572987997962708736954652732077562894955010901774966922750393395073627832418780461654299349688756264578330659531171431031231589682296426777611851914580299868295525084652272423366624393287268593132252424756393329638329229718143841980528436914957424406017850873148124612331331148027574380515457387508032331763591294058703153588271360243740631741684427317007439727306572225404113594101231537389565387479909915843232767892192764692137233945829464973782935575968967185660524155318019770275284251986984154763076366699772883578626689626069163425955254206721790492025554619635822433123346506177436666328742195230471615586166760375140228573590949674587758589426907504175990037354335248366112934001352781939005553718248209364624804151076836835990848135032914490565377622580092260746610508328814291486395363079640745951037817675896767065084440567640037927772869850042056392006669490437793124269044805405128116517323683849857938385925542344756432677801568129343296611332274588725048346926101583923036105059188714371183994311355939601388363957245315866061296055990616912850499757783743857109219930227653845427199794598756901641005235041092760582570557664141248227497871130973640357578942529630539651470533212877476976295318859425446274737000339614676982148339399819925062589513139781086440737127418770322514791410044445744290158192520848995653490414945687441854944710033895383863447917027394582417399423419131702212839442374040362726232170678264859523620639052518850377558420535644485498640549107226185445558261007796508025206419441854473067729672239719980637699468037090819590568083010289717857995328070689420295272921766449207422167450623014001059298571180143675720503285780152982442820199390654668858841529300169088960467994672877589652869404456199031911081712483603746297217049384125332580127467734428130730037483425104880907783482851556068768121151155683164689545599322821558459484235246974733330621054797024252065765116140882669818925825338122616864717748752793055215655826619013204291137615535023735547639777566371130520976309299852596281094402288018610766897383415138924154080854060103714870291809913850778349594317986228363448967424628564044868958215464176790848698566123225134079235003057636844538337083784202759353283180461060047455891446630557984068975096360038205353406808045014622798540829285051086386893228712447286528238419794162488041031845164765724676334802602107366188554774554448598979328548035429149268011454552968762448893341597263799865547000848302654187607506345461530975502654270029406075654314830631989588619893408177355194543253462174063675321260033010049316522247778606932776680506892887294185480030091669987188207906395955236977324334772381937449855156362033004470326828284820976144457605919333392727420712969616373068831540082644812617519008679659739950700646860838337218520484542150126308797815018496648915731844295645161838534669923872424033621271357280427607303728184168944606460347983931514496580269125553762901733730531888702067303773473719308484653391987616569739291667203842715308371924806693051408322346021288711523315472508287341755287786168616816863402476430805782531090834996785231571141127934167011591486153610235840251228079672764822728608259106082130922017839665950604094999446523798660381456314947047760023392213150509461322126148761066816479902275020005842656804716247177604865112914754684568815083522958919766391197250119165246321363692630401023986249489745462759706062634372852524151334320049734194202019557647841005834610891189543119781961392735741815641778665851976306664671996816661760231271290955035642125171152560499584570805084287736584556229371495023522067712383377641823500465799891649661957547451954448685889780478056825398913633102602637777738220746319383927065678025432022070317350908455006840809618608099781445385516550218156029483405266115093401904943647075297236075963982035856559324100787218191618166798827105654021411417544985360346366476215434118133043725264561410344052581683108987994997434770080318100717982054117149922923914776070331472229279195681042524697754082461268256046585793929516988997141692970101064299600139207354750963732211189494020262981549005784977763958247506967285209541499162135858225419046336861508696495017365895954940622909173724453130613346922076536668976431115330911946307587450501305154069245020442849935960744768749547432807955029202319809893883759819147540741753663831735560500558597917874955735524680365860790896077560496351405028120694056895332140122015022474489810624182465917596247894537369882681300663695418880092912777166563697844105390038564902463819939966445336494680457077578346970377767175172503512443141810348243770907203395493644138099075977157229291785396964094635554190261850665902445032036561084210667728221198238092553729426093649374267972232964908239444981147014844983093427421828550295043517888305357507653888920434301188420848130821649166281242797522976228320815214738172940166940929675967136448199327062942209579830221985349801662980249833357130816997084168670371193147086256116807565609202187157372534766867485029003041034242428639657858741133650347820703273196728647389570367703559806055160870770546132372154559692006564629118117429773061057035665276695188417671731975900830963265098721137176755512710818648987563273061786079006763602023489844729528884027098030310599320085916523786463653856319472575476889171419772496664356722097186596877915187568413496730018018880470679576896798332011336865020381153448540107663517424380479250935140705295910514644217062660058651419011705559157937316576802032450923584181640145531095633961149598156847656221488246950903411520952907145737762400647105948974963419945546936058411603427338708572268577720757460614838795406222761204644995068413418836122493655174706866062772158482687636228735780812696639661712568130268700449186745239941034761651334822854473654780321141904820578855666996486907425398073625416218964124016744227920219807246822320409231669494007010222099488891933900847092787807306048206709905577513462467853387923002619346069757534849818527843034860955221784729107637754875883035724204014681248792274129642058565653133482788141125827612802639269880595232964243630638215741310936569437200961098762521671956466962666331248104751326941440038191952261373910393275158850235927116623535335679986283212257049527713595720801172222180415343693337233787613374884378780326718572389623614973334009763942246417328119929286791561023607526206575897674020183832438887243849426388828619474937528165837636002449449229114625516190122346432105640989295526128064062800938409689501267174497669893711481849537936653388631116705394325462860628702823356833838269937847986933101265644184172226956205510844142454891848621510725071346620128634599927396502498886695786083270923306267487727260680613636288249830811873810566503024316346828491663699378055414653023975568913930124526637997752917122512548558651043813840069067619380759064412558223373531543124459617080903961449730040230515642180592672978512297443936279169188893473556488910410660117394887960198604530290969164738587362487317419000503653700032226430786509424367480260218068512830719909217249680172451971709714483383493533218156390349465808930626134466902662031604736749892567886674262651015220995211338902548832454889883202885810506028491714536811501348255751528695175032563455002281992720096365478418530698710621102397883083394140395924547088191085888945155948270914559162648991985559470314918390140568758377116120230627208523203679930411715955644498115803364541921554289351886625063268379791467649214391782625615604780543895598422315365520211686507837653735676096232923319625978438176835044505312851339519464656215223015451456190427039309799406953545850320023318424297767777594537877414170728666894562881470802265403827311735379787055887625742618845138159326166757598173513806364804448353204352740488990710763130182203341299677648797065301373238959438721183659561338752036957932279526203511781757467457450684704465388958338158798144196086002711521041579742670735837563258560533931109555214895109494521535011401388009084220049582808029947382790855219630898169284323756110938463972622658900833587116330574365060456019710837178790076387143420643320583845520645037607973000731373901485403520380791216435867472326111782571352952048302926696937790575502781844734069454265764161093369867537909005019146821064799993183640934022261411335769032649600018387368043502519208497933438904457132826640662524698589465929201250878377090951790147602288079956691270748570230320591363057760718913948455274350336736063141465095444385292865601455049613125606844122102265295258732893316295255791501901067693917125033357315091150741286217156465527720903176749708038531043524198434267629784141392512527079281071825343033780710447605362795498919762197819294027699952036304001685894395438115023372026327047145710990494017886826889513361798106442537449825199339603457497539985815651138470821801408817334356645990436121751289121132005860836620192960796284137837390160023651756040633290065664814014845775505227904484627211121852516042783165515693791665190815074782574695158158628621500075710092681002532770273068760890118124820173369375057617988535778826839481718790718222142054463878848806679879429538428013143581951646067121259172308501561400272117570487855018952239534368777836672219829224667923867816629768770058520362875469484132735265186716920819709122888573894606148938206313411412128623946750647611293508429752676492668844216996964982137634629876918152619739947790482577784299652472215191274150681655622706726391742280470910981846805526521564418098807784033235409605846552874360256982778954896381578133213809487781440655374144048516934137334923474843344770765567794960441176887624853718366382324856356886367639950074165435626741066407137446052588662138517690512598609946204482507613419980188970724930703596070299924650273992556257158101247941720249582017490935937579006573991551343784332014949149082479980193124450308927829915521717146213562289045418438816024663779791400924230228656748562074457049568815585967477038159470841068003861102835676275365548765714176702386043076807963503953237195676804667260775193533385086347407260758702061229830170642216569632774894550043312626766853392048129887219558049095739130440133911810385344605319721124919579012585050242263418920442609403107153741386620002789454878897907898780018272945232177567622817120402404656434756297487575480489563702232428491071514887124239193757970742834782820883245549869658397133514239267396770812668079005322228130018342366865799839953718401941867417840258717555953981355326863131145453503633774779954322054803716392840969904163782242908570145391489617571801652363538940920997859204091482431579366411352648224240142536507838406241505141387677163903007614732944234471080812377926623804010521331272483056818490426164706130029226618255502634410616897977759427065052453999073087953467883357139898841054671217731122464928327866187708716977464248921435631101185522080653460925617206710442402034217828896407042568097066138957915408353102954983768010929892260695439169480837299668068201824484314239755789972331680804456755632417991584147876658196538635252106921758428507457833919027714181553467069906415263797506776714442551857751480863485226958416429574521434273046775009881063266367462903051246345030327725257019763927166832083080197382306716412308577829505130828497460759948062475299926501319566883294269700698952115415078613591614475476794449829497869229608419122111245415123564821111276669637761236771386367745679956250160451875229319722472462106741713634516363779362471054876520305633572686837558239251911049955941751849012249471172182242313451734559532568094584115556206328374031849294653065757780588070349616138027353198278577747813591551338209901962181164560594916045758195538042560556577836027242207110972937725944952511470356029274607218704357107348694206193960360736896020178941089785136435533590558727190354169257527195753440714553159244166790397320444934132755220718597590985143473613871523988192801671009328847498907187471325704154533046471400677494123812868740106707618521506752151141941612605376532378578594126405289134587932782143169402335470567471703091599600215139192381232252516972626376032448352147557717921357547514391734211766869848821600720263805433767639270181041740661394588284804425630412791873730521823644153988629672697732793202813993872669162096969177761844338266276344729961505935699410584955169779878247397203811708421174435609000352592203579901266682108427227543036728141091519515565916574068951846069293906466991880692438555331636061001382445778754211647716495365171574053657276210343853225487780323119398698309855511946861548114524211286729830473281326525889427103422441563381924191267494952059324559581415099171362437976784403922603662123117164603736121601107265152585021387991276309961357870396177891326108916174069711992882529156044811156947008173303536097168074578233847795118526177369301828738280516278324116882314913751584960158324531327282884401879549737335520611839223771388215956145222367486232815437579057895116172878853641538763226110583507448124539863861284235198374607378322257802412797704039993051197817993997417359283508201636831416874940780058013179172951607793018541689908981873583638264772680783532170900333067424930594529772083828106623595294805847059714641001046812832716622247130201318712629235545768453822955786925934407219643697017594617114913512242224614598433004314994958634054355677864653151545284737505792710626328956982778504739875279434288392052805466658372419546661900645195427716207992129764300147607250680011025422398024513566529850822662028060196590258140802722194878845847834870836962037891543108703073451955551446558723769280338460365380331683334885720039337863418608863781409174685665790101651629389455709020768211071910924709791948783175682276914141088693834238829594157307565451844350495731407064227058209216356394158286195861843831895185811814551366963009342281911664122632670793948868445681471421081379987779969839595697687612576424777983731850479003290459704068221553610833916823044138108168390295872206404182380374794396938689963259701806824021015051500183954440962798289624317330277193923246242908214392449731593907423582553869788769962467130886238426875740052901724403781313515054182075896220222675759519979335167295904652842243687702199426391973566171316032787296537196257273588030999531310134965327070955256186785630667010536865265514911036406423660015893020015314643119968938737347575291461572859760225698304043282474837861679836339857712740000017132395680829965643881427731030253459358110840237213852122513475917238425684456873014383459171620098046611003536557714600370645140485402400522402610866438484132116470495996822845741948807677600962370574754600704533432564491238807449440471135645391342161499527112496703915742591100632256419361504509840333106381899845454187080364321222338044162913227700336171765472039644601694210547157261273657537403341990483385932923451890820173211553714074499978766188800571495028121558433389737130474132124752190459847887535291806585011334502685414866713224693543007715078940785857101637351981867572003729120216843953016353391623986221537552409063863724878555293705914531378174548312031475205173918127027510544726532412607230862628689743411571550837559366409424617541912312140877165067317883529947928087558129338257579978045652276784285853297300596719058305656719399953548392286157933559691580266368375208971166011487238359537788302306555778063344325572321348846302867679979716511013415895689642719500926950126879280505879557490487301840112689733482238057842486970669041203529888663411930560600703740099463276654151632792916676611036087520918397584277147217908498469317528050015475202202469274863881866541595832276961069832865018675378788912253602133844246860433546718739386438589009636052085365645377324169427365348686631287916276446242340404605012252332962608823264407583356398230243743897321595941131614850605899709469698990000980389764043876563145791443271783344944752626578483228855562557709747380025155679171424857229293014543423378866300620297761697517719426826515111570521464575541634314564135870628298384512446127167675165460568239614495071201858794753183861130031028349891264292611866198618752801384712738071155735596694869685829236385114247117044245657428032909201404805867836310484934586758323307886649584221911683007740906551613906903364609454131475239671803757075919970558309232190942729917294562780222353990689094384462516020581325962059839756127983979303238531764100697181417348768204273844028065683401212653530578986091453644415881574925272272924110479131198766109041845277547696561590606978052634429401503956544348740697422113058025477154463551362756587960398669171277807523268839885782037657996655923238815089105785134221188796152712037861870504757559093714935076022975580658497510738322110819400865319194512728470947428957766562658206297633104439105204107782541793382592068586642117005825992396536229363146242673698669631574313590731010445102917406950093763814829125618879962764433193045304891286245187204142152417235876174535340153822621320690732818183103941790063738638583267186719081653691034457164176681804943025324173515792643053916491971208412759137585894820896572019885991082611847294299916264288834469514264012216917408046942270224015759403705256374214425868029110652051636869744081004337343334154742496958133920923821421676899454831163762715715376545170518799935716978080645936040363144035567097713647416687620534135308742575614492710174672049499181728365097234406517325493584406870707333496307641028802243903859536459521003159931963616140744371431534422051872795092083395680272255049092133316449308874488917897655599109895498947009725666886848983497227850030765517586846386379304914441538766592505369082735232951871703012380462081693745997907888864939166356698188986117916612399194010772398274055665175443360338042683926716215505934254190117758448026765672366179590525092814385161958354642514142060707471939549271656671717032924623630765123083114788815371306514224011617244279574756939860551927980416246436265415031087831674395465948501276350583641209797558580649631838220196893647404321498777373456869142026508042870968805395756133925540115248435394912098323085700293224821801727338225945337708824594865652641611397307121339522503507313353285604634624894140185286049215373269400825574507547602310577668343790607476788865069246533101210042533160840484644375013900995067275467267909763618295590381066691854242959760243306529668854692274849363588679078574617690224473948807177084380974853212815667912571687925646832250283838610952784996579696805809063142310569753078494701954399425587485057509300630478874477290740204615272737000234856519626205310004562232728723029862753585047228425639677460924191215759473504801330537783294654211138551667601641268929670007212752530417452568288314766816156911325555234122305957389961700176244207370849014844952270575963375384592801681222143037183581871858001017125168434812418157064814581263828280924147419287842351424940031759946454189220057746501808312321244077403231719290716790041775178987547527197342416722217576301908792616089986721793774176422148118651775897462791654562827419309554040666491986154324334925831443806338153261294815664040749269458124314124697472174800908367251840799729894171556965547178646435331143472813861284191719518055945252618861297354847914307743776632736751327458921850512207100337381226855312167896971507453303895286013679244779542745886754962881952367305066250422131417621002316966261120560481633989050489890186253967971327477498186652889342609903561448069634603574842231818205763417652996847710918402582223222434491024916234916902893197453425854294910392662291480506081005325474953825730277459858324345319353015303711899657583399630042388575570431155416392217359454409391884087573624724102888412480398192972093660739050211695714799224967272561113818059470640195712990076113742351063175763906898784425306441735644841844927025165251270214893859909516732518393128371055227106519460675376228762792370273927500323777572964730743264132270346211781133559116763992098041192924474321358898085062065540545373158468425685505307660109208108150142081607649315007738288178112969444220550542807321709162074293225870321420964427423832510780884952633013250999765866857596743965108932386174760736422116864840169687736129194331520416573794207908342655786545179272396524605242682631087746944835189520784964412921532620406236912152150069592931139938724077148983451752521554855752489029196372737903598263591934359330596706897777162899250560032547422185941344790995077902678835307302792770127161291251811964275176805810552707005818465454607976470654071896871877755000888331720803820220852968773690262190567267553925220663811508461630753044671719544028133843497619358147046107668720555130130759145818457708458746026002143935911351621064290827324095847191500629352935634646603353235909101251350899489765438646106833163911392280972347339687988265231605912377692279452934517290563518933573371012540443550446735029648095729514295638194477587445535035354896322755247922619667028205205401178477074133973940326591322088034957504075928804307970895677943341005736780933914968079743261693076171456295917398216124594218517444401963613952144850900062633232253416016132026530565834329883377039667292478863944845980761116299167638970880367051346451491687133008559372490152702655385113296702844788042166763189475888761428038548601772997101989980279112004025307470615681402596240787125252985711917890339062427569092581249745107545706726963078742776367775451487573496028424434675255658090311453965551052294928321239079522014056339857260148863183326519861504739339283562212737255434077561484882002819357316407374916449751218462257516815269640434101163942830594312646629721368940492506322955438658952761259546393886752719222065424488760316232103486790518112666816077662659623836085715262639000283488421336062899899787621234067783016758645961372340363359252082681665974393113555739909370349403068696167332207347588311230831010647541640934876494131733789092602742800679381306320377830831471522445960395915169961815445311996549103877509497624034876572316818993478637820482935629817535352566050998888284302327273226575444795088653609038278468114800819681397112957821898101090401347138750993839802962837075819726571965364675505115882464549439177665684553270004806995200631075796690416514071066042678729769276184186755882655910424060290108679066368403882954658443892898023052569129150823402627291432120186621276849983153010681520446035897734755784744097298511203601471480425207793383263577439688755320314172406178179941439504520307888490298274123628041347125321059637978376778671366775806937587737862429003382736781048669273467248010838465253579912138549295329249169655608021068029387037038959561830269943937854768005329498883859910169004875814104995893384881019423335049188741989806820828975125251562836275599570094674898524113220948246605029807898588591115853754556915951316234559263853274254797924857503500028440211976575119444950031708056293511680002862016325594935095697448358456916415388694383372673170847505816881542609018658103941918249756803010840390388806766249046231121292611195572560291956337490683278624443152135956851618511337933795076069620046664950831725085656080035844707234631513572193780848540741763462571512021765676374081639363188936945345549009286599115388759164697058166184412872077515414400217485585884002240444468498160333872959162807934688550950136700385415900839179050173286944905375246797834471282810713024383481930889082542922080095278218611351398758730515515161017964375168384186788198522752437146183319964568534586285702443759745474042766519043168232526258847855976145860147293861220772686310847832975812774084514556164718461432241813886699081785544216523431258058461416466995863533024129564887308581917824686869843555342683046553201869196234997395228754683378870604223291320379963907471775053906634221908214984611050710880206641685114153304859187210051002870175418226264345138924315582137616536876246489977994485052020691507570648704547807087587900513587468624753908982874425739773605206797655457493153972997105144967301384451102015231082010892783644449102551473409631714235982096489335255113336471335891115456510729669627694181651774372089505813558044644532972036783565052099846161034771193651991014688596102444971970759028497412232234871005659690413292436912224961052931450260889511013019010903877854854885761958984352086226536570395529894239202805428716310230656764315340090918477916954752461969002636416465055034631503252511235020780274646469574195268538762909345835095618183986146819385990028628337790175535572289382888124872155900122292722460455663215575460760044438683080890567988122499467976505571105721713390069704308715735752087677253033344099399765016851163694370259126622211060609135411384608293498939938176873578235708769187308845510250296352579285624532569817235793243280419822710963573700658589835727530007831435955964755304779296932285857213770003888918576559826053355096885440041422646250087824807813578689860132166803335508656346658359942348374724837757604411885160245878550864261844786126403321517743834223034913355817777364347288466756727795054815281277616181879366400523212161223265871949725385600389833051949239336825651115873226355554612762982626204602049941867221892350163565249015805616008850848991388261559394878331931872811398379290298338422540939293642592327745751744044527598124329149802479687067143641559536351680410553801059968794973643832957355462889655656153722846880392066605861733596267281202162211595912968846733865829877848615274684605369646055274545521035456906927880761027254294657698921251367884150189477411777438865613311479505766191158917135697888453788294601609830854097392630197881753023483854497560964152097632577653742769894674293328285252672878595837352857136604457216896276118079385220678684202801608545021747719384441833965278481771399777151873136292820517129559421182668192357618129216507126761228510429743699844850896336545729866891076061377228133287805949356778315916205296169912726987553514124292101404141297354930085531660742734029724877121822324028827193784940384444663932373351408785782113648847824552739957382411508855191499922733032271527667338397676947364407793839997855862234276514965075989383065803900851748526355368800119001277733463561660963277517261639672600666331747061659190050077952206396403594648355938656370701974397167826317895811519095296594905258894904587350238097289789296557879512970046153595840145907181109899304813083521047592891390436731931825418926218138860636614350093464366929813196168777957633814028261073864227231169552583911917839146191304182371575030151720962158605874540688445790715481968718880924805185284868496158661671540263048460137793090918594529801721574625684826564662619914524274940428393109799542063063892774635926827230750104209994498374082206595136887723655835563103274840795356983001379880351531712746672203971593052733572689275588441645570520624267519100680761722022124335131956731953036916748788721087416074774378523973897880579598334399296992496150468059757788655922550400819254540513180549370112264931788853543518548592141831027475305781984277831382964909130995353751492325383513767143724299640685390916944486356847422109505673917821072702637830468571170394176611688085725183995477913952774911170205305282557293112647932130907777350216610009567318905565918855884031491090154862763256846277013552588598924744915386485137164834566162865037786892575508699703829275738458020224148414284268772042430479820922930631352203839641814243413518760636672770616158760953308727701173149975135923350469827878235667392081028615922691244659059801548840638785919292196124699444972306906192861002530530273652040706066462745421319618755614538784668073280648800617351297500239266498456787287283279850342780632042437877276138661133842797664990389608477612507099641728949204615627149337520616182526197628486731519974087332983758231033089224263344158473147672005988810155326740444331379973115070403580953643599298096558369069649655206614267808879854000451800671046665072374442347427403344004579336551646678484782533747539962804700709662943461194946010663448552394354424851861318472899070243589720869916965153649926537430004829472016812111643648756511537175033810991857235264792905536600379226793719669772203544334257481342355815118850137738697405209619177539663371301099147817956370961439973403479703052793054317873998812417971847072303319096460004065006043355479354786687722549862647014988543636274332223605776605842320810837944752943085064947934724328158483403499637443468248467950114979059633765390659473119904408507847261565383198441804857350587044569893930807186298803509653061684174816495210450766040794749283374349969672539389624947259559858907155638645548284178032697422500495146513595998732065217220410129135859692665589828678159308051923647764297267543742339991436472546977436222864384156263943022874180522231010581647691353949708313096159537139503498675327153462212711006903146099677037224441380636437214238270759794396893243614812597243608602003694013390197616947005996559451398784652488189545294808174248984067569919087975757779449931128658687476358021238877931214455451702993600750278351775426616511394598616908824856948589256175921710918875757781025924605514060602922259170053151067379248530634294683969810076225354897760071684656308770787901770385023469513499239953606951190737604721320893701195805579642298791196525098751117897552219122969093681865420871952774421868482975924397209134670089418162778069501580324229982531545729035910552191729354362853745128095780161758666513527876729226076521341416468163348905257777912977435813562755706420547691112106858173225761025490446304499271114773486383926786829016368488067722526801560381744895654713660089921339988239125067344710352734881145028600434541745358097153970455521848148985427790453553720470068140292988610397426781780013236380270570206112094118313926515130619923696362087116415904729955856184740677133997687393044827386586745616564491229275283338237968140779752678380755690595736587442751718130885931084491466978152848359823814330256794485241047795718979708543591621084504605253746442218526873125827575089092173060143205548050527981398503705886673398976972722124392961976186083652371900119887129994380610173518376674199134129814547589919306799566742706845602678222938266971104655870783615984464593626917816828300639405970293726601349239718400800020221590463992005405114059485307819876581414150040279083158172681005944663187695192339641172840197280050219386177507645851377796880837074867263171437498350868197493853790707286838476667846397389501312219029933038220724214862784935881095631617515033447723177686336358818480785098950439277117058994189345553010836748419046314728534036009472878832076797015810882732336977647552924196925296863166078032560458518778257963595367645986568924850310738394037408199794341939717127224753550117641747994381566724520146642027071852065073209216561284911921479757913848609877772058288132792686574111364676361003532403870968440101238889956656956091536880606966618600159622881890178912564999683652650878095641458820857946034533001681575332444857042798760318346244318098487001745937024626028624890456149862234543315101328302325674955666847406317872745261038828644935833137919097105048081482856652067686340486130423667109515274071998020234927938251725973442581231898191733869091718210568464146290879845255028772195467272688893067823530562262310241772651166198653912814893009170055966603112856507848586181345532500532169413318705378161864761253849950302974516315698857682392326484598734263721228940320723651922901047383297248564035812755428560366429411348231952864699223994579543559237642248771120228125798520955402039273360427144788390486572188858079886053879207637324971833427646003676986056635170220005623207740911749880741147030044489964927115072285727299497111049938983719817304954319509632140668303736573254828000355202302420043462178591563928758141421225454577552370054456248541073040272702723527977323632053775583004334929912776149158735138076224178284720265728846876781450953317521518281808364916348954278849864730880231036986995966465082519027915580487769739775906906380899201701495223230960779973191870567606814261798298126079073810887734177983119153998802983747041167197323521794079961137883951639018459973330433158559239181472301811530358192994130994320254156423738618621060837295080909075700779051807852633791735764877493991062918429156075131800820642426767289205479176054864257313176414781823071849609459811411697401384796510764955693449849702026710987061882027606679788962831764384590146193771910987555712649349662131105446666429549093379388742498308421626702889853505209573307121030609048804737850603830116212283679293266965775368635543444321751316246542094623951427505363608839004886398225739964966256108241034719500745378988487596523219944666328970946119180060997229210228826166141360058812720267301527950473574614975362635133315082803992276662711127894458995226477810554927180012540043917043851346422257229625455053958943993277188986555701195050461785092269933579621963235119639510554247841167890341285900460102509922687296650239930755192049599388507885161350782696150796303452839005535571194383106816539918077073094978811330038183920666456834333359534070000744638055895795079999626641268389157322940331869827728117035623529897027156634181574680704397461898579664589217687063679306443779516489300494637247936965123593276645009453213845949861058424991568412855187533783014417458183256504180090486973655450051411455314366734623437350563587084821985136027456470693139803386477977248695821401221505137675268094434713649439688570824631677494960736852561972477983946034114161741210217592809935689558523003639972190056799102117902950299640240707392944785387508361700069800198799897377683414098622548706233152386562738959813359080874171537243798860965582102383626029399486133183269496622124758182101173376442161583347645102114694824492778974359781004794470463513485410643500015530178814145893196026176498622153183201312679418319033735343186369590360875309867945312042467508676959429843466026294660043578159632226216351324041662540671016146805034163453413869725281633232439925376865963342639617271543052167645417061206118237334388004796150866223515541661448966006859453694134126446692308478371854866952439979242826250826280763912066678601730061731134820116112936182453668113620012966571049421218218213617703966390522792246705496592881276688181730278812306044742894406003081175519167806174652478635379392991212717127634821350175195558214403023812659679568121241754922796633105224864288303078184931717273302904013359127816784660285660785499024262290186553418816651095527219839523800219982039371039354330626043539122575343570886272343546770345999494343822581233286445403188611668348338237814811598334371590903272743937996561268220070739974849192451479468382711255894587373108043138276845533812733859221531288931323909260994672490292948517420584882464793192321819423133944632885762443648072866367873040557108290050900295705488539260333641937549343233253707933382730477150509008020104488677272993839715805821728423158034124124827119416412320854694968852103582144954815553138808025021289959226386720772108512976685288078154695586934759418690702905654786205429647674070559470244573319263621782559968781429773099706715164248103048765358992565274644379317419120403429803365436045348304070233784535666356901879353480540982698427983067862578017100595241673013945066601811282589785241476140289226044156302531963507613512111006483431749962599382056977185184419380365740420033168251160958380165651875281879536499242986170795064130915844076674588938671996914572063723320246682326258811990764607128504250575617095448853867800184700204674497329663172359057682660034188930199043109912891160137031653265287880757693601146875723458264657802204075678053549369313939290189589170137687564133713299611879163611739852246786465297464392342899808590798062920431354235688427758704620482495403120651346841603067759417861443783310374522999302407891832771209709257210435287773953511129295363304078467086628306099915518817468379529900678155550078600592550939976269047395112411947267926135191064351284567810342573982513576847508479731321270961906026645084605739828105552411573021084501872407127867384590377559663220798433836372686046154954891377938770744747694163945434244262934754743845464223556521434800256599831228938140986716906238489080553469128533280322891276346715174038208879730297884595776595053634068227524290256755825854246191343473193462262145904392549645419412385078397633003126643410525916672213563259216595502895044460801234453897881785934019570404486735159479730578274556622527277897827538962542456448019781612638785799288400198235543495358561850723403591870763725385985922669463722971082997277245726002864077256540891153938821337792708896653510518866766937900012007688283142412054483494083727400318731660696504793505828833409966441136378484292181908676513068381775994395490232350790275784782293698549631769620154026983420924250720890666537979081878472952291967042007183927756472067202781312544800809214793141809500948851747523568482370054194712076418493716346511851934327666060831793749508899180499392701587679018485217531722740124835561846756945863596565403823023139107329706550819381184384645654389552714542400445087342524045314144861575291897645570201418061440124120176638115591399777076122077575975083453336595358925840126795026673180393203987994923135760272174757193855867228175807540104079405739725107688025674158784069281372969433811854864961457748524487057882649554431532586673231196356061811541603058781646385349586714478756764192157752152727990564972402203479556250834462046342811056269720167728083870016504806808962117750363415192170180798059126180367414596983492813460355058071009072116996103144509357097308592389914303472171519762502225381606070501856002187378686192696763818645952127799914150394808167292198863279191898729328377542530477063390104051651597036502723626646875538363371120282076296590358158342283395677873056771536469936072490678060874135070267226064299409021678863634499084372197050488303340860721571858506368735716393847427608811612701549379721639767982595419463909247274437346702120374207658841887817337945647582159028206382034833763684243018946316181701289951254756100992542181537879983356612584388194384850576888147151054810944372689267472910373627117487019527677539579262107177464528921458117069294038325502553874122657231425490509203095988775505223510000909968410530936174487589234935480052813955629713614382178371276624211909697233025230475476500000697834514989214602084815555717489630922146428097580423981453365360664642842952164684382782186017388413942415979791451994174080364299487977154385918223845929612209078409603513026926129998713402439597346843405041438289074365042515265221810214051757189419741660861466861276095834542806535755146891024156176247933845997589604074653606807209123547278077840594866779136337171054177281715036119137013198095940396436187238498907109013117821223702689294909462364754994233212276024254609119582428506434699851460000503118628977848496763019255580504444661108134725273923841653324914185172028888693979495836946884988344587481057795535879340315017105503237388313662827106869419620872182872795548705676050779175334817736474167533022174905768750726821168075847774618681092214191317751331120718435014851181877864510307494662008881851483383616094728275799408952474482905774763153969829937266955920477631603451309891345943549845526803593390252513166195569950901918526014637521742706505369407222116974780724566686297356870165490558563242610769368329103559380964284867762660068975346070612544384303476361573179906270500387967121865070927720237442907948221153297671993356316987356894146416002530014043753769271301896753602308318182885226234813333436023239116790107419681650455063213625702840430541934883823929345098854390654759040704514872759207855556178423330713406880809200892695074586994763193620473089946992400350724775458008859452638310352366864015479431560733765060786514397598805563306733057534912571363290700243511565285245849251209733228311751025769779537215059167554134095106867852823283742336753980233399199115606484269725522828420370545637622256691820773561613877768321191374722677545242502688770766606572889425234326960870314744268494597493319990334295420776560868429787443429913620474764797326619955418478611839726591914966393345964296948484332782962942027891695113202132085383409688929600269463989314095929409193901900762754210996871740868709475376656697322853607831772847504127622754153481731344682231388704007333884097511687193575385678379608272368152349360906054375113423089539683695679649983758727151875707029947121325725415290806159766202512505823016921521753866758698658786307406502526988833513643763498757646920499064554523414645200705736885081090647720000759538945158616820837131416900300608130342833924577973235324973484491140638039753168587286141141168486010396716621954010814755198775658705116201697791786114746857379358050121674263264520576490536784577624114629397384018324125691322139507127772953617908188515558596417217134055368673666216678766897207537003687009385524561696380476629782011325505549336460934382154240344751079367823439215530779052513932315318129541895791592655726673860437552237333514820894854560644679156436657221318079663215197685800596685259795032876052920140482602198525895991298321052193903522493705177362838715192199355243528635217747463576311827759628697960857359249586696543674046097537915054660822973266536832691335882593291662797675512152268764597365669336777767765336890845750046770668600742876715824002671663524894981242343772556487988527872824720248186704750356652223641202453895059497312130664786777457536112773936540132921733723575961382860055487533453119774468563331060203753016160289491167351466152923516521056603068433595866177445689740679540121117029993177204413023632564140538945988550927262359511059074389912355783699040810501131212798935219162635909037866404470858370523108809387234295830385198780280172434549962207628745168599768624476345811377835019104802534180194920934163759802358463411451741763249825300658574704171767553148258133770527100929839662309304948604742377983465166503279231517393915190793618993446289680624687926712545680383974996120811001910575887458529528881517853064916031120391890525002479792361986924979292138295509785220910859553875112349117712339944432880205088636994207535111310968898484230610274886556038922104077217245704305144510512843343843980331617791120165805059554261923073305530559008792195247075847669840240008102215397287905688196645600995146284454659945509650999772505355842100117460433081364723919372842278017466969416280996757238913015772730802759241892809811972884129713538661714750659477757446028829160172500793506472303875282417454873565262485743407694246248681705473107647695724725627413755549524352395965214061586623120916656867395228146299023448295229440732781796299236318031786381376918586709514135624484779627329591826168842042806340988362084927411407197588052406526604224126830415139109414658343478967298228632194380874651707652639633306236472143975404909862913696722043492343963775868387535657033858460904793507515270277187466893686269880023911526912072363688097946737671502553763671419785559125597329185583356718350181708248982356881699306183322144857219358962535790265308569272865888697203893868704891195528232139379805229543937670790816629052522649347839019489931011305837189328349474541896741947122849705641966892590313190518194341014832032290250589094231414698773040702418869245517483182815742923051061621157504143933598054880057949668886665023311079340028154664572013940257120582016409324130435011304878131020572765756374136507349229719504347672243471621660140118778812841028810516695892582444736209706955813893963390603196025127523951862333412572013867150500756936387071698753566008925907391645863494546700229007921716460755264780014586715472496628778377167023814568439636203695737540344113177430699558085263945876326448570088693832647682921603294843161593176711652470365160913510664968194060766415705319045855939645628053321552709258588695433418499894614878922207384757895989419016752872046361365777915677682088179238818970287564024679870558994303802565292428029336350741553791092059503803447649363082541418753810491820583904772851580922881101083117231967273784140467867431555619950147546897934103182070545011156531748556455038022802758410825473739238200921206062624881781007596440155382103955128668256506002464846628506917897562973761583400169749128869006283879163335653304585481780206072510151598501127090674264559069993663458989073966947993761125465748533635189391143044344066453497795817545206192615700935356498072707611618471773950550890962146295906342849199244681056437599968518363022728452990243227655884136597169904028236614181518131905596341441141708510898321188727535643648739101275489928395780974935017404377168120092196495969459788473527691706570188803427277393813830864902167265176912021105867189302025301308029460637594121466807228103296280948231124744343427236183250782381024809535418884759794330363976893898158950898923253364036635029144600775643111813989463440488832253437346854179594358042420205639460653403534741411919170487399217355216523040629969889089287353871438444904881423089530338959454668053061072537179972052243126518788228282824995556956195546748153754083231162800804665762721224342112141828377637316692693804109207309957106654596968381847089321464435017408710963610767446746802718743074027150131014903511615362677753362875712646277073590273690364264309276978117043639649302348159490429010525722307326935791683008583152050727135788671207950268172472030818558119431099231983474745136988435652754332805358646186158858505426811586389323778222736682765733252427759216584423946140900492200216957906453725829453926721075295914987149667597029167304726896868316239589517675316304773348739495169221246714263509151914554921578699589221996850813524013826640303055726123870796459911351534846661141669444789095170924302394017206663006891064326991736728443003467627125964715895767340651223440922117470937104865691505684146737300987211076952871847930838169739540814333039449279278708211435008267849472171260184385450752209688081647537177878074842450056697902575519688768975719015559476080047480566040610446182273792273538852121290826101126659994171691426569308101926970573486738676214203080285234407763702842837425589099704655669685217236862807209428074548330880378156154868125243688112872807638615668651395602298653963001438106372986055987530841119258203374803669025440411494761592338000662434797006938519108477510293952405888932781343593585139700075055328564273426723174950249739479752633936286563897986471290097207372065580613914776927772651950995550021735569682086657190175846298375021187938305851070542719662527269307965091465559138384239084877457585669445376046815639012437125346257570770113694664224694017534614088873972978628565857945117546820334440330434678718974968440732251803375393886792499850334563766237849319909334203706877892386463538152226913213602485633502885542316528412382882537857574884249220356447588975672226974683855501586976258787782759758328362608687008738917952094439455371160459972053974222898423100702116765658823156034084212112811504048606907809264656421768232585164967969182070233427396397644154261710754296667325090216741757729798927218295339160574732764423117486656588384691936527040298920484888982066149505780264549508857340199553363334303372163906294020129418404140518084603944442049034792009263311747165484334247187496519918816261065862582089975768040515060328064879872449651894958815556182077829351852473204151947938756232453164692314164297571910665747529665361407639807200614830313252221250679091324401558302478825269470057207928530872300141750638887377234120276810915230775848060597512630120202817420744418300768080907481002925776182652324050808835122713102249355228290216246784351084535894183034083943895271830629373306766961443644393860481404810222490876278840706918117170308373936013827122605750822835808747691698550290526637218482289126660190955573687297502343198586747490506558383178489031715435379625129342348095425915857240535091379623347175461919667051541383167004539142469845157490865433411105127215484089895547575921693698439246649512600577405882729039368405621683856465344159862981024499811213209318024746840541848631645736113655349945586103017050630907233110919601813720747994548137199080846642880462118082170141809144277998025395168660778517087616123245004542309492635096040672934910347030561628127180520120826228927107391343953825621979559350856197357479295922021073650821710877945745284393702964436348629734879615631456285999995044437151252724788350314760314458596867705371592940826794416468251164527658553075044925313660916298927801976295401719026054294445471216179531214201288863723019095527832996542248493722967456386235776521884132984795229869060468537790945058373633844383288881782848160166094760780454123706232774409666109893465319853587725060494430387980027742438282298833684659781004237512292633621767835146254630196699472708997651204619307045075544577897847351925514431190471849848279896877562476382289124408364870531345797876548678636846454967373473734019007337110406442894621182535386727454752362134674214184600326918742194698671482126722032865611828671624306489613672012462211364172023436081445430675759640080939908149441682759212720759710731242435080132491292483915376947468425326571289158843629656440875069201527986834692671432978390412966542666234694470651651259442421126283359920493869837519401719066632568154400143493451729825971919421407013096054991173047119126112390189850615668085272606132969891355538419779345164414022642848764887040737213682197962911318141090381329363459486113436007416553754897999999748684701058081436430022399039847894848252334158340072586856367711578137327676525952666819635853586530571034064725589870706107947734236034787372191012920686475406333042663290794292051283419024714370284441809595946958052762559394310847377816796270772315238434547129111778865998685215867936006470384123536215069650877974349809312472808018650314570234556963052528288959355597983228461327536737173128269092517261723383978161042878291507426196912318127179378497053132482872293586850813977882227028466138015274563184719774006970380021469296012034600766557662136218120538543950377407927228677604642200336474677842354791763963032756997121599157070558707227572278738208341850348336445861873832849388945722130077074114303755077710153837284273108240692041470038477683963311835392438150673418073032631579160355534690024804066819936535540784084972169740074404199078285744257180294272066850837299231926121970628735582701501894295277595029515844344290024634130334342862234607676941084234158814705365570538494832839433847254168147394104903566100579973961878679233084157768049980978640137286306398358214279230517840334704301573791651699008022602676991554606285933267505621203391261768937503953470582052660562112652722680942257970761348168834837474462577852985279849293300753814950360291556062454265066891177390006005591005919661200906541653910664249773716279926941875880147253555784792828115784945511550188714931215741423951125426665282101070318612925744592698681769684315933977991647427757482348975953100377741808185163605039401510847162069928954122228970093948627405912629750700424376943441879531268724600843576946647004045398818831633701648411279752784556905721173719702894525304045767048089430195486080590817123146878588697849914376748885663694311246469072412377330167110541360169675361471363894556932893515175915089404002900551002314857915284935878247107653715233254287128695725147566250041214935519508193264370995060715148797023105774044171964484709888124249420725810614747745336567415466291947574126023896722761699629213591658948876592321579992536148293578717151737340017045425843723996461934826849064662928181173223448358594894836813163898347895947018255169798613372834771141577300970238452994810912957931217619309705757061704237619316525939262349376904628544132485370997053254217570954963682692199311530745551801984964382106652578413031055947539399630479768325789167995718704202545728742180668916143906270770708552088076707839536097647893826575042539675431955874643061977110601049854578666393532228033312281727246254737683848255548556035182791866989984626153864208823135794483565844651845476935328851919244390407198050934180715935089181215482452044871994008149898464523523943548677858461444184257330566589354292897220506806463236994929988005769495068486848955344151841362614432448536761775694900852242291928553308551688483235468391698440086248207587363160062050050533248344850412807675844581832148689303314824185718600206184343492172378042157692482446303162296308027427867929789746377829315446568778340352558857789375524518433988851037048403659375288433547432849693505125508859861981426106789171070056748944571144201296018831329830115325834010529826179584472432303963482822676197735260194875831072536039544463081189832398861389189033719345563498364995315782453489388391361704025542399618562762125320138159974297586092758021788867882004402710132071955738403336876021600406277720167594633571224979889471845544673590223179168462469532104263659741266396952557332098359634693389752276844541984672428379412128855747167368946836509857261061215270449385377820496903906296985638094299142788091633897560853239541714990068974541980215571545070918818538129311067172573046718804346865099776653714645165410102785515103067455285344477579472489843549146992092297976349210182551680101882413717651796277478899941607129000878439746062461417166243179736698915352814293947970462704646514479840891374150293877822361148680522764203971188035362808827430489182461194958394882059705329222233188912570007312222506361372981604628638213967783293819370518914783086295268864460848710169461715551858573394603486238117893251940980415732670636496316544465158268987746153153033563991918923175260349203984054144531053928824049499297604986913078085460796893094067533139863236630215128026402876571880478603418320512977701410607741159033509021202185891221787268542611298989397502074330761447609959171627966606196583580957542502248608248336126737362099871476065842830616464018553920623261334428030894363123519731748004585172139815679676939015376055444751825191516075132507357327374092458283865991212169364964023573870341373747041654530126380276585160465995929659227647067218462115390284892974255966906623455654328497695584410566233117581425202765075245431387837147691524322965241468994396026852518644452330679472298562388119323221849550585295948014702054887582088711529565254545976856918477791494836932860499742185633048655176511202602715113550774173839328035366875064740427139986093130643768479798670257628191818454361513149055437578235966516973537495581820089242602699051510990203446151163432250909470516483363945902183767641288625694929669550663424270618084986222503438149675136717854415831928046152970053330611036480617746058778415032948689960449319599856216518786756356186472484627724697722381864710897209847630216875026784054959731688021679779545518765679870825085106176827076706816760861602715333778580265234743192727516469864868610784160597551397599088107026629809311955702010189054370632157242499738277681159022359031739062256206814476233350523225127040550015988171269634249981395854452512601560859485189032525037578534859743268402744370191847967980179896617332298812833562909409936488335349796657064862646463570679858876076784677106728906272560642641839085492731516461394906611003583569155344924638528980550777592862750608557027511059280516311550700831456177656246849050711109873103322045763666361301570084338592953832687093476146374380690084871063972177877623843218899706097489031111103405423654112024343807527624150583329297433130868717326613747856023000986116968028082495270073084565404074021355386979230110115730074521916187273750894972709448939976334215742762547026623928238565857160325005541267999449463752858933295469636974834841195124593694183381782255338970735453149776941644093823616140692345424109168156260911238015757109198010348969575506940482908253839195461351889626638503388098149929551583224611047590386144988166008098050605566067668667611612868572491001917343347477086608279474854646684781833853258987478101762405303676215936356479878272193587632665708249584631315567724852712837463769209551850427664459856445527929520946059708577119083529281562401641434023636596837182364985799232863317228213388209336841118647595540224391763127274010536093972685764461649316926446966147450942696656913665616432331416964130541248481007004584964605301566153438383234445674325830279123284245695484976596335258761086551013459418019400597798920124778848192900950043551978793854024505516583215546077954742926497680872972172819460024269747810485650943594031315204587590548940504325699360651727391190326120157581185507917093776245684317538462223688686984593070305442195836408651498420196657415240900072908973012629217170509374114331283374053420044940082292975388648497937236376025831251283534289557188462747063977459442968831125596480020888255951166930890750275363049589761984973962286794847080019561760215662829779798124200172152583589410864465545348100032084173379551847221827186355071702253307844644822669365409313493664139287056188260251301567785137361079840988766259541299248942226930380837250851386905610029147756226577731570237073410570425625088774010759538515166026335893261640313692510330416873830500078339150205378624958861174824920944864641933936147507601167281400312339519005155693419854239921773578050934206038795570210803247089772302053029345048479501626478704522666204762862061544346361924918246551272856531173133493271627004919019326309862209543918258765245277750139427699946157410299223989224923778537860490978559189762211214071514628811240898587051740185365514803830189158736540682437857487867385217559253992162432043865329944438436834917280317452176057076279301578678217046875661340157612987847142603183496220967154868407146338342846622349901761192966156170306792900117869130645888860848286056142363547599750030490673794485251016619322496116165782975857016024842442319302673219609494353305765127980218092420791736546156202163487458117638535608720433777084798873700528681539321698976815185649927777148395281982685923173100707389783985180978670223362644088182731712308862684858921233718186030191238471221282761117685630609023763963568089490075969223499030900870332571307707207249361348375240566985850036347606170981679938140864793317742352547474435533287061447685557608291543950553717576371547911696455000230961538938136631872625599524470561264756865728581893179423070251763692166826089918977130778560556944199386139442417439026602272212433177658585462671210714622775400087876630131907555008351684514376922563400768342871023677686403729270973578040969938047571662038627611259907618849068824161668883041207347172266852688031236161838568151094118194943560615977913547582540915739926312011835607176498134325882123188810042680343721472351832022211447463715234625363753545353002797353601670909550869714300894113671104916477453741417373760112154666778714918259680546593324527998249902474920528206344365589193241076483018541122643023919097630504531645718332434128416726191717802855119511238760979949492425659101243627414323566826373736775588978409121035850110964831614770823571501395891619667179490494789488111644785736659976417147601777762420629943274335044435542178564989806052086032746684922013421135069580577613789648460818928426436749610196389432945976827356594844883037673314428827531430920371655354474340958063643695699602728301022350095848257036786042495591630974215626470030407585791109372303590239682869103615652399143540078343468587061829875324023047353245706598206265235211010543665057496565315520777958635170530185008646376812034039338413521750542649935214106798632068171039753961972876124250403831802055987342383005028489514117972884566555690467534360644238821346706501987721202432957609659275667850070545171638242971939971197758522350180438283629546003817294898817009768744869272525053419040687227663915082797484478391896845237666382192275330014973675858361252824285475465899711043936552514106477571466949019452206104866522958662921020225689212133850945063581517285756326473310594369174217020626230244299498974663732288006847970150530270045913321874011604129389363671534714823959099343106977445460269023194901787662639520679779588233790881233806391611025813735178630926743907556048081900146399731437486774625119036559597217364220658979898362624662132859113536264044586891684701072773297691497217207675958209783269036402998963040643616263286441473906125141488740596906645116116141792298706919378142998527352995829167230943021264070022371128717718981958354014752559039663205115047613556609345550410898309418383851900706482917849255493723748925416779001911889715395886403977049599801594220619545883740405991760262627958940620115167541853627548681487285221575204646627146456156964086352869100668343720577751770900492090929500238252701999643199342409178107766179700092414911890041187713778310414923212168530075038913405885282695594687393738245182114947020336200122543534852976438552304353715999797610280142874726009117945062370211499428378773229129909817420992768059085353833767726011178052103109391998360482429233767605343887871882235162031398493925001325357957329956398852010813008752657649695804158697830449027928919171546795860776127470877274717896977780876514532681314106288872104444955392578187980707395608322851760089901486659061548906963070976001711450943433853006420106222166555190651934144113776375700448972535747913393688242957672548836705619467622969226360211565801047439193983611077359415311064236115914516434801233856412674065313202595466730798857268808399200785766276137602143640261981147135414664208245557749673274244936546106315454220202744699806553854538670787223293177454188517582592668803463192088351235775172053239514134538805785822371908843612273322786291658916431999621616308792802286363805233574290431511480739063339135036087597877235455754236388202747833228155997817718847011511959437745347663099398087296578902860562771438223885986618823388662847276778271805557488928491588229004490820145664858155984016684605171219673571975510879551426183030815900424934186779109871567043357584974404712537537168982998159365616276579290676825126852298378074614984444139241288153539778258840029181109086944818149142416863023401042032522909459503955964341735081333084755880942035725434903681574283445178097630721952944709090596714121762716408046407483259985748504834077425324750179328453761816062993429938819442443767832371955213109325386301089580817142518429802358856666350003272801067110075035475237268511529459861877089754791731290406842254973945876268164572211639740320730481921738972880423176533073311514848274673047599289054563126327072289784929252360599072875574797247677328751369075848641494891331640186591332435713510639822516330360698715769202553035317561771709476851594308115430839601519520518516495974691798322648390691944293059147277166275801254650573422216605585201728449536206532320253303328251317071929369124841728546068115946282677632293067808844704202157300862004822368862513014997653322408790079067564121737570610952948829947069107118275817549445021316490199348444989811138289563446888542183666195792957707955032457220429945240756448553469770560641436610883783636636513379918704026906791084729124436299798781513737598803659542099178097645226803918487368936545639802119715100467691757446185554461453642196802449702961894346907554997560216225140994117537145789722978479156865197775389024939303955926867524920661777034797369966098303006409447623668062652371658940766122364405434126897929568514008708775269830929721507254839609778237069147289922374846859512042915771712104165663766167541683399732208367131679010889208207237725038064030607212550614162383786018108594700347774370907589891278978217029542713137636560283421277550033240139443343408681264780214203979774729581829852575123203258168547716431107761744660671224958328858103314695433772789793505620162249059172640987443737521027898032458911011520090531162342373853726078823949869609272534719576675883687456322368778815235947396020466412595287009926650076519615666423084814672020136144558731967220978781665668854089098633679518862519283875311039884530272335513922897324284516731424578651700739440467014980292863660609269882904336219826199034963837019587055427265481587980873103774711054516416305384677424491200951688092446633580301879484829455130658502167995561591247983676940483551712320703395816159278501699464480187685992579869111013886564820980335455603966346955546174350092311360836439424373692294302179445943643654566699636607881062750702678925596448135590692435895078691957918997833610497025624093410974547357704284399269037173288134836846630214509702421241052483843350355503401645166860699188145625567067274743415263009118273567712518237803830988592891064696779607490504630684980274661297437991221605400122368854844704712787322316358189551678990365696805436950644109633890865770009976381695401655999549312941802227572744425452254166261937151130933362189534797866575280023057848544391876218224340942133685693758249265580049021071521095386381618891244692734035814630732279895385262675275742466932537164495689393200664651296829694902577906605361107939817939652106102560124712698725126497451056467082061947370622611866855567364637821088779065200634725939635694812021761774257849139998085310990962152568130182162294439290543737181171432776898745322006876021200179375810577174854766277999606409030523912274585723745999192922120437807625046366993684064479893012651965673976790668165989945495119193454629474415420448219919487704737146869004439268341465644516858270919400540290915807226007445123292814258310257281653130037107783713915901484879960855947532288714012514245050874702830169757120153815366748957885526755186387253203699467438952084458488778266345234888866605703936318877457422070181725147112788767125476500975869591506660104056865751207906181978734358626720546932987029586079457704659575318851742914471210722659883294254795180622198049595121564383545551732578280453442565575325210591143376047893000095139556595019157544834874800665452691721147262328292096812806419715435759972247730774538640597862088902474125785921775991013757610262269305672196301462549986877599219789372560504215093802497204850504497612631250315221072304286639397105776320900157190393836489690490071030992152576240732903011593005807089124921656868285577800082423587712766311220890336090500965104984871730726955087344727595448836289524138934449899037973695920663558172969553828756258518176146604193915747883031569229916073790266178239419412848993541374217958100390786407482336967346940976941961319054552252426435566228873010273961326098528566064707564333147135995735638666210124987727659188772303806968434570828053463092952223397663536111954958084085272771760467655131580936567148890835769626215554027436810295598063061912358395502634434369621577710727791343829308812534524366998688232972907853491582471973053620619416640700331795635825305108459990884006088676294961354068975700300475924937243096551054795649431586949734577776808716427477853265830806605837152516760632419744676226130208826052613806338353376986681852019632467014985141715126306131493120276057866148417239648010405095024391750523114994988143234473280314008867771954032038764308056727949163185037387335776361644683089076259347415195841437132438710120085784923437476790077361143935736239083545223776315015469615118109923857895971200774157152861705066696166077956659594980011816247957045206629781119305816949412567179307331830363795987313848723221415719941995098960478691513810737997745356393292303932712978867250361825426027685578382957740482634343202737948922367653152753891013188062590801989286479104560157575776098366190937589885084908683145224028409061387857236301472861584878610354925502475005588971251814973995437479233059155382894619661801504003023215699185002664328083821425962408525305805554563406297330532811123749190949009998744398013899288840647265609054588285021600102901201191631288101960760270929474084058354358591003510609528892025280902545231519233402484131109624840331323669502872008582619013910423697012599669143635202420115030588861822722329459610524648133031260179337492117634562894288723100285540381913492862506827664470878318147651804031865185154178953551128851987034275682423582438389596511490801343706119675055323506867577924179968179134754376396416428621234498552463294757789966526083225680707182730842093671845589926152940803015680010463759477967558681762566213399174342056097171199414794343681327574514685124396855512245950974694350496179391071724394456243191170819588379482169694036588301160573792523296132545448814377190547526207217207865065753121533958795446810845646911358314574057313747133791810360426612049872879086030729308590994197382833477281952643386143295901059853545299646013347094855582871963910041703918979976466580708394913599935065952488919491371192258942748729560971937170591731962341089369463442999900985864708973649303274249129920328240555527507014796674707837503566232876532886112689709810848002556644844102277676785007397665592628736050088398503188883997313981080062724047641621528661014425643603564818456507327872257130493512627233872419786170334142696464759624731490064517643963830036198354869525998727204033039406598767796906432382794828654010717396520859275030865137594668217053386097492276646874632772058352910216800804196681677846541873339380521489625562832650080209107419843246551642172865684157569758183433835086613726081661428533899766179751078339059780462093790534271104197774292004942719945634864293333451263355587148524659356275251537542209105489550666962388313449485332384559202435094707297461151385367589422143723526728879226925152936837338251566887994542626727294643359179902840570336659451162173605953140838352508298166241363799996196265711922609927511293528682731870822151317818658522133011759421234563055564488261420062104142265908119021708924499461235324174046846320368090040680590232962409055723872458729852871358331592133864413348759753066137995092422503473694586863754918304432358162146673046767071192054591546232559837805511922916855354811907607748771494113148877770211227710925234551357958261131960487117363226044954057580019479894330844734261526403257595115007152080989430369252372045754611304426517089054211865265092660283967325124733318652288763823480516144838892645168050954637571910248889939218813561406684231143204274683894683874356419580616664551985687913829090151904610370238129715628995879066628903589774360099316362298785071510606243877755801205518653523998826831419842656048262719236611501373924453519665240555941982767337040922800169882902722688703133704547987853752792343805930695473222432664991944689369316409157973040197706162416296625727769901587812232881492725803011580697382000295171660074233733399483210884201382580168372722021085336429525507485967568530218210246739430592451332232527002856513043942623773449032353518361202449698770748838057315143471968887509330400368538834655139495419819682177931600839315050110605118694819455464478625437342289938003652906514086273552330583602420249530449859846786529019242623276208010028152559743566233468032105624099210331401391781401373812178500471927598784709164216978090638943922946701723288742064972640406710810441420458981480361901692677981537277089789600759221674513521264577364001622445319198304804146004314695160334123952294192852012065132375120836711179696063345189197308395097151889401391206627077124677265656594907604046113374220027795234815604085038539967872555079596793207828567923428126440709478872926534918784706110934404529697815914872527166800375776582086880105759335094723524958067651705737224235406001413521560942315045715364732285566815225385817887959865430455378297080288322978120988750666942386706173407017248238028919253898913618681228273625210207565895545482499797345854908602357155243647194943234447752164256428426864370080862144088898468260947902967991148488131361730000090745854866504080324097636569275557493800334614514588231878128007881541289064772155079370241730426947351515384984444241575435775406673778230037548271738895934448558202504654348803462062091385040134965477250912859333596054726847678864921581497046781630712364257719304433818216192119320551673752342639979705784223101689761010190357048217600003075703740821064044709333845772079628954088357797779315443954019717628613878031811471130300183751739979710796164514266836137696748173305478648321979311632845124481489318998466462124056278670758997423168532913034905667352132458307246930572675865656980496074310785329479421286446611339596494812514435915097125909798918506728811730813252751381846607715742755100882765161149754110713398123473698978160188491737319590015847258320215957627260960018997234914990024280241589819910868443431302582324579558496771877777258582267601430294034632880882232438606123854814201069044618204205869964145578999261423083485893614304302460482376540338107446762206812014823814390734717206836349728063568507720099081162486170768186978664602125758006701475237133474738446042019313795987189832781388904053424552883516939794736125757014336341839582209337882649123640760763458056338737965835591684848300642876739156128298072572597347473958295235482979482024664409804609654800864508265884102794923304743144416706916551431174598909511464983004753225665054570889717743845765915877910253910426474077686328489856435670928281793622372829477436781341058131409210460763770308900848593076232686988215201048393082683972117050257145709357092417435651720530168169839585703171899389981535709114745965503319814211755620873985109005625502481651011406394417884634949156704773132142009667093670126785881655850303738967422784297793693511535721456654854681221428420305379990614806219631146659062318591379465414140447267714981096980032401199436241171810709044608053225264436465589623501541077686783497436122096705949131890694289927963115890116367653744358141087481946208766895672732108905456421323578507663002534675763218050349604346831665101050270310210400460016440840416703901501906339498794882450404118322998327377149349275035123878014488673560609645008886234034611266760060609561652278420891012518077790501733520544559484514430504787132748491216773548393429376488421489940400247110136124923822211986006714015166765851498503005529323315582380430801177710278317196363391393118604230975653957330379232260678586199999008685738482031708076214644067739686298895428626242679432068133025808001673272879608117512537123033017835917666857635479665884842806480921948259181367786815050175511867652755646060196709254625578347083427532669559205346523942265904880783096429822739718889874423538073501139054428049365161227115855877247279101824306226707646500925416922511605858440370564505578227774380658452489535677520541193464379312794008429488752717395055366973863898093421923830941339344423282265995703028031605838461050088173672475663535493360840036480083522021927912927468802743833965328489752904494245731309873263827186554897638267754267938659663099559261127946558345737661975040917071569447255941062120918531760012679650922288421256071664155185664417670623389561699675608477975714488073040229612220654669092151431540120686998301350751284318613623578203928816628585897348593918110646935985300731625457567742934502347189006678951596377338929685552704773328136570761041054029787540388577775919347538472341429037726916258822986580509579527927980620142041715497450218549699845963045993701980711591903863571764153710791255181051008335883993674292987555979110266786440503091281978282936812069925704175807074575588982713744919976568475232116496900708541375968870663627830594200212901966199846905958980010979940547505024382661011416151170734452811190478308722652615314803005791736220363298943652517397206158955983970987813145202064696812449054170471682009607503543771010636909355927758140546205088007027853512180976889939103858130757074137870434602716138655641473468453120573786003783585231717890881848700422294762492474311327865382473121915132994207246928437655724504223957185311906041363050275764740575820633459337469553258416492873761529095559277208857533102898560880458430875773433727603887218859436721421592532013993353700773156479757168034039156153240464244110451474415499108607594987774755511486725410518261978889682225663374507725505597544630413945069859110230088885127157348859811320267257802528924969080291763660901197375605011330242774982513982593080875523956274919290565139197283497311078287231172326965467488363561725954644385246047590959452402162725444435044763090123026423556891314290313909703310904428626924618326400240977403568206688083777156904725546225273494413308862822672835171788647471957735669636151816731930745800871624704889831826758459712048917122616199934681143206440295316848538084031466028880520009669471342461784741035909373567110702879178289726400754097754918142529620803298955936576405495385380715861073608699902842077383971346351554208210715603940829673883478259414434253674405964982086590480007149143362099576558470414522044022960097728310757574561239886980816359228372233738851446870854995833051632362243866164760121455645554006994875148086808222783057034631239737340547437109823848845362753991452138654768254096161931594319572777831097837355336588113998832132131623539618415921475681957218689540809209329890087154712114367383423522130830080915126928469705401079609984537673439598245500961239324597843050170087826015228477681496280708565589262492113024847487268849581297793014559244898236568998117712487536372946188902807982568407378035286526949704104138776419184463889831147413368278801053806567005972673217478484195152391374486446876854323968102950556020973156974609872483977178105522412107534931907711857892745360641964353631124597802644018825352780114173881540888469263315999872660313742023416826339076611930753266795557473524456489415850383504597316538778884785967905312183180201394721665853050805043423331534475649602444043209725113729151351741965089588844056898810995217658700898628673325368747464701635381980303027964170079746698566156020684415713540931680791769360265185769263412401045751751158237256098405011034000026844244015958128341643616453147697599832783064040103121592650330289076854586752268365882241972365990463923967965016407131250120826341233485849027957903266358647342952394322846604855244416212879294433525963940628973239382547814119006436029849743685550073541195795681137170338758140360394310036528819563269296967967496695912921554444491378280663919484752859272165871217358717621253569934596890189742502158676592963761303878332242438899007963550120915799813604271002089342704019722004098926264512356026448546511697676526061167303182776766683987485692021440317347285126237958300324742318309416497206204638477036480652073885250857767822440186556205773042991363003044648678303170760192851495041104615774554891518971204918441056341202879755230791825755919850755288194362284733967476180488350198265094009334051351400182997069879849428260834507432208386135602913421588724605675186775084415673933793470200342606007262496954804236329582914989649971969855069639757182787943639451672348555907717670608740250435985193936245521239179103484851844086074215053476066282955556905182739388728517453712112010034706447142234199977146095978058481149117205880868291048978745757482594662601934986825262955977313559672964206551473264151377411425062536955106965010154936013786002870150448523769506903422062089857005731457292692827964852678368526885777495073190950336357469093472738738273674555435089349754826685378078788327053599693669431139975657064956342638406243066963569589238060122706893331988160140431020040479796062501109154768339304069145118536359855365181210363891377770482338418521855729824829346521529253254884176835974987784237095939838205796794263123862744602042478540300999030834528015530029967995893611385822516114813352762150852106518355399266516961085364647401547228066439142772500382444068358605194597648476359666038098492121506159422968255780681690818938007168328553468450224236251071494289254199760517299113653255695180993232636322005601897509316699367212266536958575581407658105614302792689186950864355824844891533764297602993345943098017034983455010383496145964756550356901193102811053231634852872064293115707209163067006498873506067425206699362392267065915935109663000845252989219098025862834913720163480524783917420207184497830646091134795289247405571157862974062053860299021988607182002531998195836038157305072490803590893719614739583840608288487081832534909607326487642752944184875461001012234093861268833691264545782417909748659369189768277990146305034146669795475321608841213593984067845327515339261764036643826031924508673331070840079425567799283724379842800409368369736104842041902937951868758559688789167432094146186651792558212944394436749942296590045330203661684510350505060177357883514814895754753677822474392360947104471792838248652142800125725000260720612055620176737386141192102884711774387992603646549122335911399474963112722910543639696027803776197412905660462867342391015504616472465537297094613878143466818035817107878673308264079018530411544182600512664199278801441015181517490848358375356686863677972067502571915324654454625331899514027335668276218222057376813620444455851320419647369152908980854366039113651986850292956480686188382905995920333136677501298484132066884962124060720911934348755168840977341713133451314365634215353029686167134412708109629960690718376582000290743645269975421547098895532134641721500999423101127552619220109842247199278128626561433732381973229308202099884377558394381778871439706969894890410482961908231830113406351015866418686811199162568602273332837217346630750774639702939311684513336665442970758425904338043412511862631672947629054019307497303195903018806329601243564143042438951335279860925946605751360579653349657430726288891996724520613518170430857868029056967969068138300724991463459519963932831364212033996122290769928584894038887115015200815166618106245485360355359952486199718831092461415527504736320682611266991820688163452750961743737552646292616772998945960395305432224776043378891530376434241810807856817179120503351409425660296585950627233034018443848367186504876630760224211684507042878422906065769078110982416159175183305574004756191398256068437122681722674916229285262892296477867840440940195921094173684516345041920413109665043651049578925799632778121334141825476304938007456546539768641047138696114751213804574452336421327148979286887328204101688110761368675032489160423489391717773124342802532012688773232561802434898323391662285628295308327314400701733553886468696983302609431051968612561296640216966569745338531174325976460472869402892354377234490709894844547155094392748944937753570922480657085844762391793326524332587826305041698613583986426744409562526129301621093253725961832056006304816124985607471777135189385888525837533929663319005920372000438929861860326364862204515251533160059632328538486958343274599316595188543724777829918059698726107435110471863074677513108903646423082105410572458368920229646386577382855582071897388732439358964273475812337761251015070784266830383688292728008090289744819144343774536566789118243779703023495400937531763961400149334563698396519636228443880093085921285968585513515827183037331980793660863078013641190522520108948035662473748599744373922366928605216121410351629003539455092643222233238543977612888181858933247231495384876216537780062836805105457429908232594411981865185565244794567048264159949976430294509793859972745239654498528873948678010144628563918845918804632835200310232192370940206291069688941093467950480545855057981930287330697167936629870598563216206657257964340250001125444078636990111762481367892591318178346430131949881543212528527386540050263051969480871671545282171347120687209211274446673146435221282149393153953486849794270816930653483967347106668544752199570060649588964741984435943399693261533184134507458991571387711682323178459338767851791522909195601208957733023747088516144597917204444807231515707130613346697619671224327972194845868886301314848476697845500964209870259060367579693914833188182693556792739513199480514287268999959102796211484558452135518209952428230462368151880396126706131597522025149517128589870896863426160205664622456962993880250651021161516905701901933647010756430120508526066239463341630034242695413966992393311357828211989519248050631987510674701991033342056511714288572385145476535525986599138755022258622442653474465080805778928278012381184698307034149340433407243909019689856944963123313401656812262356250352815453796945715076775876847463906738106216966230021142670872385242991722812881565059020551012055002168233111282106372401077464564924239399541213576961464101900089144163500142678718571511101827628581997451172929900446984996095985033908443245407165607636723609933382661483625816996524535822669644728026251778347139917350285770345803926638426181847703256211549580161338981070956695958969223093311491354229030614581766390526115536677317880401200673107530918986852466616997056420364626674940745662951569363641567129214968145121626478936804463696245486795193687587012323842785531305545938523286256313141069265445266437000115030273698704497103546785157435372444255313890632614549112202028915980307210015538582493291394499236464836225614340030087757321875639043198335635221591230773177997471945563373556340472419624485849558583259749604778005863930459476199809760604386108026409155384002083942936386961830688467953679360866916199178399572970174492441246824787329901261108901276151389912362518013297867302884422701949912213367071668918594032785915312899429352816323155552960181338029964330299927646102201704989218623330345499715685254648778844659852729407092724906876708958581966307556878490415315442844176061996025649010837279268357591199855085111996101035541223442456018441161715417315392641932888666720055877189916315952256286356294803372163181767851477369368759638552903752176876359969842037120077481984328417301869898722085582344502252127243941522522250828280059954184495474666071568190803412308750698109728382765645653195137700749911480108518343724557052139323926086635010223939232204195124121680573767522204891529478219206198279565292153512242323685702716779605520835070948906025333434154288427595106004980610178364808249822349854053367121284429678070759190227070898799954027462338619747386685387086517603406522391309660658269709645136086918752024311951346881875874055539367606854078018945433106649270959911455898587010856086245624139001145178228325927663262574185813267482502479894633752824995907894567550162430890882295639950895379560045101511475072016192514563441329010491485045148683411495122356180390430214739635470411124554891452126631266119059052963905022092166502693408480329597376462484667755845981484885792805365416811287157101075225071661266972011387501859726857532283853994539432427436941179665537159658465702674148822421591078173506259510181584008419491476112771524769651589882522673246658414270630371271853508283999849846794630807636417346444729450747737431111907006842233680270387188373460058292511427425612493374472097944394449322305814424256124183602416287980936114969812203116315406042915638419210383772948013286666338253966869155280989863101632076925503254189731463940977911174493065958852468222031083098270368880203064349660006402759817967040553783193900913802441619451887410665334336993048759234968096855297750905916763444311433304483426312849016867321114465714484457849919653345677301152156363153272119355023382345556966333691107525764253044933412059334034720194012549233016240894945814700646487541431794710492515305362650810472278988343173591132208555930707395382813110684829349548009512741925852046528819850015879767348857242057707803606532538724743876948823151888774351012389784692775012075751613847052872034461366474009948583290871152429425961230552345942192270955476780261889708964495799297765821026639404235644497942808344520328599237209789469212665599903456665393569379640803295425214742617386059145943654286350611954799906002995220420343524544259852698066137627646058477393939011548571809120655617667823800972303731609365815059553637495742745703542547795535048255516071810076628493895752154766317914008573685266768719959105654060775127507600666552539791753008530173864684952003359184446437839381828265578551928280467518627173443015333848343458473903987919539132972762335673985254549130549365055430037190848052919356049177812087153544481000014171189213950301741210265699019265812593496410246778994787515341637322615519179402543480601861496595198341208606670960065282427543960128724861726357599712353025064797361492960922733143796923150809980836091134586903944373558753361077417291456158140306987205774872461708867534650165137098542858268781358360776028435274513534424840011871911713434998124801967633452957426266332546442717887463641104168738091511313165420149319937023750322113262825177243567857891154582665596464211221625089589956808379219134616044713248159451330254535885286603607738460842149082191283467726273956048785297019674761549835870260303153636188675948735419396655451216249578985872746391280715074993115037480870552832824603034096815341860225692702664670732070674286273782129865123261154347698917354355537243589740784137997116079931174191806899050557703327439251660410884663864676395003148330155139427257777650950960404987689051983816289771298300524765179538349211090160704305387395927037412217505767588564050600360204230309723956161379813177330458491034749409143127581830939603456979521335191889232131776013876011389108941531247442087287956073467660610030979520280973818783283511011110050014976081579270264538057610360113730767740269363251647046694691938287842259593724234167828522163423908147492148163003143815769998587851757531139788284247094096297231295818168291892962770419684087483966372576067378490315839522330559583282765723140809371822568870881180383330686005604363137828719851895730269479855918024946278822869470301978085073029369535899255177664753794841788030622457006067414736561453196205384507072926227499294153761802222675099282183168399287935002123552182690765175884531795610835809260970657177164187175497766576990998503436828099574366211522543436963536985845515223419147958098031831676955622773417500356479656586259882532632325892622049502853909735668113669617648142393240517126529554352384593830116523808098601855095487079898725032896788612056145516769067175001675959795122043538225225878792447417264812481672209045576216598809076513197456905992381029464407962058353537620401846750962988206735299212700851373558908598804678070760802748262901436879343498049192561058998206147796174529058634905441220693629865794767872203948300704445709664829776129296575909643355898262275994444177996922954169831012810547409529149916483996525143437143999139445950593029386185601646797333403041269298020242260829297257912270110378142905215254640916556619351967869367029688571932761100368909652358676404660311367919472534319416146572851351560022770363933978207827382765700938756027294372125846554671073395122723604169788754180504291378953837426559034281037230737791357210780583748561663126637881466050025470610145544805048723815935777475079810688408631455470458023442036042205985590201351079070755215615898780737287294220762882314763392539775827258094629670143244818509521453239013490447983961061938067367117906843420535888220505191995814906306445132976664872200445403733408972800459095209735471547759385858215055809807884643919399828878720657128097519839241478739993786817271784312337311751594834865486090065986512673450017455350119285836694259504732311871428569429177947823510593881008821421084849490841860317950250250421710697549619723726092126053835336079818276523352670972222697067431285165922348348025163341687306910753472023673472919035494075963839741873481493923546703542465398226617886070784987493321671609365091938228149262697207615965566716841830744677445761897098479762406184055653168797401989930465374504479743813786106072874930232512291440442231571971152864365151896040665205894120676825433616876301491998277606214981571030927919946186137148788970325077724929081104824054702989542694871349167700037029797971348547548781485886728094531149038530929856436592842974077676531031879209068584060597123705878009082604385755943010450473239917668512283482831207402080628558066563319873584920443965943931938096991645664193786884167507823602147402882926190506959092664354269161792886245928273151145544048046228408068093761234114350521414148430772649746539049463778221399753207821549456478782724008833279071286430174151208443430895367975191102574453083529577714659391903006616906099615476797713122108119239759527515207291830337734391487812517683366713461257691664568578895965881366796802457914273143753536931463684783528250657923198980010768089795647431620259609573311351800616872305903441382180676712842344426927448973806974452712081979270299629356707311425693182422022372762572790137069371456714162573109872517881055619693670307279907296993920334084701200843008409918655191490130604706886572604683238275700309242627705953027392633554176133028057576322142531265662610498081698181621781119801768477165373905375984724092993192931143878780247313923663908593691356207942736313688493242164624054440642413406666411109033365810518254213920428146485236422038080380978484005129159939425392945976612577272159936329664852441216496839469090789925775543031995716822853235332203850089444041830628245560392887565656348037016138817335079306400795339555913624232209906536388180041948703826747970876726828592292619790133175518768749969741636473951588768630347026858653948748110388929684698536355706818065410455890574225941300299307955766049112235359638297123758247333776027637331564592107776098544613235116530030226916495990218648834326917300622422058698465661983731281787306914392522845098560350723781340283175288564830579758816263474173447222702826878726869666968593611069147801067392309624710958308304719283284670714154093116340127385659496933237041045481108001190010070560699525699144310423348344662175283819847271228570294404048880900460801040310303774289126626241164558830404894689344662336288294119296020022950844963960368377461105755115298103678874541665066879694305287378085933866660375212953772351310261070047651076948747853605348387062198069416416083567900394985630836593428814129270812112286177321857832225199648361637523920180703711281700384134945993602006092874139546880223264509028582071326856373556125857306362651532207234350338613295112021532440880523365850589800102751682969203529131293831392082976788327867402602097170846273014687248317970695813112870545086905408511300783105630991006168726615671115753580085868373207069781825028904615416472170923150391601440940378151768464003739264518840442397032464920652369345451489793407111009486638501185318659675200531224507951720903600682210732519019073240797045898690084495498722817234055012509256156173306328280968744039312742475007732279222791046749178977858529212955982336720669179264946709348568361131784937233867011683845304185300466290681754183573743617719720894788103021235678010461368604749238187200571538568674584102112051984702518538888089630737515875589340625528969041077770116802407176857008682611171475345999124371196525902603694758944872674680682959125916619721670600327843538804734200174806489216627228386703974664043041941974701527466087853938832514194352880575082376047146007341939153767739758758470804068127749549774951926844989603075814111519031557821426485596116676395871626560690641372532929357074799451737678593751877621952913127541593669758322261220643342210782328001059514309630830268106994048928549455721068616049060096570713131636870385595905582701521803697989233051234802458230519680856618907205328055828163252365168469859699090366228484388222580678382370645951819226322007931473880019682535047665883510073422379252067474290459968503203577772601039478785480804008933654443034230558816197967040901636466067207143533067093817841293502663082256741644336185596652985583366229593809154692465693895788725232084906938755609420617114983686867349631289833522499490329947043812338459290947439951074427959745561876757684797744546377574414391372863788800273373559148062761727965994989439493057292771277559599839290934304761044363997644714060796316622559145813423691247128404549469786999691615421766038709667228107542580787228526820341060363821555989006612509841832716609748114566614060059536155628380445697480092785733022876713278925098836476034035957394891683960295983417731491466076220064565914944394767330858315858842666569671553238866897152071992042604471449130573897244521515751844752663041734751466391284596963169921330857487204926261578012213309444815427374887569673024819399465314788661650947157102848778200158827111598309897608547695291339853871377603682500880756512355798016114391435944573720531469319672991373213513828829003764241884130948867961690542220265306311722123923251898608186260529015599902788346289521028473375557476017758170802602651379049880806819549723760334976837665850953237308031446407341502147507627557140552277609023711892047712485077431630295786403515735550653032170415721757524854622950571603255766677755424906778124859407792393696367907754211041379079065813308386217795965844833264476470316629873327087354799593086152381491649021865148465540130736804701892710256708593928891016885900818736057821118839177322897031329876444951747469867847620250500450972123973819363994033910842840960751746843758996228285427913108733572403953038658769508147715739427215110832439906554071105151726844284439590902331982425043646327252052971672529805539201799759820703442800390358908582771164170743310370416454877339892799499114194725768338084799229081942999232867740445728959337634520239043053066484030471703057189824527526441270824203753049577603159280857470897051323521943422145809995645887879375863840310432913747986396455083504266034661892638783812751651769381769043342051290088895194811514136961890900872797793171009950094731184303986968351753120925687231334342594232987189457072298069762540444729624136611753376985252687140012600633633381176776202337200153011006730008397482873355738763970794989896497862599370412923897746402130214774720239766066404124598745559673157495955508445387401881032637453976296403305895649530703150932310771343308243043284552795198300909376774475569357148258340740162639711426153447162900048887358560850846215136684156037483377146862461081522929695319014866276250600550688016760983091917225198283460437405691146321646306174373090960368459583430602272969076245449404379398104180761253120993627007879086682896800539083498618589495967290666289976332483176810355390635090121529243189756153355492018757156120007276601113166673501299154633027673895395539382051603262875013808222115005430260600182051465674233665016922746760621023711164765063818184348174573414868189275420251699189542259100804211641162640199366282928815978971843944974682826009999910806272342105084012858231102062338700506445225140177109648430900101636868377419133796703551632291631485796928176905441436705061484421454809536806476292421535903407110971643663821518349890712381547795249767817472293887388430083390263806989737572451733339792056691845424779779829384698270901863749280893483765928164527479115538740647697825636839130601174089192975118066813826242808122311936972232799640392352226838951470545113860947163561433157173440188522260263304100423118927405690320359598020837997075300838898853918820129806361218134531352455377858272919994542723052866975337046988512030280279125832970081839097089528066022032709878961782267955984839967856417533772164142288468975361667643349571416394713597908792207964620784847065704222627643298731069882859731404918721033492237397341519841592261825477755601490716772836041796636738102513472792413468729273582026604734848442443602480819451013037942426288259816950461875527059478621224544346325136216277679819249875070196129632091756520315766569216727621460455237225436700408451253891016105503185388549446269270553133775019695845253159284143358204335827364876096795659901738023354841206027679074022128740545522783912471075473082126418477680350514930521396579248412664230061662191518941029251685226345827302161518989856931029070171020647052081718870547368391119469202663850338854394995086402119210448642738844761724771243585932394391217387982488323735608875008748396284636935771068782653773796820703542147378611786383596813753174034345027704681166193865100531752136078645557092375291523652832533485020964390405048005352265624953976715847811735852015764425215932311669833805166852271903756560271013713292523271916298013149133200947236634320518603462710495901269165847721497264970963292427541809840979772504594312624012607417011279281273327701186835872062275862221208726298119381210462475250763852585692226737110145222141212823740213169421441550341591711433476120356309611511305228468385872394497742796424527295349339805723269986539090833430959578220741471694386067663093540159123763734333172690500968253110287425575557667768499134022393718852113085501734316071805083786719270068226747724717937083529073415222490939116740120535440991174449656859847422258849398775566884656669182172383706511197217360067324724688306211514478577874550035728082274588141166616708315353246377464969832198706653746249174964381300884242483527283753576149030245060625877706680949442194875643066909312416104784665254201329537116359747037458165599155536430163271413460026749843575843953326703962677818375576185964952070983332227998590785547890474089475330013716221536039376775240828285768226734675593117133455994444001114361790244384733648559265081325169756314982989951102619985994756996743497876869052637035202042398663225270891125252810820499209970727224540851888773726908285620459351691210425279980673744826674576909104407630105245307045772360538531094332909864198606509209040207825880882362103977883249883630670608457412812133373421415495931323771693786907058257831720950442103903298462923918546504674186942139739187533052162328091531485878834570342298358415027708430921814772738769436145574648666467976867977553156630018854103356097384915780454654864522204293255823977874190931223797186405641300366147030833086732385699266143562229440167631662746467527147018746902135904874774896206568329914787328134886152252475689132557787468568712163167923937558398703360347837825541057552137967092652134122383346040123073375312424270313466544476313554597154729235252694663190697849133525047461441281784546613630199908468917155113991081553132913518533994689569420700220362438207246283923255557851790132072675536143536729999536039217685901630217179704433008750784098142732152778502255060268475838420049589324780381975728921514632242677693892896946443006855392513943788858891276157669376131217986102875899727784642795932197386146965595118951533449109393895402596306115419658950307944218175964713428687781738984045470129119890550842857534374932845814260482892784914656086012105829470736085328464080289637821197532926998127556891143023345495474054111577031013282861922815533444344523252434242734338003425352421021052728335903034316652340244075904862939798898381722313310033605065112343588967121237334621815765418788333159755834165905915789738516860427477241581463267967161608342687664397755517865105692238082103043391607993938578990926466788058880121037647452588186497517571401768694098721460625010545851569281355740541546771697198987474342209493079329309425242618316376630771884145361273570461283701468177178910349036835173942174419305989195191795230501495777600326117730583180770543516427850263611272038437382935470382836260502660894838660192665562844459338925885662366209632450560243276997219252697915857773419617002818286774601105108487307003229266927661153774571465710720465200995253390152495643513542358004218854162890415578794714746506021967027114387077237861823509421817060536554186253475042185735011674262387635390501533315083944719274484613744340021629187146382724321091692072882219645219861320722838783180880867877010338671498230026363916029504942347610803399704251871108770129475141692862981259747908552846012084565498422880762534337325182381008533113499914986742448436348302164256623600250879296205203539444112505303655372487877348209062249088890655272530457498618423656251646696847694187183100165108153634260330264859765276584863410073148155433853978960068075872306809212965591345786145185014803972996833556908193489306809111748022103621442787997125134156936757086527649889639497248909980441808381555199042769985755788525035585494468191355082932195890345064986889104379488261788415469312977568774861804561532403304034181935674727067484574702773067684731339547910491131761174317834949664977922549329332109338599154186761934288076833870908061464912770082787231845991064580520751442538018563812249920059751375403186264985684288991608787509647054690957491593529158098722452674045362677236937665446892380610186561492659354991258251696814766485778003367873385926764766990029194596922743769095033105618855141061741064723152091020768581814936510748171393820730667977770147038253688217337439432344162927174918111063815101209360592247635407284799688175993138106931366141781581461869590672419834990857505360107319210793081995622423298157776295078372110422318344158175810961697956055333445162965575518497124611844992677795011467718477011426780354686361703213693612314138423455584344293975604924939591804244870871663328508880572574171322761664863830783473103934535404364723571530597940409414571929080250241052033022710702672918643682811717954620689370079983631436900917516918647361624165116962805903617849096109749714466803373958191893871695137196807872723100919611061663345851524895431038737431768057466331346780269019762943130292200210764986783541434155366651863903366287288454697012116755389801022891519842949573853707159535976709735418308122199965075934678348751198711411090845518713844204058791995278031895880607543705576327274310249786890217090090188006294289000413009227829767345244673850494970532266282265967197352815784995226830695039177520681535058404009864885669727792427447619573932613330495894206267282903711103756731160399180215363210433532387101627759706982232404472400981772882342766592660885813494467276821698551781251980907673330989382367567545012911293604644223896908867190634399808355311364288658213027767729780293363685217249455498007453575103463163983099390555977096926220022517724433120041701215983142411572622880868846567777958627392929335453762292329236142463749054093638794372107556876939159273810080073875397882963440815742736042771821340986875864861171523448982745396033797255284719859793385493578630158085227931520587535178267894035126310204896460215007768152946301993834139225306990231023842469918092723347190984477047418305193230264095167852033030786491415622308926429484311849359181088543047463073852011715383699657439147633762509576916051226155755336622172291236056767907831302614887734040998313997216553076556557352374111836582506742498135492578840175042310145228475828801162847901183983291141992997375827841062474580597003745408962777857250541403245881377055096446764854249332639699291857687383686723108301932518409514040646262913282485035545866059888259063267142691087945028565675377093869076909545883934938922114665997119356977867971428987657939223366261442760916139878480390335721053771902262260035195173620463890602500115703046044556939418119984461423318969709520485062516208980769404486106385462563429124968772496458054177190590778389879876829022394973736844031606011193584261890849112227510155920220518381014349436260693155335377130245438690970783396761871960271604474612434841920383216127064807182199710989838712667011154288805610433278634739865995872623832928966055716622130612456396081616945861722151434391198285595971612444140105577412380693480330496387188794473739183913199936964703101700419178912506843865888055585999374795599641941918536408922527943450173557915130177644758300105209106647314891716488756704672761235849222816264428676350856775276112184670811610561693026775159485406589264087045019621493706662244144469172637208901373200137376539821746429748572626850671225045834313176739837044809670438799925122529880539919341387884895956069904956969159375170337121726813615882947061017959309964096659523312892702400520500009278195149103166092123969120851855489656322841311060961691830024900689211230652345851898759870420604975477328206703351448100529106302181802669706771044652094018686359608696075187300778547553102117696009934360168608963837351126128567680543758390499353748269519015437480360675097360480200500373954029639000839553327193236799702691702852138472422798204530985916692976533250140034425853534917715673188768752807306747582810166323107038566627976125859151421605827236137938023128386048787515375758565760101349794183764979954636884777052286865751922618654442351166317484099631140772535579329320540139772855067075362123034515830940798986034564651692412411843963106768187008991665110232378494640937693030690715043329479511943550354932899069542103577055847717502218627380217812221169450631428216174832046142057503100657499432886158854383141876432003690595229556730212137186165709225045127105382305297886550115733369979817595646311424357619547312959086276987320439423567216498864708881152490125374072064674457999668966762698305848615939851744543330786710227053514123247512437364809121653397889496916628460857667094107573346370894984993659592004539954278106199912368583191064136685460392958108302292815143247860455323042786870159297565825981086901171375961513289189493759086457521383446550495786258315967795853624440203393939817390916615681477994846981809214655576746162166762849181777195009567372335707438660355274791132701572145701221813798620460189382229811096645320135387173570224983733348406408168945994960119515737425529082696168465643940255463929357103125206013557146404252850597698221607462341929347160142591412703345471457856886712130694511048549216393119104062173415379674386422362512066630262677981376232183458690308537298101774636147476460708098271172781197617484939696389518233757957576531859626747236988111872625584318753706508510481938482604889097506049565290452166446097674192320977520102719762410978914673906105482841401814298352960105583958061271037501146601752936263370849671336348485826725539273284174452945627740164351605071150191443626085591513447322837424951987700764568612642049959731670944080256271241383019817272681593207917715745952102619947598047326852572862927641691222492194900782784670820340553324914880080308237373602793649412186188511530289643731719170830001173367575126247105943632668529382694952915267217853359667203658791248608696109938000989194372096947985226931829624644680860090040816735651026692786787836674458080219184595989080175338078995115512066524798643932187528222278609517648454633851915770177297473827962271710406833739707028159932744476086970353304606152838787467028797204395178560641720883712226676597443886691191501710209685268009203165249325944529412472962225825765360280529751360753449255017330656454693670228200909405768842634473765161131160938198010334465333429854644040070064592464069280303708295494100464124595767859701718429037144086208520188695274822799911838880958175813251197691432159482850120208429076379539391521848029733123576036536036487150088015686708924807018715063241814505660719975729019071175459874149084939193650038828870764777859525078262424458035498052613816422157422777036683809662286268931281022073146827725232670886317368591424407655761974185811751684651256840556834511576164822380641665017913171844652446800808061457817210603060411910388154238376379374427667444586133407458045825402138018571572957411516537936753756287689283784423085539189158671645205772282755112765341560095488776518410638181066004629292656772389183936151125432703491840021859280359120835619782884347647400299118160602906363765746717949236376519392849091981797632265671008133305488409345371005666645189531539143105130618431753218797971877590493876620285400418233055409822591628308466850025822355365058492648565895524075590946049487053623313082719685381608279542298714784250156050588016799214089033878278902085211068200523485141166393864684505167494367644530416069305530445202514184721125895271447393207185677331722636759257666138936059513192367266540466794915854125466132572593684594794895275048582369992208979410260827318482453941348858269211859320218980648632198350629032119893480316094587437309041782742850617595438558842966223339704612667132292230425996742666273874327303957770217641942861238185715514219626533785592138826003319884176723359022536278793768401307542219328260488816647492907173640624977922837391847936745346550689415752513581732475091992029195548260295491326130276248885460995760782515129436812850444752005712951441138308027794922502767797110191254107986730077213380429612850823340653345166881908965587323914978717571987100585343367600634115907569766123054031085646696289304043907963707665154903544148669957628224332668001381043061701788777453163992009558040283239132944535884225771080375548719456531441625238499553531921849084545890131718994885120571707133884710592791262828323613893834307166214951580607455754061780059831347983125780757557084203404678040174579929411576012095850331999130178074800578498858620220794980358364555222388867028723251146708891067702436657138597787107896698960773626812255196999165190399161515558672515212867927338982097438080305649250546232047467549754347409914967167075334633258085639963268124324573970424814042846084005813631297572216975241281362430109740188771714198903101432141409880695826817346235701684745702760486057238981742457758014240246887616098857761444159724024489269065274490816197624690378394829461277583376516278936562068944472954569166521967455586212819128067097329601491118961627703295069683465410847625512288156558189326218085433016582047288251107836237380922012367545315470163216767772342440285604660208356310646399006947875144803488029327204933785362970085485737060579751605540538104170758027528599816126601809260684290834867350894502767385369346908124720765087390602530352745477238608167019100442910856263771647125208580363587426575493526758729083786474503669600711326226246614370574609906593001654071736517103971384606270627550732482834363402481941463677635896883131250434051209983818406707985174440085622247819803877041153677556592055570339238914709048312805932166496447776348417838307045002403312636999060544073275925304465779647917592364877762321585259949577610662391442706650726439776874811633754231512600424461638441451360767321683869817003827896877887758350958933171230015842614425337753115851118552525598280898845553465956351834170378713363645936538594782738609229234742342021763765789759731111682992382173433933769351392762258117541296138838292911789447608901726861799373572575716713689222376676604810261663702690008583504585344781366304743792458390496900156800260474947451093999208241604715309770846902600864688672067915609382004206437593526013925468562891543138776907621713079126052848399917716884645899039625808641028572710397703957184319070778558899507000710515320109430012752545649400031678430023831340367531905264037537603111857426927606059195491244476186237139022133881112017844900702305537770131520867483772785007172181970085737705066940326645572246463891643234019057160994604020075953342482370855432942153910513836222456365920616841435047159851373807396336301355835717230377730268201892582976104193650766694813492152249411618014700069903516257232586157168920861347631265472192424175461472429425790210053839184557870144753653731623718652664848849846819500062757491405652836491662494612793521378965499913178925794219672302905837197837601978518255288367137063903708454828001870757782385378121842558638261010808936561611549828622359886139213615966158805421301573657827165892384393681838175837227893134577724917796165991040156140502060028229368476169311641595986335045587278315277422157227805376031949496435616497466408032295829778485639708766951802808118385543104203091843353974832294999582885925539070302220493595227150989453426426141845488408288155822270344136147276101238187047979846243566234000724331578265473045517696731530182125147730605394701377091553453891073728348693236513754841659594115797297337519872502550648583372379291240704064239588836523968160427944566530839813573003742973001521270878025900727217277855813765705154401927381720429979357681858218620212941565838575877014067947667145564130628518715460632471868661609281909973623826390970673423419199226447139468192106053712780123125814914446701206791874622662397564720808756822946678209125739588944747155390855665249700642645653438214552469762525665147330252413889253682696171925984892302121740052285679072025106187298176875186442089017081581412359270504974819170131722109386485159548922246426909044691209088955122186343312444685112856501028093849272964255262337781444014210728532592858389493954754565855752636011942197638233589393201641187801522515266484647523258163959912113335512543033166748445657998791752347625765133643979440242820519781820537774325970454670967101042855655019524349003813152967930033915833581790858649419204584480244039762174612608778157505614801803428590085451530319449451160643688949074453198953055984404823443340951253679725831175872552133193931608511019535421104452893036874972250338678465997097441262424179699414461675226658986883592034896707866419517299999657684293289450784314373024657551229309644767773251030911484658359511477207632117458601632408105905824450399559882970702730447520244332511030535206564350578098168999378052908101164643397545439759384268310660631265580727114559026376754204821100629908186680776232635413709916333377252834409346701850524978710009579958921126831206855123913208190935648177986079931419620013526979809875566432285786299239968640908467068511197650560143571502415863802570512502139600311651242933866645140038748540007125560926756161274709614462579428327048251413137094761583040550096602739429442961385640444109482257641729681992699802481322130948692087167626875135638421469975065035614480487238366221052827653852180074260779365317304572623330523499195599795896364466675877971766119101810826419110932971025771528962548379425167636027555154955426021806138288736122775599166812789095429007226049746002412810928241866716978374152440373236577811458875248835147533865043212361643260340992378456256920836949305663936442946264505837359010859624048547852050699229153465141973957116940894454611296068848760281333371706398468145380184905367495145962919144008507806599767606796774662066067819215689568089123746656263935927166232393756340912373835755100471548539941982618526258901759066858506399109035960956845576501781260267008681850505974063347148095779227970846619858195292061156929248659591229333939984876124267704148000541221634269208889597367288981284294635551980475302251385906950301260534738808838604205279144645483202369544442892603930589970370353269462755015778008117717978255161637905161815525706670249435146045471575465961339867867272283606940854919126944355094876456428688654720702423442166317469354137139031423524337566885572899051504218568296091978770574061902894848335929103363416460287675032516453834136529872553036146053331972032540122900107000541723505507351792095647801263760511506719227355651741461413357989561714565204276361178684869162575571528124626477074054368819296669217321061499432184885798802942584923262169225440276235272821579991804682734640988797199804719498317758640812968911645990406589766973743809012850460727385249341383298419701530666194926845757535661193683306532168414075626162376110649233666297187311641306158804826074354392676432965162917737424920739981135969707407492281323383133268929397593764312227160581489520954059150991735382664102025819590176421967657573404690249041662167354180387183790096009294324692393461141335847083318934099640022240007189423133987893918700941795020101397174790590483614591523517168188101249735335612017655945808315130588115445944524643538252269596594435779229315395848095751944924983579158408497823372679476090986075705455507218695382743206878966610086955412181268632939500475055852808799778233377803955590651563953311669121550558502136358459105407980142047567416118961422640386842617242538858516350683455382893787731478466780675649786732363102103310934146926647613341861059135689427307117253985593646953588769004361149580343205119248920148136662944638265658333830332025192212191828261004959549800065894267193298333681017360520866145076371571121431521630869530487845100115622555479754600009640385131735948092311800891631086136858374830157659041621167606527539318471883332177069703860092355007311798644962346074906312467538763463266785703121685676728639449300465645750611220029377852128759237648940018631445096558131461564675421596603712434454992020927044199614876876519667893152714775194285764925065729689535378106070739792123728712831244765218400438037435873474488694256153252228293489051756858819635243995829207206419101568059440954497234982103834457383786108625797286256923197629290907442843615103343153943859555298876705693296199617033100801289023758521106694574362742465149591578082132070812191319918194407544978396703455137667437720222734501650655757525311563285087138536129295675290510489452257217518883688033696794543416032422861657092138156158365416646478320015253123765819480019633800288330136961982906478321099633651765641424000832365203618975943103198053053121618703633036092034006381772562971861970551313005875693833564699508903148791824356959336827679703437221414604059298707953345178962948752965881924460429162478437782929297930658747625009122718175291069302066078321294930166631698504021959467851110425975828207416488755460346226010510422289727885236449632750287173695670394493289284006037528964212835509134352895412777598037127472949440371402867426345227637756590947014935320736762089014852871906799015332889999957621009661872753550132840441314384064757653441525524912033290112752302406309727576613208138652987131867266853502107102793051186366172685950138115658250469726805574296217225910983845823843358389800748044591629422806127871620705314705082949161467281821091483487158434615894621292544849207214798330642583909229855787891795184686857585341042781306964536603091780034500987844596503635941834574853341242956283167181509881387185866731052417314120806493813693047585227762257229179214047177492925709149263070381847812422269773985021731883520746825855593574486477801614224305107455548697159908821387299645123513718224435557423104592920951930539234110970395060635815237671133276861199361804291295959355206546322768584552995394816628358973668911709525746903586886780249944106440667588895331714368242665211728066737920063100281670614753948269828505227734778362276450356160265793607706625072000485363859790231970712716637718878741298054518412903220025743226628255465492500382854481777011697884338039030713694459215739523419590665542975382190125299466153039055442566051376586247537355700150315267304713660463775447091080727893404396295089391967624819223578268997981080049915948829503911531210701345193273867750544413737127613077540888873626411976151918408642315409153318558250243911512144209650848338002630406953516834609425215038937938936624032562021841973573612724289453800060379030268497060401444861407745727122771858713384482781574372534409537929086783084784011548797881690462280673285362281193486404913374865648064003213802773085929890439733337201906714079467769717751768043561365564782074461390467649379627038992984170454584730478514295491178176355738060499807416280932643192335316113245448889196755782692011472976769026140555324603775256508188990326902008149632848039084082881894406619008923669943561909192715056366784709078621992006212008266963300953932696761468702298152152706167772056150570134171851172782801228081392497822122273421018040227951593032615638965424210835891867238980762026391977853938675614657307814367518829286960687986283671087385317909357491008791623174827708771605362971403224749255412559326858329743689098443923351417106048154714406199102497739025367877142387896904284080772899325228943864056356162463701022745555971467640655374747293030867859464932910511731973289995403644786909543400942609089253858621872516857732945760425087253397959710652132526957561408677558899899063841668662681917895072403248889421988644840891010293013018358928848371593805812628610420583842789247188750659754371745218877155349595440358024429332902963741879882475254385236603554402609971658853446786288509535898450442278470187709831346732528280152998997255732046306081895586630867925517738169066811738834191433073700610796175719177346581270734258129992068019826443535806398202630314240189835226214389055490331772177800023740066476747921204897935799005611941047364425856888717153600093056385650619860977551355307769369900622410893118612578904232374744931589045200136173093194772174473232774954622647374188497372959436550436126775446593053418656956339650716994738213244915112655360626597095553822615605122500579303355893127808831413512113697323517154617371811051000788331549497339613357915849072797926733118618433241531377876199503298850287778526804354780319978412363068305006914453151040737289797012782486851063583437165709197902826190638005585288608028814022228717393945261757078051167891249022247390805506456576702663978949352540694404290594646930818182435583634994691602066508652986693393441130842384722321881585912936649235286129600689374076123139712859045023526680502764865482638134304116328347275956174573211239171021281608667487123575212514719282514286019652685907396804374682594888525275951517642786390558823615986681192332119745658216010038156693988380379005069966006137093801796928021793813069482633556308668832421345392295587995536247779140362475053808480027475870650588446605103914084913394259295674849321888261702236775045559592990842512903998920159584983388646422335425692096576616854016795529469253314015551157575808111276285566291600971941641204235095782684107416078687954146896564375004894091905676585935452427299518419159438390890701235911542583137011770590294315742027499732798290561724724711441526810726493430996614923032485079595331533580158300417071784686150898025216907815699625222754694862919199469028021231178702728407917302917608915251351780779399258261939306023866727654170616407355028212852193344573023080545025333188233907379437674972334408761811467869277968805452555163625765846566995633100739700762705894488459783496733037403410449201741990446475904237519716993588680181623890362682208761992757676962676887535084494653965150639765950608783891168721283924286470221730995856670635577352050083853730290112029826616237879278722198115036086956731226736495735285697985514047680643210956873405895179822895990658912031926035456343875901136512542768201437678855575271331058831503162931517440345770618421204504327077169235732241114745926353683022547238883602199449751023200759033773363330615690517295798571425649759966718855795264291684083218152471810192598376858182221727107980081565583335953652699375614121608610319158177518525210402739254024582180618999934262244651571534226783158540737996627260760279908752179429469120912735214211559659368802524469399577653832427181350027529428971572433043029806932617149404776091154843268582165461504742864197101242845936046288413876565055623106673500418196240096165743563313613875993717007333187814084715836018041736014208728169938477127549130654195741453649601131554244432748801240872518457447331020730604060762846217387237902229736985335157463004921472895267696185992156425407614328376140534548757185137222039863120256656954271843136849847043206172568650223834160486474154558542880397992678021919121007984538474825321353821211844254133069206514173757649299836511421085772522237292445723541282959811976572513656060911734352894062754416971463208877151199014037400892965741436222441439604196194668886812674858147920183804145580556967909837424698660824312416936578846535027803068423902498382875089745613075798554918275458425176843324060484031833634632840723614465348836183456364071555488486843673089343311969133207256121634179791117125018723323420267479240987182152951378205658954375370600360941048782597004466194537391872440851163374905790757728659243228510660876058945783493159218978407689065150432358812714926794740095545808425963541316009015191306330181681546395906874387141100479964264859281871453497071024765505222117329420818567704305553364169806178866485158343210375982008498357646429629569123605351379346413971035098347812930091660602410474109889363807446189520371297664982709686954244419816494959166005566935429779358756924413091269710454299177333412710794791363522174320131112616932341873386638454243611404421962475153980435458635811867211141744212953518954329958103223449152938981567066776176881292741393000331923844572952833900193326906119494062453450551296943374102106317865370091123634016765208738007525956587739445206773145922864466589202210173168165880839366680181068094657966529963203977476456435558039921738886521407979291599436961852809435164348849166985636213699611961874080952411560310724743841906888187471929157313741019777156535910206861709252634222955176457127662828018108425475726311342756584900558153786958469401108443149652572201817542918766102281879357665097900443997956645564998293770828232259791009672960267869324933867058916982776692352223546960152966046964084593402699718867312982280508022964288303708972028970319821329676879773297747083082563903784289996034619259546639864752635906480979258021454809288455246915880985491945024439661876221493159528778127160440635985030001914724751969233419608234410151627441344661529226314455563766812897862205636813746173286161797485047292855602421566432357171365097000412929204848493714722779128898237775571601999555150825115284750817811962430124307458215499254559227478883841604188294803793433364836712132593889271527254170964216010902307908592982166579111114334718935644086824563916172436432834340438307232184808904015650386976348975383465976035264168591739319121294312441354713827297646004783870456753330104206462743207422985692099158405232652743841118229235755357732989298597970530603415840944145272176216574256950614374748547020249658005218222902514882079771947312219954966955399297496711382286388053590255419548001100146883686235028750785771310471625392708738598686068266364606876839674031889220014333426362463647579562373116385685701877583115372165152682576002380106243878440760280457446581296236030175189404642112594473846440233258007147744004395364275287575291137938885588990300393251521742633485521571540007797095086119175254547109406454472166360781939304585521220877179468903616232387284639666974826265724784416925807287471427168326565873245956972282093853943732995908575224280094188311095928595963997090073001468852748340680090807809588880052529781341094746451593433285696166232730500805405823233242985469017049009709605616608749136302296453370218172384822588756997243829526424829523380079493096977622923700692490319908184171055716715380852661341978021400441179530174552406239689956390353539197729091920548117621031917678550214340272747571312538796525077677591909921989633425191763238735792955729776587840624166851016617705086510915521817380771989506400283492526257485560387016514098314617499169061374872956672530370269535169266885127922509354229677065983690861456814387739224310082229166105514257008115756582756728770705933858397356941688462511637714528390068181865092468714386150054121343901598812265000885211949690216801014988630113871861671191768074524067093674911091226500130960810878260084337938558752810000390106531780886105507241593586429174369381787144077862665768897688670689046289270819431337156252431415140839265382495125574068639615359506027583198843711949025903518319423804175799864153562960120871622971301109755272565968732051331425205437781064658450850484723603095736937732720315923089237078253712040710289492476626058391431677944858397640195076483148485809755406144782526949497562486937224494956121215883763516771161980333196721463698106559085872627189401487662640729697776860011098781462731543505017165623848235078712790167799206066034388922877300750792768977121430369191541760371209757020412400551005151383992524964317232154030282188504880679630737299315126571751238961126487322875985261090446481883002542821704890516274489860919111105688682294321191740414981070011950548871875729374238226667223820088916388202095537713233953234673139508847703453842740361497877556035585034672071566356350058260899772987558976054069210532022186318521801882972985501380044164611839222143503257289807332075734116665196548241516530210666660478135689556856126579644073772397320971018804743644989173862633296928479173319209087409932257597141965925163289098669512344726278741976582343179406345826269809781552153382243636120310331752964703822370297001949500967157991243794226753695513295774004010435085554254802918465367962877942489137411563351175896483639946105094812985819510300000008732312688096110094652920493827080948568460255309016428027818885677384729377964967609902204800932839764872489535635085240392521988076491257632963754575133805877282985825634327023088443215974075675244428398106622021831006182156377569326698332499971041882641003110924157242365315409848016286366600264984779443316927079222141775872924744651365318182476913485834632918152016513725599780025087253758638381731478935788478407537242135352866165942211517459976366420800421591295164519474375100599689461212587101438919370332463487085960384805535558230708051799156647430081938438236759669876127963627141372422010058918590674524180087910788678555754799426330793943986809860042961628824630004190178107495473742260453107736892913564932010784688871780035839902611877012568037521120047379400310154451778250233963190960096920013639465027024146854742728426592992295264031686673716359668324226539542203317962705847465454101611089332777211299160650305342849161846503987823386024281897924377069964978866263138049476974103148598187134417544130624059491390150702240021142512642253772931876132459452069071633032902975844989414427054243684249332989950613410299160375564327485549030162933428599355094131223480059487365087019791115234802685294986391153702918435597149305698489644024863352726602392566204379627336739515622470495191602356513581532661246042982464081316697857222275643427696996440396965368541469547657253648892683963109290771777429341038615821094806794812921875249129477012725893005747129623045159166469085681151074182615740235567276423987667564072356415124623437021121162544580853545086610699918746244493938386090202573742684864892155368016867492236424807714027837721083123213413894363227604730367151718770093794388365734451777345394323685570443656530064124254322909090368713708670873980292991306400687729637497754672147754351731904844921427415153299861380703430824271880126348282379253813516102162702988815558171112202273746175550894033117117774022619782386600840345729646753938720298020922429211935287356244137448539201183388054867360194254117856918406018117199196303877762763440418894084487053233353143815380052384304284412763007926180537256956852629092064694331420781592882849027431578345182726513036835210214294056896874800065387304253950127210068755642857612025878116240117988557243191652136794230700371252098778215399407040209853226886437800601167500506229729876971173369044595157285771230946178330945184708447566821354932605463389752444647175542151496150926979699999745594605547779090129930462369315713618691669746635093252501722306049413547466773995473744822512467334064744441046445805566841434570117912637480697086127167223233834234724586213945673282084488086969656016873559702509037929737203733245364299387119940800859771179992315063454800853596519863274868597314767791443058103028136803077328011534068732072679264257236121854901840275320324264774123183042711368115566235283285959739642687774996342040644391403786174904021442527413486097887645174190646311280570702471136882016755561268220158710262639994578833751322438825547841511504115819208691724547297329269697105973367325223768164554676112197434422961717268075443793050887661035199344695435540803726140232589226417490839955602019266663806936835445136155832531859403996408493975514035795886077273792980515935868667277246841800323455648689230449820293331404060720422181615715944506273501432748071789715164606587423083155566768061855880037482577452255199655174687591909445125014110898247324031699284965411882102955989455074381489857262897490953868356707779760122801119519712444765914324665116551531238592663767309990319055449639238288658855476233765307427053921795208644734779902210786685444042285638677065983197098347311350939782292755870471816938897322652465564306932084894203791828134710438543861957304147189588180905225556750419731712145263370322702476219484487174783277642132327972008782665170181072364997302785661390696613245075967953593653215152600978443405590788730271006040063231140510654302048950992158456315037561030558443679382709091443030001301848878798528160374360442445870080191313089236378716606233726489736614101206123096435818502787276881377840771763764316600134388850074936727411263699573803811630959934586381590665687281833664845188622328054277584826157499619674388252596578326838626234382354220156135073442386785504765000382108263294506080334124242663868655049426610202369877632557084171259495389271681446438275808517642333784340417669035599358591471720279059950972754778212196176926324607743563196258727986866843347224147315666027923998093545470247737242820879565632731302978012333186775565034808628546722208191272595297694548270425221217758300323639399510662049403628888309048591969683974108214991946050575775795846435280510235256883642948838410976633497323231916935009679952838196377666918936017754058571248383921759110002655636565227230620967317792755966650459763065603675934508398100071518064389015727653895059951951893598699134055264226519980178980179125763449281044555352559649082120609727299925097653376875743442083902228270374018123686452838499401769333718451143227993030537128592971695918237072874625032232549555154464434251172223107851688712797279034528572678956894832701385959454315662504464755441796685728029137696609075499123453069150828753583496722263234374388176640141977092435983927474336335875513549437333537519608156683155254654777441820662549914882343532691271863729427930141315197011807431016350881532797083817074275085589470292612684785697479973673159014147173028996000778436449370028790831479362234443499797163308811063355543568450506345500134542530125914393551482697504026091093146157978071114309033046388480060608716506940119968923942100965516024406222674020856307061823813511840523624558184342515808623622790709189946895196554165089933314778192559693292087803070721483667161329346989850632115026233321825556859641742999227230195372067249947765527646518931477935387608747694165247647401684451917284441763096635363533246721557476443963992272218052587015385948623117600810297408510656565451377046610367867699042673292203933378800117487498317455252121391007490123396591389537445847462783702741985181579471241241938833291039808205205221858476868382559038781145248876847813333800098334604840109757977261530498276169616622507466908451617619742375389099728743362513856338944568602251219063049749909831601118004721163966689979521000912135770013369029702850166982843541052681457565616313066183910111895703929298557093364548455215600363292632881968112226359569210152151912248376760814846598400841503554165748969773689828129378550944708785817215305863883420852602091374479165304203146036693938421960829727679726811107230139332751391915675375428528103006143637161778870146024356175860262517153558037028885624592118231459143352476912981836472917295282324842312649365724752401877023520671985508686862348671803764057252666245883337826563467249035179725236633503463751979624173990422270507595336361048944784846105845641708596548878357025494592727707945717153415965665011802806465575063748268827724931462194573198909733068093761934326830101862127375014148529594707403247705760679677919289036719732633010806935065547267266401110138227816410986842895762306146194088959244278027443775448924181294599231229420370811018864155458109490985129328012390020367891886442547841173488286750002825059629554249941563856303912604813379697144543252559111520495687207300968213515300350730898691266443911123446806391475866654495420372981785598187506199341188064235356329007206763277546879224780925540800786849543872062889200231793826937583317504528617270353952537778951003886843935868099310407423427801782751275351454643588510148033545035107566652082349027262316944570631168159343991417217033358265276886914319041126742943016528473450505275551665570012096774386856064198435873286651371477221299259857888567148837351890740690667871337488361985615373624452162352327403384685045531640638161075644288474712182190386866779821586174187957768407964811476606706653359085066872914010284152259388101284647095491931284493091010400085840963476283122469543518627746919916794805961691120270206244484110945382631853618098432890032642237921148860580754118028370023175997059355204792349285812905485043438601099266044522439914255268425139959483867803265029300359745406305848610228610334753079287198291960449394980755917237329876669338979915942595657394930063939750987379114521054702244497918267105353906508855966246762033559253496061903694992210533059386453969929292543567489713866552608007980682684812838999083996345680348489864635654013313922211691487749607989747470709121189892657253870510709566720813706638171012535554143797101475501352248168579947998116273661621389749152129407764904948420091471439133593002432053577299316597851738935349008098477591346089243380163417457804358101462592121306126822865811584937133196351458868991881844199987376166160859919776173886926516158861545735341178655544843457476084064831010168882964432113529939394974836063180894050476946032160634312927477566429385736452064967949509518004589890011915038575297937254768408323465027121760564661782383689208650364561495201884795027814243627920450149723174436363752306153536714477426455761903989642342333632858549873198302682203077623127817581307463577599207423848644222287055246649940705617462146744986172610952378880217381472792042520816946825845638940860594001981086930349652178276577033333089517285365857624849378373502140310390812521169556708029622557966588006562919997395988789336921525610796748961098792478878022207339032477026314158837719090175542539884481214606231399582423659966178965240984452993574953335867064577580916270215851333871137037509065493616135859281361637139703374972259988833648832054327359186377547573377466345884421964716766663203645069790478335469517762190547707421865420202996148628561354909952810000629889748510528591768651239001000498007666293012398321067735404748409517845641749917472059349385574372726403480549695661222437363203458207984573262314716112529539839160978442975317834393458823134984809817553187233919904553146501264216772737692463171112873921818731740893099931955265278077965512530426768319700357160630277307376435387542302732157311148913968235401710768456752658110007914013861629817070639122650773588702888751472380139833942081436906270960013827108932545172555211425567538475488846117341651023566246399179193154352839811393413483804467033940462038132352356125096990584162824508478170829574559040997666565653789137797478754796130164704782197614982740176509740391903828828960479840573359957512648420568287878650063525574762970244077450552488451162223174053684470946559962438111049430621470752698132575300222405389577431478832804498865595783689763526944967846616857957399362678865970710874848362194285912570675159364556428404760100069826210064055706308823814447454870732350305648098228027604336861301246628316910712791283039938922369749437851628175300446296756286008075175600257231736935750512833171228573586535656117405117699546920839756651018679188839371497262079395877636212533633811248956289626730768459179875454036140679118026482877299542651290478531030385330451862883006088932181585356105775182426500046558339347456576083257797832129030062176036469674154862684683042287412570123873405580792621926980618698225867541584332121587170040649342887618425003121401300986177704464779971722870135358990492887155353880952619345250649984772519023713429983850161889089269610469732962459045759279047271235115785623013105226887456647079409967818895315485114301680541652477733278290445576765116160066287153644966592305257666373415146332610888811713438042263389856477237630547877649951276776798712901937553098955952025584040062404055714024107417909085694760227427301793291460322322012462306944353262857366694246304128131868654353322330819779738420476372155550336160600055198539094041646106423283753030192841849789353556587798590850996044171230572457717097946561084782806649174996700945440255498338544889620956150521727104502135433877141528248525072045821719668584230762041658231113562654370650285743152955662386584252893639022282080188036134551278683225326081866309473745196822901429299570518353293589340375382649018347357163808027021968765390551277021494581556816730117629640496912512796584390819624683939749333719045166139507276256420724499661121386468128401000938961519657144273036968978919586055200752888825719623875261834680289266530733661755448008387483487760951681706190786398123464839561360327028244249310356929400671345874020261240898863879173272561007760655509058824142617396119950675486980045384456169729544306620810653609618257456560926121022862621519469790781610426482746233498892881207808344006906883420259112164464324495942923139263343533442237780095404234889775147874472573968963259510571323576579831266650704472017493916174411808465305128734967350538185554520807408033890843035940303614463611477511465689306576221022485244972923994088603030642644855412975853928647634261544161867451153171991161673831986217815524250306113485545168048180429439836325530161214983050023673747321804364453419879377997218529563840518177386763883095918067079914838398959956399259883519563635329944129053229377760883057825416170587133590530056765746188243017337537098273850259595188981365600369549628700546694412035273702255179207306737872903807547356750966316324681929134103321752181499090669632429867516543004354556001767892014885277369186768749562869735928884250998226601588324987244075475956686393606515928034045115588858190382333504811546541168127257595949329986784070952467189289012837681340518051830956318627660086833365351769923223600114092278163832573385492917520022336900426228722084612389967069710442042204892869987925110790006507184868885526468553993020200534853158941865458728693554160266091990374753076531659565161587177235457531266943374730744414933560923030621380164286897097089288148560998312481165217869257471674875285461884158737151684698770939146577066193627821960657985090515733531835595389839743066226780522732884523733482801809670220409330662702915923825106800643455569626250942408448714576034253541963549341665283243531198159168655731455422781969859965126924948173632976337923223305331730157255680628328941186005212710856479936085528306568635236575880593130285811133907255488035605894563888683922210732221320849851318714641628696957446937010426554346904061994440623584493032210250473202358795694850540208731630943469924620756964680049145000177796269457719864610301747538154367298509540957406104271693890574730071545363643480793105836409890385144074222243122136035643778815175010612899913761280568869040449444909202739333379879587017289211673231378180958326376790495374744506047137090548852454537558585364584439280512331437692170086083385396278334569175288780459287592147725069916272117452861860609519117338171193788660785989754898269355865678376554265117197331412436566444991192951063403676059354475838755588519360810352948401604502109764377754064391308283766506360279388208525234189464932969470336435316876036407030111079896971659948940002879687657307116936222649160000010105482239536868164968338029672763723367359170789665191316133260532014507597816100825282815842015148802055518900487625215929183482633287741052592652434484945146654011996654519375515405485448681373222346576750751881117683927570468137791914680082092888408680093969070142389710531304379094592287943279003876967731532658571085099471700498907015781556903797381230189220095608433362080309952856062685765426198561254018170985779075148816424851846537563338431552314500015914288632914665715671475982283131014773158356401765266781186936018981095092173497385863930553405058329603998022203091119239942665346394385568770714284797189554112554267695714271073220624887684747066659835250983161634528849551102296522966510535390237003394305561277913851152423417422448884463850242250172909395337153289046872386174524364571375259774240646171175542685160319490626855533028615114994310605983565799370079314977302447639663194881096153757469408739584036363168813275787361924775680729254179387543178531350172498375927191907271059695098529184721662557679997702796019357220981248778009601908505957010056114587884747060916121280993467704888215730735403829746801288535849666745258840199810882022706750645578390809826357925450919216583258652966305525144718483473901933967471793208971604924325239153842549205204752847415937460288379126561050222619700596237689042318415587651571907050624094023774182775866190728535417655279993259447626364566310080038274983153706071091361498929289050941374152218405023662227417958083313282624540017215693582925959419123727499431783523195769826394295384633270878109312608259344576515735709727554069950002553921478629997338623496807839461783216757233221777489963358498454261676593489271569910365863670396229945735375203301097055234795230464652042992482859803225954332170803543053208960927397330953679317143316366334985817366356030862801724728064331624018790209536830033125691732687838173852446935187738043899454579014287427720982652957744398163088830253479291047803629734300467719231461670259284800659477346053587291904649214608652048426570475482733136061638509160786497204561545779751938994501981202369641180214971506191678218688569306161215558756642335625547862298010293545807010307985904156815365221393948092559477797169231459605764135126369519061620707043116165540819095957577866431851505594593478267233761707754033975266823944650682678335826593235441299388226721046406280589666857942985533308082321110968514314646134327372087909680133627772268218220748832784257316203294305617485196515006329665782898625583308173918515955535154214776149834159559325137711268370824796634153936645312459898046770974624702093916007360260598397036790923779534640673802618180134988977409761221307310687356349636191167278678129315499617733159286350774808357974146772393409600909231761205319713110229655964794642246133083202339314505921086655718507269688507907920925173768808905227559507566722789026944284206425966610900010691246386691401063279751705503091181410294845728906163349035763175835274495373831499101784537231354192013330572438236881273844263733535039593631049302029424527597123683310193165257889873935597892589924317590683726193147268387436205154838530026969009706077618621594707649600505613911133360257762866627683970424822496665457261058827323933251674014361201454956012080910212305488699326201859381512657848760673324400035638992057458040452250999138735123308591361113517362725691440497455450990363107719221630679422641615308253212267908763762755366898589464412325112951965866835983022327602587174100486096432413836603965283953720902778101415369594502584266811706475440236924908174076394497781393022925250482091970414570829569797180612715213220896777941970744777995300655342502029791237522063628162304870331472867646290309317593908298989855789689560142997807827899862892884093916004892235472409927806489227536083126309924818938631675444983673653343776632970872265249151515747692385515556337661344696520782779993463879035237444205224490751185909350942276180496071016928997235142999460706401004996042662108983566213651440180719882046788532049610487663211938281309675226458117919315459471216282338864203429929290799152730538160747444021765351655917642909601010564702138172789145409882524138125913396623740402322287135270012893707952990709236507746132976429807665984000736306199062957833412427640817900688296343065695178441775929960903751856551899982582996327232706077521639180183163783958586605356956059429920627875588784815437529116376658605394435468021526269050120338601176404408169558768613077104896629250855567534193823650473334186947275928509737373791641896566315475968323102431000674484094161024158795456097190105910641302345381850043690727129486874845873949641200446569683277793145137841866550746922183875025967589389777814805447110937685044637395889188555686533845723375603588917849399835905336486332778491604359067914408406515947393688941268756403843895508749310647629728903003117948637668266188859926966471122288946448863903592927939314295584647153291695440890738328426335783191831625184493624823932628915806054916504776759126475777961678215554484940715516457314014760757444867498179984592113000054167613535814986306160228102838020047953551551920563726643411200462948043632746924607084663697043243281149749540020621335770465414475539433133445667894259419921270255964503810788182259297725805779226640402408765148120145632864125048527426140960089219759101167939716761751930006150549033044842982160070007102970244545339775200934526370841161508358329500642560012410168522807830870306216057112119137260996129608724054986476391293280297695956842753237621395591524888888593794471698541068966532627685075178677306690463580328736258782614215380484138123198835181762795857483364987497709608080243048242940513952640840197101830500734469190900153614016808525773883768522199398195343742343007019018966164034762444347257559866846326599414496714947319917220151550458078708123095664704759319391011053272231643725484984543709592303874118752598382924529050083643973144928952035008736006605391752457349665921887432862925707399176609800585691559918552482530508278446513932898391123961208974258398552815496012191790352448072239167548076950727904908286486772104203226712473646871549648239056701657818240661021229377882117336312018285598573727964665324164375209660549034381083829706168927025947962956033737401727299756498598214199750258631111670815905427521379894596506255080672063044242736770044342885072199106628465955925681611822897683090245818741298542470289923572974727180458921695290373592430818446934052361653631260411868001468059709755040992039504022935720308146789822318813489329547945200323938867058863968634564234299584596757338082284232061248529052817419818297888793641525289702102606842112359308856266654791964102134758803169323318754378066100852982405664346335565210371818020537617145454816895496978174104869510261724346304986366927816839661886249921331399066794999806537442759932155137436831626970885926863645667647842988014328804519140974208079505763894888913195099037539364416414085761468303677219296877105773051852198620459286300473450933136504516338911036744967327744513706211758848205130521158690936337927492659242715635280803225832967305763858105966620504075050067939867503770333296316504277253412910000756259091113945379573623898133205648127848573378035917691580170203444721441160574203413286609548394686218801739059261636506324837336202904425318075862837967389033193152219092168085034937069995853399824124928186277403201259071777351203071795619571902311593777781017546661992713457596856020261475432125414058912737605105182762973122838845052524515452698168685829955227483313265537813821647889575598188685963057474374312084517777951093248926436012654417764088538045355254478968731684415770708823486094384713240711106979520143647118219928065775183167076215379266867825045525421256399009449305620867733770927932724260991907932622616297184169784568091289792866651034812030572488704067499821257699517543399395423600340202647876398599457001063491849648119456955377124375374083129921596815608707707851141142168199783019090303583501850478618154663583461474195439331008578130014502562233143840015463895190374917074443234469830471922895107540381238404291493905265780602146472997193419307503229840454181552625349928849385661099956478324808628198350047717544669936219697856341130479544749180038805200159673996795539175645972397573022358265371203937372587279564011956403376674250338369567684807556850284818843065062093689467245814176151176646144289602786705123329358656126790191360701402850935170471481432053830987590850517048551707221468794882231866730536208754584438500090008701572118184521616740521693488846705907525104813512894970311224299294741777539298098796042912118603728693369993214631453708466078476869630334282702048090658853745668853726282399396971397076731728784497002090448167941199085860904815620104750929189263926256073441632401976188440746891428467351429496773189053352733423032046343690632889002840924586013351129272745141232779856895811733201426791306084746305850857203430606883646701639992863165467155010633033457630261586682971911822074506262594494161795818128969640974759548241402506031930502296909030605003112366800255107279011204543953148885875584033354192761647318447052134456499592594738742421035940383425658263911068702633249124183137179397110767430350383992141050617429521640335163132538671148445604985607009564238506196883158559483141397362861386952697344555033558548816586108216331947275057181795528124399702417859758078459685029836326733182165081309974306429123450952590944455814983048884372591603110664465265105358435545087405633825029941319667140554405118969415783874987060232779600461216766658465641442341761856570966104926616839466933114653001319619935165592853131126936734540641644077983107104206635547949585285935757229790544100611500212023089482236029954294747806201907758799807979998672283784042876403454848966456041820204438498278806740954433892213673739460922732221822851129232746151604435427153428455237575848243034179719538439336586103170611065213813748531784537238720789240013495194995242470545937026412892513433843348741620588406082204439941202550904868304847319786844877589200729632258422803867536565787257472255860202402493496565201939346219827853711215266861383436305079959209320345962897117439966544232315622558737624196175092455660037614408149152803499252768210359515783956082530365418464422898554082221599080986225129467688967992056723230161871624935477542534694348342414704957241502053685247015030438841569509695756667012462168306127006205372740045164763989984721685639177310295409561051224259762011030628669675134737705179914976512054178443603290792926612255274105553310525204138505595532358255142100117098860015861855106227188394469878666406819723829773597381500373944269186703149754300821575011446856377631871293014731570908015699807082221838568826366777207630448298577483503395970058110440840849754932255507347376054189376783194270218807189098689878598166532306319907656183675530234516753800161601278403015260021652374087397265642242368906049573311443280509997777214610191425313713980038642915841062841048293796246702654216641209677616233076151771317109793533151136698557420931429851321272733581232503247040467364789107963747898900058573945792570014827778198445956521647498682385534083387226146977914227560121412286043998230298210569197662087654628350394698240913936420244460987352820443174175414568070509742909959601222319601017818803870734314110354862543963494246648288678163395792204440383855913651713862255337411499851775021736169944499805614477966199744572961263200834643540245122964462294026083270105714665775503468072813964116501093656359775157104344543785463301251905802619611443630463051435345934773638922178216499794227340018883945848281858808018388599754762815064694133966491162285148182535543503050064971742066736398704212953880752750267587446874533390095911192198282556580416541947384956666314998068609159089631241663681745284084143070580176704640012722902743163860712516489118924507700343824142524255659544585232493741396943761945749936204620895181806939536549027800196276886491748895800492791233580276394393076420381103900630017412380077817010503514129435522013261642958982691355489243572992537262441496316597206633708959160908143932043007479635815457768648391959579695839372204220832791085021429238252329599668169420436098958376212169222166354344328180069240606680286793457917546337518598223502961152073496950710969395874990565765847294683368864990752487082438267284665677448575401358760714881846020640161596207568718975123366982385599266962007956245446403592496060755752333021220648829579564667815312149901139928351637094226294258110081392300221973115651245133313743894186222878450648614549095990763309200397004568583218833528371964897540165810052825152744113750989255966864420013111572164779295167323575586083867721156066468504167900136584756095969744851066617275953946518945440916364449814022743012468741521962233426437724903091892873179886976208776633078576695410701779970134943894553562291974542859352962710359425282604192913715732232661902297250537129358673370502420398448226249072735481320957919539413320752212740733667391367908751667413493763925765271162436355788764080597402781560693501026446045278374223221480802211782693603002003688470037315118855257243870961705782596980049584901345317070104085431117241531299543126596778603034694385216147148589734969297965164633268639943192299762368807697332686256293217125295364526534501870136169906868210467427820911065846550155586916983759777257283032142745788138665481155128661863389045495537627140431060106152661701418946284517121165741791477796532588369033816542582337093796693544224997217916203426096587332041657376481606050444257267460035646684455715516373098111790469011856538299480906034258032355086458138600707314367937496113107736647290766453687819361281742357288059552056388395101126815875697090204680762391152983902530181008907137165353930197945777675423894589732594743938140387791319700321088314876512753412630818796043641198720706584656341022030654826445978591181893909689001571765389569955788891586941507357861916357716155451218939387016153799956339282709289164420358239579139945519017236357926719937659091658011103958339174001772648420940240268144249479673455132618388508979190757314836118201772445925331283908075680541331839070368351776800280485986932729841924094155872739337771765779920727988817215830620469720558558430341117891377465490732418338451393835895478771431327779836461275073805033632306416043735604688930321003022427539721753115706444970265553060688816023705839940063065738886989494454332962755649008290925464352999875227190490600052991866188621401091380106588260563627815538698892332493057929952300196841452642291146449881208814793918007540579573271587183299356628101755255937967022862145606304754443746801708111505392473266596502755655698215545181163923809149515235994130942197264457514954864271222409311309457599499950877861780456702187795015812025141601221843641892025399088049848910322967648393420315320450711465075996128981036664835805450966483825084369292283429556029577069813000645302833999179717521109809272110709567747446917785251282262254458250495393443886581851740204218023957332642787112990314163868189997079875188956950372533184131161639674452328859398084990724332686663220185369762331405553398081565254114979702091524748390791555532496734974047614066681066914636501944698598646773621662812388248442436047442126852596370419631661772253911683660146486949288692433515669153091376927361972916864003622878155362150995004661590586663346422019162624515184587489726840634299836129804124803898793944783468423288193252196378306910410040725927014407991253695332364367720293412250165862533004803584388188215401082042209560690109247989048143410729808182427889974809510711756517249501236850464504306915950286200688202987018257297206920987488533906440341620792125007533749952903854515617875005568258646246884909037361330919024914784299870295885580282933437830869943398312619391353449820222360144545544571025669658471528317190307660725712993119568515412391767421938366345506600749157272305560578113504250095941975777993890521185352213586311472298901889655900916353330075407996276879638867086109407300543837600303934755534042472673842793265346447027243724125789341097418208652387683342615637841372351730666954720815920206682806603996357139177938220064271215103229781043431260517172888628200358186782388409459028464450759859533552786126287515157523528875902396438392816833597872812277370963852103290106196873992028732507461563066019945288831543706197641172301407507949853191588341043857503496984614444020590398457487193604060358339902215665458417393596878880597342818639727683806862874031853796684204493984400981350151597053347078653922428427892271117802832764209565509458022453404896100162721468034407059640590368474995015107505806458421117935996080540282814266526274604453982937669043902289525030268229717775024645814253070255588769186087352381855851482365223610308183758060544469658500297806155087591787299665171491531706073157696581822719078626013477159915352928738555527053407884223327141466099526526541698789724675659331946814519209937871943945060658965561580801783926880460284578080053753320850581045464506823763057202058300146342386784487860163786393659029127040079618827850125816896921757203950273650682691866616587569467563853881173967814495435912575885697063951025197789455711983330793799333197730791701017580046016606042517386580749778455557629585167139734522691983001611669980669573366807837710911082050127538902529575394316950133615246372934070108532009695077555600865057076117318204788971746458538728173420143840604549457421163770096056898423495639369563013260130193790994119103950686567613367568306134816673796699442201650713150828952024538987334943074488823497079976749733526483601295668093834763295212561003399021655744253477785779655264934534484741939945223676486952555862883061387803718610834586245561808486331843800162610625444733224363438873352520851297337304464202958625177732834478706445174298303875349318042490466317936166116588951098717745226419360011510650934137496202219224346713338327459712879483826670691836291922391686558509307632704355301161069207439962930673199467004985026019068814439568546536996673326297787700506511388741423767910323446334489435868469397602719950766360750946440049504654745846768736986270659943261767372376155204952113952193095379237204615562546014560122206949673033573653841704945725766028617089671990111359427698887138399440215792895481957309619282902057540882677690129655334572382412956587379794706666516029431294072205223162701542898719478898005600305854655283930532804724273323096136983367289589564396235731939673880781524764132129794040864379034441544992145221576029263885918956421720403732888483199142753087986846842440519164407968121957663645014424745375054447203895101073590849318718900131042705666751607752837652699855493905444130195386476013566971531697439172244218960646565452989432940349428628203756727616513254234802679775702372114106495626668460482458549067142008719659737782758090899735303143320175457505262938646197649318950552978267855849102427840741785957857853006870989886375781440270233197308840857694122040823162256799727759170313427058834240771090676077595872075981859368324859698841706150956151978766884194665779396352925244133651706980549452748486654480157875777857823640181491967794561601751468398313836537351129657295212507280282947963537311749625647207434323152709951405143600388931982803621246181753850076865183568078341083451107416097206665277881604851352389298322783489606224848117649100396196993851970364067290678443238135596480658231823925590259387806819324420317924250817013490350719356001606955868283723362196045043826930739523985180690414358341573816145229541139281334345575441499588301451860426255720056310554677299766332033787875383449191510585102752721542265022378260177001237674582702020828070526867504230560886638299488461991979813459396959305445761987031332168576839882911750619558995741680311418328415271647574590491486372810410743104931209308070351040734137163082903408050041034438940743654511430370038665631577735691251324544598393723729111081743357979825924308752088530292017799143183323875689512608181973526143003700066755075348140720996161131374145535948837711981916838932881623085235423451833257716631469138100871886355252151961030641130070112708471638692095871040629752106563435609499927310918042670300734173247688065267051226574427307902303272562785489458917186280437101947172698521512135858469061021277851064744042069301727764173040636652755633566990221122656806185357775853086450290670883066536734770384940158582921035817935096442819427628708680094172696094941871808498168762386154686203986855750597666649320317163543588832407057850829504105796844675389799884455811127611372002224402374492522121018705769186756662776088402495793474243678215025019753459499427280283777858494603018009844274995190681875557682622337350724506868451667789055444064791934788646633863475792572128047698071512580764030885006789045646390814332021143457714787765407134741016353965010334298645571982802193457657720313812088230186605844888464170612737478457681613479081461057812201920498846313711600986162022016744798967662818332953806922034445167353178846701092049240891028584186450851591628327329426843445339812084995389596546057983213953764707508813431025157810724244728649983871011549663077011890504118919799140251292017936682345651769155859721403380105230984606070987159453662997264054578091376026000296182816928126048983268420816692528823252974866007028795498961263274492832348623906125587208931896111396824370044059369762555303827731533674414334365456702329764425967308750192381728912670184263373901108714733555197909974549633647635089759457380212142083924646575543861819177173242909402488555772796835290216065523576209366985235143562141241648956213889220562632765043561127737954336810531120588207081242426795928759703762728141274519439816804196947538842075144525903165150502287880870000459919540601017965682825999666121743639043205021152861745717130741961018517789432145895773534640113549499029929391676544380281928465567803128667022120752174730762576904958033080420177011191395692325397340868221697900470191038318026241042170408254691139354825708048422827913879005797435080256416373067721968744833822370684755335808843968490992162445016282520025339856479931747116618699191570658587207673711851830230523933632928466166675089703554072248510331287554953952080251838387388310548058852087785850891850963840791419846278154894977759744593453189492166550551741124507027833576317865387028024392254299208597443225656372918182565940571148729268177061538348898800591501585809090862872638560517019451472433323585269703192841602257972634044717063597949114913509532771361490319118819034621506689965953086718499386142408015164829280199664069665290445590121014965732013762957700571402696293136159477336388925054016786169388446270343617003499560375279603519465827922725044020119327677496175956592369528225294827236465024189659649530459782136681172661870810733910152877294110648728054901353872342424828071354531567683807943038061565486933640914557092512188371969817304149883772130611887397117544878994140722661397428793494456342819642173510001871252321342080108827628427001796896734353184321936467607464867573981628957003814228396311641715789513613877015204100281992604704159089956958306733632340014639563146252437673655072198141184736549259168504335277049256067359338036521929179781618892484952536846486084568076240842913772701880385777785651592447139519276587222488172030883710677554506278031522499906335794445457856777355646905722373157319870943797943162709463122447282605851082238616432528010702553307573516606518872930589915680705968827383045107484662511302256471739229403521115063256799198253909861608397922309418129330184139919238979057874865272805027299596608683696002175647302025297728758130995859571447060375980453822538835962064456741825063599567412450241586982678273382505143064892009701178854024689099125516479281051971476933556964056420052053046806600955419412892641522497752811561269879711195956957308886358827696087372214758816660992297916005668680422570153296773260845849973314176210088815221325040209197772109115743457812390358241331613213114485915213260291772776603854329636800528979302458148791599597809715759902205872271766549486093778040308137278929196979506110598494756510572607513389028934391219957135790796162305548595783889697793462978885882439914339009957725246814220155326664082456444618288350009831490032793032480026614980962851735136122690717442850738209649413759015598480940854481971540137725857873336292278912626279019540473130501670701407052180256541721493809670586084931010619241905866228243443726482579854950046299389997357876146621192433580224517604585854933965906922270316811592610274590873737814806786991414903985753783628501524799590681777878093372051894294758691041616311294440043418900597411450852132198058764239418571752895313151573335498034083384038269783226662760089129783429087527133665652718532468376176358105727126748863288891715650084595665306741733514491469882397243273006686147232105943932853326945702385070923922569630874498650586848472680838211790992702628615305324489578920589934580072614538613130199401561853012002100301700196015920802963437747251496164332647267784564384134973395121703055381251360110524852887203281606523012508473371769461171467274495240259906511213276625421159825871853036850227744016737526090209578459750752108783166569057125519265101938154577020702802228886999041606152606889805529277864148726352054687430205669870536732691088401248514414900319499778737734612675572503049280509501724784572924908851961569784543446758699644809811955903203644550127650424005668475203742910147691442104969342356239008330889352310958163311050194366444593562941933592602148775244786410955282250640850558877794355220230603862399401594526654774355062137641309281543594147259098247971348851726225162130605205155658202917003977909468002422175892720026782054037570903553410955751061147200574394668574701077459426566154943569779155693967807635608353791588312622055854655124128248934366804822106075949759401685446220277216499884699991382884925044703537917823900956292414519809363301244693907977215447463101023690520867929817608480636460227010705446676608577784140131200246133401887650835997962537749834646313590380189312309881969656253846369850063737466924525506659252593501873711092833414082213753071193904587925426129081354346899783264303903848977963991867611683249981129156244382745567608014484056806760512311520198862147156442998109450465355071739447063032477972660514165708158954927191999757290168479647467175617431362069061912485755016661227270678076701675839926702706906466340238169744113276619814308421951029663081799761455276245937024974534780669458763869640159875217255939099575036401070681673321208220579784644579373850422251098309466281632519178150370118862787162859912591053050821110442611552589381553717818162004494874172855587450459781849119122608808829941554222094894313420689666228674715879008701464204630333116909553188189734065704284065231960700298029224622082822595758692846914418508912059230824825635505253667705100276954415276705690721275670353975470780576003152596004645215513633637530776278286173825384154498417056164428945589855194882291740363499176355830362882997569717842766222933977040143410956729384863104371156610824882816828401202582334012369534911259707968217458277883247354785733305725701264456896632128886808641489154468540195832016676683556559343487617463857215124243085807454517441502750639110670321933117447498613027048257822949771529380055401829152100659467386356767749316124726326925633165864948693877627357341083575108295718430774232814036177927561042471297882592768506110529487135542400194488707738882613259762912238417250673636825296157349020035347180139231648174895148923831936575785934855464879884109923745299281004818704877313323135184458255079390255243600193511972522574641676589438617622461246481325929095846264465735445416712707048635178301491692801592235036724810073092029720205299028499846619171766880736740479419959917786443915434352541217203092113563795246571041179688300192698174745500531074877932557597977617440283098141694663103361290867759551559125526197650700045347591864522603127050011460918869890107443667066939323341182999074920110257453277933024816479014643692483812520473767839496581455422508008159522440473036949112025405940474106769616688013978482837152353306976185035591691167413256268094847496252345463226782754376480179956440230321994124734468848074884545669984360351269986029209669206788678041603588725421860750709982010224867790245318101002166301415792869064291995836277838787760435538431138051688003375056010919597464766006111960661833553845090948828626558068386841478949251394028119312939880493430008863799035604958725033774464156335660800192950274490779541611152961159807914018878949043892251770098031179955405831505942410962028174180391637555641966523238399696899860681171973841234794806400400711001719692164714816694788474799208273817144027591473657724450566858189076854914166150557491452334617088807471539804313400465214055844975753970230238649110142911412778695126260645177477279016838709865633046493768472827194618021161180786250641396613241683765281241689301039490691366611221623798328582230651958391149119791004709538267558001533566716912077121478277442657977258273260403418859466433362513904977888270789350607105068850937093018425720052524768105336318267016261527838270995990435932627954075984727249211116163457464921287755674048036677223724666471107750111320648770024764623202569033126725614585703880160032355627791721411714403688712239049512158145832191919207018264427244837547479433612744637012337668462216473865368302733503578190599111846592831272554392712378600983624181056260774919650931772654506512200855464352423407220353366921784075078611074103256355000400561855299810607703987233403300354189147071104301322152776056787190466388610815374329798684661265891908805759907128867297422990319397777709392616909344497573664560434197503719474722350474361242144449115307661016241619725567089269936318684704810196811852954368941160495311995357086361154908281563668162745585128214004892569882444778616184580165169284789273736623047702265752307239074994974931258677342830020833917140073485548003202445583638359265140534052343626284704609456546545134037992170812476060740570132842252189915488404472020511330445180914114858864988537464649260878145728894011619419864042471203272109945452756091000515175630635168822332800840847467328032011760827119919175630032499121919107439093998650475925362355202977234307406605181228099684064704167991580858133026555502087100920776463670946811771975142741456722721758899568332125416517642608976492309231117949729919285553722356747094885405052076629191732828435597767023809678409688171410296825116680358535759782346425996725349447133058551346876692050662316070106102371424531312680410122488249791304067408602606198978298758893331049815371993354948526963473006894008389621541685302505429451200184804698191001877774124032282592489253286824784587472285495639409349789006538506837138166121331868253723801629138224648066443471995818429788720173221983349981539503015687711707252249594472908285011157863324788914916471084495321381352164745668416776957713985555820961933678448143869159540826219061412929253622319271225082099219614918363571765904123308710477553996840891307116637506222538330787623832872846893795639201970654269510411621441716104028161142640752674180355898312892767892623798249681912338291065106422355029780777669315911323192303570366240353788912330743214016318745720363482713094298493822305910298997248910245883024530702734350757174380316709945930416111599198224925793530852745852764080751113790540930512435098426629623837971267061561733156135489312459855216359762922755352609052394685309783201503716436375734667321752941858175003594383526292876509613539427976594087332641464580315013376587509005031246264201013927775831685596285180078456746229953205805634078446875849925320824240334270019171968054309609079323742128740535028161491743360142943017738146089897058393674341309591122954497127571565292947515102652130766992039289075136641712369423685941477460968521323246263404436981666680066835307176450065444399354255016510101119547429615925773264374832406558156446797982381807150632094277959468157957878333105976940025958828817486731375569955723935884764168452990954598103246081868875752011473287721086716890859210068227663929236835899886286659277853589940881401722908320352874260346456186041088785668352440025669093495703487713636531442154785768722912867755862752985801379645526286194692849705385539865682820390833749643478108425167684060550543356968086116567505018220571149772925033710352139454127648317399609899504610503310994575174729568613149630672978206062973132714607846117797260179175840835426253014543061441090021985039551822280248453668321415569914250051243935938942119596082292331460850843972549326414101435729369964617390403848744760612390677768625268658274382939855723685116072486232728784022523418335960134564241489515382932857073935431426452440623568682101497669402994780636936399516853117900403446320523237603427456434584931845842339284518880824345583472942984868130700223136747254781290948532079464322242460936761660964957760597452126612245601542922974729989384039483286685840779785521683900901550241102395107068326422771830425305390822726382075709645170903880970843934601119478299447418902745398479568549528925832505882022163702898379369044135431533831046476197181611141764867794174081912877002805824932321935597005947256463559361205483897486512963128778227795712874247556941362224354930477192453876416490729842016126545613598983043349025190853212989197088952765333472148678006273279311180714865544649860864076650572316021186491654208162145637308560349909191419483384191086991763014313785486992707140963826773734749152233657121520230615381366782519806699165167459701012296738758260680335810482388937250080144335875795315160950099225421308465702109239943384675514683858095700145859061857835784435043141444824013623171715592086769409404071438176583327910357579552990051941698571611707293638651044201609514111420744279439724930651858954921035827779095733846916361610582922449467356074512455538313877930724773994750596557043523804883082366066703477355833478313299999431245420073882917817443653126799304942346434510743916597019871506184988012365457003005736936677630700416407575208630610931501312608784574271061793791474098008209049029065961647616119883719629496698349294605391241293917146933533760132131883318749075617191308378416736726821810966699681288362477238816499500641229068575239871157599339162398252328813046953778348317160129570541543009274000896332839920175467083059922794863220771260672082471609290169459465566660734842198883794614791450614695071645708161753787815095028541405606122801463164488826574758296604378632180529960510498738477541976539000943304390273873511816607234686717985621413530077582657219513848237994876431656254104676531322371031560274884827713049202118851018938168099703378754645509463312949543323036536385009621846963011176817943500320633954749393407399064220433613948374600762059615838608908549655447872738233839356652017380217210425397407069747004436179445991021485033450536594886095247534027722720812814794143097177482587295356698788238087316626982018061801806602540013656458694569913935505449102176260699841969329327001442329090125423091773851214649368808022626411707737065218473211148461005067660787655375376959898283402183465783137941199481440976682810595698114982258993406041588944604955742738465924882579441599681976527539892334693775367264840960208464852696387737260397839906751410456771143208587243461253840698118792882757328147400687394292926299345115827234032247272001686978481587748454916025902790151957935700076208872532932725323356949222704459426153101585822628271856328125708492316622586020086958155904812306440241629959897350640247345968934271215494357849875585911023205856737320450131289810314071094831644954372712101585084234345169590387915921677668593307255523188552882764956744528064772822394574590241207524460024264399267849861361221352748099021544265908873298882087314142169842270259377482603017722048598329937659956628644899810316002395859975419936574948764454719686316972789473238994392564558003133255572869993515916757483994709889157233851143924745850448056783713174416091985568670418828966685294393907839048508342091854285665508377471020741538324850083886497233128502206331570529817201612085592523986353644305509468302984773633678721726345682016276410058455701286957734895631983842127069898870885765394896716494442854242055818173418025537300848198922849169761572383878950195953954005343856112137901332530783557610781459758193378057896968580217073192745601025541020463389287281180182908916369470561262350606918193249074952945839660941839904886257473036801438578223174619182659084304462819655506092114139440188921260593285964830901444801354701600585061256094510265898155587658843852662397464114175461332831619074308812573908376931117947154269881939492331650355182669708092293574047974878190716254710796244891764699227919327070497787948419505036537649109608101195532289825642140361755866792588114516389678010323522299076419499240542092116575458022461051876834010522533389751654960747770318948165786678472178723827803154012191810783469049430750377255756145849599792470009651046880953307783393361742256459165266726746403403419982277869425899788504339951916146839250332991606081734654446199727700065150386359389055708068220152221275624260779677683845578967531908028470316083554405095191467402899038429875160096975871444416044885359759871032480640694902124150556148409117844551767792119972208750696091437264984594619680227468761450429736602980921781911469362796674399483269277070834880505773353022054575321252854971588765584076020100639368203003415492089124770188404922847223242760083389921059353247613676013804744883992220033897140876839645829052532533423172778670147852714774552839701942627505188643309967901705734123325907552328023800919735960156348123918233631638452355559679626557615382569490355130797746596649709619591008147442547122247417476334947284427650149778451229073681748780519205589167799211423167806423646180422171864740570248311571298224741499561817211115403744182490106031147543160261192596481418957469405588578033153001320008799755469059904336669295462562079917557574700058615439945088908847609611251342478345374956332315090827443059883196254111706729867178434544232970512621864269614843640153256898220029462494920579280973170886485457526981035169254982112244830997664996689963354843383904749113712458935101710838371138335024331607226894696394805506844659241665761862021459911852466611626993806159182393945563052161426067832776950704750189674580285707887102325551797081684870045269089868249578224613157521801341862292446596058826288946387749164474272208947295517516622085984571735395101037958273057266192406732383800057734986928567067205664158112333989427509356215164719805583581390219244920633577333724626074981653764619152865426764372262698413201533800830018301597505356117623657244702556420374464570257709926775072454653916290538514215983031179702257084983845795869922420070649814537484720629804414410485374630571028509863751471239424096708995524522974785951162499832975206807716384421240284396995119266016580771392110063444947563398866415305921575505205005391987942280268703447225725442167532572925682353641457363766840457864530196835734189895209536141563995323381537642459760619275999579294292371229969672404001446907715632016035678662320797263590561290701933643194371862668979495785221777955977867962419928882597672715858199787972199505426887172387745855116519646973182329862252851347521576581923199922223540230296411550260282743290337469853916687393515565004798294846384665967554845620351675371249405098128357322694536034720367908990658505438169830727748940009361769092372314100463570822778412192665711174069788406268377564460109517891768665007619945118919489760587201772251897474522403685284523334285747124947092014442135732417022652169980585171587826347295200779040300515268332000939323377451525906803408188674543120093992418363944090094634088777295411157801908831421243779898230537768871194529517611395175647095658688461972236246103330822705066444139804967231868207622759287955497648246547698943090616680753997945951877414654527508567108679613521306103613971420075756107881344660916242589338303078790182607102535131253421176976700858812482995943590423226402431857801400299322761077039226182275202089618602775542898782977394011007342257195232978733187589141385373666013114332483376559467279353794704499542845790382366355237813956135726509205312344543562354604644026076794184159750279898770907953446315756137316171029906296864553600039055592766375635868815433166762169796534813539437922643434092981103714973304468991575987287041086176850951034155713590450917101225215206806549556511503314171029400152625903681045870911771663652939625024607268859921206070301670319082464176257519432530412934346896916423018471039980579970998012931134875305594146378576130201623960927418362255263543192872197661209579256465132857696105111023460112108334517936084555332128355463698567161890978132641948302202838801725216745597588850700481991579195171516704548332454976626465841168600665492930620911561427409089222947330326473647252296269292703230283401683974297640468603016618162706942493133882481871558436485250972496595074551131534051205825433686086015958449002921313829071706991876777853631849050651661812874328633247111273558206107278198552114094040185478559371712984956161537122638548200149526131145820562257811485206389370675511977432253718802439670468232624772451025845874716321949139612317066999787549690271359658935381729880599571765680572414140413581296164982152000669906730771804624539488958214016370956982415259066447959938098946901944655137578781725926675166962025689109731753602412421086884960366457267798030717537280054470391257368597301217269610114761382820022876625499139657045399094528162251446429479358272799043374611016792146119882547001705990400703634259288015849808935782813114255849198294188437883246387416113590956151434306586283002323531582086543094102559926821903503982294074922036378555535796760940846132584564351719839741868107874306970641836939223089474009344501040076770679529799226061372937010825678345818733547880326531834967749039691138718008559801554415165456615399787278376112813122316509925597320379334307237112000435045782879708742793116326618598910649175154117633842413607768955035073446419561872362534830716402621774349856708537094118358459831035568148361153906411009267586041694171781907904166746102608541104513837019935005053919704034344846725023926346246062918206237627538160174602533400963804409941077486375401262213100002352971738275882382078091949484569635372881274335633076869455901465000353521811546429809693212584509993552613211568760262682339525578962847805520535320299883477616594619555332980410605694120323008795444376394229508131128694279203733453600261345150400803483896283092923824603660016195696283813244778113443255839799931992665939464787623131428704471000290137122679568369541638236296337896894364268317195836224388778432047633936936920163640183898935380541333616615650155790415891948859849035538890384630606481700369616454140508494311927386488313596743484621689811211573180041884374845261633619785013618377292309799729825744066331889857749527983592854874560986175270788145426698669251761841554971357325911910231013429098934374644631075504878559348718215015066209067231140512055305515016988818094877201428246695227625580470904889381538507756015620641084150618774615862308017765308965683156945946155741445872487040749396808889913437658433589774017977750866585762926862323018303746983682866502540935090456545723112295349165597837604276933737143824689580951157701950827110645846128846511582682868691445297212208589344519830069992363533923660377119256083503517014059646471715439548620316559559421771793429055156504200651200473694979248860521236966832844270883856836684777062387426027427977442834673743236438612181627983642648906955730498489282549061281835163723204844968131201899130131513926198311547050471162806389387912563262445080960640096573498372548308274126969653801887832979003938192893522960212196805997056439623076762692979301342029315181181228535548962071692413504196760858163207256581501591282815860628469468922042134784300783115995033787296434198718975953874940521611327052320452522137219635528912561453024166753102611229236675957148581559425481642572109215752684551202730022786630936318117374724834816630170636719481432738980281807274936417967202443285085376887349424821558363302147079065657851631643484831925636486669025919477379220895703725858740078186929846131238629263018949268653782095783720763468796918445509791536777641837702734866106373732372105274279400381475797686791096193104139624074838697106095974818307164673727367614107681936348381329717013243983934974941979136437013738398575075732400792123559152178887288058838135581792762443542737042874907191326403381991304339700445620924886974953521070724889869928997319779905419945128587290563547069355056300298537593127873450793787393889076074879363858429205153297583188901519223675534404537307790413094934050763547852503900503627821003891041189298016880910439583484415303128174396216026676628411563539452962088798825866252789992664482825061605015057177445664454677182931779479243955021134628235075308427840675256922383184992615721053919772958428398559935658053804855240615617860778340077952178844821048231375702573994595264105760520035370281658854931081517814376145095734173583715732495024404243211822445943121639399426162307945499939115074150676500598020382940839513793270667986331455706151938774162061663007743027635803553376186324279945371441199373700532650775883939106804083780376900250354516317782974506194249051700892402066637840244981150226250761227202320948511382863497618218513368210444692109436964920877037198054747360558486740572126422010249487273216588534790051387145604575442173595288373229485432562420274601783562966752234499756724657699027085123052814062004093046412766245135927328021312316881779854971548480596493675388717923481776093567728726975332939447219859490205329140343132331241000370877626837682750651422040545632961408565709501810601656859066141929499232670982268062614661296646651049189558830052212015275951565313976533342503813072715533029391765812913333880340597810852876097511008384881922026589100724468408572509227750696519375491637629613227725059096866903730232358197859423964704006846931553014896859077915039879431953220162159870667682072077120000286922706071826840795454691236375623415149506588552105243615068710662532589396236088845888944119895625808374933128834927136525638923359454175414329599417513216853816515772330938367769473565010192223183701235708182803593755808075199612815890362001219899760853259972043595505579352418047862567495123629838279433927022097594880217944866275126841007550160130992571597967684168170804186978376642654162804965359094105856148970524513308041343546809323193522488101972288293463677328521907082352231657174886611448599358654884847836824015108618674913615150458777716114071602292640312634436921011661890216387516785261347978090226075523485490894987271932327784479957317995175637283785792018650437073210997285682064068730968887212595918008731711639529765870710267335175209278212474738459151941955043096621243823509160075333791971142704435055574265371915615947812051064238898113863812189504433713990846856909775491979357886049864864611873245092592892175318808008330335622884275125514685419551225021200385164075039954813303674259049447455516250665828844637519312470899149954730510980994735514881823517903429380482114874546749280924372361394406151633860107102402344000822992335231633527665969488711634156427110781927018872209386036718509570948599574202267902474900930881509317687858934786978225439852009474648579745053455106111318892541332731294046680644743821931482903234283903479170496764427358264519219532473909452296202315672384644491656573550952206994482714583704564633446451741447823455761518792930835758207181945042666068273118989929870654579193415874280423754804736990953659136030513799321935456844879201650161454623866583337510928081947078040980941407929138419139609627798916255697139500046422196663268453643065241355911568309724846402134209875461211251610779190106651362145617036144859637063632389305402113137377373423715044713152647184196819866717748804929312245225461377796695945585351613875993054054471383312262590962555640169128763588180210423103385870706792910927272425305603441701994839026175324289627370429018587851458950208930168962127002528845962969250298823597731103138439203258171512654745396913185948152737034687309046203202397585929500828398775577999773855287123358196135261640535977767456763069171481104679662994238393558099718312937094322410268347563288640809826291135476579975283054462556218248860668334579571186796803364338599777142583499941519777174927305802854439456564225107436048119502038172203372560228780736612031807183726179532318102336240175641607138728423711105435653084349781273143212737433722708953369092707120190732933353787790690220067543134281749898736573229241266957585020134564170509305723595357220343818583078217999309281066916228096470755776960369744181286149653682789150620965548539177975618796923344461267540894124328753837052823337511204799441742942395650721890469272228113324163700240440148436802761843295927878928695100333459121833985275651089011188951878637663898575214127797841352358563376767634009535626558200327400686963494989414212662044701295510822305679031124139645407631873351918277191237943779093730927651773504505254215465578316142677385352731545791237188335631062472151461180760915300417044303646706572945675820493595780978058128959225141908214406366539534753708492455032185770247460206174830996074927525578270929853463209452047908601230677225189848062619099305801688113041307010129480032325020705477044665596294838576536998048775539609241521986108219504700385019508146925100060320476776092252579657820933432987516875996062225753330002377426967648951989010898130002927874319553867227509527122049518097389683411963019379783896824290807537252908589052767210538023764355768306329358657297319020269688229236458575674374840181559441199636045638033459252741703878099485683578873517049026827238138919487928105073179480054384345044802372360753955772661601524724790019071165137844016512224657378894442725396852966827726119987488309336810228868625380914004380208417929822116556063832707203548453618015403933748204429494189961911921787042575516912582382081199927654319041903377185779908730966370449119848635186355694965870603533033119518023964515080904057544764109736431068409823031462280654332563099788528849352221589162284156764532522579226658879397921379475882942507171434875920411920795755863308983095835222854228035574607964149065077006032593567665034453474717244535352645374443679710230042197554734995319727156233167040024033218744405492095721503467049534220314167457396687664189414096304891902883804976230423620555829062954773254558055188451728528298897661840749200891976596049605779148351265153114916469954566435296776234914950009344258625065729099532146259642434633779553309690508317664826030195552277967175898080381208211729234572038576843231273250369562807882527231019271838681387881417731529187295374357735052547392104447452182560107339081922256651350886920789807648671876202687612311979989879441193115542944856200685518325914089504952706333141943416894299338699402799596856666586979547791776248532426778499238339144404170177884127075676252556519820338115923264995676168245209863817220061217309004826509621204053580931052171973541042018206029787523637984197995125077415554294739979732741008098538554297436040311375704600396315801237333633613025164986982187277688188856136259451007677423144997172035064445740923103101067831284590077973126512459358324357833621264742961245932208223796516651132576776485603854167564633249741315236711647018065233499783061718206702335743244226682021939555906570791274125711190117292904348450443366772091332458238313326121588596999896618973681351822281607655505964989023100977645594583775652565218225159049592084336410348146562868441228040738012570566121310396561257100502079756531513102082586220626443984805614121681654986233280902594318549115781406361051347558952082472236928635748821027548901709564279364933309843211125142733137302705768252129593220393268610692781575584183516297610049134891367528282876624954089905849711770422076805155107579889253004786789017313535192738635368282501722012229605538723010863188473461095319206711327311688599935692382173630825190963910975364940437202521321826811347147405048682372727313802478721872705716307693328544434755863352683586838990288198780358180625170168166418610116939421536814517239838939339094662812683680053658909439694432615815462695066777537599266921913208588075446128956091212966462206591740840255616792170880406625253520541818075455700855406565214885520013171422707966646713921251653072994326293217842250849399591997399484286381781085160968378257870073974946649202692956545062572726434790257317960204143935242176827737148236339944344214371470210578227699203805510507870514544634743074526706062332300956190498875678714420362218093448417898885297479991881698659806978656088775884949471297650116081580483985974591418400825923981827545710443459700063215127120211440819490446026736493978946671608796667390908411044030234768696015378317731014189976856805303863755136382037980842931948129819643649956837406009615070530002477331822956916422483591531211916404074725685204018911911434562471855878329916698049910321307942227127575446414628521933074555541457379400229125455199612164687356237268144434956396595362980438225206871093778153918658484443409531732976884936787165694754898422509719693443024405436354976835136618015429446774792027678648849519154093516835255551353391475943775527485467688922008955247765233422092277843164326003397508946255006877972939600759081593786675064338176073166950247669717338665740695845734235803907892618442579560343038807544093504661365521821257494310852653533424876389928615109807242533576157816313624189978488132557213801581460074539473847253618404867539285117741333585329283210181433507448178014300394206277088699670690645311383179593680951952054135813248189887797846267400263929334168174503076036216168924501093331644716700975164368723781829430446080550034260704837100214239057018196204105709777510915861670967740221164718470685447387280801145447751184564845925008123978634672260467624790609132134690798291668069407261831106507057073202858405697232620257119410694509664196410236077973232986194181684985622325665376509014253540729120122551323706627803966937329699367316387579561638851318065990613659324200835167024352844845363816537986559185313009671495845281729967425195043387413574164844094980849984755125155915013605533536019002210539230813720417317220098673559714999755878058772160263246342441185925351300436864461130355569909673575179666067954547499624320740201764600822115180542835448274667983418947652726135968888693164042481566765790757950405440107808480907440086306797639995745526624773812180447492722574338137186287710193092270929133890626257988369562691695990620694771951624086301554072257755362322751934715508152950271062323458739190029553330656010263012007928627560150041341168793469718057653159675731434350063018951817314850470170413624915455498419778951586075295605658485061590314593345009436686184127091094530632903383437620381893861046870170979992980554346745008952955035515205986678946815325544650504946106006276759668666521796370604179224210173513284287691561312382520371458774649480494928279010616625597167136769816070916223944261500636883922513584496222604739925017808549457731693267170547806859730546731122095343379007987910697578870985661649659784220335285873787117905304099905550748695775066630227105972745578449471460017050498803096263981971919862647045940938654000577382720317566844682564556269400404236385845256320006092062236995619169622351149361240530176810475272563710077172859112574399089116945704677992246116108739364629323693670485659118663551114371143600645765067520331060749675779630370297134157120736489358700387066597447911403760296041050394816808455694692887668605208701042950972181258397217502135550740208277062580207992015351843374930810146503135132282480344150859947165863159249873678998612798832754280667392251847213511457759067849485966089415916593633231331669309571094705001915287885495657145242545112842177247447924322679147197403405031063160169608226126332279207695092454865415762465989336780524130347383385374738166406845163769170047464916018435178693332988444293106602844694462220955038599035875825025626805600244372791136587284217889956495932827218411432932539108995104486095349116110035757754115035482128158589011650165400372810844825150591252564103492148375410526531369699425281152488954953981023642757705050163364668731271787206837495148124197148967457113893790351726003708405324530143413748457645553987326421626801438689782678842624540732926149676129184970909108856656145403017613223224961408245866914003451927505530277661532590639781147904379904065555397561749908899789234423159039650491884366889510404944910234121289997311513033938589944854229707388677779270575446089859592663170883271741598335812577847628658103089154563707736455502168704174200056734460921105693090835824595029178087257506419821373615024002804480549767190227048817662049379141692280758388900646904912143663518589667082347538729439275455644535056662486342201519133837156020188239720679081071649934973928296075587103835381607041417340061431254764240825209035919696587368155140372729747604444186614678454615641842770218519090150805596464083720549164429249443498716454433166592496433407303597052706257072204266878666550909511882190550631914291987338565340045390266392104225677440113494270002956413626310312445046628979877647197249026180556150632075802611642746923590205454413910491905148656356453634894615415062370645170907381070590471021066065898531120043365401889850147832526133893291129211000530063578940507736259432238606766909309584565664619363375091496074307411895788049843253765116802148590965671140298017977346343533232719588815567687946037291069231686711594628117865419558988766021995414726005337835511215610315599063158344056847443342384747222427888216262979682845824592295528997692387234454067063034468098947214692587976131260482487775734351819050009248983826873704110072126911655944320665304685911971921434565134649298513669582971243186082351453562341595651308093351607101671013673908461136660958462725027086716279553359946804079340207545857400784721192243280820245096870310288681016259613195936468978803334611255498431416124583127092747441737133242422184830622453045873294350478879254383908733565908875171882723576391449221567584495652358307748488723256558710097898877903922033667969890991755509957962762973053733627854109258833644508386692095209698348390032989028621494418216599203607142043377255869186665978704742494738764800880923386946259850566041931351874335686754567218871674280162675514692077114650892355545675700835791576783650225211287514642957387472331474273896120320986513936039174119744575091679120120230102009690667743041127376507000493996662688203150500083062495930248058232476243243179293888417625672736921467629867487256424827153355591154204295525963909947365389900283778496536648616339695851239501841572163735257517540180682133974268091886150107094446943629818261282143682827679812967962085156892976452991503767922241655545318150534239757341187033851799244273486214125580101247730900338395758481263653619978582909405996627460129564402638813936400538436316733958289822947304428547002696441010713736531593118370426972567750509330428275305537802525934490372498461218154983881764939779780358904524347688876517548346065235491635919426813854684130761286798658234216137346879077114902279242814845189641176359059750006861434789706460117388395597008219686295505585437376755163978267352483163013222057588761877792873779876902801521433138358721656601286759467312655078340431578036999948685999192412399406018231722773566552580419687899824030530689564151835163381565446319856687476673481294662506145789003709662166293630085425086913758100241910666329903281232332031006427711172982720969390291637856748439880416202369446998070523443329070981276571544980084741293927170517657373147146230484065516867666432358333262547984207883631763674570658129844179014343346694854047828096087632603465949460884070783540858948466773764809764084918533389376115224604928902208256604711346282783238628545018918306153361105049227042104524314245535072577825134281707253607555972167017071373235180334389446042797316553254411551052364747899922641640323679617184619132068473916266651519692307691799063168577471448996224064382931314070377604248184612592730592191973574845976896348068294227508414373653519533253166155078057464130132958346794256790334784385077448049237218405477845762192734940076439625885105325307316351005373017141324726280093901861693090871419081224414248518717443204649265202145465665806839570195168784395593782803810162190766489699943470691577656421463498328747075571051052442753565219568158774150336420417771200965282525246533174768106443086864991163989813258931942806688992146024907878459851468669116903175641417931818657270315632440854092625120559248763166411658099520526407433659054008398288620108735740216519713003954221383862043400251355072073628172595349354307982616434875590117216635320043383471294937636537452523902284262414185969646886200782491603851193482510552288076563205038555258112342014141441949731430973012899875234864884310876986943563368668660700114467225945391501924779994953872287859977614960844986359024083986259266512998125423175503674690792771243732084620091289306873970259731215417990845113841477563261385157085919397687805758376923272121754881933720778587309798171224386898977381684644698623801222427694086822260434486239652335355655054057549744994727801546976046487467990370114172889001931132878527227880033866051650718586764756822403923948278719198789820326126015724403342161612262520267574049068851814499834223280412865632111251914637744250748407140265991933357762363100272937779492640914606794564285437887762329786035271437590109313543607956150388206420816440520872411804017254050809966540170690555645009432210236707501661869595136976235692592161096439930959014755155850166293399688612562945641761337946397852020805981637910207748956978403159195905959988978314793604485183218698383594295546870564086659259371241965841045331676182777194357782557291143132877369917717570406206075147887682459015889632215812215240031214069828999532453040398068580741326775704305899420570489317801237328548423809460834905585916063953309687044220177868970137557281423349313755500570899907654200214197405425052206139286792770834121950036116745341280317908499571632257120044836126024879013486785617980107773947660228935937447553922720444423493764765259584800032732255258990718324003980447911164359518166331235584264362073615721128164776806161467107114403488117685300133025674267738575555826432704296252090299939838369709637972502636253227206101509018776208205095727360530574120795121979218994772955131431992660551434395211977646444563649256826985043458154046540021288950243573181144390137387561138663847100479067025630766528336674436869492835642948007433385611025974287108147377072677606152403748683748840094304352101671016919271115720971950583138221930329696630653716707869521524130388503717623942710732885403489469570348722066861477942620469968674656614066315722510320005113014716939737856176382361870138391474138476397919315021723522074285674290969030207479566961909380424556949880874034008527795997392326108963019242192062377664354350262156287254895701286516014335285260435447223978367132193386553048885110413341324621047865614354253373854654933295716459965379987051206754870721327997098828142985712208166510002556574726530490595037186480587926812215537097978421104055708102466099615353175374986462544839103043051827045902161119463552374675003087364558348577547911434539929716361944597442606853138521636711735388849308681350339870368419047170194343705164425151978128443077354270926902880259822452409607226890866759454700148486512648390434819549677565621477797884160941899554218472792636292761198650033404780777653000850815582993918674769226014414524078783337180578591086006175853710423888931673822654052677962146949612241896205231700475958162066430657806637830893276853236870343519399392865210024184712839569579463165446996667863056678998644121595683707230798445662682086402907632250487277053344540356040270124419493195310169171716485344563234603745785521069353309239506562910572354999413988488543659489461576851669819894000178371265696394063532022811249033903124368812882982730427452123795120132126656451437436504888513367680153274749193780363358256426733017780266726005122547918067175307911183100207839228700697802426998887104752069782176948571800435696908406382883792112254570991683433362705471590432146176370127702654691735291499055572478620523458586834149950740324131443450127975656587171273792316150120565471250233536427082646195393126847443489296237895244633861426871782167321333469526446196320738176319596061230154404284196107083850369885872012977760528812078494439668841705173506843083745345796006716972973651744857483068067264595269082277667459152085456350797615410430924872162174141629675499874668171793053444683471229575962437906896308910508883585139779862866741000532146660405963600721669105545518426452339847419931004429686994584588349903021191816783906340996436997925918123988406578547964717173910247271059135405976091066381446084450170573054032127738670594969415128230794782499670385026996621179670861128333453460258415966662639138410984719050623546390351514372678158849461760688955826729464750519447073510817992178023056922380780965210176366604049988664174279307183165166435302241572854359865891285751463062859476963947741236432162404791392930774932973576867501358642224117301735209738042221225129921530869283200807075955836562393191038485174289481321266370507617348265115296610257922782183166443001998624945299718190796060241776530495027656187616575592840104263375828262862488832445483112878940333610437732432203784105891175284641870471309081351082012021663292646721026847157400901035402422162017519260071701011618061895259385277827332849837122369614169814322371571768008723875497872068341470248768746192365969353466887347326282861087039734560377043192568996076123798524710903291591733393725051320561988974278502172965633987672696733722429887770445143007608281254294509276507217785369779789474749657280333269294102051641559785070465984998052539094808251354824000764871116443117324078098510367107600375511242277763395783504817201984945091748511413960014107826024535765017753061978650349049348857324983509216890741394146293403556500137064200458483656356888310559063762577231477165088378197188402820547584223047950198549699593524390594477224517021442927259400555984329033062484950638009920423773370033953364390318642224492539750673133605864450565294154934730909118541232398099071193524833442272072924066808164367485476372875487101715559270340026485589303050931663050078245087226169741096987539028712935930895500589629769737115994516051777458825149127869757786864547815073202005171340904651142637716179626984392476070059674176846865260019998517190950063411949964370655407901033041814102307366063073554634633890485087967081682104789896930218932054785732758482960674498331619036597143711434657052052630153400781519560368985073704830953393856488180700689169398985683895246608540593987491422975457350399246796506467670417438021112746166544018224148013645332775610589264155553430904088183610706638491942981898037540537075503297654219761808188918836343911950691170491236523308199625128506562311036874172849508108387734193206668673467366992574587974947854706783769751582055351718024337176765558702663160692442275721505108599196246603455362989969504975828473975512869632983578792554020804697859922239475609051409633361347807170398550959888334182321697571858972705604454963929109001582949745966748237594134341471510422443772006441430873936902291287511209695487329107084274070135996713032723623025832111450724993409973308079080423300102738618417936492568159646432345685966491807602119162770009392596065366416964227800568727066255733521988310138681199411006647039794907660944742579674008052587781418295133072668251673995968017180278676579697509977328660619167139725130258050561189115847576669942005624206639563833597297414782218705069088976366203547587095683834940067612721138771659417058554971566222012160140880359598174801707791761973098522650191259294855507063089742073605315205305276534058570026220038981023681310563981192854952032553990032299797445353450995387105852081275656818872868687295641915003680909540331716745484037233872752234876017999509218205329332694950870682147531631010248838701345738709952416364162956272406227463831685725056722556507863031620580078781316868128713547278506561914707842606976249722167620944409366841936391575540812164856061718632871391181114095799405171597879188643007443238149805124766711473502950220392398858618613454668705261850693898064414030013472987928562802109683973890251619573736284329000541638817723467141611953801482974863459614774982324809958965496554681438687330552836242509160396861721447326064569863820254774849863230526398528074434689304979880882252920296565229562584074455202060215516978758568182716854412726101231126989757396453924535137144166628377272343406311998501323362366213732281000438406813488141721543060262039151681423466614580095722563627032864683035871302200441687593648216306650634314405774747644889401108739147864438978007462989976650234620450692834830203744412533646510801853482229344987875189972279919491188002955316022463149980822183779321668484086151169686963602753606030359577773429670882135251616305548220721203327085436323314689590175590481150548720269009734485166368296821020526393716093699968413526709008161823188338112354156010456083581282527656505185095982920110362394524320965865921354763898776715331923907248488288563151425661572282083676157898737367823432509363353779178247118844983757667518276780908013419883871086142417015901531293052970120016301991519732791174967981270706845320409248987032198095614835235087412271798817466873954087592240483697801291220969567112000654991738409546354941638131128244216290085686985566981926972179597640215838539243418945181114904418766052614290561211214121982399318743306078907453351363768987685068912910573842844694976500155657477949597281906124779388694025142958710631479154337814896334245428270325408226227003003443207696502728511717646760787317796533021762876003907619229303941746301949197089746905026983706690971654292138703656130293860004266532740939887219458117364213218196663040190648401607743252063569872305108137018077640434090915936987572017406871476885924506637157060363019274983714974905094161810296726027205976892345497097857019675377531327543882672888381685375904239486537111693990595186117121085473615723117238937114030445051989647024840752304383170670529511881446253792412038786517629617705226610974191360853426025197476663916301970646681606345405973808202784705034458505661141342453280390931083472238993707532550539103888627457682169447397953711316172801170693218569004232315934642546427117506832687684042292016290290567485214073018857240153913490804055536581379864861681521530430942828562607413333809882947210758147462691685656046256954227087604269248325502096442900076955350482290184714226083132346384487288677410488861300141655926699392838816199288658582724042514484393608347799825074022760493609345158023651118040566884686982032986117720711954097864948946398773720207649949082439549729359484704909925774055554068435502345870092715642849145131913191045799849431170498414837001188930232460449231241779017847694167216302833041356201628479587567835195868533102471201632943128949260800269115869876576506400748911578877666354654812491567268523429691672627332242720274227726864391318079932885240606079366784864126601066841594314564646856447502311173065139796389347720660371263497979545314234846736324754117652375191601801031127099331764536924750076002818253837823822816303148686094099566921675136936935969306517777385357188483571552334530332374757127982907316145761266233894346906614741967056538256822608068367785280008466112405976495631196329197786066978651488607871047675889634034768258800205524694610122103426798429436689267326673820863705304794022890709592817191469711833551564168673373971368882809029173699632634615141307453697593024406818001728692392235887562172809621799517526260765386669491935264987759132884279358439625903425176765396641816786826760616455277115067049092291283824681909143822617153319347315365031472129499838572267940436197405082391452541271215833350713484945119827827260467301225998839962748391385259450343498802443844402055850211698673592218028888739999441551064488652759523036568911957840348469554195988860279518503030769063874153555794242548471175015631660566036238870265335348371923215425370580062025307883670857375891030891734610708525709650712026341739479207950226360577437386765987649409138322291629907087029763332440826517042299797326635385845430969144218397359051330298008261001087119943858759635321737245950122052558460827015256465051950788612234983785133385902259493581033009277627275570928811349636172593238626399634311840225459418791367075097228281723663379720807064968109918351753876965915791452356308513384028884169022376407596117100419326172522531817424878367414373936347517324043668009657478590189822415539951815561738765183475409153775109743032668643658548007251333726976113403386090948501448256328223108632086600355402881388719924936400631375488047027804874294447332821358990099110071599356850479556470909338897046047396102490297569819180160499546318829104794588897926720697371084135678791404819035179536277903409652576339259171012897650130966152254233947342127315680786497892529277747306731924849270422129822092270158570806217403471141196737541406740398295844061953210819162525153481896903165350474759539080095786672174851547403209588188864507734680005433525152212434844028466102896536260231615945130991729786154584868824480586731775213077872442904325747772635677567417063725139935709626991806755011734663287041155242925604267647549865907458469161091427087798692826976875190368290386295224961165732113350306043726317228929523408933437416516626665108629782518847656496164239546334870767724907662937802128713635963762257530907302942782256931453945492493913694932716080197126167810466163431635768923817276880423374464336875031827105535208470968841342799651230257051784487336301040124489139106960901231570345658294462875911518935942213941509401495821214635957156131443341125924109369873193357853415071589232398233952161836806796353328512972866251177376641840955419258510589594020616567305290377580405983736280411544897610991894985682237677683367597600629246015833590325696854123910095850752088656819924070786926515828747026312579139442537552971633640412583033550601009997892162224849299904406364573406812535806655038079532557243070569508931829287899804168185147546669969059388075557777417302735744247332909815163463859116843918623568887108149753666006245050503563616219326867705427101756118821098577597267377170796722685305071849907143868755298902386714948515373960459274912419474471901008355034304985377454639916513379214435996683436980461652069092278029398694206181779336379816351893100381764280557402242795927813321117326204271514482440925261193844533708823110720115985081156362771364470432930914340877720204105789404719744561781273206105530123543235117354124939636545271037483218650350672629971129820816850475078614631449414002281109776285373081636426489120159588993838891114912157686517460716553181579412311274670549369991936668547076672934408651660716826020042804376056203326205114712701202033917442318758443850070237338190910642456081815533144087761364820525239564572489656030063163570409428632192103041625193138367410299114650379616062641193799422268142465781559075618049803333320780317200718738275261211753686409741729012454667333647375441846535008418388979810978182937405343118237501211934751322406188461512411090601667364574405796789178948898769421318176823127994923794227567749209573788814999090301539436724324233415872940857018985774733677435507252639990418519975363878262141916790811814101631249440362604077108610981667805766581641908698650886130974907586393896796321851974275767847504608450023540204625907742970371307603682004814221984648975433580575642668784651445174026455255627943746727975413179198501920725807650734899042950934868694529081923819859268679141635781491975510430919845246805276879074982810801726958104150391434004136178132366142028336401281882021508866831159438342583164587186984937705770753988533712710960282477014350233079160168035495818967538630439125134014179171314726580833177195706392670666338256484650350249112341080504808703623428823575453673907853796670134203979900289879026416774508160169779711389519331250679253212196752280856178679621627276390106972550031074264126265508960373630227176083293327770065368034371362998586559678678433763654254878891189249332024931807550024392238271247149491405941181874264547129398852568349737833297719578027006316097753418323219904944360093114103331240626700949411547615758731729046579075732866562126718572960758929715713144589946540484545590959827471483797947625985326997343415158530378232967826914963580208601632926582757337130765797136241967923279837644773380814817933570727555210807948164586933728512532373306104375141908231874613861596446738548447443677005915929261817422472766826374779391081312634996483822527190331309276747288516130196942341606647567938712940508936853911078294386247051046054508628003813859239051219941946872649180671542421068681318198089141560559144034801258566894336177859313576523789903276627848337769772243268045127074668735719268177847366709745884719184664555279985687842574041285883405429278233080996853852401549838276988617514289872046798561413126784795448536360604983160482370791519960899105456990221778732691385901231781802356698008621387459510012999711731154240850064992723789436668635791459553933688989583305535490304511602436747195727345118025206014350020295084912289193800094904931688975465021589321657763901179210503890360939598324308790433690334073462804739902348718563510253240139027288847540232928246178341988721472788916592619301709199864867362349297558437173586802302507180885517901409809938026391493352096136128808075366545985887543090038717427895810415156265154965056795925456377391863729614274569620548736642449168476646750504606701060786777339548507421217902713761061880586257243766208902293283591054863711325354974937103379011505170517709521361543676143162491359424397057706594214101333030316275926381268674170916104773514124544415120210987694322648553071257851361264929529274748579518725851033305545878461292345482384386422999543263365741822991094106152610017573560832316165411889710783843008205473117604615680435040748937447434760607968477533175376733272356058593251726115174061989498231494569937974265260356853816803989775164147045742204114091981017157053181085473673622812856559392787784756107758487884346479480381484299471043071667143827766534025016942897461769409426120628312457733013639829132342174639161786757702157923571467484063040496837060497512618301514683319994441477581690450252951268543037030402349921789302948629404744625312408104967837375755521420649106571374504527473582691767307306344603568108920295927630913820355829427120478159937754325388274566804098805375227066609656797857412820822487996588535908501463942192889283377726248238404341325833756431875695434560833357813911701954222461208169797650538380677833724921322241808740201242885612443169413996347900652349480195043359451042503546018518393235841582399452533876830650167886001762207578683485450354698457956602978373280456721607930811605900065738578267541477604994944350543859206969236109989490351219069198631317986825706434070211502433981503728743056440230260705061454273347188240061071470089227319798781005727437622623864648354365574299730093678485746146042501565416736206237812989715729915566274136281063710488892311882188318430119802245446315976710864497683679118233125412969332178662202960686397407062728480903993468868312501286672176416888218940136673350261967687690024038734066612303053826573615657210550211743227838068155772592269261961220282613734613226893162217607699073725933485509298837230146990345667507033523874879638993273750220301873041473842454988912213438995015683457954574124685099435673328623604437552166895747365008890125229932326034947374264133484057491413638684779798149932632520375860959499407852313272340259987578281698552774256344789362434811846071325223523699923046993071186135066496868185532013487444477406765065975902019441951027944503558339461549614374002035884408119037129687406658403332649385523831485177498047990789210471002481548523532566116840931249287410276814939207462686523686940352056564738728540795502737477355967012098009221855564617161941107796665464469812398821601384514014627162244373704054981285006794481314486882956497578838174639365655839176964812933283155931488872052450114255701711566769940467043074802810892304526878544778394215802670416064606907255800486761756878524352582507097123330965864239660505054765832846411360192868014569448493362436809822648901453854770668196642967805723430529584784618903777566973350057915432851670411862268165548491454264007293325061649373391357327801578996766872463043603105183052728359080587265960108029997309599499925196240328808948105106150894834820858597254602205222411808808318456513557140570961421448004021221112257030827442003075788146671136781601450166607171234242508929995175443656201683521473571872199953744525291218413713473698655420304580618237486804090261268931403047918010702404794830631623279017917078944755073535946874656648095577051825756061094640097332138669995886295525753263343774330063562248577146918005111756241442498778842390191049240652644220848332971032711744071576842138507553842587411113796336734386001341944151938919251257540944664515064740188335054261353941134724045278602798737095362918208380862905755413528643064578012962202308810363741943049326467748941375223072056969176732920521379813271411575013484239140638417435198859359307351716634173622020029091811464008736514852070108066836469539869075275627675478222854678578564503433985846819802277786990478286442922514721916346818951676123104253974095739484878960798920999621101061302608924064181740509837079452773981401558659726904910907157836470099269671756175796902164176426792030304891274845122283373506391287546775208989895505097910635435383101640168133400008610428755091787908366094274297859170166847272666570062555334282578982076343317971274813806390390884414222403679726591533256160279933939757645173088634952317908017941104445971103004366962844377327612909695138349683810339138567710156486171613060641243379390290720441894288232122806863885836932025946440193334987409355646655551097557739747700675128498871464186696145608623637403600450619063731251975528430159061085939803001430363786419441917481352727024642282929415389656074799942554723166488120961471716662916720521364192544387872283746659603162327803381257244357763718849619189473744492605441157077112082729788931809474491412881094734630234165912527633962364798318851357232373519931740596486975323075798879905093299794764600313825011416843657334991034915165638492931821047246897884851978869240736963626202106771454020911557875015615422525344825182190466149103582714859030409108799440926350059604172864355486569936368027123784785528789266784593495906117829387861754565184020193094555151706777480217661692519451876323411176200296891948354636006889496901512097840309373956049449710634247732844815722800061087780253730726291910910743419900906238897793416549905947211506413267965670871225173554961812577499004799135126734855560219304238847083047690150585466792579364697883321303626244783978852501245892237534654745112529470791018491822241489194224871177888334081287656034272348289398331739376059714197598792967170467484165936200266864834416891590368973035760816061718251617290895185814077587581165918407506283800447244129567807743232010883299884970236245699935133846769089623026148259992252498771697427349087533979126030996522925376980353595741942705504576410598004484930640528470934628620478128186630422070425928757186606696949730747588691399161513496392888185634953809482664629555530115318635174583600877056814961933449845918932174988519338555873267816775102460145916401407162635460516024124466520084187699849660977824531182463706151863637411827754741809461829338240007461121086956862496171300004814726018913757860398963267458968710238981574299799204589719447564068579175810290736098116569504434855242382740737122229669719157983152051857344467496306067694311038525362466984275532851819372337381397872129564641310369863675281191570871558278515612015831519634451512309556331544621459376177776357369340542360106680680281005793174259960919203698442065431658247768243939074760508557867907293597628112753566779513050583524709385304362761606041933265355418558843642972299738649018663575774978781967148505457608261729509159760707426359221641794596329106686309929568565078766740467301206823662980143965893786201596305270838477223325499129534545411465063199522901413179995131803129110990602016217395982156837140633544580524113970048116411244733160727854220133720428462800728050731329759828962404511617362478588696893264813021080962935859069993407976243426475803652076444421612677099370552932326080478513738261800937738695599228427340190255974665812639574637379086375340625342799842261211933269574567798226126571912319220700383823772569533457005879421834758538242165589056567464660673093728497334228339005623525838434392733733049718837970798460850309657813836327982361179460761956019342372625095644772070569533159480641736981083521262940923595766900280867409141474531911785296221949335075466707870184608020693395823533852083439988978901936697355649995831951505370291273563119994572187911305873896484214459503745000162740074761659775904994897511808168582511912983534965832864860639120110799883403726429162127820041007165583682164374377591946491434212003243501707286494260712355708444851704148711712872315258889265926636065852293160147295562296138848065879230780582446725026687046672210265979182885225599975439333341659105612264412247247711015825953984726497832918761788745572524771413481787001406642429369314454071306881116139878617798546619838952277775998844814807990480662278793308924942700882685904697213815277818527223317813396410864344541593839075794167127252751430233853955531585375809445570245292209185680949440788686036552554563892008794273275225585658600537020321094100179400815672251304924375655418459918352439001054525639856993890067481812169938768990612741254249131316438534913253239941036249050791023958463966001079515925383082381965838297948892158819732974574286800727796886018564675937173071656267538412135053954024674759898040851405066974564762559138475626552230167584594442543352223723658918691881263511396319514540163916077196160856511543129814185804601171884013949924274851921419555123823644169936003384139404913581078753914829115993218943969821020345749674424135486664848838703586553708757937400251905083462131155982687251752287113992652694199883109293306070225468126890923974875039360457770245179510438788459085461700922076649398088728414003813615455855682239289056240491786424759332764983194634817966876111773850280992508408530719663995029539106364816853922265781196997574822971153357620120355614364378981662039182150747517660907152814411105842417079043131810692265302179416311751498694630932722049997139656668937691427138320208606946673010227302239818411450309809808908152342702664054313214317565060320118263773850385037231034942143575562572442591509373495698112985210526960069996124885108657276820787807585993639021141637133818919655521017738375930617326829358058240775824024070303013993932411414692898514711309995105333057672836117464436948118081765283971290955139856641268348473849676683366559272893615688370279850471151031411138082183454656495417943832755662557809144615141236607580108168310476130635811994860377762613094458457218649506432810154393100632955183379075539438084465490371621284934746159915659287200947543820029181177285031291807341137579232922290043649750113271055538523554936197964713864208460941348019824977092345227814497182386839277640927465103349375073402549483592558528356917632293793514128175812801039222740721444573843856128205676470686742875284584342896623541973783336841629792189302825803784622836442245634119372245006970281723994199243058809194858817909985719354228914677124466148251977480428335121494346188737872588607403412415845406313775591102936444456108468725603705910607742732243304058092778951496759477472552939280811233484894102505982616025856877789663714941399520360972456054636805570442512191807376664714342080882352419052418091316633387401547796485007126611646852867833408973303911746266920283817807581064045603661835441932395088992481714430845562333760389919499164849626896170181222910085496198325775130340613304848793894335316845289611440414491742633296990270671083358343308683168561850478229631990851306721100603129203786227787212253248502183725340072646683419088248834332259217915714897502296810440988395615438865404661233898008465980232316120736021082772920856892093925917528597591878357663947628268952392976534499471784078237363372602993806889214651941303087093936432772190412013493478079811994571670233531693478168435670185811391006402828832612847010289859506564162288690716578991768533643123412871828252755586189064155873055036535561754010965535184487427583580848556732190694467315675851991108312896942392118150826646952024450791120231542587413238447228113367429839933096897808143178332068471395155979747073166693707666726216165989924350767178609051647861370051998272542074868906800969063793963869209585501494979284592118669044755342628869585332874644604633832916688454707350689311784446696854952648430153750682869630656220566598837241849015914593641851517744868178161293321638974969461320163740183267269339457914112358692323864732120103047617660884908187039133259568623019554627047881031291772740187350499305716240691142175158290729133301934867980457016187981919952521813876330069103276199770757171916917435174314197252513949081550812425056148233450723506529474295475692831444463895299605009911014182464222040197823922353833447960018565654375873679280859926743242821693845286267194170644127779931351931267678625963352025293885791986827175795183492014487069295878101446266927316964022662984364807336481314400605268954380918432044184412982577626102383622590157632424668178639669067806653556588028500482607003336841864049588447242398312189521277544531294611970510547727317176085654058832632792785091906486073542448294693191418058683450350038558570645697899667247489423988945797617625795944471538268649223717322857900979207703526480799370449305103216726584842338178803953146665546052054868754333748430240097478851819860555324402608951783757595918633295818004326186221055707822584344623182152733137037617547773893602830806912608154116625171441136044836710666742447993633465069427321840215598456855106185863741251739231574093629995917203639432332503253667607055897741292810919615927977593586094868427362483931590685468950763970740534158754405638844261606024609739643097365152161543342195193937372191087251996874597744602591603631251265688533244666485600138058421995121957378269028721589419340604622833570024514526559977749293276728946519883401237196437385062732514549458091024104183290521573629499464769150222357039491527639946236204990521269171245160373419933106843296541186081299678573065334324757383366018414701570591746635189868814386184062264409338927921541644188008104288242628062629077516914499121225656614075160862356948818991487818769497010893202128530620697476740478100814795584464450943899761949020509083420171711053936187837305391031971733396285369716739635202200593467656218760457462085799212973545243906232508437796306291809673695217278897352975642510870627333048774225750465884972563584021499875591347654191468232035870852534420212339346485543104168713835852754156012910828937321220431939571703212253014586386673498723138927873732044521232096938042592806475382298768432615398523943801678761335318507295775511377424211401972874147372240948951907992857668547833146387811960022607465406334930344282819136973948742147793072712417872211571426745808120006563865735180907704174069107790026924837335582766422887552447225214270864446665541155267838535418816966258905380898613580729319694836849102825173031685525398030036680504489429457293573844128059753685195094457330585202358503476231400538064278509148499455221159621767267804141675969581172218363773159188761055778550658478051233433520373864625187162976190970476836721900229677508109833866851484236309679283427567906691509581853082488931366825181569614136862098811792191485162307397940632301510323920058720641487435020274533042217479034063249027742282314467749795567463217026750205757048718236117349806389253346563874952210903231669421313090465433189628201154262886219393572207793514021491322537102610188093609821758327308833572762923257993655035904565925267048724119544456407081711351704137430967539274137350301434442087017966998241722643001148025317879993828162681099977441687252868437615844934993589846707102533406375899788310713579281133365519216389204828276550370537134963089520166572619542252128416565917869435656354997967428455707678036571869363231994946401800204200123097006426505052055903540985874818841103839677354851502399876196119599511748192721418615323707744009169812487952224088896735502245796935901307528981140515853270451927868430859393710415206345095912873474020549450851994137148314468917052893829114916181088287699322209667816238446725789643284902869738322304167246029741254164871811230485495857575643271768237866735345401133223222027343599598041667781268900422012905361780483088152653192342549637221641357141095665049965642361422174689018038581980409363397534430975837244740887416610372333192995370737339308540761318032693070272707460448587905363312079618207844595383095064282098578542023389759061242367531484717483405289882103582902163879786578809440581931276303451074917651416917210193283981675589867855524586301410110280685791490021129038157586422722975469924064060533033560924201889074527991882321608970921637534087668509040954277675269430570213173073960967977434185508874675318130262438540742101472034493462003326981324538167520303859146211911155202955202352443614991673507272931154316159829448853606425291834848664977419546686682030200351589547298661300595040514038417961026070386456887286980209259774738599856760372379526162548823265267313579388438505975868297070688361665161676496401782186030432967173808326988584326796114786387861522319527350798204645927172993935993959811387215925837150392508751244926715591028307608195666499367477072400600969390052112894143801458101875938668266990794707817446682526260099918232125701750966676573341428603390807682903805569263849122578219945073820513763647175656630931015088339190031547062832452981755822868353031900306019032643879880709440978416916969880630310416246605197906197059626537390531172700278506459186873262314003032828988734598731766755683980809142426796848917572345998479169614616796543042438603866444502803960493988323082315650487995171961011457603319684658883979105823292885355793814317643390062530079361399033911540450458273345501427813050541247451165680908877559698781852669521831123182303508731279210670614660241014921243590395127619701070418684460072601673844321557328385953750030324011514638409025990657757909027785811390945300737671600059579920979713823202602732510271091452512377327810554411726734654571561449475362704762314242909738512924315922502539272257322172229395523827517928838197283057060287838652354765837802743486806212684450247771523428205055444388500195728412068263823193835492081117518727422870062542234352785457527928491171467524861921758473877755178832145930522309316095627890951976053326700504393248762139071330070144083498881737940003631781329626672172801028889418632480546856692807293984097863794720818576638542791144332799092625918986562685882001581347331399795843581493513605397915387361399338049401191535802136790914109606721698553225742229485005277558370436366448349706818548360738556531421248260863952610161456437323285995021644070155418384471556761474715490820389205804590088838079065492567681069507194118606918598836601241945778356526465464491506394514061238797642305139603939209905242579441057375546857282671471395583887949734382319274694922988091849511744555201926754521513893113187907998476994410610496749310403565973635921042527822964199983657401189796494479029480285729364471135723613456596521055890251495433175818802599658836879440060672579087200480682955194570890743322130104804520967872108523813986946420553918773644332445154268870744433836893888376717065619672280940219371998486279231863055116929412407401642007713265763961907500213980201457882741429069003495624329040615679254883456150164215751033993636620037659535920021294224045945453230248519228388990778910727219184071173475622926031427924886224052615760895845850414124811228381208088318349566723886396371177356434590794514655054088473351919997348305822122513136011755131649559451488214111295045317441118244825531657418123485979037524566344108690668293721535859260755985875519449407385593320699826752411122634569181221824869933655633403430599028009985998089413106484138314379166039372354531132030082026472642787032526613931705575600589714745243076297515714082055215182454009824953914749851238856625927260459140844708457853947859528618208625440094509228507863274176864982155451047957376829696978348389813117777581647887092718661592745182100785035548459989733942260876930744361712890418785910477970040902420603610181266015603233057156421561939439992626464006854955231709681868177320696778472760753386534408224769660936249905636829220132035723869210713560256387492856653703614790305146999833399283051832787063629142552034789521059480952829275487753270835224116427476516090895700429333397175137316034640846876949584478892005795693014530311340330981011145436528572394940557203480083644502533170825769538729925977676095619821926751066898225527482045289931177044071290543030631179420017588846351530845851874231047218765826265233659691728380354710456826765835479619983525080491863766263469009586053450827319775040382372227629954555911234685685292322676111352744656812543273642931551729833072393613010118718861103482737371636119226691355541468043950216571386132076248213208284505004487667771974654532610561072092558608848458948410508494803531591596446907872128032798537421798473276896733809362632288984868512379616675949054035240247200467502685303980395495182539724156830687219899825924661865010891065160055352530669150408868421286668563198245928797162089749641363874030116501668428621050453266589072575431683059391156841115867065151113153762660417205586733672866780708740430146913956036951035179956808778527559684234485966371069034681344464469310208588385589265429763276676131342744809019093381151043156594179068268132986761421342195736998928283541351859647857398856768596942447821841949520947590129574706772301706847525906760492001517938783570071168184681750059908305652215436220889742848565163182790599497415444801549142022042376872650954793762001982108029271954396384268078719937402693835841156757292931175174014216976851451095701592923990011003180474073831067641684101121736373796584860519582070934021288241091977519434653723895058157984459741347821439404450255433629825189731831880742738323055005907048756275311598383359182880008212238885003755881645900778064451284119348058554248450324732110988387744057353768343109702303100815295645455546157479823551342142554635115109038905364037413994688813569034373900044959408378054107061360103347110593470124884821233624983165019615172853327502970485894715364625150231323589435938926532452465180165653935553217591104393099039989802175843922648450603957201195702523954527846363402425565105653716261720551711268404826947793852045983447802800590199973572230135435229826147940773621781310574081345257415254635001943731655011039579504094951794118724916392344746503077789570815018507472923809177091182852687569428420696482851973301122212582552548790145853387139145426758380308295749338505778616658638316875423840566426729135272507531621302331166053336866079898952407659399669756380140684839981842775855143812032564362021547020929316222752444824194631660246342702227577411269944161164500786270380650732034085319601972380396616780108902870639531946465487902575713952678931109900868354036546465826646423330096032742091639818705332503036378752925407317480567653516029027739809948614166964617333892751220157280055936035205813982716851665795381571749038947188995150077236113868166556273172562446548661636695313963316596584442137255074819392125270698411843588848499161905765942465771836100725682606746458792698487908623147022905536213869312605865094615614361674095071099279669068394060210700185819006649073044248633882913697703577604607413156455462468117672983841704996840094763303545982709709547496242750464711834133012652735777846373420552926652005360572116204730252357069407368052001513663599895893817840086326091774708156206035249442531618575583136112840693723118150067674069436388097333017805641716837926249387812343851578390642706593980810023012955323163532262601033689937382154000663088590471983530964481024102170056937407277449429744276134134242331463666765804958312587821458080658970503614609501624634731087319804154239604190471591578181401460935761526225558765688109660655351808800178798225627977814002424266421318644620873382339866257232035790922170794365611268922119011848137363167120081343275782182362415191120414034390256076264653705694477787060369634416849352887473259218164560564584438584941170195581062605311631244992167816013466030344709423298901199813660312383002742727359022992052255090951011964068721530120485967645210979760095609809283304830251009943893286041774906810500254464772800094509925859800374456960523463190888293101065372400514221881678469708062831647450584137244853381436629832859898672038990268997283750761538179562840442298058427101805965877700727659105583502110215976091381796487535547869646402359531831758972779719925135387299979319939165453586991946276324385304250439878786105205792008770338273783814823074534289260476613966244946660458880408473287115313758445805822021506118691168582991936224858412292960966331894157042148477850802348968933880254665682635482483153781736955527802829552089905009563565250832575006711048716676992651604361362474711920939312497811525663819339876826729684619952760534668069384633239810254263709656563321403222227529195041169394775124572447008176595417630628217492593655233709429998186878700912137398213878300517706623320458250646359997768197725204138203815718107212853929409277608265830059464006172793875030410074949900590700724837266593750776357551622927562901380566277720527072009050461384707807395318389905327619766613451627850129598504082321476295693572431444642844597833921306053723108970955880951864603958021192297905897515423777670222293522993677963830748488743106675221164250157707755030700919262878053650603316128278777538505072982620545774508081640305759684707136586748322872160860258133772039037404161379085892391075140083368051412707910821662395762104195595431541036441065708692315058059350963505515001796801415699673070821550926873220300088503526991782003033044514773584067723522561619343442864461411602413202140536966414800426639764101201180187151017365292431718197660465470388182756660167305562228752912989776433859807143438952312864614089985694392597769752472471730094243015474929194632117822654345326717757441536198295103689887298482561143946129243973721541925454888824492583060060271301993840237112810753701194435112066276015474849799756444304405186335072599264620422131638077305968388552976940210904662429313466379849457690556904921076783952866138368625662070192967461051463669533499612904205621556067658789559446884955591160940987147629332169307626651287747535910046574717974303957481895773612277695234072032444273856835482873766243672328084469434729447264996013953212797462002912753278695467388228727392590355612983470507464314719723216218813777991396970568488705256013066502988467865354717251684125689209954484333707537432460481727054198868790559900019018110199707134655553850085765957504417268652931515499451806007077127734893662441423380969866272131115924935350824258554478439402911136048231880753059383482071596329860871094786573919533525081113615581376132206739675768113120500491625316809412738403918193499081399513664469029971816575057087845957248355135281198015483401478091410723466370625216105273581829996334319734700617721849906087291217910519757553190780201079395826567582700225765227634298785297084657032922905853731761375989508516780406888917761510703546496047550784489480254638181117752382587518077602521309742886246184957993447350028663302780688677186140936440686420435333690988818420362073681021915213933283139807777751804735456932540643101962521277803957787946337666039071250458875639468607026138873529508417992523880371791265316892430773878656404900018519076006516669823893191800116367730072317968079221368223106430981811184174065481624684067687806355358614654664600035127251409906831283423590949499493552133437515746768163070396351957207222730313178326554646786480753773837191923270605445648834773513243041368832124349214063625572625871831220693046057590675059377902034611589627065863574210889652237380054448497214709328623959274895186170195343760737834502810761522866295937615558450083338373277672140769441872311100163777154616064360161145625376456863024839080992245302042186204828846463179416371993322125258479729890781715413600547005216072407914643979187423538217547106302468529061680195232444303919339553075488748846889683523995953290505571345007660966947880032039716640445913701844985145305339095714413188753400406711114399356970190198325625434590511188937626897453607545154180334918643987500550791911605938145928809555089998250430479816224084416227651903717013141832142911788667855887390784454620605912845448713741277707519915410336264778034915222606139803756991694131369977682157065074821594191466429337149878065575780072858176156720791430485401226105665860592863550889239844328425378024235080431594421355221691605973000474623847890024622042172915950994936108868555672787894897793135325712512289667555976912810327773094162892222485822047484332720573886698806660602455868830664110391838644907752295614239434826399328401383256472368610899511605220042602908489048177400171207739814447425827352701834595515413858058176529084130572279910117768680456826012070134313074248828230975936829573496200678308439128174292053284668616137984425989554951795344226755035978897882420800984173368673957823265495787524613768329320927581394698911127997680476888086221236723877088387198971116554476399688984194675063273695243018284382453437404874665465469276948394004612570017981187800227706972473703354371822104528576669814886383048370777860590364392305336138303288107010074534441955874179840532994360208579277170322653566794942505206857587764171877085595939307834184915296215876097759835714644577144520600662230129489788441691782334898969303581557936504893096659314408939462366144239253688108283948004074545810912921879092832269411221023069892363863742090494581910896476586230235742939656737742228251732420507232411758157081237392543104373276258671217746913284383972651289571120690888127705619311113840823767007874072322146531231080650680171464093602816727998198307361545916016103491306411610618326259477448254149053528289344512088613151553522848316283168531142811294850072992895832047783506605408337261164884609297253307420066661417271832470904632695822522111878989255286869928651295873030935585465489826058455395144394920615759817835062082952543358703359716551081325020551846295997371121150177912149795387412716057559110280857859240137299521412491804316210775832921386875239799314877181099646536233170998910491241315473043531708136624658451167514574784540404894714847173433415335504165831623944067227138534486135080193765078169339748392731609341556362381234756556443412661162884276122665967588654598695278504902573921705484087146067211051334255593543635216975683025061058679702890214261560373761513957140691410123929427256286926415850449017303816427817461159295225676953940881826801058066261184752159715451904076770829858614205794532672982184883491374816520008443291122341102472163066014600063300784197993496036665377452554013905642763510596445723607123211242193498783125169416252610377616257676632033013137789446983181383053350894716883073079132116807010810273517001796775530455248000030413861856156452525548631656815708111468417882251190446734956197870281338933278372707463366171227844690642689522096895154662678621519984691601753621031022812476768126280932103588961168782208809197149750785176011429787075217907432591798272745700598905564785291291722168727257798862999045167590925417839012906975321187487737203975487598060507084463629349958328266201081319578672585321235032878435780741845839741374552197621014861085817552123854703655609243793772919683345321968242160298458528969293516758431404434525166479516141704014045537406628183556640194300562944240759499646813349275065647759530610170062884705399100636851824790582428188715353937312335681166624504088874332718022507084072896626719342211194887639036771681161991672111280325753394516850761300669139588828954932545363855432098431745902706235276586762776259219202979643235774350834788181646615604621042708861602499026019016570815534677076742869706957445174889586083475739650536495847118315097922634677567921026126431842214398637718994768198896662793142292093529769012549200184264922727230690744756914193298069920669664601491784091400525236541718936754296935187355523980740611242044921637257042544816574512234341531348580250095178805502976819869239229094855078743550964610305120357982435912617985558912744418901887765570637066345039337684708535284474854237910276156687198696071676683397955193922023839764379251141105728422852328269921397227523609766942427047481298921905402097612827117457509082991017400261206978766165666980696718473332692877270639473344980991712957613795404498856512359420820396597091444277481955828350559082163982901984749795829053744888242977047722113229610732625146008105310396869342302202995933634855330903878379254906578260803374994762875145053507994899562990937185702772304344370055130953163896197163371144314104045661915962076767741829366755393375919295710281243830464181298342402139388945752366408600162435152142707024428470773361211159188934391906084458812854996305366821365476167946982695173672472011358650795973673886760003076241373853274480107367454493760186243560200612549528375211784439181108963226452575107883122852791707723010987966231273101861223156403573966409415962192849520799844969133924453532290379063386660450753450382145011867026707947959586851020131821325049857865726937061753737822111758656488843221478045043938309400779295158554972779534534270254678292988331726424256576660657612145864005676927112450453220072501381372359615338995022400787713145099186572679226136466043772231221424520250305683605911422837951804013011321486580413533188348828267945890568645754359095229474620290862894205561935483747612533589330346040509244275946211022435460519996644551355112584678359916982048762306281683506047601933585244709146822531379542899612797035558469094867642042013476255710388977906199312667302486168594589842086317169154945466140910296877411259588062668713377970817466060139471918845065884844316869071122249801541494742750525891924223310826201724168191889460406022950921328628404725965765011326674392287730757092251370084083349135851294601802237750650322485693671840953618467904928771251403952135461765503831703534314832431869448177408125360418111856071761755963407964172369601542087773085879558352439551192005096358467661590632493472207290582391980706117332609722126174291156145063888970872066490314967442972947587917635431839120480974848657429936953055729753989993118226087141970950412168091771773704722508176998799746144441723326706324455726401885106111451300127675910332728867346503917233220442476974700317132290012248663561615642602627737539481182728288534787190233850655789996896190190331549217114164301974823734634106053060858124303843433213737135872502606223621004090823718162231079298654401918766191809417046782781197575131458257077548132111970101028136740903196556784699043835488627172852450209146659094964675912276416451703115974851711046262794765834374057830732967747582213849497004212116813859566682154707011146753564142474894482810351264853087804572994930741659292397534107251081177004274169109551048208088537356168679518152910616188622257468330209901338468633038659014692967664935897733845425518618048563519041732778560860131034017928525003104834770422018026291316866905361513144703890553325128727146424664423296216393135560776366498749968778814134907938849447405566731664386076948325028997611416763355320041642713833238091510012213178553421645768093249078140835309308676165304509066647443701101543875064523598150591420401729145509868908396243730052325252357337846818085578458314152641589386981875077331327837312400315771470265096561314695673388898253178728868723121353163912178987971947591444476385058870742788633024732352610194741609176511704077119839338007573944505892784998600935770939175229324931023986567502707501795017420237829947556331751110718119853468823864417421608464650054593512868946769277177962664810725611078151236949618835914233490853441876360855557432402673404875534199651378680759818300040751833547905054361979159201118487773302260164626360916751780957569713551854331692449736192722838132190125001777869199194937132584096700689225469808979115432000623607396677004909497185561465701704787681742906460458374115231456960151896091836957858487586186237338617436108512525365275905224507316084435071899812589337721974733859334039590053906540542445141652514574730803104198944704173522993528226676313557555937527450082675809575093712322384097329042411308561370462338554014103174379300116511198638135039753510427654791945534800202709492877010281164539783607592180993519871977694717170236853142056470540696804658929367521128775978934807258807715107605463277650382386519483337584087225494558119691105412099186181916561684035451143909905726849567272824614245938340433798419019694805333696454507012266320410316315975171011210213170784999519300846871004858440041732127806405795546884023096176334199452254772212327596501009897268779688900756591395379305654426729358027496264796514323811857225457910094557842464634550379746443369210684428844216286248671333242255143801349722898323109242525124378618284366335719307121034679256453130749438851251944236203620434996254391551105747476031937895558615005374466800531132093843055309262885922358806718357561555102806207101806738648795830729441370977019022679282844004279449219623965161011163368668841113143727340654578390625990605970514635027895598201723782387627827131088315583231127288527966744567840070316480398779530080054444149963565626474054691935664800823318454323870480178383294610847785229435339729963162218693410234151377103769883952601618550239547047762357822732394791819460754528711615078071118758118501465777353533456110409125545544312334073867827407042806092084905754966899041494999869113296537537510424744832128535894563215809487879497514106079457340430902187107996701903084362167437050502929150663518164967911857582531943450989188102747372491744969263349277437828650123240879225908290524802468766198804872861001833083645394484547557652832036946475099377373179453073650986491107507954107207439465472961452977829798302253820727760899908678463559754443267997894666278226548345085292954153304313584057788773822072127281334188763448621791028853940508235062477335353571957815692202353216117720133261721639241816665162738949738135335748446287182097591343380465308097929047639458076530027147730458780852029316913590893910681670458514853875413516317142333705236664765862664682045796000607014370535960951360811671190294459912854413954777089635338118141026629844959406144530559396870036348500214363511685922405724592220732943128211358746470259213013432597767407378546489722280210588391482451242371055419812606744287378991556714238969514398468816742087172864409026658872580925283041360316258725698168903537439736614243558542524431243457052729739767020413654548158038892919048728174000884662151074576836474420820650290571858293775372661283176742904760967443268275976647544968495900951993009985118102597718418253753301803275635741962437102057196578105580201287345473627915217298812802753170814759701686010110242399308450159615935394179081981310486774653520204366969555328083532774139423639058428510839634451197033664694682541809423569303481374631066776185019083369104514157001191577637480452360218427877068575777841010251994951861253365448705246327548688446165937817589561972824915788665087437445176212128141982155906019952627442528133578841783104591999551072595303419401596830920287668714962311895112818790418858245633782791781386257978152725008393856815578747980044395105659036082382718053075306279115176270030968833102452565936388952448992638685982416298068034812995964133481154203212859040050068951484946760360275061811068163214093100352518496804399073127785372888042872625289673872612696213164770245629162534741853027843680082982386417678232510278489015830808467453117416089197233648909377594451353532238452231002878939924591855152175131080961567218328188585487141151249427030862402410237088828964442621247703928717275834653807975324350654546325702088351405725094392090363141768073416636383772931085297177648791766473400855494915516668318080284143935660274975549957961383651259866020269614157537077952205687288316556278085025878127622755795379880036004657146529672119512955179418822243918344168752964844284199063025378067563295559128595147304969044142095294265773892739449072057748780556923204903608899743040074920244955730841511761066660088837318276660597300409879692778742693342154119933862090376576665580641381086000548553450559199086489761496976980032103388308979040769391752476580763326050631215979023642400541629119253240559420323019464572344137701464167292857815089099358512972265388936908895733519285019962447727938556400791811536735293707157618443901697535280401110614499608594382027369664353786166277083319562414828662319126336741792062797596485879067737653476403145081021357624241203456599219315822065899931829467753427439922810970278741558625740240858764592428116269357275396506699139527992924362610389846262496153398400449082303473224781925096332507385859152198547054954369253505244298364736099573773466318673741998153140665608333676038252446484311089023532416612167926024987307113400600442262011782239484027561454427970460013302150027446448437883044451187563222847005722756669753362890017095117638322997779291688641982066212344129020071996500901361940449782532642235821085807426820532045805157604305460502892786700832464244781879248640829209336191731581307881409200434557383422781871774759726463856843523336427490620978561056206396995702205059216139005386782388299709448214188170526840135899109851682817535426303006180997162373291472437032226629381399526742646923239980567415405782086736015109421019211463884822333426910952033346640311229451989321183163267756585433724748452236875519846957877103592956516908689721785897675283462218256347076551927203231887245101191492156337160721821233929042257344652155933046681593988546431648070457923299788653844825012465248901097051366907927804144567329595018664917379736992816491423514231083241966774493087182489564796283353597380625435404785573042289385568687741675247770572809704906466696202255985141046836281272874091548389469643750123867496437657952509009627893554992252324479466610442410263579252341267142776463465925135680723147220677598732463920092289872077259184444531282719918914576581403113813871218214796257099675710579849463385295985814008499396812414032963870447876116732143085704025033116843373577577137199680147089797947533013382977633874121176982881891377884568504478871951437137412733670492488877381453184641481223549766022736842055363055402476412469869668099244160432699927603927903628907254672885643214586831481032621939166302890965917497653133159913355261943598773545792142022662628957891727784948513609578848569325021973872302169192977487924446793954062447843184600600995099644919049612673717017146321970265868019532692963429309778016408865659832736865948872528056659157118463637705834693797087576860353531149872936293669443257641453126534892585155891675662147675065453341467174756430442211138597915725498918658672905768780650535522281832190885046244643013799667373954870063545559598073742460303702945953585777952930890531253991560343352474873174455002463985160154668953932565137882155397395314255422973675082578953186846237376342087880934445831768400167803991044576504010448411633805218171433154212040982088503608607414091883466366083191059700570396780791342941547298045863757333897211211237411019859240453096320277929865868460844311468316424116375599595882026465547257920446652593729640760278870326726309615772152267960797994181645422273257132044627044923696562590059621812901571534178508022087425733049887030902592550156656240009712892845479679429986791658820687301155564794052945735234121269238946562483731224309448317464431027767544775795769527677568648048437322394712424464888107060527002418031522089386479180934403925207180308661058646707409666142357509132242331149552615413782368263819767937291296377814617519843458373306128151630455800594269319356229494417713364399898153228734459350692512382541019769599724154085269814937549617273564446413197146090060856482084510821963700969778062473191183591304913021003537679195584715834064335621376104425790530175603097325026648638075787978138784026523405324696978671454643484126937710225566334780297015327443838006212006275501145685431943457080270723370978757805709134143170097757995933413250292291603173675299029231964033720977754195030504528264277797818211684681964612199020339570615641741411891633773027535147904590051293783533129351427474936448086364174836079220789230569763118272984112346904165948500089476453350638194001796716627371237632800114782746598774086177922381087268625187387945243276554658295942740747823092291729082498108133270598709111322560051292952060287917033848468401592279895969990509328096579921534277073957642906538454458537877910288247516860182000056260074775938357365016126897823551151070406262340665845182165685694461385552938788764017026434755028125183369277101017015574073286349629614469633386609699863907328310081786365436417177333982917960697575957680752899885623762422045190850081581568433177517941779185651248005981611763980320335912960120527023122955820266744137314336792314781281860178591567027303805930797666487203988026483509798460736218361937167061769291355777027765120981342058402002341163672828833312567626529364923950300766959705466384946300464686173358051080675755459053686389896454118957841367172127362287595112843480061895254500810862094445481809412120913779803817860972870249983765591977411025470520025404451967298150587585764730542139763488685974749670110351052266148968219106429289201840208871620130920125615681548455292836261690375699955498340764987621900365484894480117509689837766988897664326576553503964245826370675371289817129447839778280915031149392413396397994414355132049823191192493107785028415009225455252849916386436547410668559288906500056729541207094545101955181355871050252437023654768873905227555460103225561394222356312434823489295873885371936614987119973965932412541083616409783782269008889054376897073605022332553334971917446037055567278657116016532926437696616079595283789399197486166806866236485601042453685983434484637360670615795030814789058454161690035424085932300666955727656760352647951136329842476563916215749767567314611180423385773202618078896067925344981379621685104677207707068071095655571689003143660508164680049185343089367429051379860798811370994737807450017824037048995081987551348450259255002462010321216404696092785047782496692933339248659056136661131586141189605204113266477908266758415576735424336521547124558155847306503622470758221340916932739273578922448107200768507025448154920862629743717457208705356003340759337722315428121175147169659819305012047152340027269208166065764298291599016320921534547725058033629107506945265309414599964370123672225747909093379692830452785840654905846101538790789671671314663956493866020686416553946506177857159148868013654505854500079111131247807187207407397271104034996775996752155216272083630779819605579936142801018995520600600840699708150847059930415125386768763988354996706376007233546778585472413465380690309205232247757503624148803069925296498105886510011591412458366140608007300007701936210109130802175987265467791177521473845709128570980069848507524039131148764158422437986849007097485170091559422127440363372759588760209311019481487568792147641327859943595350770664837870048957500111769856366461377772953871641446673118991956146998489224566912163140013089273911065763610099695684284050528761097975155648274619178308280474120143659865402024087810368043487478630619218720097384965799484859929149018869259509252486081518555502835616337097852194730460251874205372576298591762096880350428617486717171285797056329369553087442885328568035935167120004744526206467448742970193756840428973225166123569512944209461513644844902138445617402625583565929054336397804382172903989198455772013732135677800660591157546620551000930856288107554413616291637378018674419508421783668229154404788152225564214578259900541902873748391443308238792273428012954324621889690267391759798509904611695519667815039368867859744267489505058185999994083804069616709736009222810514400046124773695189446472252762078598643480706340139014098062280120227324861559991999521647495901868569665666711852018639683920625951675613495258558012310085154899524367175553790900313205907825187326140125337452288037006844185989932531507447859123623499781892453099936699469219078087440632755046893852844992848557132677721850809855775791722667474111782629868838298791492456178067492649607771477936457417203210364316919281504445288385133369328970142153436728204303404521605520999568369899101911331700079090613278927918845179064916490291729173229367205257970892603453450622615582533156043220948049939904193485588340589550894130564610683651291227686856111731307626910772344294938897814298395552782854363607593603731982082743281549705969903637073261245779278975727146449252108044174449404618724361338280009999221438742387982314698680920957969583757892451011331574243114911183438257904900883922300643539020619676252383314299253021802173370059971995381162377545368218892407513625505459890896882766614097101496854685962338400601984803070063551593226416074467196527402091242378479130446526828348045914016300464835834218983370329883968103761625359043588725172696431391925192433181121819684683883117895883323449065147321851808580043558813442253971061992375681576035071222789985962629241562319234502498895015550345600193666102493522275023777775799202674769974879320750692778937423881149710059262840714293268891345650365461869077698413401886826516813739588218844641960068475252432436883357316656913612880774266530352572634885546969167864733202918154050230331522233269717322531435404091923020814731864380501984600851473964241636313024273883483590648848794281900177478872534332870366979905622345831623119606345039267852064511688669721151893752329290435891428865844491788806764206259940564313121862194728654507147455457140497767325636367317837882803838210256838915328289051895951204881812635534599720843763614302668785613533280107790920796827034559855764059572904437341372796840377173618718422160853017186941670721231904713980407165068709243311734315112602512497333734530301248867806355282140238780198432930687662858237644100815186561421729285933341904764389635274515004921411915788108433910048613084199945031410482526260108964946516234199619776712771274115724075644127353402449201829657083501444052137278238782373255079097371050336432976218562276504164655767751997549060284529190851595557012035576259250133549498226302712238079803300251619912181739760598411493160400074731810427335325382606808935928273436605049461522648529903029990352186031343190852558180058209100528576074541140354800449046156726176570921467871226289025554922200273236871589268638261664316030438835007655644185912979506303255896587832422991855666465468269574494690196303349217816113359756042472348295942736990600960360654865360653880418396175229449042320750684417110250376322298979919345649771730782067102129602762048786255374248954364886805351733663214251136511795984355841259997280101999295791261798472203273544465685838359636473932108942699312330796456119331890738630653974638156368971506554759403943742666669240571153788955192895731527645420322859183210322050145641021529325762126026194998235195580808390227878354872536143174784686384116366706881784234701298491152583819468902493440229015870125360608722449047204225675459740867774494031749371494743047184490635843026830151724301179834518849292232384753741781909395702273562862265899976240061202812136944836526566519890193730757653264875405155447335873175965890464222803661862684198076544309589996716860763881568715450845341445028292192424911551476054699125339065504668609944882448781386661380153246490494824517911963562004653557818929633189429288249957708405596185715367618003568347412245996308039823522901122580935662735312093974296675867114895114139741237548807928387011994757607182902726447232356591978064707021391804547162573038198856435431751264324160719791900689447392716346359646091398793427414137178109940895248891568568460155172616622384258269692735624242884127600476048930525931148006798248447032817771035676369107849020950700180468371766755983628926350689814571983790219712402434902216571944793437543207385184416819233391204355510822714860091091561188085666526689152572964074156900257168915442294286410346482308995327762654349064529338175545586886296839659207050344945883116995221815091686380739119699023808427132286062322605832862817820678381924857913228333183332191989680822608940757538226477384426081415418770189203681928455969935954830532093971719361500746275641057764771920298338358037337290877149310954991593563826414674748619829827543168886574963492331366816762364043875146372880567259716266867239017074014016602290057575635952290264619880000227356442605975920877562275639083344624163513340289013021180592823050610273273759840579165625002500151287877493544534838753127599664634989838719974923905863102309875650677793500613953919342437212315324115314734640491966349719831623499447023545020272042750121602249554457372324560100652908707105486959271535439211005645172709208392216563262285787971839356683050853503666341014365841931026672546359312352618686633349858359784564344346243830418692386925091653117582454555702736427664286300902462856041120944033845638069631798007675243934886096035982978581547911096618991383253213193630510736340748443899269916355617131689457336591625462276286714655925708059412074546915338653330757786991281949583550037690494972562161110774647042406899147288694483204691283448927103713270119554882499273543860465372346091868515214761770917099890784050034024202190814053006291668189164969968392446067729793490222178775191049878272861973065144328562745284754881935029394418414414300717267097484717111913117638905525826425102364480516759588927490435626821822187424032657461278042595909411966597985914156130564868345029282078749905935682946789209963941354626540537851360933995218656432333183687287200694895068207804892095834057643413222976545900955340545241524838725079942976368425694935975824814223015444850051526824559525391209979592885500098758351896922982901647455686056961587884123485919597245058056781755843113848526319595021987709329775077988788684348214668048104722283539406297153474632797771051050345824923643389618168004823516535990338711516889233499493314927278289021928137291566936375531183401319817211185872550689096330704513792199972838237956317681701760291875583809207259073963360524598800644897120133536376076377378756132638710544813824095402817532844167520022394384654360143161850895376316141939919342542639511405682854866425588766711345470867008770847822382315623709521409376792627655546071083213872140735936688987196912175724525011659844782740553173561061990690391343018910365745953588027703326751697201055304814577662242923978607046733013970133975833142484687405072836575436842683403557952153906152572582539902392680544007186729564529666199707677818196978260305506440024050805250227843243504795826280273129989289534221004244595661635236594811336094897667714613751656039141650077623600199033337580770332968251307252248408230058370669263672390676172508525658702317859356900616366692218766377848259095071408452198039362271455620049332558960405312303048425401961860534585752828292851102859181576137145176652038569400501809816518229579354986339436261547341884145306251880537399672864709492741031876846538357891843070824259039995783387815336205410059706348385687329089558234681858236584474801687984806693874355512549803937683598792811080632194398975260389181833767726336695925861819619076756221927524293730061599568059089563823089372502901858212330146234916560413640024641907006935476878309349702973763900527615040809343437530348967724757378000079254666846210163055759268013436611400930383770519730916143234229520678422791457952089697831238518570977154436971024829665245074889483716054963168527837339235436714196716686489355167760823704260491671826737225364070073411993573676583461251755018976343686774515918977268017473887296892841722126510641766044948725911857971236365013408157627212818795063977619285011776893000491428838681946010845675414521270351603596169867343870827324998939605224263007727918340921113164924653944335001767665969160108628811240755254515577230045204511230764346381821841244382448536613406990410432496980326211708851686514175661522419071598320731061574741409986329604499148790788699849692087954831300747423511578691383586904809134207617900757403192376846748237193994741174172120115901516621387040396196818034150853783530155390985318537922233855864052599336970708650557576132151927416981995054204027153523057720306051868107100843081258425130889320764228481534830333424057971292475002873371849404334207941926896023483853385341242221715357320672615249798217137155602919084267104915610826962389543382721071681687131290001302592487048621845261932873396219023524332711707497590585004527007128262537957937103082913495939662273662204386394648190711321901956881454099090849392023833265253450577536626266858210865500597511851984872704207455221118742159159221054534059467572111968811013180162208234349047583843482980644697123177303274745663080339963030984432267518391046805364197059497882089083119598036205564687080459722783021745725791133408870762779899638286622925774826209200226797442947617482334401666093222754819216376670815928015672873470693299179495951767938897423797034508217440213206243538599895246523285671110007656454559006220795569208594575344699880459876313370748969000155484765774588496502599410213506567295056704591206808401970110181445878543698386269899058173207235874442512419823233535528391958217437466675185967360364724777313851427974560436195381734144685583804309230515159025137562919420082702009100514993660743371192111626802483436593518514006513428430357512999788534611250183759794510862839873610942153815495914766478115300926080695315873078749318601257771756285638586146996916985566437575581049338415379815739308383968205714624831541259136820633706361519727928717777027320343214941067720059608498233261276086944836303138447166653504077805769996921066343738364864792433501974290213538717777920650405828151915204438096632486096863274034071884944606215780532896461699461414216596783312583006112132399861244937437830306571366149555570034864375101943032757894040386846721176133034755745690363106712064035046232286485241119617478653639233673973204318055266999656447476418281903468725839573453097393116643130190973471462968917174251888232796696506219272240339262699390339977122388307138471522971543619452364269252590436635298301444995044312758130831537544247691240043080308248692308350834945552412104599292528526716769972707399145922193364702525745458601936565123700497238610288249289737934959068064895417221747691012123300428647346785489164056556775364750348363669182138045954712041009933264711325774881951234939867235932839531635300822923511816047591454706917151151416066731143599610282900476188380814959868604555660359756033077950552419499457179763682215883727361692694520637859234236236691391258345643814268491265959689031504046260824372718687157983806074833706309999599609997209421240115589881541746034558022959415532534656558254885619039981590699157845363981907819250119817370144106015399317229022954347962213041103112449143821663322224365178304442649517257375652352717022088685847819934363647049942530315649666428755417931286406025351875218446046560777037084752434750564766803173529631123622784161067294936160210078024206508992515970456477826574470343998697837788846330999846242391097537473936245069098345388019387247496140304078208711842980258572205233894755147878040929427611545341476602987512161370251882567528725277372361672755762628254182963785076551142964524221157496757196687704893053316305568101317730756317293928270720682459084786187059663276748565864836648404676720375613678793528308837175668867205084971386853472985148690503034198817395993822191957561899415685296951848144695726279117988497289445794368289728922473099567799292587070502458286097602225101848004787699254375071621467003730557334410608285388278467762062665343510528438127619614153460610347805665589328504933408917309603140900437070126326058010862439470775521438059618096461559173916240544398909486242499213517480813146758184993065501724208577909870481449012230617852168471924920992976017388874664320381365959780804901084053234980224015877387569815900636296579928861439686021410821960470131501038528620669688381399440515370279849131945440744821869012849445904843136845896630490145550214598355673139237907149378211694996056032006749716900341640252818399331246461078090160128029207710219782609813235330044257870865169936839884153563073093203115905076716374144070071021253619970751234783201220302653514545903134361270103583122006270864141386175150432172339795063226898079941884261448295453306671471876668859565146125246673848431080249308985641248621902957423563981053098791889003318161929440779096100763693753685623697224287631812899141067975209310218263932262112035062587995452478058644165945995349987600499321134911591383587008601149352754824240857654549100199493693656951733209485355036317632052677578299121025953117667004374955363230422710072851898565390257517652507930125319077367307344174114718400023632574479857200278097047634965118354809171282130118321103330722370445236913716718002660841020622423445237712345961757234344391347696003187516276185632218369951723753900119606347572392989518521352773543980565680504585138623689263610278067588452564789864786329057239784770430879577098649297615222924467324996305084075636704014690285290608758282033126680223071014671580315119177615304063637219727698687376255554876414610025123191785828829994164599373231642239886176393784331216105717937723260234496166346758849757013176516448740378101819282872247469452756909549512838843107297098198952205694989369962203152929717861723872223674049648479536216150371730361166663764015136334722013006613434813021826363475096594874801036254475762711780985253470033016932133614170823446468871234936413204594160034149339467860092011948541416465841970388038191895412206301909422388476490320887210907210995469125901364159364043650084458785541152366996580224754924894645322872697703306101308632390059376364606899412072098033062059010489141990107355532311349582016462096089248607404242576291806628779403814063417173877188820108341970971109956869271260024196346490018971207959138674938487480930725531251305505587034106592445370362036750751188187135183525226252718677003360294077157163563670362781372781457569233545405688279079941959274203463535309734273983385734437795059858567200783545556653556108495317238990954514861573791786888364406913185408229689016251705296685220566723403044907470701323879183543814326466066940136413426851583558665511530758133321005397599108755399345872376526841443715115025497163459212118195345053107568797241438058624249261467129427797845109884919579345959489241696445032385088372597796549881956488073740241519520129436836354532252904004579538100095266081192925811438455404180813126156424579209091684501245302503842027586456402806834009964536348557110800614064444702254504440509465282298298537917768551242993389119172234641120519772414545197058964390040076303762363318027223493470833101579864388324117544853876947114092131182211216759789746513267301482021071302995571712827361420935390939908841845312784398727647699427679595987039670640071500474406208380655661919751844248960414208344276062981982332185261218828070296825571514251177881027562282236550406228903954987250529749191586192474844021025456274765421716010482796853897018149831977464164127560196755078202664455949378855587201594355771448190234383041534002011449031300992726813738685528908649501802173744019517678018497413318513148287059283970774552435237625446109207148293001297321009035535693344428286143254725082348976011004933800125820935659809899574492902603873344912729592911515452566639972869891244779449722801336329990517080950340550614322586693637424096365910857653865250766464896903783603362582948013498865223767830451800190605115548215391029085940166824944869260497759928899590931571665657310452707418738044412262745403378479001893291536416692034559967142034208778060328088308725476456333790085395374477133442348291779669086690228415649163453877171083116700497721451198647234512725721719382545757265668800059541089375506175363932166145131674539942757101060888569408612026232789727955097772235869565664015183531820723270107110769005866623823473420500106118276237592773053148086177002165124577451726830394163639668175170336082027000618543659830980974862351909224654310340187177324519317806262038327095490704559042483900589553358379854151536461425534651209508584968425202202534523040111293987200470384459470644482043945738483079586230125983913346295557513696585297872869408122544001443763156629493371902085000609955380083197264806432817595016365295977712446062935348873972625456790780464424436243745758330082401018077047382895937582290945564309993969954561311795787493590442886416471897065869948420301656232997415069412683616927694900811911058254279797326075850900655955082403961899497203194503593472638226791990466126212274886378128462206481973963697499026700247925391846797196306423082818749843846491487408265667748489236211217846166841106854477864140724913584835078582974335835897636481431580221800448702457761821297942232758687088596179885112635706521278503214267484798278289425603657058267464611404657886180335379773876177302280518287254688729879254139549185187840217005332412168959689910663353378761585833613873736418196819924976731996617282587284804796583730878514113151654834835390423848467633249100889756840655160156803347875705743202402300408440870806681910021183677797476007051446388551128808329186381094364424658897084527700655578842332515031208824616771376816331190279007782985418272350990779728285988967369801804527440924565810927846577419213917758385254857811888796789805749008119900479881605306433322150541585821982601819582191122732397446902676491314889574906336560496508077089587180242220188704757332326053237223941761498812522433630605627553203913948082100200518249631369979345298247995117008146200245316973708619254155684261767797320622415918672502601160851975263928804434267471701952803604413529689635740579955358996502004675950344270168563741657981886976511289581826995237500883178065184435172358848941339464456788266530576690839372885699795057773327848954009943138034893674609057497433232352436188155442354813167310986195603890581439186632903594371866296325173260354391926662419787973567599814458020906311298538286599138053916521204331085147482801779366137367308870907983260677372347792491824672524101798443325788256201838445454709102645915080678758834723356182838025892839544112842806409924040031793230635339166871218759047644949174404878168334317247600802741498425462991956011192712523651558475983101670619543372143580551658201959482410378737058372254209496378294505392403363513094167768230905993223520957009528612344179630681050126625479890882143123090771353756493412087022571848765532524257405371631732021784187943913234433355062374288773402283396109642253129701889022241520328054762196323929351692037478379228484703167370855866288606812026845693774660475861876465129781770195104510242380484350995569186582121227206250110649800574395184848297249629035497287490345284284697767687187662269002505903655078291822205608462489938947079860533169064503730819224565917793032550284757111668225390399630113918021459177492469514177507502323162592736271538150618420998221631048987278070202288204403831465201725023993623156326567717242583291512461643286144776597129446785927640899159725746418167483186097153462539902403917553077281817988113961110857684013167970842400343700506744915063431522593006751790541607344413617928703463847079432199421158657359367317025722902149150777012861432741123913159407275470230520176036011573437513750910818136568577436686322720521717067574535766997228753458839626101406016512938345309242865392633174993827208738944715331784830715639786300184615753680455629109076473927015119662663283168125456647412526579612392086412720308894011067893792660492499765982001261699899445097845696599820745434587713000172133795441434200456319451650588687421824012462810057183960517956950454626546029847609023934074171632814560540370218328771442454030320611362775976526119837331502752069683424412299171691508568712078914448960893110869192079348914860281275410683324218746881778707586706786265099120199014674775365873561947856559614855801318193242132920945953144481920289602607617352826682731177750891651068395978149863360040716198069171935129376609894470311779596937423237474698211289957978441079711075673877437970083707826994649324284754575451366879101452208768151190678235106963445155029903926719690160469361476857653214581895679201478658851407078752985740050620312390784486150722805618408650489145464728815810609806686845057078304115415225934426992934269909556982923178655878236211011586328186841292504972590579047478996426283258893146349221243898359660105567060360355103490702713400951532506806776218183231729964207144856491356318189862849373594570107161665049191982026076470958479258119268109338473889349931846764460145668319593628138476269630945598228654357718476058080661586022456021321689503239743729835877332992205305373705749530163524344352992520477514714874516026877100823334072094915515093085298699825163376169326902883424975315744642306008699056211834186395031885539898736045800141501708372428914085579501667709289017531806778382509692428295513683495806072815407934406970941601463426573740556336062304655153022625259696787411619684501109965571112260650324491440523129877965534939480153667911852061237051342885859804835890039490613308428893881429875584861047081746776887464103651802258627704805585052092108521307535868015278325183352539528278027186418992822715114252404992774136412566086121899253894039040069206576943084771336141187699745719273949058884473146208004927440134688463901113298028865952927069593633555682208502103820711373327297009880139436337233392132084035850434356971574282657250151137682812646678949524720847591549285437371840673798583182146718093264472694580511861575922651586506571366354609343549680713749043946404228537917707172458826099083477871280769094788083591934746385252580042897917412040783733921739786938729884353522411853721374284059818503174696445921669953329606451819521729976356214296739860589019215548892526186361969079453041663306537006489587173795869225304593352675149824894238240503055967823771260057666254327752480073481763844039375321613690042083556991681022707468534754021008395349605428569561518907147210914410360924187841576034065822448066717079264963602130126953866547609217766000482210868967605356581842629211775563580548933936873556388157228908325089860180054441052001566169223768672041963821686221430612261111321174661037338463396704689454027355430983271814159565322878765822303657307708183354049829389556475413917602641407170914794994628080872969616868319179769393458841006369385047803707466635547875695933256728231006842600491512943623035980866300554074481789516858698085993113286036337760586897248484209377885684973049789277949095127869823128473481965713218863600523533796488543788666164962793874077839246855897451212448510122191404044667347027497780358709590860773644205430460142777927885404966057741701680647886393531245507513104319567885510154010772859019896418814220612029789226555197190819574431095345997833214532961418826370322073779001351294868947352840863679765776130715766422630451076992981567477552292097435969421090949996149086454980941701438921855358485194767959527455604150042160920990462091967895119243482106849368748539720075125021965403707490516609854857113003810529786374906616004674622350751344254877953558033037401764173853925973457696519417338181069965201064619090720145154145356073352898418526140511916733918551939306848927244185586251826340161394206405140836795762235692595493539633176662904338910219978160653327131878150106819264119747908192781528784210097684369275462244004404550748957307277889153481264483506087083023656583982322243325649202230032474062092615131498396306750715659337633307642646409261481544843104815799162429626859271169613578613472559135323444464828354067794548577487928271484595222775783344522412220989619761683490340880468354839753516206442321448477467601436227399993897299141346039464963358483892075255755592580570264438490129018491086943280706664161666349209064966532568810601743282896404956293815122163184902157237509179069165953788168778134186102370980778444415810545049715068575012967077584046236884020610055942195959069063271799504281720277418559513824730387920990706805323330866571521051366866112816791963893998358764822833787111466222585780843530991656645099837995290287772470197305403968136546944015742181715261916528254607484476948381607002887712926418894236420672822242923857642256179536725649978345604484612807091017841365044241055662155076855522710956580586448630419454385760862882884679798301002444432295696189541740096444319208285505017027760792487472505343197172043782766141776162233881388508388415990846927467282434735698638297341841791752479392836414445060659753552601830315942597659798003318985520867103987248375051629296684800878323629606352459773818840304060450519368303254676516203441666747077395823631163974874432735802638450159658433960818084412325540606412671009738078397814779244273898019074835954973312562983874265128458145615613641102986162950966186194062089751809723434502389329897857437167773456583640948526916303139961355489455072161108891921070114131585831045503528027474772371576616108210758881718426361897615298121459195693273256416154596228451792613265571112455291522916592492244767220497818900153972097289998478140532055162445539127158244045156211137859644838033718222321529830019056180796300455911420551226480891296633165244723915739078062446034228250862181436891923482958776613475364572423921660452956305372083180247929745651814399633611840039489012428160101545553409040329475978397091676189766413839513546839504718412960658104210030214346467912289855745066826955354522559677368319465760264970129696267793096799262151950585217520690628594376237121351710008916419198576725452608046638467379764338385304555643002114481714157750097128222225870358371520458187270866512017441897506460908121143267112956265180207451668208599101798499602888959769694835074733783659382397786107875851821534633653101645622423490595589018945727804377317640420107664790867576185677152381404992836917466484370709853962175608229492138679815352386055728910652968090278920255666813251129393373595484748818360806056298012173511277948561981891350735376734167806847079749032419743494060158116560724220241583399434506529982371105700331365355304592610363064769429010361336525069660439630762570370838021799700376390362528902273653370087609529883049784200945212521730650677929278084409713170963961139935888953067017572517284902170720824056474429233444266699288226816660734876459825745790740747348812284230620110832356753237161357215197897668591367392871831193099991974465023822591007519165040054550901361748991159873280873885318840746777793079528646580013148766997087505893818482843895527262810952897222022682888352709293594664237177970274941197053289554875006933229585391898648408554872077566660795697620800199760534579059089550036094090634119528583540016119518863039327257763570021347411868351797611115900646395423692674530481686402567311872760120207779487202979805583965890081231926742293819348481066622269682452357086610663302219903299164147568499441941234965310208349734490513566542628324565920927559955670274412250868526454478336225818167261662276350695832232427275938594312058893692812977158926590547419153775467208712151864321857885757552299211054724315926466761494572247311949189737462590478139595764142471975633349767541318561636829063248878660272344459360207843266926521805814499219294913562429664800902883136021738811873262475524660195473969089424975524155283972921205462224603092545203554593313898416013652286237798475464497790692299543020743287098205348907634067002283334279611341649308173048406441683653970017614610080778105885480461405628636336334889885986541909900971371906582099395100054012082514368329109582718449166698403930924910778283478638867851983612328167216097644990205517360366609516188074480600074136461609724824258342896966730529190498161403420426962607555194534393360596978654908204787653570164568493786106139117729580887232225263510270739889146559932295985230255427973247797979128922289087516939846219606108851948577842116696352913078304110516369995536402346692565758504899597390979443671166191418182065446661502751406789340820504939706288090988459504049987086015171233308080183793790280287391575332823665388352421570301897815332004305841552422158472814999452898791676216506441467724107301031169332727515733613003857224261449139762987093411477942526138736423164001102946630985739815931844660263315548914806195471210866834625607434805243038320042439069446778375765913781537573327683480257477764294899071328626683040659752788161629338820544699113764520316351588078686316500738636701382206991221704761734187897738396185464863649368963621966355703156745406961834623835041771637829324061478929860990866729372578206277441874058418951874922629449160767805802009157592312037163000756734301967907687265773687553922126065720441734067137034498764307219379121868324884723800443448261995964963295645797883814224464160329656750205521107746864091834192103422238988634825089707830094619742263054879192232656620589486644675244935175501688846372536159991616842134513535052184994768319842442194462479728168901629836995429097056170692277862835219082317403198232177415185479476011704015333424824027069477781100216953152137058774253050809064649626386630510686404049373640829186099744522789556565245553960897697222305560990842553678348370825146674183389630623676041092403054230316759624041886258487934778882827718344492129724500560421001122135176312160608161065069489821477876837477822337175745604223269538031919115018584947880503092475324086791043597542007316375580752732660978368859500834457812855282653745357294543446556001639527449473134629638237574992746336463273063582009435084954298433943388736159064595663117354632013843508766627084111491650669212166985480757676401423711551081836606557855643044530053516699977992508564582609209780317993215246224462828328487614924078158020041289415089560646778066380834715179104542796392821190810767956872311477373848667493591005580824266986023020159821240740236222233156168081359553437232227628859518152618942385261529344693277051903555930119674171432149276246908896970334551217201842795194613957371747889679777713565549872150394461459391300730424815495320041120412098339033897767055637750123893606101158786113725492564616585234339252971346075607699881673011971476011821723028838780999584836089285815491385479782568500643935720772636635642328018907031262675040136848970641195230348898206038556115366424635369959793625534353610760858179007982656823187466951106209197899837134039104394548503561459503998640940467178924520560700190533847812796820916584266918721402683487882680028739508824008091343106573054821070298162974904350184000719312066096922942810292856026732944843973433697416502363730055668766723211525910980811904767922407330905402663021452611170407368762975980476611327692266109348134910085702746025662474179412807897700206057553331181749243010634766371494767233514396623039496407280652137780183541175092261175771261848989713908905486839543045188667543404001836830600236697730816762466583656677184375932448338188603386576103620569643209934144158811744184633976095515222350682114955624632999258791754486333152386324841675687731324149519302727216452304682286604040536164596029399179213505648977395408739048212051803250545068694871906447130333616807183149429364734632500404221744982097273945995879803817073875981747092675785465029250098183452830060616717639262182005488900923912713813464052389340167823338846887164069046263311617696052808476391675619262658917920402236074660027767038806629330611432385248186335740364853433992970789141425103131862364943197987513907344175137128837017940035391628105223161179131757209448847381512714939158020383265643480250056566048995894523002086867625481551499763626495710089439358155397159582324836883822981420630969177060835488051800942468487167165268307173145527746698855878049187875674769657820996301875551985541296579076746244869344165174071039426085039501946239797445900164692456254264613610783400057822880497076967667050748164052508085303841492553193285292711902368603135247400212073943008509883062719670275428069643295590832377751197166285265267810695085768460874846013340751183631360690054299417851125651466383597475043743181805824976240106747136754890983803687649430507278485190906177284355954364761979910422505424921505012976599271108735228483705752965199068515349142371194937668887241474965030561780712196905488728846428110676073769534037264378982955439374118847406566828360504593146839375197871968924353818842165314502516981721958627763850601572578018710775996689082369289271970492125772010952494167671809095972133070369821197117060033737116481319458275152227844847244151485424840614550181086022296855265334953496961058793286453530979429305445120680245228179370161487378004399520557229527518884909553256707913774810950712432849371998923670641846737587330757810293618251129060495358512286544309072664892924450043398968895955666957338239978582499557707715920285204171371477205243827385980892694703478634354604694302034909101873723515458315434999656333061369615373095572532071265629031968640942682847945950597666043953757826732242199797128424742065605481263616142170686052232916929191963957565994231922555627492862438535517432326861784768596448274454221206533990545821070644063261778014367567536133732832329277717303623035030429380114866863112371118737251137225844353363340190989223811854615083972314734088772919298072492639486428920680264363615061188738344434315356403693493384119628880692666267664684819341371682249288140114390185710646080619187552961225447724350570411425784886371521813926271577982333438098921232622927980403460623433420662547263478258412768401999227494840521741556326198971364003968991731568011771378883812076147903635865509298580651883121469829154612568116057140045271501168225952984140755054745675402447789731121288924607892048279149550799795715091120777099365096796281402135541642124957786775521240158396728867575248962291237435107738712186068125388009443515464100926658293539958298582782460392810042478884592106847456461794955307985874781959327370330616422309682710476326183901560661423337652491872769360782405196967690171214009188470538980134513912646943636926155109857891112194665204695725690525764245702425169956875947555466500533494558335679719477324526706559090268755988579452680820317923919707692643543618359193766227517626001510687091577425903373121840445566486536386297121222783838433719233329401973410195369364317036143502757485066348386722599170786079015213877400992261735177300719928401141157240571956066433897414949930723423121679033570909554918782115785909632421521678701997335114974080647198775257484220634502244636580948233468401792168136234563867505795586958067300751210713240722808415166730499747241962893254189356100199345518145009398094229953597081852947491235818049063978940471323349059221717780426456384658354350192699536107073407232748031242241203341124112567635433178492696272036201794444726778789953233978710549641479931668227119699511650728034515897874851576495608631019081869776578830826809004406741590067947761709761787336927795156473486393801013734291106467234370209987458703985228398228040324096425561557056176658923931790596804591409188900759422796571821384500691044009607290690550348899354874196585852403100081639636262147600270368338905770119283183000451186065100525400106418419126373315791682002790235475927945263402085271802895244761580462592132319961465162467234709848211224013981854968524862247875112762468371564185530102541092713392636108762432397028277825166007907976406614224264966938651472588166345831879609091620211889151947231284688516702108113369159153758354065025514024283528786724506968231123442315134562098992305270755128011517121693767272512168428752641916956290566027162928850416542268433434277781364465486417245423167789332350477903840870390143424656497630438851676428640945682075762531182268918523640169776462481215203912699007239163928797779742490622146062459176458741347021762432885071671675668070754801909310010961873498477144786407685823094499229174054951394925031311868225537877051559789198711157710358063371138966022672447504500287677251325907909138591020688063998446119482327231153367762261504465011829847616653835315212357611702016298536999285099267982505652360517062122988042820358540550457907422713736726057232113902037972962846359121731280283264841265983863356590569800784429082287634814357641411897210417825797480506779734785383620140258454995262563789265422057571559848863281975696214092640784174941160688826351254899385199568168509862991934008558272546753464689726183370144927751300865660078306685553477230649188653798967847547767544239684082850047037746899501670879653906349613419374182989884128853167272348924618841176799526293580642271527753199508544129342879370223314172129215971747609154208819645301542768367531742521001193465983444243321717759383919304749102495884661975178350281061876351656312823328196965317298653697018927038048205901418540108263473378495459081960347761755774154289441254329416735077289918059499138885200848392048446219307550239867045811661449471931991994589549545492065468286460924211618661617067477276812780521307413327939995824196285941354817816129228042584205401308779214078803864653596668799857805511359677168526671261765611993084038311829969819716535596977034534464325032160704148355967808633119974748006593090174640941339886281217660287773248884467785851716628383033115300296681443096705578846477028231043596442101074163609575327122400108773643425999271431633100042065973028321282541732916991314707909939468387905204060268074181855435413492260426297869886426978714282670393680372697320147491325942806081116582448430539308734752680359958517595978952328280104946259515742351305003933838199722115229162898444424824165411165046591564244028906088435619787205493914906112687631480162403884009425105125628152830186535786778731994810347723737683230686868262802923924119320093297077805960616116802853045726526699943695697167827827287233779875278523028436964683749663696839818928800126668705518367189209478797547253873078638140219108526499278890067246772324971721833945378970327265838022423581505971020950660789583113020084032175245840551059642814637793432745143479131149405839704388044111178241972192919527614640194588621876406529215237174831292950914857347669133892806281640619186751259865800937682529056155454298852264344306182119628909980491141986158426099300766329188112540200694890209250549363155888672584702141664372155860209695526613505816299369872786179997964356540602638444993378201279603822192879562421762576831693217636350950418930223391084122807023719116107908958152681350095513526982083199380053577183404620230485087441621799777213919120700552486837298821536611795931873844926921005910174846792992369179740275495811968218900137499412707429273832182753866908423604421108102874205704643674051154447196312579712729853133131775220618806651542866388390769841121018852784871429136294306060564730885118325877895789484228239814524257009878797943654521778652346539941724200899001642800342188197889867119214851835319072773755259070100658249385147679687214481702411479686154570170421684540009462337447900183901410831760802886075703800695707235810775589772835813042050865094260515249391545146763059567140009322151498418246536382564574922153951498749744667291144893844939870893459961718457599817731018938080090636874087034911859712108932572718280304904788335617776433583761426870813479274088014730348206841337131215562305593910532854118741826815777849173077091663879316492985514483647977818262220098591369119849348097015073867550889135665916128846916952878730794562073834919486903298961036865146415611353083243290594985649677100048603913244869814960111707146405830357175458174440063355320506100350625057246789769640509819719249095972524227675077436056900601019837210870543975609268257373789240826375747614475298317031412747054416699567725692289223501515535626034497538839564950926768042522901918062252737372112083114424198641391088175500789940338766662336459708740669007237003933323551550877455487161354531376037670842793054782011772913792126892196231460228623450303088390855855990133790755787754232564218591000412510279145042137318212044964450300696866688958267555204119258944610973432505999407768022973721719637489449585736866382171535876014145203377052485676287721747157593895905042720952876378370543135103287335805255691144778753537991461386005678515292260964678927979043378921260981885234201258499368080504280725267340180994660096050286137164520078006953751305867489576934842906169890447024196383662046342001942846503882613997197748474507901937860207402121996184095223182248619238087017718669264786268250270324756584745576367889664645543194766556457174119449486320371263601934701291755785558086333309150588087028919600705160336749985799338580165395974658274444126791556071455676542376822712072815965233645783613738642040482254750109391870387811524952533854826811867638275060732388482732868266204412507641123323862117418935750350816127569039904280884337326429829151577582386312038482029814089447667923799603360785585389736397512711511732461843116513565671828257091491179096988797625260152108517714646467304299671289281591092454788922762205040311869831521516795203042527887297522979993503610556030705598195013791463341899219970099829028832954962664738235418977756446731811280275045118424547949527028133807030315278134222850040646129433821886811920755416566543860265116558591018494944241748261928340716060072222824495364617664015783550918945047306501088266907819830329055481928454822913150866359885309043568686846497174458958604911925935679450963334458291288359935227604947390592033861905941312656151237343306742554440717979852702233537828645655253857184434233156225562266555627747786154328957516944434892849809962550474834499367466940455726145451778935203988771733748599603834965093839842022296537151636711723354461760316434882508159365963210462005646609759739168779015170005985501848579453345207315717993497809225034634492266271756501783895728512109396428093977299759035617697388731072628948382102060856931255800706618651385055593213685302267567997535225985350764156488254682578202932811329430408657983212841943708856050204365078846469585233247877063712846224585691193951795973896829334423855467956527459595065816735866102879678155594235792520998244138663191535777552084118233008803918748838926029786084801201219851567094707844266989196682275812851713695606393145958316255612665793417961947094406663192695048807782509969796362363285410521475681105810061563580566509967288204632263723986807022742101977930629679116366003223535611967337670358013276856180273478492601267279132734625334322959113962674108889934253386229542781167623688041501580129394613485490908711470291429780988427670942507733143841685584787488705466456280620834187284105260831532119782644503953738203488132928791712910925135363366532120484310643419059487582365640219216354415804540353953563498843644743581388673083182688969485991172516424351288638245240868730750134165473273686488314394796220184617592132527082873621473268386428124636647535150728758165484463895329661214840018667071047303141340040541323690601159569138060605720538080099826649976528741106740122953569202026059490598558564996339533264964736292050039514166434212385412010891091500180280310899961612618710613887789439479431393813167466090573130694864681739423461814195558024394452824636621285872583157694573100217703208805198842938825028032203330331591894782154547575991343546813515217783546943765275887863361742731195751689105468566738047024852295795045036014032236773324805675747047747179485715788750899015438280259376205918863391639728985050122271298788413096126156189500223622205939717728388141486123173781225466659491956095104744721987131482252785793136360831481341046995109627809869833445434174193325315734005359697228834294803735149801672222074306164354067079771970377451441537972026595872854946408868098220540834339897728869597753812028770608595077989085716367203091072258005841850243049552616748455433844741540879272678012596337976132578866238237259704000074152603077168325747096510957018192058903569664948591880681981488611395870873276778351676495963359289005612045488842617665517985163314910518214404127948389503220913491370130491987164743384875070893206490116566110652849548798598783264702450386808610863613824033406930186473471278379848713047346021862688198577079248199157587618997808921091547213457023614112891937887626637528805510115066736675685921966489173307889491273991681880879736693753187173630962257750765331501935781704548283494779812232314110361982472050561863559432793696795830109754723911838755545521407256662905993029468592118436070177963430314705071149755526640020942043304868961932473549266705699183172575292803119646888793777552545761156438745069199742044197370965611494517136974224611767629904511699325171006690249721705796365637057932519869753554710964302770503927228425111382920380964352208427458135976229950410515922049622564084595668733005780822907646324865182731841127678945810322400023610542193904014869185890882903804715710565948171820161739019002715890064230266587214288088417254731443103970313230024110774916457858632619122593827742401039295997866409579610004901499428234964369842544791832142710597626428545663247600647270102147248835180697690459921315178382815806540212519517009318276885069258255817108171812340289680851694779684086552030648810894361312206827318505392630784309119286585175427053933198420740665888191240357336444255325309737485675884913610722490740031912425707364622747046987945760398046713328056825889959434004496310900034623212191179011570708190459105363839499014512460882563572605822751645000945427407703475141694032150517276062797045184694009039514326407477361365194171584693123629653278633789301932648210487012303024238052878453500998004812574938352371138420610064355026607804535895885764708408532927265345851901629877795390353019548469748528087452855325056307703993624707819536498212522044896926388119694006517732865444024256881609064363722263570043340928522481202552250455129913751226915019185113854160116585869352868600674029387963971973009902475333196766570859232097013537640442843968673296698563064285630172941398047054868772860485488826737803119627990939545810419528769701789767154000541954011079516408928614435192528412181363716474184511505554442297623507748995020824157594594937295822342941738139676420852266052853661729886059545577726226077532225349592341196660664829845894429902171098059633494595197375053872071971760918294352501455673643151368061382917771039222055174224769716146328231972166977830883595943211880280071611042795934396567882431320487185464852783691774069022601934174365748484066104182256109358871500084760219238443246052705780348331056781131997155616093826516455251248149236769891748388644591947416319638001573346852602878735888871030923984136466491275238756301568045097207872241420713715512388921982522479901890843662140089295665621854417878144525149403136409058121062447563905842763936903960911170827998536782484061730070967355910292582704270482786444638425299310873083696859961629239857523695070135399745704091759100487286906704269410210816966319256839700492978831537678558150888651026466058809168937140941241814389005316740156236730307665379545763592665587945596617230651720795954958302172802410422899834338130926324243167329271702014121188801181921718741180828140503242687938497961798263728672607651647130568961600085678526324806428952253860515488773238237585843771572018558550407092029360511146769636494445516171051338591735193814091079240993318893144709447132130905053029824015427439116627529463281834150386229894016113680121206434080962718082026264861386855483902730505244752519250423959392570570402149728311086855712569278893170731587651493480266216991472807993820956478367147132756101769621125314189487294231450100620213386813422230613742227220278332699500382056052970934182877841871058879801395101644606668878246697341226500321711250705325942227209275503289623623391005634200647789160082453827045675969586116529599378633655551284327306992931169772797621354248769886220584680612416850258090571391678155140688236493341481240164959491454993892820721006627621514501379389536372134178948956898275886612419211235800406872072516229302458435618613092879561028997113741951016042438797423976748620764918398878974790742808515501299881870048586475367924577527603958672851658083999435782161063219276183902954982498117162469556463939338428389389583208647937737049809690711079965860929777373742086474416960426095428357800353486217846422976905383766404674209974856387665418571100525410531500975710156403029298440357395139721167318035160085563743454973431738781224307775701047534387772620942211645103269811375430692662803707959406838831178660085168417660811415462920513797430168517956369177216656493300921998107290294279906415168668269498192042636295595432810558717182966354598646823525671827745503074036991485567660933106774829638227288856786025416892234614003877088077723055124613334225730857081427139863793326071543134486565840122790516023469252563151338061410160591481419567575092987206828100761621967699743705724078632203896313445140837912889251566655256930207464028948531419138041500483041410065284860376236008043799366108490030899723750158665772820394532488742756357209313409671617155098400948024764540883601674780953585291095583246097596969504880380464688338320134623665556557616974615367482115034989192329010973046093872829558634915263022417668626127450264059718722179651253526038174687028620857150553570852369379324065671333673877423652299651415317152769150319439946350824039387190052466840312620051695386414428705134106832464461790802196554883086319316646674041360494026781842069445118264986641366233074065747027009043217700020695372777626827026906576481545298588620139154282828051080400603208258306728003668076034429876537153210779242561980894675869243125143133071792855076257703050434843680967387864806030390040129214539154015226479613226457406733426900903332210954074729081899401892875247750196638664622521906727410939263497339543648392624679548239584638279122859319208995078814151662008742404536845427860288161751482711323227944668346599831012733855534233400118073269017459144558751064842509964186058488156911886243600309299635839193736373175966037427577221345122941388818229873769252115415002476984230754611656210947136248975739685379942219056979079120562363714689117365041216035866737561738757870558048978357173471262867880951021902203760136891212474754878091614598884316999591114704301198236438300826636236011710944724265973876961376356020056792691305914396989826899496634271641455359208206119519329322155084499163429386557570013740917982326896985080694426517655244776425234424182697785499474607682983181160622066270143406044215860665872950085423264872458386358183048767216212794235769736742034604785467954104681729072900831209235763165034266451629281700399469733427646464679063105049477080465672790647740057040924761558886720875695271153171979535678031231967912936276808289270915704385239657491065242477007783794455291210329565058748077204636694270200316052711423605707485244406288916378809564307738442578801643415615416431609949294441303402165295959101716861936206798903292301677232610942924857236152603813063802293092400372340570740214791798703431210673990687617621264300474174161130399941993569336260777305364196368692304807551672995197070504255274094607358974598079898009312919153512324089618631136823641024880063453304077043268531135861680017815227567127104073211200725062186599393771407293564240965585299225921031641366541285445938127045457489723715159467067865618941406782403666413423769214827383554907877234615666574798249836963126761673698718144078357309000050264985359285217266733750774827109567321594726119627500316983888786031755476325284054647431768772177063818528429437788557143917836438726601247068816588900151251040163597538864685673180816406679720085796247302807775318040577377234199409208386761706409887485668775214061824544888247308723590770499082788728414906900108293065212722250409501624702635632069410297055253867313902045117930232886063797275427532486221936674958648038644031719386116376836596138217899726685244020390698862986199683998001734247853970441865337604955401351770997279851613981692889182630048402973744343396770411567220680133772683103531182781381776442866604324043644771978414825508494398848665522636094722801336749065789863639196480307033049369302423328020149401407002971448672561936590789483406504064019391644261316948234232886386056683238076256348841389701973759899879426035816412902224434001788748694451852681625084449768942756628342791075725305665984466064319834551096337533665804397007290161256262200224929350260834269817612197190416043020954428006667469526424735665361993402096018512689533924713378066350584736864278009973576583937323332567004162316619481865943060878813815382025194727428243705112859980375299508889919139489068444812735382866338551697977758507089461419949466193372683751987199039840567670075827311857880151809260169691594601624370096737487542402545329520659538778833750922207559042507899293019314053252666322352761857281351659530893677200871886903915254499526984746857492960345029207178357580345231531491343380080001221982287765106221329377361402962279573362439555393970339494911711796401946086362961252130885443013112531731814979446401493338667687902518602999642928172554001657527080539376501379480782155947179043348391394005391750125440093041213672533827978959423401746307680590368098672647292047075936596040165452062716559071050045327159499565288224338782322823932335900842680064372464672443363263099919625864815452076325707505378503736140877684877766474653564653203768268413853202247176293927335737040420448226863246941875010242633528612736780109162006166203872030869876606350570010201953987918702277893968109631769082044389372217354263180655030157380020759749326224366652975034370087109166795502064353456231986209550169384608648907710328573717130104094366663318577145364341913676552328688567303017327054302544240990534537825777351781484904151113189379568199611804790358551059599563783301704202345775071589167680906309117085494182170334885608111650776354195482495945002440399728552477913913146381186140313690109832708027623554489829128221089222603199770911567958082559366295926888479680873558378753484801499619999563701413788282371288982760903711668767505913334805520452520124233497227165225323704334504766493998681172200687181685815243878834792636279497342357638576443527379104557303496593643299313569407788365819796253704634613009571909314138542466966665025790160536606759896343701534265914603989765799500365797634792542090765218170993986364621446197166474552325297696670189966617952440816275661909578009311724796159817073875283229019454931123697745820590857960472493334745257828455304356073189619810044548841333628970085067252088920948800297605075573288334801684585873476805364271973129264846897502943114061459094649549619132897212621233926694624169846783149310647359768771150833797022106875571398141408731878411326639895243561034072541618551707696217893337928438776235097713459503930799061506324148464989689711731334367793803526523606752650578688338898141168583188352659937489100798862027722720596895574615481246042262314754754069904127772133844729011986609679539106349545607374990154422994726233253533294110457091536989777923091136236783375406963912880697561676574258271166562867900376553407441875169895711323982664752013105595103504516388413532979375108524045441746580366626507451273058978180725975636140014385154177786123787337357607549773868011874469473361526670136336077930371209581755599189041895289153985073235652320313703014043669157583771422054120994211683789485860158838403523300339942501993841402842227667651320044834547042550916900651911911968875816758451110791267568071968290688555159585674679335059603257229877037853577960453355031484733503052430459878459927800579207761723198981548297960159903079148909798367349768321749703784565832748948830263651403821822192179676122126696063756919491315251616768479115433049299887529072887359133373170645858302548060450380734918566063028638159825144114255151628755193967003171071360616498055147467045076711417466867771420718147378621074659049059891764575306961283532728826258094816488771518142135870535959417898858135720322493232119660825857353144515835418632767447642075330446925567957825202444081864836205729262154330769020237924819478161142602798304012842566423707436281563206483540374369847551265024949634756312969840952096907006223826015057964374827355384427547805672789248344037654878520430173123838451083167770927788445516881336604167893297804584663867333454253053679745602518386722196589014340493087275721087968938803380022715893065739198189730069238298576109174011752617500467734570198531637365057020001011146462276971606509902263641644025226943091623457514404777809567414875588396755520545475057788882843122734070826666819293215441863721430867747770342758761340623276419251306132878788950948410635362751677983667254871530373989984254116316848573672843387947734479039521137835604775807152172103765447088317354464930390520748133520719762786652105681401002176678377266475442169827183774459720071709030236666202194204319674334774928010977624123870831403416264978207730953267145305891464995210754497776266021108954120851069684777099828734925770869316273212128586701282562941331603424336419579915757141759161754634584068032127130674910308086365640559577701155790175953735133517969599053328254470666137319247165552191377504427782694466132281515926739542781170304134324053285608594798012098438482102837269638997196118026356258379817607086588553352682168965491332595715993956708473828453594109116832172809037444260193312070525216878895105317653923336512191460673282081210062763198095991983531799449444128476866138575228868947138272577849332070595761675301450812890330987485083494207133477699638686594585312952403101787395087506374979161207307292628331094459022504173160421567429475714374416111892683665860891898701739335094477083841697188616896706814392514524802786387890215900639143954935539093921812259753641732725498435914449058494245909454716222540863040335247889446324376185900560370154899133204436342368911487348833208410903663806600946262455673356497021257186123659546800728918264844657371797121685158825223472122522658597161259969308262171793144348991182678891868629266005660051674175903660702367891637391200840384362997144635294558778876861841479044491916653331651629005490973410003673482061735997405957738113979614793949002606288408178976440196069071946770004181806698784538584349647290758483794031821176929123162683455582346609884391733388050234024767994192446111078353449676462128126062093844636121508513243928477386316907901603500817974855916591919018343948423013073710025230474564454765463535066146740215991751022333874575594472011507506286544389983962973212509575888010917752055104968070522228681720853955767373830692370590441603260082087302701800354751128389835991261994003321909418248310394372232724592025079522898904125126749727840516939718417275250278104786787698964211707837961914229250116287873038699815538450047289558280729366363196129978358650074266622062428670684067038460635205299295744156176372079020191487314300585961521087368743659711462411593393724545632829680215571917786480127525864489431904781240024418795873670967184772740309631062427118846138270938137552288254120458729059694473983172326802941873446692824515982845505461595554010429576359755774294725532563687585118510743380557344618997008730187168521602510472445349050921377360497286321501229459878598969551867549112555480421581021062056927795527580115444038758646953599261821482167423011751546600353630078033523466072657311892657981298019953145536182266275329847465490184181866136371955807436358881609139414136101483524589816500061259832688054680805338030519798475484595619684121408695507843869717873402876204886085422322689758574120845637673354278148278356760418444720396049954001017457055427408420493686201757720947689971667088390255786796436584283116357962527437845562047537563331148939557745794799418889542870403875589948144368532016735748902705714708000107278528323865351070984837610405007169493582773161330813425712878431482834598230282396900141580310246260162465080947682653218939056605953076076686581550763163018893804043316382204406571939966823005390887258792699660971345953367421261115020327849310684287466082847957767482694690134616802126340457167904023063947175269174299573782583276189394367932283391253775951567738629598008595373627586210633329807312411404782435407684454380132256411466641197068721367401391038492404353810661778366266029514819577965266880928977550396796646933714618610931707853234632838538091611249014942759961688144122754961175258928091021074952720082784417339940153833416413843797794119189077106574761759751944192995795288970464685843491648913099461126810616623818624020432115551569667503096479330138166356451510150756857193210321657522836548900277285278048520751472318076786555321262999943173089939470672100085738181859373364239962103303279040045852375351256165408467585222979439398642588966136772399838011145631925444292763197831988135683015318868710065627499497545309290185714606171028211266208699243602432531278707778604887354936922208103526740446328493739543504600317881018546114363830970166470233920754868527560396624411502295082884740669030155683125876384528923126187840002185828354301418108046045039405236765852428173151318344487621684644329234978770595505106680769415111229436495806590646472319658226123353354093806659579026132419626460513260756527881045659648466102615717130605441725884901721320287650367980184727708291729896891634738028360915947396781071574554126476216221334403980038032760789462336589009405822273458632742452141037036531793762337553864057389429834585003255523887814229570002076777807366702677681253677394992448116703390067775502600060962951713842758234306457564264521957932823900050934051544753484184704318197895494669841678254426008476919198345214449350210874472087305940743443141651914476580630232619155255625787949555996480066480916342418165921525900811162285334749190573863259897004381305874412900332225043007409432935828947704843352276282618939086846472540034426192966377126036266025353944053527898224854306592912211074136571397092012719096316682468363506346325377540266315375510654395865027888272808033765869244020146756949844449120140583827989262391241198300150663769844652935377080655720456109865348434072569173746188092400068124125668020144982283806993446982765442434442540504667022760912688959594428718483427371803722971123741187745429254689672018434477457914428756387584978578832975282541850206757755395604525039547273351772580349692311714409859685615737237201373317103533181582820517553739921250445751078007383634484816974367308471881774793909887401792679602676568815129572613058750140672784372242039052885402133259968111085713018704392087232562617346867897903667590998059785789396252116805353137683655445776218305280875094118657100483076472138622110888039844132986860058401425625703947141001693330295807423240732968486542161127741549797344805794585731595495712935743351093206182261782276936811402164341646127306952402018122419580009179258063457285853170481649151222248969065690527454093850642919284203991230547581069669164249435900996260595061754223825403353614175714918529948064381935041785976967097573995852897861886432278855060028401351438723869423614413069211266596495630274665393042685148145732544678186929634038063984562119496364038471240802085318086296592573062897815582307153739968371464720853575516623046363873102028728414165401758733792276175791389820258749300777671968975804978383123230982850045163355142165470413841154330395072218733980267710209052263790752287111630130295216003764123909742772383428114838035421086129255425138766582636526988868829342762210319170011026260561645319535612059006673071648404439491256022356400738925974261852143649003846767448340086035280170408310913781221057888714890937354974902115199549610414172179666912893518338363609629903414538578068117514009009724097671811816095601496736785779593556579167495615544865009098920859551699591478181271315671523479121980462846996404707375804358471461226037885391883881511031313625847423798900009003606734521686468013945428734732983270296510342724286400738830337568772539286477085687338172777939323625308710669934238161336807957413369302498804958148536347467980665895706671862940504419918100148893367916297341742618426356208518465971854341247670319432289560619111352497345813606466046160188149400327099852278980060821898207697794973986889158121558521095424043949019445183454244999475829091928490266953162423406754292377700094007277386171857263635820366500985308174599760523909649982728918980943820575685814293415972238000562993016524358385163036695011791870754128317861818611593201808413210175520678291502808054549979555826602031920365780146920511697545080384156143640742624320719943821197174087781482076406302780599327844178409277153370123242453533482009049106662780606660482712706055111192642137855627798378867039771485885822101303851559037260803730176651106245078299113318621102203212728036318527218467043357603643601241663594388754879639462074988086439217152362888108339159248092246887608631730355746477057980407655351025640759922782952056989970453474715123433123032512973079619185257125977282632721122823113125829045030217635422601459526180597086870953612853794813283655638549456579016666044703571318349873620803022546056154012792441323894432765193913250691302279986716829074740522275065824813851425065146534716978625622984082085345750678316371260432929155934116675731080181757235702435085906126483212787727637982281753757217411814761181364221675055162202277115745684373788762875710390978430310688840069563504800435155068440304090343485407837131496201350987857441511929992752342197950829961784785476351205950465070769408094675604637385478086500925989223890660665235596241738477643020370969001799906445596566433560095195850601545799203083637716041908810318053950845997099439823853005083640609004551045527497591215897818076198548713424104581748369243425555573442488769960916939597924980368195127339298616222643120713377064471401772149798010136604986140447566096323135511861735873796548191682871467868391174492611294732770373426573903880389532396159070538763171764288999946184246856075246123197040859135739071263737892127695143370380423073482457328598436951551744232761828075055749184485548184028881152707606105899152367177861589980536295602366531547064170751672263433743575145306969700829678945626911576362437537385742159413083060892731218259083105558204035429218450879667204328299809256717265573942663860562917033778451415281629359365446314115236036704238368851284917675784298883525548357539745207812495987912445502808675425718052295401182972632548279461676685240012366696054236986517452034380046702143892927870096254292909119454733978981437862449168735020730281591585381771949448126430111975550704270703084311375026455543408426111425441337128283176156616900251372416769988842028374753262751943551037195206898438911686214540403488608832328884898910641401081931410072463097849803334844594449450179627920920455514532917490790832172512621979358168650026881169713855183225636581214171840087888029054131758618461631448605846251053340290027143718396210484457011377024356492285840278189268845722403539014513735376985954708999657474578416343766080245787580251787874320786845618160729651161129682757888432962684475203822008481341005424545848604157185791143611512857142440402294448777860389001353871574654716764588026374398875788881679054552499335527293540748664886629142208730339497510121344628122212961786356160890807974145965793573213745356144445069885596259987324859042813070045784449141600443096667866894711220402208961939279197508258341055866946601501595330227167607764506037839235569329602764481033904201096803710590423024620788039927987569434520613110896243899586868350945260795929032532024504249693773344071356942608634746883979876267773328947069678964825917692039880505708614783421317372263364744340812583141116444914640777471655907138406071549890923895914836985574542210339257383603909956388179605289753225704136094548519950798300219384784172812379867647812520795044952506838678817765859481885135051450460309497532171523670907063244719908532663198705083305431399810813331603308361711512452144041461334246115791116504825601103068073071435141625807609105934531188647627284488827234069673713499508847555076315117812203256774838686583764909953296205590135411298643618207329755126960115242714574274842768994595117906632995637559873218984650819204583853364510961956424190312222210804081870694057524733631881624031485530921509190991080773593437324058453947157998600928728824981679778049085941183391553339636516057652936427296843008708916975669090407576272151969635944628932815431541912320674632665294112764321630663426806810757307614718720808079939162107399274499787917154875365952012355480551837834758077034365141025329609636038966269444109785447026035747398335338484093779212874769751596232019353916295962455399502586340477932535286685972133336600428346732450851154006463941142361237051897601347526576219336889608144155569701574397619367509529145832636153268782873138845758553897092637170479762708007535513241943503533809999367971576507819974223337264220560798274025952726458591978544596395447973173669874564000977112368151352095965588644799025446834284146890811316584839829308880683360969616594813637909665011084567474748257699128307824561294121228141772957863299317912927525929235796295800887634957198773577807429031268537081357087483132096233596065680377924200879093173289407551559063476994141688977119831343048414636135356444482223915778989529698627311524282602114366537834129907962210181757147902078852637425465605952693461620652286775066695350386148674194008336991022993157884601908560493998915888738371823739007481000447899167658821175321418660005491742116255385003436897123207955131784687192980208560362501782328573840655694523276511189780517467480942046044864164530667558516334209253766146165081143134437948165935534614573627562614774952200710043822033358189626786221853460072586897469197856390037746518513396610793186751446490201165273931788481662198831796474308951100729775141172056888422293469386470445335659943770227170569339803861097866995830029017660690555007628195293813491624884561277231637923856766005272950780298770154559139353337457798535341411351530138096412154134168098217544745329555534968355025859415779413622524315140941599750722949046574936269902905221395699734167535049153201750052651485936797537548483384574744309587096257847085138910729323494390674634993299735650861807845286122222584663541360331337219087246770192792571646496879609109362570989109751763462795389553422517174854681700417758616253047644273877663226900553123648698046094928855002124929879186046529772609097939124897649163337056045054254067365315032079568211171506324449724215479335153662274620252469827394296317094415028573590712526368943666167732315670581539177416878729325115118164005753586199710975858545852961189019343644432648849735184140077302861320573716472812965676153618826124493404493154211427331195064734724744789899897016110304002027218085124301246632521756852042715171208136141636321023250775783062730395615894978501609423966933786516223704336505384583118510690958166571724165020540904346266087660596546211444829553914557526361506214096535483936208016939417584912267185721981952727236728691297231246446223331058159290056983499753354264559141149374802859745254237047954429331321229103097510774837923302974208595042444650601770135636223323700986620778048388476956736106176505593253003220253871924989360824360281608583720813887453232662616419523385226780067412193017652365467600512466576395598224964137921655283143701607892893456885881785317270032131551478444776881244680388099113215020064562305642516002769105124681910274905934522512658432256577388723828921858363624104729037705187750959326452551637973916395504220036652626007546609608233639728111310519974590018821226225952626408582526397365752309882004779727850324044119824206397041241399896506294646683978844298070794787382321269238437156642087434435185888699643596914964061720171619986916175402081947825881071758852765162487446948141735765027350318797051200389076447915468036648987732885034258666857600954738453045790732954410255003800523446988488359713523448061620754195981039500752803599509674484547138096608534346140290347850150866884978590122678145337889049063185088815541622971414249854487884706340009005967847031999409642595535506335403336081035004776274034338107760428151808742562969812212301736920005837202254663798985874756257120093294956229741481918361475390751016682052039192589695643887165020572476031322234366944764753789985358026162312118541904305535112940313595586065475043740686317434590840931599403996082697480593854844151550951698976916444623750708169011807540484382288723716916865620260896073947777901461894008809279072806264064724116100323215968163385422629448882733500365254115772083358831659267788997335291158179043367963643633917033779816540940578452581315420822926894902959597207652682624768679925395080740088957034182898290925240081038082741969540318590976081407145839246377981089247957016503487509596527794188850312949035975857807497300779375394662647409493470333839189648840207448933154787549857243633165371176905725308546338229779867978559060316888940458489947707703371682249633063864818673613346153685266457170640309436734198204091160669096566338606708744067877168869774704278512226710215976724622894699037957797761157590280834079305830516696210129726118678903791224946377135368913662579135053365995379931015832104560185577812295537539305509797678223769344573412344534225094937249115106309792601628494345997292437810681007737612029567941274886529458869634010323394840357507933305119236044666531428403842137276884924345761378326576756071279765711473891852322305063099631409608116722107142395345884581103570246800838013287303350954417205320790354972163892610302219719146993984644218663711346759004855417283261452554433620243805933368944053850043126981276913618347617053305127250030880503440662597426012310987822380732132087944543507365915266618832161464001403913114043924197950134130479320343632603373180675370377400890502854586872004206476482977394386165821661793362009862234346099054509810084836671531042050084720531412599309638248958132480695180448391076956253995097256248960467302577440969931053770308789914562338590394433013309134133664462406790860346265514782052463683832498176055663851763338694483023437500551350479684461253752828875737556412719352479963026571741519864411288519997427492919673775291173524919505443825349584234141716852422171754788014978367888874670429359763111960993888557305466324350664713695095122989446847812034589658559818905094851203171596497790983064846956623364430126035579070327048106295451367045032336799256350189019876890418443281208247903855786559062676976733351897961590298133207101247336314416902332178113902793071661450956063305205870273218521200898325175270039861734720703948597598862846560592066418904379428871122066788689520583632519193884194814829927889113050839582281787096964962784170634312147660195521726755769108758898627693686946091776239110219079469321222958970523278367602333482364385270440725214644637568048547717828251647317310601505603898045699627837101769387801372148560174605346704923379170357144350804346934102817920185408016669041698311314292096824413676295005914589677957704476067187232689771543426197136119975317868161556238119243412205195932256373647265422023641260442189873122190223161411322147071364794946921810333856279533534147561181153022833133414945248380487457628259121658002514763381649770143142436162797353203726272726920565232882258589470558369066662938544923263295729414879481783418132890630653500091814684300595990789388878303601055571800854278539614699124601331581874342121500445460828683637207191674648323005820859070894820648119435488600761063157484183117010985972565388874002871310080638203390953094925533866636603457011926283697546687579139325550045825677135621197523620601241926277545002199334733165891491634729559381338559336058043027155203964976183344557377123352801030166055702078634221657016022554775725689740768073726130197335006654242559998716596045634924276526370946791302202581834297691881909789518754792154380479613064552889724985062851982592395129530124743503313352968694591269511960941776974152311367104750210728126645913098879346766111662718992302376481376069505659586400585899812759181079963662331504514614586725737264211820566192269693605608026755779618108521106792671658271977100507746344859203739757565660400314537604151760245773252941357613778262320865458064324182640407046583601761765201567989901252772292014191906390232265575353024306068152303560401734257336868174418987667262511819298715506072291765631527553296252372057592002481957258228308879848181930984257929102183512774813870621263381279471172615387531529486831160602375029219910344591126519468148847363798204389932763272386151228728069197448103892405363496411732776566696778427385529941055069673896387452191403055557625380360830277743764992445455270286171243420420662360109478021429708698458499947331344488469854337935160281625697299222580545341143037506012823263409876846723873846835691697308900508827587949770617563650603889449894999566818004992288986933544228825366622648236094354859267291989546824260255629001795489143124521931772700557637236604080189814309173417244730039449735148755116112206378625498437810259666829155718160436434061857337920014182588041086980763755826686961586959035979109234971928940292451032773331186100201511208027953614842263156839318158806290974597519787352735886522594195253418703071067829634265208319015711557286681071980022890108526455827492288361287032351386736972548858030161823133429266179428627281601822759395441263786104398226029917624693288186399573252960374340724340690070996704583670442706249908764001886526029807163118131947274245437535708725631468312690557087143793328456266395491638151150520463553787935937484938266970685747580054706302036237739289966917512162618796075205563018533871994719993789765900702896798112591580556574239996329470303854389877298394206010133155784857044986290968387837151743573389410350291403141600162114873582136447850980709513299599576395761174527890910183127942898597114879709240476437558468605152033265440903530938379672828833951258448928907963202845551588675735990858165328506298669777890209495896902869956984403967404557102307270228453519305314406811003293981636053784846373685479481869126028088830843887714658247811171424385183143695799346250934604179444837552078171112664853576122547047379205143819954952678091465220498388874790199741275119288002336332783231100984444177481164746820464154430790100467761916161262997606609461163146834796094533029322320875219442079859001993275550594147137705841121606272062693476771194679936677083870799429351222993342587474315530524353657597910695499104918923571320573314415918782377096138764562118762097074676202807611581458697489993242442417599352545693046544400291549594860671249779867436439546615392401809451592224905769793169150566282366194515091109816095844816143985242486878735684989037758655282525417328471996858118227270012222958185952237268206189884636525737899350099199573182865434822208394104478894129770414311512631046484148479496676113977595082625612374358407497498061724081764328769402136883076382349631473735597038354837644610458935193287625917968942799537477366168159538224287420926477355089724799101404895594403743645794124874165836478165249730257813907563641149828701680585507857730946091715710104833259937865313275165345083504651895975966546230437737979159618759072422284452741111875402214609447371513050091352309709824668838344207789044325032758035868416354902634174394908599895876491793190775672513839977721519543064000236300604348364460693427046622085182178179577731317778948799600418863815591964651920961393640513520557414754130380506894222477060168523702714963359678981960727218297336887787370635430373500250268981372875730846111034644621247006971850599201134041172496903836729379231485402245650357332722657563148100663474288075980807036046243407603902784742291470904580813380215903867903808182822651024627178491458333382833052968126792682527112247526507428623464273299006174747423657355799602423923658373317421389355113284141953566176134679232426634157185695692470329492555793878843970262738599206830039145593280887956006750014599703000417431664395957476667140649426064933257178256621636866098088659826696484828828381526857956121117494118180688593499315599485634267711907744133705108787474227719872500531978630104900034860553265610838558406844952748067372224959074046991065966774693676877661864824775484739536382015832485315569295799868500640994346937461462948140745852554869242726431837670985137997176887356603594554410927300613741145730728736191974577721408978738764896709482254968391004807902563517135587800454480139460744174684728166102752105975672087588992201733162394704667483431056693282056794929713501720131213913744813095327475124776227568316152041393207454876815981410065517168771552141468526079322272170156079280031355297052813866681152079931807402865357660958384635216386950884945741506589229996612429209600429758848198277476854477774931722084399074609467180585744192261768391922784598214867406798334748152078446107305798585547527064165374579909279025174715795024899179021870010449049649652827982514026783730599004398414139258978156614029425612271557694847758436918939037486733160696048985335822632727740397488021666980723215487053927384926592191325188946883558840992780686829027743479593209755185044315407037078487340348112927236054792357661028478474003698963727260920277621369194837198223926178396064460313231142917358051510016670752577429288443880460094923604070291208904417361569613308981682448772721035326621840542253343048928082045119554916895091182070072709794838712645696294343029308487325498429278352924305481649896702669616052970787034058376151157073359928415154271877249129332963687139948878812364986211754606223582264590885952000576185647063152699061693460090237656181814941542050705269420499925096178961969152703925284875806302708679000934764320854780411870534614084502138995747507937163508630937570975793337735617966967318318956851167865565917965300355917333841265816995877251512485760748280291327245703409200451640681211853724996863621982853550252091396675457905283439288243145227694825589206354243235954011785082161180221575862771355993656738568596140876679080247431238954952361838593480991053546344424425167650160099311275356725347290227475775288638623484274065635544149821328930939855581027923860509243626416556289125048540896589811016858469291120313059689915626419332157858570778409026869519322095920423916442080821487022005024685213171028731802130176957946840206679181047870317039140136711679315533544404963497499605208299266243774300920601821128586550548579903805791704097853927484404386901128238507724090054110847004911118914254473150764380825276873725619926839443091418852635349007371462437574414841668911656806028693923042082660290079476487770911273359501005363523264737751166114589041227036868254127930325051973693614645039179584404726937170506423445911797268629234500447211246740713163545363128304135792352492136095840856091180389180637342176871593268489843283171120770768603712234737187532564896309598220193528059687348879393083162259012657330973309161424175206763151364028812927223929202791751763094070688605892810539131892220696578863737152069183503510421420412461570377237117187988500890002650386542801778445644246551156021882100984274468975784728978420882957586318439607561956645928346956301151003755320098250106813576872439085095556428926509336278438011514809720927171566754471043987692527366709163598665413601608965442464429230606105167109483248730045219777036532106195525566127419170758372601526456682556855380252277076036751620838740215546655672634566571725630446325919281408172414702664764465400091249428433521886234892067520876951613088838107966757443607034611157329380151139140609403371903472564152326208693488298240238297638995147169882761507212469671442930062623358679165422355641123658419804558462526242129971894037549671233329023769980253546361154925259715771250097232910319851631790286462304119527336923437503855419950269559654148783969043290895327059843769754504174704593121564555445474267849310500660730965712364306563325207924074772858604488988297781258148126094875980462991613251698892104594982207077721403170848729826699117681025477178290101987706950028745698130680319064588247494348622143817208039548147929844683356147585404705252648169170946438483935339230309187502337965089860394267269142673547495462685661734711864120811779431788726789697141903949991186227707963492818582550393241296254472429945704808671209430582561034620155544828218149439269675654083538967714051142415854435236743859085455831631364995522899501079324715100145676267534094646453316956693861040591151131635695995703981305064422617245079899662708901279424596276228381075650938961157819322359847489605105169922527456226173622845280226099874454321581902835819196703120904222022778425804796936389758272165320782966190446835404475765948385065241347959446054631916551297898594761141960550779075408577607903106313872909913907128658896139961335071526699524971430843660407344786364644078981956066807216975883179055154817824442658472622367594024502340356585822932351529610685540487472723673545390011941637618741947951357570637421288312523092676779006967404175606609352166571985868131920425540456360875842688005249731403453241935133302368680795606372574893855783113244131754873169498647207602786235826371853584715623632851469738070397401548921309139417908682951943331312225712108723741350009672529376959921949941898819718626305845092597337156386151275179282598435698129145993010708133749983810779471222162845818270097429529964894585372362140118838158342033476689430446378573465635232327554646267710516970194097498977539316000040135507093691059113317543024902164040457947877403796972843572797681654384774557777013174990466303333686998175970560681712275739790921122963041545607998333444033833316664657428779226075699652498971720782779820939538107558204665932007711090349810441290207776061117109479186259187991226738349703809811408700189281212204707588925703341343136756391036172465020816988641871540273950478952809744944290743504019093098845662212463523595998778814368506642762192808498327119141560999680568252085344781283547203562389265167740688501415861876912713162820290838215699211905860727375455850027516400662296787310845743048017867367784588382003922001773596768641147825866646690989148987650233334004537140080538189075174472934521469791840842931527534796658884095874146080176048490184392106241307164373729160325899652650956917281085598766327189460495958405798299735411270290748428902642245846662671627812395126227734296818462683878508390420815655053761764088241744413955285026823324942667123326706157831274985716591050020780165248551190666105068770072050381611819607103146062015736498942523575826225483097416654626951301810447315161000577701885427792127087180191163423297403467510190246439760709667348056329127355979635027202322374089646758859196079110600932656169455634078203285547658602387317782848446992257254988155187682576265494732133132506026750240548055309282555830056267601084924327095535543724683745166333156081912137103514816437833580552907081912995970638251897263080988821943364222279648540771870283659644385313774967576634835516187547592694004033553153680503411053215600204298558720800714638604170649439872834238353018925829464565693225172510480794157554791685948049064106138372304638316110280846575436084336024907455449189144343900829407295935845736590027299294709691656684740168162181238510124189458480570811997531437777659974687447552800001100590133077815383256936999297588737470465941696902626815591361189966840905246424477049393032222197943882743172541739809286600071327781132050433260799948551889188844648374039901775128282383559164215825248977970123954930930979100400987467518453299211076886564679542028840144779401272390166931084285677089940442249815619467425316829271452059922708736259044572097022737392591277180786203349452017314914579355205712380094768913875652568827267301204063515816239152522817267289905819001912546957147898904072213176454382524290701271041125787634104039007586226891022506362562815993164975614206090926041791555313183620950103385538204527137198350954269890667566814683246483472042551221638205170254653648339296195021303038685003923122114067975882618608488804470116339869427657162531921303887401495050414550670254388178024310388473332771228565106930573126180839556070580521783137003422908554127188066088315560024385192419526010044569990935511812258638680112661750552702686494145005359063765682232283204724624792212123250086296130667528290933275569534033395843256961347142925505021330511596164907657101556446363878142643675692404694601265575810039947887804153587539136824904798927030005978449465273545349086748083726860335896643437688522579218625090414449425813340821693491254937397760712238135118589180647615530938662495751590701007677711809682393614093873967106154707859781863749126195041346184313994360915813961812382253697290777775350785865894676572200135639184333022918237642291215782360235199935830331838436254346915119568797155260609844801322628002761451444834221464837216406817707196513342048516721938907221884758804762705473232426134265271247427214165387285256499350656126517129115427137039648487026476750228471050574850482707170376192919159619221863019894239295997682279624271752802606708415641558448141578060965492182034376814269361294339520826756459226109194715317430836258228553722848001611059913559466019984728479560931636691642403471694614038066444453744279424546292229377607742380190706379641200839794033371853821399046158562367992626329426573699269024250999624823868717478119926585370245458828930359628083017900323425881899495492551498362008922762745343742033200509632874307207462069841678792175688952192661890734828541006106754598068144018388929170650507900532627331627676746536520183958187935160313156185314917231756171230757798679907951846241769438518013609291673925341357460774196011045078130652147789130943281152070785653575521582089931658673743213311766859448870603745112009875915055111754090272507387579442711790537495558216880824266907814853041397671600449580955926883272194791160259901026373250531855946419724291727175452524499017544122288339285274542351897538905316985370472715133036002696903605077325136306671046258459874009315003205860967787624870260293386071763067608645841220815999530389389706708385661591020142690459248745560902496976664189369415892370194438483019677731160736761123938628466615161519355527756471195823729356127364034248539620563009374553578738419143741681028831094703428980123637014187938493929813016038211779518602885389185473468729676593662412874435435916638223776386412558358679180306975551623657701955021827957785141832183269752167856140011254535157100525493142462086535080598154248807093901354377781247934173254904323003629955675657559637415699976680214451246096892455258190287926493545172417446329952278714653458150586017439797291892167556881950063834174705366602400883739352881722506444546571044900474676715586868844328043251842706530571516323599887296250682010550535010382908180530429059827999163792386852777380023411766360882214889986016400550069528023012306480192270289072976422779790071490787988956331176024808231685144113177031606049925131400376880890544656940142411535853986830937707546079929259160290195751261074673987640288843033519223429420072905775288521746628936357584712838090413570900920454108215973153174824483458989741227583807001788889750153652122690714840369464333260443517566319829345571088859446016986238976443926412372636488056110375690047326159966886914719684319098536881367749158823356629051293406924828434436156074172383903421072488465742621042828449171953934017692819203125823008402080589712941949475957217596189143197291613236688912042186912942458255953129675533327746916235290556383510448165722861200151975331220983036957859800636854930524802338265202517804106889583967936588138362022115964724835209634281945860849064927066982555753396906006359145434001147244078762616350151152300544210194160181478356509408049267094698676890909650130735494736669048893774962258621741164767500919672620150020394342377292454176656051937989237448159535813010526998278113480249072680347924392378385803274770313205260025230574150330545173838118537688335518130798161295895030727762615633864172693323825425147571986271609902119166963420793996525209678019161071204900689607321899956126729426291790635826852143109279087137703902711780385792872098467127725873396114678979368398082786492384209952607269815666339031968205645408269757684620264208728739249420785228123770842125586212478261438588253167023423944086126961605504306905264075349805332696427929936638732117952163611033834874914185652474751565879565106211486820658179317328795177952112379943955627651930821178265092970567211792212722624656388967564473668811943306966744019850042910471379196586826662459930121969859024543336921851749893873227701697095281782284071531305397601850415007363180748580808227504932808729658317368189182305814295393985997742207308972667374429918723089193449589825026871637004833925025216180856736814743772355338213305063764549244870616380173558773068888336516958008798822205654249248436303460577527579586691664389143937662341496884751837570931821323071743236336408945951307904193004057875373403834225899425253503131361594146173843563741362789516556091497459054466472421454236906718869733172647991287104669589375285819800389352717296774797098951381495116688103682681812578374985854635098328841136253062822258943209086079915789859861649023809027371886594904784395164660195785111435451376485520898962720196737313650366816952212954212873356228205867720124314199629729535532381824996259024982570789223280781871133003178703853862072246265032275740110521833269873532726815687132643974135366406672002411686458835102454932528962743278813587278102013133470350606114873179838442386720031273331131668327807769296622354843066559513689189529389786595794092082942405862008508680293930200837014772034839224465352936598597453199097201061835027162188454213175050185590971008182332051005006910733696600798558554021537353295112206872634931394022717064355749209810706878404840112811209755940651587517267921374346783401172822335948432408032781186395722185231834783266969952055802500268357309362261308063733611732546375125223287084992788336045498881044150959183848484020242445249562434661092463480216562200281062985948469814034189474443643623087528198942562370169473161258684810698735213874552290718277948479590302585300027163984393900525390483669348769845169934284202959931901649522017200841170991763233169175339980122038485296459163963743779724396526353495028572733903912581386894850516966295645430723507929200262884971843291137240749430686786100335960570197710513200041369445428007376340588482387437168891190722514627009599418258844943758746475107710438092347177039664432483315059778359713967627794310378413926535757617552005417598284782203290545167563101029403724663683719252930450006419670138749420951465094288188716630994820038356337348715182071369636266883342855898238665580580813996838076639781234388310882561671007756150083743530726440912628059470084183862810371335449512683075701946372465095971168941080789062170135589306809355029990401032921407912172132080139682289554522115269905556737591622428741776424738893398130685391168061566333475728122362913920152766020729678190357522934089664184156935568464544277806456460475490901272320333703780065064116871684764667829249272757727988470627409167276646580602927645473809357407849209373647512454043805911388388441070690634364660033043443708587853720074267712200693506105871186269399401306403133065335150434893443802854642841249585893741154243891126183134910398938707343486163126025546291911052097898828357641253317771127614491450801875890047309090445211570484824661325087894895970505466487302865852522916451627350058347893253873091512600125314117007495876004635005958885590221411879999285604919011420257881141479425223154262504910873749609962408209347068660503505626663507339638514365377103623325182767801120484447678205723117213385235089612926368822012980645012639654971092450282274980726676492355084407720505276352379839073505430136152210581717922431492141392841964039431545630511352152331747422007173183761540359683084453595177411479481001870712520633418401170883600261568114009625977278757527688441553128595446172063024950413220222897100393419914970824435194986177812699817001216908067324355699647705978393149156877842161181487936855828517032915044709389321887374805093527020128108346066667309249019976741867619087398571652530928737191179203561427600718685247684287300449135305241566258128522623222153021184604702751748458036931231606544135435876048291370030009890165293896356407345652434636956680247656394876239427220048799785728568335378072308540050662537617605556505873489948799751709632868222216554486100933485357839003138257552179682540562826724503178801352635284711213347609327069397971473081273869897726413156303995833768318741933824966654093379898684418264983040995361195114130496325829431031883512074085785991678800495729454400801607848870943121174152354224518289932484779010557658329478582011531170330895240225089039235945078050892765211360451622859436259737800505291878548195971955499753621762374992260030628889047123099463728255021799421920327261254374211563706100638483077404594922752901649169249616016768269062496585941671245231219237911437186870852953099288912708763665318468926474523201823787234418410251623797072708402506973941019765385791627239524420624776999509168326266089622280520962854489421524053713248935029063504008920358125496193126527068718024986116122284299546124181770334168872045037166665521706749388210811179102865037226376228222653048132255311763160475194111623655844793240062071050989249579077455434164020649514002456597902163165970336360443881536084136794885198983220445429809301869273814748787606349226193321859795443568966423603819069801415409035377584350166425129350654323076730736392488808391885554417154822600117298653968092427165740170158859811282793361487077635218239947741509217715605279123416305816440220258693522886776392432746164847014299273791026744533945793191573047170911999460106166845739910747231331465474022730485650697196178759987745860231986460341921937297570307803364272034971095474837584326585658274877327708273024623550922559588115011679949847146686645306641071963012289957221022664176722409918112321979032987492539189266028199907017044688114440882670821366034686506793968715638621590965672119503400194383768960487202998697617100902450477056540969222643058526268769420944191787439269936605915051367241815402269233225078801357591768689211298900069048502731073707091627932953924820232708690146857602053780791325862283992797150649502719573105335712988594609750158017729632291688083264216127548772226976680590552079147822658475056190593032262424763273707815221785541118757239024789488917943099083448365525643819083036743791839397181658334756372704488815346290392669871388878301511183526489655485828741364198972189813708859044424373434775386319531577742080851628294300042166720531960996398681121891771397887524998677727739133234440759652281974266925426105986861023877183714643509605048008972468714311344123771945603040137230584623116097395867753816418607043804138948393708629618863806980262502623067257716524373053221741785099067285920941348943987299727084399887932517761063188466479683786525803021669388793113353581918808305122051685783276331557132798779636446045708965208568196491739936450215722214246054661978442554764445654474626857685254394005437527138011534956056773370277185298280866175787036029674947788967328333425574155313228075000968659573578172112501933436404954434727506348864769309295839674617546411897665058173594546760477751122551308173171577429392520240019824887950538220600034236634242627322534975813790991718996524132323138949343855480608064609852627359882640262753385947827674663298075905445057842505339174659540775952138346561173710936082670049340908602033968974623197489638687303763091367478857711821468270159529508042633500002061549205912815294890826240979626132647706556319098661601975391468528182579098797465349320273482706937486784328016784151007144310325363423519901709222839184710983379341476264658758249024664081246570889965188793504931207235336648743741711488548912738108115842445492567296328247021813072725389700582336586323868993938910632954360033586276455450833195720167403241456048496857668734553904670030811433311045747324797821433176957662573584341663731348409294984879031098847822724764690687324805515603376441639688661231675682034326008963334530864328369043187602543479514614523828823609476178081236639378157197541228937519884166756349044179848912425415109824642698244633747607885412813807192809930969330664597788455812991980776339158076454877081676403961749390647242249006811996173103884953687345729985810080075556309190524561980595454927155289472453534495311097442483398266883981276999452129116623639976400234897319498419981899332758070455623267886495863291067639417815286987195546041624113123569310247560368622673338500274444702901324706340653966817653897414337898421375638462205754774181572906540389547544075078046981213294085816270280009619426790144095619028789162578474474043384470125064812710943791865492684226180211635541735674654187878608190052010618878964447827394551503675573443188344606318832067701737396784177785942021446523054704813751485829047918778972951030533500091448450290918040308432872127694803904106931055093277340429058531358509346438411623606334276335285481021662609927683252506480558811256961553565515500001402129205650199381087566212429853793928915786474147357715489232979435395229802313610486102609743741006221778662378656721868600817215374735832126786578852358106882545247430765143573459667568966679230576510789018405827633397628087141039337510510003857670245292760143867344242033427661553589571261675787665517596243806663679092958395620764797700345390186446021253991549076793720998639841001202093218096797603700362815062946838611672556979010196733725855393094359202468635920895166997302027981829515742920982760581842937319398307048330402869061337512044761657933555486163579710107506154607469567586521104303333799575273491318598770016213658476362863482410431471142979819152873970747125021246295978993950849751098368597496965660425688875079010716551764532079769369519136466343124240736059940055079671190320862084409568992963024776079759558966418059286945231858346265184477369066183005183409383355560125617138036563772531314322212601645592597045558626114057817409444641384514635932486128274889783272269148305495657189871450883385482155838906026553219909780243097199518012886376353267442345630812644356917808339040070352879963136864318348362626083195455467846309632785370535846701493920180879898826263773946657134800661938983172597940461202171907600299075733544229698195710174363219787069694584067653335578848393857016278258267835643682776258361269937729824162241266849825515998066367183359181481374868022840471987662050277624683186313365267107415202458010618013052981007275566748347302322008136677436295101497181550534925015294411229439062948833649592798352797319602452351800076356352233697582915165477124175178395363555249629269390219935133267276413762241203309869968276818896541404689663957668997950408091820248920761170086988218201134316368549844952655126073005869532857614188211337813256982195057090973115960164211000536828245054639251657102156258922352647369554200072268953280026198632460949572651368407066850421980969677449203191577005233845595474592478502245652710374673290622720890612004129692443405689010179944499741742253026037193572578289380246941987687765157677010459469151514013939074566274669430111831927732104196977742217752510436177588875277434879414522129173287302598305870628499056070742432824032539278188772791879733899862246111915672965155037335014670638662049549293768648782149179477342441826077894852869309871741316410783963195625139269195369315296409138538934867517729807749705928853129352215297404264121444890594957815433098583242233862184493556144991975666650766252588333181570120147314547160961183097104193850125226124426469838386403671846102090902946874083682281433836295970682590745307780636277541268823908052330666010290993803592007942720428974081345901944722024320286658945425251406471186725925458019363229523406178191390943877081431032530739429225560235126694499516126544584615249390916239604911077232251963232830820343252463572843746437749248757387415178595153031393210368068120585765382814362051621367095327952651686308677525968762099038929724829065185621586978233326890588929686564028714777332114567331291278702931139970979972281548865092327926414403105013655483949695934370043160850142220085581006108916993366329048977234525778060499920599978132855916748350277371316213755163055768730916181685974835870376898061356202157186235080701119991501499595948031904849809902784389112926779639093297591451753001931701395520572245434566279581346260099163095074368397468837561205610505026284453983269890473435786349363947084562124079767627184758426086950675689839806984203815656524214742218496443933542070620884239664583733493068285326827941711200614091251941974555070682568738639337568384146713825984666538928863030638155202883888667715646105114749032617151681106514863391514630519650818475342148256420067979814577875086995500353961295787962413303829641766893482706968066530486558180293572857088926945657507260294771775252436504541515813962891108542734642248419362319483166554608825979581579070294450115362650511019119656746714341111753552328982492888664439034705177586005944753910189949271202476564883055693716032765255302452481508179273797436858715032443260310514103091790954565464947773520767662418987160380389099779547143057264091456315968481204831721999222136489000148803833374606435564747498510440828585010444437483185383282239070796590143865129717756422085244219421451536820268207353761961886295319332419200357063870950583046206342344232157157019046484441150494127563044099134603748469363057588004179088860192100887785646868382892705628387578618502387875180340660980695877589462169861705223913743720308425103024893387409712054476361359497139840142044646178210544233891144343887024344331109097038320784816325095100802720899893288023346028484304922979377869145434182383920635458576080946329799875329085868228696135529412371202231780891842419970485597475286367829299721152049187012940769223538116832360349532333421649945485749845058386192926317381325619989496698207559731220946326228786197636557949459075394433549139109457407298957416479180488712001896497692097478517726658323582864796503234802101462520016452534260339720858522923057279851347602787465193947045204860589215768018249668046855828803297367127515447782633069651217788874055598451020218187307357310506376984975853372183718150858862872172895948150929982311236513390193332901809465613747109232232260735554296703385838835696857808250273915528926245316113000811964932413923053719352806703106405220307127145489136003077591633058021352031346334396650326950577769078725500620404265246217330901068019722845022439351956117347829854250242659929026921407621405086441135689158712952417664100591920619348651481674946749546565770993640117478160541190769993502492830999725681812200257511231875603205134624975767612917328289084869629274821947979135373809161859898655412208777749918053471796509268352759130574527583993138985590704498014056797690332270000328110877412181275426720443544773627915788314886854806565083433264375675655020897026321497832543521510973109246397577855224404587118557993661151446272178442319050909733201925355017379223355335803690746476006601168517700375441775920787622203789087147296209233032605718408782746965630024377695512150697032228206570527930859792615320414821651565535163737315632420718583987398406650042189492191663223375956251156427161011309208201629085251071742321248772489383074770820302974439934488911195612510187561539531969742033418548493369364609267263948869083605216417759129139123030825412057970666578459819047693407419809387664284217987611659705410108209614371746566696768607777967418160555955044987474059952726968785437785907661623993780638088087396420982064772728271278872576228349357070802555146889072599226579646451517819298644160418790614883351058981860799895083160469930183346015013154072129347877025970833886878103040620150860195881612781257438859366425366859264249427623145375940282782139751974236967377672856651453885501713829343517238219786810744660695891286101678700823908463948258652393213307524724612871624282665865758821741108040629297475489036863203263744457007885332029478951041304327454821314476731569397477508294239502230926565991419273765670421429561615776617181915922112165442437206037684124901688229960707060655060886275576495799656440012498237976991599576031158657826288289813313489223491856012405436801688262953457828597775906992615193535081132285478615474769358873478630560250366884907164207801323316538799172945356971177502192471585250926718487703241138208895347331406878251329126356063326573027821667947836782705061839572427790811012334622053068391158444999925661224803103502407966373136432873643301719716372750693390640435820283447817154797507956037639981577603968822370315294690895391243783019488257463174276169705457740312757594451275195626349996750771033746019045498125701189283253762383850347163195268582992703167802990676157086777704813753390362083066174756825909754882026660222947449388450755348351107970088381724803585159496696220543487206259850373350571862777398505276501307662634625568434458354415104136218537815908628685400579049534442185260010850891313736850639711381307819808309351727262170003371914637818929754924401895364727970207760897954683300024225877128009671215825373960644104089182409503556458016181741802028783163252395634529229221997118100414235258131715525392724487866538401857520599741297884757787875591283269801775866242001883808792295530957896725862043805315968213559250611786765553191995526699876828070475736347636550209538364854174084440978085966714695561984444919618266762286123573647963028293763436209297527464698497181374414279213826449038914481798051200675497673048262780352392080971882203125166429538746014611073774651330427864278607700313669456340249129983075429163873055651506002213800685827308075298966205561595928915584954792454865189908657463989925874895456951959703265207030644076566626291983587229764366471464017762624055810684105960084553454680430099280096378004228767814809743289946059741175680135572850469286249349708109451596427279490190555468066631713858074400608419071599672950475665748379156345851956474323614049832375187439939871839021832850959377721521430316139360994236754952136522254340009534304375523615914520896337408584344595903787608541588030475691960567169333076825300359560578032640742516257469862348675994625148089706750400505282548808764086334076933963301478698946826975690674331164690603779907202123052090091664916522821624573496663612985837355018997191513595051461605264006121608757991523014734213512639004247285840537566650162217742522968575564718317481064900689778528117322848518953987160286728587551944475071797403024557350588427902069475012589670688822589856907170380990297735352591016099637194001807576060578051718521795315523608231081928958347018827260610793159407425003590056390749846186706109504468366588140280221511400338997318610880308885756788136578328753526553066719043461561011911740457475455747765666256144993581021442893724435624644969823960830550020689678395321911104634700720373205336614583435902883219479794515427447095981365045609445553741863475295770925283909891646654858438618508897249853701232947753470939883962250701087452676075250293468665312545160738580925898748286792308086827217574511063397844620321801659876737028178163504840285744275841953198557714213051718188634678566404534406123505286294445551530032971219957552678907670357671845507932596578961587048896092883745697120192171505683148690975241536545312742161145653502396658995108957412459100902996684538253646269333533323717272586482935869559523172558954938969443379179657482017626273398050565739015853499600969492756335723430371862473780734945195067347905482391242219425878125126288440697049935681993610576602063901877381498172488678452192660788139511652342810186147307943416130598693190288852808436291171674654242099477694171602549319405300873135478763325976004160200131735252636227785857184616852997344031267975576194000532725606690801189544625186343625079985592383867778670968627158291687574026950598065623528552239598953305663040675971456002368041546549217859545475688214235555306060043265007426696855495163341903353527468771018722099322390733767039608629087792072603754079362783836831739507818204099917498985475956755583284641499436585609261155176362099542340594117789991310838200417166203136679135155867469008207098270167631986128187829824065995585503854328262466627715811347791264989061345003802955075892374026023039853897843267234779258719120393743939599892332718301614029548217338394209454853530841094258015218011688495736627514049642600597238329034875899697511903818481418591558434961804681995236258793598053476643173113174475188069784873117768609208071463219475873207833422347011238787390606795406284679318789244112487372819721972279418935005158365463554539644960908769056815038652210357910257488967685153758793611403013215049028617631762610748211672771852008997805762033173931379059815391339446685415499670086565751576669065139624860007536187517869945146418844879629870289015405046301578203556903567619708403005901911664982253353349910452397169219328226563832053946788441116964265923620384228018891829115788900719077696574633818142433981251982585043478058607374165247951853773993085482626453601384410952784884930125754765511677904367115235264795266408158390079976505969608683984122854098187707455107789944111935302163188084230200251192942382188399193778985936271709208698090337860974243996542395574697359522423204162619441944011014192323679640252914514472333324178764739103045950009373027563358737851693454795143795199084957291025155980539122175325812013658961086121064162853148546808755024127570291608702634873674623645460134039831834366089256264756197800443544795818354117244461029938319420011531825267482254447270294564631943760582540338143584466692603324135910718702925796506329765016849868574069797055217289752114795996748006502456084275059295884655483936887193130357002350917674451168646820791358314471947283104262820884380620406336363421907849078698377473871866067147878765177065864108590703406925600307336420430873359766528052510288307629854548682340840305469520684290321687893965379588556639994221428841337945523885790470612222019076122864864012939094405356669918847446694448169784582497040091771452523766994546768007362377195808669711414605434888931489650399396108095903317016114722345954146845034209023641967738182158947981848044535020122178554454592714197598227912036025902668050931054033529571579237421899234169136601410289846650103746970373376474606509073427238360162758932202756839032639568357770335308494832705591669722008638522933464698496422910059702299230281755220444970433501415808981148955013619452292439640300510582876069071211372480080720994010047140927342883460137756566996392337737498411916307599132906464504149283891507553080576565911255692880454620716985020748857793765660104849428618921287036945543541474261838465435292683331332161370472008565971329638337089389813182567516834698953329220917492585425427065563484677069916053514255502766318683772966089812572974345983937727059775383808160408269135319004104607055927006475321965234503858528166564927538120361311679664385492410266800102100512928288666852149863966949007099946404743330125945655750580692918246607313865948137590613706911419229918102963120519203995562203449982749611065918593430744887285016614497415977705318614946857808974139430412527301542038381941477762116281659447614819918427745623167324442586971767600556287029824770173421787980633261830537414096767793670101761514016244110430307961737997620867836526339966019386092156438309876733897050302714223667377305847916587003335891000637288153622232155758607340347640611390231778654344727099882565507677182705079092626687897065359340537122948390955758857330266155629104656780152454619672217216457904981810672201666278873828922714662632764675497486551275188455300027680415253284267194458059837101009809547584191943629609229326665523916742298307076411710022228449528808010501112327590203235302880054087021011241200542856949526442221567363286092877350365845240787873560899236716675292971613945141926025699753724863452116531728800411097966970636334424086180242609043525887626660013057799568724296584408399813924307007203697772356384101787570599361089116565926813544811346431574579786308912490262656259049608332740149840527652287058068647879393580088148881060705944209342388905783061902233741679696121504715909855697608488137766269359699051188689428795553627394299871608167835106976352651367255380703635092548486322491186887968382074746662379583322267719715046470618311873246681246385977417373872728088957861236243460202762378964678824821866505157496927355736486149056188345948684590871024456576610976545747642985993072407626614507920381453861814604648476848346588953022606637164718104670924674068805130853258376645408858517531917509229442275621572884935657885149097980007529078789767008244752537290596866850574143690099804550336703379382993918341823262563932866437409411615134360557246302018086055256439614347295211269286704366608179002000021690849538203229287701056304346771762425870263350130856573446909340922690375098180243949073726237946968711918180990908549227779202243238426027984826735361396550343827656019489281802321670328274239868417118979739017389606760591335645331946411271435673762797500426956472621747730932732207556366034666138780249015980045011833136574721422568035618583393588771854522932157484065699278652683245103640868080184818924365207736069424001839991017141212761990368605539443252193166029121825157791393016999123576554608727023519407947804239186979606830032577911489141184999473737254619007245764628875260741027925208092831300347923452245911557643318016836729449062487549145459109440855215479554681626527370543973170648122058585589183947272857043958132318194860676799296304548727151954330815583001718745386351292866116912037206731350609334564010407782661233642086143999341161601984217927186784931938258570849917473166190366400145850011391080713722752055600900803687642381485574483018160025310317215093431972536798810467779542636696979158226427312099337042487601445578848299876119313205515129195191418975599781812728379279238392573021813092919532374347450729619321212945533364353339379876420820543060663550593994669998887719088907769649713353315007788151651220984037255632378278196685748134621573217744854938854944722587268036892866253214577587901278176333297319423947146259025513770242515870991992111082322158130838721566214894097820607253817500954603770787609659603562548232128310763678873972142606993458693157954031425892041701854553688215625550933873186548946594651533539428781002897550525566840552311367932496550853666561192787417298858235016089070346311302573706546034549725603920845566183174504042093384567439244134143634703620226359503993628840784075842093748157474611668596611180999250795305842937258464700701166207613412871395067135755883492109771218368794423874716261159633315633855234364086454457174076510987915978941412941973109481821033756033396727332239719698100482250098718772397201390730935817906824868377918716727862407073880756889117838433985367216593243116614387756935798556276400415504295178020165033658007427870919713092488465517086062183314101159689042552916710881986238289141897437140048005426098680061418458034545126115943936080803918534554046504108992787057088309055472988725016070052913328943054233552453528658270386795768432741235047539280109856647187332749865901101973377809335311286390310421573477379129248526772860592177028614305484351393599337468183683955446894159631693757560569664380794772735512257173857698431560159353508092645864065096922409037580303611579886173348546842792202448699064520910210069983044827582426893530120917634374527457458182481022098663517019425432446791316440096202482637991176787347132499039759498745135800172238590311765404666218088219931812532701227383874165875178035833856568239379835862733443078977066965777202020696646701840618595627271072718366711201602694239195488799558918541104862098208821802296821146480660229440371727770797302826836029878065218997585480752651576362785975211812856764194826194161740204979956411370336183314261062107202814203299275439400802601809107148965734812028977447705948678872855552584713105898759645747336592592168868877767214997369988992258663855065759819599693334734616953852245536849745385903095315830162265167626050410437782345206394127751123346132541354866318583407344777778090204118766286707723048687416128020207116246559690143042719330138726489243583171856227395826030557724631914125963818027064167329242470522671721809278948301226357992807757104475790175087471358394835125621876262685242625281866551145902533224476143488146211466429982250544425562155347081305031912559962411506553591540729260467706270253384170595925955875411024232810843357039904940134840342131977819903694962377798315117451559188099495217476892146055513896533900953165420649980621267538876711980221462760748524518131947307790078976715529179855487450199143459349109682502088256879332943868450361366028394329165271140473648707733241578730868871078100162203677594852312674155363367593897677269375962468268394771495470087522451903559606710804026835676559313916646961961110845303225445784854909854777094029082585881959292007855265190021622145916810902153996233729381032580457186608748573844774153652876941187042772090940510347469927489443960929043294509646033607575855622256924624256056140744675722439963204030903574219265801740225511172295322503134724682116091405867262822730786446768173974639924958370127394340909288223009205797198286228697232310917229936646409182937378107808920670123155096133005956373625820837656187466635898385241663359487779205112076709618891733725797822659535980420097238054252649627254563176236160825355713456299389005064960468160871929264943956240750782953513752878585679368006747821622588083429503136584287273994214690463860747732820331674442339210993018018970358351363583634160044215828304248437202336869785976526582335443458765818313792170437540700785815571411918406795247686157675489442043176622161321610309209766411670815719080372280266231855493351232931725228300922060176036334114419473160262684178580656677016396131028297386896046046260967393643449158802219932417601063897279587703542998894819643446761882525013172632311311672594250643422044084920506991966583458582121698892813988406781937994962370465991710700246847003794542206903825400047591253580766919232518863696524611029371325746684016138864166188210709916627092319313354107103279975182872139871348658979848887530601816761160253547701483811580935044387272939556628720651070014367818834694929836447386334201968096097685877051260456094090645893278018918423358008390241086355215118172765576681735261359786123521253703729780458842200463000310791924060363563854810202850333080022575560374333976273739772454951526581597339393068397481819214783546598263363657481286675905959581846596718433086859520562623617588665598009987080076922955377614974844573115799122040098608864033283211051401766065080998858957686449258582751264495587996373382301356034805582966269152300734532028670749464533516257690615563033549437963025797232124412635505140670448630894108600010244124821939397726524550439893168202134760570545697576026311237055196186898435569022763448775585773332445483266175985938081866505440299929078248248254990597170761692623493284476401077908087256800405965371726605215567318187796469495914525380887104628412677880657060939082207716730143549511268564501926689325058686870672015018431076459075651129618068718496250950814070286332811790449430425549016042774186385266246284975962762139596175055529177492142841034379783738052614570747656196038432777841109885442672150129301093678326801371904586370852800270206112189125824740504304530198983696887331504635878935391579584704732414236594545423722362387417580224331962770102140448977477788680102585719760700312127542756798056343110982987449283097710109898363883245657171225625232490415404597912257411126072871620937546169559522765292368648324874829715737118462388116761650179687026934601253435547064876241007016722945713088994920008700029877778077233657471418043108022584309672332818223414735050528746203467879344461734684678717287983916524708663871456748764867729847942806024683036922738820008665362519070938435386831069866425973747761785514096508261224044443434516868601824831373158385165605948214501212633023581355839142035742410479791471132560339802902381364643975362709680255469860400984752539578192833530929249073858176495502656448415112883003441644298592381078164095296893205794548589875190883276369531256048514940001266485563482441426920443429770118785170444503969435694522383226624667684668085267789160246802901059075615952926738568967791460075822522632882094348305101900675602385468542303358911720750690678497059935633800663498833409303211521491316276330969262634645342179889570920001629530614222223441226548933373350855453561953279974650998801766570580261497038105212136387211761376862686668007518383562790509157518631435171179622902990832070042872104225628247326867526940628181943562820664549826959759727975108136070168883147553397732680839617325276932145594827048080455047382779694685196560633911886450704528875509475493036982280618254326624579923147718730440472702006378846748610567441495158246470404773653972922150842081486787990728935235304702737714525269472180924284686524099509493410873894240649698701549843276452068236226087533989020474346199309347222135269998214542870708710024816705419154440460637790940625965393784826028167882138138425943990686406928357529584842530032162392650634603804137945745801952361015792254652776327953718650810313169524143529566931523510396204445449813720579298175109068845609639176520975479708420362684333634009764791927944524011345173389146687745262636220470477880762777232119919230395523623286491188435892539995434920089233625356212810632840635357333596523557867077762170932666888343975621912739675366563318549840460356154646634649353123051435353535175103913949950840631876760961679181603748313035431607002847006843245692862818734058653719496474565216808189697423109276387166517107278681989390098945189882350713102067618325894706370287065838746601445288021489763925787199019643930913876966135056244906333447197959877424914169460036318152980282463578710458576418161743270340633080015567625706097721682337805050692542812945779621011316176444950899506609031046910597416179994349844997594698642929609495682398216157452975116221967405543394237208194705455746851104951274718811940956602953428807994253028179976662577061715400168345907493733699102766846666494422409971505253195394597667735870523585062328082939181171294527528380938069103770678456161570456527422447967599947235801477491025177110003708510282483137196519425776722055683931701283491652452672857358925255399869054947942953554658933011498450731777683018009383905854130195072939139328324796084772500299300133411634718582457149605149818352885912035845749048598774442531436989643347176916851930245539143622675429275531659480160351847741282704806404552958231174201298636168687084951010522000415384808326077952819237583358420743671664053847913398790346805870078363040458690547915066438525677640508597450599288859452150598002888358173233449658056795866210502181894557461847103962899330431132196742571518727390344655888316820327596606379590521114901002840346254244210194347677471576577376501324578599116080965767933899064777694587688517329492003586182065739405474326013979586580593402281805020912963699464286340729389111183492932671817333042568117753335714795171288323547273381722077231875768974799343902086188987997625715240996738103503819837693815419202772750511149714180957750675546853979997618337863754844417598394902446759552348631869250992200847067017115791257020869427496247094186650862930624230937165924770843235874779246249066212492352710335536442426133860314201413105573506388837175433845050604768969170157243504376471900531770163925699744052486378384370085362027906358526550587328001688004032405339591452538988353739544452099012520797198306952862968407922774591441649471047323256612241578811739647839485045378814989198597319509275562547938800279923159851082713186542914367722538344378114328430293317622398742889250063082944440269226224994217425069688150131408803691188151666623465221334649023333311931074273311666939663373274946797148665573257085685619985551618049045585056222911616488631275669753962775920655405559596999597395025886395050700924531735049552819284090223048081796441136871382705983632831551273390402654067719969670897575442888351242285888275943955288271166303575068396278667558229781206922362826301872656696978623760296321981910723642966559017507004835001417298761310714771819032085123906684475538552293811249614769098511490757591584033806194681758935203805750226244562881511324009334197596398249189613589379191998464735500610101395395981411646456993799120625781095742730893527577152246078907083217112161521617103723346663113074087230911851380352412898778247510334682816814203410474162864338234970885583633929588042482298197469782718444482507237114205321054119492360097983675888377205573789517544513530357597731406846762841208553300587052692669114555340617657251732394464566393176862251211116372650000853654182039910679775002944810257990970257090063129514415463943883170661015184146651033301304322042113239005748615459523651562675879381033392723077994129872431214015281657096184324867513612063932760164755784440892051960344573639227492811655872402290990649684165395156710582684601122225651434797071699013052804826689715418141390695237250873232586227139207316233100926821782338908010256910490092420757713748165195392807182330745217278058288404214955824492047852827154503991753034287882105171868120615440984267389667614716800637768584867161970208231715184233073970352608941425139329688685800124075627165178628931892545904001749036783868275827797561442550836632358774674701282271815275014023485741056454068648665519494562599310157858102061118680280671025222812995650539388876798788672573422975665884536380506813897611728909589035228291115909289322653929932333864068989893900004262606119090483967666948904340931671327677615472601844713906889720069779630608236537901574395514308870198902569205822799965970261680596247018016401474294158438195032781003680002633731505955503737854905266269626855452372028074354929397500274913638341017581092372962497482143094460931966393908148508383064732496866624596283632408617294373514043193997551817963013195863992555076761411728299362858810577803542490780467278655326385746724439688822656954453673010106037629501131249461966985691482878842491127232860903476549064973167026861380132232301680431817488856837309861076973067448220308512179470129782302962162377416098879141934931401792808042012403077000686757209096388569952970886192369286490565143794466708713425689961572362807640488209101511503128083962711207569770388379688198275694937632998186208928555084053449670999462068213148062563917251689152438567559135178873853688655014248603319325674634722938398270382538092160072489728582230548666147101901938246724350135848083298412455394680128420309747971995568559476790961884285706043363918075607934092687400894172575847364823096794460260611475721897461831332130030427970846166691320957199460937541501301993697291835403721146689763196016938059451429170467832699206870120266139390509034506432488824419573077293679774802614660753782150952462043077499636927924219546261479705601711872407015964251942405999234393084214296405110576437736773391299535044629013018258940997945889174129825038853651041353704286145388096034279663393207276016583936234964250747256749371006866844752385723179210039470417431310031314623826121070002006090621489373428594939260178040047056490083010626217372122841610511866321643971423308486699355731642412914174738850199830550123889203438507891414262115178555656101762945887438042763959266491059187274750573840612940370761602246663406683539437152620428644875790891126420499720157781706067711532318867155157354516019990958009172521267562641945784165841377621179898085263876568373904043612227464126640414547035694232710107846613883192236761310545916314927693795634953199303214948948941327995850982077283578691291430251557376865831824494524944875635378485299448418339018094475921673389469745070206222411642665463726582049323939747440658996738843985398847160133718383624233304434678626009727920171060914542246638584092369110156906102100879984786062503026444981287876648686958652105075183802064474121955357951147064316049269853780694127406206368174711619724866703806072404748884442706577040492734617750692847963996259527297734080593726557787182265262553954844367575075953317978885500852482738345825359782786418722561495984369536694337466002455109792698584629970777818526692568237231885271006320328939936540058118183180619526345969202286871825288042342630904389974740776185931871666468505746644182402874822998510238042331081565264727754935576308560740173844708364362286274711829921557229606051027205104685394958531308453704408601395471409768328742559649126963008787191675619469039837349400263993770212899533028376940414503249706820711564010351351225783636965892116016645384530211262814305540275683922959008702213595094957651238887365814895238986285435148152443956678679841603189940888221970359876052269019216566697033407753771028357199654123772485711911304293877996795957698223224691030714587116603460470412424897011936411772184688587839507567027666449114470454954739392126159920144181450100889170993937778609960728342460996360635328545766707798852117316112727933392064812948409596724771042737581973912854889679824186092280572749697788920413463658645623535860246891467458477357472899588718505326529063496473598998224125530654852522243013085362177345016482765468811821355657094191478299063395651063213534435744746528835628331596177386944433325518907712826396100022506989138431408162452595611656103339518282705586316481496474430561065010645669188652157962808788299329293914144196970247116789005359478538307730554108941723158363744781073728164155785166182193322484065246538449806366444118294180436121100148148474181255238388718195419113726146984512909632650414820538149208299450589530999723823842114910925898373160227827867112677577260739489128997290418177608766623252945546913191554765949193712757293402179022948493759551571786040420552579361414668776486570900412909498519347433229202070089907574759292584995589877516265318948483832916330669436972407869321047678976758790947455710565194393902271034011015807431330715665542048988151604554338270002076581470841224687123388750279446603647208803986929583938836330325147013535007112099541813635551800608050306694471013825517492501187726072712581320962215678439068281144534499721823567597302574594844792835456113029437507442512666148778408541295114657414438025570820202132313962116330575333508310573894528501998963052681439686224695400577951992780960231080303802266012976562053357061750838685885475663045181941289906938606278776673292407112664917701400284912475848311674649902932537746440792190111399761498531485862796276024216166775416499556991795913815378544963194167505008825123830491157370257616846876960956249396850921860314745742205497818943881017684588370159883545435523450984284444705244482458791182215306658789317577319993779513079775463177257538777839628339367327975565436385388671080955698064493929401875087021184691144860371060004810713960028413202791965079384323217200489264594812843070266314352792173719358590402775111815440836918861866908811296651905730071518543030900602360892405713510949427632016846529695870937158795244376604914468635816314266104651478718431345333571360904915505241374049653392509867629878805949416239895184565672292117961698768801587379174047951103773005711963436982282040886521103041837131751703075792429136820065928387046346926835451863690761552961466547707522295251175665457557979927008703039250230249309996841422394576252147285932088259030579158064408376391149219761205213490136847153819889135802444492748483125077991442305334099328864620332379389256113698926218696860190173632268159342258698577084156245100310500050046889684940812821170748372014462244776679481640185989505327490358028546317059520286423330153860131158137885401520831555418468638700381638744456298884037223707174667688493490795165058959336459639197751315637957270029692313098607512802133363470316484540638621646294272398155873861635664362877040229653573677954253574099009738754179963930319604964033572193797382113950268750516349551643045037423115577522809094629343769986683787029388455896583381320843363997868540669641407437519174727016679754756098928960300641808319181914322199358792975834320008032259834278671651506678579545696933927444057366691740918596492767012094610145189214259721138861393110488668058066358374847113185372186607076785129591605858604325268782913412926810505863281206944478867356950145463148713840104534981992070322696815811024448183846042815365051731219300343138677052811772234272678601632552078991491426871354752101457601052875113904327123672581313217369417833873087428967323625725057378128230989609443208960655967220012133107632331196163561946550949935827676556331573555405087491675716579255760904123542010758433770984479268208907214618732771163944735353376384203451797014830436745993673776521110820825105707077013540894491973022968367453370649979277992809598726873395267261849133186844571965555096444567582651773703836008997218813808447928468435484280621127093927516073228452104975974807616884946522435846701614787674567537584016519741807560770455315884472993571111435164143286409940456790483642925272767355194009587956450175381160863127282667429381544901159018901068084514944336205606900487084737503246576449708734053723490948135008148980214445045522891275590582134553248213630857442459276263858260515955224493465833984072530434215629590341463488499444412148356619663455731522655099121890138698355175576729157952678828204723724507264248087479488676264048250778511564353305425073381147650599051263678125209774498887951040976627627496131290884329309738076686090714755107737393716594063571053602464278990623926313204480756606919282900394084580656237759446929073845847088341524568030084701731825574738556564429006497807773648873028795633711037641607805034334927134935214758076636216160653707131857225669752006642470171057481003122594632048979293983996935442078309528243089565566210776905352297099610349448213645934058909743751753287815090294580589258171452927546185682695678188110534828826051948744058945461364075700435796867361278162760746669861523454430985408949648587922750412351366042887718762902978833311452895471571541906261992726894801223369826415251852867115113701083655785337273709426473563148255172740660725360035260023807909399573329462943016985561004833351705541907229156576855305761443704600870555261368889627165670337207115747433066612644090912499790692846906462188780246971527369370715388784291025241466369594969850898005847793872579819349942860705533171478127458429998793482220571266227841631664978898364515793328815101371654985976362765691354583454271815102009539706160119279033228107881058854685501382333306928694810514366359338818622332331516844562636286416300717549583590788715467053766017283234788519329985243924052688864241526708120351003417172584700165425539565193496893647564863363230456237170946683967910302787773095855977645665648478556342581250040407735786644136657431436277593763086627289993685837970168174943629041391598901869699707465176345308478971694975980087747127215852182613452614706488442111922244691846332176354169483607439940576445981802841569048833691906079897559270565183745120843609275387902627928032543424496638621703117300531552614117496680659761273093308203658484154084220119020270613737891037075819044277436144592759913795634329074666755427715303078741825969502975677527027761289703549098520375368803477211046281110534358646307613217415746383315668301696803684538504871982857144013953576955871811632420638104611469211104080783320359438212690391465397003127950195772967246586942068758108228035534846873284453934239917491059326415631318153072558201359237118158145394138066881974873282871091754448281108709202714323842199894040026295222321637566400051730376682100541057576696986508089435266586294905836977862362109939897252683120514580192594602501690495682140277821676069998409651538375763348600863817263768229309797297254861819289275173496336412729201677968562169173778011629282119078596139593783339534811395823620125169937284917496027746128652682124693990242998345240710038908391951236362929506287745338021327380241555961207170731067404203245044218934054628179731380209987222501905807370125846354880726794614054064877323286482413227393722665409173053367718487272516507387019431732670554135329149909497532448285378169119987151756386643934484291794917522374102406562492535457917998635513626692394285034471448995550438802535276486673927498983666792084100594160047100805842664516642479146262010641001461269650230955343241754791129242486941191587392786399742566688015040912443952698101017155893362625539828774665608283231378943547575210016779072441350372911326510186605154772511037867632753666886706711649565643003864278515026779887061570283266675177474535238406840861745669461666766141082790446897274201314262548950837898987345279365659694208575949548569665616761257382009966329876350002148481886166411239614588077948536852197043714372490176112619441810217716136561005948532702794462900694647624665016852705904929484280014422982105599542948940337299562345312745884220132567135805892071098489056823193498488456571644795617448273048260214117673289864686510227797888516483796234875318098194831038514746262489833124175073658118721751466107306226590536826806820141264519691133745223792964786469720213018035450979136662292127622626897054739705324957390488659492894695444663581515628472011356910425250711636926791386839988110253622247568095951120411935249644923769517075712097628465631492985463864138313700945726918228820165173519271436062561280779528141513299126433790591998370425732123720841892981892109449424444093326861164664931772188802232717644876004028422722764792489857509209630736419400411579378896469143932636007688477547733598837670908670326087946685930777834336170892521287328953517156732910326030887071300080413393368325441129283866052149154282411362965145975129854338026154363330906060313807171773928144016851256030067416501662893394877860314437480530400165583640449387442737324629844876022541986073669976358814724951846465376941718181487204941459026470226855889622104838736247767909851682600384483648828693547797432959225497660009126818291788857143014169782111340355238715355228120668547966749823526637332723254753139958372351666088269792299344269345788539378627634377329379617067984736288109758198103080097208597892811646773920027665242744259900742328932496851042374797164703312818111250717605563565081967166545328045164001765997569132406362429053728876790800793808541278901548327859895531551192156138449483702129423182300910083727145172451472408079727634747638907041058151018412993008570934297860498899268156056197361613699160923062198966263112808469243733816901141323998925916831702701824462566935585382315607582508646434884265750401210263569383566355008528961787228241208769223856536660608155765389261242407930599070011196173243980321413922342336146065596182522336676975857641617944421617980193382636931627803094796237166364871736353696358763756035541455807569122244983706466103278061784328165199238038822475843774065413585487275182483345913031385728690809638554641222631472140315229400998075599840154409644044577850390279477649490432255089808202850044301083195283830382924321709617241862429616870588602258438338802620441994543405609116746374644786238573457761008239393733699172446704487937691798584385150794099211046507857930882609676548345460897275058647899453127419088569523098296565532730770341189600164940836005677445618760292307082444960218713519597924206353140178681126487685608451881922946599554480302540229669892737413421455113768277056287923932893236670446013588080379667398843068292607332880367279410351906939284528856562854382269331961900145333958230013350220419651536032241215912639960599665068273140651648117992490786723461098463791123398224394981445253348475121118520371891957039243347976282822382845214375175853323394293042770234201494556927059739779238361372089768431274290360420070774511757119243821218715060006007516861192364582420204551134183184496626550751711604606415946405255988888736818652314532131539087411011500476161559708710079769094404907588613736749989671579164546958148775787006065015598475680315577152901303664251250486685413707236296327290796600160108845603500802020860532179952094859275833955698665124916944660914192556176200799887203353709507771599755568938035834021646378735362909205609072857976259342247751046111884148662633242310461092116187799671424151308893210702883263987299498761810358068450568034328739033402348747246820236357728399072615702637047529724292411027602046282780107679100110079951118280650820175805280258545143230387625553392042018653442385237351932913516454418096462158924737632859355669783808039560608440509170816787096666873402527135841445937306603818244518159963554330696427792111176303060594159657289439105437846665418337768338033440469561410821369633928184558977513412635154029079828302695965706825868415264424017941405737765623219124196066508086788195130719162162265738999878905154687106913765254342852979825059827693445065580908429502308099494834933805610958958808358546833946133994814046333078715109619715479356069906011569344929409672986016753662788592958082114182453029692492582220370791790148330532761152760835073485877183381520888035215513606802280852146402444390377993839754667308810840112403059653513087408168093056415008282365129522714863191601662584723914108316640762455300099744644646754570887360204868266406911205814762033545679451888109481293468355655847367572356499936904526120294821468317237756240465376610593139283357618463633314132376816317385210904300021066137449006888014401126258640355236245637077459139384307363648666421381550433122417298727658112214657815102351613189679863930646110646258866976249765309767310592026676309281497830386254045691790731098225350212133842632170311800478637703618805924857519848771005543883486736960417196378070660737944410970792919575355448363659137027535048074359033926670233401477396935789638057410465987084090575126578821998198106144231713511067605296438712627217331886664920268827716561859518669171977287627119984142106433859918851594125511663856459625844788816568089610108590216663678192465529222878985042730014874995617539796454391394363510055626767350515953364343411632294111348311087051217093183770778024387616230653259019692255061704980329494286093879316614434369037970020266714513088290813605763209250226624823176976293460187294418121010887420773512675542894718230962510903073866076128097264354971806796839387281781011541725639776192804898935506430256159638575167447301808704530316374831620202374536849806824898039257325797327908382717293978063672406203152076473928358439728106056626989617795544230695925931984046457358188240017375125248782824804933764005199034148698844869703714271765557188886761795791394260874146622048833495629373887309880631235973466956625613514718012475798174406849811605002589934514044852808025052691379036377880097639629123948549371652586158765985483079397326732673463206421205813512927585651123370821635110514923254949016998554197912123138812238152685647681427454435030888615898742374427970080427810727895456076283365651893030792083924925098607433567137292666524134623373720403722482287676037764713014763873292667667882542119935259518555218859489360778548803289260324497687440339329494717634202190386063765790952120812728164227315467347745681133341368064012908503881435434327277293191793516680610789120229110039824433395108354705315909612970117689583213445295757970551878812977350788553683469103477886960679829370863612457736956461522956980339556793726983339417701411233496217428124418291695060918650051115042197186996981773489651491043846953941895006924599561253539422497850121251850302917242192249717226886396186128274360213241188531203623871213308011640482237069478765527988339323486814712086453774761795995292867233391490073941314646860250369817748019105974164673592098150967433107203929354433762322477176759843674508614757281338768212194314824017026110138933779076750968131170976079882280731971644166984585179191158988929983147188734682591089389839289063447983853126623411913928946563096969229965380884967154715927082623454681045978028665167091199851793842132909633966770044905177359621580001080600731455296480789450455605523360432892448516673830508466405181306178400625618107373175385780667927666502911792494458716158884341352790642506812631442136265627845820644046744534331301243584356330967265814409697512193347625819712526333634355228571390944416671463754052548876003323516198619991603911369811249622786958028089446500912728665264423575594023114555873430138365250587962853501382119623498973993267985031915288433112201666869922257055623087388909810830236327009361148952060162836103380815921061424298488163576885760836640753314903978080097311602438482846477071842295837844499029520529063443869485578545120900061288986437161563615537666416229876526331726450437714043997146557319280955454219020895282315233427409406474932216733596103656252319390930999962615259546833918883246145381491842808615037349491233296862925341246234445305456942632483516727979238813000274718945230816899985627331670492798831547249580467820462559463445719062847654815114487007720356455001928780207286717891549308014942099418850910625704269332751449121840664026505244414421864216885369694600849369281608821422546712849440568032810885888592291854472560410205008724934626865747399608609942000399428260077509049939823573435358468498238184327841353647299120367701207414767801356832169937883167046017202034231803166219987536635887738584078660898693618407503501765444858251991893323976943439551841824657608113361481755983595939977735938826348171032120609798498570247892688542154057990926024242730349105573400221223044100653189121634164565031249265624243029006077070152070192420064587294645816835484977655860998714527745121888725566389773410717973480781231048268521146084613606915062627494349289623119255717645818749160246832010846056139863339594386430170134825039627641855134577361725581678331248124879710231951226315393186445494004164158080728171187915340952356708032978014004872705700069360634505772485359365025460994010727837633851105899184245730006910544782279055090836225941696476340879137803723304239506983893104568857903073207549908869050557770574944690826825246442432256410879616033803757788857651369286789375936632061337630206879734569546891904031665247970002466988052463786261667040641240573580097570229175896401164607044303992048873558890198284479977640851949941615692265045595402521421849989929198271546637594823313238032731834518594994921708967305194199638023938082669851920931838461709934385386527453174319727962004531889246403576942905829216567530858105725967208575987072059283113565419063434539051117679318961748408569618222051000129713167894165288799551447359889406867069552427585927768977629300903108977622029129905451189530990936549435652571387594847358837732641589361412441660680284158054634625830010209764590794725996964868595186726026889569595921065358819015657858854773234485910980104574520942077726424449949001798950411543655802968833675799414876601606834911578048611786756874733878249795550185509433146066470996271811338320318276991611957523505432358655615046289574685867094915298341558452706582277099814935370962380410754056216802316021464862870603936258818435223211881910959040906478868664927687186945463439679205615053542830827712871262114872954722396344550965985473649016947403373810915515425622305134679756411853952859648483436940876816629114624394907913978329314571553314863473032391208809628989947040406898822730929563378845020722917626822169889580348654755968050832846220118087440705626609488949470014563866289964375723412277343863764720692403430233385539501509947964593536231619153362455899818100585648397082183426399440413588154371328609448347869255504174906462716011553771769748525367855856236112181373673879759405036623267433527762212678969590699565631723353345681058198629889390735134567227162202079386393519201948238255508964643276443793180960473852050520467708754569225244632679525629749220757757463555038170034121770404839067295710094812266646338401142635730584276699014322625863554941389028641557936215430903818080578619961004001510968442505869157215349605581023537445279897192592358499869601250282014315892011749323524886946608967299313337484139612460404999059323724429736338382244920969015646835135973690099531908486678776703432300252770125631168560480711696379797377933977591178943948130633933660596780190673035310397091648770836551451559197464542857058383625058790341792258567196414776225073837378074487988070077560551434483926523625722145107357096031745033099090328066084519799098147191798944935706793327142777304591115670268341574518181064035396444170304902294814322589343908851020402795124130508175027962854230465392080341141987134878180864379651463329723856362037359910644965935066485965182669755847579807060790289380205706650415680730733306621992892769361183074152267173261601722852267992640219712598182274840454471663351876365866958970031414166361657281384115295194927721407115458663370052133293867844948899214223492891349216662449824556569257002110180782145134507414282313117790921854428772744658324570317534310050523231282059481303020541764062503193348342412418693356827496760680251564166401425615792992265043417245936019324414181864196482946687489038075156734619089250841411795200952506208457512457132017282542338967676772615717902241558567596711502244496407261938912927417918062340183522939027673518202379917702309664672962941436468953963707554039157237258844222558367687091597308359297968080128137127002219227464397306688213545386850270927343566233703307911079933562398044558168788732652508241466227928417892233741283427125088517777167836510766681891440815391022953287096995483884222060629651225039072127656002399259537782706574022144561145055390764226053981915556634458568937663223402407466483020414525301653503047615683350270573431249385383802672603441332867608576863658875316887773200866672483168776326429264902207311846870137794190901875489958185339942010901497090903256049058832251872914561813887524034203149513191610655957548824621816956774928948522214315859190241895084703895099239072846065858461023390453849792714808651064803919691171223196916988349692730081694727919912387168662477212101382679645158107508128412000627572046873999781074166692162567404990791695278692517644018625043244581372431874899287679748062445538826705093358184747953419833591289671204993930112939502459313076156397113031985973239282440631884479068033945849032753718184976936838769854938839749878871961944307963911731113140177549458516992222248392304575491568854915772046303444519949410275228414092876004764974906364867391796371261742593666299838814925237169938197476862036307623010674553907664293746051475288781169943173960493129155837886594342994252180870403094051419993901640803279823287260601422998309379720231168178233814857721655031556397028653417801479043724576954289603967089817648894130691704848347459588637556422381034879535666783473174375323751406048954086001735625328705933915152917199339183990520914194570716492753478956639222277869549504602213566719355910004169848493336149767003825805915024177882614581367712703619079958834310129694706514502737798278205493017376126539528516176400746280474768722283982335119804525889616621270989712950119990340019865242031303801115034546456795176407073638609974060755124892087913323316511098200578848266695153894253085433027788257621531420744151602879117104210951996779958675361693738601497914622901080739561089705799703251458475345797556607851522371664151295123974162226824879090679183006635387796740264259054653240388939434041413444488497682403093650613977370352172455922483693569377079985396214430811450447601701714434148942248090947627794038893768126539069829463902144408018171959010750732174251506020995051469445530389905069946195133002709944404847362505057136382542395483936263892174356065120246508436333354236536303577862083943746338586056241444660910352834536260255075226902869526848590910957974927097574964320914004088124518427143566964525363971521462595094853980861904827558721118095648754573404510173438809252989929945986896281013691637597158438006078328246842687843446569208674548047965096287652312123766618197884359014013548453632136780135833278667789671582061031187829519052338585682094230270768710157401549822982952658824795214475102820878381741644373223603950267300373285968315000907383213974707295554513458350979753664273066868222376519237906196111895908994271641327267122340949544997158467357289227738768149535020822866477756354911502044869860879294237921354318415469186469105941073065066738021722625623419209342336645505055402789277801475000083618917314243751190280168113810110543619617523758299729601984481076141538944720330896550918536020148434642558655414391019713166167211077155551128381913180349744225929622137825067006455150576715108668246418037623708816149477743734504104230104097373940043000914825824572613086444897732137725570364763171486930690715224856366514055643310299979254147098424025292933610757073067836439219533238997806009949997318412111660948304130285228281118558954885482928985616989743232373519108669026487418615288941683903875510711929448796269265693844765586826413531408071697814052552200817070227400016035626861491103480855317236675428143420942599028645114932174478227313959676683139046934178195887481650606965733399367870744433296317748034245448336360508422003273754586418579665499231088604219692756762499717884178464916536737144710645643739684434859930550068444001267686842556308343222485363797519092630973698759078452602150560409478059444597158827131905594884209351851460315032165463549763244700276392631939241857217449329260825493755440974900878566597979815305060417027906516504539261374093307907426652653499826970345728925182914857550244881898872403857564584046929343169372171248028812269684238949452468325329506595704399370191735018819946073076317137560052192967437050549393577568193389054558989096989004161702365071217389998561050440923694274853801177800217900225186133158223868258380305274844511895498161448512373232608486524197832824898923146463602370346503294023517823609323523435787742290857244141663017793158356059747456846823437576052626048144531105640933332024315813959191725693920252178540986661475784584584910084138228258950962397396630748148810864962749069310959973828617378010248719619105045591240502648939857770701860452160221221519340495867749204881301652556756102182372497313310888396245465125709939879975450161910058331165519768238607604989817083413430874281681257880970971461543038548804559429947998799952290445373224089796187450434115508855814768922009128426620095854952795437477866969041958032217726783834120910528293146922525403473689971552976384412214151000102873427142394064454159307383709544175169677413448852194022291514156699816828865629741345937418519333636755611403935027512741694013629500436032682076144549131021191743716725872542793979183555208216833603194263133117913474974011235287005540667214101947238015186336674972411795720247755700326578745392106703802315723394020727530805543527942452640121412189893130533579743217690466971555100332332975306227961840231142608290406998775673160589767691587586178270527458286703237990365998188027145955797291362398388006554556861773749311897366014905300313643836222668333842973560323077049254940513047295928500453087666459165553433833208298082782775887854116777581491551372135511510129322437392539746881852156018126266011585961902449962131801505581184432455549654691043869137930546374772603965027507375062374632280236422769066782832860052965950289065239926389348132218019290347333172545297475448343365293827894889997014610833536242580639106600746125404776440250990254084763661075944102052117146755928628479839597165660229461542879867868361430017621349660638849213504099871471160934013581274003650284990595293579445886283645757707755718880016144551991181256867097552446623029606620091141515357539433415617414268044399552232813497816768229943133271324887098155107333679420355034497741525275199929078837665984104631809789676813170002257275105219169620703028733358576248676123498986746706859985103019533792776911117249800854374706525814914563079780927685638754028605022625932522023604033539687142201383511982816237390864157274174158477296461793263113118798776490437104641182514719239565108385644709777831956903084832437791427676568543264837657480417152466132215263164648426655897337286916156879173134587118494148811608444524101192365437610499640122201133585073569682599795052851127226673995685932140942596267561428902428801713051120629204478428404395765496271252899282553202245438699774603634220688963587711438557252658546228272132424331011729633288421485896925648639589377590489420237547094537647393269039239586783999216577678708190423616935868902763458679967312820956140485662260127213217771920666286332724515190831458414431675678681824365010173179477932665373298957593157602102367685756257897629241793390470252542042694250647063710928038156783072297405846434771640407365777082561101797646987268325417068024315828164241869630538881611015478730069177618930493777381641330273994294878368238269420731441160425158736594910921285360711930613452669835682444187397522549594157851671981642291226427391515167803682930093464114178335742661647575613807625888505207706644227723251054648393065822695026956887441518758411585689903729995275649290804549570129265742532136767499337045179169189813053033361503793870990388442804546243183912240968085544496719376712230208969300930106048402906536287768922436831890772398860611582939710388643943476386852071738471034015356937522765530668922204444957349458819587166814075973380081688180597890742343584644557087842955943884981184210147661614943377733715586043405915240077442152059576895859147025124585485466032483948913451500915875304455333584625340757620742852091016381618504326053000713705866577941408183797874674425278050608586850782422870713633239216203190400218557642985872403820250306722434595845861731626467851995964002417396849470326639585346322130650802927256607650384929020666869395702659480951874394122901775122787325471742282145301162254335907485951021020626879883170543733152620700788554275858725275789074802764344124089306502740970917329242544854246044028890349521051893934209741326954070494489664846637427532995732861322944839199356985666589835696552293723551589514005964802446998330148199664592410075629868037093680437784100234737057652836792026262062105537012501932226273291013542629981353655806731542625808835595379565019568444261550526939321402124386850566228224851719772469838389754245123328382488647507556926656816026272643371239922253065500156481304673380032630396101969628061872231824034523744772502826690619039280957540508190355421831083396718501996177727701932801197114367908959918677794625369624410314729380048140596792112676810621536346687358948644201393169594531551434358773930892019348789770596917045479584593434086955682833070532792695591903363378341335118099384742292279853579095969487461231012105015748725840605231011914002683255134247417866960885238139838533079552629245575760140690779751180960518257217937829245034121807885526005938397696013996681917164456391231076344087045401786995082140239620905241258555819895788565818676939933662979395394293641781402954750610226915726453972097291655450006297790233808857020944387919566420962819375488793949563421033852295822890914403468232848531923575596656622902510562221787257564185636918240892752075108518395460505598815221087452725664096873531574367902346069141888347587049333012592392578383667407655875259295330239093102325246361109006005113860005129440517973967858844771677569186323092205050925984532458283378664518653644950066280416133680552955098647508872713118616757812098273792624790238761371246265777915460992485831653254739053824921910990904476466872088457733119968054269489438157440121894917671794209163613414720134130765971449480017865623602333190489818500481636485446045299301109256483903441438214928969610019232636107219273561821474821345993897556543030575292689491249026733452639711992710140899727480120920206277701523684990300801589064464683987716836226659855653741839859756594084093624868181885690664144955036024699532723650817970785670355014105502297315402559557638751617595259295292829015138097136545882916216621987140854797350805153996830644240537842836928234419787381618299198123216420492746844264048212863838767340685907002810945221030170310649894417554420865051954127540627743617009521123819047669308559459801921731768838575693214263663712292233976210992484157454063591283849022359371533960609860036212292562457622419385559789646723416168070843401858870169656472515708676711512674247960768782591971905803175320581310989299744605996578184434047871347128061333688178628085120890472903490602319263244004690880114851966661691535094077230215574212253402071249671221300653772612167684821299279110033583940531553387888763565655686217893946116828141480209412608914385024954836774115393827067565691666233894204118514901113179998906524121803088618193693013003304931369559404542584751749207797603389735286513039173579269469603783793105910256436930658479595540158439056650125423115258336289764977020119641401585081467407536726182910166710618917074764089986808632532307804699893664874893425828395953174872350162371284968338702197869414356348160039995137098073133689474250216237290499780497979278991850844925874052255456317772996221212805509938215823831487842313204560099414782065595789503429867454745711614033760811274117530809682816171480000669071059600131768415304557033481827025731215700490961798255727400026781370040342736326695022796724776386111637020830555697571553162957219870360100975047257178743688064769026194798563216679120713667907156530377070769454470905889933430715893815372614741000458567490865378150368535888202439101322907777869535164649233389782641259541888265674707426925410903536403837735349043082327994968562272157044614286769596753860062161943383964652537184554116165291926046015722134045354299966486843774799820239160685595428059719928870262000952186024056392798173609674565931549458971882799075437737580367534542930312199404655015646324614195546382559658633051439805266704379429242931872892709779460555114581783718797212695448407422451310043941875712434669720686417728673255006354083161007172223588135593697878056933963070637625334731872934556975057266672908710492700430312799563663301413108411770178299211155521498917219353867182856536603404435191411091301541249213350250241087553651567735714574947462012760130469916340758073893648433778316848117484531565123196053181343662927415433316819646842638623262287219360233798076014060126878460624967361479869369497747752592806214513947016060794808655330355614542405479974292129986351053480013070384977349534750257166444732340634964062747762725440566559378589747870251341107756721658727078227426497915137951630362801082711587915699502828924179215119178547861543888470211377377762069513288048997511624849231247828160516523984353311250791067648649633297257645083825828738743797860827587197782201058759572080717155634012687237965499978518385820724126665382123806747564460689025687555031492941698678209136715195933303454714058618997747288757868005520162899269075957505964378356217476214726154689414512468488574121472142761028533984712083392180064753257292816356531921346649289060721983874310382295769343547058232424174655149846718149384764782887330245189111111792378898775957438628254626781311022390890127519454822163835204316207309453947498197999893913916483078492724638656009584416241760645155111349410905511145296206335097250928082997689393583430465206761708213853364621378451561687845443102083686173564761556798628260505380228122381395000031590526963313389617938181566497548138672664806103161196160371284956035848025745920783834551254359138022413310681287533451217604698752657078227742250782840486903842992565015106659209647933053775486232989532918565358571325695508879651211904939193309103552987783168712840584191461531782862295687912464792435137079293738332254094982605958292031328846800137122401133313528251359254850795003744109249650348837202885150083893394311777429466052672198662116247823679526493524745421123029513554355929924157935313397775642940454084978636082823060500887937215488750524183318092253152890086266121054065009214800429484128863994021984377254131396804257399271415136531050206364436564852029730636512479025739170584255437582488283357829096862364595851495406005130743228236999821598275154750194812509920079252980781371159746011355125427896634473985283534793586292184103750748134985870877759918500500870349655999827762752462804205991590357091663957449552839326206701752470068995576058008051953653995629406417914819735388288401987831283898872449010411865404096756045640173256088004221886627268957409372121605520835639210506372087415866173833395911449947390760148951521424693156475065179099462071297420112093253372846918336261401459616425314299178679625366729624427869505495615665443689998847563356558859678121368371570546498046604115743722536742377636671483497127854372035149306304945903970621448865342447716165377403400794502669504640542427666968932153602807328342670781170555046465921112479489562613113939155581503844767594260188224446591595110121817736468727099639619319256286882699440722735865630990682614387689969970948001494846406654357088584193999617417978691421648307788970267512728285531355230092181484110311495795128997133945706448130912069754439054160421693676239412817436181869341534203976545943673680905506127530806156921946912994512953930236878643252064540280719350924088613499765905954968027390313262170535406800518548059815102852697413634238811708799753374675963161855495811721199501448181949207808141782598289372226972851752991292949650553164348855040464384662996552267886568964211140838299945148673186012605074776113435348334369799799574468327087645795304886244162820619490226140125096078956030013133968763924138233978178123697647420972153018604620725233185907380548712482659682400517837378617384052302805142136696200435212485361319465945678586351410312326304247901792732815166001769172295594604133212126542235592229223691922522103027382997824214116764163562418192602237143714826283743925711804692307023222326709025596188738277055364960634250797612638913958443312064587388030792490550336613731062565635832216164932111462440004082110763769995603174363086320379563674990475414394570632603862975056182081910529437531304529209056700723454401222535309897548034704950467298361842436469553317760936127979751706991538617914779945095140669441023352185430677149563762897708251891962461509879312587276775189514107956042520815500236221035340926389073291985631691604526309527857020675820219816622181083186873624545036228571480855457773051025750494445960249715485269199877099975834766221057604033177298815844537991862830779883109217577102148743296357698838245606961929828501508816448022592052144801095156051864337844063942690617442138066642899904943794973911986187563827805421128063271204220225743438741110446126963395673245686039285840795430187843112454379806128888381986723326618437658275614859203561134952515529356969624165854194922926726611134399957773644520281174835437224669702427750726876483354244136880216483761216210958203907946997084469207116109869308756324901054245000458873547355072550231018247416457342379507709093693372254719703351430005987601602394827663925425255585662928824461494951104929524165445639480332846139155652671754010219391482346041541330368654420840250820116347807507001309460945847586854009305794994706083215322988765451998675138076255795171512366258429170777154605123333759379315841135634693698472433505264572012879731450975709243318444959556886874248878728303859157454497302013177024364333596166787072667551563664992736962309900368748555118040430163600142558914401862118537617005160342411105008470571372598140398119580798410733047771001424673273982543668357006697085527767000809735292772334918788883622296163114419846776283984277569334356797151342398274259612482721480441751819116382643843436013041536455933721954054487954916073761885978310393848951453889634543367988863754866396724210714227346919013883596125254193256250518837870984563839281032946944130691165045687089427629761366327629821756755806182966953185550884063041167535390610228002932863373585160118593093112795307861665028745799093870653770381724466800208687301020230741008924484990646651372174251662369554536393243013009974981781674741493127627595688556130085839993616730127028533389659833958161725723890228705751407455601333395769738662160068328203231460027442880389594801682154350300901797603437099331468970347884388247889949045576289298537806526090308449503167543617837021461209125859329543125696290157665648405058648256513048644759450707708045480515902217297488286810006320742427288263173517008239646149718790278465770086639402555353398803851041496831768006236233747913567639446189343413864816883351397793059100810110657604338797378967182785342146964515798548891858480678607852905760439688111249391372807250816359083437140729467288616373017469834904486896909138005191857843763843478894688180814399645856244392126849232251004461835318220063443646105698201583044091539623346368640844832323025486711678149443575108978003403119518445243907278208022099574264152360102908713378063002158750818625859998023674392446423168740983383649354640510216556236129402764446223014661002581008057879224444321129483667986921350476457806805196968306404222159806408250486109082964036856791148145517426337685615292359482898552711528632490231741287585039451955266323355701527514097030804928473241211585042419688962149600436427418760153384251675527872152238860360633547771767005243188947606249754963448190320398991349212645135112866742839367739803927851972631004836152023031099302007541871516595347107193826363905294461101958119707234228284507348791527924254515603261343979640862026018635912000145081664913149038764192108247556270442066846896675205387676540104981984467822002463149492581133188124327770457946836670614789430821254753464273491994700293841852623759099189469727996860331712937324390658835282941436970951411594265815068294214585623154599434267169614321323195547916480849233526087224494212921336079388402309311439332540646873162983855263274899329721855890981937185008538601443215357733062458970676700839428204830211796223254264931610440437835679139338265566068776457780287863721083531119842318002914154344630144851526489359935121838756478280111517891767863876356848341345636664277395623950887823721961493749188438814153277271256103557324154521686059086322955076292943637604978960191733842622357913021109397336093959217742529355790617343413292901475448540028101384129288923054021577816459570905113966938076244741613116858546770907590513461296551916353822909905332852484780656195653179258571287822892956760640519191648786978067036756025621997700143687632280530414258597524512210265424001665108253102026532942020088429347599207856713465905752072482210511973841612688053958480630953992233610039787289927782479830073818147614046498979665031960353602003512663031160205893347879406824466591889434526208911974755193616184916895467375783208579346516531843235378235273925669207389277950146660582537877761073020356782702213442810034400363758742737483339316579017580365908620371419134630841046787049635712640208867809324749263509362860127666780212648124206470292155410006681743779492829230305552022833859743946453095151617949963229406335481987285797243586826032210305423951446629302379716164284245608465130481688740309820266806663131792393944714887944539234204390785004829620018420268709689982953122229549987332734401205733696187425879292239739647708037842861515428758254392305021600436734713398951605049674242007833294930420367631531922039194721936661927505937248379108661392046270572461472937812576838636845327154965657438557935300218090312469891343326327369610187451562216205767391535606971854129999987513660185469849595218051027021106018447923838858135490091459660382034767017420886589604393107986484091239345980452603834374220086038119041802411568399755384483630487666560375707281712919920819632123905538937237110437713181114072898484746293152269046613992085251968725999810737829309156500338658042687087488576304905426666509269336961484252105241349274603491230145325994586561012112357849587161460284729388295944661678396019490545432477523877320655252965912445950580444999812009295445182284548669752898003668102594964165081263867455487471755570777684002241797642728801364640089847613063164796656364382949301141613199963922156597002005707237346339789959562297772375181489675593998914698521852534601792177776672676512869347476807403068304612867295566516299372217496215109993326221228852718837281424880516230953383322604180676169431867280960763161313416714959785773145443908777999813709599113369778610192689947585752794182922321937761484163073553517318103131549042986771864202857514920702936687992820250179113445025496736655322103747845172862636555539546277954549459012965723094311951181243967250900248150249590675772094460017796244104895817511373896908411072578168894084639931685393581637344429049755908301229331189731150530939085151399461896185079226515499957821139614889941083953608634665488032483754552299773964764110681779454819983033401574654231447790611676138005465456478469337251847069542807108468821106790421760729365858732576846630849357476889569818806884217673243520977026344407749522804227506056992895863388314438363127293470768050579317361081125936748264689370058099352303590805953057713680851782296444148793567413918933941678939889770739428004634620893843074232531692762719378874953107791983604516476280414348592508949662885459666926501918318149169502524453691864948467347290144909791442781803272422136764068934982023504407905521715283254354066769829916762248464235743311133800605939476692807864409845933768037959517664207480740300494715866171663078805921918928517306274843816333101393935609629642005003296498686469157036323651411860812589387166868933178581265444380897271195560566980715745866715605747248540023202865603112885945432289083743533667244909956645922166973234894479582884155678505501524312458387368572389954506723895519948077959288556675817202675678502663106974893967915359695366548790952517507870004044376060094862285962692255804040231199814420762789904919972305712065061765522363825416358013375129075764908831521281544066284226531125962023105259833845326585041892686221783238384683416286650297512578808430910723774287889386085668121857730338605884539643785430926038322163684730179269487487405273085487461917774041830671019517498262983071392067491022548743129598057711993122331531061235817657768561080771489934741592245668468136375852303315602854756263195023305263136012615535182888773534392392261234704985255954702529822690205825976242202803412209972697042918205411710132275411381824767733574759648053965719155160876120757338469948579643147786104778586651874062220873671159306631225930270156942737604350453375619715690918832409926120372058253170343406421228214938244098767614647009214437079958344485291495236869986245442565898564127895361551230537347747918746965611160410186093410432081678958906766190543669663103249627275786893070926930837661175888634731169644981712849356075706465434086012396193370657153321295310115227262873282819065388499542868227199105688678784565638635605104052316092313026373899659565933820274085955503408796766492934894037295924147964960822796458822584220386230669905921896055869747976477684747924633363916319278445056798438284899084646919585001231847659331270173414142719810457509789580598426158568446798751066356908073926528597316592166560299112879273295409659957708692673224743729360405322759983764339978112354767137408369273876215099390939151936870001352153279326274510344856901442245552545910359273810897940313725873078726354660041730965035742131727642358060869318157740547916400146742405543475776579825153963927425328155869699157734589176245558553816739193276010600159276530317486217457077727851959386124291294459804190013792982002924432090737486787027893620768616397943052594974174816045643401632939415025277578839607652784547166711510049549505536075965365825773268156849465447176388317887032557914181961934249236241261677195866618844125673322643928798231241134607867364540150018048078953575441843953325178585255206391297995610478177465274345385105855205857240685445119478254133274111287157012499294029233638570207876796103604175335451793078800106302812411209325174661636860860103795735122236362849217007355216674814818776467341156511705724451823573238679785075504758175229124641037682555573596913039032446356860084884655029159614121575307643153209738887216379364452890657709474729429277175838591951240476528342073207163625391353666866851082545743794622017041538949591134062506024432857455259690965996560432814926620365487878295160272224731280918573676434629761192831205559822818028467117584989661699339032073476619792099079658738398000171958623863658495107023674254045064421939623130076999659416309128322926061315773045722365917747728031771991707570728924871778246698361434473043915308152180952150313651171698214078214836347347232632771369903391607628469483959079456679737599432243446804262474579772528552933120664583138009905096099292161570925151871555220052675034680232345483936092821744240345956958167447559650708160315803624102040692584208165898462468253900613073292978402476549944495916722407293894134972346580758114191307946457433831955851810918073577198445952744682201459497431953778471165108446413343594086102418235021997851705153336088268085064187918173391630721353236757106738115941112144326800041341185760221794041954188329191106811920234973648259197272457617149857575718005348180938758357221147136711439420940587478249129244057000494080538297766953533416893027691368596818302170976965930771977625772123306083741141166163809533968367198530179604746231697150221323617712875475626098589170561613254556849099532354766742063785817302753772978576848088846735563620736359135056811374107147110996356051905628268146773582058743931302819513823627515281532450280151030110817361922681324177848917248320244574465180183996452314385462957358986040052097807802911488103859597219377435215440715625253579231879670942981874683116086609204036226722226847396502478570860470858148567240896088045441426630553427141918954430962860300495052378040410513366172695030063928834785818451745729197187643222123192938942508108686097207817210752219215280387725521565466723913394183700516369258725562077374130578372718714096450931140931823308550380699552706610180673704298470142599012780516331182218653635410074601771123940501977684369435132212179478275082296272644525748574672795712822969675329944365619750819444383450854498767411010291245854925316864356110672063986454245824845697180758326675750887682068991638696095740229018060222621990532707508208265829904349748867348163572398808086373795470825464895689011679168654077859173547735439788757143865543939481972545545472756125969937357756240323154265032150611813288037508331050214854308945794919992718240454680270447162930243410939668789450771710686849948798595117226832612649899188206216746384291923108647371136689012013523263182156440313922096029008877177425448566173025306672926401312653879944092088094826196384062066469230302391505527904254599776262540304155411011470110688599376280214095280763015438495021359339781156329021471440629951613616802710628828833900243068089293688945870430799541138200076864292943484805782480987182814893665833432184378715162150872020474703208102859438659013353024980261385842942310658145703085924013678598077494208846007769613657425299386885330586807426703099328889676699400884020845459006601473008921057074393865979685911406065314741848738075520390412943387247439625750278647699462405337058711991470042412645001339582666989742345373874314506101450207067282888726084056668690814616838814996907601205429724689307321667419926589710967230224153002123683031088196098430316251273420556700931765911062991983819355001134935260520594319196246198986310125484753679619374011985970724841634348718429699956948611829259989859844542369760356571608643349399979181030276926812574062191348378278812038633540670183284794402430005256459889495945848922711723932381752608620057635516902989655474070237779658159068724938384421004599872076607273786139860018639085156375173253513929848238341469973797316056959677598649089665956670668041913960087777162306408694358166078972421422752007130311923384505792481598980093813748099759947959833209244537130391643367883516948383313293437206903523874238617309292019085079149335613870002008553186588261949996677352054574570644464620297281129356508615207408804813911283155390235861671688780300549025992502563329301308965709272260617610511556262774437055653462752940401542695682470614633752732612807331417009661326204033848162914143564136796962297036554783577298928955896200184043219234877889515623515049679961974663528673210100128993360393430461419678653586024039166818482734606757327082134353871840889705359915937467629722013042224835221917039270296506987454569852474584470603853755321082405369679975253076844713468219770730808472559108710390660510418473219395114058256200138073831329439822696545937579441195292682914241154239217541588580614929995194690604160462558881173219028714002464619135177707468296551139243732794264326758708060701292192906022301531553692370528489490906395933111068255862570657968477818735136273983045659147123171787410276225258224765887176484125174337331000051143409566467474816300349890688685211675485282443741568461558201152019556903620701638897533939864428481928713348085602949306353717122621075561411362326468439615598009302211360683037473698695044017972521295467961121770234882865528265576303182064382670306997416118623002570899058177297769792715104598910828180263710181303256862521730380303516500806888111337532618943971698464282741872623950604243296160781137190602202171057141378179149571787636535886462367468024524896104566127520181204682211188998466357716154553220071598675675586121883942255953689564554536040583522018305850990040382167841512883545090791689186098875211385420938931411150262664359779596153802093232632814979991765221398458336941712008637827890128810870430260101525727834511869355216545288582417417903641519515804935002010255365359676964792766950669043348090085259477956175565414112043706559233300400710863592108719411283213174882647102381744495117064048773649497912308845842471983284526299548139382292731664180486441235612410998324378827854860068853846346851746655762753542499736434549584440963593367900013105048674671372059954031945088278692222133027025204547076472025461228981303842262008844907910203408931653704352255477437128040827601514320128939560833116624297641167492749448398905643834709664148877562990059745340443578331872219043774933967147762375539389390387249423480126250616009655286928698586390894340684206043237039291992640706777113481894679292381527076937479699018761235468780511532518485897492531861385253213939989933223075698103601818102082584934035769973636899713648200653844817339877006062673238743253362411685768181035270139950856410903776780534870660339964809910505586210704273502224588889030195574056598362664831569312854546809412737544549487293365279258528042695966750319653882497233841376417572742750367105876354968539867293700408878235733116455121548910427681555090082044549480468110282941042415012387902857112286035519654957879617617975356734763136890906846768965570946351897086833608539458205628379888054359719614388477429751721350338206762457284848186418826732223722166686739477516970073609470957976246031510163388533083755795124592308891759212043021526944550714159845425813222996547832798646429404880808074635834079377411093625814188500609651623115437529615725167147465007352511846255844073868043894303157138980340414701539992085059885889179721995913548800092215537734653240035513818258780889684519223601469645557630401822029194909600925195485360447331527018288633487335186570784239508613699739986983194051204757352082939753722932693611641152207975417875525444949513752850705604064573928564885977399749753616043312400165055381323874606201845280976271532801786676232162785119865638589049131319096508551373226323117619277239686707187733648554742245437827471330518122830058100386326434199769143249775703314394522175517273807520701431453171896952195270279739517711724167016221898737820696659730707573449534116751710677073165961396176040414339343830723214117692356925708505105381941804192293665958209785074995964373627178894524302006336904457385645222840462883885432298676520583770769011903728294213967618769572483734043659243729847828595193454730203820195507903858720594893540225286690356017829333805800429377424242957461044001663479092272444343147885760772243845993842016751311488151826911890733386109602156554840693969484043805022864898847269219517998186894839855590722889516878009502960090435851545896630655449133638860739679060603947589130295165026596223629579734721316045886068185042894616921909680266997674780592875321186979571424601570050122104754014156011259897974513736207513426591245885549804320113656552185289057075549513731319578506406817592177064368876190116332428721534004143557933409167609703861817382012962047819498558795539478633343898330001438726275435566678145880822020052697610876956544651628245547593921237866794307637361079400072610467737112103119568909777449677368585981416510699526331906018162249872727316172482581560843157078652510203660936708322633642448490605115530692487132998961094767601959048927328615509552005738888139031972816006061447888053738171440755204423437007452215437319108784746785719268884035359428109271103966025242800724101135104577487146677718810625190830960059032127792919473236402607726022345759921712258343030162243805353362804552790975575749536798861326926645882269063619645667493998805957943925611565048896784534959076969576332054418934834036708334107816589907598159871547426888570032632977630902298223367848546419299683283620107443596861140170705839096258894946427615802150415813225251165449404234141958213603574774550006275194758720086714706323919205475028165446463206079407051307156260503120188791929556436343513285661503161031047686400869512559392491423524447259784540517710220553512989085954502642373063803139879238231559678813966840348379461988621599847105389479977405324280053573542581464032067537941669835759937789288979975064081730323128161897433570492820547614582552297040618842555369658190552301458748058272765331090753909892111179205436382935503315299449945822861886482819772366256701207883235208907780571591719534572850993181150604425435791702267703192504468685722845008860009709864385975274691314333309053166578783688359467056657570654244551838390939069325189406403816077571198220979522039865582831003489999551574607798173598102644921799749630512646919634533165611520532410763227887922411469016239569064538794123225799360054349983449213129058550372024994455669918643131658470128165594073454139495229870371719765733098217636140901836411279597043661769338521962191808839588142243258141056952771194962377686901903702796111432802959511210218480790079618008639644609020338225198292490747267498918517901430705730876803812976643254942436831676440961732023385824931747195160364682201196716248543238807595790920252861024492007467287415693559633374548087018623938638938107935915510913139508762398342165561459712659344863568125361730615770852350312183428751599464687215964102424035850752508404529162303098173557700637987778974791706648308285576910067231050469736531980725984589644994974207491558153399203014264414076380953550132786440189994197067347093522585277548073432630308831913174389460101422467119798779361177942266630690291593477735844280652036068356290157823812708520029084698403997100648367378619752376807721427122339851981883146053104491835400617650421366531880578622777074771824563235296401627823264368690519788005660782735419025060922607886937937612158533925440219842393254429086125356597009995265520073310664694721417160728630911457281467155175928505923978983731531168165293769302448325795326915919373414165781023009987671496222028294786419804316012204824640576775079503339998116315378710565216634559918297347746544371316155492115990156421212014447685197832099173694737251902515855042747773433992224000513876130725264961202985338800006760482902922137436364532500302987353491101898508530150364547816425156135716913686658606792708134076441285519330582793081423797079899343843340004821873640480731832782790727152476105285728236752161453702947315955565892103581726122221904532894834756711091735553779696881326376252874868747521744068423107601368312340265005803982991433213169433720516422385701005203617511941379387747697263852664109599328530325317109903538782078853095235716677314932750965297490125733912889072338487468861875319124762987751325923620868544894952816639468651146571703032617670778960223451492433728966528333092256637332433428556654330967736148128602458317056683545247403031718128319294177147544713511206810122395437093208738091973522108439904576930764164164711102344884298938275593633869467328503697745233025569226957998522795981439749153307204561481174963965833357923198136082724638267506856754727650662595265741019593730159072978269111665739266290150255004698204330976205108269434065186635803118329612381596683086808959601561311575229391107027645197668695449012309716268728819903952875029237239568119003586332939805009791231773922595711149392982385877235638813465829826289661488482065818443784783922020101449157505091828227817403014607464115343074160188995428054133825164672272363076521921118912912419318617088974014926946375375524785359658512975532954302838413510783744197318614762182795997720492797295015973793896867123741216124049450060238143787221953355560373565619969387621662444485708723224568380163743127205683122794003234843871866431047911609271847715855673948403626390047088682262807551747246562857817256798198017983246528356891144882860116432433337804176467545142177536153853101395828773957572804737117264445999905972712538073550812765260916911682986024854363384001832467671860707681136758490374843665629301863450780375825044441586803669747459705366571970203608578253257179775349078517392932324724677716781433748460446170506102171662945652848296484005771642333801402574388383714186868751323714671864022808060741861331084752260017598900827669566601636284802947410296094584898371628126422806897403072812116762061194473897012844450358606280111151350415372814007135826854799275656931500801569220079550788460440076171887948648768975649450036802941180218502958288712235161321474248847575205511313188773978874474743743543685540223376204032228706026242278604510252225491190007615086317366084226391256808960531337040945445750492776884601247858301326296249861731973209799496047194722349247250595522342715123549219063898844420772955289800302452717497658550091935102200232213059520133508009504587792568959298629736176729933685822549000731941641743996522252443957503673905039691677543469401951706968235963259110574585243951880684718507337897465479318930400086231157095801826325837905644435849529794664205463938782848016205683485336764418123196629665762353439793247270916398280527812169263007710521870382469239979974972212439262840896869667445771357601369102915196656248354495338925509151923048093192481071557417778692125703200396720196009087001455524544027580788026958336079100520029513737345198695904643930987804247352360665223728325023513652374741908568576332316364552968813490996690990833985387500648399890854344446923875618175955113162272739092442360407648248057873120847718502201827856541583048312903569404813633013662061151092925703812513935848361925908360770813331360967348813500758518168919153126791759941123500711213146831559715607395297653688607089874243929080710161270151962866077505878058403872622513813905104167293497996463644001809363249525750879604432224263299396892962574232646509533363784425190933456829422077908535222334330251308476499339321632834563829953539158284129397143207552106061346439096503068100480375235043631937003455849233119870999891915955876187405521524777769130074275100939150142658061398259146251658269721163947113396432467710542508608551401171570292559893539877262404228538828691807759512796151373118639287338249371917232152354204697514917022003375498470302286711372153757970187368016396843036004958637144886620396062241974844753419929481860749872087774109270736696185116336520512634080821537513562217731960936367880914443901024243890568174395703175668025963122432246163283223482472749544704512592807239741677966895275643558014739035661806574634695428928005616026209645901757653185346440979731325034287673567742923279157047623521767746226875728538479398794590543385273387426362162431418165512592426820476449843273130045470297976859574816288823508340739666689424905849759683406192955596398612127902855976430635632802076086130299949722406708883302945250266199186174793157665418719437395467712761170407162860822417518291879892020675984694837897915714322776788094303251532304632662365281969455557713556317820115579902663886638364923658636444897519880166880918292636331666463433008552081136881735681571971190120748989887315044456754419024710930412155360863659788890867444707860338071690694428413714229968722699522061386057982929550469120762923083821222968683246792135747453673179877736550960950010951663777497442321353667645821006143674463024708641950632295101351345666238024834095802537862376363992335559753886254268771699829343374270546871873318909310075398172468218978050091379412916267699402475772017524169512333717582768008471866298378297745953972650377349443550960899390550640379723219779997257577619635918032713407092292501530345184126509731536090767379479792027685194622869189784242087852116489684703568011032210513936484247614346824136827757179623870705932819236519699797902480737836607721448092534773427876698527190970179251614334193506554264480071081805718694704818039072510388933590845486380609479205564201795671884093867500687574740268403161288337429094990389799851526874757071957173767184638959085325227054863725306313924509872584715133980153223607118106534948805386322548946980342445884004090837833889559259258252600073027315445040745395219631897505231973894951020057262529650562236134585606661142360778022667855764902551744745771100111181012761138176011675068176405934639338654991669168626495514925742021506393234431974428381178886063549392113530761312562415765740686088144394484260566595325658045604467442716786574415760301276001351643602322856070187328350952763503553537511673530169624195508356453769141277021274545053899426697342208210633492395258027806735455582136967643927625295625535648281928898664574316763262722394867088289741813278619503568062003591492417930156981396426937922612347571964515992413175792338517890020518008299627136497498957980694244340444422051273699854201245275199689703702226073770955904934645731863084972662571301168361410188397043358859287095069115460714265506530511274913846950039502889732404831984782709202481411707616218122440347600873123005664085190459286463634592310353563930738687612019284250973668498153892582431684195474261088376743826837199920382923582559045762049700628255958597319552415820015419589622603087760982929848614495722425623109393838172249329151201061198701978412359300535586234417151850499059768814632784204246572031067108933483375661744993696770887703845732807522479217829422859988493114837185848977057807751173688142873408242672830624496266616996401247096534390032039470579908486809693381888214862854453919934667509813551406098065842580441077394159079059542612712507265052953692028856553675397644546024761836075799555230454821469377828149160728002136721867150266488277024353980569367469115291328935716792326907582640206959728617191468036717194388055736641677575468166639724888053659020185817410181242109643391661251588038420647788874154154395533501144412850900805500377304949603690575982595398694030014540712452783716781541109220497495282127707760084087685613580403120795279884765356314170233363567530898021500280340410024705161893099652586771762826321472542538190173513221120792025807450523971503225302503110274677845771186108446956633844590077760754069322404129784292345262361695407800826626240044339455118757218278237317653525106467461336909049722596837572839465614104812137995976671855854239896573367994186826303521525920135476952304754138731605192387624807012897500116494270496399481481450182838814389825485862054097136802772217203379960847148019414700482746202215036580266096350203528748446810700421796754991614929214754875284119926022792099192113243408634072693242578739458272228720528902426141888567388330525852906055532922188495232875411813285736917121947838484535829980260681850319644644272222284682403956307091170567299316694818262195477029405190295592640529909485712188970431224456740351678973691032433303669465641753615402878504978864167325473130336609297955081250820372649014126079160406591860933561517652369239507232628302519908296751501683147323320105550541718696672191590400599764247268143329725695125479696492174525014778455053664826857029970487686253094113166519988781781350289096234631566751994023197406445906939668547702069796023260826478563496224263736846552172933503169325826374893705370261020931343029401219260428474874343327674876282370844051690744746401868032372281827929843074918344755162587935035918009539271111939877342444573592887607985255482855465758545380637177517762723107636770232702589218103180316350465549863802953776614153678163142760246305526130405717924075786707565639646784544678790335982776836033908153421080322761253901689522954180217622304864480285076832671534078413257901675039837221951300840472424319140751584026991936250320939719353736489179065245083601290615987672182887222871720709869866294314875906902617033150804668524390446513647366598630937326250107638697296418719202039328047848697295421108823160838632362214492749959348317321157231319714389968725022335032744725972307169075134390951487323596850907055982928277351604948900696099671779143357260307993174836367296112908608443053584437820977185340244537428204583135983490664917672328473035049676458750306403862961573407263312034660193590028866874383560969034240524877768238459868979368097612123698187058049216071078369893783362170129096368106076689752772092211007215430188022023719473692862232012078356136191685119006289942769852007493601394760895148120716427618345584290543576777813578358021541009980510750730507908207534454538609900022449393255447399476822002633828985142369941193428526960901491684991109526572196392242869259672387324052062185464724669403215417008421115675590758160654612450210887979288531460076518663609882528145938880132928149084685057462880562433690114646957843961220820840704130050971224539763461364382567964099573516576479839166412376937048987979105381887208220906913304914461823274598266626921582173127585741516526244958631039683191200941708585856606524620616850749642789013659851481414114977666971053907324022383954649888521490524002314504957660133713263627156190447997489219502459429619634268031230735359744299036598436427425556546234023901355462754391383379484734683360003349818207401194455479163625526960186687379683062597906543383211265612689374958296182552477390261494113488572974420629417462338149141080394975431667006028654487877572627251920518493723172983501895817628115333637262002211966229984939775136090419725464870187789845867009817034156130743236940225623398609620924528653863345344719725086942147139732980952193666521916845971200641506680356392599777651729966375997258161402531040572283185956103249878038709125416729855319818785735653551941032366819570885889709577895916262181285342107526477145226383442208857454687705191141688720330598198022162942455922172416777453200759240769580132730737993115203525390385855336407417710227672788500085562411506703486426985301173098397126860454470896850483073229846785949881268381478614795529422651430667376115915698640991061104134101138694549911035730273544392558848527721728246587191069861092791890477040830941895020629649658505805401322772546706027562320582492602657134375861584402466005915680298036974805647017092374097352308119814052706067316412687929048452075214233327955685295764617827319942523572735219321669736656051817636884981694155804646342412506065377511743018233742958253925710006122708980897593639356104284882583809783717768137491231494588948361398702067552651059687413180475434477453056746590988208619793872953280836452106624580064575855010732769952826574238552004650914983068469885138081715202383398038275158885779742699489016314136343399526201121061214479620284001580382601038659261815996840857939038914008645817822443423935000916143446023050479155300105470293722467413780396292108417402537036673749807936021630517641207183349023375039730920237459336180368334895775520070683695737367039401320101917825695878803939012043904356159024402863067959183654477742306590450528172849874585620746096133575573155903354863341424064818842079456247044973747084185442336055125166293581144352181701549796392037054373583500863336109317429689684053502700921319356875516263379072099075169948192802278027099850642526672445158154013978200733184406410638179566661133595292142921567570621227883155259651326793353473244421511277587664501584290536184651056571387608041715467920459806505575668380297211208025249834992793428332103182639918874975589704155037219152153501101288252182926488864197654117968702669026844248331175527038489599665974513667634905428955812652874853482623233200912485867413582422407494495339387231298534986004793075279053968684031277960058297433822506520622434229317418553902347648777858042738873996439041206654130591551009006690147348376300667110405252134661372463285455541107283965457536692268564279804331215465215553078706683455484894185638892809850145689290061396999226368285976768473339128377129195776237279631428160398665193232736774329880096569192815024067044118985122358154775885233103831892258679268470241930704171371481428471935507896533406169410883374536771386266641077206245016641299424191971411632326945133197208384027675642755413163911804879178876057302505395910701429621489516848062459407022194663030918994577366255706071217155602448457594137205797221136641147967273990566041586558091352012707791577749375059828086913053698762280446885666114561044579351003141515036824779692125821876378688450642202052652135717572042039823330085158251866929557372325812990835860011824914163937676183034379903006678839934487076558516694475904121317940947563982248254248767620067689919445906983806480052310341833218504830482628803112745591554512001164056299464932071542451394271805936066752268709293600332713718203778262205282839161612304569151590983284107606087825398582575596648412641164764928240920853630997940189023801350732229105245087301480902988961048364474011803584831362986467629589582936173921931386704875880308225014084194357499263146643051038746247817246989113261613965236197343274095307594224808742898157937402563999634894368943861979472985484358646909493773703633578601422677702264497289783487583035043960616351255738483063686584567118293451733887224702652153832258002586716843794444640681966918385335595571453656052847688084288681113298951056667519277237721660424101365372835548120395963575147090202514816536027071788279204256339346983142500530802733549467483855665713813858514692455383149133339923204563844648949610105244517587796952778049627194675813760573565056997167606075128406423154147762490946500857401952542699468442823853650515875315034548871518867451895565529708679181733129080664760399142198069875363366662061118636322242356393156443741103472352899799816409863225757514362791490255425777736470468630302550076292950186232217411248015737490590785696884470699911885045044676241459410261492537130184252954339631573830466269348040046866128983999518162282944570784014598420636526560364942052157608285716375465690440524516666265549131966184411855769645723535907371875108256400964698984348806751194501374737117456212162392710910246169429862341750285376537530703999079129532156446064245697025861229101003337259728190621176487732018364306842189273629911278155946451446291353683263680454493170356907071177714863179848394246933371257208453668948374049194330667904030221459435702461354952163119023076095581376971420431718901897673005260457822467732338777511594541749146573623905084863088595011219769667254643406758588429211496879827619258868895308974038858784279443426351373866068773566538194970625674120774902025008735624469935005429933428721618298098936796445312561572866514874806481485876088288419494823481655648062904797627754631679095173460692933133431167405632778828943581628240333423773101295557755875440742652564228952102910178202650697503806530851294633955802722360128934191961340311530875608378018081020195756206908008659791667131881013199041116424760937230808683613640162160862840457566490469650288351748598999959153981169833555025164950105816537557363606487477329314180114157885825055366400867140517133155257693517793117850654396045019714570288582350186079553681736898853487125496730789655750821901689673080956488592004165196385508264117994995017186905136918845751873620128112153534901134824315693323837415495396644719417378633427794134609453437836008642674959471110448368907529736752941922683121310594219947733399967400109330044125111498326060658656134173012473491725521657083968363541909257694171253413455468918688005666995109096275488666667859486037524005266725719238847188523032081593903506586233899277697192594262790283655426575767963233802963756519613045983659771947279152316785684591885175809593381853108241380269454633900209669030033565379495575272020898604206064765232979321941817810629202648948625311528523820576741347426456912524341253734087943187772072374028122669236852779114831592112617227092328060489687299751567574285007035971476668969360780728427464519122570217827002639700101373797000764925460695275936685109055369641507115531085524188371936196995407428119770025361857733412606336997762865677650308879892471864459288257257816773087859632069291311946993893355839809936803033298579512653875073606694492247623741607601019263245941152538085138343150148716823990171991268316080123143794362410267623571692901334388575357482299427833644305673105561824085702567531597420202149604861948945832181804200942676536773847986616440087592718298803468696352362900462356092955326375919354867380757430697372656864205189751896206435679697523218691929287435565771056666089652234914642567446507662652194388964157420775487462023918614527273391040491244388101274374864805199576800561423048974637681708910873540908060353226659002715115961654018282685049572467871420778879383175109682933144504528430697241348519958612063674944699321514750955187675019580670924460763226669401167414402896327236280596404542787773277190500023522173170413337621427039180431483049002902544990016980898411401031612351778506857235479094933605151958375673021901253697511745559496399198021143419905990681470361099284204091442774439678885057422585664380253615231174652015314981861269186084668090289054707423817911213116527804853263868865918063439852264436124516403372100813669987940566065175543681103457932860578866462213526351068703457134650188365884614990005009104434807899301509134005271542408864511863779931781108805350078532640504815494062843309251615219899462488855423951203225860095352337846671447141380629174016293372050458626228650929259669816882836345587889894555188618554455215253619225561576967510345507749398966693301517768155424909406572538075976059796103116710492661727275419583644038229772846811939022530829209369445937462423078258519345562386437545842342027202485877954433427253725098302147057932191284635861215463770607446833147467236251643495820719835875193704300861616359134370622139587134962601264928063787975735519756548283156632918773163234863331291064821421346539644942934307675460715060738142804828983764016330816673047884441622952112849813833335578204677367870594996246259203136560348058508706943191895592098973737429871785673709881205160541531575485245744121372929637322868662664853877303488418363421114218994602501183963700335687382397012729361553011905936364875248994140898341346603488929016651258103071256643463131955180421798853221130584977558471772794935243080637625639004635315703633601802637207727317638074353448394538444253914698231019799795512086835700760243698520113483181196779120840230830152852542301723028330235543228937027024736752967353400295116875365378759021065811147150662089253276793474525136391181578198543192708051876207585197070897464496135996095083276292932583230555301969300112602896407361277265634907749724998982432519048212061810491734018902280638138753793232835573641710290108869730400742396022386378708113308290319206446858526845242885822909207890912143661399818198021370041715853369539845377970969735899900406269832312618148736453091820248447721022082756220507038968788456301570549081444988310958516381668904084699513379033587326972065957510724177530496430688831031540846371567462276962911114997700057102267734797599070137076241728765196928528828541677296002570687222644843675844319461331000221600434250275710807627718726270798576965468047894893137190755231930627954504777125701690929959178141311238597895249690820801420880682410298366385828212362485246179810732680285676326783479459782295018075047140686768453154492224382427114918536678210388018580058731943996398464685881752495203269074566943806448694549302384313110792286397125941976494998528300010311775964656016099064889827696566583273681945193677022802026631249961210348909693594882402992546299706331752268901518762563904189770442859941588694201788287092005554070483941868530859578863508445116115689287445157501340055597058532512217450377141090089470286096838442425054528242556981716488744301402434619726901379568209857242713503920212937493823749239243430681386701459751208901933522892861319156037612977527148346558433325519373405202431085184285965798592711922530928438940095799926998728839869159928462586383071854759376814611065003908678648017106640584949538380455555349870380911802218810014279713834804723923840652587454775802746509647222727854519529815347116666465275504862597820166157802455158735554538752202739593098492322067589364426753639364737241136109941460809121661849333921198759212318629202636823017425895576369230453878507388802798125703471821179590251242088168626474251156262502873019148966775377060420776957250369198975120872088943812202034388480769708392684158995912241601939946260381586547992518136913910833479032176431917091553111841886743956873802715275845835688725789423835221136871842761952299534011753418703804386311587369920493321492752434751060151009504734708326328823164993521081279275898067513976613711286252910919834076733708131015705455453962657735979558894166386035127826961373445544811888676777113652083594828243609338309635771087329265277844077601321835975191344451887869663610401481939513492039973465529943702744914418665770580867420099202803682483744917551059512806085694521957793703085865920768907425158599384599323748773055579226241800866941330075922874721095392776530182699504663091934282738550606843409529506935008301723220902416760919691611106447734017933809658680560580847979827850288357004902262673913628010018753373441950289453132436476259882625914540809516488259235254592332899493978133474068419881621567042512590815466110483994427413530843313553463000837643465545971796838813613644286284118251588810151180304499580221927505893575776640663520429205984089413198763022036321281667256110596789439431120412984447948474001123404980549377068110521242188789459818286354707695207773970692965288414286431767434188526625287300830274773079201952540719623987769759698258420655749003190189732540358277381446537813666823833973384474905523448092907946543028889401061419192979047248748551211280114560382424196112883329630394108699560467525562065722061155104926548691516073252535196785132588636217559497345767879220068919166146628704188039256667625374703247896363832158327317807249351172893869825061920248990185838508571536863256532566006536394148182913274398973545631454580746161943651921035101717584750574622949342109958662709298864665877907662585178932426982902289876400106135299783351168591001209898640189608169385510189648754402107811859584592459189409162584287966911553290473905303080809331623885043782846881488960809409893549942404954465199375637178375349037061849973270960565121665079670334205912778860263558448152508102931078920510689829625621902004616392299483091611031194494285576867233826985481401898681272904952622101179955067600856508605757409876942407784506827708284869713204193284674997572774560008171204895677919058897451876392300957010902784608145755617229461350515340046426294165666310543717815291626905796380661554097284955668260991376389345729511118125879024614930351969300762838107187728975128799890859924688026284395805696052608464223726707023697242313694017554141404364918090802025550188536739416769715064783243175327506648655278094649912892982011796247086790067836711187199842939038202840604389939914579618694008381594997468996979347362338680931669400258415416984358007574264835639865866943886443481738889668201850162661698074333642180620847190223702712366394583922352156619369301319513694050186118996583100506589196767983027902035809586009856540073407109894358596510234987182247010125401761118241085756308349497255475555145562237363123825858314030576269427080819083040618259050106385050364352889142087735413721225931300244996808042931480124475709085565974108237333391901693362856890881513074822052683877676681052254599474332665389643615040548059371477089604079348694680757349402303522343824014313718846784300309321908259622223528049070735332076937595521531962324212953117657220144675818295167279633863876946650474718070563130547634624841662891957281972372316540691732437936400604170508478953419206191987110009508129396807113432620546597263929908075402746694720774930841167556067027479168260098073252635269002961494801379000365121432391625119190436642649349281918779607665807728001573438662026804854859747319088896918708569788947480193807175955449553462928461561484840717508517891094977141389376265516166613973803225925072626351879016814780562366635113600320685166512241030797819899622230496670452844001968254452140145820935640541250273403550903535854649180548489609918687468501840641818922340634483300395934121258493524404647167090193349259758773473504631673396024829263651859949523301947415411378904096063035234966508416554436968635310316087671780034389327927616777674114705370796917424673256005290356890531874992423678315314459434890421351282177721554731451133753716593037567735774465411419886353118471506931350326017204884055316244731010879289044048676592199500398385609142963608467501244980653279649144406654587761967114645203096955543549221235203147234638762574560280098976741920633989736392076762963147154563361652553204647285681841166592817204501770429204988253405539775094025836339977461468772689088292297108402714348718376883558068397754197563046823793471829289539772606210718148939289454085888197838187869926713006963126420986569566020911284460895121396965257216344228308608996532626715583036292756722526690517216608930086470141119753968255517855462355288275845411282148438148839574881361796792262510228871461905527048655800203645522819254953613528722258563193120531613116337779165406921102446764916518946568092277730811670103205133237194460604742730324241069574955597618081239212818368567885179377678746830288404514555231610534973252900094982508841792619941108451750801857305404777357373718984434103821410728547843402397870409824298109555185402075469620106757976925763870456862963754485238282329198333936787935098691607804928910198631438884832369840645968324932787754642057658634620733143850171195733278667127048991468270969833509357349168509130756820816442082112360867738340201608489865634410110327366603676014983780094783251602734768515616510526694696533371462245012110586478020175434102696338250222615224736386063946191307983483187213853532688930040838229154419945193079058473012712972271835751025567950538535079818443075227186894657242802651733347806741653634625812586326060182639975671493029325730417133434996439156086355597856229159619232383239913274937625360932065186526653255218869179145072845978454829870286202666953357794392588387027680037157336991814651640683673270928184994789561313114943510195662211307082753926521049296329441485752240114429390169759638479135678564543043550726036570091997626477480905673123672292813799428363344524426942462067393536106581565578721844950095541895254213472779739417854722718037388750316114135453231252264171182263905831804221018817570157859352089632617503082685436448580066368445759563226644528421326874165879221051166437267828837237817702605777339686636137958852209962243835857620414472971529003759032311011262999315961701970479918200992550123639390583130641908890349232929970648599687262837227654461166064900013514953972207520510923383527098514510020241311539356848644906622483484324419388105078518588111573176209618393799165142255695206155324085252231467312981043360412085516464921239677459316907559797515390854727503280140841921118004142416811358877893961809053058233736277537969566941095047321157997524682458260997608438910469190314061389683676959606066733527049203940870107938663821556007344911181273678328247419616260455584934281461158818885362521130678041233328736951395575342955132378953960753010065521023057239808491406926748287829018466002993989870496397069591721208814062886286802090713146047315231169347866560905180687556243771300786046734745588289436511910823424764985550385091391853104548874013966260275750406465833920604060802560586541702172879291399356969596473079015453904619932764948265145578008520612089529995936208939153607564142194216027645815368438261500859119101611693538317408666401143264219686220279712572387449840409127970104814057755156389885783980879147512963483839091601188802447983271649115360007632987615180719997663389083815987879077149176891849870198099669318066704724384067622880576207530476822975052685479103623526844851098310056695022524828577603558060719936117706305070781247489034094625687146029218505869874953885440885807051509809132891311917873428473943966654511938573064522180607444303607515292434630131229874973117146161447695922827724709598468354589009673695713960162037963717958780842677005740577065697535713068224915926279094216554955739041260784174400516449177135381568523072550063588423188953962620682415672368280409520003710409447332279580442315297235391096266604230625270476143014000216213437815422959417394488583988514347896266576682459596720887202812629453763490360574267511631529876975874640574906712779650602458755502846896812426791443705122836438169030050464640988727554453282491078274775989276823237860809203046632328498392149082804635935277120082292058400576884674326760246892905516873372294474911786991516908395940719274888764442764405084688226496530888915275513464753386118242258234834492103109617901451589896333508172158386411780794281473784245696751764690669389963082672312448268175377043706718333141279375140806261232095701065726020045735284603111178550888474388154420294986732074404184134081620792132883462202153336248703932254591004837827095823770665953050203031321887911321692249945969143699210790866459289165597299170337425579975773017978578418503760251876763366725323620865208248096396596101265181455282697326273601442063415117246200688075648086076923118244174532847625879390385071280004256859604610792199649585354173361697547000078089505728350686848371007205814415483727140976384944775259277197766864316057834067093255081645480581917018603575124350412801778721516169127003282894992845191645359078208517509387366028331491768148839071044974306476624943851374807282796276702420083352752706242264066989401573790682502270504636045312968741065842014177441397696318657069536317472854498205960148893694481538394296167056633115369761013592545823889764387159574530081891878569772265780922894113685790265522896300277292512668287623117710592996646863368212737600969775898798662844235466191235682220042052584718661670802632377258523906203638993179358276402693565350049612698450496918565703546045674966746663793843700019418952814400706487753687103063448451783042481864488918889967137105521606646534498567412981122435225929784197393655679352345125410254891082431690896818706666565471284186640589648164466938101208466132618321582354557862609622794426227895569231968429212163852977582735909873837354289526799310538444245013025359607130121320822290979757626434973613176355142521784960904277164548038982947237539562231362895243006881686095706724046602478421370672079916825114546419290938781986597640345004165399383553637778755795059722262638311435580729388220351786674060140358518779527706105239228418259893041327386167743071639678219081954345107283994265429047704294137309382974623071136884715614060444910468194594680928263248739380848112673016483051047390350487234011514327645125019705404911993485577968962564186453165916787779177149901955969420162947512671501962588099964353464107242613219905072274487490923315144425959444759945813832053753018502550022576561226063491672876054766204123322032684779791748003835591997982837247420207624181571036809657655682608776001909048907338483317921391070650390719072931685930959625934746872730039542536342708569648498187060731698092378048583987799704494696699632856463091665448488604382945515091363645552165891556411935521671082368142359076606469018153480649352892056012825261438313179248632156523565238595721044226664936488795405950989207009622878824873805024178588677370136894220830947789422216367074309960559804699328732550262620337462550657533611358777369073493718387089168851337925979670188996751563418084926961819907489530859035989067864309327394432769085549088066966347600946506535718069418397794728005169059845236404499723096674782450414464891218365303918354167615114755220338298333993741678802764230926369791151918061432614246653725309246871465993750644733843298243811936965177111614934009018660289903072135352660418219986155840528076306158087450159101475903918288803304055914326560446929686187511107890398077750816214902885919500892908453810776855629962625909312597102711144632427752745049123329256637327635687091501295340166141751261995757232200781896308803549082670297924172125290633574457672623808824347689699205331208259529524866132085042425044932419196230229932576670078502758289948865958909982273175972965013081244644650258256130940235235285614274288002373243764046441760126025905483859158450495970440118255134418212229870348502742883464868773301756782640152731364575752824129070907353018575638476501665821522225452467631237072916640100400558932100928373280640314930919721659035827666001796885399079265365359224060693011135548810976168987523828443399333844107628879504457018252744856468232554075325090753300263885988310184114411609580198497490266099376522366379762117867343748285735631790338021788423464024156259906021863234707964806396299203660944271142226105626432920110814086174657259124133905913781357453206552236243955501865598854504170753334706959532173086417204431070516642983413909204711530952863843121861832961016946898743630422190676125451425987385951226907855013467842892951577950943835076018706509557222170474101657866909212844104427596879600051185897089996710863514554666426284548511455707121588974942757177915176443341042843855304784344247543516945298955892110058078267197007777186244547647615278851579238567734733865420211722559325515214446000608935788391399172991440544452851026402659398151916802380004692866656290556063516341941570229652358701765832731051650371337786514751030697694548132706517850156371652584920778064886483191100716384905981079423048731507350611914590193843379971110740610971503934460694982595266186100994759358923363470027163379556344930310710862472544670010149979018711076842463066930006543534841946003022229293508726941589248024268323259543039561178380866555004975048267523277727512655327564753540127483745505676979146570460083279390239154620939361112626692452880254771329970080441979179440980352304100112126483118272492673913371627714534810721101302953352298436712576065711984253044640924044355937601973620952225621096517212066090933034714392678198985035321904440318222870950254600079849456773653655694192685925369149744838388512239511045153829515027573488222047086428047810672380130428347209800032887936390601937573480002063869027702455536953115611133009491705942151774204560097036126588155470462383128662529511422694881273386893649758724529813391875491087941871769008653019492309935042897083178486550394339006463111939997066381072259975208544116945195897194661042301837427359385169508705764778388421862554083914635939246217540114609532921151243044676538100816036085581465827655233922269609483375773994416053976694839198004596955853998236981189001875807159373613679523852823434193019499185981061064032149900973440467175865213803077609893264355466446809318538151721151962329496435697755907434633871156257764876109482512067644557062370546804648481431910520658555474759995080662374174213758492690490658400623075612155200127405731826984224790103044085511400332321315452441091854004483374724808197115091873455746057241842419758137807436372818105253345427297548985304272042641609506405310847654272932531035483596599350544871529319887499601967988500527316357244585545001126625719332839869398901621077211036644905725668040584873632824875832020125682186229835086041331795987180081149121249606605945918638407539200325776847457393018465359633205777662616605031363245259319511005427329645726524919368515336840131808547959985021612063509967901473284455688376771649763721231286285007522385105608303603085838873471155571997981126318772324229910339210365062615755975414678304343592268432741431489681606413757020813590692899565905466648648896558229130571293255426644397638161984460805973696231379413856369320942571433128836014335929899326746098065827046426863101452163311118659532538041610247937810625032635425273017773454594413759251435339787675324593939887601739025601230169955125073496089839179428779285684254514936729408697671437573730977582081930443750351366894678474718945745163782007547889076524816198561218855521060449914425823148979682341169628061671820981822542699113516880484722659602117260850407058481796458443078378960939903413636558938438864341234320372646369291323670397664761200469430628872592058791450444247617943707305756252111366661444960962901674396811887243372086723989310089928880833322965803008620133485212232603739463421753636339314286942044216385127557687170676621717323535616466175019734330340922448140681724059088190634019989357712952023255362917603417738172446887893770027244603404885361621723313970496912018633815675571460623547930507207914455125726469764121137290592652977375355343986975384375954419253503633276575101984060123959783790546916068926780765541172946053321036340649774484155297411602541791645161790997881082842631250676461995562451488628955032667666513167774746837733708974154312108772472527374862439948513448292320776809369121200112236217477193705132427979362307624378944553659994504942347947463370045281312558414143419930809468633715134888938782762594926445110554295613398393900415768301340443196014151532132626177788501952730561082418963291816415074608409890931339213264825330111509441143779129838812843983891072046232462258879561701586110234640032638612110861702541972596631411544286091105190950680034168986361390164444485318308687849990608856217065620392095464064402451206881659869497204321453186488948083410054266601985906438364580811180954570778533566550801482632136256740057209217888020210243807992872247563019323404376837314836163852464340822255468592916849873001043384635099181335750456090881078555071206279517718520350293314042627613326742329371149957001566427253241934203645576727407784163196419970186679414667007215784813090068390603874241544431802316395891669713330301134445730294164002998537570431430710391195037441954649612865873476045977482926110328931310466133261666726975059736791170518589534499842024394265045313656250548300897689610225071115925725468875507246267840741962879020746270317254889421461615039527021996416482169087387177324632072901493552609107718236095585365896262603731841251536826904734145507781704149660379047289802952533573434436470137493741601044633025309026950542848617973275446164002661461975647922185336589611891122714687218973034616958920886660449089098513913749139891680234357490587471412240934816488417154142584667881550164310402441332986742040787542103752762960832223080410259828755138958383315319216540588166811485908192163196790641568363256345189654850670687710243999036548502422640577005821334915579716746040361069604220339558306076573900605388109852479344935989222112518863602966512108977464654899618694208594720337261071264788109446024978467240021563195576846967222202909837534663629793352327647554971814827995417450422793762973215866204044423088508004832522566470988154781208444827457183663217050833789900382768671466547060426209030379431170959903909005079966709566058868737276174740256600043067115128860881627808884199888655405797733354355116024961038468990331039264774429681963880740429033926079119854836161411088743960269712423744849657367539352499780452373757951921801224024947885392694275051423443300568650764583525453935293529779534690720713767720493584215459526561423630024415445601964149285150627920740291050585196930213246062184128597478012559736386778507873717571549535481367954607061400079949555994777791638833709525081535427029501255732760910233168904416182822875741788278191388077101611728030995517254651816848050809688971117259145177896117891241682876563757395338551453294567573192074094163638504634984583959373567012939920440081394716650218223918725011409780952493770403938060325331292156751558208357971349554126413070970057928074791033594327476647591402927700227717951024790997178376576034383659295436650387851760737603398323235780337888365568783981342298766562952121737981988647878253807472052136328155690553323860385605969065711159204438601028675761758275083754751270234457866427432747962293424389127412308505131249323479298056941717487977517655885851128123584029313386172904986990160037893194207138714147202730752824396861663813412750533343955786873227072963986063219943011739351505893553432357150708957066953059939593363004677380022638723244160722021213781342036258483266280551825082434422471944848843818594974955735623533274735582681712158973189217411386617787959934753160386943074608421772485609719062888779823932335118414165787110678755000556551193255059616902095683489863232039968977363139406778479420955697582054662596974113579671915817596308370029046343140724491509352046013639182099340750837362401905111242554609286843842725024646716987413408380275076757628510841647796437057651841016693743953434024391814008642355526913141108560089690080145272531125360307638192988993343373797874242333387917866968933780800275951970573637290258558004800507794148891872466225537072555406585053954283951403188393172314404736762323436557806752677984217054509365072856878635965934342797643352491049584046238412047685458659871697128231422508700871760357126140406849310843832166743764400085670584553959317485910525961818473283185731550363253831333516896971074231195807688901008217906058993347770345430936265921379443464119246685048817404828726561933354773977268288196740870911512065966967283633260319220271965115523936961975844278258990887094789943200318079399521646602234203079697237035290647448089828925836103656675034628216012853882598713419285564571203134200040300157160353566028580905827395087935898720781779359940511918299887778718720573709199884835909847029757266210298842394135292318975528844261458690243803478332664631362767617414560279157325727175533664520531960292711323809730275192740180740401673689421502959667959216872351764052503440617245849080718997040919652326809874076336109902236203193664813121297210332151101815253949488954631781594915384137464558221584408694121901908454600125451671755368382816268140096354020356186970545205539745233739905778208438139212490388141442119905080139898377207552509515794011937551767953763301363364960503382895195147290638330562073466684186571424376590966437067180365607393937514705209426553684365309940755649989607507041267002650197518004586194863470468623535753564289497351523560146488482317613789560342576073809500919451721900347777654159236187999920870777863487368868941385501471803982042441170167274690315496309694931085712627218488807911420468848600284121578530682282798263514517970831836707372647088117401793618742185352577167203320028241221084879619236327199327287474603148620161605008947562368115708903407611841760689550224295887187189753563531054792087860716207472599437676716609335875972840511600387150980774200315927481890817508374885328517528736342240255766545426692039661992025164176695853346711222799253448760017141007743940442876948831867137398429420306061922073878881803773734881106577468111160371290683980988246282730128746174857450835817250773190902695988497438150479029706448169734249202981775914903613184990349119053795378745013640347534834218340954049883911815435067115220487430054373311511110312197992116191400306595766608511165405664965290720964192565395496713309040050693469526983420201515959979751425331914194906682091607518336137146900520822683155816310890714736563858854377900659391384559464105712130417702937499586896086088012799541979372932904995447915278500000280326251282699534878012182118838465767364273263478155449520626621481825313486574390455803838295431047870030177291572439303186460116520919446164350039484005958364548313276241712513637033386614954894850738587087198925540152018549752064841337073178305378221860767755065240072210131706264170699815958258259097378774073162824742490115388599230995078835460247509946846155871169346816982521482145183237672683311191307942777863346727375705774733251498280019541297294964478587854465056455765173360362991925979466996350615971355912561423576541352647013485352986879060118149726199406782426358773728596846369732344049500494602158619215489432496931585372784352046367601785569582688000701136836061331931618277603323416386182142461692217110665480653692498909421000578382953025058750340026222077950477722921088995800418815563151981652416266379680080650519849024603971848377720670094006272475073462722645471058010863663477321561502969965306938489129874553364760279961646784312807415854464857356354164488113607967569947218226443540814692037820642257659446690991318182633218115706869016850438441731397062541799042083819337462791421850303178641620076112216028275611149119312146215809071299553916473465954867512632784375885776403712930109447917661164630040495381876323532672275889948668771044640506664807760229477160414923202414022965422970652038866902912097558264383802252041301223893018830865664721373101186617195388526640378773323793971034883049917316992999361672616327090829527211951395925554757434004559176395811931582707826123979240168900423711144679669317686218693890296050302787793187699315057976462904443830659978459220467320144727351418123365807846178944039166831247495576161782324453062752071680501213445056896290282029962977650450225186528213863590858785762174488401186402265189390819170784134112936620726076246807407287638015099674862017797909005902050367732421139680665676684708937381684455095209509554656028677511819260065116990723289635112653573799448368528285964810523999707409728878602357829276781281061517668622949807250139434178814394784125915286552222355919537777570871631177999079796417024889720897271269576053199467180609780746328515934810754700932020831999087843298045361998806865291272283519666175151758895409172657939866116112267359584695126938700083597389002559485208782824567586289143925340779726289245211019696071501700885502078505061763159375734089919151700090410080563415539782342529757215118546730337910181090333903778483660251580684941487012520017497545441111654462984176672715567808927917987382974402066675465767845887978668368643157860342730120215410551665305256167235477563972858459166908663579231386443923641587174726623977899071341702167341786989388018579436735411340208420576515473619814945574748464130965592854290854015577544653447045157999015532605929063291257586500045283937149606852052229692079983440309508096823300448715316252463063589319091964433330981286703370445217419762471095169963669880144449460432617204270056071837960660216231233331831283379671902645597112333728205020949648296486251404726684547991593614618401364360705091319508275963094051709582355851214273793506072654058195902924008028097716665200410732549850276431728981532380303790287983079123326752350632324640685835646112359908466331735763577368937567120074955674566582164973045490788677335632682617498302840281947905783250647891938351382613307508447703931127692681916673057795749079193026745085269398454309378798205739285461833347503150933946520253395807843098963114128978645260106949021359911486714784366600411166258681324123578369600442600458637227127899923377239775881469315920523668847601401526368948234961196254005397224740964770723153338889323685058864624682990706241995429462459934554061532747850367490183988268863951969831187494677842935377589721865173718342907899758859706723941580673455516814093611134378218213712586124301521479729087412518590733454314346801377426431798003286866509768449663287079974944663434796781812487541747210775181239724887284721968813259944969908016467914947744011130151920092239144862641820635909459391402299727482584405419753095535555920587853643672806881358376191857466133347310261231467199237157308415519570248423379462527752136556936915864269167359458139486934554289610425184441289436332316491864710325859439403392037356300798409013766214266513602409420244407448615570822975153253014270813488766902511259301161927769896890296202129437717619355089925182333573223399510709775462761075419479160611976961337606862855200549592056426012394785965689358478417155277971759487949166501840753908452893180883276052108212298376125630834553613826619212249578227972458072347935885482350672522820000650836984375130947842856685252691090828000739380603442676190144162454374869558066985055994301936704633647142618395131716543552476734997919412863895324871859665502218861287655481938250685954545188226674087465843175227508577306145743468393849790269039312237676163354284145493738722677482269951969426473579181039427852624232174675126167195266016646679392328341361721363416596040387824371545229618271187728850072052413550561906689817670160809263562480632609758053912724213011472521306972424190285211993563847701498975025382047673681269609846121511707421273857115016870686209661472029465179439078645066414255167306675774759689598236084212552838790856858451196305649016359372472253438378217163840510295549032053527796805097741832691426316515240419464766215038047963707267130948201361419970851991597717619002340483813811245632022996809967165953176344438998742766089880487509406187882550686596065245131008300719055468644431840301604420646552288728198208947281399042008566882008757410054357110799342967978511563826061445130325908434359708535481379703922609867732745350678534037255690607532912632651995072872359979715415955671880021634232516029490991268900535727050971341228022187235196716890204993073966287145164817990402137504014739772947771039008493469179271671248114565952005699841332833584082335447865181844777380924023408646890946631951477785634749175884688283165450800037531043983269846465007975050696083217348304727122808455455163453175384498585898329258284100242755443194034291349537945222172762808209519124772730932010684558506707152713399053250664884809978083231476322492035292859532794142063367106479874154822504444596468985207636643029483473279864144160008499227132117946184574096907208618733246745486307991201486850407612387484960428135991327601599640452781028195841671713214449106333674382269958504469657646934321041029298203246218527450498282901225481742255324795577880955341554617895306454092876108865336533534760847441548231216867181308334990074440790268164633165355466600012281267134824078104784303538265911588792307736951094275668135270891435354088057955914139451678893830747735216415236221986131187917617139983930263488974970416104374142798339143539164382540807308785424597373792307402694906945693135241372965052783313729877872032310853079365164410166969244946785159587536232394196753368814215533753988792929550179765397027247123821616432527239298994739830410678057677794407006347768226515148581333618635441469216994106261470216249268335523641918570028056026177569672038360659590187415490266536253669364572173978088347693343473024783048209197171314184105748708302878809027050646956536639351539960522505385282259690120056086237804858173788479654285421847658350619478478430898817261559908924301907490223292354851602758472258452567602446204639363450592565588265089958495098773432405045115994018561453243854726117162161235827247416213937237713659349970722987940688768693426175501417855646993930309407290532532075455491066968061280038433452837568267516922782824330214511131449900150368016504168698363829114287503611949201342569718238072440036283982540132429884377660130851135854283422146281987214449394266947880979433809784819443218812179076021401025919636125757220322517684516360222360199250798889283253652709166252577087593132777614751721086235208397272641710303948694807905426589077455183057297574646102743706466140658039359078064667889254273336987174760546230515576714946880924235042247091475615445168082661292403158667430066570449373795661767943069612653316345017011035187451322796582774062113840220667345476994576083793624516971029985042236380392636232112685488804463697588555004682000869198427427507474897705983981782841179006074753299091398518273040231410867959382377203351505075176262152874089317154660151176448314144499448743850512353355920321429608228528644938896065033269177506766671021829158546910736771372874073431463046558066574551430527808476357596114917433483710294550296927735933031892125990335170592958915437369647871622218960145783513357117006932902552860201656295059630364432208251410500486015004336560302969628872401321214112049539024855617170565689220449316748535722294172031629499918662967261026106010139823121653584671488569030329369723930463495077557827361571738567531840489808138300182490609717251125435879348999074229172083247198272300697442192735578786537040707038476051353762021151235929465014719300167488921951580526125723190796063285265344811722716688734843347584890682717170801203606485229603112789116858789611179562001539293691227013710386717506038575028615650850102947550955591837064977804597768083718074331240787660018587939047703690595624212617696840612880517668697082994808672792089771490239943883427211372304865741390362347931147140496066691872401228068046890289591942279524857203656948195951476664056300186420386850796068927984600824403248298512346180909115694558038408734435470624011497180600123312593781827778657123648581766441390868698699357364984040484204553156485462117932584785747627948966991832310995573626089973984921844946587303858417694603634680207739993892670230347282382179429786504634284128510114510793262264233947737668839909276019489287458684650485374237173577808154408247412940732977335330555143308251966186159556493791431627086522856182415321238178510776026164652518162389592911406199876866933614773436493177251440566546260889976752917939187103496313914921966531215255481608347993463751043222250866209184722064523412877325952291827826909979682437374160437405739454372299180167891690121267170109406558156432480984271867011744422153551801643268716264289174201306442271523958895641426763484019651969763389645043363633028613590727545714364867238002523034646698566318145402193877106563100848216211523995246736520512864779388295911573938305787305180786286164745985334368244650254722579256846314140857278158776177797176432178573149827066626174761192436115546137781123425844036277111049542855914373243186566775323354794314129410902248890902563223071838776653157503105532939574907280057366492529180097486262378716752362848295054910228953929072287874391921448156774134833032554875851046460273397785735613752130429227076681415215887747465444311058770452719948227154408424367713426091839188652918810259956948781546653089437760321623765846923150551042098822013896138527803733691191928764761601553050652221912397612865270212899503304847738695699690068498512809100408085689272574015350193138865476457208519669148150627595612297543654017959932246269902893126795086936142908679669003438309609968106592518256788330053461206036463853184974329678259479325691118543174183783534070964908992137679284066160585330928330497426913673165519402288264253945899192890180286822091215330883122861350403955738396438139872365468243984342663780476251474432450929439011121014106765263084012069361704613886783634966682744291091124253667911369456511766458798684865687646995198512125986822071212002649965769666086981077222923665416502747806779199746598598791207102349657779711224833773641299004607149686341767507027546347468831210118056524559319903509774033114153709837378477510081539657378995254460172228476413795325198698345920810464480027081263754541313786181705935077395372347411734301261558381572856798444407888613614994571196874064126831407743883717430889508898412806893342450177946815622891187085904113898629989097179544927921703065653874121260571982610350576297683818101375273416152304355533553787017283171119833216378878429859466686572702266114260971763892773033022158017401145136248394177355382679092342309865185233579649675313197865668090209222242966588123623036268801931582097372859115759206289176302234489240307350829618271010589408023845935853042874210557938947677714975593836649537496612616602637956962452122611744784336533650263614580468531648999704167488799639222768972473410870832487781886090086512948740764887328126297549788694000897210460048837914637736699540755068276613755946157919549666854227325669185684947108819397056770469074515199463632487992448405380163512826035863899245420756226237604879411799253035767604560496156026605588229617501155160898602282460981553137263307212435081487622427868323857750929684192001529940166758485395511489669680759361806434807995458599037876480632694217619133189883917441581301984649476169664391399917927661632245634412637211248487363218762011710795755031381878015791041567791299808411875054517540045719700496168197036644984360520380308289682535619059525900793403395444085477133180017419858933567671156846211233807977113742240622808484964128993784031596863523157104025082482422421461968130492732189359455319965844019361371695723664278273974115447139100445969755412475832580038644620085155596296529265044904733700231083451326808016237594281559173250660646984484774742741645485721979418969213603073001396837620188750646480085911995866897129811629991149699034793986704255259638569816339026030690378646510424550565095839039375739447590985100568911257844012849409221751304255259396384170685584674104409807708942968659271290153651218176798077589038595719347644459691421423626466169604014752523688348607424643071244050001558087269852319870947419021026852632602727193049087965549720859758900905317041932960929356058163007426518963848899279708608268525658754919114155032859752224017539013387428629697953327282970229734857385010531417002896869473160834888885640918963649840999627419972265894446232095677023594064249938175954943412767318849517904271331608079103188901348876976022732506825217766229277092078272657451031250826540544423659539420360188000599129046616260404722375737249367410577680052867683722846749285323283458129147427448070500311436266651252590706702800238241720983007134374674007257348063520530290743145416126247194035038407176656135234226792330746813862036759996813128625114508891355792372010871580554943586759349201659856292458699152783943100851360723674949948665904011334161942358704428847435309907541639285604585881477672832502590859192766145317599075624416168391590874646295137294169065695026212876993625177743600031137846830501196698844777675183303948258383261232650907302484918646089345565504391545183482234153262651062834841081902552660562853318497771923843207394941639191251336915200236830764387019961297825947900466349529930864202921563094167670014163465160672434488859436807163972594599630483632185447995615002865814367830338248552273695508751600482415133453776990294906953145188421623211989490976615530241503555053138924721319095004171675643878350882017212953365571532551233338294050407046872610816827060436332132053197447589784219914519719764933697648970879122199427867731032544472389004382970488606192603909600702104353385062402099380338811445612889012488134831904058144025064668323475840343021981630219739534598302936047986825322146439931444817333614585369083663448516598162204038449063895757559228595097700385667059838077629239737075571960236204564492014106969848299957275425494779845773929107379983721437216968740896413354382838138321009940107691303140242966761274653252734333819769180518949927919805183676579636677778671396255873232094207565325547222777435432633218649835315107757941115860606796951318763878000957761637741308418997722491966697789283767468313999857566446277950631727154762385225892868684076269414561208576779738810178172734543943561616656388995092863809054040490518566567717194739410655414944481595581493319417308053797391483761686226857658103653172699293882048201838218332399911606615833952942104629916000606961971546751765805121939032914487530806959214298083542015285139401084702797366002367870356363102600437255955518081226863544358936624042477653197427693414113373647847838778746222637641682695599247859123636417065855549171304943617200245111875523333452334140005394843953920831776348714421109124117366064862229719467811957338332319804825106560185712065769149496035101828465952711454789331908426317593936102094325025331648354138292680762448982351141379848305421840235077823753127467107035379313461971786244194408842180842500175093246823632565808549572286367523635320770107342316416716401530163309671851343442994610481447469026701949868227731786273909443107868477793115995139845018870275852031432224400310865650580497393823052458523882353796020950286847605549513403779640340149105986405105954818735540242839807720711597957194447467500814380964310000582350070078889701832732512146868280206406771225311300358463978745770700609981866716300895264079412850971931948751627061017231557541596956280201967961983737280554856631704794126857318588646385011728413076217691012409921022133174886900625872275552410251191032972158332581818371290247040980126572033032000075432999108343230622828119978866336283485673647537195269896805143274259118835688350709416361792196789330120538674535444554823273750132161414351926300689529882270812842549068246775459412882926594369524102690982316917950435109243251972627006795208675620004982002675445543902069036453245812412159009035130461200769385592400236148514525441253816888521478440840989537796259113101909750044018294431981228713540703425982929267439266743259671439612796573561085288409888192231021110066073705911316298871896906060293935362630951718859923348938379622174904914302654502270916840512858483131153002360348531323639940833945019308153801010443515577080853081582789857879549155612659226949160857726953464064890978586904928259681862768274256782033936547563463686984432587534866144696322006535645606392135918268128033702439015169267234409738184383806872919510899046046217221124074716948319398301848030863503311444499944303667564078403717713097325886910891677590409608715475397503559798730845444086101395933241235591902880595245119175467709935777482987394968829118944256601848891049245109522122012805949340007115766820571587813279542047034709014213285601941694703429510634459049958702973423276527916847087964146753263569107649321412982203075292607368036814654923394553567545516150456433382996631361032532701505947684219712558000646209842768479203251536732289124709969756809523174245203497755920421718360437249256727425452412205415285372276307232615400866125509190601427988507153316728405886854896457164841166810070109341960883210241939578484971702144055808100148438592358500298859304571127257980333213732334509379712451471204613560422911828673578346985117780742268560106107778471721361592552085692183386296559687363405287662446915568945857459013081014596006528130977537905860580155833385937994827969570085262472650094785509485988003457756748647100495144016014450978770408333312116209279534011534218940237392905810413328330586829795598704447492555606486091638033458639474408999359093260986827830953799616654440243892545555265933904534106440420013758781229850499069381471242748938090786157585159995561589377892281719053369951668692771749771764372328601540066359214298571041281765764480444602203803838972734247505985638944075599669865812384668501378193025119615909973312980388318339653407019562610304332342525021933018933888158121231717186905776756340682126480390021433485463441632179301029850501527928326529446768633296521341050952531674030175045091828002438420613996891589024638522741974497800131735383122775155401566023103719089609234781291202914557693096801739727649748400132637497028838951941461952523027900119752858795633975421463437709548792440530766801019152287292489770712024597020501873279618697444096209754882326152484348855209995206420281757085694538204391181906687383424317354721976957468242567686630302732219159594778226962368547088984659688601529775164192272919757707669177065035945501656593306526709407454372893872939860153595466568440392724433166837138641577301655666588701329083570515693593237091662295280116067370624091719575778392743045831528309928243274679073048426208874509437617597665002882458425392475450369071126709487991965778262200211101325360698933512438544398336103269329366513773175819843286180283103531600048334504340651115638694031207733500800094245923235025683404759338905314001190464925020862746934553789393727482754952246722993301976489322255333028152893397118892158982244181553739384029332779549385014281930137388722072789582309899542793353218305755255590535201158506543416871433213390486014280619130713782918564931591726053501382425068218027585295426717189271427229830047634356715313200131183275495735478825969278129353715081677494360711855353597834320379010135906798367650513979745274137377073408333916973596289446235966415744494087043470477664642907645197222194917829180144991097350843408720729890172239353322547111717416642385414412639289619958400562774674325400513616207003483121458511125971930945116958850459472179906797308665731770924092545373993129805941092798474633178584398413703811767317965915372949912538980856897439908910086564853451561214554030046966257187194703281099847678175478951419283269217138149554861951551908727551026867113215762804160135206285934421787032800911772284176373141881633295859324112023299033416528310715987884125211194878058400202507093501720731257564246463914048018522476021809787539271965519678615091386675867101122809543880859218702582112644991306763246799170392690827397867942877095018838257501351905347014184924802557441704099974178718329907096208572293324968614065781660502887893729881013930046432728509098233536381104504711052621086358269184550861147090403567219827784910503777479547436955274801449072639514668414677401298877482536441238494652551143433292647104355830681643759024133524263739684441161072449541068664687341154569166753086722532653990495103812407678223111361851903452089318584612630441705397318194386118912048252697299295315760084145544489338242474793279094974509075938788441097791863728539895521994976706277809024197115444037685794102699746225356416877975550306107905145802874066916683556675545949356725371058377097186119454662696053303572153813812327973816245154604817489123361614073625246533888480829203929826650856848057257034317082668194579725875711961222321224316361164215871312993722604243201492048324752828054353304647025359543552290610304632511991823802079147513359289718182563170593962422395364285170564686295077035167925348167590087519564494880299264075463635257906871018695147415936429474284800770382912020180518292771419660419814705315126168304295233362201406942977286763736387929228656348411675202312944671998749420010998723411157658016838528129176709191056737338250920022467805311343092105440588104473665320559925429339670564220347063305510797902956272050808645516317849784502557684946351242430974843103984726260396379175212025412668041006305450740380787852482052139048757989265906325940631987505726417889786028712809720876873700776978376344718208862668799789908412310948816660397481992090262269984896212354929724269166144970610621845272911690599738015598157126146311043858169919424887642784221725629323772698680160906972102190267774382894051459975234980960368713401064069383385472393398893980505941696827769290251746642807001647805583711526966572870916052753122273970038534632422432178087946425500204726406525262055116009046994174477679015802906956354437849718312244539143884512445798904039929801155164034554829410027597078782430368337276799405539483965346478768751380279081909742722821112622978527214778632069812448713388069699170477446344867002682970757741023555389383740086331649768692581792150665099772873595338090296376719990410423245692300287571332184552407919854774100160370710470974085921078173824074262077690789610988271209537714947664121207608030499044894503804913619202950974475543652551383906304608000349979468523169789269244007091639199056364889422700796152867636362772957745379548006468774347174836105710609845421924451021128268268232852653589099739238655790392680301217304626956356008134209272949457320120208037078637835654263561946043964233882538605829752185474436340924876625798993731045370589581852679145003402905134552708741013870680171158308471886102945136162209259493364131977781908922871874824936953462900872101961234165608317509330156319469438455540085377675441712593413819635560760174006010554995167581760708599131330654563396339845299047192690327130902475418567667799791468597026123418549933179810363379299154923201792517310245979625001793660462871472932494931410005739425666661468226423690774969707180281876875758236892604642674249249102793227622068684324827778867325349922444076782186696884747954954690565517022367747920859205814440478621821436660456060613340652589866202197068217361391606938717327061905604293454721251932990524767086515650083871442026693349615428953256865099227507174500572266032598126776120722956746411450096910504149677181769181384201431002122439468038905776989817861677214906883961833081482691712602273919811296167433861990936007773119722549209264333347822120649368683443249513783094027621306158187940478178105417819352503409982882564751024541154014793026710028177149219190723200298077678230278934463512988606566310368321210175316544937273393969400570957642526046271576852975868804116243275293951595807536992037812185566650682270616913684148002246156587580345648631360450933900361266833940851702374746877179393247132273204763054140674088298128645695265723793529321541597569532204770112042531364475025727491141604141542166708616278526349314022013136950871696356550118184862768689320362445667599155499143537739431609307723797280847475309738132397046885618638372195127040660022826508523078388283551412406127075413345368791824664178134497226459976503454800122678508445287637850135979696136565214456051136222198865251823542805550578827107768134336655442282385439370420544107283624599287773487100406730633960024569617920447715692270436885432726128405218020990394919511912597893919476044091487012429926739651500982614322331491103159576417811433230885185267911266279219054024550239023736706021557389805161969228622235036847962142470970800406973365790441549331307682967876173087142655916806718886277507347298477763808172720836817936110145408911350212998984655223530062754771646950119851713978335682418185167137727735692251700695042623361994427525051176987366446207456617442176557771265375087277326123122938407274757798391008841202108314723124545962346698001088426781948123257183572214624370178545901378306220908308603676611970440586612774597353400325709182469459432068802661855513376435942241760932805056079986617310467277273854110499335744093894672222626599673172124735098862640106221679515388486250089128422634134259049429830460979266783692030941449290534836872637550567030080817618451749419191243186030146782214160115921514640674264916527387182694527363734914169798981799291346712464878152762157064046094713483878994779027026377522468369831176398643934593816421211423267329885323937692865924379433742929207515001776654460007554654467777852326778527828434313626136211070090985709657180736768553053396487221536304975755784166394972716036602799733394350538110533090736084603185181458552934786251369571296592429367998909989270642826287771278535236772245973967774690052521969811310951154436917160037572063908444722180188744097609298403968795584213226854439537155765115267993990259683949933821185422212659372010846180507232239068610787004847275972426965788088091713341687774415410449462854669981715949383697316152130351456040711807149175354352858657274583495472070767805757225031243631693531348290623093113273958505723225848944565690951042099122078646517889195483161896982544304116246345404932062470774791007443634872143580691136068662889009001321418350054493328582661003660627088951759011465217434735387603375850530608875490163909974910408911790257450547936260685201314872838946477274845823683801408055950708750907661336682723034487658505597792681536000665240084456623446684759282397825874939971315873227129859517099147663673893142340061491726684966460150409153280324327556925636515440688210005468805038561667007492543219544546923248056734141503830128112549971363234348984437900612432588898621167900047908073488298442306499337907656468139268672737096652457702117902910872162436391736816463105540994120432053878508221434536972210386488421565375157473657955142738615373488089229705333368916703341610559793203078674485696949392980341913660304525733535263779853839698441070770449731245490241484390216733891307550358889218756372807798585694260685763668286972982887776638623275777290170595915849541330911518966839026266053759527261252177518461125689023693268271731919071081271592430097830586043654551932187521933227019313245373544632745495362048368200492679646582967088465900653295216196045063943436356830077730516389182849167622772552118030773946793321784899710039807298560807201631360111110450602667604971332384075516216326229095449096656007504647354198277713498554031149957820146398907963695401566434765417428775030365547315543604485907031204301026647051790478050512653367254206961353691856060418217344637914454778029378262779094465476987859975608156517203472499026354001717118026147979141378624789375502727364764633445772679360821455689525340453075862144808394737361820406369421053709580195359149833229401997522941906091861778309420148864201766336969549672186261192244681139966379883419923035386380868144386139463032942333722398729635823043497046472209583433899701155816329954922826331906573187057339895159226786436367635875908350697194501616781201500227995203918475414792954532263230603287553067978632298221073442543053931651366433212303464694496580673179532941111671470882209794690122257012653899925523109280195404234322829837853279323331443198627329512014969563576353140626311959548950314368321359878361360051018677070381069271041080942734209633271863509719828244329005449246112113778301596567560342743724976239411963561663438895185975684265973767450490595752068220620948071095882804370098333406421476298906894110218981698519789723287105222902364635577412590993857167951450405718599116260878212424237840421321617557333801351688205473677557462358081768391769819143204676905950743852153167920406468913021325621849032635789399373790222916419480220960709251786943021423782313986488150170846310929733341030103310748338768505352442754820159790424624638547498035720867363240047463435365660370894434332867712245558656399492126926680566628350724468072270595584241758928286233052970963026557478324801767358623483781697241184829237555998297496518363123081157348187837225859979975642623772852781853866255764622743681818722650993712263423447839955434061798665086203813767562780720938266914028686644376213692844740514123386938767189847532706788040813943375843164329297992579438286821488793507563120768665067261751339459416763992283726914387063740036166171480948170404011749449022783811195232557426178113847759870940224074703189780106240156455266915912882198303401068319238312785131905417380913145679412835368213341582066988016531733781620332132318501859912294260973296247489534215431141893084933318270074281842176729987790504558523075867748650605505978512205144325487502832410232360089919243802841354200717070589334601115212550120873095186867332798187259154199890971708168850839934200970435995378573879815497608473556557772487072277900878590262484258918116900396236906420484242649912258355684607332758895533492769002743732064154326494188668533981449465768088894102433816071176270968313003183737737651399742623607153038454075005827190709602161140034274614875986061887484406499401399903891913631450367109106462435832609376871496767618402590805007125023919917593844705801774787583133677668416544642423044747405172605764186380084468585556239667578344371477581325068615122429205880890273422549973626648949206945724179341830462558781579403760448418300943427515084853170353707568571313434885075445696738817340760004996251299407600880466067372349488724018920931722933515027305906219610889417678481645166541064659018825352464726912113620919116652200575072647962302058650467335692820087521317128282005506529175074496308503245618936373048387340512078879838600953949679081163393218868598923041642664164876166804939584312078342541718290789911809564602428500220497077188771856809681580121364467826244611837557740872798621812792690384393569633709241497814815409632849871985393806663212518337869106233818195358427057984956563430446816469415667190392504735534189588779769964527312350300556617044220594118285715160551390284692402004984447831754663023346983770730150022173719555186382523886709241993342024190605016260968707948644220650956999830789098515755645715102020455480467363917760907274210021594664046776092829190524497937071277117653023109183985736928654083940147318215696239028114550267826749365058687890051206137045210452932136184535017049267755042184468994133832748944001963002091894024171543295559736021254482527928067443054410696514714158704921754881301218122253855254136016927703068244713667279320625433265579128576922102589692127460849780372122080953202113528631425090690761824096886442347156872362401391107650338167825362458371927528924826801050022068107529321235576193079593782758092737830613507576135944511251980772639525312579033390197202307073801637277986041588598184493207073253099264004970142789672709279131471469756053019821988772986555405771329390900891584449531458259869781348205832620396581487443739513338496675550141667927614192998581909099639498598432525066462446239093884762903058236365300229582599593317464385092373275277143053005288184346370388195911942965878365963565330807231926847064216877792103570735429926768652577630477231086826676662449528440982512740080929247036086346731959250954686544718028903422446182818173877335851855603533563450920743260110869173200316893917539065274210848910922134016407060665357464630566432072301882962218334421940588692180531258640544772539104517048398136448829243016091208009892863168757457815190806389884372001772847783934100726729489787360073818571441541105754349700016442467562936370980299003851793881843888105124994889900247776430357836753718446568098302122495165652561027431871865033922981318532070261453097728037968361114506904193467288231156132900213651050180402403875137295335505285698253907389187164965020392379519818964259156030713652645080768006251038009029180061535203934246323405351501325397377310985410894463836362342635724589190116233340752671442979695538470288647879501163310114186654215228389284763235110570341131044489362607597336893741924140928448424795394018291852526689425385727210238563912849097007192305352259787127606393614823751195831907749884788881554327988671291500373877990546815541886897756328785071831195978936549719174649837751110486208273988611172654215020178327763947916415966248241957661737599158457465558645419491053873868713317390496816800885999948855889921576012591454888083248256302208511301834468582088636426516188535594477844737010819493425487597088039710226403703802088522805505226359457913340975814782319016552488910211800282238999970058394522299068155420807794920569476407890976302199927629038456033124014532381477108424868543967569751220957157282841767954378597190732285873215903257791644755019790666776915232072935086428847743109489443644809729128775087044859582255219895251058681625526279015914541078389588964817111218603848235303437558347434002350155177492339308705881764968619007275391685467075042675177716979052587526843865792038675418468892609391091957896334154213077706663156171492453982550643136869448397930100939529181745334695854891036723535090542206890371014506456541454736844513651032980570485118427762805734720390872645451919419222677195389577789987242490989740994183840931661245504327717791457352665814817416928943131414502334367649416997648688383736546839871069604136778803726945866562343959664479209060718708846032813132082156804885028258150630042928276165478748842354232349660538247172317723211776336565310572425992447158426615002875978364351914886641308567303865098668244328651556279592453163709582891071989909868720104234399900061782035017902388465699203726177079931577965447882913936954070826641471550545156668971146718118275851388812748512360292888386372010951798047319483616865139045601609475873203503755708581520673395718017981170652222268236040286652435010846631540011745939338407221221932693990063257327059564374663741900654752311788850950270011854107421535591996980979084075300011887883893200912497601259159367246000880350057548675145538827585845177582733031853820041402153940983688809114293495773602937630419616494870897188704129192069153560161636308684359027016211680612444398964720875813293479516419628952205169476540398305906710785431713935825451879423269522279860821706298283726119484823043455323057748591161933898356480509121901712222470552894945893681026875979622301674868024672613438172600609915168999964624486144041138943548224258943221452910206981598026919176432670421807758480207753719004735687039193357213094291265662294768892626370136296170781413144955389469824411464815067736413054837085227164796008893705104057146908031400809134181592365016265022237321972220134690135965171878548799929709846072251367236118299497944752718554028703663526564641090086216062824457845862870959320435092336244971259315778695527746717852000632861860939285954529427947061151238891329264858421751608849491133041649756113832673885539362331778628586124009385543418634965275584584288287769823633465762093316820138757311667646464586477379125634762882911459331312314197095711586929356831395078322365667603892415495424672604247554419080796144533834194497111928218294433121228037338167422874497807787481465310128433259915502242083197316517134575433866460096567560821695894030033151440498283339564084640276173202379666688644405279751649542283955525166217193309157617018009453410599805632856624084757267409795023915796127901254765299784946428747190341519022311499926938982086546510627757794387261802892500633547634421337525437294000219829275680769064681594361803290005402760973162213883345818766071425888316364097337159668064138322461545413772803979805562586672104991045519970483276161613687105410120556793123920979573305608919596574756161818253083447058249717984972508472378360870533758122763044862152781148845034451378399813928479928673664007972549453230606783260655605602853778920463788484345033217090740868308983985965134531308529600460829469840579072909576915661540464246941059124617218691736863847114659023106220526479616564590098670639266673249873565353799455432762271135811505789873585829770523877372110861612991226858594512837760932547952745951898359216779002334222272411995190132548160510843376879856870753915434633854041826155627599593278064380619444517156543157822051766392625588428902125051898610874677514835924459957365546044591652372622507965668188392285539208018990672721910511892091802377241209629738200180512960973811254319588773469581896961910669132132147159193359699919855192849391057911000535302888795488844232318512116863644045315490910842915732962715654571828653205266547997420074814752301988273059275416459032295144937542035333740370549511189565048945851267478710141118583397020150788643752248745180888446689582675942384844848995541663420839506478769476164812775802227699300229023225829706797448598915364949655246322188209658327062044583561158026264880543719343971229503703839254486176607622041779009080199690459233540209255101288994240513953335523316122302081590483305227389210812986124650044589607103853885268093539834343286517275476115920259515557897736702714794937368452874978457343543466753543191306985011287855594097419396124640589874906336729214853396521312237498463114854347474575205131487682380207695226912399647789094213242885438038066134759863460298156909261196460701070682802389761639772826201659502460589213901757810412585621262946694251908706483368216353055050597793152585468351103355812054184481956848414558029315407018107581667545484989040120087341641666937905718358169117912720209908752080680774158855884809561517644968748127826583885061472554411023054859633020382651193954876335344445690931689957570802599311640434460671288514062087805474533391779200115875468279687565962469276165854473076249118727302094882765718769324885019427229959579884795341177221950332070725860467278265281769299466416888288909689640338290288937615450583252717155304557663840095863268754331803941855631037511887076240449105557082757766667034867363595225855745413909794502298520892463713175936429193909004399358145471587656900613375879967097026656920144890443271471639221942528102706538329289575423910416815201281748123360715883967785520960046383307882207608131054330150895142280065870042825314512776122384461181238461541853310768713208980350715023392109392921507488968521640666701149627838130613189173910176338924217170695783971558480150079538309560895948583044354500565561161866168425990162921370064528109429131482478925061644663629925234353423845455622143789581792070810402051720366590332521337570657631133468001337518313460529701192790050491970722377883900556653529473486260112444156125717050198610384679837411989583707937189432151292385040001923130994245410098467042306737526798848827108855192228959010493742966522901124967137397234794172886510857924475607721410992312978386562522435729506002942311237845293675449827215939408523050635984483714990575081262697360828437953645605625389253679752147654201548657058687617292676751848400364225536364338596201520421551211884854012652137416503685929743554212505804946286778293032007309943034245020452122875065715667976349544631323345968770050836436997814675266491465879240874466732581099995533099562133812046864090722662778198007238168613973960533559392736586646635087656597443316669764986099790913293711255286764191688079935496215295070019187395259257048764641028162050250811948980420548263722775496617291404461716518165238778625183640140203091422153339725887602243646764907755360907960275102632475536424589024143826335903041415910550610621921368781490274478965982422151459667341163022317427409717057433594584480472766021211195339385708707385010102312472271822959674661830945630500558553726543088214962085961746331508541865505056556385537689940255400689935210392580876089957060165650984059339728909310948152096578432736036332977960694033053255622999198480013517326887081022800354724630626013296784652836729031172269042583829915404561103838991922777992941160989803006906785713994055544269104150288046286083839781898132801051396962405306849454888510683728299681648577672643576963660475789219717916938480638049268397096267104332928095556071151260502761879055851208754428042672210658231881891017327061613384634441694261582447254047697123196688659367704874494840713432769044171582953256716931219249190304436531245357649285693288129721866992146277921157127072430257296460125459526170413444504464070274419838675159722381197900543441152744026004946485162228783560760936158721334605562381410743801270823218351335968432105246130875910998576722474093223405784091986381267318467651806932124247842151268743607058793494708870961171927536260500145332682759138843296995805568762053882252029645912053480927541026745271384888004585364090969591423764472190644849929138353686530055614709415692403393374194961151040898531376031667897907905878397380566000214025592177080291919174445286965175241198399228883803728609733122407011522878974350139793157588376634625160450777921185783987701615569996675218920032966309275374142640517264070197911291472351152104650289008320546352632158416970040577324236976015281029379210308482453979220928439497078239686114947185703158377304936696149422641224647190442206603084820776113807680828878715865769206262600195288278089459690959007154503522101124558722772436381173086149961444100377951138172851976489302513420825335230278825193154167426388974950963953425666664779645751657511071309188935996275362629616117887498755440507961322324471058958933113587606431838892003297788115461515864798206779049353524300151154855806261198563676685167004599567653578853552424054247770116393222662391835096617086768202114385621201442981126391031983511688926093357840903316032735234142683636569912465152715794064410766355048429453391876445402172255696230115354704798041776395653737524241621429901046571341585700101470042459140156989558712100704169950515810769550461637302927091963084241629138848676681549774435420988299513251996099160080534003519838668532423616536985483120721833140273722501735912646444635424098851056797552863884153795922582900166603215444107602180618943892839266174044307144768409225431664493692620609464782517558605684240813962654519255954253014737890084555582966311144347382894116812222398008445140490269049299899472175269195744115659461221640275177579783471581172011422887610123343934088101038170202636974559559774564380932649462019420969397989651494564684732180635007555761998860253939282694083952178218023209815800113955439510261709436381564292402206839796924827878771481572807188853885955738499837764131432155173462270770690571158439942392647892938823372647920252508304124167896229643163057150632784033255444135647205835568856030993887475421121167260869048488574430099577332314191827588117888800086578182138064222127042723965026465476889135603129129707413583074724345001397876650468228716594263100731521431107810149606227528141197563812250751853413177309265297780198386466238136863762958680722940736071732081686092082525592532459244988318378146869185567221364299051915528259672992969547808351495205732522633463816437891691606286997428020151434179034155147042471483411062162293739860550153202947906529194029223177522984574602867110185250447123242703782928058786276476382714615811730047916682285049668108633123276868815290982843075580623039426191073322760111255528860192986220151861967688369618057186889563432054260924679020042497895235764134531102650892821009572822895470763591272587559462752851073368742534701038646596051404769529698404357986656821784963904894308437749381059072305308947999085366397210593504458382965607863792189580685222690754551387895030222034239647251573534857615945186638382439068198324435478581710585492251424721864351183159394477727251060906785212932616489284868071079569717313473043588813246278351810775610002367841222405520680553543670633552637831193050633088145185395727298492103330538193671417631873147919737758243542656255501555480358526873133805839450205378563416298167599918344565609340712573735217512637953073322748786388415745442325432747608537667873259428772361932852984443087874848928983431825960768110808965655352223409468926325306683750612412747264076723589063728343622370172213281696999492178202929804312362462874790059578627171892404773516986249953818027135693146060466197880277180419566936548618492179923379190287780048352187094005713479299434373904149614302002734919447905206721788961043251719433588147297807497230376309914699037945931669474889147304136255315731581351516372917849365227429004037066554474078905934666407468917838812332516466880911911792248666659642896395040327435888056321324622039913833600400070506008091978674619353312128257641178439949344020569095958260131914182880015361757434645923750481030388887331231677235593202834357406947448592781834725378439473262978527281395796031131470114053624169124417498741014834931971230741948842148290293411173061076916021832213700723017495292943466033363541835212391171383311814880907217140952005297674499176824107584235109654660281924657761892022457253656403840861042866546735313917608429594731156233221702227728380859127605686036908912136845999280951875824372016941600260287243846794974020766208157360830116329281236109754995791558829054027271949223680311277271496931456822495975287058283287474449234685590761441498149440971042512266233385454643220104344006618255638621140779884519371880423844297756954606391888676477902379997054671850294516667266242714983026951652736520121433344913237192456166852429343025089506642174057792415085235448484194355706053664454643120022874930334097511257433632243740488379829186474363223612316944567967984547316285159836871611349156654446934446557701869407741220702598911340658922624671301004495049378781077414512014986962028941765871013104783473065274222891749965091035926743865398418579526978045700894200346452813385369214074719169684098115864009376730003213508294278415172053608494263394260258166793830892811733282315259462723094702488718655768906516800730581693457143797555468395251623581481499365473302515401760472738890134437843973068417977140372478159124649241412620233699007089319651966611691510251441714825616538206914708540211741404709984419344255414276280175558895265310197435933644442788639765106750625647184981512264149304350603746293066168255845668737979075496068655416764110917303992721564153073647012996937945597052270089872845631620135881357064010812787724922184830228863993164083240620304204244248073305371001682529893130073274121084721624951933208418111932409797716102489521365677011138833404562083613307090521399095803375723185546110661437070523267349300936970770823339842114690336517313933575228131736569658994217421090901873440456805301496467935528626850905060582873679071123950389224801603973513041850813625651883207908905099085620270392036059164348970472188902989802134880411038689135155792651898408058948268627537298420007256989374479494507645604488472511909278105790698758037076150947790712444035686331063064139079143699613998716094067691873039776162843896839088504216833020967110580199562230684235603283981019599682216574638463895837122229899897002079242336214097332971678113924145117154463892902875082427178113497704778995849568836388428650426957906351565702929003209287138230205259393081825961194159732583821032299157437893672159001688317335048152608837820324127962434208218367821423679894960816088150626300917397110162630194773841976306745148843697844728829672996392976145306532068930715559661630550985199347814288988834779854602721263921147654671200628967910722121802482855114533602201169145412309426337740896342932197081270659001742987482069245784143413251699108897433029674375866832040409108757301407474910003216767055060102751944313609151681140020156120620175225342364559276403256070011902242372397011174569158748810349502807809337989358463185232238194651868117007240557211977128942534751384885668812822093127543862812140556880781149038260313811221680641671835245277194354168679260376214951733688198383585577892067731098022395891146668014330410203993410666013364770949154985796661083967054668115652644627304576293497029854940202715611878248428308074890847638306496332414874961076385146363341901098574358959509654795476661255050533915784364176905126061607467489215357103645644042913581557152611068478309475289554606927865181654854700524752499514661650003926852293946863523490509655098533213853830366917679018241925307262673624976444464069396027933850918336708433962291930159924493477252204876393751909682650397889135127642819170805671907822469325212692769434126708145249825353663893342321274528124916853595581166444406600040629773107936966969301551438278567074048903875796671119932326087637547763964234076401096384260783863086072853615078197502734181655459686805816783787547034011723934696478145880734987110073515339288010606234520950529115926645845388870153491278878110863911638230580241206565003389006473927706277913193574370775274103822216852197931662015498620708997158236193412671005757252503745586247934779464414753897050013608264782274913472391637891558204798639668942411127726491629596003618705144834932859813222629376404951545026843645439133787941313624663693890673534686664567688144461151309408530946782556817839342701937395576877831673715649363686821100994619465544911790410990195631297386776847781888784040702566522625560098136955701113541280346154795458597692821002135212884783568439414541336801361741565014084418005855153319505129178269222303041760094776349291688425815030841759704406943217444417205198159690102627192661969741100220603900112858381364379100219868988026067013765033891062308942074256119500140883494906552424047682351520064865946961651651127486343793726104752555279742390889831838821639562645828750410614477431550021433078307807914144558307884399680846628372809872465320537907371102578453617120958292129459967516894733083635862514225940804164106910965356086602458712483073494753172981487497045202847914636264157700610570334169208482546626713522028864923005934730812283819689631647976033589685367871089217971509216813927922272052112024462060591552080430799365410327262685958852014865630566503834015574000476731933400506195385245408446340611288411392655399220266153556297070942358014554109730661967555408872002512456714594593357279628447921539303428894082177032217049434318778855796995314913986397040383136528650133738465319952300455485729859236882334894686702250298805772073458232128681158883057572978652084920645970849188067633461991519800643764567227633693027125602920130841640532068678884438771995216551523324204881920238334862515567659655350685757894762150409105204046376988957450749232345739463075013738588482927517275909871126397225653248468038284759650654853479150977654081330461454530474247542668728833657001895724180387017219642695216608640756028965408765441406122827187866065784131404023880044806890168129851344420148881557324469187288278001784831446188922279757601899328882071249685280031648644370885535351353819982635425645706364466224658389026560802785214273392035436417179593628342145038016351808501509269603048868664375625779235287629947217203637302338235386395549673950236158721104291625179585511674238526901596904402939528845098360287076399809818342177069802336211452636119674142356609487738311488350848338956917544736551628035592899079396415423200648582819628286298442412451367673797981522878049446113992024938729502664237241627590024239092338632041486880769830411324420740009865418873136896942523007723217162499643395236294484199381658463666362725483201909939835749151575651375858187280164674241979298627823760047834257188772941001443934266860816749812734302472788251154575546248443312999577477738823629647033386709769069971890654444645457791075475492469125672645453093133615726318475562509269389423044760592940795763549660894802945932162419087213226135165277723135068856231699174922190337343987998066992619814670563252179044363665336276083120722244753519285608545131780249214805768558625314830516739341898525515931289657111530316376793462515192578003586427816202125401175542326408233083746920852241747850465143894854841662625019471209384571241356693922623946778594851994647213680241130042986288723372344297735768225671474705572310971447608248565571900503531870561498748720728595214306311940807393871562175169816639509963598868108352359145175419511914596307710210206729580055228004928764780199657364766265480385496470956743898021320112553584277183518026980490345491881253530100593235650996932051096653414961265394248112034364894762334328109629545659560027735699657625755976796845874831909507283798894565733690633157101954395413596203157968740030888582279645569633249870132196747578673343788064895290919301771855441699922441445385170544182578175825618645437805690103619646386406869814861989518917393823794552797531683396474275596750149853803492567798535537453895015004701504464088714974153413742748225082134930504439394224569254788330177546574685389063875069590518008310135562148805153136599395469635271195944786819968175115113043188332004396437306177716727802294617651168041594396788259326282221431879649426388830130770594772058318332836172525569254961283741551009489039097467176755607065272723923530985627351614226976842253668083135297453973073909153015414584444453697599778350807826780311859622840788358421961904536489092861904725390479969193544224334483512611510402110462297888385583024204520514725840895568459137126628314822541277676508836187647109286738630472740760410704617928679227206018975904367877124915582110046437019671161299847633798124323938742808823805727941931104906695265544529528699401535652063094840043646859094599803151757972311268265471687806183338122419367751046929405778102041319282482801157399822559586991739170837800076900166959993797922593124468122700446156660312560482864745789209684838001888762295041819611175462057002498439884792267970751548357850073991099327526724468784664008488477038806200060423209608993443533462865965937556419625288749655120930988413244563024986749215776950660704626812248998310794747965808363891139065769450354258752628664937086890750152469125946418470446682379662685857885863870490602377432139509020074701714228424987757862272471499440280593761630915973283821581451510797325437201088777702269622940414824520692602058618818441973591218242773312030034202053229049107268469202858686455590323954367864644806959974563293994922234668370599387020442413570981954216649141992530659435282736418597879337085016233821576463657355569886124723983694638686149465159989010034606592285032944860934978529634870533380124907247006524067369236436455442318244525862282805789191213178113736259594488792349120394529692765057157178363584055016712288960676477645928608935890512032046594926310042764372409845978892290558785812903937450833556473491072993404023351330701037597686306735431874152424590093814307769735316725721790518987383873173005387775522161967233132434256662284694256306604090169528924925687107266906602657884945755456688795702911772715388907610081040779491967579922147693531570797788235700256728931059687227288255010451431299182439216541061801690543021358539062094207934169115088393799831682174468298610788002921312521301828772842723768053121537037280572197540909857097360796470298261669121584013718158451271933085567399029706544944421262139277687440160583389829163429199320588587646174691799489395256816898910734251298624490826092703882248380699025198892049643853360452034271617215852941845529771072338199400359030663403624384575330385482809565848184495781604167431218915800407938973520094830539369532447980522458077192793475943665603431549197855101633844259306906402100959118873146183892706712778029835506060147160387982983412325791911065671076777447258219805197559269869071286721875443030085183140132655023927894084980322401240182133556354258803972920946594427649877584740428646372928255357131186695638192412331941786802181754275459583636996293687316552840555774802125070173841573051433069951469171962042204756837697613847902349701541183091874464392520494088560284925276928823593574780952981067031237164807885069428108138298298958903327158232785119852443675975426191844730560894963411745518444615233763995428340344513618066120035397354150837729794974926014445495822045709387225884112055267791376990217965102765963513246810616757347323778487330275963109968061007229043917416005149444180287009902318139489782114117083643875475153191842589089369267622974627523009285048741406130468942522367527035971206218464891902379878986936871907235262910105967013259311280735309845655843634013199158187378742747437794052218923963387751153823824707963633000050720948277452287889603700708588561671500781535820258831122866035983821289697365556383470644366442544442979905628356899640215235575489399738258498307104315569382810089760333040636300862161612016813766296498833962227086267034636907550537595132841868466962636942954377918125401743214934005824968871620196945588325596815166408177086518004606003045827982776115366367666029968898501448424928355043402640275986338392173625919843380948066964225719318712670198156285767915764720943625083886977166233608034267071434820775689240986441539157114402796053090280267862278902611836811088884856210745181091501768679111798578097408335034908030277969044119719440700198133809594339333286288214680056574991970304327485734422770199021913345246254581127279298593007071195726693837718966883016191647380805170625938566796516900196601700022990689558838458155886212332177726343724551236413318898797607614710765116606117208282206628277612073515522943385618924341635962158308077396042499996401127798020193473014927689043430489877221189006911640650795274595965546667931384081187039648467221188632357754373121916974060789094946873613801106890197893975042385241857109866884324297520277600096149882104493271470689319313507856427922150993062025700695742810025861092182594631669454893751381378564323751435878682950223354874173206521407241370823410780989335615970484869401353893514435543887585412463189660564706744407872134658033622406740244386507416552057923842442909313386117342531680415984057134565868438258124416070644509496235892107660113653873241785417883774043710673187991148673967884650262562025582545439696211240515011650197707164980528477270108241843143040108642891203750573261931684429495921196441413644782625056893750518863760579280928213429518852437663377987879495582441269053805574070733387060778997730512696777925687651343608005078710508002715473836314088323868756061336853733157025501618900918723417497395347256982390542816510750047095191709230853910341688524710632234856304071216197337288043611175533602951402276607028128800826507815370318311041685355384477275325242044591252186057927049043064707663100941477925118765808221494234122063938652871248224838054196020589756098929589191436098151065040366503146288172903432714726751333883939394770310035581950872424494511465275170245303825730951802055051395486191903309140158046961529681661692795369543017942491288802152507519574172883595942705699837091607034898010985728408549755917097509473265488988586030737632403317355595183676131882282683956882086005385641707844157008490029242907651165540197125886089521708796158198861068267104523500902609255577718604722154447257950715269573163167513727653766163042325000902445417844969070369358344565688629289691604837247771469261983525392267492560866153402132188594141441148336110739954660048049121395267831983974456073966917433198766081050342836590429995470252992332895627405202850688871289740286495779576549046263388376176362883770157320148234487825600797589916172708124004487319209120272442636290409979777248503247737839719035243702513464740808173527341705158433993284368640830836497203092706986933676116224205929945850896713621459336931307170317178630230218249020936309204734117878591811978971494153194341246767335189975007881064018791757680430961617795978482154388277055871805810459699475798559923969015773696254901101986887750639181479522820658934936885960360051941299835917392203117612529157465136161053982145776603962391285042277750846916058278979044123032050837811076859398185800818191342149952425996804277832946168655844908620957610025600935642035691434442226728943755012734772522566013601613507315645529564446995582997137376589273598464175327385091989074976773916244621107208802815802393922548129915409044371809967475790732456067238959367606209024093856446127354118628821972254163917891082506114854177914626531462941581961156303578902050246248864832173506574133619444908725587779235239028196539952879553236433310371844372132842733988437349169617189932041481528927505559368935337309068410645356295229121960186565902309095342020357071411033386761691392155990871874403362014226234545020315140190509202254682498345711708009728096166088361069283405822484623585146066370167568555726565391976095210259808795089410227326396845507978722565776265238767623126966250399883897918710775242248188950577406052895868134575677245748720112094836115987839337470274575389999406267971905590534326533553761423001893323897555780638863589447097400976774908781648845745395520365995791956090525387330857385520626568087481574848710923016921692347445479975833505079987959286250095803771793129872426892973990875185809291172659187236160059852772765797557006232344259398297341006962712126225441740831560992086459561559857038554238461916411359913437912855992568243785967900357211268059131092773717647723031063519252132846865269468677390771001592580298073829362653097886241510115344305609474409395378846686723436572821626324087204043913692430128066449451744354514041544296107870711177757382865937807384959174674948142707822486687398716083378732602873679792116554163725722731186055616256640883682100486086396769543550109229632486589699382039560187117280151125358460766441332333514748681970568184350981546938107634003787517098383589584829252974050507351590591939174710253645877837944399553730151891945014396406730255767336908081702128704994671429944618698681453949541227579486844052181687922528826773700721757895923376220029163321425655843418306079132160671192741068302494484050703095435728706896624946131369701223640441782602217888183232415052928884433108159198507115013703903862125522289003567107434096089610572808932676324712287176565685195259606805951140539977846829264095876629665808359127818158511063360888327536357782691317164438119621110022367706373293320674351689675393977105487734447567450628854681837597705598639289780680517194971097569563931812627910576264992472625643795429733160061225550896547096438160514734877457311233191472557453570416913938418557942754853086551369294717839286524835315461817438789846739824786978263534132787820638505183948506255652836552422514715419867520489849336302850159801134034811319078714176789824643031618196557382611878154642096007950787144924841978935397186747055198344755814776701373603845609165513371276902164666978154464511936211007490726642360024264189352428471727921185913586045670574300893448628337364510878368796580641323344269795523218249914193167955631417278839121419548987124204985764779926543979407539611685705213906470792788977737864936074936202205067068196697829452576202690965295146779327197179526991500379616811771071918395785174136190954392276354796139078107182158863925892663154788594241025436587023844058873021888227142310949313198853229343517815308792333190506861685813892366028479967020027359660953468705925405912753431955415627136576591549614341855600831981732858128409458290607969664049680857725762713540197602373746653020744896433369854656035325723088884407488338867493628705143289094039293802081134793488290906675309425762680655328028536154373460315096772741386731040254292572501214263104166891522388239903950300229144164803894306689930361036316876378345866161533990524848353161015210041535530247144748342057574904715039338245698692048537344691047686068894780170292816734433568661405878231184490831974137259342097505678076383296769534847780700137021136306375780943752667896769195450520833538096602147289144844824673096177139477057342776922273424877325615920042451270116414272026885134829885853381526757538930062343256867283703105569402004612850735580114483204204800998793491667388735712847756835885733520117213073684521971765372469395151131182928027013633405540707449833126644383180871853780457218837130728553809917035607688218270797665812314160972070267961608891141897790833757462431805039152544726455396566787520217672568249151058815189714389955734941035107453650830799955420615294098298360683217204436886980910271759249587528031209715903389927202900839711190951791013658481443821311673162459654016092333298209009204349492657449934609640085340351564732929820271666674689182402537659259235498748290193433803351290695730456997952464003819424730296726754456739477845276541516396148069998927704131170798951512730443716603062392864233404456554556669312320501906618260199444033675256294767070554559034079314642708467291702705745307199106669982866041405041932527949040524875983884721433041666993890711212077297550740010058718219588945328671559055428481939063318104886884369017002542751804846545321636550378899917923055502138106713934715117722660852440451820428838908039488481872130797375234507629049605116930968091704609450455533378519989501332566031916953962262898426899511267021469365760346054447051418734179291417677452397356554313581806816864651591435932972648329892085001214821424258800102363601232728347728386505414666544155550798773370731852540684852242296915892405071291330712067496277859551609526260755797362731982305412906941224431114066153041231015792437879811050442697437254864872419995659515209525463151940145035229750259094831763014542417942440421944056335234020123877056903966408177364174710435907454297946657912606837765572692637323077531402869895708044557661311050802017246276160596672736835332720829949164886431474798396503739806767841331360294043456104468477532565849903525042295693249220946556384228009315315491468849484684440090182936307561469114160575036200262749512159490007191273154930302237797229089898585798724566092662635941571548151482488294719558680965362510365379972022426816416601340709471355042740733080422116152401504578112696817252116040606214984178913709338300490102454198044098573835103151292649751111212263266190394749190019754867821793568538427257740070788697836013693886612467510614412578627007476844341961611842933613780420347193009498457200840534633773175476386800230455921369289684507326784011557624260431352687957188095269137944196535524673422074952976133643534301343168262215820451891810399043477007584972249443167974283338116753839225793313043491902212216833331310702468367390342521038541150846012086746429793051253257890208869764428382474495575537225769273428234858215765552919176084381467207272335303222286941568870277980722701051598277871044910899426184935736663094966536678983787718158609699559717783972837424179586001788440405482268410071209039431588272487027190554830347687781728979758331637657610406214099473331997231342988982297723622002159331754662935049565188494813942363212627978839536562781829133077846542192507833392590159980360646521815659427005874948146474798824895580164093911378463292173360842468738475909087462137332655201123059640264392866590905487454876880960749693816917500119721232015035838294086004295848547866132500198868199456536394882751050302398748556733920614554121839957828105301686854915133855351646140507079682811061807313232956258742743374560225174161161453851657019599412538838889248457426775535506901747188428116203778289262509391930950350813248863514270147269356760192138046166268527635261027894204258419765092566655909464188201018391524484240090795451508663596243058635819248616535406782814873421233506985825138463522786604331132324613519105159529887115694782787121322066681581501625922699814707446926279400203203958750806168656688019899936347113704778363611634402811913366586427754323168115985165388901575611037721608699854922607421917965725542854680857935992112684698036110259008382930326212831149516955618677165241333340124824322219762296884353225488925347837440185804531295517635203197923274494512600800988954635298867819549330810710337794753353818034661555789578816823680169370928400002266531035747979419869627814418196143427874258015651899811010729947753251818620756737714819459000742780578240277595567196553367378488421156584062819360341858078385011032176390763302477169043142766365036153892458100982080854651853446020349412127119582998169409658455519911911293164493561945715038208546883394335477757194131186224757711182303943186245095933429294418216360091766831159475820554670374932880631663458410215623043152720174579426551191546127033664901191782203300332382888328875404657767321043757602630425084651912398674741698735482622130840066081096077630601328544527209721065618204829546941636679934528995581965704751767706813937357152063667069560944982715795000707712572671814933583471481245569198053159819049831729672063853709942670434765028040722099584606500409125193515154236037346537529345838265285231977088763413924890905835241391191577777160126417099262009584728184261381302258820923364228715048922790189622862664258091274370097258353267703424473797525734925476115220310573714243550275796104573727295992103545624717494731659814595518075263647986055232372118358271351501188294071458829004034670894164361685481969477592333623058679139545129739349405831703125184975644673858188232632390159077505219597689009921423359303470646734880199895117979963562570197774703706505484752383778705528338752401024093783122634765506530727547486996639458825948079084284896478467828125593561761407456875853446991761609634514195839250212132850846244516217384628752058671672486299654596407025131880232877382288257585569935044371320988673719814884669002289436711540744757022685507045810849197437850429704008973293713415445916762221425704938855504864515221298313198926969141328959707956912524108729168010719219330248305396580941646927817243689191497618823873636416398800766867276094584799423643064457324001483411865357718308338691099731580377150341381856582947198447307124494329479950949907009596045000809393411203745020463882455768401170611840029548059307925926885591757994069237307195532536642363125134344589684459419260509924661707885121884019917989693658501345568276659968054922959801809796187765173966676256156639638576725005633908752497374461317933336244839899095395957526291033721055012919295265079501336742685632033569474752107441298258181403816653298338481946866116384761119850130503228474130314133337073405346550868788529616273752397340434814804765397833409456734884192268187994698185723685902719835368432619676784005626946652314784592743276242991690558625409794006238908447445453337456791627063479171741949314689400794410255875410222085078508021884454853592568594185767287174599667689510385235560010958672924194231959225811234781608148033079425354707128880562971552643811586446415772948140209304889732719421490813574314756374729558192423881353866124538812159146154227231551681313108423103691647809694588389542555357839609606255138370394415545418825082611568508797456774329213642816381519050641310330069125957839628864288838438465765862167606456932822706583016461893732495457581308864677428122280873158786888218256273277490305880688998672561619769050997057570720328990288942351055184042649947388730667506369241181445362953522416682527537585492370884772788165392809243647081996342270527153634341755857407838998310826213558951992143235863630086740777750869632934268058943951805427323524689782347840556788839468399342764243586541111545275372946374519900811471205795029157608671191363299322618727041772502641637380814789820235694645170448887907359074676306547100531169767217251557162986275070773519048309633182808814316676360309012214658315885094519588799759840021874089507379537294848531994764598383673321728581056845955097972279259178791213754766650009023998998481181329303096725312123018518209863389045661292558954394368955794563165930782235435261377385946355611881467497614903792132839185891577282181164949453263170554921484276436020317164546938528496491513517064272051923991058014043645928178724582631581707858415150425814154397023296653193806825905824940757221317861205676113100334232721537757072775404547987991335240364506030400809020868438541280359603255588777797794341237204021755780059235296349032427766685862207141596556264900122158893625516009176925320929264133789661522607925564303110765443037322788112741860948367348935057204844998613300400182063781973387114712943973577470713553364418478768895424310693509985214324349734066613033556150635817423208722989459383438937705959046411633102981912205916043306346770945121799013629047762121554497045290212148855265279169835340318283155483005853700382740927725297588247127774839115758313805354729326845283880958451995741500655691497527678544187829211161880666826740727160290899519792595754872296561292044990788397241727065376578643673254792786061611554139938644565733582211276235593426580391230358937992569163144243154022743657022318536533244994722092889285822659119408739713676285727050466373960306740452744008234634902496319973643478167341679214037442952284347663753442784253489905269421064466995086899617325942576658252961479496545453555101526273570306332998145749082368902727425719396536348126590938615081039629011553190935304419304803254564905062397292557106334594144957176802497231390312978759016478800258807217849375616362335428677141675618424458718345328274772917568391624741046314261391926235212721644302381361728877110813239478602825297755190454585446228708855272392245578807653922136118888885252814145185263267812131089041186252508592099101218166994717873131883847215909030348269774909073569259810339922349718205065005961207989527991207878213817033629384152138670937710174374960788021531700877773212043810037970430984033628664419659017320855760671554722449930288491277167064747200892729572777770276487583331605847244381575459420548833537832229517714789151500531771794978906271059273234139931149311009534267924600598877052343765355891038650635006540792076852271783790565880814292116597777806908020832661989739295361229146055286176700894597623037001888363188214339087608984075994931886053133054994147982362029750129772816526251600376392530452299956310606671510409400801243212047100657899247697458066646518018834053186447820842651962302168903137907730973862871264572228943086272845883389346928515580930854985448940969566983473477449993576223635501351433058562019040074319779868704435705483209827722747083451780361840481563710166114279075628068103603492894247910994973825665794134920471054244318647353985220770637410510880170067934752261210247404628208840491198215786678585962522454489571749436085316222722614859438339833414492105658166982709677487751785707000393601183103315342374043216681444699148190634699077655427381687166963340344305702582156300285371180470010084210458246918561944391792965846867853155089608582634582425917100654569975764441788872342381109194063672095939808781783260056478918683302765890779875868612811092794575463594141677129474768370910186876616467389272638519612619968789913556929139952943621013097371268791855486352570098372678344095142493990630112786390319506951073842966657628755866143465411986343170825929213311130548119088597078809138044177571838632797893328327647723345172925442642665059364203266593215758017638815216475189454478362315627726978877332754831465620563521876808941261590652700558597022896885094582614696342815721851159982379690972162731378314737020108531259262967595404410800164069809675883909665112835885342195559688151950365101789965021145570547436033489081205043642625962496178494373795294019557330462460403861688886741553134342064754832237282452274143929977470080979190756244113290009744971942067564010695345448498458736000901006481391383475710631960778875403769475820774938288396199000119976768185715271599300715369670168732827215829251984422409295674295257390561041504941797954721723109736939758250442033239354940974254337334772349319894305663340505163456300009107045119151430343249471162834275942648827368421813172456160477599815130090966779800529065082187574658508020263495969762992278493042632160801443331223921660114300866485188744363289526531420033266679941824478828362533770647028470590124889963003508399180218594953471189528907226200185902055236522131791354456173232079870920712691110459314072312137806955577716340642723449339720040168845704392651215627378924996415147286439884805524788391219401857592922474908148289674442836702434522155581770587670784874462338142270531631671967941624753384336062184132617964712915470311538311514240712278068763284205409780960415346063754751638250507219722760361905014387743871561506714835828549287717511977061158379620103296039575625579988763607700847963934730283270334299742423716242090246469313819600831953908148372050845276886445995259141014546156409718682022024487376748297019123728669737190148291725205676598230480029380620554234775067935056391641803541926201913839733257511016311119194774456437468877242913243269202005904705217984536454707952501859559801830080987207965555961513938625811456627271206872651823590501038677326999549048535052996253398803933191511784407000377316177939142085365550889461277332867891542539766231324752794094259825195288124251299805745725057301756791525354168229774719683135060846791749460736756164173506765529004408713412623920032232329476233157809652923934811968235769970577267130295950546694752811557767160876271928274316764279213261541615550722203040729678171764773387211840073946456236839139206646572036443949620159176914690153522657173896452551053501571805697749778409799833285463862849310406729224623409490974767384763950902999664086478083073307110659774525854695160009827013457964008624782557897033801128281226619129585560318700183646677776614100511337491648103830780312083775973298798170425821551669084973555972766338112390987543308026839079787452686978121631110026699902712378310451819213713760985873379775400254709141058681261842530105635321384140067777135049378322658249402257903211528865565325784038762562844581041301553108747511813514248715396812632764348040881659136824318650091317277968578877484585211067765040887162597851083985303670497367995238304844070152080692412040247908237960555936454459190574174940668738138057281083068535558705777525187066623476314533046013704040907401104354093102080743234227538395581311645653293860303012411498663035019674152369841587907253406162892513193765022128968900593882166662307973072986822744246332427051692494790806327868462064593757845457976740047009039340157140317695739427671354943736832066434234702370164558349871979313217475902190301040002323884587400761708842351119339657411366595810162260956716102068157174803636545007389296976703835719437522696222684362096824737316438340803790212856012962842069925849623545815270212077278557281124114008844402721441897430013805438042926082992492795480064529089572961155998399486304277273897385199472494477554033335065879520748730961809961657205374471759718739073206283678137426757946041353436955731457559296404094006656759607535888668520615111292321469324507328713344188152215956112024996647576061657802779871668359702574775909310940304885234714257894735857670085971418885055600056981019609935011949147727496292121017737885943672315981973904591254123346398321643184281024803535763776136089181359032900384565629375408840217702698855898335456765049894054416328087494217252211264787314802642932266830921678389042183504293624330648303191815203167232502132228135163217182734914375271583959875477504296295980659153729379611898469263515959653690988062891085596044361713273947192661411980027956659763657750976306129045828337744434333515804198869308402901237339130533780210177920751014999854959687960830239970200793278454828080924040506290762157797968269925733580027590659065476627800245014107309243239002849836560592579688019062618448510106537546377742684280787738761232230873128592741589168242611294893689712398727714172742405963214594929849997689038729810766711389274097084604080169897271039103109792870874205263663356771386983416787189296727724982310955612491747210836958301733431242891813975393408815713971145655333123096729437711692875128675369415664876355383762851323495676029594920028129913777350589342630780773752496925478007130222948736426504607894005404705775959539335177823014859001484972294597310242531871564231784870075681524993531846111695209256893397836344708331965682235990637019898083685979522392798230189193953134084067370430187440243393294532245137120675858918154463026989990280780849063120577208070155359253389799098037432707339076129123022150265871813421394947390145585127547452547858907883483807624112215082688347731577164676073459154347232398651183889164296461779817658954585186656843332988718205361893982952728638258455548094734053292312142929554876591640903626147630838334309766746177041323017116742639945758187816305800774847621118928955736430201531047655057672449443237489347870820279128418174235943195857155149754828230713468412315914713133414871422710344795947088219736046590397648029885630931380188867052757988123161809262974932461086212752486040716185744747942211111318075734186072783084095546415567348788628265873214599394712906196247858020336806372172795506710812357225815095012012396854895563028546497506121086186668483259471804932119502847036513447072148948885160198555072518507469214817488061397111012609908598052805771322323552910402127405087922632456731651304083088833440343099175044329368033014296584134379200720398523486849864671563742162268945401885432358000475712237990724050075469920292937956884997577690714485940486060455876747614701698088858262759689498294051567993323595985493588405996443236881246508613702770401965151951947302884488035901046440854952630588086862406619742428468498064368024838297896679662047059553101689566389592525342181285471640257160749647965028895441609968031447478869543142492322778607535952364419214824221377432042403144229026141675407419909698045949675082438253751351279195590897836292394012169649386874249517499727570695128851330382340945558022769469978426451529819768665219395183767339184525955060655672546754909169200813121046726962141332332945729604835816843432267985676797719109025001841365104024713579249058808528063303786139044294195592105332830059514226086944114270202137360256436469475266445662459061013107108670442193729976889313994228337327006979420481647568826631322793175711964366041310605056055402292708539042793139735523036022265007863533819464030292670622222476937091948624293462969844882390889853057121823426796619693617932237062604470245917592315422962561262270010142783815430518323491383664569687359440369750396164777472083952296229335125910645358656643177611368006412223982355277104586337455757742617933536936178101977529242029212542138706456953277448431548008740725918006403576122506028481671341596485959390857561619123074213485693767800162886091605143243844132621762412598026442489246070143412664546162331566672222092736091805288214415097051024210352081169395680539316548527656050346803616334600123631060229885264055674292014593432383318948150841173113798093352647017711910990217694380162780644364618002316652360428227876545089642107998414959041885065695871265579666735150870569025861187119241944758258176145891609784769594499879728389380786515880637558110105426029860697012568631685283165670080110515030682220269182462789913111379213026179493216345301416051871157073826125491165204434106830392931298206530520954437998557103710500456867012324798081467302208165895152226972032556317255036860772947317006950500809487129458403389144720919972607782753616792565005827059229767391833935650398764014993376677534078569655316980438784236314979615083345567962305029404371168465634848741403325486126711491363763383427852445001196892855215380195684473958795849631169568981445173215943019528848177369689949629097375706715962785729360722122544239120011982316355906943489525098884908314151593385625187051571661809703962071952750559987054019771880492753214557952400664636213258909347950916297586819946054289718700827137328149176426587269469385063046667849781416476066400590897995177453188579643980408864011373908159602787651309345515172142220000372550908665949676928351808093766839348656573331599082873105794556323589928481648639723197709155603500569113537926169039457256621002327145422140802312114024200959749043177786589814144982194970576180994218998430821981192406888221218021676889383964904623218163958501539325761231098242367765293597962883179754403432850399416814664241958213523567948163519471563828154807339181560253674316663503112104744530808018126742404838313931988901466956531838230171229354029323556389365435437292384356721979786077025532721926288937695311364560291753801025489640336634536621537735941353841700723770302676236119264396311060914103963459734832115941484643851645325782890799626232781098918964487234585462933334709034358603273360716918301893194434589251135984773749603809412212183446262215373777890523466576672272048714884169252606188483234382788238207111005638043442161225394148020347430480087954279184424032797865019157489915611746680143734972357730608764875679579329295671194545582038940974529617490315153914994997600235775557321696064289164776146323609158296127729562539278190741972801285087834534683248828333971001963274159972990483716412670787043176693585470004939836364893697359292656193192675161397670454259376588651260605471539325618159777251091831435452660874594892452792962584757886265469985490758972724180474779601640494181303403618096266672974526542768418955703861217629487049075910949431065917916147724532104882572982094493961827686879701853918173631071859217980773294170288646256450124434988962427491816490073138294093846776117953206665944178464921225289018725962252884413810341687734811581050979943304077494305929619447877983519949121289165982403379415967084949721184398286561229124558175470917095905240710332824484720722879267624220873780870767375270008149120990134613284177042344783417391678981088611269896038220101237257453765435260423957577140779385900857059280637928939780729785317152542813194403211134959546857022991618265890427158225260325332571313641271051611970186050338537431364228155329356843352134514696739740165182277620034440236592101586795900089846044214016607806060427792809395550098778313137079117132312479524998735538660400000320659333555293765898431470313286415043508428221407117156149920150650614832938452403801379482803022572196941974545148671970300650180522278033767138422331983008905983406453771346906727072699353723886558721448302058979893532889296147502293012268791652952250091096222627364636040958919082531349929711869379094905391753573163449207709254196098747783491684146236078111030537048936859032229338320858722092908470186082760538052362592520559076814285195582066841514137737688007442820831445352025308149569682755807703704392672267595140619211072358329347040998900007964053199324275511687408540700927772661402754565513832057516687798366070965102357761879868379409879062050047215151471221998872171838414532506379819976153329255067082492850455450033579459915033302067911889112198549015649022497792126483303688699990262764380448544290250293492531074157427702413175537422499861428987623020296741986341931825271572220732231826057476198831545058970330555233969565233471651313887052193437025782435950511027274561657270463281697282677939647383593193832699815185626849781141981732328670180294563419249128163099602446950617721485624057494157408280853292378323585632387510476979348750770930251797870867002582967746253132134425820342215369338531857269485927426924477614577595991214426128469557327787578888065595154207696441127632971230682016146348471645360708415688085061982628751068091818629650698587415081511948050985756427994808332364251121376206265776385228422735529256504246699193788511962427533183954018411148861394993241187328953645930664913979711843888177470921066041267370597670720393270061838451545420473608704801812013416721483042831311102112557319146840609720260245466953778740336901724555075507688185762986529792477604441198276246998176747915101341877357807056596669521493801253586325042601022815903001202243819616717599381520303714453509735534002528772610029029398335765831867258797201344774245355053016890595094653878087561925703184149273910227293032239323255109179772666300953771698032308356092923562448982211678601015220863675089392739995371686152843497223980398440414505401466878283233268144429547471617644683134135581254530220076239106880103548986151281710558601687997541366022371843657315181304943335387052243873647808775983191133165388351746902469748530944623657701541911486844922562847694300628768931783195637021543194537530336868570129437089975616016346757203868605255209170345518790485434532139186758098790863026502771305075504154526123204544220948646202120518532535404088063212750529821753463429706007014371369575379538855078868992387904874056958268421647073235879074590087842358178949715899826317306436335954399187684925788792617212937014369317376057536866448614651049419499730625043538377227581159975028128982689488492818793113154995137704498512931730642684461853440719845019663102776034925456615611853912626661743482861687742454776752986356406632282073966550205357987094329360705946627588472488227128026365217620696317796007189225011349470462330605021993764601730527331021070489993629400356100054600820701815363895927463806397270091991445305909232904517442297808004399548272637821025126855647458639519648029114603242657893414848794013591652808304684780626674807467443073272866675746851933611727078811157628300346601981066011157120277091173892059782564235373889474801822062546956981383539411508998563635174160420304637898570648388189769983012742483466654303415892665788927072885613865917377239152190670394790071303409091128663571132402856043105073125148902533431352883582005387538882155210433870105862090803331809897141077423581731725916168008251137856312687964616217242479006040879356976891422906256784046839962234038475435065475065723938792791676776879211920595744164534088381508584380845527626478471236348324217740067367077392297077302163429966057822261561049415585987587961984934245856150457445476345212364771009487661241563831441734927892329293205729623504037990788044642938382120889275379399685364125635791016959189707792090515129330764095716589593197142839489520770420266193038878217603942217199273326403768951522209381538463599212899799212237255562580753058653085739991999271838023778230321474403893680858829238917600183776866160377161716017491411825876958859848378178760091732968427981704046913104401624849107516673694576196804382220517151615282915177152441824446020780898406148626611072502744438555165685087562859867418337839475996643584472792470666129992782723487100847286146087721117486050468554734781068986201491304839240623294125946817857171149585163323895933381598439508807093933320463111032702978847750449990812846818338064014502207801657420376269925175754819984428421670461372277320747778220539205293448943319999789867772262594933106033823795077742686450138701117512212282545341813774875120789433382138800113309600900768857392305491336890690639850500491307946648795538565059983862077411316508829755658734983180831479597233202872158042738072462963766195478137319451752714022119955788691871564547798016588339115037513796008741039572987003104071863313421821646628708660492710815408332084354896592026366688686774689633491054926623105932732617323891578813788407744725303386304358682942704426999314985614695886459504706230458036397437925437044766280851929402249531955908837439806457369360260667702486198922017836315396534068241729153046711330145325265344162225524234150621354227786034158978560290716606915849988105969358129856449464803894798396434896759167765054863317799040805971499060756492762485130133817375954919830519928461656684185341713645480249103267288757473808921032730840883807167300254796984875606263111483339450792534028742854952828120730539970586839449453276994783083522307798263039857924686547412874593108733274073377981367241199774888147905524184713637419742002947390765153178721986669351607165093864291360887302771736150708712000981326974192252938598826593745201588266252930669289644106767846292106540542006443280636671837652890448930946331487937936962717243356286538625850190666290189461839466808027296531834416543021682384941975025147498090406534003743162448352095103211677733481820120775907618163774074298857808195685297840926353420974673960900152813032417346492543095429449251903164243838899557394257923115981181199876878716480735556485235390894171520148772461300381749793251847298983011025138692366684374967552971387057696036093271080796930627437856103755875199357782495978833423082109987858545939744594868758704950378038446264227816408970705646158413270707480916620754879345673952937589262990214371550913217339439853696019215372860090177292771739953663742411144615184726484920322685544862286753969591953632221374495483567612782522443663106670912744474302368609355401853856492721820063540265810005003688491406265367301715860494864731765294199172664796855279670504137567646248155638122224744607873958239753087353519808388895011826338808809396678288137732663555792192597285845793298855526722047450773928993904742533683333300389104073179308009378727331252802075737907567088197225922553911462314239057555330817862561780538306111449057420012747319352168917596939058975093078760997188978936376683545307979973437675279740221186829275068532408097515941177504624706013657938700718385631263304603823765935582921515473307311514149256719596140270941518723764237895384655886197891403802162931583248848075811912345122982529795169981331811976588104172695297043804379723752283119195382258482277215891997011157200072803474519331286489919429834934151364533287369117832647504099172218565813957552478225285362776031295451069370076605693378858308416901969757232027911066127138318677160623633407344879442163196518614002940415592086357191074889315765031509322954195907008484000954793824071914648716114112811612163939359116554508458933758242012442337934567277840616184342047875007450437563958857420590433430460556210176161165890031472489791284252560811114759549411915555680733170019588188186255329904887384254157115389027211340732317990289447595111741828383047529124122517613447004665611876331135865209266691159996270615894101200853239089831968667943443292591447857074922891263608143441316935173578933383942067700444607082493310106843934239979398990070955458791458392282243663306410629409787861911265411337525576441288339617844987210276641781817145257895454088275589083645978082710247472784421476190148869009236916725220053132956054575309001727570819404987904799555838715928685954045116245840713566603291448338599473809662332941495659483462827351960916751214535995566969437033006195769417952225599296759788316646230558633619369874298967614971748054535277854306560337821140922079928095357349584786064813008123037329995945735194057605560854662969572913194672020617142672306956923844540504935847208412411581207499249570605793575287243332324561999075567093084150047541252036785024999762679401104961747294020669149673464649265585847120015087732080391486347192143736936910558954893004192273502614414065317283787926129805264496545317865194839667624663825508346134549950059691609237039626372271084928799393474274625394874006782555190336632160543056039932196217347658244286546823269688033577875493297968067905431992607206434385356322121190573582507555518084754296757122781352940895445777528480913434149932651399702559748438679552351633138349508050232484149800459537060706287318545405924159906897555050915867805002336803183118626192707580269052824536041115564345328316306456762113105815683469292935422308243000673840995424985055483554094744111832756617318917054295532855226441911207259830688201164232751082588532849549774063694748572050846503615348085032830522706672095259069220969105799638283554080335250453915989060893374823365704678059957424450368500648728244357484560742361843589658202182452642797559198858214345323292077383880704621792601247317852693604815350968357159501522073271277337559104025177436258593235574953247009120783760648443408330564894730354205192057438333979171259625495690763685557104870543722676984197996065264191787772821481017914324612586555708301762401191234676757861641204435151474871901991179681779448432873656109781033541486273546156256649994479690156050507545038088542134023923604016068331091207619041520218476537359392632243466698414509805408013029866941317567598438435229640428899963418798044900859713711314785495354243844030482917754996950497679310917384687791949982327015519341786550875856396058719714028968503846844784715897321607887888183990977893159494055570091427484688884752574776369496383593752733599551871531399899381004430352808647913415775122301800554481211900076971173764573071688109237546853564883867745993288300036984924494226269979908043470576719900862796122842998238028640018633965180976302297097052262094969367063797380627966931125211058087296315429423497598937155028611136932212616775343410451745832311234166846357954403669987032209411117766830374690788230342856138648928668249955681180916934973053011448364986128206124708562740325117020308037940724765805472146720651916008367418324575427238374996635600651875598279764814125672783170818121230251043159910091620633768910960945258526426797206561500030726097354031280542027071991907341917082423911029332851922933582863594749986138830940424539953106378804705372467619440523108779800168702678187048938073082032852070794607360864373079771734275328292277553353289422276676339508787030342503532717233868502131004528713051467965218572125668923448736206665297758847495317919761112418421915531429650616757349562455785345714478769913114210840680357565785582377143263549686556618877507266456782217422882448639044335013660814123065755628204571648330896695831544770923773982538144708333796564236516236649412408204541044253023544132939733741466547758030723439830169343731594121261941829323038288135139314221234741229208298359605953828412524727594216388952961661640468325628996979890046291562431684390535341210886507469081194293934318862341749639696148170063736233743648313520577266456684805985196229135968967962995167142562693613436287181317396188364993387468810381762372917855826511407865430375845140632496294261886829095550677790115192030180778902822427016991680917672776674097588134436408794025709571396760481264968760716659208349794395911854329957929052931604058021302215274985621447727926333941671060231629752872519064952991372355778197542778620740996839392330190453649608510144653966220535391217532665372136605243953146515283234298289596261548090096552260212060483803523976795362221579780611774521813665251914326050324958167687409674187722732491815207339874351742970133744627705641430281122720139904227157811498700496036561058283445289211502193945269677304445444723989769014636779954647799715612324736434477084693048788872469170320189515030456357551621888771220333814229887277944983945682011017087589558702579659629504821134657576887592105826139156253991683189030661940673769288847447258014605761000476879723721364885735786625655288308084199825739341326070920750555229730899453213349294658291525854021975325669192410061887697008320849724655513575259572628236160849873357773044900953329184631005512408850474818130310969377777529163123906260301463180638891450694475230313184825087901000819203654338511181857027849530987477522820962619956997888391016267568338348771422111546130450264039895609645008935163375527319012342973620391170564027721949674405257445193567646659910902906889056304609553785306319165472211469936209064751932520842979459379768189061759008942425289329834473158906213573319106723651973491363962243017290782741602624127734404407673827085457759821235180735481028430702872573598896070216521510487679925367054677459627677655824476416725707259985563096675682592719958488997748058000388771846009396916076574669317476397765071349144464796449057008882688850978792869018380159239890502169720507561694131637689447373575908713559405863026648237563038742644723446488154391210109154527930532352063028248242764913918569614774648999150082383325354410494067123618660487123496974199777333490156179600317209505383008101379528835858061947374715624698144640180480011875277146323457280329194012124515672770073634554202929532048858475163902107791276272244209399391296787526503352473535650255846867034352863619361198174744593414493722100474292551782877203619094017550725777245386483820939360978702019284243041787943252591665039017928299600144717531040263972521278164158124120739738356129588024321281807639409180060442081894454158550190371992076046831822976868974013750276640608138897494591682598734441276059467169848242792256859651407376477721232477191017971508992717036340754487396610993375063238146980774967414032305958147374059961986233404866801863983558937620121339777136471758307271206990806967049333915374636288601911795353564753102854481321592636811648547981961906296918746675776460860182079456826825011589139817429073312669839904495863203245706192885089218662485406014230187644828861339143319629074402257125158795538513891833161664348953384458430013051281368246549608293251541694119311186585395179478288840338203348800727093534365681671925940100949555804283973940529557415748337391830219538493816343004988765944141480592882767719597790287638212984234824279436372557922539015669316591272054214007439283211638628948496992676669662889230836165087210403670589982233555907510378721209396104384195346677681123173586335993005511031867078328193838615206177841067064412219364750528464777455552582491073778808070193903052310923663041492498637029281294447955774988453081252559004788053071877321588777869849037643449019300076717296363496042487397439728459760444579331933144116963695105193876500459292258530761453367288347286541901063574943591670713290038030680468885068622055019531218290750489282580192526709417882966094720668048980596924072195565051488368550969084125952513441777220479594880362547387967603446627443197779671677698129797700345723583237837644595695118203864347347139201024864426277783180228346364610048911115288423283388642935449129070135509868042181741561154561849013528626047707329710390712137952795199661132269175685065840150368662334032642876297499536411560088006568280951888180169497433269617701662109829905793086613374305076967560013207560758374349721408633414636605395578458686522359010335401381853226693322692180797299117487544575405442172460130241098199364769568996486704636191358345771149354725397701414071742832678951474248901183579283728586166837075410740461547467468308562095028941910525756066065337324416298386800361560290371174657608759894275141699960544045232536007039943352556421304874763103953196200258295069438479911600733245885721906839688835398697784388054218918474206142017148688164674011791281815765416936564841504704989906699045892280102230333163525977508948144790893622456790560951488890015616210921675008219130083760632816006758657397303604360477413315909984929321587141456124911874450175570117277610464577203500285244409729564132866866464409982575476685792725542336467347979696936644759171306242452700976184429983616038940212713419161097313153310332905235064572409916846031929269004737688112654288700128438589316535597290333376052869742654536803664183494832458988339560782979871251096874620767172160578831348909044357634210745126781148013507698999070549880346926065712767446674300285840248854731066030004553046074960088673232339766725861443645378290420556599071361819612339012318578628926259967471825486797932605030819749577239855867936311367885262809743566550373747133771814494603806359975994624872381984303429270434929063916954180093756949843173994665031739978327846597322541503014394188673029608576566761873891533068746057462027783579315020745146797305434593787894304310375313084445141870746555813147232539895681245991215880747276469623209306321162434304797746460305769249370593164091231940512217834008677136042472605416526479158173869546995977136230903140937947637297004313422468307843690127196546830173864960389214440645379157550461583847436219793591639654512657369843350562133274126073366634072630205062206949162040866428752362416004079626250490511363327599365472844358336385152221612129203026152104736012838707961493058532035824502352128611392950311179811741545110087482158729045407024518878818627316020545098449949586275431868134174755232229234988511645784370517392425924560306893291815683802305113713900536631904760787666511204793632730395256842480081254506152888092841058086548750632625069090406452472651290354761936161152297578166630586165467508599848162072462686090320002716118418327019863713810992243575730259339201468039727809785764625367485769742909111289581649589360053597838990703845356234280704880514697915519918279686229340916695072043244543212947787710616744279236345434791664920338811370448417102519032150322461251879034153492125070047140397863184161326671637902374490584063560967740345033245510540064928647813369103747273565572553542996874193340516649258588530347291934421660807475796768831636978715666937751460866033256184421529801143549135552258638953435594633556608518562723630363124075831878853250090064447103218891183908359092220740208303781411283776476112372968169847822182290335670253266351585335776418368007487695903967991554908665701572968321501877861235857925346661177283166687441040085613080226642595435435443615059389380803913121438802131080551724615748756037140845652722952007669977068384561032776033679163551958485681427999132128846038901074075555258060340889365532842242253955154081381581180342504342322190172931907905531639530282832329093910590078532582530406835867102113589457758581330063170773830183459839365998299279862106373125689284720100993893691459243027955435180493855208612905057665678905164984785643231154086604857371262538865183696340212128971376054674674367737558026099387471004993939361250708386129479032134271551479894929717111993900752800228045506553243349168708958096171219682495221680934787989287456118623922546300408516406449199942252911398932144301708998966161070624027180003524745015513220676985803662165803965109693668192954021554880929955375557592771315711753033094676396896313253264893582987108925555731840946698020759945478789073392839547148526895218573287857274065682033924534362693797578816756480350138743196505469925900651584473783048972816441018957306375532887417825810253663971678490417202149099688000690147444942463562083405338234002987000332165118837634892306272349784258075910152611042666912542756333167940110851083968371116171631803960665664259864219373005554844748952994870738317609416431123029925390557488549242319449606034746618709793084846732987737292888758050948031045467379643302744351039005545980790037926278317178386290393537948820773285620864416115860160190135276019542223455830027487021464728589463264002412970647811790325445589999569681411186150329187262122011891912179785879421465728306906038860193815154644564940150552815098380044062600867979147687236360795224327448143754927292042476146304774763717913279773771547144508161342854542498981514226100437321749778581815293440579386023728148347574565724859265891889889750939438785637360318449340104570863130132223763245142973619845429095712687850919785946937174987563817026558929224444994860525624533861125876065542547638666175535471652500544445110346141804523522036341405972775164357482510728962093605024824929670181019216640826795129072617721797391437840607835965092993475879054994447951614889061687333221591791738780719320194607713894293514871121206361233740157200713321699079795043677615805992042455306669748953910627035019590160501754951100041462352661365453690439249103897202672452638124978793516289294343767104119006061826183175546980708603841609291281023172154289476368917537134748899538172181931498514088947531090359044788751941662645602410563460263217429609147346684886527148719987622775731462367508322864355910069066797751742860589604758206457752333752399917875007536641571366132977007338320987815590148712326017482766855326603451294419293481276024965492673219315160925587280855290029873477139158633593360587701045285384184356016016382433918196929751776033471890973297761826324445624989311796804560123420664353916413797116340481934664694012060808467994785060960788940152605571024381803529359018598061377571116448437561022122528054780674440482596324407845145791565274425069547582956586066687721464948344764718823979252705850021944676456281206739096324634960850417258908847783985264301957967434598413276118088692132946256212612585509727059173066958698744249756500374051355273413047172803401028396277744527922443572969278533569152128140546309246977428356589600376877588404615950851701011641598283643004361328463458550083275276139545811747306788322950879542795474200780991375406609973026252090609352383424727666820173631926732394485001287197445590016051181035731048641111718579397855731158024617774661341807107068953695080860315442464429742522761925700563533869108103270500661579389238672602629389538291048106759223152333554773906875351996070097870022627428106161196527146021280117613037978161125705542216642676316759241089750099702852958305328478339402464743899127746191877035916332091165728385089027811180555678670382844499764641263341232937043583022076530354433023257716940967497812964391954077357538778399768534677175569873455197925044195741809300635338905174281489857272332266495465881204857468523247571483143503638278128143936573711303870692943578398463576915415522222413805517609850631325851415576999015237194978692837219729775521037771819181032693728136579596725146624877681009084147136935528457613683466376478144352859092118383435985839383211414177881887595919584312647456726296723633583616045408430528676214944124381253656090832395580845541903633066371568898239643864149275751674475726077401040469288390732103837124399388515518839117757717843628121609365051885526171112674081749465155115074414245003595474055817921487099381423392117680946708308286874273545896406520626352165535693871595583133222376117336757930578985947955333017867335538260154892208008097976385900781774080007486996355186442386060858607208838438480892886294797790312425868723988547157755178811390328903265888120915465084996391445237853113572194933307195115505157172269652309547735115548682003076558505415469686775494777676627126648991595153857676066841486471549397268487637235525465714672554599346946414568370969344253331804476333190568436887378810548524026099896458388127298930923281379517526879415346928262388280954704330579405528843790667134281712853370041919962344207368324248631206195539096960585970339852151263958298814068591030667733611114540221104659810158838068794451170984980197263185741834511123587927134490015774204545650756566416730932020264688087668933324027025455234127924722823015685336302446324284760610729137240843742337293111705182244229174048572916898762335325801960672134815356864275164583881837977533531607703095792339948064765103802869838417491378338996595637890657376455915786864120030324051363105437935037511042870241322208769744663994171768004099545437253485787679714263619053301628068766191257432271328664358598907365981965062775363806294932130562103783923020111263149835128871109195867403983972738224660330037519051739979292508304478746437574501945802211229056525093845411639504512210659872515698544834723577839182660104147151015752772714557298696804721696577547910107944197384342366395202581919218858939637390503051697052161941150501833082796221067289968920203871416768102111161999466149430209060315785513268263001612451365077682780742272347199647450114624234703921837076379921863051201492333514824746238817129982300920085693822273273000570462332046294952850554577692815615106850483129597974299276027161077192264940518790218047443118823906689024691537259454050352511106439981526603774393514743622341971532580302431839972426380182837581552510069911416083827950015027680209358811718416308437682747493634856266232566929640296483243745958529692078845177470137692782969921322502867262678300539253360281876566464216574406568516961345226554681283975528663687606873493743556693239062282197921434252104610320391053261812386545220467152343129870438693278077981862084912117293067481505234621892522159635988858046819840723468989190959593321887719740903560397237491860108882664189514074694498209846751106709682903747502485567285945352906953635982587701874384688987068469904499633308227924062601425375443417404689928719362804396232587169203195371714373511136987539598230467994429762685293266309803030634717464392364294353891958552928356971863360917280811802054649838193529422285803665031022674775888529963269883853092482683325069202829155837857807879087244157096767949649039426026631469747538634367638796027813162953672046460660191859986343018218166927354659981645656237886900487514876328326020760333782944563585737377205662459876040200621099433379126660236860633006093098591052219138203029119269879089187843374945429311573467025673099749869214399606191401601946873131482001953421160001308920033569755313994859044543388956505764940696941295612388743235686987833706364350927852179239570056334236411596228925403652493260692896579140018035513230790887635474019631733463636728088190759999656526393304911364773809109114641788625587897134705999649929077700248730414492041437851034566713869831492186705789910177664802750909707936967188096572062673619334671883927161841276037982785913932859811386820896914992551446497627949279858070872785254000919629068398963760429217622717072305795433106240032704795782947892023330252591282874942230119243559237650009449809947394563134151469997047468476085562870959241184131346648040221237719970067986787931807741683133763854501107721142277958407118673290826245072320391544220463830941044168481656878388116142339625890036783146123093854068188007906035340708530350126203993266833916612978673445746386358870959310607279059276076470164482725393827289474360685124490865099421242167136704385972756750153236646624957291236166755917148683733620084724785395266187718498708839611512628982796580643964322552200500639536409784309788848026588190941684604955929490254564524256741020720397122086388457046086083540336745074326546619767857359627480430051819965076645649736452123746365848274319478857727422128475128121992264071132885295083223345129996295515933409610843257744237245817215211206478712015334189424665165798508745956791019609288805413712696750069506649949914818201545964418791247705712221473092047069838043167420700779157329379375311764072990404543920911242754444676782141657667909455285994591654106940708259630117190828815367872215930949165583883907845342847948333549724595993085148641272561046923318153780030345809049284399787801199775887958296430101063368636147509594540108913380487934811038583706357216415503332044182528517344985857968652215113689959262553631307615401180710511275008613189201132474576636866637251333390905659535104140912876529222866345395109955866903093005926671440009454424070908070865457758923832029565505651412273614860720644176397016054316999936193838481082726419691671680261711546573109597703417060566220108898706303796902515507708979968134586899116614203992918665506695525195938127699868485065761292545865893527137443380076370334410827121636421987609056896761527009692012372868901210272401018183457179519209468243028964937835516563752462852271548444055679346533037058623264561371212004103447520425886382729293174436595477248454105614694607957022798499407247763563055455184201190454268024540077105653125905362969084563824774389333123215532192106896758025973122103219168869666755574722575414900813517854458073700691098051981540976657361180809730712608025506729436673631427919687285617547477699552658717656800840695011064921097322596129649934659716306263098556707230288544713724460963416755593555235391850049040164752414486014003884881989462760741636307573581401837999548123081015582613892529644497942159510803302079657306067184022147687387958307673355438478603276507506260140222038626409388877322623837771540553827016671502513032021277587765595876939643131898618989790392457569584924997007247383666370754662558169647599731226224472216608734166047738085562859880419707689720469191397921484196809579303688486625753031358987342801724378282083355423505434787517553137075193505217537196105584159386832847964942635842530250627430767153241356703798603122650846961498575130088872902635757638818312436568152747839793889777705588563726455277013201954586224008471581921951811620390353732339227527544877682378670457694697941774815094799472678043166001563597427244108833616604547401310379409477536340311991800636986886790947542137572615386992227284011195004163489702330299652255174761076945043709482106023910645835975076628201925594925952954644205478307882156718537858698740321542639277819901321269527317637505286153532630188074466859749160693897096542128829175859243724012836652614248249213470270443787586855401529292633012294098728807050497398444521362952243245292281366499041591991192134015563224281003513868868023765086743282651322665478738302231589995278351876939276382281147693172800955225036696240377575249501798437127588831298641220390145464966779453259742709491262615557183718245362061896671796214749493706703251576051184491573829907920519168325913657508355189780326517179823832459808047312731854941882016073503092629765052367841506476785234117110631528338855573664448885585882620124553071372984801931443161914758687435579530588760150145998701798910564522962576518909575071177856567297570066236020642275886678240951299457895593231970979559452054604516974363612826084237778842800827002970174740419355703608242452350899012468638411141460959908616998013063741463843760214321516948034567208172905521283836062038038589858245063460529956755940058054439350475058851770755489120369856658657838620858701736062688401275548278822844858048875624707978890600829147169249474138004790394418594791320022008819345028884857104584717175160255854597837726535947616585363172691510673624645607711829591844157262500424552204194860196485202692494295221047475140927465153305624235114562775719429595232850291520739430233022421695667026110274072488821402395703986774191455325841027511756379591679492476313388957442235850115606125848480215085178543556016705028659795157988644113512800347937950406284936177150202303336958622720514574165422616230557037813794972433963751569104192534859091040465297499082539689295333507116552384713080796450693977236642991741022680597209229148344814605296981982061092873916300564343569165182226866276153157267336487613322504181335806186266405888828425073507136125080787370183493812083468632262844349228772148582888169719692830510404142235536336622702115553154016803608585952935806690235555677750091588660344771082216140379274460130684810592331143643552257054693963099220837298611865669394031035111636491784976970698653080267534368086395109705974575851089611716465447425183619346790662326758728473244321621560477618446782663404815550629555058036189171646892541190352001057182932602584810599614473676025103918383476361828677717197497241154738707631268418385007173591884746209682467980199058658180669751572119981354066588479339817209742666173469349088536355371760904412644644505931016324981294188284586623891764127222579656048083408013656030108564866099055340191120999291317424274774670065533664764003923100788768346446512303226025904330752802836385622451884220587344074122364471254652693595176869150047367913429801187595110971645991148260128639232886652802121417728539009257885747902978120827527284150616919936333442086244950875386899234054552521461265809749897222392281299080996367144083510060622346969787177176998102346104138991831470208380026810250568070641494396551243794734396138436440332861950172582669799108386911074231128959627129339476073064478731102078995659053997020023558379759187825794602981706479255414730805442916647170530655970332993638543611820271537374024831336045070432497055502591003338501921380436895667702656306338371734133286272390495543410037295291354264808417856436505395744392992730134222293514793968625842328201479777837735333518287807150987959934390178782347125095180320627623279847637728740851106828352323131131562041637106893734830892136579872030801271008674709897080616216257640579237268857502582412314478910482843331220761702749806626075719052996643295185381780831168101269527972179867611543056796191640262279429043965379391507039703238924235658196700422105076921135504923450275637729863778049257497544388744611509828757570966280544438664416566691156854723349422785456800067225119273323335722928817401528756368747545533278759287476940075033098308885774011142868917393375593320164011513763099676969062438350868380796178531626346501565746657570931674576190776040384138073732194286785562461420018110797980937840129045734617379323765200479448838689430423872422448552351156961957269191573560450166507542444956678782097281141037105009433252380086908110275776841206216198437632863149298320131872363519021924986064726038757540877941562499725500520759127389432892912297241938683386790471624459962808267840606943175745121694543372320593536793090137827911944470538102969641744093261589532527217585570885447619614192218083820488815474458550133958172651886928763050685040426782587415324419351961925090586018753457974427740090258316243290897512774850489939881030041069481202850015577387573816602037175931755542997185057707832233083868940329949321630689314953856736514008716553236378664595500122571231027477958409596570916761015549093938910620387441777240176096844235460400860080817452783649552503642967418373277294597383260596861210078939328214216591650894481386967745116422574123871251193461888465035965739804734932394906000060883974333929066065686199857068607353116914708157012005673987874548478724716401739063593165317447453343607008283235757956616136992316867028860011261125437692872573235065357006120877304820640795108573586283516024580772129284697084876395175751371381236743740551264026566037011783069384917699487359282645767401368666987281595227329655326028410870600404784586797467965379583122983790281236490024860382210286340446649557658148929883076491329496606150511345055578984393496176466549669741591875440514512130582009923969920717770378259252511529565082922925951336051417265085992501937624845711386047752952610748464900186987201698832533004688085106064776851610979983423824291182861719038758737287386788967742952013776223433321856722334654237326914560955652343498691958446145396005250237880633603344652652503033366019184604212961536311476455236986226108167557253156901353990001662292037532773603664147601667140528684999955178588386185953478177763974175895051026900710685519350106778797275334576874912233271145327128796181401431187525650492369265909344273737273056303895631015655154430771501662337182817572852879602159631463149829267171745371514123011901471293501427395945954582841825553468508821161297394536606557429638131624596478997754346820998759006448414318696932871569032170517557360284649591865156687933743148613082964804676888698108531126479748721257677656090722297353543618012030902996438745268828084363159977066730138565388173023552030355081201008028795270653162108331572942466462650475684695787174278001576219820648893469638828553939076716471754811210876911819102589625487671818075563174031704771473752248275891414960656482828258494155966186470824861049909227797394401834513605685325330664184846132517597308345447712166950942034096846602906157299904876081990781309869458592673154454588624885532986761143716213856837097338212852479248407006127595200322777535931868567101675452612140305070150168778882469878224723889434195209771700485557889484208362997097220844849235468082449192561289495045376576291815420427547632564016512908119420483076236299233484717878681572956683090882559316638583110817496635505365625097471802727751617302256385494952131368183497277045805304501636156689391275384457134130757549877379653972588164604599080690005959978553075743023775742280375911638938527885109793536705175252296826118636687309437029453570410804753226749135272516083100785980107609496604404635665671020531579616164748909436935617900719672831022395996860728815552386207595463807767661970308845423853591441921079779089975287487749891203624936028454620850243205967023882909212902792901771609170731048795884461405762310547291438161023197197550837252493028185839627402119910826695679757452012094586664191920186381614040902590541175668628107165119265152556622852332182508051907819409888472779554985582003685413362160958828465444937507525352725597316070504250668028282375478068135033971039331537216097819793419330689882857734471093722077357490749905268104567804950684915069605832588188378863624137169651449366331447911814647411306606799503827929504831633829143631886780298682816933686449632077232072115610761764670855355932442258588556052481214458709386860358747044666834523864784894875065711976012817934032578538851412285091692581698698717241215499557705694338332762922573747392546603670468677773960611577240923421973612357551624979855205067391169476827326451528653313472682831814291995886911641154107587039157552526784653155524949141321343356630531507490848052890661949118498851364314655969173154156892556038832341977409944213372442865862074041549127425555818272715708159869116028889120207944150338135572133559072338500472144255659567833664849317867577973098467758487683752138501556660513316604115027288171365516655769381312728488605080437019651054037851928254153726761386310882528652613711845188266786795383449384383182341600502224032932874244176257011772041893257526413918432958102611477046634979837181186005510659670411991733698443258465254775384489414482757720481052534778161485778259800335788798607987567941841342454239468547368194632006519062112515553214506093803531587900915331701801255434608483089856140104720892945814106821438683605320792990554655407389201355451918728382072908469265922865716179802410682210012443926053936179606681309930944229547361572285042485746531813545336386786669180961674127746933982797148223121966531197402835064904512185964862448647244603259737509473989834248603109509799021539381929703842215641571214593180420998819344780014207853152659782462199438796983348721391765841922138438488548836732004361529276720232383535186910209770460230355279963982080576141881659749266941712079120524170070144176238123613418997922561013276022937284126155604122553153718902921374612599799802099139910237503388678547467787154430404776933498209655179284329852465932668987350756134662217926354041262680719708420494938047702980611809829851997470184423974905248379663568751145876990061363164795444389351519657916731739639153546289674027518479571875072902198006092277673445745518683424979052723469476135322028275480358326696861396694983408079616876128922324565606062053688642638460183756237236907503477533811258698577335735110954008501655621276982644579125676283290447618989818546917034855461231345936244608721962320606450609222772706963017108466153662698842560289785872378498308528259680660418036534708233574810563114367068715074610175165412173215217694950051077541698160761594448104120502562947509927754241367319217600296322316664230834364646123706625830222542920514469265375294594118617077897254164360289746137508925783318629353172112873278214034564898378332828348073908180038791128001643301781998385954725507955592509699411099737407223061703799587219931001592628240488576094410846646121729982430788552298968632517254471430286926944502794318788690874842270167687635556285465694828041493097130751735003914768178029495879579417580595944982026452229534169327674189772063761579385269366375931501674493305180384095224637251924705985989999083701556858960534415203774783284199666446612343889757042646767899407610948937381298310659671018018376406223150822750144485396857737145421602382839644731198522165344566936165970562961949494664353090977796632804081652432589734395303290105084711311595343519358579843733794056255342408470157832864751608473724866481146640952346351859598145996802366112481382939957537901668857258431211899519383900877346462262552184813129422610175021086018343891065689278612085036110186803059043229368191191966719745148452404828844988653007677176017839636562680163574680239156838561925981344113686676060340680938730847252415967593012610429660417927746620613264525158055485890807603798324928495060333179705835313504455884648058444454680044959323596984221340191570668016116154932395859214546485294696435133412000563665473114301577177420471347479312468088328581749713192014741208678721479642598339897015567134192271943130745154562017984253415397747929471165173949260129231406605060129269403358074232213255394771189594092995883234604428152194201228894047573577900229774969260439463229910415564751113402388901197266694539191041375122735393509151829593138965157935029776827564372686104851103872516430578567913622638281984116397394364368951716438868468402538902219758304390934994439730793274100450949951019419442529335788362017684254658526882072678429646897935270976160757825369435952997972163972210062443665786283929907501830987266465185605042832636029839257678148469023966414853303928829032045902743180440862461456101213650546600860768862251849059051150025684139852506675860602956244432618079868126842095221040299302143586088021328134633736013825119099202513750432931236171692640720090047271442573649359012615429452862012642593841444046559838463191068135522747187854931711049626687992730300363661938716711539985994418930721454055395842913218283385783096832246898750841291169701719701362407282585235474628734253111260981836259765529019136074968519671917495970923636392215502475776836487265656476409255588340267956305091449705969656569190992494529397845462878008311511185329335078548719785449392316588134479275531923573060462753519015181997474155441940092037968732482455680292414173263276347373896371507994319866011538320527471256265359690488503120756111548996618363702102914581031375000607681998817695645763126962978638306259735348341107635763805633389591057360680939860035603994341434488754144147862786215735704339316506642842530577385536815181849545364092200379380032280134803863878110383560001027668575085468508119735964103151513077115945337878122233510629569149661844924511009067841981027948835565962182211860109631329368231012239576869936864228588651228823192984966094873249864992492273054814926944115722421135627079005804228303854631903616904492018626447009775852282659780417458935679126701337383606397034747870467167704583189473451539892346321027470777668809706730154670601827847875192875103016027292720535301016348181015993568411106610551083446440467235088653061926552779522088592337977172722806130786010240851594809154200285085033458909726889936216200981358393176615493073012349323807496468899425596854157756100150054281220088091800981447787086213009763191228644467468368673129420360885146177555037113726260176253869007093509872721621957332302747553586718785716732810913567849270547323863285156182410581975010968882682375145190713245878086042704288159191580287319762085573269371389828445143889665865009756920611272210331051072031121026164458896992868666068521090019522320501551796594556146468992428779309239084093052374204028236303903507739494988524991419050545577360915256692627884730842309768020416538193364436247957493866466638896148531084853947131555497834512513876189099950320068842559511765086103589421485022313335139967883920267067115987501430771312039067038278884197919777817790251005238709954999417435826610683812400007110927422662791003167759698033193546728083371019312692571992033956822368625901398556251236474573703516721766859758474740555919562000642352356014168313000641951712668631300637136264279962849461350915755431566229506572249992405646612711326624526164942665227984811518017070469769924580602251388274020516760885051969608226739671114916825379016418421537916407357402030294667240618858440272207423319412265928294987549034887622590308184139226355837520069312143432164432134056193050309854789621554845803312004226170047461055959281457046294239257044483805260875959235800236088831154473413118905600309803186300952255247571188808819955007791909750412321992615319097989271932272144777826999919597817378733097935064356583104866311119798208099120209281293747472252627929986441641079970505482893034647303670767725801651357081981030266177302328065909496428923105853560147987152929242809367357166091433033981277742653772229616615147455104807753923885905882455485850428052073667346130095927933695986008639881794119161499559498849928123212878611872484470421371310345481022644614128526944963151591509480019367441782293587706402030737777984300669620919245026369661934120389830755160564470264525942783506044554650549723402677688725606838939820526903519909492968443849469647058558395354177968756257922794280127234938844251991165857614533358706314238149202477849723143784136302753517654281985054332710820350422507482185024678867652742406097196286122831961941033846465344763772514835640183325994089121173381926668568068464661191570907855273382448110175364340845071068508862329449159671985565063386610610403114832474629863610157106666479889228379789337855210650482981263840606103943684702690740905657019104957035314095107574316547512278920185203982434155259944216711685300678197726779615485828705107737577870708254096595108802615976532423506489852267357453921730604676261072172002476064735765946614266077057365216587173394209034413436864483067115712657073561714109630026425039402113462273170105531331857984004369480626230386436609633732693831872881167651970963721782161800222925510859585259438404337953509696809080774804973010077334130191574617379117694629711705279172288712684292706725345684568235709753889811639920564817899716130755055174356504966014367792168956103335758400705807012536701378923361438451118947583435270014199045723072930722966945481019578175872205631289873233426499009051833680585843199783357768184126038002404699893656235649887447122077462594536973357939192992912289745804766689383915762077339185293424084310550283882050233660447759118581555653628214364893071871156276143733549641912776507046077167906962793259790068152365918051291133153759484357202211278058783396354458699972956404024685714839971081039402996924760418934069358253821187916025967679585409678597014438075366285208766912224094789877598250524312411377633141083250219213969029896618849804282895870499509860248357912743547782419915358585046950055282627560089355586324381343519382279000781677033972614416819747884454112033305801497344975298715681508342358572701983242400688540837845341982468304645492078669328461873905966531397303719222115561506685780436946641362383023012798602848187228500346874748558443102422733786023425670808894621923069381569355266119603860409332077086900469005708221936851455772719413878088876628059092000121872003139050900620995733523737523158089563075425651584885071932972994242869290935504316886223327263752141069487453806028363302044335799133529421276062449794068662920748463411253073064132374678226801745585313188136309065032466934403426196108160138939746561300598851693350633956801761231979767414596516065642915940357387206369617576718642499662774823194458329890925482911439975189336724525187590642629277269123650129670789948120039479247106958485085258957249175470492101033944980432627058277636767500022128860927986614876828563609840028264846322044763306703335038004392588977276481572109052151736997024270978704530573119185986122258712630406560677544582506570489215536187786214775983995995449760675607233217447492950074789402334850414615781692034559453257613219286240238068329900873961713532239343707668284517876679943583714235677641902618899568632170617564571678152273524554115476017277612191705959858011160563202532722238621558661336021770284440259369493961778953498266721659829831990627825630043305909050079244468365968394255266171258529226947777104779425360424828061331834271243340027808475784342662728438979190687418249660995717840734156584423586977995815074037308954918848564775503053706147010724916354825302606180132012757631298231561485380422240866579333025014659663602781016927696808945374717017978603862343807916876572969010937792802877862267400126093936422834529944520666905559626714711287923143718352253784697471477498044569074687011157128247784649769144502482701816221518968832117554498746650113479067025985573579564571405326326496006689524352962854162905552989985352201107665508724553679261243316072317238535236531516970547370627599657608029968369558301530409531967593736162123015206328183134487385847966656203904519817906858903169324653510959031963461234423874164017219709417681455481792314994074052905362391021243455302281239499945388381561508432197280037158338898743212254006957465071209348140385862552386354877258599064233562551730989110707112963016207788096774019914156290634437545441613864666751072053826544263304399089314110520472821319461716909356909892968702978674383441097535915556087448179884994720224041086973482870822053588028325224889794548590986426208489945468033176035692945779686670916678713937507923025710155848334754445577619085671772339705277131360195809201085536064815170604580161114545229126068723462388995249352619949716145467111803645062626566570680856317364533959565102888453949049731622801613810796437916476238513742513713295310084031454749992748662227141698230674500083863130460329997794079311955170629073921745324378106700789155758851907741356829214563842232198254943851574877290732999905148380594401723424686223569444369416896595694211487193220161014120708117697337151837084629168684728834782492522690589382985212620778769217202290226497268324036461032827751645973477669460133976336422068963840346932955060279643749491527143276508479399194014761405040431292677720352103222029783493406775443581596425951887414404346432729087409534760823954018127498376044510092209800524393781095137933779503835022464667722995204526329946229772000257392031180705327624148764124880515253192768118745441955628634120763995363639178139733804696642666599424552720303754675563783245658492599934688507959696273143191783655540759997535428631224468972281480404526055644889824958840895649726418966780627995886150143076343513828325119415881649293930435412747575482325676051707230950498218170660886194485180698741546492399090535721400981448073309858215258506970138111465123439369992285464182683587405722886402897984719009974219655299025224051258786264112871035333288323718125641930973050134666751071241814825829089005978770913635606181187618593061857769753177967944363533643338972513241215456116375219034930371617687314230392225830860875082967123548784840558142770913261591178485219995990310526709943708372403927293147914190150235544372030318706735051846201759811195231512368646705229297293708818808715460638520150651460649216455848038642858714936792540353343682852355160340247182625829989711829426173990048294416339576076138364311585877873241033622720140791171614177146114250062988606658573109044493706665196083639509907468897801634776682228015229062934917240138970636762336225639757792688419904785613744200087363759523292896497605808557625746470036247248641263673481735641731554463682112012639216438312661668301433638806095060092429303724050186258462586541243939037672668934990304010273808715687548127213565639637300104407256726813868653289576355707125609914426245590029656578749055934705299451298136455491092808730986229973285785867989953664482545318456980763594362939388877812271776203470936665492374044452296496735325300795395139634304529433232888829667564369368206054284232691617307138727991114670227725998030985846086095957877526412503020349598412089439192651962747424848902675045484456864090413381789883477469224898330405626045996600713405782578794623570611425283024389101023129234506308663253028211082205219088778822524470050271069032770284306936595387534771667285576334853715776487782422856289005514696790099724244633697514555190759446907349233804207677673736749270407980497271033408852796515800655917515312077048120767405384467916629495336044435995042838522550128557603546992501592029753088424731642305957667755334405400097383471256188782877547834083071601363269500652346441255701798149646365234751387613743772671444926638516199264788551044732403568652931190414506069331897616186091252268906083548810600603193821988416031461312107404097476775901762078140639346409696330018175216353957672272148557535899244846573358299916132618799172991650161994822886395751865362403263505680949289421096487062160793367991196190800793326478052075087803310273324864107455399140478248276693043267851654492832847907126663230439331993475848296845001881394210326984939426814851971097996852423111317319306821082916719232860313588666335125034667597336005033963890418323267986968148276089037121831527068596765945856785330870529761309518393888781967610894742459146316166899184802663813301374997349301361080112623334564774182514570121493984811663363479408097170310104569998316304654365595721008454032260119721487016419186793559718389516521037265456497135895578583356298800976107439249974656661135665051364108519802367872463985780842313594203023934904814321138313461303844590236926468002596515988545157104440805246081439724382573298074566385181841411126855781490762041611697420906667060031855605127551771099244350467459036297956830341959747162924276523704378498753482785356705927047682294623331315999205850268017294646595705708921942751918491174684609720855572531318238825177663614877963147718211925412993202471033456217257649950592781641706343891926192518346628982032426226070840558662722727543685882645266469615307243079739647956320958382456901232721137633070301630299311831472113980251656896407266010124232243997314557006285227832584968921133668597257319403484447048486858219399919179931418372483789945224330140411393763950006860990278051432488773489077851199053750161612915044893795420696065215413996378674688207871338053727200981979176110692779124433954069029683716531269976361132688240230803707089343015958388416546627314107877463503214825444815824191781949595761490225236313202911949339415206222730288760027168297549615057283198541891977662895371466735465815020672305129757503443915362323631942285845191701108993196918524723392027019166004079373698669077073877008939260136371158345678017562513794050950415078263789773864308872916120660472405688222805814968140744459071237491146602854298506857205548692042648269010772496341351775209233196595627214055583622750477702115136425740652059190786014728533205910012132537591970198888140134211002035481525127619569471630383030307406462417791027974519231997435295873405222041571553562848975311182677074198868103756872180154297395442657819777101856333235493949628904635731331409156341475044581577271435438660376038477611278883576791122913180331335878639961228684623345513864673011270510627702950332291787632832868096916044352256171557040574068495212508850994951226393974274421320065515141438314788835018057492657348920394706543291788055340767381829346521868728401654908394442863698787819615281916583812011650024993595880804926094006206914570478657287402295753532899700483032704255864954573833737462625349349607391280474485570814391624501315750167575926060949467144960197129519506799268345701975435793723877661518836334598694519714893255736762348883531046833616505870053253817499664395784686028373819897623194621551974500592767224990657029703404809782905468402885632447883069512097058204592398893511008818139410727354873746075683965454218579975392442872640112556768598154996335287527395591826426937860576174134927434545592834272482645119682686669080269437088208829561699057758282076759550122103703639430086161923650416811969489589225599870584511814448683144407363133912813612821527243320151158630635841724279833596396938693329210956084730071703884557695990539908899080469754047784986983060948651131235281370303880492534772039914571788811904387199721801758216452006907672863115359638337476235910615629547566998487630510542244346066886868808075987667608536346160272527602711062732846247389839480919848151553825389939815473633119323881681808391851551901601995514519522076435816350006920420826531584643880819587827761664477147518275243341540526340080133176765760348105417278188216421743360594246236385656237686057768177557452756797752178632735703942846929947245113866957806162540149579262826187231489425237905597549155091649219916445974010450904030944839516327105012279576400388493086685014513919448044160497034967515598162115818091702893432411460273868581757179065595764304106071112932373673498321778018635624282429026872450655876342243969266435006054366553346921697953129859398003821275476471513482290495981962477308082689837723668116315241895031524955409990742202416508967311811663094323366642071086316831956549001976053653894947406297175110561948389886816191241907332896762028750934370418855085903106419562846015402752996814563436744254866515873977783960875458961478617476290854809713155041549542746654918362880083797175878691285344930383618707980994689524304249569546035739426169017992425567077088243404703515344226772312499655146689959634378932078871933964499063307328623645837109578072181597935860829576704767225599247872977729732658924515686366228882648377411104355248710182561253083605648720697841827912328741347660598807791455145351134676667398037957912594807112264829368495790364681811436943137688165848977411712790154187549152181456211992906911326511049075383253698901385490059056959737790102250712473856858847545773392047860408085233168454705846093166356621788871526824180773727200931177835401055751716014358524792589018650558210965573982517998987533337817225596032280670209427932636391643007939691064812237488726532913555619914242789673959089649006813574805733024809055870746230797832398913781125106292649512963739320252645151420049677081629596806846271629900559444360792994238743869810533595911090967805531943952054169744665315530314873192082755432693586765336787433072440778447694221015054144295315149099795787551849265150124993815630005508310156144931550031026390838780821179298727252237803893079528509806339166569503197704304982086934888099061455434984212143319664900456535352935200060164731349765485403521848454540783103744516355427893534934075566873829708026203126733297179812750753316833852171224302961996588568082285811760422222865703771902542006510377539442494161376523810360415674425104927995829429558379300606198271717598921458897656473910851633943140893221464018069405103101621795002379973304798502044194480268538506519163524655436450688659126335735856697497086925744851298555775095166415740306243391625908168634936187986768267827786558895113654528396557484399733196483069026573029852994583904060870873433045229386240284392053459610133834418554661120478813168964412470719719056413115244548531032119484338388770031336492664988970091794234950194092879079686752751635966421298211950298879376151133160378572309485026080857820205466307189904963055955134031448249619633099190884920856283183348891030329093184629616755314088845171070083345840686898661027505440360519724106097726830343554230368615471591027473766643279898369617661125786711318018100738909112738687158066744125924806082524019780575090067037148758960179480213194976118027257166839807937802397008267208366007889901382890547335979691538392222483351430096964378369329305671957715111407777375593657994663133917929443510778861422122635385757493344221205348982741221942593616192565976648343805557612158168205168736779128706418958259631462854856082324962820798489954096008766749231130372762138661150534736211333759380094005864332341117633283809537850337498246044369188425195329018642645204285896042175128751644872436375697335768774832774505158096569772518534844275816087745355291497843184819937998677021348823969910859618412248561149533654068343590465708432113742640715705136086671268582809603926854890418164225143623508650708484283173488174843958481510656422078224487251285669239216703376133727412318935758404799160644900201611242410107423734873651246633915242099062156061713831141693450243214889730840236577772740700811053735769627912256417176260252944593906059401083041082816926152868222342314003738918665211871468619690241098994505767583763897154841780461551444581731343653774312685012253784806748674682840891176470383759441078564402015962788080151047945510168860642009248986900648847215071726930787319805106944153678874804186152896386014002462318095791576110204346672902841163889537795813954266401931856516887240153310217661354401837135709621947202309636603048998845959607954959937535186375382420429125045662627691387488157679284555954035893774675549018975907611938939719238743155377693316771455049672231758962118302355376845805232913061281445640989313141819276807057744026562433631885082168600434490739526474469328309943733565198117864011285479489327909205730922664686476609515420448484415553261175733772726423611824810507218765076186041375782020360070015052954558815170279574236526012003366674516405173500127088692328637664237532950730890441239525971522998092664281349065654745208623089139027324605706525381742017340309052582471744082629280997438979620204993654369614567346212174018640722522569065281535308306652209370709994318760640525779306511332836129001268851885645049250500869209988805352232885426824055814628312207398572683120858099764514334965829495342778636029799786532475854270675383838689453609042596023118850801766023507219115259729184268448026923401729126844595215293078337367960550179787283517712883729604885421457347481173779604977439041541075685933838427137446741782666584442769665164949341880009746726495270176102894550508934332183989704500417983627204639725242108898971419780636930238625456039790696738623227584138167590655218400933520202363525313685288518067322029137601042727540739734780269518919258065354581115960262740619445030234498424783730985217742130390978862886870808109381895899590675885005514958737179575164600626517381470046749808554277435882032807175539067594803782542172115040382196313489176245922271385212638897121154569818728632434386824041439662165501714161111325067141928449255002817519830969082986193945391051425222629104857707122898044075768133167834543718428735960248642295781263122534564481147450826965816205873267348757100697127617282520550843381739561567399446247816569480132827501994778056140512805172571656941031898227072846935264155741357794540959364462190867709204626635888919140283569535867375286528470666200938572509212201551815348302618664266271036935300340224391258908897424713946814966234844569421092612885318287981353489297409149923967967994022415458390648040536471164206038774849251507689978235552548595930155706620941938845121975424592007379102356129377195102204223681842295879686301961826054713638693401483278680926058590281298503898297547046206708492815263928841172480364803694111008724978026273575453027230749770352110877602320359527445481131714831294399864694513629470550091452172666156412557819627020197277760581293525425345518597780055793753356227992474983714495068410824731439070945125625548054495805478065416576411429809819939967839862295322717524777214236257174917529923602031146259035447556761740925077760221900939724026125052805604907228205576780083708634710495709928160334787775245534865298542662690021667818465423294461542153873103120272241946011504246389676551130785487444597168466011818983143361348265263892270994274742597695205500236739418757807141620389038935030370995517250439819445574957061774991385028080977612076101970244191732272146210728679825723956613037035268278961073919146003224114251157060747891374142967960814986601821272999513007235232827161825236634006696948541001585836938797404371314515021186629337685720979343816518611748322541130628686762674895127547816023535735721360521767400567443323866925771503569848078425289294753657630133774498665395695462678554430799165082282427974646060303854009426685579411521639512383082075463078262352482260282851258787390797858903161078997716899199535380332181723448045282132629775849508017392555681665909522119031947587248683435615403060404491480784445234992636350279853248655210797492699391510523669935999528584103291391345960785287796216787615393107594804643286487380761340409387558765524776052922577783644079082563229548234189066999998088159140248173115380760568863625292050198872283077306198160565947530998816146048803757949421743062667894121337542642195340868870124513766475748095362645133298258280703894678563172119235238204311332389787171784223264066043980978815558709116232455792490583432106898804020498349954443513722078659015029661272146087983305165020872135770711666310148233712864134164617320094322447776589392524995199942222400077216190751928365803707493664892790294302690766669441449964925136874368212160779868095852744321480820569125073710749054541327019773795337517933959729834498704960278740889295060258399595308622804870046803232057801056577500219462323983881861000441004698088373098879296209604528680293346957555424759336008505180888369860923020826334842671399886356142970898974282110645853321703219739878750172283484587976728110126484585927471752550075331524661603375271102414787714991700238978156939563082948996299773519221915884549655521818836184532465881147782949068070749612196387419793849047477449986650604133620565084150525812201451155910266830717063150166042526281897292929400768261373882518764769966147578533192550158527374433306332764659717317257066715330273016246842142871083718915490618862616664340863794830754364689799619575201599095633959747095109938572684302176068282048323434778533369853500325081785546832504159984425385432031264078434762701748020748169580624477214029409994240685924450696971598863498349387984994264206891986792138877746267506938650857909327714035848457095317294830009562769173026743606950404220973526652212938858033872420972248842669688611751887025066937961527544269671845056236867874741699501528241199718966676680190374988786553591440563036352576296605571649454273216594185593127717127378665939369849863050954828958650024962437062339858627309015660843237683989877112888768854739290912473756878714840692597842270716777329071547209155381478695961139011026292878037688429791654082099497821943549750197834673010226874951729552668070714628900645683910223371625506623071681344731231917000713261191011071648645399214651241020123507916079735851922152286811943224253387651648694536163615794596164588872026743015164360969636416391326218278311543472764331475117654355307590990889652490622693773178374873794868151933265377729600141897250039773648898090580182435477549591789259688131104089004057540256198701859724585316139005366722072994172257388624233314038405107558619411083060425002343397683158675729168261572622764898360270129573323011045457623749780378689523296365882561180793503676888950765687901737450638630545307299591002170631264960996502168388733749027730789529677292931805318539954392198021897688621237153898996081947099392169065964103171088258385821118381933763885043601094205356978328675737001267129255695224549465728738429839447303678412088456620962250536511579527218110439824860415464593182751067144973149919002966463146837699986893904343302877193429130433467333119800277109007056402434869731073201047400503084851336677684768791321261679768009280677578198924860783191998606802096728535898008113507946889301834580434083718367515507893758012764005806681604794155070735544218660737901929635171355966389768811674871175434852820293546946823191661772101355898692130057339259667894351998902283942197395961055480192121142640480828773534002264451242951531225438395550487283935198102980969944561940768469251721495905511606239626220421444710230953530892075056004635065051386554234819948403116185550407143309639744515744015848006896620293482099161031855014543100969242003441169365661089181951892193204357095666643743528416183653857605157592277473416952979783726407683656085002444935187270116523849002800490206615398810503705538152672065006266178455261699702392037671811042605985625547996215578276774229539447080593408194000935778711682092233029630034351678575740823841013908264355418227725217770894388740840749273972101333740206109507566437811105827648258273341351821022778292888936707948326758012895523815525903792441363433007408648649930239247537804341367856783950775231855666207496482897436124707704734316312734522869912023879551019999848575369945590879609965598548486914753653773367218023601743642250966940185390902943525030925197702461951815537103170336392243068780339408368707559735342086212702467739541797409739232484362963034570804412814732664370718140366538062395854827827618683032387932134010189018622396289338596236875840425347134075668945713967885889534317519265487397799328394775470846422014023714630444001967252792400185889446437414409334683001898139832349248804390139488441892330289083088397381580618230692192040494119946890036109090753355068263164032288802628591719543150619947314880628103683461795337876414823135707971922483045832760434902851846442853886673446922838598569874720610854487929507932473271418386544154550988982540014803825056953571549431554348135321807251916472866426786109452927387155798819974293464502806970048305721265632496234422001840888344514340828584045419381706191889111775486789114539242407805662630053129702768904710141550301321197702068707030443021204240508221162812656411627690731696156454719909932577447177084871041200742777748031046362446441530926314993543141976423942096949643619717731305554911846554984354845723531295472072185956570784064792669257653075125500418816983394040626677898043081544140715818031463716248279139856134380281800414911243331984849257253276836487653647648118369193779451641760026175808047996056830429965456694050137503118551411458128031385972958326189780939473855724924843218250151874848321660698477808748362059869402509493439999407688125628470310023972287876719791152107539581719051884552030462050743313975047976936807614126677605219989807324816348873217730332200264268133737034697726141951367273195957043424087116796721582951862483361610472312761486198425402402534870892449846421599047733230404655788675345516010004203990599109384496588945193096260562863085842454115418889632890114258309668499552594519438207908224297485521863395654385225299997496996841289439639031692754288389817331418286164086144221387632658680308648398078411092142926799181485997069319608318685363623271462635522486108434284608445416766428869979858724592769510840561053001986640565733047593138769664379896681241166503704358235877504424620824563898401865795861529912715778948957651713892037071481961858499343412534191231648513527239310086494632589167884088014207371964241910819778575938523299339455313546605542600813704480358384215848234126371067995847273966579235507387658934158743689007711903369992569633384034410093849356398634374592864853293702718299378328942302840990470518406847756236574664867522853579349119781195445097175416332469197783583774424883380031248784652523949823800279885580395557166253199784472894298203209070547019215196457802044315416802322891675790191676884399584642532217984030278012978048780852644958742788954210751522614080497578299163750231812135501180852790017516623432057658738730188021503991589212289466520034331267687662750346134883419044552042461666855914374835266195354734188726344979814401882357175797958075844180141544169450216536541318229861153489616113511077888125183504386082326621690124023823309883389982972312149426024316110643092451413969067155534388069349698771639341204548205949833867890800865407032692729579750481982699039601757096219333750185208138740275356819970758445101522470309392416539130247235704265327407289884164381730439544181260340099399395465765643849487439739081599778228645221482970175664517179508718128062410075676032793084165163221540911061535346516960361437049411388586282324019305107175201234121346858663375934255525167647692088930315309437395358716602857798045267816317176389866262971703351765446247966076772578249420785509904685125874825232179299928498544549993658458074500988750781306768811254349891111535813791946028066307186587609767441296496434141880060718090538277482892112503973097439097914572046988647887354073420268415666002236360678370282863375692534507108619361340043575752261190924813658439010009379296324649036597699295627089499417392807111146331926526865333206618647902245537600171895926441488624418072233230005541048230074349644045861421815959459921524675032146606405517050226704390104501178083637447308778454426796919535717339891449858527508956961064116206381414572839599348034420460321187667230102238469290323806887364145535059033676657854566001459000362557262346162722650695388569232364231171415152450669732694773162613749178426278947570416638464093401251003855394754053479821993725401659897892979787111639182922571705602260529468646242678571398703732490887614072300048475992337688282109420535044157388546488802255829896582711825800843446731718030210422397220292852850820015073511172230955717729066626744798019286542512306126208728377714702988352745458493249911935047739620799705490698099960388905093126287319492268429645770862185474627795184242685155000785615014284189570664443543700506797020772585733783854060129613337563833482431545942526866226901787173248286072283053977316730895766556759085760822882972297164682406155699083878435367258465225720629564596680899827849551608554454062716096792810622282257197065120414283057327678939363572451001911663205542830627261880966029313700330465141536457473382363985231463244766952551287087562233951964671385998219901642592339103989647257876260488627814605449572458837209857829692525635617677150601381917952791498470768042471034767807694690412319013113326573356216258917782878650128126294334556038599867617764085283831070979296104849991081812184690782448387666184040875333597175150621152982716757631847667069233031453904578909053290525538123049163618609511005547025747356314804244228165737591861266813804950691183907824130250343693013802086886994001257141017782802751933875245950905696490632199329052013047845350356339715186283990937477757955104103553888927372681752271081057127202535676384303470584151841341080834395570228278558236015520321955348299241761020638526136164941912392021290380940173108324142819652221953755716948923398001630763145180325811407750062003541514681667211388725398764627185244169313872695456724764294212737662599936875631833349080549184732677368184800727895546200583193055422260887253257406475044806581384439030976262288498004206957576342470966651276689873222620155966046984201875651514753640513392742508519099413126045032678265479231048624978258147926012628980339817717704426768005605642355465984599738080172077998529381129780296974374960574312151075323197187225439608194735163829758282281844122115120007209435858265093774775371051512798335273742457741243949321838112501737133839224229751151531892906611185203056447364417533306736995769474462399861715978261048164971861883407439361894970979380045888597249921046404122227752375464633318386619090787474251085654309950544838441169440920822391803447462704981223686144665827866555283629776375247152914179867491227046871016922025327817264941283070424490367247708227411863959362013134876432777513995442707967575664521718129025109025892803321999994764808990902967588335651520490322277369313268098936580860376429306365496752311700165268602158988473469094810776318822279008672061061590573930408475003063084807593503541180539201500730667237189103710329290337191775475105165866916093954918866048892699122714084346042212608599937074106772071477422420256292425541687153605912695801805767008729319697036882041790894919704245907599788171776525088043007013912203360227063372696860086357905941001502704620523918094915769396576251240400697472088110932778028907274473725979315498442969842192803755600611328243178193127998488421010127684287444614443344173819954152024792724111927681298621666005748908836515442855905553015851123214178753896698482881268890254383720655681598328421784321251593176411909410288315196117522681590795148980722838620574727987082463637360484518196805834130751339838485321573641309690154163149622004914143376753960678751350646945821604896477546818249118991675128090180338469418916126117248735989586119333727046665363246659258859985220263617426840950586123084424168894746136676845576401066361675211782678084903653031375098202092682185212105533736778283157425206418605722128790858519200976825684638456865316420294441550985997651194222799827684282724845773772503532354210937617335652696609928184142947652714612299534454253129627630099897826884387680000118730507633410529592880031704677503857563059476268659999890840071426834657395592260468484229855562843678192686316527422646917189568581273382028596933967305749147661973247191367308700645283416192643218650167897550058267891409303421852885838333870890526498088657665039602672706040250151754164298739759138884224485611258576657007269639596662514862679698082347784236230260271529463086915687587221354433519023303911630977575432053425656310164099269487985006331328242655497967726057878356352146430940234651024387415219972516823737706654432343829234814838613864052703340805464244009341949563806221278384662406172821562081535083191785149612952625331466372094550729818681014805275538713619316463134572192216199611488220334822558509125599892554117225397984168173410776055831781125659989035041883947051659219158035802643812329567328919771484236897099574691409460546982930023593686441434018294379740143184167520227971535301959501288507489404074825292920112076168119833784918516487938052628052358874210500159502164061582175707859683491044564576531982717766398417055711806933271877022998102938592282975687564981049352005216877856853736425437996607415192257678705729193195224593955786810074413481275460498036066363357485336126188668217876946528303147659819667406513316808815559470302818006430522414836615527093512474569576570153451372534854210294756867432923959398096908959933607649366981696871150152850582448624769374991284853019053126574828516190715987707603768127528685332240729880857340170654809171622129441175687436976203759627682177155497847725702174922049642530916932837791538460718741071905977653901137104038151942803098423860876115734506795411870375228666511038190479868109878861753164716470812655530043722516189345975680628025016606661752827424153216852103155539657454936130402602094762005758768846920088720598709457472931611196181158013958642142877000486088652455437856607329340999319826041451253304758726896843686297286586326986277240111317458820384945620563000248954189730615758080144755944554026094788542568256575268811576632430123471339688575518147962530318679381604068123313358027122398406890405207097447808508115051412598157024261452957999972186970126219017351945326374577119397812632490365376434234455957071128384421733508221019308885181165573777534191959034811874978982392087219528334075186374529067996285838322936736033473334689961800313884510461900542758881506732930064417935680062037998509353304429998367435703056424110908588245593703010739809175869853124868980571870948072084327252553309176406811154380119312802810424517045928575520039498659846586809992627196875972712040363093442583082467673326435433071496611194613467423315895089016750293787822733031113679823785130297824303092015819460343454195936526400301483834346840092093850686636131888583086288655819970096730706856169384485955437850728519660779647478440515449623265610835533206605835960586018469754582722473955341386190294952923325708405339645938004957749801709115906974089179372155277696732115667686491856983740012402047118576962929699269343556990318008480344023844630676410105670620787758359735286142477974220751303996378005184331596456664669439006695354632917183428579442287096108796079397464401961376096885082426006734635342606228949886224955703589045304108054108215093621909293124478972008561662942582414296640040220420605251519848857566644862690363412013447180699240390609648426718638799000120391005327318429765760365908850283689361417408455085637284351442207059153604852603848580226130095171708688717095172400863829905940430889179718565223953662189890856009365691348522741858335423116406898533396331774818220913975001279696290244987173573490910089556528227983524528032258009506371343258486611877175991200179894426211499056009257242850492355392496639812532405044539845379489688039368433553565499705597564809961568676408434571927873630098197101587550941443897322464747781032739791146782722312057363514214084519278997815708858470739953973644415449842685233900128137377972079833730099111751761324784598860804092281722669494397212611574437796297325546171781504261857557708335574497144878949965777417813283679177669407038443241034339803274339398501443087949477836911297743628848551717332361969953736057296654612205342963343107465767569446665970647854477843252342709882137125219717655301968774437136487304685498786679078291383764514359508599337585668514043595688822440320100555921521168321862805318811795043014853073969984513086790294943310358270971830913282151042873043829134975162308541804922497779849926207966243397096040079035365684543883735930046270752419911179282294789247084624896313666578184251620242006208622004646874601453410694022765916301106716182519713005289929094610146839735155148175165890018510366137256100830605448175484749285953130664414480608443743183192450314012786147578458199744814243862382546126636001975057106022415699665643922126612954569004588500842506419294315936337167375824669991428791577534571168466120943904005519041010494523045128847362389725251490472536814974222367296317649105207015834603731909309454478450356825796857204673804430779791579246380799422252987477707680910075596539179572170442410075224358835789678367343341825786811639878969256937522862538258981754956234643660943005638026792054363043063877444211971817047142420855073654862561427481419026842293969452086182245112487691860977490954283020377813393701943986405317196282399690257453037023217696460092170186319163473875058671213285118113936884734601070419226616758431731295184614512348576362462198379718084083378234604812854315368321157219300670434534476378323205121951004054890323349102637780804021019767553044544087450718159688868804242660370201335222446426439231153495971436379622265302820944993852408265368055084740767599277582811748487469763351980806184039756910796118731270693654006489350190241327388955380361936902690996660256189938586121693380303482888880680993756788305638810829501569030704054094723128424392510065476115599985267837304710972133099459313893144155442682149761081194478039015974648508643710935149395585119791930178632777866832081071611430123526789157970902104980443174041350720005277639572429985272223689452791368689261888420335713130742353254143376586682455530458380738805790745886451947376914247535150304149002953298800172507100807941605450688022678706929656190424601620349065288315721280872688252824141335047908972845050528129091773991489274092900794882278849461271729776834548851030292951917546393490782471071023062201558050828260472884851786187357401556683865119291773468307125681464828205028194276494781682882212982903510772303748599508395535717307357173361063598588246713583996438449947716940293605743194282354491475495034172545248075403119212722216966400875229291576267542208799962162352126106309439246749160515265026296240938519907307347189875141106750736907061608607229000069160561769165705384538604777960537621253001251773862436485182940396979729061658228344471416638958956854101871721961405174116807472373605868269672317108657108307779637172939628385155755230351139958447501807237736010988209082146544936381099839586645891916867527250016776191282139578073693795548789424999024101420960318733283820688976175612811892823054123520030419634342902765912730402726324330168092613359438421969404514835524589146794199325797120252144701602412485426437076078398740213264880131794688243958873474605248727484199583403306879442383894867959284821528148698215864351126431369271884894648865560431563063137157918488556480539952413948911316721862997257536438898629811712743512399421130553690462045122672687315877710827509465021640893921552177791048145549886354237950337432736369749553200297452087899701279804581930028481322012006740866512809608856132758199213390342235893395274973680975210967994665619683964815931757022794499169772096198288179847215795679567202024606679568968127399527135567894947725363487355052189743065143840345384805829342842462175454280638295521124661623587459634092270988965352834488651102193438417106709075879807928311188250468521544553299059820656042099019079388573280639190873967187537491694864987817448182413720329756848656935053749158871935741477707246138508194203526996077934244641909397260381958863380804463625076329507577214906925491179077819750295074277293228005675729778216722528226453391217711207819525726441687090650275596820402219489953349370377802250300870678953964901002614647539364709088683695167683671064058267503338416298059568696045593627919278772879043719268863638515674156283320309639960285539927842472126936439697994742907736708941992842515383433217645813753941541782734255617378648553564839454024625541806763283045844183760220463889434583979130418141800620318452328787050156988167039136631736907488331798642089828411822222790750367395278952696902391306821991007085911588200484524488190335574204461656344297007257805520640773457294685755760366775923764375772045487791308185157960634909492408246029828173103971298666435028378058187401974432526276618122310112798149887663393005678612328702189624277051129262467096729145154995107719367502933584696737986447921335762531305473939031771328372631516272468839785028260872560304151889997457116964132102588518291877819936675068441328947066834668546989936997956547516222007852082581540758220104749315673603433544256197437346515186580435861484878399515617552304315397444881940959851280419253877944359173985456629395106936970432829616878858011792294228551388350172308262795173373575610526929515065552360630560589341598593569858114201466078526688377509382757938473752319193688520096884676757010251571862398670586538120867568813627985490602016081738726387525433129607247332389645193679472992909544413118634430847280784318814101669451646910928972376744570121060075982113425685723221246688406884993443268892161769217129230284156266119160118120391360054078564164702212498780956913837411022921094018158688918846351662550064510942572374192001703106395582343867078522026499769813791713398401863760229571876197487597955594938483374586588300239212934909444030540355532157314043146789673835648387309158405327828503593190514372405366193659843937800538524055525496945797128507492073311106181682252892033760091732333964904186385120254512196420517822575312322968325675973174935570608788277575873852885983725754713051963582264134530921654201566641323427032030805170416166148164677675682076619908367522154611086427781165111968044764572458657338966025890891693984630075002008837470392132311151505185877795073287005256663061153267777027929698001064270776123796080374930421939843971980000687759533286297865693150360587578492761811293863962324190822370028713354772623519724749221658987889298473254634205715079627258531636550895229856553376501499538850089865049961782747571130213476321328956272771627549305688582994480548757825064148315915721670277388415747041580453906190330825223811779869989702057738710189684006079848265917213037689805509693658236532673158739314102431032526446290280812797879010807025665252789673557175252456197764256133195823984444397271052157885508479128719638434237861510121895317112119668534301693837916965393083107132502117862417994545857511630531324531573173945094582374050273804564144336925645275958904665404335581010357486621691655291868231467170185393602901424705373139900038207999953714964263678362617737665584568523403504996027369193424277412953560175072225793700747469340345191433691158998373065808894230510828909727825292398835612264862597980190982283430485493744467270941963999232565101931036356077669058003896525117443812323378176417814140195385071719622779272045638762420470966153449509013428525875890026937850623508009915116945676625234526198422513097490086719839244552981668984597598249675468332530165210302246082378623650306590631016802385841527155394334769716509400010082507387440373090823405758841302140948142453703275747980266581871962820567896806924494741983261297678410673988033906054249873731208628793313141532412375393169647612798072705591862281638294334977008839905881310170695135787300218693772020639134829834033739696079855400197980543765430811454325828009964836571666347401522533389135187407188565144842699869945066302936761606126970349839383453332133233255552592079184860512609246946831261974410293052282885129040416655263198968619800286080174365774422041771989649733912397544964468649161471722632354782704385513702597122337721615419626345569812548735894742677840031869447891868693539856869752050735154704907320437628304559906282577591891521549051078104627346374170987468091899871398943632975156541582375945611904597356643483522794752995504083682430775205035249877229587269563153189719284204766056955476197846769259104702849326702480379109645750059896101125281297349096622863169943483020064161110240372006397096097644959690866793881470613257094256412184381210106841969359785391053016309647529683366104901273731581041706236350880008983133721182521218929023155747639311529057202076196986537768217955615523799396958477074625480206933338917019034796965137308530005521670514296158653895716843838027133841509996604834243541421482733175603623786342567460912044984464597034528627359624009695779251404215691487144798444227773706585458942890307914024800990278991340056573678006569156130200796447214374917910448467892509945683615373741879099128497206448230304041784669526844247466184659970027358445746553089528419207135099847472108515070840160117439869743284359795733230709326962037953746435225222932441493684890161607544016430980396522450712485228202839963604838062796897559010591318955317426773600594187030136063433557901266127322771398116962466083811595551740007137006202332461031820041962728928215821577407575376943619295086217757823735132268739789386211269360781741598778833133039715663157069834483673125285057511618019027222440525938231810637955196072853186547117389044817456218004878151293860986631455966647686031727136821178574909951509091566695318296232090187503183980200389593611469028921961319630019899132201227507360777726394654293939395658958840730754401475974785664483359789402447535708755725349485354252708145970614041174490876134872279841221528306493975668118330109931193979842257816461207455022791975724473731446985967054556713250838532049107055483014471306859913734649174474846032018838423446957767549317057000947268848050638166150271713391696421385042953002314123649349714890734480798428176163879203468204911330634565886830287109810700892831119773327930981993257940967311612228591528224620219855283783390797785078763271821874959131366099394431691430767992562775741756417160113687609769087646873545245182205529331084255520882147344367632088588323734814406057984294700744258281825325424807733064766556499800654415222900736772830716318023721614366681436877469887899367980797994645354242836501695282691961247673808456979818806412362309504716477085157094987633354451617343448645028868363043183834137258732642349730100571286807134495124504088995756526321670258555144238724495732990535303075646788537274184596120628379813971591066874649824789925839198501487641336428698125229451608390761553449688129168572124864897887969934595440699456270920963355546057077049451568707860015642974712932794556793116962055901341896309388959074841475437083305232532534887160465512557457727217668557979702367371763503537340484192436882250332820927675437719773477914731598957959444335771925114281487324403442778554857086266985644465705138359412358596755051204235690978013240837368604335896846148875563049027215693910995958619941029128343880669639816019943337882679107628799356951792531520503158079802250060933362155168819239276866492604053430960802749210004866563071376100815516450637202846568735098607684923909688414412149004837774345797665782659714825386299447031971325922306710085785543106863403765718031503719312359700786761195333520864318560916172524507739210773536245120953037827918813019844578327688244236852793337573072479563013943811405346315753891859870372039885935484037373634028523835773964149564501465995037837386077634170710075051740961530209474394250813345608632974238286887648462011516929662962708564575453732171114819591089595486598875722986636162765790203612971586915569144717363027550151320111768824923327118310875915325914117029380756854108340642165630972952638132944563469570465912494865143014268368839934797349604356419258407585309905403780237309729929297334646880867754108108423976578760421979583287721237949149071908381890126017068720876108435741246035963064904782079656550472541673970916268390677736260167331207633455900014857184845620907796080576675391800028194074070565804074481342366733234647541218024342861440834358554632196324468376681409473177697206290646061266902878896502041541048602604453354727201488523225678767871282805391145623184398723125459160399833214061374086844744047823809109206245304544180499802760040829695844976811698587479869104786157314137136298157530764870266018529168235999992177783109330393761683477430992627443060077416478962287663824781918175969358289551638319404232160939851967068522271403340433349158528345412478377040511335502348630402779133720120620892760870345399343495439001251416985408805948124008443981226795291740937327755013138370731926676061800797932558512261447381343307476863851551218725726644906517045190722772219746291058599122378340620269458670728684201521309872413002444687938368642843843437414726220651336236359670843390961345455106240056470350549596298775457262646624906247020625468052513377027229063102290740209217729853127621734875179134723040842519392545291363356718011641266598078134482508108526131165155387495307676408804609859791728275987432424698275184366937160417597361587494827238472954793998560101845051281526270580965678841055076562839655905444069734255895778850982046143534633824671754599993391608627508427518805376506460677245292626181159867105760349730002527903603519889090910916387535759724192089607640304884809168682797396455929310040628514391827423976070208369120518575933081065866445633069141280235348316244007991118240166231896735473041011487155937475804067837754842279921963929734537812178903514671050572959649834787200446875998790050543959752772222351350665877232243970490169421720955138005151059462019780303710978377038417496854971326083482010477249100780899624941091254890349626467761566720669828432600828823770510910913723556601487862725422767341028900572366673643113649423692187010215504651748278858648006396076716811026284527841583602701952526656452327489349601909821949565454013932171710352684267965877385436754992805417977760720237640395448083027990663824919733224734530721141030496401178317989029348040258084974353909977588390844772754596114570873379393866410417667360538196114379283727936097528168219750850602562629110850422304382789056036841876859758175997385099139101697411468702581615949859984251609429256935266323286442549361160120758383600561989580373782956663570011726696449720707354327021133440428439515081193220969579864852629521981908183061536957485646735559772242294306943412272549937520528398569975997953534090252470299858682754979386312074471302047468757178938524702392561333410423126586561276042451232356665049297204463784312257904359878386775563525795741735261435787890976232663592263291899528766320744618924556705991609731984408744180394128496942569450017463661072231722879821282770372792240808325619959734484477563638683746603802260615948148394815546433372421957219941086137303231746619594838114267232703406710792185610723246185455806436522830364000602403850597737616821499559501320731184662097052731955180279346400381118523710422296797547084767817045458171818823519778675179701143409824126894784116369614347518713415310857285493983248724459407806299470603655713343041885309031269812312898420232362514829389889630179854908495303929195823168338251353016254052489676428387401182453376033019079682237722982347284520182003858346865566947547833559425288053164680225683804676255766170036529066157318912926029256021705341582873106244709579936583113804074577583790810972198427918154234380406680186030230969686262907229018570287453805834331681740639423815642008665877143721130112703406454701186894910396626085854228831012315112478397416081947217920413474207143395066310938578967193564233869209325022870909823901113649293780877385172802815430644511183508996692510568774708635936569390217403578214994156066226763012975353972924130547885623561147433822733733861410496460824014527585019089027419520480800429095344338854884601486876339191820934183077142788776446238293956811301211134400659436770284267349223448892882103074041881239452500020122479345313148632928220879911893962431583595208147090696877779853869745581365757974382375508086596977471239034869226184562857222765179646646606573778635284416357579418343506907972055654089445135601710601610812900359820959747100444214352725341766493694917845801898736973275750984345068280175022470658867916186071713293096426309747727408209207273182787804160524274626882327470615230547601291041882093143994035195570349545232043482932725403792162077795853585848239102056408566122288118714256395746667564766985154201294016568453889385779809195788297194736371432236147137739153077724862340811768430587335153302344137447927187592360075832921374465840861509349810551871991579434478104390164749199354770705808883463557392261826217693975113718234272524552568852009511074543973931900475718461643355233015508510176124094962503663513698100109902700061790575062166390473578784263538088986689161146162366856803899223890014209007562739039943066867197464097865970738289029435829634541604513294936173881798569091285504589274455635282630419068750259317374037251580195804113878838436080298450096100447732616889565223783255692483070623172282952022773625925286885962239259629922766227621634749407980153836887250634413610004995576299351194916603894163941540393497179512441374123696254443288882448913627691502412537720246969812368981486880298185179633099705614118859112696124229988127452073093511908368253273320276514562346156403516658324847667928225285984201388523572663713777542318583412787874366053195470666251387033162630464072908865401500714012368227995751399316858233657620233814784956102878429601482204007631917904227202931818838722999079515575972420053427687348727729023685074792958294342584134679171966918550340534569320582490575520301564256568909117756210734504516604765595035120032153360648839824494650061620442207789355553796705389617927001859465324771448493341575821909213675792699296885448911511794051590633171728559660015477712198328551075204900067034664755279449057485027361244210085433751679465655570526004737672212185025530716993844826896339419750931117570037825957911668833774288094284636337170892194006452592450655489300633145073660551414421208723879144697712053159315791217295447512359349596448510470366293781774124206926415740312609554790411805257019343604390416446133229623508905946978588579666305186372177533754768661163984163825445812235986048889996847688799759582095655817756334629898982465163378355288579888232762799895771765601675231320836255799361001694427180143044822532779094153263125001007703136876889226503349351902798198534273045601403710883063545442447024193523754242389142949561842709624552135347134656502979720729238447485364726647112148211463111854240417320020440487944417310360742160064729414817168605668430272948392962367813258576863866787787380914554904834238412256758248920052494920867062156213638198993010233495948903697690700197155449705104562565946135769148388894185760061358916495585025264113527086210017223168737040305490468433310677096303520424698449377788676013095854430876497125365204836983921728581459246457684365497811790214705003343950445642054755163116708076677067449738347933072354791697942180456982341027068175676809342086581378598217918319239053937318723368081248888430782519810116501332128362717763391831689337804971374549836749950629911478126659860836604864297253913394144508046599340614318413977082309129232246803128210573469812742976791078777383499859870718012670875892209773034037760600399612643036256510850296338194609850627534378590887188887610977179348999841066278869555138905266807926404336211778748171715896353521736972484311322698743729606339326039007329228671635263197062984543515738054139538459080849678556558063788143454173735364008118133940217362782193149717971531980465638897163099307260028475059386713598752283092404262452073623460418008771070855059094465588499096157617887921759562956207001855163822378801331626280425177494063002150907602452793716807763213647254032418382576169573960801906880922023340556879322846970550124435077366693157030420714981443198592836437146026069247234219190985840611015380806764023101870291113992386591651864991524281539624292488645961622600137757135217697772322653569715430101502792950718386763540599377192131675327490075129543376040059029185677324468126191105584899550800976060557364630606456378546389426661452610716394166739961984954260541020439859838516457754503783332873037683448386205404832830241713750416389304469595955354755577559506209443020341315469364802209588128771714355880620096270313565935261241728749519993403236812603002723140837483358413178075602233873374505273212343862052925066250114798061988055180068576259958107666280762715500993189140785090644073162516828573795416608622672707670434706716830835843600559438558548357260555877748874759380562042923444034455351827312048939156259127712276127758919042402574393870140914395656855473525845893724070856503540217240028624093995442354547496628001124597470419699293657640285245836662417413885056287051237891600315321338252856775604218375316730096487054895243891845689276306802699330722732008580012034732607660814252860677892811196780891740519518497788632107169275258642277757345369524576735933073246666467364669723502827056750308575819843825979330200943860590818085937696862321514329046079898219459150981267672063405389662886133447148044687763982778248143912253231013800148678765818315024842298104165742984573303413860118847215496079121902729343895999939479464406011999160415325738714621441901497105507129045661534086600536982642272240776745955580602185888011490823878845704393134163624915746235463724330772556986470654116462056009939366843800994239286300000203010519531828726602229264837082673029390944575459766897858978445840087705541405403996043276810292861074741793260428586556633378233069941085783866725157216780316821648160339532251605618011319489256254694983863256859863493248042045603148499373522730530756122380376969690502835786104228178014637068024995528026083064031058289335957618292303785006133599794846602344092380997061294365051257654361534676926318294200108450620771691198544314906561730272939850246163713439356919907803052743503023337833697850622130911381995708468986407597875972135924014257597910530674165838834443612108324130176832410997845380771381833753902602688256221621411272457473861475173187273666250653737250832763999263029813351791093887493942797596734801406865140526428666877123188709696901682114773517291623087482621622489705081747168039615277626379920549340278743001358220944639673144575483111481268588706992142854691104339356493813921515139453553611191314091786966927443834289507593475426286567501977789995906761988625784639939876573652062357089628328179668524085197956967398046418622591117873270319531679997160169695424355892693585980331946706315675803134912291103999995581004816689836235603664732301406204347427114464832759465609997971550319985080656257861384584179062399399300399036058028619115495377813074722766650555665483829539957447407565392224437113388545861660487669197285769050652566463295760857942927333684465577024636330802242483860326484754077713986449396302940747623347325615834538506252744280223556319440818507022753955717126643838799340595930747813820045773051902851291895570005255627255050911378970379607971461934517093501259942513004252720890808871107579240323759169060676016869936254340407969633041426431797209684273046271224753874657930771800004494221210693390552587275818147622098557949398777762499258846273991003376039047442426698829663130300359715448525356020248630778190614378725706281062427719564604790645384429147780508989214274434852236633897408597276291967865786742994178718437715389259341697862392543828341820369085694466558552591346170418903325566660204415982072228684730942723804153136921676181924319697636046892047210297636743661353141926507309822719587975266625172995910920355424094818816557102221551437603754173557977899549505596193986767777940769667194639567018294990976494346199602040491399722499474176510261705988406682167060163303607735339016160457919665233461630059206009321504913528706835651444105869249297737575945562507258387318278511070425055276298998804292889312743534955822419841732686884409253526251758558756138401565324179887993634014055657612491195263737480875623588244409580317326502123828168577981587254736471479690466180341983970067045335209972203499166713702112710427517928901279952458968725773638345535067630519381665651047941322714293165857945667433522062015601355098086578364229162570835585878794598112579576518134436792189798647788554948605673347768648076504166015186924180698653196967997686970948833685115890673034283236407188539314131063231619637147341595475941003429439675345093969516210866183004411299469548545551451368119704722830811445405792315408166391111776606951922432106848796427406180547076850701480327372598037053304463437487447894871000859928340328723526726862195886092399182332324942705302531787128309236870790899498230267727870327743925240936498892823980025196704173319246048352750331413163371919039587368333958021895230238908911045144767218897533103952162637974029152044860447586184356272809557341756006147457184763600940459661119284022737117225224216599572529526300520612060305038485282299393669755080046519260501720469894093645347418926510410287937454968021354977864804012163153220965701981185531288303160563496811225064935221848796015769988070624025897129886455854445558667476514768148090402607435947686972210694990404399093222358290206034448503782894803691182941422133372585872861699689492736239569002909842817990877269113130206488473074924077160395903480135596452497529150730330432167301327035541307405747179166853053565560475334826081936952200272774408040917351934302372954827962115809235536376645906726336282339042409064878577161413059204850876586493681475054669150391486355910464373981243311597213040210370007797933973873289241925008677540668353577226948037215780458160499737695858860863884178847420682874868166091911437767274805656808003963228644355719759377734160769637521323973685439893507064382916997229535545083130319759437499827503221317936969642583839144351402551061889577507917923585569686756724173577433531146684437891332637593496260732730148275432581704939382577533754277630101703248803200307190624543188255521448151325857189782526397769500181537240601532481146150323046018873927002412329832972883368638396328519038315664050818343747543934640003893221023882472196957123883117301068286415201966979846562583948325994290126599147374952025989758573863467624223406880505140590596772285478150709641094795745913197354942381798148715073800396068329072052209286557462465795717347238862208313200066646591124366926253403956490084009334587312606761733068765501548447547165184457681868776114772586983201867053465172632106638292911737809107594133422830129570997221956175321871694111303517684184170700092991698280709879781988165101848828290210342677250027371504342813409620821706132748973160242528074338073115363061525539395317002651162106976139940856522163035668842536909104987225891013581585526532284675421029169911930668177790757165357792362329141083797644933549676620739229951519286113769000240641900427251553141014422947902394093003098821259995530037064331305574939455711819721519996988032795768199219349547947543737704940047411977068591586919527296434972865866599270984919115769386247690196097126378095104166732094987732650107211072208334701788920587811914028856071874637992469654459534405584045748686215047989312368433966323838972097178035531663224593801342392206373358123463068684622598853334565538411785994138726263049018142969951792604816780667405667030968816677691044557255411481625373317282841340307670752941643532712178872174673609370704879307472027315441991274716434841076938614686947173348597307704681780013066849665468656053251024604871462216978516150592157128859480060163768228346514852872057715119558713448972270673388505535948657974578518548656368093325472402860549418138585164948498778441009941258261045649341336045304502532284914074248477426146010071860766004282270409541630419389422881395977159152288329277218718751545709595286998841261052050833640293664678519671157813615617717809521786869617522754390667303435460549508361504320485526613169971433127752714179089479694055623844378034690411907371876024246493801500829325019244786713658691183143577418589130592421222085307515542912682121216265851279568759667329169481916146036985733177447444020132692979132488908846077809534971510593567340411198015626467107330235444464536861372683437343085314751761984056345296258838267329237974475575181897878157785342314011807178500812505029057281994446730560143335450894315776367656642185623523578853414761133683342574617058701652550695024961970480247729016995700322456460432831415282460082269208068703701611412312785512018645719052586156528122910393684432284959870435959125556913329171054065683136073247727829463913324170899234484439416856954157075328096081865915217921305258087599746595134202817021814644512477336562221311927335047321838484757211825937248636060616302833118746072404966613558062703073586484150719997280190018843456288612531087746157759803807003232395474748201655812219353596282076424756752547408675683559079617997563307933595815837504018698746969046977855544415668964821593024695193177435213514530262047868039837689874948312024510680095855781353835610592674120985034100235029401887189945816805540245575076513535932125119679885600549810058490151386298854547918119897123746791265915560792070708494096152624234901932620214315375741890675705107049990773076207000019658351063843610477708312638372143829254022803394877968198918527324531428353038987119484432224841526025878125520284919279982468152905183382806061533406854223872836203327066189678297755914157602608487735792604819348502802674446038801252190552287015770287720080768326588214516459849066189032661147265723292651860459617312686558911051622820845768431902148885387099031882052427271092487230530691492703003192393157435326989018067642841357886542793551294925923350972815155766983686854265945525402500415761301857913723163488154170499274121960613063706592648684718478635007343902552389815187768290649969645430442993802931963291948520710392042263795436898511139961292917865157935868839742096662426079829003935176029329960997628883727303789751905852567805363593648408372701782001311332174390024182115097077902043349283798972861891987069132871856744757411913234885615368522813242394973014919384036896274832272582188296782516402083119639706058731671067345303261584755557758593130455669760847465361928482453893983418467754029864906669521525993127236226415453083251455422753731461621014428072815649004330034496783870456257547846366243732810546886585604117897487696402781105969060443242460021992902398268765166637511557074874345866665672165647468783295882554476545623000934362985711684018017592306283079348779225786503082413622569599510996265269546508723227380095948724310224736349327664135970758927330955892097959645405050246385147626180259277517289900385661520196447341627820058454137423424409678674919739697332700722683728862593944511661572620059359832417867770534420458564194458409827372015543174884065548085755548083522856425985022629990708961109441766533095655518447523387669908495501014936633187436705694328767137057947167521966817593266126280945432604083733044749223919940441836260425703061442985531106787843052623053463730380166244444549129408099839220754227374482124375354242784305198995730600646354708903427321089899292792486157181624998447814682855396429372965790084535448337447614326395719312219494542339972039390053650219166250455884517521168246565905025011623609466333749516483203527782531166736202913261045214246493026916133972361891258032540415207308423392920596322373144526304742046885599744567036104133773985914141357411472366028707415725289598495241935264909945760446134335725657417558985500540373419959859179526692229514162705137239109927198367213760683294894169273703038618547185757569923068459994219172434276151945709417297118326269860801809579623642378414161572330842139836746895596975670853179077096698937532176545830112092584462392539050470011620884120166332461150434224785797256245081161048527214613531480825399577523479715141160580737784893784271724684365363302643009807803421963327065888422236483932452737165356687168658022122927862008313117508791705039674190352857966816879772216651427572141189199635489036587672565645653570504465812631694498630235656283225543182802132749474217365145131266792973677896559223651720325277013806686210051426939770530465380394208000492311338270011086007533809825474671908979265375396223197364606129766113121642789986828488828094658580848676813962317405810117802630672996590309782785918168602328658984896044792952354315761827626285277539025097562891029966427186868940505422490097500653269345069478354402310402713736027958771039995506004704433505985160725059147682963688567482882429255916362205536247500194847451131909521930511078773594081597727729172811942620401005167924641141794444524342355947051005430461303838525652278714852589573328389005302008929000079108756494594819689350795778216038921768763724878063169968793462649969909267679525756006744402286904182670148896277601876393685812778842521944795012382835762708163419775420842280476221348855056848133118196597717106937611596747518592041021894942909630239961821091846360220935415997479733339113853065659330245815543349048808340170310860806435693207847380445672358335390444143385713979379099323503021846877572650415053484823682723729610504471087148770505420199020817927521524072236731399525765603658094688923122935278934487627442307455087667246535905490208287946949948737357503879958284021917668536779649538013495097734136565667192124444227819700106251369106121648331018948019237626599645423588971763957090817370494987355133267482643008385134373884833741705373613761262077019022590602998679170905465103345317383455625198024678229619221040597388834892271270722135908095551011512165601997740358510205393317237736383677562977558947588670234287001578138266440195246990969135417379438858600590685357024884605817954890465430729166043123314240001541986477523998546075371599045537619996799789383133681135225786298151298031439045199732817818224441838923677298729164652714357837066871025289645334855739661424676969899009947571240328223483798448440412323493764060601052808834949426943799314240225095261539991636588668737790708490245363428229282800782403879098803500129590554068579169347176150915192320951397293288048469722472033195740031754776300548971997652242475228257613434495080301098002970392127164257861455227014779841959117973664443651052724320796261191401305691293623854901951750602781307824290728018446991782323698516912421874606946591339350575129736557311483496440047916421016714481443478071699040248139869388423693919863447459964146274486351056448369151564234397559152016804253411047915137770944855909436417891752723482792171430528284935921825446230445277506855187681521081130073232650699520639171492504567705135708056184010474783486509997572834225769257560757455339177034215154678870902276456300053675041761608640356333912997857272313752990057576780816369629739304584359832818289669549355654135741994488848780072343680658751497125256827959788842101650758118131205338823085022175360013484578989858812142744779302838429944053156649890869167080432371611188008274358323661954935509541423937276342252123677600816233121481900792684387969823430666700446248001689661147029427655685095867205254310549666859315749491834615231988773789355580237454191815028522220820679456868998000759279674504805675884075855216925071019415485351587010556960652179878358923712610888568283180352879226094152570045404956951059572613622709273022481213488833777545773136361260464909127682826175016191873407890762723701103176280457511385302467406841339767795755660582314464264845991409741344440598548803643708897119859452357691837800952632111402550812278488469437609258882315363743639250474538029956177848262655179258282916459653286546442043376317888375214304511651984398436718580267075597335939500777283123914583714722731084028307217679574022650499896441765167548655059783456406205674450282729927719752381270838827384108802145349762595922193516144787740121687061325482253207096105389852657704612662074660950472462857283822637800428861484021940517109786177989472603479875017584907790834965366518644975557785306679218859191252631919622141637280030114658984982233505102165086920052508826751716256646765812382277787035039516395917277928279794952211520665672886992048620376712421463238502479236587724115361589373319460519449640272091120074072575676356868008813341042164236133039832322324619167804588196290297459463023096974160696323944888328159320328944678251028882764203668336432186287395574850215043959074661999087698099985896449796743592431995186113786832995852934803909343131196920930420249302928105721272223239296203847252964022907437314606147693883866740708191943722362892169657220099315252895272749643772868175164401966204796333724059045593200621432519769237287181024850344382276949288427933359395060522130531374741927519792392184963818006219148908602194597108452725729965672354579660246686236759700853303439556164090579202725147242556407344807391527293915253571241342271388647162713604362282009273263541593244044316520219424188365412400605995725457287293741789628566960111776547050699969119977506109553929793862224149819964335981737850774675765580414596366322208638958086155538177863077291677754738706336086651644334523860608981404076727634933093391471376085957179023193621340234543083678163497322300632660500523931198185386546323099062693918196625456092714051718307071426720179249282384205409522061391633530256300602897193076854956155934909618604401131837696396153927318732686284199215412291639748032304303596011192997477090281545263093736054959260594327447519257537889855994573512871264448180703114163948030583816188842276611507649405690080930855336183703151322143225682174196255700521878380824931587505996243458688794729756589120065476374582676868391001696686030105775854414598222237771438394146253031710109046586635646812623608500128532769733700755252034076497987494394798057168439219527167131308946979488629548539856956113773283030432284625395945941397462045437773457622655279006618599822348592149948964158857803786507155335850706567106185761599995715132374909180375837361982199461991431617729035896131427141160638064397191895693924688598997062752334577836872290897156462112239512481161381788935312498068614462629975728363854840956107630013252835893815605180501435075725390045886660310315955898014374371181836876780537911673186995021853322167235597644557923029747896898331867749942681741939827717606214694675590770691673427887466801207684434936721052940743402652061816678678363218690213790375279169842648717503538622523434880202281629511459542863141794658305784057272937933574019891469086437719873143705144946299810967570205345350000274034534408502998172750835932423546468070777734612052858822130033834814047125834262639150143489123038287216127999778320382440839538576357896640181791332680005935641357300065140364700351312342545005233225471004113023587396667819556739082434804370031210968287175657536529460782403026022916680991456791522686349303062949460586718857623120411431766581912871915589369995151264650440352714772123094074645884527650807466699508913293201637994097157374934139495589255720565249013417142795725814399637282666439683415551309434106987426579681947463432929224974215109647822138495441542533305306594785662348647523444022915462451800022984604304969331019454110901851914190946086321064153242515882077713337849043166941783872494655052460248326197907176761483714022399071366690456660972496533067968742818392819674972740840185869967004478411991696982879209398942355614656201569252074158809800474898633241468820318704889106541798239877522694864616588808981716407561711564609529418654217902411517267552237646087344020176733000859177719438827049363518927654924320362620504590535515792559648231340071103988473020257486393640039924750762660508636545580961083208295190938890454180340345631717485664575737301619235275133373823488489191511602739338499960416801893913811616000321738492492541651530142120997240331967683658107200038994553963745018812348325086415729306437027651530543670677311512562293613353231512357263363919547913440857987942522846019990624455910443769761430486156561058922297410666371700277933382393545659232370397626869027178921319121374328646060232338982126712137059360512281557543035293154280359552612789810106590859512158090390041134711979646909281216234463817120408536274351937193607801362281719954095156265854932535589796083634058248953452207064521911662095134407979701024437542047940649422732211332874672204006847044277271193985151704143928423926722461468218119241605930655141028017880487369857054657196886926057466427947856811700709698847475493268732550379046767627647340007335085425237869379329915431705281454183531438265589123847344240919925931623163903104735445904213851761115110803651151348638157271608253857734968335817017279130464456367302477158905702709649866060438791750753662228245038763425939844877552917368355773740014069195382305100252327501640831954883424175894095521206358373755313283144855085005092082934379723744794089830834514210170656682367125909396762492924977041395411797454951455005745915840536987787543179688356002749220330053522204123920690942477263158237477807674622349891140535875540323349839748076891972179571642912620121741771391974944095547884298315814458794559650366387797481928725489335911051805905102756392054208415470001085129944358108671487834661417745836481568015494799403782095087226269021601882913792585216725315660685920907532610667478273435307392577021595754732772591670222709740913716778951894407039726808894163881723229939393751890010585213563835670727743378370553894557575260036152165230494756416138750463858842870881060330682706769205427750002898004669786422338137459140563963522138434382986396845046933746805332346264644973095315858076240009241562849123754804849890776686616505244147552049766384654474550821557676568791360816641099135478278236534216859763977853221766355924230520315505956673466025352661569274676816072219262926373241036096918619168106464448051433681937353269789322860867084981467439242088033952145156556968573564146183267561947721290468430148388163946020124984961261411071069312455335699537405885053942925471877211596461310603646485896393470670526563797983680102639179313902988796189511946468440834441710924255809315530882410712269125147466541940424524410292243556837460594846040904221816164344317355226530905274215278234705016569613589798730516120479915085610292322509387543292760486016435219377955345053553666031730440063252302907153430178531259905556599543200434689278455432086453382308385572011830190264034093098545579063064060619839346662683656210290086671447976199826114765175181284234029404115107024369583510508294053831947288766413157844358899539098000026456879715962091727460371619468041952231631148270690688772573390828804883307263663346056686941436865799017491672313734246549422819090502597610533189693631591618992661851201265670340980920705883650611606514333729488232901873054392771800416704649619693531803002159090553370226835349734739992175900197687097774895319772165834676862808735250024644829373283606984185132197483188105121090581557489322520232365617090785015153280354790949650772865296756677548952846830249537832909962071732295605026204048379608228268244163240998172164781151954504801988607248498705744884298904687173483974417373484596939568586051697075183770650813640884355715348076594538167201578141149027743123146148151496500018220878176731227464111398108245305073563761571175021487005880242521602923609735300390049320561736684846669787844422227276421990876738092894495476096430147858930144144452092188265667496635163987257579633533016317160533079444325802725594965903551960536081436148549510673329749089672423905614434328500217496380956882495915776128987165469455257314334569536103709358118101329743445021507598209617802740261360016958865499154376356989005106246778864891886424316478304298898055567399845749347728875698721980477424099096220981867953493081094917855409889335912126321248640091453767677320404438478959348031292292770765595191993616397412492651707578526136406076043848054217564625588230496894821864472933291370724578458684437984116047077335165580711130101065248055306479079254668617575169356651208043777410441632800282010441055212164602753481011946669941944027809689343206585400734973082807772329434419052614802724677437503949170109429039202293780915339893806115556435553427923670007633516994263291617214842142871142160886235222313455577295203088183145578037517427790540686947362968470257163695336859208618300693463178892974999736759629908255812247616823509287942454590510285991410644100552280773555978933966398057340663171501393169852037718557270888080443512226237328321024365533458264949495025981187188406348073528107665621692793958730433448418741614774898375774012400168747394514986514811103526222736918659116539498622812583973588710067812254332508069155304113114153861061393571970304989052886038396194633999396427909826839302634002622976315724262764949947364841549786489319585954072937726305872872430140172937915564321511653038575908725036892317624086565456618248055702992281518561707532198023883589619410906665052442377948492963905083826027040079884213106985483985540895086013497102875292410974984725877176006419113393249108533144808361786198897434620776881666021003217663197571818472042036223934311096786583504431213239471521654109386166628761291320508309150529717595599723479009657513521848766034510344002188110760987314871226811229889693058337813549885343840749036856424396189081604640047206058263398537584445157933312333763203620642134396152656329910219546849022911426400974173941304837347858764357079066262886753850733527186867201936918471340962049517043863119230804429189014178902303399185217763620008807956036566910341817956476911107289732508300204053193049417194061085652235637908415982134112063121029143251405117535807960425312303084423402801835034784561742626209337376094731341816916664775011956345121175449434849012496981058409711479437505469866794236193940846680802511499730828944017982870389457257070773258436048060218844999284976717013898731623354167406189172620709242097511567292734353330484598998081036715942142986844823913734455235299084254035755091216489107695464718842176268020845566984830640673142338782762890810512416499186630333762698439194452317808745374986699302814252186934132638668540914894237313499003481218998572971749645583168402719553395624755493446517908971843994752527416751354076305050973025419835973063753127431743861119361386384066254931988521052674045917443841468015268643527933960523975855971212145723702076128241900079121168012131648123303079503129390869933972577214408416567142072520974866231383153027271164196511309410934101831776411746704044642126310542907795287035033181025538037146636194963946251950608149820222557542264772919450907543338792175871499412929302899721257978616002018637275679011462948979410556986572826738273341738209158557357034667886132265443289295786841801696741225868579504930427633721607174252703755437023696720686274203486481570992248287431551229670499119256309019668280399197494236154885355562156925478642808213525333852141004018129242123254573016812667001227527645694238999732221137488345230088644214059224252512222738254774856252409281796220810818945806179788088456955496004082795461974146584496833415883701454508515550169300299308862449607195729681273743519550790198755293184396217209637289029267639223622037205281952361996812732765584633051912801112854340573524831995412227796622570510972765508757860771862440526344190907074738841335824725401912006673197146594956567753605627005939992608458523244093309439042165627711867177924177282952404927254815736158909889131005827814407404981088162750457942595717146018360512733789468906425748736934222315547489192106324939953248005022436168686839489453890925386691853488232620076120849718353036230217384485245829815315712076525428999535498935818048409910574705757582768399722305256240678934467664029413137870037945567781364303726803120235880040472049751724959717473412418046095400120620124398789171434981032066379746179785022667232305722418971273191064737189451642210246062601243718916564108332761188603660130951280187808954528003995101840035915538346411073651091846715699790191382313860720564978149002686898681079746600266582906123507182243427120696092389426891997024151997083919485648683269780132071063702660093828737371558978571691257902808317108861143655871668823228060381080557720024379808983202894223759758229001362996210187466203148029280251278307254926714006324225640433129485656366507480865412587819681601739385203391063200124795815980626807494265065003622480289906853026833001024587411728609286017077264771420804912078719262289177277165818528757476786658108531033948300220891638266666633713082369745501295488743781004365880574319044562742741573536417220397446578360213537690110082687221199840082469745556948947485595515268460305430949550248297258332534346689929747688189900362125245564562379548704984340104300217107359058561902430554594209522092888066692780277828519768707249835393050464345498798331713661915916070721376831895535055534536079011633167961767667823182239340936389998807826185799143152432071505717331798860562657370390415403316779450104681022697023652655345298618416529430794246198663833814960064882964330589747251309327427075143433118411054609756294838430997339719295358822219872935470449652679033285833753812846864004914068980304086878889745131507811090174355996519485533000419485735039152245800900430768177822586191021894926060121022097109266403485646857942411561839309274870070104434660248608824067800573451085825599118541667980955477088470559301288818152406440447639395948482721170712950418182152063013644813317267500367925493997634843465657832688430134619243283865971824991088394567030962774779579229921660867723120807030322965043446042450158974300722104310983646689659554161446591987099400179558037167085034823401096745037447844393626320273430238690642247192058215185105416409869768355435389748766734795256436591195771527186845262643423228566422321349080819706069684548187588222996655777262776016386052280886822746599271171497002224069229807880908920125165968242498113819903312146167579664827696260518783067919561681156597619199516419483672773386598633830423348084434249542706665215561532002798818856837234008505014684560569745033989003457354946189079095970240620113577021563852800171640416659154838836601424645000445986408193848819235258234087949957038653260723919948695106755453724039692162330242694487740271180311059720360960302123797358610289182554932652587764055639416627019893449633742859832410842447381204672026490406145439569547757971973695024082364519378184528836685270835199820584890924754475274051119973329969580775011401607996246591918910313301035729244060561705895699293722944583225963992635632313026304649432926723687657869603092032688843738245959776233036199874787211829038029141183046996266213120065080059012902697206637172636708470927878209267468979310278620702861641425751473780415530525232179039208773482829438446788808540259817061021041154514271780621624359610115070226382433954689837407946305450387337875174588589037869531275849169447214384089139098499155116665137823465770719940271216670472238730695924531296712919826688043787561447065122769795849057636958057079899914606754588081070249665450871132595205358237512301349719465101080211468185206485157573015122312052043863053338363743318722906723080415935645999277677343010143067592345938794582247415187575558113904289999141493592344057210012343480865044948065049992650638741303466584109917746108884545802974946940535775448295044440421486518690166256689410161335267892352964269350984722081086580659659734812923001281534066646620286785076898619177636860585861230228923146846269724847799036026189835879188701160017740434069602140271826510949368672460137045234394121411696036770997260355774718686006918317413499955121634889531466910602489403886497075629547304244775053561521296987550031092339547243065569822420154888453178948384110297454148424132330206432115677851476069688576149295476778278918252018798361342563677233064774085409079366408467054760210040448962667645829112994160470270763413408559961413592172709376215586399450905208741647458189127986549288206898368135339764959477489229936165814135721313302236213617611558650118363771709341405617327074205624338089815763756445316215000429067914566775025926565769255990679348852812827425768463594115310898948661990191691303999157457260074263497503360090072320889555653363593746767056204339979284281259473212712105696678329610415590010624485532642461549627925134135835902476009238954237402754243017205275796918318406751247536379596725313946204690528817667818506529099408212743819640288756492894886684274419784839281840330214610604724158644839659517010408344849700405345795760659861156345003313975911909735834832411065271468596201102567567289142615854659578272937485153605397014010325791363752632839962533489057044559123666311052185902651609349509229239724399147929994550934876206435497317489234520474118663189743931662081214711655064801286271744446919459460484285866706425153906764729096299336967838547606386798415862013032995263236944939116231741224591954690920216557501742883054769309268575041976450026379730988684592791041977360049455390103533721308766509434399738577238672416361388928546890860739964763790224456928677307478657767936040172040111940551665455980661850793529514688779359820452200683843294562077119023545768705781306073343879344987139558342196652338980788791734249109474961254343899389902917805957898600573751665753883149611758628279976686773802795913581340320620801492688928856532670736309450571921775870964001190652896057222701662013818554694490834002110758711149578612725507600643206442987553583271606130895454748046637329615074761458144667721598543213132686572486547882740440835954071307917545959116139327787291118543934842682478632701448656629066950878400835003333723018566673257894822891468249897784101111847980973538363171540482102863951964087774993852577499555820655901307704923395159443637677445412876023363731333937719547405774894274306888552700148451767246880783878680182900160460535031281518892719777907137530211915287036042118635522948133028807063538606226762727158596901849586009032506954301787787889760676586712756296577100965280115338534544747092085147766929176581380538233916251590747889004421988705931897907175089417179292127483972623771375135900105337588424268889107792328726480618078937543335281163631854755815286770781590502697613314444326857578426343807272670644295229174028667043008423179154324519753181563731473788159506131839504736244338762740064113473526909468275494531866734222197069606246832169014111533637404844191439393447850192693122404283893672018224105555375179631324274359869738687797999012051208636804424551297736721815869370764261687333854651548863848350390953619978618487825071714755197284817883078317075177905100150605161787331121398187238306373477122978129759008185542301379322285661584041968242622532536810297039988509927273561041830249219050252632556257464365641986755024523975310108033464512384678055931337000880940101096919290022578428235723988394924738701290986154452404221053098569324846418114305257528133762818340168459131888880040310206502516477606368710387361440298771158435795432769228870237324972673696891013718005530845832991026954280749726043467109423976787917382580691360606911301810821550980924695491282632439625854175495279229319099478708729280174986275326372406125543638211205824298254890199715327610395554439220827553618533428501353074251268638157965354842983702975336808293128148994131224018990392973333501593623088847696259556036568227075473864291671904343106897707367199074628669449277475785908926699732711417542448384696738175286269794839899108135407331241360453820658292206655070011983662938305051345303251584828337584147710005387703388856261368483877621886285721149052594321402418314315383072981839296351411776030000539805874577553577513241510677736045010804681611028106200278190599253273170960680366171991451363098562528994563086009081206943475036606112996008795793332466138870649556537869875207736962970208291140220578965318108521819527379418355754758856015484157757181938633140500625247035198386160087747542919354723236822481314079464008461366389835913402297854951780336451621118861571330310676394521217127776296659202517969760696628581467102971836218424556533551461660116759660579247491103137511313320915114180959684061688834578537296863782142491962984327564999531986299205752616928345576851917628925284523057712356058627752670314953291633645303610537782133818391479091543861093800529435046163992545349733000902427762672680775304549584708091631066703299638422111534461743154396722856034468056833081052751854584378743560700221907750477448762243280685775395645119687641740163261253189408037841336951768153664221292788891971856144253082670124541488623389580516294549284676411760163960748824857050540264007877115019664807213078762387678059082213988503567601043402022422173842395921091541100814397106975007705591801064107402490751294930550757961129353001398044371275531329139042057716581547124960187679581717170184558227394070224040066653827749002705319497076907519535589072226934049485258896000016060088148505919186161019416275565650745247109080420096780827679310074490594987711650645551835257148351989765037597734763560957653761064243665869952669049821448046857375638533293106909480845552895418805855730421802005988853257366097882288426201357697566472493366673227104188806304747634371388560576502389149190601442227968968270428212713059768608537413445459725291986115757622897498136530079613225122268379559251979140769463507156258322406264705972445297380435973000722803347451558624870357441728934330081871407179957190252641560885497535026160229387904857325442766537458313842865074454408187799005783598608135012981692941692322395989317624639284169597643221623788596044691094109862099964693269395434973201819563791017673299324122520809505185671029696135656500027438091063668445938711686345709589195441798106877602431051869706952668637372330748347942158030535140971193728281707899253845306494429516325657497003930139202684276945302286074248664904432238982611628637383387333145875499718550502496121836178945030175487322124326681456812109552293292184734274071828608501461740997671178741888470331969153097516635917330563775720552046727842348747522575969680100896519212958702615101102901072757565527142692721552841848164992448107713622349940919725264400659537599101618114480810361458816838970417329780771033918684440315597058553813588429187622918526376414563917626515867580497691541926959143537868835571247709734276823409438772369923321283623727997484193739153299086482988793929713227707572637567302503233751092603021606764027221711139594462340233309597623493465947498926317457696957481275996236377353787675015513001166101960564757962542877474218590363711137093620255410915783179214637824766746467910796109675580316679215084745430682843675587661531726152179763602152007848086763453960342393363356497249140913785503945282280453457798090542200285889722577662454947286429334808103113072637230207738995355076930269669581441317456596348399076657999036894828396445833561125806483362515079418784452095044569887466024743742056511066265101668835360927487242221173202159690026886408830354417020197432081239213852892928893746675795048499308353600332627559654148815831172631013362476326629604310471170030037615885852111746252585383751465028235443505938512809836758998400635913087525171140104261866923011428844035055683136785858954224017016475792443022277135819599246480062032986903316968667792042710342407680218215006000291794511612249597963861886568331785459658528820709388667148096759324106044180068445496355568505322775864156824999796875249059666263751942503838850087943976056973639207490064516253725790240407313191497573198509469746793209941455145535286922213644787784966763995779102377758292916706174472126172581368312718186764808223026677554182050313952232614759525689481011285593123811102964384757316151322588383068540876507345683864222117477943128752901963217715939148349458656884717583347518567879095819266025564755033581267965600171124307119898293683929573418927641937844792912621667301832427838245474156854633629311078035470978537629432293384021545651156231685636931449595565172716271551426663651748138359096749810643824681923116567183023353234616147748379527637951593501361595297409824634578877946662937105113718826293899249004606480884762483540147775539804440188785987277429726095723146917091905225598352356620220169373731166663354579830073953873663588860516748978415862281683562831710272396424289161658607525320091565057093660497163945949029852594175090842450865057089113997276766005763405541866602609863728556105744960875235772046679278851415965000456953813999450410688751768533762107287561326162082094372753443987657606444432238983259791046584046197619447951272778444864578283261360058898722876260212807281999841063116914638611975444438098338915278068452470176216532846929009046351858889620726376987261677503212157930877590085705560083079994494638730579213355218524166605564936318849551805876527655557754189714203932644020286839252247251172404880888313648237575884291799022598409296391010070470627371846199747791857667962887868609844479391754265015355847691661281421094259281021497041650133307435317516677645385251183979559768969492552686631969485066581782765022666334704960309419430539594385009536768797489479039924887015475406699574729908190438123026057599478356603650926120447449493730992139186334220316999810163314949466093246739781926185304690464570034695741286868011759226501893790248797247404519246725718032346570018544695210374467827233427995146979905876060459364303479532976226664462586555955182003525091379153740171320575767890426517809085679866448093079316141563699581503098308026301185956047048139828507973637201091256791715942640884642172262689124403315034491935438511352114012795363369748207722197508565002438741441388770318215538746259211481338319066722018159207909397467586091098649810404293137051813607715222466011921653735878970110984993923871931230873243520907560466615116062501834419963410223811929241506218813521222986464629493312832111342379968193393742432557454572011422366622709838021438518241082917104222004198948434209504119446886392291887083357810147379474615179988996325707651197250495159805682815950469247877859183925436273534804650264474800557764140468927606963691768057728888463112118499908770471182751872733599223067924037913657996341272489897155092029684517722381983395037704074515591116949459409372201734931195556216805072433539947660135237362494072226036904912601348211213701886804789200072820413905139854825768406270405057875799162336070224690320275646007260451341828701246963096502040082038827519372890398121329034110972204250028378203313186031322319550205265438755441353612518357975970763433913948780834903872085916655493435985840676459215042214611627824619452340338099396147740018057259358142630423587310464394681220390600797289603952796691351125208068349476229945949076059391610690882075991850049035223197559854141260991265741264384600964803757656177169486125866644655591968620548975215645174425202445848854299635896395547825576990054267631677098644818742740921951780446924321368833149639215122066024156586077763531999169858351797782427116458459156008548157297647035103390423408920070087369396686070913809553647236290149185155741420746046735662590958260487462367778429045707721251768390165060972583739704756834946372394243065199411383940644136133557049177383151223613811072946928628553464262806682867974627152985703336998706439153830592905534597878980889338579479412690424278782920382237445153508930366219945781630540594199409770378442126237869056771500234011837402340063337934399609910049543350546880645406674998499920587509996227593766563802252075409846546008478609594012982436005935030580953545663982851299601378872959679371151778247310581575298827071451711566722438724846320586689772114237488467191849755028666878526805497812041231993331645692395139501067849632260479243652224192682639924243383820951439091246829343363723464640023709616207139095919991511598070437211360747272895603828160354018218924894615695991198460853464310734814575168514627375433016327005746240419316980031570159145649007248467137831059287139892050750253059286435707338049735629677918227391552881753733434865463274488740795060725705236837116227031256161317069261890535735181382045227137393593693611624986204133288163851621337025330821914967672601884833684430967103767244393802837739976702579782757082590845899025258455783751228145222228721844976539211220499305205503021672453133473770231675443715805961994101393259244521895790375190409433026240042719429330920925357250800138173749092304008934728798720671682147893250542344077894506693383198589503601946442811988715490990993530214011034706498418847288419434971958229111619064596061664865933348108013493510375746897962247360039975952695268238998107855139605809069649820012982094167837811468135907545234381476103484078299464623071781539469423689515853131734030187210002305840442659559061830352306918302417543524767277787882725704281886473349946044062068961517846454487156737336062645857453059381110558605712557712914325283499918807270837822167771931661957381987432041607207737155072614785851352220287077010519234496018561962955347554335012907849562355169616027471507624583707459120696984040610397907839759904074219742332731239861267208649134584116444688037124820980857957949041343018021933292559000158839328541781343453512076318275136120889216173444792889103058716096898409930793868706729732220892738970061965286713749993966723420615979539473985754557557093369712812727403722345624852395654108251744672144850589058125805189932769367306650760540117709133338644149419394938134429853149174920720421885960350448738062863180334299472240484016237592695759864098904715044111214288851274960407760391489808162020591646955029593028830545796507447620994152391217098228849199915620480308320871790512347235622216103244210552455809956972579054757582486050258761203810699379553264319118183510722431502156409887207163075399086202483553843573534454774840829360236074288556135355362376472510864814280471639824564873379877994751479813237662378041380681977610865982703816742202055049105702742806459467189931289925074654864688189531679062111048632310017741105572641057392776010301853355357885654257328748687609504650631207801167290722617688351007636945611758207756572584844679680932767914430060195948755619417031719578502781743940299542340627073004204222449139516297575772148189026953318350579218528219562273265444139932881931360450522929093860167781971665673129169752589870506778412625804540806050808772690202190047368259142429142595873988642804455880890136756761782466918121568277935676829092969191588577823521719769243589222274449727569990666464897465435081856241647625728115626343456211776144638499938772540197047154610975015388425028557972540585916683266020795097562117645103252852150881088452954664906566245571137988821931420235543436875573229815609235986154289986047637006534086051332095491222916581875692309912261111454033207619708429848051484126476586585645903306615392913842205830866319236513431278530074394638001426509466442208755334660920180820364586426486703943272915433726124752269162033493283426511625956813242463996518103389278944666429606240309111861741257071691156969403035258998672305192907489852050572432349342333741544367074897355926243850896060298052212080170875983812115444410435139002056710473584083064560714458030460197715015910438334670583132969511842952682363825060335068494048481423383721149671509368968720104677417858546837315007677028083725608750982147826739807762182729948335120260045133301059559062770643053020273838916353739952189934871782979537514012946370833462061283138387602823155460401909788885959405622712482899329825256146349879813928241817988501980825514543900197922234094429750047868656100748290120632948089520508986903656330888965874197779832181789029498895398267082571725315101734306818149300858737138286473548347386963015161418254412587282661345103661680748460597666154588034203894381033739459493115636839362873768107822736390951792721674705412454648724725271319013238290500898821316968901113788910515976487563109955254722961817860913532290253470562077051349342083421981189167742983214685430121839136916437689864610373272950566036672487703490539987917297495340822428453160515059959613368846643335460270597027317491864509975570468093810515544019867001892805248279707175842487690519352981433102631494897152959177952048296291045470019807652773318143672291813247577715676634305448320691031299391154554022625874261627628983643643547323670486494584122845326884932375504915627482851731039412771539044713440742230564750295983681790751358666083388256047877518733244956643455288064625223885321461217348846657789455505087859722025496544168797136041595354292211216334643059626097145282042788935842769776267189526385900793749921373475337724799827685062594151608242214810988738667029363398073521012351467434334183854560987217672124074581328012187505764376365294422532363314009269329479333125026198718961570822259973277395478429205579842336337885381491008148353545866561519455927576854150746469079496332775427070034438949724206129855916937779625667696061576664030445681576318627084410968490466787474989689631902280452349086559095841546673129571247136553703271576790189759287412032991006323958206540737806176463688378800018659298991754564240112866513057587814282728578534821459093957174399501707936403611680931655966343921016468476471511099744730287854950147642315110220473639627200672950085065761208647831296679135288254539267777957560156608087063364508829310469051330473460701775563239054461118978095780827654451070684966930208531551582410501860396291080134035837517892641137536675334023225710756157668851674449447133816441358017732712074277933493173919614006264954985741952527664796410508799339324757624448171639219183978610349260740250440583073701394172722201449975534246165064107803772264634928462157794560642106351392093565256462594406468667128368932554424867632601990843830743487626296956417945515401879951952985278076296491126868127903540313336949658249414685089979510454527524112328925426377189514955879316223210202062137456007556720249866436384889187797584871636508915608897238087641609974280429964591809831834803601511881564044543447106166376753087010859414652601979321451428466059394529098304074747681863779842661892432001098777433208277420054790704017751503188082307626144781792757857801913521227585473613396373696944397297802792912841476463244558540434914318308887424547610880047730994349908935954426214141307903521327721305997354568661607889087714886211535222098550231519589657344421330811878747875148937994184749910066247848151517687592992748422984824290562600774536284411155525706355114565276566210069837223083661595957595057291969398177607043879416873339270120805857862918220538527092129859293154246846333646690351241442098364226334266060943927409937778122542749746372568437254213256935607871231478618610722147965447125918867882789069703337298416654943109667782977472635380364617196791080421692971998839652920898810602177767817126487400938541885934442599537198002085894086481403057382384299985993071389104549319179321392604048817866109935075833302017446616502855400606279834141247377543730540409133580720564410363580167288656000145844330863047482302263732781821699135104148428761603550761029883310465465489226824585875653689429559408485346503538264468727621638149316720151163937961312005051644725467933811309961959687598695817781532421248707259147836335057045644850289215172135660411026336581913727116931816536384644514751809803774010422866882851653462934723150142093899608619795474917856701695167392666906287677039167583206177079069204546375341669487587820923903139268147819512157408061511693979793721194442783764557248775249602434875512068525399844850942145153167325085179731981011227089112281940258583685230391780697761207451654466502171534043262882988663837202526320576636318946797386026143083422343860142268964818318404244608117164379622240042694904719151815549853784614162845927525065060742703715274685606314640241020994255191726096808527563536679467255690801138035178659554156192960627199737533431012703185880287684255795867760059849386917670915214644987438456499362774327253383213464664672582270834194265208296272830039450795441316932275478926275519315417139952577815674341201612767139524729351332939139904594277964404258687765947866873556813816776877258754580838461571853546558153087289014938588806691628978685113197428000216776111388801852387625006369824125125260855999343195221538500028747030991942994934482942862143236668203766023795567631479577777230082501072118875312952806318775299376732073225747128025987875084100612946142824136637759507806175513327897494485706669027576712498458791066534428145084902568606504362538940630142351547732031690522183644624240033499994395426366969644303895493600970894492376088515345725416204093567058700316405777733531462600510279175156604782171175901079784076187780168839413244579237194282439220324168431425634026905300393635014843081852076507445340912494250413903136034513166082039126721083180006941307294975687389382135539280920563870009089728203444633647252277806921146322557131932816511685405008952400581367576484555091199847620843931511634302227819952046274199770486481986025964662682445799885005616473432070290633428123932610432299798874360933654133016270757652979174017308159299080221111819569767708677436178170414023440333147883022772930867488439906583519980932793675068466737485918278441118326393576343908677800141198589672052190222543758840291618695467982418736166738611437429891915577830590881360899737213137921580792636279146166304142577034459353314949448765326868926252920042169413475365099358554720149271964765600589205183581511173976809083185292900074310974915675114492408674599929596547874237026671236007318237198623478266889458597811869383612326041500935214567477333218835627423152379051323404527041154721344469887397391967685946857643236877299156171746800684849368359467220607340347840303104475915310067547494442681598823136861955971801897428997339473227329838324819542628218445116886244629855271390316530379401966438650840103445785322216965301437153096314705076414611211178899991616792569848124695951300363483452802299829967890968261757672103642331973605928452295712622936726248711568954086725800191726813414464265048749300880473886903347916408825145793461683279476114306906264665153353672169679936265557370642912066665884103216476246072129758819713090109277612253408111736854055029923709416232992918283327493622559841726341877386426476953740541136724841267398130186748715871009289734100857595815236154085737903770764119158150726464486516533993919811350699487767361386376919361850223520509067313148689912764574826561069260114213807299737148242171743691409281643741408169530504899045667770016000104070954077234730473854614639727100871448082092580718671943510237801732413015847031755678567499702882729856928701350495273809576272414037153514619309141017867775908872273860994670167016162117472973139563856619913549806791224739595709451254435693674485321793825717000617598722724048902739870370930135291143167073115148688352259426726409522461027816678947746117763044693327791766984851785119235932467290155140283148826742480507934889504915439220969391129728055285932040618215255308655585197804295068885895108164666947000739927733523360908757109564085071753066428087842750237360426994521297235825857809079187133551287187369000930809247494395676776090758154896357300033210215765257541001686612625726305102566234823916353875763111171552642946495182070542376316790863127999002679665143490143401837608100730905382809026282390424779075737907398355742649368315669938084277922916994813412765016364757317719926795749352635245135774393116384630571147425880875270611479431574345704130871710172585591185562535162995948790055671844786491856533894789320851059701212370418146694390927974245944577984440531710590720150164770746235311291091336571278232095752707184218527039347890445510256895991528171939267971896288921821398032795506113963718678803699787373368570890894838317658549729196579223717390353218284364499568010724488617736915045660536857495924153571328898530039001043761271167486522570077712241268461160521148053256546210283188659965649330682951659156673878994042517438016089560319709430583804966353804202367852800454875699684964020322829522601222655078971783989896759824979131829333351921455736511940569575530828049791447396814799799772809769672426184062002470049996047492461546694554632453212368198954840046843138154351192074036473152951101803547326246973199894075083915244478489434037068774124673028763571010893961142710040345273849534180721459067844152090938487411825734670408995517780650038845317833529132370828412227484252934870587225882457984030162335135089069871253013427537662418764934797405683566737955488461459729950518390723295964758414327524623631254376165223883269510773982674407262450683743745017898998538546123729457873419704513749523831824926453579928116046568448113642084643939008710353618116121428549416833348650712237803323564354881752616393993914103047476727997577427119713957381071814875432530197640483352395141283456586888982316491738018291010886014327615127369341673192070459887360866902853933230011093968254997816837856775105621222877547024312295531562455251491309685416583185356786377948483950532777249343352276304469388218759259761307865565204961729578195402698745615010936762940875065458773771752085648431855011619766439131988244034694789407041961656821666061046431936179583046774568096410984653431750955436238567489160087014095918797551428502965560532288991834262956931919738251386112241638204690325601664449382513026535554331122460410166203177128442867052464173545058027075396121690836701666852562918745787905986638605136156636121104550629559211327230253845255316620621134465243305941389957026796541357454867401004035437212228124733971012915976082483389777346416841750554206016553018510084461298505358547474113942280439853947302653674027554970846859277538795739347834331255185368845784507709759345927064003230662542834065071976288632922286389300225806895282023272020344483388056764901817612055438836594396238708222653808327569310054869276732089465143862113581101895927570856724395810795819026012610961039954135036926400424743464820449857271511211288360480378703685692935484570542953235000071175152121558525288463272220911337369719207824833830434201392735732053549491718844099318533195163824668872270852261679402324573406993680083213712060849682356400527904666930423338929210806103553688593267657635139850274330833180551683086947794317356321907430346153460959819782596356110184700928435100632011154127068161715128837849024371084231130892376468665913456148158943132248886471477468005064783969435312190265590020278557383317791157205376331569755304477161445891539513915419310019916574587761174516605077517039500050145220102118466924672267337855372464186249417409146706227588527605274181071820982567030602922695375280566613253745495412895679757498670019084359342897206948429950396892944506229442127085923162770570662011559545460607912347102618232159976605233017658172873330612619923495338646591340443901204892823544632812472546907026808632898366156870685008148804037686117547593598382742353181621951863079385791254462218687536014704680687914375260488781368182289973799805359622111550483023512201786815562355994984893229177754807698240980412111481259140430550476406747203603320077432309818402148403226600159869376293100081220338838493157067285698085062539594309624921818912151043831007876493877777975095633660348754457519553519925626146243009065121306213726155361242743809343034945185687112520767433578694209338648134464678386849250994770483162077773745920166570383037514085539994736341523419188099837758699406591557016973104159437714874793529761125911437902474982785684461114290040219047598621992404412414254627210490519667554321787755988476113079466308685824888954669054841917877303292558868026144442140327547517599602857871690860451956627386642963157191422159913370057898014970081554720032641264827539312212211461608021340326392717762662012917976205158768512727407619548901149367051098953938369770239083209019955498328030221345669847210102585546324093494470317353383268729432307268842967157878802265733665992748067623549788564725259772491644315352320086917126514845639498241702609468388999327619634038957400595872794958861683967745627276146564110039722767546014224702044004226151490052362943814060437169518900087736620459345038886679965923413882619484563802992604919960277400098627894763758801084387522975303247029100837031539359299242620621237672973398663656824432488656651599221341463309035516372863867255216237972189555413133646684545655883916400100301452522842868275824048416621882756049164005370278255861776263549577328590105898621044402021004246133019581361315833403050997502102810533477467552173848731700700656154219985627666385434722710614691380749081064118780205849344441042677185768936216591657462948768699153645321903281841375017302828524374154100747796887447037246918567064381159886371125227896567152351717017251376175285281878834189264122684419974501707232761943246748762986384093522795050645223060094981104510132936048858616625832432277387863539838749284869193885835562494945459993196487731087005605220115237435585570407128206592132875039082116174067656338151705923597743783974963478833493358916469512901758147805936135846089975489560771066044585244123629583694992016448802022652988681455788423757858853117590755464067152663391051428348413219398573459473115473782442884787708806583303125118143175572684334291612590000438811717825192659329450782083986305073966325292624257232281347444391283999069573701477972382419210052922827651523757780672438980604466352105425539258306223905620255352644269348235386750836799329302593535792069948386760206821204242977732957876510546967986776628842010105183020906439649224579575463241769117869348724798665833562433211127861558988197493391573439854895299132936373897441338783344697474230923978903156317837874099408802221404799490535931373744235078343342889727374911264553421808414630384487706475886727294649666155605114494952820615547737743965737264430089686932844050029123005953875238729388961349309324608582275643443758739142592785761383104762691873646878565361028810216100198410559827498395145632601980957133170056563402454383015975589629923826808304943118123647407664827057855494019415374135975787606159097737477544771261801759817616854327335413476354135193356537579728189838083013194588298967865455183626051759847605227566131906912754837190562855570905393815885116398623650100843074084363213770434356929497676017466628466261721560654238944016808346049366808503269953314314826060838796274549553494936733805345553149671396936658258670282666684388729280653682467996859483192658884640814697871964467901128995254611209470533989779505761061950115965042655491839427587274680723401225446398234452231517907254245921425650957229523011775587523048965428530944989956763796304082406682718675088608896375588042757725770499044366725175910388876888987282174035821102966284932526723991554026942562192673737818810926057308790389946912485401929122659607066451456204026381078790051857792473884970060709113555251620807890699055470547030019009685464208931920055653499135626166146774246659122265585903677358259908801913612275320903151605761378889890448846105186395328560711917141668943318876762617773850249805987455308660727215373933674540391906535136061060853456905316888975961103921917653427508874001680604558744650058836109448833610457198269247916374107933424762304841728848266137382208609466728422626029765796332037026337149199303804792000053104669722538667826921399669299604893510225010562909127872428131873991799102706588778435337279432120207023838739935330109346598355328338796208706747411969406326519198916383080917585354660347142646727365390511087056379395095855149341290419342509660742668160616105505803310761585036435270242090968249661345056526505593177518608336364563130999781207741332757479104565979226711434816976212230224237970212964336047097102030917715531094438580927340421838115412875037785267030653150037406813979661746397785910915032455080684728143527269246351268198685712655259721988498506455889165309452924919353103201268189094342065310659562177520171987744996331555555575406629878427134002079100292097959247020156552855356276149540247364620914716320637070539499116227212175732866566592253567096501148051700580155282481587005467648323471992815131989330306748455587274681749407887777562881100542319018275854992362739579367027975579557708722493770057553079573503792635137167890411672412631735034675715823545072034189211569430132572882798472879187873470765240271111061754394205248802206266506763898430029334341991123751930848053453205263181778151507031849276238237489364575379051418626594674811470259470722976038215989619213851019790483503267772955131473096156127910340436733220704099163261694134156032099584605333722734320638960850619476389983718419426579676658533091993271444189140252399911612178441497513473376979571247278669091461683444810699030039812995323868840969768657140395769283384339767156002897439398664345658371932363273864476460845442069245726627061706089386725712389527321470793919687511154052428272301830748918735112508632252626162742828970326735795084469488104329714819446171328424744851887377553611112592022441746423491446249490512714598122555547195227195017366884653555143053856967844686472339128555934057779648008431286256473292204638971785389028038039246499407741847801377321197630198227867086227981456209062264895960944497777762477361324431129538895718936456277349756985524214472131904292928479877957092580145830691717019615119188924163888880284224468646940646730341943706965550049977098837599952344056126088500895488487643867231355200076300143875713749007375236387221672557929045191752381169299054855979584177206176351954269094791869580692214023210021398047888908746757293283080685556526933526025398998781498089916545109161259885506063319128381932659265251505365626489561220618921840726170102321996942288965090600149385886185876535590598482641688902321113752530886484305273535031445311715568018473672885954916555578263786285885563759097344783457315300472071057982255038553515035766823101707285715662297058868418410249500237735008542061879549349999062261249929525358450850025400493702284936046185449140050592156404472252041954310735100112072276439304453032945092694427057032936200130869577582022150214139722018125388174174461360112070408331904337388754074848866942292123421190044549499875243155380016483950177565452288609970205438365406132572838637101974373233854117824353439516882192663729586553715438327356744477390054642284127116455015970851092637030127065815041781971833338026965410826128066028923356809595979899934683835012916226275843660779377038237672757780286627278286982667833603382259644567761050201430066099262949892782001517765399805443900031183306298100181746333381114331864666328392118802026408708252370149333463961210206443909987594978403924990240538977303399698914265974466518225214800735571208236616778093397657840988377660196082026820865616392070330669246242492319100432700580873247110393475274431572251584302524277077042408109985834511743760960230852915584594370891444793516524424249382602963255397699837918529527487593037888728596537134331188883900988893420710994420353130157791027470229386874492751093622397200527965633063504057479901794681165053368757727234328916817176743208430067441122665441319597611821779914552200515275159034995084904300528564866492215566314558238367938316804844761600685032899136786545085020580432209131841514022208554371044849242225737224229743089117285238770498272242005222165784594162699189723216027820859538706599471607627970638146280982132720817448452263278812149135607069530154816230861024883565177126378840190570403147527818829161156066329908095615600363151310338787536238162861048512418806148212003888964854354656107718480847993658026090050917410900127051169600342999181711960111008908070143133847960338763606188579152416769884852859847675891268436955310332990502433571603148595976661434142244151931901057826156126589277834600723006644551448973930948012113713485914718311124040509337966577149752192449289279062773582785030660720405311658874282693014126937861625274638671582278985621087558541978539819646853821815878346582475571511016153609180196509752335414254064606657661411267735800945422387071068926399376158198669477377155255367041992648966641926225549417994443177584052931690045288060767525461819178434242173507079749081655280394702025797834995537262319877510944565328983551704656234255420929086941731084963539889178072987349776884098635511241244233963203580526006281894721333002677360386747935394193952571010746893437197559810796913560484346664562067221291847335285613704404073669218525074261723033453489547938788529355185745205623213670531384503768016758595612792589375674159412787900488970252835838852901483020363573528388827892098444993800599562739139046547109816511588847708361124571039967665838465756798076718168260132378839248262896410627558591591748681252105649229585833014786917682371288995403764586411263827092616669902241228799242042315107543885078899228423661393748711460766377950292177226623047277739530205556168533651549339346434425452230095384739691789148174530589316061902299984526870809573198682452346748540432428742808711789482121698879604661465326859927005851781258193973188416918122541433997801323317677858334961123533882034466417750690331738868148671444399875812800977871357983540923446669990048152401039532387015682503384648684597730388446226478853463997785872095968385392383119779269707265916092291414057342891284789444010607433010871999718915164897293538772748992317775765958948412903814637790893034133451993203049776676676105291667364772723208928223865325951642000768033187181084509126168533728969996561954010413237618684676201317340424283161378125937681595861610020940113561136374295007085029362711610923768239192395952677108161741297094410462457188567899438241723486820122004668172498797229313547027987871637638368616871085708012640563319809155590970406508855161709491240668807389511199528914546270221080781779749144451576998621343194966349201784714818833917280192554442371871595308295458370056880925459501236820394120754258314275411008262877358917801821142368359224449946894335048737545145737847310535035848103506997055168062144145380089593841218206599192304595201709930952209405018997546979091757432424595609762733447852548743848162094133385001619220865820738480562622006900469107412318521608756915548610311617976429642127594398702291954099582437316985199811085524417322596034572313699455594446643802495368636964134399407618175919911780517493411440487827361895529428077568909258652846108532983054113077228817388565901767617376828552648913481170332340322575187452632893156023069292431119066440411336368996256604067294008073438778991878045457729290136141327491571354886744459671383393362240631970673066992072438454333657577880001474025643148153896689031401432428968618722816262048445849315200242745393000001489570655513027973816136645324692031592035470280375653222212798391899220198676056765150495134266893787913547485764222900202065402869280657413355731855596546455142986141931929399135749681977389926994049810663807709293754898420982468926094775870403665832295100474602068524828239607094499321085482753450145149359089341371811779534635290258393939039271677522512204036456380639612314920789429723936446124996588490799493114922697541448375952853829746826271189547081931230038300530943491227609158781314419151075001050456254756526791507983061621205807187367219895716106361132885651828986307489417747492789250169129515304585191345010832042252357866051321707390076577651014951173308807449759577002441623934136396284814448848904564577630755817057694429195108424170579907610830229925153376512989699074489735583859665658822163500760177207505975103231314260960579902115971119904660399251350886869915776521409248753184416462681374533990531794007242637213994936654186640652198994134350054776579088648297195418953019949941725122439215196319097035659817489684979516474597682468035510020200234508305231603215153885579981189198245404540719713990140453424430238608243263125089387418232881886019577656592763344971485796687355472986989448068066553240681002583686340407338158499283322650505309063884795253600644093725375368249631555551223927220989503624044742391591727858203071708345053935887242979432077165579563966314643728353707576766545556228367196061482785587853086762844339142127991147993449903524684942791007671827597890538134155448840963749770092087690402716530208171354337680730082326487361019744316962285693195699051064760625573360097681338233953978654191178670077382541213241881445556198373252146094238490210973439216416416712072802864779316101901615520243561130426186553258287906449096092557682196222557804644975819037046097621551116601956077193208175884272858724764884728138853075251882152003009496561856961008257718049126485582191229968094024515293512881661414088658734360044110424857793960907951595990783055715992276487572342373243711009722345036833208987268561475585049648758970056127648361578139758207059736873596346380975751129236381513633991489476757227774436100308277704452664868626321519464837061429863027581186499430852560995557363299782187733074337263751591454979393579151742587672315893107599153570223209745371420483948134914091009643251680743041753100044544469748352078625802287702783718895308389224275087348420980759930271715761033579628053084376277341191833349145211636815551493290068676374157749310243604049617090828929173404561953656633043279536316538830360511332179449766598134463947931993316021454630795624069116404821143988810227496820300427468847357433518731789370892052695698783275071509628673444000014578661020140130734373647434112046943571901725699117034284344181034353113808533058511492096568750914398417831337858338264834086261134860079321677189746231866754419887129332884710874920618236645797644632639182781766889966962318789978024833810960324951462832150819839472438214857700369594110193226301800247697264396884367587400282239588011945496975388702681977147222977325259889831436230880149413871605362441397440783778168747538759478648614817150489830028322497608596635124903488397978034621829320753592567133634343200265749072923433900178455920786353667763951710529005782196990506844277696783371871727698781099397797440908380705775577957610301833762225725416419718451671421392746672054692683619123387312711297966220072329744969350918188941513082424394855147593799944865106983830817693298216070336575417253785041062324592264159026396087535364574191526801908074195371092435514357554008704796136876542351996702315888679007469855040040704120238834577931830810456760107710210768407762690745545606810199419688257737667052174420115499033746348137366582247064590415799789166228009367174865753330608572201019595851842740600231565966782956576935500450725455010262084421357995758146747477207550992744862469375544534722666883864579980470537107649906748890191044693119185267442225473170834375771281907539638201791578054850253748333898917043716721813354475957390464278493479396730222851482482593275645198502065578977670431226445501818468300034499617497765564960667235693191111213320128696156425288891409815507735286790177058868209679950156234885627790502417076952661723302355534378110467208655720420846808601716927966355296465272102440392560653026393980640275664076865940613098271898082854267514169395275147755925191290322919779626983641612450791010016840848942659516463674081160924429192556915212258128042267177176980265483667853343152956802526122127971867319913153246302928959067114067227542128516510864915282715295952372189548685970163854737271325017232658055423424360180779818273348089751071424235375454887078173445845770115302100852058061861810388620731904783050030855205302814138607741575362475000470335727173136696438576568390680560982263925532122595580665309652588034880134711174699322888712394624017321990338790642987445697777557965932138629487714720641920337313539043086982285913463004987923776910123502562336325195926934633580185358834346353816698774977664586154876766912804084766638193434534864644847852443498984517188325697062057900805502375359482163076477437828971333735414566520776786105029595078712568529570454112806816124837784410500013952130179900877138541724069249430572634200341322721105362150004179100494694897715327986588659318362646748293317264598495150215825762012377213522812510359500926481929178468413546843034429697801658937779855344902064436874306927052158099352222978734506068323632877176462093635330594448919362710155811385378334329041738449023293005419821318450425975941456437209099846556576787359378210533076909255590999867002643904177336755498591093779422297595561762603347026334429831206082980024583909692640386852818561096588319690936527757630061193226406893379505255589615496911331502715802593616066336969805711637549685019364757241790331619443493547701336201124553348599413142154335285277432384814891218200812637480856531189237051106529804023960228559477123959206697061602881755410243191339730326481349176014296431103756381953655131896855646332428791760128262629065760432907546212394507492504740191931407951609870581637368933668384885840171983718397618914601599195948865352165303589298450927419712365872491836436646767808720565384865945609101816987681145012525415366240220188735504588137973622116970564060785760063461241126518296651430734557734750743697019406332637722098404566731876769249933756249155063829640986985736306716852434694856913942064736344331524984827678368377453746880504254842135816961584466504705111700967274721939209532173256010894709557608951040759179114298732137244036172115179819776819422105484732170324350101204579884685223750989227608396630518963119506579441488978853435799752317341415101967655890612497803324577399417633444973508814651725930705610823571096915272985921467442562990858166117562784799138774706467987061871436264921537593911007359319648957579803943040991084589661062921770250957732604732020187939840708132163699330047981268801020391796664087644383830127568538996980085901678730499553380823640814081488490531545955757293515209796874760667279836137036330909115486362017126374290794128053845179773347256426138527605046870721153622992876701850525715478158823692017998547334773422598565462254916217005100731599984193113088736970206637585774878756167717145802886203558621873348384308734438359960760939847279676386731585947496455009518855600695653311463413788025756750279302478155628809982704889474858828795266221203593168678810359318945184047223706114081257686896044868986601123121131258573994328871277483131677785722078532804830794013192118258854302009305002739037487407114946826866948782467629922765879924808133574096251366794026451531730252025342814901219775800082994269257302842890526519369444939020813529185292264445638735089082430628119740177580627688092193943536074268174113217941363687181835248683563230888117198992039628272787987230078042035731722197327594086379341642867078421590083879021827529163515895781132638654533431845269374166592542926380469407702080305587988542076177427945599616002022868907235414064339912249821741378816510481937385240330771781722016555487132776399337607700893378250129318479646110134121663618558926301064366667973519005573766890705746728406607424509251729611920713611192140505844350199167021293474996194868549333213280629144175913198557235200192007292513838677514249738303184598809754996473293136272280880333541182082077846720016978993151315204809591168884396549833952292981176189480592194195768295145078426303747563286884216286521272604124142970985507068069070623320523060002059750541219039733105097793860234088587821275726519734487129154353949796834725319215688662363892358000950195131534219340953832346128949756890343948866682785799806700279309712150439785806611015764355526159030132002930406358563545572096658092859250596864957866939001261698818323660620704607886213138829070371683373775008921944454640154009687429263363263886588275043473558211296769298947323299394374311695358730778353745690981111179722465068839898433612176998714580823949539021772198262250378931198798336967397158770888198133501203503682484256119444773493521037102125532586850457914114560025189506902897582630469395631054166470449792763946042896693211334463799318915399291164484073307467661477385042021432812677677261391036559733744155008943898181437514396385839690048186635080103872790031287125822234548711883766101600321937346179370826124491556830196521752901085874592460258040759268026068764515958066959586084498701046185449451355228672786554423314297190293056854682991967943405095457174571328179654253066659857272761011430164607848108555659356571663043019320908115916918519294447133065696897809276634656431408698480359457913924153584099246774326389233629977846687028843526459057911439422401782220474010938948846226633690787111099797071621404717020529510037728892864222192571414883389950726198863918685217374087287088368914324009793405775722828652196466455021697509990633786473209393494715784021773108062507213646405938810455036604900616223888010351845200667784954057153467676498824972056827841422756135911402316167590648207734517361594106263212431378164625511204278123679082145454933913884412423993269891651657886027035671670694502111675931474856439329438058678495522268778289277573368253521843293934499317722255951731613956115297860853602086198967613316232793533453100404988368147180253614375928179290383393738299171673055174759317322158110246070579265424964988184303016031792806126308068303901773249639919122251245419041138305955049616173873345756884233330793409952501515968412951488389694726745824850288335660871402841439994509712387617713322029195029690563181717762297207103599731412656759075254166628522652871346155059456626930632127035004701514187053463588836046658746300192229184726928587284510200187719953829106510785805138921168608537112464864875651273832657905242450426795807723893071932081948053731512707035482924570854291885509810614573863604374398249861857769730510052822189717544397452289682604269905226148478911688931555553476011125770624210180309258771644089767201101364929422781903827009930026787577845505487209125083888784808135365702884230578579638765806435105230822888049036411949227375530363490297982280645456397694412036838925416049278177003369586528542150931897613675032843938240349968998900865199062283864181478095111640604202853544779763698670455915371638684645079948131746925555105946918888465707199187966168717391308641880778104244644140333369770408187471605438343463597367502382964148685397608535720786562744281564947924200230453849876594501027620080849699763673393237453300628712314037314946073984910813877015262473957276113346143190223505704459594450130017442415243883829312538441147735109146238397114425696679965933710389439470885639967916399223660078210184238354062228944324688223870979948882842660008935743456565292570516700465397961655953996112953470913933962330680571395336955079432846169917209477076917919214977211380836033445543852559725918765034119580556193729617535195729431456702622440444573815625083980178259241211673764632963784307085745550822498411128907058261541429044083534057932617248909671959491399140176259179955990755405636500276732558706433012899301148626913030507547464467118453193759160815349202154632305210384166188185313935062333849762882018753605439481239648617274767880217470691506225063500855509706473111806520360010894316869731682069418184542617426393111750661998319300691071450878765840870514286980148295985404918303351792649837279664705421867191964869243602960977559336186792029209842020100768315746080101940171713351142849860269336807639026439582446031386709369901482882860590797339966813119484554137226107384223101950469850896016992826185726529900009924363290478061617945231560394881533174405555534604441139520900625122463698430362636816369067980387237417598418393928237015548341452425605877721930818030100045339024497473447270400970403921579649215263255774195963694079781900651344778641697378344479787308541737203164838542339196716202220014333474982307434368974011016203748509281643757530334752110712710146517017658272820053871538575685182649787416373406824617274369239678906228391901952430239092088298870454756290811686635235408908362476331838834143374635956641182393400470134224789823690998426308812612504755254271351042245757176834141422052150617870477183011720426590211206923944107770983460498772532816060070174241949055871063599756613646667872612907656067315774668932139368157482572232894481719002396276083779927859292102713136461901150517894707718474975593981413687166672926664653503786591154185073509776098734268426503685630610744850368405001899731495204894897580425627016082362111708425387443817464771545364972046550421898665524893706868622702699368412666617258697110103590178800143824739771017029211285455762641851630043586476060988421388768218716429141276816290503580391668509519138495652802147438574218099990161143291556213544690103865324791074867387024132239651765176961609448768366568090381316806516179636697207119766143892453815343106149272661053116985565585071609527516034541136493058456126781612995780104265604515628597521576691428738088804745704697828838721584766150754791069685931691511855084610056379091710268047517782893685069265847838513043878922358978969477734353906620811309328133150084588709062062157392361445957549811513034771458110234195354828000262002373756336437042289425660013585191637408131419052995479642091743450574058049684815695285914931701818554957095013544864979063642028698606897336900202269748583718287686590884252134179525726805737853568705164181514389621112022608686351452053908655199131974226324671996035502119298577873952789816116184543717687103638284035749714075450383866796386330731868174986480414127171463877191137559384466477316452583644614922836147399699270990567494508942452834176460332272595214741458183952957666267894945126123260592981840215948717658733999653955967128736646366170503988152166153590318724791440745858989761128070146788883345819247847023970801697524825790177886341215732171474061523444130594240394567960136726922510260618207488239711607608296454479043790589542327090948752310281893489618029724162980256774078067832884160603368357918322523929533489451703313788593062361994877381155014128287128624415658226157259786547374297443129470615554215106360642830131590613984233451416484610541593194480845827767996168980557364822332679947394090718430625962092474291829297762103987647326095254212236025360991879563810478210865333687799774675032009535896557631136535215875695991259965910898171284216171583887346610800705839241068853875492670189146617103913413606548022093435413263364143133018231538829359976861301992902249265374467781796666426688382423219348147236425396442873696760171243375365068591780203890864897799299429324622227932913294782721456266863437456371465294638751607618493392296302139809919280652928841161771612376751586300964463403592760589297070566829512689848872813939667935139220573018286952513844604982731679045385805505562415470296032997018337455314729918876962591084038544066505875480814526625003162675545735615936897083346676568665738853903994132442944083853180442166160019257196900573503940225911371873437692828101107138280610770037867859089353384678857297876204111111227260233687637077832929844467060159296000375200481358384316094466823106675967258944306146029336081140397123830773198707025032370070710775860935840722606696508510688161533645994782956775517114607971848969334254851892958667490344195040081877973725877125167932287346256508535514846123109474098098174113019719703399564661698776729605106084392676785332682245828384204653293808997009676457224030058651894886876790602465521836440348467167448584863817625273614976989647972371024923334765851831537895044614517194489694325000290814609769927642712763345900303988483681446546754926965078188758896092742653470892853412277547958549661707750520892342822793354404863455171583913906179892569494587580064285404954745300548463399690784527304801776446051302245028728563545837500071658828166585344443974808066681733372708052215668784584377551675705243288839877199958192200029355115861229246053407704390387852710251518153457526174721373354566938667352044316396009945580625282782184818034781068091165863995930112355483464315423812021864084412373414283465572443198934429220448505841810386212435565128869368586383285191909307695978946441911854065157652715871381839474266953767999371673464186827871768041746232272305182644447590489535800711061185736417859672440578856737686942971010811789244659469591173282982217805586867130329722973135526478852814986703471930192993082419227452103662062010020411789301238739315975612627445857217704537251390194228847516223580035414935537245247297559342365124907196792351796534900526881786105834518303735436738194142473855449306010071355391473154170078709687505912768095590117826732088705846814459009143451183152254686094765031655008872894201154665336444227460270795591545109568259227605226032660907125228694983298562938808013655944074143193067335926272175136561322081960298897523250157310241223269251556684316304546862830504167639908029095202391543033871146047190584419906572666094629492545223840743137244172039040369358014106939457277514077720768478614102914562575120817843624385268893222341004859457639203370804853453188527065397308270819402832316374636446807960927730255069505648168575822722539508257027195517219231773419117037677505370327186379767158681571810670771399739773315319921115733581121275403593279410598895391262371159817521557683227344349705646569831452068819005495775834404832782012088715800937706060009653430339596913786657062675247777114136340156760964662898809115516313712132337511822913961998098192130621141152364746817744424390394820666619585693160040925112140644499938204822570885069827172261614999539474912209878995853275796541219991895211314213791110997834951690638327999882415558085147971421951317175221555018418899743043711102483215088031019803204532636141475237861794956266665353202126122477464033743941430816851903257776980445836255210477720608829181405654312708116725844967183632832741014986286955009788513934313378366881632307277929162676006364265755850184295000617931133999179451216328183738616351944497915243415480349548926782546608748946244831569189838471561624935562478216335298036393513000629962241325242396957054958190701735729844200501463366879703642039230405939615828812797718728086281624861882353871564555772276014155248678923782910693023125284344229243717653803001935569149429208307200114580685232325486097705673460019347245183707488682266040940195779186233470944332973810836311587761413158433670217188634399216714942524617474332471471886303882877517381294916780031878090438144040116887962956495498267114678708737191218758244274307104382384945678929579639219726418802276131632330564669466377346090153899649807178241958596588074964166038499013007899259685784981825666328298285481527941560560556754687331650074502960520496728739957357646031390414300026686467951754102970669094874904788494628011467247944083667491044358221467885919421984615563893511241743066582524958753704270730911453971985475491389170798189474702334472448067706730327606069906518830859332704356572326248229875360282713307946719009899706450255191460021157463549565807274402392801616656336362804424257417219067090632387257911093673912237824023934652934955178617421477187591406318339867630929544892775111744153171629010538758426578947651170298750874547396239668235544366678411478223622867162187900457912264353411095243430493983957820511499725826245806545387518483729949242710982226103567275946154263840304846612478628659854464580430655746331819058501365992307261985441142966008085142797197161129633563433322980736886181025240237108210681358758263279193757645786346957146570989932788681758048600142818549197690136012459665034631325249209654271144958742645215958169687833565872545399037836630482819725742594552603555142920076464454204891073752486709526754227335774094192606614340638935618058075409635675393417029151333499719173663135373038371005554335167297912217129668497474239613614848619292204272426702822178415790221359296296181651694374791000420615249627091187350892888615922745522659905601102255339657173881631364074139551831851947605272175677645173273180142662283470702750102395358353587182159836754749223124998672691347682910441291103349291163864082556603404818991773592008923032520629268112954405620867786557409437725620516749571315627255294448747515108683291172400946337537331127841709584490233659108533973442877600696767212753318603869152014393284892254389137217411056582443373621107837609723349739782963612138362691961479167283173541087435167137415226127974226120424947938611682809446188885866022089320556767816663956995516546013130535007365703930142720929941054309197164860300141681079188519640826594218550922721979755622830794844354685162911175225177383285120987642305165753823600959578121099971159297377306500225123395347625646804212993944569192717969544623310181878165281839163401946287029500373599761884471574752443602451180341409352310448434615287446946953738865798548243362649086627612842632529643319542337565759822620605123680167005761761153516718887151611179019831569937638887919897610098444753320185192340026924182955830320964559648039644286799567666374663229820031489753971580136886653578966582227994089125278041606713544627100830693423768086677489748798184274369513354143562685104377595770206956002475525899437793075761512894868347967549871472504043651354351758549377603563993006527483988836752667942860440974829251593583288853668862024122986413059764855593477218345309753488745498409117008969551078865259851273469241567525888446138374292805060616324767448273859554878021368981032895956143017589523022547575633918625151787717325889933843409817751873299831422364337739241960659078461586179341533768928130851680866616754749268272666028699413515789682233581141225825377028159697345441374455786544306228782535492823442923026813722169694907457961775700116671690983803814744020658599894708986140074847282006183415776267762258792132881354448047554094587205472536096708075703555555083538781817308195695808950586470231594906041019093519326845576106178644677702387199253468868659005658308865751286591631878074786674040086543457297372988710203373357446053930243056272698161206069737590442293872123325507647423207275024988519380230390260087685553914196429595692687901255890891895777652286659488476448763676794780227615487789360201019101620016583114835435574602180995867002052617214070371669329204514800878400149847823638327546800345700407338077546109150517963411957978934568104098549100400592355753920591564821910193172540266104648884124084074709394000239328236471812141740197686274167250700037964111243150998729226155840556584010718350901137494614915268486757746101107890006653745288982906752520398569184068404568152219683233987030514175945245288368807061468784260461680262365948908133542212539368183055102573456252867045976665438548636832416310399048456290448375962772627356429593364505051358839646047432715994268388392099714595097732045319336898975392758638965992292568420683333879494969385353192057569712934583805820133455709609390496676862458451456191309273596478671315798405287595853401694245138264590806100650442597344641956367678534531313800646002247543033771828228108157786126604990412019426751141125174343252691239099180142149781474118711013658089330650266392468591486124999952595716895420353884140617725899775530606233129037978199818352965459778294974451136508305537873288120357311968604808934574941091777201622611830236119899264781097114090201599452746080980104070166344818493641226172270885449593030914830155696301489818453048124770251041283018604121840602144582712658386885853739050253542417996830533994268931459555602461647947635989160782358934522324875421526466724013818860027368295801537136712544188998352100394743592288189416374065282830053324764143532171618713614337075546450528846302722496563712276650214016238374500007460608550096917370197214120586301201167503556964827190949278094331071231779347965853521318503704524828052488844458582428981803505355078725705330941256901213987099532696147571957081329080471332649400115325806975774442698611281118669092964108519907152577755326791620561799371751445649843744937201082080947821785563808330349629644636685539474821541955912573164185545993944858967663728167608773084026457434569417909753620348191020322546043229906757064581278120734380960898112383265578783811411670620980406702675279052317339658096402803370823731875078096080946875301967640262749231005261350540304278041455859290737693815051234943679045846442564474634796686968845699322403013623894110329465925058919551865020270391605119956270900409639042243613200405106273358471870379535360588455767298602133127722321300810813310874996719604919792938428419191079910067562989365365179394761872012793449395535384440548333929274788148218196958298944769365207578353998789058886874048729180481257509889728328144780466466952736163372170792083806440929956099584421108389771555431774139050351124419660196706655702807547225233208527362238827201285720042664219576909976005394949717874131572834945899471056468664386288886162980482687272950659083502780728387058136100392289871376547612303852828822582625540606694462540733336366553776589355603204517549726058341157954603414069598859425183640618266460351458692184282370020407210405859152626737218281889700356652828070006320925574797574127465502640771416305701874123105887911306129527266766706815887727993860696227584680143061224302525561550027164272706824511340495549650290643909947494440099636958333763467703188107366747312706540529209188876665510940490709693714002416186185533588385796773660555922867830655770515037935787784540400546740966994377836639977498192915444039803900016083845323595872601762995575479728799289562870680947170895854180004688967502069644446331733459232801800353898431083288388418316249929554156359172392810736466320521779935861602934500224103793592606941511320889041775478619354970825034250930718926177370235115581816261067917964131639811775694405514221054361281344833746767314564240306131994265882928996277121446218307531474467228875086588683398875904316131450296811102540685895817109607958362629586562153288581095900637907125653845148075860985548907629677822825170259516291380171479293796832785035925264707924534866587151373850185169914564772423801229278411704262445708617333831598346997465163792612191415168626729358608093674540456772674299853500902808715864628205432002926790742500763239451804831125199374814751011617751432452600476797336674991189776610630455980225558466630545499419446092640405271109697024020320829676157375924756470242803632336363251903839750245221405426540175654923636784322414829720768825396322339531675631262836811533043628961403134502519734109952763958842944043216118507664046787575968854882347290530624928382685304870457168618973529764184183250409553625465089085655796013279520117033653919628543947795515256382010239546154839663654554174608936702832517429397124888097982458304044427959864394182920310057872241001309882363214943715924786035561667629895037629304858501849830188687072313131295672268423991642519742957904426628011897301586586273922327438502963475044166470979027101799741692501467805869462592668488674534640047376214296398858740554878410333516461956271248537312734518229854806863566665626922509786314804321932739723307274061434889862605293568279978980663529652670301476757556966425968963681051493782210857274718059610223973183840912808599142300320232263952467652131252604622456635341409483165026828009049426476985768883366633681910816705855867947100699185188624045229370930102915649064823929013434242941014638896097002672072667216254152437932047875155397143216807623735219203851736673541747036258119033392990703553411476427961023493340236862694980694302270314993940717716543657337970049756049631661607108750704853875856852609908149815781590661311890297992916288761424195012673186319040748210887737899569548070386098986076595294382816331960688662007029274862834759349970954791310798378598167679971404842878966868780575107676018091199408775464422680564236126062718408938914581255027739368606878895244517073748414436634857743455150752173102089154540974917845449906269357798270665343035787953028398843390594522697321432140007415083206638866581772897279943383208109826907566191007275083614876820489086862231704380803616595236183489943491926668643318464777494972365787956193212025338674163485622386399957594845790925950123339271392985338744076923822869383989049312509488212442900695656152184293390624316971458411929806347712013464061135044672486629228810361295536551000260452899834511297496221175891797604393812604420802874936289603677748870628051010998011163275393874595580630539686243538818540631028571493310931464623465526093778023426100597881858274771643784860660932979358735552409861860267845296737688462550488694183357745102120216997235819461721481568785910714549269645117321890060330228778174362266574842170720386877336658694274928308646793569453827460103641861894931941364196913052466552849843907214611965129125282084231370453780904047704624919582850149061434872180304747271543886093340162514053236976424687919912987127618439340904032950458387759835579765274435654217515168160886683853324386306228718432287115868210578298254060048568320337224112784638296821707562674957013645740465113508260047988361800117333053806175731019998468621293813655480274635470812832044000888378511129274816700859962486124532416756323668645085303514694290475438891787642179861757553462597003023313336685240735587814813465911374949578384904729386480543652205090918860845860725829011399876274021255328119673566860106094402406331079656685071850527852368012906007755398992557305909447895493162127080228679100530637658617504075451704283689648436112695083224161204044855133178464629779280207623513813013539502155925371034826187955225032336061834586642827615586318933030405126679320085707878821295996944920173859010008145345074199148290779572339608758407710062366627290893499308897542505971425651490902038467788215672316429810781746456949852225223183007167027731540509893932996886967479156062561686253562688478212163825550985221627138318992776426860574609422013089343656891515073791191102745274198776639517728031298616214558353214614040128371997542140232152076095174444782919632805287362143111968565547863147471243314581071097880936095415869804129856528981773062919742993520992272533275530806971929625232166804153292938633987588533789661279613820390222114376329269024786198943869866212665031039059351973699985447709077538722035524415603800141190418676598850136046163881875766801095458244434182861630225695748472050306234376272499689350832669074575850742291768964587941083503223513111520503842073440451973449521320477538501679145744189355656268541449221089312246439314162095982412275409572231869195252312674716076393984632205491290189199066110211848755590444765977945170753962881484090202584962071476348453179862639377864494796699612831957178754623543266042499275784281402640510357310645476465009811461300725141235892788476362895888867720428680074890266150097080677190972174098881130867974034128391711983146215789836303022522855502564356508177927442788459409923482995311349815457213589159017111431733986708655711240917013605132596599417797519028828324320286870244489192031715688182010985898644322282777502834832812108693883598716625998625923505967189913557416668714916365462903071120657719233677741163513100001467743680617040415915888114312436927397415890812803062156373532584271286851991022730673712011105547316727295299195637490722742432245051563629021980873503234158872371778828960818747561024994202344829946173182282580929343624034021124962175680680433131448212581382480319140569247223584032453464672516947135809369156813003905151783511721002484457563163007559835019698920493815520008878387324254411601813136965526790012679287320138773618042222307542473674518716438403358463861561000081514445369829326288800621886274252668457491693205633270116218126991558656229075105476987323476009230476544313312281633537959083479639741968508200095211764548650873093300329674108526561484109803629667221717167275859968398163426708625658820438098183745329483745637929836363563204723003479377701588831171319252702671558738649639518891208636889057840037287487730535523577015767036381108755662954650810774141207164681483119423601036944081324205616393495014496148463344218806953985846724919064067457055415532777328907637984000957623113239580366548302345588485940902309672551035940832162545545537360613127026598613027197497599149537061998745194832486247342063136030244235252259738888829753275540280002933660655003643560394724853613908777056470449423783081119175133623188678457494622668255482156361852210954424868493592123333089482257250004815799409227422560483116642316441572009452744574524564359897328236432603712594005976239535372509481842505659652687945993636090454555115859375200460822767838720391559614129128210480575317270815964675120113428727106989603565003880617819010262668837489179934929729516530570431548196226676659035709414339747856814195180627664411532959465352240545930124386737016853970754822808908442352024915850198603967703683876312786840754033444039902798150056013193794711826433291141805732022979963536233502625965836369844389910642981599813353948190336780107960929636280206545000908321061609586188866185061615661289217978304067071728697162007429249957909660972407434968918344259856985417858381526051720471422664442117551385774677764405241854587396611519208329853226253641072257666066905491268680746115423637917019851327169998847530507096085249140160307060130951385856566208920968941256184138747115471674660563418792235448195423780714696100369358983983750445583585277511456077542627211465617956850864466705933889899263138441119988681621944944309253376908752629534386185861260278976162446864185824407947276347412263245653698782321452886434895995372357557542309233485158788225949484677650775021316750003361111561569436371409053339813436378308186206454910453729191460469769295699611962419015713387925235225293943720543604935785413998225151645120762841736572111058562853511177503398200291518667977883253003404654580803488880525709676022503506572197531631723792078630340061243150993801806961317719483168361586713207260835767319426270733814244442477009355465950711587911078216234503478223638037831599091538007492656912608161712447698914047581987985831385997361180925623481378995616474779885056227647415505552990873923689011328458023881354481528458118412584675519907534477134469281703605554649054926325310706382215891325304985902793405832256369013808979343576456338836337472686849558611037946377186346580185174974456964680208950669733059159518016510391152151766072584462875316216728797484385967545871564133511070957141955836830906001662764672300798155807469271598285818587626784621599120795717809128219076187181157212329067061136077200701426423182406689213433589762602648881455482281238519884013090185205063449196736801392514228471120490406860473211548042719421590547300995657969977613751411768314910106625654374326565617651462902409787010312680739194235610329965623911145131809525190989868418373462739466430977246505889490120770620388776696854719861416261146057069632763225625763007467115860038105340453879061928926628297885407677156085060810383278162243858761676485179563796072692633631936388687540485009302758838107673478682009046440161231428087925196472979000061186218802492183555971664427746060937928834082848467367856143355239101509799298438140669728467830278891937845762857628671892440453252492771159601537153221641138608105461931235378161500262897448491477376080200414044045696524881502191727719611675932956859488080074487910223822089527848714151026800295246893339856496157432134211332425358340262534914451555695328682663641085882629049760486706731144206995468651613705749022546815055108062256017580018054756866210687325267280293481706989038938538119336847233376422853615285647036710908780706615712363817623434454601614613421032229297261262324208812555245028368523706100957425901472582496820152415468450624726809609663455480195703457036280042746527972304606610873316384988633462311367865786458798590317565682973657753636855650134255807701968757928484653047488639519056205422585930512905937439614149468772894209279957828253236931178847573392856494857087101262762236095491127697069639965979628804269720518819756702270197274848405557329976351169258695548511864105148943346699732129248820629798194488485481225310379292139608003916570445782393739681143999116653337989182912744524327704200921765109223072262305881579224387498865284623099840034421435913310152053538516055180884143677070458696095897688270547383500124347520213704237680834891483638625079188034160616793747938334437793794093314814838627204957945671430970815318837667895083226158704477231011650921238350025155174842676583997718294624087514864632740229062030359738852074857845671260677407329965642879663725996643474946175248596095860458385707451419839638699863484422273550530058793921136642064126743895698540394217485207005119800311477942556094193791917031595664775522532244234711648013766482433422582682749930137717917228255789765933426192847798514424870087681124658691976307125954054942204081759480539396086555127042269339188097673755094509941829717980130338430416826592282575107933050461658113416338437653763862164044056236041471608366417830719832071091906968477762641735763336597547308797363777595932507051734207093380003613854811128060085437123530095702276965851115413192317402963455672226361251985075770191265298637532646622300624518663665070736383485592243517401810848009956686089654655911513058225856564973007678168145163906629647138019021097366505219975084082996150581923699899717268905265170357002976811952561497487583781123054655794568085283389430839675297600863531889953167272776715883107255372310871007524550016902930481601820750284435219136048720843623401251800310381358696936050787958852173465652021919083725460496995837738300191038324333078162969720112427422633961977197180440692960949022790619891777421189151991797329638529983056180533015848566892226051863554320470782129876491824234828688911399457830422070574829403770027466720900382823898617459464385366883138351436337885065663585566024995641720810219063175826551372679663156444605935154175868550896070533218960577026642206803997222386769850090833102446714417194523345476318576437811982764809101410527671972708877441486290517933085250397143189388390815524110884873114905551367170897627108277576925393411967484507129264359175310387563842079356372488766400342048696327732413809031793980493075662288637359218106072691718767189367102780720418249924358705445370410027722351659545246508350479382522749304575282426031903307537646798075629709302278953223656209087529553169692557570415833348975909356100547071870450530108627528348241125087692411415309947826193090223812043230817922441087630356401594379145401961606225547151430694047224817549921355663449822026084221564848426751649894188798880557541037179724547995761316409550766720921410483245047371091989124927524998381768496586623664403191203405790611617043887951339880724732561580879005217505731845910192208450108033489273763959838134479809781082418104524466142631367630632077745474362430558876183889070865431348110979704826170216793282500542451646851057422297404750594627295679189495992375447332327666574697330796457688594753516370830601143292959849268835135552375535630072390296942090710564902583336827320399982659407543102169730750716979822265820005888427190818891740064822801278137120072185412432474311805949386174778773948917953313893695930564248429551410755561234252989627006768243543333054666837327910667974310385379630789090655642302447872577466056691735266767697888952615048716925662381121610645763197045583610364729376496150150103919259026518783684098057893401390309571470740836172717379053240380683156758839816919242213323483810453586485126459437524517801615554282561750893795573415417300389111088204515000099885167908345748708989399765237134985695443143609235713188356866093767569182111806825037503315558785721508521961296737562819554943305416090174979863528991315667336967348468634839482614026472038910880383078265656688459315524357039775649327967646265736070148843217285387001494695928818075893548114554670433157186906538745940348504311924493541633101126352382431265001564431593814246413751145283775237892953449757726705809694651745443191777492778572407080877183932508090031484274728846204901577639202967236317918384299565421157247804416266996560815436748274358609093682046663907752766641465867287486719574879832617284159934224838646185601668197799729161419155521675890565552648741447944451251785997681877218920224364772675506826456134759358019938640615438179140310951067910276170820069710401380956858497488492050036991029989310256830887581602151793566244888239804969824339935978591468725605597964258374529469753495169177965111615550118923106632163977452755091385951047829870290002440223661831526815694505113159475542984610365426084870663572185419929472543753513577988287057230208949094166231160638075384544186993448750237377850205516552540749623117717851282846301441061165076046409021152831285357339272971783141910443305226937520826918808308782241399687542276642786628901185795257448396136677469592984417296726673559695588191840249524909083667010928264977797949686316081392304191832935696704364125883720705157700409967608358685325575987518665270804575159743445576515861257765410379420950190992950080618557515330772933831704894327524322459226694162488895636609553337924929716892363391529959260507943621958727348961467818221756463837663666645467270120564824387068011801015214791031533124662544229994415384735552375133611829039524931702661591073892477049246725143211492277366505610276597759112704644612105876713324277239095156614183313066288094914523519725636929136858209346157963897656879827885619231297131863245703369877590036048257361121315831181146498689697280405648820685409631521028603565383354175529008903405877873382577865502849069235408914983604895685668270208069218716405335379607287151116506549420751097849659832526354091637239683485964680850461577575639414951540646211745351586826711549413602975468884518902264188859133836346329593138105124460088009406064460293753908227243927528578692388955058490040895980501798068663240731440201940421286483613321465083870377987299495896509884299522824630663634220685643566401452640179262899727142510923597985191777576540850442793634042275984252393769622500464665368640044116759023375190025722204741573223039680383702665041394694854575013146233598398821745191017693587803287705256038930884676116904416343066117915405647396119616755452220816144849736542482470744303479450236811528461408628894011939779429045245402833735307813212654841454712080800545750603359268990049598011866432018400033060587934098743675004755160575494112409783837723842710905384643131896921492504528313390045156217229402716621889610764054666621606710707518472365046719970606256599579011303604167987195935826473591952113198933678901395615013507954059447546274696113201426041633252345613191418261771074347767139503728833734893511291898346100089806464168124018151384377231854368437498456556667383621418284978796984831671392396860270823200198113382832509629229714681107921607462112274572462709069492955367681361981121021753907461554866013937684406413650917110039362849525413106929602451948264548369758303691838020866585892120394139618190929219927314085297538337990801146187767696581813533102870526110542725520189614069065427891901411863155845483650005014896614894876214217361423295826760680721560404891141607189063299253391183890309132108464275446638891893383245586960834916686538331647502117035833354405494084382131212909010712647344392786169085380044484142540743815813880751052111449979806506159995753461120323919201906996537566547347630801806277988673314301931940782307194004458206606726023391770466682317398598769767216985386520053319563503300169832640776443775778086269817706348663188425553370778136690829582261607266552094926909818709187586611579578835387310147445702381865473170135635744037985723439166858280682611679926022380576099374178718348770200526601630194801447907838219853151461565770235809672245906905775948316243393894567064713589917471281747927633107232619333486707496689896031335615448120658270059772049777938184215640395916740056397769050226872818345483701649450474335220002796210877490815404788660252437312999732682918944739637108587570332915817218623425670444379484563376540139242085688496367161854568472189676093877104279826531534324026502099564640602538288054777375960349333938142678047361436809394136558720845057198611863418161957699872117492512444163478232274880335780361803763414883247808358801121595910555919709283823420748052726585823919999281249101391712780511108531621122656819936302763803028312954688823075133023802938731855168443995221238236660717519220817770756657631250891958537090068140680697083459847088429886291714565592173129305504440710329561170828055129515943965939072804618235769761868399048004466091146823224290000291506111774851329259742053218502854997277772130624725426615955603392500728936570722211300752874457337058617785006915650345093394103849044747934255920837622270594325860455786692304264046246300596561116079045108335553850996230346822044084553048678033095234617106978950564493589159677815395975614299740063606571856527280069041804016342710877791725550787894383449443061417975679797012696230443678199560562909006410083681549728162050385569443774548233235935586832578830220434129685738066242789138746952645221923605646791455573935904613584870864635846579987404752654720604008835241168019083166401294017471847711544028482275837084034515091737291324107615435787717085227514323602769316014835752321601217550656154580948395346410262049756356015873024727679579087033250331693558351833982950865860356052268210966311513025448539687712014148581947289553670206242266038966185262129417520676591598291738939189414939322670299473041697610405675395654554496026486351712867460629282125669485262250749410799768293230681735082656088188594261591343155800020409546726857090139312565325768186162764751576130160118049155691332059897476720744836679012265072869419426227244376428315175154356527037310556053063061155803180475030530292619165592973233187091939858484133232878867316713897512023457289412491223039381099549589398429790980517251177192287615382416621189752607519816642952253738753818729674042607730633201386481061613911790161410486097640342424262521678497856573424858041233199388359038688927222719690148491215515336835398645223657698110557130642987810481044073784636940060518793968011157454901526639366388220214036930334263012455963679569088688238586833326054115652497325091874483253806041736806403922608586160238399281966099332604340551272430559273514434462580464342702108292853475324843555182201304781975072420083586667033415379026829211224862280637528037643514453751125931961480191320377668583419344563533251473763861788430347299925445494390947775788106341782936242184785239039784511440571868604724006130078009260225435667829383652385430993386726445887666281710071549088896905916611667986013719216813009746279308027521168898489977176401771580144682892877452672002419294063494174756292624672710450404993369411539017282825890605480303293968063407666002997383102048477998441792198169973984643897772478285792987172563071552501718040832121811909908949689758272913714988961462720719684092849930866762244157198703168010297301201378001299932993220853012168305857024407107604209380516704115082266732653881692737819465328327960752966963850956181778490525909946831234480677544265459987341245310769887434734528653502878500852882627561513409290163608503786894476059838105686238964377954087786509144121502585447051865519497051405353413321446220756041847361125368221253483571664345513892936050385138984167775905072018292346219219654247885032657879542913586211245331312716533491129573581089660333433384944459746406818890795720450387366154963015150770881709641278428880191930283693523699503320855710627644958394679611100053422869775372748019373438790717611562448915958834302398838826530141280060159585102964542137976706236397358312913288534426271789857872263319361314431608270123440594742923874895920332983425957035697318242237840908648404942294151671621060456288645710656465022124444281049893824730921096329898101917312182719576282446386863934827086487051894175733329028244228743512827849852484426720845422435051471735803723753874520775062792873256370050285927966498688466443501983043062933586568502322798415225070998819829049327808487133239742136749828700033965962017926690686790884815416196646936540857017371730747327043799757000243554832644489547369807446716641996491258724125331333277476608053453964801230294475003808978465087440515048102251944565808460200813255738260049127736508760190465454154028539369317467294677385219535431462614179793225105828318991722256017927744485506093411965353366414325621449839230437746129324584823074816913479737938066311110408903891247937438866122616389366425429313142489891748761600273183070466146716487103543730026732715724387852207190051852897770435527791474507369415195672815167277209691561812052286986668656338381670617163095943690791141893557157632551298874150972906539291641751489976236133161167394295260266320948998062361170476176918129673137935435542631990539123561330906174779814160585013687844634663349841745790116754146658361638598902182485124320225508959037199523885682636917996864830813478272605863352223111552672512359992474195783820698973287847032312938740499965830975895005533799057137600211705458719779841588512304241543933943230992582793944084146333138377497467371815464296096210278522060176157549755418600504289783934443445726914490882279732052991181755454109735673084595318603686298471793733368986966455719577257830253443483694566649385570176541750232813536429115944819448916100568710732376776193654429252545358446475435327378187652950698233373683414709442891061123651804807832596919427182830878682448664279403296018792854420384582026998530437829253688442490188336400068044481197703931336881077054780073925559780700866701849187133354725407474888325384379921394356250341793905671775314234650353740317312738074455981530218094985453875517145135539861285654894853550283172075044857919582840027277303776296785183178282139602256733001460728885425904971158225737738429790377132576707346824348075160883732348529332030678756050751977154276279166132897882123026378829462754059142798113002743077069193422197501373814379114380175012613090461383618334826957665272823549438251527516052433215947980742331604213115183341650301487954662055170034607725809601201885905793517709075109732175403330446104211705659367316983321790461165663241082401182086174438873218808748483050712871103974762560089140835876579756092890116827446794905054321600694580811525340147012603080269790029085326450862903894904847150726792809121324868535647214688135392424496198222609614042083948196970612343875960684261109431992435479867751336617429270085157708621091759747363755911724450023657792255707026786602396103188115803525269160212219456013928374150758438919197555327278908376379323329184946729142797999348469224314084393520125258826452959111599686560111485567432380420667089920493903628810707592817182882032130163395064331564324385952096276270408550994378126739301377475293801870994038247125296574141602026378400156387498774390846174881025916420539035866175689750172502184030335394415953720834640540200790324464950652805341951347643208818399193823989272169727230490895607413876604372342141703261496692959040358321181131588018923720565544033921681343256781742534158633372294641873268890030677722528576013545105626526938850843115313365050689252366064161142107472309204899357197754265531245830410167745021276706568747488656893910352377374458990519474048794228646414067796397523110232428046339074664863233537288957682338170015001395771635746369456382634784280061708154466616180712592854581135886121987795742441678965078167022509464694990706601152906547502675935733193948354422185061059070082361253272938348573415958006585636391938544962237088848177467520470511178513350130136928474915021107510734464728310101527115023988883007846808004263729707322578220218391344197118781080152124173736030888372852525009569901398464243879928966955924707979306380265083826193100461332204411706011031456798983757820723576345095907663627739653058493173008579733895558633084373654628678681619082566621998126040290948588470471880035491851738264981437060916075945561836284740005261291964262027921106055084273754310773648059488097307040188499117135023120210285709340073640687193271352711156967967339259797214435627473598817484699809459578710669473978805452560774676952530340616564632305746791098089083638068685656674344583290612901696655595064376314342876461423198814734253865887427415401478417947510711945737827695611779976751137767758153480960332142714152312122011644183538717018658243882911041279284505571518403517933231477641927347875541976326251781816837691237755294225779720244644046507477620095316470528440098539160768936783496226860244130726622593762340258051889895705533368095272056067464997129455130125258472914680305393183975146599012687497167064710409536199007685997126839545170952142006135322554316774801753429258747638254817815263520768912360079901910650229770166538271312243602695116586372611531506216417805893259480312182765015659222516283662937955053312844075734018665152767644822403481394797615591085723553818741567168969109332948296128616981545402271563331296062187133607922428338348779893565261517493066887744969506452547281506197621695536645670132666051311935822424946330833067158564685810654347343860881446464201145650208217691075888580127033821812778196025976395470744920156130189320635886000923869796631682672263001795086426315341500847018192355406075734862167813678978526214943498903832870497747462914893153561234166897194833811465500911870006561269544871702936560569479672390456827296358900657210453073817082121605492442872111721220090805244329343825823929035019721270049433465270088511459625036677462712692152018435627555138010366147112099516965357849226622423146589906307611835267757768263334059413045302953221847299566390272034754741948674036744752059475904699291516261100751513975367245566062371642207870843652576622570464057509523659968343648600062653688920951752008765679861322259775010274806095047587255044315526983316024901904772358547593634634080580915210730356641798087739482451293256469150909689940857578465123812097650226056423988474026345608363609053458806666100483369631593168990205524020855977092932687949440579619173820422966655435060588598648259917187828689725869512535802885463101983633262532507958992874707035050680574689994309238510106912348027928822216784150175409553559768212418693809598319177040200482452756644544819728837670951612548574102380438808920171247919000080522190787532030338920417397027075494561044119399134892899324306434687277543457368256357624867788389771665527649437424062102965731159612763041135872305332019393967292965944747924575029738175658771231491177128159249352413710647138821863071349723782258919063484375300023879071112384050980313959693466261582078964539075125572240798889952706965161422526866494810530199232083928960717312595582041934851253428096173445838902421915359980774393917624129420807295024160857984816542590421180633977783705391599988959686581957950494000396481337120399696940012902118601309449265842688502172479400013241626377548409953579403687120365754594230989831693833986542749614758461678696422416851616789578529384201380091000114878188132207842908711652204022836859664963191842448570204054307752657641081761041044738022635760958918753969639801163378767371213061166844076819077982758720217607927821998320507960671219809328962859728657659119027816628812910269540759322703231641331695142368026534869233232815603152148963968460225982825000528356429719806431167153605719536291994059111265609577959170362348377866838988919733428548898243796595449787271784803385569550939226055422048589631798382093666564259234158254716175783232350383217131102784642399401870278402660753216802969577377038140702152418811341169014575277528963498372718205223458527142943127389880585513696621727408777557608823303442321758888882692922575409910141783258910772694298909687813271465231250648999226741006341892963056815050449368922019681231074741777008309442686975536778855204502097265506936602381616713240435799623977820637700283886181202007638211906895734486441620944604119826416037452034813883443622258390188650628747980169212925152731908677011904832429359315986130291326249439680609305593876150843253375013209104113074070854239814145377559049552189598738194916068805815944101603202285902322715376793252354765864907615232240194419981198567786546200904302122974875732030664140647694445796709068080601642008877280462021933269950971735457752484287543117080989435497866398826651204700874208604680094860674782570282041884046193161193043573374818005401322868570274287169528582505847463607169123713351525879171085025788565958304808656671272228873045787188256746072996259451013258718211382957305840009772373848275398342559316643877843669680390018716972588226113182862589217612904212402134645172699799288613751456163866817675181714204084316553897595577604991314631177287125560280905281566633750513704140718957795563171826437838339481601197777028119498855996521369612575839719896790774660556722629332137742655154901672994942597844681264245360477806873263164806354777345682904595049023446820830021741371792652252510279976724720706721656154691549837095337041872545419128367596774896305845068781884005451566147761944064820502689640337900499228704886976065525661840029877991422031104255878840168742348114673141735027959588725878378309545216612019696567409972390203840242526563926265684028821908071083129848441755162891903055861615395453156542015703563742592933858587677831768003649577418378444694848356003967557352223780105284861231772891754558255285369968197545068246724746014785101327510918482624540352121158306454453943435399144024412158244464696791372669567010279197323777679997580027459265627744534350803708270276471906364431795299943813301933393371579487210834134115414025285935991292262234846316425216994129268213093163272402194442718431563293281172993501041538264010572507442363236855232025012842007511546218487465561208031250052685727331990710350794259383219407919165373204819623690318484264945939810211413521682774419070297182224646597596057640972096291462645463533781023960059705854178423234424885412963289927651912389279022645737213748627755709780883578886494140797573424259795747355082108064770357328014700941591421111499312090935609273051463867984821774420254755550512190108100368952318860972042483429514122377072648478903498686681804524008299236912867797583833237170486559402313151181647294017822670425301270089373565771335540657476952227530334377562020731895076234096476407007253539861534595379890665207318526671541294845663455300770868746245000947168109513899220534863664391946083986327037973797219589230251397624986600851506042558784983268718616665029574569946375404679203244565391937372162521906703822054444261656713977572863698206561423780446787213979777764887031854420892837465789901410291495607197127782373899820290435381634523739559344811115835963284734338537450966625403103788120766609319180508263806457280829714049692156218208940209284722987743763338114140435464984599704773783518650586272300019616774869587790216568394661136483757090614320759861376550207688042561785053651288296775633535497797859465482522630411364711348666411496466227155605709764962092699336529368269730719671053369127330208997141868663148532271923822173734649201959358803474648685507297500852831362324698446337941310703321409534353399742151900307143268968949784843805613972140069491786615482716890625128846573893567124654176853642936556473626209820875578598072244015464030015111042290392778033576554936855454401874126632393025614830012735959515493777253422092126527730450781310032538306822096983815298141757182507836160570582019857459909749776197378677352292354462701093479415426570001488774589789045626977586134879439786173616077782896216962090798031185471536405845256318754072316370687001105410931529306594714301621668392992668956134542560706432383268094624696651261426393478980963732976800881677865182961754143506539398757572594942173025821192659738572182711464094311269996433321994766418059707212955941670349353154727685724178475190634260117252140640888967937225292620669710299846434272266028295565533686729107532367232934015613296191034906301120088437733192443112944071553537740712127340400448540637215015089469910360196863542316542473032826598765404612321890460753774292646682248577241638464734740234406180722464939638416752129744935573263889521970319233620006773131414186438599494923590321683463819216820658000948270468922281118979234466263387263475351042227317009358673465016369539546687099329840902729248763514429813312139105927538164582538209764754184134985519905287980056474031767756448233986702165785790333231765638413094389618626032092745332236542870736587423525934216590195022758237318684774971063366059130541916148858680386072012336419809763759796844860696994946569057786560851666625065513566041034313665379058740583872620323171072729866178822358337305774541684675196364576980549720065435603631202493104291153014963181716706313052799454912743129952151292759663176896110356287918046472796344026287446180566353408958891647762336527892743758184969025315400197652445530262859433117346796398762429259137573646050829890022861912727672158886810075924175450792398643968675669931233255308701451068785212120508551720466965551139087847739392494434487060816353219522703298527625114618299233855071414215151555327257647638455486983693607384343367149556578788988343244186849980656806440820752823475299193005654507476251784125972071199369173525878370183159618279500957384518799025220731756296547052671655068806322423071354758917491307707956349046950526094381386692127996357303346662079940132025981888877505613966948055302785236419267981335725131140753488514118117009987176986595996517357293636943310141449150515579160231454892720200602924005211222025152662074186304908109356196183888437159105672590262127469379882716724872677657211266326004181187082707767658490380675493302108418676424456929085567786146652943022628647758033539777084547598480608055804075742239493023079956839036960830606182346500615693093264505446221728927395626392709714427190778888944716960456395146151945748128307073412394130341534361950343265194647284829308024551028569289277952012163369753407222382780115671880216673733624134427183469633379218494722051388424281170777652460606243717382213471826303945012753781708132909492204644202597934501753439928402292913211696242919605552047715038000456454919207784880712697423450882403143097338139284245932409431812574639439209436672796464704244937308482822777503622352304053555204031880267892242278657756977908303301498423747874152377183763753264516510970430906026062742409157425220545633372193785194564758533431807543031054132019591673348537050686584869977033663352145313279054681110195141508286747494658022089424862415806690410466125440603315080407152289675970752109767532304865740745057631631153032250315411616316538040657902564201344678702878998147240718035475017822114583365941039259854946690067126753753401784161335102325806364455993104164454490339647485767099685403158392815238124579517864747405273782454280078152773757829120293933708164642406461049750010071548590535482485215816961413401985288262486472116166126549630177938167958340567009924212108246610281889138511880583745880150111086047806539762918727391784707551696666641562680783897017540240303909721452048253148900867551096183515289599225056041705372614374809137155270427372321856194857199707547457305287383948248463034799172959288941964698675587475533290857788677568354927335473219070781450967310343013004496779579691150702418007666796635295862656855108209220592053545372960144774733237359419506796870033584722297587252660847756481405567064123718455096274837456130479331255031793091348192153317831093310264949923925231120801237743137491119753181667847012177653731162543310186174614855630479457026522391828218859921313843337081903359608174519326287682985678546311360866127895266717309766159322131751970002297399551905251774458978897847948265841104698313708485197716917816039862908329724958423552259506884722549977498723185212265224031194546329939590675959719170937753185734778539052080353967963652395960714332804680350607422635542297398044343532254824612080247548945567300077188748290243130471733430297938890127938239312811209914492061381088082751137613723102342403937469118458763784369275904470648652813651561555404106611277566604504277699476379685453071399715435812753713598858898551466267442458982178104594513905285390993946246413409594000778025040893870899710977460062045328575496410081971019518396574556700100518107326984165522688347396627037809252835802088484609048653653385831962984650226060948447346709595408108661698566810762869898611495287527648909818133617188450598159770400348918253057582675064336395676303340727504227890155106091774751627002622296554089707497527035658470969487719423624103239359361684866054921455892552214362214193102602083151712507008577759134691834616441993898412252481120334042463410710327794214754030251575929655932826569626336742176132717394322433227777050610903099965188050136339346533434365331431504126260504490274428510234470146646033949106813292299258661025950520864740062318147400748993114437718040264231080165849565187688219886335469984070522363898863906925182262575200247997980046761242563844847073727450797709004468885657576526710318324192054466998648740513279805947242002199354346698873402464118437626247946470329423940566705723173469357011772495322190447189632181482230906570368272251458165059485548506191347634375862083976379685409816708289539016354434880948342273223539091263117880626512296582144114488635707823304087089559479316297477350069709259011023917142879318248547971715962394155115645952955421855068803972493727572927976613528681945358995745892853302488081886328374639432185335299337668966588031988127890150469623484913939398196537535617717520961041071485287285084564048438669774966600556228280276881700186554041227883914068850206678975847927542405296317284109616203369469216077412770442051616001344367152331352354269981553726087021371843369264348781214170720918304329791932797860725945662096728402175761213100282643543213515139386101971369866744255675358478389754532159712398365161362346837616891032747622398327896607681445781833988253522112988096323832877354957178187865872002918135805239996628125581593806718802937822510298843684454382499638160967473849150114910167057774133558710831246653683055334246800811244605963168639849725237321220850623251692209249029629414846140927348619989037396691741942685057386287277713050607904087641652470456624953456551415576723923129829524628167831138797010058873134235794819702654309538486273815631135111949805476958544756154355716483480577230652282933911187977935492901005863632497010911270604137677804488437031734762188082511645034330031121893603213401842554033435260084691471651127185881187578607577043094424092891624377897319076658850017211687624253022758936035210053660587579189611035088892597869105081367184557501560910602153734220062177222037952097300785262277033589362193321865160013488348854122088445158425528049664291223867669480472961206786281889623040709731077092032411766070668924295470555647091972895136074548284327788308625285150961943622666539653719681278090703935343479798418580643874078678624253391603692757668644955654837828100954620133551340590067547249659574271721453453528842690297296469442808526770604133685411994902894417006510537782797784517137765153424295590286616600363804132889485839550058652436973256908922802625535838561857061557988477344864359143067568597548228491171788059469037420222907729290583364022909217375193931110887339441903341641008209574271900528793993372388719947538569263196199468126479802400671952583753481330510810702000677717283166626369146398476573861362746916615969523740906853884077331045969745972528150741232896695345956405089864325301324402085703468658247301025741604834221830173969923503274118915433873365377371772827339327160335229183511620120389196014695783490812721535532253589444625721106485811416777959716044016725234779654040488663940794812666601926246635613084188785842999044219689996224162057103903065932900474808390145105235776209123700002228694800747197667110381848663423270893681824830867585337530674010741841678021246599729608959686745461996629853991993860838747166758647421035878327667963226872972245065967608376578936436574398975293359898602796897141207204408725361845458972662067121185167974446233032025180927157853201209628086337570413463425072819970705975315267290854039104507754200809335652618468381465492604577298633346358238255352880120129156522910606765486520473470053650081350360994191036640689340778332376562786294611663131343166417704179803064437605101956921648319836836726449329386067382843056760100640108947995725900666346468176620600552376766252050324388056991907589116320556365262668019347036220220425975856039892110316092770300520334920191765941757466108763487253173115017058948442840870865829636906696889798441845327683936089244524495131511152772182499902392013818531572354346435082889228904251310926908534069531627578758738644561976689485265045851315002289164628999534682300368339324947352773824028780428291659406250499296918404101655618642792525511038074170312969697273467170140733618165962316746860556893325270888924955558194978641010393442718548791931060750507797741179663373273720637325965226845176482190443806746841081754194750337220411918144648724338470933724957765652407693289535994790764754077304902367183759598335023918475447501941106746949592058151949090434773041900743466701478211494035599753345246032115865514745524993998048983401248707038985498892713550674299035422497856007491672675096574153278646171129954326834828501842573965187977208542581118299996516902382057692425061051287115580230939351007287442143230944736930273852156159247990357637857231992890446392222264386146420727585472803294933141877637803937724850192336466593728509612905787842416961015665625733595627094455773572538698607882309724376282016086044804169516436213638780839549015498156760791591890780884474575994957018071404833725106610766182990993339964977573623905556877478906271716803664463940083593601500137721032973833440535772216912074071675629560044376396566811446581062302547919568858999225137818588531048695555506938288709379415616495784233537650905663264158543000882799778022552160502072078717782104180327287106387074870648647992966264009548552508151918227299032032573077170413179404052590507681094205513777762483760633949396218987086474385144962787457470417261495894207368856488291452294191462318883050356968301060959639452663577723324180771070988640113428916918984211059221827397091533271345991950644143787651645387394847329637726791857306024998163984831018478958129616303437284738511466991644930051526398380904351326510020584241343993049325974752062247656675190895327503897502927210129203824120658045921540974628493487045345816592531013537642125707830565539831527816427604969566135570863397145141109544913133562947585083922155724907604312712529523454843446776083116367823307957811147060046836013845195515493170245849885906538958471104651796460546159426003433027384502342053207804369485993104087197527940948095305522717604732776689882983791319699028017172574057521907392789467082296801156445057738179591573975486312042602401973852882859384732602909393374218943777344133644873315271009616398028430323068433521397528448905451271098132558790767871546900264639066811377096002628696066978283165532291092934258389349857299243391613335126654994173180924327502242828549273919241881324821561094809915751461509328910226286438380242073857459653219381363501235968117880013980873752315883387744560899042035135663916621658025004754004277889995223026266279969597346367948695475184545477910247969873586207872196242243950913788091448578430238212496532429940718164639666665681858109217071490017420263956779923109296208381151776186731651718237056286550115421055260273693846316831014128802009366345053547674354455416160001121321828006319928988067344779433513109700802098218385477355213915449474477018457658044528950462454263446025125789723068509915840509310375051555940527224475425732920983025805616210011419629879646221792059970647494900827811736132761116746466824363463020295540228328572846049667854963046791577385131002068535486862614889951075288057553420777534604689177502686786682117964282439776541903628736274664154045664640152442080577431362479379807957209007375719830380202893775483730156459736795284003024903030771476250090285297900818914284124563567718919266811637037545249128962398633135999825752037423212872892736359436142488611319201106850969005536521248256828064253961439822445954162487223520600592814614740970921090455130487126441806976131654122289202059337635191008046557580550908611714334256949998019732376314733024975135225456721280266174241653244054302490877882365306891639217515170206252963481220885295101262919150663726592750541560426271304457660501068297645165284099355957645991670183826103863636383345448097994475159068169334142102455922134612462787721433990456858048491005907401567346530274403636312145398013052568387064400965085011085513229886631311792067213186526592809777641909663491049884463848603644140976638168919288292529548856233239350082166067018041825490481336744789970713158746275452538967885596087266802716273358637023193625819708576181527673766048729487346686738350860986949675097552620633941808836190239535508661436775557865691818907438951513861076965270961769715147034289480462715841829930124988735644705685667859359312055413038231727100235520760109161619020090761705208394298009316507070518297994332348591325735642499580683688707481752322221286332834849492560162899418787159744623645390666231130208547620515832542633242501134716647839806585534979499951588402873246916397911570567173906106811593421876023605006477760548847294920797073067338075975944025823900948104951259712213083535382694245644159429554761299320399481544574810001244429025806239443686791636286767741577355304737133831728846681454389407091926959842327628541078699968711578563929855016346904211503876231053284503392937872468922351975862151230632986872624056499841648017660501942197575285562334077241098723063676351999754323906793125062995399973996984837896248193871509728360782504398546275057276311332907726701025273857641175089740894554637057628198264673221868245901127752846044022307739994522460464945769547534115810882351545374464674110358154553264128357010976775397030469834741658208888216991505534940734436368816843677926626379363081397180539232658945327320550264135558869903131591164625735618567267066154504570767889627951934237240666738575111450887438975964151808248589761202640866456613211912221270065803044227693821612683405813907464492610975011297562019976711073187807128543460061273002433488834349661443623658618993291822371206809695890343377923828459937410281284774951208198441416754729569079056332713835150700796011129569118288071238021680690391707270660010396363232963228131506290139221328510305517689211292371673161463766789334584652230618867411467271795245299288465946340129224533161643601308923641875936147929811535720056424362015640835606605296625744489817536163533347660155753228365281330363271945319317085100791796530823891861496547776280697843857742924884185550570326628266926692812099650767992710913382785848111347509461072478769269401621448773981176768894268986355686430367014795595975053764771104904041171850894190818358897891916215969607441623960965790891551174075188010606349244853880154607496403259528175752747575361925134169529092304988575222493062398850106494719141154277470899510878012549411746880486154068753272281775846727201493430098654224498651928956960936049911982086943309081370213537290279811089338146022450923835540247983580218674701551937168305583576182095031025210263725508769007113727699525836496229829252209417050360887202288817006616401213984431170274089193199282720341868462202377940419192779197508789938444643086636281396348856877123859950698596415197181507254383676059144438263128957471243244405650863887481894556642885057563133533760282119613798260442934168581117581713174913995494753401317729493353955972151459956323457663721150678625875731396759371545916572656008196265328364367321519208433106689924019391621589189838489014281729250616803044551236958803047798743187974014853914209145820974343773465347933608804888681642052004633959752382763301227013187073415059940108309687057188884744329127650775242347694092132322541903134289611836631464045320882369294839945710304937161929794851082717906629702684675605045152070357164532435321049125258848812524238707561070376270380058726070289535308419419557327740988060597839106125631855939882327164851516866103145295241757931661455183057313309971581078446824537269980607706692436670432192322013996391634548591796653641244266460112110727911341193996250577690046687787210260575593143858254019619892724255940016298156949287726810404260294040999498437114569230089408746996146004564370685213060398545885159230445775958019731481012047707501007341809338777877419174783877625211180045330609104267643476820050831226634142633570899272212053458317017709932346802258892253735160445100397353522999524551918323602022956120510147215492589224490882483620252793546015635461729034066763347006016655933517953684858118971627150999601086222285168797945644199265512462600394676166322365335366508556312312648689145797423987430390319896549236890520501474380745718156703708842397685052790222616983747255277263939918065961611507774821956995760714007688593038622972872939830891078608743693602780677396988478560137902581410436967762382436978378774412146879376619752396457075078256931242472916243669541483486651399861205009034574438271788766020886656198926121948825472636650286215811022443351541167958795042577597808447425819449550219793575263964402329462404246099557852164916377721775522332398247216491642390806422834149946417923678569178741123321621279332982965906350766028546243327062210319331934946014905773955395339533682697732634120948351607914836609313157606461035901458017585470670601343983584962453795754859598902314878832760141387807864748697515039933167289498590853600595494279523195420352089948454114043801628299761476877104044097612713539740492352253140813255751692252399517092514514317756751176667894307219938741660063787036961953377775957951211843158370045052759206642693414638894803516961008751906786864560277718536848904426366221721523903124190913594703699919511109089903896266162882432956875288536533732895017014702161169975483764490602438804509735768547512127312656454123701106152428912475289667819782310992523513151852901903933185908270646473794630895125726536234301868842339092669894370432044394886717779044166177874310950338826136360190637968598465131044211167315174034257970490389654724583262238662589738275281445385328324801264446387742771746872321465746242759206377488870965761615718046932617912529914527941110665327903486444674206590147683363498818990257833578138123082333311916959079659591597913067462381282412196174112135443415083632055174380566872000477294625081127557636902928749299327157224367529874951469457715653893798783689574986828388859970681032257344352064727265061688697582339956497579912978709019750519295530488528391015722668918788576125840054975810200513576110124540297088994278204603104562658769038325693414913367663469562553047738127674403133063727399386534961689271474659540566356285284417383063561329431321858302966393732308698876639885855979519937137729947711817673849721696536720283729499936474070687943527573822210212756429938366301377776744032739189459409786331717073714704502448008756342838530844948836890083446463071240958983625284820579564463731823102114801521950334672364020662604917027883246547944237225473557385122650835612065307908630389233750114951480456099922374895694575456119250322107554938774094692979635656367498696086134214617293061524343689779578771574305381865118078304403080309217536055624278907606365152726767347491494134073304436913197319439588130640960816749910017967508692155395981198082937504319466461908171074875431088824438761605591119432692601775328197781505031042527596630925050429601123921697880950656755620154960205114356566798618527772515377399681747599263137109612792402949069374975406643262529245028588717077498886082430993538438443158025144208653051984528762383221212826687383752130620523929053911452769263260778811001334086104353853656376643698189526860192370841400538616742253096042860521703576724178808821791193550989744379565166688527510691857995689263217269118119623708682080036785157943161170379176046327463153677123194760169318579048612267541237982479262829847763909264171124402344102599954745450716844132987590310993388480253616324658672878173940665068581606595994218066669447742848992063365529431852928541779444177515750300646259519753153475202967900491678229343135395980255093549233852719872176334253509414864811231323050819728564355770690529956747519064393259144297761239509348716563917029102784055155280290298584071415792924080628919866804285654542743786004407168963926832884394097607818912590540256789837989806361832782958541260022687516358799988105510169728677199324532759239891872430616460585836557977841718691088742204837246523613093554491447682819795260797575546864440608684592818502269648788928378963234761340489422578107201276284426608747544477151608608561739803350524920487630133116096623920106011836166304878543344672625999136823400475805765336920013078995868472180153833964085053901800700904644610337982747137899655373259345683678796783739006835308660219974936211602958851357745262979545606855557195972801857278071372134441240701781466639236499643518717771545432084825726043643679117587795778609803627383862119117246364562513885535521760607069708737139490359581787697408552349275661548239462790270508131139189448181322998302807766127609846866228952967958629581375699965923541074507699699816330691264849250254056720233084343500822833969136190739247514526948524825702727550981001132527292269808374612913041661544936959303033900722997385446564284104160690328302985433796759214644728458957582178435643498389843184627678570226980978580953404592137700344527898612802826743224267375889462736135260145896141229790407494758248645043870321955266788154784661208735426156118199557816569511158097155670088880586212065459786983410967964758161840826214954062036575765763415256010989543053672918094255974467020011769011534606603024215108799457401245016331542096997495378230422502805728773233792640731873913765864146212853649749995794954646681554130708038378107541004825755425346611743771943424688278998632572293947938716806078365091978442744480604883875018978450430572179380849153482318146345484072338050488653273459612384869872255960133610482152505083208873865298222041401527575951400332606790866552816902622658292601074671060000184390813990236411713032570136733163568553068149218868554247765488658337726104375385447686780993232425332927932439074034853478610366604341597453039786186732475648986295908104655873486055678322543091952596612648400431164322370067454721594259253293632752608012917598968613898879820841593957582579294133794582971512706568143308847997275043089811870047013234302666466012452986328080083882254584427177100559627611908566561630120770612992935357866304516636174316741832199226145446206294796018905419588543605248049853273161040459598463855384663578503479974115520040247227000698069887778225983552642432272874600590478863980204781462602432989273910593318989108263643805815766734891248728730842490567533714355700185373025706277669756076970244427645934758306509944702912607219469142333419594598612154345460656171046821446394972004037866840146418147197418431228991070150603133587926327687972179773468105371525460242893250889844806327874137626828767064109150875903748068161322222425498393742916251549349836754450694763010914279989159288683666930262587572044676317514726831240645486334697049934396301887626980334440617262633835962869055320993017271285062777561627962022294065262837303414345946798203292713630258964763100580160802704993280659285706701268672850678783844450970213527740639225525066652639000535063899102581180730398985547777652953020858252538623158654328517412257390786740335599172967236588352873950327163881199528647487632600884957835361800743851132838586442251149424391943043702748053396140034602099380327564920746065451430880366866447183129044372983227664959518747613576974523370264536033890161452536727627602850465909221543349612385728361664443913436274483367619984994041439878296717366588341801873040095764160179977844484014853437759827085460577005234671369074213820503770870406193830763580052820805744928020860943424235267367296135361695457708577841595622483824679820631053144474973372776848417389565448850645850088303990157437468769433663872438756896622510235664105105520955683639447381741062446383166413805270590014917273539136505818562205301200276960465468776485130242832275553786199663404555842818280596155698471579249315193919944934043018783640677699418479349422432650699155223592018540604987705354802039962417817512225387776592342302070553080583233291566085622323994729236612070914315862334343342388900083111132040144228506144198736531790622225032517486641528612253904195407079713932349964325978244748207900068789720821195683681684263254539242298905710356991256236258956658692472509435250566129452002795832572988363480791836768954296509584583056061829107576503583652437666040605890222032320081247958535311715923541559891869029810115845948733488067262972884998628042159991148227150958493402128593736030358281686172063574045654419940192326672829781496181361354140301976658358110137777837010308395294077386841245515741480356937604078655774032003567868249066013300268446230050694255134972414556216123617542460877662371349139198438658504567094454537341544300081661065911016930507071409088407327110687960282874071154484101096160390620735488539378148912440090711558858428116811671598447074224670630479104577130372524914376630908033742467590165925472313124200766361298095965898895170419506666027665478753949061430692108451029601368457735344773223885513353210102881018144096296228335215012999622930819970492406096469228326363140756595844031391210170779382513369118330393578927511655302981631257799284735051381497744757837297441399240389056702524790818500108850822037650466119650468188531728707180193411340513305402910458205735225992875619805576073262636319306835610364140189455386544327539031851548413412476675971502827466164518669023798192624993044236532590043801444874890214887271632907342897834912944800119162725191486977222581991445989154120119833262687233313377270563209145128006421145611543729525545414419396560673464726562968865658864822380592062354031434279299569579686118952977895454204128615116932946686513611702839733595872291944578535025062584669991258505939838034622855547086704553154978686425683716625576091357016620482999276186270061316504722423974170557325258276015499746863669216850887188921273115866658674896389037242162811391930378795869457047647742903832616633214737832217768768821574441290576861892134119100821816631669584007019914452951972944484016154587990661109941101330000270758900060943694178839121777427760868444632837565807534148845981532312387637744981925064255455986077128148610532265143288146373977205756607557656625123477108324787275263921070613644164809183711512810619929753597601819861342284656929899291831101049731813044936040053231949096183935464677621847380055882936195279812827146512172732357214681349442188458499532709815360303880963663422538492623872165348709335381210690404047814057645652840981581382808064388736908384320858556499959900070932379353488585533248216348453424202448872056153926021487614746303440614910724403621766357570894993989120517935974686617686439471226041813887606931628721527912026826565392808176429897504676597835633506644069597665182432586806735098890028672890326392946604238761035615871693972613064323230491537871668952949316384888945729970956615609961956821216879399778176998753154779785481167151610797121295093246814451468371383365432579638173272286383064246639891447453783028832270264683652120236820596359909408301678958016399755198728392355757077474552144409265655000058027916977170508071571432413450842010281189707464742834999012276330225864519248866313386011908922825648820011490694803278956643750464292363921143573416417939759164845136971325397435972792097408357006741214642656405777969924527784983201987407729166544104351345580026037092231427705714049477173939080227746949431559394195381691399504454114080750347714880038445651970269329353085787420763759183121823579537767153723179630959899659015099938068370802613738654337195166763864618079239424786297931463547709495751921504144888537180729889632440022956096419130186609611246141284654916345196150708310422041708441266880876469356568702477515427801074097773581349003243359412378681566369186953260751166466007841074807473271051868126163785195910752896152483914474188453755233749558832228172472601080293326920397825362944578542120398546799113607842485238656542903791153921027097340581026512287978432988838336385587175533562109500710045519029688906017153149404237218797428969649733855312450424085252631659915548202118630732496939167545554561985598026799219754505982936225462816836543697928108346739022136618756746370852756096314116675610619668208618032768280189541757160482789132771895408609509354755533689068600309196190597096010848306852101128352135303391550073805587118834762594751505327767131096937989431453900606383911318708261927127291470064634054462958135401583507642482702067687002001549297364968010408843448288961044537657814840262612788090557113326413461867923656837888828705483160702496603418291181319348172540041961447375548064895048615251127170835631496925324516237790881895006250379686560214044250229127424568755383118013477868612658528315480099179434046780437714496545580993776813877243173571293138355209726355663363592900109411583144887291376575096028542335478509649608886814076679471476848806847581307867650371009250839648940626731483213942231919680662623754001327772831999886840894588401419212784983568795077520114460931864498196538724305651373573353496273493523695069729754552743354916945314568213774228992787596567694081541020682520235146943550592583436360017333491094287515379113556656229869432368769089300787333900706393790187174067502551778871004543516718061298674984380364531151216272521028838114866541786641347782382236194831585632489693583504846670584678398807576973736303213100356760469761945617451076477560762144322480594985022161792511078356088141477788493888113048355580117950289076286681433569203926586182443018176509801036714937190843032409621537994753297330913104885055611489815984302596398780763306062920591061783178011222761623387628375617458436160387787007500127329911274697291391617674879167862444566783749063586209599575152465467917949888670019351097013822568630201452840438788991955518642161785559732437897784017458675856674989106533771206889945842445636306239938441722608269371760597158728272787061474584418846826877987452647787794872251257680294550335712782586842092035455780417780429644214700615152811197108915616584743549399617629460515792176011247128861915246630686263819689196054066869739044244454283118599856418474134288156490811949487747051622453353675689650674498141929196880898394716393555439098169905970295055608317140637059143494930171821837353420907182346726763463346555953410270104979405532365327034093934829593795809076521842150187348541392712335580995651744927608035367537087290013639744419802900012882424168272735716918998700349177652417184324293719560481485249732447300915437228193247017667160854243353372701127624436541168426915680863238942823173171938627239074950841269223024444352285401291276664974021569211970225016540617430327898240279125108980692936803870296719780870726744811961047530029342625603803385036124399647910456780527251614276688283344105237994219822407338591356476283588237577575536314130785847134343989162963792603153564400712132342706777907661778982448372728171657019656659592608981611132430493389661634289222856660561699589220300215020904368698962018297688426393972322285135216821079799885723752774551113429041146725941105682100902151868368326118519574149506509060228517296181948431949592128226207001547864163841026976523540747492701734799979057960196446380161741051268453539224625682325795465354900237393197181683640447424725235207886656625285273892549949814671097232457466290972118672565570612182867795167215208404207688864279858432835993979815481082624524515320345930598193555268285367179818704494977618065826397704726066402710721489644019140834746182084531637878558103434539121084088820441055638321659856412047161213270834190108821335781397393742999893416186380155896928806600443344003619328414123259671435633667952183358177773240758802805728537377485090083182903452020469870576046087742409409548237010254580822336105770450820911925683431146127016168906311503016833433493791606462782976737663866705207111228275707495467321318438682946851325956496408914836811721288540531176326069388546207210372557714742006999915939968683193098008072377275095805183801638587275606792514981640955957588478473245696575403046683233815563259134782151847515015499810008311050246391880382090937988710808722298195942562912031568141080398283350500236913818545541521055677437366887518725495594970211988918838913248909091028038970784380998011815720920603469699676023625278073683263316698624972921316594169598226452646831521294211704735237466003089028499260576344671260859210608311698744379883125179246919026687889875438435793560240316446050662016657064592386394178048081667622764184053820248484871050895608701320378418914707648629374984384188281008568692363876557630225977230311981223205675019326756621771609648992624441976127835208326086694696138378954401562316122679068133463488363025148828077447580703987510732368267163862826830739178366049268411971212684281437807623957714274871251685443402007198234361158917785207876440901905023724042567996836006729352775358999725836662102220485545008117162341772873136551080610510380867139065625681347306352875763739987253197241390020290570347483182982744943175009983897865598190754717143059082761023800626927017851820636069562820970769087438241708377397495360595134664258045181616411643196914239186840674476026972382056413446223560189425495849718971558920047252652909868642534690329259246821924867811234711416205185483262484598151437658242812450176506653585051009390748318416856815010692187265775188066645951913445154871486902952848595604742714849059498426000915246405935558294701581419699959441024054912598679463156174345606083377451591498876001141634070759154606116976626243835673250435325521487107302731902126933095171368686476321391566024407572763468856397024227495966178598935043858735846262437583640474717688927130376039285996118763891539730044281001481714617191239419663504324290768009334764604010125845016911576365864608121076635771340217975370140128154062044765042904151168462455233449167411085743208313142993197925196953939395103256438403520243872072576881862155813461054513174302431461631016799073251884290217184929886855736863141369910117027718713522207041727984604208355446230032467468813657275010629539529802276959236429355149761409224923238364981089460068739250119287037424643152130232662832663635523448497284675058039384036855651477822673420126545449455929058193764033895575988348105813299390815873082863972085158934479665935071102650579440948754842131282279302754840143965799180706758292996806278843809922703127985857461333425844496501186813847909640151049696414193466286012311519544776734519317707921517851619856901104686804934732012988107088590133313984763035407877044969114070661921080528328308736479242772439486366140340618897982741210762815207293801116908371379336150853770926512562257890551712044522262336859101694306647970299381091496545431400484740603874807741855690348975731449632315588410741463483927917723587162831060258386706031596136646865086213587450629970582853832696854907697050015526058159112602437522221049790706564589645549594586205649818724227056150242772946457742216563634873752915865369959155332735895737244760771256671764264716675835209624496244902594251817342131790274511141847073711601704599341054858439712984181254241035660713134004600918407910641287372070221941279430648013919328466384118337118814340471769447239848804386316266190842849469592463709257032890088503840356021225822313248092924488139420486005455296010964021022186961790700124748888867836803146609692700007101060779394339474787842391669392913352328961103397828661288562265567282818788211634954885137333072384920195269521006263929462529086390114212632363884217987278603039652197769465893859226692662916489838068304856321357975213358477621271329933580492187388744160694045763359987401633009403520627596100527853716587020257639218336923534488891308236754370050955220575105685882688876900084638500048099617355124157652636814071460226034892495790711515697213778756447272889180545910640619594114161067113841300652426601098388827615624426183257895460454400880926580749908663082633646846162198851805005069788290656927981709426958010017090410081972408007257245048626405431896727075227774302097349699590409424410224090337334573466262593772027647852787814892179642585594212125496744257065413946122783190158260374845940758635374113796863519537472803518651840225433145169040557915516084655612882952556144014100000423968192118164502154869957151575445792143324942596805343235018758660418439949987400602552989304759157721039464598171593752343764550794515501258750538504409876252933269086631304745105573345850996594217634511380019633317732642932466362803707140019485564621598836374937317372256426100402456647089809780998393803888502828983849862314450509279628407872175313055963865676183583983869413138634707909720798385267772262920337277954467738634137695477480970595737104153805564142875188983866640395889410845338866949665599193283463544314188084893155226565328931073567139409399911692255280316194149094564404970733023780809636436533439145402776433821381340325388978770871004759119348124102209319661476914561766686349547843019104039248843757096815113387509581165894742974831049480743927418715850359283505439859375398570726988292600620077443589737228025860949235922554686992619786442255768660948334522288930738914050570213148456681823135810601123287789047726112577645378121690897154728051887930483190819016502282259177826133797967353107450774070725753418749598910532107406425650815458212110561541375953126359615162593199189314942109385278224348472310137558497110719985709501319412498117187025658358959322930739863553990361009260594423204445384904856609971591684958722737476463245285361144130498824240676646494802837519261241619215808457236676622563159802218833312569071873046421772185671188625187142852874775090255292806030269861342113060579425451435489647137597140045697520192285327738988247350101671657969029711174878447157898673135308220584859444754361852490633789095453239962707228008945326758448946638058875194701168186659002296563785065322006584886377538061805221696336963899143007180039599468336075925837820401287531752682095282855104577049207202816186977745995821482337384016783136221389931106477871513916756630196539031887060513821899540559763406134725407298547348525664960426666507307596119699410386326172257444300025001821244880503889169523349615030014879913452306255244058305338808141627812273119566815806889780095822059829004716178414367627866009256828355253292261228214900212666168784198916835101332967440281772593310240364680385042919801801627793478343386918391183527941961057998361090710850814048295453498035984902171165475253884171330242935596046094966351959085220424036796118312301935397927214880108196414531737839204908916445683242038971388760301240670900563226317737113447462161915528463953109255947073123743979460348583899324968020788833843866205847724288483781231493600273915551011127363269594093130540231356042234167049027717639624091192313556252400813872148776533489350402856595625140804954487345237503157321030361945090594149035205553494564427621022208532534737290234536333073685101903182920743893161516217698545891605637152742874207100359510453080050840605646035239649977624876164477832005757158734311780532033821453551739996151545939173901518071017187089446589570642399930111776013032052139100323964776907409067312295338836904206298436009734626572898062041522595192276479418826308085495834108704828139661167764578164816789234465024270199529902507519537412099103406212081367043975779531190858228047794219221469926266140253442203503369492898614080437508393428224373650027444045689946863546055828771316698220715309516910046264261185058984415026479764388142696516367516343354076466193656027458335768439733370461453973860502537796811426865757801361698963464717769498973095349758082842149690434358819565592246478789319229532168305684763070396061744399302020558027637473419071172217073303739551483393635980096584748352512039861016210592945615417882529192931180072161925554063383805402755926130865936283029561530985453456909212294881440847120324823437410973002794573435458139018847494674229940049817883527113724276617402644692518087556618268112731268018026890879597349319457906521105486650813196239484934995523998165195289014189918382785027962433491822137342482631088363914561908868071959515274461780054888236856454949272542220884588890201520583015421015817490048818544057094370395773042451041041342643499758345399228880347674235075844170132835505483086207486602912960855244301403125200632564019298839787300297953264328660023290369314752361402169840740072631106491363959280420926935308038543385467983683204926921463481577115176379786355020043853810911567628901866533201615122981259039522061292909860934443725101330914503674092347054531033111207551820109899742146060428277909693329857923355660145185213724145620652224006293804160627079140678304671716398410685037957044640595937758717864153188219547845494930289596646918350342599058135170925496713249532108732336774940623911855338559837955553807538639235755078403187037060278338365930811229623131438453975368481072033201089808912555351809887321600142041091465305990411224889746846530077890817019692628264262490014646486315311404413052071669524303775570545405968256597700369219842662440964933356502849911733333399764762647399018435851789915518999608028358965342867179589469634033220774232325068557521071687164191975841465604301222904070223534820890619929576219980069881789720895820792946022638366098959269568835443561159340624726488056663197243626812678947660261952133369192865537932479264413877701320766957449016044763834132161056291847075337702905459487531723434911476830658697362856213678608191465657470398225707727811666231642654799255266977276988275198238165694414762617950804626803645802257144799807600616657171800910255341057978657969090495541076182957327161034377135117243554147578945760802363324090718661904095971940594692977014741278747610544739318248550080990992859392393418437969682524024965151561275341602647805739540499372110496532026362934690540634101682012426842923817362133720450976055421536382792666256652529136319426885924699401913036795726097477457971334515816683672866021980542095216081763186141345614654226316674495947377022856868350721881881016009191441997201891148089367234764617639725032149156641814515801925156752796687315144460620857120362020466376810887259675349552437034889450989700087457106081909591986214604972159893581253321268097784395185366093655357293698535377209963545425861077374788944194722091783921043469131165132619314447566618458608248956904907918056798679559012204139417141625373775917705647473475262222658399261780898679434949163448590740830785091068124642651110164761642860543477890962083322716290839055028664175937065197121367460242847744135409487125926085697282453654871810511153159691559497851117735697695561904852002820973821464285362202887001704990816425607853174742185913887774504765698675303569609155881928525167710278103350141374452484601418145855362789008589138534909646117526797482834540017034505457421539463166575212939712958817369072602514510435945520822064507315506261744004720595008676340580008146842889279916599931744732392086855215538711299202541826485932073197543504514987418815843586094574967240720713193253105258379048578086006199013726762654234451443783138886215783204738212097563474857986966410548161217846989030257099137885956306784574991924166458721576834707265711590641789432403106732303321207500557656549064138807533920649342506634062664862908557595486729516579405547261418368435345717942074795362149366869437179549945395976998800021369839504229663337947206292323785848988495849953023244974340845599867187968686114654562584882650616619678338562258167517014716446710704068894144146854924522003305679709507485087567055777199546963944756130987557994830446507585694380431413783277989310862107698342565979557540369355684830048290107754950271215031167506919768660341826409381381171932862826774551540588469917515586802546111390612974751317604124030020958272578561194732904952465584504979038827284790811953079566220485399125535462368256560775193441082133678447982686253027661543105627913188178619989743186516150551102398072494599504943495775196533555455052942583178362792604229801025884361522181478865508595508777899505993335293702370341284986814142419629852196880463518876021246536725353443024437160718433962224653922292049146283525936573088809868124215004952871851854234467772994821050307251140130062483695935971262323886658315174668504189926898773724012957712654621796951039425960752051702924313217498251383655715487584603473782733954016086591047317791292590459840286022528664874900654896205058053974933614131255952741835839837909612379316012158522184744558035776833486192797417765503304302612624754195047180257390986856746098474735920512200012809556125357661528043973867667377963056919231748638189062701795118453713921563024041565858477750521969411316227315088222921878776338212264429123638435479307532133943798768101730966626861062911765264008684060587094547716406642721806505893092665619554213081171488756431748853290933683285720449519603949790811237479276731468589245142866118115580008552277177895927227136747049270837159640713742939217364148736857692244947192335688829275156790324746357117328895591430834608622720685515092969726807812560281419653366262078021709129215535337916878611326196683373622161640359315940787088511271769296854961168235638985221802875888818071503852847631561591637593078265136017450132818649218654047917446295722959066441840501299944030252970885887750549922120494554731442268753293511878369041723631987720195682274890668786753844687616740642855626426729709743827924660438205184440138446612792609362493897964807029964145661680053075868793986250353595021467153365971742552150308613877577954451018532765405801648863269245390218818306195275910401682698779817427209260073279300332120989465488075051526580077197152136066494049200318808415410382312612548028601078463793530783907745120303215244511753633089264148970429075758524270298548730078423925586529963960506761322388436555067478253693851780561496827549057966215487413254279567003757020366871057028021417183000315847294491541702353309702091537904289494625971304297592070956013531106778418390150373469685905198726030312247200823716307331480456963781057632128187435672501266492052157498987330695507633788265835760285442428131777883261181738685029615087487526572781989844095606421050930467479267951246406339567354169414355031985484135121296248086696116246671300192488001062385740796329239667046134316332639114922371239974408287604372991535308968133993606722356765954111841023724080531696593309494712808136498740060951140802145542623999746992326454838655320262613088001485713917917350374256694949352482771106295265819358700735480831077832589334843230778072028603305516985133015053433866057001864134314702445566617266070349550867233697791283414480943121852585302081808870807580466476410397012114339338195617811155874756568457781534557401292873666027528049991352325513380772164148531529982529583999832893304836502558119240035965850773483971132488826541967803442084780650949857604012734566097697129335091491564884904968485142681646529238148881544241011111790725798780666906046124643834086845081985188169117832807686335663066932280594065576611641589090325792976245266830892123287365441571799620609020415766584272200212028692617405148375351765877663277000818119075406968778324886549913054632376163028165307753042899255222260424072536100998811022469626173945365264950909470587398966201452363822632355645364599683042349078910566595244997699794143685845633058714807767490072816646443610092161842223336392202980981809897622782385272137161178673336832626887095874679940578243227764797306769872261716331609716684978024531542339378588888563988427462030114680070328556269511421599556790553983267923763728520870973202206485925656445263734736837549663395768290676903227544706199280649508911795250407254670418006023389155199979018326014917770614256482888836179722614522314866508682877003651883847473657008769253802950852072709655585246694158923714291518598143160522284785867605115861719342267088727475693644379991432016661285600092829188410591302926123179594182981777083106974704843835894434464129442101029560578750987100479385308139268638452190048977228435272359786463001999747187329466362665606923057144868178878642256489669065474353446633132308240779405851527522703491095027849491905539700590029352505000440191053389559754525025491211329219218498978047794521114458159088513746369449525070690470836482218767630248677750090818527957885326533963954417776474742351853621554658274466583294375582278222057537335286793414838432925537918680598176770703673454533910115562993175412586185398219753014182701060072561132181269869474793164784695779310377301099186467242982020243649573511364039785878255604692772636848706636240966058082635373966820804305624859062643817286865731832657390388534034253912971071200794686384810974016511585257425810467643766165419195397412145175686659011719087086486698791757589127066302821622213739005079511582575521300604508600271343582420235289145990614911390274237566241864342884025981660009270082933478742773578459754113698409927819970207186191552596013065733769920366019987726589779397177653048027053406861622901058421030498962024084931875147531419075652142444885142077932563673866130597799762566376936051486059975452884480044074158939973601982375760643738045323113938744542354979192295419365325224579485769673458613815195611142867383506484913023156288480648121566985902353793350819114763659781449742809464285177509678603868840758742498244040973731645356203097510449379720633334753872767019274439081939721525770473344173602689553501490094821158509643380257765469418325214620578211154554291544428232923142040455111192471701289105589269196173546375755289240675465103220239132697714546119790167664046638134337407401907163515367486732166192299828665452853660748065812972845772469296246713198250071327338879820763972013958366005111466809779021470483587956247348183151352093001922351834855075360004809229942596434062156908701205346130718336822860366372579802458917492367966105082551592704852020205953167580920325057128113630381190594560514064460137631235569267220057895840798840476334754206912625000884630189980561726693162851615446980308249328079268471013108065650263244683572086069214224551564469959545097203241924200305976143744750182813378176912520018025302207393493021814689861171146914309666570840389515608996344005479783610003929139282704328305787622278202093736498968686038870633728380903999618139733575967622895359277137225141047650108150995056856275286999941185720651794549103924085680716933266582208276412438044186495929719420492848896664462489862311830579023999061614096947603215716393193460667290395663798113146146615827846463600423502122784921003613070103711706338122060534161308517134945565660722921873140451982967915307492003941753453711532040403950558049394237137638235300356871470724266925729281996509164922429362347523747817120970525878558944008976738542548875327769611148832628540425670364055377376965966005078422884147252268336068191266364426434913577294103207608575179991061221649909922800096201759838657682147571177733580883157190046865402244210708031726637861666883422262103800268989659218452263872542450295084062947594427590430995477575690841485248038853580221226069103257529496778058725251639002930942072142037903112488047343172406419974631939364098779378441502090153547894518089221315647445602234512413816510151751415129047044393086944077131959761232155069911396922187349268956629923258916610149990819052056603118000548053917866760661620986808475234462102152854731625801095405408737598244887457798313980203301254026189603568929411945041998030838878621417861669258028072772968027055772160109574960075792829398849185560258678656151113311073007831584254208222056480171633481369237040412168466660781680680214697006717351810484470288643474135879837357349124719666072393805625955494487213942165858893570083851206226153812934990886703561963228589616321795120913310217327806684176083866743863588669650002191128008061499375714969706630138289251314207824311434512766258996352868123840937603875747307688919677491919270970727075596398684814328114863079230938491871678635637821224673960043432178627770023182076924261122410552369131358932764841931552550392599146658242270731231153477538512410076212348723875792506837079969316277999692368784198393623094453755580111248935018872350852130814137169573514191643499982840696426737770770041009566442006487674120922180037060009069415338571298875948988099311340442738108630599469703258859552261179602449750583598236899726084112811845712492754635852363819292133829621285313215719764972414831650573204385659715598837819862076312967667358896830615281804082052312716702868722425061612144437425965144403186634122718096434399674736732158446802508852372023113438580522137705080501823188056209847376889860504662321261914709036146405787543238697973797880143553972818260348668172224213185239930264741790149912151667997128910225451875607084647124444065135254415520808727647606031970331975891971878388267914647645712400725171692309728119576187407085442368884145369961645204079400888937961154331073947148972738479418851744521104239001255194518367270477904261728948844708461429536063616394317099556931222089371917901302916789025778428039979012199407421500427178285651650987526941704000539247623232190596699024934121239802657304717090303782570126578132950823657854139007855975960622705776013995115249669296350879917495150551965337238610613883164879079978031331590980446368788294236702402632243431809990553272822956354215066525504500044919965948143040187345147148905393254665987385296293746600159658511734133390099859293509989356637588866055833935902762299874129616163039427429329448762218857824340423731308977410629107719941178233497997379527208541672183773254343896411375700350925101229162398914016489529539122102728058859397425290051794325249221430582016153202736280382064552036957470581681085556973590156639547320081296681392808447975975045952616071843436357489758275240981329088448677423891823377384400984120401414200412163673028816181927092787006240662784403598357788294279288437992077480841426858265480963474827637589215640630206349682720522848510274155488793015573298349165288399665751568544112405015554071409310861524749416027465435713419528795588642389546340263049649979309985121889233294815373679342420305349876792042904408819149727374334681601013847118538025477988354971665264986849930724825586878445907114852520031937136598858631459866494544861965953406523883927492914709983811871095572581773833297757588321454649268469782091172944355255211388148781892915299637617744165137953873345407340021687756482048761015845280604843253574539673000456124132529657475856568915260380652536767436286349863753311440741086414050932093854441465903682083371002326173407691239427127822243229481234831557162358594777637186631814851466347088041078419182100274206605700148776491676904507377116078153173798956163113826109346655059964167626514963976531416896720730091351284211796552441395892957053786384153354068301063516603481649927784777647046880608896796257164349669925045605092157027157248232078002501289058460139679203330305928172357049833830936449010507378068854792064169920526720778501005081152548305399756690793162270294704544790371190687754717259154481091452581133139361222725972836354998816865592185326548018559025851298283001611734884921492922124224186464501674059324551608767045178243477375422314932750614273882173997132975291687445622392678056156859194199968588986189420002007761883566034153652055971308119054680282818937141518240924596293418610966022489608426162467144112804359180668856158609144799741541167392216006346646320131586031153622267504332744189633045082356057848654751149026408602166857703411508353527096968432287753160182024673796543847710017270963729265157695948600380651452909733978915604193150702321743599676244877383980786276455285333596771543531261807799622980268080477211033354299254791588713935696740360575999669372709824219449203676525862857575540137060242955476521022173371448206086870887123911267244003989503904863000717889039785323278146088487451449756555735634195548280340682354788003765094830126164887444414467527774816778622346311391535563399911478308513462173902951193065724257984727451353998343599118602515227929525910095831114377388957557539980080394321285363136079366927089330881948018816679044765657613668835463387741396891161568775274526474847034344289856201530344253964565233816977046398014989142617436149652148441859271766789303679199970017387103062258908999683045208707931706846362747979554669380799742678384962340745806877209202923356429122892269635182383496305844163449239359445794068436808116135686598315654987251201703157330940546554897582043087071802207840077619946095215755694251365199501490467017623451600871384428372281001986843883445344178674568823986160958154747044292334891817189024917424218538102795843884692082625338385916518656064034326531090319826617078330565403727896380198161664200678829494631970077808007781773900810708043430995338652369030118255131310129290729898125145623122035470124456905369925733831633275181817312676130482331523178804755397306982284896252918253742730937275905280634099031257416127662473675972519018744534248472835269782407649634994481674625182864188261906863678764673214081883757134120954356530078070752294816115011564269078781341705028502586429523132338012064592113216217651684317957542315498423007908172043443390678500902897859174842186798839816005444927719126977971860326931455984792750607811708482594293475538245009767622437320131805093104347701341650548338427183544014190364114277672264090860300594168135299365959828114202698278543400923166366134725217995899209106016432570564414206880389903185841794861755867954093262703172486847559173459406067819211544149917307465689759598140891196212679348158586061424557890079262197228255061111026039737193321416343977190032441853566335302507374586733233920986605678344232008018849046689501207321837547782376706395565928560874049769378780209779961620580403094561353671724947662624082422495778222774619083390522013972155411971193681164072998205617528306886688116211616821880060127533667616990459641058146906376605184375946166421476730299903969046263762784571376829242409608686461573845406086690505812299031560775092864106568419034467126023374725770401397559628293894779254276958491511389610054707316775637976629914557825100536556897934647769858771255510271853498031651449702881824644264243914499683473121359018203792753681314125401601095013371336627620343372662574925454634741468200736334268096394283718302879286587446787806778370674988111307139206530088817120433288492838650208385979544218325305494942335878646246132086399940322563628674914835321467928529387538274656843781753470864949782218162958365756842226947100837393522426738558532179229562467473220809843209233621975872380704242444895733996092590935416351029117701752520138589819899359129848136193256949918894036800706559963139850381402025302264823639783309446813955449490871561101100639791010930896347034899703335750824832025806317109405753384319174645112577775324617784660447924394075626047703371521140697926269471661365362442857333004524060592958019119772087184728143742191346214882600677965522009596227998257933988080399685227249215308664636885539103257597828722302627600376820130724949177427416580410552372580615672337952732849420994057194371095079903322804659466760856139528214805979888498117175081974356827088230373331994888052577290717289319270926618442994381655590241385737600174487227705452965848720817243444129918034831490115531344824036850241786593875193498386738011992254671584952878706667751356386313738687323416868562316442702588043913612679816419856927094523782577837362393154767814474204197491459670247001347564319002379663786734342830184446746481525453424358115483058501682836966718409832804296691485599927361390226552858926814072313544097651939853634737699798226176148482250913477555646694137412005141288344626876356363192424153815024550795224144125270845545878885095364039629956498224813249657057112506118541524881606384134543061754961557726924463196235931576941987658699939761086437442315724880383857123913197389480217734228344619243267220399233427348551864511953939628753367484578006570320196857273753868797303427294442937173936107716054485338590339129693304318860300919602778698555176296850848708758653570796371977112457876939915210748730055290922508135088635049607400339874927669823988828223341396415096664886440667849531594411738375574392982785792277057162743945632519417931193203986573751024330112450081207672687448163792602028676195643228763861067682103742831431148613932239620427849223971051876088900525111125690462625073582675803638898507201913373937707095785436015035318228614117289655491671163517412209970067447144224110671778282656229096956507405183481244834637608086465891118851492704006957044467119184422686789851422180153178821888924974866441045925692163178082596665694324181967245965975798513147724809083641862682042712811314190721114526737670741873669274248694727172347937608641898178451523471556914941315911488182711997700424152583656694055356476988944246333469359430576221162036180804789013065926601905496795370838745776631950858797146117400988799478818146764890671142479317518616057769390453028145691791078590941860623889044156477546545895341877662136517860417024178327250817830047149869278964730297926812888055068338723385221102776419389784661162218901310047948261892184794633835173651888986162755858184036315003779471113747642965115909541986236519194614615798663731584465734432528877085552248103159888251796793663912179516276582852007718781337901418694530296055754522306663753812180038848997135281274254194064496269944852085093459148927622141557424349927113673826800524509233920004805453956415741678117602036581777400582944351088081329036269306797459693968269372966386011570437932233957792981979407458119418817190574502226023348663683424318419295572065333288301831017808361413289514046805393121565993747087680254154740015892583841395308619518880505175009735945803199373894286212265611740243611595273432573637927888158546144775800729861977924374285449394878963056846802022738864884306185703414580925685806476677323779477870826588617340734436657927740961316594239360785127983207854891744928980887575946060509791963138842050749022604735086845987194086327541935596021302401385593108276643401616276982932883991171454045476259025758504983084007952219073895070232480876723606819725350130840375303808421555444899162414191117392585300052490055144758749227618941906838496174708714402169209483462764391837323406541703610766532138212362735421732055241991538369435246396333951345686897839720726184319352372119111888600839558410831971755636991308936832121022020932554721662267310888798488271563176640882998457379075456847182169884174497519427194111545498700010566563302337665658025608519575591213634813759383007446926192748061623707917119712115733900839404749723160448139365885651452042242709463957140431402024308496576937843817337604269809251750006048483352914675262270712718732076932642675540001413418113496873508797639132491570940655818338334449900424738344463847480561354778712593475865205345480776704049041446574862204848004028188742744252372656496420984184529789592095370385094915311926577343817627759435097705874915002060898058294043957489052114965387804631486573927857415855504320467685689918206937470131550954423472756435850708845754667408661922416984024149228805532694900598322856384622733715451999564506595255641058130826112190748085868725529474799667102277395915505686125500654491939280613545353521336023236183787766639665281908139810333294454097247042639501179215170417307636064943532067439358503275612025577005903881322452348595065182467882823004541256990797258235942342046129697734690724013132887278043017302566808454582238804809057386463016336137504680857936475438858585658708807865854355400487367550228018549151946275998203432224481692735360799921065167605357654410867749975006191778098709127445615241714713847620506621699995342945915597998828078213776482996070863298792570466593063969455732368240008824679317923719399141269225219894595762763974672726514347999994421313632744119835944143111377143735398190066213026457328497221563964377518562422017844598033378695772991626433324271033352799947052832229452680216937634590526985972369270384974834686101926794289931307339504265515022796503815137880971548675606278934773996392830390864958198618765138916442739222142901945337910631816145637596947460210724929921482023592050894618607363902997420620222032747118432524654393265178013292084600842734139917710797494111936294626158053875646181414267293638458880884575485668591970053558188028714861272821947518705829073300753971110137719185831083201687908906534916641133965079549545973494565209364552603128501729101775675674790834039306642836289092419281838458170157460788636260522092011994063041509388526099618503130860058446264744463646735300538903388575077376637292851179308034341607689806603807914667491317887648269871313044185002476074317320610471969507978663198392195133120019605347757367549778166009345102975908400086907324059708949749893533712455593229809993633106425454477186430852659503350924554190085318434134645566529077886092468087220302242350219514030688130414407021974001193284883041168605652365993839860575984837667388461040313366661668604524026064382121318790886912250836921878300757834415641860894462073812915937572882234321465835758405695612027439483156089962312546495261821899231749733875197798682049552061638102045137004580249132728937617641282883444166585403743134395318542191029868552176183147953247688229829911930994552431897614122406805089691762934981897474124358270341025216616657828722277911983596787248146208542742308233688276862739024158528814601507948152078552317158154231691834751225880226795486812198357606254540568708791456627402648468429484886696982650641174021663528866323544823500111395589945974062003695011275833376266529696955031519256739056950502353914997980924102484685024017763782669774892434963357899892196129047661100620633289990374755493434780518258440134664401260808631757175735568963664645199774166876705159464756166665887773231766155845135241721487373740370033553774427725870242390970855200860641750204347380389811397887545528491045910769976120636737762657462416141191957258642500033676727761690331238617408908970408147180295012493167946460984176673269708361774506488552426215377142330417622769539333301808907228142137232875661534588429803947379672231484046602945196442818107037826508859530607506930162163394943610240028913780465430044658787558131141813034934158935004392526364156751884542665275670424583629050376080961881436186340889450312714718609091151168991107445293839456370536625076756225497581733792857866901254638265269702925435420699977770104369351803273274970235190800125852882446570065692932196534057712825702785339586736099874381255285917049291319507344220652163516684975411603635866682505382902164992874953024779840905946990285711999480181830035539191003470404889986657892804697228379035929513315762310560185058020005313432680571822848650364917062801569058645421003491607019495170984224712841193237651983917675183576331065097645081977932889787589594737677853024282463299000433727797963636143162754867650807642767740919168975993909547632014813464367245513748822281508037501480818156176689658922536213274300082859262358742394969179478601805517265978488702648181103081655775787906018931788257501721024335849508744537388960047667681340889934031107793965156787737417846404562817927433620708752511436381054299703897646512282236485056508446716036292714658175954520755916621892700929583219216073428959958479373671846576319722464067633732748422464933968485023587405855312331489210471520253565501369635929843742716530123156965104564636361793225136922830107200004146961752702668960478661755080424983317668237723974736579826257277621506844932470691019464868739718814318856642559290937604440063512767632586862023854561101897058671471588110018612913224643935449235404325494955700634332998432027054303169292615937378586181940721782372342387799652961125406415892328792188135963565407128363026144642335817660118465511962685182767637816324285280844790917971605280318559361334644025081943013373627225825768007776073855120306140529407759307100848153658107156714070435872490513931262068788560351033320927906320459105307443795285667277133553989910541754539086261884939582661308251365479398192276595458333269280568746991382207156499581781727328365330212834091150700800614812038203904708632554572109983154435356319924741853233936932829029739640465479529784725119922168496232056745184345439390043358868096159769314603111497541419698477919157153668978162287038659219887419768263949325336121968288367101401668989121488990425017401091879828503182673990141555274261915262019191464670435745411052576608115779334140315496998211055476751038067249881797060776033741789300840364026801536939556707265933788030366090952930008414631201458885424053842049025161848229939626150858043588024281439117406807878874938315179619339817443462522861838786347975604126122552883651060053787454968690448452045457603792777428914534314388119392375001814973742071430186062313263082958172970077131587940808285290288294668250028834198416758909596548527329263090071179652367282832060178088354671646807447210972173160595934017128266294790205040503135853873745060085953992473606646041949352220042073775396403317816115575425646529915070742938744203313989005184471362514548882145807866910471063849561223744664399052940598465175199364167285065247302970267797532885688702913571390872907716140303304796802698341382680368268553007085347289576551962728535008781051741650257892407174906719201123376869840889957234307560003457123392927124154627888616441792206655399196975040589760031013696345364226479859540427634852996823801711000094690183871725245877152318878933048740784419659046784753996291923571953500044923016579429626688213551516907669610861022002289044997247184404380000083201837537568495116412383507648802655720956383777573495122176807075279787171445511977319101757329153675894973523566451551742735526575257845939875778910713448605692631236334004253037327027883183913062631303984508668392607452057736954355869917491744537595400455557840373775146698383395042894393651597500734999191335346381342483844442356978680515031891501588871534378720662907932837157629707532800159942399385736000465811243020342158339728251929978247267748606767426966331963213246147257325843326171694261839031662958125339248854569782403067373502081757064463885976163562804959339500341958802298712355363834206597895038939217541735866234958016545197028365292983421044182981328356342455915858562445880469634936065183321696530657399478529237710867570059667256198840771747689716831801474425791534612127063366198445771698116300457020299764256712684366045750310878760379490070633826084462029847774978344112291702615955713351018947573608357682585052324606551058796576914038053315268610613781403661062356835809273929700813510954684006040241577076653765445957969525487515996599497857366533539628835532445519226546667036763417920658130695731625048161485185774613103914242480490903089071727467937482666922895245852167092522807302306608199280616447103390409142347165194250401266445614871616931953268356503133485533653269394297675380782886577159106904081601564216527779389070980507437999267124537740870926654111158230572439004297206125465661567319641719565308873393537085334013626389134164933895585826387564018852154136320818115371157065581554749182630952894229388235302542502659846806414845847501311212493237766867393958222431492452864932194754803490518191191606257694624291830519938680495524260314280248816150871185430146447428650490034158897853271652935444259060176584713061538684169120199523364492274440448710526081393346566316644541565122762881909780420408081290424790069245625759537066325114094876154092332601023663955523454747355909696947334181231647036578352118085757176227460794947250915291112003386503474107574570924519964994275239446470964328274227950572392572157297198958837088408986092576910822334922209519815695437383774788871196028647043328332010578795847370422128452600786598170343787660078979950523279065637819429569298641352481790703677528607069164662759202358840234775041737806704796449495991540833821974302131158088372165035737208109849990527029269230558999408030188264946480269464511973372501971174013419181569147860092590926427809250719966132772079374667234857749001296626266418388384588751933814783549189960314375645756822507737691359205637136718476663102193757791537533885617518935728379577593556316782099226683599623075655547440758631289030763675251764285933999984527652605704607543724914860873192247895373752646599250303337200607335002512702269555593698443098246227425385772742182756192512160803907008144196403404159350477555370931969979711479076555443458348745677129330814791717946230367715189117610868931058360796963767470636005657065215258288999276238840774097207342855294345430686519875333222474582162700744736732993287434133777574477352543651819110440179191202412850365124848536076950612911737052361168123055209109218464566812509631435205886497477231994727253583977605848915853207273863427848770846947702353999241806807100393700690473052705986055029280038979964327043326722650160031251927062739765144989424522723968432465391931650364717568439551196739885071778566191954569492017787982010831299038557630747087924606749873000828004327400031182152775487242790358672922239083617892241405236160949990294398219460135114183068087164104111398066661897642569927409029267981797738886595743824966114094011529345105792922328968659529949441008003730772586156360074343279246407171404273445087099037191328076587059739210240626132203152655547612122022612577303332624309536329108270273446467100026304101811794628583718461950809306114715715032465491770420018931130851483469773477360489187379252124017250386595131514018814529582431921639926305315473709239902973278907477502302451317945253419068010065256818564928889940608851131996632990904905812747740867713287339416623934778769674524477473597655772632393184727714142889201779701179083270301889342357876869643210803383477352232033565276174754282950262292983572180552225175388429309785179496086906076158843572939446744824515941453567368532476287389542226038486374006350606275782026244750033759013633820198384319262871146727099088629896834392475899621989083373262410443020009875741963199746899435556700213838127858633301282972439719839175321164448622492280354157062742579876900947556636567004505161526087322251033908884833933591414486209409147350515496004504860050377709158208643582647508397295799899283007394329838080565348752844433564837306566630704578869089035990332089874340896928246972161671305726453969647338289443132351679387375053462029172659894513969976319731436154481122864732513573616191045592093775900844473379953732521096393817426967596101514869333965331396985404810520766879710006306210357641913926169494063458007352789346434645659143837566584780033152714175939850121716981164543363481830447436310316779623900727783718629849760169358224675616985678888436428544144648815162572628865562467891102154080714068164224036724489064291508519315035771178634890831239594190661574755712991049329659003036032657765415793771980986178312650764468340078406505870768290156940613255588256241054784427311550047943600760813387583787924133171125479604380988079506709957088656879845801892883869382471741483924111387697709277951471454923746622782333256155154139819537270902994254869689443967769418865740626247719584119787234818326100797255385604938878008680259004934550299344368855840146357641357934132308450634137090078720612329069868455404362558009466263152136661183815932521824035174190535998711061683320484504225236980263265231043862183995542856210557639835372377255653794360310491885255223621503764607154638811086613240844145061006356320687213079477436637667856698656729224397184701022818876210271646758539188795247118837037190520124000640194757405220025704318012819839004073263710948754778267974196804713922218475785426682248742343430415043921747050111336720817331109475971422301388575823297962902856153167808721357231524140592977883685555019998409983430045301794486040911075575019457355406567002546393916490684263121982166497109014749709419864052894205344712761248450011050979716799806027773186901446151642838158665396072377582656727075403748781822662735259131009110240972903476711455068034055607681526000407110621286673955750362296074066518586770137376283121655502569193385982095180268268159371123247316570430953841826554884395195781755315409477604899121996423592979463734040305332283059733505973209313789482375712118674586462848296233547071040491374847921739224821456459387957206340745791380367696764862953571867828601838959330719326987371907417223870134850859082212077688666807327141902818299969036299405036793895633794859450531107559520772550598315821390807004986183538708436856721579240812106384044766775684705666418497251553594923026951588663617540284395343556330938643492685694641985777420352651875401968255521389377251211271027497405782394999734477716505801411416961722706628580788749817485917084628034076021315159257979096580355754428432210152223169021940144466813099660612651438819924329401164625261971104736434618184209278397324674483356404492050034847502649077972506346191117433495564070186557686410500286934760447244661157702011681289986289116033922782885978995523787111575569680676211736078112166212947186533146440891440250601146394856813625437960568910715537242905684644408026756720230180683389505000907696539571783260054042552289370293894489448806138117341625470486871730813262373717459814390028304381661339784683598705242634835347941453229695966385841136220876289197457892240897412916914176313243924356661221671638412195993747329529479027980577360629858433406315967925157259799047774142149813160143977654149684702401458692118812093041214836704853756356942311037455104494460203933341871821386314131246621615582221852980718669647935838756793182682168883285380612762792546963714662166370481635915227068379969681247660935872729755992238391804780908555647951131686415998970354730566247950432873795433490608402968954862138420241675110894555666881387529815937826698152655220786447462493687412013323377969697033248092510343661633656542301752492888512317470769748294984881658930869746161237858562275184797027166802809748465015014618788702260137810919719143637564768540465486971825179261540552636164077427191848028982847425399535874502220383324396447119260988482643787752916960892894284990808751463508070212844192387226952035701852774341817292156370696952895453613080966215134868567722049365174561535255801341572283204032655185085062987113814301830777049012329774310376131287245475560041276173257748231110736177395390888646086992730212813909908745290539850611792464505213689814735677990863451708101183648060419166637450213022523779031052928533415537035505147117722335853564632056615987800447614383104730446056935046974987742590493693541582583895184455875235099611168086239565404731123601578381367173820921170492935556910757273944538758310452600151464448370925565248462635280117557303492147603011799614870354471287464333967241230489297543749953074821350149808092948423226094295943070512236922288023744998290196083772584539982216959612809519532787128269579770119347283495148195028172683939530315857610146153852183181796910063394050160897684796235867441385659359208698841027672209739550800831271988538827983579563702612225249274400911247000569340650675290471611214438493375397570271167082765715060207749527613300493584137469311278012442017367392881008076356815352366055091498129384040312345645535161881774592130730101282648908005001996982554943666359018974744323424817297674936355009056550113499122439342096370086917781553973860984816626238041119649332928160771635259668241284431044327427434265042337804198066116217316899037312349659809746714229689318441801778039666505144179356830506828867347333317733001344026968844185093537973622963697455176075004922737614071411585342756753481448296149670893654575559741960091086448490272843960345072384974589556848862284242196105597334994463969898050936076393971611251894448873158775303774564723665393752867187362497429590965920115508872386197429298235340414405897435763013065310928861577681142798364069678605914626470879578248782140848726098733804492364716566973340274990769274074848591615828267591221344387076313333354825830887034495164860589959278061678554669078338170217702225621490350870337739204449666480292717009289310450318744657241796542861574394448249495642704883033815423996789457614170469335070358083356860210790442163742107791989655287392753489461266856227261057578284855035132328355634108760166670543454065478644604909303020166298833964873172112110315923950736139904505388701131253803449601741664341409109523481986762351378336723145844182141858481365099295143395094837585739494676489820336429856322435352704094120585619237740786628149844142603072885903720467211691054343038978296232079597459979651052419500144210686628219290670242747001115436762487697469602824440580045890447788161318562464665804517286926944945236246674365789845422881241531029408949206920205146476757333727395638933474121323558687285114428355060321997767002777507887239196119419530117263398854652512449279225678839897672631298531668954351525707105655028187700883939401812407933485345870787683496065262853858111841679195318684718898519098532248483664699432163834650405083013696970059842031964459594060897699574158005020907115645361859291593774968769380218392085136171177395820433695296685242139370582174496678741347794518277744612430360048445181563337171722539262167068430041726912062193809507971581883115970829442576226430512830140019974336995767043005265514372035643615218079709389967996926587975095850323192973443676591287448843683681962948355463628275699107094334552782730678425669421455021784011467907121368406982831651377856443763071483166428178349786764328983658705582787961296305936927032861903805738261290521845313022698060815361220763628697680879031427605596813780876428809564460468029890107887739919403429883093519472834898975741795889169402394967675571597749395901898901793105712538348209215732816926956263028087853588309880623671777422243475765851039827805471985370804637639365999572156379657992888459843309896576853681983325896297279487376011519965077953382904621383145398878118625243251911636798542929628317507920742947174611735279219477264849584339136488812205203002475024499047645938520839680938768771750107171181971415210973858111328101610274096032565130942401575488121173014146763274179956742047168103439510715066375719052123399340244794479276183657738469830901135691728669942864139003411865854180727449286896953107476629155292508844258247637160208692416893299406414895494770525188668280645518435282817049167939750795892827082952786425463408729604931221634451552777237728064983065785435846226302258502999701583754966161071302587555747800129764193465462713367752809614714287625029890860038099140034987342789743492488667476717458795092243089080624668535938583791297856609026491951776408883457078423350552889400789939629952943173391131702837051825225016336162254371074735563498262478547876094662036188536983200912392757930397724493796063889877645841219098806542015228445389114985066176074514717145887632235587129882876399754099865977284890581943149401396685691687180295021742908539365689494494566267607433176213158067934739959454727838630052489931353337574751714313761108181371254377786415378730865490336052873738766539154862341707875277636668040036366798392510327582597568683525433994384151525253337218412718384426887829664145110658302230988706561653472852469061313062107589887106243355157883464866330339545855276495153800628048421976310181952840960085373246876405126574382045063949662044198022741710627318592236583316662477432082705011258647233715563252113686073443949937673477230608572716550336989412564308355766539108100862244237798459996059222300742431360218521911202380689963747563851593561495659526800067826626208660510847917974815638108198820014153008340478549918284709530768655039329780902016754064988689635706075364166797988036969646327053493379551033197816395606070467927396238063226824221293982382018181146147242240445616526987381951115957683067063651195206124630536845426711408522391232607818777540699424275615712369781482876705100659167569587774181366712264448207054871004566124211147793613468388479748039163342178556835547291918775687485710739833847791623410703026417853263272456264388935742489301770014645452127525337552588957191529252871783190273269190839504994493996846726173656789441235927362469434447532988830313408600822276170363571067996034072612313369326918923374006987443685706894222671303098476303314751126194074118909432173568381051661634220268260781994758582108445057786730408279228216323629577090453784287569605378831439481597947447225129488071155317812993606016506352465366716970847800846371074192789730196734869914322242228298369146957193144276183437985162090685692458337817450442129610784050737485114873893785332945067616374527722997030985993827265301240493697628833269545960345860572376178705352217038840113671546606152565861205426717423153952065460927014931004292062972919211614590333900570361001690459018571285916450102050148189823834502464030641353584026425997662549064318929851046088067311118267304115317153959523469760903687618938784994596728735779903498718970809413592666870316090524735843670537622299832297939074965506736662656969630218825266001115937851814787141473868018231806613830684668683308970648935921344597267399649829439370034558976954700418660608082097226219080866096494328598594895803511415106145480629397308024241298365087296434900876161296012869360306285718392521597812869316120332884587976483084547594539649403501124118221512868744402125124325021437984793239079444650874450438514362467944324210551164572667655981367873276858078150911316665350546281936416438326078964216818989483931887019239292268868923432695681362070220105454299773988626599104617025887246799448826554882697365377180089366023177906184878952919500392599082848849863184802840509270013252217354291888498235572631351807458444839218254984902759642165159518246546379686870997055388700060269419403750805140934849200061690273562280374073827059830710138289454197347030101661857027498272213553314265635454183472745373259042605137096878906840220210513085452236665434760091553857823109117707887276026579354832869584249453790757742865490554121911689306038129239577345060475325498433113419690305521943869608711667425344611712291389864040559707983965235521428426256946691468024109409198616021070998664928584262403684631248799031989481284591319509223572894512524170442613394926827140005182480894567295872821163734336892855521633611780050240005287703671509862812294412961678222324169701456667956698292050707174058331636068173049623837974799260017035537202227137858799870565242546202131638270099425331906875081209361435406807521412936690510980193550775352381466322450728503251656364152374715544630968485247865450778236794120709564704739249808062749198718096225146723801331406831506439180170957524574095218548415466435346087528847219254233501260495553512070551983877829954823596677919601382051814572794614975945417407907379507398848717651947906052948591709285509706691845205375638039999623281177205367047603210537776881730759739141501760225752955780106165242705917194261032685395529967075496768643887135481220205384822485300247743806713418581822413977242760976151665931917112036110547829936830531177168945616525720700410682065122372076942041672374295977592522843542323507436821584253600758643328352192908930209830320955488078234187222905869285139237437353439473281028617365160791223238348195182575747711676076868217985816720054852879254822168029903399546961849646571337615149256667502869727368447978070518162857359379283761583255622026420566680903277050858333651854212515431944142910166037950353468629646107437819325017798771410221687109540781177760329930020694161615702872920415410944851567689794833061483047256697097659649945163327933942387502190376576718865099600737081229057028251639959956227302174203126980542679824109001557552727661731068957712454607646394954986271523828035786812190965639164994096800692534458853214690185176447894593677273965395306817367417411136133442017677875089742494169268328312118488126993451495657551540662532577840889061844744000042314946204930779774924227340638440238665384179107180394083966119916547414251393336630730276240427131884313531264540808007569741080529695497967138251007423577620832988734300741785425895479674124340904517076464928175207622677141975030826064099959031520838180558424123392422782126477642011455968133812263120965579092057590443729871383686526467533252532139357368623836046506144704270823837757887712636440311586121616480639193246090422089839542726423423074184374619728054073634214168309334820021907334098002189616161079252124666303425012831481775240998097900876776295620382253276437077535146800291671419677342609982667951102959029725271999739103813582829692299457135477634236456519666464613822170444075599685055957687638962370854792538023504922006618410085306429246514452571784170635823346197511476880990046534902614145582901441564548789702631787765128001451039563654890374833223558293567594932508080959188897554584410300302239884252512101099398398412745572423325730535808987198950610147584710633738396369248255341927251275936225436213734198743609909473187385309678518581918511630158003631557017272094334802943560723556061568284579465831875584286404874647162488500345840330946952742788383787354637059844789922348826294867043866078645337633491882607852754114314847733530390165699344380162730321635402618673686395399591438993723456734497176242872121220686485540867056756774905508859304513309698108472557027586071195133452236252455844541327270243066484693189477193336497080433464789945088557614823899058286408927833903106592699580418695480890691661391957339549667665561546410411692985864209676972890800785397965938286110782968316260708236546894180381661011193250732638352643288854225544101594528616430066159775610163338544314102025321559751281270101852272148840638140047254848797671510917233629725580604238727944447856401123025521430578246160161775140639887433383451872671230720465645887397489454637544398260307877714116993842230336048336744439773263401759847634227237674261515611471041813942492513928398132400688528258125167815535954977277108728307925123355095722435576737893685254959825230576304272946622683917079654630144074649869994118764364534288630696414118599840317577452395463744205846809235550442058056819676475934075902739442722046256753335166845473942624881090075819965452850838729865944484832599310524360980582696008301752573506780751124830498259441574682211134483655714519668250058987309438687577780635078930634411215482860395351995714440852168006610049241576670523982888991953643976353274290129576451756817855869348622261341196672857136845523321360680463472486207380440761524974801509588302886502281032619109908638632649475393858400857180925807443148585809588004374171908103477604109540641199795971342324324769625664675422883459086334463271573907450094730293644999540667952282374025514542639337168392372540058561226099136513505409973558559757171432027333427910469635157992844109092097499896069465376899450313545433074894652906160851779517822335309179632675265016316751435826239995305981644375651058863098969921732942303800927317688933054694834259874579509612630575225571285877280215820284068900081165672243540993956079956300855156627875653489773386072756591750366196295215521655222427661636087721568432433060568313433983289784153529094317118539271162886268815840672272223429277020806197899108600424951997823885841382795884781600491685524244502610401641472335414368601948830748105470405470506351066313698863326091622146672314147924858028616911295953051067297308758765844544192191334584336481832840649454851297614012103724767908423136195746226875673344911145236879007904568500837672925520236301502092892299369957408280497977887500552014884902664559111112186594997214484617165900142270847726090371558622956581055406366575186030611195273988831928846417224166030659052690909219201992331607631437313926730660003152428445850674560463615248131379616760666374109288713626251190962970896899283424828496164511691292051798643811393276876405488963807734604397816250909345007389844564983789076932431494770402925194413438166638351684230593270924673317128391904348241242736997817086867880548478284154127775266112947213444900229377333146489363654429063439468401348410986332971572168722432652482403229392136158185505079871667857809883602453279437662309555256021145679458786101579225685024152279404630497716329009018989715155051594606584743734678977016110102176252828694766861202429717763507819777413811434282840384029934919521216127981614979087010206883909640131128127842317879785900221502758235123379516969415979611633465829886897123695468756300887145753777998075246187286804104097722846972173050841252099486182572739112904163694667977738506934393145080021618351900676131906348772411823478624127428930319691307726339422794789186694778403854870785244835858376240925657228192639649551023583531024136402756503960351694027341149282429977530820016144449073601937297125893204127446833040836114356190903936592670374025132069363729773885502312685111183542844117988889676671195117381613430733389187588795677391561089271925817383986798547984389173377682130686301051607480475676299851813956709727374692623979815541748543363128665776973934490664956291030400705158799843013164197897981501528481364762201254889887444262150552483919412085617970990416928400742753507655960426904120314764363402326218506049558146715547877063792306019057646487599914391946695078840605671331478418743323558020266690736036802002531007155094414420178568392634582946933529899699315610777086445314000734690846196799935200445630477214949031567706698841845987548472298381280470623049989459190525945532094073716196897132002406540785823792773540673445090831372384212306813945110026253961173877583114517861326525074130313640036424062025133180360386648529054432834880930006963475807088175783555624877449671009233500604145969744728425067194779441029467678304304344385693133616000130492051194976391629657076789009417659444674892327831686936199535128376130965959917750365596305226693370917194519399197719580487615441677708378686073634935740631737719379555729899691105248831179627253901222016494989826005230004686786266650394393118282907425582427695775819282008153692928499335380235006612079818447702716288992708665290597195088344932355295554394037061375860652888183602029567501834993314735392744308983201822138553718910850374574498791055950985738010466082284157758241591632799840398293745091892502648892650117987746063003209561624948175802240679090135012449834383273104336047777220570844481860808767668525791558991028746347410180397684417225994256730955785032329172980343726757011194527899079484574247257869448530901475227484773850303048119340597414392700033260886624013934650637137541759692213274132275525429386858742017837078019718799616334802340416131810183238072213702860607358358419858069387581951282370750010987807902502025525394493219172645938950171682678178052756944353933889416659723269351695278921288242697783810675141396013495079126426222777741620934537644839244028336913515255584706559003455723004297900996619242584164729458726138020865475258706370788093752279063464685622315473300937261929349348552479339840494852511240112669939252383432770289887600864840600974222805668159943540442240124675855188159818180254202891660557515860022511835080588478716894753347359744362439910192923526377312419307658416075190273318902593439361467501956943554074130891800260301462495469927464603479243701993841794606646329698629258822759935837116833381849922433016625378319120024772146618446327590389741515998142789006070850127771736657878488715586511749513219770588332090967786915137510683156500409237903776934674351559067079897078388816013512943178167561352734764103258940600758324639715495363340736712712166268551600782508874391205627900704352228313303571794525975444263182808886159888104042842823301020643375128267974002141606673856706500699551770802435041819720855509585309007582120885888351272379669000865870215784364628977596207754466693295247504618527003440995359948571171781727038990281029784632518476071786371532256723334778336439000842844111377518907028486375743017191434224603023312637610250894789525278322929501720603380195270582362474750208904910722470236126450842659684519215825674589797871176853680951162051149936148925708532148261757496394229988247560503360752936589696991914391913628211555687576979130381110790475822657304374831909728286274782678744822430321461466387939537733116963746215735734474143829865499654425387453969401306214724425204584728147350816065627669778493598250461304991284648934741717989984428036241248589839349594391780462877078080266250702549260217125305991062747984020014712152601409132926964299118960027643547715963315881946327933368898346296212905172561932641084111161676591965457785984867613384920399281576969842969222254477715939063198675087902551254305344746672852584065338089434719273599731296859588120891572403949988152329254670643251872389118790376928722276829198617953329358532961340002740544638575505262925328209720498171895662765118919728905733123089031179055113090947744420108915336403490388899973527082438197972608421439208973138501980274338704306598128033293176996196478969499002666628141511610895704562968961840516481567416230706706174194968578836349613700964952549765426182739795825990972491225935897972875513441338130996806222483161752632162645041590129817202806096617028084585981987145833011262705475174451092723273654937695657917820925332038076854316875789078743438140725607737527900199698700142402301847812288013141715150148009184314649607927829591130185976057124945377652114767780793389882107704835991890988873597982292506727819702110501948938802995948605194351834266779932663607305109634801185641861955102476224610743081759681704259855736011481706773623400525156287295763666649249779450475346379425353934656663570455846413163290648373292816709343485012441843171423806691951351316037772524633890741567638468425346018146228039372669949776507780799368192526670203132588044673490961398757453903899182211577256284847968271345282580038457124128856828661193399418603007641576442614016008612870661099056112003005394288672340374020568645149022395957094633518431680234811764275471407729755119778138196883677179374387193541042570394120454414449080470788436191369150300394051583221087060894745048386923521496462296210119479324299906347477908001154630133796674521985835317636498646871428985770991109500743223470834066003753282846456642237334945654809739800401938480153772124334147253879735897783726773022630212457650167267024593394408229633769832887095394040972933906579553817035615945065318433483314356497262417862558698317911298931906596912576129650927490937002690147117949733250258462979692292894071702445193014491349387845936131264281997447976959417526655164705880865594144306468871671155682426739169515654301186489700978064622733597174183840429508468997240481610224047494153648088316134722864196830634471480399884741110667979925733980018590445203861478689927574542377014588950135915053779888531032793813958105196047773184766567448834973359272029514913470185469665747036081003183552537584200096030120423121020994337428974063205269130460485493598721187380880625592447020340763783469003609001401412408163771227985370652687421549960717616167018523578669846759548881234821452059339827518231571266399660696890479320507230135887729549772452904425037499841611080156042600371942563929440444356118522985339134341372243652181181443717019102424756656725051152223711394572516712066829743649419483997442037312911199997710937984867901949249984110360375315083447698034587524095664566605353632215398525480107060684895252822248430339564550180578292738841827719318197095911454636950647839526070120829816098350268812042620671101407082998601086241525807950148162256218197588479041110078035372785316266395357161940049793653415558603676490841251444349037139442139335920216641160572159321930409062636953683318068251707305482443039747145624386831185371398739435993368061301035973087713790716421467385881169560637494812362700229297459678599400574715343679360961678075264163836458149605517150519100364762245031668922700049074069233212286292711468925433893969579321152609599747585507868636516893726686524545639067979290016408713876976846252562501766787236424382244893056405445828832440520903543168271358507510448829118505790568426041797610215729940546855532731212920307150642573410544417743267372699195663727264462372759571854096604611287785866168643898764697451010249096080043864216793649269539983796203439319869908133745025426170203852637316002856633350669130381596676295626828515521937288246775696347164492939114190371957929246101399425905511118439351280071893293313464777725262547159503220266062885242525977919487641832177559436269181994192221830115979285311170083403797312707002340596695321644247955623950897795580455867453455573143787752680668417702533389234617667909427716013674897761238522132002210051518621987165051881652347235750553150479631373933801083169845501550139510353450998819388573675618813215224389297257220622302847896469954742465756742922420202124752880723853509545557647916363733271212152760637335804619837090557969374917134978712750329331395188619927015759480876504487330949412898166263058753342520245780303390079186585504723340180188883438735601948412031371058573796769457905448232860868376184252508899847065445355077953022780733402030705128828907286249635493836380864673384758250517494614127968965834513341674188859002344732880275919410369827081757496195493438410624354023216731337086593593168844391181182697690356075063064379472789403881972661482819420615596908003173152572170487528703007160357916253443783003232613327188086294944128089796232030235757181205769373903842785944470439624464502572592992059348612707105849367144400701837638704340024108521267716217010291768920339573203159588599169347484273383447238378328653462840818666374563695341564249272383465512963829593058930175256239439321026472007378525330779680831749809320788369067505013786981904335220325241017606527367301532243442515057908355988963117840032657769710209981433938746220058276406506553011904571120568043256667051056672107456256884174097826722375441036806483994848046212943151532963949746988448312487350165087076619454809252468762813112400904650204520938118101937426804384748521208999482003754037620955912475826137740073712841656498908915481698779962936834910455118826559409730750696033819902042770089716717401404206560154179692952197497384544124052792092526259438827986022035718036842019938881789240539598227534567724133461430049311705731981548218435747514434540495519843390611828158234397546400688771557935340720576641400255635788410973676428573214970613904227740892687555385141830252686230663488694234125751857099363598201012371077042942790372816149793543460346368787610939071976299401418771673168451890738953174266416172409371730429342588808216769896790337183257941061253812527771330331516562491707236707883137038692975250371564812123694028222546617267984250524128795146916344871500237107998464684069165867409687253589031623206834486716656934734047428732082047878843106661884384900147961579808218554596574819733675118449116120641622035406437347945776823095043328062413544775636194718953349621626807328157405738870516850326434854498926966049545762011542379835346580529107195831627963722668861495596282497660572522910672764629841185224943503665806526024647194020979584177791635019641359153802835178025177308065868926640516632744461141972232078650376561955328907996224535249468919720030293718864189025410453886493212522494432601734298764178517973564957053217611602655815885513800187392671525999570718716232219614980326123491564217812046607013091152753846256955339167700505158807511621798632586235553844774520614786782810243892883450588899575597914126379823800276049615022997006452705130038366617838208570695980623732372470178032091769561802216025003944386102944522935365157972634904647373023834381080758269956693848641352314768409726709098062206557829550291446598875999558687671901245442895860187582939272866883357085920499590437177495911948485699512473186144629969819482912110499601446389528188410311741565623999560069707913932123519013154468765825898312034340539395593994378601643995436315192203306580866961379652600719580603594956956221727106584111750626950553417087039460295623913834701499443652509378899570716804872819270459028635359728956143798299467926014761847894680333809123585211891190819116218759450878465724237921501553545503275104167755375905994400470467482860757378753835788772693609095701499470684656302358055414564461955553071484156890149376359770852162929321723412928089814385821444148103553731694037471321304282636860988793387048599950787004890829668376428915291873314914027351358697828095352276369455311180278120712253450184368730541262393093706089742336721965578133976465633988319487957995662277144459832303318167979836775025691205039092216688200460579534465478529224504954925037758242695589441658376551419573173875028802052120027939114781816297220468147551933084638250141176544908823796732774051652160414925242343396556212737955406257218368004301689371419888207184179810567637559728259160380997644467805636200774092146966592549845553466148656696384221543383384550914935340219267339884244829512581371990938403498330805777939422099138079116711849552009954066334340859136403294284561408563506063003573566420612297796361985723727705323879253280123737311614169054641059189386887134737366053714579975578703958798057003231079473793906301413393419845088002350563915517868380978876301812892813971798173126038592133824095890920129521516408224626865483229888504195844200981748542741956272731300581531586368282751304899504182980279567755505387622859282769692923331860124450911610141566106669101210819068518545084467165502706554246042902770199239090039671928571688617839605375267735865489195236442684561481124087254299084082088243150783018263098918727601839631366672856326000986925670398515251054291311104573112802163361134774247218495116798145186978084338089365033448326040864820505144719716154318651892346985996968043525162267762678279400989176607630426549057164243921183880004260007585020899875304218748476887109488941971835565365319140809007758785819699548176659417227016626976045790840309499470632737955831413491739640423733089333350819902803432349160233369037060164522048821005710366761886948186431091384901225552538272628437795605425347581998320846835095091832670869767178298035979900252219524860282426566040470520195831950082220174198115402801722301115054800675889839489997531072817599686308828473352380680725797821866168258944993837928064168503934809148783310475030143000821930660923526639409870424312975186268569156106233950275281130663501607894404264922832037780452523987914471741294899976037285628921162668405372784076329506135446748216243596457467704350984822253151423467759663719834983286132613633196863101497898460566159796590604283292189076991252430872365857834643746197561677989429517114810471693014456605720541450159632410251956182550793248251934853164137142901055432781307092355939594050094670497087437882941335029839385743724728009228381531377327913938702210682110589478506983133785452020201755186113893427769092178455113277090913811157922021365205261496525351747611219394023644987234143289122359603264099280762435426472827565584034922894377571895335381408726455677783433471491906177075796276994036173440371824030589472694011586701484214556003220888476118666242957522378627997210383961060524828178952513477637351030733195936014175382537787407995098924625648072395481384642003802965823099322353770676931181838603243537446453385982147461340739439354368799095736723752008007822868335850180432156179973356014280864961101558453589214756848009772537200325098544784042677712260483791906100871788415523576433138263746104553991767453509315919188371149040790468946976638534267572183964930558882502095339213152762812067041113057784708714403225614156169972191452895354578164580776860801046012499605148234310100102180420462905146958830134885098570699868052670119528959935936892693263816094193718734387457973185595264507772078688979386866968230205591920460012987259289534779942358432537292670105555553327671981577466541650540566283160780253297337073640449706402405176574765363620395501852038248740929058725399389986929309395869010657522546848546205450756443820942978985297483567263829983003084983925456244667491318554049798200764455725431353555364895824496225897839905704168426106119110678629007758811760764625733240727325664287298920461255744168310988103202464411309266570341130954074262383866116373111076779284582854795384680551409617137411173831538596027158929642446291552903677495277449856402743725273891292526564373414781144856742897968492815410942527166006604728990918809345986339709386133761601532455514803411574718888261795137905281790442144818842042715216947427129267050804998474599417417153203968638831592298797676026861671138206031947488471246485634756517936622009154055873055735464523274641537002971451327548364293993193591026531118766586434907269903145732393137406378759893265386390350106362291141386004064640609717587584430501354404809546648622786082578461462498673026584383415042349811607862785674895661137538232431849504958809246732497107971273850299058528117665943246675738396893417899850186260194187424358676444612524254362798579768639280397779203007817044974495782067773838882538612647652965625761020673121304772836653577662627757466667459200810148950201757613059405885972127895367353210480845500547716358419191509478218675433236847717190462840486932052228630767156952130266292793738989615643662655836671817482878318883360288160112272630596232865289435815124650127307994668942175103642730068114946874174333986943804813528101123222616113376200409423252979614949746746169490361771243990643001816920015282025620566664983837208942683082069259266033482789003055351076922530398688569478894099180876709037478285634373299452021517308102828831374022487794464473931839492500276440728405824967605841785473543745240752548084545315814741083087873365092433692071669820117553253759711931147816976312067070205415352909999071649452560006003571940094866539898514766175926887853750154830872569063137474748093855260767540633618733917729328336667315247289349521880289790741501558644749734264493288342632575896306518342005376737801052069144844203662422822163483740961803624264326512024367358370056483128049314140101894072326534157831002584233923223524522049564234906411611104846898021229593778366757887919267858806890021731212929928363846824204201355592740425384707718956799073336766143324348578095097301888460929123505566471915805601619204395275967403692063104676415571103235537169128741910511671755907910469579389696894374700437728829332562500408460316227540849015747609868444844852619637595300628529219995761807788334504318788155109875586005282176547544496097689975256813542443421215161537906610056894323788828831374168551435106663409047971951269697773200278234401317119110661788207693000246732617022223374004243150237138719245296439486336178174470195432653283607999848805340743060805808128442774535305117600407100649026009622427366077995300042958592239128633451604865087689208955477474012811754083292180048421172697043321095426110569804706454083069461289854808113770209493033185123146265656259378126112082494203529624154549909872935323085061571470413680968992184301878793241741407816583531250637629840778442803785912740482561766898247484091987325760131941021193543557770734845031701145567822239024120792201664825789798139893755762807622971427897198129372328508446733386636593487430772746239369672281465110131009499424970229832190005335536633914853498850777062533354987160009959644022321360767953921246507426050007923605268696768403900255073148217504564226812709944576266437355342967330466433039413977173275638913223167278894921026903499919082507246984246523650192945053289747410859502818439989776819183587135515817143702692666561889000704583958745835579828110331737319407636545216227015335859655071879165597870872790877889390775035943163487349818764481688345820666502989711782610181679564811127483548552455466004910746727872191694605969118390773481476497439134434110380466458366403097121133590665539257551178708873793348007923757219866301056346914566628355391463534958549615384129221105035287115328134606544445464261655130923158368602516005000196881075435088129871191183065344693045410909021648560981439781115447493592524773789474341134725070957389590160360368870860972623917289148111621278704818729045804276145205705110730710445434976039350658425248938054256301028256932283233053123627878010145899979155894345356007630326702765866975234038974772941903767441187917639209940916995459246681983143343272108280568483876817809572488915044345391903460476502783012284001298196342291045200187084125394038819932808503034777357738556736864538311413407916338395846805707570932290778121700113946897450687297099350157395961283510627999691162286461830801160584755110573576529426101374132731570059444680328457459876937189800700185677565920636825410678833442867027142267423275021651588576105948473757826121648729161555872501571124275350781485715196289969055791279726434578294019343635307373490673179924742285661524456008955987867324695125101529328635927766668710206237975352794714866982114010525570401844987510579901841296056961110639949377959163983892327278228555875100747381212738565053115248374303865900781107594249869071628742066542565722530439187110828301347029068829863727547710884581203982450273043281222394001880327650227375456108405525837298029650343880674131664541386828003693809418035319425880918228188536643074957205762618808614014042104547888664578373594386844497991894557034100111904367305722091336849025226158301478663290799911452413585146312251841724051274043816996035867205721701224361655458120556489949929452008247760749409157502720939865404220312895694877582028179190197972362811279301778354019425232321290172141853909422212313038449616725361190382056001184722919663964672719079525506313272032234883998941158848391498778572840768021437914002937161868739079555930198997744265920219981142274488721629499077668174400010738878094019321929493950849332172783093143517496619178465777735602313050080710070899536589308201321997016871648592070855526731003481579918741429690807989747901643784007312146265850098989659383781426703769924978324628547299881461260442424098622775024942680878560986146049466401211482039759992925090337036078472446521231223145947569454582182731215856123863702741047455533672018153733921176825153882558848059231183953197467482667812094418924314397870618176123867205995805142518736636166064773211212374173848586260984356916617598988653228154449441499785552926925217265674406380384431621691932064015603165368153208799567054380922943176641877449654685337121033010598655067870604037780852810108254393484423998570234985123139067765399038111977485879498477679139602100464340541418096510077576555446761734148359781090080582977945106226285445517537609310612682923764756816334504892595428151720155867178378818412587216835544103146526788665109340577267405384722890290656941243670572033731402414745443519533796641199610315311556532225462509663277006008934916378502304136068792974856958603365859631201177859768369881691289333438369701955937016763641868875573941574381467830633755838765691027047383335120735540569184475136394347649931004521055417151758713606919483324350685910527261619745048572143033975959836003951765354836495116253135615090753942221218604249328758611207528393276273491504652677253970622681656827350733663886412631998154261474264423724365932961341986797043955477606540221732947975951761240976413021991317168678905156935324966982756170999680700403440575343912839547083391975690524514974325191483262427055333483616598472496595748403476624051996234003311321095080623619821753280917083411383233830958152140312809900479554510130856467793971052123740247541847613670078408004033413249252169539578491578749058010639131845245964590241308768068920056193619377426033757315181078276725581246480907941003067348336841107334750901043025415913952801281880446587251958674720125062549444460413359390669364550382560235586800431861386406131694062159216411292347394870182398853329798250903912655092003603322140011477403590514343082539003737393891919219419874561126123441344275270847009964301503982975325696945908322662389774713122392150015682215985639376272990924199780867526487616068841723640621417273112356573965211698446956478723586134383997056751813274074580838255739032260865540001846014939737187332026592262408093443403107583554958862830622038909306171728160002967018773052246360603287409082829486504750165235982558007323939631859344477406162880637841885616349463759144122742639799137524625282255676641775462849425454549697585670623516507891458934580089706166341951496624217994557331106478813821232502514940051467987291495027232459350578077191776334277483230927719322955368507371827308481253215911811805008309795115842701405456350296974374427638621035217694274509390413733598260452238255801786419867305515185244677017012119877709294635085291993158215824426271990583547180883383910320664565711687095960533538336486258982293381112961507961800300041751782995905236080229275353532216073300817334317138373271028102363346012666181480124831042691075997860614880609043386754813267468056863526723058430767123526492371775694004133522237387361060827100275514580085456723360079232719041475834160725290607007528684139689450816698548287454373013943179492740992583350777881023346031484561554781740829340941017937175386368061940757745295359221071567706943014942801473706105472801151547938219112908248959009721395533119375336166513042654271048641327347527755621428687004668653118577538973895455674013736407761200662478927487856011391446120306800637506039274398757311107272196640659013118065686029367269178645132729797362332683329657841924355049934853584397572452236538027184821354751591358399783182290912550383739797010913485830255610541333907585109130866507689693409149736103792593295682396945479954580640509411893121926821880741308600622251906453243894907957873824991810576148627675742849097286451927855104550386841858455609768004539975956877962906297218790298979595840733594940202917701404972366846764440262828063745559455965301297813573703554207397947977623416688798930595362975235814320128024226823485988190807647770978727973869795741824194441309909195693259127544931689109244442664867781896594221861115144897101032200712081682575202867755702056607371208472033719625603050299718603132139140941322814331696772929045157695045913024876629923028048865779133395148489650320278896641848791474837446641021946627020450546976179178031083715227365966395264491670296252588432920793102000795732772527595178247677403364130230357498124445410558605807407079806214902507344706173352869841740750548291870863059333523241333220084761125598906270968952821228395880902501786248490673987141998981342361352316463599378579236048895406739840916823401395706017362205435973662159740687424090699984749909855892359413040378218770113594950854628025882194649887024227101666369781522731031788675428293493598986682750924565023796799425625635882134212550613057702126339849007433901294768156906140875529778585571693150310383260725376889015402382368325735687916698217567655605692297851471714407725395546873395017689538206702256480902544966519127148886733727812958720827888405517787272926570683864468212219932391244560766224626779461252846776896879610332472927070857948378046130056758740083063289250525828127777902037286669580965121504656769744419296055358356881073755392416340928339124589570213596939774470873595928630106537673676636159680238540486383586917502164989831415789375368586998966713033938000218406688352678740047231791320523465039342853125625282073454479023975332045551332905935958167940843600003586176957836402562759296960476781743405731430820867730648779543821140610866984668728941495712217074696194890501889902841084509266331949780028639273019519427383600366507397227491843327316388975742879569647863155965286403483210053834125303995455709465850160574178148378567994815606592876908473557319111818252411728203948752907176266950576917733122630306588087180102269778018653269457201132018563504289415734747611207332422055233790937095907554215242399277893748126766947382323192722769501589209327195726081897513919439717711656529447389230541168754867980443267128735148243153381594683505047237676238559934161618132300895520888373138992108667125543849639754603927999077282314895957833236444177657264676951596647118645376487506300589254949292707767012378758522690366872549145792619285271002381568854365054265236979281662281483614760333836018375534586680686689467955602040967907338361202347193078403309376939983833903770641038778868111698538765129850059070550031960142491034587526948343493833099713523165600753466689329557974356949995418515813107483597123174688817429865633920300848513369601120511287303122487328512558065446820694668856525079055110965660217175244669363661264758284008983266723534406965101382574114609348736690667898185620602252864744570366391499041724299115906273259059129064692422458487173054478947049940316401287171634826314414664358208531448759310389225822518547744449322654334045984386724635321039567052757907667008028361919310951546637193376116106858482500886439993053622955876848256844923700266792850869479452017353975762939320018703753346014793846029502632561183553464591708579209411020432221256073859176888733199862295111739834224952279445622406825100222783288040206375844418993739808065675564419770818614482422925186636178690310275547434491145187842996626715235667246134511746917481555603691531824248184557324543726828883199969465724314979171399261297422704252378057240049274096800829046827726400762017746653164247396780856387254268259959964855922680643438843375659398655631292595198467559433586072070556613151455179231845490980427083545176880269620390861964176675860141381359552885634769769648093770248035481199314469663364798120346807894162689324415612438898811316040767023400721203752184133940390560100645751475268319425716246936105769596546527123532359416776229935063850805245699301906331990020333176769363536806240992669101188213386618203124168652542944821200614167824177908117262019158908216534881690186474020195202271056247479008870309605046920076475742082209449840013613315284306915767376101968945399506996018147020922464951924021415848916213314376584967081950026554250020448202383911590631161025848631817786076590355938454021331094861723731053091296827631368104935132501003435384050789111906476619447087883036372895096174521624867265860132946343504829189732272982936901718562949438087852035459188117217808562956368463943214245999603501220015125376161479905564180601451630584324330639536152377187243314927993647956492147821886372628836609955547931373552465578781876521450647253871278844622976743684488077832606646794749505640858194706723303633877923342099790836141621060338064921981202217408420413503908003659170671667318745962672742936708728792514774208906443510087996432481115792441158217354399265546958457847370520234329634900075785682048131459218897674528184499445452169117716405244491082286465765148430777073344580748117291358727381738209809764453028285639297834525558064628094395380400932898574759058877731222949224229705110477631466237742815408999719095064039666513425828062663629567799487527988525249378052746595969528815091098128550497178726789849361565457745942430626748020300188296554187179877767848117146627027559346735151527128489169952369293479227850910644823912131548643587488288605759598801480247979157937729883643965289158695558476297185863787113609736661950535355883454809148313582066956464765728298051047133333465804200673888031413262098182974466994414269995520720928367916402221478235064493774087040478674418612803583383421807479540383850046452837647467483011509958475270285639587541290412144248779418382270987176918492692941904035301583211392193516856395484300452382479039565157276748750236261392798963143283407459706465246131091529205998852620308883032687995319642428285455951507621620771328541675367358232823505846726493061978635345356225618860437994554333586553314427421626347502428978883169645231613847335616983145225668476926589902218041000981392830863736145687438358831232273302385499898287451557897759648087895168604313485706574522601348719811506946647807762084481226191067170630681920655363751203138962538866422650836490126402929233994817483948669389284995655400827028245157850815031189342692704808099021123482035915846121441241403797374008093428093147343666414327664797995595919353380348804084991482238962617909342813345739689356107664937776709186577794786658800156745620121373885724470152355119773678949325005937405875817258034150369911564132396177102882655659042225625660667364663434221698660374032930714531976921087203008574090733456819916607881097032560920154404289980362643242728891114715098241324217788431426347924393338931816314579789569945893015761497304535726495529764858313441042842924546876125980803635518455590021407309470536869742437915462775240137491500007638104919142511820738634513636775112498786576398210696564598388287004044922869302806968830320399393722462619723427516161142884970088822730439367743939394155661436347899208618738199691215029773787137366090282492154895662811938727873120400512349618776149100232513194364826036397741707377655033704511477106909251620330632379289635365006951192605323233272321765311856829303579718750642574078197964075126890326752973447274408954557533673872117580770547546761349851379221345193169391670741965900493322844177427113044083261514554782220090614253439034062414875396750309126760163530235181925260464512913002681637844212727427002728647553891245585540581248307616493570332426662221737668172669227540074066691678965194647192865486994910049698953559908325060944829879213311863746307341620325093891790210059944806796079364730485116058706084545677545117242158590618382287474630596999984991957873660350151141555452691837868212390260723164061957162311287132635445742630041177043930875026602531915412378158443431913686115192853320283769047901465464035291808144093301944719672986106158393399376409696262710352290240833261474600368942281417878001698051373425856155725276803257852995036408094362343933351856719219130959883913541426708395819218850119140486696589210141169232336843115840194344642395658738834543286275517495525142132484102706734444760340917831453192378809249437136556900604927135899671647758020263442412797959887674514912333884628612495889000275537046491816162501188515369457581808936939765902739755422724240364728174943499593826053117639831146200826636282297952585925767121818348671182231727620149920308256682205036959416615480262037157196058446885362150148393353138310149055300477798383643673219185722285197277965801723399931953263077139262056648799314773837863854295128967303333815131020791933433426139975333070409162315300888060126590269508556707516304612021142925552135003034992186081058157596149631205094090681973535658102232075905468577150854616279599833975828595851973166640600830642155256776602953766649849710001501936497431108140536601621852999234430718486704702770787731807022732362960524483049597826711111417963304809615259617544736012844724895008826793962720597161464568393824037514716315019694368558955967400859338227102547611590214988896945132933327547488844245291559864199517372201625589135780560606543717937245024950027819914611164078925505003259301506650033166870015599186070529577016301224074730934593292234995341243966997591595870435028656643391584427979335755918523324474603362997024037698031247045025323240410798660612144201596265684872069117272010808655478163049765778321456155647959889052251655002988906353975426161137034326271731534336822054254262209615449049427560815148063073821415762780335260056751250319676545693957978857656400852341824147289031362928339712877112065332485343321909882280408310037837103045913237536540388340924713802775889050426748074567958129789462877918527467844725152090785436039666850451977143837909083751347992492054566139836556457469999846019822394953555308615279878291209097156884073194418627192653858071523844277913712266672600568606331441654717707514231203224707130320848783814502786007244127305534998213329958663558244083718455904886781858441142154787581078927318398985726071347770542324308830625491848938673760043031007183741697200669620759576595312300714981941042177009985983818850415770228873399313006856120364036968965220851944545185362240425254202425810868481732374020315762379384661777174904300676382683470058618844235922582836234224814423034105427481825162819394740820080466420303964631463499657787915379521627576824597167313738492789210631868663279257761876365419944860699334019416790546354976249923228867636381954983066092569323278936816025422842585084396180183297923659891805511134163043707132423779234796799163991675057192565803285536917041043418945331593243628333826084367106486238245724746353627721472512553004676917693489851186297771794626410978430145875955312083202073258682288958631058383304980245746767703281905668610634695228595312193702527793435447660477368435870209952163426733854374069320491124658798279576053227380187651755228915740964463180748202686070501334698265020581188776009782061186325081956557256048646778387013702945458678187887371664900362762572132856794315721652482788788883760394745254768915696543064692403423867813142496170075749166333086391897760271151583487545333153819408883639953141809022858342332538574260696886495224462182022650487087136452113623126186797212312546040581918018314938377288086674507372770617721718085173159031373765522883656483806550677934035825763679432173187032291685875965693547459630654251363579097318410327466758865839580740591406862389428393913400969348083298838815126421109769401519265566524208249490261113047197257313742106775217577668183168576648693620241090261201224090849810550872806854935583447276024781250555892383476190331115908593455067981479053201667605173410617588577007949621306343806187813846527479801537094108594597472647707587633622955904529506337053755158253580789743691899568802843891110300055658541826293047421761679746170495479510676830571291895716314671009710010459795514046303368906429542637747897221734087535833464208681840413814154802987588488695180281501770250011644377775781667972111114594615977852895996014453429784729651079351961495032759316143439140932776923511807149908926858724046917450613653792517796374928460088291298175424577340774359313079753064404506538453214566841675995520444595502202694423281251620796452729605207964226900170600846680839555625360497948409743659821070576944539701833372720635474013938729709783883324882720045086436744975762821077530293392929694237209501689977237333766442583618771226957959702418027225627510518638810068389147310540490964861748865449844030162549263846659490838155173405581948943955853363843047078145284143305520187230195324110016406208125520308555295624897748067982776799364889418141752867672130018291056329781651715480758870548316174274604196322590308196113968774771581751965224236893117637947494889949046248737081549315139371459611502092125885260095675472186225287047423942835422887292805242775259596392811042272874272915910242255428694524605562968781740080455035104527699724125327136905290249031018464979400918702615199560490348495703899112582327796249997876294617940988440489338755542180821910240389116619245639618643450065689363648645336099056605627567244952895420596776022354614801466975369452692663634090271352846030598044392317184270126606051501308131176505245399880316968888091275733814941385745014071324245786668407437500103442205601495461701110903919696718693565605034994327230864764994828829018784043408275371764071341758779833998870790279088394042864267998568233026414019611473004890729994806785792221104431500044848491437887882087439060375163726353377293401604541788002904466223212889221043876489036013380900453671001078785564355589475837162412292201393294675695313238797518097046187319564190439217246105390439981219993180248362622670475452077251976018121008825409670854947868542704820295572611334908608853647533451622152185688786946980654544243174954302551968561337586424920513649444552596130400597847803174073430917337213359459914154217340723063511749285623587561722413355113824347063072254510841778292235789167082880960624691414364252745618557536787361394105641446506563389611040854346592479272343790295470925306732716968876179356214815658831121054478832220593215577674537072174698890305895222065588331570164979958307602177083718571216458657253547406886812426250891544964726793992205896358210388381727195601807319900138446626356566322771392455177114577210093039114769690939868294215179331117774985302407672743351229719734956317245337001731009418970070778665529989746380180441268833775889107891299631672032008827265554745491854945166010802789950543583047335555711408787548889270973465458389843038783284127934174437735184705173691566114226350234553883291570932998440494260850803886822684150461970361978257171847633046082558450349754454764870696550908361501458151050841191170948760043833601431066305575572045986335705597035054659274974572957813396007242572617592815455250454712938466982913441151800470114503690996505287239617076822450415613537538966749846464328307235523354124364214647924428189523866075653539690748812867618689721676345170880994746995432609510085157775655339119637178784830380404140948982474695534250045419936160622002037693287848137923205004815973711688330951040741639072176676128975809378941360319823223476776689324745424692024858166491543671900178934079088577510379843848943639111240804176776398686272951198122390498559613881695321947856673184798983663553592012712604612749073255632096278781128378701424684210792475825543854722455029340397367544853719051717887293839683215609955292125231137957852342747129230982278035979753023058778016364159436462228142401432410055286048146571814848229433377419673303254718561109718226476091835644982160230027781576427467784742745999994354342375743311504429523209966595002036976781425631955633196855657535788121307304892475229889953906652856278337943101977690218940543675366004474478878544751176979872970028715219277603661037118055064513593169253283369163011436026944582108530680969469841531434500119890081635463271290734332110555838928915936528106248719075558816864430107509564266190405754686374807245974680502083797250126615594004559442084774745395382813336233752963403154113791070430195541440766911505749383312742606314355401339244848488504124588279817344111722607432418957203840721460477384685104196327630022894439013302105900749519447648926429030138455814473652769184197460968066853965102641023346662071567642082507174697181052198620239622685585879094154248852323197928037675099366731634092591270261980030197375306702460928606348798098853779269771686815377408971859279033941107489142297181151865561254093336462727824223442498649001775156778388645742062589949731610925454503516470042022461474481012746264811048839301740948949036366999296163554651225657198478163342432197357853391641602194897888039180058536319640259575619117523578600547354558273819587594509749404123159858957595866636998880370794563200471027864135441612215022365804910921061147442319365099152337178822007365691515222790928700704627049950758342785286482671701998647944452196795686609462125771894369486237722360723761912917626046414467038513616588332522514538002646228965114687856285070196242890725041705714070213099514582014374257263750115047867677811509162468058492224934127446661095167287401287902230471815087625946691783176231205227429409715315852659511075909624167809799820567022818951862387968097700074662337902920864311133389670098957903448885350701335273103848779982085824409780567190805420553746146130754228199868057861634782618054917196264179412153884138966141225092628470813202960825499715636724055664694585301735511087498012406666009555267324555014920345498205156226099520948262546359066135038392085850790608146012154712586364714640021134140979457328287696865759575332310150745495512082373117911540685089243107666513945039234200114187305594582369137315239822265890959821737152821887701135647648624215495738967653263216141888254128863444730151340699179087537840929455879915807091971376807695919172912164456882218981509961559902564338739085239944032401184936483831876682040538202963904831307027004396326316831430821460257521976403002696655871848954358861149283822092423160841909504082377010769553440055607282310804204618318740471450581657504514441650695919342435662177937472769839418770512121469389367020700701888771599295007844989745361658173054404879863868838567188339233642467320013636965114146791539253019943031055890569951283863887517267219618623651036803514618702598411052252438394089380350690025164565123879072446378355228147430424713862247371504315704652807724540968140258339882472935992507324939282216899159090031463024093858056834828146680253860285557114727638886018519047426056223118287850383642645431516679190789640288136654121466209978894634131959696860563256169695870989721436716288011544851349223353905143469846725735933808938969027237710787249392223287055312473293210514386990738190517960658980304200817010215732493092644448185086417786127854937110174916725786574778845489022825311780460224655977279798486407028021899842271275225472162443532215315090767922923349935208128579792776232406492860282194467397579559248023212031755962028813999205167504420727162095158477465138000720251339112660568667797644274083772353503773340093944623921706409782381205755965343930081095877678017595408557921730560410451748996616004557271660139072130411518227508835051676363886794396451767032890429382518019907300569837264529404330040776952645821282236562605135020012092287992003169445245378815991697237088739007071924473355238618110981663093150867217313669695744656851856380803424381605170349980857955962441634013213693447896718240742692609085157365660198729827282211887572484202023322978150502001957978827625148078143740148657646226680140746068424499446723665597452466665580880026383496880404817519569159537798487329830373107282047878526341664390659704693154488709631528226589723819970239394075335552819540796653137046269473387084421653773770392208385705912914361995270944027802930098392023391467006514543482069420313684385832009129781204392398800216423070909308736603161140728721467501429894118927592451899741958344217194036440379734475492117480879432968630119366167277809082611187711071833249067947844668627909100783676626110920130576087570873571219407769633038337294451909370657670728140706365195352953103926368918924567401592734755115416226782124671985050899356615459522169177370147342647936190219326007446257192208985439440286341160421610226722683739680874286194452507032345016316712252899030841954076110080448558292656721786593082554858137628765776532143481283171105978501411107073378423049899077790426694863686435670070361935226325174932673127779295628416597519036846839069965779502583735323049293271127954244408479328297254811843180343063991849703139313105656708505926276706819336500568810541063417565905609935132306367406865098825248981544614397223262950529575640954332198570830407038138406400349488725592703036881950425841547596083637751167971228126623157986521611477787413764000017001768078175405225835196756657783790435891272368190962977178554199540420631171262676558254285403077775564393817780030495498704849973420313543946429184900917684272510847407904964590589450529457407024058817174559824288072604440454740436786586659022358539677997129583171824787433434328389507608935867523466793672529673720060761835221252858051357191814355280540665777811686002278295908756051332058423975128884000127767571885155635823969032377268162903380415230157227146395485670080401782845653895371925627471750176171429315394217381539150387545705700671496836381765857582804071370096261709599079645206875492336760006078536973456507619523708864987472340620928476501441042537918913238793850951895282940998560294919660791265112671704108403629341719515420927462169590300866234698220446347007824883995891376233026535344521918115890050898386270971002959140838524021980218916469427332510266698796005848412953886864360583313341180248965969427215231432793469123159575004694293307232743221428121395130628160103171619490475820191534387865965545293297902469598087327378459442693907487957824969958902673726016355861379066431465254397570650637946652840150253760159563157560895417082844106810002487463120583999489069445616597706621390944555956595829126394554314740654644713690742220442807906999919482889325443327468168787416627699573844641772245980575319177069155609293765886297891154155533312876016467772028435244399802780196353587795503559924973336231623446733664716020025493641325238176815790079164760373753547574769319485618918113657626497124683651740297196573487357365186841514781751338539004651261325442800494181818171762863799037497574234081628167828387946219225880100305734626694179942794390429587426127117602124345685944326545670621653838691188050901336361111170963018571087072111821252996295075924475277841400545718244253755375794674926863390222593776166672056714312810296612189928797984049057233327893822510752100463170183316469855620526849975164409961085552653575314635174236437899492728678871553500903518974635439373628602276772629990900005510225072813798436502814387672800374857965648380086230897732863432240736964602360549875370237092658877535237684756367223917828490316459453316035903864639436331647369101510503553615093148143441460024654484993577428428428798541249143064919986145487397953611652699329691527263168213710653059684512941045241097587709512309425243956066204525575169424381436961498905882746976247650369358687685424982168664017084581177538510797528610958966719527449964371434977976964341300326398256071311708712886165136238287428783290387463867186887632175440972765393840007966171081036094353858101462193328158891872601468486980792941781223227407359793357526730448798258245890606390427264303652269024036808703376883290999353948090855229315088876982152877717997439550582840884527008018350744466216089864770179370278349041259984449854571025647181729591164819996713411843425423882153393348992348930169349671057812430631827120696950987244353606633826834657528038148345607069627584972683687038976241584120509434321362383303312923961037941708937308767635461314679742031171071884022045243270336883213993613761286896876356067063092869201305363100956417419058119233218979156391751550536399124885973293003039263790019324786199743822981100865487945368910479967444242604471224570408092495215037456307729069509764691003514403944780767776338202434718367585142882280857413318135163841180356523943099403059040756664139742742951585444273047100847815193235926862500555158267468398679526167972911531176072222755868260972406027669850458871497273955846749126962750397991691809394870102205401754860137785585025485076603822092581040345783678925098965282548645137391891609134383987020630336225213201681647334078883426721819119302533435379913887863572560524035806748488399639639904189481186969816988578440564785784846953291757523962274800856829617016436902984296212160562129639284082532135222554179599259401069412136294238476113289040653227143018211020133384822662189832566332713752640482035858111484442504398948156867162415513918856066896549399279483782882080850251097998467134545209571393252124086845522948637543435036039694366332628666012797644387343422570921660444924953823155626622646478700645665381909295442211869179974276099103758176805974868243069882748114835328956234182710985694924938178471785877375664792515121713111706235684115299751038181091082529633006093064783340610330432671840486041259530869301078250845724416539616291466568559052918880131608993360837864627181766809187358678123617980142882558221961188400284400158168600771889894005242890294855329522980458025530985751318227901672038337657399035727990093988794492872667883058830315254173385867275396530989924600345222288199923900445750227031140712200710105606343370834660123265737969892584028267763734687214779041599009355669047338186022040456530188723679525786163562723476878822141508851088444490938286250617324779340530756283908826673164376061480748298594810670550061820772717325824474562948755909288236522623775614729248547030754495446919163872697393754707739965241232901596786750370687483845018047187625521153253995086942605080471609727358310586397218378718270230288856182747968020924519118376414209109962019199480044894297760113260606576936957951842904269534382988833934934562054605813227213087652144560918721519133454657203582656857993618475554759571294902821050627978423842905562739183441932515467158875533430021602704743482244487382949210419759818900918038910339675799539149124557383475608191472647422687972306238557116641874019307961978808871140289608832918345673575585807132568981001922598717019658854260109523584802608235675561775715113146222489783492935888421986053118861288669834905651014160282169325629889711201413237791493928526640419005039079996573117868862189108911288713516590728963161249678018216787907919737610175096334234176702392273554616773895275010167286754569120364637224338421336502065296705168300723393288806503076604481108078032582364220327405113865709780996501232487148061501480551505166240593261165042233700624483020650347040147468570623532412510425402138928262751611327908282157375513748558250816431475068732866893355070299695811105692968890481448222812333371478725174228746905260845379031567822186909254240959325755723278960848636753710763356556046905570898910811533924211074133485703434752250291955655978484332734895920658801574974826228525240523199266022520271326567051152363169629902619179138856847600948310233144127469316540619032529784851863872273491817057329061023047927474720125198776059260847012551266018500604538382429523117615830568113098021561289821788471272195211121737728680916687160170703802098854236726276128335118089059436964516638110556092102010742389637863109739761218624668642450526628008793057015304955221672781365838000075213569717619198748145886636129900103839870653214117929160972166187185380544586173333315330042837262894667769455467422273246436190018724588026704010119378674979963425772864171986362555808857881879851082228263450097030561102559378564516845758428386874455980345456728073019705835235401413011186510164219457443543908483027115983769467747426404230887527599668081358046986562423746155217514016249700592721828845627074171501436803776141576857880787157248010634994080266023748348765372431238946159834511204538444712554069887180268226937344258316649461918722138851447180514019344318281677925289724040552221299153837993908877117113898945790285503072156140700909096324257492538940173368000350884674196471001207000939764600445271062798667899942058697524342435729607384462873958712574256738573081566711334089872093869252927113265471294425875282909250188511912312390347928368654376713670686910048522596422812728791617661577757215333984804182303591991691034637788580707105993768388430676958431720773343141060295574148084540102845515589113890293415792729002165169149215028966660730254234195316057736636046121988916612387491354940455636216657777862683592880491719729963606291468561096497937445163467532069344002818158639640759773655904737075557082603930392543800184970841219244211638417005097705520395756190355501982336321102824036691560909813642592912007303701723281728733416412717806961781575553999599354980778746881332664792081867809219609236854464850069221238647644158657564321019642169035108221716651662568071771852737268065168940995781883251919544927879752196286255031232916361147653274724507637854046475455212071643521638415062555005036239528907722214768298621885538967677206710524830961652506000578986683743278596189503163991048970028457693605180153009257470742293952216112948194147413146208625421636737966071890662401416009337755236648988952489094126150125300382069880208659958708757308073298428716505021106985443562298871527442816372184975149814226138547849496684440003099209989341885933132552219174303015166634836492506574500664087309672959070647793585629941955783299840082281878387581556310729192924040393816004833680228111929322358783850254232325694563564606478152768610566698586717452627030287130961000495124606910615348543817847517622339792857979498676128449427525240295355196782201039459085233406463338379346101300634176735996497527038798342693163833960079358488192224558159939231949090228824973089885900967685688192333597096357552492879053588685067045512990938291957264573154718074240863941846141824827810934101233996872680935393602235732322274369076334678878921051730665218566500274497815443076452334229828025519389970182255550441012895544150175231806832937841709336943215603956208129606552890583115918818434943033354340055346110455095244654098808607049195156130493701545242480318582031163332758254799655420850669836620814795494110653123652191232559714893828025540813565212158521683820251671536650817026065233759906663644626390035263589695022921131175044688383825696399619051980158865010240183905909209931986768336382637183639335175102745755461134824435912955266056356288479730880116917237431838884766949373624353923508925176457509164869663801489537722843750290192569566238462084150351558642554638337407138134101907921081234336633493205283043475983915643278044524637710136571657366570854320309086282124706246741067131297337730094964253119234794273395389664841007418563299595198523479451510798738135302517747689534898328218140636012435592107355619612206927877045068371727595794928038556111834187295173598321901252815417261596021384087362359753663178049582550967402483903964718478328340083761225923133705813420540777646675755460548829841085410379362033991724106955840388389420975293163430619627063191575045833919466358827819195625717600378445502295838777954374721157200701659641035535509199959944856344542942978413789000655223785111226413864721094302995475941573706592979433161277197935912273735917606985366686345526536943571410365031711788305476844795215846127964789396273286012403091325667532185446117748433674376668746730552583630019020794436280055571545281360152759939789014417564194452819678733058080238920409298075972078162317324313039116912290926465314045094767386445506204356076681250882513481394783978864678463512303825356809572431273925609870634685444890626670486096945890068259942794748557987140502943241131053588609350586922290862218632840837715434233022209460458387495187742085099830757431035896700566191547517058642888101365109169336003207093010875443480876150218936914762758475292345742794187378939701064551138008070610119749378083830371506575159375793354448459150167496091889122792117921826577811022351225259229791706649531868391535025471606842789374676448415942416918070814603749291694523723615913928568806704610159472035847141196160611246996153886975211317485346073318965970572922795029528427557928933137954950592526915381681415008870423682902113463815679657047652163644488383857808533776340398629919646850740986423286906895675842218304155439413551039443444799881442706972727438234226520086260334753362185832435459155243715726400787116293937449695257413950621637107764453805689698982044169605413007731535782348953934763478237475655177167384691824210998740886770340451901828571233513152374670033506740654461158869752301265019304424603910528160190559083895487637083268829884055654613419579120701666719324998493373053343524688584706862975218887822318848759544816825943404808637223940394884647829352799348908460697580266832042398144730499805515122628751647795107014076962331434043939773571778083143133808965410296500981873575777610621428230515006503787540421381594367373637497987404997408135479606964483513057967373173408979663534293513034776705496987339198356308950871612064673540896087255032555878876642439649094053890615747695714366632151904861848041708338430086569346870816558650353875275361472650397895684860152794805097274452739760035357903608805292236028287694641985130406519707288433195767943007776657490829760395385591640514210947837964647126793487949353276108618156797969917395972576335090015622932596735227449988931500815547390948835858936679960759962578694581766614515737886418639030592301653671209814177343017574190711663804092557180337095484432164859274964960491065856261175174688148723559028379906612708474200032403907729791026763241241574725533435731615177727048374238064363671966477668202488248122880093722179797380362946701200203159804703524128584298533809168029358969792079882363530014999318179528736061065223970877688714577991901666602660449622655085216720615368939531324730761557689090664703476591932774742762909064109988293055733605021292119113918053988579077069488318795049067780769095512979521218137915805086327727428787878168931836550569426591758337662284410694069337434480020423612326743287235214266220899329039623161433649467880345012692703093891811450682068817199499457080500820770016846746656764142251203253113942302283714850044524521945445655294434731006103579490977407293906510016188288240078834483357804371468953924165185978104433496142291787557408233813305912082402832310108727153055304700280552211785912111940100880360692775412513874625581125568215780742506306687509026137882244017288019953008613091286996315865336919306739122295986291564559257537897347666656125730712234536993497178002817125086945048393220912197167101420768584248485312556584735536402165100923777679035848410247525211461887911090285470156519964334037325098922215832417031256556698848124536807239433677001116365660757266263754401979586320117877046143639793532931094184961309026822213722121263132950340881482927171588285415260089472889725951634861631981666974056474119843118541491255246569919870043954069618991819621746157169224792663901654894696357231408804015167621737235567687444161914265744233062116493911871958318297088126692047166697174444401447817745358862610708498303588389585145609169433822212184333383400821296144049081794980888168867298592462797456841242065163610662583229367541694073166046417519520600653828994085129180410947556273137807727078553590761682790764957237090311133924154963218138739900274698526581797221573358237500060584738280682369220615638933932328767544365281880459969031590650739957363043374541360663891942818880920199498587539757657254476233132955841613029632627616706867906089009094838799489184966637911752195742430447699511839236716558876244631304971209853069514924846348916986410242767814468859095277954066784845763862820208117927248200753262283050860067786997108835872279465685426747775642820499029971196102741865652918674677778493925127775899112970361719286905478274882483945861293107468579534575645019148550568304252873438956600796887935875486986251199025339525833886803974380692106271557404443805906168611832732121381494389267556496767723192503012030600943476461700232138064801482026487815956099697431434822144758924490324208757617084743096751336578632702210851053920608580722694549391889065609666871670576679894339952900328686082837789588259132091491706908987659974222376201365829343390409694087231594004122968289218756626304609725665445797115940569944693523796306286367780587119976326716854351302291543144120231780116289558085054869067714616579455559889596535631536505196753642309918776384245113701918401167444870814184051782066360961471132443940426329388256381070383711522692628071506923268569233924230435705393915478996703107645246858914081572672912237982828620917765998729997313491655581031821395582552675857995407994086803405514688830045216829640481309000081816958483822426537447689817440144901669518836357473024457683783678958371792121368651810576384638527647577415130918296107626363299938304919070552735606238339871868962646073774257624013130126311162989276595172437395053303943001727331426003955530121678856833560372035180669041012532272299788181862861939351770845368182695971527399404543743396120286078608644269101504274270558043906604437080318010455290339726392416520591187056279190767148087296228529473061897699873884922399024205695618654631732680099716698708033512541571754888432865710706322045206372744616821844124311224274766680791179836968941328607325992857962780771841163436249852590398268176909728244427891100649147921009004538534637744562334662584668717669425399639472053942290098285178935585200706234849342918408125898759344395337003118583474550540266398040441228904640518529527960789547955139189718587204159640880273018946070854044417574135534623605008237358274177576526252977898352361086129906616008824598202830909813672944862400348606818863247166800685952483081347798030370665012704570235254230174027271135990281760581222316783641070563313503331334212919418738086354356360769968830256331546703581165076857705260240847155156222895595157720341908649608960998227528985734698707394085989307748944769632072586073436220264719942169005399563720992313705170245952715092280648934205132409863808400313297509200111871329569122975669226922524600618385622334323979283609910109057979484731965800846525427907595932498221967937299151073144353495002583945383044589269226967680361837047723607048144227327942517703580088618118744319492635499052306393575121526668687868393073126903768134149068776451066334180206576533125219518404777430107127523556581463467481654473157419830007428507798574447269836753808559753590049260339277411538763774771116487590465743040955000725570044084721844015688514487911685093112512933354374117455975114796412012409537695439555841069221723717448689277045462300415416414348898097702535172038391022850883609416131478986425871604815382698224006673712154748565852605125908944051861321718485451336951850873570172749148171362216498207291352820217548636697165636843554553319384561815594070074472091811984761365697469666715545604867774320923170832957770700894923401653974251591100334717387508370372558597536579742590508417380842654232398202918138175961707839189548593939433344570971298609117239021665857985774409844024348286793833150358794776126440578793917003366599388079184324857427347828009911131332438096155586862504432731963948667738713621709629484517606615659723231946848855791737946476399301817895921818904864033570353928938803321083663959296040811109403194571285825022947404226048592332706638147812618166865102818329026582660136641734306865326585045937366861919864112971809327444609775700846250576933632014701564755812162561765658973366771094511889047945595731601570256931150201448255409728146098028225339990016723320077704936431679161971566644282228632796350032727019185784215153694205312862809911687533289791547447172465317868650621444352996053506408455546386689125978514443285607521618231742392263739012827485741712746771478139694550456545242224338405221764156024590883527318084876612697308512320503457689234680773844302505579291391631061504377841288306922313812989203157498664160370592975782615969147672861122164341277140809381201719175315625082975639608746456395025599591003883562587441931898180139725197817184154400761023357023857242423187954269904192382491223011155957674864109198882148921918888946740343243837221572313462920424760993931925646733724556355111635533669068929928705936193135895309083959259483550990075683194043954521936191502639625850589430441901426206861465726155648728051069479374598704082550407032446529016053549521715380419693347981729182449961890919410203805049081457812753402411977158817675016184266320392975068063319576548196501519403975334931064373430366948318120778242660521510040191449855363956415145544037094685078615868581237251552059706732378732011439131697617497761760205874625687586439176106570494610897565055136024219415191062971641816664331300087931913718847861909869313415913716503521782730923444545407443830078360038090953045288120609215621470102219650430618399244281901711081661736052611523205554491160568982535601696205403420284144741181198879529995759983661762102888319540322234423308646364497047256298123811908690375613414708760097415045773607258992002734110247399656923616310096617403504858847434251771631458196989783716281988527871174910458586820206522644494700333783730617201606657707597228900660753498778948815976942720528328916035362822292064489939251048624635120546189993372554950318199821181509648062466979528520417652949849292243460631305074519299738886717110314123125717164552705155784196079736765840099567754379996812612439478431334851090345873103541732764729211852432673348699240097988915420967673950623638893887700949841327814997694380570258077593054097947247409200381370717324844505644361660527037240477365344325820152926758838693328974775235578226707178318090770778980920635131229801313201517027174712324190161399709373440091514308687458447216013646624492752110304949789804988616100329694090368815557947243013921203899269823431665525107266900312365514592904193620137451549959993634517174018234059753806387798365560476523324838617941666279942278090362792924833531854301968165513929255201110160336732980272931658318907437354014566251623048051598051821579420938527512533029070304833514720832018015392160934733616590827196077942867938799782032019296362815814853236317959148990828125822881726198190497952474010932893678098534765562048863921515170536622757022890772350152808547605259701844304737597518809051574384229926241307730258026092330891154010711897017344236317733671158748172131386086588142384620210294952110493661467011924109563486957128424599067926098667606622946133604714573761613023792670445346857763921311282710810334448493293562154742333223147588533610907000611615078607634958202660509085285483711899679893054491536669553478382918528542722803465097181748459796198737391039538288915869885817629292031898175415123274473305206794460962769326560447044815551170896255211716909649154139629646635324851124706785160621736009767623257886893102469638682549650848443267552465753846484764786400376133892235060865662023821591752784981410441394349169318336442484744463330552623502333755890449995934482442211239541964274592794467159628334312721132597903598116538849324213687512788197731174862698571602767651558474346425907040799115427340254125553534342511203804751479336545887056000014934588921986789555794451140447967453108209438970625776366455074627361038870464668128230995729161766886739622245376977695276309687181566243329477353194591140391882744695152116958434159185920235664713392387738899277037389726909640855252904656838163644178491620762820246003380004237509176907812658982501631411880530174662380956694848536578522241546124559218862540809587669294059790722147664068614442969050045072149258083142380701591548138272339563642873438991794296719379274463798888010135967436861000536152356994401773058053112489154984705970072893768798410442981795472853331427452279991048668068379523587959470242568334588598061495254557617613331071774366665301983664861649882778680252681096812323079129506923683432053025355535875127801063856126404785563116693184059624076382939361012729146908265948339226728718864032653663026326093131586332276917232865940322142349640498171404112004593234329690885875530829065357628033807792989208440427930633445444706696992081320006420043787180091196173399259014289652282035103939801124141019416397317091721498761720578437068004546958730633073786097350892998192850920844638629229085743068888785961240214607569607645826240788307856691801227509619581034706791739977477718049907521406235413518721457814786786473210950756207721097567698212969574849766937809806127744114684674409701527278795820613886012422267520914190664139309283751180913004411871200522347648084399283354856847914603377217543682685160558162927651521952763616023845006750397697328240340948178839295394027855603393301780570170205322000995660514721380055838844501107344534833827482443563076194454640530746838018807588741142413880801926191568574724498592846644884362827181351080122974405098064931837425646680770726076638579707389727425376311535692435203547091747150970847250234986441591499477393603487897603375467722159670507272640386191207211834513588084701974749789722698699016691433382135322459730527969981668271762119644779543581641425584629598638574693200924357401938874566668463765953262285338579491886800045508562328659539557695505856828794022293522140086997074217911080991807491226596200895521513413004418428507468936104180910729983193161560925974086132699457623759950679487247490624414300483748715999885404754642302938693168706674063345716622921286829945474413549330386211788519915876808399202356325915429051996356529472788714258056206638940916240986442416876474743206158373424025268094580970094618382358295276744426058067650542090420418809406387033720866793962940439423057811886790947879721037547819715955585912276787999743511161357197969802484486465072928998519141858099084575348832622003799222452002417206398773440234710790920782566823017180116147708655469521000650531416293706633075823387728619135203433372660941821245299022681843261799245143771968246630728338537544776805948214874594604543550947876955664513981075024932204172819119957521526518363445868289831709788036371845014125772454825490634901763002132180795731354720771071895278496072572233577454497124706905053411063337427250177361801060254887267958343495767939148833626279268030104803887191387398197096004057700722649244262036207654976110542007716525450115184566730263656788377551708346897184709710447656979160184537585037937712125119478034500584928393112402576474735927685359210905179253925455189220855633153197841326147067395544816712301426531776862996576007877598062020027253998723380626721028630580237852706361348175668519544694676817084556294639017653363018729212287547531351885355740323728278009547657173358025774396893365928095971161317561075674661746274819002741776729588187120401622722929087214187152297210895353727408380652770153020804601924389899119926224785509476073348924904542611829441740262137874176630099738998193526330176564831957285919255333420069807628673950936347850210468162624092165930871917225892991908140740524441498580464907719763996376714729633424193424267968584865717328850990860580591722324345716154406381962812554456736261932212707204074210173484442957605832892010137370293792475224476199767753607799488123319662682876529701556359084515519361278958078344912759844896166407524036269380631440286656278600093629973803842607014920449538354347215101052317692513907019556794082497290841690591862817459969910362251807464707156233081549612656225498261963941898138868880322593217333628591889334659281315260230837770015872734176532879039158377444352922449524436605620438619809401501895682856519445240688302981926242631758425365458632255772750402384448800838800492986136326444435602929623177813814602891455313284742983146160407674487456117717236139376902173649494530712089572916054624494316767107376571888584569183075426334898225812897407452468040917934643128961159698211629255852313485864200415151423162388374150062224440504824469789359648151452464503379455963896215569965284214054490815851609756422251501313472829231164753348486286661725825725191522569539079870322949642974737701847928143186531353723562382718151075208493636041542537317404058193853324587380280163624062781234496635569859155672397787259855373894992328619661379797033863020589358010097723556805496893425584899682189313980700564655838161984581737175161669599946652276766882614944951770397623294749353173448963994878399201873928043822643348825164082220717030431421022012855333393942723290455870039186881172839005401001853928711830008390792827700574021300887297271267657441562819150924983827240975223776165800971063202329976934785349823923485097102446859845668073090900548763049271972385648167216705339413834118688783204033385260545636294388165225583170878647447365711830240275456025555752867591768037224778735047142039885680225308139987478107346618485433270669669392749689234304679510539816775481262772900721990314532709088769276732075537410143499946903544699521871415176001786148163198481607352503894438053668946567458666788203442598086353785991041508795828624643345318629429598621896232145536471279782665403144834766929131527443364166382021697973666614773609713002692092816050262825480465169992338771105363324991276191170379659416428777882651861492374002021615442231120994740441641781801474048385109763070277669448771433775334313376366623744859537629340851934031473731934368591191456652460860512673317452263955024398689217684866897311207340872126135917309305018735262351610955804820339972640603534505795576093764580601733890462510656133415874922887724590618842249647481789008806173475804377877427061662524175736971058276581600540568412474244954180872039357324470680077086178038130915230343022209715781893824755421972470084911411494035551955174657629184609669001155768827963126652220466049977185991322762176183030257122192415472705637165674926857988200968969803135644580741303619588676773060411255316901630622446399005250543991159950118601973920289229680225586979806039364526808353633008133473876600452466281189895228523354317301507302739208306281842581124512624838637723160145332871287822647298877838235352694454158293766211907974968966192932998276004870103810118370261391933771426037812007385759648489602138335881738359593535162571055912351229642292557784389322364091312816193366444435757751480760318205226450130555707711475377869015253289503006661772072310201856411632502669524060361672202774410262646771544957677082274976782969995990447356530772875908318010410599579599273291855456545237953170207407014690969519916085710139909701001472555477558097179265530427695661264441814721148908044373084400031334505726760543736705069710858381928724331298526812861259983033796835214568087977916378915444445613274232749427957034976480942853680146776533985947751860158339068064587886526049026404683752062496685899956469622214683590910804329390452256313293219331327267217495415650321464077723881176682380134103762493694868305901127711059829547029994246064458395777685136800094106484624464825561900653162484123617029635747838259728661944279250234797270354026078961561706480398036322392501403052527206643677238157332254532155229338820751178642397446041518503897702965758202810250973037197474168805815228165704645197912135970542919649625050551774628245404221276095396080059076753542696034395251611355115436527158317378059791859265853040036466405191389357765363739550164660192833667984341318085095815573343065158394063707385376384108912671670043024016094798240585939257474548976477270748425903902128735721521014036878224969992199508298053476955132049422741570880851985342398214753846236484464061250542061496552882639518671595733870568021422538880350441136632965228703909962224695699648782830731875404601436815530294352186656543343255686362801680990125330081673672811888108343309132306518384467709320769466928435965609012806808175382722467276112251607061023812173097341729518260275647796463497934406185709083509804475813506098693047840353249962355035802166563983237735013933622774842392013179124771142083748699667249637159761168857223208915697186942257428940690579729822725783443499396371636819069810653740948248097486144528415447816789866556186233663795193530817488371950875033196994182143170792530684142741958328129795393160739398990054598962245871671253118727218708713578767303264872544540913635626234353518032706538002273350027304277308216831531352361033283015475686418864114963016818061066088271324938343112872590607939892502203462066065020528465683251904115875960020532256845731118677735374594139262834593724260529764233267884162271873087885996594935870480164180580137223401414733403194595516054192044551222037101627511871278530761418339133426051250069738599934158582349521246104190692437364145967292691571038509179444991452224669248903202244164736850680108314178482571971571119672873978687500187541855191163165575053210028794468081631234905156545705052765027859470199308287557409161211717025598928269537862488859114393893846309811217581303274265914844540205250003371981624565642547497126899034997068352954170697823075615856278228139523311027895818226963156622610487076393149443134381457577306279550778281984103177191646582169721989419437675406095795001711950389675546652045108914724921326541510083992436127256088391324544108191464195679978999849174290331196304740109572196209701898932392341814144605451611661527920284224365964693108131850827079316231580628504057578819707838724339526438359926387179358775223823088049208613082820801527526148937748464675694522932467933558619073422212014421236882855834341503863367355914375797909022161226464605484258598517717962889640901707904539992929554715551258185490503691490165513845126144585355572448651343389870282206055976272260642141109491855868755861378945375799587216000903920637494241623622570120272039174967721517610341396738597267752739700086173693484948784255710391329645675082392239400743850056774461466295623204626841862675303871939422737915673045409472742732709182129186177939425206881316870429962232696146019791497371562904669239229067604575375735741421163411344372222663944192505190149882532383537998782926568397794266973682838350521843219188726628414239023128695271030586358455501797794884759188827993747505261893570601098138083027604726342638422515120963141009054301636166065394130712214921847763540067266422618365058655319495570583479232991523327151502218746312603615630015154586472402907495067394989723047997149005921464058998139909248004477265998684646863916914324908938625366484875266946770911121964168621599548436118490211855728385580207785313433988393195127574582250373755232243241201716871363994906243099020052511898282437668559515429135018992335065930607644976693442457768926486843613151335261076827914925649209783037221119473623596069096176572947628412706388952900901461412319714964096055502580739469336475823759769377665521541057308558514293516679684614826855177930426270200048089713848533215909065288887250770954686831197154017016133709362585314025483536899882767873847958324145552249960576845270914521584591335013075526993502507762736955517492793672819134766367356783634369146090777367459215290443168310171180917648340883673428202859722495519803212498438076157148274534726423630582257412292827478988158024586054621382470820994292828583906404210132907619255709582106658290452199528701081918872274459974085509994799426809501851914614076443504654910739470694823945455152818541494626856667962133309359404319211967631235323830265685212953169906220794309165259934391559654151554516023992704124609977416407304223700288784076314193006110190029530129485442573599083555567904970985242776135297427444903153729455066802747481442891375675601677615487399787322416787057750747439223681204676069122017545236357133101801879647705356005096463579475435127894392294240197395686339569828582874988792431616791402713328024003710705391599360481260443429701793204576498468097411543144584036525288779238843404575051837834291470493581558106223339247363658654815619767057428875250491925989449620008122382028647274078225914637487660717447762646463809678751343773589760434091489110727808211965874834519069086685554090056015179005657740448952843380060490490399823663568500284391957921065857796448697581608455945220416005478321966738212604483505751020419315143423206769753752042416284682332748324540066695505740388691719783693641828035408873420575016111931368423759680750005383721586432907832339420909025957787962858051066416078473225798063893800783601030971387171079775136855963681546050303361025705247877394170605073058708196115979113925133243214998060430404568572725674601042201681394418019698575762491060756181747274985247298642671239146821364356119609692145586783453548954525696510179351751389501703217591796679291916222341496430274332756024037236480059520542407299225283228445367314479494551172578647854129363091843091166843789338893264931034254081464724407680271680882949119606944402384563580046102717208103650037151804084952168311164678454980700260380946412294315529825566557689058454203054002105444318571853599220607190984973684351515280617506796800376629915420198843664032906062514506902769208199552493192252569543974857559675104804998890836208353813090902316750426365427136068547043568680728617040798531285768257819404208029199566778395645627532541233804769542033265825755155268178291013462161991456545217030430232725505902784366379426857702272518814066863818575694368280233726857672300194111540433938909565276066215398075609660897489060594433448111770969087535772325212567967066296859637788032987885534411430506027787322318024872861873265100746322670711556810553713257016403545066739494835153525732645918781764186909513195048666087192382962056525119647508468461690307568691285570765401526443530362557275748151704421094017764683650202903795174219351317424742994738323858224763600680387315439020373239036709830442225414071819013053172712459989967625134483865563272619913188904706737900696635613553998254307478270246122057890975763331203916385106589070299763507419876194430977675320519012876325519506482175335571652838192625250358819010457770494846685116992626972981303422071646480282172325372919705815346778842759947992634506507284610129305129366374216545202884278877432010299530053978153209552519844505779624553734718979168656848309974507576732754839241413874559250702560891476981718077565436441872808689907503769040511827850221986656730908210283870047644850854578800256119217463736477669214239903680568267437630481751208223601118876851345203440523674769685003757509945107081797019594696438399630623845357302643844027225909745349374394101355671707663656296964896358552541402899772103112308549522132440488637643480048300510020380811956031156542044957841800222198547615745485769177849466819287992522280462088651832774390594729898143894549031468656692532499268882117641655534148374569305622167983155461109084233717882319119651005720591977532906602960065794857054531302183631507937793182278238258230251330473310054827523843817870097338761408621646906605125801998065111655752178851402452247945484256488553133006870530603918380049076067140053000644668613254401620082356027646007897979674293177472683090733556562327989438204156061816439672835210177173789787638526755225531140905966349334668441739614336678659130780554420177263881760275661304313511759081694521970442791099400029833685068409864461534365158093995953811303529418190340605660806510368741902670582246793584930158963361817092534885490572494116457647659141286678710113462835968340756426018874530309651816476807171981245334922494437600936118515239368511121422998800615778664490168351560405607383379314684567683651752954281245949842419053892766114653427814690718092360927247371386224777805517464871281133242471646750944015162006456813782770191545574760380184768489617976958225924302449041841050333689630351010347721630577076700499343999705829413353550906382632211060001611707935252515056652621168772344914167487222135435367211609700407385280710178569254447736238547923568659376012878706387266344782546041747789542166749836026355006279933147370031658424221157244745110984367277543084286978988824833422258240393143858909853836016648547379197710358053858827812183642718828737329978782474791047414317111977245552732433248876290221452178892134282657818673778949566436905904046654925061902505846202334292785467370448582110573560714468530022836411383557284777229635003220439349007291748978270671256162510899172902479505351717000151862847576486438147585609608976896877271142564153172260918098888472864368410449722946108446203188842458263881299272308729319576346642609512599338118925632920674354400686336984715766538222806853474413078753698951237050233298297271829802312329962352034473394496216574080559091553393058751511724368217528872171658185779611991137487667492391671710544723691191172096151660961825302509913844464868521086814658441415756654090102839416575827657755409732446243071789960357646607657572985480550357172238026605226227517120221936328564011603738676780414666210918410807133437269539670937196929945133097281842099870404561274887910698015925165286936906098869192411273162822286743309165069742656228363612991948519764283550198648746536396071125467061834277107292048476120023953624825372287285977298888848349264325084995599385065887852283917664018654106401261443433850485571141905879347539127520993224338289366920050957569440334419486152505809618899336089675832045298694334150654633457400352998207918022993733701496718825769909332668910978055820014732397657076442485643861077140354556822624310854480463006672163626678379437411262644809700496091525387410761942544604865981359698173783790878531413067218471551343293187343152671370315669098751239358708512652949368486537491769246117989756125631402025682971751295214072769569070486305083701354031762629444890738641825108526974620417797917498669422655087380142058640716294733326637942550071571338499694350580893687355677959797434909279798066319155023631602893024179582808814676342139956351040671285469524237266775602517181619127180669145165260621841760856255487797083745826971849909637282848473951522103597041667371733630699518430929527192987072667046996067798905036381321388509610530468023534083037812740675445278706913025418712822188123298069567006160492594524723948729393364408341598478488518478487573746297980799381863635795294498496133547208728435188186511963289260240932245377019411141593536383444044864955037878642311000620468340876209564533696835993114115206525719349679397866601547768134731503116910729086964485606169595737804924429227731972121307977352349712424995165395016643677143471352739944609850204858217001588872186114407529960903116306696361745887130904015238258165863273207088418784349406103143959648547704873731384832101983452235514933418286414702818271523642112944501497098012615755187609745871715546524244242215309481618145447185829968536263011794245448855180110625217582731013968675949478105998461561536315550048443408708197478161772336329909294869147967082409052973186758568240266237800009657186226569392485079649797033281430141544778613537908341039922545721186632558147541830262275436977198928682330227676350799282132545361233592641543671311235659482816413077519453077004515446435817860942331375982581429337098069483045859786889495169130049625761737505094566033214474171087360778543174792809306191381151570429303222767685846840709259339704796165972757959475581769402095540257158638590105040018807000909015038910161851402057134359394106332464138517699858708388064741275197494857115767602207890424019810059131975736841070351034670404519944083910104063058739381247032269691134899556794191583135803658960944528711221082244518731862974899430620955107805809072567405562471243255477766726165792183401950691607951323970445912553727563197539079156546404111929985459619880271811251719749721728336067624658947056398323961639099904405536802501238134490102388822732224920706371327770764955923895513024950478347692596049896721324659236287075368232571292545663966361401846891420774533475267610292364456241008577376136043529240239656206174963079121250227113359866923899740576439744084861369589923658787896519173499435842867450914978528920805351302824817360607171022371060727352742592910754959668154530650461392012507373345191620430034392973214067556277828953302616449262362669163272040389316645721695006251833136135065677724337784397562835982480326471266786013552945174647915108578772257372053567521044290043662559081760204867052764893219858976182577743094883175863372151258774590618133010338252870882294534797118920942875450705011515604304273320989447594726467939066523259658816479400261377769786208441529245977680843327061087379916584514111003924965604616366905771972359897638300115570653394176240272860229634179606601909708796667846857268688850184514412156110858918870162076345515390573253522508138837009898355473652315676060471770062913352016275461528071574189369558481184304176162349778953660050015697174025690638175864335557464750375169011753459093820207806937747971644821502343161644564324424965236695633455801647658311503654388348907258917244415661791732479248846790585962830055513939925679542697239611996857904142091918735635134469895734413111805951767704561522245081933322533262324319316902789725161327639827201498739226518219196577663316473347168501893301334333352717216795431210637092564964373365750806271528030853045892688849244367246923479994601202610049598680092418546537010424771931437775090366110929117897572638379423021738350072813936414194445315214868400391543350049490239818356959156065902006795268425211292530690934809269979586689726808495159003582750601630990660426971072183188372399962445947171597987849209708108918933672193957482476102361467517748244718191184196566370526201093869070903320040244472539444046247265300574325995058210804638398132850627524385838070018796437112721969310299174532350978946399458566628267836347226468041464625925671304748964576011608828848807257738048683422351309374145039452514929977354051942296210159484801022037091151843929093996276286984818725652167066454979744736638747215483188867218855049548385507947970095812011926514114682732947288834485597035330985119658943207551422384544084285738651916199998424791227038181752773293839620534371556207102737193838824757306721505040459846221237402878668921080812491779041266809671385554779357398604992637686929357029208044873536997882381004732996047865481253543922960232267210095038032728002359793255852828974422816893749855739969206945454405554327039671518427172527813730184892153943917178680374524463870798382614367016992882708892077393813924317293574750843000177849570409692801289901452359594391402163910093851636415019697864286353389570703430316648271211236439964537715886090470778877120208721813610533627397731092799199888408178451349470918833826136542417969739042386345941418272031844642861841833928356472712628153392570136124767659603848827783747472010295113945305197191579492361862397292462244217075519290440996542808073472947647807566160700071264553580749865606276436512647014991887441273754586679173354997884363735864589626821361418233095730793710799476936419104150705794737768820136819521908311642228775008414246048614628914477362593088162015267383590790932609649250052898956639431557782270316949602497912704571920300635052465850204993444586819965283191011273488180804251633883128539345180260153221139701781343144338972337840209764776120498770781407095411665508484334220364621686978584793623886912284459200111598670372856592275371662445294675592177854247327186052743941507712212758298488973754439021400166367961042761048733187991951470719214318729561058541607663466686794976171079710204901619367631958462791725880198017632199144397651056348545396332330524569370643769270711768782962307850433439887038200606672718639826885462782439346307186505386654060894854570166689464244586449819591126110204470101291822430633062588122031887109405839216079323947869288239905716328012274001595812424836965586668963024699821719633782641301871761374749162914489411026267206998454932960829864545439189236602992526563888518643208810449470521102334023150037148591797191262394944923570476064851735132193168779667328788526847991877704794585716795726864436876479790786991658696845178467298211556125715710230787125712436904797032171511641608078626989855422973760776997133237674324285658032964872429974134218963778357973299451472119918799960513747070720697739412109665890892579994414944996097484496591933001849491828247517415651919024781392253269964182337245882939231164350799381194722103016051636043730328797003807417388164999990962838444392873731388901595567719403217550465660020880382230160891635116141076938781740492405229704293961647647444222554879204417567911655215386224999635873390947683154010557661311188672947628138828490265147756889478009886192572944587361077216331151023864782613609093266636785350056730314266801807676226052869368792828061333332260858829554423740232267434849500864616105500070923526906823510454418318233985244071567051584997960570053168407859190630908669698571418366847106388609536110860570433786789538432266848243094637206874385896273848921579300566377404805661027655337184273940141390440966498852668902921287378983590172697284464370428025497347968115878563596772013603960017915483340652187224373202623030763956721923796640039610948004037841795451645675665849591503946776033984896552052192431891708624431846242436591788077267021238686765610512694465387728020119616604075591613921270179287169208947291073864726107859260380001164522911546238418840923740371651548599922036157162943983966370163539109385192563179336921789867243962385134683250586578146508849434381782551269142949767072206235047275384098253176222781846011751164173108402858794549783369321380384924978410259075300478953386024613489047069242898666089538985799694341314293092190467056777681419817659206758059629890938816013881846471208056444113048790257764652972507519811787079070233404849667056263137535365840211368551918445949372724153397789199322718439180578018605379088462644398215931360592384211597281167857919463565725020400606582467943701175859434183282701795823966034960749328655223143545168320904758856709263778792945653000963822426469143327956315560115192875936103329753468532570038435573899461545876398482211609158634497708298501168903855252789506265532361113952434633980086634139394554978554628066250002833560593228124627054981200918347131684114379592226078160670316914209022744099805673676684706840486705787582168866052001611770945262043396094777519710439279559843890208906322047474208564607467969992432024515389921356185263611549045439741989700819384081203180729525454592465618587235329314158632914505077176481834023585161946113689693248689207746910646099357831300692132693855098037113900973756891774467577930324051967712236125167728003274753733424638458193338301740986502214827961041947714365066415140457689460026811768682293433885587048690492357312133519663306997946919547822818460555698021266011939601581102714500725189827668889963868109472492457098190472523999834438093704264516101948783759656436866423030300363134285260876251712341675478472220788455423209514939230106114485991833786836769263344181846052513294305564998962314904831419348838021871845094952324973819803380939108717819376704951326134142560749144403334664964431265194293789422664933818299218751424516532721898761195467422352912115306791848617433058449209267111605692358365999639720091453756811104575046201527689167277041742666727144471499432940433975973324013190344691351840108960509927764144199122266840795355311812019616413957546704196862124618594747001251610391409917611758559913635592361809940310700847433637880686692439161212167862567440618897219839026742209644481118801403197317076043832520240267956397025445628916959747488430588211483322075592697721905228644401470417706645988352122238458439753622134607998722747995152617955725237307641711419770652606079200978931970195216415104371698133884326945428891924534736438460221755896085967679778087598120343067315583502384650988575849108600440335446325740979448124196585473260856580887370157076411339776272565937214843720084205987385884914499960440796115801202035573234079142455205436410388413881189199720113581845909588196685666957168896229572715458890556927418260379266665311269435853646391887706889064050697063953816920513882005539262868307648241330113013235946255230579968507340387279709051561570001182768647696607918768098417499059180510182321292489007859136705656679129304841670091417075887210179749517432870728941528805727235174274645609589494028515858619538688905973882700343874568883449694137147915011495887083923023939369584188582665856667123596642575638196624209979591635731913935603672995087476705093581713595070313588698814903159860521916998548542974058576056135068031588765021574182954072970502726023257546576051403101394342445663911163879622135753122020566557531803586445238670134103017009120010318527882120414464145693127273065126252370842308810155750295022384828439878111971961621201866983473656307957676648578920190918672787001141023747873403693117411759197133158308810960487797284224737456725300496663294993807360426530641705607411763033990127442210390859295933938879153491217061642880772327444460966320106951425380001814143644069378264513808654213946108639705423163543453573635761468928510213587915996276210141141633718578903756643525899819243505407858343885290511586926659615537366650652980178544381321415511436942722963898861119240813534960287810669062727694556697044253139018925466128219196396235438184393281608800130504757941113019158846135701244025888258158522118544168900011048460987290792414971098482106588374865585353504735619864536527919827097928881933570220470752953098898859224705138976286143261928743052350813842086120414139373162286965098359520594749180406281454139679247184366393986539581884667276376218993227328878164856764637269560612749470650584658786086830078988964786580986321496641055067710782410697321327025158935646613672718748721484095089065701127388782061109463052019711420228022652276137092411273594230603483828158559617895775164937883635798249492986304418937156910981071933285289650098240719931111995495273345924966780687967309595194924063812200974582351014735731125265733802278447887006041329283594870366764031477193588396146176113449914447006656841324421668286686906913784965022243154572643967394872503040561961467072638412448787622887010406175233066609278669363881547516392372942673023226562777545954496629919689528832689601782053731200566813101724142141170152384500702037588004091714895806429118411026769796973846303657134730647401104601987752000904506387929626626483702608992210885398934514588232527023569929684286323272226776477846041960716592655963674682510484802329480267410526303529547547929383018824852296840415283968668050639986911563587866751399114054377426352616739208023743044442099889322034664217465946874831785987819307587788081496827280065672759453962378168701060785332044779023035426135538411981285702700494622685503237541650812130345745362140844280106789614089041541492506414406360647633095391189968659105353176334904702445803964084235316125830058373219593181098691358095382685908743434677127196578980565552797565632974540038742336827272770384025165302930330367515390234022465201629521197367264691876283274322947975975914452867545118721340742947380881747860178491817377589742780993513203700374305234126968146637327537626990967531135304672313662881988987999634558949149734928403377203493661986509794968635022421132918882662905203325678219617443057834749184826562650380305325488502755555713548193957951022797088410451832306850933221406981195826444943816561848451649135588789908861329225998455082003751572124695396515037159154095956213684606102914415820519792208516989873258107710253403881105177929460494946463070439865881648076610293624800426542677990172873310427807742222873409254529679598631823367707185408667978220845714740346000518312532451835701798723424254732510661365000378770141276383723128819993628724271917160345875863495709344869493111630107953892404621578325477230912258578548875649651493595250408805597362805259614217880764600160231377540873642324639347013589864500584334372393471947767702908139689199173414519863708639788684266140136005504993988911711159274032814895535708696875955253591078601240927809234342919246988705892955193110670685604912853655194183917626476375100529628189805623456688700425452670838627996972124539955781677104833816063992278103814434466360157658940588141724106117501006655894878237760679454143528520712964473932598375892699157651117831835492844167566859140117629221002819133390987713038968310545830253038316812524606381857632889988397080720798096955640063378156496850221420180560639025853311784979440846795318361770172772572094015999023597821938079407576639906509459972959465448971400660479419890315217921532685541967028391147268800603027874610575255036201208576740022815149798501729266168910709377840256575607901021577466965525356557626845593311081820056272169457418012796266066513294596598078878120186467165097976155003059276487079094707212472405628850801994962909497332902864162980278740337863159560329065207488494432135029947377150773831188046092677637289069368927496595456129396117724402025909870910084455253810197465111879362852375322083959196819212212673042955088700618424427757091147248972869619817746397137130835976954247664518990432005577758631652041774500285860348020252955495169262149516125770402671139513576014849050025472644212220175738053668106802171838784825373952514386285467120362748485468326101446437678558418683586634515325124224781250687203662089564425163567565724974596174665452107344885480410693601212047048224731759411436871126810218599120746495728184652098755534543683625405402757157595891909524713504511741849468694936102116292636812108102198919660599013419613839774832594060916497898018322672000249565118621413296068764029417834280747582627624349890377465891488405270646450606731006845552743494658187583501809141613471684957756896076909028479596207159838580844548067004282105790595725694730735991375580687992415651932823823230253471697292704933729040966267338606151740956871778330393395552612255598322484168450352690134334535877572146880266371247205176734421357159653566538941557269792839176972832090219324463430342392706087334896380513245622211121482917223280577570136554088539789415541324542341206997276074356402626456766417093245161038744994282279010738519397780452674313829589777244745104441869425167103656518323734748764091155742822826198057075404735608011397643411164813944949584723315760476441150310043956427405861846614397637426295132540998714379115225195782548194630250951475466659862085857585860424868168344289825736160986722160769234664624068213448920625678012429312867050823569005809874026819706431406694890859054714097908404890833303804903852406764724780796053349183042703833147396269317232365352996796603680345266880302399464704589685425817410514831358061612776719909425711124888893658742113266823564269181043032097248374349685124306376307494427484338556215050885758786124051322867407081208061621467021248225354972046643800101419031464343064050336708074805116012276631531079631202720885847902675455420036249557610248224813998435061133523861810330460471774925646061018402735089783736757602321091787737932881809477207681918235995165108410872775161765414739446645508213009507661128775595043388073996759540090157981071312112724551035070578473325601309754866004329019369091058767010642839616205814374623779514713573669497110377605757023029673071615551684702282855450926227839247588778938947098651524782679683827861330409618972471378512379140244021461497124976275839015332328001132119439275412828261866147506861842153202511736981131990302848401880174477062928166779714675952696905837265323654668080127943110653564198416237387362749252400953695910588543090992055092245521667680175046769367631139617087145916095471516789366529966653197694476671284358042018405913968919282736607351899463758894493152005971395891939639525951838094022696415097322719446722077138064252711983381159773757827496924324099860031315172099474697766605750019219808787633127782862259457816335095597549108097758877737267326596920538057042685434124295408726437517312329700768241513387293023575152102204212786118137834761257914241826095441605536710570280142946571831191450550161329472376356329885913521662131366042580641101388270160786399313390293718117049718043317097912674801986388682291124286055171100336047505783830964832328101589724478927136050337628453377588787159813240596259684349992743392601342846462118549706435467219087351279705581108121030117268774376727591780236739561655663626747292068709990231104666480046725249554541066242342389058110831213043382077855617842085704568088200996450278469333623826509901357915756110093377752601216958912946246416249449776583434357532466722206668590183268223295157925040622069788502034080485202692245973989136468682132959444669827732356156582765735238246006085104078769479378671754578352590840875190047550309728010270461725820691001212132769429656350418641832075284039523860895627056730864396617164391609206582644365795087366012257562931676525992315094936423580418377343611054627512408488291529527672411339159027348717943663221824016267990835560875456077569846226065619022764649060074083473370816260963812275807031350313344240421118767239283232462225189136447126423457584062519944624585238760035497897990654312486194629246928446607186958605473397080886949120820328398684417747017903579055699293208503736922659640410651261277843358094264914917803282369660437905448131376860712274873501637747771851523790393606167540937036015977180598051285638113963467036804833014722881219284589789494953202243092264855554246172059653359019677628219796059454548947274768707673428595655920948485941138514189933551895973973539933575101970295694475363210020988629180280605445132811110859162967530681528800749758223548171852136293829490378022112389374320369752300482542122509540518027019899238858441462073027499872050169854997707253616239958169804120323117165757511660357793292805149787115323797458319294662853083121966271143529455318733116306623023688328124817006112288799204171953756370063363394994462410433358810022156993478082135794817846529262575716721585309822123196193657863461786323490730796982772579264493891636841354073493372968119278213427596715338271522704094746308552980886318982313887876315913374554206704799420078368945758202056897061996958198989010235157146904036179990119242046461406643872646671331291629120607692238069128204280912716243004810874364306351137085540746336665003045724037802658431025775634829720058012022349738993371040154113211634955822990083767898668282917216316973409196188984231610562363467186232242122775230623793817395602950226794266984271481034765543095975773972717188589065596795963289129470778405426579781047241072142165375437056407698992690076671723584708510975870309407967661160534244615943456549994225208641686656295871285879293175394298725826800470666944618519519503714492081049213222082149330729958800459526998316785559895105416461690498697722138056517932508105794119967560412859390355409827763552824756425636389126651196191504760360753098940023605042007422413960934899523949193351050966829930972363669282887005127308160929288091468949887170824356769646943023353952438772464989587262831861980378111341802031549038102476904640715280158628414897810052674978599780817719268485673801837607734786671672065550146501348916809886921549144259546812398456335330833493008063820700715255698234872526120592964956035791292385308909539035924152886763897564989514544956269470328827051125829072652759563413778787122196780596215487789801308804997805180604483904812658012057379193191458049800990807271978910912641525597058867394493745121434638890095877380648250752068158646482541860399952302801618061747517987965223162994452963240160389467282974413220118629905634878704451419216055403031431625895119911562173788676596453144625737541219242303829409492789749030677760590580390813495768486080709454546496539772538870841062434274929492586718394280358740994024695640579082435035649260033347781043505340285798675798649053754136609670351855725245409023856275992061843332229805085446528764836228143325218750640523712319297048119151479864409266660132202321860045967642186396424460299366577881573273966200811418099572008732813287405936852777913425342687934159562272876539708740961170389139573720527976634273887685574853112099554865057132420839133106394367268406100724118929404926666746398515263851938849682954305385128743932685506074445517404299567274444540645280882400730090660951475428596336517720006250346598394597714455519559340630480688231787178915198798626994376827421375100196225465783689494286454713019527902868137056917886413427878760721247799390698886732450133337621246318675368954178517755554067170300992177524295898628392478494860093876575791432623858147846035043552263541619030867314013064025173710970689518790262624247715059013779700178242272564603548216225717055640926874946118300766363695561513784083881872396041316093071282221808290473875431003501577537048365211686820586322479081976237584676442793795523107083552689066306096696490327271746547530789453859248073423606482931503718877252692532830548598044321523489270249182151227514611439638113242481150724310500121659486813555737562334391696273881445536206352777597888239970105788524991286048244629364356358502752810648960468687748948657740380448927253777004845503283889016262096951155509650039951524684389881614742381136743604535459623972306078896210968208720132068262156556012832078100066345556739996980208033437465031172843493042618006893129621724616298077125246346282356661329661217125021262995796724650569096965736295371715916742826614521336790715881842190012770465923385727744946890766739761053012798081546495576076075929886547309658986063911265381187510726802585138622914160798522311250110634188067544596527049322795346026571362427915724300076827991125889780743106853104010773892940210364112741603565351653375823387561299482622941808189864986823323806461396616663788072684897158906382382624937340059058400676361013997431464499756853572981906657032059788919508984367581207952062376086464841532231161533109600480233252310624491346779403554241667782189001949645733773794308151916905172523384665721644364892929839067717646635370764053922864495228738953938401349346796572360586983872615034222121712888768554558376936952393346459728445022736215135464749647140857975907151866893635777056880493880803352714161671252545231201248379918979703203885835233513583463751832488807046490084389850638919604170597328907842121568770616597426046980006842409814834002216095024684327819304877052169783326181854499609614899557562687373530147945308730348174093402448207487486651987854340552786046104898329724485497347934273748036540012844267685191843176855662080249278478203281229935484757642973397336912862624271247589991313349299044424080080230577338150616015672636122665830425901347743597074791254675082621507643724332147159461011611108235560968746613967181634787920236416220007009902480817472870428718477977061281238348607947336422649172172508788081873065632990194330448991572864562419788758282594353120298914789729672768386889158694084720725969455283284174348946544545986100219820767603442072080006631074651358480490498999795842752339894428042574480111110222761592709672940182029826437542810918194772795745011222266575343693176010273915878317420701595015128909244813930410773497416192915575800867504833327597384354682003471819639498079600114472903934595129869062648590810754627001166843961649265784550053705338184912305558040157872468684138730709609662039927602606642339467928937997279947274799543042840669858417046701268774502577029632314648007021916916794395383913103350743724146783893631962184522002484558907311267092934269009334423209609284076126937575902904159814815526655638668106330873211846746575913596517281403372612706979178276450763868890776640281049903041643114709055582882702907387692011268080116267809789752798920784969540170567843947143486399397768773823264710625810837766454742839096946098280396859557610365529742085858376223303151017839099492684869666081421403789237259524811825341241316270582293427416720092785023653826528707722327134494282731776689295958595170983495890862944227923822462157887124237466635138137029381326849371969831948380105914737651131106171414897338996387519450958534124249084267616129049738170870658816216942913154167644861925169379506131367551143956021105414661400686897424235258864556098778088786726711433043347691931609853594952805172176064637241177203778707739461374977293028826534736341056593247213942742407271832983321491886353664584056637668320294440201135344517446873129595874556878082869300603831926509788856263201866771146488899244862348924090518046842042102803498920606162740946740681156980252340475157241764779237744634828177293809127582203364856612898075569183838225532935667626017352945062506999301450828945808547645525626555092683322186766400789058107535568031338282659007615682370969042408039651795535251356107576604955844998943653438464369139804041908222928168626879903360381726921271034684174929326776526031024071232259119476231369860847472525985502004487363122836387635171601272310664198151740110454864508443291389750143209027526759348578246638633343099008616220278637341342356240142952677487305644322288544515409183505190309894412446773414279214189886570729686672312244340129862619186321658355141096479110927763414396958212849422111013429413872861963448332050454601690679079493925609795931117490440288037601577078563127529436287789136721390174114726614088067405220656538345520430711978993943230121344694910014130209392687238281069087926938101603065606138159619311983355813230949867578458835616580468781934298442933233058528309038202024893577024258097977476231140315827495574515520669704255500589998952330681249785489063740702630479734577410389991986606145122907422262627357558491278893268170797533651930302437743584818895576958283335449044226421826666091140091781225965676433668889127116438372427852545612308301490692961923877500126329398166269690033704127407678799547486288452849144865891987306693338432987718226731680664634921219319432164564276544382955606443447356359592944230112273099196354066948244813130121765299540971290068983413581773941274562130303078441363565378466166796623349821702682886151684644146644622714877624191163356111504676765870645682330300029218995152901960699629168787283955452892757467937153318718244980477543143583706394610336650213387877065166098958195633573016620634171516400824291618506992484472541373803380632096329149118112733916089437524804334190101473882005095177659043105187906308977187018862676846188821066984171018548236066754328104129031590847108775077324919965505813073213184652651505272272291064316918310991766746416219905194733881985925277231345465747907091581968836982331167698812737797255608015754822782240878724889331521571409380995072145678409037908884548166922380863496777334039824924180594741401463883235665086702653908702592240172649116131651793101731502150598733521384520881610437274482647779526250521041466416887407085716387476751081515009759764068765443655569705656336412101565894625222793909931078804341829431166328544554296008032095377575553166003866090219303574323235347147525756197986755778597334664882891493421734595114267011394446998723728749709629597827066486858120742045344315250390210650834641753989247612919281418291899162136009684511332205906538690285639371055122586650772298298408533122708558079951034778867430809528193345638883909990793701514973703086781260496122437753581660697256205413229970116546418454218489919895230458806107356751219746789121481123039602384954273249737491701323755831366531624770099158114923538927227589090287963085461545701650956793099997375030763059445740741763376396928927536744722358020983656627283151949456781236969865900326830064536528861771145622034995917827134626723092936660951506063073118119757383217882361955570845768893360121371492972671833448119827427815576685165267426307027472282530914870113762834644401556189708262103439693056593733783132433364542948496822034960957301680855134189767658681985445272651046263485606131031481231775898347073857111973796070706403382502762191590364211887590727231419461198289832881642617297958128385415695993422895118218281646669244852754950188556755663193839158639855959178116341120777354279464911286427264396170748156225369164934203349333100010316170268120180212403800393428431918369468437880254111998401267665371211084328841901498581822143508703357904320731515521571263193930802223815857808251260595593538914995693638203517894043404471880312502204887792173825258183624893713784373851439450230274610075333455900290792784304230464048336986795834926866185547105248613390023980208461232072832354849963045222196498102284502329912326775242220847461505781270526446321085846618898293075349985818572675039064297904268360363943664388042300599011320882303186176925146673991564047163101308433397246045763677831038212360004422376629421723009927110479707304733375128029785694303165586533025856130678683210047875429574721249038078182194865291524551035313530816600727911092292706094972482075060095711957958310610898983715752247497178643656071591682134509499818153720141667205368310991486012758233784252999298267761698574250657347102210279539601254045186543308521506450047236380406984449918623137442014131989634027328257852649073969043367206312060694803672246569173651143679425856493099721502863737186888684285806316382940047219830722672787598283761739752636903107201948904881093706552718438048139643931702049581979231260003025712707696163084593577502269454020224932650160735930591321908467797824483187444138377592363508251757821776622682446630242460302266475390207826155551922702211448358085868137610890526245032928141310572041312511358544944555529966960906729043975066641676632494339000190090143761396974706814510365478288763048311480654246464442082321923240225777660080980728641217116806628447440682697782258191977312142796248011058445931699156192847120352984461179814838809217896091922414526906044523125901485837976295998938951567096367761277033852764977841924685122851170649010681679740605095548407948309227937893142952604943261987519037680205771020354470690365022448839498389768782909804915725808418814096717829131489147718746969868179913023420173906288166607475633493296198874309076831366719275785544715475896944237491421594259560380281450461043504321117167865622383627691612593051619009511821168099061891725022955923856766747773939783585176823054714819074571853701026791961390099975631809797016489195237667054330153168122895199108232319083511846228594297954464927807095306193946794079512075229787306697139271345824461657307982126199194190600217041400050439736151075485414809380870642161985901610276404954189017378229783503992889870993381570525713972955366904827888841585602720774921690999457113451427501164575098167371207748822884926198948113691565589352441329976017348862341934554193545539179315013878601530848122341558196018545427165454882516715099862530668610930975083591882267163976373532072255904968106790748229999497792402611259626574052275304855643632497515218328884945286673266109749406730897630532826976876986040047069756613259323297074717729267500804148945341401120249682001629328848107636639569673282905844598479081870568364396698041322655089605966400345225310506442770046588436053805488449122310219203473593202327390603718312044848552773583250575509652555457473163414426913980987492173014066885092131522394165142908221852518335977391646244190323665274009283932169715768975005145876726492189333374222520137113632958411157329693159563903947957037011919135306770767088410430155109908936309087180230797139406232891783237776977103571542463878934399223960515253302061632372854173784707257907227158460087203859726650561684399821383918133501944038723833342502327654095650129649158497336221779756585165402575708319895367951050490804372579330295071159948788057177676895039825260221073741312655827026790327662997481851201176157727365916615620742487256710385607431117432885699253763967885320252451993345103189690650418884493414126081490338475281531985173178840906328817024751875449036003321110457585192276661295184184658418184541252650589198560819459169890927288876103500943749244184381299440127390741775413488754697204449403394011721337677005108912296057445941625868336517278103460364401933666781714225371637808846567197861599205913958656693664166241401686615788834588355608508077590393131440172360506690251135959606361562841590795648288285297828433660958784408016361294931685614921637961499411378643816581360745920103422230417239742343775903150402816812535059193929474744589900431294840230372992143093689548162822452825030413133611280176807326113017698945830504208254972602559225480926036739712924194275734899682737744517997012481656472223906026791508756146506929330244613594570823423187895001690427129077621877242788470371745777523750940093211533975682026638124053663670992339737835275232205068675480811951312586134719815204303073693364595471139303325146812500395632863818323275561662344399166682886425993090478433033849609616303315440302082975986802607127510992161396133584543728331986871719318185583865913922147995027770099810249532545628930004280464811093471073453567514974817423509321667020346183508599089389434426824220015718217644431442080697193403999502145372905553619282000396837155589299016436620408003130523270623649542654006293114946611168833336278701925218257445451474383994902833706227653450113884395155128408456579807267590222630530248671315749954609075158339663049974620578560409694848845517699282268186061964830133723282997731454598795731020960504508518620751770647189976894329334452716669914979324175255416178874340273930554738150013207273336078041669028516521490426971084242943262851893251470733703572062838018367536204844157834105125624190557725379451974846416419406579417258598570485386232297933677642749496316074319888267120967485929417599864906755020030622952046436350683969058850310662803434623355750103400406269954430341486753092386544564116683278457372543466243938815925630192824340608930446092088696977143550614519620654869240968954707720160003320834315661106765424870590528231546625833426556755744537440587430095020221424372807232839340146606584371201774897801856816117759495916578593486674562957198022140376808091811507179776597299644012018614389259504227332249672169310721291452553121295716107746696551509681388723282606634571163810501768977363436267475282457704302918754244039543976692298525020005414064736971857570834112114148533563994663745381553377608461775757861346028848633674295074237084768369084792558958727255250645693344414207089710124228885454454993212500720641296763381554522629045990741929963621058812720125895020188434361197343410479046425474269159263439325091758763254719791520833542722124770056857172703595665651244135329852054366210614865302037439379990548737362604182371724357396395586060925313893952980336247171635465571902954538185393042724023504995659624474826160733492480303775953115404015219286812682308928273211498944600943683537465276627997506287979082659626563088887183687701277173360021410491863569450408990230573998450621032433739472323439961862790413064683752254230278026746412798836257967847947929310685991703281737818955973193894252465574776075754219183333265447098728734536890275282502931319390461421698105172156724036139239016373608557138142746446542057482464181467348446204926873755488830978970306904000553403529219657256383690958928944480031933350832183430700844852978744743491935434196481637276977135121328697653105847255697334485028573239651919836801705847342123681639853863931365626967041156649085771510899623808137243122632495451119893379351725705533111546636572769168784133184135875104168342008595529058090324053300368679371697094609849166109339724349345102511869893068030420534957778194740654947293296363330784519855460558753591975509099207526537246382366636037224008405026799195232503941496776088773864748072256461439522052618111527699990719968903772804450484118396098509023353290191175467783053670070227695118490705430275521203189611762792946240573295601727845708374490213861702822816829755024820475362239371302435072193271699787669437068024753478919311257262572175380504459205267410402330404279835058418232457376794422102862324638998859023269532266848425268504548995432415621499327068148919287018918869492688611328278722901061090740873591785291866944479350236547180639672705495486935927180486613046160728745896533314214171022652433508090079149122043661262007264035835231446374739870283565874867403627700059189966894716745972033962894908377813708413819581915849221446973269290036066236588371068698496266965721504660249070047640930001607554263814401842272671411682563054998804468998908629246706320749140804811990333915195841346411714999536638213462994349345744683947859816943790221156724219886369036509519601733710812657561173932492711998592675685740540487277565351355037988515176814030431576064821593250338090908248209011109871956909624682221047322691955768406268499838240773821878759029832625014790696542968220064137431058488207929844842897124990746448962602952796583583961802097559101847296403357469495935476687208393393717166687417899546641959145979806272399767921819857072294851631448449363111755200019338592847322016380032515612479214261000734050859786984810123495439149515629994869371717939354112202783757082514150583631792517435545422701260185240358791725407166017587909372920844889351774512737750605534282348376477074978679505107162681301466221916516885739479776591231185669075607318738134693251106662175749144166209197383829057437262077222608144385996443755593258345261890293060769472841935260554778480543722325206655164765099723689092400963107427129492859885483915161204894996336309252334321033209298121280486826217009172748806432054440818572013163836945758053944325698067203698339855610924521955372186171151277072536272824661845354685033507335991970390211421256502738264176915677701145964057023601240341170843954598020886600145130207175354174925819649818663163169802062219132482909183191561987100834686514325271035043046067007917875111486148303998367634728891998829407455539067422128943837163441864051054363981146725260121915870514940122007874850387700662544199094608227870669415611961837808243187801435424642099355585396971437090632787187556453792287813092415601760078717490046170882291664376786132231604064313247143237270415901225962516652717115379536963409668014142018694149423535102772385294065432022170117264288975543363751735950331685075868136457422775584167859860649013950211415961847376624185789970708351838839668283427703867740922012508806607795187296088084769968469385429364732508370275265845942044270884486497825793573393552085884159966392817790798319691735859447265478158893055965958074826898153226921630756826813801625961416798905849233696887699158104088588067287659725700991759502887484058803221858466237654323411654372136946707501839200608841476626661734482666187403732413659991640357158476246254929070145655198837577733495902148020357915856075531613405696121089133729062026303856359853596432309774342058724431655063745681010194891230192336410582106879325815409495330573662491864186950394237815187360832791426456504833627105735087506847985032651591143344983635804528327877583867019320938876348106018141906076652235954573001563199187006929310401526049516614725162680350616752339888803681999098239053366997060514501232212833524561825622473859730531436243766940908308784725758437026640918683221568674816282343894538127827114246041084430559010640841724462620600637597224993571199711934737256912531544456677394011641943513613519683826231244045251163839295895259177870651133702812504543435009511348438042627724056073755367284940107378735932262809097287430631107710728579477522983575563033956008735701421296422832005651687047968461422756999379710370604795353755117601426139716255756678428220650239567756526419996686924845886812699581963197851098018874839173568633943896656134372491201379255716792357380892679059557922586350239177564679752105187146864664107506709014387948281936703902984742270267034993113125259333505912466948361991757325590577117391323175391535399842564524828010964193779355137553266638023395946249327298058276676422335602698103144899382291794939994433748956622630000098819001502856138388251113078501202464132201680427968716881651487523640210652927163669011502491883536385769543317785535289828253962310213143903303053042229768183900378772510086350861328882745126260535999812397656530274924945550833769480681012866276750688883330234604965936467458873505069215768913714050913554096878241570495124416032241790090556628219147215177556997618395671995517868671003552368522959565153357217040702115189716420685322666010697919709420036185465381648766324013457873777283474425452307604786458729125472281038120657097806299782457992342884812323114005393892378802352786428262094411324972115109977404793194583066780520696113318301644137968408693980742792988789014777337275309607172139459712466385136773680443144424488111392081338799019504062002372784916936472925723225630737861804243154288006831879581838577887221228283550859407725170726392334406247883834903592357252320558028841085986710377638595241268239454373248121692412016453221814825131554125877081667501736829692066746550228678558193583734512731209694319312173100012858973288898189756582332339964464948868810117690709291099785479263336949978263236586979821924805914062734170671530149425902479117713221506204923415888821411503733636061270089298948980842273723116802333692101637007850712922943485437987126238572106807353662657491961582019339084061601583645467631210065567088901368433801465818591479024472885423596278315748021692968047740522588353550316462132552679149212118480951655357754154956982467111254770824497383373913056838470335990364111967734779448210076714790386268078491429350203892735378851084570050109333417384930233660966837674880277441521594567643344717779626683005661840335446682053126276179516269637707901118247523816090106373361145137781175521023806367853491945862412862227278126656802657941008595232405526289046498311442811559819821140100608651947332583064208760710199113779261323657262793364558016401829625936997507974078123203561501088368680684119234041053053030185752723953318042631359683856936840389636363780762001562071798033401178398050509507239339038098705574519889430740309603785081343806834561207854446783000913872493417451891731946241233458376538455544570359277463137692244565582425199979352208868652316811362600118180257731955936920756000798240360120290786910146379525094567295057481142328903914322693517023644263845967219688600392468410152438220946970491673175518660804295553015674658874315869798109849515904279334314132709196765757104548125202221821259695714607237368386519797993859589897953901938854752164977124262934155973257108594633261513217485715940683979928844084273454970731866388370468078299142054782102345183669250428302178473265602755870289296074395506454225231488554307746158327851218386023108978291269598108182084186734996697433979110651327270868514988438937350484027768614518213403627400327336267550371465482371227890651014554208241108515288153539681725438921076203973497956389412371795749324459778388357965213886158607778158451122478890536229181791634109809359899228821103025707145508439521898379546657158013927812594127305437735128045896064696740890818157685930175586967920538258529754764133189056919870367432947863482199229789906631229029214378355749332426145618756783388976893760239984841500293214175667963981281694854066436283973401465713951032670190321585002220444233990154426570831075698318398358254490104565492086858931885800078323986418647573787945545949234286308314254699941888993094171214363673639520700503710235471270198232245378742576799768955103436453479794794694821643597313096137120186604039293615578806674441725081105805167735454892321495566362514287048870398801374046254760988022924721562780610468643797330376656125280574890750770871544022560481157615312507677646880652665383810371769709120222499527601547215304403365258141094161281914918301118100108929388142448169306065781269013247500043531608367282634142469235063772527215759302694221221735294320350570037647317507220343842302850352532701479626463891237305722378655286989412958162451459934504030489893499855455240572635528865477454354178017234791410706278573391959187685084896747899298858702671068144093336831665617305093053890300879239755274092762006695715123497125493830076332699796350852237821550974599387728919850503882017469028893033064931480614677040454012889939585585491167813014674092474531446660190910474542071877006027847568195085036104036597721937075951202392933456613375484094479585676622492007145969682179102746318695777139949124474101508992515900238622078766388950480386691845975429405039060040608407770708982246897242696225621032570472340580712384184179253028347607850752386879862143479542505567546990791677242932740527421297209017503357932073709532307570010337103017774876653098143456407019577057512380596847427094514246094674511682767970406987293908121634539146254598825570251453971842800482929593984593270267794088979333025207506327751450869929703397825923826692609595893716597243324212880027682241608135433094984893551047382962500462884704098007927878188623823364132665353202300235563388085659321051761608742495201833056390089875938561456293121674860123584522884265083435426481101032966469992378844358317544488651912070163338819185850901015337711248434965639303379611567440967989553145539042227906473697082668637836202295201401453462709818394500370378929002519034104641424718401641257322592690995349036494012803662921493634744235578177252573797648561610596534148211928191784581258864857793044432255868504828619742038576262708794360764314080219262662997200514373264167874280930814980057201640591369514062850784954211963005316871018208245647829519805401837462819564658605182276464653679292699004853916971071995927942033828756154212544482427677749768799809433967421730579892514584592199213708031183327078854147367305554045142599858458234728087583037727490651828270852444222224488726534337600226836697424768943508448811353041822067718201201034702196400400156252195804122171744636891025024304392396424059407898143086456954605322974104545456654104349754495408438548693459629278012108615833411091765669612069619261227826477118142805147243326167087416994809492835676855082401986701572506168378385532617048299102031093576487522582359798248913108642176700160271989859604107071822909528531731977252076586085221038197956945866914248447496572116476297792001491476154902053602538891396069646644277983344621984244549281229019135375323891546853106855490157328857955702329203310719270912410027715399809013206050211791871344543994117148364156079921185028131605292526249691151749188327017629977505104279366531169204328704292796726853013875867506688013386365056640168368249484459156102532516367763483100665343714402128515568918302321995522350282066116583095900043324596423704127009458951760729598640774959568160270707881753161831938908005863092746589997855223881373654942911661058561191601304930133593537632470016200563401780713329734242573017479013048077222294064737253615869346943819407833218445761817876483979286974133156829887037815118748633397457042570362700334466102133705169506176429497932756012467919834109337866130707660526139224079562455948435342437875075965035189535361961976948899498796244898215140906655474246067324699340149534349781931009503114857064146547441656938179300128924247980949784396426463617350373964178821577808125797269501657466020533988946646572716966176416505553861451139578273527026970092527279032704495587354482140218869669254704948296556035578199934715819109459322650718298081411245405079255360072952684564104077365497253856018178990032976044197292489652958745393342299676990774095758290738057205173100790691871422334876373485971928394753712920033053478106618484207536783790380887670190724858759323175124528812119943412807877715700611191899750260572240161431047257464630688885990200204199676342966671574869665871563487644805008825347704016040989675228631625453906633118139801202091340023251525365838142189854346910281118102101286224156114670422356810300125424618019201760862140441815154823046024027941335384513491571436354921442789752447214918500412468065142624611931180741419235643247926325954222521093620424516466408939457434411802213375160645892635119653724250863704810676369115928862773639501457266802994557740289162806139224939675456286864591935651654385670370417747045734715617029616701268672768128329573519586371772929599186520219092639319838080457996730468151339280859287890967870573343410539560436924861027827755201374324533092236086141746830875936349991830359387135467624236323569360863699633505508283958768452621523753889973850425801191287282338400107326929138063906946293513817761674224552372329275333322463335927678231495760504636078289494653935975998052237068148899516024777418557191019370858230017626293256806572504052663304566118093379006510422359406196294433632947616436467781246954721105223225992383680653302517052473126689830834146489587954912436966716061982863382244173217285152869005552131619222652355430465814880200320392578210330224654663197580194490259631162546049567034179334377178242451783385760711397048598911562274139325374368495655462473139918729114125855350696580421830744084994652463783776971540259529709019642340342822011263602205042443222502105221264380508514664325189732017109142192788626029969681950682208052185858409289286912818092621627805555284776959783975744565372576181933303303076378500689637066649940562651289569974716216751029575290447819683112040985934255217603995886954165061462963080799211517109718649434343169546292131760876885700944924416922037916891096217015400448595504397798126386630093809322898436945661552413570210280120909200045382431552892394486877802614063265964981911845281002917970675816215407427092865633985212717585423897461665095742549946923752296951668743685879581841986054467628624272609668555463878806144907052093468976114032073022307339071302215449823289574363205043823238488329573560103383473611012765106896107806952403245101400669526243299056580849553007771131144138435277820996464523503993985194111009566240686887674653305527145978737314727366616173187027313429279343004367214545596890563239596429071103458183584356032252968654900264220076449142236538680145048414637756849781475489348422355563967692130902099096364877993755549699604678470465867032905995200695544698600320793715601978049224453825631938092658346467809047500672443554302223619533282147802031589761153243740959498831015825383103968015208811618363841958046591482584725586732975741574970936466932168927639121834560897156721695380570276632245424692490559089576068707336277702062228766435809526005898575274419187669581176837764630978124171144312819421883693493386418201806580394529708016704197382877832791447069706524101232451378034323058583715953477575679260693766940506713359033311448058366262970828076242586638260694554173610838179524729888251810115091584027331463117323955937528899797730349394289786412034438434909759673839251763449858807778066960173401376849163913475607720593922651992753719934349362627338965870756663371161644779922539360417403570082138513290612288470897941095978313061694915599265734275744750294080532251226197009088164094714238741536380805888478953642974982804556900252667702851686028860287163260571861715360241113273016042067468717297165231138410977970737480368921918378891074961599915530943856327651437391803160538197047953855326677517280675981079018501035829918035300867259787928602124639883309842727156663610102252055193212120675169707490140817532136529449635778550085524604267297492280183370881362405838409088111638793939389205815348059466580828213320355942435830346285779644131528541883126090549683932149582245418657390274499335390321769954864134411024860387054292849496766763937536767119916031019710974291079887397205804236284686365228209114793266543067756694965377175408357765085012749434605361402437746113953391126783130244472927307798528782780201180738862837493626550880185331898288689574909886597237540237601006833252948371569584323050157691658578627732560557584807385748660827180717243363689447073116472962656904654220085435356020329945435439119980086792999918462879812428026343654455627062887947808914589005426853883617212965921070950549444408943602756450713877669166708003465529962679061029936567511066411598419641369544952722231916125998507552297831542317871828563923026159002311990413623913635231079516350699864293058855816535408943900576489744895218546879574188970364779222204003105180763021727964574976246751806180162618616633308059989406373709189557059441655353387347683516085023124627809056017881602323243585490409525375524265368021592498600133742249484735276965885652727563913374296202768259559421354106490823931485791872950258126657014638264072544338815948074126811808439256155089031517229349990817009746186120322551471917276527448691353756366021975556612266132004743297487913455834561526928492275280591575514108583041232517664010447415595898771635567116448146989600692688721679199512444831443560452958904692318295051885512884469700115404329628464956264047991972442669437741638616414990077779654001900822464445889628591159348308399173025672211850542178033428791360145596884397838367925832838582113016561777406031750379637461494080754000189742930125940429870350783101643647710990727170217867775441161733804843759327591651598486637705339353268783659416092830284012795359185943828838609733884918752014779334757605726786386016010746011185651211811987052822467922781714068677570631480283582061479768890695891815803174017791744482864596262352683709121532237088503972444226316638361621482548708648918507538802598325779617193497517922759923258632495524521414540948402950049052839968344233579210677812803262490623796469222687756987960595893290202927788339525720443934323883579917738485779453697895963803399186967249990735423718364693719257251718872115402455166032575687888273978946814075904986329794877675873970804670447002414326271857362039793738259082850051537355326866593023310737787952983418233420324214481716057919054310691964226615249354594879931926287409948429094095794682258638762704571686031927320269324114206412028937965297186297042903220702867675213938385360631815440191858616880281536888120503334339259798587713789615010509887816565382826810765106349581797507673232490309931477401360201431994917320701292181261781516963641522397217960489207666690510781937404685820895607969360056938428256010313166547609482899557153280085077573833019762605888304547464985828037325073906820812007035704754057817740798390789983681700156876784287183958049899972931857499778290293140833361345794813166741345226318649440838701564947074688583350411999034481435119324617070266329036060341160894473880870934933170641855975844664246681379193699688765067687012967469943185481672270441414442842407317841908338959382146805269732483187405014827808335488335058383007615005931949961553289846686657790562544195025506761763461224988557679550761900613249631255087180830828996975320666643786331726235635555938849515895894857786053633692860318753166262533186194157106593892733534637104561270509875872479017048367131797047608957005981721104741398727621008027629395323513850214777315550250705859581635594360291741934591050773144882883191801386541143270369170427687273095633227739985098304080598766178759507136402906972370454656589722414135941441224353954226611366794300723106198034835166103301285520939081102554810964473441682795836176508030984572722106780981724107741703630351744021609581101107133525669708015795212361900091765954817689169496629486529710756084597818631387141185253250745469385915411570156865387107217183484635968702412736945823625348080492237153296203413542271007577389295090877199743824019005514698264010279393200650122081050280593621966435537352450560468131604451679089700988154351985257741118670912943394638770357446783183064679091229301671013143201037891076698253185769531722773832597885790358881043613595600951958872003799864857837758848800356009081915767652409444328979345940999306649241822365372137905742585526647410724880985595896289770241651039512259540565735482516881156382882297590186151899221694438537730135848395957025583858296809967490496408406756515928004010481663559909035092234623488016964214160114483341188373118219172919855371471634824377071807469450341444010010179554847530836709435023855402784002826295213868946190996436088476230495775194475336668109363888594124022597194043768117440186874883218490857313182142924795134369435481082896423021617270298513400635324595382305709435944145985066901167402543266549110084715133164025882806705626397756442122714089640579285326308106829431966064785317140733378019740138632356774956807034287914582334707554267090606659173981648166856285621033488503731448655948185687689040352145889794342062126093576254225133149354862932175734919524732201265307140547619605828814342585952303374607555390819221327285604017439879836598114194323486817644842572766124255850858234160563949113363281839084999108207183864787950755233411444992135821450047394920855865355921851227006184568841121325444448100164078343520384585974593256867977461110507492383929925205071126524720816308679979602318797461861341906721619307244571862729891241483322666655503817851222399950442475973279664762649425532908547917877929337855262032075913065213844826220096667798627985212649418769303912670679883153682526755420055211164970097151856167177248243172883821714848184459355376374035002811150788434704199678769720637044832946710757511442580211477210335399341632488424592057382171903508915448317857722085947066959937148408212158104111735981033334050565380128158775060147645392808419483331389867223564657883170498910018861945268811437591240416790994186107946327728880057345096624481037821867930903272864155310777395687166833040659070657858206173836049376452505120498915509885615530131298388598227276320546394768942595591082387448932959661608207973590718457175282172802371855157253275657741712433614468373589811267636773853093209722538772097577942437386042481051029671733007403775993064652957854435376513416238625058979692244799191921975203521171667130443880119355678445476405190474306805726455822529709636469263388026376218768050846980316299988577948286980820524586090185691219942876423764899187266555760194778592007579700246737801121939168123055549177790347352265511889321604597813844914013013717325943332946982273758698667078239105180154873326077311722122580675094238600910180114800508861281797283744096409590944406122320545922823314416044443416166770686313518211226968296097130067694331304406345593340286242877739891053562336660995247498321036777514698277785189714531966658326678844854525014104788324064837568915369884011032619560186300051470597332542976988871162433022126529174010169394815802030599047788961309602880052271795633237779156522609734160912648124713366462586290124498572018940734239880466550601912886423723747404494939915148203252978965641129118337642951777871610769394526706581647739253257320251454660520126223911952294231093389935556031187608951765954302014135379504584481842199015135918017868766936535328656132230217633848595099818713715424833160375669662146118740313006918112264389914141251169204600927481875237079739377499238043009713169006235467381302248226658302154380843442761421673489484327585542422810433857454900093847195244381678992550027706617828046965070167739972713063952835323727779052897445464566154770328001343401167284305133494275946214320299316197032020204479472191041278971113695678461138815493703250062621717110313698982973828138965549145265952802116708391595371192678517722875357167224387660659005786794268833964688366297750463899999610964517038935895024747351534437939162954582323759934016479991003032483883014874263806043262029332252957688901679412780180646522558679583890062707536944885837224461262555337333911081841354263571133846636937370840697302272748249544283282237407893840849613184733008393887522734677942321080332188380979511363300543323691412561610041007451725338535471922086725677953616253184061936129121407543470928565495564727047668189118821803106824445878787272273750562533815267556063785883494523510933633710863238971020684104213207941797296020164317284745423925090522421515184191043075291234198875002922204804334106615639456788245932998368585056003448423964955154168527802359959202598170864333573844823007703850582494586567040892707904978051748149387181926079127399315941850678108000025682884035423622178795568283086765290857948311618718785138681093158142315081291178405071823792298528019157585610304162423285090045925804190640990861480906194929847175056945709783911693948775059640763857799858562167032382067090713269999721825975592229304327042535758005750508157294504611566279951234723641622086599190846207757206250364087765848327739372870870671100905343348166105558755756362800380818837641590969452408646683746828736825025194524998807898389278388294339271135768282124583796437102029781429510354754550329789085126966577506056331264096379077071945212742796315122320562485627770040862470376003953076695787982935134690800342551409753700815135205318068007839874342681689363755065982027411188587254231938673651430511158375300894260971897554040213699812566632322120492205657844289238550565936996377021457888922759037035101334936725539187050518243915816609421078747171923666466028055105673221817029252313894581153268253382233188238304584279832473647978310366542600876853363470239466303674126790770477339412778087775343610236762989340301735699409494131300494953364853124798000328961193762049409455812992851736506527564893841750787422613434519152831692955952203726121052097976993853048066271272510239137973538794728326213542783369178911544947370358569566736445471064031801391538401825599080193503788806686234110506811609342854731176948463898739084259614536766046804597430538924663889801756346402544867226855934188160876586566537580128680779813364074517312572217101066430528713781253066703925706817651331395555788646741341919834984293411422013692120024417957860034270439679444338658436189429367720725708133894821989278117726503877060738866632766633205599431745754913674384152220902670204599851381770829690135968539633442735447207874439045661312476463664284192147072922962805366598615141541251442968962650112048619081780181403995651005619036784476217059064587271566709069665138581499954649688295764727473203840552882210073111832558518138523152952575519444175780087327778767225584061847362482717775102594383432897795026949146756159875884541798863641166492935029394547998492667156694935585891847709639282829132999639415955235999964230166223648883930383066268278389397363250608263067902512262001017171314068715325390830160179857590228291255184403307347148989745770238251494819055678899534674537278927126680319255279851612645367392803841900021032729471442204442748621686157741758186191356070199336829476797901296977043388503876108217557189849665182791825620014195654376431309719931616237638020665351194000567653090469504382708872865531749511245785587564545978367736969605361106039538218999677319695893989905387218083639622815433391133696677307850503874535746490239847143735740662473787284665070213191047437684843753965500650084481842678329088983323148121414436189526537575977254693495484072097909671199817393928864827398011877676720313950679821586082515818832614309090892131166179876957990291722302929776045873136657281995834306078411538161490861927574317220839604711545270144648570664039142797454794013989371832501057394123228595111388927927442434518209912964502854804256033897550539220918813942716236370001355678577169864912049025097063745026167941798658830807715670299878592986507677495475904182294785528062134152530728513980488224521753026961173334280399070683448085779145888900327906525987604194699508766809473549398855742176431921159355638965958160554335472175823025471673958386975580448304979466356276355669449997489586962215190171056436227796881063383076734274085648850764427127728610628532785038888780197579570973598085520206390099553342969741125091968603296590853603891343205791531198832151411225576409099968416276675197742818641202541391701856078437167448882624106955995034620675675372972639322775444249488660999969417326156498220432753038994856599990335785331842089004903038628467810399666968748554814939027229934622014516040297622294962495282225576151934386315815979007528485121384481356331477108539271688545033724054012702815077997887765349966091905415023381863532771678897443626117657566556909138934080762354426743627946196390348834175491963414697268318894465055654130126391514174832701264828381249839020647531140533843213514623409420191724891164297508870898674115486143241419268327278397473178064099544005416096767536014998395963111464735098287590099663464187472445667348368404057857787090082877596530074662124702622411561455759222234152492727219278283593282674180509082245918848909779057662558554634353801145214982840679935573166772475676923749029842867630712610228797915613110672712686809860569662561422539729540113154066441549834703799131036470347475585672380357412060177668665445296001898086344923983324419877214909861554038767086085924583351932032730379069085997444749425038495543840746489535073407072878145697743163047595599609001693852769108087732159930951916818908641598247127470090838702285157635778904350018876988010008276366593097120729790750803153988355689061502709918540581525651267702433633603929899154796444397550817587912775455567065965203478135117967033856654461355619667107298076914563511593065025851314547608795486437032070224866674348831340752468462267424257126612191029706660855124995066123479726707758575877469261623184181034741391854917192106002829287315739841863096883117721032970067778678715812869351316220839012099126083995864351916538433331386999566246066445018008053282914197311133901582781844553142530425611079120916820870999323679244153741033544269442553048627984789560955244844445119162971656698356308687394522421235998048888619521767580409880395639757624761340932346977129990801345961777540103247077831575348342444171054758623106627461629510627343188758516210353436483194593825087539407155466848194533945753181363235781738284958182503147450802728774679701299444883474795678014409983440573085303408759564611749629253924540455411125453516615597910657810785591373864959375766993042276514970170862110693085810068256439908550661758530146042341789193135797105901482029158656940792662920509858214666287845309724522637503801078409270937924535650499633061610660149133002181035027382441934534793148451498718693234350361360221241349512826139413669434479564764899959719141066359698792819449621947943848451620793845397369307019394262775053637607559094163650853958592273226155741877812529789053799735101443840703717149522300685372775505836727966876467460779013600832062176632079642871253453125514651572632514108388463176335877761565285089426068680159251103638395895482536477443065878275938831375627895511705508548737342220974052307471931659051965033303467657024752518258809571484682282327765116428979641602828980548636866608746341876397650368626097027732839057029314375387392409879569693638385480896321489437265879547422056563985819188304452789190350617986014622218982312189142318208442019808521717334779008499882734516654742219189216636504014023290499454171461076387133458324808886764083466224179683410242570283163405806748016492444379167858216844420756104341008430791371448489995364030039147873435320828263613051166291626198567622417959119201380282908742475432605333178112470075872928514547022111238837969975748614007466089892723216890403084573014435935554860954320201206683956141119649131135972042974074789070396069575473159907394541302199196420473919966041823834188841669669807482835651178596154095171306044646173404054207736210124579483005377353959970931512536770255763999250689686998299797598840467632540335924790490621610328725529727167445399715739419737194888751198507985926453472652892635831567993928065269904614286863731680809581251255267217579005664866343934804983230630969265572210987472272300649135311761575607402790428568533313251592522365579357773605405436642927255916766404270157939415733492652524874194332030227091147145804135995183929842744088715223180754496576744306480566764095341940775916061408713796636869154535508038386245995924560861136141436917310854314972496840748734146341305242971872550077751141741405710509687779486225406211404115936940432198840148382742222465287474507247178944241764727555134246487429921645590837767168213345628739967141531418567443994573920100438869427700810212158659269774291346526123774350345368308979048996624023049465136087923021040415452868859808628891248937461929237935661747731816784189918039355447924776093938919458369725678041438698510667756582617257863816198827107816939044974788416743867887303847005541255804056419567521853333584089946768054607453284168287701514276623928996866191745507204439937717918802299524468671356542546728803522245009860673054079057588777201609963617503867693165938560655860454148924865003937304034067922736287973442620289264192906064051773637774764277709835013345007336615308903684248744452446768183643163869803458707580162531099308216940379817215679023627377322470118476698109956657131212932127986914670591046157592042236674971154883605279161406384047013083154535622528319593071338699696650069423225584915547255196331405958806068447908929723322269587728987828720543402192471712768619215768382447713421473285666946320796916797597515848114870193885769464244734573574361770174448093231481593780663985606982936014801155292761888224648103338141678752887111772581128421636568128826445150921779096515744161067503017592503660881365416393349992883251855298967903818103151299191755788697419476167930112730948409771403262124364949210175906589005218021549015255812935110530492180628165186980873843106079108463095886623680501793857460571272747205320986517196352314246034176235769742334280596623438650486159355581428826766769236591452938744583101720471487833500028091773711747033514435570629676199660265768960003168978712179146420742294087902907356450769727036378841083245856412446343102869812340914076914451571825409927208902407440843494013538525551913347643109637147478562591042333064549089159444503437430204483111944695087480069048155052257767463129773942203128991725364954814633881674950549439219670222849262028377629485297140601583618113566832751458685579529288405823111270466799100496815650471931572034844460002287715115806410932455118725384563623637166603402111505041770428005736011155326441689891138941379742937751500841350702388082419805338036452167136792108497375215384943894634879959943045788454155043764424422973439648286081186948550987492143874891926371944973381672602984617373076669814577312086712519328057905911785654547476662811442079848192368869306267343079064758635102217962445999908552193655650388195485146290826784627767235021620935843250646087712706939526893902742088637359453679924136367256514566462923821877180329731541115527318552137732231567098644739669474251214226740617870635706839392323177943242029013527486461317651318067056308745848269415276193335648127339111010011654309977243311016668118176271302768225171946586162971105680597654780335900598724955218911305353647329881100481611337626705446267124304951764503895540564345331155372840217599866268645648359800285858156330124587086415383952255886331889692322698921106488188217316878634045487997306145086859777803980514440122161725656628910197597992823483550343858794085749233874018230072690597162400463861077792076164964435423203663001312710021257023311179277779424918406564751864794898393042679638215842817234399424812380131854357362961177737618015874413612072369952205934569848344539825628361990617187936587021966128175658151223911636324231979857734599956096977370849071378963064483466309366442790092421751504580504842870204485055366364328808727073651698874575394447679221062894626564028874839008818999576777060289570583709163180524409501198741697938165386783248194775756349891336115419089668565242172545593915167489541727259402419110235792768822482992536303113192857110186033880884806156898531955322070913453682641847880603292587174410328574690353939374313135699352774166269746662562182723339042492946771469958197002731248120785890930619871040719305385669828042439289128772933167869004539804471615469865185371036360894438627319197120830507615318721971482749698999515968629785873158022889012714449523122016007083971354884132571533916767376506087604520055718722884364036335255927540725191096321349426367200216845422001989254515668407658748315806407548714281765704560190637757349977672697950259611311357565374373190620359670080878547635308430310298137539884058472073681145743182317255953451044216482981508265519198475177278529854872466479876221479622277001710364540719934758984357623591185416062100900194682045448397216906172380275019244276496117986341065713645543956678390483290651257731444149809281767743263079059417460277992344035235658054377958224892292302457703711351740279139513380545935064626260944296973323507849482969612274541880349522633205113022846614548942420687215627005028171876080790427292716362209916699686751253773564971425387800203105258569856563550862705979606009937820094403626204102628027429406416504002094323031300932481423513336421330036526841971769161586574655267840738940888990117337766673088055700196824460673804351324598452350108880795851427299046288565013637924617897877447437814617671505722199111372329143837346978261934631706955950736955940815337915056957137829455769579052703131113238559441335462490492700033168346564092851215350032215519310545385956345664093974497090715833613611270933884889617155746126563635440716564894997350187518466543177987536053747298697273810489283294536800765454376673799685154505911837298069060045935821790928123804614891694275758912689204664220204831441559419001622681867523737317684311090889456677626226934821430685230309296509030991726176671390713041953294910460333205620035568738653857078571395574403735909994906190750523186499970638951648468565289675441221442927671148267274669957742099636535233818827712861539583890707766582330564293426263514702933058587828370943942209937403340986146368816847321154201179937499735671756272993229170100025036061966779971362896650137634136635546918575094941963192980369634992100165424807413427989587655192965156986686369974365911395666679332642210799689785737977357783739059401039690242694877303462362486281430924163950051117476865891367046757886409196816857507283802054854333042846406929088205336686858495476165634557886890014913139652163347767125558283340260908477952543418223895694296762777114760084848220078437831765761025619961530344033607436055379560515911028840095948216807170848486507997870373081339533252061435409203225803443095460845472200849846585598436947049867288562128614685127422089342328357204757136474179649377603181296810615100180771691569051677780992896082432096315709291965725638360917081239458630985750366246714755853114476929645040074308750544298037303214829582486315212814172052007288714743367716041994102090426987545033204870258190456772056463304301972393517248307614674757511630296052344768867412137881044432479704542303261369473213699175461255762050956420084769235890903215691065596810926821675485888732796307805976174184048567042854678319515954985874590834417994155926019950159120616255169367698312895017290523335155043115843159465884188464133664041327997698814774401865146791274708355648090245841065928805153362118710146811304629784093553298973810493340135048164881600533357713830149016350135493479522082664718879171105476816290266084227363799570167418735376881935169564018380413563081585260170585153299702574084563974245153185210585745725575962672894196846152272762313231759380791963709428697329011873999260106195566837014502554956679216324546054394897454385851793866529231180656959491320902309222346970509383358786324784202911565889243407599376609591844848060448695441969402819027412294076379975232695793471638930639693951009760381561907508036497197595418840349229119185767058089486877490136618539535223824424212955503617826344852007560854082864213383361478920970032717788880928364537268482548906838368436576264975533798736855547283628785822330565103618114087353344226377914655233261820201883926579821167826353772238233435095587237986369747583948143439794440964196493839006482189035756049935610064983722261323768596855811069947498783084131849636304294051674966804538407748178260580348127989255218918658269062873333359721153304655070972692356572342691565122701752142290098673045814690641815157274809651264118582368388704736440610196442732289057397384957470343168434527960804818432764387740754890503325241780995459616651667067963753181342425850142814451331750842723095884813475036813028750030611522044115784198911565390478742320226581342478091069334984154483322920432181184623629647147815772064720029128960120574697432154178456312740181793516587287559006488787698920157365647551184392474114030843979574453497962490027064085212198131389976222508839186008506847307850857232618586645947609624199682736380547208096893383485822937141931239489753033185016575291250143569833480395884807883586596950550258844282330600149230787677323744845086528496208207212973568413965364576707674106983358156831851723665801643978151093255060114677665458427165887125766375127757060755135537486443874728710943307476650381240377208405619178564795207820916363640501212594911076551129040922985448900779610617105977374643226925848434202945168175477205719395667877409252505033351859570123536978214119234426293000244797317744203314685269130767554503415670342692466332240113655814751494245163359714261658244381424374457966864665226200952903257373205278947471945398094060849240825573745348601348400376726910288272594637297908029663192248715034980036690787817060471949400558363356549534832601488955110463078096129259223074592890238674681940412894778241338321514243119257031028096847511539192776572438704250915616584347346008357095588575434623011493938041637847870286087703782386813603126329354951894230714357576443486568767309234610357086212764906938209058067005052113462369360338396041350622889409985613903285902956146817929173238624716178908817007937976206837867870341829511717840090428846841735134298698777732712322194759599297337220644999334624874207653003232583806710763235226743788208785970853816347476977877689680806788030244921904839082859369618065304931421035870492884744350304446240566973504241881725021688587977618335126766400299162421946182482966672244812282516672381293737366495433676483346211113331960546493585198571193709688471436621882764067131267022866097962216294532297456515864917665932471371704345332521380346743554062252378687931763290385793103343865294243458942035099835179740907402358413047880297650925629629876343399098731878842970827621937504600989881529882070269610949899461820092678190684996711687994405714299941544701941624245070891649402056197650429816524438307799651759077825618738566071250986013891211509981974877970943568653270263219113963011595624619985790141433129537320950148638866394456960304107386778467507857261377392959190244994277320127020523439510597312466652757239630660933968581136045488972652857183456716848328059973425508277578356792974966632918853466282683653357884767728762866633316912455101333789709889340315559654123906085155884888511984391161643651877538898055597847488678164987166911946352279951259836525711684689113199981420925273384052126163473112597241023644904600058084567711505491756033188197793858099051722399267244119020135392497672680605781361032575768049355313712714451020695752498708566516070857045319035311092707398221312000331081349095573188177344667214332905359333791147619254894516832519385355770556327399515007763982052344981805480790487428766643328871217011295678278168294391434324975999834334274360247467827152637918098610432144998718362898088915562149775488582890123266862861457938151543689582303518484918927906362474054532118206114701045158951792127954845251153506164894875628177500144244540471449214900849335765438481136255774511163360901827459627321397722296292419650038467105171532521420517156622728148840994351502658446263733860333643556609646477872568040586162691353595171240117573572227350068788953112230253338178266981121525595285039650688384957791448838679311714493946815949131795020322103996680503850046800725108906882136484446716487234856187523716856475482788562868595246600290575667797245126336938015413504301215934775729264142230456256824677826058417863768790214431901400825527200841048391613353260640102292558169532439193767562209915211886715967235036049837980834083704222618089958249883549986996592321987494314218921910045003247706482862338103478370113563065148460566916197228222211221166500896874101779582671336322077484056053905021372004874518599939768124681121397220125162111182430504327573835918703950542337898980982472916343204532734604362187022490936450981064010820514767626892544945566528056825048778920405319113140215109926323076534881713518488237573108654427851216958928408885300759889913682009286532359058503678417658869895361403724131509117405047063406169323007521313393475002381937247549388277294378569357081656532130242654791034192822386110563632205694588331102371851123494598002316571809520784822695923224777640798138153716194602348438794389773944944743990926832338361805567100589860457589685303014097998972127922091889038487843204450897632779885809969042223657382766181921101434310167618533704104114276376748649181719221888773706267492630563299931651918833985337094283017761354205024184218644182251694996278058270912075788909054125918626179645691171094041791797289341910394238646423033819237105407320944467488321356145803235613288502899536205064490474798354057808856871294775468367701189691860657899296985136488808180026237906550443380245472674156378749529291238181671155405929903110792115496982092748756911662696740829063090999320687114850103497345313150277924144280704318601268831636217900550277697666110008002573597895029249050874177168507145176133831422533078817683622395581425770652273688439090415881530981352228307168307769428250328665363353151797747736368013804936005262493941193072923562821120331342379683372625717227398851933212700412026749986860245291450237878811785478413414010038391136105258726643214650812429273520895166921111802832421267233284373712111815119579245058360041105469065657411866487040215070679286736115900305509934431152662977027745522420038750033392728053930100646334052953469075332230331959946535241494048859825241403718337960449650192946872061152822216510494181736119585341040476297945511247112522159608248043617597788264943625754546621795301900025735954752796768632395814625288880353545969414264561036176822348379007228110640497748928230338250083035759326854324305172125493354629091431942866121853801462679378278976387066873036651898920660198519011372622861314566489300689281314671860953394857061607918976205739710887486522540292488053662061934590264868291589902197821004597179911073795805881847132681745477062677695991986661768745121937247359851694444631933278441763318878783413355359969458159442196292411781112340766385820931450905043831816454623994993661132071594964769715257245906715722583504423241206703498648903277002493578799951301963841093716924469729083819311165747525718269788856417632537497175548258696471720561207331742737673898978102640204058646483826917772618660767757395737606198036317607251747373940342049563141069582022539190284498369019452035125050859419470066304683240395354053827846944810380675130252804158848132742458562956096103403317933005908281888303320843164085587208322843819454672761851645857334606176101356879671511846963942027348244455853124686455073342343580316935108826953610402207476883339838501863981552858367165598101806892318492757582847791411734145016377444455504534067833364171273606806994816514190235077136778964721200167726519819524763941705795932389091752251687260078342318128606209086154509942205131038395126962081626668430944523548562362377346749871754503502720293661920052111921716669400035349100146353620965733212795871411056084030515809705195604742341288657532569841922282971519164341036939584836802149689409688348144388493635995024590590748181157821152388612648967852976387932691142720840098223592633366317787064252137131804012571104086194474998380997992339137406358860901477461248194303554369731303724765427966374043156370780163773758521510288601201753179210100418481720996448445280457058754555196048956240370977559512494734062066118144083644383309942187631449572107938811651730484286476227194549604942404438424674907292988244475643090436319809003351748204278559671213344115421436312687695588400902272837488207739458327374771864728403641873191841362681569930121247473096595076738902019162307047323980232273503135411365569508810499401731578032497015031819185322888257946161033291430252711505052986790739815881076517455276671263473009628880178359014900409366695282234126281546829536532696219446165023559575703551682817154233008773222988774776166152311164439422139892682364859411228340438725790926847242186788152207321728037269591429371950115941403977846606398052141422756948776449650958849827189749204136444840828680319395682460959558725629313439025366414771415944327370295417576479922699400446877016741416846087571419146194293249741902524653425500851246094122023387003119277083636082456160077946004096870249535606661625809235382277778730073235400191426027159080013865332338187906057049259891014348669462067476791334062045973633150893760115727551584744682269349249104637247553663575760876980060473223334504973561069390320405357743101831593394198913890890361279199775440238438086613411341424161634622425663104999675606746789250555122898692532766987810265469779862965798358522465032150077311774607739833230657804899143082424702853624209561004679221653666266235977601113362378245963972654268960992971682044974386208431709585367291659285858010919973497301736852325619614040719772950744323911547441292511226619773182047543928149070290789199962559993289135307914466794197243688739680273084446853608141580950456524955821810793371023433960446960451840327638051415106361529107199376997890681275919209115914766225773235296096418441142523672445748275662783613672502792983100853159698900271461572858735533778433109212818528707357827128451823727788247012809803466122387765452684632458286651025593214189398920724412769869645367150105266031739753429732533335685169014292547502163490781898749519566917786918575123077494354772404427432335615476456881204137735124074564851255480310059790404138152209202328568384203829050855495606961714700809998008496980037144910723876073321032425858924428135768070068766199836374072839151144936001637235230500016990142359559821676336823161634727383093634836241567458401987421252646996940313881521327008990675888831219071707407344285201058770185559263777435704364052939763717876443134447630332396083258246998618051327000078383776320278006495777806964969433362795096620239725791276223143026659551997923489192869257310730742527608629787140662064335895929287487393495677062722226981495103106232498740304407441383054827427951525731373619481721861806946191350832323248191512860515928439076510875876473164380444366345086081631662846267919727493584757170519868547658913367601745642879494062547790308273259741756282486185752778476493988139466767459372838289716929343991354160755361409685439065160480225108895656305417567401139779381346790422539088943032212894931631105657917830803785237803775678334129753286504665093773690177316285770634589510030513024284539345086066523990446792783781579448539603035898148856852319293544376223468848748155683897793103734790329234051087298605320809228520680639827071203006688445875971094492840018904600283976120598208063695462214463679320534169202355378586422374803725096471362641711259024226977865076933068471360868978904880636276791830401825424395090015916244534854679160799019012500800322528834237842777985511496889478748006844596179711301813536051760358259608396412073121433634876217622184338438618023452870865269224022343500810578362839389218280956631103771349030643197498343375235979744280266234731451645307534263077575390222602032540336663399819232832761205377791563877680630805982135422878773482314851396488230926514860995791882518077214895866409844053647956231183660829160875004574265774051889769481412362489854901760751393626274471000678090061513036257579024508533896433981930200739202617419621238193595904389541768606996164222827359024029964187996855894247296605550698885555603552383483418366458091438089237823953448515281220740106406341866037076055519278926689982195407257187806181936072197140178079061235346197450163268595659280560803153090914800396003149077412295586572506106273802377026145592453167820092740512022674413528858531044251247073756879625167158870843088082171202654858996439141117379280069899017487794921980634381763470718089462313591191741431922694804997352115677288639374219425432316662749002208135701244081920786109895665169517955482250432887588576518239943697785190389525292665227760231881927655027008048353940699341432745061976415206816356593714183325725751768507388971087200500272185427097421426590498261835568262949758805680959475514789875648700263493203131966179226223566577819388014450122438654312302140815918479592606697757362051958264470862025552407352062157516885079994848011381479897228544709365594041575839063834119677168508518670006877427045761784370013810506265045753954192558282190247856898576764244495721916301051102637337980601164856447865955528976570845230337438411887939034074773180184448867924050462120969178212948528830529172913006606931189278579046057490461654517944006005350404588358892617688377331031264996810106200714444024649963165876649155624076325183741853849148881802375886277648329288151252245922825960028332496805564393369401961984776410735511558124955473555303844516545877923962889664298400469179000888929720971089412127516337351251377399395459704883915253936992230439974915432034357268151139527398224457261383567847603158967647136611908888242163159275857499638345218590030749023909721854280672147379496007949998752832558244567856334596132307074964450514113530374604750006882175752604064742762339507094798600097695544139281332276623274141234595070670921801466094537280759842989755722722436461585963319544439307807061627717078648409608956853515785261511915687399336992887350513015923655125645116550677802191642556856752261685507769428988259622016268087173362380636749980383535872477505357531991220064208639009730983971483200465177592758345228214549092127599137512112444263260014415145645182994860958599499583224035584639824826551319459099042474981206648518386119148014810510110070529183708825516295957238084069983166097243527074662683575614208136283341115959676446454333956653385875002500892091625241723937966284190325164183465300958074154311876688313498602795103935452173392194577113518010907154585280629200846530105638565444881066310955204617910401345408722288883580754768941240985102156665110951365172493128667490761719810305021233009812957316284779515772167735149147931474963497047841047589633979899150607506113076051993064838315761550497575252773240664310103118011650020412138118203294810920073071516656521892126201630973920829094481395441115257980115690112782342410589362214671818363164098858696419588322062396521334115486424529684527139267609522587302052974156700695912066450869519261273113732175570654479081908202589797544745654802093416275406623584846206129867816881781721720596194198988800416305938662341709166948822127916749518630054366214638623506278689713051304796986954375830693863233635136242755347011349765329395927624728803125616068002821745388293537163277113662874981711782454800594380999297117963112626464714260676838726013806333021081218523176758188487223319640306793764671279494738356940490660215855685238433330012556248697895984355175431298703280948509870200655595863283373633799604107008979687914735537002140088533160561690595758045667948487105680806744968336446585532055207506586912677157548399968643892073329853811254195094938097228476788365122853794703378383083596551427096483607458409886860447512367527191582389583804388948382400087347572591816722810589120193515632064616619388528749971806422944787430513972097651012002076487775639517033916945882670482238251453026199686682290275611257725336846039467299949854625394955264599757307664560423236257433564538380947102267574815989437561298419596279878123975403030656151064529485902804011187436943716423986230453224149852098174897621984249795366031607638980420460492983163943387621451624281749851246866720833786024873368197935067877612382902746799134403862427878815461733109071635432713731115744185119598767660770585075671921606756547139670716806532311425855652877356288047816378702962711378391340418222208286493339661808148284543747006726723165246883269914390135015794019611134175490030572813152322848879586633817611311913491436157659184271885875644085175644096211885453378332752212799790674947820843792813079190027326841906650069308101707923853532123172851098521804051689588579442050834791119087673341662633762918793604567157702291020223137757810337110007700646975158061608561541321027523230288475426626927964711023272742220983449319677705822107384604475235909034208323917026376193966653994222070635473533732236781608261597656973100446290061424894839045834923411052243106129045744162680940275717118449510358744450474168896424694849389110256843364374471015767347144458964886248102517424707483112441164632154860038463793325988811850233351243688795592166460965693817525554738462598916473465213158281409661358316906828835207772392416131320858944473614164305316219432774531437068099375956525385658959886020713764809561429399596537011273994989072311501658790757459391816714237904367719022880608718240730410300681603878832931602185324256230363538968848234699019213563618188678367126520944544182372920909313345026586374617471984398778942172555475828618118691385354792690527182480985749041509932401050645056412668785010587640209376221553900822560901868553527123336604846679750246845722783102266487559055017138602777482714688701204390628473421582497268436714871694766386327611469622582693796938395839244952239927658822365260237749789818138034798433484544029641813926562867547417111169447679308367213644958103109041823512471365815271890194604818687900596784157713213945149310348543140027234264898489120248225464903620138500564198902307170551629273080453288305572581538132656537215656112788652824568567489275563154868979483301520829204206752938551421024727569979736157048926551737760727670784258170612660632135861984472847416348476769822327494264968731329175898410026947634992809640958832316915720322046263844491856363985380769959325421833971173340737505803379491288955980396743458411787233334122910757988881256757555662884823104757314698361833607460822691076957097000023371877029460931285950370698218319261980105733643440129859406916189286915445092216849169257299364309961409729265764978794608521567823227072825334200362384293187987106535207923979357871900626342930452481978581639450565514606574796081998673093780669552502764283568096135295780677146102571673327026701068402384747090928021182788067291273510617588022291265926655426934115169752921460123955766644478666688207050251792743578217752727550446812372713098948205751995613546648521719471414026944603807987070643284666728061685177961097555179456694165416186632763958648215636302757689574643623738897219567192747465357686816106036378363618535174053915302511099104055684355285486739988261783707417713728326215702044254983646197476198315281833196599179751701815505515962118231324397239556498261888004406646683782210117748136056389980978209733743052456226382389201806640233409463501180821494835551529294261993508361032350433138186730185696858331636684316579613172976803840660727191664244972408866939624279563558824217685257976949057948666641970951085314754017689813852186227715848456298667653662741523079163423446586842811275853748593182499168275635328404375624782719458635459346235099023860045220023725480323917428752812725469936838154553179073031460574161489508159342904868768284998330470040169249036365799094657699438953404063256311562906158298448082766826122212237926751889182990933693680583850004264234472203712435176797449455803223507178941925995401680707635693430930792369757918280300502099846191614457443103651643995817149172965673406384924448776399369434387951182487163946406239285870489965228583611342182113713614409829104315691229855680325656010326854649556849039745954971350287496902342444545703145393022535445079119120164759705748195859110007422375907368520779622454402445737946679794757902137130693084629062144219406564749273582680587145692907885939209763992494929610623263807548541944789946314131169020232385859304834650346238404586992134382232720180570756799906280524377094126110927829013134654093924125943629490002777708494518794244329264986794475913698335533544181076905671577015194036611990620217586030914687984726074640440184826156540414558482898443676616821885345036574171658121123223477447943781384004537374718173588812174514536948379806013211756635643457936801987762600035771005073564762630141475371034101132544204203198554791250054724757090291214121056033593185206314401729592068886317745299636965501215946454886520294225166775692099244910668296792412597358474256266041441829322497154298455498209138593080565135169138702083581200546763595632769121715344003877463685075450762088504404116444765788666730057615041818848687349494887728583092250418203968292247900993126909926718244463318370947671243576941190270218369413312374442400216113464422042292115920344803295671583010594655343366761383901123388105371766611253525811026013481351428325292752401951915244337831904891940616870555633406071323551083670379576843547413825866306948077107213471766368040537964866264668271157382698823059526862691921995046185365044085089664243052003216121331081773746763299605292388349081305505278410527925151000584925217421314048951702326020492504348747412357315127938576467281473755656671793947816308815017782251525616505604157922111485971012087421899254988413102770384360480450644253075732996179256336529332920979484933050113229745646251610251834190391441532533180188014404154589383367358478320252315407265722656438422732720839801236805326780532152825842775824478712913271030004932443153592667539866170647341645986243301675959001507709690207661054514886683174743674729540861294685474185746364270648384150678716414544865773102780011338207190650868842471984181188666731446486249414708659536366882494668722390935516650732824787646749914216552237153733419786559475949494496427833097139864680490577734892267762039684295468866191579047405922454656636805553717686870043815937364825919059757689538705774348700849713246594154638556152247659791154237821891428280021103284932475904808168015081787656881546729071091374986315325423354300514328266659614658709818007333231643780756654451981100126013027545481615512844557066029759905375119732671335764365271806913257477936186333819992702488808444915703299655653115063233878345518086947329742980939198119014341291881869030453765622105283032433795789614468490002915818876064880517443013106958512399662221675422153199113984584555897977973569105472736386243036529457904685949291260713068277139463099221181375503707227135365940160613666100445754364160202459026179096148229607105969195396600782124338685089302913899396728529785121646516642430572122487988408247192893308546810521673867691130153773513696740055557724626106894395453800878582393180072917562876247131831171463462173544432643161685843989093832865851395822274764605378327825080374260377693023317013499375306828520054150193225057442199989455287572636904842470598652882915245070458434566845362081696583394765074404844393188100070100958754231938522488998529515637242612715801044772202955993828958235112268277755173647849515193655986539794853130063808078959636634947490581897218573749624543453056183904660468337598118513841293841997965227204826124520540641191061935565716183624788101300965953441876777510648849790687400372963067838539674521507310238343790920264700039233173776470430341143867594190354088694467642727817864280248300471360068327629979356472782106159229880830892189388075039394735584665915032896669868861854313138316014220494482332391768123680247747055765233739914654492854224364293363473676718034244171449810367503582848094399009966633951000592036932125540730897249256197475146144551824779009380866002820535766782024101757993804762463880699128608289162239142466300169638854780653122487812959834710918948077476467692780539947490671084373751998032838842349740216273919896250204342957129362683138010180980392315321238759301716713514145421636630806090605904598577026757272566824461239331501694672961620606269641599867998889828019901846979183979088790731155127574233045966357783686259815662304949600121771245069440345382600180905475886701673851907155419546545445895743649194913149814380075066768318572701491613302849874548144886623143912671921991356106466159875779275715482723865027380235119595329985942720377523686052227504684438652451469236704197927584976501954062832164384282134748532669662656644035498097493424258995759407778331386599233880096598057868657994832567698078570738327931052835879430367733829518766119837723212594546820608300260595453231522956910491973224218863468787358136578391149458848742273198810748496846425751414232160030313097853451187265927295880550488088975585007557407418448518468572567274810420594508793776482747117097422360648603011222525209718484328956615639954814482277797642257642714902091420689116057555200275797817941506410603133697996195528128133684440927376872769239813495765884689373652357322788263457488103717293153694804298216053412505283785501162927113373896960462348575195175718524139900050405031695158764640295519626707784984905660063799748359143129676138455692694086505308701363912488388572578046540836491332953282177561872701045418311178331247488905551663689620964742689703013087210431696975359351512129162095515931477267874391055001298904201314189432791014817557752318913818607928833046998972849500002675110457025097619063833112007353758270422288512241822349100684000863894043153401747899061416206349204512676539704400176147336801336585951271419097286618390667631315333497323374131909082958727880794627375261267478933897548403625462578445364478011891786771609818517677187338051525134504486372370940958878095733790876605597900467529967723229897897482450470806572101671346324144529481778138119298618278515263832227798142766315457086094667766988141437763444806310930177945908566355689362687129442084943611181714531830760549634396115951702206809333549532869677981519699527526211999828206414664457763010429407617814674793314193092591048101489480976087909126326360792416405915948475436022306365457018494790161699391556429282858304282686075692414320384051400811453438824528006352447272148018792020732031580539118995240731889226785893366282032484755040848532900156980891893570492619246900022612606269591652233134981404521469931213813624337194928936497554214492336060310504086217851398975472284423530457260542067855875935653721880205492902775494620146547553236023515880991220144214254742031503764613967647520094578662038257972768215457980296774536990241882243694497183096890515174403600447888868216803672087207548396683382281043818535459891003906964044134341641249176322777832228541718287375682490192185843819121214696085658434527619916721264296131370548525720294978473636710877055861733286405162202582792996185391345290025386592116765801651151968813603033491975615820898727419386825728306793996334800114635624327684021413724151994645547494132085351582117099899371537139727269594350350397755771589231831206297560227064198908361617874401151874338753327903821070309290070843650763044790230391395001493830213680260205796963541407015988460945116776543648985354843649960042354251613116810414886538895349811182488614761337074356804656011391022679256669224748325524447756553685976710197616288408711382402703052582041339866261613539041066981796529591894093192359323738633854264700713778072032307330623159736824580163879851636412811959292037726637574047489314091450031754585976714666371200033339591229396675780866501757300424470332562406506382712955599368698183206865085308092665452999719172149050655411817884448796147085587014548929197193670266098408851304009417220192776464544475444827870473251546779114652148641624472150473525116383160884490864458350208841319238813894578917728343188889115431064343158900767342855430414843308862569463597619482343055921747908745096741474358788677007679869774846045971126007086657467679761041166169824787528983758077294087428477706671992529944457104787349116150581069234946886308841826596951516111927713050213816468356908433593082057901499860062685474545008064146167885886314171911603148682579196520406832146216142307218616910091778640706430691107614943384478156780146599661903281562622276273642600728954393266161533408661049860788222336333927664254576548940352987719530824017478144336250770399668881951665153730008581779553507354879641517867997673682298311387858173772989970662505765309477648639676911755136005565083714291793364318589926907502534382409056641232508385892807047648920986834774505216611599852631801155234125229638768348389907238152706951891711882865787736043308753346819530061917073805853483801382858553652892144002085073388484448036782127365775628632198128911721726250882287064476974386493838789122146654514761029719348354089587177361092170385938948245640822677864484500421381804915223198594348407271818706159760584511249979312800695749314498454784364508464111711751343030228521114065359774333311669208853853643473858390173183799949094189723495791181082862871286478618388080314958072928398581732564009827316581550770486583971986019974658174086564337271659777708648483474534138474603477648303254290682806564314968025579169116551854378104518372054160921390648056497893915681008679715311470930431784468016269790373843259491876427797810002399026542267717406549737689000109559193139435675121483900013004123786793418646415110434059404429231585570919217407393091839077754591495949292111498768546188833102418041555771609883308369562487040002642517818113757646271980024244879130703064948015696374441585525973709959716879262545753095104406387686794882061299111749440411195649572730582942105816478295395774012367478996777735353571556795416674636925790708333156897361751473519088689030135090679168521972710227681527472248330346068312396704034973529082052677894077886342303372680905574303111500176250416363341592466843054299384011463543765237854154923310718493195420672953812811144184173475586564293350132134546357921526542919082243875533485274876979157561266683720017852892665391223986097541203641983837339462906456610384737197940755939418478856618870810926794462359106910548191174333882671345583151158968990050245888960076113518989076214805044815559573264561927446509019335580338909299858660856752428692952415373548113806682777379917963907703668766237512817800538218617307572130239654838607832353364172775631662447058423629558154417847934647054835207593989995530406582727853569625023592109944570262981595289716562467144601574787251672344346238916399142778258163198172844824501328701036078096092084457984416925721022943055139387318889317004903834775859311835700187327684833289309964261080926208172764930681330228132352076545578917949757693223030725208392223865224988843164030138859841240363737177925310843082377192278251898109554680587275792606500875956594467803388964672230596649193400564401834470506678032150705638316893372078025503092594103097942844283942503458106887952579226180434136571652495183767918256678203135069266193646106858590791180768366177676396146261086934831819032906553959765894691616986386404982973328787005900444264515102191224418948233996305768041597415649492016504305381153290915581761117315907609065909508113436096766477955636255758525829864058847845853886319759114446233819138467449281656263979220376629622411463206484784679739147692682527990360472153514193820483558357417006792738846846235111701954060700070691832961989315220480161445311783426995080745037083717917843969179265338885801856535363809577547275261419827455715276955872097854727699699835129069943493046947765201188712213121712692627871667988405139517748059018900937903489521445882142439371211755255846985129093390960646020362024683837164202397689398138656809721149078443879783456171319749642645954598572857215615154613893667936807866883731764464055519680501062956096295715665427081448045509860644486333369332786672172505651903526053628531501640539779810001754167195950145283473958596922758441089371820205632999058398381009959211283280353774783541006130057708838014787935829945319079892242693731895322593043346025412897745860884476657469936858462011673714380200836922217170642536322956015029227794583810179033921353393787989445931989120126666186937508648867981379352682592650839199529205495494582798874280956354182187612592769598294209333115630476996728228604101778293912126373400929440575198452133896281810346881149716993588235535867994280425862016305781064569561397499137354913705771892795611579323650670499650198862634599610759277246310388122286717268806459555586816492625746740725332515831804270479840476664628220078680312447403457437610300943414701678128384704196616742019917266352875895884517063865780616478695546071619381853237249318804461866939308208501139497202305438945766549508130401240482482085131310167073253467782419936357323217473886713773352294245632921624223659182699320542836750463790116931528297536546994977533670983970507387830289429296812873285923560175335645037705660757705385095881544475440099250608767122431576736838754017476349256582004922510165833002552180038512393166830793414441592651013397622806186414281245611975952268838087450695802630484256261199505254846729825775702662956542265070847249092288012261773611827811880667946096810270203445995960194258763309464294350991771767431676320085997330985570313782697098681378999799577368746396903906674934065568291981386629742760006465042157300459654663213007722337481253499819791641826066433906137611076903170947991871394773634275984404753490178649718109882100410634884771203556654505327494512626269053018267538335795883433198587213243329553203610239353321806814500432559685441990325615303489587346770722318022297285538406413785464203976371689969548005409829990889927021977923751446690304222412450036449884441341622579578885828757642728452921572355449918277695668608584317075572291962168835708539900853347654987509690324756380699501674504467810891609747332041632344001123843273743514190869645598755290851839787934547262234781785984639447215669026768882727853931336066229435244700585470801247551968156329323639432589734365150638260088347526605900335374360801573784199206367194370774311199453894224574926357530492587146384513929243088317970757385878414211556390175375970931168538625942682951082090887962667504461030341592667060269264137180058337458509183870001601520361476659201006279882125558539948969025391011372703988232641649299308334748854466517251168282435276433382832229083185629252633521832834421979115585762036564250626520756826494986352607583756175349971103669520846203419722231430870326755294394243467906447241741902532747613565893603741618936044128470345297975118705722799840355640578116488169955667544807100376257648022280276634620068859642703656742535196911687504836969654190385155069943666006222034576372392329838088479792585972583581440010856131961959066520328622359058516452511178880864737985019395221186987123469868306542742535634413138918888806633297940227745105779881873116783844792198936497942717513913900930654845823872986740453353353036116372867433681111533390140136780027058332285363699918712807047642293048122908162365519664786069644382917125261090995610281658717838038239924392990680913869976299303554223712641620166652912596417596404214923666623837058588098203824477291711758124962006297850579741841774559750763384220881765627601249051468122378139443086724511582913598105087485993005118541613330946319286686477571212051000181487553326109397240424807455868512521775819198918950704339414281598611281139308080460638033799892523775530304800590465577475418376597221837266397753631294557289257685623391160766657315481094631249267808655348459109078675066671200283164893070640599239283395422045014022701731444799026805044058858095282809189999094404505519283374885668326901298690448001610062798238213448211591410984830660804812545490403972614800089820126619262843058604256306246205820010467236805412102742697250292678191646666646219196745939715689729037966818758760902566958534780381689155841930012348785003714690078490389135025961858495199347615615927578347044522359567713999955704742432783510139091073801396949765217206482123799017279676046628613723888505085719393280392630760222109508773018647206529756415480884889762390509434968826311641855043204554587376046502335551112515168623637159308624040538687696590454071802304931479175894071559104839286407822989015455853024662538678787707722038831909676286121092873858702843413052793461066721089166044192479305127711019108168934447031386558098039019455966860802253149424919707998184600249165160822738445734616370875051839240468018513729586492170361125130215933299002806007408654103672569698771934250486122815935550587427317627108282983535750253017128661788337035758560819081528922155965435857189641507518443951386294883323941669845144121597970977801930321681185644079686619687458856671542056974139343881366308491879113032043319983736382835976678583138955363178139679748130435066694767688216822432483137957652736363959989449047431450554317153714140322303008946406219455363775974848635182878516023021678794352493372160480081838963485329868934736994967077656871258302437739826953361125590360187401377422876049140088597092032996611001967534757901361441335086525837465689142529883503189066072816241221446420994233772772225609595906080126330220430331719272096202346229695161101077243145276358237789237373297976672151199354134119116289952464503199876171536279212633496223747925971768129139493760271430017690459009195036136431732839287574264920514957797120350413024950061696024280765084607290141013768606875145543127645497216061047747831906328210630038985779644888226158084316529189882563298429358955532096511838535472190060546121641690984491472626398960986783681424612693206142197000524392688175718854353200508430160323588321757133524035384722765284431429132079498091523038438687586476478328947154886603298395433539805015255214403392514905518366151415335449426780592178811681036044392696973516906952641295491214812711197335015443924998219660090387473496843910197642682585733133755339447632368817581795103737139385951403382103430560186979543758393732710477875728557172682849245118023794383829901815337162488270347654770817870875117794327662715028407849321566898021950879529169101497575112971725843555213366953015731310604360294331315009389378012952629787868780989151299389679688896501276142384583382999822929090155602649088680503760276933177069795185974839921433318514662817792130183528765096757684896620753500232783806450489816334722475754530941175895537639199261759680196965572559220037049928554616146115667178949413362777299235469551434453410270884693161933748079226337946258749159379824049391129286294520390846639802921128367197949538544646085092472468815948954801470944612751918786989495841907112694553285081795707392854584690233851873093558433625401465604028665373129286052891886201737933726398751912014193050224441111633623207637169928342130593629881453661286745342287757921977381894220905086070287492750453279190046455622879294010165613099467039339763212191067602265203755170662338826868912549523480830741416324877527737487496276502769835410217301988316488565087379458420642447887014322092479473645765161539903558959039129481255226588540847548421991840794789859188715637118611805456198808049471264584643669727996689466523922493936558116857591506346707375507392458805745774799867358245740491203211460826923893536577621507392230117276232626144181626411352165103587376812792240931310647743682159124192116689574659431996682464257222775347764396904203267280329858452261427163143989625365291059321979147798611971908865293888270640120769181617705177894246071630388372361245497680546099673570588047947386394296345064590915330314275996773966931272948360956433762783530562718454150963129483423354803227429949264523976805730518886512767254730269411054046157177917381407848924761725433530918571582159142721959385883333166191582176527220793419677069002906755838621099625472820168436545190439822272424653881655402597024489765232885676640892597787719345095200875735003261145073021333054075720582568957506757420864645839446251020005683997224744998727470178416438795780031498696330436657357133654257554463483396077589760102770960288159078768455552836681850578752213870578918039064118935801588017144348187026727293865663424611648603602236821183162885802872679315125313159228156797406041439341996206307373029712021465748148186077732972697150572068421924255847453665417221286250829561867085840373392566450322163691727391344184544757763957124703016021917020652805298388458484332734331218932213407509896800746859474364711650190891542511526535488169659617546861840370814232505299927583271077708860301994807334624739511471573016807838038252433194124437817392963121667443830733609178576505980209676390251091581826949774886140864501030274943696765226576687917815204083495605900413279813550098738334080654725850684154258105938094204923679625237877534035602970623818921245291212135779995327409699988103592633418810972277153936079614473929328922680256668187290974679547468948218285036866095590459664773901082323305432231026034292011519038995730881162889380337346033920330258119975629667723041631134300013671543852426745110022541794772232044086528530870883557271806804073481806883901489941966688660084967726587637055053492524758507404935309326531646294542046876662444343237431089166755802140147121481645760536331368304050739634820673800648850625655079230645253711689096342675729372412612344978439281650543642156216268074027993518531147581562896967610664220961466219902955540366086180272518651099488397664749149253960475793098956763783225414009690645501201135391736425534608174590359483701217392326654346172381541554543705127747933754142973376821386209008434060536457754486310207678543756025161480008900327581029312948520281463276124167641654459884267451581084168873144608832052296603702229173530383116831763736711060587041558528029127734662759907105995311362665355212414136797939178630696424785845621801608949835854658206945713743132022496000840957832547076316126079734521680116933275893664667688578302136423579694076862989725854861580100409843945553358877317424139747893933203325598413647774535746054628133076818543870001367711308657148672473276961061738612086400939959682115869739642325655707790922200909386882719595317575721093565240299388694985069170853529842825267429573219906990692433089280907155617732959515389171530231446541871443013361149876374259277973262823031614096285764219796404314263827125453288613368785182161257606089831793240985569166564474484547883184932851256395211517219051447987050832203911027185563490786582584673202948829839297232128311963260585842990615577611823318863900003104456490991256625587440783196355102781725287598666648592436564996461729969082759410114693007155821747982350576109177428981205172986681378324372645802461411186125686579336208439728949807113791341082572984571703505564924890229253844270090537629229300158604837950889615917957407091239337244448424373286352023419418061820964724681440149105237933054008511738664985532841068132086953199484215310400705055653808424546049887311027722302858090094113692017612970719646978301180593278456321550673182493616321818206182863137692092426757903361709366543927049388098435671718958021594319815853917136802817959587837160305159742739945737520780078059965828304361565511558252836315861045516860883441975041777442612303189997540408318946247077716794391747541909815429438841189814991227519543325579434172735761469274213076221388333348114208592643887027636804853560404059359462183558472464905117828942535441531368700310391613139717638927007568511492020631390942299202128375015648964174626928120500556068770275686100695135131556387007769378445610811493731247363796850691633178238265921984092318286969081183254646657478121104199606794377068587258173982153576096922634143333489883946003332839900690325612020056418355108018703545785950303019588187485560866334406134086253363560412929555491342412859916164068293438524226033975082782506833297873442235596856775254298395753100586635486609071200387000437911177648085626282115440271272091385718319129870063844618743019620540835161409374968281325520165922952912513168039101670564139222295364975953486777922744636886978977669546426805279857994023764178620173586366371683322905364624036994065374374454711203968349968542978081852113709299403080398235567131991359003303161840906459204086484040014028329347825971278241292118151764840612067128553231162468626434197996657162663055100254241727885975700200626230838069118627063137536670786972817138629633214653349039552223341394978557636675952569354727597328799081982775705761082985963530128824019425661354838507550163314889499676407692809629562202836669932821101344771335569368506185842790517795623345529042268451192725961809855611308360230731054473649169079821975562867788143068085335755002220873861129679338978857059409616579886959771457971661477614549260146178778632827336335747189749246642440288768539267282684012744480563445428881528694030837083122626554580130475377237018960207546099258995692400770790163707670772783781209294280883814963184056683701439184766735009392004336788776118745026515798405844674592554735692763811959634839919065434947171557007627480056141544130583190809774763621168645527983178829926036809303823578565939691653489183911805913025583356140285868855777170930853545098233126756053370715426235973660335208847845696053706572723350240255083194342457051673504833846011152661584686714459293186525024670589431000294298832794764314155652256240608236105335832336249611747534528790799591624776196670904374422883458514266427571109704726657422262425637446964346013399965870876073463306301425268071501930071730845363074929565349850375289639378017393207265858568864768136295132016239428446109011760149452970781653865552462498971752308923423942743437532285408625768621529209853861687238352838052542218329025135416379169071114057986523650275595992197942648306214215630745505015101465036720793470813393017535292385341109356170788603479802866119610626143014295435156853117773526504999307176893175573755318880822544692291975319241685246283768918524717460320910370371544418373850879962476704675509406161169755969888191906948969173143010835928235596740545794003343354062194315465117031822901318001186863977065374105364879298075751445227975727226898594240890495986121386373806339815304483581136842305093561898732146186577975369382824490074181636152773048344722567418426104639686968689618846921530521316500842180763944287585736320925082112334069227851721575741292980817193238889859299646633445291135753774469636681388660388083136263381715821734189526252429416585147156523585197686980222842310621760559502181239030970179163798111529616768350319195793825898454519643677394580277407721083419382582928712888956290798782766665831089715716568883861631099839138386609628936578986263661789102811720649339106231984505429619625033336666217249322058034713089298282197215352589690456454541840464761446077609592690203775374632182229076392565228813268184782534596897454516447474342096307799979817606099583854312333707745156283396800078839997366859503815069058175119331544433604638178740371032804031489744876301913019248402241350238078493914676012347578250972909545798239635102963761588636400153358401204703979018175078375015741358665993591046447294756599409655656893232518923000045803600417928470367527426875934792520968868514539968460171402400140531532089977960256530096178385597939595131011400659155111818019386723779887596210526823520695498308431176448053693900199163961309508308332799563788757507932484550038894850634770430723814510249885225266384693726411588770241132220863111811509483027519181957117086684674165649958601613268983452371829366684168928588955388558042483911922891156480178509639061043645353066667526092262540760222971747065949135459132840856387724398578575695299720326049192660698306861898600882168144483853682756276880394773382114624145731482966007145110981449431931082831722760613737054584312975469168065821052322071952077026679510732128089209005816806391340489166370799055980682100812997109908835155977713333120515439395706192671816132673477989322510327060957300509667013265879334777149590530951728759257848746543844134139190320623160685835409906380356711928682396359455813027989342920220595783721802956441530646264546628132015499919237020206096580127330873059742496362494134862382863466281998339759626949404849650429363219161811640164862648464668900937345214716135156292134648281527755192086379178122922707177251872965195429730572024781756848430799095074090531967120302135328659473071995613634370889362388930335201314737606690753460760265063593083727969263655306845912718227677187514516703099438361867017669364199207348503499670492720481996451026304432359822283715935736532900828048266145718302987178882683761073231186992208207346519569363784119976224204114562229818361305482258289613948146371584145614144974860001464606065785150456644110854291725355648023828494704645064140697552813334849669756384051990571982861061754817245104188339701575283838807184489162754945755191267594936121640657237069894863434099586268800431240343540339764827324493913372290206674946129836825798745741353531663691562815263963161467832715471346631077108314059251116365683324381607613397390164276312573863398067511686641629779203138680005269864036709967811471442238916328236225643812188693742252563135291082742382354481140713253602490629014107622422638701785780147381544027283212597040958108090511782111224133418121533566569457871158565727641462192725846810083333255610761740081669988792977802577270020680407958551395262165484135835646243222624330540500712223918528288236935775490550601722976676819117876735249987552919753491295807958692376623343854914809672837226002251037032560136211788616787187400523110405183193286386070059868049905835298523324744190821844036139475389611801628108661611142873170156658106915589521233196066118653564806448922095756052371868814229212621597043464248286309678438723251561474915921806514151137170077664715137549198024384934017144874250958972258940810804416621447416127187022000213478955364983844562190770726118425919945023329759954744266248967604882954355556408458576812551789104789430214524353041324290532860249769540618808155077630106661861527384661036022529831012918908019340666927670583074837507523253583142541362995670605775458113045459248821924844376005610447074220502306283172158233033463701967470320010837498459591810736331694327295908569086544503192292451890971328485301960365784150119781405849987280664974870364526267960867097822054391579819349367818272596562781339999944050927392544698620714295002883486699361547755702776158207013109111161207298845620988494057164181797463282746719117915819440078887124018579734875354034841490236048097500278131194800045686162364162663430221712492031210486888977211239294136053070609544892246573504441195321909835460924763760213948396205178554104493565462475474701641891005757684595320792726237254699429191143249834687454133813994961504934192804171354689422531521962154562151036008842904122186923204029826973348259078432688120829920698377403409498599329065853440386088593685749326027371515253470403365325321200178223172657385651877144862664191536520517783562971120625574709650147178927686621133737524296969015822908459500126360851852274558897527276253163277626108873245428860934826006185472321410365629783095548334852984669439616396230548094696573326874066604000151701996322590273594397464477545890114797595717034465726483637780556646463233639192356681292655972144802453769695616590327292211952724525759461151236570776671441513223217876019290679578789860879239988973210390172785589090086349580906771490964278969918819590107299947541816640040357262719025377256843299470576855221371235454858829221502207515724639047875134113829277358001603287312059256046670711726245908439556564289503767018972822086333742621280229788063182429784355013169091928152157850374618129241823956216838191750831788544165317190992171621094239002806305700833304387148570216106280464027816447911192711257198828031724731507479355700407725217345086311656485565690395671199601091542270362829135897522951620585283439971997296834894924331814781400169099955755886494639740016291350211456775610867968959751742743808986860617541756014711501082356292205630353473630283305523759700831810210951936297388013721101926806193875781783582106924559446416630345709974373357986652967138038150993256271168522024096015795888224295918723849705674303513590255531160737572817733990593387976503502798953279323892897979767058429715439112598381805515057459444535524068366196207853172862804053693576061740731336895661870174048267617775527431517258011250596247789810297854166266739931263112513916871225005469676980359209110369866485224944185528801373902680816316583892638760606670853978600179939931104836582033155172529261813354089628753293242117956706239121039941477128062759561527430120262736241758444902710676738310631689729569287601517961757455189147897346960828565700293681524057062559244609998278329801362452442754799659476625781229634221815789442514598324326607364166104445089239522825929433827764264677595664669007241663330379802324678872630354727471143854165305516684459633053299944549234640046455308213715078076377515948908305583962731488502505471470248792721559916209199559561893529699007105038219120754182252925879359947709266149555833729549102553331326527540499722041059670638400155001237255441607713378658347037521689608538416895066740885624900817798611339850124375439381721109179478217108460206205774955951935233831019752668427587452215386847955340146250775126004309619464687184832695576985602609701616956786564347909217227180655837756055969906696009150128703552631185012715776008447041019067138984123702359715606549228878679005737997544299207844376823393759004857237426656476410635128880828770492164505334744731724917793320848227853075258367535449583665965093984594809390746675590157553995169208371939388816207590635689930811976773347146928743792357075666070376257150468158526810121699507752685276286682897884557096525128608243751279003470941578198182789746460243506686358506688096448117091866406670413386563748109065547950292590148651809709594252105593973004192380970304984739421612016481648333840334023173041826152997324004741986948847073002855528788106265667803864923718472598706196089848571326504248431751983823897983696336895372924273130526977651294282994218599690915335913202057990405932887651182734308057948581553979066900113928539434531828643091506811999600292553522076179441300774569500968884477817356939684911387813988169072592495205407074158566936228734286126330440515401389536739064028702138696370886538799333024350950020124014856827112458966723320911575529335376361339720584077295619846760964783812535943623713398958185262811223815790231035852749052835283581466243331383109600883130420746350188698048927201533062902422257207233790261121232848657264662431416833452752549453187459563856251683206745918692352361624317868807160977050120013319307859907670116669197576390293486825759516068663663888243299196000924271087970716815681038718232451765141194957467407873177640069407073501852838035087514340804486649131490378651496882975489953680607814239366428574649110734549534133576617605012117227992202060290906462921048118911722779391655148171612763345159303841684792918367222504626497108073421616168483822760544502426632242552404206058515754536838398399254011026292812030600394358663789297576740255656010276448493267290795611675585233254454378876397520634708815890222622243529910984702835259523880522583041342686650151633613437935570368885552761984808939809490296393130112838779149815938148921489076310919974964856871792503030208473089896728083540052675927154942101742637827144735338379058904787438852179019769636733040801178623280010556259644002142756570933293184157258255913246335796741971836357437381838372870811261640122851151843036343046483575615269809191806822815092272070008487784504849523323025007740741601362474112910134726395397929397827069488070580360160083278122679659386094457703154077118468415252170484170224455536440542880945967365424294479820190269202686612318188404370350668505536281392025089072533202464628643645979979628619662076296985047854102088581617670944553345527819755376536666158850929937374316285664334999616252644656262223792634489547375313205573025862173666344303388703775141176223021439379416833877814286942527944607965114976750604301286393055402333154194787587741321697270401076444573443607169846641304411545229161627288204744598020116677830748374894519421645511395565620208658963372122763288763883085301287885911581045264163146533187450591610635888288141175151043788960227901280104412076644367116309290939490585102237210621833668141810003461120257543734484507245891522996023607057937751379043880457756589286822876366371176241051263315293229433328174555611868595471641464233036376748738981091974746230311239998994806472629292150604997999405136013322123000264097644503185636816781816374581458840779422502103368783024878769841687713676165581998670898799993003736213713554956210899564622847238832763251593046198741552312120137017530796349979332294916921285372311374421115705340549135727867686987182698973284350980447481918571603750590915284526289169950756568502702164347896981566177437614368421029464224222321348155279853829092615679778675256627955693625531564062014894287726416111906509113194724247561031304422248529813038273672312103492682065430076088410162499592897486398233484129557291802861463699268250365225880758007541237399942133094186924858133508823605837389591424708191283613243938813523618978705064854829914834835183237378424810436678519651060797439935633401926354720443885315043660085846097273193236248598927896031895116956860922334373160687404242866837912793553647966257487102010737596999846674607938701601591304407349073560257573572632795867478453166434163980756294342101989202749497363148801464674597145475807577139306204091950994797043356473782344120329690136776887012771695162991467196022806820313337131105884327948235547155648240405985277845539217502219335882227887230137514394027896956642440666092016667889375882177652310868146530845132432637859436453707472149521596846018813107791524576770203391665880672204395355695449147098040255329817092512772159147337480474861228601673252710604026959424929295441120639627572344397741911295741998968559147096520891082329423557304059538208257152489878569285082214535135923715853213555366758983611580940161536316989459586972646409100306078279962753478439295928783424100627543637926705138591028829031106337433884589439244103375848844759378051132885544283993912085709012720851721925407554828588500043631462511957027306919355799132163189634304548128258667111906748123428691388562738577663138801562194370899856206863798052339520458757173264929851062251539083210683308398754001477198140105712214053120013986454255056237308581653357385847964143430995574932145460904605982690796622273907554896803596969970025197160129331161425488109140067613857913168459490702972621892332683909388164325441556333045943091506174940738773521142790292400825810456703087236115971840474971023697844881081512112695141394405543585659643099026591350441615043107732632502614127026573958026595935905820695471373872403484657252862124629490008417064664231941627875635404247702138964859497742739713684886822589392784151500243472224296221744365785477501494013830937452761276917985198873732071649480270904762991935659453548764203203722661925452303201863344312827152230711073662749028839518836289420027305788291568030727143347930223833915648312912962326245937324739499232942844641469295886596835699257007358262856608142728490741924802386832314850229579428532619388080326058929636926996237016676890472100334981160740011464204664062298313330014862410146094298635573677317380348708455395400049990345082047845701773616286035277375543572800463477757886396062112341311380346978054613883139977098502028400646770540423094218039646098001423378346742324364422188209923056958201756277012097265625378592385683322645367951577721504534964182624790125971662405005557983711249165145991565008510043233973354066959156863195074161995497047974316566465853248510198916632893476540719002015156604271732791723004738502196758091009037865107122155496461875680108557408889085578526195060377375307700277294998737984707204251163621919400173854511854758145830808463920403750088099639850851338742705705010892189797258033690456778618309775960223375226311342241619983879218848910148506167594484116567411792275113753818634390432708339624014089618139635819096481300597396921378043481180402572485903258559078886843468073454184542444636020643642826685585820356421728096261660850311357738375643121991264428833442271044235299497657633695674030142430038315464451951176752811604724543470893799312719019927421648992602782179241772281080735229141223024113803626669152902973584359605457521906112509047906072075307112688127043782961343009974355559593315739788706709857786105072440965427317226223354757654191506567372992171936693094761822366277234024013686754231037710612082663392379172357809128765644447666819266088654987348024723663588151438928995745968234680538121822554827537422451638959608932304781912591085849580258901437629622340286033955035637040294606545121416359604647029245297028315653507944182110362215406684749060151959328438060289101079051450120784985207261769301019663389686396521508577522112898369001770450512768271083948806058879285184390746264097990108341369993740464792238626922313046908921483981358250131225436044021569672157660899397447158537104998425743458393753707946107458426467786149474069148482389387128372012895883651134890780538520528973405691154335443628846573931348773318866347308887295517547259458000616105528962054381904786544657795873284541128322025311016976403133948930001852947358813642962096062284251537902293485934876367200288017644748271075939161305113472031754035399790075095495569154036370397718711686569527929694629240123413349500115434015806189520625851712793253678045831258507552520482853383070137348309063214859976351668323069369760439605052408283198221679396710183408430350872774124654132759906241194569276524557992881263817978094684851932948929905440813850050777176297579871348689984104150016357743348067459699247759829613518825202088931587126144145441165667265109376917566648001022113361510103425756706552544517856506523213210264225168519523269293246493511198569294139888997810900274125974614892635550628224030649020033605846196402980853984434645977072596898608982570337874341452523470746092401834957129159894547221346616664587834871782272617018303222574703125388848370426088448711747133906741520943742047723518115444495572423546577346545420284059508189808776409796936570363096364302405145860322426369255063150366000106860109025002403827103810668223892023773502344666468096788686433827544041464148954048588472452941425062387827753794762791800611612492928053950560789192541922448561636859252856951331993733252812876557370365659534229677117009954033951523049597065853531511940933775982373416598827069904150039900572377250109162742930181566934958460705728618692452708075609475298132341680034329363231689611783208998990332975415652264836670202732306230113806170329068116606899583149113288861028856933671524095194624661420854548508429072141355262358761398665659035404573929360166527668281983851272464811652173010996188318228062407595491584602646294559880142504133692298210668358536821690896696029142453757615649540808012631479667881003230936075057254827389929849907079555598689715935472002779487507780951296243764391839005820461213299194076303651302544586072326110463924687354193174584495584181905825266322209425536254983422423158477923206953943192342454663888575872351971862129400409939663724697126936458397683978494558634366204388253199203314412318260813838438635365916532225135332821777638797405445238474119465411455203494599963311396896353560532930003903737351678596361473466650678773834927572263059275858852032715419080856774444930439012713852137569624316425109789940636767436374567087560943874418596117572637676100692720638528640788280473167970428893775746421219460619704340205272278355922351054773695245728413611262729917478743991323613878084540509041885572407505262207474762598438001271550766346784644163122303747593224841226194746231137524134489631250154415503516533725350727756941514591369781059003286054875860336068695900493927549840096184257390921062314047503165882961048024734001865579270243221866930379512547820633365297104846091621437916452727855086464697479506838527938536042915124666749630413692712578842159193635621714854109707435441555646563632259542828332991982137147385308817886205353015723062708170043452599356827536087073599117902746064916700502682515708758012587135922272187844241157154828128368983489949736880634548862134215305590234681370051987438415028841206640925527632781661110324246221939813250978283928935959606112300817337134695032937901071148905234681148369058921771237269633352894229086856380409961512761682889577467559432489337816664456067974570153095143341396471421887489843348859776512952481670322997943400112466983829831858619006902181824602090667376612636748242196315905495768219458138583052895649790293592923816655680243341896971699317138930551213930607496658956555848943839061790901650770055481900834698477805865739662969300417905959833419752536196611867786036036508402380309642775286566678983619467149019489958468092645863695581158645497562168693910842844764366687793195650713261563106864089760226750396929039083716731886109309957207744740816786715277636513598288877653161122413633921214329766515590900564820878892330777533511836641659909229720566010762623960375132997198059811436439168887140790372925228973790457095688417749942803348669546202723290726184801040296528548353520200641920310206791041419761912102595841794962341752060879242521703845027018531254261979287929472236002968068541205578010496319970804386613040857058668893284223067049277696695208273679450271654765547842635612046749527675454881137341081436889327830176300980740042661024757586441164635320400323782994474148248565576261863470819488123169808721950627583244209293027113965721241057806008099836365200673790225913001583323199300536328060363501519377130148404571889195784318121704077988582299362517387441146117302912810280054543792916738815370870423657962507142586813387253405758417361321266229714000735158124539911255521448853003181728453278686763032428668603787288611475406493986684902702251878378649299798859783846417268780124493677796691866833317811482739468028650689698247655584474816435001644668922896179734294499497280315324840754232668069796879008142455535713396293091629741274273291984532382390711035789895129630193804727115282931601074833396001588697460395631345490530520753130639409529141679004530769566347788649401281253074783242220465788052019990472787892665790072504441771931001811515397243158979346631736989780706188638312710556168408067619340247071475472313568495913931294572876928457158283473109962135960077372483219361618845550645842206387055173918555881214010549978610998316927638488949155996216888660282998909633391125886906914730246326996427608897105049763171850747967902241478417775145560480259616310208938895167507730761647714629615206798559858386332660147933453153258827514925545209146184688022517292448628154150568653608403698645653634028154546151012380005262699254131599792033189127584056053873487856613160772533760673199623934814303004572988750613948159261468812674519678854925721223365195600271034927776157014289356707338815949181587381816148212589856269855489460194759155746835103693135244035265648654080105152921679108116383398950397893598301213430563635414444277805238852766102372761493935648030361720190351779056699956714341475317558692144549218620742306189438587392052425061447305965800896779525387422467877744426087767102743244325194629622696830971445572914221737615988905305803539851583313861015351789630687277230288626735675801539035853081049490274176512194405830503004349031235609020994066181538574419325710873944322722088612450787785230223198165652897881431088086243688682177981557518258312888095285023204758785656152063867131057675009555064928042251990307263227311800203203405816550840244793511731553547588227829669798958854658209604702262629074355313456958555092815815593558017682184553831887927891532573696122994699146048019442401759405374150729697571357714357334991312234502605615891902301270800737601142144616454601178337899201987169797058285831995803863077498234916007394016320477568971395413455938739065204668662546545172414446926264709264181043876046138294520946590476639241224134882607408054668698775398857323958137952389457635681807175523756443344160579626036002967630585619689672401141570092402422307575828420695881869841955003473943338755192129139277280800986895395681070280315107522084260446825066949963674940483001820410672355312614316775928448532684390761251510971466162053609511637996411036452316541142506435309947350554130396200852844592986050404484224566432780540356217349427408269941097879724498212878252748016229896357973092134567530650597546629547385532300768931030776679016083598795751284675350669501305748777767593843928700204076109996682532468246336019255319049681818020488158994951988717752836722971658318148009436306228251409681080431173012636942231536223918195924474813127498466123536124229607553164578719471552210953554565769597907612077728898285986591761499472593641098478608199479374790276729768966560965343985077996185041860370135663033818376419550207273393480249925905144150313218614228345737283534759928266523087787683670280353153851315979192089010866944610016399681769503910538439561859781689826809644089111644795251052777800174762735426639824699298867659439305892881235565567948968117395915401762791579648735744384663891778611843660801318124588017244424579181822288724556065960022685285629981114963477683009712184898924846171938952620950214997736521292044933107695375129170126724203938930523595422496306646436162684437808595152382605692354117822831497983965642267880402387798272768397179663339332683116653941532682731821203186249098092206284776323764172910334702861035738557559247951602056839622803686304988667650779363273939510415744961878089998158676177638498649440089485285846586706488001608499605087487931913573158867810956547595396944362347109988267989278292348061949834881661221752998898893450348480001430930132746207363278271419544928228012507778700692942484234542971984290367641777420967085096867218475875452679448381033732345626240252548274821117797522798096150255833498761125208843067056116962543971493285809643774877712594496634476363154198477363310016886387137543695140147161421287331658663304273298038719865892002368871940477091123217141780015713297663583648273104585068111170920536725788831943329859132258272529871482431064811278082633358599416154004223796239246939274588630221788261558443149025026159265075123658090691649971243815999542362033594730040199171195811227726262361307346818160925901462051318679353262513648130290622623282667766574236410367257738996607252013432716130889327021720226635980780329110269570788081131042236820004150012063466654548226667109521092183866707497605912781132970189828088402095168563557218916607996392687363408163142779323669930314319636745241457153859379825469078996133845122176822714607663123452207927947698381245772460025551936901339606141456257673345378151604912743487059841245832939130457333454995455843535800826408766856763646601073854047223030106848978059614173717642393755560822324910671364983467554142693459155528559353474932187945537978432390200945603329549793805746702283560722733042471116435178689276314110411748517025817247595213775987941501184657854872670091163773592916915998692050078975404596995443281208360472475700508099317492812854624850459651434755709826708216015347139419036918950854104307871720439792133357766940723908176192142214296569319954287720004327621528841029456397817609220874921841436507483898157731248628283036187264642179186888713355656566298435215307890828713543267944185585856292778900713928625381615953734865983498156333382172466760390619460919154700193833348409074750689282036840226692808406488102402713078984889324898842663053611706667795979853529447334374376543254239729237385183405808172828623286924771378446641828624045310772421308921285783900745908498058182218478483705117186656056048087497003809164055520365134137791124583086777347158313278903091591223129194167691405206808589464698025036572520767645600824284784771115945159435687156743430199138949464634554316313004397454863640533482949849985848745765195509149371634074003339335283609296327959132682233792236432858307372353498649267159604383108998768682428022071922755266748250173595886887958533074664090139343531363445377326220877654398963620080631577443101459478581371715597255038325602912334879309260884462373943800373377245067027698029423321871017580636466741113685217897828431960238925189045993163142091728767283470043388110583307282952726226058392365138072550553778175444337794834132773533073154327578650518861383377725229513181635101781483163466665908299450020507367485314846501371474887048521054596727604721966956930199619091037061090706390565372354339676907484771388275616921059026736576265968123697955151230112971357322377499533548575618326774593825768573999204638317017665181271218059670191684353923856482323838394768346642166140590977294265432530556982773454409410093280699375398679888519474244911107004828780872022057451963865805432709939385666821810523692729539420769988904817638360193178764346507105242292358989120885215047107206605674859887211611510508883187120872424105257122992557219249897289568634410824306021530017799020719725826356813278873279845376143214863258527406700971362040061801299785051396639238519605885781868156283185102183338168530166021869676528853872972976660928271644910225326142799013558966124171209359544112851025352319808492681668410498078698878661219658222533174148644200421396643955803260243595646698447744583804402212659166398053815156182842909077967537813567918257858771688903862549296517068592165350926721375741512529720922874618616920386881968796243788507485853916223781174054881911470937922052900488862102595524505246548739370127238431142602513337237582288007158192450120373796557997972801036781438945109342285576705736483898567265905556327698416239225444240444863016825569630956832359676791758848710364454756541280408954010924751221371823552407683630164156917259952638553090277951594544926879568596866949401417226414398017079255154054645871531636913823610598554645527339785015418394297859545072187480174315587197849296216885790534630727019802894183714211891310116702556886540661444164009504813067038861569252073218991125714228080989383834065755108079928103881298821348303266022855313984358369897620132390708896178221801586829486907526830003182364936855637615541291589946195445141897089369223018661589333230449134671458399847970521984372666992022307320722304817353936193729272563525585152130023664809999459522477319025159423854487904809615743074192522354293265020384462900029376904909806777193502138480812570004659693033217744651237104690259804857821921959511556407684148800956003827042887224017903448389104952340715875552228606220397474243802442522636115398167076137419072074717773237272464625657974996852476325483260943804033838185195598536059909389217757859723347398555966323955380711968621207828532342480993846618501443430709618805498372024592108164485691638134660836650101566940240939262730307609523771549778587110583844628040772867904791711623450380785009540488295773233305224351633358016892346464725388833129671238984011538796317827049599084209522845822060603776509842170681944363659248527999912777180102300943494330224742568857029533085821997893569154631704310642768088549960704831927711606250611941996841908879824697391976328751491613300073213679171084433845491996990713326698752529628461620736181604478147591718492953390228922915836883246882686045333340622487908596506167811071991497123726439290627471387327455720340183641483858929189696298938289690534326602057990547862027638179952508503492920507288653736984892357043608645813081268919764736819668993029290625914550639224149444313610757562824498179936540969938578499273482075819884135387288742576744957495723659942944530439210326034197534886541266278980016105544995854167202767954401650805486639671131547219693354936502645239235614010610806346041101434334336601770044573791678849358952670743062730281583584745024078286698996513425163503337277080458229514714901583247078028923241524746573087671600385510591644594290188144187878264138330370153553793187249798525755440936890403912951002746573482317629561980573011904965237172752827867692189607146276665921635740438472963289170479212917945690620911397635878661177424696755631129854569701402130855246347528797316454929824563803103761128389427928275131457971371639127890451662769114705047988208159595888641731916700542756626565247641862613315285760012488773519368676022945363875709029652221072236747017197918713863805461662190117138143175284325914030015888144255674815523395380861621087585751167527073757915401955684812803928768020826442080428612129693088611286288185293624244407836618079875308039767182919924529734743823927338695104490153923515318939396492342757779697676826290647556581104767041071005061577630822349081072812382153173128265484455236434400014233573516110970580661646061763710085667993809926048431588518556277233994214055973138561789046341256061856632974713463661822756946769740577420746135219097761787870731208401218068072098234392120550051383194140875906496865819644496721037990137872692385759668466191839195099645527551963507873286296347085813801435959593144631692141651176588874187598151211475152745774551892778501727941777885084110517639197838412577513568860489984932831819952845411790441234626505913276169352193259146805568551471903101435567294949714521483138300994056273592615747753698349666865832871760154460321507886066456220448632877138079875035400769892540490328136158945909398949337789404489230678936674785094880198137879352085544762859944391647524324450096305850477444480049151486556972255718002440249748329576840631667964618933775596852888969283653822724794971955140284171553521167371254150450980086320532205149130173197008896381135903341890876779345271910964038239681202942019109428415467231510330141740240171929789158535117971606574747041891863604780468104998468658376240065985863940752794073642192902950649931827007056198286982624334260440626580077068105333436049243475728318767979887389690950686709722047961311999842582723720216713658536783374094863076995796246131150094096651107941304332391589632775188642464709632179223517716468909134698234778062701984257301704962098423805842989730208411423136844243530964472244009541443824833446019528501477291820212837742015143066119107005390425087402873085249197856437355357880892492214589224364163508276762687725861365685740597566947977237553330907144065807980105419928536978299627120203564235315496788675097102181093464993502711691275562843586893224896897323165057480297862860092906025208421332885235778925005625096879482201454022200565526511987387476573597881092674921519021486339281481241365233165470169339999373309178241378416187274693897638102142453530894758279356013626571446382772314989196410231883201894361955709610858100502011825299403659831240153383988372898714547291905352722995267865413926925862517248672717288163010698133103541367892797983478506840833101537236609687740810211329285475921431045684025347350284962404147957401227907330347268397356197966487200231671131651351269727160450608821448105399751233232279661398396452918849352910943709850849079219327604479279324290421222383051276306824771592064738742864783129807177147449293767678021070233523487430532793811086229022229868225197520632815854190547341746878326081095007934002021121008573904970937678358512876079916207047457932689384503095056038182897995406015242263329170010389778524553628253570559083548533363465916042574132109387380229785635284602077389965167169377638480717269411713559193670576656008386168743451479724225501536470942652545921163127542906325589408804003019841685850925086974055641985996707157949502017044774064230714176480363889619657249300177487001974751904157314346686070917654715057937728862699397523245596808674018184199331628698484201745606642171551580251151253107165963747564907762754734585948460874975204802263358307717983623977875889588313140368896814325568475688375671762050403604336588137423119060142365910112794836272122846902074942825449213977588302945599741884302832310696593063547094862835646669298359370454874058542703183376926771893507488387018834342300841793874031891916957224378219433718203493398150787421210980782453999433053288768121409517327438474494576011760449689748795473136550971901956342985822586587179190163809545438486943131422767585699791827243837959944314483910350089240818287733413993954466000932284224145524308143745162216076573374738241677206710783344312055259515777360319688851257188889439724069125855993660279042969057008452282734371317781617615571361571942991772144407138074230752686108579453858089769247295956997020866216153075907263578300786252922775153213916644245859358939276015366491788766829364532968412325575826916320030539904320376011820379255980550142630159454486479997057062179913515484100344712307343498291791765758855499156494669215023958686985703601988576199168502468067412886373364095148262155288916002445807277936625934217072745672528482755928618113694813787347850628815461789827130442500350304457747871300553699251761630810258747921082969674308676550709027627683312141454915264274896013491164323740150261209013168890486279708213770291677665428227739888872624097098742039517333684774811405444866609954918565543198944613862564594178216009145315723806433486853514684747088493956977061967015737069755455059028106910646369801433732181098813124317980526519199096969508050629972275349203422941348546428467874936634176580772641084678021182152166481663890180402439375416599696069077688492223636745636759700990736175255842292134230921874517405578458937905359570810414718733743988628812688342804251487226638601945263765738989925038802785864248150360980780221612667295303134789131627650230893716098464084170766889623164906531838433836959829480811239921254185726431538886381898277725566632105929881745539148206382670649723024817214394475996423123488800257049320544024881888347643947213619011604824200786667785379118621670079722560862906947877277123795167393531289512842618507772956564045882468599470204398958008379973291286293847535568105010600326733034145935489528563846281967207952981254440623847382130559947002594858804331575757689089551867741766769224443592182395962437658342374300522907888078652768188610580601268028504883181522451524741311170055792417317911521456640045065411609414587366923856612286811494209687016204211344246242267429848274022436368549213155561331177204569524494797019544109395954132169530237405595320605080021105379466281706701690155971343172632543485590584572887975996064410979397253907836508246977677071705528571106067818415288449586709736975767237838527138979117638144080435826457100116355489887346906716458966052319653528439889288901130929576258442233383526844290986065261803005147246594046773749290851251302974522256449873000619686074488347249040191429585553633131750349191151387302152124625016713741438755719000741191340223399683629485159357184364645196903799531992256636301827695084891543042834133484588979101584090455498498140241922698190324121515209970633334762666420365102711680554266241093257307119169639498752241014866339910851902474134903663590502120141073166165189301192581547003724948797438718663892992459500432733885962756011833362381920228783655864567516430711923336759729824416285058004584977285841688090945085767454250536644587236387349661972770901734411537348953279246740235346210079328366727762809576735864628966742817815568612433014962906249045003838362455460802986944260873345254272229906728440539579308364683741773326329853433278147476294921010099048380267576423524877902897961937049791818579498193864199348813249497421012019410864744480831734543290783622313258853750747009480941641611305809297274228828301742088581094835750205103270297699344267333561620418639434652903126264802163192942098331111621139433186088832662834252654064388937868489427179615137299256552739002212018141506039237203536746733327188581566397112708424852400664228624635088112543199492816246868938695611755645124663246668910155367677557262225610604801893620404258646784323975818077195975050274904933500989724894120308821300155199527199198008570157534290423567052138256802080429174927503806234021122513979560918198175859417848608473885089297445272108488826037849122934514195905995683631633793538997233806366643566937765985039061062140745219835363241816807935826618943360499811743185007392233227476456381122334363281668629532336461256923591751051264450251541510105813123586771531357872927415523175982496736372787428112120553689799014810944973306721956716783772055690359336897547206452707832299913594452019359288707404328219907782938842266106042175311292658197594862974889218142898080309326534186351880157755714863895289204482772595718061916177667688085989940641614615118230094224201537681135808827231954961377243525290173998566720301198506581828565047834892524628321100937699373080568360233510900296389163338254632372866073426133532457673179251368485305127452951337255764694702237921065863793947212558192908757260313320831197371654350678336559799444996229670622663369805540758765849426934419023521380866247628498133202058740281183954656069507867603494546741102828135985299964071856274416930984519379150358438173255011934189469556275370174887150569703976068092816650802516523488853806959971113585022408261018160565708949326789982670831742864586338063763104321728396143758890720434036053089310980322570842512048778864949250736285691616865769921093472464819953434169155677180017963061630326314418693833738671734197735619292615339478017447335866262679402270102692338659651710276545717180925245933427007701164294920223767782625966731863145927850722915399498852591242212962519513298692445965005929867336173367704456217882561919745126783397857545202848369855971255276748239444876147849389224238497110301626101293811948500307543594841276844460436357920779666898867235196633510994489731680444356404535796431200544898446547839943310352184534642596968950302003403295492248877028838341472387598812650471977862848361746584076720836212000960922731810884168073744787709684041806086133662818221490654112428831905755482283422880217773886116706226951390990528967475272326852152860714076905384709766921379934001995198874782831814418025577490741485248516713681141941804750653588009475431501872902517212025231852820490622026032591806372726284626347234298430521543071046497661972219232855607732240357450970315487758887827234047288923988379578984484285233220238591608835768373709254324229120461867729079631104637827435293427795775070718528721101558804541724480115685843075168362850376273641841851684272502815960044169516556141240594711104874052849624186494413353959904628375438710332485595472150476025773973247582985909627918585388606427743592128591658278244752883775362042001731701324540416218011189040290827353421193442158274864489308100952407363991361961443830756869251246002084601299979143313308988605022679750436536817770806839321642430093930741848856138133660119867004378009698010249610382457077471168381102385277295034102594517576679050224647649580343960889519277167712790688989437551993660368403781134236393040049016009027304959482706211521076990137471964090388707412622902918029445811632122912620735138890562688724837261095760331140567146316066038744857338597329503243816149522534035191046841794748190492100228021559171670156219798619059983060160822876792488882598794994236198140629844538022459514608615888133847706887930447349159882579631141754763282760928335556445647725556805747636998859917203223709475405881198385052778096021566843837115960754309410042785495294310607334669979059620514166194996663380763100730409820162279432067620355710130831161381050084541902012042658056828929269043262796499341166725013464013744774783994173206309211183534395494035628709675902440816006508655209481080455945599457933719487331412072005441098353653434161047875174438790309561352123104939804538358448187958062891451859267176850248026824270009318463148977570582440844135257456636312162988347269731327020577403168678876310691243846854774880281017700387134241599929055380756952063312644473918637751497427018598077726522337300812614562080921877592020464108324859415249602326431059447190496666294682872490698210999295464579974285529144866600616394108443026322555362867784354219561269600286248999414363506794372099775903931927297254327522278869703851374480183063617605600099080121084291012848114144293391002284917452904617153508213450996653083375008020293399697384092764011752572968203171285601478078410307334716265591447449491721462576111169731113899557829405653533542296971639210471109592239229799600486784750348041907546322322820130350382981716045263795886656303175590203662876403780574732507483499596826337468575037552932142066313449743223999972810762576016863790622191584239766540865905176455017877533723583969840032463765553273973037419950347662530367629538000146156593937547656657246201594323828127123705125808482111900430856572710078497363253732197670287430815619801207878775840512598809740061813150819920905488291892631954190961165076929938542063996869353779261877665961474513329306690054711562988076168681185694020427971812757503675614086646215348905270367470713597920287017444743430379847785892375838157459254319808744013020764112811977569747644852986008788136049156504540270657422091377546356580969962679903581399237070535012257273150718626886241105149664049161470527640929430962084086441695792870950763218798683602519307260697311371689632081779064197488871258905804564824981333401360949601342265463718576270727315867427427785037076729084628440462423442046471092761293268050039135168103041745981552028301369819120564104250813157128335506310543420125200719836483223403178258660534239472426116176216657290267325754764780789347381671624391654557710457428738867392685923830789279672565958033351117065621634645373669788597421051466167826707892337030444807271465488017095696132476710468577136464979477109969853657227113309347592630048360163711362033785931626092941413667427722830723088836132274580843364483894134631422731132563960978822617715020854419002558407231201869786036768405115231326382132381817637191354170191817327505816968187369575666133645026342414393846365512477953426215528791551161079952029762924568049750174718649486961022980810577479630290512561267816844985093470932161427709787274529790009411965100604355331673457331094926955226945495418390716100088621802130183825461900886336095039780409110785314368279885680480667513882624528749709932755533256091711821513835910539948207222373186450807609613300383672022569176434981400890680335082625545485604043166939106189598904677739036178165782155195305518710557091665253315730990930620733123144738051436318812080821915334824431831120580126654252046132445839257134965301169587037510923429217703295864047304673260938761022033534116964439133548575441324880038218480623929217261316935684409019990342624232800740185760802797012079267450370983310516376788171368997423281818258211899009800173212208993750483364318386106916623521398127802141025345891631081211169972771864188674366781014686335722810058787913279988162106449610357989991235775184004898076072236985256231942361287512368534967985174995049848482052165404953718409554676644053184570692243181970512023995006732915853915164440995703610348608855933275150331173348488487250597721521695626998740400922262391581471719395757814013641113256603266114431698048888543362698939136552371748396343319410099778432325577427808694846144427811421836214015956298367551739636993593456347932811153083167939211056501872733110351430003481821678834150635756687864024881730230913843933584568631699026971786475380949737820107081711746520316027672040151872056428056515239716540215576019100392224707636537146064861753816479665877732968488510635373478052748620721979346934328211975295028522990010323859686579967435124239358152675859588500191431309388882886519816234529001969228941810348218606745050484376695043338671173284558103315541805617210984968480220881190639942948186908408793830233821787915549892382595857235260980489472876568948432189369714847161854880485328120561727770228426228211025306820878933678987946401293434623272668884689383473630455242140705071923010372877083052619611219719603420465775703096054308443226539607254118060393845079181570792182052784672115425694195529297439477623075343793091737770511269926660829894823319585472690650098257413719376558548256805251956389867525553659814242387725030343965385402255851632770500518100772515758902583687434242662080621101673680488051564969328318863133537966779749641671923399467585046892342308751158943718678534326178995971877607205743375619741167702233579714549138891499011241252373694818765564920975150531952538803018325847231582190948435701035831178044921282073426039370793105229857695179296731862427284842841503559568399641919591312198216181960663089793423657746841512096989379498436534706054085231633019532865721780365772557392754164045318617738151008024860890892528336569559770107808845518216425444447930587886665326688795197844329786787722831630945441418488213078003763815025385116016047518477329473707631443375456202256777488257911534452606726425927298201631759980871739305474652124395914175168366823458783368547068868170923982917875550071281628402015287907801043987559233421750947585010652366860450244243534169842055832353696792008422974681578625665707973446419226595773197006655870139595421577457880603510665291878961781572189242193898047228005963029050327838655985262964807420689695868398913031214652057520450167406262705180238333250930493797462346862407608044255519519842721246401496833862740299415341659011141000351047510597750005966317584541692626907444512265502338234018754129976288015789938442947810024897636468409423104468965599671393371601109677328426443588745617652688226294685327258977350529983597384024347527217868608892779311887189025710130814734799797498665821152492556510080763302667360018343178801655031724210883507774733411332465120262667237718930495306152133324162007647427236653838490957254870559423451592861635493036552401820193166766357382241358380982818515036017798070921554671527665877703448940083428206380642274747650966592976805635066228471875315388759544809116314175955969717159129481399508510318002002706765377914291186304758321393060653148944613200606376321366929669653129981730978993489866941746090446958420368312163652992480835644773471938685834486271316786786434951623837175772446830472291665418325131017915916935461203641650800856511895801521338827468598247248348295540550869798397472345222262249096394055062623598094120940251287137495013438853297534537303475126849383827568289535764395546325874771803615173821924806719605218835568461078619708058346419233010385129855069027370862558946956241835338208152002983690785894819908027196835165065535963344161129962817227718248481456833238687971396340438174641044704420269849464215223365148318094651945432783045966061889845400508269744166840641930705295990850086999783860368911138758382269515114034118877975226400785486387191357778251915977358218498426630733139248518169508603944519365466219857789746068508179557628505612509320616214072297733943788592325696638999258520821937656467714399588034997535879560288612550352485245428170152812708252684729098363275349186914758067817598756168025555703562438612665473664983390955763953540492894917763183890527754680821796722892475804991076183278140423486403876039284442747851409114871410927720668100659759957987807042397686992031105505379004318188832344896327570262935776728021515530107841458802592247922420070484734360546557986783820408038330130719561184552522059692427948445967173172409279291581410294241315868649514045820875215530501805721164765511761736064318556831629289697405310809753417324648166942475907801233475530042033470368287442876227095575414302287478148277502309370241097193642413379889835747194783841156254149470928011032867490797707933665893789213760673876750629502514789807938295924777334503840773268239921068069374169117802621370446984739931409675511219027300253382382107462672572580152920123506139485839257417166699528674645261031933902278992882845611120801161255096133635106971705927640143060821597313310105229413666821787701219801011721439210823545207674655443807496553358333552487257330251084680138196807980685459347259802360631181386481760851342558592550195593243170865673841159743314931483843387093502802556898973944002178662409489280152424036616290460176717568098139134404459403437228300960798440478956279037809099642233329451520055910487591683682537998912619645771286560090958485109791203513565001235372884689941096894344759843553333776598122408911922601415727838955561129930435121797831496979894659807907126504345981928169742094635184173812007570852709105505666675239736018885721058709971346725646140164186561177760904534415380217627969932360453675059142249372561293724371246129601769021231993594301630495054676293400533712760905055498805388215993775364698517947920724872424079079164126014330518206779258931000416173325967244320806054530608447502875495421935804515817458026874695537530318374454225671678438842490330494956721937208645889808817928363951932107485812868161994839050097603754927219603992347170916349194804229485269231230657009760863433968298076943413380537064352692629321567711040649434759674998711720501678405449155421926560087717088270433866790337920066220013832579891141583159140128878123925096875877382606677714594367604576533017999768934511958948791982677645063076066142890991868559182875739318342212364751081274709795623608190684036709189232278534591952330261688616334392718492336748501240221159798758197104813103377455598312455111566551188900163831633595641665569338274379045711301565310601583443463591600720314882342839513025452113448283548415774207518752210936754856506623186862370905929863972072382166071198745975543216883678219176904078408769831880762853055698605066376936846630029191085120715664363341742687613661148368185245356055610678220884327681265980473845341613558965833622713348054239568160168297664453436367969615951286722087245386096574900339119681785336877603865397705463935354703151194584338173873502688930003242644768471776397648175827502616592124951698763871606677857508162016976565969609750139521617013223456707847125448720920449273514806484267005554287838968026740355466752407257977974633002487352250586487006216727278334871587160328115125204400402879310259897311511080147074891657713838392206529695409685977344393717524223168865884533545016350906008646446806682246990204717049642474583092223107989447946730439887560787070046717372042825278109345358400792960436995615815442952076158183644323594969661591175193487804870649902886603781040596166183023546196873441590488957462613965475619792506120065678334475439434140086522177681919580078435246110515044720249201867830001403779998129846027199698128928411269991892861554611710984142518143976769395323609876026404974755804070218102410037215497692380663460916484339162348876696241733611378134512468295803147831923181953944372726623064327298672059455641092602823895336460700188763735087081200579345276907604203582971300137832089274452578758310313336526680098796533697041157025451777497923091093267277922944016741156496489524657340015640782761840182527506221675030910955897638231805744889894283763212143160231422824235866690775809769604973534983816718623519291186272622150630952610341545971079926485587724172169102178580958108540930664757062664326385852264106688594224492555297428676265811540876493629998954548775885484843628338250519144496591118836761736499561614692572651718825535196621128711211935911018261021912327924325456623729562273048331765116801672552869204156763885403901558835598541301974569753984754756179123694047560229223808439568350494582931447899833491207831936294919469753212475817785595658420993925107253869119044202130891166464414693579709126464127737388147655516120200904234792029265649589672950461469551788730424041096466154845589320385465607619356811636400732770847417571005900391841870799244338568511835381476167817135607243273459144407335237543736806140750393448325089311257685700724059288417034884147432338643616874185775455808351824995000610035437193642676901505181354126516026513389890377645492109834349106126912341290259283215203652786486157219590329292731331682248683981789068743824772791422348632578046000031499102168027535654946033075494569653682462793872910138457191380816196622932727869204166620134580862170096379896047930459050618182501350496515300367562481366296375853307366532330907002705654965615678503993266316660810765838650126446333908920710783426718529563431353160976334578273751143791786833919250871438961091762571783367787909944297087969909748886766995806363800644766138915826279120082248942770539361776102586685675918057560532441926056257281871622815611760526329629959805570059573387086812874643951677843232109675611034867196905733679903861927993039869643064869090003041190591633852514357906176113406422928543164652832337869821713928555115805224260468324691427629977975125689624038517492106775670305049624169467202167905211759091217789474026027903677072985721568695818144957503235776907249015692767383796388186794714681473062211110013435288087409421856772578916136916154474277664146840568563193417675406310038315139762509313559141995766061271502462242408475193734275841252740705029985987645080767457791916897293269552237653593116037463580026228219414934372059996221317790345659900577242999572187637546065183924420987094745535408231255968160653520986995549940856897402277312345228301905906959815599757669657072085129115305593208698613599231881276140690737360125153563426065223848191589301871860617300235545262033758803676838514335911591186796356787072776124014388737363345037308758383272684013960669496422818280954559480063260263355562976001802038743760218984438317711101957824313614520744140076148836771230600340718160905205909238892472619631734699250661266880717235919517877648882694055887411338884797319914512331007821959115366556960735196529292919377655363847797703090768167370364723575708652884215393753797728259231980654627661930489808304690721066361156143016536466511153611362902752815529615111328141254694752231394711694554270385591950626361043433635818356476079085205052479554451425313850491743961601159284010449708383236556374774902082026995865370684907674698536545889771747985686060174038524253776011032284825469519444130228580239856656643074804578372383432589527655493161354272886660069241027929676414387571626989192594877753583945008156533061133502184786503051497675996488715798876449200130813394571056288775167559793376639984567306927645420700957533549904062266073832493727944121764702711411836583373424816101277960685402756136346498915795032860179888031571333146896427391585561185180699329956839451848008594549697477559571407903419117754406193882334500468704686802505464339163107506520274073511912098722652831309719806507151797158002850990904178066175198198682612247465954249054813357390215231627720786012675458601395128104032263382205076090611086854036062349666086198631552295511261241093548631554692092451954708465659232842611705702424679532035949618441226886636259270208566099138820560874533720764704831579873357266318061888959393114034999285035080739920032719737187903646257341776057152076549155987552778894160912560449886811197258377683925070814745021625224993050745499603123031408371534461005616334995042697098106459258679103521852468803177939092746190031817406226955826566009626267158134602791708498792333492115466629620889681817516541640571922042119924257817484426444146634818472245908609856822759276238940857456343031386667744476669230357998389838628382120789804665577269763965974850839766297826599126245432236937216187526637206616069869594598307513417502934750096624178364012833597784713275634180174844969109476418598204696530041657653534450983678025385838773929841418823336115238861400727661807473129903808373889193432603541487754134155871012116876755044835587469921264055204409388105670665055334460002550485553503239224036106987984457932150942883084682258010277446111446291615484111401125593166265516910929582514510055158574288769775002372825240172994399635583147755024002666786545575373316789737770066536966447380088601137542053193767836590718478195035516851613438713001036120842425544533874663700614996406849072632983358358516296110269860208239569702436425155732871997910889804279991336107720323924431356884508909834930308535302862872368852032008284508252264124178219536711723647837197933924359647190034599221568885520916217151205229162892403371590954057611631807082997411203312085882701962077689862163646549588436261356561088096903522667775619373560298058012904971536076494510679563551284282598483335184424146493617883759465213380318289061166807404828281647578976185829944867495087965625586576489983105883408770481596122292927121546286527754456881570296673515026261712946913913246669236611448615846984760781760057008394518395676882055871146573744292778216127050183438041367291003144155015066097327060901246708234564351426991824929844515921957100075187732190099141832063785715139639867584503752555688870717838810740828539399832367426968914826215342492386563318201881919406284524604537928651869791632150190357586724748798663553533092501304316380797954304323110825348337409427402456650335067893815404034142815595464102807825223066855097014598148887251710688435822588744006275603084650174791821558255978836040073999884771989921147101395731123206613763465909010520561671342234808739127087380801758856018600697545030925616303277403217061283099603817216739892454298031243158253137078707177328899025527769052777062300943124643732612951791668380622385437451928176939199429468167917965310032859686538863067383007215718370098945070769435523874857136643085387366404838719740414481284865197005464124963768472249143611584701644631117167666792935702528598554158113622094062475373812748131700197209669777011262061998405040307882305619164180263349411364129547076999495029212889583616756967986035149210520369778865733388091617700074298256968873786899185368261190480408375499710747958286977674696536493159679654867631199392505877816685809085160102962539020338867553468838539657485235972060669029915392202814899731718455842040437864447266005417098853595901054851385482158005165873790120037685993578829971213462387803891404958839622521216357477439285761276154244952226779952961366706538235315107652772995832659394090620383777596540596710938532788415966574551978782149439933870560386577821124557408908932753971183596723716637850879184277483616184593224380706874181336112126662522569682873015861698027655437971605356619157657497110018603170720188378787912267217542226501520562590758609238962759454384892486271560060860927112989599210172777249130220187882482362444451742756395016833917878590575748341266467718750318942890923101410190960961823953397663265456652086827879653990795884368436119743944307031780336129257242230338057014338198268747989860124839902206394638668676756770664724829925945189463300926471168758743644242325772471988085227252890368429980523284396327721890228114026457010065830563665520045084327392388918690448354037042101285447123795447711926454342207177170033648387195141800538847289955585004332910536236319433654528663748921102638460151820643900711389401886053680164731795208012315796719091441635213923037413389351614985300937883880374807156060946396716277080221626263630788461914315909350727646194168289378168664977406746273890171570066400181033449471040967853610308462355879490506480266538832642585638434820583519370231098309569322117088518817489102714290755733629130798322148867477463352677063156418830116880018258821387407694998099838561338757890498312336563168192730933879416556734699984680351832723553261629236085697791860860625041204126050888420438221776560121236963983298011535680850744226807550753042903623538218555938320166932522355149808456797143746806407974859580168497016797109888478404351854581145237650597199433205371324855930597455549050408724922604159286005336895905291108762490674240876447460271544286460095493291343261120335483977013952435251148451652575397127856662742301368388710897836615493435888613594193915040377085189914251349863904324864999953891363182206663335585142591242068090038629930547720694181751392315123914135469994658520689017999863973477843098672146257752244358092103277570853777328855276625349158931976951414665575592602815646320945542426477962792722955000022704227736443864539636143043999264413433358673346829430683727205491371225540138347003195842401936039082097944196055989869822380943539734339310701862329956857292395574480422499835208549678391982465255880018921530732532127469248273824517097681705350543064429784162025027574319360372778520234522303285624824017671538731734076710588259546121490650510024384005311499393708557547801518058927541719669392914855638030704008006789097360804729582763199804352127327909516981134530341570344374463195036941471481329829313332610971473196000326934908084501652155728982612675554672174777580793639729939163886902966280105618490841240629975377789687178267043710243942051568193306248890529212180408660419046160919791253918245957365370756438507726776206873553760517157357382770503745492496078795878186520746163921481042401408806220808236360673080665929446136839129541444494102467418181853551333563727158539360545526846488129447314426652429581467368244953781276088183482265827170515561784294882118303700527215880249255053371781812438798640005222020689102880922646514864503250200016004738696317075918116950519130428080581292686920808348622780569126711532988870683484105046276884624784959760076743757718687120658368193546640808933806227039966266215980391909130727773331020531776289443728904211810467339782698347288470213548668386855034179737105741798394572472549420205131740680500426224337870959412504289977517096356685311757163523795984808432633850252024247753934933432675406928105088374095239732107401540812739129853669229218420707254501528603382617479186021599322855778739865174993978380509135441519246310873733488828566233142709636524767716978869474055292161295294930525194074118929294808500684875261365949709321039799803278392356273965486817635023170436527579707311791710979549227839586563874251746945251427035480333522744262682808169439730220430543758529953710939956640564265040894313278967074110226834102026107795539549553151237498735430208399358000975663473246516733371159550861739687311627979357233932817462404887210891598177305878570391967788375320893944099979979903275938736990549308343855865278241871278220215938132336074078037020139196331332007797230453625989944026200489893806702997220157563806100401318762105910554266789265195996002749821295024034692862673567565319235875396465933065557704628222266327679778405507966732124027238714756939477522883663568774943416639251206065456976216209468352202837637171740730238458053245210679460297657670153237528161081421181903873677311233760497335163815544043274089824551741094733812238859958239506513934689018343409333798005652409754652353953525298721990422764816656015953593548839832890478854487169419931044297711506196416918936943887940863099846491159181011863938136470219718845132956826899693937218353793365268238728941952458236110550288045529803188518698207250791152616209333787692045094312871225134862799675331787250636919449880894717580809929932279834337542520635374032174008366975317346523035187915828769013297074462516999488643882335280088896574798960520656428846368380001277590350346719428579387873823031840711016381557210148616098294436291486234120932775630150251020184187585853997162881568201839873636493610363679903032162959784192215312556869830208159324663033781070848273484714713197248692439369582964389215989628326614775979857826513442323753889031435339997311527594138915758678622039572073009960330034887593723982336933208171360591646540552916152561589560617209038831508670680087845055758859415504313443234880946567326549816497899740885644590639781258604883909966762668252646858013086620612350714923509038534363997561856642056396997484014070494966006981435616143404425629061861837182373994858136110648947692287917374756255110588969394985461202157602584069120864413388265232956960272812398900913149940135250037237600403875119632093515178089184849852952400170376480464274635820355281721863665129353375185020300537395173988159660863850320822737541069328157658097830642497004100215267117176449831725442010298440775925395811477866576131650787453187827458039412425461032733442632889360574210492354260089106324919836013062013893926306594998135985287545502947381087739599992730433211720801445031680994892958186643492112487493602604021370001245576775627814302423373294354302854617582583166334003350363617009170439129835919778015346480665261872979301323598818857283750671285578652997492205069530179606701298333270798431302428051503855233325968411717131919097122391004727781457977769446700583325254753845783484469111791536135116174742634731506834997428548632995067810845375612564067049098725839276351553215566805323683412362326187712688114443921298407530564517163520985279793670118123794391671058026736868096366690301080710370927431088559652999303105917719697405107097204707816435977575961284766443583666307880260000617655602605230700083437650149087459329242385987840246486151946438569704594236821529229434810376716283398422770307632185953847636200002872529903117885352649141908428578420756224018636622962426818367156573568704948771213783787405832872353072353342977394355138480606137165998715335985279873530288997852103196822907879027204571733963442524425905833050495510535112802705270415363900783111507827426287051170809199798504116959022282055935213609544995637380452653395364305305690744321793725764801204890304024475067362542746024769955403151254702340639814200667990782937940026999243119054006570096676486855304367347544501950838376067635466261421996658707134585630558171741825482416709978281480137100858457201140007097916127576721157876667720350370061681412677621493562010307099280653133811183630156497320839098382210559989180317509998725210187516576433277476474130730606343829794461061970972264674610952394040911146256158116410806563195824234002432698534744758930739914673924620797514572673235746410244670852652545072776358404039702003550868678873003745842272812274284029644574012200897318818848868622012992909018987068269579715175979473786616624644069990053118494197945571841563865608794787414753185289309888018460598084577982691442206912597389128326508238422944602339838072470039841815135796052258698078191012914133500697769822165954546376729700334760034677228432327655166245795444788632003197340896488278218268380782889107907828851883967540919084714843278123679447476349923973937691428806046588876272118966950276096068529899435282152288178172709577062567361777254476129211823245382971963859603353590275562239845506709989294417810847246937399882809863087143843003580304364545889694232715652964720171617889868475745147338401922109930849195243527307308531475718449338453794318343627469865337003055019626911840623496831795206554064057200495179286592933362407476097208468952878140751972531880200255006544724090547284843839982557740932198713420837691900764831298921559459901970263941687275897553997385832589427232883372651365346530944922030984367973873548221759404407162032552086446644534007252562783297876901546708254699726685379618984855910056992582265579112371489018922467899493993538729490448502594574085236500733337753443032393103140202621130546232008802287958587747260509289080481109566714689045795871786312709290954074655001364222858612752590152844167016830749321702145760994697999524236702556594566015672526162018091005566062537306454144439465413680250838519238950355948976770236436492962374620627990219692131120956124317605449321407034033457964143228425678895072855894914732624803872287003154972666144305368177688940711190910733180726758057904861979689889819708862445125941342202327591811734124017850466271094098652170000565182970615116589163916008402421107100525415618670203523166463593590382008119079299644958150756591671972742430622416524343655880232181875749787957856997584703838101726703073555292499247305343175531780087440800358281062023379620015397762237449709537937665569676557862226169907931532244239974351063750155967184002293904759062864990102130247843481326376801317692325454525357117793438880860161334888242545628028044490700009215670873565941881026657394460552715579857329849775621861111069024918654434729985799198395543408888301401022914603045936994176168792062219651736373327840444723966221366969241533483991215242682293905967780063660558095228682574955846192700228332557552382493581156604488092722073843194091535279730273281359044548008515006720248489087809556943993060216160249958541298296061421809921192805920900572573230574869396285054346804169571367945128938429798185648864508467035215932618662100389521966280726716118090900543908419745605549601175441120216091278494766640384784562312037818091892634199053680059503530173913689945746212833938997981515945514766382200472088223427648447940709233674267398126242481956892401208398227407062634121885334212327417035582068569803281934279756924741700052876033293307679668903121307957843937158351799963479046181343269786450525880062693537301106435465997409008777101768115904276463880483579234507257496378523689847944067866954508701725979712851293161637595464851313080144592132295779344149227633347339515714088067234190965778904929429665069047922103934104270757817695593312312404780334570651821906995063375502861995510029435401487223591904630521411129132680352038673841555238192142159588022368870095633183861157181448887746083296345094402800506606888717807754692337995723779453562094153707115955616693124912751349181068004895945972958338936144608889131951401120274914439131544054777779954965027588513017691600105518477384209967575838030916270160759084749590783582168988014163302499706301811871972151566879435128816321788257985793515812838811936025355856302677727128589805524516991761956186150132543266762555140292484990211810516273924001726262738736366725449168192588528015227547484611316749244689517242673240400581046657156253676967460256221654461125251033580512818840096187808808622044207077151694248367059176055122584148992466082667253372621985004673626485383196485804606695472524721748638300113420068454862780172765432821928507994418422040231887664096628216821915484405759856098780008998223078354968668484999868021690952405868786979528958770850563673133466709197856921104549334541670655557596571588170617452672515915362323791066546483478249030782209252986515723656507536193191153317067409901069675822648088895958933354132611703324081087768750490490670054583601189949762084461376185833668048035874390273979231734830817260747619206889789638521204371051556466466927808597658146898368034051461483271199783927093186817297769520533256946348673341760768168605004782916383595381939389478475790126972719698943054402213651202065209480385639119351006711579980245467261990197735773157646539569286550653058413403276065339247129506094288237050413204659108961060844296432392689149332168365228623271910956534913270665722824715886295360047607260091774530199278380151684306540134688383285943443438941180313520129954681989804142453733874403370833812275636250944453691671908432639727356293676250852809232701659811529070703893265174827052245663809186521862624620024456831700720730552959696298817435589428498094759622024704777516790556820900281347953447211502364268559000671823517195317442171713477178594431721658654549627274648094719725587436936576731211615257645502253088624008727495452849720172437283923638764628910498239340815296148593101780333900159109099235169091313579425653070819323835084953699280851888179422632535531256234854153089497596819261726323607637181261725014835952892493569928758373238903088415508725513726171876615577915780369575322259137092857083745989666190111399100285093921881384461743582873641516555025237688795287480653567162341319102711776587695303523390374593307470112074605968141178987032285715931673374664184865335428569443906006338838829067318873413708328069030532822475312688876567948376911122463910871344705717639310225798349524140733679497924880710604362645020282292106132717663796463630086818579101218061685509236423440432228497206755274454110501429667702807956908497607084902136021526801847853700284816946481709413650658072547926618819526805125032521347831869432682026507649567501339261988147225316124400021545787643189257394350557194829370299921307515436617067464903022655263598158065128284411952587335080964778089516094328747718303414123461864474083076293493982921615675703417737262771338904108429726249758549410143799717238154402571847761217094757008951021119343666958262873566720151600290600548800432794577249348538310553955285052387141136321293397094712627697255112043854374160702620935427111595105798418718003405288385995675504615255717097009091733912250746570504288887747988137163998598602754850431020537188351001109795640651734571637851279393075842875413656720020172339011565686075806339221385890091239602426283732585885817592492912804804770131473301193700732145840535697755789503807881107756867276063133888590247645455582623500681663551267851325442226802618569136213864683803464669550870548705575009862243523070090348266965700458688656441645673233092891561594830966267477368203054589060678163794184651582569353182260218411038017255801148873236848635177718538578113205062506590777663295690191098010480807042789012995432621800658696021779741062755369213987195075706296218805852275104306457903051622716310838724581721637251086095359301572142938686724558459911503177318848337760426014221721065923285378741853976152422366578244644187268216372807801476599697399375804937829701831079410928208459347282217510100789619334249371253023650022967591020458505235877753548269671000528499141641527660981934622698070493240504496729692816941954435523643487801298033477813547500297804682170604106440148736858283057231548492489451235880550530768140093743340616456374991108636229838645143326830265692623088283053647889375722645561886482203354751306028600293492158096616078406870859325355936436428613064570790765918194210103461760544167604479831465521802266968283521580346166915754018667300226659371591110312995052182832121542503219477006633407638589885875988182782811887206188679451107175160555354892185249225471677893116663018575017123652880605594812429034111337491515343460832368228421469394283385984483441414840429452491776043647467870000029386124078162636661415297168319854993674304147064996394398328620355149272029745616153529245918641603168475652309916150280026215459243344043639041811001491709157509155629904165669197096983860573546642827091283876569555823572121194657859250569522380789597316669020510328734484178603390680265833210642706136197661986065492530073283435199844834249533593583605660769748574274251466039972707154023594016582246231226267503460834304483961995358364102179865156151095012309139096863333279454699978934769938372566667042089080621583077797847166460147911240136997322010970853295165174412327997802095884858281395832374734352079177149126664329641532638368037549590275102125101402391479164259242177128371268653647399688162975721646556183162875607310220101280101538922984068577695756386208988715776668003687773575536307918681222559988972158831444866020251923138540758646612408702506405571659670498751735485440502513627908977835636810583361057805738890216506805867819187447368797603986912786968747543746108076999090927339254294694477877422035519776216555432591049319157379522585627703754304233576350311826400224788218317471155768381450670185289293141982988679381344206643231233062962997810993115188608630063370771436295990398898114085767209699774126870934440514555582144318956243296168274425570914181942374436923538206282220466392134805628749778649188636471952645853678687820613088232894385205318070034541100485084754306855501264368024664399431321107350794622017644759583375788060552886548333630722402562811710620433702686517973058764715482932516586080832563270607142724115655952587121291657086488398816440826048345721363715718526535385432026473494913815448617921605796160365488762676977120152609854449480801136452107914424547018798036555529929871758984556339679363214573161803021830939289924070187459144686797157932716247967714516712993725023030379862525719521023384837976961214510324823180839927716707171807493224028325261849442901486841429776884064768757935214462676645101247260577697352158844734414663987384092225830629169069386768294554764313175939411691598614292854673218349145418547252394467975940127051278203712461479172840566096669322362761252044734701116225170818772894621229612576706795153471097169524562622195047965209081220914416932130352011294497107500676172082081522102095446593491671682398718029801472644926721625411129160173093583074606535049555567085055681568923850701674900483822273697150479271488895591237836872784460113725719216127986595692687677270246226614211055338425546247998096381355520108746659257421917924087329830180654166744138056709196176781223772037590974097240853161743072106089697954501607889930575214185646648269259662162394287622283642239829220025468017601164028544849715981822525149727684905642108295215170838056962088834690513477439629950015618906014973754593334340734959904856673230315070035196922054822929894766093270011572386478310390311792519309979599366835176045830050332536691073588260480978747278398939653073699464451992473848748413057887582946381043982176970077205634393009234884284659525067214436694619812551801420616327428885744838599002172244688901523095259969481286028271837800187198464411392164379160795931650449390341142372116968153964388656818167504310895625293912884043649372403959368152980361790872686102410996821207303791543713324701156827927014374938968756710211174809663470765738807710297617939679870177313410561286116634724677828837539739712871502734007215135810350277878023834005388197684903344917002394861561608997227356715861875462393107275493003985312929809760564703442497102254773210094263793662028345392160207217649788495306415564380988756604360849493399725666858406271145894362929559255941596958948882120860621494672256965588347962431047069163598837446914339589758746945063019601429016614900926176692043346105869232752204708777597743941894593934007382537071605451427618825267224251087462262899778900220884216470816145296026416871787959153574552215580268539774381597071198864503859189678846395816893900403327598665364012253355206565380738461091598920430747064020240984186084002105612612539402760796029462837659366331472589944186331850469783819569031097291167942244817683992300291633969255747852030695970407982003485746415254211451686138061529429508983637797114777123435018007589195123623000815956779466602750555485615870586717728897670347764203850288599856183450284079549982637945001669285061295553627153872781673539614693842124052074906400195165579582843803316336698971524769114309013161929041334923078285146553835872897985048808859736806867360830769139844135696245916317705949007897943759864433721164444570729559316952761363874345834077772809137057764650689277375713540898929984660566835463113360510820369131083594215192335877517629910156167581020211332149194771109812456636626713375076923642000057668746095033982735273515240720953107895499807543082821483301876054164484954902007394057352584408291149794268324925569482456479187342430939072900111641771695024804293829803902930830266822876997979152475462026300149938005626244145232990021638279941276763032731975254429236828295673975931072694259466847043457245928185175475658730973895768302134401129452867984485997494002484890495770461172668468688311860921277902781058645332910373986903335486147317762889967398705841589858620593735290237800709499260309773735211898028998032991766932986242206876645227563499256569759155495975778501131993967351004130236743707565072713907101565440249600046142846010556795494101936973760633678706521772795791712590158520973563858806448650324464114838031890235849242937171172117488214104949003020593299884227886413866094760354848443202679918946910622018940509546907596512585206526523353382853915506514155573867351492871197523897746825970150121766881458482088625572440808574113604090612680633517337859292927319866411586705988992418845177448149253982654878277437916369401798211620969739221329275726626675129169936972034809576232555544373542899028970683510748654778401000687598895153430135740492021634427444812847020243117029241218507894163689282068635795231933523420031563205398305277570292433968228217522308967932758768301842458183110949246212509583999561334758765293475743898885821414695351687352015994190665186797194156324266573837278629027695974521608278542891469021601946092485525073998530797564482222710175383443118280630546950309384423926443802304618897394888986840840369602736516237543736328761829526349719588618778604203289780191136713197738508920546297084515213268865737220814971185493189737218212944152940499693555698469987130978586652105146786924822435118590223983478274324499156784525195193508270394262554734520048484007369170476284774984710042050940661286139041959559161036903546123036280527398313314292313715316021050046441383579900512091918704975593573685454128990109791262411759955127914069372256474870961888528959509836648199577522552033966825055777278791528492167423166315072557358009351162479616863961396168271380784676907589734378385542400913385068696150193820584135092531711099420444555373815970792027044136219967880712264650634579996066961833181092298919302037375427992161312770783268899961176852996019811327012670945319178455185088609260235211576867222421260390357517200822710974910751556770188608398337194462577707683568349911903607970776849400297811775778521028422392151390142295290865747889815668398284437446028279481033427372984573327654254896598050148858729829053435687529006255252953730474206561390851694780026638760844473814136740737521119197180710380089020441204826494367978161960579523095345005932516485662651066567336753070744294892142578133714135128298806150393678496336377289996970706036764618452014030836282735556185832336711455945338598338424097573566152288489337839427104678812210254599387005726276000661897955681017674170671358872685726832340617103118538951902072427208811443365435297786450072399161017792644068144472081681613340509379810409789910955376345887739953834417070080478474095275004154195828446758502865056137327546937565788402344131373526232365164559440395648937889942921364183401837431854145690121536585005035962635111318624343158886980321084508237638258191740052606015335414586327715731550542339296873535607120567882632507051620353130883011125521124979547842701697881386288346501809311155255209053414995315295813290773324153508891340944415282990284738902625636117705757172282468309535250270104820831652931068574836313197505339894011715206729831291940240608920583516408131685221396525035116620083278944497148999121033725187840768424484804335260190190285486214131180908994232969587813861058657725767140021050965541463096150267517899856866277842582241611380347294028157299397086370720308798377595825612587324842070858582559705469820178838647642212155148025014999012872641363869185512145763138314093641756785085137541337699992102863266793450132282719965182821700431010490846323059223833367851332461096895766412317031434908726438555001783429055787353373317451997080474131285184482038729443478267761454487902359114979049005049402247871578982719905514570754785222434308866170361025645004111950467001665450502008451507549932540278265877558026370994558004039646407267630461154042413501795090880143071043606087394635418689701742347057401391381794824967689577903841522198523146140303259435346055355223173130679153755742089915491456723667624473800311564118857389539245629562634382764242597115079297742531464811771460598590488293217239979903347021072018194158265068169085978847816986617655287816168270322963532183340995474302851076486333890373555793563898019461008523049375911003098637070516778648988100657812518788255924116394441764567489347749883341987193930084501262272153283819567562327004998830293083173769589438020515666548786118100466008632064823747321942921477490794492055983514711339809706577972856210050078018870358578034496264863388492913963533468446404596093664680871189911574549157386378384549153700949837476808381343521195813634624465700966347103220346891664580629041577364822716119668116571347931649883561399061442513033843948715504306869476527737705667962123479705941058815924090051127570126024571856378749408341857628670986331952689807843419595689756523433670754494302947599668632893133240498459263695418892711754344818047113006820147036509957634718849212140606944875748604920581141250425057225315884371113483055160806189175480629877039528449999127148141404031026654267214647763883851454981622928518836716667393221813643919091617254483107479347826259567098977442635455948239345297624721402976749199974983648219232070411141726004283351272824214380361119831091814256256459893581061525157590253821978303398622851550519662566787703739290843495210247240794633974279956151210448490982096061399216169784922568198615266861306256106341251191698115301199439891932994230169789761153149556897088601535112513145864840758513001475105464412383479215822972977946847356684586435932357624110251392494528357026117385991880476306000247748634597209451935462345032016655650302886537312575559430125687752873643247088359970542616407828394267461472686249575100422750844794305602739770191449140286805727994070585634804844874451195875222511866919347197117422869998243530382429899201098294400331672222365740982989109538824774776091620344649776701929086988465644579935618473738629392138804236034333343426336299277338058579609951304301262770323989876326197884572671717406875276222691060205635844441300781017349309744918331826837271798610539623044018687706223501016720563593930276248070337032701770233610117380099250260661787518468315982925418935921357374279426350172584786770086509615526540526519087251752270991605532113908196324391723025624069312680459549211135411704534707348098556426868124943131248328548607767191786007185847184219907772453283769212471170349503804613428595504121546829860611370698453191808626215017513853199083958793284790279851190913675287804708594435719466386652518628703662300358261807282061403374924607426694865932214571472334954990968152581798066396773708862543408175030716850240518564894810787283181545145654632962437305856041233487147540285119650474926695300538236278465898738058448857838428932465014327813168812094552939397777223286094716489014042325186400995683136348263202757059671162886636702900595553769629928529394336256158194738660281116582505806536379868956923523446590715885708130972433399727774527430261011362486042165883700863302847397725304127138173919430577395572198784251973857793261656507863423297736835150516710831255802049081811078868375538750685898507890079718497990745483322463167185390226875242056654091185550670121789648095168047487810764856285161038784978088160324389584512528480135915015051080755055754350460025590441279680773215275245885450532982060292743850225461075483495944000336840082873708345347816607542003186276147526136324075837566187574804635078297118758679790712325223259615842848572796330729244727934882282935812393657808458652335518676105836084206185339952762990225618430210561364729541006331182376990318745898424887675224529919361690101721009124376830319997685527136851589407138753729420999787076000567212537278664850293448781923384924721560046193830983631997654869393476072197778722126159688059991367119528583568243156647876500325780776985414012046180377620270592632883326010649286060839255522805386758599771823643732191515770837631824732875848208698169668817868358147446125772975856645871556843658236604166805648576197118527009806216669474206341460306738485036656408522259016018413999045968283044703970660579162800993146758021608500625998960637130755046954416251572842997393301399010269838394790396002161718775443285240085590506780014975463970745309539004357315128385888035842205132176486967111340503248485893405922051060085049988703063456764842801038242352729927626714179241985963179494282972907542430013514306261224930704548391609243442569989757488851439641480043887666915747765653508464174538940350334119427510313224991700750770198819946533338952404764352903547096905635082894173564464860218731423740364870836845059486197579876305509773315359542155815013740307041899118140193368392848708064294445452194338002384398289001646578824819186856570867588207484336026790547403271904408530606958822307611167568683215740923705591718558213408341867944177911461957819159173583280913884902872822421998316287785446742775703978774768325931693838964212136279679820575037038193699951003334243283043775704160461137392753438070152091873195337424052449753079644570997076027284918718208717409979066196638047150342180675227074617406864112971980643878382989292590592646106406667998547594165499888257015875569980043491784542726454690624642971052881997047364214718882581620743893239342735351498510197769730009473685283724219064405997966913923333886446121266787283149281507831419928907979564563647147224457030023264840397245125936339739648412877979278191037974985522594423370610962749474494945254585473125066622754956899638596484288565193678345843186940327090092905975201769197930948412268120240129461814340836139526029762599606852215710705831063846334317603012224004383113473862677661675140443130277634250083737719336110892775115109574476794883829535274208103415320016786265846403427400863430629231560656786626466770723369192265611544374334478328354811124341960669929931778552409535428106782324083292988721522949230427787305728459918038568722030263437487388242015678702432439387359166267007720975587200270998582049649513339173681108628864190684957174258802701916966136900031493600650095832385835242495449513893511157529887793445326497957203095647791548059111982827670558061197220265255312993225807809339808833276546970898360055515965868338481013509791561603271212453236202145648842806083806645757719386859746331237071999865770073902051770474368971347527792368320159976400075967887964170181747888708586641718360637617054885597039898288813544853580605844712687507360765793596596255042906722219559914944683869159458143711197252742560040677226043829241575422079356182327659471063909462815614369788032616242801019049620934322219907963589686752326762523652973418533564096903926049947893895351406707851286248804845152305682774880723306275831731306694976660029253501555101739355172117244175466103891141687058288378155779660269079575202452722940314029336224965746592179971909761789405232150074403560189363923968816565726353625950565467468925829562643876175111790210989572229972556310371966941653728271381326700732573362034967223121592735270833226665363828769880429148392042927133432064112631472733457444674719476829527849912705470340351861589712125879055923491861612582987933235352701871115414679562831728284003788514702156305178216435774231415258670394601803264679298960197214721961243753972858247649946360630759309505042802790488128156314402449144278939408337129458662552596723035832105864825112402066260555072656718860177436433415187018487415032325027942634593453600763935251685987127462711572147098717998112591666607900568111331534518193373251193115783893749256930051518299039367670101853430665191555521583514429893929973388997263221245898013127297999060429942400674155598797333142966592931531398053899759009593230253291870873943088315811272378610349077234860705578511289018731717579890836000427318600910117290619774182560583527914292013615519104509007573627531155313149332763392259215815771214902739613578082204950275296964652291244097880655796267117368965778130565990764952878579081815414730121774591650787911381560451361745290579333865709433617458955203083301528631602730854603015094541030599063261958354931434595892834667171909333492321868171761524924842545948421505903030869553062504759197237457572877556790382171893746596245355418829539924562383997369001850046517012023643101391893768243035033398238471547070367993650239320412096363186141404619753795875354511995856495688561668563471728835785809589591512685627028122265015660628530593101296618452378263561305293750159187965239463339867646823736192556976552983545919591568280600059937906581482859130300358069505641408199925814066229932679305107627166807497140289586355129588786586868716687154577323852088358062856973336464348169145479934249492607201988084384896105974018768028828947982776977198526566918893458754636131181477244063774815242947826589644426977128119488681879404465637935032018998961878700434189553280606730675359482298283133022421377999240603088722348169483777751611767508469775593532065895505036266760457896299594386130701097554287565398878390625720856863121557653711293704444631689909129383457323454095098603674566488388742333238577036944884808132519812464219261371586591217074718308277454686160924267950717975319488768802641258045822835670425011638608415003652681959008951005537535456445005360069826854692402970277447280535353636478079607323128790994017152334511083552575563548925884381300175680211615073958311887870107359235945126107053852642635883152251496620413033121493705433006418713893814061906521326076481309576187285999502163575305175938290299448911157147008098947480336419195471675928487827289959834213344660198810657914319151362790644130812099353937670202094088757164575864306673143639881482711349900783450480072714654711789932617032122349359723947805280968476503260372808389189287971492744223220556801006761592183835427118301454543756262788664715477835609055484136580925205254436489199481770559717175002972482980417775754411441418119991159917467677089601085949837916843957106412121143899211121430167564549689765039949093024546611792431783125328981997047092814969531751941363990016441155131165226409637768284465745880809110676941673035769647688664458753958226440140000194368286468108115400906121577605864155659181758038139638890584105821285383540654914015918423500633807925300444777709680781817421361752134972576054546077646937169769668245308560298923343305668845067306757747798662228724916494041764709464526120306786550900823549531418984770864360610500287928879863517760004594069020174300946249584220891978692988099932293045200834668462746163901921561533181485263949024249591726238576238687523990228073977438259025539708465161898594048461494448948642303029524303701311687904652524439744366844927668407705846826814057899975100347041767468844549076715793746871699803437841800822605068602779556880771033975588323821231227823009898411718319710471352675062604398300551764009057598778297688854561327775933296471942597202932172041689564925215820294189708009710869233981904949060085375413391683491452133024777564367632801969155228733483680520857885327277089459818628044607671829799302476712108903756454061466671958151619049500069040208117220992178349799143850902760943126624422726219923141122822475344090545136661319570960261051923644477328083108632785275256456592454627784176874382221278984036974931729825498184341526357121248109711587141258796150243519937293479101243253707370187266315846305185921862149430895425496447401331872637704206714050711459584051549759092930232471834981867543861750175764063367445648072816846877889186255068764199540884842968196940383074759889630979987501182130055994050742655565264719932325479188910491559156653750363425597299475287428508746732324421873309065167305064194747461291739443191728297567283178556095204372089055809861484609632308312625803721634391114547454610234582440069062661466823711634395575327482788782353129767177077761718403207762978093940218170807131783328609313116996533107231253043511415992855723509077091042136177490059057179860192952338745474418265795845315863529873699400359105953183468836275983966377896317353966259422650393492169165808927235101211042402879401167745876755230477382541377895408723813134422803426740437328339145643641335226379098192891404037646767907915981232055384815815639391025188865411062191633013217277207034418114135292806154003590762141505805974723970213508513922215009250403289907671906351777806004212205459221307403682145790146565486577763904454132311364468273820671825880235299497348027947296593731256724318692868076854392739559775831334629803808007142943414435652505099382380450441370367194298418035512360739609500442395182240505819091915194384942651159404598331042804451476149656507796072344946678102844040919448015276870368699235599327283144222282468158878520909548974547522299762871193309764931488449080222526447805931000843970241606891654776278219080236294823183669170306650692981280591460719074709480976681120374196360412998537000130848454726132642384798878792103920881729489320926191614596043110642721957357508060776618845205921385971838622200356723166060842771859146702990916825611209837906307265439338526053865950535185161809677680187442398887565462183524169227072087572329232886055597696310625383833097299542412633114320404232449672885405732410197144027626027937760815108678274071819250202470897006151786543513282771241835454675083796715757255203605264342645422603852410156044133810301916107985602512716465795938143737977351215992541978013938869282042118313017298923685881106147706210331617297022636704888815286697223101277988328992051363819779736184914042185815062667127416874233538602135598620544476394000778901328826826953776688570956082196827398242601999042935147294072615928225529955030130594156664075722856141402653298568978707884913168117269089305248820636663437135162231154349746316341099229968054813457627071924730860671323279263966024196393998382416738606040788956893501258194603210302344409571943791458283416706144376435321854725147401725621543894496764044532760396659048896158306641339856847672228365949464714156728303769351745723768918278385629986534369619196653436667952310051931012819985527602577473745536060283267241728708081150857026102878522463019166602905217655565110474390174161991556600619817837583658466662249839448117355786561867543492144333699955977179898593320403995670470097781621433521298918783400313078409798176591011064545645331910687578642449885702756911036245969836292657243043704266050826042029472911282305209147702799550501147201993019009704317837448040262860807033958021223286358370473595664415574868232920727876228827806243073142353285569999778359539633671299737734830525168975981326128051066215502217578070620116518573633544078208194863510404709078153292433025192209911747225305696110364055149953723207426928744394743890943219818934488652884572236389662437919595216752897611242998579497393566505687249673326778809134687555783429989687559667160375783641233250441474000813598404269884051707920589672335658441572645959493708816745454049584844811388510107166070068207639678460561354228361969844894073753850140692683871059469474566324455255731661262574119452515514992715096317811339514382278236760042033678942215644688109378395624464712521515707254752982161015938563106947498856282347721082646771035671782002190438834987524010800039974731891681564168060457987492786165413228629202199064562505147643607733440306226337445702924308954004743507294868781592398368520361193378962698331206935551898561506460668893249962822056329633450669650387070273188177682845784175572338772696360775436284497564709007078586799935121412576789105945458230805600819541504610622312125706189410994181066466524389858499854056509966441859610540569908181164830177279018054864283874837537104296340815891722583444096510533859260522485921519218817466383148467729929170149546862420727277252660246875749149466645372058661153723104080131768072649529517459475447851272498589467049960132795575276223181334280762992603208529404321061740157498805363020905259669336089574709208438843398436099339704704438803634191730631956139392455381378877199496776185302499534244022554760481129535222895520447562788008185575283608626611085597676889994930052431759182411959824842325281775150779865086341750767090697693977756944085926827313195137972449583058097849862799910197432118368781644179741932112597213952826463211565030091719522516792651995795741130287540608285372379750349850946069945067625075421820847510146769280926747996688700803882339854164037689502915136683576597246154017834459512795039548350871755103835857925693068301290256201134387422296508779501010111150657665587864151753753176875558015085270962652172525813812084809504079659823013577092348024976546949916873039619747110282168359838359100666507910683958059425211228832776828238757559682520844447074852459219658989599632782955450505209756300786189284580969396234210339257685609165409147284771778512316006435189454568681062853773297893874168883681656984337533374928736624862702950246383705749630678659767010325448536627113589538774599774702055218829666087736906447606586487908464643205848734958396862397270519259069842792289433581373811177033447976987744457187083333157976227777872521093579810559510184705635848801751317944098493588944871152248149490073848663636761557369036509142841865980591681779324694275592594559069206782624147832933791098907743734504267997844345341480424477077171904436797428642721157389707116493021764942638592132033738908621689589251802784088876835556453128415586093180744104789060676778754072146449099537703717352589128974601226465713836020829466659577488673168927966787543820808346128217037403374393386987410228075106265081844373747328475970609447136607903588257971901505121090020809465380130041264284284936215375728718863514940888873409681150365012718932499618244787315359874175411119710831295522424192494135427555655160083717824779602501397794260855887393845589123384513374887793906661353024225361113420889379165543529376923902201145110287884977873195751634183160164684719803387058993410288557188554657175405592103622938658953649608683909351778477096775706929083926066170102584177730900108363841685178576676089770272355278876200388816345611465834630483900112908220521560846396472302334099142582503839877367793626904711512925982021734416075041178167375028785808982023142511821245727106277885110404337019668391113739638047251718797623293769696873762919791222332368634715069048457378433292262575241338660219401020720447072962431778191802828607296927866605996076915049524630118553046317580665002364122401484130073372810153105700734094292583875305177361151279082927915078014739617641194609006829359602087516912065805378014288946742057715073260427610038821861931349507749661012507948509176626273676810161542196037937931392266161609679854411106101861708832664334715259972534849915597406779812241257810451714249861490768308556733889519764945312800415961073242393757480322940170142522524441940012126855316121820279566454938330285039732630002137173353102918369089014696544716764838088593306616023959235143452576856684566363710188759212708137475390288731700895685619666193208936934185040115677457255839472733260563055911519394408201179919823048355465350756540228162137433701948667032619110302059561083399083903619411639370960489190031693074943061840527073145195993534482827527683513628736769632442219817615436136581422111331544375362163764944975122274585347875523968453618532269058520517838545926624429295338889480057273516808064343809227238414532085147095276397325714507506325699126978350876339388104720778936627179469716674056278447118351451698047930451975843142908180998454132199761495307267100089986113023848055250619685622036640260815547925054581618034587351372404139818341795407530756709456472512179741454315368834215827714871626966802570800269605155920672138553855748715982411123163019876038233198469510641947415113331061796697284418058882336153418921654534732088357759710155813936027570913167053523622387617689130214472257744450545451778773784001988000735943304022208220780783460373055300365232867201504711367941913281187932095976130340415123836252596633116125286646252872971326535681079626558673083025878842355797670687812796468735076883104086998179818808138305028337532904098360879252003723410460348758185667105262096007588060200752577458045315299764885512610509906911037949324951885836122478089273770733192129284946711412466809315608566253367723873182959409813373492817895521017396640200410345378830440551291892858465358191187541725851601372518522156429878325933369835553676439042313455355074494244927908208990684806833447626348208964608288159026559087101345291359866944131553026299183384170883637329236485226830920400739154521624724696508029774917885536208488635860391586866126140994932966318616918354133218573674832157339285241410327676203879001758122116684811999756180029570478115731109770229511292425522117922227990959483801609823320909144101242193636486008020497085128862332496798047107738403538858994136568271720568132793366706987251967207648514374587624501789382881002225683096002165309152251575074789887743130380276459866422021799535113216744743966702818723777310250157193583218468798829501446699021811000316085383981277825785088218127615325855204226096895872239739236669881236047340951182319677256257708925476152941634246732299088578493938279834310704933114833746287215811598498656018235863774721096939545685021156503410755905565091091033792260669262125002900962829016209288528010464930284360619219717339765749159430273417778330997857265609358430046199632184857416803614214336323294543492851123045394179603796787586812976895246033032082423451154979191835992878055678917533864589161822051804292794160298329369985975984307593500971709991419150201418188478062122101945245634383378770231686889258461213235000459514367002984669996404525836491798961620608067060955150596718626861682788682116043843113365828113547201316031795772351648632299807993677973722080716601731369035365349625574064145206343875355145910008211642581948638159858601689996881915878125368230854341042027559302603303219638818534518651555441253413599517868670323048211643428507489595100681549810154781513034572556457904758039317643604232229218542237842649262231276900441826279017799863259375462922628140328433794087181288212809025476854910934376798930264072995104520793566363401424853212770924658010037939860914470584173375862552809046710655892554884185010741645413496887599045735301551975804820819452934345386694432012122993925872827761046820867897847869746346144477485688381746636698127094496379934150908431378960637751292462526324780983470633740049067652708065023581484134119936891965553327802999831499343361721741821529565094023137486365521539743328863334862883757544889958816200916327302107603995018151540610757893184191404717969124135579524328278447252079386853424369941987858054213231687537995264985806899737710508238479977910736073605176984211868505257281982529443330874523239250007965541402826357336340773131398965222168929139630835387721969709392897212446528250199968909560802483292958579755698372506308644385381723917538963186987677628365827465767854060204885184395397690615778943146751141863955067642336224304990369782788514797911660541412430876540554835247292255895568897600678942095848515404348933708009294023102012128945863782767546095707478366464814035254853587419060168948486642718108957318952879155023225052016300164619528669858025395310324791238492773532502654012554822163818840703110416069487935966414385291915258209822577983337687687370023202003552257314302418823477640070168080662645976403631699569872967577033688031917104426281917975420874983926668077682112898906125090531889667469751734661252998677883042549665729368127229056688826263640185729262906572434484961132791218641799246105434840670684621281163417841955365883212871963281142215056340674877195022182604035758010130567023448467009098849431686976253358849909852550319466173133997070202068396600372813009348793993099212125999510563835978363636619154743751382958717677497316103082133779391020614598852538498250111676400685446517152689715854594062210971782188688199005587941004120310490891122420340589393721938612023681844909386134697840604958578656273481285013171456675944345031947659990993356359187766429798463888290893136709370932137692637044513484556346600899284748551597953953527361248908566844304706934037591504174089683870205487354903351622627124532724984685265563345911473888795816047886771434086524344106996131591677370060481300165978721693780184490213813532804104803465487086308157897483666050325232632031042857914535684870421360326240860908275137101837434668490966680243503900442214860838096389919692157286635881389570285434261079245801781747224895939757902625353459096172744106903082379239684811710641831067747152556197271955771210929924918318530615987471899343713897576822758994030176509271113644900457829006741608979275921869031943393233415686495739491948634708626780025632605668070734038473796548629039509346473554226655641668304775882098430266343660131363913132072174384281807423029226854614186818842479553250944278457174017027539230717995476569106442213351841228674585567592495977162239358637303984033190651254754326035473087846460063136148435846668458621756194586941413584529938614405287109472141126508614978973537030892171737915210511175127708285103009909708701726625070043917696290126435785328412325586597164781408146113565172797148515831401708667069369360609298140417261617665827783118500602422272179111731714031021041597207080233214573161987865792683025444516832671978389198242527357858458840003616655134946656133416530203804087245856013931426759435685269265811269799313966846367638717974255270544994827815960454747415822702411503584551596267503464338224491376806814060181067744475244353359518056860348008986507475156500291307442813243314520201243458337207537304516007853555358619963119639228335760459900861633980909675292176879444247725632408946264034357236115842043370055518221028872679536063992763849829497444768176999183043064895284653953841386846987231849740193526728467864487174083597784701810194407286904926795712588085204412787655230548316791371245112044906535258513620990504007625878063458864349906348342335429279368487532090822891727886873130286996505611743058867680070376666259839700631418301733236384530502492275866308486915520949081365607002355365450556439080760289549741838798129272400899929795278248289600163484184951377916075882435466504530479530706727650933091370815699694630777658794966801860212305813279568531688262719849349923739331047516164029232793297336609915042689466591393601918820642605841922111218430520531434020452134392586614383606014959598857047944615385714899354742298785484291656414646286260087558018423363106053327344366994426681391361950256068618500868994509745290398814886343621668458236165658694489391343984763124453686519038956764272720462188788397035474519369589898896823415360450473532212005788310149594067310609726116422344307129302699196726893135242208682617112273183231204588611336488339042102627062190579149568344565260714393281537460833858152571634428221884549163100137134627100848966026869232236519734012361476868959884030440341901458183520698411997500694559826415676664825078518103227928203176190111319046891113765599830518921221585203499909259965139753322286801775646705161966513091906970737436652976662444927862459925919597075163122577897504006962264190720700063228032442473241858179627319672134222708194328599170686036488542307278370283144340815077060176327752794669980390807784963747379541332577251799654494447660753282685304108182444494184176060311844368309682194484004865791825282579334374628119098167431091905827488475324442925064476931743292187950796420675314146104012213935789374820983794831043391425027827399662039997252853910926776109573358231476957935338053108901771609307507032341600632955573935304282886376381321341111208334830731282693843359525357265041853384518845043905181415101186931633124188491132722460591182675901694417478468558237972969300905317236908890724877102088850723922690815276255983504181635572158231179162950101551368022105192729780834737096964611887891136573013651234128515507158453730546228390363502606862684076846339610925638102518451820183084206133458408136200792060028183676353775948173844372539486531605981125449982318080878296967668577873296059205980209000073339008685255843992748641981690294916045203092130727053029095756943247891039287161428062763413324998371580609038005213952927175694752211570860571711994488960051346362582086818797300346337799358508685085444462357927950130152538648640271393940212731457194635623070963986521222480297057512084727374246642969823926674236600844391271649907477138682607058502891398930209148366953887646537601288005123351177636860114370040538771951627290797437650573699258129793800825582510494676893937871132966487262381463811382617123731676444530179634026921059357390249428910800119944021460292656133534786141922551449317307174577624160151237512873620896640236787377314616148294173675057090903030982851918775709948448290893714933673335160820008227961656702043041198239116739306417473376120505785771461397145055349722227104030749113338754868967914719678841462129251705853570378752772506465341684519290856801014531666844208496222338874032633580302983393416436141853054843800714580256953214697664137886005147488418118639555974507560437197796332695736716103124841010881726181654982698729253650527942811764945910933215708998501596803010574552890469394505659488977531335435173661617163644046634088754168845586552885336765252530750122746574684987630265123141320254402024363277751821415004254291846602213987987101334121236038356665891296395894702019723442393764224524968847143821094059442936501255132554708260148119995859765676855227760673604796712271593605987207851557036823094777219460841284901827354157821983795119089863036273896082689144962215736742527884400405562590370247920073152030372494268777005059743895450249823585834310931682686857081896553076380919370585597563261067647062170280010902812133755406837959224345935360318969556923771206375615770916971147119248581108681090659231682408978358309118447276729282473366260552780724191431878496811805177916727125033982327976528202184382279935129766350288264779922669741260493392733882669910688371297277872073944065166235493007359057313566546634167745155029633833174533620213592178287877575880064715041941577691478810749535113996900952662916438370392040428151222052285997393666259976952880963600795169930543818517066929091896495041737686934025836281076803188040066401782306760463808207857969087731337461299906369751202823612890179115139071486711051898315376422917810857622344310485681390531955959607738884657313027190765680626060539276734968180726516492374161685780621892901123138319808800827268222235196029709821032247916552572169301142786091635731270285141266495763917507088282832581478734954177875661994504474816585344833423948379951866865693985772942692568850159998493120582188670433453410715771044758584757413636649973270665291521512809987983036622199648815537325698751354906890148346688162346461196311240421345258872379588763453992149617069261216932820200191212805512283836510577788901211776162186859798261545173208227366530856874867648189532817476642005143507597255839990720204977216167779570275245499713311649082058629829808293980972643775091294717145594186851037714164727163427835013862539345234408756716493767068885705286750986280075424222581355069885646045057171139643771219389499560276976009371726862771082848286790484847555170613548455770773135314671159066842497088522167421574395884603154046443824947559363475344306085915050088393802856545754123515642637093239574613454910221426465038820137743670020775546085462508877054716795355160616454214906127354185725151210603074610092817749124704694803703233729617642735304404131925373832665883321704900742218982277172379651353022306167361190412171111239442803876573312540970601225660460681905806124293938502376276285545003573564876946243408403410818726496294451386561825059983277186416854991430247711464458658214814757636703487969104181680123623595628187497081688462462845036691357402423676813822968086293298930786794716708758661179451600632475647077527905911794480749432006418213889145325285850553606536239171356750939440970991116984175044457993148095908805659806531332072902600814670663907638317319659714359562107913487836972910368392083686569914454807721030209226381097622308800537125488035939018474414394924049321858348165514014825489123367323183460157769063918313468238545401526710501545296953542461057781479279382170780493120877461493090263852878046740947966449306631105455303275292583873661656798322079283770406329346381702508087224411608363896811726625606153010362583292082353709179175423381155468414005276365952744352563732465606146597212343868661955547760002142285122274899995292523523500244267633186732723398779356324508969366644125066417426550996867361142842353195957887405502060127588621457739546151614690107225982941681727493772466551798907936819501129526262538654357672094835725648144079881898039251130030267092864603142776393078792286890032350692308212991753375673853376326849605498979845207515832355228804696460539792783622888908036941187380543748996842436038660350612837693436831145524891507495572016123400735705906317417354814762010259912216287557743649325997113225046164022389944273318091285700762769599527473941905687925772412173903551667799792834251175020211947370119857295300095462211243657514771399211943041018658205015137833990628485619990122812716483184039076077870530587273076906258478772105692631811655113138863361390856641663966216060158068012918880546682195944990714786492601120848920920996641824597132650679008103336975543860344246579088210020798694484949836761212686811001665055803823557058583581480299815505801911889771320544759532679784917085627245833388943616017362415421232026345121203725313013168777153112912405761127044352532991014226243542423410099420895479275079522496677068052791460359735593697264414411933529464111121144049160813313496891134477059486441812505989817035065880952485245152408755425319527536842538622037474351296009933863643946808597727839785314939678530772336699124388305408801191021068487955353013501235096649651127571541202740351797156084918387311079696512024219244838863968668888405809465731367429224075395322350840575883082292340999905559647489349328182273472999850989361353805104312335472879331939964491858595026984388430654188039032104409424802110371343867211215154233205639425188826451100962758152198950035488974534594992393520152540798775068312401626406484379704996083453234089693241616870910940069688429494323436675359830534120847981513926596971059827021386442134028402430836918911179939438887542055469285192054973436817973702104285084336848698605713067030919374577966764838575564052714440995152589373779150533133979188474756829578418420080948094856750137964432873255033965109373829484618710562364289298820150505951584472057359020946766327024057893886933531926100489533915412373297657675894642989391467006465491310175376420145302812401883854205177921769809039355025239054160662185629432647913719126666773396273334856743058048418838583408754871628731842339129636422691692407859800167084016402766223641516662464011538321340478056661990006152347281712535014012214203293712885399640568020308417534046150839906210891200118837057057555451590989032461190928828923822230715286187397583772641286847331719294082930210298578373402101626677414576221189212245276793831472037544000896508297930292528354654087950661269893526010979261784045372684274668920232603577080563760683066771781720407440604520845511270575601247777593112772096653551093993030162708879647189632893847892589157416963660510460461582157291394209994052511177640956458041171392695536930994179881163083753327059487894763990935825436062893842572560035562313177854789592217230528581816706220086112559117888793343753782844299844272541393189209633738515180682892092220216450567651435961379586823665576867437259920826545100976568014413591205069876299443857784638742666218140713461643301337631291277721741761312900909024580888227243482828051326813076063327657347736723880169588307033996062631473034268279664482020485575877610711764757894910025338634269531781934951534398481902900370714299368869402655408482469718484805073460254611404283698383508317223494372313330286780857218242001462975633398963318578455055261175869251289668855719894980359420837721305656553397423732339219569294787817863532572849199928628986923763544346925144056352548938738044377229306508679017512697384220510538647399277485048726394279167525005909620879631830498818866736490337680597234434179728226295518401977790664098867444748204015428691531232962289148418943026399404011373861276833570366592621666385361053200769338988172872824610992318141261143576120423884849449768392370731860664301639788467287631554653573377477077128978716096275339242995061856160777442226469050978326219401981693839132239568669010150037177451764481086853121894436175726190112835869323493384111924213869282119504030206947806721477830391938977785301507899077772886686554418757039914691838917704615534541046780336617535861714049324103787356576076161429970548082540900890562172336275835548571047355435618496965642104515078937580854676522996084310041391897622880947991051595810399059378018861530477086734112668273364727721998957370986475494029319787558365911059370779681772225163537985269321150246422313400853459214749957287763256158710689823452133599474191011401514232519664081253985918123543832108516069036072946791390202519406753587868185873488432454304244330694003127223914685914677752716278710935036102878251856761016023299264673535761045047852918774244498401590793338663237147040639585568533347518801245442287956485898246465318540254548144423985750235616679558444093065763571877765707094085033732387616078209089988638277443304676040781178145560076704501552871157044187789014590643069953111428720082502275316276075144996844357870740653718342206381921726992631813253110524610677680472125353346288765342475541476225323717430809596741162394845345312023503582759237751414112958222280722991553647110241991937392935242964229121995906728829149695504423598315257195269277592285510411161435273894367963643513940493596877503513575376600237440769241260782696527299511049268791269225065442108990140697391938951886203959230843562956335462069474253779923995778016730269936827470611998934932576738253341069551017091506754118931568934690555177569242309475067271931668201153917467716378322580287009065290808869859244304694384178143140097680507365450103583661695055557119164231472117091391959773818356976442026322693628705488821009929922748950575372683460376935480910092469744017241215251161542942513986703270713236025012336549574091812345706061137458826228164739887625277145874316901642480890785929781006405076134762320263321254144991212079793168005903685152339566798846652862832483109543294158421827792408598922453289307801831743104206027055438086041154597399614969727774479385776306170735064594209487944934339660441046748444123641581000232724164468446861603744738188455707049947456111873968263203761842053944540832827272842350728095137184973148854182960083445094054848387245825090388862067085014510308822834007178162423480343868898919097087934426555360143327769329062980723876925896739284085075686263330858130476008238740666243610469007483971814762906989789553135629642439464339622895932563308107393374325109885618387206857918006509762210993597912707495305685671716683294011233889168429690679740019361943237446492738273763785088508772102817580895789856518276233551499161894024461333426265260748276831828845448278423729557735794701799469929717769387803411844861427750564518573549797355174966195560878056849821840073286155030907485901928890615257110072034330482415911899951472988736454171984662923270456187931749112229119177289295677222274418386127883385924601159852397451945972398040234095808226245853521590530764467873376754349960977448610022279428551686026531318700117761697361682739263194828394215602239508709866189009923502621944366237422182699917880229971849066908910577747383810851770711688172490611808059386171907918158824858637761994714588970299851734060770413787818731664584054516205332528574420083920906308728932464958336021185487460715831159468247777632271137769793695946031024944419926037689225214725621553124628589188777843017488476271399905454734741550117701455041319463425200953883513053104095051825985165267934263313132491966124911359772227298229389295346429141897262623503358915994631806301277897178438283236247314183398252408976933581714316116008851309244112875396778375388375634948539146070195951993743207839266900738446666806036110976081776615230537235666456755289193733933020286123508922086932310242330181657153270897638005898531953221566901938389689331483363216200237757925175648122071844908218643203027133970884072818033712821869244801151604859123878280365983933270493183750272260308394326504218774778907091649787689194854842887247815665926011627408779236271674978442589150325823083185133661983509768708160475477366882624146712446344245704915646202368156389124659446496544751878012839767382161675930765188650614387203091096694606049969075881324454132702793621426793694197144066229399404270646824291466125772514715567731131024030336584513278232768292266625282838607239892363452946244710765775602247945950936587977321884412725162012975359028396457961248600581787643276126528831822155881239611140031550110429060513674307903942171347776955095788329540468419737237059083988301354437994485323263905910936793174187882290649319505693621443507808867779213317250649626654284027072418607982777262441732323072683637786417880499227817015746200061695230835381242178012183117943879604076500821493964192329499917686256014189605362383882420416500733699636491871907726794413599594853145555086268543358169048247316959220661505279939309217351095897032077229947360043957123892527056320896356271370820470441783280303393064114786590427487245661716390682909268360510207372697580217194007391288182480892432203207705315628915607627653033636070246270822442024028616951101264341603685005781833254227042721547530304898845611385550560925084028228045883390231153446264103226938126882272552369663843821635671062167738921932701199010624632928084480598315409740466778495979660102053836862820217499919955275867712553062519054077733105411939059384071585248436839110165123550022877366830698976239625748489300981337629211281651146709568761105595918767341613939330134564378557732715764727620993823820129736125362754109562187000271738162334677123063002355295725991707794233738157402278958050066378371978430044018807360953549960542410305649328505950018921692010041838861927149603659151952847392349216260262527422997679582815668330686295394936665828239390903122026068969478257126307659311381572307782855108371158781336479232050356330967700879094703422102249856681519558711804024797827936325222577416400225975279320433053296282276613504481474582796357372827987789810212192719867864688682255604356330930971121265128098322957097780040232983561209631398055364059742603513617971049282778777974775104851842742550340689607886046549587416630390188888508973561690264326884716724734605613448652847551774276168156085946926745451510558096548740337818667613547952219176059731849787440447513246601424286713275900709704828191486593857810434239814935026357715191446308540323412227851047511820499035639604876653151188026849731873154169945223172800978484815206650343990015274856035060886372602105265353046566534025758259289161610914438078326321440457746386001842373678570217375759520978245112751777268134439846587524517984344912618961573848531122315457027947584474494445905531030398567740189092890570949273669182254494503920200131841283496945069361010205979542518908341996365630061019923847203869838282893035959694721765666038457107436451296334817828877695185102428344317990381559661818303780417795710680738169963548260128528933722631863092583459634696725804702308005859827039669360872359097966848052243957898343502649737431700764004117903899750420292181851950642412503934094545789439858874001478004189450944799668020739595102120118740573741592551596812836547317451180983616670255127147703168803670367170565963327478557867782030141154574149622430322472329838052803867594999766395291972052522904888282569276310629150318572440774781104971863091050003782508765319260839202932368494086771811000527634335110358374981492128017473876991703336623707231908536331675168304881107768400116464281973891471864119414899538625010472191045481496816032590322139369383478391752264258950856061075402536300581805472102180866036316901250428303760329419930815809273707268985134210968014051882850324054853553616491892293564537830216564536584932938359876814771416540957201114385778200925831862056905589078100543625905731625479287972791834144261793692655589599514741988550944189134267406571054149356473919098552530402686062572655057136422580751967172948266052042670370720710894576919621493969929525210729182691844269751276681499511149947686601907500989339631232756724987016956602408533375865854060143869498000673946725577681343315192119810057980753110894497887142663711064182198567923258765542440096472276590894277739122196331046841811811804855827715973042444345854988301499127994216984404530198930347780964050915085007189808119783888964578906805504954200850522551181565936823664252401111627953584987591107560294905752402229022543726205224272402591548240608489380228194322282459444138442346057863335569494540290130258433109191539989634213040779265478433330814873464009117299876182404165246657338330690395572628095045678041887199800375724998712768848797402962479553902674320655968314380079912482248724202331103290132078418875760267079156512849913444488156735623461376033305506860541998438475747287837263091660672570843663663724148463590309445316046232851805564064803777702730120097544024476159382909225141026682456422634451440691196708297564100669256409672472880592390599075788392327779434133895227117644091557017471246727841281004271869821442802412263665419898090188018102926818921672440280213167037209111942992487556167969156397094143207994059419021896148458750597316641494836562010602560369061753331744037275614307424239704841978141468880045135445442184380177166273484169096097228993434326419311638372627758904774396626862624434755245912899551301127922675682446372101545270483446742076541984350932323658132808761252160261601803225567325268977068794912098572589795806873954487769121905920517861422333327086230468779140731234275882090727897446121585038768311308401688773274428260274801500044624357168846487203951424535029038803737556757729702402055222252684661904015911287634278617142226009961157372510321677577957642063499586458481923441222551879402964950249332722154369458405963065723231285772959458761386287907459099992226772502128079262078836274606434020909405014414128790383211323184108342772290545828077028188732385647752374707855098091755964799074451990567664773144104894893684827083508983021328910665411516604246727883754799531590151324837074807322040950596819209361464559436505356874254691843069054399110467631968463434086167288186116207093132947526165442847416162213103068851483803887653384168042892966409321962905824451616128463360565881773973723119491303917834039569996311549699208879511544263495475819448110924209394448652356147405441501574956008693394220889888244186341031994550448621431787897023563716842371459873428521259294684289733707473779823041056051293670466379988032036968320112193469327269104833254699686384066199787881324953578130788316637313048152062552490577881943046527112784134032196317507599809498988145859299650277523472658177581202330111448379799384787176458765920698080416819032864607272107679425801529992258720678661457454879688638425272410970354244657254372832315605042060347417560446197504658643491285293058269386013437506139511272436157474874494408530942182034023702300643564199819857818748026699451315396636908246091779331265246401238208120073859160321140885513898560013574265732860486846702089911911264208779018513583683725961179380390387189215814860698998245971089231518176821555180715040297965805946926772793635698688152125231461109235593799563940081572304144895340661653087282490424173537108357744334769535583628569103852701193145981858469198695797553628481330139489255727873350762420947261657553108560965893361878876014130598014967282974072508927845090620447145007346185599963412287412336423698180654267939752975581411419799271496957170337697839921568591723652480399327394724585860161858227821861856189812228062762230403042083776995413048214262454738353328325968503221091450838013945639680487254494466056277989908056328270175098305109522901218676987201728243652458797904096658264678581283479493185476314308677872321099152485950235901393468728103044366689754576088939916490284537646145333207991082316174227807897293283561985242717639946371027172980588677795697312417037319635024730200961186963419577167184754576850722134425242510439259629212521633255353495225909463340471818168256481091960829999007372199987134308529974218979510049967842557916250672944543547779428899961867690969456723205883860388686271618218740923412409748259232135723574470785359587585574651384002684736427630350387123295008425787646733693354266840087887537961852694104895679341035328321687052616629423822937150601104676492442067068905646790197674675157793457401955420111234035403887330800815663084549595374375187628096818717108121900575536471891212622781284657536305672393199933602569925974381781900564669059707350598238867257715867950099023022235124444059397097088662514182522322361935074096542353506158885419908236280698769997073929973197128063861338812781622469891403312416141729800916365606856648012719224002555196723615558705062953566932005163694311326130772986523711510185618416480209667639123494026227171917627611030203000847967354202904320212829244228174848590088679707444042100581002748509308843493939097522142781845435381515984692649325587565664217390097146536618929112512153033160714789081273344757504920760200329439417416003176421388747831653383530359170483262207797278787833776812939643937286429096983125388246368806013333922746309898043656165095393407973163840895681368745698460308254455970304243904479167709963739337808296972165865672899704865374825836271639634630467701671195420977405839509578404113960257282518693490095849492867826454479034974248098759529758583808859635748770825615460747561596992540330447152058926162997283755375874395233036762846723230844944591948277649594723792030159408846818106632845682332830768738998376156631077639625558496291795145909992588876512222120589843831567752874550909594177480854872560625334367602098621931249366293169394551110143526462534146254179355163744932838618644394943969447169281754377528970973228484740028878866218322004860491721049639746528762820353425107972461651914417013681924588485118276476459492268509724502192336613314198231609079528893497498628020663990645285634619174119330391715878434378810798798311077691926686627970102289451408637911091505408227314251808775486647349563694736385431782976882735712415920949446491688696170384714299894154566188566623347237981955532842157992261565954643978315759650966947041599943556056847554188357213093746442727549979371915470351339412500299369793473749310182755211696589440776959060089881446916051639478049169343023631916904348756095020232029709508927754246648851023991469824030852712559618287183003165826848258380062793230341012890413157068099670282786756347340363823085737158555757031485225923539126278964878493035746877374865750513986269862260614312670423894717237292305932513884096940589945325646923411574160767599556313096574286515612506453084250327217130982468145152596265549799541407750382795402724501049222579331307567910207777262620749789468299366119374819537788161181057619809375815596908804373357114542079444165630980733642758840877928820673739595886745474477318901070949362612521212186164073653852114038872778853370518212819746494276414170202019600334431561015351934464559088837105883829709977241158060011569901412024160635973216466089910274335339933369290149777286072124387742052799731118110849290496011671371941790662783148288010110507221568931902299201431852960178104144889711708970718740942123829070883737428280794245557033931906707918859615697585470595633971718381491740524050213956258557630274515808082952823354562983421949793119759108970788229564031866160284889411205683783284165447607866619376065957907420885303928514525857133058092837657431014982425039271631739201270427593909229921259899397749536389684224103984181517242042947741099944881464823505536525789169638880727967438185695406545928688675636784591259481008390764525112894621816119931554947299853762751755595229025285173675357320435149149384917343076888945289609561432878149034776933734526499093829695003774609313902788999071064721568749176546333128089399853035914655155899981452483450046507304581295373011159766059977775304588365015452780387330498724073663595345723407578073367184236926818183159974659362091620696653504418185603779779925500782923087767797554342670296048035730813867888841748956768354568638547622215204584001635415428165106381200877316558645738707171018022041519514190818211360689704614093874278930733372040830851478240712567420621137093587935321457538397398619432969139529315381737783371811874697857933527242405236698925542890351773475714355220902470569125482568084833941037527531747050676548372369255620461086200084633005593494766060456229047435287942116877430269365347883050306195449465614387754508746933893490421570780958098446966849530445771598321513682862205097342649656793653144614477315601647299026618970397502058025313682307386865531739608575736159736087778873826760179452440842613336581550800920786945630374237562014647416388782703294946363722019400035839730113102535605084001911604625704658847394259622285873126703372985979152910685351361281467767397201702696035416276669315190986969062769908555063633810267867074825595016298269824216753527787714681288743644509285865330489428952769571266456601050349305119047772191894090510896634747288219380357385535593174619893238252166031142556466941427896278726142249110416722884293100472626117408017660155767637192453753109017863547496726957392708038649795126231036924417585790212447155258387515615459995885920070582289149677150231485247938001094617015451848179603630965646058765210264760813074195669370794956374128842427003956214797983976069379714856297605945022233095328628301502246519196468315750765873702123233461461132712281706348762582105731886527351949475480396604921746264160682217741650897020153230717052098326005468608299321603420596031632792289985635075209040127436546432454646423985621587822190999670559346471225261706334217750975427853617297310443377494096804314148137214707765410834455789827049945530094488453040880463661231618141732098752385172164033717293647483661747336757407808593479370861179860607795503611506208226696167364727033327945937506598528777735141759944707272117503830865848783043168924110331353866417425059748505054291534788488255130414157178479760540702339124347324663869605649918855111374972461259149686844366290689313826844129595236012794194409066886000385260307453778609412508186474393173707833973458543529724807020713381058412798398531354842794191323406579920963194741918640249446808527571858589956031936176719476140434492586418860666440614358379286138613554650030240963720352188907683027378323492289239206217196706475678816322744221604102812623800026979627715957148017048381606607083147444990260669482797290393972293470429259430406783689162764577539107118020802746336049612721198050185985253192991603740034886680426253894007460550043361758045031582353961484433410611632280365454896838529346417119173439721789988878250862313198410858281534115498919365953493648979824857999695338990718902292603938273703827362007868974060006135358708387273515648154064180113505720919824798425040378982043345148476105266209482122239219035640170233837803425972582717264044670477756910917600440785851334536833530729465542275197139821855579968709844341547205112285994628078943134311486270004514172782783667003374045030973124233389334905891534165850379562575682678516299344555396198064486723224198236041404888150591497325126236108648781281789347680057215881968323147431004887825293177561815538547008263124579800213475693922289593803563431730793401791281464303961700137299224973085428076134220927297895844303936479912627034394806862200653420012211903594157477875552163203605865334775036538892314504371099327002428235203405619327688515525462085808951622083032438569377911262609689005654801860115239150315158947234538066281522254178339944430310056029869213073180202638773184040607636451267519568105053710413319804800557931686930803607195788570298950947753500368283733773913057351599360590923640598314208682729805251477193325870341162598657049510959857797305848986777302250120115554609068520932341101756529720501183596682948942840817857733982539504225919708320791136270733792813370456388468553076367482311727802649106770562544134813234454094920046051877642226034602816039684134472943123016538163489418570979826698733247694533309537113952337151429976309066295446440486049191271432288077680361603463509894215838182430167872009900250241307380331336546717030469113021413454668249009692318984164684040086072189920060773948541733159074621682972072701019111304885384073172261958084146823907857946685562905790673110788619773106561469861295239926702129393833789501565495433344277746377465802744992901828301181881833527208835781733198484637044068207281787763546658040463157047519214299192314299219739484906554337598838094404426235035336976646824122754924825582877215669726990478931417635789020332141559077518754460664462573949852869345843138357978800244311738443696481353515528162745111547196070007261435505274361641737680032359999217112779623057763789578278593996641874953673492812013134824481009089819738608141327582312367968229062379664747333771231539034549763524074561951101162413265368114228209554846391372268977377143526382854645865253175405179834976014249211083923653105706128230239631223116857723166866932907851003153857247250362731565996658850834528831447058095033617399487640874920551316272875678685939463004671282887776357002846529417790615102337710623936289306480352495806043280446924425395952991566649528162498309898972935883662811910794372670779178882747830279443073173760573313016568658023074683382072792283915589269817842112935185753249204311925623376049728565199237373833932449942284424720529175132457799683723146946512794449353364842736835298626024354331253814110642038380639789561028805513169976066524933149586369960254686649708680248327890131867051306482969981208664709513090040720253832756912020515746486775650056737388588451283907169232139871547965112627060876187880159311515523909147031289995608336286996326787842475671683561177425839509519957550766510958246450212610386025047165335961781625915195831518768226405291141878988830992568576788943091250214524402737715534583482871821852346997018540985875473330113517760379412578818886526392704698319985400196122342069923650436582091269633347907892709278849252194259507525095042663776681907829561040152674060662608105429042415177293423303638265217081553417482652641227371027174622684907743616446783864893792165288777800898854398380070409255630166886625776956464835519124871854509394538976934210760606758648898997910789152856774609680040993406143603776661542907913058505699991680335877444456313025852357731312522827982994550418222564912574410528847712523754390934609831107651553124698555011203844381017024440886489504902825283954408036142472378807732893075594266235478579148559656773852951581555656821948519356023467341532756380232435764087313146981759345846638098737629160059646116363037164336700331812819057278786512885631367833166775910645135399954424084779145497012812700114539550719831837589863120866087472608267839072795785619967401850540616910365017525713449210657058728397580749224386518332189916160724430240374738708824939051512576345045702951512756043434822031709311344957209018697758797969894651140340486313017944576688379566265011077842556695583777176327825065069461643189732383416671790352584822226697042821591425192097587771165153037336837224711694955400891823392150601216885616765218196740629128987712353504510950249308335001767052355066950370561185492094229330548644075212941313163747550873971695608828462923687628724860616866115465069084673719573399584343538673322241808284655517810171307956635136608924360913029261253345886300431028425800879161759032838711342239574954078901397308002586774006614381205294321444364355959216846011974731468780533881455308523364300742105611594313282838572040162848357977536494134043648504487827170659885552732558501932334098500409883301908927640839174510942304835001098907966653105642028887100457554233319505566409844532648919692273115150059149940633762473063499879710469896448340036249594497819148384482278428314054284791905734309844597905410688496512518854388303822557500408209132007682308547418254107815053680776301793844250793292235692678185127988550839904779000469704476724101349186624196241406686284278895289874367694850997758571243323883803194637945769372360402850652286652159287633268193627863563560360605427197378421748945138254170731093558146221178088032224961030324530227141186600017958536200783836408374814140498185336679269373969261249646099399333808118567079402403234152028123741517050433848719172493532931873715819367144722151333312289818688241147250576496364897757745176909729282358578992949742278036381406302036089248776360546679617671935876506633305093940339572445093208606798987188644283270204283055848849476919225018185168648628373409231003829680949356378748443442897573517118368798570950047884417443332830781783735474244556886157478584723579481964671552613752129359920249087013310100805353701185999795835463393127711814349022966346950641258698886042825311484854371948196996254963132487737096931864256006671668066776947109045936869282032162819347559898375911662719776692726933257034062578910925245788790747026813237555048346383898203421942047180745706780913859245066918851753544867458334695131352125625824008094257525138753577935454703134473057954226070409767422794596776210499700069478132985616791572483719475889300873919605845182714689239957223968919097822217045449536049456169545964499504294134782342498129808014060420799893426971630765559648856664309174405401292262495582737508923783270964560996365799544121533567568543596591505568341169044618907317210706733615603572539044201723833182806375214598860467727700004645030520812917996187273065542190385970529581097705906984529103564836416398035859244620643264274747865207847581340626518352639891764066542460034532524243303891356601317298807304032367676244406128549227965341032251426356842506496043205066832053860993333348302855730349105660668884567022107747485505474482341019847665812638270951747499981682404138906424745539495660748179450158171495423675095482359815387245972482685658473352389503437138536765402317697791055934065249644593327753287763574266582105012047238341659378357130556905685748481048246134037222220131934829245291159228287596296782137965312556822173092550027065628867567888840545680596907444932394550888667099023238335416872026753110315456075358952200715843865862434231002517937081663698665495861653818534126450204426875852496517101343080245651290070529923617120578908680918309460770348936863017561982703934532882374257774310868264841969031324117945095242960035418661436978592002347000073890593616168059510583996838105783251614402495776454547832305436282667187705030378205132412951498320150251670160236861643162341308683172518586667019659640289456500090326925853692330189132701998492500956760591678913106128858648266406138506051098790882672219147385483654936665433825880635886235433954719073190892300586654404796347711554373051505095687233762871973510230719328526587898806295927914689523045708997280542845063414065786671512513029355190339909106428445008241924001515581723163367236997408296229078226307260891168645623269196382252197712827760171660682158704442932584268699411071809838982753727349064436724943147910087643062516437506309288940973849966206819385674705608101133752457868405768613337632055503843154605482684762614461159863824647311722716124460211814617222675178979886875600415188993171540306502504167000216258633697395666331218795777365923521452842651802951356465192665554119987755727112473420783551403586109334270449416847463579764214899643400088265016075631845645841818461341391258268297433935656468126421510717306265121666435341420161720778419481846412473261125632136033551296994173519725178860538840046868716410780546472037757402863532120467111100014185452120995348877344846190342915074632056389389144290381145618581920675974596787092885004620656579451906666710833683360122645409566838251145856732626968264738747281701768218642207040496769926185004266123722820994241756658808279331194866187374966744365544697106192780679241091745719869280461320931258410878323561617537311929933846641451408153099952734963622345155565945304947817795620759270565773859444867693387310513723244089163141441436098821434984631143654819203567694429923209735141067483862051523685808922828640050443330586341923960242998050148972998163643828814077094393547681040942049718941809202668013746315486856043217210765013953766955743056466071744427343273738855314912205608468756382595842110815511910589406418104152715057035898957871553287844143703309045437675698581326578763074460898158937360094865795580315586250932264424947330535330320002624177365505194192737078738865103773648947016251468426030636127568799911961520673620696092779715111954730033311795135594410991134280781519735240705043691995437704624748593222171477900833879701120505228370779158653265426104445306975429025532402807226943849961779887467866927308763086829624520689952621524407822420868904213457310273381697717861054213434757525419351772205745099911872753160328599705685085139990643936861932990890276248903778857741612161293203409548994956677296870378369043051162450611462648942436539366185349318540474877260111401133332989634333181608937965604162655785497556390407071321425812822303244918794847506641216520127239619561948276840068657570931544095309102586256798297278800423391449471974897179601405451335080926991675423306173258414854350294726935957757153819464534922670514021423178190822237429072338934226470347698511036191023013850619961207202806766319960202744646878104111357455631354676908715316280717435685858999503372940002585698938572756796363972373761110649211595902203180976115857281351782149974047998129869938161408428714693014420034952338710893214527619192975313515946004338966009957421757557300071103186875649795910544365750289478905230647220249096380223816204203063976713490357677387482484088269478814720256330962167116116478127498881488983115240660184704483289311079437571049659215241257033676581915184210680308111649157314480688688318939046535028029830457452093201896948713200211710711884802300586824290898539313676767301161135906131991232034844104492305477821234238803634577176968198199216258099627559798774452744243433297735471838404188875349491511357963017171761513307844287322828085434489742601763188644586683648325557252630371472042155788148973453640075506042810617359868816777762351922780715073606779728112466886844605121855838952535741953016774393932697534604787750066173560594187015763266586640804078454233959352427517862686750310230610650403407864233600909173085272257522946284223524665021618023782152937040476098549772914274684416909904472657295441059586991625785136819399603180129177292756279641608678961362364150118821847854805248122432220966188431992950320117689856530142341801947244227218432451896393324167573454286011629600617294269249748890753784531255964396360160208316184382003631570655433619424867373506430063478078087996583998205496476446443947787979860896644356862485741261583391661705738498928409042795250427073987503943173879628126900722914605851385263815285239843963609743016602006961440470267174930129639559978830867772417786413357447587932569079202170922542471397744633683835457225265422732400268380921237600103342457038498427704012426330794164118603021375581802781222813898137724983002391192334262046834531390559611852957442299867138275838318339088011123012412373186208703710529361881205946416568002496172395922455857743761139781214322529804683709511556535291788734944306556069095817500388396917131016812047483388249642705390123241929110497873898822893426003421833652381276356145789674901162570707026775785433935307868175281915949737713290318556636621112508551298208864280091021980188922275243459552039082235209617539834144353631122258280512619402086829763405032158977791919719569897149482279275507018719384544010360448645862571786840142254711608830484312961872237837651454170147970625495349911249523284356065234252481380895946202225152785982104838982143828595757136890578820148460534574006256138268016073502245391791772506967233821036169074102033861142877946363679284246693623998025369310043825178299464517327042177764013356263597321333485922501514887424613915153316479278698507709116547437058430240341293179868963466989559882980877187241555023090612625398661564913393754376351758606065280555106750574820354698383553705113446144989293967485718642292909667308848362588069044213962750560112067608233873033667997657971646169802685734262531896157118465596180183935686141170842603768276192565223025637470510833761865482921592908773218101868653501530710503766218665359842340749015579136582291180895707230923963889444446187603016241512362864442765355008426172806722626263008232980885285688289322611466681955804680117131686699557335970623962034914182973020372365480819355111411729960584707245220088960529641196325795436180176089999246481244269331168512546801941605446040255595126644704016541669347591198932710401291565131374294806403921655457748568574531338415641972198255774763940683165695229755741185049187022140606998655791339101057335351204652723799542474118802491928600979121320960277433538054519857797164674813174927985199606370568297559727738437629511126815441532783174338935491523967411546472554420643110171414881906582801919794178383888316850902219905726213977852830592096700760513103459879972397344881158464091531103028644496160369087243025040583547361448901288796029243200121262073881727558818006278621429231536356346201675767541608410051157158892809160912073274404716285704408707215487812881109120760352838520013741092842603507335014451789478277404067271184596792059405784126513467075755922154336354037915493654739776694701130640254993623769159067545279998392724529624153896959242042350405046956289230851571144292811324869308374090982435856122664722254821834954123442021079576671452118951308098197026281180781806304653246829411065505993696441049178298351813375790620227882937076696910655434243822798449192513445652594860024262696619398456431894800725083951840518517161615818343923946368410004513476931987561102355743616523793348237562418433721892756850316634041435028910889065837643367411082068837803824713681760039726210545377229746629281549379234276343867239910444789052707890224569615636714477480962520103220637074075730835836366916083515740038865869618872894517714898942287940553803430256824220308748451015202110261141871700360181545416903592535823165310430168871618018883526082957487824810162359239679025450650954220491470783055798317516971492462549520264937247780363648264242559757812826284165034127583730039689030659068445373742886952980415554169904252188213082883274208280448169008748963090088070340614300787154086965758092181498876780531553073337033379296390078113240645333153761808919667708441162542507737444816923362204127202228755033891942541570080608735034161081756648648211742963220959589335100101984813110222415473660160613265177690307424730418882772729213468054102901389853735569672721344897243293508260733630624049978506075353048424925471046365520887970571891349901247720719828302814305257396986126469401756952124164294571087542077718699461160407225120555715619013271832048290165867636431324185783959827354764894991485710220694407287988125568254980129392134919443810937919651074119229663331999541784623798662657593575289980485828184534087192591445416238755837659984811944969189173434628099985033875935465054511458668653626377508864485500870018288608757855978676229854295251168881183994986443781719277564623299425393987413873431308267810067469511306325674875708655213998036152274304290635374378446526514513493857160508779367016367868107206976590624996221015682855154015243012243767597711572315797489571931078192733836462742679214296577534276122250607813618378152883519555284830908085184916852693513136218565286141843693918469588407905397130526765654473625473678327488873405061284259371239686431545410114542572323795690047131520034683416019372361730915161290337542774934606933933597716198426184743850763065446785666244004630626315031273149498946519542029216023136365589421132554228453352535110400262957205954722334342789897940485800918095759416560594571070431965075430848395361616593715641538380384830158744884142774544049508794597171395476115878673144618464401501270416964393083145651397197504516466595567850112966728970174145649037261277209314769588673379902382595692139572682968469064177471356303871157476561835074468150528714767453939548325578375169865186176215846723261711560720624934184078959594809371336830814885742681405774831788951019992405356443335116476761206974384312753560849495799018245797107034356636583969596056640045817154886215319808044808860734369102772437921537524613793134129846330732407119731930953465977386125450502507688188586422506281326705943488340295682095900937015283816802955251391939329221439941562411840720833512230837813510160625572176708471671557637956304309702623403881490864931872806370670186628497864318069524593027462142141125184112470381179695180010347214243456906064917070813851023084015388618250519495794528727683353944047113375795371475922381515384381706701389066543664300792641052067068923803896657301707063215330674373969278685237300204436994213820110339471552220148380689280852706297963153123035082448236575779225728173733010255326952196534984386812396343792403891847310140186284764315559057693657239981282753690676322008787296525034339533078080713199163975637961300119280585699624085288725701778341859749883073379266805314893309543467350005728002208831635160870237474605580416729376307446552121651960788015791924338987204342547940557157550909734128180409829116330954794172318331357414330711467300074017988332158408565288453026473158596904144159252711674531009458985114872390952768788006313285796859301867283867357271191017279812461543165692751505861656240891573160227747830266724420165243287751147859194639552780183242914241487960026721199380294850657480162790815182832238522688084564514971107800932955527113875744577253286034573051068765526080017029678852490696517093214015884234211214210358736846958174643562995107016323306797155034273176380725002990703432827927626029563068021478607679749526186692558706311678238835278928970437180331806932304169692217660707815127399737250575223335189424994771620525853004676457512747953212966258314764649724561407755419795145308158200502890377729010341395983414961737900611770816583644554985722660797796658700577759284639070335687430261759021039431104940949522288830472317384900627905753827631976015260667792863761188068588213405818972761649800301325773235137943010160033382344829385016129769796315589250782099848500759164599201704957889420433544865987229239348441000812468457905725127788939247559106134762165614791299411600930086268860137884292596568386747169220606967110912061090509989266340359355956229728460800235448546946413183552254280610418582784568915822898994267347852383118185919819449561615365567033612954724564503933400422825553752170678966305544672354524154073228765991544041134006448466802577675315174235805947227689733848696378930210906170575999495099106587244959232272369513670220609951652123447955271540561468755508166569531816601151651244026864867596825096814319726072195258459404201028500129127275693325096156671731395971631598357780107255197710795660941735391070206898637677069625384148369547664985347088945405436325925780647907291650736188820764824388458719033496730159043412508723748049012670706469127223456978797379177931540221836825547068079562574320101144818931166770018810361924038933663118790880567966774337115109005822841856759540427928392810227114333337381101835296198774538682623593890407272084667033110245503840051604662365860148459779564809220178014948889882147068007171126193447994958851196846591007703204716859290316119576221441639134283374880652705298423546697855953820056214396522051247327279074710866939795326369616909307397838385104916961994190010778175188072018279168317661267369324709926842013171838359030739703813466060078411964849203384319290564311962384541573621235238395787170029177287256137181067107845130449054879003473487508681693789057786879867019570394325377723126979021340611632186426217412376877775396378472435208154215888451805759328119293071056241369103732577507106620099354149577933883806051117143837732918233533039202310289104515776495870742202135413090829050277847186056863248366739055490551293034317278607904523784302200785579884079629624168760513772284398752211907292725625808202471742214184676551436593524218179595837308276349424703873911190853041629062486102333982818184879131824313330906376272884865204060466165062133430432036548731728693994622245024549704249742303398571107574536258573989003093257473670442820822014653749200933240180268717042289190377231490243251413639314552095998095303795610618642461344105414054122846611256527804534754590527158692524511179644671636514426711111801989512713576201366392773555736026588865776420574842034529967847396667076231805239383162778129473122111470495504334947419653758749461935093272219949627195216274267523533932984232827344989539243186615030461257108776914214690425685833237976179730690424702295222190694197510113570706611555220573254673570235901317335120631315541514734568767661100779374949108509083832994555129451960785833278409349897206867825745899028698339511251305077289567159450508013111727206052405660702089585402681549402269285879481655874302446121217942604953481106044802389797397645504434306940340875980532650362872943613572290929949022433197991891286165148592895598358443368055273292454213578056836430050561031554757165218690149687416200933672845398187139716684125935606906456559784733471331452242609034045638801708269203940999895839673220406360315917947996108286650601301241278328317809520243185596703489927231257344319347613500671379078443004049896538193970193766693984221634639702274371829881936846810029766068305992738350809683569248961137783991454866210207908101715418065912546725672314548034318769137359111422195019340275954830320863268383254053212412575531186187704360529970523274221962959247055537471584964053148702172469813741674577252552037543052337112180378974637610307988312247685598669153978256717012155880531565873544077542379516173929060789804802834172146441781791531350995482511261495355374023832936541131123250409974353212680913462258469032646119555426778954764482170088630439976087381857547435133392565150533889309375702726776227622435732583953311246872655863250204232361110826750841287158138615384295919841180498160843206560778868009665877507241157178515802419015738748569793631453739047423805863428569031291923435460116231819641611948165435406369782152433972041402504197288526109001127101224896208618451007776284209047410580253481690185651976545904390443012858519364326792379497934364543252796207243261157029418587442768174665985911348616763545886144456465297585632649996033788862724262241409664451181114544099293198368052334970033150703447379191290771299412340674473215526559978625944727474517204403161113217742262711140524143685671602565625915842491696667266372514245304900192434441281077114077139155713431327451485434610630140977629629080472146117695489972235733206709318133693016227542991845365389767440918518223697594799173426459313090459056174836559474115355960016523386360605731181266375425438377241958225428774673182295806825734223136527827963050874744333555994248767906281056873035745479145887587281148236676355301464167422301777650669624727747743376801268736808800380922645979557089997472287241875990867090418621702653476588211360826900096047668304663043882071655544608454266509395823083067104428345039451176219528965276832801133856257270428227635919831802899230967701945836276758846744356931480061810019510976496414268144526200196950496555654893808761710867787619193891867633296085086885323320424945634590921954246119921437658545504483620967710725063784819080646163396264549826040897345225395699900701538914344838960651111001185853201757070838396953199934945902082157706386769970515675156703596811925050914022245179437419308448997627046264422525903665599321249251439664678661137074287530084439126518192941924123031499302274719544042579800739755073503937726058324039390303830982087448522172793320031266450488724440780666934587288683945242587709625361641527136085554924251842080410894107428240772088731621777216653112556828811295621271889928099139292487969575372396732617190619799867206607064757653160530272777513590316792957346016932798422394892515610201470461295064776272740319193014946042672177570789997142544292136200106025745010702630641223051014010144840779335273759043867547157283665014914996890778677301501824628238874362206229133797313948163650305915966149078225659533742488178994731440143214222644009331729308873407886953238962337801425948323417620554733237270328825902886204764864422380218871452171620511886205877900044439519109123505870443466458551661866967168987932305491170037971494026890710915714110163758336666187284541921516528923413674181204398564087730322088581639291188116301066235213954093069284323489313533858517903911558679978702655824243179861244361145431583924331023822302686574744743689280609645326683434243479910920774091172301681114773554370391867670432800057164053711836465161454216411906271579562397801439567761436406410082585571470056170392180662368347475351383366173152978355453609842637833246579697195362448817616837053303355315805484444768242349835055972370870140281979865098976938376788037218418242430884103487444376782251278192591205315158291840694776672893795631523452480410515691526437908079319389593036633208505631552935607223199213784827260115245546807310506667875530943910736655525991146727507405936155953300133311619451759971952823233234576927056024199699196449450703671040068885881942047294930681140902746422607054862141798306504932907571074378296538536286594063626316844990929877059988484846392309986107674130454711889342892168466662172284743882205829138195392215128890798084204017694441485747093541505602286944676957161991732042560334740058000320395575516135356840238693419063292028356835755115722199551767690923884462589001492816409702594775200887446414653182967817158478455419986214481210258970700238226956496612173691299968564569315816718897582809638530929467772120723828267530993165196018456223998611774833680840548085378035187292594678278503010849746642809674754897819783446743891433027827423039294005594708391860533946222370995398391350216728855918888353731219330168238349157276152069725704617342765829958805864460107314576940339533784931856453863356004310011299302051414795659499263892372739836084104631357673723298309062128931185491831310991116736337920483301851744341940272196461041362155870325103958008550976668052975812972917991892971437336341294381663602365481086106245710923785599296072984510497287285307107511184268679098070190615133268375095041765184017646054454442125045671355000908877505054948173470364046819285484157680613907140860578839879524782956711049693596873317675464767218595379569058120469112871733646643685831538259625153097331468489774606088844676055578301511656017243760573156518271123499136156954726970697283058524830711281110359058623737730953818306524874242856153009285631846440638479755710734143307251517192902785549521173780397088204021582396954534226521347205410833075620438995057026694884871157675849988918373660077643015858333923742222594776316914296306246992021387424575931070126673059685388330293882288235608989319113152497246407672453023451261345524854150041132527851458157650088903141205112355261716937418794418465985001672703088027416496949400605914593030182350348463765492711432929204216925877460539522702600805594876576817883345636212510323557850712257959299156333065635685320919922503609722040038953355484706697599066946898157895108451972460359981114276123821090238946964376105542686673312710441556404259998175938157650695707257631409054127462855953302955400877442852946109267082623510809080690320323313016811096997453651472124473814894872992028500991409115673840431336954571920753626610480907250951878756997490489597398794887218132937906206599088548007370787158872793086438663100411546340576475849513600147412811961526825540236547536600531270375249104028754249722678030408886455836154132844055490022589510748111233552193547523902193253325124150143996215858068738574371256159479696390563740926016237816609384371107237212409028395302650183353672187125956197881446750251545734240149909591822428249714126508259741351235284758581120935407419652896801286458376901017224177484896390936323860379671940196477258711038702050821156958813463581512661935180010375420148384216867641354410996970154576769678335835208666796932916952791276689016978661992698510729859766296004362612840398024691983854206048031561655448746179261784974244013111883192465624773916731572592454703201699071524186610239389217967326738604786724537179369995540726331924076397077560173630598759689315536706330482315470346665455591311954570359379032696097338038472341966746863630513208357691202894780322441300221276769867253574037773575551470874393304759903628234801016646872648994770159062118444868238652409360009294562797337822496408598947254975797041512635358109101450628166804844144385821203031384243286481623587277825786208157762955471230272179282114337579278359041862979287067056823331246699950426496195515063493020461269256863001906379250672680554382823048553467424401322871356032447906917571953703805539150103216362422149822539505015368089017346414881715946335671083873173936201412229821238447196741200489990943041025483532046761254576660128245110251922102978100384834608025306731727496823476605221665262941018712781296933582169479060263413061436463434013710857579486279375660950469248504489391416331678152536488079702490769590384859240364395868776344758459666280468016685020884025085641758871965255548833828535232123250277911401316332227768859531763562048391103525951080906231601565662859143380912243698877413250508794402585131727859383415015350237144434564575851660735750404396956663938460299968952958461663461710457611977617812944914073873494007973525195983629074380477788134183553166849536013544674700871768190690807784129420685431647062022426789672665228077708245265135986563031818935986687270676078879004831348457375278302163800362683960274666341762731274464222633206843355014705240769790477474834979507268112376154312737378558748343923626429994898244164123164939550117828886615397856504663614436042116589997419104455731118549734874384698244507994150924700171583945376223569222866828054958158290512258794248389960213769857862518274749152123550051129279762220800146013855310268719764642213871565231395841092029704050891977390319643778482607728853920811654785051946976542678101057092141097848936599525249303634505295099587917868880294031019908622496485666450743868033860789402437831167517571130097569809254474785305673695472925293216523213622929048567455033827643470121140046929622030505265680175804770242476315208755514451292249020400482794515070681202319574057594285923931648897384317210588174645962094942869890183587942075885416140477948971845497267219488649895881003174251818796374764227450189040211303186316018407416952770423233281077586083732927764687825959878431030692339741125587019425559403006462611230363725193741509309292956516982714474378288461495879800578848848859576070920796744741845927502622852413530491782033325780522915619402387199594509350133371784861821896950412254323634767667813383517411405238390671887448044125244691835894396227843975430345621772396519507319745873175976422417134122695277204150136685712385430891110448048086314711068092818397485415896377357538414940654963437730819073234750793677337685165898414159450195307889175806495115403998436593024508325348683027981551098047296415476420594645036317329097964621618526125035558875552764801429612878131963166479297073059527519001835377340369446708665531927253079531536390025151934192976346755322341695990107663652845169948488669537124727373725371949822109721547863961109466706281233880002380805477221817873864198344955738498235511821916460278944327240118249426306544340680498065846013427871335308203077213784732251325016028160547846382625301567044889271217673011283591028862066394495260476658276866125589435903304262398449058711572519653308024676307656380122260932066582788952614373837510922818511879718080163955345722402591666016767099685891866344464083510399368656260530388991652692626342693472453170986364548599395351310172162773838761130473397040679227911289853977765116526507148901239607205789628858511323589996020835915675115680134381591922133230386729053505766019950739684258162461004882760689699175648732274170139552119966933781063015852394226046570381585124968031395993382157850630260823193630431673603229628132890912003356665400716983663854788483277687735796396449814448167366139078803111959072556582970263355191542496792889845905171461854188317458330480262091363569610629763885207984790494125747553289198182373958427124021256583195090813189456389525128640367466184358474452469593124131619055905489626241655088050946915875004380018484343967566780494434250667500473364955013134489863063968412345255129860022496164552899297727463277227165457315225276157901273205495419795234354011591072603717141505414820944855290434140198878978635818502919216613411699039011594915271965036742935340700375034396149084984302974471503801305914740759909407395424283128267040313602955382001357936021409936203968307620293105980780739900554092941795881682972879567764999744911315022601101388821859879563262012437065733366000749093732430836653935540006081966231297380076062202198727402734080177546677714125547047699699928487259579630388387041349205791691128529022301388071870965603718725042700747703270891379536304228823414685329582159933572645370849618391995469085392815670277669411075131238097943287352092209827603935332595590735336543533475797243647342408463179311716372304726441616163602493613700086162284350880343646410009840252472736020119567310209894149553830656926349133228027970609536960497966512814809098157378717947376188788759809547630965547714486547751585298940290812230352241083192109130320757978989358747685520221746316877333178004445815615351071296761720427971654406266042447661118923792368773902795346702560103911043870037675150841423084993889522176359908517684536557308792788795218896407726754636418606003512514354044924425206807419035032867784380177781472132291457239762602764883642671379878184062998934469527567826422948928160075784436138414959955561933246591375649640983612972727758958237225824654738760521758285761024136019514777211190328480434075672319441144533087708970634703632423933200476487280534634421728416225003913504415870517633799972235243511446128006197790425151504938347627957328411136820900874224093421374181011884679596161863153989929586422181274341641070871767413266523123101310316710440171573415397749223644133916408684053299726328901736875722408663436621804618803724508949187221580870188995090875767478264369814069387865554874103916698254898585637405465409645899031663615098677856537708482446671411378509249765383877879959915204790638504974936656587706746266247720041087827289971365342112059648100443211508435490096581282479654690480673974728044251888842462867038231105734668297004281070259168334457369548659769685004564531545873965305719028496582802213823577245311398238127636845857243433860247422771302031562980335564446031470519871845642574138136451905120492563488497726789633732701542010791445763973818686690794798436765631364336271860366832584931410095463636400476426500536104661554175941124297824771084580853631839005518319690463430912035934368333303922490769535430318780502532394508314199595662562787488414299252979891231762977291210858514780977076678250033470050864280357094258698730583270432481537921673150055541076453060253537870060374124464536453574590082671208188310178137593380212324673927161574653041634799717187862804934351834376186052912252457094456872446000226203527967351011811992537628313757218732815938244737049805560708893828288078043461793260623476193230389255354582849130582115048032703018912718044278331852506384884471836704341984105147096240662065711820223085674973725916329049506166205665078391860929020308163899273905932605438764049035997159440994644930630172332107335960205392671339521109576245596227404324590875656186231220972294748668668372283596808771364421346761252096757058841587702920958754018392818073348619812724257838768743806618574341965523966079101787592355670666576243358873270460563354496665395551059502413368141057711434267822390185495356814523507227506998745264939962689701955667330741434433519086721830516601828829057574489263082651139371764287738306154078346638334968756672968649093741714968243742276419297712298829355831473172158160240188327703189245150550346727034436588185011180737249852198947149118765835524470975506001513520377600845221521193914495922606244641814671821897730118588171877642128999193614790396376502132443133129973942465145269269964599155390412659097334725939064192271762369386368525637914219224414516289493268930074676631337995345300611323685697922569252793405789287633561256235844716768816224087261005261380089556134325589226380964580717550047269658187662201758584019212845246374210432199907355460185539737479093562665003085144131289921861095143556892648914350731205490536666223830257155398334654536992830535652841998161789087435933699208516667630922181513029677249359978076386156244436413040613168561521049045709408451959472225704187982626735925681951855791769023256858781271129072797859048212266427170302847934872129935537966575648022393964050550720058647711952754929333753076696347081043231959833159607823229856928655435288270386518382073111096368700413070760450007565759928362624006643968778632511993301477843951741003253814396607772210001344672138186573849557378140918947504498998259162022120665433523368783222410796961467315639613054111617952982887023719329013512380611633268440019810055600761751376350817153596295382403638890895056073658008357156808614874675280987195965592675044690033418961648957190441536075406397864686697823213229815453525201051205737719895635892050171026466857065432961718616379444680675119979575615011957380364978563430692195496108417732230468366361752268711043705639292022422984537107825702405480620086920908648224182507664896840726794114501151509854908863853899334138143447328077232905197555621534303289006288060761236086625568976791301223235335347947223102658894661976239426306410371974969903059298586872031007273410359069737836126054673645720927696135324519531757983133425416615811538608435011752444733039818584831030238583872660122840193373224826197070909715835141024245528995579567950995933003406648592081125443135134599251029076000728096836337882796421516737235688459517022459945967050628616495458398576201697886776403485996039372756469819005652230048803446799192523357853606323457665394442260824137914587423066099152759650271743723893484655469735054946992629501570952692140896003520500351567361783252762982565452716854055849754629458053460991419907383043684193063171674812402159316628601331989866951519511305197438622344675213790648944235386790789451719986414226729866059433209757958336676678394849334164088567277588133170098317582417785022995538905879237556286725072505175084835757101165947683849688707133007345973726449259352347388491337852305579806963587696051082696080305427727073846163335216130625467000964680965404803431410945300217517922662368211256160072431746161637791070837159374735449633859091861304604200075546014246726395069103793899085582471861008679665661795214371028775811369111850984399098895112184515773626369543353722320782352538980494633472409528664157604359605943190371581148340783794513479295118951915745105602234437714435228072730013618055591265056838857322056112842772154095044497780909673887714409203030835464262703687084300201543433056600052352332913224705203606340412517279283608714116128972098248516630115656493512468382004832088531456842373070285931481875622453940337401342825374463736342466980407997147686431906153431841969387831338993176578498287755392264133517327822391176442616317270420152113377778468746567878213349803952049108340665009469441740103072200498797257231242061921386148329097873801429596267255119448526992155437141652793429271027532858008854876163489542585080757023477528252167603067076061568731638032776480750174074192415724405672422111040357615613864204258086539839296502633927867085821329874585731960274785921096775902954795120322939280871457798286257324612578335751935827550755388204929814794943047816619585962421656990237668621684411576479197502436064183968804656645483306542296484026129406399546598885665744137656443082646514961756924952533256428744377534513202826035641639360712433581693430514110745397590326519333065391204896987126479132169528296666885759217415781130637814766206856174871912878566166910663901930106939369338917110867570318991790228238938295721465748461454826515481844586769495914602994915647929502290371584523602089173394652153514394676199997115305633316412490413083576280118442424414118494912586946722229545890732320092560796412956818581832075850905594487116815790587865061910724059364299425004931676955195360419605007271674678583805607273706235905886276150213314754403819638584204194850651179696779929944824496454933602451542180160421281550962572089396279997095905780590538662239664705496495960645825740506776521664740729767142371147173394557091782053014353183329401988495516001194327788506077984087534150000674912278557806558676044854462041404560893045182432862176229631957341247264652891589675334851015290494244058655401552346711129813622432517375953112937406221712721863525717555376583956461329595983700745107862591667959203636486953937393801568026946268218384469610490351943432506056129807827476692290258087674154007048406658476625582720282384398024500276937870438750672273033949673817033077497635083155388107961227432148247469197211429415754239684079683695817984032274922407396062133036163772921779176105186422909596509682518892875622195403879710796560145375879007952275631645605242533403556480980995320550518773539169482696224682055473139827785624053712495211888149938418965822505326239223048034445895629101211320913860977567187923504401329071159147235464423749091791230532911941693942228899412622278982754264303902125659266932419980677441934594686377387226068474951904549039948763073080820996254051164648414435305441293030671851291798310449154975544626005550565979412274143438067729811129596403486074501602858707992577446733787854025209962952705162460983126656652166425635452343368120314229548787086381202887980521946343219023420629423669176443669027316344064957330889459679375536027538312120357084278072279709901495437870075219087663473040901432781240818717132234971876980072745253800249632870241150089161395386498616357618418406176535722365340474120414561770708745306077536597826309026937022557022818166501540213634489453508559243353329167711148904659954549326639634408786474874913294595223473926712589229370152062602222335317000101135511647867914121550925924912842214198652348495269636515696018314664297281897874476008689410003820093227574828779267495775396005695895380822995889041292079611026775234277041667185600874930826730779841861206619233408182840624148025244200014956614161651082127369912661573526821121244120381253548633799458630027187903192890908770512249148026510035184985968012034421590042569122669437211658325678628457921279454203416619171762538069314174180244093952978515003957979778488054389145896160061951454894210582482854615934827275234827954496990063893574881875035180955677979151018005939560647843253693524528242474057006192877435353019502327726886032662765757348657944122190731066548350789646389413854653125157082264084474347143253264227638262397182987594263665021861844787234645993374189590968389342202234469220483393913622786720873722169661152858432732574994978093451516800242907430244700093803022149668858684481041539147467659744702358954168372394857749540779997011168249449143126224006492775906860973800187486056475788727972985467010448791020372462385510645525471202250160940134988798205929077802168595896142145295725242397126579398705492953953452208095183125885118516310741548285518045653933762678022612314530775774896899444682915876074052234115127610586085617024297359459133329046675561061115568630821401004892021088125624869203750634423013248207038698300808260143129972868548770288536509998646969848073865292027723399403381929688491703720480100887585111817800148725094725961492486496019309349967322151984373782964393936485892161171706114178767414769169912191285047901522704015488569234431296065244161787706539689530266905240092682569340900284816575926511959662855594204521545121468293041740818339387874011386041012103321242365674098273209929187469710466638705474854535219755389024883080994256700269462149111703310639511075704134594898029250287322995318301330510336434618166476007353776409692130517547483963224261512995806648117803165205488280685948451223749884407466826199966384377047725716721683776363406455174762966370059785570906859780329031347245600997654433086266396690128919677297520898561773289569942247249134104197835089821418283298537936060514731198125201400904675023586448571041873957789359202947467615278920099728909382369154909856527797872968529097372644268794115894100186186716337291253806430850346275763542849209559678681477206042258059707168890713827008240644356036190091779108539418474789986504660681554031385056357545241863623494029060410817432288365271605606323661569307316919124088988602634408281938912289308566530409357470952581294312015504129603929745544007820684329512515547417770923885108729244630338416041212129945192446723679551590664062990744027337737439339875361768146706209197415624412576451951539567087256771045734813141354209765777561457127014710313333400698454716554352045526904234793581293164436917451797357603651667788708392025164996517955969757160670630140236123212073692575433836838767351812783455153406079392777494456319524581678312204607166146872754964462783887579737280278077100927852399672547969210473783351973441864277641698165224758571032667362602057415017589117908003171291523890777191600793134855650824729876262052118042424355215370038300976912082335664585898145399014531187139177071672211395424525169572130384323478822286780026945774937600376772974058967031018389390818568682135287628150743066723597111158152318687947663649365412345824660266610570414073951954835496417780864575306745559778223913491340116655150375730159645342137510423026114730118384290593200926408209390659570499496869539677151080405751542937050403025116282115070119868373683954024541774026994334508820641343930895588593056929030820824685113169483519067776584474623641638586464351337594611828388482700934215429518576075162682378455662873566309048579973370903305095465645613229468528626219320967605441330708739133609952046477515994105914964494592797984358318596441354445031497937440132445464002277231972702624613809208780691558068054603237721548934728564624918756340394329127682743034107607336490959575622420506246847749562614197907455434331811556151069347335982836107625666171814969009387145957547321433654503683885802262439198857972717150477904349140589381141448487152303864375141328527647999250432713542816203982192824755350516243517171640802894056200751109307481682195878906419975618033902617323801384374865346585609307213598240941590828916794531695113591783785406311756077165401331276028896046765381240394885434121409913858123885817067191544096162026265836744921476472220845952508981666117522838835172367765388548059455451578989330767178232599229377351007780596671445469426777272353858149328668461222889842487786788678827040028467708620398383819136517843028588408370352914119333381833011690608617401283786275638516110650367377026034992462122221509426996433890427761063782758948817752385339177258047570899257218833285630531865024360097708954060631678341630410242575219123282452136598292672729680828982133797315895889820685373606307203981971991770955520897022762969490352757245790074242591010765523833310231267361268942460630236534041429213559450377139243735202986880329740948813503729118862404812867307862719204434386430943021642990366409917139982660927253768555650829912828279037005330397993379835744110003304229732650353353477073928524609639032878235577885185987106801057067779296758265139684901361390593792233619583990169782070944704142965456147845727653158807280678453428943810080567997660547608229057112524843534751648334169492774663299597423473293812466164357008480672070878041303157741905469244315134388540909860813561689059810873872779736578865393089072856532750428347370795613505050958459028816145510917423451111162674721321640025351813163581028360414182173584383231420231209434834912668898579129579557206611069569141143229998286412823401351261926751949437477267730738202736343736062206128630415832588858021744564154033626332718968418884161717197483864649274031150857598452457150119977461276182743978035060454711711531152413113835497044734819035181557701009562891327524282719324518784382881476364878878723329435927902287293711925492911161737008347011665608062905797586042848484842073492517480112034427805712819949999012590050268886133351464489043204005633155141972699730885473785425625906522936091142276276614047401949468983282199464076557890239597207377796439537105895874991470201544749250682129465866254107295682980590842404940142702392017921407990701123920723358949778840323659102378781212149032585134112586084037281571820373903281132222635162614171000875493744311484623396358036141951078824685073116284593039107860612119357130861178293548526974292597084175770501953653461144910372997304168988191568839182546044141429658186445331732445457181959442950014545067231240385961069907741052303700603151839956560641148705218360232824458167074912000823854523954458726521840709160636477705832523454420777784524785382494767505786259065345277970492552303328415492520097689496653791116671410170592634183621126381525397649062584762640237477829982428747435561389571146311055645257506549989959950630190391564455359514702409953082016719829454673893535936775118471185179688505476005352940589548492905857662183313450275867038363995126156156911705386429728117222494767277687534656425627900392182854427655097392813670172574434751127442361054620172575762805646828177923472657223667484755975517670505547451699436679165702766148797429165466481989041852191319036222275967734883420926166036122513635606807325568824295157157502239411940488268082679350526163973855173705888892141887227180201152130741898565328532089369830666893392255120715035096550466141289959732461689764420033801100610284702575228621310812320977782777655715301405031359375547351067760451995363842853200425290898310692156367870227653827109330994219111211849602104297214749307743866863226713344782242048437799369988472602715069319378541313395072878768771291807403580854304703078845658391577598374260596872052380686593960048721370173427689418124706337456791655793750453844956068726512694585872035606760426519482221153688831983775773340689612206169065761878326443095096628582375884330601176155861031890794043508836595913890384825982356496033761645197936663037491616203846525171507412645065976579989157078032201931161614823632120366142998230834368351173538967324105340755469271529404366323156913753528695636060081868471849690880644619563372898198753055939818279507286165455071599240336410702912243885868652890372265028951556899454441671971047416200007504434358661301812975376727563244914326055921434995734155698256878009421155322721063276493563149493266221726845465295038444426857497779532620908827048332300243986750719795459280751242931762259271829783452096662533720025030768376731123116711535289031745265414183282351187253715916490280186507857067239227280358309894671560099768161570560604593926976806961371795944926871010509062962951312499525861812640042872400239407830362329151230313083118156686315952283424782370426156797941643181264397915523112907388428633905703121192608134683569967306677013294133493638510833217616767268818863339190020404738755056159412266374168713251466019884222402248200133267681879303386582414798858359757382023281457391517036553646722431150422609676698204711493696223747594527114422981498787648315436932504816436838191414224878536737528866142846784768774362558945965273368376891907008896664439177949938638745518452443176317291995542185072440518202843460556162174727900585059913963497460104481424681698467861577421346223875478444599108951750804948057441485285124716333418260360599578255751761089663398886473773964191521825543943428583334675126000848368926763966051495881474369821413007724753000219888671073457335754876718162210483854046948874403668616911586545805273503250154998619995293135461740420898834793862804575980576417730575954128660066573676030968277646218341574005147955048820347796200504993638083801034166721776164052465930680833094501857276872738342570385844733824110082055587545432043486189210536657470724319084700199900348780776660894801024118215607391777246920632016180345158366225755478887234901027985421562994174493246917139978572939192990124161512929099850172571397303405041387390338181492779958686619634445306836671327912389860697862664735889200721053805783692421155962213698208794767150049632742274878871460811149759182591888525714106924382293869087219457767924945257011182691777410804894995944204767216237414781599712426509726808926767711391291487924079940814994862481017440235821637873065458166657107530480308002629520233385242023788262408347845172157003237802153775392782373692397354209353328851532241556471526370896826714723530057840762806056453949712300843777376181023709867147996141320350000306251155941304900145590205115666087818637944469529092604022864849314389442316000417964661422411782154310869837736837764470394860914323521249886278250696622647599603031776722182607825946965001090467954711121338947243764076978349091826528837479266010178369311514397197777159386153158954430175239408912859029598385566148827556671427433111231282146711211937315189134177730946551092926461543345751747625958310880889138331403259063249286520913623545848057588002348619502495799765643568215644912196286966284792187375869867056005331179306504835235364821254245154603750145241965547244205196963097095115491163490404423455105730895035090377936016477563711040802359436479304445648179712501058388009422573166544920518655589985377243901889285318074538852203218622553943343309610727535757338330501789846631469502943171141203852919881739133002345019923771218631447215595663005815345019907707631138516193822258256631458979847376073024168416210042338616691159759176865100060888906099281450124406502035253220001387721795016966078086518715139060904142134544058275373708522682579535416438279167628445955501038228784783843424247684244109265281347893632269818257471851495088338334511072578838633087213618562327942035796939360898609056571887579855129086036613275078844218595086271901867025515162626370159622962090940800709052085223106574386743407171399775193871784556182477615870394440617809656653623947323508104956817286713989119103504376882505092775278917296429982937269480481840891797105592493379638397248811032050320105622042803037113548803483487966236182667553941802175124842610705021745731734695162746132218051014055176875708770051510577747901337404020521467581012848492037548569792341887585622445973712557011116454968350396311252500926199740935069740002066660616409538316820071121625338922061420508402215333165015957408143681492997649085273421155190537402981610784900816694401562297263264455402257999467426593572041235176099095167905028370805773160966426697472645728504741899187804785300830495446840439610450047190485399277225812536941477741767259495873642060906454503614725301539033501761546131539114394442918540608354293722762920443846542607830851635512365710314238607894135889783556026506599072476323080493078995468326933491738799296060613369834927183429423363642352108476934096940198666823556457850185305521081294146750279626975686596370237928351104731528803965578049687326962150384555108849908883528599204485000917495666835626790051055930742096949220842676132475207395789095203749042927626555663712968335284975530032414651285840523737442132631081856617485238666550385919559398183213408665198527170865032644968118351671019057986571534138224152893758023523317642609552324942094913443614214145544160157858265086603216181959646056626533242402581106259691546037593431727619160342052180370460893996837899345791864339591171826761305163779221743997596184365416795263258762307221182759377661324208742322656519721538406943699998869266504572512115262377620908342388669188610452901045263877210253448318524406675844351763426225942784863113092809310733294378065798461419704892084623171434468532018756473656615786589988647863219865181090582278950364419135581499224835412554553539267451201379700810689226434798121709508793124305405698119882063838653525425525801823789072989040699315552091909266044238144397935217358447839492430477748824570532669187760920822910801861793347010231255794406858604589075723006124349614582502288411270093915523356555542372590774588403934836104354244829634903807381224007081865668192535039344103905134961451725497629781137214673061490280817711161128527795526025200972207719565197811790688500003133772571792943881750005819445417542419389401776798098168915976225321519115523860533252794170879239866487366839052897672337417129458301232167819002178765196582274901721158203069007028507883861112125829219264153410699036529534622979556999401491423920083358072484337107621481792022244178263719324940831610180366993534175422118221756806463169311554899714083000144481476519719963659954610034808733498180130043697347212422807921700240787642506431743018503320359308599587278363015732690608653835438091830520503197727487724942599066648607280096805224101020547595245361391436565642587071600951920303006130047315748588652431527179204907776501802228848749832059235367342419764199155313662605092161625327930680174087042291295129701352326273890178693196550349655105299069329861761285879346702150002249186951552344088724021795167121874572724785334169793492177531426442972827998483454707772214780029834362022690348389099008601241876380466464075373744634630179591189836218972379207300144322071560655747070779190183662816580864650951310345804135619678769409007622195498713515168025910106658013728645581685937768427639556298385106852681930254491733878992896652966564266364068025547213259390558647172852606213482069813224365040327775737697871432718501733073623602609376243591646529240566746961813640748445711420503821003449116307311212039508233293441010143388669188208322168932698220022025052163583473687047882251473412722766928284574522311803287354802690121325767415933063035353206875158506781481530735629795934549055180481919933934259566298749024076821344388781317544268226945191695096044575292122680798058828244102406654318229906389653031849949688797257716437369878739070774657857698641586457996639806845689430416723436234319897048172441629430364067352385508527328401519559513288103849843297752347754119988820322402599312131001736963094778656729592124917325640549014623958433235387911097269957652374571019073471298029410440260117036712409474791921729018531585473220694047421266523452500310441179403270740868502895450631348979242971655356660080104975115768450785358564728741467105395657024145734108133691127407763835587071430851822869744797604849140420330945265416369347363325249071368351442658697621837435901589881663146152399685800742549925902919988363808646452548669660276235553154393458992404901107260467563397389801748208433652333582586282547053275204666801414668996493099202952803952417517097175204819200239313283357258257604445459067534901181171772398810181830507070174746269645424733675904622270206458832491666696863723640065713034097113586939920769762038414121975588267842426246210012141380329693633974366674712562909605143131666223424831409102616963834974515476571190975856695531621259802189770627889090302911850445455478223754301506522632680890873964395984720598817319399878097307039284559708189795689545519336645732105247655905995725904982046070678303720314053202043034127127296311924222904441913907093607630408574897152125301348696491312951691823707856452238976048239708307540281390940232881413697707609610240703315211417974097149201740559554397223489467164413802436271111830421194540633801493018646852154764579852105372555029753027504859402779889581000087724584651878004910569413211756190707735876997697110189202869196314037215480633295552914484370217193039940265975501535626160655532306887311687006969143949062282228757124740220367823913160749960543667128926903413266221975835005949614750475182874747847371698291211702813438893777834231639938221628526166537215318394278627507354720626316678925835912112965171375388987119669393156422245833514064032207479101908703262790106948986108849643060657777758715140559460017535351494416697479077329823514309863160859903432706328556979166749525857463540455307944258168729216379225959475022881285846864987552945985370830802896817317732657294682869682828389693548242758461963123822458592260787645868394826193382934999314086152353965900083356322569586397273547508262569869638417673348322136394612183086157646674491081271144034505140227026917765725626560739768802303698035427199604276143062470463378842271616336365032192491161130548388230132662786570080842031978043713445037539909720114514650590449498738518062912552834885237044626911182765138647525166379569710031731386481475646782760536012790957969881840223246986776382497345166879364382599974205730449388138447917591165908246072458440744504620151837790108043516674178170232224915398504443429850288692015471778665170319561210854966042231846443685299158119372568983925838111962373796593736397343089335235909145651576888553140138128093309202803964399190812350401008542769808210308043679600543800844479415983903021036969626075377218850106090479904940168834023558229053766340825267454923503677532688699921290869574907626191298128823835596752299193402901902828181996293254273104492466490553641407838006110580235762015660822585662780784732069232217011882197854746848352516153997010809674331936918347564022854850815481521112030540861858718578902627045716028905725757192912419902348137599018977952213947211806115791697338119721538775947848007356795185359067157269694867875221294718327882623136833411717154232869060803092600514235776541081695179835787616899241258653909709511805397781867240856479245674552904392431048514729879855343692036659086460944697770604999586142955558348974323809427782511484952952225905250733170823558605542212304907055533674310927026412823732722581293621112617238753892799187629985320101762658417502961726865034646025779771177023707825943324312207141333628890651799895023068894497997820065647413560828946535131932787201893352561609985241425646315985373460842099759007242571179330167835264131573212306189142643351203086305402208599674611003275438163368156796524740062916284698364865637146020741164915275876139875224718940683218600084602806725202510682234654461448518078748016359327387189062849830319747160611927182676227871762584788345713823108510323456869347227784526786268577888157307585066638812389576334106507191714848704755858360056363625187552839305335338412342534697841605125330004728158371100387380196714082255309824269341371619447308341982129375402976692569344195539449641267085690543525369050977432730526319601534619004104430850940257539520958418980918156863839168515340918194423648915481720476430242065138627124039311773278333115174933803600191765725121850127116603699734391823339129436722277722255835266755587574374525481209679770585989281574732441013695292184570916573396395957369486287686656813742000222314606200234435036803695283206312070319910410106178534863319012599154412021754372990164075645184423635134764870527264789143058348605140181472475799106735692878831136857592431122996417696896689161708866111314349962872185180928257376725857683170481286168154984269922178869200626670309926385182403034938481562835330636063634466410130050237070988048872402366954783829003883253192831731090957120581758839100429193688990017546661944309679208626522492772321947881130611473662278134314988535404875372399226599583524143038141466228372793090742086059034127405077525132864486729990572754828657499058622215670684760591564476542774756913693871789357713449358082019688182397181271707221155381209124946259328589596915254055017436986137295212924436837109760775756401651524046771966746299698307579792748913897262240263457598540870822145375844986959702342437109440087385075926351391812050013429428863918931846900831251716353380654375419426398822750158123368801020381558244537198409448190997338429549457203811030418839535495770631373600180070176936435157599569196775206063316325612841672830226320541706519924791391262717487880171647993330749870462515556274259936462681679367721836750735935034196487198416203550287455494060921829618203849169036801914222106895480888127428578295471282911693613913577330237265991701539251068309736944693841340101188037630271033456959887800187640373944493188065951203523885675719303894159717275861952428895981202546053108651253050478008661701475620706528663090704814877487521905897709314067002619947684864078995193562847003061239812657675254489398365153109547806915394052781695302705874819489850821437715932859380604511271854923024966739716467999863887867006887151587151929867858368667388180535717386071156510589477909919297380204756318903083176152748748250534858008450740567754354239288048797708194029954426092009102528845440757566686834295818666102399696154831741374432953060515894386294007185101201908811013842660180252786688396162096783859611267075894850124854581421723635097893488479603272758767808765861963196162833299444485146003424120005830748009654562613624287929632789293726816740503458180748373533846681019026461922951025792952325591090082113064539308816107395226744962738407440374577489760141109484297242621249077773854764719321629821605147406770868772366355765495498275236266191410210248740871111883782972098794420085939722512048972373938639912772416291993149789674694506729916544556649045608235402146178832706452048171529394137794047434503342126285853517586403049856296272064575132157297804747959167443087174708332899244463965456659104296653940179512361691588948648057230705090919228169145901502771749176490451994342377516227594391258924317515547061492956568022658573451958387852529128704093579382671176287524691478891479760782929892449166526976477345069855963092144306941936267400498568817660184709033309086408212148063709503269110739260051063182991951482727454905054437454206666107979541571201556814310242878144604853486287321182171245434258412802876521786988320396822872982863406895868357610158219649596732441769207462421887791678199702397515638344132151193012940520045810897286448990880403465038860104600124311604998802457957041264959581098166157105743203616745632550203859444963955085245527573243370698828862440264829790712721729791579542516246365722007967614603921486554605529538819083718869584131772818281559441705604234872833631562702160591135088196081211078024631215870399993681685018925869225294332821056503305156872089291290740377625941561201364727830119656468522379695983814386445473772706681467750559599551584550025301107191127388579048782275960487237563822613626137428182945348660372310736820777389131656414705080345011709674844442445782723252617478804654531924418334207612357992376712982114593817723802809751413838351572145282272326673952036606683186483047899281331182189047016083593256318168072555552770386374774404990747164895509887506051207092728338955654532972651843414348634873187894871532648329972777067417206029487446748725768679145038006227640502169769053704673152440192404392814668095586435399220812031289048767513835160946031506797206877262724713706587503198340760524772524714686808452186488920882286353219923809493490632353486117091068743957794570365056343024100200026222787935853100683817393439376510996609466435564599198009521792819497327544830502134634219929751949253083145948458465908250740102532769003691372524590532395417298753975032008632493004069758388110554775784508656386057905093331694801076441392562368899702526041403292646687882139667728296850590671240253122919654156798578140118906230777104382284613013798187067003180726664186947551071967081023318841670860132742134684033382849085816943953891809469386665879411289018185945972164173678370494594402453876860134196008989410471936341625483550392578889989626099468585057806389984319724267976072267432663361336198864851652703694976101148158239203812324120465067192972648814480230671062168850064120218474850829248874374891392937332454663844102106073738497334955080805126288660145032075034065197057373382881294802239329816203651982970424298031062279265433025268948027480675044659680450714523655956277499778616227747416078451408764881537784126069465344211042886766568936798045587091005641656036213029731291178402598610228557875393238427906005932824522632329675480848862370769972111720507757339282978604424099180778843171978245557894644767789771037538998699822837473343648710537634191790670688149721715452248615691395362148479245449157701955881601166192263842037399269008889138105554688948293665929920126842808755510135817773761188369242974448979593002460735200090802066157046948097287334604259403706511209137498630767525752131100885687995655025681431220398056674296656619742876571023073999092023921987492766558560220622133849346054907671100509687473415300185664042579798679243946604886144106358510776167149656506338568756630635158419194183880238786161644949113674119711676863848500662589520478969161782164790497245247603153442682946006498314824292287377920701236191981927233606726001500811751640649336823122519455385096498365642424391693665633841489021254375650914430086433230490562454716862050500938127971863393884933618127969412643006924415352105370866880781050185479688645137914148972956029279980210806244053254473366460523705693354254895245766845087527935091323043131002794231651160002836375315249903576011011691717596616297975820432312352660049736253615775332927706347592111012207995557789796158510404654910044810768371723526385892234128964690669906657383790495672281721963858378883599932607340761612222099025322772272935189563299221368463603043327831739529465475208961260331728731200344219896954916586911456053021983380246585782946109120518783793341006926223279738183846798066772642905925947554854374188538444150570670503504900392051233030935561823284188106606731811704301993739444686727158243276100858477098173127381253349313084544045104952907860078402126831445190615274593085211007387925991782812081240811932223955973456088907324266626531722820474154205503119574521870699732886922360482180872613617191217128701216530033500429993381026767287078774863352874739098979812091302080748684330797234352885859551508712673660649574874898306758561011715857914763196057608106765721064208178382232117006173848641251765049420581302839278321003817159970455000885611247426876657736706375390483220602950472202286926536249314656327936380510703121072861753715335011978807857152425418840952787127976769391425488619459630831753671119738648538516516724814370895167894186496822710223483220565826435507908322704498612825819659470470454459810005696508180083136138673958226170766101101406170654450430296578092252266476251620144348167268869804886777249691965537208610039681351770251725234996676383522006128138175407834199100729606832081333264123506128821690022819476429825572337832080992997375447940343686845042009121869388464448772495524728938404826466509352688079484949595881823993529848947528285624044899552503845814769736737801926942610821436483967521255115892165645609966823261104105657713041866562976763193065103941977375207002069417918533868560441276305457287545823136511283761258669581337740739342048625405613550905419487325303691242401126131007735186461814160792044720921724655506452527887581302670907028750620936040593410003876727707078584815515744441066244006523427729594332202954531942627830326002343625540360588865869162549847057401842871082973447506824007000474473993477257203299973070237452438055881560169102125385019651398097966899124865389063817975708698503959322460516527184882496873315316239808595117500487776848896221756796462318940698852784657097450636251680713483008636302590107811151787466395170129759170064616471450088874731808450914038199097744514524256409679301313378782987222631428323538471125375910576747855420948911615681761990047644419160700219607285907390860410757216792917925721842818108959672278719663084069541009503794157101395269447692622652481837787090322874761845040879092848548299004244145126112075877033886190138137329085401429037958497426751858146503652750685098727339243620967463336494317344856064046819520924475621839569732018207991259953818536602440138751152015085794663471822087814962415485212622197969500270400292678577601922439134739673947163455557571680341001619431569269961685051306619813466488383278277269561379593638377790973241111836556355836356741097910044082037648684613448413235975820908786230584953301555534601430491700941303360718650056161816878506386428402794477979753949219580207409663552748529475044882921088814250020732944361455484223300204100000623566866441570742420178663771233415224408160276453074322145593036458987473360032559521337407950033315342440928676581167862566736603850629379903010401539690392185790096820263264401272039954938009731258904827911603320224090372614824075782475770549741811500650678090480352688860322042784564487632863459713372579194407862504004962431923357175251086674762681823173548790829090183503859043152005837436847775350104161583370700228653654492010084991620417213168215747815777703104181266022275036017146764029403592459091525153169537098787738205770161502524891816439706173759781439161066821866437314322536931303168571246763607909485369630869867655382335304032125796191976668652071684932379900961860311634383039635070289726653976534741290752554398552249749644320418384654568234996365724316441911822595393203702522898099554700663766461677168476858557598855647534689153857694893505221852768182111456162999076300951927536957256881460770334680958766177264165759467858916223384724548346578636885949392168656772449423844939201947740908976522977928365402250924133103105434510330694938334783582872517830250564279548000508248444513406073468087523165827112442728242489782459553202805420918701366845311280054698504752524157038281505204949461027331207892469211368227502552353316415593877758424510519840952210043420604233293855118475937924328757844064539336271608284209530843895075873248336115946573164250899281435519098163927399663330104275127953250554057203187718705430256225183515237965082585886468399552981540271114487479217220196761630484188418089522498411898232156031982937688157929999791259628732920766848655935310927335290783620203747553342786977032214959913999603205086605104335571358963168772028986853497357374162793135379225381975171614961780760577006183722507603733565602319519628384165927787407264489492899417463735286440903435140180677526283872665081646235588083216817464288898554662370187268330792450390144196087250174602943167279449866392585730273351205079049351450580301231083254993118716566199866631281601817890635915303203685915739065992073036157091118223106311979307918494654859471662166972639047046629666518250355332702624533220646472930672926152822352915997400083011592634524817660699464308752340588508375095866581071596417412920445407958768218787064156542444964188504012566519478083811794835867844158452765135212996205607525656175497578329601661375947598353133491776238688861198989628451883397188693895916303700337926698071133970817031188979684559690562631736794648140657007107339578306386215503755394898256725927168260577181135427530376407151585330851005490081301030978825744257747713686692763332003233492008707433755857323420601934769365471682812587550860197635800195386580044927384333878866353940652130798495548586414035095612421005089102303264586104622061015182937485071096246269553698817524260632801772055595212955119392092312108810676968716806421733786224918056200146415425378160982379705454916822080288126537048630078953399728761217501136712005469139801592802576218262954266690860079055433795639779717837361894858501737941901955960292814987641524568706125280351466561956882522953003110295077061353172979150363896189683414119391024884514608794802731685065312393307541738101506140909433657604039708139594050186964604789943862939924548766654047991010007011989839221554630353084761575906076334456241515472067637012545945614863827650484836441610908099441654124907264063923240154594538077443711908199738634687540061351470113059741660055278943871406106401307396944769396126535278248402474139911630790583288113039275404065689185164692109259613480467984539644435786552499457968077928255232197225305556108995465639742723078217903397135388582996624495375067680130245430059830124743806759038423184146499732577579270965465343603886249496936159720202257553270351956262413718865265145991465445006912692821146231585842955297312619651336941671334725291482957775867464029513235758069098141801383415855099692291417790848393686188976243844043813343710789936271496959165917014292955852984793894711826942182141350029067005372452763766078521705173435517712980908519122617404125059501390630596237899512735363147617690378017159080529786913436928925141965285023322778981434198467605549931608341851781923922054844636821586552209690153771894487754586411054943988394327282435906597941556290332540709695796931359449457066342587482960222167357839947576360739962191947210668126428806406197794134600392141820591003711215563280939188132531870793212706042962145251953135218384511469931526876042515723168209972146479342485772905860170588979529449922464791790153885535885181259254684809494373014109198617593404716826402992761780887250379879117285599533575987304070566806587413511387516203775794281811132400840189154296454235663006412704242833019164254992736161504680062639845765071928592439668282591067296021381446638067866779805316240203315070088505325530532052907143878643601268178798640427715199566720498474955071439816604565496710655149673270321886242471246449890995737621704597849530806550979502077421977576899379881162751168363533988109471870923439864386345181130310327042132346352168701353697228089759161126907060187526228704090406312926628648929573295873818465270699232983491965884460026131121820671950037616868469530341478000369108542357179967287564387631671277486493210854276863850878884437628901805381833943818647554025298396659898323527036768885251654072529569794613087676884062055713114381720958487944277606674273698286794449821977079382604032364124665542956549132986768293051588085340718878715219814883034281017170001181244771143035470084221457230091132456498640345747442385511493506700645916551927836000957067172943485030851000661283634900556767353653307733364939611976661841885337444426581985933014045974215954472829762954229815552503056382603056520817764017565734171461722984712241714837448222802831423445450951685156763025449026471223471066907288999742512840425842611856587694333077874084306700702715894208651824752683543028948648935569547055011674593579835397242219009189181271297702304362218441141633430884199309811540356048722324795670046031393364658435309295886055197909224454706072385237439810433460500758864768509063477526697956780400329488604394179998389274746229848044898754102504199982795310689474190404574886535183005397931423086841705665245540392526674160966243816622910367885603409306722411989049510025468214930861630224468590566562299677217076268435165606003851317575829844364191601431936874489974306102069563143959248705182349080330430711933603052266605548103276185338474083979882390229085980000904460729170324453565935212588886283819525809470730062004109089314346426708681589001464450876850072487334450485206092331498467086234386690088573886634316215588739312403346557264128267991904339569922106445164938672971907421893388906050342138067531655662660184481119330024607658410467786670372090279092845963434236478270919181345170767233209350572032893484401627525958809726204325861687961440306630299883447330258431742682599359555984078805379416393206244818600073569623629403002410322121220499757966290185672777612708227784315635304845651374837425108666790376155467248871630208195169612118993953973516668971203879904269332478439331725417098674881314543179943742604177702131092149503769144272566150880897911559076718277087215929740164298767353007107180918576450494658449814538416470468233074265444255863886281458889257038498618742685600862397736875525838647509183789794323804022681872850991894439083886347382329655599849903996558026267430260158890044343576050928875175334628664910362988908652011318242620843563218783987156763292438221908014916490460041687552841288210293931885871288800133278773562080122120252196434660153776681583313323840917113505383940882502738481572001605051735772688811939944189217336647243307545271825693362287686952082905791981336342682698731043322340084376093903410763951887274244137169546814629181935811419775185303417516191305394462179506693467661840794528548112562597739300780637659403913830272448557138048137783535424758088748753987900409855174924066168519901168948712708357257171553042635461030990008377514800819169432234681535384484059912580802682115193328415531838922646478859880827757893876234424424209457770474426035702179413910220789675406571249873437238040911996450657490609426584925992290311234774160670096690019072651965051144250880499178639867614115778788083162571988963352479685419637764139592226579751898924387795314305636492976180752146067451826044744549923336738308621335116938652398784827013745482682880852658481344750718801400906519510232957435317536430748500550336980172810860282856443972160763384226322596667750425922004934056296391090924592461748950078931770320193062267774163808701716443328779533326865826820138929879820567482342918993570922217471693832274166227462189298293557914298573350158453202980140247608545615718180473535044670427355316507723746415213474036156329309670324674325270262043723633067149430095161048096724055205693326134696393581943192884552418950950311671086155959354452856844623485837994276087249478580099353698386705665612940441485640600518063864928719345317607333922994310162545538706971470679091406894206042227520857022311431786601350155165536214542654348554751174379318771483343958247620038984098471172978317929903324980273863719586174316617878851219153639632390730941568230596802685543798862688038626112851136630607922379745720275417592280988227754264624826930031011678473640755936628571189659160265863832615881770088099656584914407531259180328902802799845358479305306269954944190067790266747541242119500169172196094800150225797796225261101738198723357033076722308068628169723772889308832073620535736788462831411213358487249078961480025643331635141585660897640648928295322732291622015781009583438306446327959833607541808974226141518630743334905716074521077971900211822457075138848246019872671902309992790374951732471915088116284774658756636131944656818424611521032062738877877499236728757131726534281464533434409107501165189994575069168445111535597820139130856616741809631634530612234371598816035545590720398567400993971388408048897017478763079809962516913089481156139000975199278131072164746434629703497722088695023769305819419133660125903210863740979200907856396250052680645303910300835832069892727103863578954548935664831752116923461586322541071374639866044603712938994929514711358802766485284689981485840357158287858857919876279898276086719907156320142326120328789501661670115476701786709939146478885602139108871341678708457673077630532330451978907724660343407268594302253828289281568435545909623355400748855383778632966992746292120678908304508985903621284247514737899775676943216973392168911812638465806876118383616721891651508442068816074722953860332540883439278477705236045913257704294446212908119180222880132173352079353419445718303213297774606595627129515610279483362506790518897185063787298770317524994019483069963256913368919870268304997687788369424626132656524017404510209395921330079856052061815799266981691731828199653206297963067179544987409539933539405375473269435030386127565882637046446703138279134112162101889460541774941463329972596937156586959921129406127725180885147481946715945806415526404904244224877665207445763790418500053952182380441602720947667671825220399404553677177424337645194869048800535826577602692925197905531515687921054087844840898604114039553693240038401563032980300382428806497848327464928039210690850929517601218700202385696817369983975443819747775653107753341741314698018048624956161751717456703490302856628390656698203493990064855304688063821052021969796092523746940984000190973517244478964034230363526941935376172734573747058891536062795375549707407158473032618299623646610665049101745204719727573316802869251088270386092284096551783034321121329352749917183415015782124952594274391746022162846885174407028830428736005560124197312200633031336740889049813029867111674828260270955297526980362180704642544107642858257295516973949533425009416327051289278311514619402838160346266774756882213894022549148750777051402912629170502584113518254791442832851673074299228342656829347911306858602454840610847644179221185970649851736667406261452633938453227622332035052541584168148102997308317362112648943938310946774456319452955251832362256513452019983853807775004347449600253486636168129277830471017846917943832808150216273049572052845110798337974678314716473013352525435059479787246579479276884771982223700228876851842563018340215967542072997631694176730463442521383706325410173173762865794670847078381698680391024185603575102025546919565824150368961474853300696881101149842074587640655510925945148403855311696371909565089995949097463845598431515473092994733556723150358502286500471386615096473810282540318896380275742121480489021212284641642197964842909878423405286823551577397952620995188066452508634116914775262624122432138887190739397757233898805491823096851607443699483938652515004131740752725070283844828797329959324379488966604305954371230015006328671998746533071969509216504921488902853289333699831426400517696400061412564942622340032885746707138542807499815018420313532269329741956529524105244819842610494183110108762228986666390914919562887557840979347672463488976981102106625277572388423039466065776150311414473075634054493563485168780106179914273194181613616799656525435909309001986252699191982852709158449078381023078662011943493907080576397614528673032108716567393220293125968622338240929026064149229385633308120605754454480031005710927116945205134392454183651850043038362819776033261000971864908035164897921966886476360446416720770132169533101582265460873803541097967187686399171667433914560586179228531183156684845432395050783121916617236244006064960745433080943233582627250478434168893556316670985024950094693880134054706899743326720192022992221046058884774051241329481764732574469526684498273950456351355859995387939311681398455600468367917337930873849225080648035728988710155858898116134465648686480339427616019002321631999755762199026314460240083511004086612425301767145372371096844070371330752941049672443624602051628730519970059216099151177684918266450564486260462606408560876640022875472521966321018584264423685511632200941095526957435742873174128320128736626104590333223334278655264119691048708483782032592448563613779355967942896266765628299290439520201484977128741035320592677748017182789008421564817769074699173349348853156484376208301344968854088064012651454352810256225140430557277581836496030889017003107909674005618197544903536893065320730112836108303634935758298459872885095630465378649861574976369462702497990941324559300196413241039680885247519735652398740647177000435812183599199504709526824979324381979155770868559397795997261690821243026526109269941468804212751210907379634140415721570461350561426025066053596519972235467350978904125365723812824223768200935663054889105570230493741764395635634126576311743056872045447517959912962754181664644103533697723776148577279587477429446781425785140891695265899788092748141857286620776103292951135723935017651933251368505587181619593020838300144042988498958913482608566969309980970079272993267862329875508933043887850528155632372465229861737999824589100770663158228656026860756301023701868936139985774008297416361017785707782688677460794881137307524244768747063004032435634958384220160232905788530275450758315879235711927840056770579644209406322773817563124687009319952951075568460553291040558380368594511714851840590323738191404295743676565682949777507797755979702753404043137041305281954180386328804788402055473581167268640338239129814573977587821557021192839407764857116596997109265387926492212999351114742471706389252516677398411221271362002241258816293943408631431806523808596374372304949929144798102895636030449661918399456800324467122308431654762465705394224073318359458984245337820215063147964476804919417434483291849847753282519113644708031886231081458497744410515829268062929543856256736544354054313966786705605877224709615997618356034586561058184702733543931774227826715556788844012127964046907759432811017667454005704888112331415444642743508903909405532258294590403273686131654439544117891534895521085492801960143476214592286608370666634704043446183293141500754970438949646213885113697399304133668457148651113754493371860337707675607521764089900598953248200794953988187890782606304434466854883772890994937225769506404193587791419021277675814356031571186730719052063015581814970414164925011196438787369553627245469527271813085805082231822653503114117672153491249006209473656796464926933855101381766028071922117509700970894953054539310814697486022527794699588825144986732950797452917829772741575140074223208622259585081143754387159640942173946497520272444942047452619857036552364878017801209673951206027227313008229564966129626477566187342760983417424276546783689418902529283720441809423883958637824556037419656365573279862660505075104982441639895953958735992148999590942876855692866163153811924157912041065539233555210924688916893105659401995095492309296628215326199864774997362612749721916456129452823162435459374181920039440980925932392215393301776673994711554346675536949281876609643361333437316534919599908731251653015793677016642375785106306600981625705086980576236574907714703663092070996186596482071919322480221182134749546984926108871199669733663977032641315677874969429572781917234478904827728064198323156694838335332591628242312248399732360752126357292125044982990364237634022207617471201141927534876839886011656393460749313973191767285738190782574015139159937686934530705007007211409833537650216765856873242319181880451224333211306078799692214132337187105871874241939525414405389645663361342371565380472223794801727158881881762072957756312423469249737866317854973826703440414226584596648338481694350365570863427492660634861031278037060583539547077295768737578081765177922147819703210915566788924393453253055782341985217374821495270032870416410727797211091286234254217614624980861639447784830501177728900969616059399632641626724907538188145005861435297329284050636831426282858661911449870254258562313274397196029601568857359393994810216748647330452673081838597140826860950579764294010074345227042606709305608207315241367578105669634767145413006438191770038892236744199080019999315534913582988060294547805874868721968775250364301216330373337678199637132761119649420417815839571082652261465139412508931147138090151008458706529156653263650638954991748470705161231597600946473216817939150581224682600999744052863205098225626779504626451895929944113355283445043241932300265892020338072914330770188119164935866104328094458032197904770977023785542095932081793772332622513209578430041796913246107537372056328232871055116774123755135089605759827574631806317224332274866825345297836030700719522528750700903873368081953416596657201862929577471747633282683368470508158879043268476499790841064093612208043745509043925769617146118381007271982227111063392946601797713757965495464970605867466142684019917488994258321802789102959453973997566208557871069890203650152019822112358819212304992236584740759713754756615944445031282008952005662632928877704713557322782586525829543164858430045166173220499971794994740395071207677962109908491806966022914387621947575763098623153066824741455211052099438918266062887344961869226491735210281940975100022217402306122030160425809001422811441475309685903156532111067174624599906888451252100344461297498796956970642007955543663412507815041623267192367835328541468585986730754817149492430763061736227155214968342033214777854025629495436557772622709642877818010837882605693879156457304575329898468877761730720283328203350832330749498215371382135362807200564859960556512315615361234925504910983656980669488851885847230842613485684627062039247396961992986604524644000528281077908738467145944169141683836852190521049363554353369937286311841301000672931622990187200680964417112606615341212267158605462370510855406257454349673939360094119385757736347851515270435633932470858345964695706778960973320027596778379691194679547284485343443086446250082927840779119094731622351965822924430539307088826125096885150074287758297944250641717691694898476192837059382220733498880434083357138246392546188835121116489767859292401879904047056256398537315965638323621409575130440177777478012809846922916698802583381731055235987728510123655067793849234008283344532881189366530144832978509037817262730790311847163385029042208782877583754997366663739735222036970300929290930576627704712100001852299189640795432535360332766938391619093973265256182999990469902796302438830644762295853043425633638694560726397715451378734212874988950380158707991712102772089800198986342339243975176856341629989709437897815057343131006779034401284192575759528946670325263955185407554133636558158757926407556371490956216829612880194346050312541484638137180124557449363075860700886514210808877570418953168626894447379310661015229036425224300878747309448493593702211289719745587180922941226023624242044131708766627543508395167707950916055327701693598553275615338428534023840875860406339085685246691216880493682894095769299734974541805767889688311798668349822003894030040013954508092296649229649272046448705150579029411597860381155717969277161003119313425529433867177572009672286214804743354577629139442714929594025593186092558950318770020226984520051079554863878777293295720774889821235532671172015458138783478133069448733557225486038796934207826116735318450493250370690920427222853053002948892999990572656554645183813791470874731829330668493133155533095094529297305156032398404045437508124401787515283536378173597601155879547216256549829041146354142935303848065428574258451164642526019999519448332935355078982200610510203852295460300300434951591605938709539421780528869922674252372297966537448759444814432175670352969149719064453634434338546277004015137489427223805755752938285344858399543587456100269188220036993466539124470366040727449215668389615520077161621652951753604428671489925666960180210764652829337284659827229064093750404642755921248131327449919001707496040571829283101293611814234152427718384020885634149395875959055962781525757051898555237917910023314917925027493580725171304194596267654991100602736606867362733599531606483286433815022043870319385966960282245152260678420992642220951649619371229921510982108440619029360018470981244512025409725868575361012248266646991718138082487575308867948095443562168574575623617243721485278441971298191313380082544591992715845306785145848006949301992006809421618228567819588262834043015435419074521933314389422836582529509899136326024267914446775734835886193160711557919403637756725216947022710723316465660569482155007137751634664858932650929560826686227899803938871691278798886456352777749377284824904029230915973360288075676986827063118051521886782281699916478103970521862301654161032127732973330861568227410839168704191124212498977956554490219131691635117128565503313106461444672479724895349142645757333620780130965532035718033602110586716692860534267824762021624542921882329610213571067094159733827261586065296026998850305397171625211395225034653600711057976630019902577455636415086409955079585344594387012865700523289274162390577949241238843132596156185465766286874533587349696083414296765851619108669193980215749612628392907678869284739674911824016502890853281071148811999982423737730381360286886471371515765967341905238903500167213174815873548705171851375842670740231433974619925421175079582687657689208458741071818658262643565175259321897275619248148032383464350756062969008800191089658997345554785846092572380578574781890054969639094687268811662666779534509688888764372191728017333729372252196861552974799638607606449856029474357145490993073997952479095389817189437984340422807053300665970515633276421328104368378161227485167563202657785452281480995678979255841223401486557226227097386290523489347628532990475525665664524647479906301113752027655095276456365459764034964813181520728264812076200719971241838357323984528826221155249831412635814872183018283918335269878720266506689611973010323745012017452939118629962347750480519340416761916456128889180077320843192289116981510059589900186303983439376454748334404332207275906491720631367476669750077240161454153763538016450207016859585662808476339456823704708019445412684843431733588131306006652456861728864901455515877391910790636021394224027704523967329676979966897239759663650820431508637237728637642802081279325267734628435722625835478919739477498154628210549204957866525871576109119167245931903609925186168492435370525059768043700226372338435218003943640727682752482192796050118409832354231624172022281048491072146119840180532019504932189621479695025220405221670401795591621938973068487527033000210309771952965562861961674485554099500237084824738348868220221252646367667027336937512832323647727491074158593154910477005672148732656765522638015630346338775574965770868941924743198367445182296789940065118205543639074442149705968786046565494806309432222834865687169197549619463109958327928611249090056560777496275662351824101479521017716863279567023405132697524648240354954901846314009317939229952644296640159016954343527364857184057879333939767401430282977996617976543433492848250725428784653406093876044699698307533337714766122427487655065512555097198311179206871776325183052588920636048861649265548963426769851059758092456715685366381566725133069138511724763818477772906689737809371122526914768111963570239111614583522799259347558171560501104070760267009568494324562779371373004234235338103088722453782433256375474407837864164491722201046708564626011333170959095787415075025063819325399211867712918670692771844857431555098167282692441896942277012124257909843285705986906572000350731426455914699871849260339236650867606836160640717989416557553160492295441764004501107301625592446226590217280676007516761075334331372935450299973867009176680217296490381703158118712275708965360130399389469266010569867394208922984804858512611227533166256473384433507380412289110713495668263639384791149349499019644396626652728183027764104793286273009541801793315923015498059826648535407122496225319857153361635542317838285203943063162217315251436274135829803480868979179655155123667315661586880895641198062215746066459868368491421321793609669852024122341696703156670781988879607671534691155484756114541373609058847508709710980582591833121916601151423058022298353437327469943469224559455073868699005193884991518382257600784071124485042390576341554688846184771493176042226834115739872506301278912464212476364345081038822320983479225400119472060496291348893170982176887148668675955535775124823344370297432795551397664867016748906824808786554201860522364555470611977120175162609623589376239666164443449667873607194884969270161202063686411955935623241270970201923680808213509817041658179042853634119396793105855443535167665241174280976593566831477404089192661260750006891534919102041706830435193432696542047588258164832299422575698798003210775731057860080891274166270525719608486588183370615243224600384426896576765103842661620421237344288996957251940317961014593469373554012295215383189527918145118246025789261420201701657972742707265881678934491726980768529194392858228131347066788235523002936141505846852475580691482659420343489450866613134542823370173814029924948482779562257766162004550198706877533183090229064414753337837673957512548115964140286682039812506040437427858928904874673609191661606736481335198548630629086519452023836317640368915442641455140094340740270334301344104588712932720319377775295635785091656586436317283684754448399445885570590353377143102486898545020665208572749695193444899875027668464197335416026762661099456034110259971837109890707276465733252340528454265636905755190846630139424226488604643214091127868325808971210802228063167673329613184570514226272277347922289225196275470166838353535922085201287144842985276859602613529594457846706983236378068501475671330196828711718365424080292421758168616997634704845467216681955446998648619114463996355398736770631086963067955680290682167399451041693089897368033510953183131122219508169853144152309702516427943715706448194463555772601825921607316272635010731578307406983984493000552993757186898818581597927198045600520609117660973129376641450356959258713562924187285946485211862664434017252056851455718542082849837266712951607441775631478444632251101411112572765002836044948977772645048146495219265554805957421426961326786167515306900622157147330162936291678082844851293266902510231581475768501491655087202320448954284033767587343991969914158064506553358756443837835187355054237864076984999299043978487479472129695607941484114049967200218972604392958523507651205865826389652463107196052858750455780907069978663671619756705316859825835267243885168356487031705314380163505523966505843536285932381769330540101423358516513597320080907464864826938142770581406345498913408069599621712267446851328076794514563327386590491729436647373720962460543328220927068868841232582541621545994913659357130917874609761399794276442404514957731190987412302401867079234460492971982131810850567291307881277643907092561062880771605252202459054061500476432867834353167788201943657975013865582352335826937396186860783566349860976969322611021017339198205744306188253008157952694176141264124486375733970313053913898726677558201518786212052508556367873361992294048738351000600708055807754745506147634876862961677426794631322244512982563980016672891693403056462906316664922489999651159133655575995423170732566039511708711185390082831346383766047205162442316344212112757322805671403177514118171661448527480696867623814589513906460748910290475990247761591478592296552094301082612243343270687966071521946947172769062359016751811505153278061259401388435017874898047026670436994408570381704949508626595160534490440350567487235372647364455469754824534945705031289840456456509505483014386857652169252600045123441610701486667630107733118302321600548025401924575656649424648982288363325222763551542255845800060178741598537103979890295457353127030529641432082696094543091815017602266606809387955740050272351226591088944215154791613463387140824313387942483229879051092206668742431688840278637971159116853840980349199244516219795650253459878971748702923726932776283902396600571048511610040712264556527793035746062131009491831850500589430052954523257337158998256829314913710621183975042231673842655115147480054718891266146283572376264839418295027840664221392748000366002775979817323905008891391969698904707807988882703928247727810570832293793611151828791886243069502588267079645092531170801241048352587356707029024836052437061052675145106284635613610504920879769181413362243253996202266873402274250008383689553132207762801852602781961004739314112210625858640802220491740892558297165720059885714815534596188827490119916020066883999208729955343545720610593309187822446730511362343630531734680951201326140122735307531807375962554065964078252749919389279503486736290588019438427966042134049255891420230408912143641098124179896813169909601389579225859560015306733529804159570051728760236739043304894013795426229625643019479583316587318477725977733384586231049535331576762502905271836763587146488610595536179158583329955309051499796777337401909998949153828844409450839175292418978474883336367257211618948652825125413599630326262100393992785788593120938733886654166977300197307790085846642095596501684190088181743807419386771891536877381534286011894022315504324122739565334407171414246588887714360912934596297335338147156958817250525871707223302080095263787972959656671577586994700837113684049070249036744885964488728058174878910967666543687597055075159632808237830125239205407374655448629846247032974936738515071470965462881027705690263644121387600287450766759270890273940958650756257360870187656664233096453166964069695453095846720102001382469318882673551733081544076209806001679728007757352367477926491504790553828652284906477559860538303838078670533814644039344278255746014096980086974122209764624722179939854965260642908856418890607717795997251920717029461292469418382424775508670909388752244703753525229042749628382233520807445817674529045550480961227861835187706074183296136195154867371178007968933771395544069984371105088981798758718475614817515122380452090791193195369280962372860467576765217754585254178192603694005493439805662631969576443827893417124997211620359033083223737773044749999811451901820885729978240628409590806045042792359497389654537268598566963477093224926322954373678857826174376972691554482711100210184986795946519976419535314153271089638584549052488494132114981309882830789439901871327723701038616686113033473441575254555467580568314375290608097274019592916943808767665003088583905533591754328119164905679175528630634995875137934079972041736165237949609665035805889177020713798502438215038918354212137250054224716080554992673997359583971068844820931697971626684926074633400843810449340984735070088755596356001072910794437848686026050072528314552028001536869338181020677835392561140272593678588264410185803771712687757260050089308243244369019737006931580843381561903753886148317834266144888974514298122092940956612856196798507082825287665687116511647249782294963239592287888117218395939458832193299514746163605518707325890189304792728609427299300697895836213670188656790733492665314961801973207104570815323992713239087831759945362542767847236291977686883577789712973541020581733065693590522963512359169535301672475173787831268120921757888797976611650048715167300585137719179118214336383785839637380117117959132507490903599106028618261534813496461497446636336601445142629316700696548510291551256579362767004737383615778169018130268167979434736708991756039560341037356163914948426291386048266062418607817298710030801752425162831349383495893184209935363406512181239511019245420689759656574879587059054249056551188936429017909553752690895951503402011273460144132340784686370849968885408154762857504426159538462369110025380900066478854754955273612059608393351964341033282325471817569890729701925154263669961817702766662218233865787109307449070871653352038539319206771626370350326103629695285273879057849832137367900406828409955997990085378439254853404100617769810497635768043544952095326596445230683878870955663066456458952411061831255739452797537978523028451692963917693850524368174659739254666110879723425391476616584144459818666317820131076071768836389428692976523959482897276489781874950671301668641636366760937934506541557975791837182071206337218134831950628812446950757468894349043082959187272153952879564327511975783446843659927173316368052471745002115213586334725621080675974709387544242355125443230556286923100205149229018859575789003079138537158926878212181018609775522949718079604949433354832988292838630953458232959852740258354623316028576058463232087536842182594207465283331326220118137301989757403859462847975231704197916163700424957513722697764988627929514821872836135080097807016255674724807979038708138946306120522297888438534174515606360377523592858827103991286534392608294683106339214157370863159570795446333416285676718440665761843368218594290364336742410792256821595057796654511241967321557346373926329699510351718326163854502069938964370767649671764216240979555576222852085151902662522199215949758412433921272722985280111238727181738422134132621318512582978126245017645773210948100505899572518696098289351776007252457839040650947130025971860739668406465717258076627482229922285025125400778307129664574370133320411288963572990551613141575364375663219916758446418510624196935368186455296557304486842894134110851275474085968545948157355613155894652923559889027127143146100654502298148403287673412767605839895200697892761370214492032032826501646447992824684582753165632592983548716395739720115481269341810813418087937148241498514650386688663572342821310694166279946089968873679896694264407630799213165992038608413716608856979762910819276078970124276001606117210641606602740299087293023828481537875441937349487232112159974002458218678154529919953071773199258939599401164020703833417191893203715196226455402935292217787756980186947900525636907520177903678424245933474822005304797218759667550281523506167129623185949164663178532629564733134988743962855661796741396348237486258130900347192616636260694356392954463903615907865369562249397150300648100454827505034588281758199313938133210048697216707888533428015694211768879111739407475309091278477445586263489598043836660276091235691172749975636403451783256532422425372313239732318824263242530797820773385371290506615402167233262083737379777464714538886290959932685864011753866088621751115189378265317148540521143701906293055038132998818309630486631064261316774409790336901038057784432637554873755700971317972728824208712391767034602945043093701525585972448778081352556084723630693212289498896354723708787972861297978969621018529576806156183871015938170028473404831139247643782546418007896275602851412311678501207688047845412034461718391251112944116520276902611063423599393354257360649631919022386101112777708564467156734267548754291533137435341104012029327789087886710970626144135669543530269743005449396218551259630468864304667714085518313363536856053965213580303897734964309263217163311966940781614154364215735104996136061046789301254861455444237416429634047869366912846938707730250435376761760187631780975416014577225592021357914908301703262517806497402881090208871319414681068496290598530827082625964667496268819036764101189363875818060512347388060369793195445992252365219064498126326429349287460343982586353894512057167578647512220243654926041264788916864500817432996511621247522993689843840246400929334380446808183111606786293933496448418861237646404068625791615108450364636334855313210014512827593120623573175212671722507333849602912088837725850416451126149145101454089965265717775743764600816911567909918594791709513986844345220813900027586596092429541075273968951378907119357714232412412092691013215862966406247405240874047866832278918382749000542356534833301953329235403097236365395151486765586206321169248118815647387927282585936363107707575350126855268643358356538011348618247087548227750878101799086146544190213350446311829619502996308411127595058076813576857900375029615447352986125584998203327766925633714403063258390593162715264956217788884346571355083170700166905178396798521713204336100975033636296915794354109303282417630128281294715259459870824495510608986807329791957618972403116280450960470181664728904903169666936581020044046639427576507204375339197428151038972984199631299329186020394471650704043923885413201967734204549839277671141631897622344564309083178741514772106525796357150351103696001993953268873684601790164400228247913818411924499397158030929654600000729473920100901765580044981457837285876202147512682430027166011723416073915966170216231237687039628003700599057677269863477191089221360186643890826531490179956438693582865978431415770163459473616991898700397559693542264377995423451099475924649932727017748589655561631166720575192794658598836349323928947406563749628384785610072346827442196585047263593744661450196176004911627771261699351513990033697196891136496890468831997868327463550364039997522518295770350939335365178354716828770064786532790837443055081910682537302104325828238188558731014637479538420175852033310959619978322259630840434020920315730106924870748173279364667438214803505340531234856845429696798437238106213003407130966561815507908861009117443249918049168218789794804472070579742880909443868413168632821253148170707105940598495633586240805169300222803215377402606592456723800426951189402907308089444484612549724025546794436946208181125346255025016849693326381534594363080505218151925087198533831075372140100710217738896295131894404302970659058037917164285381355109255215321241539735234468353117868684328565455132214133061875746620111111725411395367542347681255015227483072851065227281602411148933934746730815921659973336466806326846170549667654284968837314556542177491750287273368406712580955675002931117746778562779612550990105188056257546429711198175469374620043774575503819765412565700593387543250597841713236912115731378181120699463199309466417737339072294164270048909253560842937125237151541282877778904327633887323826502842556622015118489142620658111188154261291063256688180254339018766911712309495295817724121822824641989361065326537886873208910187081681837281561465167017622232891938772189752131054397341772841880262591311403342469602522813937827640297762213888271851302177631132911108141329248442073985889675323197172362551169933506476230419821002355757424736485588139624864025264076935330076719565949823899935536546900749486673699176624508243990479233397256029681869872345065246882752063338950430514397410003814831352917643569173552457839066026501726683025867660037096365817186338075679606145282939703498077727433499534053971349265061677062382276917103504804534337272251356224167975484894836212245895930413486020931002806459824406424790698396121855687330224639552581488962540538768768822284555966660245692327704355661035482253793706750348833409051849032300537581625479942294119260647356096802270009515313895723725081199638370190523630944978270585437040434802690962701793718560969765399197243122781926294019098714609066808531543520350552862400977286827743368200328093641430719371500911177730665146585824731004611370110445119655986752641103652362358423866591396268512671798786203583622685200303084663068555085789794434347271728217606637647245939392811704818493469418388059633440647769162091918505279298405507555540276307513855059336948513336450534548884733190745270345860212279258342216803369521691205092530370397877037863408242775711430028877137669710822020360092238119239885750678410112286384067921516785478166890582189063632477580220997258504881719906959119332219745667809127443553463448818394386987813405957400929237432761008085293618706067285558651413312864085980907863026943662485254297548723596720156201075027606597421014057973789800352369173975565571718187562832862869178409582935203059609976803730408506977207895802230294876535668490167311354150504837525432784581518104492155306974030771730918262711872566501537256655533151111135507206685745773119565648228932471670630584509613121598485350796339423787829877381670166983652552827011616850414714585460628704382739008390816926312484315343370452993996916982172900748170836969826339539201232452478248735963146383284243527602136607245175097634113456321261293841719602757333290344416705016689707845973657720810322081670631216210846418758320244281762781295208375526877656943239276699574786610259420951752840319904415495743271408548524355376040444057036579034104360221250317892037398772508965520539155205241095751458557609761274883808085150022017986914556349392025839448210776090406401789990326334212680666539064791771634997467189038424234196018160085073796056834414999721156936854866797919315164440769369464669722372147983305105781890638802781842106555188341091305114331142392539606961969733120135292379573707024446277181690794878979813903978785394976945564480065211955875082659902708301846775044461032862139196126768890636427648415304658713142508792549386266694793837229560168283783286410102500490629367977889422187169680822499187864044145514378702837754540094544850559337098731201494040869355273424970630215213839084949425104447269051603386541756764577148643507386464111674948721388628045664671377824255431871375473461188257931474510975405148969301334888405414977400877189981698946891551292748588572130508524817328599019929354688671609474114384245775669205436196474023359870586798298040800292147306415773500481375602328171070530171948387819459122352635843051395246748803279742902518923227684080425956318958992322739535983616055356086140565667757418502179052519884189564063933604855093282475853793987990798458398925921718852266046123048547851257574340967662881764376829728823735276286126721685483117485381911600687652783123850703489068180302572747436636485135340129877363906707905525480996934685399317747256146503123010085411647786526921670101054132916882618264868334931751720450132103909670958472270554986802283712898418259680827134617767774233911546498647731944225792980141355070182825350284243775525644539100593391507186456114595741997192490299398265735204876768416925660990282419922019463240037452291309270499588305923870283970277005249231337614324758686648379456997881645775670311016517840032193061634618709319096440805364430194946573495249431529966424124304169326332612115951841825807265326654565218445766166047431602447179114704233147178954884735983349080996416679216960707685928102880121936862744023014634967572976635824973182236204222008067847794523409015541251183188508528261606756181140454693984070845668174551324103670444259383558912633842715815902386153990200688507995553429634146632544709523992575212066769098205607432162089604260630175149906112228679596255201526264022559142167248625199806410190529219527836899778943373106520645715494891612280396673257664799292194576802896663684618560317709923894430304028421142127386586152026134005163548271035148007320914301589696233185289228527562161970434168158927697386572909720382116943031862305364439798911277099743067306863068734510293222194773076639313109177153574534408669206427085051505982784870868877038122468159729665380954209467127095679321854588280483920584046684154566208495588156190054001818646872471747066608596360137326082721828734247619788848111338317262075991343689648209215904350440369981267566283856692090048871983251499794242138135049729966561190873194852409262265056623796207501020100332994505998739531907748764711687343897857041073450396435998104900931304979485611576906855881675355745048133642954705505923570510388952255937088497294027514096164268312185807189704278807263752459858551897286111940466040613133400132534582721961169984775217171558180091417769481790229519248761598409026770156313843073736568949870351182672111078632770359580537494921825038821470189346546036669060312392502742811351671883128179005020275332586965146488883066174099225239032346437910477572981247193594050045226694990061903962285518537068339194824437220434386232626281722086454938275996455646207626823751407635424980698225729776503501783170352398459518925151494690855447969292483601702785743029057707655949609308199501020188258115425081385213829633879353792855667194630552884954356819977734624216823527982554045712265084948004578164859806137388833807850581324725040633440759934394022722025005458067189097491511613687748104630763182867841950949723231579416383372265343135069639588207770444261511765059912861937002635343005116271388378283738717630082674903145798410758336552852527889784231339385922115690539853911471540370223187720834159575150532856406333248462650267119750634326661540016932307336617036725082965337252636845983729107647145644538589246521181218442233066199372252113612460374305765980087084268376273490258641206194888360559859808819261759961864389816597686395207191226357187419049472102883534728907551414020420428771604952902114050556365153283356722143905762927613837973099450799319894610851810702405636082099334447284137027151518245225230879239709322615207816691346474467958567567599072442996935571720209553608448533031799294629884451497784548717904773764297701783640839884835145306358413657344887727722583187036146580348285252257181317195200582470361539043530624995343945023673049813572516491092915315075777331171414387856330119613683764390224480391807147008427701019047800153518125228769676105801937755614639408655050314985217895356824165459543096235566609782192170482722011857577909736572660275099082733578271880449099187117379901720556313134081881952893774255873871341237245925664965872433393343973616817956811005752415258518644882097142145593585346694455202829877871678371618770647490950163789151416879290062912802555298934932147454065325165361281285035032489806240966014298804475603007665868753381197752371411933055394036921278021158832613878930189243799579934877917856829209383611744971963088475205998017222698575024193221541111328835667398664667746991096598537505397005448416357907166323501927735514195241566208511894997305475911816163505547352913557083026272587209345743403254349311572276190056625510577346217267497298020836379994144260747282783931713412468594530338797207269846474664063305261721372351575989004702908157166420529122278087026278494724738259573937240194688789200528568705273581327591728867391831066888366614179569793181202522555013213746479257945880186211590085826761993649248752483661170974499157997721791670159689197163782985854685459647219002415802734337073270303736439612930638415984113567479434334294034096236946047285307347551048963580070634885850444638290028642067557911764396743872414429737117983278779771373818469725041008494206239597509783423865595230091310773219677933322152948190343368183446569634869769907579751482855882755886196639137755846095057272622842382318050342715396607672227446136822652802278520738915872399242566544418800470724397215513269546459061817865205247899933878207849438234316938464095850124562849907565145180172724945770716248125839014561637385480997322658267700885396793854792097478548096146011301245281048877842188223152571648217918359585329229213143991685347711461322631134059633591027172039734543696358311791116083842055373334125365191493099230521315061417295095617657530342674405446520702393440175052592663258466858676526622402849285588887645408643277086375103176984131840952278306503425748827384865885865641255162936896609341092753982860897018166806068585507426428896608145652215957908816142280011415900851661169102210216208721333987559165657733196135676979338255910264408411072459275478595759126358475255247978389744310906129944379537463613936350344409735821447287825808558968027358023096089541678965051990359563402724219764070883924060334805907139461571014808035763677622717360384280061035437995485869045998833346616398846749961501274454073045932200142182490018385280086692387454823263633938965865450004150457296441946361103364319221914527437039767259258381787396385443852085967577566574191351613710920131429320706768748593487652649140500704473010854971455913514138977129083731500953058109684129320483283092936771926166738796208399965956939373666514601602451074387174842259310428124565686942832791174236104066446781787427749938980588924059072756181439788792005036313919932206752688935765802138808976580901326939228773879252465586660897520617892506693202335196730577398292324813805095572075093652108332219020735523154995234782010535899484379457496114222584813252700625569022733707964379823397107442977000708201182122123101353232712099553560718194581078750409457303279577795923366277580630140562412071416195893096377601970471110926910586782563353223473845097339510199623741068708483068895690565759047100875390663645282222866682159719563412185122644399293835961461352558488970280885646435780591703963006327016821427052293610843582738920311199848474506692967610569366759122314646013119910504787830932991499282120824097075631064889260515071127807893030779545427974374136155744857344995796441354257078098779400279661043393054046767339566958886418977988169121494243250036144202018077780298016408165400494000951183030658832335263137470555189955538377077242816544834250440839127297623333091948364122871598210847660805885013665690709739195973355255238506548204452258089951415950048087378606550584795384203470783720466938232594035595601724839414564582190027633541121024477124836639332270162781772831043259652360809374389709026053833705465789637884594824157986844060319221523763374540038190501499459555336174964305833490576710039194543446454111841134823219923036349449003510308650589335070425184201646172418277908762542700611415430147678159692281353797381483425385856131534634383101073828838237125922107416895724345042605076458628389914706434104765304202119466271841560583591208375757323239302020527507058934762810866149037827191105417657097944267854697564326161972465898768969089122916671759612626974969615611302409705829602823919595731562178153442797340809816745277433749358359158090092042236432523548734092650388097240795404716260025280943348564404811344125383896479206946688884655055767964826758502153908781888948680498121770576772470706764200909618334722871871442078587073732315190469781886162061795728016075597749601854879107099082093317083648521275773995922439809219441205343655787028314164185004704547778126502236016726480977829253507005447313493477268439813371089359313890577771463656234436048304517194838847487234842112645296817327019014817505349295980181604365322269371542143231738246558482068592431413022890050226550583301241003524610788185325140374628490641458287491221340722597936139612198360190787314955449329874088424670362234986379975444003511058203963381511190456129511956391124458578100674242515138901174498774000183348406586466577223806250986916939431077998633448662603618631498764022442357494858676763542514003569870843911892250313987981449930689164182904437940303361671072800232598655640473813935341334519191229140099966545058077933343807248206571950132732615580505524641282223955454988337339347677257667728371278738768368137691106318457790571404543982540854688027569261402651814424984236919057577768405163898596255437030305848152752607608636946290670261878021883734428323423844437434796158683651878807872404266153083406983937044601733022243440521681214266527148724667326779093160348156287622400892593603390577841857847025166246198523700630832552627236486050042065730706615100119976054870810912002868934508602604251762788821721404510484361731687917420288476879127471036726947252284270700594859721665049252892961954090369959535818665542175605419827484260328623110740893760116337414752919926942071375398632130447702202546810326713178080483295418686063360104595866413246341383814135708609045685958917989542408631293610675270974389258726147221999417069197546521245496414694671416060323014006892293359668555557999213895174820681832984539274404970094549082044632782909045548559257585394733253221566119987872078574571932638049328473963536242939056602098804483866836339219523536105570045855523667792863641609473429619659781871445898940148023812552983545296291777880922842789431472027575840978362147435383001550430821750520225034975283560625401651254560866177158489152942547453735315529099086223107471149381634345695613970575491694805761728099614869576761876058935140372786006145985480292110163269778028796201378540975836350949288437142056655550913848396629146970510550544520415992042554986241491859659161242862604512304691595195947418637675976520213907368082448837275428830510953717682499767992595229820833543020744469766884614236557052875328489918863271309189729797782188000054105663269917058588147443851391393749474857324020844984430852750215671748101232412639542942225665825011787958201442619619936468862817917274375637474283731535957603059792856810063828799179251942633288429497294567878910347296298215923036650703682446748840502951546007354332814331481632885284585106890127557225009746057616938855502122761069470622202915992716772033436595562968908681849316716016032175975834950907599202839865924854820096901085185337366756936421178362801165808949207928844939595331127388845250944612641659821002119613398376694291118403626492703482676303558378664147344366468429021127330871052343104759892582075543244118386710023972500908129059655661694218813744787628401688769363666044250442453750791015836059202744350515511317822892871414116314543015994436972695740898500942751516264594023045712091437764650070190928199694655276880159652267951135608943158095848247647653919906461038300213424337873605601832257560977993892147176278101878668725915725020124126172113280998537509295733870517817509100588951848997814169204496409149664533636788252413525223213718402925298610805583798340554725413790229616781351352725325320741701705124250037288049928304565960698486136576857551803656983504748913953853704993311875889322068962676868746513231351408699822798196213571197173406181228039930534131130572344626527650273761610115365441533322056049113145417692074217352255591572015277018009746952517851640905603904173773319126374860446554553591042506173692237693189158575823090770086587224849737450004547497308784976337755520739253418607221709757156943986390878456451756430292942186075845021940702732203493734749896889226553080970627869376785849977766718260365636811387722134599021883470800384453815178876930712135819999991701977445501340392799980098606054726202913348523899994904048159628918056718203642929590049816757084402594673927717279318208075309698547991606016916626801853958079225677153650961013622065916190544009196639114013506208705471809668332854019410022308099151943867330742833581403926362305424639605093999987805323374382435796560856796075279721130515421233552398379258763022292044934249301443482023917800206575253919932192106213525093896541120542278722620498105812514933001172667183918269741359610225428073575167433912377387335146722860280145665512668765058453486729076789995414188343757488321149088159037244389443633749107410784713572599362024416258234909149628892073499543872100102360870929475512546957012991885093160212065404822917822707590710803267278291330081524724809425044913474724705659892573578529571603050527302332348706224766164940169245991290291753835671193003462135656968295201563814861374147972945575259840681319133809066609057170726897373053955462490379221181718324054339688632481087608842475915540895927906523219609459557855141235479378572708167822417779322458009001581559575718896780793376802758862624296970550803752037163376254507151189027189555439709465127225312812274596828403245827034156824342907539204361426112628869120960846485507469677896674579444534291705346539597452614401530868422415607231098041506659209583774173453186072828397378803170539660052371362933025086765192170276784833146095113087646103464039529203230819595891151191363678953852718110043236614740432096875707402432708956232373453399928473777059636736078294656859139948616613096213248552602545894430822824526258661321567427803632868744037901640946621721352346423174781101292540391396593711253707126947907007192586176096812177623076528716403045017944097922438888534344719057516282852676143704384847264800213367580771846461658227949309914088111706986603547892719745782636017545517123326616874476430563783423270716981624199688820287099333070848692789511954641308406096493753273819150180840967961373955508564026862363563427206484509818031769703301708827137092112918360928396360279255394590126675693351777781136321472193690933082355338657057107318750733887470473436042301692513021244928194591363332060579045132766568967119219689333850846323286934533510737055169272453179734713698909011748278001893125017665735043272121673998579398639948296268079961202273942403694263625228593877031625647052300344866138798254685950169265686318052767014950275074655589292528741174799933367491891514143146104577437582856690540434425714586694872335962200531312839905642700060263630720240366879377737052981552021877479382236277127979247461612470221573712733296023900689954216001859445087886734083954978777097723317133869087555537732645341504468087077494082858976985268910428292858519698692679080219095695337488070304119915533791421718210443127042237782393459674861513516459605571352140459137103293166051768652767251898614255429019654649988920717147612334916725886952911740856237871997140774465053950990609917045747075179431995871956129498447332416337623375392773673032345349761335220762118777560814046970034332115896780013076269935191219861770549234189646203533936615885317359492346990629786647476652489422848180411855343957559447100356068144747185014592633634688229029003680569636497037381528332074153291959720506453740585700748860174517692731126040984185134891385079138408690605720817487854732857776050957993326519889900816945713604373400818738787572331412707028560406245037959186345926517859962450965621949562726433653118096619963830492281516631008346243462074679704273356374274121923309470440686567003826138992178210244742580312435844263317922252809501640830939899662382915632031361002363540000220251887940897051692592521650784974511058953436888064628745278873534431287677871481899889620470327213924948014306439200568752299966761916197591122877010072466753903067436616964120489032678818932276923608783410227494653545081143976172102324376338880337036115076814025407871207945968748942154105632782528371829928048499363526022210470424305535639772061856450745861323174959257924036456445287205129592069446366229877238156171578275814925021733798905663255996787136431315306396883781404512567261663917035022421561958119962244689062978167776980899159244994592170159910306866781624864111439118991916140867299553616777915090738927303169089465702297733304167714835813274956071665985822135705267938540825177932125241798443887892361964217068372321660349470841561810211219758358120821422702987275724286660859451043141471039625930282900460173652449443171387346828106008386950632611501280584571681354604475623498225404973303165435281165610718975351206439267492864774150514692509170759819362595352305417488562385282172955396025047691425830606797386740164360454164769203402070970076021408599995485645633197435511878620549068320740034002784083343030168148179427313699357268197789895666414525009808663144380510154161432482754206220560918813670077072360993628172308659728607966820414911274019640517936559640922988305404887631258249771351395560339514882251401739876967345506113154161900522645587105452381462869888522773761094495166951982342247434331161001194569149253563573028212137758355920000078502234858366019622677329088115816854118609621819602895201062859727780674734346908481236760722501747251827509575174817052870533259792164407210306082108190227171339469363014320979017521896446381873703269850998303615091000412763588510859134901283226055357568921971815382563983348951993222519121843262535625262436039881603463456710903612316932682390613149780274634991958620446643231861104610311287323152094388407070501301048844174826657355677714212101849706973424443803777437420832894580162466812068662548459045888415841947345500120776275411010055826032968728438931448369418149702415595497673441752634855615448329347914025385703365490104218921787033361930139822584142843892071508084032747636407583131905025978724674765527350819536655290726575041125555557572118441557804786826915967674311962178676750929157239853512089072604280853422129314479570932896590492608011496644302838929780225899315008660505196258386221345726561158557826529855894571501611359647802984531395274207204117242702249167274825734886957665249808160885705585121900858072285254711452731137191948699020435431141357122737066287008830799044496672128414388936562323319400266534377005414560252614469514218530418135753289250180106913871932219289856441048472313560655103010070946158881266187851566851579521757917921627333994590080057131517886254506477740882043005716379247183277366617118851829604885039503088843624506341609748736995821611968296273813167035284374224149943926099107902076670258066026716798945950493351199125805063093159270242590487745075483991726279690751325272784896648555553564189808436811287824221557046155762602338990194238276238502412502601718557260015104583622418209688762753088594503845131267044693568135690788774596111859625202560223963829317392639244612576202149742321963286851283181241843525888708166893695285744271118671271333565612582689999893734731248237823305721265517515126415561318274083684598813144110224673560419889135995627164831540318583469506028903878653460405731968462657145102112111845222810910534518675913903963158209887724572110037267029372691625377613651650281978432957292109255227610447870435747385927611490631128650494089125101727648339823092722544577446073364387094092432771133782159067711279334209464856709226528303494775976621362210078328161507181530412990602006163908510927628028612680805216040547498351543772494485470678288344084507330718578318927776341305415640620446103294161111005425123312658470514970158673328723329528206442114795939718488949964968081016042617918835395371041391796785022145670384737486678983480308690084977897156373427918846717316904843286899584692780622865427457895821584977108866035000914192144779378828895851594657986256692551995731484658285447820110644100715234292155235710229748931480605939824831390384195681788525686189159174061422958208804267779614153422896889715416878824145817715240817146034129472916974434706344149339146389065041320082248948183382180532193714104424686462901057596051018540950256815748832758394016434112098900397909858487024978914990622048669133777869980785323803516429809827404320566997774580846863366018594650925459026162204760046308289323738214491109920425352939017827038675831596985606815267293281076925659103869628363357036910731714211900528766047992809862977756581659444465591991051916408441527514919101052881148148782067088953233477611870708270259821929127512089552428287524297736803638896655001605799993230693189871472198146118766533397472074485527404631689760486447003307166610308677113874437650021036375479061679787999511482023842850711650399485076682425817249950750059651586795943189913173826342779845796135514978293155379397472786069957679601698996253377184655580027294833506704133502360028245760334876765770149643211402841570818914650753418954926169784797267439156284573250594776079879209956849000403525867876747969553094345962085101316589158587954616143612512619248535461458981579584720506201217498030176484071434115770081574476103451806471463425762240531066632310397124638755554165366043361820363219178114607403541513446985935524364769009049850831645114463434315147349079386121100467224939848599338063152383800272080413721783548548754653260026573451084612352570620080100804586551357056513416567853444399876748781659820753078565180492179699617101464846417091952095485585318343707802935482267740610991893371124471105198944992631751610817658762469114116552607258197529774978566254952320999587885322897439471071815575733663391132170006984169399947659941191134444506002964919468506917087017505679298254859569190416631107157453492867179742059160013318833672535765756274366402189015084445972824192484882942105597426755470830856487890347451302048298633901047260662100146290302528323468514440332824318886386007334194017707715290432814897537378861368640228570088257884149864849626035025462234193310322178199635861654159791463611465120523379684222474277687137340411358763145105392655100911277476994095084130753269978407722495583257027393492084426306428251452438493764465618344086003539445882563159376337605840558560853325260998415602383426390015121380580808026315100770375074641224925950622153600144589230083894399085255698798146704602415236004384910599055014582825128023061925262954457350426551966789962734088336370046196457243890683958679246261102549910642563174071256810517485192602878804010330253013886017772944541338721491058305127435399117671374277498240099701157213306912847667510681154106430672949098751559412641837885365108752458035149580407740724352102520464585785203360982802976674214878769998760325424840282513754604258971161324599513024399418560151802574957008163439538174071199507941759660768808971158526761252542762480190499521277919613868915413708842989506617817861262211295318192768476764609314585557965166405555053552232580740202400321477088152848114992917447011987130017372855346624234035787927738182258934163969699638839575473250688429421621357309456914623001463188586066424761495227908059446831241107678248462213226749194701153242960843840691061614561982620627787150011488674752554683987751674677616358356914404963811614481708628455345980670675824808039860447456564328215308764157660109127766969795167142715459379949089859348881552103194272030627305466385592009979624305283023484817020944237000618562277721849196906878572681550829817011152331601709011715164119980036610238051620871690679770985478771634450743527019640863397305185156919295612241747077459759874991442895824899868641219413550512281484571423148852072959545333878362628933904667387147043896287522958934475006449930088148287347548979746567543303367595887989325696536186845337629472706521933836584051818969275447970213928338915361853310988546618601580363491338738755636972069274557403148002303960863038409067148343181614873696914430063315546920160333986451937105078767788292920457532068991287282687993385797845329936121307856068786968908693142401599441957903991322037147631472667359736717281627326595953117947717644505270347134645829208870254597591914570768966915269702581558833025887963896870539793345750392479386200130621291496772592172048733337814878270067636556997813858746955815141432502001567106741733473644196967960507041440080789588311201726348818767408043761247077173377091680389498079029148315712485118216136247314157966977716205879290091487793266328241578169776906895683683568023961765038947683956716565320007914966403148430653548579752050846096978149138577634554702470303174975262409419782874530045010407045968539317746086051111255107303314299371943233888736147952334709479337950176967819463010610412482729467649773315187246660184638132593382376603236550823342412079437502995383285209616250717691925686373141097469096312641466073275076545325252258497623669814335428444943437395765466712397453221816226088169038984089504702806894748871310154104677639711267370446076002775675505532857246750680291004742185156781619229338995589432030245386168840544411596747037332508426610675478939145345723899893764447486314085060982870970918975490972923634027654738151854599269351186028190981479654976840120343764237461036543097053215555590248141273401701746474976520952873193317205784718468520980089685649073670209224391912508211480311543631898786890544568948213789384902042461370540426035219302562627713188837369830813553786926683534126991855896212525579356082388310063484794883898010339801127488773388051650313393336947458229995545488625648904836680435620471979564994185336195952969888459496326586846149604340271106830306110629400773820806036301243342116394526860768890489878944845648188317215986512276667209362790267079320085769647264294930253184672405194323052001284318358021874503058055260064930693427788063664420405459908214398696985481242969278254646401988072476752895713187942961810738306886628709431552628333196946196910839355138288983235257644259894618795689713728703972393828525959838962531744300271354833470973796143527930367988866650512570402162761022105633364114596586697464769474155619972720187004055380255688137587240326250699701128685965263099615532848723102601257768062818596704179213368066148177410903338802298799933748009282119194737325954021212165243655095368936490513102046530475286491027357044625600556534203178119441637849288853206111675193420790976344546792165129392528544344129914683414858722614411307066283369125905546097403424596913772078943592071707588581907122363694093343518320300423644650376080427469756000384401668075863182485195564998071103478453656397966302726764854388265660921194026300521427990522648908119348742663210784800606370570612518665770646286991460343097555353530367022632781566555785146658347069711326388378879369798529160014215952547833587672172839973651165237766713815835689845511323236586661413870237590247053685807286443897885386010403175755209957148633062561605112205176482586451752553167644908246374146879930821888727270470430815126875911935006350518608352070292432522620910837832341808706276870773011862066273239138863003421160558856872674397957027283751585779252134460978823129416691605371764459615866429918524167900202690565293402006350055426929661756165777651206090957118594780113125119472027550293597194312228007917569594324118245988274904240654738711970901524966597123128760084820658119014766264056491723603372406038867491299565948308383742832836934054478558306332892076837172751426457166796669293551980927732511664010038014765291100206295160589893526317001895753720051481805688974693924717301410176823398469684296128384794432189157941512602606274390034270321207070288406798072538930954599912386823468271236750525770166163394085159525598207473448650891365001892894924292999616400234349717134121364021561754944611838401620308542736577225376294600060902715063219415334809264437461569296159312709956943244158308971531210448571311099494529958179809196547835294405615464953447206101714818397203909566898901695370919735343228188030849351338903393986950806591305590190914815223285879021639155239035085413470254210942217970145473514354746685161687414891944904104467423008160575986951233805538070099689492500588737747312073656333543925959290467765874701308389101058301173658879667654296103201064465403719184973347667886554436268348377007074277605970980966139677046154074314143046955465827803760368369570465450161440088340795809372754921304456856691783662058967297135143844886598523750455045801848616146817295279887421278403036273797479895733597431623039122761919834839273363436083108955558048355348062640307570861000186463519762142809245059964277430767883294079946158682724355236246990651373656315517725174603222219221449024971507113129627177499687737393044121310091600247735582869340596378296808856912053466483842618243711489073228040825400790618477998519271380530508406017454113752837387536931867645635921555545609323613106836232814221923475748097918377383215466497713463219794625027979279005446841921989489153331161959065994191505732924506491160150715574690385727278844365761022903010763498095682314727881943057471505808684450233736624613863769786024134165573839602629626377243473153766599274835932738027828764615322823498798718875396074847739525498701556744247506946917086744756054685798071341254548334456092460362443572546861920087269883276362731276787563319881696570295709251449156722056193059157665332519735578298608535185026574807570038234422027905085926372356044420236578332736644332112755651913943549446839474676181496380732720261465171680194674886720644488687468540802082710138326147519983384505013927835628320136314892806094642066066360543153343824502506158796774046906939386629137007616524596834166343722070107294933704005895928234280598984464119778529252687567809907041172659222928470937400894413211538163963802938692404365094342048419953697315233817654709719911278062314855151008644500361160368279918252005204044688958257557112198014741117959317576821924176609551031859318051176156690951192152595615992496095202621569352666770572983272615585288379525521074056439244025166748195926746917576568938956923197961551270888145461272607583786156779855723315302881776493536545014459680012768884121249515083072827923996919602677748914966378315592684163328973626614397900406192614048543582328523326397393679574916406507604473265385003905720977643913617236619106121878116519953979165630377312331279914644783971803238001375628584049270634798664819573514023682239784673325230967834535314302126753156643905937405620509831010503516632666412392900829014438085804282855316803627482926654318090039751456537976238737577602848492611572520222967444991563103912306210420950934646349717522301165096511656777423616455235166766399109355037952132656108975617886515327625773618721270564279662928160395648028298814180956439487428483122178574494725060435266924838869444881845184662504974679736507893895565181947919306922777812458657147028385253544202826493622610357344821385066634523205279385904209359785271187576420764288728404834823236771746261086551942438292315425847904015040478721235798400557278570960933576677529894512628731096277487129325625864424740801774447295718623477071508141744551495267725996373404510845050210164363836723527291623290375115657251561028183202602586312073661360999857066287941142939492517048933189053531830605375435186780393038993491317752381864141950903412168492958912247054484174601319259550799401005489140062904137735379525350091495270888488639033931524151502449342765452280879878848040675011297583964576388900964252218124791660779324343654785911419979329265542074383581298024690825982603901249283816346689943285557430494662594175053025176167461328989323658869789130946312445872001859466055916990843400170292018161209094972451549230210451260172502369830953595736617642373727376829607693967313705824655570485983735233573460611865112820004860195826730374607518327974336420285910446256633410879452235800159903688617921844302439079206692535410710957964633091962595346672927484651532164960038085254654807579921512377879570031518457208657032785799911093539155872661031204627446077100270419242050622648319706112238203808649245252508778147185364000168454773040360050020571191028787934569855085032298372961792916916327637746925223846073842043057198381034124410295675739287281991369866194704118111124924849369069832547695595459652802552701930480330935776542437347735975309414120300650305155465340274311977732125034251424773269051391037822923153786321996599411034401586575627439923591801955255928391740306183263005243215864973596621350587805349011944483705998394250299745148771795059430494583502566653882026784606314326020400090204968115113002440427762374540841912197742689993355737095827191476515221990108157416072237883926811477196921328007743252416073690284222373152855369257943758982074124913780223241204001080942637123720530385529944391540788062518735937854661426633668187916462271581908421603211996825337233159014172677131043069246695268766027114564041131925617062381350433879390674386691827479962911568767737500065515416860848385220640467075949151921257526171960342421127281439297281987446151475435438549117059485226193758778386990914330681266218518802376865270271823180201356138099376610012357701102829821344580875233394494199585491031513329787965908234892677329960154419396155871172697277570149550612638433928565481294427100018070117521347019221048905321944579187140161483317629572849047465482207580694142592745210631905197708985463414297817163907581599151360697620450266797910250228951462225751162472195954822819655760089187191443490281720414708558544890453165361462861994209665812332832981166778865433597478061694979567376555116697016787531233686410196332314991149886735157009327319094317855656690623614913158196905881792758063481410779701724730155895505597039928312991890305950289444773260276014445208518617183210146548765486561262265947064858524311503409999918435210335335057734257598802450095169564873136680970911517696285000356443654079794587700186420188606883163580600938839565375368183091004657043796247620001223057444818897815383622225893245312048274988909930468312389053407610910103487855174239367941398799244452556330857205070785103569248752748911622342832997752850144106232747974612293867518323125027384837576494323641910023381862159712416144761579393566300805903038075481852281418231835441554479760389512613286633447218368852166668281610624650691997067389658145437242095350030965539152243420862176101390860387067433701958934502063307913541839171777895185298646762319741157486575993139780588208625343999887546516511683433529854259380926430377763269572563259721970017352603774917144838643403201968948375059770085525864588725025759726311779467092229435239681549380642661056658201500005031927584642713436816375763562823018845928292103434247478146318687801163869828469694122929330267178506765271847194041395450390854241235104659847419409642057052949475046158502491723542452675761681319155997509147152995981089756647699459819081891915840573971016461245122124238200064612579904023943292236365330648018311228297472304648637575699369514720311504152153498903983371325808450685501901591995344893965891233908248074150197363108747349458759253160345363779376046514907485203315648457614397551029464637703674420949155644662488566782611109737749110570066506043710124214803392841320338991681158392722563152310449476849784519495114245170523398924569953055614149022884304084812769564594193957477171044615614877134475779808041673021966262210680593600830607685102872081299544669637182007855337685375122306056835098921493059498009984661198780433145379721706435494250965240513828865273973685849554106953725139088695224100121872331325139605581405200029552332075879361789175400133753434837817417409015896112405643710069709079064266569634198952510294545114064685332946064811581062164690982493139054300352077881795749586134443763399696961427037795666586914282213005411879827048700890453853433946232715521636322361453543641004905564505769281939881349259915591921526822665810079504750175173846479916092579475828037146771760726412800883175013860488388022403795517505401238751208820407817004550315846707431130780984078832855347759145548046794522550639607528373513756478706652874886983092572357021183709920712357160648083977189173042504661413640459720063617275094777492997343763244534070156340137427914993369175382137898022312630217136967094831416410103912768382090358189394195469889157530362493240757505697610898228801214662899025022843295540822907705943803412844314601226829574388427033203185018330605730963202757336627668586330601945349118517774075850435747545501597425074035570736684183585388983217669620886445538817108901194448166533121364068939316303428566454876970426153803991896705940969888626581133181407962701513678809349519263292745979079145329864215298825668373907636573424543225562933726110102269327872458244068893469367289487815871881226668152306707272992261973019607443876545987575215057031747701501177523223037509905539050386297165838672530786747418235799619591096516759829086716100549668036768258248710960824835446793441794879025579809052041604620308968495187978419566961161542566340735697668650133763145254596202493624136502818591084164697200892748814837540253605444339665813239096722744806627143970145317437423779671625403442614924348298580584271189895786366434358819207444340744961555009079552002143104715516033544015592976722836545119357325464421007108507870090377861146311452338930929371436473460355339023979664674066799531993865614131561369361447559883328497205059765691874458364697041951862325622464594700160972473321042665873453894283359925488352854436530515167206179492253158730209189202276261610557715590415525938129807022564930266185186991163758719156849449696500462181818479951506305673783644833344889596066084629991697919450534185440061723531014240176134784192330546957899262319500586999485918589008980555745609487413931768078775589878012417500481965898284418428066348030403621449696797628858775420944144506436589183041820059389225549267033054438690435918548473044941804754976487503198445893177303699709643486268227025211888458474076636430959315691664683374855765013947194446003588410534600764380680893827867732470324052994747396693530974441030510878368766393285047298613671549841367679113383128515793082462048666267590653466539520283415077923044884102434852802361131940541300134544494254733463161587140690802851434031472500097264684340694217625862072987974823052854784989492905100103330875011521955956889300589614894072644181594071891693134803994652909842875726511104123573847655184044890301917462874745835068143287809891769097982278936697005253191992296172048584063947324232558594171928182856078584896926041580251579330904680349457541173470538015803902069776411090572550975803236605102865842944888288529780715996555993228422189066565452725590427406659885344379136940723166331253538800138437421681707283335319428432321598180018175944659253978623930588331568682419865099045969340973690193307658330709856671855757233811454077718022556400549113791415152993870472505186291692164307508646598634279899500683111705529050454708907017021887623141511162671493583964095410011748281086185225395439497313615335641964559178460940073454589772504700614804332850064743877961975768882852994669829022872708302149364581826057115049813559770963399141050001010375006352793897564683266238056732386016921837404951767119291013116109654225547247776528965523130152713640979019220720676162064115452500301796324726614928972572775324907809042901026357641239152820325836887494075816551130407150522391441654302486674326033061537275079351267504849393875889286616912437542794344050665530094147411226785191918863859248191937903505094940536218714178413469493320148262565412483075988211676370459483072233390750221757115320228041129969770073252100039962442061005219533565262243414011092573790121500516838992378320000198487910011612502691863251306715415629814397731822491790523361275441852774651148709697979472804594496184348956005341881415339483259559199041436725481549451067050203366882025045736015195148491370425156246905151998842520469150744016751851777102953560407341232920562566570839660312133748881161801289303817148897911548661160576600864254838072360913777269849648041403247547775487350051152941555985100470223584643963991434540144631260859508922195854641448255862501802089345366584723855450660537298158313589564406991184135536496243851527722944954346914053919824226608112503300551438776193414380002207791544321400461431842476515444853089157993223782761528948236385344283171798918319070858696179535044845593340117276502524775324506275263094845288868566421568764717610026137987716999559397338082041429213320865833314264091606018339276091635863091231519811836004298365252359570846587127494332416506238284846353038494686026005181436642653491937618365611292389297225565253259519437089869135822529552968860519577108064457651150948561710735289151936825507253338996208516784540085964812651248765037831262442163947179630348636748449528465760854705577482918893683109904194213302388237518299338738327312970354409988524615102476672151992550104638760904627168600539978191729747457718567214639110905068643172412974920031577410947293495751209980845781045213347605647965697536832768367768169029444412579473055098930549237619404570831482646475672320112196507610396470859638230030063690081027875769128401947822792994295691819427252505818307007361078804766968864539585283355406730670957420902923730071992605144237639748350310829594832304758610300675448273326424399395536908340293439115174059668096389213043792379671662970720076800239508510646903755406553188326209972823175491716217084698082686020512306604743043112214302698254891028728903098896496911923719722367709740144492064937892457125089669398928920709841178590928918642892546823046890047316763119765931628703142466291261803887979858175405094887333195144860505849681715744594037137588295111755561040982750621513645386783230315427368975985293110120913536956637169561828145641199033897220274631322687056644152059607968237243600665360019819266523803923868690373755291901023389526939486725066733728343098934106884118737450355922811484485407330444718035196904929352472782034416063534349692828064822955209439819990050055179489035393676045447213523155694420455599249942343815515762539572730186983732996280698620675078922440676330312772127104940268719336239011268836698658655453472036585685811148235592815272789709450089106973736173448843680084282546778943405933091609782225088773502867151025394581745451990952475708404025525855094295647785773966946669639768139841047892223652890482643039704415774077324861369625929453570317733261652132071938723942210326269610140645647071113410117900303738645439645876146682944608570643915733849010571052434080563208511472257891383567517146266457176134842990263224156153150580250368050176598080078477403600917494659459950786745251989215387697616859391217226085724008246999666429694182874517171756853829922748394663166330306939343741016141497559368197612561885732467246643638194902269540560804590424171314032561756397377387142595474493799489802124821926120690751391323169792063073009864588684656779391558921990019891339995704938096085257380121384313572234330479951561728939687079840454297220535721771470410414277395702531338747000528228585808234166238877286755557028757091687529283976778382510234231442932470630494279962281234899897629414918540469068324437517622023279780530718477823753293350448219636769182685778306549532274588465873067113738697979196200271395722273894662281578035796682505956979634411000812820628193065996472482610860589844842531719390131411940595955166216002604057350810300115859323384464674890577532587434717273367851058653770554540546121395500962372535601215846546191908721888916719523275586560282410199293704644275767235586785711558773705869733062816019747784365855227459344438246267598462603412025949893101071166067923033626021324784045243208778698533308435515222642573683412662309964395341997472131731963608820310589751864313530900576875528129585833235123372536671268413098127041328661171558361271685920685801336880248786111102895009410859602867496683807787312958144735223379103515129303756377946954903055950773845319214320121740399395670856295357443322834469885359009385431861183106948623293293990346781989621136383437472150174026645185881513209118516648724296465805243438720205700785244869762184401299958603601762554143243002220436999520523526165862077069606248048376281065900124025524768218677923179542123529182265021270680520736943439696091951277565478198072990956644185248054875967099994438826620367745905910795877469196691646335113567585179105301030810199508955664023544340855397152810311294343995659584661473927121538872483549408515820460690363869604257106393823639153740465919177898148719941363041391422154053056852816191621996106131779696925355278067355157692927430748412125715946623762370366613290150081531160248079367939878147776185940380458767097668429486037855325009918158829647896637038912145303110996500612990932587264344676356980179342070736089938523556822624552641628521639085409941751062545975553701969884194805594676040424763501180115345657976899795610661485914452051289928497947609082183566840330270949674771221883380147181298146527740769394243532033468865953600540621967390417405373387128432606273559295035486429057940944974370141840238994263412624945222773427504870210894136932941338737922600649040912139132047308606519454004219260912729377712787129216681485802597992798513856846211953596098295219408883655906296477709789703307356905823428361677710246162173627603796446865126474377642424397523945372439991977725396581372571556923954124162324721681010920254762415758743101967532868875621209799890243356692464032105044994856412694886084073683303903488641474873186963894318271637533662884649138551975919366030578998428413605178920030404767947529324510646752157940343092504461414958588181798350297451658448621024666369452336207564685639194330974005730905505037747374664020583797557212084564376198300371455370638914784167663939883363435962917486281325961366147211719559862620072362678930129540317880838048350875759186474450820841949668568946786197427142533736280341061134781058695717479901757711888585928812112952464736585611377383918314120511840411513238200687944164398376937057841042630483299523922469176084233015934910399726820159616457654881353155243565199120108587650006215435053822130993969831366005656968913627344613020133542016034396267590006155198888546436044307754503951324259578466800516748052969410949109628145545446413790433285163075163079097361439740938424012710946040879817156592945614056484890426711896597343309082176490367098029354960395915464218815811359172843913647066589011115978545026835153576940426468073245637535685945082327391560696578765440157212625235985147763082309915573726194994690828562048290218182457132531494318284188137078693157467591764244597579761032789695750127306759986472999582713575441771641320199518578295605824638554973824318518349463501356698719617132649637312071029001332203702073358047579495056068325008914190158985792705852718212586894773305364869149625589622585436416273932788659701435501005951739514290911216758387926680812059568714992310842054469393311179305215932254382801118055319200978580568366197194956625427973697007566238730632702575210663941943917847568794726122381070064305181399588741232190922453784370731452234214811995942150451176492813610698529002262892824895739185752704726384832965478522349471777247242059361865525845842920612358294637181102884305436002846206405982019895564546858340891183482341818206794161292037505138053451763601975441637402770984104205549677665405960990268711195254474188656170331397587290929276972967071442566869672929830246319038843460986705984604785439433232701872075212414850224693356187360330324203555467154083966613313192453970035276194949748294920879320857194266086458860810331817848302925293954834059939802433198211671581835682070756432883764947419760864163950834629570733700476822407286890378212905618436715076177192782511921030647955159997020249630165838253163159026201578177119783376325904665359073816529092950675568304945718467902553996694326860202648826113916962518151779942614176944629933474448886137188519014625875635390040661338691040514641646324882750094247471577889311726151969927131095479905387181239324628695742593794935583319918558534972263033108258978029529785603999281377110726095508832919718438860909195079062738089624541578787349894358685417952591080262106169932084908811292935050051216399891560062139170057151893323181878704376000182278020035960954316709885386802687522184656267876312618028586507894957228718373347665776136409751673725465697230220896481501152698963692630329343018581774744478038714347949588076496224802103761298388705890942301743438656873074815809095690302460620219844529196925666673398203289730833351748790245061868048077754288817724678440645151324395134338061028878686542308450232447947212448179483274481429867448621428017161836881326633321536949925267677294854041737983397543292912685627680685922512398876913406549964848646054157735677635463605316321835789019347293855456561396809051967666383962427408363289317920089531367572820172641164137870765761513360554668171668968738481049696286587420136121703908462663764253505566459405745819166782468522963275546417773644359938636395503608917003209571715928424552917892132354185881409404499232142949158558782577219028328426380553938272492475549730585407333988070190324910453144146623222959003281742602771199560348144507033246209259587847428459295369412701041271204891673208256508092916539589795996875947891888459425885350396187377103631224357097697616114623639929974758889198343492073221598876320030879402217395623169269335538460449758667048527067799687051919938987587686957632417222147555608935074227949580488925898442049164083937514096543406272674777241998098927207157426865417719271866301882249913923743269435869126480002935411172610861679031262978668960928516242113140209483139403802774998980392915389068028011430651049774288082209445277169918082701275695843899157491512688855662202915657822676364336153199934455885074776449112660119938708848126721957218607852874784892767767776336977459394074838909740596998971924020509809262223902521868818319774349320155445903304115468267181140960587813221589487231769221172194875992777621187893494904888913922611419950037910102227078207345730487067452430231894806479525089013127863058961791224258248032733177249631081768142583615193043437858984393411308106012001598200752738608021394420315146579811276711850523252414407228712643450301118322687274273582870376674531291150998054895290257064349423700162209307972140837342867600471642319096490106792534113357670969338795857088227970721375389679990233023044081031155238442579027602219388094987714038934589947067563417830847334229941566555098472379714828862808474111587241944624675179809893417612896221331510419432740023351060022762817955369397707598708105425620695896523992542412104015027242494989856606951749645071563265585440093195740578381901623299216005577519420187264128559164984600580217758621720443184435696415433499953211070248727223175228024454068418102455726696384411269596700872641850443194215585518448880656283924340849325024603868570220596676477214427105165913308031474619784053464494668885466952657414933222274384963755980688986409382760644760679403292271112566438613947251023208301973100434501752291960860176081034246049560014307878416155279814905476166688257339673542504308722301035810026658270622895623851156261261706519452756235427733364697199423454294266730157386612139733719675798785361053168307763398636719314230846074558424393861275764835343947019373127862692562294991934347452669541587387847393984546548530885085535747818461083466481876190713087970416675342949761751408948638431136000590321061563666563458688697671149614131088119118885647653471864492747239806526038651052262503645982370478243041101442062803819758255560252952004433454771046416493195289791282317318840724255881124116547041179374780373310409257817127858105433343837911065809774723527693964053783116870560956883724745627625801621435720307745059313435524088374804706564651015232479395167746960892746715474912249125248198857525617681719126542785327044572801504251030582147029455387550204676420326124052107807097307322214234314712106686821952040652389930217742550359852707370771991809446279563767178901936384372765434006553235493440272607841656499541973274344010231171686531147533136680550490146852216834763907295863123540956963826182081686277687713302071070714836917195271650815369131802407649082496539535480112228636655558221290469839170549108995412383217669156550715563995675944890622984835446442707688940998929924128180986324436941111856288754370010496326762665728094267316223606420819120494328807641133537058514603752534528300367930114569696065447035446792000961167596804675055978813476550437319521220591530316599474421725110115715546088314852359751458734502237223422068395188662113182314483708438053468958661755948231013915203270545706497620890432090448781467599777738454772843524232345280663766272400179502253357017006404170838021136729493324876887672409115410329396774548149181043956839693699100479129237538180465279091966469774035742197992583737179043289476465192013887855045195024227212087814265457327686873800272673007593981338742704468665006956245909377128408632524271057893742443147187892183197307168953067226019617717276790147774589723398497107447304121243959686954414841798099332866530487381625677542391626649576431812531681821520850359652825223245578494403364039735922514234335312299269309213935844902192890906969702992075179385276623363944664509110138306073394035085087093092539661419964985583728462944350384450297591849716714895852674040259292237344875425679143951822261022906829807039542230589357147233463686699741079684769430487627289736948794138154308351920598426530832749819148862310684404047452079831355801195382813250372596073096869327861052652875230979638792932460642366016886362153042060248841621000251111271670102788467102600729965182568359922358956074926735906178206908016277350370631471718939439629511810688223803010231214095168627418454881207869355659017237304590146612281718663612285747691805426381055626926834223179412861272602020392669373016550751580799910569806302546266857126060923225939372019031523636441981743662071920071011850160736915452919554957658696883512735387164968452292274417110369091095156064271156807662893444458409379107586958444193999204522135666566091690511637506690071358003602656279214607116109608699825140169024630689251479643600561762387027663144568747621601224318374607620714643932800534123873960515321054839627566658404078737691808247389254180525802334880791407230196322510626159125185059065121374431820569286115265411889851495421126950634763340854418360892020320939809237354722166042313908007506417070440865594354554798628386641840074799463150804910588241015490966043889847355104303423584559631396986362199000547173857332544017457878121118427664336029391142489060728816628552264903568798688955112829408302795460884354767538321280281221047787322753360582915025120319469843577321229123543606281675777329216354408069109574430818387398797037535821761209779392165082973606917717313981888103642575487531044532687402026044135973215681663118664119629351512950836697546043229262601970297338461774880317298690274290290862814609196939944426034472216565101253635222593657565630317579449161858951007770152715136434629850299553417233736146197546514867679376471893633746992145216717169163546770848574582423849340226669388246664548930984345524372379807053664603344993421888598831806034397743484171037228461873561003178275299524523872951806893050426427346976724567742050460124682689532072048638474911726520748522086974109544980191698412360754414280843820533336643816908920330968775036130851583339513923128745084075950150197641964045975984304294774429951517018107150649039508013693694752303396386549678865524931663608106001942011631952844311955833187636951222232265255032181395923789132713790130597242817782124653968151942228259043209132802686881037004796287052501684184072870002761460998909758915080974755133256730331736145463623216266647498858162135732462804686226525960230660037561213402925831403823655734601871167169385017534536265359392268642374332073156541108563106836777585994929300414918054906984384817861032296107552494741794176269513622564418421203273868853677883808780095497900381740673062476312797235404669822899812352990182669895644578801450435482938819745179229465354048984910429989729779248083826212635091972130301185236630076644017707114052143742649256913985385524866423344361802256251892997776284945494892725824539333999746487827333731311422781545396098502369013085003797078000362940803627726149748794256887537682136736218274252834370236658858608761495442363077893089366106427157840851359096447463582624687152916321822586693319382755609279325336957401119543531108900946293470758642653118219241752983915121269199030290428910821531874214726623952148481694783679528776868661781404072530682645112228022873146062905282478830165656477433939633841482374561986724159250906672930798555050168598717279555406302190195215425491057416142414231819722053961376086608740992336272974306413487081849782604995877652596191657145945804285105310263660858185140110807985699921473865863386907550812878816379062185543702517446702072078973922161950016099695060241728029391258676680804773437660775773130476375364917377886332573424550222919052980586404818933843777053537896242100226212560867869042515599036512274347096897503706644005116599253546782941379982861162343659122088087104208251562568174141544875099524431147740699064676279279599745697526450973469875741443555176871891211064815450885799907788598736289903616249162308589658654627674487855418612402186762891061754248411402675015812161120991798372529707581767391266236784722772035416844874459390792908337241243339805907467815986396511728850035047871194146212926913402192090431183646862228954472300484448127537281461862440089235294774967392442383523739683623949434291935539970221209206654561570275729651945876330760825117344092223200001894014628695455602851125177169258428335131465759827896174699418380037309479364516836728381489820957077978244607476315418309063909645387787512524904105628938835953037089744179922372653659991530473424183641814003071045580397258799084431343434921119982488927321098797167073784319274811067478748096707726297582615369686655160026745859765060999102387570875540568770950975077394139375121160045632985259051255936544407391130571592865344916333319050448299266408634979029606480755098097885395665437909111435288254366754439601066786531524577908374880772686290362795964233829539757651869095100433519198734345959353095796962401461273069390431481037421113693262475434889513725362915825319078636659098182483332390671850775034357108097055812774228485835040180182831147373918587850594269046755274017472546983517504935832898687236033761195791030621382391267196525361240366116507130780377997599910094550205164158944865886038902709866168718421049891419147414449492626032607664678829123178043511298571671824496719351155509477162826680736253801255855841936120585877080768423553262707406574109887677135455564739099796595716904853550122195075830989530935343547750538829485727939357016123295715604591580562538750754558485996017592410629184236360095249592679961038283340397831189815901792314858921964806767889580407304226676684867131809801977707991266762576034154209377432590742567801380155692681989509821278345520475523569397420283047119507148847159936847486929791164453405439517454997587371598710396089398291345936243335395713520501126346028289983134757239984042213573066898682462029634163668199961178075954563635880313954167798929894529687856553596809187193655449055492331473700366985111928874664556554146780381528156201832509106773083795056432472223044158224272566837698360954242708187164296888597718019275345702452366708469945930093702756961864178183878522587086063774030072952358270004813165837681546728984999932225548102968467851287170260276346660849130402257808811692312343512164984939732118757106451741344872803047740178621325213380332208578016488700381338967096931041524186120038578970688941790560195225709557436044191050051462514197121039868776832652274772918702017179494898279522910479545483561413267353100321501449421296280308367027272509206522674560852933558682645802233149470124816077222174397892669958632047701424674886263235797700697960981325000164529556508994224066574021826569252657616610136126207133957129288646198619658073262381289049836830838380725449230777859159131359798586101225806728685795316113745651027182872683616225532969631737596483764434390194741048498544890430533608689680108591300656861616320567582876661085558912892844878507752186212419400751569170591355516829277414059034673207060081536165674791607861666758755943143664877522948520982076012422358863921931836408023349178819623381449005088226375145439253910515742517801352257157883199954899826953615640781127577302041451263704459161006554018000533709245134664183037167329647388042518211569737598458922948200001780407269170685494261044466825240626681245551427208996244237379151667711117153533684637731184762324342028134576112648055351519742720198236188691684872594934172224128668201015136282145944398660773755832978453193585960182077745085143648114395731876534945085751183544223241848949662986068361608151171429586426752132998711524974814738378727929854776692130759329382015694193588794557497533553561977034684457642918297352473345866074738543186834836446122933439037056453126497577111413343877487220690966998595907620376754585732549944749642778314489037875919241743837879906569211146272742404259094850418041791093893042375113604758200019879296324729896175259476192152288415743999470834143213782009810461631673648218078365554062000771515377609828752837386762296077014852919899973044104401717692896060676951135994698107499889832747563757339551861569537412397007832253963741164507420002952137368221171636632559417848779723933689550269504613552439599610896120753322991913319627001342007915099659589715376730159917910717028940416027843269193680630702377104743059947405401425801649355986248354100376420189332628484661323650050521659456425243118510365203686637072543970851108650988679540571310316582990901706198358049402338536771828508783418133455714756926689481779972107933398280125270055672850647577524522898001550108518308797807396992588780968895799470035889913250628492793756008475519422776952173186938117229898641067548217668068771725700272132376304088925789672513320554255102795491031165772585970794365469341694384780621631250321125896227732942840579147497689656687480382197640411971580690259993845903123559720697517223857649777270844247554131547350960668622745778659464016055833090936374947256483612924904854987357665842927430391983253474273504205908318580081185496323056171309998265570706706412981833066616555959376949866223140713060169664510293624863987207001115591253851232925754558825646540108579648057596312602457014952979502476495858242850852314638446479000298645920429631305182193679030606530646160945556557756959294740004352012528487044551474494177111636328062898301005006749729866519485982548981756941487293938943026277146208805179400527317842055434579296219743428503120797971889007813797864404538968576008150718342498402334947026536197414801743998636404953330394743197043287295249681723904280616523271828146855483549979590604870058979485218912373791452983904898029630351025547410554152640074260656216480438489472921709270578125257646591137757798859377491279795880492585812665532056381277250813718310722365441434228209727341946764099716965303645857458101226633085105442959335593146943003603022310870365970218590514165730823473853525654426261234074383338982862264544967498898937753029032897859887630163784244283469363625502240067225064839732810828568655667696984610074797782223121244138308557248171170800961326541825405030173639477488386535288040678610627375254876678198876170184743102501115860441572095857166688886477819777117877677344797834935604771814459247542022907882017344237781133461291251226340811014764903635587610918360847630978312639842376830896642558965977767375247520520177816732332103780331371189390061313095097248022173506177840007074242458539435532580716420197694929081298622466882310070397479751423761633874232653542526129664803664211918402043547994994880691926818016080500200651814933070534475598917333520835079077845929295024474515523293817791466151403243549996828173836364915064249746230686423206912028638470459583603583085404546894464921594241183869637076666816285962667821988857804410617225658024782796644429618246582170813222645043542974726212581471754284286229877121255857430878892767337560677551622264880284090617087340335224861880790440762949385662624719293712496791371365198232200345110488964986163472197012082932319319038706714272849864411799783955114539673161609343449285344767699576150730692477220381499368161591635435269437554740035241187456823428261769212657676272938956781709602339066001642580197893731922995496975618061147564012738544974314652240426655126205222535281111069795957827742962185229989194511318257891344712814398055229820571518003420204836707227899967541855135962983455887337280952161489964492798391574737579901876434347354752376762840006523252142935594096514729426149340906554558844702174478257609118386976133687942481045121315964357746696241055566124637551898262312217720809367314145165066551543615379158871970498478753188200179546021809587784335486886576918362971167603029262328297051030612891581066279883853259748418348719551877723481541642318607360950562643292210961438484649199515858461658366383752524639563843609471662408176687874412845354428557680038485366288132293844833064923952519541880234654907199961717104339750236012370488942675045037225344212669010507051889076693925377744135298905964646136672271185069447812442994047860608107348220249063573529516510388570389755718419889933606888101445525005832405860954966800296549627672300564240523211271840765068440037871583099393330362742343951615150479761824036255602319673537556408814827043584938520968237900514922568289167593162660770084631653925519958763558669250368413538338368368957627378681798981711876850282538845047658372045987818767784453015548839411789404727617584245170876641753148245414207105158835284648026771023610885962403768263652350263203464511926733376537938458483933248363276997506594753651852242023364130689752722195810355053522130186938786046579529085215707846517876051907217939828939370970708871123879304999229419588728124479362928055808976366588045849151644598910180400816330562099123636408241866983816905091159440255135132445689204383156954664209013925094390509462894541357936982576227815433586906419790892527809915932776534225201288956350796487268976561130555730966868389057787583723533337208481589298434735434196218880539453816930018022874035191340719854226612539087151950368744330086552512622526767503054393626215088066002876933752178122039395338927110032118100143261079217085388243614393788715056670787428354591053822111939311445087261654323419140268446096130629049804006574604376125710273316057267293918432234977740430112211135995933114492669312581235878523075372647476627678740690713921616995753281326492006508456205208847482051155880119191978537133957758008906198663888363522939653773608190368917101458731316441382892878775796731545639285020256278580028563712917014478643741403007084361327179057123884945018191001292084424440105593746905724210632639779892148054228613128797082653428794313946181046043922918832381563914352446362748287931265922872250068569713652927716788337596417604657188659770561611876248160978757495517827571919646671359266897046240354544003490942137541560211424463525133533531456317747746760696348515465531887612233019490956586470895562175320983517416242550015047375045265493021022574539398571281375652487489750698934921790746843577353814686287420308680051376622266858464013631567721150217406727978244797237153349285451386749182351508948091509762808602378247812688213428149864811786244352585281919482761022026088065282870252152390998143813425210079846976620300832199282713489195706070781070577525645384020697737153441892955624674920136968943567097813957174743736248429915769853418398133980151428764007827263269391095169867383763187697688490922622684666031600473352492524770772815186827259177829746644453296395351097605227589110902765291789089061256441659719933899935177513833100377561091575610873878859633945576651942469036714691908513717732213145480746348363499653991587137109723463261553290723627556672190854040406886910672424911104958472710781183913049687108497105694788493158932311484679538318457207742601466229244938685256891324152943996777679954926395618636961256277910475287924374127804277968095661112529540256453327829348814954912690747430268381838100237202656489685478828956336199844808242373669083028011130659520720749830854952172715164965385505438220792081042346960068967268330577830643416724202161951502229675722296913671306236555486659029664074747980009515868731731779707529276997575256136179233622561988435143675637947591387248991549897810877354698793931998832301033387958942726655296545763087281027377190991868470300289211312832973478358246786966183478021834235284696966689491564984207945333454823201403425796039197788436306669359705925804975501373496297049079601327818396614678210162363212088370590282695850309857579855855972696939067415663943561125355629196876969724046384717657972515910369768580100115661665544576443644567295615103088881731070425312953003579642385824565008524706083191969609505817136512550558448105232486317280195202981502374981042056951580089760237960635007008140392114429281165711913052710790418860960441128499059471186049759120041988031192479942460469414781466836828126028319326156872719292300291368633231482859181717820047698871516198892035056257377559120678347757256816680932240005992579549577378649752178465680598642662145780671434267316644741058060197824991197030413345935422071216192464068846496137898093287995909224719702968590727916144377981191908742453197823165943154993658184715868226527598728303320376339133052035368399800301020443394608564555226128922139322762208062800931470843249794897843728104748999810563203268783519735263275567869760774043104890702410035222699696925168042740444730130407731511777155287219772964503681590599929341413480623518678515036532208019183884041515177667102223759618591618732590286120923549277349907553849325956444344428357551274020400196417442699501853879371016051435680891101071579215830085603147874717941039841292597560304548397689520349822157000638617347796459953645666771933331986732967983795386974236025526721158001583551592095717417396467632491633130616773529871495514261968253715404822436296573616734099622121140007901131260153387824329833854822375314555721138823258533341568696688628258902388811794695592276493009233225003790600679553730538934932761354678776995106803753755508666862089614968043467658832566113718884254266309327759207895313781958051192662534160666220199371358486622184068319811748711746848914557858630570609898719082693092955315830251666640993712014106750279253289796303453269114972873854990428762311721403825086548385478523420361314134430003271654609615858512607492768605763652854501593917798376397943225999033676838691496131367325510795328669162589811107785797349218462451002346237881915326941761004946767247726177665248604005605475691261219424136572258659566268913796499182194192947199001033052617848689162180371718924054942796321525285703747756253260103490478911487909263195792484486959983996865859189378206623834317045483992569435514514001970058443122220335866118988985120728439406940517457012107098182973301396494782627079784608355617922718178540638800668474159266555184509090110186043715520820368535368845219244961113645440762317400292452982517372403561664035063981873299617211807215031765210949560751202151858102954929240507604652990095693188016259106236928254571744360841416199556602132273112415410580935336558274413106052746489530537769100270427357411979935391029692985900438009652858976229229482630975902281196347949879152838299287635480141245158196299256727330604268845894250200659467407348093477692429871641045899683574836949612298362155381070784961749646908617149251133637064767416608113657884535947944251379940191162647884182261438106304550001052117947955217301163651515391911106790219206950265835757830426988593715303511678909279242933792050475393746576725404057998857175209631837514099309360327848362256757276684654359550650222341288559811058696233102749840862743062230431841751232357544428288657035464611625400315879668604206726846990507553200924276241052395376618663276136811560594449117888607016378409895774762094477239559698637102550278627052858690667775931471717757338977422870186069991194827396492385807655118561390471367659161345777693132563208808849225812598758450816388704929816191282341188824958591330912725230347201367057349604865189974791926549801057854020968887277246252746229470328220528777408261725421937245948081025351536301270217166382379985992925811410545900340254618582913607001889044857518055543098157789804297433529209305127895083975308719914570187645680060535587710918887333718581004241720770242653010420624494905238138924660552216804365758584421462916441452309747651854810903616899645271085082417817051429696383645691372650927636185032500046280541658617301329555191966220819021600686202578414602575795667375420898836109073965320226528011464267347140489895856247122830231768968436022477863051774449391064946251078100085393437525215247251066154524899044363032241446562357306953685229469470813337408163768415975827994335439012222047018141580504287573798678051791283279309077799720652762859211524657430248310107966611142424283957728320065833943976103765058247799577926779934648153208467641571070935654552368797739836910401440662647166274028357825712828782078439165419478646224769111908113060250866632158716091104432181108083847925197087574024203341869564974212142665051151657853124976926822647912862792584884957987367804062383439238450902029454371204186966309966660849987956726237831924399194129288603310846818719671768113831626493381720329970750158760365529201186185766300887475998438829599247835448766746391337462665199121410636194773247041878984809944472300297303588814456485352555566249424207092402086553560490539704790532330226998823399689743061265118734670971273101058699810826132198458040777207454407309854392278291030170970321446952794799666654550776804653055516195436659289313294055311839100031710767127189929951613540173823501170163787761811856087422794767867303620445428766161642493020962059173839655529941697784819591259702571672064580159800010050406738326532201302766124390342045752569436185995797796069404269867978426985250810920700337837884252805226788334648138778297856086099677412444188114403423361382631278369488065760975526141667612816827282001936737019494040145296739953713808505118700320889195465325599495989300717207895946061686623782558860158698621248875440240912836044206652407676039010646981669890917379740409270220470084768694598945931449721497026602135859709774313787970636129150835842498507079926742865786680136849786471282007779250922614561694929335067284635803173022575922763465563233574526884243895208929941264078030970004142397643663352575292750865673317413608150155699703310549108872861214932852611230307744596377655840810348995100826497111373012333788860791520148567928513237400397904790270624210104529905953974051667517815745524146289393060847688735010924160054954153231781909060598835244077364046525436375458704444056901454934498730419011617046483621316730940872712939210321383847455946217995698833862093656117129275823914367538845158302455254496617640588839687468883531547802217043764884421644936064653989851002345883698553119756034243934435096176501784450781939039015023982930631213087896170482202948248692474247078954614084835688315154703389187142244719397132436081925962976794930495054912785723744888018139743092492186098016928903285018370149505784048985834676486033698297898055764099433510550009839842917697539623233323788424414896257921492276491932897430787266373502066507987732348856747379572592593288118067826434966722058914747064221568428106532904710925854762735103539717343468651948094243038121911085709410856121419335778592222284211787443558290940349921969659359573314767146641097006680234372041335235156443994155778241580831755487021097598461952262583578342625346548565232435557977597660256660394416779157577396237336070566564936675253793935803141173585797394812711415606769670795219510002119284728267536862288715074532159240003935777080890516453500961264715481874683260359132590596753947460395708731582094554928604923273892417389750678730578223987483095265764214558556729229237223422882268555122962627429741666645858495993054029315532192387762120017696406637842911313172283117063411758198116646630454299359382834109832597995830283168834084049523143957453550464621919276513677976320688437150459245869716560799905541218091997216800234145695627423431654749816837508022275783334001104809917337948710609430558214066479939587765519168705914529796098970346695700962107571964194505404798461937094895954890849256873133885328452699773575870668368221977024930100500016390241858102936269052284163888958131782801582094973565219064465934187468216091485219683207276654089046408096789331251545182785302248580987515368519327153813281313115251893562759137722950513869310288632363210005821937761100729459093421579737739396835848764185379876907582966356192225495217606914352931383290844770574213605845118503569081640915659574544274610352506250779835591090285034104382748531718144616361558706931799157979794148492263861087866966271687753540543211430709740231971277433568015089670641543513579808590064136456592661957032403355400448003047581640695969832973365890458190017685411530884945460945215615075105863221116426137164239737945474221236238760241003128716154360026181676144126143749121638896239550737813933198014125733467272677015487209418289909117078478532253085822151487573402223432756669285577617855248232651250677253480164145702373944927556876792338378746796375309294380560640111085475294598444443345685170917748017316485546540227148122769205770184613025912640455477505862579211613747329704871163979638432947053608448479062217275493557292478266275882229888043036773025796427946468741528174207861516682689111107149971032210687674582587295124928299447232077127323813431603723462562029967744517649931000274355331740158044396595201535784631818385265502592183927956759186025651587911921222522769505624853121058278710812663545339197270814806565544392649098748807545024457788077390462612348924079279471969574184606322080547926581973851023449715089465859519607355902849857398246502860846187841974775434050358881154459359080008272544292500976938307640720063538961512586889467196757028615837862293898761190166080963937250407890089078174120913258335851890795728490451568502934650057161175070832909374678334945703108325936069493243817172723733257282480307432310812617137065027233118183072010757803483928799457261875805226856532374807092333454331528000160638682228925203839307700095510485786995505360181527579508294265904514773171234320732077705468980590898562811156575594232863221007679943639338191975403526374305058353478341177974231852445771489225617312492926737525302031064322242318566659154986261688110120616799790982666966298984246806806132548627209889576043319752331953708112254703742815896232574966422014007835231261947687869800845563627452854692293182837416898887195796210245771020938912862652998686283926271389868836292110148418351034750329317289664728052060696098804100368517242455162602042184864858325763447269998089224535117266170749472297986124790310825693372512769816990451170652565828859708329808540670802746400042752292914482984434942133586273705698648366454374553397110535321269440715137501460936931684231974507863548658714578371304538537506117506395049488199449805652639160826015639041573575577014334070561228913023390769391503160769879434742564870846254260465589063589880846018988207555410690664673689338612751684005509767065928171322006946351539564017230635757637494720868334485514603241369425135172798406098685518560653461042173810780558103031937342144287490643982815614120523062884616141567169411029043762540342846531635837568692982442985499775310882630629398595893042235385909787792714518828747142191867878319289299992103692578387479482426923416769186925599344203469726242494406951469625581455857047008945898556206136581504368972696173270594410444109367942906434973887923905438409350738444556103467977551298980476673098374548685965611412785340549922680036921163436291510668922529455572653927152556479084309818292727090529209423013604034399964875759912709729529119231334674612260494608284862901805950688853655747055178636933994968757230962789452328629564256594560135053024819124130462935679013489320990473139755548779317092055868842620391595833723460275438953076342400220845416196937724444550194421676409767970085880993732417488459942802271823909792995239543845576681154944899792122023949103073775854441024947922999085890967197215563595780039281379237805500241340049445575227004841622195328297135407228187425102420794794223342658301235766313109346752366089240100550174683433851283997738770797945374507220455854463168656524380905932779294433355982803510489869661196273489102081034203632414673351471028922702767794271332868017871091041933168206306745701230763040358270939965738082003526190341097506060485185352697066106945187534320510951522442999993001158755650754222244974513979047998725289000511719572772113553981057326851511862171073036645067796366731267369969908863034362581147889875258810336193193841694607410540568435543490528636437809328356358626790950841879422182042751141675076424122776939474337042285166714761156940506839923342575806639929246902645841243736355223932550315890280852253944542381139716714955668426544878743270270277480925858656207992275565427346344609800741628409698961742227283751209528415657527479925576162319314465202203448597302399657991903927909962633799167768106299464733257228834825573381277159410069533154009242201748147687659341044656636459633339366478028128819132925534312148140219400379743793041461483321035139613847669194166283230869058896404024818076041071164600092505485734253786936838574698959620301678218396275313785231363687169230526129478832816606159510433120202160201992733469834771844902325658352896899027872681938660018469905814861017462673685536850956429661632793613868081657040364697503776400359990427480654301540576752005037964380347083851404942742782011092390311273185233338251199441696146264681817908800460775087312458169167599710333065188178862052283579383281231337847548466395935859773710933867583845219218076292408410314364433723764341815079607926633381963084875939208123262502318267289375632119240228013879874735842246602695991790846172879963537318079388825897395673608412701120173080478279565564430888264201823244612079900809721527733949763872532375372619146935289911183890691209010368806770770833804448946441091706478962827975349883843145120911894443884430956064947131468039043397558194565757019367095340669953035439253471072945256942157552725577402676951373129256326722329097275352505389644904767674501655019492489761801700224415923989927562942966732168478485468579682419582905511069024819630026823168343633958251876607283075526249183558125942415629672716910277663542163920377338304977529813188274199992757136736123052301374665903562501564595837269583104496962244377662752487226215631639546234349760038829539579045492973564686383376808841312387036060699160030047743859022356201506041776917390692535354424240560918607852666194985827728850181215908002028646327020681242640872706192972296666289882396535045688758237037026068558629953136007224292132900866065283822906225289133265027367213783923549450468541024885395369793037993738973819215174674558266437022996606199994803583707006957664272304289508409093713396868198616485211755401480627105116821340852767222462250525219879198270243030923228689151816023891500807777657294014720310624495715361603679158749999066476530695442517768081980173021750926978856441739588632937897072146528984535889580415266695463994954260936160645109485588622471188908251837207562342703392254334892551600404441977006421561114643168119009025369527089254327886108721320789001382295762282697349112205559093024957066249408285157068468374129764489654144645400631978680494025374401596356935291351485069339782746185327090667819348683306841065464272069494807605103509706400900838289797545425790145439899332989132014210330892639931309646218865857694733071875739048066017497961555919123653593565513693249331077186620567299226212722963350568489936338436957181570778696904101041592920801690086174595715704923997197002590586569655241611226757143320087099778123462763844786476502663864735358206082258910270310943267881416685753487955125233400878794153590880676921219522271567655787432718925567986562104805563666952017489961173735307381134442089301085934860886819171760636020292217656764418481749975548449422672476208693891888983756048518831675627783893242755727889391724752938589862805202659422960269434369416551674729918498147321180242467769866753104111008663294903463369714591272008696345013620288504944278072069175706170343837290272998339806717800819993200648762866310939830643270341472243208548765761267202155824747995595406139692315183537234333180171357415206316149888279772143987598179191858073245465030140202350816528423535609765239780011482778497106498123181583414244061657538825159420123445741255535984539771858537030339176281890831972228128216968342877169417216029524186885716251113731741498398198770547995087282462239040990471403034845091744661497773497574990761114466766124314696533115714162527273907667866609846030995651855085715118235567999574903014182439536768749254645445984910528577234214732671158882365516798208026439339939113752467003334804290236234126147168272235355797555230428963927303372263939555984620044452019846766859989614931930917171541616998999810479831261342615894179710532347185830910188484428732494775537887321420546515810816056859024173557218837049489087266924964165380761617495297730397430172880775872294379663688993302096352798042865731168396611006854772807234150268276887595675545847566216269066180445428941550116838566148807677189303277153289784920402641800543137549031731153894584049763564211092127190787129775520539726421172815764620607777120719724660915440913089939612200115569627695946806513873186915459119581372807558272925491626109242419974469714442863264543446002395762082776069229804844591736081682664619430845235074056178927571449570995940589100989638744625885637762206891034271587682637846685035028485463754169562573047755738601313431411518158586677183530609821371441697092400747620789442672478164024752404912173284824613117229987786628731536092206273489453502580679558990079336598799940214868793294889433108716409324608588309195077171583000175525634843691789940697678457603163876136192810646076779113972054993340048915487170012535177481466491116999110808305188162457586220911936137327514055412505982893166739487592873787962339079897392448485955180711087915966289079711037667730015998809392964827837882970751225819112963943401921378504495181807240454818938904273884636352349310538681234350070650258789768451986814853709289104382081533984132074231819973151209680509707097917822102432644373728741019632035184228517153382540545907510198428337046149327093378378293433987014991562431987489826162402594082605861377014760882906902196580210296736086663121393346413351619039674110889330806879168017713079354932519117860444225646889347827272080755802085437240814949014746417793683139095349185828444002193747608247982281019985052414458096557727069118115649036080066887149455984163637733696053912982174852172261806565618277859179692098604706098714520557188660544741729123437547525065906132593840292933985715950130757286249751098817772390193900849398404103617796826211663431977871340191250461944437866986576830204214927078741100356762002931045061362555043156013498078785792369627585110721790291506153261802102613712041484470083543005040921892055877642815563038023389431492018537460049767911922774041579881177979066099834644674385447565000941752109745340154315205134968695384807969517869300880221281666080070945649475644618863337438993039534286405927580523803004720331328749593289092820557385715388313027133783172099625744088395022935036894883645024437887729498129279249892236301321211948874793833943245203177295166907084883311466010885173780963955025619843613468090357345441525940894422916306399872787628272985767154860422597305251194808408848666858552572560820461649446092358370091030441077259611335180145754202720722101818780028398969807244695127801361277124513061206052930453358526945907198175522264890714697223853117422487933759807145243166416954500897281471205963472645605748803875244495235964896211197978487829564000152482221762758574444346490403915407075744628037194287941791836518604582018452609772209379582096469905674309448954117288609174817606605406301218358354391537975621798339067862605340581173790419214138236370191013022924255213137378561214901720025678803640719558896786198823251691115246796363118204223428681253367165014529632923479739569739749977615297202991437685259231376083217868464949733389221587023008143277807972921592869590793607529200965404544480385706524247332350064402649596403022948092008426910412813442935355435482359086667000709661572923443550043690571967166359817071439141125806197327086434573310062525232107027571497169392581075097064726749743698787653535213909106215738327282292721538075751700632590980884616734312462071318869323800872790654128745091216987586033316573861460691553039275384301581099156347965131399567771527644773738262359394139250521312292070321430404091865278727249254154733005299849221736582230364192317262056625737421781988433598417839548498844736724053572214653491130187303736922313237612736795796605050614584034486065110711305322040811238071069883782892381048925954898232068498210752366040600838259041807103125770889402042907957558676811195906558726555599674615544455347256105826116391549258737048950848402150012098977076089606191612689966780276941886669924062711058696954127886348129622886910960464754795527102167148760229650375328170025999065360914763110503113080539921341867755762876794132791508570960834472463026031077947384491884117126929281740849588168998788930305775447999612303823515220524325049334767330534900387044525343712065310344765628603232721102914572951320847752588872444945406025224361316938186371077053998416303517140443454637906303615865948305794964360165933989148864584588850594782157222012421022620468422393967335963271760997298023788647530838706461185254951725151255626163672872418314014579736257325782561237000482022925631173136735245779343614864589320781570197729920977253795266177592576833221901521609517517245186355841653990925475392289209460032563604172437236728684979550106380048550673346896454605855451418630196182093732242810890584600837224250325784631447186908003650846269979582565534805595982560019371273190009335425350543911990222043788269357735439083995271993808019499605664707949646389621723259788180812125712728823813468444999370090223670619226290668606945189324745794162229424389883080692387568771101823518927472087884613112502980260446453323081437294750174347925369876116022954768767580497475002387767374009231831846676845766494846628550545808170005417030625411132312820032608023293475211006974874180396226299377955952679680415427332518585565846149966038799482135508055796110003671015331842732156194629833929250915119715020543983818424840606993295716259523552680821041090760474214165788082463481796357915003432139246857923324907252307359831445173709361928236709376704240133292812231305018951773407436794204346145857338285919903875030966380523189031782577540672100575492639021426395221473699340492544101192974226433456508016320337367887589283244141181987325247691099473390513200714243982199321618175334898002876283064272426466252623643452024254791031160825253387963774203452511439584300294241889423967668068589646911245828126477817608218328662680573796055478458102560560173196425403087816728027194822640013626675444466524331574443475735897882803697033564892711573492064100370922783951360512330713077983263120372136999285794183978320304529390219018316561388251936841355437411918941665798500544139514754644171242149552502338382172735202512174793764701448361903540053774042464351113456881808141152569425087524776660903494188173302319050320991787325388527487888184063626262824047828472032835618155517433216402655398755185211157249358560482367620698697153467243960472925067340487732954686676100007281373488699477427020450263866060670292494208176206907287104829668039264473578537259936859574745980385863311504155442599731605113936828534202111547297993155609177872284411548608620077590334720234094954845942217534101134168738099923205869901732296588964542693984410931837548677901296707270102464915234143090447451054186398350841158276265653423082053473206417142916862647660143660157838642585952538474524282963628890810681629057577672128705610654072326677990594115062207941979616950023170438433629426663867548100404175746074234901228850808465434240711692860462473066788735640715773196620710965845512182577077238723015102137402377705926564148203741176895242758284067217157129632616336866907098405843157114176468862241920358471002730313501621157888118207622970081780742730602086490378788120613413989986767576994289455526852134151888382156182110016640005258581142839159675020509682725308670947152265882188584866808101190883908368379147353917237046288111466201473148213126301721842391774930988948906775603925529240671397467920701754573707833151481350994666947395065851500828147247773989384233707543488586976616084237743620377076910892099105341230048194248191367639449731016302236285226357313193374747891145208265997804145520153800465027309274851343725311849030509390379751067832803724621251052079146286366460052918469019172080425981481980897759040049440376626549187789134430522996998679435141039224442391907258806078724192941655453024833633598598936440429026935810003788210611075148972329936801739505002665465464192990745654786979719424312449872197403080624608101462158439087786913732847898798971008281501204080564214096003629776590064219708684148416180847246836147243607714785360782662956087981254831471004571409671916014145178466379260856406552167148906338259756412362155346618573547685310265319733457866429966198705324097776074751969766061556476806238561686590076471335810998558985264623387281787511576203753700309181119327880521495024495673577391626329627721453517925695905655078591943946748745181824042834085711141205703525120487015641682762345198082509784970044119569059667396978490200770486642370733206156953038979791415361034603398658077841241296976854866520863931354306352429702930205861459692622192452194734551396851285368324575452882161907778723035528408061737829397159025759506638396369162825634264365025903993805367859057713899102153149707498589181238576596823613264978701403854424521989693700548595044937247239529716660912136987840472357625561312842592991674196432274016549183885175846382010969121840543796790399468855927721130169258524244783539505309510162232327777693367313250943520383925612779293470916190366745299494129752025417122342658844270828932626184110768921232051703301058995965091649117891440203765269005354878829295539960213056400402789348068761466958859218298534026311701595665919300532918354006492307896233464985493091837934505014391648348749804612874731984929854355752231970118356974132941329603590700822656762191255787766490279272478135721073333733541814141415549595107926477873577339337577827658482602841166872317297262961088305047772628791867732538788165615842193826413777519397876625678072555388705660418456176814726004502979844570843880817772031703972805058957167038339950962744931809330568483780402842580521063748824978947182293045042663345288000955925946906151215611455534397008788350456425197372827360232069761058474804184614915727776489313661636036485338984371917744289647711848958225218974166668351527982690545074361809432359008618277566327999872848741854944129542150546793409852293243081577682533538301062555000122750589290068720761211683653606759139172697462909865138566970013100562970970022446604721636825314702502092917346078086908633333877366087429280753277720102157310713686939430298753565063809579601642167704937617005189901662429746133447790864097638994361673670917932029738004490996257112905603496886091642953985559406614464716831725580524199425296944707885501118814967739787530891945034402815709156691190807642361045980148122607862321642001442516435720296958786685867930378546882220767627128189027978403905815479086770445868733981719683431177238141317744166678155548850510667591976881044546736790688647407049490369827000607807747433709197192574927354020610825691496967569098277523996741849456164802132676089870895029563721676787247662305271464215044145840145527453834435651197394595572158298955197713748473990920278886941026237259160219851194782645845534694651493523110117049686617672951015002528472730587419615073864328030423461125255780190037076696085280920441042120490354015821311372151780424933643902743679034178115272882556169424248850562982274769731765368213216624771731371139451621938033948914495908072198973670085580729456383270973258201081052739769892386913333099742386592280228705317429911779651841468492034353168477467542292338292032496063548765868222712249883591151177303482105167440016556972485709611915502767599603158861857069333439881103473584333124547740521426264543223519956210469032747443999824121676418339291829922170676799406021057810335533395000218598057489667095002122654822703649120945393731705286874545809839929681090252277518716896727263550059827036586053543612693744502583361428319573668099146121597968090473386935167384545494861900355570532031532927017763688092417571359049675324228605954553344212634613247922568156817421077257294981080777651485315338433496682616882146581550646944833897275579187459866316397474891129938547798565201957331732809987494636028028255118851266082937500009231708337097524233456305273665338828148119094245357387114920335352212793159680493257154808798070395338182197131610494545098485072060393963883996762619836034516855975497441442174794886790805290341573606920881542508029595676537457585018024165237074998619277959637060409423910102840427769125059359613540413829801215759688235996205171160132862932587096923701409223980663228074795557253680430157120541135034127959178417745759175173561259135076183324044648530297146327536861077345894562027246781011262595526526083713984436637244635105700131550077347169166849589130039015548873218455806295191251857183645971799415542757491669767110817751391516295603755974370332919523680748599481029116911527383661756804867116662829828773748556161373365096473150225433930408705565867200502152131591571808158132973307808422186574836718381462176884880613120994667291206187677700753673185643797445187726715586231500433381278800037757507286424882820433698590877463311736807305152544401968658648155159065281330430192837528869094018783095422415578271472880683873308706690182536307106867567608751967252380906140330077387788769919639931178986949313328492016246930116386377901447070039482349691960652849271235544320965433862294667078975782273291195843402758145554236868478404831320546939439871111420953344143460254359205040555563033303542306072441532412245415134453020964106664476564191346300379459685724363032786350841975916461014955514603639712146006720067318047181878419159404961799503767406190491417086144614614737619407307822318954789395093218425997643128211513606970687963552943151110679340454520264241825303342036089958788186417224301851009148447323182753481518952125727741505047465509374197457704306659347507314025778298256786789079535668224624585394115997365991904577010234314856598782231223884621580560502277647599129964863568329925135449853126132923575019450971579254285706480784629572419637862083768129859498441864271686541873565498581136639210896389723982554213929439608572341458014410749634194939440356176688962618987639891457939236756967902466253253425933823491224769823666314344792763141676380733631433164660953240949675417710395790924379026622575453018929522641393610024617719129231583019550803692918853665347358173440280608550446408395896904448041398315333903639911523757803113965189447343240924605959329431584947107389551624502733543951453882000874055924859686090068837513652109824048155898700337511525625232366600092219537461551503574559414462213755124600875962667697804995278607934330822950396489485235692137156853389082948744329503260523975624077828499921428227671549362822701490272064494489640703842531210800715470422285503240490175416587977558219681458413900170543524273446270256271857205174242586833935533519989765615651580142790661934439367638753386638621970146285215935174426695291293140877430547966330798884196429636881806232987174197795145372984098248811340525660322524072129389735857307680096151035055037958536373914562640408644895838124146245316210290772340609713846112360073115023015526169759910798001171101811235372064525535626234201844621797593420233818550951271639178972012618654306856513749796956354597068508841102037180279184695337264842286692518747075067296389911119704919179273999284962903304097630760678329399915224718789425232752906804106525557636552571852371310737372998536921709363192871965823991936408135013441863642098842813998222767761990541449514496599042240221503973101016729233616755290170212170251507839096274002447831036095069757523937487158092168713664281068053390237151392558946941165549200818904503821606329289624156714379479175722952859424372507953637477003386514058801409553546151027144566564336353369257268679569449336559578708048512224354227433103609971758983687594598082424604743407068954210726916477314254370567150317311203775110923039989925354477101933775958101718098227693158275890751371373875563188155096106511167935739822722041742842988435559210595906810291118406600819768624931857821188623265287940212328453412906952489047202887902843033939965788303140541993188041858260868725976553731712321865628979113773916504355956680523094081544887549838868467879237092200352267254053706831430421342879601560908147936859459865918839146892682842547701871354847565272769679547462106606040977286399094587731459811479451636948515715828404842322475381356471845645720080182530804637349870956483884168231189587615660235347510324120842658249748123692124438689684996883862389547999431644811538641394627988110375535875558025850613750591221985552429977479230000164594058532830220015240510626171040370949422536167055702793699788750269644046689690419572508633724513386418771256734363656932576159890115822720328070097255030688272390765813016603452634522130378694225502455899302194162965659250598618805198694902544959099590098969187167623717742102591897021632971985618608578594699278405580145763552429990036578849095052023732861505845781218481771942607156629109713282544314891899467337734008826107146512772152666103157565829231619466888130109293888935458768258072189864556643117657663376532234422484641622197222268828747722754428374189024080956586778704963339506671372000432115565458107353807481373256072742061743586602706312625074870393620390187872447533395698872568833025706063809304639301879688191349898487460952062677610487790614931656564182187296963611619363656426897945302024441406402458920998430661194032763323933063595351904261180788137529467552569509650902957339162861665624331407908723935373874488616809229572002944124908717105272403181262842384025832941672052807042371058443969478526573319770179957044663365316265024874458661969417272890551353464643806516658881817971992891719913179053053110452118436259973755704738230692716379453528814522839435878368571342987302827642649444278577224360809778525095757554293624193391464295009963969598320482025602538441531330274028047946483525168021454430602476874941285126010384585474837547841881942031284872604015954305345195206863520539249812165169574024002073534722026747508182878046326561617047566025396815804901260051466324974791662100857231979582103887068803596386001815297987184038812234364740133307953831569325233042918368785067534603731966504030047887468304142710297042112591479875628264063536583276313177198749953781910475431529862866153680319860511866472314486191719191873993033554855542922062268503190689202751883852443487210932376126195442540101892299570699416596661220602220328832949135354781176698413780133023999500178765239570379216143140806664607005461965416648823139886813887073598302384258776435499551483159804485451347627913481174478620086573393267410191061823688408013570920763638289200756743891938553569529139369434703575621871693748360276131296073467856941771863425658655315012848965754012551898087732521260310417309066259628492995764399483177365276032147837536825326014291791235619917673088957150088598059171225011986824799395119339894595971623665340396972729705949792333175020225769661252157259506446345302730875061442379203201270650878386623747830190178070446645946059090766134153646418740385562259439347298878696174510032048938770801937649945628918061622180700342717342143335227587659253722602081555143571198520281351939948633722891427239418794978607100769450892534474826811985931718036439449805610027696589412115469596649380339343680330817112182770180472964590068107086469812598387042111827666488940031481509474094062188726479863014523958423954585997964354791544800365103237382848837348595234832130339048720068419901801743448650120436594496107912581016977630676226544939224066446975165224554140835429209138285444014550140217637305527815156716662747303973650887423450954679074608728872912674746490145825773576638014283021051797388269876061677125801588942321208793968270788669147848423962455525537975254350242303632207381164375188022971954556260911513019894163381296640567881466920998736982732210823419411692916607259339607194008125182808484898211504560386178083709538527696686328202881772675698848820152125058496107446581860148727480951954044318541595280882825845291560985389078328087719637453168156778587242444311360153996392431910826363151150014159618434068966884111419736702844114189010411635176665918472376329218888236885556649863868014641782557042813455777746127809531043001874309292355973687864798599903718227002324294003666236901259733030266737665722979766028243471519557989970614018045331564241337508700671630141498440889851871741700751407145840376697694591332770693241734815874286247574203878326212824374252062343925351157919919917198866162764303788624300645812939373421913576611247343344041841905975950383875926174135515679903896708842265950943208203690525858830320457195514427964142685579482821304110179991968428965842948115305866741897755896829994965496300215856209876764828837543743508599021410943804510878052222557568492967580848959615497105293278744246215311817398356478516883654384335310617030630397482423832661388633212084092778737234644513844018753464419746034215747682314547788919981489961911478751074718291061861895506351204610942457289523005420655390074156249985103438086195500797027788849971766780375615953289620896771478308564824632849457270521699271947828791788370140516257865026681565875147040676402875205467322341422440171798081180230091292151395923443599181986613066826766160367171144793928353697166510136966775936099670848789499481425455748685519484068215360421738628337632885846702787677560122874654419202392970452136403825087990815443615330725850225858092374987220603417275268404163114514424644100750815990033682053862161191139617443411921145402995216356993969304605943797807443790602424041515392329203336835255624358974214942684695464445175509041706759150826247770621347025029620334915391689328173985050116592641677228938267088822846150794785899618802757198054509649025085504212779640284654496930725158810639775979764418161134056749449650507110987925285404647506359375725201908718517064025932515669503422828349723862455323726699425350954207655634849645451515711157363885575617968885721169356127618464609604512279022076084892964550838496000256069707346971522587054563334009382990081492247555216344182170227737883556242783748662294869778668515258145558412678289712862584281841077971852475550790439064609983529744948482757886090427253419906221830480930002465084297893203960685773357523022101473521600221941742943887397581574761666814407125617092103685054273069680420970785861300661147723337325638889341638521759606883155481767708568091328974647610922135360782244637240181252518684315401120836269989941583501903138588322872296828213667084890234360125186488611395682878674579168071430022992753325662163224167622076725657056810514309237811864004191660856913243062710596396680031094655038306070296227857607416817948264715964068894205351430443861348698678362536562808558688554867492694240657651084674322392633630709637076986430072738395484072140700073927827034293547526202662242382053045562001667119458596314643643977110055270847968049888813471676636790459219472248281433214766712678366204212598137106193056539126289152695603758018115070688182576177022377084203200147365434480987980611771060219372712839960720473035895094544958637904261684162832526771227063514190156997927331250875919687506698262987123800683998165216128543943577339952291380538773169696891351098045534260499355867756206153683991741812654056398823693864440064567585546246529108385279886884963869085746262059916415335233564400919653084268937465254013221837864251604834428194943463181139212055137837810787318225785314304852371933782496862958922893683316094658007554244890325707329009095280325349916839271439739053633733855749861145502820277945888384986456514567527113625254983556549927578606961080236686408249667479914377450935204388437535651703336088034263705880977868994158813253719321687154395357535229965141636689721804423204596767468514459803364027393147226711576739850721868915038829893913181697961190176901234837522036558866367185641534132567276066158102785597325871713416949636808074232455988357655202749712911756198605523202548369908793386045308974426760716692988837620002995874401255631396819240861830575122669889741918265538500743185793600825555008956039668117752796687631034835453742646086759873224844281367573350694580520409194000621049543142725296902326185528387241261665013401111361186894793073904253893468724301104831085863041146923465783484092057286037039819968567314470536769003870402649051425327822037402427327273414888025524115962104158092362107245628730999968809585637678590985828366756290730922534053186161655750165143808592801170740783559421410793980106140024423600411483814792661814525670723574448460645197669558842501570704713191787309456723659020063970614370366867606844908049189024696412411438390589111091284281578005790923235765323230502203360434019110750206315223519333565897126651547095745105811817196043884846431524013866426420978237920330129490271571391787161970106208815883785973961523526406710140181600449211490102145426497934477844133931431733981198167026543819012365617265588027331596998002584993641917449319699305274318444578128839970374179787710106687585343724629723669665582031882845022384214876304559591836049726911220538641597435481097986512053202794474260818178473029252320243224303063656566010489831255185480276897989505656582989212706073171084209553146397174346758723320356745040295282001287347619892690438536468603528758393053115389608798562803819525818303263745397039323258563447195343511636229947142096386496270554269826548809221215581960276503046762608822115057722899512115884491321732838330385831635091933513749779378382103130110331056323623234655101251005227356162994602479491226194834959212891979886952085890083963835125383828673441023825971324082255007021218738219327300085557845957626078270437760975385961280625596421683339905325382766027952207892792007364953711399647279794951733284762602217076500492152245757292333555409974326347984039947666502664900740701726988240713809340579885727618276266677587902327917157550488509587602161018067320191809205122458039081203336540677349739908650609180663726433694416409967512943472957190286977723957079146089657424645202113819381252279547208511856480899117276123098286666275326527405019771130526324200667082504867771468134679568978720793252710417662144216938560512477651819276271919121476946283893000780598863845974727800590593619222825511708010941749140886811551948551830967758405699433285862547240313764489052975645584741325033244463497711034366585382335784518405166382218093319802875816532848524494070074421263020700421703142151481262801769450441570511754022171378308774587384123674812387595694203226605633756175889547650444680476347031048109724560392229780872725335309309317116873743723334480553635195812012049549677976562202817315290190074548676447088453542686672185665205193504250904171850798021866370284290092360234250576562275569104546157673642497243820600385770810317008307962807880054739996185455031628740388778152160516735764439346562563941308043509777198953881605401895331953726082365464014862886147028425758560790614055307076858413661371569153787233413598776614355430754731626280094565854918287789579174225458036046105500396125992069247351243051953819318711517027069123417218928865919531154486819077523170919829245548789671715689376769099525155277475969692346232053070117663072570483312265690117522835041101220908927082437248541700299675051578084120861023109160227273243057894705751388184591189065945502666025136633141678522448738841362960287460554505112894924285805399157439368918155689896075949995488661323776010216192320885801636874137785503422735290833042536548375372223831747273731074172299231553552665261625106128275433901009016904543983258553780272244180213717249248926519768873706885151394881946306424998048913691685529254109045911096632550054653289106513491117643984483807674193775134829500854005538799005432449832820509114385264872126810980994753878131556815588664045994922731119660860658588451086199899740262584408896526338452250033280125040611619253835969456122026882049757649788437131715075288874178816800587327802180976670190205575083125339357766151546132101192531085725092214656029958231021257792211644006247288020482171249847721910111935147952679108696141258153474747760440028062260195655147664294904661897247831550807523962526513255794381645603092425486773726174874670831995833192607305511223916038487568781412623534548336178399687917846908804523067088827874354164904437923470716786696573779481585337066543126916590373428993010580366930095621930965826627775010375181687965518570511832445548046431590632897637528853230443881241507458747751198322269327095389565860287194546416131139670523120915810138531551267657048806912656084980780674808327974743482395259789933366450983508788887473492654357307664439626126784026294914877539056396419356934304520591761506314985869928232870216188620704315518558814958250723957269699377389742562506221267658787063005324766786040162472593071112870642290966802279423276666339103489942189432928821437278687696483406125652705364612019417838207732469516296101254119930197436106156454201544580560531204260828218917473961598597862480855425284133029030011735562545781875294849568535141241830305428442679932506058373844041496550569198097914354094884703367088137973615000916930658988460442554558639401236540710320828924959717509840176596310777723826739135375190370489631065842104900429981569283879951954086652273095594113324656276694399134085604644467185253287863431926542692890845130412415786439889099158816704696501146375382531032360915480414083770042382370938591733624954673262669853553388680758379811777721412089988424812538322347149719410607668246013244899879305851800125232279920988045098800140968402756755362663029960167435949971913850318444274985377471281933321256971294752790203078894669692037488619005014850804342725353267019617651379930691120549788477055032143447093289665542138220789350303518387414627653381994803764484588902381450390868491938525486650897263785072727228322829473200414012719178099819300939896770436923952539080999010813333304662332983841227671956334047172338845402440794065180794510997098026084980400739611315353109144473435103606371065639758978708160950953371739933825756632134811472158787802019181125558534896878172408308424422005389139292314398899851688101594608369757088271502025575468368001360622594857223678270670390147532999731116035512251519381739939891345809897162806072852574395642672045495744365499579946686724629489004230841217816133847291013165099811285082007466068350832701793927450540035729193810635292010450735481541055042568337895811110094348984323710601730516420365965632208095284883748746541837467402062724021557541896783403960691786805551166369830935077060815054175103597465585826778887264457215631663500985823955417299861027601439505338089575541120813820404639204058842605083508341846372788377667388008888607348020487677003994188722018550354754738875251624821164598973562617541107225914827930152523306226333148813803329729735021495036583944589044322760607793735736427145025479684985450739073328474655227237195178257540953166625471840106671491602098273553029909762432100846337887932291609098015215580027167708018710503030350209062355250352229542995146252682336984678464879957678013123249741187876179664095421065232612551670891824816006984175602495657313590937987949752534379486597486970979332647662531901033925791553304816130735856786904138634273800263778954710116072120856225608335049605673274052959621242167783659809564174670075451949301374768644215660699907673541121057512043688008303282581079406726732910226510327448480079330602196939237715607605600001827698165827270359058558421970976859435048932440674025581248756834607276235025592354365044840673890590782223772678998358032003226641721047335393847094437559539794597326179941866289545633986436236700405733074079001946731895605267789316533596932939019912414832570192500004438359010343547745326921310462030203939678892221008807632325438166029635191014009328180418703106458915197232103564047441001592966319997092459239248112016656146467628805669918817746325167823282778801816493664893121342053978699118802048667076445603465089965020304520653652327418049931300955193300101779385780374223973452159265757203786558647903149594447162482870771021989014956001239267931030687906101631314920631594447071898940605780650966526327466527848501661714027573393184017101763882085941306182766701741314725882653963111448982753239219040194178945580517341224599793628936307002681785379107057568727445378934617023067223191815857136076378499106701926459549934685249653911907737720725034650175601173829877985216792111987449517376701632904144163722054695564383825088910847770996348378828071748557330864048837887464628089335198132327219742626474825348100878135738396855921019370711196613442980934545532860410224593507835165209288830675679771433029978187020544850250260116707299716628457677711777866491449798909318202855482455795271064176465709251047849989581473907780023092177740836911429993993830348677481590354957896967151070728274520354045757433269997606668855072447176543158362001405918624604451722864694427036632704771686677530713997184907656389578648073170102995415115515579698609556901653404156703463910546124428400426679191651828505461275591744179832060170068648421972853495083148858345208989066866606845614504491525083064282365560772406739165657534125145710284473926320391643423019573368361796781328109761764842666223771836434675804289368811975471931842486796580476501500790688800665683418252927557974598109970963672903373388355663218939564087057649856476666013829231624513669339533808104675156973485751327087117177181169498268269606040398892004027627184594382060060442866527644442745137689438221415948350523527146540473236117466531676607928263312747806511965220487969017658239421952441739057206754888026553025187584270639591148771796323248040905789265658383530589668865757898891698720972320509487187597054070230150891113573839962372308823459934888972678492070164142385526658983496855196770043337343020564891952650057473144126837370089737557364616916059527322615162182670722207535743342838778274134034943555464595888068078615966450976270504343501673743061392152215711580295484898281001861976953585147895934487791420915852826971095060250678757067675729560395265868574054191706931206248013030557597257977834995737721679261085264513040320270153343421727667804965153218938460086251319686171384638951901956199871738090887678146036508731633359790171604443422867503535389914235329915797506344555652044208719985338662218612857258148877906910119704613158220946081274547826100981619705709668789797732002523658511220376855859244726391202592420256171876322559967216107996576377639904370683325930506831029434447033589480650595280966152920955653011213452821668196998074408012432274833740931783727346735592334882563444835088824129244543966729364913920738232928378600186050951608755247581732673710773842577255153954895249780562270106330810601022948417253978153237883498952309736418900595322166080821342183681946829853727118823945141619840321743978906341539331731856243302922954461526257918996988175699566389778331506654125958384392068445204549067063213640752433372874113641913844274216121775333322028198973702773453435023746533600002870419427453471421365986342284986428462768995662424451105981189280891522849708880697817521278714812217367319954604673539703307785259384446250862841933371442732351211338944141655092083437754457288916219515571785509539624872552640666056014665069742397531377726944661355516299963909708620539122485195496215957379206265287849609464053820109096609859518805363580476614192088019034335764895604606601894656417527125172085542331637041392268340636660756998200504995465601508607259832951754222118493473459924058986343542355884696588811879406649197710636258704273877790215297016201088251713159757123936876461327955849258286310460140488801026961038329919800490887460843507903865249556923324240232983852029564346773957310833497924884381262712904128294551251168939963732594084103658117165887094090385919176210120321874679242814368587255233618246464452279724238254951108620871611956093038219017154224917537620275250150024039454806148739805765128227146068914493632018509523386762746549921372528107978812840911242872117534913723114325204898550555632227618476644168707491355758067757157901840268252733028705623859028859192456397464025619228811356079715757590981402825046953754232801106376636664523664107767998812456941663970776453708412741447635911692811526763771897981331501895948263794691142694338606424103505901357180737663227846909134420864150995594949044119175163625933305536877991069573616381213300731895214449123674508102864933922970451167215116370365138580873836401422427010613952678105430246076206496913070960990051199727670642013771330826768664437314768128868157819448606733895098383208425513565595446403740285867541227134156775377941595498056490071007785666620039171661479730717751011517342260153062141045387677877659768473854245163523722617803518153564295907696880840074699595336020069991449724182915728096087706381381539524567151782064001638740049897742828492866870333087086156548875227687189311795522197748526677324570375681570150796641294648407510294841931902026061615888337956347892263422649538906422860477344985281346058270222606388645471571795667906607970615924049430013330657660516196530683400531217829857185697970366032598869252739594070680451442868938415459182819195750219741099248540904535293730266042200745092690362672231410172430705472096458754991861859903824537228213020853050479267697470399269974052246539576995656593272919096301938939307489815571355009986122035030820068333284616477299737934016601601822065268795766764210289872730458734730973772495638253162543476841752082058035824009134741547578324313423815282460278908793663871807111584076088710786123602814264696759076896955616393494890232349273029011193228264571791745119199287285466731273402922752434716252652957775679711249249182022393243053181183339018990626479520705264865568426513762099580519576994355968037008961000227424339589154968157847850574310719315682151534017521363643546974175675024442487006501689100209277692406085849563140171589672990133194621704825536223023913947996936577843545502878349536626261712522086040466534115588224157742991965138583141112107014625822515684222418903884546825422557256646149629251053197898100707443351834282730804298998531854832256543170172136743439625860614131604700929074932447957011366066773011387185327340783874565705908554176661096882549852301363246955428900038403951791111416946023503242780795758769126602693246734537897966571639046587985831161171874885719132013531436333013566967858517645178764400211005441657823794367712963766504265639166321364114279468630490394210564679959255251478608559031046401866123827960903367909798380498557171850734974234661597181763592446849755261282328213341413412184472226306822437458414642915804255335777977002156972528480344267270462183297772167259564256900020547010429032160276569051449166962802426730195860528037550712456503858983213581392098647811929748054613250944189970820028441656359097770391186269019621697468425049868038627585087103742948443999979099965098226284064264476371685007318579419955211836108969012101258906075206899380891573566434200475879549448082557080033025129765912195338233911565988485225769616540723030097772700901588614227292413760657858124887232457526197924125658659267320684256305732077493449104720235191129758663717539809055747015982712875303090833675992462676895943139305507480609647758206811043531449877752885235614314326967153554210840998510668971488710962962757951154329782226262490861871112102358871677035297089814002139636280631655481461628846001439401406227685038512659024813478630827092490628523809407753099402837709787367228649031089275486209056368771123571736680961393262337354877660118550491944479990305416918348818245174696701331632353882714291167528316699255638633674231758665572425443007259505816506172662068310743006946739297634786264275537449989838562024059098508948073676482409330415652569685002491762858944536520839452809768137883227498971260663711127380505698428464847439196435440860160857610335499417812589858255513467791146193090986142198219209220444168273849752737625414981307307077335106947456999136075385484601388761007429936370796341569494688437210289093697946909954944904027452040548977339425783853480157238567987861032173727299457500073565463607087108555565249473528899645349522460017757979615008076724526647247911978855237162852718061239654670568884639411865308476119506511135569831585595466284965417158763647625560155718905090148099345500151445347162825589807389327053633568056670314291087689433605756679283156447343444930670587290948898538505738424949807954570480368092243854325640840229472129786576679138852757498092911524755570373692262461979463601861217802242360955400729947246316880829962404806123834835176022031505647736210126046405707929400917384922984450472250792832524711843110075778020949669246174425097032203555641081232344490654655724555916251891213298348613676577491039048392277496365912118219202873143248878140672153178251323035461955649552998022866345229042606499884359366823764065669909501029457790011728170474716959431158373647578747179006820319509078585010798354762284166807022997362132831771134267307163265862254025944458168636098849732467888963372411637135222193385016934103738045972884353331881918349803476989224088829264112317559604212308584439008996761954030007008097530458435195656002454182859174732674540709026992573249051324559645636590033574178847651156336883420284734005598004690301057541975434896735834066727807999771625177736903135090075776888683900034082181500319817826469077887255568568267146417821728121534617352289490392406900006741321921192364459332803227324807123736183891504608575977889262877122230601654913816815578000933186005157337706813969443386480600457484255602991188508145596451102878498928942449706956800369163259797471769041527070047031885832741754670278973981771021291291189312552621119494168007680724239849477100975605681004117781654753065419229550601773950146629622860393404562182332386978166370058461980598654874668277708394113783565908043713734906259766802399405527022714534170554042511382162275570056268985439990252393372757105441533299061058750251196756635416346046131206042404515501348532982100225931656058286017036661421797868418319954267926964100547812454060997188428477882480456018158574731965716784417736735645556638445011983719837282506003151198895438467195258528417450979545587730632679810427590731940954175118085542660853460998413313280668471868195584181452363898731356795199703809504593447428266085596351018975272833937545583951866752035267861838347234792916805817602147443873188826789580487977791965766579665248862548413190925204048144470300366098455644070340020206338236615803028342042372184719134026410548088811109363294235883785587319121418048833561256274921898899089288110319000892650542956123012888998912569783355040262306466227478677657743293426571315116928333325073666464229555954289746506962298493447210309492662652876507517144147948929904285054491170367516181363844507297388054116003784029470769410044579217103839509610141110128941653982001619292843560072734656517603917635180528362885836091735305835741260903396236402024773513949568558419640809909280577361190691986041043184274779801053002970383503660839104154706880427453566464910108542220522602773587117520045864184346096052676326023897203726961629340628794653136220479716345990496082748522030075893993134593377792884127132966857780977165483843824801961955275104287879542594860350251316304216122266301735685438908836347194890379777261660044375189993602626732162986477834527102722728929066083883601558659959996939219937481405644062539861659330534560289702920567781262253560735159641869460350933205310194490881690133855920908182249761851443859601393191760371633059736328726209626264788908300915215653491199279910678672032406877295057957532475019720566401771540767753043123244563878825314641640961769757227848186975768973773140631478677390854136905707348973521787312528508931195513428751013747806347724693037624805801776312298833638381871576420574345007334393366599764120618181159168915792259702624231672291000829133166531212583251761403934533385558054243233723330844595846952167947597527871369376836869320006018805630770658526191453248293065058386614313592409176675615287273652936807082520662156771126180316593134287667172350722150621480525652755662491251141145247102605381922362140244194012381225986571790793268021604558331719506203430870369870868229547624396045116464050539135546468238320210369251472902017283627191993936157335259472531432638862504446893238634118077372636333712238889499961887502118808615984109203694137074745060905348411481014071161913162142496580090056298823576112249373416772855445428489319223333969160349727742433781019170010790788836745312272962459513133294359498919178184319876135286375425842759835320211692765186659332263827719743954280463340384818366951278556814423437402116195480509043314932163082622002952087987154377784683222624599308688343813757652555953968759747481733018438958255467100454044326407313423636750844784178525422991195538367050825168464408820382435895003794205091002652538920952793022601981404784403644452500093637309567246163803745935288255116739483665702643443098710696960543778670183509907476022601798233310007533015684460943007257594790855067700059702929184273712575843137096584368281347855749670633966911977071691424293177727382439695432195719131330279762900986892316765060585732202274845996913367214775422618920319914688274912852757890970894399765108569385759378871646506760505796067176542783774623915160357682537561250816838031716228255434755934176442034646956901845959682129722121882337775030673338168811122385265433796571253272633505818033828756953418113341999069480126919418312005594823193153278939485113154871728948151248405444001555410189203941408961108149463509450050177625070473705843378173123381361226121231682883777852332420260218768344057656570233726699132863647972547307535414463594920972930024927704629242524265710210715169290932325424476860430582202375173564915239413778050467891457228426672098809253725331578519783399295347398843648096861519481046385366036423905482258863646384244336262959311163642100593510992991883767986456531919554359997051023434477780777389082142596892524893182413166262744813504318289416217221545093124689267564851513400838685692423287518239031284213924980832196006814855123759450812610287022636995918897832844098363412991688345404221129432371706900520855392005493704292969151771312002385737066746418835187440897126343839722299971167985735658377938165169938278320806890241353310419683154650531293768796966205433606538886125065304543848742928227408188191122644456826166549657872221213472569605132083569506373547888268828449705222047882750414170373595204839212406924102534045968979439672991402066111135298231529699002693527122586440853471624968837756017166756069770744659970080953147518477746940536122824038961851343890312402827297908101731745462647151877394536706848302143908270118193538678790998301169141808898000496907862758516663103650702208225820683068578409567683880437885561249955302167349076817574702223417046301746847623638498753789117147738628110349944184124754961345799662175564465786170338010326777375054825202116516414772013456251148597805021811321049272379168059710489691092162312929457059663553489988518905391583420894769453414057255871404867400706435988873607108968929897015921921423442801252107690798118007851873163453980823919411618579751633129468067038649597951749850096146974598043334474811969725120762169953836742181511782919915811524889600928273293349305308091333336447844217841702061934711032295136404416390215558610248941814626829069273236834263378460216568873229665814336312130654305953753934042575023060457813072594567812861404700731754231682649660070155423632796703455961790064359466653315823669980170156105737577211939963675896627027501128542734950389971389619785676562658980239533476801277058890043672291519827779637234336983325608544276086337831382901973971431598062403652500158347770150139596855009167761757274700386834047602356725757223335933149214905818957150003858912519518461513652400609097358896898585741587655302534721321254587756833564857527591641230171457575331393386734662747839845598182387915696139433148348225297184168786694454914281081284443253148458402077109929981107100432559085638913168410803742002412654804048687925471204414021545128426504860693648300589403084661121474533925696438346203885024791580417498547930155825634669504377344031814495519466277510427248635355710324695818260387369879580348829767250537508148597877465345580034742783222502524430910917298867860919766082721052253879143722838714613473096662647229622996723069808360794160761183801715354607778481338253744439655166305300253828568430831231479206529484356301156852519678134364018052080869004559927085189724612456191927754454722333614989941409089618358833816523121710312616442486612103138595918189683262015607189863853733700284181903682126126854280940923672657763985255753683755374069367495482225066433763200463955910866380583248586418399713936535574268475016280706933797742360017810436455281902193023071663476059436863587624441821399339361541536160843508114119430603649608391816100652906458548390596918500524954449964760501728247169897590489339787335254781584289708033430996994220716130565892412291997943821960868882297616754858374965490723214792881697243001151383660931968767036356479099091277056995277264330626662849402091476289009331898498910161525342425747775199266808077071879501818274024108821022338564333360790313048766421785831964478940586747673459861484955212100578496853467372368888099066472292216331153279011219319699224580970818544353877354991334991801163162453173598266015561564334262030441969714758857629204587302616080870042256955577547424525629951917660187255975678550754259846697687557268348371610348238187404086653699214082706203599748760134744978697674439743200629837600273496833331383804090515466178549257966371666215886156796023510925360369883207843202264616452060293857337579841946735427476875343756884690568244565667526895231311324125660014760808965380406655334827885070038906409255758922042853331942112625222331129108971309837112789008096556910153189923412765355510715963502598191847365121373808575253052302795033689109845761218192611461546979942663044419294047560127212364010463006525809057669606916119434559602227163825431621410175217755723437936454735462153866014879418272783823394074858577605731705390904447715007762482928758886679814879236372787824038951732937825764880048190380548121422524294543148405761947867685513695250148367099809885675151268005547644988635043880235796591587981007849094422277577841023494367224618143281523720548073611206540144912035380953561815650267598105734418630461554135455113469550917313739060625559196872048666017466066742372427169761009367822284861021953232183766742157167189448418700557312247619795483976614041006622842920674063795896819471349336532649009651676334619309394410732299220646464498465788507327318163979231050135974178709165532404613311690267396910767553638177695566691611429131152704998595668150805207597476105849202408503395724800126825637873738380330351867392486744804238237891745052002254689380678470380823500213419940105049988746800890983892946812054267809497761452418220813054449212051387099386459761081021072513357533056884546068005123399174370054328480865693333771081255362528399949237082297622467206524699346253838935697369282239694829293106875938081619571809066171729468455257352459782929019117428759823991511589841879624476415867540177008623872027992635403404499841004649988825587449872220020836284891181262293303970604549293263107907576373412283497814805877982313060893082328149430748420229676358569311273328508581075552160188120895888217932515047228764622815590231240670564416296289769572569902197484069577948394399342925040044423060663396558502068530071047532004172636335239264550010722295933940387187918820929388204196589029895459883636627871010304987061885559090657331822578068470377851130892473917310702581333955050327931969447643429534804778553316071664442088357134692453772362124478724034337710171144405027956678676296117517273812374301205990943655032182269150289371358120085092118289809461796538180109934645087493749915492700307088578431286263900763120473213713690265882894749500167916455064249942472327162913639617840669241699396025268270175079773366337198099915421365224186774164749065538678256703277721972168666795614692431452394499373106472538758213439616586197122485425718584132381948037872398456110248797944466783633229407919286633001828013230222408265332964401108459218160563359211802949145795556869898058736553540530930219110822182822601650469220394383022117536873339862203848254910530001371972253295526463870227296393684419284541659749053330579624153578695483530197338712415778334417440696659757510289958271995103290664355658305785192441409169612590416065859723650843417768175389424134567258680051838385728934344274599271770960564335750704194705451078327704717599218044827808169734064872652627827094873651684156073064551810363830227046141788787806952894559880235257007061907934809317128556681913656978927232422335631405101687843022483559064615563565385973365619005257063090996693858941063920204212509223078943115421681020663532428378642042111672130041563597634314440947010360710763059292793905717965220323211492725804823975102090534287562406184878850466277096293733101768042973281207243467935005867113084838644706671504558829683337568263902488123272098928972543889289721357114179963354840450044346786545754797193927430879277264224346380651726778747276438628343419209458452936930302311269668887507886472674564322224761738950698366007690430905910378226401957482016375018454732748205797080805920652532026996474902271701753989873254608139991288524682207747606945799519918044855459396985392938417877870932436588018198558528153887302571211949018192871613193013108949857286079193560945128739022674182699989932867972623524839773335269894277475038968297929890572471973153136135306956499170665080935868783011893002548568247287011129660814100542382111532325629654087725107873351760453605306271771300057393147567850482610644123148449774299461888406513806534892840008302283020455956830180682974979985412685697998445493094988727932816353795420199382443692285192726603706384892714473825223873206786523553222913375399665900898642271671740338138458451052606273530458721449676949328598066543198127773566498369800614680211683194965759467134143079970662190917459125493478262599865376713408180317167945592819120424196037357681569916856933341607009770410308120614566221678880547113267307225383698168212229687989412553403035848491013669344420714575318928303936699466594737460137134613765554449610723087466366815087406444189561312220076592537382804891694635865074929498408632390068223191496095976119538417522315439289065852208098040550722171220082629644278009222723862381734660494581771262163342665748608036796880005645324045511448696711493631561730600730433528754293638447104651358217208320259511661733819296529901263510474901128640817603478667591128017674408102299437631929613122069924884827571785169865982683434267313747187728137243623893424466498595367206307306282087499760284665238763611292084158138059895911557195385217669500714417544688644943891861231486342089387713085478303035784288665589874712571270892325952024838763309360748891396531351502332955652991297259351493253384099894883744508111105415404722480449523166361498840734729548536005694900557177889098989009057749750466430446316560578328447965655702993650887039153367447506705903199867324076973070928454065925933280755504580934443362258954366088059218734969709773991166795607953427126721921510184235199054851667649000196836286347354082756797297975776788113061358392578945519073080178175817761252328329924446087982583996816567404475298264042495947674845086289639346395517973571538485365732903236324441067612099516329385350736653295470127616835639900735246732109698831336296354568588429549338295216481256624512538221912902255513427034885255249101118859990497665957449912374519923075067663906617208289228365340925807804156102118712115032094920831875854421017967239537691422521213444860804230856396024201367612074482021424418049911730874245207841591748662082026946336442304098059804883625838960913787483058983252522930728183114033570701960202567643584526633842411307687880188392309401828457935207526523153277231039613889731462224033857009715204611407394099697864585809718702729842888272030644827411502144044093073752911227330887803115830672842492632522878301522711410207270632618040366519584003183207664817280127936283423815870968987381227160902648370142371892659056301775829115276564404874014142975793992953853098210531525740491189751107358120058523621485917035094594111471998075138583300058888140050936551023237270665595389532222518477470851063453970217741866842315288402133891933577278525157267917860851955080343982178026447791867737848523521324878294503147121860132443867348550606540820111615268875550581133355762095049430505069447901185472636876109569321986715858389960030614663592821921167608823238888826685775111288411490402692396528216009253232565459012735446707508127911599903436316868856193204704068057371986702908303109268900513491318407023007083986759015090401138065885352678299376809370954909204405924197841253855472160156503949745706645009986393912788122645553142282080674490295254145222930422702013572032560207901572145506425670363159388622648021990029033639967879533203705797243069510601327736238947143303192196779617774559381821030796578763511385131979031317546496489833761334420134802840554086514514242113610856038645571048905222809785913849229020684624050645755989465279083285773241523064250088914989369731264228751151902165616593663336920649834920731972560848916421618906898584969138558484392892078315936328175343138368738880687286576772445859192450447795177237038628733573204655680126074324159452822114458398856765085744561623624377629834462267913803944567214683196621997561954812448312334927527090631251907160227351422277558261300730655321274038250560725566418488706957800666148423814173053708425045620072257583508943129399737913417231015323944924451457367383538650979872494905597531464390004307462150737678564048476525571195346533254364075211880248564833772287022961612740004926548905761185303271011599748939027722807509640540685991094898220137698793984393092249663240420690143040417652726947719356110151015164564051807739177597415285473702172065751293482410591437700301300076904068230155405663371464139520758676143641343140219108178007825448769772829055378603856459893037230094298875948782867441416956252732750236741654459701964060105397556791247901958704441027699417087487503549598667923975523656856910900705612157331825384496496119788331168748403030943183894233608189693239989870372116067309670939693983880393524939761752837065329467752918292677124990138809998798921220090210552221078153240884424570869822883066487771585627350483820919494172723825959888096075443563708680307549437511685034357077145830833863419065641575116177672623140157444438103729307035391197080075145732121734175400099329366765330325700300668507045224044084821883001826242141135047769126388148326500323728511089811972752381625379015654721294060047428272276174055607198487258098631590002407056556377153709553175386803398724101603500773077467023485867588599063552068143776880908453171674292521196020337889246016332547099250829073497610743936320749349282061766658398882802296914525364042739368446992042622130083772947644635288637616401311281908582684621708234725283504584398367842374001674627112188422870040156348806813558590021690824173774031606000226454284356658075352281920170739386657416170374346025558807453857369972419777982346781229549390240052323494149349713075598945457094749482749119123425218440725483152978910975346698867631130735253575586912962899172762878438531289332134363899438558942082188340898640969702142672993609968401213131036684153515220925081076312981377823964874860706731565535003285555883835799550940787535679094400602950317755230056529419518215555821723173742172272766388521414350293874033760874347764419150514757115909296159589876000421073695404095845239225579761698922109864386803867932894738467826126250883050614789706970550532836261952030234662970301093052687128467556707847301356877003576369143481101770483432315384342921161428650725816424916861436147506782432682490172021377709890433587673369327320108778767248434550839663747011434647481496045178458718107813189272188911277951039853957083674329351406627292336366615920201353925005174074233136975954065420204471728730506063113769726911948390185938879761216883474043413583383362052590696162516723155135020167385599460761207012590301384567493117814124748341108726037015888118632621825128277757866739936086746241440470580692930925963068357274958914312418613001996791882949417655306685512542394761754806111890338923833667169491794507957049480281698567307213892298926259466126970957022122520554035300396454051145544917889778181913731532841564123596365775920071112233061263676534863509550535258195966171335449047795445124288769096796923765881510481362378921537574096196104611799969188457360399851927895643149669788790236411612016758059189782710541034579748862648659840188936430606560900344572146002066899639852755326880988552871254882670153825568637132375238648571419585851183720430571081257317525192151479204293312571835490377719127044902286134117758098890549566214559625424161840201103610549510610563916796027368232994961135232588838879587280763620941326685290091180052005637631519827584955808306609408464862671671389752134283778650393262314063070277797344723379220144805467350890538113453580363096385308376836792451559559391721291966279406918716347512980196195535633026350552084902693161202922870907716837311701554985208340424077437069769692298310571814181911383065113589944070172168405540658583725710247291337573468159210864404623321295697281757807822364700190267965873185081140963269483634833186357060561186591689285913914150301449973556727136103829429343477823257555286257171008766352438220164045455458192052482699595511700870916920375429841533416821327856530060565469277715927448526845037037935289909214844514288501993156387962627068117257727464488446932411115083623104978264283135163984331350318111283503979975221491235026826220689797326640632204283187912646022139264305812554240425117358376911689085131518288807441271569378635888388066159007598150109313921365687019062083614195976172270654992348435478342396082413259068835981507014386460534009917418673063049316223964340525856262945234013263327902651626180350114088135990604709672026874318369449779138304573522259072599707287656540440948599482807843482387751149693207361028553211784662866449268906315490615118311761661968689278249827939333555626091460062615945040738962518289777643856002932249911248113852712128022500136278422874006497933700205561095213317458364872016217358077524654177308231626098596136412108342378563572327216064556264212551962477793973361678763371329909608816248179447133178144006174514770271033503065866449535874223127898124945968807867937534835981584211570432308777892786770037708549198839060542750058945131688528195938432126714249454936228506675058350028538108873765514588722009590870519082961523960437882747462514297763969414090593407488917885628896962621408463520854418755383090856336239193163866850288346086596650654757937207661239621598079699568528964502945014531540115283310370952092178590910245787290607640017172325471452670134643604808549404149228075152188414935353163210930440943180619717353481463482149363292871355200272218917227853224817501295998759450520360636116562200957858286788281078287584902533713291582446148155853570719381601639113401359305702981639322653347647634640654558950306872242312585627365822049009614447403333386378169447693104474579710224737732800367055089772589400319544672338572887163572596922496390070471332926990097571740168355474825164743406945375856781587864565383788862927616607619318838801141163457198188868625102070755713021692067969827505687394184817762419462587187875124160047876369572838914387972678831390695639418784536266638637042432118546280288666523131910174205629768827809827692206800575274891995395228219215034087274550577871628764344462661356983820138566945244254635562377830342418107730643589103041228031251907144777977557249532179959049210688775588180639528022468348759006140237134452205975956838124768332373181658168733676571917415232581599214915503594911112705319673326582256444026603205516444111451808496262721133005351617117591333307767268161167596433495729081208789379134264734386985457815525484368549231525641739570799043333406237848991531857617418487072350884865145185331943425687333723418127789612156741921595999919721267062128910041640331472672328544178749871184005061732220768229618951295272974832753688079303467745620283532263014883855787933665594370598947695243669924201955348931455309844666437006655389957606836289956826286112054374253408938956847001595166799585423013259635205003023440901373044377699453525683277214655642404535285483162184680460857600112928251013246651735326593020595372055079123025069595124353208808547503834696495394358579539424945418285542890554788174883530086281215157118964676485919652467510328397797581065764935233466981355225430436227095313399564887843732657142374671725563364682113657145988803121612360033631972186587768973227976633099393401417455770945304201529023692558946266088534032424627039448669169695592092717013774051125481678966676857580730480205377848055095642235745503027081449548413558322577885680691957932906896550047718565446531549877487827356346782298624575009303959203853671155888660863914078439258625011384366329481352640425422570187423100094297353098567591235918504983314194272940819851055199394314674015111100534515091760173633110202752015708303178033308223628902226879863818875090710526653726229478197116896436715850590581359123719831627766865715401944217723521952496192385637522656811218808659846075049262042133077982453892133874760845982944553935369785773208646396443370704796676943126148278731627776831468441758395954251255153643966003645450410711791094879546686139355758677784605134913874371228099596743532926628567557749644677981738312042714249532735058972216124796980189144697404390917202886432111110969894316479477776234401575443815571991367304859272939545520975094363886687161294783630157724176669110487265967917862816168817227609604855925502888574904082762069035684694827278470174172365200069738055260313471560437579366505182373866739058277365379621774552959713972405073992843210289023138752048264521704990867474753337839154700358321667107899767570276483631642014012237583944264243396754159096726747501556857071742378273371891661965941565307976337566642757738086173721785770679462971931027669323453564244084369844468742381244803610656503615955038574116181739053069801711218038547856810761115966708977152750440391815876340848057482302180006510252778640016592421409091130361070286305757356932085820707285145090847459162207262152616396288938472012728779427360600480785208165947468663845127933717047463095527448656361249758615954272469084165011694462997486948999243185101864739185403272793413763236768827917399028057562343586051393651143398635236485631172602422918910389731033406627601809276520787736346122415108994411913305130471256677375374903698140112679592883288420371270264989663545470403490257163068498785079164374340767201263156171521078444554601351220847442191159513075045134485884520840775671243396081782461900477920846030874850276983843008556781687200023402524930226389786431084373945196951529152928764478672359492677868430165172561725480073564884302283944452077546194829715311745103940503724554992579240009193348071857842207974124617832942777427551983642931257714195602976705491214540042050372237880537638778112480806380559887774711720846581516870925773634544958849539643104465743401713764811813088736926591645238735824995014673004597948401005322098602683495902280234672500083475081532555586427444506771847538137515268225665730471863627632963314363373207032581802220984725253616118353581192769171901159939109731438442584406587494724548314924608707838156463031989902900978273051408420881513794080569636403766477084802237840065225151868767283076396514431806739904685272532355660291722526427275793195176651599558689811962266706446961354225479981714976879964390807591563752403013881975858784093770785485987434848944478422992839556050478532480727735310696973522039199813676559103872716648299614342230975340231705269800442811097837037772211558810677331515712621675469218272717129578716618699634176028893656265827488088627671579752733056495498466045803819718236939284611780972110634886409443353734598844231674743322130115282962923837967526334379402761243251437233375872792620156949439106336377328133504145364307945614196132053545694939152346286145998097719475923764142092652552110263083466706858920603130942024355587114704578679161747689520739480603561203603432713274040985955420590311948639243053446196271378326194098872934531720635062045934650600600289753152828633799092481251824832806991361712691389772742651478552012406011259711017381618312501491579823668578439080085102900859987460818578177372908413345855573777254815894670465630066268990515324473781264318936953491460952924993232466260972284384296094820572898294821171691537449400463546843025937459706601624632859787685719237976234494034382473496187009142212520157101935407785900911873170754403893075278967331838775115589409412715968806447616045893049173140647611802774166585779292593390884897316840587812028536401911282899271084489834994732181008237083873875335297810632743954563912321069225005939458282137624317539028297515018867450635843402069452393116487489163682530386004327517702872994068164294346837964430127312226970053198518745666696868174435370805316827187004126527299737545772988436877116215373199842677431555400895258523873821534794251881117607659463348816689636818666683586421583830660850759706177175066054677358046408405264965746579375130438776496692591795569294745734753692199826407201434508276313857312558725825332170818451902507928363885955716391678046496986409649484519177610808644361220425219118479967006778316047485579403868122063942311366561233837145555765670000843623704993123291012641426608934953986635553262248662963065809794074883257953341734051103389925770703620292648760397404915965272939185739353729720049221655753065165209494607679784158500557129851264108227621027766029421117526112283046362993339124121578856808949997556736184152962057127606310559904621178985155313367856520786744812998849869968612648986325194042639495987257589127438127577670791621934365976081676680274734265599572287043519952305865928278557012015038285832138281706272798445986375833889564626964924904256922417660489222552142832380363504818998629037276089980419468181874193158184617536954450133943858980832001185155580219157102683622944250460728622501280432486625163013211875129268291216873418337786348776295512576791071338239261569753533218653978725253778568273043696480146453875719567555256447170354194998614991490304098358412771821026425996620489156850973215426497459869638143148751528146558399341901810802728128975304143795747536937258955223581146188752719651506631962669892470854212204365071481715190214226725710918064648789273738808994001829276628389771996844850293181918249169248051945742001028119185264622367385947708232973367667133984777076002272857228855311563033523933193060035204553786395451598215486068903619338929576189968650146291935854786152178995204301459071371830396046587736955248089318561145405533317237663818525510132144223998724315344111890180397351354515149105421755364117909092970910247752968839689527958595172282472613829204276656900523746638799895064525087236443785620725193517858759442237976377634457576504456156060521531926838605516929451753812759562567253924074059264878268183518863506147661230971929513810862725531392078650994226693133916009995717699460221441841428801434211621230912262659385720045833209175413774305034297041782322362374520574752974147897213885582037048991727369772507520951239868161261939387274181498837370398494837298196259266477086050907342569899985525554903192196797709208999530982574142788690599992123403742534488237407597949343316503028574055509642161515993665765730329756323669480346903968492688855750125635395497235829984177821983918784137136441808209492853226160919719390003246541992742485718330407600486523684435242817379641348422664719992302332955279511050042494878874439256177675937502919357576905422421220007648014010441309184128071041078434823556020378606434920672612464069337769576574124316542170805518774059174972838760542486327322366650587589777156466289681647730949008472623355665042359797625390686485458850332118528584389923601901160481467050855399478519934393485071049935234058417385985108962106358474470408183389285858034278608761050585355075573609618460352855156995474999698525721472416119439025303001103127818490010510339256033560232560304081900652874081345374548142783939045554626118841295595310319867980341968250019156973617575966915404965831106878880655523834128519665256458472519607567758682413028787649224989955123049982645132681220863868255717452880693204291839690740413360444273700064070944222643715965694299515000897116152702349732137179411359997081726374106893308942245267153731642161831621311016483985887296504218567100278790003426049638335030558085826220841083627942190547125956393127621325175752939607315438332264204790178218822622076621919948772853491522509198380400503368621465985261305968447949828697959573913289005038275760087582173417150083816807900911070268927128219361255477543369174408392174338452460942892494138571223501158251459786736895290898611349358644709651925585483970598091906957888794711781180149026909974815485316332197602445866362290127787149260786522859109814669037953675415484928452658824180886147680852314593861584157586017424619167462580084353964786361004418037041594195886839595144649443168861178837645888961687057932499004621124115787379170914480090812376768890846596505356663276503383225048181104924952121131239526623681545187959288541925441591514650645225032822178053361899428513729092110136945235988517588789086877256183833516809605738275810770668703125170868164941739373941539450116507366603011216296000100067717976016870712525477329839945866761976669112865538522950753300767287265271393746441159714807169231120290456860228889408668572771193475813471459415464316905953990420960167917660064022383557022725138873555400943564789376786466019380168242825741063468888741472763656204622967296599884277896531598360796424627311541110387556792522909984966822526065076499517114832184305694496403255456169394998747845846471126183415364341191064470202867980291389189063613306848069832394392764675621183649756747934603198784708393836865409200147713422967033293671187713500268889764172125299015575367453822488505174188211615594298733910728627109769736975448398719511326897545898584872800147158281610571788621902615632044698773097695865652836715783662779723627372478027029660833362055402379126168375520358205749399703077993980684117765715550844908414976388505302960229967369406064133251153822927020408988103296951134054240251322978867788501950204058081041686853083451114762078880433943385994489112794250571095679764577792856881326508754528940052924409565757132110327135640519863195539086641416458051198754976074965631960083189632473572085754317176653174155307377848728698742437095425234232445750851391986335542568599711623291691835843645654676069046391125812699761122829886012870207937469598394762292782879484376937404583044462132901892630083640100543292180444223886890182711912305051777445578408089965557947350557391750607675520951922097678755350751595298231447348165059884297507589959174920095477863510519580848974053318220045018907626958307078672101851295904987562097418167533827249526745005083870217388335243264076654587131061863974609838696497833016934282348568616303631268272297836147773944383376468309028924978408503318157770185259738265733674762026312419859037764735667949958491362914444730294009028941502784079580726303524513007079771022786677486102009627315727162078734352754365583893743239663340770358715247772498364269517118223832836672973806346737494054130218031964646818947729381382979254607905955739095915646673250283009431999993771025473947115886511357029012357696100322414011581777624122365422710113076465511079827300083496814248986748267555946920343921143233916250822821875363830958878152697320930911237269451228895472101723631784591216926038759051420655411376174816599879591830671660147339726487275180540902339739693406290105386180232725964775183344787648612243283936234622471656431066040955996650005893878445488852892443546673052212719270554868375967695543544746773620815298938103604067694561171929575150626885360660813194869504958811775180227485455323133523873671990565375655427890007575953746428297226757472189012655604093741282087296132049497555918453365489768604199751295936203176103759059183216970978410273728114207920502332726654072044591639503831592842554866018995283580707596348744451608525592172962535661568273818460928242128857271494634819219307957329473199031754318584669703172657525802044394242555017191933318140058604830536567388018097286970936275198344173526734140699669206156287906726261969582605019779747996045911097971203353891360170489457884599628433505412938804409104471382635838224263173979290881558402127286163949585969317979563467096710368415810150656503346924324155059876829133521042386103966391442634471086751008325913256589703729669973924668211474201904847281384431046177775271664077540456900461530647252009405317275733219306979212092784017132130942787746372159560027614776245794516554417205887619644625108345235920823142779910285234355939300476744401064789379392216536843893829245227959844202395542614414854230451191937631607097293252661680729936814712367076616128464569550959721467969566939169510834351137186963522841736830179159882757149165370424981376351808290265000211606196484957261175279801366781258313094021151233679563883711116991670110208705746396495540946931117214479586746567153679171413087681557944462370525691369787849362277904553100363220971095323353105503571295460688320856253064384106637270535141257572758658793033549849522965711376887683520100021056734237268539940069049863880878104513963257210942472383648454860346710406291601667947816424424341227241358105918777478302890125647000359783920913133904260426563229594464701665541666748154424084836211682420604823104773796212263364848086150570647709479988385596378739177231565398682974670507042496393534554507198985430447807287467269483958046414953649675924521962274858373006631564210524294213759567895658208566746656313303537360206159943081870008134136243837609260706172861393657426654049974058161712911475752694152251541561286944561260537941236249234190538726291064504372534263249043426800044614378537240150045571537776595432198426974405382990055273906874823268425285572429068272850628731857479580025524975989441102936564792027134185814049676573091493167147124445034158906250425320701178367297955611249088534762548984283164218626785104718308810099904620280157973479762042486016509890235646552811333944571566516541760311277921596775389794803316170283706439196378130535969390345891017521579672629479067478978200100408697720012224511098383299774046098410874978489759613750521412765521460276045057386410158347005048815520734712570519952510321329371162491041997093770511228014632370629544938693277126701746129744253744517008927000271535633480044288896780980884199979685585976198918596722366123655805060151964151309566503970608602289679068541835456823812450708238305906025946217013690458188517753858145854931460211773749606479604613180712498953625979287235901537989830256526118558037907343873523459010472708458929393685505769370661689824154797232784430926942142361938229952056779910723499302018697728769817410007427584887267702908454587968496342450882151558268016212326468397225702058607243727311148870567195591403380343885925621896493736665907894808727375095536321043399260824226562289973301054418401691001880763620125318648248640544063651283056179264251532468835583814823907966017080988654831695968144749313106772630312885514269108717377904990030190005376724385072643124164546521036832920809597457294213177339055991003688858379431226920711027840544715486187594311654681148323060378447094259156498853454812050317334288671191875081831096596533088480420218655890723562598165140120410519226924693342638258067613990570922816804811110782833497332246601864834582064203583365869485130724654215991852593917435851942683462314209953838921970065976080428063921048893689836629558436180457162121439330364090722290537398394704858816827292599144070798982986710984280988968741685938205541165167393170107832240697652080223738733795479656385116996615498545315733324711855231956723607618708441211432904661362137644108674160721612998622165150423685125902697211306102132763663296611299626564349936299630573465048384108724461499182426837181541490987335001236611985634644757490327413978244143345653810584790047957017646771692200586977791992114798361349022482812150279385616851241562704316170620032152346552097879896498537482633787977424336935090054480766617305002350627036285706900233262925809524460593272666824916676992177600201236510380484865820753805062379003512436738294311454388854063950313316237499292905303694375828767617055639607879676366741042491954567074592047730193515256021924370768574993514711714213992682174561477581097124700599982851140954501053516563758819989058299464845493228069989922708655107464893545051665220583779814153874789853566050690766389698407450759996860132956098000081568749380594720894737938191261500446448053522588643129846846076507508863915528127453789041377133907414760574536901168146670415490539812103578147632031507298924110184593212366299738922591659720416194289064864357369783714835601924167383846744798617015454057425615891570213403590637018224455949943045224315583158417091361503203357873338715579170634625252260676197164982529939878544022219973014827419145182397077149945478055430575441639018092906070926706755314595021422940988669246100322516576013957243304155769774701055041219804734386786096886260356126894949392611115222846103483311375945134713857966353983397411591034848269708824611742714686637698759273965030149304328743014676131752763401478584798964543170072398940138435732278872334888305214822564070311008699513961028954143360018484349001315948655696973870276497316791864956715356831403921876550082738490616844780779187948597554899738567460256362160024580702066092876421795930665308859746265573955891695032450283486072738855943270763801221913041794558466561796285907023117945647255036432765979758723800132771448448216936692501677404313898452321798675848362887828214293105599133661975979672248871655259522090293682515547335292098520474880139586064138364404459657814268667279835363594278908154636107945083402588817274827008406212585665026606333150020335102655840848832076211810989207073531688151704394148825623365069034261813967210259369626498598153466770804850961367021969089126509651706052710263155147702279963620801784248450862608012507664690093390333799965181053671805723097286984581958258844431700178052791684181569765841179894102863920631185209262284060502224387188805778994096983432869495250508861484034872234144274594581435450783012962282629215258233305665284056155833162291276665676167775147109529852415906018371897911550384589813549699645915351665371921008783736154573556713017898595574090363553681477705130982962059710944748350042549935665447483632318493375866622595233981855299123055647082122278434384493321233504161932105605094485242106966118602406919956794074811410467959036461348509269880291929775546782815556178844343021434021180867351705909680975574918554468312285781869759935615451661730877530246561890540903325290924575799018495997626867724015113911712469975494945088621524416610962674537219484292493806337044478638016585124745883846829784871327824660733047136276657840019769136356316106150137254005668757108156599829935710190185378616971504529687521228446231297854731196112617444755369423063105587765808618806732547989412818878918847860494209340021528894606079557973687155819402589250705136983869000702532764701849824657616936637707405140576228281870061496829308057697213548944488888366568947653918019455874954128705913490813572695854894880434719505964648731391629487661624301577939252370190426760566644832795075731636868671249114507084684073853485123463490777038102586888308415548647366500178357120257343446707224607379232328974746980995515247827147867775186847396271162747745286764877896290712297751313917151146808293391995062606692910389764718228598180986966446305782774212127737043760542682207896274950030018379883931283011229885713907518489317946156905961975350554357308622913699198231551738154565880298652607313872048650783135484130356927698079298932567462128966476704717813094141345392517628585886837695253959004854809506260103169936196976969455944188029806152260187700542932841432405174018282083957485325719670641692517981770218328107819674594101185383307060390939069591781329125795878311027215583576083894258745540440390112876078185230451303998066483831119424763008819166867330771355529981907144671460760217285133491025350158667033008721135978842471128897748417010493948310208670000995315213503335050025796568004449785732623054780253621942418484954884523785475698557020245080225022497474149062343667168022898369603311937132949555641273454218174053398888579989609135115414738514369197682574612928516187246271976811168234529784553689187137189163792312805554974914889024517352716466947269506428763664266905824794708100675320861304020381197750255800744811770105796850221559272460513767597813631576251164340848377833734542382657329755099397940726820319882429193740458645045155182377592680880310618281391882537709176175842072559506741271790956933047270291565708883789297590672217580611496681321146158725682057998521218968601995001672923921070961163710361434094944703127931898607474141441545731025631988207522717099293670507318841251028306488499752017026606983478318604492093489096988414202298147987048019228806941401853527912503608101098453930572521678301753402884531412119132798477319934876238357601490914900506643913342183430236540809415617879457381632834668020933546269264221444506260094593458430422890329492969633049180857273407451816987002253878304029906504110428700766679636227479280102193874624702647027408486952435113343672674491133515150890037223949919929756135311816981121166335733118338993249720019635423941050974014284828505059504058798195053854870041640123158223648858832830236473983098164201357066603173350749759710549658537949823059065869624906070645442196106616543344470069250284995689073787962736872048506729383130053800090677307235414827131552431846679036850232975693907789162779007852766308071305227690284231679286678008391157074605717460271056960127829566789979152535238426240328296875340308218443488591701505082790111626540468521267988286461193820175888643526999300295558717013107287018736397063710851803053791316103311519617591709191653149677772115427566318881525095025498076325688644435762646602450580943913200447868679256071687895936955883491548776174637577269525233606229445503359932927734578080816617699282409742594780747825723290354004809844429245067321606155763401967492273172983498529895929697389551451078872759240243329638874249282006063196745429989489817325314360919347612133083864942548856178883650021842316260751539499355235790957647806422814850258222844649187276420895665693705724500976007962218606384728488778649984904655115136935735880162438611930506200932264953540152727924813793201124664895019783116827020106269296181723237254321945468736848777026321602390630342655980146730886755755009323016904114557924368981707145980137867952976873682430693527919089481749102979078410338266687092892933887315972572231039781591292942240436894809606815279423541451297846448255482181600820379681683701165322410318145676569738864975749932087345025395003532404085023899869656666927713084585233428756321242726762035774630004777798044705907338338255628854141524984054157703280604753367160012017754958851995234376312101566119573286244656248258761115887556850920153927016352403330728378852959206657406162213394217096983240847976347016928464021592858161712222447152171138831121362146760692554813779371837699329821335309068885367191329882619127440224940180608551778032460025764505519793212385710550771585355923146289679460502891300806898777250549823175813765996256545303060723410438185109344616099651297117752833552715206627735774807362842826502242610808277592795541460170015458523799642961006314216460899919880456498606341195168404138428082564396350123236541623741479959976179440118452368836691828546600451548167597019939138994253067939630009400060081325421072226676554021104526246610539212961659240076418009717906444866140940274131915348314426470924040640131137582137065041391002219103286308161558257398274892553816324650290757969036300729277713189822045441088286467536943095292504901594315790038433916343245670544277148360883122296909157436149765455453599725880854791424502300385515233616004023855657750430721584379547533946794346773504785795759378264376625180549561021033373423506875195974544979779468292772049820626451075098277470488354170759287241999824658779288738337251152052623945450334665530909803250639088488714646937657730285499013700212484754831617353680204260562319604029510478361213288785324513927811850928621994160666609426191043128606111240108090118509101132780639803517062413750923040388734190293989068710187245942392874937139725945350176987158412578409055268126806257033149807061284470223130627778090281181195418871749842272206562676595452408558263238800473918482420530188828799570445303803102699743000566203034632173048719987159430869239697965027201309682112687118130231753702275078153574479419124001595852683461414483266659320911755764797929658656083362087485536115628614550763851357769546527338994533098388355696827609984181739188380104087224514933319020944144916285169623733873920524175784512978430482799621123914613803407900761432843722732009870740260575523721533695700523667412769365926323342716547404849445167984491671119117145922250058291239796477671023333500409090096406157379330251574027222771793784304586273292566561612831944618387302916903012456442970518544001491660980658658170289574063962933915991942655677701378351488562800844213396991971438067861013626900359600319861509841634743958043542560450282478284621385921503378539438230239427118803930213030633912845193938553703142978946948763675141098101240414557550063615351997658386422316155848140244603375497873167756103274515764901318892931988258276880026745245978566156740582112163749605550810101271362063614865469065129704283311722795293415159174798317578293643375882894776185705268440423032558235581024709099922813301845538076271913099115645599208278698211468640020295128300968629611749058361545661780141906670758236626382571451302275482833969040814617307114386036986621837029818650382910749806567386085231740133935390124373843231366527306419120990104297236040637159868584078419464833436659271881819408702678077506569095157211619337146201252029073325061909939502450120449061158747487802934726403535359067412330691163391194632353477916440718571325988981563628554173247642348017000526987124301600426756620838080312627457181544702304145897128189401250011207496105761537665177820887481840342751729355771178996972063892948364476216844796336130226358790153404094911225630146768137650537455528995282530410280290980810869173582737520535464536998096907730221297074751380254509365564040992704009798856535554886217084018727117166868676116258693239616998974739905562324557287891954624013140078548282960233225015062062462005923418166799122280733750358723440837843786312567963918464151776237073019120286231675334505226553972994147842022961266812868657898714458600077385612522283823904822701869105159427477180948308284627063347779606876798762224658961860774747009606894720886376738792220306723557364817649209053521703871038950056624013724627736227563192641824600310300256431063408433097775128337776860752429185808144949481670720314784160155786097754800779842001464546074473468551661525009302062990412662206361115853053798770305081165431988977112425470534878663317989438289981387447144341240519436281964565637372436237265710873557805752991652116437620773282422960088572378906709667090564705548787578266199067335112177599093771683134656092051360211087702385454756458671603187959401380375519974069111594652925078600289320754870571799376131312361139495341119907463806509604917132372826910413139980111793510696455808300616994392365901714058416822054927679025484235594320281307504881035081191682170650876040488634734899728663651081896951137166520392940042069823813195048770628860744465806347840316757444395214631195127763137939704659851311629773850480755255673263779615409289298678712788870398314094649039072783138675475731378319404216345087955596647719460817424931813823543929959769547459725982788937210157191974498084444438451664538695261928789539304329114654960574728142245865433473327533622253814444336846669798911256645767282176215945236474709010953128320142915726950075310193685000664060564101236295936313340113601759174555763585995725972165241672764453237446851245856174171439238792099437030845249061080213639834220594105379201825440674880466802325900790134319686743123280247558766216273898998431417567635758748952143558657660993333852033130180673051034806793984447835542173593376850978676001333360174860999330044163528217903963532687592020217221846432705454702291891789796307645994407813202572848153042286695083448463554062532212653618753742205161158219155644445549183632992076745323527844169797291353304095357025879945979951452867438562448779923187958516423110316650076485710990411092444730749179174567568574509588163301303398393112551657145805129958133766491885846596147914397408542689744526120393214229632134650541303128098013760718638162817349503118790270416933152265451949263144197558439392090644190327783137584701536928764835240938491849750843120586603431770374872438486152956432994885535036476221831758673660030859686869476559304221787457738920601340694860714983763878770652344415120680553451589746945114851645350043279383597265706599705649595663737890221936894305505633030169695727937480480503064387669960793820862711517255853302419387375427220886155555912150654401658180893508652007593763951563234371758407842714115819080047024889977140663945587220251492473963079066968331205194266031724282436893805686394531279864572583250926818632095096583554310281267676723967553954667812553513098811501261072582536704421151893106323100253623693158397037668634735516071308797219718992275702268249562318336006090935683549913872861785161553940411753066236771413944444231022067333230629051971474499349906580154969858255257734685807083209069251154614627769981123856395426559068525308977499520594182226436460447612094203211787089088876641167869045937662992434423160769755924583841286570645921703157199332104508616621776934178397778381623780456474122490706467665129871256579481512661561795308598310028556065154710155310404139302197960887888533310656145103784050046318653256384966629173843781819678808089200832915724179682714268913886750827721020342710154354450350515907408810924507506205754490345666587378157542907800097802751120195962041551786425570894441765575023672973357863503063425467657702650169098130863942090745634611958846426545645783902553008114748790917976084535462505331729498126516232245644005749027353408386941774042660937406801297539893285940957270944664652568443419536669473779448185368563680068760730343398694115437895301740513599567078892520020691641337287886266604035509711233191663595468583761229296880996919238021001013359141962894464710074493405287830316375374269742428178845940024192641163438159165792760123169692178445934467182506738987624762137509712346795663687676368771875401036222272108356306260557278306768990924766434382639574532786426277293445803196783711565497373533133928448920157767566869077319721366833626982585211376907207337705783209037702700455624240563092881965801617001674430352738111729027708710683612769592848495101164221759618273879754301654337504319815084991250692816567519147086456290394321350464090326695612628429500682103280609788986895990656909870904449981295662758523522392076431090347340700987607312175490747116482251881028602276848376197844058538103077844073472357843213510089251982467464056972093168909013656795186244707847718835353318346470889881614044790553362718445221398797377180883609695119142523162535791709575529394925688503317728534855567195311382311212289634255822295841372598377588347791591394709184153125054450204574585906352142656290496286653917979144891055204090140742474561999698392953124798222667458276008838765755586169623647321520012015328570413887036260662954496373765450514190524424535389184317195511508999318759629262780561333463603192333471005311824662027729431447751229878099478144843202525643203777926815488579064612052845466119930892170354598301949489257157914869926370016167927923052652829474386821437749959382210883766100785957772042489275536553935446951827857201775938759182155790978837506640502831145474518831457166676046585183821036682957502933969642269439979142702956038216102250133557712691712297246812669552441939034316478811032956790573729357187818196718462506869372805947879499311068214433764497017736769305658689425636729594408752984858035451425268720830206660493259645917127148274600358862615526343500825905493760785288078347445557738313270068473069802844059234484287933642746610653043361329360511919075188876339851814522926383196456983905898753169444601165233411818876245946097819839104930724739370773173337891822904605478618327242042030806034796131084439906254701487957803964163784004918275789445924221568509618882060862616295740951336822376883639013642427350999394320335922219715004391750121626076157190032542229051277191381228390933516567457866323554264419578772684444967003087786929994881941680132524746519869484829306083629497005564729858528976110321698030944979383103605288535511747484595799090388193542481670517911123118008306024627894936128361795171930028315930148885049601128904389244638032487111529565444730198270949599086011691969168207839733378399644406571492478872405670235752106922669925899714649423801795557629405145971966589916811753722415539331790865974888691642011247973803772278833654308764732141868914467083977155315779541901034823419318838442876566814998561130063718022687483710685770381630039171146423939124221184228743390182316615102915207042740409209329111232344579507261143433161585606171585992888088272838475362812547408264271205450185680443490080848143601098180248990432055176987433275241998811278498801225408880946562210614813894666050444985024458047811676104597191076420975200448303394066737534161541004961109378341400376412612293669149487225585566923926252064306418257470946528523334463262626276191376044365939718765889500276692396940858264132075488144524369759050311707777044263397621683389947878256490414390400010457187529342038855966356603851081054182866289262987777258919147168489806657280182843376751847971260513736528505972810655162876646485461166379265764449192223807130871853941295935670434519447419519182157641554417501592646545085204732144691502016432925200957675376214854076951370845263203915717814915626606395031550224597468511253756299409933550927490153819214484214291370424927274474244352283142747127734217466135374407559388416925831022487798008108197967894430385842778758398973076639517073688773666546144243877944508496477854242722749702106498861226713178454666369650630046155310009947892098162100406068233083569556903047252253710418142251787909550919560840083487815234055025321454266869311483409436518342675108488093931398432052837429359711567163136590855739669673945585928797480009172472584035363528844945181338694158025181856327042636019537440720785048008850576162813521770271675245894320942497624474482481059025006013691157621875628887080842071256742555016274468996495704673436292910324359933469277992230438300044770127297278552183474609931913155984404625461465470873427852423613371463048914552992747871951846676846230900286780061738331171060728827421039690423784310540949178672143785736472003436113501683760838587195017410208170407825078079564755365942168373727337253571254532534332919189464749924076194970913204653535367756864124103225251614986602627376997404122730918338441690514390506699493565417162484137475981305451844441496292249693535412670718304023449839513278809750807191368325238490656013709278965015124574001826738427040602327752803452826594227582278534516122204937999998047933431661269316910713936508872467440954854823749878706733759947939288516813355172506789892492809410224128798126323712994687605594485345245912676149439681457016782707534803441605173993095207343352424358803851360945955052798962814251445062136744082523671070390434650638083736824148003325619371300334504515275840894567127303534904182869922110774640544007287923673122023263475227884165361196803135278136512486740192998480592419645961895383355803331014710970970404751391044718547850911776093345112803342341932003537148678191710215796208941149582644709008451188356432069899930411727205150803075299516475740937312243454205127210375822550266152954305536897859072668733924720106300126218336626778072289570694864788014177448930519489990064554337012952800738857468201943063734332725126346339302543641299895076995155824984026885262555942120312735299898836989705623136849855445413132194235515164969401307811400527969100545807117804770787183783659097780885977844805783792477506209266133176976190877374664518779699392896409752220169929064224717246521944914793421507877685760957628965115617119174008948731960740511556640794052938663553843342956559630724723468908477566697422427888639886438712298650303061428326229644025526569535751364814088209880173243262284788457549825092122802723020286076590792138470477944393934941942945686623413385407442691172819977787025128076344677776231468857906655475551292379020905286093012997520885751479888245025525747540575737695960621501079577836185084622082332971337868547831651758912219169623831249141209179353079996021994206463681467828017981843019287974408832587498987088648330357970829622259952027176900051104352911152617436331041062194959573220528895641061814807412994616576056423833754638130328132228249885186576461169478846722019606985321424471181111913133118547489566430988642109604740539283277610455257529359789119950636135764959247382258149385766581504375141751232405680568794638174644420835060758538776289743223271296423163815171971127361124393500039467284592677301169721047876163943982143267766860572540441357219008618296754335482320975609387754851307028875311972771984323858101901691950714835523715428353466340149758586380786861767008015255000060905601482379452361916473743932054109636485932447419436872311796780672224571548751740882285106940663472433331943270348375583900046889019536048927053693510951074879133367278855364793522741640608540133282405482073192018892299115894360487075487384035703634822658429498006137391322862909076564601880537505498530516693504683767055765521362858706802828764153372254893642217249487807262352500028682582074714196500111916159701661316283663030227762527435083586995113506975700997956341071117178869596463385456124973211837714803245731198317161624535734833926895005104143532721609594519216413735653707075114004800643349341742130887856060467006559666610492732166370087064726000251240389947853053218227108133863978510184036985999734020247492788100695656803874083047674611474024886537955697785581514162553776529368752384976220090617216368975759750829424711296886456000956076868168032151002789463859642354200343685497056758607444916636740352924925619990218075583892309153700304754057341293190025589904170602566440071482767530262589302361385089295374823353786018337250120223568991276549651757425156129287415934829304532803601744572393824587036260565586870038578071980972527702214093193092324274361390715451561505869343678543275638620560161279198327415706853796473142011944014969932140845860851959695590495783095641832615772002521989303570215107918572480690731716068635868602696613500058973334905857010732857732390857681411978049079588041264193862052100683615429368752100365938937156683508187589589199659288786729711845244425308289204462920377954956856054386640825127313603421524817016461058630427490427368486417375308150992474284796996390773948997591954455237970075551569545288676430025976403058063267358400941163034266870701163946716483608371210827701587673935176882646802512660597822235273521602066138600601766024020673097134629107180203669571063698276025803020679089668035254677106475501107955570076549205162989991149615443089443409413692147888793193644276123713486346150376417654125715992324176804046839637117831697122157376910759930316798147968394916567282185688046777145900799796865963529826398781094035881504935215969238118857145092088341899089594962691402064953530761560796922570925000660029975338722493885763764305669310561406267578541240554219879301180249284406626415179442116742300711751886394867843829862569917738637837343407201523139700379101216869915162893732183083761825270077247026947882511361256568685335174398819141940614608789433379702919068280476195709789554209466917362181025809194682223140860906321176844754710957965856592919255754647244213769795973187907579962586510295596341181696886662577663576666132770503053654021325873120271076721685558057230438603722925469960641300857735165955319526142317666728076980800587040445955777053884899943336856985160174109410952176400544193666818239185464263366812800115148549962914400306300200347583996584692319751043319986286250188414738245179220663371474476929326068790512444313262290213122590244529142656747878033514046770063547089961477039086136984669299984724539344241625349637265280406889826237354218140512035845722504747846959347752359442901143299118849513343630170843380475939987293616543977926888455942561653013757390905317545471949284685521588099960146067865609139195310395677127995118197088390946599311855246066318416450069108888389617630728489236413230663874961019312388777999593619396021254569480642173739795079620867834557791841561712800758685140285819840172939637748689740334018332107607215722974288429674567136443799834091998812482434854586188607033881627698273553909611869202547153262340024363982734242564359637907342218167867396911047073861396583335325684586175416803595153880310257456155697018179330732962468716785635492961176120359189919322749086319291808333022306088880853229817776725361271413361103412981479746102729856465847429767904478675818747460941143024714772825220421443254244032067204830254083134611876510753407987563348481652666351844913094816383421754143391612503342308388842558694393730552014556235704337841145041090370587248397773478603288661560291859459636887777195453364635171384862093167217301190595941673823250936020609779992439890179489460515638774151772075428427936949404320527541916046465264775221236374392458377544262637969114177222304344607334225865584777551003924090202660785991854649157125912862355092027079120269672897419016775924244094513820120297544958831674272667519032674701014932679794665027061910408691368202191371233427841816640063770953542297370161749794203474540466249717213302074880550964774659592874660356707892778339954459633399997461942691238084657248098150213037300582962637110542208978974858748142353312040042023865978595824530924363652248301834314519641241186253714123620557849684338231121686652624103960216032726729397480761752901717015892694316883723751683682255284757057306390591549037456607867683280467799538138075694799283839562159960423974053307117765754102725921650244946541242965032831824072834669327919885561644410759493836688897589327799741874687066837163093479977148758130891848117274796931753130978299572646302915856693706914575913302219352311985847603090284336292503663490619974050625333392912036396212612371237406219397453129536692464531516841865870721882532265879080040717528578310852263857163754686468124095142294472543954252303113241551595033530580456520151405491045914776636020230216665666701068433324409635566841292774359548142275238496729973110240842491100029886189485787375061849104473582737157020843922729675675063648029223956859051346388233806049823276619311068033194614463558819893892324726711568540284355674361974083367775792152759984479473071618315283466785474673932253140567707375318249812117113488111910213175736959447425504132891942971327936555702616368284269472715829387342414109798560787102511938093786673653208663461442525571645656903429442523958436651489476042433240948977231970949119548648941948072603434071566498777373848165544191861824605078098435383474353187193373487328888996162774418421916642949151008520539307790169492845876655699575685961807696491093834485226490063134369968694158376371747505826730309735154712744422397124822400350384360169866022231294708156490178541824576390176282505184079626199933817125485629263566279106803653359941627910367409841394649853483076641036413424862754194631378808993495547914775549833105255489211272545942291101038035671426984270460291228847420625936452008341488877341879220837079037982436302468018126753088704416062186664037646505786507056301798127302257890245981911104170282820049534899498582709989211544029675042235658773645258347074427867353008593237995873167664346522173767482145115737520554027826762442362354055521250347035808683748878897175172944561148044111833021327909471377725892034050977727438418692914830010202676024264451974067605109746969438341526984005848979685730736295542794681841851031688451669345075024127922804032339067378557912588452159096578385569894786458548678370367891903188644391233339667723441429045543484804501970782196318552010525903341585505483013405879412646049078721361769475977169270717401644639865766322231782496171209843974245428649689387635767979021707872359483156207755046886740254660797560309736489927506500338708924205961524177057403260614791855779668808652223612198136610678121553882423198504541517770165585730965311295213629773612364790083994779561874811250835800466729455250643897804745384595677601717883050475116125291876968588330875088404297312365758236001624021986891121471419322958521617118000685230884741523324751733061967220635576162855703407141430922278946650235659793398971811072133137015452585053841672017178370296576417992003908501258513848285245229578801134409636485761721589562547385176055303108515110442126630534706121245515987464593702943030713852778052261235359820577548753378534086837568550315467750070459552234131194415786820979454224517645758494367408262007449185654498440786608658111586711462881911383309613041140197902318653771949467126240335401118469249314919211273940571553926346326369495593509883981680185500090395432128461410549334184903780378029710966971797571201151640684336681159616006633999683912239031972124351880129397992332964087429929332168553753428054906921535546581083261086878230704353147420471287051178765836518071704368460804957834266424117295363680219313180263653600077935516830573819863036633834640324865739422347064638913613401215682089914563031755702699574355782444287746102225644402628462072368912081924090490026725696262036228538037033805050293788133669247986870353609806459509047928779215498748115814777376940718656968174877600758239320799856609330363022928865215119196146044359690657463301530300930096692110769028006679013100542874702827998106752948387366681263635719994152383446002358832434874584826605503678749780451866483397253610316947153801043351341498626399254683430307315828727191399230694026040851251523887180626862708025467563736789420413516226132926433503861465495036564730128141236182689955819960536640581047851724115840367840867852196901072468353614507944994547273450085865284359043486488208370964458224878288266485938027394018110620131093046620599792896168955079911487746170644655959328639686867049350717683715074397670380347437483551264520357629068577599819251704535654967653199724852218495177934441318216840025962751880588080087139204245169943883333160035651612396650864447885079651241597579947663201828239239995355283904771191415100828622067056835037591969894381431377729833337411813395294076322380344821381719730165616737738699163027589177427003700645402688349245974463859724821699995305902702806799577097884809032832693100384775836227498651393004439404891478783291387300773885732015507094821320614016126674678975542110708138044372475960653916222898303114909920176618815132847118081419064152720876090569149208819534627536968866776374695664522972892611991950564917091779487662364722693973796214408648393250620235626616155359388436524376909101575288878073971952500586562551470460638707580142603798944077539095275940478155334852350969497054989196594937570441875777536924836687203606397648997236486582687359612685041012346987596645671145242926926342881231892630509618973636378765795628351734282459572094109146834696925759211605715933358574342452995596430541553810323318267578281987741531992335793722287010796916100247585142941717916292802226751725236290522113297651418332690229746816868123848377529868874216984654287643438997746320070952138475369435131246736867303429687756207725907056071391600811304329580267483081246254748047734720115670858568186089767799177576848904220944229256829378173410564333177605262344124305021332597645820871127220997848035979588148326685288142370915252077613722420278068098380472807027524867431116760258272773037696842414798686193192424670969295661329200165556215307481010894459726193744322758507391739805945627982696864368928594660064454231294062746469692696998013774767595798120955047526514931066607983936149917045934216565360273928568132273065443262571090964191761676866841670281000533691655893272433915631315085990515377340593351121978856766839767188509447712263985733795000389261501324826651803719080934517547313489581800206515237986965400805527572758152272828531444305375768111854601160865498564808276268539876989276820611861720863407508394233002025424477959885120358365784815105039355177812290062915697800183740632316372548539104004479177157672193743738620638649475140923079499436057749895030456515997883748067698953150832751042949631873177208788574935799322942821663484118167030749814446647442537316810602354282832702469485646265702984546645687885387072661060826331850536545623183618277620990203007773903160835978180056067128501869260443387896948023236027095192253798043435303725018539602990102295754081549997992159772851424726063471970416400276337952419789235006583567144118148220349180943520068242236891643609601770173485330707475990598582277718733966864886261422562191356625522681816167163191931751451304285846805244197034675263691434008411184716843411631080823133385487263687388985625295916023163173621138647411928390896260355431729922513058085724735029626602910639634137136124435940337824046002654120974249209145731114043710224065419445033017975259143233828368887829179735306030822231705073725897273357885646670611104393905989498471528039381810651835909026082725303643434511220380439798781071432785444162998107597936398218688600960654373266642288903637012434197760259950018706368730179569497830071512133595407393386557122344057745550185253407925470049854905618826353922351953662996734562071388705213757421721499696142830909270942930325199140098368646759561285747611477855973136257223561446572786418859766048959782112046135989778814288697606888092199664021337077476796487476499251656417047113306668035650988844313233742894916429780134335554209505349713384093832423854650557402442774847184004537379027213234575094203647238204457391653604103715224560188078536997489460291782787081120153475842987375618199095113756260177290336980036805263737247691752362893935366725602099168934994012537775404549328806339700134659574756572580003499568866210788399827791272229522371305680261071017348088744276591246287935971826441787176471644406624470702410642341009881459662013358179059716256414365564778568096308576296450058799656941279068255658023565605774426657056925378453498696121440643902379794617239287892241128432427621292678766253916170699710057667646466391841918630565512299186354782961124740238269922281849477534427572023459549732166101192884904369298718231208850105967612897484711597843107905259058490683906003636564291457441805938932699322464813236965995571559854321660309044571336497134846496632453569730905671855908252769015823782538565969241743517141449657901950779955768613681849072747947810015008573603705258435195755047158060147371531048832746201826431319077794424172987962493200054494233514582052423576886967446176984387566759529375306864572093522419842848530099032317511414518941311230461016640670196603518652975045749914900319037085897804104279873559054408784772598143319904954957809706619995363049577146791558494377296934881376066388661185935084047723444579606384106615785933934999916850177921688072412568717608970272341771074467209193662109640274745062251179223251796194272384718031690969624189709281019146543083922079983737055488756321043259675071470531526328091632076155143059468646274455939426613545949974409959546761390573592520592353485728396528414656733907394258990220289536436136026524550422101362812870363466022149414014244866091883466726837163715670878383099341310714564320141457402238190247992125853215554586175174008452410872511535681122014502116201208277598592606805297052574420126339233058585713504259543624384384726365191537512427596497614945854973693697255796152741235504627953395294687434680858094862208176507519679075624786688381933302778110785446484802192062108534434052568730773714821793537084142610242875495076864217219157243518002653364080344447110376695653794918289895799376432557273089957017702855715756206579998679244917784033721892835934744057234633069835693617903186783352385635229234271574501118813088691741331566374094057864191815966683252884815277144047987427033138736663360514875226215976505042601900343001670423334802845620571440219712231868761822118224981784884782084106861837162725508603682583834850625342977253705173210348348272412573504732908424046287945075028556643799676534357599110782468707424212683004572829071770896512759386700205792625661116266804540372252554896403884583143971588118945514449585564498772616710445445356902503846484752509602422358831880517418111386130058316551728403129255113838715980387073017083500348132622856439688562663199591620939843353215133546922389695522499624342564211328597534374066181272463655500464430247164808152545790741900816929739836848323696062400733700841765935752675156197418933696295618718057799362605725821621239913507191057958194264770575501201841328535498346750025101907369261842619771573624118732560962779193152855295955497391769317144958430939732353438212704212034447995256713885919401352246283085086405293832318594850851992558831681059250770841487228413447101101142556256694510907109897260414287003705499441824232996414925024413732347050919295678727841404547863065796201635673242112711816976944555765609710258350478641867247157468978181665407714785009129685512420687257449432711494819082111112333600665086660214933736628139929163960999534600803113100940723493857812001381197134996120734992092022076574933496172645079997123080146151076563486782556984532726844356339246959748878611269660834957455342360701097046495184920672896241535962271713523967079840622937629383695696929150729827214119528420154237893239104612873924297473496319154922609625817129360559252510056375917940116007931478223736469794076180207218259193514525893798802652219070796147349154128069181037939115400426145449784078940732657325100565476330996896018260115458931093286642399776995533785545927882107997575885543059752700960791096829270360193777517355143425534725529020921592998053474054320426091860594778780756019185809686640910192279698671481965825950246604676832148287975397084212752299467846302491080715441784540763559125404280998716218104771756577633648657546104765799623079062089892509635050501087186388939868283921501976802321663294077594666221404877890246277108036372917808465200832509919051434027739584678643204360162243733073260539943462027262880820386676692883956098410965828531892317582669894620572728334677113206632117933010479301047199719977004377755951393248464387501660287837264041405288641172627320055423947167390438214474835241474764047272868432420240906951939337661448652862845491954758549232644222342784394631947097964234815965127226486014509082200095796816217843073500574154634169185533675884533462188660528414410778673901369719003400429972623007248955425865862603805345006185772169766085368419627181146992184889374674764268314552963709097141505763443117082484468285756180460501402163809846046250292285591059283193520562075288144445317442735263345171431836277926179267601155649218926895532255133587909608483147377971851874524287413258352011462210157704717532928921634964415237984975188439188260683791187011289867186776975005418172540124197399136387632169798694305869743769083292954405071495250605083657749670436297958475879775795311739987715953169669965272417977679462103569174094711691656174939032686200548582499474992033543231445978266557949669007683105985693881831902653130296016719825012818113658513563125338797749337082867930576802591187919665771636769704313993587315468811459162789781037188758855922601444550605633054566257875528569579032552493646279882041027242440865902892035768836387481114096840147606667668780971161858415943463622538537259720838180732460189507237559353795409240531278849768150399546463133815839496428141310501372403531522101109995176271809527093789933648149523873708340594840734444734829469732640647746249169094665588479595568058549745232983735680805035147030378352882130751199065045915689002933862004377142949265426125793872515889839975892355606329485706787854899311571689741655979639478992963756668218180237488363882404237683745314718492642629352712129199058086056892355583644324676734982541392090483494728358128395616544740806578717025711060168894098046343570959867060871324316573743943351363576787512927576213651684899546497873805796360289040948854169507804283781161682242956563765019616855321426497677969229378019304075693015512099451944835637530613512410915653145515412178182661756709655170173221968154922982085330608174013007053405683103075078836687193136837118534531488130266188020367606395588821890222260476496016348529935066079684872964746967747465593177190699142884699303026453532171402348659097015881821853148482341194259467761328973674312236227194360125557816910334002107734266388657601250454491933423697269867959782727431279896888269102157532982442368530130668322355776365595561208708410654687201956260295042027283940119580558381379831585382265425459116500304118167581638032764978250043278672628971452169485183674535893811724282593192791225498054943786149020159952307096187653208769882731890491760170494989017047171645126284334665754808083505684854919550471337453672708241168157400642259178985396650776093085686820753956087779276142657462296974900597655253906271907282746236848089360058340213394939260376970348257433111532932608359330445719190105593354042911548152518471135835177946500456960151964992505390620879963108622907150889917268830518589755721075597929170614042464178737575089099095195270667050266121486135737469022333479653279528229413145567438492900365156554488279325721248496172857321980637414087980976571387447499870453207220438070080672947555301829658493619861746343319572788799994089046901558488651711787640213345544816007177222737563481431345805166980516207151110538302936327383568639306242042161205121720897007113338119101508771911874898975042784121437614202909316299610611280558490845339556386491514989744153693164326412475359325509392562220266213979401333849377767587750673595309908669390441516475780890908025571951563872110858908651913051835479510677710454335840960604903885673714154333432863485518046508102614568194958190180027220449153646691137755538214321324218390577320146079266904252447448037976503578345376744509633364042369983541867296091952512424527653827887945306339530160082967554938827368157767887907278641855714320047938204012144840906107044944026409959262956636873212107772366082905270682694745765447784799564031769857944926503313218568848925649516543409316916669285901175991673357619608605140352175656265768923838083943450550380007784264729856823398023896048070010743924129449639909102848488013403254477434265994577326644095376671092949166852711179910831082245148754739361603477861910334636522965607884533980480844393571298359821472530261718413943910997703998554086281063474559139512681433645002886009402467807233258158769802051836672827105961556338314184827841789968835926261401187152100304180618227485563311818891085139496972539289721172119726556234446859880874645881935922122372990460184039721787340025472972723603003911782573928718644584652993085016090176662204924172332532440863171248070004392213335642718092639272388821955157607516181110212902259316106195350140108749324526369602469430237963897321428104489397152539329346952461584381050268206350276179696291782784158860193585624884848841743598423316914741050634377220583580764271005214193592293877416840733935593013790551551157313189870530954736985284253934497013591156875216759587401680250912406600816591752470145415192378619771139609260444806357996339691800524310057389949548112618864262061927753246424826637371161898524044138475194262343147954574611492974996707078630481782105402133033663038099801106647815109343320551449695853131779741300406220138009964090458025381958779699323165465952809873319017442760468922444456172355793098872324756581299498900061272392988076882948755619361111174712263654245531635767494181832379562960666589769091225156088651047927574521627828039135139515212065246011397902163922698444401432253748022649722236443922075976155205981320375894353969915017915974905739238555763112252623105918033678185026827074497814379973133124502136527022658076656554281783389233568021917679277839949028667506397312804544242271115540186788074195703381535073785597634642612406802755689203154140994714641581595274720696420760753599026582075061480673216986373813272174559159740490535056216601574898448851885313666327416495049764060104746836878098561793734281226981032547001610004845651261294571658180497301838669729549396810232347771021433442354612754837785700748161949902956653471468478465462872714899142671222603799473764264813924305530279999315975957733076967937289313575053628862811125962818009465854176569466151834053198939888533181922134903889406394259212185596320182239426949362868428847390975157609838342318481023495907692499503347671213083035167086334743463107333266473813533911938039764741439586616765515628129202788244293600113095058419785777652441964356384425998777850420735737679502609539467466257672222500234428715277909455969953813792581677043710112714639729527944867253481109972475662523919658096060534932357597384386119157862060391709868056038291898212655774099945141327640302137794449731790927620603704037509820708001727004797455616845101462726729704768324985651344633717076352869279234958955049260833999229095614676233688900786918013024433388781679825003132028582114233829894009343029782561815054433187083049357178031345680621397049240201250298544788275263310659301681028413938502415421868972131024236933411921902433555551590928209691052902092387602301187281079051447550375135753457242410288678689635081256949009170901914525259483903914749649549330822459014193811638152803046922884210716246071042106306935893131042776630621923130350625728882989874637925891145830982471382887018934015492407585462804341082520451314774563898681378946051369418254508628588149398073486166909507504462995658298673214871487121713430051589330439613527080180383297832141462022718105570766541701684035997379040155084364037559051910424047045604150588223581218380102746826800834538858998331051053131759324876311158669023113466171670261263129787511689115858172028446912585593003455598570075937610369835858765905711567337968132662886349648752337671747761955607075862069728158487125748499143511069605645749489701848667137720918721550362468078209053326962594856800338193159156429897675863458788861903094882434823032105535142575659221231327615555676507469562671511494239526929563367979455154336478847398582914505999981736393595780144465331471036723376554110189685987853263403290743499557094957145668121638933656704311058688320136370625326624043660465937581960737726453617483887701307615207124845389084283937347680860103802557086896986683207463717111456775016694997672492920727900898760189526549823580984550992555416395629172584886193913465622943568112684719777552665097714926924893568009668043512909712284747674368321377836042437339133621040726622823570251936233586638284293258110698708861915337961754332421788873291104019647001973842393404495619017676399762565646095706131235051656958838465974511681501440020791870661921737536896736218088764706771998916848460726463587644034604441279439492797978502662151092700080761161232710692480520332207725778406782716834785199566009737044905217251970055776021352784387240007424269290930544942630697436584414060073227166763688958696433314946012465268983992423922842010461828661687812743280715254085032024339508329258065368704047045373714077263502812006634144926103558085640595155780121691817654012738854982700094122613829213171584040692278118731178067037519684762491984607591554048332892139105353630491945472024288633989478842324468262121059899692903770322479547763811511082161989894306888698366498170679521271838582146340208777731487452028035133229739839529701933973828424497632331802371313982724098164179280276298678872131559828062630405238939647764090036984261907780371944854437702124011064121412908426902792734817555973546906069222920073361304887576157656358367431973994665075016025625851139851009738083647824910362757762948880905421888882304524768503130351432004608343680357379870538318100294413163971668504459939788737809851830964449719107147038231084031532441580789822929580990176911806419386042459818084807383814584709779195066973300250329741032557275871467136002621692361033523423208696488086453843404772238313341084342467416918207929739344323530729598936408558432246806007977415748387636841991464103083878296252636716567695057243195323129445800270404980202346024298342694871445137522247572437276133898968738444841493062739027582999250967378578358477991482833727062122562227896796110797427663139936923827789045153901735090873479121811202454817942968630858328022767982768738130925480437423943612368153931931047989004329749622286883260487393235380617183792271580029571722038463150568230214710598435040325910700975786574589700884279917095038259884217729360618208424238260094610012466779718557965460471739340734655491372977673597068391190131326571029973132194587063244145872385747689948393671457962978574698713046636063537929380151674775887643181634043008436215188733577038187632943764929396890455467276749023604169874853562291686065330735944304442532912223688368204219505802156451286951763193536055055195500415042092098011974308896391063485518880394126131102501194500884973632444060289957380124902153579754403414940632263588239089420661493246715793590295499262031414442270258462719461704997180246816507713147065149718314708096773301099885245286204684864172895836432083431423413943362948799290987564811673032867929259154893240911158830938359570827799710020403711712441498699853778203979597573182154608437689144897050125429543635709521443854948076939366003033978054295844624415043943791585282873156480982769151508455229142411386265462461908254956681103910904091793080971954104658570315237981080907438161498798073259110074292451756528793766950590940982187979181099855379774582782407799009273319545503493390150209745647638490053855768502351274598660757563437488750459044880371335560022022761467935619776628824263648480560952441668613310695730673401953263839436478165556811779858032261706787665558055842999865303347291905884563624641555404052107786880991272801254248896757416726976368180822721988113760039209684212813298083007984916612717654408152471214305707193520688358419599033662258952521019948342889685917981649600359923685988749431705380930474438692644371018876846611287295301742156464910962429795980987390587222519251786718559889429010017166187037446622178167284294920042051845472376464922086564923275015378589054041263022329026501594939441024285949818254424690855196675630815959614682677612632014715117300739482296997167061587160698596835655804735833745660665803782558260554444688816842013400671526514653187480200861495642633742424788757376269286298823389772367845799581663099534402233850208857607273863703192335072784679469988850888571619896140375678214833732471042241908161301695696940963517322476965862664899400030218549075070622739425959515411943333675981383587394832792874133485540295386662214901258991630166497665297353466081552485609273839019080566771331345488899904029189162344666642048716933242178870914514519581444823378972850558681632219613869373135633394084894013658840101077806779146584428124937342944524281760649761725084512044726309607416491066147769656689758441774931681601002828729553385471938178020506410026350139870237109088822575202021932097780652755206571959031168347946007305187422339787700720411395294270960394008962932786380650830860995900092125373547265471925812207219823161452284204564079626988083561247793088100368185909397768568236318449786051589806875238905982498024336041664077445442785846465092899523011971008784519849948885956020189385256884372284759297503284200960398579195395918038380681178886170142814461302317846975519186682294124314829609272157669789493696566939700360163892850901917293565306254190160860643527233596115203201682652872370454839100783788598953252232568307202469049773588197722914015792471481714350460340997669160384432825107599190316048580140200787811096575429900058900877362928943049956569348215293487920301030041463052708106392006910592684454632825361892137504578635970760158229335673822040876080744102432780071570557608654785180156538482547283285430499996627948710934851809970552954826526670541661609218744374950777743707690409354517508179088394946018563160353099306854239556676652548551381333178020656360634029724552499907376350614434948174649394306267236075752479805429777667447142055338296860573505688878489251220836045150735241811513138218648342902049563828141952870740920163596672222134142044637037166358039840640464202535167451469411181885738172597756717548814396129929900436134231492141486999671033528467848178302950359555724803466418783657613823817117603084154785372922693302777631877411336233683633826029897035143869966761914333696572329688836217432043304294137057536991528889991845770068456637699450180003727766515621923257021253130432460163684500034748408799686524968378112484575614570956541196825886699505306524005870529418235354237416155587564879414447733617035563661518072292897555636982341056280455833209586523489414303619320332180424591961113478526303405189299294300194264577597933638563205717501515615360233534953699748940667364324045552410928230010914508852505227340801716901341716759101849121464131858484602256863699719878701073095195323521463560765128287319772244230850514725295393008779641518080593567608792283100354347672028834950821072764956825070502297828229104661781611875417085923672617381504998243761140844890546890835241437470814122662345722475611265453802737179551697109389593780936496745624832447434788704651316757184576938834531288984749806391941037133038397453225276196550210184142833943244735858906982746073465711047760733493468778193071983308290550733584842132820691267217620787580438784040540980484017103890146100538942640013005606138973801530067389877156025998505327854763451420865053378954181692068022359519586797101128154566704639824853066162046609214639771835164802925090551446685999921233360552841175138671747743025476452202255232640473808687079863511252042109310647382562955683604019833972862075951261458155080681850523322757019621720708550988822716227004485031962169610193485548659513720163077048373863875506532571299776192173098720500414927102719177773355471581690505296321200573333403660796765472971154879127471076194278804745614988959550052321903450009007027074854818939629951585714415257154916383602855271788672262817502224042298084145551309011930810497967420256844696974572262914666922670578067702476104209347741716936387023220485674504908350555630904199692315555229628613186077176869082680654793580462306710154035802393168056235067461825227055103297210377208264674966918289879483588782724331607701108257396150922884072977185185816824435013321574104019180045668776403842177763481434462414180886950262367064604426984592474676949370289335526996350631285582814842385013578727595674321788385982504735967936738189106457296435244250162151130514152756877281320179780487877895094064014926999839488196101705783034662745073412580607899651237391559077533609825606579974713294130122236131992852024819850885654185541717993486967034083967850925852092710217656022884558245458268797942661757136249390229903294906911595650125521538044493299347509730870874336587794126990318575630510686763354094800247854734764478756626716543468746948470846984122549925451876080946491884127040953638800858038333319943565220703735159411889215839995140271886954979201188271829046436315593849027914806093592494783582989427373756079579313356233828463024754221056524271856589256856398969012345593568958802249417765866436673138859366090732579496841432210045704522244125708744326913448392084689710540367692687651284511040087275730329859089130969787199875878839141008112245831316295654889725292417218099400628388098201781103205187542441656886366980714549974445269217408150805615665123792629449829617948954506368377359492375495452396123712980856420296763717315777912035068359800523921565675388906814643367221430836745498387010899943079797666975576508280996036113355247133572389937979435716484542954886601261476732772984130667923894270308475016752490605666429284248415449147125462300637675574298944508557333382282656225263427355099182167620992012737794708504350029916011920025588230403945893068803245639104202320253014504032471777828853034419520018569718120720760660317307168794076953974554520360583301226244017224809017332990658463082747682047235071441052050398301238114391222445580629275892614145674419056590555722193124301778815593018517149407618655775777491820927734869870767384273858092259759410634590684599517607242832842860687519284022933705159185565474719361015288805729941024703758889866462159766746727692663037869638482882305555803912701905728459127411678162780493359300494468494147834930014604271894087010044289667229190619959422162637758443027228894324564709232870803882718687472259063137157010802343888056269549627141985874322050810324398560005826165555386155516720998777796091721210845511989018049020720979698499825072666015927522288319659690311569773931406306509550903591687400070615082571921679180685861340568381446964560647441331446484821041647758581799214862507609846956895639921995279698322853665392121733485706487170790322180976830689077017706960121638329256437773331568339379196740076379088458913014147075090599775192111237985948836155781371798864973971421321582307049126939316091041569595518031969771240212774446177335263025904741736533733446558935229083579455726252345276974898483784821523182643447653221179811724510266787528338530798417271781421907146774640970926092680583594334651526550659759213374970020519167166720245711475492782789318424506999013661441614017552717136841522201806782512171334505791719431161939721055650477992253533408151329514430671189635384811690849804599712012417658064934353440449919184277482366708803116509421006728738149151514950178294013462515324085807341306385403421534068146577981468254653641108212491719085046368246262759558367382722984829630766715291715947363860417221760704263881268270391924949945743727665683739475754254427145403880934584709095721329193556926668938078831101812056926138060189601463698917420222693859967671107951477497082350239194085221397726541191246235003069011818222230305819809300376230592616929218772596836145926193300221583271506077119937814634423723096279536114563849760973100147086502059756260565452727716442454173462628832470667209370058264836136489045707965342125777736040684997047094546497945629919883997761122451139912216958439135864009561411956940885629214427937596833966268145175631060204654060562450815232774274794692963445217618391029770365340808887987706486981943575606824839470830790433236194899557286168442453450910307283273780511139805465505377436317255897282758489305583389696453692117309624151544450837997944311752499264298489553094673958223225716314637192112259226911208712446750601833051448471668790766099712079934455997269492893817152944704374214445035941552176429551438331371940600264721185358727187936072463186255213492976258024765372372290904829980196738299071633963937818822838538236751945986439639168486184585245150405018955314691587618243723263824750510327129460096017116630200163288406182635262701817722641985368727201730588104079887887981482768544017179203459231676385159079177225239321934071392755405149601680905320176791065944206611968014748486813857123619131206163569871394614865933809751561744475627049000649668992726953889182908138311359742392261449490785662401162183091285294861997041910240815620561243776815004782416285309490924549612077556881015527788322909619344508923456275966181000184655983288281208492897502642444009123111720761225574218339012094247204419048552936294336855334410109869491184978315588049282551690626886300651909747097248857196330888938919386915750011845840590317842928383799046693108219071424334261803472528497407766439575929336895617307741299408129230370297614261370032796841959982319471665567456328686838423005285421978791062762302863906771052142554824527749248096384244962750275488060822478983617387133033756795033885218960890318649476068768781573435706883178740360095591869770457850300183001418908532095859354838685084932886766669633990119848934852386881097435575634606007218829325406267186520072351048491498597889063644737122132697954735166802110504716243084861798446277085176225456888766048636038399856275563593728149969723910292445580668419486286008196612747147948811634674698384281626691745468773940104550062614025068761149404289342142041696217932906349700549314006254613373910923553316543279057793539084834368052076472466534926303591358554207658334938637276013432375350665810520053057071783857763714045917133252203127941325120288771791262986029387025956069643947577921093134289888572163918885460855240826743333120736085701061135686345174484747258817404749933358310454837832845042070016001104765026259341075256236766152459135419668578215939058621690269787076826881129969646290730047966464202956523534642543843370217416439474867065817615704422710560015190956920868804571067574357079272441661265398286981249082793846737976531631646115632016461000190938957554204605728685906552966712114108731012844042155235220722448745262503105249973908442845196637705961528532817540514992982191033946773447012085205509833769428551864911038871628686228601104596210469577235828923204979031928654450212413319832019728557928686679374475032406264575858514028996850342829410862640700791769216137474076544181575369674553507405906955024936236990710701740811478406306196333271417937476067906312155663068176188464096709978300278363793605360447492800624407236355283285634896586428219020720286329959170771387983533662527323345135125454471477346979463494420240055252207066713585417034134812803981591645774782114397659201141762670893907244412297733211356134950343567349547452774929179944572204724298382477270201107318761557893864174599295059853249365308311424929019106732635514205174280911218109798911347978525359378710857865629317320213420547596154722887445042343223379749697699304323649874879942499399460395570886909442625144298849014275640815663663497578683272913227998645444882698162679550445856670199771582930523280877053392204609962566240115882013331891160052317254202219765961781271261534294201450548410393652929601906328543501083551105974452216080867274287628080171864416394562862963462405836076657947067153361203898110261821615250610100849960242762831698092091036797003181415822982058859566698825671680369527531661694510200568283764266283163175041655745865711298720464346804261861255798829803848935415886289113147680896955993106621862596894287125464977558939758804733321461501342979676853413767471887061135170864095877451092489593994317051917259533915206195059238309924384528851579868618993364292622229621205279256179806711478818121082470929993262547952287872507463091809907936645599391319610305392938830627331500840134587827417569900814192078679117235127698541711915051691701244395148887762882093735068811409385107945341642738964019722784754759882393983401753459213463043399297558581436591735068848065028510425607385908259272734421458120558619544488658243634370489692825248069266960336574525699986270440488321745964268710767245478302310249624635350641822010651254380661422038729676986718377139233670918788329694459796023957348504256317322206287355282918696590033458937013456890466716599711429961050588866908648267506734791179851137964938650768894644565492055316861626776097485866383494588551349949747473188312559760692798889548568325786054161421518664293227596011052254111037629570607945219848215654974945915886853427303677531881806073112377651019116265434426655185152805577439571111647010204946943216804530360441840852752539851250401444196213534426432480241428461090400936191062087869188125981794319384657973522590331112250102247579914766953493557795617428037863774527253894484079601081773308920308286239897292197730005363365166896961506545761151231969754902600722317633934336713152434185039263764601171186810237234955070868324766502948680249243238133660796633735154739220625916317714472994520238308538269574203489120508930459625644103807372853330291828134023173992046527932002069981667030607463179453583544448447359924961949475273681444426898713037787445951038766197419054245388129022701535295664144439060001269409747288899088918602579993388102140752675053210972345514439570851087866383442136575306217478151826133381296404023472232080330664176641837900009241263516342268894478083332663515101141590520894736523483257854915827952361409780223637497156645000184193829100560737945869126847884088084319170526720343110784991421089081839868351126301787376034093741618437089663152264698833050690492988558798732448648308126945923303318405398504230504860355452475158925912590734968085906544605305395027812236145488175498640499340322687607559544240685180765765582841181588192994610376723324688370825555221207070883881872291434747020305626301446450804924551961025738134715429126230384813622360537525724752818741852960338585571536217746209289662400517473582723751543161341308651299622926524794563497426443087180082258856340787689288468282416408526570072516268317850021287875718245168718180157612188829130351400179151682290022034252131031998180005011286516892121444368895617295022899859614148758106285990397135253514520011930783531905893910716223520293861170314554594270224694961346042073570431509333352364281004572472325825211516645800481491194284419991451464962926399253777438459182073897892401221372532928710340924345061430965040372104064823633793353057990254126229689612020559489471366638555542749747070362346853295057709568690284043633272148212704565521285954220596579119632745621064254899574359683008094868266659943114092708921082946461792412079503505256221636660084640641228216754224326006231897110643801287033110216740310877790128590504696767351172630102735593066761363833633545984643517593187143467444763928670013403840358966694738491993000001333190659409107926683207000113024872568982779227063716729082566075864017933692041050283837129408834780649267796936854682054536691462023769597659415445244873382908938025876342836747832032153709640854119431066412907288277209025297453904269768624648474133691163311162785970398086954101354524335766545307150302632303927186440004244913162632950142088075957900967600820292874706249677884944057884742667951659447243606123376348292184909447894523365049990551689227864655721012233342461836550072957617581748686429268290398451265067039742564719729912063992734795065992464091243378529247905610674743398527639749330871013031594833921030080984536269148833867406736966009218553427475249425204747293952635754604219568054770679196017457774261287523494091573049834993432612710248930772642351978932902505205628090503357661423373043011822445683778891781201236150921040145918924998875465315205397842559233485749496208854834186041497802970563104283329552318841590647778714293669423145351579997858367318072198186264459916321493205765899962704456731308827265889102777861217485041119569993694698787605820404310603360518633150754870875693744739551337003804893876910653207990998503747461081308014253134531358700522915056920349596931106434403733295287796295997544542770821922920207240461634750784461996303570659618951351520874297111205885399590611626586885598673010009926436766322899960762354100806536391567711462976891287405759414551319941032103475380998465411807188737247264610570343371857838979927057609610122837554108358662981280269909203779460806147247134949842288328522854028383966831920530669924278963368923223351570388798231015439762314519703999715099222007361723933921797039144677871107288531894898703433939518784037712558149408535998513582793283365509567784220596854979408678190854286404029101679189576973834978862220685850572947097044259483497361226841921743314786837723865521740852681704022708993798014322010186334812866888987861005483795165019265176391877825642032709288992855423628641220719125855099302773226732072741875383785796728110495833024647883259506393069224182401946819533879078249024349883147737040924822141090878494283506635397776995094153356634462645096483101703216412076500609289449744531866829392148889152339233769323896064348495384794514223262918821698278295976569112139180551908290468612150595930152642995006578551792593557224334544056069466983214985771467092406007695775332420964140366222659779199065115912430045484534385682755809661586295690943517208894027050964007361456254087565717300261777214618699629414671145242014058238925772561253238045584754661433493172936072673161314424336192213274481870646944611008218787044417527296607395297789274594137117784358430770689797839845002945893177928020026126212014877815762853889285638736466673876267132838835392257371158281444799495522558954560525883099131692164719908970979826937076264026646267697118624799788770245716796448967325828719064506067479826139473434856367111172750420614137377821207809538430206700785540258966258685257234527052897172984203538689497508452909934559647421078134457150696842531989947641784703534789250340148607406944926280674461295581017138146629848421137449798973940514293615144268053552384533769009072773152189801327396427132869314071428715131052988689817082677738729976677142625306815122958146274491841744098227521438164773906491373851401545273135418337794469141637177476031122702541639635441199362643320763047590363062503429525735647546456758423804222072753966074985274785030553968312284214821311744456133846951035735040063186939703743242166532149963734157492461261676989001637218468827054153397353543397747573480271208125473535685822375333365780979660813018999856501926917590600769938697715359931951433155858398421413201720961713747633228173239369672371353939328247952188162370395576406769033070724594212507679869736396727901347218634936749072975971191361864728990909641465646027437645163757930457738908672992974793551164390867171543629103944441411086295620397439385759753317240110731042027542521772553880092500727511072089885683501665456514160067874116639791265810411340409313757893984582437184366737817596501039405691130302099709502953923019264859873588601101412011088055056160570339967387955941051242411765393291962849021711438891321273076946909638102773869217551347026693318387479102409207610638967925591788853429014893791016837493122334880827163541661263295820778232208561334759794767678727031655297685465725065857940629982288820179785436514592196493543543270713504575952171993189693454627957731547784022291050421040392201178496412840558033658498539752965084079506973193738090507228427851679033434061633202967070907688775518930517639016212104176334047410690921004036838839172602594994679887705553152221811985655488681772844319526971357890091811124820562158116566075675973624165118736610477716293635058520464602976350954609895372269021259739166432339023631395488720753926476011827054732909756816027179498853021950351237247664901449305672346774829345381810022853133379992866041760077633847210753674986627557836783675033439021577990013574591501870581611750487847889125714600633861189693704903536414727302735979318786039650076826202771021983300668371560067570583049641317605158786104229086072781131165855715414400397972236163595638252357125629789659271362499095522080660610862228920353934172944549497085171771677343469489369974339547521603000099222625178153190959659142832783438983001527464602736974562062000529164955779812645176578299614688182151735959944469487217381982517443785181647288977033618316484879915047537788352058615687508617047809216268617106907235184545231667525991402288622481628983623087669515300913182242281752548944462438329580434832472939972903990241168962206144370186524824746057998267533494172493336216079339386859101532651945200117160700107320456460077613956535129292164915492967107032730205887497747275406042299409679799051095548245797876256251830060258337695271322961749722326697094007400502369494214266920804457437446407129925052708482278789120764109529238415897788144894054693834908858149618733648892541261235327532343132940652968917900269901976433926345982928347810216662194300154310112619440159170012951438678400981201682501166352060471480827524230815082259989996169131257596961540994991126882392678593788031653597831063898947389764329753360278580686836988110124087471102008170503303308387493381516604404734374424360602678137717263388433692081894804975713383813510549936397443938178047497390888326543883451921509131546719423931227134623342172617195846452572082043904398808437562186096214607390845653616844752868293424495378593149129443057226320571075190586202113138836285132340317757969789733822753038708580008553678272695924812611524885265849468409558588428738554036843426719494395624792201578380476153487434696106209808486653768793395289616044780267970729302853065479203360016993550783815130127074361726631708348926743920856359602278796856606800579282274241507933118088780307592100289667752619562989665019145871172553414628872432587827462978856646214176738072817554712450934685919657157550058414354969489900725417216694433735764172473614583045592675384414001891080921343751510256690183588305809803751044029883574305003717974086414563945680361205017520268962406575956300637381190304859037827231280167909705312462711736185001337576885076303462788960821109928222254732106436819999958946894282986626206565913492458905062308714846366597538525457526888382584533616063611383609307861195961239034286503389382045762104472973449477841754085770884011624216246407156613977850551153492681625117835343503382062556491292161056537434223166444681182243316700846883815520419431909269866821926314526897643084554303033303854946267482869588809661213202702802596604645884954308466667783082164003977129892015528597689574403308947283936638329912867309090651756771328333350993508441596234036823338193657407524904900691334447881373198008302448197787880465893158782212766862227813319833592442382155174054835993455438071289420338430907119152627446347087388745249084037949745217795215334162647443241617595367954353165691154673716770359380567354181023771543427476559756253124253621276949338681512440047881939573494753242779565752109126551709781876371253285092515562540070844607183820367488856831504193195002745023946632176667847737356992643681316299430008177490809239939773007274495176081456223958167673200822500958755177072608967631216552610675095021959980299602936253413879715334989010121740783343823165569842582354613625218804118522777426689974910853950368437813950187246776890629752525698508558372830028114863371621926196847601350676706128056937422059854593512568864215834187311343360388135158273708081364610614599057522136864063715250219639570150388204733923576393787211843615285670852059602329041037837509059901229809834648814185287639221687464514346610389786140407441979469603099662055367872262287177832175829125698105187990516663138597391879683453700609992871653696273676603136042707973981005769753412757418820489244306819425722325334154443704037351474453517840626255597153211846796576112512374964169124673253983515530461992931923232934501304898106099148811793039415846979290823080841870183822499434040298774126137212815287773776677021993527048823027623720342844632119167733050518057049100864143903933456405829621905685870202321255925708530626511286952387555937945003612607056522873084574057006373369629216465719840342348510838927708933069617709278103335118255906631466078302195970703652140372262781191286442091905528418802162708045912415813531792835573420226793293095438462875206556579058088726601143762433842030853582804028605881129930998833948634945763236111365485973065391775058070741189577543698475996942646965676199762557256776307358466497472348145676916664951652531360809218464505384991332463773091313550424409776055617454424486482683899133099693539934407650701648400434440170916958495902442485827990788417078590833571547055720283431471955846978397683641955323274219762678215580850156836246542079291564913890241586037276290538452400650666466736518104707683837317038384100698967318770581627773902743823531914281609247261049617656335179897393666707838016229132371023093108526896404839807245967143080868822838094901055729685076123577564401657098367257791848471712036330994356553257248818494204915960838166980115339996346218607366213977171612728174833072189651824860071941801586619835804089755891568960081963015464297721795192663218677930517484631304058856608086703626482101761957269863467941125511051447037526805412721742001657503816136449976533246314917710002478156779608328697835496934345625696393193515218504152945782813612731333583939794243177321154959598346138337203106709007346190288935793143632723596921174193468342402635001719443923822790280799148317111342417329937533738320826651672489159257887755726351376019135374593975384933380118081987931482927583525905953840696942477433347525990916190130658881374322558308054713474519195679949470467357439971968300931931477063704601160046884808097205263518803438069738215349500515093425565876265507483065115325412948079150699196018231924558793553553706556780824863355306183036651110179480312518070650638170741957324936692836642123056250240595997462044269943149204719074426840913068485261089891751830056584333531258493936544192334968371498071348113502878040540689417192409040550793830732472799082734002152367160496845042146095572731462442970002112251857802652887127684042698233540917250983964972169338348101179382699181027641118947305543544465599093871347149634925023437215282141131419630264094548886365551291131937390341660124336800958420720552819701368316400494443458032081111942946254783184842826620361609546708886129178743816062515220268854623461309228628529750224965299059055376681630162129100227390450221867286284613784707065795101684636625996864821030730862863731967959613180162820771616842409132868767465643263902682841572610578418052328583298732707260743989718736627156000213168664178609633570853984693114933652560632390032661329898381349160071587524512371274704185256559015326771842956745448000837538901773454846116341595466900193712407676909351819753624408519506699484313993185719980933110752885409979935576466674017684013820601308352375597219615903695804472096192144212005137762675376806234436711986228477102256697682243264608783942435332832409342980320356383166741721937714231916547654337064398050008960357242512807332676186782089547368526227072783178049139006114609134741596260419369718061249012758459996046512391181316224332521345038694369396272493085293407242983141705489888097185251244435895632874609431989809881503793369271059561857559374542593765959768561889868845936335550784150690467768461121232164568584109044161904280969616946985702755030234520485340302008173004742075663968120241341999352242456975004342515425640976676595141467632712346449655207628984625146545927730293384191109378891452656517424330708185072479650906777626252591741503640501361793212962599843260282791370515748469398382249479092801997663321572932395155215635985371619699598197311081124145440347098637056680950016126706898275309656527909208680477553976049578136973097744269069186673602393112922105107392155142784807613133556119168971852334403163636008569876948671724680386398639211199724524243056407608697623601736830110783369080438505212002118445412374411150388015084241467176222907643323939075079221606622052652205410582392594646997432718005332959029026912314186462799163972392483983205864902900264549888960682557243282888910490141105715981184379730771991200174773362804700645804049800995369976708548838722672993885597328155615108598791977831440514166084582203605727272269764103934219016251428132863727152420050950796312833857787697160637648698932062144135343930211514889557759076829061310174395662828673961728788711656358379744255713047276045867905469833612592211426114662438569701835750698313550825628825015218306483153647044929910935441727441938993154843367303222540841375965377233239619006095902354330654154162783695622001022186713488652509409430978656417678912868486074663887170581135246243737066943599150629689141408087373473751147763069565799595991313561195245525616068642055352276029687606729186570489631162726148123578768162675315136766638945378104333545529578501121093753115828568857920112118827920027619425106964709275126317048832176657095443492462687291604212766601157673712728267280935560673888268067815368616010167069994479589047467275672850195058956887092168509995335687596784672043769060999551511552633978863980010106513815936037834044108140403595269684063802014707475886047785339085143848269076270523882620387476683477228946665593754898569460684813446832173524932599942226085731785907517300623972489504342827223725186382581552072198619904233975218802445755832533723787784829708354291765380753401068702434801934363106678984610063480200956296565689437106771550014170299433187032437216278349913806699820365301622350509767382179022420731314920593732909848326570942799726011657112509089710720538607958003553458912333537491544624668072867077772300597620300482267415330839477101913454864255812582477266950610491396965086307981041988173541332822913837126096638288269023197517600086179024822355693136683977727802804144662125296019527153014147410064245739257165012272905018612494822909890220338263313810482472771801054534504463747274819301616661499294767014941843777956821793276756846894794902815503945391273844136010997497527350758252041216269514090207469414081228486958840377194506924142853744721226215866702044060060699470554886525928837325439840276036539567891478418967099040264630458071509589517722069326563963152663556069201490700138257168041841292731639292861659098559547973718742002131474887847142135025196752610797917736732120185346139527163310976796963380413030683529645755464963713493570016601225658448035650928694218774437789403799395143356325598199552723694581351616715526010437987845172770840428345652724845143154700649141387071978042894853299600577584751689326980475605183081185090806807222372050694695703615596111694974256192544141831825668333235019757415792054154793804748374854132222189796396828698613185155965355539777578764157019082981677376438344157638213134636548997243945391472114615285151206015991572197991113291585124406060515760138392914049473363065768337287362572070332796754082661609125590320170765324121553753719117498198632799179451689400559503550461609284660100933557388555170555976790165931594028119267250217086794923718437950185841347486212707813486847993012877406114428234222803314202412406782395504648427797573871016909169828310661029191006160001166341068057349271223168395250488698023218104243238219214767001348432385057905309866935390374111104789587207938482258219041138587224562762289250285445641171298885067752600849202419598289915303974416931035524943933575721127005892505692602413165669246345394608790065513297037329146652474073047784185737327927188081539427209485651747715760950943137622404060802338872459779364138054468132645625598791113947893582399717392774791217797320985454987596410140576611917851093471636856931019722310325195483179636717673243990240760656333508823959324987298177860536187714710071197905937185865164186967477000797020313482019291510734956626526902686064634939439071222055908116247327964319030891075297073909501570443557742187378614389608147791112794721226102265836614023599313034545531711690096330586423378886939373198442036626440222111012004415482353927374047746297590781103908478060821347387089765418110410699228975159994645809933702328154427611030119667469343078013522353929006488454508278641089887622744659298819329825897525550688931155837666222924373851009558595656767043656163395018125455318568717671761875975033432741806476040437443285153548297446844990301909914682217197245224944767575149737341118342597186363994406123152413876577880698421034714519958558036370292153679490446305164833631718901708190159207452563401066946191639731392891062002978687551935855955531136821138229345586269929695157292928284214160849272126067958337466876815047521880999712571731230614450016591991040339068434343917435472617237670921902332288889367208448975115045233964304385334406908200972832594106710693538162023026821118647308306033772325499518134742776768554930227590274110073719013807450252865203739333281756120426930453547035774389270127233619361359859802100760523039119679515843747089327739945690496436994809741963146686398406386215383024733586834396845179497532102237143119779380202829478680234134445769644485653421256901640027691001031479338712941221252455449571469059485880790282641890957967287956264731071250218332947467897878973343418329798600404411339327090765384641363598199254099737066944420865183464409086266880292245098737088992147097124258535164132012467642152443449563953730508234309562762395805732530768047484147523564676544606506874933499320817858710683901859161506736607621930620222265918903156086560374487107307177222584163540167951616092480095841761355831802428097747976808126848807415237819143745291371966953153805849953542831239946267461017004459759069789312411908110226929775184358270518807075005504379325888825889480155464194412836400786094990259865941217573062301899342869497158822667136165633824515897296949564368763185677126894279942416430718940059127883561861123539632134678518266009253944445403096351127909719573494429919272996464732902904174443242641970725819473193153913364736797455350225535617140287797635951859955069461455696619300602101526926579822602360352902126742333041012790385385580436456788623955824214648463834269321950409738940825652922008649512363662356367776107657849251703478841695197477054131106186182642321436709639011942293740285039628406753588894365294938042741671336278918592914251554732592664462848482965312817840937368787539107339584934109260244994410327091657965861857115460724899456808661725782442346749379329281330783921236100404741025247934224630891327293751914249040375333801892361081411796651397836057280137908462583079018370003041520310360905617840632869935126398200604261611018038644236904462441024022532552425587388502805970299902851875670486117812717160636227687104926531545444700588048756995262831220985012795544013830291039377913334721732695397220424260482704709656430284846815622098937246366826652994308867730775815911765240354594390891224554684903327024978216219950136090055657616422201013959883135014198693706585091160138522348052919269967072682256071212490592488978877395067960371555290124884038688866235071373611418071876423630501312003121986731251685199025786506595887890631497910289264735063538548625425513521317596836180903840668040526100584252994708261495391585492644201370861330284970200599669987263066564788522757479531601167541370423511817862273232506375567258170796593284663684445282802840139136599872146601656829929168895672389286374418245909270339276284371958919293212548527991013164390185381027168738616910823301675053148879384928426736726599826406579016237071426108365017831561521584738167581221335245628726058858976533502581132954839482417950356399431104933869907005711106623749167992618130888823052742503896884842146209389357527323196593675347586017648524404655617783839465213172470813620286915275012837579134087360124403315502927027789311390557860022630988926734776794832700531038227297019421462385777200692526017369581284138375281948080968004864280309383792300947771025453808392838191049600259834023180778426303525925903527030261805843141937979704686629898527080361024116078494819326362944428503928841337875919990423107254305876393620805597230808111136984409361381236136181343833742768024665315859487726003503547247669255573892002615414648036635461879251115115437583862090857633858314907981868153599343877431963872748476499857693323265022511163393180375701556354965779705227731122570226771670745671415669451284102492878774455324438502167527528899948584821626524642286476727129546494977457833790413093795216538052385738802752031622567081672972955371182473529438209439390493119939809982476682388232641318621863220439328794572485228578340739006459559608849927431855573902451501862092989319246559778858592610161303769592264926329884097741756119357781619809370462942797444068127324686408573436115174096568906102636243207108044115181065881981057809866620716373211948444914176562643118916983092964401635987020280339481837345388607606491120283930642116722691134658133968869937172234235638493481014728279309024791826556123047548251370098872471067378210676372335095934158536768549056656863848714409244166025486728503847529088717181137680777079741672793744341243714188991011124243516169873268327185908096661288449471226588793498708856005091325586737162915116878166974911366774706351136758515748673807551445073790262969480639011926417940824996306709538215033419059414369545808032922393108364803683173382855015272269835568279182226074430079322684238151658342236560185986367096895572950729921923342544754912506899650925610533792987161699555666592330989362899277476455202098078918960533141985585983280025259109861572700012472428888426180506379794631656020561116312174887555288935927376734210641373905283478551225298298860181397188312105625866777865096206266595558196959738575155132330704680817104444640148522823210703922054158225144535200053692086175539710913641034864376348219736075350547687801243331476397218584410745713156361339560869312869890268908939692518242187802081315306737768681379428211162021831796480496981084031595069365017648245011396871136697100837915005184384198931763066524878753521335005739942069272809931952738375623204632515860902251095186012343161425996348834683854775834369015634747589132076278049529286884276920639653854886806679734513569172566142712228783417845214288004279546202675686254257087965062984590859213196378132026363776369841365969313758499784649763532329239496198572027526155584617282984102495653161851378263956593830581962592120037971467704231612396060191213863418344777945339972980296258749339315563569451378664394856704030393963136049565942094002922105153692818848596284281049833661222960408295113728678164710675748382122724346992825241847789368863185322299825829538734463130824982494078062815258072178361201077670131331437692474044270657716061898372081246762883280482331027024594694455616167615934528535398167667588663000594223775479101681332634015453973608565663907446175441349621937347477422852445997560601621936771380862210576673156187593166981807860421607718956727298199302730518404699972529137314132948849221888722185798762238659132062771142274354418805998959780375056170233393514631681736648895550309134429279854788131982046305023458595522032135100985744994520469839595782229839441617417226476294850939666145782885177536629964188882075936248134192264229129358672434705365126334705615188394159374588275078032925379867622735607590446096653027333302938273169053549846767735707595655390434730921858240425245960536008680807463162314871095317142878554396665360762245194390277118860909619102617866942101837486946445916999060073574316103539809295777731860752316070695785779782349211599608273627852010426340509617072104930802877053746130445642827361182741029348030790186796597485759595801292487782067582298748868416107114265184190657636287588375809272157354687900023193578545531994232381577999270099514555267559738990901351896446228330987375492297349371730576325711226757173994586120433266933770960919932668518954976820495347682360208073082393066782454078758872190014696891769407720922086431962432645221477675593085906897995055836649592170911257731771977549819200568106672958330805261340047274524775880901859910740307797933760584546002320948754593266658267095050898791444759366933268364413687465487547349969640937402206248948478603218824588751814135105301681313653764143269000136896922015366615246333508336900492444187384322738751932411540116004350337083712069449920223622468586586119302171241334772024847322252442791137728808859522054555121498903970524778067330542118692740187042885053087586452408565418747821261260283259642494617316452808670544529148724192009021660451395666947281405628355149242303392016237500302767596065137681172169418120660649741818639477422787851827336836572847071161908859995294382810651371988107529067923293870664349183406527028469177742423997373091472831134807188337679570206584276343885217608295914949694959725574833466759299492167241110095877410101916511298658870192312971936831840050317675214776283499559896931511416172443141842788639369373442686056794594281706522102718966969296924715429762617582135052441065505682083645453993729797331137439853746323154871693462196401902013094146145479064779975829320026644257076416664836527911301750488538294643728040946491212611160550774365007987701833616225955309979356050606421852289557645996989698961849549752440946509422509436214628356265056523182013218469704323266847920569335120022403608325337292794982482275762357697420419874701005110399894320874453422345418541537877726996929491168783344861823542265109449329996606037133280096680737300745641980801776632695877506679143389419889969576109109076566993649092821425509638345964177662660086410600508812981685111692136540803977539420272660825387968493077764271048265941197733349588047219287516840542123541122893865499706180507464090570884497059158881145974076410664543815772274585427310754011886995695552368964318230847105909326264285729502480999261457836915685231046298856463110922039415545685106305681006120363397288491333813501553061801573018161354776501662513073466633263018377509804541412934236922763575171528663003922457597593509519002422283307337538942986473955148829344899721270246722336159253952680152094218773230550053558713529844161820658304237259729989778092835768150287599537428524598965791541924719024139373526754577276058822686504729522322533963406806486350378522017043131065867457094113902664537963953476764897079379589880380150943703629523468103034800927310472787703042993552865376671726382443874134354462755973495134409405138222069288479728205999071035654708646166307676521749982210300856314832143928462118399849369437846135009228955265546362620853417834438341391566585136872615612316097247785177370048421576086149473272210866308316341573899925662057994698540360998031987736290136010091888133172804137969401913304272693453509026470994452988438784351758078845352200038153021439136576124540692369379263619386346298943879173243273835273470924725556977139922938148838545514350059256772553478668766081803801332651122501265936482291720534874860657662533412141589629323954984688105368896032430926177055601844686388624793191040365684584198562047194418918552399221977092943842245817461226847516783880271071273351227903530496177000571769356238031080568706262932111254070632393666082505982736484122034582448773578627951506483740175617729969932291845706379755531503864522571340887383291883760048813803760046979228169955179794554140980072478855531809569459203110367207566769048228738675610686872715693498140741839692601205839130966792102844682821070196822667660893949731618791434544760732225160980625774220976938443213069069885743077009548769591028049360207643270036708747105757502741298133687245757401284094113335822022064087512699778246446664186343084311761902977718768158671562857182583480613848906030303594864259595550757620574241872608967536725834808556837252837601553075560643434549560889908917626027408283213109758447716088704420829771171004422447286683778569470064020806480575699401635627581858478285330178540104251995323007124612854680954170580956409316648821043431517399046598347480603794833429378250578118638923914150127992628921562623950927875872338133754807026516398739791929515438205421232676837596753904106514119867297044476805089030381893413990584071969549199887016603361901816531839002404909548666903067981105712040208623690312740825274356252577666834386654605567921841003001154963872922849077259435095089839569802527549092333318417533701709575771479230323504239745790947011741572915376662549929339848187877590453649271887377417612643082209944314062609193684807605154709495075133614764735428167957742240762378886095574418195938606198131783915435525741799519214905699375089156568179196040130513657255273441348641386288403885029703733066040990619858120935985160494487002649225101866860186740128488033166873876784555522863257840411475095780199693454951730073051216772237623782932710993992300140297115785926578928239725541045598585022536981573163331609299043357869731573889898379412395821884974855669559541876074824770858783763795985254909613538973626856868429261945983535277679121966902199716821914289776832019821094424161339422986903928359159351455174650030222414562462783961925786876870798272217530506224944365843751094647587791146814522617091654887113747961798602039143637956893018731901947369654267120931957739917484116590363028997134600070285876477499750373601221416963162560398140457384317674515629494142389395291129433388477874142696242911050205097269052825819787336910198513926412398062889532805709827143253483089883240720637134330993467020919583305105242553160924689078380017899469985795384506217371078530397825146305941872706678217233907183937851686139415403052363913145953754194937176740023560896578078213027849103065588676689731518696093933279274204180029550088590975322280280122546888622952555967697955843149229935608455093102018919448263767761822591267791190149171368977046608820857526293982518577720478005531423554350756064613466560322356084503571720204178551408313830446668452251768656858806429793051106012661532640338580875410174295661112018418742151737769799514786480948537458159680977587379480016335227572265156814491559694770458998272593703729693200464217922467859533168089363286442961064991758682590513937530300518052308249892065742921986504159510758494969903865379007036110915807096426767519686705446126331884728008770764775882386902184938144439589769369983213835606615338797212330710977084655572987667713429846874992278010009180682785240816467881899172118629383438498725966023083645230423781917874252394626282942679363711658274970831731355248628435268363353531194190121854811564491917397106077712245760361470311072934273227577788586207559759616390842265109725454596220054967500604309140283404432846173355725282387520243254822195866065346094277387543143791454237865421148573826522044029767390331428683564463375133069521065587428019499357632807139064812168379896251344757612445821052482912940361233897612756331710150115593457909219431846945144125629568802249752457073628894179467049139649701510830087454207882522419446351786348165745991237943589586765946773574187759143622467395323444389990612720962117579889026615356684240945999800683885958509496618895859196292032188438562670882849650162141093228967860143843658845830720300183580406563353326626868988977596838247639497047562287590386271866430838146418137188686333977140488952374385307773717369165366097850107643287949990638007157276363780536110037299086651974532052993938863129860370229298644951807000478660750942605205352884733490231469575673276627502675056647179719238491594865549030058104942008389576062828789055806798012805565461116499966239291239558824044796024043928113278456738427989387845083113582379020220115968204048742110814473459873083287941143922708824957248865551078170920733115984778051876194750395526806404171238328914283669201037128530605279647485850660493150358348145745655407467162804781381170565206562427257888547897135202124106794795395599750527137512688404910338195637898592571864148842105251379305159454629031861532106027477901427020707581338208253406102795782902953462066252600856508599344930856832718000038665964526231951344922638117012524094860126924390302378578022543515304226974627441163917858002510047812831428227369733174932622742094269945477181021973622612026896923709912376465382793698618155646554582940095208434685857613795389272571878211880800099753342023217128830340416645952338960825400315551428630427241891087361738846310231290521110982104347422231010970314988317938848302858275449486131609270088660276274515980677788693467631238293599157477266421853604530043280823189533471941492288847869503228064971984597306364655086966680786894000087373162935917747684857406404046249753650361158990173667244172606714170235351955182854027189307086097831716378045928913768385716527764108557730872389980557125398901762994142000480281974604947574355541014959589281244191606833103606276762722108201606420692088240361948328145491355966133379779846594745517111146411187555472787940737775792860285540947976297667454909873948114809585882197564338518330638014375650741385169299705866410562973059662802884425112607054511836944625798146240322362162804996957906749693103107164687377198578018825323827781858067217963556570744578563271512627377917563105359306145716698267031920507468735826817359762485568177169496053491472377646627995275561567576913171881086065427231143805901520815745112043186890431669901711571239542952562210826001140286701075933510303912137498464614330474489724515340935669990891436161604456046878611489308114143442681340156164100868342028051685861008474301515382615322999493845942261621601926623791077087612756315484434165324482791516019263548801833115099716017922292080762085078453364883751745534810441996995844647782089210215101179984781579897237275572753182870814781138776278873225473923611128248296718107357961858035358345136889759460602447773301192509446354087825974527030776136046949972541733532087352835841863408572033679428738709989337196474513536043472968268956693443864335433217694741042086656625196071530322501196814085095420980163078614536158277289378995236331919692803434296603047669769008630829244098688267037149113146161095883578157470170051494739027755485835090643399947145419624491191572760643000440043631874529847870124275541534012698604389879417969308180078879639301908105959899989448287202880589605468599540968364878313913903622893791978752924203004811603893252972688636754284278259995531202892531508731579299243862940954292702529140552860297947871418965446311238248991027900668481435896885915801791944755329004665035752140311131139937418506982936976089243577818377197810961201526603397310365773852019504067663137477825044507764937467464003717858951796573158515516608844339696944196438116979303122034162083329321222506779022561035709941077830271535794322323912876914819389878472773116561150193791380043853739585961243459852141849974720650502778512297852015099600614574180306285385608565290772537286245002579516248567126595258734383390286427701585757338497535438179229584430199480816516947895649317653321278608892237254738395619854004911459813168033211725721192048275089629382385181975508679806575566344238369672949698875185225209066433141805994609397099982251254549879028722219238052899851032224553348619766647364596918584775870762227478617945828204397483788775705384488718223150457375620353594469347906457719971645048666893132204449956485594924960130221853850115036224566183814082795487497434472778977699273921788086980078278249171326499532504480987882047774653134149366300184186258385274858183361185246169541299719997515488035326260498688780484066266239531894308743230465674554126207688662598909898790863781308112679591607795602993464252768043884348240938256117686460244113771059246515557035042195333275972382638043294680233961467939653020850634521192531829117239259397080628736367121128513004703288778240009859427147493666795175623155317574193613178827077641826159437087585257913088050153874127114726274461592985411533868718805252349340946736596604639619104036541405466670223551811716021068234287192084694019607552199845380356970019642205201112121355815844741224286365132953802153328426248391323082528200057923753834205552748071148584740085419887969136092446565724258833660711177748435053972829230055225464403715783926298739012555805374180606703072933529864407622292316548326739501825900266785308760317508249840397510614305224846438193884024079604014352863843321515306524055994896392151568068972089323360314468857503058155761433046171164597283966715769490317380212966844979209644633089877719528304651947667362895355810228778972172918923354459572436460245385208243695489536595667283480290797275891907953906062379448121534145343861386741000483442281801832199295947735448593560044523226159537056316964617830587736467398049014649711690245962213979342610867135553632723781301240587818900990173555859937939746524161059708621891207055534420590347246449267112514245396715812978107855737096966192540377679395805017613586048563204226714823138167045251271878303458113329924411074308040727368128302510819279505550847336284296198116885190863101921534978746711498337918017079010520748877354267068782621883136950493176013376056682897852590837081632900492675303125336288449957897098855154113755778181672614140566954053994412413108226147276255237643054968640082671775795585551690339467976606928114897087079717679331071455661940008998758124945297648398415757415337414107665673497286837886625872189292855112573303122747380404618050719564214626071868870961938786077789891116723919803046232570379777674027881874288100568345016356285588630515238248298189145372381733934064707240497622640049336818421881746515333937535254389797040958776454417056284646033757652661856378084097840337310187574179612750508503757229279931011494112845375809774567198890311178958183376088515665588685176420079353867811003303915533207211530619712559430375890803083282464122157627878045397830770598151599702625770850893552046948433366226168238800441373146274589816301868115495510442226871877941689475568835840262257001676700331064080283604714110712675587816163075240332681751637076125970477611698308240793548051948665567221859034297045657859962848586428966514306254953628591743858796696758579547978343396411579859737287391469177977332741269437600130814959951838699876759091213860342246693863492761935162341222546113783073912294406514646707014558036454214448699332906013447371856436636735654712446046857074994214233344028626322885184540549830405121829834049793141420689789904410887557380346270352344766113989571484793497050350867420185876300055105835394571282674228268940586381255967235393482955427822544718274547804426431520365088104248455592682211848852855757604858955992234087668903107753192541424960631245217404896698313748018174395262746712732805264957765639811494527946337093942152425793410247218962533403765146538293579911062242465373110036402996122818071327079619188575907425487220918474040904269398862281376087207866872726718010879681041359369145637907913935273754650812887806892366447804895685721873118521910347074286392905431116227484366954880952548862616726150489538860395673704203492436348053142380991510221047036489935589426979009214501526012090848718972049950754448103859227872508159854498514998787746171708217920738322552439733656421324204241211380270260584848615852676331481764027627008697864537186466922838663532126152465253784285418696644251538589348857632439593555466446309022194587580499049355187139281306655017057662178782600813630099626049626876433233037720460933415392235033747869874741886194973835790858276218142962800668788165751085981560539677703920461443348877261035246792139199860814455914878655323965239464235779584883986219626511247811266875126160551645566011564740075902415450005899119339379014973585924489802556632477266758500666399339053388052579128307579700749221284684960471050867940709781864549081393537065393814984165389883506620212734567582092216372366932666499119909566297380942322127761502554972681203395342967497527456119542831947649801731121279112402635396234292634637493187463819297645353897715382974040623802202094682998980248207744594803693841166883275000683431380213619973551249125253501785035533136868959433464988390996696106047205474055247546572072942415085120848890431067851909353190543024710317713878382129911125044135851863846447110959936238675484364915973024533633127220239997760270749934665224278734950413529646108512553540203572618357868265785848569664979468641202122992665103338547215451029273032215622561986236719086107109575285207699325394263774971488710984501766866304865776433840261481292005923022314431788850963604886883492873103739513360682412933198312236886531344165317926581634882715313258456104461250030267079859212795580287634161867121032627086501505762830722801656263189517004176284678779285984397162310128020753230799636377566638843601211232330024525523110641290520614784905693510417029256175173126985287242264060594228762975242157020776917408175985659738235298089950768407801341713693824039085416442871333138026863005103028585649268426171448317036497569020741867902212122029111535581713859430408563469572178893426584422414152708662220535832115835735901013527957406486613064125937281237655463985035211318328627555310980520682613068703102642385513993729847439054121632460281476536164386633105474626137507326291191126114492899462352102558340149888519008301583055133804585235575588841920332271716060290217243071207635312753217699307751997848673592485509114238481848595152744139012486771099069220480635252136613873119169087344070589764687599366726712576664993088982665928712061917875517481453516639743353913576099169255136346451069308715803630975637629530679457840596332943689036864647514999261521812583677704032524925350811716815340899587514309325095600884442312007962066674802137901717984116478226696314117940296445740458581685702981481550969935987926526933744584320966786804435876959955992520517722774529901204946877409149121833108834829945818924814371613826456479587156621685864504051887212093437987077877244150682177240978960884684715885440966594805046368796274531727591555140341158817690861098093880420628760487707089272701114535650902687496562217622659167960427561642984029077146350708098022180492000093521638053036385841167499231183377345809738835298879587135617939391290079504635397698085154474087788890732088686858354998202450671614003579745391298804221804175548080997709657993876312028682572398788794716324456451460526496526814953733362021642272486762782767327002031977548096546987852766189348152063756924577416284809647760944965944419609241910172456300271333842366418684108480667748116378610760156226798333397328011351840367784517379124132516838784199511612238576740336343085427152825005807493539248707775994734420564640274561985946118209364728038126508732147390330382449073597433254425487168402205435315633298880154259566646512097391736467711968681550571625656456843441370277766624228279557641616275170878465803753682600016215225212089533363020824703767212320169288403684284875121292801791609618117030478022881959351635647681558066082199369481032697663425472760837205580338701336761289760790743629115950311311079811689536656510591993414716464580485238533624825443788365984353844985139643305921543707548234503505309884908112185657145207830902067021583492949273054457903652572151551568124033503272267131560908148921310650396829258355230526207782774849979082759951117953919705050948099567653118643688823954070072264167760170248491751395081844458279670825265961888932532768141080722698651961423746075103793509329818477937484435848181149251047931493273276519456776884150265752504913687026106884136583918622501598026211725667251907802562417145437472946175764312878011455196287115123031530537161606708371437434118838198096707597835383097284904931969109104312714322986308959205167682333479819711587198670476992573828374687660775276048249575609815956569117743839080003616217687485013116531676135558158219549001234231592327641266175896515197989947875517464057681522088228699614763516317031417303154663263861120061899909121101742146372174697879441885342352440175586893051942481170655147625525498932108331706711298269662041635384094775050711116469776499041642149417151717687402768210601734286428151382972649765197878334087129725445989343028559646110032138045036744625828043613033911154953818957591627917558843083400742757705974605803907578072543040606121445611915803271039752042094333769396835727491584847212909835318591487255730834097238979159434688977650385049938022633446142181212938400926686361447517393376776978238918475668356360351924870812143657285001942674944763618513399135181877590827977570121779914433083292249065029510442975360145778539641947100703592761205626536665326033228481464193813572983911954030518706171834151640287347005526922591402016083936497512664712042537151866678485730068027246766290987627485099199096777991753207745115024666869598826621361918635424799567824537819393036760467896532969086373173018531239901670617085649479032171210286423519762120137703925543062976901131394012800627164780084692884686919061771228606626026786224231931109635492063697502679579276811635586736355048929407401288018895062607961288629352752735033372741206824476954963405206952766827214199784995117367160126334053234274727350366959834563586604899024442302084467898232549875518598295386359524485592370198347625504228324362193301949932676549011983930646155950510755762570294962378511627783417317226809420610109303280582822513717613141024460189744481410562843316926354796665666335987633689176192312988949030345823910653454789762141734267443808042852328242290643221858964763091809064944150438238164675377106384138394361745453387871043362743732329268936347646605209812660044038078513380080611623296080190287030208236704708439134539004046245524227282101316872346994748486066439550135296514008454770241779971594119662396398123844273379328779441681074023024720770841668560755344753438992712742791417822337790598321035856382515379126401441252133202339832210920364544218178106756122477384909748043084225372193927195219054684284299276890765674350210678308816506941468795302720864723409088542400784085040262609971858006886494795920541420815178022133431332332069108019277828539759077120870313166305277230204478578388505304642592847143614180379301785055562574757970053983290273369420414578128238288119882909880370668449825973423956102875680433922769773371899148182611164315046464386032524187684049106304862294174470274987904765706626790381250122698395757478534905917991957134597904623476144695419293301979533310733826771438156848784510970693100703590794903004016770406437075773560788838586892741262707519062613775611499617126773850494224344603019751552060229525424457324146881080757703206630492509626066693348522753198604216345902674776442472400962442015918097854567766929756766528645721073959513807508504886937350313584303743044513003809257788891273000677533096578871453290003619417724448776801105717223954781879414781563070791555561590026431100778926604494181903267431081039754468085996715548625913983461842161439569443409197810672124985003425192139190578934668359550600770085785429610559306877239581889550015910462870708739383734930472379468251966962715304660916600400049263788810468945802322068441695256301212014785831811382471811950357648312913765406140551582458699160559841860079769028248615146850900575627770571629822920973449964051969445060937472765238073176948009767615843467184073790835984327998944416650353252717972261080048568226271912755995891850418912507195457332842598039253184350318901040158759727385340290255168964300273146887695932691173297859275253503829499623450767937823563943870988884382883892934816022719973755687951833128489913118468161072061048662249062791515532929662328994366182698397420234716490169987567170881443592184224066603968480081966248621674966900073248037627194907728669025081598768459381154094685819008618711928008902684221651959052455369238290511063144772044884384490750891071783228536095479564215935233443352247331200018321573446441359287958044869193205065245260072524900283078722228524292597475238128979381964046861136892449898945299072380804452398891488251740164088419553441483834127682424002795736579490974655818962715334292419118996237802453947758913391217292022320530630590631359895106271322002930225007631532163355560275668994040243268441764257130583227651324233880784956008191881414282834189288667588822112015443626021689642133904672094308872366592457016034778711831718143923264945848837298181611879595685503049903781321791841139928581978708577741416891187081807553114882398285958508462667244524327536778808985586631677997505387537377572698949169564108471945846513416566504345114594991351615394881583511412667182737422670389549968418176468038429294153158535285090708255440159473581195781236130061300919518925676694304344812108357261657000409425349164257107342836955269880638257561728874816693083087266843113032123266067021234853599192349523507220854463921672519951634346546971593349083397188558487546978005124112624182989525169429497465200238298264697490235678802563459326397529555911889473697141600771950269421906984278791677702685270094054986859069494726158324233799917088784579796125744949182209763017107772015320597315405425461075273606200775767982676263287852278770879939450515496672634200081226685230951044226273481966676831526369034446074307221895809578848589112837888403584766478075550954480532198959421746409017142543249444581129702674104264159624825771927579684739720519506914302440797620939050351439869745970774473939758200781274407296903628416345740048256672699464098667211292497906982225677100176593970605067776599668047348343910645564367908793189710511020030650012125377777554866216912469908942688963070088300139770539150232685011103428141873197663744397990781655992917930137331014730125351076726724872880736847732450911553731848901122222179199136434462410118004248042997301555944806117058137683581537307034125447854489089784562903512886745366648249866730869705349886375544191068352264949496000655922527576955345540637915477563887353841447007116370201847586321309080650824338151378256071053660770353991703418750840131745287615558853243134367968139859227724258640238678622849703396462872234782813600606055955740153139071641794365982252883128177244630144341550768174937723878767127034831202445366823024797505431718678438930107475157020751319917042017528540995623515796642702336139414072408147559818736518300922757496214679041408872808208365591629489410899051204955896001945603652042701115786330584476114725016782645192112612707488714604648200990489128270997334275177607515520273577871543831672189403080718534808393926112861375838094522194265134221345496918496882674904761370321341471066156477561431044233648123196737365994195520922803039929424682844588644325459197193400125360313488469458475660376692269138722173288349641174903968041905207159412191990325164000373371557487178491662606038671829366935009441898987603980962569669524716937312683864427567429204782914663319929769877129534981575904356379693290796729412641168252775217446925705178010605440162351710572634991947238398526123752225406124269798532750883755112247372791313825147789070088872472363323765304818297464210121323335679137730974662036135498522731088309293873331798763909056099643847108587144297096035718820423204294418361410488090253829831914040154499070677898363091690423871634707664818080142142872464533515037304118307884296654243822225267946467542366709618445646431331459216576461276746508921596187714102555359800139445889464057863085039416291649955344695632496967731327157882967194383493131325298644571331983701861250654485596704907186802459444162408710627101560770982297342616134954030250281654921430084997844583199074664203451736039316602266573961841184320768765021664247028289687185110193275544875687225710455588065403826260288439479363200032961766370909702861394172260162975628921662186274096572830718195820968004582270365022710847094938397258155407518965276550256032278854073375813239175960080838671442612676959838041928442152431633181607740485742712076931423861366237869382479872011181031359404168854783201333346144938947095685304178558242397111888506139572498595742768474839390602823180789013568960904393869506111428163482341116481653398922351544296626837959409703017473528868538786505255039388236576878694779276756343226022623462126096577809376353718926702527495960600240055966880738219771351805464396944599323333927665099156006377265304286718115249459139835052475459822127121598227658756037857716716445929309631913560624174624966748195647345408740901819055547479612457117975097040940229591030021024573877667621913979487691234848180019060966241867587000888777959199878566808947742650498963246101265163608536021597654146831370152933876475308832701990187359436273074048421504884393082402695858433597329067717291487784105741247540528020538725304819047810650058296321102995706448519307980589547462768456726456653693040871347176835352982019057625429566706771917707334918268844374252824840542854309438542713731790086075071982805058790025263407675577097519051037090142944820179680823862168972650654760204200946660143396946669936426483280440650453639127922016227623762950983262081293806200511329516502997642857847532932664306148913485691948498474459164820641097227837714326949108053125247246398307027197552247309260431349116792723711322315065266227649534021996991620367073604607341066374004388258227390285275214283357526211001816090177234125706753635780292424436988597710710144741308444123817461040577068929069773771428262456471890831952021206106907831004496387552533387238124963748373704721275879157654327466017756455083502966425075931681068527304255902995390012553309733553305585785865929579123096285692853550525368183059891288484425669475352253228306681951621722336843962882700149108794741122612832076365789588108318304860086078027502889057610343466235630706422911130172605276135577430152946297360165036073790895209758388419418602385602913366493710402276142453843546626345890587529849206523084080671337104196344629633236571253334931291672000964927642416550361348793886621318340929593454646803740737002428813365822876879423985248823110426035632363240550189920057968014680753246655810679974814432476972099812168459665180883186857897033908381357559381254909887436974915417817710569320834446600575886039996094363316637070003307974949789609488758293360792046907384178555760733650243320596036351676576245010404376972928905687135679497702809485975864259727949096467117557102184918886430738562995955433204770904822090112981518390905441444639424932403879386484208029741119879504175390738457838108897799226485864141466023169055392282414075073888329638987197616696242700736267855896060616011173730584258384395786542311356430831700313692085411529559627129998233113738927419182270941108412366626759102839995734107408203681809184161591992568900398303596378785784335428026491916523107516234985488651020239353661102599379041700513428083750945578150183296730478955380420114631171489252133436617263365922795707361343565263139484826810102555010037685359823968722493776589669315228221151991903632490559532487050300029927131705059727850764603590090881716187019406191380634162002776250940598980025848694401372354142564179115890299210298891405033960261359967348166445594908414073892270454884819004879102781539588242771806703167337841228763013764936196255866897427036555741039990087137727056199668964815206821822839457226979289581855199998833348404557826346626948038375353419080694843452962179965082649810232614108939060997248956197510518912561840207210713594226677692441417546178288822924822310412331263958425382262891369587512957481946619675576715893229216338689883949770555021779816956654993557595494096097383231598927814861804861413702490597032459852631952026355616069526327668671004468214638312816592761959443912238247122384472533126195072564133711815170617987034558034223387001146452800165033485073085674528349286349562832436021158334572517453340056397264157272377980273586706885386070341094935095547393308606328552960373305431997084346618140545871551827030064622348973838045090551287654951986005937882495953097138014212582924577200962022027878321528259450495354401643608583802063137986840054479602328797870664676743237238221949927557975216191756693978417744859090551674009568289029338670197821431701289486661046360152999651406903845566010982135499406280755145701923017110209941268606323859117981754233922797149127590486267007901917641851634233129159526002907727836597051509128593796865967684395425762822361832372577564548952765227208609566858797790371297467969512354375596055804697656669123052863557774137607878742344997955830006992290871876172571320351038047752842162758775329236730446119887809495966334781418616872750496554615782420764752939090658350908705192499187876135606689295537426850581520115411535552415043464813464077274401387672765762036354066850078176853719912198941843242644281747843547166345087992309906636592707842208716190790037569904498429741864444291624505654335532479929533252840974253318913688250493112830602190503586841332528829523167122443007580669187666271697085671299356386869227648703207791005881568207864612488226955540335737626751412516741659107360936370441848576589827465657613410009888006577504068713832069389237318840935142707674922616889657975951394377632232448610833299276517059772903482661261114477549616292434017811685306396413689037279898173606397973354358835139620087904734130745417392142490360571930772975178849392484567852185888822629436764510812848052798427741485717630538281091334885061033949128180614702341011746387677211206564616761583255482303999950827458265053171647754649362260664229603257415375286124416249677398753900376401557927944177845912331451348028691963052910993410743365568694347454382177360496203277592373740341222622552909631195595151941773516189996866692531876297826384882164329195215914587761581496074645401689453417507987456863668576883902746005105432331660813048936192027164138241241775592235353511320802721315404776628590350432454974100893846166764341166602693080107251014477648842011824179438065970933514743007601948953925026771520076397851263827114753068939317672094299322303138671432323777275339973317517964131723480663990142414279571500343414428160010817149078460920533166707923922358656680817914119211427877730664727330569183286767747423486782080603579149579882566117698892594383035860001542949413298623128411456396420616764672627815062602135298694700834971233316875947106371003607874909944514813309639842635280827862416474858555659162701731902852357545106448955979861071658598223383554607591547905258069627849455777142045863753796729544972520085671384897062045463719841420654844706374751168560128450427683023976404352590224547323600262477578632504548276970681902729046973262446187811123166233900360026873154268616198592817840233832044477967995933434668924525018094098790874827028780091895203156333561019823282165342604068361323621162848152219746722599595532047218702763809466537325714542275575076535134366515675092984836952537525082329564443889217698272238177429581384497658840262563356956988089405919321529968276175104445595144763327340957175790422181585449325775738826700990337335496383002643173366151434094637656812617955963179788699388934085133433305835906389095091204236150608411125249062012407428966414990049796580366510722460126164240452924083747925196732185146273117524951338692041210584557593905928918192755549383911512394021400335371900215603500112072377785417347913500197426110029749997400041242740000999968694630400635508796370284880218699857541563466842245093971003063939533257525383358759881785785302211681726081875415611822492658350980988137846298365794914241263231292883741625190711408196988953173711453571169612423565888819201232297675758259114760093546157259551576937426364397639918423157498557700976141697679697883578511355357747527172461283398839401014663205090762546034817559908318691652354137986696583700984332405499708894921122011482667242389268658412613823434590795944533043298096948289184879425354138004729717668840837670488113054249442247315257936366595634036405843129363247763335839561767623257167499140242380458500981779132112376202465354101631602223093394825164848295749498421558880398589228638470113887014731838065443866010004909253525239419642492743957085754073910846003722473377309604791835807880047992105756890696048826303639466495439939538195017039661768397394226485112182564732332795386484174912468008085491393730630962101727064947796252688937106772407275174208352781192389601287951377925549675096517064890749669525602179563279007482204458064993869713846022818219875537355194949735422797767639932995329969569096622994833616134557454453474013959948554545944480447780240006171731648355639118600589486557964019245470509405351875709514375468031422761126428931473429173912055362267472776501620400932598882740542820203053176850626351343881581619277148960549849284977732009690008324607604549814859296340595071781320680435012482809757718648030966373912964465043448034762295017236040525093837320141271837059290637184724270221229107900117480157442908111142221555591968491640896898554870871989620831899617388253253275985068710816744094437137570499938033401508432116251153450623288527706028693489467510249555428097505702786856060487276999161270512913340883889088743229347688569461905673003265378553073654923400349816439733365851753798296049509915968525382869711024488196225689850267302937135196302356667952649998298483105366930749140984424317583643640925484794243175188910351300275260525491334442623453699792645334353916005936679106134726244160128442227348182629203662965843914727390482972244839111095121783980670071271624517356095504870968073412194569732647681585110825384040177950750488534538856973994105233217716601657208042312531652932600591205058436659041801538318038793563216424353123061121949807280572089198123920195032830963687500764317266288884529847939005794980031256451040306672074817873035358368003464212295948525190309508327492398677788401752059183051933166532167887985645510919827431559275073073942198574491881946268922254994669564050123695569752958039516238126141665989988412738219125448467009071287926504558824678175651805488072821958103003174550204404496990283248688988076399861165970562709643599119468817010946102066613880409646834819410554120486065075918936886375577078794995762035023741702568162967443016969771163937303579440490459374886608819582838055572492586136381017708536782847813221614445230019445420106714695360490474368719527031438560964050767167150792864864518872540633134296197621556211369546182894225154441786695496752557811150688123897733008402977395614343094613463970200702287878960367576905742311124543010913735718682430524031544966348545106304733258447803607154632559254781286763268111727323425559790931870085518019627061079249269196770691017530330190378228092158926706614308129357601014223824080222593202520624419452236597943511985342807309397925636790976338276010295767981109160592605247825955207264350960129299886937651627324537684249280883163886985396549997895176337533397603488061769323957572987958250008351325599872620504875571683615413493058045223361376451495544868188070962991649276660710186028662799065557564016563607983806184519131126091620832893969723796421069946363649514172656787516348774413105297044279607874405851641196121498931403976569637801948416729843227793361506900925947914938302623740661634885372328526948193893165477394236856545051706614873229396418587501526488845534858371699601658324192048043054249002047277669074214318631708981231737411724891337420322492871542374791515807964376359090499695274734841359058901888939977505812877658492410318744075140840733442214624838120838855598277737113779252819711552087387276491263084846891280610994024318855485120439386239015236964908076986779975190127254281288184594778433771551899342958697045259522082854109774499793750607114337123252935341099467559565971775294392188226807621505081896629701406689130206791162069483860201970067999372201947809224434387594011196406971258372300375685830190000328597719596712186691330163004314289843765448819130776843931145657479847659546178141132075561090247409120640376594229869931560565130823166464474058575569265172305884596077909580752705122160109498014174939015521352874908807315417390174304083117867622060363252926712817842889503585791144465294011278549147528069361452342975233111893273944395074163125070168437302465221381240433429441780449609721282285862527237326654976351693184749703457209084626466803200989672814350259910953588587221854936191930292561256916702638724386213266936296907654910374838383683076183299437527975926057685319980782845166880268398485935093156708596272805402561317482806190776964472387538836301407846339270388936077509950204835930957414451763486556282571056712293905815503994820554470863860820441642563225540097764445281474613515228069647171822151053348833877266952074989962611382168272901304964590994460779290779666200006025128423683140457893812555499256220969713411227114349484354565600878355453314199166971960890073984070776533144687153136720078179975203026701609472281547580260926852765060600953074805211418170426555520546061638450235602342238002548230503275830352044858243761841558736213871832842802892120538949975657840689100246398665003212621419280669623513239552432392204589140159743217976193139022479856430246728410079635526797532370587936503291272496072074638693585704239335372813146291437654195923754834862736619715707754675281149042005700961590352814973253893955565818953817451624315212068733657227626374780157759179590770796095482192502376874766779568556672364407901397912015788916173556188645296804243480549121759411604882487136473113874477316064517832356375152420589465521176205735864433907623068159498575064548506760287971915350345123134507268177641171959617132841006051380746218418071344854297871402729525270454083775992831381102751715950273559782669562924889375336133113916597104358563683392222754708276207853382980239384350869105106310356786559782327578187221190145836415190103502249337839664386955295754384640987277119648759340124923118023047006312388936939739794497962679047838103590282200609652056398627137552133828373854787097096183305911044181906790575086311972645175382219212923654468879812296691577119455807629063717146251933679697641879197143158265359573937696926252401212259461323040371873796109417008633691169236319834346341699739073897827593822382963650988839566427877252001960009976999373546960937588949468157012362532971199457489189485374836305478477280716154245158143738986401425004062649641437342226967294432964167248213764367456591658010494945460656835756042985101694196448288257017196397908749385629572619411649908757186094374201439060190746272030380781927306187478940329388163588165345351722452061884711869399523761490435276792192983823950348678938632489489186223643990075723340547136705592384692926035890709277354510019676597071591565089877169370238999280929576440894220497490041686523142380550696397353039064922605598191289573919003876918424592080362877611549936842938561312472828942878851942871814247411762105119391023093424174382406740529502410182335954369221575800969391141645608453220510548427320385709861087741048953762120810374818650285123650219006340511514717724364654244506925430166804327473386058926196986809139131287127105651324138313583992015710016223265968256936640461631335047376764629648690193819034856987849664863643358586992819190793481662650088042975725842501822078719344862261364057693438336123927045240180142439924582435540050706357637633779745537246639815253648776182114674709155540934440315490438902641297846316332556222404499354758385020745851966891798008328331009649602920304701518587620737949191797651573512589883326980471055863942766359237631486636774010709759195318757870811761890030430346263649918128858761047513511179027208786059685389915929887263598283059964822846793108548859351674498305575666063282901463790975500172719429248676389788350886573972099675073394054085652367963121617050627923982379200297531539475427129148384640232841439914027933348617156480639367419957324699777633746969692960803402501105710855630523035942165287305300977200520505690636161530797466716441791988271437295428126079947966267973602934391035491790369004828112806424031720198326644644772653359022758447946198423598421779281069768728514955859170526135535180553939480703821639302611968760453890056713017642591069026143623936072686048605788757336166015562613947167800924085622103423970567632569852204067208204556442165497896470453898355337425479335313703945775093870562000195045769333140987262750490874977026686986455406883534668337504610628635817740569022602383293595883828251448158392994809961032715692953405890572118771657651662611785739527862735777692890229146203290128351140174537977552591973642785766586814665632258010278574942494534637480145248105383774016086160486867805186363833354453676357479626397699225908712198934245776973800838302529208180763859556006695376289717401342791747933635423791588002171516107906356859541380799950387075489549870026046709777541116363767954615379496974744790338965108236432166117707978733805874153196073347686114878002995751139289963034580045028758896420555181193283981877995634634520547110614079238553295089038971069605922918863672352553707036521647554100470486859308683647474782703192774432937510197339063596246785570714014212939494246413508528550383185939131714084369190099316871618606742732571872761279344637722969916676555543432329625174545639082069367042614844032710827954951659442871873759168999251694319737294142110006356208034341425660490924690168775483733361293757280179539014718656511983437385916011069553082103111505063382491649829302348230383683587695781270633094712928764095020088913057308776072870514745889083720657182854037126234533522312516613928203633421908532091820655305927932068976311608737128290638355108246219800845300329289908991395504613266933176565897722118146739691338659514104437944728937920537051837620699030338468164355503288182245867193584701197507265417474891154891524899444648223441547547418334469647306028588562255738165317912876491723257432566142276087411004553710595945630239161648812124474785986319025727185090002670596376129603868668802210396962295659708652210296754474389548581378948947104765563303270861411706439807471651933215352105787174688340222321017131513350835068009455776134690134713778711595801391842463227823140444918992430889392779648901976454630992532275200066504472163282487920978855356727662220265609848058858437019568045346261760910163355238483318224771943330508286040040770949110306194883939422494459734687678039892211115913762652001985394906656859918531243571368780295478438575549033309859944173885274976417594471459071807593741089711768423724769148277536727790777791159766374919965530543070044798282523557278903729688929116259159247120283517161999475833501463108117213202169013376473619919492920145986162002139590658593813787739857626926537945117163990602620970894462073288758651913137662099983446204711312009965974370643921926808014361708533953045061325576376114603235629811690209784499766715106680623546660180722418089192771050726914551908517532358920030670481015736790364716710646609196966806526442793408986695974863619091949736851958968870946540395605613881929153532972836660018951034636081522248972608619537847159812145248067589138917254735101565641855337091988031159038752089595706917631855268447571395396252660417377918577906392119911582270064537128317820326660556571679366292288097368188263522142870142758980835313466332683402833574020134948150316251316580372358309693973886495746477590562104009866990947618514736354805060363461418559461670781088618520315380472708523049061889870272146972945145064235859252396882933569096460211972387540312965944695190346751203329777519341699415422615510279845389425531819678854326856128405907283236315172421950077452326848466337145740502443330133814218527291927313033732778920494637914554869624397689971524073491981267428055270819806197151468436288943524295766952707820262419358552266416167386324844279362100247327292563258030279465818601034629426289462114182890997557260927090748465284996121462872691822199542991417338640374350425277858772765576396686384349438902281928159246965905004263489978290650439955206779601469908131211731882090626388484885072314168541951722841604794618122092392613494959723260664982150290906917380027431417947520633784598273183776781700509539282935971390118894596529964861002626986632891451418049867707201788014149020207416630308157631466630773122446171048338308738028474673940933076853992194206610840391146171780593461589066524733779680045063556666239963298005547681359623351986726833310906234080154523495466029580318256600603652713704263017712368347178508094329496579785803985461187056126309137365128971252939591910801299476991717294759901194107245041071553621153665809266588696594389565205490557434256171107902749228577424165539794669749032901132540425793736380560722944291255385504060707719520589267687742703987361431067103839205591863843906221357179642890452753960526275974212862960836206219734742642839812438550059118201197536924921547527014120708251936911105073715638602643627898095212575565161539270272286556731237533829385980887231122318750870699529714917853007225236102924509258588889118002192943771148989678175703415232577206899340898368588444179936545793184189356401711631709663078703498739644680502478981891372867072385572853168910315509806227521059654095655651679420868668580043650647357562061638900748718842490818115079403098182105426455003913270399499891699318192573817947497312054524658387504364660490095397419425463380829194243778160458297353573287574911472822144140186403437190627046259441282448474049142090345128331603506640812501023028119603868335651616596720018007370533086383413016236796744115535044742967486978080925941679193297192008946769652525131731108155397651460109806887357230180047661266537061286036639301155253008209761446125755986741543955314732415070182861691318280993650103304676061192389401095891486558276978455091265196409135011998080573934712960811713925856151538027388031614012288126274940747959870399764799607379874498887518229899213292134901217961412681646100355923789807073536564470607526189173277178212609015615880261835206963603434613085684197176572780087503448290782997242236778138849638108667434464519250907777600928554308120667773086386606127882666882639879114589279913510828408862608594686043171564917910213478986561565752924052807703848789312741434358251054675542421827548317990672275077767337397592840859460704884308245442939097779094834251663172617827722909497612046087458340125115363167370999424825118424126616222531808024013882877700296585559847520186360713794573602633594870004345378562835933819701014549715753926055919533308879387867340511215179708948631630207965324076033191412338390070573446119337901848079312788820064008887461157234514712085860669242714371120928948200971021263750499385011577537908012377508458620539131430527298162341119518364153530082788120041265490137881472849071175227750290964619474491461026042616821011555861659590176569035302432742823882866623835764461639272254068142124302500938410286301717049062028711145449289475189359945989038714678168816617270365256392065087164937263734298134011930626613682498368765872779659078298595988221260620518332030579136240726232503678186231360940308308203662570901000037383419684375024562964032886428838655043619336072616455846845633058103470955316648214570374941648494514953295077428509717925168660875997209371676744576695816452510007639404815491575768128623038162191833850812749546855495927710454521627010499405863340962708171633020803603647317616163830229622608474943453727788677739477681103487112875307322650313466518529683181752728216750548780229185957852509222287005542597925718981722685854858033497859214495488180308198469089865671838061159481309003731975824568335918305059723562461566833368326020609769933207940065566604241208036480252213488474682413540748528708656488278240174692524862159196857248159564047300118337135213667395410628236179055411718077042172451409800547164466549716048518678682097297414761332588342566181333505229118071996181051885289739077751386632458857987031146458275116849397341155124084755079948733663569500864559449697888794951526391158342405620191592114090503343598526368628027059582855567151650947132426791526911812950038852920898409105242020345243529225790549858226137892791656737698740628540097774795907220555297886539421045547669390858113130165306630195229769844326306310584858665853858501539030753027893813600172933047645630218663905020915407960632673199026909540744010795781853841194594794312565782477792498427417556620385752561899753624475082326426304808145929575277261610627189754120150522371881376812097794568375041679721132191467530357134223979545930118826517904262578121998315318212134180906668840196012236704713193100889160185499390540587755221887497743034879134423953646676791371728653033897964849141122622089947289094438185996246880410340053392109813175137149655342713229239296556743229660374491431022230596528012053342375413727222648928099122372521331794131969286465133137362166706856681625583280275916528597838814087682840604197661050926754269459563266689467606953208945085551443258757425123278156817435742058322385545001309429748816096285199362689139949930786005047195717645305247916046084440720979047326291757796085135951244700359633086732864934089395891438643018292248703354942833317211777988648758782540396307923046926064149899885311886345774390451481670862017189735679003825647075967556250355238981447774445523597237252073653616517954505566730966855863772118614642738367031689960333454026091663630613844193971089013807937258487518774273377167544058152654087575830570038989302259084069084072508611832635735155278742822741615168893407735294649936388028627527805319206397874944913268251718456662152588615012217309634395811964617762972531826740856251372357673425340815294967014932534540573402421483318345274273847332442670771392173818782836533875017438244718085983712347205566880116298257758270399410769738684918901282356375398578649121845480573667374709697531661876781862124079777905311487139810889849627398306935044008237987823552914874707178829521896039090457456927550326179480214145322427795504127575131586985478465027142860490050704067021787910629901413001247979662795482866443645447164043046468368237076764681251844541112588244990763436195749812755772679358908403134586700528656262187086640419816152103798701008994932925941760799283541463729778395186724246776903336602881798562904825862521740236857538526549266585538753652543229445562432258902474342265372774846876712157684585827849341102725697503229231281513385229580629738023013464559569588011044749377870330408889214340011912554199126002786241628099015936735335695361381186081598596314137845442481678865269938686075595014766714821881646929961597762875587052100111508300386435932612415268736421048709692512676934306263557830432647964441025258835164939674666534029113197086120030869738567468155932469058418423289266649039368739916532386921768844479952836932366139735937618928062863316780118064604962249080878812885745455735422523740392978157556379535692597388675131698046266745467850695276441905118226301989682053449161548731549530673729612304339604620744130153818921928000823606758745773139937675385293270202373788381520000604816748290423488056146976019363960666848039315922171642076152742945669178731337329179199982126211224174382945719893241788662174902558163187730052525718048621537648838423081950448663489894729171665052896274421631286195729734955890973009243495594593436608615479559650869898862063778584621396813210624289011457291276382913856554705991562088979289276100909791702646239497404884897132331037470349361211100826949605719962748728613366317237508130184250134611488036859064322190465161472174705674195909985331588544292253388097166318645811333569078973137561916995515435832593628940534516135881821982701006458256668346373225642595753117460512679561855607961546295390979980683686194171839095156625429765193290051514442243367983338806356398692558231318194485284452806220268793306733895883632682412591124868610852601236239670768085777235397390620860906674265655454981435757475876798461703943106118769712039423537861406885922636742091303475162639922263233703156152627241044571899636183722523347510726206916667058103356989914041875079238002938141126705929160623527762552365142710387138323621581814571569983990515312346209440363159270363106772773416401689470836695313171942928438291682678378270164038901934860722656070274632613261385421641867314843068225398211116671493216854722364900594081311227893533753737617035224633835741057135515373828436421447264704320258749216451493149035841314002507669980966612262059823937956164505393259434635188784959161039525457389578824851590690659788036286396024083088346802235912492910273017834861542014765159473473152248751232074933804420850657744605631993407855860133304398300267261075104172314327152065662092809737013911453636454117057055386165819098437710939037455529328350659318018024527476161777955529435660853986479953448484249168575309705877902296089327886886686776731548019425643829189522912371120734632462252684031818385263838578755432394759994866612491317601147421889788134972486019240302302950199601930773443718476249034325261312183317565851694737229729903457464115040977988816328430338947416470660657911468104811858832995226867647172805907905063326883950859920597509219275738721049352102325826991920165896938612237861262717001823634541647876007380897263313203267129989742388779894227467545902548870296608787607049521913327019010098101248907721515531329130710334725018969087706940350020015262252651492880815807520058159072720703255380622132238775584485092347918941509422535110075987580332308610600048903640974592318260114080000537379370198889308440888087115905127778522029962078505904175850111143096356558951169727539231975412992425249227284085557359627887281432310208414627499910057469513850147441420526535812847072685282209159538332845712972453581997745668835415290036229843587131955756427742479285025344801515542381192431055287041686527972632520885264972728120438903290923186544369412968107462258748473078514205991586977550632300064056925035628338395031727106599937252730598326279351100726015278691040971400818051521764965487589673832190565257574396924874606257461834855040982960558972586704217346089035775172808017968526304971254226525269783115019684169303350648753434629478015384313379013547956645596378653940353731494300597803707477778180139810829324086092059811783836616576564313838172837842372681897026056821166266416144901471434667570332449887001968872114524146508002556708961673510392189203544837713054027710439196530179411277279719204665306045791480677117909961013430980603153777028118887982302096602919781563583676134298581381720174483158391500678310432289902045686816352102126059969115224318026120432755108584390915340144770412867186122380599898396451217641565653358021464651735762807430085805606047651378420408281972696725807581477705611794556754940641844663639183479411897076747886929922446599581465563689745147017276593410152674927368384273848396524466548764607157532592650127633399387085727230393009397948723944368075960854698471183705835828833573593266417507206846453574400041349421913204084304053741852590199082858789615661381798629103933576120849306227578581139645198786675510776994457987026633047712807199911560658052577459900457744290083090754751900319101827267097009221437929380659109280635944867410249387213720487669159000260572491496394071570597688706344034135724819533342748602885673034787052961733610987359829441448363536472618175072082655327788180086276790173327652065861617366316865385282179855438816276564595182950486362073024085418074267331568124800969897509947642354402980584756334570498321613573650193893916206205115031145878126842680645739973358811346020925109422738726672738369293939141937570393883407917306256107847489085434554127581738882592003784712862136516328111952062798485749887545367794033642583585517132858280800536791518949721223839473669152590288117898018046636674105173652590415441833344455589852899848552135628730121391819991514730326774781888792194573602667546305956490219217690326905694031836661975635014946409349095522451026995644701439934634965822688732975841589221127919625308499017073143054095888302834512949818656663017136574162639615362156658574745611978311290414553338622243834953858525855959470894518934809318518279363550217481300003834098699064630070720961138055623017289953854900802264805991662517448769971756533398791859083718205914051619673061927055953521114245727414376346975326016488830444582809333636010240225841216220153256008948640020356894597853758590898965041908360401540787521889816088248251652809495967774336424515332856138080385373850232583392268580352194829163599421193878156856883933953765276640923468932785504037681227841209714767030869847844403374061739791237369850057396107547334197426645879079319450928994991355088831271777243318155088546395815528609318260143002148209515165236225886876066762333472029224791246464581561632842219909594194401411020632911476871222538331549700140532866028055443684450204926783431475580633041839075870977040631323714353991547832071310543927210930358171535528543947376749628713510334515665106036680759922008970308494058511047751129588540448712911098826796845395223446796726285079421491081689040898298854989118726467582871254825404992364706624648088705953097930812254697489821384909618878060814131239191408500090078166342890253091039377919663144827176693252308968214743702079692227545486562168999260890128501249368319153040958535275584338413770427957669220944318287569748016277626658373491385523922068509860711847075600412849255985690625266771404216883755916357681961506956695385942984053799473825867401851185894990618680053441575098293394644647693476400887341635488079030225027131678450162305226478571856435068399043586332082330509098209205228545745473871519145639141602054501866011442380417964708795982858209698882871282806478329952510165503005708933160557400314127492913097230677354677263728216372298294181736164107852449343405436671894874677869834939615164157300847567499569113772700099895643750210661230363128937351179967107214261854407367376364575121019303459832383727490118328648407237879725266317285392656191506671833078907138843498304019852634697579956739080027720761183705074050812570840002559406982755949112895753014209044437249805281812732146157426972129652194965982338363055368485500589911630985892132071780251827940497337875139195734785312292813684892691501254681790116447988635733223190470695019081892560618404896184232618277740753241500873145654903497509991442315206036410138797407802553032347803604531486802574851987741821286161911865466910425045499203908159194458214616171892198597771467056466010403805462983240066070271097025078675030656717247129140411573988930780900656272614336487539124355112925956403563294873592083850968694324359746231470740471185402536168967450118216823494043902029977780754680638902700567654885044441720077358732541921639925153455678124951437587787548320420483356165416103780769508758036549022053918566303415269836412257162747818573302902225108541348549211057007193030991502603939304221827477019643383881587030645193487325934555356454854773268095796871723854387232783169014649491224716278083787352538455970367371110421154292228675170444027095579713576970249230938774322339949369921228973892947870799573749917917779213502692280910706266191754910834286553642958014399659833016410578524691856543328629210971879591955417718176409777359778454237048191983173777461727189244512592363617279715028844137931580500304916113075120507000798984303570665829417179936055428617833377240773222278174343781200939404894781727083331156167103432786177862025796484205845791587133422490185883196444338186918313461361389792641951855183917292841133528602275249305523572540005919285483649306966419237204567457249529745164202881668588912268376022154730233258169108808933246613567111347443250686682210371096463629411047678843946857318576781907023121453892279551948858437202225486076508106061475517498899131347449901842453881844378159126260589723134791163720008240953748790889897765736700285501975176729956659426685367221155364635054002729845219335862793951019783076322319619134552010312736542740006908342781738299101322158141715899639049203745757183618260261349429127584361462224662338031571574256931570900567675117559063294518538204657497397764165308389663501239953968288691234835714001390136696024252895554025998473973505115497823761072146464830505091914549955301837598927960937156771885138093522957522341321032722145361991042320758682188795253936118135772316039118279362890331205711089015812699634486349305345354299808819950253300865043227112208633110457949650220144773556863087722553771717585702708837389608107608632856695626447364726500339197133656343813072743007577606823141138051097191661843437957659940372924125520614223563637110860183782434781776344899251363721788332689827468619229484289778796247036787731311664885541277208907293806254159762256567750288926373486853152184728175968397914325258776478784206473244826143236255036410630290845262649325927572390243781309095899013373983495524936660787178139628598424918464197936487970504093283247246735265102112350496364847045333301356183790946000208671444570300169096764105007318897201401453483914991437984586865750936347288137817189568827740248229655737614691376186390484496528590575897833950630895960083949378909047308946289104379181371463292856952449865817505398375554288333085512485014436952302304925358496381380825431892125204729256330321286065978818342428277400316184748432954716635422484296380009037982309061330479500457153896337565709040400165410771766187232068294743756178758149974760521743716655446947325049318045553489084368607747249099833650157351864341949748838236091148907813824512731779412488406902704898174601208215387987523788758980568696885227340374775587277557545048904837141535249941096549814918595373756365556534623707023923648207897452120045744652318834366248545293607559990194617490929593375642761929721518974964483487487225946262070185864215499746559039738965070678300695973043202487101669977378707307319516125332032050067503389531625685333725666107486232988843133126963472659661196909061336730277591360064066539001060686078428013165180091688048500233991231846384935282304612937113623317065796732366939552854507031755070000036271527242693563256706834169862227297256789108365335725111728306744168292860859656464215198066410912044379010266393620933969045014708629002729414571630692927661307389263445258468819230656308065714345913065768125156678251919001353400542221741873756888125939240612101909659615274570294224647752731482698098411055464962702223357626167854558505943059041256454089285966531837997230346813196321538048422463595256197299152507718881212200556460581345098828971259716941859133990478047805724029456405842059457587017793328506081449131795998944471027069766218318301516060665563399833036962074362337120833952589852212032493986951404250420641714343191982696902732800668558226065511758193456428900094023325058982667750246001141814010522020179313431680939925018636056914025656498460931532937700288885796122172300111952931228401744255839248413403929432738540586927509178849808896469144611910055381016217570392516687169066032479306004787896043058075599168721863804596293775729401556139195459831979279263875674335818893753715737888980733909186183111405274038120595654611046323743442743412184830626874429436660582337269584641459800199891015701807673057217977365617156886603627527901174723822773467553261648894710680105272170406543264831998072387287925619065246575735279627631252034069778417321149558216486241323966329795433745032113498491114367913734652998319068877901422085219146563648941628927699707650896866968030377623892743112758590441960034622616258959153347293522851131817513316166058624339645147727602485644710971664927100236490261635680752895317670092854610922903082436193998482292404282050748572999071259996327676863671216468885088772482583058311574707871490241501245105865126146989200557733253820711688119509388180876133804858611904861268954224628134716197228405366149892717079238590970088274810040074934784200709038352652017736448407867334866733487217428602224713547954236706195225091281805287845257873808098912422516851307185173425398661326894321772114194973869610523935581568562806530718403294560235969006582406126438360892392194405907553232406258939101562705386704489320335785956741210345073444905467004096531151094849872583633166640423994628924398847742324029851465277548088646818143697324216197766309199824162299722236160324670732536822455572900729131996693943913826731650236083341494198310066485088922507169485239056895707078558289630646461026593046873072399933090066509004811686234044893250826930600334719514062256417182516431498054997518063423251560776576444928365180049658707255155852303996017245236824758221378585419779275052547003892227824183476536960511971168225240915474796585234431959038166824117989417366553629079752123797085098526296279237106846007374842142456272013630136419955884987069970266936297452436419189849734116188601002490549791375407243623928525125783023331033044486167829813414164480167541215386113963398774349014087532719113077518000026155715269803242751083932232271795476644640220114334537668255973799911788406647937171784080153599373304733342616133318017086174125678558222333164267946828405794233319249293792505266431369869161769441363212355155765929793199093316825812155374316610256279675204490240397347473535624147710259316685669578488177579618145346559973413575590816499957971597930819236361325972083827036704590183580362045390568854770498080908271796530392299558431260296252293704800084365700912791931973960224047878357093658340265972660138972928252646636734012691846831833371918646692578142530527337231801894795343825760140531937517485150815585610210306279213324325012923511899970276950213520345686880336232025531407322180221988722649462498489040094306544164282307452824270555746665207493704639909739814086334579300478607126448001712810773052498858255066690203664150210574207047733827655761686667643019852995462136474369674302989818667638253590138512535446525947829116805063654259921490639706177925477136498804458479392641313819310798517724306083812942710022956714419724595302095414889693400004325609814600135853575348063393865076446265163799534997137921757034765061696486990243599987412407832894923486903455025423752901389696987357050235982951494820166835340222098520525142338300235418653593927840365599188764069366575187585538275839452780413349583932473655229027115121499467090015721362550191105969803416638951790348014928970166513710616655291444954238875405723234830095783142791279459331603994740872836390696877074317453270548971812336621122292868234549614504193024339299219096851487769379824803248587534691425984457817727262425831896522658333443663578105224328315519019485445237635568595598558107806200425961160106233464067691602007556399818675012283695636500680432334645353554488952907308853240056249617372273842550531450685844710105181425573441001709780663595779561534742414153767157333375086922335374181028058117381648711950032862407220842533088599484601247464851858116601342863531273213289026714408796704307375959992294997287902858663851760333867891576378619380302212122180520502340682819603405562499527162950225301609727837359847205882697263297409391527966604741318176997117273156413654225957706983123422540836524132157782880417350424572555501142565306882005772521375914631370440548430568224310241915386157138651767272157689048339225418204788266068565709040634242801031221271636536024438510904787986907839011572246290590013627551723326694995418031852694739974120975147682216005847105418188636174059795079725044940661276042275828235551794564783924801872856316511502434457902139395192172158497292803901075636735396475984270356929194137705627968662751285446165563848541589290415884664220437549077386497667555608314606978934701156124939873843270289008602299610246850551489184920249950645515981948497932892871779167282589517678899581038295575446697531304770868016695290349301110312490438789870315566995921677373342574962127933197155649338063026599089170512803349679073462487891609022184963956912446269319872157313207314465970292272942642851677116189277151961985635655223902893240965889259747373530002088919463496280512867320671071024113770500831348137874833573282158504436685355708042997035504282435441314468000443157103763676394820498713075577685889978137045823154182709005545183187506623254649622321986460260182873480430855978835040488668102837926639103340576784377235628183230916336730121511834865232516255956335900325511056777057377461265319154104174578404039484072525920840196349254088956311055895349114364052706361943318249356011822254018935646462450459536463067650881801996596681555947451906389086942973446068823495401139008726895929143850068466263360924519658556784308550954007653255054703209093028565088685499711586343175084264421666429847597009564513247274293062423325538252117595703870276926863058126045335718006574609192689222059344879463649210455656175282127133097130196475626895018702205105874543533326076826380388249461693287252832068815317936332523973140092157174041921987756033082124336489247435349826536031366345978664615656489098818380919331751641240320585047404572769106013814438604661411302349146331354798694512362800683623004859412691445041753405925867531860990226418583894242375824686523647741272194157279467504320729348930029534356838342186352312020187538573818235197636367376423389162428485415641749687083577306137825005900804031962824487873207460760673991720496499131204718240736699326476161845139941710405694997921834165919959204401260166616154894661411541374167782916414489847764162825418088738121764042998840271367215609433675348109144718919587054663555894363481114331937029547588821534171714677276516809069532353743576109869074011676418542620149244692624446129255383243357938192168577542352188661715284482624832980585312757471908108524758236638071297583299344693089415526505030903532615348284698444456470435440160072630175771021512798055017783783802017743436751118984126664072990268986113060505845153490896193923953289218596233981785284124540196552201892566630099691519130983545714731914869001858877602937734963703475554343796947712090630393521841343258172019802372295334529284922984176992539966564639806569275054461620929143088224306778141095160396206317955815193791782066643934436887812021786762038428500575717045338200296489714449027181518202558731237587623728019621511988376855446210051343382078546492966954397915311575597460921150085270554783684949218471495396039155046367434064278594013791086128588106566002294460371009823350607956319249629876731074741294802912360334572683664901576003207772454944215289704611862922606167863821424898203644119907446709528631804404587382879976425314190087852160989000498782134307746203475525558391510696102826903333840488327219073988799899130771593297521001805898906028737053681884691578335212053981831771095702169870526268711062767479353759558076589305526534112945967923248455870922563849792911134266180352446710263824172145884812814763583359120933638440839974750807246222303992985578753770700590989033257746875301772496372713358067716227441300619555889780298912646199379017157084863222959713899302035560891526058464153187903295011765305751215410243981984175306972425947545184518864118026915252696921886650487603781082837282316543576691526756930571328101644733608200072586968584671096247049563173897600136770909296872817036062181730079859663261156235505148668846916087977489391751083016147647501310399692160561295382863097124954591011845632361775643731326934243906015680337582401521937791706761306321070548355563429585737145557198456016920574714715094744316130526205358577546220985358110457262595663657997754264227932355581609521631178643538722645532714298635003765335483790067884004560686248068851665158481450934095315876065373627993209401297094343762770591938335529545257279094074981902808157445505911338979703629882876971688716301346939060553414280539471217502238635254624744835242621511803504216798850970231894573968724711871945449531527738122022914138130413816241515721304087898325588830139546597177458539670553725743498121445632112541866499684103053857284659328807867026481174232368755410661620439288470154336616880262693452735427057229008210943848989733871284085383991479811040374983642829715601111828694220025736447872399601508593030209154591127728095036904017478402812511430056310867454097336732305436528030007982337493207987183879108858955754353708773199941831887476526154118177992707983685226418893540071471017200395711536016724731107195032859427487987113041360461305809637073603938066631537574691228589889756676952067008341311471607647274306464049477014441336550827297250034806730086525077680072952762017776948796873697074816988148076441741549203198558307145839967225020793721987248402247132555543160411508764193470911810314729031532816072719955188335670395985071506284316809133736997133795658900032768672494301298311643331647575681436891109221890125411422154806978172614162750301990320565085891966797486012129908449404789541741139636804865305533967157525961785247008892280295055140820284449670538863049340570285766304938662159274984082462494087068715841845505745272872591173588072327294007390071026894025953477748740632328454357685314575126076799039869549830903429202612820483272412098085990627150017715208352909478231262734567033427524709190930041725314571807364147868417360412143179872911011870236025416574398955245563855614862966671172466654123699361648300862156621360558253313290392557532147967034828232531102235432664439538140964251523603258270113992924382206330726635543527543956212546282399470744493925468629748746037829875977855284473188493211903006950396871141869241482393974798243102572320597206401719757480064260873325587354817995848884329399621234687791681657171380159743621178560559888423827187959959726494224427742964756445545331291695000887296567136153629067698648957361220022163225159122343345451219248247065003906292583048511441620582729016109454432552879751304634972305629622320734942739262118738526305114245535414135832353451154413525786315547616814422068801348516747034630539504042107308733798489252710977915429994253632594206207870069380072671896417233865544639805065100633574455937518470022311525374013159306077922452558430415785528732342414876711764345261225706097170937793608180940669562874170077441654902054421467165756701883683376279472074351086018787124385769437487447012264852701908482377961745073393930014161382579362398745399832085480443897945759939042705296694854695208118918631674444386968408812766444853986465246566521867552531247047121271782019684850178686467476309676640144024221677622188176127739191231241172108528238368616901064801410457744261872154934794603753921334010682163822363472491375611666979090214867563829121591244496855243055613411730101909742123163326096545745626204608444868370730178841714485201386517533744102424112288462490419350211139596896255935517416152656418077783404252767203670592753962426590065594193171931505349205199818061700120297523722777998582401350598569718043878912137440043884991257304707949088559993229508306402132679496290413039116047178469827329676181958881690178872284465553124486213368635111427160762484400520448359334048495837846262512194588214891270459662974117792614241505921499859247624184911381371018452763687890863188799590117321936161745360675375261779998058303493215485884732657219652814087878073839770014592937796771157776894720891139886200986165530985304532966104965690885598431689043946434934498473659040851270584597686781590004707810706129260929229403890698542506154983883100532057424538113274222722571781685748643763543535028038412872793176759159174563306960953735663424325058814207491164759493320285275287542987778113901811830031392932218631222040875226952238261327239034045638953905709600951481045431517174441281907564286092766315820979676535234852050535637530531755082202263284451242472165160802980743435081141919571671019727036208014889707576066213987819030330604241243062020465091282656639972098546900230339101394046269061821398511591566027933889540379577609831192384761278925609817765793183571402706487399682351805909529423099792124888054824176111594268771363649057367221659601547200386122284603933034632740387483907044191736245919746599188363235929176414873530985357368197867179395243952143408356078817995914198579719967115547094019801568907346382478053234424730626771847394936899841039013854501689542758030400094837830920205205405886421656576656697220763904410917246977861800773518350795881072304441806582527419787158198002303168724802931939937054260573069077953784653362276910266704847520269908745558643491936281547738271012365200682591734120077242261890936515192240535667122876017229777686107013332529805208210883535398656518840847665666416153700549217917387891640840945680748143649364237960812350302924651091879186715410021615940587053751496991806264193314331761834045945156828654426914630405982320278020477102504219180168376174460596352816215193910637641467582065916830568927095943021247205694005619193513132949206366050189215988454072032413579021713050036279663402314349543323091941787286961925383160421384332921894367638792546350624830201297379284128077924845576466522196250129440504823776132064994675887128028610125430998600993132362904094232018304083178628751901249998777367194525753514681502942557670185676248706438396390239686204894085410716204026532560390575995250809448232791505097395946857572676700735548432014140048079628783833520490338260039774265794804941612059149958251424363737146050993681670663306518230517637617644565987084363801469400300847520357137595990556537682669774949339674327073404176945154373919354481621928073553621044699525799906558524775944981243620508371161252602488678419668758594606524057029616299950135447121553790362385520561497912978102737557045672362168428158343711245576781627630110657445768615562443084607245026621834472982518610856130088817564047881719081366261185519230851665234619754953192429357231882740559353325144732822374687722429752101186154689192499245931154084364476626035695329689696438382313614032885950931262660148016565411002495287821034613840023067623906621447512688089354751547552331524841314708000360519546651752408765174622184380839823135532703575066652319501377126231960110655608669225403202437817426284094430945186377688881242728022206370013728123463652215279465126043657697897371593773950503356035924381534679230743970131282348067379144476772450468659735670854128934792492819332617819118228603728371022244380010920131673279026741692063402634527635573157402938704503543605674687191956312837126005084544971331867307421453795806413521879375959152314125129310986957049051446080820937194753711968610632664416638788920200425255710694816203225977682416919078992061830365575472361794745160124971255496986600348171073427435047175727512601003688028823902387617394800257235559251205941256560249292706277857636581258232057110537878101272110808826125805723462298858777196688775785343485583637518145491964490299378013556754544150305733166683997058166148271652305959957385135336365600228577197626820743867642689936468882377838447571067914404778861747861449646464393555091926468266330993647678101387284117750964568738730838961653786456939266429135692221729396919175463159001619245146247942299063193178105875554852571708506816641444221727740287139409467465142885977817369617211282569372628166792851804617313493631447018192015201838094728041278692825267518260116267606550044461624406639164869820820490878312631900317670254143916656073019642106166035553484590051131119881123910066955555789573024269480026476083387478743220003140208981170482393689869156155288271101682556288887500098336832605606598047261246347663710739030916452699356818254639451402631803463937261469132091423651347447740700567531910185145106311685544667034407682440321628113727569965781912162424748611945464359489521086538957644401776422232836236339098033662847361387333049859477262352109701541284681622200590525605037053964343599996412264421867798474574357126922132837584669619548836803801592302132560818235560929007244835912130102174617904678298415668727813799397614534526749991837096807903097222329000155416259969845302129787561138537857255500274297722573658059067211642047014915914992447623942596791475287426437038468427439376575990509111825635186491662561165996333690993369028257459122687048240709052575644428522415661670274761180922274266915027402928590006880976308482966485612834862355234370405973893994483375918921673592102884358514277451472340458684256618836042607479637242564145401067877940705563031892778152409950104255082062566755203805891225563009944247385710483776596661898958342619407707628708202839112816386676247409057142129187011970459770909159171518940267604700918749855483685460984134114858596938843912848979144606139090470376687335090551582233341338204202315741676945022834680344268182245047846820063928297633969807828719113251161686634750361324786507943224443385084614902028707481473376222274170775189821607340845794304023139706086645377660357734546353350080511110260815564750921657389563245634394488222100244227271650662630620523927496423461885957599892901310119755521032242625852526462914117303807404773146414657953470236250975688124066893802792389497492896238313213560743282536618695232753408627027143088117388124185098237538227053471330613276171692318373453056783302404102872282617384831831332616901649712463989869810146444079957812770320971655111149762670461154936120752742644469618137755606166178767339208321773078293524203626052477300279657951829735756516955171635333546518985404854819962359940474381599129844639527951240123301969788610792709960316556930047007364923273959695449019516732462876136292144642215778698283268465228209226806946232164291105605555211780601856811220327789067368956267153925534279900559429568427863505796062975804357761018034604007059691261246336899137703280192619057859708613234105001814744257307509440662022522527637364862630908014029855458543860054085106323761180617390660718576413014678161715766402084835287639634429046436987765096722026971594171830381926407708503381202867958958362494651914248933037052139465142473813041936149274694818825253665588313519373904715048736966483630215485766738764132593270428947233987187292240596320128570520456724049113146017207373805560975771962654095872580888589709822028550377776209562650946074098970651881165955750426585874164315952010983268204413446916923156418237005966192323368154217449447981110382936971966910993503033777490022464385083364552910531379665519538197959096884675060549960577108237761034293811472541898039101475333280158267409196313587688002930293076530678746180440107361257122082083374677397513724765073726223992506368148795116922245806968326185645249030216782289148960582939123195799585423046871838520437060586122505005505002827248445943077462727467401058104070094405643469916350583893402239784928595396299248408303830178065975959889798596493662162743943036605122055559142564365646951207731102557105392380559410991152570431915404374092722786560938752270922983244801771241159307299025116800435864319975443918509930629116305862769678997653622044051533692222716187402556393596617510640548761044533333373005777020420242209486033799029621752514527227568667366602571756752331806301825875675734641567893101004035306645984931016064912374828832205960678869970107347199133438648254264330025364967970584768938475437790435384578658024356959870472494158883351272054595690098580096809235127830986614996676417540797067777555193765624371723362571370024146317359135091033101727678523035857732545906262830711015237726692994403963078904805089925912576248097222674705112565007973220822237020676883889324616137554392776873278853355398446951948583820370541514608227634235337699255490555285404744907982499796853798058226506351810144601181721445507843860206168027074821704699541624425421609151965868939420087107733427465023539143106513356291055280527719665316903068146068584186856509749799731803004001003171385270228427394654044195924450272384233338643427383934217774891167981093961576632571823858781198895370114003776744529657826524036373447803430466929826446447902247907410028447993012709857032669737585687406950484757428676909838657678019018925665268494792019899163619054418949664020120981344345666304548981646547441395343514256363446262970895288264604505519865129252590590547386119370327883875659228270565903249135194173220355643791947562537360347506262672065199136277557094388212982463456183977557850293244851556741957764957642616400022912406441086068212144821754617886196690469943699772742773148549141221891147753333021333045724195684223862677378838119081195101000616671688230876519198661160531299188448067121198787618451236005440301060355956664316919572406326991360574429395336339544057193275186430533536469206028408176134788774852632380921472865231284639384648602953078962171078938186362127064658815680842740979178145944332393010469159723645861316419266145300720473622698025837862808672233307134609293406026511127939845208809210431485549838141467226338879055935493334731569667792356140704049999793622893858844115056550720120896093603366942407266471771093051281877839488245675065977725629810938469711004611566497500242248172253350935255438941330592830356212353584413556270835166757719342720483020893092652396968216547760697729953949421801168431787678679861326247585916408355031407179597043221379180802066003638170111345366856068704437605719133424383716594457635223616140828905488716199404879245456642205411445435685231425083450912675542478651999511332066381642258793936533473323818904664600649771357752790185438483180763633298931003261769245210062888074909783845657497402987939591582735023571826646289884420768954901145971079941640550498739087502333761421833542117546044770091676776942031500134952799666759897208416778752848354818236586921551212289935301060291668772169808294334585953890825083484242142730811811546387953106700019158960163324811175865641573697266127973542533033298669070978249866494379406748784320548695394889081510188846380868002456904423884556610611921233584645587382836204671144027581967061008657130121550981872398385629155836932502127722144399643922876918776100562129886806892050720822758427598919894845795307215450495800805681465253215189836449656332821116677354220884315769339946421189051389415212708449993072977273346697641208740149794355232529456986308076173502528732228422619264379302754100047930017499150599564579453448158050168376090478166912286787216264356740640944360275211732571559355689725659075699115431242632153390226956538440979954209433578559918626132053048100331968036321631915323332639595061007312962967253527594476684546355694870258404502607170084882001831781307425381354828568098556929828234998474046247986436530633459560796758646429666822032342039674839987483593895607623253659163072998731262193374232572574217402549985982609239569159398500582577253676588034362154550596409055102576387296548686638811534903803193986406085650535452439670444975935249662345545663456620777350778887315836073881732884355578729241650433121928848579177782132103140845413246409418916047255688991892089579716314969381960777844104090968567141626774940594035177256983662078288623564365789360397079550337773672705856431455458350786374829996291628086533591763665945890068363580833255668372353868161540030409784643581947179175810936561919702404486032424763368277233979421959932647425375435030892259167024795888687509467387657895817710430434373546053728858842326800874015847661940411041822346809474702873426852185413415671307077183262636773623968440622517167492693903936294208017397852840721604703991969689598465594389840647360365373768932272813587001057529385428525571384665142418113539684650432376256815230538533620264786407898386726459088535102856797694195442685781648980499566200341338398063227656591249535510709471681062041158374517173024652923730790566293708794452749962989688173304981471895201729336462523225882257849283031765077850264111957220021819099131032367251363426451058195179485618773086644179538658859054848315423596933615997594220963951275428508793000218506760332085947826538684206867361430372309924156120390784218357305592289241555633102005971442242680084193009013352089811569575565744910746327580877597860445119276897932319747913510544007436034016479296221603379817048434433224029188051479122453507049553254090240900559522206206226058649414809073287716794087987403613133460515207544827455694700711165493875297260889951479764808734388340984472546723910892902811218861934599142504890814352038171680796531378402807392269257751582917946178937436646435440811739805125411105966512490550275831203546024328156095190462213094365578530533837949013330882781425823323905211052285992025182357576461345285718567710190296820646406165211371764438568133710321485468769330309009454453472157279444626071439682125527489294304049446001565452300696595803094203490436417541802198893557059595289593536468147848850698947481971425454381661508420428891984812490764342658014397812557404361963345746102306050352705216206208670357954933261347924258976863304140821774809931945000321250231868870901017355360387265476842038987567391814773757247413715222842836763795347863841428035046620951806037424931529183544179097876472201632369979846774244124434982991923680256015454452533657843513714299938841707635235183128712581400263634066107301674603735740490586354667514385970145609859666195691483501761072706427401730147157425810481720880794558349442438747379908400088375784373748477881207987016414933039405459597931440758995849583801090878167709453747813916642246833513555161520980809842869795294155659881638490880385244905160051781167070559915492290195685873418838829128484197922472697176659392904106179514225017671734833126492685312639312395433392052401940176559466275117052754422925691763528855013209257595795165106261801536998461611620846764130662694456872097570714152632645013604196865027116104644688474507983499080032024871991682881632064529459380776397930717287724463173009204921981409639579778964971273193370626495475037129693873239655840376661301384487818267025323321070945180965588366858866453428600992548685096239822675556185264008393956279725674175010374218605777052782454521568619906996202040039514023719114397373993749419856670711203105164480705042455502986131442074011024636731119877341065121977272793823197639872966468372270521042672721092148727175161515346644406774403671111000295637951403819388413524076470133918233950406677170287780883861362875667361922655126040112210481507679689215865849852582257397825903520453847003795483335110789850323032579458255970688455548916785442354059110823513961024353187013796161968028542764766139733372789260309689347316932965277749675671261344863774631926439275095975195653453747251506664534540212921371764961403652236440646736032437268746673833111019934817329966594955376827027272475307863663250602196143634769957470998018944310135834170389664783033968114470675894076294711029871550494304517263669615710671217496449558167575651241209147307523377026448810946000687792188228714703915307605524680886984767251825533816522882949729653063267621498455504392123795479247965799120861506468277211373711194741075715704089540790029802146153342746279808226567539477288844098495625905665706770412070406968995935943784383529223267737476742856916591338991789258810449162487724567204262739741637734541084716642959250171264307332445042586440784864498824438837207174616351263783721416149959927471802376076893958548627476470695697725789139986489229721721918925653473345542433752946319573596124600623577650511638452383485416154163451583670853295094758203119401614153887453428830768225700924442540625270765845478360876486789865239555726781469395800599329952861466583511579432211424141056701554471775252733594846091612504552772155623996353082749656376175780453133468285310738644202788752170381884109582064845490890772610309475058371116788824437208951677914193173368578362792298880086996333307084078202472635164030998643448721747186781299112908403564337304582664580146655247970334122282646284636752408869890727753381550395673861175192836482492971937482542583136714724897023739914304415445307152332822526569201284908777846328249247593838519256411482703820005820146685278617141463766011031518792816313492172661662838273022277950960455920637141277279834079366479707815558923864413702365638492264414546069521937240664991272663492009293801540103982773347759620279137236691332292219974805964793784886775797957069398566062256637786206646265491905665071138224516645896770932188781132097382096153333273948915748268710739871237806060215967681305649643875006789098027966985341934052954501198885819531969628542925405130586885994209134729284973304562416907329105649406603979390038266089856029035361138490309256737986342849192278638490499230743097056209665922355298841400722042271189379417676962136501312712192987395981773419244228343614364709567061798468575444653728906457376185764736522275691285619386864690605636451688550968498641477788764512196516528503608893134804633021199881446901210099673026463314401779911795426838813236425313602941484578399646567574170098651391620807598419463275488524038009466969636214552464372007812976804813368512260677627385311316338280531950825026644563994904030908285592235450590118078094788026768573066233547799904198809292930943019017617406398446205533329969303452212285089677759428915505089235094885171496667297275389108404138292512055511762890050927553955648027231539492114432020715494111567179492456803599970445476040231400988565605502792207373796335196399307424487839833269690665848018841870058926328818612100972465682695299851128392937140403008836598325931265278208819199035868556380095373399460670635148037661356267818991317527347839207774275136835641900576232069796380402283543067085248057504344032334083017652182223342545182693504086392948228244632362489860843858627368163568959278906883220873181404054485735690819739206815271809354190646833269953003094397019057234343208179244823764330486369162673610115246482569658172984326823565123707930489152615051593290259260610692265884817154991414568802028166605126102362014793895717253117125873218029603048530907992964512697529245501305461831883614070620394545357510394705925674116034979012874148977530479452882361291820341361962891903607904207292856278350917958189762699498303227068786010377009815311401548675663250573037875421785431082585963915959134397755978650053044624824621436979386743857653593489538850619414968077563832757472007848565202401629640149120182294869560166342979965973132471187862100036621712616433717605170029005227747673674473599601451593834141858416362399838435860760671952064764180840190260464683297534802160607049247897881008598455832119950574924390945465184469792090151743110375304773543490885928778143943063249706776478448863168313780527648153761930528326813659164744974422542964560855039482155421759391130212912873512509527528721613427143003098175521708883325643627295898679526999171389030335625644708672864022971917513199294945933312559744479786110043491279249674024154026717937535401893950122094431352443907953461425549443040482048400491569938914854489043987788845316726259369535132653203056709913648182932318438413115235524205143992948602559348663540550312249995197180847020277039491090145428395559559256228156183932022115037198599075513788982425383451345766079938979267133712620173766804136444713191057153490944009061607524729770166985107847410610798118621889280878751195879934444157518173012387944880958794608781334585537056099599998508788851599091866235747516619374771634213074804645504340729170720770329559393706683300829328402176316724111206842427653369551586436611928346457822719557693085193172218043522196013368373893524782014426936279283261701826313615094690241167845563614227668634338391813427053577700468862630785409017922162215597471304858518144622365994182497683355356590732077811008978012924578613793254476505217703533411865298321301804483773322218226627510942897946728553991526499639889923056929041545878032254885960893194511836010557057123730534227148880406082568812040474120500269607938393148358715387987652209193370369061164953916323870329908415277316765558529070395409891614755545188777533781322627989331413746618551031540459757171725362173397343992827902722342664502017360626455890868654195327278678610340116695005005874876812291984496212174701999201806063049463232433544870073909402943030951906568351118711711695287113600557422821473752562254815885779540737778491505704222543238532518582245955814444030449386672733731691688385691607197861244681073539104099085467825911319584643743511437256705642450682227504341362663054468651605663659694888895275792259116072217409200441131929466464361661936051817671534682838885329660070120491641202186080301761544069930865027077825241229700808315127745891592028211345061155333140246296754851605464192036445049803307603356045543898345248366415492816469456223216018786194937477878357877763008641980148494086187943175321835248318310228694425357066191771014289402964433643330757829141858887832597920580995047082116066477157031881859849466031169530589439037342926550958101293290165567628112275659606280817979435224739505672839856982246922115225363759419364351264675129398268897211863447507241081827547197856102385196017952486477224363770415081079481623024466186524637546973493616824890407647919105296252696336837021512124934660665099461228603484622350643597880508184340970759690218060632729212562105678482629359091093511340733386786404902352301386389480558745396523338056865534967364523795555822712464402277115405055383997789516886715090094372527423846420590313863409973204562917435829334020900463508321881098077367005945426672456354523243675075969571280356314044317528438737148313249687976778839654768932910730357059321580938979526251909976326346189665722060123927823401188211961222528549457737910160108258343604623782298277370195891946759977116911701800244070670271832559123368606197320333800929425187154384767389737864940780220787934675583281143809238291589204979753490460854565343049085744284242757450573554111228767554523227499341337599979601916610883928940830957525485678875023093776798154601514235189259077751967868719008523149800339449540273889174757938847347356568354516185710685411903672595377348143428429592077753785319632592605373652271991773323428997126670028306180068748671630547818346506362105696528396898700286077214394621034933595817848047386142966643773165662265163690457710781383734792625178465495493559192780050938468154623982806795376820693652046128247490017011593842076596014032581845592698375504868702781989449413805766143650593406794180456520083601782605761045519595693488533964262511372716598194025035261942659227410777808844318668570875059533966057470047742319900695848051041047178281594273477069244390922729958572329782153019966917796261220094452218200876640282668645691973079518914250836764134052777969243592373822353603196078904150804497530581176085201990205879804618764748726563349035291081845474310787048899485252534654587141562093337559424760293567045916179227594467555832213750666497728120048973363605235682426941516237040678727394616812063567397762904330304171598946893329884519453273039551354034362551539855578288381543019369244739308980966266937520742744072552403102755608681547609907836345693349553512412238735689578879382915539101497834425416407128995625961632364880539885660504448567516918586070821919275196385953616515256976788447476255870259395490510244291733002074642697022576974150053489485150395303131305173402670226529893612707216451305012805361917452445661360612300717527584894851602544566042379560475556103822936278705431951203552096657738087189688213439312205994773754714772405861758277483099466273717589893988226143376018764733767587252287696667123249026703494202175453081123683844552701254028951684035844727761327800219044976880172593423152607322638634221210723522868192546132753513057382155217214872859071414789805502870617889246039289235683041453817465759116694880324165187458804889672198444617820501183791528580502469384009209393025439502912340284396137822919169612010395696571997943821475559277232019676551481251378420914743193695173063217238333139284779723045151075522698530371310224675845504433586647690131090310855922042367820076369186379388916574138191952179405594530733798681409947953850485133716530888374320435952695066715943149395546573800260025274479762687374606099864426330671513293135138722569167523252099078507253640603565674337525861741435358264894323939938210049427852304468283439455918334647204797287010949787287655183135050592923765773910276334650517296737153286190249962420680795834439062490674404687555495519308347806224932912867753709906541887594195805409661386907788958892412892561472738516223410559003707713227565424541075336700374103270893523259684617482951924493999738407873574117229417389887932401069604871765712696073160586958955959111007614760117174388434639664487676510418824996715542236451073868284715858036707619590807025011835508373944860990444106581821915534142644064026448249013648566855053101361448141271255473129878969139102201989586403006201263136482877072106673806861875224661870216166260251804839292809602925707791080401124985776066167031713516393669409347584769598102906211490174299673043382099949229549521490340903074049417102243307818147264390819392094465053704329338604439846693176842113819648697095556793484866594664404554523317184237499140154892193542588053760276259578694393456780542278554691065201488747337518009003573063806952261842884154707842425894174889819788919333680959634570918773518403767294767436649132910977991643327404932234819509022369145439816441072045161944914549925922380496202140340518567255754055126117040379921723686335078060019571318615093297381525217617490244238483830368611507006104897547472307165489121193939707414543871580719000772864575431782135725348308957146117434599884200088122004149872874855501738201002024212922155163739343550309662090839070093782566178154985784070864076647729365671143271818856655521706591299029717541056304773757954302735087831550567645698036765481463434839758776314213437841261371076844888201062729559691493818423430426525594324951726008959336602738330687462429817713219751565313673122703838937189359265565983129916377569506016457193466598713206162334526766293963229583235560717830589546645508208047690130562758105640524889623200179878308508427726206742166299795968994087643902460578477372446022101369077966692377899788420750391490719175677459449989531301004776246207533021179335394128555139139256312409591826709998666002370783497662648906812903616422316263051312515286856685961897889009157571034641808238806426145358446755817121135516178804115681235094721337370742290008618583990334916386732181420660684001347892060972763511650526051161761554862557163914179430564753714255671891950119137247925947921504374559234912532163532135514905873157289905598019829727346150688388050323154150752496916024348612538633617400076081661215041478807701331216665045437363451762032006192425962093368864743816134637796569115437239738269933467703536665424878688954766390166362932224026579841066997419361145181049186765805668975260349653549478810410160492977738584264843644324888522596981248085870415609717260580719112127801773619962523076559848427068667665075144189088203417416330720801402049844532466516693535360141346775513982046238585530045940004764443442288025503772816298413573886956197854533568408484684264793397747634739676707838787830945146102716866604958693928752217558138457057917159777201287323879006422945363450241227812963725509851552645473558150745702586106218741294389962026659061788378362900075003191646191352855439313341242873990216556639886198151262430457043782128105926052217833904172295519354005117222533287259559357675457226539395164183449402385758407483476394770031968648581649242831923289677317655256360498967570941399272743180180212890404789550782627856394535679965829714525296551817539010668577653476848092406084703680974967640760455736739447615367466088061949819528858234283329885407802569366938892959650726427553216139668833230578420805141616270339576951137776478879104305232053063522992928557941122945285945643712549516333202531037877643160343998098425422270793180790684681377616609353044142342291811254244101208843564603643603689856152156342464733910520982261620986014753667621911667865918837647375487733587281030317486542163396302289444433356837576878057875480896884775423979883499756324278563069283925610333974595254320425197023472494909428369864949917678545848211956788200755032789570201466765206664835041420724624340509392981692237769986235091710318313986964544239097841605498723854473609401064822013067868382328536922007164208487752935422309120088816547854502049338952087187556632692076036691652663442653727931502373032175827195648324858010451084454739077681248792426577761139202473737172165276989780801485500291416267291440784759636890576553943520670552724444336052205316805674122572006840621252535073423272936363517684788980230867879255096898365622983528466464127380291568332299227044894907733991388088429441961164039946853139395992851329625713303160939802991635085826207106550666482979763237207672014393447347100324418246550670886317247423847990339231325423108424791936542046145103954139109508094167785976318997003910553702380984202907486117155603644417537183963951993021454594635480944799382437963441554921768693895118587577583478065808797817953734770572496767777647038827095878559317961922822473635713916565802154848249345036901157500231410184106205920051708657499303202579639337335032796852576577556337434655260196429811926992223921753514557071076231624011146811721831941363214111437135577137112880280111104751646126524725663659011174977054837777807132581827343860287425399654708931952691871116042707836964603177147054944405021607881724258791144801399687842690366422828820897149298819908889201409222150564470970095968330690233593051352315037029441089890511434485518595543888192905563588389340509282106790783106471696428982463046375060227584389674924379108661801530089044232757656452031004574399022350165123904497228045726749982207824719078332555195612150580784931820420245725217292181579583909910719630778927462805535816190064183733112765056317122694294410520320825840175201321806831178732085956393975792381046219153375222565279449953878357899059578261353417756502006825349151781635052048290916433015054651404705462591160262719130854476810429402032238330443098471671691631955068375906461780894518287183461185932989949730617182390906867252383514600051255118265049020846251662908224296034787850597292519100747489803909058568058227647336358172246932555798530214218774123669379825420061333247556082553180612338064018943899882388483073704124189126075196540673505278641316512369496542441889828911840325267556865127168308796043774099880307995337178061249868854827975462979438150787841562940314936505419762016510572395276171564466898482814865249505323932221719565313857407213859378017655258299657856147135866065391806020141648401117154824387871467598970927058631381093148073092043054814213865269741102577600038987866688829982584673353650697728429398213948437924530239836149631634185951251372198606448352766468920533045498018692646417456388712483213629709067229659432888144196730428771989049800358368677716610652832999378101004562307247121758818629950595583974038624777457754338287907458882623374058959978908934756687200196460196160946924557999733376772254368039401138802959060912603566164529737348549455421440127025112579529206061704479338314963242339757703673666124407392392519094189109920761655061216351843435737698950654621215761503242279420338512686794846309571397773151307111512486285314497429429229652182376643856538612341963193704905792256651742339007638850027006311820299553588663569941561812412036585175496387679660312246197095240411903511993127222462631109311299626520181387175697436556986294349633994043360918935928980103753569160331233818533431026293529251594880662338100530581812533475273475337720370869835135098942217672953457788794847621213792932336487229499206667272112575018898681311953239515456063866166823017582885515134197552267279702755560741803525228284225786018321009076563731858349841597468926895983764986278957342900355459916230955910900985437702685597107837565772127889570005858781927713866275381231542775074003161358813772907484905842724829737123974199362130518359238843026452077173160059882709591536113056804306963916408371691481141782521006894973104318981524483624743209853589632610339526444879984947622160231911855471318269908438620183465123840505435426481324751794785047253617703521959913896473460460111543422366578355124454459001366546782593568124398961095081592935953810064008439037094129371837255323955425877546938120053876237828360062997361503592883587347542773075859519759889167788474356527858040189890747950382228721792955982262630670805326205555671766456659980388544834542267910716514724543141449417509515443328798722737978064526815985353337509012510761231359943559131191125009751267663407061772279078591756595205990538394666227676053400357866289323840221127070959856400847874937491619142726095388784221491303144604885603065826435143109875336526618833480531782045960222608114243388370804285166438527751005310068807865598354446096978920484061428887124624281453799555256100460732766387338455311871222826444165870680201898960325860613977602190688194061899147289194952470184439376377455231158501604492557451535830347380247449121119259244849963502021127772719076211965160283763398771420940186490284297183471935970255713115954428643736227970786680064441338109515291360133708865474260428991541635926947283134405266082438657944396439209870932499848395924367786815738751800759666415470557484422232641675868292496303922100907808470278625637740769363449824566041629245844756128761345304078146488467838261811214152182921761258453342790876902365056437605358510107658326154718630247928029682398492418304496639848932128661308810144919067935099010836072114359515932368736123241149154525727279895718355229898578374455601979524646446580190317714283918494683214336927246238322384766266545667306393225436680506140336467787454359635228796307894523677777251241383729077907180854298136547883032089884130505217833136665647052162916728606532336551057584483625165320686899036482397854016518097587796091372933789082418031977722461068891466666189819976269145283978899056069218626022852390695106317039993809619520453461947252201980821032107649961164034274761075747294809425422735754549963452666138292083194843644388523353149197326181905999167910057894027857117949879361563014072772350703563413779398002142337801842264916682071886717178754549271491025934764542284598330547380212729796943171926826253944050352747438206651323180916839225165407922949430251168381954217248233416248645875477943726424784532671176917529069678467250516119958312674668170765831759750854859539454145808002603122376760278743531990601157402738728500926787478317620943287449147681556759140203781742765363130642283171611156437475689148222176311412302153653035877562569922652025541372637978005114272547482130779413591997322397334381721505364105126205819781546480311133929685577746023116333242185287919047781480169900406244412523498412583554273437890551135637114133571202885069276426891592221323565113773716487297473536093710269416865682429600582855579235921332864055339036907740523624846736707378753110168119399275042311467049591412471523276319864590228469649215861457537212250997506618880268232383982933758587086433876259017317712679377605144453942561502404051920364198087438457889737173543588182946903409939774267724614589022246476387485375087066817342923780006371771297356323906394835172055611051632009633878180786843061431724153220757949628225133991660308324338240016026024827318502110122477127845879688759854641330602454536191535361208150734998279489183893012360475135859913951909942152610318577040091206012629542488122830283794127312093175370044017895387519501212576180331709833288787099247632328172191079736771923977955698454511440953374970462758082185043425857683408371772661123900168484358229413911894317125193849756975253478223989182758959551398299706421563300015002487250340430990488680189011425681584922484970295588040386840725620969029447440068908491953440462993330651821284627827348254797749886309025572745865271506990903785902460838769498210988719140745471921270137123499705718806796569387094165817115663678002922309590904161194949722890620642582757183526208620614942217585243085089097138242536177092016925040471805813379508820308652671826034580918582835496794611955588868426343967986264402914964455447060833170158036030122086258381075685555672353218207467908524779669277183552278430544353570922697725119431594480912963318977442448051346080573348356945142515264449985368127818694672374750374145715674072022359114426401176329397984906605012514327036467021015448931154166848761808012746083766796535512634755008477416688395703843437681245824136909069655171302442809306607053288399072641694326797166840614573994767720422362409261867430822578080101554070387366530216947743834496470867158401648877329041703835185051739670582842725599373282281606126411842085025083966868575344005288982236337392928545986328362980752608839282146488625205490700744594120061527840883977545051617393763416647188155293728043459227663076062140159353334934723282172356836617112864848797253364638277903609875918772871530222363487530931105487343248114397797737162130004305192982571856131146150128897031845672956515963156174311699098475575127385063063176662106083610751349909069985899585058970560503364762414948767174472900177048806774696194798886517250102530744964926904845277621455430602163243346987089652657525855449613135967266538269390112802591642410269085996526877017452201826447441760031111194797417440102230502343255936322309991870306139442287804537113134144733848566722785532052550528720649348307955225202351446675749130846761351756722288971815734891271029540312307036870119130732361867427235108496195465906277362291184738760174154944906303058809064574900308026195869414190617330442992849828589532426066332677838360255817892808169595417909162777282603665459218696026712795804255292717832641857870324381189190127518438659768325088633170321180681837218340086246127191663495657340717583849045509412035058999552318623185369332316288268045331882024749057893885452183801325072116250661937623408348466412668707829298840486588718388183824046697050379558991627979700661173715131331055151996322021349545400151399593180107125145712982761405277716479199676872542958611636186690305975821479164345337147814606531327328162286935478933087977703340860877467809668739027162625427914361689351723458814037080201579179150003228562935308860732751033910489408860676450330451845316393367695664428178851370100952681826146911453121857780036077022988360931533534374596434587466027172247335562150386309455195124702815704078869056750381369924898840106780622091886249881247477090120078340701558642163136650961613692485229140592047020942916766635583066907368803287514363210946627499407371728244411570000216225756425006927605604238898673112765912088288757716043473582335663400082909573203529861423459103562915416964044746628466954705811380472872456560235902151632693159379523363504555371523528567705606304752101270496760713546119027992085883873612858554498820206912669488744968574829753901390266787016960549509998211280173701780202071432918835636451869238008894728186802165919564605870521288213477949009608627144904139702598315292091978364329200434112509527936549469432423175636659340351227185617800934679716328011639972414774731006975768448852159127005325639173528857808862029421430402728527663955968223448176401544662795597966027333075469920678467636478913415717026640146492566030523979494744622936378894094428974614687928582831596689098381838942363072910757793960771709159135122419413301026377821844712937803762851197097434967063804295601283291219769652227919162978289423609796752747092922401572109438692039255741431693535873692875697508115224924317947520298662849801061993119245002607700344702179873762654751445957340089324403187850974476358824821165449305162662839552991537536146603407756359460558593426713711773383830249383639296557633779134040560916488567297492439865299468089540560921448070131403839492459689432593610436566419415677842747218868223653417809270840476868639489314682649229489251126435727393698374882282062174599039245100612500120083187314876201029014143555723547781195283253105771443883743258818971621984191598681318957201479111187480041042360132668226625446918198807902126228403950097560748078852912867485348022323111336474962952715710607220450670972871695110017003830609373877796699088865575064595561195294329323420114581970441889171866096420967004968383810127893060286064044223585070537642044417814861643704126435151712957416526190989306973059520557890046886540477713849110736063750447961318559884034084673554401171868303676166844142208394688354190945028316777967165025476376243953922823282213407265199872570533545933623300167293347835910026940593398684756003496515233947127008356066049092502695287902887298285292928779175276096094467172074307744759957900207113702209320742761061819191926939637415161080163049532983837108272522987993057655172876332122298408083004320052316400842311887190408934138709135346078212682998367000132777401540693253458537632347952800754779595086724351811886465539041620503266593939045446127284017928738055968895110706203844171870976054808319424784083559852635447762765927968891841584842646296271999518823203032087566943757061979187099287872756815434520842835510815798462738815493368042695012570238171440846137405315594218021441160660967416724936608676098094848688287085234639366831094282370646451462779390479151758830461860410284687854597028063756108919220141974224399595656739839089201551328805849869254849582717581222156059458555402471222761063546233798204295108847152802458287581099214478806191084480994524008438346534809193851857279974472488371516329574613114879483811153992429267961598406990812114689623199469951182595868056212851726137745931834384828363767077681223421038328982014855561317504195061746419512989533233805893060496867502512169098235525386359543309267032392292989815125960568691407180216939991644398089353251691192436745374431513650026929414775465292792157917052070214064666371034891896114436333711202361860345809689911883060726841539834971427358248794087290947546800934556208732983961519263301242204704697473908888991176077690911141289998284950898505560901891473660426070258984408144617980133714534427691009059232368212397567507061206773992808209639946615978244888468764625750206228044386680214415922539948519863024343237439079423687783468644634340491382325600053397547249292020106479607220725206830642046655197650423954986971257999213168787144963314537325739066263834652818936848124887619692954352716141550987164218574487416706620219198027552532833386132778900715474906299001748190188947904494998583140234639020872691370993141134573287409569232883158704481283412999192119550772450953726600199025350298069413414737848716725582517155664272449793538268337362675719831589148458154979565428919828583148340832309384536239063312472810616091413132914245921148299113334954996671049966463678311516808587794575214328569647016936456205621901254777198856216517402637223531973975651843093353173400638844465648015043979371632561420371988256713720144225923056905965553535812008241732358695782042709058852566074472369726498031616211736575290147329767655404566933892684177463763022013608868226212217300966793004924255942423416875253565130161317803762981442320705243182749084990523952913765166638386425223884257779862276688857568482572394088009589371799015317684994166557642327368299245658856301635242381418467458329684210278551710358021275118620973375369110363054050555854369805192707574321139413434146401747738914940394534095534650308177520380966670558079075359449395383443298756741206168658544879183700309662796690999875763625721714597737631981318250344964033224877258174818633787706591587504936563604849933908154997144066239374405605305709421368374976573996737251944619129369462408111803626075373710021075881899793236539210875665187360624911085907516007019869751614011017423972148588412646634669121986617999149922415307914588759575797941670448364206461229002269190305998790276547581542558813802787242583470225724073607955431840657377718460972360665494972420974667213346543645159483572486093449278703525193146830235865685030638464560212522332950087744641074158908083763374620997801209503998776041493006107940783127945848079275791438408750996118715353426431349512255747568699587721270530918404582061257869584793148869782739483177720191862283351641215044114094843790710884473267489380032981458006367214798520864431050088124570502950221161191293760958112760245582668783291077706697878100371064153401960446312902579134124088457864077966440001334659661638946486546568568408419700268795160869055195287689493770507047252255181396060909121920594843957982528076188766554318974789935570831432767642018092390709717535152154731404688653441442728727505276340717123712236029730896280069971152816033042120252651942585564187679110272733603419661168440521386150786196743183626560504282015895066751070877445436697940067738867539117146288499624339062055809865424531196174774857549899824076806459653377288950084890728679672329386276419058315183338209983290064512484980849375483255367753554855255266686796363813492027706936591533217316739608593151844169643175095751855626130302532417091974754472836215431784335468041908562530186561138871954058009213979903164962848384675728605371803723557603647272017477049602573867018900692380142301168691584615076520806202208961239735399098622899316583591868121621584347419754955525778333083419524978812878131679165051424841745346530590407548609051284589568618953867485008582753345084015973297101590954586980083291086348672282051127766835145636557664497939759982041308498276899975546567962626287837421050726367491014483979301220998871359266507466209839625345473090287364315626572454187482495095253959000886694993531910325567839829689547596202740926474816146940367910446045434257124733700745202073052614035291745252044987820838259262240400891845856140409252653435741480287137383650329797523149124778446557529692690773499897882169898557989091317622258115388104945114692817884224530890054776194635008683959042211139696820639088935169034185349280686371214350556415857087193504448517081640900284436191352076814123745281842683357844780795360832127861697380505429827487609288688064179890882652932812453934012060794347862720296929773716563931150825158508482709849098504051314868199587378612504333535969017223271988156659370010615942237646411147793440530077661053540757764631904263699779414399410093843349969259628802045560511247863466323335440247628693752549575784105931067698768870800844471100995674069918130794726925753880647446425320876024156576783468356457086192888065092610715328151372068286470364801936932788804669720056661843828563419721549877357429147945473029844337734322402309512824516236419033062303858591859633173049469721177121143861487026919882163535867192275684335840773284752022741627202933549753037310463380642877152664423545412175226014980075356425823071585753944302658384420618194719827725312287559686504740163842209682006910315294158418999153185322379407161294818308876709526354528038185242637122783869373865501876860831608117623989042044517707977014416355346521807000529890880784411745570544848759680242581375598161713539129771228648582777564244392100661650642386958243182074759103953478840408413272587991387643280488965548954306947774798900197277196252607448719409542805041510188981675078697178909655208868508124586823023727792171691205848740175558498150485106443829185637354647085601910139369300351832624725625903231251435235611460683480676812456483024532232644799172470042476736680620391934157287334091593475990917633218245892938741657891281105813562799346802086736242271483807832125982633931487822569225443887142025651616212023876734053287753278166698491806946232051999939707740768810938260477627848683730188436610973925474005336527446922068994628636045832118717195987199097481181438969131750850742588018705238375381727236631670630825535748632560285305536037142711361376658370135472921456008872439660828959572532160110969266297649236707287960452174399738815132361535404588769853259934021043705477034422060702039812093279022268468531001384349231304332459867392613077378320769166241303866518284574496381826044068723383166060196939467197337120654648467563599905621297727798532642017322843787739340347085915107690072093811960981951235312572465579940417514897045298778370561098935230979803120230830411845864595572841231443635229666051947844057559542449002243427294108052863451070593026964273929656984773619907954367176971028909331482837559000026343927357976570690949169487616765386942842533482669299280644655676938836158311025165200728871310559235550855839589896716365582633114663665092044472435032365176721776383357290558083617497778207107030201083038004060004866448714903139485017421754640746773780896049375312662871855691564760901224484405555849415733118317307233168332200201516529823746003076903495659427348381252176180357095543093783764138489910584361798240910472387921785990295940420878642463024783712949045193068406742520409042350041341338729143638890792429107416017295132655665898631674730896599845286485094906065441707336201621853247204991516690451810885037010995532949495724836678588849086683096112469352434508773850541450332195523722442102079755691453993663820323275278315438607959181368236152512746863569054330609594734041761854187151032125095605753048279171664343139132247827534753791186688460632402855898442829276668419281493907584986860859670969121046236375573480907633426696261840173350032315363350191785170588548181074926803834274056255248658259759900771909139055539949996386152588982660634562232486403046131725077895455312089402012196337168773606478738666035656534456208438329627030774890317903813135291218916530032377498413638625359312576404172277551584269083641654430722665862287477430475086763052449860442547650771385996945362982031042300932493498379233377268335518456999010846087521570290653511069262306126394788929665260038915644693834817711204075708719648161247787752826926742614111785886037639358745690282372996859019613006867066416998534228088223522669201091177424828864860814052629388080848601980149958262563160122918662312728081930312813602009926689546395776370336521097012926572864746517589605295673035486869648126361836438181443370274782560324482058257952802074190764731042183263111921244101643090296006807794490101935070961405213148648487701987540613379175151901248334385577818074564950448635975558017682999160210007107324378575116836637218449013430653935234989825489766915253221192876036089979789873360313548291647234452092355764711878979306711790427813491668504527227554811672828456413246813044947053346400459178125797446980836227315528769919961316998813425431204897845310552896609983099941605200118894202587130055714653294359005576042159440467942754806996935648666942153041008079955376589356175371743474311407189834229583410885605631646191594120066044776428155060821744565617886855033796189446018364450859579180092810841497397471380941727966418746725040717293459187834568035905504802599291195973885104282292043962511020402111968724558054064213933096268569355290398007042382711876428930140980986460211742614202305862891096859532455701928386118804403010326679058912065493131712426322894880259790095381535988608205642158167117836017746753542843949750496904345998950836402513917583891365913521172719189282367054952994465090973240446751422997356947778512346261132831632969599654386017263355757416072752328593746866874304148166691249902787347983090731375320904246632979324661598006545302573331148620055343809661047773482222271054566417246111000855025534530090020413542006317867140651322000641470124032710239781583892747073948081601366670838389450109439241198082345339252050995328374639527386880107379390401515383785298945055764670528258257911593503651649481985493211167877025560307247183443324755309786351683543721284124381303187232412868821100897837777301933786628439369169507983356358966061580275795437080007907919663200132457669907059532124151089865142408743547330102267799111820836434901255019169452934872645682687981642918576268079514524133388983348908605939837527525811291438822266178340577354013193283031796266222973549783888180312890873580237009036857622291914355286522962788003265158252137097249789834047844412269538358643020596787969524573588793313283694111774146576830797439888778284737743613387627012641357874112333168849533125568270727482313013343603026406065457377970334100298325373803930322329606583932764394759236631424942418242459117251148170684736126270687483836947043634670818572102586598232767883772014965216310210896310372627168630370482710495357418231405467342916414601627383249733428191982380864858044103779484825510197485867122600841427511402641019996827190371447691347607759483420503410360657990337660029054109233676128262587948087909941907382679080073453422696171059555839943923969208118597517597775497084918736538392743562569031735672657393931055166348673172704271346501857646122316451297776843505744614712728386049930850885950212052332075370272197285206817191512442248388808602078566177943307671813182602996785480252642134788635852683900115228494138428055811568142365313613201657548362621246186801071780670550983284202537338802410377332127656424108595433318509187852807217348069342170111490305590936414358743091150364633029200552890468350470340328498019652235683371163598331260954454659047838957740880255193468734436587394572068179953269768399336039271891082765444892087593847896699588235418673962786396077239108340830941235708836943924341265635356860561984590296504736859351280253122426708780757817786318740330113153929573356675016587487914600577584749910770121948055249850890434454648596346922227483006869834980966758350318951379735591759751960783522086538355561442593161330971169729413172813091550760294704874346908794561610556287719325754680762980025097702963925920528663507193564187117038269571229969252721208144085355396213713793031487155565441608906758538313856274986801362313095382879960105746143020143843599301786857104279445561576945649475514809386463585074948240255134654252759699469968399393474426730247678872904440038379453043054532030773717103039214229612986960886922004985125247527766874159745852463308704395083122692870152499183582430369657804272036013420785972420401205502003256396488916308860541751591988518188731487034051555638251836615809930873518604680492487962156927830990522135535749131320364103598970912956193008239204230085861178380445258250455598087919069141635666161379461116551591977984368566380531137190307205201890044514880696943928506398611180640709495165006222911764930378639010661375814964140950197844427184763077314538755639387846193028284087525715801473710262147827465365076960109288554428564962120031950624351144499373115831750715878031437640107193101977562924164920081524086280876162896055791973161189062576297904196052656989703064616813848519219914011225176115720852585664109960975633910168267540683266986587548947986180905211466792331095337866073521629937581745138885743063541173253482360799380760856407784204096335163592008610712528461912492466306436767423753820383524953415295973295836842413566593903818036906533440003113289031784713014162002521214150758850158359940537668739790009549358997543922097106631182683698559367191988796112411115475168231730705576049045282191947712413098317819625339949225607096630463306454171661160162736201857767129451732071232983542114141788741589270857447217543714172487908223628216434436026823908252375702791262198455623926297288978730362729057654676928923008428022090952750429523448559038572403556274395084346363962923710518880377134957829984051802748103498347436799725452000041247801088251295830926285202802443302215557990579912702765429488495673990145436641032165683996452399043615531456425592053913967018427375258472132165355522494499985198582499404885235579783084763885485791854174267711502192149975957085564903087538247574764889481641007509508901777042540177525446382809511083775369850015943034866769773993523052567500489900005106763654996565280257798339623480550670281881266930275901242466220546908133978645437674211642430327551118546696903214753715729430169007949377964477864878681914253043631007063815977415125329663185696373116944944068425910866000969592543214241556082294525993374217356531228682726756827785503726718222726859501369957501668515806759170392427360781698792374247169309088282254939394777975036453614504448409015342497937394515719056008705021244564403361086342387761517043255377444976442563762913340816304886964576484700878615095633141669370966827511606504234809542601064780545944311285608005857473922994243217688189120862460793335944016312265972934548988212140219441584989590200049737281861277209123593114687783948482827792502377841569210966201670011040103745229818279700583176774770282617135927389407416819659633072466544271555470536290668074796882296478710065951730288508363210998742152263823794165428550126732542473328160308336152089270071828487072312134805752606039778278469193426562453187867733390352667939659761261719453749200487432859684136254599684789537853239395588981024709007367625757294627615949616660774361142975426199238193076761832014340636211285163541897862140864209357701199568052518998961053740987951315777271382613491379851285671752163314633650155615337053605632542237046530284387868124155052115808564287945537940246679409410667719208349099779706047855350644395372628838987379980897516974613828314076472852691349431718186344176317651272166377006372143264637023617306248529128499042446901059462559738879993217571876154581588258298151221509287516371615349854194287413383649565260231783084615681399000270887175249194687199677416873898387382766643420474239496019350049297352198122045283941945292132923494577891621369036937311490463910052596701377402149404245912609065179759051726593606356406099433573006601853749600512388283246098514272844018177464754368190683008194143586874793717971542595158005893354629469800101900567650133858075529905236124394123970785393255129874011432511220037854505157982050248752998376864006799469955189248620659507438965720334375720813765061433060329889432372446862894247048791340287690893994381305313720533648867145476740610777742831323402698356646366414750434189657383321686957563244058660799298596157782717334380882417748080530441417510381080290189057525034157279463102087014052136881706861168090674687851426546212608794440112569125675855386056153308155001782570596830078039577714870856058218461145649732325044794454346941064156158957881515366208749241114625325958971814889380301339281545524417455847924971382669262891824603436488498902866028413545643559446804595145458752474384043487967211052571323654267832193995976160459961558970429890631194747366731524738304386090578745469060525457135644984720759517271999808186349263836001711577363154230172281494699157404978357905577396816296449691513208782101245132109527039774338993652571317756591527145925547024130397955549554799240281118536879178146258474944609398935351829192979168885427487380369872676948112623141231434747526222976347248379491650324148569387686753304592764722174041485200538670822141334954582806615227052215284452231270408280974637325077378298832774643785736359669022250421171437798519851766814030075970348698703431418731514265702820594329429353021588627116261301884363827169589507574891598472014874319514037707285694954921511488392646535586740965410932795884046324223269155710724606598029795239006999935380259184422949727887200096467184816673081227461442655493596820088332941048642447872798395382961556457019249146514241426619650235058749168372662061837175320939372837964075621347721864297748815584511882873658099616095745289461314049479745997902721309311879293222827748955631398588218905916800354409678170256802975335052614774075093500948200923724635672883175200116270881290287779086218796692147991017549916478706241931148759257152157664225562068188549534479498794381763834632187574554800796529326039009515741013356492015590611333620178283307849806537975823300566580088919119761565257241425938428334058949648092478149475648194467673347472448293481288913235077589309233851187395013259262386696110398458659510301529245696344990991736589308719378528193226359459276609074826437604347978258015542844042874851699939181669137573908716011862492899740757383584238264580538727724062544839245440818638038819897198152291388920495815624145456940382073955137986329686556533938154976744167688519079619325781097156665016721347300192130842490249090223797626516493974506482966436373337994336517118370528241327367541292750423891610383899370567236273563197074014666871478706873901830736340442177593990209421561926028017744682309477277219877992046996139400234750873137694756539520006101372358320223785030503205569588905543245818403843349996573228069881098721183389578706965966176870442139156428545470051593424388452117831752673728538506458182154746259321037241064791763068750460534577150929864241715793907753750851516135926163942523600923907876971943534738573497513671039892390308482578254175246469820184004563413357622448460711953153156604087021558991687853560917632669037032016595648788228531730682144484245320826900116180971480924238304466397661973836586940195268902105738325141986055819704309524857986877980148475795486414846731334481397154043130626339211582603391090351423178468951121133702216799574078273937212263615472165038823098495297827041709331862641114448266701666254563057031037889723450099822176873781819230166407077787883018961534319223101504312058493399648793753385239112976845468634521447982516836197426455023926278281887138271889762104814917618915069173393119563920712250520353193078450378500441626703377691083365276865936917229039017847618275358309563383280567063506381179131063051733710728392814691222105663209021256459761121197712483279423740823250632181980432041315811605563843697745377375239719868040341453033164635700445156162006623155639429100408277107534844051332942607009359779521758169943606591081235569096736973517801659135041233113112834019253064086376044292346988417176724193833883787584350671048476536517734976493766212971503226681647834101567170613623797640637131653777514083048850888092926931809277003283930726648524092970286742827263621416864287991040016162822167066925131640339579861560121862425520069449297349523466979878249012624370710521949876227975107753093489810340242447567080772663046980552666245841724673179505075891161322272782498054632761756966613427684070045135247434562035403681782969983584048659020591905126663011485061880942759171019960148975924327782649409109498898420464309890390796137743902602326758130545579169957244863441196803187326266258022424611388930198697325744503088187002339217230837102008607688692455472606637331075443549438592036220961410229570913484517787983086596976330615049873080133994954764678437334055242844443802465403925340600888386228374038808653332953232824816981851701398745496920679012797165436104722616239941555031726095999605954564375265892166719391080471837439566901365597616039183609726297909456547568110226823495205099792062667312103862558095711414022008801058691548283351418122873222344666954837168672031120601763432755392534089700881840010138392251066709668206477174683522711454985701848119042019793593025037465170858329781494953679124833265031598795652558022109670254495769141852475240055384036252724775014281266113131440222553876714986118102606290941563960758785877665218578435918454400179339318593926246939480143563957027396758455989316459581413979008862742184287380902143799323328343429991028487618107482193692451800819608145379510443443854977350449249204693220729355429304882878259750650592576241040110962963543820109203137805422092614314809856555728743335900909028682970580159896181735726351472889791236220608163068781248735568261036508527146939484319661208329157924111720875139101893007698567373279066936165620792278650607713729379369399521218911682802861747511428784011701832993242451071814211320579132985257994903208468336154866085137452429157830336265547732052453493745351096397165096158138563528439362206442587299022734818180451812100985382334918627889208281487877449573703258656373542666570628623218884837298370191910661228894874312366634353396082990384955051253622641082125219028238782428496783066097313471272325995472613869044530118369072320718804056975614644720707560769450197690236477150578790525652823991389880675372037186481734033148680343213684259330755742204066437434472923154554966782723571210248639695214965603730035100164758099724017413706304122939243340539927696943123710100380629134527902042367949395022356773369423458120166743946549760170458891309655239872847086043179393705847993563623336215400860902132766161700213725296615749632828305210474287433092117784279999498522054694651972857168973230539431274866416871783480240139849428368896362702656742152159910084363634235415866581352112040136784592656315168217284299456412888457059972199420596335307461265216569273038659297371292490444349754141431775177656198171272866259463430208520950551485406740904154554182654937538245927957257915349685649973993739163371757098196553925901096497585388429637234218015753717261908165620539116011458595562208961383399027298577033366733086192375339072598474053679098155273072184526717064910221424920945861899072654706824063757857565749250044366433935098591623036989870237066430992619083569661017568813433390073516960539064721301027814446990500294768086201120804317793979271421684524522162723761235461759320181373796308863107245575680068669849489725764137326262582576766847205741456607415104111928694960045000893557941353484418735127523480629670380779383906732919864906247282555175739169039911405299007185015007251740577123625121756948489331920638811969756603639135663547350804296605184254564420139699239035402429268170795260693632202881590794188064426976541179744522446982801269799985827642007837516593648732750073929041310363151833777091641537607765386407594238268804881521879532976297248169663069019603189783500223665131292349652131216512299420620881713217922980199158024902080009582109208228301326156376683640233713787035602511915188798426275884097173693138059406194342865555177474665140841471023211163532330598702110108766646442594127724222966746559914074102990549419168054075915706540453420072622400839494982645145905028346456368622954282335680017704956147850084240090809907672053385035601918194300379259325264008444234255247718322936207990543478327647031537498732152506910319415894921179760848182603650391771371237339326163771229358244015475151931613525932825181573254731150694576384745801892548416721973383822897036640758761941257427724381346652310344990405042762912609378132623012837883813919101825224818348335275188104397615455011733355186485479595355936376506274296993425731432780995072697040283732035848035233722627618464993934114490856424823282715240369170538697376611611026770183297450499007561569752522541681960576719385760891412908389566853669285798527768793104321915510307741092459521064909705368845033498422676935663219715707751886628521012589270931876455360110462793455293003786733363623551834098708953090502090074608300877568071084026998233679321398843675095253321180638003951496407189574840335121137741058534260524113094007647113172936300212174636222729270052624032649959868685255736705086152244028089106518523654058484010663589230307234872015665301211592959156572621658338496235088846365405173683713110428767914445375214014296281320254616010815682766458762703392866986670550612619274919552311826580784493573688580188861306959981960939645901689103801039130836704775189740339770416989478673557258982719165443413197530072758236070561133327361695423722203614747989716281761726961950760966771615814867594298042609584549716276248309500333907790991741132578181947769005790729127727846752086528827773817951108961745218447627252383445033711454108372195008791749428929557523989647912986122815068780941278169263266964894207410458871599914999900178188815759807593298549269586825061398214233796912899065858569375399849895086754156089124023115159368427619300739014835144841121400808702505116439953921628844713676548503693911764674119098067136838288667298795200244030909024904123081917207384614891984901783856457265421706964358580952370471159795082135516321368369857659443922002792986784099323003655814743833575144703511124737233460123225141732131917396470435322406430383417638757825327765274670344626563168449399370730682004386359414265871913041426159383375756865197245218741735379218750301146992693246556489902898504861358549093050440596798372035814454152389544421359612341753246030744480516192154819103085689767769759107766638162825298901656626902556343116443373637503214237831471592108936000001213951256401749565666325900682232103858619984806053885918961393367362145992114171576105433914657509369381160744039356645861548440472950032040020061777632226039196615155571457161367502143184813512284715237051004381008207991433794606089745807385529766667239847577650196715307052132698604134778382534135518459940264115366052092839875388302896742016659578879748477373194218316152667282429894939252919392321195064135149345348829073206137618165223480645156085501116838718205786078506975123878995394206397990991089152202073729073035742472813569251967355643581963631376937951799963187859362673112960337384099308777295990864275230850978436787940334061100126679163942348113711746195348359481863209489575842663160123138523443662197891202989515694199256430922643701947075293554165544312265290321884300072330282586555595549405684105916672390350577185583764690388921111898230531041183432003339167989183386438416435921108593702660671656846969734388438702525489456578304742074334608749070164215055184453913072601277178616793802124922012365834998410984227380587772120634633262021563856330531751063953535870132066949089319389547574708159596145220819700215948378567592252741700817605792690097428368948382558651983242147961962081521819881194824158363078522208729270941992197057033472943940696990397046065763694096931723276472196113008160448737981893560254034902382668221261786142283850567418983525653656567648101118866577693727735678136643342747312789197202257574553971067199467235685168741548868484194274359530984443346365826810310138339223915441230530626088929368458433215814740591231405847795217241796238233352461694630551371116793173530028554456168892718715766663998080181939917121690879704613699058021267302231885132411146481131195087322253958100612495739025999737505223400273639803376192627079005913565731169818485843848857938223194419952863635891595096619097852681394235000475140364664172007106234362130632288019360199935695477812629361751899309582281943939975084858678474655950482399717461072907785152584800009770289963544592302704621334437462593415837995541272696221189612878764971253745920099200432507688797532148725047923903553267615793372113908908449340259784737009666643737330748502863983174027996499688036941272499366471878610125899635336976967113451106031727837119710994044145636360419132726742155167036521522922121784256646393138514813521280721825289882368385372687025042169083468789280950251364604338752438960811805713828869986202384839669592671706847147990164522640036455725361020329839920717077805188081021613375740428079249665638238633829634542815178538664612692689626799127618634388033056314305872702367021414785035792906689442370134981713586937924249169571063965733499869891689960959094304370659411392546301049232257566686120884958530805912759544229084651517466461936424731525629923770823567394789898838296742571826448746307244091569533142049012467624972050696497080438434259387503233135444203782700755112987138093234115097819228410788945475207302431445770853633130054086960845927966073512322522628542910651598575508578727123257021438336229208953679797405397617976507138039319213945209416282128994198387748961173191793592918034447230350429434199283189607934401965985701961429367433340484574392754328039291423668376709204550578624812194409293267158513359962041221529316267599362587782847952253568723078366143872144636844250379387783943821233259274072574084077885613602585131189649562169676873155846723056876271120643369541738876772614976479747151393526924542319493357982111245411427089004848011866365644160171620951074242381991942450070699045536714896510641279104103712077182654707174721839015136309023937300536780195991769843010853037864213912238232851378019235224221075311304060457619052648493766321303262259761806355426854798319337787005467800072408801942491468090831703584248440820328307733872171035499009886640696148342496315079648233226491258636351651823297148224730383436442416428208878173089995063492371668594490983322765359588965919989799008210684984896921424293692260651233119759773500962815620090455355873518699945677240861423595226240581775602631623911491827261787989054822812096081173070834994052821729532263898400723399168074117362032693667992268629961204161941375713259577692034984176371703225255906429414694581327145675243227090162643125463580887822929866195275327780377885245136746345147004640472624064317309055621467577244664031449910458148091559342534087469596846625774658182146396529428375476973496107366339237108899216462204618362413965993347592102015000388006147578190318504083532233696002638964246949759913327519069419493655560049117883853606033295950324776915419138706284871465907773243633719841723945695406319092128361310823513076377082800410654477909136446828450293812354902585999784369341286827054816645923876305516605292204594125682242570019181203434743331347684575926149997023055066336547478754935412507231569518240959439104353469986359893162752016871339877868079170559886204909101558947987407552822977391937748145865094970668273518020863250022652019655476278756842806548603281971032347328802091855085105714947887751730056390480231718252765393802094567633080189171488461225380362548574444834068624075309483593346386506554563976689386358898539452714531036356906291541809530481424034304195916878706443214576611814955785170085507177774348331456728156186237796205934924350079550315360077046061591337729063696324187672341175148323781480296285021919503935030938505252489461036630933258757311158664136319455228466256592598479866057753302128694061713997794847380020789866993674738818696712201469075184007660855939188954964641219675570627033476231334817039858513110188727262301148943266329502834989771433400315580106025380838225759833858570532793952905282171180670827350719941681597250198239960161773117341728192857998963768794366146155783841699954936142572112449469918692510083303883841105139031809264526778446361062038288633540785029120101445768584984656068765581267078177769062980588050796226190457777462543027028898340422065655147861043350299649774067991179876394553972379490103175378106810506162588884556011830063670746479729813835753917825726997432478605646246062457361996353236042470707991880242680499791589709402736693483388055891274891440712321387086708882485248280195136898256687279211203188688114657891815863354420026010553811144378755990085715385427919181425237035987274375419960493592300870584977372519677035629316250087499398121809647095200650740139429039592456053411870158349322007089186447769783314099747567534715093151154037058877784664502294296442180880632907048946181946375285067941035302960208287367447257182852199679311725391185401308227200232774611121042185831843768778397964394458565591521660077593798002847987384438031453656673545395981075045940778759621428476749784661153552188214566164905127521420094231087917900005130387213756617601301146144439415494787508655479459024441967415333182654386863115624447025072862084848582072659680365666237507982102096524954630798309082094602464104922127473665556509782527400397111113960335255334747387056457246457486978259236814399267552150216856402328213150321204037572638356666003711304044032177860155874060815272221788406195179598578007322964363183427702367319929244196804408123150963279408020578921393891075982085477473447380733444195470304044310192765670030644863439293874170317162660326183157561517419888292213791234856510468849325943880277227312558083606881630283380782331715781951959016489272226091801245005503565815874140116215881181374791982693413545545881346088585018834952146692158629773739664027686298379800653054472503324472028063247050245026184856373242290397673545188467175330894160000179301746059811542296577102308592980858001426071465467092689369108161023590544511836196084268117991345717821237215256463222008971196646125716427632303547884058045517731309870140440059911424797724521648103916642989016558608294366687892809776143876493366046263520406716049808103675523252236045102875411084499328489582370259639534976403288945973472713535057310293455760909395516245560171343685526449700108515431307490477347601644769188720291905862414013980098182284712120992485890191801192728613666692844277658469221640115675075415973259941400313389410545865377852758718465474065497610537850465913583742372273814635700147957461944508394286580234423066619801022241779131553093039177535195453131196972111007103412412531198907416484842440681668581709692863542378288725467458022517584779216255053972242172981548970862325775768426642912730837609399399519247101947254212934601698191531498056592952562060904713688331123297264247407430932846867527524125737239253495619005792195759735963235537081778793435552687032930002192814052278641345407848625882554091393133432757515179094540092339433273122054182544758047808603820816788984308569586168266769944988941534166725348162139861271798492395866036331108822018273704149947839423028432426784520297307435318250238377033860018880377854013807999041878443816843629978935853571211893632083593154664241025526842863634340021964809521495856704024857119277177877092642505018840514345414055739728199536060385420085920630975932611664869050326156511039931592950468365359389902751029028400996278632268076929731038027476208712538436444480684381271921207797471811442712656485613259913242722713215556149944958715550511875926434452609031925919958816458752826973756436307013448062901677528687776183212357461801170068296020912865413788756118582763313061375420925596077167011381294230241855724027626167312295187201036150212743654454781973633211782410888488611217501522013028787797843833804154314922860611512760098839922635563117542391917635575603323001595053897188886422697031005601052268463199181781154419613231401141141990820607562101294426823928734421811229560248126245111645458918838767839335053930657583704502473446324022909772357291635080378905021033433991480028840759302265916012833696945133318036715686220902811301300648229136932098880685893948571556814629758350926479644337647550885370457134762458856216261262516220260659978384050998776205862367113291310779994675096751932043328259265196684156021747769859626747592871116720300111738737389968513889859760973973341960238383267763542183844120388999131482860470844373356060121274235698066040987444782183367260428054272827587432768421743088388123465043323420557124791056928419621362387872213366333462135534151096785860984189876214940158694248613889846465695086982791620320923664893685400152095675480460178053415275798154762405644535382076085930208990825228392058682811719199776833735812563205718273081385748151979099981138959927580078880144710845512943867056379280821196888000541993671705839182620304127039099171019785242253002068067237702828240639691834195333230000256844647336684767943149658091877642906108448642478528986344945165627029901247232684368652837023823137086806117151574698924490261353777498335502411659319255763007071790397994956764384752223317672854961758108567634750567928070710492836713402385510408110956304161127817874046598502432220054834809389915615761276708152555677489403719985693848417528077165647769946818814024013551523808633370135804645952561423330826240109957787713858465642104852253059127160390238348349580086404172605331033884925508327512157199278930784920579042320238563524471330656952622615342252453961410930170100798580910027630877939265698655801169669659390099220479043817651583985172173793873422714320911429602181763371819215308801600798121159570393431682092439897846964907970697204949041842227466460221881265388371277758115360532183887181452007541977625549596735871593398833511862280625429123023761195800471918812380541555768224982260841650429698705179527205869456531792099000077265416187341996890579092528127586782625905592832540662869678976408348546601839278112869195343718481519933163922319619553574646470371228695785334977089971729479773640089657590982721675289353823151598809383395822820425948032394939402584767829892212670635095423141376140822592390627813137552375750987290684840055524727709028018234169036246399471177398335851297435553086523041314443846463643735579198381476875525467318131581970303999445556152003754524823462859411965501112788920409704323866393979485385995773334089479326272695997527658965808636223938870239671523897551862773549793984052700354711445835252725380824287069840970988782524864695739249043183792716299216175135588015469060587380169836980495942133767600904919504716915030817793177816125072282172911023593959511471504722926879689945199281244780365829889027173106943086825541788113896622932629249420545031733002719211513567072235331998494735804189544815250820651708781884227083487438431542326528705188896882366919154883647045610754060414909650107029545466125490380035826768379066327489855664212517507153442450675855240678494650929301007876025017389281964639067557120872191645111604649168316717289025427477280236753178669038408222467423951152222147627770676765744884001981176359498404076376464902409090026484102974952275085926242240140258309537019498404043041703135396066513097404631289244755829215730585494019406119746466149874218968307939892232192270937178425456794563525740628728824175490010544291158991415208181930477004454514051920907989178083030661969725179741677298562552471242399729315324934008216418603496996148546564819523572080321109424102778946823777167735512098086031286601916480713382102181262068174611549494266202674660987505464460040367637762616331880634424131964902876161233353818969038721413865773705833069938185144260058808264476369632338446993687261314507321207784157838045582489682619655642735115961237458800352624131039477359908857566578523381614297006952881382971712230522733714761777124302004215923125316481057486035465011215057372201093469742821788935320518723597246822326448216149822666854915597546989541000402562451405662482648009607073697351477888680066132846655143008587759152389560893451146115770123909980705379299398046614909404728469143261229842402440567889351032587674927965071610262922151685592342940791971270699507884985834324622065901902449532312281411852151495616749064932104199283755855647891087260741146892210506645957113933419265837747554157448616258507878972157110438754435578332300557950997276324107956616793185818002389972628742805495510798751932459285060677416518361636868300861931412571204061801767861073343001792984650993165396111176518453922461264940444297075571410768872737876329055741853982935246666533324739322793928841242467428394956182153150522009980358534460261208259178750558913614618766539055598069367106869888006940734032704593667465785467856037676882900821252668705298151782574250584354732544734299180508462122116146061758004456330987512721823578465288430643814583209500262806599838290191891645530257098949374018647397689918558050744351455530433191406008893696525552659119217127479511064330209320088700183620889713361498624899353278532639834532972983740472722015954863114117090622698871600038354510119262766814142302948610691337382026670340197638445353948495510666636207648505020222363860126300506493668217357638199702587099773006003021753882500918879154524818955187598788049903805334755790011266639374735596906300550326126010149331643438523780849718601351666267818118561609035208262927000927255543643000232113576225662697452631056687618311645611131634311520301919433536663762025474397588790149022886429010097075366244054990708950874892237657195012664060151473356338683986581042326338521006346855514111831585263308113773518901593136892083718816749029332465550860879119188186945286861728231980970988074327270383861323365835912193867658870029492827032904515232420229749335706523647693394953426648808703678693040342857608053611957889152003456783014651102578113607151193825065142368817885231353437603185847152655232042264397892219862425220800959809928138680930023388724837565705566449672425155832491401281845432533170025892566011207529872994255959257071389809033723085656407197251983567417522870136685793560778285353071781926852294360270271638221453355120454216304392583592353674144434511860526703999214771169236895593846095332103622780780797444618278328909757289862623212902725656984022372174290440614747377789539300393880393488658729496872952354181772618128612022882597837874243389543415953248676350766402171615743755133146682910519457884730509932509978753908365324258272201944947671665822701945699728558203065519164160718879776275321459441042585335383259853583670186985391064822690703524837027198651398308441755467183027929677322000686579997132594021349411526400400624147855565907656661595790094383401957099802420382631033120411662378653901188938501687077575932392042965410154826854376393682426330057449597834348539103304256818422318240583907696856693131131399170479621421241042186538351173086150652597891452538416177500577968451949218503788600745058818082589785078287651471104058409741709596544278723937778492637403091717300975618739168682783670514447091816446848459578026191262660740635633316736202970390875674449597628239043298515102222272760030953481431564867026452195117806466753942353464824215796216696459255215640457281305296141551284535350110617189482318167842693530251960611057494853243065135172287775871612359785087463596108635132885755014928488158024824119060899495586937922638571319739951630705937870027112226350961043151999444222165227943364267806858146182198521047935283903695729718016907228076032729826139936386057766982290932937167728407785656738784261772618704232897282480123287768798620207024137982018695444483763886104692965817174582644950744430306118802783120711216537033654637368447488159859103884298160183831504759132740379412907173914442384079254873957959557157915914806260194482687025662665107445285143856946291548898966314035638777602127061794772289191439693254308888683726056630727002565933088535363573662267305464959356408358442310245489718172952546328130116921104695636417349206895891168816367781817846322615726099184257947021067234361669384853523144503775053408353115086923048100671401810217827819170986423867086617634983186804707867833746512621158658095342665832587366304748420124103216182825572620952737080263505156619068838379129822449268267335787561160006410267880157887458792919331771373355671724117495618685080602959166966964990998755040655471035299222469330892116733579877936785449292960685346154028260118035103660166522993338131442971067085327627154390741349574547571799130906788320989707196935648704691323848063069055568644680577736531902975783219213691184002533292869780942622972826607206699316274896748296506578930451288080411050196939550144477652374330100073424629979492405630832360890507462444899445726677534773011960315079737155201206885377455617688472049426211476719282089344724779261299067363491466878116099404563011623810635685111796903771034436862712490552244488759536239011691366908755804359434071103244665559650485512981643746483085606076254886981851082930713164137719693408388697960798883523826405788014704849088590870586922002898328136113726202579661968770038656716495053166219883133426110219435079273719051625169246513376769210429374783227716440093743317087383226260887502705660015334205241731563648168326057916449051650524529706661356796941177851246423238597557096703654761455725462181590979428501414478989696553572528072917096478800186379809280949333043969586207877285280346334151627232762754950198178543867587414224327573862915009547580272934046375147938320827564948886028890913271119549893969554649193325764302168651103189883545695609647154334268088661258973640385052330251385922914964207458614486979388649947420066108979470974222093698307137674581047186074436354253568405643028101686508394753474713426408379967945787866337100771007361181716611278175446521604142506273430224674778491807529330799911429601867284003939615911585596636799578864314882018722796343149725231196225996311759538277942578879018602867779257311360045686233890248111884209173708367449612567712812897868159421053333384100442347559918187534120615118986227954233332312681090620843008922207924204800882885810727884098282948206700693261654315330615666640790830767612089329442576722518855527248626891336244449943721558531849449629061150896897801660367979805710536692093157979637715030709535907407626493227765150211912250884901013159468938470974262850652742071220058916969674230494629789244845001255634164023500498377988160637544446391198744700379737996013793251716961418951985725989586106895604709871339486805649012378326416110041961782011761969869217650431194388982648728898242384962788319620998111300475717106764216043166369783382536358000366062342797561100912346573960792395381844056402458519970314061446706707913970156791737389663562692329092865741710908620447402399156147856035419832555418925757583215142114532019553378741838318006510535185234936646464764533828623812007296709461884192763619144935010297650690849710844275994284979690401579938116167076551942998464750339601406228398205664149334207207030095425928446439854106497268350772723345221649085157760404429677247708102432491131991686221061869697555161736217164275452749165514474119546601215051170185246953718885594106341723994403906846144707677036302549316918792547291829352874050092003065995272282362539952903050611931496171344230416978737698533477777690927122245518346937586902721447876104886973178781698400315041059770923943410043462825711366333047609751818348630237241969458195600509114100566943299862264942665236484131732714349284922437703877329753427392226039029785818344804062536856301463487927288615151884495057563881488687604605527418580689606005813205508317495283635143384686005168202878131122100379558423455700871314331101995129821219208421112872725306213972045149410592348846676782274386752524394403431395649305484886200455049633164673455835673810378930039533765521061119815957910608249726196352918359002861951845217997932707090437441083383822577238802514983355048469217109006985711570847356057964597079032727262949884648721766508670950140889586807886665086835608035273698014746748134658962497927217703705929742094256574181569610059030259903301650693193762790825229175399254325249280235857852754040738788276835083512096974528631771612314438793565806724770375208822912919844438921105283840989878224164977623809096565638748638331298170642714439307875786762425543958241676282214265940316910683369572021816120663622201310446475961102406404835830501938244442232535713356263794859539632169783484297013919955555016725117541491495828312436131356359224309928989733488186693087877758336982918548567960987900345885941729348129807473338999332953385158728934304906731720227096637742330742104898287785443076681151092083518647564596745571113461021383566089045666911660934556772124035995793445890976807732762685077440229544288362954711799305868086145340373801554047846599777737367977406261496396191520346552187499482019188797565277832586346282500725222977383951176736414479773445284625853122451755402481389492762885928557408354062865540234843829128111748402097574608953798992871744811115171550572894167213002569045812435123083636499216559804585992285762817283002057316460946075747324956950181679866795008839372649038953561091695406228700761503188341674987513504968687475837576157787716546746002513131842129443612681450033708245836530701741624729712656157675878251319142883416466932587663906026395436196190177453202871170372502239039326839315725294383392582122003374759912603871100071016471841445449000086687887101185476497948259400930153617950053056810220068419355330593719003838198391730946835462824402408544249034272957941848124699339890691339800520498863692474577339403687147914188707605781072709131995532282987076380870624670460882332676734549188697335117951486573687521298288527384418463891318226568641500499541959340726201336661661734581663028863358710991740855606715818302095672541455813396514629561898309749931160245955096776754356525773768239785955681249416554555974480566645543962635485108621193598898859874221686642169295113911066359444793448179138602679458720261673370718451434420399284334132066118950209291376884151650115973323581615782678612915811807348573548179756647490651542151614855183746282996553028381241793438283469180971540693896771386117093772353316999868133222275659022093423181335843297883192193024345211462964293870276236167619780998437609783372647949808778955948196212515648369971692931150925995394642370197741724579085820579219953429566390473492099543340004931890485163323964354004389152859526130030543112599851863215756676185784117129042404599459055828029007639855285031508851188201959350004000118436152564763358263946638062969519137316598724172570604222846953379911133519330221706149345837200999165344814541004117616198991586952571038817438468671506797867876493528249045222990659027574485694664586628514367568505765466505756998697545332016347597134642590838429731168030972010047083072852198835568184779303288384746088879940702301324622513582962642411710874117286226953533665130660030145916477196700734226134016871324146869641474370721467253476712588385435278722072615802360560134545613912636900333793214370419825875363872925953855071458750957258664234987418324954631773500192970343011190703869379463207608988470325896557290607697129512891323175604610332775807041219545686134462703077914659097494523848579349777905031606243334366534009234400978431748353464947614507254071580366390087073985038746086071899001622916634213811676652770028018947840785033839636388992282544704171887720499765955145382075872484902061576086515426582476499218087426894209277842287512125879688134156092792329765408829869695017151902070506612533090484711458345683838027298233332336115196809288496555278392856152482438351807583614972858685341085804622340536157043144142372374161053200489732194657803048722491541530925480072073845060927568977878880289003687973586699725765064804791994751526436465762569048042228531504560024999173260470258972543509035180426406834920239109172086150334454469394748131243051919784762654158034031154777693884399333461946136715625354325080090804513606372612845935082744689444040508200988226441138441039880663841863449663730619684963650349922582821735800056648955638843315766156034485907504596230397949456931658282781503799944549612161408678605689230075384161549105245027693856092406125348916220538210697986578568309060287086009399908084025799117072274633610051484249296243093901832873834719592085938240239000057250654615067691332725096212367473549765812417831935983626969168439377814544555842646842763483211687092301170835497130067398261540699863673494334415076055074843441684819091625850333800638054946438941953217641113701498911200876401127946447723900120177977315208610977521079379357087245971385178709387088610742400336728719748687237609247101759607473983631927413704913066138335149280284782733789162555340043167915221501777774468772215585593959119003332472663166368674488200142608170380334805166151567770882516096248805541862649043690075078007352652354938735630031142269681136686237488846430583932116619650120830836065691564252137628135291999087955620073206580392086406869081539928012094156828212965016182988916468155737874120297576939987195345735188782719050105309590702152185027763923679338840374116789268753441704067422957361196362927404323654564836989417313884674397266482590581240523761000221024535242253146112841577257475467393614441367404645069243286499441514951080023159445435004619357794367397677708670561338928819660922035635510703105006697725500717510605291123422862500737944437371773213329927057210826691353446154851655537820079788510834188070508567366754595550627168485043318242024591080426228676176540604059808263903696045988601733853090221164083915877643074597808668878796485034559092780602285371825546934399543782498261324444312722942837352540354492792504270971625088084040076852682759711407495082349280384168544092692185673742979985585958712101722678937732398174405295328809504019137923088187519172744838810798062463079799836654687135325518027162097051848819353039521393821071585891980876532677297425034417071375575246940034252124477205803752031326706638243251008483358220225755294831557205314602302083555740864583596757199747879596251692318134786976931728826871259893656749340868128300360251664292058569175990004675301542900159591884502931836620352440232380047442741827290317852132445114852866234975249479174198545672103440083646395136674983759054838814196637677900961772561124157522360248748621245311251649808773166092495348255579110652405825301412411534654523946216891143454923990454529186996574484994761314240076485648328819466627112879233229815634779824641505064771907967759440952577316691383092469510140284299197690396479685318716052595239262417792166454620031138148245760124321657618293150053129370037520002169374805528287993125862901961159410452521771657444491450220322772866639180533371103334797905368575363556842292424974542660392391041495312110377976434045914314165542676590949368114749440330852984379603366778796943324142601741133847208230412316306363552692769034491610942258640384255144146575992451774541814886739411670258389922019929443166849584969270651771361410597777113216194295367061947002034216102449224740958896564897415664248163398079459433843523995044428103011670714566950253199268582579056464906462949363250168805359060012587819412636314499549429910798564067572958273097494092156898218553959718328855219131390218926200537132748284626034559998434956146056987433157626045622877755706803522295035664060602415142716658412199592863281317618488758386690775462727927944722670382265029080795232934747403416795077610325700670183364094572361074889310409002953149443328630385180340049194149326757046587099812232114091916092967758550764651226648220849166802288297911455903628240878341891660947436420445777085575813996171587655572959506554046173308645349577670247835715317413598528655361200805449075567486002177888159200160847359772824347252434391908477814044089288837157874886454693911321128575632755790492344393177916951849167511465508073701621082140157350594547045307059108777201975249045193412270216086283051209162140592795301241293244180714840946769507022876381557832020280236707599241608235945912624628346764346341679064560578049645951196808866584158287183041084662549780418518148897636975158173624591326335108136741489097206301349666980382579293662461435305276080557127001864921287290118211220225287031746741787205994962237830627734849266883707159282670378862453162174898930227106471863995812731437054637625744442917124075615811835406111978681667076136299824721061065670831512447872624015779497394723750856975143342410738704346960199676877693461279195052680783651029770183397379960418792743250500965904530392731464892029273640006393395356212958951858722189411862553999982048897950710821262739276759066107533501075143336439608493000061707847113896585087351438094733115381703223138362984673611409668131421008541338827395258904432652137772009944495199999117517824747909166323815640040998106067290996290152351097373414399672915204820438307982465289169777021660269278761519798728059027256170340947690611673021428991693329404215467603491214470872962935619558176834566587093026343473578575641940236640760467377118893491029208593523971752162198881418815677136599915465504879325815418201085308874843948976357782097690342082702720415439075959502720038753494873042485585427997758168667485691349785404493724281306549327270826486190347602139161755055046427205859308885735187536626830292594524919438192453308741977692768480742585806565284447197408778659416047339480553115968686919585195542833199073370643637375172556071575914493273036141194107001906551637388570010788261512533032379965909047779093147869206312155827085607462565526993325042673029506564411681904124892566001432546607637394756150399206428748674673434545812854353758478690070651148317443040191860136398245318999368900174442791861207793811619891272018977950261057443939754545416558993526251594594696480490727020070763393913448980809674545151638472843653820739475084652163168968644297726413710856718669064766611034876235194352657478409473606461318201937786027037115359517619916430970216927177211666663363204336887960748015872206641941914989894186907107184695592189884197054187179368994882559978856429464896457022564747299649649863293514508498766328770547811184983897018489115037485032314930673667790446496587129811410613232834957920589562409986496144906381912299310580141135991412476776112672040503123643378848300287602431083383607103306660648838676301064029206939207908868232048748900832069597528455171812131465845955865572078531257626936242994147443001408165615405359642368822155450253250587149144548280560036882047611241975965437050685363562630217908692866455581287922667612171236691751020629951071993313899734509145971447015802942005298687178149961844214130697122437912056169576137385563551863072359637183884571017411772507492567613159210372047611248288048184838512353563456075318440143354189342959143952423438314040903083754051575425125090369624184118894044109532197001074087032706536393896414919891085376238165275977922256710460771721224573043148622944191669364582616905082575560524297759108656267495376605071318267496855829432026254510336688182597018254303386841489407857879077927697015657746420031051780612059459872843970864660399657539441984778580987719458568895721900999476195834895511063503840750422822362133359776736271725459693197981131304024953796811440956026802325302902310652434375045736204121437141907776643635274717761108574709460826983042236821974585349858053847544148408770227270147782963147593187155980453059179291430611586953485896491029157013749329279245403120397113589775164049665763183867060716191887745497103277530226931885469204394628518288797627053145651197904747923662675128908618422316132818550193983281784624734382064981367291601436567858961096342854512488091170824193361142493691385294190421706997248293685500014785668305036989697287124942099228338279339280357507018854890874079107489840447033019130240895435971858228561498294284018307049809163614592482614733623903450808284751370669240416987865171874375552418117676030253310858597278825389664383922228009164644698049009329585007308752113611111708039235628505587267944534339100370799224722112351145890573822954626751754746929860723980472352299374192674758472878907927676587047266100684353221160749008687953724690597747710109876809477318320713553126851187125137586529402741376772468106397866777273719440326067233961270308815801642684497416332868252400941338474379830674638445742311522953714243207011532213056129245747977770641812539953126167617410460245454376773755878821586443439278610239065259746088698309248152229761703460378785396689781113774987833712065978799416753814960504933828210935901251465182340249600289513262488227362976104160623454318673637081791377483427559147362923090071808865900768914911077397095086944869279176164363405811938834845217665158882407153109175540916050946517233002798455975426862355397627024428421243485327606303078190042336055016769551167013124973060541881954989456091795303067109067875873270574972650621312253492541938771915496292945216655861487516475197143145373538899110160701259291101030096337439415097107061214509406513876169895472633277129069619545280047580003769981099267048745283396777517474234406750492299617984019449331285651995307455723812931232798997388819505821562688688979535236084929424269447126029159623568246703958916287465224695498442184789581984027776293896677157584002619316222266064953584316448989006566790981844772831475825323314109469309655222130697087048838585001115707524974421018317697991288917866535537842207197866709828539424531857879216259183355402837870874137998025573972906063534314945908198583354434000288205662375215511619788867622350494138964829643861061578125944525814162932922499697728419891640028581392254050679486150931763606806098493173215060302826471126851624417831810915649905429905669231759316044295199508651673565311190016129450051747330887773631073460541263345552744752248437033638429660534488245791896896049515074538558200837154918326410152388790524255616548849683462365352136457235165867329334082734778986184126793861704452448664963916027886590288727427072881749021182715911125932658643302705563143034952934404068495162467998429922781119845078434526674519803238511826399380376172849892384611242162234220407346319711319210756260513396255092205217047628299191789597864219227649169050577850119603608584822944784088947806901997375419424720798014797567558624767191717826521038184516633264640814053384685726028267262871393981469288261151797548752607752764535912719229050948572582369455054791156722843734703886327022645600003545088672683618530211690774528901185880443953284419908062580478778285663777244871314364126174421819931081019181030113139546940544565816426331568769655379079890534335737946833179426564948136029780745094489712095216939940972033975103889815728336162296577907996930556832531269009312256402531998593748402758283930264652137014743015993923640044125370812586343252246973583483361932046355784542764391936817467964961055567334550936910302398111489688119301473389483020743162378150742368709999446533029641947873270717705355082226069135191193577313073367502058866285535663182767604035169201235201247339400830199275368367745454338985845113047684847573948138957548003441488208280282088955783630246883826623812797639224515401991685993268982770628762529306909588380926100943159074050121604034335716001441528244203092921714583780131399812966781398892151886532348755110444298046423660082116265253186752315400021324791438210699166949896619087906696590749044827280473021423787118514691380883536666070139764807929137360331987133257340589603013471831174250058196920443814036127697247053955470970978359136880932236985984620967967552241563607809679872537958897588566787856383745338292097205659216404165903063717699900796106186583532067753379419280534956895848271358833270654005084621785859535417593097457396398162104942758996441407585298407675986827151567835150367016758618833889506798302821572338888072957136428476026206179012007558024760893334392106312500025965609447602075683117779057003692847758108898338008985747147427149433798914112726506781218784762758293358129219588492354022959957843284394287260104770773546988198482672407962255290626765636024817550249675604751489100393066432845503046685010792987314126215857454241252459356588464921724468935162366185294777909582897571343296445427884675813011096422688978743058054214074323893982832154505425964365842207656828655723753223253496164638698932037224796288653478378867007158651052317115848874834107598082571739723944400459975470756442241324114715879386896429076611001362386959159481155195242520168257706021346832695255903458217625093556844479476649645687744777862509536342704690963193515698601013741050222908632193196990957729861000679324244882109414589744543996319665734856098781650828821024568633649337678011445677510375059442969359102647332452565866345181667703743306240321967693418997542514647298319185815339405503278351888136459841595380238999305021080258846941876207108560124431442818774860381472170677406250635679036333602744132190571793406171492995008840149774411898740683430540028729752802546191055435136762346375470341394641321893668864233232386257625421338320059211616063558921914821032116230964781609207456368670519480491262852638898044539451061109815085394715904810448396915236242575597281660570958418150940451850295777315205940902712590823618913225833592195214769484613691987428496293686061226279324837396883454934920427591184771188489598287320096283624681746209654836553064510971750829446710396776418755609788697799072432396363552089321033684094431521960632663078720870021311680380591357324091425729019814699799955516936654481072507317300720730961109668930822238393079974618924159432415723325447371173474232453415534821328280722619717243492592307520407106896940575782030643214580462108006422606138030792547740942970368257579292504608493460780671400152918281879818045504452728564930010739523974261339954595982797810197418327765519033507631264510181322378173181775804114992997721095593263806116733449017184043547420511680604047841311283637268126011050274928442542311536818827963587926353762144212318379879418940489152334790203987228469064686283885938847761149500539643161891602578936784462258830533339998874020343200532621638836089344271533632136418328858759131857276636166051315787266753984933300159663076068372909213646564994793964193939856956212874044181894940164355145066686614780932542788449435123853018575729966432186536214470373176592415618538029353641633376024338942563202126643206513062016836351986210284929171240227967262069703038007169674716791215520747503317201165574688639564140648355089956490365717901918652030761428671266886586974101882206024598854424724992254746263862930952389795547589946217605968570037203203039048716098152783366300733688826235391909011409041772831330989886358678873884245942893635056834784807283805787816964598467804196208155221971902471179225011833559827497646647707630312485723096198736735876034653620455497479306112089242455155309663389220985192794172890678338936315740786853285305489082534503837167776469817243127638159926773493624844862110363512899799687468204143992265185917002310476640844465711782568116239431556758986601154888456328680239366638214670869760311070607696598948735419713900245489016666324000316985165641130194561777976424563148684319811702939360897972891044613008378937301093868687733765535134114389795922834792595407272566683656428155434415504310578148678394242400496999100851869714232726005310757583809000698505790714656298289517477642403332857047783317177577154969592469877942816104986460794034835203151505783732247503501339599889151595177008641848228956543123785578211543479588199284531247810996352443293816825003759090399069635774101804493350916356122525708775424690757480405299805993279304366708675929039739062860503293195043880978225840408720227821610896762933044914496720361565923577255929871905449506559274081174404132543479802715366971403002261125782116131811553493328816875643231824867852470028574083980590765750569013895059444378995516770027794821016901710938263261702287412285339964303888050068800987111491710724302316010847267925206259332689168456763015472129417595905581623804936753139794899609713029888916070633498120643215339852679762110527283316655785852161538591653142680418695282268113135913178401499633892663616389654397785159823838449286524414493542822865458790385028140202276705445962554644430347678118601433666840963985362272119061354448860461037647915206519994772630810545900706871745653205392080615861965761684483506728181182817788310447186633750242125684887208102911278009175430457248234863767159496505341020875198392784380565489307820989046838867439391568030183039977017178979830876810781734574775275529905964763809567782117301080175716923805418894480789972923695858540731472783195564051729429103594796698869763101876248786173439210842493665929728240316264685929117845219521139644334874407762031721065795665828317976658253819528902915281183312298608895161820687997679321271340745996649187039911552767694735740887082111546482672778087017295994495579980584918558946531978399591477879847999197692569130057792219549867525849955751074761075024935773729748683290607755586116212666700970245712003690672699434752962017938370891409087550976903017503913957870198929833236234166261912301632315681985492359314292760693853801013957992370184475109558823735170225573261836152332255042897731435866017129985329669372335932356965070997217130565693000213961066119849221503256626888199403573307856782464881412549734222575315889020640195111002706427222516809320251100786981637833051835643249354488010203735895207982115375230875028168204237482197999950377258567221027265728357541034989148981818067229989635033814616720388040615755281028024526340121984383335651530650508716599359959817102950207561131393064398160097989180360446795551482200117110881691961236183976910982588633291559684076149854426182031840650942810535009794743555065645543418670828271989336213458885731721928665556721976537360674463181479657265827117529605083290996336116110622061960195377776802623213571455922892562463127278500728683499875062259276200436957677653924599720219318140701687647466729903241638147270217499823685160432446002814669623545714293154864517454992328981636853650482769369875777976289016273519804201375427881134890967763525139450999770100499949090567739494070885526986449645157328062577827494094081548090560396637452057677202342044286148277471363630726249487425548223499739929507236028024205411867184009217520539330516065223340120157778490266607180834966667670307621028527329131535873893349244490801235318851635303027957441159821216342467760813885943777379407551324203777939621439442543525825204064306847414332033543217323442121389893121812535639290283025599106392211880563766934285502505692042009530707133240173056099356164979830853131544511665371239824497392140639527491061929859467846830968013078685913832593452390847613377107875908983612405741651008634345690243061766211770680262810036228703038975692255015420946201709047971802133134534031899203719912814920537617924918539115931061111488860429741357970423676865480426581701929211147595868110027047369654752573970458018226392870598907684108935636307947021890357711743822144180224211920366049659328241028028977075341795846465782287757861689492044495544280957154530185272377812505459173233865546235429737731949777899907866364617560079492098010768251315282841669752216207300576583805408501268108040038585943486092231400414350961203543141533104776153505876161689558060993659924296364562154695019263416157925156671738841466814908596529097367181490902674149771821932993749789928781988911180615857123871661479390226487782435833026930000925544775572736858732278452397638744764517520072760321808033457250803761873833406470898706365984963835517126178490961765283942080331123016444993584155716503708906033097820736148421480424653658243956039991703246717771671482273803711825511838961399655341999418568459316621390583616267136530409470246828955892314330834798518371223308031219655545056692627374751231110104458606030899120947413317058974058016895411757824035194697883455655858473558384886803194026839056960870429177287360591611208654767470803932779457743277329616895821014694345608944343752998616026929010379480699406926375830044876876961138252149991392303121259286769834051308024501215937189126710362098158890847850527752881636295727556391787972290472820127557360817302063191980668450767850195976689865773940752067422284072348512142309405529254241685376875222682801515011755875091420638282570894138357303941474319163119800996754384064896313836666085695916711879956361434722836929801210078822527615267416963387059165242025991448214238370265411534688891951349351279231753599961206261099377331574795678134155109380260330649338327021585540991091087428151306209220247885978988524084519164073498502284843725225447678109992034121315386962249822339900047910280239533170383722934043235028912274040056639559131026100773346157989272749127615221712209881508097883941458397610337675104745693469931037094835413028397595021186087607595328851967615851011941617962054087189799554434965381764593962043171290903282646293731527756193634162246076776276831735256365065448833608977054220035602890654483191683219793196275763202562027849312600258520281553217378426456348855727530180654413282286434187206117130701696832517973858095646808310698223135308947504588338348806019860370633971275239458236992536798123190410182340194996751343139352065992903483407881643535770120060013594554836557118094771567173027186698310828164163079854640493085820352728682797827863921586691784175943413551668057290756174773833318367690301343693388463972326813197852473391720078315153978071534422668669101015203298815132075201754841956614666192829509930927243666162706436599178917878410165183144024620534149103666424157390300835150980227365033041552735459399758833171951599341559875085107993216788005246517194544196586056715108192078354984393325533861304493186868255102159503570999464414276498330158625090711127151163710571839492491663675180430821107774493923330485337507545659716046288960626505263166099838880661326062161229089402887192993218751288609480878020077446824342289096356809375543178775490871762180406996355897409517863470746622688138941974049330925516164991312051599313772188007069304381787241242790797697255655091990808646549136893393874306819240603657381666939699922187851483998502238962763431945268779080968251520991493096846365488019561411131024775704217114922234816470586726274554817414709993614505739242077276416497039195621281302872851616892472514280277791730524556758788473336516834192074186774098334876867962871416419255426585114844499058237008147314852997446340597870235481778463522645250125651692856133296957293020104343072708248841386756476338092062422952708964815758627556589058797884872315276121723668573347740762259708625685514036644201597278395404168851365052943555444285994356298174563028108768126067094923639457177326328540077918753820638314313308097565367349197483556750288775232571699374470914891313897324424208090448427691861422753279039609127585099214889573946252298543022364479072126025772949065779190472343567872904638560675312078901740244460230334945026027792214906109425044125330567408843347478256199340862046248972675732799544933082175111624766109816056922434368371638352428432885504156156126487878102966154683017811936069435943017603731291961336475401979332340081558347337883539684687518386203485185301341025840967147504776254717561774337930852782589868225014292418555628093612429696802348394430371604146050110263196095689981543079757237921955107351845856613171531818449626037661372549021183375637995380025862386784317832064915194040524721816112194419438436319812874456083853897907856068058686451765666392811332270713638317004332843696721463832294667166536794992016499204884289498447912125604074869443990105322824245911668840491118708239766359612327822375803621599125985343741759281893094884416120700422613043236882458648818518256168792115291984336827994928248532909819327876368726148635489667331275720215984885973226453614206209710867458177935128823788779705688727328237968708526287401829776432645875023242978034300991966154188534452183490702515535813403183434238884105398780232130171983621371401008348933379853518825616072804062636519372613265592180502584989807912212993287644765237477925432218933100231933961410144454037566150742318517623392352109411083668549038677509758078762514061522515959927020806134159773048377539888784252423050931957300071546782266725173180656829321335021987786983419134678094696600332757280293589128704632622386883796950813645639847057623853356273624659683538395689011519814903150785708865408368592564761863062905454593503831228644552052555917643632194057705002367219536129902463972111122462953468406728420891906036761353596118318789412834213374450580182919264816397623943675036797231829142104007098811518200487587261544501259872529434943581834121171739658749920074840227646683512529049614358566628869649922449869094377788674517481744974588670072259825777996765846156957548555226619398668856427130746453118266944650315285069687695503302589796198674063435194649578454035128214596113813776732418600392580565545674146872805687770313261185336885853814735442254537688634681920006431386325187334513099354388113085278521291698390213794626660414787139731984005532709979666981644762163560052580906408170496322005610941934842020114800674786837474635221473617521374864984122745574040900179751127680833056173007261454970546486091649727566433623219851895652806569780588648183136528070988694638527156588026334299581135940168159663256578241879517840855926487679879583637423807743034165347263249730446333033209667657337720548762863586534417538935413641186209025770922547198465374070069359927358683531043257527348335480988628286928624283887369141138296932210806504719132695900556782035310881652181356488692767216703737608895374562981303378036925437971625099031081221651135729236054517056428946766958828005444192285049231544409121964908092332062649004868700626706943537024020349063583471154580000695123961129914219390564539221493940861226262828992486179984954203074452168564092159597298540345187784091848151548230118085936693369177526994194287711568253368576398331864222139636281137673177028930879228570277473957595835575507337297204354307690244062709666180230570516997626754869657354961701465939655915855683899378757335620052995614722679670216065414615756215848069235207108411988076961775936544845995723082645443219359019632700836575297045340855135335595240927791700281580177378764568848135137796493041866956937228629285000891914299030966199539181245816284280336808778511857570615150655467744583489077322050829606616929270457870131175747976429931638782298600851826337340993984014868162001505361312039447449104458417916052999845529739078340849516208951477952509866160894760473499463971908383965160811932997415394091826171352463589322327939690481078118960722204955081943815607605141760252510254668206292571743220681699230641260880654386484948132916876727895720641509428525772144275788352660810963936160931124844169538100871753463871006350541755545197507178604375919522669913442378820855095614130240787905418600149658896114184732585803484678720668962603447617417766102522885632877283246793882844087506843403429678716249777714076889055137929533739335332358940371958869851239708221241065471993328552398048080793582751973988285515216089751681772216705849270131900121146235658725937636551201987932478239416061657650969911928210896974057555722919332515580826065107894630092374151539407983851766146431720909383224892179302041003895083673629339650868933564906520571724317506447379382166601064561655939691851063943956144352780835199309709155231386924568877704367086432068950351832650309028910253450850719490346281757888751178040156203765151345822764194702054445884024705142716380226649477621687543468660103768375007717802884361431035557560802815295811612885543017918734991374575427980436277949154287026257899493394786893057262859531993692245479660822791494601002548310261831319911579231393075031335974431291478189797229476655919824420764009647268139406465530332523878704383481463138503347805274917167077748363427777972101807853012817378473005339271440875959697013202134838430618501262980380598073677046462535416766449610997886263767412654078935944945169699135771283757162129336863139806431476634218968504714893505915796908690706546634172793135553027872319961501561640663149721966817789778473744079338182056598114658702231824524561830673975863649565893157240977008837932021215736666476658857080549165805470536789044003517975456769068767441130136513089091207110577285660209578891987549803264890113854487795230320775296658572020462671638614412916150393396637883659021091537155665712005471954569269921812277028973787116605455565348084270690853941945617106970563063235734666752978352549987544841136731244354186715404712852954788695145100627202095020425008739881560892083580565053933645990807921783193671141198858928434474197850154650640067919280218148756027517542339403559835470752530384811808365751505560171110810638410436823780730045262991250638677362094997055688901599260283313531400626730846607688109475978322590679776670334496050333013825275210526955619251275760902739793789431662331226631050293795242694328647119492041946674104243361368732321993704395940501746431429856734028171918670110703671346867283768257524624163233003812812774646209175613580558172471230236812642134061514280731346074458090560407235800632262209940547714847071684278634640021949644571259161291006592313300923483510352985286556948007687515146261387658090115162568516341117375139558417630874392635729378248052207185477015180792166321178612550871789941725612826447840307233829272958318490689492503196288687114820232327926520501220891417000448271313340196060099631613242509300172365960857595892701700055015531518822924934090668732983900114759943698718865022892900851772878257425284197990492938469730239042058626036023320309709883739335586282622559580313116309544499661532607882657584831991153492494818637379002437912883214001125183524920960509851169964601998562420072889199034400668306406249784276156387097262651595760227457619710938489006611405218045504528474633150966650163007313753951827139215468878704279957168532193139896708420124639937085847801062201912893867560071727330195618125759456882343486207558801039758564985350060231353924359116231793209151298762770411350038540905808451075488958681181540122277177157213331569048759299062744554507713883826971329742704195935398618975722342420584256574680827926650226022050564412117546120533680579665265842610561979241110285516521488179659633256567900797263164854173015013522218158773569209545657644851861068875756361342196336986576725942873919926218290155441410052983229781546215273706336843819551349767168937938848218131487910739932632164069656165194658547962015137351426624342206134091915817889036174606372292314820712388270395111210407829861759791401022490688026795456296009346105935353417934032452990243316917863773399942211617897535926519815988794668391453696801383607664599203512931348562048757218143071826564366634041834790857698986465528523862671482713047976348526941114120174867085305231714723185288111089212308950146780994816863289677449254247667593282427449619448472285439750398993595849101669924201210263580762556515972722543515137588495730680626282706626333390595097260862992562865232793226239745775471533545934504143910716514399164109586767210620609553195646682590306285370443668343710386046303152660888863994732291660766725374512957846139569232986193529790213868850339302094728043492445109848721589589009568688479105345037178721257639423916038323518308001379475701530048421091445750993482498734016476769833108733704896783855828580898122426065454008888243873629283864303652436916702809061168530181760003737298371392533072364851624768888394764591255024799714590058819546886322705249397435900693854603910631883073532262562045190279349005946647937823552306032559193110839549429253515240726182427723947572892919554586056493260412737891008947015559306566433655728300499193770284899714967119235358257068785116532259167776428569036145955772464999975662292629266135999474314150799319011086419900224244822028592455451201650834603923739540989800388905593733397289733501778749373365708659240707032200180160131738375428112727545574389905703605474575832742088256372761193324270311005948478045007080887307450812506116991312204250273226692851321522388205158532434532387523104024490996556069711462928883765578006899725583846884784134812048266252565271151026528842868445504351688281888557527926306811661709856719057033208016612055559319951454850215056215396810956934359309969850365381414583427294566953137104513411033791356688584530555556220815827054528871012361745646717207612152949674325786275282633795352627882079726507120141299527095894772985225972774535898797443349678316774908537552976555242256350349057127294250567079112242934259880143279054527498748644057878370968048933618239887426769387671954592945968455341982877025641895015395292834432499803619183453844720546555346010201030481742070301076344274081207405257371385976825452899528098652647344186359262327686907809585469964719665275039359228938598902017365196750164181191479607732592810556280240452082497266091681880539901360842186041942451388646501596852696116339559323819937743667728883000335408303421295447790741921744924697194537279733199953435522850352007208641704212480842919129644086608294321045534284545967632643741790093767731037547709490293187886737645574299901360247222584624859697538375907308519564691701510521912131322448455779796641456490827585076854765793297749321734605883986461171181264962089623544001207955447039293610525370469434812133387277216366864269952818639481820941999487692133736568573765178034022687716293574037861945737998372856647015514113186372688882228331515542547543051024013133656901602746984803219276594270581156802205746411528250570347825598491002628310199101259801813582449869719121876065125563035259051269217077020447308537976912911846496313794835736230466516078082006389751030307583217568720398063716100727915847678204491590938518576228656796407843852134389053074565314114024257440825202614662002407493317701105746455246086452778917254116300756713686143442709498003503164529565078144393069134980895084988179608877227564197885048431792644614278225332952727218245799241745849841933163870560873909279533727690721086835391715300277750700194341616682306585526931017598964340589830529215464057794593397868723810177676236665573484282819309569928972897356833692956202790959587891691239088206564302908351984484204361948357581458260497077903376559536777104631902369769951503794144051202420103393313757190434175306625562459534920335123771788956320275296174377804391361889155955795857935233873550041965222189754477573786641150661354428046045778771076336906211868279056459702922158995032465192534006206144055844937017294067724558298026243622323473791665893974458695390070230843874833670436200819165532262515391237142710341793305197754498809156438255788737992268358813157216098614558628266524366422671326721434117583136341596436675885782159446143857419473172816352438057784466780799874960265076854923721382161356566895780324307391844514661499608830243700252923268300226622135875405525197097353707222313680095855147842696468090083930033405815000022783858688127499496373943432044144327028656195540262624207355213279065371590254867420164824909463200161680351857371980666833500112601041754281859409481597705932911087527909203449994795813127124862256986865649613321946982469356180881541975140241912008815562163485172552760850213104920301673096030238183746933665429545576686592812038476308945839343149530447962733470910481083843794387328185407149542782188153649334198051097807931464031320321492698361599569169455473376009994490022803220428561640236767595678408169871401139575215496040559541314280353058250639570597817528236621785183307351700943948807994380274991917945218425937065632604606102362827680216193798215656448183419241006433842500935267231987305300154007849193703735718861860495664688201855378006679491364247889422459850464768034063871865536658229030969482458171534339503782552315221934288182130589648420784010794392605036597009426672828014783532674351636129116782339729646666010208649452252507708573821301972776007963961484614733872798591789675596274107277062027101827798208495343741568876503764083795354979835428875981694453295402988333923218946028550248089836308974316248026707003939842073760310555624039414870024233283323871212762151388680998866686734398862420912730719167464153667826973802397098648265219229130527555231084543498284716422604890948259191562508965371935706593208410186688222461995490255606514691192918850764554992145159247781199517931292179057803035816989433580630670095603470452486554978194787420037832049484949306779908579178923728846609569822465536205257285824556776176552768936149370544443159711401782806683793036914086277357762219016341816953281667636230771738147534346617092917868012409533941352374666409410793372215907445083974635786672866522468638314705781396179002709471783650678927680751335353233644017430629289675499323785568424877800446972096598121017915566612022228673256868243513403425218871781702625017107269481001901015047223387343529038147604124173186278158208721419140503618737135897033846472146921637780502689703898053506261145408768624223273252052991098472858443280403280635252612230014614481814182609796654638741781650520528275526580863358260465437616491544442668432130982268316294845526824294588922484034790226992763656366145015830629393457849960633470295260919517879575646001915813675721505979898426362967226096528061262496668951160267159539770224271544577237419145956734412336671712009414184409182126017462711298124143887056495150539640963013019984958008493487593754846374897180010508762662720078437049176415173779574867642235452577824653021021597112455565709888747595908571200147750718400209487736424234964391608712653605443944418000030633526079401994217890241463850111456589218161401585377230847071397964925745776923812795649990018633899434393448742456578431737396108948623513114734651861134283831130491521454281580173059224587125256655290618012119878261362843469282516799553234405472602902032792112394035661626579078221110364261042471189939253061014906606782906166588851835615168755751572105116029393224713048427453432371056367126774290456402303999120637283829488828725921202662846289209941499722881679282299142233131821393042175669509978313068163097322666529345822925740225952276458301961386558166440506317715294823756851124911961682509228558357383822785589051626549955770681914152694434030651816692334608555184935578555767151079431037504185789705405048010602281626523349305566313046335222940550655554702403861749098920177959823084804963979885988407902812106666874278103466482005930203383813430643653088429306295773879619610398334839957488257097249560797725289872723655550167134721985219558148239908399326308526818347409022720319870694129612549452076617626730199602194743800858408422834000931131340612093890738161801042322459890569061576843996575576487379047025035064111064626586476790859860546793181039248481255168752998430154730478737026195276435761635940128096310388258407157605797554787500975020948936695022228833893444236187826544887622026363063227314737504938254467003048310963494605288876121225732190196639702339442452901942278661476567979513286063429530531099116210245800690737770005717294768650374973269273786927017906546675891298574299620217855168662222481123861519688831583814587442318204586602611447873336432808552585830694465616502508129141889606320876372302888690433794006365423723848727762845901229109990739779578977328261094433568608818442033511863857724123318688506062444986992808201692527035496426877249627860546149534350498836752590549597223112660738037648040656649141384557192101036133080440604730822811777488528972606474455804977455350247116934053106489172497443257930302123900005494459445107969647457034427154030915262107675979182177835386089950216142110202190712002509598937082432653993061586824056549561801425999183003568623276324926874791304885196256308272124514047685303160076010000043188137769742116968740396554805201061025435819787328100972838204891414236702103489031169836225277831669868815837838835087405327755074633009747376223103764468289008566520618549429503261847715184328648320213134327713883601161490688851049007778614974070094727417407674635261433585862807072309389822342776637279715948318276668087975273255502693210633554060018924640981667865555601991472483417913453219938415714938341636114912185548198488441080414313378508342457569382787376781196513436260555975539620983761042148560366419766376216775166909634827774343200378498983458429162504934780705570841526230457344740018111987856288911602122275816969953118165147776913514944556204758539711210588730379611471994389096429614160740233834798100577860740934675491265550601687377876748592995875293145007375357603444376534041559966279673128864209163618927538263364932753071549955292399766126368535338461859200021884449354674696384585187895300503840100953680670124661939694846146509953268982366097413793673320099914860636819469575311033296916867181675256519266036032073671657820329055643288874211308657874762390100582176665218500386608767224784019503588176611523970555238975464089085271152424112277967144720390834017660150129184199718878513780702047670852507461514685097896202467321785053336857366976187077447478367779965495513972884289754369094434222772065759284083452049326247752566685033980450784558041728999194215237273078779092769738928133865389456265320962488145934840269042636738372977189989554463357122925590747636100637349784775203577756489278625665700901107557626954061360947331486808030288733129154105190703919197291382417206378283523795081836201626018470787438547432056364662877424639404433411552859537245727233925851668011380978755133362973818902021501167894936002894734528976327888319643474128697490219822083541221850945003581278199966531880338258278172565482072663992165018013827160514249781949382062017606549465182778631349314637371752485722550077354275122034558017895014212945834498433248605815168019900641428708275861265683036763651465127139978704072731736676844244209486762795611556755713267564418809035348131573438230773061731717549504916658238923388922480248872892458043875402880084900320053435114141935501393957278940039804906735239940902059664332180838133771904505766555933682092494254827628642286743627777457056822202940525940923355305155119478808959291101052962280478502177695371640674104901447317981672270451566752264788936435877756763023995486223845156821714250817086296034147104981791018866941382228471393798522007915986111051023420459870453341516646782207478162740231001461135543144870852884669179839762828406058033301057286214298973926306137514099704240774921675913301225337246366577366045060018296768749025468500342675541478781073897662081844612640831394663766785853851301227460702658383976059221178962827670189515316104829933987940684044111304654813695030100087772886253231486076068397694503959665835354424156446562417344746290006288131014502088074546816914901366750356231087308762986442488996629707332074241653090018729629269169563440804297720958786277985640868398416221600158969745490102718403772094299121984548468624220676291143679619017939592758119989018283669127281366133852259162872932201205677149779951150882771971393187949315526209779326662548877086203959763206626330816330031565410072513921639556039096696242792790559399157393543662567294786469414289412813683267096327785261759978950207262571895335092909521938001936325942902074772462548828474661527327887260323521487516675464910230638289878658591828045177485226022927316553505613478515772755380515363597552036138831901731692806386359350158471425133579666235059920092003856043203522982471900290116474185723660950038554999472421902246310179949564814150113093567147656288503882806214767093199754298357831533513007269633736152270811542036070174813904516265075487332248592494144784542970264806809486179189507314729235494159695807562891099855982774084042257596802651350864739863727028202844386515375491342804534966287501862279374485267971684533572209280189679930425667816603890781350354470738972683251699698365073719323731838839341128410679624400202280553172059085863944205784905255910178365265984329979481322906928319574013629900749417524381969973019251981261057951236303822454030265668944414848348860855337660766180072830870191551351648630353405096752496112234583600316423960069689208857690551319265776082485715181959166489014894721002647933857040591498572152070201654019026116533210207249623329885856894920639558343572476684132067054465813863203565158037797074192231984241854195210413714206437081631964665207297285297800574421908189819260352154721023886280404282709774469188379883244863872682672478962439838821792016912179059887501677426256063261685417987633285075372079868928641102294477731838334289631428371375028483235264740322348773185066234149047525360291102011579805025285109849592480100125030275092595388653375225606953677826346118475162904683171308446551791293983504164977422652714198654570952751299074204521708588856199649865406289238671752556654709990646821877858511014431246944653025875905021610796252249333984867615791560583255222195146872141819745796572117354471124375659850862353246801778454535348650288852130952417293892706900620017679158001743264515789384039573158734294824774563464051170185504437491577850823935543002314914084040413139793945847643526114853091644783497584896372738566139757400155748160323726404341815293342320335202664359140407923999724913508807357162247972316528725815301469650904625263112069772259823344659164152531983950571270857645541577478526250423437275956988771186735166700827609158057229381057206133665829506351162141236635156188351268134745897013574827619819037966398340473912329052382523917845699235152205884402895800966595014697677261822536712624938237831032671534708504146161294405808570230026161989687329672443476062755363837238163714796145786830913874097961494624766589195674879750679938339130933576609193058131849985079820868539462583737541260516549379030904072288945706487606885096864835871435664661624317298318751178897057044552887690827305716771441512489217390980698121380952752960552051880025109596377369436260952950933871060564516323771266252475552566893070253685268233615698910654774146545203268323740802097513604440403540815104158816890550660515821586756983363615613399052249204727693431419534576271651777472236374253713348092937682352443049432036187836751908416922838811857082457838492425217546889401474244173507449952853862853360650840840756947207466340879147755324997364273752084557733036016813041653544092686357892837338390117697232024089190636942333965664744493312585111067325973924968320816554381072883302056712559363013149702595201002001175707331214548987033302813879191166591254697059552283027717979489547029033656547818347580760306257771092760495389584790044468303851367414911147553034757413028808013229219258815447118166327018164720605470093977269209505040512081259435590360848632500878569115720035405250368587855437013477293104136311600833622066035834847946252038365006800155713980539557280471781265254218740557565010579383664470888235942410814323054030801350823808950210077669884505034770134498314304871349111136836640045568538768516670977311660110679672313559688770543919889741562254807922438424944428015797066770733828480653420020935111100946592761911172626615403180986981560877203630306005548464341686340512781252353563837755116697812784204223936188769407194853731816237172387307546740132836758909672067792886798131439831536022221600962134541048281462919535214092482883924499232136953817624422015245556533762884653797751112729276209675108097940162337407687498217730351597892958892489654655188212041811810266606166716998504210729576287479289089342903624859965128016738247920561380056504607963019894221468903258334110534108512340126169351350857818046328869228818081189226183674657727575651703906219919714997409319484223913260192742143598101999630790365048139810033734174968719263773899577798077147624925149445774328696957847590913056882851146736959437400746772836369185753175434707994937063535916641908086908715885044035423828853611414997214475640666084999881747914463840211185218300929005310135207555488201357502803733748634908880813712737680856235603510364777017959868828523496355942403827233879192933910504851793173822642607057280516320216624572148107798570974601719884947164115756928206925626621846764449673843139717613035826323731003839159175050680392427875736234035837522578822559604409873449584158034614581507446215189061262292539526739907507497182721006002739424054358262122718611502621635774781979783576954276452258378194274936209342140805605783351748889713709966228279658287817385542631657580895172078299554517431024179221652547322258293082679989657608018424838501126658124307316733189319223159971380233816300924432515449754149853379804738034521435254459334418968721245337312161778640016350685400339922704924845380981317981579246605287431860708938737155612953249022306912248559750452972417289450119872490918291065527219710525012787355265508267071885509382504039515674695466026245943113616091881487007865487122969289972989545422321549110360983960689503065134780166723865232683753594101138011128501624073909070414394462728264042164302697572702592754068714253894906692417004685250025454470455773369933625301759765843588556148770469356671474712936879873197101683245257950166983559414722955990872575187361952300535284894239464520094060563880933965866726880280697517855776200350873489220793885903837012120454692924290527417586156243970703481294791384691204179988810029700284195267941616801258028263084168180729955699266376763698313797057252259550722543920889223919741228870925365713755438693200665930154875442095821854459214895343325653988779212494848038162295855404815663653150319464198565663907590582903011730515979076017071321307071409783792196869791211562468311632182788781321096325122192367751466577582000800226514204027679137076704449724876992896705850051814447523063083337617711477570712635845521825230681684133946939037098992140430614421692996533873638355358213454338679624758346925677047701000288131228307680850935877752763096889316639919904662011061296524971032296720327066309391642737139198498699389112857528562379961787080979930410895895843132201415239451315729119919876820036890256320578031300106073813536134733400128254751318084026499965738899394524581268805861107301804017284260133128383882516410058883227410130516880204321325112763518614615740066836772202129065305910761389592339293653748910497948711601573906253991505020847377720941406139908097535976014597978489830804799401159042063534510410355480720193673987711516264926468365298909559186282633065546273657917971692225329222153617579061980350148082105958622529710996745196808871674175274747931538473453768165960285976186738656017202934165534337240405817660950730539568619682602417047327875296889913339199598646358086610938329831128139959517755602352818026621571895499445116780597322973152565353023842006397175568751783954599711975928632474721149225069474600508738659009260648968278310607066435514278549386265177533126484501052818243016496900514564375387892918444036232396985511630332632842670353073120996865153546496274180099721191451539903782366252683379415359432293933711189786238529053017516212601997028262173345037056283858788312326878541431307784820993438555550814703689426881477690691193903578706167602212849244814286479982510253516498427655086018208153008351142027605134586015008217146956344710281631275762442931383761262772173465854122220160381808478087193753953638846113771732110885148062256057805401477699188378190096219410513209311565485620728494656043094453979579887485594438081342526273585391171678651211292660248897299766574608377405210133522184031817827498134887310332677768362676760037633026690944728007308008786019215835430627380179316798060607722252973482392478978710706945544864955348569024082649220178181299046679535054143116848294770938302480577625138672789775916467437812744252711906926715608272035746445115523164838598453648150315551355259497170214131882444269430678746274677349817084934987998771432434052596230990439133556725893628933056018503011500250817412414605303590569944387058611572997034537373883771093844288882875780357514939547188300563442405670313794590569978673109366487804105263601941878664416361457111882104350483483140976592110538154643664039834451304402036023112072698346542451460718359364513736724792466323369196710555289051417635686274921197149059606820532471643159679697691095916687767459453096356168394895377068408557927629264392743528927396919889012206316272096780021487134745319033979168622079001580228953101389564686918834020450935137259038823128399286953598635718370907835324100387427340752493703695549858576134446050796169107160777180222553569586765823733912795982430323733220464912590560157113886302105073751942196521488446055435641258558439682290065210836989891046400950483225541286662462418229092552122283999209962931790217356389617704696131687473537186182779830684087966846906011093389469198562778190951262365110708863211388612249870803499175564636709252574433390772000366960147528401441981573968474722983309223356961799567083638380106295845270365016403552834921333506495064955176381330908963929570266626974938601359536007063795460565446859282196609730717176557427920892031425041195850488367551724333105054701505322693686683197848512687242096180199462946869102858042713457545584363767421471091594023291669587420173024442146867536519458045953045333572780162639093050406807324317185475850990774790981458172681206518744736272450960063640519100007563774370991148907042422956876781740375103708292278589994201687477280039933256287345198020973627496253749547012661924727020697036642420281645976934616147560785864093717837684550842526614106827692404091751430693159786901215657844992450356840034161907914550276705632792081057651265091959077527547893181734616530719490872045265645019606860589804351951994068823145578897110186399173423362594383565641486926127786102505214422523642179481293901727375999266234810662971321808719903516803799415645140107464073038919754796797237155362848018036431291923489046627896491214021783745809490544910059195028213839728579775890235623125233990266342966434990933660164342431810349974395828669667606835559328942909639301189693876049836644247149352152594316675234242139736561536263954080728606177852859721925825656217575740307963003796689322555155931818447420054855224167999233672935264641728060360404538132162694454400968470190430595124989218346885020977839268587339246760060590178461294392187502753695240738455168896506210678928542705429967255518409248368646800807461383875694017665304635720776778674709627982395530644558674781415583092584895314996953859660420799497267787698474701717985451141458340898529873066396199809062414598302227169802016737341975122169795907740735967296879574939152678185086552376424362990634685848670541680541261827888751532606856382993745428024513845875145646209030364441194390239656466681344943718296577138788706146701450375985011114029551454180520971639132348756524078595084035435579074615597448213380175326958058454968403283979706802902287435018340317145465382131677567991458390108652278606754886963093682327396925783758225602940568411908121067237746908247759214490756719408496841604052701926373489526370927744476264797028599856032990790758025868476802364533384024030010381120339344582337667195848804114764344466436429382041469198418720675190373738499994748042704040105266122982304559554608105010535607353373482258019835235338587635589796960838710644141188629018402293151831377688340033764979206104189261958736481567621843447177459419966983155977391261179931049199265365018518054461654145176054514148194238738955370080999693253783549875926314596209564439613949508987912755937767051484393686562463460795562927738163658723152266933916715041164148584986213338768640080005226193483115778109177037592117201101016893607187414275178198464858919730449755713067254972357445024107802326992123457501454905917783762509202135648489443717457976379152595586971354044062914785935566373193143198253473344120676253544180159568884008510720118382499889882702002799575101024665042759544952242144232474490307659794041552356061033977541308459369221500650069615188983747588598388772389674289721281899951312917872798739045896005688078646732209042631668899110178061538390605955178140453544805601486139571986973232957179673601701038353426701720646861029065134616799065595083590409290680943285166358900868948700311054741814955351868808701323488694876851178141613778771669386563061023277176572176626169384666328593526915832649834268304069733686308925878281181288997605966119875741685730489365284148258712550227897061281591002912532693466220925971115640456625320657306497110644576285975429435043020270125220643721116669849839851642619335123176832543830648594329981843872374139250108250984322514900550331106218035182562650005517879338182280088164749263733036263276004165666665688232531123296078822587430313103426664650812134858548714815419323027432831962853315877282924759122429092967399078136584838858247867414744483320570166169592582923356527415821818487255580116704397037642406950878465173848225707771516432679496724998939194639646752218258410636446433554621020451839055354062042135910373337620130008338390393519823099047505588156907969756828715444891381659340077939658922662013350119411917947392327356790762739849654038906912773986351897089712571772927043897573282787141331550909282439778794032774973196736073233047549990255267096348024874740286620718957349765481578892534060861362958436905890798452829384782083437966983835001393976604603688489546246409847314506324688082409056023653724186585788132960409859929752048361090016743319423438118788258996540594578105925772560767488948672399244113196890297948106066626495542168003263822970133675925177234036821358401927253004947537527752494889128628599538680644197044990390594461833361468317537444217754701455067075348726230335296717321440128126954193856372771350251108377923206817682783833682291712585427667482455021978312906844548553263508766061438690728140215668023077573163194108077598153010739244404837462071534253832382922009401521237452581241464724052992533877905254259034782853789501567247107629112674533603627313306777117526212308446960284377954994958920947043937027815753548804821509925849802193104671667774028907068070216663103724403150119884581037686578447022333333505710337610720425011556044207161280064320698645306290418921204447886312843076593207554306634114333878576544209687957201275144319315160033475242143646357581454244143906245096483038095024304371510056180103232665445332020888528249603390507566594731920776806830449144158411537290290514563795244396612675196358819266766045103365271493157797377800464093504680396402914784885214865514881943152265947866826988696715464014704859059389064850944752344333820695116269871426667004544238289764827109968032974432879626858442101026051263834299033448391636576219406813530750242055162764876306063787557242859074225513499749103420043322791916884473142441445412864796876927466253008478294796771954936965514339109488999777820350346254269320173789722155686676181229877178363268783828316942124033578527332399500518792816243585175973411081036271044896001440297073203965907620409110053361922934751976381148254643460588908350805456542923829601278992674175054502855326465532917621969868471052346829859523598522865334388124274937202421469708280416535250165518281519103027362917845190104934002035836362009817441707613876051251765492934660367866742112618514014212224758902866795879167649020837010602946833791631477829116760909000214172873403914109023984499245205921898779402104731758504027623932467106375506064543205247218689901282542946179373022139456095565204314238417332703673782609553639926580488814800895886123418593580312027456075764552726177947020417695391070967387475408992396536673687929839422319933525972689247331089182748786268497097072415419111356345638440200831080202245985398992689947548326863355440638899804265507254094534398984158234758081068786448392970259764309730131970991570424686831450043498234613660862903785310813476158481581275706085424100264582213227050276834533479239068046004032240986239703503170033415619737441129278822487600897469805249536909323712244203366373663563507199872218642265552335112955886226166086673482047802200696359584399104045336028643890893478112440528675143026644618473697984099275614332041181615728091635697641369651511548558083780196384112157935473448863227269163780479580445131052571072696141510166777925779818583415664534199860917180756905017326683065859798845136217142416918559415674060803398422124326391355763190144215890756791162963545552965681502599588973520448050133475009021334804036221405238926533887367351880330419204048018125479220851804803707483091397154537952876851148097134716760790597260125561897926340310523732939251050600289712153521317552969880008376258557579141524816977117340283852644588495749041159334621266406180655702739962870124863848174171271985952931574516686606852986147593819231812032080824357427539965015867771898747678039117199059187362169382073379121585895002508177801444565591144456815415063010764992046381443867655031564311730059218778254148342841408801461435637786220655009276946665764145813440216211962724672950023526438828453666887385770446265272229625488784255628925000009819563249498872617636544107350768448618059558265347789360026409471055794780013438257178280800703847546049257173159859648398669957702144283760823092554151069413837766079116519676320865398307474970421746489684071124009282976136819363649888697028506067542900218859407401500453254630193656192940984275975811772296734625962345686884008185121050912037078967059983481066120719128246380884270090071219462336243984547626645549829064449132666134828009797523100896620113672714756087993323601284375926796302771841063471914376890155038584429904518953773774336488247100695742811274154585798521529950495748313281672257044442034815911444349374703982735021457687392655415114459951699359691530530134121818996757200471628509282276724348632116730460373440140525572404026865263991131270618996461626883720140414209569755680799599482553850386615893469611102734076666012129195129107520304135174943150693841768992041528052337902734845024280760686230697815135770361810367559031520910125943671222377887323201698868704866312113894676369352064547460789882383932981719426485381903944185152432398598637487408328000099266299821192337524800073941909562441984901818022969618011096389039609172521075875782986794027829180304797021930635477469588779195802466452731162718310263529761970736158321273265437594432476361562237886823199200049379688425637127164460563810442092017785690855460582748865233379790105932693704205478938243957661242059469318196624322609368370077489297647863089693348567695222648301133399747287803369035809352028893150884339556218899525824238389923150411310459512848076689822509109314837015622593773924053295544567119112369048755554590952674549536626713622754192735294450735709961133645258225344141468295105283810571750437690582926304076049769667950602424464854772008296969410128670717174214303005879454503008071451295769579064806315924898621076076063123980366274507768101644951374815107653637627568144902730629874417648649308656516647245305439552619941988890589349833657211109808516303542363472691426842787410958297720342292353873188775978601227836794120623784752115440669794044504089472666369756678866496106393393807138995439436136102165575192982059464000471358632607997528261982666018285529001963449469006998659329646686703261707059014255276374490257280459136985017231276024109394269139440405139384039956073384008174033107269765917399480122655807308504096186612835277747007199218860555172502084911528146389635825938836092210371817470577184264888824505212615619316475116320085001164418985547660347558106770940364558098519118126347100302834500042609658781026837727617800367274929607938021362205908820760656531178867435250577872943936331855474238438484881419492843063739936205220105900850378680299601657222605181064701808048631825888563045595458521394011561052456597021469230495922063879117272673193619515512376983666637637261531709992431823537087655608232824098974478196623639111765537141768726245755142274526070697424521004080442152699139789169292861511093392235066384284678764923151582897494367431404492667529965441971595389016518687213763704538722634863183395202648904215177937084690312774462304328608668542930293552869105524837418377619880578163850835346028738221057255091559978168740654170092434652038824532664724820952931901197841998123347767682494197898860896465691507571814112043507813861845808617111955276740082088729152003071209429767839039815830581249652121140741297796603405680402698912534770340071424437837168944470615695648671072576001629169256569212040554277080206195505292849837856974743018503526149553714463075543305741132941749536710904466012834695029848305701554296629996983219084147736912527175894455963971749320290238435784473657321316419201033686961436524658466750821577988967971940828552234211987157841980459437149406157856464970175122183611497348820034586581971891268141155328930376770695314943385861714592081869296768909103987959603986676000367883676120680337116857012608453499550341889396585632544913194055909640849244695368802771291726353472602984114762169938259119358991282373203940104830181836095383387770381027328389018432138204681497161364840279109859983907205682057884745865049631412247514214716161723716515334692652666149424598449968345315167040536093799205575705840062126906036232930560227282192370178172902004363844734624791481358295568690145758605292560899113848112555673875515393066951983445015336049963771164374288394478791226996584740241893420177838062777556491682048285112952320260404132043749272161724028660755154759709743226454469402710446548632648808826192133756091752212867985575019834782877814283223280191108436439965461098928679428185106691396205758674288504962371474434464805350269159162327459250873779346451330221825141259707878429352305756315945778953047392736858779009826537477216802636632275064193458851265157457633426139102775689165958972070421249125622806849495427877288362640020275771750783730372815983021979403931661484141714838657013403030362981830225034274440174642932298687437342364775674529212533680247646483204166861998680475728063350883879339827621279904193614904065719069133580113346454426463708129785001506050487826335019884043963784147834421251359934960515531678288612592140620228410580233838225558764884944146999008914044350916175960500612448886612943679761409571242068353273974239496960003222636018954622057946459100988712984969941729795381730304614214355573507796388163371978254150771652757368830285456522633339900223243673171534369286540202353725069088011413153583086125515694624212001981350990361456131140493447641313917533550405661761914365888063003235243345841127582470700944498487781046352758386791636588146106057996169968994839400994357473966547892061142285362269981179969285518369102125639647923319728825731288146786666322464106528000753403230710542167881069466942161818305912984443828863829062510138702273799202215247140334166030230541937850696373465343661375336323735643541411546349596797170569004226457602366709213530627709152168232583616562294123699257770828086349706241068874505378040108605380404534221293333063894878158277942567578801678511344790679729225294941881340734419659205681795002265432024098013811375506886039736736562230503838360213954034319153099471320262246695395644980771227385425955277376858072670177340945816493671306973423319308926172417499827629714543396995394622836242313570114159641731485154469478370166460243325024147868767816604367953180469528688683330473970912668042631774813101450028468249402919043912482181677973992979573372340195637560956457611126964471033683380953641242217186788942213016672935872483192778477351214369378085957361452270627338119725255339731322824419310939980366384625955795479670897343813465519954352686151589151389319828154107688837834971685798864143686200430820750833879601955157920941209331920532376679821968206061200983508005689961229245294647802708548709304637319433901272699181570192151092565427384979630399857900899832059083102852750874097393769996879700287877804959013577501776156936018219260089851143725829845640900966979044296402736308902145229857452348142686793801057664594511265523190975696494421099288252207388400577628999474066572826920394366250632779968897632897661172902472077725326442873797965665129728899648440136559514374643446237157800473868361988934567947803759805622173930284352558123099915168254969380828045485052889436130839652748559957815929361961457743008947563744500895361643159577886315046781061496242424365849782780136640976302832920036207770960516412829116810254927845018269280381626316000630676867390701225329806085215710919671033881805267264999985456999591835455158659723542926175015427043049385484054398264660664807724738997775536080314439256102831096305822940940677302206537963438086091473235589169042987345580097676678480131807613624414043412800247338183768978275354126475176376680306466741478778119149260014998318123070489029087840671926841484972755686149333332484331571514361188901808700133872468628839791517928100009018929360611738174067927496640982268974371056330931742017944211210097273927287991028566170077944110165416228807018984599804310299162781683826861682656494979111718648198272039095946230265638721158895919318194582751623159702017592719302441212935928849717878196340346427711358311493432604584131638367270936665435834865806346729879757418789595115961218025751920659386351927035539424033186460067392552154744766186467386026006157156982032481727126546110126393004444415913143758876575333179291839156505408158085992693719512129869027180076049750254425915292207215233924735000667387309448605961197095100646492085637204243819142940674110207480451565230669322957059289114501911978682948030204928311780733912898341169021918725367624873465811121071072981306748432985141049553216436296459241136358136284629409328317702171337391325593591526918553536282040429554630951464741783525358160547475680243418237945359562857405195200898625075764303723256452862610187959242288928491543355100367500768854293550901793804304920021670200265166485311813903107818143358792571122867051584776981292064137504036772296353233613995971612080265991058012146975308672705885719523250956317286799288409576358821586016249506156170869224841825174277184024312019625501342453815684287937664393691063416435843584308796926777689893572271191417952439879433360143455282060586157607561525345607857583256355882402262466132279884089579471494898965025601170417320165120134024004316742733972813797067795672983612092016273950474141801392196880624291759407279841894372378203876163173514446612285098713436001474656145063498724256937834014626249916365613927322733477689027539030563119647901765033395920557908586883918072279326821380931448690140578014857979575272809191536786757262476383765436200564443045182012587743758577661963345836707868309547734984376927883705692941443461777404011290155398339841557597294091747727104096514826801185371070827118719270661523833184773014679322213314002966072710044773364959038387384970280072216650501454410334860026226860997979742571079558149567356544745488293081259024169594499609008428715963221102467349066631262795395606163428419533509372896745382662630400374674740859839817287786784831841832328264382199735122104915777853933471786199287807362689940874635842647559874813678034882899903454733063827810511994768557580141230922926381289386096872541642481354042472816502143187826516849975642462015544468325596613903592456673620771704708725161964614649290872934888867326356116947457891441348973514595386021530907365268155343858267654949029606943302285261394861283722955207250874902733660766582103224450905332179469192068966837223903626159490248674204400137653220916652265316729631244301714049312314459923430351903998138278129857837722919603997610945633676681519283322869320261021375711117317729855572514691395874028760492043007349477892908312794044205409473738332982323441504663749518889699177711404190702701755675747759491282788065797402468906984162056166278460033192336344457114519722079759315245061168520441351454849616541401202436087150869584484904572136719027864304662219559539182109645271697622259343359302317354182892798907921581239818604222278183019933080313375707352364845456426907459782781391711450397770203878951821552000213790879583485553515151849339413634915553178881154763839652319541351852953459935932664165350485498580040694522044186137879631128059269135641051043017964471306596798552255211913382309565988344256976696231456422225988079124134156586195233227426613638085488798975986104811109060039771355660846254570625318679898075707781342796685581030319547207139975860080780005389507749515818725588448487939277134635230307437310087949649622100742955315543858621030109292271707645965212964775313741956356494673447231105495992575895157025381735294829917725160856028735985802136520826858314569673231607148391621321203623172311704760943242899953268495061859510598311662952572796150798871422320757493601688746268770328490097806815150111970320436508528471468557536032944010221443206973574035795654036910300778623330929093572488735736152899943271004773481934539897314646025462752628298569845804392227550126522812308806599572509348496726528893871978580099094123052297220687786929655148275038594800281100581714681084130966411623572073572637271531180205200583978511925986840409086122917785515619233950042352069084936613428816142715589203386138838115785166086547557865258899134668069952241220657096998376606291481444935403769394061883690682042506272321597350661236436623809378889963022151621596959617828156561262237118816683277931267779826962671691547515271864823973600715054476682496182249935262006174215808224416975052891629073274570640748684398956252902927686194848324836036364110744210787149050681614823994513031744990398371369562341652898232751037098666384336548523709649407293654446529292906688376684793256320959799107445305851526418002047425889916215568942729169054104485248380645389791315392483498592238662362314344306157338726424985258520827574286998507962977085596296876187398708951630413848031844443753726006328131382500751790803067293453157369518939031152397453403908049412306826429880109719074869342091863466894711165354924282611144410526228000106376772228859854493549616012622916263068737985134556405973797078580935909040690535450752037220543905440071339161261248709682226094314806160381369026183893191252001879997730617143408917506861933098208374847894121419918471269383878609612562517424311113023017425834298041189343423315000418190598790868323036705003306268083613374156845163717086860873381171531284178575851636871759139549173521960427533862109002132840874857612076005887436806658624000299920172117640339232005235287219365660422982449215691479184628315291736923296917593460144635441269484523880909097890755011800749947470587006421534261936489666996016316155853137456831444836243452153549742582697850347250481148191221322020357405942137223871281164741679447796226235689787181843455642756143401574080580980531632941865079214488671616547738037009407259501294289721474763142489582526920218583006988794953638147297964599288697553528988504194823290933591478771384549993751684644132296752975243786726902365901048252616006292209656836821491974153587112978895567637362416490140547876166462437332630113674997111292234146922303993429266143157313785623078031089082520617600302980331542765631638416510062638696605950251600860594844268591014196638519640310589161802412134396736637420586285950819921332333838693571604702395990132302759774325192325834576403669349400183991068206222543188616318993523146918288585487343187483551827234935981974755866056986538677027379482950945074631008829433767425242707858821577870071930562301542480971239459660134954557476770896183549094640025552375719161098796892494960302980160949121456306936469542959948915281782954761385853104564339332513910243411107485358735735938782702333648236984000249067714435727211349665003796558690334707171294469966925267066825277981523989249390433010798332410417590932435710248092288717977772436416222663355255069342564521336852130955883260513839473376223479374343262238782833186479227955860878138100753197330973142606120904827278120231759228808695834171064819160284261724546696427126336746414311695655989082223598086692571349395311817344677974335994950624578675845695796919179780887677420172514975897897510756755213387402587419664540432822738508181895599846733044191461013567603139398868439257776475833872572280650785341198968222741678535228817585957422001697860934187503954429623731663462454596640657674585530537757081482042097159250653953944911920125619642115840631462628515339219206307139875513533546319949570199541051149150136425006232809978786951513436095420360431858220494011482744327539316939879657011690934619429748738227677943378498908920343916875233000049462284664638892770898923254274569159410654286702184812478740511360109089225784742453187038430190873422910776106006944861987555121524935194698422114224569869872006744191261470432450981760945617788167851211762498454485744207547432400812073854713658229583707748517413548808916128837994231994157695800558854241610859113850085497822252299376258131958308628138557520701268300171561932405787959120851011414341977282491090532706584089709008265464421662869703432535576114247890346930575741773595409546427449474249125504097702612857184876544660429392817108367661440460472047407616472286270621440505415336056399864982935578719176524138336557350986063828617478404419138969168887102440688188850715091214767244638618434896609775372326843378002659871469880505232682011009009061055974901460431044508182567014998783106458048173311509711933517361532582540633864026967765854769027975836305423579749114868050108389465284433390555083507993540841464013491911996967974772542232091252123384725681258527859073508987242189187878796431709405990282396786149052560997204983696697812327789684548438497947098802712216056538981068457032869044511504236029331671892960343609212698930218515270138674658982007631388247364342991099004745296272289483314848946358160978675076173274924476816093563232136622198062421533939628801626093466640879052649936918749181599585630350357474372883569745272858392949501561954621700611635031948873571719516781661191249135918782137696632721175626886650013555369300672628598518029999717534547431029960385816781753348526464692783532681751934902796505874169295261234977597832802602497789488388586008432685208292413387584760023564843359796482319646509932045450540853083625904107864474472848697930006779201457502314794581841605535777665269903623236387076569049560057445064906681031977497886456596633319699558802887397414711061084541973565763836700553082103749519255745364229606776581087007649615559958030667648452775836318294775501316450862186485981707709931197377278869765806412263585162678805489145129741077098667941107761545565189459622448084877099452502291078234191409848641967471879142442475496355415791905921983477246105635527041748201226677140152493430156774066426523179514776325948135150490913532448315535370698361279206011178758505637579675577992199889941910458408257635113668962040385099082287820287297889627320177510088947767407068505157479791982273908199181963332892217870185491810647993127974623742671954716029715353722773303485063028993552056329827303131510800304844676691523884062785022524244590164302827666092995394601883013251409916172160942662654335625483099155714959147017471544844664682080746596376566898493035880668395651633170244811902001898433983769817765926786222132063364503238588095535124672626597613631534293238853680709980527641869253986162334903481741411076053905593570864043143092129555479259775629949334096845109833729237025655159812157009092652796685774958705246050297225385936120853311019122769372534946138423949989493376997967432665725077112526631310729240134064931939317963574884772281835157498340454765634411840115920102496515783121590770388688285682229155539335250565947554881443961075500845770867924494592801332822084120793914206508558871670359993122124768755387052984464923348659043363714429300607249886201175167533600873995831781051825657056732111085428855968067085693637957803901909523937545741449073486806082141075939808241565704210938729553235964549130636917404884970922401416588451105986088282670209286023742056268575630896889587416843742869061132142155428279500214570019840931020207568140859139965009168082951340102465910843066945879145889832738851207855832112597153844517519854838275766159589196760033431459311117435304442585545019897726958892967401985868033350036460612596082256242204853227012624306333172068946092978454993199467192521021762331624918237022160850991509404092894046774386080079531172824397608738567452532916206498110144770352631248450645277773852449651727691790860903407539377952832066416393742480510211432708679959884103330155489146109204643305062748975707379289838645599105409093886904207924305995753213914832524153318723504635388349865096082872522215661572714085171742330076868903888953559077933715091455702375255637075180107812869961219824259593576475398176092327954836029867717416034200136890495191990093120056859662523297928059696966124628579521547965516369251332177460621273731145682649738541584625814566811254071036199137556466459991736015092193832373999661240399886109228029175344509377423242822162301443785671410416424780484382067448719251376563955697666739515907692248898526350538966758449575800393122059861026951284847881013082449608917604325832726962263060946582637514643717367852850647886677852562335039045851769665151073944785551982249568416002193613672207450898780494130735674078283715681193596409458710275846691967070158572159511268651568819521556632798828115197612566909475362450712733759122029296469968071858129926288749060757658369432053121405678862046840653630531606196773135492964224704254526246214386166049754521692932454748678694057846260044235660990871818700257737883679407206583422002548629971192859571333955599671907953930531595915412743553357345479821768047940240225978362445985920198319928621002370909695364546486956473741449546157141282917250379856949992788285552827504663838244888297862930452429277013735584164552566337023415651434254596200808409590884147877887473468717042254447391375779442257952999053664489277682823083873724508237254949756137877608592291275388665037489515084113119188401401247515814516739903143684802339282589296729581522188941300872956053820026750024434498588540526367844756429597978689379221613693958432127340240542228850178072082075569835014483133058054264734226640771649906411339657337899595251239486525797038089137196224847713361210099393084787636091424541415692923462384982535953725022243431107400381573145421176947626756965187530837859391951502364749161333910479218535119894087679277351018646374212485234139177250735329887129950232795275675373635606001377336418738154776731838363613404986013467938115203823207571107022658454404843513440078935478444410020236109063802244673778253233065232410406771850252317039197601222039052693054650911109539718364564478960374819329176992688556812782921576458833759708534028716128005073681227709470034438435067922482489360120520389061042578920790559176356565120334516955089385169277125649468764609474444477109420977704285072881083429293240225027855973114785426125356900311936643685615222822605742562422631217890607014747487862928437176567569204499243049195369310563886670486344010276094491693746517985423442319534813034634853258639875912741376721019243850881035884199103851948378897652253815968490265841856767734941038330356509953000118296845535687910415547822998768570737154391553349074100540797464868253887609282346988475245289085408173035145939106058312221467526083021404984765672120226356839047945836060179143003557195750253058922700886108895827461036943304019883299919550596157453008762846204342047314074617357006316837108444734391930458599378426679652231507040708351927502697371405130993135819001887683144832904169431141424513005931511048219750749591360843025046840753182729780916113536234860146152045912529587685074597916405080745475801415317734495208607899052516870552239825107654168638309935762405692889969737069083303033953364646150164999308599600318505425331905242429711937369909603341632962200626333154866610188747416137137546779854092516159333812223617803679018651802180720144919461967872804769613016818676137513414143442029696221445075385157440454204893355143330270450263456238057001187495699806632153959544760040796066070487910009592299517224620778032434943851532815783457121702147007786535683908075336141047430540286448904604106701238382031051356939717025761685843966715248446760122810661412223185937772029317116072180088744119386271993637842447398403261979422219690777726420603219259457418654261442245123162124802577338947594809728279454120469652916142489686304381414953467647750969001732825929890680643082871117231332141123076107389085432746353802494199695307083189162965236891128890452563559360150320950346949648623590082376636933199270408030839335497506664480167431014527683117908298633305545906846796353958986726849963505026848215987232218504471685431980671051270832167555335524188911854948944412470078151183117361999758457354848772055655899680254304789422910329136620436656737578471186538494350999998437869538020707006200360109025213505265326300312723149837862495428951049179333485162884053861192193641515483187007212561705897595463479648007497820581902424438869284894136348084680278955029598016680894749584114717425310968608181344183714733039111238157948707761759838403943046288101128663923144427591273443595575715969467585010704654308588998576638519183493036488959933053510175911570957107221406293375814586520808386799740993957010499836767567235655499419467837415585683671241776554895579121331977305712485851410906950526839327700219772184410077762852699724514757465860403045166037636846599964223691462555582338156186252441430923206480230940503546076907836767861336926393085426880258859783765994455953257543500929940440838057442690273063377787604974117635304293568955788607085207905159070414062468666321205984130870666848043909923689012444119807230410329973880259530274432106969694491130423583122462928377985662610586717220649505639974924500171546538740864525709766963673334504694263672292555892025601249946868372763721929661147946461586385361597440970919000422763677984681534043469948925271739573043003839533486385139690644560545265420464837808348814802446595198650487014494753600763750647182392916559591882561979557317824731094517591329596433323383145934902208188965294847324968285434570519662588668995642623573020600424035911308363634982652252121836999271064380559984741596796658658239430290787262901855891036716884401664746822530214559688383803925797179388548708530175260372574635385809704353553731936194466400628489261529313250176348687334778343482437382510658051013920553917130613274279914278290504745760226073596606199989393644365067203246349453819912679605534089409540921069930171773661512468548928808266856888568073669213748126500702515419057554931318536255178961034670015069728911224558333069301811308838218314537242885137444509626862087961410228651219113140797314917218852778970486833514341786357532678231651797459867911524937671100666053704962730109722061907217801620926347811163815081224989738962199381015988318809649375031717740330654059715526760823821552404674051822027074179962954847789942177968076880447801425790813445173123693805213395411281825932345283772765610041262737048069356986579380928678895125213737112156012602915105906804833287984788770625507292916121620165425526318957298123272221240585721835075647760252556964188438798050524434043461993270982611496267550173640401746759312161696844470598777229760693488564233190977013961719226901150772469296380608387975066549508412134794002616731747318823542664191773171724705656209485126053337177571654282003411816958998923616041042395564575724218245984308216912359243030033455748106074583422427454084757145311266736576666454144852538993819486062409904410179758920896626831529166962478615648230958676051115668029601494827413800457418840181654254954321790209897143196177166217760735766596998716700987243819968517133168658165522928150366424507600644298314569487177943919570450335018573624941580053978666635374129867704645818477264228041059377189131442692415322053760203271094935931897343192228366454756995049053492988520009876994809879909610508050704921048828593930936654217196689041069109152042764190633799589211795401844671135158195563323841825977579714474246769568900492619216351380029225523423110942646322569600122997451324421600717455894283817770672954094984145737224240449940989783156663192205374524972567133327811999660489742077495289910499365499294454524381724236807070824111604645274497970792846848218023362250309879902870873214983375587657471941134002607632873796466258683951735694864018752680507415171769695833139656008227125036987392437448472691240142535614250048830291302161708509108640394577084601829629346673916206843239350172610298802033431618178072998001916871807688564294395120548868769409597239579202136307195790267808542352177034402071396612843096066226995347856089667194660091997696660047982936692549449710501089464695757184539392786411329505613532313141204802538429070298362228815435601973396858225748259210324610623260070824786302978234292231187323821268700409716456865712444738321771591971125342477116882240983036979391216121911908948602885155340978752715033619717285351436643538586762269985330327017927963715101788119422405116948333692737960285218247961334402750912406489191048426043497148031957689292235566947175383675945851885154357162052893286487035623776469141334980437556878028930982496084190598507638467902002631745483474082377538964930769258472250158304968934881252190696224795209325372187087738433458362924723409059141836236913156911024835244983488668898074714209954162114466827572385936965439428171337348724910217907983386556691002530023163559495469058773235540501148591198767972316689090149940567538007199148141593156445535088205159782016733607897532918457608677388694984405966585652656588180584790277899410749717071038656404367559236242457188877474277603510890863152774220264715093258836788861343922914428361974889459448138864446764331572019080104082510428229614130085538550274506876930861350875350005495522181558537592324841943774793085901325799386971467893774540252005249301932579145546780020690728726420586527537445599851314142473217094867083438230724132833139143680144158001919108768786062991802028053865552274692267197914091897380014965471841163904592808164704118240215781022872387198192321254054001292335005932378879281274203467629184161339131950017352716331303111136425884675493411169023955537990105562643177477088368008903737256310066997883795629603059564638744710957249091456140638310787272597871548860694539725298574658341303748406707684910946130817660226459030854593198015448614572971776336343654964887114146986751746540903950323237139004217919784244564313860889800735884409284963149685881079171221408929555009500515911971293909993820006824618450757027363582996115645103988173135011969105754385794761226925792140943493833159359438515029697155472861379075729509062686475176203597244748861706464259592092587680358739383133417108884531240634921837084541422386712083599761942088137914722511010767218069856199109899701825146873955248958299034685283188510533822380701873386486565318043645487575493366636160544120322927795869730330214224106575078756856133824819309437669989800115860749251059646018247573150786562844449350866804311747670189579702153511338637275397666642403785211183734881208322308244043315534741693561047230522589207081898976038137115422148547208782150297052279127031346896856259554831760105987262306637343905245559229316342933433898004982087860652673597611309945918021336792037278465052418101075765173283846584107360147193024463837276691219062233217949532242582899061225627816211322667255918972419192040875686138896569353718023910477048933372184331587032393952298188801390750429706545276286799125920259166922676516738995623002264460979170565013439772802624759742389973853829812064683659700473719369926810572909577980514861327025216757387763605141259267462332449512401302039833139760683232064013170869202448790641025652804656904676042301704264721716337966512280774074337070735244199724234435514657787449301325802799459122157332127086047530791130107226846990971437957379798743006699278543319272313407294179251374073349264965230723816995783138063208576173862392622173569552336091088115022692585767224953906169813075299183684449584814843346279064935559095386008788165362118068517914488191779302205203082055885546353765490490944685352025303160687112441697919768649513186499468336324720858082225862121984562355284956535056542853792587971948100644785349894132063962425209747463979016931473922606093255809037935989110079655090019445940157660070521267143171084959616433410038923707059041371245090992724268759336408933325287210585604822875583479567167045226199560192585908995328428011556362612813334413726994929609683261534511729971061771745004983275179743849532792215193660357220094126216592585426162247020317458390866567685670281004816437081225142781563664739180954766643564341021587518904191507822348783243461428021576390023777315643892482619122201433294914736267010427727819067176186105693353641845252828118403972069813555037053697738728989956317823084164943402040733622495414016636560312001985271967915127172264889669576605747256046686527920839194665237737478307056052711199190393579771728913755901767680492397207013905060806321054711762503485686998391190419862726095736259615305029146494215268194901656894177369068300638847758999970850234103938116656836817851299524019250054829052469194152907655364811666062226737691024575200755835710573203874668901011877081311664730984882003402092464148834918257203337139339151787887952885571799241170288301420899602763889071951400007610888728591612121183039679093086816182301892390578337851750814061675132876104675204139853982659024467727812313177357618081753118898590534059031567542598049420692998305527066222052258567618309426927898543187206968620492169136810227627940566483039208388674190407028175941633757933272249119475650454328462448283307726126591450197226874161940051070580982581117443028727203220547385273719555987061504298931109978748163478543043028024401791907760384810224019045961633725527599851660613963694741649860032174305993185072959270313400017934681744812199723750727045311492737005648395269236839313647677624324065856992808514581550458923061843878739276152849027908459808110490099491746904657098523110717802510605678846215189203772983805579200219055988761922826559716748090658428801705237236954158708235358411354698148617884120932670428693101247697708477907597169682379573325802479907448948905983979663048102147298409927694879965771198051511544537883914683195581745108898028089141073579288160068571450963699336971540076962405428577528237322585156923883253519205160372781208315458413320145442291957240781222743161596633685013135608995299757635769129093480350853699827497402784947892756022728618547063931024811010669499022660553360181783999431681540381049103691946546440811419827276272634072230974499751962242950434516727575616436856996877499420973506140295168337134871394858767305082603341807896517239750639234219585932677644682982947264614087758991795452620200558226833506294401451991603721392813546039083887070221145362527887829769115540386271861056316751846527999757306028475558854060275817476548809850493421697292388322190272072402702188638225808039032263167305693203756548756297422974721095199411967216521633044785363664626050471269623228843068267734091969161931200166007091989825717582752000515632749650632073123474594728409067014699619598293522559374289379320972035693958071539402853450997176352533816513061913919195067040483246311294973901776050200822491210724760744436848764879798130997055655398848067031005081762678081126405533651304007464839139545050325414675320405066102410256657746198006640233272958216020539174702689633596991669021059963722724024260206275251750217303560029900868846282991654885058119099295357646729240805529664988522575536590328865140215880386886888837250772305016665508769742689594933847597901780298284803100009579116197217993429324386105592594771458811591434984052752490543958132923367222771604319369339211525408683323352931054811389754455839930168993195521452083453162005476008507317973328868261191690333305401181746373538880349152107031436210232183638859211532478220742445344482964811782752626697498336060740596907851470232816867275534886826374774711776676772331479081350252838654609363060372386693322094159966738538770831693085845380366567840710772822289698825266809676315367934256174109366515338178962873419263773699376690879756917017940986392310722643952467595167934504789395899344592356329528375021943550996600900259499981314955763615186480378927788184556977867143865764651553435233026499745960150167342961588010055466318642513048399695065526924870700790870621684302583919054242404438928400294766933944240537950702382135668661221156825106442545288610717030467465411320088384299602070008496851194868740187066166602595221627929084823540891132200939571010870539777350226218958918581965487085895592084415059624912396306123501378997758368241836058684602088563976965638118340459829724418333785427394702137596589213427844906500629096424509445721930561130175486704072543822086765982269414884647459291303451491461650143831957219940917722595526017358958719893324068219960000290242771841219185041136676880951025702741809053977548389194998165707632300852087079944051945231304705285904647089295622869135418510630184853642893625919725129627755614251445261704942175222304559242480590199990236301825769579876885045888104303380753253462245581916950638492067361438343201370396507121936830790654361475233129910854381614775006028180248262012155636165034201056355549536689086763377307066906060434941403184956307368372050884628588172273941356377115420695316073270515573290467717281751602007351014984581818678001868894637984732471841692448445060153993265374695569294804502181361877216874883060798003251966761822740631868665220446909010131691274340208747708776055916124082185576495257326172406148734594384983742727161858856288111393040366203567254118471548193674018041620718523870301111430227795242804183594972618199756026408492115322212625160247488558289908677341965086295905453011208951616075490864268657238728745444229656179368244197663867833290027575767053556864707156798020423843222955381667932898601208487569365039364193669337083098755222063351503635320007687353913008850820752016663148228896260894176349043251940201505413910295059451704251724455045620088221647883012708994174627256034827529776787364789660072144965404156283692373499281101961541523965030467029589618206168856787522362833576941417397220163865445744610324205979205122659455921305194090208865541051279677067183212241473079984740060770759167740063701198168077892852112141039635496929134720978709326273807894576248841543813631174642049898216845441719341752202531879586468928856989283356064406094144017655912165623333634051121615491276887036561180652015124429871596492419612102364674894737384217366903980277818780558475171650914379671503479917998230239565193801245441308091035055776648409517508006975949039372088942710169510198000573873691161477587137613289709359869129030635890018961383490483756410739576561461819507965546619628580812886001108152475433113702959493196163219817783283789855241517087499567049156346723040690307951686148671502461529250817605693088322017849785551016518979266752060103355717644897292880625651579687228595393693905099463004851302086439823160694901189414572859634039790032285604058706310919090947644587823942379379830990031128049001477307932949775322779962504432934264826812156632466610621158667075027643622481131319065580159992544373159355725393851832294752598296554582313914419827860724843731925618865039806671390113122425828342875951177992267682330497893608431937144395681778046508112266550214414198250991139550866337780890113042071864402780395910157596039020702128692257494123922852927638507895498400475864283049013542164679821118962145948977362007562405746178474832124018257670990396130783917368157489662338378829456557025606917601237919042943779664683607281376098613800465801793156783028647226574101408400122322791208724499670642572164439642956213256062090047729543671576924435748839046523545398462383618245529950035549284310776208212992913119104861533186421607834090497612693640543371478202414683894318543112672493062774382306773784876276085779776972481503854720088916120393647581444129025632249596954282539072114455812255807768032913275566448135647801971760282905520938014904826483358848940979199435777860871393809823504363387395192672952764992458840778246720561286485086497987218500455440355092352929741577886370240098918368947590717109290928920264244692528651489194254065324896707807641269894985288306042468547688965618985682109314041136788104629480396111147702958651360281484144548772479801585090010109625273403876770589808923356366114021863979385858785023748716348321524237100843984400191161119399505693398272871177883218379482224986200261881949816476556468972648275083027949220319498869272074805254084306670606100319028934669499638514893006718867890395989156656535406868448195862810815424020515372414634099166999818220243162874631027419764960164003149708468256554105738843223652015549211976367529075559435407675991832368634441045600937423904455244239348224971855818051506488128438881736051780987587953278579739191220263003761003592196662801457832366125917021812931245142854557047206352755752326915400260726749588583183010627997889122662114652724932348961971915329532234471654231667933206401110281104620265541268788950047880836366287603800160177735900989587327538017470692284207264447025300883068891724946332882214446944433521932206765739260631922594151943951304535917775299562389925890199736247330758604711305544642957887338911586561538338066483647667753601119804810348925895958130422827038303477464395492665780424952057815595582550937157818457133580970275778506690319540524139572643352087216917514140724070711876519764770547163526602357932180873063305755064165663430802086766154120050490921563758809412593037470005140071398162835030965055589720715725926363485230848139212651876952161109105410248520842663862905308365753077860534652343309600217211660302002073788820506462566366474317843007716960666740715018784670547578978868432939180672507247396889918758400069786266716040251800677034183472618684522033557268485503340134461661602095501905390981487720357394294831711232171717826113419697167329054284659664400104463950600003242208582105049620566777281141674380981748965924210902493744633659149779739326013305981802622625156635634399145769964765559972649348969479094931943081275921362939163850697252448740829421051561952370423411054603013041553057013399180906757338485331739267043277574284424103836618255664634267061967993962983714143962439160729858405640453238739514838132102783006952942211309246669496099712669137519342426546951043558860668499297633322118822456367415875770884955644480862406953475848981913318423116136210407521681221299017970844134769138774948371369804038506126384286425306704475939258548692460365474249248523728115759196509076190995448997474326546736626752299233091183202771768903177321138082738872331938399260986727437365691375203441781067868197215385372826604265344597861692465109954173224456734763147670767632419870942546690439387197696622375478284438242309448214005194153880223620612391842084875650291900046594067418455765422874999465842782096958786387287836014525843628883488096630966420506789776066709166110144682760069410058085978611600010273031753683565935887623186785718935031529396276398059147950086832158417013843278975236323897458527826541564675443892543377277735304577596105470955230414130185530424122342860553593952829740927001160323380305377036399986004900966968235928846801554391916976857743735141459757025622503769757017256027749664999678786970445884278487644900719031245360841974757480684432533681161335389532495930626876317796853212087397675558665233198448802187758301374130830590474399242294510742937702471075929888454891218496615049322367791236654938458517320430064888987507267080556730233646481270730362714788119959921639252379110267752574001841447622308225431343403817006788671485785125519224310425471715751763918749595041262769820328038913941702805437280541883104890288243388883787220491916551522084215429052303582117063601358934672032707419977946896630347329364094071265782628682348309031624930245203956564906149909837826063814793997171994049177795945898732810863751899560457328604756658531810245658156188208502895157504161416361726923374747389584239556963981516985288891449368331886354469454088202049679480037705044754669639786536628337135418850740537590536656235107767257397259545594213974956161673289833665814378052539249970312402260543731253193710692857035325985701134402584224848499127151778598692441902311297508826046347211762360795317634656294935958168672629280396790841546527041914386345966916868728791764267718222077096366682848655904483740500509243832050537065419018264419384726854310218830381560265993775218053461087277531634401415646291997020321120662380026929628386475777973573871316810398693015067650821767300427360926359368016829230641680795729638602760586057638898015916607883732118225646934452080484237516677385623010597679546833681274236529867414234027453638176935508831381033709027583086669380638825904072290908680823719617881777152202686115404503246350917678271968367028297773958003384993019905382223012600989840844051914756288178087754199119776583921144127681918629813717232038471175863824241683387723403396131913512997935429107835932396276442323155593067954552695443493777611760315265109038977996740793651267033021287067997467997193949778083638806548271473388844104582308971711948244932837875368916590712280228571067237103934599214004046030035683594998665806572994477803351154723372199792554331824294968505227112605359248453561008651469410232344755416933918612657654243541161127412399125238452853499373746722892105930757513327440496449054394906818825943161398767069355356348620677009593196131672547609480295404025584428370665951306396517143946247351190790785416601385115981975212287593839163945424412782242095020284792004948412879935942285165001980096665386536209746155409532546896284155102531576496411508917660720986524708813336336668298655168844398869967205715678932310593498996419720237192352128453802238889461354959253999810687631926530330203427705686033111334209391323877723365970094179963141877689610901329419986963521358475446167979997112876621814355739570984567881649248697688269403343607335864295340890173956745202745118634632986544540798429190644978175180063458844925250552377853452569079946613839564760294495669337527833382746419075294373831152102453188802753091832193844572670732949339517898473467389807591775577659817119148919897907351413715516947434476084046829207920643196166753286772561140563492884822173491987067244022917053782270619378665816296037573625449209540841569177136944876074482420114589235595006915454414802117593566583596165440998541165442054700830863999945759713367567352862075472981646471242883097825365695698678209344447043213327752149638294746833099677025705861490515939677727472282291800104564969580059861273082051665838075105940326972867504335004720628974520646509997759446665589570235239273118725275650513029135740425525858782992196225032334963097026383216429062737785339223804559600465961510899163181900877000007710041817597458050611646104095224169100515456043525508343939557579048457258891495503819259392856418789368990545575249285795211575312589784346796807376766982327046388615593419891002144264029031623896190751239875795906004740905898045217261522832605482081595717026236872905129916403782102228921484284181546589492744346680939731921080535463211321043163082381714810567766358753279996693698051442167771748056393148104317415842869239083949557877146697823332806406325400089700144790250329393491326990900642956186227816757116363912979572189843455960606438823326312116804540529035609144860377776385630233980596072506951960740496998294783433446879017406422352126145697960746436105421855536999724051970180709518600220894819151664054956005531436467807965618485973915808311878738720094548300372908588066574452686504657139303936119115818354359016095770247083409708907531447936520693737355612426338285024734969975042703188371385124360610445402446147666995161478153689524607364973112054258031359276161791835666325751131529192038553359672326376855606230801081991848716344233454705239270494864137770125321093485031682190528658988049831201706444007248807523064419122934347363278073947444072587330189311418449587232423150986040572639431074637905114536625216841493636222966773026614557010832430664464851202977730322583504515881955534476478802612869413174155178353869004285557883872591932120062493616873141640482815743816719585073341146447787226074915888735315036281952165223727133755994544702008441242863732460476371757765494459397627918392004835437269393674043760135392375486042946747608940293395245836227183453132336438361887765372641002722400534128339570012295794030043902016911977850742736923493105448916984019401018371900104614178200639603685734069701669187234103701128240752306786814409713595727222015905273568315917940802358050318229105636834921710945175978838271895418130843458642463323301968610938783480944620310654460579145446392440970364755529154505375962247615370091571962622746258146743128947591819242134177264927862710663493194827324431918262108711073431665842334542821531087788348706920756273381606532778842541225079013536094165376028715328950664834532137731318822409390097013850573336464035685465163967276238056884106423800914503921294374700985197478195534491877427986251931384480058880522621471016086221340942951418014577854385837553651888890157618062695554131717588860575365763732156525625586674160575900319383337519095336542203813260288540590444913048526658653930232294870526450933875808145803201402830090115424676216687107137773970275658300517741443545659561275354563793043651999783189544225698228047728421072056121867537433902440452121401836433028726243530253891025389755170992441657192099837449622335683659775909241043121963756453994425884921008374045938749877868163511165921306544750270659008249253744330763855261452980250595644359832542886582743329870892034611952898384704370076838865704138189981126142079865087813674391981001951377280450549437052499458050632460514513675402577405977907884909074569080400542099245344904458175839456096128056889673999115774916806054408069155245986140995810412147656028056080529558781520351547989097573434436720534203295729567344337507341136681974218079384607155105591859909048902562303801617945925070309937230958009523015853734560264358445111403428040582699736144415626169848196236345690558663003402677070036566497430004925530727093921773477317497533611183091935218948059033827417826061791478592068589005804740331460258742292404231021895510301963466933377669658955840006994858861923504828218721887583323481164220773399798728949421601196413613390278781938391225493685811300287655131156410035814831949637143423893304493929821654970265104856543835994311004695298185074803945549842315218090587159717873571021378839796112864172670380246771411095192730636547897747222516662256482603566815927447300434223408527044045708359863820207781993277524193962974716592893456871476899916471738842280422004929782175755277506552639204383717382364431158179714421851869927028405503452704962835227702173561085640751138715557636460017139736326116762171403504037504234887045357550031574610190256312668739427032648758505812725722532371525108361749299545860653882306016252224777679021324270086077995735080258999910103010185376680998625911077766437307903769768959596375908901693158842595660928793599151434391884169540360353051921967145231968421511840902856877895234875870790720959374062312047601420570067689834161633383491446152942308584878624362100081424491473347763432371359196415303188315613441161241782069389177761627223679645092683409374762478664023971097805488029683755119700865976958052443751789073341728241661545876581884619870249157640961097407543704218271160871504688814039186359413611190651932841293262541220681030859345454679066553420937515225843184811089517419943404163262043175698274202407844605003900270931111656583103521006104941778590875434210047546250957708376875714046664582087338485639685577764724768522135184451452156351710358281386596372082859465932937623262391918212634512184095264389317246907361537631367516427866800271191323263572043515233045453655835227388781476533796972002045306683984877818359786292964524773839473132995886254330996945431923525461330111889835558084029597847395059455504111654395325929887920502562821180104167500103932772640359421032521259476229862265468070581988056411252698221486388007421273266352829336520035294098299969509599350235478171110724423453547603352698075253235451602782522945232034223802630463609410937177359579879432162779368616262445780811134389001204656189490231948678066679446296052117488974982246562224602009436675219131518036364199162846601133543482326186094848579717830417782965664100311732531504481762268840378323074097957825367898081474855625855445022246752117609101078246429298736160330816448448652376644458966934377885472944008609736371243452248107198363271784044619113669521980258907640260970652125580647769454623708420198386926476389680328881777076288410054197699205290807963277944128507783230242434579902581598237448015013741157028406296407376403686591817747273080901757738044611404594804931219140989122945481679889929805084102768198900491790586285195878641262567147475228833492726983419406930170523897639778667013212228121148655786030450371565793538198293389107039030578214235844115796184841513455560991427001572554538889651235380396068339876365723381124652216512574997017053647357021415495572672857127660834895444495155117115254698309989747634549814045666955308014840492575923808264534899625616892161551284422192797624785350211294435770880799067551885450362275540187867932664288024471769801501963461502615508462711812995634274288830754585723531864271293988112563517393693656238801624621323058705273789619483037104212183057405961570466973121717776554307211628774649087694921527922946374587867417821302631636915552172577906502199729691434087349374342580713083252871984232512675501858620298485651242927677569564747113945247313112348092058947447977071451081424407278517461685003894314374998546167482796884350637241161928842808237642780347942802354685653956390229422794021728956262269946929232953572883973033673017422253832633466011291492105951827131416770922226230413381923713704091531951617508391141164005015342110038037110739373076300697155088882412138318812112549270574957491796984023226105134561282958665215433765569331261664962145763091303637144794105924469696677229346170642803744825194273915143442944323372222430515207125548956972319098484646777035560827408039034743038563199612452605192651308206311508471909028151173077109755424487431626818807613787525370527007097611511165699127535947053876781681585178711022032029848220229669265381464741340663162882845433614262964163272398021895943143767221958484465089743624330655637740609018080985328545432694935438758941529570361983873275346571108247280119914609803806456018538131629216538643783077155118531559609962337752512487916078853944021351336088542477665740740254705361873069865523667424215878313078970446971974640529190952620361711980102265105150760490881055405614038822302496718798001987522431275899715543469466542219799227394935706664218895830218989187287430586641813018160202767685847507440116079005881406695214388924412133729104215665494569833948323164267868720800436475491682166653399127023574289712104754740550432404888607417325993265431503229797963175705199165493783066189377319967489608816272736993288821259358083617965338807518177107535048487714775563946070001554986345519042659801220356284692769782860159627113809328425207203294876030186241919683547478501828025964888384011727003324439516936654889436979729957676242474634807717786366072377074833509758085034263502411134693800133428377961673871388968502713717458192861148235775715951027120164532442808825294933879190833631272689053401536297353700684261777355697019820176541759537966954907263355470859410766156680577098720858477478900098852570768702600897003549542269295676017543381342269000235628983329998625543463648026812960180966938622497791048728007526804362759687777300341923571060976402277410565248460481725481693362516168607756895916170890539127467961117279412111703101166025954288680519572535717633958256994671113474053176973935166180231502698851293492447794519096321601588870053738486549691029473557925043218287013411330954344671344377324683424458974351931830917393676570325578941773471749753683468038034542704778519889000492797657945710335647661325241960271574358459937898933854312963514774162903233563738855625684544310694540491181002600036515154421549128332871550308728889093954197806863956755603175862010998924876410041977940600053364723106451221756028409039123411450134041986127688913070226268727505245365769334975941053638511026995150042447550170794843538535951214747466052643569001675450805240095911697907123507584096698518017286544688971579014584338158409036810523058860001877016454034707521140506216498210355575900001783633448676587992125691739447998151460510011630324130356843783487460613018387762973934888779477556289595688406042370818934700730229173858307185134706833412031961698604959942757987097307603222454133034427663182650665556016210970873317642108387041204223602166078539984909600767108622305002649042317069169743754389886209840077461965430267170976229326298799519114943432056199304349184414828932206394276452693029127353912164608504679693118004472070841703314733209322288831128556919077944145827368885330868165934474488510863689098768061064372303047340816207677082617177346414583565883662571568363330536450024942853429234768633825708571683145585185481425522496937086141488207992632557862111938491016746248913564373870578858546343317291098887905544170156583375725096730910541427703481017581347009224337673272705306266372864966613283507056072378511352528150593494224316575047983540790264475736643878773986949884561647711520942556081259361800555898811299175963840167716873278190408467033936427611593188925384915915977533349701396799201474897302963028677871116717542262887633951463711099170399702643671656831570494934791359543050407184690762201276894407043845837688975552263615385776090899869611281913693702692763050881701311911609037900567158024188970354551303246704983377947670507735671550604368177526817484468300128385852923236716243184449686250349956505135998347164512297698665890766517738918047745766159139980640505138652207358330434799679181033591086151410741829378591372907339779007601661537854698689892754380966889415046167501094806839920278648246343216798463557728894816021966362019001116210070237682647548663039854979921959399619341922834060690770542676245838125767006659849931102899335379468845449097062022058524959504244658779634618352905376076752751325516613176364204310998666857801081037042302531217719285794192425371796946838126015759238101410247133435646568817479742120912373078301424978491528026072176993589213096231495337054986896020025727550497500058601166488284948840109452441557694616695421697631319863210120041329697716598568838604899105955838199351499837364465538666935370916273922937216868461247934208869820662477594305035802372499520825521614616725262265693773307674911128120752015739799993625988575809469856919831711625424473156757109088792020402641022924464226069975116322447145192751225838519443372167394153038763588442989497338016950169121646901505179634703999889727291169365380331929785005075579749040835943656834400459892870431595457416005708549492014420315934147942967303048039869755215431350106579962298449217072997646063622474421667736506946797384655838423781131368352661405596901878246231944961332664125541874330557394706098046998297568702990744882120311766572786196420048822482899512320306239041326211339304864935331672260776074647727370351508495267627767187786996931113707342425366811291304931630341491321990235007268366698456127198212788507898831681717587156866976999217034388368918869738126112520531509146179211376805384867034274508868492682556127717979131812112295759621553952567586278360319584541619449396147847121615387866034025860251066749230874149888980878777280682846905785062154766064768848957987702380492817604585141622686889648190217448494516692974969300337399085734588939520565314671677175784803855065742252548383674183991249032777061941538746127476727792760188680688895922435188761016713907131211823099044483653444687762552403928823460299820659644222942477893312178365677924773321074816197478308636079085622646008232666128095594522601032884830132325889338191763384932725786611886408852509588646350957013308235652151191421743673733324770951605105638084517799676019661172861645880922442461808511932387481527712485393803365301817042054536669300669005017134491556918302093067667289044607117693383066175130534076348586752946340100333860771669767398795809443605706661734830604600532385839737367131531817700983987259160491327633789255886627688580078909390348852568937678021645981370503954123841588802577099770671121717863795269838669036643256867588091700539288094293607989913623262699213133822849913611059487226269052492391919256190354625190424955614379130878004550393791792295389513735179266491751178797786473382171059727031568430661161743363820001126405739755319659400926798778628202113511667998543360532690317183738162883188381194162340336112172529625678447957532527708613098499129397224683352200435590429816069739148748829317728888814365693692274576096785824568653991409348831259680149180316605928315327694967971791765228020975159813231322906554151106999010161575666495798516387746668151502792520130507688205950434812519761732656616811755697516306007487116277168090171238791592723596034439422070204353313578551385044498794419670906715966185366256983284248617436916763571047550922939294213223713009418208244575369378185238808124782798513752208035554758310439983439553228121245472948043984607495150165670587682857087405221737627191831793573341323290710538927430091646952633809810796621263226949052178767969765702429831802804690746224274852947832840705579589230121692645737744761229195412209113648680725247360278590074534784181681995679221028150551306899561738945951151787560007750750607848145292160042194764300649694618610406549268401482729021891065580908479676641877679252971882544822747380424770941195551113431137340806081876367682663415353828310691184338007767184977626638510329719348129733437803336989594420620820622396439832724068999032021176928150406857024370624599351043156734699114616151631310333389425948417737170898508211982874773565171060485068472959245814760394946224868997159907815532039748329750696988234649487760128451170572523709005040045070794717583667098330809732671130296094852413733821110436254282438357986492057033952820279373958633787387660240149774735102147140368458302555268631059234023676170387672857817626885975509028218006521246411906613810605049786636240687640487589664608028084114804714707282618739089719055139265015721513452828149027179791241245440113199846392796850587393469027144997609059524238207698909493041616646151114397439679311101341176452436908965367991626151182384371039796892311334272999452626466089959069532559110847809644942277262029825371643755453111804443444197870642940314581887133709381338106690933842563778147250077616272318480345904183968830170096551392870714116727779212484505204608012632259060686916056865771660166008047462727433317596454147641471955403208383613808508719655462946880495734870673264422540709507244089995046687722648724086806067127334261955114053193094028290676320212211470062275726603313303562852511905791910318361084427111132290358685594607942552804170390130003197803784619276395790057508802399569128833007303586169356281242301102429497826467989081855702164686985512036772272826929032471786214206469153511775726393854614688790798765568298206633883837396684263209469361330798213862106187893835319139994466505638372318627002959405816215750911142437819564800520714678707755040611389069920255491297855957727091098319646707886068247836561923307348802680755474740060053319889895742972492588351300447211474485940135897575926224166050954629748959969918907770631524589313934224113560168434538443454675893940984754156073566963944454770048519852838262118228154919020249157138577209778523414639660954330737552429935944180310105754986961071061323432118525634847342598393850329127589623557798180523837349197990508961747917047100467498175264441883064595738202831511210982567991210205618945040053415781397835614881497330057345010269912838158661951795597902591176721283260480437616304370193866951304682232758566359180451175848520195924805412794259500243611026210746483483491932690942540126175408024850276708614273520980909915508212615313767559506442413298253266630516691051133553020555990243696258303209875786234360354784095000493483115941816358500065505912849652556897459340925143017427119911126512765894086543914348784315074389227314341436627546989661806953224049229468102195477534589599788125399154306531354878306734519439529799410662269097698711856777857417713516269413864575250891361801532875825612458338706805057307442521700906981289534567548784758903267370696091238523418414597406539615164919333406635167915540472231285417897481085653226124327423683792399269916710866559438648603489590195450285082193058781371274305823617393757985646292223324148797231043032469111341636008644237027863317758997669446794136275934712647472205673659096147337306208179652679579596765034897154485441357920903101557810521262108228615216248545377117033245948051675792775885713496524452760003741923681671002422262258881664420475245160013474600128518137477368828245374348183857191171437377496822708876498730350699359390542039769741683422294245775346359074803357739011606802994092862300018909539219366866148105378896893164431683852298865930245799635201565103236150356794797588083246572620220045272986292770061350352339305298089230231509837332787814426874289971368981308373630850570800378938555731842330616570675634411768784364790969186892763018608064974726196991574862551149374953398798456518380840213620201262229549112540361163519940002339877461224578497807748248026445123516181218056897738261990943858432788393440757003375550483951377940839790201566108939698982743906008817378664884046328997472226987451960329166713352407979866100615825642999120204978651072398437522986713633594487120333724845343210995831404066275032928938479493822261056861732726370770020667126057311260424197933707112489583971121203064960830199117589999568839148514100994780419375803444943424347812307580743723922696640080211893365908868926832558269231297862786579358327885771382674530008714244624300973674638467707793670484726031390189848486480008527993605304492639472976348266512137203767126131627476769005405579653600976423323752032013516367247451704157121003549894114319720634533636089378363895524410751978710281332842010469263866064240608916898204836791259202574385887069994176742438625808830497130308506615439680862060687356221701672248746906990503325749741212672386142706171885328689095091599409416402954201621172606753465116111822061986080429439553709961256774758704566115645696898424041240883944189608967152722490764687838206015742949638438091924154457487714087096008042329855520867620945602503643394056239751909202836780178867930669291538341692096018741493532804532383522118119235285539894543026269738025695099836235955603798629112386168578397957781090953149938786885700513852955188135616708775731621243736868794822433598460987384452859807362473990599022308686924112357507316910270179453677415469227671662020626386731092731419001794214695320068053030354684949709028789002268891877489068552234975432337595069883683307033487758043082959371896157370190138690680191525439322501116495173147168155423791412421296770918867398314146680945832208268777404076349266550222851303736639650627803953245156532789679186796065691496132027194126901452201858759601313720453126342465495259891264857518406181269985723124751290137978934610359188789053264630392358600707107438166914751612787859725088488884041362532578853119657164186393947142011070272538893013715616186299768382792863036986745475729290465875922393688060604603888728937139503553302629762599838303038172689337664041158400632809840271253853980949321929652154946568577321171500458424601216059388772397837413960816880589023364445822152614605338420707583368053539226582165004279537861934368275581854552859003177034694750075823425780781561083736019385029556230554759769864548183684981352419682817719590730865463538433614018312113663416213642321495585684120440702111825408590475285065592712307096490519705001749730263910300828848888703241476183903783225353969024371001100098620622472129668127904698739293751170765819990538720049423063755859889937043429162926958330970225171880958299368668561723331448712259389537876259176393365772479023023426802862530831971390713125247490775817097034237316167018838678040966374224108096069203327591655088929613018407980053894482683961263682383276503183398298460484162793193355482277356058509924013455828461009865695346074423971726226088371337492156988624608803537532258478930057909096625435804993163384390778766625486938455595853224054338780835873811186347107454854087869162135793134910783420579391387589134616163680808575797331369832633225663251562483381026008562518820297165216111614849132998262996854670658386464513466028288486961252805730523100290330036398227235335613460594260713833880671899813032266329814061959943047650572626753570720167826321589337111534147136282848844568771247969693252262176076331401595314807010672363686852058617247540998269378229417227292256419769547580906242594806742701761666508688036235838880040586872809826787511257141947479111050910110780421575877553610996905315541044641482991307812685783873095698620435636529863868954918945757096981197937517039242142903509273863297179419184495539734300284997750191675414191073051772948351209347110051407190247170033888574553945695898160232747563810139749385562555927876219228165125696345618619587639265932976967672697510193291977846903654390013751429298897052382536397304343374520587202927106522061107983874700343858048815974587333067938627218259272364458323522950399788463733784388427888067902492304051992876319360566150864542745790189194119247721243410521045292479634488778723027995847606424430485953000629672500317911387925596679511724606344959580104145632680584660437956387235579356179607661274727198019800264551014420597742431637915453227171202756240634155802635363614888615076965626818405017985353015427191666401466874162859412255852666939128468543326147673991494699420870016266058700373141474388365178329455262939684534806983565071255037654818266257726990591468602868798139894337662933358048274684857276070846589820403335573595021916884015436111737606216080820659653177327345519024208770426573470740793730875207441602607083636765329705444858406956907647268369518734771076518446200570307929891178084747941320312356595938707351741575581604581841953290330068788346320952475998412918804733724802074002805618088414943665662995759633097028048611005314072618819606425490295466134436926625041495881033313007085737965666026187703216000081090150109647998516737046860553436098156121022125086873308264405207256521076359573045285919310524218277786991164944932131710029926595119902390478282907707117155146194693677816970758664869019411443239786408138375632907146579881985018237557469858721739366059222482428195599143598565172992629256974526723302852983492168916129685484901450969305115145044307423272818192416389044525845486758338133349139407485806075500436988149890926189777345427058819070180036322375168700972749265226770473069567467377786517064009133251038486711471808228202380352233501381639840266993972855012788831460875170389769500729015753296696525728819002528017607219761729155082970379995203188321326468003725016147634206730818173082083117004545779102285713907154467885992847482942036677022232987247956720673431753442059363023879127810869288987246912858891695703653871931278756166141290661591615934213947171267193885270481587120176799263610133953219383345312641023932035824514267957606001053881079716434673662202902762478829934963161572471954142364019893201808700590313783596379876958847941577450848732951437349539823684145473434634845179258322067228827159035882913307997347788604578629194044058811211568771743133590782623863532677727262328206526625609952051452167545428794857103658321736671944349440239505532289387542130206757000206858099658340905349620717929943657809306112846973235936765039778598118292257743024967305140658099806306737589705678721171922229135631841740132101579450374599391445663561466715660015520412276272350400788873325900566210564293723390089345784902986529039035833585184449584996406877367429568492763548178991625661545754538795091514716106587431998733887889011483599268442791888569116889027934487044671581572199310073172657462696179658499927423959779946424053519133315354340434815786001982659823172553416261081835433165892554232798855938426832330011821092538585801628350257296140917118588676389836653080469302103965856886882788712645169141722327076012462771507717241551735398618527814130681359714163033941110665452283463527118744974253213268492545906131213072018994914338247441086897467685267061662878396898350017753513580973998648813796561078955646492254383129831741315218722537243867334061341962991616479249064294113282050895931466768147492848961588087746758462814663641816603235063265739733860662928264380951392631733486686251698319292740881600500717651043910369288340663162936544840846010667746161578568306168397812801516390666193367254764784773664057188523892138004657612713189411493786128884556630816739503648948788271685094682389348360699271044169170863934849661789563224077111938100746173275840283597411776758245028422011219848758845118847347344624220908018638047563538142195544565285112222158479548609742047849738425530739462391337969353612235191712392493707852243025448106012060380755350978495660708077553986353797818514778272815976202775409154119727784226652713560900826547166742779344428507750135987420146794387687853618539608652245153506002426787072878314467574652786373419101672690237539547661003002389979231335701030548705534774773349009284555550799625001985015905391013125073287311742443132696610252533675332732975469536933251352697490849305562095324628938392939837710411050141224626094263416482584775356042832083248973029170199315853486628453307914883164323918683095901065833094826430764384762554818890559793858324371197953210154282063647398301365379317798130866267970512639039407771820931951099085627497286452399361787437844164827622636576564383955703155041463363217618326162497962315602422632766958110187753738379020070259998682064240824354177115048153006944111514446984893991518723236841106578656836453276189604436329802677397485188951537264335215976423562770104373199187376230121260698453207902948211615714145851080280267275676348429599737735036279308147993059427897371566827058097584670530032451749262969744178643374694645731454438743208131194087412256052874069295437084626229339793876427056655068853999479557364175599028122771675316843453244431347338727957793267618851277206352949744696756738640302605006053621858628060712885395612407697654707399586091243893962777534468963220026156740505882097783365026234357292585591047857251904793202061770135980873902282197837681728153874973317622478044411441624897221403249610296237874328052544559800675832661559834841711741123483126518698851299820554393035666142025121851550008583484929198016715557738925445899502985555890241471008157761069943296938096933957954884151793465893294866779285138584644066587866858476442534155019114742007670685764376098719115745194897874927275790927746505902005278207607919005707427626303737179295141573680792974078571567222887542013312284333471119538621286660477559016451284930127331211419621205798908309140833792473746951948896010019208312146645125489910665409857043367379070048160171505448184273071886691250196934858585915266294161668702528394977356423418041346725051952356158572665303714271958887208933578996474409414714115500286201145400641261249671244247022386424039724850400995172093695940293705510768877565294354786460240753650373101848081834241522415076613127154528534062440442383667467213433766700887536659782581309289133921219000547322309594623444405795271247290115147463825614729604085637600806296760623926132192433176688447086381857288251555577551042190078032764271122953523525425587643146950948044149351567863173124376602966144932687318271300900604379145948959332526465218334365165766131916337618752616190222988329020093273509604664223545719941910177202910806402213948587448506662907849770862909445363927118892854199430237434538091238871957542271242352290949615704965863355494019111598133735798063688794939930300673764619420531300217640519689557684700519596174488633784092306995890133428502139947133275455019556833768246701789857660677328427324259038543555561696532044862079999386728513828379227821120658172080242426620690781280952380297115269253855987367846565497054804881105195447205068332178163458105840088818687044041267541981214299047364983809726947259909321148609186475476290879240316517543331167170993342742102450339857495769134739083568489764853539113585410999286356806046755795734403529095064566094654291055787204690623947221292129770999514179815818867918049433130085351923735469613330881386755615430864063518152808236761654212112694332783588715801715650762456664322610781812937972693321551671693800798575966063618563271662096574322997589137924138112583753329476638965868161321152151106476767641444827346398285891637467536033939624235290112198870816054642486563997763649051106929788411061139030066971309159216862796523818416123516357251104391098711173875894059162647815256734106387286423440351615604666620724364979755533679385222733063777823926079821632289709815708760407979085973058252069236000792615220457357396499742828152341998828684134948792001189228577493066882357296764282167233577561761497070556059139517177053599078250136868644813007380504626956560065030101760929479253246749314713664123327799943533763333492167794114333672645621920236804957085214485044106471452229445660086973261671130091499353979799770805256432163575639029067839219415757183752802459546611972317487244834504654897031274245698490663440724092652332412232081750475259061798598095031284857483290768299890827769771591187565665577296962223328489104105632744535447986685118140351948914947026996828734299387751157214836635812109186922134001585431311017336856551127984060261575694505873454370806098453545656068698601735886804966963090759021028095705640792734798020638922793464958462423736610543427546375719998620868721270873229734591918952432170668516928833517819497339634275957566189130815344385804801011561751671340378819228415925929050020923508660000549359769385049678091036555825270669329070661566656139724902095547626182030164246856111902440189170802000512953178050396487609506013591195457407820828084336293682925390444343003280640790007214625493508422032592068986802102018840107318824542964928278175582514428444154268891596821963914020447319497402692868722003918912047288207460802191509161596035583385207881704288160156870072496211779955702356084285195617814429246370829214315936205294928196560896048346274044333504747067903672111081309598849255087673916443556399139265970908467183533830861861860940218660277849121607960772727929820965813855745863473087128544051082751890005134430841668868868650403821418212207303915282184604410240870776858125702437426292867986050002737590206156017443903519850407217935751951706191629299992479883668627116836679111530817909455148583946587595451704478289744376150046245985735303251223781828798041609666408505531745319429219620546806631586571709728069617654477653528963841572250377621886650308954866581985024104219037867509982490226971638257394430250379142490299300683671807979227990409469939859441715449885278532305281907553350863239027073083251056521150353622294208313728783338803471960969020065229925416992181168701697747805564639463408538623704320241221611799120836068224978010950613081936259386849556092161872735489676531249554979229370990854918293394836844348196191691061913782056166764138995112585614918005856119070534569331080964051227079437380564799140840456528651300372880691006775043937886889287530926636807167272367374308148200966871572595888746261170899191564518074823629823147219774213694992044294251502748576587430506276795506381892267859121632427839655609410173498600359973815361033842756819814037758449357893034372261300794014309118073068992635258608865306335339626571601632022014011309861055077184338455303090094736760663478703771659464986416633359796871975688082369877740681580899734471752985478293496933382241776803918940377302952387195257625559770650164494560075098859532578050501623151174666900964346577846898241665750626307061030589991610912509820581682542534297192292048459951873865648543661681520802524864070862660499085547665134551409269261809629730796907388289498700398314346604253313272746724736659744791227240945209016234908841532840191121038749160548992676788772404568349519999647606298869382192840677161382997603408305187592108432517927726110111382757920483357101663321901547672398764944146520269801516260122725910181117656659778923717610071665059648263798844204808073034579217756663270403842299529301316983390673953431274007077059405420498542804960942324451886775080602400582558343588986551067780691337570319139439952848025989237619207617814430753416564475589430468820876983394862533331613971388916021217604670411483080933941792421977525349204174693617374573787220231585657091822268561829719421107255046450196303752015562639399302276120313516357269277811686055265194027194704451287108548314670317700926927619141134581281542665247504431625416574011808419123014706467307108862456746857149155361493443015364751522953226376121217251438585835093775104257149197171840938552335700710883119791883628355691944080954139746773451230399940155434618450028279639611781315197916757063101058815756816617941985600355063094084043356400599091861882243117328200060655480314308758325001323014044332717874106254702032267832166343417235242099191103039676505423996026736076767296503624930641383610141391835406745058928403423530455765113010118108854682163893361876990345099631496581720116082199416527120967969592569282497086291525659313204978988293847260335424856994750927010903985485541583491462334247917922466347131438440495662511838487244224469325382965814616516614293529165788575635569060559409160364841438672423713342706539800558117468488445225570821709304256012345109827721369875819514694945105116720671731989383037373517333525930427102756541620884197454185537855198782516575969487080454232822754313058852872453467079276236747732643804796128158740406412778540399471669171810312776572289156959668137936161620247528404557400749488534463073438588960607940569367306682669293487039481033726039733629293092849854159790609425547940872677440925996586919870070671555763378732389866523491707749648472988785920705713854712090780087731404143784256789783977084918258995517635816228905303996638395860939800946607292249059729606616012810817239038707015014508030357234582010245849345896872149877107972754756991092980602754162951225836711912735528131995676255686878197747685506353248951612503087300908650137937289049001939624349088618462282506873275106160038950493876899806052596165004428998782349048488744350558196544168014337885112072370151104871002041690518788756004736873046251593482715289556819396740511330755179132036113542980000009475098240577580253789514262870264448492707689002167920967322882492570336571288660730393540864307417212738165142108466519173420491705819174996369778816355300366667971746098212539908257711142615973653948364063613594915045313614931862493151028271387838399960419151136525440601302603312710132161577228089827402558463457546206921639546122071169463316538678677386301945112898286211776169470931174992866855076320978913660152880245900445779452639462789945044523951046479203912980820873315785918491914206220185264419505644920129699135515127791239983564134209112844856103206037365016434164865451366884252669807789080344621952642594277982688000688548785681947684832753993465784003276151885781110095517471156059025338455139759246672067211437827387113917628409537350383029904369631383154108989952819390467492349897312469436626211947094037540404142045065459723646465722680546770551053672694061767253456450888049361299076104306695170289834566408053303037186683071865284587237631755704860575944870675207001653704812854977624008364880337258235451532536263742205566858782498742309905987632338661031177128260990875882919910201216479823237633090453209137927691935367157354857674856707424317109544449269775778351920659854509399802610266347225567320978404093588887975141992360790546857617427048690375154916502605949092376437522830020553893693733394150777839841733168344282027333041505106875778924146704301502157860238163583800607048621051317737398914149367179312579635496931268734151344587444676914658334873095559428131356357429923183521996439453512375146264559453743572619809297540920187322177323670703083235320697512166722057472123329995104235993160439314160725836349201882602651519402725904033258609286038013647317471250538652409894398241229118594135676684652973184788902204692337141955106417626712361276406795581379628255448405556324942277041442089125539561241622299455183710120693428940180112779919179285418433164338182424990060028395051864655903206351309156895607508807095993199785089760000167486532376454956172643024227369918043283236059310648293891082115033601888573412247847877349192294239985188536729324479725331704237754217055742566872925401884732259334873930868224890026906645098837753872500388305368074973683576681781889014058000277860012925560656680843097279588235352830638670884461607177786486297253169040044869258230654992040432066459527834912967793501923138274591934994706152668774543998494424382223367007574162379454813400787639977711047381748522138370326946192136150273823016635035496757970472914930405130927499247036465300138296564421541119798254575145371995473088237100001605170678632737575500745479111992806235404658784792835331025532996873467586833761979713279859010449398556600355466511220180178614746560652964271540774934944538420773028251894071273815718814186248190700493335798098781078204646824475135934048197387805640706564725734856301788616625965515788546834946612405857843637256827224279933600095697729512293462692912306661137072877479737006559858295949355792233740882995205912000385942383312292124491242147799823513314205365654530745719660204986330563207995283802135224343743335575338464550713692782463431630049925411309464773633465551754011693676938770348931797313752504916412216713417416836476970521173409531215768590320131986152995393682290769554638653995418763390420051643495026855603683556671509697561933449931606719709189252335045504076919775365697619603606496852988145907499880841417435097978793508079905592976855416747029239936020346665504565346022811637241213849353207127182449332179116537337540603929066665360168133959958094967470325383929350699340306053619116431774774301799049555707907851381025002306217562465272350387302738654534280193128948662929808241409490854967794845331609367563464966427448686393220660635031978755979775578406126907190908954330306853694372486899805319112932216560722362068821368650991193907592948988765853199036169783847368569915706884837982965187011571096930038520201301393916967768292907044789957274935506017773806591559977594676228059825259796073172839809278090695268933172075533991881510949493958978637021086351697731333297537063260350589366424929682546640247862827578817777638946420887071506504623789239312293302134223433162926185187910544927999071513800024890280188140753892173983590089420466732712933098753728855381953045078650803775169622643841101293777298613036042397738682091472580853954573638196311109371696207816990300441031818393856156248711504711737608275876694015367802752144519779201468501677380436319098452544933407306202862328738513116970116615959218979789766615579771678469254642207334305515170337174543700168139208807867944211505509598068991289323416910434165765802430997723362986136749264469981660101754355617082448915952859185906460553877173002455692522928092293531703810807076793081431063455054647341768423718087782626769055420620782512105206454315411562545006050816390228608099560909937982863137886105043955611912037272300328226731475915802099937226409734086581391877809469140264651468291623266853286255976981504767857798561823988827459598884708734645127511735192063686706081621453749640069363340557178302019416757792663596986807034979421734344738403555642935955684408691116315906813572512961181745977876665431298618356393331565903850009344490423759718705826806980578201995781643010136394712363109998603965223224585830414281975698751508922257773741165759360084474317801190690936803762417782459435191766584206156106284221128177102054031179715691074121791924073134432293414686232708016655422881597445006580081484793510515326882007335221777264703859919310547119448643485656229456489223366659852776652845176019157647809878083555935743981685463607582977542665714811267323885116969164627050123532062955874518729182979960872053401964115002320493841958696229577461230467545835954471788731734871180569682597857776388617487073537006286044890580148766185044600188427205086628662276077089667167817923165453177744684959683175985955892150317188763974945714817627033872959115860514591728552210648935985772886425383900591545176305446926158416361554473630031504441003243729576114141916367262697812859166610216023555023748282349124748543590426022462384296848755287332697234916638310575705393470719756505488747173070127049197234026749556151880687556266801184847382927035276795346130736549944170850259501723802783767222788176450827825789705942895439024188156304471538504994135194117887090846595959867655515068646475057191688140929083921537180283883492403601562881308731609875254559710539913447921764430640315278881875360034408692060036425263267322201297386023721270069104012636040031251406789026446269360003038489399051485034466028601123730462858830996267924751238376190021852283104384480873775511045541854870331950562756293894333522803505273463625582209589732652067192259681227701356986561167508045841423168976918315547698064124436609704695162011139233963008747727104699168192906110119282765890731538338802257243020021823075848677070224753584230878540474947344113601871012146417091067169395228293238148455305941004553357080536615180015101766486843122953908595780725293308576330785952962538580209672019353317697592972790985211196330916992126846683176913998888635534808313820560497133197425278900982116372671093128354466943575593386785672875545388982921541024751554560927312464991281896279856036644784864005584588968589980022947195957150861012454078100809870115678720378443550345511622818613675603428390837261886753509247757828616406692423935915943577000379369739332505044906651215874857527192933789191121729525986044570945989267414654407665846764860918369094021336449844282674559164372097000360508551021160067144048962019139447087452198500859366336857639847278599062958281915197298474003982011265060653597618369856819980636599332380957054710052417706464319043050484615223962886540032360627149890295833799435103425406915397250063003930947868366480751031174688019079675465339034363654891026019538784641909421516841747413606924349396829085205670363404888936507329960967598766921233263243108661810139965153364775327305944980268790067652085513239037708186378919242581787680585040954206788346986899915553160332105070916618352670773238857762456915255702850942988856385555508647235271811554660216498760747516216969272095036588336108348106644968082060825727048666669474668579352855382768720174575076093522614661302986757258602385442381878782781717449889175402911832897732622741670240243368375620223823001612645539457426196749652328938509023891891447116566337652796531647518250863691575392533409400915578891146777093050813378056410289571594894587117920919771247486256765669509270375839303113202845214603483421610483618384997583113292381444121289029679665761763508894043677090805159359179853916723463612380108353965084527092868582785415649390398128031458802493969751381263314139826160638088677763387861309996176847847595507397118156134012753024735129392916826801169657073692483231534835857426115784230732601323888738037994074872612269014875299529180489780893701913146384038779910314405105730968143414488613920705458751983468341687095126446068659361502289781375118879543458414645743638096622238338748878290001436559642292084183138652123057504828474309330290198434322740424299998675104505484513697551949439386044934367867523279360594281878492273588769668154021432586221098987288669856349371903287831025911330574577932949840494659462911282669638345603422641223165993988497343655100127240050458352910809557242887031335862505792998003308074911362499289031059581859381710884686889511941782508737853946062069159386646967555002384870645153817918904163178350724485098405842529156663023822403910766297390119835549526520523207848322225560071483705367985038342603401581838537581450972304632602009306465439473865510264166102416620064750887688760498999663549301228421601645379490966009487932504349357850600842533338890092891834287399685279084902668371360957540410132965951587998618922124871969897666664099114870464208750101101363287614603400546801477998219937523146712294381538484290214368024574093576783866163854785478214697869690643685923244158582031056938051626198979760193331240403476933357690349916352468388957898426442905198877972359826742042298939282720313951573680536099391819981866060521868277567161540159872542455369931720969579206158982016859577745051526877095149223300835575539566964186808890943040255814654461389626968456189611841260099411198948305279410069937610781251645374704704110583757608220864263386206196033519967291078803451876605474502152596502354038692452502509843742772008546382396810630263713291263223873646167440529568852951983484131461595362981944245075847552611544715903489272698027401164820884385806443472173610949080605988646911031399496409668279497548692137163658478937919379403836016660948044680024254825604253298669667673427855772820984645477515853607949334128539574853214067952365949972303228601881642066342267070364319412854299389057645858944585041793352304654522225986733876466619884105819467085918638363749149210433208941613172770170124899756692181831764455914020161119921994318868315575806593119119461019738922095569689354472324393176661378290664228728765831788342734235160647379496967952410707098966910850352362456412998586652416621546307431174757478183193387463369343519064781375718249671233133026359478056925110006872514595786590061783230301319273865735125379194444633411719611938326356859792600276470519174126855698763687902678295346363858847389449613336975553334096598901659975870991366769945461419064473402637697617049599699216984604022829386028935344181999261294102536016397849033550459994778180953373328371433666775396508033788741633532471110100036332014126374312733752484459079283913179379422741683255909323449101039426527604096723303644931488141743685621824072525115108651791819028951456369328821804451222256620520983458386796476016409724130050456148715939872506855520871251395500678941337328655215732680401737012749193541503009483333225150807058271849560906623360903915750358367272886876071842281880991466218861549301573041323244786509680331918985365798062548889189665122896751507823751978013047093089742499241270411159417624791280109426102607953929340477878971513858759264184495418614957636491684750231344484087907766688605602563914350055638371570131362267885579274821813432811195272590660574113098778931947505187160939863074340954834494594423782060894060371964346181329009797675138839650507210126753787952206398266135776207085607662887144344648422902742661119947954474509504327311170304566298213895783931796076153374561363043124975910918999817033425883503041830181982245326977886857689692459792679350625171538720056947105861001479936219760335845164784949284328654120301399158545316719709702141439393490142309123547737144736155577741432617159049437880475693861384723853008183667191647978101709542748765292691821647960581128486363512183233836706532909772318062631633310664306344603068863600447799375260228530781467648284697244900397374813369539267617502678887587683305936413437650680982733906372128857517429771095792653143213980136176235698288420066982128740467562590189563228670396394682841266004604573946412964617205565879184818533606265086145351675347858959646121998769355652707177621916503940439810972495507220202535517552263650317951623724737866976534446378621165099672338009764821208821451185716245453377961380440854945404001002839951021247600542126034732076503507015296159240470399010611571250265599041548559957911903652302019633031354197194699127966500608756460503081908997165488881734580261661618138770587568497867203818311007096902330750846879665940690992204974783424184583591251066301042719768675226367733025173094137586469092511579216392429108351067438958470163663261722192022179772290828734315155528446274560643772602629193140345837416935166961663331956310314056180751013877467476697886022921797452584895785384550760623250588109042818501368483690749308772566215571147516524232051063710678205409180145565893389908525921312952008716549682399348852126073419427616288558603612357983079005730886094993616611784280033309420383275510633730690891906389021474270827971958407854642575949487904693276071745927580288909468191082701940575711067210476537287730236165917275444148214706490523289215010271722881662971249362169002976792948751283111851459078093386016114216252424534581263342851770387019228577682971762713200541306501892795561379748513592493185737891218047542202528979243116603823125986635759228501790723442596436384745794119170283192347849153267270187988229123098032413644779184114290354695248318889694020916986842362220327031195032626608664707892309549926833138837267484874900818436322200956483002288975386636377005273238979103369762518287725113371405063538824707184486202912793202078521214235214600501340118190547603340864367636243728449217028337432337295484046299363763939576282884646269715483476904666632516274999132452662834313014410039413797555937177103293490317511770291183849524543168271044855865710964872467342830416967130101676035555927475497270082254488380168210840830089931960973332058993144111570360464978485934172471319481380050146483251694452253019344744292487025785390096965213149460088014331792423782284689434877837104618569296523261830408253380132142527303207771159312334049220544674720270446316171939281171982353857120550070229165810508315565994337581584759363860010141093424009212688840778809295776047966766128989464600008237092771260149042681429364916875734182324083154566035628234316171358220459583432831301579333035083748370500319144317876610013802158660727717813134367632815500853018406770606752131301103788998892180036069720506936106965357511546234606921507608805225538443022532251614101831880237778695507242108352148654081998858281269177900636712229780169156090617190018297898287372982941472431890853716947883437140332699953343223914726801870546142615228480460183648761960100546571044176506319568514624163743568511436970075444231745728939082892264224426034640847275389927525273822827431663501030580396855459322404368211637072355508461469493501945112034266173191580138354598387052755184825731428302383147759934869073355399529291481546311152759802298463648191767655132604052553562281278722283631037532068611029474744632969721571018755399535089788475065957168915086797082512780818177618168476284098379370247084975442806381488152571084395106194523375925501638763604308693085653694635692151007810804219881278449558959467512101839904874564681390977541553619047669906867580056612122430624952162685667781187170216711717198343901028038276697541169398914101125671389560430999317920666621169970926852080296683526908190405549306635082456645119003784563851190715175869656208301418568202423600388586520563907889855906415923969277826466167209903571953729576873916288840077039951541706177859112568817050472326372496520350776529417013856137962177516244447555799666921075274319846699458941387263096669083302993720180216983366501957394858086387998519447523339819217955574647870279864337224692791813871095565527283341795064997150750790281604897229513304046220248573912276275075988701402940865430141864159139037096429576174568305859055567872206577229808071646482231056823279549598611926017562481505417393274722452368891925126332785251550223013990357515804276580959866312918398218357754425219344740328812905755238771276959042599334411169545683916942390897210191163826825822256102512633282787572620833026164534579139448902503392413847372356850174932676039900876901025685725644813071640975784232440240139510980191891957440185483575772523670818465639307069022424634473931049931525291857793111502823418287515601897020604848172142673234947460191462614929925772056012361150398075048821885660042355675217648577463313745838761677240045491582901373391566537146922821591893023671851090627798568136743330635819392881645931321986598098341474553768412554423376940026734017490274163304424226236236485441888521148012372522908830341807799149373838103988539052988348396607827726829015719658212919661498199303967045493587715432076274550019342879316576256285479208221596515980159645543001705535741840603604175936771102352558494479470217515439801746251287433198887311428456952923435790230229938678690718219575438077711251990217291512881710826142309285572833380234450469544483508540300575968864842623858148490000330529837415542919011509536045881754261952142530563242692956696668710143266480491603302999387626767674042869298006738722914584816969568492012119907169635272638610629626701940884991878175769533588282142124288684863839934953945599279240061539932003788671908843816835416047195774308304834417037075138946125798452368918491887954842883175709823157714666528566977049574241284016510885115034600137523779832864729945879616276616673087544151768902350043806171019814889409667979792234241864887457105936703393560855196006616582163405520537395624449380533047309914509941239659487882990786322969725398887396053918646990999566711513473030656222544019691515746261019229862467164910192263586693975443732141126171558451163714916679215151423020293684037896707867354835992834915241447199103508474116026763915680417979092139109376827954271051121417684535145634849627547732280529587122435159445679638634489245224478725731660722029352970277080761506709702611947464229447261405498976688125164953011085949513216829493366397115671898741050961737878841612396409287643453714370078270408342190864433975992066808344486730484884899898049108312283825876041082305768726422800150742790574951437711728685076916697605077868089269420370280708680711380167542715425056361401632695786041399923569557636023490201308139233581370593513496417362893487502740868814413919553508272744752110968992557908057754409903371436453007502187242143526276538009587213531678770618628330170995312787525578177861831250912190123446297796107975365615131524569911556439151667806314044153790860870638738828120221770759638619131351965294822939557284533670102086306280293790629680390259425894757865677167804423551342630856753817846735845399372955410371439889266967057879753128472660335526073562227337782626491768062503005082558205838849403067141156611423540637208029609815248652667112296216486238574957949873727918341191377227581287756679985942971015346268252546026492225508037893035415886266567478600531628058191492418592923955553483157683497861448902374298410235405105613744300401504627218890502401983594828010964870951072182798268676254872868460142254118824620338933171460159297696122634614536610530359967141900751102035728999514228985260706036239333571170112994140470703008780192521530675245978310917418428714569768455625896941342135444354959979731982102232549521857595511518463584203782627291055481575974855082405944722227973531772758738371463571591933925463325726264093852141872389530197779515646724222070343090074652024949967167584494730533752985418289150674631267140165002526645051076467312049234048093009777828249841395219722167818991659029364054604038059621898080198786484468423893220882163105279084417305723892983171037379963760444799127540999533340369002297645333150843108073195641703354007968664621608988136119070280763382976476320748109649948159799177492629758834041861203699609651388137092257855949497206923554178852511245000715476392116408324807559672969078255377562976618289947540681113493884443728874853247987746961012089843821099371093358594191132086819095888284056475976373422556418690224565503612233004859538314102258348737909700152477088268406198483686678998670485805610611339347460154620851616507434842286030752177266979806150427017417280998933713748651673478398669668335529936414780480593719713573884584022098986389303671033802126139731509683953960828345096418205642004122117060929970058304765190718510880788973201989964274553895892927538703831996022377393332141762257468816328512572583297535183700399019283585533146626252025617601051893682824759112345255061631189274339149299376370514486412013225131828442192650684257825158575976182834939713314434435333446779156305770701390720584825050413906897444903590313300558288726211037411756807027340295729371264135393444716342021926612483992606177115712906792187612925307402186318230781000242740219029001795634403649933334793120705324748292592590304550390561943818202797439059687263133879235886946824261482594970225597840627141048337033869785436046524476005671404357025708528113995983068934665370452533098731347944254725758587309854807505197659075813167504900659275875601331694277816009478886237080195813745536823510523067377940054925424091802816523146565823517032829508553617618080417697020602170463946099597171071645025782934597799934863104646870704881237523682335030203878842599835615776711403264280519974720743766784133165012660328925197134089298473155501454657843906066550426310890338841774495707069801086974819090888158630291193555599943745450528325542317385695320357477223269921936569315972106788825319048107063727419846844294766341402633575597493880289510336401842418488279353584752355533208678971326775058982627446145141631641164483106825356280954192159767812195921056930150655622207198429908116604052683305104949255460879354896272279524728072135260279087840814977253947042915174977531846960306081677502053942391510305001359045156319365733083489613902420129540312252808586649321977787323679703469582440429259582833435245167772236875901034625784358934690266741061958118778484797770268450363460678747370975993817570408928598756765855341515498271681424146817465393664313302379225982031616738482423695182820273787666737486669688326944679170039371730467771421543283628420686115183619117700333091182036172504640546504986263727577712964919818106460184634390975855726695596137662166768309540274883146006956936837301577885236465382268091996824360782543782896791660090590617951367393931364725395033142109561937730493702610880534329689079951937352513807140161310560254302374598153734529240636906951286004507688062827534413193316644031095230601238315922383247429623872299227684829029756308692713812159033034347074238744814542439857127739139741231581864120343335797142288069600928508524993715845013947748599279177431211207053311219829466289655311660531707136956905401727104748522127657575531809284910380917925740098625419775770270826788286541437421697230370789494015254583274090320976956556769242341885873525347179279825675387015551661020293647199068199170940330770446120948287240331380477284353646455398141556377481929347710346674134053022955631004228075042604414658504772414529611370435743160851986784485048294609825048564878661796398282627463176359200427593139252767934692047938642070058998436649325977840730833288505305084403147818644696964050838552507931584889732901830625359764644803042439219532580444499348259158048177352023232264670960084920548568245648870712382337709209329278693693955535960418774864378293437355632873612340269800644874423105867579966898850390442293271877235609388670652413075360596487438156034899334009338703173299675897776545251839858130659293278697767062601485428104730303097362910992782338793438767027485435438701410487251228460009645242291083946944690520395393961815149715718365165154473129941086493830754122391333756893872650077828889088887555161894548596990175702650663848947958126854656577475509759245216769164126214429601354217712788013177998346603312835585988998019657419552442908226486632320032039150093503878990735831174367698699044253983693107109588389003177884237337778773849328785067803010008312437165464824470150738243000530380123727906157011006940028206605416630873399239947927696241259309975560297730808218616153713534452810233393953930790013630771882846348110098064200323920316379721062674146455181487390371991564676009953625289098832620851159299208604570818948951191042326565874102540927768867236242058524884673103035667160653139528920073422824852419694852873522246921014359826859933747579865548097042075092531872209659766215809860296092238772462913345761506352769495792478214888674939149645339624478868842834673012516499014834031662267141061755628437647631871007237603918635488352027396602696087811935568644283580496201085707828108853252976524021132430324338849024372240418999076700823958037080136821319387626725572135431176384696428822890699623410045926966621015859496136043693527667216225723119085980461081420003445917508544311926874359095903639096472060285865028309035581026524517602981735875993659179360888685144694951066985617510125083665813932864235670610420043596722194202958722088045825329996335190466251839148218927014490491337282729565868583219891244411040851981541225625422103827531326140912742634745283710543773409433326204357061226345116108851809324961417814355536865136889282723193967754585466847420247625676204293474673254873364897433527132323413855750193307029320750498841796969874864545454966866583865464078826316043158590866904279477343862314180147901872767415326787582255488829032661986183112311899633521828079586164564723706735920856276176060285827311391364801348634438558674382362207598903606729829875065212260388338336295814472974862669759555750860945728098024796150072906240435671277325277452351192875301264347636967655552023339822856185800054618034638092058008384989896857978787265780649284321942904899371873697676369911126554754145001837776773985584089882386812833037772689508222011474356029979473991307752831524905893691639621266436246352638701105744737268845546434936279474976342540332942836647014036353940324971382872613434226263551915176528805602982523331206811545073957805305278671568396161172358513862981892980113687931907985009022601668331762960851592788975215687119193598509559574936504805576486637400598213008895223618193819793533357464935201219228426305057201354553691245879362394253724515230612117714340012392628392914646570341455620657092359970435122386663191481804332109976968963700678918959447747635720994270908491213250475260274871979977425896941666793923715659058335862782579107603352751038495266025855609318470278166302399930290536763863972645823921425057374160493799349829948856233798514059675205692543205257509757015864982178969738035750419282395009874876199893491345353435639366775213814085629743903525546777368187191431200921892613621132825047764936119849509747591659681226595702337574585825558083002323552360985308352046821841418981601810407242621870243344433006961511458230129464728425895835190274670511116920908900949948116119566910328138190654702788218020965968455895243003523465089202357180373619327138158501340293327505027501391356195650026981080009733455677968008697207894892679264392703786099101113805628729381379167468846348001614678894500067661860848029394672601377460637323447145998966663701865230668935408423778864159275420114258309192878926383872133662964653923396164477534381093796620811955113403544180374586075650341632726222320776436998877085975743199933243596012738219430447055857297584126428731745449983670785965139674187918988841671660492312359799226145775417563564124410380897686433865378352936436187714144399056037409562533482545546155429310895157629858427276697873023721942415093665246654816267052882728911171461565764752110178402390603075971727964198680212312257072984239327129507102072140291738116619898838468225519148620452544593910070599375767774752142205441381042907627666971262396779748800459967685729864257708206550843013155865548021103308575100545740168794579077999982211836244174552638523603778661942001673860194336128376826842963896273966416292609239210055826614894604324638283882061983795257224062272521971240636460206600573311000604314708210851140832384230776452977890897036004739823150278131282638622876322145661983192245108020719868736684237748068643618685386610739658603974028848116030530799491968429965671036700847810395234860426471837400757104688098582031235347797197701321037120614322287649502519211560071266377400898704645561311296120279207178384267092080944311946279951986596383386957221753247375530190695217890943497794052373435538913135067948137808856089748911560684401694146196098918879630398498271393696449306088489400245817347455250512568697537263399847470559066084422856225527604191942244473914518383445486323789266372075038358304163935978436054771782586420207471116090215513798215484300901067526189034365970624770395673703867780169484981256315252527629867836521729440043113257060866167088363797246654233544524974592789793149593018250108428873303844230733741561647771184402461614067983484587711004026181379727102236769690300749265801432534794702479987430354238499030837465638831461499562556873444000969035766762067095123387894111792433966870508328878489313651328955693489087034770330737697396076872925532363636058718937891609300067072600481745226611847680330769155395836109018977215844774306869043991285327948233805778649271552005095506349022352292298357307629857944142511059522041979029017266424929824969317123784730171167624406663808905228848163997449784829264425225565951842431561341024108805326265288010629114670985911660505007459074243944925542405955050089213207942898216466320561595174018453865712026094873090025423123374489333293276926863769188253553683236021283171686969065547290009561548878723825576078790228270413138301196397355336604541093315584404998952494096183407909449229372581453206070995454905432209009603147817420403991303534973310606333210490113094421971566007236652068716114974160733629277652669152228642432035026723991323432625366923005201021277641370277852689556843186755132360459655774984363643574081027698705348001960983895560166052684438036945738314714799448210771837607955294171328887892886394793692115979845443399844522067198690591956479081693301867186888976327539293999931660177414221093967248866216879628798710652705175136147277133005611657392729219956216253928276066604607717498714655465208128389854484745360848657224623192949376651548298114212490508833405488699566606372359748703589027194909041864699048337749504562705221364170474391838436132486195676352602042541634299879340209877553549228586493046090891854897359230704131846240279550082771245928013477007212369900927689054084701766769546541875607390700344216563072259364234411196714672864673765862555038313449845775443812335614156769177231551933828146936930470453972691162309912535583823845039585316949597976158659792753298015861211364177809930844377867248669452884548042538211035754091834660966114486117645839336532095781808068551862933524843728647048046754123458324936857564674416658077722757838083436966469334215221018017171991577434200630356571270132589739141353707862964928972291850236396526362000429964869259408079758482869941623737090834721265003658668074964845515990052892416149697731667240641571700805928129397088931827364373041808855457166713777472984735802713216719888860846501020979860481306960747506082081358261826944804855416374274074898134082513359490500025021953284647676732842861520451215444031366914064693558384152536754038821995161054254248653358893052260241367626681512554991207219004687098314566492913820885047635853587019071596552928547497276362599788508792372153910724414854980876998224269539449611625111105204171428999790571402414239767913275116583626912473344932409767926615870897575611057732482727016317294216256451094663357699718272344397367463157273098117341347810861498106595229173840789905959495135719687128936562856262592159421271630036355922266023473988758964353402913721434689428040788995628776886478204753260595856477231285352169421116381256720351654706000598609589617811839411492220503725228314686723239799161073670895459113710677164006183909077371148874530469210396376266173124386442695623601104124798760844883599996465754264018471114422905903855548937986568547858591116904143678393179458677075695608746140211534651251077281392474853165702747257333962835014919910596981413935998133049764371831595608390328574467847068237262058402815811090744481439976387887537426616494825527056306201654081069169888084820520704836984098550906757843551104842460981567074383242832259135783177221502441762890870729393311028446780479769542527430606290137367229277357935654606876531801181890459109285945338733431027693740176913151485292377973817058902066862527409201285315993286209974861118156107774231770949425632706097375423668061849599953130023300689755080183795969041213337390404130416105519742136262853893998838248617306508822829072684453646255152650182570187604491595771531728987182369260489451155836656684465690985617345116477445811253615649969095441061272612127750984868001347490431777757339736767452131320140338430786755316689616242915751973323225216051335077613926770686157824421184035190192710281989112633072134625522937317260678268069222426007983629933148359847010001403376248693520150509171851652394755476831086704306179275810118906351056213950683234796158250266028020267223212138790459858295591237015805708315249395119774014270148861186806261542986109343236772726724993452736300206570462276215370513204632699658972988927876694652729468551800495974264569877270725888248353932484416058035540905383991198317293739637409028560989711795537700879878737318051674000892848995397479660239380531110016897061571282586042699241969802340855547017334948164525852009631963908089170456386129035178320287083816577647241010124808729848329441286119229782928932459932073019137702187025286170737094762244602926539575277515864668527801129298159888379119649350911491380685228679546885232860401034012049118432937995516070503426555957357446649313072782013439468434629795375915636891374759751592416832716968631010883303726909008968108377473235152584699234753493704798962509421073873886524860862031333175088044786168312741485346672497468669411878784638106385586598780714583488324019603079670696395620013403522453060527839377909796475102855675045577247374973114413886625565677761003341913124069765459053585351569770990324352016527548006843516399616621553943635699872017721507183766015117709896202523528897515633515631257799637905563776004034791067303879908744531176041260326129116026219826327507476194300854337237994132918140091308681246410810543959865838917894381090139174580471025650944523839350804783659064260739177522518438916334852941017048713075602478521837505966891086461013671857045633862566532138786296996861431381790622018300761252128850864561756443153812448748327377713834140502016839580133741508722934899389878698202957030371153879826190887348457949545980907602326445869190703228409945880042968779445360157812976784415436163306328683212409265960633787140018814225027808921114863622172857895477811088341343606215213509253663976703388427749216929902795145369840054812157098516322011070326636009504694426935197894788402594113027345795343260357191307140136692443412374992705715411705073851841626148967385616653955329610412005988566452163775387232212129004503559233637921597131969950698768989508093033662053465078662337318997274657034489089412500303277210648165470390633793208767427969604222043122474079266767586582607700730315934007521196610379169825585234358227794220045878379806650832809334259100038694671310044586552682986462573546159739089887608825846108558625916414801489519315974990903909473688953185831090247878398474439348572003294792736230650490489762023169275956290621168024547833372844130610761727684109271729350534610369633085951968695008819842796837444742200240641589711955671537753376613019821167741483919918788468225315298216677129815391109537716564027934269171051356796131784679503979329312305838189809161490919092930821712699074284720741297485677317650898840778937936847056366476497413456409997954239813338938049621311840982324072038709216944193326440615242191343448852784785621527894893949319183486484619852817301463577198368046586705200279226877154005896223559887402335909724747340648560169970302715649529706904212463530281106866298387932713198431978393457612720312401233557526850412716858129523695046296599891801615197474801325551628079609641548363147839126277677441423830210047481567162727551960886006655302536699785266900905911677749046926784145983331977135833382949525842992342883773797472601575160883166219945890212169516394889875750121296863136253099952518221802692171522030508162098851241280851135546598364217354785142439038529445717181071915234942202645275997075547219991178994938881369653770597366540688442349580509827501226356144534192346425691746191770919112704987676320440739615103974838869469730989302502771647031327247232144354548864521512932944239079205697013987166790222338000872945081969844942602112418123146836734931994652708387401496139510285563717788570468356912709462521889911788340461123610932620694369629269693125156474915094752991369866240257523139233522222647669186628787894441773381189889185610215458621242797415723342417653062569670197148497015112428362148562008199189294603142163712609424037336653190231312573734994105916199616401364021254248135902827340636384220591127640518218305128963347750118663500651081676187489341345553289009225457622626534904901229352803040674999466629547412515809034949954877604458519930769078517456038763289964972929118313894940108589720491336269700304121482947064416950480926312069506527552651463565178408916615372297929241131228181591982135586316317545842108850213927482658969503701522898697867771588137390951326817178797748842255506675817022518113917399775344251014480726903958381609003166536874858206937058067637874306634687922502575486675679980417289993480207437606692550480274876056949110283090875329342675554513071052714600596432760309175846668790409002087226726975795603726199271201346076959952009746190933372736669754853122633347733511649128830855203243603850035057515201156801570863981109524260950265366534794248940372391731050017757788029003259041971870637523022094198970110423263212540959081953902910914516262752862352604370605807159368984170816518982397571172912046578998498091017869598125635808494620298156264035618746738621642543082715974089034300442067128101382278852242883743205933872139724907062772360074399022958568267609174278605645465829618428775042774146554061622582967414891038080664203377199692191838798282350479909399704328473106132914305207819361385093423765898895007329908349459470537593030854569844369705925403956179612755729392476362867348361360704282257882115102197270421731084829383649086946155422627724773802128882849868910527149734293467136108812612290195418988572068925402466268275479332452702240788405689181066554997810635051200076855496508148287639754765009729438796886430251279567744725400313893562705238051845459202840362452197530968760971891571079896734430750934311619778754062984200855745559485977068863305636751260654329959401928804218167801175256673052155667855374525542249747975513500046791996658863837638144996355011356633690728706058226441367416292328674338019158865136566431096109671572123529245813990719952920825595328558782174744476142650080257707939554981691258733990992109582440491047205387492914581380855380308056406841816490890713509820621255573090998631513870557182593538889101010211414821944395186147863495801287081385488642810878814473312798119393618347771011340505450547680826997545432860971810424421733784749566684932073781686918280274982961238822391802592279355724864340182523727772083652562039344726802365395614262272240291048220783328008234586321849344830980396097577317061570903523395039507537053655441673064916305540218527259789844140675217583785001705992445897547679595135492266082114314921571743907391903118171331403933729834926150728837658061351614699674783449619962439005128082849097680274102636395732430239750490575393098044560693539405810576164738422306427666083159633799898262263028604400293200180736036550668492203538547907095269835133925953632391724719915719868687070948819979330958562020521029732790417151623227744335014536739707132431823028197100393646983809469546294652030824862622380596516662425880966337147734349839004177605343197676643989584712583010190348221679613305017924903501326193485234513833422206769142091142262740117747260937883437221618935752090503144817341166110475319222270571881360043601324471084803148150428279987950874389321338986372890549556415285378525961680258019957924017881118335903297562503077468075308368327260957035892650647535084144767465446418471145638905446852922861483588292667319440074340337967031766229754820354635940167568939683062948968332255227507847501871498986196326533837887002997081535138551467151342005273783393296430332387176677237921026874859747170717823114273981242185070817469205288048949489000742883606623806390134671362850024891684900601037892232015620621929108237257337296887600156395810817402130207825720701430517401669438844048800279058667511531712391157454832884993178506445137216169782571297068943569051685772904588130927539887233420555734634716823220482536329425818968760037817996776827379387956758819123122791938305701354563000343993854271407063902393203158954792761521049991787766641032720407416753802141057726914298436753511751532617483336796931328432967486951546669027330142243017339535883376526541198986885371179240642958798242198999442382136683861415162583838239281175485715951838959218246101724101507065450524794764581912587548468931829764914018427826416709132827430025947003744737924595875194643577065990010931101488895058757939875977177526971267419012668419091712334272201317607128665615532076956713731835964949630856162139299848765231673431370098093041249891850494263331480498731364511009766850757535971453959229844342896106543665479925322013472181152763366950836280737230474910748608701180787070748235217102098081218456728466474198538459750565780211750405608889867643414237248272786485546292561698469075583035031779053950877203008913691216422163742388654679922157801471721869399276435959913764815297533712572794514828850445204122954995429541485098087840058736933139767913809245366276850873430689654599368068438682564914593879736791427479908953635690537627410367232616872551440883635406822375145731920489455411405238612277702766407433651906342864971704273954476655576158512115407910142612883527794405657233153146034393009610634805445384631185011491061924883283537562888570283965311389391868221950030701252275339392639676238824292126992862138296651837196567817630020640332167881549196834464609631711899013844936477264981914187785413852032337825239125874095366780254619258224980323123706120200958222249297818673140523767623817592496289676828230262651283069273200193594357838027858467543877459320191997906685840575637417607697583004699916691062967627167128362798177254626883843891876416531171288876646418197760384130244700587292287699559607969939456391877178280503505064344110051486119835834255486075997699587326039361981679165918582878829340125879812314227180535855833225444535767709372563817178115329482497975898090052723504249715333972042175518959160606976483634335906377898002273257833162898400481308537671163556425902413762681886422170553191558406448479334526833318719141784429771696483138682465595034431818684715959211427135919453095213451935730384330920810735255675672442551713320324083470839354138398013332957717982564417176613411730445692035011045548084343878270948649280865832374159882963052966974503248379964782077276585584534621270367345738444893486459512850943453051191476271704777359491661365515291627663437752642360745923149019959191907108991033287192595187650919450903841553351738617230684455873161726335666497114909073921290238540351564433655298546350484097104860208347291065102514936182695136419422334035366336964565961824521838219083684390830813700360732639425571405204408723551539396924598631445671345053766728236949658751953986128696860092225951752742326748225595943006930075497718816118411235184265960694598848989701837553899122654053591737112545898737659505081539386395484058608232486207506785613950726204508603894265422222039690764871741183269016018200279022566973743598214821760715579892362380568547448697848955182283123228723050207178354855890306047672896602431548500809876585174681401034854356947325416240674831848858308525062413750229661026599597897509650278934000968172715677729681176562802881439861191509864411870757061306142197276158756467202165311728616337496618233895902299796618146021004312977878085807055093476614477858120996979836515868652577561526890355085215554828608406305325869386947060825087075546123874500194935699143444298365148140198132415576896757494933418127593333730195404962844419395866024227711279025293304544076654717970469873940298731956965192789745077218222894493640881058421060231392091163608741023709026517462835434419387120688368977179654207053099585560616738489812873379631666580067303741641289109553854236489709167112574031318012581567644975669808332153781423321103852426166509098230714635103853478690227563632397217113062899206158309091019702090813047605411955007704690901192305102037175754028632612073072048855176812176361101538036521598106094919724369898969906613950973254961231330918228765401610676179017552143456673508843731153778421563678427420231962614966914221730708895624559549472371053291918032714214372731508637152070956697670255453483029895673717172475748795538491317490146977692107902517152801304065358547726729465040945106874749457052598728561327856090328068527021046427159875142744405952598242727428195374578937933292209238125058457261795836950163293185326534116115840617668046400430071599991335316623348175724131648530080201438549773529329399667326071015116081627051056168658580943618568238081100428311435844587291410473423405594074743093459524241970615418537893024060199714482192577410222501736736819622011440720533303558622175487369372633075119484701266517159928525297948832646057678292120661581310121802098739014018784611521365209347188576959199437009030148397550399344376792740174244423677206771952098981861962307501754644066887185851039906277999309674725523559611790694215256694164783777977216300997675032434459256000950519841842843417579163831355519348578629406650568156255585119083336803737907431708704938425876935522038332681538699174012357146819769646156123263830570466256150072644412502484211378502464519234642602852748823318092309072677398252031512831473516556335790324042195339422765487808501566894147502408392783901968546337074215069173894310109556961107866736726743658410338173586465604639051956019489939748263800228005325320238650754740464386725649356039337341893861711714560364314630880045138766812052632982444471879665354443849134866152083596389249170539572795551408974874546664336784969640336655466784394320854836984163304544081437649662102826009987087262721962592912920929958009768780484418233060789373593342222341619771820796508771172019985110195913484824386637627560338466694864843766239434975674591008751082997744417290701117774573620797006300384367606035857145561090450340968569391268921320199329624762031481657039702541600796736550595721327636864414508604442464156988389815212397733495242073734437477341758353368585689648409640717381755872418523068997211588377826739728861469022755299578501324554847133256014836359094055657259386599060638652992643526275825583262928933651354282383171679950173558092325517703696967257888589244582450784755296114531208379678754835349809583910245137974374376707114844256820290328162244304613468765405403880742696817674657525141283077943587129619824920652300795930989771570963671682916576589699421907858747387528886200627941263251533555031588500156715743340704946080431315383445766896541596962571666720492383529762394924634989871168956440187475016073074272794538256056607723937744305724113070703566057886110427923001678276337038857614732016043092910693280356347037256239658660171466084961194286244069900434242105080061082204795819130996045462770087654347151387884427592446789355256178257873557002036104931588141613320592366159552521215016565587601061732276571648702721127882530985502265464967829891108206605396357716383038952067336598574791712980081218481053279734558539116799408233738173645962702160658337548970126781184182773936944644246512279535907630879444720658383569682345350855991996389574392188151564743706757005147113676391512144596142452006703924119339693120840599610631783546240231390596431856551326398785341395932331403438016623476413769545397735704217648622244726661970451480665957247994722437771911914869424490769546734228853595810371439070583019899385600097935214357025020408497751710119323202282059188541599803415265090950949457500744733615728998236720922469463843525655924641133394452983828092332483549886011433899495117219828986417427290032449858879623155913613361931821639078642234520727557576405690212305472203418920290799787477839171744697887902894100994050799509617081655004826375402206241259400219549132956219151562341031901692204032534227874989984867438954328268714118026132793931690656005476901033044322038247732202387966468994882888522558857072657813914759656309232693159777341552713954389306831144658290078139634850214121372700455780620963125443789389096031182198635370560055661368821492126435249121545556178680995230225264950287429431331481909497087022715148244798888658616260017162843447705146884176355582216066187173198088192455377578295672641587949608556427119989096266731715855643491067935602600390624705766417216823928353208546606726812901514301217974334316510680977016578106944874331877479755125900395470635957166394807764382754717617768716601149511958107131471173002656495288840233233267100720793826351388597045912485383812931597118008987373295125474529285609240275552999748610340885290973737090383974631805667472095712338992906698465763057670726998489321148105669109540750370649116154226281273917179345452152934356989491327948742143951026821440560223476697343753680665972484254353429139558369373111070959046155064548488775298229673382762037553817592547008336229317604645826631339341480594306741663369727384000044020581037400639769242584238653541896259801462121371770459674225938292258149396981438613517982347604587431983083482547546279139177828382676049902521058880576104340173091837124393100538641542814334988697804919754790618458891095281221196450712070217760572297097242699157153063754265935020901021055730288665720931989200124466004216726251018623837366397717304506588175274306874198282504280139142957149042955329891738454173649761626668949732896811878186213035481562307287739957984158053010961151009125502480361167752701242534403627151786692109023830388207661074613024049104573584369039132763164199455920726049722814137201493601687141939036887493272767850719685864789095498840416785310259546070694241584942332912844036540553179292681883924060706820787841887181422558237988294749617303537192915574704270160959947573791046240092512944692453583946536383972379852584050812241299071409162041994582613675394961689680198057332909303137120013962236854168217039263749581004758678156821830178740646470599507272849848342783799755818789638978182731684868465617942786700514027593743122138841080001264547627812043021769802539068722149667209385364934046489127134520065722994073624608705581772120406263470815999958435744867761174307297062614588875145151296553873771373605042316390993844002382047658097162885563696123707162199316580782992899730761072124638706967218530700116897302679683389742698679094067357331352518607942900330197230801989766200563782870203546194403455905363827407909210709863886469316281807310981434307957340437031967847948428679961605078512954053366860636145650656685753606575572669656862721497974024653428042373874785546392597748006398072882963753087470726034454867813003167796557987156208967474502700482921397902796461156627603360573057305425369063506839647405862101530336637555234203153351248277036700185973346092081696995430144428190246180858990111709385990952032180013834273119325885633629522952897845925595046091725230899365990371594454298852550097794335633740048855930113660080966483958659393717309878809758969957438790061312896465304710847819589113963600462321282974325430448063678271881978548192820009862234791518454290943825227675674460532195007115943520046304340406828602979699729840543651573989445050639855444437043915242322086332461723447938515222828703386761472982683314618197123528313293200663132264583830631926998139922835171951048648172502784848515258914779745525816376126232243446067532177433032350451950341338393729277303462231463688164583606679683833920860224197682585093898271580564188636529413036282073605435406980158305002196358658081289250533829133474030635437264906739541916247686924319731000592868498763137084813217937767035590993725887533548971881017289731085716626534588627705541912481429001004648808856214395656420156256527730058163122233164297561583586971684948698665284895913604095210236160074669981556018270698817277315354840521789362857070275381609857043226283797973208265778024616782163619530445839682347261626106153937974517274734279153104358090925274479817791542405115462866741134088542393461965995896292969583074902311540036564389124750848166680608870905622678944377679720648267017646014593108345261581481962903952512115539174912008557753495249702877609748968505072876251539123842999709780562948660444546208128180921305492604945862500833299366035795906247652346527016552105912469714261328224021458709751426175300853832514422724144703232003940782119525896142138321302664419122410470886728341523832209389613796596463565369019396693537932364452744768520073979553211630286986066213423327906747068442616183248064911120487939446827628657039851891814861991410027760642023364911145784411144331570284170997534587789017738806488396332664471690877939541698256996023424250850893306367026506047266794545330460981364414313103954306236433373760313366789985407384407931597920705006666057828131356899274823430897156042849002655322770333161375985354619419583116482025348156760254362884172438780186335083689016457949760531714821887552788996601292188310431177293164491632681207350294841753286559351922390882705101771654637072592843606395067089277305981882815565345201895124782133312882868949519517364678928703617510818988121318913476015854424729430596758574238490306159295760127933390308647397369557889391145449395921574878216997350923713021933297970494651152494314433888848308687320934719838916234145739404732265332601002326467301994547505568415628374561844994924267704774828809811786859082031270714776160852928912896582416253420176325956891963502778753489835786251639630525440428953519643641176887703792423136023637342621074217438062834392998009875379669470281524544970596930176267481851809997438162339972723834991556994654628076157195753439506827262901495050127610851206632412124492627227020334567383941772293296089675475697783060914572748597946192409484687415325727166130970292141113216938461572702027802464539110169731394302900388374830958196942790896283732030241325176201020435812301370283077623761946179789455326618033507646977877574207547704708674195578573806381227671793896402935017810052076422948037957473079045867811843903489610429926619990908253141538667689831573469374214977444321175676771668637462268782864392364682148990239663058489196145784109147660484876921862646667739909668911711100807539168348239462320282856692491607536704712281867619575444235244486282697857594397839506762505123666700164934094367023893127132974552407488140471033346097925550423115380606349341487832304688427607933318310660250120660666546555755475507232086760126966703614622025152880737006147412849596244852746099877914088889031916968904739042277258156291648300567689963916229787246249812447386932901674633957710325400506446748901805766951222527874531660134773274230666675788448483154513067745368889977292513867410014854665625109144042535387687495086301663821603113171425409626991574632884636726995280736643792631929994169345776144357286594882008980424175507870834310416420577150999509507464052025392703536319748261824681913235602574521365584768057963471692911212655046341002963593970745889480674729210423356460166010795738921002227208066629453598923913565544103721392339525775712457903520631351672874849066794277438958296365267342009384281702537207607207138336785092331169597420852797365014668769464738060355864731074593681709622643365377484966837725071134855654088876054747220901896965237843932019625161418786474388879330319158149948854285125364012139993899527821416409044353501556645086356766750203527830351158877171460074906969684726105896138625960226257846704695639571018349873313805568151063630136443202026898764279640327273429324901207839775150346470929172168915116929556218617114021088411657505558841471310498057827095788744422362157257384593241237699776846794764977187282487776469268937378156897596724825066400053500253291784431025061364128553649681384261551961937809635769337517643271885424111891891344369182007755107555739125541818551830117988869108483197467202516938689075100808891077813598764117327792950411104482657870913560506119734945710744477344274722518182887544714734777058923180864578138233092934196035120569796023671642895800429989867515943118676605489448079328475077136438027647407489469048088023083852729801532359117654477440958265866883726840909049688828359998251415212044843796460918497213799672733096933988611901622896815301311536009688957476278785411452211552911171498109392687320891737803489275880829175796117459043885649398007760232293139502792360572833514848594900374229201424612379672261446902507424237217852924434209765203286847573852509264138323376047112358321475971691778434032968408859299328984509351904055076275711561298354314145256703578170967243794011334466575734804308599843550361057187487092261355761285665803504816544992026940138634572550974252261203977277431044849054794121130880450754390768296199868877830294160594177668667477033432284117232827583756020464066632323485390964100591177196455627715411807989658858348478878622955358640779773901631411349594747384353341391748233693382097894201079483558050732783780218368880225253137545075727134783391294498268329699020722727844184230005502393717537310607588694869229223545972339143241607811994214216871472997192782938424750772734003221231254750677164806368802199238168144165624876852596435635430093653576739638611859011234521626835779955596549451155675692178908941082529846782130761446480065204763445437336783423555773895236173107070631341461537444749074093579071958833743961348249513274280145141880262215051559779336415226531805934336134288503996542791504613501829620219944150937263067907204889523439275707974042375200147062475850277538238583719565596920906883141190037882734535032527323786119535665361720573463561895980301597504731451223496871971260183242486862721949362419985400708485298458428922077817281499100424647234474356511589644581587416396043026860121629721173515997270075838192039916934215194968346048069553335859855299179962443185211050098812696587141531152113029665819828586028527607421540221458070446590541600293808747350566869014130137753398449699980020117187451518463417070787343798530254289044053892993075992192614242565612420380291607204307889728126472447867178798842262139199974054996999976912875069450402084345842522159922946308746661782182625828754456198408560911265429018231392304246447087016321410991832797939551339380717326104581039603215567878248399007310579210287101427008885136162928293274605311596825290553195957231335485742664020559992490569100476268342710900302652582258158872468271066264899849052344409183668525677706263699815549158029186755318629094025782106169353602384781177709482709062425882299267005281977052114337424049456608089647282017328699395177747316266800005029772109472581745179598319832150360376955346726500567401994575077713488696335106664931965460716041303694859796126744948660815873034348340606511615138161450576264630623079878768745518216253973160472077269081502571145084952071688335099239723808439443757854338043563096644366373023803590201571683155819368613114001420291229993424536284554761255830585893220269427390804699447112504454731662480907482081452904302750574940002737188156227148919020157503147524888559659573715677482088935216678380057112650520507134377918014883080463651577327072184434607597367324494671163480117102841948974139457156564326748216208749999786825390182148390699400918952905231478426784092948746056957758056021522762215998049835719649901390877737480468808784055130017968574342409455055947701743738840079924895849797639959920613434091049177303845343410839818176777164480070676993031834711104769392841372038481437190154195503492458495329721840868338800702417380122246602649131908952740449299792992753898567716140152541840306035382088203468485589858580436189450784454247744595572146781247055446304120909743031993903739921897604148877277960336971035116223001601412119215482774862216459207563076888806327457965250760515754520775650939720814896212640287797475119206907193192576037914359375811533483046422477479776782446617808284114777896740676771363768496651576778881124022590181646624807925432809725284074543641252228222265891942575241375986264788400213884841994159874702377442228346474182122281181486725453363303212583550114018828685487689652960727411315956051457338745026470935973081186791326309482224187306103091479375397893482995737357929200782901121510251803244550064519932634129789357657267456646538182886449000887869373342387762836269005394996568586034551947877064560435584749948192040754944207016932188612696048098731728532692284925662215508219649488227957779763066299037653293142016287435715727381025206319078641473405311848562013911539609823978888630555089093971458527469386115942759056601994602961459973398539623639036810507769495307096775055326552678781443932769794843788773687042372174755941113660308624717656393207285282160547042138602320361668802036092927295281260834219779151858973310532789584301751763316464633335072230049489173547412238209125379567968737553699448227503708863492100844722059334742738604635087988454521857697559027302674799165925549036371803115410712241022125893571417625845648114377875398427757391868295825458694314440975792630909219771867863343225942092295616491122132527917519636848317670159602345630112179986657361566055499590801321854164742859994877933053752963428153088723387916381202424259441186595304261247372920035450655496512516401238271168272668758505070631035232327411023175545545149121110695202017114457216889259418305204874592705619924496397043417940866510511775848305225546104149268748837780841468952098212348160653644705359389329823465882368661567833236985862746422617377124612554055190499615910655569030640256982298249015837058963040622600430088508953648332230827940358193330953181712664783710032847548926934735194814107847080847697119603657585116778811081909831301357062586422127475741427394262664749969338396719164024716013928184900813959221928363562695862390304301200805033653184030686920746289650489774326177660579295741637891472984363102838073527058269849635138080879946530303242387050950100988623793903757875762976074941231577641174593950298532393360928527543503579308850176282497624053647741450323355942008130624730700329643245150639562628663540750182699630515816435093197870646397374115065956851285143118080637713711302560918760132554001127071362047598852023937832627608759238284136253235354016942453498605044895248762346159779751199412236473894154995821924793609340247067745280611070941819582702381830259700599697655239326629397270381694580043690798236376984972836348971404298480042166242777986598090395486074304084980835932536978597011967873184828749875990008977336024540468157991014717192194078091425590984592765097603027333232081877612866984905378242449872813703270073836223211290947144114350658900646892661790928635824228227336364454384750692964359815512573610911902667694658807160101214478835420563236351750403983469498595463873403513745812149366347137667610924138081810997790184522163875801041204471772835657775448471622121364012789045139727328781549370744770625226165381376456871431456839882329543723019305368058800399118453207431740032710808985813289805222106997365270154297258347537310576157288788971278681743443495255160217523649346052586006536650862389846573665397349739346957611612576060762740038330109422404514369801412944365988035574963067216984564353142373942512993093742698118745662995116854660771825849891536425723009249379963356268969511441358785703099421743634472246827068991472875867989334673392745606201289386578591229161877916716982800358640110874539711264583090883628904216362718477926062317055875012338155641706781365991901327642408887116197664063460487695972884998551506798067604777770393726590049847707209190370885896434016625180519624296075642957497650768223099261860535713801722710644413553802700411109495931981561464061018939170457857390047975474353402282880033742997070335387682794358671768108485834256621473989621385210396242232570024631257426071754617147326269708784855509660899180421028187566893785865166358051077151960533156552857162107299516257127397608335320301957027212962759630582878782489403429612620293172316565982336893470186112274402039809281833580102506220926855944056124716552243148306340052413431851087830242081903816414593462309900910323572553101126378095982437349312233753769361719719448692203263933212446589613524663285688937545339543897607039700802063583639250193166587503606069178787396340335983891070567998049244821443670227059603495658688120151363381359589364615179133492928108101491673406015214024188011264393295481964716720545722062125014942750023050512367011969537290411443608013596970027223370332857030288982252695826354930985916722782487211370239528333505928806123640832010701162556118928327008742456722310349848700170090264777264934203354812337889265018245890306724187176456530366965079640695239470709730251669576902140419294274679628604781612099298605233340809509185073723127249817044520481989956425876507127302677893476758818596493327699849916808833016873016318190155005912920978686535073270252179936181680909181337852390592998098046122598960295090706433119701936157847251631148076142196233869101712547823261644284450777978683863767347152677928905686507394976830792790203599964500793518332197448554047546147975167979615604460627653303301354314752129931524257472270078972335751705306177326863460377152126496942985940948891833688422316700208903496709380333796618863698101666843934639891263781653652032345482033898229236075005397563612093733766620096249039607324261315750411314534326693988850131468911949139718081057614265986955044700814288914755558240307292933665789359747363644680435363860611022288473087783356365402514446574406556935760254439441721148139407104462235787828944168491065292358312279341999132425191338409598367018426088505520530943658796746039523518755471520117932118185555236589524100147549944356406683032884233848692427519850686981705345585572065516618265135449217275961710510008949555802518489874640331093721779802016344415628499072446223294876905081586325092203336712350634351279896982934117823585936190073157840955779465667700855711974775871718375104051172654576273593211353327116334356287388913384077907409769677956994775681044940088906003009547677594862166758189631425564760985871692551173211710411585657961343563528835068515797369063583331764713844403340838650950415802652262218766048814819096665481044671570416756529474765787901761985077499315885314396998661257055421730143050798901154968132010334257428534453221343454612472890449097196259576240706668387770858899080952741046631540669223318526491588535818157273318176988777985559238144609244951323813967989569574331162045038008723148823665275518787575022476881235356633847098248981514992825956770996241057318070063226119278739306369448937075052769863473621187091242547018797427114362507816282807369608550123942620524530638303724508205587713514672191549514689441827021961074562343571952367512225904264772132938888261080480733940447001545861601543970469323034638530960683246538601995640940472546087099047488029977298712805017414986861754450005164144336234800799886614661381116832530740187837826830601987849956718679228868292556297788232286756176636166213049760645867161739099426023050573073077577549941345430077069427566476733343197120831453577926018329489549923811480251811310173561073227713241729707456028247416111140757132581429357987788487682193753195671496378316491231911945556372481304137479911581736181431508261472660250985215187108462440964235726503094683050131024135386198040646610745394568699998623104575436586304894259617245759564297516961803371205994206944477275124712604929366426657954574704684994362713194770431371166668377607606616825709862522443314565912543159440600215102361235978004149777753392162929146523560250090838325671183313825835986579825609731891350369597711634674741427515159349303614197680208416688368236675898635849975900699114001512029914264728053218989901147397837413477351989468253533704854647965488405085572222664273285646309857256000091214423275403547183087497348364124005608872602365226851144601216546438907547260436798183439083402689841549443721650228610205729668650304634688804523500273433360537192392876131926963455683346443393030227591942428808769551588319283069647638671870964942475223680225338419605048173687434004175631566005862443080820536004537184311578189007244081484720512586874819051334073490749897364896548385351554705960933466052753425930185186392030418670294893796127811086559922050906521554303118007538239844741244282722825609322263330103489456182619546960746873022106691360207223818748584915387107638839582007208118087929846657718772570333934568195487635551040819574207788380625676167181657643093032725305370251726230598662141333425022248374349940404425141048832253892298198906477445592885266915613825989769729607361624438834050642617599881803726604720061543631268028195422000429754879187484613340889063990376757224325572481732801991734166901687115302659657312049975974624381547739555005321601578768313932232694453632538813356774490438395705712105184490936592215155173978892135065988957906046410590832997516714575881037474408036484832895143569131638443452750273646725423169155897343789197669569193768340451442680679512257501965831415339027032844209167483735834302938000724649409959098588431674361827146580446933222492908305429044319645963575054256864071262184870052867119002773910885379974766615751027687519358318340271500069808131480793880334441692513962340812207318533055345976591341384781286307462991449537128692726278846263948237679460497763989966028793061553409376359519358494230694448082599821509241797993010108713197757368286789933779456749318674781811902325562810613035171364508153465818638716875630322861159937977410082893047813843532530259372858480700183582565742217237341596842610738865273382587912532241304895404582409081995811149471724444578431855439254065432084476941722024769346037791522687021386080969486808683474165302647467797949401144403340629075049195122778867422551641799993546673744882005789249390433816652039945254048382523025460351279284464730108345601832143465011065777450214031328613073521739793085893223687154776661751836769365441795108728482348305444639333455285579802297325676510459537793179566745967937322243917693866468922431305792681191641151294593332906241420204314668886166772017096587807821596644795781574420245776971854698581561216499891474207876724324269353601982411989378393605960861794909957372200680782750337549298382393080476450037358952475290700959178267554495053539659049259741069881879404765817300801320881184402576550255385098222251119736625746066782288674021485152956054523870481238749382001180748303668642035782685847994130919932864200762630354215555497266019574063476667285426640677946976948164008431461166529131162334893469592407727704626951616837379553478698712483585735745524501381641775121331038339269005127889683790257570355363236197412341950897565773885543113175942427125223501666713927197065405469491413768858427180253556877342340683604448021098791100348874428505882668908027706897779179974414496913994136780900663269191540487865446563823950203296655853894134915420194799815981919610168869045370680081365779619419558015083305142469930933376899845119761309303861604119733010944226196415686908046109969168780632437382259010335142798852511585184343687822642131793417768071892612859270944507151951754740598820080667544896149542245794367441633784398578563185723336343974231580556050022646614119125489683270822416596647262078043442474779729224141874831919506426362851418104118319524188675581286982649715679406673990758285409660742688384073778109129403325903034305093158071351157672378434197582311901675700103326046653947413379547848446854688807938393267275829119252188251182872207590815253258512304495498357174696871280043067862322437989830084422684723450445882438039162271416654859234050635225459662143353933626862373741050258051434375044961188325861953541699620816489292504954302077323953223734394910979163134263263647037471094902095907344022767176334195623271450463876863241078424196596166482137543382474036661057991155753600100998824165833320248791990167359814764123314468677865948348012094840289728051805930420542949862763121518585861395532718953617606760253563848292524348777090551679559056031697419833365906450374097919777078760780078570845284764775433167210550602242228013849749560644204266777870085741848967763203663896681284106508741377825611021890277923765939172195581529182743889090366021273855170033153965505361152446328835097584102441267447269301756156873923351184425777473507860253210162634034529113604489714008710440036893585165310320731282527810777075244145166527336543185902460020625291899383140603591334215896697791742834372394632397254761260574771139113579502214126562732374412105575050545882414697900811848573506494177584905361435495170165172293418871260787126598193396643228945823484563121251699675020524744936835416372500767046068577237723337922816943016900903609162919329064859450174125465224347425297356453819416332764520011173054868733585177424819331811467393216011732086968374769616077863956071462311704196774256953953756526344577012409388956545782827844340015613082089602608722911416787629890349977077787920966856362733901278814054821710857609491850828159617924164559544854551131406995595350040006461047615219525322575093183989367957571739078501601660410142569117001015363405474585100080680940122900779671529547789564707884992663693001008473960374186816003174338537255365588808812010934798476250452977869173282178332864427570793063068796354022038637030175787857575087872888964364637897314479719417033407549892275531397892745180030505173010344581868099172310198356940721578826533098874988177149149940175916883160511998504561493127165148902880144044128800271945050076850377913052309741510217555916622735031170219581722621940923337481204454395404851415760804483479525362768390133102150769943112323042788814406235668961373111268852941890208610160918892202707110029112484862866950372350289758543132043938526968319374701716271686110896488912738033325044175173566604225600187023405191638158961843921195044437263699659632248025879878296837285715962662138842785518855511653033011070653998058031673913319645780958443242501439742125490015904243324910297342227484270915723318536678561879100355265788587809238129037613285135920120378137940393986748168627455754135861725805436996476123956190084567440729447179602522367295342249239588106596274451781625134425052771622882713865976608455855353834113893986351895301763732120182592790722401454494269843657693028363091617648885048423585957668997792379258999079869583901806091153462511880344167744978995656174629365308149066245469687259621494002821026078208947961927098736731700782274490880547978359780803955458177414031756624744433480004949791268654683985807014054111193979180738910382843273917853796284362649087174565399142314257346754592354941460653573338240506209244324446989952689667292743158111942008709145758797248876700454743622488442170121705574220034387577507757967521647828838148353260185075596625272899795639338608116145052000481119027014575540545673657019356691829942578919039147791433312621049183790576303162748269647590364095364981215105117096862982209522023307814481289373289503584506875163886808769270211701521734626026001738037689077501403125549854913620954142885174996309717308543435346169372587461626347265317658604762128868614363578643976018573014438624153361257722087356421359232700646378478441238066692417476154619934968742376087713673924979919191731590651461890361975825011588110336901745485988542562247038015495295636872034649206994237069236185966902170637624274633174113491068355278082935150188429663658446684822507273698691728768223474072066675059662592936492083744239184021592299244296705612494645202703623086865935637693316437538694057107363782774630441132270053461703298437806589239888370924861853836913551925621253737296494388455378900610799549735893165159036854995036691653198848144581190418250208920000593793570116243749208027604481333378957929608310129420643064585433584262704429237776292746673374106363177796380327433759547075745460221905684864689539725357371689740068377427172283496441907019637379909525927213057960206415902083461072790552028705926067285341172106757016468766782092048737355461696657409404591170617285889419106222105956669932820812542275638694099312858574598680932074647319174193441478893575492646699478273387424175972175680100670315463320437350471457995882415884699073026074288651429861014784405631840365627725789816911380219627185430006207438059538916868682677861191131689568402356282770208900852327756892643191709654973473280212351605111685250244253056582171930736493161186276032750494499140357094426604137699593351555272387316474870417301155438847020964656406060219809545537486850597981948171307195986351929925531787117369193982494320767793212718400998027496765321659944587112699182868027331304361534220008905004224629926431882607086920064534392976617186516736915378436680737701427892864289626016409401683104655708578912839513275538414169640096997090813498814214002580237468404037121670116787583149385375513749072001623551926172354135905691752982875797471358894183564569494182044453409917894959816998662105169144626872040081028227942546474700899124432201269035712332707601269108506341411410724454400971647897522165489776413154816817664032615511567564949080024380242235529275230542307968495767012270633077893870330335595265658391838674741661056578237364655732337445857416753866298133254500424844451541499171555806385806141271020411664053356764518294800367183253823064262291832830556200024798937043621665194917190124724432558414792416249157674625816760658880839757258766784775239263216196124757279525188918697027140383119684218628206152513199262620537440456665289456022353495613852888832707420530864675203488591271489206732175357090969201217346648124432648930230149052636941512505748605448599187224387771081568247027955660279042880778501413918037503905778389409425340898184775088495455321062667729788951665080036778278157707662239014973831317186530807423091035747331238908422489888241977690615355541510814800950901210267809316856451971443928455727415589766053853635398552553256088613709057680578951402564456249185793452301210377489026754854901117125896617542289732072654061555828581381583443519796236188232723465414983804470007419785309963252587999486747679667927185250165580393724402018353336450290615112162578086496089422906683100453866232865215316987212541748901463866518741627593203086342825522677019819347869800659446836493323431574723311222479678835753437255789660574535236997321211918973486458065249884414314607116923602395905351616190075735924414601545974384237098562403696377340175819177514784233974437341397041003977303166976532020846371036175086154684927414461745062546568494335067914866227635559134634236403805482054417040631829110870836981685602415204205778706142234452384610630533700028367718613939763469444706874922674908541325943817323792631954126404464322591961181274700769479922733388219331555313975923813187733970255879200793115711605497165353736184777039500481143450389353412921943677702264549519434927219039985336068321853487578958417827755698955143710635628066565846487010714293532006337162228049376917913871735468120158317415879991167214677995580307117325562595789262171603076722154999007898641506259026265165148966127922970998472277470478299463040721433893507522461749803705395729674909602808999375915907429769534560316664331048625211158601009262155071836472010737332792204648398967473545236535405072095321785983286301045876044305184215760547244862856822366546559268251711567232868334321386963269210519959462795131850032935854303641561161109368151680542997166420726554536226611442390446322155145143435875297136233035644108860441506817737306873945934383543095420732924977669953810520538577998697322887556754570871486897936356585488297486036429574414826550755899127115332267336036289917584750835649597655385870168105638697389219194298571225578199640667820964242392044242603018527220237220939257645291642886402980227093792087453926166919180372784420973940946360899557738295295068302060376912220667990679336094760252815779168067190606650740230215523025340564679964717237365721219961208195675230246000122996254819457021327382426197204503169813964460219232118019082148573548149822967127804425722374548442006703630180319147542866194051433255534306583920956554646036221951277826306366984153496357040879341965401066341185610889752596546236042067609384853160992210143402483392741364294804560159121810294790479621108010165263895697878599656904164115445957207477989021548393419841998709214059629016683845965245549649050383978420047047914089472818624162778400410657286762958596328944178220129088914951321882803419848081319329318571483645967647505086861223610672221978563329316904809947683463796785192611213285826616450803507483257567025016781327449011122113069582579362897043278117540579725900061727326517374056351533412210322451019536160134822870943895851453905446758241771937148821714390514555328177212331721602488900289695033109061803890514834149568336429245332507508383930698649027596566060542644909724534070610977245481178476096843608253675796184765201596958632014171259837420746886861169535643237497703035181754798180049336935929354515275768096625229301830472360365503842991569773244128944522039935034505687896813142761553578440048950578293614665682020133579424451920402363978582837899997404510449772233514541069259911397903942586849975957175301692901334888227804716797855752432676230218422135118731035850418096661355843801903437774457118293211730133004670228743048557374719507127777662356783808376967683578023535105958067542474785506557443843102183168034854470065474427850317577881101583905470356480824803176444926714451059002173922454528786768716960093321582229280368094381493261090377115027859654228388183993028672920252019096724750754178098647068908876293948690111036848558998528883535143433610437032193552038989456415555617442017603464076386044458205275160914786188235362432163121173606941138335668480628434347086295317487753561494446972931388202544912741885679809443722483624129241789632761045675335975448361071866569949191437915049959297749950338673747043174333194087934870323165468404200916064080843840982597156589679981768022844099263249340509891542983043682921817218943570301053958512842266218176280296849341300126182871731970167735368165197447937180636286151207254447395390633538697276716321094491041766174910988356363085500388630838762272954474536309274522930630535546593687237909476923508924284380668363043794532034349011851933193991296638736560257461443024985799883045588306856297893543695669824855082344310768248166753127396096140213673720265870248551271185396155667682559516419168665348893498774391555018931948227003694151617523247753249292832826110038786077891788891594602975497582147997805207161133595805662921257100767804419317359614437549661885133346662519598026516420687476774571345351074571565616042712774360555739690297363503724036847435450148628545500361067458609264910531039915066594304570655023027610169070645409292799023160937343292233195580347523489187181453612140251724903066554529616870809876351690374466835599373632348744906247790125708844524152879477993663290372538009161803144024282536887498777202205334272121109647074400275965790292759176131704443915904036516299069279171904094389544043754699346621840349421303861567452423927142073756744542969588874995659315883516238412758416666893889220844054986832940950025292866951121570941935518787093122328082624260762631519290826013820153429078030247371157214787295046813985798392241820999509696029736993518792426185931159709763650388022498048291384205344593764724276796586484800022425050361367515265414264532593077468115572373984741491677100405567350791069670385362387573565122115678060151692014899089679782627743087291246970749624288688425182978154426937191235856330431187457778650946525616544653240291036191466099780344748774779720331357402307877534158862760427541216401662646079002276544290461754823495513726746920736415510467075902000504940142163924336432011585092172304889046029294527461311810329432770780961097056701409706257914678025070109608934209284950183954648900723342643228755021602413988943203629859791340249046667803431224318019893396806234042254425629638223913019326685590079665991738757022604713373823808837842800364680420008045993437638441107183200671186894018824603269669858721783890427195880176896269477722536386788292095713419556798364206955116314065230393804691382347002815870229415405054773034331973583252401956437431106650096651422145225408196263786190987775872780150491513775744840650821381896935558847983308521168550932412516433549963254983946292918905895332859949713360387088744781961254965357504623273754456089006292065945694735461118355149981285007798545208950809314412321918385294425344144285295421180156270449661149900361968991662929401117378978457745701686659592912504513504468492082783754995030099135521453938755157356470460371827289510312098791642391192987710715660688014843306963581432461934187120264091448548038963746845779897932049839275723520523642853404404656555306499517537676755282751693211135683785873216470774260737458366258397562878230778223225622350740544937288311103479491923136770915553880726528541797852038637179810642099687106185476690552047046300491796980106006633082116643373026602624107081668713870841824566958291325086002881831356086679004983048487292777938232223860017805043758057589218748418945181751442578005967679684292927576190868880838199255571975321136649970937474312024413451557506757623058613957106103502432978111291404719362635959304647001408567641073782897842126928283954111641136646844110668727864467623850559686550556691568573691011516112651756638409698729626847738175394019509903211650343269064522642622610232262131075082778810788338645311606907440100855460561957512516482974785379020111384977778033897137353674772607094291328057122320753175563185329556546014264286209499900206545805134118264970644126908438647499616739016621310651661437530571842220695908431184781240150498637188335583475567519056978151806179590025402860578722274933645413625543339842789282750779851438281389299230317031651928398682458273172419320411951236871052813773216188327458316984322221406089678828165946352427603342832125462201035176914342533163277954614295631106205301436527968021095481140129371522654831993736072912801312452970529131848240327937399684421507294132848105001734654981990562228566526107941494012482849965886660381108359247894161734533890525584512705028683941599317178622457288152830879295475905900776928488060362311750314254860317175932870110169163923030248402843344037369206092804411135217026925313528098279819577472290674375409164900739774734384902669224943451448606697295059273242704078633467798116519129540308825960481733306996925817805121887049007964639701978388528606635459972219016785590796336501412762496803036928385640798473675678489926748392122155310265106357973058914207692993393341641342632513737469722809907295646850938835550024257688347368888489672187955846959335396045377593649152229619987616786735652232578746549612384667595880308303090005160510739452831905646708671493592880379637781296157178672241496947139802336849807366521931952945451343425870760678916287343024139051518161697990947376124075510699567836939182370273530248338047284504761956778526037911284473726424403959604617570724032830215020695161091164140834738127763840677147597516587561312399906659888772757275160572480622446805505035012056823019273465635377811933907122540147689095401916152446226648041977422014262435328167341644393922380717283365807012635553503340774877363868789069668691973153755329870721339459294736582476027987459460858901974352370517482339481994886673442895058439548227817018619690845307852832211109796087718594506901377690287724922850911690559836574193212091803345957701666854248980458282808243749997301385388369673012125442465518018080784592505456830278901065637844326755815062985120737395064110556880967328374197633840749351310140930232395697676138021984602713976054254065186786796765208947852984885990315744557049992420872450401187187087579246613152883363471144035072968963010280852917493507776059817694568452995035690232708022039217719545260130918022535490643177759875073796840759711212171652705584082749460838066487607719147864467111476761166896648579718294958377546656603408782330870564023641692576396796157423046196261064630201825140409832078512535872854985132249826957593654317716571807514364650502383679344449105470864373527730995106295047510010451136880235536401266853443208622484902395867055075717250095463328133574926022226767947889689018952711830138867061435905111307600596165166063853264543472211231220661803437142792118847748078548703957937216498245269828721867965858626549472893072422964838420809064723932862741387204374236706855508602464920122077629069713107954950772970232405751436283094482701032465938767192180050413564882419238144823799232446891545545812467327466108575056358768189075833064449180042752033653577115933217393360726583065194057661518129704395186417337202746585239740629267131647771058617837454777069860351750931454872888948622137997682796320909196881646760920901099519932278816525062902472301680940073447968571810910842752790094618297493127893217846908151461777529285990173688290986894123584324278116392070446919903454820290797562236330753786809005066910873902351248904428720822005323204662455651491549298581019807855861083725341006728334275498893063294862198121821530684253021291082745740145676330781792913681795320123193997709887957972886534448205414500303152850056786905084269411951539331389693614094523594928099158240624523792557729345798182197630609976439660367750779466464184338262164991855835348967579376345636918040531657636795508387210144173490695347998443011774959620530452707972109094931309665211787692421491722730109038777552710308239905691070399700868027341038804118676376202553187127332960762868270767878704617654338722907110797709955185666298844127806552517856688942922329489408990644793964352143232369375443266723263495609396891669750148922038681918952585008069041446395208260636662308057557074584718404668518197243585709296868705995386375271450755805271283983319371047111268622674029531676279184355509254132946614262670482017661829016185258829487889605065635811009839508615998929197001187575737177934698055295554670213750976563918770982240734021784802224254798020671184019592003255343393205626017896406443950036348141929790053670968088701567946878931434670467866652396419692575077904055694349969235878437139069432071400098074325451852080801016644221479190786942912922677625980946417068139067981814237837751166124110169034914517999200000203229450701277852747496686286441122390037737438401202915524544818609446036452488884370859459487452753943105167330868294094550872609980798131492912253255724362479912017752043709863326274268944957506870062848918181714309671599123794122657313221964129601937272319595641889322456029742723180522230203261460771687799621054750307569160912909929154637858892790820850505575254764162721016876969785630813083017685391982435583607491536893550074186917103620219799825272923831286591042303701983523826354030181109565421480610738328953000649029146001853371839313984379785501703340185383486931492464026526619854476765172319303231521628594744142174423469063316853770425989149037434799144861446328575300369594720849837695509608738096934207152612101188624760405354663388345741612616356667675436791202698902424128760408997378105859590985553970989243939659706212184186543112732100270667869309678535176759426678467570661238784322839344627181431097527497211589465912467415803058004234880467464882292767464459966860942086963539830601205668629249550482186993434329281709484443207343896059636135999706399472590903115301783756369771124851817607514058236329592759017971238388891027810008151256002494366117493167010782431597360968567641550377964098619607123019441625435795305896085560702161008731852847072509343655111291850783187580882916991050722806502593383370238463406821491052883549787247463500915932334522963228922361810953174907774346083508660878643065586109681391740485026154162429843912365506741384791355309874492643427954547973711359895732495072652252379889904415254578725493579457577078495456078516168075168036219780375945962503492748081239105865174578161540741267252119388529037671724096986816543137163981181717419975716326542360263681785365074693817961744648464224896735286695733163222553393212579353370208176515508290786646160170253334297587805368156352000860420315680671149130421263858650506257827627283354089837495265557329064388049564224039016795976953106607567546278605903875688396882983748940100626664930204699109419923235227764447042347330131026477537064925983532569942888057378963883213816229305811168067820919322244603701403153934848037453510496003994123335356409397918429533785420659075945337523197788235233295698886750011068580884338368692353711048736997221423842364778226819121364959662609438787507328751232627241367506985748964194100692908714362794687749147147411372381537513881827145856719962598201928973428214295967309724931498302710584085345152950454208728326136022085415599509547578070820416463219304178623103902062724259795499553145520020850684262036813391100170830410421313971708825892222022012324951437241804298000906088607474324980084174448969360707846502471980795270750200570642775972887459923769384403796838953575503853382030260666956141141374125959030946884511054281174945375414291794103639011547235419214599492587908635018573284244789472517338097747827070962364371519995490257662181706017471173970079246710811869784480535396363601198870115754278060477203761668414708756949408678139105694194864223416468964324502229934146774249463334592813886461112230755075150919859104288379742295572570053185793975246720510394639318461716150482733105516122660614793886664008092771955354365332949758334527978001418090848909716691459667461450031102371403600873202558278610440678492826751208264475381203345880500137481639881525850990820909889856670372810470549735203824358309194586628545598544192463376477231759119984650767527484575849498843707328554284959020951676597687061104787723430066341630318706890590087664536605287054912927197021016367801500722763207645444585368971044991052733709095432162510157979013741140830284042642665988052012385239392980804825560282029927786127148224729176590675154288518909425658361647832276681162114392839834555936695493343090918222504341184318215933375016093854909315925055402532811283415125648770745689477450127406945389510613273879823098296244282041477890847756990651988306014638269252454395171521480975529466506777389689832180889067793416950406682206644466230283861141051459445953298628539948904767081045688481745645087342548841667462423828156871083448359257973284857080419177083295850978423207803882006023947126243081983046757440615810544679325273695136708528833940731844257557632324948305753264703083316732240743269114865469396280053789045625918646194501536119130567290932741629729710102477810753288491235504555191399280942012108144865440460392261729851281769513751795573724597195741512821217358661327820539921318888468222765121145675861022376109327573499359690121839020549976028638624994005200161987137745088849420136601644256481900175885834472058225190153775078908177126182337698634854592568104378171332749623955195458889024947885932545161669525474867415433598914960712666496900708904011707691295754474315002113513198872139187073795110606045198493105510846587465762432062267310070585557973670308875862774656730500104073440958015926310601661257563783883170323698748444156092918140841207127680210930444528116868439753754257459179328127373340855308260458854304255303583393994580503511770178402360729879582291043210347201194072469996095356479207435347320081100667905826217972834593826545806575084662867634610567804702745173973560839372076122366172872173302600786665265793556696330646921976880271137415398095065708494560301029262907712744014550823241736421210115157751513330921980137378796225767485817718543021595568800706288982238866258406297115515929277783508604827894440694789435934977322359294593037028205973671332180066176333173216760513287819039962975320536374406597228476969310934631455065085183533425635004620967625611959358802738513827674487289319860196198127455394395049859452175168574512278673138788819507063725632562968390221076868885477486661722349872047531894997589080169130925836696920493559938187764850832161371738575707646986100024667480771694123792715097024427134484861663469369242231296142698967763264190543177875752365573724414705178346560222110621875070271113676371109525883228973035724548040048995147891245895965471909921856573895522191484263227584752035228013177241547604200323135066282818370101428779098818926706893219732977851117521991816145401353852744212572108476800114445157243146192976814375000901761931858722904715155702838317793370900070650675879851489235566144164366587504673869501750538418715713412290799854611423856807365770596914113652590801620481533361957850748988141315343448832136016088550296537445318217443370172048064038991711333903510061314241238490489624333640348920031171176298252563945973838262502101249778711083677679613106874934673591137439536696265968898740912241616033354839893109845542944304983999043532212169282463412451544028806908338153255673419574835345982542969888537884250098247819481969586594086250880462015612790027786461758881949873389268959673298409160095850804362301955401570377874907925667171570017820582095264263977849568830679683463876013922778282616198318238652742169351714101174989492121671341755933032910088340698109345159731721726414772206278193110160738031826784376833998931462545917055398106213425780472450615872028112611742303036733640164138400229310158799200609189777201431541013277966388588969348476386410042431568865404730849218467251963515439538588743948811615515137177735211703571378948901808568431614359284454567543369939760872396374993292780452658668509084820414308787306113062059891923620248143068017148492652990273245080335869734658691020669187937982409826055968492614016822558177183251832326430298519688411289900326103155067133585353730055363470339304416742639028083419743609237047568567058101201899570822238002412425637600676840711450637064063450543619243270802402524585827514009491006448677254665571219156325972234456282777312171805269290046722636041799234443763146882783181985173345378893268250034806308624772717118995112063679122521620976564184178005307723292007370865357921982830216012598526640922922281321730137362484802580441448517173110488515777231772213820262837527193338295175069431327495976102528571881551746426568202747158168788926893123754756149054760814424356127861187696345782004383690735212402516170859416771023974212565445421210622527441744794003974674123356196349323966122035446356529487790666713045790724629949326052918468761303779807303361740232740244546334251306828368215807080971274397676831038318525891626503815208694248047220376553701016208761436420369065871549874060438901124171787275355449810763036352732917649486706198688297798349967495939115366035189841947065348696405415427114473552990786346811277276270663366982357407340913908043994070035296561985725904932390544489119581113561687769476691754705193501526424684466580293449104416860429586930123505883951420429588891425588468999662534876651064996419442918562396735965452311329427554100654930499017974305638317168648530026587572695146935469075692739210938436997284593855698049551739051768790123604102752621380675705185478624776246055258260597773055106531931003528026363452895569495394620017442583596605280840288824654298987928345139723282344948031716028347313863149734506105415766985863385702009133065981647234213236029357679030139735925590303150298185563297065191707213227414315955770991233308868655160279885901622099638197151827757954672528036450827735352558070646696891970274308113913866884489951410194695609737883980635097308956258039049829759737278172359707852518139473956218687575436095218155866988938780371172774978335604427336621376918703359753303315959700817912319142318266513058898147524938365539541651433983318658284240211430590964982414381786918530013038002456825508467587924199462073603910452292769697276193956237485562441179405408763029224683788303803647445685301574217949865426880342132686201367291736415419192578059733461649489903210653071614451775811014599647815418931410983939020066265012182505046010520471967711733396098411265831089395786396173697919160836662824030886053561201432869638067960581756960534812390626637179014418986900948429954438788557060595677022016821158384732629181606443563344606893194950839614667336097098809582704902877582343179243205147528992451217256622944758932179932750347090834869363462253426648668661409313352992113249133611372755451606649939014884464858972906054206700982689857270333462171215000621405356985662570898795030549997085758462864218492241553089856451782064778885588397401120638540486079145327142335016665463582596087207145832886149995962935482412325313955467696696893960102626770303843439870731962406089715019686975349598784892038039888028159408283693352030815825519943164289908878920995918049062721634776207131892651442806758217898760800617480225074327170235691395035181274244653110739387312538031997925628707951275182007793661249701544932106593910241854882618848811377695071541917699279304727927194245310606962359912654051955584570262947956035152612354497582758837112656554727107812485780920082214795089207344631740683034213587692194614439103079775277320316218106538895759611318756173978225305571806997413666980060311760107378715762096690454476437981758929907336528231663790600405524446715748088381957925987442720664082563581436125999637995575858525296189944794081594012722320278552976752684623305167111004733341233640385185454552200671521665470817209732638441099870248848949575384904472155946830554250135136429742505283185022213682687159531893694742809988534577477326936926440862530427930247183575176197512283024851610264806000236163070301065423438727979692045102585683123369337643782113052137148306252287816624984875337892950523873560999899771168793882428825990313613493854534767906497949172188664732301203981266954189198137047212524019856956980597402238753739167380005607526765647622102655312529781386070070131429478159112773150348002447331665305912785685527233261463550903133739467141128150763208888159897064356403357798921819915114669229115253935195976965290852670979649436722688452681811544147226988872257199406840959516910108525975365137230310099069712009516654949081106261296054257523556969954689419982899205393562899803277911304929987888099826329390109419247030894618374845756868708873021809831361629363376990616678320663573983328766425631701622011417762578882341729709879630971723341660298152130256017780009124464685547176114266092093101997858294214700996329027251292998347152152027092111478206917510655732921637060242767581754193913623750048198313494604428440244367677806998986562591832245213641486545844110986798852268168666982551218830137264867096847398904465657669646166385650269037253422364359658900830311262511008122511101560868688598053811808569061068820939515147106059130632795032725902379130959786323045625889691543346348253747574148190225405640695514756872566009992028245887363125942590040344593599355205706079705886611667573801782986153943150629236239457732206366317729903108173251393552633181582142716475545432526792844319239761112360567789288158540256528134617520106253813169384717101068207835125084259090333478566334194704706806192871947852870333069305289074854546984552467155289855838229492228578101361809842472680370926370440783474670845846889767373057541052837569517528156046868353283850851873786247680634310577731304897835901666199282872681119371709988799894687797479719731017096487032862137206071587314251669114777786831383566273774167359077982597629571398658317908750862417442133280726036537948136632689732493455635119963884700707179328685966402262178311275862931534387625204088372702255983606981287602440502945361839006060368710301514400463639746939021456122626982005832799012887885360077625024073100106099680196857814964524109897080530129664833812686527981594200254906488282563502463006269619344220258103283322027089277602019558129122805311630325408163776372108528565563195755353348252329882984872599515419764941357361677166175006688896149306608122424728422496140701002038512604820979852969691972742772579585197690098899250550583880084009984658899024774151288586397122131004517005317381211419401971706415356175459809419109206030900338868445732812906509379149560740731307340745834552150226900936173175352509368176220504925544815736688262941546801512920384256400736657756849796543585732330214773802187406656108211633294007149937587213060629477332585641540312524703009910995672816581943783449854606387085038082544756713163331929943459274145518472567567284069866745987301456126583251540883848143639593624034712040922870511915105043586191400521917980534784996494312258431383028942312499371586644630392030372683479990054358076712532900106890185493759124185190365001698297110606394527186204817995711337761264423283734957130969574512462340048449830268542740212084464840251761778815400078586297733112614414104809212052072383742024792027330509802299139478881732607552303832474666633118833676082282112180842206070826437993041813484492143067470641665889987478064895183523332445182508492301759515799374092624006781153809106968586691901941858167474443608106281852324886635722570149819295125546679254667587616320195796938830987765309413030537293188026844746988280399758665393987150741972403544773493442121898770330444472829207555772076567374898639171435063182672399732095757599141823906021371990541635128294840387997044795829200906683302064399854189565464533555060022162557243504179823951404005259432316983195601281152735242954505125518089495264203545607389214007174642646183173492090563839824187681314187393011656271094907405659952910336375126498943073789127057541002718121534818632741689710738206509206063357579153529312958748593522648870174328524867005566985590205128350116716628292777264142482685793704378829232182280153043722403855267781277279396983644970691571097911838062523919433470107960400651685491213352743060134413007809761769723260795134512812384502503501118642828172889127862428066762579493447260321152396014900137721754623626186639974681625628431127932053089581187554823950833271639928519375068122593788919155808908482185589755611422465173953501008491343334232629876407133501689442403641181995530731253985996295235216889389515639134553588242399825166008483397839208026150728210498017105297098693668360124670096559168759065680241625470639123323953479025137214914267453471620816051334655566575081994204707369636661170657662431314415964741335784528603334466328601721629904628327996840898771310818064055759572673963075985051443480954359744001829622292775046377338360098039395135222531955407381279830884330784815763620395492824013139975286191089742235418516197918690508233460093945097695412871889646434851214190593334571808369936369479065598724709219151633309090190147374783826562980395214433352685774428948153497921484817380487373173089050172314152446361826166157227877984622271206701364805165655348260214413462464412816093685850405352824689948577829244069953165418452610191464493327845634553282727627170545651534571038244735048738513105801841031062968743420937656072972232448970572144403172715341749550073501036539119569705614028788531093364431585546460964188873193730028279166221983623893154436946748321254639601771737633760683732857953121195633356733022260078933424045885776639110810501565023287927246643306212432020306829846505664625981699292218741472910858747117025114209008821272452103512100297675039432309859963301790287627659755809803101566599350305891309980324569067309825484480538761373000153888125709987116262664351631069158527107095065157795334490685611019907835878339536441373190767667304949824015284047002246914019860095663707173992212805942587466268649936733106079236630758703960761703594361226003555770574372284419327325578085768896611660797153085090442072865893981698616009607650268483499901885069928632663865243954058146358523880429851385215323193473481719992080992752179494650440222076784043500439024222505119751647522869573949839976457065379079871640280143582713710007988407787160737536369017689102530441940035614127889344675708682997093354605766748060178307992678085005156280898210688408817821626711306580185459910332832523513664256378867305227122647067774927773512402854191967469764716083873186219466641506621318814270159217390626023351627371355930596360801746127711236314443807386987936343835131920394598710289529284612466295572439017202894870871096635514862883581733832457326458900658621275005992318135590737532842453405800189639275240914913747956658586511758083488969185722466942055761960466527087280393987909357467031023701581350530240231211429529023962985928099745377601122600439177754008707698465961514682527917931186228727728791202316197156826578645179156914333221525418101421228514660884826124139753250908697619057910235097912993782638384301842974575987937287258534170260011251867848938619950313394262421989464499561849907299747589582303165886363139736095685696778136814823210017629874989696642791754623369863456824672927841614958869609887767182873944043939121010328647582387414877778866760861341566094861549799944788390161781149662335314590297204933341614203502787375101681238611530875145999608390537915449455174505298884726931278089041868031973690016841780998079690574370345185308716468061125652181768374523304613286690741028080985394051431459439389940383395637792930482710205468322883001551531210036049998167225411795753124130047601723999503933365193522864201834857296580823126584226997207157953512510652203471430276482826443801541778107065861302689942760835386701489951517574834826898000413869604688500613086149434159491254676791119263090925641390177624016498934166199652817980503386341678257201066085648248470252674925156161259603016185870146225562106745700456572841661106936606419667916258898105996141088814952725038104343433220375740739745871441983370262298959289300459985723285896182717000458897953342724093299959292511528665898962664905935383786364421115701449860324778190720633637178877646204572832348383552815545456654758983988165980730738989634222832532250044280325427978528246809760971359202733983413500859502260565437122340692532831893959041942642386710024077421395135742685904983740807696405842819453096433022879245312813630553636743963046933239106988434359350943442613880903172300491380084906263247713633162194843845858867071747732758178552939930376038355648218505440921648549351860563956182828260552130582747285302841134164849017245618860252322472177269917551662380480494700083810125296292613117663811316862376528049852670649893240326190867501551132266328041539433226885964619904532091153766912096311344696921340779162957909899935612690758233337544934205890074907852383490656857688969146993301587572334546950970670094320688667082819900034720405760774392343405456363017782003030992804623173169446819189201583379353670312356294132777053219726590282336858248428222511295732686147338065032975030649389648753954441286734104216620821477916329812902693119098736957495514148124104081883825811245037458202368276913480960990367955316826068738226870037254613206085019899133262066070035215307785964750505205456583327202996919054994930991404670020877182225659126195333390910937137981893768324981698781248916032483029771326130713659041594739104504338307280421058425058877660539504905091066935713015363293574760291777154805629280217152249282519763209137030012812600741997209295498898828164228555171947841912252322091948985668055413552818139553137787177072401135740331836562689872598837938675008769634542502332540714855305050777486387500004370797098599280187776695525951728341179266828113963718180744583972718405906297367578131058671746042841970011661960905904080295719091874542688458065649513918851913981296545173232493484558410480372330525770691501936240825405178038178654603796663856715554960322165624771136394818820222293308709052398375684665792097104724313218024333308732153016396711096373450463057397257528002154539124883508572757578294016974026801892481727653613357953167877466838833703379573371397934777313130435823357017759388056000258953038680990998906357523378275421190629073395865081726639356498728593369882608629274600989923413486560769555831294585302623744485223447822034828762148813447124697620910828171795049574439166539849068645977039569663272767152472364585420543299344951336060934249077761922500965243371717015523674508737311068911432339555854908598799561203009549133066213111271870567301573663382249690290064607435288636804903325504687979537362040197340924163161151825821159695654356285634410220727429226178673304700372898968928396620237205033772206276960847875237231009997744129281451892124039939317386976950235137178853365704937564016869807653433431356618792078539073904002152416505079700685508859002556230667203232246149856450021676089208906934263896443729556703256183818662981070211514106109362204395885508851756858138680175494731412758297738832479122264156335295734620855190624980265972699263037431831758890074169920208326714368706030941845249549428587341714952508171171230160079805740678336312965983369858955512764012926828675644055428489469387427242245768968560832410086860642353998656099045497012592496992948119601400758825145063906129803403591450095263557871709340130917748847269985482392313384214233503130194266148781231301184329695720736578663313604801949113686122756891773597110097332348369806248052425788583886939822458196467569895869568624199233272838300729432349318425340170360660408862734854837647091931689571979218665698910382971489810465969863919716252411912371027484542993359604117298158931117251946348382819479826794576017565548999489133930582439922695123108303341973444777339479368939886775898000038862190743223459599274077255684449183456127336371310384058285259782906508846114758535397174287259342173117104965102000127247380311240189135394655980051530898971312604862668325690132550559908038802906269823273730540819161056104850223234245019384130907873450272112370033014122117299589466931418122716800783383398796879692316076766096098940983446675362262462377567550145915282687422261063252834010511635117522248578990785254822500260403957341754607613848094811894505441071777982646044817622979504077068085012239205423543158732149206024318812417004362419032338700396039791866211723612355199483941384012992627046877677084182414094575232838125960203554862050265352403127801470582733673419140838596293151314931175401771436203985319002624218928536156008671542259464460115578940907201945609314047764404145198089734307993023444091702677073006104024160314270159591453438892332881650585984314979814622270695210407290914318381353679578880164592864317519213210116183331489090955798504326214768448491288745767754775750331785218106967119752134107080066986676545937332329359382975454774477272190048968528441528555543284590823101602767407815948628152945263770041788583487080528063995979208121430172442453100536472477505775444277693130878121425250778336918723513023724439120793695353793120553575639880296150422837995049762479861342872127210038065245999352622672188164010702686116502070728521429891896024948670954902851185950236657083614452813169798533197493928186970515293788589980073427079872106577932830587750024331288722667222533911061929959609083026013302885436440031810768989956464546469027556337484549952199397102534528053272831088639402755868462766414833718326862112739199834386533412393283178637713520818869003039056241519386346908361834112862239784959486444524881174867132821997674957922745225623298505991903554991834096086910200553309175769548286542779181359291468894184207258977418274062201891984092034662218988678745953118692476725494796032041028231893100173625183438652199852875279790890950033610520568618262968064884500375041275379136561239236151136129045602701141736026062787330613263405038271638798555303879727882496647246404700130293803103279990711924969358546486171260880324392773372043639429789667448937300576490654915610329411321206757870577958648478718981754980075461537727446139578115798208751499771670348787980356644487081185083315475670705443887851799533159051487096958014283585912855340019586927616586308257775878080445215223213300819220558853985551892710372867887032250069027436570860005349581212189242634631918524007782547656221404421331869802667512845520608185201206312493419648946229592877582324294622446391029606223043227500876521639016291120739009327540487100126476071276210994996147169348751427552385336067560353751658546929411464884475622206510947997237630065191086097439693267408706318506439134308383250486742787051439622878414080583613158661304032034874561641533623831083840636636238223757512583357286592145752726115921449732211285727499701984719344315407992718878763290173407641720879212729696416428685408652920184163432731689042282063015630931295138309286272564580662663424492922787134183195352697514646562502594333814131968777500591179988697740858552843077886260083947538059098802110542443742279626666357122835899420160565055989829479994654010717660022263409599912511508026345685209595044563368772975249798680781700121577961231758000960222241168969707855727317335613016633592605605300394026716693956371729652162532607524086726471939338311494556058750951719942690435102284738543128776675239468331212263571397920605490219023657814379521603675283462708144118069669899916503341367838371226550299019577502741266303533009646456645092093027554730944337706527472947794514120846186940375804462149758080446927012801133888076607616476267237023191428280078601141711842901436784851942273760035716380494211535688832033315543757525174654869781295711248773123462816576174025822786105157610269605607236144806114058935033837692008019509823489215256078720054527578949477003215426484562833132094145424881195358249693601648594264267295047077488839501560592311052012132620472643672212736600690368507072351065767582644985994699168289797591813882394650021582874541457156444036388531782296018854968554139381462479860494115689682404325257541319207725808442198442586341673175257587809195006416246032145432207037837759490356250382147128359222797673562238129626090520209526672587099352840235382790670348904959793122207293905157414302619071844920921083793258900474663756549756495946994140491956978084817678194840238695691610609333702216448040982844317627380409168654543150249744705569623932020939956399419313595636981777499839080095786777867385305624966761872854773250181864862414305242994826919573755676992122003082130612046093605682598627647726603510548728446686321805499956552904238981127602692270649986742355484406114946420038565891102984667395903227873217586980819759252975281064915985215334380869349994117729775226005900640779681853904737766581100839686982816779205628952303340946335314304217651705136165545942152593472240262393298753792737387682747061169845112586341644293192100277911920897060481587525137413203717639055790619659519935750456266440828476995534679383488325742914447851740865341413259774034935813035879461293014296640352950103144451428101909063648908111004256646655794464083584971640865802609716334937417451505720258602480805571641963638666851691636006655967336496572127690179149088636124462380875048258239139938302246613022496253876269050787155755751386345447016384383324179794683731193326548376070248836657765721558752044071634754316120430293018221191371848151767628679118877411614602937397707639836487521581421574883006786205476852507168229309791153163567514614826384891632093611325456649757932225882164037756336629035915417645538639180089892602371152061560421527401805537984576066486568658452779263500627568690044003667414788494076645582740708256472892261667241661043889544811500493651458395165011162162666530065220369993850456066523471491103132197785843847059677063222932733112408553996723076471929260673897992604237795108486336455791964575620127554088081971378012218094089606591442587124194924615816142959990432386012778935059056532121106629797840062272921450357373622511418762678521146843113304304088162814045598973215830716201824770763843133045535214627414721919953693780711098219070264424335908448913493766417630863051990309681452050138757662171319271007765049849576510132234179886249818897564019896352571374229630181265706411756918903834274462706424269660392310278444924352448667877003042275644794474548147876708718574084963882319393535376747953230989210293454074166617714101722855220585059282391144872344759175876144890460788599698191433130511391402164592750029246029695269061632560568865027140187489552549922921807684547393390595964845980431592298434991139616522217530729589683376171578750546848856761506412988876612465856537352913903823951518356773423631085621205785472293124197687863644951266395056314556139912561074064451765230854756293141862251437372513438549787220918108608636586479989571155212705206065489159733072466737819187813847746676214559709219083993931433519292400502576722979215002606257650906416689882096257473440033934837421488498151332219924767311209778470403369645520271692402491006512853847179704579579037561313648179002981914298682688809699436664874021132248166009067086539858490431693123137389266987070590138106239522996861508300825780683254297469182844531614320541430683871468913403008811170194833206858434454603811608850333216278147155088218706955992560540617516401024326677243033142858033749322537652352902353579487645724343381392946665723317263582643299595651431285200996173985507321235855025482862390230948055420839635996148657291456931791084873014678575246951943206618031633995207776508164653180087861055417439688429896117104095424732145221083789178147946736731246912847323636840195166913807360604957375880843720621143581121263070327193255798435073207135715312533684964645838893865956402327251202087023955153476774161488196188711645908594152226522573154112790136546886930818772648330118956503009359941939052094688033397759381731021901430571400437311042667303500744429802928449153118535988315163005975054062355500848414008423969363039236653689257925226089131091113896725883885111223118958782165455734073506132071932495794918202696395325608572253030412915039551679585911721440404478677549860683741946104661146254787464070301355536814893110927744298621360832183118293873414729837997512631440894072505976862890426643537257906624861748847458140920308018517988721245215163337085165991920494640668019972534518872748838177960241656493169895376226343611474751773279669750635601865138341444562970998932069881149508468048171956506748893274954366618555192367214331007917677343851207537662209158214833153184847469080148866305208249668134244751600077414942794827399679985706634730708318758641759520105131411558041111487651655121923251769012289166274118854742535170382451344549007591578773878501392440553532460412525978683497223403847597765551413648822947806656071534196012152050286501597570284488067772908600513450916338660339261823008768111175074954806703004103723090931996785658368759235718030182846428567665270620673868669191246647474120826956303954938628013273437539828007402853607358477382947900882541196198395663783047455147373153342877189923984581947259966435658475992697392715494674907947640392098500549410113806870708014986426471748262989721732406604792685856086685393139983861034918766317112051800945935271366490894399650322302751788431321525935723408514294412536220132931202208261842844835030717009361744363844501965580845361686110552284006911926526011622266224244220009443256944905421260949518154612644593588782028703911362010770067091316929937158382164705989785348393103444752228258708415346966106638528718354480038800941446631732099566061791683598487167748554210786723906564952860043754836200805677618149852328884285769390721185621043603428641142267226192343359552817152878635804924804868572304815406681328730960271270134065690037181835514960193605399560812773320972142527573843450534960540985052834093360928768883546776337055649667605092560619896591743394851549615888981571161150312889484107402469481452561414425387100426487924357544154847385831634502477194402720866376826327960517165223979362758412772192249105960184435191164538407899410666998820330351290610861399734171958902822387372218518661685210608388930601737365226000341767381747146238472283576255405550304554850364600989937449597182154527883322658116254853151438308333164971631493652766284001513442753716762546447081647847189719621872324582144351164370268267393833377874590489963874738694532017989598209054636036316877024733049559128204792761870988151034240835681156722410252276996529964304103893310601385668413830315724985756736739190837368101742392667929502432610127680088187532167500345954244582301120194635011056857052233395280783527407783046002601921727426465674692202206014313299902642291514662645452476435262101992803286603858075252206773646832135965866885128845784966530184109811391484231356669085699828209173965719659291003542715782965298410012428328397494494026780445376229695954671800846353266622392079324673093669404558699500542366617836265019933325349137387020707230788368771381970473075849054717254955393007550018713693704838390643096689122413848168242698192069733679969609895735903102750782038296570622819831883551449943472797535364729431520473611859579427092449712874451311973813090617251986322468087982406450180081792318733826985206871039918719356314425264174896513509171505198705377073857262698734673501974876839129700088960972192477609450941072268721242575610649423472376775614708755275745342484217350872491188129402441284041356184023150394921230348188543291552844963322166730408911118555091697771183045578192112995812186327491454574509145449520527358920981585857378380596640819264737824543025934034435821211519887045458736107279492727986154741255048513275449319814625761599195641433169078771947390787159812337320621526944057490895083256012685115049723154241181451890353059243805260190643143551790142611000624436988018501493276954289818459519941884097850724877545821767296819442098375779195999249018524374763573278809608603298264667859480030725232233678636117380503278474551461108299103163516338305283062474270401130897848319566358145152459878383625395013870744967810305705416809585963603022971472380692583238804943628550520893643900497429454261645932520250990444085206048186868607801048709518666920899095753044341031844158710286772258540208312879657191827742190159984007098220646131895333504300947085554817979307787837554459409365810918256227750775351372826739994201393959977766313160436822877857921975493273610025073112300759435532749066053505430594817904492728901037869123161147499753082055695552030544947366575388600333221013838410412519729578233896287584135013594690981481077119939546570244086708411990766838595296297504585718945212802676520740629567009187577645245174865447013661772708782016791256847331805413686712816114380825346007106330534203209918602920000396234284503680556921814772224767921617073158346059771210651468039075164557424763614441312138884778422261987971026117778111338009922222602564783585119696545997284533684018595259418285918509829429214292507305708528118050959787727971369829639686293814097626520304215934024772055966530358441147239574286861720149067659385108751417549923912551771386847115971370924701674594995364160016529113329038679136821121625662347481872375992584240318429739826795473649755620855222097290478685686200920971640307408871268224763419592956872797523098780033049192009543728445365229470165684455239280571674021007729275538221119661921888353770411931013327223018007202796343927979327885940028376993736642586133047359242033922670960338755354945327010028453212959873438644166094506487569423791931090936929310414493606067230114274074941670952217567517041703891287438785283405758361956450703723902242594189391101543142512032699551950851000562824967247882293897137616282795358525037100778436435069704533545464110279408736166766287603232648666682049777306011593247124020655626448914428487432701492890277434101110980589969022251658615486964732373739611406006332339629668518799850251130329553990933742933296081958261666453036242976465093071965757574255762142585065447078388453368474967168890878296510616027633982087866420869061161615248468171044647926443314437773816256599404417772980922085071536142546329550441430194093299065641092964916173414982656250432525846024542283968781532975676125498726502645366637226871029192158221552426220497516852451793759244545000222804166692213720965673729891937637729738111548437746574130330530104645546895325864196809286451159391445659603891290162911101977392089813878057845325836645932942732719858425625097150499317390496432077915326500465237250679507063071254490114957035443910283732593906420937501853858752407317526751601721088618561211773856009877650639426343170242046030553818354362909386264491015836968944647341341637723459926131218345858475605186093314888509851784428128660882466513393805685441082819410447594858681902968933555252751009269349517712147288344827802615092523045120534482681530566792019280802122518620157602276092619481379627057217666031952960611451800235998075071171844487561438848570766361348232842734460229916608038949987116322357697644725191600159941946634087937184735012073872109776216055348649247105626746550820771542646905787360471337524364615564311676259584238270221268937703293424604275294277306801698054395586586270129114523357129801619411295355569523254059627395352115650140055152569924799056514783213179827973610652324428047608798402904413192753092889692499403892502677422314018487474741251948064375318806767802520641417583711399659732427069496273705028033741800198710123396139927895090299530254861155386188797106417224273595330683833002696610036208920063631719848560487924930459946557115963799426860439076911018908120440124604544618415900713064579493145664385931563370836561954100172375052932911988536449837358712281929936690787707885875519681639360759886382103970333937781725395054498105576370283456035786257340501547354230783681375279771142844985223316722281244988313959099187348959020558372721647578989872267303890350780480720719833515729044954274529545991545733608664682000890542632151538247870949614990975366146538457050886291116390189776104404293808927179937648777735373511459335469528752822468981382746113171623191253211984521805452804023201013316703317357909919550943540791690404596778237093591387901283544532012909347705106659626220699605536726209170071990896842061801182661615682610727348777034783027063187481967075684621923786322169519366711492244579815004331193556955584915562868685172797584488018596177433023329821976873954738196219180784520605325488300509602942870735409992366003029110627602937753925694486713230930720894558552698679679629688029476460419308104721238521423313269568021654357009770266067995056240968606617599770617857370751233388388066678487022409422831007363512297430885724162195092707391426368288808182652683625797699094311557115645874363166667881385814375938301241147313307648876048076947004780714376055847170212312349465119237911711906163140304271434916203243295017823106237169827125805897108800018305053097665384637389089907950646992126194894336106355009096415495384166480641271863495801177847182161083483892911613369807001335850399519696638586735675315675680962718103104678271895808595353982765707060385089406447325873010616160925300115043876337753463259995608750392281371955659912941043574314571934926796946108777461812794897841650386985561840205173255283575241279980085585931400178771743116103209279454895935153908135726129181892852392147939034066148003784567951885770608957227960961015524837748379121649814824825627728762428227486834757421402157427907542513708048436093334000331141987543239643309154547949225062605731598569156428371851700333958092732152355306200605004029733096558194468685258414166368604421851357154172811638147543526180997427542658581701667055498491497464734677605447864184809515190750151294132595740169704135973891067117932894111966249049997954099690242282160429189087809664109183931925456839350108965514967987658851886502799040049889298631451477907907470477618165397862294577468877270173376814944138812143203796337230642636877176403865310240172437896158017579495553954132113699759943116628075089528714565229370693248705076570493941038385802719980913296924059461889232978592251729170432457086252838176486058730313826030712123173142338016355060374883328489577533914826759349014294859074585834677801451928589646917134784903268110859569478275563075557031756938493306755459933076400105711330202432702165691235196831001831642448815677721408524316240364449883637202057564343925520922109918326258233085540464823208166806102178741162638095302651906400366633839750180258067224790636244139473860414215261387619283068547732268759478273778667829913232332678269781416473418891653678764528684732586714575367828656319438883891272208936591003603673919995711881344753292825842976572661762752510301945859416949916423409945096145904830669430133962003639530347921436899134370811778447632472047624279108701163053131723642680915112168848553432033273801384691601417966670721866774527761173339238501721417575230226613137389246021535184687931427217482318739700639636719956783599099346667454524257805413167582245111510550609165284580122680470805603547257738577297957125114445509360342618742546629617964127104828354709874707235045461110037939896946917755839561883003163145052055791695959738476550569958440983716484258280016264631055355335593078628065555414326750957820546115723704354368470613605264527888191856340070684668036474403352494892747206518161284107461226094247849854126912655864129450387570236060916620004281807086494411529106254758222510673472377411626196562185275377104963003747098179718342431064017427065214600673066393245247424678012418578711722632352734153067378974018590260245325385952426652627588973996474439843865927802455504890168367652934764133458470834030064792744549228086895564917647837800509696141701769974980465688306723315334285004077545705937290698229018174560600044570564017499919089121502998615841956155476657681444550650803835719029885382158261435208891392435374710712857128018454277534848497451807408241840049350263023040196565075534685250244173762867257700430671484882740885211207201967471016028229717016245468468325154107322780488968735018631358010536532817848727402395199110476275880115178069375341393380003074878687802750631870898152722958733000913175217518020986380111821011276840154825293933111441772368490589089526808980839709683419721628920968506485760097863627359093668362538394690665532249342279900658921391233262004555937615539745682987752572405105393110162706281276545392389438394535145600071704400404703722325989696774772667942201539108072548128265467784119372962996325092119689348488180594508907778684301971997442209253730571661846663105659917660566417456604349402373736407667244270556188808247644033587500023407268110363189096321330183617799286817746043795220920201352128424299135063176136759292129224679036727181006951926213128683424239409210299841708076738171396825513612386870081494728415654256889121711761337283378233145702954098500314030064096761609299773044875089700456851758315793007365401550226644237229344103030828861048327453784870352278491421153364687268798214044284709617647549044333918301406076793046402282361725610548638433109011067260444562170602927619829075272095416910299241009686999161352748730731211740157075879322314062792774195486945487956292782025894237762411929348299501169239598764113252850546190694499820853231137218298627842031702174473258893083097395140359903250250944668303929867597031656125722069657531039837795183518698279895295571508749772175617003678624171226466550129012349202235966999870530671409747463151351629878414449456626081572121739710213587114934065131474341308798020766589537121863944674204609319643091339434814327031432501571691941323498003678685360273583908798433126472072216078129167570125570427497270562156083949338061778116249539648092436602915086828406376412293650833695195799586216145160476473411348979558295820890243274948365132783095415747678086484663862905392948876321366731070814902132317576693779777349206073058537193290589317200237060627789278556362684072993771056124446074222943290560973978149267217656636130500104307454726361927179421583332105399477621125890641619151251739284858547827484650996696432527285013961300836068639731523474427487325389110500622750177097157057931451575615793248945500962688353701967722783433536571162133686999753763788397174765275795753218260902545062845845684710125520335133385526209754333095982030518948142777686625119324313148747222511057427305064880226139491945204360856848136253935007321599140194538769967877827258759241099812248354918081009988615400950391904673924999013380185173571638227289309295379769757653736033318493043841176148818787950288764101213730050334365195154883209845923560216659697969230385589511684246228025885320395695469391156254962974609914646661208862809578184282634248526575903907706830372241190841397046279597743021555042870285225231956069607754461362301723508706541079726407663303509308294633502601257916081019022327986354052365059672008541204994436708800386722214547785018785097044212286635932945675980915141664110230448174286785285665756962470373057173821315863661593205476030514856996055219248964822579179127130549473116020575883653376083685006010237407412393367980380822783284080215113970665690473159209802919729437894920915638304957480460028383464336530527149111460877360085670565892213998645254425368835601451535117661399932046337759347702039874469286164785536361325429586483988644598694830100230899429432148031067121364729803929801071253863813193419922509695908288684421681628861830206260116628838320852698485778906614417991520292689498290605365269754029344738212967669186729671667229292645143543587033945073597497507707806035551592745534991366837296887768760463759127572062066879262586907198580183416401196180993188928652828270135822978200828444178766576287457452091524641177494677434778914150943270639880086153340029178927057873173885308249889413725313186290199815594442022832201329699275065185373547046390863281413972152616587853632201418368860880029567285091358224284592571326208468669579697872678043752071563920268916866644723247476627373646692474433306267187021672643333016347451949690358054294048988638925883281786610674051927436176976629914198732001429526327017431969880736294686839507160735522607676859363466511479328511789378580452964619603671168997607946261287379648384261053118938839335994078415533780886298657148477140091824121706650339833242216320045121681850529699383987400256516242957412014970898752180512447940491748418414854248913108735621967283854490049183160210551150515524017800638843354583146809792421563916692424935332358184313229845914761792729817887239079851465143815234661814031748043170306945151022815040255624111178537101013534579866387601075980894968246079763754227754823794218978161783962336984649158740739495677950142553430137839907373687244284765447112142181430309433080805085123955904758010050603085005287091506195595882821619029223452210705674094730295528249759749494243137080316222771418076566863234966950868918622900700041127682296788488954819696228066931832963583756456997255949802223968915800734017868543133969446596305593129826674092007232736843668002594232922118766198878525041535893609382524737438463720811059462275788770203106731312486279158201572232388301374970659456076142294508617201876804325245445075961957869092568220622260645206403406817395839005703347856581461636562427281212928862294786405234570714246571882263444575145839059398076603000795603410151083960264167990178423244316457996527701011739009554222701737569020257142763349150024882171008832287817892388499104794485048585809932015179091540836469062673596133873142011397037175102077043504759331596225915491940203299367500940886403890961517725659572906115736032902226379083193996991562580998096681885045852458637271526506094538369085448414936441314282058865304192140141010003427138079944982350407836654132848776919564333988550735724041850793150954883785176473688962701206453574648701996822874667723492324436500672099153903603031169494206796428805556192704499664843754433875795255387085757973558001425356205489190166579530301726915648453436973204020679025695942108255398482469745906907977525880643883607324197654451449348295497283170605441008814658389792230093083180297769168285845406425968825452786128825009503293699989394749875963850219874917643522998413397403191423690747774468448567771986859143002903584670245443095316439079199426567413516392471550701708790382811135265351537090488039535741086567094824483008547972008235229250921657936170387877259525535522085279288081515945428286257247079008528949650172386486293847422987156838970218558786413182298439904094110208428924811537539859935692854467308642943974884015491000235598107542864165797241251837063941239391175150482749511232737707373893833718681820314699787262467021064213810364118102952635503204953278947694436209283830226386299429380050223082272235545015411493355628645022030342282645626429861782195094326257129173543326535414059645754065236605781355571318592041777603085400888363773523650164505278132079073141463504986016938492049422366635872021789490212908721388684164092022800903245871219968518035185172017911713149153130936639590183980249354809361184441384611109827614605998102203271744801777455509752279213863881212892772994906847230802799854603232556327245268421920295705154573668370864736481749226132407822911273996619018671271337555266127616252016634622875279857629912174441189518363173253082834346215016571639550682250427931556921085001928582081982301179780678708930896303906795869708584029155716581726718697520322692633541652761571856324317481600304670569426100376331560478132071014486528074693596048774683648431225040625424103801788310769303619128943609702165657256540215722573015989981319258161709757825372421611919862678256434243961341370477297458856862989687477785057632520169235018648538546603370074910431895434785916362999150437116863179223285029120365014035401137918837385196980552689091080618669182528314930114231173474081126570821272731066943623148328587065824607293647274740330253170952665886513664924526662305746852114514319807293613267344212789824944579100758256148925413479623093814402875012049031869262720277630045810657208019321230266106738872451815045446592418803887876198249882898315959958863122173022973740600198633830675930782844693605597576303648498674495093739643051575621927858384655968627956691028192151815952963416234040601815625779276232482473892364512297836480498485080713839237182849004660366340147792632286351271498303749540709041698764712856545840774180108136707661982675219837597338000579876633119330966355240277639690916042882840513480579501719174088987146653198075805955878596410441835444202826001875198957276919477524638521317158096910326982328016278520142683383227441332220283541788933884185407461503278653114583197434733200832723203850376249037139925136644803357315766464846256902574227577433739339886462988775702333814438907250091331295590064955222281050268463985251323631985814148962948602928167160935983262946463103480264333955575455262874571832260504174019221334267472279398093624592438207170732289410516836708280271695402687813870659053671562893453581621609524745403443925142624180914618462592240740624854987459371261098658623575138459007235229018860710176487159897240803469190176418152616107834564077610252459929697882189272817599381039624812100623385173683763878104415225335323941529679583194760749792498048201153445100483693804308142951319380657144285468760824778346984028671311339478103354876609413964698781757004870850498198873123380382785827025030004045115275622710050292716138731346603585399529622722380636836795968382138038009805656028138064917195946366524507153196680103030732163146095398881231435386544018793853005459888022128685166321761514477553106059486234680282465141154491351649673622717590853403970834096287602961073693087911867053600256405066175301746070962895346120451606740154605483190234665881331592830669637690865183392721566400010209856157874875906286856741583874158812419769287995909176939993066648160762359417603611540048050397087181565657144222439789660717011561304256548307458771139254993725392435218186171514747425666782865093915206351293055953959280215566784127533157108282251242985483711515611615070909892509151347233703418304805735040916797018499648201990984028182474361788018041372583859484621123861854459618902274813512421149469601741808610308461486339335791357653580243721250037138873043902540874881400772524528144000092581034975072299829827775668499845849428180696229270592972722400546443475542727665888227093122913580997128304125138830409372219426401564334442640219637544967736072732405468380807393885074374180047864944057259189130432948677497501912372159462787125642346420797483271998466347424717661342485143907901402425609798305763378475396991728128244093456750468139582857028247587188850791983168311411636981621486517783288298737663980799258769527031275359054065522732127374297622339972918915470861438929400443352755225618891642434170125816921461626869325653231553454100297559812388983975502164309821384202410975013335724619851201561801408729574282854837646948249331422066935264456500018407740175966009385217225870917457399814053188670607174635642654391630760853110171263522725394241187461753651358735399608331346292319302123598813684774421518181738265466712291103581634474400483220195218444281849084668086540798295251490832234324716874067753207273280162266897468121764080874307650092535058042023974616223558565212420518674880183012630960099495314747871073701720631423004056731505490541326399568599089444907229209060112291079092460757442470095486075748756767637319272627713859939455741710036155145714889328088731188730229953483528814138738867773232858342463507149205325340720454107024037068359758153680731650810760294571571358730900885365762054188780288036509627245884392874882091558954048836327763469209286465121974535854950535572064101123380984523627095516836475674882557957143887388805611957417456364510930893298971873486144995880254331859104233179170941098346749106986546110003112405306758111951927988264702768270234180805158740419843960622807801793167517958722643017040588207487476338799539860771435147931989966747654549304337803422308402072899044674575161313055889137507306447047445210426381498140005151927891398818424228964861109521704014349924887171624702288273340020661878240598616045795486076962687888088726005514757291404957796190912683500084084348866339824179509255691278335541859016121325535823818712062390638556297685472659962841617991654578434187340967264297832166245157289365492337297454869263247848102572010290217572896803607800507610541850480658389804612383764132618433123166226954456051761063757758035744775450431843386619172944465607015119461457348875487089924702945575907030760928148654905119481880394811298030196146795210248523267231807599047801943712591175132435415914247938959770333328705364694947306100874042722613136861847136069440512273835566391496127049758985154852206228567099928297239917528909973571845993085241025556120060422287996239739734676030764514257309088338207290331632725213805987463804902012647389109373818249939216029731067052662642554447349221065919485015254176723161939671262781290971365448185936341852763076808604152624774674847315520452052103199024952071388922435722894606942890316293434170312932030606934035848824690475511513834954332320024623538943681206278442345246687671651975851222107791120270045236220255375391934580947178031288597240682262731679309090074319022879945921232908565002487023071850879472237535004053609080441108577841963120641775715586443719983812920680892151468909897551073859714891571084851841612719503711222213318328911764842213598940720866226923386470989241750629592914767264833340098356699047477418537231219041451292417507333559172465580863860700351174460219015134589377612755028838663966854601619161749808920786712706620401222353746172688503062448017062205535622570231122853312073915749407025155006856798746961223676675846926926962992103299970888065143983558187886606654883808851097039297629048440918013166698526664185180711990578215919998677630105400490706385819539397742081514354013228784529318862929552827979211974080456002235416193917998395801845902717869206225798037121526206524136155061128781051217603156355894999804886561536352287067139564082804955443362530693351025523663090074781369194942230677413031235379297509112924778886784691696438437265172327280443410557722349692607775611123880867553886448381778643908017792619600368722856128407272753266576984950761903139528481285252845175885749089292102204757549971011486374212261915432358940636070455304532467574163101235005920448969376610403575151100969970754048424153423009789392748592219394521948599745213404363312497065580383447214553962716284476187700909454731673541628971123184451745237101749321680228631113628976444408213899196184036942284936668361848217655645938496979789136939674996656658292230480793569494408630732413511372461690678413227203387895010974149009223229186715382908213193415561907143599619802649257633509862839831942776687297145805606362090653573967499143276513876780332775528213204526953301696653503217633051263417752722477743911708054346028455564771986334173230235563811226431398581352492929825000332688555546057890383828408229110929412469262823142066814220713550303571800194662949737770615620810352201059569166956399211034872057495687600409221884089591032058628107010563457394743254618429252928479433313171686656922690854665699823089015375498163897907368182209473119970182036151832481441107703015688349514138122321207279361584334809422453730826189307077087941664858453177682214830710968698166447732513178132787001207309768212734023816819841724696401401738336855565491025594174757978728769138695909494463037687771139268064002554417585645484292072487994123941719185567814838778726939645362153825106862333868895312126375474178417062294139431074371378141916279380140118230543316684159308508853365838138763569457925734490663014980253184593583346504972081376260496887710900714819903988586185972365087868579722284432795444111255043111911500035088019763649888923461372196219110876513500153604730622375326193694440781032103116219561727869834962293818197105423496421462590321406678152803685131168534704959562767275814745328120255750254230582528258165039412021944637961502456440037730533656897795210851287314274773447472316934261539951636901310560148277118890034006928590270444063540367365393546040520804709765438362608988786434525988469016675471683209343171196042460818982462290674858948596382369172987298734657298755124440620262605378909567396228601993243174054034649070605875155091579726890964364137728850642507812097318897871134917628106140790481697988487095170761410178011320495089882876931360201770217072295124180238239723250543799280393727673254201378880749874358886294002937504004232385963295521923357286980973368967726066543000386905231765628025682101721971541824965323347811502087559341039580046575539529421396905598137186914037652853571342751468678530264456587994851860566863444570174203775982062712943669744049738145308336341350382586315206733668621016900404549953312129520383805523088777738329862537149924347446915259540113188292237715825986826024585918348349874521059604720478013300110355852007827468642096585097831582564953787689571171146370176471378248602943519890790974292060214689254898896846690764237068760538911277308597287269859525454288134855008452175558097524137273315765040460876652106847898046118110873048079684732030188788817215754125089723219870809723100931883176873329050528743430063083599946069030578170279236067985960666943398206128077794485886904071702197520624225176919670568171914949433295773637682037003116880774226589519511184820149990089424959875882035478510199353607568127096103356671160981583046961408877363862873051958798574716927952129939017600565913540695626922594216379862815206141040308806302686089449100791245807757799091514412057649367322527198934287638310790712938904823222772284169213740144408521245408378986771501952081873094201596234879190102533507260183610629583866566082423047064439936233680105042872208284647820820095949988954576899602184208675996366495684386634852254207059437366949940177859048990511206639283597240852715771124486791603160860234878156212964682719356500411403168666679623438810080902293368753049076751687633484325424511521145012012504482187915089712860295138849882001190723606720201660245602530407090565335729969124693794165883077880340744010932553432619721056358320883389428231455188598392438837333888170231958117991524634468767462586406340094247273158025732757834934195159022399204927678677026491997195200446783067971377183774606895335395405765622751571302371850300045451312986589882322581943951420210984725150163498247484483730180036295628682266145895186688246799953528223853909240894894068227539171313764135921464824500772469896744919882234008167691690018717508392946487852330904518641022936055128717552769275565509261612858698116129583597513228070330527289783227463029728967005981036865848964809701814665694125401563157497615839040861833434846015081209997587122578060670742207523937793743809186195102276868081382461493840459447146847970672414850304603179321006761572254766683815763575520674286960733317033828311317991851667669684518476123307896905104633171551448530441106309531244340993571317597573884614762800615988512271567740109132345531365561925678611268336632164113793322446547264273192874699144011316272457490881730254850975219192494167916763465502651856787421707909245781693603377761570455430782778987118830707174940924087269106603357658053447508514522530977013456366738964629478679042999393235978322443335359155068007030087163263040348193679073146482588260843698219337007912169867692817466026129699327619391640817969905135752499489321437380850274890218758974404933446618549072240421779075054406636364789833677716412137005009455877059576908488040826367034091361892875163689240727668485455088651563184553747702205541584631450057163031826156907409233177552234542306188681140604856625199018319476648602106423748859677721840984354264062435663112110874873430244105529272798284229862436031719041127718084022007546120462640984814673499785032688984130936524600745906651626970972050565968120799648819759960800816417020861900847391710694973020063087651787332581196525646297192036075059667494327362022139733356513015425554594257587131955251802469880933959774187734246308084687730579550272811301989024244084607116989644776725552693918611253386023422520985941827395233412468821932670895604384087045790232686842084360659776972365112529818555588295395449091949975561669262261455660304738513411690497437905882922388887876078802039765818607558988065489661520457503041592025293961487469426160133406400208039278126403336932737502119426395096477645404177580132255258995497867439628960150769914600172412377788635594206971795364470516330686773245643110953393967088102765539869586240217613231253432530688667973192050207392766917895750342993231751100617591875651322684709870686627948004465368440308365643437247613170969356811968146881671829622630429608632456413109668654638675095079907755185564309667245534407820430155213611644696081492537486958772133380009554599038696736382019052798328456274194873768707029874092676961927194012257775397443072195670525163933963400554386945318207514493700420480960064908224729613625407247050344257062934076741420457749539588720663465129826298552140602103800873339160872936751342427001679852984738470899602485988006452502515065539261001478389755366914344527920944177202144728701865632403391221902459725108144313632295849512883356664863818601185802261592863268504215268091431222047565467897222045246327887382740064357445912495504107418443650083565451525930242590937126783034788130027040818494226797193101032214010591170170394928195005612474657222276568216005684827122391719393585947531402394407246098763212984355710059195580549780239630865005548533125986615104435489342568260026459416716659675229696592936486723003806775468223395950019441828291305293415652349610882191990792946721217445188230778577300171860410333562124500893212338274501077323224793480587203607185937813862232246114158236492105780128187611137692306627525282005304955082581417565881812910121295573569084733332916376816826327076528793305688914675361706075884398541824561262822229697437441040964535658709611135168738813202845649997650513125901609601669251833631405627578868691490944774684423852390118964112325882234507126764612825422242293846068904863787674039590253193508817799627124236045498784741217605703085061817951354329721566719540250749750501780662744412384349586728101483667955283334815940937782192540990220978041239480590211965878379418510134453730141063390517961820801001671589879361433328517267607127741989611160027904626851458217582309031014790732526898647535767863057605470143113378568045825715490814671572604049808486397963324980957534880460174292414115817248445627338099348244374292265140303034403874506664382396363032778583198335693650882043654550102304210783131227392358885267778649759951674699541172386165649480535278638111750266371484758616307972368628652685858325249381981872678788058276111632090237958830649082019581828981508893514602201842853626815348306502497762913395869711754888053274874503010634620134565015453723543686649438408422308205044715231003388955772224055542928885746103904697663266985811055483455723872496837162146816816354614613270752120042256060311672829537541593470545812903898263929660866789514952497715975607251431780045312805366961749373748153579635192204402493493151380220863704205901054758283394112846195576866459535922353994901295399832456415447855777226595358192331267632744839883867746471527289599504375181113678385470507907054531393761895269693320839098945697161616164150671451919932468307090216706568682532391993898936919385665971240303426295302511148307321386286794836381008139966207807546485050100146890281497696749965642340233103723190380142975954706370327313481421462046871403423377356927889489027987561830443574888241453073669967913344834595954998755310514028346990345252547866749703508080696162623978666676999000795592646775822635663009305560531042029133554138084135148861439612887685121004398871719390161389854871490312710782144967957261892532300636072178065447533942360862393443930208891366060339393947331654813014801423867145114190013010207937523133257975709898606554825684770788398282317627786107418774441545133362351944391375370080043888957973151395697139337731994758659455384715122593956917962541951064439930976925947311228494734298112658193288201250074982154388326179766551246505602563016932692502572266848399735615447619235186589756521989252876875269825892540324090617764689152112274527292257577752528808021502379507418269715700143711867006359721836724714450707142818915714036358344678354514549767656606207063156379659632962348580178295223497446232848947508320012803605009620809256071589768019559298781200058610998217281748248931636901095830303718825906493615853786836767963436272111079101298000425559314157338084130317107587074819133632447155754415872713153289378653414935135619175429655887679937157395534947315245777469267718535571643545309451446038801623819486321122953023842282230969308637385370814649900260328569806497541963240265026827530746597342566180580917362631963840668362876299025187330124028616594444612344602877546437828446722123087340217796987231771773863089192733915753063809171489634385808817750515350420061079484249063721815028457439418952247972774107544767218295323658138644385451256766478163166152784126241254675510822705068283989537925781415768943486860249050605189695906975197666092037345326577623048966682885161936294014630895221193270808920907313653455588544961573971696098107792529321750783306978923544080542339752179082294471476658329274378197021771666335166629343944379092535576722861439136905691526996443561842387682692138559281491148131562952130986472834051671819117132312419107144616099349175767774506570694428023928080983763002530409291162098855282037297241574347363625809418014501968368852586978232765029338210579026073807574970489536370547396270160425774945845021220339265983427575188083578695002701893950514809011796698275118261505724211747516545893297280798468050484733993527898998198708990526642491537437302065356900757538966736434391718738786229405018177709095606893068186720228309821660985867979170145759114447202427605093756139691297221739787090510042352624240598872862072167591645249462012718688942821770883907993493369139149618110385976803813780558050011072094656441715076567327913783434422147869962828557394937244431472733609201313610110991754183819775516308570923276035233674833120374042356235299529705862516623232709977513142754108909496264978395791069598201509362427989076530190747214007908397791459480836575926062606517238006653928707549233591221724469302656620195552607382046297651069454714784193978722589974091934609576259920318604606076380509838257747424652589471029161234272620565028213587589627722887499471449541121782052096881531417633375840051842780976656356145087249279497138046678874357436620378450618580397378985137210441394756763895839624366791948932772647030464621322681623248107286596131989558150372499037274331814762131946539054794206670732201354403184885152372212861131304892071181897751171848201229133544182362497975043935183788535772426904702769629817462931203937213752475976434290221300541823959669049159744142505378051223259482550631113276870245548547681231353738014413670487230009316352569977956053442974408168528241432627071059643547239501376341452941019895809116288372183337408394420079057071840072786218551415803075758636224339684706757429399722822122233732948977229217479314337880904155015551632994956415636738703448977318936042449272441704269035815882230083546602421555932690467101872024607671759528958839432019990170623124125067429347667293434616962270002787700782024398194291572126507148928663587903836998571692572863676916916459337744855829908570972216888767457347358267542643549145186512187391994042954533358192294937625466857549687044952453960467711260804416165559760697292991215862860478114668753443392003435765299823323161164393586206035820271454833984570491547573182400522209568070197525041847822565723990006790940381743923984016430845310602416241113277284542959762862715803698790736748037887125045973566367145621915647360771418954280363679081277371342876300901594813169329350077477564340567461894299111266010361612886214979114987216185967640321063465368532001823040913271637354306697989965764165682734713347629120055859161858975629895688366329030070095311871111441119635803259210387118459332027428044989159573933650985405068549552226560969563238802287337565527592952489338071688507419089039778959844476550193647807483643196018823365043953791833673114509749800380172508901743180278366455714231077266714963979765216798339925878692144538247435348712374991154121941460119856256114016175610103298924935064608790797013856086988559006437250032713205509202371677368645694995847541502643994360510506433698541881196552443926885139848101736038574782849705686081745882812341557225769060962557045180173670878744000559980858082539421516836489382497329458359722569505798298578180537090020531622813474920097555758133441579382067279481236191078543980405490529970503383971988639987252066266993560783215395413366039436826132412649925689141086922725530795278238926761994306166317186307197387866371143202232552911906707502775111479853384061526785086332495878793670656884802436387488553112422926290904072039421680819498536659209133437424555761870250482480361604102706253841853170723759830192653233682089314291909688251497800091291955358937064554289566496744637084288364803793805413733634522466123621613300537961047786888303924531389188492805852550597735932693804223541581670573318275064798059293293228932336200480697425983397245354143100609493561456061601070898777689013422622680475398146642693961562820984396285708374277675801806664988072444528877376538480957545430968678504621079060442566628808277174686093512425930482882278711927528440832752913263934244775112966804512103558610425949767553531183904808189523829049157417737565652066833451510080574910365931387652542189653407017339220326217291396707543800271424738371007012638619291652791709737013798996349453350422681317428196653471018053608041877429641415807090365312563332227529135166982129422423454854537989857471150421101021585288542255587002378764608468796456616317532681504432459870064227046351743740927285960908249987950228682110876161675589777893504323289861793994842279242804182971169053350479372511814130196788502225624847059214033970309345974000687043937512865975952313360889279789789806684616425677954095897049126323083556262818226803459089864366094311223169486416113984091138538568865396164277205988498545504539076455841983572002157981850974909676804947638751064436391637452381546833527871157261091551547212197468761661439699450474457801229305416432514556155758822917244966655599136229873584400735394244060020907073700643901039143919087457187939411036616950639639008373806491036018150812623482265155368623117912799957163913085687991696720011875085467853774589426141572507904095906224690418698424351840259306542188089884155792585152364908353397549928213119246245862630639273376790387400586786247075007330294587871717479858105730519854060999807057700640869834725960027994737188760659527966717955531641375581390060429937414125187022000913391085366165536359259064861349111263483216652865547573779984416061129704431180540360831160178003686610061696247868596038084242165298927709478522493606267413718960334129724838010704311628384278919648572618293890514285212447028852572029975536325514106974544135405941035736128385666781889297389674920673993719456257782983728544791267423582554121438300389889980849774543402954146272956054833014938610682526609205557122422735875212827365475206997427679726085915324189849793252852337403053126890056832228516908349695019837925062125004019447446058178356100492726800816143611035193213032609889600398919357615113275467861803156667361131390506102768418723398908360812663515953178318955162779637147291787547439548545618238947135967791269921021453007703188493002040389220921740166062289006927237062875776408275276011982546237070671698817628167484704984044758295696163993315908465029037055231382408671325697921898197337068902608278479163957408629576247194569264562924782172167524824073846733325507700230159687968887935110850251515608497593369198614328465505609009688932450755147160423482921088112748819494268355950135165009937581454583882518257165919773090436157271964347785806870657089373927847232561961770842787543231954632853577645079903879689389487305734858459289907615627097101131387095257276148360622780249731669281348963295907643520195285882768929543913945842618419899614794679035347686879708251409987513970283789879434316628470706935009553964765657796117582837008871657712783366619587752154198362570461755669845217785461358857948673641512739065585488468501124839123914714965050751184187284429198301619267438267877269998090815874681539949168318836078653494867559006519157703295867032214643959362525608730921670164468437937921145186306591110341684864527400824388610371922228031456584238066352016919249174716209853997266191538536444117298573497623976896790299136884090955493816084021777019069662478282043173414248447736894765518533793274569516545944036927346586227662514430120581727286236833778278347140099850783836973353491415987731960935078529049001085653980939377821947256036508534087483810883961569755567915957840292328229711447259283176234341528935240982076031262722556461515563226196162229073160244220551167824711416878667506684864012962250327572938100049444210066532572592672265872919391162869678486546464268333715383527945148633761102817629751343309010007834550340383709758774538242887096938506042133945212313817336572726632163317861598578473584200441924701794209213115483591310959848844941626606435787019598191722961940418758715731505263238003210300387744180215498452324609698657235397282832508426019835346761674680725624469535183223366652761189069404002478495416325206851063582248803969859358103154400843992123507965903986736577959513854021352957196694587462911962309127571048517930257755177177203519815704294730993551643904856972958374106363283746446996213118814049658375080121549162282670493184817368608642299075049700300995588769654599969024426683147546639806611770607977110865962003196578806190917881591947413719683286102715735330091766772189381608849180550435886685754704215838022578812362414908114263790464728948801921951163464773927024224224138940573171120944542349980562349908463226580386546161905604677803485340403102409018767739371226817276756933366842466935606196798521285521175233427369514789270062123772204720397691062662517272904268803239023914001097437657139411303050934695583767682607477108631576051894582887269417986044608960055446053681232076833274299697592253995655214295459543149544403137952237529266406759528653800184666848710766394194313160236071716654410158587220500408321965764339917240356022218487775550780808590766796726956267665785128179753123017585408434764942142608677076575392028087326231626358155625879662395480314664171364307199829262421164639528951100249077133794762185654028860302158692429255060293990724781717108297061220611520679647825218987319138661062615721925187137656840229733726176756502930658629763614062791641057094089189672376033527650273317606388860739274391182658970202489832167968638024044946339089313013079475322126300824802773840825029299600659992379269516482558293820973635047239130471421829604314412026518691411890861928674289018297073645671318114619582337154769086933228408495885566104627991004207291417736404102591483190088620050947606099554201662885053399757208840530875102045341021451586682950528250140560541552172467805216484944136296440631074257465665768168945734226357133325691603858858947845337961085863942854468033499429902400659888129294457567535455427882172142672207576135842359484773390288060789526290954486936005461190506872793376574550365989556816426551329757995241711517244071623057947800831227787586402701203220767972653622386698644778729532105718932373622321308824829266751393935039070187411038701065477714044048239021611833188055222945754351998312667329282655381465773105196496046492487637074014524215704529437555491407258066031143030638791487727418537054475297370748404618440207110887031623892194535826443808393015030029607678205440258788344364362636073363072459133875958570650058650745733918171154504532444052203673752775982116644776127790889917004462785858205014861112117981727956863518802774330641267276622200831772321595638834538873446140185172096565027657599567753267478792899181507892584130232996499698423956679191877625992218357354133853023593904075515545306942770267949159841902561047823166046817971634565040231364461129480526717999744123082912645566682403658817663790951787087563082964036795667929668478810752704818776568856664087376759887119822680281269499685198122910929557911193239265660628555749071173277979752596502054540771626233686250095633984954798674429919088335096812887832989091211481855956097479270690769574414412857805548767741112873234013096833290426131731882351472507414606849043108145496467947511474589526954547384135546313762014711946546565850933666084821022156704273341906416018641690704545706676222786436771889670551544699365827884214652967558088202669925466953393974366230503513218704025382294903993678885416383601494771227327414714905868341025457634244147679258565466817534406115458770461924542023907604228950265828468044018718387623128890540465497103843760604504312277620225360423611717824183090062362621872286129258060695400343262946666063289196455494179752130114105617351881196492318789768021061290571699748831133760983731733634368331719815975898868354506419393490638235463066236235323031813031814704091522328118255884798134621125572016553378377392051808323848050566059301990036998510178321164049286600334635420543541454572612683432134392361220507780490495216117554765711505407583203156802056470999023670674960585444468902753206079635129751847055850729445809178883347521500681683329736944520773661217314953299350647221860071956998611729683789669145301775027056356610977007923519420890985914468789787121881081368703208116770299069493859355772566431289266290822457174481803526801080782763859807759360131261470914767262500579474550170331921768001329367869564881682083625707829406280558530261286991257054445837917212563304235598964900690626211659970795071834114342625080340050670117867033615534353756792146265283142227869849746586534268642690503510634132790954922198072160913531490683190649238924322635281033862159258946188716196042360244267239701551669704627641667743134941711434031894833823436947155886015571424924030911781323600644964580510785871301644566810868023868518278119671640896095639077482548068331474250764934765031264552788973752225185458473809973577175928452573141799739070639280748262832029265389926153075753948891106068018437779742753770831773710768269954530738795419706901027679926086919550860428490729089018347888556728233153035414132915230561768178316990630239554096261268344844254810317965921983760808620648815265325692932774115681230939667379897817194217762664512375375279805485833374226219071331504682436618860952391801494966818785326570232911635265144119807380539643774773427502619728144251959765915201976304394266483851579310011605773556136324690242247833116270617777289522508800263152668651583088477430144803357546280305842145570562773568167432170174600558212789408711489946548026160761853967121837940467582313688758502699927196670003975238816718200289453339421372781355385297026551850766573706431429193781124154001163642380688336055485721918354768922454941221854357152954886232491248248798232328896980032245975887474187731443082712451675143542063154751601935208961845736196450690741155795946074421114474937412953456606097631436907784222880059519982073837993851064797410014411452440660054289329528264890375466548671208419260210506750050465398073118455534957534761260814209145769017014377221553783057621012537212541750789415801217079379148541799019790387675645699253990463231557727665993019931660027936152881124698231126058342912079588436997195469231063386488562217403602262129796087854455585953708678018696566444245580562652580294708065724177306482945434723305823252161729302251681406064985696016575980750650135046176741159882100934717106861415576253150701861018328361547006561048617948128594679077389344019531922623544354772398332901132585141621559944502135492479635258707640841371253353045762008838557155461470026109408150538996133461479234238704746164090210760732677911766243274362487752070369668967800085893524259729453598628356298832996188056888399042083117072512688354810342824530017419906081089381632931727386531035712131359913022755331065482126839714785656032675861358310354273519222513461747877112695317564113856484195605049257689503232807143531528360450023461977051412025462952929702477203135656630484171556644496220101339853653656237337650226800407176501011881637886484324234093790228359894051182958380634723856626707318019315124390705544341331661048545377957445955706207337073171814353178220790890188948987724752434397741962921061168068514891779377427907563708070453380067064529607714632008010615846806693402148899398063034592125894014237712338298485181834948700392211700065650727563234987296083978096468433294253574490331801669063397151762247635726086679915478033059838266791863427518208586823628184608927537443686084175040080687743883538415917306086981151489424693972731987394045626810553589248507860929977896979192746749561568854504756046178455151424931359723395449794196919042366129777957296584545714542883448182240044449984387329924650349540041553249599362360188358469625135524974543430523525155485756512076800680096471603120561721863866787835856603569673627189682663389423849557332979895491225568382753184423263295591371105048341624842091075332110436997762444213716005449406702241092607990762061860616073189959505403595083809649253472990160050969116308639073116087812905096816945667263759473367815833497502381755704815377288713912868151102721566611783818888490083276561887029717888802112418883338494269206894138787498662181022634360479085328484670779827463760236687330245994019710750835920157749609449063428754301349994836698895605416237799227812811035141284226249854604920673472576164443363284369066319201802881135435754315884399785062364816738881730790828803597507361293855153781066378092454076468150663983336817818891698836583166019192116138716180110471985926828931376010192813356929713779027225182782477214354805094741535684313346805536843620148549260602699967357612223822126186724511659698266476363478357638206157588252956888422219405597033181526644778404938358072674616892883057749858562326345653824398426489413554975412238290325190237220172505255621355682441249188796153412966566653335823834589294169880434447545249344665169721319408448917486985422723907423458886058826687213971885360315432714763004285363639208736232118287862072559565490623843218349156855862901397249440239927893024430554087611812475979401035557856718202774366044904819488544356856146377743859321796362817425000531761905159518256057671891598444034860396128923910052368886858481727034734212405335684126608040531571481258747213484471386821614022015997781170218883687697227102404459248390080816940371337686310643963204794183699025732018577499353904275027447135140054186540789314776613196816580317864506494675119528371887356190830285673989752211478093102780431110269420952564455311786167734370491041582376695979460681541886446328523450816372582866633372538708214707557889232442370701096037984584414946004604330394130091645047183674424761985337070228666282229015521128729107407076200547202086858314903436440441551482210525609381315843013279031346038402430619551490196199325954755308717856129606781656616733534831648541560807747963774268527946409248519324534221317443006631182519187258585942472474175637669516044378459800704993264161140305489500357871119098519878548747169777124944842320567150911268721138006132662695561462332751793592887615082766550519899739564829542653861183017528768428697760247525423787161884875445022826284211370130205450886428554655213330265224820672703845704651509215669645813476927185436907486946382785368362658229404784385821439562716492277062183427271730449560403786693300870125732123243609128513754778732269645969660250606871697111314597952647163381809221080527880113069512653895911902330573601673295690893849589284660070993177498175087517980085633772090414970056283010616103152326958384899594497295338952042186364447389892989259858470574385324652392394065779249938723158280897672599215037372186337897514964454658676061517094068203092716249457877206445838209951985709982625351864101227025043940842213592368964446959568477203642712463523617256633620366115351329367299236973078653121541941499939669388339549283700624575470249458830800906103421010411099595120488150124366811726192672989315628212629644215761213972348074299645913329166579927395354312719422971617629203910405638619216713328892138010101560599371662421759074191690740661974098840067019529539032138544473090866885853995805017842551072075722718906375657049969100445348948751070610980384342027217216423915633363594226865657914576873805860410212723419327991717937272342734336599802094231422285877031766444272867421933177471313341777688932315458192025013238442693094266775505663852791299783939124845042159725223316300303951080107202316708607647214987881370626008010014788362090372134476421944763128251865232882013982143588361618681497019353877863227027322400886435786795404342568726931222686669320318728502046302336041182274448109236171919499680305634984721556284308123558094902982518528521216169307630385481636683484531042303893243247248755751961849847948527604948089975372139189146753655856856784413588605568249111389999807196032526132797903780128432668928959656857089144300028730179016823646744868771520454831785474515919547972308677162012441148443111170118855025715947450061547892044536286346076134546945518458706199327812193639191914412609231588288081677992563375930477978516013031002768594357158538882561917926836711798439004649506149331137807273944553941927862205519044489035541496544283288083403719175922492537227003466961289773516855993564446637393458366687255419415397101508353122265936610375290645572077688578465385941923059343750452786296088050164558706142630250072136619008750211052817945985332951845556833850417371523303309913240840206289420727328769257699771658765917354178079456125861066846932960880013047900788264634575615155350399167293448358111891119278708508523770687473946232755531684031132768604574691233351566151798720537069063110596027839818686522168402185572602524556174933362211835528948778877394755128845918056382295782226964340054731686215187339809670910530736363549163221826564343726527575657778067529198185020256257891708516905962865549071413488704401673826053603774560275065622169255470135804649511462965308341434569400262411313932258639848574616034442262983971822969788520794729775436183513129103993288129618877828482302914945404337021028977601921350295104477521783081522475460262826465727853404055341400708786616851194890737085557948231769213890756437303577425875756141573822292561613428744615142758457986010603776957801010153892701575710049013882306316926469914754096051198695378936749561091797664991791545852218798636972066506552845523673252546516070658077608000546938770941948532194779113296056856900064679739874087766205749021595481749541228006222965632136658997947514165753514559543202386858762081696641904687583471081681743626296144990616008007141798506160011037214156969114433295383324471963423491596081906368647105474773537346764158040796132625233431613807694459719521073090401504018337074514493535355487895782024190203274568283200588479123106535242660430348166936765360397489964871540160900943024264617150701885481671840700206995300366608799321434671203334695153800432209437612909192538432262508086268677580123767797282356012713657406165145652446235649534159777747427056458652169672725095559113802518977318402152883999496405706013630099496889788082251031511015483698158964137739374323514999408310706594231944894171825632210442987746128191383393950447762503604221058551012547155819427046787571101453170169117234216935675722985572531241176232792489264298511749804759647352029886034396382608673303023123774692851400640758277004777909319774291196776731279913971028031115238600720485236145871231534279823207913152057290544148072398763293093366733813272599890107634627434696960128252626539856841907490214714383975259472027006805581198020186267497090820855865145088538836522854252845618425933494429923888745324593997738279977536071109626405991961793199811236671610454597063595330690653871602474592495111728607456450362407077421131005440134932229757607540276165906463139292565801746561417461444659504791124347995407341143416278105675578007803041173505799020502618756061989636376975275929877521998916538731797231247656006956367313395856272979941554732703872791449350143593470647364726664850010074351134976043603398993724998656600855687556940398138926732005155071681817416457319829693781873200156699422534180372163423675513252881225477024341066279548956161793335387670672616551699039876861758085258661785582850772172578475670325304937999171234072347015774310188098789933794578235631854362425596385370894368862593385425930463596862686206211288552899514012017127780412738505786549203997682656540890188024197552460545847117450406830025606304044854245510540520092877298075498075236512323882849984835180264328865965489519908594460211892502605722525397729912144336283734349393010562073825725828743219394765545371412277600022076722650696297127156240429324889023050955497102403800837409708342393603859398481971787462142024730431343493209561961955851940047002130573661432332881134063394977194767025000593479782419632254789862113531284217515935611005899091420296372341443613888845483107245860896621808663975553319592765361483068479365537977183165624028046270358445550653045484360472756712991667198223507295547137801827524207213810541309734136250052654793073441324720947673308267848806414669280687297581046482402036568769270570850088573543616320746920585854992503455304640137362334967188120423413367260756478824349251240661514684239517057029172761634054966818635066188383128045633826795782039001012923465106715984570206064727641096858372097665813759306589410843409474664331234607443753068707266237638557713562308727200063507163288141556733986855042368666037863540630717309282283962597892411240077365684027045471617380932106581798359276572094849001756376758861105429947674780779363156024689774095622874236248122014616655086978115009409309164124427557119378697954582362898647741575884598967138170706080704987448428055624382035263011275140117931821867727274833188407281159915681033919077380344978185114126733827559177201080089172757650345196416388797058446394456595323194637811603053625942902799625876289843674331346437858544881565046066321575406093252041307315010046895805647592403875509103853783225364838644721415577087020827822852816572300211184316162296696095977883758114846687881016354231460875532078187892381566915475649651961769445408708757031437264794858037428359251641227904678465340553214959616652842471108994525000278348657479993145847122436374511529456843157358326740372451640500352477357287477502812474003326003701585379496387663677313640037571371343966296928445409255786522119948540363335412181206372003995116561298942288546731501733953126480471825735681803727563616603155263056917930948241340265904397049887896011602239698597710690208121779467675808149912019022887811923706624875941357579868323573192176688089899078803449677552708009268931334052991415969437516025801588045488323174393809680531368086120645395190985847396273150560010049592743246658357824468437777907902768417952262045209072907913030407572607457292793445462252026249431721773475610080522460660073819535443338972939153916586039566839111708952056425517966185275294034493616626648043846209593731566097793025830204830939197543747396951464073698078234986241902499333903063326281521964158648647260528632107403684893945033177817410633963214465233323091292369580031478821977424896172347644520988989103083451402707886795979231821791023939299175749342600123234289072040706302138307194283376293695974476123153069650652791727506925374790520407829065611315212191927222969871746091276372339653185684343121894648602729872762653211181206661296566873317359939728732219568956952522966851984547799470659669932467836186643875942085277497506317750497346087578288809979484124168999330652897145850165260427735162697397752937497845387710143045293640440186793376969373649519125671108324719678569190136676140270301165113429681535094059802242066935300467583549020617008859977950872815241740148394550754601782348111698022392956100465363630492698001498171530104648251876195318140402489737604894797237851041104831438565474474178443305816802930941451765768279015110272479162002761634544420757184475870821852704213403108509628343656583961064564029370007526198822324368409482438832623170995422430414993696117331857494721952580852452650034356810128732941938756070134672772307135188358584943698716589224919429945940504383875314535853675837624937391997736087754012972817994165668069840369022960504636310377046787227019571667108203265795439624752711395192951481591460228334995804492169088225597781180272504053531322126864082794892440523954776205759711349696405579764579105542038357934386529233656167585420236917548755413697910961776735470004138309253465756188360226318029563917920741203893344151871267720141118154160031944720835842167483541850508279906748205093183445710612066804776366494341936254312943864273561080903815077790091111761646989857255122375103714615978102448571881717779694415792793920087110909166908103291072914428973749149408778270332429103289705548553253430089807413077755404684726595241006637366944092497748558084169738093627651499635290080350207122382476262163311801660628385909833231529808164648916852042883971457823124616239779055431980677395295788853667381109016148033273539806994479732736537352614987698862350647291321328683875709725860827049275146745842385657649099500825506801407900948506514494871497058180415373240458292222616822718847386834079955343478763892357450262250618888960812060166561537736058727601746565896814725780224677426753260390727450184643177695369164904276552213729139476891819970407880627560837240355553137808544515408280453003296152645584717248702342308431799761338573650771869315371452238032849878968989624435576196556920477949361457263668148047395354462733314578559159748590238935480007372388333981192022361443861769979191373974659673930046184692474006346732430541413636523763163521391835002083018509182485942237893511738543212058740260198255870759673059350354714309103891471151064827959629058262427137055721518807438250069038276544540807795117178625328984562202342631135447780061457181679476092545158922084865092308154282235375023143654258306782440693997698838973382050264258458320604836028085582995917356258477659315196641742679060019736028244799548194816359219520832310360823516646996628789277560978462420074198375986055440842632532030270921364415943719750036662646181213218826227461298814870960131562622040961902736066826325211692694282220227548257950896642599228179775663809575510432541136375937275647126022293977162666190688121716533593407181342210722061252976947478911571612972762957463017960261531959618749124909778228107957028458515470877146721387266708294316693569779496488330879657193836850799199537237705660609247164117050297647126691950335290083347108561247122735187965876984355754457016531893426940039521154505351697690958826942708094153761920294685038114339693840442172764536914039677303634251267003122105745998301149854952235878422196325755019168307654897891701653110949839553371617377137416211296033155078684706372487086503805112866044828285455809405359128621445272397234050141147877434266162995902665319982637901156156869399985383733066059107906293566949750831368256782909950101871791700656712177897592102565994641649330814022519917641100425327803302861376799335460065559431607466775077270440127541069407089294589729160507896276825038947508370080278498659884877555997570983072207240055855443262294565716871581819392145344541822601373039294650157662484540950973354987834414338250540016487374776104319874202690097135860871132973004824710846363963230072300805397836955973141958693126345561445777293621125124682176004722052052456074990772574368376438383407789470501289976463920679735889282679028589933031166959566154409445340537238574898173896106474786761004259094200381046728418524861443853650106639804000807260073973550211686998083173825683586684037641595357752504963541621613545373558177615093862763117504847084049394748005487690769022176662801072363242646645572137680444217200256242249655322462576695977574751681187199854702152253694022060312882619025669726302477244169372482053800176716303707713479025468284930078395093464078848786828936113133218903093485223780411963431171682935714884506122525111655702085985232207219256218754999461227887091907405309496221741537666009760018316977913801058497653722035917775118483602169091642417341809718735629861341428123043946076421964032968145287485625160217632510711780125296015708415447935443551732652188958467389724097310634809957118153326222683670238248012092636664377615395145517738446102877225263495993760492752579380159160597973892061674597787288533173878443254346216688971342296591687576337157969484771565939807342190966125233099791670323881889053389946106913921708820552132793765977467045104468996971214155616046643630632649815067332655349834439756435879862470833217656058189248361330539215474041636395532265793928045444224138843142001333751373380015703430378224145871228551124587837892163685144851533545426045173569899152162444003441456942221232281033301011962725274263694578841815634374458162185274561166907677978967643248614139367005773492695442598535392357682697266408454693491257064555203468219999130854994078269589706729586865973581827063558952223893410307956767403833582659681083463502397018720825003438503934875895475533898295850323119393130021999314743861291340775189699300100054631238397657378410352670022394163211822613297699987078112210780469849685105567670585435655143503851709115164332786546042473866923540597343017125850805599135888129165574831850212211884446731610465517502471641190215115159115856530648387348953854876867039127745733836084016895031644096829843112011026386010510006374508003319914658047653121816547821742679364282292287967688397973267089898562631877655845302226397479121173586937465171054656842702899690599403182833398447956834496515250153953611652246893544716611928376568220705706592286054280756259321895385868730058195837797360084329805171993053552892401408098553970353874885695000316047708428149191081054797623331184483738805740957142838503584421403021768981054210815103769532426823492958071842068755306228465030319831659299101321420483191926938991275575709056632990327660441645332395367491923761155373323272833509827436813840846703179002441114391690745316469355190845975061240374314074466796774733311236779554372671206444573714050695066611508166773126202973703044924238062963621344794852334809222210604531604934068916103628240596846698134214134590965563463200800040817534440315485115070385118651822241256393765581977173631609557069590259594333520405853589205975246055680179423066061378052515777699554072575867966146783886716989502239573127901753281575399753246634607479543231842233858660735347311397211166636171254584578700648406190678023675396110308302112427760837414334934990369102589441674717819605119091558456375356329310751126038932925339768471656875151539139819914813828931416859873306424821581326023861511326574339555129724905254187353411927173942376093294921299683766868582304766162786554064216101218165629675220385160811124847493572247590019487435474272425825675826022411912146040882413710167568173158259847702699209675154007784237782252907044975244732851865068884638286920624685153152040005917247773170598975598876001076013503260579056304650375812886621164744239038095071152888288713606793204123112560937712989837547615044307283133818024347914024474082393170615524656873910710801384032983466450922772346375052446003836023494353546045075728901492714616339921862252944432425361011228928953273317468289061566449152744772372110835794618759312758641049135416172955796640429861118677647187615959990189116724960614505213760767183888272628052645915203360258866197971506484309810705219865845963707482323460167926616801483848083725896009836477782702185896059841056787939393063019173610689165643243124096705848191654770288309088705192776508711706704532710607175462123081674708716780867399957141925194457188217817983907400768594907550361303322023370366781456428968742703650162803559992395543475703917799422802311440636095963357264737978812788089276642261206557741177699940101599912944020680524346928816888436244312030621836764583223261304057110673420948919243959866209718906842898377988282757991048242579732840604121556361092193133323605684722667542507456332676197511194988898945885082889702781086950131737365078251385663747860990031141450849041991276022060907902375902302407625312219811245576062540896519717166593534371314588352635591612836320987806529319033807438778460858371139711634644480063977684999898075549230873249662700767279916377959414073172809031828906200692154275362342584675538278111251403208230533005314728131416315396166136949270970722147358829654086714405234051047810147301865472875758820442826889264760256089709497413318705952770415155597967761778098227812868040593561180578088694683057935064338914097004191592210595579323079152705906235948774510158157956656135062299337973216201412163058431067863107043741936642393000844561685359151544760660267573153256564657044849943347661193549470349089979584860089777332825080808221527855504806741420879405892264144419218088853967956640909393075277849258334588761823706500371211430330828166773566334819742301406301340972014779035676273440263358231641315935314558998212329145469779015763321014125789654346226736459027226658705669596765909946922200097042502787781770852607061691861085373977259578256204994332880335063701419221087655132845153638697446543198740602583946876836994961781384466408301574194078304298500236035001182622391700210130793919711841111564182900318621890661402382532288171745448779422815697343915614260396444238381682456328443411634767800865803582799525507130451184636849615443811338593168679818683842995555124096556313572420638999884379545867726154554015331516681337951071019691874769949247410605743302662664493322624863380259465580467970808528740109356700575535720908381011747913075397048391134757901638258539993709292162669504449674405817721683001709480770040461034107838211040373520777338640756035109941981630542865925062163236076056182613009373116622169179836782969604822642310078592313875989815253675441090448122410699319892985385188548966480600058783608697930782463918727116962373207540061645238597926004350378947821302402719058867695360513183262066876882307892143507520553451026628368925275703523126495103525640607954873848618739847629927830183785087918286306772916744444522538126353418285913405352311771948392029664532765547324105400947297250118817211082201062253472660135804571238184947247038199740574114101109713995391858436970233495511925596817336839452464232118897597655029192742751871293822559433308790712315417888529044275857679218740577346069156845637067552123961344742564956759103550712794936526563052263879716386720082025251378486454328561332943961065049603452354370238494659810181296819223037497585455838086531788287033484069469975814213268655726227396312340916432971001161925985661162427687801553445384302450597046853818759361050227660670592865482223378661667030637816690171828234705079436601428938194529052751772012758657651417394415482705438185766677984204258717232782396040942634171514258052306882781488774752784534522513102306241071497816932917924354153062718021740430222617044061904839778342470719815619881011676475163887307427049350501139941646768953646873589962107226600194599250189428668183424640804786827710869789151865206483481777478253059357376119291633648574558128603501714367714565930210162761986781050942419897163430147424206093390281378937385776867678342645426362026601238752312970811378767009589717395294498052802890618113843399906262612564030958604636531586432369520438431429066260305931274421141792114539413529298057784244163673950364330937723276805825133844835203846197504013284575494664935303776019855961616083392221511615006467999599813655264189214170553589895141470245276385171153722962832641327074992441371981011806597774881368648624570233237430464801007950042061169697298113920135674882426712856011466574497969691894025568899539535995942443636881374574274159571003163739726913206431516297961876730971146876628054828640422454843273380691623627614877657252467237653394877145861744659268210550496902961508768162082517539308648698405241159268504245601080949249334933050464847975291163804479234174590808833337408916179387368980690224898620111651393423980439830980114614769278640790509533830946611577192221965109859922812579454564362801372646471039623849986397303656373998270231463150999004989280127627327057443509107606020004368991100787048230503574262553217381945305168895956615591051467920999822242092053545040278723411517402189713885637769878672016728603919298901380139909761351277660538668795025679453555501853505398335805659223937444716191766476889152459989019936954282450988829290342632112594152536798854198031552364966734255340067936104621201586413514057344135027648262906972305124480776651135786526551470939937284412484985650669111826538183231776743016244855223051120993294300542735614671250474994245697857970612446839805846990478143426419898320906149791030685317419137221411549221200142301979833514379578237517232622183970752700431565625250287467774959193455612369507709720723668607526672332251913215511972117324341303341496243225823794719375175029038586920875158444660304058207327526261316487716421211846775159563363594265695290731959726588255058392017619798419286123417215930963895792130967275536012946637221546882428360215854483699518695606465798487363567953076877988001189001181521014813918757139934698786409522631280236151363803751961967062205716733311616168183991211422645737467260442952356194486015905417511951045894174319504518299563833276863320820082260837431236110100308145678799222544021728224347323897143588269911570998283570973708272206473467810474313507941731031672846006706898331387903853439480046994635393499838230617955276100347720300833550802927737429012912522889680634717886259937001234984256744499767771910688306192652708902185910451747105538599606510373726059173524608268809555893047314814031725164268216424330523262265014449411612444576386267871112829077723117472714762233070797786725646910815131078672375930079524312343455559916515790692087039967111368111894442035146369991795668108548673680230981155650975609075118552473109205102669427794931795326963055375482130101997706407876529974892493207271344672371233735764258029999348723168922179628703973875699689595004336376499227424613271238818120929401475984544573018624710954457452958004320838562934073311085871222594297239587908319986848572135324914168788781777648860020397227402668821985022416251978450585923832156786162688320078975113035400513943442828974174983560342098791497135744597910458212985112724255206604642407451553380745545065766156502822262518261733368332080739079620194263125112719595156986993705062765356860108405388486179656541119770705000772656625962922047537320721578311906702842159332574753362596075829373522051591492573518897652774174813764537560710024926449377476748552962826924657853215114326499320382510486766358065157090183286711561978811789382438609852239099990438725579203308468290658324716497222581342598559504032578830711739985733106137112273540345934810639911989467415535269933248738513432642139179846143379963485363008492273401863622746966065284518621548892722682614925091604253049710397453503752090102959904580165196413686872072299491719680171294558812377257712510532436204552292387401484104952297176564785253846425562811940067357035185145818868010068133772169828836588872374961983209323073560289887332697727694971186261417734155286871459720111771842124312169075661462613544460620261298462689644615236826291270482641547155165424351422836919606685931094836099712572277500141030389859663321396434816600134297224709757240751370352412194122480258672712155360953915610493959368518740222657988079100081092116200515662642792574806454387934096658828930749947211742897314771528233485199932540080726490788254666619208575074177482798295931959149465842959880180960560103649583332862998489789986508298199656684775903028862756358865025252651384334970956172022817844579524027841410652948830950739150228395762746126986448178169124228955572696785307074746118421967335224075606647178982236091564955156688905084195514688804562474752710617677515624840301488797462979774622934363932625457350129828305779614490060015278582597216621025444384945810627332767078138030097178939887454042145488089993107211303891042654220442805333517882066573169479994508020835933722725895927754355161898632031662236768957796431602261297329973705527279721670541612773433040739315715392956306986731752605992369724049719850045535164077084174024203245696426256608793462504371469007445675861103314109119727375294368862381830851618927924891051696874771572768085216802234172480277912919086557122982416524693025252104204130803475317765087488952535374386588405666887481089408578531608429044739910792754218255426876260560291646353097642987866768546641091590394034731180477217532368134901501550618465326399294337252642443179880647734926194604194044841041082502586677277902810554599087620443608137258622932677578151384078193396200751035891804949336340135388087662922743007943350470585022512136170409177884230031911025705899371993527990140484616672608637332261175001830721890907731865518229937699271012862491973269157018308571635708784874989728836860309930239316306956071091213446313785876274811397565493404779076670975450296118234800902737622511735333973421136600235309131404825878514713580424975539398708463222272150291974369509958844422607565927938977283478046357326559329880647325064566846471644109005459482335816854717714159749184912101731987805436176235734041013921856335725626862546190377147761909695736497826365333216966916906529818981243742885436221979285000602141099676430988824307049736292975316430649850144339367624896573173602383120928751703795860913619450770082175646285449222541370935215751608636703150179637560868334302665067102469922919507689023647457399303840491195779570730195242476641020743192198141412830015726634504486981875915212736729779357476602031080747284245299814876240241334457571311768201694548120905991373176664335984159303886923946844587287705518643368513207080897374007641435610801310937596971209345934566184628051842952952824817292086275080562827336147569546272694856323944027240049380694947277432539651367341185772891644329127647385875995105437128744167078221454158302026785269799207067977079831363115520505406905718160655229621549667678985550344559803183740345739150366807757255590749220865775588831454542163917638977925478760757256828428037099810243994566383026480582317270436842480592996571492956667088154311248791352438970547025213566304169133401872580879041163148645085997713041114662797632053569872883826984104945082546215615573629653610812726712859360192968664440850445859945949606548519590302031966703857299085688211636331804604425429277100848941566800257315432710768997219425611738581487872479697817233563662893318987286634605934016336865438728455931596344257884308717624516995934875947771229955966533240697287510257578288148004658068870619286021380036148283511325072969273079174906864580132636750597090180871716027189299703454501384658889896443971586365431161999407237126886239482118942098049234198851855713243578938672644503514888733313142566030236671019545585030315629062545366041761092423649104281609694396577581589520706727205543924081112114735012614855693393136448784117361139922071546783511987154614119621160498453441054792501306733225262060508400125115780508480596321120521426983018095420694747940702872582732237933703994715815563739146309052978090544278515401157880958903278930096364119428686096671515579004568772257040997995946738378334194859412301558846564028400903982166855569561510639078834427620150572805691543774546478544714238579298089503979393801574490578493522980594612424247103299330974889637695612461344489113648279412626157199840669026736862894867089068037655748075677031490528507268222376379811929499590593685668036557509914926761947454020917084229116358059396380256619028070219381424958373339213252189465705581648860115650617959445837854624680060622534072906598133880039614609633023804694086977051669354809656519412960003674579020869819156363105996916722424762640790278420895084792746349503502807444615935243317757382886708580439942265314508344169931902029638439129191634679531284818878410226816086722794397761816561784192250136825188486955440552103225514686209257175624494651350956210143985941154710406542684992050747459578210171691802685253480868997488516745953149938921043414440339384563785995569839373990344556247514405922730947685624771791360301486829777566369967479147902728272689911719691263061152048982371274615215058084529953705620249431626487833292431536541650823416685484119011148908286900666150719512338298089239175452021429013143298867076208594738259614037013726109874935152677290527477434666870111865204889538108315193420730830774448383974098910827431611074661622297364609929840811697102436670514372555671187909440050657491009264252135073357319709719197047692548186927566672774413734398093703626947717770456250983003458317398071756619758850313271593379885839578992451761318708791470540256696692072853773770288631524337794779001748792368755592691522384719420829144100472773176442856947703715929733301158322812390170658424800803725135803387069679802523177456649851352405282659517276634724936331259788223946335876727503019588786963891093335926284265822765681274715132131845808376498271467843613830286978118193733254089857299654208423564492125628765542392289718043459193666069025264387236349608000883975845228099839026424539468841480536327131578117445474399978683638872919429849653456890578583723051529240843317388128133602532929350054427792209583477328978764719979315374891034601765234076670161134008086169256057967941851149941617390367259385519161178117018464886609413381065715500384258014736868087722565183769750847175457195224851741035125473627509560685819146941199668096781655561644565862053118725184138092194040286254762452644495050926334207754701595662122477508490145973991470351590968981627617156480334647464824815042336353932025952443445218611558141637581931899327731124647081732462515448797144543534632254858507899207094588411240151021591840047627277945331590528831101204364494485249065284162708877459632237810027135907468737281398548108048346896430405144196785339477059854821128699513055436854425064949581630567791596255564940568367672227162276921961067209015575692004758118575552258735284456482881841580996334584100324300917067758481625519603215909486066681693071298364575340347648374461209918116972579777234597706841200152791081823021578958506612218875641062628791704191459759020859016516042885680124041695701408959772969451947403388937481799450213697910418827470487064731160971814832591545719605498352538369749698707863523706985619562515944897595709393200452901845172855385600201943994006126193648015573506277398280247275943372411049039481280652516383641138208682614338205566158308787334104277181689444113915289800720748233698436635777711676116959425914697481682821816410567436643664843742544089343888176417124424516993736689321330180219792400213414591667203921226148711785481703570040290863303236679856744414284123340795958892874323926459430955858865612963677750474594516376619666339003682869130964769709585505595144904263229462786285772474425550137801680010436305887692436499485204132678829775302474036194576116677655301007431453560719545792959620363939098940970159112191760182121818735774593350027522837815753641178795584125287420620576836103495554644594756943492459984221912802705837111065161183836034915150855398661569148347155610905523983744160953820101030218086251774354613943109126756444274952773849483406549411391908256823623337503602636084739781018917721876390802313544558696155218646661854729870395971142715927214663996411880942077001374644452019193653938827399017619297687494560801078062142320830204920718623064588527893339255347361143952480586416671823057971047917064770915475186984304141879538712792620476273160725966296415845281203834026075317838896204094394617393920580627933448521442762877529950046399686103101024596032168082054110880887612727372385603394977525409565484216682092105948119307284814722439824298587827141952604696830129992180560148081017609404114397863904434158595427415537572936737273741943232556369133242785139320213059080193674311544776225206759940539388622913730357509397954995695150095327865537968689978333892509403692209103068557001915734040736505405818765015052331765252722324064755318073787506669028992958317274949514038017099096885103153299613677014333903750151460670217322805295500310558880002126503043365675468079821159192631051005807478616634219132999698896997417006925573834324557548591020154892199782376738689960035119297928874821535247575735106935716722163945793289391324114445587302004087659076290619309500337009478117437364604887898471979536588023804717276198616319821214009043624664935590139851729724765844165238200717732599124354298842319865289770642945838854722444610601557568016431086225129614599308162150030075863787926466840635723986572315581077977052952003507088432571881392774831489858833228932061740887058207477615704850418762076893484569634351701545151900875711256383185667606533882799367637110906393205718199568201295658211610773279398871848108484130146004431195289658298819882688946295754116888411278910206813642386997514570632931816690353007523639269986743831026436175689368355736459523689984922264034204851425543898683248265488646230149034965838101106024151337789603924830161470944288908590208952474822367026077699467002833462188943105888553792911118107493185500693765278699733750284861472986377921257363125166534154351500683509351007051116659172298739050506058440703133553778437172757066589294459918791474203989627562926495715368766645500823837521131973417292931247416219744678631322715909743358152179858997645410710182460045535709861094960938998953298802530880552977963314259393548012538273871433527273048846709767490511151790353243169317932168813984474819542783054226887768373105180509868718038910435233735279298830878817171832512418583177444048955041092224378577860306861231916106104226355237675890827511697333495212042069286038262835408090469305827966866821217931557768423687408319794144444056055834924061300130967356274194536655186358106745348009669445040971667592656082434358542239674868238575075222072221375920934607530852098135893743872631128365252255131756086196294128012424021138146462828519506018540898394092960999175001099675284522453182023093240924829680724093673666718619655121269265647304645736324891711758321594518215497117559648275271712036477138818434704322736561081104138811397725328108613798397866023453047292676859332922164986929468279702013360072184272767840320011410252928296815899791809101342755105323659239727576009254320314181888475992767724352671135546038098639643378637598134317357560552227738106895608034105713719067211508624210540633139781145736682032267715317334969566492427286101499503184497690863459202138238551746521156513115127388728579342449203818484810995978483017815030669564169622207371833542320359115438039518870216649549964019537385007437544343561004457496279681737252086803176563144502001886136700271368631349900033095854338155822240101822839871388188443639370064799460786238960513698872510799987958330811320740594829257100501840624815732348633842608381239243287823897685811336634948907661351431000707141855485706380411094750355866334775926531682683792820405747384829594127454800417553579440440878443372196050227978819725423864197614830401561794175971090145830179038163356440038442981318049828101170441277111118711752478584388735313101785794496314122820376243414525288441759434800239615936875296407275176838774973034022044015119832995140492888136420481580791177339855175020646163719770433759335439293985387048462147989128997068026566531373665231926005537652000115957188571646011755518732362951431212317839218320980771972333159764459772279820605497478564702870997842500645571986358247662564637554341383322944056675601507240401643334351643613451545853328936595145395469156080378071060443434811151537346547071803475571581002613792137906940854603892347204801301488961999204988627745331205929231432757971662611391840583425152885974366047400125293980878073479804827396542016868354738531014707615929210047248772459322596958151652442736513625317258340048436626640631440894320529995884617381636034752415171239003282011623955253192086125049245379842831237968402290922274442748688901264480464340189650897061700719862786064501393114121479106672947567111721713145232073531639563902864565222412289403425259507816955232694236456632850478288537226080621801593049147219677791713469620693162286276702202137333089288784899011069847702386740923085289049550218775546977406326473899678792265902592693960777451472522398615982224910853271505836973393809819895233444491954936975410924305770113300718361651324626285226945914496253603419720062742126942702077652739049841640027410580630030533873720333376193758822188966671948657800637808550045269927282533893561826180766567089291294458236946533840021200462871240509815646137720313154000958803287334815216867718687895916559117398338193016029907322447982863531490770032478747761831700656811076033430213484858711342757996615571679144634634030030253954443919459321256584078629515081850055738376842652680378154222442418146621795385293475625401827380564669026877305372966415002740270676155886596817512278376138145156136227549294269162102838955587490268286677908717479189813005490647638035505568685207107136874940683264658331195259151414965285458187448778961266549229167423641651720192692398834854276068721683763025575984007510493716750303631963975701204607787105856798816331631574912073034863887318300673283018985809003933491031338391241271330326457096678804719937329506562856859751058716018692992235068293400256093451937060077079213779750194470422217220773338674692812545091728377742390320964113919671471095669626648269112060411569292233654894765163038692146962966226197376075995016702001963396969977190246986494881374473645033878665309064770948911219205104068836056277879262663134409998741244200368154546383199534843776837770873143622654777174425152055420183153249503281082533504867525148835215502541067991868068353735371709171151269518721120234892164685201114053419643169622297487300471722767186831199402977332817940614764654955378041160992093009244826882231784320791686543375730103579095373700474830634065522785035557744818008507590771310811343816126525177549551628391302040200238382181844000361576068945543845678325347206345095364890836602444949762873285145193057155905474676789119274427118511847664952816259016014055370033180899092819555330072736767600071462327653480733521600660276142898174740770919439501476723178418230413981631956317099666314821456567329034775558594279730316518986897515802310606220796659448461698129889410544993657845416333413156428280420148749854385382246937786082101591359044930713182247045716838700066813969941643108784038959810869506613812785347502800580437512329305701387392572946623446998972665992257814621366642055112946906724805400515481382251220980385689573325081149350695869655016155031409244283438740065720871061050667308398897394712235421620189506587761952608631193245850325999753405620015794812336988962820056139038828287316124240699712472439923175834817859079548090983962645928374763704017284772972060404994103232413086848513321717505064389884879219292131406534613966193670338002621112659456765411293621392071069324380021493988309972076936049385766716474244327851196079379923798132706998707172000904610461356515450291707823375460464409895774195632020717444984005691411738379893129251346136359588653605656452057471041746689147118927546465748464951097287183254481124419879907421858504228406110189554740071699299758516379682223782513501226055046576781000921140529853153413484660265799437386826731397067597626410486301172871119392965541884127649599219112126293572315506024536978087273055967630117588827347235312038019964475524761506133101578436390681467340887759709598384824307745226375830272454380333523795600594001227350148248532829405856362932266858458168434629612981146303717650422048545344544517869137232437611349326995979229444232749483541074243099574441410566033143733881054894860913167667411057191497503209568797389295319513443519093499375892839497364441545334490284424355687395372658780772574211973195539960470530149688660222724475091685570475647972364801214399853558715395696794287290933182372506531258921542740457657518626304147893347457756198276333509733443935660443480041950650287931524640785837927753331151361826342998941064234372878922015074993285140642008149884758507003773888898139064462365574968448519359459634802878336032656249812837066424765626692255317094211432191904626152468912697133357053874787509349408384986270989526800933246292116457786163705242178942894191097367595321646088099770544554976754266558745733260386367956258333104992511912258807254251866226684153582633958400391021507784098756384035846927158069184453976961092834954560534052195962303958962038693233623968986853012522107081461919118281260677079932881035289451889676136987304222039566495555493319555666048610950541993697143608204647168330127965886746457929925933608757942245080648961154475325631539802890046894848306075857326979044813182306432558642796121352967940804062700124731411549562821497665344710021945328680518468918912649432615704782924155982681605507627912145061143147927472369040053195478817071962287472604559857857814947888071081902793943444669585278778406854644114499682386018562502129893786818261535146973639008489825577321076337248036192453067465472281964716642222952660193276910472261874851126527521016791781548283526633075923738563349592783960330684253156034625179120971177875426367062099278096590540838324582193653083495477269784543010616494579381687938823244026911920156656365881511206006492734098400787734394090772321066793033908846981516983272202451800997164749918262926903543075193339586827472376862403352944109984889862865529901103866673355195731153796313963627921924844232802062838312422872733846398313087639349425996686921195780639907842170905713020094562282956812510143920374232147980855942106967104441237333323978984264631153863056148856005804022993325617209604267342038531704695209523407459062108911437201954014311627274221684266062186918499717696998175740721655614507609316467867505878287760492893142933695282036346681609799049368980457565839785385018822938805039393028968465503396830197360162336596568955122439583325356049226211454159580976698872226572940958764011919366062073196657778611927415993986129381648233171841756755849174223724537296203502418106513279832748315894060237910018605621637785504335946016929563270130690400132798727476490514411600285221661147172173919471799672881435277104778294857503077605723783670767970819718763897869067761568739954492049117372270037690024597120334548548554501915759759135066031758280967859763016612130418926376926790827402939845168798261114296998398287624955948432813215599655174202721502505241423014531197506522040498436973815133634487985877236078100603319154270140781963562133252759086205929662614240001953568229825676922565062325696305259359888877893455601135481854369982478211895573858879198461745330528446635101970418740655170998601968469969700299799833272498935596308717309793209839670074875709346952156720897180887363376430148439442392608998637722509282802574687623391172268906060989477235599863103039934512156495678098688748387615640560473885131343107646179045832622437500727443901980851032190150711820721793604621155363051790980801902079263450941812461002066189559347045263960748110063212412096883290774859094667199008353284965562087732298021466363238958678059224290364733186095087023343133351019060264302253811151118795396317680114669304473569348284703955856602307643565374198405091148526903703592907995828066851597709878391623358307344708607869281368778421132014466927940630470178095262636309587589846961629310407125542540810564996554840046861241983107815848001927747412891933730838426267725447378633200875239203365982371954828964466542260500851087996421783718646617264397613308639701836673340067663089612199026637538698072313953631469181092620992634602890035831709631734002120467172985185800169728448713947841270015850552858062296648267463569886787862666254536854071929945773320977255392300615463874417445308136548948686663798292140646138922252556607571247571092594695653005634192397863013471153320158187189628481772689883492502229514534490476726790830750323307193976994992624889969532271681693593286040324732153556827600075185739197085658469560969557042837131897036342669503324220618036612273286625323997490307502900612166811558465471822214345505501282435058588374861372715790758477311903859086306938697233245286056011733086841538729756134037082998728290328688136200396469877504415437855833927293231663895639267723593275889923689446792870945996024210360358899581575947942988002934933100804517823093928642129928586538975944093614346106099228007024119008417937491648278962203310792799274355727464341037936498846004844936825793248702341610224631293312225636226020966687750394492748619075040164954918552244641108642869570251729840555503819939580400065599230569457489195783936599461449890232429590274951750110830303840730532858793128456950980548407602119445071393535429473928741296282542885725020864462663254925539957062332585889265119642045929128606388488028242919576045676857855911831020370867773980475562464816315745807323979415660117887685432800398685441861000760056273529485641791829649005974378972291422376863539397756680558961838641631807801086500870538605722053299582801019343969702094286259494191622713050941074271191174872999187096025726754591724233388040175109721926146016940360885968667991536181638736234531955363437393387163901061101255194256933871280207595477560869380648336578884355955493492265971172656444511776835590134562190574969426521878700698168784105534246615719406285455616072158598385244518181085905161372152232400501421346957194419487677759450981588187118923300804577072529683610056723261962745454748118543105324481503769144306324072730700919990717437343029737196019233899317847619830830804936813506583504688009718548544730728590989692164626814860354815744253337861987937563607402767168622830168846181957889684381181295561459517141066327889721195558603079443205492694320617706734437553153575932192526323255330285916579076501475291891446632445711672472786185742318968787753627688128621337212249726236878638131829787025814876096310951849762549428174810930376718649249161605696323610448129190526584445346683977013872230239693592711444613076154141273405069936128267645511335340671513291490759789235377788680673524100547965382765879279607316115729243908838902193264238487935321840127580444967714375525818818520809148883906567302000902027895476061798547391431685150600403592946465219346187926354158794960019696309211785773953853287766606846704875343489093539404478076655000888537640467889486670934244002012937245894747438921666054174177542242953781821230463574534083120699538466293524326217902481775472251276703280385242643565663741139297596222820862353222991271447413137747141840366241348321360420159285305070899599454341954589584061943526034225561671683110087736320331163583988572716027305449286204857210280365580078105211940486878919046591909305595115573726883117620082629241102527107622004565252297593471208753631107468379588410734817357672970117967616258493308516510280986965473759851135837972392389779677322052077345505748352077074978329915990391767785226067603477675381476751792228970108966978654347396914997828780837482333489733241727868379015733928687791596725228251891719413437246204865261202898172667680878142781914034728816835358220617078287105031475420042195936894395067541193096877359870188147998013941007717782544467308848951634895342405887871790031188513529132189996273894607585461654331836684515368483609394877307716723595982611511655650326045471752248961494034290873738194414353784640488318697984603943977805206748499388878476054204587722322777001970703770573368809175872743446927537394983745917320301874145588848357339918152741443425940591830332930734484448707609667112568020212295417511777811028038260722588576281157236132920280604725316455023269043676880666462646605140745390842005127304141995938241870365621909922394434217681046577502304742829167026446713286608821854117031689856720366287609443717489823630567567785055631323388903499419430936729977674020654885262544728167059756563299807997631883984024280648058995884803885408948365638677191907493235108411484194336887986177019792237333776600297043319785223879210178918313438654978761148664165997267041997735893409973007771664320041261920314599949391336253952464919238606081971955330667977073515045964825441121866603811678014754783261722389770019165216967968035460487725031710883641824964328807957059431820353770622251411564691667931992592358162991734326582229274856408980401507381860901995635405911895816177379597752360735107807631672768447939831564832870753912937913979791318107391618923507747982267660292014692293692675179055250631653689689537108089734760723258012747307744397076756920733009536196948642995850077748386403371008012293457882188909432918289814113863280211115144652596562617365517175144991111104475239310201481632497475465055509198306381750900564662470147137584732168617327969613153073394656163514913829773306758001347529944110242361369573713122095407962178061711795278442468776647647743757385169583558358497623602964017180656549467482837454108324274117108537182141237303733609311862554298819937221813364790539633338446402491546388589883170747117948696081411240398998663141033426685953491067115139638601583543509152365572454864403100459757608335926791292518134138528756644334409084279183704260874184438226188518718481940450433599923204644107215729036288535217599671154142521236360378431160967466169048374586626762074482804820768778595972102710297378609304054526625196999189711392384688945340684179074082874197722563234430895226227874254783790446811370938987751572975740239859612328641452031636683021232804287875203491872657057577021955528724124376143112205630331804542579418627507669207466336343739724592523935875068193701501424613060169908860285317465948239059467307096360656316192547907268848364498243815100131715743088683189390232717588794286220483446516070393993272598586425070693106232372848825557271836258296802222542790545382174898720688455937168035673432167818649100976531356251783685556612572756305859923616667849279820197029727556403500059558609884265504580470307997080806869480323972401944560309089004841175390498702603084997785773016639896614019817924411546769977822489690211267018666116903785642684159031496848768674570295914343029385163896749977858951533180004226007835466609804804577422060465422396094192103381812836634903250363911965203325801554169388266524384933265225730453874095220934058091227301274499974929097356086367068815192788003879141476939696221226743873896884279769501782846192936020688948684614785646120867463967057395211595418161786070651431442406534848570437816455593931288317518373459600341343729396269447061534682167583198634878559977276621915220925973203628915198165962523916496387191184764028996076415823708085734442632637789551051086514550758421672885971216195574517072405719542392343509801859040928128215313339750539524030451044244417376580636127962610669996495431204934650299388764596388823263524480705406745460375036854326391471529878262190753280497148844258618693918274739254060407860187685109002108647148826230431896217628908024534303541145703140646203051818386658066391952793438795339116543160684430348153259835415972798100000443722677924613466080946468889760248230121413894097914598355300186855786515692987282644031321415462330741546860655132300573970648798852385857968257927543470300253124419851407594607538271780170949400585714681502350715750134472876521555037416724712981520673673922400845540069112474434461597362389570351699183638753559314173997431738395981185980810922753632629879444690040162057186809876802023725950007594164269088529956505857361906172494735028923251784551832961128663247652117685663531328695298779627836300159574557905344964526301949972677352495544691294494222590887836814750832724111431668193247079301609374744502643108515002018118146801223559761030219591348836859647506473542066903712563693164560823172465439802357746620933810366043514448811938082246320877540483845511419571929717628958563077272530511635462115663938116837528110676491421972485668018329348130590775476114656003350850763876158874412771050794378255864324860225781266425802727796980255676573105196829304458795282888044428173216579193504840330955345854046710072156165039738600275364703421262245686705847505535698620671634368605989888443031491258659530522768234792342407732357959105800463772909132412861174649762841424676896082292029498138637117979419120822520700334555038544519139946152957519032568323624467277755690819504682367528955206445210753732522548450236849696753617595151986476046538292180613409680232103692974105129486101118971912171668732277707683698704054859611567974063625407821287991994560844326582010364928622449951797086960543590156683631144715862583119088974957620050660771393380457206796671514754183699645400518599242448251161059817066348245429930607425193633563050824999444380780133996830652747098346595667871622790886235501357721821813344450848316450917324481484808876874673412872266559129334400333536343830902992453054245880205289353015993238245578654021374984033412546167993779466357530391346519328992841108484136323622886809526657843165322670172606147075845812550721827358126754951426206104848899675973476765170847381005458735948573406086526831462759797887653465429101675799564240395510059226305470938291977424955049472820419520116594392167181811173655587240283478177001516609962865191657273950511359714298703120162279510331174378436929988452371554881559288077938943995015316058631181372778194195942325902381199402309963368395280977802715615658238431886160993244575319164628611493795330823467960008621980297151674807211941806380102313683021055974968588320675352193439123479223247663074995786723346818831927582855193823428233684365259560086564397839929752507388975864208474264678247025445300200589844265384267539793217691633820924791140582388493874003445111055832070391142695445846857082202074313977852902930582478327425609819045013547931245624908956210894381425125700233973740119907285465777959109896460851708657161887285734651576619879406801115182314117572507597579054140895268535102757392191971279394622589395215278505684096591629813866804568247046130635644008240269649071916148215774570816900436785620240461629255589280232508032282923375018064337082385030697150630545052979398825800892834957919053387968843118305258152443137503525123211092647794475385581444619122645295859603384952958062187061656411173784521642486779257939707604779825764264907988773967448800826921705502459060607716601993575795924565463368580497418240799981029516574878171141536864774005927005241127748612922046208615955633540709095015350027856948303520274609792671866016683024781775724447144808957981881460568832624289397584085498692628070527309265656583376516737440215241612196093163266629854195158801683325430281416652606756249355424982272714664488422416147560422166629174976569841930719444062942616207223507465245576151204418834815231951586068831739451235654006628367078882609039445384081430423982991246981329416770217764569746075524028801100527612966926627063465757373344081686427448028960112325777297484793539548883033507656651606644761369122780868981905212888277010795421686712742356220300037403844070764061078607541570433010940929696571763028397556961827611013667491177443731061704179165742307427758779251088208452858095562726523595345029260339624702937250534982395605530432780735760118669735698310822153023675435396923211976231803096917760588663128100073074275616406804105340422862082459134853931568304820327625912466664962631534107122516544468060891287454255466382141701755629068104158709946969128419061298933662016051466599872265897228281923442218880857412165097392768023353439301541637775481180540041258690874754842108097267594476619004868956968642100939467479438547300113319680386264568195385886679318860528331660276385549181930181501367794668630299516844132402330767310693479670643071945562587244706008126765532270849608250404648406123222440459519476388943343308570101962600269059543677846886233079865936626661693299123501545197640186666064281772113086123359323076035455037137802809316616044110811516607103385139730196112753189957040891909998652547915184547313802113545098895950964555141106191428932409440075108335482083955328726820243835206797365370140076804666784282192367211104683700631428264777810538024435829252176575023216092725181228048822480473951472505552865872876630281097565517819109230691959255618428404335817137368065149208439714307617234124735269698516141391775035527176422540877578651803812774164134778582741647027333686331096970467828520216426442827006891713578445358639759894432849219112009174677083039826353541280643589149331113213175121986572119602613799104501634947288436156780982346474189194589083887332231176212567065544524055660675092267482781214266943353764726756077458253504151497021883579047471953087157585711050758922587903062310029192863747744393560625611017801870646026662495602931545912677992985072459400094409571715632140830575169315316835666061891280243616724526496320946901599951026796870014335664822450161164858243929607288390784659240882595213410339954454789755377261073033034612208414666486208300855941838669973271309522645548293548650257788562886547721741072630256771473748738278251659231998590119003711434215098646692035704595454800011248763920842455579597091574177988015162826593169271475902700135643211201854603703757834761217382957037875605778280373858637438054130818300250920413590597345578572161301059051576694033052250279181401088917613992411652834919726776310755622182953207663112465937190239518894990561205314168763191126501066215730546324091485104931432764107360159050626141141910505688957225256323285724529414656325133581849562956516150095880566028951189929095535618429184628560334100368074452122832242798027301672114963982245478333450068875967651538940217106295425357315585999195019421021591768026432060851687585398832969515562849461365291783478325626234887575987524153578510978226668049100755908033061350616857196984835876979036259064707689028045640818785947303552564166668099328505233758265857591284256744105173371586427738799767396247845683691764724522412201430295177189390273109263599894389431754012732196270136558515620379196132378859070764646067273370121666660421646423489265791434510099259108362112687631089440092242331023389853236644740350404226120783092188251951688385825626742245935107343114088357516663878413868414957408874298733843112781562203817931543969924214981824538801845185659266551217146680152604909371445852786892056582354289468766460058724668508616991189376371885949254136770408461795798208108565744772166670239426686430548835799821615859305029988451306613956152816009559755773023676333215043578174174978514378025950314061818703091482154717596281232653655824402776012713783430959814155807824349365425456415118618426965842714927935484065448645854714378330419490201860737515384975818964213739639788273169569410268154990526325630394407306540567017636557940057765241422450997305554949271316228279104931950840007639279937617630933182829407645966120974479921086604707867172462950028127295217504643208305677700127336576280492295708934896883673710378805617151566827896399697482509897224232234410852534346336960075011189878230155098487347379945467058076374732125383626047917348768583672226931953516357976758039597564431735309235230073854450108124096297650752759935422631688628124964709973152310812102162559817147023959240941006964798481501599612082556927576166236100682877164055655958924789558318139429703836248230722059897704845554580435610875684846087284857836481741551168631713232689413479964097912004705038723417645223125310684592056470884444208979802053232788045178175716453545504187493760460281067660209376204153671646667094807461573108907596776248523724958245258256800337134743580076083236068798277407209450933240349201396526180002665990862399359357322139084204786406475275781847698056799280237069113447986929123762436046939673916778631531820049556051073859397503626903375729810258903946573249016908384148837434745547817916732189377330563476720725273299903553417974194073161806239136460255520434354700789687373637647826948866960521391370267861640077629164163281805522594480959265112246326799372240495964571605762053819539448030752708484802255418804364496894922256223756159731139047760541292237845037868644398094156344166898433515132944650106088579319510842772472394256560859544693714117084653812004454846986652440667185094286955001185441928146925676894420182498696960840376453779807734714630974085363987932320029215157151112608916630072430340867241177406890070631055419001367925877106104815716323464704769712534033406463714982260695666954806686224318442371892361236999454426408094076976400864085913374631243515074481626510483968974199834724229309036112509515131639859280037575656678025091126743319181908216150193152082713457266160006446761670061067684514060232556071582912709509457717543501439994428051803721632836116923132972481712373621241968352988042559017616620833190833398404733472374302675821364409281455266727676848615718916528313902864806593610772962694438965154889321752811599752962768386494450781305170165108781558171733860263797227965882561564760698320929608120028830819719463382553401182705374785105592952109545534399774882734714227632496418293161522690244885408027473456779839346762026342980319080558464136285110629220397158466607820962373878532826992570433382489246577516705123395284787451877677804495866065653783855291355784399625616025070379139001128543997088100755501768036758247496698619314696202097018305931034932005653528744991939079234207770472001216685268125569901071379857870235950120720019832138469379855907379785857407103835132082841856899441048569309049932083883727237296098986937708191298684211536909878469787800309459966305623758888843687798899337467239344651570313779365425224135213757339487732128455708286543959673130361337826342484941049426804127135883472590271789181167356092875298998137933371018836038663981846093797646823438136795321501393513682964078822846991552982435895496850896608703842025978122809637482693408122970442202239711765428525947853443349272244166145311864070054143973175446431086362812731572576058365978757604147874335042481978647863336597844502309074924818483562252977851647174478477240284908441277320717291364593067148128509514022466174694386278685948302522342855441677595236822468169036508417570319703709601862689326255761193586943099810455369379147213231827289827606360447929258106079963999978845664479139774265223409698734828560135828764480442159709105169681305635742159038601472935567814467576306064899033476134073096859761421042251185238276126175370450955699004959369366565343358759225671347091918656716950247715144921391887903469698563109444632134981251891702397342456915422343278725539074458181059620780747422083569511922203509585876302725916766011340997315598548972881456795843713505030505560784126274056884787201523883820431961639614807183040650089678129566973858663782481123000400386809186485696750297457037681831735968029192771319211879728322114013793590732991644074776769836317945874836359392661649261146161303681589336795144560483927471557910406988249965032241694132079205839346175186802595585893229039213121660765238098204850463040419168379960730382723436753107490335018983048370619289126068963457488542094433252142209757180704832653699459610465316985923515374390775114231575389127425679793764892694341939857941535553188865634838654968038233123102642539897516352358637292240077569831462800587786806714250144838117928154746240343756355915891321950481220338177399398398595110175488271736851253575457733860937517329766276115706557619541692089969495427878199175598024301131373752885341035643906603410183993720882835777539087337421598987941745789300702438527833493373244249790784393942421425914727660603705036314962935956891885209514018681521874178999162125061591606388414954949779567790379870806621575603195115259631375674336066461541241741617866464351994435933148063340181991970979371137618778113585689328709118461830231331971775249910281612325774576137016649226230650274527616221158480810979659698895311356428665385085518317823599678171687939048542850182811076750465523344016635419473406813393157671163983740676117395350340655839126200642063991461450475326950337511803970703358755733389007750290476583128124287066525656940790539172297073425953900735708745074527604104171863092461257355781172298400435741255979918253721107177863812992424307080165936195933056660218910207503074774109958231535196259949181381945021964782609495774210015461346326389044414775053965524983424556262267882160444386366324183194182174059889756635351514434302527525146093202180212213943415673569372893910731312295198705309962587309194116157352904966958870721155575738654557923621289938552652857103725830095221258747846541114590860718942469391382495962051472640271731570240220589630182439131466574018425318569851699469517223608770437713204895131258679334283783142219596351441507120642973909400111148513722515021589934366941168331634716269225875925947950061788379970742330358179219691272251999052160170220089106090505657906880983436805053613664562709316634421522113823434794678385303664765129055043332733001978563971937774486071561586087226385752842841045742864223526675654332427009341650824416985634674683339975477513963242521807313441333090391753656446912321818288646944655562923627086723330097695951619597417849693336245543356661063439566013023343582602482610537984125975537384050302790400625056536856991108954902702570272693706743880973136646740750689366907699079868504314942696304494928239145618234192590581819344699179338970423981746712030610425770077460076290329021908011013701817626283304281561430412072524563864326490053374249894129389722377714372540612251338882628095209281610085897199736083340322970829987485059112008737880363832129005742876845053695886036286917891170516825219161655785867383987630540118586297508119362495004549905917216324245471581836721612534717223949595639807440574584336159861459297000983581858799440729854792286252444702760944743316228322700874568282837361658729942744395879567954814590421294510391019044374619824511309570585580579044393598874433319387450415624048561656661289932714811979270610052024858983367187773869094885760400449808354718006970343953328745034217368241745307760160872322194120046937786046817425616775897945112189108261958043419743734065357428039358221819298574373949809559324744161759457802903010367746842362426936477510031940481568976625241768734525191066729708835887278488676188155001222863923512239711183992630736483316528650608285054454899768404939217235635099602754353119068401356709907117990159699936651083781427494212054656399065437266966645173082798061750308864894760040648265079117018938614149872374435740671051708178477811668761836205943160135494280635050342293007431328269703278973448552736797424956071167919433720018661822714437837477150209891110218245395568173116897350154778213859450962466806929763931103620370169580314277581956156469409300241066542899383111229220541020566274041696328557010650149799456373595565666157099554983142512448019663750615328524504052351068671163765310097438201790923738044800471293201508821422102618240293613585003922180640548172883777952870921027183228506450547621541009718289693236209263760897352132894937089942614943860641816323891906138976064638891672995739795718328432665724962863165349216326158340460023716761571166782868490301535032056567603321768668438380593490908916844555896080568616917846389668196591021939642991139357847921987698447660517881136954150264276921843346322212464470462139782048727289579172226422425837483222593276999722617089831677482047620687763018647887952575092422609805603294199037705683518241963343935063131344910917182185910127292393337223690824961958064168797126272696319623730032528075876483425829911494657164605710603644416982507349801533392948619125357488447474542212263337829369717500787304068863701719001813141459100553528342725456998214062212279921561658012815134644680266145332020977207261731422675533657777899092205721172852567319335398067619301490655364530148654349265105396529011697362252771548561272708955844460204948718858783948169096417925916801109382369761151139993105616511525351389903080663159932484457076580504408239284384950716936410036365930578640076689057898204355496551323061678996907108528364623679789661520030479538941170910507358819777678000262581305164766669700042858534584042937535102244605261360560266722423933481307767455582013472083853476448914513037471047106369940962556091152690118552041715552681175509438056260763723062181748670270737848187921959397883523404602662050559783271153964536087092211930762974595378658459153688353293234867449714046847476999358125166783906529934964299400512046809033814663756197552023114160818688564737018683056149049851405293373091789076787229336727144681340059075921298383254520311575298232093075952186415932829015673514608288992280622639954168477405113073204388528137206541991219091930585463823625828513220687851541941734922063374878959073119513731467206743860305628148741708486080517852271049110925924229310155727880578320570653279070938060336019573959553644656890639105501086508793013747490482369101598735117259767951161290290711067193146802818902745689353498457198316175900846957164770789639667684334921934677420661037084272568625819344768877841991641759081524243750876015963577146566013622857029701218320357409038825679200898797508839275326638032176408878514981873425442625911500614953913721714399200163502072973871989973617033598684755297699104432426764455548702211790315145869453215404242587929752493259629490810769141974782161848682474504207676423013848072812882300482350238082591074281194596696478001106199376916537809038232905337437133318775614461118234467285765596761774908689833205263191050732272891209286163508089505108081627254873253452842102927011190133059039287859462502271208809474095951604618596954281868935562962914653976601134483592071436028750636762367109025599476734285560942632603201876813302827527851568252384157567163462862675259202659879634828662688033412067755901795022512153152370771469718700943331215600817846549417436917496845748431800602424332538257847708037574946913546117503184152092518743244274840488821185664925194473123407865720377258381931150791205887180830631026975260861642916957221320314727127147240301824258767297072391583307777255883515567990224403233360809944299061169215239637630985961625790129616944897043084393190515543783861488320035878304624788119896305296219709878900153447429240590087930822015993786099255924964094272420506336701652092754431010824587362153187375444696647055118835676463370725949285350650087377661353672120338051096713035473224269037963312156834362167028128725690171129753479651522999784702068959589710701749519333918320512974323689728356572082469930673907251054213828472219453185208811454486084116321562216452843943040820088648551303204435303163541998605020475738440954883805636183800016230820467630867635075987426570628085190854452869750307134821950864393289508609566757977135443107765614566228901925000683100181689319281380835866992408174390816326047012899824761823545651042009629864169576056008718279736449349469415704728013154616338002387862116918080049224904974408930066508887526699163310571121401831155278964464094720899150353764106735363012431027494636134632663464619881996214954584880221778876265921768490415454024090887929661579604455640388310130727215090600312795506844965000251000231479680049907100972099608196817225521598369131300086471625258577497396052660489334514441297519014856071196041584874966144564355809955334922563368943178830719982799567403305620241440728718293045719216860831405153440565482141719244234969990860015477817532267728011266300947029747466916697935023527125345209437128532917336958879575170840272879162877510588399423934361182422360878784129008293837693851741841248152537625939944641928714952035895817936739115571475120017471290419727231469720482373648162176481660207463655919065333552398638049533280525638438346418803854903394227542970482240058831452028355553643203295686328929231343159529592762711766494649809508117730155275516753870758946824620535822326826494110173330081986245062236396779038563530141514868820965596290517989437335890311496886444697958167136927322744060166325708116422142580821181248797931265817834965975657508891767110133281019612349026404297273611631831382091145094468499996484341001323628802424598192052228015582686489166053620218957879263435029577055310461013083616501514972678350186614918795073177599116197090097359924886538312712157655316119481855823272236439853331210691551536802183030955851575208153490088547289846554262721721702334934987680787918170262431842142635975888845470367779315051112322400672614131669089621713362527850072851932635319497004345917569723600664500200306003164191036793859246671031226790254835229658765403703325629264191625144926535762213783163970188731975940312513948004052471619768202898066308200820726741243805735303441171127574546473810626144707897484696260047725964290271697525632442704474651583632799790976668884047732392650995910863390727180637447380676803588730153684703680734703865216918956743682915756610064795096123491781104025610732112255648872651250216538468380949018720753788187579066012834288444456491043796399364121521879283741663008754998682079644132682452910099997642860060838472158882298044427654382868450193720890711043366701874869095338834305921468730203204493820749999239381046256354408886362830726346554951000730621990482987431459744395369965334771110652003098932572103461617405374385903189048715988810487573809861393648896297076444481159911807717027471406683395483975674881526768144267861838376264450355415966184405013600882826789002730863662515998859818854864593844720789679114452185850018129607684055986793920012486720236705250705199865625557502742599305201517956865662823574294749331961038300137146037276410807479688667506608197321903204363898750183751441514176304423546634624855477364443253840024356524931676757792049991330736636712209224673662890226537286198618596674521800346819776785526267567367882500573574418258775811021152421698065329824440570857409436978031029212805159591688252655669681901541491543349834456367850842436106144729919344180964305026585567203792330427108481769647281992405592369387455694695121887820606011959652186513802683979641245792768280092239250506658223098951370800139113756213458234888370407191520025459106090470748643341661285173627806509171585044735947723270857817599731488874682304011834735557678826748856776996235746247018185741914546899715711638521443181550726346551414189711096457437731309269299887663016787350202392790646839830620548136920850108211551217708236847808757043313614045090299193248829941033279281534810400394596706212878049816065328464221097058829817560522421596950511573609838512884469866440340733960188576056402025515187467339643111137913678761487319435043467944763917753944844728025170646042643575005348339606798353378147438931699712770435612003513458132471236683949245088079901774145232708679211367635765816621490653878857357087471498119013975607959940836137131554391018608139406156152990568545743263007466547811120870988401032150498027869556977539970270194194803669159640920167534883501215661920450175581508799110074200184029548352800753431946895624658611132589602319509439261037261719886881813140471882678185127682207562498057182994161530227881502778735013476989608906378803115571956463950597316800315481583018496125545380420010496195772165999762654270155418404352085251500589327861771678252756292243760793787032889199708023950597964137648407790041937027654880055961400874488472844185313261845106219880010245720645001481335083380041545616124020785701081670439210272091908265055870029018844440083683461909638077815415038301714203976132226901312462318506576233977292152447544267335330840085500911981797851473636593569978911664320021963745419914923741751395347439504065991046540308498407348892202144380432723035598502746114731832655369331647451991261268888536234806308282347610892142635282450555606411318264812646340117848479273644258307732063399618109083574430207623964767548234757591907465910850716101138724801035662148098301748693082793163287830376129828758058268727744591691926600438833594405353285701832202327913136066435976106447570948168757937558130660333157291263371930534091940116376283212181934224047964996153788177127458010444422643427046996492604100501779904486699537793975197665347859617150541193076030703608009581362076421200771842749741230555299390968889918784194225400394433029723072584177504649998583130842891726018751307350129030301646519478975187222674843415929043614838439798502089369258386247479533400028183643232227074299461516168440349107304613177593754338215360051616157147021322199162150642327765120325449235299722552198037284419685323386567110812705474136010962103622374893764595849719178411559576405537917028350465568235284822954742659796247840450660114252613564551831919811749725023567764565684612502708183907741204618124022264752506755639882976646405203237162889674584057015472439210436524884506356698564087525306023417778117098763000001289921846094578865921262527522217488463446987635330342120396024507300085251439159856823166570260839106037271247798854477386454951260282706302153489287529944517232849274347436554533922062995553561613531951356648216066816984052985288072300625839878418135344764076443769689618918696241837522532523877012534484641140670194405477687652107547432042821653126805025778134883719458947607439810346359205879197863289078810094577020471801800713417834835469708383675074808598501188335598302197352384839619168092216655582777801754367433532305895414727046651804801008629645410546069442060233991283352507242070228306443848055286207876672888881042130434246116061162213436866862776724197687466690951230696898835928115280880485058213672449757737468152523726377540635226711490707864610134037232039458611092217468259117878853423290522881449954924129650666590032176881491182648645658367133194879476439380625935714574934790348930336100857430089593474758331009942942408448794343337758212995104697536026132793395748080187788195883012216358949634310116741613400468335964304916325239979061645262013133649573630108456741934921669688046720322058563804965725367781640511723979644866753991793660432067985828623087059810810297163966835053701309874793814482858953378331600494248161865279994618208665613119599224742698360929579243175351331241919865716870235434920307764539464463252816678190267168898009462816258500100850393408949685124204557639450889944484189454246972807916735105523303652184367457658169438756168703408460137739482786067117865156585755906036960039477184287457097939314887497452359972929040648251990482515537939416464435622632942163131179725700671625618433917738635232799287553733249428066531524670330321116002356383484960014358084300886846199912289358061757881227268363704720793093050627250492503213482131569824877013051934462122103598042174442721424675140981499527515491400776839882383637524698118746297761077584709648275205826005738398668204872143225521142138768385618555331845936563581518362760137202233870302006154565647937141161346426847141155652749638243545484189689493033556919654811419103981165324397291006718013073083375412224941984021362742148438634103201138429831361568697968395018550042363353007339822705562508656660609119860142813759571785913250788669685449022539200006049000923899529440298998023461359398062420723501163296032089556979262050119250485070121109470045548829971369137109552620725723272497941312111849979917725875746350235091227913641831082501090140699311037470606983685304647355572045092583448166117246683605537263608302816204453708629885332995608212207897878312916734450812579995384717174685262736703622815131556011095616527780503142589782038723577014699293079172927321165988088538293607397117667227567729179804097966847620533656887198611884761080861549706755724391802700279083634731580866572334672839166277241960236318436582695774965736964534773001799932050629992548242788089254876700688553714454162060339658108805166487643802302639169746859421106925183476665588538215693833659599387510293582823676918163525631791673049365598841664741335038961035843961767206186762829705141568893129104637098553581395307944303412838969682301269181522400725648110457452254602716569947104843860599582763336820590345513768060215255539845505001659214967823217915105663000817338426563612643233839397509263795498777400242099569668322762109675088036385600409384579326093463117733444581020539898373639560310177692780731269579982830684485145764250263147790846594766618169209779413297597871851499548342142842336430030886533404436773853616542002637252147217119496696814652213623023178649474286238114195002503159060196098687198730151250980658015913684536920176715952804451929008102169303849165205669084347503008815662457241711711785224111968419147368273068521052035236040005483124798806878801306555000313093606072050011786106901624835915940264250554784386104432325878943703635303540585846329627374466371581956334955942244918970177563715130648891876004318710081248364326941686604258731784411831585408696160515468153140636307872148556814987572797013578081691449066814428836604752812769009918069871054047422524163945161993449915451179966143592412260912663903322282902814243763715193019026956685242947394503127106320837899832404057219910835368670892854866618955973354701724421164446709238268048879308346983368480129619472641974057669793597966544754946309893530415379454594877816617338817305987199751058661880569457844730343196545959980884876331108470819886080465917068236484729377754444373473894437876143514005590570445643150176484685050537352001423723091816356843853663341872896932809478098897952770579540576498162199781203131878040487306915778144128014933886434439455201880834785573688124525420990359277836880048922698189355953084939148470296352479421325675322196310951870345968840455286878402904186518904595463579094938067937667987639307390583718610737583470829276765803284766717114029445854557931222874306587772659905993712458832578139203163162130492408474983337368304041732725713523841600690185585669881576145855625482924752079830492240844818092529379841330915709032730058147325094413558381339076880465456061866492041204777550070900885284909949690240788280360418855862354536413766565441985706014194746470754007827490767693126398062837643237420406820287835125126229053927266788592038099293253669900014879703839588478306234035283783750434355071975207585478276587749782278843262754332685311547904953466034403064982170228643011203942035986013966742941250008384984702888243200877445999790261274155639603517700766602690511837633802603081771537431036407096604350215657378494350531467235318604676304933099132055478658428773908122812778974492106053640057941112938100071556765447214386418470631288280291578087353905512149027215097361084248197632565220360897986772995980286231113923085602979476252504498513442025409713832196330686800612349439035938413180571554078301867733825054526961810674858058148995291141177056189099250926479871670823346106307415896915269825753214861379793728102660556658994282588075987584665724992367884259742461557169935513124495215003152854020004720324053480306143949441637245769687944237076893107566826639632837435089016095682230018014002897276629025525168131061433442638508634944533255964697764506595768574352388026700437253714973953789236604418279138679235699289855957855934879046313365658013296747384584868251008508781342836504728746949087944915795578283259653537824711139403610493362236025614406659064737059039213498578731990018757015056139644304458135568916031878972757833803357243582229646346606180857873348589131382664129389172742568632467407683108353799072663504727600702332766775041885101902703165652916819825831934166775242138759013493455039789516045875246858706324489930565728867593496216472120578336635399578353935125607432521587903770035323382748419313932762437143279296749490747191574230812999388590056361113554346821735221771554642878759230320255093449755741414783767476207392761153493852217184821910565947675704865681996383258542091032750430981018253704157354358625284739409832534177276169114416281122528103781269528057715271276090152663624532213148138018143523300007467666044971035180576606443682926740644859259521280045402099524463239769529170888315069894751858556538043089591678811330026429086804323633407500665280350962530053148441069432471639209057144424321384774820797439628097039259529186140438247224692066896528867959400741782947686438704833153115341263998423594685705685311949416727043517684375480273417383354377321573990138672657030698838068475434503110519339270712655002283688707594749592151395912288571274081954605847816470499993431974758976065240349564451162612093587783554067086143592874759031764976952282889187822932646861049040707435429182280562340997271403750817049286169429841074140150914168803614976194781032793060612948356399717066505849693252035039421487391387190180863118328000977076247045921028239224418186346971237627006180592277683241378540868274292915395024938637558966854692546139009618478214531122309710475367983203024003681424826679936971974967251810351639620128661723391586149839220075816034097391730717158270488681318599249549539113939572917599282004106049898819255462468902398613941517862919750652434008276973893027918541086774656444834914434626697803803617941141864501637698775053723470760267963840343003923623885113549946162964897325481778639733722823229137792369514197416815915707513492290507718623247216179176246921904042754866113354859391563906871312689401984687060752284432836618145931252983916668915074678665061973715452965935089176906145988147240457542794190476378759546869749507908576107788511176979895203399867455791874114731482729811447713434248767836947649986445980714643437945779900131373739297871604751656299595686950394458660096290459893600190320424103601562480039097201154303191286885691121875489761783454144607466731047997430388709515074537509234682488736856101692718663258633930161677430354233119334048120839774295878807966051973109248989012116872578874910783204807157584204869477254048020272729292798324239621766791749753808107262792805268395299176473320194083795082680010649734048589144660116263402913245425812820199648864793296134605919824614134096094323267583745036447711453750750846380181828042650323134862197966954699260645224948329508290494804291058775819584590757351871199063198380696958997758116602990465060203725227518475925835140876202904376051292734899683407601092936592171088552550540619610958452747366748490644036944388204539108015248105458849736459848689863214508958713595612879180884036204470554705944192542762420165145670743648058439380431152803076180865495211272317022517270106492570263723316079499668986747367953030587707902623991236700736315389463985032082221795061332733540344976773931349844024574259283849545420855915974607706555956669863513882815819799691400194687111836835521518424131551810673542599813633311643637395332037826464139222136501533944416890207747070790855482619770831075670533921351244844413373247395360712898332811570996416308194385055472438324297424225842729575173787737929372415624717771150870034874055268747437769729577559035096988090680811583336340638152821145015783909433695827053661424439747017895836218124915673794109390762496136784933555016189748413356494089561249804902946746905301736535632645442344217542829788466443151804425830072981120305764731325267712802038967940622682077049711918781189589179897394110180952533068454507963279896124605332669649527418399972810265612378178576239881203806778080711304450126537515445650544401462705110462960397971199963897313907884770953071335384513525333872514627955322685296535250165606779082542800007341306502854496815947616863896150659246321063287476606446258797142730587960186745546333803118263445200168964137680787272237679452845809215013520419211781538313463945381248331430022040373217863745672020459402257049466503738282592778024722661984330586959646864569359303989555271154979685154871882951844086284980843421499464660001806655129081557438365726275537012535458089448815024141681641028678930317448204625618617048581492375412710386304794544387581561354696469701224420305190210268810853264727834499001788156922236429377953548148762448391486590825524786735193064322502524335074821889759872841117092921532572994557466858716376852093558846371497275099951562111881062115819891172530390115495292113218613786757717540749069192535949628039511646191776144538235597986932137877835574602397986826585075638757603241187195337475057105529505612946857808214016425501368286357435720604133112801002143654205445640709031704583260235531243629091831617553500998531994065824229621163610701944802886402123725223251413118895686149044329392211667976589146941388367033151933078375610237319494017312312327129123114216519299945049195589974483311736635541354269759622081734116674609907374943955169780246458759681930210765539131163826714003450478133772040692418402098913114166871221913157688535040704243398792876252552635335611888824622988809854702396159243341503479515272320664668365812773553683024951996512084602980887502884744902200979277013374653093196311993456501883640354765626386634649108084027852709783905814263138528187773691119836487825844964871592633367877665029148747617885440548501372354535333522602723320534945558531984956467122989631185924926029717592319825981700970045209967899726849835106903724024576545259175059173979816338527650956711587731176888825992050666330694009860916910688002778325999214392863795282767905096561644317452667226094307474278214812847609471117524321939425014718039821401978812253757000656175452224461038790592479667357710506292874493503238942860724934052806888104779093000824102441019299363460642776102678358354961666473548338134054877953226516796806505663327024788946418118657666031960362579336082667915791428010939379835114630675712724382980388031333305514424492612524934686664504037112162690361729074004706091341189721600298438607033295052973160999198638860064476708092455903903645687681907554267887657288805636864761056629999558679459955050387392054125987980740457458543310567167087558307734242688554846074515337428981383541514197396634168991571077023227149130441728308686494242358561525109698208409240956319161418153196398844497787322847928180785972814295171547089660076764632654550478418796044550850265188762771151221230194736820374115801426811642401677025422367957698117881658158507750508126757651081530868146450284973038342164263603497197281950851910052127806614839861850242295707830725875771966167793990274798885795512183480682174091357274442820027415974747676726258095630590811765155475158819482563748395652970108958661422836766158925686503370804853711219980478639218430975705116096089419757124170156963825191622429181348093093816572938784650895954202875019205566841369367825474925793938895104261086044312261388416670950242443478686607018422067716741812597437454773325441410980957703482143401345907039094275637312127727761827664178542922593401475496994828531870547478675862661019307261920319786572879578577422153727807966828856527021455145935087073626549561307895934112703637217777629055519351654379695999394221284859015061157454986492502705943986899731044437691813879328276354725991090353343173226482763717549911842261129912396845981187313043507756162648585668346475821784457810802719661355335877559489019772249530689502444187696356371944681901592909714992786309318682747881109780673387672267405232224545029257912060218244472526857000847862292549389133809756874900506068414636022739340395826967692675838939600113569862897369058422156976025087894451244525641369046372656359121402276338789429490672957404976081692378612131439340040208096645884979538054907561551205676139355003872630958864274441370500035523685511657117905896268899936634000114245844159838269091367980209557332477996589953625582202280198960486084677415005806750933775874963327036444785555889931581337662280110750460652313947104735789503236714426229780134934020278594515655129304569709111493148078115163411795775990151824167624198173407284288642053046187282871239250075755457107613666064372550801599618950864086117718935091111445636217238230437210777507020735141990853523496192619253138070499815987811331998190631624518270213977291824048131211723691445743014412319167864192406124183180774223305870196902561824598421561486183652900664600052227184760198921896613145041103441845160995945659705556617392161033761644674994258111234491753229944423074911097443151504455825140551811241375756268368990148347907302637778727872961249559410035637799588998440074311725726783774895255057959331213353644466016492777484075401405115083045600017068856170230015578093289027720310240118239140950690303390479136408945802048630303700732513730825184188763407236420611263351311555125867525211339623191243813667939158065306688371675585839690566105169757017089390911735930578032273041262994779313927059316800573585116872006326660278102563216585181274431009185077547115977440975457601705373530021384425320351631001405986018438910305099266670060911714300121282416222719221665491487093181599338338011913516949926022447280124337855378788990783695156503137257010684038353414844223169201828136318519369544653303743077867959039778524634672459574459301427463142992565222258278139676922131843391970245976902211527262972301626331984444552253723521869326674261651135110857041501260466795453043260547225005697449342007988994659975728197728826842456321288218009641623711285815682875981904446447894675002794556401472092034407610935434368369995403180635360181723878629266338735182446360116433616621866428534287688093853483293965028104198668626648480793775094231747108529852660636652027060128524049008842819063921758690168690329149857774963845855504354122552197139576017584438549397956566070472545038456933912432136781034084647549510390906051760769526916098302778077145135911077396743157982343102304156744293806724088174874195830908451597940079185315256547645685544962413802359870127361908937000727765844369396979447653319471351585254932342624060289462997769395874765867013814309338347363949920898715568746504926008509886122295672610190350502199263262447427114902165269479091591522167318437215437467633155536196566948074510803744962552513499179948437038618041262627212973039590128855782219950697042062206363104014551833755717229385276708690031918979750989494696162284748973112644677402154311459497391048344395722129490769190970744099613277947236114489599437687318692135089059581673167224845170871288586318013594765484473403355206246881620656770810748164717348724580417679394329903019327812607570778206157091320016053188615514460577871688847593605950359155242472015071598251794596644954117522504577322754323061761053998663602875224645049755531930650484818315054477147400203950281756989560383731678943281563302840163363134636497193946571636693472045578230360568942522659150165375621048484125254273717928235822230343366614404159279174547185523205201255276559146371889341348213116552905287313704651799172650005761862240062479219001415935909492711013521751298185562146742301064927616426417428469032095958851508258703487663763950875209704479630357803987588069857856100716307399065369941269995982941560271115631073619269315007524172321762933472222222811928004880077912989428926216112241526388049821717115289312372817319219659017085865644026250856693324861571106085575444700768713565021571637318013502430223048537734977637951069983821230657422552986614569560442626864471324678996589802479401674795928806871041691087329921969766644757646631572201313967478144743654016150128848366082617361870099789323805236900704670344865776732169287732202140945242050873156482453572356314433903903662404464252232286292078436779979253447266946184546458047377518147174598629724631465231023549471145281567440930910901971855391549548682760608241551335038632574456633789802702799411879201986260341128629588372520635337699270373617224199524019377118947732460813712216361782985228973098373776137591997071471294230696896269494037571561808841684201276028743839116024608151308448664951356746061809450035382334427535801595118896806975480416088538377538172714177951670217896213231702599182464311613985290879796789453561326471393280843216638303567202669498027650665262839123324522883772938681750709209740288076433732688513807718607543795578199318221047643241862571347659830130295061299440227961404819832068719116877364360970307394421379141060043734755751984952202407236214705637636790217883065007294059750879766270811308606248577175664778265996822884602901751003883939740421900048243181855037041485897724406201048302344896447567873354497541067180004249989474649742479480545675659775431917436399104842637454661488823663139753088601311559576864667416400357707397532775560470345706127674342562448209201032929718532097354152699996373521280179637589557050966048804679525912919891125318538265313906377813328120898903758858504003232283874438707152128777626270784654648211552828328982357718900286553805492327085500865690410141403972465668872038189365698653974926538209003161622909563408728448691071132804438341692323277244273661352177946429371238759704608434425833286241937096750621188676792689997621924078639420487812151844930941922790968143158341576724180634787290705678730154354847735779488566849517487386638743797977199742444655378156497792405244815338389159457072319622130507340227650018118327988058045712016913387148046495361841224866615983744262409361925919172228919054408581382146195786372795941500658878111671966556601247314964396023380308916333634169755434008580368104751658490200370613210187455864215001795862958628643321561876396256163651591857285895269259277252076108920645702388122555625512131859550748805938827826818021408569718061665504401981455702246238524395547002159778407921546400689508043797138975474543998226377695074170656127707832001641932773954895147241137442923107248895895894692721173796085859054272629977592694785514104947691108531210420503288939442781287654039714378988573805808492819979619946748689378767009226218696712575128967056213246272736651753520152794560255142483141997721273115045732611032541484993533594964343555930595119321061484639175597967553109157807411018641119577204364962560074041229167541362434720022877411106363803207144956222361030662664612313980646420501885089527571742753394585874290777942682272694617210543940877123189989104765651203411684392301549180657633967335486508998752250009234964181590672604302295604204096369511007402045904223256495493701606410470141547449498586795287125669552719145869160993246873965795255922839935708170411558571452084264168104832348088534035914166096743612514110839969965825971495517564719958546834971742764332173451568887177743887673255873758675472219210074682282219919067662155760690020894422394311579777720298282576467415634017204253038526213449291495294181328327749913814962375897723980977940653325577361114952910718413761496199915448166274612393743880669070051623203681073427005625881180456969177743024124127766210232347708977406876366570526481019632168318620589142582954480117227645504817502197506269466192324402759748007008005154493900897204978497529662561718810269587245825640508399060287691065161119572674252691990043512200166251114989137235799707638191088703322689259028282410037000321009894492055400921107843286988730864305620097642378943859465532136221605370087179013422746170871158040262003751278503375901502276448042789197392076012242925178097656751427302725757882367901734300336139174108815026887263610831423850426427482165846678533132729175792803107584302119859040522266626844311247126882492217938810802548065362482339366398184084380622851432138680375771894595601842607699932492854642148147766955994278389905967443309606130939128715456989748026016193932858630773137131389031165239780590806683148991134895189872424715743449692157538413144672749598569966523026212367690121358605053640071348792751282154158690769588062247463619899273891762053278919368429037801205702388298520156836475903985001271366072670691514965139813617043758914577855477658492468592505902555803929816984098590693264271694635430186830859153249860577868386629512307646725967686750546173567638008822665379683770640939392218017255175101405906608994851422099323475193450144160735125243105730108824539472754609241775638386603564380011039026571235102680912310481063149843027424458566561517891791466372328005340587581714768091486934343159919976584300310043240702212791489773263184454428255009868024144239560544800807988319896546086553655274758957494368475868640437102642955250968960710044992968769749366950473422640354366204976619761220219281218749421697790742008951979726308157537692904544512572377785163750647642654327466443294839127779105347996299216753317175890193641353099859371006480330415194227603268065703246107327553243776377567089407716029041478876582738917567132551727678501121248020339165615557707605004713093916507368323112231251618072988106587570468065436757952982463935241811291900321242129265160502195971725305017607403465175853453018515725078354916716420317708594310555845710296567310112772947735472490877633166721302593181666233160764027154695186612014734350766991004467067253064697879321575084616240243602381565595631689987210920683764377090737114982049448029918657895298775429850560805985290525857572055845786569955066706184751572235704296150065647467430525958248760017190148586986026352285432458175833755828242703162742350377934163749677385708331678885532671430207569804226422138351109783299723538613928596263013372255907214624985977737194472296660470995895676081916491979585460242924583828225037393579233241639709614236402010234014000683017685361257825651367900780599730325359883569466606307589452221998163684931968330815176305732652745739054195100052192326334925724797721047692986906033634636824733670932673507980066883543227483486320647986504927631851167886271109752679431567469557110252362389707667097413059660580485846081319475914586164948630228022306951619405233766660950659961947279297387467901758454283795631969404927149836795677218718957277382999893000128931024405035946136213829942047392755414073877224194783947910033299476644177870058294379170681938289263603682585169379370118826820603908510834077762939279436918692433195749700647600632853362091510300347289022027294750644952323805203104002635509967258776541956409764194061104723694729052465305475449538418821865598945570657517900887318327554025336646493754514841247007106353865263772937122767430860041746563751058437667599550763663411691419606951196925173431721051078552138622191866744194742111169373394882773278092401047604247498629221351835654552759747510513332782872274799797752509752466076572816707891651043893973244881482271085064341790009891662136382267814300910255503979041584444525644418798259838930981176517406679954611370402198624687300143391137626842906733023377094116656203020429852175576667042778285003151048902587389630083730221078068151933325981371868703566558419910302807308524319268460414056895910604225441602617782251397669635692265176532629148086467363595602588237267011766950466964386450867293935156314666589836512984489437183125535207887048629995115373062913413910313658314853894656536864297731266510555870274441784180033687364456062671381516058784321399150694910583345465574013732587695659237328481571012519082664201196612995416985670775925371417646303268374420921884889298590915712217542951574224218275941507443885982685452497234105961957566360626526504545085598138059350820464891157228587581937676976351745047796597086982266761358121781882352585407609607122989249758662947158732891030323968554779916671233292713402306310980349284695289174508754358424972712611505713307552813033857290702167764603905436485334220861784980345156408581564924868246038154774942831398775004092858060427406852935393730613499887840981505834314549945068403440095828090390025394238403562329811108898767562085893495379704004155629065879734325541653499796272184094830179244383289081689855534463448295631089732345891779159409952923991476545987290417223688620508438331548856638444123615002547057765627453982320570818735725876695835302131043041359989797314214199347303997896274071855196280510287099979045846420437128503809001698723919478079040709484497823399438358094497573724054115395435781353351233938242046741194133329494744245297405508879316330445515399686087176564437646950133036762191667568226179800794745920461884948179591613387425482107621811772088102281700582528021695039195318307104464177717240029314122773016335829599191680400933586252468511046704408988412893433972829893431990470404245656993264031137364822272435503564089375131217450655479542191284217575952960853044439011772432454132428232013333309508158595740142543918661097377095672738543330802936510381215098501201342154367218947776192903213574954183278018509165455745160908481129425139624524590274823372124892263286331413072020480619420715328623007283050265975681026843911228728890865895346093422418267952419680124312876563810878465258479652366235118579266003038605107374590817622020957661919653135659983187113668463100313760952685198220207799185693894594519615488595614556437126114935282219681857277309774009739246635072944743632102758698958183737733948467381176519205520225187743810107876950242500008422684136675816122912829326084608004146995278176522729883064438918558256451284451039975628954335403736658468957704986258464261660116469621362646248573419839500628481142451334366517060326842495730115451976779339226333005026390989617748615165753983429781406059222398508150673434879035647449360349701235052096312276768686410061149849989554172249377916509833705989346497249661913532622222809026578225996252277784318339336941239682767051394102749878791908223674487071474733270481105576096837775791799108828425053629778916708632544032751730496389774781567848305230367216622859459270071589713632232788050093140575837034330808477047256399201602886035565616238591802393518049801365023292444735108681242197828653274005115877075722544732307993678186744732649705367154941079725904080984200665099823649434457325027866450815854439865286779773577860720168611024660801453882089368133555813059351682258874502268324727755398207461678109951822225725324988766691117975793592282579136103051449062905840261828908144257096709524777560899665002171846159233163021912670906810789812088087341658018331980520599012027995656934633758414315441638776530423298755483755774262975838261098222796008235659633771018408896346337299574687247267955231241550567043627985160228657512478233434982409550524166242026059389562737090995478830137203023757990002273808577898588117382000655651505572399848482842132270006659684257665630206334556529726408621382168500240198821374437136931309450848077971534946441944346025113864923145187237157581479334953034409556070145759983807368360011228392857943063644400849508670092551667427157522457032681782642471600749510375383009872688407206090639275679988132871774093115016190302489118156255096310430731917820919609623721254388372322347618737732564179428652052907023676982764824500965833852967050406419430901176271742325977848819430879530593805638877538182115272871520946526634013596928699636243001220412259255224500438887919452493023003423088983352232095731554492845136468053138807562246977754610269188470721772696466732206419651811817814161201329609909670405255428932693890886156339102087744532415894147888954297514153952031024612002448213867018948134103344755158534487843329758447692262149974561610657764861910028701372509108638045475860255911650973000423646907443001773556844004263455483817071685007151101309673228856180994826848692243553309144667670790790953893580730769504438332857048374616329794028743005641967326255167509805313260313636426123937644270244533525803620960809644208896697736424863417698260337676703030333028664850139423017486519158059835403434720545711383215030645108941908356794760056481619329204541974582246665545450622229524317762600799097664392971127651467184682409533171551703092417233704134680229344493957256933254051545041720462793833797181746518247949548953479569555095716138409896694610678511911863836651275088590828619320350211596851674394711908575337198704991172292779941975085509039924101063226413139282268856277700166444044166819263168571892345965407853201407777343254484909068664449478221094658362456830570830870441006212549521691842113697680844120684299753097321579134509013900096933192154421566048847405150355599856928953941145709076995992161879881557364352394215030031632293315082828427031184259911453234661687447593478961725670697582905152791482695395504216971261818176234779461669430784875898413000882330929982265846111458450927606464151760476127489658315609742391707258762696988879827114054067520704539352869538694808914531342511566282162810883621435188261350356901417554208261303173980683420212900569658231540423615297689568115947509384021556043878457369158283264006973971089879918180035910233130794588052600844425243838130914827034403982155321290681122316910015620256187585460008923475641600397487440127721109763941311731571831159634017629249022376382272750027672496755349827352625866832617437878168819263725257952322722871261937985152539195530220605170286501006713968549065216600784783847879223350412845172566455564248388563296882441529755444395140427968623328405308369315779479899487432779159595245927108819482167008886865844401095824648324519987274216629855996334086402403509594014642896970964909644065649558866611548213851837336370932854466799629274889455293323012266187515909164573281851131988497331103413332226457789745315698997815421448524663089039309848744689258412829056957416922940532962787169116264587526717392312189317564008758208579262682855023945253128462340450223171416319848157231093857121398780491740498649034524181618452310877047427759060442668032925319213643763831763320248425883317488916236346775418801966749061306924643262557038418011225103857555539994482950053115695541925652996542059832370161571593644805778814512769062175898055268816158698178257076263882661624811312053941763484998855953695613689032273299507466134156203696264177771119097742809556896862834335534846993621914123881242115512970987209506842272642920441790886283778954004781732962966716340427162267071845300007374874749618895968561712617674838811039613868556788605313635634468189793989653127353864908088895126585587165489965451249697313063152268364721452512640415381833476259413700299822308443993655567133475007064503520695215099779002892606838808131549872094802341172417091873484450446264304155367335775690536103071505028016444001047706940875216248095550204013227787800442298051804516224376591530593783158825691063655772732942873739735041519418920459744613890353705218099769058881683550353193475534644405969589946155841128625003411187297417405343189981982491467081090175091574031661150913505624563775123094012711030492879711224368646947497799905236195398433675098360561705218263524114685662207871111448591631867044630075262732680741799435848541401009745809198275756119671906535826509012173538601224662287630084561236501309615463591271944943469027961906521956222050981415863794858576883434847711954676722015119371965513326952827599912884155497047228388244796504264823782017802430035927003971420639297635386002580247958999797105568888781684723124165521389292356055260733914065248954168994319645133371626273395510576119417928252681209851051767829750162702831082583275122443473063432248270560461425858869964607918050519252460966646769497924385575463224962094998371844770779271387881172816989482126942654731829586399949686642797047897928603630280896348925463684070904555943194678698999759155339369723146125929597911581133862518044394362495768940652899371878395823542481694955085098079382359410115797714513289360374444725694359253248681910122128688998598742241757806803557220450360131192725296013704628577629218833281130055990817094992066040766290767588360987730406570739465812862782726569927258997036401711776126331450150750147300145189381439451540854582726318487381581574027967375745153639882451556632983745899842731858721509956962720227670449761526671737052082017069756791479730758507171853845506826424058935997307847063063749590937042642947373085585213926845479721194166544308045714526835081307481216900955469264935689724627641541777789022483473422105211589552045260243920294223325146614379741238644352522994863983127716144684547294314470411918614975940389507381764995087860907742259199555081684652593058252341031938144958714441369273556172894638094018483807128008041639326209339853820477504619264246472609515134922484990454100553415469630339752218358711899965884702632448267582884566260821656929580462604614386691928552718145087784839652716225080588286794569278401534844201113635816639807615094278556372683505676397111671965284598473014993731601818170688732312892571374784969301775732221696556925487312383091649976096961830791978034751586985235654640378868095350802037961492881084917183234825953491287491424074752926524035798087215982194768266207722584390921263670978262620254224854956977909751196525865768154945225990633052524062732247225456856585108106106762383906469914892208628098098279799086624576192599324940254710741221377201836160951359022272437032795224951481175853720011798115519171003889481201582169437212775828972985676573727340861304442968003713883915461314995415040948659965984770770583130129299800706447849309984055672369241270612652292125952624511149790101275955759579487759687104317813048268478897137582651115133721162671172154379067893780455046336336015650809486852961389911466868047513108501320115260839294560805586376686384960125100702587424547173837376775880852242369617148283647030726132612905311263586014449013709241823199535857396746488547900073126991094245227361185877511536849625008292810715156604724441262129797133490503341537939325298051294493778266317847020607121884093119620568843309981249222602033180719770798757630458530168712180327416311439425738233719346965648125324585962034307247382927924780184742486136458631191440215122015030663585079045387484500646540677273758029297406759306733814206367584892555826881869341145445470044040828221858291820517162668634536993798818938763330607678818141048901608066072064156201840888841642469530960689584178251373705270201358959087908528323491516525843522095092844543604502396595827368425402063893572196130760476392552492207247557611201721052818310091656224705890935903678127906234361636634376646126760938549144189167776851854647548116291149771226784783680003545960364613803155159653149911446659558040983995900383739338923271135685492291903395029403479944094934380594293631761363035402643567737802324661136438601814263952844925126104281234605604806304035363913683803854749420565847470920499851875749365359112403378658855446900487011884248619341433632569996001919884337288577884562018621892351546095692632632280076263543575889934256382309557020344534634757515194499499132743470760365017000830465091872774602564428686764842597594717698580544394267903273178641461230534543951936385034930695211035354310447457887331458214555694097153005426844036066518208031713949589414680886273794644765372353007328525124103624206356449699912460603887179399689753043043580213286389983849855243645239148935272280233775981479229394498604902449668464308480495081924165468763641143225526697206905051670668556424287003907973192537059316606735763345130756709619800233398523699775578519349266050111569659086472066666832820952443233328790892157418672920113216257868976115338663049139604789882471604458804014718932289746931767441939518842028836224417489521113122012403679039749374615846406658091129518357157671530343406091139806581489602225020083633536097447271989039823986999175983872446298446337314661792351113389890995525432691697386275563593513629087709203843066817550003741499248099949039334002996268474352781988094705651606563293181717620776875262697998606378208227723843504927293537365413828665972573047055960944541746903008884195611248462878287369786729136038447281751178315706876126165235412085946909843283729636940834622495263149887779774284530312157497787339598265563319177826568296127001253698669299169150197494197819067270139195140796407320508147202758851862640005571775003996549456595976507470896347293954562016520228405263760114298884264660335535374280669518914589295965187030190744783363100754533811601854410616501377893687156834405357338724502424520129752610739327373814363743821088013473105790351558185600091390257849250665677847593395929473890534659831110335909489105129904183977885739050809167932350148389297466819007005839861956810936162927974065128328761082300968368136923562621566607371810673702727766577675879343197751876028204503834613878286296716418848716414805422445381041709008727847148512031470807302833797361736487560452229694365878067691333694030805289032305507049339335676586415365976230226409269172012966505217885067121684707717389554147330221376107489883726697656972842711692602628318947488051904252349908604752540446634473491473055191052780673568440372765682279135508025631743083599692519144468395880810263502110880178389523281244858988883848514647007779438873948778669392621803404336550788541929237146495367753895745815627003335158558182631929408898239106165542995001081906770651241471359919397830223001550481952012757431103496268846218616649285545100063433874579736631658578675204310398199310473540649076189283538924397423351113461627053438435812628515951168252860633308413355276593783975731701800022264630812274969750021329187392092892123423359786142729857442577504881332914329920249865427804629661107229280743596342158847881416218503539503689743321273405859362088405118236528529167712602778327552683391751379816706524100242156772998646179558704525287253561407750294648663590696846053026913293554353917010488285541999410361812212192901380949738619892776918710242079658425288735224352654370839648344102537899999702082475570119583071466503857716193294196039648584046646230663723024846481265243776023990358416188266667356128005721130675552718285108612915538538430382417350971622308327099529160804486000441372808480958987806760421234244734030988898829514058671673158570009910865799625505972552975976921113339229895728810772036593675648175320560499449652680032453901506711083071190797172935151920984302624083326847579083469169908733284750819680395209893423857183953899813570093759521026065449104468476823926004829504714154640474498113581765351141925166120388743823126532991536652153148490772624113347866728473346765465951140094132438627791555804862130406440115877980763858483276165247790644648681412547840455750921142312942588608795723945744110450197394181679513076744656623012874448909667361154566970434441787577764774811984533369945541227248468360650699075753771706334471242389622508436368622346507143364622720250354730843038595846605279325135095476864479177190549039570306847054287543375349670549513741397486937501701479212115623393252504538933474699166492281077927831788790960572118651901157825858663864189629606494206763094135834746173513011233446734392650972998911787984125907701582015725628174602769559150721143574325250237028543113591676584235167827987735739507552881843920893088367672991118199117938366183846072559163073887786619933667770106227967169360686396141550633629339308463878890794131672511018462102777941047640680857694633358839494120005935029814329647322355267212556507310371625308845530954668727964515000327719950352089425163843468885787714064501404063436950281931560846775204982496068919127244554381925823431720005572869539618877255810782640450421277383328477139684535816623396482286130091037239325653787771846333226694886430241898330533462582035586333195495081363860248715484500792201146991155666297366326736319793622249571944953115053327290545389262833470610171396372387009280457804638862154120212968080368510389519864935545707895247956540832426644234163290685947592394052133086152848249303249836179617728554540440502543955111638692539233671258658363917531175816953564080403830763064802954255692105229765041721256025513774259026113158490731474905264593886697307059913348122262204195774054844393151550525888891049693790558308158346815983227362006030712912513827739571808856744931099157358034911838614753876068320829553578747738805116225176275748772799558397028497732789934198160171567272371549213612411794436678485510979850758244282887067773852191689143006596667762064287925716107165356407347244270295715774036050509015417515277954864046555352257321035276935116087160812124394062062789645514035947670379156833605791652786419444353771950467904494537268019156833815706060236369757475454561973387845494141003148002392533132156558048476386483460954294261911571615300563046202133524497310083075987038430966672769040997067303563078189250593507893005243078911699403692143879480368906622560579547321922401046836358766505116492570529097893452937511113981850971242905089219514013759806745893433903102841204871800989215003880554575893651919358688106349874673921001681314627161344289088980906849210141423074412722125729103862743311940263147104307430465343904740911092110397297540746429663416899514012756577773510204502197538797297943424398368452587706698989784539705156905437455217073476420400568277571627304333862602227174562088839356920278904407154078420929139446888308950863461320929756927865298496455472834793028232343847807567887364165710766469780052003431099862969023648930075017445728611724553653243830255161780580728807155166543125226498213080166864082358632499414135473750737239864272243876618613234463731808168345258260995951972343728315931220708657805846034953392864228318158667178083841002333511970289411210829480269745032722208415643910791196886283571075984029630663691007741383921362840263501004392042446907482654926897854344456763741309331322523137275681401774018203518181269159101796689756600101904773873471762700069263275998253997181694126711969782950299507262380394211019768787964634604963464033882554623599898851038016730829361882818476378410098631812628722565068490110094607041274160088327016492879621947672482945934784195799452153808852976422394916884004621197673147548621962174128183772195723924289264424160732404948980625263604656784715968304193107611683959600204720986646400705474661787796032764147764682119868133023522374986133046137537325785765165010480677524814218416642166454882415135162676789058903734797544573885623463678543892092543926502707014637847027707543155500438537594692872059910717787665201245710859612277466289249436568440134530697775438164532010015731976578048095359512824317312275558966334158924575561646129745406188355661885761895923563355087773140366973617677212399025169563531866292028799837397101912918979351795026649419943191268750441972434434500146429998926914109606023871357156360100238009556315193126047462843267570902088363419002037963557872678757293513517363815599810343702865385622527906731619176395796313196467233810894600427094205845719900378472188381771453718449782751790085918330297067457068352623333158539356737155583856690150525645525770389774372172815257653328098705511736697932567074443978300993676075541730215617516929338479259735844705317737100337925431179794157198848219221006515583920594879573702949703805013944391439411593580868544744507028231871310929079257828104307840633793349029765022082052215563327523515907836398387459440456725080743314678584710971172744390201367284887440822328873545261536302569611977239585793122685412292019762237773470033748552864031187135542854024618082692322836155477814620791865626809447737808044223081811677283535088412449708486427122199344683422337930486698680486583207832631951077775746871068743187703588893482591848867313019673837210035149137713784067695427066705188736626812872360929032529690983025426921687027719812545321059124447058548798230996970848326385039286266181934004383742181449890562991102859774428323417859625851453122343013294604575867688363133816452921499375422680505884106508233961440939286694625513465213812466046732978039821129069199811315402795540081715401200121767790715351474063655223916701687017650377202227026200327671551063538735232106694450074934997043535247782639712813294268734726084536236607151729593819562906785597678178872168879118683748847104710458840012638569466916666375465621419040266105933558615334371759833285024561296687299461701988018959605658030679932010579181189375426521077940114314790551758797912307098523523440057546120493588866297335367434373605077137080057587276263309151945250965759007951197163401490351868737740484737874692806986660028571569639246987219641896679083166913280198532735973994471212518451424362080548344869793079006749516616139174809007443337374541128772213958955799147889769631380793833393092250393164750332498377437912768567267092432704330591498641958639994004617121944392355210376399107376228047266742035113968476878076613075263093203926741443290296809246396438217534190968478686728310117046349083697694187638551141423605821336871270835969347974104273882715767567367144049780879602059642688682172362858624854906615085866752771887101684767349034567331278935809064864549929304201724210121146324664358527219082490256092873252868617157250133692318483875825221083828394384178986934734834379491803804248199551762125195860532635692595054770660717007412664134605022218530054054004815942441165574913151677461441784454249839165965368023623871427592326042241272384307954652927808866062002914455908014879651608328036995820071434791406593577843485878222376921370236915999623153478103609136918679868493883055378240128593329134734867601021805435845562008162238114678187449152619557764921878025509676353526418395332714044736124947722648900141851698111380711272646449634520310661858547418940652599398257051701048355777628847770369400905282629284588525394279542368289141170312729196781159491963103811489597783140544677000559437211452015158254980811242640626588483827129241482016952272594867639974666190361303914800121229680988788029894082515092893075183778056712916097514571317233982531011994769026346858669604223304811722647687012869255256083224005400503037407717638113008010432135595125046333908848071926236337337502790746465204176495036873959087388623628449010762932247117744152775075273413481879579681278466156716758567553118181001261281703369203407214334658516258744257461232343208517492139383385632804141882116482589220060033573508353656645108658144049473618351189273793247312089375908577245324030509129433271674828309426152389241040171136122285702699225843995423233678919223615047840010282519002017974137040063411540128043702612268772452660760706012915824191812023711866368135249671537151701980810040226149574085526910187677214499575166734452845289171439539418204409704098803395500549928315393823882316340648530304328540252200228340002326828548132472671337021273101049094049069632447936158759972880246585209889297729569795646926753530502364200208926361810080329953478333835605089948691634903813644000500813065185280855203618986581679667365880745540595850070566749588552047147598807122489208097695771172554027364339090046278013612501751912258506648022291440230010740366045164488097322275770749523119668110321698997721047946031337199232714696553434652444167638398118750074899396357486227803306441807807149314253620651663832315884803688178699068664877458532076357762748191494810068555713477657409194046313053812290068980683777791144533362098802634685326231053350030145664614739908290648550142350258461246965951844450547643394960793932509083396431991514782133334298075528012973509259291036150086203077974898661571289469768219340520795277053399448376837690324763555266773683745648916464368433536741666116207105528572122331347415735252989712191713947273033963588792119990410363889485132254845665892343310036622815877406588547865142753737647711734757977068687341879271946867240995506202569754126705960476746632131247931459011144696617880223716533639543825946870082464501186775383880710763481574266232758945351850867143127139321070936946380822978387502822529495174278492275420352931939677694573589759429600587358024197817550857606755094310823857709601643481029831727915896303180283773056134318712639715792340963531140341743790118807792876015487100619867391541722653202199618830449200983867424108148533346195101430046016659615174470244802282765173105238266164086366042987876823799601841643923847305408290728424190804191715759268897677348913042743813643331236563726901761030991675288477609279047346521342112626268695436629972401228551237849793350192834772624372218771596594472205791888642795931990854642352311748881063560534152195757385487511487507321286946886223673156520645529630965729170263914405685953105398259575634648378960020484019142827750710858174986627793073710221255614540977359971849938701916690904990306796008758412769327111954372966523716488196580070741086687571625530784808078745227833936514438565036658640254773032829945908138080117330389510073234590463826217282977940384819127264449872618912132671434642886605880787618337500185681192470961569247384192996806446631182054185605485017218700403626801533566509698996949523425039548769070726176412088389385908624045615275207221977148131715249300646139728792536542200426494766937631780956773503295420435695617548027942019349969031445528964327771594184356129628194796536404206458656600687286668109502487449066838796402659113228013220432895291350050846435015624628331464136506863530170937527387984858411796694804147997934544587678635871214933598652621030744656916729445238404615331347909800295684637296331334467595186501436531319306637409212300587331299004086967400420270188590187046717187391780804040903735356352888549225228285141622945208192751205755814657073733023152823883311091165552035341047606462362311011411443140262237484675007250844306277927150546291581788426119693903302857372794885358781015297549948311267343088159579892713670628504993536646261366873741884650289189587521685084470600117883225060159743239781437298501003900459891142343131027413982235840065013289120264769113589045627566397972426256566014927112387672570149590076631531974526339167320723166984453821510273448350365042793381452271020392984251435511105735031434159827487112445302439228186548377596682399823495909256511919737927472304271468890642000048474618001312611761568320971204121116205884872002689926505825186362787771134678636031103846917459136462350671565012785991068608386329332341918669511262219263566706801289163356703837613104280268289085208818716782906848212823994377811795374828479564868004403791354676142161190360051543658826304716747362129012212907023937678065432396451761590746973129897173916844666554215624130750658682319022539774504234822624377953737805605409397513915763582246510821575869967748539905721196981819144097574051896300546495442068010514693215038726013868080674162553689512527638826756529905710945613366246066397052023622342417979849961414538387760852299699297361431387736543924738775578353166122707633603916130781157320452517587815989494518492626405546613123288132342847294219837350070945904729760330349205500506444325328138999467933151020308339766590150942004958437380548066403774467066230945390502525157043098948373237614937510176490104179034119842588586544158494797396025987035264547953185611504096672618617273892695094612758151072786955951924410966337288638419543461077185995949206722985699693507712172632338225794272391709607833465457997161525913879277758588112636917527218285241408099254669280908344434288260741756753959429417392131620701202810297033312543250267192083046036146393378948366170285643041533327034255219838738105591717616241492450199342424337868192055298722824443605754577552755981686305641586170784360822281226657591121513497229459550443337328257028997570250133545761879986733029065417671185464675565056338043780852697650289929627912814745315690543741040176964575229229712490452224636616179160021667957591400174737665243809114382170987940192364460746830797014110857186413811802733242696820497943059663455581461730210058781916854337166946305714859731145699095848119352045555273246865021273637208985639110597421739579381297957068021675876139396118952243789320743538990795736704140013462818696030794388195827081509924580071374648003689452595036534591832153143185533936036248479218522972436156342405180044823602704440244894204116566624265400923228310181134283402887524824109961258267764801075113457905942468631754241566141508569658407548749064464363731559250297635711059092999805410723356053694465299586785375958597167171294816365082158736347458371496756481636160864202565447957777990668760640757717163990658595543985780428618050171400259298935488227201840263552474952095489871410147169538501717709578215413198016575383415816498505142224546373403157682364277018630537795011483951755270102394006102130752457937988560568402331665137752668435319767015420663448591862512659674509393256417269669895230151070663255379297831109068351849595009689919740944534554171657423142235316469653507362987311986758629696972283897112962520403245261220879449160541557524510344509078834453655522440108699900636235577097654570705082638838744093550437265718116789543297217081378661807430207940568570895992335944883412189656510441054076584602884277057022252288701912965152442302002515095077127860491365649181384254759005081088105749289763764642716319868274837605833779843945313249899066655757115442972177478354386876645975895964441026635147559231495609661217996660657625068474681706102601344172894249481436219329815522697825600022773631506006351818626135445101950054836895551404241852235165035534994049039216651575594860038658119294985777098567301439192875785218391255372983928168799408129848096856344375735616013710383508155356630000717684152357651916059964206412183949244157865181867677749485531687886692204731827328908753518048978783845868054636995921738885268186454760083200200682986882228714634162062826195627332083249296164853121315468057876865229897676491532638812633371173422898928441974741330608940119980313726819634937116763409184846776157310105294719375856564544422505842025388447582650434940145283785399404276966767666217937420823913426395419135799244814927160616226749586823342833466193952001424400684107933432828462669333191638639045411669884723989255879503627626898157490402166512166411899273342844066526855040698520313962328471165525389861098289686139185325613734478886739343200349784963846131632843135450137545942178613557526777665779838866410517259696270410854318894548761879912412173048029351804502797889994840201356291552509571279345214328844438462059864951356334726947890851718532844813026731110306120081575390366583050285840987160889854718379461884038529980118197023108494214718073941850140934336869592637036500453385774337766363602176405427745347202297782029176600696151961879908173585292996845165494862566476836743392111916423148529224430651794432353386227225034284250172044171687251428475987917403379477988513608031606749918095534559862786130002776677828786843514489090324477618247983547493340960522115900642526407200110495264290021489213261930483978545340948321270951665038116542675110228586118902398768851997005478431886283318733459324152000804920024324265583190618179410771458177520625116822763843719439271129444850519886864592543454656998437934695324089499309534387399648069505684141441386632426419720111403368224029435293239553218229614659565732000140144995920957302000812632945079685159963670039128287525872712818692683582257456783385064577750719740569093857646793136876218532373473499413721547629589512209538389643540904643285584416765831881256082922516914326311864547621098991591698805319650783701493245518115604332870248667667503524399113439075683762560697550094937869448220711988312362752419176245484383181647169609553203763497180306819179358915905676813450516958806263860065363152999638758437479802920455654416807024686613926469595522456042876572766910977338084345613943661318548279029289299634522378206443037684016259643281115878937834106721664434823124233899552758742512721330166008236121107650292606064235155629373389773918796696380206740636489356133163260832367504738462049854405562497032167207583183370460949959102708610593537787360646543776262771388400550091219384459152413344786232062541531592446120010316904853958684248710527662308591934937004829182774198191228674974004290747298640396909757788578826884823699302417749352542217978383105199184762457438996010183282806539026979712433921380286400763395568592366219895059918252460259647478477433266339672841074694647905383606617909771059475669681350851498336948393871216649584498734767996433838641624770782045668872898017816489722926284907271290620711181874540680917603336996741768844600276562668635042968166340547042863014881407419790828886333067409162569188640262217912250603938432314702418076435318374975685888810355421403546588873113590183123795463709635691411339157210964724647936328031037483846174064173140057350556979331600255700161186457895444633347357347571032553036349465274521521827269934144593333125553158364988994964544645174181427144838830055291369936348115987977250244682315994706091787850771211357009261059066031424371999135140925869729477373239402687783499840962223415589141353524458681234793027514723287475745198608560809764930003852407089231607926439319693397336096190767492149184727423781391127181352899100364029494081214224950621304552731986042863048202051171746698262805520322326193196126027888461380528258117181802174989572350359044143652358257651295720021246244292166094927238271382214045180144488998726903940481717444616312980422473834578649648656591315228011291258502361690195721288049747243547861725703212121134853565331852454865240817354637410184168119706917432782430502545150351317597958959749599609834387411690291525633493608674771060756379024079414387365814414139184679811519096778793945884726944715410269087117995197786370404677249637307923018493399508875891892309383956512950080436253163197722675621297237406473370237582749094236672922075841511578631990983234038564903645954228969690326089545811335395259199441833799338259105469803250180164367199373241847028050185668822120320339932767294181285120456925302937677574425349144740810141102102813591513232477618466680845409849125006276462053212377712374799846675106456251242318167838751031722215424562866452193614591608727527325673277882253384365952258629850460934092415508090549901603466982600767587991993602715479701045177526423422530451806514110237752183571208888792788670008259120106455646490515408534831122108089015199144710252124727957954389424897328949754520879078350760312101043451343696209371071365293028190835289260576662718248144153674400284230733284671211252547713823387656289721169234634598000244281915575193316377873102683062149036559825598491523745747851349210147044944881950880846575511949410393071092428859087178756153589887547020433606772046821573459245494182348173958384051328509339983348065486507973080353373316409702579440653901020497413763682381186148862269733376325131086057555265136713930055897097411904513691821079724955012224837390825587307710371421942979048602654174510167775649024286538348384697521551227066094105693992515927707967360154382229357333105145686781566089948004542636519664860698542207981021428500944030871437281686899605660914292868341045046332519732802825679057260181738610759768381959635292262552381125236125156754855086842846030511395254693221703464777166668242859506379707750887111943819843014983206906982402547164365728350810037822861410156866769128770803787438677226344641966017230525728676111644199300301863183749525511498933643271037909596358237508281305849392318603096177943784863719831789073134771412419577898918217726929780040499986197704726121035376503427835936992315358197074467293028338595147237173677812227585385529775471233555101431368615888939140298716065880283136923387746460548651931919008291237691714174151775498377377164344615986158544629047512895404882938678365781787407330413314188120702678792167975345508699718113976228283837083029586637820243202442258390702674390199072762414704812721850222099442626560331096404288841318070872012345585255927007931948004423267686641663526981737147226148049070400352267679625353007878417601960527663155085400860600024739915516898286672395939963305307875279184061440684468136355262129861024226373992552895453042583035347328301769713716396987908560331509679235165534139651392751135987307623037602538072363182277207684135165274626228698990935567757337410653539773594633733326494063494952402220417607133802224536480697127130695727381603202202655142063861646426648959515144513600665597369163445307372105045772611864006812974131953608882447387258655238256809217799252184076276124946276763955732158603944587655437346315767297990537165433491704945222070367814545285988749946035036466705962153825398663797156661962799934445788551074611754515555215513591420078921057185842259559258296498354333758249730874437108334518323363788014752207551095018268779514861239584654790640465927431755314994923656701245862730512422800480393723765540780649692079001107235116920727087647480963976387572121297843276242173945774570359186564091732595636311819912044489156892463122810469356145703147637481261188795088588797822209369390672981108754649710524537251661966672146582357621955312964619351913353696462603860074942128281703578335193352998996815203164872059276440746578997996869479148897765219971162863308977150025349854774931023316489021208377803093859772251206062382065394827499640943092358297872686380163610470116513259869640357942790065674780153277261441529601125498027830491942782953073731457047924752990745088176906615497395292157861554422432791936687214783843276743183395408020403172178436487789253756121261003324292461553800095521357748762773352177373141168680271525935444522105584090876509861192184979041843787593966620638446868650548044589443117340311593234549708762431698948713480098079114394771806402089200676147471991313577566584112529172392094244076766388573061203013008386160234195391867250326071122415679316294853874166464768339820793400814753391451426662654942691846359736899495748438786101538418236690104049995293054147826953096658324520802181677930421518684598729669904765574481202961456930763344387761474852724608351337575666123351246111185799278019999209437323944827643515857431225605775755777356157577401157307459035074416850896868603001358489497936874930277108497675671054457868325338180079196041453003467008523209867089826659840628431781550094105575433973116541589857424749739814975127601830244317583734932939624881465017209203320959866161103360974687803882792255214583536587027984394028700691465214366780506918701079031428703859793026642995960284563038777192080426011938377666370855072944645309290173395594716977185704999605046955699413319631632311974503873458205051806948099133462540469617709410345486436723234500991985345077605210423336218010869493633862798439232171470532275599582447954386642660924677133516938573102168192399088638573325317954291308496771348750767194808524741559506760918882397631842229159725210141039150424648322258843341590309353240623875006628720233976670176932045015657483024894693817066397634038920018844141544406017635949962636959488004119226043976082856349426392591540497078363306417316223229913783812142273451015056525417678570501148930415291434037699698878923978306744785967601066257050511218007407446599475286935193862917946884253719811266127039993111157231380630048996483124216085409133654104564590518093141541610179233632919627571731249835755247770549949611467679742850039298913636469522939575529470842246705429839692355059542016321486105894652027479050633905437217778188587543233555811476929220144938645080259734806530007759709352058806387886747855684452416543035567909033766297976434277419673334338189462143064988423395774157504757181698842314173139667991469174480769000079313868439039494894313679551690162889345443705624630542791772683771985081671732065043755754268264263452488273224180745109826346208970485574846517392103235878905933911973531898511899902385162028157654249395519721249180404733438858089042345904770650413327436443680925360588250758897289195919543295163685118811751998584771075347284590386860203289241120525652320159096180548884858460237373078771535888650764344340233552037046289713239845228217300048838965808414578565813202858172954427607931023587513809740347332207195411431682921556495071996432979406867567495887100837040468195966892472308556845157090646135546153675419384455980302188919970658001799166481809824091571199383935791689106534880467852205495678366826554679512291655337662255746645342107853293533027215843445483782762904869967827736417057414899529116643858408222148596958892294299430397786533197302551345393991735623376576280199824794711461508441538192177436846761639073443802260988387556871699158217983478846190193254317745053386539931434976094204648790860441015255970006572533384246279766908321176561957959268062767635810260541086682136191014692214337862616213357464093985460501589642926954828934269543278597679024563544504175077512532919065434445631084230611326423713123607499013108700827951648020952998491982397314537125514878967304209446306650115539593984078888447347038766617951733410315898366200004832915682422891012173262953578135704150918414581782232602941936847324705291286396176195125034382124591515623616714354000570824604047878566038376010567087535850689628318931117386291694268198472539808901775389021018328190804779482709836446980617988852836489311025895574517131270720155653466234782004669782949081352601952668462305881342561048307122181588009297704766215240229053617918089440110676579749450604052193265762306650380886937061630912434915648720790101978882437735275069005138053849609344663361995894072895466631100538971567043185371959171558588973321482885142936055862916444164399299112279027944521833056112880333871655093931362692431972620970312794898754549724479445874020739357718425767678329701319712705415928733541284652779523142347274586735455220526052088588059609330828440232794110146014600922985148707492956188645225136673651882265265734522492213103615177302669106042428807126377390955761252587874809203363883295367729664371903521569712643676393836230713114007536012564098951143990378557393561545943126193203596487916355906633690902533804162308896123637473816530820828247654424519821066920038982431084058514141736805458764210515372739380412748255495362616429685163737950083206230073736404219796538504583902060044345592579917389319467928237133207249257570361580216691556773032275501317487695812561563811038733157840143549130024414071783587988958983089505480087351750574015619359887913732091982907710488872957266491793676732678044068395609073354077515722268493573652066501413468382633529687009685861638720486803104856519169421362739217927813430387936385340934194740469956324297547780668256062702683727609225729407653332094832835579943179427752939226919837737074549430905428950743827977991701558069394962337593845147813791151724077699940329108849111911308952697744904939383143263482643717985615368730477549410478463697896488666020534664924365142239743999922536937446296803714107064209581714258804037269842864504585761735977559855656074985067882924087660753567945629357762060043190778880225938636626952749119644840547282532686902686733708585732414964077065984856048622499008223675710933971674091411979118978619062903578850237867055837356819794006309138581357869552167878480446059758588100665621812336028471891892719553918907272021744947084512061723511176111681458377932820524490759791963233264145317162840167612267242083325140605433562070276271286038289661629834474295156308759045225531668121862583352759668511577642438428637304379299670305727495560951562583741391490382252767867241307582613852138467960163875183963046790153246105400880174224430714611683258900137139695922967479391164920233131587014006985561791573947345935264721655894104958725896360187313144114582242250311925710573442113124827625347349377422508101546135962151396743870457179195674544454670651848232171314454273532807512642242392509185836584554226691369588652516862335049266164421742250746112816754039657409964683460864381089215528019725896486292940744764041430884020964587423281739115830976222460666068812185139885837360223050234372270976245323619529838208744390819100571458263617047024766557402243216932006493929915577039049550708998760669649496099603981416690539458638419752395654693559289145722775434996001523101379920303635181615290539659240407445008357745439816705333187887425114749088734106485779705645972150056456683278487363993429078326013582431222805471807624060297762695569736703880759036882490339273506736349202026504988880237215932361723278409954509772301493063110841603717195167658194755360827202063725927840021878079314186263964337545796350044624997690117529674531175140697838932754789003038080600845356781870128693965458458777755966650281699621556668889320047014563787384598234962832076961691462533957954085869714655070098117092336071221643439856396163936615325458245731784761850938036374792862664401994352460307266798538894051139771869724011813842382203368429450300481620585802888419559345826356920992151196792539670757043819368058488004485351306068034489302989974545177869122001497262388980373319507492301730377728300028043072117585212795303870754705882558916352842070708234161622090927085180084301040438677801548181834135833867012087036714568021799389063070491629276589047230963079240700574251435672611154197444113235625675307379670776767738289221189692222311609165464536036589423161423283157395307563561624106049472796403370791223438207783768135713652244895628410406502140649973771071868396328026021712825277589389869162614517241439459427096140144172159703165340179012541919554539349661682387730601687096704638803643420332821200771261392711967817058634207743504416579564112672649708706092093431824412211580463102010294670248310898768097728695804582803907381110345563357972614366703874048102546924776133914342896754131387340980858467260559965437866122304052121797650169682870331395861359360295947694291450219092487836260423441289765828056464795295448182483041101572770832440883577678639101074568948749325645902990053883756009617095342429569560344287194406486659660015322848968777586443790662504616225252006712573995172760234860478177305385405507916606608822073853399246533320911958398315854816410071229074602043675286821924600556666697411722383924381348234926127233068275489094480205327301977663160968886883376762286930743774983335910299763089133639943220937581467745488267055593563710623976715759756223481460191424792759460911837700745350144501047925965967892361588303540970594958955350199200629005921625041826161876463621398540840361941851496046379771866944143662620877112442726805623992596951349567541050812662518879736347870824704986131072626427596369408176679426529633206477268825039668623179024724098036119844768279577605834140784816339459431917003265349349360237892235401341374121611099507865596693572613145994236769044940914306441526651659665497762193652672913070039143594740766047474181713560014904082324141880893683067721384828414407075451231955662342102446214378316751063635767985104021350659306238653435488257202967286115850722164057288863736168166654708936131708491763881155934379359513428843726199238071036197078803408811185078817745996949865883625638852946741499256969323837950923640906767074072019733827443998511358806453423088178407440807024338361506696023396655208252498430760683401645154863917269840132475519850777219952207116066799253318882190775678654844890218047683249252587723963242414130651093763559106370254245386494838274502423496009032263789114410484313373349095222762923762412287072971869911795711185088877164891286035977883629681878610286010165817885127571750099003699353682278016060163611354331596804166141832512111981168397689326140195103259379671244917052455858891913790375380385558242270129185005510614320017452266452937629907640077138676164765901562292273433500340916311596670676760426501452286350112382754303257194746987030640844967371722463659398366094038112209125835490041272351814500363567246434732760850518039405346981284865512133392356238910008447873720699200807585236368363588457101643154588629365225947927803455368455539304308724360386330852243596902063008952975498683811804508990222248189676039802845973006572873935568172948293387528649937019011364676341195085425604606036873467056935319616506882372660816270366703867986509192139297849482053989531583776101141609796521062520580539704865499652688233538711934476402570971453472900676368464413196961641748046594271855410223451921470249778514110382016448575833192919888915731677185906334482747602160270761315638774038962866404391330869103321804038304292339436659457754581103210170578935231262971446529703828502691469367415203430869642247114167027899640407099250914006488627778917464651345864137477038637322487072572322546215993373745147543918364305369994368527725240058461308592636845721807699872087487620728369093241527461717690383481229185835586509233387924475220633792180640817871695584782456884842921470796039679431406672573760919574012380925790174912489575778683748167825112708672355153307251073072262467423626536987373435336313609056890790715458754328010233937294499686778426470323187022755114526934332386015998196682403051000501528145774318572661006498464288314640367233324044260771917481375154604032783263136276623111411817585572537971487290194424007261734323091193266092166324015329725067793213774179771975457979834335268173560125694192887562390304856385459180054094574173019099014291976566093680220632185739684354474315708403068263417987493049706112185269236566484140907712995177771600760711393364798953080621212953563512168379854766273318043707259357219651789452530811909212853237659129608556157859467649093294364056818829253604896495659809102968950981871429004534613990360566004295471467635964494676035713109844953579644089415621730434399864000705948839483932858040664451375353115226340938691361012934079472426167672812632005222526756898032800717652787080660114303000758411461443096442933696385026025498688408886664319186479691868881795824010737899578457800267473836929026466614318694120149094753580835843324201962224535133967387917528882233754419975351418631657210418867054927579861790055313477141823436697827281227208472803777462617111201675344397686732316449858771148060391163953449525200117535997359327558642649995793115102854795124030855396661367898289932070445516911059872300102334105192526127999395302002497189092970665421020883821846967635893542400168191226324081553456899122101521316203869591313319055601648345197727679504579577352527999394900081443570668990391963463117879028067130332067111029426937575931971613255782893385400766339931646620849281810413101938835464747797569376868042661551089347702748262893523058722158607228871820746317468506980768607024887251319489681184659422234578854813892410884911886250752581412162816427794954579787238333887031779231143831429357487956651214814250935038177987825241824704007158457519221035637793531159304996529798547087243320277352243376808551609145084443446732623717476103532685456390974377344763271395847436888496762141545746836966097317172480788168816496349705881366323211025828067691554733147841503689768397144092321826082430517900519805039144681394020547726181450477199964882171808782378155790071659586232301500723775933473610287719667935015705422787556405980488413322575435552210711000408371406239354871179186971724447404640955262274358236611993383461631757836392224279723756160497618246174120074898293019403573974886980635111002392698097615642792524983418844446874167076909631283622645867055254623687513545349474503971301695414231135953270934762769153492895191407212287313610590873548799586652772641810852216005760078585563968011718791139526265150028671067027351756672367840291741927392504766636721953110807902317900808259963413003207856315565017737296730897452819497776535282835854956509878069856061358975808755976421082041990900387802825077768558217922334556221299381877074784062036096827826483723133244738417457521183524665352188341168849098139525398472061990906002517276371450043676825866490221861665707672437501255245430053015987881947799127345958582843035581003581741798419462868545526641775074006692528344002149114981592100050422382967730531355909031892482169039885024056052053374469566429893919854120551528701480654919637003999336454002599838740970985626317579019271925750704353881769087409895843528207219590717204270671454649081119714834066651306487463321930709345851879403455717102794589181309235005971660855788976220460126719155017292469121576359459795702857203375332637223700781497800973199762701257065177057589026079082662943716108640140711298630392782507440733929417008149520041801653177764289085315686236477419823152577950017831839592191278369449319885155096759619536770948259858080988487255013534809397286764164545395298311877828917845025826603650775943902353820957060652512221974565725415968832677997426858679849986867025570218602287092811348649635938741099470494894942411461806219133708254967042566975107834397272998084851378542326004467574558210591283489302571321199418290631973087370559834213814504334742515621543450117262102679191341135396447679096019338289135881253676020113055302919386873201881791503867341535225777832624610738548863408674092141991209932827998560484917380096752216997317352254908138326880588435269368272372603123078101356029124765056094772400218311262332309272324831264939700605891694709141760161853011285614224489559565697658240257509890035993964171774678515983512105678068887231826152775218236931916535598399773864424034194367605553797739937472033085490080102492150688676603418271659068956883159339198271272407343378073499529040041719304896132507023856697599714871055588782954353124396956080401708519469618682723534274225743172642520055955788544813087600024305009601454711896352374573890464007540529883032570124912816133182473362379279889228318277111253340515266282054875145901250830842778396385129834066731102834542915843168063585805758639826983869732917028274926111023043008324465209229875737604059790475475565560848097087547379644366786078063244130519096128241431581736061154476860002643381278300369816647707175139250364104731605773356125556947030797992493570991279037938237615252553867964459187346741840452123659658751704270394637009637912687470303820524989174168643566298193883630943515128062555022056032079527744640490256194704424227299701943691736924565058520218321502436927289232251453179406187740649355832671031921101978157637429864495141321532965283967145750580595065240681599057757561780846256175692693692895929621647936768396225441978171972061316986770667122637692217474301612866053597447637984267835475750204500515392098644644419367867480161248028637943455750939959588455570543767240304083196327227543670202294835596301158262644819596351771157824440184787009940808097108329874564964718581966037693348565949039127523919077842182759759577416782595385260808005635231249077299956267011521762276765297889181848895152883635110103914877234431045425943689157760044637832736192761970087542501494753842616567731518962883253143196534211031988395759088110572348788295655073350395683316871069394241514758863740561103729558753641487755668016352424918432410790762510500783145284809362310898069928518390107305034254363545269691644175749016298901368427785186545816293429077769529345859464611191962593801546209047285148343275095631361208515869058553306726640060688686107244312113451019937095130810994484719809539356872905720917063136777398089616165541392431524275201825384581703961449416615020803807347501307625199150518717026360418934965839803720018571566962531143483908491572370860952248019712241954692521956426221762047721862732077801801145750755445197895054531318893933277340262072947061156745534523483222914315002966067096437588770955089837314720870594597366151581258955360513506767169337976793552030651975292587353546118692920259828829494736558965540855440568290234461797685515418776487873058522651453298115412644127909508587149325980060211273177852914502662232626906229306307851935838084559907689265637589385493861912487400992209413479202604851885322090797155194485692839491085548601946559469045225210861841986172914486782889867773077409311211397173877560691597604766493935053733328920748238051172032979026850247177207810851390346223724983710253921123644457407924345331570942922737592566191486979856356124059860804634358350618904426228289689840780771511581068761943279951695098477502363754901028316872255037352329826888527085450586983215360321871949270253942550887395309222630923591125815852697258345924921653074946083873774892744782430443320522310336421940682363869313637010461652955423467275285710817957596613655872845122718940645178615811462776396698982765083641906605119873645454298631061904121941158278101714317497768612072446622647747040831994857334384468785646174819419744340408583182448632923065805210471723092783578665278718472699460331350322793859536943399059753939884528054602596616335658159446890370974685224141402483853674764843083773333417436043328890042849501357592479772709633690403472159124003291155033414408482796429529317391457106505171419614109370977749430507982551388336345440731242133719441913255163743172906562523722053904674623530308762812178708590273218285441743935333524676942485238705223962039869838192252274523870634625690313425492245854964707078613159470601271642631894015859160377197313013192634376890418653736885489434306722846853086576233708271695816179066877518142378819919347808754192693216018793141829632316333895863676140527366902104253309596810240716663121825848050811960979902710218909421415102421344951393435390232654313896642582963894031308653648185773841476682212094754784547046728801447696191984769097226893039433842537352523730403156716946605354848920412484245032012970652302656995027410498303852370509825387614393804708222690909231496922629553164819043656493689257935387873046013825867297304736302599082387782856796184304473538104582835752860745672312113382862491211103081103613063179112528003785512965804321550246428180980455479838042262628020788049638499310394709924625121773222079633980393704813268375032948448116482200292647384738627414319862505305708684013136692437905248521553493811554255349935339575502676824941340345857729314812050983304782835834834718272202445436345968196426220087563681710113417342940756734316818582710959189343168004832373143531125658984193400791966300321747457062271607432423562476318820462435286378512350751010129022857016831090305946463400205056596949941732834094556410513373493604687663993752752550328939940246641217432569673955263788477552769039860101781242351204047778684465108466814934103240041272319460821173248076546677618813220542429625670577465003371853005801129148594420388848032655897997141423708387316287921993326727249244224492502148008672039837784816155673884620363724570613211688663197154056013604745683595584356213420322067614264504523185482542376048819820993862426234993377332132362513662444262862524320181498179012078030815195365060067161048270411974636917736996636166439804428793953622196821257301300384825490184358808420597284120180337354394100962798335176362533193840773578164252328451948921768895243437940594384896346157301555784650085900444460043000877105317635553819406928150486406784513859489908430391075403573691770687340478966645053362659226125674224339227842352181567278099746953615672959204586058048378360208692159117540047608886940576835887113638909349808489731997185938956731327013054547114927272087035635189078187320602272868410595292207427050278783247794011853268456408963033017407744283693420553838949310324402162754684399139844877730751424385934569240290273973715687305928128362544950080310016538867597544440000443974292471242759166429628697816505119776544038372669462955751868134186573250480769811910597188611125834696191463757469842608539318031258571636623009006140902962254494869076786224806294410328309238535774284876793023565882788872419811392566068988107118868529301274946265723666330940652355491913902335295881729833788697489414502292434970109096879081034405657436368809437039266172303651634506805250246254960996684608951295959131734367066663315227587456290831214552068892977380270568716467066427245561754459889248583804789261065382094654856149031447275411548243833701244049489328284429703869063160716190357291670391565837674782700458422313630095311547776401503100883742689086877401591115820388329874017611941830894175906722826348873914503116864362677058134889078338743547988961705142478418617704522515575922681298258557881700215319631785281740118686772059008175226043692252775343880021964420973825791682217102178300335153310792024772899269538393272367656072179677869633842318871447999015847809557882393356473700358954788026123641134594141864575207048636943047634406271578045496849206173862059500154263352153969645467302078421574463009741062781964182287369849050037467435176274936632472854894312759602154652041144125750839620984109500653177722587378912034936878226220816390806899868675434917150171458837183137987889187511158007699378162655221866687406370859171035421636087142265561184671107261728318402372599853160266916530542561804379530479785927211735155853763133830674936084114575541229734220897966518814785411294623221323321625564908798156382338485737895963269905848316912190955812368820737556307527794782183160410908233147080793205666192061667522089801708091933304782349309191951945896375346734443587628755219442632283201924841425168853905590796673584836156352987860804202190116835283363582431753971303788216687861780827644031656432184884468302980928973186572812847383727644774207672751345945381064115142707867798372046775996345782256447561585760553549169049991618989496207999682719358816551619038555476052890600972923199072498642682475472065094870310358177947208527955345307115752415449986810280407864193110224405336022654403153378047217213817767143120001323247033428198582090309250226849323874851533971926629161283924106982410054194967240261266840232826668410547051162587659192252218618748648285468398939235272778620383449214924905419260279382635700993818831368536484988283176983733843039858404987811061507530800745401230287794905473699271338160325273701618863207365636755211463037621492390534232081997391190649051640271178814572742665006373263470754812837879986274988213877623963570182552131047633976441689557183745329296878377273454488925569363639811588749249151209195655778841004698104747173066776808914615435567942158227503730990238499697285857420181298375417378826535939921765690604890405046147499534361103208135292533276073146874549070031445572487286522830172724518298934854288427604427798020453849390597597590724668832696948416777863694150864007055192325511281137877245830917799928541036123065519864288299369736894121663906624477839695091141374935825321609312552743560052410215445108788349769725761818766665956927948617642375298345028889604195645414853253988839049744314333856298650740012382354370667581686478576943197588260632629148351799309391032189590443594685141214386707796159095593634129234455921100495849079272598465293472121135967899512437761345381222678818443280664009490882516331473205288067752924596492239009517366183321383504961044564208412817115479412637894025192531667968736842614440711683323083704938702990576089150990814244320229981152781452624500218832535781587183265074678968836586121015271832834475726922272799748397939683482187391702242764650077807833103446267536153887733200851705467978021558572455725964935377558031547340111725574040312471597032397724651104635369546984051746596469787226264720347829744565754190682697825237737553561401247686377474507683832112596726234109069001570532408461509959503774178714656505602448832007459406428871804483126880894765540524908073372494694251064696489181488524516754579059245397105214153524382970369849647182617815498331787917440892563056480768175592246327443606578004554196969342906583817477010632518514440207379450159673615089163201959934639133360187972132342268572337379743579590700763586580621036128062154121320489065788922032316803312958034542807454315628221482603735409380471874791414226261201143237035719958341847515780282944300580702403286006694776296227249749490825092682833170634985762709431914871080052459900432471207525247478681697738511038907177927021591033208127471627817399120987297856763426919179115579099550927017661149634680346641045484335249844945591158353472745753636873510747517036028418638761297191508597479365148528782852564216738503382659979865243731226249857592012131715131522326092035591251403240928551187158714295847724031836223834056634549529693397126641380941134596919972470318970101464852358143506714487729228777292168935345006643378318734431948362192770296326246987438592466995127391304294705278205456651305455687991032264676040455094298763387554359536596849278843071421802516334984121053806826451981102990614026261849752133406254112684151526557020509575185141221026195249356184058265844289953484936208136122588968054315486993673471559206049126568259504710696666892182907767250062919252346578081555839842481864609557760985670908268189847249199679539703551023008639014708066078618555797854996214329471902781659096845588465579398782773444530769925944496741642117992925446483272919818770399112329380015629955870169917484249199042654775871281306459112288658838246683673266471720385979980295555286316224012452835179313958845415534092358756486108152511643635910802172291397533619062111683134429172133676711121004286906441816093915891336204163429992929912888153938329094562778218668274341182027298486119936760914114018644214559226680174970485553706012404531136984347524319229181348253511830175335819251320828202231771195419670316081702864176084182389056773524913584795483912534546087518293210674259504647311303379809944157014827871233655177556309525883062132092108109623415696363559657751644638213197729066495806798852820906644128578169569788039617076874193122236865434381522760519389358390220877778844354276261548014699944632125063807842529197191301210304665895882614658216195775464880215804765592238397076682232483342902766996474593027717522536621881496157439976280325107019257557634060604554920828298154676125348996383862550530361191678626581143678266276838539399727408900959669418351049663649719072140683890091835668173111887165784880662339503833328139129347193184165263463163809066200703127096107934801630774469460185928873576579861892848649627642417068362784135751309480317699443468739337036724561652233105890029852653907972497369004089528786644242048951490800077075818592525458082335401436439145639336284575499926649842122775994380683999335001289793897572541340011591847942399650866628483716500084121839808060914710594431395963820254401582064487223743167583802495195309093792963547928593416086000810666998710144228447969627343551634027931577807475822090705760178387449292910198104782026499334752721146709195684897609888502840205769249896742374446716110471816258997263212721776779545360308285725457847636804955969669824112362994338922178810338234397346414974674232302259531888876884375663561719306565296621765242192288989777535577864364463245054655519617885605649034685251762850950726743289456288250657080517432082660583919959812611625684430036395490686249261230545102159396991374890668568671432480275753602633409589414602001182250191153837044679102250067767462141446273771943038311445891428540054618324427768984600322101348792126525181375041510227146824499632621313227605599580629660782582103520440522808716899468460015977237966528251302483944605578299850925031711653246504168791373343612734725229373382883843902912707689928504589583097585800825134263171276994111491486973998558804506552157320968010840080281541268066831746218075285274182635764055289491275444594491572961696767548232054657364807913298543597117765314634088612316145146663060192624963183077573980881086853256137902453716919477974192267723109057809012253053350959110228515262401316523369242513395823385062086482623046452581036906342871594563684903696615930041673400335298148863375749828233207697062900133226229334403335196132002965668203352439123234951983046276924060244563780446154272475970682384296226430085774170429997220442474818968079992589369999633623347699152304878988934344957301467165522726226864518282331607305211986954175767920192023341657573858897228299797777115414698468893391518178532535785307563396825150083626413130171545954580106694631808855299914703868549212234895388236281958466979426548603090088567507342032780120112242726599046283280221521416302064941075902455751272762695805160005903218317628650446776740788716142324715687201066040654884241955901098046631493217592845708959698486457770588219269582167755437741928272104471757198658515291274816897403506418419061111823526724796994259600457164211527137800125270349186747922429385957571509955601239062148637681828748241467992271570272659505575720793157340744673147928893400679003001890156682260341351037153451992466326995635762633646256979561981959271136456888884606088761489297972726285862295004690307379996093504931918556725100200261325701986720829984756165240244079944809561171724495358892171436006548296166976218236107557893422053644238810034348911125952408744764358210524653359397129852723488978223071398745592986851260726077153492599414857822117416840511723103811340636272259428696138440280236574500191455939643814008192914757681704283604417493962402681860258619827158486255683181808168377461523052531713377072109053056620659634798131532765397225554230928717436391460238833357244526521772915911608837276571105692297797254179441797539213964141480644785019933549578723671093900561603789428057184728811276119728707955026803262736668116801090237803518554710660181593207121492216551605198240432802012522216958847967497406361997297000410378194349746829181154259837766511067799334538037456000123736924491133878251800915722216106780819181081045371050068992643679950570984292869329830184766515917763396029629665281749609452022761150067702008694915804453704176897059955424585774728183165042512247579238386898818514009111679696481022773520143198812745038102365536096558465093717298952580189271484827705182943251161126814504748024347146368139766468191765217873720860959636645594533271244889404943402224395937873897379404324263150131882050652667406628636055827803964628400056480702983020877998464137351583165084319428167842695948501158015865588628181831523628501577200082691426551358113025426448980358548239175026393391540472145438194089305838853397454650807916243530050273904919289561691154705789729329986786679328569608216025860887779701364443169495654855893782215570230985148776564220269076463285024691678097173539813082842039505376728533574560262807562476581399568445435040913614407967233877211075631942791382030402869580786994146998790753403415290124153907893363737083735539044867702231046539398840815730160091598437009175717127210411188094034201999737233550519610690745806302145633913215561442978735638261813776667190298937274780025146926355734136007952366338908448783349960626717507412381087865506798423797654567059554591631944308085053001202042302608351908938292336269809723741106428926314277573801164796588058530751832204166921857077841713783585568961404304411084776978573188147661968095807297227209081177482503598205265148077483766654878733665856187018642683072948500218043324137845160590217798648145035668747450345257810606026993667308132131311947288378417270612397699535627757800693241531105849310440703612471588175833516084537257816992020251363498627364556273572402506845724815137633702009825213563172241243190010110749172791282386515270364226970664805002581246460809579132604239994904017280201654614730701359327430383201044591948377665703503510202820661703179846363354619064998978039200387322373277621271553791450235976619170431181533345389885221795869326424586484659629085638857090907958990303344894955410836458217161495112244440535810147897902262630098341795522413510821237874577575198094471014169477209191736958730332396685164184399156656812942871882017627878072498973299291698549330339791157671023297561996652266449217313997195029402189137792219001335140651890778090475062459643527802318444189594854505463455011314553509583185012556797224056637641601451219464019442261734386847881485261165870983032736801343411526681442673315699328747821664595275844155938303944178281332512598755366275587245998741442637211229779705142036414075620354239267194389796593732953873920550006375931884804461091955757936869174863757974695149539808794797600551264230502888905161531584637489134553982150312465762030060090080762311309393769327846576003493760291964874002328528489450072352717216957036543063247578699789205191783814494874293265026805314309214903323210853050079295540222312758357413645374010606173550410188489455015841173186752500501238865784502604328243680173309763476443243967031440835377483104553022123947348969782872389869804547669661394842741888283311582750054774835450863873713440829194299487429046362233809317247043102421750077532665080403237349371934476384384529774753567751836351899670384356351393103555058234240344343821153581843745814709563666387503372910054648524891398490443998429486074145149578868630279252644945377543681014645066968700715479406719338867779296907527939850225172287605484053631779436540102150884167257585440150362742272453613190201540346800334730128079802742093508545269122728467788942516576468097859038128403260293729820098559159803746611476465117506887945811602741448228435479282273560822344999349053446488023267495153016871331811455237176727965275922334266407028266612589879474940764387218384378361260808785510673256210965822368847101511737657443444696481904699839638801279641735368558360855290043692998813857560550670996377155880551495878562264182679659651568665653343180388843039212688299732817677389224508692467356136420052734043796126355253209877241013341016149086595874947070550513699986781553247663219467659123423033528544996104083772933584686387715182505500879407775144656890125853790408308516294400794268311618013270978582084249766625181280109672788479779455865921991064519600392412829244574101083106737396440571723862710824988912798456693890366772860727595213847661126999801961670681377453932171324828157157499589124372256206091098672638736711643344107119466054961656486169049114726415465479594101209184481835034771030193067596930458983559925923647546519542927110864090395913764082093154335386549197433075980229045907007499313967913217466630136204061091461889083466539587774452251075358249642395288333822563663682128571149380576152293817561390879354513566877234793603907861465958116395831440173996385763335514891450469849216132916411272100956495499302313080201330508708767732700725787862979584848395992642318566795807316440831377552091582034678630447013924820487456787911626512380347126055311880506612605921414557649524565967226101090552714046306132247511813973797155599425080809455359578609865545332282493345532329006250750603008889033504556826730244741869788358381235252399823387841996203299670407060078587153777262219217105752114164251761515019293769813896425981796659419956998164051727443830232708629286042094358583149668456971926799272096061611895126836277255393413987785118107000790499871780693818061139487415675996296181420306485819455026779221114902417796986262375857722137492943166766258174404976397748016049704573524186843134071710748445652295134546662752835613405432600333998593238361712463096335651605291900964002107064613089985681273706676507200913703491788648347714117878393195765098123813987591302143586647878791270847818130761080197889262703671851309428965452372845580211222276002476490312531776423998872978626954918370624529553389550350320869056056489937816035171387402365203682826394395355691039150116506099222354669255446547403660038767712434074754236817554555272650059705724223292685869904563111884897252899728885859478416878979530979757739203735949797197797607281395769481604035689496106924655573505630371533667773375087433013915475972792940624653511767074397767920295816459268925519203008720302740747693101899965015835666490923755847115175805254004208158742043374991278967050669187475082653622785448412198999085416054540304760537450204539187319057909245834929297554392547313508559363295007374446523513208961617203277533022601719735328174644557656963842575641582533768616043342470026341152029684137334738733685196088034601417356235765579378728523736183334339761957719889364929596113037913908507731973091973050955190581988432318977877532565470831248590022587607804947058622618381051294274713838073607371360341819133492021947880336415011643224814110553597003080762378951902372255551863945791454977755428731061762548102464989706378665872356540974814387443820163208899573277010938523881916438547105276004446907080140352409216252494844181406946581486710549594833954119925988088948911965864569952108383737498917225564937722534013648179971087681468019451210106711872370609929021273162910635648916726883728392469577558934495026749602356446955588935593902806341075366026721170756206252200880170341383355896544292317432790975383744099320666415958393059428945619978873288363102976188504962842899225951822728726591786180756953650796585924061633718501706295711828873212895945173005577262775641580838341345325571840271633669350493231325548143327207836675332615749955637655273691626545451609159348559565212534447054092865460270312162222193881295256249187657201422064481021464030232729911602478651862665786823263658509402693697111779088106479939964206672410771287597584467295526519287594792867184973153444963801981318850148066243336366938900643574777090291476777846109001288637619275982515118602966371530203729128581426134820863249245649203383203799978960723076395964849396151428851201341716792745324517698309895535920389165416698462122426344238044392365740585366524026706692260470855552632566460297267897657294919814281264337794130470945248888448042319521459026262455165926425028276426117052848369244670369857151156461384117831285999066755652410646321142430464937751210058701393762115676187624967571959871912496529303913104806653530212998968907639685048745306133460340846073124684047826789590713811237609069282680703396448765447778086593760036706761861524721281389934108379145224695144704750810654288490690024061640242849154687253848809366991409386245027311999069476563802404042349732745784684979560600506058556993440127090789575780053850817888492964888540150597724002699899074406277506554367768382656464907003368452614767516123266407908711861346877455365549664839371036602815335300914450371045433371146129125066190309155864577332535612214332308278692992068465406797350981201145765562808668751944188117681780744888754840699730378869178009169687371588439767249016193767946203077278991449161189404413318603361459417857052878413622499736889568365724871179843149292713432961002332560265506308677301713767608288796573115231128106948081180002154600821381817218058065962319135434395611989465724734682182963821995760122207621708888753305218313036653253620492365369238177087358538803769879251433630551437355368514513261447318652470308044910859295277303057593190749615511127690082386169789694575692979031468359056462870838962505082746207019956977196788757280933491159535408820898732992243837244898585909535632119795582822092264897278415844591741587904391191814342271182687607726321711845625403023319420042730131268153056669206424465319781235931675997041128175484762318596097354799644814405577694032315611511633072964659541841978659824414173592511115601248619154128091850917456944173289416067439123653545152457080447422442776820118436989464551512680103622387687797606354628902419822433485634885537753620527325578555212461143191932488916510530262305965675354277573815267295079151496122189886898532403825454807380390393757290668362122960057499605551619285019034984379640868362139995871079165225093006155362545805900580831203151541253753790962697835015124566541473525663354337586158827242848536389335202955991847961013439887227293226864495160745838726484751241581657293461995591316842356779851357734033251528827762090603321072815919020327483208688666161757031757963656218713221498573898734480328547505769015420310146349099931331373766176466897887944016538337011630281580212631509850102776644265606287120762430373881014008341485473236620224369961409372649339680022645198651197342477443218682554335565725197640752704896881030754507187898576930346005032226494734120309729657451847311887427218156262839768055949163602780428586697617158690338561945075079034961191377940415836876094573872559745005385684307339082212416223339349719910171099031617652331687638795381900658680812688097378505859866509917446647896712069811482040725043280354350517992918882467885606704275356011126218815960054159696574527278302605751554344391964614819071053515775155747913690797946811475183268459923649352429029051459601680073815479640602815528850377988073539063169820542777143915871833830886148359983542772755065910400486103196636872237542275134092045200851891943089348164644315877469580195458207260193950989875061563426332148765510123188646308339206739476013616026058193002243337399342545057672758693479748178743319572325345878923292111609866848074370997849600669091297310254485857331980365674777807255253653322417412777392301109081523566486347437763564461782177763164800210821683337836646363069280096484716291931473474676734551685911500205842576375930969836092794301441779777679201109285697782543215503121337179267209795142189567918464317544636876479007252964593351041341118045063107602649511453512410596662499580424664308372234202361058115530452963351209482418837262911538375676714543850548725777124260557764303554430704326438931999623090615708689351152544300805111387363591792614245802247618017527360829446464488101579011455729078101125535778938762774337049524281781740990885389563940906459749116337823219298092019526050965115119599001581784687596217745609840006125618289601620224395193248626906544203721672124019391180790216548311929139916255259750987744209114528080848790911646967794545632485107107024519307413484433733635304954130365539686701168474296795394528511020601069894797600430781925030072415406362850777854642906879773880165802357988365781148932351134188994564256493332042089630375453950590147994699332825947333428020563634042200602733676561229173243774785919743137311186830831381914314929141317447833279923250564564315075456922201933372609849201092056246659123582971812084519646733402759264995601768174932900764178919504958244988777244116205076333829420147179436795699307536164882000116833658868486929444889718832613989011376445559343543073234103870337101168172759662125432794080145178681847125471268559776774670611010103849143676226276149132746110713351388047479750035094496924921134297360254501435788470432383266965363315456075555698250416329030399867242907359430827659807892831513722951270095047361010851902482638809053542536583488070226668046086930823336118259709896624158868014440985165524370477479431206276970490603873340488018408064261495820433335665466111427401705933461869911597525881722589866428568420324792267611669063187755591922487375780044564938559226655620827089955289239063623091012764435564492027403595034024752316114143433398087067355306005865062360133919420229821779122010215461680950333853001166076951632633123288296864332379657605412970576996347574451215873364714175581009136921538464068674869249556681692341123648316422964461978885577868020503131285108976569272498608804348713973824491439295304343549671886279415368227973976252546380154915451612532184590010759081379842299062368500146105108445204192019766481939639362445709699824676693904469501818448120073963793134734352404613356576179667886672854946469036784235081816942879373508170518689325070452142558016584772228668216691645284155693305162488271546920390272248040099753344511781146675614872139034951215955878386985107156408306206836372001942911141510144422956658712821101155269187443661826411191217269861205789628072359609283324583448809312375673095640537588106653011447821649936860272157050969012344664736097338248449749459123570567831306331004425141048302479680754156566921444466372831217829239413995493510455794654871822872097968450599160278583328190172437286595614933239755675660048616799951776699209507422330303981686730485915737295993457547417041752963041849545806581687105644663793856168312790756998664283037991378419299459187424229335529026954301655883359591843479529253229222000352678774178172302637962934394729205189648993010102284350176602336315779951427707178874660329336768908710905455522519030140372227352494957574065776587393720827422240365112747343692942287177648461458986361090496369626862058325523294258046350078797155644475510029097356535648603641320253365121557644889281133626646358697675720532193184647071277353387927675788955699439857640746047406544703684235984055537444294787747081147768333649355813761591865410393690599708434770631816358990245304194573828477668090608913877718283021573929204092501326000763942796913466808541652599882711736335357127747536504095300963596039094864580859812094606345181548442245634981163990630514941016902757645594549204715599903136429461175918942451605442570381601810116931849070633004794932058353643567521709849086212924429475969377727495646007258060995815997383691014022909600890819697698192971010693794342791725907664698915184470306246163445750689166263097550890669684158574523408605091585058112977834003879733986794686209085146095578614849559549014570750438936121447312608972950390995512318884734592323835197263289607740886509359139864976784658678326740819131740869040228268689176636594535517090273324260407290020622027390456779472325525248001931284403780139122941794859034906757380060526258184315529386149533143404987351727824500602274101780119234137213426084921414421042580120817786978763803727694972328162836661281003297384760458941690647919148104985211223207066648446925744792925716996438634242080636080358274435851611282791789189271340712589607882476701825016352474889570580906949573023880657552475999588900142811795488389223546221350265195104241586386872909485727276881569920805356996413594998480812302997266002624865595488829889757652114646039821237636953326751245817729557460801014702699663218603887506200458970235174762291422028830048656559992888279026050572138599118254458454147094042057343030947124300936844931596512549206712611920802268973317896356413900733748890794908116275902456807636800861035151583295061068178823020067897088029088698850398222676418137015315480918007002655625955465338430324766685483111133511735658617410297294573115775962580213852748074722843996309745085874166463394235830941160846158508071504899101962305209648406884047766065512967656130524662037003622123180544761062658814508641077557787221308476037716408498889158692370774676108824155508124312121938077975103317901729800638118150511884943086331507865114687877957694339394025014616967514785188585084759527481967054235469768529748535449873671362850033841148591949120574542000298198451161250297879891494754484510645242262293186586016181322697420160077747457104682582494725386151553398047226514883170861108656326769835870759723061100639240781879927251951244208550829266721742601142810454755321533392494843541852421439171499926921221581644006953758752203782413052954820182366091384882890308644864027079455545547611296105692435908288434365052185151366086746721829180473865641984073670240403853237097357071988922818920458272303057731224823742131548395961596172701835018810010580478619914935447619069073175966312596557082952465473271807820900412652816904682445492437119726204017771701089121506853197520189473795493745272238267026837359061605387689567747509354302411362889270431404750726727983173943152723024592690484264646334020431334917709781976894220693394377766441249699370599738377783049086148585871903661705095653557537052524327154301686249508174349412376648002387903779516530314461818432196789710513546994744779168830391864306387958824794500495318084360085381738046721608996427875639246438554148683041325211864513947750966582655549420990249002004481209903886127769537277560806695188055357793225713959399052717793874469305784181685852842435077341228180048026625327106517734445410215030280260448777636123306409928714976265974710893014111240060507264792760399869596376012489315130504076160549928416478382766201447626978078005459970355639752899100587900281151365855296240989930837747811339461806512772170392601966530580024659981651279317507939802181853023378822774513122706326960221604211651748645047351536337426581019172219272912911678138633056045835879676603788682752367126758109926438305636401741130784538956866595124922738338588462930345338028032970913899996649054050914468732735027915921614725256259512994345567649994069777900093594639508817247459737269996453788908112826425270945495446159739672673284944530069879313626164997861827730554852730846493342756831531777087592507193572333141814729205032112175224983678752728037868652138030730603775491150835764583202990033137612122272815891602197236221251789534090280824571881918701215510743628802048319296012291525361740783722165634488254344533273379935212172568830526133382328462533375649932560684683948923307657046204289437881682599926909524148517008796868976080882972245462555343037522082459031662446390713697250419116466926989065546880893866422477750549076504893194690502733297542108993624771185380802570522923194612615373968228254104818545972485075567032479452647920278339470056517456470785800225688921861121706169492538163583013076321513482831990663226909292964175363464021560073515294768229754241116946039082859164263684499424618680523360252120361017967872003560945304401392343437852830080400429538521432183574871850874059434075904375121412749929944446631150152494453462735193012353306291338890693425427183814769551769629695690303759312286078423217595469142338355748977628318199977490868171887447932342231979928385823002403118746126434220286939514743722308359025485196595488131072516591348436863337665000416143078009835231003528358513610898513534514059961176037197280847567340932442481648790103188531001526703448792639015492951759341033240785123693253053672350185224561822914660820564098667368504451145245833670548205236467836151655218241917531970942146003574858515466482212254354508337736042910217067566318621594811996796585065909018780853574824165159228193250510813801790118368901701958498798964135854053286069749150891064217016620345359689772208235673906518184442607717511949351771458505813174674718172795377780046003880211516384684951249851958429267997672143091493915530076032318838325744808419651128604522317990604828477978472939268968885876038850916884447168344939388180332030356042721212105255752148673921890374772830691676541749308643210767890362744938358031419844971177659596428552225110984839821782755343411205424536815888921763260162722273817062459879477995624547993805146044089284471196558680060675761033704260671660492941383315135929041406886507473204204456331803658328700758154272381346964525931933610068242913843049322664212696843985066455320895852953768686829591711556143743710928362160045972738305133213666647001810812674571815046423167890962473956021247234544820707943006154644750983447266144362505018109325552770796794013726395075535345042503926836367180322121808983679520092143688273592048066244073105335720628590446142093551676857616538724323141721535855049242787374209253142047617032652596141449193413997813981043899828539290549494337773396559619050800010955442469254925610301043302175311307623637197605090933241971418341505475925020616287434841921246470291480419856470545311915836114517705443194571278615186791435558442414965035765316856103107245804688191023142219273066373346672114129148700866006384601372404544832234338401250437479583926752330829162047335246149226239720615747935990147802959826235704370547342214816425281089548407110972418117378194749141183974686120932467307207302400320158839349040024712222565320347909146247367967072103142284113333476466144128039167004279222272517252135334142615248055021032865157928260724846202980161882819512745660224457212066071770752180706963004949635199355205562805651357324512379482152177463441189098993065630712254413528433614514368733297773114740426036222368257059366298411862104242948850714933896894749405966735928547716866852492765116142682184882896503761608898855157911535519108442223846847989576115231731906896933533789581562754600863594238200971496880177914121510067401404715645346256097097974727662626752186663901591843014039611001084820923811977421797316377393801950905272329761349140828514764994494856647509210325061410671847949861276759487625732720242205154432774811273825024870530029032700762417511037815620037465097790209289653905398466680087337856812694812386964439472697637357104861075570167281586603418355640569221213363935485722930033345996360421112384809138328549123934869844234176112236459784668907230890728770370291499337131258022040842198465179893467172882502804101024441029660066266463681155881074848447807446471505962554122361147140003382868949837732228080098006541120666454376312136983112774582357480096697954308811356727580369757196439683950183354153002887616150642882280796494338332236289567238623100180866381982393361215878422583128689953189380407736748686123051414640902663018706411254470838215374978125323701870610573306288129426038828005551792240023004221553545514976161866697991464003736257812369837050114402013826825418234154124363832126735266337455836528005429694272889266627992807223788346999941610207546330042652492622162038654194526542828797689923186438613885971961433208007115896427318416101213358650199181900591696019386070106543838922146904322275254014554921952517255315716347624263255763864357933095501282976705585002024089454666470009043139794128454857883656612087973277567556988350798139668959082857454741896082223163611450183187340724004596560384987856593269707800759109525040728877775134856912492423452455227922735022984501455134297244530794636603925597631929667868452380041169601673502542957521254712178643699931356656055942116021085112030528963704404321331077308822493389283471287421871640099488402044044015805754945530708768800003143841268044380737596679059752977088068780394326705603508905786204640484712825351699525382654418694770830343390855838864132084817767007315719029980306599879710123267712551955759860695795546854992248272179724138969532840379720618346199703484234735142025646544954418671804901900895128607900654427800997744310193046719488762474384006875145183590564305399221498628869813458603384374495536933362041615714172515365983498774908280760657459926239224736347222218471205465902818416766541392988037230160008279506613352954071840017683779642986263607334201850805275154388797276452442839852863947088060429351227730354933619208764331514856341637571257758918175238725269673187414164984194758799656623315105842866453007372803508049029073465039687523909458872647874054709417444988215239593051195268743251726787770115381585164937628047655640186193944550426606543631967888504526275689966730212764301112661975023462811199609812033762901491984097278509405694302475527064018326703644818945531006507961730804876249164668134974667278663256506848327493140198297270680576872307572690336419390158538794602552875373449455892920370292743853600007529392934885429803690283332245590084624574759803101399770958442144961654900800384232631342180252196240465889637316394818178953710685576855995516583202828155091539526715066786020052273453844251349871557696840052967275326808268074690870362945479735477271860985396931937266555181738004461745012229963751162223569417508715473728616182174042358593939775815522662403244487644316647186836846137777256415585206610643948476717824318186932507946821407320871078282680067381819777488012811250106699236865072285901554946186273451472998821496549003713344691443907439240201354960878715961985667109294328738049300578363095270579970189298567311590559895006982091084354709229343236482403371586583206793605572738933162772134314638887214203436583311243478826686147951611476869274522784886467488420471217143164000959336829776503061071682997635061052734795095617836543698558521947649187641958297000813250596213100289400744186121598493092424106841935486627915556609516773996127981736774807099276751929042262617571524805633878225591520974212009289394358481899165503390394351370464274019546980903518336355379188631616434595762112938483416522766340633126208990745367125641009118134609751420402642217776411285041790275681016934833218439174996936134267715853904793035734606851450960196397117973402368566528973949132852498885481921728756814010329303355891891262465924524950501769728047225312317111486768854842473751474286059980290006416336248125812363315516542343157819132509502404096439045755535102715330590345492345580314451318933307354626595583044363954269756396404934204675782363172685324078265040732486401634216916551654045130129354268382972708676736764750835303849833378167693253924035482137966717480332502159900279305151484471033037357204925995380757280543578797383118159733582075039969470949108327089988496899288848578770251202093298472013333925544006127481682125421151179494823534123116607726828459643293945561221621229339158857986926603756647998487707714314529321651861403660079674282634554785362943711890265783418627014865471952605709096473351489357695012222800828292728446408738320471400851015932591208862558052818408497359430946434645405961803838886733398468756796237226134555754533435045664348624017846198614842827410069378029013819358602926303300762216798918845903379367915770897422557018691906469320577208199765721081402613924898967532049042872590911087432475554830190972599679551346394745990411262828573105530112201969877114924104780515308819464331358196461206629822850836960568627587870515260692420205986497566916164653013163853064478915188642827755702205753222906654278722795064775830832506377353932406108736372868040739376704420349429293943041195820476415405043834519821315554964146814547010468921462188081538348321029619571853934596422258554009970210953246049211926551846560126580211495398450867725038764072825004490210720556341355213071876750277598275523933592660463183068547275981282325491676656933906320817762112874755088109458009131287854684583897503737051608117075050422887603032092625149839431452289010230458461207418563223949442637609471976061829816467756105135368411547173754002644472108235362259433125078316658522773562847684127519749085572922443793669460409704784837645483278316421132816701781965902736180163443731297587807500453214488651782982817778215770476101329157341833552216255239012540197800317886557278846749203675963410541312910633838194726985759612349918529250390919477094168908468086630094509725466375260696335352574173860319816920425980779227293035296985028365325678552462823423057988565330474591834067126998398975699197893198833581721993572714881358819075068492644067485853634327887433476767598099939716311749981804735721502487724307091814790390756273722794852499518789110189934557160762175819821227555881618088990455547239199136124412773088524789403385990508332207121697139941934973478956314080134804173653065561887584011665369415728318158214696542328054705111731925747299355902939166994607459390924120453145759141422408874507125280117183905393113814889393472756205439542832071999093178089213581020251858191098596769356008188971832554963785045128555702525987003416232251424854164219924938976886854161863601711300333713937388395824004654592889124161463936534238426647341457361181524284003999406275232210694859639845302632478774592086695159557216759638178137878289820649468639631632689424245598314484150062177746047166800695430322224294143390986179764265167733316043081367981335546043319470764985603954191179370952308130663290233376779506436767148836324327622056817496025527476688075847128038022332207579207387265785538825913459822965614406491487790540641153833911976784210408786655342806018016083054539389891277477229375691673455530612184365392159007840345236144072590038952458315087235582370525411227422523513344815575030536018059075537150296312562117239884643504160121897316638040262757712948502066754408837187322806555398639010560623040944809874153812249089788181299587806765199070341115075951753882824244641403902772941676835203858301867414135440569375490892952295378063766101341476965564308326268402984140047362284709895828588446926606115434300199259238485704789329723940915707956236562411402354884468236113524524526620472210932421021101368903804487695744030866584173634848692109513060894826830616351980299645393269592353625787461263662893071483043529725843842815755264016602865297837133265309077745974129729674628531015567768512669224601353763299046035496356616106875810610302670841985449275972243206942773412054381415116781266793077192471613462762385596843636683225855540921381045538123292036132891211002436811128251157741542216506482818809345941010028259628707270294386965154198612046108331448510639676566742253229874389504036488469874648202314293350474666657268049918186771809909616172021618680881312041465538362349385279782551207914547302986527960469075620342198937093886348673544654255058719688887467586297356261895088317555509843163564590523720376182406385533389808533122987622901148870261052081580371790922479647361378159651629186806718217483202404451385590363355514980478950912327368369913659783220630370429718973085730492439310565336289041168270247820764942120238820707304185726150281865361344189938107117349942425145031769800140727289607717940007346150450393054584122245888344099171270786434307660547715837912999296654966755594952332518172757710607489173746407604226999887299842781584265802122691792564639148561804345197551418464434998395562969548517053926633365790389484753934495805651006778433175598663126493284951691701901202644793467986354484135059153210145448431458624527604336398616278711922047935979217062314444246223625517986544072208915204145309389724839398925107511831075275482995596604006020609768927596261513931367835907355047370125312177976340555579661737080134008412501312345979201537582198568220742660218361179994938715347445389268991255125352011756251096326098970951193523211380560786021754986130360685261104994612069054926912506481935413171453370782743832488370717756117351268323244993483999647251190656692164797555120639069564410112065156433722250996192485621040159769194349634225830275016181317195628970108833691323884353921467112383698470128316753393938330685607718795544271998164316699381323364218270370079682541551084203922323936003972764590409251014075275945508759613642634060607842823352155888916861247722634566122864171120721506341307187919642279848182671054032803806776149783179852429550427852165042741567262451642601051866813731350898043292827140770297626374775801588073778736119854560970892820502046179594614489519312960975692867182312297389016558501778280198654536425780044196054238511745481613042733046079617367072091644837164428834027523626645599874676523308033031194606616512868277507307445100394373663051982687046396858841385239053435477125095538205591819688772381610577291317367925374729134744130522471971837670294483272347881513156920814838736975248150086912123650227624751329787394889949740334843256078227856914106615412678119503215635479350907382024867642484195427391872666455051559256173391960060386598697373219379084467372274623976416380424891533325463256546125725077361570330788312915316230914447480593946362530990423595685149600145611891450280556921027609936137245752426782884789391040990887658259953696167415898773529944267002315170362234312159140964034240613270429810144407878666055171473039977948751296974572620694173264742513135130198149597681310807165091063826887498341609403722096517894450592729064156464079481075909751871203629078856414589281518011517369408507096092355628291950964268680848923445078289253622259530149472106078814193512865702005460124864516186408946755500204682453177388180229308752741618937841628471676764671270641692868664758679710444097480730900888487555810998027308538416745757282720788950732176482034911730226441364847982709084004321011498475505878012189395365802089937180340948240358979238507639367121809606884034603577409032971122915733226040313096913240900237446376796917303333939581659408182476848261847306276091334079909196741497929789534305072545337117294420819850998025244992752634675514370364879277088773173475263782859282503827016887340847910182124415626106707728121213067305378106080699232220344229140312383590851976546236990022683097463195686568389589764189619149816423281261254790041458535120563018251367086348650453730714975296628413137185638263646061963710384263453553430644926801204844639813103087807707646787544473815055493801493877258576063820058244494118974165111373908959923718577772894773318474257572590018157378904766434267980940580396116265366176923827399607514681891399368992115021890303304975913507411810745295075476134016617288277977884645074665771096574543104815854511331071493152459948187181977802965535265124951952274570472702118344200521198492853254711523588292747404307998065583825042511380518080069532116478499069674413347448724279874085227849981712642948294688649940610042796709290214098480138782058575689239623781216540796045946565150986963802305967971662165799722305350039961515011063781861169733213783084785449326406091438434374563488158470021994805047113792844773169829231018060586528156305284352577372207464535516649736527438965328730156621787751678559179509822214270549049717131733415113466971995383266751280971096815406059710983980527093973330674253751391376510876217799428370687762483937709466850614735979662932442800633877034468775756008114113489355438702224176794204849176726727529373652482153422863697736329096537123346297022935304673887474174854918735880460250712899669730207777909002126053615445483706461967811325770185144390968709287703421546586212026356550022730860908479834856697103003063953632330117126707633385042068099957164770678114092764104017896357079675872075950871376696982540573524611093282508229776915076800875367423686495047665339172807315794906693337094612564868134200446085464591218068089579243769412357233652837347247567942258844183914008032309023847021099783988486595052266219583404263418028720350903927466701672340648913532363714574335189841711455494910383343600901309066148910650749102666519914361260478078794734992592429706035701815188971288778803941882431944094039864351952651653902554586532409864371419284029134075640939774106943901277028451785116999042648866379351702031147431641483278002280135539800292847792914197523116308842273462466450712418421382788232684407591326383177233926624850875750144012727457926478421487703377896542614161136271178630558147922280701960133993734798257849519425241822456440514427679393177606257682544067216628187032164388820039530749877949767758159256173481485377131999181149343561258875723111093177027658084512694475017208874593547470996922486581052423119439179415622438224515902501995899076330990198705059563908253257504073772691827789576267061322612375560032239208153321936174871864044841685661340106273514980941972735028398610238654195977310156550475383795658627755646314493438370223306898961705807110648297662290649319761412183051992664377081629399796307776505799390962272755035429370518678758328005366845099780177395222989374671593764182120859903895326886786804462121566331107058998005251940451108579989550038013977576070877067125557623669613812413423951659109433196666601892369103902671637311447052543463739846288260163378528826697393027284723782187930136041025951549989979263935379823884107971172796650128348308138401598192005974623200044313803946887255077094052513191741905422497793234431000200133906222030551300105287441955198803990742872844950442335694123899421265028532246899366875136576305390710596790544490295682120652072370753982668726982637304595387412599786995257583460655721887194608682237339793414726544704558512775619196087341356124905654941811255613659109153510043792439300232275501854168375905028856421484731908114607482912387211156979099989551833940747576065901493715946205296742958845405830275105377520586786756222194090857948902010512961054960138597277092196952552864054031607992668548866853527833820155668297984830301911457353570640925497946241419645493810695720786776738008719029593833712198350264213879021436234283887256009844232308584458815477843512750398889554909137439891418533114538799218199121856765400597827307268201988971455483349027312106764660806089738263621941816515001257488644213925060892443789273801411154959779332826568288374838199983116599127989302279150840555191959235782552067752599139658884271948064116931362291324525712290248966229774457460416242503350233630124248012292427704212922676212922667303786833019765239482623780915667309878180693615656014691437809537088095669413053928051835963572502521217277661351595853087639252818987642186364706397757936288544619631759253569986518606476237336522213379600320439961721646701452289061915423616869486842688013088980124166695301009229038347966935648537717589693797098726983919748666840256854583331866843246385498071108822629804200907744183085360258053639188919022887734639347167468178079787300047580185442779545917586908680961727022487522676787296620643305434248057581671682254885761576037047401000005948327873651698590660912307779583498090452118518234658159932314340788671947944071280350027526856666191886748098296496209521751387035383868500660531536307906811147473996255568126015990991054670801003840253082853089684758986687509816331615763210701452892233197161886841723283369460251203390261914086924229934947787907309806554948372975574487759184788830118300184506749959792847391349192977050587115420624959356822256546591236262544378966114742090327516412922163860590052057699054829441005607386091156220271654586878024327301811851529471800886541726434164104134841016799005620470618387194534473837724141273889401733089651938925814332100067591498916996374637950186047958082498045031619205366750256389903960242838078590805831730035127534978923481118990744591970483580139364405731361920097631238710371062435534295871636865290255832755555336871778643664907546489933112721909475374012331317913019803049577710063738366145310087568445837317733539837057943230453201534570751654792342880838973717865867450090332655418004710842400055659115632615273405409127696169639932583792979358360667136272099287841027741157753445257220174784296798160294419412917604877913081160344664911418425640968910010301746792740738511952287045654180211327294410702588543116710735760291289840238304484815925309179315777764987330453135893639913013386472966395351839388535818898462515243382652351347736318771210417598201197454065772236294945686850859567096419215395082822085053271969106170185368693071059370457039020220589890713643564773863993976252345473725455456444646327330699777199207602585434275347553266865441806327906062733552460291354887109888026734596584194710828675039191819985919134728757989667116398573881767631683051320843849150035159581267265950171919097924332491378438324635624622903167898577392832084290863293624312359455812400087050813669994124682812968951431227969998474792955155512936611784154320489064320463421152319161610461185350515953471800423279313271804275949583255918059222383226182626935970458615948549697262159809665710541878073551868113437997679989826983657514871981036051203287379552688368116889855214546290447703003867019112022398345178964761567794068529195865150332233646020232695238356595664782246919924100428398673655267416948221270675555853024964269060711964852212853313059793112846756254613355548087379389367987388460675347589681609126593463373346560926254337540706264575962567170876859901436652069459144949923705121284135707829961741936357973788407383733320851781618612889940053008151635827739802046658056519644069782896852953085049858716750615915938885306471395777621776130355122340582015498961490983578154230477700543750962902614773461241248617918239249422923747635936912719457682760339350958442868069858288020747712819029457955506363471079773075562148072472760917771408815161740429578715260423906915291096676440838180502702680054823832694211615082571739273207089694743436100572586308448641689234185656497222828116319966623200357788101105684426679209588693509475152246710279371280229040531811476874190792890550458861062096924557440799866609148295296860776076153105266553396374354428766444684295172992295526228409435895824240119689300224835648323904320613119854626117204036142405293971449610683629882125806153473567204752034743856051525895203420979358693572216461297822080615336792650724405306882472895723328480729037394995838526957206794649947322802501769933463430488953675218761584738009896966525287919754007547405818548647735566455616885139922920848328518136726264113575402393404377028385365942366434078661476020804159241829374756893525540086266993990290214773678562244924451134720709445683459397554397194882625444934653929368247280607205664089496745991850646839825653347718107377294430696632219316081759666102276801118214518208915440533752679013351242911797322975869484611111501815151135736736750171489969036808197499842823965664358346806500435402056453785255828037970607157128821335379328407408817313634644497172839576842677667146496248083895754906947897244650695835423944454116924475480391943372788663854257836746716724517935796507904276342560573990523933931652764247193264183425256825726433167889132204630827058588780499869358694617605141952285107110590751827720783610913288155311012370362597922508353623121629326260355830708651914860234245975546826082065842976742666791924419189430484789062558644520359962530839294639159406244518617657278299338565371483451989554446627029373710377943508269319101801724197069221278597578806379030022300668667646050627962011814355301214140720592925759825916998430172542769072878600186928995649032635087375388620618184157540534939836579456543931697520029422073824683242383325152385127219728384562514360862636474479649073705639006033451160706541576748159939745730278650462628840438437441652658166182156975062044386407618342727839484081223376290004697978855211512965209343555613760708676422592118084196920267433245561836894345175810216212123203342765146044863956066041516815941633666162728899269690368524011898875542413389803381588096411161054093590985295915175807749984145521629545860899653448903903795250481723642970502795374081473585045247751090988143575325640482899372683608974178083122884677342484607837574126292095839903877168785538355151221522663586760092000771820870824065252991232554242847480461447288696469489688599611440671401171668015474808520725665407260246314799258231062998141889620793603400632821635363672034959301007014271221417321386380393113145821763037072493603445768835596680149152256735069889078430802268652494517358603116699484273704727202328845923361911530787905298968681287759886570178864213047897181921692885306405911392506894049993528447849827831211204104840024877957080793468297441330936046262836075558014596277819363497553367838129185630529417042700564064671078294453481369991635477086818689451083916731403496729689984727158692281602538615561830712346155553066122863240105807870533665132980652317413156356220661500030721876323301821221511143664266048971002650915548004162252216347126640564250187158450918015951799272555776553167930663646383877712955615021574688063316846897545387172367668588272487719158053392541241467469980982690836847721538262011799603733494305312344053361254820387346493111216823367343631175197655177597664091383336295862467862011048732653637042307058397703807257169143512277993807940769792786719198043322573425303031124786360708687309484976655617327212915251452100100191113325614981494955009463671541932035244692526290071577510788196596828515824522020218082551052599810658828308292309885268422232766651335976852522304342988105942319246822061456828421779880753246284572840084748085041372401118563750698843664041085950505024851854388626872950449922754228520171818051524951859438766448484601273583334433464699967536301395092962805497953204436037990612708256869217836464529680051898355346201550740652259847173466161030013793684668646842928397860234691666098149813311311452037508813596055033460262585393988716259245044632671373050635259643821904867144173958522744182329002853768651584538606830588474171912762071235877334962350620883433341291407824226926364970211409295892393228594519444150739931024045074910137551549018897781352441972605055921569345432169465697503039210397694437239745898083594496704338537268908837279510265283677359165560407278184152614502503168467599357673539768718885730111599184315257961915576027972669417425309042352422533313772282577308718076813440962540315597770102572681235733780021311447425610048252429262238616399330619884798412748766368427347097348725386508762793838459695793676522960738694567224714248618995625133344483966883379976675926130015342045136988732303503887216135999932678145424816720611221244850271893122096005125166522024768892049868289718664176160742000016742118592173324859673772177974355911621162354534511664725022565285656919641335231886083430731614872944178300418729847646717412010515075230711468156976241597125890611290004366614288865819705212257220923493826065878442807745219710322971442100843208907027528766237818693057024907443687732004026766173657439203923363027308846108664816545233965220072703456947688364478359223001874265006989633936975774813063759576656063782047207484758887594317933823176420976201375821550229905395473367795874902057026382059182204446704253058489004968279110297999086863702601414792955453908654613930655169078119944722824674988669737787327896352945066306762212381357405887643983029963044028932810190571186427244700464345526603251204714495603738963179289158736117950898022628727772632977468470431668875605677103520521155459586530264483651776796797464301681262893154733472154280721188445794530401546825921510609409870530539876780022443451344379651713044597078740499554308417054660325479316221855048526590988803430305221507930669460898122341735896647650330104287783356340434738420203234662469065638504942435894010974951538246104630846663993514686044348835595636733786172545197185934432180379518300600884120561469697903445611668397912011073875785087421883567125846212243473897911427543341908874523343639482289472323754758134853404162485608765607468880544347599810516739786273094679116153903149322844535251844730394092992780019065268352096734275392670900676863613795454510423016279455672096168676281194289714671127305945249643453707330404977491475702778323342180523362100368470026782287391647196384497679030355402506251029452669594344208194668295972225103564252802492907915745992656529890365165332827321809714999869916609114703835643107465529109385771750391860868181047517242015993560884644309866829334409921332564663523355016316628264298888344313557248460237082741394113907709898386285311995463408222099341526036799846998835206618334426226930853090937280229343368609257752572761809950053502329717250425164328765504095234696571708733851944123044473797521147212178782909202834479000487382554424644514311450705264507197179853272976585896167469599632769201318238576505666656184128847615079460787328274587763017119469879282870776755216745659271609153846393349447382809629858393651735349403337433140837962773812242569282694089078785101557588747563332274769308093185392625934047306524776487993707400681243615537529585280969225789606882074001601951870557608804306571656640913025682710312998082469509124133871382764585316491152579053825356242518035762960238407565359947086273539376607731265652036277383071040007923967151856262847548357313664012132414435602911488716017179323589252804865797758717801531643816583240709014003803285258763290750644649060053455876180928445820558768907349670396033784156603908349902719173186093993146249159828203545671079961261822043720251714512382830197596651732451275573698573602780512506379729505339071362266001646540649017826161259681833785232063865381146319574935693501324995762889774390196865020115400935068422129962656246279831626385323330181068722873286374923010330322533760235476366954506869692473560697317629293672980358343204240798060610766828254946604193874071341801252185230654059098050474832667491682684624059046603939213665027489876774790249780713833338169922006863393167273230825444524825111929783336494544138164346439680329718713905335090826846503856649796126956955882077657579196530762359130592139061955665534856084141839387406283474603861797930218655960693983442330134282445061435557813733168538415223221115488086549318370340813227828333446198455482007910831069269304304719684855028236124913428128778040470810063697379896173619549008677332184091540793221646384482513706406365988963907817627511769361890798279371126418756301725904476038804209416531278335106248380891403558444400018847463196284852652828878802350508445581834463367517444509297609467405508072994358358521438392243620226164240426561560152911753981184049902899049441403346369228126210064917893945576538503475641990695850484019291824380208410700247643479446726240189690732955649842260588117666538376993267951497356496214663549390469069003476327986709782490978293672751214913186510013624713674007190747678664880742482596148634193985548040565465445295777967191004921059662932128084976796169147367903263402916093879892990553420544256894346582059316078621443104402606725109873811040521128990456862667680716925700013819114854581650095257941605670188407253062226230061054705195191069418108521192635454224658990074239214726189808090463021628887159210912968798609597789393165232568127708308182236955403193353528852991667142341351992085010349865400766066778477581602977109805565337755123929028298356801411550253290428476332073150344071581466154342997352043187384313082899304288670284597424132982706905130129357575705001366722338491461950993059484855917195397983453214969483783609071091820121924108363099658349732361217672333489727446961488487274632796036247394216463580263694520123479350246187001423427614382672854661892045362788155960854330085052204889837480152387972893561220478746229286954444253276048658423834090298503754112988703686804245957594021435612016291825950787103880742615822077588405493624077341661368371801455748000634959750744010841133205607555717908128459733794163415075300655349636956294943519088664540223162774550016333020688320507420156606348278917607338285115555275676895336444115413514636418938071970598070452875979877554628808385181479281686200592977265073727079455398675503415497834150053037640492005656510947658923358709716904722436621570790769907052549499415099107354837936949270674030394056261647114290654839056840117334934616883710133366538468047989542612907095767110095633794694156780113300689789699612885917569525322764687286962621896179465182784618722252714355676168410804737727020009571178451038971653039758131375900312006086378264169960548466691344021316946255744443885496355955044467413660775520355743243512075178384174726096869887100669580959769785744426212440815335706986982448506387090161796143519339428772531471465957083420390314189942564117715657747977830794281309370460876033766747434712219736587762104409240145279848915996452223689251620168202199801377255295690776764222104727702017864142335101643149040578736444776340904979653889119101644202617367150482750119602681979706203256596695147450106408653886118234635795473168592598359481049556581200530942573271033532102366706347236991362380047223434522870757760352706302130149173006159912722006269224060763137020515908557777184910473222258813149938519368069121888962529038092686238580089665000535480172688557397079171270044085049208954890515227525911610178722430046151288996296049451551824917109253634892292790313462800980237359667588081905393408970157365316129785671893384696746112850537367615858449304025060167002470194945237321771160294340638823623238769825369495954963503735342420525515366900478153503951842457213436346447819268385986379572338101878770518844408036740134770397562656556976213993697217605122326441825800825495535955272646908699623023809788199110949394349889863099354906225678781381669880822243544045981336976914529930959708068240951940833184465621878453933951886262756877139492522555720933739205731701095426172425377321315136671576169559366418260020697771878349535482266738074575598087546761998432760927529035508662049528452812050211085425134804542369957490407545273377537385539474190706757785573551916335250541863146477239036233822108414394539923127020165924698859372435950827146866834739173999427002463671704559697183844846219631366817826491049785128336384856003800113952931915259401238268780804425025471866324769746086194012887900202904818226056080901078260219505117264241144657133169187761377964292497950645421009810576466128017173750821309213612687922727563680792564081979631281602897620269742814410951198889616641119254011078254705223276388253489858371604202451873990530415813775340968661810457401467833091409376082905117822619787513847204648052070111845188502127252252544597067291426655379364257799442112342162032425010269735149632755097894896898147692285320650787945113942705928165213998802317272485362960220640329829637181456284328668352599625406370621515969806035065899655908751685350819822086740110537852491940247552880799136285588350548983833228702585470897487070137076429586995520633459928569766047197154863342566238343473891656089518036255388238296379326941783126314818547481991827508379737618108927267947061161154759656673438580170002456118214703134059275469699367800469490613963155048160136247648986065204903539216952143105242536721200907298617291934039704428135408302624208460562032928984993182472466090436092495216503017944459045574407733067782979256486949414619363787208110696908259769831976640176121795490916622053810634904868724135360719916016400384940084951045019286890319975951347282774120450152533001203072542375008296764228582429112538749887128655349612537690953602559471290931966366342261988578784629516838100420092074616654917279811675166224904471437725933940651119022830852235112490259438004653882664432197496498590552245991206445452474907990465747715079807702188531456112873080686958971627150787904309754608702156691939816536415022695769544744439918524473828620091135986047979990789584518885360065793166695857251623169236169618692313439466970013758620548906356116246404728802725274063658212841562785349815799284279519477625978259170535343942467993248375624319758281422480633049958580421803223721990991729461338924557767847685916483674750491658125016950538148530677549216770085455774458694783825280130561500176006935233226390798012756012717493967251339247750435957152123661217633526635303767516809908744731892266092096868699444926000436578222990705685096155799208887738510956431339594723755802734756565577422097148919375895636163218430964834386348797704484114976832498256507693231790340172347926548371470889944750456576318644579579657301050194198389998607315290781514478813643482265309459699429051814163916074065296428198613825503088824023011805394056204722315222722252833266607518453851353927094093657032352962409497432832999283148594711746143593817770710565392858061108932797819907714151061074110302923220534780467242185204781784075784222873105605828205089608916274843180395189233623831325464488975731086868590603908426230947194117254413516012359853319573339800536733035162020178494435782021164833595041693562059594323342298844128175060780489379527316973198364927225481732997880372608035317149769720625226778236945489741983625155890734251719124445281145645059006648788615313147168608039859958143001995598452096943593095244343546422059794211345482329998860405183554326861349907473883327565539013407284377068446604098615872425697641886664594114296215918783380689303143090342716593618207246857794239778567802003690453527867951089200366114331245176806947265507559451284336984734547921162882082696896564233148236362639505767192119263032516937069010744621330375009447619852761989291707483030055281717005285405105022375834594796622935722936340392718255170428035986339336852509746958892553090975168622071132725161262723470280570536469956099966896724456377216356331742219576758681769094156809026101508272744191652242444228491571811522922561066064777170384721493829296806005452030203303782171726992459986613557979499254307528647985738112244607679609040832247019119639958319420909771549591381531221458832564592574605366143987225604134503439520338689051761467185121403162288049230997032189327057700792593030914405372729351261763929421885234861226725022330169179488015161195634325039974962204458590121825230173844869722483015517486222821970546653774494928015929530310863452241969055235437627700894818825891400103420054250423422421478379311907148159361657005339354894743092178316970790892102573111605993010188443057765477123542071286393465160498250435705063913674680533161828097174763374139869921273307162653546287238805068714460745956096756720897812258478122637394259605610163006041218950302278202295030638354327658551583499746429133073438329760840608189153862293315556157630561799941953433066320876864386147643785915014817925302244628001005632650646236205692259720596680656525566819565448813414147150520952650967093544758875838940971187799454418133438771231770493993282694515916261385201507518904072662744248690272960280179003892796295560866747481814703382891250789817120411661656864631525901710662940679603382989011316028430747729332907863066561078426714528070304601896053186523457520260245598842096238343059506390719852606523818472227699145659641758568164064056708336153015582512874553102308615290038530475406764428698563046959960140807968942846339220374523462512465093009304931274945630956561682778249471724914953787997989481620582012642510415193136716928429940342792942695289049425444664991052032186847342352428827316553369241873918842807333445933718761486431214345711918217741941693635982231224885989293503230534503491304590562680136505531876508820716260847091309708366488600364102394221993988793257638157111009717950137344321792614903148793837491741947433771300414498919111335066093064998809551799239090012212502320676491496381811613727343274980437795025095498195340194613339406633428243060418086823004860032117994670440894757002676967505434375567495090591180390336091032586011879386251616942465238814801003600812975027029307807843520279972438614390672273085791907148073726661637133058275178303518426102683245338625187095788014273692335507675165819491671521092579026514322121882252622882651222518726081182687457721672350377954789809239926812689236822010661981238369256327829329480819500959607296930145534257731902605544466855346692972606026358657894485124306156580574458199209463206458156549692314645148588518819379707953158524518346263742906707781165641769590586361971192460131190912594884720762096201860242067356007374611031577185004091195460547877623988095718401578421647110409832761602459380332832226911187954225235764175591979239326631960694855151056078564138385383277442625356695266568575811886236011853699010208835640309975601453067602226896594290555878005645085332007999924260595717684130416906509002073348765535068163393110911153812878167254472095460435849622493508340754938890853259112771952618179532550671688597079897782166641313092373615751871089781754303818910329791338349328667789125822277734806114650638982589625374239872804284732721986655470116025746128406207195974009636270380675566565219916341000059946884185376717479863856535427989028856302554833039482429189887029396182228204187419001859130588925542297934370103739815758487669351429662794973588208271561125401895902111801176257251205575190278440269216790312813502032804052699281547649875023196864245504736302776035554652273749876419938499268698619074975541518295799435712789950753318549135754999372802151925259994329692694010403193099874282347407172335151437173097718362088081239597507853527500074254894669703048775922406100679547964439627869327986141865689000142439393633346180529153754741278921581859712024982554041495969299298027173657330447649950624081333277022581457489103874842693923249085859530860648442195270659852836209568865787202733527838811749863250847805157834919406994450323783903283662371630792273866597713457803272782973909209766562937090479891234577003648760519829134311222181984825581507456904895756957701119511436897148610756645260948833753307876251460575194546776480784109016534442588365290026610924707673799084741805313724837462311121632247701284749105308050140857074453421768391961004437425454949879528087789613450940681183048435185370541123024144286071103166684042521915399904806553010787395911308556575342981996191305022012434415819225836746186317254876479843416495775405662533998059178902542887291910445735688114418628486729502049915671877058483221094679981017939921521992007620092610935662741456577245550506787120008304483829352743433643373918878894437223305825886207717858129978721831411860451473201424415547753014461306901514088543374181177358053957236178599304749363744425424882559911619061995242587960312104011278988394266607943550047797198223848479440699716462187121836089970305226198869327040843429983687259066720580546226469952738384063463772331562518917890954566726118718024620664808375766816256269590758214039930337038265360703271759944144132739813323429478324646999163813698822162430951807064021369730964766806171281617811629071944704722203665521930873936087695971398725738534055229660863269662627659313436518486806963716577808430179959143475531679909090169752359602987915829863910706380128825652055061059607569930684078871170028930320670556626892413357898957740883110336768878946968723719321278312669386685013076627942207372937388816424965561217214533534681443691144469135674478193936643318794537301910120460886936647305596240855631085267970885056183617262751836480953274223053072315973709232343864967952689479603040838476447269284705865359198428727243052611069004821041111613876432759773610224206711701397944372765737405380026134974792351161884028316471587537337513505753645771363949662441530134227018645537633499860555595391063867253537760864997023369806515035002102500860233311325071112001406527929215120131615345848356853672764519985925628615470096171141636585140532243194707979441089422322568231721165606191795359583802880501470925460749282406797043591517176384664422277960697938134923474789091017891727656747729458171994330122411631489755805956610217149309207561526270584557237615612237850634422947994452560528420173417594650340252729231270957166448485924704400180677864777669037610179938393421915179451002565378310194980526760917981004154447790604333051687111076759618289930723334967831831216392637431916171524993746829928773789058127420212104567973428656866847986044753266048169444752403736219222008813517605555048762597265737764875935736387967252300635603640616028148463131347292786436131492268331364858933805425148273388549205007276453519117043106887097625145229788627016232435227187380866224318409077700740186383077732083360711660640445321703649577818691191242727781508298268932352776964905443009968301820894961637005346329687823450617029096169167832968138209633837331705264583183034343298457555705729420496917576809581321299756566609288510160211977809394355634648113971741742048851022277649863752806619297480304943090482473239788626472006748946381870935767089256147111204167721055453526959815100944662533443553009836534708772262726709185482934543102414318311217242657905503898012665914809815991725018962947921784176953484304742374319288947397053563110907234447108851349719321699339229039307758842125510533855916674284132780723197725341957184005577434859814081846345050182474967220834198091472883595344710962392478572686560188536509158259875688183890264981608571219752497148054568140960933257153245201852148927051256897375617509693239426429715676984367684565466362315981210511092051143431641260394826857106540594583100729716394164954682498130567500660512870806540937004695899474833655424434761527714353269984337858707864186181651925551827738842443118588988941101216787718361625656033546048733952886719288638855295784990385364468310812162038420004260199981825825161536443322249939661878419038573823506453585032582512598664984520606096272494253213106266799323630725371645904669484412318197911505908083844902048827312432350111807272866475212744146763943807560788798849577735577323722520235777213741575600627084075758636704809885834261824131082217198772065069998988602091460198920431486431549254053516340785609865757328202238997614544566679474122219520806007447595474804340947617432249032821178732202736673959720628656709047411161082125435122203472149393203054663382753836908616400830853877333252085515563719814516656748737906179558495964548197418134258141381428056674524403235935070729350646499136179835379447556987299286497436685883576551464716705376553850792148239085396950399651122891392073781371703984523918915491389778596973410169963749028679236601732503280552665032187739983893961319155114704697859357815693854872255365585826420307843458027324159945632393230864526174650399220202160077470589064033855794162274870707962299906196394720460695207379399472599123248826546290654842416856292532666421080870476683541254415999970399531740585293768600850550381836798631280964678118651319795146200569477353226223447317825650637532795050105849978913039161907739900363951035059900015717003041487118093672659187467833229799208130722494710593566539992907197342679963985064148695657846009223370970511340020288040529009814518415466919170402160867465140754269537423926146998309656468378838967634895879244568293435273896494222585403918423134840836719082294416809379332986100448298724027614198489718029131022675514783200182802889296937429802553118702384929385453864352478589346859116148725314951154461822268644959499285120314882207134643862259825227794812406590901978216048019716691870678801554014849484665158689234653337566550003120479700359650223626935400543770712666578140845871964441247411054311742981127176843923007265246480475189998825162975755079332275488849577267657586122386620500076424493017844729962979883080928718217076033412473386216670314773964451696663070901428485575707169614981734279370432393257056777240747604467068270205234572222158788637439018786827687121588896265568788614011931141971845176746792198838274765585389498753819129045038189692688935644846232972811673410973642608323966187288227081928031009291253350355354108331506902258480074206331040434630642212973879558355766165729884721825360669431369120705932005627045919864790743458895261448940235327008830859210953365372185512976608612034816923742744558502051284867476415808889626888595728713187886727680259000984150159852226718489634916202301988739125857137059060013573961290341074940974497743478755231988443123838505903330160301475816310350193610919124281701889163823448590392920230407097022247508566456252942309279795322754711585355057092141360463909229920302865860980313259234647363070610282036517015214452854859789391867758644875600920789517871534432022736303174048538227471798646413554648912473498967516405710720418197697370509685107519806022562026926373388143837635008393519861644586032604073003878125642275078835038137915753107961271312341239985040293789657859299919917244323376463932733763891670631998928003489385646443526306619065350730534462520645406244544414440535198086560605013054052763701913930584132938584961544384273860086104961699482532342886330355214583729451386960910006424172036355362890944906101488056876085399463774349240196904402482229204841231175627695463819493199430458190538830710451124604163512794976196055389309726256690211688382024009231838889423047254625996367796651412611407295505000568445368732089416310628041654682403814522325544999892367118418275650245973367948839297564190786708556223052172863808433132677084084618455317256885011104491549755332970252090296401656354657607783600708686134330553740395761792007070446502529870421058511389796700784067611261327166088753005709389591387245874709065031175303985306304738909756501466967014227414917736523027686696855595637936558229416236656375179518528605075860514120537268706983024711861449889544328541846574770030324453622735176984210284547083959789778884527437751042414465366553001201473787598635591784543961049790547146353813357583141079744375826599508490148959023585807787536409323175797484136268397092994787350130455793658171928417620072798714378674937660135835351292739406179973974884340851980069243688487903708394616183190035099372656750874635373920418509840701363726266959735661299477265634582036100849995460895673273694895505500732313521940309806294541836901856821900099164979532045917112184697554613888110025550902706214200066195029453737539942653967125322051622608177296492739618280508446085749189998073016227344658059123143411297106405769684205268287168838675182694359086578746754174593251228858467708835547956548729829946623563691851925144692239674424372720099462860453620643333975678082231443745915346334540867047540686069482165528391161881993168299722829906291538047687210965753182867899333502893751086990486949485873355981303188207940241626640460680514948230911243813310887114979271149769573342891691066342832140393978593666713778211330136609145431717301666905624424663402184710024534645653002389994239425492094551643676265036254994585679067239279923238585406602900870801532971002646948988783128891344421336856878721735758931192026936102535732737823323493529099471384285837257816614188255625469290520544655716298940487450294226522287378478313473066742619353414945831421002505328888903668254559138275054184383622980995555568505060393114190317853679099875512874901044568022590531152706400852683312636183711535649058802546863719409638845738632093552980194750916421685358812639838341235028834630379309815293923196819775459732537570793243152105567547997300371477965168723986158230268128307391879446747916711855343166650117833838628489430577322006915764535821565441081591996439135974470933589793751137185089246280185231119713045390191290491677389496390610510369619284734497159715612956721478149200942005518221442119337593199139217978900475009370526709664019781787696584277718260429986470070697853775771151544059862322881156788969906606092282802912037659422972310720604326326474869737978505823522824165765830372865206648964138712740245854978847849389187782789954543330465242559481072338357334298473275710452746852051474737548002625160387014478133807976272043231144650167205156691724698902310491911166301443188742677458516824816380766868229205060222241396522235643944109344426897725286532680380657282054063360150235849675288321324384329222804723715647633613874984956662435026227204395866319689122282027255000530392296642321904891816971417918865096842025715942927856925307680484606522443411615352862771497161240163341460786059851782711508489317739212514436023758697301388962203460325032678677707059283800209829764727498488871234135488044065939434956232204675135589550328060524829785862829643591966665270894057741242739958985426828011386423006452005303825645393176991528562358903595652246572463811871519322122624424046122924988233966506327156833807096941429946718083226750181592150040655137929087067963888393574345709531366704405079552970687392959909554986614754298453002849614003148765482721357803076706064701549955509767545179205684185452954858227995055035128090576621210933037434372212367461376433924405189972433920599834890271372583108962653812299860962852369470750291385405344152021443399819560328251641715395269811088703285894087227477039037523205970938311423990368747052563391183056836398607313488246367864601570052648739604368400441573576575924767464602521530457165256550071947981656068414748542694798791742481528557367279411543094292492745313256639336649667016919120797777732965353260533397575253662513901028682657683415459512787747896172689842058976413120555439381459900621818019419122511916832838656436108039035784198453452115510805852295826843158421234472710588314931924170668088369660578786674097400709068144453817835870792419643011409651752265182045632894016750730016132726057207445735968321286618734497211757213157643355075745861763390669402219410477566490649043264875596466995446724367018972461450487491353151197478183457722516273153929507683012337087182104046274792254503848262707944613001680607728447424954066254900179915007672938070367216769304339827408869380411016413037236505879200042896612011359881076815086568197070498672265125140533355516256919919116448839348488945534593718669441323234911573972054724474764602491941496748208582898495092078241681493119568827210285489717092817543447600200490199815327677632296755140330366542803371605709495274652126783253406251969693715360266227887082197088614568468541665984535664707526190740841729695309721590517574191997727134818987093492275092413167959590755460888365808832672438138625824953673602569325788496854793540588560073494492488727582325398517716465731124340528516615013141044394004967695018432249254129586246281555600404525874364374818272277706802077507737627219542514829292512223412713650124183005713612897293810456165070793691298587841235169306346804610767576401710140949462667257234819348007798474969189758346286150486387064990262338895809427907393059091120687240890792762331252824330486806601137985624065057609022068155237061703858076011444403453887444250730946818261880709205238359741663703726193211674157514689497912384763313354870400819240736868708406304320415198165262211042091762797115581958348203215925768433825259296898944338981964061743250606151654089071176126164891323452089006468776342688496747840360495476427183484090846599602193712055059170183447830529293031449893493230323482900111408614902454252834303048783750673361352409908364679135724422434019506750797995579997415352686414994374262837494463297932167907103455644100915744149165465806191476379594627020979225076735358401668912365053095676062234485923250091051852376634867114922223268847073081653615515128435636588641695946838661554588506938772202151553211503372665606412418631265085236139937200862152536351436454543130893004432432384358725947526365784615960111233305636137832495917185122621360528331868005725800928503630330415732085591946803917962903692971228792905654131436178566945693387388624780239401131670822067071489159245257625325697057392581489567318435857199329831958336941661359017222825131504079384812693528939216943318006475213275604969393995606829963238316697832764981092868702790091636285861028917797744692902616631108343992958014287425513206878305147248799909930531300476644289708253817801860262377235122052086341919136900702379638416950307579502186651213915456273331756633385474088865270300091774135693597526881035427352328883819353440962903504364421247357451867502603200789322664254722580812480079369414082579992063102031616665319603181457070716333387915021202187653073432027340101921183986522840031263404054708530866320087444475329369936721670371385018337614476546413102310515755768319967414496545260875672080231974288725526672867056227664362089140564251092674740770378256938035724218560159108006909706495895337248962132428802021537306564865595735920877086476269249341397842786293250721041944610990473727471832596521877377804706373910937772681606884146800502869370996214321195245156092558111598553882138552500677511610227074740546801332209401003056775505541431858953498424872035870998546482587687351311089075939332004236811996204442728095616428685534846425913261919638885815352990663177528870988798696215676354649342424870589226821201994855717906161943921067110925523882778788632063264955572569644614267919634290088831490958444235307043438465953973906533345431659482380347067875229941172483818441527020582433046661098164913637691914675219162737898694665872344689156141290191960855008180910523659368677675407276746259064515259052797338244170867742393315759156582564343264871672327094725482372612884346267212844552105925041992628802619616284739209525102886871564375467127248910402627446848116313765767819031490041767102900517408565921351693506850288241480027786656292396604243050642600443454219869956061742276236115709126538683078212565919997109326309946459912667871653901995993682514258442082137909794932523485420454231536166682778565874596278370163316457462887361157851308290862861789067418653405858557796873429961682509027387496061638425675238287549537957956425152933167326650412950154507229280524888416349310330660870981286582391176184853619198180904903421461090305093195830170127522476242729395711622346093881459964642854427916726239831760186754730901775668598867720428734963100519922804959946132783268826714792931920071300719082342698049300813827779133232776777653170965456422529672164852982992509171428061972564824218759958007067498363960078683773385444908780092193194651573502719763652928463050324483680378096778577039861021470353730866845026757901995934875239040171363727112228572228742602964009999325433611136065289534439129615617747224325824757038632644102055024617569464869393494953338919262073845770234962600118033533887361905365480600809971838955533336021976710902068701525907748914000223163474398263683550023059051391440808659752883643694159139775719144271182617621986190199145398330218518614920175213519974376415251080100134691384830090305283131074637576295898300164926639870286801208328914014392620756767729296017541722671599659930597318383822599836066783430364783252115577404210295239445435864831951070013137852857544166282011603214339145183753750454835625911179688343904545122298660344365887330797599664389238334082931251244024715501931736841725630160424240207088591049299195987565715047188817996392601724988979701681062394378066599927320705284302804596146733390385527515963374396993575911732959382974164798337738968000022085389374745265931805048640407075869722400710752305723434061227669772826609136293758308144848583019842330189701286228943972143579303330142703426298237377228332187658832951599413542523397511628945746982046453276361634320889035784516887512118009749020385526199655706685305086703025755139263651720889058179466310260418091005386449642951769923373789578398120363509096347950012983117387828927867424386113389090117045348311800791779762030566319441567398087459555512649886914030258076909277366502706267531716117372740809043656420736852827911207807322123125350375443783990606941810982821292646834934064284296120863710318958289650734988543546016797657545805065413461207230213164201593956608837494251921813656782229987939522205357022964374380017840912856471255761342608915564933755231679951766144879998710477992676324927398898334460105658907878305088039113330382099537129491409161642739495326513163115715086375247270568997858092047236617347153373141064471525728778017527687450867245041912089746366642367634444398507578853291514234324950588630994321838884302397867743825326771109490969665488067514579404348243776024078812220663677976119941782119705805735932784325394774491817504463336686741625095238038726188567556565898504015806696423054957771528911160600749931889307768557867869218987128042553432015615210051870641096318937430701485676288625132706584716107708458616913917113346927473699267569958301697861177485949766767343932223910463004211194070152163139038305770612656929707890189745074407335041253245861884174664104801379802495920307671128102133232996131199444327485869504687933647897492091248340441476660399451423809032543168816021957959029818731885603567697445628374931326143212048554148612093157549501520657634874820646564460253972633640851399935319932323321104168160987425802174200660748243405626203448101359927610291649174401840610455890737357079162671489846632338080738296082438438347120493879369486949293277092979609554194866415173490455749513339654371790394298841150169228449569513901703688188045417142665604365186871332508717662460057616712208473637642168988526035207501605745493476741602917177667037365287346503502177188853551496315757432236812358786034560897334352015365405475693891662722506388840569365494955356612014286421716429066272009671800943541863540684567583655367928826757867771079506719665497024687187061884348571756879256408408925498009470664930035228112146190940398873765066797253656623094833116681919213631820276069049360030682188548390640144858015302437638054340769161908085326166227600022888145199132017504416730635174862722734072557798336002191600813998528647544813696203268218606514552562199658782986183179672978475754266242766195510745952909643700711563210958158253682120154118781110027922410439843929883728989209772323435127544904968075696945715140825465346115577179945890423922873402517794066612084466219121310811642836646525367676888705670566322948375042370089617127176970960687864315566846431070620548990489792501775485826731069907272654263860651759374432928946598901811770195108507587169301019610572534905013519215996332803257168346088965375944757831161536638845574128174015884350742588566087959152712518497228742012998999200222809013668104392501533823977614446597952605033449084130485140463841169249280087195441589373138068991700640974241247759622304972049368933274990906398746379692218350348631688814052415217063881339700055255582568017846263068480033756967190985830119447042769864219737034502827502956025449665460584125748665222263215789593374075062148234767941494753005931262871966064124950872508872990964024405257139984742698717633620972155920862984416063566530522746241832513046665673040450772289849708955358828025112683651101104019187128591114081802527385781872422101172749392368988837098115697958502288229202464217613915976278377782331937553634602810735236663591872824552090071632698425965538510653185948683755418236304584200261929412128280094163215941165276329726594647759806557473201954335679644946502691058025341700749121608891505449742620869644870932560039243149865683683858510698983813042535475646906991681319252036756428078662739031535980515916094456640036257266273578098124724294765393056457803324697480566985057843460807853251052991074619949621914820615656696842718705876740398161671720780522200063421505398497946716005856914310011195120020574886576933260879452619921760495361159729069811376491429715232207268913851694107670882892264568727608424722311619201088960753124260003527916853691820480928860646816490174621897254278892992959478365488220950738600731644689292837075039149943886798971989748478344792565822057252082127571603661303467670514159192767164285402657812455421368857640765629765135254539339858956318903872762746803301973276324407231320638385419092701741915979058750819293935487669438668669261572788925920009496185412569774455277981314110335908778784212695162693823516549828989537704473119641978738570418740742757989266316302122958075358790873181456974731630515559217379236975467624096813272082935554660521156773950762706874698986903266035339082369594211615485014003267985114599214077327892389888898302934467341257040744179239427612145383573810202929425320053569184550867250597794633636319964159276355221121190434718501300985979593966175711464349692859668927844556797544958407779788872499685827973313683987077457645082412920793595814855202689814443807945770093231023641234202585970727094286727827909224424266491290226721396507728507937380463059786371418491558242713425475848173970534291216767653257214586985994723899165949714020375617210011742241378302297252259460310679641069826401607779832269562257283295175432656339670402372813845837052779054331764951037021367738819478467855197485481674386298538392000689822945483071856882188737380865962251988417528827753689728511892515841698513750280171115452769809655643062072175235686550506037923027592491919585904943463128065894865135381265934504860644196642402880503527693345371000137088224226710956978123732106352682133337560692462207883156266920207888426927898966952262160145665456856817286666441586727245776223346741975601645317535051353339250776315664338898710545135854879128842622879950666042050266111761881038529988607576128671814782616996775388827668967052336169648119612144060030356338110712200283021065191477177944985484034579402733583073911207091689858523133913921641691449953936633555168792956099602387413639759676502837698691794604302267389997978976087011563681402088549917721136407975710420108857789368173616663172036541679688662919008630816675400107770110580327099692288947540526923250766218247832013065800359375480595432731358460024967414023984624819104564477429227452368360313035055559330499991984784161675893446475155748664254565757632706707962882199728250649930994732090722095924032935133958015443554435499276852265580184096430571158569979632762880581486528163237769083071228864067258700840045655139256532189788599307242638526161001713118923561494629265980178963609709406841885330302410396375507586228872893748938877253387871315276691692630714631245675531991582596870283945993931538124773990327073572926636595617212715031725297681457767795471841804582759280471835622731739970286720503747556734146881365642759068617688965855162655037659369284757351027956534958697028193107457455075103244517427680462524109801380692197412739454918923852320429860652025574342711999399372988202346273109149124147955925019300482815386644905286284935508822461384555429328480691337055710393492177974222415214006113991241883527181396314025822880764472756442011696238674752964290624145645706564308044732480013829767812196001156881662922185169901019953964138199364749321781826236578785143314258899470129733527323463378321356470939966134710248802001846113952568650125944632046775927324801243210905701357468943141672135973401857114379394760216000672019947210533765667510319794493904147029390246883761858781294659107171023485684713652679632616212365194163470941198532509969354997004688742176556377613551173962926689535560263463164741278905043122114175344684080268952367281598608976487582788137504533301120322753658178233261503354700430692680232767755180316823264619816739078848383158108242465237218936175377659118973946507578074031183292165190998218127797835240232652312298996000084844543268842627757763288762060704747913342840680826130613960915144455987963704287280382958240290957919459607792283694626171117819719707091981601193159210651666388803155680544845454524337076938191823210052888705491002368673000559306258350461912725686141605477095906004650613167322244905834615991838084496164099453641671517962258739052622784872367150338936901067013819029576086901803518973919869929874545487485660932815761132594319966187602782891718041742577369807966836343558018874156495211804009384478735786550912103408745133669318280303151235684196216766242299168873992586993698241489879309594435742135381023484211817916389586577323193099695455487403086525353070685196990968256051121751618466698680241685676499214364028186774511750623542120280490921619990914334718694501576852170852714442467661576453454390328858428105856157970737573179544928514681885851967544267629108390524987186585773404824084498653211180188700709590364580837815433689417618811208035286621907697438100135310103039334764056762724059735283256223592889776077893567380034311189579578107814834480914895379382300210981436335103198182517647608379351282516162780747051255246918801058205986510649864736753209044748111790244770040026319661942602774278774367739873674008564581076290163544900892435291496548726898069137132914312964411807639816124624540782853970491077910796340563236149584388546573647760009418549600977664723473931966766500235384620552848668572070925767410134683447438476599495475052943825799705227218782077777638376031983220740298859684878020559283308305043642480280620284705264944252184647106957881108915621979234388368870738137363094452596615462311488775422577708728798742557428287746306554031603167934630973873781098766336368469914656494337522843243107107223302210603055719823808141215043792675199125043423758690295192433987569375953666345894681649190847464647174847236721318499234785490553706603965113076193288103952340600320113318043746551495576887814325856707582944238770560523403041477487098009998872101407890395508450674005578422958136618631036877441359149654410591551427051655051140513753654267143525559166014178197000026598093803249046950228583767261049955595689833790164684115069992228719457266424059590731483543212156254227387480594030868059033003113604943310664855683917528887284369994535205523875801498999642674517952958237553074087044701290663368797093187219687829048253174861595829049265651556847202147343099104974296955038711744251320220856046310494850535858952920713246338029952241713167557536604690247163128654631594410424804696873522640630604093465932438063703155691941812868503744561568150598591657654364426768968405069232908819532389027206630811574807644946279358643430985150213413841257385469181711728118885252301408001230157902349044163333255164628987915689839267549469642244597929002316205994318365967389261116437795529166673790375898749986276455338481209382877861239040934641669565842974693522315438821025632358999559608414320901877193061933998978961186281142617663784272519532158513561724227252249331192084448869987057066123726594923896144941550808400660265660879768147581721331663457940776580906008771996404183131988618793518271964982950468996701133824941418281243022574587858890661093003244936070739578372697343088672744418287598197305851487134115017057720533687251425366887209535577952003214418248341349310723264340630756811064664456724662818213118916046220973290539389503268186633792213263705386515204114754038662915139176275790065620277575704482567104082921460587183680737970633182290648599872780166359714850808145164588646145689529385175487224629055220352431605466841150888360137132140678845316982016005746177759794073775847882293001244588637984841602179133722460682050982840686171057808212924872050311872385113959751907781547385954538042712027162188599708543955361114287558144866452982959878492453402515517040676567127141625391473727217998646286171347759380660559346421930567836858242918452617032722205836055610240673659819020179432775403757195325239577883840199444050243217146815977318838823170544563998899895188852152345203730757897771781146316744078512014600809586798382699551257873501751194383696352238591485688432602471196601855904013707604172488179596860406297758952471560445999774591301591869317412544883335345071023156378177409373036411055350933820204232795454005319058502103965243695464485919709187871908831898137033130623255640383301803614128938515602185717938792305733091779983035089270796916197306914693647375608852789535716044029090517705872935639747385504865791660763653096186463303070458554869759071199883743567250727688209592911801264475482361894908950279702129528578045203196455418402284424174549311289868505238490713662954026576823122798378978088286430308831539068004863953017752248122632974391284279735145150884047916580325677312357356981323600056909868958239600703003586330236352116494073514423122304252804691231337079050633682595338230310949995654534479983728447408543889965407170546693467290433273827222572533030608504118352484188222378754026928575476889686942350947417698630626521722857736880252217061447954649028931827097412780863740327723091069703133860386850849489039995708915720482976130308502816675797745606973080263810013504620763310888657496054712071992923246377900527796727771485979959812714414838761924878977849117558096941478502881588440983920685443682849964275555436595546861734138413321031787199881733333383584364462887898904857937212762400561213369466343592957873794093300663700664211012418961616264258150980521681274692995331152061505854568050145845705894034740721017336996896464596304017439757817255935273164191486406259564504753132667792200580065482284519838433733814431822647833838397564310746308024461983913405417463072694097370683234545987471703192718675656375649851818160952253024396702955449467110597800078642443419650246890798127942280896963399853033363157481856571751395709582152722123996404391664358539953701174179529820342288051940520103108716527354985590307939661011945745504596001884515638240646501038603057570321004311415688979286205160166000486643099365754400278766645665965406079634451967581313779806263049879422459366265389797085445586544801296991953469743731359946257049262537950839357076321186111946662425757324023817513866256005222830980554147469335390942782456379053859338569181960567686618858449595630177227960089835659890301733025573342066913951444687543094008924990477492402235506404535279728530287645428869297138850410678946658841213573542680033473808885443289834467191121193480012965888277937084086433657862095944443955383038787911099797462018203019142550748083766897069477490520804692861959965208291281966363383225971605835096660174662827042590644069767213414906259156947213666231437874117884217301123021551106325333325989542277488898464557957854293674590729364831628560657284050810217962614035826720991176104231413814872267266856002656948858478109940741979849419437756155553313262862152374494466130345062782621284245802228242933083708252491628508745609949898140586531815216778101162161114636328565360206304983060387966165362159248260485933912858197089323374674659919684089204658175343149969788880221460806504042076273940496749369218190181251936452692414047386481266653473708482554540701031958928752076971040183307884665845629199788489334838236761639556323199748988996350771215322472799557028462342977112596456577087876707521326295789577236498131756587886912951362475186053472019819494924039688931912881128301810358015864600494442938634595571650887891641646261843874798069181056781464966478200664464233822671871954534113502755169828319670623851550594578278173389491919401056326574342803548360701497473005833945814778004180141062128662845038025664718348603992994187134013890547941136051829378635780700705473175119768591668562734146804369961277421018023488595130102526847098052349342461019660870182475203170025051566733041626975288579501947167962818394974284587985152795305671291077139440559367436560037181021126532660198273213984055093682855816827750137823964622706360244782607680074423036699080871108694249339551213667883112234765070175042619816470527358707139058357851217777396874341015843571418147510485753000394469044632534930000320618753316156252621730621209501872225962142150683410320288471504850251054664079061511188366875305340539254766765900482510505001246909000225440546900378323094528961775680366651305980962142509938932356628374285540298174281553342742393602315349514896752851565713740260130225450163647442207768088484684037096004748551523607029735080441488569387264755143264983475277082741616765217621951735618712883652419209191824676863994993058820732074846834115417624376338165646077317435175075890540812909158700694941227311492176760770878786122462068100292272736762581231314863020515218093377395156592602004206273313085981244393967568613006542999628636910207550262153724328801181869642543725002644262717633473098051995476753498215466881745724429234454687036027576629289210643319938325116357210433649375676623729426525347040158795872344223333519184318974966895388907080375879643046725268806138735462279410708513835202425312866683190674609849727314139445287010193739062936598374594323335663255527101785866944822368465082029914402331825289757610474670671315488223125916157048596571830411901498297330668237383794953322065445425259435258043896298947908809648220570967924140208208876307605883884982345170955318537546497642875166407178263354147626338306546617146757665202244824881215463781936502237217177917102451042924405561746553181092907695821109726765983242827757490048023839913712417683098005149081094595789117552400988535915617839943293732532550524891024788306484501532723066782282741498556374642020705548897952095446414393580280061134036549565448818069974611985998339626898002303920732547872819898735352690797590462177992668810972868350926288202054084831171425875919662702421913490077564064814378288827938465838775425154140748271338590444675408700465655284834908193703173756366619042121547888267848422644685714743938717414558883964062543587629700580306485011952875265063569032263877033670852920146860970452718708293816432999959997873699680509953982246928408161744631949589658247623102486414637492084368271052870668987320579526414310168782023042683122670195338341242097476280934369234121630297318608463722948676585076475644035594972989207626735377560942576789311547830283722236817706350747925505927430839851183278066324775320422580295652496995675971736687781755687407269069160725635648691214143423862329125225423584565935965520932141725566315901282584482612426874229118986607316912559792086225182818310414274308467250825279325973223017192465766992963195166139285440105955908463721114841267880250643243010725989484758859214925900488848829972967175972729411980375566814315644007353653947587228965748617905511467894603641823830908882025246943785662353156696434078459207358917716342080572908060508776381270854488658947422827634930427805518507672371056798606659287445413657857207776136787865787291023374843045017309564382095314582715312369270314583237258919766793585486947960514270993133323450939617841216202107169990035941185926452867361641403845193360194584957472873501612811292935973901728423488838239581103505630197660943903938270850205867964792064246548283168284582677481630889059098277828278220555247542412598624362614373021576769783866334331446453561679044493709526409027069953325748512852601077914403601711609358795558889870612426651519745960366750035790062441554806369904143068663484184137585923632744875070934973590004306209142825767708846264085902133559920336508783189995517659431517522173604773066467254090681138713974665873410177652155862601408988888762820678167992998428947675357709789425070473758222965340296193588463050363568850147964942086135373661635038365526383047848117882618961853180712910572955070702942457913873540265828880857525462662964235714347708244987406631337100946107386762365513702603167082953814502725893995887771794822276685946049044178145304912463798814654965881091685145231510134270684193834709390103004710355057568470033817111084640572849510606633453341119999596242267472882540505217953477581750773083270127322846966016833053564929509559623014908428961614671328161198606216540277054806703477553595125040539927649796348121711741134103708720987949224541003177506756744615703230811369650916777883502241032941294155247465888918764779379107269260034099339546440419016988552607942586944159010724091632030378438248216983893257751704571645033355572073768298417219663480174138881910747760761582689464315334193156632632922399972988984316027009610664759797954219219070116500978574284693736158174577146898463913703513327257392537665211319433135341975510299699887886509274643244452833647731402552057855140097010261415937091558923111354668755660415508459258227178116695205989330309557321645885316215966853198835261714669684927409608593817794041620936510976114929026691531244641854460508685964556689041055694830355824748082993381731597928246455657863100849188457984231592665847876008082137736854668568384937169602625631377762787557283121089020332309752192928922165497642424721044115323736443233383798907543467357259796337162558156222719611260761887826153429614251302850461443788879640190425154107111512610854229961566814488399269982617883478585369045580871601740090660119631255417874993735801741873928022690894625845065589205655256431667569294937103739202342844965833693587455621276433539136554961926395997240793644584020311829460930033849303457793007212755490910659528722870848306771721529479029488339365585817889089504326985324093625203153260462231506327872651860985250072932429600131825699642463197309987662424212641695861737684229580045618996024065079196241419787504582596631214385844450600100680466699280772913927598820399551537312271106867272240506804983082758904812028945610153414130433871848170173528818956989910148672691489518128890228296358932108756232106486523283559841637007141922856725316336022709184140108981823115673780536237756490984640877787976684461449850313569907760576064649852905640353482236235218995766216126265969253414858109287640217774600077876653563433648598533598900979260315299305187497280477843192591500132864918492645023773336752880897234709259116434235969653514250170144295954927615636258403233574980552542178838220270957484004450283856883379745556242821200797270193377928672318425746878258145440107652179094192634964381790062535984670358971387490169353054750268327313966738139385917264902663216990813878294323764582380380746908147846277595388589388764592646767997772767146641671605427007814894750822460327836389247661908731103941192842695473253718089063034474366923075560660053782777538186222852601655377802536362964855806346796767113300555004370723097151736106086056704654488610933311248354777708485512612110158985398516501292203549848524552502153906071243333763891969336131336290204884558415453091224558801450565769888029533734692923723745746681172980507651745636484399282674458707945545503791584275857529119260985210105962043463532141962930475682898213333180128422073496494040398720865997546646137672998466002395470336344337615225545402922115787439574205734039411095254561509164285346078448993133458440484147378708396527403975327186120969318050500542733624262310205753121847313976449232805932726897642606144359133136488127702719914492219045586875488808823204893296108638779320408091362334065131535882108321152819841165052652880032657877134855384398558700749091777912380496011847895646657301026636261879320370433104694416905689762332847132454307472509930628552609578026726832002519871622328253416840131712215240170006802933596568873653734365365300221661416598724876577929468295374872046159854211248075001023899156808856245737103254271880083720728731398434793359625953206039910676247350807944474067299661336761332137743011743039660734810170111483929485475538318472736882698317720247988756367194250780404012676564576390252282968847283640665500631236954742581589956222240230326550249043226297422274777591517736084619660310495688441690832988409415254186517414650741773724690448708476417298378829740217219749909760352608143475166580807530753258942509732211641135913091775685217424988013124768024000742549448584288887078487888278898922499372157765291318207081068636519950495766626884136288061326187005260910046531006119571536441349431195883207830325981612400946612462900775572838584948148243748630723269222323976701445708212266782081943762228020452362200363112217237139936590154900489949596247233905332713197891868808280874013339934148265238797955744597785996782554027660319259647834850153473823508571192827640385854659342225406929637977109088550553883683476156102439969174923815125167567977064223365489168285630648096653471942243457210113977677429365629016453864515147284235692749454301155703856253452765657269832888546036265430754407306059025351691618639809527236538111715276023388236514612757758955581098934091727595992344769267021479902518230712234835159178267168988816910579578289536948088476815905208200524232279459668696751493145348657423695781572782821442158125573218569310797426761685169510799653855487740721158932951350699476870492488004332931700530831385231326770418667069449247658310972602682937633915275116527717919653154069850666440158890723455750602995375354811707681570369732761611832349467993409707303847942503577513502182378358418296871843507345015022666772096005815860943361005885613670567770896236366700185234925276764762658489677918815588506160342926698429465283439272327005097882643253834808460512447477958980009860332027503156816691046485575487694815989871473838829318179810251996319289719498821462885538338965833587513786601615259427696820519685245522187362939227305967652149058823528119643892506890171158848846899324053684547842404177746119108745050739565557021089893087591804360180755218060750274917184281346034007066190830808889830581269259232926008068926350785758658609592911278034708452864719072382235016765709042593595133772228044058910667569084357151325925427422376518864913784611702411978592567532430457163055330253199872463503937759987006395243814373292560690773253148465108717369642451323128598889976502031633609415167949495273762804882142913098261363426637577205962986379285899752403579915071052078168447296092288507057027194728418645119628917596396706177236166438181924526424973500018001204670303420719115935605564333420812806904623514258790922262786825977207340744761471271264859935495747433586118873419949786044428849898015222563743039142961764436656571212088257993040077512897077577604742326783075462464178152986516092909163987240555692745965935626554866256414218178498203749420862636079257252388810241682176745126549717939549676358999292775298763654132123178789549685899929519025075609003286679153857420148750092698535693889339087507533211943039018539685443084475808921192285656136439097345392848937674906542878347780354855506272034815667948867623399955384433136127534986323360691973253713375653755006540403671487426674817432313260128349368622969380949501139077218497915625499254980048033313940956384857039142964498994532786056719955817336993192693879860846275037971073169931054587442280728710946743259405120825069964839816041474663088948697243481857698493466705985835107054876513291856245518027348941381261451774722597517133699666039823812418695208427571733736284196517178105276212964895320986788544892194325181965473895666870305518116855697153864364501847663151208600367703481268333735738101580524419785111371930191227734244163856787028648858875849119291476609569321213207895276369864425612014364053717034143942912610679089486602949527505370449487361354395193215184575194415561190404526622320709032217037550731599847863166666983119852847949179962048195560189890701299884089281060139841250546048462540144875811289176285237376761119516514164329056520919342642922608240294213367271943301619128360541240576818500291510455045375873787820796107809173758966625688290559911626515606922710495295314914377143352871131605390741466758891279680744854542218215512047267801703141156408859921806606936178018979918668715907565368786101436444574435484966764429033951278890456017131269497937361241797185955925012238436935729652819535190853153311878442243794433785535406163706743787725244556185993184712751969664151960891156598674420377439831523049416315246020852031089413702346944977732297872267065222017959393800683304357528155198394592403763784271442119544093047082143455339043019329543908328899669029255076220746606185150132539058612921865776837424022651904374155514877068039997753683060097894475395382688054621275263246446442082965582662453670393660183541448848806719395150921511676824957363184332161848618381660892949903950063612696319669946868837265314332234953424396650562227799952120034784611204885560336962425080604963176667307381796681925924510492823064294614859465862806801488081755171564281468947302184672317484588660505503928047761477009675940264332389856205055957610877191183896977351086837117416054907767218883525522996111086649413781919496186320750399612923821458573945182869179353698927267883385480114367507533433849219600257944857831716035431624935287891428666901434055305180793544397278991241712936617604914980019220405563742975627575190041000105501862831015631333255042975453792986408701146161458191634601984904333057180855607986550421707813861450936915092876687991435508989596627114722776064094862695003978204669524348400832590676890200399769236343031983384600193298295908331104561639403863778383464771286506721369140003120581501600076214059495565974401326434105318087559177437234798371955882182788097490739403802350556114407113235323495690386304458320152680691970821185524691041138374279085152238288386134444066937354443496149797607884235012485858605579176463714038291895869399131801259606039311557374180023717866142148648637608294329305677970463391496799270139937513718145493433341285279878888614810745012253188560859879337675180639015398715530025195099387126601389419557495601180509288307452544722901729289203895425919972949103973939303358645183768317103636724947056884556070181460711030004937159369617161305235045414322838813806919273338594022977670830080458463162009750655045370407668825101064945376965096040497991062175602591313049260290054507032399013964719719515087377801515782555133477861006257225867720983041088847141027332433511100412277671339384429925055036080076393136266391889496235956391527947946832384675234827157871636753157549635773338139775660912050883214596040065567742316278993971680452470223432205152285746280017981360978526894388928338924379829399525584713891422190107121021196754143521207837707720127507153970827977210776867932026970405527315710092585600779786207323845822370963916058432973302909187560043197149100087106238497791891712314682531218431313954151791718252217276755186378775084727840449076034130957180785867650535236403775129830365151320204516382513280144999018575816435464920088600819932945551940183845645132970127344154340463756219308957714951293976731918343639937063336861795669021288656719270244268415426397009918960152652939952676971125427614923942748174671809029265528201551283497072244704071086667921495868011745749603136466515984740573643939335937846088510235376080719953368322801818033466349976764756119715985564819919443173982354728223055353463314672227616709907584384684347907888288377183754013477328002265874673162176180120365322604520106844942829108622226672901728932568240128301876168883713138352681756894651101005697331094559835032587035449676263554302845944784629752421246004753096188925512398705328719826714233685117930638027962161265150249970224338972363364912309051661432635197207779210262004615283116596968450401408340521653592737522940666952586141279052952733773335177536935872953138114793072115304391308296546947009456400517531075878528159225025268807911564521042018865463628663788438645640549898684781796809633577236137060074697849835390061579593528723109305490862366396282608893153488613209952075762211983768191929857848982821066851547620212403196875716104602046433038063836260100029161878942142533095085481889631505262917117882774950605932761112905379254684320181157760115698477317065353490531617111790473223799449837353772961034719982316959282993108063216306935198463104252814889530976190471682427850516335272497211234508162594940905247832145482778466426967813436589322814769175453603244329582084163127760580847668653801184748019934629947913730129134712125965231166340096778938481080104795075236563711593914485484495842258605069103678249599052635556151882538793417314325200052814968124654924270112440162494812946190392799165161965398509542660875687512585544718115833122477832421299249537775653092559346629907498785274277099415455344817223639388869386393331217881345971727047202268286127717562112745754495519022092510165716622211877354404017037129035040700627520556500520113672395461164466150420219560263887248795267395251339141037622208273609997969200507043060886235221572334186551692134294460063647099618847068779218919114185234646826262632144251357475411660282375420583714543387928082464574728173908797495629060735695772137676447343400804250106664934261647405798078130164653507968266451556598251677176383816299533048903918142711804603076750729419523252572221603881832163700859396080678328614167269816689541067417119864422987829604420547944001118469707020348434614509981428595219052255993784871766984783758723971161313100059439209110586489363929885778491167717841541455783885461200842174876231542888290342711181367635670846514065534731838743803310660499686031081242761654360358042000332025223771388959443347920239278425130082445112681547855137525132878889684563178992040784030124724252584271851235619775579452565960313614436166125861863848996809473818725580699465537559668037826155791642610168490058604799091014347559887624815200217714827152814701766306216282135006486453983944339769151093799338779397763196013724502639077732294592592743191499888118592918660047761026793344083852552528404373464039617527370336189822416853231438921774648716133381482841335929410712552405044651028794497711399916117742616715357134342837018649673149636057940710894500422169396239119988746226213271933896634723443694273164106761906800233627425086503046256966684276676719599994088552571156860618009088592341122225518542469718938433656785631452666647113457392765461145768265769094427668244890019044726374147894054376306563527529967142412556954625061057869872194617496718824459281554187530851913033255356767203954536285618689731147878173545364254879109621371391859977088208069857906367833988758423965386237213294325477566558118820103979444762983068299301945108044960962974357572865345281276261873051663401335017363420027323844156259021156508341962879155745910176462302831845412029912599467358931908841732390653563655555106356199813400345888028412428079820281619277743107646764421198596878387120280589825798019528076852926054656379702541576073625178647891649492497169224685063185405767468142507204061684013442204654651155615693242158557779981739920755723401151693255382845607909118157568509375512034359531030243220811528415806634926629758473871635736832190332748138155739526119425088014408252362663011457364278290322164976956116029368086733955905046269740717181446279302132826438111608262945436929116721999816708504591168928986553397494271105990103794143490650436578392510195160270927381745932789589108188983528103453003083649274562242901913228877927550674405248200223703883851148843674947802057483803003552675680159787034759930995239588843750640389008135046743763979534249762189256724541050436222155284170406352557925298349161206154812501824689641118181016671281739365770918262923347447011755710006149451957264629174048237938577108850148408114382611655057820826459431328683799814716431433326585242472653094290176192787898655855965904534401830241510986251632603567642580653907144772605967269714021742494161485286429843844172248762207520274096678996178623811656494599453178967916926416122697519343928493072069583564997268547686804884095832626079146360716536209218750118319876860157428489866547651329704246753229943880173271842039826845897308694810978081249773119379030506299672184895375998425055923881769905080141002612558698914077734347336294492307608482603495829655078600646671291798950974080457197867117191015981628625225062123105438894950490097617091654720587735385739494169012100644073031229465681306554547451177640385614800864614744738884782479060328992307769674491814421982350754856353947951395617701077853964691736827099269214121729841187181643267980752034137152140327045353183909181897424311312138245940441261328005399839585736827749695110292527101665261271696252760631033614667751888580358476396251227374397101819224157485866980763945909027926184764176271299415052103877079188749278639505824659491655083400987514396543453301157730667379550163918435953965771078615694988503516964812640835510380926789818451464632487280641656757903375980298724348869573753052179824724591465857931710569641668397436909086918520633727277389730001481768654410799086322349104232583973956617837159882644060465972317626548308324934433082811293533714647692239187732974452990455307444174789473786989749782123178662931218871033387427702540355178292261811003540096947897069802603291182772831404525325530219913865889201381008637851442762304718059660184966335773960985807877827056684620198018011959331479087288854596062979411767911522479143646309701233707208847674126468958374548071796882343367313158310219405736535959328325311668614364405931733635662209629602144398179054737330740890976582286057543208207901268407775285755632908840956514418308251123113588411687392601137159210278411768128957695198640674817774343664124751490003906912630966141231455200447234060688056582863197967427203040231962369767012730711561507869400231747552013385467529922172426647620889779325475408281823030900359920935338971079866375680069365581155928206017584363053808039232945121943255395448381147188421354405363903581859267795650622360344188508742981533880153557434235700014275379320713279756918052978642990113173555802471725083281578442043667582546804525033442337759842549180726973785502642726098029633391842273776051566932393612641553594165583226141766383213491331755368041445542272634961571875383369481341186164545201049054558445980588980221271653623689643674812772827529708513937091738219127821179572758334002237755900461560304578537341630166202618136903220334999601404376037723116734443957016709624478856193801054423623029641003553909846013699621074438992286168146238465496949890467822347329752267744054404796202144621370267889361309966730687245364250656363441599224022168440697845646763461331788077101498521222956112081901613276393073142488971438660142018555419682787476530698808637734930531939533291267660337705249630811714459224726166583292900824397845722887921717411942538529370398612749086792509461000873256915105904008925337680250736229094244539779675067972329389751842570535184629868898374082057964883537525330781402391726361477484496342265394527983012492594312317967753834666921478040076962737759745540666613372778636666300655868639629242418578226814315762999930741218860783260069549489437263368054673977601967600505682043139497533005866379045293379029938695905197127291850259727477033240790845795268320468887689053239981731352159928624048100126158287373725890765003934781794386385241065248993279865658455920448181390064271890224074472105749686774889121066076521481963390849877565210646389374116449694624226031347484213469528521339712928339404556200286532340990734374811519583033954157483399531668230616560624261875768658337481347951110562287441221983246606646290726156980826295949259392373427830297571756112889501294406405212660638101483487783902419233476358107511316594514085079775046096964095962296555395639309605073710192967329273491765396286589731442473422822797777980879015135395975618363229081386138412227800523426038601912479865510182004820070150959811084819669570445899301858849123942333038254451403764325824959539725258978152932759343278968903322784969758762662483793958758088149888007690422360419798858012474487430565583930991873892485173843343271928177889475221462931491094631699502556861497609207912010418929563423322887347899939355345327031059920362003308152867722751178144089290863446764854109205974330780869086476529235939895378650270227847127378275120783469989731597809253177270433253942499938949182397560307509358166659201570156136230762722894124944712565857610142628396439016200925358894956470732969986318407825347812931726704068710091907221255024517864085253068807805723085403265224934346026551272083051634089316070353913998997387633042152506395035953219584167281133873846941434555748846618747678254778233251774980583323598893293699775237207500468699197895435061858833826811628778371488291691159327453139153604512110127933535962449043298648185448336261603297575702520954903591181210117581149166881635002911413539624025864425414979054592874487472098557534537631805932850160788987592678572465820812502764270960098174747396921438683876922857561381555142934442204872248649450420040848417282522163290092924933208350552610798156333091858207299984286199595245397737811941579157352495558541762614576348717279843630729792716489829878523332888686399198045877957856877689245117523378929692998701191315572732586055960602363264999844190427704775382184682053450290992286971173873428314515314159263443873163846858828256040166074943563407172034975963751457396810115921403545552766363796388547248904330495081143230290809739230075132028891430619472237201373016959659113949898941017857462910410469247764623491774036139550826193924505374411935699532820608102362353859194714629324791263154456105756694018071869300783730906634819051029404818232910596921267836745609701952449160304720592670023562776195329320361050510579932525276009166862823550550308202067393020518846280802778038907063561995700630876150514209353757237214552991143644661102491949139548200979160726382132816041372629735212718465649709977714777156692313303496373272260258928763716678386931419861979810663156973393549321212521527920386034671479452543250185389751597220670539616715039628691662965860198706201083266538727314018037247253493608740588699838097619223679943186689262667992158064337994220873439176856227965806066101082266917071505045261884075983356238954112043365634821193851697627346028409428914887308182307390581421205573942557365944086948716240191564478806076600486444588344302896645689583712422044314694396192767558312114100173468178110332669359641761035725669527168444386350830417262413700199555376837306586043985278064283315823082975264582473993897395026246149866778792624239830667554136290089952407782070879769704499735790097259092682940789829265517177006764952964211882502370155422531276951085640873863396404650359992354890253229438279942584756013888356011293866937408137738962176460505735587036447103983876416265649024823054930133770483542935363159447030361839524927258660000375749153702171639308634550791827915553570451526901157846676313268099394661126559946168747999119893337484312059244746443650810306232294799159042037000657344845919749557312560653386724941309989149297868781568295428043370660455738802363162679285966263084095085652445561377909671517993105269555570659133643113807292535554085524742578514936224839176547507085519631142174267535021125001315542316470026561687315639884630287389917259800843606895850208199014703582271192695196129909976852980499028367071740006369192617322696082166743430540231049842109305528526233899310480018560725903300320141769212188176933879727704023126031140104381120352012161498883900511613393504660163052790121274272219667731255829569518826414658728011174621354650894305792348764639703124497192219428990251166491683509188229185872172543106271673970091595579176166924179133327080870023186066853866935108339451105873991656632332476158298262922934593024005783407901610937688054651279849635160209689530379875511441692818332412016152509285262703169220143342072984255062524226516026632632149141390123669664491695583737113762417559871557212871683440587524029813269944310064460803918763133640806159260004576895956157169709543858619083613237703997974687479922802988205883887423037713514373629345450587449048851793836437112969791763415016563679672917432489503429782801086566003271398325962949238296849896450029864434132406709887305544578456221719288997790748415009967223008961908170994927459380748086420617828696589735116963971635719972082174157248588019022656214707778984223668276149246810283805522611200319453175413068678702107018566775180553312222814289763875015560422205468876432915714205951818248608385594928333651835262003790742066550762241135934190163316605068237652412916115821445868580133199501420493963451588538149789450400173573763414233708794062326228303509945591574218479265652816398492028242440786150749460016194159301384486300911708775029183040914969934645163121745080493222182041785957293332861556820568326938001848454291943782083015852846149640677556248809472670152460462779358012699382942009090800823303902450862708913626750852551141514943041872885862834635831106460548921161878208279317350109286998711954030883859956038726521644265567026469868995517795018164157711832449951802679786440184093534500262649556774139059439949483649083970269496571405093712604606018726329197619819509135230241934030263286332819816891661261521093992861135648211215796553413140338159435392545404581645349566400284827727645306028888523884324908821004520147597609964605455198196396662717900417145115811975237311074648967804680210922256755684150888399948566384240414964706805888389316435629296763001605509922600931105285157691873154539843247754537368255405899857214864947717233567360879456274844975699582022015033727863496134534938567141449800090548519350252392577319367813638646973127411894651856005779304152829760852221536513830617686343701258764315184871649000080893881152894914596940943664031373168963672385228637593111236679738727720998763463780302037669846699370675215841724369048946610763467777465733305638357039564886913978677025281522675284329815778565788538928605130644134337615230928801488287825688506627822822337481763285050907746519625194044201621922618621696933661912439692740910238146574833845097013032645545451585520996679228434888669413785670849437719739426803982313329697665487877863323405136815764527101395829079771954430916856458107000238978428707956224703615893798955590527916011385814255965461567865270716744224176218290419049393323279713657822325607952078959535850949019011193358045877496303760186206986049211413877154493199033482153027244391201532300210567260281428658830019815888585582350449643864239159496098811005964601692200467285702828955734372135406179813542402724476932701897502130845598660138578680959357533081182632213294749992008262091745400770508464956070175995563081366884408233391648061491099414887095503028078824285023007204924485912787151278908264750453126675170787135830421545071586714493259414899586816212560108383470580748812002551258188406850848928284583838463385281428080070223388767827940614728915264995960622060463323975160893834610825377465812681474030073648720327250464247528748994420296201945289086996588102227570312390117380214794868792633815792148191397124841247787198512858232945702591813367240297353861423363922012705526407550390933527753731370437797573626091267545975281327455790090765538034330947927244329764934565525074179150524379290192147481238339065411699786722794209391357544532695813445400185142247678826284964552474865763545596304523313356620956266373253714228819868532147500232769170536677479597004381530262106603929368086334389358519333586398721445108447425836272685626024109180581495942225222195050720384288132562213528285203085582641164406426676835266536705948918355495402876269007835421609702348404479020444029222216246305538395604855936699312088941850820757540381943338215486355451013572871290424743854828759069135212950267337021896552617403888118791955832475836587622780911554864830985353237639482493168950968058641980648271585853706872378427070490833938095743805140227187835957660036174548888918925245132694302787314159260196006887004178630859839130309655938445942739906862371946088496962342232781979653230246046546500919780319483132097628670234155192067012034460446953132422474793530739394802200846637160745845554286614762957149629704658573099960516760540326642652524110747868796729703760147168102755531338104782998175838802782857579883137115797821839395117551147975777928473124600239045657806896507885171457727844750446517228731595600295470246476888889496868483240971111144094002468357039120698497500433499461814337905137434229386783633693562006438592221800568681991412853583454317637387228159545918560330275500673553357075822947933851130443083979796735740112752029607558060897809007760009247663644891567691557885325839457187757780419283181533984830557443403126428553439118711881055554497715506554940525982135034715027534312899051555628902926335307484643803968212295854112791358714558693077681704175909373059877474757419692457155485614232060510836398271268993344246299238122461582556485281868451503501158437643794012729913123140442816307644407501179829613237810543629257747147807316682431867532906495844149496940520961754252202094823506910187930267235582928568533002212607396144569097755185695490086637034009493697886657639918393103934291368829541829998682816757400541595430606440830505882304256277594319222213131647631099590594043623681757298028023841110134410109032171483314517649194290313537970819074567459224496062507815664448661381484429153119511662059014337804997733831251952942403745585291407488329920218954393885895028075923156630589854997982257754551289778304524228959061624167074594095345440787263349676766396712835231953301704401097563441107263006575453399598921233397350818782803641227784229617935643288177026214231864282963415262660240536858302249850344039213120889093756168187638568470995807015231832099256791591156688713075219695512256809227730846346993801511707809923764206993043484809333769380638155493019706940754682187919571243218531637131056524250274249719513921981466309585628566554876723760712444286485588937872797016492268134515854638636801244963506490380289345218804451056622889285703311184465668900389731636702705842162171366431779349182609134678543385887833790849092665099287548322210981715080579633126401749429242577142199678702918291160729565590157592617440848020111676023097618913015930607148597937817949731416272958076765569818482746673450551028820718300656272131854798163799515729535797614698941857787800290245208646042949568430150677642990830665135673351675008622779637680962459415811839511603634733768096307855284398139340842068443601074700040434903385145730315320319654895874408683402716832820234320190513034379643386581691623317749877863691579271160177391459457158934779440957739118133107782308488690570033146612217070912235783967047524047697207394369581814013481723697499196447017897078959347588706440861071205416392011816283616790399290932632339611428374924536637719219269466363768924690000952570588205033916928905190145390542463113939924984248760214927316625353494223000856152578340818455760207052761691059547511545163183400671257702025520607738359386275007811683710069230020354980864578675958457223913111843631115278536687656816515011797155824112700002273016831878734601985297931279296648558710902905659835550247062528022697443510520744635674254368548782277535437998994148163269429138342492616437325465990171817358646265619644394991229512998987158300952372650255585791501828115196103969560513868639161036355861293231676300493936809877081968899974712523350123069217021119254569648259745177329357806052759639298531589288837984873473323277263244567353278625458219813584850371583749209854657995519076401114229596196581194925563861256338363420378300300390460049012392597584757029132770620700884413091663047040557181421091445987367961272035943485211634828082147582836890912051599438130879164543829675516296647646641720112629298675035792627753496039878908109012449995581411299439605070454866930663476618733921135735128640499933748084413218586411119036875485269244635602659476132175397648811109433593306304863045553894836503572416918963733540231857983008250854186033543466724650790034582932951859325923721849549108079857895359480809393664448521610668713724806180865889910177576847611031423801976151617366027637314247215771576393044874478774621616090835992130106526083086045592440779328409966142495721120492163149760700576708697892024258662692327847505808678695758193703162988814496290739166012680285742719924903484361778520720861285833120346551345315471494270695597690273396031547226893856875022349804172855350685369745261423110369674886591396221756079103585411850706295403256351974338485960473550651810375827357643195401894657386735271908438938002408590714245584041271795364570033378457590226065605383745829234785336496436506892082968157786734617244932906299933099933888822468765272944108609882728550261251607734070119780603144876835445309647652949033829756295276572131255027255859908095159957706769985024507249752850801282757501959522879530006377110614225295819298782969798026708859487968430335752563739341276034699443607402007084864917734745104499524273312669878047561478839436990639218459151744177060171855012949495552075592970626976199385400304308717240449772218104299564343361824347744722029591927625770873741614318508759419351290442263473985719213102506607061067840146959916989555056957107705397953918057802868415623442880542226073223365945392936008363387766618823753798910197842452059117197852075763232645658261833119793588300650426947654822137219369444233663286197923253330775881683895504905356491742692176465610020802565567327970280907106943202845148720054337018879315569634746870883047765636386140788252146844280267879812780323090592257130473762768434932592072474839368352663673514873946957201595684055341729849262823009027722909015324518115258035012253237597632837542767471276895205956941644755144542754308433989837966098780303439588576871334875084657825145464110664144843836005152842975034991764096126587631112641300085210594536404803396080453458497043742276871847839032694547068111507459734177344652186142382272089645103125324045286350977482219620764252481936880312298513751739182141459959078023751000585333423984911449754356287682961469713045963072253811901814752218777988174519729254786405318449681208169185648896843501080281493910018075472801269965868312858519382760415607297805304301502680169851492583133407787306194301654017227523472365481151634890899212643375757173720392298021949098545670777425896446575116672053189105747172661307662827629264639531318863340711385781883803840984056269765716973770777298374569040608814201837703369899312629564220534305545078551055051873828852906823665229887571168399922984796119977087750724461092594209725500350424629510450011409111441402383867931731402128012280966286155396768807257837385044248877670216106079590156462107557361398631915713045153241387526128670758090406552995473120709307054652928866854424914415249309210315644847226737212073649655523463197184678286572164424631948869948328305902486629248007440498015394478382525212610708874417108791338067461521115558843107307954532045033307845378077328648744119051117793526850497748126300459282073872568619875993460428185551628650927141729699268007230595262160307793278544285780550406101269771167101608454275383363537002590845871662499607550446518391422702795107005798779577489468234758005426488368884346282087241282831946389982684616518873195361037440576672191395220554226132002323508574605436453129073154683410025370246150783057749760589833593895131882407387006172600041459282733471962721475122878154455482337385322313028284259521843134924306815173707607993525526126597594165234422534658254795949825140821467266290589897488075899500701401921820894411204902094999737939377422336213394056022397471939582672556932300973834909164471463822175604445562375640947278279070347265360233390229943050523960221367706914291631292007312137537048473760886858278873191080692843197603523229943721934135599653681669809174563214575260663828603100443157698133345170385994949252432101705834704208302351581608130711293757325069516341442347203441173635077029877895898115992547551474735859559344715618087116673929689402799298101402351197106133047316745162752518051935047765164825570548634955786360681354912439313756500114690950631425741258975538326695332854142708293315507183745821642309688341399631869804789502640250743980380317788544850541267044455201286034527431566844831031104394616738066241472015700111147141148910563441638857359527727238781110109429005883903140814416106266303574396918345532857523316467933958426013045088232848658324491145588800212243562007606643566610244113995899100249024484118600448870745525101661025627618783236423024986552934458168703355393509193964601823006484920391685853085119041964560713399172473926153242639930964351172973331344795085699025781600095988942440926266112453642568951529514779440987987306937165721214807134950212044696527254836646571505833150710305700530227730821700082915362784640337519712367375804852003559002416678658832215718658140178629688368341062468546609164592330044526407714200109552899641434450797714633225640682360145948801429761297041220691192392786423052919555120025079516649290177793177757650444320629011808567684419913387121299828805963404819442815592513259445147027532351838817687682634868262322727058638636090252574580984855784043613695448403094791484031118167852855832295738392260453218401019094779438731508673479658317584252732158119140603050441527888503319972442746574778420454687387724894416240455470364682703093788147189652158043707143563468391518143559148108532108140821584208093660082605081480852935654664113801350175753007354566124770995826560710353798542620262096833080898166791740789620400541235532668734308920469031047170098805360067290923468657709292787350699545094126914297894016670200640448726216201142252952329357032479956107327341293484482649648012304347735792810943251937051376889386682296057771387786513980123125940900981050183206365241597273911792216956650634117561354375286943913450177425185251993981293940671610973972262830954269353003760314373240389715890170768854837302492950194678536462961228161599473747204021471968358291534951126272946601329069933098084712086407668362342605536351845947867885431123099002367555078511640446657891475065204592185597237980716927001691650266998045855991628616630090124274718312502524921970279000465609066293297546833778181441718769479848975342505878953634374272659436865261161408242246915552309210062052436320814170724532426432801771665719123907371101745911036298840678994942266981503630816946113989874546428254059743539486198273035196267756768835497950157811601659186366500083397360319284155519372039185492569870304913863689424629719480890172849816268768195073722444389983437806627637739429326885310942200957068622969506275576881474345726575397120339406594387581423693489524507597492009089295384487358834505345658149485630790715655669383826300209858846721321455578405908264816199809031138964751101749734105124511391160631930471435440204853669547994977354170641471149159731490709904988145043190500917395298957654490854255761350601702394607726928220472404561961824165830900090678809203279580405373535810239078640055958015152019050662611722985559512513258229436530485595866237352246523744036120319402025163491126560206957621064220514488311892165651131560374970615700112001111625729833110104002185953621519590239456005399099378777677448969969419215457128260468547469021278128389346214210499399761912760123062728548859875794779615849679781731535708415453013109143803188544363515357705145362693053583044475621825259183475632057205806726801986465133976298088599595222149005926812018512435171634429529144059172546173813461398912907341277742619493886138887711297510863228969316129757984118367500478080637424040201413617475699355529749898163113844180308859735967673007885502653770912206766124700809046482919670741768745346737241284391646444650427342155686533527824714399249925809588022908556281094060849545981546455608391672175232655476266792955374806632806710955464927369814704901812514686387074523801308036036070708090232121257474102527869610335013176100250218660840390835820901918675675719913918890219383938664368646472845475249445059770372677895868572527783925880824152405045522754001005820876576635737716925558921781191485956630950822739954434264906973409521887218100809055927158718416771356298902995827484314277692396145282696487397458651131081870424842778248470848575342785464211695431450848671920220065760656368127090075134466903098253524901829282667780234639890451440748917048031878889624659871318554310471839004391503949454542964241874178480758622572162967293783804959810979797458378217138880700441022365872797273297131286322103809572831334181047643842788556878580984268586818059601713600119871224846151551805695675205116732055833098250212319000635500684237709060223973029959703515996992952958743122495934166565601240706695887189514292845833871379941646894796771873250916731243463148974063487642473774855304053602367115646461455598652528630681471099102313214854091889064748430866987528029683175149148437901096047515874297811257252148085304443164048280611742674221210233388621686719459322045335329900125949193078575226187234589383535115085379147072926719553698836605291505077547803010932664622299781652498075603616839298752977726088904905480425620909037665371541415504025430356262229324559190397724892433262509160666043441059280872198517681626012049151643297002546591227690935256898259252413249951870168835675025958922784774534096141305538207525670050752906925558129048610961601115986106634014567383452406266073170068500214763569848719005954295131546463693502907817014182386826727322181264651818021495955476304213020015452932985320512803941765411107936364918560796986368156467074225068128259268014229654851975224728755164744213585418589040752427836538466886105494551639221694464669871634929666329489630009819678516861925995320244762507182586897732057551856762244246079048489483472579637670205971150975294296091181530478070510126941900375425515550267371783928918907674694563224094969459122750665745442411873801156909247095055678071506102753025449629324173656723676615634057053407550554909235845503470520173923167060184150882511737413993024986450188813795325333810017518958572244050145248144393062762466913269101027492183502993866046528831776991263870879900085823718048998971558392436934829041881064248744782824995811302674894938863772458970094268375098711657007765282241109649019133626966796457560056390594974281057629311867643342532939302083616159211215094687912645041702134650508350063920983685508534657740115365403715711009214030957991168217642556474353452015002735800739490654188628547073085915779122190718762898171053531577937956225280142372421143181766108138142294288079081497804390172105359659823018170494722422184770080927568678401839364549891704840392713410489953068315543784791195153686201811124239059952256556949483948401485080419511126626195633305433839710830569387678340671819691344346844908023424297909197873193217498957899414064077014106729365419990260196891777581874936948198908902353504123583821688236547932977827494109712405993670223514632433578787695987922452625290729901542452729323559881674071615785593868439709958565394410140744714267840334647388615709707824401130707418051637128907921219752497477387644303996380914652146917218965278658118042680247959621726460507633693453580928575671991962213721228123607955831954278418020344237454795179490505759858851394171824118053222804972703697738277635571097159279050941050163964106544464036801661711586183914948013879528361006624921509858568291396757892564606840519251169062419800960152570634811192266968511414529025850600611039535035032680548062994829572236842366712086025960067998220821608983218200590721924165325789508334113922236270743799349528030689635618139508921928527647552561043554380944094296833706440819746485298090193510916274321922965502660220236561063131951091918329959281953704095843470397603308853090037107134820521099913126393353986744199506746110173356166020786218440229988277046793528346316047180909723748298657861681502208557218099952713276405043109230440306349721854758500733925374712754733374029723312377407926428516987434858234467454734592722892357034245319611896282583494824780702968969421298853984320009173128189039527836681597423485208676211169334749143747112774565448276442881677439253100558617525499913965907804341483449527645496131673032314639860313992977698709948138325870501576325051191662195635869895240732057996366763395408868178471879754905580864268389835843095793917302446212995951600094473249096785625649779115997715772472348472037277498154960121198232107838845586210738439494580995724183723663871403113531408860923370925317223963130443759511107088628217798226826316558128025720936165518566051110333210704500097102034541766207123082773723325604861600057109477880535313616358840759883661052538550631098650066000069958795629456164041655682311478709195758058720326266393252909071135415631465787843644928401315157345032299535371300365390583284000102362140342158250866476713867794023905851108360592828938946038100041560586512642044310280133481366018894167100570192217941428909083918398085435054644664325923991947840512567539619541591558020205679199603038714347127496203163883032657234892489878899824103336100722464242382043546370648046672244775294880046174298123538367250638635671028494300384355926700486425144058319095350314333839201500494198183460877739273035010879508349210105915787756800002272565956190117514180598259118890823745340329147750853562499996648134094544454217081888676664485388294261987041637132523242036416620374470369624633486394452086647001712909704440367515749149644850931108273741861974970486868043673931295482982602651440743421477040420944004123947985626011143521373209945705929321896547664939840610760873709971667540678687946524685314086247068008490548178617222712147131991015764490685299781596591492315716242069834495168004753067608232462353502091524838863949590233298196522282963967278409233216661083217760196575611830910650555289724199083716261669354659373362894314378519921009149877462344751940346791725758671377212905094052452634293435743068807902489874735424964340374589241075971734812729175680683190712710321930643553277489049630795002964514907781002155720456397710526754792331416748876119884920967428077629836911231243953198749032104950765485037011366339238903058725305588836167594125345736508465321897224206725628749792288791319221315439169413213035550203348791961484734557142526709419617778535623071800736296048370128889537234153214596732705699341323213262517977699520960576726107560893538987944120279104332347634163330467306484811045421710244533134097395138621310188244539495224021835629709361798290141319558213535048174892947408147194058011388432215341714966742438407504093830969556461577210570432711600780493881652367514302278772558818864642745559058222422635994486417065209888327437947117427399518881296396150347937867828532753594461682271189526808234122116391902248298441118880058444122282051423237335956220698918483222947740598341967357184300837016841155822825332282714341622766524439424994187983112856482035962038558994387779770330478184516144012574887613377754216362338750758575018108682196649881097134775873815553932457654432995455114422462205816827541327129511837669135540589536496292737554242315610150907847405221773595320726376667362875038695698712848125175376879497043367941396446306082783555867808041135141887534081721628232640279734944090155993970322126735862241031695863260808053479924655919602733597873471421148554826752989078303943389947533347673294665520640471941062833766584538174686830362348348713395742530747725198763652079430084367517099566766511633477985922155000817544820540994768383931107773366742971863684018913351097880022111413938402499812071421544530943404723003407464468229239152377811320049599043938254204352353311261307219260701768723607931176212821959333316053942890031138106996212896150677935428692724577735325865704561065717843827447489722700443371555675230465164314662021567653436331804835008453188290784972951232073970535622246390542474301310192589565958052676446510334924841470572001197647911703389978187068526138531323843307265107605574760339455452942793125329802468261469314822759369658463195737351380457312382320517738663153432870698345624536971665842773378545889521285814359141989554891908009285251288305216308621984156992958891479087775309145469460422119886477231675690723088431644227034129158700306971767197998345627711952596140521773628308309915369940702904698088786687959173016089790979328707631481874225038154528654995699541528849730762043166352192617824816718591389478453251033145696682242315127097075199083934359343475180923835808098947175777536376867688438662557472627958075903224608945698637842964247042598102604083763611133638857714808732754475275411124493303567308813939593582024284371054838981754219378199187585999065052421722096210492593576061702608767361075007866665217953873916616393215512766292554313258131271261031306443795514526695955113834764712181699359616531316575346541188044420055646827793519661237623774793709185542015031564028178650528715335360607598196142707094670183138842409765545419516914412945657099629425396258268662615787013191107148834387300890650558971254919360282848910061162785851673811626747828798503332992669778004224505768023861678069278018630678959358224667834559926869058619073045558881259269114079538780548693298919810002026156044198756811484381113345800042645596822376799162725373171578917803029144109472434618181186031790157289204459088508571170890826928653150656302856489567028688994687088287533251671160191873239978921918368911653859715810479720311935171423784566286208541101176753024650310149857809302464045978300113097729317701354710441030640005576425687898916575019031577755501230182105145565862136407006746141177151857797664900336125614078718352441727036456595731349708728750230371033798808801182705616733823387752213401219111514264673611204655453372931195471399392231088650321361988206919308804510867966948018387144055113236719617059197476075396729153220011353854359063966748735911174084860950620943218007951283050203581128441254336568536748973650012496829943301796111513084047161444673096805231993546128819703888164129719228723710052667125005887706550501283428771172864024115424667664689503291442854148112416332457467653007464162775506443151735024139690971438540451137651978125882902344326309595791000584991712952479076219901603206702181023451985970823767984169371880908524930952969094633483447477525868558406366839793118546651202677391888161211476432074397871481538705883176805572174108353984122799590830538986013448519196556631351661352577415736109923430215437278811572862894701599959694114729514164072954464168235868124328743871954345447360975832228037842866210813996969398938170874499354613764364016447524019455762910931195016326488331429012597399163920819205722132195272417509050534140907587823987264119653929542073258905393684553050346332746804936378644479789190697376229934103857797556245249642050053482427827774569626932358727280984286947960269207592930355481525499539432565509371777798013956704424820410475362052101611321013642174201032448172944213668311262765230512995889021523733435747688816434877756285983099773890948921652801684550366379231902730011126008437212151367085087483717932555617738947958248329752308775465952489204476286217716403288270574937738403688094281315460825371224726187768913225864897779585333362257548553064331519182163766018864189153152002728287012590821083308182514383586130203251930504728977814537282634750910073730879780308968051659018679973576479317352889801146453492398105063798374328654095629365110204441688779005544640156549564669919663124673753905718130059246049048386002109681649411186052302177165366366723840781778851370320256372895198618150865557153761112250351888460873868351573155250437804038412660412956008133697614922698679133717000006112506836865113547576088099876730191999520052521646724314834272703259964234779343990062207762053485358858358959215259279198768900784031598547454161443855239463418655040565661611819495525204659983740147142878341807287207623920227263886007032925996219191719846736816483758910540249735975407356300390951522218059480155591193945853863824971902077126262548689526689967833789007513572376864209555144332513022071999728623263338845703164465485148374171821682841814819870918624385828693891251654622521474738709240541668828796633216532855516229698035995096409579105052111832206638815261494287752033756172534997991399711431278533718793358631298296936307168831538780706933210077614889279054955801773792336808364141257858739231526852511414714291933747999890651802297434367789526933588487495017270964922566628643739030886124980893816098526853773099252668325664378219606991334997704069081927867891019608934457708863215425850560164409623680847194881471357709979427924421308790227453577138914492407518218383631929806490264540011582209667572609757164921905718536957272363080875496425718898374707821057822510995833701078011210409206924559746312218166275588601767774474327556385992779892022764338418410943442085211944776510938030549753199301233566437376947388853262376141629084797039524312614097516683821914526616334076878370273046005310684832767517156161584012603590579490093103247149047626079981870845300633186018939017317310071323894925770565129742915209191529545270954231024835872244126749941476697765422046856203933502020878647649748307412158051553734209964261652925844119992496796336166254657262190210459723227116429746745028774154605130297928827245626988850552761481532885972873711867297962493974148619102835535994246616683022560692075412593336534233783455790568584744749487966650709591432690333846209177906662734029636730068004873856086686497337804885537780095502495376592794146854425496550085595991372921811732278626814036330401702245778895371312509207298891937918633221251368297185221952935724699548730486526801174400439069957749593566434659850839953555187062383872751221124866970064598505338588095407840844667159534200913886503916842264444605567795566646486550932432504258181914407182581739574692608853844082675248623164439961569937136775620482107388090904570056425106781684680711891940394092122088343120165372973883946955234844162391656194423884940721981942009605831689194472924178236508088484297389650709673451157333585801018139652877919139961586839159390503825278694333072369796392367866791857531856674534640134712240791168160840490627368182123627321836570159192403127079028301746199934030676459597222607097416121219706878531118484310625632224850449020601233016810802310373882723412465129881368529793775808487015891815567802517136529096548713764874778230919070071670952721682446341864709521359239424866130835900487831588547330502988329443193495322532514972752379951336197806343582983817133134431693195009459318041550044668035905353225655927556990226263946494042234650538525177925252831296481649025986049582507862689449833398246218275373710118902616967444616489545203042959545586047990996586695843848295448593280177699392942819680526150553460374570671247572808074847561675060652469629889855079606343855527104195508348260447585623080695442009458311539619691308494002990656936416185490551059529900420930966041389141996438867565896586144912482907495579498623738033773222387265146517802348412164231517634796259129454087078736482155172052201386663063225889737064784881366294101516874198032442651935912547996213869338806745442367532017011009656872871331051714293139332940158304037660621838990808448076814750048960694029730890376744323493234522805307844894836501999669650288337293641347313379618407924370708929439535196761273290763387113393572381064038924307195555844515193863612767722763151128210815801845936179134212190407972995866148716975908778658842748528513543723142247539017626219226570359203753446660251794273946615142977053457463397259398002604794725950803104848986201099848223200984230063149063480250411814628983276991542291962210156607954195593862044549738448188731217324278748303366264124890079665667440056124751128606786290121283040442222460002693292854454654456891846045680428709270561364758414828809579652958092950825509688911766738037455015749791250156445794886785311351388647993232221148648521223976121108491805954242007670759842362056977888261898914200957653583688421202780748307321324441690288039198356570655876866551959146496190373591187546638858878032150168726861894089040667756432169689998198483618850510023352240275258979961278930079143996663076552092031861394685919115952825349478732400100099462493911329297315747100751392122664204488989509160377180184146889176087857390637292741480846880039570081394328253508777243705736202729908329968655311420854538481755037151226336866552895997667902120516734007984360190600483529776755933821431161989937733388761430747991077008761457351737757822455598707358943713744707609099703158561877704294484719814184704609010506618595475315673940244731132981209769440619712072035995816691288762916442442622107410255016042965838676031295003249531052308224196448329315526991468360495309092208308167357150373068207644159215975992186681707733729485455827123661972111053607617902455288590306741041785782894181695784979200644332694154023793755016066394290967529716588091054836110411988904801214880572970233797468213422546931470904522753607076450635482332040702280748662317761245943541979961026017023049156620019716462983681567274480032346708338506078264268882867962275037588660297289215689891223103413185149952044628279304809678196947103651185046213696212653925619252421235758234054225920681320735691736720184598718955082516476073425384539088915320746096192648224481841453663785205596156212155251052463251498394202526061346914302647843355396061685365422420301698676485975859504309061814417250609718771632004698241199376946549208130737455925874274113994500411622123123830939639407701304029592602591487471520652616098619668025483769069982608532082377724327907360607236719404529763702833080330121169608846227796353089390478667146567932091239713150108341716219737016669711655264297159246178215925029507197052975925179584590107088972757909488098362454712269778840164226169811433181466849848936543677966419430391323937019191779991750393844634744948651777426680806414932964537217977960006079517175103916593707029079711958364731979522199415860035373326188925745762017029937392051050766115067500358010460867973183152560298429937940441613269987601353245573994407902717277008439069696810437243601254731790875675329786208696953786136165155498244499807043365343771011273773021444285903014455853200205450425350692236889156928321588577475874157726076497378693462280588584785412195617675758316969464606389789084494194779910230664197255384001888213701583885638079517786303518150573012228248152164447864515790344776290129155044169894033030273873351565356858878125954158410318175707937809852011744661068338340233151414640567918035771910592460720189050849087003329415780402095449087893741115483825235508272416953483212709664090736131724888030365748751935544022523410064181290463935801709627552587721646650308456784128430290301162452624042599139953255686173498595744722934438775093574006025470858127604539886535105375139190855928439054702210614224368797389024252399331044705615457646992024969050962322464721999743430271785334362701447979082646386600088431184515448408061357020009176352405169211124695607667677414663503550963970715082335297162409537825798116296451421087972083801394270841449036413341253609826049979620520400529178647375752909802664005414783021546504511025786698316245832943668386221850744117936042590388532383320823579271489328893194931389816835172778925705581879421161112758295462810190490606824644826398979391746805164359116483357315668755999110795022109716800403092718580666247649796223722032331979588136724069689876751480106552058283578141822334791466499657737003750644877700558185417740096899632599264791503953314561602150020614540799376527160576088910088876963927980770349177931649313997585951612971505198754328808646175500583712408004571597830072307668101631830502397905736672991931030063984023627528114114319934325233572553399829469990212802009789685686569822007558396940546564596668761974604346511534778620818993260945933016039754433128589025785156869786067087812316340784606743817133033424598957363498476466870234934696954029184597909928195043824307769791032618486928047505019737616862681265349406089750620550983629983651384134789606737126833387269285598378922820681471269424666721256465009967034634802634336441087783178304942672504532172238175114449480540826491033078048449730766003227843016496403054201265663938690149792791536917174525711527308555899797371402647995445772744138038717870844606334851202047473794930811623693471618282529765657027769768538090190892788417327183274067104649100050285344373318444236099696667105204727949181871360555048122164068100368513063803900370110747027725105531048997879059283762427597770664596809562347128812952412097814620237412330864588197601146341174612120207820525732145526018764587350818465232190625992131362158906757892880598336674159313715794029766586014404627137210654126896116637419205785271080421788537914588270291624713815280174359762364052205360622604260334364506894026257433260902472770244983817303520609482108000857644266389539838737746403780232908338158755865778437751737790076616911997080477655852256530045466405042369840421331734859340095192116238821372077930801909797692692081830578577242130520370697635500672853863321798200499081871079666988179562463972895349375552628147496650919495900286499331069769069415064413464318796833006332435378547649505422416701644775479283262762842237841187783701257316858784812094110552410843927415700367282030157659504546767384284323454295006649606737586391783157588319988259504037926721171716393892288651705427239215899292280306149928856127105411725014335836542968094234354795614391469378932682875055988386886004968783733572377315785561167956611766562698807827538325109657635728374936316848088909910590242687811238660465880684280724070513299021895079156265938832439460721268515410852238751214817194620097818310071054075028186628482867502523244079716009630165394828522659779092264285535913698402757104626203883420536362230135633640954318008071842637577732647930789723426413767497706844606201060869971335447999477063900791987756188715191816649482774338234844344075931949687282454782378588006534603777125279214406116931277756830305222647733365833129796280048405809585471715788055989367734289908851007395569153547877691144368175885558870702960673155195823638192382320539771815345928950760221837476221827234273598297343007174229086510282818263068820942880904351692224869038926785499017883765333219657260439873093914522314960385072045599225034201721389455411725736774370655051254197812598624084068880681877576402484369238186778594224465054225047793436711878647017054279767790487745271470755790793877664685469261577889197591993741319841542164190445742991564492325063059985630882698303356927897264415971774452875897470968392731857242729896844297469667865383712809412090526873408269569728673832769218242142133492951002231285067645198467400019391557523206648971619889243597261114721124283604405324696993568782045034399622485043266239544544902044887962704107368456335446257524265238230304861534564854718729558513778162845906944712654490253276286728752571275065006778645838716344398833523072860812684042169383834827756650795518563199291687519704578931354156543509372749094054821125270483199768513499307916808277293594983238682989314609971614713083205670775821989619491635941023471692023076075678653799652620437975296174677528645662799051293194499082359353868488446077460986106888171722516057544566375068635498733398227524411345179176954122316296603458306532102441334678779637731324023436743290299167867913356817352471615991616838808215082335695590264110899002820761288199576983888704001785943287781187562065210740941462264017491020598309129040944121739657812586653487557218566698055176702383502947942544114125327122105222161662374070450267415108301653931582419660946060963731338112081965908735808909974006147180436841917417594237010776502875184473910214050595018314050300066740321902138703374023531404304259916480243897974099631913882937470278995806451316966533274535255314960417322877885917807948275526152910344079659893061676282723772967875149334859925050799111843816377743198517314491439263278851150287289743744745942344163470382100854037357032948700549645180116783022844552676413537548417596757650301498653657303820749478660885221626589685341476493573685630560895723497342038446004331133570173918729692937180282153889570802251387037955865710558912180710149987215946052988341376093071326716236838974790392472576364911116680238207283477288802099566229144320264770908230844233439271929811384630366782531654530140003993329841975037136179089811600715418287715231701257193955555660895455919938294276379023588452336198893282120394590056275133348391384577969080711230452363965626227994952699669541715691891879052273317387070306621114321393053110918661841883123973859643653496102659102115703233771512618537210997330234768377184310506759575665961449570285750028445618409864019322272106887670005114607720199399291104765786094931529759148207501459962700925813529011249368110223490611593934878899977509095628597635051960932950065015636789317082630995708386818825826199974994754002402121597918703845616408184965993935636932092602931643163101076930450921676270178361765674684294863297725719900621104382114869552087502469458746755898494672237500950130684993001751496105690253193358913578810051234012027171733100685100112246963162233357457445392761298588736866344515825298366496475730262453010318769290218561016546802223000363022164491836649050882736709381791380187781699941649154998812433898303794753363526694605631223096048735621366611895709780998614677756185432582627167511127392355382286781142409416066235757492047810557242924399064897891608696347900248532990929289209831625807047814968088604270392369833253163140529443267077025535027891215637646896912409830409359108312364808587954362327627700376824481925375664060164282350610710612348473367285999824679596444351210151389188710196677508805410139919679955964221747713251999438719148796252950692216210793528884938057166194169871535430783553388037766523493740969915746160670923879829987176681118509817188938383332208205615772041493020659352833619290782516320465270293440969157945799937984715512137339481930666797385511140781802726658859532188578794153502575607420710616284529767127426671376890727381971712791787158535005555732012767971818546193167422660392414160178187348909263149341172828717649459137423452816826789338818545480767929799754023692295035728752771844379166941443897001041205267875285929218608539614456563185723110831052905060185315594593807756832521150832425686579369030514165757627945922800363223330537073506408912589927579452583646107842781756603078566805822863942126594990240268324126075979316585164474781530509246639609038154284336133336950504725065614870732419863316992953238224787378348459233866803779361183108671677695061325094357639375558070748080455389027692671126066496916716856664864430249939704378647328289283339025821585838658401048758534385217641982408656950568520335053119904903479992320549146089020393582240310383417014287181710328068549580166290470116269243393753523331594026665852912174526133952398524261911637573121421648174006761277137526850158885778824536883812561595287998086693564474181163708800965958330125570352931023492723952676760713018458386010266815884560539530494159246998575239430614870826867916176889464143457554533482235217502873897714670073754616198656680744411649225363673951813144872585217829221260352504932231072124402109222542636542479511010778038562483019779083469068542994348181499499223788750968734577447493560438196660077715167199872723369566406557529841103916003163980382191202595156130228884540561311948990192857988917579125454551703994122603526868044809204594978562775418883653254602858273056554623600915132307804189218288752512532304887507383727650816371382417237913798871925392622034807036522900221380427234345384406249613974986962047794236013024152932003567593007870768638412806984568216003006697429397699930705581417548595007642070234593638453433372681780044933442392789697977938832316040143653683608631861015402639367388195260052163329347600065392427830292499463720122116035417594537179897553791242245139960977543306994537786068108268760009672160285189480196390577841219089893021249329296748744692624489148840793695570032492360857688985116309408239046261935144984049040251700785090930175304778140195918608339696465977260433891835463486135714312923307515383795533763040770164443036961591316660815319813379096071688929408273017217166362283085931138208640444637482678649107301621866676147261266969498169995451069060408080840426258702750328675394587899096578238925673659800183356201988233690671261470950059684859058678049535715179109679508242695236359822524646162616426838703332706793094968941220649099166502862960915655597940367379775280190559441921368804562001667707293205406397366305007380488202224968380528335699792471855536510183249783955539903818201524786298920198017087667529495214054868008748037376250329556959412186060059744921075786403017668703271248388334417307851810381267622323172452667539358385982357148615130160714267164930647864102520448928397661969638486245988807503388613212079562373791505554545503980911251210339513031239513087391387459761920989733449446321464345977171765685532938220984144355963325300463815151937486322311210764803514735767351289540050223986284979511249048287523795385139367126972767582968502622911229468336393528135998994741813874771985370750125455349496421816803999930427817216480170958913167186995036823491508636082978518935908841876894012700351032302507286972972169655967184764759792206992373953445607645029453069509251343934116464209987616490989943756796505438472965800456319464581777936688185351308280725001648463185073704735480159140100405380924361368504077020075360967480300188102028874475254644690533638148641505284015161058000133923151002282075079524262643847331897651297298541514809395597112209624485682636100314036489463981393036842388309771726588729141759648778410829730706938739567000744008917241906730065571196189497044244024477719117196328790974252171885691781863334123759025186672294895682065047621010487381257584357696664922186209261364185832555794144767197096877638640632935910635741399276046333832940215745953111640263654442329785071840216779639160499275146186668348910928805983151601537329718160513665430938496700545889022617169832293968181147051845878807955495644236145963183286929361879500435481860619961574108549787707856509764886707591538087923797393075320141325022495814194956355702596687164677764588894944228066257722206653823675448514785425000961216883839261371681227752511065289754264906310911109552201669700853052807478654719475231310692821357972659638042041928291531129879800382870036136555680209761362180166587488285498717782035837774728452790704171190041886135115185762371095876492324035993722285830719873608389190146764952327476943489007341671060473092795633854633453335340667668426518578369371721857865474102714377848261841766288003826645609757165473872380775806138645043783313351227512901986894074650949689115909300766327876156780794454261874195777155965966672413234047556500216167772724065519864801285025444592160490476937464674724913724916547257201530527516105685247315828025859731348772100638839329725267688678469160400990448042204364364467802586639706005173602765429562153331786814028926959106279163694598763634257373629210447713828334178275381939303523150807535434739125542699609963566437714108399633025679141351588079857572865970626551955193754325354427875695438045572039445827283134699827727115628331953658279107412101298845651939751664334176550110250902890387740426025330946070953061666371006775490981552446510237452343734874648878152094912673634247724304966051741866245924343051943400301790107401984210252880247678575098842026876887624413678909163940051262852397837939644501532870850146183285373158543237131115227421309403526179786301848851567479899409663857890575249007482900052986769185768350656964745054114279089919802705499214171563727786886504840196236165472621959124267572053312362721771640502890007361029259044662729190363240704770942075989876166617650977610279786926569104273604009731721377746320129434693297384198994984750123956630231843625175787508853973965200165867962686445499674287041830034255780278583810223729203855869802630447685821281932289432000367790753549217249347824879202732669194434266401113296055773467358597816215508690314036571593762105113720823100527599053171044962216731211615170556637732588321818213977909095206629896007638149019644139427042578762945245553392221149673070068039295237308692665872309549446627820333503879622447050736705431153137717132498200909045675652711324305749731184219286472301879268834291598760120873632482275416682783513350260025330480578808906723211606011348508349469240581996303330191415369054057697267989529030185560067356329287097171702461254640016844744596422096929492347889331148756960136391104543872453689601982270122503575376021551213344761532609975318183540540891900262316889703571778641876527761131584680243137906196067727666617581864459803598145406331692661737840257196268956981463107627193675992041327576180471041854547217713696322172367031373890868825237324557230653776517950018739338113351025449461588670044076877710308136717145186888326309368736548558914193154376019126084769197402253414254897796900669894131785542038128137598153357672004429678243017566517654214145460359117300023275660026708495388115437806675827092362049565157285585415461145904064197000466445506812088365117914304724423844363780848970051118620629666404804240553811968132711422049487806950328800095797303555816346767960216605565373382421487788705086281460231328579639147725917033432034090288959376756413291544879961404726458659166137202271367172967289796117637669559285695037503981318315844818123415866650155337296495843860861343845233952626891017764307821020434937934008420008806427357029221691472904186887701826798151108600765410263186294413223531588530617123672530455708340672313256878397069067796917295887537496793090351169596776575092805097480690898992694419487537522593649632660135598434457398625002105745467021672393228899309461813860400251062569883227159863250907542838253218988638598929170267868450141085069565160375379814434759343843820617680626229879785981359279031772066206265498493415109441760434500957472020721405084908350652601269572716829007481348471241409473570216261268111922105670451308746444267374006947120270122387382981137714672075610206206290000185255841008215004721867435355217685539059127596017877809886117597323778377235630161366120437979158426002420299038087163642055014268472737529367141765614091670164857574506159438378188141138751600537446543635913159465119968392326349640608320616002628738198825786051313904530444270243044234395358413301496970733992139709431829570645787344727939734741959794708421843549316646777398786977826886756858233911432814557882672956996453289264781364844617404042205328623972526842566565345974644608460700566288897990546968118516000189676787468377141684227269125606468437051278670227442357020038928118881293097196683939774353186613413791914730665797413441450093627326372793148422112388396545247949054832701028827242464503421051802605438288247463635672582354219977726782117536677239394627749065122799369940188632366580148164222486830846332396588858056511807683035539936139997960939269100604614318620983953004947057026830793770844403831869084502683403922127831699443207730310512607848496926291998164589226081495085728344452983666830999656730130721530295844397284119595281650726502227363907397676141510536701935716740864539757714119880464253349411101476854011222444188697992035657803731810471346651682662694105227469609223721814807868124779871778440570248767840232924079332575726357043988857022252498380375065151935391990863808148486003405734374622617578938567791264812637454091578645048117396512094183026196017875794896387371477033907501450513180290567992588729387104438503446024421088801955053427960209038635203500524704469240989965251162188583700268508361675962520164996278897912615619371232951029590310502704087395683323563761713886483540654928793943723856694127540856826050281724441509495793552049368725091276001181475576419676924023663324188155612824630836948780517297815187353647133514700402591471251112740881113813733730776455752490969617480726141684762719396168805092087847399027135731380181226723814731447352559613400086515109692919928505779498964927831402413268854730667693468283644951369259611591469385495521433877189424311799900470897983143215553011733515311298920136922327228318422752761969763972950661438601182981973472080924279685775651633669758935535601946370531272769566769179511697700728314699039781790161638288971307527123266236062328298655003380031682716362105263850564651617305728758951649893729446923806739622515847104208922826046598798556342677391604076768624201294212865371278966376635580501897617704081712482210996449608705630822571976019730555227801306089783825216622637406325692859258615620468662703514473906847535746027242895970551114778117702703887494769194209324671501296586114732533879944938745863536004260763052307930611821824881479922863415071534082260490096584535166491337183166611716887835178751438298632569422962450039854491765472751430619759786800372213439905601558648417559310614668884032768645961969579713935105342258124211290733324166375394860688314582994821336643998875165145058902010726290564874037426740349065437085607699161670649233793679248689622750677096300281857047624770388553567092312917978967236942308885151511648352305698817954857362592685833992889838079683406111847215232373599105140310544941651119119862876214854171066014989719059062970076596652105586110239217960264710950938843730796992870008447264485488835182956592343013352950139059551367098144611481125286066400704059516815242712625844035269606303265127005210323343694299319971992248466169028860851090260372736217026087158781198420278494106272106731872380655018436824700298777772441526565728038043735818166120197771538890179596674633981481975545261838875695541699954488078325881559811662831197756922623324227812378445242660827543558033728199642019825059837516250282715295143515060235498768029663645925501212086029644691398746519891675850505460038922319672184114334564318275213745874228054743699881982453937102240105370895210391830166754936601128858803510859993683937530759252003294507842877545093376728839098539072814369331280179694988155424824033696276576540461934817113103988805067732234844869680410236370239719651988987280509599261403737458361435917256366655120648764140403525672222276177647192901169834037298807560547671329620798801554205924276752092894126501847004811977406985864484976459653673797866257029687326988706434486852393599638742482629775571298666810779461765366429850866041835125696052485478621269340644970408106731623095517968023686155310204552758161656115502368419746240745128926547082349230116154292895880933635771549395024743426408778497531232834642442761966835428990178597443439007934111379706801051307714607748754076442645345072908408509081862398780596812554376727570639823410460079316834013363419327339040447425085967039782137326422947895575871330807315646221692537414310554243458279929124397063163288354166706025659907559356854432222472090943999456391355516738278208923920959931628919731090969109063333580263852825840837000846104269400995637727544913125428379821326504026895518079095117677234154520354524153921915937714585645196570152286554701389035896287020232256666284988784565783869325093936633466970514187624549172931980560698561591290121200857804001278334840529633281660423704218333691251213578882254309814187246200918713146548771828533447684160643648953015212694711322831298994503493564852750479513225426831041758443745639571885878974350360487066198527666061170179614643018048461018653291789714575560905805535495032139659776396660715341047406574488443071653491367337302623225924543386473496745667488301324047993701639720519041946579131469273054045191213349607932829842387172390812761343528706398366481575283566587528210505911964551488417200350080472153509947017633771208462267975656633403761074486498298737071346331266205846224406549084791727682269763132030891390135648239874262363458994340025361232579975462704022135725451431477873243417881127499368998245259189423585614413295948303479153560386967628180606651675188347563227839854573527332239968489690847825336162705410041425929997475965792709583509996035029098525772906907571071544940620716839770411057427582837293557754754279968682856472543224007312967610951638078512083729718684670007701215872279233913848304029371349504976477895988682235334336807478926558736742013253740472236513114105609629267417048623802625090982539666649026890589288980775831707863366768855154014131155058520027806170658739908388697048429614090963871097035891016359137336739129895610427846132902181368073693794089530769364176111041812838435145990576999182726807434760053034373362964644359302878854082095203749996072346998081783209042817314641110788325548863742833773409557383891380586767345359572323459473906087567925898913982671077985064037538226093726097068310977031503790211031613112151479310916415709454473142237726857091131090064423449815125551772581771233443354072692917500642118194329602881916040670272695005416385334752064208172396980970207685328476347509714309450033019914500343716762812916800938950632579612490488874582672587085655103040701536573700127280324720029510986077195260088566485446823707029127130073331125200882294005790037028476224727753749487904017442925334041925695407919969484931737873686326623694381143359729879037345244705141501897503848855587515353806149591775396545780665882070790693420838016757256275410369973335322877293151627715517049599710072302985403362574421373561518440856496741978308347635083220115769422950304063836657885835706664619129417532319975863359423911811486964917503461117340185437299525234564977597385154776924930242369660018386164135643137770704335868987117906472277753675228285663159828296082341755798783026244823072060649900398444889575043717856231865467270673187011812504170128539206227411833025825646164106989391550372100666706460718790999499816945106694549961659321314862430863997138390743024959105613775833326404946477937341239865603705119651924233834908195031691719166658766425321473966409222820880001839785603224355697888004608725439560038206522398320771622519674211821976045233333221628346111349622938460951432235550915520424046976183112042386491156808342983298060046456937034893797644757601978101200961445457652616702780309699887171687165890005278898175694140706540618944223870544561473786473926903876848668115009868880792825206368694405794048216587019582890923873928577748554507240829113585724030292144048813047899927599785023412723389585700021469553676541465913691962798466681154211519670975979157938157838035207847413299341559627091406237249949308157535294614719453684526121789738259977495885571506475972560967624098819960669660196182719803566108321632166605780446440153484560436168433555973312137673083717187431389265809482253318143981446991900228610168477263220113867539810263146247629611972478285324714341095778831004975709465771269618105714707499411334774297629799423606135523108294880124915569391014566906876783545200586878021766192825142975307640134201515076006151717883724108759200977831132053029778733471015015533796105628708800970860888063439061005801138957446946844004202969187271581297220519813622696368277618221964897916591151152854162290058319489428335206023427364170410986385575978565075609770906787490223685529786372446065407365373040785412353903014340547332187068174528101793797766130879794669291565558635022897347562012781845676501907553655912174492997760886259308581774747521990792496562786805873302162772944748692608346015850393858708493392979441965870782311286452560670273309873734557594146246108392768627180750360959894905641023468511983157815254426585509841713080638583347402704476588752198274312858121535655819766303037451556077071786647642986026248738093647589970264184865919457103753143460313548357264741752104284095438806786723290586578303202859852876968503326356171760636536228518985773627862606166419856375181278397334734322749766840052380502665981494370246092331073373933587138473675691295199537424981683711964254785870953051190012023811621779143278664326971568837620701275160022826219165228935697384590956832600173558563023208519652553437387758266600002270243461035964266576525948633794509632110629687963875062562468093613565153025508980502554762055858108745404876213279035550034793433414778877037820791194969912505036915391574962355137762740514786658851562817157533261811455407721627605077067264872379795038197575316007793932713861010977472715132604171551380509181032499579281630030117040207020877927969670732982976372607562869091998403803384216343211860413820150608187620188968370447251931264206355016978493889262233200526195969865274505912789642621447294811522598860962857781836564162966267671731694192899845616350264367610759192092728612556004784418619420559806902250055302387250207381891768256660085589963957250493168847780663193340538784471430063026342071727269111389527941454717120434797895855624135514629804806421302602213724888704631546986654822333368230293564792831023563896875993658006765164219986941614706370090612335226941830404719008764340153850346880865214593698269287142109043851312799104780328115152842748590107697025290244388091435240234763572625388929055318830427897577570843898410754239309163913936187363604887443571133351815585374076473108322645463411577197798224244434419901270598848965864611387175738328167187212869321120670993802490027594229769455755840527761705603695894638706064150941101416567038454030996020244299776216091505124819462733323979870273570554029108478287065643016617623535298313443079886462956726739705646725758211437473023306408396296940532780532452946146870074065437057018611574005275508097386032549459456430505951818725210670566201268712499256603279134995075221618326930941751803567693570581085505339170959940600354648894619508783826629488663977278838873545442844256874108297445427937062698723429057718600629459203814976211420003058921390469777744697156614856873700388749351465937127377494972195045332798351638605667163769886425897401849223037931638748776827550934761011717366295759894313782665980196043355339520280916897344166409381973526567721044703374087937145430331550307918992604761919312791464432927876200135393870754545145673472407894853730199239035635491188218852962971552796449330473623935625246455482879748890549936022241081376235245692638126814452963085640293606426344405711588453813887318972620081603160741502531634256297622446852031387577372077133797347120838634859032309915058240607630811582421846636852523609109588389238047162598259696954282837732367586483629945197529390417439018100229213802965046235079776449807579172932616586962978459649350591251458073975379580028485279014433821568525311888249621891366419152685437249467975295226086751795085021762824708457241653055123206065029169922474062348698135020169085582141536458848171671633379099648129238211869318690824927164422481070581378540899517248520773315887724772480643605468727491753404793924677952815863462448943976048029976088438388024357777937314857504174671930036935943972653547771089361067108911893850231294995831690835001526841098735017380578260113545929726532504615821507389881253092066416780921044127821817945128896728728173840404619901034502117042112359558515585482379753000305546100824974116658145245377280073796371650204310074415665857214405004839156785128822322099609227617037578105979251466477350285488742254316637486786440275744719647462633998173622477259300362282171827817733913821208166491986146529567371540350147257186123480712298967264116885559336748033725790067839722309876898348876212200742431130579606700986120485942046188918637425951483649880120205542036125219102462870896016059925976295540710017503289514313812561640182533989619428702750095307440155940647835766665239855403483907254031639822975401501500754959213270088700393445902365562585933284555485357201833749593538502566764450910789368257151848937036413223769335957420125475129442538740925187811057890766630396217909175882837140200744815078335199994796691591747255108454033365211120940587747420460316997071312439228516933036587885799297760020800514045036550563675706624747135037503433366160246338363895758511103742460924597603763740671763539019609263787664255903570902334484419188251455188170410099104322793306653229722394365189120603223391233438912338210867421545520938535191929183367132677891191574120566370730486334418365635237373589558879963641189503398609089021467298058798005374804855145413872949100282340934013740755879544631323155868195137966375146963737984346787327363803432001356596118484140417973914167479202514198566103164189527264435020501445132246441477053069613468105199752320013488783555653556242964910620928389705653967334795776705383809114676724358987042708434936064191153788880712177711789258100493242044390947168582878206055275030527365711255852157314663530610619036675512485867035741331861912898692188191409623929926222320686378343280816823576270744536708560725581126774419781023667888399449669126711694754248754720901811795605189536463032035862160172045110744832801492719678204394479937326521293026230170226088921708971112081144732920811946029005158041625185182681377638419097557811281917393333450885355742085950767261906410470660635421122160904062551254275918423591765990227647380586107986191855100456521361562062425855789892401727898721735697098471152349954538582741948223400646260573640434326630032268530846546884701771744093906005420382579721173660986005902324968619240464855493187105295596604041341569226442721272629133795426961689005279804864233081061821886081901649831416370720000924615095440869415113539991053111751428165087736758017326152015209200351972368295467275640881698734147402125670059237938865721407459413324176863106799757200487425043683587188755977157444133799399089121906537574024859178163183458627461431902387723340585994050113108541556686989806746707636603997303942887332321063934887990185001187599772391129984719506140845525187164550641032319753941319479137465544772737750362568675048926332669361997507542550352446508846330853582317229541412649417305902615696579150252777288952129177261942483307829701544031498517307691835967024920716433898419268063453077546492825462773669815076665010647061824695987178779995152143207392850964202356267037524428170369834129589645431817120834310793170866147823096179810874812691352126967057824621612857140771622558913366517218462893721984580159830599840258048039266995975142956750900014096899448647754091165106572271904051993780678711957019622845606765238774448130722551588800080889659480689038729551715954397062316392566455353002528925964762877763292776217443433839613954296094345256434440496571756965907558525740429453779650823902424495601445501738001286741571953714941027440187047662481608913528504991668963965096227136981625431155489753603715552233688555497312715651328019745307869275955070520038686665046814401263136868668948861774806810746476291473763917447595641755426735984780897240814824331669994795098725493587457455061053719639921686885081888743907705912940921985170463801042890446433913109054605825958218126229401265825150745573946220874350458571991052884279227824042276583886009412068141161428586141787854634405321329976055203653246729075703784783070815263498122339826726886909914410482682967404680916457934153779423007589332914529165560960983621476442374818649587575178503933151788835235890837554585329120733416016315196553899089976673255379510342481263451488827096838890140297409611882067434891073161429437900557051953673367585653814040753058872521954271448085811658038693355888566995816167245745685173820541394072767878863809967859441895703919717727931487487917323157245462214465910669903616608682406298929199671034314785164268788474346043555636235791201383685058531884003481273087913074327358899092872202238521777106981155259017309745456276000367766707090598827208240778096597129671967366255676593645109662338135340718993175103769041073468724916678934493333703539119215985425064533859599471015871542942765468057038281710570879174905560789320622357445817333297623709095066296660428969452750930987796904710493518214683249014877440487431412189079296334319622171768161004411782589660328324646215706577823272131375922910663267922909476673415890028911962447894721153206836965912113597695997878880632658117240308934957789798840950266779550512530665032966287082659471866405624158546145739816353432824975099579991860934621278675255902077753927493869186124384994277019455052236068711581628108412459871062815731522367693987983867460400889098325029318027562823303397317466752328555623725564723369599426356868664611456749471108236969670968397877913724140315594593652878986433208431824352621107109963952618210807398691921651723996908234204102085037061551878890193076645304082492141272833111229834325669787279699629243666076901393212874577491792806881101105958430841410240090458854474901078578038564095423875538065843143703236091712035937896126305511408587393632156547807554731857807184212006960102877429555551587485770952904825185889037431142382178718440699637906681364832501655469110480409725416119697677232144736779632068521315965957354182661915617688281430293912275969159121294875152981586250107050640704177210546815875823907145991021838286313565839147472400059907930183985103731491171152721516045737004761264003919943561359130876547014472552972627968594899503937097005634016294150645503276907962271520273790748022644556271862697354054098125328742596780937373584172472747508927791085290639205211594818676336472130225138762107855902267294731489326552223205582333049044756330864885978493731443453995156709907583197151231290964526530045980153648665735562778589408751035808908281171157513280980280595108380789486852210935332764160458297174248121444305220536011608886419443763302440710758357796060780782844294319582413150138963654934335673207673731774919536152823188549400048469304233884552519622296992781748839399606111766810733774629563268359899826290572196348577220925674589121052616718412218168569501924405254419134133081842390766045018563943986058511936653050230842724418932162802532294788006928179290037715352555605188960442133110972249590253569520276416765782148100326806822182880270835731369070273070282670169809439929060272815274268188964886797768180880444179216410406242989120475244076155652404292311852017193020962970234489001031261397387511049145460079266584519297838033753775786553561148384256552651845985990229946812962024909041841215896284439101309911762385708254726497606047336847586611282454282366454130319423022161501296720017147342123061862650514190074022715494702100472500026483017077568649672317528212838536971507241969684656154803728352159064963714852468303774108200867626951957861262627307148487829482670530841806754638001984835164680389970370934493607191679358916988529815985809814368752385602399165155331144174781907002590197219175661975796632578259074700761958102229937459812154138250799828260338178125588031977167440656720709430164961932641978907072054806201616115943589846192669913435590941586581042348300818580116862291017963081604863086143139065138094091275602033385359206833655443033890233802568438034396633768989314795348510909837051235395186297940024137331250066336196785476000781651967988265029617376491583644921417712113560828867668323389888655994720003530694572406824062367940842462150958320983354490951454916990649932526910018112488923011161015769092791143802003970931841051181830705649785500200119234207308360611664369666780889133489668621744981444102081045213027236455707743641200587423905196896241560461756128176694778851880212030247008098764949404810490214974989646969802158524780317543719622027972244227546074176008755606713904130361851592454319205335888320921108951799915428194488934831003641083016545218056005809753598289330071240122612337977406586025721858993183553771829961480886397121270626774661802941941696081674645240823815835177008033035344646667207820891127480114368450464867373336415632506587324220584130041453851095504861980360646996255149225431409708952418290369014262665996283812627901232016603601603129255604941226396703027188811328558542957744505693692024791126187783118726552744482693890228319372940663579436431263173900240728487277023938886952762651598001512841244791293719348559591086279780485441210878370437330193025079790669439629516788657466978242569009720299748794698207230913189438225440388374886358302848840677529572828398077532057499250523219978974153641730721832245015674673077815452993007588489746013680020003241156354149081232389481551852956064373739752269442201500691920090691580194830256748169802345068991914552758084929198848049869119752882783501468663653281854376971817073502615592785526114394819978032114404913689379587582839454234832176181932211177354665814438392968611186972849725862884011869146568963292786770415697447458751921210386297040694157641378274379753212202081498845732756617435430946697638662622541684900469111244400260053573176508245920474165589843691700322362029463713472451019097109050484587875698337728623497301058366013511988176947194402403349500311674070182532770868218303035637942778571605769098515523274407518974944647166089607296602851524081424546412634248538520844649370096337671437843474915365422798806475443812527222307661010637404488729458777157200120617904185943583196530670643930412636220725792925846398783537801872410662692395454487440507740855296921677505279498407657484910231761229580667631603218875062079665599771919996132700259483436894014269896478174902576605818593302284575705513711329947579020953462230042183929985541122988186249238830345649856648726822713049524378365986178541583095689831838485647663047304574344616562958993717504222432432616396745117016661788821354489815268610662457394196606859764582345586187737824352484849773589577443812416216698161540316264373174060473902295086590548927794802737337568203334600870671151264504811398949359013617791593689097190075518964971759286877176551464526448680307408721951351401483591804167193607700184912657645116551218198364923657342883673729095119855117398489872323406771617490799129481042974162523874680519977097657129677285219851324842413545055405032617385688093050635169936343066121951216177077334551321866037275484398677018618655665407158163413440385766661201041137077278691478398867923624788554351615108603152914387368307376473228787578554221097667472434828009336487680273660557142800356100416589519168274145824263738020745181108364110292237611970599780276350061866179197657717604076475369150534592590534071322753048511413438741109123565934886562502743930710035393245059909293606140823122122060406990695204104666103153482479627208435904941038597055180765118756500014618795038076046720630455899343023991085015982310950144105437756158370484416391249736459835862382795457331398705990996690788461507819725457239372007710328246398824735405630121967769222884898519800049619417471917891737787572357838281886243093463861187956953864461777303048532545179505301299769189310223760915896023455706250225885998503235598488019722470422034002623276210285802540639746446063336205932889582434463329038754674455880641335466279273738550732266890182823728519250840752096050237862599210193959135779204911442635493498745887287288654473579626144312932957458518158076862805107811978768599182803909426850836258328363619335333139453687266473809015305432458950527447892237710148471080567790408292869459256521832458802617956637558221805501722942921378347557015764227972971495060723411835849798910256607780190922192888029334670391846854861624522536366284856668792857184872089195600250565387246694211289137355257956315750801229153975922703928031372271342559962916416805641513112724961989869999010659553620346975929480246175913032526746019175104131103542309482026010673744114592645802369263182121728690071331916050498332997035121304565850002189279203223684188129909850539395955550333351121349959976312364899597362271351890448697376416182390891814157056555676601217370294832798761578744190449452518058017969344773796845517986074600045790345287974319216185929774522763086984024487476186060989095093518289954592808798845821162400397540562400814476035616734387322641360718748496793459636612847618838439011782125502896319628028591318288862808964337402107554587698064446580449726569581319254903135329500412657606145548591187947207029245714069454637987143714868393716110010409526698786368800190354007238293336797004238915929903017275967708713386844909925773781733186225130794215691256658417992583508155500224912132324719418893297730119601169616318084551189948921909217970033969588892873881914325021386221303386027473297066933316386196487466672110526936705836348348608657808123463977823582508988705301720881593824210901773376288564323186890480859491069343231163836456264293508979859062759606046318564257164515393641598485381545224466855967401492557985266330998740330863263394592477036675144503060809347392333132141521840545580739133068456008717786044255921514579573578630810059385206218230961887822118514986719823606005331764428106319200361192034793089577757881056824527830812976659466443838753387366194708212133313311726149709113145647964813788425057173901162162984996608723332366153435756428022868403004147406248172021243440302239608643393967455060424265959251469989684017598821587100620671332606767524201068274608079110383420119884688584351656477728162527087758009296115780837047353245582628784989006641219363967576690591779776853363798334416808189259760139139509985269169063436010881161373071957210850424078006538516559453966193183567753155373691943699181679243518056258024027453042094554727333897811131626232023395922394969529669360653829000313041131295798763139239663312602842832118043170211350894663263444260338917172369012800759596496759289305139604858412142157513634010176994387861550941429909848448954426956543550997509696476313202382917947757121513531659931012727692560677669548790920504777557124823690486434907821664120611654991813532477204715170727383914891752045167385070298947954465861478192328627738140624379705343758821370477010838432556181964069130414411585274354217028943631820286602163902598903891102765889319118550556830118017533770374745710019850054429718598030330182804845326231485485599754073567429949205017038768136354518406452266189581429378681827649914050834091510560305428606090933257912471972254884646086646090069250899279498902589425816630345260378769542941601880558329345654540118574121740481649323338299002590866983180195183294617034964006311060637906618847455765056550481579551285870663341260199971084412354913253318309758731398575844404539256071849431460570413762147463413403427444575459176771567132241475591136656711327221206371869633777162826172714302187440783843511297891835400559188410387238195142834541529627621973213865871060453115292500983561497545987080625710692399305398953523365819704883942569481614200239960941405189721551524890405283792702189880073280866005817219226388211863746611612547550773610272972484961360755859185773010021838278347538777773044268366612264003025614534820985284135111163719777315286897766242979670756339021378385994027052167742450125051651445146448430496556954939440918780307482812046717708319183212748860061744718892703805436199152357382202497691793210426461434130910006783375642986894765791480898102882568713342913802526521947626643615653991755704505490296951533976274895086756032205037708104219524401972978523490647857449685826144598211781927012782198298819125430369763662508626859140703596400038185161798666861207915451870357327204499570095024912352673152953261819708199402887566192247022484179370161056466331099982062091976479129947623768623208144786752456781337476297678216524700034858943956461243432018353187292130341963380639048048155590898907423282970000579906252513728094032530679149832702463319341324097001426477240591411393209322456053500528600676414563746429354638656659873178556503078581030809749107121908636391630199323632731845255548293909924262534437514017725341348995028521216345880800397553580879203823331459572770364816841926105110249317158220288890287309016216143868305650878125316085627021387276684814136900469620921278046875989750758274099619399419288207045845504066304427397015773774277800845955787309242248978697736853540769108369442306499753421170686924373572652097543805235330751310280759061440353454483923116892143198055295188370285685104348289227814280596774077029535470655798734854163960692197073721115435878069624974287590478676030855478227911251379009823819657217227765417847182011484570359604997914344615441576549101415381207898825243286376331611916857991196220706646605829648067161434976671670161345549163364334534268762472796497988999786345767964376604111351951252848529527977755069466434406172220449667567082554442666393217567667959097633380856408711093191991614165452664555003003652371169467344368988041242935395201626423590805419966308901298227992355611658607722789111942030130610508014399110234269878940772804722907141793440256506197283701549555735086472248788193564166086621882066372859221082251000749414702286054666004734878042308795480625713496710402050549461057138601943539363466491719662118845137197589089596292466610903776367947533447836116384227279511151677351704742020575880827763457149215537409502786882570134735261781913372448389068959283428631708233549822299649726513738439955189243742411208875588976473600530636433839388491520235996630287409095933068842991994279903831786493952394816831257274465704897009205551374069703090453644774976519076728549480545840871593835614599867144055109827675576382058838152500991296517186254486585049589978886963776818871729601749231594949583070301706666759642290738493863668889162945447034142544536032744048472897323809065178922536637397527572803537511859102093243271808081261940797547093083782339973914735035519152587489261622104909844898839386042272004277584481186059416316693605748408457658033488727652232615391281095495718024632289206556570187334335808966287116573567499736166083653295428037897015160463625722928359067285547000769667132405773834719310071097262903181235791849768785210953153187487697743049540553563720200380544599787503311023050459759855692715555773638197368305779456553135009963824911565240950526687075758812881179250008880963911164576664047964912797082306379957216603771155110846500743955958227814729273012068973812296278805859932490991024567030141569722938823233866614588234646051679304127964220010965999977499616135984144933597923745375045283943877191615491877511258474601055496961389343136257674741762989085532655283485289136531690972198049601559424228631980964057461124021412970382388902218139255569030081411322030784684074042625466229285961701320729432214237321114843682050131503560238876399626343214543893066791754079054511389150075651875913264149361945041808066689099378445866753513629169324793885084883054939793398403435813652753715995926490397645033108928463795905203961613754945437044490416853457733719116110695358598767345632382881730559140068005002459523824826178558355565282477144603971771447012686170123460564885584662477638976825350861090218607125587949449258198689315082546583401904821107014991271276792531417294699401712975297735922740663133880126069342152035547438982190490974617502633561411803263032805052133850652418180950873846914770336710089186439804768076023771512086914853674332134124010240272973213239529275778005394250435566403150144425871944611132750069506863847426740147016828781105799952000709187726686122403270640808858752678117476732500753598902843351198132848432890247208270854154541927051814575117479125515723407881785038024927917963377497639654055134118338420648485732962552055913674429349219771943626437689378121622615018788787529573153405419115198876474690745346241171693140330432057460046712911379892113242571810521922225789292854545062571665021417856088063563321885685972537574295406600633065171627453116939167495182966399180829292094908950980773071555103416228774551235051785451836906523677545982463294861919384438530330281219148959241578635060036909107843147946325769758121651677784609354026076693548107969579086232483727396824752517317615591143277721166146426149760610522140239589747435256791523367642767976083348183188574869077924143392405209327508556150003594673806573273659766132926646020725907006360806304667183851201216792084735579284495749782886332596679468112203908791215237889636624477850139137214628025140289601486278250919503319320084244738961059430897370782353027222898194997560977866092587744984065095448072520727014976584551616686792346816491613160949127707952695373730178224659346557613261657800469541187998206138229215492344556124300315109669952395518768228764628926052715896680488338567502714499687166974283701227384553752662795138839673600476557468288093475781586764756465833514318246131911023286386645111802495468267385750676703253878868852750648044860228352568139789620464814782551201198868629137901629835162447710030437501236894238900469278177185539817335070390055627902466175172237518812943315460501696218644747311554253522107461299631787921790604571614658782682455398444342936501331684150700284799589970989291741506847644711682938011008661804729655232469515531147161310478328532676309294231892556719798842458275456139609201752998580849892485927715681902993295587344258291118546835069582466812571838385127852659445769265240731455357020726471374083243974284871832176400436458021094549914690288019845185350856374887754515239601634671318114623312683368708288835408045578000731786796223585314587786332349163240582175233191934209014535519572268259753890278938943032334850662812692078455389865016502881215965342953404490227999561081574819329562684548742885785541889300714808227587432827919055323709739243621367534017591591459716313168951578371792371194188274588953729691262843558472942864583256158709542787348220644544201788394704707257649436882705897947688450935215149880734720680669244077520789477851342245066765608087326515437714367016310367372254775880802407016890319040925202562031456144654962394212567988458157748486634536922420765729895841446324818687678157492547763531020753008646215960872149600682927128025968737356702388953464101626982784257547558301553274830357550524629249274697684939912165015490957022749382423950386723444869412432887138386265766142070965753792716675713780216908331874485430729808613038374009729432495335130521514875564105319063606924430493516574978000742814032781983752012544633112014481244758984135239936604442157744825822294470916888159815084337296320700241029201751030860011998583995696666079330219071761508320561531300126126752076761631222848422774016728882532662591073230830675317072045103041094761712498399669150578537960088899852068938587916903191259133325167191108690282661447495957335597686844851523954531406422783835882984266626262199717279818805590990690461873849960997826611458884823874297108181293410822969733101128191055585904999866023920007409426961584434082514772178466499022642897068139081607648025786243592308412435582367271398909935740721102580710495936331625737803099251936465940321748133628621624452744689172286607953509666347541409029996330821989848607999384306538620543257295665733712229306149377316046733593775345841535740682562958657284178472047794857689022319821600567491944303865605299401221171723533051357753536225551598569974862336085204995440698193609968238507552377914370607165972939690329471777694344165910482726578346667634913775222308872361505489380138482614361564241292954022941962216199319351738260138766262391476367834145437026415460629781226637896117774186335382390116265433387783424341751394695855931037151315322731663037968174416773013250267497542664862924614817249404726214052618068381115046888637449082133264230675283880196746358563680311285299812678636235853813055954163714456111236683553574919492466155564797920011120028418673688395576830799016448875796296491258685619420305576548377868377679327984759203129846113979511555297522023199699739843570807018676318068973089283815428000424909278594141950532856896715169471504109064571696276141782147018001203355298645586551516574086726100849752571575753157282279086429735315386461660035286453057968286203213685155355021913222449800880267923422573990516812767816131669709145594248122032871632005284048505596099323155023107697769842496804904149125895255783920458736550321082343050447490388673277819257358549295953634851108159763747209324134814195529643633501847884764093089711002872057585827117171061210631307511094685870243771557097210739103297850585937053106946972391420812219680550331376801540860132686933927238228000230092688879118240379353355311455928114277796327381977494638183622370835336386638531629939501056987051064927172774374708300083753518740757282916990465342587843476435188873439928050263851207653665795551536321574381067519017759966961662249571818131222034768355224513743582751093503692211189881754537292317327626998460411055091394793717171682059373498591724281923681327923744656865835063908012918230348507647932499718175050590816263393757391179956398399470827688953848940115432403349731153481690875856236537984993773497931500382510802219584105955480863800340289262349113326417291222144509218234618728391864558297666442353960997670703863718419222736477735270515509499464219883859954239517659993140693262514462524192851660361171282937429470812736229679098358051234322477324466363471681438413966691684941150973666988691501016392671536794798134510345450167801957551182412448977540088067646402198288557467602793359016823498163962075273180822773402203813428630259896613663513439756794317745544290044918257999346055503230756498930715937947394061116279531323714970348600507898527229354192857512066305275367837672033615678354324468853826527826258497026648801022634972517886499581745347054814543114250357939197623949100880481854077189654125649582166794331134880344855202648184570947684829665939021198103741793627240082885346763600015203577899671033580486820251036830486390731028621618882768094766438737390775544477908829234093836775228138121552102535344800189919508297166053829468553805313840168360652310844399446351449459570146065247642077121474927812927897706709661389323288998114800887101002085955327418314535359318929444860127539485732899108985381306243122515985151518898678994778430578631303177370652543858148392684843232638333060351785853667140143311410720893819750087162669407098821750605508537741658248801735160086638001621815850979918455409421980235237735968514950009237818523611505334288944073765358814045469213449798306831209415929586690398104577531166586651244842822079412542431067615926116525992768256948876267176685986383455678745875620831152646699033089770499330435276018859088439511949523145317427475189521229477758048917507752647500606041807214936809832989716913978431731586519567876182860214746932003216223506826810454426646580518379916133490428313660592937407683397133990808950188240008666986174652678901805108478270776561794228686301279254052688045466235890163511825011257351817626951915281769490815691523171683408926798471715972296045348669749146012709894153944059494064071954158705326658282171107192179639857794383646483561208829969202553485526743088017503223746884977523698062705615645016751551854990871496913534219069626346786795313718471443454728322947044989722619119769362073731542523996093231735354277881280576835429189913143601304118122533784632061789970979062441219538490542885628080221766307244387501232693140118903728365630816242597843507438751119249546533313361310046173748191317783154843690023995590305051954181777303604779074679295459099974133484126124525176850138996053648518183978387645181713971346660215851089975565274083256823687115395238261564035799171494634054363747617440150754525725433631959046481561418274102867475748699514890313369676195420807941427149451536965071593369120020329243871085768755145565772981973917833800917872603450067632300736383001427410756371064061767865735141965932344395032023167671162511368209823107055831240709772737068714926442595500007956054546686286714573972676481966242553587769829767530515915458004570464231901521826203744228974035576438080380465561628603685233355038303155729683592470016346892424419990666728000329494093056809642046798692368533436480423250741580649601903944570218345845634808997328969986453664750989631545611532781622853661174585250456767602578947152478386787456632112154535016245055363800952484738310412840859033218834122062558617540942781388599033797445398890650624714126642580031428155491036378512135022333879731760887267944336485094373762238979604153095819982361634561023631049581839257223828308932776623838867408401500981231740676663183000851978442596424536897932704054695544253573530254143328922319153684029142796238515306708462439758845772408066613805729457283324385415584301410402385499943696196833350271415459458136370634899231703103895737929374649804620819900295436923511474656002258516197275051535061972365382295382639825965499043885746514251154523592309151939299350352267717406088796613776633482744173680738705541576988532154810795531891538927134400573571012897134588143466548046658818076012424193122506299930658433409929539254824729483704590003914440243628640233246626266500198068745440913097947703485504203563115731450133435025625653838923924899730742185336786096032477760144316568534444835613532598160695943917916776960588235435291598619303744597112239964805598240148585572018984342561590986389656224881778478443288603179977493057924856650666593851788130942214230559957617155794702456022572024783826273526932038751570411029118916295265877077168335428462862089396834650554291813458177416360539431891042302013400350851763663007172517616411153756808649465855129775613120670646451436171440864782519004362387872337315700490308535877080372334825280756926141031296262353976926668863929258117350991506706573357932840616312768874375734837010686943686421601080963237870058787894109206932650949312106326299262868115845068314895167218506880098446862223724007007981312369438905812551335318697996506170901622836550105472288861231727969057966338261454627971100372027818589443911588643750377179389139168371611575209314631679920433140112224508249724403379391740381175052048692301747897743736274132728012295529281207854857828530224511542685520675159361919412571688939652879477478159184727563609406435047890067746555820238469460308710341918906918821336300730324154471235474067027000569564266410759196054491025162405164272007729733718548011053625948257886178748765257482433471337793704649128359598144193592430854557324692532630380155634903736823478631900348693229347498274154069460514376490033780984088824630804685033564010782588960638865214486721498706935368380526736021899962169210979991423080559620064966642631725962332921337881216387456727635315827680516187166614865489854688272097223126771236343647913450677313885850988480284150074471822874093590347506617953416021769262651748621693124384076689710416557840424551495247372295087788710562409022226251477380129545013732577121278110834257529496254090254770380130979588784441487485403366681745835239697059079098478663566401629868319331141735172336315058135360097312560139288693399006751839662916381548479139554694366879581938585314750839311569503388525660694543443492058800538439578627457631476848878808264098248406906644940198644467614493865370505462141208889205693336053085704152059325636614865131021863922299654160907198995363291101749276907846677316787625095754110055012147855990152514299140494081830725439006661209165368710033163045018897817728709924874122060917237778421171346171590268550680521155091290781173603767062011524009680852183762368728873998245864123636685213892978014967221023649542326922447452861242605918729269641803531469233829653097181499228218634410146939915254808343359946262975173676952357051112020529375754593834064380502599970072758423802294120009777209553661928001064586447934927012212861273499017474387312389653168324006205529271045672037645206823685495421558764591531383099869423121296321916382598005422411066089237403808828582561936045438275418145624630854032546366030164249037258105160251814378561172001505435675332500420943517193695684816352101547489149913938723308686929573991018361642706221291647226965205886562922774700206277710014068856364227281516695663750023782221119142480591987271274452185009381233556421291524374532094146802839378563985542620182804424516228727470621043828374243656965884591599309887505645524243655515764613104354937819143739751987603289977906194528207516243736078281772285353361224603363324687800897908703353598118408188098959485676626994366704179455053073274682218460032200945826908438980882277179787465585782995061838538465351143507879658447833858836569318754521117605070453494461406046503500300318812132335494573416284310263092205004578349549214526504042603842785954413782314112279221837635041769652908383294650913017252359104685598826142512032954642006664804241234519077385895829778322989153243381043023471874155824709620493193124626621361806233790639415557125903838284148407176181136445434468537926221749297089232223012633647303776298540099053077516631821974404947809612493681651929329163085029669621776389053865408635432416865124307237965892358313403097387578842086131732770548182069528768572721217050609952873517175653002444105897898401975623020603144459230612158911358904018576825182424074975537181565455018506755308749968311156523526692245642281115499273549760745289371608756558603387654394421586143446842075661964724971338358361300347826871173631992365123218201106689713670307988823785485879084344172407722521453373311544208704475978014940806899442201060494765898520431730782246070121786346057528092122526138182658541523253865741393112738170211853347269849470623082436664133576921301654784968980241139991635611834489024370198464900816228905934214434160297548328112784477201784308924238599135615995893799184998956092450406096889327019215747618121166940415153371474631282233220503491193729449673565853785076766708565931148715652170974344696829716306775507779007189584871254409835581532331150791050400789333513080169344035433102153965807844452370247856133507166513358238513075743014565984590796504787862288625567119726210386857631705658835486062224262965386647008640929419536893388605372353817092606864196990061652737622132222297403166429119583699878002919216021132228087599468449203202109464189218300155816181616640080428470818202297493558057591253686071349179538385479960456980431941885237036636023193065178229384781714568797406776603346981799917364978003437070057042592893938507684318213593560285391654391177082354439875287821997247232672724915733034663559130558952751817061322638254097324274418999080845532450468242893988458486050120345252191400715438435955925251116902036673113414831161566763540656399750557558321970081416916263949789815709103872406683131365938609014175801326628799808455607792960271875720936443941732922614736959801587834701205149171735946168281807351793267224297655258423631614888905940041360335694181279897127433774930497901279016238394848929069205310543257175124268552808854566619677900651851595333820705642915074979642719268832647971081075504444186639741671538461182388670129636127576841820588503838180353563809035586614171039127993420194717014546454570622029648003186001044312695393345772405873748105914208125095343265324599054631156710444644426755782381116608677447755491355978525364482185219733459447624427794143595330983987808800549055389558324936733986586694434416723524509731723416697695336305734821656946138443925263793070168799975739392237398868886932597487483467619054240987629710347251196394159485829541428906666785046077000479133392924761192886102381525649268401188133418282009246477479516640576030369515805366191130228265143201749098510843569182843535281315515434403308970191958359883892663530063651159672563746922318950374784715276848064786316698936438375572559964176639325667551578192763987762484470708882646502061965852998033493411493075231671435485074891401685595562961356028953495285143970463358836713257165607076263514920646503512594565493492638798691226888669238435607033860099517594563076854365692330092751437173414515562275847724484223459080638973168990607912666705277830316386297274877034721285160341001549792889306414246901906652307271635824204686826444497552375271766957061776494063002417965160076428348906695163424518567149267609967695991824077406927220740512487145009291708187543701283266669618803370382085157536578589503053445926762756691016497908592107051779346514133536552832743965128615226278249337834127892254864449371196251687654154845691607954551396984764799070601764879877185564644858030528295002387302587216240176022897870172385640438968292865522139369004021620784754342051986909265391991750321838626351468127432882646272356652936419353282690010004136998036108531187890686310896436113377613348096568883685599271679909806509707286813632557027140772853799447145085027387043161462780247650022918902564567432321357194581920687827793120077377003098745724276318205211251379896295476919332318936868624118860204686446052132661269746389727928384002794942478719162598431077636854839091521437271402955399061704874336641618072330839295746989452199464111343844969419106320697675517890063626940713709631399194303666781505710886258287831932182985841319031555495131857882582497504514441282481998114958068843827087660039957414541672725741887175559474752273261237628697573382361090632102418520035789799876194536586078297464470375726080612058689955903445864559198682346096168015145148154991417596090976157658897952969731315570014314490836358917624958351815878844682822568207969112169031713277356977900788101107754155144000068543169652832873045355455315938269005952045752437097299781515358539133075337433846442796210924748352289990559622133497142258048314151623497036196666910478335734742363117736168652061682835162870680372044753575191808640883037030256394261736678963208300249897308964728935197257999351350042276378274164866335182578709699180985608044887935948352187077337055190367338572579214886865684261083218642666425893942819699401394071826883383642153694459047333810580166399216394385941416883557771472375605792950149396589491353504502980725135124897645102197372642439607264691915992613756074610937870378903799330066125581594091890361811236706983654751629341190473257570117449320108769809346820812227431203894469548231687968745737127264142265838408268241432416060866671591741900312345253057139827526847837345570159506109569273769472622423225130043848255083982004698017787629304934876362473279649640417953103114891226497177237249881130010869449889235761903942489434554088125252891286959433302585923411662115795432694518639512148904585274615345656327486785953293148678835553186137535777704573965981798192775233353921878054615489202393676351384491444904573459539025459329729230736286738382325402278723992532816293717948926330319452928613610054737046453218289690166931589746866310657913226882518792519245977431742381974206734317589070614798265618171128996766164105982906684302906012743992504749729330009931557572027256016738250528514521847811092252494277163122998801583047725084622777139676623184338985213014021071065402324117741052410312884450784458890393831258374628278159252323862632207951989695975507664219091646490235426895320781469092476477547364632114299667846212113706050272727110027199185254441353694372880356415589900398859543587443805524709597740060488326955918589929538680199616099966720082544125190182608925250665305123144628815660370296762379075648799244618372986613597346924728624063624339023985974984220073364896988994150166719465024023194339990000426538603645425640426955253725497131242947726611490633767519297908374051653666535716563890588893791857394101127445749466075908270905814372859499606702043632548035040037472656348184629895487191713570396885663442784359618997844085254398293114988800134592946606089901257166061709061992335752326204722834408652577020332890690544357294934283256709103953826497512156967258811802408885285770008063943071387172101897615584404674991093703849013172296296081648484192740136726490222931492753256839960888017561782027225216960879640957613439020165678049940976381260214631753526253711128100999858853846497151604151929446454994484524150446341327568057386205319762549512570409307139719298427743170034053403166932329412521772253015775203917605457028870704361152048276360110606532928509208390894007196152765911614891603836452699810898345890141005260972983429727691276568277681410467464441951393340667581728001381367454128280706021992231943235156552552425378550123894738556031878206165681938614689796490092441276056992173644294539957072356627822070734444723390676525008816820500071576334045541428507390957489497633471779191304033603931280911188980622255092063795998696664626453998080789464672648444945167438605658044800710543706740896060283205165693869011237479587382398410925171862930250564059813292438694538108601849680329502879922313257408766436062705137633834760694330825008189378213508055941236398191674140959828272546536707937664471975358564109993330603055311251828155614745227762444488721315010664884655976483627201832052688717047370215150378354266683819280913332333129715016374440793048745672900085273615696957110007821085152547981594728459569700494034349710222212361050678248114402667963927125913835956467962827807680652895011232831215409898918856251542530034000207150803595592912544465054201535530431363659617153017137388064751324889127799173680293380858944631647680445233216499451211725272904397568832500874799537880873018013975050942871338885232232510372739039474248962808633031307577765832468548277853392229097244762786802285952140118762448730195923060449733491320829965082102039331555984598583015620160610068965623677503059168935768423392428784750844994323222468333652436962793286411217313576708010766481535399557344085722931382495807984258471466218101280761532077237471339875432822508150076344059691997911785383203259393004515333716262708050305081034073715263888222172882772498885941552330130201419564805535857189968968752937764450715176157631538667359539690815221373649676958425342699498793251081816562756911837876212628588462085434352623916904523325069489020837069556731343219627415030814745248850895405998519507485978684992634530592067343067540043830912872293546866059218628407516875142542488994427093910822723472437790708017818722145121334742989104951446687775163210939733672751149557642697125388404139759206338821785087030602431357057091169454144194009863389715341086472466158713422052620910206882567532886684013377487058321794487824293928345440637192580008387896050716406022713506646075752960743081121574584661283473271863816970780476153089873751488476496840763531299240692388008872944992683347501225010996765320101331161639769951159615726633694241711222698628681575305322387253081716781283437322786826596207477052638139257732839297165593459813308078514431230241033601412418717979585282191776105236782073812086626544563781348797132547043357477384686815326175169308382608102583662801991201511374178364501052293396587198873317589327007863541191790100995265369981803345167306002045189207947337381641025644138792113406291187839874525501607802093119890721572309112373145788312127214088950603128613293478466954590560794253398749646341810353904224752896667580612031054278470253548403656526046653570106626425067838505429877631924894026379545763421602716722687354958725921151117820528133376525974551538236862828268592531350750294202612085223807006238232192729749014027353880486930364849603466075217656587948246135187737606614645983736706600779298268064738215367264772950004172392051961134237459367167736241184529406192424256937230952812567742339215547676454901658803065057126954268129974274445180856459493077999345280443766766437796589193250027061094869775213361797304730757828993482480149420135155112468173498365114773080843153893366741676665837039607470042740912433201576430389021126003429240199877331225351892236020654648307479214834556986959184546185954489267510151901969968457651365595564563319451275456000503939375946931672514640024142859569958205878684223684528902745296354290641506558991111400162254883749507184848847919355715584039981873594751390409022254603536635492872061742653379568876714122271431066377829790417831182231237991121976270630658236933692948621091898193519008912155111476833804943361889444262791555919694416405842729107040991536397499895973219052893415496725915188386499926248125465737008011011880500852703204408245855992670991464727171171342707469299520515525126860003025995578228672581136231070519716986242804535732587698649121203462034862164059633044087749640635887332462047793086886406399982880528403280332727317519239466556973044397590528952787428582196227461068526182626065658009488694270148518265216850333441827576068815459457237394232078622803344873844175228619674256905744860381800068533345165007501749375344697501499892894319436541708808226259967568216775251319605077195516597733243564096477383830187416480371518417846855832164145826404665940876359687829056599965850938206120770925756918107709615347010596850590015998788556256678659855749727039068019963555631487794832815396455743878470144812639558162822481234088361715831765449328871701551737078782207375767412301983015204995852142733919343075294605832128727846632062542051593985965821829444755503736961212986192783291866044151755576834364509575689003344052658584507959021055140759694882707181158524466521951316454505487267341957380023054091665621171679545626293003162584815801323061791842609832234620210385195388391728950143748419756376934381038863464496926251040809354807772895911479566333381333845872238521631290350415952655747062054187761408410538009493363831780197039953413739526447667224460878835682085910610349657832487811613333513334510973981143484908712009760581633605390242993648898299417836013617568845361363757252797114242185456091983654631413761094897986181381691948723046840878554751317857989285950472305645928294304757826486673092269520729272372671233128305208412429540178473709249041479954514450888527459379193034245095959801398037590488410295754055730357511570461732620579089689403905726315719067761184138387764560913420599455426160871578709266022820773880971246199310535430516095471550736982097599808124997047832933889452529412609999695753608473471039873529884978615138715517148767000206791514314067439405785809190071888602652913789654221078567740124225289701482987876224343171548556449110015020377002805790637378646427147313299206719920428118888600347593099788253110458976299448162228471521748484264362267472409844542611496293662199619022062021234973444722365524989598537495994099100791328172898282433733172411189734860890040463120426613144100445741152329442707450355418979749399007978965275042651727453274542944821673989104433536378826088728701376451179933070567785820379510386727410382864399115550758210113815623120076734542463486472538152208299186121353257229541576275394433388704205144025405265215650265225896806127833013893448154847290771505536084171182082659657135333462319942683625447430102662838814114549836880529472626839852368860416203029864796648240378012806305248861134339140078401392639032117598198297997609889298898430433128207303916113279224706080021858495727719657105786687033398052620454112043070736064425634939442226498086446952196338123291255544586250770994098047971283219449559310015208286263738536868766105957207933260489268305992677980048119750653322254096613807993123832528375120519319075098330291195992573738567446187383325103962939070667914618537125567290381071607274493947235018709891242654171507954598412531985731139717073083904456142989212908083152604768609745485801095402132100086681007774438362373486909718466750342501558291192797171133309873942489754614517328968601506326566641904687005295490938800775516627639384668347099842250207833696780939917474811350372826447874730029204601154389771580158453471781794605126574887680687967441987394447251205283114673058369721054632562327951518151698115219528386055909860639618993785325050919199637894821240485196060409067635247493928975298417678256028258523696296584536080306460266485454101547361405254319359671888696855818094455275671655695778246871085133692871390694412213982655470154687131136306267161568490330184928159333708154708091966039134466671481162652901224028615634917424417769963430458329645256133139043474860980972520469591188942262524954507433164428969287830539600955192953118583909799778318973001807656040721251243422494417274240356633762157303374815595739445899342171463493900803005711034719452251960795825982665020574398792832907752384292958682549070525743822717701472156385945175411709064448261060253708781983654556084234762362645232716722337905788030611278867971184117261998755857081809815345011989409112311014450173849915117243112797433388312177447543418267447933909645497453807663035319253426399416574305095106216922788590456433990171281391327613849946254450565807859167472817370858611888113516848597411387833629542505402565990183645237385763609490961720456125276974752996343476528578691024460183042471484635787592195588976657983067173148255211564443913999480235191850082039546695708712401397070464407383191876104912948305104086637764229722547397960983505942509111684384934630743795217393835864861903514325649829478311694228038892121496656280114656796307260480379363905875238236537132272673132858827836319691030884455265276037293132576063629676882152255810198544269932032677136237326043848304869952118102298797157536361419359145359069412557837851006050006743593095282459468085203950668557957463110057303422758678253313382794777980857424786548643176332720950948573965524568182473892380184367893264093436682840319160802855283857444770054890428129811382441191055267191232256249937271745084762762593274158380965993997688895602387324387104185472658011948698363667794622841872543234286278177593961620107840237851462242409359720093003132903371723859580646683257110202842164396026998946287985484062563478618285174232777938941694060777018902483175851228635537447796955283600561887376097761231488697306436134281568671348990405922642728627668641971881484733875342205142215960137009544700172940723840963894511516322669065225116927058694889725085516913317874306248870543277152480417375235448592577508016853068829201314949827665886821894867411044380853894469823829095383530109284978674651681283873659230871689927781289146798796403098784763813314278854827171903397836394075210345891109173862999638092013101479028036574994507224616496281571840835093161903794292795988688029960028772163246295966753066888516194009750802272694571073396634040892727948304907071279343260023306099299742384681354806934336834699863588712015402748344550393491790100020705803237720866197920313263911910560961968466417116338780765439182527922634629974060149682581951653712597286778809198423799704330323901204239402613008518599694286322927721692748406707961555061887262662451713707549154305039725759238038890545398509513273630042738454160524442694937327215712276502311339163373036747138167181418429836614600891860440511594180465711716904415495068103228071930375337910921589010400866987181350792412173499232165642173439041603723522297624396888177496833328547013756119613627201914130848546360347881341897294429648615993781343706415316989383867899496670204905026579437894627804337287697764672227638233826310068286909890077106479792343549268524774521612988505711704466395943445199885060943380485389493263880046600769504555786349451555296228460160543220474040864448202241572664203736197396087171887611604802027223104014610689074663838958064757592356550778178682752730806423695953428121761430742348054475264285439428973587117383428354700009998801708079937105292373503214128225435196796781044051863734717351580705926968887722511868032539368249727937660582121037142084414845474225192828687113454650398258657699531778522652441378581775190598986893077980145137756980769955333334800475325028484492578490576946379965954923268301075616472369912240225249639715405923440920136694094709046344388969710815125985470250162258155640811863727979800961703749234001086366605200094462856114186392192602649120905799638058408056612907364001962279341238973473574304233095602567483276190884989975797385823849718836017988257825698456466991597388960624788694767807339502688682422571731504746357074419777660282692650234541858311284040976580943501889806353153713038832067743449152811952070215910370916138885164190173741415049264166683920042447609903846102898720284581160138456062521398745882924185452742574003867267420497728518152795932012145757814716598840587178854838582425205718245452652299851667988878905268072409937140911285364034593739579782986141994555602376365525196804423071615286144963673895824456435667573880902151464858438841206670854749501369803475606154818494488581925056748741013779894171869632755139030738278771073717231094126492017664867735702236911259112907112488655650238982636055456213315396155290256389418319048812036913730935418644588107422826881880499266293444890795451656951392871237488668560132227757926172679436315473361421722189805491557417255327779558090406040359212491865240559950594020677689543491699048976902688529985135513204247824022368087381078945853449188239314110681601979860069939726810545626936508434703851528421592268122704380033347744751909877344168064959034271171209655858406110503830205849536645267233399517374674067969354065666603640774192998536122599686119111116429250902749286889951757286626978137283699936009627292323176739497068479921046479119231074852227075175770801348786430469579707553847273154004424377226365577736416105244948616131914395172427696679803889212890448045270669328707856952431482697519555734871118677677222560486376662014906257025936849802769608477499257858399002553050677121512779443145351017298652486092140262311064143282056358767021902251790579316550419462030314329892210594376073026615429103518553848489153917274828088758571001275110435751207645243821047428053788969628382941543156268527435160487449481084394056884496576378646589372064449154299277923482590981697008618753071516527576067248668468507341563228893499011303886818489991677060327979942129459447785533456163698697509765018997249770456620510813950074012593176570478792690897541359450246144597419754818173874924093090186335036329610720672308419471753028315458295809512171453002859773385713882125716693921980408311650991950755551784818607759577674367169882960095809669256773254317578581855766963339379204606869600376612051677283258295781042075949489843235452066961372212013361888944400174657685486607427575929981878954282896654440599884692233503158596186671810561452394760002022862670525476573264637941698591108476333905952924366059499816899908645057819353299719305018877284700483357816295447122116990390439582678846658381853020240575781938284114879730633892879813376404322326667054674336528827304713171578879854384838106585376070241092376341244261828039203248788350135673361452906166680177375830127796145800995749363454218923676914620790388500609353127735862651782282458474233476136031014673304696899753110940258359558198967955103830022316422663057550843028045680319245213530180460372467744889334176726652056538495416196643074439265227313345328143961165799027941047773187061955128914482150334517694390001944274862084367081016109671340769970494183554709313637008718500472960802897372564399463115029256110814345587077390973057764434058619995431007266123143362224089259099198331795758890972026338038258166444964230928862319906540681106991143527328886375338163454977446076629183523107189331374285871232324042967693302573620515149713896180417583550660123052571062558039226853184907965735016814226309388532788474630056270936904955231339943183035339475131640706842615834510094079679659101835458153001519047733651983231876623798533054041962705919274535057267200910055131026383849372559503292184434848518255380606658344703072075601097370799307122151939444086699112844815678947332970305264725238597040956342815145005000581248945280522499458116370579900867947022768784214150242869275937517020897243748185507721277241475605068596468511599806285274747458640371293176949235179488892976367128103073613267898722192906318759438350483837233566549678396951161403160002154973187123766574824717408386732023292513706500839120829944554895865207055179167012767845520388428681347279692281698910843829478006450093194526770519799924820276939459192666193340549973939326822687982649513617289266642947500767568195317819842123442295229997724388268751964491274575658879445930785470531293026816754844978756746991786893746046805022781512434718551795890617590087540655697529397453150709317094170428000825338592594950948683649738044609176858464782359307969304700355495811111753818669032136443892597156226826945216561590597659137263043168237546128469530263547737820161830208381128970268977058086218926812740077612226176329824871495695463627563611909686622541515375604324442856088483435750318600896484160711427802853403748311713260052752879968072504805439245180309143147681635764253732463864623517104779978317002467412046931567712010774147398556482827879061277155686476424587323737113939339704537353553060626197774117765344185032001877696374710415723292862503231695645479861728590894102825579399294642975037458092150382249961805799025321849136849663423750778833823736798301455614150272059057123612383494154470092019802709392649336359380061939549430781025059007951711524767198412938733861423006146475787648811022191929381548902033553594777932030477853852760055103519819341439538034833776579275573775863095413406757788564668763200039332693518469034564415366442006392481188168228318740533539194522347696481685760574929796321869823195210555891980041494355295452695685028397534755624372226327226638561000742568437829061790273119251866811376717301061062054049229534880950734488484005760083650399967216355617299536844638042616931689156291713840409098382767190894808858322504360809354320982174641575718141129924434712144553776177566877627129935968888461235909643235526009144896907137778263773863537273133008994106603572567140080059298888171720238309680177032436092923391448452790471188580136964872931305759981042806486986312487630808273168345978023656978618826637654637146416714413152536362102094163463933298851217778725396383878755625517014728693728220892206897797037823564012768388553486326887921209327767027201135441918093066718246798115787803420517924860322758543237626226008326168228574140725548000493867174016344665177678532580255820886743628726916178741908654919547941325609562993430347122149809535184120130264560545510441781185390852991333037865803711226643640576060664622100496920021980016393553068898928684731243466579978909098401658106683947477214424150995237574920083862287404472746251393306338815409294893172896351236011435156504085170376499889302419918360875682919495183592899419401137373957541938970817193971019432527667303395800050103683339585221487588134564820666780058650414594237424780216336387959348827138133982355596189785228590593599775217273827312151203735122293208294896592675097911966974681037765104072183538465216859062264312795590976407752691863427115078414152488268068612942015226591557800207482178686563930862794394177377884327597576411993325255007543998834771390641235933944712863117823472680047408047286799289376454690595736378674220438284615168239050908755009505974207842503602917410859093055827998641987182161643461946191636481337117025472612747691976175207739680206239966623344277626481286596900509547629792933332790338631520923311296069790626314651039430069240077399843706371995707171590545472026241250257109545507394022977355808438169930591657987506158925175689877702442392034964749589594219611376470756366357894523333455828295422670535136331702671575365850070704722877515102818931661438095198978332364419605511244094199299205154071236596256373334253226433484494976439699209098629149141983120881295571754974499725061190083674670104015825398767610705059217871902257512165446123932970764610041710971320429913453419561192745685742458479446274018225822638220251708187832361406608167148982090499389343920301677229751300633619641583901239390986276572284944227409268844896062392409448909459841299844904888682556119528465979357884707260827323843094461484202507615667156095193098406307200150155566916722942522479905698784767897611811815458805609410413854767657145527245324279978042806616276826671628330857244544939502208199092742290591230552136297268044922561175566532501840162883377399519379287086870558839095374676418111147485762568318179584559565806840920019731347127139076606853386757607188460025351560997120454619422011233095836741415655884153566820124936452854748814229916944716102101587631290170356437697307549194739228792024818492874803157629037902197604631994233403033056747459692895869731827941947879809253406050524977841366101379713165194620012095985629957491396542449612337850905280163273942971071868073181986968831656475809437736030838759930469229704303149753546271166596973020420227761584045420122792921856400927830470153189024907180018417369222335221732670850589339419653564331309207619409608699229625731783925811318617237477020674278509438219601488900193618051966480791716023170003737645249664845950749631999744490741980478075830228275179238443925705800870299145044072565358046913524362202219380364066102213068030485567097557393362975790033356263520878445276002108434620727345829503289152611283079212033804185151625932293970304171164571238186435474845724001295301482004300798591492097220495782961336635933014766757775792853962793956215996565353945750734773995335789821436639604068003841103649259795046185852945477706225085021300432172771126139318617759567944970761323976864228048316286607557859968638010695003417517979515372811287198165873692725686525257180648067765998446049258731991273581368974210670309697163967006118610891732156203526563258091309888450112537665003554946228861974890569068261168822768655097272207753914684711821186861947035013569782247553262320015176935659439896791026597717600157152873335742235822742772863198048786711341329599323854742250667167161518987756166112764168529212505321306826040616432431759857243653133911384347439145799243057948193177389775333997377663449409422283282759182504502326949174916211761846838818927674936182729448827572936489142745990188981313243331565717883006408162215328981162514465786590836452664928222205256794978899648615886003880891015447241099661055471133602958284264179453727892537427320766861314390477390994809433068728820588279893284441024509073687574576087569842340608634799890795072340028234481054819805907229952269123489468804458485106910130323827510399039573186197910206429863660984627810779859676016622214989259760971402021354828774460995803756797105295042982551004228632841981361234567767424805851698276311181172560241090703444736073776209562250086602147026666795947252497415840524665145524583207810281135426104196002693651472002772328633563573721518648711039414018330606391682696329058352096562669169461701963630259716147363414786184273252282204671121961660000530684899202464188455349978306315213708574242727005690230165083857132724202443117398556602246841464159050551866477275744306042946617280565081519402846254877238904918905044400567577245896478172349190083129940706699503035210154165101775905059601100695144745548665612854253635667816363453224681699959010338097830326764967020606673381515491845603639102607517931304951946237630707534951747917893286528007553644214859001197160377596638544397019666270123349774892904539072834696242334549862329870688782651050912788565435748433804400435676863943401325298826850809408971727805108522430498705144594208130008164114501330507624986552376482844500529833793587206775487349652376877633697488212251988487968962657313317834780300186110701037214867246142891096622268472097812716412693108753128570586407982336880029908138255924264577053199745522701081798604142676089255558124942139085146480116974456095483157556906770610613739019510415741223661247665783358214184883666158540007802494675555178357863314077980600819488488477574980217245548337836652185062922416570399363235780554390954315723680219630073322703284789598210175231824035398578045770471226867686762654998298813929691231795303067853277634030359279102645528661377552749446696187178779464636891288655523625299505083394312988992558891642776500190713132205289281579788233673266323873959549824111976605534964632483760792354766003735585799175881015924036987893081466594273342224023952480536198763671203613049070015971375531870375174736391265879577624660730172380412418494950957004232145367941500493697959697571485047771705828822535824056232338834895172959748697383782017420633850943898629146729041594841864090702982286478551922642447479227361090982935720500538543873048533471856588183828144100839210710573829797434770733213269062508824833639714741590192986575930088705595353167564578176870551649233272072713351513833547925905420074368450396550314346561803861073044703235862542230404984020268216480621111597626392615808003524218387660058315297560817997137510802251410658931012866091969320907623960218859001872964175709490819162091084675938680490808523818188602588884893642541070765411486206134004438985370165943180896915725269523151084578954470810009703729850256730287173537151577020349059368149781867245131008363125307825668645918074861529159921396023698981735717993767101099698800139132190732482755995501126045432860612020423871418818539005047785172948408198009899568514744813524848070994986382779568717880462035922655399417190731425274984356328326373577829398975451283920712399128531787094894850528732343027914242057278755013733677361577678742696589368684710750433023011510752771011697357289574714897408641925780792476452931440630104242656426629917194291969273125449541107656192607507235007002879143689853887301705368130594976018457709939774402668667612698671540725513236693608458409993636254479065766000185964930048636009456831351910462024992895872863637937329094237969098539337590784152282321831759195049191342319526950096250271946102374716234023580192649149831690968378288607404175978526347645482210279996999585987229224117551170720734943801452628323085659455714106389678679571574534980829240300948441851611063378110044073910898941375752549849813360871177779600946846712189576192564957340601143523980868807986216470767878827857959416389594528140500759762963690489895151818631201659262562541805953548369282457562208854793264472693716421994980992489147534823276275064697834406245679948991587497213293995719531821596786838371347767967846891330536435939553405697182150740045658406505477954497329989665744847953003199334425322726339280490158764025201822638589625217895152557944573801631220378063694932422882212080860270430549499539880282762855582015702452671407919405995876197231425011564666890840800854507253889906749217400069947265633412509526397033645541760456179878667296762324053580256631151690621043416265355636102877388870278335010835014714734055091476601934020855091296875788842848049932220695934978494026777938192757761885849189105995270828560284936538490322732133397101220028831034261258676519664556133134727554806376501458262265191669152486281004396254704968210464712534922503789009334609543004688560030687193575207955873250982206204383573670833840855759341453944572917816974394041618584218975499646251398924628656926043632058709974873950809475594624563478885392532444067947710042882886021932669509194282731363908425361428684496205873142603582468581623148067825110720653518721411863901262098225908891114032550990213763077992133045150263149060237390515928714731653759580084751237840553449875870652745246028154641745642833373776537426085442539853179706695180642358910093284060722446895365449176936498976641596193869099605776200712225307974202446073959461691772745034420301538046896138784907874949535454398808380386228129327116105855124363025853390606917299718861307359980881825051018589408602239658209715429956637944768937687247262127817044697800066647641659007603898649866610972565563879344813334356602214695794052967411341556954853954529672061569954416458123799880709350098342984724706624944517594794065819261315553456051866490153538235442906466216250502915950954420308771150515442788910485150571092477462771438603084665088583759799876263609282752202134939086998504243987450567313057902650162862077153677789729820273517132000735282551238145428601849529963070023622281189094389812846520195305404484728851570080487707253339657501609301513328520346414205712051251415895866453035051950455615063858026808029757206688682530137366200841677210469935360991731134680610117581491937728754019111591358083774981661110241320115109704435536748600494299664608386587462585308659244666048975684923612388865340703729883849759943365817625605057008369230126646996892280720202220418097292384478872889765704193793604392375775504943370425326442417749444769536724837426608975656759142407158258394493808192872896043390678499954252677996905991704576519873671141476581608513982429508114164179317387716586826457079581076414002275458151660657908949659966044039400996350385744096199912069359622093469973547559259255590829948077789372322243551238526288037344462454585804100552768025255958689421124223646522038724984954136542073315827645146856712142458293726420742799550007914262956944841155574815245150154490246403699465886695587513146551985222934696443911937568694064977730598618935981896385309813142727704089861817680917982320871930380904128823302202083518192948714283107353337462109903883157333104289763781579736561794730117845826195851474880835631059262911027090192153476535931515619683159686946426987838874616334371331636147047778671703613955490285699861504798996261660072165471636745492431990008820940338934490105812298400925381405939269201399692845422053908938303727332886013657646524071729250477325048823554985066860406839418868812270892747832030727744572741856223047346923324811055748106774245961873498314333836767133231625265732325797877732569510466023030306304212629913269429591916235611650295327751138230798261451788092213151915099856117696627728793541740916891916617843617328926767323758456105665343211818151857128381314852920919938067292060336557365177973055551491213779023831394175054224184027636207379454030325095275321488908298222684453765696809250506441821852216935182761712954381455498020368288679528875401773083083211777115888936992008852705028456600523760332157706376998962355167595136442149444246666451126114965864701390768953264522287633302107873883353305530846415178551554914340508924918591012818313502506315196051687638298276806750579965875810174961788026026815527136320930325287448877851372212727662898046959312974955152439393367522217379849891453693398833895173172358382959044978073571651679153372048163575021712427890466460166285819038989209727217484554558062623334320505638802524685431918256075467213970383454407159484433171870080394569275088581851965758667446296492506865207209821040552442691566411496731091643552414385666178481336273125776116915518624027757724304509495920324567410174989637983362316035565988276124678261874519080779659328030245531445097031663998459755176970865048551097000085286241062335997804477184320905492837358110573203161914955093921423034618434566640444134673851204792557459801966641634037329617988821512676209801069897627548006193911871900046711366370051453686265226391347090258110710703209683887350012309977690309461615993017728951140118672970858002414030980166828270468946889744385570977698710410083195966329974012550066666191735935354038701811762740480828528623225805333458296582620934034308144077185111171854957311618599872989528536569526807927394155926002338359402413509973999821626523909371464083954556965221270403418671153125614306282321286757688710980609027779924150545074898645994852410879379427720798537677240830370023348387368512646733093317310432239016253676999201338405149095443714455468104306265642404807242531985322984178894922892342153033274427786828989102407217037864472274341372282095256137592989304210089869434462193518500670293037840619385547278019435987450889213831333761534423396416791247637324723885693829755199941116028560164417708912977340337011635328468010560260829503357232148190352538058282544839141033100420866643648492632091577423732032892930177908785628363325313594271684610459467366716321104621535694981339031136565432759172277846326110410446987458072264124335245730750988104603099671899694534976939487712818429175585985456339513010272115882361102085847551124204712860352123746393996699489840372377380780497943815623203532632153624142481086618765208743517246834468577795283144302433255048911982572197355967059868941750503011975475147178682412597385991919823107864225891974786239674380467495649589799657195363451473019574932678914136986643970270810412449790212226692574840754020369976444729607668335907323895880881916142973182176827180840150997066279705759555870240674246789766116462808344687423134300987802435427057533041656255573533132104509873270959563737317348238841053784383616634877521933993676896871025791850858363939263309221438872822855612678651069469697079820457225848793145316848869691093396898624838828023921911758692043422543520042704679114075577296577480432537347925797562772118168885347248797268590896025877634818073222713939797937219116693140582026501638751795568438659558964731280873842763904124814229105224786806120495623287870771821661626074153102351214337390707772288051170586621698143844177072779271665372103491761855695139776342013586908747805032626664961194709794986798493924197025620320469500877086224246114190876026704669113798870499656694963043074989242257934141063930662568242079850120821483660618384564827331395109401034178102847731730782264657000776575966687615959262389911787965495816873063534366192002028810403490055567977473913164361681665800634190726338575782106867773574311961920978648817888194527196423755385883569933993094589100880264106719097406446608638628487819525565748233321359001908365725853070600732932749396428425757935588215958841744674736094772527806637116512119238061877478926188115306684148109299891537484398248762297969790061209351437018820860471797487489106697914424427730252130266924312585517276482787020108402967324243504868319488459901792649187959307059411565434203289264497166277457117247200178212695404402395077712205391615756465060400493800049426173433577849475405194685726413066818822734231415172079364045598151862379577368931066519482978103935282700295823719951419971321774778431970617607746160983835024917440434454806576192538451861651782586288428560308960500325708289268943254511081778299669672832088306809453798600648312754736547618893653816266937621041789634798839258056943245777302699048033058478203290821317198566308793778828905168583485484062612011186649885198795287982751673543551720465508578014755519711883591072892669910856908221348670509503146325095776436625929102401632397190577416549967044490426410195026426641609989648659650536965469193155039657534308397062648235868731593755915585808953568087501655605668418954022445865844919714708346271121917216303875637212439677990457268015849877543187678280510254875133717568011122793926543686924295046699676451580227175827714881564823994856061797698200051181016551389753125966704839869174455893973519409939763843818556240542456063139455867613598596325249880678922921049728503793227491978314046392069736685419479558645811078557069314262320167733424658813168242311908635192761283494850230625509542479733337063881114669053625101394485689954312360126994097369645519754840122611470985415653852279010237035685404840112668582581855870298322615374675862675643632336995516778637849993573316864343334171186416002051225444051592730728821137920393374231263672193439551397352299660732709050117264285460852645034511887987031297150256274765036726945965087584548288943634419012554324094979081429458278195882625623028027383135050589981864095184381712329924383272376625200699165792841146506839075040298291221678598420989244883083264513980652931796365523001249961451955111356126589564972104674656756485106458978480352599303873162514190914111474124365073553389312145021236840054229405571535601701372428024827360521628341541455893301758140036215938920757206878984397508924232704132370822296203553920482009192443096765685297949845553358014224029063535171814959963608237912572110610622570075789238831025961046191565887660904004391304394174358834932428435261278794283473218395802248693204227226633909918251795454861700011262291993666169242197637883221888593521789712424005485145039606454616721779830497305774727226024418068929077417697238588931634721135767092886883436254206172414993313793683430743652204942087403635374188922772157355216757246663781091041469914866923157851121419777942967900460040044954802762358588865589001092848363782420783279758016071208594001686597748662592893881304638221608494301638219708970143184197768752564976014597456901051929714234526796732055900176766138762229780843639644423906203939819091299184182268595543720112591949324004050874240664244122947214947944731759575073550130013136629916165091990776105480794498210152548448363104146090541863518517277970059793235598617119921499211533871128691675182880659754858448089583785764646186558906348615236925721089124684614957320542853244709402947920203675488026710470478491302420388917937770177864656027343206486975851884702335996452515052291912443070295260864955937599756219368402109271625609610826188804305234722385791711640458551814938260885379523227219711018761225534847361468434198078273120286623021716972667145764445653731985610450440521198945566869908135102350480386189385079966597516664920243841827338823439280422611912394535306374745592204109020684511261764370796263791110584266473956303552647729576778536008895977940952983809275859930822763520971635365141779682648892257265175644149046890900628645800276189847974970520995249582871546839226829628010220748207792147414879396883262708458118385453574897192703996293227113989085555549624775219070633469888432615989047766624574094896109294261321494131702985030883686140811671280729726076748564212391294009660540578118100958111327655995466733658141521588510112210132376260392574007366871493617586929195278321355597960734850282242303305868483080518328671449282547905277680962046155412742793462883556518395649609615928972176596129648953654036126635098465067638738349722375693824113262304392923657969873763512022417353759853735354258447387014833998102619101011701189777946017934947648734255662234113693635045807108315149025124200345389454368828381038848707006423267866479436495113261127276849277384923946425729204542175363914816500083672564047363718165319197141446632108092210293854359277792534922244006581286580259376227102180186629449372960554993583427349081473962345654615673515174311809576646986728279148004372400574152161471103558398114735476900131034246905479846997436185701757181177267615521052383460394754582148699260519957841008425655534223566006363400857871168709286369797777778115956466859604396904505501510525370609558453389741580127223003357308904990673123697053723328147406350025452442209936646158622625437407839818149358134566416765161503396572585761973330013452493519904865042410271702569238530979063605055061272914082107460302205703327288775248594139304323083169513396039136742838253321779104835802755484900133938425599675736918963776722420166372841451024855634481646098889697444003148317737054348325875360483336330943064620166681893651439460598025662904366733896197930581216504836222677234275450695824898720921420345222331018780850132027088286324309602358650764853884637761774655242075053055300082941416779209436338641505479028877856601683018854795650692671651929886917002765603680255173128375396329790486497381032263796659769230359885811976768650969040441608338057375659598627634653376142397202357890394925319466549628335256051190976047059981208435500920944461965797801414981852189853756594249076674313406719795543914221788003490742340789248914428799370525160900649335803661529740155828751228050331653629018811901029268627923283301478668193243390452503436747638355137810491174773171401918400864931574550526222222387525583390934946283239560900459172896969561996617320731217767487440967273419996087600763800055078148313490081742994565681962984943832547241956345424779405813710269601554371453083748385846995745825574944588949626315460264084425165701229752046337190992994414695238251900670763558338536647882424997818353000938882498505067520088861386854032383994478020944903017855569108678697900834032263784372601520203302006322090414226408659324461240735682497471704390092745933082512754705127929235193949346410356314906076505905330458250869775805686623467611788018826282271285212869713491981601983398287395231378514712713487426112499843228595617469779254013116436554233537195759216178367400592454836093464256674952770171260702505870316015455110059190204618540444320009117461501702018179847326228915106558876651108216006819469694723241839393594722462032580077446750434647033658935012570081078397520245234178367554399833739906380546924155284355198178046638160973496078972057940069043755021813326633922621093458070080885352267733290552008663617883091007174765927821104904403729817232674413986068652575332942546888199715566018346054311011530174307887384323523953569416408813787407200697763216298240816070784831168234699925808297274873677785390373828662577953876675689666514774444080786247115609802103945794474947655148444867904025189041405416527330868699921746372708594894118846538692121692000761754658517250564703326108631980935287852402475765605720658814532691058666547375240435147596950339866913224640939221539831596107115315094103650401452333370921251789648530462834678658032784781535519222560240746001990043455261086749033741014609278979833709280437779681924169333249467815086206086165585013381946265901414589393139433982668659928020737750949422261710357169265605398877726873256763476096433335591598688562551464165652276521544970194600204332873724092999946613656523927204419103014523389715926514223194267368360918314193113128318144621690990552665044436435795084112487474117325355410853815536958663948646262164954043252961957899436421036053147741736571422393429307880615161766206195583582377468581330631930287344961934238373932024369705153144623313164648016546022636107115583480936591389949464663799028528881426961469319068411289001365820274174999678886166448735888728011933606739763562858807109496688531914947330347339812386086239814196449016692954424140329636544394909575589763075145035540433300027434505788970332689367775476298840253395344170415030390232758364176427886681664463837057846720500592683441450450167887698902136867225134223253884734786038589109886012414536983552007169305514094564113553659586493150002175046734808936208386643185080257982648965199412476096586292908467075873802188412761632340690693849653413253001313971101372993773510686007476960833951634824632313993489395890024780465940905338953682677566345654019319841066017381569457013798947281819106524238704607006648135738669370123863112364416873139879421023868977731980690535449976308555573428625879191814644944053381442173049457579615404923166515947838489364116867699973220856450999589213112790490312544998561518320722068158967221657218839801226204550780792791641889160062582425579507954329917152483558176544424810137610883422336540297589940481540707062484563299007902573493457380174028088472321405028431375107240632747486555435835826258062731236709711333034943847849878748340233722267906594499024156994871476805871384537379941109881441919712074927279696283900058299717521453229766016353802529049611196505643218888555875080453910380440902709354736759732025448196136416551758329976728477567361694029283436421833629658248816769451757666692251397057383073070082231014401230306797769022223834833898299187483368097637164134114572036545540202331655614048430204666017558671019907612800966449820937889863203199673201709113252114650391854017333859008750395548368598436558483685590889493161414765922997860381420508446262678325929202101842140214617884482122421196378750466733196615779413929852186711039382403107928744349588281795118028090570633615296196855755557805768245463870144898069991506015121315850853262719433753726174676523798393519474966777888450651590304466082722066090962443155050103498043131351315716175641359055122799802493870187194380495549905455986106499979314166710585256075297391129083461258346944666614073232672120825229651084381912319620136124966692882869469655503086852671716077845223340484281415753241385716403472038214836094845198663083476894295653761912442246441130231995650239087317925512575986830473417595844273101105173297130987694310370303589126635904870356642069978982232395960797601783371165515632647786354862011370261135652491239610267312347556013603373627991892965120636937646356170049481798621010569363591036152029297327499476701450625883337105902230391889438132686122012295934780034714153794664778692410384860714823604266047087989993010678693714725629133973042344686505007264113274263376540999428733531306610910395680979512927000651496632517760419954606960839606274309941475804362780844867807135722261973848018521295293621602094145765219573363769280379342458521840822947295336247039042387571421620990178993954950443202547280384635872560934500988437247579883858699840065574986267370757438853202820623212452414553332212312670920547647049156467388723468281718608962040974248836158579038108233831951020168676208023885101711582291352399212602137155095086614056686553148040206792257930886561896900002528489182071920044110761437977795961956065629103320682310405567552177904551900207671318036681775833658324329122647719515304143837018204550829139712688708696715150006433727493419764308780240456400091654484501153102928987496384261553540789540901495143131753951624867688631113000290271502728423054246509853834842142954154380477041902857849498690604849107912042118622235109117223443496156411179753567800738809922403900390480021635509025212701930916318295715990851365662219404383134720982922481527137586913049604207213675718705333891877679637640288580787180887930354580463222681035154605902812883217269883132840092256572430708407536316076651492834147386866978811734637036123810266716473360920672831434431754631524726332478140316984694929916781599281929576955953801811344668631047747425611637054591765296086023622491036913809239406173394075264547087576526321344136042763193175276960632611831740074036808612436450567968509749718371441717397725481596996719726069902881559001755029969764487849869104911627102029806428758274519715632716565950895303060576573812665929577974116763112287910371881263467055240102031809501593774340151375407877327931796737419490946896179800361213113943533709699653832724066178615990941699937752517091484069735251117980135035680849856395871481782817504102804955404237054525120631663137687178022011766136200913479665870046683108933230632216251657338980493080739959303582893792169709678829905537469862460160909916011900000149353428816063604275751875426196269774216567362175063761961323540446198401693339682727456569104443486364500941410970514319625305855826310901720372124335934417923564844803284188476787591184013057945403770314748426041034828919447474504168005067210731659417172044944889393553902246642301742123230545921808909090378462806152754342713425992966758496143015074396043483584455609454862421878496563768157319234466157509633014174895279164212083101074159551697332152602109289887158896872049863556253468451435826394713847510856419754671872299480177287531518983203637233480548176390798929439824678359575137276115894674464138138378133797936207214466385289576744924405120174717886953949841358234306927349220109993151040191972625423255478851365304306784974702101061935662178845634800725647339975385209803348799448212644394380829651144215785545726520008845243858149574847892933258165585518471121044173579690160168281175976036954342704385348314590617694985850532112077313498679173008965861808247943072135440188546427650393433891637835796524386112609088984539671670769153554742782258872278974337781434279576248950575895459881556462316027076181689230760690500475730119234699271382271452439461666117163831720906965822719604709648388273453183492569169708328802125980435287601750097683853874213295164916683085060247576953754113063977917467754802256150883462051821935790250480817941448759005185611002282964687915550678514487841261819400880038236543718569399725385674580506405386617348672080810212546883429312525086579177692757680250233159482259074382742647424010567395917958589682466190811325363636717483496841045279112685480389416626275079947787819388035442083978820148741091485516311913824276966008676521105600785958242666947513476912852553612277650747780359974004569282356946974717732656128678574331645605757180605684049413302750816348081505486230296755190922636738197656739052126343310968585723834348582438218301325367762978526023641288719474691583348681072609021690035280134543157681996898656175467196425178605615467841336665757647026995493504065233623245954267890569625117615518057695055106434452253894078153719444797636182988774835174705338013500657177466174387309923980535255517714239873952411535729953440863045313343335836319711362566738355989606119897059248247927260731180375395870683160746616781725159715013967991298642342039607831657596096625833353836744156343701694009704388447870054903806406763242662151256228566592066211339056575931597222639443115401685705124745137402016494159525172373527540758635727769700176504272026117445272042727476458945376134837971103679886416435600979735087788169798359996620635387682499481088444553463603141332366187148624067906626149784623719335434115437477832261000180392340996869247351134841494165686355329224383073463087037114875847705565576900513485892989100744669270330665442179665644101004407330613705000440702705298355456089025432807825235012153109452242118207817130140689387196904542040595722256648960156338765912119741207423599775555417762214566889070552792169500720953739306863358240373140087005467018893550070532616033675751367811335350079886694087821725271586704319208211778181774799018317909236773606281299981627849301591104155013059874006648894137399308348974158049812996251992373569707006520128878074167333906084898272746946895226620994796624692828016913229583277310122979082374428007709618093421459231241654237663183965784134440085516375231758956425638181125278882444698508658181127972721833776476589531750752596772627450738253290353370223311811077640902282661485295591689988419279970833792854636818204500278220343921969009216154025927421291453765956436734170917004282290973813443831278014787687950906181093781443308998173496209265842778813104321279803371158633141508537970754966497810323702083046793804759676080143385316271986978012210712318699240503835851747246570587130157206461880982623928429211081703180261780323726023675807475384837493002862597694532348130273772382729001990134961409325139234047310742480937296302493006660791416969089855720647497241516295512582879536083880698162095172745335997044790020873937780799597792942264041954224824370308785238749370724796020047517991437846535129460508596583689777218715867709104537909707572256833840825694903818498961795318460982311131256392498847689109893098186630867719119277208433010877314166658490086090029183260389946866484576563632755118148571644001203211565722202235429229226850822074803414518458535849877073818789656950231521009797527611207994131398070126244998751648023824165139906985172515344844582062136147112888834993175150672476729098553118913328925786716388599325824115749538661553165956494701876058164294568626401889907836698070994696351322731956292841757962452978544036360448761016875427018072208886160713335270578079186641368047384865659629787114224267589251028372765081539121970251960772295364736549549669678475279207498556222501202024262576795569418697086257904690597738244212096105543809525599175429715800992428892382113099334924046334607364805173655937639353606154123269663383930893982882553350719191658210479465935512302453182586164763665166321876597865413688137334746526813430655386272120779418304586094760237359984624640204754619421548003494231616820946178073251784534911667063958318616644272817273824545928763617860815119216208493914641108929410834214278608505628172983827187284611195987996233417374971049101831412726865447120745074172734399323619234070187116811134487280050605891796260650856445162881227584112015341407100208805234385061515765337070625168573651507756990674755950379085992228520634443317645962947405848433767335328914578482226564168125580383580143228318735377390627441624740628211272738314536679805477579594955094343858333826497378139700702587990392588452912360564513940151274768404209089444270299041853515695680929607878630282037247675012898658301343947585013836031687109913354319843762158282970638981346676221270755753156835634191432882912190882094279316787137078050390863130243439488370963233263464936112472302480060568507348495564141977731207042192641088330356309028597881376282522199716084204965744099484673712778152364116317176732187153857495774339187646500680806828009487467149973405422615860285168117298245994648236306629012859959376013752845494732359891699841460188025382145148867181194199241227114306686527487928465399036948511512685680902988575871523317571316846637585139766789248340367958789961566959726437537226005561391073255846734893132776318049492975198249361654472186373704799816104272889689674487801652112638835037475503749881537553830538595746290246425532444581576079846102426426700880693781992994792628168656742760161441435314910090701372566304712978181730574325396169976937330213442042828928519602561940804972532060132466111519731143315384929366319690925175629083051731194477810736930391547210583009555684395405145020774165155082376597970088607954961731158041796182394276281719556690436774615755048338243197861794553700684588316165221550904800301381573492387910436309056862512394288612319656788860993327578514264050096489168286598642306099866537974806301801616134523403878192084922635321193200246994676462105384604873569504460823956567835910792200096487614880825221101996493340364116455652866426633987703809338559392461801309936266312552315840861145252404497980554987757928953467741913707158398163087922155852681336320361694981606834855129855155625327423243808679759346608634465549416648848387121765544140108729092117418737437943775536871506058762914278652283104856732653364404363073482339633245239259863459230459237090984140922409339477161251450898643045285087637981188953971396968521425379980698974163626968411380161400844972878034598181323874949347161319459215596099394666077610669569991414213144204501214741746280204708557518567031275471710681094444269120464579202248078804567672060149353639836385480836188350041911079620168546689501971928290537161234811141163102346260105819548843833108183238146450947178272487291805304089486684120231055667108315547992932489608513045809601572469297781585391368202085767955062269923888165237303408084352960603600960428879819413008710114840706859968688838487533413506406958434437670595122609460674272022727886022443667627629758721919357690629074053399904454636289569494031352932337148198617265588171398197551956642585832450399313956042279515571465001509471365135452099631126077322728105921905337416436750458021694839212083414256180833422059461414358437578170789593754147554993564761417286095492027281878293908696434844356789345602933626326028435161671410489062213082404472420812334243474541028430402282634619806253899138190737951701309935611951259561547934887334618471736951423433481881594997213322779839720091574000320770496902399914059037579007347832072727987297789588436497005473625720411363891983288516046834067068675717665400411218069783941058235621425126750097548262081366215942159636559584553404206261075852067049565750644905582474412737619799817862213075052446372417094185109095426797495710333198441291180652057632486064977117347405887378795052723767265240745871995805001796230857430238741567576190277636797034836925957500038596311896189929753328325904953897123681457438387768347961992417186386450392094907446289360720743518043535249310654881804826919282289787952392085566697006313505862231716274355949697327838999340657343628436840714423468875234502819313455731984330653828484902819299323446003507046547452574059980149301111997756809775648727319279890294240591402289314630993450552757752361408247395587068879672181808206796032347632942708277234305595943837309909833199652475814353426424410640980225241148941751980481857764915369926267637827854975756202450587601562087488540148782562284466621424056596775637424513584435338016362828533489139012489940784623264732177032178651628088268079301207056882208969521848790498897632951595830514574465398112431471629099377809243900244807298611999340311683746204249405550324603498068562157419906158999379025314930756999688917577458781371336470651733446145925182393362875482811858386745110934814800215351406008379694611706990774995235987486543817484003102253338321624990696031664127184746644388673350220936726625668368230845559215069795324515873236716042358183080249182119621878748315806125349999359363629185897649319356339268607548759253664321118788427647824409985995952917416018916980367671700408567094645883965109591394028354523343853248575632992693567027192200762517705530983496566362373846161766248649793568785302065783867635060990232431897273367149593583621125325432437040995470053538971040187206358191441106016782226216769849566621856072412231404787538913759532751095642466585318854713322235163099016266244099050609875615948780345702742548418885938004852353518061991881653717902460008377675212941096086196150958112719490967248926842003059000621678481196787844856369940476787715318303642860811004790928582635343433244859361504310883317065611088958149654557767846955614378652943183310227778272828324902057113210627211095026460272124830889166799919432216825858313085549666454899300261126583899469253286231101831877565647973385591824274977405200507480237619808774013392486722406620376114453759690535356209215796024952472181259520441345202847751854587022788806647156773414240366817194316596809152284601564313710431488294649475585317034600591751914831071403064502436438648682822671827900332066917788524568497333789589827912128483975160514728738377144743863513250162765698813195149188499070884236570474424174582888710289447559735063556093038419217904612781586947539469318420067491498019659628963506821104679575901300938353896134951520098524297640490770889226566540038108339661295187146635895637858834892551252546896415977103857181366466971031086746987208869670344656577545924988737270508082995436613340533165594886534193814537471541837257959171814347841304558623481725925386236261051157638188594573615901821875202973050176193884664943401100752409851986400050066104074249776787359623801286615791679571415750311814254609968872868140934095188381861912213793980915354190355345829104084805120241505490847545446720827981085750702518154271640195590153565996785996588278854279612433264975131222047659247968649591526249992432712274956512760714469003013039686136890188508897738431872153356371700916764228251212139575166396419812811306918686378117425412363256708340759213612602139408083901704587780929596760502074637326270411123610841353657651610940938819696177438555765960186099264612763088315338003858916238584125542664570520869890011490194643643946439278596916766615266373739237492035382135125134335615239382715545612426744823983284845690228601986501951275985564693292336678935651073153703695097644117164522449001390231945437880520860582561617147863456704097038242688836527912784056672018000091415293552694075526174387896205849568107401408869353000270845578929770856191120175146157477835789276077538675870633169556175039339839190229152643556858790912999555014427406293319429821502857678100793327860895781571951452970071200030000476417929077810441739325879339476170010520236833618841949286596579334635798204140885539970374657774443753242217678221552177019494747495544709128294430593971385193585687172768369481247254183302877395885502867259008087042042602341953972846999327142819302789716225709857038093348199861627831440292458267655086523186112881566710256966394759807108282504442158875583670191030256863216541914749645439444697104363607595915040055395816490316314248983844883019098677197184440191793694339843397332232201043447028431099557081757040020222305925898652509287987583935300818859438400588227007490887546385305948610267569949537565821759199062315628016898420614052854092243691941558629589047604519962237776335449163692528201027494044758640729693600523683262909064286441257440967329155009587957545796528815884573247114204450382975357051983702256643242983797872486521852854181035610775753329087028471822491348957275318369332296637184037544711625917428020393471777501838143296112260352257202807334983048376562088423821248387122994262257580162169008343891908204687316256859787516007727301366156526029849575247200707807546290279656694796493636498950818839529913235110274365293893253814474838747276396273176078621367656335973234347692245445496567257338755082154301478196755933638312637520087033090027167783249294227556706860323364864900765884564775889864760603495079121866240658648540336388264816862579075289417461971881297677279084343380998195331103147927374998905083888731852210088640583995841664656665805887907044189864869830530644716005994996840116863063072232586413688714795916664047610551604311224804618975060099905421484910944518516616899775151738145326112871805469115553718197132696926727504645293107197224234389786404743687909341067315040000626147909084798764097588921315657440888505867460843790854346545229409643588352510592812836828723234990863166739448511814694747754560517270184821364104669107814922942089002349915615462317446741114253277784040872759623938199227271502151026452699232329814423242973652236160494583406495324572516861203462177559407747239034476623768435310986741155105285586160775543016862656210019049010196443658958691776308776824172258352234810130925294913733667267315536408289941040383193322845682581233498077645396980390880782518221561177441698718245374467390011831995342062694020798935577069352374405839959616653233900348472130706178350749176569830150330150548767621753758017249399687226191792870562257510020427490150668000885185534398656776111021301485629113973015058495655506611710634843352085117595597478588429209013025964332897282825578745840760121154468568983669319776855537325215796674323098557003816395871579801833448205201688587139209945001461797781976205032975671051856238355899574708045762276511976104771261365578992114017702789665883219018157563901644700901468535493364165612141612080141134747697839112377775950121724043990584964388623385109500584826397310639224984608702405856746138654131646549804175460782562656269265408131130614290156735170131203330247604731316133993334881897723096617121552787750767223848098422901167132208956757083619834313823679422005880917193576424010341390433318936685831649766793153301888567104947409518689657387468208783823953976429691386547814291455187168367829004500296349965904581382715612774191013790909065124768900166618753490855614098173722236964457091781567100918346605268677641788187947193167277180404634855117863850437181017318020274980081328873008513558627248203622865314931006184322323250553116265723862544414064971540252725192531297088114040279320871270072269690237752603328032912974550871262168125256308576936735474454790786044075710279611522568980914326023070761780458953479599115285077610808259582791736056766614772588202578171512372415006927388108325390541038971911227660750610574030285313477823264837798457868260637657428340243903257105237049559107860442387570745076738086250385264651751085312906968729193985073246425288483239701378948165056508251775552880889606478914846651643287634926219280692692609747191747703250556826311461543000365107741146572715099388397471314577450742172673041645106781683179085538093269522580751796475789840991591520140986557157386898255690741661915616299483667194227644333846523011014409790760083195164579319665924934615739857944875822086179187900497180461024452020265822174143893336476075824361287470189602473614267695617245130428299207367602926007118628007319892848420444456094456900110008066293267375292828098763098882958267841967658072878772521305580185971996481002559574184515805552266534735695249373971768098492991302345701891786224518064253822708347443866121096819630454258815627031655114598450472664391790209175543860835603161514910969568163018619720261473045729851111096029063806278848314233958488171674258046379828728553971707792533222885985888716962487958580682315350471564210634677921349751105133636914450560502534731637192987079918110115008595591045235712426873531361008156276460696976340837119508830984486208213886087749602234793368609427493207136198667180367706279566978068950922575173764018561073153994803982065081311825738634688155573396006192968147429993577867824545393637178049873985467505642765586234043344118976757766786159117069350185321133069310032797132619931736262548361933857443891969128909447413234993231320808980213676211279878915904069736123725645677640807916543450909276806556626153551541716312140441268062947792318499266924328477416332445175064587737830685695809533887468767130596490361349225848325021648777870258355746983913779066206939573590806022915346838787911916382508901202332546458185241450246384991796510343817483414394782969313515551472004676016256293068646745533031820334981475577120642338253295988220197851185765912849616474283061632821226406083237645892336839322729423170792784513431418950180182026587301420881337169931687358451288233528354446877311677121976697338300687253527585963130873119953365918837346565345826992527859685125963084775355214066930294025545099362964493520692499875550201274390516211786806574357925808087457596911815039988284471733336044819897588661889089554992311221894481600255705164842301162236315704168621696490445067677124571025396069931352107276006292826223579954217098671875463516165601351590599517774873088162964708193930261287728493977045815805136736612193786122295738596480843407483550928753049390273752837629220068821718224072682821963648815904764278464193966741824520545859564019970183033035482274658857583057869992632645412975912990871927707465031025038358084226715655451659823572266733839586940522742755595694543838887924208909802032515872440708869074052151343190777215294874687456256118839539388482937551075727770385057166580507311227244650352158958939482505594128821944657684850558350583848001680704393774808992772065342672221173724946634356441835753236929431279426452294790782606958944442549611019616696338282831749479357002257811244205003927721068859404366936780647794507331067148680608669080899902074400003933668237686390723474928541187356761552193266452918734241732642673205261258195455989777805253811569570005734123604520090838103652566106042939885249778411558073287603144296117506897832053696865853128965358180008851976505711139912265435757605061661627681402291033287059236738593082096393334932126254763871372060706296288435389595701711012983154188259131070544738193053191046440685372895921603604482405967556144926454397878470952808001423940437600063576488430671444986281733045635545047363196909202985667330406325834092110458939373200736194917312198697288316701066983871826867123628556410985053107254755660992546318145201852398773574482963972259381784754595794062992076110713425187959619081103408296950554897856723074486212706090945935525718394079349049457234290621492361441268246804496750231197941448156213923958321302829468317674862112052397975049272812038967238490057370520016507830165483017202006276796560247045696304164925373973051055805686116547738073261406672880249900024930325571809151470117445364957340658964049638159277878845181070757351510894073762506136139299087333827198744614515086188329186561348985680326849400900388357266413529102858401962616618611139955517972622249600664728959089227502351367491247563291906047386220914135002033279921937050577495347270075001827705295258810449052832489646187515174300862612897339024646651377941348365687561346978836333871601717655272411481750250586650086064624858693473237035604656820577642328311993398973273559797533935223557384083830793399566860942740542216380453887970431696799296958941137523913348800447992624581854643513637532704900768727412478507724594219814172835198950156684546478480472477376086365469190404890829635089362886364627963146111023727502636652902129900600757331306115915917629599376506254196059961643148083769648355334149070099973471866496569698109553260464553462874917469231922838969062105699210050599798919859154079801010542236722683753824026820331952408327762232255993108366938064352597004183133685035149650682847451648882669940514259551427579250904736019781549227716486792913291585574533548009486484605314306013964417756804708305315365355064333084063201978013580520962967224401524657728560447834192592048240742624562382043476661107075010962081080548891656390496806373338271030690559724088790589859024888586441521902005651942703206063764549178072354251979627049741106307092112855211690129668980508178905972298838657241799867050717578980072489069001712611335521154998208645830905618400456020969852463481244518940643780399857949387056607782032650556112501055433413021468856768986811550255897125731885513769970716617675169999342007407090554926212241495546289807514437845591056463842002899486340707774773647646528120806915684041731412033891379941496399859519662312922624842259129441783857470737680253016600974724300985542341317498885365366159674519086999930970246426184888812193511115677942871203236778624953234109187611397378518339933065212735428841823257817822004307495046678223403433719263900585203244809997733615761467262188789001985583589949712588297241325550500817425206007546973224321013418825308798442986992068724809708528939843144891621136410645995329458395865171649493233851442291715430723861039770785222343969549884375454840608562934553411941311047587946890217686204056308729694585480994023872258448708188998889559916389329592488709679008607112332157235566029645039618532878219010896854076704840452498180564676758385954762195281870620662208012493350058561552213317522204026480123888786561626924611743586054423420516187024194373345136037158602111280157428816464894972321047003627773098904532562090888659518539194952724308658061884278931408415443025905621326136446154704368554152968919493164751006416396707268974664903442516411530725069167465343944237845938409823749022766903245889303578697454676771919029266971878164520560426363514011757116138771511350471494171675689203157289941602530890079651602728635466032272298208532588336322429095137603044083785458406045007584091856232624947461642123514343262369220829703918438086654500415638760463996827127284977906209873515779576038051642579060752077057492144452705514944056205928070526332495977598013454320781539776680657335791904322883281592217059020179568828689925902614476819566371553886263919771885989052257661883886371236883200438282870566119769558456746584894981757951531136024496860965351125240314560035003330483932197819902260582212413044776132927818408885991179546591898169848852595621539362700241167811308772764204296876956581419968604234368813158496885558450725417385270865010701688893325503091218010018506604640923964672203760688148201612252981223454775097703723395820300112527405045019637168773894095745381431508029170526100998563310723983872248509538512286631927507436562010371101525528956532728262916465138080597132238294085396075919463186529280949855287475347398281390811093896833816255861998736305723535777834651253076852351444801953576237719730775980547627584035310373776197024128298530195394423461509268295684582726147016349928792073564517831749535076059235862684968170218978301913466897948903644240313204264414409080580009236920513969594789719818198472014045162342487216221873836688834342110768792027999168957361456651279092325840308227966210536741189642608676857148985796972475696958808328920783512185044771248067463270504169514431676338434392017137845685541152129519880193805524448261809927270951766726922943124595817967973474628516789953167025563938445530566531887176006532360536665895134677651394716026323148617658565869591293862884442761903396952404300626680227124752985506791575050893511825714880208875848117827586753170374228354167541280716173214286939402152020978961361584164934985635821326754035693236482065680685062323241825892909546885736595365703850602002539350914840233049068259071331915739549071720818269160433647284505145192271302013697905925906095765090239697712737370367575124375576892944100941263276367967302962545081944513178582132740728896663314959208425545251494984216869384695310618766010640954203092108939077715650620549381921873821363030966444710816304071813964710018051986581321527130156078910886064885237162220746129681733439882401873414335710717225323244707161438840568853771285290706797308401274184923297358932347307805984961214289535847356610555965224456746527590041638202267017716443738465339317987592775029963060808168165181397375967896873493009582730685476292364710724720369064980021863037005426225345924195813524260729004717075287275476040755379502187793781281873620495452583176416030489319938069712559887114443034208805200219034016197565361710066404223035328261860870101883401722552583449571721182096709730519911650759671142729538791071170166881018214586516733104861546834009254320038603779011403159902494077757864243239668530874326787236077639719378442240077392690671382082093660852487623000399256599086941356618783432297537054018313256140814069080425687269313514458827670046995586475673855193571775426725398193068372177852752221537159120172656863456597465638983777453054556674566930219901443221197946637328674173812468112304824767107420029658636090988466408792953126991203929456511929081552901493859465529559161346798885985424966373308505546566138007015349593965845311227148689847102680736606764097801541715732342125322707329211889459117919424885954404135806081552707353254392309866264742450714758747757926758283556722697144513027195653939535576849259642813486146641334984879131482349772922986811072180634537822459325400976376077466164066435782551012812742127237038594942535211625986106203433532364016191595335153668191699103615614768008926845051611761809953900431166062453969684086605964862218805019783736066911174656600107931638181123309723922036423587556329181637077944353462399242444821235721620637773220850690753883507076728426230252717726048709588294907985478960966824009880593550670209187922949135167284852134079147911026338962700524657337931139823679480180317157628488033130965743865200822967272135582296229067475331492682042666040790337934023160469463971271404811727737884235807743382388739885128809727905396370903918417820825089613848874334569692207609666319457782380943552123514283207638441339582607993861878340826798441375777637759312254814117947022358886631693964708340484131216229273493193711967886488465307897635714143663568380662861100244777550810080446215494177326746816528966483890046475816464267971675943044289903256368370599392856976340437094761847666312799145614938234839368302006883739663712445262073746004491021156514388866208772209715779341199908890405485258558230505393841360117740886795142923921599993652921449648170667114354801073423749000930990564330981942198696902481890833452690691318708886296841370817732632204344966952069826004082729454826040818240765956669980910766835617138740198641411732972998033076377465733862297991131516640818779506822402846201803766585472183034196808215714811401051086892428953912921698775960940146805699399075901389423120479333032237542695828726761137992166747056243000547539936975515958960460624135807036377889045885544460269363297161715649430455839516715162186381706674545400869573389189790782011603962143909993236940774792779440057689680475433105820225477566627921392461126870696375038124634063421344569115362658196065248684928689994372623636725154492591178442969515681534768972225779479371364935972285302225442772789612548352146795282723046655359289239677775484706409256154077435339584832547520481690867361898420794614575699166215494891896019267242714640161642238534115644037607901457617539477189625415836218555424316033215587894116632370427243092373724192391131148505202554357229253755996988381054527012394078447871776603380671732533308758536760987736768383344808409381725251847716059048043638534593751102999825432514651079442622205940721163265347608097822757667226647691978570479408173512607960786536131357667361964967139376907139914674690577386445211997960194264075453956108159076933561942721566241088072261858773716157653422514152730791065413639497466443095486625053864390402091607324998490113685143404031678093023035969663002664372047393339020830382972633312377281381429872407071750298315378128616235307025309513991448944296564014661761767993928900691718138347679846845570995286611411448095497682976088413416540712058061038872468315191313876740602657617016446449946131656616268873084294404013461729631511972860918033386946252854527057636410263928114365363630293851362811392621472623829169667090559696281606461931673138392001506503041173720690428024541784565630416938823824497209800827066617981433991866292294753172984804365270902341989568903364307176119442774978061207992201073445717595634598004757753236213610414815066831337113618321188491886208176695675523081302976201691038172074040973603298110781587883183769725336562732968191749943701870931183039108570963903809447320460610202497507529625964777923350535889023679765033139429605499019818097524542447292188242306837525944775604107116355331901925747537349262166613492850190591179245457270522272246700126201435047049216580223475586947320161367129114506914676748441637510763565023492923466819184676281745197410715176692870027138766238329243649294806904681158451209922792789868554386347296245730580051563347490881940163503498781145898227799402020837183003863116519608103348249152883646340212105128503353711348085615200387201954518941375092695903626614964615680338863039896498298935404812308644274822762756055675277417088777541436142759118128663205684699842866338011676064994613252549636992771194984462001164800770766632683841068761166474008138393720597289455549997862194723375729404480911413137449993161923694361791810046759660364694875112370344333461846136733714838310699689303342575158357724535342583154824041410709329299559880233998160985036671610176010185248062488054020139735546128151366090081246693399506574222095634978270282111630038901866498286777285196434545469405560214605567332008428341641682138610844946242632303056352910901615152195284134559134268848598634575400277494733077667923664207538016376582299113911473958180781072961340413399249138691703177228321559223707575234083765414632358279854537051908485864310545484871951352849782718261877877192983183020325967522840277434487576676556521152108972315776512249671252565574154264137536846329110686265446673679272271706007966901493462451251247373903956493344783822291536626127228921413663510530588962692942170187138693728050731432328665915974555157055658557455730162464672661313139447819957515540286026415396515854406618510351211911163698912721662198078442511762932953218837477031032911827025944770338769093614266703778050206312182415966144677375374572066914707671180892333740318692499627077760399791368962045568403089259203858481740919009108468226744843940783877952032985178513162641264865578627706620118652786669464534570298724145169595252799670796406745535325496391345788415162226585868210124966826027654821535872911357658892982187999002815431739192970028947063003553358675146113644385866709801115995227852870394657427771005987199974364451966554542134231353992675852554620380797008318944094833064815330040752175882549160319929353756478960783067498687334905867467154400003577763144157636948088923370733771888560936952056818205211821385407595014278036120900309692654705593116753142651217669463372953490289111348107767864939747885851565567385407910695977114144255938147167213920541168201346706666790399755747372555752944550009248135535894327588839828690281253766672619737813730751823104252850900601761616594715411052180899006005371900389775082117050426867763462028366299365229507372397287446792248313957140001111223138606204691370553106259059525501860190119051156397666797723503824135175903985025377379860487881918797809208500484121283624304280508158832570939837146791783501645182929796113509940594380312165104023973186127856327899876876705633208102583295928909944403913147259790968833907564201056819082673178805150114438766254877848422340416431761024810158348574290074774820321088853633663756376589710398480520879368329742535444116576424838324682571181819140217220171467826366393507693136614313002082270566269385456053726908286314169933058833646615672792993735789353458423179197468620170574189154278898448781605904817313813469555390631606964321722940337513252514608923100259342005962772255195358140044841321793279103261525390742307652452022293783280835395365284552284388487680694285414006046609573010777140668863142111683540560492785004852643361619724439608322965750468913502900328640637365808447030414854580432033668285036522144406756489076872531984286533944730008576929908952107043921984584983311110257710100855484286718223304614294247793382760874902194749728376699848885918069266150763692563486269382948545992258663127842197620079771760724789578461104038653004196673595194616070249378428827684704978889804019219103744806837195395040209585822003758518856217800217740917244301565652522595619093082660335586491609346865030506108442629551374049929359254714520519851154752158461790898736874577450716128634158650105546150409559543450304507625087910438348667369563464986437892911213612235809896626534474649639655125290410085882891835677262218506979425611406678929849243603804259539965654500030015042701559377667428127618041598453679840869060430143438400159680206095492962658551506235379719782117807721316252440692471642714138681325615316381821835876633068751909410087547902723095118103959990549293522939095068620871239825726947821858778076096443779760542842273852530754838597800774985226921025522277371975641274100761112087710880942190815418808638441709475226302070229404184898550067462535554356564419073797112524346861548470025411938965198951816154713949132245464622440495575908076124094006587697368992295180736311960888136713098288767297896547480484233263111636871704682972709209285024982074052001249858736879249636181638981339070383885918220075933969314943992676274688727941057095836493981237800823400840631081871645794959105455625478949177427699720638325097122620647199927843674771668262319769472017509782347055783511445474867247836413027138161787796554446345590993052291999323402006016057771179641163440671809271698602041263146090347735872463475182139605974398609663478955258036414573797280867251417991236010690601965609413085976787752744440000115779087604164885757723152066516455319225807289626030929768624108078433638083971150328633595622503246954878771719824826615885768198407540411576413354214860445904986590050945687983118738123083134268969679421736800606973769548249336293889947156716531639037405803094647092783035416987538521817939951709532994447053497916924208828283611368848562114944663684896529404989625371023222778510401893848049175157982518701975791984537165351140555137782761208281168234271520960755684551292354930847100774343338824238435941225297904299747944307693428660265628636261445340016372897889522051322222992585584673367735633469873231786277574259827976340922114964610868357145815330202631550128280922545315578623203590108703339012739253634905062799525438489510965373447071700541179129117556260594894011020590738949541957194266209140809378350673946565000850919566714159138703068535241161665925011237397328898833683501913606894874698492397179798232391045832192653222669499802944454309746852653353784658949816939875421017866484650393621289725370876301965487930317785505376131815385398041444392077774321841154902817030578946660122862832484685230014251724792432684081913129211426586183378657936096644316704591508072553646277822024618431763806310691906056691996065791452368232552144887876488916296223896210471533733990045101902907095488210516238105433361766118909534304272769689136244623365317431689480091508442304734681483589179330075923761525175283855669090616826362387408668656338469841936901308898404818872360036684776528522887709764058519100428466609876738574889930111741782422059161096467795930481155284495088280073468672410410109706205527455503774954784408843105908482486402922544639344165436038223786037757261621137668037603216832709075288625467333811149761529354658400421961424052492720114216735749471996512295663456452546597127188189473390130874769380414630486735390927379850755875376724128627837334934117317268490665858857690498810069526080192538553236346577479434830897535098694276893252136392036019794421441276449694653279908893813359888046042005077369255877811899893066687037969213620031314500557791583132180547743728904846887251695913684572538452688094869085989830600722028521838643940243439196705795242060466598670951911478716654803384917203041072078752933487404287988686616990445652239591705085492082149426996271114038486031402701160788718254524752996357084186996947233543157880910247918550952230116739552647340314035297978719826499453623803413867052655595854674314054619961937187244520531204761470974236616398045496353191690864198573243392385833045216558545065592810277405742480860364912670152268463585345966555666984332846942761198977135971073103221502685852234180767944687221726549846879325368770916922191967485002685717434253536386370752204475326553402069871820580789504837438824248317318955084228337216471923883268938759109673976369639486194501145657026168164399132118077467617226704111320681864376039814111803190613000710576437925662994482296460853384508856999839514968667545059730955197154346100107153370338679703179962990465847522883380258267697590355288375872494440538091015173631717367780661157297589384092208610280358540637217325496713511588544440861547939986920936001460483331119315208806199186471010650240495761471865284959018314363430957579881156837387436895320803565263460340708529411984819129474862885807809191537566614130953436933991745414323882643511142035168627546493810486816945450899740828153323580382139073837034246496393952002398031545294904748965523880879583319841672861564029089408205076310707453921938666116439086487009097112997285230934363476208961427174032703371185414501775278088380702357820413881247368036105779518661736700920293434428802000056856222595840844487429384098737731871529303433422805034076646901592181232349277145343414362256520507002493463995297179425608175647299337228522123349741432914139441065886423519862732668831389030940101055770276717803183503869221065812692852956901043350660611523011014937222730558208512937091533874294354043774936795921574574931074944332232400056593981700328358485505912839874230988253553581663330316980550124316540845061658220776145053887750162583946485287608557782055752669912576478193935979038476591012453370405764996181931806911169533686647156656691137637626022334126655527586680722316865707768446537481923557636330338771809920421943446866706583808658053912434948594610870195478088243910263353492864409275121014652279301901868153141805320665837572698837687900817431566786606453510462516913826303388863934168853869492213650085945365786068305045208565804728230830002389625853681216219857882219044939149630922183132995435696726828714866616292340476050853743418771950119208166430537958437488260115026648807537754450498551707520513631753032891369625538322007887526770185050205893759480626699376474113374255444791873973930031881378597061301141733377734999094147516463821828513326617168708129631307823150483569750159876246719870906465027109513693134474160785209304884888951623925463883687764566548102045855737284518408331076164307274092527237723006314872043664788488500623762672878026542991861859402238834297687974243244232161551944784849403449039277014646921948299701417133773655388363982379245668296317458654685808040714485528188092672112700639538039167446734507459924018887237566306538484409596653448275725923539583715387926719123841419318937787957916550725996878630565622949571510969264560559616867643098192064428447622836316490140840987977667628890815691130751588485258072331178843952590725560363191095323948101433822319497562120432090842175313736035441539797502916013567026342072665227916375290194434224373765178056487236593647874966073327980958557710090991789101490262994219832192133262283057611783679408879392218466542030820803010938814624343490754075479127375315189202899132293243299541195253618844266442520173853449058951746545376777318636294738153434490529099064963124970587301391592642163238488310967450286961487479680554303667502749515005838752762120755072927321344932412622385605073155805465469834992479022324166064593159687642854525705043617714408446148240063783495144885087580903003073458169862665574375088203539682220113414503956923679534645156505324438099349700305984433089874653033506690732862208831021735586489587209500748089622591211131630330064746798412559871493466553875631001544036628938205505952040805185080008040654917638384174226569058673073183437258182148272978396083605634017561037571628666598045909239985759450579320963099261162367642534257498245495892649132459899568954031699648388501390993349434090628963765627540464524614729666676711111814301377457152799488897814857545064735594537295904801590960229685652585137504074356713955831598921366511824254141701258000046780684258194892780501806802114325413486874776440476149680924630971829088831603273159791383482227712246098735844994376581909270861152168378080793979481353796069300435448667594626837250067145520807470112636662710505164096435034067546495161541725969776910078713879061136972521491797189199959390548389892953969610208827464846961089250692259006559140305886647393188616743522383685740970459637492949295935949826484641538483021181266630345213850719821274195933593019928638798553345275835168067936147158734198127419604876315665366822106793871423357897481800487612577137939877581293242134173762349277679815713500133137026394717324853429776818671757895232056066229500613481079455507342680511309202689721707126256381202628726422411721613813249329622109901872967478164408372713074502875904562187930240597512663309870138886200562084867581452400090757406532239740617835432983941033498687352200516260406561581978495673253256546647105068372969187935972725963768571334943287900718195624654564950115326610646510137177443561180484426091567947413589865466527256325298655607284105539950493774389919681117699570828439628751312392982256547850097087322911787997888637322754786348157270924357307428905640169402226443951037282686741741134808054364603055700496552749430618525806716920595999054784829315725324575388008198313849758888742243374341046030069429195314154338000947895460055543612594403513515709542941625389623481501796813687821315997958632533741369899715463448232909139199056825233498795873007112381429903643748724892267578534705064113894269341500117114335178400676813065104175797766279691064538511254725454619040183065736294992029075444155794594868731373918039624068898002707099194544915306141100204467431669774922505108510027356545154425617235675580468124551480251380130832408102710310698677918261504570995296697476220246211718403117539084957309422713779830481202532874106666318082567453281018855148422615308576862469460929199174470832170721113472069507271119388003541405198783018893448584752579781222558642731027025937593893727492976552271298393420892655981099729401782275751072594474715750972648487272594333374947034214135391994251710157853167425530697491184472417910775620407854027549421778599567965580783631912302040296656531447683803900240393554259468312121165425937726126570231095624744761365184356493236985753040692422763984749111103540280360927063750821130696690179011125359159516064363504669710517137792672785810095372508162907103914504308308607839469506822073510534261048344863303902349975851701668542074960272342977369522481077132870390186421791517441174698880791992430484953368905753794708545109810549335971635219854072538912926589741706814132371022846685930743330355533331033758580182738517991307255138670925062629680042647072745373898055570870998087048340583164357310976883327446316273382205942828264483263273675333704675661115868060422207076904926481391773943666676351663860124198311747018317413053575283153196194657714193209441740447179218548222163468171084159282962951548916860100047428762720435700353310071689813741401068854708955679490911607747609205408387754219771566911173229486409902882713595945579063384406438583960940958487103679173887085353664417907350337214891280480536063405409025811537793186179892991951693338747783511727586115995707785333548405358693767249382496830457469768453719765572099415769473788396053191140515498509848103982299130902239841205638445505978724634710008428049417084115503314074212267133306413170278957951894752167082562480526943071602360742676262624348476846806994857318614084835274975784184426788851771167799849111744430502216337961604735020988499927471375895316952245366291430500071980598394703877699766752449638248254480694305935478201327994623000914774340314481393205075164554563418946528056543323432358306519955738819588053941272744698613107228733916404779447603091535343199111320269463023134108855213486168559671887026655630575864781204799809773458275285991210748275124615640517463059275261368877416323947938766052791921044672767832116374988002309921107777521956877680678272161423256607939521618328590415914476979348186731785271389808214920878026109889568667434552693225411482173318257234508668289264783797972743545974772111967799703009187935206770507497646888458696072394742861758637324356642905720190542162187156405048351802474863489655506466988268353265648725997873758987164084512160185106026528677889974693183700672436678945899803846366435156430603255961973442875582444612688459233207161645679935963815593644997280327846066534290010681652715005690599390591676173047185215004042911140257039686920905898351286470817925921694975618088939528206836148026677831313583612331822942060737538967727301436706498354500019919731682145770100128402478802891728719725542003393191152121431069857412303170005875108405386635584321422201037942114443963059853983868099178214496896294291477861641615048087855296920093857665946604271203983443925689810586927588403114213443673939969123281752803048832993241145611135997552127694799436519803953969986559339005708389606482819537688595667908207559478765650978956333207225411209560287795399546930020005517866513058577309107084774016930149860184804915563342909442606065196162339563287858609131046921313054531020134290344165594448855126255448069943024580263741389706729766059734949623613596316293337514067786514954347947075693324398798466131209518092054487690677111760593193354304542442177394746025602987917198462436074560945361133452137300023591714583424658573559252489132597587690833460708023350365115338714966532216309524128445872374355567761756823771488514389086871710282040477973448418554154209143685360652545349799854988470160077308567820511949132400663718584730886664236205768909305083985251974518324966279048744058489272922737997469319491670996125747441993022380240171535372791196758677306640788180965930170873215415160192316496450271185937535451572762245100088710530251459997690314873522965819779332372912538310199486227264995080441647902792503540651839179283468182591062182533416053960230551973046004296472156592060000633409573091002572256382211869993595833284255348729338934992673969080106007481474881225148652019097990705993111743596656862335477221660604613337205492821989456787940276135934373438897855467528212428452532573534286211336938370724544991190638987428009096734470086112158786889179259299698718673641191525854268549548457637622036752069858908313557429980227436624186611384904689919288226274092098949127629504901915586019895487652191679156141488761539506354414383942736727082054688028289268167354938749764050021653011359022168906767399976924681932546427468041878549861210455891954125093993688791300475814785356621620343499762698371788681891448325589218187794548364122564259074631246478712902687074912246786451067183317189685638409819239296144766080576067906212619467877869965171941483474041246153700635050726820506439457584836576259347014665379396051351392188181856449506799688056675649451208783962073705631797226938983433494293275838852054286717264948284268570276573789120574754934312530512193590493130945754594919312522297400063067264810091487260117661523728183733617472072160867479689584499572762595556752246530021949449454463144329695605379193909191006582105021067630049645718155879132348876055072025180802562627597553661117434855899879242711190431558747571397893280935852560178726405459817016107916658146301411479101221434254284465441395097073485816222230852441341836756285742324591691144774637438248269668852852138226950585426321295300573993341745587730080373055809284511928153620499753091167130367856703210405743385079620870516138966287689516002739927539468609838862245249279932776442705158401491696602478351805669109352499783184286626442344967037860775304755561437396876236091972580306208038458848273018229728935573440951371391250987453605985280260884152034717722526061869633646975078672348731763657028559871547651944792871344651942790557013148101766838908489982660225763360647876444543688791125917349615446999597342063950608259695807445669600440594803039961216510125226661046662940804535706473824823076637640223756221937566588066976918594552301454132962356021805581316674047378752796089101482490300794952985369747672759085746486811152384205201440766999407691631999550895146989504559013113071610975823849914795781728120603674683495058491014550111698618685653498164005932277838936725357424693660192249935929464238502115173085546261558146236876940451940000076981396254654312756978437260384529164263386963615922593753465379938167243027472882952006602525538968077305486810952369193169861214754872494412094977146835879892723017141924310657676742738898946898254784728089873091521393808306970269311751842068794169077127575280818545366615962310701478627504172012979332272437937809070170702816331209085660869380363705159598734775541449473524670964049917147755186600884318797743333396626424921192635262074388555683162441701150204129309213453276446039981596433874631855039882559100611121448894327547114056936024436026370611344725440260668717458886010428609126246424950262598349943455535694775118337448088055149571081250212766622351539172913251895362261286846499633110263274432871717883811307002643562950474814335304860227491216600508259518561356684967974339558363013453089530538208473208400568227185665746590289196097497693792833407579215292708759132666002307041646748709305789649835904402230487172052485903444585766084378313495813623531703152602394701078181231407417833909137168633072449497671548460283693797388666444447903258506629238462320046510019209239653576800442299891280289592571314202519273921390569953470651566894832384424745058362086853996903926308172705715010929372155425302739758919028821689136700423535831965772858753736999358620464992524926999211640104272137216825793710266208867430890738042049685101621701684783020758776248980397951673068258098142238908992938655984367928106064023524807637621840797296805306478862272053460030184855842529503193175252185427720210584748661233734320861305151636486476739511225648886491627401443811604369969175766839145253474743925568810033721722336452399437158669450321219560708544242031803896596291719294246234505409845056988782168283938973030138732859172004022067784209544201861285934089424906468411234986909835567822514693064493532576759597828769085738118136277783281696428144993979365569120174692201512561463591031549913975632493752608047814913437653035783877089217386722446832502901855932429860895366792853126604231134529726533262850577552146959614959619925504873723852987202549698679060006688783843927168873590392257993416274518240691109907433742121922540292524556671226045509145719816581796973404706340596658671780709066343826181836258281473775561521202997139391033539023304290693792030531604653131957452799318043606443999455950846863477363692545643935445642257731867113960395919955410677828143947967639305379002780370595974773011751336795529219005316878014277844163107861541667413823107595799592272315889536105288564678741230816537999077648754034211748084104524386606870139008113718149720085719367503845007757290920004930778465992748334062695143212163210122241425342019807591223372587189673598612880284312787160250590484350460590181722008507828729037320502242161964412175556847124865384227662918205706888156569229203299166872044902490085226930318517384258233306200420609675015978159315823185675254910891118956370573406756824829275053760173440376840726759149846081746189652535971255663452786133750783330693297771953245846447287900083321765584377369121332230274786770485586163775734403217605684126939435523186207109142700659832040261467732143888666377842284308371172796610089547292178131243310867200715165901255405074571872548210794997839271260876799415765946011472402636741786840479661837687006486270327886978698750249724894671633465499303262445299900763684532621561308608056898592893521643433694140975594310607827099702669382368991057473623720640468548430534545192986708853219436338241100571014569739096474179000730981495825896534703742476640568587492963789812785472518463893187466006216225701798438973645959620530072316756376849634370136149350716607985664054818808755132198799515274099542382251902051121485111582519506161930529185967355274053133809441545452913464851619984970417839329594909194837500439860091660079205160545906732242809495060655253697876925123752388459835199189924377721079403403064673158172622720305828477371799495311899929099641543857192241167639739573270226281014813621285501257987365110020749898398491724208186264110918969324648986482265105649690764243489916538638911999286043805353396470110738578127640315297949643835551479943420760344930433487084491440845773793740578333626121357258362913715244498811621700517802570335353584911260012192210297659348623367485935999793729156517896035448984945549553492182302019973638999855199448036360735741060676936347736679949645095627131375143309740192390502254566962942662072305705736860286680220556037736479124729328818198867804589589855655474697461156468892384288984390285115433616623803528912909710506370503991013373290044250816524514488261608288260351558051230422448216472525399296752850436956875038451843540386025644553129526508172651476150901475088729389273550056542467093842732037580894330517633029285677926961550965074557551651801003692972871574375452460236764750774159853670289290141825813478583176715307951331366549245599245763756538273912554853830842517395099150273814364472892688044298007835267510213570788033765333001410390913017054448292699653004699422406406039394643216528757868196670282485043289920742007764001592086883699965958132538450240912501432516422975949218516781569114701879742605275799736025816017852161685797092389268292231397507301902679508398268029543379494793823226915856019961229189970301676111530585414582275151279710793359719883813489502974035502415630990464843062986699396770987884229890400228069013589506677590669777270954350099216838947747166586974927764231638157149742240592778929050878318935317652939677029392316820856572197953026876119679701747989541805297189713356246807011167941912620572277751306918708222679122627910063577943705950296285928257997824815269859433515804750280876261988765717961345456259638834379933753107654430566691483836991673317183528801396325832322751201463344392089654310258638606436909065734789456654724990533087479114098392047703543618581077394378690629154834763165460473235509726398427748112111042004849310231472328158524412302697287667360328057541863408324912893967930082941335317181078955064207178187177882255433226333923434331556911652038096705618245811038414637201283349954449262363905000099033448978121376266456099575966294626736190722712891544819291676325561800451531829837631830176507952409311841822999180680561994670281333836700458712062910995137199353749523863695828314255294903822541935474871265667943178430975687050301625213662621112454638850734856727048883402045188386322659524338382134070910451663708734761436612586902284394576350294442883373419364411875730430291371556243339305678334277759053810400278379986267773485812396088262989220512419282759221875453440298874455632440812789454005063496076505387717330439762113618946674935713682026471839979984392508654762297540777295308761042505791454442141103646576776566598707268929836462543603162701980942365952637985702343028770740426177397618941346774427856923843231940068612074114432251710849311996949282223300786864667416897163854601939108434576225236613480880480552310119620062308396338857388019167460980247332856770508561603488419831585576846887377649622728087497600246750913843596422814457096288639344476870488519540802766353404140385402965580712323670517063571952722248753846202757631014653884926482149003806730391583989526074868396415889050445610522665400181942555880407754023886888805677696801159507505324750679983629606653081588415345240394592943433356269260278304696445584743740771820623240583309612516210691923406047821396232204791805656076487582471334675065925593738542894431433133197385003422961680766668057463542144169111650587574961706164011705331504910840787851559387233106144193000394164606185512571340333067949979965250269850733422087290568503817889172407772861348157074581838517898963856483240680065303227508824520750917688338190419717961679619946920268383707330875457104907963881933868050847540582659877003582410103116250513082270374163629686508095807385174218441599377406794566669187309160012877838508271975552958386810855905231676961082683733853386233555969323272279594712194864838395338915452903116343970562121377753759635414772700820804505773237705936424282103155955637653131419296856906412403869465025840240860317408561373444817127613159353908290220434662112146605900745264444532889243893250231044111532481766305333207486253557472401274620929608473810390513370087566949172660405413443367678827784395009239505091787516917492106125998978590982429902320421686637400129761244422074871499858963077832761699900560066251245483101901506848885971518350915982658424702816342182633269094443884036051308066406608331216114887567959268570250694506532006785072486623586957304359455171913427267726415012321584895749610642449643735926179102349608264217426897149246584180482607701789171811332315065792462603425299448216993224743200062011039342503032869866903552115563492679595182753569369739573829327836075428706025056715434366476393852258653932634919741830685267644764451563155562300154655361089937857449045531570827372019998753996942926208218359733357600533820150696396285669294309092468710813200182641189179586844073974253939646550864625590556726139047338729729242665993113451676506172907567115952761766283140084876666433893548025920881237699695821332740192125904623825125491869659452961584125246540011173787517986840317964684452335724491717418763347963885444434125545075895961005915690790029591884777549479660989992606007555651030278462036999770915739057930191943394907099895472058691556205507752449839097480179352560465138658719115224262177623866215443232426735468698128586405973931847575710798033988636887353368977118917376125984636055798074847533050901667112078270490905683337521494546056340095575511656607471745609017837809337315840826139630885012321502946721845888899930983614055599597776191786206381084646694589992107976457840732299614019272019228102671109858851317553230699994359737976232156038663182179324040583727017965953435418706053281727585163209028618922535785405650255730332574376247384149170778153832463599661238402290281628836734423749428677714576222303619955576245125586359482242612465936464093699510838804432180005921595221335866074182321391712656611604530207218053489155182003074457498039960858306898997580207261097323972961026440478774359433025011233187989627536748459914134252496359494501976520744847485454611637587820727805294653287691233224160931770835293157493951755833523285958404561501928661298250731788363438621506470893986718145391203144628885642718011985683162760045348940608295820654833251276152419793624371011733877764741720127883361549887830588788376301837236732317159235816835476418552385832625370103147292816562463757462054165393994219510071222345983055016999827216306925238372341861589702898575862748020437732292191333784860546123653932071347433315048335183045939409023791222451110373285136793690761232124718349899392481120314556533622908857560751425297905097909230828923767517406975710932621630785428801831934968404693037493195206134630502345403896308416080147648545112088549206518877386543359378675143927333246919048393994137644126158349842752783861653619338686878618498991792992625413613571093433177953280273047852486646784424370844464224818840208772295351029966058099507874581637861598501266182024514225779084550955379072523740868800466354481956721578680144830819623724156271316377084132493465189718786469036618045773340101582453157106441085729251948631838079378882896245803468837247119524250332157237277742112649730196596557022284282656674108225324693733361375595085921396916791175534147235191615383941380931336697584364110168109396118629520781642649207163330329668791965504007279710885184745876285246100316670809140073455448948779232102654967496510907087370515632474053905434813530124469245503769181470003564475972090608605860000968195829589768786329209483156258514638046734330271457770427898148055032538300678285039182769316854854267460688208892514142691271535870364307058913439288420205085574331851882103639047748297091860382783186691905042545493676151834852517604900463707654978292427572865950693986312370699804479581772943185189647782083209776110398559116280725361779855808962002012928638877631340177534509900470426538057296749333946942636077188609584366600341683997151067710151272192183793865010527288485030594470568339405217821315294173275758979754026736926899784659740059734248994259079470301319314497899155065545295336121329251864100612838024405114943868859561794813155201038273898190393313219956873073066961136451835864664404890550417951836675285779339417340140740162133562901284251995497836569835613348958477339346585504335813714960286155709044131848719633716966589598122883475188774286432045162568793282216562929719839193957430074486677332011825630537301201114002872593329004719597429934301115727048877489616530100531170738079712623143784023636643603724508096490238412711227453297190212237394134261929236591830251603000032044741583767957045853546028443591053213473002958781380300248446263578388496635432732812342344959583851964562958085281621711848837938243899394813252319284134526928691261721444111495524594279817332686254796050046907236571975937848632474822911987472399907627956217416663095063188779420236369543059522543570915709131391383912250508609834552043191375294130159084208984843740364388177194908273072147338354122762597860417731183717590175913289047999325294954236336111876189164895827266349533044232236511761482640006523710866062968009059908228789218465887019662292441993634025720708035538117636153790927197774663609536372215434335848145158397145202354430921410668459108445664091778560229583560429673929853809373883377640580437862391062705503604034827180274167678884729124851613070508613693513161306164361922075753399930858849161766788725097358439703909069908614837090703329234452383336327504805144484074119634453627988853147613111703094165673247527342282764637436126503724185274269744441179001065909689135475699154100436475749808978601731975379180807993712225357034381254326059561448891396458558224168726927647993607739882663686372970667527429449989048022000236927638529275431582910931163585801399627733061486158391878262059940807559612381781448193720575260269560302951187019916671980758112964934646579207713011971462435913633125262046213965559019025656864414467216452377763181448657697541538300064657199153565852410995822784593325814466160167389647158316638207450169449707646025540426395107389731881588542056370908708620491797050258216164130678637029279484422899776747765492081214383983533395165682905295251036106093403809334777080253719341930336778154239669812288670875961296926736696418127757914111985442840183174199985151037525259224386880925901468660897260407767775882374219611291519548302808932289107081252771065680042224505436387432943275218709427272740645425218113362322441538535851233103954775398029986251525150248336838536311128409819044050075658991386742334948138273378168806108537809566897217759655088209614632666289684459869272845996566006536864072580535175294391470301416011334961396192760546357249608537881629274661263465313702152380346368832311698964534797231423206897299699541087187991144676223748075903852231651396130844318494471191909235954725506704616413329408340094035368348457074757916220927458288520379014368645833432398374691978182108939275804989624982181813901896812692695874729664258469369739009087475704133005464050820254361181525183077529045895724567295109468702942524148251316207032341820803628838316942429279303867043010462002177127021053217366259934243021021633654630252375242539906742077171807652494210907974824774566518340281318433063507755629489010060294527618626925240149129636229887382111399209381882298973082593223488904150491103584071291065304918997461251821610171882453680099976603588641314457031939112280945438076496323741022688838473492622473747386017711431209354436253283055401680057045243858638293415217297241953879086636836233244684081211154895374321748398635796909286288421483061687454144039742238807788224922905977592973927218000328131529904017281743162643216985241178441196458129474226981098752525885835874286516896270593264922600707561046323797212683096621187797493877563921219761775589808743790870832096953060986305838627046049000707232401455746012848495209505563678327570895178545063986940884748727456444719309060917736745556363730930443190573295866199624685828256071995712465255660360529405062632374954843720628490903541277194504123084146589538477606330524645289509504542676537045134303326950107318152773677994849818562433110392843801316267992751782149020142835302690763697730070026484235886193175908417864321304268094653764260395459235474449468310780727312933120087452040818228886761447715188421329957460482525412081402526263050131619038655657189115133397224025429544979575808023031816551592877800993265279543341036703399611134130898596005474577678876199303609681212765953295272803739419332892947793804087172583837980137033854772263043890484028281236150147365491568404566088070770230435528767637399425582237322608386018789438804451281146777353918612592227098878431983490390149899161693436620145324277982166799093798567329526156999871913359393538894877632919044753120939896728595356891106615322264127759521334510629755559973683963365523794159824844432299949636573951888993292062922029509962053829721748800759665997635920983800138773075599171769754586526480876677107661993447249538489826022880278784583512932190814698149894681369512493630221049403316188744251560786917241984903554074744849010452201365185044362251757157551049286799245097258421329751639726153729578912251490430607351828258458809717670871537058644023379180706426976098158785986399038298031941174882425227291566251003856175442208834896167981839498955989453783085508179938319967915452638704267289432806024601070660979243557077341437780988138170192260404009550685123594062824718662242947053271844534683588260368867838174101060868289223083336563921983299190061522503641961229442379674767880657228189245129160540116705974787424952443200844558967781103526410455242304647433509216168605008482978516062959881079724085295083003129043677116026169270519053267419712635364534075489769423214549465311310513448831720536158954240255000667633866245890830539357837896579548519601809872719816298788408659172468882586109690980429045610628467566810974710777652911425564970950743176706084640207915819160285875539346599975803469184105482284821560234109502961828586886668402345459204309265566545749478499478141051434628543305601774531594934636472567237788384375868679302158778145053397425279468510341303660040168173384659479559332481658680657884814530708910574541421373680512960211016826186117170700779851370814444161238129712251343871153838623268935339609583412422521095577659397946822039316270457188672414441848168056833985106904738331787251188113845468032956586463743431177016656975022942543800338108444520768212851195532571581670694409948087048125220153002894309939263060838576222618052211256824550120208588380210038633173445911158029805682438057656303668966342144384805761438582249071583774714372367407975212968845963382735544496120149564359277766136426914464265858640950789311739802340523791709353626159561305019281332028723388228997841306126955400143368888864739395298687940188497318306519519744555607566582409091798182520941251338113774836028784121461967208574030947886800111190044170786146878715975104428805924182794845597213634544308128299805077362319358433674736782764200923203066754377299413324702330534410249307782429413470301290307094287841117844904688909469902742345321276875519449154492533032637110357787759776091096572718649793225105334230917790962306403914709121917189499501875411037426435861673410390085278334396429678870611293526542652125840577919559839489662222037982789381070148788497547722431628565090805525968208833847986382036094287630558674713568955144852617803932963078238340614717970260942558399904131849568470393352859775367350958938123632998081435238668310716104966651513455161374234737648311873930726849967757742070672822706098642273622648353786951970395299625771626698340627381793148338573096479254427868197442168660793428197361850456463260517025183010938505130506246012671253249397629408384112288320964501832178050692427119730765857758854523268336935274568192996089913278202031384668508028045832904277609134524986251042209318489799567868558671944995021298781376971477910363444821628347761529801288500782513713761005842661584539567375839025112774665001986437283033393125545141546371593881300601612481442447677767269342222311170822749186955357791645220370578751337488874054434802547751461235761922172670527878817848181486985940250690574953635718202701600111607280892517578664394969823235127908833988453259552414195985499108415675383400863666307189267671683735170606497234866755290356931080715953276140320501550791239257602253603218446378841860201468248256237348640958891136454407324348184894007235298355652147743412455504224298353297194082253474798154582748854959534913761915781528613562797854433987618250154435369237015324277376611542658623893661925069097798241518221913656009323904961610432101378357001041304281047170653546100236300953105966921296070521932994031754072130508275358380950821171950584114190767324304901427752660084607797915284634728937586075763812140072062651050461779286143343049721785674374113489360283757127060146657459971510908066293905736003507808961600059294393164026105154191190411880616191799519964427147536273029799248446558901278813441457958478594555705543895079347985225138376088719183900209709938980575371662955413646705059376337709105684196065176733724740500951392953854652331123868997842373003816043424693945259340845710099287528979245859817666934937102620059823500323971801083173909232430276328013419541355584869847226623988792550024251882760095084540355843951220241892547198983135827731407772295892427284673788780649894026729173837257188114228071819572392574342206937667481036842810807340897312479570154914417631578387617556757821200113317719928612101135048363530359835024949910791729556776691883640558914792016952071386022103868415372875633804264889687191479938150221636189645595846942826981828325734211480607169149568331556384070905843777343097808018737596392554609352365590262405676193390068881043965298647815028605282554721616143429617671934528093162511899621580525257589220723837428040959355682836044838313093471315286733269832679057050331746680564535265614396422175861221171046544585609098850782534654983208493759885942049905475116701923224749770348568887910064053820331175484002141201894664276881573405608870580679436464440779969257347856163668417789797119095844830623074453416742524008770080094203963731388444371093670457737816950754992827089489103179993261517359868117539066172677623619711708452271124877797997182826523965120068349330526025308441295220769877154419943490508560277942729545746341967333882020463604313551004759605720254477505536763383086971238633827215407153262641557171273557842934547084234434692867368938952809403012786710356799960941358426207316482981299359335564569168916843349642304471395100166820818122648803885640446363401001838783268539192440522462426109742613253670842978325624895149353047297316475398869147106749945960279369737407151286153940190574756251707342081080993045267331279142094068220796813991237681261410436143405818235993783356470877672881083634563336108942579123495452705836429622964001914352225438293609647487851701362993646178825713751580113528739026406611945519078349426701201441123895080733734193919371508937592268064762337373651576701560470271508482796704832204118958569264719684144481482163519262259650659141517362694892396327171686763670912758078930852268079847874495792791820154423512448241853153765269818586502583856717655754146932832959926303790653285382315730214957944046064560064018699488501628327061358851627925977557407171287685359526393331708392493054844559164259510712565426393779107169343587612703370508279782868855993088509024668554720400205407058560774482863667073396270196692428801867925042468494132590771562337032553859489745711587962424277495308173647326628834421520660521398034900147967949253881618172416079476546903960712430819313430150930942073606526180228635420153687236818474791528313719083754378668314264585946709079389897362339124807868219559615254752522832916912685706358219787883664578647880473573351695359514455630770841340282365224416588521479986181621751255479354255975465656105645855812283570341088297148162547562507090070205557895607705889531669218287182707801274753325693756210704264320711136994726367747340575011931714224253137755697274084427499568152114312141262068308118870195586104231890489664799477485065908411035326342143955596853378050465443350014626068831044911094443013889241369967872296190404173117968699811083007766962642535392636494045835696487790443643978144851571442960898964483135064583457142604092610598635522947695519022946443457721598720579262637668102610787960439579492885116233089514941045521689409072471768716065863337535513767650144156857243555756188717310653634476355209091724159227713627854307555529687612489848502348546084749648924448823923714041579313036253425989235735527491785115427154568989810554777285154412992407454664898898050859800621694926149185108244184969116555052532373639299615309229707804700322823215503110751777073411622303000106060576397675520771910388457652669136703513363635323738291944744946522183875492910309883862501972761662497491607667964768866007587147512415840211017219822285417716034732790040152414691313713404536868968071389637058098230182153226747619925258121432761654414300807743832036458794082877253306689835502766580238193278520317258281489632359764763029557748719941800442523249366944872374385795276683895227785752046242360599802486812359756367086190263301097464107829420437945935224669178360122972485677176065150228211525515947759138747292849445773740016064326942682750786709763709142850157459635186670179948817247534868008040074510686778950010098932956335700524066209319155619952114328869294263586174276784501393027270659799371664603785525436774529811750970271642357073982524334099476087051894783722881658406122534905134041365609001947843998367703340615592642497393132855808100519877935197609094631685309364353233231502722289909684265876380502586289375081544792658245016284996264293890043182950808232222531355517758948265505419483296934197597019821153596100428336676770779649091704125780024738829018923326367750108283036273640787566393764816702444556872832618880755083895778906746959370481001055214415622572679905937038593626074142420341023344475408735009442498562158378558305415542750765852823829533129892053295269017060251236713488632257996063705205344759388511058342730278853654086453052026731833988561967937754693664596481531856550889348259744854626178681563179860514747306266694899694730527807631449521378246151594840233341676839754138318358674291836873102757727748357119391407605681835632347174424536262374097328165028101113957375031338321567181889070321901531366027937088634806483942002948831536998597690319298928973533212673740001099936804727642720066341193139136211428300386677801154647242735770411494969535596024940222573110647931909119463855650181914517167763016993374693586608221518405628807245398404629843782974489406443114036728939148507469531951515776563470455841850064442386733389401988090429468518878250356656051099064867100281407092321490722101219145769233584174666019147240284996196362787531011480076966095233875489021598612252653328906946098682589705432776216482019718591923594177341418704786809191207297504483029730864187624512979400589513130086304952424502746054934096863521466173883437978238429469127753507670862032459817463936642741086059157402335137116843456260799843769944534393372538262746184706018517526561717849515026033304034105038509384603972376872202784037254652585907264463293734080979285388991944460317278371929244690799211474777676906013404345588765309447467856082681485328955354655404179889943941676840713162237763745629632775582290222437081895693709435842863697612285906338881659102093704614020745805287997874112987597663839687747179366618621290820167074220312418676368295452800846599070306863084411929181416691916262272793835306186716578331323334945298905321426728691452932078294603376792089490951651082899313766687065472067195794448749819289167022700585742573289497981508941871850175775924814783226533462251343975774129430278801881829350311701769653745438324763833631793042970081924110107132635893946935781197551329948321076974335611815949294812888597018925389222520403417251343581375057899782407869139302754314849611070076955162581401638597950734034339917358925836390890303224948293164716375303040005049846629866773641031722152733053743130337034735323897138961066797370017005022054777382692521625473309161834230389660425269840921847159722443456959413950399354668268869629413929314900250147104901890960493098078560437278945280875282952737476370635772933174519974756669534730872397348074327783819200434949931641868875929979255539940880844618491138039704001450817703291205778450016858535041006867345120594383021502777697547750376368110180226326930570243641678350692211815898041624156968358225248001737994110843822671338392888999359324897436279654356447487880197545472378282311552601318142112379313571236284284243532355840562793495569741990979710487254572022159357170537864266472505719547659358703924058576616748896404321166515134968178156980790245109142158460327006061561362205922480566561317535018836712084717744521858671750505645521594026716630861400049063213795304545260145679453818237530892557422369715058857099213095499856264550243642575019907358286023793594874193201682506594778129024164709019063839776788111807308726772484658574652425304289831601131372329208013204561023054083213096619473600135498452587900353607376232669350390971459092728373594153897540717399471719634480962389650617432976213983809135962984067988673243893596980879762921319961579516565889202411439286795177065530688861111044814515638736013263208847096135008296862974808451223706896481289102518114670498847660879427841816264851325249397833328472590886995460201973211908275829556334559836344503881401882010476510131390291326352260917769721199533146282726429990784406774692603111922288512458962090227904667589504320079525373970042217540071975545240791290422590965312104521179977994626479295730281218732721916915222147560985668554264212524991416182632511170264419510719024636242317979181326051121896806648715737461811755431623668360453192724212286759419638522849044253160295788775309553798962780298504081317701131310199699688126292896109068675764288257409850764627996399623443970629007815611210031589172392219525168604656192543934077313311996348181597453673113775987974439826453905034197071163776387728325925636834955149809574851794972125583831964973958700894037438990553449177508710817010917058152715126932867095240661495657993785703260115043963624687456734045606929640560690087396943116869248161323314220211971803269855328001251597055542575001106228707359132651736766648922852395346123811668027355559526132708475571625744691815894157624857596964165755972236419099496568603032573702977113469211253113356746501842624088184911684009454039173963117449510779679831600133139143231119615256200980516090378104993108541294069044452850466867955006297260473302599491828247331631241453122111921159894871727683447485443840813961240826818670058263249943748278615133921198815020765447553101578002481957010857140453232723745930559604334535363180232961129296544377192635824261264828775755955167643819840872271918945202926882246047553770112589449003232983268294951692654778184738360004104986337677490424608974332264514832576495768660323695564392414151603086121384848231343209005317247390847157523271158124940832441464289383488970211817558980376447522065093296314327430556764657073457410235075488343363801363389547287351844449524796673742693359220026133781119803724027844327634807152626186785704832447617402316838395755290567264411733164730205304568187675484008462985534552251358785573068038586665548510500945191187453033004910709943287679011357444911638792330352730020726879844226306569171287461955933281177393628016207886014553830105405968404662333412787227535447802446536549885522714463898492477510179880689868303019422856660288688639806713892542071813691471403401820774558461796694983497432164580108703136560078051591335497026507729938822669253303041757797648699001606729287669365515576369371231835661961053241076025622711679830617767604240945580847571263670379922392497872312337602754177818727613072277370935529361503949603671067568591228372953012954165031372781849823138348223294232860807392528158342723637024553324085998707992389572510397555643156724002940597637582927325681638324237553030548312788018686820527299377553351733272638219829827748514536418089231151272829262192570445590668618559168649862018375650223851552353959932865161266250509563197265487421712506620180744775621583758645731813069844913316946351528955211981929890556946104965644301856689268806805953060341572125390218048420186639665306683926785450088092516312275329188352789599849229391843018498579169170233242046551347450119700424772674802932141555360606094260200610944698182152168795517202314633026612371720118009519036409202513680613109394241045602628037666916209741118594290887708606493609819317312362693959312589612708222484988664245701441059967051772121959577447480660295478243561013331199104527671018168140961228751399143903106509897026539232404371388763768655901282486422014781662653917082034611188701642687664965499555066176261171473695955623941308993266240831888029927569509984587316194087646597491170146139840112945520471383718054358954164775877201867822441668893560324494453132121691123399183474734810869172211191363640031337429198268542624881759923727676155380022016657156718294105994652597975171892724918926739665810871447588714903319337683684437189864340213050839040430645740005221786427432998969379956557747210471723103839919618852578449565779215922141344869346097514190208162189653027621185427859976686181856991394081649061168867996292561511753253092981199375934253845284707530796943381735309978903276864213499480250701389710561643565617221725637939263534701897349734589750664010544867344372782939041763193600437036317208950849010382408474253863734393859412676580709509764003921837927406257439127490869533833650128511732953252937286174278460556656931806563513301136055210913828797701209296840762919548072406106439748149981754208785613560699991834136455276011200290864806590381627420400247240693829683471326851965437836647252372036257761933853174914374204767665197407150523820928620034245611474289617750134827514191157536878153455635874449259366379867876068212223403254371205756860561477560322723044073404137682397889709696875397171151328308010486951848594226458792811010447347667314664687624749505560477668778301866784248806990996485001937739662513867769201570124086063372900382078773952610452447226393939209146187234885963588136594072556969517188563607462783875648015162793027776431308499731492291343692185815148320680774199791061524518594243634561744446132190944495864282443141720862451755304887687345149480362576459228323606150218283821017399072473760410641954358140197191253446064502903909461814963324889804065484816398484122361721493560228402388559357011457643577188151421119248158796177120640422441484900305785404420414991299168848682815152170785753498331028195082715375908975441403555952311446489267815621034924723051281352178790167260924642417467065000390363648115522280929426372908047808803539256393376277853875784313154266116794765377031403962997837706369010987860801936191593372346781623724471569156463765523174771845882418987108615184500553409386755329655078951563072498845950798569912103878308777278735960744987333519084405165796880202033635786511757501576042675678135921299427538845509272161582617838102440532260200934989354474998998170942422594088875539444335867550287863720755338806439083781274043612183243360593231927126553508084184306020366870459991825390817385097558718074825044683378940217372699482897082865721678356579644241388915436840209043217890988010525654905516818646825245385915250967851550962068901567354504028627701366176429953074728211396338038560396151163334759719540179551278598453750562882607960367002819693178892009480203474929425130493327078815069488621354920529485759237717821359485082570104757201642906765788103652468953236808422564849429037924951160270878349692549997947042941900718504812656350876335879239718825023929167880478389315238695940386980661487004643536763772426442590290138936759825051175777925851900996515431864976168320963456179413455893593160323933924900133075778460078343372970807764504505731772687095263460270713588441929155505725018735063316600017088726486181569434457866692407506913831824720451551677928241916995933874228188515902551989915872509346733770695505168113138488443086687298559912590513011392244598956814958999207440460476016727904203799666217962335306079105929085162447550563633844370124305813362430845099577309190450123115307414839377819327710348267575604651946919101389613432157178945990402847128620132134984626005344941095830374945132099191805602052581438759627143733907685667179677808507165178495206888255680845118203615383908228108367324771399147066663741204995551029836114889692003199945234554478095762235170572426521719098747184769852746974518412242548024703500377040348445870475799345807898893099049318913945949072466431295851913469425085228805047954848719809447283257900127921713134685445780715356309562002764572683521575404320044138034842746032874854263643758449800079668594316581115161506823643313236814374860754387225643623388996681516817087897610397771091543220315083115940237468756681777036804884872592889805394452299337819643706174603971160456607593987703236764133652731998471119039587646240364980790641608576828628633005685058005645337298217526935963413880318729082382469154250101201345464570860104005264219927657603170225237649200330081646354027805724513599902379920545226725133968545587042822753108358428130350731582841501166405278414396987974044039516880179013820849065934610805689299902238468466717240375380987068211660807888194607516884807677686722426302721252110989078148057309405554960728863757129454244224352665618343244922877708666671102696963663163659809375802567450087314946922857970832218393792671693981513739793857931147939100522629166148696769833535154126448079412813992479270441982103661096438370475561727368363765209005238853379679346097410191447140749001139605938712138234025317857878736146887933273840484995150955946306282511547968335532127712318015517761884452067962263460592120923579100234586117413169706777233135743185914333107070139823871827807446142163543439944049380706269267916999862376289655480055081187074395165628955454145472525752305695615169376830550592345984188316624815682020081916640851465437465947103267341444868253359723536281594459203388772321128882014121470880248668470956601651456420655652421714980949423894739819328362110029748593155132857009307887672380617609875259481052410736936347057603592714826618284891030203679229053435674182106705242031611946967193371638985733237626466020451386621158365905706251077724136170190045649169974906607265648836897922053606003820819787829855167252686108562355683425556904518205826122537402735093137587406005715716762811454070213820025451724619586059134985304696966025183555730437722271262235484503835122427410480327600239890046333848253124347651677436624207339795802226681926168592519414945956219302672042563480508568478403043122669188189221644602641934522748935785258613690350940278929980817870862589335518638097747430944881379026243304826839860610009686564431330239135855750289691104739952491637535518849025112717550277145443040682549613395389404294399617699234775550528954219003394718578031678236592580658127240986861497303386107661860491098729994945527927254823424717299884943986144488670881436419279770974942547912671785264496348874100191875283678485752842915680284675498959909610690631581568151268482047179644130271156887357949267530941456859933271899202053842192263386601129905302485099695144053846505395587193495178266631306624895031011148192552432479902847870996958824301024862380753649574973429713782587194202095071322355808912199461445592276423649911246751020500688155923766752293476346478561039495738354835556738880489981046188652218786399822360199513040571547666159538195347364381424260421900462905785826616619892915416590057843291129944751890931386608572193029828380236399099675561478734140282115954573278725173926918576536593959618186627480097742309118204799104735298516884480967919552250917135013361525553228908762571096736903503340797616539595679631352617451402050624323558984889946626419316538861854273609535921480773136556924819822945244886936142640140789594761062236572218300890974408033800164020099979632693567676055973646047482205303240407171445972686627904660838883244644320658961801823362444861254971551748890046717549931520228645814739663659416133148179408120819238717156688299942643593426090130095786400341312748939484389953035947111868319238247870932908724395277131106265266561645358845284979524838860963215719184292427700317787027137610513813343183948633341840935529569847406564697011346079051934928532582031496985912648221302163283758627095446169526151139756233413038879414988575074499464449167937162748044670640264746666311369033927741315375719395027509551013733754394197965422070289026134179857670680885280748121012900825510301608776794668616606201047882676769646617856893953773049216316309945215703721170264142421304714238084634265128396648050792382978056853176023881863609652087673252293745350800128441245255462765564599220452435614366940877260079927071860992461952614886261563162824798329952520571117179981181514117666345051465153532431149306321238754154684622550114417787940376380805719141465428550787462766081016667354665700490163972265359372650965557292313903295293789327500548407977134268237421380408215945566855460344876223560224940017106127182271403066167075173771171794627781384009018586834917508387548530247626041555186115496964869945468939237153470567867769511114319367294566084507070809718242839727397317999240442472020601797920561903178077348243849538864073332498520749267428018346279057036845619924747885603616906536416521124166567302984868797143093496499436076600985274556049723942098250221877365478256736508448741563443997687388875154870280037427510267191902149193786200178323253263688258710937497180658494330218005424926203237533812504442903550676085723973285574051812614065664188326745224069565842487836337922818266920075974423197144143721699354926872931353603121933161704176308061596484591865262622136041077398601261860227386383146321183216642481339853720054085422482423338890386883014222744940052596127751384392725557055058629068334274298120327513481952664230080380516260780667930024424434598184081768103492050110686893815813433845351860139896638006389015935173083299718036090460480165591738220829277849226628878157632466571005036586563975364044386016293528221891092626520245345495441380739510504589346816762561346902969091591371180249877633297160386878030981420675756368560734041022046661957476557535577191824987384233526246430337579065352049603121079304394679281209451180477491244528744457404587978539933696016825088921594002867938784752611388702731281596571142775889502502796520055841546300355864095097159041156653798796739537513577339980292829242380304950548158575105789936447561099399687394349680452594905058145103447538134827927085137614117446188243250401940930112460909687623310852977249103910031854703491368038669619260158679706310277828202615513888446376693867349618122697839300133143443781046249591785091378030620382117506248639318306254862008658817349230325251003551668715225239938224319532491850516377743192354381578720553617935675634428469185405994634930629457288065051706987497202339598782602824455797428293579086754229362878339154476574033969832183063470711081262800847394093808122310591918053934178455932198652200018785287104887255311087238076216041024559041673499195920617434568395374587826336736366598012067300057577894766086863638504855508393672593054680999144883472923201326741858635305382686144196936186080764089951376155364958413675905497515331883481689215559316410523985856011326420874072818344190595475432838068720959959005468473202033092893453648642563991642824284862972896733815789855704118392897633680866156387292848475211759511831141188827583675372787740022459534276981129261726333034659192982383945535409536461172118561863381266883891695680361219130697623799745807080222747855880624339774926098847370317784104968373410292461551534900359070900329511832353859182424296767294991888755249119024190589589079234566153111039290289374418991086905643885674870305786234346891224957829919711526307104831003047023910974491094222980494605492281811754233262269300626552613271301298738922900597265013862938893473506873198745024500720249480138829988099357557168071949489091985716637799316888327830028340733336225225814576324142685244574342058313641095668236974836975660766372652358364966097199410272690538543519915336259345081946908023570121287226129472617332613046639531923817993403537600148494218721201032251464302834040014415363498159388074500351947302359181102740647555046383070916525940960292926237005461935882246671499052536232056942218513409723660834765052945541536329336751354093132730405234917269811476976908116482302871134439600540956876727953139114382773044313711861779186581664704523129724429724808734687540746376980471119466262321452291566543764592870150770974110212664869918985707966646614317744986489890960519674889277069818706325465499189389692881057195783254969543135569561288040320793696210749969220966797724443736905923049632044295711659060551656475610882243252688893500144600815180232725235250367095073738673794965104271948222711862442018093927333549870973898655836603134197488534022848719714884800299806790605944004654729347335243947915636660898485965470594156283706248667245631700252034624464985197693858360866895780102635758531950423406163215697933468072641556584231350619559231976822252480618403684931760757448175637837953724453879073533034582574977490772644844019676832465287940639541554010113745923897093020283163218067210131677830813863387778785700861935349006939743713276927922535324877002827903164892777967640977161469416131863611083246618120431641482003711499485286413900352986633816053627805295106962211592666927045202545504405575802864244326318099308410557800780998144881339301407779508359377659064394882953203689777185791722661353559902077880840663528622186731941759418797494482268880769484795109334566306474957800090436925776887938115299976194808368808158695848929799635287220738726402167364683982620370831668858623332922680143299655015135443715078750939685126164832219177570901362300272965705978670454438032231601528949893687919908822783988217595974320969280868212738325559253005849571952540661889154906357247077607341257162788025631183379200583814440154731874847185359585733959276602914028021787545391717990734145584983455202036152168829349338417080997934063195127531481218587019553318919271490197741887437264448482202891445800700367086972409973835454357077544756727941236041975742167568998577956149248297402426938042203083136900207773190478785636125814590443030658129313026229088295891869247802385747725157752189735970591838263315187572110597580045757756630965139718362509838928422331081422091481613729244550991857641451514287966113341318991666969346398619701533086431693639637279198815299455876274480941012417753028309917816599254167378206807152713154894381923599061423131469353957844653789119090469084745427215920189985831145529709553425052714255955163423423498001237097636410317509535993575763790546901581198640578309743394853215380878421413682829089854722115820212751189879301099303532862487684580192423382326813626301229197153552066296858292435985065450789103460226088154094581903778634700028988886533615257709247656427765924042162420631516587150570432559332330875009887682833528083659825254855311723229813460779656796387640850521094041126284751028692839671382523856881162364575612115451730039177254039367369938089046130700514601866374508665880375641799295620638435332734110662389110993120411452718095613095332420221182236517034114671712567926903673311879692451165253223870785833083132001692750042014580318286948135333173643061495578927007940686398834199327131213503023923475809338404961351257133385077249864084457186309708228974026502065238365231079452766005339830466095446489395595432544213695567009111577111138956913720045124529165338957685112518560689297647455475169044478235968219600689454872438692274895975828728048527877932434392380360943925967853099583398224773131791303917741324123393563468770952309908140840290242693021790255029532755458642650408892506804048575527814955043561632209728417022332473018527159522471483173150996469475982720534769085658169017261739922822792638321173922975511372884885714775983770379467099250197505775712759274424784035361447474072528390654280501130202605282053547066600899569457046285119139997705449031772745643584629101621137729613464537346292082053571710181127382806883067072592716243168736522382693064747303945978244251463359356509312307440185917400619153897421933394498647743390701890926140817658924378283985895941393452241173295251295519050060777717821666935353429523963053716401816092532551028363931378449308401151814895277819479707815559280028666904770260093696236326001345159529751579551796719007699552433504438555836426251158653069916591879694633725719272043077760000594825205443726709069095647801520803187234369839030141441171036551816583765839779109245507617443622027541681078033191641561299635058841347677888404562901465020538666336461845982702369065582446657920800362359155123778236134042973141244904403093372090995682724048443620962568601028488256053431139388336191394642108334822395258634469425807085466554244360263053269806473451034043139961825905984072867713799055376148160683391796336588625291776052826384601760007406796345649999804818787041781427520493538912648106515850015353257405956240902663770196815868108071120832552660582970279014282875217662777241722623507050465307359363074335052575111532645332399367088400066443455901562581718566575150677720923054328964380431122997079262855513626885919919203054970610790438728462706547096677658400600758249986137693093891356751213033965344199051076583044514801275253930402843083384335309940542902266099970496001484826560475304166794434293409361643750037184025209139464690011026553160865040773248802044427937076224586859000284922739536543802390408956298170307601660883518044815154181566154842358737445285734115821569488453615430111615384511576450729673534914151591556025247054267379914190484734578085946871351217117003176760617561968375552146547531726552251681477020418349367032201239794913749612645036666171851420567737310687449901542387849025538008098971922809584541238640918333399593357605980087824132156139135987813566070037688042790394185539362503890511239106882456856511470681226201610011837553298923331140461152868673814072851353583862453263815188896808346296202199986808367552469832484250712731977291494717979175090741412364751350081028263313200020621454704471093053184337214981196952366383256388859664327820385765462098876135699920444989732578075020874629208285709675850476286862851062086227167673327846237109859353813242406348590379607016612375921387347700077192222932494704663138461758428141064824872091010420181755591179336413830329697813144317224013626141464328020893366437045090070453347245239660112442599207593468263947525482157827077713881982099330506225402804672068894439871156472823930746890305572340354428757021557609410226676079606843794575333133232678474848067296521072437915873064598651711121637004616167707208132890349053622517406064742519576664672480999146149135223515506516345820949689661978319857037777127183393149879519594934395723850503020198965503153487843222600980391543358641290056874933648112788991349009271440242064109392341984174013003278598448755887280633612498765109698169377184602207264550122622390816599273432266333403987881018929481165192306897310685850606596939832143116168676410215971987466086229082522427715741129454742223819755136815551176749941708127682609700653150582983853681096531707243517260025907336298460039997610261194143180283014092493199505223657641820916036532034875286665057982852353521535211421349817737169813075422408627943453784336937347781202655764283729303309765997207212907959759403856324998296336633213943663864007211866406659518847679020498814733686987056550799207000860003377016177878941546904806363805571905751061384243690462266640998533885074421848635703492128009843128645787235594396993443538741929615927690859798865902081827096862634601653428342819759746177042677550779357449829892688042034639383470729509319633778621547030256101952231415152592957193711713341995726013432245494355135501722906304343067859900357857277845580051490262093594953629117219525326115791240328348151957785119825469429066876185978782720589330654296773964999638902855321288206407597267580834784331882142488122398539398266293589158459708917982629387190571492944791905672813217745868861754996105767163919654513709039093464754989163357411899543344003727965117031195487652227523643450826873304970890176600038456878224259214151286620739523606549600381302082832330538712398825783338572461677019982363842398751973151543017757157100920762247179261522408754496452001149125829598168950329064003906336351898862130446163220221539431227593754556508006810015519107930683219133430419432665294406876109843984184242792084964115209898486505000265621253450699031333054215939077104643849174241229537202184393338676001589288761638710594238349250431567649641973780145742791682109397336512949215920843073131245553291181686713010343755689137292901337786016773367295046235241859434236396362176653299189681307604890101456396186174575364743554001896256604227098943526666859647233165073204312160937570613986910244218966541043201547546181588584047183645124599252755081972368511015172002540106175951781769773796477107721291697625318348554823086740388574573584632355996287781039196745762943034935986481951175682352933510111699536446509010078006487481903262423664786333771078580439812046246893730634135372201994427432547802545811337606678901845551052053501140013505007133048558880219145897582794159685960466053566879942034547447076765409288068059358482040421229170772197044979678149708887502793015702236066179561884577627301578108799939157198617753776809854280724770639468844170803112183581610367890308025818323701883669590137165794966242876658116828889450914294509208597221436847452694375811983271355506739284436397666942478624495328222994924488786013102112422578884163968432993073684236452907502847370132393509723725206776521373935889976024758794889136741832842104867932768264987811434602961037013084402572475605882260943865411238031202400312827216906481359673663746089947030437567555753230109654288247684094857277895234962646043534238409594682640054122923879552876427210319969259929091785463210844678277662208726415564329499742676519508869645201445720055980661373367696298213247123559656622350924572071501968111391946550892437743666778839193952576861900901598899725537114807949580775077192397698842034762247816915901214109805766694134853504740567297769159857924132901842201909856926071401240436983886105983620164051081502017704556019079655917571580059491525998926832151772545743316597796631616694808042778751569645064101818535001082855364450593006504157804190057786707681474832009352667778522364797529099943651010982868367107511024199426787039900946743688043386844309230862117337033717770269207788025148938902574041997514234327468177868655535816059823789825454925862225470526174483157415811170242883228242978129298395538577060660383359492550002403217894294565682441262250897373470682980608023480377461082756331603065914983398677668451183799055374953900889457014333357983826401478748396410976027236553382444345185019344496122107306824589912290854639806666748376144526644664260215396172418108905349985703799772847489914575242562372411768971834682410986907558616541343582182477074370791383378877503992276221968171010624449719393199452990186565895641076886314236515983613340511013212318857712237808425296869410434026863217169909209982912276236237186414211614064953100550226502739433254312024519380071045000998168253987284067091991587522878803669386224823538052304450299496626464974741357310518430719072013926199491275438132836855142716949605900303500360202915458469719013145239622013319410349118034833226400100434686390926269260435130652529149959700200128562345063124098935443760791521597557330163581714411377040385747307003094305064746868751318351759326045309697473351717932953169441235550864631463895119537915990340333806648124458295523724215502644274474865908822742028368676918537620162861851778912401779603799784353394180923687927332114668238273672605518063908767807876709662941139007391415918485213324556893123681748504606636312452237720431816065103903029273377666622998705751483919599924356781710562937677408526107887748887063646374936367064275418204520439422293190563040804450169058197317693049010900297851654724473142231176780827461446205100959247195272513778055978959920470942091305239255627570334931396058432765112837716297546842032982708768179487038028904441606612118815136707501068564320103303133687659124596279053357632935324823094695290348218282227060703917997598264107379848431825853045879772685565262556632581169693955549470328435402421728925893064066694110228181576367089274196221287642313919922523200428072685320051927292152290478922609891967313646931604595125018715300536724293737365626770201376710969055415669767223750933172133547388576970176859347672985943105937045174138930689951362729615934215250787139534705600666893446370793023178727152299703411484909796873578388178510806733272227809618171490560548508788848256662731617234789195076652126624190948346040886941058204897884042074424536214641346794662104525952386978401461137369200592015079489123621663202172188850372618614571200595232982735994621980207107175796829210502655263527927861380628099222813610972318880646495509137302157702074574674117176278431852358104482398065812367590907827974485779505518385978781753179654441783197104515531346838817676229093895484988915900927806138774328048533612270405752231182983447188107265950612016146002554586115535315405326540893863870975501560627979457270706297799551655267839797359073051465608195990172377433834119797496999727031121288376808005367546663978212847006616393732529908500756564975141084175140873418490813812412912587278746832911695882804475714107815349181262016896196119130893898519742641260842892518620998509893779983291513129804804956793043124054268163917920343247491796486462868351707205284254593240863946168307275883898988741988983546917082261746271352672859117856010718650763043942979907694315461970497727748301857876791398059440554215302715041986708226193938297288087798416864270786661589844702278641735596297504113617213724291337495668429790452685821528521363595741391021638164959456342860905347986776579159733095784879197671104884086916869315291831842340082589054412941121234771580430704899056615080029421316478372058741257516160873802421547774057018936242890859781021114897473261240481614431675752827083422448889948095510521495435401659824535965722871726250569634309799145712397756923517022106595709797645102399354963647555931585289724291774333907454272816037185884326068018407807796911033520264684616339407830476677787667765052100480369729047294418642310813598424225742937778431019755273895339868708226171671989237723415626351834548482061782200798371238549265417296033533734529533933738569078167098499349960923079792608767954313158009728195647649350854949222057797047390251147300042475154835913571963596583325344256500734178789143118679432048957520089963333722263292446478219828263302281031408573863252783615785352994185179100233848238343222270151143858163429280883172056179485654217394803025265286556200631377572629578557242981663725984998499354272582626438794671530470278463829502053488073671493860419624688087422152322433134807917780142697981409260561269581433000292515335754055753327023696010202481401326510382293571903850718116258779856249564121596167339267630483309680333293981337177130051388291010755462111526179018838711924185659024781046751213848000965072530568862488532926604181748196958419753026943689900371264873763625411167720126929147707068297844075794938012915738967772765354972794709509809199923200754440369311606009030296969999167490686283239692505136235887717988556741330432765397643944722299804501256498719981774028663288367868956513743094737846816556485186488823469931203545151808522962536614727549456541050981500729792869070553768458208068959390217893624105410412503004880092243578463686171147527251913927963982607951489879350216106011928864680586855748847147614632356200439056850245757821839045748250022967126093960556387397569795795980365895458558641222268782121284245984645456844379712587710558547268910515715811639286120151393781407009803192998878357653029189960271173833769792474741688638638545314714477456403005799696474748406600117249867519909851466677520925908238276084170375571078156157730230202218871999024933116903621116666116328569751569011790778015034820642676124973300857139086925271940538430987205434251117812746601914167375319719000816956859467504894364005328084774173176846266974471126118940630144502974864408107915266872965917511380029229187581712852691659649537146490082216032784987884719409769271971160463504507189399511215457956753090774461442181857733417105209101836313938116168114896507580378924597304661716037568175927172704198749396247917747574226065602168801093134066497993984036465043068793147034455590097407986617225980486437883928951304388687483643827348825791716685714767300263192485043484356873817968809375682991287663952158758172316902030505722800353980081043826522637422295568195667571012610823151824034093224757957982633696423737189283591295672522247332156567605021258333134733481649177230347433558732161622762038192097579171634307141436321072308195881204649748469805892973950683327493489423519650806243036318800974834064666597393314552245463455083049720198802056571887881322363109770891628509202323402190255349152681808985288852052546096428617339095304214598260457703502260061754318818715924877141255010673841735161657035196875697578578956307973052984763694303622605563429105230459265062461790921234765693976153409330300201117413573810667476091146817841164096728759947373878269047461957299010362988552389017692507752993575305131267373860088346237336671055099914174323952103441301717650301389834436767079559848058831011095479312233508214317045343478459886942534564763282666322675888750079365601725712486330640285637467991736124953660507428083543133120962853398219349663474852520503519600672032457242933213678810035180017507443296335481689070479504416720306217943443260812089416104596256340811169643546195896277163793147276231082696329037649824186027479176743223546701543421701452816689987001646695812105733162363754097169857066233883144653601791411428672229578314650960533690850926051586847505589671819122143044063936565519883831874601924840414572531157010062753996681232103256031973309151649635104684270763143727277077620531344986628889238520952636575794571522021595638970137934543086150823356657292840262777536827611905724345804003136958344962907370477389131602131996135042394412592461776425609689427580382723707196600952026672774618625126860560716737070735031557328014404491023236346955128838784896093105980455940108222841280165738587993084360310884147116959748661369094109111410977359103788765830576507254312746542286356722259720962244172972782254935380847830090080907214393707245086332624726220242579364879515402465155367275658917772070227143589867472435852983996319731635853234564939815896831254500710800425289565976358511069770677925222750517299681834248100969327103435578196558919413936575149106193170210669528803145146064694923974822931392673035617664301645331237400503824263495811410534942067049001215356633743488866664499715470080012547015356093275563462008022026186203758677073216599919155994612190649170351578571681524514004114495974156025265860734015575239665606748143727279926234653407224141133764072945258794894868108927729347495609294240290987026115883151311311372404608617709739276191397410266037883380256932168850238961134349843248969813434487032632438112884035858596700667901459302214286492624189128322094011493337875746396648920773335865195670736319456039983997751951747348039987825847083510050481764048015739759911410313138874177248671622223908145275901361380696468487327550547054564278618713709144566132775213994404486351006226779358449893799632958358997966385024138172495523469220636836993408373372064904110106232895196450544331289018059751980996972039514561275981703124978360025788669227075244644518107554502234194765245435660083379738559427569648738824318131609488343945014804354382102803276567000600661868766405721019504551874252638325479780760124974114900631903931079781758997654248743917650243947117340245245974321934746903707638476170108915004106854055159564705845098626448857377147965491495442693986940342124658414116409898784740781218772737869381805892876961205840790498439111041344628701947361529205825810650583251453419100661097415819676559964800867399275364227540736044178608415794554001831783199218411329406109274316802816374495159536250570999219035321709831269002642838833947148714207210490146971692669745092141172786186625890123266886674312540935231592117731968364205397386182072716917530535275423486860172707068143868214496739246005902848599462045116150887541610699911057391816727037232830797169209109520935445991417557930740802949038634261563641993500760499961477009927075004559605305406962285507788629122959908838345635523742769058970663330230978359566252295646328657696770289339783308541435049245537510715499949192173316626767182850581752848949153684204318279555902931641764036910638740491982803174334054128964657247601331309388130680014561479473287418855124718509437624596273151453187305372457745359698737880514452021655897155529926334825238767840697171107095237205227804899016669919151434022886526230723838434806912352167453280285153782133353196088639463256729593360407588986395488890125519895743078192932855122014046357168368970387489376587871069829535911249766373216650973067012508348430777794225641431943133672592204760205002499039983604101651509831368505290106049495691537898606254977663962459612832746493514987056127551783484835789416073896259500744455478575684030957017146940638178419123501805413631658144504173239329876192887873069932786883610415075220249491229848761482959296815054786006255304885469517302779147444973151764685578856741006493543566087554083139749752150321080605234561926122502485588069647485487739113544318992464129203372719179758859785188164903607517110434935855013347700219224182049120961613758589768930477273520456409103087108852330979351166559243315423591841379002678199067661150627393495895077635769505716362384793781764057335745282650254683016531904962574079725143912198311478118655443725225374422565512820884314975232551301493454780448264946076445533188284896390090402284032426893886181113665226567981857017840436534285018746915090696278106229949972962626582753109430455916977486255242477323852986681997098216257842926553033901381743573792962607706344344926224968436847801241130784167407311709849235681761560371620065872666283984768741329198608742225673629695006546663385958952417608336435467266175532828654125314374467043064578494906882434155462657921427514072323091979394018616503605255548532066435944969848785049957814026833991084945115399994179594602473512675751118701417804507149102340301736023591218648040224886223577016198583886092935706147392882589203474350389032361482765747177687003558353882830013519463242117618003199322840293048575247911518746689103792457444536523863435079647161429002388077101706413006993960474704414801706010173168467591702279280767726423894500679911668782096635535979203973319098080019946421186933113705513032540694709944647232195816686679460088056096866120976241912894887000026241246010209825462665322475009205792718668595324150226634411338965038653119973411848443184735911355649443504418433790781779277855780475998888764602699705741924793061274814854745706425617771274013537783563627198730733989735544301604997383597915694515423929978458378276248490733235773312171396492360174350514773986557223994240897190603444786644527828329970869836600440810154919511073934361409375582857547458828876558928549467163659593026079666728298293749109476408482611211930026978804384968147718757029144739653867553138562877971860766385584564087431914579861666912399131933277246172475067400265508406482568596134441233573707123418773942899422135778585088475153189498112248698130428546434524449801285090262839401715722255904923709427279650961458952484597867640007074132921484347203753615633042133731137784594483242757097235978560553979783643463624119336739334717403107376045741458636000804141116171335923978269611253355090975415753613498647979975080888806109846855121323054282424616499670054609396743911084533119853206830525335009697238205474595374491628734585438514589114474594509931558296911176025660199400083187821193867548911802768412936616305469571479942340255764148843286972596574279644431904893228035777783658011247702265351609004920260640131315931918641396371667057325731406741635618972984392104955025689639466747460980070098074149624171244106654315719969421096440613094747700099744914346294546742986837199878144807842951204229202125563161189382021707675042000866951214948756373745619842357402159371378844196732877279043515010314718041599627221148632164128053149098562897336271504332439470730055076932774805085619334796441137354462504488998792272176432610265808485777557369845546400427910170363369557401451441098871754393903241141678837674509351970551172043121902887012966637850464404356265393099017250556806293100989836056649691475870521108018599424319058635898925650985468262003474572042912467876716329624981876350182572108266057805785594626471158457729345134127199404464716268499562403405868030841236499837450523705109123682510466313677662666134578718969983536467191940766040268677500184439636936670229247445231175420420401937607066280449573099354925063803126309061728042939383660467913788599929956216292512360492008025808281656574057917620262336720009285447386109474226713703141510339209599579661487450751727061360390676854864478326521012870488166485599690430940396641935699113779181882004133034140734642194341734812427395438414069065420646605760122647144740353014088325702907668562601404920199789329768230806381304444718013395911907790061862080771699312085815692908499210903505840735145239900514489496889001881793889635075435555384712313616301866636596322453684418453219623254040568405279945308005691477720258744027346871718079619721353832090493113026203136875047113773787773117161997720607878267663815946987028270278014895366510914647842170423463835151717799818290449311531088923230553124911083428404900081170624649497992326615883236511307985733249842719439240430217532711382032703009201408321188097331378067783388904624955829884145647628113143725413040404045584710307393468358570927915016959895191573982867495818246020136371202347828846928332490127377922232509778391324028737195057245528480730520240771763477192806715456405059187600264580046150046607154685504339792610672074119252327862054384001077098400309215940317267192990123050127616282878413753963069766203914517380539646412415043561324888963958756186722082851416697690678937364866671373404435842818049019526250644637884926246419787394303352555267355825726633158672293175872582395540160069793461388363589377438734242994857458028574465399382134843372708104197149441066991830492396714181101317935297065691768437486139570812368251892257835703245677953786128414977775302006821819008609496972758993359383380240006783897669353040887471786822432532824524078435760176634113283511394819275465248445129176352838729049557835075120870617839296018476387754145438106444305336104666500922183378840466470808018769723028474297946393123470701029053145203239918615649848706278137590417603462396298411237861219809759711974443085726363012252823897525918284850297551980382504058324232718033611391959233224129596669277868221234314008861685764604811848563513064725315509991914077973689443757413723488297110959611051861333401476485670753062944494926593927388917056398423678437071494044187271370694179466170545449897381468874533068688263485145859083046372759890019269557308566589887079578320126923883470953937803717361381575704820768286297380342181933591117544191350855303838551380337307227213590066704052711632873487389499758411464218972823953820253942393175322476379754319564184409025840031930262560275264517935779534342470407340110511560351177282833250184709107480354900079535841770123896904769836316791658132859482371684568692446073248378699423868336069953157489590369952551277832044680401984646575642812004816960199359177985801536039233445666162102107435276406935578653034904851632341691179187970689268920119364365673207516051547390240958501322189623854209551926999005853291092949916881152952289223193874034234000383821925660804163504418722974332502907757406673379128564389207924317251950219738941633898380313932348469659736191162507118534024273135066231868781270090194946548192816835710103952041119557320522037711771223913786292943431836174913908323422846465261013090950159465201886133655946838885542951677316913654544048465485073811921864734027810513492130875510103543346820773903683186589369594072492076645893295899276258087044428344859018368618917984456185995456346406221938714303286255971635944628934841107932004004796988926225171719953843978178309122909341766928329890560230125518737645243648662961531513399009983740467750261819695904067573952860991446120146546871939708581942290396234966153107421724435107940517580022292147327888563582784404092060509389494282010564194668605804971866102702390616600495463296910483145182408883039293463077695398580553466312130491138272467587516642885496028254780391102953642820249740457734414420378349723417301537638416616366832445386688760612653680791720865037606636457106147467577519421550686895296798394788081733118965028273538719852179345859806783061987773045189794652017896530826699198493487222312182932280511826500546236345473181888775219389861749207772416803182137879587540669193168953090924124087936845201343944461260788756327426237426849442688773573369946031569061785940312105833439554933532885011823613498672233382268737751433458359607651349443182785659878586914772799775598768188552372100471215196592486159120494921568040179897249342475714026255257934051953595485198040689969388160379264619485433433118115249875257646153385465919568781186031756997931315685925320780061695340109957369532358874691698934212567607202416388340623426117506236731314780098409436288204703341564356077398512829983982222737401705721477272636120017163025174080327592942391293393303721477667707882579794228163533713606134799325205750870854170642777399052129204157826494168981232915706443854135917975495521302643138140071830913652614433116852636118546649439752260736168337847307255321557437697773278867832036382333732749571631105348852716055744161952734710828995159465809473710261670474265375355117045098611106448647121318723723876872465141496094050691210128331022368917154233544847466371389431151165975541961718617490130993163933783812550798862323697623111088151787312973767404421733636746640880289519596012411687212575266154799299860421408864199087822363516032307616046667789730917134050034056112905238970149268246790705192101329297842575532858131845487984849344417692896796877897098372992663140221878803048058840285416559436325399311862586679581575700410699298143631359468581011945969461094932841960033579255719272673769388814774754916945321165726470901517473374365305618168317107568592026431435786657671382471177495817457776696300824854675518116111792142563639878084213383642662375591937341476850182875329827405554251659461530153636278446310762841879268403472136064293561749698412699466431603916003384628084460812396814635904172775491939860962176465518827419454681790440155330483271119702498623993364961587120205226403617425245905974734737993571984417436591055412523384126085691829078234158889883403584149165244734973741245631333416229408770892190736664116691809535155904566704807889393048360850403406256625540588504341038327116202752262693630400205355150315373662611674618342672872756790754071597488696751150110361268435616774706046624161471979727892723430012442838363501682956525727273026731174290911014688503752097508271544785514533778408111002346336222386276474820748003743499028330483431242244333458551800152955056890071444157226773394755170160890790933870457878702624383841149743199086499317897622907852495002838982940353202822383571870401489842023074077536485154413437385445658533367434706332422762028252885361857959490278369912176971324710566566854195636499531603154815980483979900410551202051998686546865974981032779109765511306327289283236658958399982991707731908882204736960067875374161369892647186599525461017152835333844681116604280083083560690140760732157821343269927628682926636617179972452093993847936592794888056250352979641676576765125541214851432356957783822619726250106687908961875662509228764162030244892551413260341736179895110671390891502144227968609624849511741786052334674464722095078036644509988328045289460908104780479200523481830694166055748774487411215109730251151540282861213407429035100283048786534144174886251176503424449007305559809715878199275885158906471097256054019675453317582912923512136577326900855330280517793928505462513174617341825200322534498225980354403761409350884773577282541924444831732000027600591437755227975614628115551665209521151696507521178683545757408848732045130958437557503177877565595862817738190014626560070695859399911598579507044281652370662917616118071064628785747293537656129622963256834052420384820536222968538003970265063081758162234773845977347014701101707879717337849978058969262371017105650876885420054080095597734194667740397172533816661153046364727969171190190341116676451244708966401880543650870892822522624857460992095746596444265355443078841672728907368776114056089154860293801575146967292332546451296574990087073438600389350484566271236930433869891389347636054323751131588720346213403203487813619409512249146462441134787175297360652030692237832716920895790016889002326404243708260966227007566700104238989627836713310763240756056160947826016780778223032236259273800212633958958226393788994322578571955003294748019499408355545543663816585035992507413998204805534217519153816466516879382752290355797437006492432792281217721281397271790868078332121911249093602037955222158304454162719420935846075916641553225296948294574592881127331758396753140303593183353567332771354564198194291459262522006405216457939830037773708733386344783596831450050829681456211784013139102792883299297479310545136368497110567875643969621301812454859832575186703857802671778974937063846472439741384545458798516200315924352386002636515453382427412206192869510759779575504847160205234026725403089045148677198058542015360892577463339004477969609852435224281208628460528454052160752528173273987327274403518086233330260299666973727194434841471878664278728107633099948838710478870777001547115871146492699998329444365118825712113678411791269403592068450464779350156950524368344214773281704868507185741774146132279315997176587817815840567564076946395234948862837589255869217657037800434765632491391819362258952084509404032120582290091219372380995704131114171715034439066448274774946622665613781138182917672385036805904494248481079486268210310974730976163894405461178153376346756543566401621102051101460918185552546903426880647103585468492374169055613549585880523544242880375961788245490189622817136806264619061812395339307462818445954907253396673391061325196401858965708168503506633595022461753759575384141251884061375394465945645023602442469882243936340982753114831031056972529519575170712165350910943665378031585385593929746451968457055649826049334552362755308450528258619850560834597057721879441598143119921760948111124463484464229743110835468244891359857359488740304458351357109666183538323210957345225687568143780186526332466719864268868957234702293687433971712979078358648497011324734956444347249887135653039322299390091752589991565711236923868385481135151547222501427066315919346768791107468930000267962777238526260507814271553627430062193184578701881845654774420820153521625287826204677618738204629778454614953026166929836020955752615407081880194030159471559802991107635877231571341114119850059555634150621688109784704948617117049457082822695998229430244990087018153039088617964690265117424742008334867055239301249780721796377577936000002680225633166403283154601166637296481872113856918336735962215600611192887596897342909594639702947991609803079199301561925684328419656170520708399262195097606907946025233382859573898362366102177238458918736753564377329621394108637851003367452718222917406933834734897174053469577505792190503890688480737349910377315775159951763562257880727070136819271981048202071169311610439314352236725429798569938813249667881259144673697110867653216540928510737301811396130036606975557260612129633866811927983904920955445847735990360469213031152286765567608965754588797134370890354270453561128593876374182597241123012587260412265092587622783087389450178981121821380281131066376358675460112844801002829320323902830071483272014812020538265738977649380791077542161144017112410491531336139791307452889856901488922520151978710113867839656795845220049728005590911741023545707869247301485262746894001403004612987431086902483118536722778177565718133242344941197840788313753179027156284122326679138628965087413498625552451712753701129429743708696942484582725610170041397099195370818051213112876714047179076836984714991000949605529871282118978389414926113481339366971996688297769887529365438927524629232487322797764886036074889893806891415607435191818559672230048245801708175286119255090716747426775598365392845692680775411007778493159921726443481316393005369279809744427611990618886267776600111612093541076632147660001132069964582272582006618799278362050467622042876058207669966436111282838825943593700152572785278962226772872906325576415017854499146055114904399434796856155495886394766794807852848033537396852355587706477382538911022431453169850105948589284074829531474254159130568417060523754099393447172936899473268860843288658623265544841026279824772953170887122563751413112100200510358137129620192987266009723128052371325973339979309403600017877092578641826840850639941514795808452112047832064027086807971300007937694083434135364638781866017637631906857549710344292398752180649003177605894696629635802390354578817575744593637485758688990674170484148552697037736022239960172469147740979365481203274447897130189395675129049262202547552454601270677376122301142326537808819019900152390392883647727758227697531671204055061873055163337602007620735618841093207455609304431234165535017198464925008046612399420197413536523864313163897852726060283698026765354405634697199044596286277320245833342556811141534806313802969770060546630688093763012950853919719468487045484746354603469338835363394688454121994082497180262007071697218040695368057420662209063068683204462271010932586678056087093889908746250638150582809289643331381646458186840550320431421817172034538330946592472657131939914650032060078372164868975524839367749526248041686672195955078275892558093209876540769620652398285832108899715775110731242934048956628126341651600396982725482038566001451814645591315960706638446462840856833949251507017201449175417685089801161506612400056973346542149429383971597096790712900947858482231999532269192745434222317122946905743347592079304284335067578475735143566279506331623271725141603238178431705955832715743717607101961972147890644377962594738763735404175882180310159829438241832403228272731642003241402644893770228129870660649722408183052339946312216394706077321787793678515146736027899701333000595173573629338135307784321510673000385118603460211715793944270020587068044090926733168340293469015574584489811173796298045884474943768800532227929039628469253070702531190054215775824247089219396125872498618005403042163249643351981745846857465287586448627964381834792077443146119110138509090310850519056219091945638944024165574443101604631473005985491710641493616500602382617305667646269345112859970012155712579724058572685449982130017767577799189202192306901195315962395001038808109878170858501561472266990719254175747410859943291861369160426981629308583768124795284542899559327006494145944651924780472810401290085666865919443466746132561668606308399148146758485481763167262994161259954239375451346663382193705391894242867213666105998565981946776326098168561230879017894772625452944414302123237564631578556414823115677327276878339479833325718775079561880283142080046461459503530973466414777718915348857547229931981835573743456186983619773206786658959007239233897999995033765378568772413595153975463980813329325641394089271233528406191406060304296900551568685701527088060797217297247142388987500307883765037295259486054395139482320809046194798942708391485804943426888567059356639374078213184429758403178575313026160622113282369603190476149699366486906937817997148913704977485143700863810436713505590448086189071797316751541223160477841470405295302217063738386725753916888681404324082123072920017717311622510055243102973566341538756657062756514850902887582525131190233037853814114261274690434209792926116553360254705848122510979480708340494987637900059904361002875273570301652903665512764285570105052603415651762478271320810232524574615768758438532404302016119813971443049988355272284512421820208790190155073660231634104100894533583998021981799168929887500707388355967121786180547672911068654742987539908057687540887246101660065150507984221452344638359741586154527747386635003306666690748072683886771482396778542357543000292471063953423289754468405740877194670474756030421072892537954819246711621848477484974363027277645566008651442918645757334023908838198938924924707803513179801631833255146161280320423703428702565604349413970361331347551630875080475326127422994938072983213525157467150228998286010615902848264455085264472614747094952986755363793738295941965860829940241102953983409077257974286359988385363503534095438877937584903697047992045909108667634921445366719656018991723588228190183432746377190302619026763386631505184658858485656719218900786837863701429527254488581131005195968393395083986210598165573110031178233002602364934752119234396575360653221253305354666355224795910632460253778250563584335321780403417356044262732491435782142617163341164349929470904959832098122266366852544243159534803538391876755899029911340290815674236139834938278163607943561587137518795225522403231222295209050846814899435914536887965527542340020962469477050945034801170876952861947087915061894274580745468975577353925463126361507460923775889953340743356902513215940790950995440024231679514582090828404466127366871496085127361142964187029246314195724807022977752537464716049291715800832345059465715177169385640989891186429323891479933214284949370840336935933979899911238418622069301256382364791463195437498544317231253620426668367144864885646735740086989308457783443801958978163363749062645899218098624784356511408183676855933363724800428790999062059204309175914749530405893779483582535309933198020990027667054971893738687455713661236210968919027199290567737671189246675948490868671927815754282361556667693076135320688228110574209995864317184055060244470383999446051762070781257896080286088745557485131254108772548693482830179423512967052002831841434676325566794204688530255162283716963148878980967101922766039115290064282561268115537922791305292973378930206933701037609467094785291205657171197347266311283387186706128551947047602351104707315604543298372657324192154391448094252926971250062474065423131787746625395654990391762286707556093622074241601749742067162418864390821729323469699648711973694825424409631134138992082069635550658689126798197927867155454224471367030850933443475735377255370269076808037561628485880817452112105284090849553759050919653984563727359741335347655514858173763587721426509896289931155215853200252767354333947187735923440608347354775889798208412570174478613662675998500845916841281821949627148828895772238971926867395914192414442704401112535239276112645856888508509071851911501402036803853765037492963004785222995022126408189172194214717056324574955647036391001820786365365132522648252127756363489873938527547895308698880745625649188047873718877709769213358893060109216869114902639423867061923551797313676257584111051846341268922385794206816701518937858091356133697994131174952180005100017951839766826259493071938096894469182023067690839349977054379163958522799142436217299404069118094491898146335301644481704607801827743530004820711561931427767723489440331007670701893907985360000309956850956465364303700290503212050116236436862472297741004388474575640690408639302460769987000415822372492619640921723689782614937582048811265381780665582640086956759816848477227263779326540804691618221817410418497578564258141094036443901253627741510297276595551268031290403654119581377855867927696083733191345056793835980439273588120885434962122927496221077401366099532217237608405003191234216978565696313458192667084438176703522076019725976142853862798485160219796723848325259461472725638127929612780554427208679508333286474564436823952352033787032631094887361974223120516481440149153316951189159238987151371298526768210173158584333872563965171133904045201858123857276381135420859156454803897932833037109423206382814219108209562676321418114953962676825985792005073812291215109576384797615032788185817318327176984092557939391316550483946697402668974384470635574681247724752809706356067897476455014494149105458086338579305206508350483134005492695585017156597053917616731132289674038153117312964003110670046695347408191606261448294513021915202623904859152163238576992505120159221841595290921641142877368534476241248810271092923266235967614333166438818518642575165809102582974266554765583302849056303258674235083564080876590857519244992186362607356957986162570845582569757405067481645379996013243507220265138235099857202298377041461280294734771022471783631706962906045834411278292191198764920061089635087767383502619119687674878699487543573229604380469687345406247901597510358967086835479827207392395900498616536496686265230065941165799558105780013812050102592509118850121670990734583925574887767436795570025146953287236787956851219839611919094354695854612396018903257463179802926269971191933564181192540166085634215731846956843994783450255949688440958043606174959689954221544501250890260833232189690900674953934586139510966225588455317753339710940142026447637441121260473013363140757519986808634062039375916269703803564289274539282117033051737055230462680595362629591312367092147755308392092918573537414956990036036318898385608407730293892310655709550759407951622819473344220905381877035579616752939224987491497165785011490489014041132116537364446851708382192371483823064740409832908463695686498192160101603800188856992994531787415511049224255915384750528715356179532102306989275861840105157217410602949628563956889212922628608853783488430535461447922554832796837542171780153329070031086014258658443781573447498534290711687231078872860788452366743766363534877700063962542010799303969829365876408035363335665171138880933603566741688893147001094411886314662817747993029787457544066171385309479935135744458236078946486832958909067417129456549929110765660129819657193787569984466080295751775712498957977431288091827058127693463990478401736223657468157910867776515481989566506950194810247867011050431413997889743740597751508381467564580282169177924277202475496198110550028900680109069556339281169661271273613263850252007984158421332670571167040459854290793596780882426082944087037527829501080567299999541806345914300891491074537994775492291660493786918129809977925013233412452553559770162183973432560827243274296762265041407424372299277733170100542562023941935789147378727774154074199102128375853830249191308678156896618397901645502958639483600864008307592894843988643854903149172982260294655065287029878516500212793329685331217483539368288863994266114127049300683375966105491643357315454188522980170489279287749771745039812588112284506238805514308067512572040003462439224186344131621175748759918438314902711722050154589774607484063787603649929942550478995174766656706307236691568132935112310652251600510561991554123326455757798114546310151985280416393454858914519287230403500772765853161935414722791896668488218579629940389786092537574429012756317283992318611147337893665052894475813926195449227003959033091508033877844544272714278325325698881305365818263830182270967704351611306314880074912911181086457828063141033125605283245088146972949068734614849053342522869473285894004351271332053754198451720797272060405117723008093973405124697607684553903686525294631132771521373777053082951005190431028569744060408062349363484029551537431879109401425263973944694416461056766675739233504686418350606400688550284989168103590999261528572013652124899816571421778391067496018256431982409465877796077839287666985683520433503785122600526292845911701325261050968184124723955119305169356468700228664269299635664985398359648535012341815344198450231500182675545337653711122157563342890847838768474584133956324962450523077411964649143242345444815117943380498119235740134127173422970493477580609573299039760644176394828363435194529950464540206206395208260638221282164232568082475743130735856045934548932553202091283371502685506547703307774809659854769602826389771883917149775085433887811195762469769889315608673225563601730164923580002576721934526577117462900803712052822844921641106988178529826208730810662746577735898414220680987885825330764137548826686949458982783055412993552470246537402668174585724925231770956265014341827446326779652912165631487188211789770838852193784987320876241265920790721169363421042076640096944055116997338466974703903800223028368434662410983782589818471439403667804189086766548755786792861349359286994443267405938775299198182112361910747884111779472197781108031360558656471430902163052696956006803217062279098371521810130877865853139824262542536654157407763616964199695798608558489736020968629454141509234154941757491813230878904649097740351012047564753108903352726984738096824693551226166248320623401947688634896625420410697202965889353095359003100562010441595839060235232654531252826886944115979572370467767180523280190734582150369928665066752754506602147442388336493209366642706035959995745478840520064567083581979565058628211408881720923297033428720562482344609379117183173501540253667764990687401151248277294057773925498373627954378443414452960825606431979016353849812147538373232773033323326141325751187522925173923400767032595843374177954626957772804420885284477802909778942647265524174297734330449303287839874568589460409196829049949877326677767797283729936783546598700071438557576186618738475287610616575709072321757715149589049175221284547249122611680001597737474220717448928979526340035204548529769143705072272067336044056363968682057263393145170320846498769047155295241011785692268568333077405918432077931981846618819367580332952723717731016678472802166384670774057380297027023378265268901826961454977307377809675319760455519662260743166194388075895891865348417442902877796445472161761697839672069882700067193691850901544813533766864807848190727923616493799324874871321606785033533955183869052674547324009828672244926429297155368219135887740018873508810331784444798392393179983686979789645425844120470026311205193298935211583589786280205735711596976386890479640348242525048173641355325307139082421794462671166067661286168177709670234371907677295008550786098707426909195985002512603404956029399581118681836069929217241232410760161825843317248425739116911696870631034506752702077662638140062423650199410684281642168955575558933173123131550461253290569698518412889858125897405024565504156436050809682766898660804254767836404221161662181275297389396706293379382737414213548953838622666689828957305261871447984978147644188494277688542221521676090486507745279726172035745899643714353467193621677940507212057704818739547464996770801405173287942051296659527046099345402688845461343810463529396770072291858316328972564706027368512142320247691274351911004702988023969910706056059206915671281674725424732513819356697672566775000841016907607339873113336385819191047653706080055352361945789416174030657656588495619635018813177708393599713520499496071748458056391368113693316126782226459014070124538720803753546548759313418140290921947420622723072780466868135774436136974000482890129152125069086430084728395803029974840859419703356601782147522495905367904096928181071707017242212744283442301843557466415651708158353467386102722062622834887139072167710194165142840430788527654780947582886153534802736420921327157662700912475692801953679820622478407754850947916965815907148874054093736263772241848442480767552986454270930549376134811397902494775576000728416531626021339620444398629239010531128307117686023346276306156867902954392313267543142492699378923464890580980100781803387753263449370624852241592422602840137174296466502457589154925162296267179860356679272862542658691573650806160318390534285518721004196281099222960394121488558014649819361793376227986263682807009524799961545290258443133839353603971356719703003189499071962496036619967792956396314370964566176103083428359674110081808466892425342557114150874008480265003918396937804694081169799336446429528698423490054775687969065683184208273675727581841576716970913965433708813468020034491557856271041980864214547279035230482967437305528741220868976015360436849019398564100998068374283529187610656850715668333489019376824764768575427549863490543576702244251778957047027272585195223853285952180502534257304729779857783482223533454960965306740720727382688391893465976218429671248311667148944423778007492071010279627828870637121068291191926319237026315628457307254265910779290277358603529449353797401495763372969618268295288577122564326263789696748784685219266707321558245067940802414071153893922812751726149440787333940654280024451158730691017180310183717391817987058975603215218840865561305666388282530302427463867016573887805548902268278309103368236939698995059621572177361517181802729724994249194251448387253340158065407225802817957156639582299366833999371698586625226027550952246090211711903870566529090054868235543430230241674704894952374224755313373337313930017459476430722692346537626915756695182927135494148534471619479147907108258369924298665874139661072502258361077859811444853412518672508035589557190827436309833237820368686098888832990737140191750192265199039683998408610254597670350746333679597510766030137946955952002350423117015394705972748828612391053917569104441150567266769692127379035419128363203237212235256086826205624321332641764502609093056752554049404207316157580070419740852210283016256536338177219996278588597038358322650051362962312285996184363882505506516369441377049588888720341115469076997563206968823108976581212848549284141065011031300270523281917394815966255109376166304550383694970895120534573503839810023611788172620471071745705767114228052037323419061707928875400011169706334631123171573606721262410558244153429349423582840309369807010401524667672976716679560863942944367528936016557025486843142774321962517653795922017012119609265691840331398915759403247345098195910442083340576960835224459915515218645246565858515575029489670609089469919932182649902087160090188299250302254118987941955946934963019743842066768766582481283051535964218158620975333893656325905419793603017485838981161952975025634117748283814536980223130660677579539235042406023092318151296318007281151314939763406986334576724424339579699435935197443812518190673822918168671899564866348147835213993004776221686395067244877710342737022805924753920482703640911722640674709135785098252752801716700631539077391623081409190242911378149908078845272524227065791244532427870067225857980644313580088487843750405445723403313362187193124055962221848494927417593577130021053451233785704861674988115441406878238614553850706929706464634393008323424051335630636546067373826152426437291660685786047075585869623326512429987830894116145031735738596113473388042656198797261528085845117314044372902378155606067947555046510383953251734102618641186037662264233609612500196555190037411589552416438052370360671280233216299506284493304017108272924007311667806258969671576851446909370686835873167796558514117513811313059790095325228139946214686740300645608612380983874698108652656481357621846064725428001029197677719956533879099312039163928849366720291784568665652149444106558271275787156587159418509407191070884154674564590440113373929110930948209219435276500300877035784885729267553956393544820467747145812260456289396167642161197036561039932807367450203506785771762606000681248641114513041356643472693996339590380716206740098090082067082541995625497629365690384565475650413166071588564507460737587144879762131646806823820741387464992580377617175831411154914249068442337021202726215958307562953511967814475702849459542889512659451173666408320100845517698574474573200896469243941524173736875200226063315683503250716941839687397377293868475538768403296531567492719279627077155439911234814218665110832824440585131332806664039859280570484790686463299913074622051725155927198274310803894437749908522385041341075798246614165984015682966683872615766058188889419195733802052677497702000667235969485256853800900491650541677334118990523814427787928340961680982198881095947210521210358385382751865067753861274010953427234207574860423880839611522106982676755445571466667877169749103410052968665045264836888274287862619824108961062044127569641251210196718096958637534069597571280178766191297853005308356686922565928626452755402530709368788050327036622676543843576549662860398490562571807273398871200654751301654936176186208744810540215230700658566397179079676206298567002335292036468473535375802258312818348283674722753846329714969420338515798825579225885598728981462234675582595757918471033178699529176176102339192790291293482497538918023007902851599892884337400656594127306708382110672436676402674551825376470205452875913407447723576409642034263241193724952154976842417943399947054144862276671060925748894368450056268902166785184405116085579017418125787215402393311222531655368017044890387994992039288548712652064254861721552559435250509539067490813300618408077555954121390741044319749967978315628352954498506729458005598885511160906474888053413510633295285897413365671407684849076972187297453689932831311151390971222142328406152784911428641398666723319808263165537523923700273521041104491299363776895468699280731820638602790503110145625208327533484275348410390065333136381178871530847417416855618559542981894300503879622572033074970996722346978465650027904508521681300902307334333372794515520492830738300833381481484073494839510747510252042913334221327568191957576981942916918902041395257833500527839012039742252415500565362868108729859150268657308137316797900269097171708594121282989032479826131807657919601870730848211680121317662569370401283933638699476786908870168807267209376097081286383061032068919234107653323979739802723102485111626771957393032669786777211261550640313987397536711574407119478952620959467545623143183517273830622139907479690179088686465066657093562953261671232526130673971280294881913999041946973047137720919450677619382051439932309272915328395388150950028608927303229626527666655651590981115771370253183923928549674145885088862647336014797180344351110450252923612072574978033862971098763699523743481182301773415391179601910022803882753908776257368411216717473524915712727583658747305267527541779722485559470207436528166154924652574097303329993225836374954628331876967635136797093192926199635612107887754808495550092659323241829332715687051852813037441085491654805260991526337728155883101207786867593823558770322299722892786290027628590637967436169104890995483475366411900855211199607520186712864224389722716384229519887465698927284210783539908166323167425984473257797808585973825854661020620807053693601983922762271398976118687312385691934195147603509636784530333386227357927099173595371781005678080791486170455215348056051966503184785455286725905960477216207866059948238576832943810355647115253164778237158814146916082720754420480092826957460844194812273305200651378785079196781614358473813595093906601522497772549125277159848346478227444549332554080259293866893401441879281425924108493742010422076475553037521363806852348774977418113843153701378572397973844921040750670221193873456000378567948740577713594044222972412869171965448383772005592447705609869432006473813178251357050341489191195805957829600585569245975690103164056727049939388321295376838653966357126256632992692452388996263824873388149442701329665931262893788735180534297075909795056982407379278132245831729245903473919343337067751752961386187334346236565918416586275516608855920062793054441916996579716567951204980544182485162624444158264535273099579475604908625477306776931893303239062092052784548600927953910769550116155619619791022891027926233996480222708851088637085405171803924662949025225627400585918587411742649292793462196585364839446479145666538022713558054082196084743238335594212283246967186988748505447050098752347629818451346494178194285650297707715752440579193642912949550510442767129181838184873003507972915898981667514706384469091415524974299198292629547515236891907197536573074931702336647554930890849699285851072462946996755336450154217891045449784096779749497878936021955851984605005887052615759971322174665834751603272265704993354587117600498779624953435322596778295280714328274439835825445312204519743737732295676785088500685607854841555420532215103774138498129730483501954246437145256959171845835486782800063836599406042396148314426166702769337473469928177094131436360478490166666014946284284898609102492098473284046291262808905594027328935739206045414572663569843064892293464992216526820754274578221990230594765577425000654591395109353092065746438897391272555366061789623463076417878406133971024843718140820840997673179972287872362528611483114273278078578795047666283910320961166306678681737422093172888688513645892759513267659850770177056653515213902895653007021525483745663294682329610402414688795985568932852186555510202482487387061101455772351819979824074144448369958078049948638266519383998637626783303058755613683754971059377332372855646049871490992945038626703120183738946955131185502599540679751712029506672934452563581941953802112749446644295677675908838021799030619120437894709021675389229730806710447896982052914481470944587431368117528685794194916891823690254428363801754440255183887522921555870199579622503782613743382161717960945043332848939935138372937042442370431210134671656786265031882752465979381846462009765614868928666438640347575182003170910138489158667540055189376005055119245071028962572528517856144999827753017699947103805522165842669527944399060561489849397361423274749082592561247086767096244498781890213106683748797998621937722504498613033628465781243578844952425139231436734814289403077381238761971194461884133283196054383074080678822591678428092891680976622142695344455375616036409961756516551557023226112728743997088650682407780259932651948910268110229562409654703280624423160641164553945980406141977386870493491888205343204965751917870917029382537415137515460291196690726809517417914163596541275459923601941834812597171973336408812552961277468160014011158766756742778070055396923237612202382662725977382846273436717235708850107991633945350175467995973197196889567883604160620504333565762395560735187852931383272784534197402213269041177444244710843608193920583929620185986832508974803775545166088555779594891024686377645198500694380619739477503551557803205800769274411316828029396882394194091557255837149385498548194763378641270949059819802907866979218285874874727003299066228890300096730520937134450756110945849960969144647956686906050150235904377931451677776873138065534491548881104261679146380431977253194951119550178917662646089224793382830622225652780486940041026078175528347048445774190628322087699039469245324928960877996305310225782639352394026849992969532403516495917782905324484187506261477881597471107095908413032253652708448727902207062341243995403791859397554660534514197971574567609819050440957058417809069291567903952356397705630392433719357751792001658731137627760885316194956065466100072189169703449922512712637825590738658671237409216857288189430033392436637115999043885676410397031326952059454249603893922304298176790562637282990148758460307337151381311790562601553866490440753605525448576707924053180853821365154478915349790470676815186734587549558606315559868438972164044917196723322809353934206644892256765096007869564783511886677226493573847237968451029010185952067310869986271439943342651587795656686472271898376511992694545952145337348638341780696225952911196632232528439886243493226873233172581763100006459490956545285739730977164807247357271161462163448087292693789382826691861338445372072643733808038787940255405803621951481324562478846362332218953663626575703939578097114173757690777763079494694649209482920548846636220861849360712525776020989014887081393292848539954308768694134180366286797502725688810023897123436020526194159489345201741839681197426234882955637703243257786954338713681985430576358785647524532897785191594027429177758604439262720389378848195186053525245890220912730304411870409515817723405422850941141126206636180426574699435273189883185629590031354832862325742736291990019484481581478317697270569989313437572382169576600965076727220500342124621329695814477966122390766498931477099311511853238541984569305140036109721062863334364809895054145918585519130364746012883187740177388326150244612980595617985611418709132229921546190822271476387990749868565794401786688403026741550129603116056535996278495763098136024509670837626786621543478500340642794148467372313782241578125873606827617253025522333429594824276971488940271152597291929918456173775387739552044376565864939944889136159736040345063904629701217871389388309732555527607936894695762888943791617830288594690095458525899684917705979861489349616613148445244529024627925466095967046910467859735534231006844162793066491080513451340491008998708832193873891639078155519775772270988402405402512657330412419989047396109369383909400492867189382718263924454830256540095624752060027525769513529110563702753062620991328923360572664438464986814346171897607322776521916452185968698604035019593460871813400940939710411442323769874418407556666324869128670633853044032993365951676146596493789537823043793562080214607301021973499050234074537923396869479747488865157802613137348780357968539394028800348603092675906792363527935461259144293269528556894904201887275067923242556229794230082487132336977021488208947043068927883741917197973407393362209759712332978425540276861917124785175409662375246738762334656511731230543940015647577360731335142876222009897778453993282198977519573721708903196835554567043582947065743904212746821997991166721824971635321512083973586044225949868156347018975388936959982452135555781148539873637963732527558494788408702059768737863617515995402993051357058787624241645545192192609664343506583209526984668562971246021167574833817443650727135062703553537686916721141784254213890943297315232520881046588978151123430226316345909262501961385856753624672466357640944839148002182669325251641852594547528316688510658718628028079683198486053092531852097918178735529198610915543776554392487363566673293091920960735594914239571854196121176179678991495823028135468070706500374083733213906837330364578372965268442070956195074768567189215157292459614633201196731032341601195804076576057381722041234953692944732834730197781908484109542818795155924545824239271991850472073049479216092025274794947369404838394496641576236393692895973714614430076726369785497503240936287519590292484673353932035963279414079402982915233107442257897849289054412257127362698835115277666780986254263144854572391117087199500838451595524801507193092218196707622574014835056030240055277587398183168579399623338098724090122417952551045994068123098641948964341224305605364334231633438718754225747044398734321056336912725239751689892949509012578970557642690318379993695709816908415466522631103539153171539038145098946193297672045014894662760675148438183183293312925804861284244780496697388330211106900194313289450207542778637839902049268060233007031777051998912048208231286699861539928712565241605467756432880020008988533960701885198981336642029821600957321217510908265191693796656353455165584244571083686352222690225848205341470010398642822416561704994833047781256788986063632345251597515912505875970288475473939509730578066867975907096955655620291352793739394374410817838246158942914836762866752027146351845218259419583136613172468761149810031218112981536447219951833613332735674480579773750528079669422942061807776844424447992994921084604987138918687561919402556733392422551105003832967540402453530054918913275621907841452970561558266978694098838019440678173687496469046167144916950999836426094111362354453955929780854473873551758885648899448936510734521237039373822892151706111526447060213566316882903001177294504746584885745840372380131916064982009664295056256199626809325299540694481097310690784235987570662767388177037388074729183902399302847277874577017140333622670792348156394037164744014077355519733714111777045184823092083336287273949459677560961386239514666104971167362498589643958712077389849176551810750467529567143599300901056387616759047381568143606106979963301458515330068746718643979742031351645992531130572606800480328061201352827724561753123883255150009312467556889043984864380320452172638613995208534359246251397895338174154456723987729329518400144747929826115800250847544302220560668819406377486217614323337552689773343491521425960502168331260160427090227272439909128433505991373295768373875329970195651015760717977987467705480253420138977402830782973616759555699145266027867095725356726213117264064690086852353926764443368079556317335983233072126113105128702930707888408053066763418319981113018390902687605126817297982101863076655793527997461772495952204941416142127481726582766537373884073039878868407641658993386889278877896036457147486249646676376594037222383483148350452115781907979996397311621275081314153066680819498430278197036842544375273573914702446347752892566659181025895140005782839001264664876845604417201876835241819144177720592128074325854171290528411623732682176217263992748499424527973051202853541409568738462593542760818396654098399495612678093663336472083380940676883813580091920703115394861477064756426080292811544423851383735550258491855595053209977946977940547835157716188558064773014275755889097273246133335277069820086017875541450157001931112774437252925582424003147664793995356797209323521850610246141462575088946018284933665073809007189885806433312326662683700742365790021102845258458541590572223612566410744669700273943884261632610064583148793469712964431125709909094717890729546940571358771211570329880062058119848847613251313372684199678187000992492284761579124325869040031134773437957381598496495953869162928994599935699361867592559352278602105995277541292992945287477244707509018950835054862412820514946117083745825404157614956783482120803360451135495782810204191572230303299082857719592636216324989152553985493233224721517517364426057725135078336908070597843015912698598961672834502046635054496369255325336910862868897341846650103617978808281784442809322482252966410816092803887260051357938812560287512090012501117202109730384613387967246449736490287016996442038468843349264378699342417519322694895634425191565277134368495976014943464785159100159849785112112034869656865838335317669101343628891208692941166491908909218305069465099842505085854220083131851165149652993567581138435727713959661611639876528892918177041891186068993969535518240864529527098657461555873314812870311536868705945987891665567435127434904075674040742744177174106362673545298451981425190467183700528090418252928907141855592806206336462727914641598269928164485509673713367081273290030324977014278740738764253091703455068977371465606567362119431734179975098052752603486286681405290743153311183443866285079531262726285387402445899061081054196617865660604982298189667342662033528868566123418258876953578611332231419485120117625339007925294611986878776625047263476173420137288135348113318278963823444070871135130012361526028069665468645333583675175032743378049372556663797887024071219962847340999341331643786237467268959466591521722771889914728988067130284917026627119665576354683890258573876010273636116202720757350648835732848034795583656007370625266954165138884857281592368807228415959888626278388358197499046566014560066340517120054581676868554144379900751177838487012502590211642547662506678620280607902538567655787660100191720745776593114690726048744507283728211101161431430611090258107569150491705049566666503900623579310852141872075396100596767243528944992185671719745608220059227406165765255598874325108858817890653110243330702247116700327403341392365587937838871282416323108206691943469146511290463978704966431161880116042194599144943877399139437136901108923604044964884028516491813168827077100465028181996049701999723579575105852143797875664607080027845941765097497918670636884035073467568531891173641301576129329132009534013342397837425109044176208650742337092855034195203048438800463830185963119039717787535028985706820877063512642510374742443128636655675883652021541835999507041034843904867065758075675904286060723535036137714677953935865940152328289785247881136541043375515736619972254263932954977299884157237753892997595277754081164796626665434878451288887754731127935447439277194146261463657122327135819666030385285949831793256767402313988231845604429599491415332238140471090472593396364795415519826279586061866557256362171135400010142800318654690225677188447323716129281976002980549195905405221901248684304118448033589165703311535379571433489229217746016560149595381037063948129901811252883629509353220009813663049250787774079606213752515780947463547618814902125920801710635001925488665458878221445231424703679727221362986186973918151089834057870445170186650353644362670328381200332337544255101139843789760170400099262450742263480748438511340732283869781344939853426231579436230142704219578823707438242935220962130317079233117858784121504569542919552444215342910020156230347863638617596177864987547225962510774795705905937514303864404809291103223188590416658634438283403725762313928318724445520473006751475012959280128917998960080776549128824531902968566314602321884715523910588848421342039254668098830514902398914400682292234424044714901934641176889463269734220846762686019095627290911415743334915968507368807795170323506295399548538253463249575722082898186292116711764868817221404349784216977795868472835391427999807316304543413191666092441131557359963039476165950905124230382248031229680147562442835198198306625381734299845782406077718700762769316384871499551077710000676330008352058985334787230219271606668309741144456925858288758505784453864605576322097184722912276269042503406350665767062814421785720674773104336630493503196195217341170243288258166829514341761569832597228950874928121653817968602622281272293214871741426802163902028367296390469534522618554526977963303510198127564040932333811817588571918980810465048654987192016711470624680130278245788480133746321401218512363475042165305226744928868044629466414667101035252873178295641234872353267588679390156320016373197857436800742798551235152688916869340741923905063152073860261380338672670197015288054214355598878713740574236442216512130388600288749418632922244537948209063775824956982030754266735804656926559610934726222075072861423578309028449640610652194867767960014013809067215716440053019847464862726167466730965360412757981992215911563976108959490097376415701470958420135873326044453112745022891133825982191345231956515298265834943471231382394029344391216052930492147811085654717953674098266778567294758610313839315092587828961241629806893281570387484969207265582139614378452161216285774825905827558914917435669267944149445010763703418748305049722407772037177388720211855760037465070967746402546409606532829338938884678734214523547941600435613648218384543739814755974059340669241543954370733523636017606721857529663602351154159271504770377153107219167805782697070800401420496564141696092288342847484513460396166586846809740931206252299296474009017773234218671985048433376155811897581032231717448815649208420795878870551464189269312662983215594235956490496857906251972880009849156809247839427679926627205774458218243097977742399507662467891353662117811860499043006933536604661715580894325032091225116178398344962148128300724459972649734275106741644296534386648571980983620220538147027839845083328392281027906179726877570621905862431261038061656879285512291453033940080087990469232617413614246456657274283235121040681829789170779171747124604045386568774192326329949744380654600103855928739409573554645835251191646821081658743474362960829017530832277358809066949107625684212035691385644507126222304915451952655508049199126632139279791631419291573819682120337254833574115376271292459813718609144085864059565122666941201008809004606682376899870705475537450877719288488617857529359075854417466953195949339970201067554782594633760143899083155699407225536988382771070137390890416103422695732678048188560336971989328306287373121374457609188632935440514826998007412732071917902515028056359530324792424207221623126793098075818261369425948112436581603292795037643924809570853105666672157124650823905575925501703803586045550074704083707757891267999764712523373146904302943901171526873478671401383550032496842719917739068563201742605369282985640240120767747745909015121839075694558102171730591453230125420141163703724456193195563566633387640423025185976062484825209448285463077266047254886127508267402030713349316677194495509719978733412779619597220653076965882473630112111971029139581473164684390281239259648337873764115076853837211568747921226726678157062735662881537816657410908986810551092905759865817970137622068417180322495593570608223227568430878276795094231292490057431021012645527127020406331526638400803183833714363009222549275036819646088461722899765072032509171053325931413284528869795034263509559791394876920205312887962770705292533699161995443203853184931230448685574278140217829528225036728743521546256195287112149519518491139692666273079483518091604922624682771739000853166103313094212907626107716301757018096977078387920682163904720563804893593124404528227506951832527065996161083586967293770616688042239465790632304709917231987832273062143833069237991033400383651982791242098177583993547944517957810522704455618639389174008618021470933291657761022768845301141407945361611571475664428251079536634766115807528857397749311961690835854536115404052384352307204488847980624161012544400297240831239765688149738827534512615839042136800435267405718698188489270976786283074730480012283335834503736694541607806031047537885643241707086442756868722772383041945181390356856358010661343801522388867743256726055442101583802687850720140982825069112730587421284070528887534736900459020375884721809053930172997694354479326114940708074734904809147204859387092377871996250087628863962684198930152887464105008710588031942860788418654182153614977744067697195383125641261537859100529814860439504169202773950423867138673157435272355759637900145459417905634599017296102019078610417489478883082377044131712792604130047474466363921481366662521412906598684363167314755978533644039740476072750526605520671349556841361467146241751993478943623180423979914499461555296358149881850019021566491856817169294817206311628852797164877898475733020419930635713271743127636786319435646722307761601639696628730536548869051620562744723981891294847705900392240940862964111936469896481767617687494892343005757211455832151393923925737561717835091292973244190388659319285493490722181967149245906728747261919842571675347517011499575111603974477341008920698509824428171262046235074435176649265026357631911179365696454410666408633254611733470110646749684402352205787951607090618431520424298354448908322275251142578734966172191763704606705150377095491270138091756861442306914254446603816972077103862519529200307926399569542490277945990900085509782094479828792813944058435612114754195108346635437154706518132102038201535471025177124326396823073405256089072448260722283032014893144727007392583616274134773661655581347084521648665905810782592333303488420034099142362879718700191392274759240006006425160044096010901677370895168854743594871049769554825009843339207318850895918516264725805615717560403866004105905501185635525016142048340255689462624002538888735962675564078065439729792448947332664121297066800774934931089032451519198043375621553542687647266832661937759293631816630160781010818860983915023384023997598372818004331531882067348139655991232559837372046243363494023401849222306711227678414122995062473786945929959133773246001269755910903928087922663486432215399006433356761553831839231190627708109770369739608496340295920222515641874313087166198265666136473064908930189334368978230994875352225412497649546238016402020489206276908605310128528984659596818864877331029653118387759611550724401960095542369932972244179237838053227324567275093102164395417768136421302108687711869639710252748470148100443931592964106607434491883937958273211422048141774496473190976836519157355252056374457975793122650416715847419108867987577450146159190595705021771957024068642683931040691643764550203604013566571072165794828822142041985928161868251123914818348835352563472772854504841770617520200723868315580379885847770616498913137560367583578283253015179777509546507978386824069778979799800090866987364338443669655569731342603353484749571665778003039298882415894604109015648451200907485597492528893838090798485322512189661621672991640168590280427243915585718143754975585719911673233646919131562358759599721689335803100920832052734010950221233095907846699423652197269017068364175132723321849615418251928284716216334238182722616583151640591656477605259671342323945774462233354733232359626220445544356509508940491119614955188171511142081056877529937750331504890109271087168952024708541039213867951181575775394936131503077193368231429667561504458801294243002528718115232002065979079574331154317857775480344353543044479472927166024621824932954985588168697954041782017503718512101679236941635828742072822008470853931284930395041576984110534738512701564590857312830654638238966508126916159102605976008208137080801520111998220298000982973185624586056153871756681722101154278339670978682816320385398795341315304175084615600985088598255659949784534454094698347986892583042174545558349120452553912962880831223860670981614119018679643702575807427310187186588881366783830092717571607041288036929388550282379859166028597219419427179242515602307013165873933988909174093942111455305596621320268949578087145396848679687970546663634291665697479792987711765559057211961000461008228578810643503949014558464286712959984528956384185782948958647717378639291139269912303682333733483954342526667338441978854421030180610563024570764903079551193591908354793615559324619163603511695457865720682569637173293712220967862453854357849680864726294272665683664731586656618439981452319366591501482912996819745765683049222759140272040308090833250795291659896900490170285600724256316360444066016017178482828883146812588460023927537510701976565945292637491797530084142071244021534272040241465989335925604189111704730457467639462926259897594507759388137135087202767483140291427241268304438323218789278905325968674034466832504499519972616877750209467669849441634682073582108620600969870127388318542415359165763520437885767206608471753355006958781244701755158452684577626277866947293854493582968716076982898605120492184391825375848785996511855929262552022754450510662122671734598992016640175397502656371079777372186354261560172739391698264031232069242979743854479691865983589827689694453626140077383808444960865432536608595173528704625657178223015813904821405390482042230676711514542066038210882297383164173315469883995289607715822665758261507445116603049269171653113405026019806163211057469529230312146135158622812691297968058114850931123421656938251941742249000125377827594288389846293836486867008616201657420512074205149133536284884858077457562296427521351995505941718215402647468723854812280656555889047605134477795239273663386965397739601830226884751849248565444407560388201902917604237224795354670372672576466211327059787958639485536956621994880024544874062721787234490090123009539346288035328902807917125009040479693735919504485087241193503268377818678467525160212820384696231010847081665113997539898568949263766334755893185340942195360424695293495464935081465466725153480299437975403152633461892026493580217627335309430535094872984380376798081316955960511361109143641462644253547448904922246821246106216225824405887777283447024380690536216310469779342850259572671793713566751102241149260582977063005201824609946998252644632417591219717863904800909577919564978419275977210325882302736055328394523667273968547609594327737990538886871666477762780028095006407689780167161404146006970075235778661970159806074101166600128460791245294493256276733011166012133394256990503773610046743207401310710815051584589498605762768489550271779373818853509834095888923954213110823336569389327951759427598401705119635947240966260227056811232683151215965433429297007492630686100990806200412792891333435867819313880224841268929054633277048080386295049676676390859981395991378437738669372846862149572610818959019305517444356351664672330998091027896127398675486911614270837270878349582991367509299842910065570803729390785600657882157805753651439264069686998664815893985738759094002077499854243872413483911376107079681375528421364460994179276377370150313448562886213138816360883877905912713813311981990167597723569075894922722995477210266144715820912073201859127467067491663210079397091753137989385922091478368664774457878980706783141839704027140615005186627527802734452911634869008282215724850390921914988063354992699796234053176376548214408343420435576687368535108398414385303138123837252936198682422485828798194641118343281294443701663252038970567686680270745583605591377099742584342007877762541491134697457749756912600799628356680265254482223418145223556681623735976626741439978328054247321970432839062705374453121238990815992655626586760431274822705545699592176119370835206958702839596112789883087325596539704746652115040913048601218393275210162601349090279023083737237036422950587355276052471549317186946170195196227952030937421075101327910908236331186565332800219834208865091334495750423838554892539836978002922705122963267125840094318075528310435320974303433464698435266323496589678970471911585669374097107150814164933011970043898934501151835714152801048167239268382081967468657954225895089361042297084595271202050890054031908222346946499174388831651466225701390857763693322490816717609591352694260279653229154727032550427056939955530213863020844435286945250279027169479892142202597102536688219027426595333093901886851788245445630521806980582134782671417073113059743660979630256366418173460113628719378139284940365153181210585846761507186084294771628149004936302211997215923476211453023072556432028629837322359398784842801605119864945778371140775767613329675065625042450060181545763566986988907310892520282744906039747114003225839307631880262769928102881041702368335550276951440185235281616936748390941931548611330761206667898620028936979602796378026967192957771305094992080769710904344642161946207102520299992286369756841455013962907961708260846153306292590688176956907257807372606533355653328370385430561164497764943919383911642968907115507570630405890310015196056166150840062606859352717714947462795850654979776785060661357241755779908057765659687462382504569060376683494578461026035512911690243807552717486956741115001734282555172531095535203501097647059822967908289466573476569996755764196195963874909120336627322641609779455328130001244596736433986002674230671890568845227642309056049534857113300723988519114893921865685037707020618317809706678446819520725781026926679474660865521332920134422781692633328910833040587741730700779723569076811775394609077949517005391498772226080834855093715367480931948820908768169135034972052241768822560861485409728326243909743611440488272103041529617327385824169585575190578182823453861332132210829882799652383825338160352166074777085266984941746475937681304979311702407814982543579362231586409893176894504833386573037516883764779107567087106333631354524866700112271189469821475160698637806838965054009175885522045492306177974419665613902189645207749687362782219994825101148523112567947863864187247441283494010419571560523175101695078220219052568352740228201500997720777999277634783999581611850456808978541139315280434118407818231232182276931195057189565401143477219772471942974832587494103063606364074210207190898658100406856423116006854930575520533753614095033909888726120679916533081441118475317715660267038870462069160063323802999321374199995615580480116064909640874516703367647413598368923346587838206775350200178367581701989569550293109157614124523503109143922679334078663324693931383342044566410258235913069205835016754509742101139111853324712726380189417279927892495063803349617391296028670505315316392665968381461577833317886046572995153952944686068523093398565824668331610949041275747377126631353793319094557298459094509065801368714519850315621012418935239724440175879059725182180959118269013220509090996943158272626622117554480961672504280079344777687594063014836213106772662994310324244129933489583381286538830024762135192931876113650525180535866459642904484290637616153549601782936155623497657934344155987810123117227973110528647315310223362836056714526439701400891806977992207824488030912356269791636201104128248182351453692476174433931751631833839081353729624339315881083759271861542159145058790798842558271322001774668442278331809251779700253727102414597078816197667064445516938883351666619984968715584298965498333638997892327682507965165154392687529118121379250649943662044296767788019547919211240406232460440083887386452937550127553849102517515392395569778221318964986284562467176048718060100788821117393450710527155645849128562001247736387400544552734292285112320731551634851835290046258700050718681306010664149502261556226556351615366055877282459644593277374801570411999247582459044539875816828922545492431287612585791080381974932056436251974767298904894825528801500889069890106505577086751088784003335295025795324356611042091033686617476382976151476501712239025540395274447254344827913873335811748863555161379411258519895309072302918023534081954946787310770594819029177305678351448282482618715359411041796833775797275883676654893044698682296744894107771123811370229084832887543462804007759391120052196891366936475728843085286953065586468775851262298486763219168634211702421412958450068364446590889767741522831729700739526805327083003884162277519761492735323134277568834879693937950613749154826788250604013238698088476431085594552987874450833262386424755700744838599944263944824570014534839812292648785885694267966810910864181681305212834674739740637827854711811321403068425096163133383631850530887157462384448991921668027817124717896964502979183999806027586890209222900590492129180479729799739596967999711787989370148813494030778168253628734804513653901465908056000318832002978865620614728384913094496151900295771180617516564831762010325887204781178386870501540167584308894386763880031227048245999700689279473448369151805063621062970397447878333397513428723383745898915303342756172466811401928228937212904670683965466870025158294219870352616190340893793134342618322476314707860681280976838992016991937522182356491661159815182162472089753961271956535290852154784678340093024548358642879782885529917203512283612771718900061800751832056087738986632517091390523290601885926192380219914308632287121365833255380427491784030374200559469953116486988421271983461716548756764176572089196165157527799080960459788517497167987283387051004224828174756541227394176420922475540605547842224597873392422396471961259243677674322387064076751161429727444249130033112015827101881566541652133580692065924106822165252192066533310515983703731508960073617920172522546442466427920728544870461136978871961030010789016253534677785640535521202122022241203694176995183563735536225833078210149506302210152933158072308360355148087669758177534175197870993111685194175683922415522889327354222702292806418455297251902214010700220360992716158950451722934918027340954820495787628292928782813618485206275193832797639746555618445039540457715006230142858380407757585316869249086404441702496280246187571529696981151146681868413754407051220185270176321025375517887480259974711906364183878943793970947519875862691664376570375437715558653193775201319289315009240955640073595569740985477141526450844709828209567361455463732925098579794127436273729502345460755665250034977496986133522572107892291060441004017231495932565865562159242436050346985121188964408848062334583186623687144428008386627719471709928191180507843187089511196742724389224527412895238061140118640023831731281238692028119741938055684478227834269625381678451631379587426893495822863466982406374341085237041729266054296826687546915854708229704291594842291132401473091631277589827247984992050453635534913840021990618662105194534044145153566496827946113548292955998596439077264160685510949053035506363499501786175876570363385918751766270760838368673000705892410782531232711542896791696150230129834648286763890776860896336082861654774653917734906518180992062535739133442030014027564528165360311876630298799489731365536671536926772190908868562721783259488233666178851706527149586221084619012157033788834663735712549451623846041600586550700750942879452943718885786385371032219723735618914037869365548231825751972245316515135072639463713998612940780381263538979374442612070224529453583006205573213536364916562960775713146186522871844496360044472528929626419795462070880936321771625493538680836014170950568212425807749697158624778870375350682352656816224287081846966674537927288455038557672425178085570085233968395960670798007241416342359043241857175218153062485012679891138112021805647813108115005466292863313634194898419933390835914486402899670795507987158475138591359141042181948157583535708471555790992367939732112531943720918352327222202679594398670016796704054331900546128107376199901181341956859029820750506232657970546373215291100819382488916655889898806988773848523096601659923028242231845176177337623745422012619291343755526623969242451052320661891528593004760759409894473950510996770619057223219745695046653240651038344057255163504905296791269858830491873424459852214098314029841143454696647728715000282949801558499889733844026303039676749586324221146980271090680796735067652737108105894350968698606264655071527909189329345020444439667112100863275692410113114903020413850089493429159354654012824732991238379161872661905676941211236369912273181578368288231600277526173174180519451348195505583417449122942874975556319140308524716971222436104676170513428433268778968827499777026261923180850900387437232078352210141021551924819742890613543355359809854418193364248569005805718259728761107643242686353245087447464039284768866527528595134456438303756686790170753979653966385392133702299876855642999918076668136512634145373157265588161723526507546723151241425682942462525906362714446675265754114410286445907862535441500485433637562404142520748702684219365337999562642689210998095498220647484698727167522130505472171176743201967809449497893038001113527619217648212112414945322012642198401961348720070875556437062406779057887728009570208873724348872872537345593238839219156931669655998747648639155294224935942089884734037732365535210221680637814582423686562097023989355648989508012617171418732697686856026842411769112546670105732676896164989070205981114817492574305923344210216487325222463932634924306266836819117549185594283330210872408060509682618524315301459124127607482851224933984977686856811510880021527346723617998790261199080572396611310917974892258789544136589819698622568492733836332856164992618226334909673234004204616231107433727157856105157140590557291042345684831206767313595975198944004658033182675102349569427102272902914618131083159162519211091380433628811224418063246672611222263890862107849545539737690969581684323338549975699491346915777169103344993102496282821752517247785289371428190562024247838995983578686626540415703308412699600753684911216952474620706434556857325000925690898209411595757243620319442153973013856947679606145563405859175867157504411891404073319176837505022802772792398363082488823927729837704101326935530176411909866530905055547497070839566631990393954443662412103330087814863534145624718118937409537547476500763571250512082516094067465894729026663210909348469481056213630645559635440475569492072285571224450920612071079118966032505199796195894815780657450865528547201875707468543288113481538317007235637955132108772625529553473921256521723680946154394542850555359805813658275680315627630437524811370283775723073159031783148181897404946626505986050599807350053184966491712045765895998863042029590015776281779165665499131847328964429859579575449375213562715861330284206599376429422182508759246734041411938228772224740482649471326445588255575752789528545004419658136244340257354569401243889978430052717678370221891361857127035741078026661279269500184773075611802595768172364055934651056234352494897524562370467718421350818737069449497892865260998970530059758386025411633056580267860972056007954773550229062957882559502723874548952490179716452651189284447035612850250443073468387590673700415092098382769577391728167411902687843597913034342123911634351224792922823388746058697805856735473546630551569923280068675853199593189499499819990222072694473030773503243686695569461676461191428528113367414149643685216258775274897271892465087095765769810534122115469078394139991002105782888687550604345915765917879370860817961722125504444095699981160745641833282806258828333285869179242980771804596728667049532217877186401989284947288469603583313850794563917665787471972859018266758081029761680426523841562291886626278715215294647986592340051071155970252389351879238235307929735500793589258738408066642674253683770881917451483087013907185633617919269241004739918204324461874946025734744639607471855992668020989158076525628123063085542060087882167010515446778315637789580539031487732548677808223903312931241087659526745996648071820153504615392154035296157703208819962507489636888997333346134617852636585475972480075486262992559593602643903112470362518550877691346936707820522829093984377560083895705992789139457242162388346383715194146298437539663498891290017177824315468383326733915345704113822593237444053430071550004718144338842008198841026053460096582198715336305621211167875497721788362275510604219989665840520779021577575118204936097141186313708812261196042352773680946138111857057405246090612453432455355101178857735549996144268025000548933444329502343267695563628720548211474293808901715794947044662017659750815743176219248572646247502667823925493030676399735538779951560641517552939069668183220768773019244411304753539471013602441502870732746353500360038316452978762663699059430765494257220597879499459102517174602132788014671718789861874933284905481187145193004000264767549581696159692523894352756214657938465035597973176948972652487984627091807513839784421625773552160870007431601516052635183508981452111220615547973477491599752924265959941660265965806897612226652127665798603938893670539909163794813966052834185236491033650955767465757330317220683645141055769682488435966259409252196905477104135639554919889599547000274235428057939848345465204623665407375337396602626730563669926277792534905634433986091078442000949102787364332970854672045477865709727852386109189129301864767103525717529436740023198955372671726860345739926231153970936230031559469266490879699557001459399860491589961801590855545915101903128992835375384724137313623071726582388278255541675213016338706536413218762970117494055621945758644761363089436562313075440626987869760417598173866238910643210178654251461451164971420382607049647008057008154348854890024278067235892934769522499526707655382117599673079803179637520368861258511771415546229111330101901747438714308737696740756113024169513858208310224307126637480386330845022063070305828793035958826828513144475296461166716583647061523217177109350216629926654414621888954753329402354754716959577325903234643761601017606656280425358782552583728414851265746237067496629697750759876575821814570232453043782619833565478017006448051842961932999987687524023115724038241304716870354169518586939153845336686321364559281102519908219224313491391990981493984296506691459548888236250243853133882060039235613692944248154010850939801453917521921947808170067483224840691521667881773514207802151898255621093793605370401738645536406027324515945776369970694964736672830968598315067377062873739290485184040334748641586678922608183380178021312283520929351381691088863687188786418007045527383777740884219386981365257132158578422159371574441952866260937157752302614603570629487818132256974892202874232696893416387752484663840267467928666244512126147812178570381044110304400002569872822476284998000853968882660482942928281562638878687679972387107160565375670386809576359488709235402176047717054730520435987223416033810238375202433742360494058723729508506271101179674819083541862221194818920865385645890477280050570237179011069344929461851107366820826773010963360465307459562316854272511367140156745866024207251274949306586513103706348001274984407256574364241754068665571038521913434323041963573029316083036613391129241695669213874364101785986124365823071912728080950606276105861927246899061134962893329434636144844512136589277172232344605640575900598485526852433647198158195462204605269819014383301694801638742102618127491396921198286105174181577357239898275521402281576975102472442613727413581508357127213911186521041337511389983121446594399236229777160072363021157603495938634530001112275600011339232588697350962808995220818218887935451965225082690549630769910417690693405093681339034726443493616990753933407340071517379358507830531704643764913700312930841215146573804970689519813443140980679464558935000664721578337382559468407138356701526238929304683240463713677401130918447328563357843107228000147438668917391838567071053219663679667417712170748251830560486598022891452213105339621813998360837148493015739032408553926438240264721026252774737151063858200526801831949376038881085599922795054477815784655667685791935382866498744242891803119057300867662891602208560422366624862913328037669785690410889250254631495024489948606313080798486876434233746715960551129798177158636631894338806111363239035059247466591578474660247672424179185787981108529844977835388398040524039894240062829798341011342939559956103039389836636214063359498826528942207970172733752312996832002355672611578145182486305427012122559073841197033496525828078512441917016056815531317699630472590841300438397512668976886343744155880146647177512640300153721895461378095198615317685793765752486469111636942932839985391921675915319354910885340839894601433075103586814561219116994556732905999672542413367108980669226674353544215224785039120660959418286779651452218251472564376144804080533353632165256120408554190412835324745745911572435788972770403831381543171004674727032075360893990121712110381275722376904261035518735826417556437678976594432426217720549326709304188312277850980305815952742418863514431437819458754350690425613244800968094988918920342158737413700997056329589314467407240109279641356934650563191007183081061035837500768640511363921889898332748483619502050347411823125273399019886456299090892983884068010131590857760214996824040650385115188890394748790804830235807491720325083128453231114134345277984871347829162153012662362622290635603807166813099059618222745823411162801537842610005450162935499908903852036788717358120253086465309167052512146554512531679599620430048225997256587389774845402854805131670932324035558422193382736937619394182065090114817364319035293658880897867325491713214424472636369726773448668725043422038222326034856302967825888173910450652591563533222932682652538051898377561487179881698428151259240147307634177130595668530579663497366953021035851127899177664108925582837315627228416939892594958400113149608430855276210171880331948379393058400006699069723854138404062277953086975856282946777097154698277454867727866902207368982528158128597553326229030996882472437191463586777207466579411009772235498732136769152646026754809491478646089147114789906073903386660666317864794913018244730333434678585601948363369203697734685003129290224072097057320809466084371333102548128673948763179819931569132586772240650120567355890519071482616271060347876128356175070797162404224181094223389139110815064468847755156243319307490072545444169030381664639511852126844620986112694196737413445665532097104520805691832224936198639478180863024662954784212984603254767642148052340800917383870104911931740098341048445587164632722807558914219631433936637656466380997963533329786343260308143001408607893079555054191160855084964404234463424296764867359038412189665631981369602816623883339726469549160411442446748563561080395587417035001531035266876120014711687609346715789993583485822452198915533749858767680387693699098624503698336161734629164150815552559260495252953587507097821222296693827244569271580345106475579720401130546696035361961551518440758934365270992615371519920873497460672582775702926279089117441719727191168242698013157113998643989590910496666963930098233424177511118853452666648928453867675081835980069806689513900564120784227114323761491138688790706043830992688880732009416749371649992164348508090357263990547487341739734648439624485294658924533309243302605147112877403628611948689523858527016498907758659841358361437085466254388022793364792916904574312243875838824880528263819681741875947860318900872113068838101920378978065311398472066152226178720686618841941526703737543863666986229373264230852081697758728397224328053986871961687045751115464164065412494322467219769556923229656018744808541363806796636977153513470816112946282506119692834414135717403574692473946391929173142305662789298783306723998840400856777711183310612993987445976045246731216453966224709158741169264978418460017813302103866398736934508557939558958870119777610886195028470612472559338430396015017452947882189792614520425283825789266951191107463888644789621684502370185568974966571870187263618944494117124589175585458702441817572524103756787763255767895524761943178223646784408960830942398547838848914379105341899724291917415746864439460932972355403416523484640097689200224550637468117997481696755833221201747572318900635457316820024159903368487188711157584258563835053760354059750316999597529179108992698359927927015989922140788091135439642516522458922249487183204797201474564086230978488694596124566472469094330345186377007700461240506028852565316040200654957751114599483710444018000143446644876762405766370105221515132568337534299423327458505486077375337597667822907162238558162886371500406300034660211078741202292042442646023278445665568673145109659392978162569897870510343506669463308376985274623044564145980299988188298632135825896593308318007060976215878776644606815938386246064037460769692473198110669728601026109062656728094114327877685413258948498636034536501942305580550271359867455447029281712795559872941387799723250936884621394308158888043689228723415828841688585751421985893285968961321378512117288281724459161764344771549846454090029393990815950632124252293784208427480393017007997580542853512640197719839616079703399409801247267710206068234012161868466685647016954124773015993800016193262187149688404945972600136473347150692199316094889445310949065239210665340640174532799656288060271138652993900057486894306485434266225978515178343618822087241624632561476411140422743862506720589852080916467512131738036452879688415892726415659814654575748657758058625586727153833343599413852997896033004708499793691945497951374250068258431592311660232607725143029733465270743431624631782141770544352667667754645256577835962406518813885528883495370249988870549333861223297474696057069659790348299247241664555609435662338881324914528859844082527486588434564141702848591225709109326233500206472294988873968029020443112262522465108736532850940979071874292562749884566286700885141208492586030443751567879150847226146491560878601127400304168592730292229118349439238791783344338600199184842517772526486262927968428878914465715269303862848765185032061782786195309268470618223165559758848287412974216458373955717861071738107866586521115204856350749591776427145712216485862813093490087867350719822165166556544147946471187935521921041676886802872233605676928663607829464507981589001819474654596928012315843657877433374379963277156744037688988768238541858297043462198557711287149063440741252731644587352696603386188513314861707384029712320328540678014975950631032180969113404838377911231623775108287527513882077284165640150720194594903718824459771820894988441088033305832553776584457183480014421709522639790911085897945739386070815025424355074760142568320086095115663752226700414981769302532619816118381628287315281929389024825925192953221450481031631663587527670266973288855574883866052462293191697636406418988625886047176050931712505856029356985214335413362072909879143719433119334858358527176206326843667193075810273573553695931847354952039007422277429222297089028760527515929349282301189026944092015430235750638016429646002087154466989930185266012661768903724081943488581949960553975688138172298831381414845775862888703883504671076964381943690230461311251017350381438108671248958465559125522851016104072081726689565482565988946031619776466681001519091783032499262437339395235034692407779042238169353472927958804094160045983896385040169909387682371018587472296874278053686778567261470770059686701554933441772593712578189319356281858892986169496209055466244632346843708772647324548419243870834535514401761419626282714994680412097298941099119528876006698523241532277755168389075855154426068665955597536657283649212938451274591756726325711867364052779030050162002052600345015526905058743483930354903374191936290962808912710404820382139062742104918496601050068101451611317063879810478176539816918861738267886103041436443179718880687644699829204010580423305917456755091820651782264422440080577172432261923418500724779909707719742356574723577719381016979875377868882961389198422201416426574686710119854531234436689132220317313017473089357040512944927058248219883037020149302196880087528424768113799175798242321353413605457934934323309491385738984216036019641471403474378542617452482437298097067579125669809209551450986934049395800492800715199869661604928271448989870618162737697138351055657527075274454715478530153956304003245584753931163148724373803932795984063964055923055536715676862686864320065173497056313023097468140090423378128825077297132307344257727756879376425900063385951842807509199175631852404272981873416325373953072679016723940333507247514805741399191966110473723160931255805536475614099903863992315787045112881539887870444256525395351766359692852327109803222766221240307101909459307143242533937165809804817938287853129711315901799972781925582398266486347447467203047387102898703879661994984614186419999832705261792385413479801897205125689853601668362429202788410618704083347510691075133263015646410259967846684965839720742056421580112249444258028220523149229211122593738894726076948216858427069111481192632886553799123062987425903885436591243596127064236044702152465674627162219218252269040064232247477062673305412528908851901545726202131740862704578199970113215335521504969715818560391794505040267087351194602468869075158599618091086249651591637009833517036538795209262711839121380510290665436859517908177032504032366140585444124446509005505948960835467384604667240081562960748983973529314837109908205860010594224247351420547834082596098456023309615211995197922561970542002551067196605650051461042315666415126250794464968449898643577472870738127707514202135893407314555651061305900778237651310332756356143934695078286702234141445849771516247200221234013608898539920491054328072130985163327457483924178184350621942695670493719495517870415354365608829008561086481876893690824509542361100866486438317740499567080799609946858701209105912984629145324537668783604793034926094923344753951481663066166115701788372330043994300628187344120383612631252604458395392976068910476649633842000368920832372321358236648864577273651152625461012604953702586700357726256876136964586451340344325628293661017780893839915839751870053397540711353242314877307444175663365196474665100931721629122564638183061405307178275770368829338492739487658125664488263250610511279429355658597763428596693197086484706820294644873660067957469201813216563035902748851946162017634788057073531111499882580677597503587035769691089279190288396744043312077226566173300384761253121903956962460889247823628117493975010930963776688656266679510761345681432273898535505076335060578673366131403178527292907773925050346557695510032362562681167277889572116776791364260187424384066684211472943789225191109258607000329609534202090658989285341406626800434440603144364617966545003786320604691816347271884647778222020697877102795975198799938417978622061817073626145831103253684428862846771041687098919208451856269572732161412858501441381394690363685505616303550615657006712270521740807355880342058570538473322869981495869264395088262860549730844440226323351163013916735294469965583185223736356949505358431176915507555669199908946120113520418535657302586806999593215661021014661980700600523489358718174499291381686414897475358173853837829721034209770403651885628204793595095880624728506444074596889994582936215482596318775025948289606657391505973287857805941994989729473609321647453593103801363899604225981952928331626480437564106111710119133885471514644325256641540075471115493345942701531014968362075232601835559921095369584201005684689597797550633942967625702021929637517459980590881663230027120988018327415111283002793535675611063651682606326602059649099572712981865538634445536562941480599522774531926119065941579531728672965979642514654330653727318029451825172042430788180239347651630581416275587592841071368507614995842091397370457878854263831456144943796263039058262148963813644372225254583529530744117975789072226644699063253732886916898007581097435351611809090410225723158239235719731672997414471113669489089279429762212846192039686360284504347740194882450489412713478859914959895917908783075559593741975702638470101514515886365537735324485731375842906965213494743282752063620978275842817001180874782583632773667685632437544106628687926263379322980700780588243430269488321044378919669480978254775397641766637165742824771202578056676196874021819087798451320869820789374858928633521409316100333930491034923357890514013653137013491703241021219061845075968767073906593636753521349688718074586411163532629957492287442300827136500417526905176733597788987405925128749924627595316715222261369523819635657631449044899429245374031062616305283468200039587195651123820914548463963246178375386792831689090142473865035871801669047556198044000320477991467135310702411919936047686825079704242667556737225723161476040132319229612303081751967409606652209104074076687176129434687819964478677187390106990732849569795757137117530427543278614363991998157595230463610404500057841969673205292111491871720617663232550696432188401492462412683157172602284117709274079894768426860088519273431055730362544162416453620787931790686998980320193029176444900807683175082712829617008818363809871330493039528851148852599086660617034211297011471598012641485703529606105368719462554099272004817053733046056121085649386191749596528446375379694731418478229189538105279390943268061129713138154649301789313281531496804611728137830432420415590847912967086392782563601913307145908983645812002913430438265249695086969230909596120908864390399066550726633629523858390135156649624715533921510421402722997927495047506955483578822593437445662040088870616735975182846642899267195455480045040864089015095068824033658157917249555708557064951291319592115042052975286463283206095173579491810451862386228982603639657971536367005110163266818311934468127884149055800883075582620097181945559609881686994800012876937040435192615872344170885493487718216990037772508894705167590485577144268703449514418307484227512119614201795388283199549477983528593300027871765383086261919701798495964006445327074211227472316171136150987974864437516785849904064218812732909323664422567352769097904726063193727881336428492932254479386760566306283801339285136273284096082606652791173364122917253972420392787350204387268083668488020981992014488811356964034539611622295937732666677912027942732535588199924400554046847402100055995422917409419040093337683259827751921348990737819068051452985110002544096139975946900846485503273710284068223497055554695694757467609993222506428722737283632544760229053647809648537208274926349594944541803400849319460650593079408740140755088762048984347751001657371737242624836305651837668045010039076059720495177593306435690172783811928689046517681165058402874710228763678724125549157817017480837626560582364214842634750910463981986310083490386857595558752998163283391170890741762778041019376641393996626126540916151105982116468372842578724229638224683370675516959329562555292775729179617056885709774694215927831260370300910592216105084941867037775351650576515717972781733140826675852886341580887728281029393988802564776915022405018087566557655023848127867669104516838814003295100355293870644013460887057692096737884312917913023291189375249747572326627856560302908338954233544762735594492814149024385869888716583370750871963346425954906024658218433369268242737852645196048907866343832713875634390142770628482021895724599486126112060519546461055545303780880245728714565482007163758849591358408983947802230385853117936945576745221691238683579200712932676527217620539800104571720407050754910394263056919849752757779840482054049589485783021733380278218263905442370033779860676499662354374998955240636837336296993194088542093038927547492716377187692535704470926075462743226283936330797868707554010214213692320606258933782279425799441326732145645297727010996288094756258259870549398769802451514771015848976723050460115762054500868300769539743975555307823106703887005680796920557198499069999875248543191869728230177591547288503231895997598461685390042276193827777406145524736778504431247222530254473791085859640199495639923561946931428625026489183339779708123312262897737052368702105579512753515170112427679472002412201823964683209101451770390918743409376482953791132778785401770630101871560242682512897927581403681392167460834025534360847438451936195087209389815911773165969656587338933123754809432942967438123380072154364871305362685049627466363138364677934962847333166817856633355807588454028845050516249341683523368941213072728007520678031116138854357214039570209137058723319735400224668526408053414936676671939721416050863529587570771232195142447774976292115251344390446040879546739911406835642474220404497419093587454009214256521193292366034636351704549066819129634904079717706905218130806065562748365189576411083750200444326298524261669812068760272473772867993221169736871519983234862754775732576012897073803834124296969666540797050755543621413105129757153667816318816214071294166819387491232646382480389411144603097822288837370634243982139564153400966630650663768848371928510262999757580888252256712388224099779090899030119701542610254259173705246742088894948351400187448099617469543824856645172558412422849792137612013234194476951187993673438829379392248490110670521050045327125089666227021081138036862141929262803449967809680603033869048427738802737193602853026251153123121202082657166935506085583757384411471964043460689501314963255075703008839194437593950554666090151349509613812769709340801749607572697768803714991890912559937399490152571378918484671076974961355667336092986500371082180580732365240701272665174990982626540826852535391877352780884813208491590709732583611585739077943056939296606377130729216234158249654616041344539903721319581256600600472024929965360838732692470532260602560221241856646149871370002057472294802323553165729920520968095313437616837204132979982426487565480462397970100896155867959002063424325361282749714674104115919243232764615041423452031730061055054927293199984640840266669113481789606488329888033077192343191223151177346851050267042455752828160438415067882061290756880048383590987552798373559934816821759367557763843601124521034598870722822593556118449546417632748118063190270612181822204263980177032767593183945365070532587063898768609117732713839145809272011053680539551741298416105869334427596118331411506803520787332278617405068774680795541395766379849260227683204059798717906534106512303603143872725932706831382484792766415787137541987699013272801048899646111131682597037704338704128784558036929832412712796546680335161835351414389482556124406804628494113565199074001878654833747597020182393227835032518256690721468664025247685231292631817966945525672779690248619976813074961495128490742365352015399531583557355535770207372293472677574724674269288372584203129092076324194615990434673978967313864482431702759949645113315471930713160159179779559901375016711650714323981850548268242509633319087379062734168280498314918583161700449808320479136093304826196254387208531464846818516499147319802175179547194643634724137398371293439167275312955935086442659858043970996609803187734813172670756582493684166910675936613550525152119506094022101054567902205269168098000567652447036974230091786027634540149796228981632432733077776015352649017991881839500647777726081409498401349767684973177502873989404332386420412431587362060233831852405469883661188307401900063518666036492019204233535736399675852332608177302070954967705555163931296019038086010613169445091983325682293673057204583117883796843877154366130669809034111260600105153863960041335084586024937348937334130119409615263407783242793399659901667103467933357598087536334456024982111844975748395352917346132165967105864201824693258874780230771072082210533368545218798662940886996848633380342689171287298137219254824456069394801911429369187481022903064653880645052065955864335972542094453052040237483640201334740377392448710214420223885832147935387205212517740620023027367164167072667135110393285037287623057728736367643405484635275936504770397276417328104016448646844380917197918024721871407115293967727444271438771346805952848553606473442551122399840214211659231393673520449609044080410789902621538777242652954192131220063248901436594105856520747689484661783205909337503187468880892692939142440367166348608040110820158290994155994691739905636053097503927443907350283175874751575037561288059482076112914619130275892238584876504042985144123239644248629919521689533544501043962911268440866769512105606132239855194704502659486570687674054451254546334384496121612579360986916161765476277885844276114549534633495484632426547099478422115064164686878466245486007328029460802417177379649690880617922870391937241339952715985378754613117595116753127164133493705024695249328958022990718938860175362614827420455209697426133263117345660316721164089939439817147269983494545033964326353089714207730311867127863691111655676636601870494443966605403901783643570022917768533614098973218479666562285198765216896434712999784365439226134072409936312128303738928775831418976791854741154599813147993079003952883114160112878631552845557710787792093804679031121968413733717018707036201516471314142702160230174469861146003991811763530225614832554612920135982376587249833269739229990043792343519744270359521344685393500959001730334219311603315270473493324702467860987472124576156108118964840039560414928821270725527674141196724907640730935018304222062343724615361269703844813363025281917923255190815600907159141883413405883808641556696580540601020486932583094176657108984113954117962119209890203834548814699732680382116572831248025143993186192423215399537882386714014017984893343988711870632794840953521399367549224720860913824676155637880394534405915499195145059159977967545137339272283957961708223807256071768735548727317049841113108487395602219590841767324376588310398053667663895102054402816366568003853961129150601861464637568385098509243896036350456201939140103580586580313789378170686824060861939710480016962991721902810462705529660854842910175478079058465883433592624012802587470950917550927999844265289809790273845228477964562501952058478071350173754790761036164491130352124502822305093262706864024078938083438752188499064762396800944620633227250573937895902256338465756891638195573223265651951760037986023945244085798249384930468511529793551107199931853279090285497718053207988119185694131346456049032071082561712158245044961561683211047227033824726868323506762773262258048165519680331100174444657629638588629543381849281376206717315399946677920243030702545531192421476862916787957348850848433044067894729972600261465798227414878427327456632840272247294822740738961980183205455480358722325251166241793117565798845123189009866785616582373197701345756774101239579983389054489995938619150190271842552742075691844958215755790812540706694429792692943539719741731426709299557066484300173333619672897526648287923850121770046865559053828692955762011284671384596483019269282292824503662706369973785869537897806016443015751480725253012398187286896262927563507419975852461037086023059289107781210526605849671622238858089773310407729264389392915145027692430570363703318368137756220620454261206448678180832552426238464011534165840746867712320515504095085155400187984717007241511391824399121845779823681487051520636223062556090732945106693133429385965522941920059284940618751112397261931021056193107943362740804838503100803112730616449522706008048727274599360932356199372796556244838158070029847396156675079271978808719786075931077462091599183152392900078370812791403218781569673167936046147264388987828750958596651457115547905039472345063758627345170429748609172552923979517842238014394332203767670189190978143702194240138081228528083110114517192125613439824225281163929168131609460642276748345558979348234143274398484977780317902931799573834046619019784300069991506242325743507176057803526055202876633780311728137941144048384817224475107929439941717020084892823794958512752591516316498598261814583441161592451896225186605337019454012598438456925553239006313116186573474431257799399655243554246904703039196968179504325957189135757751407742910619072575631797629259906654736677975263947895772580598276272606790583789246921982219132104129274623550991960142793844061870406451910623877703319624719206235716909950150976038803288226267732534386392094516644450426255388546194711710465478640967057876569185455023049471162064812126415180317242932109577445995949384229649579627646896150806394473888556524150314993597043977697824902068942526143132239665624806618648824152220103988010734269028342901250834624187436444036700258849594560181874359297869791672975657482487176960253623393092381059753088682437457290616954068344865202225720190376885478980633214901408462157076027491374521298260574160248936294267218582908102690683553827905296911425492511692817981323192656281724317084621893604627753723221704448988850527946136120426745377762344442737569644705887118362600467723058192219673196498899168569902487154912968469503743998637228280500148355877727490163529332804193737074960618140795466770461009556096625265188743518511567919119968061015489280571623452132346600044979362726605459398991257367135815539318944875770264065984426292966942209643098856351608404067078760993787175328749842015985926987239699573150629988311692526488506308813667114722418439073812291202179505507141763511931571272035707533953873088768292013331618985655809836540023591660389436018488512662091630180126489022375421064448179617641154243650923925765445405732256724324587568007484299529178794324362919634503719680242180818846577191224946768123763084294921735354502787267368098260038793377085405063513873585064165865950382221596297643577332073956128946063734594965527410018755845915897162602538929213959778383554659895499699145903438541471445464240963056101536694406720970805151966173032682251252628089597596236648718733226679570098582083231518862064217778899157888652298720689987002065588993309504141939388435708936229238621860532180953607120688317350135540707175388661073963418296744500761725135248655197602722233447895007969917562351447119124877806906926340894860757366398951963172833023089336093205484423122676491728484057539012023180404015286956299591604412178200413254928057413119929685830639095387334966580502756336205121471679036912922267633684273125417545986477920845012534197173532130273318724404076951217314752044693072299510866588294467528451514203027018280310574670918723064103855842252751406540051335388660188354413785228863575300727335171111566020769544667625741585903854080573839093612493001959534905909819486923874076221453838497534940275304495740913962395343344462412657013199689059576940501633806221629381665671991673403553130036766751307243268507142461572431169237588586855052446258811150883498588367619233159451762763228200907584970800921852672267011287984634463067807980710487088120124249892705029879956019504230575679639361493116900269756945204548447757522303366693873957562163897058345915240855560345573673058553288810233433925200456173925727380472145004879100976385546923489516000078102170185243764142968653606387522205254147415090887301442504736677725639797145090257346526743979918532673376026531302739696950557959546673183726735414174045381700252089433057722129709379996260848991217671416665521072773242024746100746579784196510477791365242877385584036695829095537430690499382125832598208528218779084061144936335924537914716217888241145010933543721416148311496614732291681029016425148190424502339513402061079003338055580623615294536534944153443538229192722513964772674984005034973969177846856432447495441175998759119833381270247448733571776414423060346320117933375473064570577841637101979822529779665209577638728154068969794017762066468993912537202412715119870309897270233532516824311462568832787446376500150874343998148867121953595879405562712232756491995373231676037129352654874611659543436230756920340192543050230282240886249681146247026970297299564882674965596037891310068528260107150914732232743656494729096828077707859049258538728233710017362506391326594024170051474925953734787720168353906332809885278869894447419660550405680847067930992091666895735104690084898713859673229757500077784783882733904021987235601229931871141724004947791501949367909812504443610361892892864570042972112705203156354255622574293966861312973724275537921251608810736704235517391484588998104605475283536512583392145022207487745163459439477855273194334583250790370494533518110075964957497227602912471298020207036358751923637535863172498221678057908064111952156566010326716847159420851413010424782872062833567212436551819888171088991749065763320321344910285506492984528533690699006900419951169339247426751979370834415142483449121360992889664814847613795768889126293879710956781008442973341779519466857610623529855773987504821589978017946162630371383135523536796919317011250827064451808727655669255084943418532671979415628572306419185676466597216266209777774351296452440050275122161812686890086205274619692312730392189236611029059359153007183669492693393707855346648634785375850239890907703383643182402087828782556591308185161039286172314324970134167667603326985436857536925054917804296705203322608911733194117865954167790810992368101721333372563451455167789768021100315158831571622874057060584877661729407744412862180156854490281813645042234238822877645173261143160948535120638739235860066617231177046586978388183268692159556586281199315919490472177222472608555413167852218023789359988186229786917074057877651338794046951684726034148718403108082250733041607223719982508106378438843049695867844341444169740199077570885805551216714551022300591807445509568690415334134155607252741921790142875705453157002260454566790622272551647180801095236895001772192102017137275371252319060570478117406426280118150272887174625324923844313979178827701587398260264088545474834463514024421516315102799086204759022952932828775416531442393622773381955863426395341573476487761787898055256580487666602751925063192264232621269640253312744014228497661488973403466397047211775017524827147680057831090590666939194907214091425513484538539641367414019259166118567676447453266401870818612705549132296350956543629756445903747512162372775424748706326497530100386847872731616429898192012099835750453354186065014902656171432757815366221952775949983903038323971787976410597649127589917317246778347462367925440481663992079722623086535032253282009491858520921480424100641838877770694459366177779960337501922642686228154539131635949966696620577188532320166240287572755807811560071658521904877675633566171381763672867154301945709810911750524465914037730803821682660831725538668251003889890010319512721489136236643101964474758277080219526097738553273064045685155411239967920839928450797458158648361059755494738250087324443439888461825695118204641398559202454837946868239061701633994814416768820651786911516927200387830790930156171464535482346990282911197474327836787127612879358893848276197877225499053350415397699010143411298129069053941351460024567169153619941099322840032423725939499977269209500853854879235757356977072396186147177601496616054797268816854020447787224636017405960065352393745729781765483178617069131214807615358169264153100637397947439516382023782411046336957696061366700993972537327372620351227265403864380401842652017568528261007222309063003252620375720669079155783944440935027507728959800580579278551015549480094696861046360578008789492654931954070468003424853698211396031495647091749267168122575616354008801164222829402493062152883183595875045838167832498520724275804249192641158688858724964107570842710742372476230468982255558283799637335513621725600866690699949581371491268083719059262286537413974841707488341932656733392624862187504649864344851913354113912240860280982693416049820890829680484086346995537785629993109851155528466342636483729534190867735950914143270358495856095392420363614620335992277306587214127454191609543657841243237998522587789369057539438888766914044032694217469025703892520474954143073759687725771484545429158771893240326516671755953032255971513944625904810933873505224677099415290025004687892612792358989874054608953208604458256113285375846700589024119964394468179799917936892019291569002932679464147876549187779942220881752260979411732698760480112808374526942147294989097560720649014984261454531398801435064227243687282964286139285310108341709888143577410570528576711016359817134745242367210154269372601462362583401778025198350104610895597264794021976931496053210462760615665130093601790551511086747078867423038141189739244539251842574981012341270752535256233312503992499504359327367021433226651311214224479971179692532552554502134595787599469403406705378719320225266963216747180666105043542463481533574503812245047275481470615983615064691931066559500017482950346452705747012218853057934623054726341293701251913783065956034077756185344988002510754411032991398190705110476073279433940874729066616979382883094042308081747948371320838170683036061218080996634638859615023961648755909257039904247417126348415984071847532525632676768818465740461844965278757652341988877609444636604642150402864936540670501813541766188368214261754571653546794808052070455014147864696234417638541882565544013232134843523960542937807907035873520078854320913491692154663369649446128396861830115017507435195857651232975174031191032550916077898516568598157610066199549002363120851917155329357360171506699942004017957897529542669659676219033915121791005641258540356229509937660893744584674369153580510750516330243793948605991854606282227813380931040336828779223741894206646653835148146595197636800476060657269765359455680483569224677307780777570359163222390131030153756753560142873461965438223625735169758503046296099721059628836371845836294720161038180778534774814333781050625701429293674406327283195545326142766160653632405986039708234010600289544333101593442452312112228301489722295914942086193146804423099120304855948559440925427273379735544654501990609129294889284550093885753308406002169279996057454896675780684022387976407710593977407592995097468248572242398664532242863766264629340591023123707282381493146747137357241602064151638872675615699772866924934946985606098213594712124265181838627667215584033863623309759568647850242478950634335107956031402488219368879939073573972448268493664067676114904144852242310427240518908491586969668229969156679940866648331073254343070088260948512613166247702884505899114747120550816880857938057093722882079112118221673795614829135441767335755923855771628024071397914307933694728602765496662088879599081863473790490106207312535543143144091841626869914117713420609539709130497852957574251992055209061345614139634373269808445522878058155151957049440986782477982112515767319698738507848063029222181685448217353856232756529096541445523971770917900507619537869296045220708974309295151455725597800820869231199048398407975417844555909517856706392649082124099430088724381798591749714423809177381207364257805252868901161337092473607322082463015563748368053551180015040128793068587975283555020631165081830836117498483720910999708749142027745213544181115802283976235370913368522677270271230023578360994997685553591433125590134380217871275548227019565924447192121357332111343154359498947143870990633014334766419451707622964827653215419121644663017964698013540525951676542007219819851544216218272930361801035470256383995305820104592749358717695823465773487123585872659048908686422106491694966120080128547115288764189758584917770520661896628497016300394822188497506848107441199951965398039793976436178746015877806298219403952503656335442214452344920053508908701359126280834197997693414373462821492655592043576747989328987032288714508669140258622337840036039764663113135851454584975016664423030731315266699831778105971679329050989289550366550894514171626485869358196843109477643911071012778934158204705676793362826867845889097550800859319625492445786343260094383344109110883122729489155057678783969648131530648196155613274787824966734106977802992206774322168706255499088147310968146353893344449497563273084323680320067208965529178657372377998845159363293838589254180765419245863251632415303629149486104442603671642015050608369539070255692644023753466990261892874857193583579577592233378790794693306478862868280074381564226512242817541330944899553200669980002203765380687613303657094289764209580041700999338032008216461806180988514498813883830512641841474654840569026430981178678823220101210451952475542887842092142089597569450597082357950665077163861458570874387655029887438979562981035930280054655711008022289895278317105838521413808341678561320751295161391131457463833368476572842408868928497021724494447199903224754126430461986387671635625271349940655276655809063103536663259223780557382380220849329295210751851231629740274387157974858137942445970953744636178375423147365107410240497308565303148596851410470714379052279766476490230391913509863655042718050371459956751168103564816921479902538660915055689406364604236156354234542728775832334273269851256943475027813803647802662523269707770671877645167012754341655324596650063540168216533563735606531177694084184480859878572639420680908728093585572044441699607695223950300853674998240415153747554246124042587063669810954595246072097278495857768011474028489996129898687533347887426686828149669898743200593914976375567867478197202924184061582219404975940912400245315834795903005758036756966557483014722760433395244824762705636966359551885250644391283273219173204058815599477560836947053992889994362912643683635940864502861220810397441603405230976641653751800217314443303007728657387732387468704144373886923266916035849080955241346306566550616607365423915296728058607884983079917279741866236959337351929946349094839384276127886197802047316955730460840833584834595952112043890219840872294882823755562428170125198406778640466655407727256492213961754256363897272286473868739247377231319579095042235599601842218007473617032379452006537401077318974007170531499072498324471445018949602956692021605247265783833523133042309127427942188303134955434918042310880718410251186924167093614365836126811292462653427026685568711019365029935036008163075734801144525041042551530116835675233871845031137125761394204812468916961314196951387475193173265548142603328758458155433822861186390143049875465219408447778242613650000202929040120443498068991421547877271325471393392463895739835183037268668734146879464649587733445812594363607939503332815577895586365206899720647790463929114428154292929397640444184729794156702206018015481472842446838647575770894950046654764216350040574860164171183711241582609650591145272523295115614040768148755779079421692118874633681060913455842226835841251129274623884563851206059926364257224912049288527126386834949512352429623804061309868799690675093723612875858539524045375298781346996265063594547575946650834503546018729671016927539845172354862616024905905626631241146021892158681473564536601330998492099497049235528644194293725463806058602305404292022021925294583567787490474107415356759299822430901474970674440423752441681345776765002630496368082822981259627463640129988392136337410238473204180955734666738144048569317575632764308417657195666663044682149744211418069280954958883837177246314931398772419162840687881020023310543024820046479566458598184261930101473318433957249875419361439141822296412866956343162601781291151702813928921036652160895224550878238058205154564923820075035086098502797993856872849727070109659875965323485210805932800834281488447993717453418944831940909925195867099304622630661272668141324075431537890431494081716365431122860719967367962628428222862575029828226466431059942966553016914540259653746884292316960603508140143566395516489153892915156485511495777936901498200490231206165211357002851146634298180847018129380759480093532850446120018959761684285908645986381315675878528414226214562071748584508303054764773518624137201650912405556676524271639848340426453510155319415006182223431531468906925047718465276202821015976992535506700574647853039198086828656746077813253373002962090148242839815333650755711782557717964428245663485909292796025166638774966283050313403192368459071951786455436112751016482366491299426354848383636692864245887053680692559183622642882034093148771605075826032230628585966045551195250009803718672780752370721932183554866414339130578467012017774353742003073890091060736773194666647317186361751143839715622121193412187326591497044547262804730915132057166088399717348950779570299551911051867794658812112236315964159534294894830162587849743050771183274898398706651433900954180056515848709153598191043655879616418093215088810666716408801188175854210961065440340325385672890099381703752137123795744865389328381148004570414792694552990910857195207542942033542814239287769666106572200653681614108560352383535525485167988188174050727822307401927586163913106503100513544067581102049735482496176976050702303879491350497185706923780710784218606026645694462719025546333993247959939090260425915109745516270122780296992675931090591392404428159914983734197784944195183958392393756756477942462587006348942664359535216611885573884592854622859227094406852741134128017224467422946430838672546378607811809760999653245981463038215108723817026079277309804654705280689050966192836898107099496044912001027074442844880648579810981103879721644271490872746073812876257828036727004790913258717356563397940898537164787290326995786543309154065567166967479515655742106217284906939987931476277979045798934845037181250213298641213056377923137716962013571484287229540776069383699030532898475835409406970922963741275193193851542350571010494063255061125908870809243686429507493425042661283323088411349208997991448021936332928165578582441893176432708555381092800842120032784480813615276535534346536279892591367908663158367867022830486036321346618879637417980873149224121686140567584401615090567240945788957752257659476085556839004944292041850546491190741173153989264251084609892511769317356304940056154210661851409639557001611816089096486092508866660791373074786957531229567620335504951635047753776733286205715931216890035418190350423095698130220419504104619186463529659592539022194774971441010907221685280513598166139778477324804539231790965721564212981000029552657647318061315047772366152017743478806870562195591059754074665553716237259960915925565089293194489889225557477756919114334522544276016921972004946899878694262125914230389454712410640953429321180863455619105732263216120298469264373538525381216802429468554643472400953525025639790696371521991816527000161506521488858419470445407200554905453737706102012428616375708097418827865842257494085763264913929624104895022672642985655190137208283208083194316861770240020072601417327351323446986274805159463454008422368845206511526388409552271079208519584092511982106990624848525888172491394649172947986260563867146125365036093418806138943808757101724618462474242954379033574231786378924938402156710832531323004087664379456428077493953190775690682029268272331259104253353825378859528942272938150097838387359329862425137065233270365873993278417534527518150905704258721498195229851718157206208774665192276952333579248044509665122496632122516158241808007443752844582475872704238364772490120707868944805851895939118869248988141988354515821279271710956572042484251623913661662880963360605550581230187210832375734410086996097021404341259779147095757521712626802310260226825805939828547887226794933018475044805827474595386434411548880196466610566479734389666725790999615690381455068149399750575979852901442189808121573726584298371339108329523953114081752416664827204019483085336961440898549051181012158988551590563108375746304175041852098655426519510457912535763456227398480783954795559707324510287184585674539324644260914734121656017017110515184462592034629173633371755810405880436924483473310263752736386920139989512367109673490367624167727157230827006296368449943847887527911067158910050344404308389527354758269419832826979633120874400673835436686386162260640878144575131238278118558050618239803068889552608572995500328457959897456891562295719071945391129128878013767746023703682780725686451094062163849803360012723156541019043401672702788561232640817424359984231425674703556158880627818250727206476032696388120040636755924845245364710152326532544326204951282212980637404478522423260329589099712300151756194836295635677841439874431320161772336032322140358686684217622372013458126667449204053595408415095806277230703248592009453580368469502322687395348012170945608171172141543635598591877108227904724921877104288743491739580676101145599716263573755682272103500086531896099923405177631571527093624783928986934278383746447696601373633473489289584309393071756806658822517849150635260513463868518417294529328347966888635619371805338878522320816778090334765057125135298564921028802865674050777331622258035416573495072648355283335819143588815137236934789504711176999649941422438060143623351113009184945749918482899307199812559224418101758419924645471802358327124571106473270933472989452736535358251557890977683702012697430167381555878497136638640846420569754304298889533176695142416093435138424786210018429410719616513714412196248074930792992842316837900825562732053571834180653473130593490443240533265696672465628944849025977773693495771105037102291322019093803743004041574462341318626726795366091105889071534544211831251989688707111808642936157972092443787248867559599789911937709214857060474133899386068155316538097316371865361978215627250420871708048627559427300427207949361486002955416976813668234612325201951003323510321242856527265843984946909413661939203444636854947367862493385067399183464239527493452113698371868220143450673248906602840229644795343919787551702607957242843662980322183136893147196997094720357673730034243705434277415540730464023427694898110093343454894295702938319857107586458517289790058290580965180895833328818538499031210757555153058194541282989008663061946458907037367641055688343942882519168075253012366257164089101146199670597339612549135803327114010466830147351579774973642753127643914236218700336998655349095760094790618452319471384638518396048127613881749514589256123891156748696481986059920211654931897229418577807121376308218039222651218805374619705836730389104061697265460323318046395215443330190231339322069149532159369661415967906052155218682048573286779046088838372587022417858222262005379512654095166243092766971317937452061197319385097090402109439133899656059668031896580717602554885309611366667092932141197810437252005133847044119091783943967736866144266686431445319293926177566041341338699711661792648961473097459291201621043119178708614707875181360448958155409859335967352818780280959465743967635240530569938898161080536285797250554666449174753103619371481218415239653577348180121950267389122340469669175591897352825434118579415307711468037129923472404451385895670865817921994649510237500943002635824236602625160392250322307900647110392515492953450484206012946164118365813602696030250324209716651763198935100969824506042654717780063759118071419605424418517444251588512463340074592044426435099300285808223206531816057296987775647160427499409177285344386376378849846456733581201772257545537689401299861396647051095823482104118392566323551086113308284168869655366138536576289606850827552043426932609927449535053051699174314731871381973574044281269255583900292205949947832948493358462085652213171143104773677718815352605906320962093612053381932526083052945670785683917439586878310015825553492293758863917996633266217696552734739471402514369591402486059747744453345892643204347522927045668866020517260330998503458132174231193483629619768535329718831675564246238293835553781695012116484340900510802353453696972062606549840430805801460683420812818723775996141667377583274657289409021760929079542655605144327974592257695859274152725273072549860618909315023449737461348729778586378559313248687192279759892740529749790406700193392938803154473135117390649202259953138650336087812285738534902171521003677248686143629020364347294716040536979932438428411587327901089662759690456659853081094513189772567273548913851899439793748404430482358777867044232681288837661792709006743662572193694068991933106572735296793142708988987574975391879745457939787467467748802535736176314238538126987747562427660953911461571359171944879147336493715395710918068208709968067645938831226516460326011380113543062426010684705734845605051999078335368759754654191424205884510062712085850317394853088291391545699875037627419739810170794399955289054295218541165212637518914699106943931087239853931629263191479650345651048300137146352743245695203184479661961924856340525687396479511033725738281431676376803412557802894457975463914264460299707468928406340006667309939998746199771040911432895373492331940403521868504356910730543188276013297557200523238969652180439729815739269130605275772712203903666417221323254372072185715525116164543640602991492662897498474807142938300831891665950398622728788358136519241731648051131931844915924950039731639749300024306456164114253195619644120464293804866764230331413695044168604661969620275113128310325964069345546174644299873530185305834533263032592872559929471655820044288640273337302300867783841508309227810689439634048449981576824559142225053713077137171833914104500321501335727153419910605145680923050400758448401485347551158334102095923391527292707811616501959730405802042705686017620523795617017550041237220253588581107190938162490098420901822414199276871449913647404540793755171211910502353219733075870680429042390062539531122201620528370010249266975766317406201064581366595817007997146438917913556018513254173646431404712757967824661476774644590665147951324661351936305200675867854286058720917335161067314814242732172201306592000531637697094175119598191315056738645597683769780244549710368324623949052203327991510695527860511788711721256504707650967150726773121164724620638610653228019451238903633110523295175591620909606737126977934995208446035257566180665904417203822467789142810000308775561228548794602531148200728219293071536753286611971316856727532860016066501054353230352128419667949607253906605082232895073014226022579440567872527411033234100796041125317368215506996816361882111815107821823934571081870539154259479834823816162024645190968237609044327985386280442658400588317594446947529982835464607043930741145110077633421945892413732653685126600072099350426540681717757046871539153754282907422585538518031618729634766208368248021001214515392536273128544699297509278043605840559281810481207645096882302433760335343263640370892553084917463492428102750287499643344046942392249850256270405922498922711156717480036548620699460322446234431620897546338298015319858389778536407889927164355605907160946252266076962603341890523357568981927517505863948962229367757725554671323377617786697499680661021373143364737777587723229500279284846915509514606613158737832717080137912971495905221219378266599298493179234418032263466872914032934719746258114107325528436680230889129752944115892893374124727689015717070626793986130204883492536225497249023015570749437616709141633884308407785801821221650129197062690833926785950197979927219471316844621297138540004069577187282513873398758406325547531121853211509178225466806125156768483463574724713331572162628341581609041254323962136839898570859125738985796512454163708760337682705429266602640725439121382436671948726118370203311828388019330573709384050252129307078566245843258075264717732331617253155883918195754540192846839866050028574029955721291033736181221099816498354604880093277177699925032329833829361597994543303400287748181421102634334714483455762092141356811174813335820649127214153206895046979042872586334948144326569862193042880560290970401146421116705043328640241341111247076230832454573085110606179279306717240827579692886843731369710570646864522284938868320481497522508450782910895135846844707698092312514740686439781474122141560462638624499562330676599266452789515707660138230481918039703616601852829411835946527003011457114052525764310883667910400986750139713384212574104953018449957515068166755101633748029489688167846151563729723068177242182541563935560623246638190966738073661801054931094587916509294278161844555982507017202748755216723388932617318893428314746383248325499296495726743377320302656912453607681936313475642217114694997498742009070870285926342769838979217275346122890623493132882023259575153252488298826453044454447206152790138642220122539921959018849895828117038341823964215773157116193918368977878620283528555660939070113951582543191543872486234500843376497516318369226274633326538766580915101982051560075183121824857790728558421911418349498066105287310283968869436924675202292849002949248069217849904746887261098989292908670084635330226225731817593076793134695097208283016972333554050429342427704088594921706216197281455504819631635496129780211616099961060675603645499495306246174842889391884960024547900133261745748466787163589792664693129210457127125371072943010867387498638816357483197353199642653608844582113100387074018198637134901053420086119243666567627947443234427065743691608893546648002380692088292244835480335929134270595341072577484330733517958350498859420786366931039275305442802626341718808408326997172687588862134178236744078948372390250998417081420447224396211641981862458151823392977657089831045281877042166052218822777024567731913226406742059167225845436811622902966209289141347589272131080682809741299595142313642524540287915938858594680826253926395408239992601558661633467359186920234226493250188775630789460610725559213505153206035368307695302259018383287520953742938425370141297237193762294016648369181928621237889341048931161934266101994699370732535099004505907188630678666640552654567369419236774068308558847974672574354319135321416049099037753938778411734197960496496831035100494793118173933235778293176637407217174207755074695685172298915204289119793925759309411140490388503700756299676952595031147123040322167682634349523234196876647594826382730508355421352411439928309071430787010558006199276970891732754215608918582357340042361505305287659862013224848268505252727659474874773432408079253547280065733194557405502997103490005221815416409584236385801320493793672896180895266186368875365399326480279615095588798592016637963211379745098766032428512696011827188801346042274153952874974548421058447008156821823104595046515251288659939518470273652202926958805733288180973108062862321342786007532987733921145895749868954235230479255187459616280986522149887536851188661013377552314990573213209256994943963164573725826025650718754710960698765397750763961883965842467330662735826260903504195630282461417370640829699352464131525860072203155160921117027464148095932506413442090493583727366382912163360175927467523319021251951124171549084789322824418069418466361252361462332976802914807824439591965358036313416175936906713371015634531964494869599370885216824822050020386720818744554012870819287310752732498016478257428591304625540441315143641495670955264056304400744691971924841671927378533453978079758800890278344871669451581901219505370798550833605260130660732872777193992148599255007293899793854005173260696544830385030408814726355895757657800190983789006959636475387447656514950698715839636179139925998680302356337278911492445339261627942848632797736561136627402953471018335984134618427842211558080880612006203114921116135394036937773450299391064165881371670825766625647883447037850825774040062369403862688000406023258318303980392492102197034682818470179294397691568365358042876801362578300667183115260360016138313103712443698985855994477556852912086660487597689229658978047510609944793764035545586481496881808263403523056477519098267834521518864955456186393210243290952452911416517152230728041529249538358628490935178977305917689192245459378980339616983202020755517656606961534582992606218353411663720427031782240062768236810897171822099975749415091741249560125014395183393369716521647844403821894745872612508057714486688787144337072374139073706303329097304679097957383629310957121847444069798721055898351251479092523225982327221576482991811910277386150767414404560305969408286778643341313222760234152772475569770984606369436944860061969787333108977262384939943619359646359756654229845988801326549957479214787191907915465101720194575104132588062139653759334002954918038220074863416891996481020822332778540078029270783037513868848520569926767040217024263940387628526168783880792898352467018943671344255138862991573356112920091895804118203985981680843508266916646299840066687073408404696320173498428085077671571576953496251296937519912434052903760033445263760653402939931416072042493572963316373481486792305022142570914645984850825197432954117978323526545275511836386116835367823619385961271979733480936243013946238676631885570492018202599060770725024549444355304006444117391885456853660053239038144721151586604045623680943509863541664252525436892984445205236197810329170538661944003746438942168637398021991125258424425169584565812824176663499569393397152893347802020033844257332885850976649941658976881919586154604086878243672864381698970250959883429502734233924445598995463822173793817066797528885081670872457569280792128284833898969305682213852315581382960179897890454249317056197398942516557490087808298208740787514571446760143916262622066178442229859870706174422766335804477315312201754899731453130796779178948090599258342636329380286456280018158491041364323481878677243840664749102648013325819186910969272876434051360132661118217663298503868415712908506873499630653153357198929762547215293791502510322057926076538775176547097637413140744791925101884288084063285159444764504431936573457471740180964444774448335203110207365335230705962128342552694253625351228102513057772596502530802427093708000688223203335530729513120853596798983845702585006442083028152088306924225028465119821864262847701903976528483502169015529727945823394009784314253363462479938845727564141697793654869364659732542606735995785180990424575008025195889289919443678412572631864899915659951464339484852618502736233768761911770904286296434222016639324560760663484486432748217956642888986036224079197294904339864687755373631589418289088529035554151662702318316451492177996005411525744249148934490495065919839148741639239206452848143692128651069215681942248360438315257250194177357069633922428769407451582706326290618913551775474072319262391661655227735143316419217556191223256739926717190207398157062338906367966695121128264748818766949982178532891539620840561029947966064199915336690124008550648497554099790965850689982890846978122977861584722032140493532004147348035749961539486190031917260868554423787699824974106692785246086905774646800293180318946322197929431583833426868724705592826767084545643901709836331855684603208116027208287331131561778718965168683886871745807270151982505752170139533919047191560230639594520006088154374737154613316717772031157999072895526117265391090869465647469782840500772773594262145186878995045981861752300468265619764309119453173594853629142972571473543614341598823207419590954008852539120172083935625464848164961832084552902422002289426867063542758820155247117713278802620223122995739558890260944005590594768182664227493327223144496793331637725469548464745464165411403220302920647952915968721353818060677355443476763230016090908541119405876956528476031344528530681798497218704053378546029305397115954368195831304583710459436529427450063902281290585035532001461583610110242590619129537033520025749363351787841476597063914789748073935766724205605634142703759459047757955534739872391594999960143231583035316216666549335719776023937438878489936492203912836185500562354005275975550803096773607612658552704692783923603129985825851674420201187984562272326996688643756227640628730837095257792919941878327849967109155540565356381686749599883332460387181395974754406900804204209849267730558524068481889669522259610631114093292880236529672648664512010243189582188867115527690435108346075659978933872852112832827778322045656780407683083701428655512985103199671743942717132673512361844210826710904231013506016822958211623601773888710166746981649544240863540972594090690165232704221499282503280933925569251250805539736746268698965366391253834444108187130310578145068049444153476281320477722002927222801998353836917479491480248932405702633482472617571298489665136413172093733026088657418774670200675492312877246721934408705164516982320553697399981697663631269473246449085892242927286477960564866384094333509431896476570393012827126259021352119472107619855688161144516810238952461723064479398933133140507746303989563036385865100145045134314693813888759068624708972974248014060894083500689317363122067457799791150173237364593079440829140777276858767549586201028252481431996659391064359513331871529321147998665089313409670752722586039081080431659779810015718809159565901995816177432884983504907675527033222316993792071987321999772957421378583745824682455130201791700528967602734590635088793708834904491339017440156120473578809851284374610715695446189447610418658968713688574789936856393747475778996000535356581458567386992001931756013895940997882578243099059890904701608386486827714407377313052207097110189443938142140265741726017570576060696249086697514555445270563430790069968114965060513052571673093928000404820838404547167742742036574238961058326319402259715640610506510680071904630541960949206723801332267749495000314395290670459111795520253446506405725190292532915463294567280073261743257884931664222556086854706184425685683644496585958650724177343488482610761464578351928642249059306187245503374745848777021161724408203917033324123346353857291898620899748483976025601579738400691584235643995434522848996956235332964563383493335851817341048743227557675283252153572493836392175028756629829031347550557515332747960139086199724944397705393749061906580886780451284161999831406936685961747659700608939877912275227424085167836177207093933233587785356090861455819326917822305048539177415105217054386935184763740117895515130912497982934866305988781667114343518625865637381850597087664785098361541164615389358355536010445521417451266134106692971281348761345108754094418622348451210572933734117458080028440668361875618299975130930573901714028305935117902754827883455325323993502120230778482820064550575315154482744444749422271442416625931447072342860315930207555448689652239955656611417047445483066428776571738792838826059843319794433118940616190948130322564581117873898029621770678823825553058630091463870218527480811460643187615021939507395330335285609058560680312850898971812276193232175252421814944332969519535188835639429822985853129764723398011399120477994797673532828378862586721704469631997920575363881755863552501285863717074255557835611731600901071732958715726466650441517848002050799993938301675196008001865129727038024481287430993849048853200591866298244892027222150440395128357177637349672881211359500664663728844714572934224777224044837295253368490579235034049740391053633067232155795344218898769601488530018475329225572353075987484754124001213241594896522831223352637308410487447858071463381142328220662206594937734096897312095695439238176645501220597187031690438503100749081133040306282280836468789471184168269143712947451965985099435652202428870076007463774027569660277965797004169534212514185189026815319138226955696847051352536242026159670741185940450994411076127083377253241671878109306682620021026097841915805804965195222035836452251301756228082873696238547343573896306846184331703746463971478140676675116666815408155119866271050106573982855789841691130512189866706903395002477966414969217392116998542756602375376018074329824836854404036335744732943994958754065417070024188304910036857048995579128509856984312404573300115665141773787926918442982874357834315572551835579059976453965244284682411154433639068445738522266007291495717144957966797713132426898381096696163456920835360924515358902623803904455469467916525013683613317395179283729905137928654740478004819527272639081004390081313472158561070631389508764399616682809692572328668540631157506532523082328159482167805089584906882500048798717143208164041291401733675371153264868188867840900909004506294639645725754462654925458750560010306624080870787962837922440204024950599998733360295805214059108880990748342455654288330155679141453014669156578700514798145672621369206084333791365670281982153375822523544132182375144767880927980965182230724135064012709623827182692945863047138652090398230819857418990394410806876336205102906670102129206612492830875636947308223646990327200839095975637563287147696934073858739465210598106034689359685262347819606000739239719660830461935476562648795352220080280126807576979592055930891746588673147765070709945877858767950099565813298808186049594785379461379972969690736751728058022299359615020896145210399583470297110761760908380217074171694072719929604688435911438726141364534964041887682756798841777948864586260640321593250488770615487767897426192338479473208071977748241697158569387974466571877798322764006966634830210697003281865447612814304471705431766838860164003019833280266191043459299986700350273352343156089250051138871354594423670203811412527954603917927408538863813193161372930140730303024734873241628581199402340919655845525815997473527788042452597661842490992731630401963339458632703736981078135787217984139169019251859983582311562291949624147015701793259449823958372768038338597904721181653588836566133972449421358940072094728433619117080187841284526317576287212783192241781041068454557865174597036295539842709000489696759151287189646787071493963406472421359628491492003813073681781427149685479060330229355999574177496590445714220628327740634574252771014136024682502198910894102162505113034468346652358609055236835843224796261488311943962217350454762698772088824879821519677123429533076386740286400293572710140199013614785149867498269918611016529468167212887033679122299231833414168854016723646483200567908200055901175042141964793245198087440061752628243779983256466306048580087432347315574212888699074812686467581899946143972975833756475439085319637800024016582929252358851543995699830138891709960179106432306797805855132914858348015997758237398658949061280908853995639691325333583953859546212251776749832175642765417204094527168760405997870733920572557099064722481399693153610613089808128578724530741307728712497946148886718934658220822019092455152891259776737649230083834032193574734391722222430927075026425289767679656658521373741174776247632262083735579332511450910498665825701009212497509291744775723996848361230853091506304982542818593458882874591299054724744449583065732271110755035622568868286209132589166392109979125589442789417809865714000474219524502345569657381747412720841571705325375640170239430818609133294494357386169013583796079989631844326481474904435519901072582847286592056227351158637257715407545588923862797270137540953167453556924514771177552000808994858433289821004576614014057070913679201785204011730793078297988234195294780147450624170464826874089488096313488154684375220806917619221184764136326438959348821276936730937612950143275034001420644553834949898929106207638754095311769479063346806554868946856896359142706939320282880614709242908751682228491132501033920090006436487969236131182268331197263237065424172196483453119661192915171699048611175928209214521008253238661047049997360440463212996443483793777282241191286487996805657115546340796884956454596227715402274511947259005660272643047439152294545298147490936601601408401801735812780666796533556990119381031930496173740261618892223455292399969142327960999958351070433400339207580731387411566024171340347999446537949797414958480043092209077236123301733725433770139185263344838782511925834316538860695696746857963792003200844692203584266999085711328400543742067881203993562587449568110195775975319635284130797839108790120465764244977769959556142996338948106118376422599353986632535369940875031012637693277597258643816574810267133491123579011837238398487573632022656902096183155023939788006337132387939816218985426792348238091466449334900053892302331630342433633740994711758380658013879263892503876458642743925679691098335751896711342946198309053835380121170519056940273384134020340062127622181171824665417425021146140320975896896448130338478152275625942037636952100807381726218872354667527988186654263418036328261480938498799112967279086089050693971945977532535804080438120088298636445692129031460534712254372718308644178139878006080400761068216654157080392125267768715474020612906836010870176531464672652524932433755400931170194651923416718076653608204317401423841824946469261013651346026435654321228392811723633828873707249221515188575621420783417727289434400468718856342139009461543637105701149151569675330452239558857225406198377348554916328651272719164153211928760954288719554492504382686767037594336324334867635328670822105956435410262613785703616162910160724759886448540466338855283191790369032092457997086155760878254618083354301194850088094049678102759685767259241446644298049076912966622050241523826313033791136095945848465915202130954338071139052200728337926344398852744532003941080846629864090503709932719008032861821079503208016640135067245851951389224236805986143182896153707873627002842475818580274261070074583597101640661970157474717445536739885180263884583934323278360634140972733434199389878027168684090905016209697475547203744612127640744524809045543375475993811998780647674864479857072669952837639161574137524022522672433204306655495450232103914103164139082050266314324724814909599481602456705749522175259575753463685170313445855885021491208858511216592139126177584368847278680087695176096044479872366714762995254280473445721579393949544759307684887703532585563672783344839563419957614162888157387468930212217760477746963788993394613279763805890122761841476771584148674129682615199243283733215530970017583872214240291222303219501778708783649082066719794816245195149602114363507806167424304512899638720500407533431036681571136309330632165867843620175970472136109627475206844917287994524072357783210712577946530281682370052307718493670471810374408426794352855515095504084395686017730634104389425560626266533973681233141456039202618882768502412676877960125374375480682736862214500232996938218117170706536215184004936405868742458614866968915756788093134402456710748186573001778189687337218152790858871839519396440978555844141870657951134045009762744425982031789331660469712161764385258270481683611026400305969910182411097352241515024023113627295643650522989775768209749353230563979331261404128707478887308143943953134473946736706977181476276090384282867195820675195316212475085993298343914950893442410552343260188183958131117289977654484411137976053106114564673038309245554120460470344694697302816594724238164545762490877488881329253609090052545836601597081439887595148569410009231828329729107164456556611725660159484058089400933073310913830623042022900254752305458685972439825526654277864972013595833988173921917328877679332967222480311524937830471893286484797270441214282366021338453210679734664954114152064305800951605058016587261622521649555863023396878959019184398475717619527748542798831750404335373866746169478416363720852682863100573016730888667425238084877264927081447853583831134493090231424211623671491637744251251465803866830868760135979985405888488023803921195805399067430480961511748902194849551297304439934871131433182760503120219541567281067660049214163671963359787310713041613757187988006618420671484888539478900396906279175600996771166410796416199440264591958747093944744813686195597557257683209058890934151434845025953087779272417952517642091505146935204324968186602295007187549079778722320119099012233062649886271749806022558183888265253201557308952692322566031203721193974044372879136205200821739333049384993104896992862170942983157285631631004611811049290497719779745676181611837506361583668275768675169531471980218995192069086873647577562771375302054566673777818056215190594296385004330432725967590549577053616161522388253207086768276223492487208270630008820243765288665096568625128446776993668941529007949914422236178474393377486839645812866367195060421355487090114425822108133812394653739288207643592369749687794468367062070449892347724359159421634349627893045383351550213309149382503036020436233038735503269082312747506739778252917791513166591473173739911112059779661797779679720467744022924786743886971943500611358390286127443947624103906756564648170804665487920533989493532839366644362303704166363117706681948335709108820445583597958328997775923005182494987807993986480980955829348148985343945593073317275758158749510213874218841292546088973923406629490798283433501460762657921568246683057272461830536217834841474201092922175550770832047973194133463268869081033406558871404471871597915550854402675135966214503356063175721743010354198831394728237465278504940464269035606559990940515807160420705829756919620647837646196623697534122769411980745969180640385038685287276567269038775587978365241982039799764860033399544641178116889798247817156180644729729995950192231265282086378876457612356015976176871406871062896902314347219030141719448987176626441795406284908920656884591744513527922383685614573170623696153055626938972349467815498430259318850343903236354676197189082998410281913741198339254993713539367045058277811960070627506826290019152447919026293568524550295650966478562143983959259518254542340280188038768854699068360743234403994244850973749506025321379669072166424349690024501570776495736840064096919787786173891202097212963327067916207662848823558063206332784276730921101777081768862717411972824350430089622985050637510353811985314500559141124284185774722693386763423190831967378263068711326066378931327117451850190522709368924612029466383515806587992087263138870848831239245309768027622421066297047833761894834442729580084043565791178138564577842176692109260566687931347800259535111521351277534505909454777932871898231383530843921192977074032674471215515829476587031894516821046434784272782039636693439906263867314645676044609676334174024868312890727647780251627699318775365104857394612090400437689332668416910713150185016802129594317954525651547228768491870461143668698760413844775248346750044299810013633249298723701736735213628231234380559998650151553950227968168251109394543758955250115223617195184554330391934609932695504159263236452112809756162183931326369341161308820288980686178901634635182973003899602139738419631496217454075574363146404279450037522598885174903747889479486502035836496308547487454333184650713545363308831676066863083837810890070421093765318393808132155817342289318529931483657505114367249641859685425778444864603143096820961492112382675262408415691015728040960932695713428560253749793024137150751438152734555114277674201737141803084731687518800811397454436986380668054385408985898316272687709735014137519229087447955993561515562206085157031820275714489309594467715075011026057498522672209326621436654609994773732721859900809266134621010093026636683283834602211500418233158566871049733927969246227327019077760704105315459940829398230098871639233435888236673797810100462494140311363745255842473734310760119761100240622349637790406202290623850415068190458663104417071611742077457054533961619756352279441419716200671767229751493223388506200753137796524382497018177932454215852901901588129036707642295237416881870927136021128084353257639317951913349471394975446227583033706547089105731882554209361677219876159460196199772912437851572755114096974365265574843590559767330551611189622705200844365169919860747998623976262574568972944211441573033085113148324490673498246045808059518876577595444926534778724619129068235484419986191470187924773053676560005765782907712464159615622359842887423701330356543667180772713575429747303008917579571098077797409173658722313463027894216156164750088328805608364296716903139399854408298490891082703931873150626440643343566799781383386495100277219147930245793821561867782939963000714380618976307582205618270125779206887983365425772731307312900322346538536771207839457462742015367080330067577047747038345643470705593653404857541576081627120142931687463473024149473359315708300437540968648266070592163036820363246979369594906230186702576734447433046675689372680622776602704493162174697998250615296254961230510922905780027386986942676891026003244081104643637657410871522346852537025050476834708988994250419062276352594245253521921206733327609308466698105231746465788067128731107636682281740192297640885579722032799827252781254003184204040625392640288315238219569754059443752882028093838638995425026553544424291671046287683879280751554836688760618469799266955395571692621060198088718297942406410953721078844376102498362509886758010644985325252144862960582409757286685097234813769292517388944311931327685493446204474812347853739228924026995625271295376210393807175095359611949317011287718835581178515630210454473474652836879066087796742390437111554197496861797894372708894344306854298507888660204606372505481365675576332650007835528718476182476698826994186000659246354773089414754155944154645083672459009401100027971963115105517705454906097433747071142625888599812654137768130372524488321683440021604047872744333969089164791854552004538025240957413713728434219174417329659258500536618450654051002455312401533765167054150787755485926683103632452142103773600546247707632864458145269969937556669969205691708803885773328070396027967525412444052550808472526069233103636978286266071509670421219512553329773089543267196630890684115014706655737585203312978974566793647972980643780236885742940795511358149763808692764286899580660435571752910789219231446059096632535019453530645688448444796490890262269571183299561122513818668593070844578539516719795064502662437331149351186002494119766032958092344259086929335884878611698943962763969079460591344075023105536894568102475096972182868053968855474319103146375273129682380099830008836202510944272501994365456177329464674076496502773501406372380568731822435520743278266118915020746005483160328163858193665634326927456382157586650689927819920666199587598690722158176697561075218523521006703825049429645135481457549925429146806103831965029290646453594520240531082389005241689408017564791662018865710027917709319896331536682325157763668631869411080812433725609648458078583214318831269903001626228492415485022632761516691566693332387297706818722449404828278003615989443603744763003828647614505058938875239642304766128328703935918931923376618361825686061777349467607018091252389972541657752902605255638436826737122215987396356132497129850123986196910598665346506656757543222481988032635066283017335146316085651990157408903469529794360574813829643424012478462405251460427879755213748647659230973455787937226770026500970165824007547296131542322723392215431717368521376857646718878121919636576667244269117450881218640567987871691223082294481962219697417033808187311542267642462874476582113394268955926332743995852912589123694562784234324027935912331785489929467655949908530272777368524691021675014026771245419605761480758185890237422785375891238394959465648475292344242707850163055952043836601215350023029811559679650393341729208417785328749856282698501012996421071658504211761195970873055211990260962783865291314587589396107790496028666083968011525555947448475043514702508369136135128680085121718148702784638625087724358180509427617167224409167604647076454430696174455744896960529864343772868804546000576553843622375891111610703271533010944358213717448214409483493738177798265296708438034227289055187523084599939743465117764124416595917663432300504706048080378043736176891583566651849775073355330075474749149741478942632824945542563466856117622837489729115771624182883311754898579478427811776814386377333212714985148100968160579393649757738746763479081655989108945091444590838529121428211894806300505394755886530763452308889481835949564300873735357176782853446408496951430297607823032402821849797302663948200818758411219249878709098230777531887629006606040332466684109476324933255806864879634402852990115524830271735323864909301757687458830385198158538741278228878933074499420043793829767754800473257388945639110541435948728358730698613973029621710748908834601192227968225774896902005563550450208093112792130576453596855580061904532779601797223654366675621428083681083629623318200765941502600541309802395307179595567732358401277172756782811770554876746807597556226979379421186230947873841609764289702189976919424061448837563121467854981634653104412089273494446834545282673133797614183149213435043556650956915064034867639102731658814558682602136172341990798922819891750913496556199639635580818550408350075903466113540450380562717381921889052967827792792607657878665585056261181023681310098309533670831835193934685325105449441751015254320149054165229530331274393001260562468841980667713045714574707516168162134521847297970559489558141769673607823625659096867542888102669742734950079399756041019906648323819265981385267758413249483018761892858899882460023835037673806156949836413152719912324307238277377939021037530133891729667509702555991496033803102770355882203016347988124430730291153096447497422990436110783519755653958823543612722933041821330299473317736380706675659641096286668663678387822487301980679935977055436546385593640638267682897077394405999032998029358171059836492614181288861602040128294100800901513073876985942102433906448839794164720344734344034612480980105166256690603637464459067539408858305023311994784819274421472155267235024878539876491873431818773460855790747561844024161696163846533219855926015392467802864661832585249439977900708811663282356643416614859345953409232942600528103876412998062189787718265862979641915130989732569064546041044563242858284130627114992977627005922976953333732407743170136316325204168315221382220026682994949713273774458623387209918913374660467119689616266048036918278433589147193021906375443953066481146485174227399320862055010764671957427016568857100883691953690129637828357149950594462822266370565614681715260933782213504560556828908672996401439090982142230099932379849712042876284164896972909637767391549348671157210283130670069035361671184451796202662034526616262024492778147928248879057658025136998715997530412812949878179114601666898889559699801221778434726952154905920329462677440280084757463363772813991158745777673510816221586605794113049019023825990549146143096117261187792497432302630285193313767801312248496458020414903606333068459867098222487258699962455969723263691770985811011623170252513781890540450757261427873642604695868786319438539923781740134820996088144723254973674992318239542673899017513805691605354874771827651410607447899705756744448006050438061318038987590853765750357527706557164916273641332234020853289002174103264674815018842156842344873446414172040190421003920526144216293077082244110156634099795432667841136873605336647411234235610755025412521982837089003555890963102219600935219793562152278175038202675991996925715515159741040058454142257649869585520741747039548796301506527661225855626780623347119075236536425843699065881698405463649647077389203832631713487097146577323835463929857126086829177540304122342220343961982113748477229227867712642700743495501776252738092071543495478271466856456461067111270466466767415308322742735571509602981764662389722029405228245426563420596327300354715427012187863899919857598298924102138887940692060708332733457836709384468520296605187190303628641556104628935762430930089738586660546670073191407918865760353043231853143212841557840508832217702079228553290277843300407598834084925818502025183268004141480122804486372395278782694122321086712797298265370429031827859411384319670779703419208453228100734178023766689514288617593368597554356665164252950593273413638707026099430192463708060544668604255910889063106732379873953467822571370525602522297013476035397395517135225764319632069240028922500489886611412062740263298798712794675710933406269378608070374518134306421752256571330611171414462418552856683668012586481889654669520881570200527057749434009784836769959006732823454536023252433520529150011290627931815302704701022356818403769262530438822981315211386546488191002701235457113774136960345914516001503210434497395924344419554958603563237090570011738021588630179620695605122010004211322832538891549665424596720868500558511156295201656954062053646574874212681956333216611448457504170577422458615684072754480287323963927233674441150523975901169303993364532482345890111782326859696868311883517082950645530401215414455044851508365776029332656107807977944270841100734124714636286277436641669088035332059013522451830622714484266219124600673421103156677118945851802773641864635082769043216057457190688588808105652423896889242466019459002290648757759702440328734425421383940472979527160531383720664967907311302401395308213423786298648943868463516856409102311550265881645373358818565846849041977785217965914130497396728975364028823862668344112939809044348225820942368934390650290930818838882452935530637332148929959338197694927448477615701111708949997492438126896267633627586452258102341547993989289669718957684652922240153718110952826936583895903255739948554511383356130820570227556338145861204207573915998760978857588819767079069788118427727643526094512884351912754534077638659316610280645420309643975487208127733197310352653328576837496541499651886059960022768145538382639782346344897361649948355477106909152831472084306930634097169531474013212456703975691584059698153441001165001330610464231235337993447964134610594765755954191390654756317575383997987387671249020239269211380268585858839343401023929786813395818139377360767231981893187965594791075446888103656938377936760367866328064032569271363986293603904672928429525907259327891705242699500450467023879893743017248252195847950636698914102853225233461828530602813325235192886289442871513106137626320090583542638182622630781345660498438404342701442514255534805535948139714404438301056767687073223340766823311834028271982403037870195260320162647489349193796845843839187230901278785704632378718113797735169581798562689925739699571107989013327561846059994618209109873652165281603675511321282271388041059681503775034365877618525237000020291513193715908034515400868615093309705360582984162477260898296760378014310558908807093531380485857338761687952592173062560845202683437716104662008109921386734624521165558016853769253113890879109027931910609162795982441545339807375683314681745700931485021395040736898352826006034747500021087218713543211880064259581494552113436325848121281218589409273295794997461635902681443106713997601935693584591271544452652978740628474919291712865566202544784946396531180060894410365219343925859684592641864391494073244884246060874583355139925184712608918769022464403236082938797660581901726279386713206007596949547670049479558615952409384283762186640541475531754551819362642195299071114600964137355588201536722349520532259593511167078364363406202420570968265242837727555716143434897937579502477808968441612592991084460096910729593166998624975288704566153296704595138250792373077471233511041179346636792380624469832602611573854747035714697310453842026716211326245101118125060093239741340049181350127066501203743615688106055150845108274767040365138311118710438236976836203114179491090692485378451343091001302097953230514230749798015963832312827356219521398154780763173285158400748592429898906336800838092397797486436669412512186512820655769348406856351381886118734010115778199496966546884307227179959286608658551146110639310766251853747943388390563004333622759703185545443992181890938460217260134068913540394513684602648909070902006445869920391639518391186708377654689592467477870721786465031852383953179872977228749228245081663380324634851619545615920323157647269650624018430596704448785596808334241820965466088597414870363616301961200182612320983235930764667222802719828847317531007197672751318302193368054496421217373607056260271293817770727891800611126064138702683755239775708131525883072614303374485460651881000764996953820467337147273454499320499260190838871476682265012017431386400000956717627517549781418562652668696583381457283502703360486218852827461999326488749814014307094947651177500682903609536689968387489010327110899579337403408026774622245799207871027236749616959628343590593839611053284109105289511022884157114922918444938061528150854445712095835506233985322876257107735435264327880730010411990566373470714368995551296837486647211795853108176773029928283161858617362186094599594659470303531468442871889261534060893993480358660131410745472152054070620865365575395272449059766563117453199796924905009860742621765551884893079704926158358301686914754356177936439229892898384906688697094494488607904269342768428593001654718687630256602393070858627590639336294698525983152696206444486602098705142470110282143201410266317627855580527334015777114345724203526906967359207548057207809036061030726974570060354333890157548770191259662483953726890014257076101322667969047981156142622117607297173092726141832946782816625321632463782765834555600196397230587962146916352287476803571378094347771607048209642643356355127190617419696943191640696208449667243367449210685673188509695173043174647116364209448908254205158992075428085162790439568423384909496820494523259322930226848389781228319532925608701057107969281678316351658746364906315458273213716901158191086772387526959915119883517407840341140377423721102538917453858022295692729330230224351234718359372688637202663501023915895092357455102856865346865629073741867754147789068512460794457595546890294551029714754520194665498120956117279338185748356125126566222703897109927608413199429999101513677103552316469503329417344837845785750547530455300819055940817692273039055667215535857894570168863060506610937441427959068559817538728838789021969493774647101222214854924545161845728505852373992254690247707239284602359866117827457053047242141838991568746285704393395870351357224853374567065479741809708270955423895191282955146241852888945908539083096461420713671460383430402595056402458083206082913510982947581221994714469239968064839336657165114805435140426217091625457675648853353953657045499404621485903094671183035913475146920120469406292609681518168884574865173565812207316576098911840467569333115407107376637959251359059838216678499476118271660602010909637427477717649501432220312183636110880701833251897011629625922013584931758042524626322583538943156708953935033581159146986132526456923462449042857849604120839573980458117501426592314428898984740017776752189255783799592691798972238341412160629602400188236428534191409340695174878377728732202757708520385119526772614973241139103681657375151432495743570933961582833682081829197335066007035170476035935175784966644867622469104805918756041481440753802164859272764266929156891185426997436496051363256378080770004553707832295364015767334623142265810789933625709885178690065297324016877413378718754624619570129230307116903457123971301371582491461302317245177965525214948220653095436671719365358815809176273295759044365808514749306806679881386954267985731654841654927581474800867993805883842305639996033627433874628050664681016781825585265962763024622198305963881364983845071712992088871583988980417490992819825467637208060461989934294941485056716505744721529333213849336242322447736249195069160712958017359749002097627097233615841021714311954023893310778378590316976692468001154154363535255523935582596413865919460584450242462890989016379544329709886176568546825027671768264292578261973373837003635292944047946649059542372024319970731503661532286432837055285596721212495883482693106505469368716152429401784248411772200766473714365778679298256831411417515147749161918136550398341247953955512445214125516361411430832948176981730052064605291194439206126430147217081670338932560868056082011671687513085175050916443468990220373526677632596464468010943586037348635718140990631760940529686132043349179270681697739272114321988952311663554176831595395300561015651702734144569669026260032299289797817574378400329360282771638487547439464307090013495200821151568977398839627400806365466444021494626109395574747933486667115451528752863984162840994299693193874574863479821088816683509462505428381884962123448290814735193860979169285320904878148050544534359687324560458354528084170680936239527086296845498146291449779146431092530131208909428928656269312512377081633051083537698433620389787708408090052297142760899003014756900076692060209168224501529539289111290438953356871105269825610230464071799014463070412350113603776290041950151342462257551281593088903577338065799495240478172182495111884655177311767078904439891340819117871335056846648198400951492541786623200860465182896910447605042326850103697348418039867226965347822424220329820178479853471673281113916291304523477634204427924288590323121264914719764166650168114767770348708648023317162993332080410393221385895270821626554325984484347742394320826528839914126975618602402216717564520164713999230154534076963507502254306018795335649051786364317606554610169619691664676563729762364905776906222611160371463098076281342631622533738313531388522982852869110738414494861678563511462327480644879586960247490744232103268554617049157521882086416270591625926824527820993272776524091585139863524319172403062677043683991871552608643952188692705616797009401716113969804271247538291180375878765259267563797263252150694859719659501017706294328828784194056052334907676865177833824479450878966118870807646634597978250743908209457763771646506046272317237260873260667467786899705722746955477754766095272259161594505673661326963339791135798989871256992918503210020189869343827049052001720750222639264182167580862116871170932222435665748615611800469163212944635409987093824401394335490439518913791381380767608866987269357833092968777942875899630988369584279754341586090811176769769293351170855164123724072221019302747315279780216981367704599597500328898679907105184127543537409158747119609845041408343710869168788213941885182093852880974816555280108975898110940783321065690341325981292615218492792887607626744652882048844037738424182602062073833650146784468386429598925541819746302869316528859433337253572452134352067738484461556173631536330733528540490664717622063689150616694041212376901972723145695755216876082482822495617554707397681547660132655771552183852221348320807625803552813808049040700217020678534702288455243893195683566540421607493575470115118210984659061458327991872945796497949108223569019512662399529290684278384702088093399530042308555419240210357674724995746221019531568411007744628418835456635878556011286252424076199633818010548702270885810080349668610877619923551611877865407634444066481208537994724563546852499281706089350536253982716708139571254238496216946044121419980433723066879565775950955798225114374466648229621443441905205790800117432753517669338232286749497246614656871563443556517865493356026449580860106944086206814180138773391219370508072325311134221572437255036209779272575317003200413677900807894745099582538793090959208734560134535378666728192671674374031731559656288226312615371206092022236826299114394560994978176141612240375945780728379680974013954187729461458266000982816803865705767825319793911741104820671419193818475072504092939929255435857799745961306588806937587709773119512927673525195954102618034933779178383908714505297665657647689150119349168929249492291568468448355384197764143312965366638658224222560652776130270156514867778073891770707779771013920530541298949793762118205162866683134545785004486208225419915395232087689330700896545331209089809671225725527137090791587364441048288834885397609605348801146842239154547119545070843394044180487723368868368538744857050176917024144088126010791992894071601783633888843751356131624463318361265567350535830489093088897225052726139739331954886708958279470782546568829472675542500492067040233606241086225994634639008230256485233101067630097433370621227116044091920449886398794737428293856102656597555226244872400002201210259637554907744366812472334643625628505547669002156795079126754870397463122014719971342880963665118936634784846509371533043943208589951995370930864134178831655057989904676421741074297358210250180914359586700892687112125072690315198667941893423532210409479380404372062216509565778817506152442686392479057740751870394588695763427315548901323131937171191730245847444899528804987771335440116083102919157627872232530769710823875994505259412990291422257259729481301837697634426282439213855276014941547005162652193188297916306380507221572001446729631737709540977069587041819920636491057250159618245725698440211036995119256729064834927600540497654702892992822978272673652791343023878809837855979340423417229391378617932772113306979410583955138370065745818335044930867053448207969251990354888662374576215321588985557706151348006618961384793649231679703557288405991742375512382459343732153734886146479059007585081936234532314446257985188462496110057772595292111133262002836772958397136618509747220446005398689028698331639826279933067823137348043729681991299305635918726220274727703152770103127257545514624041965490010906179501651669194043494256029961139331887740008285317631222563400435512764735647974670257293562432749120524968119163130539395310554174367944188071447443377769210172601144703208023497294944767016053224651222232850458493391717528658153073456514452827389131472616155301372466676358916426300411642548126233621513279453761262755360420389382363964892923219164550522017662916756107050888808777899277932476342774462011889740401342821986290659080672594999998017004717109721073289607640174092928669310438214173276660041900733472287055890608317950523427545228032487699123253721539449613595049170739519049353078866768108306817107150982217777196921512824606825211885986494054302329201174790783688578130040092697829998683733113393974533979048941849607010301212895966262486354502054588764330627568712893714456371719417282583934920205053706686568470247635480326785726155229389424596240935540332582964089718758425095253087745099274834686207803720791391785605730415757836867743550610335468406228158598821809502870886705020806543624348157563311374497288757844023206273206071566588967691444342706754192843472641226642328933771573349605667869539090491270463492680452707166795566250097828624219134709103684953948506298468795975915526362646448443313785829608959599517891731765944543136524307483764080197476952001553275873556866828230636324344796645699930215393608942896045381324384494890904243326434740258129966547886303330620279955047232678811748205611836297582223381816653714000186420371797067068428537983785313522118606942147859174657538562685447553453531214960922460105725610025151219875667082423813943745787727909353926080305225955834459855180175367786940517349486960105084115983905150270794616632003256625970164274861053298889911334761984421806522919918408848439992689907559997679241770645483437506094103566751429397843025404301967754515258069032098318221373942271783639126418565595443473863763000495395049222203329814018048386066804845130023663560103664751440904057959051473724815860293773934134927939631931189180295632167111423303181088946562926897895753286766708306438594629067963528765950660806998768166525547476327076810082133036876646373243910994533908719701467406867491444622838763788439254092651079912011953859274035260911372970619784371290620971921240873861580124340593705181194465536835331944202899738815163170269331108613905476993420580740639591968227649873161869772361601466448429639385295133602035636157085021984961801863991913862085987690652429384973176594955892568904457355291983820484110360008514574268522182060105236132102127874846514905412217964546294785560939027251442682868823644501353155921533962960700436935884629942715894481880643813596280795944542694852880579255849166690448297317208408130067927044155035252953983117405602235099998389736303249530647651887756036923570957490600410250675185997969330220210878703123355530136194439518266062045802121783467647579862277144504916439153541637002641370084387588750829285563065486669694883090812175162530478039808115792445097247947013141792132871300078931803240484502442579225460538427864490663718095717301339047167978181694967580312940003546429111457398427161580843933366502936152500491159082597197290011853779503432908519390619890851763135269037002701557206604511985090923997593753179837074157927753000499031463192807602828407736975409039018347314709898332020770568592404297045947879780723366596087029628656145214443730329731855303511838606248373179510093149102733773507348697913178414246721835425554607415873930958371060808095613244447866477180219549536162084240925127289231410690734130993637773753221053983024708049038923735293197072956453668725273854773721423490802513461235368541835451037688563751723716996345137699274845117827813183672458413155560399432636139693305343011399813553492969451154874062317348735058702004364292091245888870668842461772546827342216074907996686949285065734121198583050253380783832669004514162114942786178249185772968450490571689815728816385428575604853344564037856234451174326827245852988658470331172550762404780507561352401111594754538755717743675778956214578934614236058791649771504469041671192334332970845767038056353441913012426320758448819120346337104390004476385180682283128299808958133313840800774785593249332028310643751043480535341684351682096887353749507079074937482569501591301324135023507069539168589083765387829308270880843995547679726673780176542060846066934368602939980175332994089055815472815152284720579906464629749181036427063565602764486397779965699352363801513150895735209123727624149927647201394344749203149487278269187867728984613646946916477305784476192393452381694435554283306753411613440297836783452962860918436383792631070132064545210378383761225541481599917408828072738084170688110289337757340943756438158007377951662764892726214042587123607550560624537158878683915263336187818262026060813346573437035654434477154603967950027807596357846374494778433840614700721507743225596835439176733923901672965745917879077084899706005374463349904711679528291658638262297372577052848471563583546057742418691542597000953430101601239766755023414631290161642065365369725767211463175105617553024452262156113790997264105323200309705816506749642008556612907323089442739759331209723830875340634404478333661109357461803708774466261435453988700360677241529988731781419742988544872622880462101010177273771849805996287748975186153547566114447091418937921903279749090205279950276934061225815042753047070628017623630791258802599687595999077609177369690957228730364152303623264005573405677490726813225511897582968318612984436230451375167999830683331328249737902330394365097467609521681166607369984746497089906939713058835760986501861581591297300409752377737005154309619672920741565189835011881739989256043847987113136531513900249025331542724192283027496111401230421927140947896851413491559622817548346797028332691803579633978545274194965150485096204842177679834376073078203092188648609465341796523361229454472161393701286241521025237202223798576918793511964652567077704335207382500258580714262466193141419090786598146715824819570204554562647630840889332432643244284761429278351258996032383802664575048550033428042778284385227860433387447324926441142512367275573547634203150827000614002125714262960746870941852965526948693924381315463249063663341550905555494450691738855009445467865324451869236195785151712137118412763459870112522569882978775866073264938250777681440743485048566244886189495483834004737635872611185979913079185996709986636599065560480828605640016198428521145198057345547773471252271214052267965165300577971231960333420682269986052043577006425167455469515584964213188419785713564933159776613980878184601962618108169077195648139595956234261023234029743969148740269696062283238473162679281184220413639560319210602439759396190451705342479931202202627838623961620410290936730721941211479888145273513669052902542923800454790862176832042624727687882961132181722235439424779648140835769066375139105715950788549536772706934819332995954850559838660419361550088121531997826954579454092266047755132011557113453303011688902030992384542272484363948367862607930083573232434479919222987900922867058459512981455228717363985502613071574087486833415756483176207139948113664926361475907231316519545500318016083010643898545483746264945546076887448105346632821954629611208167179571774639124239780461775195867592084390614916921908524416551266954942742566402853134645729849334323483256121179070248830181423781678962169089662109183096807491429522279668701968702706528819730008997131033122766779776986114034923008904219911158464594244297921893343499489703197191608700185004536204468518726411557506002854941530316946059442290995690880713680165544205206174432719469256709311095924011342729976930082531899315872365361527948945753859596961599472282930999880891369447782445991269410746844439747173310710185813417277374977000485601350882027123281200724742968473496807657104890105519735161970027762898857231067954809543357758763518848896147040402670678353464214309272031456566447528626761296569189210362203102542720163982046719513125551269224760254667308241302782752230160923060494800066575122331144627151801300632585892809252451804538662059800326067891890667037520562205950441215193909667043222384404150401352530867317381810687477701690501088872287834005719533212699976823500913049829086210762816886668611553156478716506358872594145235092148170440427977763853920014852309791309221658151369623973385845503295770270235988117761234967046916550088806223736751081321537989410338207941813873884335081763981561367987663027332142691367670866096140046719316948977125801346408416519758699177578047149978813235227559321752400870392280336411114339108210967077301590098829159364321325365808390435419552951359807618046363289921921873550327804632762454299516460615764635089005405278306881782838136003911327153019587241998389109471982479327562326941065352753644279022697459003225176153745698529759472863209838690734696066031971887310939164607116925112412055785472275395983072370931809012904007610886961905809052748030954863705495296506892795023108915130192008540469259075149553730758445080179668254320560115780531629952360542316287004765751977957164033000919304858598203646476830965661638227277675191158983473377235657229224293694992663431720341368639597167458591033819210683922180926920947109056088778789561891323578014926126583062395392099032001930608439077360822010090793294710293156250558225527075773243672464171395332685907682718385293008195112326918402230050455230209377249269432817473791679526370414822252228994222199399951514087860790596426788449768741685821824898041002874059369092214318498671032994834599702553339430890546847643668368166993030585038006298050873415707650126464406883163752203688159055553705560063251415470482233384282474333651745422266786910155986025358473086971658174583701880027463364729406424777715988428091879674595703889379180026692381695675548394794868568182276551221491926729236050734729413737168399800065063201898989898859252299801593238209345672013963837993417198639493782067969840863223698425643816286262678581646921842138071164191634542385390135189539651765660174708997422783052915640511969718948227058076139863239979693612798003268082724707236969725862857216040132500427514382749282622392407033874471975725507637004362899712410763415092586504317744907928512809655188612851647228818615369701175685666228405364068363394277846075443110322867066280300480744004240468461906737621298438406665696360219480020269121932497815571777251892589611832824658828953068801341918477133433567649939461277570075373774620910606110714872360957606528860485899044106882901066360360772597153893233897683129263284964245307633674019939116175502771230633722684862382030402377424775749189389358196351280960007974787064762146716093503348899261258879608804002072533218052174519383394456344123995799511481487322563024315896372637582355331797492255116424817504730275590392297625686445861221265008169527640744315127190894313521889899864723915773043689252658297299751943771286122064988134294664934450539047992757846849077717264872294700191252954126438255860021294561474274157423731800481651766022061316909775702849855534124007326830856436822848870115961809388780116742565447940763845428360609654885474502337452426579637162955622497807844090031072104343799551224022763598042037803856731167388789877379955724102318276779354298717001138085954899823609420962147556394740529345824095785840022941700815426528523666982484539153972690591909767478782703791722160718397257427953383466816133234642861176439803578761589597494007373235410912481631427204315092035084824479491786643097998409964153798575619439319762824732983115694075825458322454870699102516530453278483649972161948519587336469270573067584666937200548541642373299918088627696455376827469246190022621358769569372184937716953890246253920017317121533785497436372230171753686944237783463705462775493627496233574092718284963420581536417340193754308800408656633566320704712448038275313978471497549415136525076561100956508639142561531772357555568477533487047891750305814399012837225281747998459992194604316313927190517677531901775370371484088645142989903789645657804848679381568998175998421514735069050480846136397711714229103984870058946917353156987236359669241990571794927332832941101133404709066507648243554521468781933463541635845663009793127640152866022905348280754782862416017449719518221699017021097797016934936033061038201284665594796507727021217155385934513863563756109978188681577810040955835998641857744251288747602540681015498174673064161928890049896084037372148048915719115549160041817230804750918898606341362678362887288884919998174292788054846987155430170142397530345614794171427087703816761549720599975209781512782484859719890726762475515757225865548126264895261336957321527002701317192724223317250490577447420481751081439817327784310146080641321104781051318846212921086532776971781716476402160610403406189526158411501119389776777389647441935796963306350051565527921652303737368897937039471143270948190985732966164819008406843463421661368426487145660635766817313955390327070853077250122289351053829250318003861804272277025372268834575368212390369872067666974577178794235658004820581716566565177192530654208521046923543623589520137940684517933150028558361456556037963525716531190500597977414083393694512621979230947926907696787601154415932191047175333732955455264005852217697157713959223239759157693455750097685441216266150435170990037577356897092590931859556028786771206568401630207770789596725099659139457944425484831690035723848956537533666181894822664621090618712435910884476382946216730553411363506660704922726279114019120760928451332699143228105441770129028142948591770699021846603194129324313721190840308513670339194931552491607959191824832883868527576954401856109605886223570597283105073521895161394961972073618031306052188560825542159696475503565080869279860519531161100392928070771368600974145589730792245560654895067140490033612918287871460209208861063906496740130947476376577666182076559444946305511473702419945720584791027312235735997981158852869129377284653340916688665794559040109518933432459062051710963040013248093387694314348017767209259170595902682830783825578328916667548964176977814905526027509444893497945493818905083681339501804838377640390732204176681229114855185868932032679756012558085267235551148863323071901082530465627460647862690200051712192460771221982443708802549212702969871355420923521964401025488797610081829804185730303485501392973880568329339908721385284835699655925177466647437705843970760646979169865046482718913721207730910677627543735134040299605370033036040244187940264396429370418072521413583674717175865318169803838112305781743592460429785037982113491092512698700303814378422090405716457723652460747269173601303835469596878997492100053098739101605537873068557377217496096033951050226123453731934203357781085256303116050178547776271037884562368566001847299177240967367209758909955063793263515813782368510157428351665986009362067486881108869318087555105042977364577627120177302397793577914494423286618218262294311271183138576079841717500830596021043439790096088059293637001625033426252933694909959966893105847359203314533233382668609275625682709260567746847742323645717194502878867791977949870914178780004100974284925117832363180328875072581219979406159059645419616025760772792158953509121272136241456059212087153974543065333092089647730425653641620302396130212503954673187847257627166004884730004893600289050356255994013886407655896425965681235421668629530883845758378568266478125621098934914405070107153620281266934987481749362850845571735436257749153316509553742688033646408296714943836646819635089213242273054342056976528642203623713185403421380550434716513612921776567520775765118801867777449447547650989341083018408794827500389741646418442559382730214576102037512323042585240992968679522699386889504239714673215037329784150556969610252833181928763046336798486470287483157059147971115054815996081124491427252947791465522304187014947024835662204728596390782130733659935682790744729550446017759249016714554004984555223022094434226951349695582204522039558185732854226584361084778264550535095807020580017471746668595442518193791441572683458679115833692620763813401951565206597609509118518770725076451630309236539796509495396948787714352585369274889474269069607253230718337360637678433832500289794754684511251176580093975207595129809134512078802192412902704460064426545700266566646515416186182545814058914511002084936990345816958807704338941901723434498514068463579619603572127354520423345844433172022172882449301931903685574479547985181652230040193375907297828005159970281857404201487661548037175928890202832549473605996031979797788929130800766018003378081305938228227226452651440078173374000801510805461435617120277318143601351975417671823667994544169137292450604554490457246108502528007363084234773587536164293710390389822524918627758012577408605993914221341172362692300803141074488682731623543126459754509668041003540588096643222638511875673178163053979982365923540393562825839496923855256603189809468129981194926759055757646272344510727137744625238806909598555424825375153776839186166908294007308910484990791721092584101746337557436622726481254911861772853736555484716460138971884458647732666560916772933625537371658395842986178614854855217752922542302544899886887418788032448477412499171018126597983113116589338013514027434903347097636192660846337589841206853685423804555449288475794530479143410898985741283516531860318760538609428195318000215405544418322314186743739313247806361437184357072490282845415751465825669101932023337930943899142396476265074855938387985673879733749354125370776116498538999354634895108643638188418667833554377248398737706847781326078708876900175751912730934753066875478912726334026209197353804359920871430835375197554542382546392452471436305315974459017326731240340413284632918790596753520211491988624745248461535479961114205898822298245870945987079124744951722477039227367597706156267351653336034200158348934786431118455729298209813302698610910396672762648469910658544921951634517550711434671259159465248338682732472677013824299456957906539554124949990316411045751299830081119989167648942111451367447618620305141230174733298394299830991529123247642329409288790313725200832907991378731199866565302945895278286267372477488190642012301053857653220416183369518255260155919025415501302232190016819715557108516660382182875419775870085821912700648392883605351052470388311658571423840959301571725196542026007967290883399285641760695806726392996540008854572267497903407844371949923773844061213349011622502715036245355408475960038139073236795952386481629927523850677255467673262810300935878496945621205064825438298115855247216412332462870387495530904226415311486868275742303368757516458388978422049147428775892083549853482135564133096676243700397504618092673627465433140403049795098712421695832615525550777916147690981176462935072549584390871356099087119508898683637917854231450687349222026450416509399174414068501519395604356464298088655812945305709321878910973005168051663733143602123040801878646675212909929960284740007517584260695914195819777827611643659002423632129285843244501214881088237395369700745253407418728014923801428340596264042576086763067325647423221834225682803123332871663373894179168857893089274879116461910181840540863056839254233774261649237050038098621654665208567673973590358906944929269353262796597536129937311139544898617687267027860939067583496250818994684081662063503540738390333250682693400680129597447244266304261825773167942076592541589472181547142426759797382475506991775393000824505851812185547335249089966223215888601062904271540574688030539163435941155250847152606397157316389461358203400242802977552627009970786642188579352673814079471134659977731616035627313638998823299698216959929930659008301217621221732643777341479339936962884273007944501385497378947327676869532618697245168488298182017618909386294163553089549421122095561918359920160487168525528095274882904601925537075997940702168154721532370850140095543314104114565167282338979505629998376419882410023157294141098043485757529861566014941536821123883883299911137384214052931576111425711432863745051254212498165419967183955156760075109812934943744435107381811351931634718163489059009039222009158277847097982317731866714237039606990749783182358899542371031586063909294186360200007531475156793559056547997363300690992969253284996768589061312724620470877393169982662213679328420748002612903862539125660376201470612962813081134392590637938647811871172947750165732711180766466000407902931455416636006752658351472231345621152792435966396151727673337203841849739230248454413494121464978388805177104358001159575970863039961392102295665761935314602583569729613851276766335620297462267352150006735859236523417829421241780123496003290258577556782241584521005706832300033500933085864023678144053428174587117452386282830595046201596577165065464496814369480802332286309928844128312423094982619837731023382789276778822490997771968555546652080479176657055799760378603736085344912380625851856998089958979348371372253602194635320443490736056946008223815711048951702282187636279167651802255495589440951095314154723433070316324886235801649182627116120151203934345415067682897723973108697166028963814891195642512027538016477571250896800025038497555122216602632332041204850086855934636384211208348945088089575693882481639374328284427444300377743832599626573923937011099887386051897206228929533612711250841635070637481681498626071521885649753764912506284972001862625915157872798417853278727699342192566223903568690940049473182215309487783944258641183743047907246962824916019703348230700368346361119922502319742769723141221549201449716417230480741415120262260116741191872502034238683888909058370479093074334350688277396080877051670844015985080323768287870192961117265948772146287981991841333824222187077959342076874784251351680135255438412683982849113595681265241706866102841492076381164656245901879237055419647788170394892753363665559238807664280483826532608204004681610276863385858241334364692945191578299532522455072313694225929795164167671930119863774003506475171840659133163672863786590800875843542329719382254492206564664489583215695188463962138658352935882963278294937153305036461837418483674449509222382668568689983365149531772862962572710650543190554893435076263110611312247234021272148722100518217360806937687451209155774755981202217971721742446748778448409261692295485587081904702296045885508701509496061303440916670599799785915162992377191705033021541233265483110825471170966176866345629218988717728773395759992486935723964923621296837505342078623252015932961969835958970217605036955413456387048989155895972827560219559393215136163995422059640442829244103073993022848275630540847971125573130569321392504009500031539167936929352791175927594302750787274868050429483486888906243736656710478611982211081591311453267652498382608694914023111610213216913711822782136793336690883020435472639060265266007448310477630234582060180597832129857243889866399338014429678621545280279988619511625939199216889498108988033750494983629867889049206556882854474536570303329754773721852962175052183407932870799634455913948229761955164857065551053106580176544573807752733237271563642873367048291526266627292871719483801048705097010711508122812433886940704135878865701680979324628993758351139191766179716325560288790223212872037979137578269121162158699949427525858804355492944486585330657251927462114634339977690630042376551364604898648753795556638419081965066569640221178519944144646938994967198039149972712212773905616050615411395163438137249272515526046338569135068105974825855124582756562666348381707497447837259055586224270010317604295130182426499179691407199421188810218218424470152561878684951580644853845203026868549207479232340486705012766625532324845491910931047746745991472518864234134080410510833857318963040807169430119268422329342113458823389313391916489078503697552436779677738916659266378695226123903271450100763336589394548707457804894126477094376063416108632298009791972963211684261242610644040534639086778648760443347516379331916257495511180433062111387515054294406185653230297974014030564786065359123849778250735726635180491206520206626793732711918403749972014755265111393016781851518829272184178590938094542670449252100737736175539893050249901540129604770571723238035167492454194225224272510262519563324474454872241764976558120573683733550436820853409264417936636743426995884406367509423476693074826844573110221076800603818664951437757516079216508761937244570206562657018153751826665464156860394717077359450875631631863076221470915547637822294919021006624544271220800604611330084114629057195119257029566452235151115866948376443653935979655530034281405662285076283494902077732951347552813626648196496810947548515758426073723077812057837521757774632015794476672251441888800932685800010208543397612863153169742525954297728296399631900756347823008089079003096134214217617198534961642943575208169008067551704896679237133103015965678863834924678113136667983581429939181409483441267542181054023355681588497132368076401174629944313930723662157534832781148670301145205945805948615450593460009937561209579789874335495643355213469085397812505408118724112628667012625139556351393194683224249531488138125979275032962516272379719591187178563783586783604775633478997811734990918069233787321844798039018221582335693673087836220226702351591933539008412483900375956605552184256246185910728175385955091571480152630308524923312636498944182483411695304017428187815496387795291812987263512911796304866444674723378950579016631176901118004480903181296357752177301186540332107748632744103740870234372118625382179858928087861547680675703658161053442592134426650013295948360380378441689663866078728524904158077955499857607468064025990706178089211233571936925866139774325518481667083348865455128065579533476777082974163614028195194452802224342122553009953806871958794775638546867320461662167864336808825161707019574041431891276617107922192586307405528444344686900221172954481030783903479648795656300163111879604207681597308982139839817182452026222363168801966589536511319171799177256225758298767337422784468914236325334321791446640228776584280970236174098727953119400833593617820338843084422377743824848942035293049217061711761917651577806882695467285864369747020203154443437294398917926778492747039437835490253200918105137049182706345441149896689639106229395457151887680272356606625340742674349911888743825660985927309959594006308507408746145559467377320569589799060039085843742418339824036445952612680406951064723699097355340389571053276759686392150763710318841131381069927990085820212205020451827761419577896273658840105940646346775295401756682574810197774422952657278390988193898865585034714421171473181502869812033690802482775881521195314319152641998066381282973517961031593903738845080012042586861858563960936351038825751024733238636030400055312838093844618263787335371517655342362482219112862823475273826700534932430315968444167341408627218627519753750210527226780649960340051521094003030911047160781546832322881597624899932813732347555194928718154679913438793239928629664287309992714840689692057677946293747027453425906390420934179730513576630377602268626170634093450700412531926322408845804770079113215422498358284410360559546611927966278931136388309919373650204340535719287038078157700646882792697533324451812483731544905251293595412357402748564813589759218312936438479253886139662339520812059620491683168735436513993325518623345174476496924460460529441823458546631374964350225903733552252193298632264615450749500574606917961732790291634490750913649715428387892985666121113911296764753220416956597776558254150892907197657750729588154848338534740863626372127508925700774527071266267139685456778847601591008141376048291436604641169823535407157302871898289608782815811211066672075971726099247370167966553355922386336163485299506341456547322703659905842791484016153162453521624563394803311344876245773992924571920319110248987854670311960933405698654145212812394723692856547840983548215194137280675129128175042069759863112105754189612646480382124051911684927698655235277655150517775642123938941339324141782867321480095661764510123602308528843998724909478453125769693333755996495537457387888605374141936973627369827808837039942633058842267284844700749067077329289721135677041623208631426683857353083644176680806409725798258630547862784960103647889254390616467328917667953449179408586330783628626121920396579550070701726643608085793751823555231090227835554808931629237323316051505175598581446740564091924131439973106597808696512247361252282978426474648215216896833851253212279817223091593035331351415694538637154677075856394318041996021174662021353152638183705371432771850977901165995135693656835607010040539442502167387403505575457966685435251671938203349776552778390645511801926806763597060224785548231755787815843442157073792441012014280865955670603759947474763733903721509068229054026049447480908774133819278646950660282940380793914123517055909845325729036295344400242104670787245694469181170651575039545007004520808711755173463506947618614540390941054853756045268460719460270557752798071288670920047762138029394862469109386790103948460103296406651139261993231045742034650149167924888094328528461926128067263050579752887338052878672416872818481290157312733550164367083819553806075516347208706001057097416230872005798090529210209289635093705890378185937975696955845800524064040226359312564268347174496133103120860602564186235146060659389739386791279811083866912542198557652225371045580375658345546865445105737365162807926277521070031351087353476214364277813266992842829492448407586045125454739558073728346313757233078460526420442971319500929392521115125834166589058910586077973943807232206965231245997961107801096071023271107204846399662950717969208720819465406419094703566566896479199510411554819240976074599245981876231373181385316694433806306251014424185034747879555974012618175119329672868086511155000084089851080872984067755884602915987767607271599190470487058774901081488715424226401318273175786663663466274991291729722141610156083117937620260011655584103104145348320100181877068207282618344650419477874911351268222825005499898058627263816129577456065554175133217767846317920607297785665001682939163701265524508727852350404253782824062529797037829687015756714446951855145282592895479580348433153604502842273389785611960014690245068106765873247507562777603075368183945574651115291855257775175382386046441238622711634796674655441594945890017068088448902075395044293232711915478446557905164903977361139490704714638675163502617246600352547499347294682596604282760714088761796936235385852613823005856592829432293565606352532162382957358438463681461611665262302706540210037246690418100990720920187367721995605857670832070675627927933172167723247690966160134325492858874531296933612712538374911193290119394385635288430815981284240475323873099338985480859655402840382441568475125989120523439812243405678361222140138829819133410784624439044779862155231796009830352514612370798732789420828381338230893335571001188017853758101635276469476541990707002259686348363428647395608987880882326335280864895836202519618336258485869521782479292537745600304953742256382614045829495150397611563724992306845823666204741726960784336315375466589124396672130473833965353068099159426416398756489399267548503915527654438709354765743709217019152975482968875090797043394402589339745590255866244619815510968092035603489975657917153978811835994569121551547807401476861677651994922826806806214765120446520599165437651485750076662180383484103265774849696902041409403276465692825922445660506684101101300578699439149464272410654172488668697085442117243608949521190270794867613731160616536123813016851608976592507532304898004171981025244882195864931084846123317054151091835847263074631189277281324870695280775173875155620939301943186245708322915216222230152925578487084109873344581081805429162948881374962797237815824214099989649541249383862231959578595453188154156762035635836379784004724551309350252797135625773362303624787168969075898630921301715460371779394431123259484711938623452602811888672215660353960139615528327919384572061136197330052104607766197282105998510354616989748036618458644013620222113587248780913427856859823480749574844043660174365175507481864003216609812362210860800122893786107816774092271589778199505576580997467692445601124124403270051461350194647828833587720099255288181277659256495415950687655346744144869876563882632404673664181705812856898672666267938478813935719203469362804589075565152598101301561738343867533888680666606945579701311488240766792028649637751724779772964757052318949818394725837151865823516368040570291727911687857811485023538321704393499793479696772053995601446840535305903118921912750354947063012714076128340433184771169935007176429367109813005930895521094259568450907837240105418917224609043181773335850913290949764987451267097628280385600478995092239945209418831303521143169386754589060090433973345625152393616634795027566296459055964998098066751477597296516892551122280448924101009046117434367601457395808273988764245961053011581342647464565243132841728851177861830744886806284778581603414712405509441923576207271616199209327316483470752560665990646491043895559025472519711465196131599349144884093464800100486033086363243081721788504396061644751352402864360209743048258781448403277059981075023628653969175399194301448857251236502466528542157157617271024371372812853037750489206964855958512088022378717279512266667422096068818909408495386892485486809485199443165490611477834864568334347105701010138355446234143221122777980826938506019330605577805982966191687792063706090987583114206142622549641572800150261609495174235544327981775307205924236580332245163053667790210444632614261650537727836073342071377725458834197332110120952686161629626272348883661578618810659166618167411648793941902814802052575573677289701650322836315853880530890425015237824343350254233666112495156563017825996467676629212131266285045082614120144302591565633249575982365352542649236422260967138828680710689158180472598800480722138497604533965964434569683389007962171216714424421269108403907899366365861224537325785390083561084160432435646779512848828749889978533067948540351262098078404953098173001153540832652117109663643917226665963612804679643912208091849273862651889311463010232596898495099372733132164479977950469936179668351279020335769447803001274668605723381931504211773079857599544228179554918567684067865051864802670267947432563517383459066348483161600861672780006498921832695596107893834804485433877380638189817968911041027007749096802198418105674083702976511030145344206269409890703661460262250587109487572860162741724621861629370007523206004206951422720366486895811209747107614956185431578586328005284516112182264441953219955237916424421127335586568061670170262631092525341664450207474808332336094521265829608402953900967538332958959596151612245051601419670914699248231817382117021947880546394100065290732417616396057464076543592758565728618151283130137628177638807468413268517212805211190584533747772600333710825180692524231195812767262072243050050967689166096276281925139012267231165507985401714271268188046119068193323439947496269143797710663532594542029953187127286412230530880873553864978953052852332662158451429461766345320127158031099673467121481596422095665403076706457867263624648233204878272702880398504425776633162754454974107709917202702894710320011390923865885364003274572821814329866477965934366110281916138303365443633640982279424460795276171680948866638087075145865512690998026968203854388887909363416713688729414139875736123175669773360767854312293500947870480943278683154300125262511409155958895732718202902873609534001791844898268118009390348720380064840446412341147651363020207770070105066570917813953125242501280298493624545427318475356185559261776249105595612044787212376636498121087344032285495771396716185756911920801020778683033691077021976088450776205968987380931761091981466845759595275451920302421334127301530003663271710870252906257623600177161696007789424726927291287215972759045939188646344555556758846821499692796903002772756257477768117224406190653425430859719027182087883603030065492816349810355673951564768276376666925263749465242763520089925358207725467525619540081343795606133297851000463306253608255968756623800543924605049714685696930426962046665042767533765724893794833620563837789297054953174956475278871712694154783036025884368223878170992423840696966047803826981543827336416440986549157779348131448248104708621961115509960366278079570171240203438370492820602249307779590900334749552455529104454032864016089896607399659795681637857828723122719976005908193825575657417016956378112113485127650213649308000650623001136012728760876156715292555102409574501236457476811739624279887390306360522752097940140382163486323507321229834626841696976015693535467903372451330085698598467940048080791056544429228345327686589320071539342043918033237429048982193267461902924426304354322259904933298696648862720745489470040898624551108225362615012429464164394592427732346616177883029793178601389226712889003401837252377619560738128568489477901194090460340109045118376070661707454499954720455563675843311466421087087304096677060798627385663414940782626687836823754212608731193944600140945703687564062688857655645789865617273187559476421160180024242665400100826108878181153162470326150588207374108545980390997706309916458693492308247159214840473572433002289566633036874370429981521871273711031630955087489483550979023361204621327623988209728747536762819172131074472501478653134842070325268276571732358697878355255460985436454784332943141103478152115361066623496300840783919712088798302796319947636596977456161639806225477744808732332089988893348502106657266751478014762948803684735304918835066716244125685533730934302135918279305735707237660316619575972542582963151111924776097372825373608964096908596653188882580781823829650979153603075041847619791665603821976386790060307834791762849738559872403733459710729233459849116036825730545090012186398880803422786262561168643002178836313330375299622738052658744246684656821418565901451561721994129812944718461660435820534809750566358354504361655010442487462366292976198177646523720669915563466032745921745927995832252602025567432516755639312712882611825265053783068854996196856688694358631194505460473330432631497247211540989589322357279985854889808416316866607989295311435186215445474113712220859975911300852232391518401880906632731909786677916369105486831910118900386030926570772516708187774507540964267094334319156126111374694902985262947636155523970502594709556588559355764355740178280573612601680501728966091358808260118569126816985926421565273641260723517463861827678993259813580336473355909102412875236734013176713519257082201865732396655706914129059511454930050753666564441963416238915763652364815637349446553336482710488928418011400350146758725661808509124268552927257046664331940627816597379351648419368591042233775566867611615005347967539951853182552013344502861818309400284405805861635209989658308125457002697640006431199674821023247306174401359585548846403074221309416078509982038217008041319997806920141187566640945020454368523304030071359671344204089986043409323001317492420956778144651093879390081954699906266354682275170791104296439354016327555576395953539770994686274952042807911801606575769734525997192592154954177858408667620424414185025490753931622480641093805718415933457241095749191094239911122303967880865817265595471804827437324786052540577942877488364838141098601202844335590065259553753409340857449444259412536326400864357660418908172633174113361733368637974761259381383877542275384985198128690218134952617892543504893508693626458240023603874425990953238436081189963676645164929044482127436782315706940405462522519854365445292746263414872607696520721114809980004532327433032172441540540288585261812365509244027715976194816776848083364959594800150289136064395443370227722627014794377095592329070251500567817966698131395618035817045636858482461927627411188824749178580490931117874716662833207090991707927386151197316755858970058712202659872816421209144486177591868103081013999470721499145457321648656586427645798700910596076325952059087149335873190545964251910685747786038266816493753949104620240322523039580710000596803512830218678412293474100524501960279981034171289041625013771119197614482023414497887566224462650159635648931080709256280333832365069399711666238449478606910073603001156940620401506570119955938753349814205583245117290456375293205081237994802000124670082225814835527157746230428760335525984499275324970487149298188446262467123080110463748190891433662320035474852058748892003149842827585145448361759602839457132784754465184021128194673719378889832066550828330574934154672787852014947726190140416666893311906429773417692857989992754196994341535037408478047062768563870277235255340583966664318435089295370573586034715211883844279526715181039584181233100212174169771358973981257329346402532697327063599697318543845156156214495064461415684072089645238507953635011017131147638683251334911645056033168829135879736311313418742246507767294840868239532928537323819180891552841446273130892063296990241205489933088143140712935888009082351535909867989856267364664940933921926050776462784171393603544253314838636673050078622659700839043290097084056845500513291859220313098937920570376600078309242272318110260487071399584793099911862260239837753847088701710394266036227314666341062779710143366281853472614960763638087314961791561096443439747114627752577193801819943206318364352796914242651415243370922979037095201241738418985217133432700143995356125336076513521809205606590202922847784712807279106581059064064538772275726187001924804877707632426209890428989772354764000645427946188016951022110059216067431892913358833793224617906021894204961346710586388602570153498241702691638593618331864720181508051748061116591122451011419305196713474824439423921456379463889010878866466990718430449947516620820027172138742891955042338073146717280365032299530269473291490512833389763189991270500331015358566956072125733301488045624540831153689671968182512292442315690770091545505502516841979811084213630533047350204181247672883440273662466007347710794980963964168455015257972021451597935253138592488487481053280109932958799395281762462871405596493551497310870931268758281715404821388273338065060431730209856304404886184604323593685520514100370256899280832298744503638704394363453996011194092726307902972646266685697186774191865391862333670465554288417062146286458089637157030097708037814176710750863840406215981551200374323491317004996849507929430388894115386270128616431586213845592126948211967899084870907984342483317436210743087997697084023215024887617479711523039250563836835157334171660009865558544874420439351818907970031689499106879108565837064699142689402554199940252045235520303038277699530261978799670836696695417531815630952887434607798931081896330181118886054876054580113361148815685481265392793251303850566751785706390657892353206245182184624657580374003107470783399176244998080799036179104182254547497365422893649129052045139107181329058270937945340617313978129730936568537655396022293888031986402911028780237396362052937429656618220680977844508867977020006477798311552633335762342245080137729724611896650025852993399835619402011086042605638782470958136655925451809727328065502217909364708096215073254428870943955235158332695863552129343840369433568625723352414196334625598407892788841296415898861812412123883044744734580843020495804034765901156228060964948567744050771124840991304622836774931580394473471114745949669129936711595299000684027611525747300888291443821313726677329604127917774362490766157623359148626189743675813309050271488590580831074681198139238795052797965247994922720571279797688097754593126874899076265520789245019501934003767560190851508943497022496418045571524425908022101128304897018688258905158708303432331674326614501610183997269178802306638734309794430447989374761048722373405385887802557081194462776492894601849378171803469322658872954921487372122305922479682163045985699414989615105307656032000208813545739601099553633149494133188448471369810837572517792511568591839240443510955074510771328284029978286190008314102014684314182479884475750974492705757611329200135405222673879584498060264122245133546095249494076673171996387574901186598730270351576317392183656070033657648172075369344687880249822641897052927418754395746021687915290800238115062260337701296995566808356328559049053950393678121548893193071477809569305586799015499707647960622354928315148910978277864489913663215404899790605649643055920869460257954102657668675151838027229929068328520400404769513592574714873451359855416734565641528529366238525964328874466278852262698254009256925615879516468720774931881066337137638895030268742007095847739793211400789496129462072978579702380021525168112990312424643682465910099202668568217207741327188841063659730807253794023187046542763235202837045231323048870240934302446325245487903714185200597289400492647096129898429739447690011795388487676647469885390363996791785240498194885672491008303377898084494222010261787384630602035715713375782704799465267533639158598719915767998328981571488647734113772754973696958004460842737176855638118711078280731338166638917513443523647165997687586790089709763020522901202748613187016912330386576572593880613339318174642555946972446655151752467283777529037220570642752649201195914210121401625748717699677095927314684783335794112299014358298354132719422641081455366100857300322692255955443474739689375871072651349460848977236531899468873179005527235165858555748911368153731945062266256038292661032225901042743274424079985626481443077273749533075573682640502816100793307847593949789871411578897230026097644377355978911434225506494879773139570013787686608489800300825714662470667526828411650694022863987052473299433689825170051677922670349828531460443991277879882797519200984288665770858262146219302303155333475870974768601994092600325501123901618882462030162881920135999056486701231157080459882589326048558270172293985511177594237155612311932907830462962442757289710422840599581406191985594793878495455325902154803270513314585384037758289419722521854692570831864592614483878742445543764154085668883238249468403365236079731750485611554630270086937993424569350384028125513964502696207513143432026480066042654455384049133577588160939163239944002676171938833918040874380626746245694467181026353410550833288911068852824466802494296479465402734877990958002873178374007978474501786053706416251935085247574369133553683269895675604538535185118331266136617252975931654375706805028024074428922640819848275388295721876830572422691932241777014200591157569403396942109211175554179472212320592183817651500055012371147525467376323940038723239712620292164749656668795133955810589605099948989918976888549058209754510543026646671549825929820320613248088376238401840607315500857916152468751099942450838758554577363141312952453683754813757090468398688349766311150994138110819682183884919949798239578803991199789125052163968215483615830762900269832137738446446507552294058652961906885644380444307522109473556444327495489700316508807335211044611821654329413174475845334754795244229803537264435079917388802650789424657063538355013118200150901369583886814335444856918539473360989235313231661226252209451819303886873921851818474545040652586016969574385436173910615864041262227058222840724624624342506179212578987010418430268633886947427639922365747933723375735723260167126720844698103780491131873039116065659801419042355151233267299904280309585488639500240593524447738933298074928985132459013511143830219822239490605368053838938039595773208861101171643680978295131007227076328136000548182726343311643407352179115879140591363500902188045355141243505062321731986713514164116622593949484635258376668240947509926827946575948428612330579594840954563707451655172649699572837234447333535818022365358144811488930059708521636821835990853581577479587128229744320088630970853531382430372028740605578923983563511405242305214904394415494264781224561503632963258631773416691361738330932333324287623523065049906038956606080918137185898294336145365432047572595980575585667518196590526394085240815819334031465888547754837188219623334725130156987207078178736478763938486889420000339391765904717776210805073089852223646058833346702218665476035205866166679743662636298400330302036886089076204937167946611471551368383906010845803440039720191085894843197085004061440856220453936107427493883859076911408727603779992169356488867333795345219441816496239893116866797236091537540415481705600094987528390411211649805182870326989244802832112703728416697963355515529184408409232033204154547702507825922879526478599336443562616772178780266903605765567260490031108362352684454911230042127388238927502092164571846862169509491350248476733433970193267602073078219988530596956045314523854833719926417013080951783031202322899191295804844545248747902538253507661572686411268634041054296239426688414875367707078466098969179273377879641144671089602805279533903203047221578057144851705242936503311448813196436245181957504437489949229094722340173960110289646333216559661249343762072855414786812622899024116631390367621767364698839617568048154146397343759361723550039975111696018231739338968231128340137297467178057649284968815064315134944241490324578517116791918339535170882409029856625169794633326893447686711622603999131121326617588517360028346916559196659300621309471944976989695263159558120811593226393398549007465792787118362871521251900718238199798602710465050122794382074462951250971951189734160584557080282435154132792835834991020832532299916748111314449247750361826832515833552909700042837849503634545401698455885650372285776855322920466654739331001931487924818960108550459275873233698160181529060184599428362853193685576860294053249395294186459759584536514604561048193355259114005900462535176598636915788607314221623404397807542453685924669904974803961978218734964828973878340720635795037763381703466914087325949145927960185067250493406865942191707026856604173998165470266390220560949440617798317188051247380475061242130254627847665662915720233675628922207886868035701881184455479196260759983227797694169175195532554827576958991190683916556607400372602353041753002565056160326522353465497897581001479403204591443122085547423187160937202245380836558371150841675079009058138022825545592970194585945086338528938104568947909739169729311901423891239776098183464205688276624099478079979477551533023050403801364898026631041910709987082370077504593302561863828573048446610241038131984957087313611056179435218999636330680635840060705028255941578689717762991731670185891077582702273497095476922858356300297333644150046904001025415274795292342545575512863040473777185162475295496747434931596654947480172299754362026662332199185435101153675830764247574019045591316477826950606116751036687366744201325513426245983578266022068729388729462789386905220205271848472960857428241902504054581018516985230702224631717563988845603701740814425933728372447668113396235713872923394783983268689104207806474452291143675150955711167648055949987609592448974592663145771353953705169661451296152344566371099217003946771896033346738353486724068341527903271969196441663655066091549115454744660185550146852327518069676289391421109139673061304746997671355819400500324743274886128280223413206246223331529165550835266060451179916166308727062788240060823511199884628816127753607507797969427062073534283443782829174450777976571044669429575933412298264258757100215260006772616268671371843284286644352697975790874613484751669162644495964728605484895541010313969826758619261708492170348096336117840264545951582020539250123312544224757372708423698728804742578797397449824945682517363742295400375079994189496320595663766129866810100805371653897139321168144156239434169788832365650384247009927788117074165585555356599200705317707321682181462017021072247206377125828252509738079783059180128718524057625857736254202947218784196692333930785786145660834821949922000290290543371995691790174194374122282652742848836130963964090698428675016616984567032693358191627053578777432768547401572626158262038885104589818233904954850216946978145249667673751231839541431846937665733613448896184031283999744253973379941181620521187192218995682946316605963686621606834301144798949497925581075973365436387919122966200733629125959871995890614958040028556266117760671217916979563149615983042399491843943279905621103342813021784915870844584829872257259426085637636277937789269060185054618607883407493646045141067752287599328474311019943400704882264590604636627900111737881993506318657545346297261972238428148882493163682518505181966069556525390663244417741905748259167278749680207871904163903230649982250760806598620691876420275729200496355598378260938985576974425965295450535210419996594581305616109240136519791799057040089816918052899532708851279702318834927185274310600310808631870288777394894765997655307436122174506439491258186908398053201898311158002660166481485132418176886065893206788952024258617821637414331143765349105615341323191028002147458697246009962533828752325505278620743820809227386235212702254232300941131483301396196276710983800992937292102279317545346161133299574262274210926798748801702104471249594442209410844893560982450146592773041815166274944641118199332023719913806059981586053259723589937530342651068453719081600173613442358963225595090111217088224973439934133130622248486937649953024215481724344123332327851830543740931628109815869126372733293094132444035808563295001569733988650657399497010566762158943464269850783172433222730087351562856998964280786993187157915842170436982235866214743273799865853331845058056754133094056474492080043750538543357972744896370127602770438055042456856583841066417971156093461828259548060913101735748025965571985831007651051070072084517994155478955800789468187712273736530673038211873592338844248998298510621125687679042229260908528022637875060219545318769093158921464129128959726105143902053218374506089414860958805660746250854803703682398920506925166372470025658656049821958482557119576662501574786009512001104881885296486484091368613046986444199840678903168558110087141067017575264213065731030164239270416838791555231585037941275291213479552697017423464273817885393382140609602690840046528135306795770910816416265230914083927327223113552341607704176897124820572925252442701351005616607469890020056481425850434885223762860448307974422889994926440126835322253658584612573519827678033115062876822889474629714150673826128676770970671147040116255452449508727713922022548010678349279659782490825012566423143745174039476277476766005076717433899120367018848419365241189455078526526784990152052568409947816095951447535509945009700878370002033176816637237546639993013488074007305317692691064531986594879165324454058375706638468261211106329257852289230796432034078328325318768060240785877235401271137414060308589708828866839133758263691108958149668709542295751952870672971384999703125072214729412564769261587172297405353274918281153137535521359999221971252844691250680810318019273389956202469877122876721471923173427555977058897231036639366199728150886250013001148110244994487697400933926566551637046619136547344831596581702139816246771364016248005951666636680204573216372684766860457015276568727581480566977258203393533180589639607332368245398143584347448381360411461813711853591814535004823247246960238316699294926371273124354758637078901318181245941727635904173908422108970824513436123087082838080963687402624493029984782746185661371647612162932860572133493279090727023738082933093638326661421967704869120211630005253641680640538693017581739883673524475803690669799251116305882781723032651095440156559181874605169316428022780296953431969322383846313865593534141510977283421326459424618411906887029538903624837298502345620722856766697728757183967801446764038132207947056124704656782631926891359777832365769921195576220862934128227466687273639327887128448264668083475712742069861492856949051696114396886429199056523088547309389200745349869294822355504866806886679006853613394461162148126352388036318049543708934007669748647996515039892403366994614515275851296479159255904931632101763870546465327236638161801196695141557920700836935591124265464113678800343051404481168618572237896356301667153681897059662872651832915127191194421992545799357662299840944232125885281411529713444878067436163217318923351481758443697365775472272769842644314873564841535339991642185858997606081784465551815009117769849639635431039848185472482909393300917753956265979304726694882658654657379185158216396354601694372229739039163617690162159601273618858263614192042966819753903211547206626223907196421732279236286058933645673816573554359675591816379047883004927548694300080146078344372245007928563822956215708879516026820804777848958826948557532456533986700076471865905143080562145291050842761786358960549877947974655047071799636635780942283383895956112021906743915425280062400707569981683040565597126404972685459059810545489253841952294313414954091581203692551073826327669756945531748153099070821352746255279765584012872375219681953530187970241599248491964707279049416782489701940181749495680359611938919561439814391672719426973238142802192860756805234771483109728610300956166010340686452804542528130620747363226877380439749362170331334628401037028469759737319900752174582957546400771435013889059782424318538929567709195061708798993073181464153061329587955035736102055887711958982641540612274024170658407195994107162353498916856787094229581317642833028485231801797308061013292232421482420632572740128995273995470865158280904999627505614826315642180503526077072454108161950431307870495273440431021146175372067847442189149827124155287698320615234406340104459698231447150296173467827724820689516825453348879869205914808676871214661590495668525992310756555505448091292160756204685495439326583309931132861426694730148881793219542121045024968043318222913328590603943650704858203739949387185697780498456144272397727753589015636655953144436541159819969888977552878577860275736871748838230592487129898311040408314831515862536823067599998201219210811461028954469662131232363381630702855735428269597056258922277003730697027017628615654540965077222582160571135098558536313123731071350941392613512573898566969327875498491221498295958689540483118278144056725451340230466365351885576483638396979709266819492698102232092104745934766279025394376595226036614263212394693165291376382413389432438830918786697659310007429282851532789099832464640005460591175320018792619872775037593277876363540540840374673181639333079787573501925830718608342096130196624937214648184875812335816644188363829554648678231199116099442987850745438994232828662967251737115218909411628498670979625965161658594978788947080003486957669383491900919865620421437911781713054356989167689960246542677659185569465363568651868294135699900475231701546629031141309366839885036727088372760042984036673196150696161743517696042544752092241244193091008072677750803457101737368247268053797112196977113556675439740086155269969920855952089054138138434326544010957440290589198793653486818856641594493723891629044369518549895630226079440200917024653763661737335335815063233537596661537907617139104565156767134728142672656428857059098665521344401697450376499350290032658833835312047956433547756107762754688781852377920538093084173312987475835502779411366367106254381701107899768246049048405270301376919745155481489477953204208116136923066229209401402667337944023855973965605991164665442474261255054935547215094892294886399492888450751653075909526865160435968847887407557280031758197787652286605314813000093237742432663396997263919750683006099913917057710747831167436186145313908961908409475366607262538557284409879985272928498770355645480191212126735878666558101498231673807099289028843795111707292467762220520412695696537048692814473181741167021725311734731686891035117417986007081413497239079176917170473318912444929542983364068247566992711389065737203455017036515756584346092101203952783568612232059179716637772355176453313404946615467105006835231510646720447522036319757435028365860529108346029410429417489637792469471939713233085325182330938418914430542241025063000426212169865078874575260387486136924218564659950248344580752370219731572785528056473980487668617923103576499230688170216385343875492245793138254091991611653183122094209539991831270542348570928530118353148896234953242637145627561432232045430063962458162978219327260036242960540748073659577945359870578130786485109286816278173195232928746980548717756325917401278320977136899648374244765374317772237611258477828375446503251027911095395190638373978547954109125599275746069055489269114223848751005568505283386670971435028177886084933131598569349250292525512934315975500585826752454312018729785603817604541868468147719708278169449628070847119295241418457741822433288876721935966413095393845337862154730971938720182730470575045979911049445206944482791384139411163193613663872859856298391896708522834256302617222107415083962125148507531887847500073167603035504667974760404008572750188991438371112065976530945838735813719592846721109545157631648955054886052901186501886097778874851802701737236472119404600803588660414921754269816387340579987764248417157917056379339389328195278892222016134620712512802795883612993855719496788028873577888348751885416771119200909003678494446234849470329345369874566832223376831364509816181896084542279956326844998512563331811836111297731613285381412844847382310024546011554742180890049352711171052651499745553947039625767636168979819862845623034186622831871183526210722739931217994168331689397767432376098535720661082554144565863930624896313675608583905353930649318588446983445590315892024378569633513571575443317833969163632577141186690037379780933579305103479309312458231868511117035492242673281966204192831689526292238388223394928130763384033724178206438180308446239630736926479231386049282916908211020259835776206633501023273672082644832059573346413846970479216348882146113904992991246701722728982985571600835634432918097252874185943685429657545238752005654774694981018949979230906337834798334337847695476632477609495840371867621016094307802284780061717891884184417109625150538037430301033539339252423000253789527754497310495901749859460156553168102987745970510235960192182959983000777019585084502038603423837870839159185030661040648507454861072873563131658393670946141353077498796767659143673030742854375064938239985777949457808580321848240630686446108061722315288122314700445382003239571136931946296079620152125029489189838660282889287543647778793991204059671899168676345520320875916881998908247883611770261667498488373960654894687898752977093033270193101625822906037499151678473146727537346532100588231301674137832419613722861943234917639840326902990349162084225096811130677248078406297209950845903456609496428914398762652173117682166167469641426254598112123736397613887239408043170925157515195886986268173858197718964063555464237163437186383507802957403652039327613011013239567920705982568119974707298177050340436422689788168901323866374461985984161718438628137789845060126168374790956269128592659129490350638890755640154050011148391201849041233515719095262253415788082718075056293166560107794961738586509145869679349274567301904077709256442324718547688614436464238924940787835828260577727022646499937798412139275313806653943992652873519302594893725063934276677448353077110169519844044923929089179224888431228042790330620632658582323093290175593765407005801262116749263763304240134677366563166217800674107504635451094167690769948951000356774416791769817574631394784951981094262201110850549699963743280301531146788629414862771220443624627086852866875666219181000132492583401347633793939150020137008440248230513398932475126712111428182595656706861197313582451851926018598280472988315404016355884652782737533372679245144179244635852489597562089142838187366749936270954331393240358662117985178477872101245335981351391729962255286269168123645761602354176460435975313755498207570089442037249760309918272998628838941265862610631880713339436268861423539465734101229246820016419737942528798687928939103008210416202771920198133751694560084225881701163013905299265919288436023715850123401807574528186701090595283661994435601888266788789996669535106623956649224590978970643291912323554189100295744985178352472809343289209214208510189175001448615500364147348448805075939479851908264610369697994406148266914159385760798555584471825023611653835351670602659456987938777065762559639754920999330954784985692071714093354293173259844108667046781213769273207852411281084771554001457999076361001094067843168737999659273147216177221510355689227328650409753682868946898564576937814251927340950994231813126946317158984538431143732718833965693305462166622418063188079609282733470689157721751547620582777755053203258987515961768610106498768104525083821618822968943659569078461441419720858750628991678291727134130462149253673035136577044266192932036672816155007028435143480380634294536243188511262706398973543504721835806829442231279636239355472862737451882187005474454637809195923537539036222875189929924950236196714562318527510101740662268459139413679568801656473624205824933463990989287601991418924628021748583855898867127697405016319651330487389297514253451783536791167798156907285626276215114115181064681514359967353512074205210098837115975137149067035609301293246170463355083629280571061018965548944373046625007601719662183952947433370894576929280269936960741889020663935224089917178830870866913605011247139731574832814337773888920677840297526571147378490558231193922900319474840655451709810479219096329358626561122989423948401937720683099931975800946326639728005378744888471930268811385977824623788532353889849326627412582706130928195511505785319696426615027519531061698536538040952750914460564418114528338190127471047917036554036513162719042609510355545810752712807883080347878855513817467037072381596826041708131319957859556687658697030805370873005357619606467941780163076059538688657308735517728396170613013161470747963846578511136707570364537739490166170730505911296779927541995308054757190176471858876272282169920730158910450206640166823477520745517085227307714232442999365704772918986625337072356910110703433756642031353739248284192770469582710665507433102745377475839201255441813844659729716175763139460067239754447556137436014237152072474362562223991663655288289715575829061016702679933763707824787301768188339854901282749511354889915480846891481884144750669781248307042378699681535674005337994261279503436292380637551321076617583980637039469904176328871951435096427475135348864203522222710709460555869508522923325236434487867675357252450760769118638612685890775026952225836272703652507603344608967309695286731636185429448935746860151476304716105571623146582030826481379288978236054950805462673587597950788212282237611347328502894512888689077752714480341087760089713345516287679586578554708556991225619627540051013345774453094148813998154373805875619568675416623603745089871155815642479856291488502016664852861085128401204748878469610178962731844584510817631717368439668315077404513587719726661090603548589836563562067695052208136647769489329136339315592575142883075018884102601453150529623781282671855212709293711191802539448244026930586423511314655402733879714918780430321574618497694418484468541948297556970350327697899354929531867627523560157276157157782861999660996123367062162415255852231435214551912231789471101180442084756710850732769571725909771927767957144416843737711423237801634596013551148552549591344778063823712290916569320865349027700977623162933018244759474217734590782412246477961803880765202112340006453661642759526162209434965473580697324646596068093082437267202848626761960837706831871677855607867024086740761479362987504918840017496244037289104501792171926018562701786789514537747166121489538237374597391960914777289267222232091928367617389396231569594204005877579684790338157978909717699433247993129334216685653616851870302681842594261652444601607574367753407922015454757409781533076947338747045546605547790563113751152677469793595968680960498400182573630872090893703484572474073901005214916201121174965842889567545096390360806730208998992914478908233207643731045359984171631428348265840438077859921053425113706489743106781564820753248314417548809876899927853157169139153076627043256947873711449814282077900496068496220914511217903470479922116190959630112488776268679428679172771956349582381018407561375175036258658047197716992027420063238846007230172193623493721032028189381429525400857687502001667433797135125616815029408122588524520427093747533939633249046664964539733740347157166260407218551717185177263603875704253032532528978476188631011318887373792820175286996789732476725158865058373538662229280398398131727628756312623558673226699148522595951863035146991450552523315181179687212694800597437727805791021819958534684249062682169300991581669785816675574187913223293619054868697296403704254391026998903370861877878944188870481906593803718890257808215236769712241499977577864668122272263365365575846762030458280522616747293194400503622003352597835548023264493353527418016791919833869641262576413251154783116494406232985378893475113887369825551080802398104331012764660494208512366580502518885262810870911686227185552299714657750482261797509873232826631253573967273056893187702302937800880561131619562495418087422773660284897207343470192537953417663005846131697636114419994158397034213482197460010572135738688583697195694457504400355876689032100476187528438272969300282997963526242145856310911435526580258486395834029921682250531982191819294286746220544837263534431221213105360366954977190935954830307008287138410506157969601583481515794750703386192428581153167100920765793119231445811997292856556181979205261091897851864126651858644230320956323911179486937516879912041232125008464113799991699668820182677365548092835895255147872435203608670346425479575467958703267455678403649370008241123887352315086131022056501049570802282591759476973508318865282069509990811470312399557431092954682797577092281266362203786727493021671465808798550160096783039942925595641557011181241467542624882047322382184747748393857878168830785895767755332797036001994767322537253526658374605528877336901998591104262525375754736104795544337221818840739749846361814122275377116818073197005464781294268317047807133446977818251643888966370313188374197144773377690308946668861719793445816489038316191606617805309802804572718459214776536148891025615585082110605873748687738283853610700346657501927355132256389407813171372478497452084863238277737414148728645728821694210229685644664388749773194703899934790753088525802262678404968192665157076586198345181945139981856801517148190508621976334132683121772238202256571023779434063463072870530199134201905924175284282971334030945478589792224191711913103903871004105186469513251365644852169409387091445621964647362825356994429702323629237664960307609574734700853051768414591715904481694512108435887057691180673308745580554488059360488729743480432305158373344457457879537910860084543119766904208485458993381513847534582884046572943407042820983664952998639974649093232854950458531506205254209093994419695082568393201326053733757093558727855595510164552958886156470087516299983585622304091767446098884576111701402811381746534948720217922889177730159401090193369723721534244680616954581025043667408596173393428840675459432532392560592405013820079747037465323493473721026738183919635656668264507802548282303503808353826070909548674836867888481308331770408303175055472388324094306762886434651143776833413962321107989084622551517072775126103197354790783725710675836080987536330572224193230989195299462894644541384064020285037593278344628479098589315767852454692725240760897831079537187037970988165633719869384099734543982885875570636476867844246170048541026370723599151898357935141060344335538544373201002377045511933974531118024147420528945118770126341690097484911654280338221353930528813565800423015884894609802344297883096623107934248366462727400280326173144305813136109149487834357642473052267811613063147121442707565484444058535069946424431948761295616044999252659789857314133636414425933458397120911568358607258579477323161235808519867221472759012041143932699174985389351940150498683147764127784994906404514881623110421482895719758345749794938709479040197639256314861680493483569511407864381261740059620899387968127481550604951034303172559886503253020293294020491007034029831494639131093636476437514075564763239053532666899553813896042366296437615830133262853225250688073398918415315805811428729296455087868116847741916226854008196495179693247885817686228833181435807558881967639618648213044598834445300886265553513791209742605213139884020880374182033667367727453426759864973675844550356362718453103597540243278706782963524126391060519481056127585575092486559697625764960819481749365806208694400732790624361433948481213548093629851947852495729534353016655240566399682791677455427609474006938869002315318046634441568794901835807622697456672893878912308756592300026527615162478914598180284033579588525504702734117008160592555125765627354389550368061757149015766670382416685655658519351008333783595196720965534353477387658480003797649886494840288181316086035183299872961623000416180745380443605419326845117372137223822237434372456326127464694915367239413665086286900414622644526382352235919541511315775100972079937956512938580592356381027005855548276852453782680998212537456233897051445892554073266126795237337981701592367156000778303576956137098793773406594972421690499707977630886707649934499238183304980668255310134565848681364881864339939271367926565807814944226287623297883607920446140546929964975727256472883741077942438102002063039168369634904693279496284423340162903839930334015121315548103103114614661201357919389609865581370736401329386405966962551931130678799621643807067288334297026991843319577604478940294092513071934147445127186961784292429216595511931458131259049792547596176640861893250143392473756448721115242886890858618884554240140806706582508732016737878730599107252167478653677927241435179908599183488721453677126975690194868811293111758676492209291225023958681682932839718904402558421431267973761776498312930815242225559728636610673162914523752958809302592532801186824786625768552447576947965659176757867320563938035142136892260689293264518413311505731376949092631991022883520770577115964682362819430340316437573528542593183979190149705758437225516550282795247632634108349582026007087950169213433514643802351626828796446190346135793561475193461881650880835911817482057368706405648412939503695260761133185434132546247594070209879540055902298662238283177370004747315594637335772414887643335131561557152776090506308232198719959163000445649463709255262508619793171909825900279026479852520431409309230038202411301431403866028222128752090524181431613631733587408098820847907784727840723911820995462430185462801073851397178099419083800081625294418429298747625015826323722649726957246257031322750205102763652654310921408592258041624869448699737167662330989721005970670253379013579379980007380677116171943509159187967959204310847427478454150060742002966401907587895918390453564016708098649704773740763996193720113490315396952721826505607985311094840431293225062174486954830665830126405685394488166126293894096667277578804561611555494434613551109979724121142227353591628082274149747769537980118315644522431790760710525580642639394060240589922145914143032034122941060497134086520094412617686694325158642287834439028863230821579809329893426977142604295049598676272319053345563093405178964426171715206365521170483288351169320192427213465597666633388390534442331856886107303446714559542495393037391242388041319340451338954221987320922743227814592099976223728621152131332555705364135120684660036466767900746168302489368085943175927687649085171056525723361550443600766529562952523765198087716578591494139651970620711923822635669358904920561996211142684015650236834646412933762576412424763726881874270129608102576004650786707608039713860653143524897856011847060850215368467372239975435708536377942902240460116779909939809654924232115778904311568200308970171639043137734831620158003607636306587270773186174699388977094708846411380448950419105246947665193438561856724098765835612763080896313785519973009104537806535242964900621904917102881884216456150545996306983288120354356511803878424908152667490091859335769222407874381039355844615728027325724882203071780712994831344598101915613273935251707906539143507632267800170838834274535669031721677590371767669589556883428309530554340441742161492643651399449653228779523437579167991512020471343487790195639096265565223021383143709506555006319819448697825310413294690638569231419586290635615263111204920943517298398020054780503016816884856652491198048971768050221385892055850207874237572593918786364505060508691529342764328956057096061449026394190671899454526339354795212320042818383302155113607802329575327234307860721013671066594334281064077374417125099460352553491136707590589014085663756404362484223250869277810206299852162465900502260307421971131377634815559814800411097100775627076363172114072660132835347152391493223319418125590537861020720805087394342856251475730083382878591332468098832462366997770620989512888227217593980902355067309968476643170665149434381456152809615261396317514232716939277629555635011401941484019366048671965040434997003204364635027325794895167730087987049413219775868098851409655811431741054307857670132216413647968231047788199698286761036303744714016803259559554836919987885458605246263018260004647692253390409424637680310827548014115017790016560613947591241389884395507388873723039610854610548974262333665863288348001543785495681246958566213787385095743433093182674299358988149987951089547741954967301705435959166826358912727279775269439427437676803878656540287132761258184806905433482625390530304181383097067149837307385258475754694308923483804204446456957494748564419416071956733001602520736524820220058177810889642260304278005570030892163311957857855432731695694339531448695468287769963656377075603531281842055512485178614521752978539719064518302493119570875240756108565887202655689575409144317428315949822724249942373103901835425420881138680786811276805415304856963293164545449044974888837633444723116392322170411134484566140071015890950821908984982440011039823542402737731325039430687726443961895836969224644815103487561603517270931707343346285446257204542669605068492172862278619422410154507175700967106827905254992821404120159537242371405533223188142747772252435820476120144086576735671681989923687172955534962414891716163358003924815438885995782984377403165886562360936823600161789268295673066933774058870721246289957830386228237880181565568502469025180684390314384989333808699886545739372403940151231721352540277364640446703051043858789051349138671440396882262073937185788210574808009777885726423100711465321832376439508448735996579683541860367034757435309631856956368563606963094978322447378439267399798039550864506068101082858589916822942013133440256684133013377814536688275373751553995460854580858168901004868621218793283954237950446968152729498080707155580058147408074783724856199285418501727698836853541679430937784335773556351383134907008583431294459868474449264215791833518309002058691367730757595618921915845156398064778137361217646183535836138731589058934128962578477235046215450776936028853219430114260621968503467488164921536058569190591319752329234045700679389526714048097951509745066220560062702300196722283509163967632930861244407864444967445305704003579099602825641035311632639895449541003973224821442487591107419669677188892217071787568851244086422004103246700833108015311016232188272826522949005549396699762680395691185918824175036739231607518825991282891586755837907496208121068871763953422520171347312338065844939873610768307456701760785935488500288729980652791638601241241494720787954769382620141442995930760505346044408185109583553254269650969560860862599746158387799728906431922402698142394092578568732047828290015267869997755250506247705318638078231110688436020042110937667448418640685525824353668638458294687934352589009784285626139485023153107229115486600629745436896732806819160288565321134509948150744461879434203127954031836548771719549022555287592427769129495315946262271467878369635833516033147844185999502912435705926944571857543396303397670815305484694845521573100085536973970750911422427143032563440955240303428802548115595975955243858982831632353565033611001484265560559488076800980341964591947187639365410080775794866136771862298481568930495378205167959379774974656536522045794997224780449787012803797756615640518867282412003648263673792138148323443827572844426215456745293115379306670772784696323950629986819520902897602281171579876685975935383580424531484533587665392585322671247661072062488000114845978997163905884702088320863362637926473697791510071884694749150691078481476821952558660374099226951278407256311462518827947502814770765435849085140553226336206036644300498454819650991898532672303480267404317424258002137019314843893613038591557373512932210364359913837738458716554885452347356788003121761736307641087088570673919492941889291250218941807566349411270931193614786039576866035907953329186133058322351261112656421301149225176217195016272694638662364200882228498607331048719216798456701963128766672270936147676914116477189658011986953970257969450511572707867790053079838637466453572307812559944957960208869590951841918192412632045718915270582104092225319404483509844696932107568655132750649550438939239626983373644805885247638487261381742476594541669476903988241372813612867255761402502014524348398702430658337270099460578409988173840444804227939021585884420918459228064496375822996196282487609941674084839100273344469475119660468490434710923810900366842075028418604370877812939676052706996243048733776930736419728568312348558979571079224422952478537613972066931486666261131908630793420740245339321674350669713012491675929402866384560876378999746169577293651981907199555135941649474937735090159514006400386882067859340518109368068132758043777559739890922339898189313025601185452249484039762769566194054345877732287418568446291984549399230413102164379150413630929272927724015491771157073245468032075310045294428791477669235118750339334068275850934975042829246002564364596080661997721929107052296865471677523943466953084558820605567327034302936411130449336552902332080925063585228483586295871064563671603401855043629941691590941015052174808690633559066269328331598832472971219320170253794030506794979552209592163576298340456609094580677666152259640135300824894010840586864505437722963236710348350615284624044756728702665928156298707817484840325019315546542142519460558764662110523143282080687135957442501464393629435236647009097685947340382338746739036314851917777371365637956648658798753575442351685035279061032536936468688382626482402845807032141662499237812173263460750273363956892770137455389101478027266702069696222777753810324155494151924644471780934223137839972394869704683675199308608296603556370393579286901807276265171152260662496608416172856229192970644784494671776921282691993032644226163358371509862251791422230618381183715692613103176124894168370068148252937976850267332149982005444707687603030847685950404111563490895037629949573377070103154336757564848976872665087979429643115760630152035365508245027087601469874887621199411023464699578213485619141651315645853310528524521813275088423802920201536813870543705679672817489190928327890226576546188183684906311979296626290981942292437666617893260921874787483029668053458428026573158218410370147420509711170827476357024261208333463710465573739987593632938817968635827410837700730857476832176671109739705929079207679860207026988850265164131998961697384290368095005269003396923214307998316730461703132188682875859808601856774953928124522001595383069157393797952362903825447472708240835044096372843935074955725833676398435536157459697178915220738363975100872599045396756762475680153035164907521900082921926166617498599095753326187852709637557069774040823031722344557420301952060809957313281725951064983543559516364346670827986416956067422737443169817029919734041581594196931574880801201197587998215445086909786256629852223436614837976672328145799793729983489316536783953328910795155033200625227801538300819252854201609959368990521285805266780110818526463505206230695417560919807427104969560614779419848040759711599990071965318995097557478993234621420589916879060941510914076064109899353417749136064928721193794014741442714641869971731817910181884094295918707859698578026793966271285486271525308021942617544827764892308259860869556570231677190665331722732478260822947741499884337288621176072111631761592426136746470913690252944218924167395692710786243618353801436720307115691606234544466830886883181920405830382316909414841666758661202326233554339409330450129218222531486761563637795741456367803201600607814829715118016979422250529391126139470819087697910318397938073190565239790745815005212982832526319117359191785569884722662126653395356718868193938064436546956403732150643508867434220808461246054256021795883640402351808318947381304559183270126227607537706471280859864419758151972199115768545809061095014078443686127965665493498809385187008664232518116002477136552854190454621918684323604275979801644190106080507027822835656652416556347718968604373819000709345044283703780486775737861903433991142784781496558220870380997533477685933099105647103203901259163914045770636518712217989046298538492312586645029575851865651237942841876521868764934197808838258353801416871075944630515388887079137928800349063544147733928695628614772510069109093777770952988388474973074617145981501364465498754406962850053383302809838717526232259686650575939634035270573694265320617640339375453931470831675147581640328756168288553513018929385987592296455955246828416213171959551745135401194119983446282816903854100965876128899177816269548538561871793996159348525497745031612105962461302212763118858000282412240395392829309823206878728818330325386182731987354457988064591988721294009861623234838334620310700354373041006622251806051605027618976619355423208444088234369635382638929885806099132759795254138339742359580992269608546334354743815360756859385888722861524550324486935225256511958488020197034869887201442364623730371129450888926410353917063136687158334925925670191479885112715524872827320397159691923168904418576083704227737198238255674221048387650021550319728732762014408050556039397646787951373971434040258824340105169181032921502020813710120267941176302316950455474189915892330706930902771674481399277396583954626259375049125800308570775314534879727162123590241889621554878356398884353102485530128091541104498258261156870715652556041317308602309141660096191758181993359106853739273606805097480413806469527602374757845343401586959814596788252204482527850080956469853434812315070150925754017495430062557215043112901470935362420871827598131223660413415229922664895768930026450689251451867276877816028221496276091884692043673192653792980053631798875441732860195160282399751362185465238768759246002442406004573273561764344616090548673898140137992508818803690556556183427748096893024282241172888266356117363973496520039721997217772501617291671905107296859779278674838948274606858136197975279272509137504511276201400238038402046072125993478482702209347197662799962949718405915000738418059126594372069313857605730373942728266588742282568803859444307805578078904195967246354034179291916939566065037137793090893441218812231438012127074595466008252111391399508262047620511725823864016355007594008167440771671753846513653943499537457330731144609487417339654202546651766335215959259842756878849650782697197115632533922194384929561732362464298057034501506188672631673427310693754805993453091327314507023636145928644742363363738045174531682082566166781511493166614028538447179024238646556702367001739643780340541255390774393432584394457519999174698241419167410238562404652673118182767270114968006063677363955491825269995561763442958113176870198363537526424116778584254570825329726314977229718467843998183660049315332575858152293925891854638812791649038799344687779491895593943012654222166396330215192586393326616818167071495897212264437685024592598778466064140930368447390722807414714593557461729021159903563327344462915835107976563742317513454647082269463219786838205109616677890070493504191023468816879504911991315950736101973155205777103155977064844845708238445945390376505908955401958063402790022252945546175263549241234925931551549784959580131009618869065503067280925667134893148360022044913523504465704284645833894298402497094053839358382617335592661536917317976614178334114464685225235957685225692204296195691926053624344501067645864426177136094712814070998022601345923626292674384998642075828142702829512461937778220466651161430719917450234362258305718299586335252689688955368915702732694148399411675085827813091927820269578762724610346835061204784336178548952413932488406337011990001941474779601180443293922311394995508183187460109331549415031078246730100301037204984156965228029128695707283871987765593641185343307153486679853946524635166125800524090726367340899999229443737533097313535294546690420734266506313731520979899830247995621753256805573970793245631528417319103913110189613995866315526230345362546872438707612412741139235418348046568541714712397259665807055149784804954923919966454180855482805908515223920912793020737053706325853180695820451486057027289672878494943757464472095211340734496814120032855562338181207161804789067344681680783599787167923262004125503766222014882955130228718194288712718944323270931718647254488588064251908752101895309634860051488920492236914562608848186735723357776878057117437124308286920673455698485418236562719461351297709489886716578693659858050793130092331636410141519754618941640330124315629112475092331844428579349170292295119832997166493158835929827278825819132863117750131973742268377937087760062977780968309981270145188330366420356322940188317121662972972577250272324806934331391318694769267514849796716846657520947298015003489593866376254848217542366177589595636090644959560692137489962374914348237208440157623701123722519370203832487306452733899946044017128284964990198821639600059660544197251057378094577554086095860641354290465775256080456527828214350658821785642053421485488804387018018633256059681340418533379910699620491083677623444205100173345849423209435791818670669935314452877512399315404093340704655700694758669015246219756661129835874336520022909132407942523927055908910650103461774756803846046084621278707890204680603958959150829715407771994362941132444340218076982291151534080997014639870527943191631381108762317683929683701133649313500468343258234069289548213219703562963962180831862195659699147210992980053906200266995722116301271322732839766686104280145376472559049505629306765956573622833044219932913842100292008263312193883773670188352634592364497426206623633134959218354193461122374262791996208634559460126104485887072056943610108824197530171161320711364045290380424863911218445532641844783195901424513649509574275233664347782967976394571301934574660813044647744015912824979356235228773425897153380469784360349485775860574031203581511334534644027597844237022352352270475596373202671206289045904405955200467068132065456538934551411456229997612986667501246091698529302031126639137629258618885568355481216260886556373804732081853628643849001769183643058719213176711996450457578451122765138249236503446889576278226724054302982432117118420785954893997943685312920491552506662660029969243121299303844349874442729306800214137297856534193274282888437676022765883121607822204547513156640981532390800356360947926796199313969811075628358900460470913697561775944047887446565132394397335618415647839812260773475900513827050847865733555030375816122250933768258113224109414374292455035446350761899743885232013860515776561060985803256784547371017974887407876897574435418352833282417926174005586321005238801581760629024092041064028154131331243672149444309079285163684911974477819550927826708045099678358166500883127051766015139162651184837941164980549491778805267239165940194336997631797047986050157311865762156483360868725684637651722056958320121054215567693151952138139350858945900342039944431523664991958270753686188079555553049192790192818859799126549855306888100479817345547071076903884032959053283220531960998173280468105512873113459997500839942357062259124755307742528702140062561497547365762123460781618562795508860765197957438916427007321569799699579403621151567470236067289487172685983270070889030833640958433318907977172748219799804976768959265525298302585982431876614833107994249044778729261578811667898368670180829373880554537045665236859283476988045133650974152731072159728606348579202512466119118614681383810230214001356481850271901045504324888178722931913864752653195229782641012545258806742362558654461960129036959372296873068445574859605072741237900262348220092168617420401124014714396709833839617584209398063998340047098842245192638691308746311226742063323344242739179253776610006820748968715633243330717654747481901087905446856674550832856609566787691748884706495033709946017071012284669348916594911723340605504287189282294116933652727622784331557307597393555221496136031760083136251399238592976222807851010721067458035192578756414748033135475439507034236639440694704547815006226386704408378350912179568565002330923198875387695269089040002241427481559062146985364644907444304115704171122038683541376516514864585977663499578838593370595347737711420582607398641075232402920198778616014816906129995051600765977170188148758070282310494586269631612221345161447255632315927387926243758635447976032168761045633653593079265309063759647716018042090269170173451201228073673838435868405691291905340871841291779307383378432014452329268285504092329062471243418646290990785455293392930397153868570677323598984005697369053061148554599354138533759258262346503783948937274707017326615223106583634813654120925912367556829889281534552945795847259691973381229166525956146754372007417888780653377397986910807177167869394435944903385148360458482011432687834551513299465749956667652020640160233063639785065161812169103059045005316736397123246394338070766663412422118584096734340885472946975547535193330210047422110042747783757314342616545546921264605422774297382588302747534993819556733633030076742376088416163885425587137267889445644436552933406767697804019119564447870957920822291745625818775062705664381919510635602245109526312280858486738458011169145099967852723108190366297467233691697876358029913115582317430227018022890316978387113003052188270118154344088032791800840794460419067192306264140254629587715828034719390683666546291909584595567868217971890844202954835246704074456995043012451670669812447115076069779676953802097987027724135911435266010113311363669660697751676992484300721421118898264047215984815719408367478138151383275363969362993548643343304502093902285156963142682826385317566661006058655663938593530355642299084776283299290900082157072401788636573854113493196469401332748933638275695513222081110942091757862120682560443929281052874470603331374648092826471782425210249293553188763250302653857630315338730583473941236060374758951773242925624632517824279215172012617140571175225930941568620401334884556091446907315760646565804709889575580489404719700389100864992412909203881366445574830519625171144418188163528640593416247801756277788198586523795651271551350430865020928313310533664578296888572975550189249162687265104329838016050708117539672886178647951852890334514956490703188374904069346057037981033391112159600257337556627362886770545770009758384438335216061624215208775731446953460780240760750738728924342427108851969553695213921069893488195470962657097140950562441628661796321142226704769148351882145929871405879779198313001353875817789522968549848822629824115650904256748119313578398689387888990594819306006020011334943755598537078114688584217159180675477444254872249626486071213015478387947019945237943819238686199164003384804130929635458611641268902450326050943262887459047337207112840665477474708965028231672505965067356931867168474835950947831479367410945551523412654195854560535523969001923067863890995613926762050469208452736679959502408559919753336123033038488298654275844599361376694108027494479296793506786232591138995514129529992887632949324537476307108826414617993921172158899898807829943558917886054713219342043834536259840700925247188011244540334364045674522362165384391406060710423662832358146473068844693642506551657356223523460443758144941478609974892453316614185753952032776490260015402779620092467792869622846315407566422352928262226211880158842520862747589738756862178496098936465923018166571169874641565279372796868091007496269388216861824609111747798293978695281659415170145133350804104696356294012098760321418282277397129913919340457869467352516847847150754990677658974855092719612436478846550358400964313944158139030575536058130805871468510377217044319379706012920131592533051106977430944672137397963974696435429645233724452028177397118080188548138569679089453301246192787604398719205477036319647625780870394285675675843077110496394483497138029156177681435014639504329468875270776347749919742137842281141534037165576179597312081499743028960794891287886003390004427786910568501595481712475793644146802820098514310657432527094532913430469035409695823924752674724558940919461934837597283736928077575399982107214537595948046743891775673416014618630374909928897972806578152764804437219202093859527943200868167718106754362726866464728314673534006464775363281946385243896569534638458787547172515591759604402814591243266258435783133818397750479130720805193129032948213976057597622039898439065931552604437301487608434555063768332736938717769209237830457265636041034060583546729407171549611144832209561999757524836735375978187656613537540316322961124711993263746845851485977187480685726903424853001687871066049625531560227612803293502038271635451008321258547177565971570019201096310270977190266211483828345528280382757143559261077179657181482149073139854659362426664523487964921947325417675979181393958658791947165551667273761904266584367710241106157885457703811265372253046728644893314252681826599502877179406449502469116772866493313524537615635480628246549555177002320060760132988785732794011716726158505694236047572649526251288656940631166060546808833862605708757414452690297191701601755535174173456569590103197538923694269783311478786514839845650046554410867530442812062626213751662838160229429724744625596692301827579609312996523437225144758060825608846473051334179395532182530254373398113802935795843276612307498173097875787588254354166041223457133919351416693724833576530401629085614772259047813504162790725713805172975469230256156267543589454465282915906636520646649589990560148218924872821543074317944111204923815479241640625907962613750152946400358365114814333419805876537665167174121056081211291252757274831744487286999289382978936541701536138844538936831942256177859826999447399352041341534629533409222613423212601971968731170762226160606205790986213456239050634403397038142171329577128788208097069217340440309755205196003834829512109552939664052329639636692378634231425819317528596547356323817386527846335521844882372265507560759701028499346850571234709072410218784548028310419722593601693876804388061204929344789961471346350878962820118810341024249438190254169533453087147091977343031492325950543805728592700085696551634238221821807885554601423227365566239743540573763647591487512491462961863971383358173992179371296609738245337051193969454310910205741447389759689202681119737004852279929578158596342264748359838651211817392472337340866057386063641029309778866909065150406005213381794454519555365451378882781037855323691240143587130181433466223236471120538507476898693343475796779430898538264601495593536398597763053191211412718796706463782474404493670017261893097190851854510342433794319157709046337745083608030522048590669286341873157191576317046043169188866124512866552711077498733592371764649995779797492693544566053358533634957870317686536772303034929688393938026001736767418035913182933229782447653904698494947238991288118302256200774073646032489393920512324514464270825530275271659487764393930171971346032243478095706879977545484997547286175285107217552985685376792404390051728532879822741538534728074477307135189250154312085800058762188737244662648184824835621502995141226608717447949877969225114867022857524137738619591562030582150837314108315266189498595566707719158291813425912358191308767926573569686459706099769141723435035317054107931665455718706727498806501217149319911577240401950837950118155956292773986878756707092858862392046650101002008297049892545259917959297426987638127190216150243823315748799302739933698271580812942175817887936251664885453249677341060579692491952231733583994906669955861354129351440324788563651506999478574848153747828903812061516945621331912793984018300095576176214803933584207599086551723018562830478002583281548609250410645335822682695195942470061779163905680390146974257323395839886418595187026575231531471622254115914078067004622163096400724171996053892569781186302032400121253095555974862058979268044827194798492864071259500370665451571277319177728548639041271517834648339860013262296986541020529998570074943826027228593696607054728101597967527790733985922672841365978717125806916884136909039569849549246689497613657644471603323110451446934674828048917036277886826719738638418405955056817783275261964410879538174884625905210543533228761587782424714934089323266297059973507061518631576965339089979660744536586435444175033755892927793490978822959130004673643007823294889967359431154220777196099169017276122432316105105827262306946452966884284587136047254242411456389648844052416928337408565020870475612513333673760489008250181347804795033474373461944574047602832749200367126534028710320393186710477729293668439118716210197799932120263760186998207318641830458024965557525919622147008798021264090822970237141181364213861859490541906376761830801155045926814028336070663132748816920306446646679326194513898186433426111049676691094246138284966395263902229804588235684900778423612588871823755536850128782419591530442123951520732859859028802842883992338498634411729069241243162387534643627971386015764843465465054281874488458481864838554217141801983513796983453631958067171463589260916769001189548110746809422821318152067393180850589875438960594342881873044646303053269358719758406039730492173242499693518986598599876342047806141079494791194578582616030839553202795508891340240111295011482323253873029094698080887182791835619130956463853401001608474143394349086131616672116559774309783722297670637802577280950972711294439673051649773811246867599687913866177524590780161118070422510481713707179373441577269453268599481690129878293650077510188065671883054333479010860279869313900472266678310219268261277824226514342874205998105872085953890587027250008994431305503088806578731948140934367068903219453005271351141347593190425271678337673929828222561779763279054403648635924485384702925434811049730996738626134478163889930858885691184712455334192169946925459517722272915336436760056245867448432237693864532877061417065848516930915793493750134785728591147990558479511381918474150745242425505401696753693221649483878734971878800942986244650923893874483274826582745871534963369461991280434605171463451057953112866133165193643458488717103160127773036201273976961898275712689497969582762319974717666774935566918257951507228055937575227041692719432153632442582817335331265406281449790964555863956544427413493826416356592593875939430067209557021963037110697539165925562764023213595035650618394032622512238843663529780633913198136115910583385935521298426916607837454585012768430021084698692168394268226001522788538866564877537275858266813529162495554863689231535693361202130155828766725874235228587619830773088235088069149347301217318122242321022953315881905337501834815125931921875965513177220313595156871046045851532546732577281831999571843661254444004855433057853178834289479999444193185556668102969436221143979524579616089127362423317316243980030737107383949970819657169106291296539810988393399269829834961682353675100943486931287531250306665739752726958853805621652787654160561709554185681822869963747592581058684489380523135423929128784344387095590165390907231788072193647519129252959719266817770283837129950806786379720723459687481170338706486474029634530799984805768349576607609293728834579847589320568804498189617710451496577905945807061425579287525038584761627756221620139260744319756591870421189272645984093685964279385986044992057853827051708607775887983369004225334088569111117643486180307247938303426444535874670758600124900346372732521663722870517547459713344268340950632352143046724721363903449289354326564700034228128607780112086807017812806686791268605022674309548144083145194601499258274249768366605946584603676426351211539682620409978957570505115205186883526835650313023470446397016069697788524209946680448019576631861477070690879393114464303805011792070545207530414016174332769649521584197177163534428688974197530789095380573898397637719097230507513466876291641422895906540430566876236286763300274502996814365869981751299065920808060537969191990991103990364259426334775964904804035372971076018353031746822739249579924978089779688712226840752680314680605340603645776383014445366831530835434831411870192483597986887456258609764098040890118902622824558918817446538456259078595941041425671652650041691237295285674923338945888130930147303491015331774546062654933775722173742656972967772881986524839910531624781744154986353669277135909854588116284010353061697252403801408952876729103561383815343395317075711937221564308913374321379479530677282385426006302848125414461609895102163257574503266682007671697279612521141167305740439106373883526826474518174994766109344807616338258868770206307851381452818712681838785077782392507552924022482836011647037051079536976985470349960828424222191603395615351200989337812356363908212279861255227144438832572915962634621630326839488176125455099129713732147554689779881889690878058309592737940821250431582426061105564877958461322842658114524258408101210390561626763666361987577259191428925794405653912340255813143958447001389817002269222286935076298643064797950957065896751696852688392365748686806324652814821696038103897714330397551584338724878903373288150411198833756235774513734116038522628586720407242978216223615479943407958977420791310808220795332425367834534802703677169548927822640060565491413994408852068353286086793989189150800319345488906919576606575816917210650664286392481201841159057094764177462394885393767258990215606791963197943894631560410290619089793890622863268047601666213571829925670522030119970773972115600544045287743880030301402066435464206393328153604131645836370595091231149122304494256808629919992441599204192913215904576190350540282996334650358851768172978910016191483383314477850433133743262414225684449219346062295269559280850871162975734276773623559729008692774536689205031994350017195534983369056839624071962273346982733820904894584873115072126359646017631090907446665427592465626755933938391691017381400783005846846489973379661439584997903317275886093006752345504863954050047423667765964910852889799097663284800684977979123555845093575269460751655630063912606704591397355479040438219005857146981930057223425671909230458257985976496609480798451080556980526031384693225609133241703150911909208037621054754841697164262626914321360921588889020480366796146002961461542894861175704431274127665794355141341920315956802969069841161319915400880538182932865234631415596705576076197105110727774833792686275318025215876375424744566512416664486281344529509511475448136819052331194214640519828706663065066632230997008019903568919525062557203904433428769679281223777109309794864848080398202354173022948220894969160184309438411963668234089563576516695011017496015962851771154549194556589497398334379937390166558279226322924579432049966247115478199167651048222062299214599569768586539657183822288518232656522017830975912161266187285556948864613658853981989375888570075840541711859520524095919591499752940390149939968432031105825867237100119716186681258123325024489776929152183449959289180124397162863798933798333831275623025703802313374956106503084518266347681405881672072432080294466166894302568646180695178651849390690104502144895713667538095410202473342483951099830947934704265115247600411549453806146169740338523123252455295822523664948578083000934924027900532270047743602080406221727204826475785270620790494008652136963272886571362841048723042086908278691103205054600171430801717591111095644514068168588208417705897665280319657957660641265648538180194375654140638197830263585532037797375815613724462351029781539643228594972738287322841590358155551664305308186847612956326753045695829858037211361773645264831249614526024061315452096394770638067414562347481260016712047993755173542317628329989714349107771774452822071407221112425931924393416111149587155960966831777770620704197377755935118873387183803502782665777621115620629746271598230758042397431395982631467973154381900306895772545695306247097895233646355509156377048030696129240710891301344564534958343940916888135429104348273134017174349488046336084369658032371228309106689332871556973176558700806779967960857843785034305810457407062163282959030468132607321499778793851116651358491970613516012165459519640913542995712231124848856450060103381074622487237963209370913229742195282268800864668269177960365927680410599217581172346460998171112022105676439386526801997257876578936116904821822264958556901164355107026999367892093110070486942184258341683702114568044059679499160610958270312046070510347571343633758461825420802804402746560534120139398013426750824241551025518449897424508165102909729978461915709974369684575880188490464727500762783469892168110932212612262257675504567227236441410793938232341818761612483064725805798134458703552279603995636858852490084223632244503947541124021834595548064427865897314497481701879526316311689317957219749598953637332760446067654953740852101283415859724353216727397770652662416480490940377249067835017436684566278280049492721358647226048013447714947696893309482110281013985374768637881245625958115199936492409470295566288338108274475321919802798503276022169680448376558811905953560915666787005580002849086994277139551179302640335637933173202835190398433698132738510680843720422053215601518551562038999419925175682498030069035092914574576857679188751795613707320356114892096333418635850036040972216245599668977786015351415500043638382770380979223731876219055894380455858912416164926746842356044766228849707461946866067864135510393513570302750191788708233998790874814084052471978842215270188249203543978161344218949938483430155598892369784638969589929529471509212585568166875664453101311520205618691939361842803857071490298653784754225186820087207890441121417280120957378594287777747934945780782574903440373427838070439950622312175070873861334416551336413767044713465499282323528772345935710664497264127291920286836069100121047540920933395639212549308913327897801622052805190912414327230308238956206285897188575442545179095704526957321034226884206770429624675470555217508243231367318126522893929702144495665135655394096725030927697098225364201852910215031494656002592282922039958117432996585137493865580223065960570133899781143017261817332678129377719814848390006745137893721806112968148704727020255409745672967257184160401302503248446321341316099867201673153069932326524648012932488355772506268634269685033416559855721983178748843837519044202854219108466275846613236105140895047229489054521875461919592360558465689808295668659700398093120676639210322835596770211102931046125851946338628025988251765155751860546290329101533176850097073215340521929451339085835903004634919914245204779332056659154457674877754146105001927772592096873430672134749779045689995867520766543200925089526325576495875907580406839754028609084920388112714544029459891247011660096364618911788921855275281672655435940526436205562054784185326305793846128582658058229338768647929812342614938867193174099262693256543889301887250888086628972776597138296956804956098783446926384487732970486994729802198331066466521496711298414525499827877889160447182205374599763523058525576281631398257648318341826354014569069997820307486043009375529262431953457840318536049052371339416001995851771696054556505778637444568964371959330162243492581824488746036492679874328922665783852684188796159329365685757992560465796697301765373572828870736973191942642509898111408180231064740735384216825981502627878010790030520502773585610460950098730333446630190691163468811017900184760823101763606137121578108670809070714855974143646631913547519156064759331771493490417021690820927267441987675912852899945099174030789960496971436339943052813986237433005823306030362183887195301657014103600567725705126222127854564956439980566738217610368696069249151875606166769548398616854828084465965149550805431218165421564496555311170832936692793655637428980435847140618396679656665538171122322600220823755100921382855682008723332038062093758849233811584263398564685068344021619792762023955925846936508316311464517714173558187835016762327470503516714666273559479893056075460223622944175353431008798559376061287244587472251027595574004952964332476690399750430052200039445692980059565124620436068495954994355298145181138838446466038305715797814591861756329509992442435111145657433370932942648091177417837765228686857007587197986075280881792252509799239434323149867301776602882090059775711882014066205201024431556215135077141599006017890663497806150444387779812870648046477326413542360068214703032623134451837363280071647256111505251333778338148588600376853550869961323710727944574983858806259342052226188297110975049242216240202891928751928445788782340094308194071069139614452147451704205018899375761022666281812185191906555743521080249579704841384051742470084502842110757256879380620170775678433212456992330028756711070475754279843835749465913973543186136067083668304780032591018963744788315041049652111576302167782415221483870328523082416723553669356810845282454300152983327941582141156756451368738269718432733799482651587381568850666995519980270703010709359562479577541954274144831584253653598192302472005931085425054549799609977522661151805873334717728784169666717308770607417276425301975914837046986146031047174534810826324226772103565803312892075078018970195831395384400710706672747571505649530213005539060547518943393835009492525580029505790137295811378222355341163000416004312204468677736322058895260557846636319995907137482637824865071914196978216675348626908348320000560520607226407373769849513314005103931262033489185027353476855112432073078528808066837713387918190247850976272152702592634737357639801172318596050507383013737661753147291904674745707132599317092968288914638574671284709186280931829834248163417020130678014591060987223572250342091864598134430107352915280909011757017674512899148616372983224735286481268966315881977657937937472463118876009604988720291506144162435912009399088177510435447026875433267109407277837106874602256889231266232772127529247933645024838758075428166729447111321057424368815834927962072588253979634213439918675338650954363647798829808621096553687503143899879610698306335175241046581713747668717098017354230114673433674490715547997023803812729705967715718895693984942201547067441239971803287752503056442806408586534089727531037295886338877478633846579230987239541254126081771647062870399629061563872706425545306139268385479480294083389679830226103160343247817068694405477010332709560729265526062611451264654513244323131155202693727355849711775465688234850448216573539505921486196289609850712091860128095408389641134577038455527226796021174165450437533339797237247319384226079181845854150690522811586905971494842748696108441964485651799907160915846552035003837069949006982561739764117991137429990439785286464745783557091008308315481499300530729737661856927481798003233836062944912053497870353775727283525986198077386977066960379964133915237399654655364504103664868131348786929837378866779204969790683035643160315841969950840268931023016889644675435783665758650032642524952601068987739904791229434970593039951506835383656265480347224625866730128835527366337453195470598785098606978807771023187358285140151914958616098596503605698335136985467700140899330583934174645755380339641708256591452808477398948847109833803032234790168461979124109038133324950161934448601349380983464779173366768210716793808712937881487695765352576643924424457628295887377474004968668273802087486477906639211576923409853189846287994538881638801578834418446056795034269883293164117255875253520183386013116855401146649311077923292953871913086078237927239445103388540985147277677906747687353203577364832835502636515513610370999760804976695300796701063204300006424025609420616817354614352420809962137305354080781406880465812825759779966074654244552445421000021616919923978617635363172252554690697276559346391164400592590048307097223873654173196105439774773548557267591702623365905007381378290602305313078618709439121672529068834146828805603913475704329890274054387569214548668762075103133520762565667711936466483764360634726529313255625217528555599178785581573980448786886415562269916164190896992602837947408347145425189705452409944380507170498961654585452592511771899124740240310612881097419280428837151897223102937589594371194554673077056557913435238639511126523974225279062282230365366581578350751527370143828053388683178162456280928678214476935785371639180837687497949695749630987201190843307490194681876239344376639054374371065594102700671502008159445085267552482143389975879017017113489053324093326473995914416198804636859269090164134511113052580317066274035970451682661569747649577643282385586086707464577241890413978476635018455445353846552383192480837398374325410349405853135395748026951869231459003786648809750638073032943609438139001562892583199182974241476417414496729330364042729166923256490133403397153194812893938156668520430335624437942209858422743983794678264902628253470845674298497647758990257731237103666539254600009375375321615071109101345842079527162251656946286538541554658641396174777370410094102122446668950657025228284422479444537695724187798766816358499785318609394366735056064449569963576804944351107686798486862389534041532956028731417835216891220817765805595011526829378013535538557318761805099768270956998793159456482697915515374586682292366639927983386284713090581517636087555433615111658462555956977045288150379639464787691174037571688597465889042069952928835842715376807018998898737844465113252932822122961561597757762781950747378964640799751482443127656508454744176146696565200823093493240466071478158812148836361593311276367959079457742320301702699732888343803183752730822259647544036104611696411636076218621949585578164797930052871115510809081124683757405463139215690189554609735785413429065976207129595205544969598410627511415098037457399278311458844861958880147439362904773242036297425586662493012201765032429609239635950848855413977131289048877684762782215651879827305560429081328237012879125663061470269600620528052148636468884988654023689594200877273071480168064935943107312373000242821783670933238888712812467519866212622814407221858579725526608304274685794991163476746691644722156885203250732361959878071483592021328286615870227827227336515105541349818917759360641323481176691523079474051320820169677760157543764601648248321997695233361970798488179500568768590498297495503505709562781807771339346995467247124613027867318934456557336844847024143987858022916911299448205933922285248009548670941550085432211877436756438725902268376624871359928752964097883256815474373576363063270417311354194401498037633286634461873603356610589689220035905042596360018756385102288229252370016359289528861982043428007983539133710058859402408445887342487573981608037579247921947413176878119191278756260969042062375093316948215180475395004468435517603993888214840117162005955484256070093389835699038210184128657064339566079868611604370041370625294625916911393056510412930734314354911734101241116378147036301625383496793124996518890490553955812652998790481323108450420568561268078092483123161276755511152174652783675662305898560621729912836583493272414742531767472578470047153938036651323133484123884753780005173977892265231164245601158740485698031526150419341097162745216813018259360331637363821935772553727149195409062760210630011495803553870693851720361465194511080326716421410527113746093191276867326722056843094895824946048227206612172052879199804140639593238964374740460775176647827048688431654915142523625578253862443623044282987124491749989061962550670147046810109458105151125958118529404802881697724479457774848755293643701708095030424434224905666241964035909223145601081608897094675475390336957628490667523674795637338726686786970709776487700819520371333531122595257904213782174646529733413514675765881956126102958278764625061720852277219901605329403983628080438229897565421623779418249922503190940803787537115860047652343019239633046015199878502771203457432046007466940756414176179540299779287510911660269141466322894977630570168740919372929389089191269009978241839774246513380555385469162696107053648679756792140307058970036505359589134536404237693144258606143720596756730133529529337216429897323015422651705029954257012422729342026277400877665352352781855871812719530101417063488705583900615916199509772755357033382382406397788668096762050559093020289951607601006008452528872688478215766542949217629057436336597098025132222515725052762339462275856626143527724213550187908922854639335658981925366063481013695301944900811741303617583668425649865863582621165020892740147262901138018476284213545273385025158165856958358505238408827790689175407468447885601414305616439889212984141895510483236392365780761397225377267555681835661323520784794177538363402013683501602888842181853072696844149669245078712687297844651477843965513668780299341949159909343942050146254507625504496374314838308458862574852104185259981416851950240121134357431618881716610196372459970317026319116444590970745083197439660212330048951138420718580149995465867070204334964130600105164129732407434576999236151869711851809002224498860141625395498196120909690300088448372928177179791141076391880902483798524539706718691495049059289706110743233387289433504365685904661556997480457539069779730496871903197093631849955668951818841456484401914803920802940497841540708615473013091832526838112814349841581615912481637387620889925241102959464412392224565207497738996654171725379369190399693226480208202908024141777998445664066944720426175300324601498774086313762918363868660029181765619605184227052967898973829321333531542305337134147062672506750578687488165206350605203546274365866006908721266033510116579457318603726979006332883575097822431312243401312441992171449451324610142932273596665864541939869970904874516116416954826441482926282505049360727443259884825194439139200411993233911509882339955548093583450981888997158124503507029370070930341843199869551407624962111757192964804284972095916023847614532809646267361694869533692275650645385558357061625064099564853606248726536283327357264572500343543634790104090612507974351383117671171273281724574468497549431900636755810666934707232682873389166244213719584699684511010837723677708867009113949214535963295720446399894881015277660383534151455592993133210242513167491621868313009161206722795211381227023129266727062513536194230323298733126453918319325941469487480857145032467368932581251097069795198898147152167257767340100727103635219538733583515526371244255676355913469210707698950186923051454237099645626434794082516624563637472361021643026475881783739684840266365881997183576566340305381574003150181125364545926790151272591149832588405093495161470460762554466389719948560868988529256425098516676539478570892454489430848674246812478171785897729597422436667356068323270847607577311120670184294324957301760332358971255003212175777259257827245340596668303421624991694303907061535563158598302090543731745630524635406940329440275043537804217120903457543067771561501521761881159208460367456043643778822878525795142270357966903142038438427150123746088220094254858752957955297920212937318289758036672051508518452741356069837608442317847153007429853807279364547033646278689073728725170566328445231792697988785449442612194031591305458851255926173286008953594560855531906979361004549473840936554994518477955232183329322823238142696346713977026551389525045307166603321863688904310135285120888242019607638088727524197068457212847427196950721318193076391461915602057283275942187978250764469548278188238318274582212038619932074983916513604783897196204625408389432654155694088605567358498381296496896652139657132804294021680498009750713995875158710355698296335714758704649838634835374042557753306922286274568724363694933093451882842892115992148362974974563252180196674424382704227951166243764965595070516915500868739740616091405133161157024015329233467693268171100949891859071552627057342069249946234615862375659582786825768247998948389640097751659034675248629068313882912355559038090459366068521764279211573413129871290072984363476377223663220743932123426552943949079253520196506998587543684098422163118247264493266972077623157801032572806389022659536465008733152465878392548193330736443296830339750367857249893539733898541744950163314754466587897144707905109672884597564639835938426517686346297331718799498761116700774326141045059885842242050316094442630342774179048177358176345618132211897400961084402914771223127645188399855598858487971133817043807802265552993418126193513584938037981066552704804946127691452188130164803349660591830634200894951940344481050353092159807239062380088587335224162449151872730624117510298431795659761418005258440473145494979624941709496860843274717932103338750448830495755785472351518870621932712761853997315045677632830644224287418477750333004343429873493896386684386586535636263956164043835687473876014458118530755190443472895385759018602176327906645704573034204073682800866172685158615480414197698651633816916098282030706863935069175318254902248886691887676785117545039067538660881550920535811169932836627887477672152656766679645813473044921535585306907945920500443497578201824814499448553672625933676407352464727273624663087313862721344483576671949709780168406452236057090832446610757904454689516027729210317038017834919262369941410805968388856831423762290337095752253490475957313213468306351344944981944747009610947970740332283024038108417318944776112024143831699596399861234836240568308092722846097884017124233102722260657622720692992923858618741619841392045663355807515104831292477040058720686275932449971932607336294855393806722827996451997365476756897473026043548095054907893338708003591065527647353487418382078611459270169315886789387587817434833159431151259482996983829748535287272198564520810187948790965756169726384014956994603380449754000809754264971370289557481262446904196883893092211903070916055047842149055775673198446160727902818786245511062889261990557688266494829820530403143693660523944082843040499436502107972537564952957897244618504743236275623847925119267786686165242969325079237667893696542191653044417631233247527486702529631496486061233243757612035054387949201977950479884079741730378230243210611503115898493349868645808317594301282199141607518412502742029058789005671139833895378182906199304558950153156420724690464162230859430204214135720390916896222918747699387954599261342497359025522943646518610471143824148709080017260980680530436745314672641002098797947877019341398981279642631632442109119940418528659434744229233324538633565679999696689337049305428143957158392700442572293384203642114341601821918332631982511122104610184900415545865316387274628831999802920340228029807416004446269933280003625523029294793302010172105309441822525540294890192382595021176479202925179094197540699234046857788349395360566032093393060795264749623783631019824209354323557844427488277493004010047707154737064691562014919505768831422006043680237119721021975350417845554431097266392172953333205810037476496160302479004769854929224149156963076954059206102260868207625005611646980315535489278257079087167314373657855801306233177139947896209080569360698038191013580827767862648388058735256288390365072237134857370323761497782844878738139191214283857282093230973195492746113328171871210810393822687997817450481514010576584016800755917670841636683419885010247330142365298329550810241206629744228438036303164437625048003497477389777154201964317757713662515945945784811299683824557538255160281914835421298110354714558100051303198193236891453002198639816096751991400236252642882508268344092830976429700817019022565807103676820701998712431794429135813655805036310989345316403213783304419239384926555034156007976471006335438259212237811010904286823179167114367294849753981187559871464733624536931253283138889223149850726851618456713562420848941630710998776815161021592123140549708254339965087770555534972376243286460814324742650145788629274655217557874714372672071231304632282443122487938653075656838932848965201682854761376702697578523936862626039631702390154040230902458753729347379836168457319855320288580283872696450089047088815368011997345170530003772285383752705118402360068872934632078240659061160250611012725277419522036140243214429942111131727791222696136936816810205012382493930357699143302396760657034228186711332183871083558540651850690525365990013884425315421058632030391512659337532865796683355011992331441430628535552032625518474256073834010014071304897560366697248276839085695983903784985870824551628075724939810000072251258076801773917098132905397366443560223215499208706413421602708412423470527759660798651413220603961184875004915620175635479187791210532226328689498958836128460820671483835767994388957700931983766689876609734939127632418554510729168956163425074887651178842417610061225689315975268460120256935605375142801180884791925250675563727831800299505881306749755504060110953823095636298764597716084597287474685197629260401871488743592699105078612281322966380700003720410699090427393128921186193709438456710855533514172332131788508316115541259970923862292922968139603621064272718257336095709026363955285554634258293220608284762546305175573929604489966110373400210580369987903790634174484382021100717214970749575686082774584008793847111913202635594940163173990952794257130829856065202506744296796655836860111672443648962928498883584586378762012824812106919742383355804270663275264939102818112538366773249018622080473391699880854158211190766703192617074544882871377205913620319119740434863842083669137736855003084627927197592343642523380749873962028609591973432477745373223136363448793632491239950656659299884679436607367688552746749995852991024580676872064369841331921359016751639767750328656252889180016819753476653198488236067869263298394216126378179481743984228851722936814897232000692857687609477888306166846868961358733091656761324158296560599794387481973638228774691557769934654137953327105754021485304132440323692673297928531715807908051673331572248542746578797648501047624379377424919864291666449096294758295967165104881711421653073049459281523477662469912678896573547404020097686340850777370482659586815517680882129628970930824894044244671313500885213245769249252580384741610089700669684729845848302989900540390447805712189984951299345159274819637091881869579988943295289004183464342194828699434469772939702081485620086029377717326019775757179091937622084533765331939783783718787424076451191795422888321300595035171832310339705642588370106460988066636967870878546582641624445336533746087149757062060985959337520771073487434099164264752630003402815684833991133516436332636025331169364954873487426526270124869133640728205905546755178854069829818545730131483555961475394104509278067999415181680937799892311344688646119141136284687780632787991020828969296956138572266854032084630421113037139145367205817375543310619944039285594458550985895424149386427327462089230217607787067551953924616047247545981363251890642734786006348612961507539808751212898964973938168757141167685742863551284129329589119415809664392412342023885797599929133097209902313185869804938948040565105126612347323293795989145127368945564411335399326195236744837837378020302881864348362299890676886049409476786177898280898528098649684654134086860933924602927353667393072802611516518076720554824019402947121626120465097360196401198616631129286003619611149122989518034864567125540125800513303735690718878939773390290886132939035779835349523650234140449362991209432618028821444961147250183815857406484756627663161034675388886142665650456426800036785318702949264710034300881159787803959082175523179845720848918111301023897262899774886237861793618066298923255752701484468245462343416555291169839271798018001437723130856510262156528373401030711321236107609752528156123478983036991585792621366127357293671904287277956551472360297891717129347742113409893403492410424757993656342933976153280357668505685163284629174598849085700583725986649245713294458805146798941387196943068441327984322999982164043032232483886654716019627830554723389622892361977070463285012205307500980182806744409180135197285914014280277853914248056561468574380922590543649529570980415479167781627855955594147333965823503015155008637028569578968582411299841916187000193352240456013130463096583070709066913739428180343500463398769692269903905218498738778544603762360913965405622304615565289426289142171058789274991431634328695679363237280028858316226365344339740553528114473631879453200336062622757020642018494993232461960927420737708496512439866902648545902425830381671984091754526799410131772979514744228882232898889260561150713441835648357192421779155772709603597278519100196435905948963068644955371907911606643421402244952413370779649034836313491187169870247204109409190539841298311516999072213165123399612912988053175430637420947901724789717302608108478965904884118846516397473856154418689151383052628351130712541134938154475357125751402419977673232800054964571917428036169600079229218896330535911936613133438167545889108659639101969796693404308058995794990170637478941111695483993253590868143724010380719560237958301481035687613384849805883500117106765001764894276612258486091293463859375163654860918764148188320187290715767585492174988581278690654616090609576716269979212616790954784877314110434104066494440056960809111883810647481530276344087492971010426119945234506546338525250682705893957081272123511725958849510488719126582458954764615314911572410285191333391115277906147724888429452280175490919774852573704428765281305540028599804873876967358119100289219326211520748987584623630458255521622530446556854101390248036926270959381268750471764878762061909551965374959623534170203355029751298014286130486167608708768115600263972745509780788252410212074440008937882536377093852350774414124440074307288747030501025335245968611220335752321647509026945324599507418772510993825213249547261729876290452371786198163635360036219946545976257856205943903253561915395384379725708800563861189152098798016948575093507755122435151887854069514858049060249677851061618182821699534158851933095872314859895715938690610248663343933568628467620727054899169711775673713508499850481342251056616258208405499539815214577411734124572112465547797306870087817851118406691172429240390339174564563024641790804921838732659203715519055665733495490969733469776945197468613194462178596606230305574338260973264516069762805529375700109661546369476720292836885694865203730936089082134856530899967079365039429585974510345314893423188546065859375244734253524698690164815222576809778133195909627108103940806951073984200830341324136487355702251662398330931328386787818577083677288016734431337084222255605764675306293146567742866055053131250193956040171606378604154742330651758295926922921395342703338986632777458137398601400896918218333912674097300164586457956733364144180118185091410560671676235572419778963587997042158179688649943717596749697203072356825549940233511097415943262430759761121465480207070346562176302329950859805821713667523783827808443400620714204686865351383751123703218433217071486875254189294320620014082128391031227995525856461224349190354972792762743520370008424164103446179276736777084668284199117127124363096036928716244057933481723625261625270490565717556998391847367803246537297000168122647438445779040238727586517346699475568134541786369919471671845933059760705972511058426748066896123944298377112596638493051483088655195742851065418491690097864455080199658088640775251563882776280160672363890980588593441277347611689862188809959291063844385884809625053269377761183490996615581796268985383023073902366809125174235484581201885415119051680396793962742548678098499917146221765285371259901555749449408798864541557783606153807362148005919649356879067585478403397997064398695389805864698934670615951723794294031373758453327125982096065784057186384244467834113613069628707906249013680910391272390902591599419790007919571300623943454983822516255834391793661832182266683185699380183635399305605097399649922274244401127242769892651528419484199561678928476389504925533363981512618369545698739318878489070395681426267421013662693372375627144339638622387362211601045408485960902453959058375543770062102130568820608235100165865738011417022887486570198924086232716452753407949099570193632436940213556713854792843747439588692820631826779976172424549603196263810663746713522037254157446074612179265576838786710233560201968148101382590751078784657634084517567553352030806408276234491413538727263465056761808336730251369883386733644722105036219709197922536220234128208317394871786509583128891563061036909747134595994614763735114724343991003899448838676929329502917675031819371691379469314603080510707214669172700910041305259704921836982502532352642586543812235006299279512859247890430411957056071012162874069353707190730544052673038002729944419416826030449192890045699374771260555657751754255873113903573932556079060696475769108792556550161009718299149883016306839359805709115264132584722451485875285239996327526527288281393998267346746919046078952687101070632446816044403918447863144997669236585811711866272024873790556501188265199624215152357000292381794440618921964345002258932373045662378298860477238739712080238295525583735353067656023542000342135814752684545532421915396847102206721021113632159976766117548402102357384719918046282705486416881401217477489703598424197147415547438825278675315540878836315451111397902256113364118231677953531876831717179972313975860484010817223503024405227689468791077885785797873971826710799018892714680035344892327151212469785210855012154460810898257693063944462601933260916124430442920898345246911691073561272497331747976283276501223523820501519379864090798085509848005864327898948194983805593235438068086148946945585169714787552777147344466362685601151582693680581222301238452424237090217649399907462550307880186834485509079910607327573238165952926431002080599884780955845827532356982597310041851647042334934542844492374339284697919951607571706217887894936422634283716343984834240303215186818382940929430332686640086059053114407010619803014495618434935694374261002809298137523978026528113763021168409203535538147047261282290674856041493576819496580735638326819760874124433259394196233993318481979849666543082594821210843624404201199701951479642208200846089282106450065988153782637475720463822532648411856650735257665670604160171510252859783411352614487503009827202121335708887868362614450461441272793652883522684648609921695479132060607925906169135022758880613783108667356186990338499797216891102645372363948252503924956322851213221115302234932306636043312597011890427067705478996295096949038489130972039864252491886770026404190279106888593946851833214512354787183126112755855338764760527759203191961538450043152276744494039553102342580468404094840738568361973612910509172525632010011384371063330508160194777745514785076135419031603406265393035467358745062535585099161915129587684850519471631058468886435710577021681958889351028934686271157315363286318519995247038361642562998898713306739124972535332993757643613094125502217912209925191571095741609414996186953359012288297934697067728200485310991706412758680148451118432360839091305917156091140321839133768954576200397164072938159590178323213867381313851446651959620715775783922191649825139842916138289022898954349307815080355938192337980390214475849027097753912912530395108775097609328551454105593336377038158272388400028731901805850270643280073069559590512765523384438967632374976722423445290668734630594700220799037630702413977933294815697444310916924343252536827819525099365826292420435634601299031747943215165064715030860415169558592076471181318403206620581286211418401233597768443147934324276744532465946531129396174698811868641453040027517445015784926491671303604627890002031938704584295850800698434052956868155916308569911031715571676739281159853562272151447066109276487593849169791674276363335144537084929906747483825077754599062282331934099868038224497927640155642175454016060373356726612749767726714954845092551039849434693357567810967125313263899822061822423821508850291960208960211892311628282686208835099483440139082093456285939595338668629546055368367167736659847141874739639507698469166072071519405119004505134569703022997319544846160914037718315044348892529929745974604013757405965186235446876228855026385277444867846566123679100131950070979473273780498907120765074280542391875611848913932877122464056600744801482385560333233641394143779211684009815266267988515816875560003441982477918918602212885212676606050413471476736875823834192177348487968246862349513517296832715232815619804046487066203834438132920233363457354956827016306492653387484993663669021738011821514646265389464311881123784146958156154160875741188050634138095717368239171689736952510149719888558402815786597114998408174764768925954653094253806780525453546251708724314130239404073287342621105714603456769608089732516909407831959652130412354567096126949185209263815540163288697711627979831946444331477823215476782597746513537204238025444400683074734614076028313604920723301347108736899085350517971262699858319829045022996711049219896017520662447948188736658138538915001220368848872597904490254546849412760674974209763084394247940557978906421649308766184758803268741226176213224645157708207497631555636629804049403276268319966476562163479989447911015197909585624566425485012613991701375937575540748502612393749285127587823285164525031691026947797398570416808683524081380279161693716763993356975894803963060907135459370476849501599281700679058306171728848538919709879671774525805683458126166159302620130067343268010279513788260444061091007390392125803346539383594737327358121153279731790830239154326072215672311649115254560523284112117000170814546923241521966339185050313890017907154543965359155873884920312182518036301681030558916909587730652515612612314184482082730072079926617593569296859124834265726135954064614467306398227674300015439766628318261171335615262196879043171319376196052648749567486621443517317469383875615566231351631645885525572246988748169944737954606367949606688666041379323268418790518928132053667539935327297978838416906958898866092097218005204023999445279165709387075630510665950073092845719516595467585445419478799330907397527413757737815639691802843913871106500058656676881055215136185106565173712890314391368117299810413185362225115071809122751939305273048988398536995359957790320041901625018487958779984325144897255440905249255657534366853670691851400961399016416686508749280265647289410774151496399125459096621908400047137562158724359096708694085396990579032729209114324449293832275935790640661664401595360547740154631175400732001488115864292054645005652266006785552318406986563365902696056921875036369784858482327251299653197046402967972790833335169500295368975167089166148730418756575588294252076723574634232937997630686289474787870295303742870761257565980662684616988951327007420431286724555872536879174250039809141416381096147163242829521739880544934524780168332791118786863069853252291032413510541256507492204995075670582619491415557392513169984553479173158190589606812008714967321004779355373728590735901847816068457448697183997564143362184356201779800862920746976916417013296566118207064872063222931946942125081522904928439746967438226735570869017965488713220608696525025443734057487866057890882073791202450470256675137890332001356563642230426323601895487040560067217878683907134440176134164231060452505235493027358365840153428777973343734858925321255495945744340803999256196499416353189370443419222844144065946848615147398032217288299566254593603754178554859852468812930158446551864531093201694784090720600514548060831510075078536502581464368584956555959285644949086943308411203862901777797394881588048279000649690947250758416413822009820340804036386174019439845544828462164639178348727446438713569197005549806876068301237994389496840081553154416553872833678826472306786869494702705313904892490862642834111423777854106338576226829645067311109733636265868408664285452306048844860526702644290616190106297274166160103177372375595324511925349975753881067523368402174080625622413159170745013885238351605579739790072970571775159562166389276835292121738516498865982041426603698054861345266879358103722426477166241399701531117024229568066466863750882863513012138110063956869294811980242560290427931444283211635497738140662118255850742156330495690525533101436387523357272755343316005876276497839176149425121988736144078901062087533811570050512410769962644298632765224463362232794881982320074149033540113491175888501303208679144967289110910673099750834952424718916622824734505964703028994868598389248802898027670744135374272449047707410099950479302182552454872508164415277628126541787601436500463735466666869211061879505491757943386920800327905906460930552131025776997260176959078802312974272848432891261138292203391062800353206402234410566502337132545493130800529582947198504364410031876695359990358578071991148791005063055726656687512837806408661935950341262486628233315028906264868572280278058690499691350176463739784243422126374933140209741426881526254871204553807416911499531586253840228887437290543540127115501512673753579706813524201084683206858920708597530837614289213804388998969323965184529925236640802987806054363309193595628707909613169957588182094541563620484490307258819236948160346631143452227175937152744870055134116592734505786794375461760508490459042217281719387016026712160744430898502452183025477302183567160770665756060657554883158585950594579603883711850042790622029467196594201533461830702827812670537504086141149999646225585559334452128194140937769710435655102022038745316344760973647349867925283429560770435499238911214376728878985477124630503499048061197864714039549954408283126660175376595516922194100977405704135687837130388828293501997767463812217020198723294490137582705941294159652708110230421516546099002716708410325648864431318635105563291683973691657488516433028482799458723190776419969045699013336375862886370700677803423134916374942433073130328827613648061737768770791785508649958220603821214068979546461438336571382983315143036464651646992842843692705799222281055902392275520357540690958632817574409185297439963587604731443601785676812157847962224572758552613033339538165672790448446186113162636545717043603850996046333616144325816682216670104228306335380633723119552221979294699041466166678510831927019014446749733821282625799344652773487422509930802873194510018619552960864326348174985353425212064507958198230345476986454537029113066679840559372548097105334264644060975336756478347069803647644119517511273299677691471781970479789246862038878970496785959153078551878571300030281614015717521305215752081166406623354734440239583289774504767874272804935482618724774053140274062839379891908351498404297000423810909029676280674599917979394845492672063657368630134608328456961500872780875089602760292773375015241562018867668402333577260994710286364465071999924776544800582047706426683838662093992991830842569722068491306735785811477328176084604239625405744395241060244656537478360273812530404124328213304632061158642036878898137092971027388522537854451744182212700447487922910494467043361760119786168096393886852042257520113578057767103405198676222769733468980392646682606904709550895847835660889178977874327757917358677569132215433068035502629791815718409024193877969227335556586286979290551038621301060958905453025160403290933604519225480973313180192213617955819895497544611052701006332757337440919118615129609215386879434482980738904183182706645727095170553144222426350900487629739427422631536838346612212042347137700531555879257386073354217262010314775303832282272637702621345995680355142283009825848414477126095768011269205784322311654766144692647399843713383600746586711149221782859770281551922106485749760250678951241877015572941725008785246201621192751820415421713785873949083713898113788311960566794263479417435985380928602656968946201704384698986175718780325490307297864026373736608791573674770485013216973113541281828956436557940319098800610899568961393305901318245834766839375277109032214717714359933633183542017338270205750997835623151404081744497218599694037264371348167966952695109404025697234512624050422177268660603764745239329233911782117692961135559918985263825742346666917302655644225301738326338208577604666081917059502211756604065870652468646472661726146398124478402469641786944695435951918939480120702286081802662481539850146118660737525430545438466975630423628314264889036865203318403125283005031690742049464939971336037644424743000187894765304377669162328183719143742219272186989428050855458009697127834508045811888127297485886678597768254293827009020031004587692522759686438503469541174098996018490184813933332356193570777707541491191587419616138497356376863253061470262545431101631389674027831825437793782148281982800232809128992768479217101684786474852735443168032076807828303416682927237071956310473792190835674301097868981077639158351470272042055901893963749356447737311053726042829245147656410186908779765764738749186073178214749835137307002331865676667644882161631103606708068639130161362844716727993053907990167074546843994780467043598242134842308344885545907001491982518847854410466747827632883421017469677087436628314598230609087924553406930959304426965324027786315877075401898131848780881791444055866306332159318734094657836841999114698950113618794148828698987142856645333827280021664065492299899559375643610796938129029300712249504990389535491552484901637140010975816064778132783558081281571870982261238111794116530793641000278184948434931629765488445817023056561379821327571512119178653066224755189519627696016406824602083814890395361421445480069946216716169114287073573104152611639074722530453007735555565761296374840193964573843307806946302159999595518837538258943089530925614283961402598495702538831470784263152351344914753357573517709445418135853953720650067769454337762588883360186279027617884783755341171229398808760518337758808280939067947168221459956078357707109298459272839521371395022926050567961152336805392148142401323158114609620406850322782977294191982077234409420473312452631767662917321761652445301846441102789412368120190173462126714517686684792611704367521178881484078459007917805648235568178142127355356650543577678348055409597381902052806063452348660377412922838796887479515372323181806718567875670544686680583165169530320340297472836670009278782206804345592248080985516497158873572573821913362561335047742204424384003456934288133286021201546535256438503664611086188714994710999545022905899757558854427980815366205174840887931654390799374328064213719137446629853332835042187576218739416017080800218126881890972169733576992984444113700229907466088135888273932440769315207691351343671264656512022889776872668711916928252268907810091461747404132267500619999797565499601711263134388313534770181209137485211960892185674924384476362476015586918814523861424534255566856319393681257548779403521569892977246696132277468842162779176460828227529158953739900918656625966647587004835430049382130563195032963969446505077906824841476730928814471205150910366713444426384252628393281213455504192460961025836612584445121740538115542372126708024543602705067970158328061943170760197788077570392779914732640033782147070429938663735127668440180541066397876855358416543299771529615460059984550936704652818036506072757574641203968628899584831144466426059215214483523510196678127239349800259231465881666242128211636575666937078193488119357551343936200335274213779212292729762772761010778249739334589660710936758328680133317757895589804296634858470785279051196909945520243766521325686659633534532972757466580080678779677745650743608745709936883239624572823766029002648756032993345477341049466236975468731584099826200303837939181574943783286895995691585728222525000742563489362813909951871786310146640092067399292823023362919422266149600309389340046240010739786015240779088746387916570464619021883029191597385570415234628738769295419898798715606698939356551458995275401946368319702222521503626622338273173293231008123070373880823526768926245169306952657152701548072039166234138317087084365054003611972021431925924582488099758044177267186107284102612415520686768775878409238870823337083479343565795220694594476957434963382409624320950432850615524299353291195226653295850939349074880905838394314029056037769428690696008895553024732671115871808996169901168999451062096726334209444021289589934580960510615639831088357624120825671755194410749112973881019843867808757050755414151688222994555634440017874198088075614473420304001834505782943520328743615581201830928279015565815941410598017041254903728382087760954380956282232155725312440896857937139465212266701870690497085619609761729473182634070972409528869934770829746647964951430293668111566888545184109027597201421616736909157757400467046274699677954213895316543413168051987486147420494324224655953285948808406081383639076328276266661336193986138552337912173867703371549880404685083505638333247373779368023040513547587337828985282400879900986253250442404560493385745607270347428514593069727918055232278991981776737913729293474977829605440629087073845240493255163276623590432585447250944227238652574599119512219801688810587299026131221677782558070717129152362159405661131359663239467751240695106039750997301399567523178640262410020609536634252256717810876352468563755511438348784883490828972175895665823242327220259998382954512952617909852750273464322766648013177753787114801566732130210302426968366670597312583476707660225572076431315409257317052250063805204266994460655684400602163932008493721989984306803219608872823125244745525796715907558254855779763160385279450971976191063574301235720801509072036378577594861785309105826377270831566010760725737552263558431384160288966155945088731051258602384732165533503001214688112963679257933402582446336879443567456907496380131366010552137126190667982039138755398752565993864941408605843022086199959702931476823647898834820493110828964245980219457362069675498062074511487728989601822235434181058139003812479271705885826923215754258040503055884255120529739577330950574906331515138215484011578686965306816689709762663683864703369200007280363008421950388975371081105969657335142594571735146639466492911962708146412034181572081578077662347221972615416599760088230389194330834082219321008810045669905560133926773914118367843631668274848534370014313473126520727974960770741169393868235183116087033141277454054994330154823774377937512177995680734235278487969712281603989518076221269368716115955924511666998057808963394099261334328391888201262054462228277735264967026386437821259145681091516918163983450569979816826725840973432003723591443678545702645620894003902023533068119065354477711067077975666633421343289592333623002515780581272011402440093416053837445956322817643078202944180223658515287480103402682198719455295325832634125070425136846229662879967391052121982968523053351071617197191275839918219315449585834265114307368013640047133716921249533145845180857950515299256934032376146203338044420206221603252488181158032465114876829882323385402839004288567400600565258404461041145623115670640859962798385030908138204797241603119844500800664099483055025892725930051754903580557294553026609493745454882398291623095280101233706262163324887505580331417460655404787964904979989809277293249830988314771514864782175301651418676426484114184891329328442921340015060947379251540558902851974087842762650730285033260713566944938397322343105692784336087780419092838252126414337598057146634171641781188737672896651555825893374150339871127498470935356049520128808922988059959429640087624895123428758707312104172266499907338286087488284286702713630050416362926174090506520653804830456044945689242236059505383149630548608166168932827499316494494195726497534552826497345715014960393191603740211410834984330711230266975264470395153911923807463725928822253741558110214791348939759708909974935372700408260552598007528287200464710147549091105535465914778833339525697468214246248314521080055806646686161486794084972100624511891055589725183907266394493551230445549976593322170720273474385006405605908449310533250223776507455015097711401778514313651146022962478866751589557066648132503267212040117954334670312403603010683540588385461983152981355681185431489181794277776065248498889941679429366208502679236536099116374417609860103165063684160848418714743676160930354027171386598495873705032896633921174594839120619810336682605266801051369936922735848477718067401114646108974380075516299220599225734737141023645242886580462799243322812790901984336047934281193506108639923558714927026609135928289918501624473010538562489757870574314766721364450160164242172248219396660212782228355662358747982621490462704335259249404072844690400655786452880063982029454510464245422954091430783336259662348236766760240702509377795659314869943275001027978284382534187339855669766901920407722447298454477685977639874604969788456323184723587540945219070792751062958493276585540218794465203621251293763842070607981333769372414824666747374282030221386520892269316511336015047248472583974134294393941111553632602146620098493192709704181851043968480881590704896176288253899362476662698156467586679510523304164387709218403422474248846979581848324261664361215031324403987223365354772320134857202939511413167434936792336456055710295770148257182365587144072750684376284973751909426896864112024146915473606200996315633171777769262295065474069941169604206757647611470797803551947019262345493844632769020856444926488043060553518489220537814991726247698090120854005687157205394841606958297438579527568025124070973997911828985561088133045182997270450442870460423576239398883266263705409856527961322801731892497732865498367130853955659723055201472369938948586639410412550141582687229243406087955264827020510906053633817988763528522680289144426764237434709566386406024616195928892123888171234240782742188604045713271469647215072653364101160895446345407007521828311847123877159809795600331233059622407001053352942711782660162080409568723065395283303288792313367166329353685189826152145268734940812245820671398327247951630348262800578397578624513787992553797563828786518334137505451237829334807375673869489789310259585568123030489616201438885540183349618999461477542673069853052229140105152269587840599958270541589032048257597682159018902793697880259316667018805648138376318861771570904696423459154517187230959103660527011274846760820131681914852305527781896382501864848762118239526025974215279842419965516102788095160715862089404932578206089381329264785033310486576301172184580031882249326777742696448593673527168542267504322286420591453125875290544420408685398051137191843895688320932414445790896166237272563021121736082741356089871597457904052006583523161472134376517149116437666252790613412021880906145007492357721872766434663324440064399249491530543984189236859384223478527809711071137943759735795186329747958521733755702811195928322981703497695645714855551595276474458314444431576807527488828757299377850151536245649829243780024836523088361346711709997016249525128748394613410849363134782124715429264553294925942260171296773536511903021171098546232193506908500051534610777200778019089704968342079869584675453308806376619038576971134497663740388995376982950501606793134427955524846986191812402345761616961023100017669783870936956484753916020206463119801475596335200903945479939830394596445449494816938596172982731030399011520520701229826534330918842512566719923907493285203441447714926158121999034121647893207697561661669986766615982144734247781678291337880904787928810473401598670394600055850048223136464682090168264775694890624502951326905201398977905506321187748578522952416666119703351941324923463413897600336339837864888596597798451514458908032758800219811430569008546976990554073819880248362164393679666488176691127987554942838673590800870135486325692701827125254672394091520818770789485817109382939635826143793550619028920517486772221590476089171672370265594510783105637677115587087267210361434543146490569813222042258011698125443985115628689725302182880456113088810377527155840188052542886255641178894663998198969440883124236774534249138253044068093234831807685664244309746791715955314616442056295861436191325266869911163029419914449796766591372120575075631495614307962380608459107021085211287091866622772298640781519003537740846407593504557266350843144610523016372035151992271444955486473946015656611910119792027467556620179482107890474369402019589995109743508966016111795933184632033869425825017075934958292019779741017642712932019193182725129209169696409146426255501094724357898920439028009513487989717073297297821619614849689649470857825555597995116277272863648789029087309760055028590956227862894452079440261182634576154519570050191023499210698297240218137668884750391501408986361818008727576917494409991302293774879615907501078122953414584169280806295059067779567735203208173626201637245527669203991521071209448288170359419906391715078283537158237695606043045242647909213343742263060410035393465246774795679014281755132480287343504365462276645702358939183700058292982365923546511539013356650517965655610270173561262680327369228869238192272300650277441336500479892682483356986970331457137961615174692158525555972860401108475968252243754011517879528132341298463977220588949768023266988080231646886229760022440914041879951452380797976583944472778421260682369345538452728533650623177907071471607146275086187824903593880299759445820785905800184641289975637833478948331006714415367710662370552942576993573561829342636321830331099204755495528206671196284123842084033408814410324458034208023912578541787896701288132718936297436363362716713032810467817193606871348984992758565670067985882639354112114231098557039140185997105321098802436474971979291654388970030108113650401581276452441936573334944354297312112498800120262572725828483112814210997064479378074790162168951604787893082026704135149566638428681062395390975913310223359601960153441987204102116944832741203648816361484611653640438901843744659649143215856207141478046195185662044596539189460743119908633028665835854037411498960024939336189988442144480523702707724841518143871725317718067907126152183268034867604841512315586780364452648742822073509184500808899540359217072551533992652317113736756618770274908005616875193828465635130777247561864867613497742834657805293263297350920806252653677836851023172596267532379804948332844542526139841246762863971242093842023842661548314835397683356732199347388101528088306600873394903181626633664692601898770776814696387178698866438987944639076230510499323604163782530356939368109477193392399559438299658797151801123311635429676851026561924951409102475384266858643497989238813809254863414114105936533542257286565746382876139423960638439372860152690204371903523165500057358577418114205705663144767344580221888092619440512683672299567114008751480412771648588999868375723030041925833191394240714498830041193341718232352736750002839790006604716270088432057043830944777221888728998047646903869977087584710721212130376917494970933383128866792359063456870130579144035484375569123164870193205043796310859027181850264394349155032430956306016414382341045428087968370077833230060304384741945462189717801037629232008202963373015058011479390769800669609467042700117338109145390911166104075227555247236823139252898183889322554842724894050558167931981315010118846132005811995188677639703878248848304339679596442698647457635568478558246945259357828697760667103857204792805471320432315335246280138919944411683375919696849049247539902512373740662930561313933114298218666408973709442044376655886363134720283820670794717792383857061163376414679187862675768445718576947903099706774097198750974555547556419007796876775319647128943744815044220792508185383195445211231667014565944654725423588156266336148324543799273955846546913465211950922518380958560908278431205720395155371194586100135919684435865935401667620505981508245568127869676778814750544326375626581656187114710467910736355003492483897250045262102157638706344739944037720414640941140138262224654643133210874730471434252575800146144027199940971944628563764317536311098936769736771431207966471253747795459903992753652937711570373984128027400008985064076989700234346532016531366978978579206825895099395664326067702600551444203429888123414820058764730993151213357699784556658894859651681015484641565901911416524567125032588965266231484482389013276281174470189570744918883813285617694651536307349045235151563691372093609742682833064354218461318892956839016065735763538399017566996397727986032104675830598072658710655634087565337913975553404861889853896276595398718639751902604847339520167842319564451850109146175298385617764057266911675742281830799267882381139128396188939080113071637559729757413335672135815976339859618772281543792727628454169378693576560913022066428941923387203559052717767094874260676616996762176428706587189222849730820953110663609448467041978067638588453644701522609616413135889368142460203520854270475871056134999066477961571854717201985434461630269959541704833915426341764107976906427201956297501292072568486806264127015208896812052948852570034836121038083816592739978787215101164046233548399207179352312298120774968809336052283967074416669349709009713585025357792625354841203027122023794980672201546313321375094067363702805666105872715236238630377837229215271342151327201855388162017057388852631460471251537654759511859021160378695573884909498346140163470253234552448458110987017607376413988785554845722424287681834668595775077791777510192204429961160231381942345252886102738870817060679324337459218046370085848745851680794855240185276514290345117397541688623334757936959755436108035669158762879495469624343924115827382334972123128530753108923643944135376794849059635303246024685156033003079820679779174855414584318578245413676743270171589555139219340365150520040546322540528010738041049351672196299802301485611399580283070435087472988556061745550677327269511126179673866640695916455795343205548191580392672600688736446388415012905403589181590337098741182676831487421609435954153365134716835196501519892729492403822206208977916256699499399308307970764829834790242854029577691350487705375492434745114867176197853392426900409778760956830995298514907065358562712948648307947119488315887876971641550582902877640452051372576265648036608649774075980618091132274148496673452918850639884412854388841792857063224789626511519250196676957747921045695448102908831915664952805014717919516061345127806715724353829336213874129326906754102576741644719533117976487303891128442003275267648403152438064158793077533085183269636240341242933687916832539250962906343376687419593076480993091271078162453896686815336119092359658084752673324018541132669815047444632274576533145922297699664762331211203967608518641300104683349188209509930120711037783929750124081020019010514052591217824237904052537959031819126264584221036242858949110128459964480940330521122485643665695723154019083563559963324715109715729074977961843419255370451105565043691011337790153269439950309982661043365495261799574592167242830699709312568856297550112536517922520494011899736771595251005519113328284958229703412282111051595335855707149395480252186094160270411352746977055061237679729746180793630239323933233980261037090039559914278567479516897094600009645817478977305801133795160564371016568242510291384149245098586736445634981535926368604553730097119588520924279226356261129704311618089645698569359496341495231807408762169829426356266677804820014751522767433465223208163232050421515940653866272293477213457120809251173950334212106183471363606375966221409706379908767103139848530997885537160014313628641235228761800961101985547512303795293096037316038559034290093538078907982207337009846119932702434025178828585024712326569104482074677261289295037306961210603099724541091502210643022046186674176069453603492719372807529602798851030165434922523911449736978685227227887929302757451192000665762345535559972747733589702446370203557231276040099494500692975635161559167464118078502289055067492136998504363573241031141024974648244392746342229495315074394138044645941614642944727268028283564837894404672293409795991262473012476118359810780619385555062770519601239315045895532281883878851298649611567690269917479688934534117294043240920980320552383519878180257340787969355208232616059191199305550134745657190675916033102969847392374674225538162078386449870168428456146038760928513106578931974888630583319963812436520081809022672995573528779067913380441267663281763358367764421340225708394576443948992795057920113135436780980887551082913352258763518464766627688378325538963328738499750918470997587638962850625398575961502031316953450215960105279824872637968433395656327960272264394715296871215016911358865415943024716753033028919752850225913467041906573894068817793373040261035580039098324402541199147615303716157038344914389767065719333151221889260566518399342387651752862729840304194178817959497452688355317959561607847585608871970005339493487518277366457304755424723352364765600478578713799833134154457248972948700852417059370232764654924211794522404799448278608861888936532785839212706904817604979555535027899982689697208361581341905052594891550608045900104102093567684399465646109271110019483281971101031307954135818376354408784877263753865066793883336423543239633499176582854362613078744891124581385609922989205161813968063491972420082411522501105819366012476238903566824769357017760057843675891473464508709533686118475236716341127975258216117569893087246118026738712674385377329332944167575435414585570162441876783603298786317881813086260622461036710680333883611626711514674059880024689783290434933757005985019742069724540160302909772879256889640736065082998789805301016865395977898753011275760174572574403658511819786015568674119990148936371692122361845547794526622200008928908341208898651704447142021975482693592027673681367589416501579387669656401821536533845439998615699078750824737038888199901841132642264937101629105094528664020195515527749077578178619456018336636715790848844991519090294843636884105779408733631655783301397636290260051363348874732665755235863551138672469348063359680433188190274701381943940265497482819880350599669142327745721414512067963728332703289956541033004814129834481994802587814735706551507396671387122180031162672182631989339254259219729854104788786630586790879245762060295064784519151292223499011986518293100476114387765421901229999502182095121014556203725599114767592400074689238022426138691068373819211989197359290523413041251475770455168375295415286982674222405220374434381837493189118305574880118629990874231150056962472364871818179086674752558214990260596300363365404525859433147054412348913709847933614148372948976078161968948285246286777287168440321823647928987473327921424080068563272524058724907621517545539113377889248482329078753568141727107197674014505250621538514746582020586043347101903276184133421932605948733460828726129263861897284798719185197479674569836049694555839480063687642665112717372196422027277751222315104543682601529896159879358610799256378152140569514282130672848087612437099082854609568339771625191642932239667667646841845943495520037346283606051068125620980506539572984563532179432250256531769386432024612810550350552327078153761647060342176759239476005734451457424701269911185800962846225626225477611167450054957658941325824633672929025714547485871881078659400458770572275408358410851010342212332935053336109233146844781243892742197862816792008946140955219778724433575221072243963097752271365018857473884127390021922380548092172642681574029291487105680026347705931115471901555313543390577228751694391550000819755920461120219653152103906750669268257825205959119239703797779789081142554067543342935593147431577788627589452336563800460064304437919377020037169166619860480538746017568085124917412579766660084048333246911038675494309727904758300298642156566217186390015170358558270584128241108667357307698528680657993389549266674838538927132259740505430745875193400541273087523682147935493407799858452568321413806600109800505647360863785363315597529595160971465592060510463305803786769253937444197692532392663545181872748691368169739010509804999895988365625162330880776606814232721842834502539446972453782390254149186541406363694382390749763472014749809218040651126611656360860410329128692978069025820975366121866943255154435915635262599205635572853653665734780949201712566065319605127485703344272845042677862973642449210909012210587838198407455645216891210704163321893930488283353027794336708847307126458073540391317275803601539404899085411025028222609763829579002691647092393239977204335914273930087389510344792214912605422633641153943523702564320963020311990033174349347371549251704560783616795080185785716901935033415206713203634006398381164685748718084193615019770716489798290880494263122300828948065475366987894980105852632319971476985319432554686354950716791742073406809646473955217362101644313738026436717134193715437783627582066956462079570069442255774414118580599257502248468103852423305084012252315647177781264546540249878310562171419999205207008824023463012033335539555114638468625092020485215655744009578171744567480122520187442834703697940789269290228877020364001207677431360198430820948232188295021299702350436965990088738409468571071076866059557473410811606459888034398276365430977686286670777248196971790313206953780071781880020080960241452587922215564647803743110153924080563781457645005515912017087277421596207352311800058386658401460673252804551310065504969236510011753857707206934777244757662698747624608144936899856815800277394905915246223265125825777809801205858808051589329784556780870944939020263899071734613311284532636444797929186350031105380119262831758418660065192015709358691742597245543445275661296845585057177768620101635105408574719784126532646056474322325432983672474426146654109067246000356507290362758977255943788040415414374769201797607705517457968975166702373487625453563292955751489045234041071942541683819154897282185774803666496604471281310797557126379737976643235080328687059504106329802475593760205084504293549252117970809592544176096578192219378460345451328484156366219737155095602982831316481691718897544251381652593435068337591024077190144425912325099263845334525854196385726229956747395074460608894363290215823206548026356098636820498518755621440059319623078435084598245868117205219248904899709777299922652535828900629082281529393943680709946208391601145036620258233174501626692036386195348630267599756886275849333849314961886260862401847490808933710024539857673247892689106039937214905721402228927275013380637547014655024512887956204614460368873248250133168295265077785198002770651133266046598599003113324133346456662695724047057237319494015580043424150171454872424763906261529497746539698977411656938173888662570531351007793057974044979184530866135119867577190001087852161602515237853716733132131520591990227997644851873524190941361174882852070165967681011516364902603023320678604240151805363765143438459958805117980791814441931899372167970046343327696339398600968420343350596495807918446320932458265230826036220244702844932258401692948539891302712811567244183782610270492742716505648107754422493758149666516553750565822106187546361919659498068280723301319855392663677367444949995689991121672690176820648950085748989446211372574913408834216301286488184046766089569987817033446915949648906941613545096639427913315502510659259140087955234336488789522442627665308917821079160978134080466933390284678929702655610083596559147460422032678716178411055419477357750577995272100656275104059926685885304560827241915678767974492494586654476026034847405991744265159531590850932523958225738540091702156568116730011537305522671412383083531685345199917009492501431309259660421237055993815662324076656913736568474682268291767410140368267513103204256907934578937610778311817648894994403157790156057179829072199083500271305260906878768803941427510346417949107282225458377861504368204416449226043992012015386855266405703088636967545777148835812783518449231147464884181881188303755815196474430068023720660894679620876938436818917436059125753859393424434478119170988843452569392253750730240674423675719289896052365194272148801366241278725241840074402585926376189536675467666587461370340070012511777296657468045821730306060922222226708648509358677901292519074528342740999922208680658920379778802963429467784084360135956008093399751985539494178184169588563576673386054679762190361306794451994597361765763241113793389327802788970044070552145959032920321835413187554998169854260891152771120190960159971253017799224939662514941939645629584064629963504942395843424757034601483620740916938773780643662583658335596869788442473400567871917607808173023133614455151602001247391712475555284298409829518610325695738805417214038101344884468680213556798824566818945500616374270308144480189485224373074075773354217307092801732056091107112441509813957309474511993846663553500468276499846737473986460009422487815829139739302756226459847864995538065383175260599253417311213084236065879051696715045647256848138927601675018432579268973085436626395813825575883319183775797460897866108446260460731873610847041685985035905904542923178583890661109051641571079821738330086508077839225450097671419146143421223995825505556175512867377941271874063897159675138573156048720525191103462207235038443100881724216053221121423377246600647479209655241445046912900652080276645616890227259878516314914033471538261087491769619711710549000850229499966089787398927451890955285479980294503818511523107198702491441688470570272075594362064699872559887936914613612235637989151443397683918594534911877859590593506589647234001787286717745348267655447820364160215305122679156631003184443806538539763420780129755125242514927378822629916386888309708512769774834105090424447514005957176274001496627714205335793404232432867429034328913072994202365172060487889936755979466232205301770916551260932830399391885016671616804191520569943140888112237624045872908867410153073178642617009315348556322671831221927067753130266617533085318989606817538782240342076256600876690108443487278734284235076061122056894455070621953638534976351347559486882802952436115678789250712444125290937056093722829495327915130572063014836806715840552819728504488416772130816074133517924230114325236039551442870032173611286535392855253813225620322063541934489309644557473160129742038278571339796002536486614910448889169802654186188738007113285747454109336112809840709576935331186841761790235973384020009154600349006555432292123205481508618477938681605418296760239522532479917734164499571911759719827453136775754192523187100248313746255700071586986474729937380906116198003195768450509426879189081089699816249932398375014539966686748048976724225760479354518314158725240734238250901345906484111119929720705809105391449674690057701370902476654870977598003322443220488768065043708574758206198076262033667652939390692132436301626872242147290092496018402561855049735326425239414360766591983828213300467958556258397605137414621198968434468212921800476604126397434849542899828091919385083201598420266590835079587187038830287131422352869360630906018482415081124587941060395911643694847428271582236382388849625294187643079570548111376434205774966162413345903618390347036890205168509449577220953705755441943636957270818073273661224689219672545575098938453544748728575427050263420399799266407958842672184232292869085709149299142741416239266067747565036432844598197674437675761916268292363457360075567487469465762582662642998294853864931208875360506044281535629019788328354093391831860658608712424666887827924784552829329886878382953471350657892037169076231556252847524314052645585452613840094857653115347644541191053329337574156369278793336375369737428293032404787569578385748377858378255215937240589325689924208129720131693278879755803681540527243871671260376325318054852903170980415767123960413222781674825785193853231623978754549115799968505500871817519560449779025163436663256491224357596257016424267860660045912090581719975717302739311038651657013408465369869501359736967027887936025403287800825925729671243783323122359312626355501810615993055134147649738179964718569230969148092726078003694700268838097407599545745122893085064486517819288441369031606470467785583119497979520944103632030359669026067942881998499295183648439197941227129800858152237460706237188779748912950766781433360130724443441856396595063349083770187044212911604438713686809813252623413184866480736457711054660471992770128546170588399015682685216715848812991137719972645558347388537896937855566667367981871083920072120778907203455674940427281061469337018216393232579915795797118219423307168522734617456020588285569935563243044830829249037294337962513569620831136559433427366644313156011983916181240818527844498602521235193300434862215924063207848972364501211608321202882122445238501609129966561481001776137804899904931197569267234769063084952899911816368140999296552762015980568821378119404072855847873628999179489563399290987591177510570786744068302156945668623866802128659074204701936693067942343674111415373775168939933025981533667179149130347863186804090879598926216476463283020207276174017444695202300516784690678120997235933365932654008388301259240338940229484056754952524738460982959659825906711229899308959142840342466619241433107308935488511944141373819784850645191261851481174632242886138337632854694018443430853054325326147766830515253195421881982114500722833045290224446385391951809505372246555309989453568276628549620682503382136086734140204383744933306427417917355055122042100275909136004744351474699174331734511983345979802109073598175940917019372476765454528098917587594915812537508040607045408364529081459765746596217814405128888171233976749051848959884366421663870647056000102091993176207636087881819610758631694816963663958356898634752170975997969684041354093313676834447299027141066472209224506903630990928239904006701187232903374918454683296182237615129210707754401740880539737591128641502986398636386985419179213382140326561798457827410496629740677628034605942724258626612785668111097506252397495484587556419742349856303931957699832252550658461934583072204651489447735893401817997983996707348003724043987148719781292825775801790268286655698860108170154266636591491573764348855529781193572772017740862114611351660532952509936205348811656042744765617014437540505292042785399408368658849235489203328085648485012177032991562902077090316658739381491616193219385025871633162381011846239997696881355806671846859319162144122385499690536863073658140671295481398729110887040040594995402193387564958749611084997179215051862874518930998612581625991433541420058276287889041183861229438466791047189814989729438659597093591071499158991819606582074005012622277322760116159403314501858347332373537545336383660416588869818284039256188857512509460802630243935616913139332765799246217025434500069136720310649441692618672081257522691875947891438088378927052722111451551314764684318506978723541456754557673327690692490399105810636768840923883260505444174789312113472763011860448283069584245066656228938185573386948066834102229446277863721929205433221875081812555172800521382422830604132299007243255678516797581136207822344480429300012084359188535748861536426712186687067759501261184325045502217045501017822975733253752189399098205380730526309887133553746166780596903494190509874218584188974836098523111362554146621545710565033253767510469604330753142899633627252054934828093910656571654824707666269558338014079890651612537055403261647072732216223413173250166899207979588148464903092884135070194274437930907112025232708868882602234468462329211671347070538663705748579350540603200538377977894355542214694801666757128974025306379576955786701016944339077653846148999331148014181609824029449443087843890485941906235135810585121117161816127137342947610990312263176649102409133865350513211778452337010816540047914114369564787671473093434452254170049016478871749057796987017689912662236902061783891409671750380017595441440401304441592936823375504893607024101261997161172504177583688018904868096648408440470406239259230230794650722322901983978294348474090656735945328812123347859757132537264165132298079278178166878524100842727570928687907675364854686082507417918942204647739796019047193132425938625640199970493574519881704137930238228500374209859646668395593816485649915509265217841990599405243034758714961515447770153758343728770117331392243881205100911868931818105499136831018267469022802587619425970460724999234069631455387516093585431077024509599043565074502101843787904826913806148112993543845784112725246196186528504171819538003621510217080033976890627358764689425757984133331779030328825273245272120130908882927125146868505256910509291732617298526314715577624361382838197310484429355111176727357264735484425595158424111008540553891864860828729283073773399542523973592228392073450987950921531564422231813093624469920390274010708646027530516382279823011039294677775021440330006972759757242246869529792702279719677584790082660411929195802208788153852878407345720467028803999163080531298096111677402757314506717845243834573269070030215124384346791290323624648596664196241509086767776472861722410504836304988587738028045278666143943671566228088221832258154705683136286735518373535531501022930126767722638028386000330806205800644123878209429816099841037551335531837262390184070262856630147832714457418731881553559880334162912162264687455148269203887174353381383547510647140700056677306979710798467202661226991042678671420028830097929067704161904904511878160720663513787831143541376231811822524937460381635506405366216738415671297871677925375491687716277154964614983851557335134030698966174816615007831884675771050338499407034102011388440252060271259481758587058112767574391357828404183052035304952717498075832186592240465254109485486962777585112774696598848336840635466432280045817841606457801836625802558731365620929792303607986768865929502164701240722084561387955343493093077668724292182786719125122360610989158141611755110725767832612958809743804669728849141619698145856345165520871574200708424059246970462992191843985232999116720743158102069170134813773062049900773054078311967941564913296880021492925689745124273547685824014189710269238469989259723378434228488527770601947446674501649194635513639258173238028198359837268359459279930369970517295069311424050888791699898162907831750087034217911419409542635997699536972796473176258168041355832766174532350819481514280342906397095019915005014912034871947453250711048219534447982658878472910401780559518074318673945620860302896951279893159708319501257378560474787996762132262856220099558691162510794373409750958186938465080210423233496868299088312489657901962274263249332238475152615303916433002608420892847439656871438054108534552297389427849348037027898638917286623653085233891736518363056051028025848948885414348674567595922826694494402389389542481944259008527967296497334515744715260268124160975091117168554777713723673159798847870510282596995775125078642681258047278910283958638410749016802156208471305745698871471746400641414204443854432120360328594300492011783414646703861623832040165991549986626858179718909165200650393311599737017139427530304615214826213075278343725052113260302994430663684944630204224777762018518669153150530366637111085949453920129107965271728192581602429017775424063900004030250803749629450733545543275003366831827005312737203681076684655141369354656229782003495799532146715697111192382716646155501352298043752809424082082923703307985242245988657994080956791524112068930740206331841650609834604702055024580688822232454160423309700226352441813525300117844634735935499768177743294818320097113402962712086768360006542938561994145728729120440389701080738911562706135869957083429134486802502740964187175257353030077407066995313342460427568361964285079353747045176844558830665970629817914709030720556929921951457003043586067024198555644438087957149048938237027532645932479667263084801950014595513973581748017579935485813568421466534655254546856896709114033052194695306582144207067199818350053006292328700727738772517399655294173796182770865908476213765955128092657864204296557272603844814102196409549707088162251910676683527474849197285880534462111411044533429828547073402373184662081443656260382398740397570099769343273682105090894849411102395764964080442293285067341257524730994589035954364964562948261292646464307993788170107318143791112967672821831005180181768225005246202676925567264702822435821996349339592330166594354034934336755197620949171138990475684492158744690065274466062388201016860755131555727177504754217199110575045174122313769136479409310285491339269420433268708600577251581805082666926244618705796514541090610246485318872956070829190238631230592261320470988749075173916901553605586657734299449570048052931960637463745664601921281524654887812967512431456619700639076880779126270222603267760061975055446516386687728119373936154659780077032925998723667887493019164141665283664129222336208914232146394865201751443288097295557162128026673372249589789201839406132886626902922652723343993694818609775114760001680100462831904282499911173078405859745494096079035439137419014708453406147854441984783313957174425352184344680101077719992663256411994992258313431905718307811428031290136924915976579701065939996523529351677613050629057735935391312660902932613758226642406764562476441847492219766094808613784092022322178869619662871406760422200403281436692815747193055513718721822071174785364374732667495425472779515657025544308196214452478108485068034653300125427365469775304442443981771195464952233387036070280887192062842814782932601381503913902727840784176274095376053653039038288185357424916715989506590071042106083740593280539244775599900871772697591297215934108329086755575305041911596428477905120514247544204098181521352757831558683254086587746453923724744574048838494328440018406536961733323095583240680143299555204889500401057725650837926251974065578770374394196817737063451362358752391262244254868480921633051978653876072655274519901658300497060397893769283125128888430614546151108122959071509449898448605387781681631564036706554028743587042533314940887535335106168234759165702107734803381484767432909181860854754185641539598706909772289707731250869841267956054860615560401534192017178070283178139197290344571862650049408121062313345650698750285723215683591439337386387010250720465961282317338180266633629763810314872930269010230880546248620708332910227312084887505846496860317500220384852144909373529810817256999878284354516032928454899476431823823147545899475723121588646757068055516160615169585103249714859328310327743315523734277797012841923806457090267234389240402594324132758984884036049251942584400684867221456507036970406484655434157895148715099792819871775784258256100905499661724984806427529316846957225355381194285983093811286021982540540473872255080158559470587872797493508056109725693936859382701738426765823557138234865127294130884990313708870802418401070537806086392065658712476732004069069055648160279656538681549294588545995949419165071540801733416263921505743987124941220222305875831365043535462928586151163379459620222213816345981177402662261109010378842285545314638006374447413420524295217385876115878431636559049059131591035084656780031965780760413769567369691563009387152280371193378404127473972279370280359386754261078195044840333805598200861236545445315867981213401978739522528565042265784423760629879680230931157958166778004147396947790770045614663434998345825197509159757939375064879163772879862980030820178267749803611856057807042628575402030171073457633446365422725363929623376571610588773076445909141168493293075054111608847084701250547017275288861664061061191743470597815286569936377250281554920199099502179084925019243818259286623983938183209968325514953252534263895104065601839222056465460501543174818013211115897314633435979918952198704568694198671871285861091842336680677045020376446279339173246950280490119304813507633736597860076229666123741269404608056123934635383258746372000040963610259682565167715451758522841731190624276402898320714636115592007967808145004798922982794235979811247363272476473474919730572413550232541682847572363769126002216494642891328399043852132838047747069669046722618265838853882836124330411478919442395773112986674692636074557810834308816948750114533795629005050394295974044737833965120447225209388763628347083504473890838489010245551593555318347073084420834633886206705216690524040329128176890231352410129029295340140780286583592360463380014894144986584463940023939398897991410284538333804235859451244719974724832715351051019699793075902224951261737710836995080112882831960901945984702075002977889755388969952055956925946420221984116243556742483096331868167753739835816141178311804066155404052141331654417345265965626180036645817677850320144054620373600060581707498912322574088721062548157805769926574816356011764662657615265119054387561474759364169345553005229886735178288281101373243708887300832466197246283759082485541322223564537396917778195645265442371322655252651558267844890476624785494662296124652802108992584315534587801441570490212442850183843845264777147430955442664736409266697639635610879361418588376641689787548538388932864240086432582550342046398360477705215258100291460807295141465886764765278755778756514357452487246694861558544435164660541751969583388734845185820283531444371729779133677597170423219679102865850987837631879446918711547819448331594432125870305217835861126185204110726344599585240529426408149804244455985466883348317349566135614212250811983347474539401349370596755900761099646149895527705898133685062643643422403450702122331807911317820178459917813088944048237206103039183645316587486428858305332317471717172750350614826821927310770524195915749005191379891700505679821020958230934754238433932986731690317955691029478083306134939407560733723897188244122786324509979415571445768809634796031334156650190239934640906972056099599598695450140892169203795887212439679338545519211343038410969690785295788605415038852913933147572560916368148871882647797567865736322001945258992577653987615121954951632141303216125106264915279036899826105827550961907402428897613831224921067208228403802001526946661769258928102594520471372809788794076962839175218443700813134405173088695020080176476417588805144866684559787985912696140820940224637698631538070630289458443838158125208447782259022092869828116997957405586366779194646110467262707558986436215113894963678702684986060937875315034511077479246402169008075611492423378556708925224215417472307879940900791021550004421792379708724913231951409378394809405287790066979959143117131837894965801931395920702701637613851879309274258041724439126446029615577466394261381721178284951644292730937643119043361095523297583466754812777783786906922026524970702428077172451367792826732381218876230232416365415567056532236185619042923674381774603820074302122019140041643583756413145407811549493954559442823197494526092522576211748254788273030992565456479383470348722767288810806673484242656952179636189161077544389253878845233650047363430196196998840875583051521405552947297451546718889924161666595249153295145032134384682788677776588689501436675906667325286361343422181859096843915387423473697097415958187065970577603547866509666078672859730089050786253342180620780911055222269691412076242017909457600323974905485539604991984312542492692819822855504917236904031866398112067064175291227256556593699633484226113409034799357129365695002975553188346124726756878015906994422877378698678182384390121726480669475244804973630628226054765341419610894216760548213796087571219174928839354797334195508981560326761302487861300827967067042185578646105133383543754123795014728527887500772662066420600100723874168353781491901380946628000920782329956811992075218872932271613199176066746941377004230915584176802494682273500835462629287080621268882762796978973493623857385306843490718697473520850136122350476564313327914002134469598168577494845357270104505916844977644411849911416408683621667183754108492684772713533013940353399879462463938945809476871254492513680213709521303891910164937290024265782029213556479600590725378210394402692358201282894094955157557691249078829750626604638781242972014928112044156372333698765024852450176249308999187532485813283623722620549736299030906716701802304056895369465153620314750923262960544024204972022595197531458052701691092579269161032370382173499988678059111511248739599629494065128386898129142064288302834037460696612925084174799801253727556013332805188227462601101345638135569249063809204179277470538633790166962337050404982801932798718876633464632289312109373462280010530243616821495556311142906786898386620991223569349906827036568374592582720489387767449177632838565647914772251688085918304429150908589730463032578588128838329974016153406844005742307647012184240617970488868392189460310940069040087123723703542411260623937607087056382618018518366840634836173017150870695802229100682193643696577035548931175598297414749485166427251861921106127223512597315944087385694038378390981073266143272376087977718137288035959967280694319933350100877884286489977348335301739173935281684839471812799036959735109740688298510525790097329490441371820396377152152255433762186901841243798563350433976276377917480022324226472750695778552713417322884120860677683383273302553078729178160204269800145402811590254527265988041946052259450423544113928954171641618582271283697310935038092917136960019029050755055910366189466814009701111077853014689323340460611032172434362353263283927257113917707953152827192971082801094528761724848767859068866077982476054098274430514244232255207198796281474845630059343878129163992108268455337478470392467586846001769334923435258665241291217629569472127711194577924749419826038456132805687357812183298829512932384552227568054886723811476823315739557582266926429392398902385608254186016401762382337828707212068487751269876553758289643125982934761797037931039387304261203796777081300082046738604046139521164531371319644710891946505221554807901173312753507975800496658665046106476469855524814901998719687605691401046580557822120348863340352550660969079354860378178713711396853291981570717999482018194354261144156349199457723045535175702982263585940235056295089369213820299616604640191328733795660749392648604801058132482407302707169136170270817708338604009431714665488719830092842475030911004207057427225969102773215802389277270075752135546079273642871132079911230600576485608686507926252981182080557887504245748353625222609908130323302619166518539112127319777917733694945313636570810115451519209770252620264496119198408771472964573280190693123077610159794087570061466904107898419963637690383752987848198821075396018596111330064457143211057027916883854062061846024441354851014519874165114746025284448771456509790360311599425353433827012985056780070327802852982561112286152069276505114991341476418730921374468147895574496142186035106380495592669230183411114258565589945336364328159887791403069674740497840230831385593712577774423771786989880562937717037615025242799993258874152292004440530342787269307103227574104761837731653204125271809257721841093548198537622474392917711455194350000889804822470932027281335031639746762132696619242548540008252080677739835322360399679230578672200502118379665030922583697748548311390495625296653269266715306908943496216127258396621470325179032118002858251064728041126166688816062813887117443169440005731456736685703925404681482280091908525118423869013419414889978962516165004337756210697554057270001897594340553206048477208538066872211899778331880748386024840036303649303107194363635421161421246309768749325675958019628763518957372084920203722197807426088611670190314190326739071033372159668071676308886441971365803058232560954799040081917124084241889899173570738700155749220233030729782112540783886828360265896334000325046698015718320938052875614965004797992631101916780982114239929858910598299679848696265265125190908314323555407568575691434168201036657435744108426140401412869868155832475760407184530203271134018592411361681333455852190278464646671385136317511321252371174513821694648439169143003398568912996586358896235201004713461896345328567294373379940542390019582627513799518720179257476826323858587396367778274669227420263104883740402988537802734144934394628924716137556921614265269473310160742782182645613996527356752248875530748401453775773221038753941261872423034864048075985553572514100246492975063912903433891064216733498803162820122357945579359498884717911925483126672646890096243862250899186853250721536034616062413599133244724205496130426834464896377718370682615302304996782699754413334036229575531417802154376491868333264724906492287925559578249718897006665115649903347344958450595732000631822713786998233483901937852522979798790866647595650899950467031088543128443991948090910219617052050777447297476889463775683139425288584111483417776170692425973684900464016762931159848552129103250422773651435271154117030346832703031378616019742745791618237296805819660727941026356321572267927214926445627493283173951946793244940427400080151944474079039466985634046129030874537208142835567001092756608721693924000206799815184307261473674356333902339970179426034053509763211305036286486672752860532996896463024456498098174247165246298590988153577376294803943861251157460199433042503035589100131970653574232994311494354113757733128327182905540469796672059553114430380679988129996790769443065018307537926376792944993180305412073796281466463260074727294313451271567238290634596627577418626230731440922099532172083989149707998132118114361545890838010946722781079786613928048273182566255197485814265998924405222909101576807401638452342727399101130907980812650191957123478778110187510254301876348173428169163064912589395212738517922949174439887960703069459383307426314915239393333893066022034304805125343782853907542976067893064616888211998522033218863829902213192210075845112586053725278299593464171916669769030841124753871058002359777507434191150936267067734381785466335035262749888994216678546923632788536807783593599474383278361937853120685609870669625448046317000898055282735084683665802634519602946102013709144108659101325805650760774072598895265936309923417979996152602906895577964924721863828992293373792642936347863238665704524127905674759589617378421906962842047384054336623706974203343728808969809046693556063646913973881689318912869986095196431759558983592053629114377646310906044474444582021727164294066619238049485465786972994720657055923710809218385379681892417408671884109298955979067019026302301576767152078123308341008424537717924948987007334748598753099635223601298595339701502857672684859559249514013733274798489759947211664041961951841397822356295069880800509007021901502518906385689822587109143699512235020845754908423339214097018115658763034331002879796898917003706019203794325303266375608521154612817395566836457090012307283700580799508349939506754145773349302290059243547991254422567089787432997837691199476413369768776736819087973483310670756022037279328793234353282364515464581995411410744348823346523827121140575685624287343588652586247732155341095289413986367716930608601022410713571994947399563610691566892622165381934601836892916834608923853308698063631532120394467539128892751871776355053648210629391327817600257654352310697742382131191292048635909812086630523281559056417737418880483675994251412754383079155082094628491577769701505477303148490479858714086291355348127951148344584856421417345209240356768838047048325546121064042865647732751555432126404190836739083452693052970200767153950514385531656481010839755190943836986775653976323759288297922254716738864510733514973375621009979351967910048210969165969477650674078039521957436502185702686904553312095525439607094101571657386689603521891557961519605984324373555271860898254143011599989142801115596405970168288145279002199799088885320339672381862155115064516489829974242603089069905110594141628254496999674046782169473362362645126359242060053671273547183523592234705100740351978637879520364242540615915080905364205726232915811934289089056687020621537237643969774496968216140703318219003039982080826586887467447619888376490314928423780515658506958829661964017986927319345107039388493158893253361039899773323882726520285340422506981003487054824196468752312390295508633323539700127376138724571404637772060811107712797525919954383362416636385005262645521608343787806405233725210804692539626142211461189632028103071487404026510965104880139067730022322873302577439250481043758867558954195898044045663036246699503132873337398666777575725829825588862551697036397516283404800314172420977549077494982514140711529764486109418530660977272250946642393305925092581258611194417222398310624731623158941259283073148414044300426810991635113563197583727060073315227840489491530504028595658777039753505967873406696853504744682348168501048315168287678139665680584543150605242934745256966147090363239238596934872620650729092141287506924645702356483691004891447598472189676529435279550814761721244312123956564344828725063604829200741396051904954500522316673673186371306913556306663306540632121753795706534849306763745465619701914393720438539041328241846065002250002282514098654521173231087202781098799197509100242225611588139517412817385144308974429895106223639652590283102453362611194100825636388268803028977151941961088403536723040407272506571219488756506618931411980534735516774920485867535702692331165783107601833420288748243301358366792519226842324607673249557126251957648654990363651538310803726392680514987112410539356868860088555948401693281892590231527489349474383861666785459717540132042471128614077814423008091345195595996333148925947908440389700109984310797750804946853235050988609514930315475304191150121339679977776238009294993435476123856780245198311703439899395543581103474688396401685949842804366589516101491098958715798819666662315063172422428207453872148109399114827757763648287510747637767650034816393560989482494216467303746720318496149211821449677634634722223725789707390538664585069419353391609414631815174467064712983173991605011572881711130710962533894704938046605040770106202402072910158262553199506981446305501657413682964716347143768455629443464615930672778319277016704011034657051449143398857576273729858294473773198525742564119651878104947655123517530469711719147379205350420963512810392940076006349001614868269701500100587177249236415551581699106498508036388681546958123488954064729636696709132142719024962692650335744884737376177314096311583591937577512027480990123035977335433846037746958839423012286448967899729641841390694768592725301171802273946976018575969494045250940493147522517319306358981426572664440110590100220891711994321806498463430167580950934234591924176971689830507948377462374641897750556762387698106694604070247721064990244901218069883747488227521048837730316296994537621644607509716210789729497084726867972245366284516824896563373468423652409037528019566702658787473085433302974649266460576006008508260581895525353658336728239041493738393861787726628212850602548970739338190412219465935714335498072786180057830246720386715473637605804063417211465348402125397203956107164709460886987808195978288268673004229761257267823050715066777592142630837341784744918112922640907735469732468545150037294367500816803691631931612218576144940408691573493464747506670479831952312765168873023734173508591665252287201787812775064701161982006886430127377146535608772407023239071529669902425835204735718503645887488440647938859504704848129919447031941904269723895081123959483202781735009932284913969621430539273533102664804422004407176933537005809706265106767845570814833635064213124038996096960001067349872900738108198314486687824212968430159509510168280241904250314355120015782406181732335241910460301304870183854675972167873900204850306707283714041213177018782426210823074670913167408228021600626005260172651382873034174605097256198622188054778987019680069118006471544346972413283288630800468463255647719358470515990817058834909394475785325232086042375335029299753081935728568975955674704430005702318230419586355603133149172053926572221451584236189851116214469367440535984674243641252480391891840992421939396568473170889104418017825484181555239304683264531900083090890201113126969980422677156402886983820336048121416189470714069749568074136204172476563003568701842312641093109599189258183277807964282523995501464544201277524190461584951526600815250813110531091664674538894614149408792875015565959100628518536653899635737254353215083726753930846165556508807964255392901473341737209335640405054709435300260219479387151076388022002868943765123528222200161685383419100232522574485049078372980557877841323535363794239188580459108587394912427497972582879157160517865383088622016921109968210142280046375674493289585324016944541602669205915040229988741616754476333083324765657902653130566669949480041953776411352642595449530330614151089471387681336811693238754044427440311948793214452264277180364026751128326577604830758268866615204354143959433078533650577035009094787277681387376219107246995063766358300599616116994480562652241308643945319609471038749280171075912461986722570047393748450907038848070473934192521339407211909334590491571494344378428664774956544879417917303322134901738318875097087882925835184359428429687767342805575245136745844339257307241578023263379991325963818529474139153178686397265895136223715204914668106267287014051874047455392628408568520280417350277056586617264574840814205914207162353779295328569482433545428768053809683027027986817860962415559908377803967762824265349695270853704819554756977267787128145583819041917914546650752244330892619082935066060680465655591759391670561253667081942195908361300346562351573259589918653459492963443001705146813322558164822125767768200061648288481607682851546811616638791849857374670449786102659992277386412446551672818554539130196252916961253206843983221269138023191110802965570365386395014324128742270376793344718143413860279342554944466351368218691425298945570982042333664670244434384457350705381958705690119766036268461767542037292859165473367923626791133561296628241183512883975646122177036016681514038747170232730968413617336767763120805135839167325147844023933742030927967762239738105397568867672305680997664736475300969599754661830841057568526485514050881457400232828652686623577269406961242308275858086226824793043296746308980642683671996155060126351770808142567115124431251249431123740924173878811118109164774802818976702700227937639166278115269330019880753574603585019060919730396960111512075351830395210479655882972591178297835762211348374723014785916967294496537730083672065691954219217260683288883257369871308106676483836007211048949999549781631414143474676131743739707674639149490115034648753996938836992208446714100439396757156140262437319670933938724077926780851676683294290924993362506508353388891575924904804747934322382167085372249793821976123438805997942493218976854403227524776253716323945022245446934658489400858873126029237040241758994752678367748854886119337512556045679521524342773456853845779953709524397441691390243799216240754618730659297981006252818077101389399925483528796513522479767770752425623760102216556516334811086189521360853134737087307053716626887867615263308659481505784923018534049001702449379700007384498634282208082031022750945754507266571806667905306310321088929762381255513634429293631892880131090818018061218345778938977075124850165309774201116952233339398982677072221267696921368015311995774722968708794858143719443427619572309417886097116139526094124598626784859593763930549081042684907298619363937533001695134901903895610586018512998755872815586251298663434376536036612909527513015969718487412029078366105275254059876670674442823910851040270730135257892852145904750668164181867633811583686333626346595308341820017590462970873334252448060661622232295846411663167574650932910748534921584458605928454535056305048633809723954112930931524559223404697124056886477085552609123696004643182294639245541786244665227836499161156106368684679645593344917782028050404357550035975164714844377562297752841979964771279207285937983452825866309129048316376199420422770337839992681228279633199427607380408681316499760711490567470843761432810099042194142401006303874103876950203486091762188838571460187731978139096188638453914620353372387388088846938897868931604169691449883842442577542646783167247968779491932845613708047748862360797354362647339894599692992193765328000015968952948970844282417763562221683336932534964727582567720114829915441826508100509370301407177255261671211852628623650722762414148476975778759349310543073684370783558453134595524440980668695534348253317721327976095747149435320167611396471295363231988687841303040958203796551484168116981730811022245980693185967620876910129618895486909248710891322354573106488445304713107389873439335326259613102733628410085748454241018949125025362733150037146086072027580726675150365879211842090978193658593103267556182022106349172595479549080006811260400921924733300907055050701267504876856157899905967324991036297300255816203590692483880134059709239660452068929237208153177860462964476112146600073014507074597956678546543524440888342941125900216712973902189172259373142856383308688124443547410068136977813343869928661007170800033882188214328092841750517081867820293060799276238034496679556692054058777688034920155242575759863607823535298998187458598109734851748044495465994140405489046898123734672588742489984750484784797763351547377030424849740516100755086194572025338506393284998605994342619582413115272728144902350107446383443878531706429343233408975758366839522391026822411129387261466903731070456154929809047435447053988670508008817894765893049613243131944245572616697719941236232603423095887086633491297810753802706783192767927028508302051107436246686555768463559934839543103526646220982424485599462009771193260333195071239321104771819216137309840895923371329585053793176548990033403564419508739470753877867684641766899326327487547659637245374347934668357623091756543648478610158997788018152634228256182704589374604628837886136303694270585316185530494052793655266637600758435351647441174230859881558556858140963151122412202115279054917070597465847390494924631327422720439258747215096885209012398147925462910247441487037594710243277551184765179321223712416364415835327172895456414403423085345304691556271472194974746225891871477960531368993634620152246550787936721617320595085891896104162739036517687402952593154692854797889818994642123130071646783660098075096901753808021459418722326870319846872371347997662994451537501038448987089129095853966261117822409996678896524301407300317302615340282387927352724156407114696059347414730422439479043583387818207838465192853901646451582637857935657483939876727432124635430062057881902550325134001181625254346872313001346625532862027635468509721201159799772703290344295422163459464204933913078748972989805436491073132170226096568437270773755811435550865599792009265029353213497572006451247571406862945135786490722100846205361325937202467483862628197080806420599863522159660127532770142789704183581997378078393384052239395883552055085101183896321065406161814315170141963643141892480096474681081832755323370769097397890835096135832906855242968854431315887128404335681888621682430581979643966037699130281708225823048236846953460539614249766726775429973376612185850688711517759466426560954234383813705265701958683809204044346852651548806053018866165299556764617694546041362403481191141192888530118390844476281622374625927726899500185474330963466010789800001606171385811347008344429599912280681364602766430939925003960835072082859230388942167826250732707873654838123334059248303455254986184403812468119963314825626441308843399181636505282444468294853772178529370836399846934540929658359555733816281019621372048124172662206015870270933300124244949605962107826507449010051519411706764258214558095185237374329531109173829979358845784761041261577805410850309952803879715462123751774335235247209890087792451099513672108737016011655064317256416266677414448692216302578620245192924552969120474900505611063723282953050647888502776800706472877338490228819323096555092264783776608353215563864937433467927244848992590412150856169743316461507602845990094420171291829320180892019820690681069848331701006588556794013530209954827758254244946132741247363248889848272996300080409309938959528982890379604316523863058757941812327865969928294005919831940804520106389434639042575960715477444388516735641623819218723928836481561382174819260259586376592222469202677708290777699383877202619999569120886532520035044861790942236964225691738386681898485429770721141747559196315014946141814839937424467583438262529302971529575204661476067847341591080352839660963901773258358162308511318870018730939638577134272322382257569933740644288818790598626432804667839106729741637734373249220959860297920447146258746691807488097954295073069791888282540213992125674372080942473700927755059309774130427869893170193446802458386059388622011916775924474350102113663622933776570422744533672427492358505144787954416174747687620626097502429344355803518420645670662431261861305223225752182279885376938772826283329605736881971988853499052393771385754091034181289500522330532359260589674982239360936094597729835819290288790280532128796820859941346659128379769601208387211957063535468703627585421815859985567021039090442399710137975476756844444118485836088161088634794200121963879221778483869455987410198716451024121436648202467857645060563128625094991989075704978283293085882516002043674028220369000939502987146374612000123762248896602198745000780534051404146982625879270326051760220883999595950543739688939047972200941485999086514605600885312433437714617968285270539516462579798129910665598160281760133952450417477422053414598612145618775921822458326126098129455212344784408935178803142408991209235153772652270627927105083166650366493770182407074866248610007645692455217306868466694730098825628628189782483469641354539921465971457553360624311830981233697139742138011334630944130030434391374181391559015607703140260870154551212669221755259706292773323494675929137164380621554657497649088152873404051620140204574901895209240948241772702151472143950778314382166073104286460207422328900758094445860423121828478116759918589282693279875985151689688447576429187837315884370266519633753308946840801246727609515171564402734318248803477811520082928839516828908350862467759790218448532346036900741422841901301699028567775269088186231371267137771039744476676391206872210632159555697919306092052536653354294946075737025571172924004839840997894003933590360582518734987545723677102092558122025416069550117929072480090446189205196440623842554919914638300321581542568368298193155997725807093696841831941682074590686243408698205630240213438835813120934991515684845433194449861849033402171379821462889625381489206160426919274407127287761667059751913528496949929454476079087956963420618479721598336738909738572592597719249681664283339180002331574080706799165804290024528295511576410232123706057668808559551313629830509492114528532330177856478574738370390945492935245262775745968613137728603118166507142745428661276624699170909744077405375699124563396966782854900572710756599744146862084031714031618553086264001835751998962369125264528239837078628343128590390008156932166492226869482008876927807205207403890149419713698319209553495232892971743161596807999968710629142129309631238502797183284340887209635843131955639458243618186655871684438121457600832978494424016992034423331768647086910872956156239863590797342390743558350059295744874263105889136268098433411891118548227169687199569791341172378967296194938579525856742369609105268357494599262650464351887217026647277133646318797811113963767442002375235670165636587902829947161880194711917785289812626467411784179858102756420875147022847210965570871042365368841852518899628560126109958197906839836289903983306155443763000983782725786015979827364032978139293716892003642788238586150130296793878272535473737921984147404030539344343822137188435784436664547633038056971741163451270645624118366889226945937948611041829113856731707860688503047661325432933605266010736765575820291940819379249291831448729597390566592714648622234206171627276376770685565004767272558910081053646448951191960893295315567328912013812285995912211920259737575858178771310247042786187950579437416827552673977906298047624386524144794529311212491324264302352128711932315452511684737054698266767595964363858838138946898922363418400450235104889167018686884522699989178777686720076510548146772880648005018597812483371499799106606735068891285942802568734126824331544186876188066762430040473101039934807169634999656364652030300766670028314574132658773063023472180773368869983789242387299903727737363014271276798014592784792001588170806676460553064451112063585283674131863345105653194903608324664216388894685286687869689191445264880928867531795658158966224442236227783540791268608841592346478684004096603570485246041803521949484122551323806447248048003362653104722319233245545116413994139369369386886461364869586218264866289331769370691594897357378028600359746881998199405049436325875635034850881807039065663545588882179974537571139787162092717779864032907542408002392611342858581992308272629737578069460309852674750536490850592987930338456679803512648912005339091662396956545908601197984088223184750338967809498762142356083676558616976313259141896923488691195129044323421474652612508036173450748497951821108690070047610872783295836104879068131647363148560791049552680654552849037484008385135292063567175618441556345623386396045726154662348335639755685903972771378237274518488600777982632839491694373488523616112659387257726359949603024139694160776984024161683535767777139771624310460691440439687752156831643310370559785901522577066084698615966164954621131030459746406433207331531760563928916182300019482972486293850203302591205194617738545137393141495182689398782483835123253113191252727970011159634062564664318469269292071329284755909598964226982658319766489585440546944050468663328540538435987035849283623813479937993814793668316849923791054303306500878386591568745435281605612828580618793035465069071425416340953949102143007525951482692429058467762865736445422048901025184806941553996317092100302030219115282760980188676287819744344059516878833825935238290740854136413974808384431761900530040728432075434642803504656704440925822813394039855725061191448252222054359645738363986936069175349941962467509756860256822073186395435869506121320719822784892935270919741192410220519986928430399323493961491711223804357487529861497505626685339783947272315735328108185323143808559435234873660604607802682512543993943014715452138122543482181214359979973363185470247536735178000288747367123207108664324978281755277132469927923190944371350405771170148138767721172620990065156994837985153398365650644379301602120347496211115212222169872139241876163433890311829884395637168185018623228502981466396494784296727678332463292017257011896140492311400938657421546069558242727510310672738914705298260322613606455316676300969773231626631101356306364258043490798453244898412857362224448498812974510402461657457982584626845677762888682532537635160847881431003925960517727595462492049654737689928851800017945305245645204014772299153371945709481036764108593797271239246443440927895709132135499789909618033074169773716109091689918746151235727095305495900783735407135892315203293473376023724110479188708645683419951370234559126588268325761039105249911409956023173621733263321911254081295201266540574719879924703615373517030055446397176887042181187698423773660794122285248342212235368427860017245655421003784862127934140432612526037329942190348176766314595189307714823843436566308913317065947052757133049364523050281625961562467761284816830695643070778996552945695229427788798825113789783067524389399118932882098443791874158413189721383356772675221080415523691557749544045349060678654847891003701657063225329822630134798131015848361576103902843608399249067296507478745880522114621680885655741321654611121068764679087680770446165125698392385593227219901587463870368538782815169386544931111926265823173363523954961752746347997786215988583267679379442873896975408817146590986396949438713472514564871304635729490436693993895335708796974973446739472402037602983938287156580284654436150896929122483971522723222445019814827630245932582886341006014126126822853837765795163097061424049906941367948853328320978917302176518993874822662980621872091305212990972977577455726573239240058528048068545995953043302403644677712590472278907584649563618964739922067156246459558552440329993956211750984630513299218232112073485785505364214636169774016725187052687863871135383218077540468356522941476725150440130445082420620172029755535894625397526099415439792636677949083925712190292850991180668682282909172941768256093978193852387886982894324990981098169232485193151969735888554906325918188102659823903526078032987685355063397457341053653296570040211641139705298125901108738753230689802633621319919665622297707930938410968071875058171750768171012751982952925346269176806945828932824534092420493668449212951537007300991317734361443071507318388015077253668666025879703299268512882335359291436320748288473862256503732997505476088370801963424018289576395242637871854176532638227558539572865314786279983674369222175825892139412125079475490111681922079656557518032393742093953898087659911052802661530811200710958852236478894433736199349611961333760678076938202150900910191442641929248824062571452636462323433683611098155476166327539447230900798121519576505471807677693957291414170377619995150723348801144438244893596035470902586777499988954467253955193114874553865660527451149604559223666627089897111944161385509423383062004574817333698713612992462782852537779483299979880116373217339615658355248383550790296524740485588006998092674920478190630133425088036206210920576041531560915338678432234348300479401699068729520646198672342106577474192840574035305494978303609299787081935558486477032933380882180997245781852011509616168627627437366748759212292946785379397253944129107743406005770278661626434543118709215632098176440103025038647054334447256238324078426502343326712470964815274964580356065182546123124709122702610244838295525729682010869398737524926845071535416549271369163513026208135331239087601518651281738054483060655678091160316992734827019975738782759987465030059523869008643489581035583956286752433063444952726206957334484557732509217397348495742231967252417363027016899785753090313231424891339955920553009566165419439576878985425404190593049786663542248801460356193048649759141667512537162899181654115412787407251768534694859672679399611489467087204499278733829806178497657689409404314336965167282059497960720896135152835121199053986872824461394816278814294801217970269441903261551916924933223409759954942185012645594242672431743807475772011887192441629244152282732285886883392184689111706080590019592096156771309556557888192848966709959418979175240222277484253497656971328352911796055437745231635553079589073015743631108824199417641576317155902055082313348072269342199042693747618860797424905567283927815109164188022352407833759521942679057897883407811881390872577773832649906324976429828768767502866833559536626373975245963874240792532221209099740465616099436298228346313555651162000016707852301964695292810130252388536496628728595454731948258892870827655049233930804689649276834318169098540270668363031022092586385275325916007185308280227075808530369644018004524902595760337850854773269469992261197222830006606858175501377985533638872980172087905325143724860495580621368173466084572486230670268329170683539003242559127268809053940946706014981377635404050650696482836814227095891735500278317892186348404693495836651793026952258556721723572956010343633349380016405979814894941968626185957728935250174755150349733445063913076680626902335180721856054199075818552607808464966223767522582333410300418216901486812423558511427693223985492095182147885947837216401970504511737886800924740459166997573230744930036392903594621529447905831288744449950648637177988712838510927031943628422731910909596299246999714148490242853655035937899170999481821352096255948789952491026530919993663136097306353670301202059593783937860814226589824448044565565393271268121122598928664659653032791771380709502159208476219038487087882607559741191679195893973649867825958854075932799630814767793324700020673951876736217809286233014419557358630858912975212496195949699758393962075439773440121301295996421322313913730718773275392304619390220953613923668622218826425971065349361797252386292484876316714056785140316517637631645626800464822044612073387515372053329223923471700963707109770147339057171770268392691516960462487427030348744937047259333102698766262255036329315015015170230102672457437852351967568648598428659601405263078577844089920615723810847558468085241319226061515242764465752665546124193069495542534336880408995519034247788896881537003816478964326366503122857461234085227685500652616708130867950985820574524780399298976418626917857881307234765778371413365850286802675902684356697851827030173254552902368453695152714292865192331528222889981480811396045854930077466941873518121649223047327478487632796238028790190904377976913176378539313744395458430978416542598034298236190976901455780031580105515622816227793875875149308341714384855797459472279113377294950395434037119252906391053972318743181335754033459111338202159387312278170523555453624696736277109973397543881702302066220311084210857476106889326303237997238873314891212151651858824855702480078877431201456601061965644122753108779608584462081947357565168505735690054169666038198747648087600234552055436000413768773452646348802758433876796994763642208587128334133057746542540874328895801197053414795099480088660069087280042518662531243471703545355582931044293406722554203032903358402403772773566127690884266251916081575128745661897940889856882637898402838749520194397710800715708070357730891775949782626763286453151061079175403234596744567565719380454850004414358588905777662269995383925191128748637915670223801924397086894743443680667357964841598261153297242885913827616392654444306813867239939766521571293362503739023928072220431162271787452247934198688733945606208072936785750886461262314618031904063844257043823399175252880717444935414467825928137082519731780923963448901706064501456327251008413154416927248048130931061734645763379460550382665981442615777045621851077967939392905547895498672547165886821380981971668225654831825677022870234214161708725989023936429722376425172348758753607709769489977291725498849984930786796157452750914929598733537782109138667710538588407542032798048234819415689488416400226697804505040251948995836923741551278582116302379006497126420444841775406745641270715604115052208053937094928913967619302186399632488490820170893543907281498365637006519901552481003096200397365582040885004299837420592926858995298043899183629816831726307379258273855741258305946741035810999611481735862110406879328901949503515600223702066206232434910461877196137214771801672008022851326082422024459790266479330946276402879159780911954407222590939833712498580790470579175047397107054644204083952567364261023654485557292550423032091806425630580213142605799116182444220567919187377535971805584433299878246474100204662010619049609836746654942488144052679890676735017798037866572748774475853444966413030240350172797092942355749691199432592548928564412567986220774421568280574604089141148677485952051958183321791100201325692384277352929092278848427565504425235728041502785668820491449749877507293000815629655795607969184823950053812704522587877203602292114164981112392275585825447176016970802290746074461650475800132648667737073131864044342360245808535236217972748084123928394957988425135669817018447596105325843690111783022880598186263838072831128847265306232486920475232557634098387331454972596710798932518178934856057698520903950223401264085601991610012458363272525051168997191472044058586257102091130536417075333987852903961410319171165332461518525312677633615428900380741561474425098573721497980628282381714355730566811168676629851117091213365514462299456296430216447847642745087777351381951641089932205700670123879079433265738203494532732653088718100444197136567569754626942808552211109790808726055597703079154382732645917208251780715843042914682499757240926895561372789790451242419166856456479411821183961426951158359874951922886611445950988652395975583589204074027350336182669585859516959080541478031687031166878176936944726610006769802158951476755390663495966208432317165244793339843179968299743840665589710622674491451871656562991222405089349561225090620617604343099533432742334052422019631744841144820623530405278850895732121417263578754504688846008207962167289361804547853387426538967829907785177687550276083881877095807735507832664842633765219354060227333250326007045979281683387532703930238023896408011850495010240086020669109487576419425245440214203878211536938404494296266973127573927878193621439838984794465674627929476751490621832734599003400443114693212873237054379738790894873883450512878964207176857539921484293448265981006991448691168153952576217399016835960609512285090988787744080308805817520712760691408739960907809531176288868687480512919777850493031313388634653039100722499867452682172306405328585506604621639400416997779845081178191088896249826269107179335463961373102495713887036185875418029259120736124340701883647747058528484005046654807145653062595694257008102265577252700840269194282258029433781907706010033954680290073064557233596716401890029725403855849201859552903668629771420007531280274736415378125189804028002226406169897990813766694788408642048029933006908401985544789803828440364897115624204076563280062222347008414572374288417195480491168430992646602769436757335798600471084482404273059758224714226903942147037427863680388082284278118545449969436915297276440494761559862076467068207653521377948657014725221160959900568565428489922211601674890892479692860724022660359810504705293938757524995098051048432028767705677010743715901213445788429728054355256002059202504342929022492169808991581342215646780945304380362003523653616364795438424168994758290328539353616788507395268015244177630860140074091734134249130659353365430384923287380915139888810279882145207354151590076218860495077260216634463807791697813052848075358033965231775238479870777044549225884031439802385601581188561352220356009427114648342437633610197646956547732232821984713780299358391283566239976637237271215445027244731810364174635119628664287294046031679847357891662364144741812065611677479185779990058327517256174668605187782636966576389294266857197758537850087513260916636213062626399053151119597462518388877686246414856260309556744748504852919497625046094383998343532532371304537921679334647717214218642892060054291176896900077260549928154483138160446064312924282999039515870521184029587857853354887845202364480237806602775673508474807204780705502495438719448716788356834079679496808392352890913827893675599646286154233086173496854900591226616676468388784705655271316503212724710276490204246117543234737255254987990499487851071341850178603912204601980564263535925375663703960998491553642236190923992755242066882020766387034926980801363886577471572833524110023769622226408848738160460114165735991840891642315809639597049416738071503641718130019921103653061736340040973350844444837457493444002877985671321188390876002697683267775888109723851378869896817240673524793835117597257961743650917876364532300155897811152895883331836854477185633074973520088735374482965805094648430194749088104014802107204585302775662071406969003570073719226084760291471661791594957800689056324224694863989386407789927533743108267376427676183955543609886647250870596021677842659026213584575277920498081922498729521519959805490581540059406522122011579350841103362547591094242493941410754230130431779433840489530697056241684026982870444895902771859329261293324795282522402848753112740282072533373171827420103251906006611182415352280262347228062810377017599050046525028408042618990919343265624779135536607750545910668615223260818999246828401281346073524450051218802696322935896336333774558199242378392472508949756919561468050054517720179153783802139424707072494978233248277500426551703144289591021367136169329269440753515341949129619730693662226033967036121756610700036629130602303594262844917547008197609658407343312878310873438086573134284121055942954845725584765175421848185991716279199602852459711631073822018167849806754632349658356473007106928707714155646407198298809867225746734451476892948752187042892378400499974678049819859698044104348337592209027950959486128721373144044941936999225689872005962188850856118818711288240465596845581421899801014811094632803056059872827652774605570335032054544016177194141087544752231997438210067807095659258435400243015957652157503471791781913147307493972633582768546635788768839629551056371425751036679778412392963296882314802186434796260736044463048547008528003863494891522183244738939341403525538399855545267965402285388515424452888038968330467154178708219496000474728752317396858183833234719890850560264818550791486728627023328962086556830729015521540336642623399798080400578060908196243358880357090056651897191435002404885053948091403046803813880325080629110314302027280153936629944520679781483290859545908140213543628476721734634542497875624948069053226617208389183693555291294249754814703346223335079839989668611359913919572461856088635701512862501987784228024193220628994937623025589076755538465947310225281449941155320639431220779610890759107114801758024464610659662587269729732461588473352848282018626139439740196959617444029217521268419388990424303836435777311425507340182742116467053751988244992635270229935978005212853112918149243287109093397158522006408538198223417013484919355288318710584582134489739977946508105324230822192730463487333177549021819510998937991097376177078614467959336170935022119043092567900378208863743397404010733572812992601014332197004028360722190011410372557518500765765895438031304609538932546820949506059034053432829448053816381669373863450877834938036342858986032598952729774827427588872991306413514367687353046020601872658529789469198692043354839022715540557590264061316879250834788376549792561558221868496144717131739128361761682733152790551823907917402562003721124205910500654311449374714946602144271179377979416387878373418017255052286855126513101202112079854399284974765916022190278670229661019172592123221172418686494976288534299415199466486623433002677189293375453399068444624980564526072613121229032119979994388038030997736917684265713039076229976770274604154030625236602617250514216494341373605953701177293422082284582523103238154862218466859194548071126623981641707590903532837150854632289832207989557315833788272614167009575891906907122989948774615542621333455583872486730471690935933051497190326014140471436623410331755834297639827462564769760176382679324026116007310405214792098010938360326031535782431460282694539457961244379122625749685207265326552733038809995651565012432860520132157416511313097518032560026157866360732974235555745618679237227182512251755668320437470639973895745708473539012329689403306266216691747938588876230194772041670554929068984674993438348792246154403722934557891627627688604747265111819587009226965819628328604525085442411096256844194437708113250740669779745244579270567217393368837900900477513052649737429021823892356097203943519784869746575110422340875297955684095088922538257504835622331796737384156577621186658903155093848483802388360453002540521857630319693590934826009002641286639762727630564120496395509352970912855018883248537095541048716318450939021970008503709139540205139666269553004005548969938225437822354275427121367172732265255008093374272401690975773351095820712071187651730732458026463761141441365511633587502856731812776778203328393315337542053402344167322100287119512818790706128928443809935645731841560446415713082318416329189763339412099954899728502086239457581453564271893717110575304775024898296161318296000354519211475391372986767160279205620225576438699241246435227585302865228747558353637100753558762762517745425170057454782826810285696266904666167339574075611949000518556820751075848939081972131076895848536678108540111601254716450205022569880682518200234386405767299087712153560778291093482692637345848028099755374393215131129184564478853489151673646065556103519266754194099681194455494792363688046333871653298594260137213127187815072037460459116724314361637355312329155361710578341431442535982494887018729202482615792761938606984807434876264167838100073230155805926908198075988971590414361781218819654191661352553471413200692355161694267129531501028512633954061613393200975924964115749280455240647225167375656628154958009775304014552152702419750285678956295806918392346221830819558152537952828234535288262562663171382355367436088888546251986544808408098009096567969350804043509252239500113598541974466026060942261668368515776593596440136671100924640910360200967433516491213418530031215646268388391582418034131639119178433101326405148304071259551377087825485433315504243923358058462293969993393426519840309462489800182490473952172505353001307473490181436273810209765676653500175529792872325459933472292383502749680054009122167370786805019547166970805719435251133363639857721493070883709971584347420018316375339849084298315365772735166093593655186121064320370320110808910386492523553437827576842963299343599940027095448286265259775669160965164073984178063805792912698261728156876902712221452663421003440218997024501734994909189886176269741118249908374911233454857620740238114863632419751714580841829900322972124696358818461976010418067130882828075462705252560854352577391001991780621435900027896515316466152596391396078179649489588886028989982994901423607297905583540536508298569416250421055216419269336921192724557749179182667648100050399811481743243859549695873859936971991361130136006508664819162245224418528827501794909650204758854798392395409556959051206176648578544688746674999555231688797456776664793710978890179873080109596239642764366029448390249841310486639266167652958504387805898952928280495907141785129168307703998541205075140369075057305674911027266585619883672477289922436612360307040880584468794272448410580348983875952197417439142018034269961354188236650874087226298495979881187938169069919748406269194921825271344001701773729014548197409543997611115330475294994797912141297483734777876005292432581475484963946868366726310700848029398251791063158385534436589219577021838762083147072575757520862714006218767101610286550299174316252070445784592175756262375123761397954854632512850465800271643876237313552981546526758772974393939409594371754763082613640362244319564131704674244662601346898981318533631007677098787132032774754637808492819957392736004027304640915113713675019537392706278244931095570386827790233508773187115744890088458004565716337611728416602848102622852884190275146281851614402209373452149579282711311758052071645440628699390561576745409012594913878319907104440209959536530483217722977772643874534519596557837965814377364158473634680941615162684581949536002284247901734185839594290950313759309355703031148683829578498953655082214294553464904912763238778746563708528937404402610349518757428998161781025766763513567609961755594916061818272474047646437388914155018956736219442514354405149601650418986472059806145091741389871010871602172564443015879314944088013884206096671490836710089935826057878454657157675830468747039270312502595618363831543926879138504258847357815215883974515885271771802043665870041993825269168106006011012755283455550731895690298170967926566995043053694120099930396684628485912901821552171797386345358236346143363045743503916078738177247106877461616682707716458924398537341735937472496931194700824658700611757278435731119762171215817595384204699228726227791733628505782110919163017090415170065688182780225160100138516028251742191937658911954644585811066627441612612636501247480044099162798065666916293712460732574492304546333719489412478537167498183879514912003454958490221437088814598064727943907138316752692083172055300261670151048905219482893438964099404573322471929151053880951334109173003986758846709817136635438785901888663325250932334020886311758108770989485816922510026876103708275054452748584899213823611443530592845625009460351296285694509834437702075649192834257320081914976344347669597625341104294701401769662372717956725680949160342610591854442328252777925262855585301919834939355042277614235025262532025395107186341036725184059723713886475335391323511388133657977291118596567919596204647159679191454534523118635379441502120410639543444468849333005328513417003710787059250243126716316476629681206696590695366114723174920603890046069525171821059871399060420716737725108763611181893618104256736006365572014618829833407528878058117254552139839390487813865890771366231301745528598575373467958799142235653751907693283900217812891322922987400768603444539879570285973740991233998540024215718330060161833838436730204138773638317891082018010514856043800837418803836102046504196258025312948076160247407072523170873167090084937147165252021841553344612595234626483446066865439435212687926245005040439182972475324454454754948534404836424520858558905805824293710590249454198956865897803885415307671273341456534856795208711198686486931339216609738709629450201484070375985357587665644992398681869557866687338488455458812178669319485716959691990029975906822794086679625968557740140794348347103451612335550359158102181371251265450342939925341109645663446221026332433653092893160523257250053158452841396742489482238040978095589733417425585122841346911290639990584362262960693121458311531420802108779752812235458958826487213167438901692996522375887219411777859198217650277884611153912362085630569377760618207328532365932028063296121355763375023383835920566423398548608689289874447212600434222970263591769660507806778244019059073038235776043797538887377204904379468916840195830940228945648131075103770755227508956448830619838512091851128071907315512281014736278188947103504520678340823028207290842903142928378362340025146893761575226768201345828317776407369354201064839594570291510711099173093087516948137154879187152338863089702727236839097850013024523674467778578006058950892327121073958505680117198498697579256179984968427771778412496924219476888978477952709436268243341828014647576040263607291615390222614002386582182477334895068067131462166510167161285772903993898710053663753122657405997880020449913113946103418712378750326609837457695304313405306387368315943140123487412037976589267990756837029151150922220850813004980523439805578527845302539219332319097260179706329550253581429657006736984138674015534486611136465379179726051490977676496633966452488841809092216969016334646808564334754352379183962853509959786038797001324789635947339159905770986867756470461072720402672405932903224856016944759940671016666249012976645804519936418498353035858808223907639846262219666498857504223900942239772684876616744286179450316921112805255355980965282331479585255000355998494452817061793005985696449535334291073688251888561825997047901167148677895016211417596569431110797596727165604448353131334443044442305740852232698087243392781911216373249624343458577862502728273998174889391699187831982955875931064199020664311271806060219769910224666907164367304962691665842018170684954954111435280611966019041898952038403371852236491990736955043321012666997546256199922845664770472048064886562424227868725203771905914347727732657042945597369411871667096986914345115890612546609124854615239368764674199074230919456402925002457999701153188103975460747324422770000069367360928745119316014570635383301061679934120207072503530818774442565192407477341286967339082260253755479629853764134331778372935311591641924191308073930447717429501188404088320827315131099237676910546097915311213326724740460528001911791317858011957884169918617877203375642231607607789339168363497148941644737212726657659359151614616550053066881035128292232818997384474682583506602121138744598900307758075673091349973347331985023192691906987722506717589852807975137416187407714615147175062701554501357659003997071075380764462300572854032357433406560858470516791070997611539585614069381820644591499239411214666218328533807781057001384367244851509509539807991637823174409493317543869034282701514053238583771616310174204672751615815234279531470760077818943912061860224752902230563018582531924071389257109043173664973656489516895863210271463302465680513921967274431254988921484754033554020629735385453042932983900993788362942812682356949805338783892619550001696213665850484151868203829187961456219754666458895004192240117193381546502972368295225741186028478768199681895646449288830602335428313902093254789562156895906545486950153411236889161705247735246072295775184741349276098793387372026694394939114286143218480127851579529036737954584862205309941166674437891401065853079979995303616770806365685690605845085117203194737590947639829474111719576113458227150139388773499826802826962478810809650307633106110278127935530733999691851400488184187636069358965661734690155211068909738678486155590702943433505468577352349095296986447462838866848796921737765929321360976433225624472912593705504330113181562161195827496902609333318077098666723181354702830102448726587071413127007976470617191644410874964689903638456602077679635678644488288802996084899275028258958491604957949344769849613430856580112194364959386209090710687244036718689172281310594925720580082438139174734945475106734719376317793536937621982749421748805495278307506006725768375709263218327932400163082860095493054964983541527250724345915765146310006096406836823550788002463328352061169985832268433398524757543723979434774509940685386910348094437379312981460815633036123850657006681592450718747857973622849837398714396112949146593140630242798807077867246414422806734491644403375495903318058699235853613280909183813060832941608041612203685616264485837587954652601186823218538758306643089653463275297717994677829599732602428454314998012247195606653588476940826581027150890116215123444904316879795324920101830414485954645191064716111178541189200285609673078470534085817812548399707882024068739140056544613339946779905941565322400019387563234222896178142299665112228118352271470614180315328787579836536535991390578562475078126852069895489060658016307838077520298301203496929231920874430133610855099549021974677959792188406575624615886422750535571543958442261010619488223830523421307592864393249149061752340481461139707875808246488741184056167588817860903084731075053123517208496842098931983441107627329572986418012320503416752247356990956177453921628918038442773700297234657682149436875553976657547375869740248909951577109485336097400620044695422700114643461939175835712206936199520202025503955902576895334303438570649010426378806890560600094106246709128515893243126894973579472406581446834417985886743517445921416881984054910058204751988236169550607676719640670281083270130949396016537159112808314232252907791759052168822750221067815301946725105175502717796070266799936535918860701748335782305964521298743289082850441138270543911415086945817316495891446264238694412836006018840263165117124138574305344876608445206586186501514773716594188549544042240453214669387385434883984853061205099794426507321281204335910809482655419826623246403432615094499085931537901398769249377859269703460935975397554424136038560229663644552018127392592236816445722087017818539146440654643269750997608577979582159096650986844138926426453928978576135394374044433469122821609532932887018442717801204608204419991129198334889330179123913353386907424960801948909295155757397839701611161539371480106819381525949572143265641874516531339537702990252173804903464048511839747767128475012088179794461912079042783477120738708728074440396938966209946877371007550958596390028824461638975152257029534928182590527449236898538355755190556252248494023341969579214668714987630418786668585610976460807248920817956520657755899149972734557977936451420588421293236204598013847692236478662622589227319281767034136605266819062683589617467755499108568337280791112007578423931604135030606675083410105925555750113812024552176032178110367837596245593533022664328100493313958751313336268817692334945601870038567149274560020938450162441897702472865846207866802391834222338625985863429064835279609616738151897588658394718513498845821769537832341613675988356708251809237313071013234363645446477005147071490500290425971761326662775510504887105455368278425456759110618268561236819569507122780288800285431754681103807267964462220766987678228342603640925291115453548172411715466711770890080861150647618169561359409450957101259750846547330221739559845239732017587498974218245117595026602892199904463971282191007925372234074475415831249241198355807762962910571638932299480788292081983385755130717244429551842318736692045225982388233594148199294389156235705380703576750147453802907380371997887264361483411629403188964299501095876873675080059973690835426998525036969950816534808497369393955719233479817294375819271093545233372992836016836180523419684409370779353158747018601660481644785938164106720813379301596467927224688170500411317710296916382610894002149281099987723056440577036243267791088141999291146472779464464966437940276729002776006894208085280127741909243650155202501901747571897025509124317119404545797734793700148573842632223056957430304976073413975333561045310168646004868899615564862459533272481339489107144978847390634882495725496378344682189662587790515186754532777090594581133818174602237506724684190644544958734835978250970036946544637821911754257698448805317046413546211008080705525308873598873240449186011759305101539014181208543793194814088992122476041232140616993964020241876853483376739691895972297836772417482077343369843703979417549739984876774369999025715690136334624205380932414412083815204140353029438170146973097201118036712766586930937292215252227574545301661503489732139127583508268583787510273613134122589360003721628937615086223476787545672196044444167846651925321111544513215734421214901104503193806531232715930502790382582809760818694059906800811337963292624915541882620555855978050797971648532288546574707922168794450002611206371907897399689770962689531703042679994869963321858586869822925227528337943543160315139079769403112922637899774277728312034940735734661194856282717008499112107473151819478412333923497043097711995427790484839093242171518798837785653061204664701191365963975601847785705015087637230918688513441782951862500341655407566147845717510556525613384666781752996544188083782226423662222819108831298387042036333299211221759749868161789328428264074495146669101251377889499468484439256589504604109862732105221786846761470817243424146329744229973114946263234127414543875672389805854653227727872302192966274673500499079797713461251053014811452350452351600393103406251115318195735438628010490695719917113151722271142191059366516414612494635279293615769539440114593470806807294924038231283714572815359594801686239003433580771677642046798028121928544133615773797314405081879347041044403938991707713564509965468201440472117816830657802028567643786338374332357683709438797107695928874872469858895838875629449133672908285349333818674800914667910331924419321360098573542766370180766674923914851640981330757827225977161397145579142328736788442823892362428497052082446415148758125243890204087487056404830918716127269807054904127882271457823750656361103297812766149369334117651952389906226033209782194243839203120748013199501732335362001957972983247620975473085739268093177751554400033859530097692488211932004469157480994445521616611299537899567967750535780958280813913371272570814509428522426716332443199056127149285382918525274254471376566980681157142608774527778448813210323276556012996601806861223427819750301086236566269914177848363627753329717698571894354013263908000931476896635811686965569423161144969777328328410412150596839935623445062185611479090923027113402555991913109779614509897751609147244117875537414422877391295610169327437205241837636280968430866312832973316913074816980836779832382887172597262956281794832760789527922307225411443324986097238488900089838429613844267084590880905908999878704646958033884509290778750857726640307294001112599225719099856945821460290373781050352060112547252505947378263265642178891211721374759463501893612679517579265739952220882114700732008798351037960353748850700266641520555468092634978194321737701888057876322739956476666665601247875088445561367371022936401457505718457982753108280448802503147283583569076232014585150513544214265034623585532125215987348202904923945245968606785227271295256491572842063950422837599459903143015801968044536770130346919619054420684386337037555448466201902515836477572139160169415927534857803808738741538281345132963734889730042163504053786156954526549414655925687194372723584136263998580115764750033319087626427385605045338576853675619025478641622004925679980870957030433501626706465078489163329445943458758523628111168195108365198464951471561988277247764174527143446316121800904771093458491024741550868573548635578628933839893002506942531784070842109991057551872865308528579705936503345832135452550490979838869463929781731485805430800059900369962914532606258854767357380927998425218721913761299938662469217329520063085519747391097139904773165342995141192036059556740963374114170410072819279113240563954479377635418211490009965323245626084705087338450011122575727652734315250924802027551296587636480699840154472104921800426887161082764367960383816323148976792769412926679011146991499443990243644363746725242037088669477450926123605741005600258839248892922828576253561202379478364548145554290540006927240097161223481168332563920652821260512309728331946770371754301042349289135673434784535658996675794385281885541158298391005786794441369949726548224381814531112670262453701041911581870555457049049598846303867607837154020849208511580656558011379113862524973844087193189476247578201803394214732395373799689919274833120409739849298566937683576816079389588857435334291231896018429830299964726303097904541582146986843823643219758839901941853755360137845995355827228251538114567415847997745121011174937747534576472880526315551673048414967976715889239086109810469698892418870074612276817264385418655745976376159953390730956246541802196169705040274144691049130746976496100340962924040076886678185050936527405630627379878510039126234916950319815620841668964240727476466084796191264447948561679502727135404021851241791115920066296512499167541527007193414713226107087742013309227765703889570962493291966568741044126193197154807306970408539800228170907097753583930223267992051256776036800407074717569621584570911609768680653097115891241379586648294586315600251404175880914430986153190439532590261407113869270013120666233885491197612019652650657155640592051232032504210855949981774344116116017821161507861688195305860476840188141389688704872085218429662080837863917720842715926897544058496307185287308032243540069710907126696748661347314881165939781409397210179001054864382485696047110066855504343158569354921718254092084345772091227163001497832447374852538002530172690009675954987253755168992747585178850372168955137549836277358855016327477194773171966137607960178432520034938054068621393076336898924047471221692643894017717879921518257373007863234293644897531494999859537829550049317567256645363123734699274815686708999286152679584175257929902430734322522205048041781215769027663500445469179707516956269864165853965163366882320849793235352064456640654652744898111648418836317830939046877527860111227107622578229320922462072525991591338787246073206286677895025212073807144875140439267873059409943454816950810165157207575935593693402879519461863197838202663865174922667609208725138785700963107138564855763239393438748312626869981973778899934648670819873988352516393881780728827122813663782314681692661180412956610591891271854668881191689158292932786892013101837635389187423101575393641964995078785954417349068424954004608604850700018719380274320533050228680656684315855234550124784227859916519945251448526613642075845328646889722708861756641037307813687016057668077119700692884004125667926138106888128649203642899243902271708896527655985561970380757288961726679397660815451869239763518619984561473739621631963627429443076856957011359194471049918958741517089206503138023815231655386058969469790148738247003563048001359432444790089785740503188471923912817939692395741252089821223434938037252802613121420683002918679606741747546890767991306248127014349544340793797468339247603364565101543884872901897560934994284168724760709233209320279331135276191467990160636014056202234001324382437793736568002811668772576060273345305302514460192345048882472971143495229701163104828382126381115925957607371220469768262357765778373503464875636668336354797719853980192352207727284410845962220298605974088204776176548279559644949371909329671064803876229809924478936934792743527655541875899895385167287694878588731142783378615620222240401353937123127679420993934189520014085280182279367743631874621715268655372178073714606352051131514965169218061143185261003026538399427987486176931422557615308397412575659088621192988362209037043891697720051937854934216885916306179351484765337485387119141879080961582433424150025679678176326140820138124497346735547673658211469940352103665455893452429024660390001655619543905899541453323633073875908272791182781635214144498943686206151849379246927127602424871686097809127868957340682702169134349862697359776152960244058928877346488887833152249297193056747743536387106492510552632471849548132140499902744168638090610201590213312922585100570787705772405911574621759495835573436005953043997092996315404978491259516796438577765541317956909289116983955890773312994657752890327405693960099046143031959441553319124899553949335019653838243753759492333248664195079783069994393712680747155543034596028486281788723028239965459105635412275471424743038245120783694856336140197325203106543407811918344276138035613643085393352105820195619918518841423691048508595247454223000369838726726375891118292174121318820317715317342419546695963437369304723651172857090047215570565409216989859089044069478037003163593541037147108704495087511013556512428167680786755781343712172650778944815031054252777102619046870253538016360254098738428708752316157949279244339710346424379204930553551590114630446876926914002743134304100603192367308088754850514050573311098596694156916093886668503794730620723620878736029712648927650431547754189574547884373226956049029978043378413974767708244074035518092197574863957978440398427934173086482899770796815164338471007530953557104730755923372710752322126196741369010991521454612077257124976431995524001852440259987634838414832225796512227162261097795669644547574160320218230888782157972066461457455209816385060637235756420007674855444605765541933916834569169568724169693740556498795854336343102092099763579949977272298710167413180896683077889399407088385897341964388701171637847091785467552667911955177283590164641627256055871850339742910643672558647359278459056676176352497099189799092259761992008563707494258470601812831630309984502552722060511214629433000285218500292096185778627189890112360359732480485819499833946853502448529914924318751793649917295947710375880828908116870444393089572881438647794526434761085272542498094593033672210248101700624300859240571613904752469718895242977115011841958339297605048133778778902299674415194307413877103796997200332071262409885794531208665111385149740124656855870504392998308176824638245070146053178639796677686676171890504067379756310830293292188448860115331001548802739624171488603469106826334905361234686500559297734988965039753667736967286939514442756279620787389863617961979508525202200313887371713834192086222296379428625918387076067941558236179929904082842851438346387467378689281266160064389332792913172797579067131486357998344249188067223224408255827367077554970473521601689407608926527774064417848039162382661590472077028754358690653729223238572576868080503928499659002412775923773522369171672086498480359242673820640922894810164271232966629146796103875863349078200044851745258766918247070027002691507363033205505829024292644247562708986078923835878456244013879847179222586603209280226629368313443468892017380695230768701485020039189577215192732066422117735098599170911841398399739192985105722442755377797564323850515814392707816113938479080729819814403508902639065402745391246143492103604998174297450942461628475108930260853642636431118138538946979170745681570138525474665884198406828725408161001708598756151117961863416301293022728157425164183587761397370357820678195082171337344217309762378573538763971313219944304537735729681992135703629476803688691360206320028990980018463552073931979224120414928499297840084886207791836995834017718236158019972483120420315334341856462588614179764584750091268664749349677102808938162838907513318241108696871468718330981160812672316971946219171380282578528366782437726162732536800598286521248211867996459643442928531823592367905202129339929264260274703785742279169808754479629515854405794231053648568080349832326012802253495972650320472350582765986195193115575894597483060906904781733695221319051655521412147836622460567426782689157722232971787076269772401356255355299962842054374141501739431466134255458756912287842643299207430387471042555338072291692616300526056683216630135631697761153142189366117329171233522895411808327918136750600056757091606813565487776873730582276965700671004489652945728173257130207903323259223590799629161248167293620180593629069029911309286718989235576852520373544053085255419035675925259553148064106710633794009982259456264291065142716313089117578529584737064837403494504886087148161880277903346107833619718968265344884345288167504768555366585167054079671212422184082364803934863705223545876940945225665357535806789254754730840616570396293031634892193928142341653289048264180529137857365009626996167053983310230073886902197262688395894024024120358013889340162027334769068752603579227222499963698803988891812487188510444728706478041155256280418771190707088537265223773309421030072511587801786943522660261160772859376135372639638018494430305820010895216700251092313412635406583700915763727513547746303009060408067878635587165210059318535195363605840258789552465424430990969769169540608517139297705918327603750327163909870905902001211651316093143820960505863692472685718032136008558926195172393529169123480705208891369130206318916208914278538512203552796595621305541775840902466219682936174920783052097240583058421921266491740022634044161114673364480425390883153000562063449047218705885342849003572015844095183209978576207180810515866413420737468589945036753885799903871679920053155034005381163670744204754470120205939343728757992510703717485075039459888091412818988908508785411579378266982313952851767191352859572636813158010988698663091529984452468862215461352968377417926739147482177759206194333475630643030784864490755462156971317398022958030235684909679009005108337104222097587963264145547583378574799935870965966875554529878104291766980759288835879760729240709672116548121556031331218840801316251390957986340231139933879307570825810862925434900907097875011606167858859525970818464125035827477342158037148897682013929315301196791196950391248466545401187899145234618616557452461256032049743974971755183548271381473517705015187814569523707250126842709599062527600895949008830235187592449447197342534784335264341235012164923750379398529410475261187483800184380842511534934276675022748453464245103662714148915375225769642872700056795022896691485497191834113338819853381437326388710949495086370850941619702538254216035499767909570063764508440529018842483440899247066007424951950463634456876250954969654516791660831865653600785470473299991784375269213576710297079766008557965708357995903437331576821120809819984178220383652408327151678918754328749745046163828958103140942001405945808457492940262694630423422788878432853170679440611375158621965179039019584171205647682285492198876492359997782156488588542607187267322268506169562613239986022185573070132808155903846230384481309375747772445713549524440691383954958159039645114840301650415461020729395967806218397891215599093452372724037365800724656249815546151421195401695248178766945981750101850667759145290946588484107220050158193981894363164641493902193584320943533410193236260421023540037395450340721639769357438667577465332500161274701522385613161444892728420755131349299443893047576438419333549276797227586642973507007335375436378958004032542671885741786661007646380928363301114360522357269617069716464883552014234859976561187248703796409041222663628076736896286780212135182066500010663320076622570588212979071297180249555228467697929313003292946325812370589829208367118950056704938409152423189384577434487363739915051913607987325988500828470006909738626914499508186948330764586036022487522339158639106119693507294691576503440884061568627463925926512811693845485748137272979356607048453634018135155552627685147441736103070707419010476164016150961382344484339116233672302515876889201018407098474912040214917748945057244090109850766440667808275797967333404859125596365143092203684132617135402688155281946286615003482493528404275984819141262625829085541590584554340380125306080356053419816535678218087953552971276685191792811645685352189233784533479963762665215614227680692847300580300252924558564629794382728819984026733446546315877000663878715257404058956586018551064722306821866866316492421228235437847770995337622356142285918956260249511849359531401432859204858393635309172091872006547666862641334938459027981145086700550803062974824659388404708534443403359149330309229285688409771639668356130484353859506655205955458520691210252457699276617697031418483483080301274051321649774309710639643437766968726109610351617909895179382668848779521735249760923849284247423374054052790874127044242502460672441984659556039335064139732328412172462767732634594598477374384388072578040927381038163217378601155045733058162012287510212609719815333324865091758079299123916436386699123667130726994998052512497679143150767866206460548517874606304697413286656837391038437730833882842962275195284398534386092363988151373765064451684271350946811156971902180315674665352381325521842977876384061692258219626984456748159120983086538888826993941489872457502792727524927188096094204954705659401890728686966393497483084888023015211945263079652409745962461831081405720206698538899746314760385701684630140144154717921515843324870536440446512953168586431335048148006117873613109754562815766619205943636942043678633309081389426861077208192170617843997158168781640496606656402942584663693120274293874749209218970784128765490450124095821155111322994442009435214227710296215759456036376671249700319656051797030028327510491841999386905609893138082211447233906553908924087849656885038929238269242096863166658819347699986314420093787859447124476087933240871617937972025147840444217082913773764935461505430610263437936362561378131541211162211941903134241361741510237360608421394996654989760446226715472245216357428515908987152631915647733465590034286793044023345254708594001149887477279246530208340766678101252695229837753985661326988051908437606809966013858215462810462990045156581859565241175589723872375815743576586389982381741216098038689140272313688762957331936099916088288920173028783534477762435184097484650093003802599465164458654494188859184619033583827483832920006304794511942288362818370092358815709410967398348780236708680960936046856314017587885820963369998964188937130643521546618592131390084737790366647363841708150094008926463019812196440324346555635022126949925231431447812799583939585162176398531016686477228943884707379844695963774855583095063761875238956989001631788950501703421287579689075747118514129999291627912115967712084072868262145323136553839599800778294000580521339462175356854011630757336587542026447331465260144726702638283379920300869819093980150203591417934578111148097827673082895874640514921606595733571143596953773564427838647075453170537688465399658025874093127317420840298598960667526899243081845502931378793657773469461184829183499972815303837635098255730630198441000336050332519651714237895589040484419067070585996228512515697172465179080708613660410906185600163795352054560689108595900049179463758888125214424891462543954666953346064355406871346197556067475495921998461398067423614945447789443731429785602291629298542244711075755060040258535427668220815636258891073482248958454487852981567480697052786929876634380968673986158686851622547473892728566755103665528003392137946025835286898531435376862368051429565990447619367875655461940779040076166610302464057746713762007670981898857278564822986791730380915578099423727051024941125931689158466175196796144198455050553638306342852361865783696613343217713152728012297995541503825740406004282100986034360089889234071542589311894322508581285892693621488902462770507914947562447058095387354071367780073159299380952651474861508774358803655423391381695680683922601610525648420178434713062184927373377693987109078359664123400327769861125921088442624906803076884218395196005632226555016416135114012316406291913219105852702819320965475682084135119092980952820014887680989307534546460204760325119702136340005061625662144566269381050174125979235450534458669909718443158576455374786655989458444764930447134054845470034900260639015412197037970110609481796430293611017366232038756509141267490091347358280250954951915431833394009777837593983121713958948090943962826995467596295414590306230121823523868055813502013495351361006189210408990211972089178548895221098170986218156747357190292875475122177893378410838552643671160528642061599111641549559200356158248481097399026300062605517516963081386078350060363975525737708326931630735691960804445791745637199717889913147782283296414755489655709596728687365329281826811045966432287713323104292750418956085984426454743202071305178164998227120121797372666949327810414580205442631030148554775233741837457104183989468677171746104577309278480917330569125961845036336054074160737863963588841854939411655979869723316562489904728079222845085487065889415650537751576970742431847645246515291339085544724987412683482927602125224266140200058319474573162437544477357864533724094857865078839455615640717243230476552888927736310280728757288201405007208729279625820935686039882199961280389994173113949336138299104832469941181615287864111934692392080288234448563501858488909244268963283942959549292525817047052048133801205535189016762592425438666848393967711930002167622115703546531156993939139105549809551379240718092439919011076228768401006974465169336968980448254537849362390769705605150461934162669686308582982765781707679717639301889041487696110262305293935957051309585886939228246587310393544167527842615836082161009192276725002356050579795167068481140849325873116581946494732095706820829604746136228944095054190129501121897405259854277946610714014132118253263992786781337763574322840364949292126527637779430067971323037981432098331325926711308038579083762068083675056018987091197554860020165875370881418092803286311150725781623867739852219373726158319806610830959388671643012894841528178409063231856003890598990400520812986771404098485518601749735404503392414793725943950200119484426954598126481971685968471378829993463365315984673474758143245122167674064888726763680428559736036406736804774445984796083321815567776331407748358791358258876919076692596356730481950612164666795040847141649223612567577478720124477095683455920221500697511887490965044397788450196002024368239894797994302853432984838048835356031642107053915848456414443691389289118145467352083703724258250991661611019852635669339442117766860937992942953932442044414329808581304590954469358866860624638375409737826918981142661347597739442382772859685464195815797398949619998164535285623619419433197308236883705836618299547820512185489423174419928447539916612155113812872380751444385036815255308809529158320987053193586942837008257778353693335934499848792323621747509454584531648438858629271778133269010135439240196331882760357921260662744764688313124724831232666629212229640074302367624769326556278859964494552658843397515626630082889431335219859878659260780656401349971725523702374969673359776426044425870669069640936415754294445781976431282820919026020352110429852325662280928043356386139152366654272534638051824342548763463536219170165018338068194751127644676265535050292991829755998520027389757721077551852895397782777475847734828566518360241375191554823569807512300641530127299677396927378737889286521335756388059751914996446111941391243829473037833421906290190989199589839346956503625030630962266404832442139412451657775987120340779673396424830010386488365162963958368968804766743711969710570321526604989273646760004219370044630234420552526767943517499424147333424992017693431128763747873920558953567412811026831887166475149908277155338436498156972454507008547465103720827985557718590173753103367930027454159854122897441153521965919941659218557422298444074707723322378552182412633063310919184055004553875802420562113734482403746095759053304062576425792167498001685451177134585605301822803112739447769791940641548510836636907232934260356786920736786515742365522587916369530884601559987446604224169327161655587033434818899306650648641480109158931602574763040633083271683128825292773503541956909554294571082261934803652704513409440476744591007965858337599488529314327725500476230060347967449072781886092916722189543979940585598685033593014294833919769372168992011388593778335917498466655175559972615267578681128364175027930836492622005117907036528816648384995342106123252748710934388844106904311653421195492286325207246661632770909055873884484751849340661592003486420624399840839016671144682487867214831197144980896113818076472634038725125918646545366598272384486371694762457878338636344631660523760308189804527519549676241212896162646464411961721697782193247884617199415799137049393396511545472256618945710841926781919311802159518219056228735988931050718375454642615693360831497462234405866034094118921787955512521807686621176414682775702644406394152062565410702990409991884141024517874797442905870071394271779679723117370223804445005885612312051374799506396930054466380123376710888913408202721328674572822972907350803913108685272149752057504064447080005862392091694182082969053167360738640281289749961123300271937349752293769949738315930408682792422597227275253459848661096698180693641278372828623998469092618388858488259269395426209340527722429243367254056049313059978016666811329316630185591023178791137862409532016210600896088673723216662786717619895179864091826828758091965400444848349011076877215547787281014252273933234800545698009835270395826079377462477756152278079768587252494246291494547386953151072102032414394152150088717164777009729234363241883304028211221388125232824171459219725923930462305904509447316184413699023322842966909799194572990940569692727095619115323783278623997974751813581800762181300743553047938682195568816978838548691858468117585868539882863496570503647642673229330554036534314818591183956672732621708149932313448321097157910245708749029713400145100121728115438372794789378965045888402821511899532578114300478083608370267386918909420901011869428435006347775614639695436236907752301473860411702942062594081993021125078937683345573193177965985677248862972572265357785390483084378976770903537987694426795411499276983667259974834924781167637196612955891853795742113783043258037509939071072549138815604486774687443662911251088848236285354338453380411593498479344885959413799543715368836406944075429880516597474182204089822169221652560277708868086323410437593584043672033170820472429831794934070922065346275061863126349817298759531315631902437227486670223545788359189301896658079005967276677519254352105692612811209329925796540658950589537854355072969110550193040327877538303776362232625077668535136902677001768478481904549198473445395872047530061268785130751601222965701509695423355870386479049437008455836173777506614992248822661373581056658037813058926818548041010312282279841664965802192548058086192900060993911707129668011688171172575215913850554437762940317821453272794114827507776519330539789464269635813348456279209642397095200638570139821263528452277468027707156223988366249979336128975565414696845364885822671623068775043569892030058330475831175310705847016714557702905648008199746781388572849332819864244172733514680938802350865951965510610954573553155509507319093106092227585839439502847394416411935854349166708486527425552073371132101040109299109943194640920705343753775051006870710075025457073117340728634261673263994380891165321412154976895976699762511441455661892755434280902871506687176523926322448137656574934516411804850976594408298154091447383060447364469244789181149713435787654062914370895404582969421521764656498287753308487574613597071784385884151650408013588471002680588436998782063519949291803486738820169993681198979706782690018723839634718546334347392525951011313160730004618866869675020904120060992923458959847589210839110836408078559838483719319903048200376467264663827606240493713766150698100612711280331123207967380941426331868158554977714476692506958490822067182528527796476789501557564369659516352298263052626081066387698397152899937458882273978727815734946718326116994278682147290231140482852242000828881646570736615145681941119463925744430835479223287770433569848538650206143730463780894371458795704658914417809098783499194554703054336074049322796498987560629799514670897239325234875760437134814669016298348257741030560647330430983108810196677643116098278999694849345235268174323984098435269475578049709187694124478613077326729789246982760918742259488276117455393617442675158473147454328872904978099711488320533886040406454925409177801904422676094480426092240560343680630860929500012042853547739410889647771124308870950479416310372881327995039679485662015834045239940359945519337255657409305646213262109581558225560284003657795382559770836373617524615960605430563707215706875285284665243816075109920672393557222506823941937302324762563190208049336662894724697796002136524861748673584560447268441189246592823089097143092479667599852907241532414608835174707112302139239870204326157503687757454005767190433743525085032523922715556693808981573218153761969043468322016327290321166450862761405686668455777545550798654532436510542422717117476397715442661893170106651259182393885577671921280670670270803892351093384482100112913665513503651477924620296111521738952365113137063348297283932746288739446856026111354236745051277754949197582667773540661748086810136688861473223303914384299902396460804498737395428270481778506487499354586628762764500981019520220419233829739434043259122663818273464089047792407016662075788182064640015076774384640919711663448368301689550299612286746550813170788032990492920897994753702009859940407187413964169438885856712217847710042583938106795690018713426175037730131143162028652759529933928633809139400261738090831057393308791345833144040921458210757369057319115798130607898131463143984141005102351254326458024635166611097686122447074858121134406918602388208257986331484892000347301369951161619957375536863154595482373418303564612643017950565239120204403083613739214397622416417323658866440584954005423140268148134393568367896155559702416215783203010447505454949935402479865868107871565174933738686723989527471953581283093245269534892877181910174569366866877696113924335042802328418018682179330900216039912356618987550556434663269339834254224353295597871576394169066525020796963014185311119235428693394690112221342481470586951677714375346116663813577903398975043670287468888671827457732755513381262193189930736762880997688441034006505925681897033397966823679568405883404818300713242138172130591416401363417133363810318445827978831945373214244643228661751116546791262251666877090383605498869177915120126753233319895313470707673207507978336115665593079474206936792744138008688855763589914758930431598532773038089935012577740650567670804050042187969621439367190510907980233235574923488816924676882758806670692868659467372899922353203409096669192064696541633128882867257802972016617924247928609465039834524293412495179779492602535843503312144712388556242151523283343615758649205785421319886139151666568064870009177668721247662594261918708180375708270814798294511819104042372575273556023618053843785140977488076067403065825994545331229465856414111535058082251761168014975991981795132878992228037583258721973696471713865089402342884816350881265366776311389609724404394153078807852281163853702995064330895523387660547921111605089995017391531031507183290656532370305685950401809048502974996576108842052661144782727948236051566261394907143895701000949447180803446640653866407376439928738537232525168471949258055707967936813450743516649616801556866201166952160429052279443914654409020327729302039277661338497473960426195302208661721626092021919831607933076792990267124918089735760050332456934173819292916745436543826573733226052155071157614779442834689073703028423570652253409509227068190692853122282728013361601717934985242029834481715377814925331722078377575426005989453055147811861076400915009400598259287476696366026963424744616024075462190628502038043238528434814217166094804297264546700123531858860412635321997458489658345819575708719182249361288430514261585602456674959447915279874756501300734404102487882224515079133395341204341034141000227779619419035734661192432732106254440253838658213859379465231031291635156380488043684658154269539895594151989723804584295957367370007308606465714256441462236207363122399715714493207716133790598844286084567803968079553540708832201675830125943725794724600426748773163284976150070808529113946365742446558995096312716908893872293708570376178014482489112281521053998111428749016634401138857160429457882895490726377472797034777554605497602851995140188701445773505362171795420193190282736184868763182216950609554763377020435007199671333672448949410746246474778165219103189670424306011206473536321000415376105037421098773277197587362998849178431724793471562807680480165546202707352069923673615639304254203338376646724682525751636112319317312752076423672172382213940356402292119419758897285510012472685596787023688129959920898421034351565837532863247271021255447322353620223392969475047395258148306800876049202534358189682933894347537139896315177652811472811516157264963475159095084974684695580449213263884203603997278088343894193785751841638906349740778468572871057367815791407743435529383954212709218807436744722848264407767679730155998538343731091757877359046094917501361308551677690231785556881392710543039029165759887831771336777260973121462608155507811397549017702705107312219017684262026038557316987903665458759179352332305058580421899497218323687808009641258862578782702918689028693185109294748968288705806320701338758028787611511380355525711263417243649554641729630279278765155600207267854173495378671493419293303058912827811763115004642890470922626548580443946397444577988958385558292174448278481109723042459958297620317305793214903448744412653836339274330992794044180649475316632263094194228834595137968501195367181414705537360850923384963485239824245328445778458617245047410824999943667150607550900927054377055359255910888878649549021351305716683845546455333101621318222697135786137252351287707835634661616731020983616982455263474052586162721141380434869143817865337124216379558582543014755857588491665133665933622193825547359457202997048813423806943152039962678307511059819776347386094609681639927544285419799560480938132889254620313364737345375415671754968057749155241608469000982710776423724185382178743502873480157232667752638448711865858180442922729016025960829765309887866007807106990854544489637649382593068864587206973990493435598579970745004157575609630205966898869947324720759623500927329341398811411500889922309508149929903771937662119196197466399447057508589194706721548946171359800763706885062030714073492167250288612926541607338081726330173283884537198317691767410786396258286534121191497981045706057155063183444924299086030576523887396740768259150017653871012875625426158808415967263217392103661610942003919751877913854494878033032943802493554528922033693919830605712607912342427785839989464588932958658054757635607611560531372023895699347444074696769028551198677930304951077010146739434431286586780906027824551629878021174967557873279958967092676603186154927209054471491998605075836887573776981932552248811127150564046617246265057272125232498457956854367048396181434895607825011913493136831804134298688032142243081986396970967877281271106979450560997975168388482807318631514102633919375539636893635151770715221611047100251661026864336142463542283396328461610724492758401572587608481991553946157767523043978417299065398310430667811578491846046853154986519519894299489070075394444701531263395752306710459906715819863350210363605202514198797193102796271962661349218092246131101182487399859188106904862662622605090698117602573540787782836557703561363079979071563112921359955071518104838844736483048350465773418884537357638774723386627658881081308761410315953685582354959624829375580992728722174631501821100734728743784946462406447636449850280220486206516871687729613937065978487104871412529772320008773284056868862350586234156140228453697078857473163357615441778980742087808899025490726754191585424567577902287074009397630498510902508850953982467177294008234914926896813970492681262713971027630293219058888163789506499579397987050949259996911176072649409036135344176934758095240566642972778763288024929962776771127694090423846522171902780488860443871712805793513835017313340862895850481890089334887054763835293403489164022803685279160414692062316901611863932028519157407325176101634176064176243728031604223420114045708505844104837660493065018486808491439475945875505696762175435130822466605954459464564635008199845484912794387499526251987896354440011706400392159043725664971611983868289611819545526044797916721033332261182089251815497828947109573229714241281485612010764090412534790989693976403388937517129232390804847657040905470845563263030346824010667022887267834820342335697087376703643272363753951681689979105404943456992848660471361994262154695249787577481671687114379875812185224619357915578193597578308914203389286555800210291749779357291881238090721902361137755530279980848230777583733378838515029414951771524015201827783995493464469346787641336702348336053334432791869892961734031710446105251886025136436755458498367447260169948238031332897457388171981009012847613739053003152712229311302879117349265057946451691609802830830335552697163892879413197130696747998571548837855836162831360043657080662119398892690087559249665617165930522949708510437071729486575297990071587323465890491863909608719050544231250847047808921617766121326943840646466380867972115784168834018897705144245103344312639537917683650907854305642765274395010916352196443944102001926441114115603445109724578405601323935420249747947339143908262084569395448403077821251461646002241373594428418580473121817933176204190033891174483351088456985917540862457945057483156264818254390785620115937661642133911920200991743819173306443082093564896372187810011624710112446267830901052568037482507068700126572254920863938575229754864820527821405966856011625551705197210054139569851706341756862087950885216115481310621718719321480663484280682566932878852697203665442287638403321031983941927219095532515778527353726243449622413867086528084481700896625611408951220244279420021843031057190550713841373650190271718395876169118818703782896843027262191953093122737302599565550196135307468519903775541274725138584606493191839522708669290898940062130761045991744215848156518994425346338321667348960716087704362722045816013096225624130467141538368694385658633051614240450680683725584489595841994916644568028720035248005060486946224819321847031350142433556007495206918721381565038995108049817428766059936969765585054434787396400343360246336700147952699888978521929612210462903668393122222084786690166679387435935440850441205435319180965745827045602362535107110315399988339917553636795572406944081023022881564363092974596645896848378610545724484460008081545652130555041568739416777752204286975665343985937591448081571814521694191459028946265068389460777627662944426717140472651062253409703945076185055952222449262809948300070524805973205711232388281795938142956744639588525101022355996773316407097951600156693970638745816392610309319035174572181634895363309141624535230113838237678104218464190708022814120796695926982554789172122248725891237161286650601921684542445276190551699476690186205608610141543725979970329947680824527560732714780306787812147143671137574629313035249260112042683638391650102943623529105432584070254775647226388511130114490110898532814641054028418091554410323125738483305794154816209199475774093204027518513507069939264381131996453429061179953183072789752064920386933560718202134474386108307012630832950053061265562267625615004066127807495790719143732175307271527497112728831760378633260269800441697038060670765510247483802115255773257071082163181640765201625154318698112300644367977525601197031219501555260792132674607441486063163470642392211236177726770012555444456046569262208058049753124359575211419018419485988062636869771155496009576649215260093204356250517005457784167560651245022486093699629952067311414212021294364597319943586179711154008220602802198228234671229326652604912316247344823378755609149074836148968543204971121892033838604680068196639310093529463744721573834005753073278594729718591604913670041454305265525463592858989274673149148175402022290014815298240368687973120138533109167073653004344248146505909995164999203759081011152150096730001086681963565565651479502457070422140044514457363022235272297703320500804694236857550991702520183127412974731893805195159340394280310556802642149890135874376780159141017814550996168838989849217901588748180175510623793681580939561164708546656259308750353543400791192382057218848258515558284197447872320606250387979623316591747904593146827750704206704004966245825356997042836873881877046122667452703610562738218150994833343293827640870095862279233903641599121433709972623234017597813460593641025181536708121956292228765989439569741613926516235777960470981575463156286358288324273343260022840857594497436179675334616546789624970661877556566971230105761146314446499909329469200554139367347207291429507925204523474734133545262447772347615799348230356929863808240059958992106913374241265847781665476841118261372679635974547945747534423225410821642860290685415565593059364724233301367244541887523720048318694461791355932575649625241056236910545821056661323585817115033919239254570225340807655917661118711764048607542061106664661559872260161181302853253663423432883185225108750251935036544951563450156020912934997285487515185286932022291379869447511741192786771523097047113485290861756978204794762259477840713064102999024241596717521336935333035105344002594046623026622642889185305647313936638792542511436527453738765428755717567048909072046907926584746888389829815456288834205022693790345991849077987971054185100770483512644945051126025216424578425177248306909299079193463067147077031851010112551105904685592828164626031513052998124476445050128471088107260724374284165079022677693965005950241441924860053287474116186120507540875325459225252745027460915644952493767811358757584307219840675931796926069780503410007382906435177684620333665005109374358601003726537302268831241561967353444207931785837076880335430201215460086741058854347295037140705216871894260055650198755153967106952374569801804328809987282895253574164416687544575074829698706354060064695116235941463796808298269309885254553634676331696763210778123273629502656098679102636014747140728397108663316917386926526668655334447973218102567028864406227640752549236661703882374828981005932495549410384683741434652141125491466804059242206640146448238909010752282757892222495102645020382222400196949695857023195298983110274461608759888286663186609083499057271316132096120408726147644362834277858303484250466155605947819164613995986985895312621965914628654469365280075688335917660152652862365453436965345182061920102318588392520900738591827029587158582300825573732680924657360628497021318748151093533895772948638195140243817564441472641562782971748968312189407008351069477584963068203981579519109393264934544215161210482819202401928813833475836188668682804679311630495653553007142261933347276149042917465456023304455604992230980559664678419530044896374860720131175702647294612319651660511121491207042140061632052027842402058389645105240293075064965143446980574401500023398138498834706564422547777317652988084795388378398391996042996057528814641364889913668031708924141378781705908957120949247690232573785311342285973538635564459203308967092877446558197313317473229312009568783722295418853080441396906045382142331417602623868562303672611434114890281899207942021463891685253332505321747795012628234177533213446567462096523853513947504898597745153178829668632002142985136359999033665853141352843999605793026275606260327132787942621732439324137035051345557956293231122166099033357278260915933175933966893500677654532964226942326375037958654414833131363389043721208913893687720927590546237131704216547800055937691188537466500261030195684397062452098749379689870233685599835787398390966447899873060790759292023669065290541249256150005359854360552590909114940443752493284893062161731528331818674081799876030178367700062334265107518237249824409615973863834463908483970742545038601570375697437053824936577615558858950574251143421774668197991810335599689895300525466500157948590017738854663267306823235726919328698065428398600890365380165932675223066796805352670598462627700294315032311060787268652570649201425302501684745854649792508666947611414910151387905226541332498566649494843087341887275136932592484495473761932707740716418879505162802029802911570606145015979001441864133597236553890407372301692723524742044210110545900065370859885541637700502585640422497057397460494658679008668089558884670926985676615219786059487275568593228626221011010861833496700319121893788756790396248621431428064601285820354740971966626845414465317972168135908769286291948393827848221048002873213998922133710779662569368511030319800775358782301177629875251480622777803781726441622775371809624058060476673632154245718208779374088213733798604209333617545919255130699632967726064601173890964182523606870620992244759814217315063780652939692226467118552326982006051015935935670926472597589458468872245732533779464749423892990613510836360578990670805766783348907476341301758621221670299314275506762351697752626912662126181940666519031519807245637600067244460714461058389726806254310365228621919033036965494382698897050216517599020638788643544228668432089798731872496893554991219928293807743148147828046151550644949287295157302148897052213389359605233313048850437852924224163647798139946901676017536742384434908326079177626472429263766644943321636114322966004407112841894907948859683751165717399117216598029801246020957994009242562366940225234798527863757189446421351125670014574060393188971339534016045012367346912056658581636810918102810217356960640010794515668655581080168622974094352812145022993293067353028846005360904585590049200448324638271068118814246163130254047768811966903018293561944009028770035021260512369390345334388660659287662010478742571400764395924424514365577899874493761695790740239568894454562728601693384380428936742173907619314554595414823945001386250167252204254832501173650101296692940724046718603066422938411775616733005611578780086847411674572042241447915626282472500691083676598162214590566415376240597516625903146592403867659589702756853323588079759470984609820560387310326599310291711080098468347921454723353618717657504204875193807412410520145623961192168456177921365811092244481132993413038003955338905707087508124792401352782920223320859624729854472017408261558363086837286581919897906842413179073510341338372975099871356786228358979747312507437223406175580035279847763069401564285164786752205501562172035158862141137389994727169970157649735482439902610650764997837627370636329202072112540275184060027861090438562389671513261999337497278479275719414668097798588917965651587908204381777516538522116638140353405734417476522099073893582717290271040781056512064851111487677205266569283838947145376989698057584874470425606580502719467468564821630950646046480571420550680867335493464708360873391894207435979303572732864885080736822485508342633498430662714222597955415913403319081183919292700541282312820820149253815214208333981417921586485764735663654514514066410085800467316843588454202252244267831869237659484074995400234043038448400698887066859892660813246857067263281141613022045339585532982165328325476948177468984017878237486375866336395558656923868220556011706184064220178499855663435565364691776751345276214374506887496487642715536882753059998796509184587084837716500185279640752535883628070482417497212275234218548982152363581471258279586413510806751843344589578332079997854508276401730598110151220053828023174972952413439599892081089584100736672321182293045016403881429156550115241659507426183895853574176127954932011301937154030415159908944316947295490762776926355692124948671209541760586496156963991947836071321129133839248362902212344040305335963301303471730294644998027346204214234152923083831084275656666577243522645743026500331833912464803834738663666193976748896855979430345491511278154531133076158713921997075246143201030951534542435586636242827055285377177838401081334752416875948426770303592602175533245960336701372667225715943579912517467947492814424039720388219344296098584234567290065200154370250154541860245560901935096438070421817019509204965455087622022133743042308332416757902186377332537281099666196949185265454716581329404305829847323813105901857278078768766866287097071793533638201866621338138373526752446295845654923079527210155700343856518410644660769645745452116643321828319391133522264591752673381185702508925850046114570783278471226857198530214467129860442168986886253693209978295742660155952857850319261421964238413025922527857002960201607135773447453072722878111118046636097931651861790188721722450840007638704959259408789222358696218774560632007657684063480391742167511245859191611849840480054992187017780195182981207748974065917756234820426761343759846560895825366317265952342685734677867099332727603184381956328002228699607908584056618744917419946019758664084647343996901594257398425663307345847791184215252661495662618159498507937804882956511585081133802837544024707777986932063239641941554956336107850156932060402504217450062033542036282216105663293581832542986183034955182419114322415771214541536434868315366394272391837946765287378737241856465751340612049274589409420433936930215972003177289428433742486928820420068844423609115823938306382737806521283563716788212524269050815301626167226392779088644986944024440444956258071702231017131706003736012188411915799462761917698630036547777938491142844043258828578449136309248696397145552299099932981758851475538025226511926765770489707758078182506401320956591442069841917320697456837204799653905707249138165518768560475731128614735188545542866106977974173549101490258210275807012035719292530747022049716935362698951494315251500476179318985783325488841525625762703913823482666577192599609939152111810710332337559313909831875881379960895833407597120129952246319065914537378681188987665422013330977300377245246419427944719456706835798527819962907068086980150749697570233568114664283691252616144887802015109762253169225263866324520655271644588118710872305903300526539503088048538891904478559907808477335870480430971699863712393057279418444005067672223031676527616486976460172523465376901347773658537310850000391660297022737971076054798143282757133176880136750025005438774080229350284373675555171705075589990120043900222172423292809013721803195280683471247777833198007054188435271250910245844348551033008246310207480137688353400709809485580435393922496689223177951843369355191321487600206353965152902460509914816154465778021022860380611124953324528785247241195912185618012075496620431226038558679200808950452993014948480971981856185983818536530215691761392294493164487672147346763985194744120865401506530812268800214879484346631229697184192352316027679137265267311609981886170748955464903684413474399956258033779624956272648965259321375931484198419049898820600968880409259659282136435128827068224364289529888635819807835696874158092170814196173991516094160739376233330904528828070595356796417415429547221775769556415404142318426508288732863707229354455298341354108224095239456734649751802393363296038243712156086096217173898781952805277488570487693423678629348655462681507707554201861890566600583386251038495294287044586210154579705207465885488475053668233512679270067398622706055592881147912012042667972996606651857821778807601920234622264834166194301655752836177504039480015391820101677967529881875263917346186077611012072923473638247898369054851893262574730809519035625017471018541872395110962203316265836341090738383514719922809425808675048160724011662285122794947007846465255690622772483183094778075973645354961937480968434981225438617936193246089093309765996685649192301562542986038023870675269823130296250851575446577243409818258319247447837661696751366150609877139960259579532851771072573743691585392377404166945037618863924842281598449911292832971552325444957420293703688284738188262397048404144258508613559097958679711194149496739159034024181420672503766471470313536283863036404763630927751902517159899535560728122787864500814050392270221888471298739742311073124709411832622893570067754211706000575205028492315691354890508427760733588329815380461531364115532786496320420381161197985655661901350070573367346510099957421116501698563019165400962736037611257861481647832136000865898723558480938902588047118035916697803613185491343770149861616989461616891302224826612166627736273799514563986020478961400538681266154105112821870029430594955975691506490985367295324100152066541373788371011336150375533090609767035916017986502490129041179802020977418870554752130336310590526973890840153410322342642790119164435088552632509447959291933703169369208882728472921155663650849881732200626467962887659778328391095560465717643743131954783012922429257653739615934665372449140603820130881684150481812379359788500844512305403956234886505214685684717367138250798264963149821290353168123659917184975594030213095005937746178379817053622234083221843227136600706230448573314128506479927749002795860892011042400874679606062989354872697026458409896421481654517795024403133229663701986172002169509849392542364224911631795585674294469453869776735741729242694287316277087307719276213304708084980035656749741166383539302166450871534265527904262355717791551277808058657863054888523869331324364412521112300557268682797837132136109156501537471477273755558522663381522328089109774811745375945482100073505777751257704314295719623653040491219000088242816847189590871080528257874939665726793685984506716941195607145334447962433073927561873317789292693927716706939059696930478232151703071763392977109782324898564369010980352425967790827139184713915759507929056202774727586979361296576031723066747852334607370072495155423574972778620151515130862076472027145974465089342389058965695197021391042760134630629604339208100534492339941059845975606545550747169506908655095598561427379461528975742589674613257684887723434045460550807191528411461781340313282940753845679550943027792352176733428676903564028519210726033062913735062706361529622499973504140090326210155232005639064928850312190835566792685854064427123624034933920472188890929940630808276004902766134160993064972554501071067862256048106230309703470230130673890088310984875414794286044981159465064110694790434277199933067250657379820648727026598527204410578093920518920238050953395414851626059346090173834803944245694074178631165239235153844626612753820187510086110247501438318988278307931404810951417440261714669007668758744478960519873627652537981119426068288583883514059125478841160033352558613413215888552768479713453722584697846984661963284723698641796323976798977017164662169513362531237047418588532687537654611712543025311461789374802158002600814041489120990366607519640534846505984418032626241249496439756620079402952714484596685966609736782101911406016192065604944354183300776669605564683448363549814091430684136923970102737086464497870612614431887780493060945557988263150106274081802244297966454101456923513432627337104905966926387266336574949698997182744736127907034458127436318454459535032777447805432685292553083797870866670335092962483955505709854718841294769640667882804848080849949460403671750539114827733659292730928779889255599920878082889091491299027920463541039756249322056395929226771117301655081553743827761105990588666625686151860570992079188814407277139141335881193675914722553186204129877181718550296030168996245031092667923618689044398360875517731941908327199733108482384822544941776615919989693934335740649035987645531088718764402311580405238372729065810394049685861598825703671650254008394855875198054126416092353326462909584217424517083783331285794469706097106708986067240490008327266044783864620058420120835363497247678527760295464472538174706403766410515643247736737231624824746837963389896325294255396517459105637525367835756799633227987131248379422137108185428119644863723784046461525083327388131556327693441429401998433628430265838123329849723625372376750392670036739255829222314977804621218095809335360777769080618010281993927166892846153131133100281014648053076582111058325109462036068186466943175899623730655964432195011981481589567126260510498672154964117023899210429134950275651440914604812832853919031347468836440535733151482831091334744811987236225500576873953829662148701953990170936685439641164686221187603119562990007804282518994518929666609238535493761549507638875638654738230653788652110950564045070853877404013626222341907231275508022006204672810615488010107998714452770247838644082413725541204705838726771031663906081640283603288163483212618400277862009460285206883977019095912155409285803038005669176959910790930849744909773888769836946149055232243211210352532971300145993278109271076709119008863682921701533618037109965981090307194802607578343592270271613109748432804501735553512036207627284106062870958161385707478334492039631281021824771619681001140542143542423338303535419074153412427972734427546083476565420321143099805280214349734463323012593850823005780060418333906250487129724391091031621529313269210127932112200586340454877731335898337673709535348175420876087366794866512917818459848210193110252516443838591982495508274059961132902567890192267107004439758224864442865115901963232030862348958886071741622620377064321465921684383213221394256941624466327381608959863733317409422405840650712306263929849493478194543910302174188301217713542165529547256399614194781545227378972688343337336533595559121016806849540123964868958706685878908737066563803090922209011277959605608003227475889265976475093945128323075399026324151796908768327251896774573970222702623561479082070290789564200915325307106970774990804571775019061669605576357792485242994678660049706289602564571587143991642817365909933398561653387130579593475961610505995782470171618367447187051768197689393182224597917907954859979883577348318943456114909147859050977234620983488678335099908332806574562582863783838683167111490572825324095566958631782914994715094508055630308350110836232521306607911152849485176566935675150821074880541627233172699058233148721192051885899292817733885299898935779978827717238620101109025057477961023267289481441807757756687246969865252831710748509536507263339383480333697111032086894174935523540741073004135852048239589788154793131591227827974676013806604764634390292945908561248084140699356712359563062466649352775706870513861337845105610027343040396120578659972141235246068108578407045919492039643380293457516261856252730122396169323737168485882306465944552230160289226584299967151989709618461882174939168616504991985391776633991828886821342324844892450695419005451511759976953479234488515235685488618547735579884222496353837497547590216636070220557304706739472291868561957177671994855305552396577113173798571708914066178408113554697309417576438963762054489310482185996870485016581117687034117114223559941402756952986925546794862457544313257165602843047281715920441743356465088573486082139651075896199374559504786700900268859223596585148716707752966658868409001012026110782885981730273112062737004419719171489304187516491940125527710367044969247263797509155082080792044597998936492770194511955551379880883270698468013421483376764585397840289681331653815348204650269986400328461653440169203813580002600471973686746598900511367449774748432480698736672517377625150795182262688026044865962340204576825022135260402330923750999064042372684947814761127503223722246385769302678544509435630697415791476215070098641358242065234476432604809806023150821627538004942929594532277840423940422344419941851157325528986029111026448473083153252427205336656436151420174789259511631398923895160374075779380883719150733769205913882234310563942176719102568252315086797251567018133831890643380042440733661114763562338832251775584450369635702244000262643208951535850065269037756957374921850226364596801842491624693407325206150085374765116870393796405122479850596329158900444689279594460272341791520159281971696346434173891879605187198918019215512750307719020325213556939024073197979952800089059699173181417771574614713082898883150246650270721291160625252273686946219062596422201258203409654135122090214650022024898706742127985301715155913595596146665914089990739084542755898709096336385179807847773681005775646243367651081635614001605820195238808336087437224708992548386058140435193009739317103910564030049237662159745127573415331033582361859832792570610504539308758117443048760765943537088848337864261462721597681908766904175959300004937088932605780619735558742283415698790809448432701004332699630638436735886211519941602061719956404500403384917493543255135198824544347940593618792909111809805216057839871118942105514998295594370467812370660809980404696755963258700712722320124692989269719907442933818154409933764646776764937369277259443649613890431518616453350849772967436140024920708148516779714584954001271769905197179457682671772406474989523225642542236852591075961907000313565719846422579587889323539359653798558519691318517610572771130846157647159766549191319529332389569844496617176684560165547201731571199784467898656688649272653952255234094889936642227988286225580484702148447173262736245682763386355699663220498998024177138240968947757929771317188253420013850438045320921516299703397622790130017019250457961002273192580852980022203279640621632825258577312335843475590709990162422853329237162951931275014863732740461087002141088234472653077519378112451217930593872991032647075227302894587799396816037064845851832329403247274940123321364084963614480130962612738258186355699845382932571792720200289743113492105653123073279247253611574011208965987273075626716906905524424004595307158515352761917643756128084223059041274052974129981886160540089034548042619216230638878037148365098274559438861375684853747118630001245390877286252596316301151839636176709830139662601290443674327270374256601911376629047191552341768690683796210378326701357657462197539558534686608555073385063519219931062412306775231483349077323866268048908426206903015001843949440015080358103288908651906439542311499199645925127394757222186876757133868495203317275314618679668680674099298906582327685479965319703166956723085353345228129523635881183618094436401709222341249034617943947295362298698445646994876984059070529617390261976365696181149138402736327394373649141712549685519724443132474053083922521233768868628511338564129659586742718445442511232129658788474421909323744095528369368141059341512436919036607060588197582226746480349227881937651957204011198819506142691517220410367765598087910024715932422674946555112228331280993054716737937318842298128220194836462236097425693791807041141581011146141802465210053840564917627852350936648202863355299416567606348633665869120381348824729322468122198494383961314450107480778598315030979514293299800395207730133817710210769524474953757568768318820183291172233129330947718183713640676203876670346230405136554726327058954461651943957990672494278745990935514200114748869665106782197490122069757492008779662796889441037218728039486553987849321320688249014283092182587675601166285940738338583689848981334210295201183402513725663179169726804330619231924697560319817570303420071544858915098381139045018393924611026984655431730125715633295931354652575225453498210238189412327649235267532319793630474573784108057964267795850083447417488135591320916406393475402551445172916037867786125119746553889330447959143188613068706527609721269062531821828923618531047393688557020974940469127020534534428444007410560250635291674780078309381505135693787264366150546376958375092260926828154642355132502138038733296979104202792296916040921850980689117834706429758916983508879018953134118004244923445449315715933542804286616928493844209518839706946160509131232770910090764665762239940108271068276614681805244766154241447920360970741857876142411862973891362482905188330909043908132356771964084889941539631140001007765243651074921614293164476835404650429000897604763711290595044697503519509799876203061571213806931830866237780443895173853616016415150858821074981973084569368459364858790115320039977854229955198124620500460918738829774067116622092668843484724194616398457787242666650355544047119147148064400029185014481513316239223366990404779250059024629389262191825676073872857937246912073550989537434708083288825135391144387746154854305708018675806113366235180245213210206026405998793250868390696786660317391479855667986802975372525335548219428344870395464570325390981509707229780342188052600011061669907596376473414021500506169396388309839431005276795187716026532439693632714249001090126986694622539001299724607612548935056326600566229309937751462208036587067245252167832690411322393834536157941679435469091641927490111398325948295709331852211005893419216530633346999869852932280774917188693866737571245252198093395142754136400398800110635054628565867253410442690312196325649120647943471399042903803771977304707764233667276004745543119927228658419325429111573417365048697836818758099096873965970945713415751142691546284505322425241105828552505923013743233687689853069617430504497416443876276437599612996765579516717199642788934579344184548222861901641164113947476884834714416808636079019323981215949292499671580723043664162725814327688567267375881420922769031357353449350384687393103307402722616822110687275715818063297140640139012010991550748699861234333855069074396886094279793259305241715868550245581904489398138387144759198379025739772223386835666663096677113050327593348694936489074014521418466920800847727292570250165073571696270185297645440405246740244677349543955365518907100815704894333464135323584552900801588982862572892218009649145212007984872327697788577399701378590848218130772251951351263474937163450378924323867694980013446014328736278573964361388382642644062736954322702781461426963737610974399317130522608783088907580478213212760925003638000170168410778801085749484288968062995065559659325321175689668068452788264106096390105569272251040565004904923739625276956974958812901620133666018695575469447607356760686330187328389995046745806824917127277828926001478317983119202991931132362659117128431737486233429754231651740193644010358611776254923137309881540933661767431473813869512210795843805151226221499104656548565397922550966642246124008938296993332705987731863105861148748636189031522129992346975237453201729487617495334909306265767505428287346057348549564154446174107913351780925604575650960035915161642256383224842352635874502518473514152517787914912340504131474294514867946973325046235410040192379725347257650763564378290673070367305370581411715100584461030785720371859842259897798523423837523747801438718568590238872419806825143800476193230630698514315867501856009902391088801530032296664818505774537597380398447154527941324842369758159571559596578382852528159891477729110258290671634310243763433751329105067291055659887656386933494170725927598457954311390986021857546888807489218944341279649359382083654006059755317145510556126324565302446328769634502170374846175181549137482898312280409214167582352668292949062307808938623612666207534904160043109609453439523598724804605799512986907555168543141914633758394813775015114320085566558523608603120106254587059561993797480440134756702906662885801007118186983121196284482509994874090678884912442293312786583362473855281498142916385820180133316643415436601434619533904929978150672378063914340950958525893009029725105386384126021482904909035176440385274054941501797802880880261454863951545636088474811431475243119538284045698643933393914597466759051403460456703271323130979155141308220312772872776409639770014523706067880669392694955496768144195125170063941421087082554650003133634493101566539040612860656404091830495651965405917584691264002721072510464990961215234193633867938397313005073117089435596530212738314442818204077547311684007672648439009302106527672903561090186566611571449292938498103229563398034299714842538018026040337094405368206915890646952293340371455425375210769299175940210539376759317553377386805884746133644448726398782626054832837749267674804185373122705085389572657090482996577452553254836230095891800367327613197943151445186571474411465597016553731192058802879439066101275832183090802605303057549494641967614013825523199919943816986883044279176307495939443442223403540962285176824048638915777490115695267505281428210609363440817337916641112348504057894513757313192424856879503172925094178823683718782600399747959417730625232904635511062074404257077017877194086479568968789157462895730253526632348588688845675203348992204940051990094892673557417601958251675004900119033624363005394946619406620365393294976423703512395924687935662885877826085336944041101688462645446668826258036128591376010511177442147011273143155758079472022017883801329707283792589054982450180107352690222856645960194934023776787369218539956769115197104727194759152035860917406013239556393426125919215633397879026546438665090970568216952330845728429609743860159618204756918291008222306390845624782550647574520918923849592698121432134619974566959097699344264943673291078595113993452206365904308825867344916330653118514071631965652741446462806866160052792458139587984221889491603086358736669220955227388879945245262652808086735755569935663098842506994513962264152090979608995959304214573508637533435038925316709371735086256522126308678513663466446036956775418168134982397462415956418764870088571878179311066788876766194530240480407187934277857905793616938895483581965068592058596092389465514286363590096484677472431815482223581194819513530023783306014976096233160083964014091354151434157393169463959884057763969374190773692060519518404911820907421120731728086669485348220296348172259514064500076089213266740414837309668308070646750070352848670826027818119696644693340974711773524621729324486450099612627432085806370868212885353252398289599551651617508162657323785148040064893462567466583252415619495550978139957344239459545417253855066467136724645447330488586664660945576281179288213798204417288662145112990431194575641769076708791430629023947783074700131229808436751726967522132404712843534112355385700719483527905662780049021834233810738380220533811170725069817698793235504948540390472364836775100597639800295766802073095740629440369181920851413820851839990776428838614215410159941698059631240082738907301731737850775812182337771596472767606541557779201035665077754928726349163665960637759175945634142994131548993720653849372060283547475986914940202570740047122727229524073911673859084402304196263376313694161182634328270841523724331773744892519484805329913676575653503340436389725749686385801074403953928024141159818865962171659770689069656193811184330238432087371870113858287293610482195479426869957641388697393520753716694176731877912346626590824619243701306113099392604001836064238241486950532105097702343376369486433360327344557713709216712235643449873702126262275717316199375444764618464217542826876192680862209625610241561222317086011793637460558970686918050825259634733936608314762723302922469936650023274985924243690237493674542001150462162374065437833155758404121993212373393151309766264797262751198410895561312702470189830311490345191698114576688458917982986535019817086092536391909397686828050935824580987158617928652914626271628471638248428524241423134143733011520130515259315753791003447980188806098470816195561279767290641186481947659868476607164483946334118289958910333446289597033926386016295975749272825781574398809422581285821418402190558159036473720825765557392042536897828032097280674153680219231778984369441327211922184006785038421011279403782654469416556091206520909592112627668995235012198938793574490722926733337800963839405247443751978688578690677345526942642480899420352574984596402995878086681220053875024253269600038556505278369273274542069892200451874041798178882711544961155361265558741302043511983934462628276659637991242776548635231980408068007805815425591266643984462857426133540030782595596348965039298334647538984896414559083686541411961460709766444761362001536097511458265900894615117231621736007431890969557383774957259836415067211211366300029482629806915659015168223378764371907920231543972670041811286132658472066349194530577802554063042163432619314381008704601420457379620737081853826561554910025402255262781663366639545732083535856780812616521833023700451551994332586278213628887037054715845793368436947028158006979813211842622577372478872516892983517619258861608585305517733092884857957114801775325414462954251243008394321213719706722884524347242891047688402087372306760136092579685823073959348362114453478253955081293236643024480394358506917718000361103997127149687819485820405927113534286233397297931035844396864252089546876224034021021945334974751042342372748672616440520982449937196312344116349692703098109948623464309199098859067025628859314577287622991339647793823890119041406172061669018171654182116492848074258358947672900728017315203346893330346207540294235440137543904366438080873677658364983411189637165895213493391202288198923388684813208084788214905524587176299842354841810771427984772194802364276720542702005412631000343715159266306397813685209383234519590671155446410071701733590179760695972860167030544036913730155051466794080419356126843377658336436117435443766613201032074408702694056345054493977036982680824891638261129574073423138567453414732428993378215621986803614635342219302953577333148282420362316589157798681513657172467489009417200759788296998074611533153830751496879146790057122111424877713281802808782466598386178603674511913574515193834348283067198996078159363100133363825116079845528329749357319794765898116068261580058253490454114149810923885542338639767411102503810004026632061091951091519080079043191303982582095935333377341411391636752775300885948432845839159031611442279832221337676321815596113700133627976539016561268173143804512945573384107601653515707866367852955598261159292021031426440353449757314395277806187237971417446043747532532245943923694422449690375991137231323042463744058087590682719704687131200379932543533708400341343798579310888775800854055485681150513222189225720832634993163884788670116170630503690251094902970631424902830153672398539580604737953309037132662680329760377779585031656816662361903901453195319786164884010753202135150738809428541957031819396401109586596792998534654833651716316529413877740494201352306760313363046362460594139946311116918212518251911944090567195350985238346951725744246591362627027655549091462505818340234091820342691293783374237411693706115836631277491063803103813146933136871050120876060417995246165474062142898648953056719683207415234114449887107622249944306583439678101051215307797526184713197167063623345391081811930121233593111224226640958126910365996367670237127334341995161296986699273554630044256327604392808893996674445069012472807091219922017516264728234256261320580689814800099187384002898322330231682734580924164055087763993772130577645164051623903858485754756469424082462150431570400372842354787564509025834447594030527165572154771673399185341604679541380798821797667469548064563993880077421202722855500703939046472276825874139651822263129889218909339278893188867743353227052872155433587697733344146467230498030750612251953656209085747868607496068175399833695681979481015581013254217473669754579661726582282440171093294999334950465893306376397566011440664107509263778220949528792200983079445145556168873347871185042281968651452527882228482832479932326460413964506502731100301715301750570107509709871358479883874828227005184238732497798822578261020344244285269566364117980753906742531897905801294085615278679923363871472444189894665083684115357848801096673616005804393391788625807512285653873193787080140921243718587526541650143258393114749701937599930030807716951106109671637329682930252751373611543079398071533361834591046184751543226629942056116689443200654754451467736625996581147399975753518046088329182907015893284131484240965739655694165667299832500851301917804713724093137918684606698881213495406902987943610191711324989920770283811278941982425848024556814381468476879290463180756138076487836722287488667103637042964372308376338557702887911400828962923925724787862830403608219991706078218915566303940473269623778472383599476691097928618276058048051006176336622871904786889465158200206686040666040010100597294304388729331732786612490208921290906656217122296898567035398380752479522485048664590430555003911671361151612386600181450315628272170515865315226373854836626841956678888209643662927453514605230301834815151912897991702985586607445377771127220927824107075262956253654222428584129629334552107582988032655857244559650158286350604005771584620706186945377788491304258352861251288350993414871663026991979701985389768079459826784467191141616499599430417558680946402067856401422058096549680400489681972552736017948058660942966685237170141042991638139047164174454641924546669316926416229328477307850058136094422750529824808338766783965914215428011427774018929257715238498576488795511448771057285504602759619708074626311158960644642060609157809920571441602219552774217763871648453412090739979084171044354575255666214275516104855620659792708717465759245495286575773741540154670195070020517701238643228716009126791050289728463578650257422317283455164549617442068791334655842397823830316121917706470370630867968924034169871732917145318381477065122638782709136778215852294497143707960559989410337665911119842142515128109060643089502503898306094908859910624866540181071618335520314464033369010263360898507888149822186261574870397424917791071482478533238075414299199304350557036543236486293829444055251530471039883082071007676978301095460911320599614463962824405089370377962150367885616070938649010981351611706663013204885835221724876842496411413677539971932938110426557197083308131671012133421260409219909467110412753120214242776707939735909286113920712493018068315139436789001458365307967833029495988317369431866953589859142381450802111444857898494975897560496960607740245261317304538776511607631415128492026191107076508915285775670253799998857405296183869680904739824152950456077063123094066484008192620333016428956147554751317833438300981513896528635509682881366300026298973676983781679934924101263930264861417142816666333363214910834095527178105783838732977403398169938474891489840279626315389774897239123191801625483064771725490106156209372469304201254573920071802583593423493635827807048843779128676235061967450379044802657532963127403178797081161086109906929406896888859822425077951165618061245182157695933265873449819267457720076661345062645481065288375079215613544476964299460044793216866543799388711927072184534446547267853276286559761377389826281473758482172042325277406279825168421520003809158053423864824022326672017482187728463145924928381757914266744521825752463232297632525936480856751335492548021196834942020789569733616680273280336575083366597833436849239412168217887389428597086141907389202906811814921999732083643728605117055146766549837183062120467974207827467641344969129590461346866096429728851060062900382623961198190285749721843318310388838363839031197967385093232554401288598685194974773128058481627856038727078226710435707419415190148280782881967335930357454252425485012857107464684734519387796475413328580993757217938471055335166380569457781727788159061355537559614702459845532241269620103547389996039171610358945601847092334871893896451913177940929505532414893769373585521658443790373100497353196942318574498390303664949323588750015273447251161940805818365573247974483653098243494011815140728666125074925550525611432953580295579913016245168485336184683579096142280689517299161112721666273419949700058846233468724311807457545347825011359509239294433880645757675375361173704233065956516549626932272684239775471904156231444398889011183944067345250548438665417292444221842244514995255798873386011802428665198670643305618458889400324139571968650929404544237150062467627161990816565502014788466226436052378775442503868462808631914331946991224062828562743389716816088947809959959178419692250060703448009495131636419050799220731409173311711680124858797243362189750416681853481585789093009043724789330837198405923078118650123863154168775757193183409473302515966030738651629056094698023018542231624153834443793884616431557504343545178076491920989903693989137138566590239406936806951490908370643635776689450134502789842748644254822983256710345250534961388041013969827199432165383107533554074160908242932641737751040517459209001489771917737258266597229463469351383184859030792199288642532195608813893225416316795033771628784024891607858236815580542181770015021507751452855313344416270432799654824401561205234148719391629993571879018232328558942721995777997807822675688140677768526073408201558881188617247942650176275233289028553525590294438468477730495106792577325109893572961395010994432885492527900286843209088563441177643812183539045215269693120286861808146333379968774514439363158013679276045451267353781511897582751695576972307621764019391221218580481733518117211237552360719757197745734884777970976913360405162123983342924340959611837905499394673140762186767533179269266267495918036132160248799367179735026098611887162963333565616633789850302505016063547359552824461517599849508255108303898859351622132855005235873143918606888155415361571436224755783031508765376712230455284556031978367549956874891043347937949762612304253632849080312238106647963572216093881504061422818606076249203066992149263263853362538441531863830951475113665644197653772984116988822102083660528072425980629090756459538878988828126298532787784447147077647239882405044121928829707570846779248804310986670103886011794977810340445398985940874757562182055781033673468324007458451647252953226716337246721001213466643002454550746238417547055636523752284308041478623626332368696328682538650596706209895677539318843038702076369968989580100217401596381150638055414928756253114505744518239149711533060663040643045700615187434270212589269819329346738428538736885463338095440947664286962018012075444441237318510462831277082112737435821065121901312024961123454611278520951763382297496096389100257437413200975826758654322265850671983395343134289920090542473596564491823827642496364421189093205729774839447717782852804065175181506216172061650038863467881649365355518764218861418874915122506998673754587884717289989264752794630139434396969959172190490346495666280013790482728779024116827211660389576664798979327650173461337454651313682483959477107498573569066411939745554812160508417724006497785094358955815962606310765544541243753833373362967071510591566230401322413827231705657760872856858221023693310775897904936912985754237903321438710342331237714122066987217618634762604157031118111456953201959236512739124287872385244540357518810773178874290055934341371345632016989784055983364694356805905349305842833329268674556092461205634560469130306303248426405455568557082348234446860171992080778351746907326174038603282494551451583092742551083898908540917604459483049712299548665751505592624323282660986633694512339264428334565065187826817458447787435850188934433432829349356243794274761163721942488710757143607016795539650005278693495675885181594532945260008424731628179307363382638010133617529565341775027379609340327173480985167923647521736306768526793366023946032149543869809907161301288242420784226515133761681683515421111039591174854016258160631721050620194885667134134252932466126113102695805542011405895322483507841599680863058740310143058238069656734354080070861853048018461236953933123621345131183629384091614099919674616320092822182344489654088504979059159317628256307664975298430060896814886365583129750465309628901302337239378943134956977828950240416118172167854734088684208710215458893673396708325461413073898823830403955439175547281340729632633848128293884139572307187627942181220204493108952436545727378623770703834401834457854227940746129644680226675951105812364425216399700118771989067810173848222431213268964346259291822257873612909930638877550484576201459084287786945715231257502748691434241134505375678583858317287677965208038616733091108310043418178623065594662480705973238393382167886992751942009330751327763845778289421801310854734344833797794396532617297176542014574083783968255176698471071936628338912261807950623369338161983712183125340487152370901143430904378288327149735765357228497566696687977811221166326123328221580007741391306285613838122997252130381809941981104371335677650034825615027475743576755721929736187775138187256824528168549944940723282880137457653628886591154748619112579520780817396952914791904312152046171638647944245035403112263516681047930322105539755277153530996396050190222553104005571418758573375509257970652102099653378823896283040865774747324025262800968671066701997987689995470916304484163205241978596899765446698420410397981505953045207391983203338304295180379107074442396905649159955488887019097684242369595835673785878194353511234561008848472312325530733740842297337608530591561472729217568151209574940013911680015380236046420174097997243025861805457582017062063143346419497152266909894953252758163610208434948476731141861678644521583045137233797990699347750625227822356914113198823504045074868598899902097006385672119123225137535984089561714824083668635854954650957306514790094899856125424193512735997665806810915423963222753907036395715212998021162934680400176628774523674517138732904918563984689189108327658158077371320999235584631526348844054415325253714572885401950598637945646185678695018763395402228899383743262185711594141845737196016662446792512703021829043133595064044256519327963542832278243480856234387961926924878479666330766250728958312006292914537878632195629251491144115201577971782050382533698950828139703135157336610435440506844717548938594476969675189896558281667737617204028663769254220303707066373584366170953238161010090955621699896379265007541238224607399067053357508503533112375307362587411455567602705582657996379694426684646396104164722165583248359442256845319458415563015250032530101239765293238081851572879379848448178952472512549953376390483952884761702649143858502036863413664646017990013040571943921313920553979884835479845237646110035012420667908749820403250057026687317370285440049380483860705180066688269540900627382881022316171746177975047683309974946936044351227876619438589000885809028151760435787796894020785529624965457929105329848290740502840566307865209476517622374351507067379356394298302392743704266867527362364545804046610312016012383814989527391111870036044489417902390699619472867180446902567372116989766597808090452074085638652373766935389689568839161174017516745357639976983699220677668329627424149322635282347192128458144183885868388655720361839554219504511487021906072889435911901917096926260015673193357248707433441212985367167842100970873884324847437828764538408222764855722075537935994763591199806921883039216490951818619811935049841840269183794889791317387820859145975853359196357882529994083903069820740459752797605188151968623050146843052701568368839598944353310459403133054018320003399255097204208401186024797502089977177653882616576596597826339232161388817450491800958409788129962908007910006776637208124028246857534901840804577274522335031426320981059135693977520834846365130083350406723573089026507746012595673160516909945753283218908825788157299464509439166567208494562666824992209802697249740737977491373971964975328206939378905566362738929847044658313298613014398938949608710449964937531771284950656528720311861788917750861072774777375322285356777601280284609530676501013623745061991143769791611827507405552600432432155092521267137474845882015607632133154162515005181013994466815808447527817178381300830361321323800908725685815344956870693740940730200909085831166708584245976605011097101431659393579744837252591474996264663812935418822773382979739613954976057106488224942595187614202461243719501624630793007633018418298967805680109257129680353180897991569138663294655643773501567992160536653248521271842861757480281182148772482972269190380123069539055978008158311272623675184252017596022922445423146472556865946979050229182952945110423819330592321393652289803373488777072781825164062354369735553745325528881786211921198532019517825169038128297330556447771449992213294783140480980512237198974751662861820035082176901297667503141952218188740919763551002374956325084759467061194128848248604538193580750645911634881029724742679246347803969602319447010251516551125937449998727912981336946834566604754264952907643483412929139432243252720822922656801282130842605393480393565710592307426162006034272539694218051305517925664330406396296494695985176040290902142550985770537753756842366169123743601692242016423568026281156891231506720002088629250312640206523511301780531331463389436096477930943122095814601543877893769244546109708169394671046722924790837531043620969946040882458528786338573916218175564452844494806559753683447422801723531535485304503974407218587458220114634920804303033259361270564362522885762248628076614624499049708009221603734898982736988005630768263249902759859540160743831677201434330240816339246390405247891503435348799164701485576513801087841364614972294089610606161092205993160086462885571352091454384790215010630827374818403007432159699522530392957700431037064360644911702004838459625001818495338764800289412771345394944533387457388584738637545757131524230537548797924738319295453453355004297693025676373039239694181961054261814564150211401957681355466105523906613609328600017905299159060326653333727610674493291687822701623459065676198161425760975205279419346815515755817009708490419297950458558669676958155388051007884886931405426082738808890198810157279520897992692212544393925967207030832396587667735722367373171198432192438964748339629845991518538194489555974911096941744275366070046241819286437255301458615990949080967881115765718967501390706622835607971908388019695948960072438104312994817170382085705255993532858565698911257280144132693841432078607108762654993247781390499835550316086378045944266475528719783250702699539435199489437471077872500921458939114622983190030505402952501162130221469660075019213680076441891931569097674649439126242112596765592529977898516397362921179215245700051101998593303627021262625590446353753296235689380529728872912228273577239102169243135447229671375881684447979208056362362309964991507194050188763052584864457250265381801278019360395057780172749617925266776470418452444744616456661180696132409230708637447129272543448157187177567567932744965441577760396066607453840573033223599003152044505421074115033409414447163408279142118669626855777474101753100982050727293230881315538170940950509883262364969608953174389275553031400048281608589420387005991138563914043610316817406683948015795641342334843225932537873668912794955508781862994173115626127707046477711304862202092995895289096004362240899746600627099622443141403446075755767806445701958205062653853728651789387516078912125840136736378546711718645819414455280860380243568121577277950255770173662139305514642473652020855910776411604056273223663404271575491380330024238531876719388890165556976133605616404274711663298553287796979140084447370788682842961163298969393838571922170959350295125352592428339522153120054185638733045135112097118002293552547644193649099195660397759247741485984249699324827045722791771379318151255931292798332392932864896520658374712634312041910908673967895047242228667795100339243601027772075799540319362018804273647715419080250827218608673990420942348789622204505923145492756380038269394198166144371515102036176047139127257633441921323221922072780436838240732584239105389529517526343530103717833016379382365967169910692218432788093228554483840024128940428036094218657452612400473784138445511442518203273009396621293883183061963906342983550241766504422217995943727138945033541915448241071311425509348466960208535844563364196479468733070593350126767570659935013896292446840023678140897781052704697695363167810573322405877683640940941641615351767372559494198856247301323568319826889756599030848017046236748525005599137639634227991717620088757742671354732116508314102497655463410348244816471723029637020009191393648362221240810910306525330843627588491792986449760835567046968797332913563974875510498190055553927527172174621566245189379355574594022926431945862568543992787080663543679518342612789892385562822388461331163847956401399773571422572467513429265122579107361600355104626778768674985920795413640540140828135680237915669229595268312988774315508953090331818422329662562109091049786717951942653275975332986851611895511761974370584809814341917070104663974817169056396559419409683617412339199017835655839475566572318994215461458915536612255990069900286183130193682023476360844781507731359177700021061701294777050513110451786691421723996576010672657959982760622644083273022103115805425635155594249446693397873234869146363763675822659023071290588086430510605517544849969127639943382072339198130227719893482582242168539168284256910185910112151114603261513682817452381441584546603185621049243521003581752961884732361275829269358734922235147906088537798338189840175187346602912218612519115848132712936170990821588879728024412093514426898259799159525184669150729367324949709475623180290428115424095851211200167478307226438592340571847748401488319453455686135159026444799312070354693199955291167698413213742258969350725309815391787355503905574015535918389476519586567103301988454427781756017880479071805489348170914356706111342724093968124788949240700824438584889175142710823569678698542151105132703950744868962806899772136859690957221224598738574489749897629276838626885770320842106282522315924966044828721525416694004451320941427076648278291744661139879165727860831840085368192866399510859047428125171948969969246465420202275270790587552049516707207489518447211610982498636483901799352082695309870693087362549538285711964544393576619204365585764486190846117441426595221126670080557231078456784580763682662798538505856877572428852785585110837354917115679467757539268804718317983757207294955589822742974019627524533127639089895280045131836988762144405242257003872986097164951001692959084108576566212149076266857887055549889400703061481885627512787914207738677392696511779295374100773700965688502391407872802973196115482932136223776784192868328253443588999751127048018719566310687537151754448328292396056244766068776774574733893236436548605145517912860781657684810357869373362994632460729695773341089010758052259208271188039287309912152246122907804423291927074415930505026630186770910503629930253763935094928805262453947506130749225602666410491667945117452945114448146804794631200036984240303519086416908695234853368691166158424479558869290273235977103966888662370895789409397362078321041602798244473161225483930643491079381177764348501303645295459885485200119454530780777836630135489287885685615543969307830140299260069427550437517716491081340606004719865363926163730920947796469138058532363107412235756950324367627999530950881657710456187426014291035918046853745470583858377836208261028898845541485913312757895571779759924078124801518639935039121024460972505779776697760091897904657276384266697662544182110317611239112946721545468032918999832497817445439222447350684407425076947463545498984050122768864396264011535220397230721758410558931500608077789149018335769440642383808444004150609802500825344944397998423883090881620051697075842865660644886973499290473716118740731478594572432074400514559145815610909325592184455438855486893035378069046471774384159280058030828427310126785648249214852582669866736994773812200415950407664752559629504170349265823933913716048965650167868663052281944401363961098948676046056204115551538816285529300424980766551160169975369944665806819277705117398260924635932329328714666391078353085946697012326452767767359654069665532230074290872832044662299472047847375930187046725268790563193909740465329276979294432803494147944517329992249206090555357718981829076792928696685657644344011172853602287339419466245302661951441429095400125786109384199437729099834924391460975171155117302641821525501511079973063220772662471146467398746556447741670101304421650570018591896875731471663762794697437079482131843551749392777538882099645470619483484112665504088689999320588045670539207357683960853274701880929566022124787605641022373019147883137415041141880688198506263377276607163234016251999414509276483142060961879948254142289737660329910751698741503599457975452331666638501568452130698866500121672375413904171027244593831895998808694648924531474954512275957596074600375469665461897212970804198694321854979986454994122946160257998835142576961665082288759892968090641768251312647540053921055510202387286424778352332164834668412927639660410770941029663268711793003773173880154285475194647620985262786390113174316480102531469024455534504230047197729832768067811920891841133012687099728849619996118770719861314866191792110620003539218591269715463398437910268567492562489111639287125676009169806417501100125388056458327820959146280319480437990366759297348376787663631325039583925862401413987303372404571630168709321823267893559097907422979328879060945816788612743642035077683454958012921692816520090928700035494932894054073925090172382059098038721665772162916997737409505806406628495511411825245189167781080922714054687680252227807954884289350832882912852818478094132854255395438393129140776832168888256035366605505017180200334760437617565301964333359347743474451579680253080989217770290289349966244594829198708423040248199184556547156082288812633341056583803073465241052645535788223038374994105939522181342918454763954939151616781021929890834018857785053087372963250649233620136623297430207814065446455644251160080484883533398821263508648132838808943848739027264475907568988485324139839833623903198684825921462798204969723552665069985999556288085115705491776730310219490624047695380790751967918469193087449316117398291096994187943951625371473843350640734139472084764885239657726504464530549203462629928232432163164299531188820188133336390643345139075569827162009836585063838451086346814517798123548267047516192946018853825126255474112898266591066666249058333257727529239449140512315124863670630874778679379034441502304303307925694512641006921102039277437148373876450773663581756379883273331078893222261265715670589031852361096558279400181420237004530620562633598865904801334171325044270390617857141800196611496307463267149317716864004823649261947394006900195096548728838928796196566356861178099597093801969397893926980704694380337217460274145347530307771029823024698659052722946999896153217033166227158198068717029068610885387363729707225764817316025634913587314653363617971374445477697505008712030631038488468132470483142717637621368208286714527740231546146265016131340287784194531879705066838197959838444706914819707774987197895841676510414172223217414699403869575891939489131181792319884550122199453922882319602543053178381751077084585058618852728900326752665746316745390512482005607877161708322180641153737190596076849961993299728508154056516802819656488382510185526348647542317867102179019070250104388565269251639627204985220152738974299206404817387800223403799799229777214731885956756743491544551475960035112277601394106310501076375699232603063037902458299028622259726067908978277521646461395333384493822772939479461757946870729501661262483537339326179908163010569206949426005216468230368071320879417770260781577106381744119314660166426092901682395156640802704795456617112648313469148782152622088184495562365036732755622071454538514408043956123251652059491788859298000220329582719886223913912501907699740472895030553128539034110108981232803188444400072116408540654935083914864990288313395448567849553460064699166710677874836662979331401974160646294688907445188091363839449621052807273493241055675872837782346969602323589469624706532351103048233304737831852958682236628056893322610081154883071009915857385204908035766082639778542214248850323513441840494478093823616297354467752979606666078283758344108237414938655677890258340959032604446681295816822045521917234693957373425791660583751837198683966010225880714935022584069442744191334860062814506874984473650711957579683330553217636058153559404423052875643678876207236905922663882094128245433385471289673369925088577394633044126250413584683886196415773631075863685807629951926161110644069996645603777945299468784583720712937866168653783151809680413927964469277341048616548161360159086753486410580035210130132917841023668591298374152054011401075954543431614130354106657146381314365122008772569920042687052202781886591094022783943728111339374662456753812957513487130812125301241710141403195493778210515923607446779423852210156302756090642769987541454518599412305662530349476507838223849017736290574724394430305350213180237069577264614774139644608846651266609654478993364214390413543637605327288024353680351823129307235836295151819003989633662592122976193629612308758056159880531668799302532913400779135260271210862612410599169383132463455822232713215240480990357023183275916625250219376384232151890040987103775321796936411120848752283405969749551786345300732418076242211577880719573233579896365270152458028113678471274926601482160885603796222084766916793670411341722042059730245586795112394269700859835097563426544563559260869897581728616516301348015663185272867333813500540655356811595984349129216065610076618157299741583154064784412988888133571916652815066510025704126865209668394363454537730908244877632272530286876366574591984212845295025084002874493714570529487546001094745838117188354005934430162939396020577288636115851323825607656329635206249628631946456562190737273085036284341651333308329108110042629484319565749369804139747006364467835710317421196825799548884107538604748854270961260978853280884561498766110583616078592398915949552431332322863578904584702858354270045516802129513098320946530815581227777694404181105730677650045867712407236438924027923343305954137900619878024230446964594547339132560563525690848008679321812726620176172348722357953472836017514017839471956423132610832891073461865837212362328009991338642395903058991100226636744404883998387652692672580816444101526151685316064290713173674884351435268729447252133630756531501513691101154352810558021402999366944463145349023473668359332657998745570926109895528569322382597821499190582239885510863836511805291481380604470172103836686492714707294660873073037529904650375666644488361734462974418851937589261713921619593414253422064452462139958630025785366818887669965056988427927292594793054948735013169703360369132714466806114609955311649307786102037026310721739678305558933173855980247081904276531427625241294995073064473764172687240269875838072134707476190301275829934505422340072306775495634620331989389291584998868006105427125222132708918369915587028875555756842897050588257646653976927686204423096888097392715931024253408751804320137089566911569346387091056792358645957804170602246290472556600520586796044249551984734372296083694446400332487978096538665861419827415697396635256940141885892022909225635973587225300530491768931776595177303273102223670875070429570500311048808830187372001140617614445955547342384916863714068991941987753268529190084919446322918418515558503369877932748877864240942544706558697572893740991679745971221732706594421360189841031407393972809337540612650707318757234810563768496394783473886647402586098839408781485277486444373776371393496449721872120811930851458733535128820889296261935137334265853912228118856653868391122029876286054345453378391804900178067790531257817503906263812343902173429454177440895370083257298007556160118697520474106708665583567303051478775531503149451018758041375441880139752578420036783463891585704656502178830390665208503655326143000214696884850068197441803744184003193796634355095633570610645853835457358093339207908386819512318221740569649738076223108282078022374492158351955395536564544678364206676326077873256702937073399654720803900457577039711474011476986451798401667613874413735135510682607462388276695531604586550827536448671385722445143753509039919099965851869461012851287475380117983797046006027966944565678251890818918922765242544605021324944632086756883038717717892257689198953405272376411162848012442261852262053084077842955372939787083495075240884979029880044716967248769479509561252213263229770141677290122548775133793425377061083863327547844364999221762920854544933051630197794196888030018798652649862197948722720519438113314670820411943045738180287868904605475301717294805141047315418400802314992466493441108612785581909191101353434000485758668167969448163392436129680737757352020849929843895447778774778131692257319832878698921358276392739835883693335965959856105373722311048120849839493626923013989915315306440632841579512910944679754725773653294580315861094402142954707187870226311930666870397040955052485317174455304090220407931391653517989673882919710038740517057181371649334368472505529035856197494771107629324362955730013684504774587366237555619500598846492139728120838346143876200242122816702341745925341487116440349486602970517930025655404348484356917774972301652957653012758766222369156496343668004026809891596486709738477545194065071787231804559848801337456707142113268459515094103152804766458115818595299555910401503319515782815367167119963654581022824936746062257052948206785174419480544215547542920703277222303435824323079217924910219482596336063402731188739676995923790747515696077053211739992448444504773222182432136063855748443430734631630256102761029344406271126632964687471976598778740258391987250295477272948807943112016954308570026026884805097169819385765128864915024915548824558173301741443818561904018448010615555330348380979758458197442003017807775259900497467407410231095572970826743378899725786924878741943974506448533578095852715676603584826649396493351590936790051511128428775291371228511245017420508269658832805629495352175555794449723587167225728361060531429322979337082579445621495525784650567187903949682440422795512802675257517970843877893621818383184891063144993720154178585307649754447890427528731496535385145927665352813226489257210280562884310898532634988954347043811204925242727527949518122473040087823766340780050893225681529238184687888286160672257439674363375358161083979785391947976618186041309653435838448981250999583993805741670462618914277264787609577425328896932635091189615620997650530679368409419390248128546338770772319141738419660644024704496158004429811283256314726534185083147453681597389520433316444860600244316313861962887046857135669562794736686121375502470221332696329081516762354615555309998541014198969039122148186402547715903038438398652824450882814279029148785234438626478714050108039297991369366362052690726343069059121719772733693988113285152470313846031856819666285444874349265376833690353061250114460608977032191854814074127215022315530608115766387209563978310924388824194227110505999360121917700167802133315247738859454312956082299774001461646513592169893324154768456146880976564422154806146408457522077055905308732019773543874649018546269379151347645501482882426446621451887316601978363288558486666085875790638595494888573577626852085610912776663825230301244323162359001985105505164953379933278794205730952293567280585823561506202001704736773661249168254097676699082160050618272774995172354206856239277932818963679843001449708815741636343284261525693688040148280365488406121077428243594024181198987491653601652395383537819852145091990938225435017749621424828492691903127067624258427019808699034992704218240836388869053570252360921359239008311695562333880049183044081152696458838754372438707838288472547947461558890874777378571265521175446654948547164867817687982026601752048831663253425400634893015163072707102726912445359160716413371531123910353253801003186160000656474757048046857492097522355728143168963018901818175024843529936632687921458521337605628166474673679559296576941329425204833511520363836217930844882032203888989426379678686043701543214274541805410417972707761099360399105273626019720955962502003481169447139453326574029898640148022998467448258712652110948891529402717713968225256006598308086298849055869151617004936240789198273540417988939203679678120397615432685088183073922856745133341076796756784745680913015246842256730454818075645009657629297387219547772812429189646654697429948977996666615648217572331396338763045757549244153384538657226970542547837791549043682243491374622084722622498214386136014447830845588965447470619899472251897462603888781015131386161604005562129419505054286124907537243342129350668051840626795539332519390894823361440376601859811708141172292925556487217175552183186845446510657209496597127423157902997057504849157400912228110848706592704189777206231042610754430563941193771186576118691101796380429287764680377791024265704516999042612049654822598801862770100807827952291301512705396151103552025269602635628862037454195428886140046339302401835959870229893226128329222909877296912756175124300329590996786093121166505739117534437612236381491418513647656472984804167995647605845570793584780355502624614277659265697576274122642499930744941691610474399261977478730919697913690650212934962968192072020758153480353880933273188971201771329041347639433970039670448547601904919279074420443516253580135484616842424824600196979865017968127230957107143271976496666030334666214962437332287548439660127990165933842081435888095190709840634828408654971204951451644173134351777498389458408910388581780155447772945066310632116123486456901532603251007572281100122428147746822113854676369852933823747802022157773908874334367635102404198878766459341654473955078643688948765840768435275627500573535103277398898653890447981602925671284484577668647792397671859011138395168150974566285825163688598550851991413822933985945241292520173180589749335663249570709932594893034443753724408874594153769670124923489230670214841913590439565634816452535290331873820593788927073513682387089742425708397718962044484823467519978190618025729377640636933004901058027138591117272991790545439524387417144727600815263187721519507058818893885448054723859283870376786822273659026219074892100307730595289446065339993121382302729892173771546377017991335776384780690281517765997364714486158924742220186838516075870449768065866255704379012572454946144004688530600154728773741566967196724960206294102584014608001867318139804895361588153874229348294595587293150226084305800880826192350812561009744682855244719114001047079229921693144715955435297585312139117984238189786405533614894892830712407496810611589178601900206202318936945872479071233621079738488435120590382921997465810330968421544285658326830205794903020421937835456158070235098809078730907330777408667480239120176801927055320564561677411303283265777207938526419164746609139953905432742504578285423644076828549361678080540975786766747278368316349638125884491989796767062202897224839731207996036200791102700024502652515636419785007667846238067410824827303161996119697849572349856820031572588639600306397657137783698070523764255862315370120029728577017880278549049278440148765180931609572175490670293038407359340970522117599472482241175874845573524705248683974578742718762941595343806599217971608965302994277065009030309026889398803417638754150579555268782531325714129914345786024626225867710251869892765167738841694148174690932419664479464623295488347190751058708241402541187683829588307022355998864700281364270134507052559086677570436702465821583565692752201016017516649853779386575999451378724003135929450704939012467735858548498131149441118732958245580815445540615846813862685355368486485400308376092639282864508340154608217354951369397706331038628134726047939942858654216087107676619445159932694241792490081802679195559219812075732662269670897348149361502665196475812561983375287375267706999046104828214416177961121659620310357163901306002930602863220770157147117498453125819973689419716516900454328962636792298492742948549173929715415069999479642296570788731218896558221352239233691361697414117184482153889073792901954154648520793294022166513203012680775250982739153062899344352849845598990327445875229924057591772675954173679418312250709404957296121556321086073106757949228788901060002063882848018244822239175755657617651625003079950012796738896186932570644742454858583947438772925503610043797093678359063065578648716550362909592116166111212394447394913252913956298171011370150586314847123881700940428309266133002143531672848208040185510781492980191346772801307704808631354055384156945689632655900830331935933465455495096446898215238647418528572858138248522512033350661605847536591113101564006635031250200305326360901016667420191179302626089931943317754953172552072186219280281123742796550799309638291735940345755555344000847545984664174874566532755381135535648013890295105626286986286906457220693055979092722163677467926600193194970231077437140208720217286514923450844279378159177008648161070705588404102380833713623478516411687525055510032436064334751086405998434461405783254726256057302982941707236425516682232780497447653853708912882938512550558282421987418082949317964273894984896142487099288557935806196212854389270644765223949588530484826353517572251047199880735362080985851915994253339372143787570455969074659063208507064216755155315188723457506031839693603282987512024543209179025025902742483568103721224556379109704166159581605863183510596983494056077525779628192530489606834027259252732013031874062949756959909497403728919919694014679751719761718436802034243484020120786993895995528797079938775647870974700748803648779720146323782206288492884850633377278442138909391779411059087640667156348311407087047146934022571951829135766678443273212075974661569999574896768459879044031667663824727547574843977807336954032221511939419406171577914724444696049014392535802291947842859813609903086750998908278982984860879336254166031641652998164738320388712181303718131783542131205771498658279321006276046943511131652919474771301439359944635596271814376471265041474469877850427190143675088886338654820621860190001008538676190848815032651210047692534731807770194585535637047611269772579770894059302015948002628984450969630026120888078400020783384158145655007948066941225243122601249356135447287247623031150222145607225070222246218203392193879018165123197861703843067775079678612964864676418069329047961649740277474766554819784329535937384070626952266306385477340332681971324565237354147732075408144752125526964207611315320990693346524990113596312441449957181372598891800458572164526542118712679357256906002560324900984704157738760754894360853915474346815030363842947174083421765127126671052373861912233494188295388120782748750276585599979680373755222918046358534127430799870476612475768348695451344459664102940618986304874932692868156791410687213966252603467111682915268956582029152211387142552486885670349519102224517684505288484048273839380112173611748256968219445317461977321542924580825786818036954987098534477090772806239117759874339026400731552219175587957920238932267078104603491022763594490996280419957964664492534170817875019571991660648373576827712658492348447632561094642960386870964007061815724305045085093652274119558455652558185660257826236271274890988761697629468270928713995086008121968233913312215978451932341126063428107620168729518106602331504375316720102663437449985531595685296070348689515758037195134892669453405487650762791017037385871168225643206832656791299629530421912865901717980362427212325839949106678373852246497134605108473555524791300712461107763671129163691849149334851286329562509829158906689401226696611739595718041181062322423224909366873314886056051447101914659852766477738597760151242435299201321304331321474600772278208723062593484241566172169320158857731214606432233301388599517460115381069598459385928506669183049288192007024512562094482966116335180388444936589477500873501194581201819808088501789467880393536527551708747427750671053302157857990767258181929388223962933330998227385566555043567925330744271662479740933708316734132751325673910463124366280760073122105927104785328190078214319355118930513668616983924766850548492185659774869947825685853827636409041192556706042264682909238896544835863183907196200991057749079335202266521183439196974954602323520165331385029051020367132091346522732823930890207624164846867013518871856202796705310231704718548110391479762343998604985212556203739049057059789763963585020727984749853478661168633201985013712778614683457508187409477852282503381747270296448334421322427178142490737106256947597637623347564623205730235923378833130226287631516965247889609834453901427881146986888327451103814396137502453410872887303865902238489907377344360165190641929874826624735592468103205629650768763295359014201872072053698814959218864241203162080775174359985628814566136829146926832836156318341909801814399930609689390410041180799267350795324326487106899619866020616744774562965528394197677033351394519429896933887206539284249951507796717407715706867959053786413465048455005801761722226437835452473844357927941753675419638805934279724048125822655697767691294605382131429350530728852439725487979781328581752677561999823213867245228115994839984178498893692285680298199657481629017980722327813708114814794945354668158706703027288178153465104268735256569786682768280338480103581439821532224212833597095825939856213944129792923382509075949796768137504222763286313609839548779984420922731768245418273737397978651519462621938691054791870348047721780342567660435693189033135030956952206268621490454589950110871988664676745269640580201827805124740878173459234279335705372032732192944462859574469063087709698509674159941092149790121856078617998700440829962601875829561393756384019548909534309456315280856843891148269257722520992812836982249531059845130658454951175042295824559899324180771011207108791644548940021043479120511166628297209234907877061061394894613531954203675834507614706854358691854204981421950978116796539626920621425057543293681958562233959748956529492837871827825533824681383842504522065927339919945901622295532765359989688940667418805397542326821856358103760375657280456837681276729337489507227437651710210687176448295328209986115758068683861408990634267026146933035682019064926007064849869255361589092838960043041696586764808676181903582811432332099986806001944939468534968771910008460761203714109734304297535319064492298079100477567674154929827404940148148656170889544502760073818144691859124418494724712650505431398867642507109050935798822615015497985966093477754335524574800372241989817877223757342427059260048974391392388866406775146086039373341854194901439439294291512486481229312078697407794780909422544421584715350092673081238359719052188811665967170939393324213416356600090561335369886010859543286861808259783780985573941946070351738601342625854513905208950656894289240539506391360284871771376717635346294626871933091390930287474179169276813554190943705881449552193495807475749116411044155587091200591853934329815527200157700327076124677765197519032339305723223342456697482080047492331493488093813985655923954719590397203045985109903157887290578896648540333743479833168187003858581551856393644976836385803226957254531792539868537382640596866444640493706756651070240879405173232058852352260989254606869924890422455057568295778587855899396313392983458920112296530243822402498881585053959289499894818798037463050637280344147009509869317751040955763752977760268468029713205877212407698524582545377036333390790783574592868981113473426224023380482391091524030681013175905264603448125972322190607625974688184678467783311063909385307404353517396249410781943691945958282136869946658268398897494158841095064739033339624859338850068737593382746332247826431339577502757946106910931728565126495207326230855983680470004011886276945162798788020807616408149151415471018472560746481465226777930370384070788113805509976313977448101142137043602349652882979269104392173217402804818010613184456613706237712273605819024388595596327378541674102497630414219176245041065127352927879244384634682623046192946072479783036984666358521135254706243740259438327555130222285138322738459115998294732190299683648475144761872991629815281854925600100513022817281962015308252745124823483238304788655572502824024904235336044664208115958232174462305853686814293052773971161292829885587278014715578648276102909659571140075712146264095106598309204537233213760184587925845501894350997489315944884327114356054869473710509499165765259073611039037697640086537831046509781887084581512668154395491669729156849742343783232625466507456216898505195439721596296790830141829026261596634671356508146905276683947679583652338691084878684509692605791430844192974163432851918368843774641081789562514705072225269019909302370468304446417705719901071807596989232476951648566123998565281260161032354612457177291197063350129451601364930271349697724029346928473308116177012315674628410585777181610246360874935485724299986158959831128444758522810957163756031371742134683196383285690177608604640510173313802089360863108009598591151805453096348583638194760652020824563993125030786997488669892375534518967916143592479166910692794692129507256061760625718471925774203702009395965251491148126506083950394445047938142881643835513852580470891103274717799558894288289297201366278855458574439566601232193276506053792899593866381502353103176630059736128695973653458993077312572789709916859424867901126934732538686074733799155185986175881410534046385947134574526933739182066774386944699183252153984525996504557478150794820051057462372864707025055593017472980331443212249054369206378243735192817622833202195210672796258193811814874369101084668196636493828665833751303758631516485841266294962625604102321299735081007814219557563278667697967864164388047861838702790106855446085930339478856813134180338333409489438268875525129599072947858800393639210680402800319029360125234141568512756919345581360937888295802208143285280122563288432497620069972067546037511807517848696275689295064523961242965077754055946379613064494025263906638547901107532787663508972873122506712811951526956934755841356509385755090462635768187720408377722556614910044318460505338028867607496064222706698204692385280027581355516940323572628129219335322505508886965938008813246443020404472155188198904265603379359257751599164172247205102087600564876130109279150915573860955198201122331728062516132616711036794542537791292957320826326299983821084809178115242212551238994003735564363521724165236610022996273101312021112142605745920616400807924918583391295626982687855733652053911511239917029416339026899759334579331789389014782489374967699555087071995049114357059966744619785544516025245604032319540825391724829507061073641827199418267983215640786901930906315849658169068431541118079171003888281432107690273834375293619387958337225230802585454217768064051559787701909125792525251574521260641555786225905940102916972584203843754581502130608116342685799163837251006710367044948959597341552477741775539612114256090721153489064736636054665020973315395640927183277379682152669059366102072103984255287598305069905924579154772990931518693492061407792627009072452243964999226376580542330135240289504156229615602180537710108622753487959674185011574589781450834615952100490805030740387859674153830337969406163221425397307137077941983348200121424636360065258126993460884650528788691356683737323352656856580159613896488630764593706027667218848389541247588835704462609392109140789774342052199311674764711200784366189356868761039322091164710727470473387316785694216477778538387384335375310523109685453841454312849692823937486603931964946048505480719109461453643706449098269360918285410116814202185746370469082728670402804368267591427520892635145408310864142934012649460384213078137284072605492553451227243036478446348396004636114894363062969946069420703958749458637695624858165484179927094809151331936871129798326582750424038206061883078972184849037800389110053074553226234397201181961093287453231941000060516580096940640939004750327352726659365107792855418505914526884823784659399679844324941455195821112591401167360572304906991739275366447916621663247027910343459896534253078344047565261425352955582139608225714223705280474656577935308022115045373133353707526866572276096918055650735286937431557473729623152150792435735512208003054279499096048184514753826176421634833357561318908257665713790417832663562156941675626021685544900271878702229169042167956634613280260327361142389017621774261131800385988211740612395536748179420651667359663746729952599963496090005815116920687110805938168387027663466058113530824114700747552665764337159732334001577180812314647759785614311481731915633919118539133435381789986502414873618878418030630982313109603195425800521481719938731595417447652858547815144696059231998949526964275646897336326392369535807760352365155923631657675875084393983810056772830739261701627531806543665712804689569152745554398558053136053215387791334885607508016102806064440969602957332752533330292369237358279422220690288239912100496258105783100491452111750906642973023718432974929583462016876688715834470954766643417053497003359218605454776285246334879001204222075668799127763423949663324501860225491410058757344619243919895981442517362888304203017220152301848739662262148345327859106755544287530119036223350025326656147124499782863872313185618869416922603327362998249517776059285709495259653679030207852070867058833093376928427378322120730841616379748611040169128175312144203635238947961185672899722974595153845934338660038440261341596154102147063087807516454757510724970113152041278573091233982801488828940755719637674046121338481875760448101944601163685583354516129593830222945375225897343221236080249368786385933070226079157790589698066897533334956883121490537828150240264393132772693662171936767911240185565971879680734518529437631684780131672932742525247285471681556436208692367433275936679454491962561079648447123105163816217061501861614779948220961609194141851009876867486523065635399401423560035312894810032671151094026089229462363985447920821758456825219808908303842551977350409420199905267138213905741258716408664126320412153518325796219895589484051504935593997402080199347325377854450969810531521672372534685291499370401016547229578938343622324037324029323058602026796351440701976258248304157998213210955461339862527483984799504090421865326301029419514806356026196966109201006651617008659717112046364190912368659576204097114693244642967375019659971973834853745510832111350015208457622438309485154364452715931885702185912987272183293239728917023749548184775523382790469367769288732476311236679572562734534239324930165742580990338133224355101691904873291395578839907939554811343599124935646652331242935225539461698059021325948750125682082291532760278520064055811651310721286753868901862421677976977072948783458360533491363183405054844384123672585250518449980985915034598028396431179283970289456264898229780436225070656094455970702454818273500544785342186211470648515137830876231469790146217491170144634278889762052739726310895445413032033114669236311508271034658251358211460970989111075534596202928789263513488680966256836073990077925114047427799421302123172764401312117698521693331340834534281050329494485349068323392996442636178425824054132836965920747716684481710663514119751034894400526145172267543761281110450160316612450651408377836721281881822360641693457637168538418896616253740518379746802364036703100463447799643956603223231708458307575639443501734431210814133475064238357661544917284705800723084459008699224128485675225099650361752732815132227207028257226532190719006688304190379379500713303104649317738960743680298911682045481831408205142222755613539471292892025126546795475706277127183374055390372118056002648542092332737940600981376278530338437426257734487356821064590557527692012983642558924884207904981649548140379004623031264105405131654064610870476511040206932548340774779085109483944567768547557771547685147515471403885950867483393643208365892702357113221673319495869098222187980582266424823488517304035878968556572030319132051054475979641319321672395536311434518428401136157269952478606971604374606587571231143185235350014757178715641052933461224409800767664351912570696565682646783100583820000828996415628667599983754881466787251575234269196592251859785726365643455587398311188179032457308163779670078945297373782396972056646865869774097095984605591014851206447364703467592048307646153780957762577038578196418058064668252415734925400810579244951110457683432470914672517614219144101072070078480488165735633382826687096722504353159059822907939240616171354914020404883189403564680285736306999525332366424515659419638113754495507168993958804938740306500893739416018814987204824577492146005514713564418777769706938309839988744025343571741511955795001781061522933884129913317285311527194302872324896798986564428000915441235207544310840863485785046957121999516205624316925995921885521040416629163512686146891817077176132371788538942704100307338132744963110948212074537325600310470280881104464047024058405657537083857383020205709932957121572952109916167904834375776157437405463039985816766137628288595344980670979009133604512496326824615564643796663531214936458647569324257523136477633145769243947303029865620718555163522553599257069154608844676508805505259671780534140768645230392932782501131997197282774795070283309263658313214828967579605152137591507632365786835413081064027475314526768445571256292154988364638724404789394074840579927580724670898099403220222430525662699870819563619717704474367155639982653995569965504383833487634439030988029016948798604393121833448989150817492157124601031784002780438310770895453479023071987540454081428458784807590732954235324668608338976702313779959397220795733229957801597808879780429642531584428423659583428039114010652474067805983113451514068269338148223425201608440108962437470389980917662507339681347363773184361149152830029162869948057332068712678025165674807854905597738967362269805700823734942202026476654022146029506818917077830470516906048628813989759180340655521412936102356898512196603923204323619683433943060117217040078340081048247654965480038359612322547127436044556269211303544277374409606694141800958720494787353147767009328082635454367479674136125737864825536366461023375153796742715606283295449931772589345672723391949557458057960233547661387293416508908525128236821284303856341473223477881917778983179804089346190310819397505364464739477621056954960991338071876146281039042983360077200770161844061613578646002677231230031705798644281340911803870375120074580236518707101391711433361072932167293349534229356471579073143366065690268547200360138751204578154572922218800936401785225251216491830439728289688886717725093122288008134676310299713689297733917489819915333225034395272911045743288160350453760195952269681664054848681050641359711748966322961173673860950913833357280869817015825721967287525892958320985306080964015043518074920636477795784976393660857198094609861200021576145622082181310786739530244102006188848812300309781160602707607001241942709776685614234788190754998244394416118708362337869363999406841720122061324517827409140685270002930941730270110653252334693454524893591407261919894651968096130779847348603539515581777244401039370152034549168086675407038673739338628067201906849677225132092303711189317590445021972161759333575273983833741129277419195548615678671204356228067800431262673287508001639769209951013047264087635192073298811960330788653306065015779833213254996242623788532747874468866485654993465078690820096320038803635297828789926876648935804794377883331046505682541750664122736133360369707771626002035941235080124219804142391093072975157943120662683724935544709994555230962822522614644928336218037497189191126982876833844766192586822806162340518486398726812351289253010205409919613988951810393328206328804858188189400641869624982326595620700191917810720155099221722291833271443510534350977849562262834562795211579598088100405081183338372007671740461698426115020407658110231656548945870261414956633658725470091318778357300221698794032472064423120262980602546403280142768895046842553803628615613535213363261070255508053234304395658236397073745394123885751103251990713724090686749626279331800070949021352809150940210505937523234635306480892802487929862112037409548725204133151301809990464276278505150019846079069687607004513010869118552771285045407972115345399906762811214333656527306163414174339512864882492688301746751044069105023715231575314293272560137050529960566728647963145122234621067019938834329694905490930782993523927912284957681575689810054062238099295725457225021307974560522247534338929378276452308914582186712752882789661576295144276058862950557151126084675188728739953217547749885181789970794084301711535221695557334850134489880804687893959157911681943762049111506189847942749409483600887971891085378709145977620732986299199991109217047964893576921577470050019018310382685001489683734272426903465389699031984947841768073291319755837920379995036002796751396412902557674287796271287339097224712860146865208527144920333113584771826791214454296044870021224402033299098114593629880148110189544110338376703001422004743722309471631227042619667140733380941955245352325568081342308943305201523571148492919319543347385812288384897227417774105657325635771265794668063069063012036042055753050661663027216869523806488802990106106575814129311062834656734203700080107285211896585245487725466064156140255759213181033936936226338960828510547674110240863757896977547935952349731470036652351276210315818846642560395474377305860418830631051863679443316774458846616521726743984516222506463325920109074125576541417992413701297635048633185779043823056366977517464902849996605776906490826675450377039354310823463776434730505636353551642697112540980247348406131849022651596508159034230466659016821683524169981081709639716454117426571311248565433587763684912107902913575877368287391660276190159066965230336958156474332643014150250094385683688429179377248524155398215173976401301639499161054605344034616105027035854706957337505752051253577624009405808971956789512759034336743904109089948248188644037670794216851285924812415645590386567842748805726367931940650457641753540386290491758198974447968759523205381658738966337282628177690159594432726800636034397794372651274156484622523063643319639529907953347747535057332107530350687955127619194353398541588093190243662722991785933367007055837664424911531877102016170723557728740475975006120385717218099869622523282397369253950152259103323194069725443922503916566447645880118827138290434587445827967117859654988914841809974863038350261800971746298363919444339461374209594465183460102753913767003840532798585501848620424300370075077319797844454722990827355993427631364632756136569994025539395130320407593679453415906377579427427859527379502078782085616284442516381600751599644711717276175517151129128853487913602615564511730583233610018437231334228345763201830507623210315329151056182694223331151478189248725042434360016788786691981311956002518016869887629378521191699260208971054007145338023809770392014546289874246316812446112273431798647875514016367352821411802470227044146233588134711699470606279050012844561752236522743622356804199186022875510706860974364529288976447362886477303884782608621978202661421203122288760087059865415299353263732457428927911750980107779573245654930067905268094910881226737512389480703639711632191472438360998073409461746561514147898037655818218869140585336068309152821180859623401838980424853621804600275134461359527662085399882839738540171102387565455196343474674752671329057476396863109774751876957320524455757247449006881366442581617548681402386060424526038137401916377966849595690027295503486419391308362730072972860957104744758243860711493235662435752980462174020492974776594622622640789615407007763493027788094219015410177761146452675099320639014735184580049774596706283001711574256711767623189789457386191142177179875607619297178248210367914601715358524030255678735378971764084283625807320291903364604646285361532527095774076324735698686728887108968759177204256139473459776060919866986951137016040710069502920803934293857407646726923260920046318335317373447196962238738666450231996313540214539291686421178982224525434362954236070148578184362817211590637338374885612987944422273190184837742712923007953190173593094570709265169520126423697215788967365878640260464821847014757743024627385954839793884476314886104619903362972218966243702506745970839984706741300535270961569825390885575723726571047640505112118852592011558255122885739930206729259197079520317161608968705383180922177370402009829246745059705562367877610702715682990107775069718619936904357925418298216585807907213693091256997471024345388754985777455069560772225432011639330530988649406179200583593865938457420132863820574090722650658543508320709124080926076623932765105152275891238334684783909064530749888041340975024367275301518632075552320702412421330342374492353222739377136876205420572243591810671282548422877786140476200786848166894101167318683688862409524750546833883200099731105100683863253978221904950716675803266738627510826471618170589049623314206942897697771782761380768732690004027935328234341504287667204859642306274021478071870597215870129099797355174170092809969152541353114904593958357767649055728700424110839277471998910217318815558585546676324940207193112506695943591680761658913978789080968603801844324117699610794472721661456820182521293476749826536900833765964147337497054299878664003036164968532882243047401483089791862173365169084501797687635618066439650976701442882762848582146748887710251312088267102677959163941966485656299906033839161570326671011584581517660613678893288405584569220109600013634163852742365397480258534683352882997081453558217152188366745398813150747144361812216343675619516325518975433517237098642432177434633744091463062057484996005489666955106392733439587464068667434786200242225839515770726018651816538396453658742244797099668741291675569090964301955485384277367682189833573850231162552784460989317969040848917935721927171614829275800617630025294719921205537836761061925769362405947487707860355105923192565259573210429198248316508907628357738677683997668529571737662830958072814380587804178904048603029746211211206832904189463611833464036319305984219730616747093173023254027912316961657663899996214278261833475116848019397672546994156495944719412863251339214695635711134805448233769943391884117253277856373488043799538888359815579057144420704420631290232072432609015116307729272654607614683014920631807054092656790074572597355477349192312025184281827780938598754826748165872163385952978411899617249348550254941367930494324326279648984584184786859415770562496517779990627732666399477572050157569849564527037741226656217008934898110342512984368489599887556710243198587602941583506802517412507109780859569759414015548520295749562610568360075752965835899750498908965471124967201242175251895547902245154172969883412337620070890468309995006391970792176878052839377119780853486096848522894003478639086403404472043594282268813083080400567724314472876202388956973631461250669678940845525631415596668044979176525890576824042577146104705981490416330365052201740913981398652546800658114022387103831188219377997111664359777668417437645007953187373809045608694505466385986812307859977248913810317172531878441022395037013180698288621402401491655476532193602916650841987240100310703698246114144083013535335285281724299659427945459750585626900091808934816701042995677656646675554581872985358291774611242731133207736133009400871703139445181988988222918903320620759177688527406023782750404294062374000153221556323515433113908350422024397220717385868951810066528598591092986282815351995394284762133596655302611430227572715225925486514563376502159824699411661851154408157779509912573328570038929708348734729775422438398413480542139764863445175684842315999229036003955917446430428629214011013855013609590324836314846512754786253785893171000355221641667831998771222415776812220912584180416341031788049301258136266932132932001476468459238005516626684044928207201271489978974707076867660103968305992296596983773522952620418142783969830792002907603071357966620709795697099585484116556152881750225281112927268750283306818326894118491901110979064122940215061059902239769793081574654207875312091745316857245035956943465443309193874036924396417794107204081606374389825210651639815137800217481987754649948091848160414847030588700706178417666382493245740553060940987764254771209078876278743203122466478229943085378451865422392301691629580905163311701947318750714644340405980072300475976927179545913534057825855586874464729539107401999376790024365807171427285088689875319391670636815240979639126559254616693083297169926446762873716754927578929434060653707115306700204442736677047733613437336154762377335520826921498888923670784450310908320617707012890967271702021151479496924896467631280939257821206399866080726266082581633633397032846357320534707730703019849998124123654451277443923139100461706162735163529772095642138250105463695098068664597018599580867500250256066683182944434763716774104397104586464500591233859324566519144374392869024527704860294446604962004908886862915294521929279068650877156343360329368732737213963328611741130587229573415776670361358028992143269694640183952451699353044864636487792551849625968634113226561202486546538242155300724861453185528460571057206423996400085318370577914577916366190047451557958363970904228082079184549201937573543939389507210713268650079330844515161213864411556695580435881783738861798660754260290190559465240529866406171213620746786638148311144983441248831058076330840353476813448812118490311016250246221373367882857205680120133315807194158496844978217070827908170220334091569865067566713058725370655551074333158415161359189976610946446936378186067330380074579632590032208893996454646137186862162679091792171451704042969603215589773138556633414705833239741760185087299085500140740614414599720336984401531791859711280906780066377116885212483040236833986545024855996412814062115247792169076854710246960578074571518806581132870180879849515983767626501162990724117989414336581220207065818039225389392520342263464107081058939936676577283750975862912118905965409292408122203289910727253757940009532904519371854622961223050427315506879618375488837637053035511459046825990249177095858883395711864094992297506027313471517943392750115970577316433425287648680281491439892234027757609356230892029599523046838140635750885229801010101632547206660090590186233350039462388183058577755487450736347952406754708389963749141077699615133209214703995769240411152263604692081838270629633063294740069584109900141258206733459259958900276718921477870248133212729180759278515894356863255145008589105303992347752758226323467046541219841789090581566849417028354243526759869876470086135848960674399623925554668358725213843933040076680366623155792827141508799576117364788136351209136539948283602357465051412695996019087352021201985832474529410595800517412047454696870474764318127300611336892665015644430269786254529507493730893059297705576211400365059370517471536719455496307336491610467265155949701192629973689427527630210345999278242409005936357250454722489175165544958681927863294958984336794422237937594192586538415687704702240835234491636481640492553703273513370886517147303958958173476900711667543373289151433156492489222963076477517028072761801371331960773184216469231865343066865690166676668789988816160107361179209461942241964855962184062540134354456110944260938264402682963987536591519788690786547375794128898095870733079434330926955569000161578647093196497918750078026583027242450435341049050106929922113755950726609753196225395299726312950952243402578073240126223540885409046245013316468918029399801052049248897948873850111544040293139914077290484574943787623972161996114952825359866332297217595260394820344685107048572384471517298933014861340183070247600723307628925765845965436765303511101088197035458288740977549260811805296014750243176011904212392124942422840119445618428655799004252458429367806369980126211186696589609292734328031182210559694398897843224740288497506155719686248803062061737174686864116520656701593175436887386050934761297187206732076624490915423909424726195602646510594170143200279038785663515335561017672801026225804354571233097812447056337521981236407728506686366014490012205359806106968997312664618282034858169131562606386386408607672090686455053103610749840296037154307472003584968617183868657683019689725443696462923628041549502554637353961563493394648899815437098605308767174630517911099351960475335461224776738466395946140750361417640539766958916510412950928682269219573904473200814785123114173229850011929676740027826391943220333862943325457349242981912165903135346536399481055745381454039159707819614830947438203249798191345784328963112386487993308396745831471222313631976775306390041888048661554369274138332282640679318375671988203090099588781416462619729702396396354111290694033681350590664569392553983772744021540986223760801429966682839587145414550755348292499592549065782282759339494357031929157470001765920135016904375391405338857859580015627979937481482571171365239714911472157356714745401035710724297055751710195493865112208909022151646731815400044489987702280634480523489314208692678050729360411704637613888046241299689063971942846915025125714148990339681801419492055887743720597184713819072600569419087412925627207936890452192818703063222307860854970277502522375874137284034083918893064588902592908544178996085520625412659789289873724764974858693738337887582312867079136736850041777870832916197668755758893327927845864078795479047921384866142790383199639625995082429218638297700829941916412202498117919519278318188246532923745723666778504217677446272091719849078610204129488280477001486204961806346831132138206548491358027906293913068958173374043386984766782546737037644471865951072247965719238809053645357318242287055339221212626111105774651062470506054762015097720976174621497716898369810829373742507581837840630183169538656892068031997887775631892184248801877325814821224091300031911128524138870171869984476129324702449249105026359872487878053751502907784763519237132581057057458214098956869639177490851870309399715350211124668143857952600303851880718850879678582652009635074442968247266343114440471228783355659842992047383942196419652060599721419936494785605497870015420954776698248955445710939722943291212247702219492612023031688461869269123324904747357025720014131265646412714211095258757905317644194350111541997867527167055496062279105963046849571307899501638569886528900916609011649289575362932563945897174738263426341922153741866519905214323855797079448227765585992444907293995326288421524928068153782889998591209324484607270282157394000475926118351970116863957234873483487515985037256372113272782803130130652541934740914908664388847318254547232403948216754718452466236953700055715927787841976368298869545594318771187344425506879249801136878985774098262958401510573767949789799824984087459944009361109914793889273020819099628685573776497504248275481503880168813161307372629283784030040716812572925308103798904758581001433623545355453236624507378122822522708206180649034670157947822859178778731099786653563594297419831496292728637504852818750315150070005390249967743129597547675852484182279339870301267506362515351531505711872149984257571655551934816580653744158481644438812101772509893702701134206861799415935130526455300470448772570453334766728407489624653334599673029964887510157428664232941057438351195825376694037899725471398941431247411981512019072136401837210299952090676967261333605290529883317588315364314916200031256273193218683842095975948353312177748537753010115422291931603827314066000128560476691624719681848114220523026572028863807140304558090281462936727977294619773733104332183971147990021595394564287497267717752805528089002229700250069228991308387100955448961827393401137939488472098348109466646875554962904056977923231000591319405637375691500958864434668730413422364887429960142511315495216338644668307924413213760882772687055336448099114590228751626363537256667059340801081213043219297137964035628709669819268777023423177695037446497427612423823662031035994388307003992726391876876427842471599989201570860220845280088763358268448297833469022397435827911863370256859078534956321605463952767139143934107169347924082129639217505249032780259442803754442170358851273804653239824401007009784786629163380636913247488685524055603492740412947028996139495542866225686404017413548374594841176761602487733836418371353272783366213138334660561498604791130900025987583988472992948485499993669264203614996306465047747606423566613231093099602473936900609144413896147143814662754872035228580750557007057045928025181850667346595635623392354136013568120660129534200832542717634668608068574427363882256097589563299509224226329971902463709708154720603235304865253593566666796871573941335706720272690532154309594106032010553950269271993108619702163223509542273854172879664869192481259824264398235415950579054141564014517400922223766166291425757615251145189338126531613208844539770803159527498612818115062437788384999948664184955578875044364242100382716585919927792310579074665499611558294627442028461103096720466160100331122565505763098896982585886854185965314067810098527384952911717455298706220882405757261629081294088725561352214578392338527578859017252720831451128300556760227782011981858277648977508611010581693681296056214980597766800081082639828019976399266873309690679756421954353936752424070922940731920336161632333573875808821451464548722676346402947184291619744176501823760897600712780678622483955381422725330729468636314438985804751941494176132376459024864974119794036726812623934895904421315398263338833035852894875149282993911165834163436631471900675056393414626996119374613924869034133155827540661934387327723565449112667668866667720028584517544999261987909133247592293890845583223490778658313105955058732413905417625061603761444445173226408742261667136575763999121032030717900755803343549258557784521559282542058183717007137847390867689464587663668074218141874482459072256602044927720804227695069111670824700243171111455086189400215129162053967440122300635094923172092317202399000617686803697713945970950169245738750055297176849944891912053344279706604491529593922177332870129250347068478602953490474143870176845963001182338919330043184724296206452128902752161775191358005967596831875348125858610603116740185835039302880828846281361963944913590813935518046690650537926863216502467531139074321078671662381495445898460401704755084111216599393197732072024225769397809697990545215599597833917956883009973283008889489897467012945040687961613454783992754315100670657611138025495086234997151453876867796534767047231560581593489091854774406996065347745333437986121377560816495604862159620079802617225526934338184077736597757472431462666400464396783734269608387923642096207344415026413932342125971129275254460413804005717232781864669771056885882900455789941961007163772866390733716192988659347438686112722952700062406223282231098652135487808051170273267164024766848738280746084614995524596222985083731118030020581956651394834878308036540912006253376537658538166071912117687264494903204518257265504119553656059516726523965192301526571535743358131437150429760112147459644986592910754032607045944133694677862307734429321566309638168638836848290416130315237016196864081317698266710037750100870855830263070453154514939820912187776795585956865200132261547484586644704975976914398691374190281008848373818479778089090250282116566755482995279373204040289674132363975399509127144753732728182386323099286810689156019303334548032227795683441612324169501750229114188754832088732082745678774127136411721957074858287712571967072846787581794372358036794508944019509878174585736917103902092449808388136454749627873522978324512257419889158633233440766784551366321264491204097491126326390788288449219121405459035535266956552102011199708766381747619866469153349151003821867363413983284929894499928650736281669739175621123402727441877204279178080809420501559792999955522028102045950150423386885099973699950652937702819494504915933103274420147098082703029766521254185155597313969650651550593419494847644066498734147486996809788339313500167662010094257564006872347257916765287027907209401399318115318634385943988611318047359199932618810216699504529243887707186610280634894520166272766955270820276268294993066894891153124952592736018685275177357689851484748208190676923671532744091898179096180504890605560995257439875254870996510694008675085695211004001886979175977239386935135763847300186597724816655613470882932207090526762699326014525353890422225060814302312057087350941794556248493027853293262642388557535116699078400701058747616419701271636556630530667683155229192324815544278929242776875522627231115732478878668604363300535879901023464257253802408815872589388662111337091755122334916097406589514638003203310097684899288278432925926012554401656088889731283638009897828403265432323453811187876583359456195056273651183374445175825724536764268157365878209080859538670512869209255330000224865081216367684955512728278946878159687232852451487098103904454690365652636897227403295532381894009049005019392445899808507716064506476661854845193968971584138559639177562306215181324641482474081431777000505396040356535497967994692841375532347736335945094201560564344608730167975459782049288681655311286722467439908208384181169271305540761873777558241379760101881702821288720880655264276372855102654248506109397665836462234978987943031654078677402050955235430592829656507697856652586996165832204132183867517919229433510019803569507481772182889903273148208585743323125985369187927961971328647105238269731782391044510945459321002688091145972950500904282412982736810089216786603329643290063786472633518074958251139338466641530360551076032499836342918232964238202514090617234458652722026987466514646117208611979443691640246388857373429757527135742073450571039612388304114228283654866015866166093194578390454545740731916300621933740339037429877482385578508455828733638344600641130988049103533069516642495709088014163881986521701594612888258108514425109661197394387117864902281508619187908036949112984508629775219313872228706076133208698867956377837498470657273105097918636625340872047738740113250018864497970115160749939659767067990404660226474884023862348841681516164684640552485052063878635733017150706293473504922710784019358850793407301302949795889624458343190951227009840767200073195703405310848796617611694137400273262962851493989041681102644697626747433525576417388257059572890060407644166329335157615933521474640012558288570375074747466280754496668088094519391872603651527658675798358479392509335768508436259526422386213294181545782754944442356830508896547632349454258913286375273406805238498283857039857256895411703011701772954590837640307844540159223340537417353486505043592903983767524930171129951141454853005124108763148420457667420180469412524638704124901660327176035312391462250855014480915955223608607338452697696376237380418795392783469537350065485604621353146300897153900529888461579109105672456870771036197219457120190854962934398796557233946651665478366757381888338554287901301868887417701222814335296280899529436379919682142520904661834284412139020091985542353559115185723583742456281005824960579358609989800038244570909254896311729446795156365649368726128046898479456938470742173322325759732255727337034928545396227285269265684681034322132508947991537764498385889708263524353334407608856427474997393053443572493145430597209008111481080480427133782276696617208872112613394566898447010589943671327506343026088619793903689207784851383202363369227440358551548857488886809673053329892012702111853283655782967535099028658910462658091677112948595310271992942704034376527277468726108200772889832926673201290764243085106596254072635571602141533202598480965806816331246590058193241831400852555749892768918010325609513436860727416405439660338512772762268763115002920233990632915896265797390676242957138723400989281201991173281961550284733620235046305527865617170069384714572566227654981258227666759146708879494498371501820534698894526279434018449403788196996867750254493473621800929306603341783131879440780378036086018552092315182929410384869733970020718878872360106065877533057064937730770094685563497107015099141129238765822517107546747362287471571812115204752008747331886043722311991235232647446855109765916606470526102050601885281102767055862615834986527505224804221257891873648702040159016459823794797835789856138575337829963621418619641122041757111189949223580656779690525264893787066032779049509230364681718712525732739862961556788688714138267853674005246697637362032013396733985341334981172001052747804450239843473802859900721194094684802782861998648072576475375628939240528786088126532234896879491378239831077705728726445085761179704029879571458300439280712005938078203226209848351275134849966230153692267028578245544502920958707277018909548425377187993111796008627375902813429016369304108345860544122960060100711570906921949088465770735860753059523423398527695417907253550234422788888434936982906452989055124639510346844575893850811818457214434987012674811875717401202717134619080541704922600867543471093694605426085687205223255051584129885651299764535488751831904055840981024081636036597562619282034000914175703816474447035810381047309168094978856460261210520059752285843902524682935926067838376308937224254594828712043227434275120500280489743347644377092941294833021984839697201276384344380949566383917067098504387657681394443569877688871503562794355977134250980000696883450715553707888240892567745057454250433792575136198823418901236804200493137325197544954800994242489970959469398954696216164771768194692359498650662109055338453104758266356622276390419126152752636852343239053515072842794009967616002932600759799002353726179499503541785275553232239135523458244271174466425335823554048365396579894894798226693392258295035520261829023396019908326668992870694799267922314396455864270968405993421975828421658060916105034220070941630412860596976718836970444717440424866796194506156642914252875739761631481352915262459836686920285001679615830078371686724207563111890301331007354243716584701552667839816374173640854075081757504451276244069099608172540195543889619660851013985376692317424571111206666139587524711392840089782323145265770214804553848022464779921378864779518406418697071237824385055865137160084263393807764771958433527637628225494753880815474141205822605795770913586278419184817390648977595573262339533257049155722076072624756714910938661902914999232838897862721549255377018757689637486936419853219048922398771833900899716769423551000846729915483757603601153910035975390206585886386358609577047531603887469582176548095704486328261261529357058540994474360279451856753917615701289939424970142648151632079495805042475358628356949554045859959779493632916638626234080175323087350632420150879022946233112159001377373516261114952996743078102787685539832106491719029173566687072103847869185113167154421705126278346291876730210511149641458550321566543222919095507337182901931148032785312190028061225007349702673019309507949249613905399522028492494086834372309836441075563301391105067837772599128703049599885266407863926376707679740479745131490372640419515268183390605845278651709156672850922780375774678985246198173763300148201213748502522529009338484018745116661282995111236499776002295147987575371925078654912054314354785468192592141704777952970128253312662990714774813208236694097794087153031641110006104684608094211868609953577948945127649323484012025257544108648446030105584424574721320545793686749577754368085561220418280879727897459381969469225116885903566204985888713580331169715899209262780234453197890117244405229047072991261929253366052618315803175631041527191439612573082038802023230957960312338663712269941106807466123734791640686665041378015540364728108471517101856487900471207667479757259011553002517533665709024665293514536757102838423282569600151374956092363024266543181607809211103127426734406440910038184002426443969560043756503245031467877925588578071641990204557909549962800214375011642084586785950116575562471006321607899339973831880210945483775573881859007399497205982702217267861899329304513428062847790117682695278065094743282129870431553553272320882658985249480786563378709209414934510771536801660295692768113505884776717851634640717908824020023790307250057653151896387382771286832686852906519007602168265157080719579570019153399678526803625196590417557215503500474858489996704394250153593391706849416632573943849791388190289564953488807021811440363136687494615179182169424507125246506678792392102792038385749796624244243641445847995910621381684270179826300790536604302720027763824553576629722379330409043783853359552419719734783826322287961586528999038136274655494079279614790312110380646668669336920780855932019486316934041551228219955385985639179213768339117960310240432787146853894382411938320879302502233671515533879597017532535068092819676313968729229737638897901188593466015394441157607758236695346030170154389925075771547364083700040986424981961148014514762295505503472653510532574160293906588983483089198902808177556242332997767384115004035264086545448840689737224909612809168925105090802594293753940985582914530628927032811125179487423356580250034849522431595706898691183192199281740808774008080231575355827774088758946531128443181301701116605319052599924649777083000363681280076865750054189716981540828683348381098343538848393970597160607959883406176484349514808896816400755296743010487255978641368729096219741852381854295525230056523775493779818306307278848101906577336446540832789410895277258173724421472710737845154261240319377033044474215647794639909158585045919354014626947249421102056265460372599584397928942389721951628228463377773522491620447219164235167944246896687318172310961401457782770777801352516225257708612276063683034136832792490711218540782199647800311876749228825200316192274196815146150108668015508081311543308947203473346120092140719387264917077292039344569380755990462862923646514942113576000351421305826150019991968476342212990738683248348710971233589808721231563571999506669442428581161316004309153872877217032222802726979645823585475646374461236499138746240041985554772506520238363479678537564555168462531515330249239495623757597931832770533711591933871666909517023236021078197764661463830699748855125877993908707681867535428976390533924144997968670544047468884871167486565226445319506188227090558973709284431144653169525607000743588285449356131199217504106981681005590211610266628390429856570431242753305975132068098468471231147966265836301577506843187577129563882325351741593529449458091098117310921584303497067902510184999718681462793779700107980233618554582751463540919497865693194300802970348375906480253818416368885912984103561865788073791747095112039513128724540849925472695325065881149773508952782516129005738139965499751908917039412585808599262721158831952153703851253305711494198949770799726936116988216099594132594784846299408970537574034967187295374143994696639586264940655202492300045289883255303369866089164517105929271760272214660860258826602721905176390807674539326798827695163543925217781001248910300883498914387014634681049769144049163968554833755397209988346741683745714409936574036019078253223399317206376695409518521231071829827653287756657897415713965814652585986622203353216140414327443427516786468557799222142134555664081603508011950443145809955241843044110431917246296387137580479699342890844690761103563805279381511460659124237023340244290107985452700469529749723988346293886115468403904539960030716645901666555820234247667953088846020749730285500264694747608315406283170454784270750986050493115566279450675019957505145301499280018389189492780736850848228211418963302244222052502552056293467452980421809939017526612639548778100647253115590039076058269758852728507948705311283806596592354187360049204656746018605820392503710765139163102614231489925623730786005057265818315912648041538473331993934162942360615152979072346175582496787403510047291025418720868678021275221561325589639234488132700977434672023278498097213952998626661537888954612109386498721156467166082088280115112110991722357644344655392711949351626663658222997757836110348780782655211966768633334012472886348973289506078353646284069651832147070938331515867724934192263006897730668361397601646057832204637448869958127919612061763630685441717341463000623685531408559292477909287164883850057769421408924956774425957691859224725447130155010529602468505349479835064114068031634392912283863762632995449832600430764983591695557942949738002921583825108345865200370291724412957648858031802596692899428397373763943975528216248350142872401779613558156220767145945171396465036754401970659562139274042762428680486685521620961146900333567231783968454036757790447650279821579299761524646054418985586186942726997473196926310813950680267464231254379591339723266146066672695452109632544744181604312974513618473729800426855897045166192258009584288511078882304432755897977285871960654441133973942272344896840215215932793553998311900962665063325631774143622744817752503955218518492886779735639631241073046891656438297640268910235362011969062071064532744006973984974376249238150744396426505051121403107145538147331058282508362766589603149326876019335089459133723164849332052642459120408423015154304117725746415416078271863419659295433666359643702484979877474648332654220271612731812960557321810890518151062072167300721240477537047188288377184015428436905259163842645350976436643826950804945869906694415715605948697515700128924046178505100215558640626475991140766989571818526872329924219755710352729867674342796379779584787384061487006586391122386197753113582104983403325585682547156024333403991946529298577058991719125968031325894007492817219962679287800166500306492538614605978782195327714616219825571321490313255339187602800507659292614289703228737537990789459772948329708133085309559771360505169190991559339061534649915833750127507098860513974909866062203927602020641391674714160849671776739624919396924943569810005700115568032016143752922369811707710280633770728997134956211232870287460168867298982575621094358158429872549122010093281478148611778359915905658229654036951395492963344908677331177801172953179536347541881956202689260803878364647686419685805816695624651369722602900329276588970161015803724608630499031497423247651448743860606574059506298786111365459445584099903929083161288642113110798417577890905161931265900291483334170195398633897484380320372268443239837268154672702791360257745098014765449273490224447549083288550225178230860543635924938423978722188201652798012882319854059289261380869164860683621331241081675708149291502132109394448698433862644608197708170760619168295170649078967805789479833572887595828036631147241425498442671748606581175396992226645521527697071273607840445168736883269846937608178640046962613367567017020972860373635979216777514949920155972627772738828849183027009992572773363775782155318821750204900513488867005495067460410620334381488540704651249808720300962002234622946692762783634339249322943213013192572167590805225842417308196544218543964567846407816977969413566370386461794054144095836183706015127507123516400806537023747911596615871605417436974575988678560450471851639549668937465595229588609230781652043415659327919909867855862477907391397957033611327967385967218283675361084165117166284043274846510865526298697708117464852437478847061686939401566919294185508858218432705753208003541557172053284757325357080471627601332807890578959607100940150670981282670274624982005593601158657685795359389262625621565711455222918667063163403094123106343275287615179973173317130721795597676123146858408126810856058836673440465653007391051109216049555151740766619236473998284636118980563145237712906273371478082367375553742593253698354051192405613350419592648477476074116196513112188061312485323328888343094082788293991482395378784970975736728221881011398271145078036275366558009516248685903730985650253921897404981680916316036339497974027366751864762982154130124938389340715168112696637957025129818086755837089198135903796900710599043462200158960683264807633851917578075748284576820993047602988778061169537750618875054819369695851785828898895339214986949289616918711387277087067529613197148989907878969801596387559858263771190485187911648226095225961706342589972424067778649707408424385757651910797879405709283654782517382880299099998091408756622628375716247930530673830959173743979580774046013031375367802013375915259898259936916922084068181551319906519113002252135166185947770642010064882602139330511486598815480496340443902896106362045763993662314750730468418403425427584624569714874418372808583398000376986820880254725742788276346480535028665316599116853066571003841197601586942407394580145657349080372096115313282267150649825907222978967878213998564217514196010649373786463649222642033018800747196777751868311426775311719756310791539605084444809836513676922080549760709455368330409798496979066995410162436341490361903645055731013597604359332369022193045791948986041218048586806078788596625952413849657635988191917542953410938713954789843189709587998555116926547295188864938631916681822243907025365695877462246815820085292430941113979583441850223185646004959355201114898294878916463735335900057277031252661684017672651222442282559202865668764712292818252774472322125146895855834842044419704537697495240516216744783511073900251045977278231376772016161509735410787539735085121053330078995353283864598857396987572157109388589312652700544795495759205754976924940208779088705415308639121247065879129306903125196526457345074016831447151495266882251614729923675106627398030304111745491567801518875243776195990314625512132146591562503548339174785963012383312241584704834524676007384493726529412155773746208432385772212870931000680903456470319017236167810339613774112489446857232821977254930244373098491670002705965786625766174842318295528971369841464448597444210516135098557132345814553610673525110355925757282947542760590236915751272235560990772532048427634014056681489122675001793669339555722115943214853316335321457059427809795194493296184833779146762620212566674121789625078015036394689187322288326368266872597637942575784657219489445747942577632116779190794429497419527688265078329334918567462313861787338819159512103562530189649570938371649069665850775260037830028049571892074118834460514890374555871969609494145499605952842973823576049647695682205046112601248482986964024029398912433539186626953591297641440891474112838779802082899746918479966126517132828969617055766208276187102855178929385455636501248543213960583199970795408442565774704501418672188341006129020347921628888207618282172114809238636202345573521538321591932183287923174029658092047333982742318993717149438577342144131284595602057122210376305725821001867287436887983363394963594426273020897583540002665209020546039455951398268148011428356892724324357049226136280598729001183747508749049072501119442818968409669445395417891307029888618513695118668488495042587628325826176320176418646954241252733206564563601364699848841771974754080708544232076168189762746455223833513438592243920282612748141512453037902212180175699109296875952763638520498875639856354504758404436057429159302644279040104578341966093660522305178397602148501549502115262926054837071462581414684895082596716520278321468931849127823153373193692407258299971392148683405603009104890401259280875451144792584765200612647049661247516494606588758519450425673678747969823405033980434382094268155400503649683247255760349274822798520924814138358661859512711198370887146695345444259177546953439477289366639353530938586181628836577863967139444135009557216282187680653485049170170556871698771848064072635825301930883302242376341148045936956573074271911842132663766423857794402332769784719461082021468104819949882927218821860791565814626035994338549519047986734803975792995829578821118224987168169956843863453070643255835248589345629629825012636471701645370891272705587448335757089964754662742828916305258229022765460060436547261552121479932421328143277682715762278101789088325539639905648586367036753596025274810259456314622352960077712253795058740432874398010622546515115691342210271725834875053483277900826954535848751880930117405601406507692044083174619152978216665055802046854629521646526587657805409535551339860333440346351021278150899939437497995815809384162231492174921457730873107249855417399349648676277383164683599522120497227385031938143086716055941147211160687242407765025287110295201833193833494784025573383897266120822061078182642264828609670841000004631659426627913841501489268610769347583313578969322110982592432508843330642458976952075479643670466953351179504198518279348413813989294403573986967421002060550467126363762627104796414646458333203355985387237223326814819619884467151028215228844481230066197749642708002251175996440675910004281967297928446349310314589811078077174030588202798185323797447782271401479831937256792201512592017038780492464641198259130959276990024209759009646340101881748879462850648179306286070542221092564992079155032589735709818406142144953433345083914203902412365612143233697848578952133213553674526242341172118502823825643888150468554072712751098770981158313862369006953780014025946013818200139627363771783098993162464936388618702780740881455230348533295766847944826335026169055656350276477986034109797176915936062594340314464827809439322021157803670108460908403660898601463509839359097095017810713117996251581857515981775915333068151376097978345773732822211442248421464051592302560933533583489241849364737334957365273686174121443984367821991549715371185684529892686317505085196132328508276871479296361112224133122705301637737079471055292908116717271498797112011655361150460680842381662457401121430612706792944436251786622550886599955361723356206323767984189986536353699884123515805256333302393553515875990540511947476182409911660136446715087210144094797009062473476414522299622950992338739634429805197498307317249784990007549045482409074875469439903394411672466416331098824254218326786212727399226688025895764901956302600082981973576383145600263819341854100161965408706990801214685394478346084336788623153679411151303432025358114077820110466756737164081498392345341654347147539704674295780410799746974746839527268975646777509117337222705515128100870486304879708181647475851613542908340826787006573789467161601400888235037690025743740184647444025533602040707903201839587921731025918925132859847261105062644381459780755931547472169641787572523757403584483629853248529906014662459839222096346749905590203803359911250160158249760834620222114137134156113586482210318547858214699198373744732997724707217261490100745463361650131115467060921623012782319058345975683533403335944553569109981781888777979437069489006928804473482755615001595473994271468573359952164605830452225337885643721190915236615237506558322768474633281516479500432374873176893540596690414604770998542264142185430271393718027996728540025930765353476584465094544803623653509461647337985227759934201862704143138119760483139171585409837641925141962710592337472844325119711699850639261696790490971765154283716597485553505541082636325535264939416929384203432488507827109060334724666065838317822877545458358017923895598400865512976796825656452255901518236426149277811471807094432343530206542526249136871445128404041435728440027775681602108982700997772698855115428096006141832051520969107181516295789795724462158820230857000873486184432170202486430568637257671691428220072483800107540376144212633970811979493410574494055632692171856805060847550091641534656736132417228063032837245339012938438246506277403666804989019234587179803147338504756846341432655441391973864404441793403136291919736555371974499067091739761545060135243420377598924734397216254430139207476224543091464978942988224264356436100487685255422578691686722440286647516705129005337021455665701022046964683734118093246464511260505858176720315819158435724454953961665683590017687923945826857242210158069585955088500031604451778672561808088518836993787828589106251379050447579662175167725538731612878648673850748844803875132711992093096813547396099212437048686933609076497223909129000820092137593872895516463676964672512172942737685786202821686102412206337602641373227591037907531228269913695433242677056870669342311375825871901222492183937665715609184224011054065881767787597894921857385571296347514217213879185577044028254833334618614645051081556688922820069366590344103556948682993361500549259000930943987552174588609007180280312753536526274017459152943373341608595266127601789118270612244557190352337752769598288519331491762871971867954531305655095600118832286567275131634035680665500498804909497884791983502630518124610094013372914491845542229230982081822371559456227609659571405205242446587566029406059638897008398208962355911366967170654770022633391176382567637593272639337006506286710778846283236284192597187062118322890302958094658021383496928302682760910579813039816167146437934730737596057427758004512500147087080125501657223465850787761145471957054098230668179364732997791462351942661898573235567205327229850459482186159088907714030885773790658771286300244986910240941666613979562653076578658349168351196056444413747040393896403603270578074622201194797654385726010508231022482295691260617393185249982642992209793722415229766021566795874569379839244037965396458575871652106433705803875936777033536798877767786146023596827227506595842636754406260468454112078087306478374608793566930979324325573054033331426123527471588340747495164175001286154693881935730951190885164686025019563397821514063146356359214670663802015469178090168954656355418796565691892624630347029867313400656459876473299791849112026266576449202620033011793467675086119084698849087476902249366790578958218964344404716991440503632282496647945284397657652131446234817012467512217482517535109494287915383893987176959071595841906010396227536704324469273113180191092202033573656704459845820955780775387475944276479159636692818576208973610694668491490573854590936551435425483424917195100230365852799206860088976642260616674792143314563821175903775762297617634566093696546020839430511477311526143069810536152195937015713982925460536347021524011866852988538049663718106729730854120896905154330468175868509450197348278857486707983222362854570925413698566704107575365487047661002106660948271475083101141330983153539121652492116831096274298454105247379337223461636492068332688238477061263824449807311484060987825726720818848822453062266441101178316615734276809651222199517913772679394139951974930177240939793744225027932501853285341286014258151849394828937987930315424678649240410518323813821293403260039088827038922541977119213588591705915042182885881044282729764155156148054693220045131508474973149597401520185539429978559335074924818095980720442103932229290336377607558027812382959927081082203134520398495811997448187075445722806903178531758928107395516604117779735177758901799819392807048400858757820173997224663145928295564635188239766157545610321543482302471431728444702162036860180826208244524778152028700885650085425722527978577733145741586982586581494010525595035402689783931199033289064307729711103920158222229529094701035615203036168916463892506284025714679439680665814701064918453311130859394847256509436498698713704705271046840525505694515521701025651359326076991014532850461328910228102868090481258500513348439758443428495785403669666625257194349227183232877535030133224536041498431624205872440135674321829709386051462170486283595350022594617052210910884113134659540936759757102534596351913413177747232328758510056573691668034770263236183716476688718214562829885438108037095349932051983300877819133531247348789680785419210895410887690626460299751180802767152223924271630932324327182208704040756062681196227680848232275243190413522676619744290797982743309744434662271686099384922110136697736318258752248261945880209033597074129445501907442092959214007566942414050120289879046496902149758341640780043466754111997805991279945124257281911701460287836168821814883274982078862837775648725608232975212443501467482258319853246350585882314086505329093851990740551355402072777747950788210970446443950185585678344242133901857674087612602049418271001028803452045767613703465111425445895922389314763276455622576942683525814199913365312280354633617350689230783990810198434468784579208312134720673304307243934875543369613644056808296226576255240332098762110393323042694787958770749848530398963012603887075686944999435440885730304282332510656592984870482555938870765717760057147553705206358875794975262516052233822414087865070274392400509360565132085048554551504836298029907392610630029928962960087375076708978860788174002460491540742956178363299166551758343393540110293152006016701463539134087435998686295692589114342375639473915346061293465443130161783354855856962972276794703534714906122036318658469903909964252934439881276213035738596024308553723537380207653620537924828569065647614977796785382447481954428409761475947239185375274232912298413568243465357936863274707460154916749076823634607263083377093934329627599776826220831167668484733045607402104842810715661412652491643480068844353627453993174968364550142498277608277310173634027341445290421942999739867962856890548248983800247709288224172707119111971102774529873142814126561744610590828219850674822006672134747366514819529370362493391848534156702299934274459449226923126655366261237333537038991333139916166832070528306535693367257050955891747362259745106419889814533268124688873573701323320678566051729414235703949567154533461610137087558330743184323183960219592765028889683750877577614864134571256442971527133513732308773453017436888270741107517340002504182588381422535962581118557030667417690270034986872741941209998292740016900182359033713343940347531476412543888970897427109090702643247750324064729750796271343271676824476709851375125899269218641135541039111909789632820547077462372407524532618493654892675162025385118093521784062369726834523554914967614312299526119646152761916452933740401065947065989072846517693728199619172595429551406398091716002219666037506938098807983455031050783875272080785320204313199863382312774874975086414935512006933908354597957224681447581575110854627752932087088798230169847728003711480775708407505720898598140313555943247747234544751886312286050127879449837615688919235419649059896295409286682274933014466304869233665515337419118688442041238000281047621805478725318558844866311911267629788704689520886029716791750438701899383655881266274610807909350933714928044671956917071265925338053142041849591772526882654741932142873090361688802769610432937611711099300198938126259026636413300254191468347769983244244908312371114684450727265942681473291306236673019012992411099126136604685117041640415269485460341366061198472216418210697640366822510323721795384868982480276835561774145676614064114571074358495854782061834799397121921804994288251648932842991838506599271283637206425345475743637650116115488224107753120440267393734295794042156610701996972216631570939406715287837121572143468148242067793668117865085510907619175310407065832298792739243724763700655832075595387577096194322540575616404731921512251311404763911893151969954682829377167943794390299947328609045567061540638911549417054808493716287727988555090705264252554145222494190259773583558496983492832663015863156369185297812947615674371076946231467340498890339821728067652728719889567534715493980147297258182369833081692216707921034691565085159790072172489368361961486413945218510176123099484473645964567373262862299481641721056318235503825960883619564096886170877657024655618835190026395712401413404097101357028899269293421362994531250049897855723954647959783742354225861795746955667566030281145744955160202598334667836429935918854131522712958477887393764603085619767312660924065951238973930098747848034134128466717837971710694576339765014961539159019566913641594570828346315696166530877936225774261713744720904948529165840294296417966094682769370821644291689949814552265659051104599072660141549730876744387719065179448828227435812265770014409417325201765373423034304753141611134692801793878801384445917329667580887463026952327867117475928615460372465441476944590757464319330997022031000273674353937714407176953520498707323323858908693133289405629153088837380441108227345354110289904741868130656152908541223462087748970217280468233190768893526675050228052031913984948375974778587611617904412903918594519608433676057307601987030778366431061228760090283528481879802732948608838709503926468371682622322188772786002744891865953650562952926056250927177088077549317169357799534592026190198505650684342453618014608541233050483651127135468076929941807336890967905069490937945027827442089586435022526616175929556738158557082219807954207549074892521225990777947508894629928184967659696418197677507601432616200847980573828625237006432215554899187799093536674815236037894598139957100559602722008153414822083608016692625389785756710502793083736576531246768558654912035350675815228851301001893996377703000318251165573365779080127064259383008033123839524748942967565126828962680026818747224809200882854249090893353992852105297050612342220819821879001097793322145227993658410296588251325082378891032653966489393434487421287116338875384299722298904498494185145179305458192591761153450925292602582281485255994616175540039613041624234907239505767522189065965226121856960473394114120779272685711024555123743657193473646496797929480026937471015255879485423419216600488998764156340847519724822044052397445170002502820107032550781305102164404237405530502714994654229322248471449114717370761629028484934757824116932289282157428948921973571079765496569477773029980771133251502486855812044818543571460376777571640217331604472366337772833252202447887975057282182744519497206604690148972843976481548095970260775664592307463521766598529776454533893544643065947954627616934259940162761097419546526655701023962102146461625449387256417668565653283054795175183046358038744004840060647907991770582009200140198417255451434230940150096937432022070113092674501531369802357497250240803884913353070879717425157530305432425303188777759462848043415688999537469107791808179253676202081351414086592116981093575689271332980709868703375956434575118346488290568678047505956156716115937871616857671950456122939347218903832768811129752852078171489476826924796022181163735233813579652445215038160013113850721246390566578131650634237964976057542126665426602590968384748571290878994191098511039259329072156656388807469467113646023253267395131882830847322720732150943409552729859994787634328440571268097347738095059522765137662457918521683413707653702679821564300359413559056503812846345778732746047380169483607308198242705897781052467488158787092168321741775699127786827094366943028424480362219113633876361703298485824534174436090652033645368597268355989805609109609915248117162380494609320878175856983177546423019720303721749759709391932278773150811729885995828627659483872778096744895343983393683347601006521343990530223120539855774527033332066296015461192838150840298208944635398769889622369686727286353719368893417975823805667053335746435519912606604478753970968113064065133456952953025798813461764238155506213800501445953390103950914400307862521975061857662180977852461559879936810320358088850464534376219118803502800197405418198231710080258250516066586433473941753892039817134296974010227541282671590164458993432306772422865287406052662240115179552101129429332374746889810313809867619186199487349909679883928905016841199210344112030496158550858239939231841276322925545065320656904836834147018307253327362073731650293380423979310048849821015706094119622541053925578414484788049137992573330770122036241779792822798986388421792488653773483998595250428400355334813559852208795759527560325201725327568945822767692476728001172576687321670161162589954751107519303671555496730948648997510876603474347521137550448883773710554886544932019310615822799271718553050601878689818069135522234998131062075275427807502265909760405853305798509945922884385800987220877667795104142212025723718628712958439633988968237994383163292597392031041100464087158172672220510356416566188547299449865102564907988053926303222273287969289272920267029652133166845901692713582787164258059270693510423128573111066637182364963436514342651908398955033530906734254567741326318971145872140618600620626436077215284462733674526497100886697184655406022761752034356253740973704284278129702138349690574696132436140329299275557467879029313185965982445701010807996211818470076915278272601391888364810420863303587432565603207286623693419894671486928634260715764178329861593742962388086100386973307820450657811896971584953327355791376940464732802544979934156924038492829523156045090249166939900216310364609137636317962968259656983732365970604342562800793562543036110785546151597979709028549466394480990502858408600241372039858931385340617624576982061665844372584603232455760469415158261480542633681760147573645445343533474070600326560710962971352396782469900637133015434774343113450085478326287944633686605740632542560115380235429730756660099703190131234844551007007605374889732239067496269443351277205901049169476090447295521432710331098856097220250586441803044850213271049067868409119669260601098109889306603546945344013519026484740875455710685344890542984530265889687300516063351083099150419154043702532927513878031710244076179201838032651976385365690748408656109610144544441023993726711808639674368037598805228772204714542323044237033844916760765506623837767298990128542048599487358061988730649544273687123232843005413694933971229434608214294844286210206278068667419227861971613834344840411996652428779326093306035535244449097597142641916521274955841033579938576904283457115327274351227278719728699460389537841349455776690682785517770104542566599177902584438068607601318938248907724622230909416578085057138777496594296726341836579055834690493101632882376888323356488535142741075131191693415253639874196740273606610429081661475696036243170923731807922402882040175102496282771382063288723652578647290751213451071580600589449122506095585887725833607409119187246676618079329109148270407183746575605026851756715312790668204275207339672691394318391028366264981858381207526751506483433422325282856449774335356167201127955366866332612851949574183326315518205156188468738163379992361218240703823013984911175490708188290088616900785433952139818308244496245161899719641957112959130745292688831608477680499275831102722978485297461092001535292515735607634183045925575929662693119672567330516047129646886378191174870838414867693369885137487503355528565042811395765255331444779884766604421905342462925150051211698872100216032237181778240308580190592926787296136587928317509973685204794803550837010739210355494665867504734656028625818118580774193400403734384737085522573715574691352241947577895402208836704014816915954805308359777627199015239340736553693277285655388080517073704900120514925065725859354572993902557955150502239915161427441783394419052186241395996024633020228626969468624019926604289668171855674350582602407683708731371082525510169431865478654022029974717166156042705007119186645051515981513128903977138294155791127677426918526264163731684832249677261687648701458637144755404994027021843667215087751632405304268557125994514762871442278081575847119182452470195565112577516957410900716791210781803261010947947908237678779594599771806651251690379042460624894002411493989811692407128365381503400085149132058345891795816321254206671511367376667840324583471281878435039990618855852576427254362596269350655034706662239619707427472455168385216500214762527000404058011278237407688620640545987192297290758155678228907977366757932599854246461991812028745849050654918191265996559309967715006128492963326301981425157936402097677058161336895915045396614408642015054743552087743500446333051067530138660758610525606355604891421685940659750532110160917237445534470031844463017114198191437031713049375515620981418671411719451059307866806230097555081292963461304516141970987679511526505728877897727590420850820357619044825317343855260256089317326500768771135203019775085977075323487529762498822147679462783916843113059296886244635860692820239002772478808187972527821651454137256717526244336837760253470706422196671877113121052363856134687141370628070189657312977514714688620687395604479892003959643383161139313740055207442027423567055880701961186138509364378147697584071324841378533836824781825619717527551828667877801245760390269562122067712408204662813454914095718118990532078514777939183154529676796135008255892212010536009154367603669890226916249620315740628785305507000646867412639163421217713607464723833896387205450911190184266875075535841734741579208756022134584164776528834717313420435862941708121557835398074850807775657528249251383051921967556150903235585717255418684425558852706126371372676628529325255366703116474081805886375357038789448200395161004447231585663528491314901914644380760622967346808934260902377114816005784614978611516808502938824578445061238742255430800040265844756499701724695857105180191652617524414486376571344064836592730503038045199240297161350450055622176812591743389460652498760592320210005500515485778774716563834885347941874864628009803333451037792450274906701054299547050403273822877200462417235877652905841641305071578039314045855403445113625741670189569315730305743864535787952364101356079832218806233845349697993470857555898610406528162198068625519527851288404613419588649299510039312953500073816287383306660836661436899269032253345151191613687575523061702842462602445247414435648046734580229480534918112485123171285954650373990840764272351497299870579610181940540127571508475636414991715018489246428634925658252487928540841139047975675634769689864015971283430387858318984105725547759145865528396215370386100136982773917194026990898198341711723909862467885832111208839106308637491515914134944635580414738856950790142332610384593421345589027103249519876219843786495722940614535995779926954960809374454999838898262978014729812385849849563426202357880710711374411728630420201887011812459314154684920237995971178086290429192293503785381379071018498379913607357736543032607288777249980748582193601417873832665316320513238621259582094777353996339012944138172064331222489472438132738735369098265611399588106080042051380094836133896880949845517644445818221020860648994170513357091108069381581552789064859324046381547409393076319600009087347030777785870119328839582091538111471640931211983119726992274265741940676420564674886092944862198012509029383388066805018090301281796253738308574536344731854760895504632983201854721019194068083494461147445388665670422251988510854008183981370437716035833306439622481556898389372291883056253513362219860488796505213856771540314675157318738700737097049175822467859536663766842875222372495310140242776123859841404463204359142006542727006000060398678137991187392291591183547759558270190753354622237873348763581162603638339582243565386303569400065262217111522294674054125820143503959234159388155513092570918991189548585511153768299308395884771882657946405468638153996114209509122921018563467520953033855320220597115553004164122441922026177321218017352730905188420321385702237609346309719005225384884453798091521324853473843704068235665660613319317282872124731927913443345859233382712887751298279016861975415825193978828109350191726810940938776360292613976757806519196103061124603253739786690762656357106358367508805107850551012742508433414447845193496948249186845694087801190910546842530231081631619993475963786986825330299835929257740088671427114718193365880890896774467592204410035549946291515163207491476833271916675164942974073786766793452098819168630525500170433826959666858590845746218238289881058557100404262117996536975121437068147163723623781414678748008182427474244258096038588594597554497455408513566286356243628573856871004132194847515800699040463182063069144757489643905847853230917011858285608446685054477377526784537949328763311045020955885554393992509208192576726484322021618969331862078108157010778930934742386389465891260752456618799996805869419881490446864736294578020104322808652949553672705225326926628821512703376708781971903119207917499107278542290909757802760086610489495968500996872501505101303947453193801335252274387145591073302217008728147059209578699322032138337861775094149343852646648998390032564679811030201415560221809808912642293795095028938217315954499920475908806978975382414680201062036147399475301300716151551124880813836954747813211584184987267039396224789836931612705541351756338579854408028943614933249514837613301833645589319186556103055152629911443018969994924301847630057480867296435126295210212463107326572048604176633428593528810881004447725840357131354671791118547512875366261232061836174909840659329247943573832507357784119577636571443272227559905874336372899177501145281184890672372561068069785705166474600728498231345046457903299743564032905082396540897787443020857139755808930998595166473401321289826027873769806623121309500179271651587423892487930602345506761786491099235982151136917039552779780457245915818693474587387338961038420198205777209972797447646895832691671746819668921553476910828451275729383225230384961791291113931275338799772989568679931925614056248376153499815048519100332200894638486960922108269805072131599462550786173897300588441362565748369415907576405190423384557886959254141064857194503471130955487055231553994251980674997256745373010341995070021127181280411881837270559375435024545320452092568762179168110994352622160790378178538769710666060039134604569133818370472929553114339508840430517231645077557647144563840940359528694123074318795545978294129959555432194325340900273270998078014430899822919915202243083907719826314920455344320352985766850101634846757652893139333398266092152770823988339020951127354981807698168011605027330216408131435703690071208446493237396604159947714645194407169953659771913678569883368856834335472724173897060891846485377868855036328542887249425711813488200811087467037881609271618721233002922041995825857963009295220647817215220971062749975516661702699975083428807259019389528274228291704036843092487524288162311345548157522609620302591169482630963842083422126275409806246729941095550011788177360753072911661601961966119114247749506689381213084975349212485327490845855417469519814890125277186747925683032375034125902243105302274668530693624570852544866718838961049092286291289660658584053193116335856698221977388600386099617579714952542428422947117160178454112168121891385820697022416638611349058387939942314942076734482570256047449162872808331500974005159072364275175290966919693347649678369471921544927455342114375950065473757327230155609303759312464458245000986906829599726706858125099195517971392929199508422885427569069550443925321342059154570895206079204955105588004349993315336824598156016350477676586923182995860924959275609989371285283072521697669153348207282678194987755592920335012595620177450860671587042363986293930608294612914380262836164391333413550100108895238777426874796329787519381722764258354909104424333801200837217312516872763404075338397568332451036277538033980582876011811401144920298392028829532660466095163841349504372604209798473474624503384867065567393912708816125896946816984496691501019886877870364505160568259307283918301714722446138359273787170667536348219089418601579384886433471500605838662967616464968142176686319916145679153491012997704855700274714419527509520522409437561130809385128458614110575139706153334284413500627787816378133441739352644084788959702576881332846090945499771135284631003630427189507512579051573463912878265547858902419691529012008371308121362110337381436817664164852111026184553328332064816478550900976180196713622840155075006022489576766335207514251253731948310715722069145092279728500309305627866294668118463177928569231212888316839959501042398947149076069874769999855276058684435670171846447937619689250595666107297631623275365981696047065710744079224840823973203111117285030118834225812242721193509757715985516068094969171210597044749569732529994692188507038017694542882407490752286020518999626343592264853438320253446564774533941464270860712742239112083534722926122023568307125360510560795343601401208280814193348177108145333488146820895022778329496968719920653004707880848499256297225631747622201431995958788131297411751507787169636348105079936845668491767502309117880069658289332194913172480194761439077274292268016249811436637411980605696040701337019683772103246746322097888884928457544413684218083626261743103552548205302058949729855859968030011642301716130776038469753378631959149399337742832930763826398413559842647096466068916652768523226851765507216369835386444835510039878992378390491670795463685045418400467479429153794960573268945685441881704778172943982549528570341189319302321079073416725660311390978775849914978418194225765999677884746713975742656712208191731468306254613731376985674768351116774013091280732066069803287684601559552455750442267247515006396458200843198544877059861473409496460671260611178872418438465283527829154977357468230095006452124375656394421036497257271975503238532635665589120468927237187981989807830765853135560222095788572123292249430836577512591240467886295883753006464059762012902598405446553135887078841118669961327477492791795306311887381527376876258802869907883056125958208426473749117369290040310992206697546089522749036768787589173925852871600745056939225396767990893557258472530406479986073603221009911852891762829566552840247006638175822636001332337751904311165560365032924722040550908245793672702091215170640345306716449054249985258339287873073277776241188117117875495475836363901201055588467056092911991469160032780841755707824606815273908448515819597780016568491518724743794726947780632018451296068798356368378160868900869461331919589886002719397276698944153738266153578968099794461294554333127474835077094668523841900587152012611597029781494054070369178234732948362973399660478168638074676924477049615653599000697646081807031523302648582296273859073641046848912900874614970433473455124662235946601742744106695521493016620611116600936359690674987213257774652024626209199839181513242422756851387409950122546463482515307958922666458693416551685681881407067810353388031044427473651218928083646621075548755762281509457861559121434645504880281714552422676798894001776637818328932631213451588070916890160614530555932325119722178898461132236161063448523031797685289782865366959939284402613170553806338637642293663696458751637273984817217409223338479667843296221358454346726934940815334537269559147823848253769496037046182355477106357245195701928947116941420236504789453331597971087224978836520533497347032185887586703386452174196289678646049288952079221810852354134352517249696481438169167936982809078515318057862106571657568860262823527684255331779619400637703028426473649727696489109152107347709340249157219616283384854049339675445289592606207421846847714714802116894989834764563770576403651980863665820132402778657575642269365643372963189856708508593264049453647159237417069535869591748162144312777264597771196003478860482278695929495164983626031363342395608090055075245409023226503593686143065366204131095811608019388075705706154806975879924593463660329101588563944535752940784868405091384104311518635137780847420505701109775010718594533138316813426193932230101330547130366931277567124245546632268971239181166766307327557594535743605124960883738190431677226204399877017981120198064272916907939232153215245576600171170592686439999360479366289309304747126794930365243977386728742891698768851197848406936559650133006113200438913095232800550262297107702585522173467626575768964064754532930249459343867961867032673908548445710284573453021267008906406783761850206985164031840384872433367737790654534191693668004596184111749341673297147794810966227593749749390019600354978576495264087524900160224949054470303394769262148529051360887124650221496403656232086018060770609811504497383677773299422966440872223172309759002851036868443364852834669269951538893086196409434497667061340913429876688524804832164304520670281316083444045977612745276984858177743284346027388051947230023706088968480460460643723078741930915346682302641911601929968373460147792262514773433154905941193402137884339008875166420037942515085995295927183838728937742012184041692087455094608767277276043374446445541734854088430483085791075294930450000631186045568363443367958743305222288829928275743717192795000017575987852766017314237499635988225508128406702389866439501279577184669151936044043645015540194910473356308926618026757530905814182764516904302200628674013589616931586320001317097237188495797793171359739480732529701047041401586042791240877287371807813664850452672754865993687210198877105133010137551173864800753990908838561569715018768904770086770103928081200367154059320938616512488695852114382036921554217149436827080986382511531214632845332131364548610624785420462095491544183639163740787014176773703685200487933185444417552125026925745838639520284450997846422515558651629605531794679547609868125013787922834190122611499915641040233773255750212948253012725650109916585877663285984545013465917007162474101448286929492707386415104524366285762145564861755529020499822577364856026257538295387747504388757274169202244520789025124973220019389058628285332319249995480902527769066955932088100519837499208719180607230914423010761146584630886557560301380709564625200534342479468227609750053051200215953793032871957492529574387965890163956050561882998420988859632407887887077176619361911037987436394602355315566630204089152561430680753635040976702231493800078399227627614572777292423434684343331413857536298851205630820647607260098861910317053933820348865557212722737020636558308814938119278588983657089754600557586947519998443224958265592963738088220613887496109177247388452272999809644101864628992942553834584849333982786769593858176352036711505948761919297530035931029796686236184799237230081294103753289379818006392221109909687706170084119482861619101188839986331056193487494887251387035881219339675588301840543913540482423256481439676013762481371328454066218787050980222334839676097504116896537169898848431368063192163559941294676866679190179369161103862785595502913233152202763239079653579693985373916274703036108247914754109515264379939034364632115846078609527143434631005227499818868178572442449450951432412921945474680149858605142987175878368264358828006855036832424950968826026956725341321130263592462535958664047137319920799234783528450568077422610117813262917379059716691529232949425922136146019448643744336726917780612603156996489317622554229176498516177550989324877908539085763985579380699168893185145772525108925362529289113778256321357770522901425875138071772745244683747883854079058677966684496054014767714940658556597637333887597227383123159852059398344664347060097371943938966912490160509551958173234275946255459366867474528222890842546878065952363414930129902614924259853258851688252125040641144011446680333970025888299309933001139811357754108145407450448997982179252531958612896609485522781993265376820203364445075899328522238533577211296064387540681269106961494618531531243713421827850154178630143603026291666212946676909174093323792673062747254625634688070877077348384351736398175989011653306244379686257204947077517367372347994361142796594513712023371445183020243826911543731866581396919022424978905059735924858373283082224343338089214412837018387019678961763445139883849858306690086150099001066637744041669473233778676576790320980644724997415494768085076643288568602660616609869348083198890927491663062133837050936125533250653685748570429557643496373423093226504724536247044262255367126881754160808317395523686694284889473578599288715218129338831258885635527168646074994606030038201794558202677488281587344194208165419786030743607286178535533268315861655325732529527467236259019328626128295472144072823757552820146205609199022943598179941658507990470525215437068700629398408798790394656623612264551623031274591747930145252830532145714700951180144617465273667257590337662634911908130615263771345757720074921050377112863335886428625587488042149009830105645434000931460704168288545175731171099596827046888013297290377566632862270037938013140184878755255354543583124836439889744417404317581697092177631262555393256082325255734378801784395838339304319528498899625208011093015909292133145847549732315214434339617815171786372994224618478626554263914675165372275847529177637598340089736037106552386851599521962161954849937389419958097833834760335856078617933667337638565049695037257888154040035776466832843590781062030717654759709546760382659117020781400983189093180440727153267870034635351342744575394848788616814221541586408136432288327212996063270782791823547078809273670296825760504916489828931900861598789632936545734993994010030601113287214061021408037238314586136344412274176290094889857379698211529864005924676985625300085372536393582163239245379846556258745200383504587431559722661506865193385686122802599194410619475868468451852372656074656827568836142512825209671130437862494401668953047310883504225172348294094643057757866326181835356047432420845483619684444072395855314404880559680900001351567218669399006268206751779624109900958990219234205930721479195421698530421262771601318873708891457207979307974620518744450421139568412666018580159651648462130179957174379616833134416298999983737582359777117247807656671566237516072639898075549421906442951066094106354796184558800121450051695592379393393704484969135133313068100635367980728864171128365580598605278383915022709987110375271170690491797520120711341033442388811159531641221946627641214670172589456895689772303352322926448308228585214832805324092550126180249948262654364019223288853791975786827925636504192828382416322761966611019654161985647059753998292258020875436366767980148563147425865262843856914099145247985811316899466934246883907278680090767888167397896480528858057113592787177727284354312859268136440294638125888598767261607914410236093433599879679335306216341070218556926053377712388648218490113775011307250882938368251465468546183201380068298300131821064509589369247077745969249126358362761461405044996336703398433211028184883455325651795075200896065722021464836679653858880596630661911819663196596960153833382422889501006539898117891672714251986611588955009087145036985612432053116025416505464223252220296958759511547177519726755156403549008925919493207889494285947198614067200585497184597934642517777575361421511202915132793374630456220131692794008678182050032621230120224682552012836724635476548569778581153872534084486525587275957680992280284203847274491236194628785788779365908666984985785883309423423777299890299638227450048703860624572491339692603806443103258851149423854511305480329702519334188358073380740548831752732899589314570636444482678305871864904156600869002283459307145032751114761654141715878891651455382440982283432709504708016230784524807296013099326278265395793653731883401893737466607981195044407118212391095729019264858967292877460611059643471084211098049481972310438493114583142215587190233433830054986401224979387768119549471133858465234470877763309247849238567185980234909337923675626387485457168495521189558803335448264345335931053719090216449586776275531226692938625350632243343052614170314040491342132906702976636725096044448719663948515175466861051567659603188985543117484605272328020782578486231391841160712854128643102921457719740411616963485271004460236153966795013350490427523315667303120642571557546524922903692701321405838144694489584554058273691169880373409064819102566060483924976565778183274197577596391901508639848257284589930414635976888726213847845874392377687917434479744885689989198896906542537628433329775384495965666369845769474045731157895540847081033682905617096022134714154487672862047566600966880297959510155214596454946788100268665673076585570823017508085272136351830394468662522985068850139301709225835296782894635135530759921015414471238820335918993310896643508198197914765794210948491636880596841435677276495029472428788786008228200871706140169404711279312915556465703162253775030617090895612963017530300408681701128980384323584505598903677651083856164241251326765558006663630012732275756666223853921837001884698337429009166026367504894771362644627686259177033398680285979014562143169747028903984418607239830531458618863930608244964874330081470305844099181121276723086705198344066899433144398334172034925968731525321343236795925368050662720306259895478262811498513516212923749338139602768660418561760771217480981180764946122456244164543939797208710062975484369706997828070320368697125344970125147773914694591588539073299211658451104509926572362955193644814593518174929964201121199216589140061112285164455379725352771257949190395998911312590385522554723236420922648087239632237510755536736076374047881243928386370135002606430103201380371603344316104505223262334966243846385552286256944503842838659511041893382157518720349401255381312903496212877740989758853180176917279838040338447133311691503498813350729717390775696223935300344063724175713340879941881620998933805452951471841922142895228680055434921542134279460724761855134214040994905486181510319666092462338890356922794347026931432454348319206209659747391193963011153419800353000292569091055833885325105805758752388295994841323328882686232518281042381364682313465347617016686694341331959113857676953345651369556084292926141563748812332102432439765714017545400836803379530327961676051144470979104813205793388575723719587031188298838055883032538273069889182269496024105118516401514857381278591433560281291376900671943056411227572579283189346250763390388913986080300541016037930324818553462421946365823526014943041453614080518078946457614994061296717073648087817628069335745453270378321489353607841102660705667772175648023452174820671564636016442213161960858230885783417680148033162053558051777182784165927885798493617894732895557568215959232146291627718865439686462999180896953755760927934415153891922084565513864246880646861171342350730808929229760326347460167857607429990828846258822338485198613938724166712126952500522484439022790659785789095368597651111651319964739904171883128827977440528745326217932385469355023046614112493577355544473842600147402479223849977858910354798553558674607402772829109386167489593145345999277459145335102531796599779863994913890676013186430941359286569055469932244665082095028748622396519637923932024469462506263772381696329365648026568137768744317228481003688400377420725311318081383003948800669529513317930684863244508628403906385116281955396912923378078875059169240652111941183824215933345342705929668773201531989932103271021274914565499552572015496930262424617080093261419671760215130722657625299395834528755667848885843999539078714151038690540312104210359432881761950706694944086659394287765759958837336445576215547884616978793093232670487702603557246139968887138307085413472244497467693339923503986678909690394204574278733758315618355656108975462368021099803326928994443774593880207458092175235229496477059279349359545045422564488390045686290141660420644791643322360343421114025323664650415466094921372473109747374731666694672825366620717216437015262259125907534742459205789208730525615700558307184833853300243156085851237228958205428584276684070549975479603148743827806538508969777919842777341958660006036733539183280689218868926223344625023483200707032787270412639395990292660233890074995972407027605759022218931659848238270197686223069284543562244641770159005154582526552895316941834641422770763957832146161731006189958431490860641487980358889061546847484292410480428379514577438990844475189071404578481378826562522350299883235047965897647387044930801165117203750671031052973750538146683167575032906924840340965888599642042547399372701891292357222772570975085043585768614133933636842214611995954616343745804527047669625055869179126741622133097279824383234939568406077401218508021933507873003136260739575734127820618967936278911928047882015746224238984415653052463357161239492162333603816463476741859123626348679813569024597792395916552569905614576871600092753758427480451038142724519045047715360484993333331145125148360548955028127593502573505647554826295782709963206625902348588292586325025451483248362099757809427853698988038005395663190088695407430731773764714930476666989689729942312346379307096840987047284122310075768625554364073779100553238933611473403311805874262862031407312819357630248045396948010681310433593494149060983641417103719317831647269865949711079263977925961545729884525983854057619033419703203215645024896401829174876238725845647784221615822274164551996153179177240367406949186401186260132955236502743570064922103285140735888003258565446647819944703374832678452992937211914273682125462281820000078242640034541037425566440183567845730569457111270640957153477630905147565300335749591685839304286979006302103568166893601704174563472164499359602767473061953918242502095515959172369341124741604249162863820625315741249974992291720373339687335627893192169810293016500532976616051718187695629004381930053810153411883909796743997847688885557977472219392761835721957235685188482181890771069921239485616932096352667044595224293028985905108097305930253595566871663117373563820417071218241000317021826491937217150322382204251127495873421510786761635902789068834966686335762183309830956709527507216143876877575716255571573825063439821560620401695602097213891230736092008644287254663762064055981810688616949876827320561131722517973001334910843590666692479076515512531143898515770267506185782374835838397853832522759248046328344835141414555092730719041196381215141145030349110338440128045324145540988061999096455941889444209937510997714413051495320545348165389574725602702480144421858168144090167387984970332421756246760833059114631956926683839492722985816020983653882463599010786861810799596587574620213009486802168500502178699081777932654842403636476134630615376330580758790694669368360389129219502957635421845167062039660565854397503439438935148293580821012918236321374954541913185499350754548526392612957462970593825206353411012526316549672108704296344785850430906076586548289127794702838623698980093211956007403658737723137989580279321500461056369835700028621163333644081540304693732241041367409154597109081087465448445728749566864221493582794784276429794851987488413815612724970038689765494024909411956656260711949366663176652418824954607334033344059150897774813527025608055365344549846477748365443938620741834513565237850086749409892217295194573203694019214621682956061205993352829495920916812011959754879639930050570802485586609380947142882349754624370754340756589807700042668253198570747143559045525381936502327405217217369566161966533191273630136609678943407079323231919748869596653798190839565368087860486740732260775259601567600418831100835573845202287692034889188273060220112814713879460001255470113625958488978978031063285126353617545593114430057818870000353944925676941071162702823173619744697282240827263220531601162345024182313316138466982560948656428066562661523340956194857492300037816604470420542403947820425260736759782515233282689610128894269949527595740139764345780734466645496710245956864564520349447899863414786966089207091037237327345262086254579070169834371135757367056019884376327309425457404887688548207086623803214596538706364057903360000980521114344139243171527536417805040510913341542012620303089710763330427552441336705438571417516781582536086930285923489047100485910352462142894387869505280781195375502474146757018821659212883420055129851734960299108473703076293813811371577046985865011586221050379288999189003898814468387665144995809433325833557628826581957541179095263989418248759661851443851580348161077086473007184272517698993763593118307952526263342856758702459765513016736272149280894980364638414109048570669591650947558192719917458569406259975148893782970512842633412004821592582241598855227065832997481314969396153138133348623091046765822901829167698174723360448537683270528748095838532658856214984181120442687895881366043946221341350958050674787422976569690605873986375048941021331612974803703251665030859313665002528598943403053106330483129170930192463709046484490210769172330378001586943966518758176479365157275139040369761940736004100315376979774170199790614164620299984113328392687150856353939051664057772652163764906665067145321491867658005520814099242294456657818900298258687839188447604872056265636536601961119403482281897656992518439439039789344577382361097454289326059619728308180147798971552929894637954561117858430675583914593580313859280157391571966224196238585880278960342181297068035352301201926713541462807669061696464336784608091130689700885725189196810089062693182766775691963422839758381181657849739149451487036552945936362842137371730530877551859960685271499776826681983695274992859898372736984471559639656834019211122963702160438437438701876281483721470351967227878553920942329937947340790775504567466651496459850551218930427731273355034235964702788322846924102815645344867200483626649779069069257424587445102328148026200799138788857968808906018225256757333546512552827016677236786738195992859690786761845732022018289249378009117608298928927317078030964149724059282639287764916904252708711936697043670494278295481520579962276474084021277209581614634852766018395272126445248418235514961466189239308197429906605165085783413590377106149557409555009123557753655466812847311207522296648675359869941043553757998415323909366405750272046797425998155046642469603556481654277852383215897693204337302775657683990697185308809356742742498855773778479270874901846595371398827493222538351716445886440605672285912118900854342727958689877942580110628891098358170011803467573211764851496726688378323925613882208483288912047036817754663510133365691924018084943068922964884798634360166813214843305576513688948983934915095375463679505358624053675396073829535918492970833373335431749495747990828498374294736937342310284425647143544945749641786035063891076792146067750446688912468013608427054892753791740681883137319060647435041273936160947523874429327714162500218268051541599303859750078608001407946914289203873508669270584958478936255688480872802795677615877352026980373076657871318888059783654777530781084684209097207188951947588445376020193121160816324025721588183146805646216513182928669587549480497744556430646752253044467537543275720602767811158160559353164483433196845426954278131437663725253459281244787874456288861069843457515685254378947390269213783832411361642393169662206426797801403995298335846787040771238249139587389134642468249457086610907994679101219339027918311794201591272118184072736310358514343983524531515335185647967109128177186986072312797243194723308673953206029080210727744954384942719127449788358786545160664186098491707848413405185773665208640548761188759116122384621896608236312123485968846325520496012408265159410680439328209379281994058731361100511933217826467334428929966547188910889330555820407113619797371322626656593796268675929345370623219802746500254810740341963058545825699255508123240069029726108177646913906553175593031269118099354913796658732107093099660665529708631165567067136482751195468250826763682279377749847950837445801814561922526733187654077037706039915388943905585384981498901568555046541740657640482272202859362278096721758772916078057860099623310034799292219768666196450116549516057679572966797337429384191324779628675847258028749750972856480289639927794592164424686904570891139653444627094407036229329693318954993290857841788214719087696318289442016407480418760250860870789641610027944086040785759564519138922124038831679542693968233235186464901569611782166869124470241156508811331871160830962949996606802050987230339030390369907896504331858165518596946877614374035152894487241272071515851979107071618119599647199832039260508928746000420762663925999911895574435580889565492062429741315469169965671560614190778836467901054906382355034696087210526079843715874040086117107156162311237500085368273319167258185300295490224994769787072822375731315482895586424376063519887017260021294488383298009292975380484760348231262026463731255662482205740172384258308866598294584559091964349519658624648317281397890882056705605050473246895763476359664360047430524141819113111453570510266562151216275360817238073683433790245873849804555550631286991996159965238372402827811058391427686959030129024746280280073129920387382493174249307287375309434983711932300833739735952756322004388745039828020411679059598218122294916592494122068552539885076870938334294490463687610908578334637650805318148044639574582385395036859588838917429827992861302643617441882315475439371672220217961299438744592132461332372797674073209402610735919725453250023818347818185118404658963226338375316476686745085008315202973333939703030757805411390948812652603552041472148174731847844833816826867206206891855687722101089945267400671530405348290858938369022280063299166278922013606530944391962858663599286117155416687548840798583299296732106568579581790825404038068316996856994386331676827135406107417287595030579343686334616055957040040715853906386385578993367530837685347770687509329461897696916389700594267343279960861863605774795093020583783078062821634217235457721142768227312419539152346079902739051109518348547274202046952459414542099461724718288917958742064896045511933316852381701403699895784019886094268114704841240207952295183370535066139269325656326541922805664897724464175377390498288327793997023872605283002534248864286081695038906694171467169513385781897706618229097988202418583034273132674448969433068504069325838589176596621452869473335306423621546212986498302486526171609439119899110232740017739133044046576815145608748341731317965570210472730962509277292594714162842419886120719228000672625318946875176322182927688637251032233178982009080388599628024830592296889881222228066769299272408942997677310140123334370263615609047386622277452071937838890694103198794550515238469548674508006410304462597456704300090746182906741636532048833429253886927288184793313238691463706320994592402695376221453552600761175041174412851371622256521035985316815084330450749745739658667069253550358320815712519217215921554939290250297114004971670158259135850325531699569011684302054010591448104244174498090105233099514610256306692240806911480561383559250529384233812691832100997951135135947283950172144700176709580291044872393118862050440047964711948843299303980752946157011079880069044733216046805113917026556160812476088923665388789981863990565536793516628612010586099382686730713533876902488436158640685275144525720899866631479920745206285133508932206003107434978355755951493092167324824987727025475431572217767264921150379408900715849051927173121232424905579734902935133495773357895528569611488843592910705893830730217718466261307645907579521826781113480844926397370206321071890842025614721600025858310630123856712721364868840754818862948093850334345773836497197556750019912313375656183904189023455565146119017574550980529753445999830937569138411138215152635090994539774231631088352314730408670754442105547064737025934801342079198632595285716629776493782523433179206429659419237175290073274508027880729720617893862090826599992588675443412175285188347927063836474715477449106050677681032531448753083967992280231253007541015766654964973796936151725116026334573620425269933038543847668011781017189299612361287676986613472996595207649392567845453505153945571558271654351883105946651651422861092061939783686016688701469178153125739052188440370306078150696608321400248845105200481911271138838949946494140293700700543861438829056141480079082934290513472993939980186995253785642740579554980884524260846668660589041035509170705237419451371524722429397010101944762851698982626243163531246922701032899005827429616547574330605616879619038602698505263227208348854238057828550000647513054023072657959663984941042591473203715767318392607176373514652495317030685222022058807698561497137979286527085489564163112661229700745735748970510139947590077178602886246834950797576591992673297830654841007082893798525848965371179281769868044305586518840430825165105802472243946186664753256594464780577135123726516319698310011868726160798946619122669626018519927988875975153556035744631251731890838383449987613585917615043957290282226021139568161378646370876627941816583265508157727813945251583810538433461488964634517465183688639341988054492022906150332071051747416451474658251836201189562073783893752486050873327522551848400282771059790517408983478342770726892234745252362573162445744835264228577483015125810351582540629071587704858523393807404320380005077297774897349519072479121346363590789404483434548957778870991690922761475180337671360601918592841203865758251187271782567914205907737763324349796794981175657447670133507888400226043841973664938741550213047327583948250609987746463525005939435754970042133303010520442545541795742731699532937215803429610604394534756211443335145679406465223144940676117943394906816680799359498788681173405904718064782704959507573770048569406905022939642305264248695312993159184124094684283573514507173591662191124762967959879523425511936001111404626857888683724363633893205177306294472827459321546562964105716207227539843878281655642281649687786884425621859112120452036635270139360729658840581282918622174253521208378413634947079752970288831033084989231310693507986120554095674674764511796109569389793532682224018610174329921075967846250360578173203213331941769774414613504455113420506741209275216181019713759408216771668791404585971945452453528784857458018425385158436572955618031995534581832363915393302598585838283192189269670446351913684233847826714543659971647942840298888592203988917577097646120251699922556467234717321316022698230267824242303301380571565843836398213098894109932354236071704686746235149368978215207920909145220099321437038150375263127265307447369405711325200915922040197826620892854084060565324151910015575199009375879606023056951738616948609597503591056989959593643077247350290913160863235621337311452144218442569519184427601963565217755099718060541669547512731602924277588570024174089366844066523908293759908666530879688680540531904827411416050995943447356836063749832601121228275558358183325124497896105334567697261013596273163992983469337551233946575932884284905389866095188865525138087325158795447577471006886411973969155128976434899496461552818839339989473832799360416712262515007698825550480224125814449760606300031731671400803098311117968938045574621590971831216126351948893696459483822517507722895876372703610953481083885532656555414859537274896975150784095285558488881548294604178678365937994778246038341599232187446660404062478309841256422349620836754216335432003574239663105594795668748816866129528566187824916706322534345482571065923215118996946500011733175404398583518998499559525371676418934129087905567330090453844533226222510772766251246331283930316475669655879026768734727710238025268596725467184650472817330679901541124670933854154643047678149808454483182685365405117530499072095900717283555678796326844836037028347283628838403534347276028808175974572183756062362978427957619862837813675122088253658983801514485512939569310178155980137415902254072715993914118838638327527802321366012125275590638542395333524103066147231353545509299884067545302446218037037799281439363584510626656257637751775467890808525602426553590078603760148309402521553563426143559251523690501584745755468157036666144565795524858143944900592699678780267526831861400733809765248801339996993932867851994017883104091371674298196742290426152455628121852571570712316762840407125508194089260349015038369301928481293531068338295677075327330123285488630774639798115883031253517541747890024265358504258198323460677765101231186453326661968968332603792496055335684022306052881017155598969209057818106736596583081391987793102840681967468480905517417257087924165165439907820634106547258514140768398278933279227951184117109747718296715717667121360422139422965404931541876002659251253313904025088306566669520176009343060465194358704541572841180956065473486283981187676825919483548049588506404515394017308180349428292596721732273973308857493454799894329987630223410368024664530424975038087727258546365553127632138811057332725363935282810248812466346821126897018204702112577740770431416339673143988701177109053939466213007498392146975075510260640036940010067921297264181169646993163491695278394807574131281754122385764665721040349672637708335229977735643587200186357232039647052695640348509017258811748442903097375104188007105864151863666965982522129757624664355669541460867451546392522603787324934363234455891618877183150913689137842327018334484214922920941485432936139895284447396277045757799322628029376627932969880521073269686744401566351924203686838533823578148771697392814318206532941346097792546385435832181497336253410221438637979849304010842164742436920107883894053681732453495796741648123925660441520980943901547617026452282883534629093053671315296753804463154443939161155836169301005361711879445736931154534458480357984719661193425477048458130892291199628106753880999930392412678809147668598431119951502446713040297656086593894670685234594962849099787687461765904784749352187176841156315300101146629279415303412710440905096002857015955916272712310378873854169488190281319798730164640059459869211088820179554479029793254830298016640839684255207435288947775894371843951092422009750373427839919610265114376282986360425344147940131606024083727435944530177359484345357391507741664421096148238070912616428313454155268605917453433761848425855369834132667955662075734558905489315414915048268070018397293732750821944825894221253699174609966886376212775171529122818090992097719825783097029776185840250652926934899464875701797230390928994416608042258581714202686129087870546470419772070847337927971585738708658045578489104964051127286806061581605988568142078186098761486790068040989213119042861536731423162203508457860893078849857882369267551930969235595960237776960791966290902465945913938067440214781871971051512149328992205317183849285237252778395514837717975385122212902928278796960075458932331756881792261425459615577326889836610249720917727844093365394454944882960039361713463930984273231143170908353331130381065123984667864107941768483171593443787821891346696834013300049295051444475579327322328037484116298787277525214636066248965243060580512255883441951323398528899172176946339359220155369231550908336753139562474265186428529253837714794974358874682259007258789371458999994572136267579664857945844211835892798501736718703945800293058910039412310265980978844731861514178803283709383868782171903304053978913220365554529760857255803065223839960297534912819865711709716972264802232693378105464885019205057678625845884549235023344436573249853557831378213471143212488648756874198120251407104426041328811764419744882094455650890172183221210900070769774467360638898866104928596438988107701282519725471469516884756748628399306460131673250209400596334949732261331883098768990937607752945976566834694006549121680251919860508876254291634125087442378456551198987899383727795896557520001037920066953670760651199644578632332899670216452290451263696655298669919680232381452303787515159891736646165059864337122446046020224509749215164915759177396383815855411370508326778175516345791629470410249345337477351653266739910507244582569149237790800555337909835565044914958308930800151474906154630861260988187109200656944574353278786028752731489579258181631957581698081468591093414715652282448769371043960223819208239775125722182775472959277424891264540613593579573644908335247842546487885663865208352706464289204531036296307586530856648255322646842879021136933311300458350394622385626247172759607756267698086504569738476844549515842096821596355276680774628968232360905489469521513883870277992615286840144982350502767652062882667701680053670732427195589553418613420428325330029490930204434793232024603284333349070043373820709228608867993990621155139540144073541409686456135544716322231674843826936735702036182136941360877273385832208249304864957403476082563444512381733928472945758645436563872339433856960824703377210854845290919022225367930047152947719382076046204900126643129349088935763160774748484723697973556980465258663500415290553856644643477552547241271543652725922774082794466732002425314723068207807973944634240459862174473066671654221992913213856145507928005683212208503555455258662402030989263089963850544008475859042861083005928216635206680955163598006143789570056127385386356875699323193084154993631182158435875761122515060738964121233300639199842439024385524039591933472742721758444525901190481150931594464115500275755597866707265122049345795441704209854695747683132170095365555534835245113349073545916471310987996820311821189819043323049612415621182693939953627289609952184848927612921085594438293277452736810208395291785646219851726362713728932824150369725786245314507203528017447453886724829916625413429326632230401524403945978300638279292067707065338894309032975917884602280829734937791402541204220515171086914666844701976031198946122627608299268515559565506052001733211596077939971228361577788505290178055703923986253921844326513149498626261130159689099234295202855268822317115042477051702359622935248755377711712324511465770715860736066999123247824665495891286209075752739525501510171064358779430758892121669375983991323503604834295672111667256290802700540662570023019111576863186405387360307713856695434597480813468389984342351495843884040542080654997945247214118385456042357561743497946452983871806471810750120377790949878332147304515520599318739424252925651532286393026665237200032115504944204817097238415729275060099531776202409513513270983764009078812714093364282421008591880413977095616908188513266636486481946207000366846046643484414215487496245168097646516281117951536938224665022949543814987804641734661011916077397853275358106842441799328155955590506359883736554362961018252339790412858951470713253960734136856932072457849696549374991083712618254439719730309124170540286191823013013257476469783646893498300941281187491270656124258166054676965802908058440023595930405804513202083208165714844533221998756227846393464594644274823925463323391821893223606443007222645593279778898597428640729288267173283641274019862438366576876037151900898504756384495568324914364105787819055556784568632344038925741414238773335967388092213299039996301895859254723795832042660525877349568295707553495021229396251815497479077960660751207997172976718273183912504530512660200870447735564400235501843586777864635533768957396182521050070418856385192209576833289355984615668104773146227315771723192744293060506297773572400342949453103421730222498140325411151784097667215782779809690448656880224927896775082558349526968352965948215576569683790326976493176348463457527166403122256400038022720211892350600390160565980366226125830188373554773596328313539708189721566921045391870856925100054158035558260705780536659251838421509499282962753597160757946646628864025092687873708758728229516119303021871595812992871171589491639341888337679265322692083313642685042258315911855606058230820391189259552704329026951530698553319844047222543394992163366377861137680143507002810771821654889318571554530274466452958697269829057091836601571256331782397131135140696224013183731702698725400861909272198168446262173744126784397599617885771318389982598430871466686348554816347467431233110105092790126953789084366614181352215471231841409864245838898547686266932525908225570386686587649458864604783666042114389070999742462054602529483182835349744874152283694902916219228689552648877778186378040308076694372207594086355088476709487191542768235694629006168995246286326786777835826708050298560467987218278518996693932729756284314300276565744971604653960301158927774963958989701118071908202509565462734206200648021271476994930831503449940984522279211000925248758898538531699586258413551712762056662118113730772923423170636892629277355382437216199838901080474385916825239238822123485483711580818691001461453528834984574593535566955908890195734584515732212180956712821058539574162973276402005400436980757319630904712383758114300418731228085862501573586047588606913175284279002141596155277117878796950550286669802860265502804209520293985441338660613710910816402477159461735405627192171085571291263088774619046405069456911178827622103822580952488523893784271039680191330833612289991491808120561798913582364305560213597110929854486037399812351870437999409207230961435120978987504785025259487465395171611088179681971809998550986344854742654249790192692143579982469695044944674718078782036046085548528370329008446412123108736991053903565023179453676948834026697902065939466591616158068120229132787801699844676624359947699357733496721127552582954939296525855771928998200845716457646441273313330188385994950291028574789472243697749703807469882074792789893122652226237020079685609647038434728068545040757400621876287335456174185215289502915640813024241390003902955889688912447679148433177082715411926801598802042761195571381105602442909204952164370117976880000300749850603441301014511390641430402306280560707626752751011519214692951592248060464136786655157507109474633838014010740897714815031650621616301221984791892922010816723752408817303823041309926796630179071060404044410039389473152775869843624471053285587053936350829118568051745371066572403003599553074432011898976745273825398279562083216143110998615140213679981235963803030169722007066643108625246177254085856698005697399460154561994151573082639366935297865199274024533861652237909986803925263316677247743104446846325058256217920374016026395974903200998844063708537512633825272787479396983045272320292164232041943915909200492969140951479998311901215383688492727061163432444013513068278576330022144788237353893941571491266958566405361792637941805626605944585299315115317717660075436366270565551541752705284307253208598255350053505097807470578197814378176544662688667854813820168217017940919678478864559896102654627120824726505307638218570384131531188177017491912035566979308428940428650238625033986336138663045818864795479981101218284320134702651953162741927980296237028824807954520842573609694376040172197986263409231716539979865254691070790008167530734209344917775579649420729438982475990988948609645432278678467520710215153268469072526455595034006912441389136631429919348946824521251408224213971504387356394365286890953730674456162814109337929703789770109812939655631276162592059130742736588916747279091788955699317259531493431483065993886283538626605142670393990184615153634717647980086651463120595479471660429865657685293795646728171640757517972109633735049818492712661358778159121503290356689200911708239825489198058573202348564751870788243234584345938196421659826757885864862533179384910386351456222469427617875253160129627567672845992057273320413130086060735588238200806570803182736321587976195873555874453472026432766960451657672175561992874280470479612204471057515464690378917757224023194071049922337328399282533940050462148700654928711270612584513407530519450500586360930553963358030271193900809391563562556136957553233707621710262273871469117195022691469176758377891442518720848177790063779102651541283844459307724823284571377340638461491912724752406882255947947886339033469089249515915256381643029159077941849743960482434429574152488253266031476824109945707994343895425180389669603205575907713776176402872652499109829419501941140036320150094646843215149981862027870086856595846495875663562962919049739574240464147977030795063318876636506719751779090888291218467435494011963414481199235857903088532315278566291677132476648350406997036194098639090943176909880058622052016515666617985999556607931404995057866062747122440975183922993388088425485409543988721633185639876900027120663709872558690914771142196428629555698047229370364412476378186922857121615434319455130140629145883265677235648957944944915700718937058799119637249787048677843840854585001106145603454167018169579436715654499165169469545408656762942240863170510416484926962640662277378218601928316371876765233711638836684783247694778787579331235139900141819420011140355276537362737523433093216025548163834802810732421359794818100639776717013235694214998039631948495047106783568918726407948065689542984798564262796873502333668769824178384779530132841613779114460095859730992477370970304674346303980175714765757290398998992998866195052681248172419115617687229244453654405339708501988807820367937896610102769275666965542558354619844594860316758045958372602129671449249319033970046255361662516879326257788051215677275023294695453094196653798322590092778806711569813148736802276381702588318536103548072796494320801254233340204216300664163943051371389623881177724611718221345302107166241925473979094853092538487845872059789449492419617515511371439333023260313864374006257871479018341229147778997033074564423149734773734431855253044747526826503295224111903157812956790330748155408623029565577563988062521826625164336492723009370250964292459868525477155235043811519017018868745979287484979663578926805370410273263595660257871623940127667846222762225501427098291080215894604834439382396536743680436039556967421862076351634568323483562587707823955838251072713905226058393208979220163604889157067787439458638254368747899359479907016278429615016457908779387341680517488862341619292565093619550373535913294951313347889828742751799229197755875574867533188245855108290838973891581924688330855072209994598506192841047821519198590430000161169465489662173826261177707132457824049979008358994182922052449015062350905737358011649377332427775446879372623957379477724846090258518234443414135636574074663381214001712052716482820386487357735688418619410894290595182450324637834109170026935639345134163892543631967904091555394277238068371863949395429375832087325567598567855260615435126422473359416864007418512611003706796729758255324156273618645865289971618091595786328648195761958780720385344444450468602659760708786109554474847596156294770759111252344095943576382080566155988598501910002445735478558969485098475262059911463070475946041585138126138779575813853498681023730921246198834904399991990655258187280234713979729530927244044107603408789311075315575474404807226469754793295537454509418431383303469109561340539061957108959604017071917130999521239981861038693637415635045808588869576851327760897755684415399965599513250061503958819486288492512459505237169182001606743077190460312871213742938284025705435305313533233973226284764448066379167428492334541017551323065077951538427470981084478844244679914809454149901134858005394510290985312135120681621056308098966900710121651426985291858657722731676652393801016003642704212688881169732480780089165012326554777715570166790140822360011269806140513701962880229436315672347685638122028559206113987779397769817873649151357269704993300784517898891453920920023976659650610500274922663326722577287525985505084825184848453468910599430234208516783142529820014519973574418531863541435038272096673254482000526824167179358335426615229844721236816043061233701465818420790626667232048856374945116444631978043529095718890561176107506094173639031234830192486585761355988110190798351306111711882123267572768033212095030607546832526100410653076861524999956880855470988477086912046192995821318197444277362336914012836736777131681401337397093486828231106262457144755500467587522562766776611893419528568671415632649609362078410041904772120772406263105214595135483477157525490256969243716396047585897652128269636557384911733118355090773210702525577675767801362584640651602793437061484620395143979306353851718234430941184939098539033163913646967942778722075429599298639377128868427725457232898030718277621967463300481133548314621168321673646144036426997682058086050907237104378567392069929458029258263064378721997623598845846089884163478637738386761645961801939861600443146437459946631894314013748905722463920559115605376190816584018170061342235481181082604656892705633665941093594083931178229451323564365034229474450189933263611839726559987490883696229358074896346839600319949525216255908517451686582184950332242041022347439650370708105686131599377067821263773257030022997909095577148210220330434418208100236860718398773702944890008825498027499185065517280391974622468730349490794389950122756814753403668709031513075172853628666637827910513582233403841625496955751526637477644877999810921310065668559208514353035988332178703626803709481414861840652824152939946926102446196650590395224769534296383319413563675080027080834972247867401810745781321371223019908202375246307329310769830551919542764954558629575199504824984766026466673628847403958044531308007749131870111675276363218837244741933286042582269866819462591035964998554316408943786622926450229312419477725489939462140134733685775254568008179020255789955775519652056967906099549050643978341747576786379591915109739439416576508480545232090988318833923907340950815253711734073713473153442569432643586451017729914467901994721424691529216840482808036163072276508532941641428854464696079237681949274417265837367828806343456017741355336683944159884248749314966194295366746692746078850854912478777871016563147162911152770146389568134705188737399369813432121453123286907490139164933953407826645461884268857418012687105809395821847665674312444192791874582428344802645934445129973227231722200953153014613443743286051569812070341214664761845506061982059908792745055660664802671149729741979844527153488339272229856983914360160559860118213701591433375019990847023351340797162524504133815278311845765751700925321811820202165737610089765837610628737868572347414593856469424700815619966644628745678071981087210203194914944888540061067806289122356635543008509811189441673864346197284719148929618238595006185470622105716334509724900404830266636190937233894680910112988261424332510891802197546583514568479746366758158644026023651941560699604589485020426000126832570929726711008680400561478372543335036193533072168059834940527115879705615485856446002521725762878465250843427037392117260772327117344109870368246155387572089442703430397560759382619621509026148139902322387145308959213258793900615492062260248417173321100814686072465645267077969282890513091391792313064309376907246007851900797735376775132504233421950186634187599593931084138262786711421935365240282070650859230471313964659063637810478310243286412707693489667020626227141276345914195433407162575798137359882685185087868045817413769958258887048328395340713006657081939740020912731174844957574231368007655812853795124525364417727985162250968106376565841923349648729495144016307998756808522607671110448898601663779104546966489179624591459617213241113088373207666092625260187297341384676728220607208244222976775817519113090160688230170845495520904184110203667838364760849795431001878258273264571966265342880432917107368703180741230391352260067490009261201294903543160349978677051698026961988435210189100301844492497572713778885371238608143617793247515167065674866462244090080000797936327558089438593976996721641285440137585623189484369924107356993829833387080809256174210433486734249249422516169063540016518716455330309852053711226670803880046910974179622437000430588953831712854933332246567887434759945343561475549944380866881232841299665876590125017404093509834723552829023234259103853463360204419061393508233354924914646482698416632243798280471049078394119486143748412127037082678736150016810978063290811299423925591006902946504763847982219713215745928787740040745560490074767228081083892667832381224261554806755259229012118308515662150914299505578630380783245756669590558211309426403205542886554724141656982532579347349384911193959096331908639548361464169923234743218596252889251524849905644584418497902414309039006551784220840637920934631726166090105270418334193223045784266398579714648699447874807643317293580467337421266047616682726824115361646758305353802006876949075780140695549709808927444991188916319584747914778204388148955813796812708139013601044929577600287312571589976880976183850821237875413541609504709420182745047451545835472608906756911712292795562921956695173658486893243076433086847862976871889194448212078336188029839375494790673844876850305539544497267488950365190044449387544048194189684189323903607866842955139364304879535504594781271138521615296853566575669722863270513546224094568572326336179165765022998690284519345720525171953044600896621986214113109254243738658356194997910341698866292153807882279099453358283160466606939455927244530420582962382891431448775004328422819598774976385880002090730148228160752949275432050426129261912828434515417255709099673721392366317758465206783201183492187467985702079570860275752046186612431895750336331232348661617883329967460246597357158529038333059573709649256589261064764467621063649647239506792959897170250047653220606638356301536216309165428182539912461532855169828676831821615732545312950762601223768958596206658365773919502959105489436672192636094298399361464722834327311205614540400938428327016617459633245426870336385361104209941227506228664568535278134676978979668127501784635339678704256616069720319921735563690707799287149744479736365114765165358038267735360928789414224945316466585470370668844066989422925274587761013780221756210249531136001728109756413991757594613116430121512598138668359014664283500136799860669347818557832356073690448328970663818965531490824588889592065686564008809373581356111272369095546275111620075738189783909419280840643139208793734805468830489424749402665142993147306421194413310769474707010557278458422713926030611525611594600271284087414960455709029982356375812410608423590561626578682753336588016417232618697986028758634783439795697705128109303328512557814533485776273430776830734385575557585959292997275240170776432734814118968810229719177978662612164654000823648618742949730408146277432662425137647948349516519987712654447610951954860074144082021291433398115736541672108881907885823866666940967023519249360878858819798158774930567671316204163703202857735578186122447959474394890399369896307314882756734843236203651568406958077087224653673172465499750435060978128335994070403846659844528043618010052819999611742410585821560626534318260855416257784423988303175361191563354161869171353784057320993704949713134619879431485261265164783893147792944559011675319071882797761105927527647682933036844034401808251520196407385668641000621393027804813002943556362940680250836432225376169661496944631757165219516950468119692715105103358454448428555527502087656820818325259169668720608784945243850865448318150597579801447265545045891172593855603219641083725033708109728550684495967101315977699303409344722228521834867580864107276021124288964952438887930151709457176152915004815659625680069303260040230094365903061795856625950910076667325746942659901492644423080205815851225935554993809250795478396443463868485460861819815037582443801843351255842942632852557444941748386929436609257945162740466462428482406666417382503601107503977703571013690099941904790707651610490024376762313392862435060055768614230449323494145481784465165652569433235920028016637633533385420186838448461703039834391214636952517136019822701623545779202056268361157314741051630010900657439193484468165941650545471025971298823975684567882104740536849746696927535122378276280561268469889931037717161598916685051899270000155953285170917166679349522246619393532961390721108916520819289355866661854561728407487033771936703789963999352571617243481664568634471601536111231304466398728588510204584254553298956439262666257463399863478713125673636174407840927242301512116732600703158276370480932570612732030855351957664557072615584097857528858007673183822604635095597352043208641732638659807001424049622047897174062115602981602695850846065522951565344549091152942735007801375685506153467682967303767141793940911580856081571681079392984106516426469177438960936996109931146060864922336490578965779977426254107223060481048583212667919446055651811510463652295279897313420788975953378203144218900344523559250513783358803665716416644040314904268092525186183668611730841122078213931198339986058692765710799433553376672423371304813360885508823416486700437513329057647220505698482464634309323984584051535065688427175160783480669637440534406939610641206871983161581618378575002212985559622315579003649639774903371746556118020946728162251830104627636859496802400875923956239584485066465220814957076991929014757457068213348153647664681611028838232151938360143642383184832143007053216756901369000208512495165314358433233475100951110017720468117451927063710633631629183561471605729668237382328216213843949327606613498221798090409197938520260627368627489602769202861496138480661185129749818876883227151293206785455253190323619456324740676403913935583572030552423923538361084838151026575161946310873070077400561251514891452513759284113331777952780311298826945977244206543293466273830411235924271484587337314615549074305141985286819156851186760085881343889101075972001505535485805326525174412307254547555374991840700032420930851619601833744743816324702297586768587548371898790851944179473675981187073088524098485373528152090288180334238604017501010627746396548217201863717260834507503163555011067946625906803643375036606194611157725722017099410864475643393033803276093412610458642395166634721226189562991054704096093980235277574845247082980518218716725713900865288645290096287198302275254617845369616822482975735926339587160180615207814706610940338970670099490032285617581709765771253038850328331420157699221386462514291411178807358478765881905433389025469882342382102215983979653365873044503018727351871329585520589959102641895767008439596062121464177864854690255619622195791326315232950707953019035770879357215334409708874069082573649435713717459049089642547870963888742672401221523813296028966458211573973383178897778015918751574096500040088220031478033136924908218737149014955811316977788265019067446747217018811574643184801419816596649239797656217719893711250739140624970167648005370169089967512265301665612925019251472716304203904559118326940287901730861422246621988502659609992846581444000611485374383724709552312453827866714066881427992680057224703986717932804788738383134486497167239628622752053020172734767014208264240393841575538200905026229349928569188294266693282609964988263289892670254798456323035717607501264787685148151774622509592943882779662104802904524299041980310576122153949396309324509782331053842411928338512474256970851800646162354083198485057953258057560784769531087387585420821528771655437249994258466238367980825244979853389845150617216945130378750035950546112149365641978529392689990685353404001523059347744504090385965050298810769299622173815591594678431551780296900200418916034013889578804796653553150692707627294321344472809946163907834637627583855300970282208448781370346823901889110069318781215516997517307932377688548179634287874280135342374959491512829694032681998763530197680184133234199320445654298518651135222003992774259348879516433327519386906968728386432992940926392992368068028824696113422978717816072414266133926908142217132027936179957451323235367078059287418325237054024513696941313624317952412153423725819895621604259938598615811978001877870853020976251516527086813343789207390906114038821762908731980892859136707965196557153707849428349399703885392603626262491490647172922283419676533631500500587539379169572041960499451527212766420615107454935909933444539846120064597864292825739876152631930920441046829428000323861413550557733514975414456219946554770297825945541973521992641767828003784700505356454587864548072208956510471070730731379955986724693510795178554912424584357509979972580942767688036542466586592389354492560591920563770606277110223176363823954551052645189285606842095297915274292390353514328640834012826608236242576231153132043793584980166199809428502998052855934978607621576454161895395826690707022405659864877779338625316396595664383327907532453827124002734931350349533081578925624424618177100652669115030875537594268900887891715142922488546643257797651382001331582054142429005808835446238565090902011546558316396956730567467983206897849787255580189653255905608957638170833200045688482500784883791676638119253808266976798700252297440743853282301980035531235141906038616236537983781634412286672219689196878663593367880275429843325156996145649727521338756714772219301079355032890152014050964413687477631477066619093027367132257828436505427396341335901558678964271698877684302520461406800776462076470242878191386009393925416505891689067574879448722919005161417837965315974179433610433329495652137235728778871295531163497321835228968830366880550864329980339660791516754533538980871071056962825033944162133487486068669495220919173743631519914989227893391952834944061489706453095511061107515641482363726261444670029765513666681295259299906051043082009694246792540882987707369702029376843051363653589985618922809833755416069811468061799850605621444681046203809810333742617973167338436688103005512239793781938924567573681914309154897697531361224490482563790080362951358435557970378055647405079666269970221316943362857854857075782334352702803362905066237304302499509655882425818276585896050117366876641788730065755524593793846900520470026726533983781699904137370581278893848185042073770111780057025673182097598202923115484004721184106738213571149351588937489299825087163634479052866747947414229251358503890200257537994388381967010271280519549777215799112296926369043897689867957363659324168059290603816695756323508649417837934483424519911879782904530911459898438338066027942030362074629129006697540061472300648749875298482821932758919732791024437311565643441121603902431244749151022683995658097266825111722406019781006696021919876042423531013295135226879973652087208417716692393439749151704647691807652006796587141863282827542631931782275862481176265402354764961739879493449636502927918739629333370851993537508170941866147671450341379747177936884841014863674818527210542585249164657087016378292005933562655736757577014039426058533024077028187544055791991418915256032458062633246487614434107176989733987851152019369391006802621973647521211229682760444903119706534909687765673538035015194220140911824251049570209314612817562162882819839525533398063981549670373830053976387275448068968334649538169006952224493441432812160435968925324352133511582083583458435922511345605441493062857042043744866884378718342115203830312414830101965795203033798817640953149978561426074576286228129509039583882534392047010098768851775006672406368592969272378005867097970233140475095272168636930094708966927264704297357235836971809434110863435866529895600363240548309707380554484704279820419926780601321046575174324612114153564575785734108817224408347396301014426720716744084359766957363154303173693033642622690373369123674262677285497357937199343418469024214431597224809932251531048615652149751806229489634192064337386160146291596742074281957758031012823735928501874318168588481392916742490458170008409115276473256705365478589458848775814944609641257667952542240977839981894179872562147103093542203727472255776322881517419076474815428702285966685775662666403635908699205479654872856553154235822232292754910083934638312739554755106806342644028420508439631757323722661444799446575280399562353524606815924571008090989038898414707614975989280534331247110457310662311768796289441307841060474907148970372145078765058098837566544757904907603189875306304769856481821156863506586460323615478045246005744341622848185017063222886280723972825146349482497629115122749807189370899111357824452501959866588219695931455758340023025709093958458420572034934408965504471800889369583685175488955190031584693568512839715774097429792131049243824019571012938079313025747042121319121912414615260895819935497607768795784531149115060214878363886975055344058049166253910331052891699102154284920875348000920658505290787345827137483459165308849912445118231550059659973894970545847009100016125674635514928274307761478695143708221833519287795025811583212861546921567026401971093600849615605001871091809230647453313910748369757794384210299676657096608384828385713789080074879423615075642273400636283822670187319670028861277416445978806945852989524758621093224903664549394851177129894782366894057794816694493827652212673249168589212697950418131943916742561088512665345921847305387400411993235439296144222350307924465935393598524249630349638984725258894870251047857720256496662384283791746677885536647718265536263518561464906149556408312875601433100144680203547360434774613615056723891264882422991709450382512505178648261425325480530465825419691061186627182882885767708410749029595861579914233313143354123841505309474653628422285879371206268411169084930983790811430145648983305027669429853194240515578964198432208884124022831879235437612011208576594608463056555798131801337176294271087636227982815980482061482508649413076430271954787477131461104292364169684845197954023773951984203931073235669204333882785958552762600855859108571845570273667564396809672562456700886935299396482070152370090459973793107714693160201408210935825433181477391979258133059230941241759642754157112580433207468064066165668790253460140603581529117354863089181536651913134401809041910767699359691643846333248101763533963328912188741168971197663522838416774246433220184308716770024165594975329953511931236620795193957768623379783616620537749973607948780263094048405091800230688155310139342891485495419223292179513307728534859271370654713246190304022637368920379019057094200070029423425037055914471839746156851432074556136795277383284378894467088662836996222974954226870314525072127813441279372867273153941930520661675953800999755721370142123510973123924627148635236670783257544432319430152882966474381633612067300116465240734936514475876352468905308543007797480973170273349012211998219527380978745237803163310761970884232962549970869094466870760236585028654950879716352090891355878567642768564145013657493828430336202877869737608868692301369785882420611967997365898035504199286484109734828070874737605598100329692438415563007656544658878334009201174643808859806930948814561531502756088925735944509934302736616692829403242307932219988769401607964930353578107637683313962233242540978465286395234299674872441697573027605026270235741417016766932681588158536546309354693508225999513453752706572176395120085020529057817678022514610514861378566320347132727854772784302498222704132136183748684828834184532406625226597527325294407592435157557910951774822998320609072958948086306354719528129037366480887898840546229662203755551190640551922235027404955140976804876043767894780937845032554544545454893924751755633051571433121451457788126503511961223265071320438105582993234718768197417234612814677656635941646848618216634280409204381661370675491400743990054150908090833925958026599310967827300703886836215425661129341271026966979886301168155362919098732352765359238759201334299392224979908704457943056574104724842274239270193942044146135495543888792476771161961059178466086467077353519965563831123089611504587810503189507608846546981147364173342373788478598443963866853312314671104739656765934553267866057641218135028901527445859269788688612964855009731279797680466081806991159298174228624224904707653593314255512577787751223741814471421101969276703115394129417245265482617622461509888694913892110273457222357087290880148013827356920967573302239229213751065364068365937627754918996855593121680290209495634371459769257911032282641935591263348114023243218591950243745485736385905904800468973090478213962573754208558568603431322135759639727235538019354810665507017704593333360453697109282415540281247749472595115698127138718322796861490263843953561607740117459188048308174513401169869290174754891033378808216058630604859840140712508872048865419159797747535100860741960665554598809741671299977241142297366748489773114519407105641748926486857248673540225125049368446468162783331451903128191206157934275256392890034835933006065575617248462587741178222162256656078104773191657119538372019531107494015665903053911436148555085990723890964184018989010272708543082937456343384958509425255917125102792768797368639768245288385972499705707707798385684980564940608739943916672475446475070721938374063030763862802589162199250737144682039124705296085924757359075110601747443738159088549452787537203200818115638543236292450512011462815633253936958314242788262641947026374998850647650992638775453923669635381390635702356097938054568402794458488976177696435859797887488402257370342651514638925900199040516683305331727374427728489108035390427500753243093328493950278611549318144768400679912952854092637109025286326276004736793053821985721665053566188311392303338200475546730636245006145595156637526585287490784644792147607354321340162820672578691948113210442837330029113826827770033557940923138996133986308486241968000851774915881737958178844289607390028711661506205093411249218106467983937150929759912933787963942278801019138516952862900177275388358503521245601682188489822200772504745519073649931579332319001414348386813077925784988109826256114176525785258810406009503731436879063033922569407603762924620248310964764501350258905774025425045416100079707033392135935742558486349381128069497533229659299555366163113311354877122719312431090746685353320006756767848173100711053464009162540875880526502379332520274887432680238716304192251530990301578848008719989509585249413075684603414761416677359508736256610148084473897202513648829706147638782363787855465402064862830759904922679319366555943200933228920581737526835834937580432589337007589927298079400855376565628888206302100248914085393294514787301894982961979502489069062066185754481869863286003897078295535608119461489229784508480389604100139019428465100675665762276998931641025083478511236810177081580399009296908704298196062309940658006260218573346719478805185195627582641802547465343408905334518511125705050474933448848653868930076450190330663966564253255865979670496483542174408648365818443555917006482096279760566884648505511569319742220426897467514520027149252260267944424920280408430764735607178021968542866926169154122594049279538807944914047648137482498006409093084728119560842419226493119212017886011562370814290433499415053818686569679531927419660205145313124283987674987316346454757297400484586151039366561044841878894448094951222060345971094516722463890131246381422901246037379096537490075163533681634984962361541271859741304883960079076377534537786535662986219501769693788866657648768902466000298038047059728835732634179974674616687213792852956274949405389655102167312341254699045245373901475084848726205759289493510152877023399480085860152528372058606842072714330280215476679470919701706445419191862900278606844274456367773484872120037049308169345772472266500086219056676888788294241233701094519523411892970824877069069111879782720979265475398779801718297418330489265336372638541932517303511692939477194631085264530249502926649893409881523013634253012378252119304231763219737186608335771200513238351965574028204747096345079312985099559905737852855902920999027506992937939744280249193324238433632146514150580898180370924682269531257036507270356934927932437655718568138459842870391039952908069720649719446830660082674368077985536718586937742838982631636651674429279718725335660670455671552330273651429213555867429354235868478182720761618339944749077550404524445577875252686075746341282044232766057569987869293958491431283155192674381626884301857965314576903975536714654306441875268156213009273066443613437469116633836956457790813191435039476900959226130569713330384145128994908328136626356575433150992632813276361686685954109744698627184810710907813978441629926521370787552545515955331277537451629360344344373130730033262788225241776085176776795691973986957124062454009340535137355922585778661950248847400079415412679029212230865395581258903372412723917200392122550427642447662383544065625908108748630237533681583170236674976862308027658724426562385288762774645363629895618791219996271078684791543101722831610023704092440040300424725731787906330709123184007706759031523555918490152279948341623416180987294162310004595690261057630357544282958778672830290335204819060265773862404877592982566134477683706430305596149399616951132008304056975163445047371466037275147421806063506576345948509871012621606032854478497689156998009596159511118042180413996507946448966332420674147187995758916835467786849030169460807858214702627459090055993823478496969852807157105457083248988546852025988917174011624999540174270511604015810672738967870114417546978368272443525755291786287176666974480960378530360829418678881005905552999938471380841307851544283366122819914093490178922753666952364831628895851325964300706157071448199281020373026787644296192437892513150810162185005402253844007214571175002170391653922283302363012005338575094173643468490094523478325280404328382422750020743808315406032059468064218138802064295311162216009652684872795270623755896850358639224454771088356661428740086699578422583899496011667457952753308265741600678499629350022136203782976466658249634489151657719902398404478552964231035652903291514259660062919878086693622714862150868199326347443496686085683764514575689911444447465309063055933129138859242726179741750247485019852424567171341839525074074227905479637352518915581058365455179461947385700874381358767684343651220752873185886808581394497898719173896170385970547599622586854912426489488329701945860833028232988765624439580944149517509469654105145420735085116537427642985158978763244640475955405203851171555380871126855268723688548664462945029013490936168305033802958154555608872804898652311160361109276660312461482936481922727399429185192881170642659980794239366856026112187029705851272101010063363102683616699261338912822752902206064217161108970120640820498116067994924381121098768331753895093819609805967212972053414024057371781772752291681915769241606902032379729229966554536446765085186379698387124058332073438737599387099800039275258141403423610702861801233160815960290399463464850469724247296801103330156655029237224728744265832978718789315465581812692475410464483216176575386023232293869698843980225079828025772889641937891975467138813127347433588667029747990400981952179127994535308286517288456891829656035213308271913212331791537480231198325307120126538100968956107907736421957948922612065724762165402752021311827721100761195008918745892538059200565131364316192096926613976183706478923706768573680142668553390501886113050381437150044080923201544901960697393959081528205484197788646560581603147213853919333611696382794871468583466611380046153685320199712102732669543365294837076601100232912781004237329186922785485036117167188293139724305975883827324516349128264227384821074374898536752570584587241389149953270154490455531661978291950333731489720242507080144394215228193186415435735056093283110712542753989279639933426958671229477335953467207714686635832604589509477621924796832381890040989075865112255355889252547484041648075871736844360624567875220564240617613798315590111692160617673165014878421635788618212567788147845216712046503964912934484078315555148056201115764605776126784787257497758173233604803892015231403166121727783516927905625620887729960279757095581065252837579458380217546011627655803283562300095855415056983368408381479436271525208801770954629718663625470209714062481190274325226705625674963667396435452302637389733888193443132564217900763423284001206766078117484976690323897668957684875169679696237366954989750409603826720511027796096774537549899505069298238594812063263313458730401382017298004633002874191049141550196135417952139807283933682462508084455775320477995329705371422819903400184753161069906810433355013173449695342914331389421102544291541264084849682077193394757060807300771336097754039627043293941134683840875877976738566464128663792265771600199518004442555869535925753272212261441996344377297281256004244258271884110877176422416915856414441782285616574007579160184867266773390493970238396810278595268390248075891560657727233720493203276601850033119375045409744950448495421124398706173850960306002917795962163740102657594837460048342271441044555889402069285023253953212367130322845762873963503249270331031633036660841717495098236228237932672902697352797066359804817197842755924823617972087410588868637907447223297320686058395985825490292204516034538086589342476823868489173017898864639654198796253988852853285371292112014421838358381761623635017129951766204651062479369546296610270625142931172113293378202384223831317244978111194471059133460009409195653939173010470893959297055946262747344537128861839581447586777312341518580479243255092208924197703786562175860849230459355445886829141127013564600282703912873872794341743355437763458637419299178477700607860858421354003156414742711151166500848995588863932568276489618427376391589544721602116164046169255937011027806658990727682051365912288746676833019109759995218050187948860919254859070575829596697859309042034414923493598504653854464235195540351693835889544109873936890527172738483914743469083542386793981298270791814594550295537764833548587134756612355383550824224677473331357287214704328933485334070256054726507730291090404648447170001671349650711048712985887896846630074259869776301894007637456328764677155998762347173636198849876824785280078304430533202677932803242341903675529069686899252573723797092796796273181297857902673335680989201693010111739629949764186489465094271178334014535640027693410057796386370636884168772837172433454753034827624436814629336642271825157335839013253214641184140244710066980215839129750603456483464339557251404198102418552425723844880860604801931036083319001594162455173517691273639621742155789450668980318372013610153706089392703837903732562550413344389681590305497449693056370376670276615811846396176624830017668448082311157644460624236063113516600066452910676893375856011718255793702729587746170730481524778758070491828862112830872370438471691300189929186551901560666530068189183543202080163106644449345345361810589499856289912402992368073454566073026442511087684702070474279478763627196695363357340280870373301025295222916282247334201629118096747133947560205479262364552218678223010882272205263735599656978820075634418020882551188553711963067711565282746843139678254009889678613460671871187403366544323671248289811844037855618985443831027207251318103610814046265635873718545616070575921018522433661461505302657431541085603513254597692293513819772075759651565452992995658705397361002872034260181629611111013493349196048131932049139263404729896884276752269564166209853077970892462502034176902133755011783471549279448306860420513619074612600912467237138129961209333012608396324052677883595477041861517328906488806525241889984736550170803472303352549180152487355605793794275248879084553109136282128167701614155536110542559759067068789952350406846163230127241691517423660383212019044389877979562180174785181479488765222045745303940373371318962033024194093024609111655981986479740188019443445100916114461495931230426168311215253745584883474007279583651109742682666146296666884531570536048098889044300519229002197641500803521072857812506857141794870430243694614463319840083227457323497451979472048328338041091429380477109504087629561974220959311991156544718239998218943092157141740980648645711360504091991755443983730027108894667707091123520645087833958421206457226024433274054692322653849264754184167546898668129074803483988110731518911688089715966694658497487974711192551558447093687204487690206282459737331673426373720260819285573203862950196991761625247941568874124745959271924111570058587877625818219122747719013409797725695718817797233474959509651319131756791320680557520677989710537692838227911417627992125455745372161576887307530920747728577511810138771503953457293296247698013166523066250085755122897087984728374153010966304152171778599104052116141177322272253199539802969117398977390800246419881198990576365192921546734718481738479587771347121527658379049080030468722498691701719881138879339516730545592105737575740051173436671928381298589325182090166686704902229110281164546995619676977146872166846515978554520410523921236555931627020817123555322704947916522913792892633265579572513704059360704568078191255072582471665360031599445629048171323975704417875796936706352327186633531497038666958702590587952837214580323780407493836566966332238620547136726525019005344219923002353031223135152284198692927846529001839325670898477097257905371167808229030025688004723764138043405973258968874064795237198691073517426805930682395238776414224788015958341197059742327677730899976735776291347174810222364617815872445117563538278204168084100878594557411292672142577411251070641451445195763604802636150424645290824144270306004369769498123567371922764019342766537061638237282911177541501214551116032337978208513335959276782682806584076559550447662274088826512147570155827959802262942326292371021453274028715561754450074756073542791144127663333221300951059870061254041732767879633252262539131217891036454487280810217618166332307322339802557500014591918118787064065781569928071092850691813561405771579577222404830681895861417163921322207687476464924207626016030016763099843074997780799802978491675909401936870930766562983299592216293190640432810454738941927855954245605438477097976101777839804378849196218925634646149235139138254950578352376953952571157304840335363683457842826025097233502579289799436037984544670553634191847642383745622325980919122869794498232721984778138940163309617698888520781154559732741434135528256141853247578534066856369514105935022526988592533329251314828490495504971225287984759726407682990743903214785928745272150850122597796571994277640688388019150741744436758772475875443334029737825814549340021414937258033087752166542132600034572803043035467164447767304009828169024719815011168370704569735246709527118534107116831010506563668149155469356337362547711899481174967205152057166786516525774899168210676525932333582643816578101314432172571436072037376857169649651155805852490095457913509073038472070903859749323849121918383521231172938444009926432076523608630735089177944928786985530914110519366917112897093957588890086015989733889739406166087628587248058106252999099070365437685724848880526575648061257380867502741325839359716194585302443246647024198541228407034201145714271352131935006856723666520611736081451034894262445166428347533423311854671446927641079156506066671339204194716643055816937810103297665764869604211827494659597552614547891151067690966136005510079721623721473217428780428598812313833167332567058323036852125466148888751836286707357780794441233393165460470383993786548754027427275756577622525649277184456315686309326252863529039194106537202130410102521531089216369732905988267465628241511225376549036605421462533449023469482855062958696896342541205513546836357159436111700649056317092302097705668858473765293362217410437827982579999487803991947225804352652906372459141868429362685011943364587314172376603833790142129011417245760816430657643559179469511025210338376712915049021598917061751859283859818452313826743176209802458573145631768165928068763469687129460752175969945449489992861709130246869682763502632328244254220175808221865223384131785993800446954946611593193465712419668405675368723452455165712664102630568592468070051465859737041434272676324865704626331803831012746600169267459434469226790021175497388692442049127556029865316382183757555964571639951907064946134408208187522033650316026099962826074777316517830649996682452374707990526227312436070020206951871735597433384579769947874747516297975431839344508695690905667903745110527412562361700500093339572941242161466332229629768807148887598994704034938083236891406822969633756614942664947351396119932202810430894155223756493538822785772104703188138095063654145014993497425893227473232571303435919335195684045865297557217649200484347283066302349827361461757462701919039390242364202126536578235957181464999211626892398486884572254849937267178118727754243720640398937050578045494376395218562773280650864056735003098472146109152726056121751536189883711624796785123329761493641260055128645883102589173894857912510665994748611356902519560319371659225136499360070919124783972869773353197972913699633556757257084100175291726726661394147040585576996772836157940342427843502591259799573743064572244095078324333630400769292958040527895031681166904682203701795396757731418347709412577276334441644550389361608130937339825463034658301598152895433000323124839158581047779825998797670764853647469793007986403352306944625691575801682309480519324186390169969340664331302148424642953150421713081256160575378023906651849413319499973414232031420974514308430062023287905190795634840680333866448483057229608980243670760392381393921937419248500222492957764572594736585078239611957342640807191000712121392368683768623507981148192112345436492172043225010916027081545377167771308769853474789009280994789848944158063535188891810477066975702940975002156837626570175561199759718671076214379849926446585341385018593943729325666976324310124351597068013527325586171873376684586257877819883212574618178224637004168435149838809608602588042087356094963478550369668812569232294066097626926479914694256410675248495176350064018536511258326391871483421307553592168720709617636495302485888384602505362359142654585605045391291865084161835271684721828674541897274496518100182376565784935763532945438603892070703764284696130362472867451143641180102043174826128946943472064826113980594118018235059606584303364023888313227371166790456742577165180107193609494961956336853574596439473084989213262306773310219596141214609137693544598663498561374750825333246173989858865415730088765197377200158711457918956101312368284525853535586486732137213396426721005286651952514691389077985851488248302740034381052786704698948584822110827301732431010866749658004838315659810185246755169825237280207748862654364388749491035040280761246662932827565412898394945873139871436536253564332353110356493179372939868973228285139773816394254158834341345895668328284172622732647871943638470433601243449773120606987542956500231079536319548492324334746211947516949258730396429898913893748399047672064968657393595716972490362671573122322527809692990363275602384482401538012873812517115837815261624387618818323998673988339715426401955399828912039259429851810545203850226585793421194577343167856326823974309261908830025461803894635431780175919062751342049107852344657975222329923113540441732592066216889239398863145742432889167556115580223477480270397877107640697505683274604969798165870922899273924033009884110017233014984944820372224395357511528933608308442825400967787128349486918766424679865816597836253408229370186039570128773885727410082647201013000932302309092560567949676925437403272071484044558892830070950354250592289162202661251848399396556276290605353510564462835166248505009457693446624161962371207787531465018400077314591866586413692087154216185255895429785440541840477422283088981416934229751583319320133460797947206544901905874265122766977104128008333197113183012830955671615848225196084646978915191239505701700161682265786487258858650939355250983597350713557867291519534684950205945668166534593859717874593008715540714306435758741188024289953732988844455273694145680429801230106103151643797913066556231357698092370983111057293556071266589802052728382673979553384181981582102016319209641459943267656687242769447353357136141012597658563299969569690207280460625525123447350016279324968284695653153705260908285192110171923933069718476203871907132083939587343708509604004086585472478439201312954794786117241499754022192180498387661612248617416974841815559999200721758794826743556990542269385758162402619675147718862766373277724472858785925379005693434145815151784661510268209175066178941538435576263081283248275888204260307855996501566910330140047465282365312998763271827403180242730677327292297742732529327334174417160138183424366840158272648590714492536523806578255332806466060180472644760823212422910518646090779199582100491207175537292886802835209869623929857249413093493525172803988869355731922803906220371537832586933562965696403215545489302620912891740527714372887537592548124896271203772638054822126982851651540358075526901451498869421384568819135345964135870734246504633033823621745197445095893431844538392271528008379588686979248910310631680525286801471689265444004609489059817325660284462346017353007834437216580366179831049037540601687792635017381730815862169340525497224258223836807613554300304384575315488053024009234842436042668418128943329305212225236592598764479085649905817195928434714855948334506277577189118886792503720267479144718218842436267594911788516780142453144237741236734543298851733585115879426878659283710460908140896146266687229466389060584980813908853239330536672054109518275455624457040613350366493588447314553734317950615436366392913565832672490662119502191840684999792719387713287291121764072178303581430817976943946575549615728507431682573075552048491011410042857699628961552864887172889256330621119330800342040345135773346541843541265496362926384442969646703612032872612897313949984610509204881206391300716444327934189525868954800023553609852119894009078908884048375690011445008310618841584987515404259303852266437011151959476790241189692030867010412929582056681344763119700351422793532596430228408651654458179270806763770409087322887009032700779361908061612505196446077327193932904424759053266415128323566414336212833676333866693807021150897912694229105344046334990267544550702993370723013738806118329701908495736707869144136247629591237895042023544748829461709213136929872267361388880415184024868356395598739070610296169808633732599146010039305550856393845243710595654780798952633545796601961703560074949959768265601587751551632353818867248480421597591485960385088054527855676223323414972219148399669205400726313828896568278031694177666533915562205959248378403324723617362258300781625445811217219992708766710456249420678285493069780713819318249823880860641499015354687377889457083258389810356915971479726781601815977261860721270170340131989668798601568256624212978229205749517487306681276230567834161329225869997826391594631720754270815770728867189520444569474961727266291515137168133824098737555579430414492826543545316285708820220754296025429966878454927129877507801871366550030656137380675749902921716410115627757164408773998870101420548187078933387556930883283502296333793657655853660299023485372164403494185106581583557198541802489290632507561140234951994002137211596334485854461942575923245461028738409046386051663945074364609495100515401385079970485459841978535224935844836420179539719320990777341657150540011587512642051442230031292154042366572412717859631171870443087415604725388873968617047634188969958942646366578876364978601008041000208487679442360144406524955601876351930222117347647796692309445094009016669782810476261992580629524631184810962265514035349761022296503416485762980925574638196137834078428884447040077784481420263944437248025134360421478479263948718170643071397561135475723711029559139301205838690895352218320759119783842236791196433926157549008728556243918830934144152948546041778411781074292589842303085290178034776175723557908851586362841326820459797143859047756723314615509632268268493104822513078206197368650568279510667152889501144039775095333915189222097200017628198023989603036222089137686828190258821536820959436002112810667639145645416429121720304704499369921644180028573284441739148582953653270984370961459991457313418476615334900049497007228625618004892489331906886245598746372613347616110423718927500556245161863360268988071910573154596113773791586593968498954137277749018409671501161728959172358334747258393666666754169622230081782199385244169028614010327123384670686970256434549390079405314628953851901453408317041528424594666065114958213420475616688714997866493034031846609462354580241508791536412641450708447463010300238755970671191765312730633233143992791008863359784782590003957489683098062716680188162572430733863010819212379577784704670635457050881724431397874229087728063961420728337129760816537210722901633345344550946912294122632458248668947197224159823126638553232865707001640377283805289730840651526490947957092239323130871651212549401670926900060598825867659145391813359244349779750057474244128893486438112315646970492375394276747767132095429639720861405782195212056657705706978360426636875071894297127988322520569838856642900459142188169491467610938668649516042782382513875685071846777146727364431025143460262567453279055162043921134316938286342986036717361265119625155744316617408901522837047057733253729724698436201392578493605123949392769927107484084397605060702529719449013938605130384061616819942780976663728937766730820786533524703305533920694254627339391297426745065182660131829479596996848032400223541233071561968333255345744528151944146456534648000292041377500048254681859176111804039837535165280037953463255573185109646938611796052540141170490905014693069673845514896909341743779479669504728491036750624250880025958655330392665732107127473222781307413881052519485058512392894698783280614100774169876419024270445532906375460669263653928601945429473268805059981049941355400240336437958469958671345350577541686239647004759827268186522156142943771059225186521660571067522277576516767439331684003977368677208227533827980327030650889058210689116723636737500538464939003883500341824195667428686784748362339232780973997657589024846073845017319159983025053461839300937107234422329000646571186227270639974021790286863991079492687950138915028807789238208653938585952806417191544631567688215740030790782761061314030704940278190248443046141659730228229446034965598633229693855693524248111178913172586873442598885026421305444698672427653617676909512143378129312489901898595091579180541404718301594966695118972778007447568033908722754763931944701850083476841568495114635233262568937100747642829165281451187812899878466369293635897438431610592671826134799002206217943822437385649906415675831111904028591381458178508180537260939805146060831552291341904688094354913606148607070667128400872091987406917411458774180916872535398856105929312179543856553997157537534267609638197010269896241815162101706318133654307845694905830730043410655579904521599133375627105457413955969696228951036766758235843401180016764033185805978049611649505848827987467538554530616302586652361470511424070267638127104157823184206973971779009688373060346950880452253646739221749327538016335178772469164670223095323006244809004474388873613614120058453204729182939968172072134796698177183395691712130016700075775390317569008046137935924728091484938276458394060674789052031645744519539056568500507777036431049167853802925762298845553095178087161586486610815677340786058637059930653125321017808195852298632613871059158695186556773867466795383978379424144522286938303965657993512288832133619898326066478032114127861902616561226238873468040911456629811032437591410562254559654015101544587904368493804069408495183831088607221027610452741494214507556271198402380554018059081430095378442021662731052859457386924622325472301981847203671518570178229195503159821578484194408778450128017848682534166586314089426132895121162968602541188817734819399951613313863139266655181144810720956987834689458239460999517924179715710943014445942323069990176038620756312574362713696259521922918344335512721147523186191183027907356339455905801525402982891211441751655886413350276074878790226681432421547788918628277108594180834662886835003264110126871084996530021554425004434706494220123260943685999915367339530387504177657853108046452690148291756107335493474614144545895921734208392185391158309525807048313763513188433308562275889738454089239477676189157734525097050788192107348469414534731894394843351254515637311946239806701420458360589573894224645520258450366073560025941460532561829558882544303423002052334714499515627678377155957856305060724510867283472258192287461343329970652998779512775288158927579995570994203111582922082545661332486714899125838309386262114091879535620790429136449429486348622350809654321143329209040215426995620096232376475390490966991584158052449457210010547253062074554787132636562033966816247984546685061669378068096207235397951477647498527320919403131022859111386233295687221034602671122946542538723717945192932883245114694294698641664672411009421798545727128503399714395977469662550279112745336087864401899543754114990333379937572841445747122907809504931941986676593112432565970624467652428717017034312018544567769799160315928009277679242348103180753555833480839170445597170558662884644076468252455390184388772885405792174985728838489192788875789855389134313494969233456446601647821944999788460798660084423950408274056026324181110653832573966776915342927096323171075662852236198126501096574278231465224777024463695752820900177783116433782603815717286156016112421697184095526986471900125743236039788946286739554451949746584339078556398393717432844584470072499163442025905371072039388350557619013934852429725570489887253662886524602254086045274353595192169683223662277857786604624976629942351794743466061770307074824092712454107534889891790160844582206891764740561703576681294531283260126052136134498507834265658739781391257504325492865274438386200196757340844445546499886025614149871732873740775207348040995096944070190238984459323196212169212130425189422988497291239582926501298303583254092166417502006634896368445433919563007146803916624185919648546992574558397941869184293116458998019778892127464365481624343928878963570351670128042683884262200750269537373031143651345292796549300904224347161931844125224270815652186879309820909629826026170302378456285402911230638116122200141258677420078950564823135181992881441723267768169947694549216483650327978402500848679735566307295550378134602007788327412892215991593923505353868676669916083005140157850558081225724744923490647608552437135501899049662792984197715287238760813054976304074951382884718641921525501463840889501174841463397670431795994855411410461825729472588534470755549513345803340245839176059634402761906452359422252323692860932158681345743625072206661784142030808378632885470176473264688676149114330602400251609590269197165236691426217466970436532949017845632947560468476435881902783037356577802431380064172103587586415531330577967270232912122790988934677848034776243972332020080207394462138793575662472293605698770170698834294507404287298651981255296607286135639952696964504187963154512908444197921928095633402854223659326481562638408208293291485345633338647771807071740679220249552373032943714661884129693656826363828781965759427313562032451482955850634406852241051904094449780018995550241436186471928401613993248674175854455870851452549130301188108197800390854306441071772519357069218768771007757544080662297850784128691473632354970909051906793729217190066127901123929793791055898295304352509132460370269808193236956450227157015706384178613724787409987171347471919117332112990702664921143699558247313118043721860522841422819972048631443987300740279072571717594885060454254794366286412903598423151896122521788366994949657103716964762188582869120743378133976839471133085162102389790575564183575161813999205399501440974979602852718514467430556874278917752617454602759348418478908818635479459129358475373309238795431439598487279485697343543564030731034825865314145454539088847575016940494395713547517842192493139887512400095419473654822533502941331224304934258615493069962219781793766736809227252799253281985231137791580520871082637971893656148143456430868737169668418230260839520651056541506235637517609840123401237785725384508574123347396781963615701173413426296236452379065211118622757550349977308792864985981899461378292469353639814471232928568557554348356932612085492401202598049076185532348548997854266884850608084232579675918267404573382533115664442011569903171705012220583227677859036249382483599970900544783385983979396460226623426362511397105897502696865553158254597535089720257933943198028762274956785099547359222381103226620676052461916146451668238700519248656055368606108428018884795968745487714394507538719055016631284903212607422367482459326519626450420905259213454279814618385623801265759612945523851440823964228528000553187679030682266689718550338236782348426084977648996417586588502623036673885378682210940922830592601692154579064533548277535158131099986491761775392209218205857472680591049994327385313577958918159070282452126726379067345462625138301212986717054996455817997451376172116049166183013610586711633520119323994372786430375778794999315933161881005856667070774526870332000247525341364492108615750048649735916062996611420738617442791648029052414542520432873727102934442291732733262327768122476678515761750996240884523839668535843671878040626376051881390193895150863974380494694291920968041688354872317541067032894025853073117328225657853280015204140394631532751035885518422281825892774209143323596490889082160818189258271695097361094497222085714607765172253127814336457233559781051267739503524928310460102419571164399478310948078776751628643245840309388581203343921646704993344274587176177026849161599635803631849461589875423563333147055174886536174442950696704369801065979410303338482699968761353948737742547766959082862675747039404307727818227241165406037196846746220883985919761217247390914903362156035511237250817742024186790084278345988521876028526758160264859918115510174827072281015024694525099202982709722593690103449758584850005361088643203764739375401766100713664745712930940005767353539937137479029431983160633951957769855955472350439598042187955674999944705214777671432892968698937646812329911670665562328445659959120414225279203328556818342997259163238018208958208569680987268496341837258197779055595046682494214067766086754643798571446815980369431933082981823862323272804654411410302547469686962580869860941906684290304693699948246795717468280720395221607786978381389199580516057689379296443924869492414114030596796120820205941754033991127699265918353433193110825568044172091127044656468860921899827162584765010857296259531101734038335238111064936438030549692988776723960511708867433879832238838528990089099922069808164374890314466364023754464558048174553223291914565943170883626555555314202285196190277042839235319227625178610209504417979937485585880331530992863984120257072167103709191881205054181017586804055947341557839835333156577598873090858336967877497408471235907602286717676688504405957822790369060235968198364360055962723820681753171107112510443206100219239614309470111480429243147063827850590565193959697388986874479778194800044618792155514845626639263077360457896513948829343265663189130737926426778069301194852216021112576316486897135255859557100683522443845838644069579601049634901176245399385670325126339222144889775642540071419991227621090135965827734793302382306522472523626896902235852584041342805853664343770044834034929946156860926684169337689792966996502180636051149788343352912073852339799597264806943719279133832881444881414582869677271275528434078481547392241109907937183406014870380495428579180553163414093917397418453242872339085883460069168689672727786377346293154420393901511487741427972722707077489254670363401544397816976125194515873056088739937261233993585784624341145109280495968451488940957991445798858589091756409681482661523662174715866520564729511272935814432313752753741121664201888055788775350007029852921732526754342584945666551429228428699510137345525086633499865239680593308236746504888447218232939689099723129100083425520930514809218713951909169899588140354591548253099266225418680298919518464667877592791872314636227264653866528243749273366045767127222187500322515732615004794231004833278613151339101549353072925694108642818105770613350965629068364964495488163639989972823850441529117315440996443786499432593077079212941368243421323963114296653700590458956857974858989010539333984238536501992102461340053610087857481310610807318312607503482260600526188459372768825233374353038155129729506617831783206935126419777555013889412703816778020059200479453519130104360643921631117632762307441895179495927973842263675855945926592120445460762938282685870578896927539067188843261155327727922058156410268787933945636881669384030678783403618722380694648332189892482759235505414058662787103406943644574172487674064607587251335458559834622245318183918852815419358094132802691168529163047524201472916077070773347848533268781483641881841060564183521346301805430180179322354465887830973017508232307094735669879245100656236822765805449687578701083307223492771363682750645164977606898594554346951517951160330267487355011699909623151763511172050405373628487893449079539771017060039924362628830845272273580547771856388573817201001679140578937754468976711435738273639534432206449403432891324612520567112485021124302752183755798232738120941471343597402981161336489254014622203623231258589864007297238526804401534001432544513989643526651267589548164518655017435636873203868341224919638701837970327327079447739370718559590017703533880587761034370319460124824399395149808669681608079756392643290166523127835101085706767235207485069792761209078912922753296414217530981562132829525625494121473937387060332340370038344696311869596900764848685738410182419848370781865000390374475220951320204435563192382156714234415335215612573439587697215699142984577886875802322189126694373438787798115274193779023229141885695411625791308590614948941205915724629852693955305882630682114409248497340494719823916733527868332462079203404405246825345959678175133529832853462088337092009420505143308066211597688906687062980881300203838000166569001865058948378770964784324903716443453245891220731399727699053595337741236684557422153592077195011113120503971707693527775157689460656460205209611446910525241588260611403326441590487658419659696568871338907837755764169439713567946357391627455059853514904084781686502301854198544561715092966235263538928521075960747602898538262609731438858539441824445202857420698220104261441833531092566295095977597690509310580115244198086677743509196383112036254779991421661696727722595508319083800936727436108167502412447561144676667030893197533275197936063129511520593776001542629700274106912730863299496192627654908684527130087441013627646998719570070183032120534961143308086480325447984947967166107835865625224941055958838106322544873903202088871597179987467505813092412069031485172078388400497700360595569902830374461659208851061346248223210568859854551535853941813394026539758971542598320881705550984535615481297623180442060215410890177345268454061864195220897648693201606574315656075929354194487387885583200241090432307894807353113281472167034683288945741319448911843625794781196214881846886608273153103680601034358034143988630871993930857118102760824704642391932437086271289933499852250424049932049280137236544169700601301765936102007323560128460032579933051583862976467164912392732221523372395499929774376997665927450878425456635861154742653176787736025865007867738079593057910994562931779551614809890330910746336681263378424132411321835475276918602852885302884777989164965327130975601542786814009019662008735594870900373540258813333986956683204287967249034022573682078674173344815343700643273564256393256943449036901134362045707437610765568774059441160347804877916214223906284218695076369288652230683038217387946467695428316708313161172252142837991523410736331709651007570090193196877199649997099820625360107060361189871609467146538224549348220956106491508126153971562533118906217062864219169377570770694661861547874196570100537929758449235694810489728001201811117222106791088975200619391291673969759375224840540395783512183090673021104069603016728175973877240654986624403916046467691433278864968514668069680274469529568230413835446383996227605934735572910832697929725461886369692297544341167393315642428485942788611514365503337261222037729111296091084553449884168209910386290921983222779852322022703978537815264188982771803551085551376912522816614822507459040951289023341355414426636966388627276383801843099040980303114200882164569297368030088850126159964522873703777132511562941667988159730338485157633248114943648633084965537728178843459352324294043417501396795958618072312328335729759145626750919547849688639640916860421121923073176260453081282337120495729677021669126325191700921299922676049763734631505564395326210058402692314294784460939961922319123945713804563859046619633994022667786694340568788606809390472369503965190147693088392677763626384983021571833182328152894436085071282052301751820309341357440703775908901971524630369892842455503611711229978663196286780080923419212033694852918333041261734349525407955999142150002359324510964020901405641915029719253914447184802009847206438003919491784480833888531753572715502876187634394610124108068116556204473667954012109877203235147146438438247178434121803911124728988095350613634659987953819507377280073912124833749626982738131582017136017577359895131821363110109331155686343254330514005224324181293486939204700887196356412642470443450850228266152133247985603537067821358136140807239069782811870046242067651638970469604640545315924156142396680784667642987231176316575406527573844913268292050067963380382760545003274294453426165900749681519342916213647483751488774653656704699391764666282988423050740068781431943418175543751126340267759032273304629648408625334810541227527134305450775640213274085680670674189525406005898764901725188377626766325259727300068724707657005894505298045929111036093465587374321817558253536306319066214488274409099372151996886568725779051845853499640435589341216945090173637328528937412563968677423654163518922467780920445404471040162641267775051153119396969348331128897774322974851585535349732960414296976537768654116033983725942625986105640789388681135309685379082605475630343160388668971052873729343393501572732955757630029129286762233245392191486365827049645899387981365913941171617253722545371312763917174891208196757518842889182171213483595729748552962676640953749042291089931316411817068389938272014209609362431319494789242334339934355123420098126398866571337333876938087106715970948451479299493106341953179667434538864990588365206295662414668571234262668047664407301311479051557845549560008601288343031076208203619172834910320458321020796603757631458428654656998071076730018983947248498851870275436660453422202878743286769826633327838142759064968558425241665608101659672980147296165796045834913940631126752079741804274211687122021721684009979894854082820525710322360466523421735934947205003893424454162771811797058962036826644960116974012641592854752479112184218312396919631318232732591014814609071962168894167698935621670034965374542985200351292462706219636447860715244505155072763946653590420587649805007876513618243436916895840119943954687090565456626284923221551590073509783463780145254283404857526603357878084360155957625319310054885725436554563051777308394663425914990577703472229718211553023569389006461261876986798032609952770196745075894233618645385298605392939519496048563908228208664794868002273772516506685124754585618045211501579709056517133916760226976487174526984494359698506353153579347452317248397764560647105556102326389818602478636674925896477059695147296748458982226306159390996421347421246850185285613331101206571744446030657683764809030164571546508285586066086046670359226568083000022582050062779657532154376268850734851533539364840230022127082120160977632169366677868333331804381178462849016606421805289535055598918104739596221221562899392360713371702800268266056967796025017316532487682915775939163406393873191304352027931048277001522600283893208089326033611617721654647717850760527512576576845717680728023132529577609488890563225661072693673045174231183664085811595583169673757401156729978550158023957244036557269203272709686109758576259617210129646422380350361972459092777797635839109536993930238940823407932380042275132860382338435428543834044280980090275208163412933900163682472226432469451004304958867552950650963668842585208359074945828845854256399982644922176917925046520764366529711616896356212189299984466772637245392012794696210471226979858595058736837734223902525174071090655761493268894239370038058223974393953332062540401858006341297269842735872871099258794859280325240994714429710054493747485069520806871128656588652243651916908298340768746117110875018655886366915233889669510736800151802943537259991535358447164595439005064171808560003034598454584072455978962387246094480702932271519228459202360227389244549539647078143273015679380472134356487620600965765652520871839655527102112187528654001437972040892046271986029442080931209234131427740516247834958443156611370638712842021062790971665288552814402031134985952899503116892441661621395102167990803217290978200541355459996227466687456648236532961826867648318168308997444975542658306776914596317809191024364088829946741788814746797369503180157702202017899634258094598556378287404016716243395823196720176740511105818462448850487563312226670919138118818710582074617529883826055530462963929406595071766188554578048280386768857252241991709645498239630604822951355835005596170388632035224015569652097060223796462640642671248995617756868570254625822885933797000729710926115807173474282550642095498230454886994208584062803954343201299517337736698284661997278697289260984196297946586498864176482819107238555972973896896878632384364726154738252479397676627013517387914942351035069379930621639033858552960274409768005654240470541244770708911079159607823148561408978726303862318206200540524825725441453529612598947653206145845997434614320568367279456339383043793039959913832629871535942265347493349087234803094789125694075914166866039113476939864704840582168507140805973157970456126183652960856127410081726417068460237231737400865640788546738590772614862628685793605715282316907768930996562698007360298968933180766645506055113213857462740554521664781556778744712831002286095269242270183353824219537470847405171323692663625425317565335061330755599128537537567460621975829384012417230461205151619525507680094168363362276741748823436619437905705427907564746777921786189067255496661934877669408328656567998836445896132435919667039865570308423166311657086787468715061114849510755203617173471682606254872090508523633657167276691094704731753636239189785890787627543920485578836228667078081473738248166377024532641572294235951472888869648342190156372020865060884581535737846113039021172780425690593831743352477644769781397545914869460569036151837561643760481502829596877599322718963917089820000718672380023702352175974369113637071199664309331315985944430847456344433682067468300076846624619369649250019484738077112785108444006300011987071720663818380346407680374831446573884725416233202797459332314732602954200097569290215925921091800136832870142027276465106257512103195384856174002074986745758372556781330381625215568549289767488486738153996181511904787513613308185541072040883535160415339801887392810036093210747733035137854407521863739122417032542450402977683984063142052146872589975742928703438921716990854467362650302982792090217084062942206090650713915826961286779455234657479085127044840253863374096113875567496707154384870784110752929015643587300270911870460307187466286659287296927311795549803856085097720969507542483934172752867719932273221987704226958692434239750416902164283865890752790166331836190640342459643671684208602491764066934432356684733121393567023866950605020835994241077608902258202476151886034051938315204315106290778936552543269596482916207453503300300589675232417604253950789269193938434169034686556326690074751442775964529785919258951923803882568971717425949602498102775753246068489723542758089166332220356691818365052429292472085328279564287497662754205272565992640262780137188642014050068447872855846012415706506220768670989365509227687120240864553466230095417847692171808083021529420296914185895542567275197780549312598356725453908669571010405377325686346245755978202446023474082421858106555386278351577238938530104855400721638834506805814880078649640370663196178529066456741428033410390673466136849945771678537569291225464645978677358133425980740873607983223116578581799217933117817537873841876968048075124331886747957104925853141685946145485015616797778216087759962105302568355761041889624196677646708230670460850554188076188216671119567060889835015654706862368109272069094654597446247714469991358229654009741547480051151649431229113539176449011577096667692351206230594951103842056121988759756036163668192218629327915071409047587606991778354257761477901737339986655025212392655854174189720985292670596562486048304242065622939237842484030470366031705695724347007804054970885047960802022521830385889488632699441872868869100855802933272956102367739170204018491327851549497784404057818125582353165547185304564004011401016450042426761019116066293186506642002116759824776703655986611741158632979732873765461080069824889816832650567328314506085865351478413064622433399139920501450966998560749203284168760489390635400022704923055079088253282071237352341007392911327207989034048716372430080341547876969799510722975055276997631675988413577730341707543780329119854297890159248387116627663916072830754925585148857590565792138331300211264630926002359923570938611366122313305607819864349109688145868455856705220394940300443287180588649362984792169795318715326814770817476421167179295484698713277920456286018017777167148269551380920676583166114130351478182174521166474914306212860544002126350274245227612606311603924613834204311164850063257619174003521272571707532755531552391471074647319486669864445975334403548579362235663815919641764677761052156980712272110125424513596971824619948575513969145393201148471790205361995710934607526486088330753857165558797686233395079084392872162290808811012182229678047658503005909128608724781809207523446307404997224704629433913542081630355520954145455760083400778109747880660222405209310672912376548070938883319472504095431967111321000199072777925031174803739846481620537992676020501599337243531916711081607596809422521392338282700179562849062363861178386872612479671335018787143041645766592181078809393459370243548047872485726520067013439400646121753048900523652328128816711839502551475117743006308657401462252410519423311626399532988182865808516218758456701463386880238625782040350042173100166939717738663885874462131834302089154049199186360099080036347257171603454150655587959398700272315671246104886380003131531654210147795702948489036534333888332098773809078894024931069086960983665106455852351382729080393357477517904702741208504016312392667528957287605521633351760208335365691763941219645131129756444098936359550516288527184883515208243236783996593861410480052618489677000928786934918993116980929766674162032207621062358884439620469884935171977336195895038094732447607260201962842231595022124137647616551473068948309525707418492005283697842280398604759032204092784331780263151028787612380094850693670905933949116648524113573232479524979557698353738407996642110915239432127651439705282485209041727135420738195146594367623545817766796118856793891376519306893554764617891347169236928289407244734859305766023246289667987421305468422881849539724047925598795246296374292797372840720853213911933122648643402085415921762672185355866951187932789301288903752451437948050155723485612988844735311316148875563088787036266742985454624577354702129279882572717567540397275761146525912729827129844525411361113685706806484146684604743317980464658210225592384398851002925953829896662755582062873987196203936037402068562836272775869501191744437773455443498938467154476616247358109744992256194420320816993626413137153729827784969226287178827068308853214319814184503800007701677573938010235953629332484174864397866346200221284357147378037454781452779855864497074339219213116595470124468025111125072029525139580557317640907282868820244360903332724830744165521302333377696700756131843775536208645320613064868014110693176331150813104260777566059537088966938908625324012527036028234045824099596022671256640717723410404987611543116951904948379684274637870113993832555687476139951746371321609760257833566595392856761522543409859839214189360495699687665505993861923479056100057735151501585710552910043707025625750254827931673534951363398796893130304564566621597746998392390114281133244924495755166852366695807886488315490894517971270280071775269203527275915094388669456824178802903765224247972668043907676836933195956766412987892849173595811049387989857189986674777706537323871151180864296389290030284921348162503314229931829396601457916104646781337875820065534124439755183744413856136123800130465555010053773933539571336217209021109276264849967859887148785225353643702339650134448274151641985818064247156824093999960072456200791211742905916887079298534646678448998884117903698166790620904579866388463954392998617826180739439296564346183018205549619692348425424321621648337131463832978317421927355928894946193408276175047733499703600570045101776992530034887332792064735880334239688190526071420583195115672150966896695507523262903305459146057843978368083502941866668453547505377734835310261509127578945220679272358152717771869664655656176454164135372219665682680107750767716962266289273726671760545452941058291897788350880012634912484767746158147158255373129228937231288136553071934263929660330030002766091579275023300888613917711481663777099490983282582454095163636651084741533998571738062494445212935350475158758131470598826448864104390107616805473789578911133139952403797395493699072174686698192389511860787859999368284430154803231044353404018845648940233625199141878691093077594492380357458583377563046370729121314607636431536306548317282359496029101485971688187887478691626035401755801321306989560274924990534220777549961472153151252198530705667367268051083871495827779019160480506329322831142565579404586699374244169305721861821333986717343953462885200473275123704518083198076608487414023063955427036775615670511622463270528827196641390080956087124593037066819825391857624747205582591053809445061448159444198053452043791620478839983200085861311669898721113872707748891698342634715828499458217274513428196535023110903638652483880396533226380118278145440150424786800621896155968779348033275440510262368964695440032005823162053831772672241363988728812214200480227808084881172183279898149652395000780412582154680119478802666101184801699413750576061279317378778612900189896979316118693504299968085046958508389742889534958679344002548665402064073684348639323748192704779693431525037027380127716175226975661217708538364988187884714900007594797728115813322772226953936176611546662363872110988028768175026051295803999931570068987749446431146584244707471578312691475514759928253828613637281895177932591272572142884337639450768559861428628601512640278932666024388052267640704984633566678054179601530773040187570752367482318679238822135325221168829700349532133487815787784096758251933206413559542303954709745312318548256725451082223537458527160015521901639859201095385609050688492550127258263162591142361055749325149171624747622486332985349087799727192172128847365853867497291398899225518127157393629587760416331824567439710879463980593727104667152188817324774576419104602157167495985794591624173958133596953629534492072006287359990679625674912074509913186880676263415145071655582760722190408530721837873643407223445649663611819073593955293581589191283682366981219223950424339411907805849826216886171405573134191258732678573682536415313915075727427310513051093759794573624272289107860045199210605186257499713133902285489629109732273792609697706917013094494856311190503919626683016647670447780945777586720031434480541829581033157015128169295031936684994969636602787174093698584685313057037338205481170684061448186360090241957900139132133222414949328443143208421676581967063648275041534919029323110052162885002144063784165667605233410904608220618430614447197958878983948931347650501800267239806005514581909691099066802438947146979634828956814546583115946683182599032235413334463995521724973718237861137850071773881492607068941346596466535114694922560421112999056071188207969363197475095110170864549404698529340860833239939965492426412011706715820538959413525302920422974704994975930703009509720124289094077173464420485685986171077688415804160316899351484001306696806463093869274783244395169518427081087246433774705627770925931473649667773474190746567602868072578616064006644054831974359011239862472973126719361198334800190380565137743333595318243417052091397527021721747990910214517048907225108227038500324948643032367777894284819107077318640233584599397881776797769039900446971343497270136793948254545921219548359375642566700626972004126579856089265987870590508424831593340219758550062892118940088023997763284740847679095505365968733157382154779760248809198905625196619435769351608079905217769424631002595937155992685229609541732656004346754187597395355061236011283400041407726389930929745446422905781384202776253220229964630900462403368848034277067055802917241150425071160971861022657018995859464189847574169251674024405147836445512297453976584687313146912981270437909781054563907864229261457458848399734839497333765078446802059301406712390005711411015379132770798971303370743760537389153933761691195872467661109148963732284488742731360040912557809616885469800569086215774270442537627619133204785106937179813469528264006582296321437069734493568780688179425687389167274178462847287925917507028398344398978097643251588001757408134124952786678700827512979550366580947295522541524909360419207088324699280673013509224877846458217959467767175424905859604850210574679991509634016347144543524812003372900811961769843408859489977820723826521315682122013793063529923276692334730987843877678642766907427759088781278623123474560297057554886079560691371384154710110374039958966427668476859776190394632057368593172692764826715341575991673628630093732533840924004725422170127254438238416111896755637785922157558551965627865993739678552490964570148145984014010171688376793210108310436735893490203473855686558558499638868469901731290642666526514610755092097548409708098574870259890836371950564589757775992256336699490196648817469235136686181402391758712458740971959179475535335617314051525809277362538823193886479377543266055053089845840753259051592737410652257272262827350544853769276039681709064374460244046423467278108953629682301918060829845980486007433462486131519937987940900954889464474956680954881807777001374463314905876685732548904388597879738327144314912068784394166523798162660987868132633617056625971177615171430664278252192382962757613112929909012690314882553358391603322097513577817934577756427960146552599617555174666042674817190933544126801067460406746229135851557488159236121036356260920344536035162231007293353943966686021276360067468418741203157510631741428369586376443851790848293936931950315948729399476108026618561331971708509529138485488313185313184464632005970889662791398480365151038025012629390124286113765651822944345476485743852073918115520659337670670780424107818610601486487479166755838091237863883483339576394280687474247187414014010039732011224908380610553902050675457893473761145290157482390164677246720039163858408299908233836831796536796110139719009104609461066791480444128740080221797965239268029662659452900770355082378549986362912504427872847304033286701569509829450819210422858522570941817817406291989716267581516579743066172283458594075392482087608017289599972910370378132304217938114531106733124385924077023597012404828550703919600253913340574212607920381480982385886371478876249311489057144379700958148933613852111072979883024229899734252937692821068287221775239757426024131098416511315754834685429848468678366152017146814923519597436870291513738112399787427052729945980762728120218712152207207467379390764709193620746480006319396532054082450129683240069368970567921354306084834985638517113399669472843156576502217148401875566906712371946299985145150790807901923868822441290249297655246925159276089453574585660111161754115662330257409685409366247474644189772673354444996790737849459183697304841880294902072501710376139932029814099857464298020144105211629233918469962307321719774340603597484843500875097174076311141233341547408743925759363845150165997713879987510308316918185059079511588046730386198935934975266572337889926612980317989051840184015288620386147079465421474490004857510962619315482014899582443213414574363548101915211661124840655692898926225041915158562799815838881915437919606403160660333793302278706438732623232949253889166231726964399597263647556621662119324024938929754573246528082322053708849947098732336969233265600222320154754374574864490735947075257828888817206935230807113700945723305122467341904669157038276351357250867712086449265308377447845361185555862295313617617714293094108603200228017133155884970555703958368657533500492876420029204170417740040860190590566764066736304351218656616669413874126243228188037188960856420653721524436950204907344539647754193874288177284896671395948881900157188197823762698611604898372896170202394011338617406431117292855261506011477525591303427120870729166926151912495772943496668192965994250229492669994764622442950079052904072919836324954266102220794681763554085863563620317213189008831273355622729948537636221987858885889321518207273168627698480399282027419809824143792441261112979789594710244655131329177767502371577613784399507514119543280298022687590296243868968677452925010299737142658070412059486671939572377861950130457605262280677462522374420939470722845655494629910326208212151118663163054742967870243174752759392003949034954946549346697032020179006526971595748142760114717732464087263001711608270065015398782791949148351341499091278673733511990016578455159487753187110511718843060382551457681433679962216770077940735492464675116729669343604315959092467438348013368987154588511203992297140821768798437870898651001243119725754312457692478937503768843317917710052585518659114431562406891155907440145964260072027385883231712278919225815825335965878101446825491318462955439522571989290188639560800352079810924361018408225918141284632478197486762956301759721486418325823865379749942549760044036818975490154828336721894309039866289216055694537161181622047114620963090011843191660649437923227574592765426616899624548593404518906405346317255437096948822069385265321544921520768246588419359262130869544117217769938338721268403181743458030597502175846801608963045680465460048175816150067713250122625664085055044468971527414003159835812879374902473908710381296571297020578767929145458676801969777777329949110049974873111762003455885259580184207784831192034550352633504341265934491670854267848892581909395180789631218577253580205173877460226980317698366600029965789872252492249651516653559967094685375248691622782195780877120185410383304771023000416743836973444072641782815545189489943034227245414457948646947019618673270268151852784658675352613166932229942825087595495519383825813546858211092889601774394308940786338516559573239351190814617861297874584180336808409947714987118058987939137773306754415502167403309279243175757613477468517901229647105256852939695398681516067112763066528066699933209990007834003446386659155439041992181330666233592798621604863290544179983897916751834611266256812875109918885261675394959126919091011497041960162212180294952974010058093924466877784861936153085723400973734852511369167011846098920672203811641317091873595412612939382403508881266055531344231114010506252215771376636411807498012729325075233021860940548880219400858782804518425432553030575184882563009990057527777056159259860720776232376668075162982283737338208819435528456979967820924182807135721222514206466053893011108862369984120745398732368111988821214903979286423610029422103851541971292841033999060486149151969065622454596686769560523556021631750799999770589090592007007107414594786044128470980693795628956703736489452403073531729509542863773705614477075673868361039578259072347232940924958500290411975623658643645064888227680686113062556054605887264725956315994338354744200927467145605825365662537802636817587063622822942983375816699202529805566460727180684141046285283272236278094671304811281578400630466569278718160335172815623233752731263192662428845219554045042929826233377347221697026467729005927438399139406921873342590253524214491308657752597878181585410709973688533679262832410036370672622876148210872944988930606681549163557013656552302743191172610480697912379239070566421726707467513184289527117174646096493892031789740219503532782158609887316719619671013873007760379248919199013653643502598665163492903173194175072490421716849999124383924442715550020093758891693369728119675999494550241364524370451096550777701564344184258569599214225496703713436361351496716776636649811865195061339935151674812241749857806639662755253733565642446800772255762198361730678382576160354975553787026581179904954696904031339555483051315204223705959124218593080906526182074930855860193666857691327981357924608785311912458950958087197210813594300805178144677557499156689179923149477113413810956104984809819797403687055877621243283338119486067672363222075866894696052429090319462092255778156283789382038481966854836815505440757343280452031075482199820911174290735133802165485002317197532894632613842434989949784932532378334213325338803779338443913634360071099281414302656439837804841582793876938914818636658224117689579616898490706242093565303060676518756462395626565764238824802651340341090338470132733613188490742834908831129380165193700095887886052525101650920848092611830393455811616743479259650980215843968270817456032802385449449440664197031579687653983452993499962429846542245238074217563754453611311844556684283702047221331196143522545097815225367581097021211362175656470147175930608271664439720618813410646476659761371533784141503771689933052581091464984792417757705016635511662830052064979258698003040192118003772047694087169019566391970679328512437666352347362165181632219718919917226753114833735357110791951860798102552430858831205060130786644058859648220589837642251036553301537781775977684657961258921695273711410702422321540954086932852863677602315830345225701575776091900125965302874307028061576857686208015342524638952989805968048266863452041295206704094917821265706718762883787653057474846810236486560970840792582320520185336626247345039666515548186558648236786090482935211493545455919429477665878466773436151439502266026338093538840371396204118641195943764068412480175729673061469640063715405267754206772014173420978854272005896769568362156836678296011052476133439135695174879881418059263060978426417470933972915213953472740441818504980301632836026944830081363995453508757548050841515291052197394627150577367897876377665965963907285790242107502777711743003556112732093854831929910061644195903283230958071987864071786421980987486412667846062655768500527073085286445892079524855135496861811159493029473833389461784682240493474212316698737773392946971010130725168617078194568567487126876779919207079325320059096032975592202250822087553511941511794456839663247797699967725764231557893352958628419545784057971104074784904854440302680340559371925074751959038155615101444590506553328798126212439741621661248483953613051748094287923970002989225445723677399180093213231173899930990308698201376868586125852614021737527770485965146683607624611877995860998658648913698664102678748103565089219930094460536418268888219488909534294774562865622515206479967576113563597730423689850679367673152502634919300108972249231509648281854458584129540781829285181047894562208151699176960458242039178340955747451894263766004136600116318181875793734955270978946170854062083980326739545031431200669173241562005230004470850312527839287369323423490443106151719400224988683888075572230818276113042177394362155021456054746428608242703954108777088531366671320749878184290773207842105415725831497060265240412828374329084647632332062151140568355798137452747975261779609510854854308998381305760203916566146864702808825885503811654312499590444079985324522334740849485849586896428690944433048338827357521904312650487508581158668423120869475240117326757948526507379240826169221609217631005070502842313104430626244230649752294318019016314913004659764881345135837931241664444949509822024871191235266448721453658847370318955760253963127889269815453300391936463075043002377237069218406028802476431769468300863142694626472837983076473672013048137943137451239243915548770879693530249927530495100826422837092246943465472611827842849374737509017757499013928862652961259548406280954779539439429661166812547613627623503262375555004301171265344069073339283084260979578285163041266173373744228359908483093527640116194839265151655288242107050630846062815189998788112902625021307538069126219548694226607706852174165169106981279065371779863551741383067133589707995687529953740292419460202204826295480531963963555234620316979382704501074784772658686597994976252605320065423143511097307313574138899259967302037627953212807697215186667721186715455575426419650690509524184617223315353894079038098867224611370662719904707658042771370593049075586409357108090652209474934334593456900805689425101834276930335450472018582684323729019254047361918668612271439816414536830664765145078290375701679466487378682581246185004501453175421947836545726890029613909752457792680682695327678466551573627047007641957313482892734425630177054097832968942561978317810972489466543570831255297673127247784630851447023172584751174415419459179585413028654461550091206771284182955312383811926566611845705271832723229752274204702853785873579596519152770609570044096613618721612855497274782696251333650375233164911776837937951562413904188976551863033320975713936885181978195892966538153243825925303116541851949665227244127128465096833574277947621329413081594763155889131762056150039712871086197597693757040478082928989731224213711189521852952396083772092482039091163795591955012533114307707562402335889767576751550595829185307113137584927947926048242623268059576599395216928475003418210596471916677742009897977526403398558720579463844136410766916962266366791404823335157566872610706856268014657652758177337871894221881737992576676356316361273429771358719797890343728541746274571241441658717233613670833461594287765544545664240534779803793242085911145767163892722152163960780292692384951900209582402916302843292508624676898406881681170876551344357263593281004781014924608092083314054393846278324128694189508125093953732446187636175570128653216191739108562715883955589597661779922861083181847948597657143922409976005012910433129510178405663759876545947378116710098437656130837346147568548820394199592901503196312880424111872380637232285591012243423601496941755837116755100381283972438646476930669609932459589372195139458196970800071319657688639280578311021908933827364797096625454063275003774432980010988105104158769371586713068558997553004066382512341532461085406929013931563324530251240092515201550780077689133217504446978449766557820353813363962698230489987847363807169518575798093204631490747925195708476322409111859184200948933729748803243264778970174500912010971454721126048003827442767388878338135340398151372192100713877892524177888693432476448988187707676285680373368338174713459187319775293412522690241477219692482466441338871258422733261222439380932008092513664685829035048753688416360698057688939789043363483630522982796422390248078977672958244996854140372941305553342868647674247192771466195636497760249633225854728035232697523559304817390981953395388650404250857440041958043032379444084544960090699158461324794636798008782473006613768448687033563470216751562714760031260095977779361304988409881001492399120525553760749503258407736616623296392604906830528060478947459700303489109853399508393499627943853578288372567347928360883758276432693943265597372447543117562549707647173504371516876020865255663583006180739949197338032456191799379524303064651481482721808757402043535354551518274342081212526014676191625185119942446728123143732155811985427822774781867892643559474302985102040110467832261260299320224911124667664919486223725656044984406288778788514050048140975250669628867527853168336485082851563336226572798434007522741800388050045418499888407721340592771407808683187922967731229060975290695383097894449673140223561428605495681253777401785916348353093292421758217902731286047502487231129079582497528854863475170386704261263108056453443730664267968719068786813598964435648686915304450489254998093466796664599953950418542131263664090566889916094299193664150867142937344185380876173518875579364920011768745103341787993349041398245695354234163493733522130559177930508950505378134414737064088333862321940457614646801685137459975646644526739438219031598214669517746461145425788844603385648535933708759756736924053300627781133276294362933182077082337382617605628634761590488181133300205418785804682170940809633491274247457906770026572521423325350897066442498234410955572131497033929930793007084964654306119873402630929897041651903478868338971069021729612396322362294875514014752862664581029623047318314720065767242436121719709488701565327828470228619453786562340417751252125811738442364629587481919825355409180055312745517580789564475273060502100548850854333305684690307075130695006018070837750972304372062276863947953086789517165343628039044340533318897421395585124741561461358274322284800900107642143620325095602748210478179820065721545232816702114801033759866702300785666034019682669516899807097353521522632348417804101093926990076519940862514854179989928436170612098947136870302368851978820175144077129947461035148025022172218626166745068744965443058422941334049029776550459081650663235322441320056600962107801369427484513114688707578358737796473166188634814548563969430888132704173597727842952504442449634002532969528855254264253369829319083858685354332384932967188189058491809063037472552025011804559110003635023426764089805968843167895228847099791060647159797993141425699716102489415622781592506846725986853820785257066750308874042695980039661916104110836140086661152256687662290925980742632298845615211384097867362703726086699723279228715004208299107247626396391839886857977125757538005010847668110979849375500321476360997200354447979329736036274985046097028526699608619828028817559158986274657166584491058812750950431187182334646293582756283758448310345219914584650597423498502511458452901018289961127591713871223231050920962284793192733797787073451410155742319985224637413822470291569122228665404899464810160084796933464534499833238710229587140690510594897770928255761042116634245769947914104001371832606153023547874736822920406017914475785923844807802630144610701799153071161150638470524468342228899689135433097057170284255363999509276265301641093656098813868158923238515639163463065821503979703299072439259890261158107646576007235436434222145868473909124968725639690386186548796118672444253645957836834887425896775181171700577406831745406770460001989762373363685691993325918345755628910397344888331863219423140401175677764542958858060086806382306735948949290378690450584746327334006253019905852853357773677909469751647295379941299149091685745618388014218666367345972427423443091483031759946915954509276507500175448142656999157451341580395531943429341223237497861549133037266516339176608759845110114084998352622127196719536044321825501452585088689517993021021487130276717307177369393901114336337225093896247956328260523753170792737871323733906536772025354202814081925947403115276622390458733040371448953599561025232162503694954364946313239721573690012991365652171327055089497661100298111820389637896770563873765169038346706542669828492269789912434199782609442863992711405011124849410640802889972993560993031694493943314586685416106584445969745453225980442401130125684464237501688064804458848557877973392497239104900231478117529516849458500891175004659214852051678843368186070254243765032286099657191447756618802150272103801329668243879759876111392977795533752490440072721791933943422245566572670122166029096543458431651587105075796281566809332636040746418991042280715754562004022015718373953370004592256396816716528073285338208760608492870277442296396846094714142852855187112290644863275672332219993861814120098190927791121185952608540065271092911642612416320561290138834544319402449999692975947089274602356775520122752602292576533056509343948367848666831082106097413045234866767495212845058895311874494907897403277715228445400305549109867404541397172233376688152367877878288465923093515339367413756147317318864171753767332463615633223084149744532959044572257965734226055452340111680656426022332309046852143243002138338312595388196703067692224489759626450677890821444436424149319755143079217101397949706071486268959653345949327397520263250376185038655606416719151701962217270040393267708981948942210989249734220831555140809967666877698935868252458856350926880069020820479967907656261917320699425203927269435741762611866990685882949773865167383115117655588454782200333830737744361647554158267238458125842846129860556958310227466760053956675534952998155451155883839116225844270572229601518405793813099003551947804759773476746653126191866798454397062974704339549639558623545987519031880876606274866830304960869403698648925843344338780714577368443841434796658179265215097042351256975187663887256447823316447004096626585582233498405866116656050746579384841558058568387164543530564582768606637192680086102841316884990051326801419046145851692036705846678311172125531664814306824814593208934967098713989002300905789786637602836771216788589207399121568440824350659116373384516587063347808687220571718737759311273551554321747742449638241306560227144268939710801207260012828526432316285717433592786638762492229567652143664459642656778352513616633406225953028842569676736999497209296608930126469671508354916575052243732099804780336505322274091416630714542073124077324387708892678066751579500235657798303359646002665712620402262344624722415382417525098167955260798968768990228332508038689439238478716165535069224406741266364303786229927056719334124863530739167326185098539716474297350009356255480918945757683762398295424161427805455238146153248001437344276665064983391459974634309567162274829012208770290982632916204565390325685550550134446120895102175151877905395585328288285251300326287200301938157022645783490626582042303490524449027281923226367789032032164213734959128768702108320241946371657759857867036634841423857902049998821529099839437609564737894542734021207346317974358284799124968230419785572604263030366885546143253675797622780806548976586930927506146334983191481608969040562356038991158859201420940906572740749315541938046730099099390856784443934275778780226251733152316417529730397025192349152090455433926967531578209750373588033187141733610166954926509728991465142237039036282622946581380579467935196182884034897704926890253219144381569482872978031870712018903213040581037822784906601346492472795127017220630835942088841442522358197194123000893336725947688799000830394652721948858081773073285883493093960394015680157437482662016775886175678917585181067299252563075846905694604149783985231608063109096077168292881486918431859529596459089612978662538445748448034561467188996476359549658424315180270918411665864192634864027114814176777982828890843632273371638824214983692337148511365480668881518996227929805046469431056204122939897227138554703767903742333310185876120154662074563243428869851942835490948082670354508748070041696256985308872297527279428409699175816466396435969974259102403339071320493564059454397773870748115057049621671912914229272511610972487555942863178089547917996380118439991296436425911702834923371894970611509417508107046631702576297105914418709754860095466633323201669448980316565857218197869170897346641539141388268011106111583411813561479977265367744709255090922598250125518843551315525732945198369284350624280343602276307340750825028634075101523565973113178086294869690187167533454719020320490972484455746243287770530374721832296854646209918011002891278196522881617803385144049667765714509698177075201672598670975737917637535824243914462738408257807244073942020504893112156612138604315925466700517763261395789121855146316843103815841758435841051704520821640455773534244139314489892514588959780251530476776297537144353796471289836448328154665204752538097743932382342868454938691437093512750800794027492817260144548898485874598392140080490104844674100021349396373443708573753245011165699675551250156597307823979543955286895698753909157287155681322765146175631409663686676143536137837859835488318600476753648229307360441631055163204001572678265328324498719689664867287294928165112457372978744655578725715916257033077249819023486137431237705803197945453118492224309033359850453680281534112397110402990617153370166545232378267560130174533806460607392312744238537628963383720725600355627189217080400872069910230438898387739175721562021614829725183050371794492248471859089697875446320331271704668195799380199547770426130341267847997616930214963672680805270420233947599523138025383621455271320497473474057491588084491188160077884155641367200800027339865859167187583772176172014982661284440756773077954654294989643549401720652222657183090928148081539948081411485284347793199752174865441472542127775302517043768734402935449428098226802897216398197357340346401949387728022219343999923342426413642121401117386032783195611930121636138418988022431175344443757905370686971873875410369753234764319684155494238168645564668312631426240179429804886578454935463424622157172788992002962535498147461095184908887086966279359231622330172016519733401050870483179875618622535314626170381527814141257860670424283688145443677269016865623766583134367108377867462495660368191858817964715950181965072233138318164623819116045229835672144680628488592253364485534080241177483312121233396343784554969719835004615036762065830475142996382745816131273200895242270747277978428941856221843442710765560497108932960716237045324612508611811493034995191397180747766693640959247613970232685009702181888570456362915519216604054964357422188292222579640182507848417081152994413372179738496697849641598323259385721135960327339481560926946022344831165483915805060508266809031397533098034392186019171901948036198244156610173160311418896059144314873814917395055836766121379294772149480906242175772671727439991713588038292533990935017679471326396902033891481171050961600740286546725098809681230569550160687486087724694341492340626072768826035001799946330063444051391391314360141582289836606327886097935159984470177744194368593121209807338841850445191466405133748474694550295151875462147854496343260619138813413789511461668662597834791770754500333486724244839017777121612042800926182731510615309912631470485593927899584072561499859397885188224782765687432176401203518147869182208828513738448828369999701465186534238972182031577440778705243324602137449801137144628995921348028251430428240673635074151877230641335462060556308965964522959094453609787544103315037732984174793384656924244986442497728009882171113049369861977231913146741783546644110559948175972354808244637913436104944283949663914378751589171714019331517141309301576940424631548266730510285604635999001393188370483939074822741850748323959887815648567692141275449015156052510892962827416273069944523837545957604330307715494876063933641121134207983054755038773567543735359448866861826285428154018272422931387222342040215967399562480976628081858770791234347356705181766404756675414695535093139462255582013691334400573841739513787246898827010041073941011359318224271432025117205004204744468785605146600198708445745915619419517540162416463629293728772599000743635085838164366606595898244330573124048809363468746745138244248750835228949726756716549273665208550008098743064492071674975425109295041273539401486275732461928339250360472641868528707562267454204822628457494940642250775416334881000991175872205324243903440258142661277458717450589222767479878416383628564935205520485021647171109141027275945007148346755102254829537062980809704579689457132287322128180635375265926164909125954844816634233446555670495879577652680358380261951630612664014091138884714599833536020764792075286397886302733383912297854800405751343192969770111963497998558141839960394491948446958676148890595263322054061110099867694770900817896320000629887372909810092453685543947697383842856969081338299564756706517568440875987632987355702467762842911572717253174054632229578319965064374279668309185102431726657879344746688960879058746972849011780962905463231452252818660236948056198932060683914776622430196096697281113841464063158497144709377532078574714564249728425714618944360002125613256408062079459707069034590380347585026387681233827063002881324595209021886153727368227908885434528210458513858223789816493902421013763428207674268352189265091990997035621592762238423195382325958663895492854014558932327334696108658180802980632611543255441735698444907430404448625494942472979137362193380576563462692646060379630728134661833240201494724720913481399226907734799127274398746838576516806594360872362768659846663132859862830631230711948544413368636393900711100468752030384942010887589389032420159933217327177099412225496868788300501051258244311305031357745599297434176228368198324474957857477588222778309447586419525945577452792039000727447483197963582430929267380328840933621084331919268074858794589252494676439819623875736090128121024013718176157797038038112952971987168088671105451664994843198127399292201937058278041889741632477962625479131655317949701423570427042658547915709191048520233117118946857407290159363536644093498958419177372388290094428911371305381137116297525510509975758659683317363243028506394636614805156373900087770747233274189339296898098376705058091988747072670487273955330371519113496331198986006221160360370570801032689468589220668818226979967348688426343965360695048094840509155762140401815843328699866876892280631648004438134681856012028552683141829713030321357088253143649864410902604530071911646135621978816622672100971013791158198678813693611332612635830128991852762315067944456681159996297591685676542556303169662565822303433713197700161008232373930335230036376667051660430943813686422022756677845824700596232698251260490611419640550660958080411385524910146635701867725472121314646304899390684343110390116785913975473817558628039779867098050441416337333430629985587711633578370871139851779662249766086001598858033941750967818797814516120030996336803919178353443017725112937674629274280058871259024331721697670381944885075852558060933507087013485919265707277779233128041154261198580610683271967692105316501632271311400020872143980696802658019465488308604264515829426256053301895739456544854192325777453839828649589857488720708117647938061676790412924207416708880886209067359665296980618988272648758652552327045277571768765721496777158396198902679514262641377543148160470674998351449853521842131797461741213761602653874533739676003420170366161371149838798117007729122570896004412395938756497226332798424650381073624122654613266484083308790232007942106451079468921619614788449264433557862733726533419614605169249398906363467066111398786938477592502245984597912358169241400612906351846257045861798571392475452631304013328936760360236060486962490109908778996794322364064903413754148846224963752895577333160564371139188255811116794626875110521655880628374897002675930758918146278898627444611843294476794790674239138655633720072215465766193148433030721622631282995207415366090462447343913287797772676139329467559705131269915164246143615430309703904517237641654936084732385980296220985121941459698725342597170427788921529126118396842029772138820109948592009144249161212787743464208463846956923721741859388898521608714013182788071546364006471786857856841646176907201400747807423080488876857134992643173419727327226988386290501206367670957474472003620003651439653319270535416797680543099599114837103015448746981298869207120502406405334802024474741674339232023015700751621427772651974370717019517288994989341123164664304194223345878129103360076905196952583575355689788445804484230747048935539266785307164122822384810997866076139493362456710053451804806750947714169710321973421096416705651782706304064009226783053487460914776336666997024937409124403450683294744725301779793186597586004112862155850362889502747611689637437449153175516245801553157382447996918096601862119820144687221743427854231223205000967560785634652695660318042357474830491091007441075963290714502643167577020081758556098454461965077767719745225220579342843916767689307132016908912958293002579167905666615346948399064840291641275044175589305578046867950301753585926298394815869672112533729683442701448249649727528832003037147687399777913345889210754451006062825825969490080303081049686576927565415367173104612979866793926685673104740294038797881463802249286713571426648041133853067354755226683739137788782275348557238865460319387772295344153067467235676468577385912612554077337400923044421254721857151881554742141549088896465853619071841752458843987680287276523997343582232716318884928063276057902947936684671321537707274140182753186945337497956728235214455223661615966888050244328961353689963965616423877388332516147533365822302363588454808463439777175659408816051506426937466122159848758432741712032149038786544127874757656387157096770197560030857950550943891633234605964352383178706773472727715335328853376936131704405869234343619604386961792435080054393380974627540859898037492032039243877707280398161707853432188828725894108861736888005405095293409587366217719701526610129785838323864044328776833585785147615761196975257558234143778325527219332106527546492043264213363201213966234372313504158840929309808745980098308786673582539565416325663964859476297449473275544483893940899302667908264295019441725240379446221800062550726435390284711420590843141002344560583928617814827115903428027261582471911869501996523798929469875377540486194775469441417947953388832007578822179781483626506768724775635043102867228497402813654452827116364283248427428544897048169407825329628529047799808201221455014267955359654701615459487097123122310111397232619221572843024135463493848981564935687376774689016949385487281025222807266220777001537166422963693136836103827147260008303010363612708281191743604277864242605922613490718043095085007559522339349070712333746855822673402343680872650993080961136975322219541119644441725522996565935387207716079784680819597093340779050156321910761260241847330425058094178563872945223915893285875729947628490188031961640931493736716753540893054165310391612285774307784887129797656460709653396697422297878614345433707957936406334399963586124171737650623834345854956752862088865563924533328670716139667047237069910198104645824771677831825595670061062668921637124544038378428662235256848803198154918958921719876923446131505352068320132581833718962164215125972805320654949896264612791785182628108869910707943255245485080255911502404653785169136270260662330309711237482305497745616455359231368532960590498372815754241432473021049043124298957924021450934303334209575002753368489271344736377975801936576619330798495167671891941477259378573317893613017701030628513866887936692055419359196886342032939740981026667258630149655918457853940488804122565200122924348090896212412639843347981808282939315626261778993074856008074863017788945230682806774579437721011949734488036736110034221185538083342871737435374492981817845154245111944227609934610870933814642126261331086829184717895312985730430053781341463864956436863390391282731722048193071430321468619362457847476298536590450167383524132487533293954606436803038480741665830608336570384944561282430013282427990958633572346329071469514977751995413290994894125913185448185706061899164911566303773202915345491502804977690882197425055422134890028347630826033939336631558478196335336497018982398269383732866021226994137402909038189719462084330878425593686358160752209895091989440366451565180069292445332406428859701090126892956316051481830112787079009655839078440071447963796706009436355353523714772261498476126215931156355652359416750934796207730312400413643831136874077879062958100092458542745886945677461738584912407042667938757404979883751383791415962678953394241533602940733542843042280632506029061095641222948844217144026481399392028617382972796688063847560708568235780766116117917339105338772682218309699393350786604912359110172794271732033288868931778120171310191617311297107816761739249487510283241421249724960028910560304041143477849801321850160735531313315016023477147521290096381197241224596017819229811698189796716299044956209593997746506255001686973320634086112229683401408953475445840615782812258107779420558434560912444683061028182703347978537131818210982507600549876701199002931561080836691826284132884448167492268586587487913624566424038810229475714997258614952786192612557457237989797861276026654057227853234511692773884942461646942891172639680762311261393183325243056863865573309567789744179686200024149034887903678577990532795338869207168340467267322292113239936622004116030389956919981200914958229085191384969690606341614323971606604615420693590468098574996621951668701792187002047695446930936009376890887619395960262766286301255172501503704628012011141968657324816917165538903088286777296906637068091243900792162414354527099795514199546411857892672707442454202611915656096348726324979744077825109473941578853722096819366693365029041763573836192748804992504513085681320646050350195014259732404942729149294310395969583619982721035848224914440360340848452780400802600075988460291005251891430368576198609925653264995117816912937352284952659064917765783503478052044173531443065292026015423355060524688659265780276534756969173219088669366210021894909663049892019802448304432529219020707780303032555542672972075452502494476390710307396513054386908471460691546128823972846541618019826103764273739724792977360752770616054433823970903835216110009112616252853172659197816561546160561075567343196944649750558371774836191072539295860166842680686777234866029802051645001920925835379760764862889262543315336870406986585298372481951896643020360306352401066926395887936352569139614405811053190098758425366427626715411240245124966234712159033035930872577170500111278158854346569558607251671415427699751576084005598820538811220823373282382775105048930683145703789537760104234568676580361477690520781383528933802374592236041358152814100946030439607915294057284619180510867131369153751917421143789663662999562409921275340418505255396076068549233856605394798731201878666634711832188736782198746432462425337827436832786772631044037162997396975888222676578045567770958504498337570496230848069856034630879526900918968060663032021218144514208220212842431334373051208127294522381958704142863082827626185101094216793485094909249366972373961430948620391313860197747905666143937856023433675290496660301897209694681721449807830008733446179780209061083312452611670264427032582096663894249641383209447267177697440366960514663105171215186927443579419695661029297984917801187395583103012040327788159422448765881682593537874695982422238815474719441602831237079702459804756708856118970226709764226930505876520639910927384407871431334829429240589315374286435890790266685829190202242671692370436321180621400602773285399842381826536212913379291360843828708507627139391124862259004488475180797115625969128585881240360843806312569976008797039233908635674133402185913229073090646552621800746716863761188033717244365361378642920112750427658546616003108561453237832853602028013720939297387421692120405967048285360667979669944367153288939729008727460521036625867456619947472119032900869749221616741036979676743637505357505279278741416116361318095200235638033217398546437117422934280915697996946437212425096092373899359016681835581652516528599739074724118391448653688943352456469663885468325472788168017370009732194605656147276451892755404054177267538969980613481589178058396491338144007267201918613768499393399994066619702425748066750377595892057950725636158106273595342898288703287428883655945070071201153707320451023542214669077555446516001146795245061144044714553962099998012169561134869551737696619140281678678047262871142400863605237314001598037326470146648866689958205422822252116095803609203079469628818579736872517361576488648436361185834709546092507838319464330839529651370145050310693362980759633442287632893028531432287100956419332943272721360067209880249708245787544903847206494125220573604480204712388679166165215609364191315545006009527898242664282880665912720939764491889212767522125227401937953865805021891440133047873664756447303921960249324732584827989736791988406084223565375086198872215383642275888450035621651102315518973088858783189933839410102030183726631553700649431429540748472704124808162342323772411724254067009493582973240317823294904503542953317304291978156188976560655203451933163054418377599453709078456949237249526743751408136712973672711864497151075591857223187929760862085217104182616650561854910906013196812077493255786525118289160047833466811347074986793534951508911649140035946787179682289653828111365278382618654611114364220278636734403019686094838152974941081613390674042334971539053353400540294311292155291879679023395742721421945111386001475269776698727412643581006302049121524103431254851524515831462808551205893057038732460988144245731932955806260038111003686995740021125206041463527726072651945214560367272794770340931824986054438514533960445091260948643830771624960599018870424562602105998471071462420708179191844815590519375127119754941803178536355194869751113977775012808758239924174816602754283225062794785916837831945541149776894632934918155592636406361167712598290865992408275258505912986291011990196414427379244370284337715339089426332513454273077677566772044687739108983841242553828801889891946706995885845495617212337767588496731017395847076638835241811538697338080349341546199168032686049523972000045162000989809630408468963833348595175920231001047977795373492149238746161652594649453448069937660459364002485032958456691579786774578508620154018289836509653141854283506142514926643387708264102696542517745651222784218899039681255219532064049266033249318260037164725978944940111158803922685238715672644736461982452082778072679194136953640056631657961056611494192044209798598759543524578074833959427340933406236448933174977761151268358637981866261765546166156677618829162282080671808940543471242898362684055569364540997699673032113800023362935298571757121762939630176000554715382991207747994322349290988374422358078287777733808767049144569516386298689255653221424869025974685144444939537227655684243071753998974465403746631835892029083758653650231594272235870021103948546273051598478148063621583691792786358618820316272137769609949492233007581871363667005497626794241859831173462247811851915380198896840858672728508876003264020845657149491137696493705537700168511583886310789791508402538192256111717227446472447847954018544772932208535886175371151096202512024277389752731520567091953270390464220697392474566190331231341008547405035466140704869390301671066982841681238197191917070505939584164176124706733803658523818421979880694442500022136955397472260457012467960574763675684157204657945017694318759558590016443325861503270768146743519470754624057664498365969079290740895842865324073715118094608226747024389739079615362077248576003880481292514078802417112915807817682295220250112971133718712852487912207920153040709251924174811859554617982075850992863163986280704445076915220577627802000095904288113710373779742111710968316631063336378210642370599191063414000878267712854504295375017723813957633383236470147746975235070054245544243422172365964912331779270470094478647451357881905023033057188268142618841645253826719734836916944617959778703173705075215734046353161977965637218387842544787519280524019529800768118298872350727754323820982162469349272358996984014997759687071218424393210028020596880878147940399986584797971022251010000525588491350345964938866537034297278731187689196817705699217913641577712906341925028888228533722739653476315515804787223310462261177356634021051360583221863644074562511399992561576005445472318464708657725919296944808157070044543991322599215362624483196632076762618581969970700273062733367916497126343598208958066812171018872546594614037999915223118049302791534486484137422125020026240334533622687038826590775304081403778338885269362354962981496958868197553274455735490785391046370764315682000936467212830988556690848287402880394679538178715160580145067186073950730306629326045722536678560468318127878710375912786408542766204708859143061657436967780687897834225940650655719079350962988862250544690159759959300077700206320108418771592661508138755851541556774432369621793697805257681840350886423281914429416711843179697340624756061895459035007997206219101342412969177344576687856764172322518796889675877799292263094246341955612592201839145776520916155139552259258891203877583938230199221676175107309892290258772666806835819787166250707569016492995882150685621919268665061611973872207810276933949426664703600052110204919896160064593594327560289714327445691245315630189652020631922094938173023806471273203732223094068166708840917399790222357713620220958350054152702112074474540879982552676589656057174787605826972057583959683678021457232196898244418525821794393042539232189818482484142077405206440698925348618317285239089291948393272123121255536281942401308771694444436539794302264997715803327152688663724602906736833312277577451194227951454820875472647912935618696738885049224439385257103031100092523744059052020793931600457437205311645265344166115850417744680531570176035138748396769647239898352101223634380560857994089521164382111715832755584351037285375376294631838338570137075811341850320381018224842838132502550414294888562244777895972352495711924741097536847877585012545573351644318330939113990882909401258913571805910016026339377498298827511597870613951318867547861472350540405180512687038723675516112140518833298455083732370699826688978379013783712874998148443670821464730928272718665751872279417962348443763370848633334968133839777817812634106782833205599512360926737056917484994401466159740963706458046223547620846494047778792334596974044716112744359531595584576110909433351566923143107688985450537397494879555739035446216039938933625850937899707024082546663150721458201869756718129449585763748146216696782370231073147281849760031633282667173242517912659499631709553535047363183578008187539879598589574498670336112353221883115184713014716692556519227628271067488984771644426267318872392282387298715702638582934489983823030191427288412542398225600175983572125106862403283666921172188504534339723406867032421380039383916204304150477441689437040444863240435891262492851094843612703070154554974820663398777592388608366232418464787992119419764487258406938839542162089748708946738731190801995546100515780763889598670300024816399469428738709940289692858129051728481365730527371242500816539702384631655259207890719758053803977048404232100124979645831258988753763372074408180534336422853620376978843572133170835869147469501346042464276162367231659071320000985829378411783594983924208810203081467035838992919155293918216879827869223010135627750236612571595579798838662339250306731320649489719413702286839136358642047300732625943660683363408405702735866433615018503820379124875005594762107733040330448091358838921737254241171334397290863513500542160579598794541701306118949708393161737066559235484460212785328188046052171264919786040505411478720078799277415836718981721462595782716000780402043357264026166327848958172495115538819731162290057212135716956276748650776949492177781968199877135139606654703570566765853834078372765318741182375740989169888640380197797405641416954520155786050289352507790587257654329872744558496145306542861931098720314765152521497922090949711678542557836774244886230045590055441397000047345178367170529684086499262087973266317005719904400896165846610949700688166720059737333591605114070915734489747855560216495747557785569450129798303142597766675500757778876025901242717287284889148300819502006288532131287300032883776596908924029445136490900309322775601992570234446624096062194937693797694555133213715729998781467510455304414499697073121604943813224281875479118949037546915460001754789780411185151250881018820368949177913857453944585141703933029145949271960577451125234192235658306643222729214204697240096766205919345362716479233879811633950115894324379700331978105552235381883523329859297311135266831118484390401431906668355299786849169778945550504729440030968339185566778170040595650227654300405774161707227936909929890947836883605326019523010936076333269577248876741081836939556363362503824514476536738968925632354396932842867169139635317806155613934988073024414927842720053187550732578718767081610017322675037717507615648847970384102027236112023631532701490001948257932994017251790352614184556554193685590191780785207554673739914507075155255933516537983607146650980692618147098599009353254228564763840569381257734041826882091282489908085684310902773808762847255928995587762063887726102177650469030156636109508782948312226025804111201958771991994775516707754115494793095235537619193873686045355883294454229096502646289371122588040125038597232336118102546162577000187979840202381672601535512956475573112711247544423800767932198868143693782519261999388423408121205399356963148794807092221757569822296387664565338097817402281836768609014257094098553916360922592327741458149045442212064309001150936010300448988152382254191235523485697511624230814241888430313122218307997629227230763743825377953749898199939048269967234167307981638443142037264658856580866034670499713160859372058199236061699420387459038880859143562204452547634528689292399628048416754235418042204342387015062098950667100611016529256999573657638304992731642093948199222525415712781685673029401339455450732737416563632494374735777705292048388497321605260982922588207139634944990939986566224490444594843143150738711291939724738463019251729350589352218473006792878434694207656774385669269581253406174268185507880937000315130234744922542435618446054122981751717778069953828879870152899530314058370682022571986300594124173450850024555573962324393763788146568197477753661751138664022657220718457512849722752988476452561752530572902687173942319253448082641189505077949996350832122846588517931562064638455383829215872571969871057051448222328534942416640266177828471894651770650920788552875818787740234775479662446590844292627639343522608426083619067701562699457272400270151640990016476367824633490235427645639885493359496655680593642032821461012002477427931629646512980498719331474734349705790468616425421215176992708951570032038419980372034385438540983420253095454842068728226873850069217070798208153982342278645155792112173924177500256093958859923714955820749581445457252710498252411251495225778163711357019064234818302346252276866432046868777929396991593597494422084012823643344894373277550491897405979382857414580916211842408736164975197153684139751651678268839107533839495328790572901619182022093808242132237394246843362193714667636795064962325896605092105472007990150954059847017748154698402934396707243474880044563056530941964674214228524629642631300787483377598145357076294026164790212667018040870351949953305629771944170444785109449200889349218608525437524819644392855082786893760811117737914342557826101490821894481431544963813785958759534329431976968002774983959979256848948846317224082860582836755402309610232661401383589819181869490359292316336194630837192868030510649464300203823131032217307436048099506287187622501291136880596638659822849062666687939455565008489355749117276627804049000799830405009116357947030304812390936891023459340825961705962865039418008206757888908303332502623920555993502571129504928140027155164177200217126007083751593560235316519432320935945453747285736872126566223269559209958145340604894458468609185099932800667300934709231525611550517358308972752436179556277099314607704954406807674633253394246407064089459169557728066398435266823641273778429424990028555045157433244217621404872076377910651843834830588527914269661976248897187303176991199669762799234494827972582145948944298633137353492999448672258125730897398258219005415255418701103780975648264855746434737344332584433774366526893841099463964437748377785211267895616477287480248056877654823910155537153634233109023941295467586131704241317519290188452776016522198115946596130068150018371771889985213218509664609295997869915383222444709970630716993620462830771992923788133533144022149163428053768268084739097494296825115511771558232220885920850743476368323793585775139133346274287102538977597923527228496348388957492658443545863041555638978332843899250417118218885959136155190060134887079860087984750926656491343575635327479243987548380534401653843495676034906906476596333110252330488465111540190193464898310765295982961015791561963734742044520092245770201435178958968620789266564467326294894999669858570197283289992758689228295783986252004652261165463607525165154672261683463982291078802745651752781097996911834079040174739977091426093042549537417611833404838897692314077860456707883894060103997174029100527105001591134505090457256885344254721797577080546623931802904929283219094563471590855933755772689779763071233577318527713275585843582268490273163782335893665023635591080747933271901745651483540634567298135263211087530722178270092708369587931853154304363806179943976675459120432973211062849061536240482729921792021969158242730254227893544595608383994936009373371551335049229266400129507638762767098857652267462797214176969965183001842197222868616991003722777048906134594135519054825156105552811891634913631499739053771246847458224856782575307889631200416086991721482836290368854565466931025419578008362532838939569800932093963483034593728000495458584801980332908884103116349637864406273623905204575891150267445137776027177399911628607563760967731780534627073542265211250470186194211839501405232430672345047496609899183625376124294405980048417649604023201002999443550184165754058766141114453077578523848617039983765175865443115740574017424071422809312604377453679142241329627716934108555241035313780415788078328934383615624486733614636805969476579049768305277748481866098197347849788080512482398968586665818910670105301946376709600186151062883513924496330557783930198851607225272864937055889862638609230442911701590178693850563358451627992059859910620097654123399832811904704831844375758070239013221500152083354409412963522306679949739471402105839141028155504303532520746195979687476333496533384494262599342076054780176089295599228920725770031841744149281649040282734422184912806259788592734575734351872208524455258316973994514598680149514463754814829756791503094069275472108804871110944499816177651912427381589977101579657499017570481041946236922697590569600732453026901099417604929328651659961156877744446745246191690544733396826342755942479562412948096956581659767347077641441362403425220474057692024042721985456321829761920895839575976776446410243312512024105159917037475111741098654603632520448330396187694923482484092377025213242997237408946105934553977274051618081590291811748613048168630219769261920877350336554173966722970783956244709253589730213551165010500434745130764178761428511330005782633190983837328807776494553359389504592223009673516334265641958529272496594594616805878001487620761097012049002570717193678821074394533446892346876905378799330055127225558548393253399463167920618347916541961511934167558899293744878370589454358955794333180867542058589750143490308804221287223128387326350938866722718958273338873847691054250385824722775314218498014601092971116120953951118648161611033164747230680665489908676514684063305463720098077840295631946240651547150574416495760558851413761388652516371879712402233101488870596555001143754642038406290198162946910688516030275761669284775658241590633807556997585207840122352061974361778214556496911298783655993601369582433586453823840020680115004635419653814033386345029798766077005717658120976491398926706471235914606035749164571580029113654164974292832997508720515345956301789388288808927610236819408696876406407176922898374475844983696125309188976635524810013769910425940326521346345995385950078780300411404562618347320494894604714477223122102077112500484925967659716089500846947119942089995899407230995101824799531908711221721266359052190090722481490572098767983210556955817074850415498043490911853292944345157036524483194772798440694420130508149931756167872015115908114803641539191859335104361801042701761952655727361828488878972886227320054100537248193714068079959138446302439124567292251888862096755834527612022810968875062809392188593371741393165450714178658047980542662929702414993413591096715664238442910187986113595119330745487187330444952341570444337162038264992798544981604846415548739871411526327465699902743840732637477083637773492751933252565864619799387075787333963868899858196283789323304198394877593855269658475088957985317751697321930153078766431172927460249424246207612710403708798148894330079236595748860313147567860656058709443222752154761479073009033333395368038457705631333285015533944834080826170246718706874577685476293331242207192503972866890989528337851230797796786073868706014068752968728714267870494409234056903822355776184951233613019860455618073085996676857826796177190384920253268915716569033110675406821534185648151598365843060972711480139832455247466279911926550073504430988698683886682032139959190426357346542595306866883595828570730995695325296710616818394302437698913788454794444854615752538874101918430766824891205499363166134847972885748998505661865770524704566516829867202885879719754920613373064652110971956693891968873364341066616636053404257662189091707707698362513971425794029846325050642054571709051749044814186991640487198842876648976983510463581717563773771491604051642889213607400030714039396090139793869914075613442116511985422054059965721521624701077584299984071981792255759129129751118287155170614307748152964051982852318198945291429778712899321038222533015253333841340208922942741847262381259596083265835741819713529145309187265211734350246788381410677545059982814832236097498619578444822293671255747313808516949859226834452452393038336575710905881237003548291247402749730975047359420106356181289271364566190403495462345328805908631020043620928229203179061772217317990664661639800015061135092607876512686730229699959703378378491274099866850182321651132652931263550984384586369414252027180319532473897533016231230124569602048143184387621013704953773958392112511867917785095785980645747766719706938354639210047866529248119347359077428177157508040667268205664759697488458867042945853200191437588629878021917161354170050406165626552769665959854160009332998814538680485808725539124787130317313323620659416184735597847608354687468771354862157108914761029542442644243193574324945821977252127228638550314258852633570731312403703615961364573276941344016281563142598986486425261373153709873940685393072778188638158090300733292985702933696761089009726760136837410925520160650240113518270864539419717101125240726960468557418260227921040419336287260725897465779885362643161426800773675706930795015610529314682440011777152801280328604152889579458854231193446479683698391689809797442214492829275444425937537131029437550440588933579198257371989792764928993686563612946907013033547399135714738740771649347748954421384618322275612805528174596189327029339865081076326480781558715750587389961894091714806454528312478560739734803424865955878203319648316979676590478953650766131589248898690356779927628302376758105286080006182758605062536576999897375373530232224295547056789349280398594940650560872415457933922370549532553185020600826172262637436126761549932971453331418456888185811595596913894334520164246834416468790456525439438702428147069197539265858003121433073143370363211851698422822021675762908159639048336095396109573979236627253174203394924619917400850913404568033604838433231818240198163161156944976188092768352604423171482044560622341224030018301991026654149419353888374901572507846417063472862483739543465064187381381036652575539478913555445850413354508838384307116210962601571820138699939416698353945352652449913929266736707974831702311066200036092073828452878687216108947497248000901894168523813316116099502768820112186161914005653254213420966757247608651950145197191683976974395871661519678611220555600661958202708656852626127292186581629734583346052127606057921073124151251119156719584098324950180023899175395556276916272414566201335321227597596747532130757366378297569638754713417157965014433783340190737730365754559402261788924344906243260010700896029887459188552354941606545401292734928592719621213122477085758876762170266379394371428875281491865072877153650223221608385745210025875889635595790632060955828862892635337393065256723778605262886601622461137426225830785143182724085592755779916666594781703187659850898199624168452827016619025902064138776848805183092389323228711911595712880847104476725787752955385608537583921739436290976065719591951403153009848180178998814483558901385029377308759858371599859814524405833153593402208147728056420364701103647847950070776721488591945421430636635072580969236659204925151520806994004563056150516693554140613871222318520925328640628056813518456337231025093284790532633408150130209951776420904728477161931190223287229486988365953345497670499689533895394639247897664231962664425243603556489707569333663754378491946256948949153732325848032641173621358163521268932618369785852315740774708088675439650434145455587267188662395606727595321245978344513300855947444084008759312686464039281466546077593283775664706777047006176034382153182867323993582329085682995435482805283192522952540133200813828832777257965249347832858725761275708887236369418389452168468573315091402345585119302950825983821707087080017077386384583604021010471985918770942230457823457558315177541316025220529601750667058368556659866920064267813621786488512284909164360144644884374856530961795010370466857819093840814006209315236239222731691835762695818537607573323644466730573031509403367626933300015642812385293377730172408236157847120486184431428206422652322144543840200496614160287080909339571801979920615576454419029085566904796994370290704376783760723457401669871134545674320988754268588062152504801985927272856588382685358272677699337217967992356404581805721010726602728074427186129130261622790285981834313713236798469393872248581306156843513148303982461691754562615823439959183333290628560054610028932463156831085977517888394532388208058764888869130141298766885145945736461480722838581059733027100672318029938277722143448757041667174733248769963191830354366407982623704507997887138868305648759962094503332849615922253644231934264957219906868557628435787525142641405384537772468624270499350444401761821196272719410222518869586496898488782973404349242191720826731812974069870557587698952500857394918067032957764020011078237900310856146979593372677377741787633284587937325026337463002193205513694536557608562780873098776304578080549915917205209843656730701905752466988383829732979437447584269703242749356712885790970725034337505476695729420273007329620855916952401559875361491846413192873141448773662456795570021450349497855981071955903777002085000127075935166592262839596350465092968662095023621882886013679949345463081339204481917316244746608871606940942790168378346578755281987312603126907409277642807876418728820362287931921168584674727562053974428022032586308179845019679022380436582507592178643376552725244059375237701071571114336593171603845357966831698781031539018150717968780695334572326721829826542488915732511201189522524543518773608973485191577158914770031240711816172929284811085768833926750194495053707198250968420871957859394416146766043907838491965827401632243909996864433928262818040125249829771991828891262938441634995055538429118656706442317565846379544701522484329378692374104927755428898747038176122457695366193136676221607919328226557989497967264622326458720692156245502064515818376688413835050892711015279616545467109207641444890668814969796780230900909295930830441601631400920511144320155292152724112638900693512551347425952511989697540226009044079986156331830792464385671488762156356596668177538468012935715153052036773679228329380380334165563619979126598012228735660552487694754847809685016994923225792883886847228091290315452591774222327005162746262836767842936962237686282183076783007987390074633475013473992504454472051416427450710791483686791675194054794937890770626639622006094572662141492208921323643027203334293526811966831310501241406151013856458730008347426863757702502435770238263555964352474799133140720417140394260587304532961091922712334271743527945980667380565780162399668674723596032885668841977317437343754058074777578912412855015325411075250309272323648282057258747825066280730780548462019672529450134922353389237337277949895304439982764435834340303376203137709655142043478955009338917077081082782821817706088237940073394826457821302045121298290247220150075333155773888553174037476746885116129017628622239859904327850442169934235321902361230486140396161293098994031452518393903990426187132687184603088081462382095617474222920141904813755654059275206383661171217341814448174878539523919274541102367948696946067333997826906353567015811250297657875261358462245606132786049433859945431520702311346127450045906361777769969088160501262267862548755550274949227810647542352199491363321394422896407377867304281452972835213815706184030195944644138768734855453787893715697024629748601120399715061981459937584082212284538163090437433913692777357738382051281108540019602534764996880321339931838934913775872761260204823396770523057665214136457660387389301010225031500395683027946449159140003629550962405062245094476613344351712419891287031375810511163088798678476254122400841416209816640422943217886496394542236855631749672818211634359247179677621332896264263782174643908775611724640510181117746367483078855748514576930083736039964235879913395947797369989283080135133980748893069040812630672258533526818633277037508461880582061251070476278996629918236477134979401553474079887064368138235879995857479834587404442159945056081515180273040141449606391578989631944535642654513677343113712012843531699752346486713669580916128558980816218609167180811880360665319237525269632406402948492725721230347521179271324235822969404843712348558849282233051780668513680802776466429193900366669913333655037208156855203174991678805894786299957902999557825130534931139627918966807919589830536843026274267050877009844087150073481967180600785209911949431200178880100876946709723029791354124467896974601227407562535062364307233588332366531781183859312290936813049557745505307713293811062821699830951560569944008292399212731168414865214456225063473867767336352801518005935026706383226447890122373301919825838787907836984434024241483106651153058556605039762043797499989942375829920345421709206879698441640330556575381726160794777897826341483182259866896745067336407511423496767757124189659992767188454033835588153471718495367506948804609216883852454147043767403331095447466846994723105415753347849900742463771316064264139937043879501431612479788881346668626636544357008510174692347466376272394880507869478388683209076122983393149277732443406467625037811108546566858040381545827916954842169001654766980349063405597206260342893191408190007901452694720383129933522194235140131650899238482964084253296370875785733472729179724109589807626021988048435889876689975342438695541760189751122662182062150266508417589907277727888581564144849734269058419564087634476364783878461950300132400498257192936967440279552027848867956752056097682634904746421648503886208586146302433738349035200948944550823072814381664113857396721616929864901194455939140803512904698477446842199397773456518454445766724427089496466280203224460458578701382672328569730594681641255500330049535004707949760796574661540548802151675536607261848597580783277534086056493420162179841576831895876898934233261974655703334173673803131039422160278421183283185326847035427122889302665193040027107671024222022600548137007347192848962953299553597001692938547543198457181837731034348245372779463087522912643290207327248756538113852955360869958352584484670577399110868780898689274123952427858700946058017101721431013573592860548871782847089476323028384716269468740097050698003614957960315866019806518170340122412271392791226873848655617218078227728523223646267572204591731584230535855380500512256292186862908742061456548559979955450723781099934056726645955946034174096875846840065203422221772915554758760488923326087678349874672252280736635752685369997427013798374318215424322653801817062068885625278105595690917542612991531116404292484817401234517827493429248343701084798289462970262727364836871540095098749774926146365433412602938765833034595775740920907593653560658080934800678848061882103498732337420935599107928883537332047283089407541755747839610855355441887739886022943763436727916228003899074847005651580072358408194123797869274728424758264128634139479861995605119401546313143090150193307785059394565343378600344652949325888158382429350406720107928767775515756069133880180736144848405534140269635022029944856340717857279685825501513788601632094657735928202836063343687590826701858807451877124192749711726792280359407484382764584707627145122607196829360250802613723318211232115113230529783489338353377673021397455353857151848379375508993437673459207911249401438291422701140343110335781686540595611467215871984483119929423718072739816575205003468112280372985497827346182057388834842999181262213019228434094480346455129034193672296917745184545294923422500772608720192068798184761067606974997804209337381175659134675614487127451714393010779406002099481574184265959995559694403143320748856442348313692480934889670787134230036346698121922424676085704698987963271763024801546480640594441971682252597069856965923483108659603695996330031627159000088483123104529126475537771165086380980587816915780914786945840060669316914186204676165063846315119312219466792037748020133491496648657978617970982656741143808684506349928978110327295503911081237442498072004163857496245066885850615580662573648253796226408625748223540195328980330158117708527298336934218473723336880100290432200054324808655866804941893791952701203268942887677352101815254285256546020298403052429596418939060919312277718179459503337339447369152620500389292811791856440466837121818279812293469384920310497551265939238655652219843679638853172870099332757767473017797294191820397658243110726138374774276712588280619616916584612080284094670229284945142893074095425606506511411870810902602044346794856332252642596937806385477603998766987235344411046859022902244236305735667519444058483267436877972584029937674797545633831936279678542200454018250034301627380677145436506841771547206035954450634475695083943358789995588012399642376478744831485396878845670648304737794811825333854347304007204026313424950033141021388494220720590044191737075254652078183592662087060809837796536533532597927760141815661659782098465473057624900952609434312267969305597696326045732055482249213391093193205682364011271602814933003729271797955995333954578213719864139896623069214480757132746404519692640116886892633157790999955770410274873139488403987445642138102545922512719846668581318804333459801755555354552749766665014406508451242365686136187541224561052991556374796393978285364194969181459568865556249570833835964438932089337734938850187852931072107756316438245025692013235508488720289223037294174756101454827291205642710111912490456565216055542168611580707459720505199425990974841153736807765688095451891391616211413886047919540302057545728582205186531649534748503450080493906927277331077463424669317530713605088576825636558266968301441567582839189289321213208713038635838842975709335274875912718770421901837320531412925613025880256084841620050117419667500346672409046103953814393417046268529640872029705807571124894768619321423968873193095014320346502235211734661336362877332234723291098677443782308736516116205789061802469390754486516404730551535582838642953577777996677646930668478087517996139358084233075041496013466003918007106124798009912414627982607474531033207097880277673320590602923672531807717245014555491999413417922258661347831257183355170704471968834037421576797273221371319231663383833207118947796797059284412827108288968958973619300667335561718409471754163013017867037932453104496851267781349324772511469422580638574906597118490093109102719473909449324342434180643850030961838174773371327318698549198700452103407785043672721201779191485357112755117012848970496326488851434085674078029485553665298612215585986939288582620928234679319519907941924752623697203105874073376633346807332174137370625545825657143919693926807044853905614853444591627434855948484288109795746314940777705651951539343670262123072302101549721889516976693735994753287255671745447133334449543889363254215381479342750591552080290682413457462375131637944932246842047986460511965453265414936928534312052989285651138941715008423859501329883704857146851578844940413178675619604133147113478760066999943263974923852935468646700775761312705844308278457830494025815157212113954830967433780515778310467723426158197668838226462723849138754458244933740651302461904538940674338922602221547610138582005945985059560712862859507364102834288932980475630213318346256975105372524760685059826707443310624400982086088676770483430556387516030591630187208025271242894572390521271338340859224678277210153732567756916418666531669361066447429926011966818788260522048784273254071535291332749779702615031093800987642895028110571793091214827473867433707141008963576811939195039438901850713936730103331143840241693258504705568613213975893549264023414460069806912244067780160174749732748902650214735343545077987182678890756521373737415079778794534356586552933543625362107170882092048239351251653800877216288264462219217672165544267009410406741814994972932290770726489014984525949561649666595985038524056491515842417664521746633195956602452178302566317284593593364166446381393137198293439105407479591222569799733807794748043746601803868451718714484836853749644254762289538878667805443586612136710126288287171297985203403530488492657401709093807884933894046172174215026883820071250983482485147845860050012323543827656553421538901101274191734157813420586491275608694985732606322940232315492167950566214983862442399050187600241651405087159113002668812466101490123777748208330169416079045498720662043718963850760367167757325305460125039504042733316718697353927374685344933646875326180322412314564568361959274993939510201392261861848479328150002213303658784035239121535240318617748602684608940781739698106576769199094428204458303000937966701774425724650671603852733102456481303310893478349952294670596291790168161836913292181391489944427101327018267887111909200520413745095511424256209156472107427383928612725163811874860207382875796312908756259486876281474890385783351074044457581289109809241256905870390088888120902291877768291672475718891579916707051596196361812317983474135162062139265088844794710439529290333094743877559944808515050599490441962341818384861108867606418866572092332641915381021467628259453536343923827994512575251169230232698790784953047953037692242026729139412370588507840608288547413431968402110676968014609725624688630760327357301723094424379879061046582358734561307957319419048656343044958449738333082483289305622946654586137275468946917038167361724646944914962847493179906761204454866816547169996443219210633463347692263594144454627743659528404893382790225685811079307022064446495835289410767772801824376354598406742628777540259173404672194035863103459586356002323357889277141186564287012994575615007598606195335994771652059156974990398158682555438558120072476776399640777341676213930340805253890529354281483743967081932201267363612974630336697502680165128258960004314468192734032087244670503718164152203773963802637898116605274564120768748822529344527705211840592186251261511222003275570813542646832526309950364285559753679487342198672581419149420395713313044724144695421225963500239207298303577688995050075884567528047819741956922653330843913942300111444582308138276641721648280572957191632748273925713382876868537911742033193612392955625612212839707251546075670025204240213053411167053081651144750943114542712312836684111412912104062020637177255237335409424184139501829532368497699277866872395217485043026487043137658607398116538963167953353296489342204636045701539107909666350028724610676908041489899418561058459513263464991298299960870079787722961690949614802124028169432045081455815541798955782320944050896227439971822097161976079203902195938926659614045489010910799479208799631254599259764798614202606915295542603971442873232876407951149769372606245075242774950578092181931152289296931466564767851150451840893084664804067744795920011489288157892664289951056299875389480360076435916327005122466088206474201496116982509125365644169300195105466303412458690657179404291200054817208017541335022770077279116863647616614480082783285719111146411902532612317463503135643674046800694118214742097080734838037383916955783204543228799625142562077353566771328497633913833292552440510696379993853589220661543046464720602355583732679807713457463975546835036359613070390642173332496385409551580947269834129695804325621001272045710236394859320344481000805426677178296825581495251236830464992439579428370287372138364884911776439622361444053133596551096737688867724094700854170615593252135440962250176227863816351560996572037459532291167347785126210288711938009641408372101600472709389042988351277178690637211586278974609863582651239962000511746207284861999187996194500153637544436056259727080270584588390137617763561182016765668992904310567056634026860104304106524451492445418342030314847617607219939297778191808456649129323434677123454579317470966082229569249896027883273981716274187287649106642544204026667989636124802599309869258214946637566222267988684621244906488414437972433423922134494397487131789308835074313015258542681565221272713373464689532378470466670570748022687381275092377658283745077158255326174053588138357138980885291075515377202117409611835271575003788908828768605066791426141822729780805956142345798087871206338459093914529639137205788416772511527158529091486370673023117173829506284510648490410122878608158096787918503668487236253706145767457990571415968809300641646411130227843814287702301656971780390522282734008473380760218164735583297149604149122657666790421044376930662987252183285744609609024233241353939883475856292219814804482981806121038801140253944009222628190573291463593579015644323326888938063440189678950321907262358694744926045193586423987705124334048203884542428422164674731744784949366874761716646192992006708943221868048238722565870959995559386393434896396087532431161619100651884903764090739417006903477264360751755311587092251507327783686241175759855433077363719937332627766659269393389650759745357387492276217125384504109411449494905927694756606540281033505839369803693967817385199245335917926983635001784502281240738367854469771555323460986882167940349523263724494008618787047455631491536374088190838129189603033818652515646678212534293829097459448943240817614386050162014326316992457140251797505906846253606032621429137191504649330720161160471750429807711581680929311444722885014599676594201278788110197134159078030621964893433866349356911393356476203030597892587920583255898420527337600230214080964993737927216976035443043819836065174088417916719406455837402753638413504731071622305294013279412432303045774687082425323934475653597278206940367795931520733834145891559676887842912379243923710495951030717090305664825637754834991446714471777137376568180787959411912957554701009400000711654542836274510435081743334646763885941954013166664931808822181635582540544565625374747948932869377399657666730577712255433091127739206803672337207325405690952763473708619848556116760516094675309128966991186553983829572170623052647481361626893992783073950754095417618543657473731849026618170150834895236292831143489526710101795160103628163129197166267315184171018288648096525680772282243232190037024005787969365041802170240033722011113433291070704014499563355092610442728395376216208398226349377957437250232366174036460540861815252633838037152696612512111622077298854699063304469098674695496807472045317503998198784541593168873796838359551209506736794234229438895956223827496876553938259163901866474916264577125461671214383922025532450886791471075630098554098335378364983937872485378017681486080500288954476656410331326644256024755724259083466355268003255233069234606304911549815789060309973282080586111134172605889430697906911720903563401625123110970088176527073750744247260984887094603241791059708042023262207821222845682404401332825221381086506410570496144046088263433917758542520549739992719361117963672965386817862462515860299841597450498916334032594430518750999543030192579287456292304515760740497327479466737688225244439772668858175800710254310913638942591543493513366296831639803745549113797215425762513370705607084397786529984403139444873096050738341952575166813157314873946171451013662805125908593127978373388880988711182053973012482472649261041436374810934184612047460514706328225946595798929620287973512263609556957664585914077739607856264814331357850731058536270360675835658776886683686399329233836528353594863837580272906500203010918367251934904085530133137960785312732260242029702315823884083147645429755319272710047381728864356690629270556453464772332655969014350009454095214321683787411953187321297484075309434612676272961228879060457304467060515060612479284090506145807308072371142956027673958843882030662875954686439250837558777639672683154667151215391066040014818977870162608093519825164235002225970216490880129365628668941819536433191406237783163883495812377682941854642853689368983335713348624836676564985532644850278184525033610199020652692047616381189999982293591100268538869855025189274872943732708761981015728675585159178596101859827190727586748938089380140414058043301166561141648370052675856044528295520537957472586232982294869480722976453298312320675741746979150665141114446306963514357810194897744672368645900792489153585252677710502783631198775455917710947720011634803810614412901211825741955687588387775547774889020814530652202731876076934801398409737110711663641410256349739572661982295530534039990745617382753007970045486211257308931756534123644919991777502600952648624658330509362169682567826314183109419464167514906533852881642082344671710557305878630850798674006175516184863512709470182198354480195942744262555169093980756178811768107411988763451110026885643274553989332864513374156153369280513086959264065203181413352169081014509526045494769178063097374250465757262926478840441308240741296106963338969134025662104887397882547147931004542970848352564740286156621841883292870025387803403828167353497734337120454160473195911376704789914699832013998266434555037565480499773014920073043130659713239899749323520363726845251299850901798461470264661727236185858653939761830352472750117905117034691157040208401024239498828922339039105170834971336992527805513019510598942995605394433252035612497444321484652016590120085107003328770556466808058583744802706809770377765216370712677878361333748304003385921671624655049193922811441060715984686076417913209445640313834672334766444064603237369129093757099006753398507971724571417640189212370212316442809129058271407382158561357954387722413234527610965984409341510486863191549728857374628986057602771801148896633427743659511172893727942099351640161628538150048865936426844624051615493575042621446347305730783269854411527956739064196376206782399877125032917856805174628118932155814463622907948512273361474469993994766757983157935250980970175818416186471724086477037418455699275930345128061472516102695221345162381893675300966954594919330550579158645227028220094459575329364535054426081983082286740308207093798311228744147684457324245406618994209441850168669266600349133723976307050347381529133949456784303495920474102331376778608000991492312291753967722700441302476210190893075139739852581063804916888210196606483954849202187310452548057141864674485296507666085479494439941025554943847771202275308153608514881126572771495796045560103035479890622047013642678768999062655441007381101504733996703759038431675738383184022946184071076042418510412192887113222448523266083531455940167104978390594413102666820376250924436993350971489737282650457263604944993045977762305771308530269967018080868243865379159267868895805510721389882506408965372469200522758516882752860461696226451271228973066181311334755505595102318295435309224111468723573085812933462715389395531574821623905895503783525254803660176524916498250069525919604659369903508577102353081497840424496030297371619938278577974716076745822814743264969775050545345282131857854550103250428739530375319757406780583409051808281112586470298074727360562286882054006349742942203564295682342220214005934535697877203160934453658134372794567672546734547814046016450907267160848765170828502521295173320213382021037461003678255170396303257197717892272508215486525941453008039388903642215144889019434757520324397412320868425281317505874013539236447620440749155407635968956009317035542701582334699731993608287202593406627500367975859424728914572449535275087150337132947698361835359649075224851822496346531052606475166990269381107014787651648931459793303396348351756828217572362493397024983463572271687265134491799445081171100236681400373323422944443922606514923230682764354646322426075044599147133317245299608221333921045071040627598841843250313018183729375016700254288901407644989057544659740488409147149138797967500237844587638727592009920642725706742301109572700063551461360334105430198003599305287204076122910241417935298395054429211357885574443953652930390071860911957512058753531181647701459666364697764059943637726469524874449878898615477484849565952654329928477334876647898458663825629358359948361468965225659838742599171583797236932126244830731787916637786776693006652391401894058341515073131364429020694763353761290667810474787348537676592415485031462844164775283633076614047842138152744560049146841335747931021213843319367074122230177960089601293528429880895810005454496618434313818999549826850198348820827954745947320135159407182729321575047065187340156563022272533888775470245325960292362517383935464604760450344845736957367507751538790949165767874375481202284549875204943430918367809614260011606711296036341447683995579419363816441740498466529022413543007548347593925620435127399002571083839684545355080673710995728476106550568570211960198201870722328615099219040368893668325319025211565750634387320630151430294624205654434437060554010591789997374368385704354546315669050709220356223699967582193537514257407573127063166838316163791690115588586522366834832986652587840988429382592450760849564891062944029457532157875606620801589650639087003134529838632512840701797923139691650982254358482127184462072192676865904546787832745330387395348359932575497263088750761119372633578624007516991586920758714192317849634318830818882935278786277702109810970986351726064235456017556639984296330607190477117787239980244359885090262899866139877260851713590219379794400278004936692013085395782685898825575413332311578162914163229352320201693857987464717540466624353150155224431863384530616129572468246693174300155938833958466065276526396652590322582566434669922790864293897979177873393856183114520785412166052518219137580955932126059222022149641897479175110188418786585023106160600604219113393544905080411280062121281972544577736865849737076899325900302799417154435527987996279066916555211621894276748446975196244179142399350024577445325952346885205526264930564368369110823029070475599040197446350603003380912898320420226392848477071521336075948223171400124072477879328066288110204021836511946893858799069023130688722106721015797764583185811200668824082938890114545180802352881122022683553538496302174204820267707528971888400920721069211101555854246748462121910282973403964615660325416454303018309167300667750194597681386351377407009765519982968160798080601670783909396489979087538952736056418205102597503097511932925633855900323717994531307545114487809532765010937805331162100537672847384455587194973871804688807866412095218224100782342207262660762283849147878779229342248810656788742134452556409362366152646930679686911772469244748856335320904079178666161522389652915259332235363556771454154301719198467837862940785678302643615020715260604878837264957541880109703479449938804467568734544057829405424083188650096479383174368455543113537211367216881342382799164788005758557843011327653840766867617745488241427223966468875576132021778070252163520400098036046455677552773463247711891858447765246534276168917526665379884417147702109852685551112578645572840764391021122407112031735910294326627273928170922338299337224417618970813703377481422372901369935705106809920633038451939216059893171478528119856884090898422446756371094411369979538430522218973085872435261703108767435174237344024550478784388410111955406917339913394678495745430626477828604177554306358729323147740163602721904246015775051397466492531554894886351895863363570722073934080188512749761096202434772785689464520393858791031193364258355836927942993996896173183421144127960168310526710927080571835568158300086462213829585417294581968239004519910387161227920159202570334489329552146833222320058214220668838770857480798205663079107578180395429880791525102497270380675482811788832173025140745183674035570303018042268019580076983850824757402961654564628888951671652713935059016377666490126062800076454107343645674415973936186856159926480249734674828433984233086017476806467821268501183814122777203506619117028742460130294843473889834729965766803250048581688222238539966089744906873028485127264519094785578397294167346679265542952085592664046361710813269259063727135495724734241116955647135255653394462189737499819744295932259598397637564931960250627266263176578757845783954032648369935222576249597392184617866873589754357341188751736049621550762934419606450641967521640117360682331541050589491700597973564852525479216302895578242899829103895248782411394277087692862383073601140664875983371690073939923196806565575598746352910875566154414515829395514902439360829011547418809881221976994202779756554127386123298261056744350688735692974435310352534830769517941347063267777715138556554084687778523860109246551753859016210516692047843104202867625365322215179940089394093823134558256908869455652225496641046246931447605811832013227308903047254130041836302183484504446826226786014139059272545915038651051905864544140938109578884410945403902710217539482442624731970660654963940530585099424726256375654882182326541810597040801274230315101116644910118633816191414512617036747214457613270678397215953242572365184070975017010101395530006660450693526172139394717072133830053751466648645799619473651093377046008385365057474436657741226052444427581626226015215915761896679128861141306093697345965678731185970792520052404906997811722254007727840095149037729479141935162567137677620714030699406954886930934590311243370203210840008589292257553050944317932229481944851383127642006154558858310142700083763038065192450181350867249524052674342329990252240473833811806899468340839652927218542691125092502354028934062554868517017875347012759777508947580864241912614832909025801584011111446465152406283186502328578479392653074287163235045055844113251496587504243561493426212222266008287482884166302127740500710700770741500003454998122999320570278044121995611541229279762182199439741965306243183811013763357965813528553241417706837321811168833687845352202182027960215774382934091561332264729577553015407676086816660762749325228664669843809385939366930500839509799164051232178653215693422802831765032380765478115887222347754353662241172598855152222572213578579479131918438752260728624294941427632516801620472295783466666204518301855695188802638243177575995956948282049791843546722263220294439357408402045682871705712202447705893967205174582298313000600668250251841025498615954430580062855694359290331265630234973076625484074288967103946546954996248544342930685973844201643001200708761588839370622267424265324172222796093119103649951936182584918106533403335628546986457687917321460745653804656078294713504584205404962615855713222281255157905191372306771490881641086005739112451060286722340153702008666182373789238375111781760413175288977545530245039236387056250747105150935660614197230457504401964607957185831959053709125941032228492540133248770617268885796755339603779705893575882885479159018613703416793098568619077355629018956840298782172502682740685053346110847514617620508061994867071511735854579692113959911659081535919397164598354573137925649575969104593989584763277985999412898036349981305614424293408723163536495551000338214777974020136089660224494990750596318102179441522321453222805544997146811760299393423828824687720216637917558927850033521584224943991302804763603883180330563266520041683986700739088957024730196712229779756243713042928597233178225639049200533182218999361153848696471208319253773407552554063316198598937828678771311015348686527679289599314962862013401493164703569938533017467132617764518799144676785905618253516091941400937207105653055330406120049558080791922352190606284967961467092544060849652368037314835649222196907624849756347198566722162337592257937471208646705713730554832246936065650853936638133403388211911017367081507863238121240737848157134811892485103484990281634888094491956731170509280926486662922119910792050116547130808127503060196426164070689503271365535611912321275091115943137683775165509444770240823988813631795622925521038863394249037724041925944130759558095698072984780146570912371205200583505386763234892740188418424355838163565167907112840209285185444492245684505107975406713207086833867728306367897656992570263988077073414929357378853722339997153280075118162354950360626114786323434331336069315103019583148541882279520280381526840411426570895870534181715142924564604050034501529652459152001196095910515694907069818891999417764402191401805446167661757343948984032424095414415308429617133720331145570633826600484986939342923186351639311279443934162318831189990757942180994669696944919954299179750585810029431684482623004953829230472235299868727456751119460448247014321632294945801350943458295530507440435227956374099761289026565675963382045769296254221884482979396767486010741430725477344455808997553734524884466242323355383300234383008786239124936149263091394499205566862582089202084603503807909011819977077185418271470817549860025663552272035702590870950908074773307122122092178605968085203667722649976021616218044954998667303307286821468986669151996991632401038893075948332213260218976502329925563177602338090523439370902307468605626878238753846334797275038154699069360526838362569679938658046321281616443519896271478387629954478061503591728851145009672361764062964710920242391280436587740072134202837503555983099431049941940052475849928964460025064475819206280286156251137838448899037596959838484512143541435966477896751597496634923782935253007244584486956055129441824902689552930563590740318099869337453310028564273413729842363643573743396928721717012730719309595833730386570018878610254827530027368456537217476880682217398940028737711985501918439734476232843929803154578194839067151015904018545760717951259791786713439141410560254125548086134222043674096335210294335596988467146088214474159797200560713501356483237015630135363911293166094459915741193291250423127767237215090482186500717800546596187287684604628693908791183940501789581641364046018514903368593013584151337039640017629345864420768614525794072776707900035914823236510074485237879759187780717127544057261383330872316335710592929162037849832680217712820660956763553630931910358142904059928368198705469053221194463020101992408396212606783765903779325040081263962941387293748153606904770118441052697886052377036997773455791822130198327231296714788280497897015605158804752320194187359579151139042882632561039886070206732199979957445146256904787923637382480402944836548075780578151116489955186659373670324036406620810203118232583050812929274087446401304075502914809889811513126738769283879594403212164295749932420270806053354668478646194993420840389920251070593243980238014573966221454443500715275399973854062760458523230348339874430652741192006821108382838325665564500299316260301575530113961751002163337582878668133769667176522262910657684105704208198607578979254808329146359800672316793697000353457836728739985982411348654562166925209995171729402483377858772774811194067071299991160036898970838993789965454445215851773872990029511389142309033251362731420288448641751318438000108536784935358398257409426543290113118770096421064249886787203357317961550207802718822170904107338173970258089508741844768759934119197655256438141169076782581491153780249634923029885987159754440522730135626198724999777052738269782535149396596842180978639933204848697622411164813699435659892078147205319451829816544605726795597030998526229834458597542120080151504768404862971579323553637579655951630594975946202283122932379955900879700918876559460164049101094420047193454902293785774846041515068548202246814881795812877706443143118335354659775622802608279828957428113078082216092470261849234613078607784255944779372770989673598349691017867588968689529797356730617244684691834367720555049087325564749546193830565678698776616527402941863153331710166054150185748866690089853977044832574341857512681010454811507668680710836333601329560167558989798697926115931285128090352000151820728946855625241121128732428096277851870177404245383899549814170429734546898955548816611086909024430069004057331547554419713816399635719717871286854505462588143024088484613579736062466146661721266015269600006054649446469252171746596940128603060085171877538021650049455999439906131568233879402622747597799157786566547160011718315705346836920184875065628796804254368492161526352345340162090208836933744054050932023894574475971619230257439477502526997579614307556222719988938768568003608784180199529640935565431445204953917527734322185014714397462470511637521767217693171325481549897933080168879313864954271162253742583300496461698255974306332391604025167874725231473164845894856331746366523832316772153661064605272303164358797118978443618420899399731174510678628839940778060326685724708602638915355748677913223914571631172069106577732085369580471782456021246571713921623222293124898119888592020466618166802006893721260468968538985484414552220184226028593434797790763511277336584953891505726876999729016667437157307680787551357671725993806035182963758263665006346875454773987298409416972258156951215879354652760252409146913586485477863599437212953408574108059345108676754328664369662088467663863970021640659764112816505170090488063626825550261226156357322207479120926578742781378673870343976055539909541287292245680853942431636638611843734015728554302226848147157467553299256566998595126715015373108835700795537728241973832124708960767571808516827714264960347122226860918393868871236737247157110884253400008799655881066599894188738941751541071838882202816231831624189016223273732333589559372091508511696489598206437369280572061436065645024610904936471983103662207524580082291092466807808359997680254041610100848099174248218498915852898080212735669695112041465458793207477626032749748376873215745497451657662583843005175472053306257055713619966766723400624345363976497021229908750477258923884818847643991514297403642939857540272057909693490283010653968350946066338279867597659081287054436459062456793557237388281747474584816640393019620605377692491303557920470323448173438416175820103276771001061868311592350568765230986506447583569448073438246423564130973907094585557855644497855367040793398771432440709255375035792108977836078532790532911671074563280386119504190312281343112076123997291258655216436770908952001002241224415889120951494948667732081669686042748953103535294711601668693208383719767821473829409212336663069072551366145947572264201024099848683102108505161691136898873574616989952431700741568421574530875256867650459872485253144541170347688474016902577028497236998486870385076557212048696955222604912721655595579547341480426653521488632096992111317349332450441856177820270641559596748341973050362868729439910918213976832944422545084620870555700110364212984286162375066946297799044946122410449359263465452718351325811114768398300933048247063486557151288090630055835213821338072002041731718458479110008903665887750406579783348761229198415579057413180824034716534013298853446545078180385639517202696987772380277155397501249508602772932181577492829517293174009816466663213410903799568912333391628491978555515855662273256229581511982952563773198105687600947356804661767864503130376465437493049131078073357255863391027461315921387229549218041771421273115149278764817569679949667284721099296810108997420093800327335390609505888033224906619132618083537529931502970335317780844138236756593595960774279699105008512470797707056082293945510546181043949011938983669364195735910632470571940772748892029018030990126894289625287715389350316509122355188464952850290972937297077040083289161406483929173160378758597552516618940901544324516405462354800060381438454099924756344834028730891426295883790625618867101019950347665365908168893095229818793860742990729235666149984010019646849757388369559266199476589789686699049730596376112755444845366133058651988843646017992196856188183801068330033029817131639953757242236433770336934834157027156303371312866303495416065495319606612041984603306484020883053899434471024421949438789733042638238124535163306727348685394376263682266195069281185863135108760648635071361436038387290777956705004191098749143566707906758546750940187628459173080927101681429226918905418187846157101697419739571700659342202331990324013064607981952435523822127773001378905462025794950033245937048861374712769883785565661563704582837330197452382645954443579996927376446855094410988091391811518438076256845227905276912156265586706930243650073334346328570509755134336416885772076787976382689337875204477836894407059580215842116851559630307938148979626857623132987610461846498650143307062683880382943352650349449727971643124331038970529815799162527284137019386470652716854611188513491813135920802586656423767894398924886149606524025703939247723707769106803073412946429199588884594578824522160085998673322010033065243305113613643225841068858538097236731350599224352013583028422102258157006479173327214407053177513158039282944718119038889975260411114463056542129957863268797023060474998113966024633017459808191655276500690482039201222908472897686789561103630045096654056174196158345724088255495589897344594206388645855012612090007034139101675619456354321736817305852287700662721203658603956177741611674317079022511689946268988003802800064437001618463626550887902866813460231758381398598430827931916054765053242996914034684439873774676645365399721580659923825857678854975020844535232054801226589431781672786849805174887354347695800177442177480176496154669574018235729330900970841315006281929258971188081360705533111406679503140675806682442632368461430160520447781791055511616619633735140439542492728616460462550935267033977423894296493543085922981328641708285877998957944273021928953722968628389514005065662067515600425641235625825222858214716881909185883335493017923379934629684491492226373699559866655069773719178998008076141479026730913736946835486045160074762705731180072982729921034608888734787517485940380612601135245848411693144691067964696389775009108482295843122394693502006632304637784371319641620164805295763651497251727249050053768065812810578855128217141918790106125327329655309810893579148159072742799428818579454892944937236880446176601640795090090983256257988748102066859797174914091296474141578754910840806075271355715812542422951417703551331994299167787211571535505727780226800726909984066844184244076924387301908859859963580384492142910440185105308317623717696697579665714272200810161079447311358279894678314195892432491365231959997363988765563914971099128602399669843754834461840240207922563090169609607885856285927062155935821864436661351344096854015588347836652143392344278179949862906812671738462769248427549788552440292920460754975851652453699700002323050986782789847616887677137171863083053925174445192898741191217088359315426974975782341102979238340449349592933272398347926326926587148299916424094383089982872361330446453890224913124551362022356401641901287238555873762352574211908962854725687429219141327600970343631038138730613271055812916079954796996883185537368617806017598404515637713140328320916186189481456771872984362951217047038972702925908672951737586818089342687887825181376012885763342703591185232339848126754454526186818945071192486844155437457654219743589815233655796465909628043127531079547814698747491993812039455618096861386653498518019521634391413572226114508763769588418819693264759426838430831129620211865649256727101634532902937419729521219958582366279264558395905294542774638117917727085737905582987775348131124583850508441766632720121893770140417751374373137877690965589694314473504001724222817393172769861301102251967529784480815973001760116133702288846143005065661419602890577770986665373885771527479725475652927268656114981801986795966037598372008863870496206121182076824029688943504022495949891784455832695973885640339662545001053247937534307878749261366660581370800331361854572892381605730674440254886482184499250250938754881418066199447681341577372687596652874676941957510346381344315345953963407526320358403394600562920200288008549038225794564652530701877633421929098974272776040532046733245619471026745501553745367568363181474320976402866640675756050605458085568526847655147200434201386322485510923561947027049722041301076106646568188996225405641412345343321357667687286538312232650842072695815318311859096187827104462448243282838204463754483278075330844679831950537018643522190162189056404340675071723790574680551136435003950030801143206432225856543677982401085539082335978363075794578041232565080607398625778805041443448524495561642751342324516501967319027896081662554639434554785324850907359553766578282153406658760225702804942809879391260235734582835244768921457979961183112027520284735374023406513011250611079588349464251084458283747124410242184843239374631663604767473909107214237832966443013938935516918531533361564543720405991432057856890628004121577166803261321675395259597640708090078935762519914109732203479195250723439030904466351869966955416930074292868160579237337120655702283246319641568407531446821901702810098723294164931427763262689379676707572015267967836157395104006728993592247046924918312739772448220488363784739030539967172958308807916529075653774409177040036216261486589888075819852119657699593313733994545240691545232567600560247025536683839327763814210791587762304394742570529480270790027879968068371107305978822579112094305447867158942936806748001999492772535946097635445536712817553997438222676108764210473433124840384557632493880515050695384827814849520006790518453632988951639083524503276254713073661935116871536411111875715775566930230642108391368868376501015157990216561184923996023263051836641376435218155712888379884463306789236950003979053486477266330773832431286694276773094889304954301486636148988266881484234948188579772767362966704612614251316043653394976462511352900489699335130401153326553282779029065430884829679686604219880450870272233200443429358267062385449557280543372391323904577365150109150024460787089628140005204093670021547135458409433160828415184157356788949271228234679447196308073247684901402560261830947726881567701056957952611777729591027930981741118610168188189897056286350025166461508036286109780740393790498678418742838756689357890647772164694586480956464830427666086158821839823748186415212637746046449601050586214627738444312821812665473414284403381419571693834796895059642539486284207489154345557212474963601919969574006161582609463663465933797860471592650803925736411702250732941558515115394113766703873072399634060536524577488092811880871079166831758407914221067877910535588082901861686397853686320878128126261904879928054568738559641236845052561394697846970249184293579258432974320059250050735056317698214850839770955749484207470735235563203742729138761017219135574382292273856402951109731546416931566939444380515741337535106568154085837455568942871342867693607923346345311360531815093222794975937479538756514240779723196714276713840397421051401175263454237258802761461621281868847652673821821970081611484950681875351285854917849652835549193409087075272023615679143109053429882130353980900064263544139948586360862511277180993690291374310056242132926083715234933347487583518406168300328567014706537502652354344167987933995291243121992200731837890482426214906090343252677910426485428263874189829335469703322431425214134701699834196149983965938947202031017268467923001965350176979788011049028049379768443796817542839959494916692773560304241082448434089567359212438434274094730284858107310377530445239049857447563226993129393163025537942953923149238172848117489932272859040992251043468379490013200044930014282430890328323136268196435721562526047780316313592864438655321937888789251766808232840307117903090440631386649398108644520536872801555486714841039276360357667330032456171555292207798412516746214310348933022002658495046404537434486707048280389466979135512714433934259412195422442855247801765869387332776008518817394648298221914774596912256283431402625417030958469446691558952997462869696841705145645015000384076218687547320961722136776176028003668111269233820446786444427112866042321046436157812321291064440085214499834514486855758260729465912352527182123720689558214113619489336558072237862801760081695983088469919885286546550112411011864947772580990888706487038216630714987216780276158404293229092897763733382427178508260880548171697741434027056773102835113662340858369042855185605004573302968776406176832907091296574623196836857127146924209563150496081970593581331652653346611138849871227754266250640322162591888108738022394712516439510078056522873614355263699277000532471707762371880970529561626107470352336427677085237815476701495515656438931720073134404536626233693125486359990192737992801488191352081854748748448218252731214924247103695083774572401048342940770793015527804983296157320272738753359979067451788246857176475477949312943812913596666415751240351350156398113929473891792146857231898239065831653834413602939769508686395486747439387759862887321914511016901725162889610710447213167334665994303013845621880996004457156603466521486122017106629043197710587939009444791520219746259657767864210795337460355757213774933624613243851612525173885299112285993510672435030063118396021612029909922610341376191671711630914236438530406938737712104319891894665762439221934908990698924022205985438708353898820150738963973724039135413403647152960121262700511223116136656281264188707693226702551340832825664750702108006672090275678931537254556302538556179094635116105734987822733636117068890783840004325053636492607570357467101418998915411465604627835290063094164656807077677059905521013550601823991268873894715277302022097320768134177666986859422294785841662179617298680658303907552119197995879303624841572391128833926125113816337125274681379250876820183023232685277684660371979143440287656354714762006545337597548792429454975347275465145549489884101428177495979448768186681690968684101321292268081624583508204567098662149466643768156152268311761094980917494734835807343926761230914492744843202191749651500136857157336649118021045820144488779274504650387950223786637169873380501992920055216220587931036334963359275176262493622234704950458233682774289784336464780616677848972406571745429808125757901360565292289191702712016835732204439891862127117284487865908662152472475846797269338556852148233322518025404707818583669505582798543889015939910142429125016388917589974193466564887772456320234740973876635826062657619579380693498804265780958804196591628043451181914998077062890159914978714865899210240351455843276156454510180206972993890598398625262457528883684810885100858035803961867127603892682335920497058893268023043175879281507430276656666242466726608542151436375767413253381132092824509188675813402534722507762728229259441874261332725351320918127847972037156128625969285816170237833218543550217801806808539111964378746765179615977262275803616501319623897656859800025761869628645743353038505189097767770895752697079694511892259801652744901758110014450636939843098364481297502316426835738479278580239587033183162323957691152510591634265847560601885709273001880628871360224548481940015238277254088390032914757285597501143043221089040351772330293229829083074565698836630289556326743874098086551893681930652461096328786793601443366106965410229076850074942593377642949048826842178149619633982538600174936442365226471106478142963657593624221086070278029928638801442662450835658401189399076531201218733938119935319276149560648558556376549414051441883076554469846161106358930924256483539628971150845279423146275065146305253276010023978616796648330620486950863841476668628630689629041474567277317707448346172288061377715954968466057741297587170283591342710652919673235499133419642805858845591040661260549992945400799841988988088578490987114744108552792342876786776029287373578347739606026421741726371128965457760394099889585861207550851763123470955870077463567705611492796578611911094427884315112897185178931174991471124840247127250783298338099198816142119839498494204855123355080640950138755229089411977218873992601464804396981436282288802973670017666041041326935775282871016630336852626827411015406974944207914246534643438253877471404377447122769789458918232473200413085274468875836258527140683761160753594737431496787250239142830581898664931152482352926798632766450214900279986871872486426518888653259660792371671695865999706013203078011097431948802357211057593890168703304618195952654783536387398770094134690966792546951076741939019555798620185116628579635260409547480884129555258921628150051179278146778040444714968073791462226801007553033411422211995990997124668317008126460162782863963429344570943076764308948805677354530264208345552501674732648725536795076906848137283398054198166730128076026433314601906113775696266685323797263715335668304563432655731480578776527705739190215300240878817050187141576605790187515016410706664995156009591623910838009213012685550401530023805219148802045942455313820151872137835961086625232857289031381581770415166146797706451299519813927034415170031388558327117721487706088552842216240980443365376903481634775000403598455296581010721958775152621202524838363515748990044632898432158498710804153472578235466697307385548608146394957012823675914532150628730797597045213906122058768788945893200996516833486710405463274133262145257447543427582995667547377646075936234347670007275684267774969145792058970607225116145891982858254409973159944895217272998787860965876393596928091874016771113914031308513065878923934723435511545351008305994669349220217071097722881317900375710562741783609481196008083430138543444368722700133152254373656205171401401533250806322218097298522500563289467470698749658939765566957166953379689673936776090492908907516250663107087828224233500282085782464370986788057585330969742542696862482826893480966947825956607945675707479928265821055334554785373999511027735869963398653159818275097834192408496703249098097212491848113892769390455308063311540819590526925814193428946540463664905512865433457120639468064867007756078611213365683666082641516214850983071692313774219432478152039324492763773573262800926203942434258564067495568486920841436847410526058652602340343861124866407658229938002693073681160713096886035001043486600096382461607696726205973830601030399491873700394704037322347389865971718201804723877714474596559457985028431540168971941493910755872014806887704915155073126977400836278804059967467571049264077686782939027051645399807384137479708853398305613317464675619360410903011514614585137481750722079636946427501899257372724991387097483099656492636242136668180277507646690042453016729786044437293538841711214415026334962259396740572767283127503856110313405908335696394704779750778520146339075716013650418599999661761728731507605039301890111449023858825831649297480319713368718743438671070857482995786813943216113385351727591131888571014580351939773570338694482255081597001937632124819180601437074650470712873815885447701394542205546216519779361771288523303815763009470790073940306593294479103736271096826917700579360884455402575647047809177625804944067777488530863830576200833118624866460753709328105765755923663998905055542956915610433021289168923190511440565149688606787189050337710966612049076807686553625735202889992701895918773658348558956423605833093625962292930905298434241591304402730242325782645187014255915503650361645614905670827112947596636455811577759704507659546413413122905661159271590766203570154768895970316821564501389401456426499814923177910801186666776850717729865635815552309138474287380156418927231581068379447872108079461150197195371534126406403308567357980040949920353882516218971322311007599025711216624635754954553506616661869563468473159934934592834899189209695539598521573445811109378344379144883418086946685089465359867766150459672167370106869954386713948397909514164219734499255128092802969289329161737276339829583015456870216514897268641998812777557573618179092201237610048716519316956617690788133539282956456221603905414465704263303620406344027571718375322728888247979743549967896481001907403310823330768649472320050693903789202785656389311069154459210152930723142794936781035121033871428715768483716685723414565930243806064956134468081583715594365016944765192723956244119766320518391125174155518540622070142884079504280485352562499597988496010199342857817464618475927870542718402508706156940244343280547633301874733532655509243317103119219538402683328180807530049694781046455060836863460190118022356116844527015297717770750221226902156415539011168245462691749815914652241714254011912018594502323707817240970401697865405387542928610037078008730831270178527662405667523163537276067765595262046544634596798443597938964747503802588791768423498348921095141849953040771978619722664445397513114518549403154912537377477236119223846248885189078962516356506240122490981595571956886570555268812164639909764845153668810605314586973325818122434004830510058206915375501815265066137856477758538510719951316181605575988967464132919392668130156779957141833645054752637818984366775137005951011564385424244346764665595566987651142628340960202195598537331567184515374836471588376298402708869028822315617008368681269702344995311505251479316877315963085426544043882784962393215227747655711608191759291940692882940035271031351121557455411047194161075442638085409224711208156188856698563967129583876408809268392425302257920604655780212719377910742341760189812912444469710164919468220592263908626372142600253251043886766758576276436735322265114814113835254745344348022507300619900274074243670297308905651903163766405369715009698126561195444344604470304208220249149430072705082566684267713941870241138296041285506417502771090796928951171413552129132463501132807991516323435050277535851149174232637317462176760016131241352127654089013323351769793770288901831952248902407308443610005559966270200237376170749731187156094555113076698915780671223384695159935997501295493672842316341665779646436643863416493525745744891807327903506492878100507701874073075938295431210514599899439393652436820442668087587570449732677420945392553979025565691022394006219922377174652030681272236367276921925471647664703014475938866313912305228985469986240158078637268012351951690532613294817176724244620623988115848733711031696051380593314299022536999825369522984583673485398589786139525335069081968429350928272898418768369539059314831961308445859171295771267406795544770395426322342261860015650799093880037265680134351924241888635548556602271303642415297287137465546054378415267145378742266868366682709774154201275656804741805494610294531268558039383945207408897648186950942859816468337383285152623248905198013447063944556076533001221069756430577859113854310199561999522333785578481211577212685381197307335897631882590023787167708894926543224913169851086956026636060891221133206088022977947029567687766964236481592423926611830895883602232003638942549775928240820508751239674466410898824213302094503734108303206931469444681848184088835167214014410779334334666391196930972387248396191259175419248268595599802494092673748454497546526540861092718431000267335376996511482912384264390976546607036848553382005782403490636891276619175446221382691275482069691813493553119389648572657559927061917216615205472029070066998965912620450334502939115507169831544638220536364254415333916772023380006893370360821567367700629148181336836667357259417605228079616042975817877415363542298931285066184520624924927011098093666201887826277138143441201517735793514760493521167849408236110017760786233597332843124713883682046021062745625936635010213345944836359552119773802911833799582436448214173455699034734163159806178347276709536214483245889468313268638736433305511637494795754332927276354674982244399391664722777410555586144261534971490999643778110735431945755363665002360505759472072358365238910921102562422167830251314020861650058135950635347942343438440004406617468121306308865392934739454252365909298835882116852447489605649092463055707666030939267651275185429314788079757853565937800782067185671237855445506594542918534740067094694934622787892203005529422847631833670529993143294362684731702066614659372861873952718574911205913743448474797165842455529709381649173974362667551840541389307242280347075979476964886296568262293253989763330542380601275039435449224488464398771093545348956424908140468408068229696777130725457285757294314015201346284423686177661189517288629390233427998687383622943507494183156202185975976060721997104553569890101941568615096280800322535171750611029137897746871923592140932752793502119600629777091442860460314531218145048176840496050644168801831968554200840041011062582778707989238772661118463381700993945653697519233861088413366349962077357238034576581051694249570358222335320022610246788389291848760507183991759371598087005885971630611207562335370661152843700482194511724145630154761739593295613258032455102238824403988146474553670897242045693506494074452553281077679720964886407314906395620347021860923797431829440048289795036781422431671919547000414215752470695402652800361640015930699752812254688610288004387314742794010276244449177462763699667754395593867339096761434195561128660105148298892583321866566217244425327054343704434881439347287341835532606146959368705136325930476854107064161395547923749721384701685598879303906517723600675166900369330217697650919572025596667932579342217510470004917735088149709391936736573279359149897461026054335551597145098827361487837895759436738216006643645930033999903571164250726599223694242979770955904510337153289683047562702640401427836792456046749346320930286129802930106090044437078442718468379682775567373882608061222028454322616517938104993718467461089952393711336373233653890058744049317984615187835085553404651288584774217265110940854223193561403047173536192696953407109644326971774013658687064128666960963872674468454203342282123939497078965860804375646743441138040954339468737096020982782282911093796327146971347810146999533037170192392520064462485402020420136087729353882436573959442754592866953004429141327739592605894711532976978553885800204258985780137906074327762461567218508097373047154319111988682752008732050946395317364135436031975281560502882446148974190782637778809384505250685622561377635935982656139240808286402633732756411845651638572179242238514515521439457852209415274001667980435648968094070618032271040144675040459808803232093606224972731387214983816619327923294306989233890457625601763798125716388855222991470118280092599402523242808779493573992656849977549434746032612070241420651414266228385579361865513709166552473958076445988457125703696523707427397464570052297635483471661072352796221737849489100818607453872280506297943031652168282971526461858406756732152526837532406516605833180656395244626128374151154290300997733298491386556066019678852761538060830117860149171580144936312097392915272372451471253941874144064920302739737297596189675253614778786898059767344175089791357183300191746559623807362207071916652366730252492453679099125952684343979979428163895986557092944236981371630800801822504577306044061756734723586688366990135469277942487157064913178776168250979843184552572395721294237393861472023414833592096682871224986864684695085185184714020041148300661737575874582895592662404172513349687303604674412300273832259903632146298633092951419877436232519159208824096177363559915952638460446101338550160573117157706005375471860850895675858497189282847380852804608559571475077714376077040503278314849290786930635592656648151747146145268581961425181048015010342247817562926712249254657345313332435839428918085764330186496280143227580335405321385231758103616364790178209352229975026388519831013555553676639143122475602374509826139766304932011090227481629964310191850408640792553558388109534760900041247335586377029848721621690108097609356404901466505211071896126377190417157355581798579798475334250175319732687845231480902251630870390800368367647411083428762532588556944443810526238645205360840194106318489916712767567533051438817626766385704633075011810702771737490177083881303887958330778473647626326127519205539251405224677668218958251377767866984226614981306137572698482749413131304199558800616437534178977788234028175597145685698464421833751313003127869063102675844934335262333168066141268572966297064817449767235324148144206258181108784943969198271076429623088775728821616566418822680358618954063781030783830462370494211673535276239891753579554551712008219661156350752176936994308575351156048288960050030818516684910096292370047669822036285918365870224130795862117837924015350558867784535191228817777808428966464000887725215022728541017021156546225927718421537723574511858594047465755182375664426817620277931783991424263112042619253937914322497742037416888160155559326489043482868962072706048626284497978500452058793603740531591116059945082188303054030399078842691649757888552815868274866315698046126586506018020641067786196597019551394441340066283923012215125298074369878574895561628786158365908719797938651049933817912370426303097089634488818608360452921755964015613318163307667842614747923061232264341692550841270881448855488385597108494994704244595012983863068120634708786072107610616967291433567522223820845269755769137722786279888844712716169049873210306673720589994756431532044351392745108102833156901552474739419626824843015032267583301613000866088585799181033553518169185407833298628232976349273573922518087552320685814053424306022253269217333126005888703164391571213918057689925537092858417635504037061321262901863248673648188194866285339987170368812677507332261001361806884222868398217908708599714318806723855510725080834325332343508071812303782392653809475618880070622772777406369925952412998192572340037695544227848143034623700096614276304901978081914594271601746563126682826739433340954893234829954408004921258153459797503009745244630537162495622480912745840416273950904683864860106064046900294086999204741675597706372633784387269293986082449236829099088118810471034417387983199658061292636425803959202462475207367734399277012667268028612185416649062632645392777617778943592662554148598427480569078657897860298478982485047755540112617551925035985392312991198473561743647924079075769237514869402611765363605115911054562529647919387938152848554176059748863335661699300093763977912031904721557397725352271989503433999511555946549737134416754141268656227555519815686346673726547889075545239619919729275516909954048388951286547125693888912180028423419385178338707475831871387345785455563694365708205100000072845302685167536933748586193159838735159511704349566111237141080263820263689910268271870747765511784234762839428490670191645606099015527834021564852525051526505540504174572933007839894162805827857609695171749633785428392959143082760841851545425070585998296294368482472077305130112601899656219336765313065969914322497732192455146882430585743603804349969578116499403490708212021433279041294197484968821363184868628321640387786155100507247470610936398971540711204281472258661387350419286363647315490084428570836784063678837240535902498236490327456176794632835367436886768583513019010595727268420850259266056186041856166466217621371676274682833626956202194055313188629211966637083135496418737466469390950266636600027243808450634999496595101698263282850086579366532102306187468504163020853752256411598659199189077972554206070201999459904524658305168260659303736067943013287541637532984762834733682859885421373630599314472012844334262110123078484762668818825034016826806207034347822105094002492100737638383296128710560934135231592426618305005590751482132597506208022081987761134634290328831204915496057716380019993662301611830464258007878463424021090087646972051416741454837803422776264233091062392480472611227646250259591575133065800042828598055972380944155502355269448629738397858562934764463832971112285719632816025609807864501315333991307031508259471000608458393951671533239361802223028124982749263275648102251513769145399901468887080939935320045178329382180259386739251953942662145879551909974506396829076717472982796118751462059811093255259355490800697227920598402507340028952541015267119962202278280823487263730717763559154430614005715179644570353498863809171137239802539053293297647296974377753959207123138892109461032250340625627189304401598243340583153832683526321461198509998818830800540069303556612222290552664461508913767407788663191085867356696003567328704987258841737302035908271382314948403146407260548311552980195567690199577488653948125408700481017688950899941618446680359461191434420304749076598055336505146434958392993106564842694052816488277167883080387555855787580278811389971313346702196359637107879707843854713061946776182530259083713962590124536400695187230107788640235576023289601533172056584176827516167101758223781597325158303725146207335922676557870908709436711956406847572037740881037896698151371076888507129533212685672852831049623477348395656200616179671421517115420704380411891521263282327492039753233614201413245916406613339085636803730785533838620508839435759604810392590319148582934631617266768465803806417431268156699705561392407994424080805397002253576131825317036954958251289652699823331390839320242691214913515358271621302756641805396294865800871479404792665244237871179645488777182830230214879698720735801907641326425240335931896072618631074066377828393660806784619412527944577647776955319949651452412938734473178957121981227284242219984819206420555987530652440082766419609785227887378478773742597212192193332171366492766157876747044953077243805170480003891507267128710939594225442543210575543141409615119285145567468009448771428016590797117077670314542771793202320678320617939022537777307509697210352384263848068613419674420067741240009773906693117534202607477831001226047315796120977235901119022722254621350847369561502672271383792190932896568993735481857457361527605092249238422225012621200154896444661748481053639766104889568843101778404002704428122395846279811769070369388237918587048266309997287566818199520953538833964075361017628422326913388707816376551458141725323430711216738824756836707808570667284338843977625725971492930022497205356434698978888186196209041911835550399848897350522992519116603738665447330587234032433166299084503597894899956534513769642718717998419098097986157822896199954495539000857547532627722323821454255046790787417592293398988530256912831921948332615526118969728220788142048080518746908797867433304661535435108033066593884909651734144434149895166899279964152283600431621003963939329450503136746430052233149404730698044839886478933981919486691406188796529355450042201688600729316457850462555981990902179276854502353464922610303335773954706649250612216122546742545990592126366797841507487883218043729619225685427880908279551503618641751595915784521962092169853550365848419606097755252223140249716332444496528499655467466355494768000940302043916859847427395228437922726470639962405241677758789164213688936944612257255019001349345418328225363887647655543902054863066321585231553100611953085216567520176760230230904562453208720894336927002436449893094953565219264524710268542972069075489109375731773902813165867043416603350275340531120330875705840676370571100879873122001635100125533411182391270584622671485367031628570901717973207859094021866586884063067794195674865580256514290514661506600948181259987276926771637821401342952403923823942286686775151386520548702096897611501910915524436945363571344721752361271011430172122865453746877343086359932314626396691975201302522099561071996106043067601137515013793926955655529048511828198184754725209833810703461169125049259259656185415056575946576591056053388538384980155995714075552964709988066443928285800236537538458848618328102771914809936923728571578343262876264211923894158949272439412828844469594547253978112372839299897628837661120450580229488618254851784626362424956903272957716144342378302327326554571826655931891605331143838218745015121366051508556754692181198186787993235690706870418444825845797312939358452866637058005250850736382563891520511443127607051157380082489377114871187511653217525786357432849989934111951979970762019592116671414436709630625922709641228577475458007702778057606086253752753362869414776397095204391357113544845736544116646228145997924468983233331298766986058953274826599421807861061083192607912193564099507884747259854964949297150108316590878304462541490151857405831009583656668688592904021155384660002023788136337415867151696659821199478337319706580375857167749562858191968984527701928986931700170381802632007438960675982662098183016392454472553678094009462015570078796525630481044088208120293340564406814733790846023788885874586794676288110320219532207365778602329745386209081801924430411644150740640218849909633587651390569086264597388865738863849990868531680078782793222726006086257387416377196952767872704260423907678511424810670103520905267268443609694358873179838278874653644234120905837318369163891020568325559466940073514547752870559886221322395028374158368611635369691268108748569845163317507054282175733079875413451855377156412437144679396012138051995402881964611291289716573072250191539503296250749005079846209303284321050815768731434488805805555847241237877169938657530497385565799822930856717829392761953905852747640851252719309769287100087109319233950173749774447715384835724700643321855114759882419568600853478585940724909488575380286679578248184678747234207733981646406161047842896650222266071332392250940849472017437697965340632361406079531181607495030075432136337535412856265257916620186571215182864189176739439215279381774663531985909579306846878297202272149558922974866932528566749412739006262350532711356858463696751195303039943043123936920444553471373593794283169300157552837189334482903564630351796680495507531405720952307533751238671479696615400488406293231213954816264892657574467786635130071298050114171241612838037143044778140257504162911723342892330110748178088269455011283313731217703271986577526645810274683246293497334884259884701989095761481747661033376845150318281608897043844916689172976076609264081713339048264948521553523092918316986063161391352473265883524461897890597927908638044227656083295462222249301478680592760706791941802297086317616820657104681178511684386298709421903866885013211054909310321563692252571661284826716506376839081329070693301633933852452297479369869016319237402220009249105606356474765719066784915036968146560025457723089386489045995183117445378369060680556724511052262815347661642735409365036534610649645964519105876845848588294558202792047074817903873712607259185348874566551330910946320581510315194474499392370423916476761169886566526948669598760799004367937884000112123142047863402453672447633149908720502076715558625097860297678992168761898945138723945106443879843944716731941275280587423429034601645833681029171538355569850181982627235298834552989432853051074472057592080939552873784214638169949977807297972046052497448580005201073922122736586685756722583385581201531894382457646136270199684577653477140119061003153859650330079523492350579577024695477002981342945494886054245200474150576360432398335377552473916039198497650726415211576890661379812463756551536022045196149513327827457350155383979011794763100986274469089505760478319112250379218359391476484161109019581883512368833348734993624339047083332035291129743112716773140315878047180538504758734210544426680958319254435977577941214859638670336763794527374987209552566966140557486379386976339723014609938173981001315554636132982322794707449074464099585639056610029865913686417788304929499897833194494507342133017673922860929504906067594901414571433448584671588517011198257015853381372640434916935210503463983176672958179047562337969222721283006222837409190057189302552449982062076003940203479692533702537640028771451329130984614319050251603481652975742167125115867453361027201554351878550082644025962321189135049214433365055111641992522745763754734208561271191086583581627180997936106877493322014108704492322857328708542998804920812397247651598884353224711258586962682088642204501951137035816438884130826754182644830013599184671755585797263371465938799411748866303897177633942347561400596754175204373160839605007640812856215587285789486058205905155642899341673751500470136318067422777073405480230422193082870239471044285051347324022938191370699294830530689606652934049419255860144462586088523693503256425974196729780568482089539209060396726348831743521075065003528310633616673884611998747978607963339361473665500209970632335087497433894397813155095565122055954003148981790401668749289512746878784037540204935662081801958836728684546231743173978757679919839409868692972613476720329365923504524315614950827013816842258481179697768489441316221771056920255104584125783552652598721308910663152740652180073149200116197106752864732254681453473038560792052473362402528247795435106802281400568372366790374724542259273343124063760426571373673988273449562874778401222299501088342664140557863179214792949155386073297339947985982777122562469626201468973686585673472844852114572872739014046382076677914539330978747202722546028443697064765264153134264900949694652835991809032365163376643864073265621250858244805626064757104800136891674499663195999270930751013383733227232662573576529793948988624696413173787564321310630099205922024228638317874689848365712317900819523137537975407642298990747239220239593226235574713372127989331852158421262100489647110140583923093861644331463562998333925664554305134103649180704214490234146845038891040991807305354256087677916442921319065164905105826082414185510641726787652777337949473554800053566346942715273841505591895616098612402151381655156223936274935079881547928576245258112519931094800662422960638846136228068558754469164284834175069244624896432020296602293534046647602494354296530375838058447725714063761607627139157984537612537034534069442111723466338444007507807763853758152301964815771623810087304954166822216986251585445597292536881487478973702252605621393087634509415826282046325090637170567736032266505953233678051286190610015061188385426027663430841259345329700501329161967329003726164045515707782226492627592163176777708912235333763213274415246538338009734878860714195347288125444007378569925165519324670501161509061408606564806855123517363658906551958215838626386653000341311537672514795422157747677570128049037111489073646963541519684880815257641192112493010182385158914881620566378756397245859355895511627510440757564112011723397789082791461886024765715920973596462183861552322468161103706731260929749695535447566127911143908032923032912818505466880574219425602231140172059988612658163755917014255066201894761129735887193903322069179492725164385283800046983956023051214279177415196796987155696116712517106487745108122374425063930926711337001807829705280059347416958760447200528153294269243607022806034949525955673247648956145345732754157987062497113256187414393674156257153475149668623474430079049419683453421905462393838174702881363074372366508001456952998600354045767461632926897659188097894228458891580074672705488503472986325979370427311980898943237237094607011114479497818015541567226043108090107293823558066202200678386345261315918816108642066166811258283296137644514803712468310360958173822020197136773590967197642715227853011562874951249411562753557389477189414249733053810118540371900641456847508948328939600607893638615001011757401226665158795089481472750883481041811176311094713332147139607950509604341554396757635992426470840934177840206421226385098496688632709731456576968689973112593763156475360514915957513228887936680110974583146621976045494264777316524793364735091854389099374226885770832635844335411738426373558859862612042533243640139125651070650017190205987155923754736707212766084405129824926260035951918727612938039828100850718677516016353258040464159383980671549431898291158452519166675475284863384130074798444428190867471693590471036329528214287238146140044520005843502981988187521911799145378129786134557616459377553884936451040798977454788213769923915843360610851791315210166702663856793165493745506782941572354052574109044277438723601713701112812650174285741725457717162859373853506368530965835578717371335731651732237213530967666586521680323039403473172187314607077079141469028280015100026797662932431410411738134984938323293575361798090479544717830007362187030452452427785949703974419445547221880362316417420392240319414564802948536263452188395639294045798952426443305800303241954398900696051906216268493771104321847274335625184205690496477061916672771760451661150502948841829899617396386121442432840076995431933501795530530356640640831696175867989299144252088461841339069936167970778941958178662196829900110148097325056011871468826909478744517309036705132079641652069258909032121757519690726192454328664408252663611003636734159409149943875268419362486953049503959528233219623527333039683582956759286212532384325672866929709892799191792080510416900288623594619195049960543286480385685318457293246792338242583176738853203171868577030105339551350491458630023081177012854570846776487366642751282021553890157461685923346236053167535356513486386902932776408413516247511358954599669209214108189533747375642557151825201565196463673123842716224297419144635252391191535654821769664900468886388576841242610982677117164282544145943202045066778952032378117960763004192186080154531636563245720863838109690715565347162036864158211504797466727991891479524511192791304209500117807570411725250803558523670863301242709092420804113797077963734750090606371294897499519547830500284192456970237181587784542600055206254174700693987290825651021099119507466619092095789285498450949488394336299186285692207571432485174426984621130908087597454352223150574687805492190325459263289984947725933859940325955286310962455929458874541700306626658017729850709577941063104217134273532907520371953549948772152875033829385139596317676992052831528670700369356061470131669615996434202824668553979460296608966510478305139914528222269660696968113995231598795152820757873135272676864783314543740576899224333049979647888912506005272596295544671934189298207476587038319377582643552255887401112753293643486495121195756524786235762326309559199838758586900555282399444200972614308731890145138538650474242259066704732338277562344780610326364114632847187114523255492699950492112045120450202638697172952185859790068486495734193877074089000388751104542201492058752055902391517877660670120440947890245525389534185917179178040659885176171118114596494636078482581041663494263637107090123736120828709073456721313208712997993136639264851233526829420789711610372331698257449101598020693074814549547997043024390167162763642312413048179326685161590563952652131815842536332861293184641661404161272735473382046251887227256144451139949202886302890743957879544347386466148143012751131005116617110258179970339849780103631994518953334061204224909081466009237218216937520584140414673651353970822398655784156475782638702909313191440208928835600847926834721874975305356505514052002249739708561546785014883316780078071661454276380155348543042318588760339327711334075974720198116261420455024332531765609363906164708425501251839904229863448702524231682744567157833285399210242226700019405057286272773929668409397568267342166357176626110248638695064081295656554633195671491959609079529261372141195434536936753076618849978000084700373400842699321207760167203117259697617213472116447422641156091355280064295034256451846221342241407699897531771216792748879882766782568394892912355562659023021312253244869056643238544348530404471118158140216475244164394471393269639651538738483849231841367880638680198110590306624990585902011235934384572950564313651304502235853378222266368113602073502637029147260195499654359506536684939976424337142761426174840898533241622519380481226153242553234118206962271185669688105198103071729047117267004276195263359394879894247873030446930093400546846301492315124595570881602000685014087844024471501065366258454282548300499523123732104022788905416823237904225031922782201217329088478739503239770613505314553372983487011854126303008311910450310835580848004209350656027342152254165592401267943514137022182572675401379767859612309587697982756206215414146413889128609673396596727426004812495966740053646151715842002426691497329951225086197133190892747811396018080619468668023448905018933082689470916673491189374619100647828100604316093804389373387013799997091596986009564797709548075236690313909186484218266530254436859514030208443154476022128160398660762145019340280816755250752676378501736912022842366335802823022014097626062984692464617348806909406313516792399372145715846382929505780967741531585322090023677004352391538619700162470499255204429151396477163804439886726135838042198381838809490037828114323316373598531869417562767935767898086608487076198496602634977282974105691580393281878905631317231993972365118913804000298512785610204391940417156615786934961336617598275257411916431313990743331561194371360112690991378418617312031661858793578585282252879886028589844711336223352982186318921351337372140456813380367524027253575488105703671470372688807888593854379121424048157684199688531414771884677996731705272392801618971993335756619691027496366265103175465888709437443948216729776943059381095834023820948166330901583154525606405323761169967962323543979340265533433664013995055447850979519314063373423850093611842908558645565097025979928578259376912604544176611344810111700603488938560464511777371420556744911116594702402379323149428860967791605721902735911787381524878411666115778449727842791301525543845311756925346104626054731745516532627636416253696927456267377407599048812664109886460209355871330243397961154318989404889262883023990338046827716367934434562205195609406109931941765479117162374453957261934113238375808388259952783575221131598299360310805914217217064343527657883475390065222579829695950738134848352423254604674794157334279102112716649851725064828827518753603894597451799830837899480420114174423427683458549378809154514886317492972167899556644310642775147455267874498208760415167746343274620536770764390448800374273827952269582241133148536586681806806002115628055949234963166565836289041255767789313067587322667611572061846541110698980671040304694371426998901340442103722190172978359518190570043015606137599217199371571159826738054943596016109846918346863465729401215779299844534659175200130292379703130565163762744498631300365158336431337681065774476010443513183719291362930724944087763705138207457573156335079423663664401811324024163188409832197219757657688213431669060618424840485464512476038932957902555692984608155908935741553567818020143642125301382173605077535535221647917624369122047276993851764159230686528406085072364324338485198314492399791569314967608223601048486890800680257529073830753033728219924419240776962947443539710372477507864036637647051664962534439156436321662237437458479523734190731536754087813209066773593077906526114162700416042416419379934675830740050028091566042347580576236631405093584929790762250673084947405342834905412335969339777398717493002989810305994786354390991439897756888505098839489429267182401294949633670509407279247913080889771862770242229531347076474607959002745718901414340344890061337888807261932718361169860256682027359555696161389896348876774245749892240930739910421859167741413900405200982312703650506101833324038212112565617209990331077966900233822279123992791341336479911916294424022570062171242602869758152040706051755918255887829968422763744861354914843034721014901713905667256856709650683675774089209341223992234556150108234453282999134697690612294750590277629085239558319421949713984631853454747267366353324601926828927926141692995407012859935187129440006883632516713578542815309417488155761472266620694347083307503029040028770840715247430725043356183275140929099012704873444664728356156698980443367770427042280043575523076256523830339603241144812838858659822925765795533066023198637468371850833423420389804305937492561049360905371030017375224309309453093809837241063750442193140005470349932556802641622891550836710434455629894718414691522927105612230359733105841587591917656327751504928999751463581108159946119090321262216864477228871158620438768645444589448993369955616092234758403849622642303662048821251713523316479970118753820955247840246100916453058469834109585558573142115007377708292136868267585997061703378441914547405016185076138580994029806524853416290932850959796271909060172332795357502693093669691522507300920174382134877336344303350269207821438373507150657308115337538221148003675198329940952656420052602120124896122044128677335517773945262716146952300393843025189580788774866410689598369124712682493456284904741006206391524496490252607769781279505372137506169639778946161092628907559313663768709585141505819072782251717393113412275482396974818605489665318353178098832912792392991641305817162583368159935526941065403385904652527357589570876477917983341365847876783026052420102034177309446353576114444765720633097010875244768585856776668418216213234178472196194097863947713903184268756578796148892460525916787826821009803330662649327699479296148311622455418010608322242928197214816085071654000283942391554238329173979065950349711354961916388797354334485720018401076534055738119423804875034139705234367004621862116749583128984186741490729338194785724080276615145509174286834543605149031884773942831838581864310008490049503771647789757244233990496949578647565560664567278033774804386151495736925079881096085823175354829611466277335540182764778659703537288163737219280039480721204583796731070873807141040890218142403345113919045776591157060212610359053637337048580178557207366950632492284020787772623556622398036578504428363613722874317614567405400346383005949063814807760332313377439649925878311279475921053576112496407600029718936039919873216276383437886206364881974968317964640668412228891023867609248126529897487936066437283306693398887772449655876839352546933289332776097048809307218803928981464207403452619724464180965556827572194248609293185337828531529017218952785492087561534987517172370260512339688937180462462917574245906288358748451917260774637176898060534736933610965884050881404051619708400732868525686805142871458422526893130571222506086772629795495708800130791814404968825507078127677368794046331177233665699366043551298818409176381454324884945692585828733204415745401373785722406311835789961931109008566690833093001546013632259605018113475406815956249676780491109011497941601722098937017595534127324957785599074258449509348274274735983389893361451049271842378394157677263844686869655666759614443290819808132168058156955037661198381017042022240018675625513924560266644680183427627900421166691139939280872750901614063557983929178491325838493541529839045365229498880125052821189623151202792935630375811498558862439325888566412606823670030579289259420862382914696283355752456714619716910422180698389337187737939489813448096524742990770566368576929728974543514895241993306333292000722698347387037286767743761059496139088427883877227481334895367107119528339879615248705487672883994703641784434807895163121633979777396325261751840511931125011708283960029210517110216738754654646622102676881017821337095038712811065521419285771705544936364904222179350197097026840693540550005817251114519280180828444718321845110026241958077493451399511140615749613885863882464429046886707409238387642459999249473253883108366251480619842070874247871197102256696944860092651042864811795099914257778291601494179203807825117783935465462783568712042289550273728893043321845317163481681817763009754889101777623295312309556780986076492878708207415784649647272614788406223497062557959076256479083748190857893737709030675026457300126521161534663765475198879965050370705599738418674751378424121969477838457928141079117282385661193553361905907733527881394804254203443985585343056600164695289485290866957542693840439462037409759650433093980102842158360201257996249451174841132768698098314940364740667681561648230819974902526611022935618421884766697874720061824054825615352690416334325683946806041607137772895092354929550626975109933677163961537312124123701010912873066227751301833929219576618731541654102492869798807694230937612674282306057868879398454805348392710641556577139848806264445716329215891539784049449708521827561129156898286888381204079589802127320613765296232786773206201953366563859000353884462856690456094357968056776433919661144032105640435002062670671816204607216903415771751008425026001630147832154845299124928403051056101850124688075273493056899470338850809065398503834152179136005481221392931836077292768003886310775254311147275435842001402102721509495606544319306275261473665264434195933975537482300340841982561863291193841329093417924923535162145286580778914762335005050228798964663257576921348650102499561217656120067747588213497192191221784852952196720666078251015364148593544398021317042559030650352809390103594406989164586066547157813434715330052295953609684689325871310006330695237930891141533562407260278696004009450902780931220259033468717356127848905456785918541257837478418520970206995490457730258810161336997512249859849835295796896922306109566161375638805210883741968017516742771558294802105139001849536545450540103342389418615300396077454533375010896739897793994821043968181007655278261233950517616280308426987007685145934155206413140705132203500634663197058420559494279734689078891327693814783521602320917266663601159657403521457050521108320895901332588853429219959198094555664811232124406048457013475648387492780803044160479930787086854316706933896571404166813210961661854713974164618264381970100589166519678895518433610284393874674009757519289880187439216374310611482170664818407426211844451360724704930077445900154324915028722679985346502686282913040121270973016946431123711805029203350542311680975091542637497721679151175224716103498078705236895175403719730185330551102267905271322772385603517726424823598193144822395574631506015742926986919258636947086131418351950379047682640254421374979331320662541429507650042812388290490009616502508245375776869542194170784442727142178846975437619096866999978051497910200787653828564958802372835328947349124503577834571333838808155178104456621056731499595633543058909198707533172523369410487812833452761513011846961942155981840780644964718839285491280421711239404012909020780530326953872048274134114396064611522019059590499779871732948302710880908913759708609135739690984876846821495010356686088795750147756632451406141700583347442757109008685844876901818386578514696363590529182570567697650295085421463233552232607376700493488705246752850278456154785037186772218138014942704614134604606903645104786586847940114809442803937405057920189620270158423814838801035847999254124961969950361769948211742571584414807806177122512492828160357854559818750213772532186890927290396979265285791904976761800300657020949908782113411600367637834444229174473209726288030974796924231411015423730843677103752147132145782179779738454513692974966400404277401029263945785220582734173196921410825762769436096579696369446947919393152876740119021044049849042219238838815934964891226061842282954560142218482140249315623669195941755598617351136904280604476645374156883227975226120406587056347330576707757650967721090818937113521407823673140960405866497638726618215557204100296924603101790077180669704132149570686083874807337258410271607220082053744611750738963103045820396530274773813331318827704243204784061155096916322094396293436720855274587958520696090282312761357407676774865107252239208458673756780239499441490299515307647269282950486054865233125358283123300226232406133469905003691866872052382751241310061607526502565736463571578492063669727600479802702748624278712591031059227711717449541869999824952488093463643457165845455489117661820556448882050650567960648226358404728893948456122383196259410891141486309563875615026597017075425074528667607087181570370690859970918137439561344314393432688486800901361167835923962053202840808876180272690466247498318716694105613082761570316514655059625577528061384857221705880361096475353185508509988584593768159745853895952089340900744319793143457105859149848837100590894324647693651016680611734019037133248766964963399107453632614146388855181651606250195012553726773527838748380202377614063278858041668711635769996843785427755348490721494117435250279834478848191976165461382180741164784938027249767155442013350106249479303916650491626785915355148807499980172451637714523466095476319031507241806594849795702538138558463570513771398686840726929258361326098944422847879010790120093179969861235355489293860833868732327342323258793141834218311252593323477487048486087823991346877236638702843563856069037768573421669488343371723040761485237471238103347467134176312750373519703327484780860243533167710935809740581050563437366335668991474522564963542048549624733635955519418273212063071419826946928557652269949035151837019319111884195317537364852940976045416312907873385469347916085940733367027535449719724939112841382056539333473515465664008811204849624529452298575985013978383597202953527021265732453719738438056356308201424673672697710322236425205607304595104055559748140784788219774628278928938566554584950610908201519516263126557035130307525722066342477722268713269718700107233687433134313958764896305558871150523453753367578893314403300728562367850068390769436051813471828572231656980911595138029988906854634502289541013847351187307692211374205007542719512167602042980448473171670970941403953461057559920429617292283269152791628404582112236079645985964568278489057038196746185389720490246134578678487746802885215797673985932640571041638961767974223296774870326395103747123799650547291233862570728477783544440078271813776050045426775004077603950222717647592971390216669984947766239889315730612711647122041022355557541238957101230150249146165213714621849976581390279338238891359125053043006658899891010999527372641882722721125859269274420891628759611352116476959108312032963511331415952198393159267976902445166485139910822184881254075085946685782229375619415365020967420731791163662130168143673229092202426020916026543690067786817074496705399883430532758005731982075713815186514391991346343260330716969749555264975266779319913945586521867103341949040906337042978429558002547617590667728559554035939510326778165925675636735933197507548927185233375883178132400687620078886360072116106374615322928625848307038452172476507507495753638334639190707835491357529967905154658235776373590325750422887533613948908993481886194495600735323021768978504328594205809491539796877802267005028655838747337180255890016091334984687559912078548114524942822205249805870213874709866231219199983152943321440237376994486841556986579621362655667131304374899380962410623060153456801230079634530080065976814843924289624630563966849581525882878696148782147873991798859078108794584244610731017151287483491001466339329912923051683356266094923225015755062636536346269400494255861748329596517288132507013956512780514982866944103033052326052146931364253964645121902781180835513845357243498910311611511450543973564034791136042518903451919290935476025424455493906620757275584748535146949045324134386377612170053624272970008353787398833279272096770440143878573125224753063488719980119816197052562937281467012463436641530465749118243075566212830665129746427202986500246991947726856848288766314790238573836770471106749324565425308287180084045485228175041539580879339358847486802946641772668458669051624472365028686722311020136817673266308694730867840146548349047896737138717981236501794213663812089410025993852742056344383102690811320601711999377073515609538156827740221451756749931899071147262429392641074316683273567520679344825636730517232074737730541231223898891778851957655578857242977895532334160822568947561995385557166694153216506667161096975801940288022309048648378779911860932031404609065156176171232629340957812693992489897470522781948642772412550082024335939893705189640136834110879462862755900878293187563257619462953797446244858795618566695471815434030533288424518337701507182145517685456261545930640384376935392145893606767608288972105366007804708802692019312863915440253063127178017859971739321470640293330448299665353530681380206004892519432574263667941768448782448109590373610343013749580859251196103550885880983952609600958210488604268242634205343342505681186789615025124091306856643932365392333537270161741630533875278363834257507015512311114784402418196603960443982792072425169616478928881414061736536425353695361988135599101891466368818176276404235229549100078972075045976228479762688363823970129966723628716601858153310191915081622732702169383975415628270309905833430526251594393887664636879772070132169217043188666312339785622309219053694661417313892315133060278709214719566525293315802822810668363642273325042551401950171970479610538324389055878866019193932847672600920826420430906438201335353224683664529957851279291947731563945279378884539327716984982122078200810640916528508176161119785142404089860486445198284188600045652167775393197844663923240825698014927221300716635077444327701947846410014975211201036361036865281770114239851114396769690514154046873540162796438126202766839719305964158612797701119645507388747365649561310741708820319530653571649472025523727525602572401638358761696857819068181116553397811647325729654026540604427548640957698752243537601730691508294340699122125537004037731542229392142570465978211643050386676326008700661148842188211683470291773479073209864000736078653300002313046011224224302183504924956635215298537307204946902937960624940276130451208243232903549684542273188683158422028882940984864689714146346039614049993865342433106542393026580972573020880627014456430886144011025875310195737517475532670874565366503932281010431261051447158852424435502484393471184887215240796591462551907367345419866588653588465981004153829458474434740639422263506938440029437408913203265241723905637889124036288243016930316336679214207688212990320663996996306117682142622124974577138791876990096415899716119251719147533441123207320078224661512728237392476893444696318138543937251749062295893670055775743082877766640587973461668237627789513791877435158292022504306377538112788354743453403211937418644847276035960128116465054289814829646017530281562204784984081809569984769769602357722214082481265784209706624899839982407827673172796455667663744971466548715541659730657159768401853648037071089035969450471855729021677626545910682779306071885265180605477329358562881205524719630178352368954582424132188881664428619653312866508669386941057094337569382639094783402035265227675507101886327956775698522990535138578557130802642017876951019864917408508361978314133397724364348207994050126894168645603128920328252549053289642473296015399606167366059754514773964054874779357103826191418416247061473652381779396009602681099820471257676964993454244859409830802769889989266130563491823463407980430660000095827080633743887726201821220410429335911773921294759362066748194131630082937733357511677637766805323849047446702928166077301621371208766013926849938551435957408817111506411786058028867417852874286854727193640145171323613197501855637343790411621799627310113609943848454541281582962055243601864197268499396464856799573699573861774971453086084875457480024502556314590459009419270515067663064278523082670600697443705377470888412656377491408483415692408323123515229620244157481134257074884882497948496506932420919249591831832807244169594267040142826962272218552667715641089015079389787733299689545693375170939513297445612093247329474842042905444353181947843536375387010019310349274635355408466326462528472266230711110033794846421067879099220006419249862610756448904753951002478994019811478056228096608196965068093266824813995065660268224698616008834075466214182816849339366635808929213713717641169542896200411772062580640872714187091119702878917345279088621174312228738210391140034856913370030374229971161631743940449351755027984756288771820529770107725173986150153561148347406579731602150378609802553106443040424614764373046984135733280913908630479713187487996290063392621470888577936325909050130917354045526562361998135178566050928779588595604210544610119146622388188384368253183508273879178541040084376616313316209713366910637679962468116155842244320239328322245192441956401538482643324151964017216166436418472854260173664685632715032408044927343037840172647870272171415860614406278791293576799398669405540105120481874517429768303573543194179119958066041737240948118525065830536557752801737806753887129193996444525487125644998185857663750686026292005316992589210743904481571227639407321596913940767038553102873743383134342106565102683653123409064835444294487575076797978170174713523255689329930368900867577111003960839872538852824202621124881704129032215821515094821948047401026917928013421259456483932755233045251008307545117021059040130450611511959533469175142196073926299324744057580398026680060687676877501549162488102799349394252111403436225570970564957078106616565152289784137915422407282845928564451738814126243564654349902023749197655988388842981707872046357231356636076244191358601919490052031712160863782030834185997376701615110528513154744455914980649838892532799313799813409963038706319379693353790818214738670463579785062867280780341604622286251630602228897611371856169088783818816022972142366016123020685758254263834502674345769621448973742101400828249046872344202880211179461798950729636922122351961273651229162930126665511417021399220347624939515233201492320223085461300667773244809385130219034725899412383371558944331522540009319333474845305573695774212696270560011727003636984237179772706102832510401327502420001299650207517267392151114281467243423647305640843234274888240024614132721142347210573176950370037675099984965777371333870543035597778165061388679708019655276033303714446721623904971193110872586268039700485275813246098211163076536157300767672649884481516575058811697949906178060052955893374346148468556617786212059062682622173420590130411859940068781950282521183782339793224324986380320343119936679402559481059347327264966931239436746186908124658445357537619061816214889877031531024278323171930437421030046388588046280681780735295445467437839527464298473608244995321552310967480586631244752106443314766758336880253705047611724559834279303323747438787878830603019564104730602477197710962867782117881614815688447653126442142266770316331022219417387635295968258346059423820444147763939028772832910664345377260324065721885472335788111029908765576107658951058084313783004374495103034386389418046000881783725981356038985959454409599405768144057542305544678064633865456503863898835359426487172671577212553148012470594748983006341346426102806109489055250395882984740726505335028591528960823379926706378143233731732545380424559005911804733210168709729962615229705638997043559670484538171166992640656199535491242623386558973809580798929103553706826552249939019918547890349288329888571085918098546385802831594919713939513453598590234974804307263111323079194687196973723862617243909263738254385796437107099233230681869706670932562261681138674223106587993478509064317414542285106923155384315064863788230698058416234160003135769552748814543008932725784384226052620646617172316669275489945126859583514869231987945738678966532478299084972719535727451247674388201685809566155685034781858951450240021499958812952101098897596456794526586399786460586857564573743361637947087183819088246705766724179929737810441249116665231855511328788440656332987026355864005362075360513346279705386299396955631764730281792317651505591359403499795606369633344935452485156740643419585401847664808133029425934616974376785800686257780136590861712622362348475468362725238582008333998897720093117648282706546677697471971267982101123925708290033763980897720995683263049613541335224023009795590952469944064847857114170809369010207442849040952075607475389975722063825603406207084420616479336623028498705441553356963077657031762123523659681974107275235135256496063825658494463800821495759172292023607243182826718885452615977473783237789949841344844779497993554485402624687563295328747453920453648187614359611606306681039879365312495808798656307914031893734420065110651557639711279153947355027914307488951180551809391122173870698207189039198582322853712411115277495026272049671706831356029281575254002361236311244678028809947216588074792503556117846040335019499012244296934819080919069366117848301925016801835737629342040304488991778997039021962307365615392356114806537610822774262853877247404189474136612729698207607833763984394666670055392697431071430157582528493165332061078682717275053958126282115161560112955527424280519212763353549047149326412028353748589533113933180574469268331812509609391434673611569928914940622126209171295656846991075610019022474924092726669079658705142270841704797960093313393477470549146285250162721070755091168326108735316695407489074248234242275536291453530777713309702897895031366450795633920686398207206215229543691040181213485559611470174781546692982198110764039633132438180496028656040854880073015341509325969070239931307247060949208466373823500955447577202309080308929911217680630497035231238338234106505047438485157381342974504664889765015655157846944401940445887917126572020267817784091952032803029755061273971279279492821787457743300254868694968712049724260931974887592401570793155647243308668434106540939638233089748300547857658988365827652415042005875164832547485773656089963136430847215568534654305910138694824009301793041610242654898933460570174735075695336117624393666920239223031878712392089593441528568728566536081475866902703626352977249021171359139664375671827522383003341256448208835432677768957993701683228466776486555283701668724423408473054605210016362737368794876793656582132237248202680017980863475536328520622709016512055587941266022146193932453963590515639044802516101804959515312725694554691540473026244187452324290116720814388119451792457673765231617655970863307118421476761541065234980030265121811454202630426684957448307772501845528417286331283667442367991385801206998779802230208216937502331971464902432878980376108547412249475464208432581763067463290102766816135541105115945301144726109134802364866519218295042143533897488958546928722970868183857265599881811104534458724020774701249401057940105704788397394197264890213152085879804943807401359348265087980807284979381746122066366118965277649484525512189083963419734999253390292709128806463095333991579010875126183256095267828744705702958334412243772124216109498142014834822116843186261073858429712606935279340811850156518823619840068875244744598033008175808209499619586057906650234409168417680644929526024561503090436899848342679658756087385365650453211474572810322180250556982168429894199199173934357182530805800581538108859740511311247190386177773128470581765524925681639320525532415296360312209728986518746443073931934409538299862507637103776593952419160280042895317331660931670240009254481771841686771377905212072154908111742819189622444791721911963097717768323343158532035200045985022521671814023819284406114511871497836334962481031158914809694755096899271872642836898276727500609875613640596501358717987109414899627232929825441359360661373118668994158442932520083215550693278642422256772034988211364340799435488540984252461357783145990481193282042421595081305841852338257128178793953234638387942741938191774245554290871226697178840433726217745168690038256646269046715986687591263565674391764384482065567197042461405176069668575198204059987302751071046459197790216072249289244898678021318002071257188205512482880100777922706506750091449644396330311958504140050888110784746851937268915839886148716781001138204803710437321048802008049778107188032044896232691734552511740522344442908421015364300000770189414281979274739267750968560570976111092308035171502231914367998711827208365172796587509625405376841024625416050973946798691233784321110301822046903176327236270645146622983156257256689117686175476681179944162254415588053757771597903612030270010052259502699333682532881759157022693564019181107099938127656884031705309205337893561159952177264157489324245275936160529163571689125221686686167938866863090850233957340733960762018670705563002549129513192288699693110964601332681026591295385047326617192246033195572499811589565828666205328898142561879631192842409719726238833716917557009437845292629382868216225565408119650354157179381626928393483305695712000164499613240171018835665805300657376467788648372777471144006897669202144873390344891516018763054196516696624728430686979523728505098929623108789418803739106028535182331280160023975323439093073111680080474457721190106236144606808678587880032711877923155995886322508032482951043671816747626960539838892428709354453491615647727907276576806009203729007251972220305582822897345793628087089216744062101424968643353111407559077756429344247111432203846735846391165855586203933114577961330325503758267023045364755214100782129893030396475646763117952600805396499932459714186665855595447827314832380021064863658390689518707363981195254282251985174642543631350768971805285936431272454704188087943314208282858763643794360705850194494064022873445569249106530144424907237020016217071976776752029375138705128696886919145489597282124066901236193711838807866933036033737128129199799029359465527317290001159663475659319280912640944448735092060050450302031669147068191521290950728257103944980219830580273132335991801824341141244817963872687733974206613795845569220576339823150130653173163336935509845420703543769397585631487057947961034601146395041304689070182626378040330561712521823112589618831502761688017081528693090610125041786403586800468747031071745648805333055962532665687248613929491392752169116166506723483886494631960352501104422437638579899632289077841940386749672547624318260282235447239488047262627007390057205038532941036196872500750114014214487687149414557645294591168541328890775546485404580050377571028888712257136931900062081163938164950519643812949822711781957865169847457387697885912822738442617799359387075984365094261109252617593206715803527543530363872863101190909896786773739382620117750776515815396872824665504383096354878662655817976141073477634287940541830901204204556321515024665436716661548631552646124547829095967295578796769797913741334809863063985102223389473930674654135521370446626335452386602684955669994149557773635486641008217970414846559032737165970947807615897089615444857526457867448157118248824090371602165653159589089674930654781104533033187949628058166179324032815637898644270418073799942548586949822341596616101435392238056505535566237516363958589556075214840517249369564396773497512072292977368322986247345452174038806549154888312403772958082229081347481676815609808431228002289456455439824704490741086001641001547496428726773848345133934399834631287555102418113677873812070233244118607885032736261619474229682180935998803165317051861091110791310752646462371894905498807293687040640965568812520149766358245329097913558658035063896377870688658794937361768652695873778555515377529589223055937947230791939593096077125758012406877407866851445807895568439016146946491037547593970816430865638751960156743509047723226589763063800296063319377717731465610694595209473944578270635074958229627661937255155176444661142477719317558868252052647149841921978405545578848402981115065980828766515225026883976136909845674644849734600128047053024135737306214779783655191763146636717154221760018007285324871627742657998975309360322382367795472603798847711935720592014494497420945521317325540932931538621306843207322422544271002374160091020683446584253684481469948542803125801257137600224341648955184378498304339820061998857011131114109161158998213590606230340283120240496155484916438435295721981641225360535014580904683513389234389048425178190849550261401879054454267935226615311216638390272364993518614857296031119281851185036331809392847283233085667469564141290014705314995492965553679854201584332728152519764466551979576895781663597439973773321039969220776244512782889247439952115321738810161760672362018406511245413004505932501722452255249861000282410514409048366123567853246545683404155044396405329963324080508832020254863165510872605323071356802519268778399421358790559068784440428651459888490873272921642045162782278075742529651812022304963884475882621806377986440495845242789764094029623093358726562996463677232214000999876711506815066002036611365618982829548801545742371549966076871322506799693576450101253889831194940234417248923149646971030219722355292528173285065969113064884904676610463696950095843500964056229327746514170971523146139894387161630371636096915557661922233527445192129049320221212730667043850612699077227167801826139418678287167615928185726315710458693021856839513884021250481285482494936384031761212490579041308594146151808688060098532500373091082966861085381233433242690305967734511730169423388523904582357680490054648263346585776165927076005475660617922335313322134197909242867069255777548153258542963308962004952901889222908180618433488490633912757045152858816795735600354497703623210645926636075710552826644624213020666038890185805466041653422481481440077438350280936788704758092089773463082227458438095709918331915029129400277602207529528873672266769333267152332786993577260296312932697969554339541879794308061989919256137736506255072897026733618985536558373014224582053773570021928165774181794025099458242960053540127220558469510089545243161944512246480233286223175745525472290626037115471976110823652002493282186005735948268932994886624561977253891984004699118936661910335584077352337013416979533316747924545042970397255377632412654204836247269324541106841356013432185440313046938207827685200030014756619750474992754044162794806078967051282084266773695379261658122246304777888759374278108887297997027159058714572702389214502743865635324700618221459986528303455996585731849555403431998388920456251444373936373045808099750434823852201406168971200126077657734582825865656245889445910958342101020835251783084067523145910876266968153203190263573174458562299280080237505518729314540756475677649446031425765728156886380225178433339498830324621268500784406603985394629370507352390475877009718756281580669493977593145206467967105347169734199237655628390161128623158894958499496590344512623609773418791472665966021148227875820038374535432509650207497660857620313832562917419269030819119663658534556378343163229906713467261297059827206489324966527542095160366143166799635182716971511774330797305352762007644073827690525686464125439096972076835591575728237812321379772723567520571534584835859194627908459558574985226695918530987517060826251056733567404879972592247165848568431929235651179720997103916629987826076934641117593386259521882846510953020341318098608162537151387296868847823073655832947620437113860075272976485377166002231998415536167809549276875039524431006938533118911932674097406561622469105990645974763536563309521954466226962794383736522834407408704816313156365177160106765094274805074057327638480489278041189772788668867788059194213166246655315055771329107158846385041483206457051013415792375086744974735109877025449439127555592460217938821875614148045434141442568630827381526414070727271130554821721511384575462211784630484764472471368512362402524173358124617148328713530270874638814225115283147505541862348992976688804028069105217735386774270870520906616528224768575888318732549932188978226172197748033277710498730666681439291944893855479089098594858905745692762394940830664441335178347217008861329100587531755381480909588049447561529963242671265464080413741322042949611366122101752960243492837086132324591488920269381328257502400395120894374873191580217931649353103002066525387798083746235976185301287500966989944425500545922330358454784723554673906417849604704239542146335430095990267257215755718257045406046254040543411081244417701901734532894471746265978800595218317271623065752630781333847775431798216965460478844117172563719273378754791498817668710283695873317753558565440358260138231561778830550454262562989956460808338661024680527377552348976201082366665039086836977461892180746678614998612704159746697666812172306686930474466965271419837753094218917065789178494477024225384945261412502928166300588043849854588919035020406739113684517156405274622857287117127154204066400114436786862919785031531780259545810617010296206983798460497654917086906734371392823764006809342100535769773765219871310215094447331479432860824243183905940419740559224722625619764089906861013303077765191580791396983135174049618773138399416671235523145107578681922265276549296114613407915665208829320338989714089777452282239615014789204417527545438153273395797303919673056293067813307501702738574982437154977965724759391162358485562945031787543656389928557227145791889936666342724194937644039200751928485096404204398702473137989758930896577155683862780758568462604581148558491139930555243428437708001410780072850886438655451507486640347393747165555105256124131425131564564851013407537861978382976628882264849971850679360309046136685554673953814361615634219065143448561069274776993023815262529823461518471990220119035943632107898758343010354697107521891391819480807715642035086198541332093466942347214963141724585366079591923729781245750801134228384610998658611750437775951922895947421539355814517772516297122633590780174544868576086981713229523278984449910684276024201423233839620861308431937211057872656525923471515257320694146060041066853589126244830268214807398800214590552931602601924749415755587622037407903455879472490008794237742712359480506050958830843470242501091892276448565908061873404213253255574477759498618312416293429289649837213008387300459166128598126950415288075105288979855871882898693836569586915806138064967067452093993677180668621883733456722325367033518032232811316594125157616362201856833691192169038403114216795699144444552346989987845405421646750921088803617939580592466638613961253550813545924656679915673579425366425964697690030579317983116682141784762437281696410555847403842736287547231781276927671544371393613786220492617921018139019531881992532568492565340487433095323965676041141302596519415764935193071711964210224160082107256287686317714207009217037535121823557143936606416492041224421686735763244345989419951692514916395277064213131614171085627198462621028791677857847244241974990204956263829594548633768629987889107706730934445730260680846139137639143481891660939994233300399354429871055009681549022963426273558920542519022513888479387062718042419114933550821192110548527653937036484519034728448375186815307020627080389866650382069025897283542997650390883527783432520587134955893802844228105233848275783741177787520730706040808236455420382435540606073526699980933111745858075059066586807084565036256188295656842566137489745901861409807177083428571339144944486052616699593417479724026395547876625229739263354801549087885250985083123893611903277483126621838891723010000372144045866140798123395777157976620016651753366352697839411505399959440861648964226556031987064283546598632368477763679751047781542581883660007428763400348864858619084014962294688564165142578854939922562779543685739602276377768946707367192956028244872558812783837888150897838268823834519471103201131703171384986763166627854492699690676080780259816674955757165969016086661534727901308509546350160844392120866583914863855165141089885649921896396478501172798186036888348064238137112715624268082094601991171945173332476526932101675045198480653675477917185476727306905937784901199589563352057783889600366066885139041498918194440199695496827467056497590774279495009336310858108590981402703817745663554254845802877849459982686751897049568411130958277986031019933622589227482031535477866204751975245188736892848369951761912862398023474429439271100084855106201280136986959093513448480323834849800534049476613393147469038367700342141366028256322063128680010240988103394873694260695175194598860031208467775110896625017755485306184154436805853320233047874276246417799676687226885694745801813638520731316789518314889046825706678552016535262422138418029083522159532455935380100230938737603045070521490436874958976339265303923269471378234725090713649793264676479282957111708127528475573017251176088650473806762730596506383479514590665847854271676100995500751921777982505758827973551824610554713374648816619753496435604086459144689542897937839832726415747916131645769708421933635552589160094385234627878541913358482018694974217299755235504520961144929523985793800770039875415891308709677902387517532510223916845905954631654072149805818993445600998119785477110588911073154237001002227492335764116501628690877943271337106646268988268619303089828006070325153250583800493748085804880657569016526957440269353417836846183205594369535389132599507931113913920956329953925063857373110472689998741463525827499240189543231271254466179496295038096198327431438441466634374269594633897114280135774363047336508489272308793346752613601190841130536064047832278061883465645128617307119817916484506613825204048224544521627671878771048731533118876065553736121464392280263371478104376487406774815988707820089428636779797340692699736144422876946278299507205483921404867958219702580995305259605277218700700364902691689813966360291049775891045670453026410140826958665246693917771526896061042910382797608826933155050163280723143672936704113439088923775603210621586864954423508514783949945077677580740929145900163340162580471317495357837782293659746433527765908090939630037969650940557099393300417824067321451599995814192095542281997732362266535599492531380391777148594538524421622761217491091936505005481069171868586938881276056448239907836130096699538404070143920856457381741718419091939360428348520931368242456007146097632567901808983133793091341058073171297338983075769046420752217698785297597916450485113461204031539309144573412530578137659324653932059843151245502372225558596166759522077831830255584001279336371185426150208559069263561053787145276918272845876084335577078056008779672273934128519442251613460342875654194535274970219787553108447001496365694278863496252064782807364137359276519736468400633338183536989683514874249219938419497046512287984054207459096453845685569009125391726008261387852913605983160653741149886298503766725137978866712405622088808775551399745173147178700054789509777896947266553564641558551638716036012856466262619465040977680059531507917159378735901901393408881231713045188799016346046083061350127960785117867288788379929853605550987008848981169034010167846678767523607701217383823410546058197635979508830863431385686466292002829761531088193006550945696684041894069332052667965675679631392562077985910933559858730265375069331097379730032224500481564472194323895747009935535314997098216110113172896393205076440271526125084441024825508808961021427924504266613916924637583928086023283436778769383190381626106964917777977504173911698634631984624994540345673666471331537368596816900769963127100771910065302871382898040429418568140305088591326299202716635073970746649162779212813343146156708621685004408990110525603363606263229042224623875143399226971789840712912170806375578369512103996704469970058138933558950827877361535597634636002936111831270601420466934677307227898455993839107632504419886331065643608561336998003979047795686490669476172537340347467542943232338876222931144827181290898750803779378679310654070025660526421984212006491364944488575610913910795682524070116713408734628020494949357020389505292506073581466790355444708745341518629798577971411555605883887948679919983767868246246419165454512092599251311369096199861543073209810561606179099098972991961148228695679545524450257464368716148359822078087981661596042821861677587042517489047894085193440918588436795133628460735524994581953827392446325343402385051321001338298210717942177797188146013782430574240720417688239388972197306668142729608273091137061350449088296135078084438460186061020185352827651570802589422716107113615131690331975492269717796120543000229172362663821852711027837720369582492385385722222581552826980842431440775522326872177271942569023585881402747227250962168779904495438119855833799723027671341100604426956176583026830803642803524995353266050213616343783693640464798683743190614459003463964385177207185530140230513179093816180945401509947009782567789900199489348669214764630268561243146341938710042163216937181750531499412344619837244522967928679289344337878172071657318303542140072870538510523989155358542273901401626854747933099824955688409194667198326730290665813976619181909985025801935789524551054556789890657143916407626534448570325052577788127108112703197411345578303692383066561190410966505943345587861065723841993417996736082511141680241953814708828254810314361666161390487374922052439328006952520831247892500918792909953426629031774447157906424531649976910377754894259389568392647113565066768249029014287643912877396126615124456281535848868424646595961339438392447493531302803633824282925157428817716290940690446536243679588812831831797686711168880706731485503894569441481845734965003916185394665870876131189923221294325400972314042122178137545469582693965475820059554501302829849256597751445797067748230848840239915435856987265622602951297682721590572499660628901018881760156589163489380173686453420959980722384289073724026154530161988506608536221191505851391553273104843306459880021391892074710990908092460700691074571934100578755941385286964807927964903549836906282479856009999368840507985805028045922031711220660622741005053755075234431489605521772870434336666957528375702087123234239198856591603131654324972752986482736999609223231820544720458935398959602859420350038692375600535566107186828849684660094394074660073317826769051051153294235666242771026453723111405644124313370112857317789924519105958780780863575480386733203555893667620255789196992459595189878739569931220251907224686998851413995803439581683202416464213684314123559387384989273311083332748822637849007553714215852288273335552836688857096788329332509414523302093363718791895288459806294013101420372445935028479884249007832097656681152451141476510725094178810963195045521566976819757627542184965358917023740310754023818921895287143696141994890371157797044850639255361075260195590265463501663370590507447590711667487104702048371838715114049983092416220254576553320883413844252917927571667660975418898720502515719589301678706197277201871264296149385426230980734109403722718273065518172715933410785191106743808804785272355069838459872393920349295737308620186310920018446411138036072148340678513794467612365619214248783966506729653377888437872301202510444984130068702429610760874749507061320249207417322582540391083146750435232112784947818482388053824672504483611738780399242412465254436129113525316878947630971018141418301914193445857324265328424394766032943898249145789504799327661799940214045739251312640350339684458275875460632765237504251756187157565665143819006196701379393707405688553282831313463023112100330190555505665862780187134952123791613550767078310468518120533705135568669448349895234142325535078750452897673829106215209212685674041316006280984470543721285409260796236663287008645846907168470920779638917832803361406190572738220375837249057429970871204296905216911184969492836817353164858355894704733399354973992635384205727306055709448760844881656650405157470743883582137332933332903090743921917301780631378315826358886359915520131930402601450640403387406257124777140774792846233708592543912256091622054731390322090129802617126394895385529044550684802964024479947211418114091149890767461467233512896823621656955114995593558343145528611049303333900462212390112690812875855396251450250200094694273580151674774628767204083600120096583652906529441405927379255972685870628818493288603237571851572115251791033118853335849690249161723181846284914202324312295098759577489663365790217843841565970624848675651159457117468647429147174867920836495061704999437922123749006925293024585261201244977099343597912564122065717944787712289693281271960892136461758153633686381985655810321622924464968912327533728992580501988026076360170761184739787546259626578702500874744263033126935472816801387425229881064020464499583404947792286395183681439877917672110095295126532752162505813142307540211139525300608632947960991335082147982878206985110621562209669801852270748825382753963912044106154603915043606913542374401197894732382087294298479624203817192310900855319666883457636950741457745583329749187785424039894140900554338693204585430186257086624983228712299517517789747969294537532192743593403333788633808208408412307909411701642747729465200228189367192516425980709338158530036002665249937950951613649575419918244279459253303296639216367858810636052435809582997922234816913017983478440140556920556925667815543976739564948425702284321111765598517336749845698919878239786293855886622562749932652061212718323153833070032573505460121571195089402008957237282147206067025662639040632531382370399751162802912834313726962131292948777774476365942381182512849528859383278385722686492620477427709859796536860517140058157628065262947164254777586800959908563031174016215349948376627568151032290796474407125151153492205186429759932036555203529262199936611326126844474672363529475986145962634468331817985461985722590307171516380849747536428987396376040073327845312837415252154422000924747587625599232053269979759123053535609192103062784928560016360130696207609582848684014986910569805360526836901372223593148161212019736223600748358296190429643541026946553707894061972540162800406882419763284700669911746707715712245183417523301134930249870103418237415479582308819767616214115004955814301099027575008899762705486520691994423140482467371703352097552504446736916060473525891347466115103046345200707726346380773910293946028603563127171115269299355695885522272337928039861708279184566899438025037738025574639759316471767168832022321944880107585094792093778934514300892963869244886970564030422161559306253525578588407648954941334229787851342973170612005302946876855256322021113964141583233198330628335084447974605709955345882656476060862995010864641257828471977359908171671112936228509320841303274756220751797188653883261715128971031286564779264857922759400053897670900604014616643753759870668364646573718564048843014348436958987402278986955482539785719351830107969371316571887751390378868987619386798435468533072877010854058696440448407177825418911682242648216966478666612864591708745057043539941507794074512236791561291651461746061289960605950412071621026318530293480556970200467889285210115651764986752890899280969711053871042370578993533415781475039268899010568388864875006400538804470775013938866985246114478659743482605060336971234214546430530316817318986172510857297118413341970852986204995568308030180258843907782204574748675843519711344740198971938357271101313190019876986878999975703955017624444355058265899231134291618607073723445559302095154895085613997452290745601073951489337934749262848595247416700882388344395662054258948486012045763932052793224223614911721870656559094851914030668466061855685960833311096988195618879400382935810876695629970045502895996242113084041769425136254874394048731757383762735471239778099226341204823748809323223351547389040347265386716018989778757334290423253558634291105483432125623475016266216511977349072238019461904614403006661562084729369559672141506215896527753494219748699064494193542458391473466752903673840639425055416677235904482423867372672856384232353375764497412598053596336220289511023702409016539316607917094704707814860992344082925019829883713015367066318246264150838967064328591975385256347013112023329322183925173730190702734268220924180489386905713916278386552426397207249871595480330921123981941904044536772503765836577924065688384803847788276066510463823023524316846869289142570395237983931882041968555811083278836577109910926328244624960446139388699983490655078295158165639097513104053499654973706434980494264052065823834636840804626706252354992511630444316586847157384629931380492449373921654760224976512329849353877741846364197248289099768443787796591200217547564883451121086606436401132753369252075241640541495914510898965494163987387848331822880972362893505850465098409782852398812118028613204544611342221240871470641870130069885888023619461494596425086090688521442860300814496882108146786394323158906688917231415607670800286776011278882068256381062700774811622048996012424140716528602655539142790977292825758127079938759317857994748173148791126221660019631924451467510519614346131012107071824733496779775016845413987962657695275101916619224922149167886175126152523961367607683230599003231060989674202171110215591479624348485938546771595399590237534560714628821388733580425578520705741443902245688250277199359756213609470192200644282402691409601928542969748682567761843523059854831285220763333317620427158804688847902592374841970101333964201795480521047546561648475785987935796578279278065111996045786252407019747961688504654160106231182078141062608105852720295732413658596616698457753288742753826687547240776709260145934058750645229491478487691495841825225388110189203533024440291082735745109254459027578591578479163047601896765216916694030010882174143205636179724966008587853964069802175020431560410023181126840007170409363206410896399749538075067928792758430331992131016450634127280332808176051052873818881034972495872787433599319564469924295471673376448126148330526245636353261149007727332423275421948995297342938618768064101434754200186274172571359697062255398105932213610502891103641706931821861661209133943817111471814105137699981405493777529446703803921372898962260306670948131004807623552074478881707244487520198308349178953983844119695119856575256877797989977797336462115003158555301167563163034514852443270723122155298222580387449108106292633666238073051969486326179942001945374457648959189198535836348427489853498176990657350907244175549884567621690271098276796772646551178749755537540538401422920675799532023619496136971304917537648798907327417376452316143389568677482358446166844174330664619881298956149901032101540455428454688238726127564394678662073441137329653752338738521744990204730343130668315280785695138739449974271419217879326616186604845125746683900307086107036512876842484362386490047466354458005972196241743230171128088031825427546956227304795304074089494924369537721618213218658790793475244571175426023648552248506228084836930495727535013073819930881379597044000523661969554227902762635251799329910137756995955176345028330899049427840007456758784267562601753106810905352481260052029748226875503253365121444577111012092678605482149825837770757493949890385511205131781036340234669924288295243221092191267848367225311120022926977455710823151876721012966809402310165877607857902334591603036570021835628143113680525009121066430154817896707728653347870310157637133514352373233151047788660120549684168692619724674095479230931537970119448558770595656268986933612380723137569375171874333421151301309025236143833045780946709908369349445898657338570930022573665682980276976901993240362639811499717250074019947120143127043698262150598951857158596820127625097422123658906134494094836483569517861719796939276405968084879733664375929721277301607941362125392934860100040974805941290237623277204998328577308891088684185717378487172848370299017601737066910234439658970061183652935884322747725684650733179449302339622740166932390172715839135580220675200548038078837289934833646890516663505117865439360767711284157701148176823574098565775128605109141820692007228833345989439774089632536987054261916983065771586234304404287412187142358647455323768144883091926422842573079101461055750786350308242253408361998314806939875875306986867102690546493252962624440189454224195710654069992966517094617700330767886026726000463766938008918170228016688101613435961746993229878097924830498917933074360058014008291727989175742478858989822984117651217106943951733454731322720875321329031724476172146631964165398567353503432976141949521393087662450524626169306214734798785314475822760425567757725253520204703985564293517539996241697861102889472068656162749122448171019234046192648884394724047647245133668201580294807307343449566074172966799178523516886624776029516120959786345358568245964239586735359168188281900325677426427195548250383534808474056838745588657742475491837210351306180999828657117893860194899319499789444970771161101793474740985988233086896187600617673075608660601153365532584232693862092581557714891122942014358165932587606450284183712053066956998938271984781115888990632961741950439171663439477289128493473277386883612052397723447969155442235072611480126464755841599259368991034399552103179282613666827503157945462166260853721176190654849093140540924719694714252908339996559207821175510224574169506831132207513903819470057380669679439991384916880189464583163706797627498779027335718867875675641556056909369503549371975359286358816437878960044035611282705604271813817544237681101265886218377088787904829853055811897673124644783421877322843250060579018655377835179039920581351997482767199045729165792780528611221186364891486753525722291069514337988745825555943995050902208933340530387246005495050724452417142696723542891000158872880409739877943830589012456016686723242916599959951133209150990520537917631470700418246944923598666273045775583604180502158962454194873988282715332562017982502832863258237928859458809403178536501087481178412640330394928187694082943577800135101117427065095798408102691330095487351066189049973081343884422497341194559400893983126609881845764336571179751989905001816724535507506976419446898345095482186648140888524580033150502208326228433730394601175725138351414216755587466279892174621479502166349719020564135587699345731097977142439026849908981671648476683504020216948055327590054945249781299882132274873262002329053969231906223413835467655787307215813353972873713075243351438619073607052079958282243274282032302948588827148140414582396173581565236280036986387736964555053777867063494351991509589494209563744556055767999708423666565277652789405950501589725084583585521798059229774159811780022077362213417744819864233275998254926450410319506633210773595231264595259261470137850462952826734525503066614721934642670142264000266923775378818705280688400550896811946746648548478280925164026646282054144170712806348472957493602215079622213500428245763365148175557475303672882808544578759108504849938427406318342951105848076440295824676868625804931897568480390271314901445576568900595771432299932174174087449783513504863101754902523765889099571833707194911851126391425635498188621682688666416974407030131493384949600144171113126159260993207506923403428321742194419769699854844493958019757097212201140742410580110632949943989116843696176519968750445182743459924033446251846391925518907813081738299565960194545239314299947324740861411046180122945049328897045931365262754870606925607967563673539558682270319538554836095526787644903556813567724086620950746377094904484025694371993631923191426717468178353938060823273553691984600068862525008377407022332031152102433178450918769918080222805227439478827358499864473575815381410570758726360456978784192883318496685411466968188973674008389426529449493283374582204730773592454667200673377645376420347815284671017999223004307490114005297423548149060548447007322009090337785461099781235263627400894643084426125343447575833821626582850176251860968134016330254942358845041442720379366254679889748051076844378313265559605530770651866442960935183494873175664416606942546865244132779449477611075352397321685533284998006352195268238803185510017262674304748806553919488341902407677303350848475686238369000664848940177988477173354969170021610645064629191398507915890323125300987611176237103753820188135913800078097069510970222864185520966902123605718658017599741239299697960927205805278741951043609683390954170149718504812841075502749613068056453214524314532597804375499464654184308103730591156128883585450252174179361181011394597511634935834020589998229902231109050891280131854049812407574522013780452162004002112146567557847375583455232687398447808692686998635241826880184078222210230826188856731575535505047611756054430637264093874769328877522296019459844098225271301287837802274678709120188644712906159031277992218497962729394798534096598680132346439635849282277112651112344949384759026052447102971849028555645158083305559356873382889341332957204209997114367958172418953875077910394192010948233075346379972951059927195778912852918446472137673553816255338768525967079812980793637133986379307870265226913831851597427703374003932195560513800664856798455487590010501299026705529644648350787075975905976289395626561811727099943113417443619547281697559793052384306629827451338986888184838980284082050553539298001529437997307511098903362030186751348463299826136536381657579896720283271882369058861703614607345857754454793753480694230668448327968113060734477158489929384784299621019850680151736371199687522160141258033458601125794645384209187960360882243792821901363753849705070019235592010308077979159076303907607188863352641263927627275760307786306736565289372524634981136071825250759821449358720552535635440857862997719794471701623776613467726627297707029402979133362949171696684224043247052093671394615387278421702806438061304274936351614123090125919933659951430141684183666854001036386355305220927467463078479675673264209556204069084751150902916314265815438537645832982040075090687932806787137664667143577420592337249160208163134840228628636884217112320986175281811412379947955557482527494088507498188162070780198619023248149340164691607629774598080472247215569951729799133438808423464439151085110002795104008905751674330968637575039822258034234454021057711473887937860820806616828056385549093363275578472477579122531018403766844597387057372615120136666593586601384961780219551446530329471202851997106656879862016573867347119163496915028337293253438129310484966465402453764477214153137865326978265345033448276308641610433076112664063889273548221345285960030665952308026101971831122975546419585854077642397920389371402005218690084145379539023747996436046929590341337465745018405390968884963832368786980984706228692206508212085189246001837840479797924387192062456601923324228228346357406671532285569966140523588687789848753460813143158952546377150293350145270493281190884767608917010411505373677926190184680064268543952139359699476744485936689601737282311209018234482737415713143195383279185978250131969062860978173754567718114071234699976650864759258332522905335096804787005034294181913485232294219884108880880023153853210015810842334683983739323302513226309079791185694631140260368448917025981103490305675628798620010151256886257687647550203802917279612202160779375761447432133363631224630868270029631381981251049798354490698720509022500870770301271991721849669413574294774410917245024838972881973350135489259764313354173143475599982493161084631462320589205812402704148773119210645636963467178929378592362150327758849660412940176646873896548043159510130774214242825508341122718527943644997818463490311349967910345734341764557392128458083806150957202080763161311630226846860980508180734533191299516844470820841529106846012651287525379602322333702212779584436908817116956306762623601863625531883940830052256572071596183017646026428606907950956442818161715660430559139864180405582325078867462955567920551002330345615926310497755808394981617904964806252610148826346755516110935996685086415523606869333183648015942471243561270797223451369241842348606789009158079129547344366688356735213735042672736864993972124289216599811708598030699263214668825145363762934509861122907735222632417054950187289317250576601137901435170529219384586022452055204611831920065228626382229745669904801605353198243012507190907657550748974457530469853560131397070512366171639549028986624522268673139574684750217423796043996558566511024225045318103491662704209596960200149377890620755194491155084298596553973584624491289179790382436509650363970084661438111991919405419878610832010399468353648447979985921682716306862932441385007626284849490213018049751990804076072776826698721822133379123105447134602053902693491796211229071625804586516506477233397090781655062789396031767824050171735747726351157186140337234011573407464088764641951028266452342496567158065617046060278624805106175178971612631877127672111577403862497573051368689938476174192733877486248487823049396254263953900430599582763254981429659722122279442642911061474498189470106262914074245717878269893925256315917621967577409192371847939934382065719399195278271857459963323598834298136983061054795208152292259052003262920468241979052817875416979655491748154798077306788788913877156581647123040105294417245008161785654001140987617302442140352169926008206740988608616260765011950689038782467155476990261308906977472218572915209754219298438280104719229024686403408209083765725002990136268335426458079163207226103563732576879555293778251553656565360641824447422103518799889566474481363092772966876853081244896755204708706377055781788550775228566993014344465000722531677191019702018483980647660330596909129741194281448248490371623825880793244450551135834138676036107558960385097051313240992746045965768146039783167046694295468132391335627421625696031284140736429349325357056916678263140604517976461122076782798384326080178722726074936260651069834090905558953955636891497955852272868553638392554708732120158619708117186559379426440264541945899132215084655123953387620543717529615042793430516944593367338235914967726725301198991240734494613115799763780952771731986224948757822833823227683014277538470548810701038062222070973151503762124829120283580209683218064886297167437661740065902359249730129381879629596952670557614173179028193274768319465521935332195663714927742640530535426678692439783485716055868279780772134657173617582772504515506442294144072375660513533627763828257792217941314141168140611438420829469199711116870268988445557959362058471676479444887078664139672470396268846126986926450169679669610335298020211355224017648433085456778703545128680628264608045892961244192233774613548131945836352168656404271160104590024983196448269157213577023732759549808771037976608274668029022125105293491481069782151443784218275407667871147511985703295750709232572164676922433782041352452161190294096736616836403658044986732393774754987494921338154963925449162279258204410392727591869655508697833382553211043416394969865507847732739272352822294148225518610835292129062386818702186723453156175370879889307422484263121951786941574554935261696895943169948880517200049817317631954906297265699064098454952430398306648336047404277471824866758215245052113069396627694124756445755074647980126492814456924593755588069432726950707544178726350970712480354499282946855242857276571683643849996360502187965076284220838850496982697916077535094059032935013138843487755293353040409001085779653744451320826948133033246117748852337102490972524329628019154223853906694317379767050132946085751164486038388950243902899553179141958569734677325104007463304434243136006581184957669179973165815891215756025109998630281462861684750505243019338227646768632837384234719633738454733482559033306991085072631228204363819812019929552530815688509254701843071768876480585262377551516122804134886450849162431413299082935014737881318102231568026416812236169322596248783222730723577225572386260604542438404373504968300659609142479285399284891052271880212180340341773082242010580795644787966497676015149743455244729008208893159634770420496580329036560908501037768224136218533825237743341047700721413600712881991647043278313264857338322638982033773387560116484806568862384985867335646165318839117475177995831571278796450432531288343497902069502705567566753551513078467880898432315577707084013883477668800411533169088032506103843072743670232555660133004937571513842546888666611918055397232718179174135170215003295161273481459097045771576339555875882239284044549923224380934864126021123182178144600829231130869795007161672126034442427640660999701818372284569316817226322226644631240787399530763136680791597706293836842017612755237975102894691845892575434681762712125133998333603948364284622629411440867896842085181501990376155431861622556049533860546284140942410976709565393870542439656761465304836890999008923516380190292363441105437691675847267983267151163855589942497685971924900836342917750835907751341651703466949583489991212878072708400435473106787813513867354490377363179628593402703365201898593979135123314356250080110602705596501116942889336298808614820438614780698651073971212675966543396994559364893660108131290856692560955011642960927758322604509670651099292770909266369608587450602248209546205932692206814093411369883538612040485849735592438002425969308314069279966245168721995210713124237390022405910825524926061991294435086587851435496788249367668219098321074498854803836478177170438062960751768865562612406004584633250204963591027025349480545305708292881040990692076800651590819937455896794901600874308020550617106091564863548188496003066236376795803160844814961384834406556404008982204054285325421047534864409739846767823935655578513064099208531434458426501538311033930331595410701527944607141058149969605571218271703977441372746359263474005755575066013652868235711354987818022440736808241041705468453620369737530268930373406130282343814930014051367902284602597412038384275523435761047045368618609736227687143348040016945434299749841494817103519399774449347772178710031669159558294804249229698843779820074647813600222716750302643020940974680887290811643681211524836648466742198822747704362424030059617475156955788263732258539676513607293274767204917741635198326182435390254153045441328448545590859925339898749398528625745928882547939783821065380914048112851148149687473561684197733406151377626229713699707460989632588661826259707528746046577541040693244089906589798774390147900011895963573650099102252917296452971213633435479587663245844215767770485875132886804756042547720621138593191846967013004497502404433983919235346137044517131046916468089754692731002617122787564146974981394933748650994729816290673481146509157844009135096822949694542019893429923528329845251457847452957707789480735408872061844986281617540890816666375359433934117395784232996811465555453544529723835960430572895697119577101691992643861602223731210271233342625015775547641392619141556879864866349039586902233178548235474753389128082158674095721693464195807622237183681477001810470811577254628014438602281966559668423090755126126938930545147344809120034268464125502181788647689184809186081600830451722677814343441073869717531285721238449486554331355983701106673037162425973875617614529107116312410372974348062675047247486468707142610679917208803411417506895671455709483602944706632695698703980258839189898092488250420459296565007299005674143067732493079389797103207668232746468149568780438344340648580246185551184006314802539437782057389303651189925394592252880133782720650558681093430255963864904221544834175962585466828293614025315423725599993497027484638073665516847240425302152783401421233568500862169968804254399852757864897525856765582899716844065496242205411414369158687018244788954184703914106059045039042371540847045055621221458869060880915762211959659901876032756958416888734142720214373065179487772689393801269535634701163472379266300051446886330788752822023423162877095265400413061184595951086197399128167796383232063457288528955898270767924471489591237157353580824815663451346586751083076579290321127873628498007078848318634849137363433036115986827149883394059100181130715931934777783147007511882850993870159248683386955851602299556727487585313101593577695936722876171734982497678267601577763492249739126681873257205283998203709963554867257013083998833189844313287218101296377069945719095807786362441059146274585718256386646396717528242795543788183432324695921438911587300908450385771942723387612717654681520435443628619646362422295886562658981376313259246974282530848094859678049588416170874982360272698105799742101270282274313222227024966178426685154929262345555872372889979170817859341978740911848991576897473590278567617420138729397516473435875031429304682806285947358021972599774318670623651833895839950576256440196819526463264934232285270283831976730840753422754132501517183810703894860528705352888321239949378682956211251078575331394112456724259377671893628186561434925495431348608335367969222738664639826446346228566621923822653411510293540659321860752524881812043030469966437210109008253475778777662194036675603184370484156712358695454032044892792744587558263804724555688716311656152483174337653952826473710968913646465359004290188114014595502647243418731987794430252675917339991047272568086805456082304868065966877530380469104266175862210369217001164658853360236861500511652815787255965688534511137857669891950043133800778407586109530448820198197483355138309060226875590993423007086959084080199498370914547376678868731594820671047617058445122825937237613098229960080888834260555818629453120952267145904849789691430701588645370417223008461787500105990973824421901039031670096977036681116432503294684898730805939631271524535902458112420892516425459653764986692454275698298623545276316230174885353027908814448451812432865540786807005097472607804044721839898823388259356269139025949447508454381318789241973877490188861055487138635842830101012657345954129140396557640472705796045185230985218673287118265612756273381056394374724285881958449256103084050862982155407030041585186203315521245632763408510738227924252729099842564421351856473087695826436435569637695642440829067479288511303663182578975285501690187910246064442250766950984147836085042442985138939053453136382387171744779960028483173988789284765626123745772042708077841894780239075640502037065480786182097166089312301478720785192907640730470919619665120717918574012540883062846321619776565494429685829848801882366833097157119869567279325768313804281172302470301606239536003526245448776452285237414093174733347413624423650391563518456735964954907340151098685381962833318759983547470987487083224845646817483141521667265332171025430600622870582162974648826185182297841676318257396015353873336656575174860502435593097208277575031108061735651387773927696473198866901819769429928043997782801584080397827565776763619300104696844373127851395768919546727030700012683022287479025016300844979005170643657743839045718378345307988137766420657727413444115979212682642617789233242108474944944884908806033630176973866649812049557790185925145878479773530303441559864128210665382038557181675735595562126385331619838107351707585527485187824920366850134090400410558339253048890867799528991657652989209299097393151852235083803211412257943933352607723665936204584812317913980564002573450009429362182374492177402610725814146622577104883786038902579642029035505526494468278486000971978891773865905033580754015243348577139206577283945395811106640849684468652171611856664070095995575019235221861671594133568895946839719038776948446349757763267221105857908942826694856285839535167281118673869888949510496948020643929688248793060346491499667247771288419882959538501317397092096676691163956513773553696150603819885947517679286999856608940398180822271350480075055606998657774301890080214165906891098999254464204066359629949059900743884947705776805113165726831978879908550196809822884752922953555763190229448841548853496879998755492412408144119039358810876658581226182319879634274983281450951250541609976561647741571832269673514060260519171737254052282088639484737925652377464707069983212285481567481963593406741022280751216805943582035774365311777163665241543361800826925331334406026365687483278721095619168878195677678270063214482062707102846452234032385328797093125340663205058916868404329956516092010167750304571456578841287705665024701924917839097708329264124962000196094277984157730957546319404392365428036612730595352252920442630258068261484159941234612974553013240467750854624229520676067390053773939417755445087306078438091352752974927302741049360985745824510686584097504305597073093956615176795591693238518727141697538789056795409771725521721457170100622732184486353552172600754773270790065680645793136803150591900145409870890770215307773050642275690161634684312321513675448095178839866126850792553581698436961546678604918231405109605844316867929371356161597216648083637368472597062973583947933171087302973025094219864736183694519755746453616425743124718943615531541973351581912672702660086400942024477022942659097231044567677779107236753423221881300745155679459681686842581552672349943847173832840580334949445010930018133746743424197165476416164604003601203725922994498731228259461701073457035874961416553391129469157336648795186262162964743669115409723726521291677109593981286883366274477122353568542388100898022333356886131459743140215151146760465762404766681489322909814916454840916181519642397833635981019615635215287418059898913253955783087976756106587676589662926643671925111142513738027368579408557885540887811713513230707683847098986827846922391892903744293652532666452253466597031762518456136302406601976073070323210898893269968811345263561228840172896706853382077197334448109338153570713365860578845176764843197558270531823020345136063449064805498421675984581141354723833079401884272859460874569953529979772394591164992544193369792257072436761493048442049961256985713156170206524888038513375594674279312925085325888874900760898289089034718110571026289453540413409256269051977949420784445370575295118194327949137633854204759036404964074657888183937163766004780562130037945428153535729535402724503200454097817152398641169183087184802933237338367248630352158186112983046431597997607395652820856896404146437932639422397234809956459991593977282825906599057452512289037502141208175651559153565245512076795738926767070842464847262033385771611504156086156863703091512213471524085855650067303077384260349871708143048440290183062488028418640550705270221878721156069696462780503739271751354099287204233790569291036677213886523797109536617542731984478740720907683020665227305974956789986834165095269057938620337791582699204752450414846570811746927219471390350126035456289574515916968822808386782403988662321230189516503966689904223017852079206070891903045114024234887791219697232368620658165964726015925011953860155729802603060216861841810718506703163484847668813333442125451102039702843123303911471161023283641520584740508483336650223537926183379671766896728748315486641897450438200040997521775384763660269167028053584855103009880819661744066473307677837411352522994418390692172351789657565664322192471712719638855440072581385950924169468928073627887697501772621270186864594609314049267185908571914373096971582353276601621239443301253189515802146825977607693088379187297846953093009809991264100065340963311476163731572846039264941514077747941337853342452126678221948797104662074649753843384491069130521368716641431083483846453630445009187924413396142505492131085554314296596748978888449573009582036829024755186841905447409948012495754654767910173465321975104097124796948008854026637192916916459880948741338705668694536913396023877741308256107546048547288683547781807644979215198233163569060513855123604698838985368958559896649656615685837660274927584648837669379166555119923624974086265808865082441369657495472170138790813387094909989799525039063762773988458437079052494488507005495901611566828111999315059293562085453081946287977178480031048790643978921551276335191085719023114534428022587281320709101991864486852910922450350743484173490730056399541167470796788891889884154224304151624744257136368799675972165104462083295183031555182401529578272844448629394253672460946887995229898920201584642992007667476005782099182731693093246295226872532293486799692559024292507523335951984451576286428192320615545113353333888926332989647242395063850582705718690033450451697442428058589289704279317122801273103104167486713772635152638900189915846005582705820061787590115434785212127397052544578124375849963557369853771401276672636477222155966925591123536724730616006707791545305013195216686516299228871862248327625297557334686494286730767204441906594289534498129015282782592510802818173179422210478219795170798653620300195109276140138575754817418184971455285319785699168799599400558767326120415424875114746394938744461458149858520371859189579317058952651015522203150410658824028950798261805053133367235979799055738809618440227843881935864524911295802165920827151021630572040546294720121192541377471485155333294519536263305854223109311082715034923752990170235169110673695303864720494942036952631096259204015631013262996291928867444078177422911605573780918950736802566322718699658701365752319211503954968580220555945181707404715561785170662395974760392279111614058407574965491675897957422425280799714506304603775156008831856007736052653645156993605175060317232659859477935025834121415727815709828502069583611736365126764003341555791767381879463866719454895116488782156539260194729716290427471468669684779804691749730773912808873406925586891545603927417929656924253551167917580473169467162348643525020873118864508079865598833245972197698624476963056356256630994871545922067417314405062023751969174891573983137598436949059752417214102664918364829150965750803592778215540869995911657617512699391146867644383657657270400215243460281334372891205969546798069373193043249562685900430778374719519225894402458744271353470231810090198531338049165278564836965124691893640346448797023956133999250627911084967136881373308976326055052504336609609590040521646696413349496165780609871409940434975168583671601482635043799614074521623723682937054353610187926728948860168827603836224585288919434273835178415474514326031337925932127579011460737671003800969809279457004741682271912510226262174854995273707366903762556909192107929284169305346104619508963821840290968928574665588323033295298474163788969437908060459052564009014920710399490460872932625960035079776739477397664225833649033026250002722949891631198627212117094434058121830158658683950445761255970547671110282730786686738924715345814648683036584010994208729051235430141394938704389351553339812023966730899412438870332902439669630266265991406675020528694183182181910780093789423479465055215346915037356882494695762617676544889955146354309434898182908935494597191550936080485921417629632385576372247930155835911942916656567589569870569641420715784653571248606415967914043438357886452690789725921690044308881465330974154702470389047511562061426465603165583347209076248666696736629824986573617374376724422742778639940547897653995272227365413684090354695539074829407982098470971180646751697959814719386116253120836248101443958757354524636652071857248319291170417730382589473206753492646035132662793180788606222598163900716156129321323071278862935540876014047279512644959774856083162827716678698304255231238318800171578131759603214241462354285595991297318985233747885722506906239715112443860822256416064804697845394075699395343586050918125302778456008152891006413527866710473519215651510186018167746555645865219461228110251994197551802825823803215258088740154790967303894359263941849858284595847523239270276897985845436784570889868008630292416024357971523857609461091763867886237179979990926770697521923552970965313476142589469445059147437832104906882924414200863971419186872545953842530717586123039877133296825036104152248541614269654490189720485745980499964178496447703851119872647976768256849444446754709485967401844162779430542272756667037864393572945493937588707158899173299734058938825923084340911402775359401754853637365085974108174793092436093362667608872843983841799723121143099917815827627894531836808388978778244574848795100865168900514512977678804328176445802873279202707295909352191210203017488811939631702235604458309491617237824488977540724871597897760951694731337808432414528894451518373392896793939771969722469848840238008660473035999694127143646336801003404624130936192789128943775828320333483169180514451786400806345134812705064272941426812657128781414268375112493513995269053008361860166900317021424610488016922241923937236568880544058269208880600306365168121854516899181425462187690629118191188386188316664220430672367328256065938768272535962310830945479078107514967438851128841969267183631075687305585099161166651257989899330725602427763858588449096541097611334110932546478477840050499855911065715193254147269434867903650499715474203852344119602188624007642542002237286043262877998950852942516688793122813749785045032818371952658629436663549821709250757388234836935929570155608126452053857559094617929670585583993958940733467557870624890998118517011255336753716497012262633193649134055825462067824263031232796009899693528504167506070686093767980596642987950901605727051232861120881255749927742063128170134783030121695790382220900553010106156951361582269354686350523749483355438792335930376107890684672782493425819109283498956509261107489320728870466764187747121194582881348746694148429910127733231219157800872138270837933285426240184996435417388580797774188991547230280416272990658879093258450835132249973416248224595402206366616577619145786150648429215330648934211271734464741039402095503508481685960344738166563133983106352020881041351412464119707889346096714855839402073964026328854793048184513575548817681507689951645055017044561235665886207856149834285823660844438145267779455369953362548214973509940503932746515011441704165215131670208674215364452723087374138318057983108078428725473980237880950511588401448903078090747760445305796248157473740849145199352605038837665120070363799409000479276606376296421495600243054686294807553309632898757621950547883583667005454635785797371216798110893895462113862346810297496643024602569634430159855630677277616509808639738081152049287767363667568817954455290596456634514501401432565393572122864487300081808052715786716429640237050782158833794655989802569221836963338750412533094389734403346783030563063919926469112385945292184248786170432939001760606453420454727160407401285575514231681013353586020642205511197713909532061317480093712102967884916864775480339133244934153387409641513127416988386661921854377522158894716154991367303533283863662169418510960362517773201456669769848766906162948562107937728749801045030549247957923401689078859125314244396781350179476457279254086489761033714181604636230723968656393843451234377149751360119700263522098204095462010699813995753357079397840548897784407498906764890533969629008811982730317877354378920510506041263143970078308017906757953793053865588291506107629040805280226341890354688164576081702700552851890529199431766782874599478438407161730019135836028984334831046727041243272363690961505845909115719161944626385002352190049841326448913047962056788445653172576565055215547102264887651156450906389269967282867760303071928121831671958681451404353452600623010643894166123159796361495117028021654991836114656710655889946915903402420641308051033644891942784549996258793225609326462556813420032335716184580842423546391000301808660635610537435616579424438750353563024487094868756616504061928229873555690978544814117275569244053191479409759663310153424028761828377839151180407852205551036396068192856911666531948243512965735445128511216147350510070237698674522920374771794438295062548557991788063714599852967211973931076776535093196240694800316060835865722872783189414438809141049933923776572127082413776167826750298065775039108652048310343885254122982668612870089977392605344441912139990026522421313100559823026838939758656920353385024008480482418364210325195317493391445170122225619398772373654935790416482978330991425309744831195005243300526704671443229207286704448663638706633471090813158655425502088188082870559009617801733795282181201924123973275315378986272533620906901871605153644252489273428872550170854535677254365057259210735515668251684710794042778574430035326623748644860620390831972843538353195917243682445399587101257070409322822891683912508440706529673110434870538181241520128856971794018961298692483430464771525045862259493674453461996039257323719110923306830492163958267066117468820719262680642404741694330435538929386542845901476882685444907130165193452361658093296429338008547837721557247231903797037363066542176807155953130823620600021470183734664483814316792006317204106821160627671772782125131857342952449053961959396934454748862570024680759589962366222322806494982354939762144240127668361910318006212081110102754905614802202761986877951574574945032275315981532980404137619313663475251219278697726081773691698088924301644386225767228450728403509949833613609614645064523740413424146776587231051070269718936946784053222085284583075302102825183704067584332829040556793645070551319434251940886086795738816256285621586372483245967538364984945643832331202646392527398770492287495949210338611424887511245540308792767648856220689601005045807654733275918310407298859174258415389552088117842884893313721677688915304760462103980418043213517309248685709373071726182680699735632344419835697167086994248355768782300433587669882436795429090166671935002988249378333434376179569480894402416324601194116642768748586742750280863554407884325141177420021954442866149823684655470961899607292874267836052358918243216396388432049887333022820322106483984550077581518532671278794980827998676148696787108015081858183890615259789971071027817865565466291843700932926108758831685178031097054147243551199679540995597950933255715639099766569705309409214472519454583185375003469200077505616566823619776015970648941384088976125574921957339511636860215774164317366300435940117469650865895169502856342142553667062757230188751957545519810967031743384972623430356197617815379809153391753796183999590894509888785876632877859343007444735719861072968775732709840808152082343349862413809042260869434948312733174623977230340422709154158371054817682748037216721535562726473516494986488620971438250016781200674682632731244499058862083449043928685147003906549980422984687194610248151024020317247907685845747331056455997183209530047313228914634581911832447263243767675475414795808552431898279557361600543656212138154373223888358965215705301959022220041823884137527093168050060706699517276977767689443042415565039085462177866953987188115820695424554330141331046623135079288171619751505748135316339512986182793314689991667419268088758698656486924201542083669041520007985742795605820883784311271005420320067569195867881755338495763128797308065043613370038954281892407629663650797697429389522717348319575106579748774845196626934713702607002283548636254517730363237973917076284143931464122499094161833265607017010915065159481932901368159839600559452874124290050272882466021838305881540082458148489568474692587418929451150293454052897385777424105615927708405093249095218141249231128238246309511358286205268194949386199055998414089237442889231789587504602565510294598432872490392270385178492572386185654965048215470078059297140171690522558841638800880379086084411443745783069270073172353062099471324426626560094603350583292848297041188310094711798281364419754746198075415472893812774281804941304800537345023476354302264679174551601429993114353061685269199999945970914086287024189898890181891110984608284718026614012908028145074498747356172044924600274581086207957443852747933132533268023203766051623499872185722395214488754291506301541267181522989508400020254650029929675180860146930944544268785957201150641257768459620480602513385816188146837499799872622297207676876169786075191029324468110142725667061344253418658522513520309029966609928836947388675869717143451052407010923925543003466801889366643577146363041799392678461661808758300758788792419910597377908688828935729205033408885084380359746444258631721443949839123339300480227011815158832846910424128999084549679947503302653309431993565006222599842431419614673512998656529202760806513648785992353694802814149287767419689562069374625814069497162854421179217446047798090811431472510196944194300845805775764727975553193204153396175290745721509966567173194539382040368281740598308553188953579772724387901928074218461354885951617559558707055589559159473114594592679251948792771376059925416896544700249584119944134324420243189399845180733526130758624491871229061027013136101905378067003135927874650722533393889722498903582664126174763977811709511709397804853346871373463943165233899684956053945106621433181383421397973061305516599537341590558347699856931713936406717102834634793664547357471514251076033994749898577603943927526654996574640309796006656680783306003791172731875592319151170168571562008552991632426543437441064115093016429158592898255435153418410241026707719318005307634564845552427009246471373719805727703964082038577984266124571874459560255515608256919065185587890449836834726886468016882975351908027077893132430544837832108132469702580575979021687083110389490437852738651987381271581531768353538696210644012103049229624390226922065889178363070861670739295738454523511298546984687170225008216604149789611251815030072842883904156189394633103564442266143630487261932168385734000767715579085623934254686652834819505862684150355265784909046886822413575334041190231578950219345946001873992722858699007863579251804567271083233243108091905437773461974567435775839069376901663586131388808004012079536650388641979768487334451462331719635276799756917516814201827000809470328721683526182846140107463454494590320807416515073696929177207102334652863930956254849411354825936969081453165720038186767285626859713859656446234849237098972753677829301401116205686260969735256931887354524137953187007802178287850040356063924072055481637037854797257300923750766410598499330216991144331223784328090805508952876689074966482888225912701775074192376504383165243625252411141801793625472477981615553038448965065161166603913207728864106268259039666092978326931822070491723595316004058781916914013642284962648872449651250981616584507616204887862703628203877871259700370663635515693562181909581541341183223968783589953655170645000056944734831198523444423807338639764722073932870555542138494885030571090005390096302633632036907742738560108886693524872720063223877412017959170718247095896574396054895930942100055751307656679363986281597390520317394864048361515066669964081770278312718260561022052092523348122700987341358176351189758251145289391839138523940749278347709127300033838316495949908708503445480080368077266616806450294812403481570655540527169360660553725927498487435606925094786683209696884327249062505048886329064724386302953434658400793088528905340089724764599267417784997654874778497450341127568509185235706299074242581704670846935040018728716518056258586476095741534630327195384320816642063206364441624644342838881984966844130725295804663033326387906010036226709291384122286856432417461048969380503623783582136845107011827380705972831163321692995682574567574381174206690420636789802117962983594532316338490055639078352420576086271052448905566861898158141584021021685868091136141928337798308929454569910591647217980318712946385058780605208188180902839091710512841366234653107823440864047110482735941789183080582310412400942157129958771623048121333851424834946664068685652127218190573593145746817463191420732348689490699581695764415381564466812543586072612108474309858992010487758168372607316829424527867257887996609560606346305734295045543821682628591419648149849647633041646288223581363317217431919383622587723729028457983754342416959435058812049690772010501368498732658008058669293493142378664966070745494411205629635923126042186203519450994874476023785529546666305771944773893160752259112647068474766824400371918587899497241047445276471009586715483153173727239091163248459223554177970918224853837951763583027757959017366221440806539581417679129280252322753774689281843133156560646746405428541403535558210728141890835079144787073419218484904949981587957647779099423598030789673594827651513239504732308905496480104356293101691227124152301767861944874181270651668700347569316252285016119739123390598176997986671152568021777103092512131596248222769602293302839041912042087059494717529612031470812105846316283958896801084476468402320342283410429927746512082325389711909535032520096288122094942984718508513629246936422084802633224958689418155966675662040615366075137017957607433072311048679795662692184903137564731668381406057754775281633189975217388927265911875408184132219772295013828053192331090054261942149518177226403407903763820016255063114271716251792869806034084689777779463904604366675869933175139698600850485193589729537336784438537239127589982654075426127691854331924584055243483372979251576758590179424210595267363427656698949512971298855590698641445927945851752546950724566774200506681073033473986057477573131843257629018567828715678867800761091804191586251934956424274570693964467331411365260242897587481964875401411921992796928102528778187142667655857823939078530138897661801189842846370727418590096302420568903406324667723278553467031643936189663411848354153288852063482785789724537724715259130517825556527383155059288210893084536226024146004363434300594705336023882936335030996444779427755947127547007225201202428797442315685296209083572680715705548160213983455003559329801673281761996698005005111053454798135083189127380319202503483693567315448438944900743519202113317629595632284951420304503017366509808274737353126232381384321104271019659254170568196817694555164917382162099864368586500115222180825347233376920041085153588020563152728635105757603832473482710088653971832826359727921326637695589557473015777383870620372581860852211483754221914154129756520149635336645020210544269667436402739737772125232437455393683896697162000769664059998413882233821405788753188897178251694480657435653538767064989732739838957594463341517703631535722958294270572442793859023414929478939796128256774982650061193442747888936496931289033408060652540749116078126701722783508901803452833452433192290792880706411842636702029904438776747645917429376875746381498970192869287256442413781464674005411001112457785573937685873599939867434043361372228520937594811041577312737578996033128745222598179406618242072918626099144368467029049143393900572648814256491886668941740200667926395525622400394416152771615663134673651944220570900108321431491162552776116039386783330517934627814356090524086641433445194441647302167691407254162772858537671766777853920643665462890757289631168596557478930512180242899405861909883603229225670633794579184766967892542701564059157489765180279368588088629466880583878865062903197172784886913907448305623668772684348410828591899876748307240856234774263634616796359707769371543247422850930336461719267120504683208400437391429122313698869634145284658137997577954208184484251812968347682000960231936569562708127510668052327721251049233029126419284334422441529167384443087993799243028154855122715934052455331141390528536906263284150921409489940134274270650299623525041723498172585289820545832410567959711228022134435812889602828771580160013214311024483191435389699146699681279422340491575789010605976741086296192448875090625086531785596073332270870585423933877099825749962026812872899059119785742594822255947361558011217595121665428038737793627129981718327360877856922543272732496427139798546595754224877043902477503433718382423390298896929864523046024120414712870872132915892640457189381253335096917042615219110471122443011732408757669153514601670826444283248464884125869695273474837937821452324599214853529710414310169956511874879579973888117000010953293600594727121637215009660201911444016251894854495557972184908348723602153020886720132359106304655822792042407881386612368521455348711953744410603751947904058470525856038947295730187780334898885742988899392232846541497333837243852549381632424090229530458543244311331153482754854000458973378118582248843559026719929737713044542432723878281139406250293443902863339906603584295398045569466622318054048786468951616261089941646879540499020824422395843268655359983475846026837970361192300830385345868118967721139469169913716825918380899001137758429513116284626547958328534536303802286023191778125484002288373830895593702513166945717884482448976532981667585841692242072608383491203217636105824065406636266633086071596792792358943406668131231019095307260722572359702407029623677345754002129976292119293419666868923221166469325002324017208370305543747216457210574928027723668526951622937403456254592556051011343182646890770397895973304824915830379237818594393192650800584060275911962868936093943936835071606034844457906563915685820338425589465690431673683983662751505063393052164854120205435953966149990917810595989827637693797971128131202549522207963865481485523573877183603928700659419788505351956355049674517651249795412404327934660524940030582942427367568865822214183829712017118311566793729404121000714515485213972373303989728015004682454311354810681350143540522278066665925940130482762682479795483214804844980365355203031245387253580074713199107545269682286533418800125970574630704707045082379979603412954133793712059011910273833700519563777726513711747218734999900333098234043872630497190438965177185647283399695932126898432075930316956125387661301200163047989241752392186406027106913769969783435938669769164024110125314140075425701712134768516737363941236303051686416143919152227065534641408274153606490794731830083055591380190614381444494722186871879147110663747488966354119641947907578049054092479207574602755309796431014545948824607514172721416688404643924350377453848911900138078084848105546860035201839874027268959301597400429082871167061052160012825708269054634463968043128713021130287786928478224571420795723903020637993302080112713504502028721771154917202725446980592895808710010063226586088754614518958347866428945441073693446080962268044793533726104045654854783816392029270819924263931937446929170031076371930032759591316282787193020310140005390741416778811848042373850350670385863883414912923041692750365013690015259150005135065565390056793167675309634865626309387379158023667363173366896087291294219012279559181651188467584455930656459336846166050677234831762258324885271834973954551759701594212885309261035234627787338534800317960845485404478877311774920862712554344518880807061203412349740043231901907445011655054303097550117744384627773603897031824133288009961257826141248726406549231231037588363834070536165889463738992431738357586911295462558678271826050328674045532808903952532665729210496117837718340049161145014675708372354804528526001705606607289480202787752296644877218237857850739160913709440539711733902674108591578739180608099594794982593580182908710381859884235999811194941268673841031363684320286078911830119356859426916180107089789697203734471871025464076649933759147697145738060353729027261066633877121829781632141687955400802316271188470491448016798819818195522007814057372873657252690318556924148695309501733656644421770699730937574810467834106380653139058327710845358908217338616301499725943658618695385671910930710947400423890276974565737338525698725926029305511798274316777523273577545927757764143102030003801775058081066225206938341456485655961660710026819732802218448845848921005647128112383668051058923225478133798734493714812321761857587246798867450447773651038322021316616226771917587242709558566592545076318961379260785015465031173399986090342762754708677537510429372280905831089142045876186234482368276195915843054533428996165205230585103985530619919863447581134896329381919873507790959630322571029956309661618920491164678383768836771232387717785175495962826011588405260066130677167806786884557326090582532111537681217013759576348004821110941997973457571670400768757244553631377250022472854718393170922096759536348765058050019485137838488386565092380899750560261436192843575751226119753016574294529495470089347291853094869233566073173431286496434450867926671705844041162807648100143269758547421710279216815311970550435373280772219030420147062971023697080063472918545483103776988201977765881567924304942718916984945984441737074642559339541500458851994642599622318647488510959596340662014862881294275621044118016287409405079804536483566763514578823736152030891806769627995172010267586181996536085514171302288067856735673038694195942923342371362929120692346890381690110129812371850773332415729541939637020451485126747621743682772993577489201808198232299330071166157191638382920229766413554895789128309813615910525891884518352692334032639766208231549636809728051822037584401116515027055143298567934462182428615458032878447842393505089329710663452856199755668803295847717557565599876964580743453906345568012614651725087191987408700182493923386001974801554469557029947840611550387578894216663766976258377495791550349413236803836844699246856526119148592651714453024760862306007473588877037239665901514641615519756961222951594706579357956181126076542614342984042823855764920548690253807518572161748493231962329589298767278234518646359843924136463385896413023927234580128492401900578720941639124387942796292125349154886280661288370305005116849230258881321494779273648486508354235891393303615196299450712521748001639533205435546639285891900964064752824441132977981612085356032605579901495710335415027883125622119254472866461270156571890757274829660264145122440044368873132418101348314378660401538850713665543884382614564514602749084813933659329656363667180180151642355056384264834692050133252601650616071176334635028275667614810309889070358823959431270513925258335139473351029938549124609394816036267777810085799727247345615856137879482085907873224367431917130471244168351773138991834403937266301862540580499333562603712483842349819704360170148980386628928906019102331263313410905686351414731110757612211712812896965678649643631988153542733030728255231042598977056094973671604419805642759591052390755123424066759551237559683458118172287230006088538298689257360903613257733787504092013410768389022357616347676451253891199741455259729944193004227312579288434590747087616041052456448152648690490749545577946309445977298755686420002082229992530385231114084740372811867516717668697021689281029614872050545794258213228263624498679987712370109350433552086109525815487852000299489144755540657989448097350242559277844626117713661339831132923804590722012670502397851095968940847954491199364601111021508310404431142828682858901011269534813023462720626700703231379834592681515720213985992756991159551117230934814203899634066357520067053991127196854323568461148598652559011909624571238301533553576920694045842883383089820086760374049528751695862574160300710497068865151153328224593440545358196254277699408667089445480733787224314178223097068101212641751254209899336438079590277763728803823330423427813426113207210761111681194317880880998296577486795758336265971994930745843755194816449939977297551879069431489621401284440932408083462939298812410537310790754009011817587612900526834161808471846040740902325169562755935352239908707282294866548563052451144475352786103721056716399581467186370099762408494541402762491541483682249922760851293204919729219643052281953433576851563329739575715564768753510743806710465139586407330549790867460547101478259599695070073176532977770987588655983495906991612338448393530272215307062671497505425419676057441379978181955086674566963693062482421850804942830016768394296845621948029802059205923613558257761309513093352003995209597697705083707602423010427518890464895282113079578541060954279858423564517484177375390198297973449976395817852310400808600511538825878639628568971177870048804906914578850749905527922631384971820850314202980314382501420916419262060269697981331527418053301525682870799826670478257478824924386157245689456543805580362269010740750000782025332495754869419415914647792651165900337600614625530186607693047623202627626875627228624747580424439439133058793129229161265210112270789452436028553761388262842326939600355877162671403615469552659548967699816309732860833474236651995755706095355579917077583150325818441502170885486462109039793995151916610154858689139792060095052581367702939165365348468104041782850485064419837562158621907802307629481614881705620562371466875434811509454281074446924439880518852746311345117984046022572776391186785281750687980725505044269059300734540742311372297361984270360035049471053077826209629825942180205769770618107778354929600347531633292722427444590043756883957862219293374607456009480233868071811030378938798858960804748672092756431888157820514703284777806684146528885595376597357098869729658090640225309487664816953397635172901027019982149175775318175330050132560597303125236598857200772568599036970267868142341354682486127930802747760935115306180787064992516414767406066991853815662444800900015017099907175900274235377163881420190500770882010002747055881749863417506639643762165233551440586100313569595180937939145158429888373777061837097327251989103419766254093350546488329715438012982526594050879752741895625432763037924923743186498297426773327353791305701379824489714659833311116702421857828947608648022259030667403074230814594614550849978380929831116664116715446025422892679051342973745636069816576335906341593586256102659633715659082340256709340137863088924559387777232324398095241095299486623687533349315498161302268840697695104634579906528445682474782572510216228245940563320061596714545459221987529643122367565771325536616201373123897315179395589321819942984525958388762966825995289535810109442890976474052985055113749268523980464517674333397176873793930362910988541463421721803899377182810681037642310417248981266635946126980663051693279578912658338893053812996879696791566506993488506590055544802084991792860593855011882523216679843695472571588425751547382720652117704383765085834542099155687295431698201459231063950312948943177202221457246406087422450116724354228366247038458478568564660902017498504169153108939184679584173645841068846107944827024327065409694599550474853683001781187207890771246577908274064088170391790642621027665177465088438967181656191798827026679961018107197931323356561603728456629551696967562419788711191026852085878427011212423578739570327173612371306731113275339422298563853279403764141298317172905579476895694390594603433643620656437643438136050124059619903638692894423316786149612040836524065595069983180777104618931048258244922092713408481152693915678203848252001220544727921759673266207199939704937623759467754384227695254297332529596635337689237938256284580897301336829451207833872229657926357312848921617360356599855220771944084352235042260329462467439005491045217277087426796498821081402671879260051705048412076448650465219628849359533638476554681074371162017661601860426314157046087826765574505595385519023778686689452390013726336157532750712465644792986107756417596068382707123080649350157296523818977738152336523867933314966544038645183050149944317177674976104424000530244442958438390205222938385591833757901972066444031500183701970535372655134916759673834644602782286866734933796766079422547964372720844664446420864984855031673861366319575282016354688786951988403377743846647986479195202936577639096999590347548708063708555666138948477667454791128992888509122002132593171368842231171503785683366247783062723092957162760405751321162073621687751932589947301833681249568347718668577755342924609691764231815186834967295744694365604047628866729907522512252424428985107293016698981462905807839251008153073159801270095032973491445840410724540851350670313229894406736829473377203796673648965503730281013032486937951317749415162115892850489396382367467235282911036849856321000396512121513986563811815592189800418916866814260960701129400087211056057952465666368368735959949800089881906454803290301327871327781401661945452702663273633660758856038399994470562048339777605018656127332623627366144907589668965545588805766960886920265839733225240769904744944690051588168705315500697485893286375311506971274303600295404916282332664572736352719164087238154007828027358555004728836787207582755768838623252528348159529823704541751954570329856522965092333109872409995404185271980831618839397878189211065787241833551571423138594719780931738910953732374954312772575950772468126272040788746680791141378645946178735553877918094532706622987724302915966998220226097463011072324830181722489061892548397156764587143071023461620575744541893009063237262354584554260235155474700728270229393603323341451787605462913985868902295332514378633547716302190244635094653437288969316587537900434828179963685597035760794804095851536867403524633017460685379988900074744060493011381356659432509638327456431599507636033547334823569137676878109260567377954015501404679719573184649914011389315731681145881299776185251711362597471808344071430401342836478061824920340850873199566223068386474275921194626756075800927671717778937367326546479411587902329550029695809821045991406822178054956153031453874176797550973372978890666124258756339050336272158036365091631183885481542394872529039711132435843356361797823089085461876375764820274050234247198382397353225727341010005115853078413247782158591777530655656878734735353747754500037968679185073284249930481629925755250596913316198214400066816036053381896370776453435131476858845163376270636955828057774157698803723998911225946332304372031337448151777167608666127004354500867481537165337249341516051478745772392288319501197182948611188131969820758441987629288475772824421351292299338683423087591357202488357330975862459826484700173545552815502523983057852399265216720698722308439475244106722288141475295789990469521447993724216755304029684417182038339427471134200181578542653748014109164150114240252703166389179060251255699422470723359144215553232595725569768090560945079071649828644207881228688790362038885760291838761022834785422071647365019380672143238960106585775503207996557556710876479136117570895932529770993779499327578381295235524998615312064303176612540245659847672538773785166322405440003681582759647704409327478420114798227724571354361946175167837218553804445716093442278176536169801352331238002208851391986926128081530508575931785287681353144161483827965614687169635987417027932846708758111585562948817778084959200958240674533777339126003586341759391978122363266045373878643826441416207620836141704739443734233663170845796801397223839233984257979505059023037772539512069157298721766346596395069343143869744823034735777710428089083999550149976864367696529023167913381844484643231957634408791691985621201527067692457547895500259259364492140931446799023738588179789700736898392172822000398183230466545498200738675758793173508031862317436340930797840782213943562791922473698038700088707366661991276093478366574552939113161823153138427571078502947939666526833510493615984019189891615447436606992509489467167020542305717914088077346766861152788149849194774387671101298953610860159008213301110344735679512921394198792409421655901481522542172318420146289700398021138453369049420273955569119373104026747183917550665994722168633285765045108144065497470937538485399706477093177039414995117415919966582850594598236363724221270522721496134187620545664554604966452375705518196047182221950037923046317032940932937052252282223893538444882356327880830770100431973158879788461792305163131491693219436868613481842293537713903055602142958841645124475491806140921345219333449745159137424079111922410206313818212938602283076878045058544732187635608375735066192703676899606785350944358121721963291715325936868755620375123824349102808823561290292692752375416325273516227303990680737100142398170850243432492960496260588931909588817854599394774372714020405805557055382336531828069752497113484306115828273624627854144259314976836395313738174233063852171986323531337535168976891063319738763182224090960306316920835971522426317968748821867680225963588247075560757687027091805167236182140722833193895087791768267424800880210676091339690548876852267530530146162753481470405316539868907755382928775997782995032109019600497221668820859978877066297069821264062757066832745801662263103555638911173615335286542543268138420032920003034861428342906817405064768133204053629461841121036419803392220184132363371808364996506684526113380020786101221350346171522672083547882620926913932450191626745264144569052198865655670616823217609495997066988522584709259337257084967245011789332423678721426063136264496717098294189149251297912798707216253630728505076098975866762163499465138756327051396783162619030257756656493080805143329929812456445093264154770614622649446795121428171732013696378619602919911672347568160543774393434378221437567899321774226009675952660636658667740032981702271390333950824324427814662025448536973724823618739676479353959883237504498310446156994934903352487265595559971945415837734150553402413202538346567659827241327131351148220344136529418922481224795832049504544300704034082533645223565241749520552113768161645219007236101785349810074811970562125876137219175163085750490574332321073372096475832457972899111257913857889192474129708443654044151801791788903903482750065240235540908904942870012034203961522236071649233572421195347577828326168651523367717329811774481004480200673235934667229762786194011900521763938077052112332909009735713101773535490673701884817298756071623355214915082413920987301010303792823280760795687219685693761267910644432882707969863828755222377075274421945116782888209950910299779233211644670488517143917160271795688979596006937503563170277133892888443438797246752282444325150099499378626752902839578353814990444389934150985869596545934539312149733238128852893728017793046452163046795555371127693208261262949009878970361826307964223576855228869613487759084867323669490287952603413950205348964154375234155640198125749077647627545123098945686756855502104344216436000760265328242514487198549309748673546466452486151450490639921834491532322453417858479887626745578247606109873044874025851253798661911953951851867628963882840316386123917147867403550959228353772133499219262764767793234804720798875819011369401869317666964547866608697300635463108556334957083818149081353579593336538394181511089554325459301138001101273773179309198364976893587897544087560321173898225755543645046980117498621619984203781502128574611661342192311679955255424832813288649828122443999663108592880328405790922239303082172647290894871329337303436320929314999779083428100123026406702639641282155550006844826987340208686148609782550898740374517558989231948133723913846546008248340895557256715873394878536100105410968308857666393127687242510635714732724547480905120072605518269417548908676533780942954378509246918460202416321004500253408645302776224103606694827674463948531849129456637192444753466833935778102983174694901347550158381650560412089103517863172840655174018517619912514414248202350020317823955670894250603777209125435824586162389116068615921101212484277667568788313835031440258913164292175133446987311935149849275988614980259605221899033407488896302376313822461699748293048536106070700572740269341124183619616518536261626807119815673523309615479383136266021679297667327677556677957160512496085383538992987645741571240839044294032230268560285517498154932693137681744169287771091774463451153847510016355623937808287072790173013217647793353911919631289319570841398529492113655534730830480840432436482827050888328279025131230404475137607805399982958700790948189961870409240913095950457346057031037978750411060748776543163723272344851857039421729321931953027441374727775668959538019862405848927836908037080447727608588203250976390943032767686676337532930995595571869467534297088978747593233315108705253711609076168354157040145059286395175329943305333497816375898233893813987308711060472862884158149935891106090629951406702452416810264351360522669598387283521503551072747147249250761452213610760796839158665185036366486211616265216807538102483614519876609660932081791575697553136838415680652303537024818460178378026110939548099518353567468191638811949346914309135064018081878109634932920642595928145319791190690860721930107836740953462829295062865924128444562584655494989882134697524750739758473428504491881604743441415878002064318604749756490416619122973307869370193310078758405776326861928471695208894159755556492448779234126020550172332401595085296319041326714501635899121439319106658790865055100365895485163866500860100840251608701924371368550921492338342942974416542524278940872150835976910724727645035687907168980649295874458411473670534376243801118385064530000422499619173829807406657403934519658742587088907704376879350175009194410266900418116489501612927962384995030744826554557677474211102339257342321068764945556552150422750233722456810618364912664367120558197013883187809238652233520937156225723450774021020879293841933626096460092973596713351979066117161483565613223461775239467624643444534310684722737411128793594132394237277807674052939598916125274026292585833322121509283613604994554883989506054807453895367869519595048332908062756176825370694171735431914348812408009758328067108917410403478973038397134148752705599332300102149873863298893241260996505123963323627914194947487031819903422970683307335780126603611450738605642839456504756523880529746625705963260686743955510611643130897849154616886605953115947063462410611480488482817813437124198727743654698111553320050816161206326486505664899834416559141965680745248677919776866324252765456012376037886446298804776180136751313341367857501304024676288293343482639655014751344322938240542602550782008313122704312590227137630419161923945921862469044720416062053670067742287920883033767643115492335367429913408322979552511603313198309415435826331261025688445974265522660215916741336425715642289892903354369119834189027664923629043015198907689643167832343550782968710212077000179068388096756815415445989015508246832094758809869882542657259316642000731046200064846526983659554925880203765678621853120395165429351683182892589748519495821042463837858471166611828995290105379741017613644445459589799212079072024231476421224551134628380719156196417365433569161372111669151275897220605916715080424902844962380692631336209544891918438394874377842307759375386242985652323232718974853143703623422412155011651034842672704790795663229704910144457966240590055995168789676281351834116307869349054464493506957063997631176371234210732394350622995053155866997145359376387241660590492776470157579486526116228370061058092974467930895490065243645458991422430109862674048357458153297615309238167996554236081451500162190013421428398366346030488585116054430785260439886344571349720387622014357246475383890835242635595067326749393592528054831008182356679584531345986369841717319153249150868939552494776896445933077112417571145477354471126925192692322789730549479125762862403170316193901715043860029301962853398747330328997067635729060628393709910222929260247489070515766343100405963142773850447804447096160151380265310800466068042920890562838661511703717194653427791280251877153237947135783297682264213006322155520609730067315926740877001885663912404958220416944795086029094596757289383837496707358137207963831680566164968630216296873160104588419074613282657357867720877313327161939524105328283920034226890973204093949258165150761152492211126005977743459760081108464800292914589201770193522149617723440699401642257813157741559779418829751560957837620171121833043853409021712135487171759949430884699733079408764260463862550061890836620619034569367273293915327807912454533235640234683817594368374958291573513348929018344758730622265376105959810488875927887364424670661494233932826094387608052255593928998003332572209942953456501267033709744811209237876711560129543890022708815990317829196173357444770084312473049169714639203518913896575711208182338997725727979390983030580237351109520270269582316608571291335935623752489552490492786743773523029129095029443449755665634226158527226226399931157615238453738115266762602403791934120714889678501878373172714570512178833064146091243892921354572937008638901266075597227878599337259647604913866315528183041280365464821302165635112965739550758170627521139020311625019326974774968231757612366730601138555651778107480073681634372052251071054923071234194618632333612336675672676137368174437025658945366613686085762757675772834285801538608505826776653563855429602474535035736902844023369077567723306776205971121474019772669655274683963312931076633642402874325897589453910061181210206075834194673471189451395787554413801149178777777977628645792266301211044370351281572951124375784242664013456835898184068856477394241527692256522753644214211456984183089956612440816342471510101276031645275038700389797193789165464447410206460907887709574377710230869205502084672329638024525425741265898836004237856963127943161586257604102509897002057546581589835196335980712692023820338015971042844411194051497259420069830420445809530148392160743054659367326145914851707209390773752054578294091705282020972208255343544897315127452963350695074690369837004001910737233249444217039437029733407347334602971191125282081068897702512972661660144131213432837783583203817768390415533498261436971357973314649056676910245613119364424238406316567369514344121494832188858882369212071541220564309069482513846117188244593937635179510950219632648522579082890304489396606869502968298785821862715461328153030567976834315723302140861382306666144821833662422014571466421629512909438026935623336748668522345566860831828756559489468522267593868451332153880853013881452560314069289349270122138756255904339290456980701959898625988574695502210500531359787196907024738557786054508507771193137929981829273207972307721195777857800549240381240942083340760797020554654746532388695570341575079802449293912904406666893278442157882045879722226538710757601077334591517087204727360032576542337935808222266192330082008942870780618267001538667170063785222863689966731052237949115482325637486338751674509497751501890465612108833682559118214183157615392992195786051549525663957424038526107632459442210051371576449859380667098057295958073305346804928203897198387033708554352451117890048633365633465997101516429454607147542662897384241116935281952591683495755659867049497321832637160778087563567601947987900522064008870503917550337531510539738870369443175142935198349226858186045243296015373965799874350431670608527353529980484122064408542154284591549702893930956565201479802852205545515505260171498725447973328974629261927508526954712918281596144640628712309887352398112760278672623037228314967735941833569334529881060216366176354430365331646072354209197504380028827309071314733475112175695561934460266865724380675278150112192454764759786661218560138018993628979098788962956579842593109386453224485750943050719089665622236423638526650570305587858973855273995160038875882292538132385608321399827856176842671529524610276526984185204408492354557871455456719810735981237740140693733370730130254470576422430701270044639710232976112982772034109307966204396929235261494518573203044682460098894272157155316945557466465275372011501205011346351612754170783869464696469101110222547740498396226422386691335150608195830579528211231759303918308447164456635934846911875680672362863828389933761418910985806685469158000790184670586917889105852582184660562999653181785358393214811806113290606923470200769842634043090388113398216944433467173069228430410895942938023071604567538011244428316203102788354206263925237460302102676765037542183551082476153910453643271552133440851371121373386383595391998864666597137530345258594114463546488516815694571432704666893920387487870732520580926613650986506794446393007048497746143928580894899213713164221562209969817537072926213877885749016945862979965425838606528689626419826955040884692792041519637024366778958629942387952488409496220402335829728483450924254897032885185456561400567409760258562014071394588424817837090410815004503122183635631234085338610974487548856486786090232321117784838324749503885843721569265452546885490189590945451293445190369809498818164952803981364211687606454610428852745877226048842123676961724109883810305068648127832391192455890155188504191042861931792021114291551038185603770367325976814197445111200846265253011800773052963057314429086271980771023387432714997611156352839503909239812778648541836745017831366276963038502364684482469663477713894483878271596208656540602583194057207354444580753886144446850214058551351870509182124484314382136832542219459716523990237090355594384008011378156326645337683731712646498651933469897482223737398142121974232340727115241133288085827370261992044454874849733161484901805206369785381518913373204841145115238212500151990260540192336815874979270993299697263289434230595033610643116087527438076261214430368878303843706107931543463486905791031004365161861605154381310250482622580538685495933442237187402251712844950147454641519080514666772607906225984336320201240201675067953717498277551973255294721487198652067178186749659257996552528600544123721301202158850913983078204183040791939769255755069866469317279927188581360034786029029070940793086452247421631733567263841695670620037700818309290174788882555426964718635456173395851959198067700153774797912627888142829121492174157307894768236332993557184122885733714382278091099276665853847098569949257150046371117966795727745871846760520779140379979355898212552333856153261342903537083181853144963883531154886028220635042039294067517933637601186368887560301042298755700058244359343531831473395227565885879229837710729912215853632773419248193377869192522855867453278029746304748173652221778234312852051092849297725713716476258248700906971964884079509167069572561087389285011373782825996169208886613701730810339137645769176557238105982862701054632298487180400096693906903600116326871553664165332364138287399845102018485198469410660224894236769842824698942731222566226795207611526419678423483557720065723071471885249545403758484300158001769683125973879551055114251201895589414908119864634795603200224919632333856481985155460625913689741347489599463204959790304509824839155760631294262368039133544377083375870773885451881273600596556859814104357338693784361788938348771112583143267980841292335831937973766058421400396297402426327689253294302340382848443752382640594432009408888853235817249583865578163655894729954598772360139117970328585333900474784567176148257739113245091154615585544039456196286925493387912347331715945499972550987505539174480048068499264369329237063706531653050425113488162442617174367687571819377971311940664421251011154241633593744155497268537674034671859155930433125772446357963816937029944485224346664083592830074355282633325171834280883207613984051688066086172616709764375964039620591233464852702860918237720413640410243969135586906489192647548489360885920587968194764668560429150810946169783721409219099359683239198962278756241622611516605308443512013944169716882999929244832901890559772970265818625505135129473004076555067422975865280641881230035708783680816823216581062548169930525345522080054957341655259499589903449333097947535395770296161550005178595628900597978264036040160489320100493859090380971958797500468508506671994587419272959133094834391597714298331160874051326209327543565028410207421901201871155877346381470500141802616356722183118532227342181504828468858918210637855144904497402061767565718134995731698110166216813220100674836351797738174820832422148283925950512771568060517854408322200803987155704690234998694737980046762957821014019079017908620138191518415200151103915801337601002775184662177336833042067601361936770122789896115829421918920550611520019778384219051909683901035197217939202305115208775538165869596193839305814342831470928443221746662118322252383513773811149997004111297536872378003420231822510600453511058628034123792616537995861489231839514878961722850427698416565309499490184181050033323750218061999279823670135198234863487168077262798898613499544419963972097640875853513136707726394653598409084320603440572209017819186090826467616776380008209741523359051488378837753818259198736201796531187111075168989152228575599765880391144978252884961169819601333363166520122393543116505784670889472952427361493679470527257770336128772246283086177884271513383691027899201293768356316566683992051036249560185177638637489515276676941096605780287885505454717179048792141322733597036520069638863450261987485406142247623754226937849231627220794108597437753656427997232399546741187848246534428129848041393170340413761737338913069573600661311282556282118103791619895824556789682833421774383295084220314943342236687093299239515629098677285524862491902896230973210046519845445070919293293378464769311382694151903601890414427238767210228933309290344991353707730698849527577876793709470301820351874804902528159455033709107197300647528813085297451581932053411763594590144912076438596159637575654445474303170138755518625313906611811262763614877136518561189568308601621640313044473106328073748513515101795010280140827437084747790418606803602017394801496910205585778433710639979352561791703449791985383904446408447052021817906089922625991616056955761265973896161619668980123653960433215624556436804446645220018447286816968580970955831638203726016637478453626446533107379909884272656189372426451190487568221684351275515415708446331059862280677357654637790477165078265806341705057455459096044779190570625954526328730679470686668332586544727948609774787995289639681654848938420759961633735607030803875244292222639355922476047766459452335220242652394019766454990539754358243073803885049716389031120348327515169121568774332829113469553187321353650326524052135530261131235393077010928110187682594689321333162115563797748808240205862799727676503419064487794364082292881546444211591655138002215843482456052863448639740613913559394512559780879343099017793708008597320533949789153101030133645568343350955802525391620504777545790101393576746453991187511706723323319002004317525405919316890869420922851110836787077885155807285129390559945287519152048360280343862946408216551436632065787600274435619065830817867147821610737741230131897917929964130078131080205176235970812548614782363001575186133681633746120339299103070185910595958734853659722349316624010578187559442003682641573140062989228906294569686606733190155243453855166309178471434411434293084285601332821709495049067988133145132708406199211392395010955652024258966502115477226506787040428864555174890530909222190737025885082290216968821864557844711358038619552455371015666246262855062825645227349469161582043802520259276254829134280442011408684377897138450360564677320458876008422960828299973067209537397038522645421694283389854216646881104262911112480220488017136205381598898201751113939729345571149935788270197717061254501900178874687513188684550574499639878550789900062846179900597277943948783165234653474718708545900136928877584231388125328999155253054514382038326380547600802224949675489336889473144391409920029130104542378767968592836990703571584816884095256136428345167057844609152686817843722699415320705835109352677674364821848121226641229517424701146829498029668172664145134726293496919264843449785828863822458930382932677640669519687929427459900425764507560300508238371879307353720092950797883029408420251268643567262719867910820593375392467577610908214069284247392645005452906994228824283911303489381730052466697752002741972243706656056269610677958528213993880126354886208267748808459312040326233032519755927232741483555280763718891205659521716636861035463239224202266797414714244926798658943375134508816765630133057309956623954515123838616590959634113354741862149049459335124511665363183606188562075200905356820022114093138078260816068123478502190713141377313297805189509118303109312437181227080872018828422297854363145040209612537191092244188528915756150120796449685046529100440433869960248489960962823405780143415982503089260282677820939114521835610491563982310079901099497985579550224681187029739761143331500271428861866471549168598361727175598105396345756384537591293423026873798906172544471489928529289010503827954669300559594184783500319880151628008235097747417485306333355741423658490245228240078395105453980347358617666207112502123868395857445993356117500380492664963154486832382416705274722058549996680904585838948702458726597131113953908618745425860466101839520394365837449771155094542541235536269811352793730524748284806137996589401432780376143463140238857805786754555476117381665552863586437727649620140252881793656839095478601361557853062449688869879708644319787246916148920302415114712560104707091758894633025280478763826845745751197240927905871089943984237187874509280301457287090181258868833376302771806671995900023554411448358170208569106536706745176018648825735513571028085013132278868305967804128995535739181183983640488166907066843091525331947684225751149052196381719342838605751749896682434572494090896012090822069732585433068843404673846473679944711813493383570157187080560675993508087791824586989518218737088741399541392856733433703964906051703536998842649294118672664844778880585497596092815744677399979984570251169400138691778668176204368504029982140904211647237656422599062577480570304907314370658233607623017388010383385206100232195014936713024623233995536719009257883411263375950399687838783253829588543087372506389691899101928398028791645963913903418057969854524656937821494138290170832808998207904706339146259638034187894468007100617084045912524462174517607375572117418060788496547520949245221460839053602928724485608065341422541081001291031140603592667628721531254230805110616134207607172481555484979866445447262166938434423195322586434757132991953326099329606892639803023760506929979042519149068849435960346326094413901488956216868593720932088690748696378369268672651369668661866076932986693478847989898502385672636650207397971738143746257748847030614693201782122525771416375270820593157244533748368704945669114096464897712827653075597735301959151019391283140044640382773824878567820122790519010617209918599567917128987817944240141303053063848096402632350940518173674258585196048967223038970825092346821851853995516399294886723361542192803086315454211310887196030195113250338616577446372549373645053430825456635107463617647626708094874816562695605712554522352284878994060204818334116622591625556995284799532525149768403601127970840567456090025833321565691036251797605618428786188665959690137260652852180413351261196711975968950742872233138340770505476495273068925962249344016488523367988934667345270420270777061762500953027278818593542445900883084379393734609880746326844400295506379714995729052328852852730230792516585917752754642339316101111896826360960489674805128800165669059747042621073569653220634854028710992803856813908443644540169733837972278362338598645037364825464751434734649242208149951928804824986476002260138032841274081646151378944332441370986195038230664300243818117038931148454192454796211271337444305310917603266911774947686772397214494995442717276248547216148632138060573185488143728076855450937382573226530050743689838381290124768404025421479225482995224690922828527840822232488271719543364462045777347855923569981879635587510018492062495920124374684416649710293951130272588638701527543379489554735929393185060599588272549956066462550446716645892479053391470276593880264922795183204452839504150343499825416661761466412671528240117380105581502254599397817164237928755923973484475743569014592418483907650073497836275392625867142730932602308857715700216473223711022300967501137147731198288683318007606863118059699980473783625703584164278525191777926929964328374840896947207468859811691669407045343883041095641780974653183542464806080579451413200333626044803610511495593544843120117262011742617068027463181139464757297637752178129601321130089538074197337577274569964937086338111875373597150333295799704296438793659679119410099798177122796281082059683904943141376729603114065450841401042858293336659761005299952605920937651711929508232105896570819193046791087200428448772338287970537785386691676170698643221690435236177134469078475459357680011649668752742230050691278505554538805940399008857545070799872547710777633854163605804017178459746923146657155736504479273743101875287501422005278117368349953949256578397115309422146663551000441928116545789180760305087113159865834074681406069545629203334968078966690228657693145244015099838849579274559305509114138672833197747100315704589461924391799057068017266179075418308871058977659268157682483873318712770145288725332927025089040531263023905748636441765326787698851888889979623408944061602113077209155612311466302108691878820424467788200164793795720831918244558944537923807682682523416373180825121018527938158970750231352118828285374185237534505153312907847065453392503732627271218114343458325547078690388078596198941369717208784514559550065198072684264425543734899601671284519846982119501111204354148951447412121223425514447344502137016014066903975037525201491827242432482914049110544648304683337043871769366887653080290139989241276004858856490336018455121835946403468528526500669698241411808489880191895897692128638481282570410838781957149021006859103729910729735458638926769368066564819613668312470894144745305806328166026889258143368107291042532699175255778527608472934551911001210152420695299984457764007103090708745421436413553488970757304347040900791170681476351455272499442843663805146575022854886439250233295532724523769452592382634178959959891637946999761180116358668699401345979606890713418866982291331828529283986702306114964213726930346513152260578135782700056058753095973051215880419548812835547540741845680232101030186458389010718638115969350180557111180528994342200104354750729345597326956863426560105945185356673864162520874250581654474505797326240361785877572531415334076898253362430809456961725932437555218687703215270913389463529102697339940318027559599839143475864648992439553742450482962769722877594148272627517775468180002466332385854393909504195758522102298253401780703404562336526209542538382225690242745105327227596177736656345426847645345305188001908424672484694413240635466104876345703408895471365935170197413973835852411456621092109738961814560035882118955842233232099706290819638564389838588415710708699767566951768117181204139645465206933477168109731106789427132713351418415944230773677155698850372379210609677914137662504913287805400990532594346681862761945823452132252841061123166164465962181067611730378784180283132637542756498557631091885251346411704738032526171127232961636319522913419209961034299305147739829411910051250995195305515151084582047306292038702299455419835705063999023563573895345220031859643545484245166921990567105088985674235792732152202781693618002471828179404634504074251858374057374191893093969192006780563439243104223464719190801274779872121206637235299286667442385989191125269220475564069545736062085511694855396682387293000760152456389911112245281913517482838343703961753950982530935441447942540513903691711209509345014486336611278680853563173440452015588546055964940963828108326398704421944523155699254768873591588388999973683016305567080042987322793343332404369812093772224490851039082674548348648729487705213060931429657289632960069786744982016636908836923166052650133441055220695571343387684258227252026831301309858963175707695668187772662711028316215274225277098588464933618151895275733742313589989971875139146332650929451217050517311138310689785696368714617690447304294487542867930530597283816479059746496970934206787894755236187008800675786627264215429627899748469510221133676253947946012632411679722958992602627437937417943259612384680844104174926528498599253364065654631539195985636234012387925094713975940782866581179071581552906818922520115553587453184920721711875854172726911218533540187973663828517787582443856446164686172798665896736709324214206895235912290072502743855413289871976143029037014158698800313885508732151038811527470672151085555269892947670658083972678926471779952059379281262212068178209799026922712247657786347560368845271571373408450403159901172533694947770364102012301926207098548534930775867115624697094512871108630839280757942096079432966890349686671924837927497678099669985008113126731342584857233593944770410969962486316992951499729504720138291552167787195170496311002484642389126977829551088352947825908940272128064411997275049003278157964027052898552571060526661371355918683972572277011506778727849551692835471535988835268121110905578698510672490206503425441253933384862107885422700954329331619770731864523766334927800222853378816664778838020103265453675643608319884402961912554605727145775139015947042315753599412991564278746687328296597851357415170531820325811216632118795434959105687904914655592570681998183428397013054405743609108533850048837816612872782431556263356676439381693875318437572721646237107049434127631220483611370522906126723100783353475763429441175277805661910422640002832752920166677291008741817481476615954883095736523855736279389888287313481868526497294991262222683701023705763021101912185740394797971681258989836586078747439549320095393098096429761911403068281167323176832303323745427497951577177733116424037729054056105396631692318957245860656970291113132597397115075595123951369787732685065037999893069635035224609434887613013427187342193001210869546813382718235497329736332481290923974827321360444474598611830459154100541110727755535416092890948201418156255816987590130984357359440209007783174032828683950138182696282513675504572392001410599786908060894499406777891122336084334655309737930000522896085123299378007188145229081397867092555647159643106907431054816461639103856386730292671205955590126099092781366274996134338625227426020587294810387617486725374846413371605685997463136472154902772921124275761287296430534348813193885929943538566180315472732156961133866937513470252863256998355900397192146265201262343363910415497759094174370511244112835291267395784377969973549940513509492891689599677762437851350198886722447879750643180942231218149240416065795078005419851034645277692813184109270937064494600573617683365560151407392887510131182519314294879070127316998469514779753405576107929019415791983335770488448793517629814261941085833962222485355721627323267731365989393679639738574440662133636438137687392083725918102374032276105442357983888963378986073824650916975399166717405995707837878448469665630731746212620489641328620895205112341611192873155416168434875895346512196333403468826308615133824831995800121976778947525606035370100010903960668446891929614541213633108441925562335992276953727198852066900063693569050218742837217262778064361075190483285577000560105748919506980889673433763615122734444356075399642395568044149622127566240368918770901943157920256758900216036455279341265462860714821864911923057759504964658206105139378119291727927356751757511488725233695812248165719254580492529361966346816661490049057460514852885692065439104696639148111857650135167468020019019988621311025466834554632128635439526985967586220248086602157775085604897045025335015866827320892255561591823475633289322267193616548328283999385682671479306540290509101066594955906441262555053436062779438592860595220971809513359332331827012399893652013195151930575254191557111228071125011038057028002632620340064835993557160515486768577325030891421278475538766863231763941424430885508690475933877741062548976599658630091093786231421731006086087762291904500661885516177100985089116714763067060038695242321430838595794981960836523326062553433834550132554960873424276347012820642611346529392446305642915687925046734201425386853315854231132806297403490319083709842236436742835123959932781003343777128774641765419683294032440998357042845071397605569362412230950241759163533051653020046591024260032569187283047620283728493169494024536904933130120930032631415808422902956574183660438225426531259956550853036485445641416872140000513497372441504274399067275960371684878227550476847293617479632333878799074448757044034722992108274109009027930461989787639138977636798911249676078758423611251572151269655582023884025116605397711193208891483579121471468290762745577469038078912217897100398526086146536959633482929820171039535163890289082907175197679000539225489869935088343136576354716778382315904867630152943070662218532315315472018365352632302361253988442840209596018573012364576409738922602898558873729536114903403777349501178893845982503899381064912237122800304891021785423674800996078655934759029680448519563622005012817658761972941329454736952680126961943190440691215304616674021689548204608712559189197183562324472708062347307239688477974346520525885672993610380494876140588071909492142225368179136708597631177196440009472084334768677572943073244384279027268763160337222916680407372533777444821136098909430509304280617367985959434384859884775428016145640956365675357793488830682904670789698739247351857650749253986984476804957977372970374311888120610328423172798047589796633129083870838564666025936985920031988740520592096163623826009896328910828967468311949175945176364939407175557115716935025609490466594576582285032266441279196603300323712283386740213161270942574493948076312920658726577140354943899190398063474860806752454475679563451599753558159081644678055964419780831517807681532720860811711047343436111957750410126395569037629610465670389159441796532185196351135286852396365160592540689326483382590056682287673327199933958971541529285919881465706949642518339074915583579247471635799175250737751365187098559637434361786588511161580177794750927292020927153759171914597734502938396952714210022404715084113941851100522067166008856001247774819329206773536984590314313017439747026437192794553625903503018908991512260622709640473259180108172756507998202682515168017579677552051108150098013858072380849187118069123568196102957459339487701061864132148364158445347342870996140733318054081781970444524518209714215415151932353082449616948061966673691524046184654016150025708159898093344505843490943269356727921639198566798543819648936463193965389243311678820612211311986403750173662403875210887802087751769695238831697709710121911461742755243993313331328741683402408641668563846020248892787615479783313068402470171207531728632870934883192496877535503510352502462906528072617349513853853540410597170501423753678671262458070067797317529843360349741158492616970379652102582008707098507302133969930034028139939594717889902624987437505042621828974823678552201057685243397357156067470405206185418462826018090856469225206605008665932347536087360154707544512754875135557081557295568013673962713856109026043867347181626578993690357346853362570201987184656674168185191191551550168300806325931795923140031664308393339096213870782281170165038221967769102810249954748340040409261522325420358016200560316193570766775327252377558365063615803856248155897500962015095606069468150026939551913957385478561102835817340375501591538030543825867061230201682836709554154399448292950776733642846659674327459885452796431771124230319248197758093067683752496369072663167898983511869012717735249522319478021958831271062713299002944828627149518231162836632275488106117752127151322962215725492164020465306122664775560909653277216724071637659577821165628505703284021405710733898820261180518833869980391517067233638056322438463863561035763499968086983198535649106061096909144671499501619780448922161580272737566922327914220808101771191631572455324910421269316476893855292721251169370949838227695780363883508629311837710113755343170958774421291469719341484399004505921265388889718148007934958378113014178237496881273801886511659530956411514133702994898059639863041895562897104668737203861228381887185147942357785875527725901276250557219564352990411049001190392661160124579188623857428212043733907128241112326965006791962097527894211682363271516101195199383680805602947371207155368077734986248811315630100468368062736832479044244327344246996003045047097201840945172074227349032029547675513580935255256655777517971506871214000903323612387970901212259748401573624779411942731601832057088892921044573102284752357129133649801007894575438865959064313804948783501870301125756493217339097396423284684776163118444376044940409136065329723371040825312784229159782718879062004259236862384352103061595612577597345684523426296914075885479621838689512458971337506425908383140173309822291462700857693031092924343267682470931719541041250958319451547378207475531182026032237374188391698889982703983045990817364351608097088227664271868091757390236888169401468789153957096545533209650615035333248615107995797707313011343252121498584338275101294319603989843651766200071977878656449208515143744841599343042488869634086150014166117071461702996315028887775435743672716888727997151704362519875710990523291901015286982591285445156415175761755973598154567767025427062773410010895292812982485343537825812357788941765263741274872969279105608809104389030316492226993912769611174171147665687900306641925523853865197206993786740573501103719802745594809292550711714301682938698710594281266039967474858009458771229601220656004596104704694351356841996461611265817712397385667326557488057456300623910016545963786044980634370667555455606862891978869465818882750557620048269539806234849518110180774243173366256938777225425934423445849372039685833054292246800057375731904223428912600234854210449335037691308202078946460821192886865180499742498463085940778721321530178232927227393292351961259063241749552027579715424493898525383303584944612310564563268158277708666198329343568987292158148122618718498747232633452889758211494956013624342760210290120591372978480069054288878670171210301978701460679550782490077032285813443323114559945769029996018936862958861690129327262032848190799431864467202129962614652781842378151724163655482241429503655889956224749140851397252180917383821267175925883327627437988868481584369208268269549383850069243109636395017735973495379298170369868100367060665011848199543086073220489814316558647322414057124118255463441850577551646075288956121400654106478366110494855752952295069341692093373792947345014095913843101288845815837671303233903278717226965776587203457898209254207533084643633677239096114220544835101548285436177429811022444440337515949581128642752283217329527359239429387713169492632935371341424902232877444549475674755899907838616621372776686199932490006288199985423476748973853394068344650719908137787395941521774554888154984141278428854462031281923169717433762677267862337447305251371438970580484779483730289493624083418294215681413104024262629484166978427347413043975858325782852689889454110534067235786667224914282237150146973908839026238171289984374551415872736583548391705823595195825337062919189376592233553522832016433821234133127595345724606873607478275609855095477943483247021690744309017566725388356316256255467041141338086536843106583001438229011891404175749963805762837740532145067388373349544087722781231194615612465926104388401839318980468240123069734386614377331011135819736411271728401594249809207283759851852573048087221613953835280658857480835782002453290150097481842923859071295656547094145859381597916690501045464253914274899289793692257412017763493652426125820674444099032313809192833130324739045406220007222069096420525316281825346570809721932245514797969145621069270420955090147667325776658061513323474308843542506063019611472590757041762643416287206752667660903147672173629033678658835821865653218262045070344669082806540917927526473047511720770505863748233879062579865634629134170250947552261931546037852036140413468534963701250014950626795471649040402552976350827726644856364333202819892512381995337303098769889729379123219513839638886907010709321242036202551762758107338971316265716915554776244498068657312046977656583439079085060384745466654833953226579579816899485282560052221863067359395365393989931427970110292683061951427617966768802854972964367882814132679242796662235125762089721025692355515994982238795935332449574289775125902856564278988826373425490781335499608666098853365233280051436892645128932047497351338424013428692155177038611536112291351557774339731643231259441069989301282566643987272162062529278137726423667858007837992510746809087582388180657963367193577633543017133129604771756672003767205131110707824230032094635836164486709074335997638642680743232249125676370947338132746999667719783510070531242160747854464086597737993245807009266101479793978962917124863639088201978573456354501286137906576216178189091634888164856642652201477091229251572686175597668223273217398853272981550644863326880926670983008813947447794266068870240184143042293066584378593767566543749040694624747682891028240471583320835467837905143711016753181921181952845057689450486299292638937119966315672674599343218449809691212140438267496178945602930916699278586933466422831623527977364605156729699049303741840097475760678703430678752580543366977559942503182499055066473088535776689032639327414789721133476778825044115296659258110040033768715666674705036527281577114786246948750505913810976380769025307971501307501845098844307968636540443955658078542564173114856125625707183269973130181624156822342535979235764535613453558114920957937630753430347482543810496484880188833529603129710382842400454335808914513994293892834508069557266542037057905210224268434561259297987818258010969306850896637964892485838128248717784657090508884860766880729070360540980932048206483214296897438272566353693671291741596986442478024339446222523458941870946871401332810177731240977212077090078608829142991157305259625860442220652054292463056590410064832376607705192514794760112355661584209964972046330439806617963730782644721233364749501400767035671579538108732102300456794173016391249911881475584172410269906703347035863838459449039315112339451622464866683520355872160416718163461372097968066536401871931086209359066755897167909474613263781491293946822836830976760760770024299407240313496680466842422727976527981498808309987024941523834995924879659601640413910664546174443711479803873113242731077238126047260456623245769855079056462222230190343468263628223606418978919306349424927163625296144657064370820098826808303716456407055182507574717403739250829397554281564322471237895510653653096770057138103357766334456827932031174687186813589949580741200588876387903165482793166057503977235265154095944525875771593493723858679334515087902382090516301492672733014013170404112137708090251673276881225447821982086043921560797470251761807831211670396521621732209694610452840293775595896028015605371777208134887087683740062059737999245942515341265757350104076080622859963025612145841224041879809142035273787493799918316454234817946360974705848785551701117313666944510685630839398116774892712674634942515669666205630315712973583238356608012702762027797849287569105746995425421191027088475917685150744414263450023756353284659442289829947180684409004392094658060335981636758607995411963730078055304707448260440030257203316079385886983321741253871617942275450313595086264865962221628892998862361149511695556717326823485388279587871189397536244618560658760699870497213042461999729848919592864526481341015970565447354537993713118759874261727386340158623907709449341222342535116652778444294765794000080241771387498739101055402295720117002843807539877428109327480268845123144389616600024723004805759608539443267753885048995017723024615587530576627529299861597792359812792248230560129416905495227430573819844775137441843518192623330253941651588205768691508756978866542368170622656285387126512593413110166124720751596214063684506765546647994675607698554659626343606191648553926838233601024681695866853633765526061238363619668167356523675983019870154294102434468461646118040869691816148349072408271687784589799302965305712384572754391966696667204919410075711763281209743208846687658781237277950882859219388376664132429187488621937045581832792176970092436131232590267033311029821195094022683921881213899166105995029345607696573213757873020365926476154849561538979380905194339230539233806366751648405542062339264046496840339789203899939972703639948275984830018576161021489588913384779598318620392956812769979588838792629783317234951803254127368417032084630452530026565616080527110846848119820626286858728526883576490872704082491015394502669851334445838845417403321564719319888488736365714350980114704110709494112091492934202287582666482337634426489854652975973048539012985950762610607927977484001021351465441932711938604683753729211975115479103231357197704887372808241149675168979829720729307845031250836595170790167920762217149363286512416973803679344599355446566223957929445160324313496399506087009335196780828468176478089990227810340637381131100437603935497307947500884549440586788744566106901675410106136042833874190410667863517068686952631475544328277412014259212850714862058442561100128146944971987663558177637658967753122976426359947004175070045592683774722561939667949676196557049504614839247563392669478495410156093030930128022388366690197470588214538168324930350959719849216857275487619256121622920305345389754134092237398278589830592451658055869399627574052901849517629552568313050363922996678488368937543696852721452090668245870493201117950342880738449581382297498542289227522250708833165324810947991989794574627980519074590191133769075590826226140109836924035857508891307542620616296392203573638759570856135034803525645494294251010219429159724117408528989833654390275556898887059092266012541151065916605506759362159105022218727303131397802799901029836594716742435283579628342791902770644716113095492875276032917321496795396114227619803870433737468650652280899832482986996914044920113251880499136332889695209559555249243481076915996019740283398307043299439653996171525922645917172155144492858034606595039676084733337086861836487756699013298539186603474980177977575719177912167281353001801888494003882048649587977471584632080252921515462404170751709390077660941863599124047280177726767597494149247187679491586530535042076239505369519131824286180870577595665834403059785941969825500574747927400805643816550204208349487253814802237709287877663480659475913089714848933033649419283760679430491239386203865477219915852587534799693367167274860260600330016160367773816332490393479973589246719597664359916896723619826355515765111463915114916223025125659101825281005773409702839848889295271634564821283896331789092685417346168798769270999092096953715736619981373860052703367189673162833556895891297199102821126366625521201048871692204853935147380576280680550441843136448171077573422635317640603107940021623340036110468667920441918217003404771571852822880052735776206283636428911051234604612550165731107694992937293454647213716107293912591036814899126363547521506253659861976494858959728881267977852671025795182585625179725235005810795775943558269938522958370546793411453857017629570849344670990283339117174639308552816128629018258419490109153445984132489980248491175025199531241927125792593323040296966154722965914014844526393326048338411387882877863431163659779818210520388799409206486342091842114317230775844378577302367368591263367585973511766021542023980225437514817128620204888776615403063722275069634424572240733254995168106326936473835226369289596993375208216120318199695936127162150660986619466809001451673597306822305061254392239538856928776261277923266133515265377958468669496266289076253785254404502095570032040087350853233442459149828227983792771417844389121569109959368169073256049543677812258702657077893282553722937937318547668947793128694268063476621163554821092534306899830479974656595624185062062848863898104835190033382672707097152908421413346758038087930446446041343964487811414637880326988074974645844254485252296961776134791611120518515656665021097001736443696642766394542630546615547855736045291280867896978679068908914392242331943280104373449405916761376487462738620454110130516726613794042230590521648064621256343302286610723487111600505854436061051773489499806148241038199593425463199771519956817551950783249432167370986191185327875440899578381172322803225817616689097851221820211490507869443108989181553799165109346946920859802925302577212039752519207345336173463750522592879549353853102587101416215413242810430436595125997268478809864272713424069842149376065909765619882946855872615200283110830599272276223649720051672971925498232035238435343753429299699334058601199105827466782458009351090375234908251104106528895087647491315528212959533221396464200681200795910066003898998949863536133050070445146190801490440750694039313169864917212397224659774631635872165979273062491377882602404038364536234114327753339070561706668072928497424448094920421004526399953314936951529374821178414778456126620132048725717673057185495985012838519584548269941691789649327707673076467719761015300227877629732407930396015227139754247925120089966673201008418964308436224908525691298776560815665356480868793419669933926668251126200607195747654315655819592986371820664986277756710602314583229985344369779203290701257576380340818780214274502773152110145965774744262126208118436003174714185797043317390452748182621643895399157239599211270203524204989660205235946226504338222357553062596479223112870220393513791376547854617035965399589372476324313119671120355691265248287652238745456551572919757393170249759404684847179878431257759346631810861211449717189885178959436925275265791514397932745124835508045269091194649289270814002185772489505072326823468352066678161162210469493060299204406591731860474983589142245750347195856935990384170949961170948210632255675734264149590779021908928730154775192065037669709068544302103253234878879311797585285777076117492231461629791512425806705924078836867614695921994936165023895085884316313490816354486312015518112469277509903314942911215534610904666582304274437025759899020169676985903370462900406832507393371867127530545070630763564793336909518897105132923825152636581276726466084264185318571221076552948357476813800372700368466893137930771415814419142454628411024825836819876300920856525870603911219242742666893650012985947039869131111427716509644725907123668736921440499776687967495058710300243358337858469816915412347770007499682707657291428871013091374549399030060424185274516156553049258080336836149731992776148285086857782409013882919042929989117290480441075346215748898128829996476530274278288731971548333198609935074475656928931078766536084211701651428295461314879165181752982567187485983668155749176311839544740456150508094865103535217012320979753466686397652539732580471492384544562201242158498182734751087082139301925037538383419725411595866523221120155666034215866985561283390802308483416839582315001378677728595883844695138307878805533179183632069327234876833596963069230636736328781920032534480526464853782093491035827604062004830279312110809940861036312866432418583530642274036943608810766479595346786126446965732771324161381870097002535786020927308246742651680504509424207630064477337131509827324362665094291461758518915315001743283217391170405111524042670610948796472551548191072580254292582626347397603585987664073096270179510958334959679370227630452197015584791675105921139630499150322310374587527716370762113832720394398479967303064079535287284822319702315763951809843443767782127052924126776793680227486085832740850763894099774035782178901961585240062236036976837642134778937085940668552236522803159691607297070874460896313757646873597796150228651653123776561903405441473466672564451802236710336250766078214627364165060312691308881741169211899905835830223217684872310226591895310788195371508892291019809657406876334972586114454912551422406492674034404618655395108416319204750920403104470002928869943796376176665853285121910470986023081185013566715276000099223077683506574295042034443172441518220889616144805463330337955771419795063813599939975462178440767077870281490106998082391936139282993140917118639711742681884893115649516569458413461227962636187529834981308581453512137958976660910244367176616749533924417326785419419163657138932902429994089224752622969602212476712911560385282406588144464051717683223306993028339724451228954985026314810229412742514760114499951075474826940961133025332071401310791468120292357004553990759369156978753741306161116224394737173854706315478400609420286287905054342221354084121993044790336322025070070038391549287717464435076788247690317736205259309086759469796631375481111660641398998884898619206939375194197036151123268111499753846442722638425125403993865230942723612144879992100327300171755879237455428926878473571593648310561895435995756481401015008885510054595655500622454466698569189186641722596114046155530547778548234838488588422219641539899093766660791621745197553261115351464039240211607297212682571534998718878538763481833904167226731878927451590719691145755694456527156010088179412023424887579688949342279064015287516729274011111514722652674297802923185640955674123504470110963702454079524346697210354650227115788056102837063956728974517152844529246901708639258214610624265155644541518471657634426470616817394269825769139419709194193100100514469674893103218224032078736031902386890289435331051441796907790796494050265340853574327903983944124795258828337800506848688097510029533135282654454968081179154477744179977474865427782367953622296538979407680145943071059980883144425694912880180505942862757328056324318389854520267995055418558950150804373085803969075144262861837150956006567076385313041430704774292893528659306736832044901937233637568828350140207138198532646866218158502295642553960273770450160490998777924102384097948037699001361505236972032886197241347334363579654257789865525911091717342996569106090293779072453370013338556465576717053042827286793391950713904752377821739737152897566425637933735271146849273375792759231856498453516031276687647405399989841216261540595782372109282154902559132239800821880585939481243754799227980914483205297934601361563961065891706389447544936186075591847057734519532659937062088814806238692048257053208180691645427884092058460969899205430704668945300800865386679924233236786310128214474708630238943335035167480355857730431249882305665947898572558595067254782243884379927871697917873032312007161237956680094880548373661234595280807361914045220025300812731981614044671679442358584437400263075791612154790337444711041378799799589429601919427567623340875649456185541439075810809343785182267993581347040078064305390971548431890968989172958764290598218976234715355300697920512816039692636775958860020702146896827232112898015812850001026768112825908505696375031422227531954544828001048996167759144841467806974255376800315795601242072115229206140646872733439722046240596064036016275670641340472726276071686851506922156494821948103138367821615559365403941116054570231204715314037533962332150129288817451128854376760833797169808643683353613905701308110073384844869650934885446529758614742083833639872911790970146594270549879440407455618245177532053376137999681825452079696075975906507289151018366052248511685480246781070287971579518327195931835578648407912001777905246331860916048650853036735402921581525159225925916599750593366043081060713302945459699696247374317184737576066692767921991015710085632465782322918948612491195107467066937977082724737194735899902001456661166534171520491605603740554336856099853775860142742425966583774050474547835338038864739289437708781320576358564845715582835997330453060702535173539952346658595989174500820368437863044475992136590582073792538350985965952126863744951665429710498869200929337778200519740844004489462447025050573149589751200430150318975445481939748376043178955695799181448088057914614136491890854195748993304211915062872341506327117464951110476165885784760283915976429915297802312590574937421029434827877948969225821638276903932159362023013810516144450245350126834491059519338342013813348549565412573565316582514109213666475684805961064869365293778802876340967657532901646009285953640497681827872197978161703618032053931559076342671032758239360551754456741921031866016945614452152049772868716349918265772313357321400863018147736067898959292059188589605793722074683344797526545075980637664776427523399221588119515725442140771581326640110544304218439702566673827270850001679996401370365349993807854839815758467639420662595364719004075793561326440444620618486565435993866309876643232146572286396847106425451549821729814418408655637397140220330627507502199219501097255470323575637816621613154611333406583560530800543398657814270147740064472307207511581478856444381688051969017725068059846840991351568862121141719357294352130019975855034534567442799273441764518284181574427161406695110870171181024530712156054366419000343282077774717261830138604321293700157778357369609266496240245779780454331779061788875454121488431108736893537184059771426077136684284912752051228518998466000511199576932051210274231057358727283179301661961385836385662430071008149006963578470914240971164763008867957704855890561572244750217244096175067976167574117207450414139468812258729853733652595488030272262281489782701997113513768584080154824402100856886499125344781715893861427240485198811868820843591957543425641373341694103151461401896806116902472349022109871040581698010940902868851048941825356993297247287834755281598975988355369046641622507718518206386816337802920504986384358236015825197049399840449630493756851885055528599871790386345582328605099068611616458277545658924953468933306991337614667260126220759834056121916652840510760535021067346440951448230287293013237809429884432081862141474248299187421790144143782137402536062750430329111977085092416019363161493477079390753753633717050102981674872491222104577386387453730332326495910028191682647808466268465723258039011318053147269750854390287835917799038531566600793949436477156192681978347278842590455608738793457288885024016854078646874791952976816506891841234180488665316325882062038936179198892941746430189934160094035345226712225947021831186597672785172754294737824791443087630720806616036594001545992408524032222348570892693146163555871399542259913705552228474764016942273513121923638704295452977963724311766006405481112495296052169189148434336332492495285285873551558817834582991455061440286514230265573587689285780281502448548309659906893075665680064120858098194077947372832975187844944620538041317790865185152233726265420443638640519217192478140641361810239529609286457316952557989020358217748848200704964641434401064048098686979886077994952109170220038771421304478969825580213282775751485275867141934489833214579814881500500036246629635330415755870561695994630943860044615353399586738521465134703152417685225932854393176568807390739750488477460731958744050788050655676945362310553930999761082820361418922320548151095853111396252963631538614963337090982509477489639987237623803813716514871082392289748070045084504909422907717298082526465135909245152816814288052119729547261994637969018983043122055576339352427605560164036228754768965620366095803436284011787002663999097825597714019126142079062132625892918602265270385182269192071518424626860434990903827661263711077733290056437911911317359748301851599738904273304306799819514447825280028886066516155628311138778213460015455517084266808506399493119364685472483197208030545057385473941289120755891668460357078502912776179401287402808808347606926028734314756919448260011457542821598449689211203741075375238572615260776007409126717013485022914924162183847580169158267705031326145046059255899414196265711648585132923933714581403100597741216432358210915117419464548813193765321671546092472558116470793801790557689806640254353859620815788938594247875170524265764892272896259955608340656502517588106021922915964397905515375646819586671419843995787051144854477848576889772081926918705705887544453530983848427478843267894134634763921307529721790919605395213704606256554553773523789336828212956554916532061513060353605816683090039635971226823921435265192390254302357583914069469616440836880385986221936477011521832544970164909885355531163965297076287342890288671778014178566227878367780325144100418165317338076642342812480276189146370036063296893494749674898015765317770044623595508464539791456487489873165812865627195892779219762708123490614008505083953713377340749176239846520089809149247741755759835072582232394486528596083734777580040541911320306005378734984531141869139873762919191373880587862864874898370385497129444693446959696019978405159215738063152846662042997969828901382602405686250589918536518317760607706744339271653124849950925380873904623927070615336007359287899179801291221836973311715137816361429494627810954165236617154158608485664241925782751680359279860092016645636069283408865586948205566022212915581870879327665512244195248647331340729593961029910940016399284983011814752675086495724042542344141791224287755481106107254540378018706888480112160088542200948231378871283364268822782000396031281393322455663025250442452296584932819831870680084288682418933999906466708788997705354539030627346722185812134998616833503412052183655101070878791027793456489103251584825138161338397005976156330884320819334974714988331216997089226922523567791864586689863933600658054464266432554120780653556450035918783456107114618972245416429261814536752767563785462018658664878838638648165157592495118551336875142643955416059221993485990322259983318025517954056709368574187136706496523814318025190910603303150030293751312306186101219924778370328328357866184254927310392237347806756470073536168465528224572616846346301977107235364069243656096683747347856611317592764242511541403521434201873445307655591501087661887523506610844701981343352917683938932122926629102721450511957061177592598100243819501299959965441223121538421657417020987105284743348235089076887893363807953051184367332446270189661760189516435501067571481524131588681024585994570046984476162528827628481812202858590161992334190328881054613619965317752558265802112153610035663539187163963437561224323736108846630787049631237175291752520523061565726100545652911026191764116626661933569814817399016782759512626035897224154276958143032019054149505665140090358432911014096502077047016121190774179006514696628261966453385710409484550869775352952507149528894291880512348731631019657938199406177590494793597803756508589287541100442613430335893808321445893819803221666182297111389229726106613765615886371712092720503927458279369580285828547384331709086837863687134822027807135030829014888561838252079049507893958742845788139950837484517436801835166863695641149535283598913167360125476085359319538136732816915630376485728339100726542039775282932781418858090734241379747922775799726296171096021021888941456229015978501305728272073453387800548986511733918803589772964718074721018170595548210111676559132758451518817313706232428805589811464866708445027792547141238463742277654716549289074748751150148715949162191007542011506097183911637317560508931886015923851831295463541658065990677374494915484341985208520850233685091897503325348539258816330699866587751973493587872259511317596080726980078337389790394658116745418979182641733167083600556200204102427044308642796291133441346191513456619061570237181626716169433689057989728970433943842793326515837345774017042368549811716864718028185844719635361116939126852938172589762698466428090576723389439798445351345695380655748719202508384841769457613335715112213925196198468498315603082859111728507175769442473825954443902410916878004130683146931704109075300001220608804392451053823219626392786344004247227218955857354330921375616645936420339040474030959678465166432590806994354998854093632147518729892671764498770285269477289545233314550501107441996471335186793505096336817726043084248432032786548696284496458772219573937363039455716306495481718667517634570980716166599786390035991888647346538112357711540012720610441123051179364808234638033915791676293078615394553515205636169829695562745785428263404835940252203567312306331474429654984440053605831811497531611563393630031706537431193406562710284669076744665505717613928651065862123738816166131415298682487681944086491250784174424295102177441728787248857371878740297549818817942465900927911480084074239484616980530553859035146593201075418013494567821979408908275839218860276364704842912770540480088627510254808972733335771153481246510826652513501400282834806762706392340485529694340962007260076783945127581002657824126993767137228397676008025282064394071163697676278040451251455273702075969740622166827882647494616949320234473429238445781230610469518923583604926210544278476617149114350788091093083285823420933754769819519902959301967156987509086906515366243936953765634638772202838169727565747813084721721253225619691866413089206492675610380089267819543874115276127152945455805286473637456817237138983431090158141034486822388579470159384827107873224575787729201431865149742149587643019019216808232518746049574404535723539957341575305749673387524075935929517440655016331344297542847430253818824177661965052249982335095579706990235971112989624565745554225665511633234817626818031427718574367108083491472015267462023329139554178351628115299530830929907500659277312017628650449556600875252780427858205605975919104300395052762049156742888521178553152912994134574135173513013734706060914340468137712927622286907963256878129026181243321128911737567983281908668537989326639066763384350892084621371419911718035867862578360048668474447857117352601523304715707584439546108689005236874920287243886492457944524900819925751158893844184853685153364057321094812626569822019404457672610701203443096251337177180968272845659683642398621013884190397858498827434460095483361276957138813301240678810332425070022411225582634943568364316198838871253123209233186990835966871328862371107091401920502013974369386605634131168932115118436226698301863613365739943429649993731972105534824708092199095329844144000062508016877418380320426516455566406982106931788988968206964928496313999298029369371767820701007782070358001915465246938759135425466131338587787015966622586205946073092937404482330946883779927285817541776693940392392013122156928515220279646971450350504439919503374591578418081983047393239550832434870525295228362861531156446128235424559475326399488109906505898771973928827452244547849959257498346911446256478721830701560086584334472456954023035333974109420103698513536283444600008614649794302002390251367745307911573453118648347700553437028407151443659151471477773002406792443757959283483331651051291657253518329325697761223184947115525948379326966942828916942411031261917230140882782918712372167722757828058362245349240278874867569386130819684844089202072941287368184135724898617260961456424173576682268326363227521552837741248203364251845867467749990524889656080605762332066912538891914072558515959578651689965641721776843652525572192060543012894898373694600875063656605085950509708554305672095668798000340752108415795694801778113095402991488319007055278050483087028381684378240681989591727709283417798328985124677280774886013416552330317319635261100228911335734751272204453044454689567401414219121074041097037164940115635031108595610107121662478992733851999596402701624862827346058008973098669530758177799390745598969004950289401485207650830203612362175685872143063115686374722796691440358437343897367358153546794870143275059339252242833191599274916398344373210680819912194018687239283244923566325085546761072579113394861173134022215393458116205517585442946183178721751377116015492305895427899560503208926305909642455501954735315363013093239278941518483899764689230594355478259465142108862569584523229750486485145308890227731184775770188818377190354010310318696957795240412403246129798873404558675994104795483523505263532076078606530887304544141842178386217068813928580051324105478681704342465465761327046065932094589782259574804025044165761362381566846433978007287170630770709751949947858984893962896854864065582893450500305307641517338102648963469733836850020622858125835562366730997583791290753797649435521395475891520669852566640552121118884927092615193352043317384247140464492122595109462772882301466552276651231913900794858829035135310134385769906046102310982654850791691822436806609495377736387544014717988455081280623959041314041643063050176139410494211539886443945251227508738547510983771683614678466730308418271438012616735028287129981200348390048259548532437923856617004347377016352024510195089866111738103330606344981146633911167122687529814526339928488816315106708623633293488525607321901112282348995916830173928209577279644469333429069600228289805038060152761688575467465913286424961920143371475182152187248059394607338144277069827714774251121883228124188828486238364454985282077454365227957593401115799393004564198351384772518811386755849693348173743333191032246330691414131394304086999767179469468495902195860118547537226228567685389988774323647055017873772462943712965148974328039140268407181733033655995442529919269388425307700603541885262842486077973491151810572360024844619337429219791631072543295798728628616595099527070998027887502429123905487833918562910516610943950338819057012107363783427617852216513672032719294249406786373072613904715623888778342929212898467410653698957080882162360697253504038362658693529986659691034162937449956258483207574266302577368053582480841433178638355580652203447626713781952071424113331956081172369848578974475900651805065405838690562857481932258295472666152832936987553889001045681910864095941953788439240726991227350285108244006796575493395250368074525116918784339284185203507932408870327068369664665490656301299958719957733645781661434855812591700618686038134090593807824792531765226035011968484430805478588294879215823845112321387522002331349267171254393038298482047668216974013974172625252659914517527336070539140954314710492101586325141194540697261272509537584078399166149840971648805640091601503390211531757319849581930375991588458124774988471052403089290756817408757016882058096011333892343003060853685763405340603383247191597285095924797823956745664368576247256014656139075133252261701082560331493309089696508249878928943299194772200412460086357151834887104643956359179784140911464866453054561345549220837892762734956691297415420797809729598869625127779420813374651573779211384636756209156482994753602044399973204729659984051888303382804113416961357985448493733422810011192842893317552762394280525460170960125122433165818378069059933128833270905730424148227524730574305453227279780158024349459836436793367415556780290535971408626030659991907739960665634116616577821743177694547218831660681518682026807717544383242587502200116873364519271027671793247411781728709971822223142432648461064400504305819313592474370382071860112726480802818194023269132800186225831752570019276491871707555684204180680368873255950122096471598295443484519067024452247414992560644720939982155154282926374799627507624293748373679098013466496211882056350682354840471536142458523929955660667803578528764971422238963612053871833672872515810535859865724217448292857600870332182328540904568768767592398780169786475204636390353208659152591765983702211239122923374809325983809679624510876189196712689661805305787442770010823895020215563982513617484327245898280796987760735909387886319463897413057275561452298418293946316787919195264676190927651322109299589931492290734188979043241799751433665377179644795945745620779522604662318181371111040091582719835749288065859170913528638971919945313113095140213043212058627016759198987225766591441052328307136691809540349697914804286334220230860081041337947097671194658246888582458014307446914895917601245155310270538621698807503773662563419279956148399571732830500501506691512132348776409399681480518685310432582998013934735797856135609794890705480527485092564907973349801615119283133199991084908407922588196388065805499755298268339954433579814066744606076140557695243460197572985745137901434425314764850579029727156670084506607647165456891842198123781362580507535874425640537128299447487304849319057821923774464914768490663771997494481932338752817353507211682737429162568854798548902454027853655953221554026595227663359031330782428597978192565981151010170281064321112841311896635011010113703265900885266092193225187286366757019192907962763200262290224783976737190296769886061882682565637060091027514184708876722294499585684171119987148880709166351989679487056642417096768107321288478503107664947200676879133003021172825645128826155462975668009756478662356513187217465985680885601617326351951737700866325669114589323973504337866419123307255069626681334472319340481891868729304934172895450998348446706439776914254236665505372287737056111688953553705162640023093980753831899055973369267139444473246369966859312269035444879326800676281110474860758026419559285901641793225647827790668326010747303816105977044784607408760721938461070325050823080589447110830293586194190311031901937004314015406515692110567073519542245872067145101949880789893523361425243695699454154186233140917456670257986754528625400568058443360840844994067681090286273136613370993479980188752487197935639777581038542599387845823054570221523256295579580547857008801551702390962061859024870609858984090900526487088715734663222056254767409564682885478224723501587897239795533300591500281563943418081027383161388261039047702663611489139514724404514089549507781860084666388542491909804830857932899826836831047316112271419921718445084559965542645945316178206415527654690187802327673897993544537564809675484523436715764560979023241833482625450230859838922961264619322034522412306550468676155366260029627107801616376036889173641068891094352033846542876886112987865931202373653757893014151481357626306885022120490854843102975695535173175783709559016755752974292994606060833277933268691150597453695368195756436374492509076499853713503850218607894620716654568395590056614375469726371657993896680044848900349966583146452936081607144350241053179749558096377742596720405049852418608236250627707184298455310343729629104862199863474852208247111660937046590513386284102232396259708252630666111704081241934308893599728981085466438806205201319954319901724997003284057613108223644302130049596020676060755528138917263394462345782271906350450018477698786582656735364326460336087528061030714551897672667201087177691563963613395032430753360959884595954336756150805152204431295501211361069290396184677955025381936824408514676893225901418673692042063978599388367534952716965954045315224330012611253127067385271076361406896782652733781218850390418090911666395323617267691895535442139080966792109178239808586419248844344836704541155654881107565662743976521198988178182381920592127218627379171387860782759011720507524857318955538904312872642910750411068041386893454679049388066073810014234778740399592222283105232010601976102744588696951081091194720736238677528019147194463761875009425889774153694994700921782329388315689699101685382029835443543366653715791069082756819753796294132127512532609733134668066983340024650106120617893681327347916422836518688691871757559180289857549292937900580777584801706323704156591029330059414843072498505522901431156726504129331319679946707901182133483035701888771708774340485399458425755470349201305279938185925931785043001989234325258218990858708485474162262775426552051839845192833030816465632508937328312393176882806460638823907951783051632350694457724332244505556840042978423746913896564539207003142558638524373419664920603088210139623946554069598665559933846852982504616557575162812364272934635115395210635009178532522637697672885213261972185017579286551588198058260976552006169616931133003249565996186783014096918093607800463033185921786865017749616185246392675316241249588894784863247020359172432570453732059962163082862253570450930670653762937918645277213374531886995883176176708016817502025661668572625248963317660769129562310427042522271837009236303400424845646422549122676017204689756162486367881624001873340604664937529276442324147231605982066470883856110757438159522834879367979703810413914283790741857717747577681475522887989553185833243646433332962285577468690367241838426652601686762547222481968324036482778326551838863370179385740621756161935912201276129386651442029487964825153959609193462970804267758388684992814998542399705947149168330387607194728716084532940841237294144736063422185673808862740008620269269866007210748551238780661078409222534646179190718052106915112569396834860898319998337360969523308362188183534558781611251962572069021256572161016722018196624667807750870576726213163981563985116301476901955418823268080150055861033826179456101541149625948938523978128099986585588047469532190693789104423932174967252228636047121770230400346050863336619378098600936141259048235636975715944191711638356353285792196357075913926027069162375938457942404784424251652519335490367592324882122254935530015983073340988142978343131565464815758990180466775729434209484857556642503081854721140887613610975297081612349160679361255503493914818970722934555650407038198044219964521835328603400237217503898563310315824319810498031842659666145410158037881649980687451127186829325489987080317881216863394558408365052289387192966469123636660294505316980330252170073740961750961764715235779290932335954551601155694582355486883398160409132871513209265090996823996239086146054909509842660062282050164169825789971950730055736315773455625395977498304657473883532534520420730593653739085017995323313439376095872949036418177035912755700186654677635329539753119476778210048402159311560681901117888308063825265133070882092645424316716817403574959079656709633771925914023554992673796376397882882682155976534432536428100038695472565396309760547401402626351836454225975815357091720074180458790538369223725618019487067768754661080535679443447551192945611797086187260488812936106169481658919478841692731923214499266406443151263816229558410675051257782561710775005839147313841221497989319532462446694558834850672116425795528051905332933785496818674870511407406913441881284252714452810915744996138347092379378728995137259700407160856793827593050290897753780303311117553725437510003563443029652748578748393627464015151748059044125140083237228040463459941040168821449191419397112120441399070424877130653952803639138629904596375886789792908084600670960535035715942254895573527627117997908765050084840455730137767279838005263868924810046194949442501083667994645154728862523271506656286841122551776730314887290368024361464426230914096691206114343163435326742232261789134050145742942986490293782561005965601428439053615853633105684324278375599675191937425898301944990602323891302740268268023267785860681422315359778805424699483358122310087998558130623275650036475347080820555584793354066936672398490255513596256271336051662962297572286727497457105448247395566782850979941542894904510066707042432742516099712768998635265858415544221375150555785403539767019393290947659297826660566084724387650669140180139641968656989653902909565243344683296577801204953447750393002609730695566615564934706997479988783398226342251541731822204219769957915270207070481959211775239712023434394570999603358042741790755235898620281272117104360678073254681151826403982827408186236467502658519137038027357608052639401628580841046668671499931103742599025462750804894885107339751023852878905700297066469771740390271551889255619745993190228292451236297759101061727787331085376023676399809830279468169758185628499604711301487497230560213501305713518880163462587964859370162689341881790429473404844203189455072917692974711130376842041847220181205762817521652120364928901562659063037271627554564381633006346149856781476270523251286359457587697955593239710491285791656504511829576572436597364525223642826010059014561879244290338006645202265374370061342947286429975003904417268369797192588128819276759220905603593274757263264587322530026176831676793378682766291983233307133756221954520725356317669169591059665863289743478015310147369188436963693816835160398904208537181649132026219154610643831411996160703234206328763055605954474019022436625674027359135244846659164356663626141756219460882042176670935775696344113295383498650226171965213756155302985555815001593021762847197770652017321916836273949997460273729336637217024188973434608408334708700830263260661830086506445165746781215284962727735083585566541187615710602753189031368048031956095842125097154056848979529268125852606005554457992022941341549387421617786329023032375100783113941709955739434668738997994201625944756587499688332074767058462294458599232309610428650205065880701616813963911815420422558254810299788952756607501989569670724360499560817817388877064516485332630343222240290427592290894145393189469334185767943378647506220958688314718478573581857233162883217140690488429921986099274613018229621023972026025514698506305209410343141163756947779170234159592896624758115131688241338009105951006980614944850978267937150691794004721700820350705239252434409615900126331271147970228329170702022486724422563425309965980825146800460492897460255556257602648400239438150927752635867879210908746424567560000275571020720857556350255906926002178244288309200816132919989524135584649747673703337702557273233195809805991733973299788478179401618666840160801309170525215646992059530442733140390206890518952771168248939378687756821842063145907495915647326583852010682819851913038584612875322075680161620997733116016621934323552191983146479550413077037209822226165204039524930108927978949730617089138127811916415856185929545122206715000543546602633633486961595330181350288822952761834521163167420176264911303219773383296871497333491337679774293343340109355767002432197543000065208961033500833546172538035412098172642270037261762381899298256223846827164385830031817292936113269677422490411868790472792607280923565516896557400442804413548213871830803587907211202066919440980329491294198711354223507958795166671345605302591415756180928781576127283579731975890555439707848630595717549933578827482005122304242899299176653980203264846470070538828203247880537701873501505873753836006875377644606508757273132206459433862667234041014054841270318364559466835458329860802234641404988448874178563543754928269402412865999983917387253515542865446325419219102759637005827870035861199462649073793177248271717387726999194419432910949556809890090459968975448207608647003361085058343370921776030326814962548379861229831095646680716421867147723796080358571673815692217544053431166214718387188671051238416408163009710916949664036954607631973746950275422026735136315030202588994714336300788452924170616768090269164407316595233934996289672632836634272333589508184049237433316428297737030918985409173186618832464365631605539874012248319937698229765648080181422608441422801924062228635518933150638229362980560850341743881203417234866296277497401567703066037115459109670855621987970115759821348087322251733315709794563028336598570969622957700834713511010599686425558023646798047216826032556418617285356719705746612959275507571791209999455532921020386460033715822542931468561944493544657996972708008078931682684700235936958753947815594476853919307344850651914976453667312443201445058794834171483951028502349588641204779342551609050320284661250940668516091709217124598131931168538967163272023350831709960196273965141825896661542784158841637554372724453764803755356891062068729930590728049904254390973382671510962826564642050302084720586901705762605782720106348984424487428467929135474417100997525418391283421449907174635927411379610062506248395832820399336071340717997199243433618685264032315245384586382061179878539905605345760752610471704744938730886956544265215217064665985516768051203317575953326458934295434278918671351840835070095403659110179304470071409054515489490945691964443702189395637235467785227575495649416635720509783386170588455423849091672736452570973537098242294782916176995141306591262517460765857426651550843184342467294457949768794538439803476925255346381856584186870100470553878340724464973480765943434474060039144842147758638228518993652262921346846651082310980713383961303982291277451713365968576663877502879741169607329083928964472732153695986393625223313504111377322789624699559909594478075854126587310636557230877437339932393390423827883133711622781688988472125790335007581497832714402196699292122892430309966026820086833882834358244420565635919538767341217491079713440237584858725560298025555113698398365164673781103153169655316026071828027662730311177184689882088701139519264752894975688495294668555333816323702959621091467018740993858329266011276686871655321701679534732230369939303223068486358938109452834881055155775115098008870331167506406050471306206595602912012256533219958132026724511816528552552921479109219893685082166184919590906957715897255315040614471831478406221337530010069655069079923734652993174836537583407011314653780569507142936018335458491998911160645202634508328690092049107079045488842419195091643745048163813592706090941116163668418798787502683523985652290893461769598358296861203482656759104496771913614331530589145067611667960397668336428619145607874867299664719040836562443154391927025342332549809954592512613109355994061761701161049528237007240905613000393052300915257744140783160099396438203995481622204020070455419220285374097596517218494076098266215634086236275233766945334208288203685292259526399251893544036981009457080385035847748608457002257682593093873899465544082010488448392151912892501450851763567266110154135913566757329904545833655043622868865658701316846294201022080159994101549127938318989126183098116889999702441731477750638033625591840110878074934765241634194321186105331435614048985890751448473910286355251688173157507531058520112673835847109523598529046843145202407644079696932537236006516251962181802737917987731362541029537832632564457047484779273666765887700506475116402255277013150868167396847781607328717749045104254124082447520313061808352051712529731222977580266563946120174481439394301578328424058653004371045190644614818949550770762734419592420205370099691580527194973325162566741077743496098566644586750659045872120519235751504506543793455673507054928727835830256128962152317256452255397324689515469248222893442287806510137485398682750287377717578429281013104270445568772300509717403103927041087344460289150790450018428505604474637313320775463959241467579292776981587785947049109686813476462848540389111838493523969824144387164861329393985762453032358208101277837927313024834028264695544639428967537895050254723046823850603628842659316561780902067292420223828991383074584692567687746556219824538636571787221885406374498723563955449825236778579562022444282813285507718688715001108640533897133072665299279026576340402133478005455681013063855645765723830746907734542222311696582738372941488835874612710864056230691309922363365001544781546458259431049775439426063138984874509365152511575134003235599638050422668372357734305251040167472402009421646554974074725659852222281671609733161583968298306907530359600160369269398898912902289214166569347597507831265322473486635901254649087962607177724139488411137485532187783685121188675429055438939208731987860601275756518590972651457379448973404843574656279059790877208174550264354396505232703653521996733643526791765871869491872045905599819319464116729318042662225935369847478128673024990771261018283010709902806997721772780408923307457799447208635529990217971931496555731132409328670230768656229625691821477370712731227833135530077572975538527015248546864031092023117680889448076778142997769610516524976482281848249234636135339166221457960962787065217753862199699374562538012400513062686880371704274378235247950870168420072137613030842240229473090651592546645772191892993397922005022378007848728493201211861033842085249122537582628321707598913848435729498844007531608641873873019899166736689370098323482941994583506248680864746282271450154976625405506411312731554681051442786247353583063118210490432625825856215959633848647305880032290182143960949579942489195728237971338085999181581737679953529564750286898854112340841959293054193749367188908233399605073010255545423418005642084208846404311386139804400756226498300213575710590587163076350551091444853512695824597218483783175945097138515101565025218300091529719063994948714494873470949377522592265618497071615019118149378693328906934470722129283630899564596013248964878753986410094061255356233230756913375473562249198149586241448401965049709333582606649740762132698930627522964472405102752009242231908610542500755028092170847491133009093964410255660065262425277555239853858566205215495177870237535199369681353443880789675603074663729386450387990070502950924552662834597597313937377075383115367027262330037078285241576145031314707605406984197688222506546884837723385233042655875205750000414707961707943648289982039269400361196619336959175332766689441703068940503637302055571801055553711771563945725840486441956389607120304681498380909283910211123894920393462045737107244688429015522295096040763225800791616391575185810859591921393158705862013573341018485966840337286339773294434541142390630508288740447627694159668831931529588925437074139326406204944130073127761853093979663413373714838520243224442781084492704027231379987442543492198344255162223070296782709119197497725757580748739388718371052320640748683928844053630720041135562431578277184726696490528823201744640281131818386343759483174303011173032784921976494132879889892975148303151929576199069366585757105473230874283544234254027294369788634536893771500189590090209635188780548533787875009070329535823313395470294718491222829493466944649205018402080071695532846408527258479335983833417042848164436465073832935036279224880033824598105837648800132705597465920478367531420026714091701676976426302324063458433207263142468176086339605533624913348411855379535089409050989294989175998638807371459107742690903833666767665668377014694547583305230756266129369057375647268417020673475058203593276179249947436130183802582513398936265114166423885358863462984023858493475525674976082105653875632035257481269327057321843401446060349564778768410005343100349274037490684032073075042883248471349338530946532596251704493389422781519159549614189075707736098485167038922860367411678935904851200301499343831780980427696478947043083420324409554875778427074893733628951761308546657701387312924335340400786809819489371333240858398143773662363741525692910838335370564119619392241017141593607125776527853116100014580756619616537109554788817000651848803070043735967539848912948979848384876782705083798299964303056314804930551457458222677445265481336345980834085704925185017563034562549823887981516250966624340614554098702297588884407460438736405375236881693367780915588514353821305757056582904916450467549526409424734351899459717170496547811163323911997746932569744962007079219459432083522449280608975780177970070162213199893453999288735726694589191463746810504347049608743897547435746831613053291277541599221613542688290450102958223768743464278172847528152796674416954098610848547951342031497637807864632656566013801463924857703168422170273109112341377788148616573457636921528297347777090058638914763472535546391904117087492369439728536082514713602270455371992395135270859004718311680241932124374071893671267268796314352281875054437524900868740559489233920747794213447581156362936462651353170104526964533793625698679265301607423584061490857760841289280076864905552649974406746252243563160705861028179302924581119800776104225349722641206355742179924928666101023856995968907084692128564189263258201099493159043221241316646151891564487743122917386944955924019020030030739887308583995900703329505634243346541946404521957782080211646211902737586335955477037958101711261520858961867101690908925503843250022183891696892589659765213128152564220959636974733320840908799384751725073868257890311144216694200538621322564238020741929219519682067855979335073958799625290956074736019865586337874295147175828521243988509788363141777270745135373514995347769590513853543174509369288721791552324388234756734003331400997463585139250030403934359550134350565197970150716117649185067139281928011187152099921708570473938075667349988908603035863440319641700903434144817347081567032246494605954531474524732489533351953334231961439531843766725377226362661936421526157941029791909906885075853564409776270314940076544628650538259518516679826938678106294203748419729037222699665869789142341236688066273442005850719958870496467844777654829799949467794451521165453192930307218727629195635051235962317787693539608386261129817292611203195012205758413217464313407338097717325096578696389019158681864223358777849751732815499030625434090541353732700715674743728955492179054649399368572347577327015631924182281266220066599495586872711836955343086098394822126611230126527071408035020924645270462299770560526643983285774730275143162698909352041582564044441475129455356385023316133614279594033447842014994230862026013603420160878323535234195215135099079146760820085720276404394729083279100971077841716978935149128512898150119269791802390555200623742878965662609988741504836300050815455181538379485745667354311227974904363636256205937105269720732355212778086213327135214421521294366684013142095029564480464629567665592945870148147968869238340461036177049594664636134365566156889367297590872874282275417973853008065055435344033869077118232116273087709587184841844131090564083118178608521588068322298442513331932868881882022243883918906044572490174424564140598335362926553024911061693431125045878586237932534421083382241516474848462995527774904075674072759837253766790487628830483379704457134276050723786903333539150461977722979699097552802907691792607547871555796159625049301348249555357666521863434816421971007950003171528294259507612070181347078434516248949500882924906033978280430867623153838606408823293983454093205211490959843671353704922388156878367078750381038292106244776483295093011099999888511542735356928580592661390383282748638510691411176312240156745295269869049843547895013911456099750110862598950850001092602705048169791177158811399883096533543981024252807737837203737765323108861451399860490098924255811908166894219807432190966017159156275056930937383889910008521763370014837285770631580153692901713623397880527866553768766766586736465307099935370631641200650484561364059998801574420649051674488123524837539890091564301390508610750675898651093591399368802489745815616992939843561357078649307214899627857586226948139255176382306527447089485534540043045172495578222139556644771303158311761935388664217591052404640777709306506037547038507426644064231020826905414034496500581246778314881671697439242794519858889831016895972017553330679201516636399857716969704013931356776854607860340904050511843821074333434006162511351300136723816984917445871499409854247052034638879738621910482657433719677393718530151496575944176197573729816325123873177617943723740830058514273659374137068237882511743186023988483173948003722225795133250965871687782281234483968529589366033189944445064131271205083088434166732267922217257346129984021751122759556196950411413895685220708610948562927221322444452601841056038870831308385195910510302352618264756822989256403554291342764185242787288956500367790700760118617964869994291844808964426690964450474957499720988758528532210929347237355683361443133247890919019906409704318099039040237945614576696991734095050130345376540349469542766959815054767000867364217419300498955817811698698212819899792868978252486862232786194932618254993463127581268841069121058036101995482312375002152695341012466038108828306133366064513115411096561230803162197024655792991686856680099594313290453278710389091501412049512250022214394686610144093209840784145599461675489602902923630059534636112758483131987366731057915615752365140808871613778737602739692952798724624192459973541984964044853248589053677767677829876530416120463722733020056300235065191589854855004068993552570875708926270513177123487457639021160171021635672885083331798920305426119939763199264889392857289795027238003380569471326981590850719481355199967745365862966319084538864564865358634315965627105244767131966835539607898640723311891354804014434417075312574029437199589213807165985200991459946511568024320321338357854189552735288282866954794009732281232451676102618778406382308040087279947200688168929053603883785839520332621742001504773517985696748044911109206941677458526847915139434901640730229545116113527071121084699480014348712255819526158012702666262701216876004334102167925639150995779670779415562142452534102838136597696373542196304814573671860839419944433429057631974643237859968173585097252391306836663609197500511108870857024601194793481370107791456627642434887694122632404004615278274406192434515004986795537184572820380583964899161174274491488285233567359151422599998733891128530087483398556259293097476751493635630886314652773577648850054807734577354774145934194807546267360314915783186079733740113300136895133157469787281872256968069588277823390707105332724327574599145112400463201440786738608180110858592683456934339056505289720340319891566572989128541506591711392200045660509958411159726392461579937202412912912809559964348312712183105806345954858419766630046615428785419836509908765048712814790579644513425639356657374886121137415300315924716447095716245061933091868473273606005972481769500612791536704687612143942819021783740541226629048704227159158900501114759617192245197942528718570623986259481700786943472154257756157687154316097387845949797177135289767384151066535482427600024537347425021237029304358829726283235095139980070864685274844971809642986586577689794699430487524573458060119944916496016128570987694773787058399828602720293069362046872789855140923802432183125737744497090107945511001563129649133432687432666196553498451925369395714071238844416377071933888795984523035393161618043446195211676899549947456356369631457872959741453002169541916816284880782488013116998651914732391602746194948490015409294447281877114877341907103894388337698380563309150733576705473136420727793305016621521494567877780353735060435406610667245543133176074958624411241023367836342401182715531372446280332461802709708038406026950152787618396908248630560499060470121653621390654795560946469822319574138406357948794361996154168037713982181533555187827801926373035225450234931079102204452350500921032340608045249147028798617436897703436709505500537101581416670475180594808479203301874957876520267757060023732416618839280195660106438554629473844627264625657666518767537086456876631774854023727341720063776961281442480463146207331203992901120875859758904089189920168084896682590831816738779205284060045259941081521768191460574173405823873475826469187596101328986467699710165188591552791357726758092824672968789740401668480739870846262999451569199431623645583076632763429043370383270828048288882360892448597258826502784052796939456695247836866637037184222358572272628548947190879664627123782280177816996844460418409493271391136746295011555835712166194698986541906702373263937560441582957668273060466379913808356539524385374606153695996959728598957174082286598115491119325233663606707915301353673899825141086805015746651258466036691691572925281662907322743794184436791018879294938031458866875955533358019404149524029632744164592380027459412164348330421536211905878579987451004719331807653500266264793251335758081694213885039476449803450406295906195438016626060013946398513039318195315019041495268308304032477201089696386245760258656505167856466289997172828316507565968454093229294645003128978007412354634389483699155038404454820800387619981752880545259057000694422305202277789243745459100452108426833724418692522784191313039853547914553618013671793470697101117006476718941946295500313469574206723117428680853325128782762040263170485616462739954534254998846001457518609174893939592318522457670766101898193427824685615304080960152831771369880737906904539799526742647591585306226204426570008900912576802981781491628627919970804872023780411942684422500136205268491357249409185030069041371436221172586880427974376404252303538824155912772369692611004946827425455588708938025458185996812727945080908943025793083714241418010593081097644681300349790381441587431485463549542694640909033660790291046821656389628899025168563321995267565703125649653467051689982927405056636965797455010608122334658611793409830933422764801709867027695914601650616429152211164421283395656713719965343275054475208102394296698400676836330913661501547655543577054595786039316414605524213497272812570721881061481665045983422255381353957244764077875756447003897286759033934897763683619049313133351005579861510886937203900468371001303010454106402056441375061425679972703931548761235715245051423949928544256253976223180879867179320636054703813818543880402222159704599744874542239305452051441515503562468062461984701198165193427308296333140810116048482293935293666990155223890730714134449630558360654604412859296482865282122850754992533494767379610194193035180988378141120699077524733420267161664825410937274811631703374519734528713571511606101224388164287443735666536097958157028900055280427533783417527251789945184706186428599723584443118737290069080729508026590730161100496549425700637019407541711426015216693723161926022949822791781942263433752426490016399035272210392425386477278920140797817282548567490946476897348930292387741929923522016180334873592057654005241101264759080653831458453892486732163824563815544498639823554027959251042053672164360670700239841854627708065179030091782736031378190347826606160090753063346740746411798574638755819270135012557882638840995593054450629129664921662378389034230611057353793984744067923539140207258470768802713936164515153819395465090959228382917974788941877236882456090456668796276801204946371353450355051892479372318123035708016794021907171489206259088967362379013140127567213355804093085759998966516391277855187936057288445396055338294558074789496254485269481772210459754361881705056813686239729575205965057103283379302495511973597749382557128751785739539932427253480346891507955961058490160416847361164420589727278959196857618374961294488145882827531568889338976706961694169401517803112443481074085338317139970146998703995334624932923017547473448380191582463822520220304612547096460117436688120051576213446612293844487261409242197662492238962873945757569269774443299111548331098425082295827070595586088112550270703091890940977744294374748133512290063302040585453397797059990094332959357246940003090652072334284096762601670616021110309166473600911222769483524297644856664250601049043597096745324234586014473715253216217242130858115335319586582479342400119415273191476033563120494165017035979695733673762359127204822967620639138364344746688653623943446141836688120298949751001518248321174860012147672852747449839931700749107519865475031970619863873379338435203395522805231423058184301136984753491288816582944561960391530112605577090091801349933098236423651044769743753443786988917742633370481854422230149812661785237130179780188138343979328857575492155878136606061032098146195825519065590839160241124708240405267326375004282074558619469379801003787925525346379665261733322811176828010634298084707414542334901332081132589628020677993910228334875068066482164425443186604152390845553208669157579785052212073268529317234735692099930799788106894289431513113223604563459421186157154484121041256075487689849881104092996949815350554261075466859394389315824782943555408511251721614326870039740056142308074049018628096546623607707391058775000923709292845624501581822805638517071595781329364484926335643139014657783136907571474504256878896215256746228070034753485584534457102871036376442106360122222252859850926280572454412268194638082467020723365339512315451685351646859994844802522509876750208967299210744953719143891822439057663486324030313031245727038162282714865533992151057591731413747465808826140941214455937391961964947407285503076403647092721523459699958517724860226715829943046856366820421983812358612754240973972379797539889170591823300574340890196164848777125105644614263787323580192630535880118389228783109809367459682843685265787846904545928899320451524253892403676005464370299432601495158143806952738929055719113064570771697993027202346758580639701624516551381791276276592537399249172795035985148603581597849751714627636202755950540110925562234758985335472320716178300820439193954911838363543785808729703734915758911093421229263459183405876607792311573267132854941044773705186342021028941919221055894336575234245377814894293295158029541029886866624613595640887887689545476572531975757735991749673096131112592359691292135495627991666526941256343896029258976427679037196490527643730667359843615725163883409733140143465126665213024406227044412736580718852984322810468556640817797170543984637869870962409678459371285560624856565996518084479708403814454421982074592840308067892640733592397277678275230766306723398711142041308344423715415174873603696277394441262647117193204745117835255167237083619960924146374411410303783788378523995049243119166555683842072077082965732648305306037381708843066548466678373895086406637871251240673587621427656887849325419581145731614658435107951765325606855495724486265906486464217799793856864767605356621705874786906078726346012841224506904057990316770481815019293236827255798814177786758841100756624224110383903931607059446193306357850807442859948430152909907718034986460114545020482952075227699952640742906117080781583919401126884555476897810806313822417356825213110532612910639468016916163412573605681944630039437779651766592405417755008233675122286797961262943161585778065211217865870735358000840972108147043435800470068937147222979660888891907891070425416743922107889761819547928901830890571622704642708573308017508522531902872462710087216579626936867160233532619035849572247874692384284688915559025611100839386354200193037685466510466568949539876514991597016486939877307485371656923681567077231772343738599078407376745946905873824504161710697101428981940890663977947811245456661468099902277892130340957130373165317957065418977232321114640493008709497719453338975926679330155739084280096337609717530916501469002291862124940894264235181772863402607554348067149112215010177728764064381927104119075286021769670164498539741099205205090195823162118786214866203806413835688445727224922288240691721115041285691105925667744479424945329363727649670500869236128374924471623000213789005966736309589077214186540172815004458694711298624212180529254257290196607661255242996115627934290285416770005401745141019525585585958004265284003394527295127733170033505205956670283562907190834349497901680696797577586312917867849305549219570706617925562734803584893027971085602614064192500494835617107909819490953597611298684160823874987977026192972010965852537474139225758041623756323318498909978498294707757601058294450854132126645933007783208225799778221692146578698528917096891169038068278251060806415386727164618918962309279353684227524138370628318168886656523173350458095553432893987478898968827367739326569052990898571176531251022247915151507890585611797664301523627925736342224212074667614410785869642536771124831049736105014805742855984883284186342106168193473810819589833741748402594892716562651676638724702071054408959488303789265226677745622634973564910655829858786479652126810829196190327414893387507849442756028079033182570050149510467058708554354414915019252151490887673554168076932537796923090451692551346040738048025053574030551688274673748312819880938923057717081861848373341336981310670007932198287476681082140051542662050561661977509990399787014212254037627535526887679244823104476226770818215135922381473449355873179313961311952015023606128610906273824720005553761917214573608212174895025691446987610467830507488075497953164121313584504281267241414946852804612721655633440997392133389554257412117593821548631349738965400672318217192436298333250655732716033932714486906765669303063290838407651537129531193287734303388722674317251138776085252311123578035995591470314760997772039867851495899639541283832412417330778448948117179568496887124010588309639251835442500535351820397932955439004852550123374762222863065280322491490112241537028931437851122227780213427555981012898774384392810725972561640462028026852298415737564550198810144021594706738538665802306028859685715372181934750404493085567111036066954832310765303726586623456027130021515512046317442335615581972808949598695497714985865907317353412647221090541453443561604658219800027844654275338652560973939519077288245003997411700789393031929819770280930659160852996357833234820283854459941559480293821248860445713493285099155542583433304307057804901926211671067607300489969423179907372709660493215142439312411269297185710924661897648725993898226862486339487051559907781585509294682067199285829904802245271617529049218885723631371286533992458709779526025927417953517282932635156209188385966207803991246541806077030167097286238324633467735885788470513241788620722674004730797461348867590892559377818748722604398185069045217939450551447913422666502151501920267312057085061327926515696519637755320955023440497740274765119238497731408964250114189030197434122854695375339963746205214212078021372821778173075788118701824472338424111818670396252048475673886424848771620126645265826621641615658628280796013206192552161447696203322911184118220735043930687324194865063764436921640935244895641515768999462831817472854598883203361175056280385526876349212442305458400947343321010629838323075058894786601753774916632788671294579533801643336613381794342801557382366541242497879361892239195718347318186011544132702454715444846324006177587460447926202744548098199808734069028942674370748306502418428342437738933832346538357563217484877298774794626206785520723293248598925621434478778661320638358418700573898249950004823681095480197728591173939027016020972730266330049915554276456903552428632201936883663818794388101048652254764942515920547469656346913777114077199426998888334616296704337997364183032332378417774068347525918671593015212076151274707290662882203618967759807917263406404510027717414412101795398976874284956254007626106411276900119818453968803007108654805817033035186331455048740235963958366500932322367034196530970289525615100064157131187904044512003941378698400443683386411506272280328169012050798359564650445679796484752273777640968198464251951829506881365958672752888028478259197917287943997021810705141039467285198649674879000716139644646457344789626949599915877194439694209475927882509564389052469601079265151036070919541363209296527138911647624054724024605078087455940697235038983810736611650391273272659111398050072268515357697043659408997743416183098642079872295575789248725586666234800750346611793528949909159056397270018910079475346932853821993426974653836691090418444345921598399171703448531085377444333554116067226297141747428153284896667136165091470531753575836284109282332056454608289472446436069922403559120154430549219383919899148539449371011977194430751699060894465941240739474052824527574676551314576825159888565822925553063538076157165422035043471983956952367323605566271376574652138229911392110569605316025896805454194037688306215904062143015507740403156521164440625472555878852471066934417666506303679292353736903857451048497950460748761357545144849904064856317271007089569604360088791780453977377238449463188398799004296457846029151603803209360215637979948406013476795392104619644390640536803158887222761610596612606584525147250745310465433551074035633188278990743899244249658862561373726907755497630998122272448921725477842882578974213356457596987141151612304093440758512652816537555719362435107127171226018991788602797708096939576759550319920635559296672643385075963777334472312010769038086641649415739953853289287590692640803146350807797381292444540618864370890910804793569913977889180642339897265934544178994804693619126049471292999050648921354011610843825251636524008989579712914330882908903231843526437224804450789424037715370938526867448801561782970317527962662250165994157505322855595996363974478792380079492176782364265292494633673629396129241767776941754878016583890508006584564333258221245639324720198944266141307496303108841435346550316579402063482288033650543458976603028465894754264690747322994577234962212505665297936434093186938338288825906245199385137085857344208411097567647506594210011195907564640641712871198688314320503401557233340587752958648864607899189798759508327269794322980429574715470272805944981277524104051995647604518593650296811249221510375466695977467526204996303869270061042064286708540896564865522240694348214288680344877429265323582956116350720868952874020505219058875591338444703477704231658780403889038502764140438491789041457075455946410176013228954005002222137342099880475029671527527581584094209883730706411701907664762017140378401633645434917852026728234903152844986917143362076965552292040843020457220457289415068260336567472640124861766869577494330922904999601557575795926777905887956600370907339093262430363563987515866114910663793182255337044948503372584928540834747799672786323188118075718067718013111202295540210491541504280131717291262667086205714020707303447883721460246901288050602334031884856228058086303322410130894785013469114078163687412363290571763396453774708273090764751717243120417264782539935992703282027677917403121026202738017438815589829121909780960094797379251715550256524470766250649358200611495437005817943199253790720130370544864314311267953581627411359114573216827197377423774623860554487550641962929531633327416377235676118734777173007382776883834441860718811516821215427119978226960988042895801081908561361397673425756804453269999573483415099595354890683833156579564174851406804187491166047106582505344303082438069182194166023905070528176267409931033222688962936448896524524016047485371018812222316430699773639043281023485597026335491747201599012060407283399777465459867145885152016920339081148113437170237159443653370804343975995689846507157580244830327524531042837856358578349413417649748309235775805283239769901439525626924555689534276228362819311840654843362092690668017163779691064901141195824996121781654480696022928896000514875075945800307695041599996038086012135699499737476029168358071040249025861466572479392221764198566681835902245796878503483617836664901506051181262196796686012174304842525406554156667800877781436002607901627598026902446567177207659599636920946235251189395698335627224111145406348515471818758179618160417895770810150335400777417886346848021629966312710138528517125200619448516946751811154071234164286303052080049903101082614062357577751304509503289479397440334493460232692941611901324251897635763712520010966115391868443644921083009752799175612908261626705231605981618587755724158210747477479485116967682619325533054837238639999853361629898645007694361866300204280673464249048605886622793347608216971494305763790234669300770325004143070430299222300455508631311250492025938521761976290065722932276207817728696458807054740958318429631414713448369677585842866126604626374146707549997550132108716764894998916202553265972225310323109630162347389087601789849478004451116857178111879311883133680535847963286965258084532253424658208628959053904054278010058361930944410420322475048928276516798547295645339125272487303185431250701414861292776864578537384044183407246653784429260184500960044011476424295867084896002874460387764166127176634503511836564964000901179738369568870242752261376115273020973311056977125576173156484640212726052328310349983247801629852994577209467827290554181068267391792166496065062217674029774072956639762172596130130270299544530606470454063805338440405289881672187974820667608354225199791287024104825191875357534548499531539451251211588878367410443855664863903016178662873545898219284803750268585065812688106342822815248576964959360145660601717999750939666757738736770999002559552207727951166605431514038790021611456632951062374787306384986467026727067881882024457226390332504233872543553061474257603659557795600957986409063449230389401926168594082238411083619426613550661769259532803878491341377080513786344527773412697511202860809806675160713859920166630886345094676085909540956762170393504859882253962637131735465808947102478371593408646705422641108461505607026358927327874133741542488089012306981113490290396733129418699394054400168138000385151244898706440625913488782526180358387710866942758075269265096983604430353735994929903331601444143106961432869758709886642226674477401498844549030474055091457181085294693777484425476611903528361680852043374578572478485893835633818080919409469313793106033358585880359438697001823206164334939554897064670989673392923209763766146816458486139134439111416452992888510178885568958335596471703186152393841308567467089613312208354115930340006071865939603585878413752949519840369589615181618466400313100860929698008050978921256117035172323839957941369540961382023499218009339994750076785225977052182604431009848606190700971617854744851383050345236282307773602953137916168593338350474955946375495384153020063168867322110938324562798076725643528055962697420120376956255908654175339562622081559975891951397762339624906264393952122779443462709268838912757083133755942073908527538949164282452490887342677865092299264916167233839787264631412621544220600824617583625120640446336033226459721523251052564973657005734949792577439169393907326931589106288074866716750983375199134987624358099849071924836290871866946034809681648928852355582023888889707415274787245186827649195879634495341192156862268431435362875024714001931799982092251318603401177514387374948523639793869690822419955472943697665912243471124249704987464220094024254296070011750368250619085141004744508044796554048549922970746323827159753741907410993000013609365043929014618207999426638767687134543812685803658556359083597389791455567726253164665245345698816280010900805490708268704074373880306530744286713167188960363597901927656947629038145047581958868803505693659438991034395457116244367141648556838193007531106035275492446306618170648325303795733522189604617233841094070709195969801668579979943570493741807709879142948597045352592285222786490783368916699294554881788829137074870931907681779750962663460827240018969383167526836531800558095994275786529049231291233709883839741352702567458788193456962386263580828285037922273204702392416961970466867446212207208355550799572993416115797322551280467233971925170129632683516507868341392756281611637249586256197298881547711461079307939253459315344826230286107605456874439437524356600917357634642648488982980826255788684088361428766729439435245433324455700626407047760714173641626760192024908977434493285314881858176182581061911384493933540297088088416274841483312114229616626667735698807595579251898413940840186280131329557249917127361720196333104993315769083679597624660165453199576868680570149511823816682621562890940040463905079272473405910376531266281752077344246027637175986822323929452932264489980037716229180767489714208082044123756448001419359719951953364877683001857912544940515213620350416653282594760327086706607060603393291848664305635821396787894418885655176745105238699268636937674659785478668789783815747676452209736750072187814541329620464304296957082174519834752048420882852493143773912170017990401244924680269188716485151622684539146558464803397923307510142411106646816432054063100741574060017955630228099897960539801799882067970049249546655506714318379672179130786072044867451728986688020341554232404567688393510547844164534105919036808672751395311151759443987345883496083573444123352775185659812237906147742193824991547732384334460087848182584366333324542750583862298483314708211820224239445696850423590356760240332555471507389917678835910105050940677757968065502632476768369049742521191677575040201081016821676391983238637443240656626832205446979611833021508000613618014604140089205158379563866345320983672449768948742869528330698988265769613177064894169371386008091318749977958816472957394591218814627242888424307108982628512334864505907322897777971733668542767048578734315621878581229485566252996962792186266832724168389339015679555679698187214379801751009533911408393914503007490936227659946133330123341364357638544604069593291093597957604113361227290600370568574656978958963733533999220161762385419162141764900702962877333174596238742549984525124375982834538621359147534873050880588533112725634045666770364549190216432752566133349513385841407782442354649029536821350505422609001709751161038268444896190104734767572894865297534452759936597993928641278757379123842512118194180945760698108293454176098157878964138607278597799322146695812193710135488277487087590407163601904356684151878527287964074049584197810432930896586006003869103805973342244085513256518501448480079651746011741247365074287754695410508950072062109594866012698301447747816681830120723274722321680287624848647926675970192243703223765966284678800894820484049045417979146967626163252191765449904222118114798292205424329095047907528054176055520656869398524456136765529223828639097658146493814244819311647902939770195331107290383086140162122441703457057114613745251353184831137699153234696970019312887295298728078407090587657223436053280613181169161037434560782540416991034325153630323060757401095167144873727299125314207854139792048496258257081433390436804323616732801492138354130159718798106721213582523407514953241583383149191314412101294724285806059957859018240251132744009780487742765661048859624116506147758110588342655136447713430164982060054296027982597213410583914800240128130057454035715849846977451053952545401719338896515309139514298790176283498456197225503328585722150098822113605268353952313716623447413292066530382793486408299627951991121703434393504403630998044160356711519323356911556543042061703530377397193251804737493498824072737269312833962397701066183628067134251716873793383799891032314560625551418823853451358720088868270488188565008817771864471866016362631396910065118506066740249615626937888198187898038891578914430113757600071271243749275125912412080371770612087723320982460552364794329674039440813245432335970928196028132513770896303299541261813592210130540927131972625806683421275979259894102159566165618222480450593079892600762225692402337684553624539350431302186909451841774685729631651576275418313767629114137649014467978430416794764251313478609955530122767342335259786284186192802271669112237303470760521230057925467253692129895688205721616315009487904052722978281807625774002970812786276263212558450995779786810227514641950977100999288455109240702462575189605761898671541866817483691199824125555069998941525318848169483072173285513619270946041855338700562949358845331830446277839320786104711099961328575299340324370944255687487770139151473934118775807637293305104266560967188885263709174612787498249981666663278658987854480160211145540623911974609187939221257108666359703053963892126322305330122466169796121767980521755621576762247667053689240189589931020921202536199025257624318212943380182197823826342185107910737914369989667534872848648413128464833396388551822461039137376750026366576484786676683257616250230139277460727037445649844125470370687136259016463140179185308035192896710053408920538561250685073372475837208733983634639491772269185460581425881981775753618726395495693743860003005050408986988953569377640841361519116327152777248263347632696356469383781589153195297565307453716905613463031394056128849640990003783702911197877970886667355967809338392324871430724660892281981225036308775643508575824076124868999497768090846760753884744411988604288898177960067164069623381077094335833850780710261940629506842561461507906942635477304400529146309289383687010586551123040422908333987034448678417572567376555411314678619756552846470812982067363788395750708437990946681719942454109728158574564327989854908849944941772902516402571565511373397868430825070309174268026347349893792357202531957085838973976689439577594252078205471321647049317249500076589915924877482235302412503146361258222075561714440874014200530914885844270327920296324622224130397737413342235348117780242523653715763636009449657515381298164161736532110134704778045042219005461681704198402471884389038284132506796890585760009496551121766572064073842305762530173547418018144263505485059695638014557939356006571020169523715953246071204499857448338059601497682118032927168211167012174391226537833120214759811226525684530224215498176414114764549119400791981737891480668845924339897645245784130499987994696570061928775642492569207482634087022736175075969575479738598288384322830079275428587777140046753234499959790812519482892925149501377054450162499254215547181257650874727008983475581219202154400072653401930813691830293862217933819077339055185903343451146665038052488413141154286997278468625978978850858544560724416817215083260508764859838875146701764452926659642964838598633107760337218724490414122421687054742845437833252494904889584877797259584554780194077099242272953855996031987982786653677543282786127487849233569414854485454674802972467310650337094305183240839110112057472097342884204898473314880257606145311700449130017017255640575690822487288566713551983469658276792167551343141760039712288259146921972268188200235634024494610233244686968574435418131661033520090282901926105554252019229158392255062813127064651857024692888681225740880737243459306751203578917368497976917374492927128619542151685991635358533505577157282390304420041023426190706836211060677092217920747276355877167090434096408668036309719186213353441912750516403125592026528879410853575325724294944666866741661536762392467815847527408185925291584611318458084136238896031236196443090630735532033149620383488382427246973945487714296908885441147065882820021489962018415881133247236183007137420483217709394318093034389153457318328786910281469494074394623506434865069447798169193155315661992169040190750988930461330973148810979249224125563425698251539533452413513520545282963308078378315287188908213823329670406508661420734274563697505960603340961611255912370369919598835536631505692030985196957175914586582409953934717419852856155471314528615959654265787590625822894753838939428571534583499636651311388852896978817494852054516147048579242534794997447869967140994511258362648260891479463128952333378261935676420873064892243860909094790498509983521408393801341614398302591746211542745996324837094119537582698762469589536774985966582013772675874057093152936840057389435948410936949181664323808355037574799091559261730774931381736614491430769302147781374123352973149975803507757461069952482632206323392966766237906784474605421032728068886418369168937661186124329753921533653840358602578507528940134280851147040180671552905378736465966089602100921251580890165584029687805079499170882399476610091035402046752896424822811247388216863322788758547998282580239705545191113016462024403737441996766645338685810320876153026320318359748477408148954550603602853017005559773243017520378394772623346313998743506650328621407841442058394212304236698577202487639085222537392436634888366916132937600017258354701199545438054548612418751174692389170226880599702777696519499759748632243931267740608884453208353568604772989466834306821099110513300997755148184631409608865828707305802655826925395883422485619398309876318214354386083702927493929610766455726005922516688982277641703032678343301006386771076154105495906623681602422706283521332098130272864037421816489022741460157029699172933916416398551458418506693897388969046364091184519843966115945884577239168794802801163574319169540381245883841869698133184028869900022668105570299582970845978201983839772217968372538631378368226801105622335481403564595512256700393840647012999224991106272434763773647691719935652691068702061945661938718275083979174455675172622239278858436476083478286075754135372530028308450567586441905663095557838388118917836922289768987248126827810952079558642517674005941570135710962303563971972369217946703681152289239757192495946025386467297859830555271532315169972834054675711013233587144443926674205258029281994652811064935738280276566571605878220558856731515471011830369242805019356972844192737508466977192298089436317482115149524323530281077732417567295790329817124135123327193274557327407865965475143647739023463431459493992595808917889466411718568729961732745643983269439401753912356597993451580039077064872384049298432010251398107971294387751007824691219789046258480478969738114869093763529295806850464564289196355263707014221284776955004183237757592765828373951892582254211196312785070513555281172173818040900417053537910154550783145902344486549536093455071521129253992943130702404517718342114064349375854069639471419863315961771615289433770315976508014095299045374076268886769301689077775214982322281755783495415221503333462387476777035206982081371134179469276109918610173699999413867873184352525748403345385449566012172451587095861468265231639416728344248745474261601047938716206685459789676982162459061361614564105713795344057176124384794289742521676042860863714231304505137583968795076847739268353377214035417158073546317799670718978622286068864141104132273161691624981799465330529648656796700043228635197911142283329202897067869548647143250216749746550396004123993016036858830683959067507178944423304707044342847900437088195118573622953604047447089121734218247715867253015627898454918385767952185433835738797514766414479500759225400110905671472854454076321675401825092383979510031483470605422482384977825122410568130200940356692034490067181506135043882574181948239353108895952619900649626379049320629319535046617514223207183120603653131089816591112315029802949283112212339776631020509057485752247235973016951255893397576731430952288928037778446733415662790947106193869303434426585637139261322549470726254396352846712547888612142556998310692515465036540654737379233369598679500597860582971239751737915994466038697138678733399881757560774950052098187238870738542657358043121261559799011655529861231709365948713361847640513710854293736045763327250846047495514823982038618020510026046362612471745372263364252221311402820303411614048847633690121167510898595934327216444972797477842615703230984976958770422141498625357239671989413746098300696562921167647714554719282870606881161506567719400341937307073264929617260560621421999474456702151133372594069188710813507292155526437798947190314377666092209512816190688918293652925506730414525416116088589929658872550190428808018592921537871574379616826340923959758244050530554501270790777917825598741839080915420041931809201881278491337117226949924632398529263885777251430954955951650594665254516246598818449251769065149723061223535403813840982508076740378652496803087385375139102836260505508274872703709684200747612013166973084716102899625145942490230114756785207781754682277636961415407708399308369956820187251645635570229882642326875351603898629354250166107914732017531177341613698495530739854949448617244301878897633093752886684962572147343690521772003180403368971794184515787012870636770127892302363389998967408400098146048197051317793193859575662264722241088837479502659549456966822247611619689492954876629502097433660774377108050751665017138918255118181561743822304302125214652906732199540169223535589318241595246346154532437731090299378584613915702011298448103805542298653244091906998857321257895910554777111995734616656663859992140705662571917363187049745540986022784379166724862987860605072632112374668136619667572073847748793540098240413983512104568839108828721981736688266534401842556126347657975110347979188009061426538580096698215856161308555097440798047363605233049354334745021198007670551767357785114764866898533975511635562591260288032857544684096573570318449869054455839657259418847380085719027060484215934154775684738604862272838835996644862615493647869202885388940969335913751479406446108173712664289077673615535757797481853953100071362432840608418510476972089908975556476218877389856238824489465252837247337329979521572886042537939643126718606774899046654168993884752264368713287077317187682738563521749819365056441536064188553548467063968295196893232563102136528124423653494355151242365025968034642911975260015044313408237376024873725345220028333721826655539845185650096573217977644512727619641094210141052310348787194626411946070139784084571339557129535565147175411610389783623062666778061374380963593919646300059958693618917967861532491340345376527890091059721238906018328908340810905653012508594524273500685131785507570896429814125757463650009576233374348727211705875036813293955991802067920370449030076884803674234830546053808696984015918272596650548512752484334926571292595531174083595399747721757958873802497450373602324268423143838299999880677728130237252829200639023246000987707478806855029895746308099289227674708012229395164669146026622595567003207155935863824165947619738578745409011237587753611325276334435953953061542755249439824062730776649771165764505570270200701615938072225196151895013602870873475598085197206661168281738530793626222924804433321572982271766881870814747961416689074301242257361760721997594797841435729691189457107331756908237417500929868080391208604142365937512820940630806599039410526976622727419459136740985280842014111485621613749264628646975060932185224937210916713318536840598773451930638507545035242319770972062845800664922589168179841632991006995027560529053933636211344111813436982803953406426558284659454307918560459559337006079683261507989107006771338987636443245206454433901093436164211982594114591014369481304579372485065748209773832749643455883347941694209992843594871101305595045222549592115170743738837006178194060690626317348378898809515044347002938750449223065987882898130178142001000259265428932481861241557455066347999683235579529462976149408033579715648709742435388273343855047009231177220730811150790465161642338607646793630537129283053849906299602187278171719741201395947475651411321581063058176734511885009353195221169033917084909437677958144908239460656390609443824352069029418220880231238649349267817123270872436157158223088625549140740184366174402392349822433803794201303726891212114554538877516485684249790661807096555824223994185660019723845250943744131042362280609107253026851111404026811944255692093502286820305223803265874985392710555548427962005608879555825015275389117190350579117575957612777587908256885915301455379657265730451084820372798794883404807400180577585269856227236124702395958079912178295354286847777947481764043064730456282229652144036480454775436892912616611149024739422399229901879585641657359683573920969097279002435180686520232879710177936317651062779325395511554023482370871824589922544881397085245685489662928054968603046224295456415770877056710869609918824233583537114443461413717877912711434085988909126438657923075330295723383898270181891620782638159302982245692618127270925869481482837227773461924409712584175709700319291481310334348913942603960316147144519534517649426394763925855539594676176610885687487931364417118839027324262745837387448658142953414767171981572792786140389796135752930791737907751248232592332415288211122218688620242330635817127556093282597648515236806671747587495206545547239759982630625319805915108708046278842109631196061869761388178812838371076063786264525748251336152334561910850945956355457666071079946944876550247144986439844534321613751450170228023305044416599095095678250433786894062916474159583571209000117762147213954579147599849338154511080381342577399092925039576065759880190940496835336159669953292096611270986496144916653783071240731678469638961527870935737241049792000883989371273069616809816959999894165359176767533613370731350105543834997426317765633486022724236565884488015392211499759387946595151988720805471001612517986497832627404373817011258272090485250079531101856888333373156270227896615114306807770483167328772598143065893915316717974418660292458318747608013802285636206737517116965252215562045096715526003806246830341456080607152381075802583641137590461134579901209916559294875706500707732821242818814108506839465490752291087458707919533295461010072463544597468075505461878364330555444819283076675924430561902894511325800245266987435990576188809304583616912794720486148178696720614531953485686435828691079693336953411531406980889579860671782863848192616040087472884673524910838952330678531054278710381459283167770492077830904506100792266429297270099917310011583918221090140652488907449454741673367956571494926577612244858558918618032677966497549930052624542968937032514621518439444690294415359391098904914808388037837476980442525985025565488828193999371720808712772302768362179508115874861818149983278749059381445147187879051540917567967797374781318198127427452107277474020121529565249371127077162773011291467870892255850877084660955471409926972946387272990966894536986578301133439627312096203532625138679942328202014182426242476312284389189014267281753524164756852400935783892529575768844414455950404949951147737731367990681756109950602989935767594511600799572463308548399430964110163649173551588125843927703373277967196124042093696221590099019097492090295971563459831324334657125409059305646680150051618822940560607318812990836055164881363657351341700951480751536237829268508438372476700740312489616924767913792553725094241326221931034202430696936951396444266726626358432917040806841450769580888733346617212574090645652917953998504644169109038672336574884648257353744776584600916526319894991896331640466336204960992772961633640556420821947425713209263576783795838202456663506032497072196585351306222491946758724673319936317230751073383126400607867293791020207281598322818023447915611731655394824931894349097602499809606716683370248236842540290471066188596697339620604990979740538757564819385492465486138515252990344179807626300801907630039797823555529517423134440898107653388321766593152203074306416171863431029472887206643451205934982198177745666702056366715132351070156811651100735536208934530096774013572915595378940316108030436962933076970174023127647786702506040028414025536798060214895084610151607132471114721063422264646079098058662070076705293119013401144507070883496489169808832437917006163001446904900953176993345063545187546117616052923726283012563282277546341789241293049596602641466477433303935970693202096594076192011703818712565683083591248899787739979543537986586477426191210500599840495307061384908510537621611542230989191079340194499222100260739448193914287533342509087482029092848458146621167243181719467196611674087800988081323519015187312360092659151864946096073510343750158232698145031916479950359228353001415430527288124181197797319055007801723052639346149212187781400605421224647499572717967534334197883064855563701858475248175386722499381218021702562613092175440331142101077089146032083626285061736524022464880631724456734375244428865940336471242137699324643754862470254390392744745578736839247538561842594302269798004561639353297718577224890151863497930674747496746857239765817221038748946732289407662023361610937584870241963527840989661263500001481628476927065973855169887698530239021841642726281253034206798464478360800388211653848944883678443335246895394016620152736221337032203088957144936681554111565446673030982495187155942811772391862977094598133652907661481355166857637198387232677387026868392282520780288279332235745477439867690781673174219640086294705205247826172310965706557541768831455015929238950018345910699314398532936872591531292633067553862627144994285371264565881218737731193933180443637895044653023842363788103582018315592144566118651051009547231442482625626381216279403932061971813430006226275321302084047781278431098903895653993110375541330455587321785959565413474091638127854874580701247086352989657111367332615787924265029617612194529415225992894552113968674282947773120086686599442968024614589544882690542903481993327288172856758946798157688223815095258953730974309452750662380526038706705486670720890804572865149441368440609891243122125428036569190534339313732461547607143851307030678871712736810082254237489181650681602432532500350040518892506842737620274464676995691640962292356509850965615190757189404446958796019069455992527358257368464335626543440503502757603464794581013942478587843146237794428608252333698355478443850947686600664341940809349817410306045265456524088296634843468177101983599433907959854926652061349273325786734792873295626822112457442698555622496963172728421600380293852431240204098614970262082708132509911028944837169854202480377799900693134498277116929223240473105660966009143025431667975145823272392888933048668886298561542345767898555985011146509142313698289386391136701429158822308223965622584973285386667170890187443674525828641521512045410666053961804379419509920767005585501243182209639250512872515931477826276868073011710052525141890068104656421727627217807404451323537697976244823329571255394357268462552780533412653031665836056991364029023023094660953187752486494165832806826958114888873999130473984299067999571262925309092230188281471333581963595501721330522028435385421133200013259399730826838725604578237143515314950469122875246553931018635051858433297553318357508483103603438298084573141990807869719128353510336155914496988530107006661742775670460878188717340484770640735708674603699485533476560672985996099685982024216366644982885886316292296308695597154998108660166172276197757434173897712520240600778882541478028230291776087814567286733782442820115789057059346246326048301154655258770054663529694092534760066110109288886508121779250434630718151598309400534018991500232208790415088419592870878377872584373981059220690025148397554551568387421149108509590067135583223798825589059344532938499408058319648964642873813090992633950252193999793434480383270776437427406956439878765882901190342533354581149232057845876399362177288899352841758437103898624118438700607207873933483494032664176885500193595593768966332676524366491625104910028964880184667447554055959824039285402563616677114017216457612607098293866283845622887895202859261827332841013838351054702588411078594651351771745213896211881633852121160099349179888378922109822324089411655610996814173751326983647788038355789481671915734737435050914906132469690217231399496836931285049001393995453642980201107387746500947859197138132005629434067155865122798524873931037963188948512816759221422624851138994110679306680647127665790518556079063630102775725975611603100915234434057826528173030186127599978585892124675691939383738766343134407325473199153282690410009394909744307115728564729458874740399982373615494433413045131850294139414207748266508740957052983792262909502132710357368275711628811759067713717901328085571986794155269898216186779357311571951560469451377219763028197557341907940110171538600897609291307203570369830167438777354898205280893991033406201556020169851309202863432937313090823774470370835572548869522348141143816369921954158535427173715600646717016605214588495467969631453811571080726078544015419681582905086504470157196700739355920669895656771928475147898970041950168135242618672125148071503951986903589749976962462141998583049736147318703970441881376619788973096221288857725672927597734829885211244081747099047572379041474716737635847385656296775541768208627993912457628172854302229192509612635725138340631881873887779643305742889699851874093173947592605798929748455577631800737058570801003668261670511380902103847217660686244938442520567937766872870740686484180790224887836248252422983307987849648473426029851612098178683194892597234424036659076805167994804052136321706953601459147044476952812823216812287689812146620941885408355543315098595368330586296173214070247684813453465789488017547190887006366034916220700723427244466004638340261408873004535496265381424819768128504469692176517079894201051180961216716905415260575487780341700708182625730919715514374798926542566255448235366968363347859837673575040087734606575336961289494701310708993608574277043784457941256522328066147290885792209300753619325497742087124061008128435529559781665112709618147383542379531353986144799309541212336528966710997471353856891627844571272252299424403088246049876945818092177748423143306010424085241246902265534089523883389862838007640516686446871955824574859452293332039385845327058481950781260072386448762185959134579415773523479592780980758573904505201501738698919326125721826888208748558804903520456984268844546462263323249730730957882160848225343288253338985298916784354476478837980703997152717072882127983967058097522479757128275919185648722481498755336031366731987292280542888697062663157720502239738316106105607531927271358088038233325482159544192876670860231632173658453768643366104415691360679359950688890147447241111091704924502494193229386343656683884271363971647870354876279636739730161449287428606070448143835048352484997419127353938881885966677710647877739364193389667720601047451753037535911988383020045954217720078768650906563580115278867495549256425438013989772634415313114061813861153813995803357368107527991318651699985345468292696847870780745742086082217853212409934219546912493413872538267942516214841963765770457378059458571319022109775050758486170142565927647375096283230623342023106369832443428175909908192573605592270160920749333212307350139606297520820575680449012630710668028767890678673080514205345337326660880664551593355036086108524055646556615761447570905982326153440288216171987364211799896856474694423963623725792777678662650782949462985725919764497818638278323706652970250440462461561284442663418374556633147808350079887021792054296678309563371888998578934519082471236963470277616512256458352398825138013995813687667596773380200243249562463559020272569907453914886843282898846718304723692818316405638384631347555070608945982080376813429381096140112728968922333648468437495870116326144998858806574410257443206023188045358524641056092208283110775617647515453801472371385020673246404712079917453893357852664969297744391072142786109315221419483368667667913822731330430988600522813843994115324898812084615208304188596946013442992232948972464098548696129628495269307062739642918269111915518358697246558048564450755603051119079436745887776108765278186986359375537261299076220503382833534412187151987441730601285004769433060590630991551971958583856864266984687075719154519678283973812541153267959583392702968410158418973614879276439547889951805018634863919152796324959092496738515125246505400758405392663680812492628645549318839319696386939054040537461634566451968196036545122383267887219188999102042168700273843199802213148860780937630635002032466506254676025870021833910354145644242952041675658858665258635577048239900504459700275304668780257189136365423820528960526656199243313183439695825049907487092878728380012904846904202289901424253228964751287153388417628047312821922804898193194433138831984705411567131561056028347220044172908835173765998649366228784623895703261034026103109483182619051854065733356490724436059108785203270457977151514625563356466615688662136276975695007321305302049154684494579544851789877036599371104125865187283566746229868664286607212758117191864240827520083030520265333102295623990922935467020963453953557672418581165714554035424114781642305295310119297083816535375551507052473822935662428732618608188140030021947122505817425734077151358303280283371760578933923653157068836151847752507782530214039744530882266317547849514721249726107176704846802203053878092534433739274104881095555813256646726270742415844071148398870240530104107893992372297656101268389885700253097477789452117332529273885860223970647221090242387536443471539559856785231948471177429890865188616677172720743960202069523124290438767253336624373147088624558971491659442045312121250673770559410847012407350662262052101966736962313028414124868320926205805672951526185074354903512138616100981967984011123895711448440803360105125393185613813333320094706875244487363069945604300365364615651192924530949078481362862577501238759429263671806417070288429388777715396795530649109298603470362473863478555048199069504110809216403893766192266617252310111903901918601689010402694553059824064998358169380404121902865183167290510743690254517238740803079009159081517976127515295178676317969052197753086897030698390717766142078001529274153720131710805897701369271348559876536287719872850665836932492053484958615681297077150670422598813987809610661980113731593970891079242424468540827605139613863260573906166808730564456047086994817556060570611361949640860510279084812484245910163542852395447101042104515577509588562747161164956248571772656493942747357650978457447952105114463251633640283314347046200265823142081173219854559783690679199666238652803088105220324706740721613140651107371278568606625688930647931163974117981262472777339834941683418186597338298943613865968827674713760407563066438763074665228939164693402292058465362203967763017946351824309167239977644944471729743532742197114947975175601364603009143286140380071482140931868056882752600451126588132034151514738388149889701281227711178472301327393528823141623559411184240443859043871077070281019484288106624706800392697478881331822562601874970448338817896248234271813150572444205678173490179013028813673633814607146146509486673732913279368728152702035448069908232261621733751128127731192312456816677919147929316431946477304695916295033290717543418239056963374209362249089748617695094163646296119399740574694852738992173645789554511885938772262180195160429772145592504460619648328151559305629965882852785225462066604886745581991857644073001082131531538839062697700741760876797049362620379307273600929815224602808974923150928800730619701519569796878173100871039174433344861204544720207153759226855399852930070633144755121035145710811667321043849924708931786501629973619763347018498233934638466337753288319490291867566053063535504610649138200579171549416902306893883399607595767872934348227504404697794448810743952779066364340490705203251258704502196211871448386269346014553370585127237436772191989380930913351871808217144165065978940455377370849496150714061915846539477614394345564728171683321975986104994134217738150444613700805810532322384477331801588730548063939076312704402056928184810005613989417327513319014091843043374731228598414759131435559810854560144069092883581228046406172169705419515883682641359344716625234486274020904733214304841333562439212779263089693669682539576628620240743641956692377675729554125601762321258126998521528581824724053073983365551157917145158605697230419032416725136301983843453880907099232499436324892681617429289358104613750763782634819707075673563321488477265566075553288869707813072305080516088812979934545812842774241978283373923980825629775563664386216146309692300210758794226430353111109800123143864585851845532374840393996452475136605255161115860827942169347671131102823578797323262999141872773562726745497889663288825700670933027767243410990822495792748642953762742303857031920846757415387383164870117126664620543218679190041722373459697654466751030238967107022493419523806281731448554797593317786614495177535155576995231863864994963027549994662539712170136989806153291825324691907671386752159680583518493756201505466492030714100673499478990949418201516754073273124794989211621016002912954332391975972517261300656659138160223799216296296148728819811601926850108327934053156174544023217847998548583129229840306363660004485964029080902458682746304105754076907890727126706364666664720123725142613183728281933419865705301662656699988360533968602726348612162343917291032856529494503650137598178152571803401987347238618919670190019312491649576046532976124822687894674362456686449004021587561210537613235751988976323541130321651211687290537563806710731214479674670048830634846946304940083770177906362127282860951916006730296060532394425304608938086728420685233801463622314194763985162732180874840158922611887272677510486089959316332769372386467050049801973802274199437410230730146794225113644578605816397635538007279383055613676763646494738917180320854358241522084121858865696320873648878440263567541086343078600091892480681864828572502948036115160740434978234024295409977031015316266953273711019498780943153725090077434618064769371223138705185155849510834117683575925879487571640883443235022673958097741003740681311441036460883843595695791473437632915835464342205807821795565864397886213197965960052340421473637887635992507945913830421468114332504448181367630280289548921024655943692202641049934421805695512525353589550308076672622774773522398319825560145364370820240076833978413241757270455801389730038479607806683031611018847692555903316341543986686506386577555086723890380046676736234997838450257291750622075740058310702174816617692860027170483058518342465756478622178770836475751686216179997956334206748641181147052542328664170032108195050827815404847343678735176094254429407978871602139444084320512810106812861845761471477646462239851436973093940786568613480444300055190936370139399410049884123868533620071365453166581474775826032449479305742686308113682972184544451256600936679018147546279395410129450716313188828406234060112562793841456208701074488148016143927853348141638506560547311515638418061581927277482795270276787141884155879028436633429283644003707727329817784803222704463107886451352101816388648971813466408509536127470035291441158603735381306732355053177937992463949934734392290993348801048927012147863705282840065616144865144814631500544032158027423823576124493693132211280874016101726458746593238704305202786179239292970475967162880544001477095961253024067568667271979234664197484902550577444663718138209143088452749432399506801784948411657754847229537358972899773396109129581184562532705438991783053309997347857009933180206629066576987494372300766313167214182686342037956887734201258976405460685707469822529869386561773984274985705685140222080306781625684804480861701452967246420048106381005653565553838640355624555095585176029742534576808723628725662856791697504865427566023852081345085408328082405110804595780171816069380062253685484886651537767462114298123193114834644449671821143427711098490369972353549528458808058286652309495168946713643526157327009020097685451389962315594474069928697525978598259042982583764151260409540029620753349221405892306337642767367654846060974820237668634059001960369101274732364187523386487000762977889760753863971623736425501715785918837347971511052383038637034081125995429400818787334988498244775520298807524735946693299608497399937353475435272953376828254958326922366737143690047047655763727893275228696412526347046727098478938685142938467438032550333369218451757243170818763602198789798851242989326561689959631595572585957688139227803250025405274123125976855700807021968259031468793533313920338061122347262248128692327521995379313600163762809149152711476741099191270263949911316532683251287306458706036100491190946767554100179345672734080918252169495087794349663588375596571575834852148162935539174817361466718575603143359758020998990568067637776195766326547353407223977497086455802685690364343066842068554809946506690703343126601828691303169217088869667082949979457822577715849885461351078218697319939673055739541543113209859380035792191969947871146399080019749361664236828848855187604626982532636588406245668226912683989608903627415203038157525151248475167524839110401251259048820660060931442063065297585671919112176066328953537411440563003113850428605381978626278985514681878539342253913153587934076378442313828684263580955157368534206710150629283877336451402941970600074829874172169070091428108925273607456358211163604397762814957371376768938906243680490972042787022951536353106455468319093609592908279694906364962634721539687704912347486341641458847839153146269484796408360933959632608626469010117601238843017255108896289269185613594894581828771018211524781509422938649114287436336035390588598195843289263136305447298549895488083811736044701917209150957413255082650094720116463110911849052679563021929245084296475606138508536001180089814859641592810688168535472088980680991573802427476372759627177616995557749598987863623104623590987272066247805327766082327197305918721740500229723873394777772410676230128320658939742169238406770857784279758201931719053701647647366720731615485002035611350013888153368819444511478195837506104758923010865764774509383951985734937442278377351668257272385566398326527877369539509224135348678852694487350537903169587850856951983604676371320275032056954558950323322651478699448437190749299317128831729373833981439217794247276565363866815034064451467479252345658649207450985840262596731331870038186053168826636980562626961091368826648179954863969900878195315472341265380974935976707855871431836606023260635932191564068335242431704985626599013953211301735105083122267424228607895247608822763164702957540909478788435703039217682986356561492557526861477608244682004945101585671900261076661810111084964221448098164309836576359066582097748666988039775782574087285962630334590173650346580338306035059343566289818397156721458317958293400232012201940619590170515660183769216768347898430560817670257254825144167842372906701705535195442647073787143688256888723036268981636421129041061379418714904997828094261978176481301514440212260547421347844400344519032426638493688898067769548049510760334951026061054426104918759180114051921968098050214334566677819427589965433236304698334190866137904582816690007523201328522402761668544596544534253401415906452388935241415634602798409028766296148713653018224177935357868922752099651833057534003267691326635708811218733025792771906244580380662397499769058358030859736496597800033947512796768281451321719066542871126520685972567102740447145461207600735820592059992554574322755943687560442052179251020828287481338735398370622260985239347811675934043177864882503793594207131837778544725541462767899319855415868213367238355999813840670851560457110941075169308725891885174086270973146972798833571466529705162561163523139326750040193238588771778686006554917546013184178197952736288647100950530189378500332118589370841882714258671759922670785908363265830897238367406991549462985151993563890340124218136493986758565502889197410207297956441578919534490307616562050007730277845827049202464376707001566577925180674644715883454270602003323008835714032965544774019486544523397808103980929249797760017510402687857512297245943729275430582842544913954379357460523822897890493870183044809234737788431452805748588845455265014425846621540367068472148425769620807465703366119966175601653539789705717726207576034623248710331955951766312500680057611215861745907433046654957787908074296137486026315071455105087393597803046324902002924425827696525098861540599032390533835490698198702495507139638648588971957647366800314185343438779060789244972796157238770060864730336815773088365358503690525551697333104137230340279349903967188210280683263232046841365305826462520524465174835995293419597551544281648319651433693062478784341116128875789105505096212243838677607785821365561485485677204528402814212510869216198151889022847611965173227879414670203847337975081812931129913260550109809244114487663291670895664596897990549504235074334643921351252566747998617153128572811560155610457589899683824495819705528975710166038220064094328590934625762116163663390368473835306138252367767933220117354397445462628447656821752270120093015562641385315820225739879424831361127327483138567215504662559641505955099749411580430084876714446893730628667072916311367556043790780507158186209609291051484648210189146162308882769263199948609110496155012161911655938924493539749259808980173968694624211395557008335866407480652478406303264746207933508536137525052189903317349961172351759384629316114485318422959417478809311550742101728520570394458409072357458179447766326940433425747480388324710968555378780833338998643945109495724383414626307780103739469297588207453200728138048111178753320099798730287099097924900696647065024210507520782733740950936396136203516088489381020970783716995530795570533114091847675659613818314974605296383436217358232770643882095721161792888013881723702541368988644916986466049267405248412645723778749817807798090640613847415278916061099182975433733981450931635854677109361795535572081656757799258853031783069554706020749430385754623851864305167678802187551683668517184582656695322654097253491276650567630205710304636745076241919034778182274763021475770259306683633186968397020657222641392313561628160952754514857497871307465088047803752000723937737016174378523189453162367875701737342448543412454596020996990399075771250251935503055207197325935979372903181165073810077332350545378839445148036828804929746668633218283629688626447602002113389838066395612890537048400727570892789000453110112105065211688916873080723924957474267345241524885138425223604375475478684596297294157006102242709292876632602292181908929232074244628058590300505051349186563045467958263458280299567865450881981938165316980344561885955332922960852155845237599080084509380840107846022947710038051761349847883856465448533146603157317872776759130026472522153730812309148988383706696041563253593694310639442777170651909524112466810497429122168344688397276287206937062806285375330406872388082793116586235329891209363590129902554390155601665215339952289323163506459116971425416985909872628735738805879409277958781394271637031301480346137172436877427793295684096796463882114423019287218110130084292173990066204329961695201291220565203815614731018771127606088430378229718603529198619366182138144608338174743576610862453162544829255694127870574908997932535558363585975083681900774815573333767164525323048631511330807246221382121733612772123670074916292147567417907206942755970343705178277952216167882784796402361905203417727464125038609131922523465149918940488437029148456548199572200920395221149530731705027858173353189070308464198488306768847299112503229549432777575453706696891351857605555979376070129403947050994632867086827336556613068052108874766950956410058565061524358513333142429146717091453843771109176602504014675309288350713883807367127366925208651245750185361935589048297471581410596184638773557419475133989816511658504102739711118737784364754693115640547328025572100235583784075329458421019158437036532613406637148126557265393749878814981477079527292760569646258909786776788119130993371274024795224589549811803525477707018212699676780745279822572071886472087608642223853716858202212447434339764261234906265417657248610461883040610158594559305721139831065420594032360311147641055355636605978286178206029961781449409099723623641689489685600878541509677585176044015689844773303830939424851390452293312392906934814129796870307695981229204580676336634677360785385047257484916004463642397294177286059816068552785001805420273506270001870036220011784133702843709512806878837504241150963514149910101614228843265793597067011701587346737883094298729482628908194520331019987861901573621710898350862449949523996024088226924783356402162130405786762236274328938777592293775249460823090813007974403062212536930140536692519643003057213361788419715524941746202661744980017778514753337223589871925643261859969204240321858020437557996529915912805228219878090038897873971915579882436567537705324870972117953691171012730491217015167491062924461885082762781259189714511744297076169777218637814895841799540307142737654090147131531641196435428817090976874322275202012142388405578678851917527402630782194713415455305605894352121802907391447013470564193907414232033874176765571573011755058982554448741446327608588627119990256825325554684161507654664374709020655713593470969432166433602718140290138548207930788284699812061082686965317479415914539992905741812129859419229024451807283231443329225760660114166249586086297603998625864104070975149814446658310856863354105899423552422866105461745112869899607536774193676806270806802795350854751474399576811753505322213528581612126365845970161316647119606676598688000325403882362755060064726339336207420027007822280859124182776704035076272040085888069298662247600243246971773716042214315752781294522956965258916677205950030622122997450538397299310047191627939859984099407152349756353391574075093239269213862773702841549146937352803058880025662629403659476485315764947395813277957843567600660245618563635659973589357581455036764630903670404321032221385216312908755218963196259799150829484020715857058712189376884278323558978834698910549144109473701959122932277942493291269254803480788050824790281737103816705002702858320003508822898009246180667030596131871305626147395085697770249870522408784905938844574381698963484124799372131018393987019409283933612243715108189558541096737090644918656234432990083569131745559188231014064582575633892715486299565091486026209289578891499677742467256117766247513446327195278699295571651451857821522383047284714488093328850016399806718277682133535535645121431913104440847774505562429857592876671067844380592219204685462440753371418029144873918978993953853730668781600297203408722448245441514334051656254178053201857374028831410473760558110202188938702959341611739562831396394804634622947477052535941246564025008077575047441957999527192466878503918960384309923990806757833188312255524988515773675946132357037931562917477676709139123885778700262248451585906789009387913833516864566416181841630145120694447209437093286074413277516528980385455509450614091896080535649678315519772577562191671703963456342001090125246681830773858058061944919343109500606055862371929892665912755634473236488108526026275898671532556829050305213383432260216224416365350981290481177523581178969540010937597617225848338376556586994979526692179119640315801837631890987090885980812668462325524433817533495443791718785261625052582737612735053126638674494465499024704426917424867784150735598874647948687097133044357738126832168972239331057469107265922505699977698877025760727732135654892669191678578107986178144322970157400346736253736828216596467859088336259191978931973101934934147962955529660549387940184423229081993320025842315963034695479247801197625833598345860366314393135717566173844085036549745928783586796515228948456728337265467774313548672013757026685830230225492915303689027605729482569538836194846047865553950318239299631097689582906040428764906862909670580793738333182599024232881506974533930037684872557031939818626811344586298629902632325184994278657599705779121194359116005431155925291000193530416047973164359459956288143057228531779321080677653660339038093167950546842704476040281556369967966007126250626752013476060866296999934279865362809034474947894369917139013720365245904859855931251559223013255007456553165849029843061871002178788897199748399317571857594982195887342000103433879798873950653071801478846347714382191829451073095015160874489593211451840999453426031523474801200228598549951972210866498677929930353008394154191786107193438143968619192686548494783381447253594499327607941691334352381593046228404777489587621290453996155373680975066832443201183147825268495466755911897095146742495865949510033045473276647735331677048950901367945472281128304882797212867792020183372801319139905836950989999374036263011551713782934629305015382257445708674255737224316116455536076096287076682279376756505577093615150062599608246923138817507435245690066820273520419242071070028663198461347234612616332951777038171962101986347602206990773040148166996437519150937337803865652378389151278170010870112148015658563537679533156142260147982131745576187374172831087070016476173185087366783816304024545418577833828373624616557045247258538527066129049147621859230743293149630989960385958592146057609102844672589961907092082119495268127170553646359532801433487108391288523462333104103111613121967614857315037298625553068020616969916593629152383508105469872757892161922736433919938212925777039200773393639638366037224456738206830358854312208513587654688336451203758865338920507343522588341758658766459244165300356386396893587268195751557890755590896108985294054489950978227009894738243652412278863024366752536041524331162949586860775991604103890876127626427384143841569278276458954049651257064199251223659550492902046298147727918384133440476169010656864280791232970288476942986226045371568797294079240846545774753041341607042585820457434741238016759410302042222518755232524795466158030721878519772256664148678405051317724164178945429809474243230724980110966485161796476273486903782206647742105895029894629216864337906117357410107034342385016660964654189811351350164018734885286612239611089371033465485119854145354936142637745560530651889907373725145003457342915183135607726242839988702694072742434928302844686008712148697646934283069079209673211414911033085689722787063163269449484343245471754585096304075443822389898638735636564990316240999986967734623590441781813349850185017494824506744814820446426567457809858902132179240900273008269849239451796302008175227784981031123848376825341211706216298268309358503117683616799218846982507340619431601509236183174594889236872739850084527128304264715408316125030035896489192189852211835760279900975320253551252750041060277259234200638907755022917895841501969297314537468345188002462425512043240696473930578994061644774402748640218768391592009192083626648136242671445439287208007016062548227044079375417968720243544570610689818815011039856866117617635730248127813520614482498896166083357090595359858510463886550552330797903977872463846225432050172356451873300839418298677230276068255702850430127021461550581641986216065482347043549632686937371282459582616751287432065623565714145316455958437603520098016685641720908352229395470514802800102092833450853442079387981902668408232197853304607749001609923941996257139193411781633813638867860222689929488668611096017144150501218228844449670708199200537287338580735513322723318160455952655149179253575211393579380495672994636771161237415369005258511685957285473628806174956944857880983599265907383974109926211926465014097145603158504455441887375538225586907214339730569458575968595639988267138958526842047916765929884551860334708667814229890326197931294605918863456311809801980454254998315280037332829318104499235398891749058775232103640158164733034704194747526856949611778831479346965755148205950884092738554841200854701917476826245348890547338851562920902638514881642138671639814694579898588649152865922567273592838550029183283125229654868153963322490316289577769053113910892540009799002835544575663647964415108610032065579215161777511926539170063895149698499198188692050278036026359414190416635222134951359243755069147606014804431257794022953865095131046384302635718477508623365251153182373938896939234038974302052070946528697488956451810537075499544857990193798597214226678916736013595837672442924424930495977399788509452901912440794584100904243937739007923140516239377427970732938407842910758018983238540497635136610040918754213450978430323179399140512071283228534276902730256704464307671455571400067399488967500813937956252344248973944044666252458240487154870080811802368242511974973030457200117497130205449211696057753800308845871430238280181078892999138185321235984835840119621214667693564548522074924186626906167728512471483664514079124151007467044955413790587667551048537597235244114071961359819164493077737537049386429562387209776274078412851701079406825299821988448735887274375476202469454647504970778680271506980121544171436412663777146846105193816732488908966131807660693317778440981190758567794556062166071622238069209447591441987933116833857125162306640410662680280535971742067252877417281941419530554828155298240169817263965882515085179061519354579619574021071797861838330405663340221578641441708286282441360088488170611681096990745963950294838853627156508827384368667777457826299597540154844534268614160407498426582082921626141079897249072758119175833663015502847574763521760791193566333666576494800978083182188386262243386283472263372996176855097678788170182597902249792061300255058432847135779060413725023052855721618504616802569888771159685923530270195125440956941864539694224179070011629811294828496188797167146488639164312450744164754329399673277341488507591635793983658723848720705938918437589934643033542963355524473587187418149882691804235829046930547214351211109475808771933142519458181562098102260594896582324852143212371603812594547992418050767423712662850780062246932195315191340380491511779748288776550636736906359313763984382975580993010462662668633686875172342678280651447380189657557410509286579681472809605920853861380440404305745819871796538825355831649655058659997871475473237255556299604556648015021602740930599074175983129996151527588483332594198265468976570950693523523264166939556248964040487812954256073700486381096066518267251170453999571721961971971634437933839557618745661845317072717671004528642880323050509130230711091399874749137413868564627573316304449556936214620231873339505275576904043409778854698708302566771762291260446778289051293540006104398596383129360718439401896778927677400654082826700697378927974405236367147093084343462113548483677786039902848479418221419953257245736722633716746576317341766421956950145953552509518004142941823786878108035931900225180550354313793260705935944000307390741213933554693742832664514691435342754973587871459410709040375953086830066231112132824784735259634472063218706029943060414505353648498028846048330682724061427962193846058360963864904986141782246827818834514483501939292477225914306598744750239754994882303320102841603759516081583398261496587478884692861718749884066834753828880269302844040833402204807500538385053622137626835477799073563900236540953399909344104171355134394904701671816923248103064614708140334527965863982189687510018992062046426575518876644929871023035763126323200768408024348712007620777753235308505404384993436656649732185132706671301260595558575963296873367969831851863308809788763476070197027430106920940362162109957054523871076540372203474234691054192896335121515834792063585576747926698832664120630861131276482505794250538659677789389507726168394075243126859502639640496199038572415331866420482091889960208010778453999946307567493336775900147671897254379723748954082920006252537474049137187064934941025553418002880664912119938660223926815281890536632773407700357561657205600809885466578475536543581988775609229108476533340872999323034734640985329265433889507689502577778413450340760955405808287225711117738652240519658272473981323712889048799000730515440806655692144619145510823249170031648591923663594519267797803236467520496851923821076203248484924279489211008434842792485495921123699878379745463171636531855858557341453807163184806232434619289746861379026531323053921612177755870880371242959663177179458617211189058360440772835758001013041381724302348127202821287269924961150537262855700902106937068026912683032334841380221561451656147398568597288855044937297397867689506120024620943056788817243036464018665499294024633000753492053655103309118188753402456121360284573972617429822697472203968880788248234063167077032347427174034464150970880005609348165300657426565656395788438838082051338465748445411682583626165764036044866366609399640053785697070066593424018629637517941190238378974253948512653071813274406618997075152644715817169554836088073777743865948331524190886438291427410327110228133822003210643564751202306194771920813047199137866594145560771664254110322201216919277336588683113302218939607764546353703745584766589732598150834437012956878193353171515159523988745859754983460032932073531698315620332398860000661899896705526886078822782810096727573594029086410807362459061116687438372095236988956280658255902134362813713777123783022008005101828621529785400638222210553552498820714798557643087365461070416144650210462420851004080645411343628453250286150020577158392688001936027632026040573451480142302864366982119263653569849441581063931999666944876705683228404696625437614339460974495660960646507757496791125947243868936943844963622432234454695511163420860477103696305980599542382045650107523548608217888176134525035586087012066998972027219954270764994988482672648279082970688548457791823045270049467894035136907562331055502323156268388256779577859099296467602140857247909776138509795947278818107383363149828372988446302709747920910704683136576840997048066653278314528159595443023343474642642981566649234238982676724698380691162007198341650088148923115593380329654175376912806111515353566624356995481937918008398187728668398232254930339425946423673676696931478481150171644168005581114862767484012329204488985984310997537133028441296373388369011948818377486515490610798360207228546422353106740716592233051114196529387714911233885415878064508214479914531679432957387293127098091027273372923888111092430469177984946098444869963420652748877257678123798570656858610801469256649199546552893116518748196456402899302185705572734191228959732427040636665365572199459829641701000678937294615813488398071064986303007554791051991801617310735632713210163416394437970894800677063735359840817433953729511569521291540682995846141819444193276073532919182226811533195947698334088483717427039473374329858295602255558120860747202607487587595235547005913515857642829081594115263598275891867112992481561663659367550840796240192915527295278914497782079798956141261572552798334270694834044604970223090519432113363419568363048373762272886049870896546435226850831926857291407735980547799923605658816016785258223520386510365814940326100922043096585769671763716419543190108561302527676273068291823800793901628176464432275941160086688803243502237413154588402617872525070781205972777868751318895595031258352805142701346227888365663939004713270238365178119359728810851333011998585726044286780762777143172935038126003400345893203820895485347974038249120041509495303519417473042067783663051152642453738155257905919371828185065554893859798285367414922209822893012039317509469627068560025970760419335580648557408164917821605837544730175470206473531373897157352813277627344777764906808442333230366309970630448836556916890978104910958424146572717812651936058540647631745021944143618958751454781389654150892006697536533999899935895094567367839444607246692926787202425013355613466382743289440788284980914270850639837763474351984567435019492992121841678986030614137582075311576257803047963282867056206122857976185629942467508510553752733544133559571783362829802156832385694276896537786331816643636131272340834886968688537162866022931492747578732904831395302310040148350472594370204094960559339956006784970549718503436323640912411372316994982589217578413211623099697942483743239278754288729696961271795921452045453503340195458343970936645224361035954797003355573716475349738319716985012084099273182278822262572859685012076943980035604149008492366320039912188405421987479253561562034846295955672368218998068847313188239714999918108855288869026343659257294774839665052418445266071449647783309350969105035622965478192237851835090272211826249508913481479115702729966697032720600144009867794633086628275955928771277065007830837520173430989295029210231320300550523902852636459388219815000323232595166883522969681796707715419765201852553227842402720659806317729505162602852765202562943670884486031813244826858861830561325972454601028533933330722947542702494554984723068717476149997446787848167417791894646095951780206282560011593078824108680649291216638586248711278282530759408434359219712876527551999072068450170506086057366808464607633043684180081122518386485837092657097439941371049407854420162913159611740824721943578169370408115775858044549554971792565377228132454271866462070459443435632989632864045715184927245555886160931511519402019142640853143818628201150451864824281806537741092670644912643260481490401935437936996351956611687763627032381167943060330641555776994045317342599736705533714650877406459949239731323028096269921549242330028499124655243271321218096976720722431564612725311885379829650155342795803300363914690261838749754116497371060180208796418773382347285237002633672068278419813722792915346892514660813807924616111187120000248972546157393597303672767179227750570956167611629255129582692348569691366436815259697683187816005840432181129248777763029568024152108945329804693331950685923115251854943541924548954730375265620647541346032426791589528262887054879505422150849885135109670769370068444074813483310628901156333111548456607316140088606026833516382161507272192235176177541431768733192588090142327265113168132994918546562361260041598241468571131490771742593466738298150614413208785855523980395554559975575956005898901766294184812913922320195192031831456019132728673065180357830794066612113228038548837782162506244048474148441143739668372814091540024921792612368679105638771429062821594579388943275915495589214374139419801907686124933468534123773868135338902487547725841635978042983862246636861823840193063061950819564367471665919418424258559770898103171587308779917835536955098751681360418181423128990997260111790688253642767124432494702839957388222159401746483980911758927569290169235645536630434495831543216881382457827822426253601511768344828279672066384759596261411508412985495414718144602533313662820407799494707632072729735243636694510755221737134718627188988728728578948768212325630228316932273832127309849809397418339844529948265477620416498248234650270066653775270724912507858032180016964278006842824311658908300968034397554695529115143891667843288089668117424265787927267674409638052735677689077825092281313714338477147026249676823126200925330533263190635423587882211803419674835343784561584102804262969358554589219664221689232792174976467598538824309193811436587439857924959227991732054553976643701615686323161351838008827699611362998832872285744253749772451834576572151433742814714912565141599685385782845408240961783538636425624973247612953879624710778151057244282073129210296601241754572942390740936024280618171994370291072719306396264666647054633611252213636940749613457126070336628637139016674917953056134681257314222616977450321411329346752004990696474441300276298657808062039604014561580983611965883588948448432589968003456776622678529779540032831169717295381506345567590189462982781497328420548900678359699545074374431710903605876816082243655293180088234421659177894397159481475848993368965096467160236152477327290055480523965606330216796978055053587200068603348368843389836679358437490884025834065439351248181468581646559208427371138082724254336068397870833317480251862936929602493341908517483730314219773654564464568847304593134363697497818707344086129527506401290833652335877015845899177667341063457658131406073691305675891127777746869045042570649106043170788258849634263499425101922044394808952127118098745273392659263114701181986547091470304249820250310740064686441354301324061869661469578831357747731499629383272121409705770975818090901936742129297302521181449167719224923484234964767689068546790683035505706695735797273563595348037844654872668675531026952476867461480502999114642846519165284911925005251250437405325135329038472327799212908883861904645844146219131345392469707909607975464221987072524620806706569663490659955607694812590904053679285869406201251651031415929655773538635908225349697303368564695909705059370648606019987583941323152494560571561434304113308177442711874866437898170328435017335908554281869683726064962986853753872172414710804426205697258102518873751821945612227549627587440798463920460403976445426757872446517596523420990064558386681531098642118109582921137651352647027773324264355357759966917017007290440603252337375800721931893694480383522316000035697657654571281711555288188444405652271016216138411100623326053769074244588446012767547972085421646563269632984720884664424680070006208166096964175350552034305463792050410559375997064827978883528136873994421823360338884713872308204162644011613127543882739492278319161248871077545869729141362763434535281273312083012295626455525700127204489390897679563688490918661152608262073160572960918960571915486689261631253140076841503884238084966266656213154087926688501667540825025716897155910000566333790275617910892810122817430495587048361684982216029385974231434634467735881374492305595014823340319200026362752802503322018279706862580966630520572329597720739146050462906077670186992330845406690161861172731285719120722005086344969378657552046587643643094749309496001443914783010428335997752327112445497672185319516146849869198575140140431042331735645678589447671221600619504795281696704798306937446975689127030640014092407692610584226294943549828043065264421276673828734295315282531005175091596516288620620025110170054804321487122355568832498497308080296031113032702020632957026730413703065495020718500827372647031674968703427604982425699757419239382194677510636888601961249070836686510929373418066623594548244022828301622357674823611061206037526568624319570679715164709062776395377953789398229186722763607665047166076016259587495886261909165700322671597202306129142920420757640881522387034765957019682732222518127819838517479905649269971801164623692963033801457347493332631598443097866408678817757000734057228354922047339117396191938772367929945803431352187831256474174661368475034187406402342131897190545183677312699768533333480867415859882343950821173339011104597550322229915628304336538483873995658587303228592137624026365948919103479370991942917058074558355340584880000102037325317588680500915196332859642826660803785336316960207922827703946688937205513767968356357105935864041335495589111315439806786639487488423219889699559734061909171067822307604887982783980305098026854813730985488530212885566061526460445713014393582311675852122378748012547171531095504426832890958860352035143812755407694458850672542910183710499187522371012488276950186304040005760222585757146417199022033741837692529424566799421690116738817423403352616116461128469255108150330670892255027516847783244898256406823870944124761057506991193935980469859393566145793312445176457657825508032234424969047391817520990465999655193756237931507102529440202963684685902308855513460788158821873844415128477182433750061772291103718408012219236591497615579581384777090900403667701511489689744558503703680643969433762969566792641391217187870744672776049552862773467681318107419515988319532144959167424368293002647004651528697314780859826897307147425416040430873433120312497434902697834881364124633371018938288782972130172670637444501650875442869605054192227612405765582629641325770205857593888896667044685608050708904247373809255615426984297106255890562973181496636240740015788892234861216789070864743850661654448659021281813313194876685443413508003980798837462324387632634797167694089196326452645563056662337291353961730804463128110928827738544072716850515553398809198142299587042913839721173064953899983782532479373740315008657251584458082165241091044110594908236759074964527158763533689420236961846207019590095252600765704917795534981646023390091831771162726861909378926343292548695640406571091612197708399381512946701326832811942339106967216076736841842299400843537106996143056255730025879332621240148962423684453047341058470421217946369824094043965195308368380579854703156748684882087006577574960717373601309084453813219754127044935260392094831578171840200788276915714372270610791493795809487787837206688035151616682366940799118049944515407144984987734063001227908866736925097929462580021563259148894676594507251127710516580355160291885761012189487649068319111778640950245825181935877605146076902147154609675277777597633394122665573098195012860017167554016391422625500097865067263328843133145439127842539224700550933826704118011909954626202597482681769854814007011549685549336458138234404957855500309222791517139168108877141373308163306526549371491401564213449028927236724844345165135259813506607744613024268419106209997150327703891351609638560775792772931586965446948002648210605100086787529228960754422678694129235409160037309493030949912281979896062404828041987019460682003350565171961917752621721867494676531593678480945422087393069154669457708662382858924075314499882900820599052532310599790066085815728081102075898619687631392785392566803262798445435746089558733741873851003864523449727201130299933470215722799655825081767696697305504609843969869800830774454342961975037971468521855551206783693347236887555236041562619852009860365188745631090080457063560068248175182029494050190787330500344731737496982519459648634774130222119998840237256426056038469678201221870789307039003144446240252421785789984609360691989299229123806778210962460457620566464151168118268043310378693884459228956190270436639225790964024559980592654138809129239974076634860206353773054531234011955982434099236492504267611609622663556780192623032338548563248985828981282164004771862035323972102096202695179181171838901381184793842386832545801146891945346106523693274524384203651310348050880118177250451642723997671275077684886436161390613145424205743551506305861114944754743492302592919966305102620413985700877179997392006287296875749204072328171768617730485564252919491007811259706725609870265334946002556132737139043674925304177485669729982680341114237423597895125339297725234448144017938724249237607633992571007008400804913221529239753284950205142352049639822773394284853748152830190524754322122883339034382893366679356181764223240101455913776748400971675449237082375306117062463891074498005358997458722028966565022115309143987894308401028595978932111507656900075842808747532134522283567175678009272668323495708133413047533731227954993312264491572704354432103582339923230312398117341288992075430206437654763769214425436117234131953188983216139216042496685563824414129165210230107721378463721342064211071684198116736086901214013542529649546778745108255595141480328838501496233375848574522777356003527446449844190819626429671996068360303111503227294373448780537520166685163736130364344899502685672854538419546251201105270827276479069596247563486400025700831141347333617988994550140191675739273124129295466743556915304560542649544654494674240478543966838054168013819122796839928839022303694499545540248424304193120016413045527198319531122748026967525161464454715816907665584618126096801137370430264119562153881880613698421714256129357956755282009997192607423446508816495973068926667386381181567297653332755548092171043831973036149841875400608511028600756190148183306875873759807226537447482256268556384252543682710224256745334023506162432190651777440841804937943126611134404054303658454457515049487485614120088308701879536614200325152317086704009211644766504447257017190318653497634724213964639719333908631356081918240979556409884409611452646212511045874846490788707610884146590801834914870557572404738359419035270232336815326395004785946559335567488357139497292808904604262888313988363983461030662086486347428909720001969125000761967197036243008904779200763557177741561619488408523925592787426228780892383287020796682114171827800104081635986522008761847712913373062131458268686342199571630493238482707371583023159425870637914425524307428799258962435727105392805608699186389706712099494541811493566827571044039436810165234392237682958993576262713865949047782463075615488363255726899138288600358925961369476343672550728610783821826401674863871255313115056762628470071387663185272844382970166510172659422539790153271220852354631009354551174114905223119328512683874718125015612037014307665252635678066317977702299445130189166372987849123000872486980452273355476442165264849754582657533396078322427003085971253930141192888380668569619609202922314738314597249663702880726446572789351694819340400836081744861573047692243828382801503066349979388490153081165078027630103615881794560835538916440634551849852804090070382307398847203104997396332381252712424526119660254160207261877101271143815022560844992643945179788644833451842762028416973733267560800812574830470159582087558941006140158774014826691033174936383713876060293043790128341935843514305736300057711786465968271555514476179987779183313102518626200555037250802386179102073964188077927550310095099491683077852388381932447232730772827458785948848129332838114192114978799896492393121776419803499000260264530461257492213042920631598369667067856950796124595922355559488905246334145776607112191666282058969891403293867882384787732501254556613720576491406692800120319390466344757269035117783770373201443672772374161731178875452368536765624021677436157819844187025017436222482638597256043637095728786718589971751545907294118457842574059372333874220099816161451672099174310853131069531459478833996503573362026334088865506031646321230409334997013105672671394820171296312105768829730894252688614536463640867562879004869348429717532484408431503997922640013358090544035403493835478925080263673099377306745827485318549831446307240952085367064765011585921651281296179090132436642867549469175482881792340520106804531371603442065815060020982210687921585856862008185482375320243006199521307982528201980680377925714576406721156614454891328872006025023599923764598146874785328787947797905992800343924038230755173244616735023050534137951799780707871458295140630171667539882848670158238374137472618424708940923955621751053000904306548200482798434184957833418227804882020071567858409770390035981266033331315122197251989591257047683157314801708651713101442153274312465738492842278382244753586272163687844415359327059310140445680821554024900528189482032322639395624225963892156779704924814044959758714622326847953865633416326909543334969034000249880022629491158770811254693632027401309347499739493665829126387477302164114045442910780275970602401462506436087465145530163373463426593901250647037416797141633066936508161629812694138815068019291123007411781328742646192211612859340091353005421941756846248529906268080008522311461184931281866942126049624697458834421209232570156701100807886192421943946453085298644142628853296193324451246473380423091841016039692042445583583928027509889019220823152060663240289706237068259709990829271606802768055011032215678170133500600768176200505841734594039911408687820211800525373766396084387216725421684867166910879903525574893086011375997511163579448490583167623440145019444817325404587651354619224861747851259547827205925607186408728408077994239137712410693481785701229731230614952224484029065548614318781405360769541310147187742138997281429791106406448617392746232488826170835759050387713255095541351967600902891081700195000947080531192247449014671194989478535500108319330968460830911344643799974607463616680689911249119610849152861331284391938073759660467395409477383578898217643715768350889180015525056472520076843119212702163326107765405962979087840695719607322323418951703539610623640469483476011527532019065739364331187109149552228362174338291614257532270905209471684420513199478720814504394837131163710533433034784053449058207104342817735586922184552782218499062770026398734350421561806192718798566262208153216378477182653723377982418823851794666933136717023349789987360085788885453671800588971985367107987906529755161502127332746743813017223324467241257619718466474051244698002429276833350926785999114248580468683910789173837510279381265467217730902331674583856404422196701191442870674479261045600344874189107003409577256582734671264102528386577640324777250907949466251646812545468702913047670271735152593606893843957097795940129783457668254936892964626413980648842521975233511644662530351915677017348535793492346694506598937446926145324640893694914910477548965653292306645451346992979652438878396597352500920122230745375430779423032836116500151160875520134321572149639048249163179131376522541515361909155850139975418150146106482265628163830724938414767264427755405942508698945297627168590805994544139249154881090168415343989708203469562105645678645837171326532944287190578862605283214349982271730301342550437531924141617434061136071866593134540325455065941535001027030760099003048263041821678013226333551622274259985119277579791644888694716845481180896209693116720671847283985422547967617874281160315218000482409735849488112968852672810720379635927410587379841303064602774597920163474947927953572464766113619533537889811721252957167630970681766135055061532721062981265769644412686953631926739438418077304456274254534638514101885122888848434667914037223863679354176941263040422206597030278731869544688241906700907550188849618544818133274472011692452775839388555026792293671269170252842390521773342224835107070800867072406572097100935938039622711800155515286488370628577835218950244403234570666857475194313096744389673803666054980517092030744280581783490018799222703550601569127028180839560663745335031247602243298341774965010267784432812168974872568871678366020305292611914631065755156241200887180732988459006089670312639554487057567646252061422911778515823455334917213293222111957745020151672104428359416748686761233037313195435656313582923325591136098446028534922879966866974715085508396438205776053440983126914438835288559731378157834994679285769403340289038167933121559066259699540512464763736779169181711816031691981468416495094535980343233581420158619958118815018256966618434827456589095097573199895227610583392561674064878667430768579221399731617251078581677406976351523540427007984163990143302996223481758666993739414810035076726406573648764836682427559647548527333122900688438286442009600599803435866721046078355172467811028071006364096660517624216835416105048710026444449218507171373444260010289038693577796122183225967953163057232569328483480561129430418115331588114567404916603554547466432173014227037707204536120058394531702273978353601198332323500893581853744403951425417404211781853326725069928407916026449672595615953410908077912147145068607741068227088024836219488144846166006960569996849066129859660169320438632911033858091183208973440632880098230759533806197041726024237178379157212570186261255982501716384029711319567526229638089885506989636197374119830600835881144791349149777687670342942318619368106436601764446628926941478683132723948147335951173533348168496162158279020612501321570076821090782414396943317278146101045297212372015871917982821900180780869480408626358856086578955088694171444973548003060329361932332834200349770556974358937815830616391921042548219309592373959318155724004177391586262194476228455864489036409666667417060832192990720713807785392601118379394593304880295001434737366989111449207443379555188469680637017467403987527444511031706530835731033650506398945550732638770811784810324626625407098527474856801502444437770453101392125397942082596669324162824508681433526190012949101750865697535023744125527399233729660047517351804079615997120298080736673941928088872669009675092717897761076682394789350800140689280500767288905578154150980272201236912079039821652758402475734910047368372769407481757049856477967225689672116383000543988613484126750397542342637145218994836191171155251100942930686588597260608401284335547974156902695209509138043534403742151069019480642823527745558392673100637510455949305180418850351139340503700618087593028297974258669267037193832268340813778414683511016120694648759810081303266095040830615300747386653242808116719936588833783090346006888907163004056362128955871487908740544021410833150121571623676389386589964247904548529527902599227875646424066649054691330432586651165274248281511777275759112007100135246377461781652283768459838099075499044595680397760775143506506752892691566028416550799819578895371333221074158711599665962882415327635220734404746635488961598943304148785326907827374425739017758255436203291315214127998239140017822028485908491428552478314451952637591628295861621431572387576643872425639090505350216847088631741859870626439482068507220637300038066871342005009523914405974042587928624852607573025445948256581876202165230331618654805416395285325588670222309112842975466559182044910699671218518297343512778613482628691589018309329907878437771450132086380698804425634474167507069906815505971130910028141525718052383737046040532369760691874862692873003361153535806345212052199133081301358587654686533176118653704649636670293863757924001064645320273659761958029240645043466041249071369613632935102378800330351158438987511924530397469949614698947688163473833606196252119209857258777046443670177969371346691042704231899636023964586599906820982227564021449683344228639989909602737568670154588042483377434343335838085478047518367437260887076311709294918992819084874416661275505094188811059574718913490047802472720073776947481815943046417264405005917465866233904570314666475440902561253979211150813250010500337650907221257631890644622152257477725661449345130189051597245267948842702352122756488414473040226305724884453202936629542001788071199004407134267197710861949759018828272640918462165369920092522987601786681247430490060789375440416932792673027697398664625047341921446548924539024541726710963055390839047457737730037091735198253374816928843904823530074817815953938000228387288560918105698512501833278124366536099252346908345189096407555057164762720832691051837027669615308277177660273521087995992341291348749742612097372191362884332626811033986759815971781086881244419123950327957943600168210427118857651489517166581935932274505456309584524283448469150481354389738502279146740807222421855516190016114829244981962425125047223020829095191170726020922758325503707758197855419337721276541330392095142910723816325621529462002475832001289222771835138027843907668339497674944088550367795785088641756657256748103551293460161344306501865792894183768122833211429330231830124610192940675544864222482851060165023596285496117032687685953944448502686640626155069172119297979213269945515980357937976516995603406195820550511419328706289504009273061458720296218507988035987824307541068451529846026722225342095538180823816317366209317587398747745077660480242416156617032977465501460356377135975316961775955067592586412456728616232830476044705074722955859897226092331811332441403697254963105587454638073764431018246559276326293426318786596293444045956966357085437545803113293595854433932926464096920126093758130401521723535789860427836451937406109131944298362000758689810932907038475657778494827747703019733495037992816184826687749842402626688520189019044095226097602213840135279844817705171841400512314039470724608686872101096331400237867968753368202949593087984353412513899883970521518541780402515487270671219648388447172271613152408074123072849111048180451903231560570676151319857072208914045256231196643902220360419700794881576166097677879616652358065525685222831925184055169026729844557322944686144017866782988086649710041941038468109241199382424506836652517042954044256897371928402934677217698641509866328904426507901637237013671805755268865676023655755131623663854920272210008090005423536520526804314321121962856198507387517709794888876374363670377665311396179657958693767943064190688958655508493111526625875428659297558751588256988229133492807967117276555094122168955326424747796642564317468589704106670804942105835098110889333235136946725208619673128566040621175028075029543438108635004788130842948442405856934543755908966933482501086224289882368015094241270852924906445421836167867357248123596128862393871260272781314490282601053978931039585788790244329327225918831063883017017011382305469656126151849245328137370731138885108986796956714952034280507452787517039396478869631260708314621466183219401752457616916060507154314862971681963970827543621181258197530399624363770090087091666280438042277250293245638591030533633435772933996169706989369957716735544410372604530087596114272539237974259088536105361370310830889283503477144359880922467804429787262011686088790251678104553803638310282023497259016820030121689253239244166752181183876817161412744157349104812314196430577398883779040699694948330352916570370160874808760406669548782140500020859663384623592949804986320891472471973147213954920010330820541966715141567697677196392164489995353145984693740934448482322589220497369149312669852072264768541083850293511628235020023233840563420442654897315638029206476741420906664059172026812652299626330905752744099323844586843508007282980518548280015956307767650263842360788963510184256171857100694002307719459354543317036674040302611352467447544679832882357053579901415144732806521118177697583334393064688707119867936523533362228016268763974630167491296953665989304921809900634274117191765518335145916926007403764446485904547239978291504689348700239016688670250971898640487364339555247042824408087865583652268110315584411613486340569294819482602959104735105059425779150671637631092616549173638793047339907517025266295531851066342233427359399697589618626930276896303961986335154983885568412746717298663719835252267771553391591184341959436785302900148973496011323674623704061451482661354510550238445334773528568544760884812800556833874036006176328554491422745551798327699919567416674033411377696122998323247132319551132782214233143478711879320042122287541504675823442568307053232479982947183249750395838253742307485779661167201825487291657068008946691290215937563508901912204423737713725394157291185021780539588352569990516579402255724407291597566384836465983710486081757373343024331509493563070484000955513794794455153846260315408851854699022377120731854806136451284310240461282562788939540720302207262421600048378766056240573024013591347293549166744470985315896642055827445268204657025988998952321589376959151229123228561669064850495135098955976833215966161275385373326451241630632689222536303101005039753295664638586776375743763935722164232137009060676006798125835158480643995218557601589765741968027678188076453894855091944015127986587815137592246581156808091807700891822974020278257345168585109193997870238882473537231623598674231428494474340906496020269343121171012852677678557159205181449488838839017305897286664310661036926672566110441154312099720342642691785222217915015399688046334099157175621699459360854217893597481031944340045637724722980282999318238338994173804982572142617402415215933097673103964673504135667861069698536321450509417493466419740180131151910572558967313594298986765627672490143132462659613415616308675953772592467304595143197380945181326299040385738023162873510076403405217002999723165110499428964440532557668721068086747628044287704145987899396566858698778462425937410989723241863327563057155042347207277713068447456476025841771004489098820133225279195862388896812718814257991003992051547886710781941859468305687166449340661613375125740961210759079649783994716830012785553082845158018785901083033174253996385693010247558083826688123106823982966253244161799824202331690233221448801391648068402353665640322135661117985463756124480794605258893909979265574441390798893612004461702354025943030818247248740687007092110934423149729162730189201348365808045208287528092549585333604247707680161984809223425270457096946579761372565081868881218214649116679112597375723108145148027497265014902077003858215647571297247820534840358972279531592458425475442885425029969917502682860587921754939459842453167616798608661733623498671589777747457199651964002744703615744786141328907686053454206759211997848278665131369273037924330071928473682269897255459327747280219786332120031048619613657715754841126003126205872388205701604440777817235126873049981817407520194034082712554364748402190488135638574100011980809618426031588066001113804626314773524891828478107347267190432823326786903800879998251819048711669600147704099825821809778953375450175464458235818280732781251647844912092098895702365513576066589573195285199398522528002154478531366713123743263160046368852165161402441768346933391937551115282012918069864126472790653153249001408254103354859427339061450961733396878021490422934500222790368403936242327819581858945616335056824644059792136179683441149166288182300750865014186664075778098060840317526386871312103488925108445487935330917077258145527729438441928151458983571913859389258595702079289552730386665386017213553276540370885259926510380671086180366783391372842372322284894485346381641270982115578316379981264508020916441151976986277492355362209990562899175562560700864956591534351023408452769729567677250294508807205311092427283896101950307078183740885343153473325903037924272026013873443073857230180282547739965803632110374146017415931248769278115024132413057292287443762416272276365359307369833255031426307801164617809806769782346249890941620097572411469373812536943398813295911104639453754088012849594215310652989372260770373880104123467514534049647924405234061781048502507571761524476885738446382776639203641097656622487801956101440506475047830436770826257310602572336147404701402276884402646390039471952805968282917546734063081205120803935483508655225025730658702410006829017557870307174058274085101269474005167686606689862006099936620241981014062862004054226270309555550569978313041853026983310124248272088459733838107324208731709679590412736271336519216478301010414895225513867396033319335132726622186303453064656099696357379960846856705847651880468923512461746346181236719889298126145164066549559531313348998711631299386668621310482432539502257273769273159955402274799850608077890668997065303502627292597062090071241636551703801938594900680493298198990663843615255139975878904038755523741515015008082876142472161054956943236026017289373970808489319579157015894653895844891182625921944626043143653378814578862516663409003884772145023893731611195451067105706771592857803266226868354969212012428146647316612638798970811320193980094001981383433353067750692118454758359189211125349359729732242753845038036286120247286992021469898247977133714344090373481077673599467743514804801556916853919421449079232983439713162905864825485433548094009590631730083348019596514763484838361254189829675676861951410110692483953827703586122960911860157266346465057996982229213981542963204082437472405249603522961640232768459684390482557794986314713559028515169016162460379372201993666823626151011832770265460629093924788667375928165183912359461026363623871498955125887462580141448693742113759724291041424768685132785106751716928374095487372396059664794575494190441028552782852915650648867815728829605081385463504225059337468759414805659555928089575559227324040166279737757481440742573345687950610841746603348217321160913968108553286163696006388208328697164457769864044492230958622339591158305600751830737768588964999165801482685014414518836412169428388836193345930281963834094740399847821570807582079937492617870689835208653054058073061610764839501142130902689336842318555243583781382604902616163072746118795062051220543687730350590865889160360900552050589785739671728423553101151414550616216906152240746677232270540245630500409145681576380269385882300824516006425316616741910217726568994074131726154834483633161725017825287564167575921082848959949727297367574023828422711996366918463640760694687884068916955177870351085358301182184518680769864101752574589686205314644014636906900335597257848229416688324708526149292945566428173039879937253838603315835130906635820534276527084673911977565233260296275032482374700364033092931358014353667943704911465266432748367973850261399037593812081152403796723672325340735377982232406881244083680463717817630762327479354806304341914781065443895312901879151596351437503187144277779143159001186316723507702762800927322704080547007853753104444090206506886007437161092032211131680147307798054063892299572401424424243130131092013537053014710252944449552047815307349765075206840758709345069973698878001452417323854560256365868553468589686796052940835594102616393407388544891144110373345596534678919157943814684084785756217082193190698985320694970599703943197883733302259938999991206616792277761034216834176206866818107364225780460547240947198015810202970506596278334543114394308564195014512655218359704233262846857562383776587564970321290102252772117362038826325549617133563101642232237364959624950641349618933180822508855750612185982497138782196530596509762512193992483634928592476218803679321325096620285534005382114668579452560971243931310419601055960548268993979086087030364579401272065636362367401277957820105826049989018529947040006183671238102442207362608032051633628082793838394002272809593204512781585339289823780564605750861372049400879303157558357877178791476317057405845306008149454696570482267857094911771702480293022091492067982576649601853744274244080899186176309111247781650953675524046524247621120366450106672728557775929917910398690801992464978482326996899048364959435448644740462227866587261536482915853045334021496444880611109333358079406245015907234321807681231012907599820662783856603058328161177306739232742056197320692736845131130797479724422808481093384032822760754551428630877849696528728587025936418058842543388797153372243585883699395563575700718181183891055345116564913922283349627886080151613049200234306689381107804915110592011766438452547097784666624139266642579970417768141920004799978008977593838964908636441260655078122013609654563199991907785466084140014380408369430711670420978819670026407434207664484349400591611670174454318460135803133087291514905321265790404195959470726342428087265290808848271127385725242532359625826784614374775756101728000232866158098749118279877235664118273246943015708592748145187803414097544421776124660042728548442651731102309529121315099008281005835299332777006602353680739526184980580444881039152607795583292098608490603118525629706146713064534237901845438198554560513546227568407577872607124355554494011777986077887613995492596613333643104506886072084485823429487658604840334578691022266448664055649031710836350733610333447767389323209995437466066465566587229347437361588497715081750419000333094904187223414385831977626264606937649024976186092582243558797818431514085567814731250291399155752745725533970943631561471438947729667945551830205020302263147751589379315929050067905139437276868287889247235856913189194826152601844584938657097326180104167299598251190639619187424885239996202215660994873911122750829585997362541330584585929681944728916461152310324233055736621914735742417591578372371202504317470077358289829865918094013612349032404356913042577995587155568079957438553910200660866885727073595233297244098923919964505039875716105573544512165853143492512584360933319164492625549639806622465852542490409074678482020980030078044538754846867204229799111901506192657943309369507094416780273323886416889827664743461575291991356399991543120239449349073995643606555483913315046674085111617761246775966716663829793788971179838142881134398838276435131252968615477596253838715651021133998634285481382482525939431639943429709604117753845079076472624156906800044077113020164127283234297539159437774093567217550347304750863224962339615419495412649589317741729641761140413918196305026560289017638408009004579398429938305580210603244895381576476989410563290656248599113636230679407129370964706778480238608391574118946119475653087937394750281307963413203340002750266959581537485979419183869185800191405627683847385706644906355090773260576635738487290862906020237266937539666140629875714979215022744309525346838898877687567337267081108076198320831149276366551940308776202821588686770234176026403687007005619854706137152811618006542973528141122495242087399441640164225969643668647632158113344838892339643765072638130711016337804760642376157747322074278151266886096959469674232292580724506414997819227781481786004325740237730062287280745943026356898955623782194013360514078821271467880789400263931948333080232250272951751099388917794426464954661852707517984151518612086170005831354364210627706362065527636867887553141386372514810358729552087629963193661012019665481292592288195546119546789421706894784757593005433164399749478619958867368294362116326164152716068479056385518947178697062360747687665275391561978217183223272603963207322541753372388876194498165730269643846855956169482622434364986243182300508374083273405858010097966314022673227125698861224114689148465849005909798075482227439619533909453154411325060686470262099295397935329058703903935234339965674529756271814007174245663269910327492901248343668043653237253651740801144879666085114350590023531740383366859046360656774167424953431162859012236763197192733483657947939420530544421708485445056713184269272366134830783448393046554802966999274446166928581822569180000326986750353360455391748516212845974351822640851664960140886002802654700155435332074151024852376070545335063314767753783567219977423476303054108565331694722377238740861936867780649534505874656063924054585641728376732125605170574633348052786612953757395162489517469233894066152098952858600354756994485375828065363368864082318155724598743116617811090079309670461020353523474948839581867615178250072524845612259650852516725607176906631611789620732411865348634059505626006059096014566986690843584080582357177947762320860084683118795980153034255778258871285040793234428402776110884547949283311802012582869239065700743829476153803504502460475460511229564992590537811149275178912535542129519397588573184486099212723220107188684140569311561595060737162848470962974597145077283679395530775506342439751686456869459659063115034914865713046110668760272791653076140656040142990415158998709833142655693908068565068573549978707537845139171843247633806442923248166473545729835169286988183456215501543716960413386606831424821763897159580391597055880891451293950676702992475630471685328527738089662034929533706736383002136917865241578089043776758261107376227915025129004286202181050087699202464437282408222947430257160820869322939264242043829236301532250100688777267386157934937259195092847451787677483948555146058501570707420345588979039772499194718234980075572721206701285385773987462265662608301344051585298457725759339124113604100576162270182293878202323655882772772398047748909641391555048735643340634500293087958376379903939727216737591523496812566971256732037067472719116152443101230989971630933349612193611326346192026193682207654603415729129619433534244401954015823584865392761356349527700279669130050899046700430807192469242603970658352915671867128985877903076603076878605230713032425458973182904369451091712420522014167877567373384797697357238849854809673239540090894597195083814921871637052095710226256296952614869006183284526373242486325260127921299763627805398970705640300552664311399879420739528822423839889373237672728678705405134870986889782873871283732110843201570701907574883067747672001681340681770347202632990061619405036150653385774761518170385103929859142113011908389842665994798776456136905377807846880570771462442136679448612312367636016504412356133934641569669094147666066897460522286252150292895549887397997982402198546185616323170426869411622632764028189476572761580292617044143220637683076311276590791370046066481557937780311443443432571967043083475492107274150065071596020804058198169494571953544231006139169000166436882066012905903565618777514657491298125526754713118449525799107370279345007535887462640381836832810531880827691848816455886782183269857186116939520502178865097286617117756415870592246992859392509744863968096998740544149913300267433229702942728786609088736860863078725299405021859874672759598571216401618742951601534159885481452515965758952117282257619818872215423048387785935086099720240237801521700680392446722577038601780154305667452822231594871529249707026551117174975171051093047023550918188917602910172801603811808980941336554099116343164195690030137832575289058673043284012246004118220070457036443172014942380192451925407012458047753502509189362178752862797972434056804182278466627248730192299119540955105817866915104257083135981432012105190790432503578018356899704282968027230957288585691265721421073697796027495836750895584593484193754393067055988674399563337523896351400082789584336067399068097688008885035986341210096593476367377424712456634368508777003863727285620122855369330947393715995118334690458149923913537519198062496620542312640998243962384004411083913649135241524957134373274788233479898372759186711098984151465932448568631306978853553513749973865079977335576693555300229200205828027915733942155205747401838445396237689988749813408409507964234688737964802284083524829318761266235876553846452579797613302173843021330779221225117829649720358806714260443456196215849950632438974594620256882243655650381948234036794631450826961752287179171288596003226649860316826073573917574419296477149598003498988111008943601965747527672856564254903297794094970082015771067150298104670594951349208028196877670127790674111860248443629724638972673475653425367309874970689726618441925138378986217864433616213879059731664353369966739986344976487049435011092199085042638902367688331078227867547359769733351095761139103877085320974447227121105819864548715704771904795747144279318809313549271400623763526914555138730510141038457583637772043605432059270762439868596477894647099485599777583173042506907456165362610325599736658001551774880390831462671160137423671978499259514727766394894944620157739920124094449391460582778155047653928684859934426257953564229076860958786272294913291387092119056538306053880891672679045401769185039977312110214812314790237827698044551397361837968155436557965203102072118006806412190755432495300562700015735868644967281841663634634031648007933848036550788485923394849179996627723018451240350308599002391831547266912052188778320930362763105877643952330077181113144380369492611465163353531735511528414738099490082731264264870729798520159194461203153754939760425180968365563565220874384179963636095600361524629570753778045480185250326448130554529664418876067994285273545626671361360493038080038364226207622652270364551275323613361194870072518604341535374540233679959943528888538298052617958272683343725578009479833977668465805299981897387806897041376901695392694859474577138723475159494793686026484756447686343497294855912010294194851277173044575915644817093188402622358586378479040898049097366017362089390689412215240271162499869099812033033461351812364034940767639960361327782255311787997728668023365072364728635113997260865694210844222727563444788201417754595849082626393878869005687719045916475969773362512305918108128103084387182841050690107042056807861320683914971699648081950335829452567060561002441672173556902757197968777605077968559095211332818674625624399798919271592337690461524349108765289127316439216797015946066909040537887684948932682556386542097567311407497027007712984822942449660930809215470919157700742831845656149104875260438968910214110464430111156887894359100976351170394719850089842562528239992956057607819501499791973189771246849397838135906875933017007263629233403470329450801379129039278917510156862625172076669741471605577521384296864860615120787961695861020882517539387012295706856859472544423023938678530074035298543587399966376083302963900346653977060689324049550105419464916500955977081198160148446052758972772448095383607355055119422026416281688837590593661565286161404605105955264367691474339370459436953072767428354983086166896507565839033222124715130676470328870600783493287051544255111452886295857813403829532179407827430025924659026165535541509195283848207528539696513733614568448152631366602851861810026362590506320324778846923239327843540061439270674273729830575387877109727808794581665937475957014403082574435863677772952865028424724154484760930815440259623438716053725855740298297200390596510573888349991595918641863896495890748536912686343435280078361491734196535266088876956773830676168999333772519259155235405582328474476276689776722673276170016232072931351558078982930236317242376445324821928242435494656874956035530621246833472511881675434064548649158069886264773263398777742691098283807507561444975842505405350230145488061536252184801132804369081714915408510788832536459735566258183617204659204370787653353055790123037434781169799327345787331122447619171158912238852569834852023696464422673145399808189498601188722172202845272133782607777633211583718981717343806823518480193723734495578079417377423850298097096650149666421485400910093031444750203502876142573609100441096733231606166332199085106159794111464168517439285274703717443516466272321109088308995951507021720896963993557175837242969195046649804495422230549315197254603133796370015610921591762429767677221405587504588835406408732591452393396186426028155145932637567603814825868331022691583857693482961274695426368210804733290381673987304078311824760504104358657116927546789950477724533029773816506320744468120724740159016489482811743469372593494472211702277035439005379882386252662421933402692445553507972585175123346072701936971581610431862439477083008588571860219829600835890026605262399379881620770427143669588620325296117196667602577309204322719414602939832850939881620011289294504416415531780323339968737753701812834043100469304828775112097819626906857527927835126434731911079609435440330681296140158945985621354663299135667829120589528461153794209542561501339724919818367329809679402654629076346700809043731602867160175656127316887033477826098879878454089210548139476642994534241304167383627763301508892782160016383643610008630766224452461752334025447814451240715366259196441788217713394867770070941439814435257835671432763546058260102329728953245376872561189868414700770487608177059007892768154246096046869178953292585111621933253301979333655594141483287506552596625771051549375302940552968335316485146800499109652693000464059633752014003528813694406305635749191445698245472336418876977388705710165777507212525202349707573723798476101647800307569938489991593834297828620911579166693699300599001596722680256318923830201562131729236158555374082820053906960212121057313591792811257801319289224558816001934712274475556544968955057727908612353517710216307761338125065965747945520342847449940444767100019606199239904318664944880530386149229598570059718586465190085257719907635345266242264340154913525344190774454419199376990033126352379516845091850466106998413082104239386810114577156826880136099359876268691846161196111836976755481148188772368007943982832812886805228643898670085813922018358475427770726910727231726936200936704834234362779123811521546892336384849428066500545484316175021479092739700238702912210504699668845619655808943528849427834281843904184887863880519359051131650350443595836537986435348029241514694869679596611643775747365524948149653970491832861626955736855266202052379100640648504513385474252047928012091862151915704192867916355847341617180963411584488652007396714720286530822846716755810196155612534419574836530469123985395969521347416568325480055955933105912852428864982430417032784386744375870917342940603646431994339262692400219763517531647202539900683030582844375729198378101924683246367828231086414302885462299251982886188088487589956995875795966554774122845040980921135735901451728061051205506295639334938573700901891287150455546286642434970955986502524222232826290067822701877721063369214253377900489274924409628569017813748228026449142814880393532265750329613280444273221065315905410387616234958975705220840648888322172961921566928567333684052110404991291349297392378105013571853554452962526145401085545973591987138575341255582537785536337216919233740926239680444649389034767418789364758124803957337318646530118583433611387927611103490095156276907447322750780704147833604376380976175564327572368603113008849681567547849221698801784035318488395357834682195607684174034989728031807049758857080230009803700685712688494266097841852806564001741659859196089741413943704137365329529265302861806792483075281037542384257571450322007776617626657717616438229242725216577085112189812079089204132707536572261961087178287428846988813817247911989679561782601069493155256528441816591337942322357611338945472320861091066323710481739551986304260199787021408505734393319887758667663255487853806663349077890754656831338761142205647385236285523859638368189492886115491312360965202597504116215161817943043437112355591241681187846296321007824109793677101563200974565573637122095590245384433538263413553460716932417774099928263117264031465264999529486776802651959195518304833356889691557806940313391185526848091522672585128699844403772688140994951862396291783262094016828054140511785562817218952198941261734147559852356382770182476687364152766446071423916455590456567123420850228463977358359710349314234641061578280758096302490936692847424093471839133269929131509877444076248395328915514895601283074203684279846727002286919100183277824079010513452883337703965426392846626866108630760732289115656173159255520592844303416447326744362511535641521552077886209836293905439832812350491712305513966681345645292652320509291650726859026742775629749514901749198493431758114937697920656340625251064035831080746473943352553360398419081503889720244687305435308238926979032134488136205135699808313858073360961309095790657041494860308792400107987266787116903471351353675666550280712266312218351151231273486502112967429385488047815443274861486082294994454224441192918199730363127601662691273158879197719715902260069917708236874918973337760722259134192434969106986621589319488603614975502670407963874891510874299196246144588472442732258783734878878567037753905661742120391325107892345486214382474845704893670527724576360310860959747647349035548808798337486309632945317130675956793975944357407917561909473219810896330778931538104943564801753903113103275521559600807509541405729632139176471767412128928027559532400691891794800851083259342128519627419521256579237515509570530591754572303682233707772613403961503912096205379561318939332716204622473440256666065043925807227863453398072754529757035594496949971195791101871991854213913835233611241231176817476137057009138054894665871963096551419591625391591762277492554490247132765038372401260041885007828728133511678777926125341500904277966283427651545778958463934632417142097772527887203996933938755884014710933383886675221877876052962087686138452965010523971468923276926709382967260480735675699820025881734538303771656534460434028774582602810380979912590308900961633696768889552414677055557628548277435297285981204742573756489300921414353750552555327089936692026505976787547639701618920192406459347152661445728555139024999352501903409607305212272218388198908372103098640311548284346973790579563254723200481038628620268178194983064770392261839261894968985549386540467220892034306841125886061938168087053733636498758504821163716490309338991344947240855988372170102853708768749406355076020274887175087181215026049517841959727186379289709630821278521084045680305651361752889874420714980132547427716766634942022720210803651592875676190183254991905335186232058942003437329735711580139727901217667092110846854832960994750292235231221909548944338585209932590029545896503322803043632969486877199666067172618321522919833129615124346724127483819909694761569807638848259923130016421036251187458132339933099038135234754404863913961350986616293380426387370810474287549130051160227528299126174901952379889434899682356902209574567019319519968290049169882828346280820266709329857756879429961855486148270096727810513127629839710229108802856486743940781802155449684393469863506240674928123141072131313831030166344592236422030022164836348296664367438025026048862078858349191151746438108151940396227154567981296602759267455103185509371591761181759398305493268804267562386262602273554573492150012173513332513939391205319601753386938792558371123845658728289816032028294531574276493193110967957160208413462208614785616777535970284863014156947644116817149892942390692176643272736785705969769529539269899700067032099540093485373507956850947997058048165618081161073771185969867611871304870813203563131848117047998668223729902968025643298381447640297188914292555343749984588185921989852121710574038685516646750720824594189249360421043000747482587425929719178453781195835387832335916165729053160668594272838189310422116885362033833328920488659381843741332594996073571493513135020172715663901659796023959607146438874244216934880517119275727868904472265039960871650068483770095117736334501655294782255608732124611983828090436464635308866038446774595597044316597436257299192665745095519869493510371145429371189989993641606886012684929057005504562177545136554180521564406518995110894912900680237121874614700792441136923498053593320465717155844119865222048382921249159305512808888021195268090189058578097045600365303913701591935666935090564785907320296105506622318880861415955409656736733135951238289907383971080297349804492106366384421772537072444948139225756277757783100129258063645366698624437367378143855547831532644431104232921367308593156789654321415274812669387421142001897106754056836620291825929631139594456913811486162037906374805370173748980341882111986539619089425963859980356307220635682590188301350519315741599071624561087797337452181928531538077636711924407457852819386814447706945872321033080762337744392274560051325752872871061941497622274688890352107272788178312434697024982915877562974710587644979898901864658523729754681440511889359215171573453987192397906523251632150158898077773577482985322834852076999091538435068330223339596117418655108209196946720299822867332141700249980663849974933589874347671619584238639502710912144472994216970900945364242040172828904402222457807011753663841440334929601266858075779599945924372190557380020011731566409043708697488490238251788162040765111957161962406520622261103267466753589885527969771853870304986097152668547414058826227287226869717395382587430891773485947781449087887525049456369507200913028487245347710945252330850091448073094086467357340620361170013266842752363606549657932820064018623481783198384716097394797637888065882366376376570599044025826797971467092949347234422110960091277037072924700338758991788696000835847490270561899623881343655985156554107433539498579572372538746871128266122688665140752049808046867533548485126012939854625661007647596966326197522509281447799312168435382464998237524787977635642526371528288548919579921162858947176064352872392428961654948743937940628596760684269068443983139912151066560578590294602662979808642131850193523062623831461323614430436092365685146879821898972305261337619996029853093783323192771582769402260491279264069784175600387189229522587819549043158390164948985059745631267151520151394549996391050987776760325681140995695605860165383034856827814830660693954521572876052783582195193935589123166582613198398104518189723116802229567004428055284588100525397192893810870582064947819133526091472752708710176694871223996801587488177579658930465241524328171813611606505754756405907454309404317191985740780980144806881503904320214788047100440247755917504560790083781215324662884692038893943074467859917315127902080455440999566043499002474593948727334932171075204282561342231317765103818930215547526835619436291997048710851436551982975130843124286150959989133882528582648547328438447384522933663506633454743780453027224362703547583409133410716098951699485020674207937844068861615056456423554172785276930345108686649619893210402036167237283311781658187821788160613006760326706887091031297753186839181401348082643104440547610133664806226457588609887057389754345286104363793506557129409179489259994818578681571384483825766896072596105684176455141114926677499038426295241609186841647872732997099087610467256281376862066419679755279980090877875439563869171678962635262013287598653243104572666801149093440832799004515142234849422923014603548259098716396370816880425925749917291960775175279391639754687985218763892192884309100922982639373042618905025300044901798254335534203267781331097865717776244554680774780243021141287811107107262658724502189152247968878201438197065178930212891563485281484574948632503749389008634750723806012261222624043665142276023207402991173017428680401884507677579885418552368555226455738598883199003182813740392193425843864906382356958353893681104297983730402582310148013360703543063671413555305772847344344695717538838796532803491946233925308119877791282095784935755222035567761990560897681713331245791122939176969455056474331849501189047135421827470095214508292282446175480252608787875230111203397747439118450347495622644247123495363114550529651878141284171097437646428241685755113359745968959868962541225336381881928568596671515090642500327218595216082645868857200833747762446219250791870281662835167564113998200342258486855313236410684287795622009891832854489242412883558444546112218544401349776622913333531283180782708431704959568407467827418264764835154616139624525083251518360971535155131272842515796825927199850639217300867532698783967812119032842312326954050458384371776549357971631925903200890987664351524507275707099845745028068797560253225512760439334043545984596789958873904706906150328093660929029271814893511676599384899049758756876686414676882758290326616440320292373908794969086791215142822022132196901899891716288288392423827602090987783632963683391785338347971802580210835621665114039475599593496170315338363106887245807876790080322669631467719230994947426439412460276570315679796530884226109693608362289538049406466572733876264469313764122356202060202390606271963694388310847928861230401990457764002239260416037041721440259389990405045394896475880626488762872242219422999956567232298223502851054619810279936454103367930074058127402746863709865812101258376953020788046500829901334392879167331686427448174594600425598564193894101422543017035375065291991058902387352053942911817501466941760044143196978097526123001679509000086998051105394965294217352734767945231987602666298641490431159605927662991605547643473843198889291166642136774727372306428961700044795015116843606553827426847010755118518985932131569624644094320733419042098872719127696889467358853055767717740065201357488955428426502472850665981900464827952942477185743755098857428805570821901425865794275129019008892848674536033663411669341603471676763263695221500228266542031278545294994720236577919199220866830633678175305339005588930300380077153740525139344933945075139568636399618235069451799629629696776258640849312354926325068041285322241161373009875938169878084320829754985351673638148678091490606785811369632901626660851723493274203070223545075262072949166552095321859516278904937398225959564779385702799829593516309260374293326999121880807086834544422894195710851379978164241311832395831771015945103825653976396878506426331124666284588812353214388550498835529268670350843081075853738879671246317352514422613486523283860024586466696721664319538641761636079975275194609986486370262102853043177550149433495225834076274819227646941952995990778340560433232236731525536633139126484325726981225655736290997548421374063393906706822693030380630692684305964655234973590154739992126072614859710781283229844860214680610132757967486154521281278757362882774851825646004747947565685536413486790816193071156702956428966831852207654284990830156205935804298550851469606199149271454439277565302982554572322027425222334062525841439730250723043077430455279233767684832146987700770069624752366786146423520353111695962163482060613503776898339626589408103342434191294510427188682543667243754026949703473291391440426136413255697365046560492664900545144435420074887835084696457435151674269238136426959286142202018679829415181291772924905260524569239891248675584499243887061053991719885279719726761723621303131168584919332576801940112709186728490158561605248181158447165721974843418168652810577212654605146982752797001083530353857048003782328371604260773434676447427632960012619866669997966263228271525589900668049562700382306326593160692196706745060287358906902705845963985472863838996024031982717215967220145780851175735277576246770596157704282029760534861715184767668030977325612235104148381489054104397107973823659115796827377817967884805434890021300278243941062626027706920182940692011900390349479635053291635217758742875592139662601563565631391167071901042522517324259282690950680215367103791343042224892377807302969544954686071475854247111661833864218855975605105130214070095732290336053919234745649074326546040179049912001819706997130773808684464474526564792588993154952890046405748848770413684369604294134453603157902930993724559500382422479677497968632030151558709013089067229378362923328885093560435905467240077627072150569171253442509825077562984486351926804909400329571282597621636180610764290731346406976144687512709079078529532356215339394318937266031248107838572360121481411286637121199963113706667060823427295821769145618413657418332887013781204447865416425915097247773398469659475358493098963061336712318730882781197125070174597665875688056825773789244746922244961782879902080362353485026819334388632151317989121777912322550803391185723129756871052764895293084641300127395044576041455237055147654352097768667210353908108067874507107586372485399971105946660422026467978078135080553558576403557987782553220181036559195202649321979855179393602139129350982363077760382272269496990583899276252659174354321090459602033585602864728788575628754312142994879307451772805879328551562371564041242766439740158919751376022568596495410031686063251193999876331451161433789420699151804587335736629664543604599524629914723080617647679532188218782480753868702357113104622834810153831351228083667506640884472200094905382780590093329421889904947978436427173974961301133824843492179464842339521254301665249185527974641615277220870255425699955055754628097233106773263248101913045623953216544382091016220075345875117496441281567502370690925551596427856165928594594856943169673915069882086273295840656421896791621441684391801150994865592057080495212320826782548449763749542678720285481932481569796920270302393872468138788222173208906597907366336572571574460492587169434481754402576943403771787533181946950416940967744501579503033794347159628253375212061283132339643320313736256258239173327113594551829194221958875750551269937729831812390933043829104358116558800686197664742432565164625501663267055317889559983825395122533075699671832920892896393440527734822372816886041580458420682705065504589401681754357518369816039794663669343634727980377447251650394409893150089522131050868726612201376098242728779638914768608961807390485227865133818221875212565361648037108552802383332894079957005883208500239841520755873256481123647555411956218357097017404684726882254573953143602885012532323210072784320943881541280889570049282247971511105142106710457751966690524313029910847151096753348475650607888667314575451361774080048279696061547339516572321856364930300260746250215672326497644777661908184412251232577609221109792480378523933964694600126103056760004191302463700531284785469231982884473983012055709069326733361223992645602416484532779272819995992508817702340590527891523346739528376069976244806569323818671470466300329181544556508420754787765802182606115603452996694400681482904818856771146472730859837276958445710638354213316499886615708727638567888641768452162884161330699648371673178841941110923674135784839608351465545261126959030044973151217915527589052007946874604951339222658041178981619434130778350965111045347847984548939732064283945253864000513983937584066023876401068963648794932581475892021575830778150690668498574922279233444895197338972594430801990651095978371970116821981739774473243596495726581575767292915587204905680631006734785796517226442652515151953290521489517011214138497236665872805388873781440434744198924796446194625053353730414657287449194271932391805471495529273649108045244749082178477336832967773506726414743079844335847846054029967863373729120028135363861349249209780426587079863953771076963460631002468780173118521475160113571433639254999257804211381854084686522700880435211930981254931496887269788874459342442961726074642566339337578253582516251128589729660213424588684253163386834309553047423409537200738259363216171222501364127337037175616078541542547275100862588161296658716187982462445471411278144839796072745503965857357172250330482922785008604002894578752749580441592795844472940685912725392948357595419718360242659590983880157567883411735573286809629742647719138994394747841678822585830817953093625447363305411079260271365632521496505059245218110193165426396697751412366537284984145536514747674320672085192439796234102008202157371681086278206574115931784723460630865683262173332984739869770038860389276057270844328806230963206016661815505064299321943856086604166416262095909211804704008863133396569172591950780958596042544350667727649518119014534001107538328217381347827960567360851495913132494760414282704305723285891121724154616251633111083743001806459208778328130842771705133673828010382984589987300981166680169648069930063777441938138691497127488199479405511409450515744609465000697298359308734515567118186157516893523840711530708168958949949117985704728958432004700722469595081925852013029408316345567314528028123489425756833763920184935159051065574303712011030349263068491543342969302385573250640130510037113921695933853789359964349556983370124700730156559741183730303290493670237671818703205144719631747240729707599268199242121776350795400979148338483036313606854667305735570765362609448119068960775654093285248595769697642082728995693558288793442637736868691100820287178933643520190718099985228538707977334118615403056856304860669194671720031468335551969993598397768964398684478034672663153903259684399718696079542910008291109945612388591001751233121334838659124227587005624321011279604253883521916285363810621078316693962713837661476950549479841552178318057656073135939173616306867938615342683897794883942542684590465835546554560747642595671197607285039862727941186518327730049830278615084676222372207399711941448517479083712543858592766875466901838109205602186923076736257345026739517222888392838260862436311647165248498207407586237665471220650562000132564109155019346962893657439758115596332963236097203781450018120303431540946137707605348373340616613201110595468897997854818354163924437239824531380262855400052850993053386367016034343627497445504856100930740874081378496621620504104841334111169383688016214804158395879295642564786607817380853882174121600027359304136817207679676077172248323102603768730974787428635886146365032490843535391229407823330050054695710792414149357831959007543657833121571875976474308149382771029902260791117449748980450677115675804246303806430257862335887472524615734716051429016560507121719463796048026028927403344425510006151124688423114675373313867369309670450533350674542957094336029391061224769220595135787423424933134166102031834839664908134951304509450302913345717516415889704948761912709110889450215045853307089618484426984737180297946992646476517078239613046623448552986862689691655725795929137528605434367525134510940414150343751663305110224039094517333238543401635195691621355733418702347250425581764619083599346942358352758553428418200184856396474238759462937285168868504980771928466554973789500485718299122121649068231493840047521543708983275134502981443635730800288845011685427774260099824242902878701021815255514009640930066357209726414174382679843906071219886106035486712900211650473241612106436404969432171154148089466161842384840476205446607755314663004243264403739187893444212912374065834664796450923929576889655383627533681477373944717000456010709012661649014797338822521004788685419196209512347707775475838402516712762671339633531795563511655083952985377359936938167014491881436498774799441028359303138535885122188746957907935421986924339127153565018459844897703893829645024416994201388784159175875704701958787963635190324166342050238098440459784810225179902028976768234649629132215794970961343273821473742556240597958826312443800830586937315710428041475600311389217571995990279569714308102632274953862457822567128986918880175271292415037733931453231778184136241030819530889286952960862693149976328100245066520487094110480166286886968546735277770300187947772396882530704363219983033473885760936371247033344649494595314484152091495189295921827849307166958196522454889577690792411231650759122995274721721204794395794881873776633987218691283772335786356627426565236847488691952272019219035345099444914793813739423346784349306589334641453708551702349262155788392720124118729938966001592451415696458718374083072958589139801846583131667999738514319654475840579783638324561664224611366398944316262770272485775336069812061347821469324865371235752126493084754085046399673528522812326908684019574880731696303855731241213289268472767632603065829145852479119211073099988691786722150014942147056217910257231707058193175205446778603754640982365619583548420286169457612976212691432904047170123309515536681210172627907658414684954454590385661614252187484245833669694516617191008187130120223653010519018226754271631758426532300234243068726111102350037819113907615043234095554356661270049693844177310652892625534846297713463653743197114569923206703796217470573835056312771285031599076040572427201251187032751668205868447966667854726978171550304666443406089431163000914522540257788101710394092422668354920910566750868582045341849886656422032167800382400510063159322016088841770452559664338719215327580760382310034343804378651177568824464410276679290643521534041822937770979150858340147299905254723470925209165476611489129355413736633719701647623881700338504197349128282282592307756155725879846916599077111976163101968482799175035876456321455647658089663494752502427227097430428270618304984213244010152337215122556857988158375755898896566639765733327921858185091632826693096429746252737083967719175995063847617836817080063460962000437492517063687214526256669363755797652248224601931301160270112468688007485516541382372137618147916363403895270705609061373974950210199639402430704696018092511059814304322436173063189668764799629542268600024106248779908853091966192321290555098145682413097999219644997378591551254425311680622981992289765772063292187399387343653283945431631968522702996635107132296187755393510675812695276710974421016934783284543467889066276354632952955841526209146965256100020540870893529075654003759535367493793965514581847982369707583733113849023860033506270714016319269596492892916564559959331326312245021024516703266100264767384712979393973829240786355462627811489594425493566972892657688380021025389439790040118258999451498294160245420508686332950335082175903572923491501481983080160106978453493858400474431940870578337138938866788240977086444169426685099920629405217314777905100785692465552252452433407073455201917870280610457032956925641058126039055183731192242826408681244273008101595577774246201246234014216539277020222709292022580619201065554215154274304022713028154869256035364185097447435635687862427547104014150409501864816735521656137865542011564962691435600565181611615538224582982531805380000819351535749160166301630950866247041529415411233539141168946721359030798340380622684576185392683942572494575323477747741136611498051013388850473400622531692161486787408754816477356330451524979372297105622110874962607066911973118814443224576720794890184139450907124562040936984874084289518131073818572106944657541202267711369988698492811566966656450243392277056437666841240380896552006784559947847296676773839014197742544988003836294549161701407138985693585035471561349888043570760242694879422768491665483239493123733302973700783647296467491323736110506542208953416239062606879908482020354296666092770258689509528766293906173111970050125797862482888576260224910681455688047004974802009921517659805012995624365567389792012061218850379717929668451133593264315437148512874727891286689864699746982573326418573295854403313149468379962077489549179871219260727915429195637182690698550109040163336862588534673444242325911881328132306055670765315390074543130179003470556195389814565748088707371061113807096793255897408125995181878489013502593757200410707667858119955964745906930164890295339805033496660544179018026875654479642719918266350920836573248286958131685646313754823055401525144893329448469404398017263230971991256854809760471467635194550168840481951268898622111830393816727585110957319952223436254853577108744218450117807584093301042464512676266793871741404732241208603261219695640879719106028930275844744474493155073441393538857363995586363055300403928816961263553918437081100392515609340857800038152687224137507650447924575797102100196678500784467934975552759190724563596873354171279095962169465676117660230829713848096307187046939595349907796419111184351263742817713795785276637296804468961755457741848645693502553634166208872401767827498192691404135536840237794283554652910810527326894340077060132412230115040496521553768079585643934744168393372902262310806343055420111288642528587368010609258533822036523503889091291324506981339058646633249094530713087105247285221798251091664826158649784727939190591467160011391930387375204182290547561490525300584936595533256030702148287231128042131701790221623268057249452650240244969956698451577297975088451597392331027043588319581307770923121540758734519724155571180228689009377767045179538767697196403462038071419136166564958702584993448947545070129417489650280147679444712944113932711374711433344380490024266768347305726473327559867120466614071678431771574880705879500759670559058668213106316417894309598574996368182504814226570492033573665428520232606675546865524363057495103173891128929780234916872613548685383359177715444614918108712551911722121485050332414265015286527472749014100542151454230705245848573918655723297137300302420064953844623127398460641872341030601872172433085670560111377856891551073102034173621661961997900816337095036213117500302602713028332478843990892658408643333603088982868607778173522637195178043918079794197248582216191669801447430558793763733449081654675758895101572290913274460271113832486927318320556004504102784879773724822770624379928639502318665110334492939346697294826761597503995777496610820219131871544364723211309827188412767478570267913946875522002949702243313449535353673989858538572133437086383766878498923443846246639953989328077934745113534952803097265517954149989446688089199187957770274142613349820113550696865131744952415769917659262463959596368375746400166940341424490295113890750047535448027207946588670673479128962835199355945345493462965211636503542531576772690803051106027919012916267528154030902931731227016450174625042986191819350229914599237707110616096601468424802930251885554761094826273139025504544137915370658603037751830857457845958152440322762513496270841172476030622759550656640504703825352642976328103368284183723218133377420437478828119080369282146264815603644169662268256170002823520111978162504970142749072136459096401814226643059132284117280669117075964828350893263182218582991918230455375377883462921227490947072237932046003222809200714920458350226000582139252528611340848796151437094899931761613472509703733675865370157844274424307812896013738645812945357469451413983225662950358925676315216621337566664821775165375990109152947502449243325483294171917084002270559756204675374558734908450651058734036456373580710098817154924399010854981747581638830787314292478278829558121429747814371819037245222596793833705710450938537413007198985827987908811895663091011339794655180375302683911056913985543721630162219816588451894485559277507790547191420898947625085410794352896643340934656895891460962495521911734671740690574302381295730275519579853078814492775473635443427760732812197346181185334600409685002767408363628325008522299769101291864664382386527536053127757051702159466509946232557030685935418905379282634015938084647861043104961666123908441256945096917601872081878798866802696467894711175479744516630253550591118239673334449244624433014544899700321031797225877853729329741787544065985741667273794298467403330173527298422118105742686643587392728647089321016529866442762495900163027792263856863884650752800362492852284428465996588463311997244432325610377445110412373446324838027947501863408117409095783025171745313543575952054133833317628711110129949021723042722305029796134161852967794583139552549277721939997145452086734459804876875712735302374691236632610764308688189116748441427295863534531324218468720860245113517056608717701489216443005995067554387578779384988816405104048273315198303532185324896724981295219622163159223817049206257180255211017028182825087787561385325924788491934453636966577716861552296482362616331667880300787191926584406735421852430443674107289800584068016278303099608149112802824313437048599757643354698255057767027658836979788814841179539241016154546720147977138854686806288330086464625911447130586493298579563957493470845680014099458355033864390117959108460126994655706866357730113300076921217655961977823338424357095987058352672147361007696401258745030871933424703724760151353345225140271308584271582096968758530272190499614750642979393075606218582451686785260862520568435485945595692193889599320520758426473927231830244559904073366117742125754945004847372824535809871399141037840703297872014320278024309429972684838362345427046244017830949743806799708000469715019980784343625416071240016028140304940344238239764342019372782224006775945965631081060280586961454307258963230628169457941738485985229494328594485952284358658873308488751142139520905782334560635470395656545639577001473761046319805867894998279041577145418024284957939455082282988148244409468042396513716174345962950593914295685802571154999799619378516517224863536208132378183875590621707678095592375018371185072805553162813091436035553756296010403651310547122034279380232888891575682388587994372067239549990013976418158446789963707185490100190211060122209861576272690568534632406017814707514783465802930884437652943984153763167060100711978074556667274024872570187087292450432498449458843208528878408401690075398936333287223081450881148735381268140445269493278086326289307385333040018172170316803853537762920000085728863571391751490407667355861625213460626146789165236839251386983294626378715839404296872305608505791808473574466651106132271414239382583624330503499776752103446819708830920868584044058267150933904820107288365333240328205179119728958486717159162209562932761942261985523474793062447039654571664581418296353564737768838231511183879801923525484010887997079247365749300375409542723326840980986380880494006878260549380587195199551293723578965453483101376560051541953580595644359771703710286276776745911496794612165459876960708168948208092305819638366508652647621852372192845154262031178231138361179526785965543522669366625488884734248675640441328139776315263717360484975237298694215004727351174486264280313858579293052644379411810426813665139389925687006177184766112773714633375674815363593997032070809675105624585243591016747947902758232790539095347820181359975646831815412990850820032145078499311277379736432212860530057934063787015714573460487375157779025203545358112260001925953002739496929531696682094463293005800298900698821571550630470483799695155465632559820067090497873847136499414002416818761241792084602741694425325037345752115605714311881497647937958643808795911300435035690578319274930479331611831268564315402805390507252254027461933797863021587953704886579744886259008833003824403773132999857727225239229289914341010822039740662381289673579776031989294137136435645292643387632270061996982626254193782987930812123223364106913009105632635511263927556859619801504623190899534779141873257450980931482478050391735197890400888841268430096463886697090453969478334260060944022505517110033838434546438589626294326712464537776503797755495632300835155313369618876978653938874555375046277088043312515071831617332440485166644862148832308341514071059015659791565244721057498855079535075761725586429630308879833209830233734519227680290385688045678246631848954668760311790476033920835060658530047052254035339399112850621140290557619367851519272726705868585707501514216025833189343294964348793094268317808157754375276088027483920185107045799814129265495963948987895128206766666999850267339783937612785148040095428653033947996863147276604551633160611193050157871522065694887309521962016002749242836025111576869309130134661840085028892681912086753591749285323417340205597967459365645385492365609744145104877429683482222926014646604052153457588147176905873646272318927987204434678357622248827758273925782051902119691617595596234440105266696964533083619737799174653645723609302635133455533943014266698408183277009413457949786825303455000380037882868927704238454300043972697277265233361349387886340853117813679124860402024103841184249170884062490540508029069056468473317308492237354429496459382476845296645158979164129324389541446007381938832366811372082555060686268152343167468880326830415936396179118649640851948583834847362253218124693704941501049040567968710249171004471808966602493008144311334147271321708109796838445898066203980622118698787585200425164220707071027985611264493053746549123584816023360956514476218176914661087563378971539852011396113659364933421233738277115445272491106056503600130141061932296616254146781917476734795679444719965784652113239249413654034303145614851461352168012707723315619036970652794856260137657213045961670961730133007826601710215732483421534510577778911091252552947513461918669611000490013922932825685143680054339524332802712626920038629291743187767512778742385369780234679559887755860676212792236969062651201228518921115759789130726672261633817830745950583729685301225406483959490645385790779929831116892697937769404620237896822821592870409324427446792468742045269862248345803473423384445938701093161958844618077790269193551532122885462263087462231106818462777379696094058419229386936600088833259341940120996413189999858008231947846228233934027699920781685156352179087400388302031144772469740737651584190301747990461190761322028655006333429735878859114878838590689745354567549209194749362904132063694423697841254114805319650684705649126807632473027843560366657687025072239963464229186493490622892896848299830494369585072855546250848602291747318230424849109830656483771233157935325025998784760676402619156324687498914695142052371229124368568692952105312520419500852181384760551666110734229889622862709630985890800112238994630092497687859128733248199510468396687711209369119068742994706310618707614147963734117168785669363567337797228887148463236453195196436326891842296415761211320485452099615703619955692743314503566606832263476262663352994515963485047479171427516673126653555109946947906888431709772937943884040274237113562206091667923976198796914753944718159138477857713494753924994711238587091660975744184907327013441911420809008519392956724486236420366789615104987814435145853645765865887406590733294625187323299313095307304662966073611237041142557884540945527208815071052364235705777763288067146001141213970144348187245108383199041585461973119699001499925780103883275131321808265278882774663909902679706017690544023601157077880728193562702763614187056792738397368279131409001154178125360967234951246591111813199044679725418690252930091397207803342355803016851503187909225317488134199043137533124769829110559317356309263956581797704849505376162333658846522727847618992545956527690911724590545277419976382917452359178237641921585624334092062720191695817845715794145749712241157670718724026798568526303157047307064229990656394071197331595556836229708034957087582492695273517370649590974328337632689797259699755487072726851463803077413871553678194631732964218670697088625819216748321831213839023037960853157511499747511868737792513306149911167191869098710501262131029820710953480961167859619409482293830505873564170136540015421690276279958506400204806690147994497325688726369007775826186256101120535693017647159151706478566287586551568752454888831361628304727828279889366471265476639195251878860247557503285353934422736581928748076681124310866823704668844430770249151701924189013624334887971195081132567980098839418515518880033955723616693839099574162633271751918860241985033548863110283186422170197608877851883959227161344409119099168372506830901048449021001705913053158399142158523899643759872517766395656149469495194644106098818817365439062849986497768571432198431724760228959731775185699624712331473068247257520881003022570942519109199452569323246725871841095094537570473707806238437596134928952796977224986248415303684222693819728493500947463806075403240190340937307507283802340887826748892480899116700671004389051128345819362901663968508853804618671494995468331376295820192275691906886232268119666524696792900838965848488978414518232885012122331166242639444957318798691107728046973989828294146951745731872453938793762237468676516425416680355474058469189759779455464884721908036071839168438092003349619356944408725416942319908407207911933070164378916300984998674930992509663531013098458658946820319686480209080821428553887169972990428253398297465802688961896046247001210600716054836980367114106357142343798260463696467676733210550089913267041213594701646864681014997247344794920650209394389990246949304974718156168760186416762629276021515480455430386417155788300518740220550894492615822577699270200197374595148665798579253617290614169779199102250605480635333033651810632422708236233412582620916917227828367135147513323355567955206149473858317460905063745764334679463669214826260770711540498726619112502251858537455682872977190556966414600729085066395469004009483827373569516047228967585344489051162873518363103952076366180575860698393643826140797147957257861422014123469090002622845708088660931595318448303253815043783464062122990579227365119161312853095028785719487075295503908904565538346105125650137992593565982792803010557978113064614361361059807724504091513559182085112767821743878192937050258790332631099929287862608587134949031507568149681382566658755700490748367188922394292576885269080728248458599166794809346811192114063946965656020049209616472518324113271198013589522060850281527183813185282765371137244651986417930245270708982505295898936961480621173405208051334812377405759761939079012165448166012360824178921774206432417013896182973844615619471147435035732966099942883171305274576771667894240563925540156780089731083246129505308031767234535161706981938423027670344692271189291203873777560635259703576416880905321015781031552935552526311414239549726086700336565069937267860153745487564604689939803475035215942084084732458175981676555269764726213954986127174003261230186277693978393975502169863089059559067376458679748869028670666373124771014145433920374722477623280960451482483954415843233807927895603674333790762866418971125391228190159514864971842857216324403356565886069982699018071690261643682682676944291287061733236955428879363113486535716511532994729961712508694373760283929368480988227042037311516402640396875389697062541847689119410065271578321793016895749208222819959047599490265937199709215892749315857473436942745971062108842135962884691236698922971987298502123793147780141329221426312928184611996112292049009620104551414731668767995523428788586382036172308207877958805843658147858781642588132239865474268310550686106375169508950614299788085777044018687302606497017553236778089415423913190876808612591219612293105223554301226837924077224168573468993727488933656058012827237762202473718714232335398196725504477635575401778488634456209053249163874775989864328837827739646980141808392563942627008125323398219762973554506130054848976587685298753261834958712993254745412384843211649214537574825248933192827905428172898591723394695644929345862290242819699348856969609731148366022883114268542431508746798697692997078419071292763403493017462133086887228784043321620241645990777817218668551282815738511657965289992366882166981751817290031115371375854834222264734831513013912159724730225803664361296029476117914207225022225682107128642191019375815577328516392632178661291384128109753497611816553931726595330521096297292017171231744754646020010641864882798486143099733854958245660683383822934959421191499330986595819581203892529608037176668066082987651477546390411563154307487412759318961801229448094534369882343897422875576518432731757235146806175516213446207010138844756407462436240481087118758087900894577290670999716829390045020565691706312177972691366320651734140061675155585362752873231548251935845109741177760389734929048350701226165667344745413730795643688435639935882587499807431373923612675944403862185354002869693058444470949991405863970336330251965685687140341886580588086550079333575582725563590961720502834966668572609946446935822765608752751417936296893063179557733693775018254198304087396278426954022230658474055245831794235952262941720194162168179513504434339679860824166754554154620350995636179790744963943600846626310223552620917725644264088492338855332569003403351125754839001550427184198831814322428446372324006441240471314122434801355397779351405306197698087793474153949659184314961414463140286396372481990253041943560048907004388785882558476614942629036435000893280560833003572089187049460521636521012699437938490761301510078358994708891899422057808814494937471405157724047377215857229800268596917861516058017545246402301385981239161016263405343254891060568186098633818442062733493246926342498480714764326624862191353931145308867637433608526286874156342335786543755920326004667147283852245831755682276274422535989272262186307810013316934795753289357739890131065406995087292232478151222709329558722586180339941422913522545001456569735936526965491776809916878491974355046582957734486631530131929634493020793825808739783306385467967707607460242010897575582946334900063676129427864271823602150636436344379246863818472002110699404694977487898800774376361384158917595169256972830390489242289043617772548191207084448915298846500956797785683276804290211202219347575038907171788450933074666275754215547547799153125221999225487430029523062117722856687576332734765573469640958424094556447604575446702884798771432994191150628235421008587360764709194522300487793960425153524385652720388629049315245279271135177032622003692679796576786181152908897862744005476831727090288797215310976396032392169443503757814391860828494358265942622421165743516859615847168154909666547551056052372592259672079523686212950056556912515888458303591601675269118922062734804992715471438990637094394651539852460462857927698877347472868882071535966347028099449007162474171252377740813075993943149402433962647218295629282406382969174910986953883407432660955818176509587816041085988025967807084351780486370047142980836466493420359524931643840544260884689933868111822531985135902899813779047870784294901463029600072953659405544523537440462988516539612129210916025124874581750860941952374175696375145397481689407980159533809475158095499267144889964311770139282267678731532285537215728974330331276850017280865698787446725444318188848677565380729185214643993799611413611500196388242534367386249152140637780660218269116829783966851888000963388412339675687442028713514498754352200233210314989172529451790245886082390348653675396202220336144540788072230790147474851107169686062918799323405071242565254277302060748808423611111572248560942008295108967349077156548241594156460434078095491358155180063951482660549196708854404271949484341132688141496393896828886301966209825589333303840458203093464065949529976005303525167817476084255220621240586843710189385352945555223465851233774853291149365000372653907618760150382156966968132130217814169761536651869964309865544274739542020019179367511162576226782196189262104621326162508245068779278651500340940657358021500980488821864562082707116509795983301572347416420163048244429748880666767119273519228798423155236687866451547406507994074926290647833764577352473557670632988787054615289519942308740647050437812751249656523763038239346469788387639823876469938298186872050833752748609056677059229000053232751827488779424437214491493025587844461764461802254578373794701819631815979952238466824830192418628632101646630533088037416735489414889172179430454033828203726018037734554343227771373284061064126795789058561218801657438163645249353505332473001974821003297170416173407712860705268835382924062619881228265307147873853619673565682410143394629722760512093830288095561964535960282927542379031139556651563915896023292591027269806180952781389560503657163872585633764187546858697077959719449732471152961294502227786127222085665193575874990581812994081473798944066975988450703315319900585704506746723289249270400502235504709315122574785746449634897924931211458308896538815856864666101913599834195513683310277473061284257479163284514662624179375898541729916370745078334662690949776152885153483103137251268066055603520247681186118186260326362549774639434547841071575435181633520551999225673563259170151372398963717752820645143180189547234746177877266218691158857014605866008024990206201041103035722910852423378469050303127322089628035458808619940391404322629507733896482781996784228846968815545992942394686318177861026664001910218848611868152348370101157227504011947016154944076335671572326356189441649169573430630147494085513187824315145860570751805087644435242844533342149382320239530025233219347162205930801967937916725819463435842893400485432832285716136349981713270273701887299029965988907210050282646827521044296905882834616177926928106774638677544677823955705964221476937805255139954156390663742264526717353315245502311214788379087749807792160011670255798010621822912835310228124410930787094165366105833424275958835426422682008027655940513317549620210842955887986031956439254623604863672890274803698297156014961685029385156613945538821710155575253663600630054558911830036213161209595329555134657574264784432127346546275988058033286792023735835468741287947778330460595267761638592828973728347688778915479770864647690731918324250660448998268579610535258755674591156796026393643476281532139304624279885317207133735550993368841589769015109535206089564851948674914136404325418168478091741882477507590670023864214135017892081413490037619008776302988458664854215078298850647468595561487096412629833449878635016202745138125524868892630925809028301888360419702774579964206045459530756767892645737300784311185973429846648333713807971410932593003359659197914168779337730906887422659502486508446044152941659437995130000561045596423966712238672948102566675843002141170812812527544819207181864556235645653722024941955730856893115378547596102267630499155220298694370071143165174001065461637786569689378383817836282383944143543420963469921778870444885175440344369360205418727129707737847182215489036351219342081682749488695998374044866799179775603020805249239045322135367696627503651624802058197565088167896448457674456802489592515368706919495966784337256165539935776940209996811702880848347414528908826675415203317010062157760923789036238666207164836774083875669361361336111426008154813677524040536189566220549773158485716333974613928377901799250227916102374164787584788594419340593531967662286481635598387262356214182447806235822320592667101442775450639241330507275263695967445733816534098242500012680985276994222633747970275311540378173534667052987140503950708757475904230147873865694937748977605476111204113207891606338312677554332080045091063494134338507879025271156064408921865757311746005965172551311988415451354086211826117593250566343259629824585203496048190859309397760104124287236537164344081609309632343056243991770926910648957452805622015835124002307278138035390422254505806701638359996391997089277340500921231442472744915638755521805919516781532551959288190158052046541791669211741951098728875390676120285767622159972388010159198005526523536287132774130831927813433903004954987355781959144669468429836317098145488553987961769093447880239327055413035639507962679656364441877770689086750102551680517898238933231658229627698895023668520782554825830616426450714169213030091536471101732023976160085370719736383826333190491529114875675391843051594378849963624021191108867303053077643910197651132860543012336998643049268606606287257620239334580495682220946632177729546917841876310948266186531299603636614657562198166872302574210427543925744942999724827999177998634465254215272560223690733818371355269981709792867857043131268666048050671837044542990328694656814893230644385553293269321758020730023828172256805093620529413309901522604529439725141589365208207509425950402463195282912217147673287977328628542507150386354556032310552442324475504867783307947033348114917058620562349932806911471729208249097488334778011470325808556333844493965161551064150561318414549374773494662656751169663735199097263442953946577759257747313443036175337262311423824732780647471481603170373028639763135693292501147849881804300975160866293713244692899933922136101737847685200108041043585796031935205364754181282332077515824452493504491817442679239637796124558519048385650769513441249684478986274987549705138732469269170332425611627853663942426970249737079001918051981302888695312706925460214300163092733914443484726719022065004039586533048977568193054134078284366083079477863838817853399801482018814816904052060786548537281903782753812420233862039213847336279002322392725174761537339347060104138873291301909021779886624097303131891493820579318240727791137420492981015954930350652707343575888524852124156328146237464157232050749209697553165637692020580403270338507123364478753566665320686324283491822924454318779542092147422057848316920055884890645923500606360965818173424067210775676954092106081665774794497862347480951379405992740694175149388907044306521692765488928623497172475155741304131575230964167435830875232768711826809168792017315235443299193920983508776775186726988130937254878362725438623843360033952096365810651026486079196488345611423761891513354789590813904568843779039581132280767784543903850483290805428511592729976577352068257634505852715950179136398898198874298646930155198450626742740351875464530521844682757244648766981658582906172120985033457132740398945114352383274315591638829979146989681293738413404770722714705469808899465680587460922293817450218593747853358460343836416999928030214894464802002815666403508215831837123867453505218422756054724036464869563836279581401980446570315725355382883018258117980861017736818383054803779363047375536976076354409839089084360792768842593165826505682436328463402963228137882511633802801170128461899872485184156833594778472055565766639678061402144803822918130586544636103105026251603129166568039544139885298411157095700178381792460714431185581105247286766601329659968359071690010930519850249530862430557741945274403793031795874128507318991529848549244689084498771899601203415957587919795975626397234905676698545245051730354845854360446436608052887590280777335722988235312309304068754860377867093508020693074534395529960043799743035650325708335954743372651611661793676301652017450787002075131759971648362936167188069078993704035525566405962386361791919008189730575040444840999160858590033519114546489838456899576444980980414319877674762129659959606872897707305635585940850697405024021061090853765785931724140673682841991002977534135154183874881298532489180747474320350939297418082518098036986970435032938598911577067854721602692598861264617572411182372305185951671097975698424632201386405145263400642838692636645364635749674282731746390583987623433358797913446616133909694591019634136271717429827640402627585186032242426125488220883330561065342522114941085303198427278392910706741386801400043027908420653297732269692590492264502639942756628392678923499521676881225028958477039113378618411864839471337255261904495183423301758412946425546080928242048638676460216704263238224983919468344712382024364337325115088860347439047455275554473153921608219312554341980373767537641253946638491035219765410795851322454677911565803876171680282575444880329210987200417011928204873405997021243336003360937690072142446156996234047502128348943388587669938939070676179060099525764793265593330511396826845564789134112040019617868609004674752431742182096950561416843139449000192406242191683132790052847574192858087166214696886041032674710315705996670912572784905308521022994315741892666097227181757482470738430961176351836050204512379991871779896902444199609346852089202640401578442165490190985502713518883011155446530543782259964065052183699075250321657727820261070633179266849638936713666699245060009001882026254245800072466383161098386580111846179255787709750591615388864956071615815369882055065481926664408355578787631982627435725298634953484603311582837692075832167972747604431070416693881271043747631412122465738577643029717189499285567906361243760374070673508766991927734861695297373873224524042633117889446031586070641816254815282550154748596416889506461650856603497714501845771312189565164999652962877313226898947539221200293949539928639724885118221239208281463667838649460958204784445788667067352356621625489998911328209151279003982360342769652912873971049930659575794342586050311634337302381996667671088628894547514274951499822534536309764470545330522842915838606102154226173966679094219767050887573737623442913858153513693858244874467488826687080547424980530454167088952458605465810280462964999684178886205831789776025424910802942678690830568182498208792339407735161694996038789420465797531883221795031742921429654335254755320478457651137417257481606625850953134170353056058693171873047971361048057409332898118356000275279143986525957684418897605235844007617889265151836273830693966852300440105792168798164366257389826412448807180960863735695275868632276452080553547055941911580254848785559263137612565569948205306402810712357216262243316426995931655057775086065733371384013754501701987122759401169484216253476946885272198916633576050154594514398177486953801575721252517567295465482838694634906935163834033387628657852091697454077402535563216338413461557006463924150173978820371249286053307489615566352800837933142391911625569829338221026155774220415687243676418884187255441921102227044101461955155117838213030595172851663232112273962379225844706737156203194018167143378314788042600288357235692706669947370133107693525906559744502395403888391141127651337723723573149549545693374075114049880984797651323707140021099705362966416533940814202695467585957410670779175712359091170162837124249434828803141399295924369850305122452707366935392048615026811709280440182496579060082522445392489019414128201244732263952664396407040226812927712785506252927866126899732233031672010795919513004538023467409516472219758580119114145347503442699586845103087202778914272269010770953394099100621035440813562918141415015536958971496674847049026179080923992700288017607783945787906122168157635804078270375220323195994593331946666826679123838389569216580305287368871328798167856041797864948053234687384835645367502466100905223005519363944991551695090844573531396912284682031075120865968888660306235062372649230553685582696175727299389363851297000328946910949775725697286316127874577864138280038786429618935089180298854234584859036130263336011893626259375564171629209594588353322030693494309200409688137767329393463143952572570888040075572495537213226829455625830946423646129774302128880512537904080693777834316981920491778031047972101631430249019861590460793259190941032723686733928379883795228586505894282138022483151191483082160218307371514218495133392607952940700279667988655993985235647150143822851068150502449727064090590435227112382509594387372543440284397596540885891238703840025714980364548522792777387023606859565483802341613406355435951122011527463607167706479732987064497921584838389656452543155594303834478838106821840582055656294905931940065390115719240403320775911487257989682584842824987397768718374213668672886238425445692833669340107797483768138663494679945102476195752478979085580314193019450093475539810320345372557130598698015092817509053616713145739114687107862697994657847460999656791133103529066981746305701865896069055207464820741418325081253063989194979777899922565493772702698292459964871359557971778456537662007836811098110772632570155874230454366667226180911934020627051473798482433278171061429345595593283742559217183700202334907674693088369897889061038379427966533528896550827913081798757346993740246335267090354539283890870879814989331017417494297178373607696197672510064922219511046362548782532576398883089324853917843121670751316151463161307235637558272028915267859900803331446831310583130015580161338741024887091543693546229473520785691888133992212024812076990403899344209625661211135206555650046278681081243609306006629261954740228349938317967008860820203000068526648223953006144370131250219167389487777199409539119220905033685134087298356975363342149236116253872663159289222438924436460236973231358249061815046366280559052705548984530336335216594486728751775407565364770457771847525440830908379169856295803311663262029294651807855424857129120110678081070270884225319805862502861320056119483571894812987147784911837699161356599585684124964473884429219642351888188550263995319374395988515995281326111845266955714712011457683966838248720643775201965983512117723260103424068389634089774675490166719435098380609059769703373348427635933579960708736589452242283355384931457652055254102918470477868158569688398592246055329505617867882601237626220002936491232814152562050187823698196175078431024049617223732817671718593916573846836805710795146713771168796838919744554785307444732436823093567644538756638230830740738582463816444702892132827433192079066307485953373209495973020977097368953704677772752832419160832178163431246530285976146448016695475720694756260361734065681096181094784841274876177092271826931403040579512423077238874918634166957633515959687257238049090778088360218869905360866431854606263911992546221911288461283696762839054732352874147959249207855767547293018589709614954155988615748777733927590766047314562786558676323414020218173525739546470511378825574219418989774375286833484386483137316386146855787131902426262343006215153674311415106209096008273583151250812912725405977698819284372051132979893362938105144235831663995822324025503241851182546509271492868329843448645206288514243956217279432532324616516400993204028084317936999145125980864398526128373385870374613755861364799210720117049597926233868995585476113505351906757641674455411651347522769519746654601759346464327742548542195942104107010807416883103713324839821751255481277752049024788235329782956885609101615073118023635842371468444757965128815218652869670821361149343242839202373830117270517402044190022979855199025785161679653296892862001720224086634980478328641330834718375468796076633698864292425970954153826444340929142001576764069879602184357481538334722246563046459765594678105420966569233533306462694061810556511441275647024090772403914101203462514054606824484178965887833954021819922487121241469796900453212304937621994825550146206427426569461381517297375644559062277512000460293705269680027773309130946795437957954326501566946118060993298081167109751339374441197513468577557413256407019343926453968487170674989342445877424681742799476208728045169474969517447361967328906459440237648418429488222357458707541716409253078208450364870241953368949477027911348099778239125059145705773637004522426924317977471725467535235186575234131005819897527595196371340985926288011029032255640896330520629533510163177471110952196223686911983918418557024142516007612739345446518877644616332214802255476000250198556993211454230313747197222444602903800008344401829447225722509977070123309505625618613961054744502519992838762674122326362942538480524102688658085327629359749721556452802292323970086247337726166326019816349976911353101287312904586950225489501042456092839259886696128027940540616009525126452211607881484403784485894016560419100503264532047094134335128382159286190599885431830558661778375603986370060102265327848330470608169843836105014562158312903164237829343026402617348119933941500354415272986662846851639079658022362129190857882528409396039454379069277678169878205063049704876827873737425581895534131855743716293574455135592812598456580224515615179268637571498009913533192341667442850062787017778697372523713015346372013012712303102543280737774546730947264286484655769768291960211069764264300538880975053361583804138042397563416025882749963267081000482623061151383972307307897236439077279331789609207965430861984818794606758443817520441658000868227982073717612278719626226296951265397873228799932205625186703479950625035275114774129506408179921147201846670332104510824423283500213603970337495689691301087379072013637658661213973749437606254414937838871418054817984015836544350019294221177597139130074771151587939713579923678583905958363214897495207403670870482633522224931031085713679265135843954094084579512848886755653965825954254860419980536807726173487448256913964543451250895439786582132703459544100645957202648691059956564346466204724786575309943283288990791477838477099457172770914764341409493466208489516072128901090598799857131630474995974646983919954127149228907201627047607041673636767585191595475436823754429591753911519233460186319604804723041677053780474430230721227015001253566601408319162810288799373212806835207817353986567470074146000532725318472991001337364445038261654894557961381948009349807182405695068805701911794130062993910640080214070722904579102914955270115121635568264380555947865297940178357199581401367365487499572927482457052423139037561600760913825544988308099861220733685457448386968564311040541311626209491321422021684913253164971801093634626833388616354130686136174102280585252880920176047127548034425385457017096231627256670865638545542240162480793833526998438535826426197721682080865055363196569358867095841748147827772521794341072455998227278954218463590432461070495535185814601015252565278957285858873258231206899263606979883690515360330046498959130289997268541016176416509320965864655566809713697763576046993644580949942441303707201214232952840202187934585997017795370219816059504174807740711199824587693885814139531100640488695071653361968243641624971041522331280123134544560279787446765624353437189019870232453707563631751871053510497644181874713487418007842886826911096685894551384921640193650532026943426112838875339420382039471135371098871454832803007574450304569319369651034774857935322047162945441870446717820977550292722430451377763437582503648382264620577760896237810300839172455862190133749554310604490681501427864474393652278953445747721195240831491666030807525911232070516440970896528147211818561162022393363305088464241225004742514948619029399915384394273046745571707594392918195156939654797978122798571839040253780331255499916000900098656122338686096106076434350784914772846446553395931762773700680135357342811600151432471218230484799832737422347486836078456107687813354516198108995573846783588236568416186450894603683752754925977326684322970991108442011223461713100259742050068201909516419814407973118155236280659914039264632381193572599875762994675979958871063531992637945733697789235665196787442530444774144941255990644820718089705813240381198967450750766837949305305001462804321804376372951509057020387418280938183888573749734469934045861112646998060637084589253925045462041430180341093346032458523198272438766212930153029664088374703156115503957912077898091250165339017251665317228633933543866233478398303059211778374073360092410123971924217452332052583181812844217712268142388101831849065258736858749453688857962827198628959716359440950371558622477838653053807083651798410375165158222928179486346566178406827635867277173148711792113599966302392897441083688606544192120594872736785401580531992098955430000866896435851431051326764969238354232714754731935208565371050419910008968796163194536774577783128260753561360385480993717815570728446312093807204044336650004860954023834472890203017098654539163094631762292017547930056300202657894367457398536698203513025874119315025035204100840194423104215195544212851062629066660093486368459833744322325904524461019879196051931196438605534890130628624464885261552488098552455923131727133558939341659391031452832840734828517952232862677644983984618156670156809745420179843745321780187561252945068073790942751723654143198048172641763719529145842444678621979382596466644816216932353859243065243606226856830996665577010414926233012316332787699651967764360987641760224266712237843720561256021307975781158519478937332499122537011430991994398683645706863970276361278188860600839065123797379145386000543342105138591975874105674338135767006660865106331659734786545588767320621786490263109968376703189664240023973580161511209893271313629909876522678577366053098481553314421033673515052213582501797461046394433316572655245115528104629616147141249290329942042317470523305605078397260453167878020205128068347702191747297194967624023610214875341188565971054693614903406525415088951900745079195101245157080249370652481959546808034984208293588975403634811456279184953204451957267149706219047574825872915461761283485279750268555982432333353634858332822536225812082485877509687027991292445337492706200374992645182911199933197342549282532466380951465700701684461347240388446455328493185469174969825700649190251154651678963907899469787471061006037454301080661256054735299727552334478954987418095311779349140526688339053608681217873485293467502284959553054694548888170904427791268818125037775318067356654815993796710416066753894952700476444658145586539590490861070554514742773029708897360206655051756779609893097424338219808573009117276680962488928679869207489432823143563155010086089341654691059931434097564422098478157884733637236560542621687893772946421927983458538118541153102615513740681039802547402132147490439393761312002925107021282678571824469687993072699315788137009289362193320653287255881210580769699609481019250072547733527513114172838141967839636809765524978603129989729613554777339958036895400750760130753865734621414566699211440735136459607274367943277286713280606170310301406514717512249131010262081882103817447035225439225100188295821467803548279842602165335850968876181651289899490377233467450392438706197565005993448691545734015678388783221187835431047405240380134404534892741447946539481323485428811353942649618575285646947973710005599485304695589575932792316140279356648422701995842086186037559888895751418573723359157340363645167163098883897303161856843212019316136288960561584407172588295300304446937037001508123344545010601253419044467250582029996046375300083967223817361275173984358929169839752158513687957595000920247250306963244957291012355770108655326009868336850983593402516895680875106298836184471142266170086241516085151588028282895728989048803985811858203239356611049050731537808816428177656553344560143137883698435316127257515525305346269132643673365100206903834355471156573473261576662401905699082522187105760327505615261658017813384883396075856710813272302096559509571474238632436845642936697830548693061782550207323290660097846095753728874755257198273711882595433254557473199339944342465923785440681405414745792775601123234229394152635899502068555199085012545156900498539963063264053010657230709513811561785234596573680458709093858489160295488023652232197177441724812270246931263334761245230699646468370247068981839797657162471009365416215817534548139366673402527004697563937656493139180719913600351248130035393202762238412426852180416548931289552297282816613882922782359965757971877784243743161508181315095966421753807403615530680117679207556142207726054556808231336990015020212802536862151677274865028156377258928658275795779784056767181125122786306398750870272595142160910533809502677221535426661922928121525865519930430919253056572690418041852427491255303870544977140091599559555754218692550212852882526068012495601439610181312170235732631682514689525142835561132572103041743695413683955054849165299636486192184272876765763103420220853300594311022537622150683011335000145159994462447361085320874347635139307509723578270467034056038546419893096245511315144688304274841864970664398814861077118512707787743379980386733773810110861630770954894641932084983900840131396080567048919668926229777074621746675531998343338854742649149476715265788017838570565267326423136560756872805234182413459632122183593222474857902301424176510905811524529815805653381792417426143027075019050397530889934325060928358912469905722850243982328392312031081191361938656940922273894747321810691263976031264137379677381394035200441397149760866965606426003604150815063875050471355260781895387348872748851774943831828986205790352258123077030787882922983131338274465310460543569917481645989095331332255663610737264629306467816603725175772463040473218334861824064238575997727592660887491143459224469453001168419001555547943907895263034933024478683528265695281131824216493784718610010884070390730095611104788101171931070989221333262062026867102691184061691259539627601584411763518842746024788059681514581529645537857867815750539617846846292066555847461035150743301627368795013629571795405559993600169995520666249733376011140419159709081211554614166337950971618886947876100480920966991914253795420991102775097115442257520563338994109817344450889272184546038443473663731987285517209898734529249350246784912718384667702552955157769980882083406782913581679898828177964344142002258478850246760317470049079913841373538939183102831371895410102773810763523764266535696190171091958190286024978741087927311603053915412398462643070342195995822504421732487291641344667376905890584189820676209100230775640494990933664351209267364872681814462299220774666588234620379844318208237290356605574929382955004535221999527719165401511935203999148948010203325236741019767116378159051251329758975977390802732867003910639944094143524466715172919284037376202082288617122379474502208190742145649392162406954989811229127869185802551467638828041310142615819405382155219477335114049109755511652227164120901655188842089460067448365196487304500527542159554842946323705761819968356566302167880504206136826079311188230129748846093190898670809883625959686105407458802549255195459995196908787219908963144419605993622085310546569790677232597837402421156953345862873375708212577939188337324834661538609444690042148094553786741179310516450359156879496761421019204718178391591027955129897019103830614665657605341030420901120442253325626762547895319225759299810307152381397783876540319935098424893736010179300613117757270266562682316867678867460293711801308585267670593345397304888681414139925402183239630513039623493135257242664515567789806816419801282685397733828657092817480703269314228907234335287060688814837868439823544463210785969604794841856804313771431057229141886817411650671059814397393129944634716949779546447194216802987077415166219057335596969118349021113028759950937518798809286458841431320562231614634609396491259560166202917708734998402186439548021183716272893108952886485103380739925158472306573206919264772482177936393233278749890657078588154416049829769049313555412351424883705112775047344077928070610080970019421187223956256171783947020772120755612683842431740673711228473967702577625174159664194763717161178007331430206395559366837569226918732606924997063216078924609745506450042697109161751792949447442614926678362825221417463544824291559648997792947232339131889801585119649497711662526097278596717032399130083933821256366245178570658255100519882847223052606396633000718573501072637223747718455272047186637289351974756496046405458812786594403475552814016838499875104450112812704088968407634690184441166195672196520016988479430695501664187787527587602868711123914597878986419051276117728852518893624297438217186126670593257139537546589376878610921493288621465828835108101727529172948418695715289496002326023339415552805642617404108501091239323069370673389684446644520754484575613110586371739238240435527460822408743799854206113808082443615635543290297165619081082389126803800358672846481903080930569711247335207080736356540908569397757893930084550502557459628271282427806886424253168939679584273186969179651828868711056423646126087623111672607693995993692427265395376326376977913640501793463830735739540730400532386223885694286002333809825109330175869563578501941555663436712449591811877729200626701673031404087435953184613881146691323300412637762392665750861098969259174344287892194799905147302534695046174458230503495045647497430220662277140299598930255651819074072134236835500895260895957615452807155416699023902385990362529614827072489675539296392261504300409467914895366899846347492329628558862148660376261229737464853336362670611572367305653634452654330656727819625893473672789128158935530116619423219159121261458724868034719044794879203642333725045935530942497296094846483314455460571829742816609279693036715276209325288924417422220454973246014644220680307424528592832408986730624743484376340110432194147809902709089202793979051017134785593736323922515396256229759952946244257304519800134232354166527688972218630422507011441491142123365408381596730868290949575059414268124621287606147116078657592750579939890265035269757300583630254568766475685010352040496454814731623432926972654571606220674448220750462677218015965867651707469661531477414385243428223042951813467685701112022903534185319441057931126787065235985205864210404310249146905717722942583549059855995427850231145026819422278045794450347949958841182139425497204511441385935204820657510655260283647569368198031696881795303114023433506978762592837507723278454179689698934648978143150721483535163408276010938635719549065802788766940666813876379538426279401381959125525902048398016942377520135501102215572251341718666629647058230819299539453205633103709490639314191364306064701288922122545429510350282665640519982134915599806780086618031476191896836051498983737078485822312425891850703082990460491327181053223470873374342164942101739531973847685542653861886160283734425804876161070784151502905351227459642130823105737185756895111643914503490885349826982039963482978715458554905890404361721357151463442732520914964933282788332440832763294205544068573555423157722796598840022311887164783176605314308098023655284445627185205200951407871690179462338120582272074955444272335863915473869534824256992772903838099580840351533468219459162070975979493069477514014638228865361899391822898967527125092902499398020505189841071290569450884266690085677879346497690676138664284591525135065596748325144616961323108594837583879730565446870678915973638001327525426377404295132394645562565233486275951762544730838432751785742566066155389183310610706880325871238068948557799733324864085255904152046869468199071391602786466141835790326501709325380071062374107450133430252554574452738061420160090260339587771142491326629766961610960687552207037831135269443539376009944417241894232575857031225208588261078564896342491482965621563631028957606274853616023002978202270256320780731700826255140604058887628915477213767629200958600074390244480001522499530753886955639322617464157149139476206831237555743547338486373091983916389824806013376504931316218362140704010832294342343990000305559011269054294389674421719043983712150501024890951927180570545728918251630567126715933709047148156083996474608543931258792174294945144164802595889516724962405352826119885862686634458413575152026312154968891284358938074270612893131554090087187668313996067340124036976957512836420614467608716053475321419203970918590834036818217140153754068240137134921098661024722875554715679426661092737245449248170106933551066319020345914347717064242398115281381695544101935273311630546373346480672216091335558881365668997357289955566171599290008681114319989373539948124143850569918957183190412554425406820735657648026771800146016899909170381619568746169500597645589219276734182310968140675939452664123322436778668794039832364407434852354844398587462386047803282456993359326356697715001243727314320220534307067093765577159436041172161353034318845853927994125067690515852634750472587092506410243898862809344655747848021492754776672914396888851768743826344890401836641718022230607625637912673351441560581750190353949048990627582825357891365419089842371014870282166244589870783785223795220933282684599343513557482406226307425760204864149840863068317497668848746843284121924444660781235430608811651619843121129274366873899697107104450398886839959928304476610889985485992356118920539406310072569095129776497914857419363560274819880025489589748862565403512003183937879002271948267072295904719450879818126792018091431738832917178406610314027448118108965143882370620004479091477352301084602452586801754416174147809425010786413031645594758761388082309403861098233122381417797467438892585695216995259664688560884407388866427128847742638481315947024660502673043927815440884017829637078196495282501750225018947419954756879684020906460966780623389643676398578131988739272108099884784398274947409974632525270301106174178978444891809180331019579608734647105429080060792365512255252220775589133990947568232418651939491563859678092212713702902239348288662694158884254487531512827486071159024194867473172122329021199976953638040386358045062280209373191926733706272706455807285927163709215576061043721129742604209525818836508117694907596798820174287322474474269236705137575851109015717816044287909241662343461744021458414569070382437848213047872792036671931216962990324093405025111881472111856896107133037150673203851110353879546540267754356673609743923810077372301341092052832282065681643957492527055617695459189604478682490893653096899627553086081926763785153236434646300627257807556728344649788916054135076971538306412032636210706823388845537287885955098087284131873955960893600498310525500452839699204993018090423419017868680644233411131608227107659501403682892264528979006999764473577525215582802892213644763973009292008380892478791910775212112759309559232230729731869160125354437361188129238500242440870029279935336640487585175118408966945865701986501017957505835462784984871287610405453028218366673023606989791429596351095179729217466364189617161592048021748451587632723776309159812220942117920860828659958346399862442931742801231003350709189295079793960353725315870003189635507049763747691404215815302626160130100829772004454427430821933963571652563758626389172009160904728715614088594984228913533487525681291510797169370284933698114971564882828363740677463031279425166098819380180219676308853042816984618946135807182946070135357179228430303696223919041744383203221949452113461483807379353145361486889208431317514131067393654239413990514053653933339155005571421875699299474133013184708262342400866721861804138199047312756131603723062296372219789995746548537893619351320133791994988174972364906553558183988013486833879668257477421563721537210663058482798811096316102959082078700259434388354423116424586773290938378451447152844607661307212076823538879866205660853354698592502493326156308599265320884348198611382809080804456880085610161747548909287380030561243917449072411390595835779567624037488579831114897656271477769548135530898145175446354891197410703787883900149063284443320185501797696749639469814495588320785178430424597539333021718780753186493792186008644968084619422471559190963513639280086937853695877123507906550513438970116224001765962831783270467130730090858824569775587430781015023022365581022753016827453185312351644417335402920017346422552510123255625045692771769913100056898357385726212209764611890082375087726508444078716588559312281137030673929848703415105303564173292857012074478736462023396647224712399660698234043304037728647648042801970301773939003287423674012776453858554379085638652508051800830523952912206922191658320112159954277667080422306029698973088685542364195770873848584821343996142300915247875389764269060274018576962271068145907548124922939587038389826406086641198883427352335204064091658326376831933838220846698802096118883601144112313228049134854204209011305688270080416488491253995501828636265805995479306341561515670636351157280335854879863054782351833011788173326442090832609279397736821061286261509542066025630670163376968209027131066368606864649646212141132997979888837835872335995792032670520828836721979466784734764784372891725857941334581747701479150883193560771243423087595765836726835775272418922744873406461445203237832699616235480737025814657405222279836312811908623430006092513950020860261660750641599312674206304429856404786831537819985771795985435231399483849148262492363983689818434252026887599258530618680698109622056516148815063801418713939830639654721106463823412442167528454083883545648039521566672186902914715133396810912229349681205578263391768095603047703408368098527706754222343392183866790387065458212486631659041919902085945672804529275591240580793145352781841641669494175400941089757646801665168915614588480760784983967263972513905768090702966986151171234833097775176503710775641317168248089556366053561988813438176886282828520174796901540194034172672955032216221319596572592133752253116864658006328803692061497038537952911338297302130681916963844268850118749421275749916552268562376694048790910668969230801831283236303399716110595656354397762334815321991153659894572889338981877993573853558448132949948118045207042825326247346571080499624928109005945290702853684881264526928389690408273584405086082191876035596529173139595409763958883974397425322478915754621045476962916692083664670849300328122226009418253953058138931988958718524186845351370916493949740355264829524037801539488595261622510387566823725227467703275679527425206668429552101080672029925848655653445738710547879758161972251119570196209775290522186684283560394189839824779530471582032847875571818566466669072531016235867125683408899287155659629125731560377188685079632453495512475292788316034413660608282237128690583905933544561737508206249231052279312845860873197350335688557455560661064617530163010339969147897384089133103554786668493314897299947323955398422653361305019790879239441016915853858089173862015143970738734777145500884282243857398061851435450178244517286663343832144931172232290419576067292094134950741431014097828691202193500424266454176502442441479711457746909886988756158283408972284582640716918482893779911204131777177618929887347093592460182818940157326938952103097443802333097427557393825583402249936405490307455408655852719028070537856497587605887679848169325486277609274285909147077061257908400012456535389307404901296942700068860179972584952641470868057795673047483463514324886608198681960815715779452247969192932644719571001345853599485334526898948084677600349549240932069545923307270448284786951423334653654653519191576752728236697575835214665289782307443313087292830117176765025748254736412734896977612359643878134912998580727112277816587513984108361126680738095354731276630964856036187307246651679911606155526511162163708521543393732945211827531004009946278474093240625813388201018989968126777351855843071531126515827250843080179912546146283440831862465676365639238524361754170728478121427784386163341130294422814037850588640304043279963531534664414798634790581226873593893573983918291985304222415693393338996673881972262900673401304868681382660154767908543250813635633253540149491461089167402045289814499736407045631705322213700660092856999814297601025312166925029715338853312734425647425379477830777342969795824469257673301633395582307546229170386806993298234354800643851991631897434206730113540814102993550068180582817111237896167113721718930029999799476421665028983543538665966616768222666471464478845374549279279426997685751130835179657281219192723374129391875104548737367605983936573977379303029170568087079252482916240816274081721686350451050807368544751081390675598325622959774476571381821673323620377169525812754529219681102355049382045069295496780833988829218448014344381087496708079211611091921369309640182756094698822107716166103962648307437818518739906348222674169029185840200988892134313024585279378736526732089308314915978532414734088541061683202623456500890019555639787959334042545196863216649518266520800071645216522777085456782639846355256138077299419258270255486506826888586739064919029401150749970878319137063852009706105193752130248999402371549186532728562102628867164339391731022058199805083139998788862885465691438023677700678137683484414910879825211252549306919854275978687886096572119572678814047859845271003355678794987824116753735661573584713441142842603736091710586139966781231298390131236236734628185875278845953701007664400794814320981534192859493939739122980257385362920839467163502398799261180299775959700068791234827014234674127627197519630512720802892625783034566153987377083372790565992674622426957250802506384785016883876830051088694059564268565269763705311577693792285081426377329841096198825437021810407062815470854345396183156411148439326661412981976342045235754189076358172144354091207995319274917804927019572375290209128929679985905323843808848462390032121634640893080300762750356425683509695784831377386031328647472550474942411945510738946789822087481738258272918864295768709985344867658144165291324043262504329715040940493575917901981369689622283266466164878842832170844970938752243904196739994745303091110976242772084752479250620652284819757910299245770017376403487734843938966794932020482006218500399262049026958508544816096018139236215168893973588002601289406841767354444580538171208500713456322992710209797642269026341840194858024797209103666936731444645152575177076914829070071670792935110442246035096115313908948176600643604622179353904264091458109442062330061092542143843153315283457703208632539135004655567426624441613480566667038609281803463749985345733957258451568676819905805184373864516420349516277388420474217516308373615471391075867245843124090917407723379285880924902959616592287708154084048356065641498580828691916584993894085646226051857116919479475032532186498592164122759834502170507584169521178887803360990680305687245991093835884809798384892422975382566799163604329635276628648922104943558653114073126630710297473473659552043943828817777527399070168483374758157029173064840812125131366578642536914474337385223327434635576295380114900720933600985067102605566543266029964854655714310623549840703173803316209287977584856142034015641095108430769514977472878054083153881521564209213696885339812067299395232161982203201539357006194186192857303766537950990837817858519097715327058781781278392217626242919734862904507517083192884470299782352962474152633011839479579505522691578541354710933155458735044855439774542814247809357607543929988973000469741215640354466663086599193089182547158599235272593528294697281639380298443209832326420661867310288688323612510453229439043768852383436209103557567100987360782711741599972955215705775870521045623282426955299779046261192592948989389688493826439486655634020612231973761339505900290308578883413183549372312277314494460376689337445517083280934535019855012640100918887206694291160138259748244708551611516883004912013449130000424204364473163891927387432607707357522366917769783871952033889332436084696867748726006942417000417315270546545514915860508006655916613892261364613091431617279709580685164849351302003163641394177749176401861809301912430262738901212806851541989488528978276370517219555465512598877786819465347827560891843251090545417224604489508455481457569579841715756035477000834061659684567680237079227463559511242419907825144958055586926434809925085230578841863544807153940700870811364107399970076482272058296451070900893280965230345427151504538675696914072260218520131468388168259060672693768691723104883448136233988073953335306860262573715845495752861445361897438978424226148966264059150479742200344142410147745150401355649190150541906878064044544722641266492665531600251639211087451756226778150430700180526750732616012993412817359356622498630300744908516558848882157201614992045949065582336177813950827930887605935864974354568363971228637977156652489735809281144816177449576433453767014846430880963784427544790700967860041547380833645443273554786847046320452485486798722436591001301345442973152274041125171653906089430412161217495168937442895797646600942487737734871689036113283757884552812957878496513315167765476335737316909797619316839913973938774642750128192474274176501062127560367043637108624799278064080917489390083018818803354510932063814663223748601066182336069805271780675453173586084463754023599568755116603053805624510164644257993157958080844559675018541195810304667256735344628615874274156293765051593586348172558907908329805139809384188584883724208402428297036429487686690265102312739816216181382957155336865396527211072675938257088071014469621378520702695264880068892316204115363796817552816255233593149854688815441554484665692359085505907385954641775357872959387393952928274951747647091124586769470661709082494176418660323199342975670161296379041509070539070338575622471529179423102605354017800194683624079320488856554456082921589177941562211867687760904204083509304134252080839767079692407541945363912160493353923041753205508385470245743396052322103305178166609741573252016374924490252556257850861475611684078333663324214299408885794205319583189803467170019814826006848188609607867527141183862390312376540383238767577640125901873589876955303840356756694258824646299463107867892804756791144313970014964212108105900447471231794225897080477244852376680441832943474590145530169600191338199665947679492867627502801457888927443118010937116034120896391735248069169388159690612371453820205089321486243709656118789375991470551617893033621004983102392312551800280869832062549070592882817138901490818664112660056630572858168272453530140668003044248822394799961299488895095919122790398690698269850025679450317586767958379236514018938284149821006223687055280750429955253847496702971982463410642018224132894071390179971862039315174878827051460767327864446739417554137613903423698912838679623006211286775986315253960249154168563775535479717106322932960366769005360001722469082372744199776165507390283914349795775213723468314003489645691143064600673053534594011360073111156604513170874155864048100929601190861650525328550757987699710311585776935301024897284470735649120892200224238542236595026431782986494559588235435336135618998325791270314188036083247977084670605429582852787718586131763543061432811819610681705626916548353618491062842025065532189267374024469370159913741127706329480570337991742177059403570314628817873857626144939272954417941446277080094292807248545372312886725741647324024113369244932052933481490187181292000168535973674685361502634488788334319516442612617341768316700688777445834183379922245902415432558644001665084184867268604704175321476997831481641484037205199131297770353171274393537952383432743792988328429817717351120596050328040969181268395537947631358653601655852784138221521774584015653297581574678013560883191593473941701770796729275995909042760000529509402405639084147245813900720235152246435913985202683826886615916200146979503781197305680604252467915272782132889577296627362465667020077356313616809922897232435875567989996552228662479139871379440966053592876628772809943543805207691038812426058035446557478526828499250535300342589621245891183432745662198083706462359369709409580723877329702097159659103570250205947867490987875356428645193328078109308734085263093957281213407556453053348302248796343661358668859181872795399136350916312466026328655064480955256908064684428409909975121771520427406601827941790269940035214083031545561259400752875582787908285127507964927766392570601589967557498598045921834735802044218179897605303269732690027039743254901339309282856124428484158182220247619137188394023250509197144908767697757176556414019313060994529991132835260528140543476160274725992406031793407688187966934348947156983346475407645585088684843437060966674924036302816176537554082221091432300664953422048080323823438112245977892052550641088327697477562762883187833126827252192217700876185922837838373699756329044944440529494866471307042776370949745222431404843255649461627677081206089263947573992062262589744134675395296020564017266129710444543590043855615894382404695344749976698123098097032789637884979264211609759355484028620132867319207271221341407894975567812130255542365353989493783963280387402970242101074886483181688864506277031966466876520329877062876770911109004604656924779477968019351844994347744327438343221107084050378775031708880147138975257781911678107500222285509448294642105240020194469058045078859980931666024200148709259514014902251793300066970026056358111795660281906066807613697378473961111088640229098263199069245168446989726985842931397752406563535545766217355193567472285167104575231528039011512108890593641261743891487028281401120462805504577381436920363919085609135913508629640513137630128286031341043287030490384668872667446939619303166150993370855871842727671820265047932422539872330281076659535360486862450722805775074835259611863183697318936335466350964908440595046369241665484321393234280426047013069061847990620399608671599466855111084404349995283021200050992199278706062534187285330148556280672739745567491484588432333937549096881133120505498435622562611421578211653585768631332266639403800586398651594032374039832476484243431325519728453909838900747264903506972542766483138907185246274313611767077061078712830464545532156953154701641344947882703529767219908853667665063449790938349783008423069061228954432402896163151516726305897074564754904204706938367146536078559961359662308383362083328493979678997575419224228747961868237115495923764845021210770068701345277096786240056632810035928158983105586069646901561882347151370531908912629875435652521221610265735943292822147079936309675888426241587634883675649782399908956244859592304043425870232317265228069655720770955187906016571033774211664958509042977391989826830101113820817950531624585601923732415492385619756896485524266953106366065023674149423450944269638202076794538259363515425454034691858262114650126421635640258600415532568394942334119048016390524711256516248657425958716810465719487323796234217480942972110726129486154080973854325579150060873672778201782372540137714269076064107909266668223272041245038807257866775423556135363306632064280668579644639693408905307646534303716404899663236936355376292006895864488966877871149389982315021064906321741430147604329107516590813048766003275309581757861322733931606076303966663462357945324164830378390072827147335664270135125417851318008329221847492003191077454331327234636473779629239221100660218788347070610288747930532935541876375916890229419755185241089136460676847090494059358507139159445091579583579051834763401735640293596298706605499856252683859723568357680533628020917690599236760907330213532698678208106394811508057585697269457903027449160934332042891467189747864581723635013188066570542613749162464109353579337338300922925595342658865215583591958003441486093120815745360246306340687644339997230549380970964741097625495493706434228723848096939225353245273587027068163838891639844130020676293120123458091521778691328734356628607308315700663717662445682009811840118738407086537414678781076764155899633388336422262129423525199665297132859195335797925291700967230011028759873203626337243508487953011544302498070496580911726773606828685438549758196254793346625294572142057828946617139083184933386696054419559911877770965478551355977663405304509447856669416861543244704462434072201822484623140802845116518344080154032922872396325652033430361585156947790655166497848959325750985784006166554016893170290098444677914029848327077570911134808503217022472676183820551411324012904685328706020327613331407078658852458322179437051687600163072114800844383470993846010088807746993179442465403208804939428224737849251274709203152386974718664791977583426486654960015820906891312976303140423448268795527711519529456765903398039430830970721037306316614664122457888696691853596390692282086912854331542571930604875730424772419312218578501633087430843995219966299678137651599260377769395962526762592308249761557053355102167326207073569921362158334074873664938731363570985472928747983153807146802138891913477734759625017241400799434349052869523258715619897672793843311897916092621416735049441923333789546428642086374565820085798697623646221221663503103241211896642032370444192079114224129975171184303026886314489047581998840631982412912883841545997914508724828453277002779423081266871044093706005746486062712876720248970979910084697359815702145735585925464981727933042790624942641206068340605764016853267045341877560723254128541657994322008842622888664863012705076936037414713125138753631889789577654173679309111260505922226439010198985603177471965831530754265593678762023607326764329400759800234734096370312087280493736664994983418801275789032071926869694623851955033172471963958122738812998618568344772088081678788657037921671185632724705719162010974804289299494487729741656651629290265624358015201456204104775442490514095845188527424453917041269650277320440949738422780150831818878231424672686682010309794032437523302137889424591502794288454050334535667918139070395428279354245782910191491884830035170042236101370170686880076559730743053132472813342447871001832955699596569079666500463923782181867027544795310129382006155877141188181222066286842782168461594223474494726491265512938671223037924085335259725138933842341639858473690524106215522411208839814998711031563460076128319503209855556593691917883693911258735096350716405325718744607665130147102348765855506002702835888630453420185529185156463786039249499781094708697411531070511053937591889135399038898971037623898520703322339971185267457894845538622144360006136975568120690929450074725161247939828608492687578774130278657488070825101239784890678094288405902681288945340355982182343285410685142087521071869797708193928049082780809936907565601407606027079061967902887702823329079861257947338743983457219951546457830379026563869774177717108373112389873851654114785686521873907464967242911691936892561574481327657680879853659801354461001163216369511364803157031875700139763813529881498150098334738952364184736612539506906750214215611882433779019099003679040551850307694517342373419692103236389882940162725851689333775602733359206106766989940133048854677525639552998337193217212027267682901805972380522760844973962725614637171509293825797132485008197314749529216363230749823741897756322918549967780165958909128348584893839405205462348173009750927164727232400186920115350624613965111190032005021165503469724528745266350220223046889817465891342271541821103921425183396428042278381013196110431873346700404951191704833062560661808167237743548279186810730799779000276288451941131149325400398745898667655771464195546317984270261392512381519225095720973122822223860824996815809782621758861510940844642325403568064319562126637226869556955539034357529675501023307694539714599466407253790240312160655520256946565732552694559744111254951033579060256855168131618347135212702114879605066961611296130554227833339717830422729372097457727010587494555629396204237015058897377015593003915766199773786762447650491737107747933710776117067177350869439394797680097407301898064042707230077627183294423016041472202345525731859557590209686052652447431931116442963937334419302219853148064342965940674837771060164511776720073288125671796713457238539902260531618940497561672569095188137397078181885752877649963344809452406810889447108071580568445227440396629323742927726194899033496938946319019596416828473481805487226800527032719048002989071470063995781888839269402300238957572321333073718828995483714552642342013474058171470144593135087850021529358058225142862387671541584889420801618330944996902322888341033298849216592124081734512336619205535911758806427773495259794048991042263421729612063226140305200915706570617140583793535196233608391242394115564530953550341809570964823718739039763541426626831883642367763658819768081671807669145729869701827047360283029762676768185239670329409069810036167843831136274067943054021548530160052873447201097771459435426188562374821485023933471246889803697468505456424294771000778072330235048374378550605417712324625865988527477040956752607147357692289327136124583619050623839930957686235268407227982577942108870913251200764569922997440676486206864962987390931358848230802677874983583263242393274549812380065951732566296649295744135227746832736260557604673343793345656977104255250456957819370387907530939939876188721585024911304597902991749576423702081611432288747822954564452905277078642056992500537145084772023207920128237966072879060336082847385545761427321132839994094505023661313230781658754558354574881472907676771043444234758887459270552516488411758390265570668694726548605497379314814610614895729637846092909720095728318432394944758461723594848216460032919371125566070297293465874875246793782805039636643886888334478838048566718979431119467694079796902997634650887664811058386175770534397753908953325000417374755008789690388112190293747916921666297121084187353555313990211911888497405206043369338569986640096928275760998253706326460765884239131310514013660345019684060866237811874751958936674825438786154872857062503611766296676653170349139546146005755976251354585887140369408946943848465146253357850182121187197123826927573904474548034875326509536466198397003106749987941895506360180687927908639500382150109845633138065722545941880359989825097164028002362322284407972795015916922523761046918117177181939564347973540053681389292536410784305621688672726640696323759434179594045608923192804599537278948668954449084970426106902687308613686631714857356460486609911756096140757425045894730696928340876204128545627767593196044046288551673510093420383142807582918707753714600055826345087591316435443800603953126586251336382294419172355049782727917346126661995787330791839071768052481118308465719043990774224638972068366776212781441028136626791103970698930793710884958069218270815960723419139577512535231634019529728080187198796433643716953495459990026400053955415679519279840903923061198481993154429537671774621379427062095716862416144160240464712116357066866832718101796231588732996995787141257231262220277281229034008141288191016912760332543831055099527113405613826429944423040678476908294146792704073279575749022659118973471246885669204283648461670517604466660366488460180513275917300506658622108511745682453809175233999367189943641683889903387732843651351956902633387061323504226037945552825054111469203217189074142810256580182365559031665105617785450308098030697084971720851074767093625222640895998161781471676873921076862739493469045771166432792781169954453801931114408596237171072753976836951634790844702996280580476954555435930013759814295862074569512672102942049644155753365591953873718419261581461681525597348760149109980639419064733924180030322206169803445841790151088501734466189255800390470472762729814908142063472278852467094511826111875083774464039877977259567873262805944535453031694007410255142735144112026010028927515194879247841768878897083792702672643746698137959550908209428981868176002429991535121283719049741712154377171612867476710312173513123764277883872021582649295753599633333207016804399734422269403543699812387115441952638295070656847635184485671589066634427941350540712723412023214198524586250227227779790341396768988813556297686826398078374645539685276219298866213707524212769719217909414251031664444152176755284305603109510996030237778157410847772197936918757683776898201378536960940691766686887658345015687838818637671413337723153791804771551388881822492435549627369915851521894040670158075868230596850376175286425621127448757501222691012177259492212260016426429507538725940269858548242023913343536730601109133089403966454655611129239313326551437949258906038511108583170622551998847956761667544197700073386965361938459234972204301162615146722745568998204269767553651438444373010768838933201563263005868603214839415265630288822761045979260861187588461769132198917130101783056112417913458350752235278236894944566416694293319550328906038334065022322948920884567555994122807300963934168559404618793388909956084359181129484997513745678296350859792096058184938271598810463126576145568521825015202831252696518210331273978218509125560549953953561883177127144108179250166316473616164559060096869391336645228492542673987589111581839213911502233062970262086238813430842481149204815672171055354035336740208433894213077521912147122658256630148765436335242526327060937903616615475712385857902866069944978447135600079961796209080463900483270493985216887516484013620610841077861995465057909670072933188701826252289873424230230879847710127407041703934152225310888049275429526360640055626484601839440710081758373985544820471606207790916978547509381063311697302923117237646917305330078473797665674308280648275031678484342050846790609028143482744135648941366484458538747956777486891683779192755949442585676636636730994589349610128322725256179189511439897276730469108814917114359091066239261728562239646778129194166525517384554670779985312644850230087463786649626341580006824939884392370048156648795752264537288724777292448597193490554241543714609380938303112348696529014723888301552803341317814443836273727755384772697651000601034208196005386050137459607870422316677456420546102288447960197444124435943793458706365611458568818889786115296015047354653254420061344585598329173945415483184214530795468237825914209928042032531856169351746561311037926988007043960458069467273184082131406636244430554841396691168824546171227322036084105006807960379180171432735123303075308666001329813785926590150167918602555380395095953201648888590656615683681293631968638541067353041697354690740576279502427734111724370108947003558032470639786142980408372898400689270880820190880662832437179695154480325127970888664531592572846542446751712972272794832676712494006513383357293175966662784564405795127815920120142197205227995829766968724178422449196890256535374048153536687604945932381577317023679358409633435233760835966043875551389673922940441055445711696026455242634962439792375502527792686138901380281290027787962828004394935333297634584611220258216327822685227134809485864022865583052545163004588299780337983021348623089658539472381548520647325271238587203671895030424578133957013431130972396971325779582321646054769808876733198717765731142873281590470544130746007897093389751452712349950203903068999527816328387916804662287657675609554001947498551651243175892669253969832185510283346888964242146691665657004008219580069992229894832220169856011613490248662769089516681248066132776480557386976936759478653594551550253706361103200452984280607949175110069554872097557577768680981984730431066842243235576220493245867271420647681412009688343641415303130164873717962908996032951087626818633200396157334634653374346317236967407278961214758624837977707451975911503685343179114934849047310397685639911309731835915676117282615618443883243656094861055093226226115660133695315757522543545633802455967711705976615900152624374532965947106004799739995242894901044292306558340366596390518735149596421416405095160651298898609970796154677027181328520536487042111450899298416386218248050251721075881974274138397719588919966112803917840505188561101817988936480819631158386078907718830574825456758684286742331959818308050591735650624886080207327800475378258555057973513500418250516115961532943955048580320550119626423729942996753335655918421695907271810354925291156295922684556550478774231739891936052385790941031600085880268697480430926383156666594208345195626948030518032332749146376504747134560033218352006875329373735640215888593120575547511756218250078766482242839635554601054668531114198255240940911094994859018224187877394086804537192668898628779556115275846013912896029989002804378496629167751379307133505880183555649850698047510282947309602073293267499023841466742674739825117639896819322818793850743161804026484944135979719475925561692861329616550252125283842911277555003438627826714540883166982423481249992409671895883824143251287598916186378045164290509575167205021842188017131441012243499044636679005529942635161028290986035906706612682702093871647894963369912826607578249035924453720254286205450554682827850191602232010602484632455647233066557978412704334189508103803485481226153290224246745424544743022334223650491087777225537615591014613794178262984202548480050521992146174582912750573143737340983876883460635972145560159424520729122612430530531632171720061403893791592508835179071337053301481856676294436831217266665596576601639378310131976088922997794376069111116425056191659917082901653933736361072423422392925415761312815439547785023549619575002554155254786169143028311696313877939912562652869182013137257262940489131780015370246164209252999657269859059095213403265608028188275639840888267233015579016377261938099857774253884359846274266604756385786894903032984812063437653234914453482617190583588871183605690574064425010279775970581121084395709695996861939805486960610232765809882449592517059283775878657925017250887438385121612434864178735820197801256590366745151763042369515855385397012676640701101307160304418884807999030249971499133607836356819718002602096511652936869945053477771359084452395618512636773776405271034552758598987967014485097244189522323874730600208301407466960949765703187022077031278064293972935652213739066957656834231035546589834293827946827487237410245135301447948007871122679610179843099993288310019819067397213212526926162680738548534314681732422243207215986775912383034399072123098934894615433497077813083290650687864103242975357275776089142720574087110268317217830134877794594557894666550559054411956719321322000680238091706280448246431302239191096467740011670875936349413114342812790408768420943572395529553708278318368698958134966215734142165967789351219712775052970610677124384449946090655005279459391193282215939058158928173973918131840523986464805514898893059800659217188824567460745906035849435610035499631552231784182934927758180227297564886275139420838034640747820123827467398375782798334589365115992618008563463758126520286322883826917432573297029494621810964811318477248461989253506612833993032240186754761718392338433871555476870965284927167748409371923537885036417843918396351688880809603095017176604853553101660113756445976538642194353214031167075332772338268386445738270086994596357918391407315581167662513135436581740576370689596872319045367334148778106578458052115333172386807344466113019515136664535184203934079152546663547464149818835909380085409241076282401716382400347112384381464637276559364331742771756341229089315111864000866098521133858233015645863358566819597534195085007852241462753414580926483968015707226641317467801710951089913968924974195675329490534600051164988083475136727005966198629789983321061732474140609819301483209494132450757450963150340873339799427099730698576162933497104315870435648624309368009514856565474054502408149833061466294081847793905411412353702491559450151754807871911176920056447756659528609386018590192044347092111356986635546511310491931342558610046939080650244185694102585462653938615304556327702046053616917596598354314196359287054203592130298841440467013517321151158895625647675765500296296636303448199810888934951837916989536687060207495446590560711390694542215647083394363669848613184110731916974921217552348996076887688788745374661254711834993078167273204084808025684612718955861880126946988677040506445742757195743824346207171475217284326803760142130820368383385455607926447297897845810678657210806015934835869878611523781470405952955588212482890795024918374395419285548709480280543974330236479701239057563377607275011818261356322185089387721824134020490813859074116412711635231257287069870661303551390335456945078452230958209264819749687006593608079866233028692919770059651521595618506944760033386353976726036745038690149093223439106702021217834168383195878692078913141530821352730145977124591921125748363120304981869575540288883743188606075276700139104808790223575694526184770826571025697273259395409654764821177103350210000045016844147638599725575918536632317342421607311692279087401002476095656545289729607252172761002672437475920769596835481473656293014175848627230425994667765669460055064048829013677191171328170581827292838848203294059775414009675793052298540080380772872923343355239269809258061029665097123757436285415467655151972607875699670407556245829356453739875117713632232417044278384291008814416004754263719144641102053016642736045437992096256331724828170527061785776545665880258201540779647323168279734911434652922533953448462776797934954142632184132764265921779820311195141071061099160268342225786111460864881828864838802000649555537061230533354099232296489322266904284952202720562723330924920333063534279950787601629593174858813906368455056811701756190466503958341016783280722607742917539565023328863204020528185576007345644169259923263067184518513102122316792470483754552109793325993790458651683027080380863406692129849380615360846645258760583873178319230385960086958727153549280200750394873663414081252354826017568352139074158556841211904642161312632410780922116200637704965389058047313549727764007156931322969093989897049309699349488712396930921909491139890872148923146163021159394342222493968467125081171350998013079355595107810923520669123961643362860046749775495068963282488402453139779287541685772557802943717442873467720602072556155861352270768166594600426241102644073673143882774781339946441370143087392371220754003174969699767032090936729716014150051894788232151692987599999224992411336312220404201845979960727789344240712700173893781614607299882980409814129855277317879938052652808453613627718738830143575303225072340709670573726354914873697878448514795243409143772026412582751088195295070003331425803951138885708150352028248869737207820489216018163247898609179816975499216747714692153559819374617328495137643762122903258429026585196963266461080935643558714363836043196674978567971399970006124324554068051237413288118770693281315192731356665008033904903654018201034591565664158913563273660752219794353926068021367661011973398984532208046295228965023118254479520158278174873236412121831911283393239875569279472394498880491471626434386740085272895738901457196769382223090773947001863844076026061053348284411720915141295369030109273420640304586123417926314785018942509991812269641657721632222916085202387822561155043494364855295734009248309096348233403767640541166987470658381242280359973368542577659456333263977299442374132991234701690899979471823682766465444107373502377303934830014431189093379082451435653223447189554521368644561788760428655608172272085671373980907542338644541230534181997358394550735026104667659796201846837009498732858798252852401262716565393797432452668444413433386184891753329616137096739468849577334242934446384888961587237597742371737112632444494606339192394292539527993089463051066303917580663206807873517706358583684932355424485252729291911760557546485059776488618603646257031235087409876769973212494282442295006593315980849750084517820030646466345274478550594366925700084111631942587527194952742715696982240488235543197268611154408355917172180852848723068791535579196628248780186629305323437243069654742472039995450560316757221315790693596040442531462228653335302042534786523480824240490490291603908108457131658282604395062601470623159978527536871714942961787601343828037892226604346372243770645027662721236259133953390327898392268488518390201790694321694962464227890598443277304800516528432961483907616510787366754275961046819106151905119782020592398056075423081958487670403754388025636044531786295622336092743758711860189175578319712541512592500254066229317435416372063486971861695113548708791111110349478045212506215184520299223165466600396051386778851407574193538697882869193194631219044616850800243904876180761757314395821060817472200640948947481841922636904846501213072288498236817192107010803027065286338697308116787017981313156036089327779939033367658017708073965247833758576677272838272445381293619613987099787416593306166224572691416786560081559800701228191765547906276735505142942181241559093452038055375701533835693669778785944910496093416439592190669279087248989609823194143316303263975406971009080200374696394454425901136781903864716700207747852848749911071034691618682937356780147410916987674564660847817134365992892445226100333754885905592347743068374610517791110572960372420792037524634604041149937395074321915882534925721523967593416802487171378313677681763877206624438088051132467864807555068244466936949213556171111037528464047483121301582506157396855818371418114625733486513285232160607120250042234751559053875115156679513965600876023803865947380968315323262821233751038094645919110239539296959201463182684467011147551090437198548553831978061958540438930880765311785783619200633856254722171689417445560675140738520738312581838641355619801562829156325187721691098023765665098985783929614736251865083397221713149222028945286627812676779146648303619325503622241438277914406416254315100649912890300876983543460664277211037792452520605264696884408757644124827172523595224876200909627083691576606384878142164878078791578278209377369868181817961699349652008112682159892232742339552212793299716954305458705352114744443836688811137829304559574273071486296764994086505499953275507970079233571847228454427452570344117898625478974430527638960596916332778736620794317262305723646459490584199055184425756664432437179634213341133061315673847389925083739731381469990202976512494098270168683787417942731089515484864383110560864651897943562353640925570300566660819764600485309530696736864769710794400517939679557847173022232135764593814147939004437057842468786425970968535678339423805552397447411888348608616371156168058001030116413595858635512207508858627665836826075062320862160621184360353721406594871073789694517201264979190888542995422689226325122625895745523450259293947435831241799615541523362600998364725312456771506921648734654002154997105906181021903478536316978383417305797918267155385236587568970755195112758442248894357913978102116027197339291430543962917293243174807904747305104337654838693549968612874199510405982566860929690243305962005766875936270246272040475279157188059741316137441375184985377712790586659445635115951654458066169195937621525928844852288775996002656587450040542474039293157177236444300123267513965551527821912796066189814711182473600319139953137606128020768873607504882170470359408662063094964213336565042714151172198164604349578732455809390074261346799329943940962983103153183471042793115513362270406499950543624933953641869167333509921389149654677416046878390356177114480009377347395052819492673447261281090455147895057946934020922647664920844406523509239552147978789569366478059033762242846579763881771510513985396097070318350168018052911956418471344012589053647667846012762973178157057708306788690513997027214700510259435779564450996826276877541489455894690190049899816087296795525556536726138878763258977284768907963923965622364137073805938634683340737244895770707220382411162806874213549730354222734491285759514038126287245684266103853652586374662217103638436286605572069980420978011594160241058267878726358507254059648611256076941927867952181105258446764089701201230156751827916085379026532175948901129528157480348610430788990567162632027569342857818992503226458504531128803959250208951419799788330244018305032053753487747588712288868414562204739490919656299532848282220901842932178540789087493439799888916163640817936135147394991910012560378058451014023796915508215401499303501622585996085532047318844434022702420916938745107402789979874947644677874948993875461932974130572436814601872274594873405758987780280466901389168161672886936224305655407824921378740388812831340699907319702090342402663505862504512458751057360297900214749279741839799655035660668132492444909011502017808936064441740716069363948663697240549064021036515594333226613770613958787833422252118175351193623715068298773026886046132488842862336262750072232583722966107016476328171966584503801020087478350041647378501386480198690296827148873866014945507139677397453108186331852517859178011691812734790636677771051997120398102830652569988839459189170425302990183045500988083888780697196840985925415721878586460293478326455718774178610443642552635600749244023923550912817223711562920983602052207649073289642149452872353635886498861060128726947564459758412636107591974704658532238040215914735894217254911482458425042251669320509561276108019245488768083118291362535152951148355770546965730211369318618760772971342588987390442727981531946015912527848340216574012581795054066080575912234195248017794889747422959226506463931726738679245620464122520490713802608702637451308925108354312149184094759558690377719007725124706637508691705788989853849149340170234277981373261362201704453254689656334426844138739722426964797968499175368273491300108631157714023017822064874918082404596517796585363279015946794588901678625091656088301412103239658247086262371660882061469301231209055006889218885647028576145379443451868512789865784510334359911608125646507296742701638505505721907621850225075475530238524390120914927899878814818058222622677632456883376954972801765051951032176801767939524968215546371722589284490866765694445926172112300315195628180339964737629489116012873814370616822648995872062555046386036056122741215944574277473289906479708954652916209192425628812956261307060023670487826337795536749135004877591136892625115788336654372558363953106204643292785559273534293773065147253469273552611304641056786408722251504413066834216892124826338052858851702723516560074360246594045264005913820539942176060659842290166430831435168613228539637174554235230070331286799617075859932682921277403102687488587841305768072335825261612225577524441759225170017956338546549142535004088929130743590480777329122603748564511218324781347258992972261947616790541906038932704013654058881359290407691241986496513207681968918954992388311525332871904756569150711477533575591584657893486527431670041741328053447274099771073987402112922713633795441434155952154150357175900632591849445261712413709088551470412238223675649193771668009411328971425788075202414070212535631067095490958133759897114750805030235616996226919282308650547635695998946663098931882383289461929220038948356545561201923870706062098803888718076397289985049330990176692074172690113923717705694225254812206790375131797800506003280343961335470653829310034122211296469146016612385283969608391318916734290157425584295186628744459519811567862601510242838995389894710373545998309153027270591622343995045847363403004286730576541995201879362877404947136214448368352754070480134219625797457785597098803385014362063035071167569636417866228061460605797341162158418919812121073399627879301340455969892643000690952263403056593772829898358882291744312788938343217933371141773223334964261381654574917449537330856594875667789007291323599264558486250484213423127528365515180947489288989097735739832792959845111514641662192456343363022057168896683430720525832362265994243031038517289993824584758974051774500931802188692841214458281931476573122018921248751287616529677432918579690818414624645689758493606641597416910761289833011436611268918914702598729524605492293301360890450084927677288065061568376882101303647798539670049715608825742855255890562827679496111411109377675660188006071074243428304658384019642376084298799359817888132554012171641547402795390455635984376570460734208256458524891403269778030697141743776882806719083442413090861582692632659465566137498208027896175200408991683758225195146998445447290976686122326996600483777435350388856828722247418672323936735048254045455422372608910668338571025350498409371617052824826018572411188543659128446881763655529968630531744906571485971342666183681385808512486106702620889599258293162917159357669894694681666656033931587390837585444404486672031372919277327625421986328846535372925677765492303335491971824334941198058291652138677865083960293183146595048418158031009594057192123124583376385013197062105266568578422637422697162927490291641195627529594605182813115490471638995885525794819084715075974258321457090689452959600662589894382360194376022653927218387173853683969267409152464838335467661554160962252456588148277593994461563757870060413729765941548770660339921273223872559298682445211995730198041147145200322318258717011669068601134970787909083293945419980327823222695967357706971501019639916306177342821881861699031827593037285143907754115958663247911354528114211404580197830321509545764125021310568486059317631060157711873855114944762183363847087414887866202327806330355494986412306085746972635481616021812806451704821815000937055997312726402888934247550029912340314295826323213397873005082154036575933010506725404351422469395574900107761408215352279183210340795506516812326523585665150172588196554958866626948786054941284845474084438898100109467351642162531747659231464506857772920186290211119228487302242458862645539847926571781885639224747190282119947389882377621577212055496788291653667399392256819844114963956347829426255948114635124250086433587149429001504155227913775243525037671850740021875975995492783378678376404926981993204238193531136536698687483376775258203986498606397636310258699204535580869944968506790073566213286299539379148532455197024954908851553485815495186382472029841494078044979611420296109248083037213764984177582841680530733156091138678871376997871430446480880853292858818391064573734412267947217677407637674465555872570660410113691480303584115234042174169639341007934466848859271181363476895653370161487708464430992818423189467659255869190959254703039339507071440627550042650864776336282868835051085821025233831103687165778361113329484451538087772436409027760569559833691291526864034164554714478595617728378646804283297291624054019980700349896592497598759627952423546841412370761224796489501740583052500434120874904959308584287145014750244849701044850563828813300366187928906231582077683230135416696442785543399243194948231402708779535690191048916677832451390718222400476019443843148172530415890685210280503590616717199239266987685281483171400111080746036567449643711604685936416344171375850701950510954505670042653528960628484303860521509423206505461159227585553897533229295626073692090861747775265451028757498650935986373836335422994421400687686374984442727697816769269397415908911260102348974904724369788207864899325634248927922989444603023751923121236847634417713745085697739508596829634683580795203588443691675834537227447012889212131781738071628748407122801093968011676035833604622550421135973129985950741850218821888729844674861391270560546287340196540888192685963559050856958039156072700856189303873200542841147154873436022783318369897981766729767114294898739883825930874053842523680254882635128924982594538600978348612687721624485862630472329731741781219653436544102357235296515523303867652034513967721175148789807778768367485558321090351813027067631073344073329948224422688067427329256202684822202779657965467495070972853654980928541611415363997506855347837167212908281063528672201832679595654885148648072555852363828552666793125430423915221519108317832264693833509573153128657229510722351057802650576002715029628723536992962919346068162590515392458179090901051505651293280418492008145883696751960004366665452031971229371142320821601539818640585015005770653890293140646233805120049177108618435489497631749142149018232721669047849424300087035094923897788349734866872399164472945165755528697458543179966563659628356448662750547104055610810373878491924793787355327245763825201434835933731825695648072894352042941861360961054294245921663480348117330713679610224449147876889791386708450914687092711783077892328872292423309568503501653742762400728760375716865186348723479123237116249981142249588843507749415589771820746297399846719236675330058759467634409095459265619599279283842120914922596285509521600887936086782168047679326025547901619217586184732795765539705217011657397835531068251983208148977208733564818532131149945679051467784379722532587361503982632209971020496770087849991795507781094260670506572470995818612951797739706839138272210361922167987389230711793734223081248712061831077380597676687416623765978003214770001282441770372450909945896888859333780212094658267603102779602373944876292621983500329509694026147889521478857547468406679055440160121400224412996159784119070197223016718599808057966988942618233354237324512635563889094012086859347029756733411114532022745563600285975502026338592818567052142127161423838378076333387827138687741148508548050733269543632977636797134288956482499365329629832405679930011997907775552397224515690843219568388504806789772972521016788761002453550158360570874127398855762796446343755940651348712500620663536770091304994394225030437389432011751307087785139498482793535970103856857123044271689334432544750626930540873968633794076599518733885219225206609326725465623025112711853909157436943820325079727711917863967713462630012396441366705898730977321529217779989690557227850346716659998480870348392622058323559615153859012792875217432686380687260843544666557501757111084676482781742899496990604520250217792065171948689888141875422583245051160357879097880731638298762207905604480225395068126772603644187561784814550694146929328028635066360459443744508004870689865376334223972549973477711033395721609333261583908381941388195892913037580259599741926319813349867349350258618055482541633751083586443935673509935399180641035637934307732858274232738350867779785466551867128318787363220458094167750516069172663968145027864514201423590093438765502368731212008499961201430601415479746520322858322328791514616517363791155689085716782170368932205164662409611545445783724689422194869735751330914156393717387163202942489390196620230025855004358833689897060664234096122329987785808502427532778574045047278767416923469935552079595993915461735384029967217730669580892078260991556507650282095683175386190738382741537383517632225520131333906472659360052943310693760007911873728247502773979096330384323248055243460016882655606690530312071929568638060988036410557585541989552114066265908550274198656718268004890253450798695824221256525499255071051946512505582637494902182193512626469361647196294690510232871630701806008931212906398557201210531621911656471677961019173891113456474706363643297807833745876533717293811066514206698095618367901484730102151118227927964827794749771443965683089036547391961824606356706724877614644951530130524510166309758265695107832288185635161782804756239412950997614665345966796700955857911748302947910173337919199014418635213922591436302719526627646772037294530089455223948108050270564829089008147627039004507440731019665890247924910484784791455128826114682825650295400217014857246343343997940474710593162903124651921263434204323684498771517900333872999160198851165936012723248746563954608422837525274109752611183759862561728021468996731357610391770147830610627320964687572837194437794536171163379232499864882898430766117017759982614193277294514138648801734680544485785511260024425641518162303446063765730404738882558799646421017724309903778692662014889372408555686578842733523850106716166674449187668137466830838533164962488202782194553555850480718153118432783769845701515560945163541770176679997991698659048793675959709416692390257182311311361197457890574192485281012217611372405708646337982025155694839948334651074361836846419960724882928760180770923747154367318372837918233594597777176683381465074670489869961577190277257150238550815882790730188820420513316932656608779394978142793784427144275726705951963286768890115504289838477908380093107717851993632659655968180404678223979562903726989204133789019779338052304267486403191539331577751677267823193993790175551931227407853536768411820038506077052404709709612703098455509915826795961645115281587747896175431289755614581588918080889085290604590955281376377336585061086621605852554621496603389847624403455013920864045122618272765570541124164835800624955452754999138260052824901302501986578707014533812749296843203242225848897797245274812789517528139789965248756920715107881326363127225658378705740914644267443731030027714382680086552679228886055491108522630503551788112771701077207412437326956488220925305653618080286741552969332028099167578859264407503720643604714438052275510336179684801534720530997522575073842243657983630290338986777502612511330538051166787531630171657364245220632183856035829773594083783321487517181824685845700540195541296244577048303942799311744020020380895034491398445096448478474692875397977856642208067214730590612294846633541924472550999657899230504223125694009638054262344112668844971499489057480895867280767370346778195059012958423363030536242198973832621288231066601955403440836700820029874084170998666121813895768859407762179952229135782477637511289809486994169094721579943714247559754836424799734352216300625932805909709972688100898802652667849369574136477758746584411098791124002073988078424706605078489985727969746663064807181760468799656457076315520072724896138843055378407448684549203518320577387107050796499164956230598660342361851557429006875853840323921413227243345918295621705537071650293838834161927231706927791954047465879520932575611895302302463508202958855675803970944037043294956985377694023730398086448301940821306950136162641868174567956171910899508417309308109055073640730158916996250959935618578586293976896687689498278470796135327380318301965219082420981146428071267297488205271668234620879530297877554227878632794547298421822468712444697322024852407669050935039818120303897363326110104176674456269465072331959870464718502442418448962287329773319797617695332210813847552000966206527169165323136087797547435742541175175879969351985041471611761963627138335017564133563886566770921134185872611186222325191171589668574819681884176377590474213191761561814124602193700808935169797068352115409748193463999161168840165603820378884163945892707785798579536630179264457167511561544425353590298505653059467019576230350707805566372742565352317260479919667408820919740450103004573431574455580182456341323827256937798120531199094181742398549225563981259110559647124959758032671402379356118998376761268226798256396302084986382847625629811171141191035913549133483235053820784617352990048871668579210528266953706639022591326059494555948685163766531423956019168036041704501916634230281213834703048018309819389311778586214668384141045678893289855470773544362131924152005095018707837440733920768516228396779720291456427676066892309359364748643813596009167988799181287125436841892794790822863115483083246268236584560565051188978362298764405064380987490585399316039854016838577097873816491426799118755226334792227335860866021745903069094224999043719340227117882799074330870894986203057162552921171573012610313133795462155249029392386869230173976198606447427486421583538900906321480021738199394534447090100991421805469451291387888247659383655210425079870463453743321266825907079795534808113684441122301160411836110273902291624102891663286272740085880747374518964739518330541690479721583950614196984383507815717050202000607881680693782523797688359155357250095449405128045889735798714086456024911755151243101016355508889278130448133052977565537818045618856902471788521797041768727369186263679222800680111209680492997755199761182118620518963371812280495746865127862313115443476612697246741801080200192531129174654950108238739595808161720502990161258892171701678830280724162661598712155147496623724464581613492882491141393476121378936807479024970638308415530031598691254883990006654087519524408165363818298830849892028869934498058865384861882767915563542128456411867878731711807612576901923028832178874968947444020802194493166376370191749517738362808006328147769470314338279059750163801855867281936437031243041136757680421848606695427343464518961436726651772735008285115105731244934752519960917255432203961506694524522090646031592990428034724910565540517163947541865876373449722459456748934710825603578759414853234590596577125140625701226772400458557830856734167236651092215409657563526363178420819147151920913544356781497290073799183577484787708987683897556414095601781082786685315346282118824337688787627292260497311990181984784387863453728428349332684292392451216859477899566218944922124252680207187320848322314915117024714078154383653728029721222716963422222665162753428033854693112440365012819285529483296355306435542995132812517616437113560463171689646684552318961960372025547766160334514643028052202440177851755810648595743777608039231715927307294128989566682381830407677366012197879623498026796210910695692266398983769377555197529684544633055578766595380084272481831450039318152765264672803399432389020956674542841143344557259607330067246697832944643599023474702517490916212104708322903735208709583338591918175075005106994977618326491538526442197120914014491587929890551302621945475164572831452307412322999146377672861454303366476822413084236039666256115513013864006135565154380630328195633070679709323842898529220343319486350893084613652392965292356781753902106371973788667096207081476328122937671093297259161672097590763960639812001298409943958232247313907926176410234957678802794313574516199905320949800126956221830433234020467376365413460699605572162461342468040185514758937206143227280742385049991366097418887278115080487468774996357732217917315420867804207157364240544009827350730652864572875481354920864411930685015032174740779615344842162932747207247279392902072005559415353428374383809368228683522179872369788656990198458509348088471310700821099777248810452002706604474492202051066827929840392986857104012232924329758682637603656317694176186107424501079512833106150720183730715545242918420113680890401477149180826439400282208670752112889391035254243418850988761953320891083993916872889778828329584802239246857962565337667327649791106237424254712929458187681500148119406035183475076767388053218520641391828464257848296071567006415597859851609641316443470209638262278080249603216415394144886430549452774541361481709842454822990608128249337041358612003266786978330961975440505185421174843640910381572660824282303601990341503458035236630046551771276586400094380379330267536272821711326935576782400895905505271555622650658934690028942349124685644944564017839303608957492938710679933734221144095327798839113472003657393764903955238021113244691929651804904273569830497582480315949111525213341608921835282676962809652674818337246431552471623287650902805366921499753590378137723943925673279458932454603496796735773386329649915449769976446253753132476720122209529265749552643716341291952174100491571750722197020141257018355464736139568419565747923606980769336732750566401843978898736978134282648248906275659387590444487124435718067133526253930431261954960340072072830189528715005087095787175626441673738221698166132237752027222489547883920992510803546608437404780287007481440574938546292028134621944406191303645974234051336238644399173191023990316460533986421116943262370044746533614658496464264323430206144278611663276753084388617719507034399715181769050816288450682925536019974395187542763156127568572149955904683066543728711520051941487866295651467736731261513889687960047769762938333660640052019889746450833726530294485319212110413752029139096239532259174343890775701946189113254386343106942597333534964500274902400659385788043692052180890455281998858619969031796859927774548394948525753160738642582658303309655123434225241753792770654837550451473252856022910639169989595615742350130744476659946504189948662897687573142304184429137461358550910919784500097188234003064029350659958804903773819962303964187104137926575191983561045100200834530348742813906268673512957105334215689558418941111327438855911377196599142964411881827009600307443666200883761857032675467962855380845281701728320667959218203428563231092838095824866343748997448126830032943101231085734060737731237261264973670218650469774311556197554244367402435317299728328800683274271045692123783904393263871949116432895777411047756508628908921423856891889027077754608689837360653832871616608886116484709895304233342815213906289817443537155832406604514121650064416561133800855368743767939627583083136260172595423301986316812949394202702724141089440627493097419772781758585089198920674731504412114697497303598078232869884597558644918515035097936143597066109737276004406726120701772459731422044331567477835657121861191299709580152793723497831974076276365712908164296834907153689517782389985937546476662106979624197689645944608706900607708872874200795671127589879359104445777656112899601895764130467300855768996765759348259134471241121289639982594168171351664812294602766891329153895787479875520825311908395282261243690325651507936036393990502897797054045214632749634416894941700768424807497651994143275857839681995420772166660703186023403713420888818701790461559151334833310335225300384626883196578264850324623016203152232083750707886626340140994098445164801899427160335717237652024552200782777454833504211003308782000376527860597523439353772634447488276737939084587042462952973469018633407195119988382771138606348568017263762365916551833144005710471582185772106860137433063558321867398491533691552111922711246089058870096287974317708953401451587066220013711232744684716129805712647142896021086177287163598861489123636461118281902681496076075378930882649318013473319363639470661920302061828717678825234734798768921099781379874798041367864172404929376512893071750728861641183740040272459640501671797595224575432076258635638502603638756305124675335820514448806835611523394994412771589721954008894352039382407946055362797854646721931973980096703851963254401070466615427320586496723982270255729508066400356901534613322043390357993221818720108268609508179221352037341775911779454557671148167918004129097815648330520647565023354751308405368688443018262815168109042158961593662577575118240925506298246531546291842511369133749913894035339459378060914670915154485387439473510807540242977409943764448187015802850348303238366748144308821031533556536740445454022824124331231774420547861447080407938254968484512011668559177896971585488118978801322422968293484648036902840836441890980615494892602939567143404900614282244041231874260721014861421255109501158129284116504175887962989276953025499546629970525836572241067587098931069440389989499966830359795482283732855914373546361577356651541600282364406562171587674682363752609630543078384958215129900226187210091779457322147723854757607491882378185427819686577949238359678216438157399756917865559587432619413093906492999216181625922236412763759363407083445902256154927128672289891141935373778899413840796437963037359343308760244587695195471331511133039155126909130611102691386119061274561836095795500288543227962840408467603153956396658293713010241659238771442440220046509148005057428975343974874485066123447836423618684034657321272716103222140597321664916350810189736968569798255952453294911360657972008941258639274941472016790226813871282219489792724830509704112405966009997953661368918235844623779571392466928783838156052751222086119915586186119360357893616058999533234953325342139844999421878713940707999138202524754753607154426143992898314438504119042456607560893130310760589633648666173950949738169010374026394950653016747839679083942034336097027406705232182647796541048787898525735164178553100152632138957015155667664122058220448662508492715990421115278234731295885169670783795130840204834146867905270697130262587508217568345998538378491160319258134112967802908520282260722192636766194767730284564047009111020467394272237937554481300785263601121253097511640658377418017182333880363742525122271972743587240527725555563040076944734029671905282886559134245027746773289018266659553820702185763225800393270557588236915474554658745890838045660207963718749465818457985953694575268084293895439659127961243272646011981845836061516571897216332550165614218376155855672324442321052271518687172089657224804357742085443988058743936992187980629187255538785873196198797728914075673368781546056873153360344557282172353486504025382051959108291423608018401992199850179173062682044559759868727597195043299422437645476106708345710982620293383656755543431350963560348654291558223579408076977608167034055265227517455346712529749980785436084362152950382329366070148021496096381693949487854051794145974146295604479250097550968823197604084947180448052159306605850588948469639711154434272788443953458807628435584619477025671507790745329485566023820946840928912003164972447648325595653568788299041814260658492724620727079902338002754743690244717948529199523487089921173688660399551984878738801406294149631161886482740276896523307825712578863816419341845520884253572357823526224358311733774680090839755518702913101916809404463362935897456371141857552323815467427178413117414628002395705954934764172302045365966755879085882135848008467194485934250717675071707494014648317542139501722021538478024044203351641403519027551963945270987420920473022890177514681637571276361696588434831313992559136581784047115404803701227742239182389869811274024421025809970659317179024466288954163299494657540758686613313905331887535275512837024417769037003662124288428747293977241783372352396250032341861498163220588222789454356421504678467276477544468916312314653436023657824693703131470041285323358323089656229337158512265481001586153979947398103718006037123360409391361138920233705600123808585487354714154013178321403874113195237917389097486387394871534417246498413233753129142126412281927645747466653405147886394597493406035565218568041257491906006667083138537204218436012367620010579374735138037846967765500506407496178996608325901289615519989024868766807886385131242306428044942981660084811984267700337640382348053936470634759868287228862449997915546439587520965220181147717911571622624141139289162740729456437756097561902977267362275427800102223874562525626524757449000467072784739640114724961323606057095163154495531471900704842877926139035055854735504694878472236744412079820843955774479177959887315647230611134885875401033256973646762545989387420747950205239626039533008362712126498886071275664758246963717658181533758850954353005796335243538638825564241688674732554931403500379672988454101873896799124463726594272864159342490644650540986442236210201095087379157516524339092939362767744141653331181956003908181845870348567405875503724528208024443321401873655591948312069583383279964603326527692647895529649640856087882391458967723389086356869587535631820419421441802779543103620472654694841699521201758167825475419224776590907128313882605371236508094248060610673758695287693218161748288151053139536811816814879461725995024023560344947094120726615267204633753920294014786855735913468329321678858440480079979574886729939373748180901726892585410412400472139934491962395700826893539071737488884710788639990234757081335174920600657927831241800952649596956492057004017508864673922341673907729121714957423648850300796388589805141868782873790556332688321055271592392633575364358070108565775406338880500392240385898375239795932346498132254616447090330747731358517630793007099294906423099901392931886381071144744803303969154447804616022882280420978429303162277542480845105680605701873590544943106947568250920853518813679564179903032372851529837363969270545576204931417056567487905456863901970169671610503207698816785293639189175849227869557800854079884153942257619984517169335607955654260753930902190680864778635417804755063011667043353235664455220758622031367363591932934371139202730377735609066437862646907766099221243884156489333766600775633592158009380939151344049505343507186631732629829023246721627923760472544604845618333817211390859506232626635778691120471581745648212839081868138672074410936395971836645980379072684366818069177944659717837915982606250910354645950395542607364300672473267883536672365661658301694324398359372440853142674281203109057189770160921567743069367118649415907613001614171410284339288785940929635498390802044336243635712140489768527334963881167560148878516194496325349656427783912698864023124239475188167839607689037945935713471060845361736211180969625618524922844216411532171453029027400567181428246277388709439120032267292953844250933979863085875862567294472312613829166811730877003712507129543056303492119334098276745166669132031213744742283803593131757175352323513320659089904963592025038345687601818699386248705940546440165304315510488883592229946344399727456352885570154651836664124298590787004720920460498485930503877707254179299205200019675931173881499402581003525834765605907132822920158534505289213362705055993463764203246230132383325242929522391308911918668121414142767996693766214632634363241884742485329010552415767457980035431452351190463449733240528952330605914726080716362016824012168951069164864917137177766889619871884007932819008047851822836628607582559951973117243504424883920193386516258953173892229926574987624254568481656094815345288249183450420449539471804094786456057332973882786060390250877235942934386120725228272292025918619156474077695218112202950616709116563636459745469452113463001616916429060654297243872796910385359896394138589204950688126920801349495196082560435432358412517512297713335736175745202193209218438786172626561800020761460069505137665466983193541943146192796270172296267325112502873923260180898463356075947176137503540720370240248911778827226424607513503468194944744011441357427261126585130287335619333989593921548985456412366333303570180464386214820927615603758143758847161427731583112052042349502272963653812263496462372286718694003060987115536550923542773732668435163252012099704996831216545790750722792321694821738581346006814254662133356440842501142518881859755226653696586496120347753501376086829156728312615508566140823502059543313872972198883803927699673554558092530762146527728193337906935083181840033442065276410331118720226589569911206520522595405128432837750930096094600400076743251721302277309986509345095700571510295859153162707391199451899460852141436783086858817151518873188967184760721173981780743987244255979351172083833626636580133634510322579310426415971431963551329459854679519363006373022753445997829890625655611399798290840702249346786906385577192183438297244795513663141572419047010867581033750345967860804953528479480637984510367087116468746202157310847241106962770104695430860152333274334367258556427193737916613631733893940448832617994877961279103459896065233056386919105070062239237625647642269167206646206400697256065508095753806267129178946447636821713846430934055319965981972748083693709621117430522187476964994668258204132892410155375158866632458690739861279049405683276037651041785307082598797454855935961095414924765184475029934145769076909276703884844382116596256120707394992551480731292914671045240777574238889631798604853947488535286980052688350476689832900598386394306473357138050676484046899439960518446894698533992312086309896632732269011915266914568031147982783588668555137415294276632681766141079910461569660861907850882249461482717776130741478526624982017310504026827910379234757221811401419494041271219670428111037403779238218191528713928206402799355170238355465083728439212181852627545849642784566420563237164184405396584629530798405982856009157874792593277883532453734879932735927470010272759344798184261588566401282443782078923715861755536421991257141667353477875065493910921854890793519427398718735805110701196255048585432199138520671340677803468486766920686184314627747439005402054193320061842144107203425190584767069443240193519079421202065257384824285274160392739867728352620218178028733622173407745288191723588964144697601687697225700184008288498849647287424362495192004213088369783919095125064036142837222525379746044259505569056545902793333762112233029612871303492830332054669234304563640272834443439224373849848667044536121599591916340096961545359858078376294336147684759172436588302182567485063199917100010017361622578546810777376021756801851145155646472033313883745641425862833439712275422587662633890311924654060755357805387164360201849259692405718961654690001207219352595141990522990311838870146405395907576146767853781323982790164583811647190028466492793988572749355079826340850237530601217930169815298649658500360107131061652011451382703803778454211936524174594404472609567546070639669394487746880516687815979930731472823730693191401618217437936667550396837284809740412159231180974104712076514040101446719956268987009455210687706856047039756761258717916923837536082202986165043994741191602688685326949551287402277212207133865153047434053314860614549572493539104056742395243237912974184066056217943056559331332723841491367080024836655530373133265470395050913737504553001038662924052109685492401516361486651796063564146979903448438904468917182083341706646495881022202028847256931762093427723867664827247003072528506054762458823533170694415797242055994624928864816608626432849083124018003942366825698526662125718231189930347560449011808900201571852567201254743032292256310058618947209594784233118861344233201656580185642129467040817673086221110838795576420088849947070722280368617348192234704981351169690056176693597573895935347100037271190022844879369775923353453492182661344876147326009470458075363797861058395385183483034666967623498371258666951860924062491768587902311880271056032020554720585640656014971143218100577940558640730414993609535065663089691760289732610802580087265357544971009268002865841210849792492260618275590752325527136110987469187734869238166055275545419163805737232668328698272482010964004138080155053488588005909206897908212654886939339788268320952571096866261283792020102459405195040858071630572825902590954312331497722434973063869740808604845124951911542628964607889944001196179641150557049485381736231503102382079963434092567706253511380506613439606923101621239731839572958733550177348250366790229167609183370181047938728226606551506406116636459615226929316124879479434673637983529122576041932506291596898935516851049692387981812602684907699268136052244539292591117706227070188175110619475598377780873118464908866696138479763932228103735610535190047277068839636938081534797448491482158661096680458856332548790288381594492091003247600340757196051338505402418089133983840289978296607368906281656776180902060125410674382639117449550062051997198015078826068319038425364240830378120799045925187246200674742937012912549777320418833416673896035646529563675956339471461348545162246301228696292712478426298794076686706612776657785949323302310556346195063679996974468916860319344789460478885330006157293902519939618809650694149687166483769925377198769793363390599076018774081818746283435920569209306625808968924189326654731445709885023234332983997743856029072214668818987820015774406606695885410551380557185603990045684532729306254450704871520556239380285052027624964364128458074810776741825684574838029463561807037484924358739048583631521582016758320033550138711811839680341041717281353085663395135615886114807096129193053814747751343124388171677787681714783138472184327964928541746894345430834539429255476083561739891023252282876117905151215136222891463217131134997485051038368057357034109636120086550553047559139316741650541553074295036330704093542167559255738885673129538795460956078977645080465946081401568024561241977919060397173647831407083682655292765129991779933569005702418274505808488449136581559720742768631789769004355297404568782896448767488408677362623622313093172835988789789835472159965069172168512359810522021003425246742512255215479337277490481479825905323780227253548976647018737836403197974320449579635343929812649106590836545970627310514740758473592324741167737477107099447141260458742044110535746767709158495083343452264350202742946242335908135419781079266064772958726042283844437128670075619678785053878963537888226095719516947953902253893391412498626501925663669554869188894736683997747535075990131996870595257933137886928081882653968065917687586133016150908961159608225947267474324378254319552562754963114011138345473434864723738252599058012169115726222631674183830757715274696507718728036682990310965098920774234741459854969979569292762906241200945015462511591906229471036181328379911843775006915586038589236645353609319568334473041031617766486058361021918102926972547886075508750897093175894064706430843053404963731145786532677914283772804305152261977892221928960980154784663616164014551723408918551604422806965251914476849473552796111796719751074925215803038567674768945015626547790057708893935021531210964266789997526943527672821572164249805469643390522174702512697726422695174076419542718524989706821287252403428531506227332061592960334185897009266516452571959048768504891378079187210911074307809081862528239047386049435554975225709214872124170610763496067347278696912283556547235220155067784981419904782171214182884177526863578306178510850091134056347899194412723484505811681514841076830330370959869503079531825087372350274438923535424329071356365830378724417895605666130234061851616131418056121098447446441795638945287112295664817241140060666198121750564710760281496325709191486286207273484708890338751864181942450617467414798119289042405274354573932996475834214616906354045543343797455733072299275285738058925208128941435128910165296979407989336234247783931753494662275098623396658051182474289017371797860541956027378446628524269213521664258501715617375036155011366143467750090567878352570753758655731668949814927674089609501965258820600846788069100681442095696605786956819503089403307608127545832378445013584737212816397784137914860870048067493766039635631312884253014773029663103562675735476374273034220582803634061347973104087920705338284318814298395840420509602456423932285937682310775996315867753534522678951378371394537712155971979881168385732857379950115791133450266242577288930823850070856567193018546515806834595348825306868910823669262218637268754515456173787825831129534697286518361668079230870342383191041580412689931941378693559450143864654646726938271078971290128611232767152741483409215315533289094597158816182212586005316266833046204297966550011191762452558869361042843150330698527309957952848468995480566261704220090165491477339719925740938013401896436992176896479249213990201719297031170337339422506090519476860942105733052805317718147432352153286590848858644694682667419112359906145617252856466140896849276093606092445054810571144852395666606740931167955051063087409600829956121413510138485592761490662661187718270652148125567742307053355362768425925209808402979226831076740536854651645136192848374869466337908339969246451310959194246447138417854783382641631427745697688819750230240213381035164980999045065796518607113630865128066895616689060347859856690586406580213351690273871916635621986137999634264512429391476521523129089670468430388635820004673047925077640467385457178480269060295916926464820705811396253596967715059414361020216674098470617159871343856015464816704243300598762196715543362790627800280708549797233126408395084990069619542116035433397901257627744848674024138446525216319145024652888042908961042800897058452053268129426132674621802336244639053548415339118818287045104271472017402731807059668476817418183793356613974051170903291027018017404657615671867760083860043307238404987942086597712912841187591922129507412127961318680540757781526635997690265915586010759461646743836683126634239047648675975913741845560200569115796608542635833176957027168027974236501651653518112336641433831766914305932872094278699125050921126927535597281924780215329249142754408322618623790772818747640507372888106617486206686557851599336264337476408139152622806084873736025798159335481341016156453907447377004664397776220936536941123694230223658633822050265946328641704740964400807912259895167224270488527066476746263979614294845860863785709776989690999082883636484419685653811338999873031898874855174520214927319255882969506431661013586031178144034274191221783302297883331692372494698896418615079513837879342042066762520219837662771664504887756115076422817926572271660670967605201321336850749881153525259717510130482542826370617528564006326241570681724245444457202082354137564717827811997474721187867030579752757304601185559428848117344944099550477814482767122944911741683332942548175890978979426399366991452125345384171020682816530962035236068277003107318165825824735730304430842312603115708474183823184262654752524858238471423627646309217927423850688959532563647506916869753095363315250167973410719151369169516268776064869321047985619037900356157864090418270597310164416523748399039769450529270871589814623058823969261400285326962366679873890636823955708843501752154956617077358679554127044805138482902048492433042229567883644931902343856787652017586546961850815802529531095883010326454775153563205776773942683937030181320545671984499081664029041528916145416254963336868699811764687656975365022649784026828812301930349830396874835525622671236941365237937117385662422244623525533608312306412246789358513740291974599278649473524372673800095285524969782714883722016984150733091667823224581132489307496245716488011261404026457938708913783259933523945753531180601143050299699912914722974587761299376719365940111539621460474594067435521010840341811749136267517601040444405893705389598886508386365026341342252610443144730388493541974559337444877157551994351556402536594363512454940828531310060293291520592600060506687761978747595856012303000758742535307507701177156135889114011678570856594215729029865784293538673157023235759233099144419793102593999504657416432876710026589732612255698421460032799271048584258832441719413088065134028231252310428156806810895418455827761409862513425073347680649002313900889762306571467000255653741172565285250842601514940078872184640001889207563831079559270040910726556105978311577439847274690544928425627845420225992911266754387209035252407795044766803118133222309541324828251503571911682572393060555139436074976499437718146178383318232966659492658248714524566104565918774404895779989292174213040633700764524245470283955401774278181907121951587993217579459486635930874155072147176856069919257390231612276142068482845473297208267069819650537324285465561168645753111140617888429446056713115737481059915711490209630746911719391048198590930784208505955078628168844584392461239066448926989446638259983212041543943724343869866902524108190241587257581267643729058551260686196808528861999260999186784356197376583481473757223411986060840411551292554204528575554123023678733944973732787524772215275693350472525256245736194614051611448906391729983681348085900533860336332543046482399729694144684816374191672606589426656760430837292477428799126178685895800156370972940245927149095004562147764349995192920567634062997181240183839863461210945696726563101241404235683218272713970882840328417202069773007257753892662160334049854241535900031829993164684754080208436884401988857171019449170395198971758331309077182735579349569884502639991228020571266631244830597089819942625640155683963095520852829680851012079996255168265783214625383009170931404447627198608207277816227408070413326356409596420035988256544622778338458149753527766812497835229847703283485624255363622887465504183367707953228299961366502789580223028923521374098929428396355382852989690601198231963405596930556406847225803314458475381651542074301287409632888285193152607129698736247583559983629039212883003481614578240912553950925764909883407120417005390615842232183751646866846882827640663299923543480078806409103908555109750210975444621869072818682780227131803588879493387969252178327901181904747148922771809612017546656329889360648560464651866185550860385212854018153256045718794654053157006402408168349290540552966773560588241667072681748429457374686201610580597820636625736439650940454019177520808807815316032178977885334448335753103392951316034970796249142533930037303274054203444439101452496084571528431783861839662137616717048148476250091568858076254690957037547782172056584299989964357542477808447096748723431233163812611725117679521046424073593695511314794228029551096647503551618815189599726401697997097253055626328035433304602758393555266396124368403838692368318652329642534930800520632895989050572372365932754857744303983880622507836933433195927819187527131641481728350673080219468905709358949916882712960617071110178327527420069516953272647931848579559915925338591620187165120425267786096986253414023306285072535672594338545773127227043972540433030829900268960265663347745572029792095278312216235462967109674278418154015519464929950817416655667010004241590541109117896687564098986659239078413228901569654473581403054045237159246358864258597261432860715585501371548535185044295409942494593201557387211774311148735018727407856431531679822742920146523864374367534955356514231563202644308959286864382746047004976552037830098663763403649421080804420120360099056259158219409974482140978655864150334734005273969317006941808005165054854070450147972209476446975886189818010516088661113210085535995316440034468378509158426022391782103964063422462696537459181793957486986441770043361343352270811556163131923226637452157905133703444704087411374214450765476821586269783587372247882804547112430519887411984881788076336834846958228082371061636885398035176918514271058833458461388570562495282248130824469377171841388446742054182345427947604841900405608847943858266132706426858444360279788217626211297558271047931141934182435722365854231746961204105967724145616650855949922110051862389213131467760401851205402327257941364742246777148158604094235840214443942439884708013445015101187159618369974278112967338859739246847412929923308566631478716404266317531755095418512980148851404661586917790022996996840528467442740753187828056739454785414136028556218476595926697661567681951255196572015496501297699528157541435022874190613851460996908591817468719916704842650581285566284788598848460674378139203308622075198123828020431875811560040797576344599218095507158005654668994097766156888585966487077088544071440076071045767395564088856122735792913439981244924197733281568641271813241056878696441174911113315593910982118768040730629054213559338046699468236432272281857275128670621840431966708101547893424772878747083986847404207789492366833941138311632490970024032343800311970809162995062684009549014371497056983245909118805975515430553427334408232307322937186758911005938270516235790773792592981730716651993647430968271566712515768185797630666245822973933599137341003612918708779233199688454180146797870483301147440256469248197995191676348991361163085025857083744200229322005532676117166184903555984341008802048133942282758019808607584967610909464196980066347855417880284609051967317351381556949568670402934170879443018467130155823763128837562166726138321324573629918242208078521359458666993313130920236793964995014036439502138306195940530455201034784383565860221723313077322865400314818724043586954171853262753636196065043462880702868487642407098847835877239891320580889316592227399188019640527746865276686021778918676820695383573173387044610790004292309094039886552429946810977627822236429799839885886079041607511399013509769781928289599670686197887397648141021179070341404400385211412573542693065974909690549312187601426427845566801103417911847522332347741327122264725947629378064552975945409641671171136105173343671847907110614530219787653187938131789316967403092173857123724790036823974980439137362304787395861745212320726554605976992848997520456849716817640028952432957858306788882676114573793146114980940438718931350170862859002678837744274760388202749306100730301455499337945412533443990964672491511652282874848171997746824453758658338044786220453150243206249553171107393801361918823912326058968956458152901264372453966111361673447104519129508553218365840406098655107017244617015272557773591904904990937364103954781456528019435077582554153028703170012864545076592618544464330178652877355236231263277990169792235687735545093606406225759992353583559659578914285248075894844578429580889324742220905661923705106406179723966343963224319409403852672693325608989294255584475514282344083702796373795462188961852301713362066885135809946637649782442862511094404589284026833759234745602976167767827120869075592417443235118236169550797912843837537795004490351021677715403893702874221236193686322657861814338731029384722939886912353785912787605216445006951149889362632216831813747220762606072658877833458635501724862830065986888698195241960949478165874050051758373458891455002787595127007579646758500074761110937469591737119078886691078178953866519726689574669376949473541331542905984057102022456351573771217540004407084971843563481733244211402505284781830499715504729925414343481480375756036018759284920748169741349716342740126968120554083197956806769094106126759208531855010205065474990319634830396741642453873894303566513474545753956333901491584804618776204541356553474321701080503450741581621135368046933751574108271816547744457314975375384323271340827683459834960961900820602684133726860901876578240876009197432146384580592260453461394602823093151552324546800794086946454312141977590717689196557644247437414519447745822760652908749791203934652321402128312770466434249631782451299718220441987667873187082672589475198867827807269492962815192841164979606866283179790649789702513309051393600845574533917814546117225585836088450056546324140194577891871064313338735443525417995752677459450568496513111430792274266317609402944446518510284823898202716333509053222930905154737139712978817462989032763375359926193852731282495416933285840049191177026801547519010128674297633738428765633918511400523145839305304963262070305087704294895400889467149865727763017788076482591066243581223646410280497125340961198997447882082161669583894531816613510642481486761292326072042210612640041461682659722046729625457576201184828486533201033031753640873602632064489165434206429754375538462693149861451463373488652124870953267132833260662887045268102272035536595907878816199442305533223378589631651172752520643088516210870656798412317414959614965829160356083810655636079839627005787828233843968532706540511052761520242273322556759503680381384748597510713373160231738143074287859587083337247633783774931619988993356570011458893975900688783393401192578051677267067308623227678473018295012185801631124011062819433940002826696800513931137183026193051726038184566036092631695365267331741661373951924756267375935683411972609263606309159621990038938350994850609476019717997840335940167684812969455404197477553221710089303213621905426650802631286447250685773302446539230532581147593231151973174581900592950928788811782015444164719807648417713554938705721587319125571192657297302898323873396750219866177143212694334962343207030253037474556375346589269611753909878745002159731940036689914459246268091257504462296573576017866969466667222458606879073662797402760155344929812840988445891877000140030016141599841305869039013130375353308892489317628390420652135381202686083354683591621480535363215150996448348022299663191728861464519753808002302521283807167535672209425624646491597883498785113862838898241198917207400834910384966690196443630710253994231749779148497732078893301852184517863492573510808853954746255254398916460658072331627290800868664963335877924518224658938319431222760428279139991337188459475182325329452336950564353144753757578433181365891717987888653310181739438387009204058782090921493386265406078136781712860906479568473039944080066543970032629881522592065257896247229045484073701614465589084208571964404908899329906724691227481120140612176298837742400034866763129756252636613257207448289127603603864015746411667836225200403237100620225020391976698676849817499759753307338100103665358287008925645865099636712105567744997317403692700386474746094814359855546047287699087402708882982512916200757400343364560755701701444499540240511702635568959446967367642582003679948858348130364676823916628314173148909547997831331052011442081234938011552689154044034638738954710257015501715525670602505293939795214245480632303262041851543807222623203443328052621083455407194709717957979568597796125506905524000685413209688297296300242865403793539724539097183454863692118484045830147871967872948863101208859026706811002198716692793240299684752914020813967039813682446458194584731348436298954254664035603035087323449644015283398098549565057847629919417033681630163687764566140822114464930026515138712889343676693592493166288603700866128506298774656558147858122652012302604034912334600938123957155692027670172777892996030351019240922003163910635062008605755093774119800015240939316698960456160250034749480911381597051156645295551159138915434369081860216878147360125991428343156782341973451947393108503872229506479770016412066622812643088478022180511915716769787818849403735246303399039637983929115593972660385744135907709484444040730644805414020671743552291020031543327666015587806768670787323551590245397962752931764182552648685854167211413992435482371751881725578212439041761991866620617982684139595039672892432107759884851631152660033109897274316714088956416078910300225414102849785556134711333614232161006667062191837933423229294976202800204341934635396209492258647996756141212009202346976543393077588863917611516434452805425372047632781501090121040327178327017783365724480810004680876761211878979119871518560907877459625859782044462321430608541592148478601464852413471849598126650483881677944247881669141667353416706540030145457074044373839198683916392796422069614307355473128129158552192457106470159533144331648933699650892311076782750412908785418976504629059305728894383443655643582109153204207728758326300160193927147638197650422207434694461339026795657892823051105244760341839114753776647134343842771960790847481303163100202777382860390765822820936230031522962317191962561870109482065759129615486301095582914341877027472927882693815907374642022669904031185996650546910819083825839561986922775642140567508311911229842862061259777646699842451971705491902437356402702164344082697202476954687086686489737076708021718442536768303813630463201637631329767255419445690698681517435045778495910793584480023262018966759828957226226858532905279754238770509579770715733475789966206737120819769251045629607964783669946333434651934958736698745419010758959110937831840131777894394107443269548361172313260378766641251476347910800820109718070385957656766346426669824081232184342738155244087568837774223962721340313692395605211186664972985358411632160129796002309712892811187940347712476255294242168859729580699319732405993657409248680806204666478099007252905918980630341778006318063425895714411977133863631980411683980637945694555511627488079406978306388600383115621857947176732104043039255177210660276469898400575315893772588190709599805035142901696591859129229960917112809521154430593036287938347060579895483315823086596958884473800805138880005033055840275661083940809066519213938563988232654352665965014237760226879396591321704723211028113347616515753367873727588469345135644115633600819128863840467202427702490317739548053062009693793063303563212666120937553643712929737018511040918904593402389446138246743507240407252608867495244572835422792059485489685706611523593695866662079158575533081292864855246074512941103246547985789708364799931502780817736412559660117566644703074756197414719134697689512999062943725353203286020932844398446691547693819727698977218198624386606836718862054086275185568634240590111048457612000496307180441937501926879818527087900313953430834285292539685136439149175044950898652338589927856474077182989574864998690014173455700647577348114967128764219903777988804656175851570913097201168224589873191017695423569211081234351322328367504385508024202523863690860776518061176618390461567433214648620348049327449184984865293590149190788324357627021573307326457038651969362471592074737577187340075384841329137791729978082222764106463305347521374576206509576001816948753770130932952567560844756698020058749576572740340344092422908598582659877129682790428387391946309549095430518527270193378027363546923602152217758321495862363272682947292580377606314709187897220003763333282115660372837804899564352185310775274226799657383558536411074002703410613688654654566822640555480111909817535750321915919498809253875241824136874764568847147125373042902900761851422580894019423072708113240935301415874009357101038207711768225478774882559256929477516929451313017592035920052507745188742246905810763046765767927304186198568439224447910507939268363480224334649547933604879057591274323502453392588334096277615738297531940104943040633568742925689655061410649284263910421326962226171999740688081186915013729741289623664231529157773139542786189648767033842077886198915849452673424765203376643162485965077215162344810907118244188174808006756243638910127020583514959092023419961696685439080234664305263739071933820274956680333746090760229533111561754283889836525701262110900751240807433047429296638413387168103384223379782139003257330477084786314047966449164407914476151488432103928730824698653924084819367811601614328454449547718876917148422254094094897802662879404162512824586315110582438094497628657836714033526640375202892694082152586776158897078027250458505287580151918837990615309713545352209653525356030850997158328771582731667711188156242471332376604873176871003876484791254143544925206450939469333986127970249140921165017181484673796312916613364818361287260549193476088194014319996250610214418823351878389110663288746883617946242882411728164917292078582485218359820840903593858146382204497752327978366403229291138929039629997613280772301356644707695009114700477041633722244849598242006984059594492113198661332543501524250130022790641078739407978097015834907124081987909463615911765046121259903353888055030864334014975005997911701607163733271525347972971398386390024039120923764762008370906188668951866910538172295158294890333516983832875463099331127753239135147454443465814363216074566005399584455086992560329472593462938937070894041592836473589059143387621993009031378017633426475668061540916576477661015401967836104350795153568120856936363665873057432340644135254043642178005038099959427516035960861702867833219555654462202505354222535429050003932052680220400584514699187311864777749334154030655762635778697040394054690609418459369361496224503246776967023799853324463772024981185197041772755266877332263379037043321799707037763496503967065929053557424490361999040131324385114258936728030220671859031743879364653908182682752765635683089584688029693284277315270473703729409434328610714925326668532261358708440703002936941175810279414459314733708796297321419572548617603269012681203895107223115130039674753806672694735412568104864271465206202417989604090820304413689805894093477383639133245416207298635303343649612618083775062025271657248638206965865870311758820492602429135166676499566247309805616183284187926123941829158756118387975509445385003101512658762504730278662568008905653374172201308239024580816116440153069815080142558138009243242204949804030103805557146753661657888886514362990078804381496846073273887204089839676245211093178306372315963604340951056422696304172445835351819406388761357065851419199782405361826158646323516143901018020463940670830704355341080411856963471162599407321374829725713517029066311783529503256040618187796020152373613263140688399937379600108645793928689036038590105293086010432712584582200666212213805792945367436989821202559677656241836822810115709075216986171816223336128324896248382520514608143848660950496115400717889058561551406002567010565987600909176716190171630628863801685716014146480184316432829664465432157451699121486797827382767668367329374789343714427123519571315168801930050787314577580939351438069242902677894422697462331454413077565625645761002830466552259072961940222778669012617317658189322063742769659651940171868591631587904683279840373226374927384242760913194774848627071345735384047912593205650656152502907836022114702037435464477795281899591085147556803062237513560721427252509539774537706307826723210119038900151601398554703226436472938092564854919000625875183776299340212709053046455235428760157012102621975739091329653665692086708710768254795005018409853064684521663828996611147396392230597885478935572688867853885103998652793945672312855667740082206730888796570756425507390078242928713410653246357693496233409870586238050964320093603381903254198775376549152838371242967963729982430547454196446272626078757255906487142108282067693334530944681613645713098809245919002771919865457126105436812521115716354885830498292283687926102646394646547770808827107101283041329264864665676600620515047582893814055620098281833831217863361929661443503306307069280505593702971631766942560949366727080841444491930847236028286716432257776420183983830687304591498204225401767655962419029274318358532066009886033682350682727740441241694337098498075443576402130246584589495178963619911639359556753327206804042565006867460949101374267640626660109481291649668019634274560944756715764653447755301638071188718564759876992740282488614713796592538689169240757945489140300822409489182672650614814678294464248048687639880515472896022467753498137948500162798021384859160805594523466979864880874124785055672618411557154924058240690582044298954358249268407152961006119240342259556547683625707207879236496462090473349191376369538804547291470509655218758761388608790196398273289509906873712375541246253119070788485702826609598308568385205854171992517425009943572695450210911273214748870082367718183352012434450191121407459395294671149847435580501125111841119969613024579417041991028905561050456862981122560869527798521748827876638403169737065753149925888652400807609854008916534933221780980063206505324584845994328531321686065089132894076692492530149483173942014389996247092341212908296882502166642817066402008475723850134559110795613937137028410755967411017790834731319135525886591970078237743978239165372451916159652815957888063476773567916665499999170751540588607825365000853753140032695102206309699063149205354228873078835150965929167915341519552682421921452017538533602051530813825539831503634952584283297153902404863861395028814189584572489613373992475032601759146859022039256493563511752431509511969523245461694026597802579572863016908511995989714328615203189839309105055667160983027638998479080344215351426802035625376807399612053200548704228013699718411640014219513590151918529784661497581660746856995074097818059026893547625431914491583057369848149329314004427329474487465022952668462799947717547965786888901157445184503359855352311665145100798910510642731656913346355189498322285941417536425536017240510535757226493152770795865715261394897561779916042204932742809466376747237528035991159178095171656638417385130519515582712487271857616833196656313572966909080693119957843762655610540588963897180778793342471719172837408525205235138602287657620422046216915160814895938419054689569269904162504742428055206590548625015605541189676465944256404432841600423153143836635561795896950219967302465563355855242237384287442918927880276198997914330736947527583996593838808734896586410954204689311902558611662733915181767034998028371789968393877980266055735739348603002421055228041298415762780416363667224727909628305226525235207322255760571692010027814483870639941394592591454881437804284191152346987735251906629157807857954284268968462679813701968801580929157741474899453748202219438354558848122267894707475211039201600957533308891007827473029138964051529911090639818334714708144502510398979427497551058635165705489798764533025024297399694739347371284315358837252896279119416334674523537817451398221931582218952823315346449231559396481598749256373337812093233946992164636121320446015098024221011946197909840119283434951737084739491624597504380694177486050082822254656599348762969940086530576638438800317684519525100820002394389691351211615150968939111690372741436525502604776848620994497802181142329737296223436601019156801383813391731224935883751219138125725044988899149685397560705439583161195546113960376173001775331542093274716135585694496709523732061575659112334008120966564782804585797179508885950624084271727119003375355232519946564852510243592821919793699116200972086710701285970134107325803458209141716614806870026879097572519688935144246228544646221516888776078459674855332917581103867490312136460213732701591149969090961381586226252670886122532662950729580097086645560183173455621027842827023576677529816911934127014053370490309618040979654842680980380595654503246723069679483352025402203890901822877960526237885867074269622739125303090362189693845606823035954972325442801472196683056160478118355073706405397343999459331564789935399466326684702799281730371674137593036140332972005168406498780577448948649680104731762828187323797209148579733912367379535275322351887672956476053721768883984659272854375287379951481153492881335352341062353676693636635756467880701478052942667935398672877297787477028042391201435681551424036425608152914171650926978209056264445179171074493895274789532416426758949026243442552031641546347086174037628250444108188669956129461971261096261058325142717076191942680506655826289012614050103841516541044081561290000645175650799479287168143476291944045270745222420116427888832778395703641331457766509766552977840475236639133683200123282404467825379207398519241612071546456904700122125552745870551425690897657690252170876698757781227345185991777379256236729956619407990563017463742267300391105082463806034441027625252793208454600332926884512096718024971501434445159552401910639935467296634179757409629877632262084322827934537990904688483735404455874546073025175307203387508126837392393876372674770232873105069891265698542723017625978861898497165477898491151697000182058888430046146059287833567960588611081495515908278320088994102975236757095373038674203363750745866344287336589045632894276617185680288827364570605267460773991336098458641862328534570067353098876817265966248332358442314264629372162353329573142284354027473746072191748624911337805183330889692169728089764793779056453664863750445752985169401056765554707185091168050802479295415364446418468358840443164922734911081990866108974234932409858441493209737927968606821427142551201197339499517159352520859956022741073606439495229022543757777921365541159828121867845777855197083141838751156594080534853861883338760214083187016629734679467574503800941886678319175275054661416210383140313071460228176170933831159354368373637629870583636723636937404100241886052831637231451961566427035018566549266051654422808988497138159423407716596620908538426785808016649756681795165029037714755734652546220445613628665432366543273346823866950322517744235574551678073764095116943033947184056804945844337668833910608499965450893834666528661883492961957271696215283092312604795396199155296858148776255102696267351035438020562013788351041653036701016976020381997042173649407608810046117071485471493650674586371511639284205994285038737750879159630944827972698276443551607986099939476699963714932715440230208007303764707649146602891868917154800560189141850310510902748256321612914436043432304560093642691305735920342804348258483476511705092650741293027272611300147196973037009259959006528679091942946120165865146644535992759923086965261070765973920372039812998819556406003747450007601686552051795270723353281951282260557513846851867034083166787958568889950237900008060305202679644269653448636681402675799950825321267283758204346177936779724711145179311452272815276738622113516109036496488889271014790283497025720013444862761075002211246607108051748191886666965117518248740460685842512539636242165877736075001621927386794851708901537092689198178361053352126386908563217103357703197960760972802553314926897549806261518773925462032416997393319924063230577247655284459238648670989357073715175307439673503054051072896593953589926307007295800714444368161762486795464687897027599968154358865384491236746654716230534865578831761525669594892596981066925778214744094900559361939584915308801949542205163607893837326619718556230545109037164092522773217736524630576590084001958882982241130993000242798165124423527166305859916839007949969427416705275080740779015154516850551771765629364423106991270735365041083705886362572404142370325846876184115692875325188258137653065553302081892616854286484640985385900501647913553732986840632275983792749641887503179649597338016839855302555015429657763559977899298872501650209094443850969315179851777080884999421985345221524360252341955331807026414429701946777598901905381287562598739859247617308232109588165614736278340479228924099442775056172117064811630392040618856318516937066701949841825882469924120669883332729971928971728728935618216331527340235493300188105510642299364738402740278444385180423378692112858711113191731180649749412432946757369636045556919168613272793951046502002586953223063039822474824887720124426071880289737860055634003952593729351481065664779766921936666742135403621028270042673635881901190989114777989996990611160866137279204578843222269498232160064872036037286109672441065553389166126590926892110562261558834576477311212900456905947588727284967540417474637240916708017603015591631214959594730392465088946528310404085213114981760881862654336437663906723106840773305931109369306194579034070861791009050316625062196506143853437039309529745754345221568546264843949256683887536226060005203303891794183290984758999078830203661443244119803231230811026059217956803976179482583100809088824710036749899837919687425520565472013538100947812435201694183835788121317345328894617474461522082390472370093051830338768145122488051878863397965428123374089895202894615199163029794526024119639658722388305801294339511308428570264374304773269897415986708052621576865414295511459517439146658443278214773096330035816186735250419811516561351337604919740661834474300510954969821159527437071615984544604430733380381050576349497209852375168362339904624361694192832046013468898813337090362024059668882541802713651364532050168896193398181850575981023097342505247156810987704594215995817907040994690500674597181912085047750956812729551003054969438246128345172287434900106031671389766411563365301923134004782466905477549148846833329200597954948588341882190500630379001536491092837801721498865475875583988285345752548989314742174025231441572353689489456586567584669964262628836923610821662263018718895700199658719867186559649230972257557743131047580199167745803560040125987709524959655040513402264077949542469525988013736355152658292764133028057372980108616051576011661824510865060490595879386595533239530573872559205529507831955994710776959423778494228458032467109529876833901325200535266104119761648259528118381608616489601629355171697949281827130309417566145956673571036150143020592369913632290323391339970359440468321055010195715176925475786051589475973957116594154456400054526988611027208354077273304525017790709832653396681088924715850659163989208745710030253412296120523659351238659996621653020998959292721612406346937041364233404602844974411099625328516914190494431382494604862888452199284855095412143522421850364921560105642399090738108887538805608207144591764086125223069344289908404391523358721758652511629658183281431263147923616809884071237066547961417355808381860354638408003722419490170296226898652455578935916827478462129625762764630688881142523398769578131884301309282286016663852957614451986990894598116534258745093491851286100462514760388232659009720650598026427192270987159718582760466700936157832874898824534026451370485349868207003462655803461100116534113956171301426757414155526503054610541655008081531864984558617582514914670234009074980014542999074909946603908431936843416010448111889152029094884133809895567045544963557776077948562164080583838959719749228912411482902378107046455224528654666308572975451669423732671095585112938402894849453642463083541284584226364658055498556232276428486858050840401891166102556808792909772119631401236867221379021353255528208506415522952857162721661587432584014335240194792325751220239383634937683773569630970240663332190615815892579174990953501551783775866684709127532071432329128662279661681280331467935973606447671342571043975271273420621376291375313760540266694682314669863290122945526785106133566530847869107420647652876441430776319442304188154641600133394493470914565737733345045337886835978412638249166507117990656674129932097503782145127900495989250463394615960528065854636625489324608403452598416376766159916925745299038120433286032039421612796289682901672402991255940917339314341512440344744281425697496278120066596161614977425357410890364662302175769148603619903351871135229239605430770042832964353819626802992282373130095973092018028267854317586628360484847277682156871844913955654098224603981581613555942037705830595900058811382156960040286633569563731983011786147454611518801238730060887238776712219577421316273100685015619317921222369911435147752313625602651693562391491554332233253143170155728758682282406704039742552067373395677731714562023345354178969253390988889880750535507647614459116176593276058332436432307426005688557746262496317183779092595689064046852510904615973774833018302878495714076159207246985876455591474393719627715085804359860684109806089336448659570247196321421478873673657028243900919658223209806218770231014002838091359690840900249129993856210040557797431448374481167491798060536966066442978628399751226614713436694884152829902762909319493309986229067706740810423077582192871390046686395149336926306075765749853088117707524131832160803690279025141326819185273891100167667165458824324693887008047111870320055609903258687248418305621056186685568301653298629508749408757744767000119740845402524150962883743184388523038538458958434939107191517741208408047319632192460780798273586037924320748931512597977662833501747300364338564820189923535534175437239374903176733728089349420618220908766578905495544773989262243857623615206041628462683402387097719229735686476203586125406402505505040132239705216983887502203239534914972812007456098841951632558633919747454472608692655215715967398689513373782278070782505814798088528831384035845280791392134152376199138906614923014225855419887435531545430520636175098760797534513323313023240488363058016608184358379404779588749849288827554126023214573368500832877128450539117141093985510776959598314511320147856320509779596588194399636219650192415590644205867653924409276670939425871680993425739836094031781272388153332084386786675389102987505549556266744272934624282346882207207750156895451986699603276164941747754465232267286530371835301453026627721456869862741661463202914266633919042452527740047417338315535509021206238795729355926551138069849236945280335991615081264718526871090403425325333809784038413533422897076335825740732064432452780028057216016834696251399803596154848325464460013743481304054388655422647248083388090724453120105026012278453951039732122742058744325671008443808594728707002477187559211932408365324997396734280241259207268735655404070632196050058900517993764008165000872290810445047882083962267396753579565530760332549929424944906254796221804365320500490593547688264491911828548948309668766854773774043377948089160153718950718545607869307079557869460563192284799786174704096643144111712222556277099014861071376969227668692956738545551779917165971880558792526516598581600833017538677707604593344401877007875334477398223506398490522596823346229585846062839327036332147760130189949842831879893865830242273213364851198578313467457780872898204506009263147242917543538932275210464264406856000077697074336745915726757980734111110773106469300832942862587729012786339272543781215477893939503754498964779208660381247605936019545583623966939874595168246270943567979791332900828769720728760330668872918744720128329401132179462845190525180823393272305831519582007140916683125083294168479466815869230806545018612546535769315397641644295387694574319316964085901797325480936622353032729085029190900751190433029681481805061730130218881819924239812658845625667673579301635296607872740799242760368086535595042935928549373145575870203489957845785491787683809066086751722095288754098086651959469288302634225549614454557441762362440014333855383296934322219136264145724764136084946856604781910609794521471987932772093375201680390238390247012295999291709280342210561534363893288324501465535913716153330618504928284466478586785774229223537696359725063404329578963599876543404137314442934891804905595649437012320838600084441389569154480929850200498586712477879539182690514670730146278200509491257239530292102636019334348134934345469211553473276192867408114246857794373957050962828583768073870674604395122330095119671458213978997319582215409890333945110148228145518323121379603114949116040045082799071456525626901872569318886463109128484662051555695276480047056967671514094844576400007410003532709640448346313253710118160302757523284578649630893480892120368812827216915543092037696959749074875648711777238251209121185404953542187840613943531015314728162721578809408780039319976004297994282946004681262068794310394779549664288616901616586810465139364308087754504106422343999757995925385910544863507773356622496587497015480345338842755908156818703133440735479370234085294183823390945680383633619894581453196088620739011676957672048046578104343983638207722502510908551592620086686007217170946848457625057705017239220292065012299239272479141661819912075115669781639411775991521487303240779729971873713963311596479109518961507642868697862120506743473918028524392355408076194696341669750276129763765864754929197831419290130450866167578679214806516584682130753285894711570448499902939064499606250286812326184092389993390994871799600935905045681683050162431945030092137794368090913373116795004604390570759022331127919064944160297988797200480864967776634048633642263190372555777556958464910907034193060751393321762114928807559091855426559476583649651682794002484291304152896361396850168033535587145819355466117266123456297342486056017622614977954564205951309666235971348357691704284084423656774967489761863925447256241876919052426777935245239514162943017879795864563216265304570013255921134236860722974358749110153170388392180077819396070362904588767559208546240028098531974403678803465020685530578732655743101417601308316260071754883031583968418395269363320766306115249312543364065595916018558321637575134469086379022268656911497772392458536219136696738518199379612415152483156870668521131633206157386185715630530723060745589088762838697385879017334784500467655829768334546241707755276570561935247002085016788686850706843668537445265754471169028204865962479711502804494239254860537699365678239102624377888552094425958945445320140575898229590409341920809261659733901096641063671669664774240000199574233843869382913638922970141241242850423466091952447060455198162578969285490556463299154743543571140325190458306471132994629186936833895021656775487888902726887604609356364481402695384079557568646795432959790650005396097401165687190956427144776908272406307949593720097728590757849948720207918633891119111703612782899026373319509603017073556824922526522415331713712851082395728137541641038521800837368664639584203807836154103478966100879298356960197014542830174291130106237070435585154200956351208376422827537562302127193570239028886590437208192551416995266241884647567435813331156449030224679889898391915899477606736049458618398788720059250185111037863059506610179328936278260840706225396615699081211440489688753027766773299955553140357684869398155483983679883550018568783452022156394056316244441656196602572492179081393208891110353914771387224957657083392301613912511690792087337389855097324827108984224957019193153183495793960212285797986061221911652853493648364926987324930992750487408371287610230787458079350816913817351690123344512850790404361200029660236037035626627663797531857176470628561642485146867363477642468689038900158527072724351538095166018039184320849580259992947842836625621440447235872562043575418822686682751967990462283904685214190369735004792911539766942124397626042358681756098224045359861847279049739544351792684194259403796159840616029020485317626705571292779152029859886605105777259746263360784014442520871273568725083399116756751507802322531326871358361286614744719948898676177339079657550644287377828963551144000327920270873422350953457291192245271406428424424417154520760481364038320175813083621248009954000393918143007273990776273497520200681873623106039146477304671044109946519942833827291703748515479916940322265437173347132919887704364090851519068780910859401634804437916402080267612301205181388710644698676241402451549228786568001080301716796730559678861740701496587163820350764488699757286732040970855523557907471067619506092374672123643734428343696983017342310899656364173861571484811215820305854848383446063907053632636019238849358186225148612366967193402761232778595525706989052644570221727784308996200454448313077176579658138659609069728147211523666111854727874228993454504305102165918644145110816012636054623276643574222205228512368143839243307054831669732776930246475081216178464511362046352443556570583035266437000248770109515496027822738782207433819426846821182048912379666781009921477342681501924138812651804305378939794242433638828165657569162667139011418208868157018845676802521866199263256227790853877009827460029237999150877557105768932131589783574319627314528668339611421904567443701730099256377913513190592669893558612892328763801122276991300743040976950357343691535054857867021433008739913437477753678991360111126821940764503505982466174248930941460728763303190159620374491401473881224643614283862636799624884105272238527019291773235768348961986189937816070762911961975838469615266496202117113068831317869095281892206693642435331981515412907319665331364489644486502146192724094675690834472438899426483663065324134987186103590038877885898780250303025733986149963808456642360485927706783700622437350580534238221363287743065724467404911140714560796988099153420906354067554129240750187733945188093203529269056285006345024740061564050706828942688828031825032984512721082861573816685581614818719058298584237152895899839323741167060492173243596395930557058186431315743815236621637771024503037468819753385376588620999089550458714347505734817573395482636051417091757605709275606058950163966289113350752681810236166073166154103501868402157516368749449130196551007525335776775704865761616857232259506211229200555933954854150551262885434095678934205793555899891975052599091590498920796969306647195853309208818185530852316455310776724746582355479087240400528385761612671263199370069903941199926193248288335093899576053831285253452424589728632777017829014826035791103269663519120354707004300715281929615076096876824555289338488312949032291892737882207528154547729022895162937140700109258296838297655043845828774589627625929658745556280127891061068956026501920214740564387516514788258818045374026385078516370166214744009987919795013733468155761267880015189665187266549078317395821522031354368421805267921024121500639900457946173431648509930068852760666094085377145593726602978871962256708403106206295949247047440948981300056231392317670667763859065694774021403740450664208850184400577606437499016767786816424021052259872944826610003437938828236227819628132441849441043862616060650350751427265702019575391504412794403545251032028793997095905528767911917092470117957924135408291788422479665779558627635487262376683115536562429903873152520867477740391467958470969475507813496070518922191094466142136032532209611669116882262079385515645732310608443927662740993143115014946520281551138978889945715312200375265344126608901152303754202903581589698474114580570627197377736050844186589920996354647533458294713756224674881853992042234600106867839741865625508855375961369629681562963573016755710006177287985812449687233291361080496517652689079728702093157938272207916891580554535641071617557160604771874278625145262658006396602002498399576055394696574603846896203461844322869155182843815744993714108172629335686065439955416560261216747065445475767544916456453620577058839773341955082402472031657846395951373687559959925545171094617790860363469583124055465462976783376711612387439369692222657649412245764327224116500912862920179797701127194792656381895786914371615229116164846384579575209343824344973089717750455508870180561323214799536556217106810172294956412803388885705134875025973167425078342888488529383565293082431346812780415348269818787002082415179060687854784284992178748437163576352669619210751492701047059263904820262293844413027442322529593533686072337195588175687848159803722633268362254546282866611558914384949221317401122528588016915898318475332269805947817427177499134512012096937575450635305251490656661657343643006357046747346867698570164831104307990043733005530523857925219232482630498236931781067801315976205483363087559273432673841077283996793275238966060113316480908729400640566767400153504387592671833959887554130752608234436015319134702589987451191664574644970623693819683119379823906321216812147816392020964517776327917588109922846818050256973374444386267921515130354386983010639269906187059721944986252100057548771399785920655777463399973233648641111625038262449490847917770754800660225292643652980648244056289819741938863593532438058041576746747102821944068872966254709965580513277569973681848104860054192490505677507820372238330775674557860659022230352902616449637218665368253203369650927755399159073497785172083534648486936796773710901074423469609314253165104015426020057995961276689874028065528533781793460047005011369252402536628220568916509655462812464675346975942286500379323853272465331546637762658595288367666974691984357627063047308299086800113904054317671710330188071420439600125741943385179206185559837079510844313389810620539150458366901378695818779619286214766294594373566222280395043898204656316715716757589468714251376728124283674907067270607619283323834650457565496408455715084326066630151852864696039607502900273087057434985743953936201975312481111690761890951689589415043387173758224777017451887301735187908635793585126896085566016517108231540776174880660784201889726272060559116278369915859587134288637289627836687573132730287932733069931498960407988909218854543880028532651594392864589719699504887495128712143892660806682705279200965834544754934540201254167970121154513166407135716457488958374927268364925101805200793308212716017156174310193014197812113564273906073639825005761113003914038939589076629047749961752055290875292992510093933617210417688969864764056694684171350129861175792839740569266976258246360083887517081760245237101688749395824812524567750861734980845998012929047831721169739727814254519267974301866444165391540508686034780242643156271409395786217612083057126311566175131380602684437626894190245491600454651326773171759684049785940734636289777662566166392756087801155648467455215537872536409477629807881275236646075938184366158558300658448922384906798308184884593334397749535740000985056284392789795193647761778309390493303818337950404639524662310446925514141778076498076628911347609880443924253178415775022643679606062521617283441875644536184818936800396021173602782998792218602620527312089462884617985159217335605053171762674563862829167421200379845909441560833432292746264652642025427722509043319632850637159676995402259477443444343377977881603288944108672935637578938064104657562681499464170910270978121071406610737736619068790378888918588841965704473745039464521662848742647107768725652696845900115523047829418559114422181690791867966245481841579911067030734353700249642208522498408675120227642355666563411707476764476125161047331616251794532443448411615522918127729841773788146815889248147839431071396581930915776645222006432251630972309064910014808264685695095289693462401118475760119068109441032682812226527177070494522605979074571755242907437556026306464237432722951801934817345496711728810649310002810094656913768332372892148916387216410833247329300894494837733637460264513531147597712926206853574944872816738852281484953565701174318051737566776474264325396090246312949300809601098069978441488363217971236207921970531904033789337418266261355905609122993970618983140112557568448713763438173406657277815648213212911603919818138754252509220383082070485611541719177411863147194109980272120845247660801017606719576922379167566818482632472847348420006159933132000813199280429579281723676845960905071340538270715939160649598764416006326944060290970713934392085111049215893426740962720612013870718168477069332852828145897054198866978462719524076908114220221980995126031104612577820010909474131944859003466922266804508310545363773558711276948957203461742553822680974479810500556936467688235706134809508002403519416190540495769657002923022402177753130141418711965129736226743758613148277774448997127026668977856557936298947761364455768311323242816753805325614706970448762493216870199560938283662261206209150570370928391017643336931868518748050315868000253158219177101301170550921457263871256247817984042065047827465211311270105608176069098662002822390241212535355682809825826227369799046502962210113627961250419723566676679515752710869164941083294431398047287129081497603822746309722087651642769193277133798671408560243068313963571538958374331507502076797554381662679904605224035540219736235873511948808479422535926803606141823602463324913692858657284008493803204540582619159448350144416680654253760493377248434302305690716539755419035005953530286897714295649482133731877937153122790385708088623020605583608420266024202948263000724379244062274064951368466106927438536690909478215419887232961126387849720630166444782758610845024718732434664370273276733965536015958605173077155703556840825777234308662941290388543292822978064401536487562663088064806471302543532713388680146250017948330453337829289293330104900040671122661036673460768014946140309579888640182811248826009658005085161978222962430975825175912066201403553438723362250900935462804037907597341536202998434476167452038608448589879417606646017496015975443812730401771879016948864149772967472287426840556942858266887178990719090393233228333618926694254855797357639824920168692307858984261515318822443703437369614993821141416626148335898860017905171646437015324683973701105050915902257067704057048054633034408728853890926856720535841407582656696103488607471827950943493505063365523898381585949841352637171492725524826960683571020374962343769463221232212753928911160359231764803203518149283343217464186198534052079492352762202355924137728312673698359620542505407861974813065097140613660134619131578667250260307516138727873568894809423066741562660212620678333772123309822008942835064672007288337019270202322909503161846902429977683126808591194944451334070402881370813190156343885510232629864507933292057798602395465815841899809855118859983363124849170151596643225928555119349347028199171337555715989542840889935415958635180452954671401916567187485854561699979057561951579424744471740628667375971808077388237207816038956120527684837568776143721408121342542653604663708187475613293620431711725959659592749651927400506775150569798067918851073737659038816809923017057553836636231782563397934157294892833171719024345997959400408640170016829308600420004266298440983336127940296371518601353533666670555877801573671833899864890844506060740281227348333264615621749368011213837570042574979000688011337707303113610580568608472561051215105199049300196916190268368252453843047312170947772832781829397862588593663436021761638523348011752468870188286990298241803194992736247501567367471572644576012681552444341172168034773494632407373720683732295280568603369478638614007029804280242246784007011770684140391808796112628510905605522561608748027861806360537690522311991550389467015523677364917349812824721108552568543046471580025019577122043543768336287334564113590562030512030324477133009238870393497243146109096907677850658519823782737131782830335685545099115195886315084141293863435678412926157984064009431622762353667729076223935005356717657986003650922600228966200667105940001889199991384811685860173604735151770794390592169462002985299083410704430337196916233108583211330707854743422903368047498002877073457926238392029962001666833220951944924383071881527827508878166104357661240331895004959717401793205752092098254620101355418031671085919122849311904693781851656959342396349798129459268660130555322964193073009698728015056201218317332273349450255884345111319271065978955045430820534639291670515015196733802220246537282200737736060240444378310676784869632233987106302093590680496128858540366747750241505696430148493009180775437305926153232002158815326846277950590628307226250800519141773234961560970658176219367279345789204905370737382560580043887216894936892157114153219367449488367889294119434807207390234703393093253200327820791263219877911029452102242275375151716539698268621849921522433845048089584496250491571540223204304234485284298444999307992289267421450582863714017389725529364593760126526318220464963481506810357034942857071865421939720944131715023471441717712727788955045230874535590664091851538432215867211347457018258177226403837761499435835296368441657986016973863309696502303571915623151134269030589565049225336114277789616734353725692291059891568264444754851493641082717692776365242308105476644632736147283239745176626724010498994129082357662865607719425213426194548329617715734955424158236040653134405805781720587604098249994530507986048319904100180665758047130931163853593249338862595836954717337745113785987102186353074185311423008397815717671947965591869156241389051455230034101568276511504689206845457392150993498310726889873027662557147433095107071295823275146217319988762040884060222917713076590741553290929896816877400712423349338628697714507127289082787029800551500073958601144967631318687326706081181680998433425301148657849098724922823277484783506516485766495450681914762783950224726769852038012297338000672845149168627359503960533965885620403863395026985864928216106409565594300471579047489728118275345146922851668493079457121958652810118559118403387005672685469460506946022957399833633242973833576995717547439279608433488869100846885716312663799589098032958077061909838218432828372284836597522245257093011422856225824516418718005930593783741887124107606442681977983371039686305788049351022705958750216138313608453009908777688398684528572552274429544745272432696304603552133630283997694819927430237186557396894264811395924792105927210861994435420669573947657627278197521496533844268260976098945795130355851687892064811231541535585860945850917290197826146897698053825753571004921941485017299532227430763257654916343794932736168897014175003525885505979908712015399604870955679575660499925715336424403267779051797692244364035278578770657795373704758654988680217612948235691221910806098527872527860020101830702921201401252137545798690172373154120529678203103256431365392653598629296814788222978963203393260172652056304548478402790052120043529005424983367262890510765069565802096198738461931054747901405475084481527492124028875782225487836497670408229224237258259012122276564126772510924788668848893716682736239180648698919987415097794098990834439379763724451894060374574726621413789174388784769688073651849676000248939727447202325172748624984855807132558825078223944892414738958575838215707492939960104758436431479259487350166433201316089791854733663210042825754660452606094577077945148611111817386037269075694099617511382311011668233886932094228320711459906107002682181743040526182556406904890514806727395146416232610756063762918543093140360107219290311033379599859962748172839666325067801494759802527477729414087710176624234770947151415885321658325137037426643968846502768840769288480425968832371064381347950016099373662351663474933473739718421457107358624796321592782182718515484217113594934044349254293275333373897938315284030272144198911050852631826389168723047751097299871697130019991592700064945049365043629364894382430150082674008148609116435085257379789461860914031383444852948711273031335246027348736735208718620341433414274001807951924823350633559395618722618144622731823704245244015018163317437089249768072125427933325484337589564465872592708399683453364982654554946722277312541348688192384867562555189389494325549073943796794135023845975445309127759424568284253058748195893159064333048616206683221906391795946810805894270286974026227986287868832120009603580493401635128504991020135692703586365127569953855575766537033139402264322862059433510322966864655185492820620244185290357074607512674825416838969995814612742237623296763431239271221254481402963826675497558815973233546016602250432292602562992073459295923317156580204069161424137531395383531448951082300909014262737671084350871410332982039386724935906183700650221782658361220643073666959197269540974676657926351200808226021157038495174776620954074425830973599097065708813061696545559139046704556009203937937083752797854977467262668539007998198831158979431437666185405174147727749256479234135501911423757664953020611289661655891638772760045204719675124519884685258047838125371247515432899356145481502701929347949901586736741509340293878327821305066078429662000225593156790012256912544936234553188029261288423236272024608879118215420178594331182383537862410972072852356998793421392893356105407823919031369171151121598494891229340847847923160830906270702871639906084793501112122681541577658141186827474536922263003644085210179710514441332446540796957488923829539475740653574647218507249860015353231152657161061703457624805261326394212063210592305230119869297432982803463202187777110613914894117253564084411764246047964425645784999885262423398707295089241385098007721374398545577589675419523511810259608335390235473234204694969835172598822213631203498174790236981591040625081954883218664291336985005076499361839828121766902848076566825253741785565920949004489794226912044398924481521104573199427094893458788290901248919123275696456909628969258234854206441957646786782613537180471194052076212545167033912086632565119433429629290056251029069562167728193823231075101474407044032005445343085841182145359906088397398231732951597285515428618441140458165084416506847984311920652309302427419247778489333194385637513980448771133993229609490870149361952331834917608149734646235460091310947305776789922648247830011167207491643895474123773660742591580814055363882880186625504127470125075695966489837680107871006660453252684573265443514371396422517869995015905629525339596475318295439553244073355096422010347845635392283529245634210564170385800712128791225126373541625308210569270612719446002890122404149074793418655997198341851229117022973576084976347952680448705416773718002154870718373604076342832959859931977754850344572228684760656591143412846352615111453324068596698985881458918100008573544006292612563525079842005037128633155509730774863199954185145033634479047171317664127224512429635661093016990936388380294920241125553937430409651316683485783241485922305983926488168138658473010044872085151960340627082262897319078326478422021315569018066428617221876268360925362390721765374929400633010655031568705290056461246207302040582580719168146224398642091471665665910453009391316150499375120142330859707247518449116502383104597731875100163406931950897472394267375282796962382768998172157070289446009639106174605211045775755653556502327274905365599929375152357276307269506081330018705891192063307186775094712133012852356320611988975193346171182200728717120591412446564941095373919963867175824297349910466986324052577492377411904516939961034144279828409033212609109246907763575388602623529711173844726772793856245448610453487048321769322900120227984582417279943786760553106890811576432278704647163277635502585720353805707554184109665126603727872398484059627895348814882960619336625574049024752835175268877362832133197150266393319724406477643098624039932167257424735006775733394866930538854761239689950590118919622413732869333856440435819143968432132008512941579951217362419133728591766355905579171742183697914445043005472340066229710185834223006985592347035568081324400635095714767012258525650330287433657616621201133126547617457427355432686227088758178876023159628953865080622369807092498034417714366350995274164588837021325025436437478250439286397582203113791293639355759679667948177724124479672867033647218056917430290128153702061815422380608262978834211411415707644867750640428248833901776416749890540553601854498160239041508754350203726177125997606422055070958295661315236280611480367470102044246045819325803041086399937543761666840030376635951520674818423168534860125371223051263452385216056316193153236475407170140144980813030849745088148771258730327767820466984066390154923665789440751786620113367249929774861415049152640609738651999563871419350870314132774643185954041717991704923194941641645386987514121024081441429851302305383129096092452725104614257577199702238186488468016024575536457809098178654588604148840934809393526973477661008639277840932971171697037501872339423652166057761707076559929565899216284506420477968749660758162687384548890628402182335152431802196748980090727713824753529546282574144648259681341515735009337750613600882377747475457442155399865279904013278683969058133698759235086649030797361928624546185054103115400498257645784831030546456639070140524273709419498997471877438496406575210283197920919464194857685181490493248125314934645648937530989528161276351477409318325940734343286331515908738034093512326064590444999872017547087573804614163523994477095003430647599308828302247399055270511391217123052723834593533707211285558765059618572830027779020420637814676547032014038747961841274124672827411584979238352006153771634419995364674332376570182870314974405139057280411646392906539186644719989942645694555413380517132619685311960778631367615689846219553116928559369912817187398203750793167083026149152848005908034268257456225448313032135779726712905956548416909116429902780322279316739079072042226259967474018500039327173139017111291675213049845689099478994444964102729862204835422103932507489480103264159614375447660018867414739923340385813208173812049063590175662653917857669217802050830255144981882392892155835358539788857674020552730595380787442824487228460224560198429577948558692626929754375827034289651530218745854998065399614012587646255696516744237207083630699821399657520301814391044288651205565114969367798147269901546749462719881453298127385194048783534871391312655781221150599855246513006774960352696216947847542244829570001228587949328512365821610064018850095420805915485215521049754529522323627865672115427243703975631385743455578361003327474686037989362781115230768080149045307859227464401318186410586946420714687387755330089754851509054447326678886507910393608800389293944742444983973246242838760028441544747436183323209269748473589468529823532001938981950520044448159962238162486819789347516144532712972995562030983623407693105439126838780286829322549411987161183697525564448811432011328923444985629979618577039097029189747203405933956000988406384721391514476802406835856203964917199254840163032602100198745255756312761771659905709326751175615289040443373943154438491072936434873001610880141740418908253978086819388511445857394625335399961280330403026943293543258148470631243749015197237154833216828661063376901937368883250588752228446217556776325225738559610707001557540980422297673982414170564977257042455559641804015349050149440709746702711749520361601916257648804433336943601070918414781021533446213528632971648646441205614035768975603097133958307848037880675976661516311302009471681300490190639462082817871741476806470564340428350689328097195074234914027263662589264810555033900100261804707577026314968185563569097490505020508870288970708619989361185402384451428001056043771160987003668892145864362159572744700742541457996830638651573300562922359515381589201689073572114833858188796567833115757733962206083331571913307638288504629699684487976767368854481893091438977116019627113691817951211347644058292658290429748833968793575307448528121180321811386618169596092469748577363563332201202309801068733915007185998780337117224388285905566231448934616706044586863448059216358686278561898565248133042927659786630463499670518564289130696307957257943167531609567209044371175286027255627441548691541307643846744634191964227871869956344559578010659417243774296942581397014151652673236688120755255792569551541156313763154785265575231143098779230628814297237766222265410638608300737141829962073923175728763717993059133081786784091183411180780509985276625560477042687363155308831522154778585231008019432969898261926468464557920945325784615950835692249791979323484645675438504588357305102818129778875796019070145624979840877815003705543861744518838421455016353605957837870824523549780677692415076903270824808200722281726968727178460725974000831471833462570042930710465044442638412099089103956791967230391811243406783484611388037802413905620207097360449294695982304943539333662462383659227867019271476343660063482304510101520077246908157909363016516350545770123817868011947518310441194289598083911300445925386503275120601362527250784386411813954061560351914865181947696645921251684318016654063067245577944422697919004217747735294988256893230559957668120080667389728485283653797015510865191033450688102061654168782642156550252773499897678073320188479186137644849278085430896090053305284894974047154802413930940651614567326512514809216786773288716278592708702700191713373222843488184002201387586295701164958876654319818632485352201940114919541299153966118969006124282519065671081795153882756194445368738002010772876888681358911128103184039673706970277145220585257272710007964667077693555023792433312321361163238254515204560429262593884058616747016288419899773985702525453301368394347329593528042228556875200789305918897365015271124916380091293436638563558692338853911089424829343295253209374814777021084846590086924342580598687563960841949053902275366391387559366466096930460818402996290957558990500664277247944671126481551200003787801210362496408544754151990490045208434177116575749757968287889502273463205338291505125339443378886185637630450751614593598123939249164081959124562052894753330069440418437715190683076401285374450873734099340071682835030707218492237551439594844542363084303555801868881947321158034745845951843900174187908683791403080622799948328804702174153960776503780254776597562248985023552862543161155187124085991548709208853853562373451627546591546087641427370791860168642222781632130762592191749722771652501249009397329205716524754191336127789935521560569439032851351442246570592585348269730534681627770826104878782647179113264981096456166526387025822298472258131410539565429903667796718851236432786765032859835561655599170036579522733225688974953489901817251653705488963632269146860108191464766224279432207072883194741017245014336843915056384815951809543823725710386449649180946398451788860650450974134859348821209686235736779233385470333159022181163850003719111119271700601304832185383117646217934796545349905296773656836862344858906877387835959477360589130852741604338613694396529057493093161336655637656438787567890180808558027378646778706761978140475884550946799615667217119125864540088629725924519513099253848507475375528448519523055989631652079346708233206884505847826696684330894062701951367790809706544697546405722115601879702253388297670043798958064883397716469024223267849604395666048151139769528717164026000768745278342754200932276924449608544370744673627435491788127344254330088809295325523380813419728483329590970627808981693934161214884229360781852761124677944795439448545056401488207499252201955846679027658757557846983031486106507897474045603277515332934250053416449444291501346747084405230691233374995268471186338640513816620788622485258093952638389906950636270139972239956626451805651414985022397658603806049175939153379225864225514012971049196641389433441165892686563306981511194573184456558342732903819239167612638304814712544238511919542678224833738113630194671462355706202004233164395380992863552704847384047598235053748768520994307535910435679609535199474279832382991304346934053768397442365463711939904301455611125762964860032078033582260531337905694605772679118893431844176857637007838286653001961642444781808663629568653238699437225396185913653127305125363641437084841618443165375817633683265041436723138382786389341518006348782544077244680575517904977276358422581780014885929537835738249460883133968224184087566193792898205716216402322182336426523297241456827423523165465088308950555974164194468927685561591056650661642728158080544813341183167335639740863503473764148115122092073850707038276977721950261993606548039199635510530148992532684969864805614437416966522504883509948282542171640976618163346948466782976055354413416052899461173114263468787387850276220953756316168239536905829074254097832379985055347842212485725277816402045262732554583360962265068086227857972495157710851190065896808263066640728151218838888078746605814664931061629165660277019954338290754615668524584060205366994592183459331916639338114786846901295759148882552552192092596117334882694553881994594279258482350317559887393645597416908996553483705110448259281331871648192241559884691018874237875339649426114098480530023216278549361017493729532223063332562946913871103577927783674084123718207486541077148131746364491082350789605892976948975432557137130857356879175516148148922906180055404560498345252159393949234380778216502740483724873675096570830709322312002054040802979881631337021408681238769545202663653514415209583487772150740951710089959751272351837542645878028712092138812838494027951800272816963262675295475487277819654072497754892174442984267561159045864749057223723369143296663772960844659478722060547500632545777296477031978049112480905851559137758781457582609314865307753273044151204187037272261196350090669612122296806201710404039921252230870775817205765748541149531483646154506212217094412250721840175889654828819748180605231237166378285393825510531783631273482970539297494974907442646756087174044432415209009391617274948321514549515323306183329654714931508148143260870456996764589634654590981075904044735531763868509662326097848668515936365997040576645219279717438881921234351079277784568811822532116572435868793363284053566808848891336721113525180561457285778944055078168452316332739894005919739249941021988998627046988761614976364623407545196961553256926615428891578602208070135258005286068170180360643014638867375211112330309415921082140432173054556292233663469115013277595927016777489369357574259406496456749208643754063245275646875513404447983276697008313801573578755828791805947299178317159689469001028090389394787835906148220728054003370367992144045529013354369866317693955480692355130499945879329447881562945931114161100276643429136189804557104550427254151412980852283500182203330805193217760809049293434275924152594813170736685435581217721046818306922600121047036867893476411163841554316138161639212972471269250048722277663754453867386014298616273810312106576691791953320118487875061789854788146034819793485743923401594210799978759175380383758458596768025569264244307087917890143605681677016223484983609262715745650801371755255643907989869987223486534382157719787596610641109700049297068786695850352738810140034099521897693352781518731132706395601891804459321250999693345346128373157671547695263902719392569528743197667173739513661718521098404907393801976252482494649092327278852909798755975057592932999122985555713122317015763298258276609964436068859844587085435093643787625166518198209734233349332717870042943882229975252000907918638153304967425041848833333482039650469299174787876222079425266688764980261781972196200439148150232965053744589328549720826171596428206759657243075963163996825064643186718714650131578541832359718957577112055644309796495637671760786157761865649916771443994729726097400002141869125295468951568424140323202689788448311697269449814761616164845028828365219167141431172871368996681018424836936966428573267633658101365378402915803597152381371406156406659777458847582377484247762088702211922137609894108210086143083218121470130055021686283471091475025175643737038415944879290454393154782934228822171728208053112424679688026982208509061768723178813432216650473400952997608453219813768205018486367944308597431761228152051717031273892581757266476721565454968623473454513808188575295641721171319017942716963524008463922966646806835392045319198354145182166359664117055267308532642522928062085349649653327462315979125061690180330040100709379535709251593327376950433419096927148943894620291967568761934809220352145143555523009633808521657030431379862674003848180785911279271276254780679475608274504984264718423096732696125913024079280499688145329505502035910554466384451269049695952579683513627739588118764706925246136462177568996590626806702619421998989894869383812808047805087314577861058423729529853723861432833020118848621051819390448379168847025241109673491909127262761416090992819239815421898310026249992270417280395311034822006094085193271913919914556267890040474870559734780069731018746862484521097715014598702937911562902934331061756389569666464674514528589863417664245456288915451296181478127921923943408048798775341251934929581011285289540301928579983639752685524432199094261053529830220378427099579855909978717174560137842369268892488065409023262099448758138549821929756274245557837693927869124244838680451311826443699849381068200180142064764959962316577241206833288834686293773058018252443360445977618222170358808732247462457000870916640649877597670872246201475757160351400566604901052724188550601529820789397843279229054401063717484850669873910287184705676914324196831903679932482430233430942669120816179763885169138978275130919640549948456522736193433651900113658825822237618046910015495650427889937429571034542734446704044676999361603063828528183653854583866663600794157544520616816220268907619636423323236666456633067876475487103804101316547568250480716195587003052530813450267253252965390001360894249074766662199158990395423298885504945402293973958990536199430673411375946520289329027778394077864824111268478661613686858727762929848058590039053128331873298362654054065755477438171672980709776659533669340974833321249669965754735290125277525236654810479162957249364258461878995777079565169239630328332784534076583810013743505826264437767685895537338998918473247147978379324409907787637193233910396440069866616257473498761480298797518885359822729172781879974355812595741183396848246257842722747744017184227469180854419599899103698744564887419288525606729183133983331429477554949838944214061232409973959595270759931123021153377796369830908867039629154439717204040091402634923670247820033707964422587880001648258884173966814329276350810364528322286616257116620239338848238748415969304411784452977511865458810052671225765838385947259541317580520325619979555410883376302454022743637701687867700221683809154817080991739079788135263378849071384245658161109142511575233427588082611274912552117821100207594679410013884604234707163251316703622780756060925289265078600087417176119349671443102761338972905292860258996490652161675579123196192591135235491607873743202873462834029546000457675511766642394281084241426536648152266111043120057522975568525242977350129111529394738451347311685526123946680872813258618409718950428811098398327033782496845578436573475895832576886124144275454419359227082982202215131005572944331687360982090765205387021355365281889958839536657698389697577924752554817263545247512605153561402365818637525000072840091524752357391755761461930669256694997484166378917983404980904960043289723347251507383461369647505610893216468051082373693865942103966771880177328376931838211980684814457616269676885767641035508914744332846187165790005215603554871777225982615313752209680001220949799638500985266812085097420692464385204396450266254233475996988710926761869153647403609525414091510170537080585916395009099433787306632121166335074197548999686602105949469451615839742439353668535975658123353344571193777426013567103493836243017654141807205886645509567161639432554668097180648349897352111488274603328998399647218769934490366109309703179912473732739973137957019587742569225697564166320202670063889553588549858172428749694912047723305937352069758195561680738175772217687224818198384993881313663936619283578821540919886392260573520062842692900759219395194314346683039946576193272451212222760095677453255920107610633168191784714965460904782643407809014383544990765846994371617627038852510897073561540575745268618071697292861938759278198182544862594737104715278128830570800269825276117492437926945157065544165228634681504759206724050362860699275181985464049656196415150736186149616978229131177811993531140576589582429404863074821959294662703474538780496458794338826081024251935775929215036624110920822503358521036630528158480554424708022964628031307169185130410313974289246094449224375810439905322354034369068282686029335543084122150618655919016543556402302467767139344389531719385304750609683913068448974816989354874728600078908928807812883874304015356221314656620031168405790761786812416608141353186486522998594907642725465770691976348157356892291651061489757116727521070571793265754497452583474399600591814432110219519081285618088698414313515768380298224009104238548152468464958537945235159043106528234343621089415890222226930463302982167468684074854649849078231626857070199534977281511085084655040776090302258215757509202815911036416030675100548241920864669612604888186653862775289680775748612748862110923562579910718690748340241783982930307961422844864044357770338310388438663957849571687946080743808887761028595049212879002306212723448801032356593820834607229853925027442393202629377364820823813170759599201680362737697224029636322866840394256627554576675271946444416590896041787058853286630055212530401682436149279932316039231971633572950413480772522907336128050778334868763073436199545889247236361372717406718018696011695944606271732840466815341752769091984529392168217407933316541748670672446893127336686155669917316450519133504245639222682353419406915927259842397673239531483259630579097105207240106843372315214003176064347611059039807932748401825359208249065921595358271660351795071468538971691675155050358704898198493062670116590762293826390894876139332862867784198078176265205793760588100273759170837866592410817334501285600814190270880929119054448342988437955912760517396171020078891274886968901897304152786911092882771441187216563201407603372417369809518648904516976950347583178665044089725506638577590222650336458986116846426292223606141987768659965159331083082930793257575517646216164996747881104243822268690634847321202288041316260130229054243828517243638764544116548908435742107961673311048173528171452110964056445428239606517139946451649556988021447948360408259606839583587663182884012770064749043652230291291470628339781912029620184811327880783713043862912222521178691812395878697202354662585521536486867506324732421544564539491528904358632333714891693872469352940453350132337988804606822645044317222363457691376937788465763774126853656714292454676320541454777603351253420290725808588141019759962383097242283033771671764786561545127877110011995966094892464244002656256329759081010143654152760537587936222608819076632593438025920100362788539756286194015538039131423720414169673823307500072728526288983691435554678861208368575054386231085322856496091676409595321210861084852927515146387538003837931396781674340203281147146544546068776203743274107731632912048231682410362557544451849707995424746115139691161240615084175371023574660788619129711167018661559459537819374797887259717772382135788153858943031162621682658140062463050200817618631975639194091267503140308139750244353656157540803143150665350448464371891623457541711549909863240879137412676764286996450381399562391263067071101135990035168563948633024951606580761079641867607293330915600915565410840706127894250119245665579260045276356067615447376129288690912995514232504047077154081342373901353642007322858231339180436639608646276012552034510247457774375284135642085602847926504502241274643920485752515289456061384994895020155479685206069256955272110981112600621483328245762664584881948470015100507467986885037089603464270173596615212758118473489240566293240691544178923461656508145641548575564887970109329634920589213823816436754747024853721099265130317268492222742077473798176959922108930529287003275409140797238407221662683369586770607779009505500888382297633829013143980867776153370488813701054897033281480998269037534092137635450461559753578806942929873211081365329945657301684466266480794694387803472298254071616010344827470243652116881621207110632909915732224383282851404081489129866677960929294945902868655633902817511209402148253964070359926214535789340656321063053164357250263255070292475419047730760905594224318946957347118092010638479732381118295078704977688934720330797179210159967485115660317091156504252771403960183248789866682559282328393470088400098297526750022490502824996099534474046780899989369190303965168045885849839551052508460404418103908600008706453797005854189557913037853771227178100837579083985411773656496835865972215265049093314345503194214021802061786692190238928654039410105899627717161572965625017098832312576869797539648532299371353717285587078979869417247621785412356580631714674692096502754893360467662260570152323574115424148363337000422733244156478254863849428591938787094672922815179182584574405424421017642712383210319603072854357245007209437590183470079972303718100322138573256332485513935933265612059642157636029358136215967651474698395724152765918246702651222743049397063374975977313564708668124929549576168639928196906054894413506478771384873403692119390453298180873077592083388052933128020926032886774375489027682806707358523813024525363418862579661060906658688603552487588590271515784065945982904236305019333116298769942192879988208687499637003596259613817680625185643167041881768202837249464776672430863474591926467064032775033104381446084605889751727264715328086435195486952531502464664465343678935717721016220695446477929290959874635766303953932818705483353031669180863903217412407728111108386147195552368336652899422415874647582444300032260660208961343825062576912951046548031476607193733834599884933785638308700417708334558067480074955910703011188875720484573870806200174488371627549495621539051650452048655793841567832897013937556644944444822547439060332101517992820868707629925507558088575362059645328251880042795179834503351351682892919071137453380383535092716171900272080341261493608787116221236091516614452653619001808035292485429384965183166448401334657697745222679297464365565678413095118548698162435513859781510451721088047020250333955291459609099625673238024145168192338446338284935934710285890273971030224249628094667142292963118062199829130046111102430630014771078579387567392436580823659656703442268039591549728373347680402765826741838492780019155642594082745134656488721567165156037191782392400743072988397923433355525153604413648750152129834480299723010721796244462589047812474613458962416608407802522112145575984369889458918971999197297334934027050171693060071473168667266705185117723647832622376647038448604156490401847706021609587854052399904975154759425817227068695833286549903924705915247405736041448401712391242082446910642310980645454310383922762378538013656854932829894965634071803452769012464440153924923732761514125743818649786603850724711630281525016713753400013034511759860029937941814277993478764270028504980915873880959550170474615907871284787093545480188803628543499798374213111394095174983318514772127492481552048964169123869712019846786430703370825907296258854711209689496641958927214738606479155176116891083863385523428944209921062605190061642996555896938630947509414397697893273379823390322893237565982291093435843563163127839360599668052015133927073273353412780851985932736189342712201500308486749385998722822535168224340060897760153606608150957094930182823213140814993710253768747020165010283635954980644455591839429955725300237361848036760480410630398052438795982815992099385859872788033840838046790691949131584723571402762049959988813087098287972539574982567679007501767231571537301529778565763886693317838594460860663736033028561259305903666848445406437557409491583399240788852667337481408283123644410754577283228558989963255401393797003065980995431026820418112072578688971710239219165973323919345867532934604203082177972658693330947946078370079803406899941736370329577409369105694855113420972360745692705011201286585690401028667999646337845327094720691571977445946759397362691093462050109812235696919742026236762311717356364881835135409913482129239592329715517166774701540575424567960049664093055139417874362444655146648111055335595722989600163937236406053880625128810891265642499605732328660988566432760066082395337856336053099774714152502946668766902378386528577465752760865238447085984051745437917090550450202950954057063497206284706300622093258533769217637710065217184689114769454560344959177084848081655606607866155776108162760306652927651967042366054644937294339814917200046389315692916912580737161500216825116300344763641997681718723813344836317786707632095436839116590633382000496163528348626492353271671296201276435324531615693605064813357515892793545713696518695580731339742036350620792620070799104255091481678499964303067570939100075691733306511896900785387288703796683660142549421449186983085939833967302864077392582121788805231163744526885550662570257273523454298275840804450134542360075185947877475645720169555991158200218012712275910917417249680407905560440034943348487469376918402435360720650347208967131126352962408453477050740804531773531559121097350408334271909374255135112651572228958535433686379701838971439116561106582406696817042483419863084342055330992227619031318898765343609149526743440029898937882649178020810377539783605104417229574684663255208533526604470485680047741797982538124209115500329598213315008103440793409924201509946308310215181883593729818931167083305971084054496123792504091578855009570286680221646873874096656287218776920824196105106693256396042706878798419336441338964224007836062495462438241543814769964236947396430774001861603128196157743534842134492850583275256326829889132180794947251472898366525146094797098376946076486605849268464555836668099411385597927274732155947601674674046556521724970796391129151703513489602012946431233723005565696860631130834749696476965929375927594916617424261631528058193781912264271224550522054039009787625358003865610133612716808262966655345725828304985260062571756062451745715262477786539828878817964145211579301829672621090234813618089599615017465695115580868439654273062238521190601196002842408048064362338348453904739659646161505558057782422254512065074107248167539171032612420012351430501260840065796820102148073393901307895975482126529107807086026351025840249271909642633078573727890222044122248460486804797441562210714659662174154757809364536416762865100210900832952583746137930096916276643646755646450748746731828244197244498842845909271027870062286608508120607301649711802521190710371916219006715606322805653119848558686774629154063621023442165960794005126349488392705405073140003961989509140710317167960037613339908710512941039482238187186711383715838619387975905579692432326624430009132407366495884990502702401817475504748698550154575632209292242919288634804121032962669869352339071007589175116408238316456947442081772615623981962919316190089931756660327986543976493727795520879583185065929891426061101605926024986003559670052651765077594703383945992442461898260778118654843100839659989899527346388388154351837074358703711325991671048514966420216913461311651095029342047638496545819838113122883608955803102310467853081395510643636062315521260158092784253974040239303779346332800442290368050805575955909541973087016675993255485221483800747740233489126851564194860704242635835945438084076890833710200556437770800518857722150716238413629351813461234894349191385658503546487591416235093237059306741675101109476341937107530729951194419414330020467333378362909556479574407639513147402204418564232311886863834493880722663839377725058652202056642312520655015580041226280824223250406055466717062666179703268101340684543758591788303916727470636957815441599552557807414232060126553255504922410900099318219249649459458221186389639574992702297128341104541798561256084611027566436237736566325349605152665693936467677669126791785792263567644722162826808973974014711716065157954036532924298916693691468063168750034257082916001736923099892566799372533661252480224631044550592356731895275046219116259995422967417182375062435317242236688920716442893777985692686526548993846550352564793424299025553065795508418615678162951670268840422323576453345937271005051842828436370639717838180255992261100425151130632412096921205913692662784718092868245230413965050483956567150335734068296249957149309573626825554700784330115354561919041484612767499907119731340944591361249481944408894765352604555989386353223368040366829467750805572505444275458966779450047129553655538939567962665127272345086701142687383577314557970856597953574004618088735394963084583353965464810029609030784974588798965022363121483595740737439445023840962035907431675875656268512819513934539193787349467183259313482212842894852701253450092694490238814768181111631665521251786472159175730488305919749953303452795617232246906995250044283685503049849131764837994920353389218555212007885431878011786869027568207827410640991715449004487020420335115065338565342186271390356590200631313740857579207381668875387453400061046661434079124589890749929153244204248594867915706052270555426459433285444092628714258652020966281880663993063367816160094524735635728785749962228600850240302400671179501057197289223093682090797763955042620059310250456805483333180686591882281623890265487369215114797010228306062923416453461188080560312767963215451363687255459329675675866121070250123623330586262978655854589334781278125822122503195165287606162008476751953453931513936007348811375670685259958033806341072028470810223539035256007172538026809818353363309549729938795054432739797039248532818643535613570455943846431693568040002705800847716979145192339517635247552754595734805623414225007527508299005809293446675648007874934601257374219607796396723044640116614402115127045703694267554966763403360262674217835759581280798085183638800441935135787545778641135800372472866592987231868401282966974679330511455431030972989702731546948443405418769724815578602189403997237221277541587472076434215001842228465407206012998796193029931289441833852344502930236427078949333262167512680616062082633542599751033558972195705192746043512959119931925560991589391755809215548499701865760764135522335488550529589114271591578512563504599374779865819971660655918824420305752220074775945870762020269467704648123196693168286696481153685817141112286515516880283423450238512745267095695591894880532369038543984268197490575180777373262704662580573417473245454403968080559474700805329026954960227478441370920686173565815894727442567310159750040420112476201967888952828287608086650179881849282942388809313921003395739645851287041084861861414534298633072088713816226215318288839906168638956060919192714983273701351896274625117290082125978500160160179062658587285025317056971197111259645648584900356730954503582802256586775350364994302686348046133585590259583975987488869848107447015165547633493788699573119033169155912874966202356269239042590553041170121219444366096841587581241984633042597038900356177506430389656285660484166810688430348879764410279955742750264179266770475608795100988775393866759841264732170580064850834034748728428452939333561961979760779634410508581362751041000626203407492232818086005330525386366589439541526685308974404681403686653470849134643588248511771883727451070754108621651281404421021309810796467648736264100086019097730947600299323533049660971922230434564861503826212848476504621137503630477353485282091244397731141195795978312351212644031058334886899476371910990887774669429945814352238756860282028361099883118603206603957620562805869145646353644037592066252897116319875571886023990180021062079126902022904375068595390598723726020840783836816732244084551454102198318845570905375806451461913740033512838748659521095440978013324188870207668975210257380723952548500144633287889926711106475694015519531589311995771486537931784342773471813992055332941703669799287909306612236870768066869637956911721078314574944569895840649039174569239633661023405527112141833457290240249621948386419542201300837534380498582706307710275828940812550966888556067672880321328503529823335945221930250910814222421681409857945928390998374375345253620612103094537266325959976765423498910994040535899012652106328620415743662210637699709032932215127791746265993272563549172246491613352998149485393752446448702866372162684483128970548998406668413402496693780037335623581169085084882561273736147310696289036242019066044099812674765625475677415486060808730543221666672823625530791926886064969747905565051132902313085699413153803795486219349801861009070632073552818141976552161239067853694604484013973739292778319171027012708192303444152552831567520739208411777337836220995096252529934362972114855582649510642339084178658219854974191455110706555495264704960727055735651524732035159367589095124447720141170616270437631710596148469386067876344686289289385610847649034832053126290571612474751157580860651694347159453839191309100318776258515837811512594046534749726795187122839561551429288268727838786962167540207413824413930025802315676526680959499803194005065863535963221207567118702781609824397443233352616483892762396190252875024736136086311682957744259898307640018962374184058283343730856489581235542930070476579296548906791395521596167543800936041850037747023988289312101429998281289131687657649301339033423907628645167467718909702681377772397160596080722015047094483167538298244499433878427855389150520306307830286337226089405012414141633196371092542715151459995139318050034118391317555351693578262055689819202902911329078826058316268220891844836442042347787191146083139213892155947138202277497910693023237234262687008936796338880766718153497624753538424166676499454294170395186964772969697535000087119881273875531722961242619520598092194373091908920526018422297163391953719182815278747957784021965874247417934525837709568193803751851616434368983465805251798507602153612196980801289156966557247453335652396153808389266904144950079792041884493392789438660188748764082775444658451492268430653364972251650988263915817853825558974630491508258827343504629832311137161651204170843688078677671149163013216935386764236466640529647012637768382524819434096117252338844227215492385792916435506839853711820508836294432094405152562985060446553297403713831984648412336506137538835901272994970553445293028455855225074533591449977429935430077378124711252849487052613244997552656949220548080105305752546895701475090772598950499757692108861749076553776975549451856626819959899908027005927964836340794265374034632005555193770407631240643836857838551130125716145185670256008111244638890648793476478520964541630090119270181486959873690729661068465819730877279661202145587425290702057543732019824062344451428858283136535314705288596718035246616938465881825209954968936193928413239202142502727534621020006675365641710370395209903318828100247712672667464693208110072065821303983198725594621204216039648699327068108319007633449156048304006446327143747049557452125993356132634020715176865624098613596674928196740063917341388100688172601956885342945287658938183854724785327470228425183108970424644241959798131221841902910305456119695401124602895138475520876686855434365191720565696614789984402876094388775519196754829183368677359723518740268102135637858172891783169371784159364902460577116130940956215642386392620648383779722681577708345461515713826914315596710236719953875106694174922631373504714739447280792219331575160636921058949912457309931548035616154349381376661207519785087639908716953321444541738622892809213296617697538411488718343995831220637288596449297917172601608269987008733867933215600978744620554769777934436708134416902618308984991020287782310846745484012770945125541912090893167537887811681632005265459071884304080763882858633366810178357552899027340666480316954208702292494451285552239271238816237422582272649666126867316369010435856216014754247249728365432063238055302128434903488963036380388751668922140464552044169514997503193969626619483976548011285861079629828153720535327549347209493021805479036750166572324767020503391526559341552964489506356467498644826642423459731296123104410144450785436172459908057050946656158816793447403515784092087524775368417630553052466937522887496372261106352300610638759470765611599858730030215900973781191586012643303837572952031588440945481320968598047969845294467139348207860865590423337202895906764656228088222059057318084896241153400660639849258451538270627648712671290295175464682317412689631278945453681756119420713796465196352754150003139816543524068871183172991408841048810912519570588598686392121063648239441822029492327017763029802228198576367672342479777965598073915110790252865972197788812922967444322778685442723060386979689520385879992273672219089787958952536431387052820935465698157063673978012288923081587740709259964737582653905855999098815125672564935360543696067151806833114658381396493114218505525247168565200912456317161009043308943350757204184071357613182363471652775630185821987742978826191401463264268787168631376131059646074858784551985785746573827866951554455996451989018892985664108167973006215824831629371652172914118464318769296792704318795863465730528856220730528625809159921479434809270961568021809546396274799036060776835366606099520219858543301046650028651479266528671773204477581832180867282095582473555540739155232632411293803108427682539090097172210323597753855095060544430162319666350668924827286482786891594583392330514430674254424050514245321776986685978922616330399350663240104745517821122970502821279335364070211212403053272833787640339861057071137209414436584722118075401185008253950641217334957532701600351035220561124033002581617546813402490048923081599813011747219010487943385039054607699493503016888964761271162692297812632540623084677947409776652106243025023386078178215106899541005571555255323775362061182048400721060918667870588051132599132008486946644032367910607846875154557891134713291830829154983666996973184880982817703163201074079676034118123105492547074910391660236004274206338053314252430025853739763469168247097196111535217978395889853657916326199437158963532539346052366162658004989990587558560755149388281984992877800005319835647231296029110020386203056029500858422545702935805267595921749817107132852337737376577987621950145836605721457690028057690606078738330422074938223225447158570576660815092157092324651656519071880405933880013946451653646479286632377641719989323095270532396934372895715725336889194652118099969174497708504681632651073692783157768568197591056361952180122327434679319241710711760541416707763598184365434244100797721128029013303535910537848238518288053874833916313268603821319359376756309472879107736044229855338466769680662713488955408566422835876702557403518625496077044228929004337396022725427699815136705928949448870735764519908135349815689398600627004729310046219010204235586822021815943404074714493484213131565423232406187695173316329902557566565841952212294251677660326203643260664239737400965274185067685199434463857530736903042589761597256400010936841263100164651625017194063699714190240454445259589231870107926731643962386874605654654028246854201436077189955619031419043931446133695192913967267566907619757943105051775041505271027860549317240117896761530705416622495962670617527905680505480573752723765500686651444284078017204654892509123420093303120215921258676019965775074316937882315482792727816966730980983050288495607957905457115178038880832675866184847643821355966455966106430151178821129878500204823127553845624398094116784598316413174105564429822302310130364972046331400131286632546670737985488021349171036784310641918650597736215103624128001016634802222231483944336098461485223422739313968770530314907651289823234331913426667049456245960985018218987535969200120064163872597826548649565445221905748438560189348079765414141904821333884715050987175877800609671304543488854820311296902106224303902585611593457874345692378389939014315745888861802571362313069639663661813619373663315653248985896713123424096598139183467519980228639611005231347470695361260384452581154473934054216778764815603731695078536149336206114677521042368461902748275513760072793027120284213673290984622493324834573601089084687573476508869387762051969425704732683348223197465341656844733872738370402010493254714727801236106136723876215062944846608357578625244896956935604736259967018946762770832048521744276922124526680056303636724703848016272295392284519467408429352935470602535321931026724583181325091684795063067807155471415433057254859664779948520605359407352105052065110665432539157709059107424448371050786874286247057031845802599118781671001075381652231380324363808251897521210768374800249817890050905539991492277246752782518205474396868275891003397134209499524312480187107391778046380597923303833247430393463507171779475614892863692186177785181025866866526544027707495954758882121673457351571841390312774629983967022461694933230931809153757368080887265599038573124613934326407532150451350322811156430204141996200406793061647158107435515342003341279652017566394702497553327063636075394320426623703413729115355838730854398779464314213532258851138611690442869751379141936112976612563589895193038725848062762182393108330810927335725608147089440149898700117441505882555173834232127623169918474381026245783963544575143497986466345983521795179393837675404856437808346732774166913149254630241901422835319653199964812782201823546844399710368841760514010330887558841608287746298139952643746192113316762358039261055318819517292254754779732540570296880534729280271132598927048748933905446557587311075304521728676940145789874419308487166521928942729506563608273671172565777446781844326945346863593933703707909199075865526947323197377334694023057425158270595554274461905048691713632422867107324313671584663299971911185052981607688811399259640451054608198331686037801545091308593688802160185103993299362782369899807484016989075787216316046928911480501337466181390648929815776194491276193390406991617000547398927053012690511034375346764088533612385487912330336600396999283839126535365691529971278640319962630251862946800234550580895996373245477325361764451998048494030473563933535956287590454959835161511222233298998320214770679858961534677372324918634680532554167288000456879502629217776242020316127161799786240492942179794168153286378545169240723838181787241596582546519490905834079817092587210954693494452476834312256615807333435969977586770472422128142907087608037458268988135956036708707646766049236782115550719406691901875000636382864244175557665853872827803020853427326221256696469408786627542310470907648007373658964695408137816369107927784523315682266166607850965804887706768699648325371739658255668315596485270827087468166576169852230770349980027540963510330454439507157311164629985015765296786088682927633854055941123950137466787302788412245535048308858065951786721695825743069770033382231706964372100086484234521263005787589932159831089065987117488588437926438883518244240218108367883535600615911605658058863459847148152052667680291067654747695504360278224333937469216900683449577862462548066551805269418111124145721977223013649072013837606006268988366338319649946221385692570878703582439897761055368583743246381259495327641374669836723719531740218102996628881116431554968384297692979021757751321747227558248646571043022593603668753373414113263439831334264290278428104454935672963115767456709005074461341182992107295178586922277099511928651732086762962980150309057395387656067072194197236877385256371257985121819045019802463583971837877295025118987593932299491971189767273076731385468486348950925737056342617419164671345507769074671046230729956728424867993254544957793735479519314733142663405373958932926471205528023953005697397871787964859284635621394777004838339736459053611842951306542032834271320093151391106006240219020251564453114577014060002619804357381121852484611402780196984725542955152013503069148370771612411683391865207890214266018908208367722124849614580127943709608168525016498809826827999742019442182682188329328373456252426643742023900647528551801598364620432954465100934910145324587451621236171711869861368567530520671284033980970907878522915857026610602249588426535836326549491032549218975207098471164528447675434099516271430441635887985528696121704099578047179667913597148997248415918184722447833327198447463897876071153774026907317960604670389554974563673420796168709783051360404332972645605372943618206643651576052536345084651208373712597638650862227894676435746259104985821189739445860039308927589862649570507888601603577848008822515444803068770548256174294587664660513648798149080594588771662706803422562596462770008184972165853069924882149927267002264212353309589151257051827686628792960604154255503911154136271301031552531592415253356681592528316530476684093439506815077847983398000019030915309502161135500290684171914189492035653591000974045502863489273633810373880395087731071909836869891443174268215847814897084551557924657697966328207496846085054588043372962409570650408287196335868899806224774207725720416870413026101725111280218010704442550252568474630445124975388849695229855755922512270100118115376472510920411159452534549318610892932391836431883711196449238394197296701482824556459348409007901284169955778698587469828376442773945202482531145898061699027055655077430783350712900896960411026043690906574862549635046901581686251687533280348356144550119908577184478589492976527179073907043587853322108515032814241537672482440998432082078289054532942591356092894901349704367204068420287034542715664652019537460138991630230072418203176646541318689652625577802907123688729038256790880828522872329758051483887833941700839907470651408548148933135971134616136762374113487343171962449081197865467209120852041796710196454153755832487086681096689569949586508455187432132494071600367523877997380241739378971561266933635382655985979060002967045917084299546795614150010597148948173472279679060784912242174615253008726831075388949507070981782438591611668154624557792387176903294483501588065790312584546540306486279516712861211260053515671338756591444218009020641751713068635605569037813016833909537133689526724471569388813526442032290218837015232992665148400400793246832006680170624551142016991255790399026695820714614249960433434532707794974171187223316193031192858030588971994919458338876235542644829756859175233578212625715023983671024317429501280552465434705160074518621106073337562031249262706620331323750266789061209726784548115280345783207871149832572587842631174804476220777163907761988595828661342463311198645308295521701954579069652225817685882756692373311367446535376406970676867055103424191224565416976660986722919030753468680515942181831804353996576597052381524023306511301524167329532219102330188806556418023712373622050900923537274838236722695619588009267897470323753780232110506641562920469664980763331160658485543654666209943735491432577261310760253907713295469919802123008553298083055051821835104519628315174232416908354262709055963847957425172395874991096632608099084819962212636054467008862810275393725641332872548313985674211400278855591955638102079759890981068073018847429032305104898143558985389707935013520190382529616462368332692973668658931483903086177852132706810478942622649761653033003076698946111377463432437839510406994680558424931612637835762794270982737975847622529214057512627043960504971483362535450672534419896390564041091039742962892429434261491651454542077800070107627255717849872432021064056913863809251706774476000318452897059505236601446346159366081666297865461845232002321013612554617970116848085086721432637613524642625473713319439950486871496609499240412947017279754878256161280220918288498235835191579362765832377028618803355370180447736767614950402275602267503239428732229151881618515444515943412786575406226987147429780727185371087760063719449226319695869988126524494972711125719907314899700916089119154834308468503936993000766645903156622723288202323001348109247127580401560911621708348771709096494139284926306398826053717167171146130574595963426792736016189766722294616907891558046102463484265048268848729028986905529994950514703403942243577692569641290701358331573956287219530796708835522143875753150904907057565864288330151547312004883915864702293537246281099324345332697083490093699077487635794578973372339848201743659493061042211740684760628634844979403496652107615284817951832037159713134934121175733294908542150121820678622534396323786739523812846022098957438101218846641192483411563234625187190112803647266367471061577692005893748094022153207149641028082642882280331572195574824522286521388487198663668121017470209192235584069001822157042042912520138134492688963089836676587215100316067487646865020335687800191641586552657349671769132287333890239021575291087556522522748525643880473534713680883179301749731251692321164368691610491972350591036941843057610274322822071062570135994813580361445926951818880542347916278049959561037946143894615351792048400355337824462540743150034663243147730866265267091689031661034583045558839398183469364732692849976337925209277306220094856948525980742329238816162057352502871984236572381077223428315759717404831223785185677247083240591019926355196740447828234007925644328227566333399689059646570756161355666540324626835140260163721276274176634646755813228351602657044093811224627177470387886027271893967602532551204078854598555404238211400680026892893865732339016343635525069374560060013917777805263657493219312604001297418899487127638635206479550120383507740185615634488111592015878699581890615691183721651167199326917893348464885715726788103774302579971408676698912493840873666046271625917605231401216011533209007236032706836233073329493508860370736107619664870165090365466393174303628023560080028861666722221259448383774560914249653335211142612368060118754009996384569143643774372157257266532923097187406428011071701231706063322755188097776032638311469500920526519422062063011561456913536690882403129360496879822008495078387391288025151038018005957748228526080135959780677077647643269135093235768808010209588833709829703633531433415795629028109176307969303620241244850413319961281006278561962244273517050982023011813131688190861229683750999393359246938223373950630909087496973335325726382387132274138369764947905824882644063620542173199810500179216595631648498902464651488782707817791887973018004443372404165388013129574590939713983031766220544456979115786462662071381675789318182956066298564464916394231209093549048418160646770029131199340087660533107495344306108540474151128283221532422162574533278763350806968800722551725187431266803929728611024479649494210831193320859720415347166684633295150562375041746738716101411769852886693727126209617569614702690844852348871766009022443395121816324895924430240183462423649596557746299527466313866772445234086426522799634639791598602210783769362255742905098068124409631304480738676799358662706048384346444318567409028612037721070142391970104463338268952173626505772763237808092717601849076921615768851435983545233942901383836637478642619678481089213052985415601314807462256019894203361557277546849660203375182495404556823077249424436799468801829003570675073858448580618174522071008799765814686209821217849559727197436086037152797688056033345091142206211382600882514004556879785208774653253876225003562901347987902126658697976372922908277303696440983740462670948290993747655984746185435382603452901146765328755671898969004712201684581491953598817337449581093459790338594185429177116536912084269797053139469592494543027788836198220296121398730971492875169407183118874421316949770841095463675756634025700273258509256133164750165661411266493421607602921693254152759554199271051392771703551157557848079193416370005085891530340884836375198334938070267343588241378009248718549797385775482658005964028359740469440053498668331554922272041698205958826063831414324747600150537769646937890523888549421818059889064446844571739988764259396505434036740942765127347596283466550392289229487848947596290369096112298671995478635485285431222949192494543752303590547385534073641573194032143209295207087559817174702446907014218763967740193921963545543380221021152945790202633196832493594296742935905184371663204453356709738021325147307531960224859198500289909375388526786538736999521260793425812073793467806247672623290264733079283789939334562974177620848133475375657219160315134951038555692874450743123577487430838281098255267161993799769292885483552926989901251306338864045775012772006130288829318987233366980468835547910522919316941897069982873678024287785215453723463864597917034539316150865403555642840890058389355228152611315384901127994491677183032773551709690810512293227369676578764230597587350279594654209869201396085558973719290404244397371679547278516168993212420257771169706106250567437258338633961763296900459365328110891491777100605844680254976138592547758774316692327907379702347513134619385516507641121376306218894248302905521952865507846076247756392376166751453641008133844457204898481986786490896334439914873794998773072332199163574268161842607551022429023002514578613882263120088614203894007612527675023768808441995504082895493370194925625052792804194834118242820252986100831792963139898003066091665411322360979264190755547938838665847554470386532943932358117949504559034709579485553570573034259288388746158408275710128594565644246806914749881583439814709212913224954997957195169925871207314560708373951804051825381544486444462736253898882162598586939432062895967345152603652320355306700367535693527887309225548604958698652602919650675965189976594957195729269456798192654809888171972874433947900210004092553925012546065919498978734708199471848599430281288087896537635038153040344361938608819530488349981707291119488636769347170886791167439864758005316007965749850742927202360060606575109192682942340782935034554846289644625551071849137328926782568953212470598574605782104034317723405170587736444898321940411875515798588256659729726627567998441372840615290955917605990335974688066762121296738042240348084889791446404232628726094742792939201152428488569450959428144945151866529485817629590122652117117999602163801590556438389958640552818362147668538583283780591032582134079034526930007724939787252150625305587797946916557366154416955962098157651968741579190355456080041580607090245797540474424667020996976765938389771874432025477093305724110053458841842838248666581500402272316252240224094806288878449659658449200167641220268955462254308450803799121905773857648749218601948573147267127104790957355511965522187209788217703232576479474045851933190888304049561960873097784252809163582504934161018432786592929691394863342971697672416558431185419606342380480052928662574387814138529416422159616390354061950777183156839915464908350988094773963510271540479723003555331089986811189241738087178435591991606964946820657659750145547931247412577556703472930457941283155250852725250874067409983124104574715966354832537836353751870170008727939984495714523429886105379645837635124188751344666994581535848268769390704144440871533682818867042779964532378849165498660814694527476426553656394447940822493889337415233093082491906843209430777497519938802846178294395713057372488949782748593922598837200659611063226048275161398477766895180559114469490074651371702424769176278086435669831115618885882898866210744528913948754669768968477170551518568516208730733639251471399326127120426181147984059688169758314450803720397650889409562195101837516145111783692959892152434508892343311857091052692839378785260982319025824781093205902319638162756162362198401284543637277826673417861134570248922449159462755822568997055320482378414056027022270981783349887158505625090629868650999431411045134635423144226100190243345839420554844063742808032430173572349964254933015641309966237896841632654217805479735115584321304548989520218854660318744496005051465748415216949624774348636214903836643669138069106894007794531633101155174660999358881594136823683215261663953672599842754047074325746216870402339959841829069216587937053240120546756553536518999683919466193452699242747551446670412587167622288478009393414888725392009166934342394806262253853366812865598949254142838907465444317877914461697305388097963203168217080812096409803000245144769100553418616283133377355713258870680607400146984210215687525075060635001256510361049598616127655825474111099599678469222864514853411204835640140548266496392290598770445654542117842716920727691086183861263084666377906563068606491023481438582773542109731434122919227432735300601433223027504075175428023408451778595680935862032123879982958277694599102440385836491371895555355918052501384045088254468702623156294568565238256008852083671755544969010301519150033264129967183839406425792634927414479621622700973279312994687420545245764788373122550122397047218005347151494686452864387951642473161807800767017177997459063762817383800943375858090088791122386547139521532174777021339484191142890095022235972767197166306349066960361537968075749529234258473376155590187180499351557822987783584725552117251171220043691371995894554129499925367019019279237563147226768136710150168943642037937527659841052018036473290042807660497691566118539632051564484471770460733311247318446127317148480508459848839064641644037536804769036984983879267227556371094214596230288742821338965440483998020185670354463927399492050454874754936256887784694151301795741073900405802778589178075018792611738152430016842658783527301096996559918989216163639208969659857750285990590255015210502179245224097933976438916736085333520370678931325319030725331336559852291769580436377118758908733128548136129359694992802711049104268383191564760295098758516838725510179153078427788353296923864355635005095268856760123805779043447348981298326769667788168811588225202070363809796010242177854198573458243110198641501274948244061732911779784028830619553537051720112500106593582926878841466009642105274592358971730081806705303825019836968589225334459824056177957716470573686314503905728242447432476252819071936240683577652912713484761279435396873432705838911049277369073735998213227935693940856716990228574025348404879622087259044925593572254866829391544693967951171374957939419387449748898124684426618467626382753489452910610196976409999454731179245007300621851141600946661724646878187565813691341688638572643268957899781479879500640697074900699476093410475143012272053294578704201801309134545694147962567276097901124541101827138944707768822963891517363755007195357897273601311365084007041196338556264823464898113978999854070340759090454914949790880312946975421117394942144184873638565335053468054785376775505384846461936794604529710432624298845396626661098758933902410673418080339853446198172699548055111794521669967228901887718634950158814613629874202727581423632969859800835713369907255202084343005092320156461505184352795140461429978403031040539410751060858914568955192632689955390663176903216462915394353183120472778466253509437636840816044901005492290495279646862938142984759137956318177758900504099017611585695145190221573108092965264503736557531248143722623621068475475362221070753321891739408646186171121333106553749970454959484210256578001322446953276023153924789344181803853473894563798167531282858078753327528984955846621821864753474507124437872847204488429688513652477330099171587684435420482451172087878829545023983212842628450557125061565217172128832828650514814776931769404160905442757094460329097463853999923900367948681089453565214799556767833658694681779187237469107166488388562490846517141267383141691750908552712021762170651325309067107769622323250156720618578299466161774509071349130568980524895716391540517735542829823964199310831563045540598845941259765444555788081434130737423292418033155499749268040759120141142513446896185316727232588586704594139609623933338380129698595382671425248357855101739957326637628625542087437812173158083117074982135868549481547536823510742057927759497280025357964697453296054065855463047612101965833401681569297748665511514950785877978684276100544881875203863157047119181049798352531790462259703527870744703208162255555425575673616743300784856859946519337183160115008258324426253304116757829160204333186842337889652917728586062385429092904377651807937355442886938239105414665880845201552393454000516664109663906391879057189106288066267465893402509842097660697470996865620564837994836047979609646536525673029054114585318514720250608772946907023813411524685880845361550190770290506603877005351726555613004059759662958064700725860626217243238335164157277420628524689075605885657696537736136232763352873606487055880305847556889865900454116235557612826473728588988622545529816231726528461096718517242518422838189506288326717733157988037736207249994149557196084729752989227253160429835468557310449935987497423629773197758577171075737183429635937420560296108499145540455155193842289642544271582441751069785596911090882546799729695531916756460943932536936924607044793678776852914721357351678779765006044538010964467828627460834370071095335745800980036333776952072034009271778263307223158077946227861811726631417143212362039719043590904481749724935185800061569954329910907396682090984098878714784803074323196029852791915295730990799579328765509311260779717111267898648472107807382678380167253884420543176993043246447454103610898880631565232971569247253082114668113994423555690119959795694764071254321283963624753662299825669342079660934620132949683489666654267574586792110489268651301239361792731367928223103513859250892933881184086849022763846998992980545428400668401126956460130730697117563449467537307067536619049929288594125633130551592861773512339661101263820120480276129718238059782124519245097730204625339407230155346121362553087130903563477721415324766559587839893099845981328572462993128909442104782924478414528014980140960967772429616355710220881656271128384425502671840171731638774996777550087332131008907159816782523580519691914480157799105180768623370077652190544364783053538529528674297414788454306191412222269479017207107637416703150694083239474945318495466868821384641590130183409954013907758329523670694683545401543387232426973200971948996087158466603774988967124586558131109934204560122127169726549504128987252091439423900282321949422885636006301504314999025960942375079571379679016096840142476280791522605736623653189614811648581405259660422254997498064709561243345511549095208829502831950082708188557339565951178345585098074099300663604696701970812457009625120841523065207067973250301770717519124557551795038919093026628657502531078352298240632962122721268596271677973635774514954331056716191646858176991388446065180780580192172039063997283326827149844541860295018714726457748546826174344427462422423558264222953291428756364051649924097712667721252552168155623583158278712916755903565787044939368067528837814178029672135083297221634861051300971876125795250434622921405438426794201013597630418643755280389236840041367736073313279580310605435368527226219172563439636789259081132110960936003285694582001186501063215500790690359010810651857862185842242267827918027009978992922932420299368779792594264904591606747390064857114864927290799531885618062801193584912004507810095066042492194153101770184231209946384263803144213004424625154970373074407144313875092265015697791142231467554495569690929505637150444035386013406198949968810191231852004877178051641693411447759621893424303492117698521803080315263745257025201375970274389135143584963604802264732697828092636169422537495722930442780971847914968530183223698732855706240264502242465610526586751105265181039031378367348461567084348298066704490471954561621267341280756625557438761698429657525287718213172153411304985609832719307979273537087619122800230978367883233553990838760207192548720553350336963513233994399745154370897123288919366266832292890489585195768261494873217714000940531631443182186518855735524660452246009034418168114708098227642662871630219295212821004918254937939154183991288371286627067866045446961387098783377082706774374994298445727283394053523752401948334322208820504057072678077033803313830711254179345110565792303930551402070641226738115073007942790066100796389390908877800004289796640879803831624134754048974110343571747680892933356181981768030421474813936813794286060961702238113233637284455370219168038738115651267772620704602896613190004711042239097358166527062140277446836802489372596288570784913587629255008484998151939732640083223356243584884963031268400073351832340177643181707020099196261353568190221338817893019579031533456946952953873617779633443372096053175944017650486715395970045465270611268281128059996391785654190069008377734988975447166205467369872713798421510059340511118677653669742607165783452240482455533862809245491113135837279090938283876210270327766890070526170451980826790709143565833163812624890242099478472790087612463749351357788489290491621884211857579124527656751489299931303759482393204909085903442360619730577438621804894314292513692081305153253941408422268175611969886509328584043588551133749377293248606852821301328144342992054443881747844302097996995095885285131455140010760355866939818236658535375437577678359089429460676525424826121565498561760691340606837253264585860333014489478833771324123211391800470961395274428437614417576303424012252160275336254390969581372649657924078519097309098209053378677909332953406259940274402555634407536146768371839926082897149463665090784014943251846522355961678333034005037375988953683849461738220118205596469852191292153132524355101320103365240344176855226997986604375860870405981636576407857897259613223854517128480877413452459283223036416011458285934249837017856745248718617062557670372089977207591360200091037515283508675027355343523159385516862754175909024927540418224995338335090029812128462918085883697813645079936208796803678813722941416863176117434467450596316126129837884382702438030551649619066630975984431777659883383459597357107562219487857749486809711224901137372144513487572195100188351118798397070734883202959264752711593813392393387298697502786063395545184403889748573279934091839986589924594422416755716914354855088086425235840220753958419844019490016935629579119146695979723082667990504124601349320798042792883162417322591719414993089525272452697664203034799255405117744420778673500457171357599249469513455563024350728584551138894309294722163038691189875362129423600393536476256875328554995043080927265352908723798413551637461376815174884816239024708920296087525812305450772218855844264575097185274979364570373612347657173789787915576674063580972657048480396233222716302055736119270851659778338934077618381752531166468916063151352249731820540115987449363671431590767021551664554014096751242036811183379604561545941452030139180121580550057318779642528785300198084116396812252991123895949984817885441065547133952306295098195883544413796273018914469992430994674901998443950374104352785162113940634083621063396409588292288228992641930576506174154042527342586477885603861958726860258460059623252510373345630491530442515430812669614631010313885158532084417589541372586518736664839062987012782660195289243231794356646525248807704447077367855214699370480847136025550211283901301250648409835381761920147699124653359809293479587379349405934381662933329836404401827445605984288234075249245249273885630758216864301396456860741027060890768658940230096156385808756207788281460718827081396689927405514420311413472721231906703459985761093207445993978209361429172157967086418779039481498132551247202923606938771048619078843447926516498110285476048636564983301954919593944654268691357737037690082105347981969915501563685682538853178762180094374186216512629398888179323027105313194483940281228121144682732638106200175256718497159493813985145630504698588849611495744158729073885598820864574888022831350950418047112783873244627047201668231844557062280606879959705170095517277975090137850052614926983629163293346421635605820900171541362716572292379816463164754279850806583341125383284980721393654317976865695722408446843389843408486744613141096783259183687965691130401307729627340640342378353594828844003444606688449918509345919772978127906573959837686846602381326109659315920926865006761376812710683049102710590439968573394232502531702022444066027301588924441266971536206573676839395071273685386490521852552419342072963741224937151630359843350772270905974038685802896856873842137062163598953622887724460447396678956016650510184904337656149759568675352875092999724317737780647944054606076696562232103921413782225650142319442817642563192203451793503679038623534933358851693855833599674238311922342525535228684286125648214290107182658722290703379641269469559470337395482489149904562863327588973594942194778915970604762472731584545136678351590009831466044501849613979410802015402495284627320150613170793380764817936679158642856952894737199116645676484872148959088882709015237085270525179872627794674111498347872273063250418504896529622169556997545641640966803202332703695751370883928029434585615320230806924663365610962695612134725399248363629809176872794985810791306766427480042559967699533544635654204472050903260350058521025276829234956731611511169447711660487491982913450145636414379495200890531256333957840557517367013196322031401505782196550283747409188421168306036393253535439678117139646795878504295084715136991191511537520810940666456615063139544517446729278015298800407294676813616673867771590950458458929239486305706650958538784322783607032199152806076081692741201137408052648325589035619799543634752922016103757519193853074030924381150937083949065656101655434547270498595019943390439688169239826498155626069770377938112170685959068247760081784338453101501999557867269527606761469294165313440605549375357001891170068019809673791359839768169835313658434499728259497443945343027499732672886287512166571949856936203341463481692081668253193306968199034843887619186222709532813414180920799659268398810483999798523381223630966149917787046579797526901511032446601595182430434312496428226645849740119371012988366687887406886858053990597503530295020904783733731274353398545366518107495392806779363987342920421685761192186438943682348956684564219762616170207133012844345598121970232395761523120523178419730582058590117588599673285114957912982772028529611701724088933750762767772861564082139383152542096423560260815576965405178697190860694646421881416383366459228302902719088763961866003872405794312510478890524039135645085717734281775787391009487463154073994624929381823750559022334704480989908943722773899863827335133688582384738959792525118498176806811051812682543290279043358135858162209354251626631859099679217274389059138157229466102787028385654849042295189281425583337413060529572116876052899415410819112265105317697114261214118622233851141870147849097180543600101652218714742136731853046811151088347444522238494481875254220405141372567875495544259021868825940732951638117226485343042411042108934830384382751348253120825360283116818612970758200907935729797591082602117092883675300120826537973978874554948409911811968866623497471138610078938596598960284423249569581284247499975831921953980877315085679045932253594322981521648377258288344308964226682754556537765613044486068425219023005166785194909428701165646204002339048925262228144594747746231619900546308863463139357323311811933688698209119812941277257287995121977182606837471374332387162532344378585808953971798136765735732016009673073565157964750202334201491401399559908093405526063912913076468238920961434979032728736501647710810164287785386366835621956084960709150850466758287247366695888154594922394564691191772278730823926239228943458057396563568879056660855475788627712313266280794451951333918105077979303851744628951152372305250702362187211835723942408932917501859102914986592131544776453210342602147713100317510121312780795725876885625153772936415398397956379324823721310615687590029530580241750863957412628486042519942224083168939684953683444239974355499409148321123486799023606589125055446767957249194706616281122627987346456591734017516156849355745746858583743667193696466677476748382961377115452208541468287777369300355481920937759144180059042056574759279968053503565303170303856700311245974599889510548573093120626165548269987092501946166552800564843416481500872144519951195112058404745827718457387069812789202999451493728477580765930554649962286415687746395873240001545911794627521173705261504380920586156567176397876222163677775069591959398797746911930813901963137489131339883624807021153844946792741714046526515034193067013711915834964223175270118782096943214730212846707521251660748672571847661754134527799926080037154206084435376146808786303671885577384408594563332799248849224678085976785690704149408589259805237392509894903636103263671268795769457773159376274748361664180542994555574289211199217918417514211412287194826640410420595274893045613526829016412449201115686646512425131189128875785351307928357698367631647312219845728614303613917401986175893993280014221375734587074097093980919967231982130840721247008677807137432416219458140503939595880385514559145032221128186552903889288349253364891928488160187617616617043717370421334580160552880614231413263258600906962775293365085003058996376852656382639270582944274109172792341091690284087973682146350490021909336309751662344918343418225690099203011663316117463591376860541397709110632342411142870668181191303636497882989591201589165220470187143450655547652770940230054038018270671610261831550044468253915408172378852973073354718341310548135808783434381635504532407914097811654602771310951092887801223752312666275330101999019470274902654440140267595215552028097323534533184127071955765063965928193866029243271128344624956525070293765869687875243838044884015542668621967701579917326260012678137548217071935018339003581850252355459386774041953586992460613258573584351975027038245449469947698242175758596965682417158227982155053594434478814701490049954441085137207924668102179812969298321278133714066862880630653529559640920433900489886893594892929436238639790083226247221700252725166812029076250019418116816266886311582641985773275655749001187096779380771282208882269883469769029679016391109321457139631776505052370272408560549554787867582875984541898115647648862009994132019447860184245763264672603043576638424183537422767265939468497177033702201752245386928649181206452445111162096724637139437408122317496886649717066576123380292695351722717273746479116689756062685292806832375158704341897866476509065494853708858412915964540133318322111698900360437459935522150485548242638514731432529902871838232994974365541700597312867498432622311334747459080740158593292642135540806392434145071564024579043997337114117747543462255011959020518848782033200304678302336397620394445614478655538940320386663505683049563557270518264319810328189455839126986257074165927783306551973369564188927108182574732597638289557416039192723259646045827790886071910143175884329314208536997621132991353279635780186215705781598251237966599244340592414399217493370966533724683669728736454797937920408961005725387531525078327390674966592709189676281219448204432447587225648564823640872489798450575431015003962920958410389352685504802071655634127978116845849596543533791149074325093732854093180278657342166232520992174023601560366463571857489913363616355958546860645616441146768714200624981414257394200685026321341670998082785116321648362454788607968764912018009943974053171968160171301378574583478490221212417722863121947602089207303390132308092290446917551297570697283755879893448863821296336902976884553225102449983595645018228334229762261167475029215054639794344226548203876527604883197426095912185585137851013042250771700873906835080936643550536806346449279247920617333806493363908680623659641189690434140111006324156534350175629844628244919153317876212988970736964920946496136134829915168105550494720846250705868519288433005770035773039954585883537046409661541867241241094028355623049373672238722196656225779956699181881194246723508941310402511628943735615757496567111235883034668732079768027055260519583335377142312676859479708461930539731980534916236515280686065286247132898477350853448113217732525926197986332484667456272212223425238002558441073957103639435871988018443634233442682248663202574771368083508074400149456442056780065863478880820676704321370785723307870837925996261871656635334708726337110485262273120867792735532310092722169893467923591973893366747615437525906957304204416434282169535793528082497019145950289922595538741592299395695868273034769381769829527786141439183931529341302592908997883417509526491010661985949983155951529314360669962467800558788884830436770858759596686368731193890341747212700477430433886107859771802287319301199460000198165003281948502369752627413725881052844076366161859937395302638765746599127719144662556161565270863437361593727156240470640700576750677034284452162314141197976008428673349648786396614668767064276356660070040145576962030206843560833264896392608063835059793471601102622013733417567772382745595320273414386606034617529116607081444308825153634091552665798220505824183000049803532885888502473767720913494582596713189344233612597363620943852120594928405368144625789162861096579013899706045675330263856780357812214881861545175379108430342703552154481518471006352017310965351141857302052098811808118522314270331021569004606004553439716535500575960291607952632364690171617946755281554329840390459105839379683904418765511877369511721752060291284853859773629999669743832621562105064254472915675803493660282995968237005535163762489180823697120919475756808006279347851427030484804683701424704904099892790239695271510403822839873839126605967281286378475263131748083661385192931136496055226974729220445358870538239975848762850318750190225553107139731505976044861446463289794978918212362402688116556422113443123026108826852741722301836523151035169675438425019255084442891471922117544036487129822135256027114944462626576394625793499807287498085286512460178538024968028694810528798863586412005541850711270047582371286930356772108157414710512938253117425070099307124486503865538401590626349600987483380247950852259718841891440247820741182470038470306928697530240676898116784612315882051712244912530733438351729163475536212353943492728131919987485427143188492154787040853010405865034371553881871832458262480892044086096844881687423548022615870013286061778887263899051376129288160708866825149539434364528680683433706502134484305260853163309516052956170108428160720173369273086242081998419986450982897790766945164525196097426967510462742387438667760748614574675286377343911786895506302471206302624148535510162844183272243607386207074137489862646834598705986190454716621868577145027300352049737846843194207680819813747982294068866951132086721189195768568289747434892495677920917027774312962907656129897792554405103454689932226635013856510290407057858999320182717088772668752746003120295259071971093756323717612022953870716642572104433633425468767720149872869819723025582192307533873545080936475065315758245114021282208851329193063555433513590058147245192951155348021054428910737510718080195749964833518192531366239207958261046098967771869270200309114195534828058323499049277972351632602995428262040248082672514918666053699905684076110869127618496497715242947506495373878441231920350856093056340590195171510458371369256714148685877119983744108955648521398606676619745069680535746384608272767073384728862580659837648488546064123230708414862212337092679633446337955127355330845055866628437239856798302545217745224390231755102531596126489104029466918586431295891568865488758004137085465130716196311652874152914692610151055485809068062650797605141944924756575880430024681611779968151530194601680699231835954446748166484978392923939598056769197648896576403750767528655373841809291779433510401223842009230960133111563073150111058098020918267137738570594994274735314659309090510017713056656208911046763631512134246619091849409097166621035019543795946376091407803235303883501593017198930329980377281147490188504253456783639070246690956644215033420184259949487546882157791826504124570008276026509609183574236040570107464351537514165639620980828469926324510571429403779877348743984165665050709255292643818658401627766508889145716369918382494618742877600463184406476571583144040723001451056603522950318406345129404564306520810330610874606420798222787815137442378579057923325185315569827781250608767016119481126132924533476050717511452133840734876278005127020441987727390755965287858710665395601126103825241748408860375676075363515874268996006341289234419506276246622378320419585272434019416452177510216896939082264500245780865518865060404391268145188209060702803339447619106368971704846198881716085089304283262939577348418969413887646075501562594268890410666194468387974757491964296094299430864744703892657405121730083550595956522658518083502246417659951478679837857956397129562336468236772642079649535801025793310883499278675799407581702657522139344130273850596903397307677955026022909478354289023616448443570183861730018452786987171033446569828429636603650293482786889381226433519688949511058295340074538637342857693132470111614256525665952844581655815890132877657540714717578267098658002567559304377546469066897208029518476446144883682591471917795477040825729052460508982380624803427537062126538703424481808927112533400514012535126181719497484972619030340704631186982772430827376343716881703782964687432235903579082298195627092395142560606122978596760268403818337958164060302553443615519412237400962100509606792813635341159435834704140373211998918050676636596904473333177339049055913971638665672817840354345540180797807782124306990039131160315363906574655824676626923690177694353315596135450660124849586559565944208059202627767276839858831666440737233604217476170703791808164237407139381547992360532721924036002503152704528713516602638700170918582801588315533417516419110561413072919930165908839409232866764237276162084580714730532162495609388141322526679046847516704331228005018919950341826660260193743671459169514806017875064786775519068348759939572251365495146199099986189978191725949059104992925172446293893380844525498599874128349232792452352957568976081151091466625900981388142413072427515812226502192794248369503975831226084517521188773076417786093158589654920476599208570919788001193172948820886481958851822697059168276889787730363351235141221988964347674442211215167827771554556047310290798987322616052244420218042584654326574281173449081291707111847319779437769633908146255889092357736291079075329127572626619911669758781341593866786156136051393188308250977517700751768239643822827926395005113047148324687313178769002344989908067602785893353678476680600454737544949697170283945843657922481939421315115522756280062832669923902828852224021926990165454461902854376906434060266455944494186199255031495075072479582469290693875082437390176151528506837220120563284536382279903310718541405175714204635516204220707558177072171622399816282911691407248966817569176605326641642702161907048521150660253664265881279372337667605043115928910123153648905251496211519619022223493202284086909186271833729995998218344894799345905013636033624758430600848875729980077666460821171597605254520065052973072817491729752680802109751591068633373333700453175887926591542868604028081369725394959538559857001720733834908813963102834274513065743586766172265322280915617859316455419624228365764554719999872329338926597822295035132546722640159146548826668349477082050404903155153578518092580428217923262584971026009643762198831451829872756922589010601655963437812707641330236679721683667484115375240999916661960298699525971511116223190169891350192791415355451617298761820219946211220019775707223879972269828428509613478848066308375257397047105185744258730405703950737389107525486650086574686221209919978473857998141887978636744837862087584718520442447742453516763884929950061318519321759848788008206610259487190755590802428235229059475616087698008189085290518748133978738858507372081943626207361442467380364601607419021107768495525247113480653518962992914040952379622907544441505009661613783410843117695119378143708581166805666271415531069255313976631166716928523311173313991753008349459215764660632377228691006940927011952918647010646700181077113244259983017763679990726018392400952933828487517873834126003794431407975196705553898676026015167501293579558368616033097503043098704126135881797483332584305364865044882096367320452691842173652843627970245068121225389015106282884892107831789229002367325407578964916288447290971903009245485922791985848575726439311471622427749581896181779738186921664613719193254312218498947456582365018784636903633217829546211636553399042372941957648140872842614487126382751005617998298267826169531811748743926711728396191619299129472358023927808713121163177324530148225402739595505429999172214421445936257049048637035076282457393958621659038641159865122388284246663702146066591959348067489247870772921584329771208032768275820268944447396695558638291682787683179038569670744447637403306097943978155496761120482554521023981388070821660018745745300700405315953998423032513233575486899814717348817975840619138433347442108946566325884101397776888026762143776941365118944861563298710752648671605269795611346965852967633780503063417853075352640273229404850003520094008224602994879284294584988594255381547898507945374272658915230555587771976355122000833277297711933590037346891710338037029356149176752886765075975843811592468269806344314210192842938717032718159071467488008451152772260291891492982613215734476057385456430303031962815865542335370046631791790339407346435379015762302242427985642901182707396457018970426980596375189696045549220822464225312712681238138339011256276839338172714247563476291464966404607207448640911432646435935159859796158192304014869807207698861204728008884944050031750068010158908109653664744823122390312981759502481427848173739418432578013943052140678524635310494965560369086708484167509776327261800500471127046039708454607133924213809213402597988144439654994669876902852054276933452401886949399417986107310968605890688273034264397797661030816555029172857337766550517199785907875194339844315615131854888989785075940771811913375188048132724207740221660281607804413259076151090422929395546438660887023014510474376821223566656899850563018008705645472340614010910028692038917356521006680924263601913973675744177772498442757332572646507831283290628685968157023912617812725087084324984225768436308246954071297266075360447206734223113255465912618993245468292497212209364912695772398368798465478250744710467889589587777540400423508558499935880760599655841556293037550329713179710456257363616751355936350738283036536763353885139868335093560660534008128119609606377044544670003352713116063858316247912807492068046429678737857123561229975092655719749069001388838548492578087000323452509883881144852016683586651456660234041600224923330945848524432601293962578685820056208526692900644964299979239921043425433398991136582365598596833999636742458372241449286552530336315801750058876600607046251336443087564111573994983879203208090947227935821866525255186109695553250530672363026067224733591842572564805897316216831428544003327557514532240086028108167371039875484537838188423014210425877833988742448587707105444294932554045853413231897604015954453597609643992683341311861658226017134648522965401299296468904130733505483679311138815334127984196751183047217470693151584821301586320546062050300887418508303585732639623963694990116333436688982915204400994208553001762811020912665835992755840163600616271523277464332250192045405566465435948893293033702031931541238991988149140352694579830941332265908374853813245370975270456393697512138520411643716225977685387368662127927750567106077859533966409100745061165633011430989336902640511776068027327322593889788450656612534357446351489152043801944597450934719685833715752652599230481233580927421021330275227990576555802081247060755414556410088366623190227525264486113992137955015098719563423439819186713268086634551919195116128549273916751792503925310920091633529917349945727950880886371320908205340025748199115038227422410083997438323455230292527642738503998380844500672623122328990195371482618990766447309241948449576379791765293812520640828629162709832856025907766585162351084084897739563826802122706642295151813938273360001686524915143128106124938486447623506157676327643516847656007862172471548003298959300291126991425382243639659168020561375999836220941564809514236447208125327908772646556008487118138783144307179989109289664380345485345824192659047950979096602339605178132290237020284210858084968277801459792785083185513824455377543329977857524167534467818653305958595412237927684264991836456326800109095544488998665464093398077687852109723125634986045153421979102472953570731690636194254004383179875197619172248922024541240654628252517032656456821524875362960010385501547452791837641141528862602423700557074753734042348801210900834489371810897962411701786089803726226312349552597638473763000308187335547215250794133569980440568624241950844598257311922943650871521149076495670850735103570033019207384784392107753098027679540990470799947221023123694776473617758408876531103016917108986618639745830525934040977751084917741365704648990489638917827288885444348606386747551082380256225460749879080365325669854960597099800876672337686837020136350305661689632787929795638618138381347076103091954764057106554222855218751446820047326616322212254282614171434157638787065456485770324873949204144170754309757179910675635057464945440534712001009954891368694075047235028626093446310853804140754678012108684632187747421365652084369010339354024905333471297151939048977835192749588714991194208467077736943450495267821728726641048773573768646576024397573344300781767015909757246960342945453433547625132496992780034824237861595563938686301470366061465983744043271705224205774463352440099996856152448527996550661006448643689541863497802695272266909390081160025513521354080181264874709704531968667555603141976415254380449205717642764954548253222810911990963110853400453546597439032278787718973277328694688534985643714343769734305154644751764784583764938678633253745741200000006537980061065533379332803201849447291306056181875838740365928475061151400005225961270949928319782928990901011598463278393395656492765824109030615667202097200844494995302198281484723830339407877895634780402309827830792063158475818514767547905106824792368341798783731913424067471175403749336618419843595033641822209024999621246081317238878239025623696043735165427290620579040964828741267886450245929292128672503063617410155258050069520322429263993499304967010866490390052871661244362227489144731787908121319042102273950880410077425135985461522846010623728760046006649340334125141608509099724393227969249360973415104121470452138085085447926191857245437162911134869870417184497438476274121162364135010426364934163724868864648943334324722742290773385541550735082340528409628462941521691731647349210038776551295293108558967962220113815241693668558022655969741242762053644627622035682420909591376573340936475632034784708943612688613817276205048210872748190395916609228817954411698200791487033364277858668404864487862469952727600364355100738208306754258948323696188072337738752407010597729189745644072822488561700763767146146767686937876059328252734102189554784863604193024371869668241024253197698908939011887339949899702853820143850838288240325304039875991790214001703363461440300355857119810114031425058696554518886230556478151045018644559930507056805625659084233043416380022249925050845114910707494387085673686419921136608592102472394262207280064034508523741435269203192754746095906476315073506172440811856520637666051898209557102207775608422011885517731037729109030997484769082316515182167501666901130026303293079608066573457049975087792592246148372602131524940506937562776749925857021458602547365367356217527557957489233432760773051052041990624467331475696858986728708335749854249530219849888591477957585858541084955083207028849370036049013436236071643657595178474594531569403988746264445391112939359574593868281073882598842239914649445590639564002497162098786153594822400838112180106627664022366251617329789681746703872119751731693749780478148664442445060269448231868263330834929413821916960251735058953234487525804463978586740705356998845741155656185505536969656381277487944303307559600369115796007066379878012882753554744516687032267041646111167023293969149466114530192630295836075714597930034416927191301691985248839788858299910024143250021739638488620392300608824869384128922832764502465550882411825331017765589863378530137997092069122552648882759310776010433330397719523466989052791395217345213871527916545240033444884599002957321949209049320576846450522316534843337375946338863464182632380533199585010831836846472692943568261697600425545408615775149324732154335143134911865399064435166556650095636901226330918035167866242247963963954922524848308862514569012262221482992033105142054297889622067101114307397909441142867570935253641671399418912290243029305255844620818388747888206700649612670381300648910332908722972831848304064231746080701908558515110188161263644279646112735305960993326645442967991120103636795583139123255807628127077433419653111825905625288357244905662738213681938295144161265072457595649836550482955916786461101922854663237543303029690809830676517434768076101159541626118461853440098848476458373982031246856447623805094722295213839434492672467184119993689802466937229236967058473352444574251981823279831713380548400014915731973274132708488025866675369603258905724573692685124582470316448647713918438034443534863766389011408337326000067466661991196062900543028507590290464227830575100986538099302848150638394072281451217683810299652737913448920115785374864858747528886615562654437201116931466843523292523921626406969333020515886212525650361130604352919751070526104107075976137116009294889115759103123513553651792658873043099518159794168200388326018351076916660739958639046745007281474585780988001106553299152841331534182240691695708790680500774937807122717804336002903128729066100161705043515966060182312930939646729441184351686811151607744934242440208022296962862718632928374095024736045706803545171592079687859986431086821074995031760696524552367989042600593303921511947443726377531198164816472186284816447687472381802524522650330461620976111690676606745234130452458275287747509155320036564897169137388641370109280484567240330056196634364755452119210371046344664216840847819580500779233794319902714188328206988371463476089516967387210488113417340899041269814590405013322857732652287309747861470487225734886107066395675397005582785315440293126310038240528721703353086404773474141604565233129152259076431845627446190142164132705666356391084690839056583960030237950566082943404425709403853094161728939258125055645119819152506694337294027282461244640813460568467532762438361051065267928707298874630771147374463091682578883988502586753197122926487864203959856449650050455383092486752139913487456082202769780409871695924960555551317714988972036901321677179239623502314775667734173093927372140958064781448982050756337220217019550698528817073561298155544839024181849975443402772346012392888922607902762913680375378875004224707347655544539230477549479673127439101549819140280581425423753953473454266358115345096121295760355626293443125848615238072751843516483074210586189058651588013827334850276701836066236780548675093904381894810998260594278201937495948579182923409164462934979503928471461781939077124118247387784683632265495813562856997853437154689209940764454905273668895011507367646570276435701705369832074181342914192379516636612413610648623617223897508340829815795053423308283724663469299298971892801645750409011308968785068833977056814391416397689709975051206653122077313350314259983200376337686441670926376665958032090623062803456965904436749134460051259960615520874642758947165409803315246168921807839400941906370309606895732435437045017557110980096983596572724423185231460434667819141744874613673698963572870783202741480577165763932164040365929910934316627240614871173780683836593980055868437594636274832188209887741172697908668347515380447090260547863527062922586097782352422145061306285670399716573968161083645726130220224518495516647021646623935333610827944949344965993265640091261567970936417312681216319457949666312596701168331873847316844500751158032711894055691241500975592785352983179357448336096670758706024379129314330818967527218055125656840369818127210915348804522066651487509560327682076361921295979800409437495410340825627549790195265203649388666907417893059753658202918168191905607348766443647685677266178045728840600229754280554825206691959298031412479068168726153608865087305920310718387321371662719712144695188496140070303707053088917733835039579862802077264285346350585112716308071108488868064011225966473990557491742772330784553084540550544991936800461150601983525271571086309929898816525232393443007049692333070139114755459176886353762579800778543414101915624156783147689513222943777427983777926375483033183826973173481951694034062864840040768954667432364170887658593030237963409986302409474002956044051441358694884350195576287926927832157330578393439763378127716875045359305346271101781533735378912664181454255419516486008284591381760119301616412445708105208653410482014467619783192766940879435389932940699124282282463355397811575064143147528338365482525416938925535793421031234576472465357991701365688323061510156212662621739794837207193052687974248073687171270512327691080642790693066544691976232625009524916218149734509577229997667603038403293624475280167673604937633900050705695747776790209681417367468078170328203011788663912000811188141205314617719077880853492577556049687193507948069780447907138758196380001745787347233621299705626608221485582744343810201131262473091618283756677056895303383532303927319043286195364271706243539436683187843427714786348235683959861332438765646527543252684371442750868078463726747043338904325127413951306566136980543032671963492712969449326711742351522287873943699402736997062151758043747376220873351030195136254391495223874157728443158220005953376824753928574312123179540244368636693047240464110345578659735781029053720202862929919618619496692385672459716346336314819719026423903784460266675668097402221094622366341296171170905643928134314208035803399621319211775230067308940202406568221381106276852564465390309570893059784692921274089267078582565436910786993769860864673289540609645299577107341555850097753403686422471731759542852840054327731602285240713641682957097558610103565054121268386200639853369892599372526823467779981101341217580774273545527802207955013155648761824212772630896057778987706985166210371018857121623541878398671541224201887082215103426056674606893118449221983720496529389299774667191873614007162225509761664798075245234204609680398727591987413016686804380165689368488699628656361502880233393912542383379778031164731942337053775886580336307609340042254976780097856064204150002079377869419281986426093343058931501276734441697469352541456565541742923269485858707382971816543650352163227660111510710425973986043329718989381571321772421299064153835031553183843938259157383291422539449724829428783966288465305537131103427713224644471731352373607569725582193946174487801796536192580359424165862690181555087658371695726837778481601963453882845577990857981701656499181657845891705711205557244694472943901332892710932651394280921402514400400702861117337563890896332523164965934382619021101139418804692211603161966612789697928455571075920261973126227910785230276421000708577548092254451198442063145688260380570253780778783527821840549980222629662664729972566525064799712060174970466952475727033655883255540604721466793916125090519509584341274849132838004197941824533381351425278188768562440007133724893524817221176496748684764894876649971282706008690049100660015575942954880472344263867756034999681462011948208934394604061687088717932080206389712843099877083523828299706593900095980567062662704248785975936547075552281001403405263645652766439185851240570420816823420877882823172788768146946813330235807302929334034046579813096764890286620807704825207398746591723602942881372962020940495407556595341132241339540954469517424671244950452442619366296637854495142876039084898793794744075727739555885327384585733035028882334349380307881898911710364942453067733307286696225551290621395376379569880243912932838156149948763234397215571676973205956160910463211490043080911662506053802168830679610642051681194172585015325094670615921479438569958648840167693984116785550003122229419005174386502219955067501554030063012712095749058812875082369633111154019703868987748718942009795625772391424642399638847698737825485768413978835185444468046805249308376600133949702991488105477900325835893671213532898293017248346004842502298024549249475100657719931992004531181603094569365301843591347991429489127134297002186808880249521395035200844999966624054468152665336268298327147140577969040356692897962615512272825237917917656912168605004693649293147419372251855622695032269482699629936983090872217998240681005402168460966794258090216257285271736733535044155934995721008743328023183460684330038098330356076543357674000190352958182449700012964789814608420928055446350982470788253278496352311030629966541545745668046392716131715017191689220256762821038453808957288754938441497159766577353072745170863869909649873171513075253604747188102998606182163927422301959980121673392838914415827231062521138561247572540667182941359030790304270743312155281330383957624474956021943958028057772685772637823215191527474419416786392954429869261466057231666858274832583321100392934931891429558850952048003924748434987657485934669531251373913172420842064835220039567425624229369534981527635392895244432128571756544438284579588427076006239818571609440657953111314127139718998704619591322343785646983260822918441297832683014316678613088436320740596209318491090962274888906544222911270746081103308166380231095314261230608966807076712414358570446544778873455528835805932063076645763263706194243470025931091411157611185819808712296674889101617040052420524819941132971063668409918381446063701025460875623153966600464610870501136669737425532165689231956895124809800255744153202124394186379087752941017643761141370868439391118514664825028945366534555404012189676515986355857085706260693067668970545376157053943430925638414500527235043279139027977764758539370801857555875437469517502191268960054023729934381811794736318487824919111509810030713411074940582843807439599367635468559187404155560371294922581805347846077609015845572965966069216665336162686992010730524024926242195916501150693443242549774491646665678584496409925200676661991619899198235967346007243089801915820398992209683525999600620977855783484683933477710081844162610952999900360851064735884591025060219034233135063529926785538105775498922631221060282805190375282442724228912425425825611361271420186237415739081156065197201559946264891584303086310293962442023409370169099417783133008469075175484425609515433295342676259618473334254229910326873951377643504252537628462566407443796919006743605592591528794524841034121788000263426595732841623808484621719815623050213890998575520760512422918305743826150270201499847216966822338758127142219524162655606054103203098998051228225127773650542139564516173776220498787365844801170629124066404249160660468717780723194664229302439500625720866476885738711596653620227893042099149651429670881881586492588360634110621932168246925540872741830378033091938710712610649554079315643535146014313962028194142530056486805543458449934608725653407422403708148985533699741004658417115512637473455822417955092326968699742723166105826646667773277326225601983586396865629453666234846781007922316172104405266013737262967851464204852919218252781979072347848050414605508562275188284948936287044312667235850468265315326271325988020993949543720188876550201038117158644551858793844825351532617966172994425209663182826797053216709571943639967685874159785943713905772129009557052642469047097195797666095413062395281876217686190242364958941918223533101747660852327216261228302632263217213353664099578459674916959533610571576865739742911149380306100249174280209771015516830475230605090902650114519006785104276718660507945095376805097188389237603560545883966309309511512970764639822963771910621941737917844885767304053489754446242977711078582205970795381760522935810353182462439486859032399540155200079082028391232096873656076369346165214083335300194763615771434976343003583399109006498003254908488813417946331022403479705618939030621538646542764224536872714602007016071935040290509282076342752694110831707172769901447535589443584069634838580464547770969785720404436653090495995967047357550547257424418157720514017959655347816261555578627679331803538235495299121480308469059117294212871070296500413780639117638231701833355442929374247964703499341727551065040591265005362157409254155581878053529229038809918577508737130260193494705181695455537847734305118437297592588562155241090448671330701338538267177762726088333226751994098109979923602302925070454416499283914499702891944635190812971201457475439845243442714062766354639184729190866906609912908157735710127103062399974101682422136600412316268370879020425085063351078681956642489130118277118661807466218003761431871949717209013866640459704467106942487402689809629308583851313396769023240698102215534059376002840366171863416311505525041437240591825578049159904424612834838472834517751274911917751267014975213248510024747348626223850059840366886417830852180866569491138351044800437141261003438178512167506674211314984983370955895064708726043043287678087233060814455507075746778558501279200205291204579374619343032974025094400659560062677380264084535316444534421546628720876982109708663702202311787478879802174764405791493916918801085590070116274394707685580320766821012991977552425482505922517057589945824268085883448338219706936409398251094515535855733356134719644793094283908494576307501912796755518802841830239918418191451527430234013777180929800725906152245125912838590656836017616153070882404626063048410659686980873411824099406170499286577091973567866785401534712066381490327660596781405085829344472617978049531799491758760675735350094285059494893914038312118898716381263392999635987179713179954625948937827955347056396725532428025067310045521263738375171990769996267792847676148331597543070794682598756545496104236880794427695449687765679824485084796771719192106717670580308499664279873286150160674814983672602891911517942101098370546948710925783795106629589282926731051772303131754618666987998398355482691435069065104219393870056563302729408512463290915249638532880141509611761459385464975684635743901937669273416476304955978538719560212479243610902350079494916222114820918311653770692101464530404040326350446924231182669757192007793708097305941688203637954165610541987120369730771203281305559637736871359788318829769222013781206940097753844968109519081588328047562614121702166394702548005210148787889281315466791706430252233586384196253201124248742846386204722975208251287593065810900139652195367852978235173840636202919978333684633735695648763696210062920029298804132106651397803571699661353243256726692530135368378680376107754468541105995970315254003593803077120687004021668901545377159984369100194645960809538212982159534699282448433939647124287721615339601249740945204433357065043859304671452607333812405732134673795264543342402169590248185778606521891649412397539553119012312571141297806969709966755323703166967893587105023923795197713490839676875961354668285906145082181404788713327242052069421719282454322079878770665496660189105633538257945203423434058476129515443627024653249652784219639659826436524287649290214748246016605155073926887361362366754939735471574606486529760919385895466153302849509662334254885136013195293434999188404439394716307855974754755806101124771836543718853643287535623738160236576367292818257088719393793473360997185120949074246601198534489761600685845599760686802200689979751212907268830624456363310168143344860576512312448134162570367185049231175589125149137949185524104584434617921613296335575054887554328696507441299084685186628997402356844367532485425619775122858081447623496150722804195240355738261376148362413996787935624174114887475398659663023128532831139020819060480518678511625293404636571921934120219964426912955503428102180558900173731471841150397391444929796894371898172321748347000453713394338571681182736055506415959098037080978119342859086546303473805562535601756795266826182404122919177551623580882123583628590014052800149442682132711869298938400832169301408621529176063342537257771303963089047275331428520639238064553433282597777600246900329921402064535554935918747966130851593949793757994399189717836861808569570558118963634511073166146113164804572078228168741967393735435412156714916694520620501599794983012818603219703774171788907370346757194321879300381565344338786396613165002848295568138956543152384905769083663902622189745287676905089763514307879495815445483423725754127253808799633692095570257325834536619118442199793365352393940017335030793003506291549395524430415455435079062504087329169306611002309426793808360820050476556234242162318033536669332621308263677316144776063499650434949605153636987430490845707103316751503019975767162624259873213245139053954346048379624193437903946398064606714248825732871685593083669037388388332303937387009894074882775386010165003068123209165747755347123590994119406206043898427656886346724517638664657572221533522360379874523418825349153359051097032770365767437290950542809042323391737755778762162831171934335513374057940291454107379070006257829314263208522224113064789457002742505261465096308241174934536029035602056868678703328343293938893674261179968962867489167199548779503529022220552070435641099144437135059115723952249701876004156148920506337696032889927167516723157762268190941712893356410529441165226145021270782284055491777033310450992948748668728120521883182472765415219864261802223479496417857543944772206949086478072554622520202789680577865063887396083133020769331647995837053568368536660227987091006515933833781904258934126599295679287176867126398748949944033961998572741811707654557768739429725392885327671328097383704403299719474279199292191071850561724169811066891649215411894422690763016521926571034724913155938345408889009904034283316246566106848340703769814233666626646130934494008262957588981254718036992389861020545612473627293968177568432529166637659293120345230921974541982370226014100790888473037482963126952329886564926717933785382252360382398760028921361004096029805559910857028171053111904516490350394202944646663084202515773619436783640436525266405895074374837700321431439048120756437415672978561205764619451136103327085557581923906981623282371688358207266766346380565449802434314983615555659263957100752760794613621160234893397771459498812232841747026448548168111803153987775415465930217452966467180931416362134338287166420797081745466313991011658165752185246293889528265724667049843904424042544409144268361271927007052457216991447216101589281595902815292164965841614818610891120731138156536240723691157918573156584504561567071986388045788860995900676428429445382867324347374743686741334608078822683019029047807425489918571061714151661221711929188586912109677287528748134526852996387662926120088664865285442908462748394033948739270077296706109504482956090216300541226083204767119909022173790492632447620089835011343633350384013914364751064149532732724514288308840799401425806763381843611473543170468666988611215798623568212592251492056740283312201053120214726764373574589817506687178061786129152236832167902798973928977496001677436030469680412403639853646116187642073629281913542492371887227289073983455476924563214218983703649224462680756795988132751870487145219423677749421773360040652120125137330958269802430575859065371197048280257048066726434544953782668091306684379170936803489132358160437474876769009569080938047222603989785554803456056766889075750683091497173186870608396755444560179168277333791792593859908437244912171740209232590371196359742304123554805716800822358017638886530345939562558148340995913073292923849919372274146897523922117972817327013167370887037026165574116098226923824450792632772785190093133050970669519902854389261841126617938440341267202690133409456592025022360787321901223559499945682904798403435971222798769285617661883507881352990439017509663524261699492492780730633288012243495267454913794544763928108036281379535317768664082925406970721507033105226059254699680601016955211884051373607815190189590299965746927606321174437379001828775495044896841715325520356539039416825941325061634149837432174859233130390199091112665220802196475520028775546536452806141800302806213108310936868297421490087621750172645117530937166955228942423851591986658992126073766085739384035659129330801630579990557391503890699606380622455661737006293376012751043073582896518205564350346776338057493353701756285921582509710549997317586794454700061292740607366524554150196620064983464549764528456124568062210578746343147429327986688853694882087206183116429494336672884119956113887689053279403629961741900418035367648313098179543864948175601205352740280344532460859622364876182263510756179201896958069395135602195923784114778269116556336377854512236959352756230194338990461485641835504580032292949412410726667081189876065104999939088729427287945288186554137758472545800617232028076234344215453659401938976687116700691079480837331352425038912633227664702044349145302236400939350977789223746508320502860421670284364250410095199908182213818887502900652196688093899588068927364954731897274570282666485737138562630850478688261607697393063967623741868136373493646550998922183025028970087590800209634592012002868324022300664977129177766064628314575162884672069926241574297564470922795066698067423265674888030823979209420262388826895399623541421689180134794219360480684549460407010147579644045196722417384255142468559393391866273627336126259858188103643616090406637375980691567907386038018789070930646788206619110723342139689424753029233712435674272311711668723706476830328033600641674941089389874754254535212117942872731303456004838879907900811747790366950767522331713561848632301205977101767712812233925008807907507326793671651851925010609877120439208509903972802141277784751431119554363517580979236101330513582424747149620815263794048629100424083238048881137725575455384675814430530139305155068747631119555701249900866676213526697876706300293315251055102207831403069522307172007184075617286889412667150165369521701973117878085548853689495802418381299799918261930312074620981646081739785023273146765915747472566483780739862441435000104348139493664763872807348653272779969282407763612651230680460645378824370433073993646807352389647893554829857731643667167189029495940038385541313927834237467463561739557846640634851542688510469714604589270416151212918115985562418820717129110067726428098861288011696898143310340121832078722809486991091867802786483330015664582331136390816063443602148223976455949997175314340178632231849305253796059833072929212742487743528861285031798356117201070674039366575309558252923629383297723479021166706727784749881809086342382207461761758861905534140941406599519859592186381566801416369066533150722673505793080124830201176540350681826343408122380042317731496540261735182175383347120315123916984089916661652598906610251662491660884534507233973611391905484455253683098291404030503788718206776395581141724252834513523131256806812729664347925163490360679178567534999833738010610767210825216944408700395351268094429487703768237159544219656971308052890817317515707527213499792903477530778533310132846038077735649015555649722803429194408761575278272632966289436285511200579127188964181698147762511747671074373628656285335933917307243611993422423032635033154883065160750768416363925382853697246494081953547066129628413367591485493200442988409167164786810437736429686389505475349753494099535959628668417944131404957311236437863891419601133839492283066368519236694313806716929205004945989755444508852762880931993663294119114523708812627256122527196883121153687140809250731234779749374333286312491415862172380899839620307581208615110458027551973293491494377650965374863921814495468436086847649406362419038399501223393668421546786086279350716102094914434852966849446871443681604320293634591404628748896419916439830706241701828045200209093876434748251484462902434403612596366240494216040917410513823968407383063865551596132384757827330306679012610668523021742619166977577317267648979361844979535903253178274082419757583686190439260282554100961634027432594102423897502094707821515569332635784993393979332763228868797173781548537321522157796555609564746695867007288715362404692085176626837579922422295108051999425015462565399361221209742912789164564772815398268114813557232566351187378475605375536534128535219140504592176756717296524525972377001977842380834075560071720781829929350338760413245561693113235811313576927829875414988580061067022694652990722531373083447548224474587639392013471643177153259328181922405447775818671512226244360694493818237601057871529028147200338844328570361574777843440275513043084000276208402349204372884515801982594713732373436951476265935001680520245229778450645346576194582904404093545714137920843721645298898180463454928850312339798975146259083725768950258739875128293373488806896376559283639761925879089012698474468408619805398917457962570054067971423382004490300504889214536192844130029785110293833813627663015759330792296369210280414717932022109955184521256562125594329529339051367132352516210901375354105258785985371401892162493852518950433163787069480244953411794300098852065541111689094184804458216176346683561416235068765209186245728618633443767954234728676536822349620477188728119928421612100408883991083748683855848416403246875733315583032537276230057917823736229344327032002495440028719288096443000164554907773154577634672989630377336403790615153045173895878610797855142446183142652713792024746631589565212758673340340835952548333571456995616692269792941900664339752324822551885509537050413228691423245895246680490051912461159989762557338083186688218941695772633974587542404480341049734154159375568500786678379184313391611056449876781676716064481006132918385118271752355565560501688797290070412211493922758778019871619588345254129357224438991071040219516506301886267033916329033093475122154183839910191791153435831277582246567083344557153260394166033137576109642402716850912583052239771191039995701280638220930522800156117790688052701407819735012760033179349359212531590737062900355403051488517077134481406400369448163317629446280083013612019115513757780440360321943341823965879208537291794690578313572173354079708469774499868102390192682182360843282258789063197408372688681978798322825820823547324390883403595361824444353953156839825290522613063896265780335682078542776619986457491610798660693615264679735400748703482770202455584393048704379332041866978536610310623873578605104851431898365575886480303966092283576789951337331495319096323292811191205747655191132744183784654962559191179591550880732320585766541521395228759395901056437207959676596715918741404449041470652508532242624798331787029422666634495790530139592992664051772378448488890724922412547227138404970467859194870672468750662571493119315332693027426835084136609074250091712099097740311605250791566920756053543195508732351152390121348151412414519914609584779155539677083797347199653343184126547388881235395261138753920323444914081484901865944574236776298751466801186000375541615008570512413246085560642185122892431672606889449503453522371651734709285176531494201596467065609456196616336905527323175433912154347181219983040903093099728359297186806467291615630003792950392552907320877707339652644329786056233101487394519437449707771540158945184779098614900819694690689106770109150952718957034313123582319451296528869685473077080171496181093573546053782547109197043445247814764152271752421199082493081310624338399728160074380483498977098314679793060356107954990157172495340206272033563787352511633768290289117380459946057187808797341574362399789225649145697665563655896823660668048190553749905654166850052265702289688681318592113271323021772229199745093295238650564958557511349720247670676746236451329288176310158177269810915426950706978790415930155228446036403350182416032596256248616099864977070332419595907358902172457358416797596851415936525872093867788731141405227099950499265973626102868811828809807561909157868904971831754486081227651605477473705738298955344443692691473153334612244441276544787620537338971650022772113774150783318879716201113007593298149561695704439602780301912607552758979050945104637047295551197649176816744236256319800463073349051587082873404193052942672139577617166148227228485306679146528711309014395000294328213677880242905752885584178475103286570193924863199231262114836333137934874617786000560954050118248382778732438777530276259902728133664621791714242276175510232638105559223754408944492366224020575097357848164088255126993398554420598049197170739605611791753388469215384976827103951207019215453323002133202740680496105756054227515647623793077484308322889067999189527780171608013156118888537088187742559468836083472259990833388840545396710650960632796137670309491699440215918780544788811585987439614133903423798467751961086886864970869788959643323394828557439323925080874917943885750646031813229636178381874195515080801979734116450506312769736393259015680190210996640928121241485977640928621390835452460961464337351993979122463140497505478354182990831487642013752598020844556175576045890544676852236946027180517700039140016478555938916759069691042042193159420561324258666269363575517846976027048777808413465966823462294069631673052025283715691790211340444076769059008550722090887247886772397609140919865232202095082273107882768887976029732556139738085489353897940337752861733384894647985282279475732905047972468518270302242065754935027531074098365757236721385062528776534583939073814207279311897701819990823393487518135960173870934529005754981490892189686561673124415293481896814599770260678359656999469915399114757788232110404667718244966093642310535882282234620198217348174827028942397827405732229092078121962676563085319813663444796462288949308088505030119230714106823058896663595612223986183277703337978720705171105744223338989879326297763522051619548722399401054845639917588130189531277437947568444322585719851314242023457162672927868823242229130658043359004995952512856907569892103929187747518102328841642502368906987539046461907513623438899897176420115633515481170641472542688060038110857846297617932616627976447930915515798137489921629677396088071306511732398097486017488663717850122810815469716394500940180289149293181719585035798493065051785849985861099240407224650582262975738459826413098215797016326412776229543267257212621086297652067687490258014518956464080591362256944513075142063108349882817273464435738215457172875277039969516200325257248256303728171124192481625239233797639319787431397722591685384589291693244153262669596075743506580692816301575327883192191147397789725538466575884758200510169604176732540188990913720425185632563472026486276363981255671557967584263553103821645670400820836514619247289480184830481827957761841750910101514876910369640255198870278411707408519295250630335542863206290724642397542237746904838090172929374515480723764138989291811932323565667324790628903777601663507707652566181156924830538800257312211732396714550582424825893350837217246404934486935308200750325507017209890587232095526780605989441041061520255349755290522065094964653130715999208018048127356547382143312122071220074555783585954072035969774566122745718521086441723705358950193440433648540463289998657535430396633534285856070841628602324768475219969538673892594104082217338651772135553069232676223161210433993441479386310323310955931002884904584613154993612370929133172911747726040731698251289802052782703268029432670262575369873205332562136917781311163828724763483559293976628715556812917470607695516359338583313551224009728285623588905754004456982273191519408091537902213593336343904386433785464001418454965935359451108896891697129330025141628618078881390112119910557802814190112805639699873714791236915174429418134464669642533091844334195649864673451796821595445649800287091001501025811728868364221315664163946006202563058327521814247269320177053450417704798252886595004806398857769747839296939314041805492322599060378601054923599050471764448747720148786499852255371099690962700223832827869561571589065350102470505002142653416401285070858901775333019162070828170401715404568692952594156574155398518318807531906355318753412695239113671943013342759905788970775016116851688100443622906241412139336127577654522328807318103027404589893301124893920621667561288590286171442361454152334268398570846827281417754297259782447932637000837128268052197147358712371648324617773524608315569860692118360446509215858710329972723120623050512987346499091881772991456553911292901385450227112478621024707027427264831389779376792500438724772329812136458113600285945935222605647057920590529404681388864716183276151656501426365052126826515598457043562412168839660530656250388965388108809506038067997666751945793685581025508198583466154695667083254079618287732063080178627363163123133658283644131274094781829797920823822605048496534873211630653490471095500305476008745008435224072359472125972247616576826727956494218141544682240860550651419574982661902046306421858047430425915722196776002125503499874279892787937298106670739854039035014401090298758025841642539129387147498903366329681034688791373372469703062952582457139894770732274461891795694310034384279235415181241254272082786179647384505919771915358543524299143855257995506565250213868585173756586889729489157620051597380032703592857474583838179082186134677122215940722646442751007634431928535833706673493772667839189652262501611957096737947177986244288298089995193200604736090234516834714107494531735980541284976104717028019666400814603656131905425611975935773195048812945836291617668719245829888882817705895244111975539605805070835658358611195257319073385128914585486024271854248647878431041355398458012236813802633246996789973291461239550673869705918401798249096578660609241320010029747149987368285381302108200979998421225558820427005802792330813255402926500656302359120090318108034580024666634087262843155974795513661113352302950000114376651332109067362900466220440871525718432837337169693115844702222811231501089528305021000489217412583037579514987886430874085212579050322799946433967124575147416910606663771725136350305143866189292005258406109127664700165309619803816212098410362632944727891682038579647906476452043483639946612760320936001273415930349317643537540459765989957632512410912706233024439875992764265365299707539796013282171736444033985963471420966162320219745037855825626403695437397445013971238300190298522636113672009467711765122262213765610381174923298382162369542074533476209625768259743831305638509277016031499823248713012743646852088466046079438802515202909522116438303434642812246903589773987173880372221226293113700602033086505592909087202914385198968655374486684875540238852854250629668613908246352193172576152076976700786341503081696051808477043956968512430389393259968656511286096540987207464711111332816572234056074421854058186326401149673334921476706704272526459311440869290365851586829756039930807865799573169398666633830641747332348937080383051183438142039976491945137798492237991215421043607705441968503682839132959712864394325917001887681529299898780541738906675967372478065574068961853653741934772781881562254751058423042750630186990783493225954583294308181361367721084671950940592362292300004379583590142137906156912864319045770967471115529350950345352719793200818009305004055625497883272629736624583985326012046382150415583686433926090408350589263143942763291105455372984847421416960654870775265300189901496673138600668290185475574081576350451478091041449125927145480777172153394566710957355284428745540784479508025261745443852084418056054326428881569524064907303651484950031075049826024068108229860455765454632068918426062082390381999152064657847836156415308208111186259611329348377002617579447711855581338199953192151899718834080852872733963277082507935147292134134595673681454076097148436340173746334484462868720001191551521861233707871681346402021318618551736694513206439773225871802998338622594514454423065628352053838016704350343678863775277812016213332910127722020574498353698268686635029973661794636441258793534978012813117591783448601817029141611226191411056362616421616171136218367916752282533288970102713278991793459570641620894728795214226567553348362288112351220911872558220214724668382160792290399235461680726130995579893664922339537582106097721202806673590657996106336142475913901075014623637855128181195770707064250503004331829935322150498055028874872435391557902577652120567692832200376636356710907690164972889499050102108243330254793913897435966129235189631777260591199816926065415511351546596859491934011963594992840201753504660705311231206119447342520383396225594851630992227550726521340809213286851744669479945983640382312136570302600629955224145208740916014144749943148496856083157855666755640405955287495797593956569185985869635821234231560536899285118076799302660493675469233270367520216827115178014837131589285612191646133918159311930332314769740535288046661987659605988651013307175338772927115622339144863243659617844201568023890490386296537196231523008017148099639523716590692330218746305016245969635966215256782428845617497303871220494387603429708613290783445619488701996920518096901311074399420604347028318304219834511555107273711526859011938607054649673661756006525283714710534748107537104415413110339653435574921227593971296128351496895396763076058893355499007557678457011072145612445017202030921088249587842569964759610031595629492588240535603102238802822104863485893354464564105553703122943945062372250028999775415556980035985279140960843240399812714906084513894214177861450678966301938662478730503778535016294887858696801243586891850632698907183133916371732147987618917443301018743126740978734079693188183295304778979509387234418569559104349085922180992688180315993575749642696301938661794792200759365350527283915913915184511726580055408436628739933233262224365697206500089952639894572929250115134228797377459131386973156908752183808037936805155402617026092357767289707651820728669717003077194063541244607816892305846246464293262170269796621707924545055994101186361452123022535338190326678528991077685772584605767854359866060223383038204904920887419486049068599609406855277189492199383118250585215569885269750156163474072217150764744292662750534693338784765975447638784596505611683567566606718818207486932416457711680628811117482472231096744464582839388711505086856394082268922037791714365512026769533375472792876932765714181276075277140540765707280660928391061370373964860543607832983623027294614205467596612136634188777044713429454220298696245067940434466000201286070757475911148280342321675718715115646654959453792518844870065151714042147675588059459453471890135600416633522287841410500103803280217191765727126241909226681773549798202243002734452199719816820759109451618936571218449031423478380473961307089061688687305150356618718454833995900901133485417560709920396395138201818197208894421622435499927008810776877116081859785446965803897610801726160413106382912451785862432430690715427420381192132245306631140545384564460566942729441211538686536495928459022201957954337825204983159959001995286862216617184696426840566456536351360866247015103877805296357933419180581376358580192243715942745399276055348781970458668058292401376888352917697563313852013561168270151039876379475364553129873070360185028180968459108236133966636267059676921811334031547586173375608396813385793365331878767082681579330798294787983097036914855286482768922300433545018019916019350110073360002251507823620165016410475527772552712209478536655003545354541158966880762374904328147203107424533860804455441595220927603272661746232634463622459022132505266298671028937627841927732352201202652033910004510686975810002539498253510476575640205939394936608667546753938005866520620854741877925887913805751027297552682826561158376091558993692217555000943089299782991087343957505497562859175338786489218066778129318904459318441863034973802461953693146288592213235305099292050259299688460707833606403765709580803274108156059443536492330374246004206114071605223705766888523965899867256867660676253707548350109529870774763757837564341251852133361168111737624637148962277496729371455014528523005582641398251516846814324694803606928338211866717317682872612045565259842273747055129611511148370342358974773652303274311781087962049057359012068836727808432185127587728766054008477440766091141967620344382654749690081851922999994286883798513490659062057731539163297666689526266861459265966471240831394384593466062490536010564059245210530335120784684915281346250152993364513129309981812220660100647442788464531684778779345179564541933850952415279661936017785274292206711847751941107067203563078227440571547455533685392006122630703628594092721635493208462203094730146988024993112801631974464115976244830097450624458054417627985837611688108607889565706304991036980757188579041211363992696084666865067489308035093658989770059346250395281068377052151873862235489736730825269909302086210734229070392096378154983457512637314541201305836699546879976078180293640931096446232595919113487044810402730701612406657360640211378392381606897613489932920334036953911450764601838720574196144101389079808905957454693974127617497788261012745890470516568109517919517529079987686527035306092668226879137407369448406846639341419727185621452180885991933470236548771010276084222054054371308813250688483850195985658736477059595846765123040100945335088484674373319517351239239128294854682238364264533574534639794639113028619786464251873258236587347568710468445658470504348271370710442174188673044010432439774898143764798692009615812114036613496424358448655423731525455119280475787012494152694461097389129670323306693709882585177846581362677407667991230934040760973788312283752524394947195600888932323341150862752795840995713521859930862710641056376640397326842093726915633715693257090241622327728492995545623335091556114796179450479395302425246414759148800281577914276560450123932407173601206023211941206223962422530610670477529969654188689469552620795185484218312049866385098017249801907025466708643411986954167442294016362003005734112328713299068462900074822629670665370097647102614342858095452803700727652511101666184181063193362074733250363439382314960052939120649820710660349250757662852044712013024281668886375991966692107187603198258322616197449649450973053823351052897987065181566123877989057383444423646413739176954464064851655480527387470934179682110656352497400288997798433611667462713853743976924996476187408212461711724847979987057560270064583923743209155760539380649164651178436083513809750912082212637848040656741234091328118274112098112800314527084932895118971975330839167432217612136541400237350618711063240263938599433570088415796275505411250420071860234161579955770462880118219569232281992177398944331353752880611008581880044919410546526730238276801005585086443262927365550198519307886498446398720653010745417777649139641500684194446762077745685483977628693179261935113454431625281916618539896905192437713492573332390498543398436487910568016758355134828068127526067241566000129177207293797235405298831815959546969225167819020169598963699171473942250676108596726467763823380793825415977815068252220078484143857597219017582667755781765932146059287475603671275336301204596040917227464703037556959025887122301194304219876116262345910485235329508373213877186882263524124279191174088765373386133390831366459716661186904387350527054024459903833604230236130142103364552248099985864774635130245439918925626956424974512021709834956679327382574827271009240017881639270447559117225693484764759707086503067327985939457128853435870979021406694548921980413306071279235175872494770494153357582977249995069818075340304363939105572625100562789683762807756945163243103574810592811426118847844199426109368848206330662472913549729485426576985662078133822154974592873592703631274606788475171361743631878261204291097595308095837732532142921006132379945026044650465845420972767487492964697789304147150668798200876538993878958264421632093410568717082015872023346515306100503621644215229022127198212477906048185473861196469896338780373332741125902447812763275849646274660991578441482969454993558858371929884354013727055910665337086431027361635256250989774602139994296837236201981430049235524596535397995390354649745920892785889234386059437383903651314359432918166430740243521696291712674501735593919873274837129025036989341602856751623517028692492594023290241298279445842550300249120662102707147024303100003828961025623876762570148112361300582338437642964486890450344655749461339264406595176752489732542750329859172434090809597449627346679233981467236604448410314210798258159429219896384080819719966720657279109726898384945246789651932449896817097904122317629113612173552260563832073981462264015269310406050690252361117558134384743649609238066962432644760558531842188550500067721019256032871841381631893227774992433865589409863356938369488524448545739449011804694047366769614452036664154348950078562283218076287570310125177654824411086118648512232024074063556370714243468893731326200503342424417248292893138545963659779118311601390592785853749384760385770533283688495330135463743284917137458441987718222439166620130484892115759819798854338303621492283896345753257837180409137863281164054472877763167175756315345601500565884166987208284722285158761987497611879021667761443060340820871383569660468085808227886982067616028487370469469869318736087278845043056877624281059178020744153763819823159418996747746753567590773466720862594831966739110706325088882058880541684924254358190848871250723921412756147103238129141512589423426526608266509031387543906272903484823763360987221032144847965218615331372245096549015509596245627347355478727542849383104072488134104382802232432435931386308317486547757353119483080146687306010409522837527036635837581760878664693192967928507691944602277296594801603525030374111691266780004499238193549479366427972240501871438484116916979699352126802332166831715332048803575223814410869792249524540672017310959530976606099483594954429774160906806668983833351892484474320058109119227635415229152475461771044854912284118525119654142585428707199368065976627160539951449597087931871667037651604011411600571790582872536765786341836296660987966173308746041167507787730277156515629139296123591272879726270858728481250544195635044974771026199637029533533844425246488373334690717293135299232507542969736514976849457715291614437724157666810720285539566203866115969984583389799836885212216190178194168258845277210548916499014630957879591352167195742875255835047636077701044394474189399408422802605561434193411016652424015461986121633894736836337674402701972477508042326018785029370167382881334356224588802001252703341208718723841220467862713671379205783031572180449599364153281710179567131965357555761597861948258530500991399237559279341373267491174542102811530557696009918489443855348321734412247387547275854623256487292408638603807565235209854927118299450256336896595926896453407095970923957145027077625804908056044824024346479738728295867195762208461281530113433619813268379515119140795000201618516402797145848343220523940955553789389687114311162146835716931329418097625679180444265351594187498149873674258239276177338113611816203384946114193026406469149182094666841220241838392870868844094703859109565913581037608961576276951693929869237816272395597403201416729005904538647841132668471343076067044736802402028027471301497973316050609085994735523930034838501475033844860958786521009347119528407394751839904445110598203623978157388775448107832938253429896974219897443131786004945445390387349630249445101022316769206603462478947473815722496842700062336453983643093241562306770840989316801866191216937782439768119196314381570205396037481188769950503887226812378931103729718172256627536884472895310013388164784045282364028076253746633483430316860379723490620784713764508433497079215405679660551582856108787875492251777745956012696345524308034780836430968629281993574850852999265473287698473231418394573140132092829957829921639122732842523233543038042516208740422843665954763848540413848404780359014733074933898541528159425121307426406410009179949451697508295422073933982849872116114481692056081871284625509625323218746049222025765329804346237253869390016885380380720681625965095171824861896658419642131233163133160709871448393011731252807554013342456398776451427576281124171541116683367129688724994351511370497983009985253689777557776953613813216876485814391114701154451674180911328585554724229347915676440131111676472992679429122636001709901636888086999964286999313911088619743801934410963745158282169964154682699293151664760465634415173687206484161192561792987800149514116947156917037108821499242033128833169938597212406067631805412498930845890997139322411499651262828309143645912107648836941290531702311914492361083871440379027142765682494093863363651752379906871771489541216037082445959244209880036546907638612794568323959884633746449313219159956163380418360702766863333647168144825970022657594680669617738795222023334505237065782720636477971785914754321460026591266492726119974753732318062025146769069007860714003657275010874910123035669181908235099015351883607105061147396760420656877166231849591939885848726930932092745501819085162424304049403722967669383807712389241430163364180488041297310367685965368498167603781473257765461669600408590877680436034516502063563061555479829090994639782184943485473511684285219484900943661658369629087444410973096601915527058136371496295316958310097594912382153303862510535761899689121127787200715987021563125085484216917217422785839622360911234968091533611956367922599262124799696928074189313915939372509130328297358961996737897999629708184950955589223175715726795104104979061038001567800679118379242053561405357299805027855289557350482515188697754066597542316603756693850994303109930021182466961460371552339419868284578030928047320655592975060701782338881365189033967119379038440513691743459858745279892700111408429442219180092695433945669002668821818918532203808880152416256465283076697422135247065735958417301467964251433258817344420324776545944854543629819712040567776938115067410514998188641984571778659108168654727255224846743483310264266982936078149591429939672811404085331654402160725639911286369382423134427853694563297199352117622301610872623620437898150758534404163224393177656199315704656833538776072293217998098915954425942905660080452280493586948776786534842702528429064529747190571862398036512473260948717868459760344261543091861385025639889400825329050582501813829443657431064716773057485082948901242591668736054885645261520842638394757560803561160966513722976621841661632461019197958164896694365968282025646104363896767527465882384314682023796106971970608820739055166440217498894846562618248502955282891273634983396504149198293614678323649346814857668219978228612942429244202481190450818254086921987479779085681321025646664048951292870192570844352452119475072376847151323524978044431540247503402732382673441518739671065554645153715877419747953922928317196532869848600861025794335893533833843065791970405561741040676412357958236738040312931158777479683111126429449452045730220385155437745146246534581005486678269396438184780160892552483052687206789463056978149435082814253161052898350460577749792305783197765658405660689966883511610108020175207325295724100905943849179251404611734215513426398482807513815419327324095502786225353465032765978733921078280565883088872785974507865316769033939079059224006128728481483018817174018154706524622158161065588078099177350742293683305174445450423981551523890018848142249077428327676215204451389805654535066295077109267746159284325066951080496646937464242277007428080353988289406228587395455664840693784531850426502566570973777157322459792583730657404630550551239683675170221202433102287227698233692282235256860996997623688791372115128329664075356055150854566057647598874150865679110252080461074655888749854164090087803087085664020360768479519510646228514065111047097742293637172617711117047263970990616640077693917176148477201048673844197695007636398227643501908770447633722219212011219101237065605838577287826872479043396643463038706346340473929318851970849962426269271811658349248642662025883425560036255886497531820174195633101820684501787087486907057796638091266265638764780862474196365818209732551196883844669898080344611881673252402887553627428068004256644618686179666992012191873044545564474705195972460225766414640022581675995922701756688483002416679442109301218910049058623726815788086997896823931000511571313307469378219838641880861195999884250957361819274064361616230298687252138936421691301325176227463645004779036793605542830202968272052058702429543752163612655166355981598613552687337544674495439815333692223838871873233049384868933005041170287312717354776602688958042484729725588362722267232982316869088776137795844890269059120163198914147372007899173558793857163800742853437762783465375862570461581225327534704916375769678353032493117127882741489589381287872016450826804262263500464354957363252403332208755220740042892424328655512199489097776697240265243865514520409064470446820791029345624410033252180029724496589906146797706118655730552228019086955018497837062951662635283008732292726207318579352847673710441283707266637025257350250824979756462597749626228804538267787133048049438887877746760904382212921200903566777080142882210540411922276812621202781674260059452128562377721085447766220587420585546464290273683832830915186964379149663871250450494985301591236168105665213183155525169154141614655124776514347052918492355203860642213314933488574355735699166156055517588730246700617072395169324201280149684563156889230565251141365940941215452862315853627969465541847705651200081645347029504736060342102788788345435559731565303701212045282197637336693105892969948332388426431666157554973348654501138486440957853152018408998217987487754631828843131445884016554776138305516887619797510954882820607247242137713922394727293177694656622888334075552145755037572912139121295716880773960658610354376021301331995585912172484567936480572927892751952289327444206101405693489491413169159253528801325043329594953947391603141479441871547499662455910631463759573253306054137953524987395976717281038548075308252073702538653331785583929120512123345696821608221238613953189352236750335199741744228521635349939626932992901148939007850002548582935619775901366189128239346730245716968893927361754485824211014118628401696177319100973413685835001501274030220900332831918967693433243151056887907256626290559796299587535284763324853337138266708133627957384603508991848255406673050802193801942961369061737112010288898281569923943338720114834588417801936539904897910823898556140698578708646939886639630264466955804669479059240900552288123798630650017740316815232685717713757632936179940584748396257988780655936210272883040373548937651164926720827886091081667958884760739317087180519021408808554705609326797990814433898709496121326767539907578263315852202983398652466584830166587781218368033838369398499469625068135944294569951235916918548152766913179773157065342077359717366852076265777538795765807622023879935113685338726877539958611040354400560823073481184372417769377181195122362691443415224648528120552961539684236860532998508201025032872282328844548753488940917617309095232963308358267440827201213044392191868785321311399351956018622408115613857185671790257616660619653483944917435844413357032689802578128532072447429325040017612021560182156672586573459299054854664700402235053482857416310586976077406460249340967460766813047128639340710079865883432765829456466004756525567392532603442342017211711894731692062865714235474177248974294024507585607780209577213910327529191813272597841078480337823746457986148829217386022903567058756569065626946621474035393317313122159986547071519820625437245808188899134438525366823234726301008382439981644530343555590707984109522741622019873211816652463209186467623149928394175553693522505149481058480509570981335697273364241359445393804109251957353458175464580573749571169984626914701058062417073644219447297212923126325528059133984635929692407531607971145724355076102001704670730998406720251474791261349575255605797767125448563723516120591302278983873737895242171324547803597327183631834282177422995116751852163010908500763508786493710314179811443441682785395939668563119371515250986307966158251575622899113183908848498418773521397405182878171410050171193107455224999068747668034126759163200554914204858636121094007081772941926472077278828284462468817842737605207281745533904042585783798842867881377272336026428576796068164962673785526246420642569270135606345632126892451465245063696735664456251535686011537180383031030270045365143451728131662382029639110795049833990457824503471239747783296826489376185591203327510804602937656731702738506779643721285136772124495465437251105050828003318670505205541804360813944681391309868767919536082147669713167980556104857064494235572963230367915570745743761839018153725656149649487645851342574624274408026780059184322534118946078307305087179202750102115627075484652498234927650466207402255697679834936652533352347914800213955890855856589244153603865982037270455309923043754152059378561552210586144183704894858676589994667618314690605000117496609917867476149915270560650893329384274205027967506613187903855690282047162182317478096060460193859862014815534429045865843058774599121696050935697765695807522616094650641703649631819892400093428399688262380207559882478747728000708194462974553144701499098141763563658237088496913348037010995410997573151473267183916052245028584386595575582184120231813728304226262160031658599449344807591748968620211786269364815495969861348145069450467100017288481608914701494569699270267870378439039946255738310496756180125572176399347184184308812822175046573117582579754772793918728453707598258777392890495682935441238793422196227970203628841661208801940844261200390988305703743091976237090993952621802178028015384625938813911108683358007797868592070779799335291918736737627499825161870912522412088194254453673309313316023067473764230555618018706668659301814056664170894072069248212474110606887485860571748183674493478814278752729375551836793033605975376089957124481884840917567112122506869924903920022764919147822762763213869209302438252143575514853078686092537142456425749513340625560942471642500776834308416651586333031132460976731100779988144058406975461625911975700912517347029007009388911125244237469008723702590340006697671330208675530242087069079634443966106479391791465510065784374539330016083041737222803566679354875344561677621450254028448827075012049178624438665705730097503538642006315069815481771403936927455709624061371560052419244647527492261200683613722581794436668764148718662895293804559657444329821471239076598381592809781074313201674444407435223705599422282349323470300329675657792287106622861509175695844893201765191781020450428218029977291624174399832981001293129310470489697197552046498972137475578875700270738205158657962442651560818896240273304303655515526255584548601703042371122344300979999481719035494859436686694642939898878158764054397610771841948619305666406992556049306676218086550089459248459799259533240014344724281089051355214480077166571204477934587406081786912350749613589887052961307773994503247785911306579618149331749273964194150975290274456023609728196165979117124739337058645656038571904132288102517183327427691476953474460065767283201762765349473291367171219478725106171522399208599625619054060306555287124283574326203905137899885784639536208624854498812137821247688178836276927815735095926253943452153958855736109382358259576330933644891446071956852137067489726502615652716033342885665656731670500164621156882385382629899061655248134737656631867037419397090863395717059769292996745785578378480132287091735563146310234801994035885930719589932565140212648766417023129660877227881776819940027201091688221187137628137761865055278452083816560234940166089554524275750140259117118596000285778033960685460751303666718105761944876178079620075013933851171913342738328697556448513386649870494809167722022042257318688600438655251142443122518738320918835450341577483114806491890371670130352566770959259063556086102649895906807579041793733907162870284876414554432854872787715166609231327375768011988268597320010161617280398347761083647144054121611973062573213644088769272120358377092659149984631475766175389939196479913618111684577458666564617245901328082888259536909881413975969403539263219536478294537781260970770928805217650888010075526347610462608114208451622487626509748545906035101747320819856715284991398710885680031505529193333140151584488875150474301885589429877167583589113445754579609286444611295533384998356627233950035551976443689595057997321643030314632105978433368270838424238302250478516078659714470659483274405260248336150581557803269848266530082054867979212446914775047903783614678053650665099612673943512100980229659723970744672640535791002554442926097028944247565677138615056444468698837111731362037136557117405343519921926585189528100535543254676399683561774617824427367157007709235957031778416478256601158387946826838074680440674044060267537027618298118761537031464734763959082332972922315115628590631805959739634052640861957820801380474803105320236453139122859755133273392568317271298714528219213741230406957389440863110598355677973327236616072583777679697731187517997046308716720982250213768549523928372649406862700108424686059806967592824443964121895803753575367607470368391242576311479469761564348005026405152932729051381076656776355810586545676795268687101139047038653658764253742715226814106452846450210001636153942615694863274091327939108109982347757378009542890586420217312611228367587359210487293816295647773144077724905250015268324748407916320297769819423561764974055851542298579461591424342896854287517877700076445075655067239277246550576202010770829946785682912621920530102989935725719904710480126254462749173337109769585800832541367881715125871194563459830495542340491775922906202662596307301754396364701967077150452316905088802181461744912433169597496040055099579316925233998033898653848663533523641178451979182940001277565352807183035831740691013959664555152516725582789401709464298755754108463257764989117158287059435936843046300045750181696517363446523007226212609489054702812080956967779114244187054657941580327153723849489757752922640557555072679136728261853692274518466305792335932142657732182770096032464967836895325424842318907377138918404062589299789216179353263877732786853472626150103905977187831842559183851763159186405259959558999785629310186550984280768994589839344461595026486786061592957515399975774510641998845427207189321660727469545356249805238307448938975321548104528552618756549132338333303527156559245715707646999215991737339547214495397231389552159703731173333234030794228285363309465496703768850728351979004898544439000097688847426504721409264703594702075651357655701079877324316098181745960187567055977345262448208983082073023419672926718213540590916943589890600405748313976422128387705935048390586141451160467301009877626759778635582426021178820133637282765937913943350158884806897565418262787309107596768958813411921997129391267778198530146527405184796301324154824555505209503331883283337081674390076561874473076978430415693746517980021254703785287620394591661647945476432513260242038395213342722669132332705248111859789293603526644596481831696145096325649087839694235120360078126004672787882443443009620717981267320396391651857722929265383750021287101721718438302950095370190992015607574576728497720400044165424413678664412674915052187664408050532005724200029589614560698734131345096719411777493662590332017276579762363271514006123102538404079366464834984964001839647496184226591164635443231829332693385604964448679259036417618066662933465361592471448274294286871690718344154693165008647760783911957635093236466145160896561535921295806298430591788531535289949439323185288903597094614689684934862477629415295203666929127375724867968413315901000380141961757482833336922591762332107537840716594317645534173330939808196737610512870722127246530331353953738852092477660912697885624623279123957166551455885188760729605283353844480248394131391150769244860800976087340841783484972640886114221609483605550800919901217629013150899033673346219634308460475096606439984354801979765262041284176270972418621485351698071165962859211916117160482545275048021513127109836767310659109807828781228260506043999955942646178937388640587692647745170629477103021586505095534261654111702918589453200025966823791663852454548739649858499969286798673276050723466157213627825691032328512081595843902255414358474365646164100340030441871813898183349810738891902239147026486405947064933179664041687546083608951519000671592399689417463649151262513710530353880822291283427505488175267537666103173515267972980019087328683959744781479565576695038121816235897477886076823700296968078953944439256118392023466088871286316887475551877044611139804330034672270896748559643936084057209714601690465499537777796733317278387604220545141946831223007992401225720861110848696742213771524864929045751966749078182321326254289497152942079261269198439553855085514950304913612587118876240201302931178671769252006689553325601668273688475736074614124428178417447871311192442692748156829002320728143812969225505714011241805641523842819352638618562501988038286992128758778283506460045115387126943266288785683457870717028857405560722325420646097871047063171873717111601224234856527677254556491754822072353496565197293989879933384045218794122566483035920107818209040018164312468811518727535594832404575275813007177801199386835567273436779093922801223097458590483030770620892263224781352833140211207244222836540689189199589540435615475983811534673110990316615706392436396912429611293418714661499866516855021379179612344085405987442757280483103423030079952297920944648368003428278994100446546389151098160110878810832175026808329061921745612017599374908526613310787641017034723874115608186442641722985684936559114617009974288058321638419102020395902055507884987350731609000578826780937998244196096488180757858987030061989041827482480853872781378076609621785497716106514890087165694349289869577228930114698968761931810718450170993967344031187496901752999344578896761754636465625295768068877714666954895651340672163964153461234763732931939409523785653968259574343389637737353722988610461382036320697706413060341036229361602224677734022298163440462702217545782555391444481859200850453174855372310441975833967460425242611852773168956349055690504469462082541979145047387098382982888998432112607666097428568711706733619730066812033434054716774505219410957229840445501602784354312238474068950844046521800576398474764862537374310100209293054424065132916568053216189233071213061804195788996407237313966368220390652280928274640693159425907368307259265907369449847093900348486109379225229862355597379776651072347502964875562860145551724689519717582971283370981956110023922709326601421209018163464609798022039599345582503763690282146669335545964148033545926149361057090407869251924663200405259399208564320431143874136222454916972980734907581879747368381561294600165838704757072914690452880001987142029205926084166673459859890155147238107795294791150925297600298756077060873500115797273977415554385313408842856052297719919906234951120472145341380555072823253951128156006848029420739925701905869814446205863077572807096524551779761201589008299269252501822111333485544438116937015567381892332049791411004069262242278803944324585971886539721182347218670343514833058353970713245906338019065952383963136104631348683083518937264266044237289408759846492046379428931806213567261477567287889230972108869339971882729136393834835257826203431051170173383693767124053440830681424281482754349368714247930617681424627376373135601483547632601458602879904512659191373432369742275219006541718545062805205147991019295588830743825854571961749387459806697816077162898855835153549785320930658418579610344409811315665780718012195729013212614603546041567862672966820280251831976936773311682734116390220918552234282153651332527952297510330963687538043051210792342692736176411423639290829139660303460897170396913300007121262839966548807379479835672180605377043409990633858236701282541520352895075073419010462590678956454657884604612409089606798484247890203995123663454027861194374269315812040206819435192853217557516645274683519209039810864783856542958710692540893337146681532406033915573232133487659849611477064495161239969419898757405981068527789426780714213793746632644706776682476366259989712394521474327294813323986654442526314101039998756432279650075875405412127891606368137965296091222715723369060687142019739199487074246282887573119443259456109172605379851007168436784213793917597663065310366707054552618646411230985866501815689635901913488954492397253064506457709616863098253004257930887617582789361724140818528697840199737888520105909957674707690101240343849614030712238394432509306662221456769509025783989674547942874964176724976593819477744619868654128432922626301152274927316195092901800353335254762087880152654995989539015457524123452397351081384384670485203821866472055767388461342067474772865770374939426268429886237314554893113143329815451448050050879158751529241451233738815416371319435103159311395716912604500626189531158049215343207477116331336000923712602983582618578295823077973554364139952454184093228363046995080060036921099217559174531952652527105345144812897256136724702800690615066843943819131468688698671926285304936558406635490840787520103691366071462321557538664197313327092016886951855916704853249694761392355642713084626935404675768670367525609133395135918935244998754531196825534496368707047016246032697497085723418210300387831747850334567449189436795169017875888664049647113025851013821958284366551419490572916676014578963318594153080935766115376772865665312429887251100846963700596827658541452061122558753138687858002355381253492159524036416608473270187042685947159332011140332562953629757181975104725615907541756361508445429842913746498338409722684221583210937312737746635099250251089021525126314588439275171598766706751284615484871620162063370705777684126303288244410407944226922223553078710789416054141650720246747958518612435219341521036319362320379802947856222653631902319895112602817767226115110263921143644947082047583009733135438751505088981630676732214843405857809351856031004097908497686903783504091051736792197914143462725659140301409762737487048065367349453155950505246930678682782436032309319031240025979439564479085857167407476504367534408198992582298533753135783170752642072061908530946091918502245742568079658032415927772488981853982505232608215494120213610147394002171546447922217021803595915072833029482217331045143309557680759805597965015728651088230486641635351955871109478039077950501240583683888394146364483590886769541020449808063966018252052003109156911574465553019447288737308810154806314088795824256945213276332696677711563872468683488765977271209835091230051774584381288003395903661130043087020641566560208529124259170639351802148063482550952642969002485641296453201729102767359176006065520802916510979088544656153303764899060960605162548033551452907994850606174122126077212234493538501894491459370565938989951635878659651399507621708582999640141409277931193266632393716275306027151002085498661624665730696786041237799741345772570879497051993817143853403587314370091151950266365399329284589251635382578846846444946956233026181983279466415589356219628032993965805795333184397459651990818345465506963113338190236393669604817414155875580658864690597466229771183657491811422710788486657983024610365609544212212346702467985464386635738587327748329438667304859984998579261854646713661332059783893603034431408103882063905991299947711311407461581532363766836572889217810158929082305354690320589813487658130686092596301083665196768855601540259071468941283461391531842853612490582944493385029530701964139092599430286434827766259140707000527135722906292258336198816987844426125959167049763485776490913603701025884949842872778331767929583685442604790062363793564227177680268576181322005554727904650061784951475404686660097403101539232203368510762286013206760222881029276715330226037522293201657175422038740333870127047474541135800627401487136072333048654279963437985030420617219412882171448801978577933049417789093021657109715404214898493518825727388922966975276615006388753707447303405695726343555502128609637877109701126465737882213517293733655825697537936664680220185712442559218394702428522842449552601712234043015375419241855441499539715165154593308115105138224027847683121181260470966096437919495259378113781296301795293077373969889539419264503631098995095061543706448640526543095457746253824348775654890836284941593517806827213919291393747627243426538773918011693027366011449678535255188294839168360455099929166499580164076886789147871211904625516781848787908460739388387028494354852317401642598299674313136264220335238878867239550824607501330704015907454291719126232655410251147239828753801833071406525683603659563516856458739316508586892983055677437641665320065669000486815928172462632960895448064309672571207299521315498887653139631886050611336824966283001405448196078946455815941024694638136965864672574219267786047049550834833019722195827324364040288339956684784825107786001710792231891110966719140753294184606003320171440935602536463166120556000729236349370788214972649788626637817582314368098047326483235648204337006231365886832716354585778513818317618040117738046793492754597462055614334159308512478088965555225022723209273806294656833714046811192637114289118374956706297149632812969505970722607657365709866627723571008620353163435706491118152771678094238001929544934525581630012179870682411741093876782603123519610402270494367018192981560901751856962718343241351191915507641365957669856261268298902764077201394645119963807286566385281846936097178633717423410456721045312655476887081189078351290635919065621641170937131275301782619223293915450641349879601059595803580080429177433318294371933531824289703112227953321370009901361282559254576539621699693339031030500369619362718446634113115986902110614450354365836788314017332694666930803715418183389692163982664140725074443400746947067005483034623088463902567462661743003007024804756379426008552392923094034479021286292933237407637488751231955803450140606153209411637599277643513883538115531732963444846584135526132934995977173708022060829756159937563676332094049340189461030710721922029021647829014201670754309991563655809413564208720004733471498297397033200330498199995900812359424876186206670455751683706295191983940278733252375476690061606192466362419004381222364757829409662677694234888195042580565336421404694045618222765545916886093805849863083007383814623310420329951499418435743440318513982473015694248527683462224545025584868009380140152700938681463749540151274199624678864296660149547659877499608568237858226974274894625033732369613398838359669682293768045902292538240259690433669767477843908557423914463093332884319345520725464748052127349701069870129277530287225709106562314510678149326635971279065720896571783903359422845982170593530974979393416343603881882435704658539971833225507984154569824725929184805810277356310794333989835940321802157250131339263399112410230995989561918777113022644968163040141776697490468779159820771072937914409739490116654262539850651417118604326493902819260368158470091809046890724970016495022521588952529384079620885773263498094963843141275521739002445448592185225470699040397457429181315760739532822567608097867087339284605262140031598000974918106110244259202375969961576374979009912260199696746230488567188151650119757292813533357551554492154882468012711477737302816797756175024415232841737379872915503275659848183826925943419298730098657685317389314904361030130283485284484347160966733105854824111323968181395753366483994056177508940904730822305563360393318401407960196134073080561149714270143770438229910150067425174140477924234974479423878641228823726078893628446391331934699617332883425627487548140563221129462451719673643344064283134679389943522021242439918238941327396910156083490469440910761362194546730076526063854150402900286701988177702193059368491257226538490624147453099760184092909119896755838360508802664820309211151215060200559737944163409712897637340489670677123908077513910408543335869039553439875998504314828006966673571198527162893694757506894786068726210829991934608369229363990854355737824754901499161029525741714995122261116261419479643408437289973289000219490715360702547497882326818974588988840571779368131513231781448973528857343456052470096079114020645332707324629529161624847513442165704758384063613422665419261178401565278674427741102092336983573993821384028990192447372168928659883380835864797978771324106921547622983617818035986963007566949190644921385243971466197623003772582068020713696602980851424158453724068409719821944284732697971462049324757172183133197828766361998609488993423388484451942588458068515170703868597099071100177534744503806669339687434608300126716242530833138222670854684972995645627019173850694710733816536919464484421601046727699476396494107475802297663357869798939278411290187987414844479204984140049791425430065206890075360037327163768556604982840661851287801765038478094974547151215694260307007093227399809986520667774516742102905536261195632188892166389181675576110884030191028591073310274620866186297302768408790384792465168550884283129529796145358600046632174540513329524006779927790887924903022873490980617751302840364278418461767527804690090816983726381403930571178879251301808847696550873698164920482553116916262814038214150562228088771269755433372331562768477002036361185915520222154566205814900371879729139709374679147629549945941471180780588722292044021923488557931719670178017132598452985881566195694865343035992535882706548442391854336005213669812047079643655575926557338142175636033464592437930159166470824701248822621398761498523195341514736780454811308360572465728521086267882115517970070466645453002768882937785812259876616684525786124280687402452241539146259152181037924636908185095413195681661453763277723356279301276573184466188812790889184207416533023025365514367277221558342015751159251129884406565754759231686229748235211958527159267324833823963067401248561614941164342308109629835766061632452321786116526476590909584219838566034189610448868683150216335638817083912678950364368988999765169237404794663580110721008937093611024630643595017877868600772571276743290223201729827164059421404996828647849436751813365883055642923025935434105271647941069525388675804590732305895718844542795846416757732678555516504921406461265878466026753073574457865726902386646379207439547207715800439590833947772995711510493100496511359239255311693885359712699652629177663392192179969667260726027736974562966082102193833977513797202896954220071068722100344345037547847629564472080265445965370547000539293485374346367058062947796727929145903796350271420798402051268812893875655435112844162580407984287858494626563263016621007295056560159500892920903872414111760508783761946287513100487065615240106197041522342567154488164755309599364282215142199120491842946777659073179423934071188985223913323255209588784722915759765531025022491132552696418350185330250387158940464630863157632256042920090378858058246965072020890597787758531579360175350995216955606073485209353779403246737327189711213662543682105438462210867123861343263241815802954750695525514170495479923826388903539263701971005821285648911176693311276064515342755805737565523304223157237244595349872993976776951037306675712702757261239132790815633799791852077884533692715768739790098915961787889224668725608316848317513613854054116523560812348236305740771095592017068187433385828369811174792819336116388885217896252407823964430123489168960689088501114717332851357050999687517218578672673616007565026347883018355931824468306960889530394034905651475759281061565890035106661281630893601147721676768803329082412775429206917736906340936504223951649284226504733326542368977970035743858884488772707113395631128521530543519779417124807512103277503623138512449598874390768465719180538491707730516032387182849387501899410772994525256571306922131089076841930972947965088617982831945616184385629297644132367389160202958563563277530920271192112535664757718746460721879698390349501494699929139967365418445402051753420502574347749955375785215421408058310644285029137818873529715360389135046194706983904782764207136596671485793101694279220560357782144731704400527704144657916022404273806830021034225849166454945841337536588479718784279829686456105804307386385722048312660388138805537243405323456043157242834655169532746729055719567940448792264578370692992692290243052363082873878146137479303496647560210640148125273469319637764280730660636416983723461851320404533400907583949286037317217864545790451406833264753151644952009594823615331101748145950183826072865747732513907654622446326149437301964574805835502478873603523191672318735013860046770431996809738358478897623415157935213440508080224621148574055950582444955411909419918041786437305320250737429242963660686714922057057374739008309621788731257145376008443547307677787333244833002751437407864068275660231967598458117804345567886533064074464251474059660026312158445461541884418153695032710020379017894059063432405563317230256004485719002435996028656300138198525438379064674355259847656053877478355347678885949559695772145748582168973173666951085264633143404711164950897692843950049050666951689064303757942064911073584546360128938655096829330635376809250369965536619509752995612871762597704127489027054709660108083195457103054735583942021008995634940821445207053713051519575592557575422976443015517966103419082070263032787080794872637904901156656493237610859356389831480280024542815188006910618883418536802457044829848391317795157481374269363807806306709633461289952525456892102591710634059651547657990295713619522103389064232996022505048720467428329812683199176386528561926866575138781278869508208840793622138549362264794357913068510111943242399270473626692346923699965689590727492702707145495670498437586149495590288740376512172728463816317681651358032866791656085325384113286169104006245513179937035000325900438102045107999536206159951851614029901492575131138173984334673669977647523679777009978962052616048655538852263813196853504656745666592692414355001713571426027778398934678197887721413939597155757100974832472833538265852528644374159066985157533241995177459573833953891409108444015557481811804415531632390708697152309020170949771232785368986379297977095270026946915477524106412149312792592816575018207800148465332366332730276774283553061460109883118121413576230694582232785670920981275658529318680429343675169836402625032546583734408300467121909516684544959274566862718992962324163679546199990779554821811316005432209921664015516692836670810211644590085721076322221589240817541687057483954714533509188413207573674337678665453668619599708644484230971294532192087229036896167266741658433678646111614670322618078842945495824780830623893096942269040311594682753866126401304061481169279849852064759167221934636150308598810758489119935710327094212168786566112862044321095462461616010488836270661699755742439004006982302180122063753240733519080764559531236536704435763734687651965966011385869439045936281664107542004221209090425846790894718409588055932308714357160931282938840308501574709467583123131673649232021668525216072649469360983402481283532550417855621808003716263504175982612530554711556502660917758424717471955780136586298239715864374820031380822636699173376211620700776999948482512263509522732091681145150373074805627704075450333347932489151191368539412749684602458995240409495302693008507695979085613235346766084598763827253832109221236181996891039334503132881662326852078562200658278104019886554805257922381045269013107967037039876603185243700745674260361528738850121794537290441458324200028707342637451393707230419472633464241364216777408956107170276531605656811609593783182560565484692664468681600184203688484364446598843438792691129316567814884655617962991758294396331654617698151048271341875291050595639064415436718267064349578572734334743621039147335149410849252427262661732250894267879459704825227610460628743461066794855843061021613640683897433569304442293175192965097300741883568958778820015440655769231996132860329872317491041223810133205420390924410770242449909466516032484890804015527513860430732090994912464868850134607519530164324451361214047733837201861405634777399936494001836499872761141236045326341826125810155214849950635235765842533076456702790341903169471116550648044037412217161115498518827353632781702582373510025482596059663444086792460013850251106180666141343710911071418246901540369272338237007061722195259100992436104913690870041750855068187275639831440709737915189702744907522889441885300191492682220788867475278156910401636024277442723076690166596273352368318516493936792446695154102073684325044578641516538393313035527450495465877967216738175775014294192058059294708263696784507887146514014772319249128533431775612424739728222576607655785388149380535854337754854084157808692499671081554038065166510613459079183473000045343398857465804620828737911625607496071002857254820293632208677530255438488495418291465675445258016428556084984733621794610549797426168379815368117531544971438364710390440022712031299002801323618084782738727571917401155612100808013276775409392079131508427358751229032302979140627077410520365691741720516261224073633181469010371738619234504366916711506831646980594112836869335283685689487014350673614562867881407215117314574867106984397381524899037377793271544835105694326698066530245346622864134410586529272001742759118062185701769653939941734064231646538328507609914202759819134848505899630368281518332720212115294018021866699353157141364041007087290540186951247617705168422580686906010028376918706325876854023225798759850603252204998883207223556343241191816767710350463611923051289804254113881982885414847677656312923276013259201507188700491353364444082545400320084157275000977113476630891883412636766745006286912763398571063442036609259158390765721248242857886565431538504493837846982579368822662298070106195808134846478844076623326087338638939429234560585405625941889693209713094102719169462985612667004098766097502391487249110954406174347505576069232565966394005547780004424692837239720506553903488354134359234698960543414344634773885381718592061929079369199312296618269193419149083879740704578699705149392537586216541869329147813280716179739762903415369729913544997330001463381032298884968833905539132985811189173415586367582207978852666548411224347555365245300819263924744237805579367593608359354259064943956860718762706305938279185971001800428921471971604220996417011265631057196476029867299108778335547940965739093373790418256409438193830498682440566818367408142237863483883049698739340557300514936262227883484279851594176328285444476805243174633927934749240178591714151498320675812089575251651427006736468368113865686322709634656145689817944848710091527935829168539100843703291952072431426871678223573508475175765423900385743445294287426372133792600567542526091332034035415468856824336586700549421597936981677491157350035342197273015769586094047871628385721671164869834947325385280768848079152955831612594434364444281802863463842698100213941026550884948502493551261575125482227505389126680748702563664969565387105283175831573097870233606256612981091303137495433016320644947166810210071036833771182804999256350081831193547823659296341561774456347727633329939543250187735316017016493946064933806881637781740700721117931942003526194980821839390703134184238760421071435616749705097739914857957227748145972622549638684655117401276304051609684406118949856573011966627085255793954744728785232011148412241025465120223556313509005079700790744798066164055342788371863988769267749452836808726664769496476335965366949944181016385624334156422051429802475004865121239069068871108060459764468770516484255657514473632574659263588554765556820570066742900749482732475448918655617067988479338091910642291919265473357226775960430686947354617328952701153977227487452464957772691453656213892738410675114313509155205687683787754496126611188985077426700002306585465107101901060628446283502836263028362722082972747299842816426211897251529890173688094826217451144586961299115902505742248775205980895946280087951046391567509948537705284495264145863936432112828887204121532564616698680749787422527029261658864381677884414217433787157871279488581339044159778436842897607033582494372527616349852128089967350945376164761585112491645144934237794736335349813637993681593291509109238120279696735368957664470312582719944457821852244482560651798040279487793412700848899087869807373001588386516093436797336390599115602166775083179531432011296040217304182961037669869831145862928217634734894956174100858949356169638415106762303044236369084346137705819042146088369987105162990020119058451881356815967523724737855025551242314495408503880890238248555499755619752695433459114208518479423940845249229842360896124739762253316020580376992790246793166519399118703798429780134481527425164182756939469055075801962064306198499963095428141544237365609487482357870923128520744909308648380591580258915778159401138349072951868779581200558889233653009996301384001418457654691241349545800160772161534512355836735536653694089581360421081651568751972401880630443430308458646655841541821257470141594777964222122975603832160680668812748129025208106804069369548065146098173849539972292228129460250963682520104949900973580910379905050890801972285631614233898835899377274976375071122365559700257470874027309035826483675281896368706553416786359229458577920623898870916804607645043245144930705093864656059284902533292882726794333161389754235730775782058350245258212489643402570635938402929095001956250260497551782991222054191336025242176983090042208796201649645461545090028692243963838702529140311523890661813998461542384918113046205148552819184667012803254574667112050242660206061907877413134926685420812556229334259520325859795532492935493208120264657464801812316936578008050887501118658450467249113485410455918513913797916463422894367631498841029589899624022681019332523523935060144612197058137349529268866563428829568780779100609680221109494587652421735492782095649451304637349658170662659607922265559377259260299751401164281312227381416723898464538974226585706628402898907056148757973542259254494905465890818735251891067542591989097403967520421160587980243673968122111802309362284114138645502881312698930902390846561026310097854543985815400159456221722085352811386263113799496842342573120786753195770896582706959460081732949788015995722144861297058453919801179024490252605355968723663085258212062714741089802038343589393020364675510153866796275539999869893087046741137321436100875985206921907327091970541080349641027570820773540963627675164653374654455952740881255070830162077038559546900863474068582287565526714945164339502621553623199498757700092568866553476380208312035111447857193960877388418331686816706788493320748134544414040749469176074578360244335845542545785032695318239696004398782430739500429397776135934082074460258738662947007450424194954775646420895788503544151900755761978980907966814718758768467310967249202820557539338451264633914398080439067361488803219452937662661140619166758774001774655070242462759069704375734761781299949239926015897615288240904428392929597383212999352220041801804824535275415324990465953883078058905272036754834965615462755852514031144186327502472503578632126510742989201468436500907507145685442682987623198311994410352755850301940256545188679213483890254360149797059345756985498164541953580568369495469458507461414217666365819848473393690734893795237461401760522187884361441793413168282427933097618416817969754630736183300454486543382501419885554985028741253022582474838778096382650036733154122307388280782746158644805166372914018736296618523312770723722346301329950831635853977272885151712224461755917660938658938783596463332367583866648801457419277118651123309926013155213860615183819369296609981156030591100038427845253326891217357398836384770714200100516394889519615608478914442818866336447663580151082352985516527619816613757594730424543467128383854349352070223197572552304554560214441337104472378914903119783741977153689661415975743761340292400077969753929228657580253862458450231913001929883687232205648333097971438504601171543792616267220748846861265570091114788980387697143153001711958976260002311893519151983400341048106629765437700195580671628286006417040273441888522956398228574232906490400488629509653645949632016285544924384348555445467322210792889388022128589260495550331258116601073336049700650768159301386470578423137931876140917610671483318483820222300145213905414637251283215794475524833056648761670239291800624803561719568074106781522709023682443610804201727185083010890969317350995044066110990352566435471181772421978778731540449358927183181396648482399479408229822280652643110556027005026426381298180440052775602779943781155705417556125962332767033113379119105257310592792253829546143410293716119444473753820748735345843735400479902816867612888093077169765819960661810807386296586526515915112550577035508042668522432427273838490775683111704991929365707429475695393720753699191643551320773656302242719779784947791754677942888442814281551455391994795830391056608011069495021832485317950645176324558024766647959825805958730674236342861716915363476298507588883234313759809906524386512939024221969725796107524903084251309638057449748719633513611652026336422072195443801264504210646487909846476656077442160777301559875021796744402389508687218450360425619553563933908160870052992813342480020016794382406770739218488509160058239855315637715949891328988318211831019004795905008097862186558095548810091553929304181038296074849853067741416551962353829954035833885515272957039530939077482208257635013809750712122325880432075349006588190541611073322321418485871944056305268659170877993258064980589158782744366254220149528915104586765860120251629160280604330547830629469821364071283160507514247654930593248418663931173997355624901892131978558315122973331510222825277529276286797548725645387969503724898004708926424786427777450190361316396503890975666725882794869046708343539468198430441622329698584688856161352316733583505127540528991573646911512869950329452448571808595573819277230223911931888257082018788483112624267710971941488897958608873517392371487559111914145832095928019893692012246546902788906349992580580816909908352396506605248872862854308679050419990181754504545436642687871621997790895721877808058000296462403962918109064482166103158314622712128027570556023210486306748487618597298429720939245967654864177097216768351925275076687876381889889724876904333088475550989236003848396277419425450829104553970819492640295936012933486900311962507441440352107647618886670111897780267363093330064421161172536233235082497716662369134552592510312315165682131767086386954275132870522816143600042418557523819305678104479690211320541476778188653395314582658363123977266930903253635336920864345170930013083697769985716033156091866208447016790962233129808602702551222421025857043582345882968068426687082702124080644066163164661968080955543014341524494192424303981719645431784943871568799255163866080410565633186592516069256703479123770341224002070977686657611284201631815142465197491795840097975205932092100520620225797657338122397982300614077758456397725102722092846517732393061010828758961368101231754284961944881853364284457014776979156325577681933402775057308207624115824691228885929057259314463672784635603433489691031041347196657271054882819284733644354424801412022311372054415688570628431899736206711572748763842400464955118350735250403075522828040691959265072463389521389416640098822875084662680489826478751709894527528326715476785374067867804968966962978328463880141987890512958826107920301244795702731416120633223809923436532570626676589673387988600574359314806513152366426247102767373770413515789097389481568761808622956830177153262871787493724470226936760363950598363973309821760960011033708082673524489384390501517157886290611333184345960074320750118922914287754518812819121359459168447826590944528463882351396676924034966782331059975660107902755064989959278420257540371013669088227231361022832050862512127332410073170059652390221439062384512015681444513197703693472354373561660317443830772242615585632526934921922338143912072598742366696989925774079542937712202789406697820789311593217422996700727459372377125320501694068422483546963207458582201336172422259306387506527644535643308065628818488520209140829549767936826723706382711521428726032856776817994631026033539165677930488089740870321599275103918589568363198493298491500802329382391554462275020706828376263542720213440463549107932151311316908868342138370486012197073824115265351507042001903815652467687647478347413076407813868554920339808829427404897860438317039417318865364683181140515430429165769302595248152503227921357792143316175714800521201879094998567684818803061178821967689922221643533600510504499020595699926109709528632399038894987185021027238574718706848012007789934731494051115975923288941933210737885458168103431080551458589120174627322546875493814055016489537617542425491280556304692818869301899552099187919215213925829470435037391312882055831864386919136730416601027317883588087885997016738909764402086770564658481865797262709640700147935631865892986604980593565550341176826502405021842721666749692199019707372369914542654152536333698684758191164498559238027778117547083819947993670229348084204269333522779682816360548686949184656490337907513056498271746889481440046826447468885549767103599691252495711964244717401339129953230003367031562847816628113419994024600232789313560291569845059521210199576568643329326193097982885194365224800033505251489735479748971076405694528608921299408333935220188959234529481651000464405107587410132981738206045631638575663515783159641386365790118800487265027735560027320945513096338216899111286252901927356484822971388282466722717258432291910411927888425982938617129038281730826181711171567310913266640963145732030609747875493540370706145647767427152525849634237035086713374234279162314322880776285945325935928213442421659743017352509473875356356374358875862308277513581507863612827806228457768497913996117990673893985733969881454443192989007950326536976598012388544745469172755647706537690851125106427706304438518170871323980004313801161462043350419551334241574961953519172505116258792559590781338864611294442361230119418587810929888017552056979458719158190522340303432942092550307275229423920937933988011973067625967144108959145107258506817767075914232137124915603855402324078429716857038230066250772653582575893043505384022818973876581543618776564546395949469153404570552773023996377998872995644749451413986839876856092613350336075037127938928484624379508820217288405231752773702545539284823073088159934681699602535792361453143908483701370436790813739847053543172440771627784390270524231186034686864536072019192152274910036241906603893826221711848050906982031953479940244617731763763688685755499719402631672107946795804453044809370253026033041418744250705151986413837136979532445037678926360822997955010738328911583620989159980539992293782824527760543102528860072527431568159402437396770702265098490806199779045176355673959610448142986896652464367342008432931231790039587813885690257747787455833598852724264976807865252991216512750761363475158374797599260787497848209341263197668133667587628250464139514075671372707153457462015571531596349837010306207363910326227248606606847396214490573179381204248001116411847495748986913189139212571201612196929888383559267794021720671858007751756315949929805564571921804306629613294408150411233324815021337848065303094816144955906690855038439814710696658881890266879046603672116978057348501506070440744191927118617520760437407637952515404671047565530131288855304387109180584520995959040450502526979653334438439234279855453255545431745733588786350345793907613220817542791792722462530191094710798238013531168431231192422138638338737979212231771859294783053648760358888807790396386971057124538047242791411257978233219873708951534277507254845363378754921762687869524484272646383277224763651011973010112705637923257458268076039000215450062142101362087938951058529719459912166791447368738122949004419359328561292846349076581664622070353655480308514365326879797064157375293176006338522433020281492736584840456847465560556593192837542101845941078131200827731262397829759313268871082626798232139679474695706744462256767780067873768280741325375847614294690717222938118537512724763198307984315504764339915635688402479009265167638072720459251787115541246196117487750105713440432520833948409824146927725623981530680906581794808436966918285756855373589058254398067454279201667159585572779657273307542595048496839823337614250175023873698444666551315711941737007352275141839277838806854641292908597681316853289811389619608853505332835548142963397931974174127022240294286659056159630496075041496651128378527413998569371370385889355545822787244930388705723369304579824640991474045689953852447839339727013157392045575031768367838790709297485664587226483103590079162111751106257023009361071935889488533551401789016609652936129862545131609910285862709805120423525733318453444439106911234295135318530520338055144064342241455321732280427508093141040073530045851356898032443319190396166742078121660124603851064587385395476872605052668789985104311431395421816187084671329615704483444665304638646105929156627251407155002649590504135689987358328062733543736014929999752118342263983886622964699948995170277520909328166603416549968637519434092886277387144037637491509900713924571423583488695181815748732358673845718456902753326239279458196752106663214517590056591984411008439460408722957544448874172024857701061262842277604518686475768646844218833885572577171819907653148542533973624568977105311900526659119481837315060010393318050168082000875783166485545639016450845505057104577919350811452868542933950180798249778050458893494815416878004135778109662713693614040739150234734357752741810975360732936863633788001722209581631820391070051132494373584102871593834323483955469285644507035145145722048664892689582024250688093577500839961915017869785693013663001196971363746177506104665599604916595871603171684965509865821175460097784962918426668472449674287231053701379714342256761799442234574728209653355786848971474108969776620662229205720220578345842907669123056655605179920382139026660896833140598889684634455454012789021283515653719906482508640311640726087064682300519644857020094154161799504028320013914680664075707242670628765751605472362445528427649318046622806607059501612742039326349410053944086642515731027126157283241004168919058782353655571068176986874844795700484235981844974869835846577314676117079873518847778639648902275793859661651109568121816583905677491242867785950350112478089119262203339136164335428491273285217767782579431620290218978699891259821086914954296521822224526782611142942029231307999671384194907744316299219259352137566251711080936854793617128895213569179643379505950003969604887718709371729612126044507532910731210271663074744134855399082464848073067620916036386859722754084812303293185539803026368979857907770681764917662016978617138194155399723753786542710328399680551226230108585926355867237371110856888315998882688359428796891064148539159059834633945322213513887276420652362401222370592358435543824184779459266206838552439680202139608016333187200185222007709119793490307911475962774691205199362764187141831951602542175011642721333752383925797792797756424537118565998789980402798779148881083228165008446645210550631822128273738394888427456419018852816175953293058606415666287510805234579387003465116748763285029346894623632795546843983684200641933116073339971751755578095881637397812668086129074800535782067844370203369428087740967243715479656152055595875957970040280856516611230189170611990280449648253658026156944212934193144992251720389128155377610605388093195067807729721603443941297972867091630423929419117034052052754118990928172745886002656651829260463923940600066898101117348189511180476837178767584760218913588953939052924151251211690527318612748746484719378376296840362671542234530838490971773950571529508446087568622299487612602946104338010277722047445800883276301218123004360259604908893501518339269269817156420282214287731754136830454585203105948793003879242202576595914943743790812760737127604333230295058890952629385822614743545599410329924209275775886995239755044727680538873474418308869845815483488895484600675652638123815378073066960495418974126096185049280054876814882043297147807977099798383276688061624704475811664764569892327575867443625569705541818322864045467605957090448921451369028906677676307347772107923803028298738181535350018187980358981031673355787595336659808877894753934369153397451317266584617436480216248203820613870764512346957500215500243776550086626743725967450216137635537100865520968170709957131933315950378081264798118296480129994729458369386830729606594062070539866103950977068824297645603311114151710057663273815907849471271128249217831931849789155795418953754627500621866302932959980159499128910860162412428975337525900949525690309581018070344782213110662198822227086299506183114958036731972640060963207988650838109010048970636585641817742860874971187481351919634234197473261775555099819416840489420809679885357876660043396374950341810555888246330316811577472922191177650626214555624578843908137306890399476885722947955565293471691811598922583318659636788483079745736978361745801209091352544903835543303180537628577159933619114646331370685251067028089609561229436590439447601446526340546154966564148755163028455324380459857381476032922772405112490669736106537664164437496893787279651181122835608993825069682411912034818183305277492312877579990259586027730685971036566293616686420862432591503091293891972718110643972295010999656979470182421087620078985201535909526054813621185505186513306771719423635805258109723665907956805905831884987325604801445289339568918133022017319495978182778632410841940948018392800614983475585874496748188367052110703867803692336556086819156950396968531345512096033119237481682771386793302394623782136582796940340576663609268499919007669451516613011159969920975590358642993536587640687383381057588309849551590215856808167069012381274520502049141953817585286725859174728152954701374149683255234153111324563644603872921884992539915192926941253575315806261898326926140172802626626770760155349852848731929162123786595086103028560872502261876971690683496283502089085779090750117159012985920999951562470444241597336113116312205043634066441226275742930381487503454260801803647480949915060096174202295964889830505672775999650949845760008328913574008261572899217514070224605166301484368296295023215879283603148131707490515328700041602553993952561175077420127745349526308444238414077158812706416821913810436073616551458019463336343665642882230654884946765925541192513839445026283728721142930051606059802117765115090572978879982953472315043333208316587549908938301544350618610703736182451391455982759125145401652859016933802730490734433357258140660338905128406404350786763100173678038920080296999170768746627627636001840788763150301333684964792606816383976533782374344596576690743106885276095191770860624730430277085138843863732470849067937350821284356766581178729027517285082115291499008644647935725581380202535469504212811556556244566554393397076742259755333180498564217738311641887604519917818125997605298773368024507737890234150021752841536803687301872936842540434541627538662394028472154633468738256091305016021427156068543138194420847517723334871815968670406934762909331200201025962190269698597661548327095639294805132823481890948578482534722777025095179110939895701434483465785554676061963105572667639453153043940055863748724354235873036216136993722968451605780077209981678308449690153882791446384795723474801987577619635961939795411089105113953337582340756376112176564799594820179358796315105495866021387529342690550722695943178789967506748384129248890494063489733143364079373352828673343640591271278855330710379213904358728210363882032862256131063222192516812480007160785222781377872396472753028238657013750912721901004474959768813739577053016206611328718055226608645163456810032950828848446377894105066900162099243015854549250931138472518730767886768931650795828504951571216824685876346935121707052807042097445181675977496285165998809126026869533861437180911221026327717827685765076871685952805717123289837673032606752955676666755912110362911360132841719421654783161721547536670322380061585294312473943569855799886363490257538870333518594734392115995151369715574430165803181566574592574069047679593632384093870708842888262177183852004007421216950543606849669558098029280585441825445738295649960099587924800480481639821376072572507890102757607933025575817581971731557146735740956414208971776352036112236717358659546380116163054442065857954672638780256995080533297162041219777971102188360209981414644562402703640968830769452384304760686090559087761521809965294772553173387945856271454941969389603925988678498643766844010445704951657318817760772387598643482972593710017656394585941897585877065618741610471508561938443919320564743321733246972101522994058859478793895714677769034326806510060650678727789271703093906519057486634765019408401020974818769052938719195217414266400977619689933877838880216641155969560789465319223030293016754843692316955659651845610258409758840634401348812063160306622942835555820337027615048486417735679152148032016549485751768202439431650776334690684635963084258008773835390516336185033873999461504545202293686122108749480412828070637174806900823692727621725557222243697067190662074383074880224582515471925460923281347339313432947700027976460872796795780642423956662757824201399546540980566177086046480783450908646273206818500285647166511040281029006751145940876128219004780435323874799493593154096458381104455623481302834844200676945075056861602003509963624784487404518915364543715866616836759408103712976911596392268636099718247165338053016972139631134869900618287135541103288356861048935770117168422121200451682766870802741690929901237785474034157558326610762208872073337683880336281753334562555497904990699107018541499861313497901097363205771093843660234629993503950247902940296736111099364628043470032698241058797033508044852930042328458652335631623088410666738951415804019495312351279251492063664760185281360437042143513930433313198269813824051262375846989014717699880839868623466985326825584790924473267656822317774630893141120036594336625637273299634874686447365644520907248981890450192803897809220449448944517908202605387600651789175002759970358755747483235616950096673682484326982486877122700043735294914801490000995304024570908851650522299010398810492124903758232440016689614020595532272818316053008068970918513015008631267765818285981969899014839709592228210588890078606466417920304036717742303578014509975996551757673833087620328746677337676633048529157897345150621938620399715832007474777909751023084630209137461456803627042903717473259219154768321048267020919733541720104351291238133447845661482585481966976202830006796374112492731525991219227249076099182858993429220811064460867456894922944228147774337564060656459073550920790798782925271064237730262256365597045135774890346063070981767278013641011696542328907204639811716975355628352610632781418458232201705324883705687190718229843561304275452595518400889226133164793970321031148105346078099586788613914318889531147848955880535048270610701352949050053262204210998728925140901211954715734136843294906349665300222192645421985627305178569469544577381103287116259680849645295144307225281335703918707089015025038809195640021151052861183740756104429200389727197685059040576919947432011189560232597232950625051289181870512841840549295776872250252473569359531790747131572301723446349169400662542518754540639895691974859167863185888280814703523633697961538547757942948782371166613694310705610984190102945542937992782071912949860739869386096953094582895897426070018213511101768356810735982426263077810619672123469190127972184111616495492283551258376502384005363333039854190087327591840411278525949035555588697886327880138514879126760879695151142589165122176995134164164462067750620720779793548723493182577650918411864990249557256716941849515300659558235825721602035042667497868768313765198134102213564413123542795641500899823002303593177855006457012410582995065460355466352918954313394142351079542716631330460256745276547602586677624473026089252586152370479888150005525878332784350213792954623519273732161311270336534990487312626832395436371394854529227560239633398808945416755397633437484067177135461580326870177272839965062877576502643561290108867376476821081138027913972465425503339397196800823033726317933980899879177408642527485779793460567524975072128042501794276067268608355443509424099650937911553367434037908762717476416594437884452651982504078081660478067330624207821195193875048850949559465239363699836868692473504644175101833639525813948985136111712698497138509680424626097851937432990895856142108352829492727316505175862298297115127474906718657482670382807414260926003546433612738590632385635780159155297621983168252614195920557463621625610868698795345560219368206810123398390921781960925909680456167713628505040831142085677183543328116804982522422093217454911434575119809495479528892256007118628684478648229976871381579684921148719753970570468273096035836159627865184677413005745734233102222172300071695632319957178186724985130200991326044570950771612200234027713415388489769864766528704365054579368685047782215591726262089444897503298368991188472527667988471442088568039108702675678983787012898154281371164060724804569386764023105396329618793978233474230819889062762261911720560059155086779092608718681706885778193665002338128066139963765572952699277814528443465041194844276220657996170051034264648612611035698459362545457356375197265336524937275124673387674835066164603759017754635476569875661972048306495410574957680571306143045365894757995885356300712502821652655566257959599480748542206623330234868854105598863533951635696213245884996962099921216169538870350800977931105793499581677986526183379774045196697060841382471738137885890049924258381402084026352545501264836666321769663047808731465049219911551872511997483826200185527651187363015435775591811112316834188960589717958365038582469527016495319670352473932358040262945919944779327469068099136409326895832961683364803182940106476134329441778400825694338929677707208560531060260110983178254536249654080358689428310097738616838868184279929853253890648820548787966047399839580754135091148077532748549465427421708427543961323033306770497909873747327896541520373889012456257687470113441853143431246575208376791121009542865661518667338601309808851487338054412512465670743371220152775966824910762718836246677068523234574893967601449045837149302202388232181026701139801870128074066737431265334079881185867446561726587587884265527203530814746054498488722883298012820781142337766682179173979256331248905871358602695953127222694099258457987477306408839411140852060225275275540851983096328541011853500455957120649316986933268648760359250464156679485913870016495037240950946033524010120340468794089791429392366024361777118680858021318580546081870596716652356635855485930012732654964237794479052793999159268753184485995164295778462076415255237558984052221754541172371068031672384066853602337749676726917202243936824255506430518164838040944496443923882003130339173924469688139832651074947640347587436249719652808600322063010950339810782964902515565903229976030266965261649894346408403723473777682210662690810634094912472517488817324875203029018639109596641738807941475616405310094991497442425027880241529319493001223757653920909941338042718002338479506051739217743281012185509893064604365214484644407731713788195066930011142482517448254884074852642793076778675691003762186982242148885814846147244023117313778922252603385670796272221837766359807705801830738607992570119990347946048079046213273906652824279670129049381119262967805274980274104247677836289065645555099354245222072064223179156452024355497273341513973917290530954047650401968349201090605192657120589501686874662006505239072560242352389196863507082615390568197044197059352595728709704352084738958897461622474416015134537382489472640848385088727232555538897456105277204434392709333410234418537260626778161903446751287024570369130431295914944607629232696487154178698039767610084123865586385405174501449370351247476232651978878741344064421345908451222631691159069241096994868501271099084441792593609060818098684493226247482213832153173303281941112577472240651694615915401210075879550876310218660701564802534526739951769468582341007061309760226594515024006535915511118554925649524796548645690019421906684963010765614927725961862174975655595413768059096206562266903637281128187747766485678202735463350788792963233341676268295080518879708270804087837809839381273063432550183014286289749679583569407334302139578340921632248519942081208006289403498646000406465752537283752739105987805218324590064085582324936704544050140166434534163660602574680258556811754820377251638400297629758482388608916891899407480045349210960250509246633310697185034808215850790142464269178870306367212657722725118052029125471268157571594436258777905925519750354519303333659731777201148306371619222219404887487984128475647371886895815610966829878836060061440931234247951492133261107522033095670410374236149168091058317925653011247971757301508445296598343400021517291069667671950475966987810813197036552454752716301998367169082913571280002708996127436155176823058851212308026169427052255402684650339664019017100904965317099031315317216313816258302088820309542392711972391140099613304504465562279117313794778805985948348515406229120953385372140085230975979482308837209918148941008534590885635496073396020172343367464046303256513927236238996833690137576613931436834413802290601315100126286277156809029102654231386248382277524480032394943686267069143664076460554642063311304760247167058831878777319042327164907140527274891392420182129693296232208958581701929551357006701009801568207259314852828336411390419439381094369251974071030189057300939717856965308948883939639713266693699494730244466153165598122476876008052817049753454872653487573994351115229932179993111909435444206297965523508790709708658571995877124169023133043067372564932845160738609522415284137771879454212556870097600980953030389478247890491716885487821487532546202710165525629292063694173676903873624562118983968771508724273545043737088932411541401491030565709399722623628190293104374307494783780459431380525709491955771967132936201354012211624300931354740860380068837644711529290390900633828208014380141834704504016361595334806893289175670794698249010323841516464920680674126761711034702176003018538502491660993641497977455891404845554827272313090097129285894824683253180486358318747062664560785374777848450735259305400354758388356980999201141306368770601029485375336823008704613436559306348625741896788473195195589868952457264604080923955981575295580859735716350372113640210457257343237902290444543571956514389479839738112900499433098813213322123189357191333290377916567419389976646786519988643215400573862541857314729686798552630333242710032890704686601584845782876683788788561715061368569077020310872739691214051193672877488461583524767912296378558116508342420517174707063379205069887974248170786745964316604004761882688292183301536789478908385978274402852564069444007079342250825293964648278024210866807395094520308714429809843612689321059477492763852441636884118774235812124585914616262482555137397915728239146004037364735586148521621361601801392605811950179737232114437859987998302096668017018806484978638621059060273367942808530510834646034965482753262007868483020164118919614213964009695138905840671773264212674787050461757011081137764230135681136659115506876412106539471282145774321145087041758720434475715656531366837198191305645830360999982586419268219502587761849022396620797918140390160870935079911291237688795894558612188194474076296187376696570055893912625828975935554426008523897868193885041992279835381673953598725482992033865998750290617002858115582164834691140386702200791254429465621707760379152525616403281995731637556130390340637040234997907013100716987259272079576348258149676054991211997805553199619774791352603856101651255869357513529347447853521101803818531610353787818575837755268929662768220859769375744211704306933578111140402859486403128666597894910427534646223019394235901976014104422131563615478675517950732447230841831572686325999299639437276315491133235239680865272419674321632328867094976364524577410787715154798019227398012216191927610702330379616994224503953984634445758569117153531560455908229107533801563581963889072435116264049129569885214385537391789424870280411657385707709552856587090568272258139856775246265478835120141670199638817936406689387669960493897057731414673300873936283784059747503671703816283325088843336282481060857497258163194478812446649040415154181208646600434376808989233023717381854055415234179091273046866831442323992916836451772971555230249058498977958268883669339410205442303912329482457030208117876446355615640590115935293891610170162813305092264257533575335916233208997094539154560700984413660579700343392778966838966945139572019180380569433811490447847300196868765569909082137307127526443662538062785191041861884620962925569550504060577555452789568376250462705712708592755920215913854854361243599447006724113399288500595642204506043040696433056212349048225677932774006819326301557756994558850412436093232031328730937944361825115756135602377167684794871957167345037754748063017007687455281974185853945287749433151045533437686205599690831853719106617199620326089941094063127783269797972931921313835836417395438049505254870287895550979039354998266450582467090636433969540282008147211618611583262240451690495747031448478877079710962570658403076774885683725372211649101580929062779782388305138927420085652468953234464899216010743284349022969943368283846274574067612526586366929172824795455684035480283993335929885308338539024599445580971434629055630691103398238322286331573007604506988909852948089731823579265532721978914080324195674127333379855534206882600837964221934518248447254845107454489664482948647860378074104916501074410771775231701243490003941329730316380035409008714624672212447004720140861565134492263930216919299619075394926675669421580989220457008220908759447988163994717354766047864210278441394858196250893555992386466903370482836901816085744171939873768230791764340406944301588810743062604938763015237014951083814863408261850905344005286567868579227034421934822558103319873284199401953807186489904723419134635706717226098274264676083891037709868699193785327253012137681203547450179597592350040289877512614263756347072147039723650899270570823452458328118779422436578595826726246474365956894892517344014700082235563214902047334361463335978540595026049342119533382446021456163036879484908113102061123231373728002061485520812889094327696627582735983017206006732491753404839649627124334984867345488897986124850672109352434685364913019292505596519242007347331509591247888605854351317366833972579757604776669921524762744918931475801559860117329425079568293704362066613809638708385362665581500169307342514944128731949346715413041730290932996276928044394149973031224696501657661966751587374663923134639854686359199221557270340819423941680224685756636267522155234936745510649866499212143772241332622751220210567623946194745904102640766355524577955168667783160677947122125147782274940701872109238411834490398464425687006179490297004757428049491420904032786816568247468076846435363879171878721051426539451744707098343632570707231820323273761760306734144655797800959732654893894275743662953614324676622256703301655791717097153786382528037123475727774632519189942211634925327745267217116947607322966239170874588022359969619607558019248864464569625316924057489099107199394422057854131808067026626960639768304279991104525032362758414774738853920857603176239433210205214352766664586468141909031470756297999687005615322407474072280199730197708638081959602304820296934525673736138175800288683222975268598404215381218862421601032080185700399324355158849339461616377924448796212871087630170989233848650364242054291700034954161302631191447004428777997676158883334271406719527868343652627772298769830434696660323606197135932218703919616363250467165927901610607054307835853452939571441105858650592602340915392859002576007058840965848922496527506774379597856589044790764149391534445265377675746381579618764851710763068370841731395402852377677573358642525912838847132060355792923443181022771183586279638795326439286516542686080244501922483876522918574382410736928697179411859135573011611334919869564975252637330107328347781303687878367966058592841261604812555181090194458858725274635764891317773125918745700688530520775189818624730059919117125527757759842755778690167103139912971640572743913305591426382061903129812844162073977917515098939998619268837827672053481128462585272592159729540542664812576960967413934962079916675896331473967665839145496397853218280200812796872833080647981319072777725830072306789164703520664630603434918837478970310215353050053445836046492542673623448765148031439493137924365635502553597081776551602881487625450584620245456671521950520398686892997206453962365192015344410740338586050054598951009645277671702220541567440255832791314065826911713653780563591430052647197292113725864925857833792228852564225625615552342376091839101840354594224835309362588197740857349277956475577636642298847311001805954715507995062620832182085983108993841120287137162717366699387938902331296886792289586748805278055523466376595989117874415211835135983301521100034013164044478567927491877342534552671210167191881289337632052836989180182255632797392682510860852191144577441412719352484511177990577130704572364345776921504674533791021996768045291081412619954383073138513126129414350575695860448827336826913279292044812022030602554986091793280670767101872525315251793952876614775847311999636354907018112004797933891231476054672549091967009086456395941502488705906133009663058975383876764689065630846063887446680938533801074888797866170446211172526738252369368333197034352596696247184781832363713784881982505517654423123737040979718343006397911525980900180655966362812102773363140545325338962306109182715134059139513986328150974192823219923532537402808360266271557443687220215483476813713308743698937471629551155952315036195021353434160568124326611269049395529841083956622609941502148689908776614503495043954498823394028821400184929160050985949037086741508381899539314181781066814611964424403567305491870677727900430840443390521391675591195518145241107343959594356419551804633993185484620243758524411585547845000967982441141589061648015709405421915605814346092564488668245541087650298032081297797560897942214403413590734066977548889128516072727603283395168070704925203722726457692231750377372201975581363795600396262883661443823130105758416480364917211427087733116253760222399234092291507708855645732279962136928812006508265097021695575637800590046066732262720526104954900333118218327921292171101192613567040549936718606419821307457754113838695262887189588036677473159857207499158878757151460217910176735204250458654488449845812408506400642557938215242354339265331462305647024407780932778454447213545109326568451649442081865490826816024556921832931811874444894679984308164829609868219668325167334118238284620990037116522061741701122945067919386879244472447916850671776926578209581951682270096508571097155588587028875377294839851295191189752702079332717923812869598278635040571103764705384380263467821432899937941669021025789033618443935820683330117521720070942165143726707258115343111998939940290028707241686398613010114953119946760107904264815124577597218829623012837488127736894705089899890001760172910439222369276591297602205000679789977820969107207192616397290340188599352308989239632170415595269254504264812761014071242634925514041301246902004530189005530366249520415957443049186167149069183222901302791223987924024635212529608689369282714405479716903111492761607186895338231787761682887434557464005010837413894702157546334025940491325480076171066028048396485746375493362366923500772580562699263599971510396872175799996254128788375811044299542666916342146081171458615614779979861885507987969659266437429610103568840828210471981452271769172495936231692476341687159825250240233534129317705323167622008162440206870349118865029092972151109624845393697575454689109208561998658511962976859908722445935016454649214142256832067435408982449373383974201427397750437997979184844003034400366906157042600513937902817584850839961709967503382235968278441647030656662087825746359380200052794273096567744436150391923573011459363417469733154134861512153916095923499648140885163804454807963371608677810841961555769489937354895836523489588712380275160934158971953314981901586386421958935812910892092042794182188994738261867702182755181800616032778049707215124672496733756507843246446581779862470402834250434241221533113388193693968840789572435590313022798116981979403557461265871946129246084029550182302416117766959685679697813640635024606156238724337959703970839960234732039381380364077670299123666483061860713548284908170175651503739975356016559545148590449302020508884692078393047587715733020873844501127675454728331615726928265918654795501679428632266956372457951055954470753941574795218105076972101536516376643554939192740513872118796148970899030619298446630930168167853099080207614935736125205347388760172951626097569933484837032514321618804585648450161716040425810658938496389417851559017105087934424372001389230263935106753494603376198128989449558334770556821428514898998532001610037639533871237593366232165945539574930152468808581461791410393200997685680869260956653980238255272849350947541797845567324473719942172902607872688312141041544516276965872329769065604038499820135579158041840785461971764854522595932757429223426973924611165590399833859398882367826259986188491925145893045100704940729577553891001100376391032727013616954971409424286202269386381944447605993380827940081079605347038740965051927306214842736645102465203703050975408898582504102053258566010054268206658790270025741265228954348231877207180733573217053145759585511415412507022731293590508431414067492724661236081624610646453145152043151323889131128090539080844942195025909264493524446955740077679956344586454255297453148281095842172860892825223773615866720007791376282795515462111485741569725697093311716011582243943558829431296088558363749655248127197788731443921385751759914131346983371911561573413099185892782927736165369833119082360157640801742177659588953544060089130609877331477363769973693253508312874691378355451533602678578513633867303947340387652997510173713179893011315557914591148698799485120679729020625399886457866395935545689718451964478177177835340619025906279981475219367629230960419841951864141140817775088081788228070734283980905622014858866914560768004529270782600495592217295421855539075678681137590384941821065336066157052119359437600977183108244589489464644639972166717983694688616486657470852537938253219840568459883520818890261097368686560348501431830647935548407685158893820686967111723765463908289692562610402592220883662419284611670671480499274367658935148634470795886512054450200110355856190627883793811261111573376786859201289718487816817101561626099327682536899662317579138659781591226452891066017621853052288371937348032344277704503752682236782143022641739938777687200097990114087553351763619930040694648730258077702394345237671947854145223567035844852470021695448894317624315908321278051364486630986503092143496465498576808230636132451532617450274083644051822600945258450843027128947641096822882451679937573328402959577807926552226602741801919658294825238851010404345123538802961007567936452212807347329471154476736346018165426934198545805782815530294849424245426912049616246997606215303530806002042621340976729747503415549972126873308617691363925923801817359062579249935744448179585282035289711708412284642511353185409089152506595350542604829579810417598728044960577878392143766545084833173330845218586184983895829895763041018215258946319458568517234291026951523243968243678290429784152986847020185443969256150764448518339016846428166680150169389701912940253820101792371898013409309049969834984221320696900506820936428512872174565200478426768481973186680259730897626037694917254579203335127018415569217884848467121153000030573495210832790881782277684397930545891018098300078153792617654888514467684157566157884171782300594589404204920408102646652421332824712920667799688675489737583498507642718031492144163685377628124706549804435509827310637253032901661585845948522747086324340379436560843649119431861956461018926734707354513372581865439647586728299348216436478376108445093363258206412618181576213005059386404596316301631448119040785663389217670692438247868770098285089725549372550298605414991231443476371106469446547817524171870141606103642470524062745705615951745195053396730543333949573292918828264438800013920084828186918827457351643547271985445821017244433522064404817324094670447793901581752633825887444201014205916228199702445520117553449475864524753660854807297669168806938446828073858822361830625725425018302188977447821802405372460613444256799854742439940658419658632079640007320203321089760418352359542174837500260117924395863740572533555480493615738871445212141472681175238244352608641026016560574402656323800893968137570817093204723967940156026123223561757134409451548209377614409010949683021383938554235684697806735971208706032112900334754416880229181374078866669767585869997007537767116598576068677236288246466851225524016602407390858763991648749247682227014802232784504288399514945571610396523924815000753285835918769251544022421484845574700617509223374992849765499576122755355523353761871046418362840329060784364229186036806123385888945365729600190635017165735769065258351696186270547937423129084672439495332974366819781718507606061058794577349832459060354086506787763642919527730995607792776721868837507285619700088879881767520755010718227919968361157746206778546683801052203971405120727153162968949950369181005633083777699259814949891325918630193429113923722096788569504975877172045705806310596417104046776175627777800138483773546497995269197724186999532576798464482559463827908842384420265172612321187162831617213694570448193122091250345578362494511694051309017113825267403351891199713847050619103539512204084105260858503207366175588512778098662573299353978971907426206392235346344258560737776217138927903350631411870767718357839227922375817459436711064759384425992702137368152162286655740956002303869304509912644096482643820910689779732480898313020076727362562977579969515604399409024060071831838170955283717732274296831438708653644583116044322477308516860244187432136322164082594151045918910600470211775033693106027241666248707140944737523879783790143880208335939122025680238233318353751122945909379156998033195947944441783685770728853006621594416717330614201578056017572817705556833708741726364887808590236731843545555409164456343757932922505011740965640483203221152678697750867265964058725015263925641440451194924103246982847285049825885942926789325928606969970738761231747693287903717601072168106313851166905202972456664365648598463038138531596569344690041903716080910070799155856193564542770440688871415648575037518383747053427921677905837647782315914689619609321029658757621005373023598478779860594367184461526620834562834558211499816212976815441505359650505951513822651214950313061757634884451060343797341353640923514129910729830768593254304679744399946972530919011106826910480858036189058087486369534237441579806412935980536698754881175935836800546791626445718688200066725582857634246715894539263858257262815100687265305343220052789095399708652012305175611572500459098042716553999205737240012926578421888942730900812006107708707806938995015400504676065200939145311080625302774964789563317677474254212583761967722114301041809293843064357774040217112586634603756499743787861954349381290683279206641477491503215983356647220194525919605852640758265501462379358545671340820589040281748738696756899774578125341391393742705127086473606884061941704500479012292990777704322946277034967870021417819335250746304904630505081375867917809410332438445564594016652814241615341086684545922653353043322726055123656519811748449094294229166589597723835921591404580895965236310625342686696128253384415695114457650287416700899698170607538861951484790530817057123194704294282377095766427691365823463677022025746729416448988277221461278569047467490737904319307587121645005946623580140894156551005233358934452396339821018056337675922750461379186222106055553737091225510376301294287049789003965374636775582239452170468778973060798589489178578036812533376112774358083399721423964047493731903959144393919378727642209371875269208362175653596024104841089030635831703399438873698265958489258819934932493917564061508487702300707168282263071302667426744411329402497365693092445593553788482282926431947544520085386260151480243761432302152002180366873120237834762667388449404747396858432918428408930946403677964881292061832049862723083035696143561524321351782986042274889386769752962000552199689150580600983298039412882293206054187521057748460117483452779057967820754995923834567037492867255278052617102635131747375572565193153813333553092402298951871826555627581870493415698387971160033985648487095012747689852907017893706808539753589095256776676569987902804681107383876324704950054570106737231444658064359697953307452357626876813429497746443366155552518301741003947291732334657221070087150364658955982814856348712945667340950091152658517863681342208414530580858023154383822051277825530049383055420932751194416015788370959607471983072020923972811929588359420962048735501850572036931958011575938442410846173098605401753573207522316619797362279854665865223363612831571591768348312087875913649653586976217349884083606763620012492708239782584487099786708357080610626698510919252484005793730531513595466464585460555086184803416312616940882582339461550937296738021597210942135769770578423904031415579517417118061464301242770868648717187600523089373617040942231368788371380940764868311853110655065752649725488321497991390320218204515672204047430298995390390332513006220303926724431161718453840394321856408638356813332623049286089932139559215173796346734804080564752167329860565441438346486457053495177284327017018635777076207923318767444954736348957302916429471624723885936061062814186500383397738385348545339332152252334993974796048967137249509117249066625041650706109076610188324255689740433125102290643773043371081383724939340853873741937005019546224496188730892646926305622953897219504146844696985650307040314507694356251477012477112114854982044988762885800828529707425214905708220630400157328017644526988667930148331300124339284572481127594964603082650024152244382350962831651551664432391792888262353229758162045458538219513067540005176836439498637073500966947302203444691289184396581634337781898636008731035110247796388903530953262214959872092431757878544128091478190836782637668740194228595052273900275013666130571605472051944680564454306207919379924751173758999869811177367914167514259761957967293340520837412233559357833267612926712388884860005876085745735817707010420032331196736945496020025704941297915564232778363326614898135680865254582367251794466662247360380250962624648220938783902468758655153188219602944214273542283084347842949879703803316448667281702978262455130929353012255414044819252297552143498160918967386490299029801591206976210162594682327214666711734815508164653817433695421375233457644269260892169930168243277499368594944730545597601267581526822657506000505399800236359488950561219202479890702743459884756740855435914686064369220849409915730746013955876334975575176267100066603352583631488809486398973315086964366464100524967829208983783825666664468372394626800621737528325776606813389685728074939766112191636519051932623569509615648895764910492172190366937824095032300188842764669696076600654522257344403527914909658486818325296038821068458065538424053908425966111858206970546366528540779237261711916455248585040065147995044033846306418499524279174693832283096447992025106432606346615027080300768267708547614212799767599310367581150130526840560075817659393144941198816001336117963752202338597999904120530032384080414338252022172278061256509709441424640227777767351951912383333756130931396513396283627045337230671216586256583564223873254737445522818040936248107009336531235476028671865778306011915145482582084653407630588794502784022013722632497263873667622909053045737880309550449869387846282727140023396503016104657506877552482689947465947796265824911104724556419292716221147993601558669772024363143269908492181903797178843553025970428021279768268228175625754823660703868410541529117719150125573613337414734944491367596520716657775107569945156985798590390447462751234185084753111900405750720713874272848478736326883719135357811148237659923386460206812749382743302856705241836827290321947188213200396469137312990508956466280363171829288158182918959116592726406430764372965430663801085342607732801119598715326719246482152705128135239380100655778224750752266141293488358404741226968505170832599539995444822916508697174999990706240543802183677232229570088239285059806724794991865072189129702425495194931917335701581438416996496506254206924052943005881090367917097464716382857649186560066752009132605118942885262382087693601867388642997446778872321853402752729125183112401209569949134864126321932627149738960557878643431374759019473244249438694173459038197859995968248656288237396181699369210880486800596219582060893617847101985348682938557908919664895535248388506783233130273337027507290292327710480725315726106535006426158336359185423759306610866735727864423253683727105939678589450532000007507167688085089907954222016130201586880158673290840834647513064236658559275087120340818079209703790284845691712938638472103371072543820196063511779701379608504847631758284589785131000577115900323466305112975628694871740206949723048265527544434960996235238684263209390390461734530095822630623787958575067907861337207555629721692748894652944580377893548676003742546922869848238680521916267225052278330467395259965069010871358523837711487046496831117416917920957795835134981605921992276238725760192267612378737118980474987854271166255118387554193327243353773786318060575305579802654703518527078668390532659391348394426731192915465666031752986260359066120596366102555688209161488626811386139570763793785389371626144973137354663762333034028185945715265483256404557708804300825964218242009622307894248744068947663593581633456482219149652620770681179775525311179346704619815039011792379093424107327628027324291329147848245740990733955014121166742021286481147811622630946813828686998498108193555532374873055526960376385483663748588044566878938369875853407113213052726365626925241663072177055305572026323694472017274618660835224328519264540417054898959786805065415010963962235422447304926207405710001749124041864563791991073692917153258562756404200759191860077706526665512444376510230160978293350857646608762772019587578105203571041012952733909891329823515226643882827882698070101338228516219975173882904516311776614749125910366479458756837606494576442211143719730742473819800055621442497230310397160857652198182853184493655553815837493368822074126947955727607002327119211141808781601064172995180964179699561314499209001140196565930032663233292044726442995384145337260598167043005567596609878580239827099668342006697435081866704340568814056200336787943421969593246587228712309435128456744647520570707625463663187036270519495781465408884293982726484369077314930683353120888764961417624922713057757128009019867364500043243729630078382196859021778900907087187260955666852818278106009863344936910378620600130057178667907024970426421556794513640488715916917639202441460470695461896331697541515068349141289061650539642827275959200218741505253962574657674691646210721605887375387378613963565736352582326414798657001369737770002306335390844345457717719153427513835230687510904734516773237639249569217893125761544947461949789653173103922867381730371776444864048735670304749841704328724328026522302916195416048674596689110924197822917219572809141874918421674904107806498884878818039522853631971660829050620857478004151658757949097263551578997975249556016813671417133404518515131817479926942872481326285138049963544907497325986642287351801286767040319490540039888408326734357860961247088772758993289843950357873338497809512932929387930151469413402597482243170523650563459584684285913987558616727264591139678215886546397270994929370710877819996378728617935998959848502314196404020371674100435535507983910481034692256360204704758341949612337576567194506210900088631590001701146597281946710980731130290574224489465938337076910170628443994282436580221152617572882663621649583647493306790186926126890825661122279787245365614577123851341696226988678001832905099197239129205657728775950142973627621279859947878773947903877029709054066259456618409884403950624215106645524785706576717450773832938812645199076830503427185123790181087357564278322448044966344066076170017570564155680771651159783823005391733596544561898807175452516528688548992359622559120086246685368511917586049420225551292544167416121195352900768941310845856574282847435859351555600559503017536815805188692501160954695509158149783593422075549208408646637666209863214020966130738967287287895182918534917048356396967781492466818805683551025378004877507989149359373985326247110741938935646146085003773397945954388202187917954863832952225483043806486623096700308914876138636098395221223484432772109886962672616348458579115488557245511020826801856877190695113488008609737179768104595435206291515329565216487439873916582645116844554565186144292145691375946072058130408652409106755869599951053074002391792772827726267669607006756144274545890605716565938477581681684763150493431593289445717087895996245292583695664438964209681275199968312314867204073597718844527543930241752373800991796932646308711298668729973028798422895964944140702667658139943570376738619189636186219295308706239383441723287966857333194535064498160551945070328700547090978519448011838739856174542463701018406867077497155742687549576043429162406635766355921239676943936184940656645779527262402694379148916761948765944246256749704844113121664448835674436583877836102427255725509951557120345158904356028705636501355866877346884579775490166705350616190235993655597666512818623169174631800401832196385414288656070568072938905022100300916857302631453537949606516084786786593157217678964494406908895051858821074972645826323042905286171665164486811034458104678201295747113782755145458793773897555710017801631959684302901797977150326276537826071349650055162426301108355274445293028504009810446789941734015307427291181579938678772427654388110417229163525819710811601415883640734994783850426508781317031188925893355097043888762338822889830122030129632102577810801743705040652939280070828734787940097318397012984362097976884852951413547665563037577905276396184110737006979379073509542246005465119746961145893032284957646786131053051108506884102911604403862042529398058738702125808387177517054861122357623001722500791574202325721098870542405098379117736338999482751564302364700769857882311031703221933589324203001904542478575229873589614945973829037421450030334490301426058086381993608577049646037126484072896308783234274022035106975320555478890091876690930177244002783574877236662944375127562997326282934861585310894009216207094416795366239164817476564483982883228118031157359264949241456295167092880171542566501767881563240910161860354503846558030030914202126699049475724178937519952898009089975345108565665363960513703586125080591345919665887227358591759684623503759849138138963652468859633043842248510314030680482706317248646672290255554595018272198158248302166192516240745865819529052796520236278362893712401421447601292421894503027612275434221015660490826321845283423732357996361905522281352468195674581028143252019619733673228030791987474457094255496848733745872833215588416737563096482739626702136515664839310877615169838906642981991656758786833623676583180657693224712523801059049370898480682293825757880406801632302042038733026315686249861667445437557588060098414172476544774317423994777589834047234063028844863758591198198878178498391015833814375382278762223715026234270514381264008448157027844821207646362255459391965484101842361346317570445290464175178456287434049203676644893482506933069190828836716571381189127905842769571832517841449657066150785297588158235779442403776158494589647050636081363937487165184156555885334229822164748595709420355132611682405470813544008336094948415871049039766105753437567664725609989404244078710457399747725107773719696563683167777092061808619200100240260446830963438060136273986310310101956522024385796065351345805330323276202841577483572184374361792323001280607213531855883254039407913727986861683448053477086788142684715250010669829058102268292869215622273403096370550536514644930447249265815536654623977140693364030503559054395733692539531788552151566674149658496026064682726515532386284129942531684509873215412240841438461202394434153267775524989302172723934104904982362949602393368331401232377645842442546499873436474046916849050990486857685151287857388851433307538421481379073773484179852226618434242947214437078494996093788185945109611805444719199040103361411050616479284569446176341038867191416185727568209076173104866052151236596526204236377201064649956439197716209323548694189976594489248653382426266505307353084832861780017512182030324508836916437094194690018241210097496616230535340618603192979779522733856357336006017642920827668909475104697875677342261101487976225554648437435353454066264567213068048341479842450077887413545476429969977105118059343250452691882133609462283085772739981091987024515423439050067687847337508980455167906339003768016852573146896630794027816080284326494076228034244947135227531754086533598393803221504988918796985359088063867437773424320007007303946784017108843691953499839943148700340554408897148338459194998048308254010958315505369548792903687456064111946484041750297155456824772653617472458403366698415187914883318009946937283281457208566159142139316178257947722071546420288845230263312233809045433338077697503856038875675048946380156867714908620780309135089141786282624360475937000616102246505569590213572752225017073693363600666487200229741765542766680373300849336300015466275272098028263481620239829330159222008977302982812856556105783939652509509677421886472620531642452510449528004016403840301619740967689250153342806208354518533946746710159426793019128061926961016915252601239456045462928725461099785045026704954816703794721008809912579673726481999894246883717271837941352904374328586516804370191109238812940756130868207577065593256698832436821688665015471062186290595859334483701327635568985316040435683523447962224637254396230509712458143494079051148336958923866109834737845509535468802731441876139795184501597915051913505175326619112520939816575147028449653341051765806108125832753650264706672745470236214083780595143248106886504741958662217830913698552467146208044165447841160631215927261894860575159767156507483247473546158870243031098052351063176404142704765447253891829885619960478962094170986585346807131981549084272660543748078527918902598935569722181218559563007781490556548120975296162912872585476742008027938690295068142547784508330043382932163535302191041831587576938674971586648710961333107539572248450504334744044523163947098057187151661064279628249104542400693463967182447987382815503156094275459914667983067188582782252461797205408505759693846527965874724668369458678730386574255442228124424382952696752742517293568171335918721802838358426234375035847916758392945196335788421494144106030697280880558760296454819077515468174998365710374582669151385031623465037741989279596909258869879038356069599223167904545639113949531319095591019653698723638911831319780504963924454160001896871027768293412442747077264997437528954928462394433173423216814226861433615822120417461607742078992542145984595628204663194119233651472913065370277609685175402615646915007341310670449352073570043088476232199500279507619107949448206459014923116157486828906389481343312128870412959662167441316098814624591789071786422030040429383050749761576483481129310006716394649665006092479171624712811869165834739173595318071140730357411904506128710072234076344032216165653067777967808885846627631419661871927808319487330025479948871390076590682391358375719755461555150078914877908598262302637728652091613711974385242616933504518760755939382845618126443391365006710745626812514080760257474940885213087558460829998067142727543539245643281787104195979246874315501240849656788934885504717281874781022317741194141612270015953524670324691706442712968213527128838860111950572262308173223879940213564659102551563555880713166092395661310984368110039061936369560019364696695283708804985306795075121257336171350966015555393619616344514278883910493211318649069059009991806783113002693661838294777094537492957338079381159365516368410721072175353124235284634586414077832491947199141222813618082500371822526471025361190040353325653669005602830485493427697873841518298024402692707740181106587963329637928957004155580905722376407362461753014766140975323565243131457943056981868492614233838400158401004296442572555461155891943175599132292097086418697417914509985758402862187704151885147516009010197208681010498180181264409895767635959188018332179341063568296700586656567717168390055512439611508343957256049861362323079913351160693898144543025233999025831148915046334607127959330144605515334525332817209157545605347402855431438532789880832506050267750516572601588611446358141512663581750187167387907923259239282861225243442091718765444491135973522001470515580290864727091171698095612294150264876749247982229079562262241664619315524446190923661114997999845502390225904377353567826123294950524438681222101200079292808928613203793683739818806576896286067801386380273264251120543213111487409912356007778185124847289139574510212557094565676375732399277526980725706278406894566068532967487412011546059030506543921655643048680429399686302749958883622507706024395353161184013114389276842047405241286962097180755705685316873459776691305974319812909413349617679827108079368811324672974346402909204180822501523720969325485309793615446206277395691868875905988308167348354094794393259325656188336148416624145826974609305747893794627621533950313392446409207280942842081056280110545219609017370119706668969010374409681232732142604776591493191804339257430768386225182160737041439155349026507760742026197392523370805251423295831814832985092961908478458376987633827094362601204065180248358899289753375960008238704233532261206711735716569085824721938796303937324333991005589707138865749841487945122634426215717535728177741264552366940679830953477995694404026441472670153951993756584831476757945958016227915305810826893139642369104020850297195604252366756920266801035853280845767286695379584434600001465647723788485684070434458111532219595465407639811520800522857106544689305709402526584683899607269604015731303421534927659785102332926078440938540980156133702640125915358905907378880735833209072611557105009286862778553271431807400383830901089136426569953691547201279744025115287412683935116436723198428963257418155540093984704176518470047488855152636546571228575526936404909117344101470331446904125405761206876178965296741947215745253360155498119269706215539373652741940162961719201941276255140600784268380066073885962364995625619457913763496491710438617485386935996687031802509231903368066330496184954835345390373595713926594168011128044887388962272316494116369238129130504558201569792172532505432343491279395238510447562724047336872634454854560412442815590192092716396804795481495951013792837783218326893542646422890207284197275624194796864118560069039499563118425085232303109779428090655164170485398246566305757755806499708932708304505729941380239619108784632356228537799600792183487394720802542966139475578116717088210342489663935307696827826926579842260583746706628508075571779319902144968173913800966314871466932660027665183699988247923514222053620489368020089976045007155920713362349074257979957486120338220604413048695091661609332597964356974685116325066419850494733562969273748087164498143216833817966195343754998114639512364413763282899257912576664153347421517606633218351720266446595893697085996278414623953250994306835684986303975696351187849142671654859948877882596827170591610164525294698607793955460702725598219161576894364281981764907392155993940890729297659606489451637913151459577145747398681729428096525350045810905446507377956999525154086016516374227692276178112119789270651773568190939462712576343324423019418554077642444939798439746177579582129615313679128623440542865619738487089168239835930560222586091793790269859402041812131228317618037200486744234180204817795500403413261584316561373250148032087575951914791855205421946120967141603733692549538896138973916284659520274617393035698596877729468989319202225862478513338441455735302634399413226283340933723602224056033010854318991868300114249911957442987955905077094942897946660303620532129734425873216301489801567929328850383504374990741604370792632439988213865643244929460233011550189706930901566211156944453954219231110677619087494947893920604587625868522590374750653684937615144724640332952273837286442915386033113282330846732777673907347417134636043143659206575079806025364262215569191421040094623818852469047797459961444814742883182205045452809289520786214778970280935513932155998321092113514257559044706678378497964653857626289281816959849399489976435035813031445888916996154679745028188820408551520778413612501178212081186109459674011499255745114893570961811669759822092140051375036757649423106636117327757566170445715065174370458627574672018586817257461957054821908663635533027920830494428453802482181528531085983914746621285359775667498140371786437899835475599345379655284052263207326278637987413892026525067204256590694765930163670437969757739781584736822224447492458733592774588603291856345928359839030294325068106320680357492078606153816011539003209432283896286009721779208939458481846597633979087735833831418856054099775556545545131814303389529407560883344504733944741797705109727360643044446094039403431446340109754829280014856222903932818176015674678015046656606505296881806043831426247740174920964174321415964334232739858156662582785069544444480361491284415793553088562949888663742797558198346712653353037655535890220646255989373715582949894200842455545329961606589716869645079184606267016772355856188888088571641208194549132248282752598342814689586406811636457781395910036934095482098234490190681032561485477278718039378847531599505915583240286368784245255374090939605239863239166844276109757385586617721428028595013817760464109183733913128432183173629579451789281619236038572928433714509233733835951024786162668594409502308901824663152705057223117467254233208656237893375748806560900492283779288945963063901567826733321459530255682080475589346970166812040872456744980215506586892898018583789425147724905170115446001897878768200967823341823901141007872730156816709207195568956015184904960619774549607160640772540546257167549197407239143541171384355146387352796950176823492338760603916349792387139836363744268183203031441926844818862745163827356104362708249470056577247455194249715842693298506962845644319661511290835486443974286039727367048165195975164364986393773642576222951506631512424274942155460513136483391455488086967847536041780403192645154215803725599715690187269610235575833432972495149986791983286910161006653860469976142219100171283155435773190304324903742819940553896900008962207256364985961811125929183104008154518792767935582176176520807834540794121810141722974392553447632446356959977954907177818335781442149086931431038794242715949635783007531043898298961958083610490610522139424748770960027420222768742142883154687500803023306345074053987202912454733252957436482593705901794316124908842359341316447562332912454624244203209155544269441051947835350924984922202728442336775767626705700087178553755137560457418418041818071651906204970621875665721778541799131020695750487051726077113797922639939519977810279063321759272249102944622475053617811731623912021532646532635806014910104251644916604357536454086238802852469864164169790182303667917228888449088830661055956869324078829566036625541376366577813533203781727111407941458911823940905384747302434393784889804623708549443440146574792683603716733207871863810845233591144595107842611331303924523256322736842335708008629066482105584126621998323580106713751013656245064767946481136044220676302045387711406600931163545696641262337484538211932094613207066741449554135973083179680321812940088816325483817052418792393866681796054597194735262140535175235087956203761792935509041437989181115961354213996173091228916525664817841311556458284082898447196928367325925227143888582376074102010708385377005855362864847655336105069505288251093014417807486741249691438434113345079716740647306657182283591797192597270648477992975774776738156350346747198399830666169613969361272191366059000780616910157817571718803105490794291418095931838595797282301222004990442978711962788289921058408887555575040791027948137697505166414377834168177358498175939644752089669588319576694192359697816352829232352714050310714884860501386273971743968652561424637904279780822179502730383172332937635346222025972413723866780045865191258870361098897513980248982104524785633898991751099477794664331184555522983214862275860698459513534787150161453485436965525447464741828126157061763288849722968505028790709485030026090770320988932121575253595276851876939120986075922601528753902417679436763257704947718196533830177567979735607904670137959511252085575544537270942820249408356829095427017237382941912007276911991350620054282922623835354704344511789476296612137697227307729875062344411825555444216455944555788530018488882162162430858619983892032860128448148103084086824261671617719636954632177296765200722696584895291321164167257898293062139915421140661021257253037763412304465351848832307434407442777080854544694395119226940781413011682318515775417531774285980454023762555887399595731005389322025068949383876363464070049348076464194746051560920533536875129994046758086968638532731960757156399822053658053535612346151272467821116135846631949370921886199259368371319119152802816363458031564026659587793969935220389441907575072419075329246839483048431793424589661070500279306537871860532879383663625804479421504235345462861229907185869090829610401139238774588572207249107270599148282682534464516727145634841397155020872539750844041082650649757481035952155168476066491627499258598535286440737930141290135340453831132243361123121142147367929397361175214237029026513326731484502738772177411344721556804972046325292937934624871891417891249785291227205466186687247199841367770686339461286525724942223813781018568998338139063761492993413235967180200375167276283911177288198855228710357187332816009339759081968961545983240533991997965684747433362571108241056886230519912796841439811192208463333285717626070274805741151523913285477898302592494832416604708769411600092098730744564660256243875840641625131142529258814857671636105932715035287741174750051871921009342927080873262368259391527558978858276869470708580599278989034682874121736243931323772660111016816094110209728358943952765901959227806846652174690225202966485542698691228787113830941607282019862385504401911744533580727020069464108790095253309398256017697628811748097367217672216855255111512416480997826946309050963445839993774486548234552001442550041203587154783647198956728107350130394883875752706963847768319365253072946083218800847466253297324884363035550369015907268381102788876240890189040758914371056274317968682364100229496167547920340863811045015774784710628223640984107469950373182837394580161987661492950476111245385767028258151948486344257674696214190869408033953899889783499449391835862896188903213370904933414811624380363950767842293056796306591970995884647839170896378996211751804699349267277536355711884134563191641433029742178995290321033932560078119063082799503720523693691150666135059064684904296445072287674675282831374711330360965988472468871527139967420823424125329862848208172886247203602859418497164671096498328489820453103667958227835812633853029093518056137906930578218766088540914113986561856464261755797146589714759067826190661315996936154093952306905645919238027106102676599614791074653965200081523013288560466534248152565739754911201646661104894016277236983327622612150785525896883268165037609434015424294775459026383306287894100159391193170776770709992593610746914328833998015749548326279668200589830313510724347604204496248547222644269177434469222954983723741730421129766899899676428780863601032189663311969814958667474639846497923983707814091009104053613782750717737837447166056508778476525445783862527227479022582275462710429968097844133071073573090762029769474872833180603861466085378463547712123751877548774397990683611393638926653628916273929557184651153025420368402748114174950165701089877696567288396498901330255019611591203339591642690185186592717606611256025456171432083249852752652165558448783173426101846023706574117384201503606457419376310032078736483350536294532797202690662957931694590165166277190706161588019523597645590815650050277024005954997268128776277642845469091791055195453270220024226847840882339581894126338936040622918814974049098638028765663188947639318914223611182272056822021094350263269898241779478386314439247334028769457070242999692127191976056080066413713160002458026730760648922220436095105019180876169567466231796817574686534225592915034445637179600950333383538537715892106990319351095056129993083316994682706792507208543676680741759252033293156004633603322982634820840301592863608027608115773472805570912103402125938838115945879465053633754779870104737942527066556718631390029762375806887408769336374542531930534970077590455976668301500745876128253190432716294685589654544082409849612978343737819536242787167022437830441148720367923329285973051866459981479553138021864918678194345864534549325561377781917922944850678169541160100410460963888808832019900406727017341057374500045449929712807377795815724595380700793046829253289330513089177300966272956563727508616928242559351255906290103439575980713742893249618778199968316089511139373818029154324708408865747074416782516274744765626700931773557967710100788621075044376510430628487803829791443374084987134564513009444851865240659908737224539933745004624102650486769162898341867335091088140264557344755052152188957583476942820666311175733758759435701365737792761304061123880810589460660389770360675992787420372041897076573172211124427078479456441015576577115873036518444483918422729530082229333008390900465558365958636987460888172526660901787926185587259577105921895270996619779526990519216079329587362034275414717942318480098959357716112118564838739400664101691703653861174753639942563831625700585839835450473454700450081569218560144415590133267146910920688190089970004634154484114066115126054778600820810415129016727736497968160799894320981165530574057101790294877195599432611868352762743998894581766386990169958854701172027815901518127177360613295829945225405542778526207485381557851792321025494510307752320928616642279652807869763072601102758644850169278440777103424820232639635656443799469252290094926747308085059838055662203244421495267326760066656846391623112612417331813030589898169782121085350437577882428663684598713132359920047787819386942430961799286945502535841484769864544440871785309234554279223173222198353229907380095142488465041242086352184887001276444353041469241982843049455390658467478822129913891715489884713536409597626247241525302581464029086652504580306033442825626915270917042398578484653041984770800747352853745905267941347584685641589183910719186482894231108449491114801621856908494883655221444888217853127744831113449545409742459160685849949004821590493468382246106379732014687631858130558807599522412276024535073715319125859329820734234360483903927965733650727631163113755690833703675583688325896576428881026110080738544046242047671109501129801953744240721020872565371713260649937468818435818593176473213807882876860281219809097243959193253027141584018223479660287733099084858951257777886869230062345953504045794838445049275256629986492632987011422697437900561941099876384228284527048598072401835890438598084533519614637470367829611567636096286438268696848642390764933957155885769517865696801859439252690804575203317577193717209426790222207782433293200895678029633642194145768881758642162414576641466973935990755417837666629278606689170515724011734842286894566173951127433274464776030984076218512457714187014793836542833179646353954345480740635974208232974285038876088735600611173825636489087302021090766503362751332668903815371727438226624316443045319383017053030711439948537712885922373413257683190512359893263935979042838295658574515826602807228957575234775858299781459423349190321287783945503979112533557957511670557268981989084504734426163527085003888858159153036460182973513651640628535726061453370485344106843933935464206508878149132171720555686446705894133658018882979089031311036860708061495266753303164669905819571038175833217865425700788802618413654880811540598705187702609647425762858393414956605660885881004453669155824006501878740755319156023920799856888125523871671818712231048521275427469211571621403403090856319263917025652747798053275758324370722222565828652488305960254800920149661846148672034347679704700734399603926259303485232348935951595870805978774872761213345075435257664514287736911891261278561601433004404989470125069394315885631955704372056209414013450423238977355190679974322512999084271068229361272902488994290100638926453312841556725501256959687572007482264553421483706699447931140506827803231167414682246580218743485869599070536021352854182096301438208945316416874333007858036876533273727741024231966592943154518538739150217438543137964772591340277898998756924409368610006716299288996191421004984133509735046591636775378312036222866007950014762934139505230233305169601781478990361087503662456127420045395763036449056763504027850376481753373097599102094620467484408345073146346489134636582022337969592628898686761522232747775298923098621566322811799000622432337102633625673772102916490218295380445121540071119253180673574468370360476400419267358209663043275647844853096006321141373055377636596563725883520648716826657310713665954694816270516645994642217675814530597982018351411325776568564352170938719514602692593972423350175370660992965231718195878043339833357119865532834415517279932249542709077879869334119387178270546371290402259229398822364282150316728641580892208338714662476018077552686201947921694676994775040866814567604738981028741498072613846896870026614610618000600682973595483186615347856254185768952168073681636701857609819905769936797931034298898840213168239739566451323815545106816630589630401757751847816331829389290707580450233839460439461715399559397628363569663078518419683771708899310450427985634509440265875263648539768233578751093510634703370805916121232442128278483473860084781108259114071332413432243195471388515368241262115358172266904658579570521140849018758360656563225321029995027808627311472363267768029473722717818312825469375366891116628494065822867561541544164382765991771919702069253294021309424331285262708681211530844625667416985860405017683991850739890457095596766710115103896791588702002371054262734192925988849480434031415339360593075875912900467242317481108241635386394528784702325463061354984141887112708835949474109327697744123180122318933946792703983304262041560400456533740221340856943616241837195503816152208849055399363156247524644868173983166486096991207682150394558356435794594051808142931308258175933166856316625192972579513523783068141533803525662463031092663888248491568480778446699683479246263790542105177603948750370042498641850290808577336977393175929982782805781562933605455137816705747368915660214760285940213639737426687897483144679970168330114652415299687041943328646316579984608460897100954065298346504808655478429328982351835373044367845955301117763258078710434283279485363245399721295852600895677501579925137840243613146541449297910979176730948070585343337081016846232905346092642809845367645032571844118197518225970997562669656539017304785364763328469230933112852230042572286702444752903350736303418526473114030644974383993971858779904847095266208712433297482844160385835495021696189643428652970691412670083290178684485340662936858085240837340599123134287894463166948645386074673757888171173640680504923761266387717787764263071846343850310924656820791156906814118861274993388535317070671599279161718096370554378396584577889775650238706872814121369387877879563190016314114114795511182363036316476245084237532049326352934630881268952090025035771319211338369582699901122207086171771101894461251591342760207238723474512430454650521411181971298915676710312171122460448637440366148427556392501578165719495482552127392399777709570353975243491726955624131299972147642223768287646474209219412148010393342961181955958135539430584661887968287727507148894492762032188596114524050704822126026550220464841213466481098113421582274560121599648181784472739286097003562221073742034143905781842291124453277908457210780927963377759522607049533834023744037289525764892579311531645044823154256720410134510162233571447410786667831648607494962983978938145363580648173270717737561623333013374112110564322039185250483314249782206319256913559867062420482075926389669888465598515378125106414719319520218637101053050956759270265080266804079108155876255465586405076704093147471927123986396855232326631723133400761085403818679609135135511138341709703288593084381415876009087605420846595429071171258110970185985915533970936416807878038595503532752935534996852385474562621324139625134461702681645229480727136692959712140520427036195709772982865256635263645232358709363377946123611150098636689762512189057048956995534027594103495057277050454096538621140619107727855403777528500169722228230164335342499487640624962769394721451986482229920262983597823803555033568261270020840475233895604852162404835844367172635474675259574369412776204343953268987127375253285305943765994134687257565265504321913080793293482287938103574168246829112306001279868199215869062001345195147597612370289917371891564344452864666262419222850579983262068695414450081163553430142008655820974534122687505018565226853183840888773437442514476152574776926062223756854842546388485200933163626189893333449810025326635544095663128142812597983834233618732826489806508693515408994070530795339589624067949247264742463492987635753912684429748295408114420451986798381836873292023837348176376486452607202253418276321033257575268376423916565629024394735465495356528615054240122980496151585125337295315692281304284606261308085832891162879878755630991509385548921511091799828515531625675082610045042748126911339353386579272663380511417634456890010374901510477204778745351087876772696064426928704952701359935973180569574180327315058388335565883984531529406590220222291608397367723666869186881201744670317555245914268357778858192257435544371963037308209063659172205035789476534566501721499731216683357139220738545476537627372150803721739999689093472333431794737520878239014897659701599677967418883836315199552005657786424018695655640005864964441131661963805948543412726457829509498924438073041747483229756020302944952604340873232108807423300558078199324882731081971013834500612847546047434920942517371509998933040233352896209035585867953999676616261545483269620261164431670650915254483489559933001611680490148731206814922992391340263331806470838284878995815661153302793240604033090783129499951312360666073121646502599101663989613414064102068137393706387275954641477306752573256144073835308320139718497454978077826853772449900726890490711205628409398812351091233494773502724283570150896854313449686133430237911063337974422696688806514324656946346574420057269864338617989510935854567846927564116861205645998563436436796786823243937997915499761226081577793672137947106006097044050225789665443749406179491480655590040731650298780448465893995458201847187710338797846966034537619443954572864543247987464829536994713043055467486993019133766406855244705541373640307245612930388675868157503637473015132718194465433810788045650621256933965256222616014929785433728728636005873796949045034522360015994983171721219226352477117873815341196875524941089342218706852774373963454413660439927720091678028859144736868404053395544456010820312812616915698140758168253934598587303685128884281298403999600552109929869206931766094998310136785159597368371368517267379137078089413688107452213763351531219769815209696448487899313149954379062194204102160212886498890785226483738737343292370913854402230463557202714270500232057489338441071094203033307061410008483167492198018523591947360676749594764039737325116824487400858862811357852877869752239841341614559321779368432870178242415619674656902530758346025737075506275113507220836763719172730250340340753267125629217028642209439874860140625619179580593760317048765248001222835661417793471703331229641530991613710532457921838322935900917218712029104159624283284358544155624248852488312097316092231237651583968131099464698708488772879891670539637383627848122427639675175800728477083571454790650970139694158103484908047525558382030528943097743224451063554004948485295292455339216376318671135440162931463643337633958017823030841895988912788726597057192593467613703764392491065303154807303963056222295450018914057464279977858626079186075789893985302591071353283650045115041325169537528510906237412345078907631041797730974865429914590655610601977501118191418949380234365445734368218877116673836654123932006556469294536975936707771711254287519822778468483263346316413981413414255886129293278539015006353702064018281289071920786520848207262439965990420906096532296008242753685463721989000435121049513730417071001660470347247811155943987183615086098191207854858259852278870321973843895851401495343532296455878424599969219662943540662905350049472156918417386412173988273309667161598803416859660421116759164328594376350378945458710455809938957667179898415127792196514219563856174308194110587468981540663105352562939404597366537987672718842654818532009374005409462517706157791125051461000221280388337469087252876946057113031343976507282150047386763574960847721352016156063951406550406296118727795773123680113507465802416108046239532881550117884043182423154177988937368339622030193680891522503958410028217689113172172569876513933403118735256916357565331693536731454465227183382235758118451673751902238412407977614855576157883551517218308600170840273373060352335640248401449123478657447898578936189938045237778685465302263472500172985998603080548573673714397321324780323142533016246444103722700329013993962282679209599461301400377588452621690582436262628532302751960631390783472985172355692319601446662537739369930770034482084488148527556123743712901804831592043409010105702851330251524639857824799361872144018980850367673005128335567383966239611292311587001392356467981219378373487171868636894143063405228464960151925254214271614354055869825514892181364335948649335898774122919824473148856858660955057961633842915085609322484008138137326698124603964053968431849007463952191417765603831093436463294918710550805709770113112405552173901088163371067811816427498725572291168669132374315987513036002214312845169164760039474429924792269702955294859959285031190874146090430565676417639530372458485975557236838457424176187118604663533808712719935890728789201721001531913868130755155802680468911499526332112232565312604614400474124737889802418116042001320641919056640307481718150950892669785170396456059894271198278660454484170134059216038481452897777210498324414888006181703503948508645982413232073747645296196471363021568509312787494950594538632519294282831235643231665999227115233980935949580912910783116955376519305060913726969943340439294290057120184061222634654530811661252446336737054411456251870435952945175099809045461310627426241615493050071210103087260236853407869757464222415189906441595496671921765925398619936521635470916568041944089862588109429044486521659576124744055116535192104862586523100269224328389649502398573493121048215469909702587490883681175496975073040971249968953250768263114252487936298113012723970052035645732171896285550031285163268642187298135776384163650222549314419732108570758316065427911584088570068644670365779430281416434476314742033759099338587132980805520145908052530046870969364368827618913317446557007640999415263046438302918018284093832373316705881859718248659940188591697352537615981660936599097569182905943310125941668580174876939128859993374015731930681828679067699090470882952893916699232237454005446442520143403521504473972748312859736715572790803212993512973049630091473983162666061064449011328195479006678021383824482642269727161448655034674348766038300072338573487948285254695740826181640366091958344559365545030480843677809375621797245573665371279806172055644167669128722590198684030690536082711712434252211485634487776217633574870423756182226778682377782472408538402846413527377005984121382632068495114914419169962328830140787764488105808391902949666047669107127930670620207658681494034889831532685362735970464474810309966529698174361258648718517621863280028674182958053061692784458947251472142977219146842372540700564304986349782191716224274337924604054053354963848286618319513563943820057269226025272474359953646540003274948228317076176033088288100836539118182779801887168131054727273520840286119365086779222713358356791275921515667397955503755303068268388730831176896197926842561162787426962589749952275449617955167102926630706792108398793942166698898046526668456724194428615746543350889755707773475433509436084549991994506890220633539928995338597036525985515482456332601524115321393193865368938134712402941232520469065172299683318380464099062185463146903723415999927778770567530487026746239333943105824332084522580278203685046380567424008058940266490383906513784533687237152517305421153255776657307552762873574319735636253763564297181136072019012345055989623950525664218344532736665342999082522665918208661623634543197449395484494151495911259283971387926083853898048181463724004759604451558028046288068747318305986187569004255656394894232199770802782941655337119853867416245885055456906810096595979843997586351330204293417000664482025890202548761571718176924148631397405773791183094623222697790145884468785401556415316323888551070156317605959316784795446387389184768961437687167134800059893160922430216940074187633684363400499878820287610418983797068291598757705379520924281067422050032275144836908010398471359090326607383500862952935929709249731378534347374833133180017476943556597295043721657924261817527545355489256234113656721600538309517869229299128877908464415082453870632180817404984033308808168459046384723907686819783196840751034319369374232915935686420711764042774983293669975412724451601827303363055792431182238882955559798373892826533356784015704536702095470514876430002986795227689837372471360933151158919614157937297979156952814456571337814025050939452349293491581746307194706286100088726717202117036954446988223001830764403928564760676557548112450639585387034682575883411963111207002292353582041574753335748026727594513131275726217968340581464298543620523066507567895302034550604177624281266022122234726423878622800605428315656583986069453828442221369381819517498087373443084919513887975512876590837149670935834690366694331146929176206734739262955875205266512562207665168362624933204220719471776532765570677659778543842481929174222601828392265015308840431805795388292125732873949560412321058828348813529804847681304320395405771822018552056061375217155681544609977785348296858749432064238382831658141298481576601431664838539270277160214825520817218531609662709198540640048868194610522128165230673497812698639572064788604175252975016236906816190688400564157853860612989181074137409563397239689487690019142209431960606622235719296376993087439580622905521772072622957824897932217952110624867448552978821363861245294320181600083699667653061861966426514379892177270673945670406025527963676956805596686391214524840535715171873468617545686696964095260407722787037027681479299937806062492233416085644333773687759430776978995560620273264373711678076844027017100256407692111441674615423863391727108773656168880629669139591201944336825380712762711776984796908624334669175503498714438144243921973394652511538771936707950948580271547582205224734132345935687593730715558705808075163972489413191053372424199493539658953690764264658302654012683836741545675635176685499723597442765573197494984497948728307163079598671510028879520812634689642766139810587709506207029350159611889361907762260492471772678856311984086947037910032384211696544700899297203987316423466348305954112291000508940154367047411765166856194036066154435625048430717303047788934428609989217347426351831913422370684538757983498115918544295169202969652070838658022930423881639591845409730671416623024181954865182775319482494313453191015952609728781281176913103741837268221419587312039633816875058775694764642529843003555284816235546230282909405321859519110593270661023026605440196394294882505246922263065963560966664354255620672618017327824157364350785675823376921381496606532436655998830018139393571522370325077334153036894333896405250265112050117570201719654004981769961194444024554553954088795978153405657894423511904942486868684276265435260934833557787884064805661858018141953846257134103376620371963178240554573629234100718085399219100391783584155257469251904218260930059930607282482771316305946483477924586747203951360000598554149572792731542838909969684722618860394268958582727298164570630903275667449723878560248120117622546480728823649794280559151265682976937905379385165892758930113585295408804340052864911858568848614243376613010875993971782194361433446563637566375484847066488257353777067776763634921552450378405545453625921696686661530438771623421622804811273745115937330420924681444972909623133932227137514976417855098333759448813440509549848542734562396411691189905869990105392274642197952903435181683281243699756841764965380623362585867330832830318736912497200342639418792418376540041074458802259927571242685967534020847985505991520571556634684349461352569739930634994114531808406194997099181926624968380155793145976176734576298527248332810953709520991623009459692887283214527423778017455345503971909521251072331115305930269793553623604865785136828074142928815942612038123124572261737523063179999599771394183717748563912347610135599342798763166012161892776725224885818786116961717796475040218339261323755874796065098323169880304683300500732693921457366867055062600270786145643333105967738634645770120343660134261517023346418851818055066549482834536824106767356286165356502538071346912133136693220800236702908961067271057334495535884277784432841110527338290888955090694142471777568363927817268611016441614792643141396864033778360780459602527913555297186906243430319825557782723322660700976765723714939032788208126074545873137477002184920396051981414020755545350925598065050903739162285208057645272784993744187679633591455436137389223098920758389904622096724006721591570262959557611760108084764540923362534975575742684376789424051593957520078260781539455935177290689169370656965707129918860361513718439919511123830052206813831423265356799664582124369470333180257796727489637486802207436816876593788742898657337495495017622101447731752944817948305864560367202650861087066804116908893919303030751460516604775432851850347269518768046880081261290427824843597273853884983523059516717987446648476731430043509906382565739153377092348035473214646757656757523387929359552104252456062922901016042345551415874453134165375168402609470868714321475401164636113696412829606506180216779965218868002841894410857257897807002047433563958505352025584974432719696999399303927037335118179989730183678803978839352989253850354910798990075903961722684589572227691066200674288386583378893584071253274398929262604188055855601960582207210853688021381123850005124752721512969100810671076174858909273649919986068767000648113423409920750364520350154745548987850795934088918265566949940241312544808191523141513165149283461953005740487637906549896431654848764949884966477699392299293087309748198832787526279077800247049484462213889673018293576049726198093218932495996195712834826496033784076934487120581884450318999909914748209572740507038138614412922764981573568872208928336179055505685444902587347993635542750611799396199634221090092539402379394962092535733777614751557811875040978320894335573729419606710009221187480595514497711449856117990730778961612530502321834980079964633039548623468846018666755218709875932691261323822788276727867397208414541467490228431366752451704863614231822923492257125031162350610963307556271003023903978332453492349708038564765175045966484784851342594237633597235736478276311287700150449625728041703347120455928319812295003834201828364795674824617683452319538431108045176206958619214060120951201773515429198737761700493232931812115608465146884549610866829365109111236181822008895396058124565909682486771609242850047949758329409174022945482500233613394249542242147813524855342492652642528695354135305474885296958335059100208545839015099057209554517460206403623511005689711037413244498047236231491581978008547733719379680481937805676010382983832403846328563189291730792497935787359767001099499517227324777489462517882512300880336837542313156678910616058478501879823876195789661454460603698007563689101888744298754484305189873936334487599661961070109269440450880476180525729927175002989713855610081459983057216766858961923837088739493411891728033628330776772471130266606488205943282463923599877899322215325728404722398654203193439600033559146069582655902607090524315289812958010890766404083376348635934033348691930637107318505394185752197508979319254569331627693817255604558021108788612557858485515899320929376509760399385998872113568656862508902821517914361042961241145158893780999818401978527250670624186591851135914465020469487487674292136653463288610832294488273959566404076077973168017010224008972971059084128791598431861352928044121571685338397663343762074137640929576284541203626793967812472759343070809488521939228714888107472230229608123380354224130927636079862625435891212176407949154137216106432896516835845623429488086402500582395802196421757956581633135620708791130477253855022882606206623973506957321632738468831598209590569658322792278771240295022901917483638219070511574020053943602881624548373393733472522128915912535125338201757923712390936212419493227626564249577390709351024311489239643671244695064600393730079226277929195608607422132143390119330202324956923884737658211422293856737227984260603439303835810721157520527165730101574463559764206657651787611761623337770169325766264730001394008924571390734024528493079461494105216785820546057273134678344366104424033989491044472574212765171008994103396029311853476962580677386752706175283513272226925419980824674247589959583310209036006895749782189295297707368763472848960659498891498208912496069773507671334551068177828552213523142048013695013308138095542621404585248759000343312971949297630247203808940158943318096283510559537545536399259531518768223479346823879875016369553979555202270674250779544692288757249593429549736136398022606942164963718989250689589899966049091505731999493486481764042942664021590165579617121440076815000540197228480782447524350978212563554014821756061279701617177214292054988456990303419414655233242040396166262065874131195742754131710520804402063935796195315066191517993197119431635696126679124078253864900270627670866625331246997806826168808944519820497909496400435178745796927843923622733394854300847732434264677576240977581248045731351190155897059840672399396537712399861482070166452462103154479177789651053938923939982683243328974290809456508576771147292030606730665456743901427248374576932531559030372311780295902136751701841535756983583433099955883722805740815159073938261159412689422732799107870555678385183263166731779004740342012491251357958395922640062590936775625729879720127084897502112182156737743830335069347582266624037079177565252975676246285511281657355992492349299987870217369399316362246116271586484446028826828891911054381305433751170811166976000584558684800113628017890952334265236732824184019446144715225391694965042440604378448675411176163077648297452137469773620080824293217749013071393322165428203972990783221150517523107981825905064829828699079006559861176949022809859676409808937949392560121616947361121820521496825253212122464753463419603808698733719162534862795210551985651134216503181872682466638871661300499012577701991939855353781723298827824140484507133891894104418904587148231027723965308521160345796999870089855075698861880735177276040924750711834231499461161462263065163517618227926917349362611591650706982440672302986914503144881697742135583502959952605097137704424665398607659322696919080074587232918774316413031884185192351958399723020140400758403228948218303573168205601270746842352027944224732506445201705588616200279472886179643405354717676648869750164302627803208115530489270842481615272520192387022587034846058385493731863627569830636586091313804556557039698476077904580206142637406728441806345519746681270368793245387967524978949570317572732630508457458777914137058686286106700383734075864312524426336441108697259172505207454767203238086400380543900848730023607508214532437605468161241999684763677443678072036571345768397296596608169246444675087442996746139948743475363927261772805665006132649823172134261895537369860685342021806318692041255140155736272639952803179620115505175743059031606929515878524226804806527055181030242020369496133139473050537951136553480234988694018845882694880916287984361703833889391827479153805892915467471391979319137967574922733235071724391320224690334630256913118881092272127988266310117524315453516475909086955123548660993379665972427320369017137351215077448619790462981094709134357761717706259278548720594475393773794433537220170835529978595143142144844434763004315349729856081104455332999208185602100175147994967828779533447418205070272801909072080530071865522683334299670803196992477168913417912308453315395577242105083289382818423912954918487558729373272880682405237923229008798231761098218268836333151752567487617839164445958912614793715809126720814833519907686912319018661546974168142206019893707624059592473712383952421068163108830842453904318619193461252281353009517676738968121226622608282148427673352875098738225707819591345082269182773591956036280742854438221711469574738814834996559223831827305377441877255574651380597069480918739723448757656009632447528817587153908818271216580405812095244292088612264405271236040331503695522494712176550766493457865969014521745754308036741520062025043246463122882833762240346314851750190323822680155608927994878873911523642747303050175295008611197476027160532737643718252157048594955729990936479652571411825462297297041476582307952733101893662120986175301206536958037607731359774028803767872892493960606735238196205666581026613056095912319213150239715204056367644210931999439061979925052045471417334405889981997003404410173286259068549465723560825407746789270827322003632225937182875525999103259402126375318726916324088722196392026687013992521640629220022024824329979068538028235179326545659984010988260219305037872125998696114204363653040033503390061938496275844653401450301352195584364170228383038465345136908452747146106751319140656062417742776210253705642292959636457023094447194561960453798959992860714510044297055248062859252300407671106942629846779309799201297120677340438277615575953827147324815724969398950439778439940707211369492808156723427160766846104237637289662129721108615729618682686888018108284855360664976019883178991833989763760954890151438260855988528144618909788398842177110081304870667775282625154208634564668852973928048208191949602446300646451489573836144319930468872281790080202992530003799416172792034493803939285011617947711241706883227504278750049236312724370438214216762172477682331994150322353561118874064994409939795443967051790378850877427602439136892366153538441892088360041902153104980019685058336398587356321851771868554853841165874639380833317392567952453721617064278377256305274589372601855980775832519368936623610271381250063679218637046343904301056215278253531157344329206888573046320804341743465232706255394997051915687498624113078659766447112909552842299456936865737602771778960068691109119419386944090266483252729827765457323884912514589529575800334007771033275937206297889144787147931997768698642784913603446147713508604525189140059206918439256752650497399211538021012711631078852492843747938549753815156073230253572769258297973318979420512020949223378938562509390212346814316769064877966435930539788048798262079751139071158952880636816125787909657389838267119388869281705666137065148540139835949939304031361779944413123559025414081898992989698661615605467469875807259346518847685151351005010997384131191171936577167483318122401537139672740110250154445560008158014453671269702454352869241655548052853527745155145808436433894708168442782686813451264879705933902870724051123697983479072176579334620518500091598491242088817400122654015890412386629098780232991717723691561640378796310778458631575697919139030945181172204591449092229572064062721043172183124357380541868857624386031604419568777999629892549402949721196990879717522957424899846871041625179439596651103813627371362450513240334858483149883046281801509802961790525933326718535945249412141577891900182754870473567176899530192635946861565157362108554798299426176407277603744778341386613293711742091204681060291121549020067077631475972058351716619477918585228294511823775758545502311198512103287791159321432932011810448770266063269681788023335610790667043802059132920375939770840756783096847932985858953250758668449045890663727902347230067759656435318090614277614890293015526150891230368485419536635252398138857822387688723442412584533250588897494187859041721943479789631315874253793191800169782444172074252763304366026246349847753368284633103411175687332707376173035067081582377704202722375239582241575438377689278868392945475656087436904328436677516030993617564336626280190823869446314939825312462475619079917443112963762269067190711109130030799257286442916404849756220225391856558798457834072790202208249404393566331433040350892078319504510851432983879636415169750559416177813471061320911028923853398386399608811439585107460103859621027137331231615383846200962871960343846183135489343849425438993300426949017101498086709315427191420091955155175129376800077104440594023549422696295627730405035626921527403453006528375220491424006224438774385080867078489836470305505134089637500291743782393863205650804359767740036005781591390885081715363363334210839520193240942419736163059922880517952942244381068638776031026097432003600772369860364416760172667795530424567732315161986022964425140358051837904288417276034937231458609705085327453984578902149800960713239875598544446995997348805382559361412246523061679236398489226957115536706849831149083547694937723886490258432882129045313751476155961560177471389451381533921770098249994965544358924009179723653328853051451088950624119695867791676782932163206880801631719371776115821203002178864439473535745433056897132887017201732596041939520556001862363608441775220188449596362897515608731587447330173707944214097983500935217954129367018999310223088841678636640031682130657800132467063575879400630403620761363130658250831676492219743487276852327882991976630876316531651108370152340887410840544808591718458602938872693173434752682289572452127878037410558486935507353325301429164189670328565034137043082297867985448247938717317033116308384429465699432014808653176023447543651419563092665725457059462009834037205738173805209727575833242627096551008418484243051411824109721406045932329995756498114952852701665597023741318837332452796600333713014195390204273060004919563573569018767471575565812176791979977116067880696246746770144528639893657830505078608736994512951596831614579692091883708273496531584243406139434081238545236818673069946415932781260675415205019943263933582263362822585775704532237450260788873511520265771158730288083624613111093047518847257002284578594449834034889339746347205210654473498838991766125728912401083180693006357954012252818356183116737294163102027856588403386220926059933409429604070377383556119329962750788970063278431098962051939387335738744043165190431614426060697162019155555826081737232217866552715450443780246689877581462031909889022520817083096774069899907466423078203040849739862902788126618407781474736560844728554048562569564544679611278806395443685824083609481774943218431873104386658492816397448077263355819191822324036706353409993841790936552621556109901791270742315861833055619151238140567801131022833483080081073788169574543380351027579320913402208157998208190239898584165461139019117268003484584887430513243902453109456997256515247670117563896870793981179486052810007692311164835303802406989587296352736774832759217640723541274808384789801746843454017926595890631959104305786779540422014169885627465568963254711163568466545547465891560198592571698528808393241720557911831599722658554321429026424846365740278201981871758715449608296671958202156684214295023605559465300837680376223746045413086302802577721950042639578318251515429461192290890642960725440650196917384218457563321905908251624203072236430608617097719946827685694618711571802816344322638607926332632487139126268106090570770597955563769834791258445822912727347496469279359673479353088130418974497854032982285347002470515914315894164414538147932656014410945940119938577691707455020282173485438830435981739022760087679502976914572689320658178992354941313939431297735198010493771873745122770064939454661002399244016198654547071498916237445500815753119364054808711247642479676964982801957029354962123316788461714396348282044638001180143329595556970330362333317892974359478848487280563964096493885374423267454058183920894129688404899931789203989030421579546300513396075470708406460900379689985909856845001737018518094662135644660664533358539341253750334054634150402248678934014931851819520827440237998125853144479953568052111871766575964881371261225258163103845932112757398436528270147540026450002865860792830253971903559198128846797241942874331816704443340785459253618856758187104854926410324545424104038224648061910871045286397341224187551839744288208045657247402877847832877716781126861759979351304984369479809326360021831596978600021581141989798898748020858715298717394967695279204965975888844803619839635494151162322231168140908707520323620653742999270530915805596694159471364167048641221068133194178396723376031701913802936018301122391477606622840571925184502442616425469289115693111751236419850742253599589081190606709669636713938604888619670057194482217996325498902855537999159330660029325725416818374201030728957288920886202582006103738128658294892978339548087286300990883785617500749097390538187232155578281975069220787118260104849958281863135002453020253376867261744453453195598243742900217493686501371584583728899386882286770935875370852294369256444922144888053251311940871806207800951637849573229538242366040759617118503959544046001688263665522245817390916911569771204548319228414741393013246710446479030198546541507504900803731074475111481646922037017748091884096712620203044598152825835765286427244964458309827188359131137309531320519220087467288477866727519221925733258282679401245979188092096475955206909802987572733024253940848099659933791014439316643900663929762297849753771199665443576858020521846781949193061290102659377403744648770111736330106968702002656655403034078666648811134649140122397973136291665973871619172987621817832462531342338394992278645163910275114373421899108619824906182969202764891679852835340324951557063307175066077552178106464191506863418179152983256725989913061986704801314281363301161162388727143809748240925948754118628435268632287445045981109391390077458565530687274722336605802707343418091937409254968421885654998753573217780627295835792233362548183522334366168900387926128701278856694203793796293565817869090181252477405615115605923558684961962512876888230529104583834371163501837193182935194493390797020769693726199834212227171579983669605591501307917532075711599872224893067634826067341362448761373796461656578420085455209214030334028712618878417637692704641153070765108803229860771969071064460369198878038113442729692742775888056444928165977962846612512443255188469340254063089554999483831752717858442096975336585130424276060119240601971470165265981809120127252212585662716188655968288811076070088569271310206857866899481821332347281805090523342471796890653633623919135346947474192732687290032155496893072747307986483193748984406468838557615386549280609747506399864676612733077967473952467377285092430423753907475920047937541651934602006989437155722135431517173525703754974793842221792985941627315615984329932086776142460658744177993344761425820229621031727326102725672841566553333468213979825494254339452137698221710450317367138857402658409495418480156641324962961944283148441869182774865886831591392715740366935701583357304253939559726917177675570673441525643937270944800785155262771242195946833326439902984626931910559586821779141628188932757359537186249533227381431329524403953261820524252638097293725711912401990555467501062133747618234385675321288793595064728268982225535467633168130526220945526111344489889376586268993317478764526036134213524845780067333325655259452828742129770377118216633340102248283553138395042519148300111254899553414543828244626608308092134537655053032896649653384081411871153985587000804758675607764701337385015647854413404268599616346997214165562561429750678518547359418319459608707179939686733365472868780054432970126539367528535166262261690036943742874654554513944390475588295231121384208841407824050922406624879546957720703627065523094847484153440152600948233378072220991035787856013358907725594951491823431524649420081197310440753601123923677332861098063484356461385996974221176222182121141215708559853587744907743324033585048700498417451242095909699034820996799763318019704963278622427726954003704552052558144433858771877537033123227941368984858250607592233761464946237309916059597989455168943927581235529954171336517056442762666760237726596366750854747594860558194128206461734056917205044371131039331437924208023930650346085128147332109804169065164764365044536763812915150678233937506593738831576280970535949348912282011561224189110741640442289359884190295809440767306923879166314232167519260589520091222069966954282598898675942911343771998487015191717103307633029016269504987847855890789692680551494361940802970464446246761857462529107931346309743614531523790275248867268856385187362851987128450796885590057957384536664573729701662721352619066424604278395847918886431387922137484937003317287880775693776206363929661835160725621148643234690767119230345024662688287290610423980969337702170160838481310698511434153964591233974066636492664612328211352953830853731412760825983521797569623324289944350454276574002187173755293411676035602750939726687405643050874972969323111796583342541312519922729766424331616294032605638995267946280224153474451589697221092140704768796479053968865633427466806071939599878765692771244441651129413643170597497836592875863608632776105852661266696938804407045373641023803135030655593914347007069025835152559431007837508905966151714270874056987383392298923928506098519405021092053773150551689965258406602782556051900929100737507465725562973361439234373492417739245729087455635699437279329987526126940624486244494004157614456599113710849111426321296801290321495650383862927530345633458119431077199133163962294647940320434785566378166290519573589155386764193132129634649849465013835118997260642399274561116994110516333563339607661864121834168132319657495316915771602806803022496304003868503840747873396937600201591509585744711996484554351995134516912113749395267784785776918567493097678479452320147094011100259906258466158143699854808271258041499848424969751174825302009577055071780102924158755901500487391024962634492281261938207514290718200007790705454119071178736451858726032680908269538361327782393616640187836946011894754596899242668440031053854835765572324076166013926170884786111174544607237991194459425620639396871812398764183058438062924016765610890120756653955252723607394111094631718203120610038426728817334618026315380742371352873620280429978496531027319998843529243138187336170730357541737607805506621283240403839008906227573767566933576880499438216497625009617852231642583179062297062858129338343599079380096482235280499155096383123158723729505597357095289403364295017524434346250845594919099449555480968497585916839384304861309108910448580616187813495249240522597271286879196300630951281634719856177655044062042686783436111358751074696696945164830721728083471169718949556252017021643662724991740907631306121247158372906858887090963604081878724730920302396192219436995081008203543124054179430250922442934369707254340246174870937748806844093173432662550390880396336714796953728161304010330885811550670753256868290427434531282301606183661319269863907304461234218649711946549944884961661071466056737541575425644137203539198317694853989100262138722669638391032515093440708535774416481317758793688488139907203191217435601445451547409149159870445885624752228942077417935909635269130327620275606765646988493320806411008316599926150639069987475339036556445499919974474695882232099802381760770947769619154938017437927653446188465017730799218498290088702098843269515320823914393596740370068916348055513937225826312827245025495142439842322851733043547444161851055999950250289761721721252446388012208727504320501542847249248161489227307307863358931778128359671393032311789393858821111830206703517276905160240922488913117333427454049230197595025672544203162505760302631809180961095287169187238793457694845457190100279947559978902795799640313446061811449679793450201422230483611763346305064721436897562801097005715176387720661027056884425158026823000398900328217944052156967407379977970431507946795605847224473693365806671589564699323764829496649892434973093360436052272815494201739522766886994920506636651703910227349184094767014554790191729129080127634520529155527754364478433456922525977124334259571005090134719152217355596393814150431634994480659230227730601436936792638640975751933222211324986504054236078433994709131287435718701093280320871609514865788768800571662914309212546911924847025307287870731513183076168611402597200059487791267316227656309576363719034352633388311120247710465207916953996865968500918426889844872111125654227366233207843647963477039389249059697103625857483833192358374559310637667702014702573446528497172923270156482055850269232862580157270716832011989342301634458221411591647585054142658405831384040063764234894726493087705432873929265822728200695643181862991898212201575458644154433059541904237478693351997984125666297355146435621683278760431560138333768305292699642250821196653229166472980577587249785681874010291497557600193392675151736067193994183097965900308532969830506660169779955198039966903051411055032622194833949169927886446065422359913366332492872827293413142504015028593950986086870243667656796008185165471776893896019012216357169055489794102325254100532924614061088740286295684896748371499209506218350710116144814956398224272335270372930813418339573035595268013301545852474584100253731975557934690196239017607348628863307645413257920369890653887208942330082018467375808133026400623744647934597900612778125907641554365330740579234555678838089225948599909490289114206895809756564745564752724294148186480938045024577814688950293942610200324134148187993282659732223062976286793201442098115498186083541139689606581971881303770598204898628185090513105679796867683823879808629993376607882188125379027686382814339809077417861920215084612301843544559963073838968674569593682134282299474465139648013145601050261648966845096456747968694700023130102479448544387439799062105606570761183376472477805410876988036575001688736857615716430238757559931241010164759455475242237319909065152741999294826420083934311831367790596412765578899131869286961897405680289576733347197686755981797577834679724094104348320824505166026173939323049167120925372403928248940440537628257495200103156095758437744246970055245491277815609062468598158948272487602738650728558210169420796514993402999547210069247859051170816096902471129456753785366163256778007549697931492483365501975858303938638490160409520736023834602670572509592484633411276338313743585166819221765362922812711009505720758103791705815393899022861737510737986632694590234109739235689157131543821365062475383272014143681339906353335282697832575931167312376626422340482764384212639694828780401393288391386093177297503195261301779686401174664997766531135082252602520367071090252847870726736452138598529064144603534503326702642592569402304619326056038330241391303022469588887450837752034160355273872712271983938524382822690718969790558978449245728557849126755116171150378215867981860041360791891239926293005131751669725384788544563183526881233972692450022154089693836129715809903054736790661791848658548353878497621639267545250746084572696525394020004276989372410518408398562061113634139487255926570137868903172513286320950236164356153060531080501532826859774364135910759043748231720501358933212338800818591380533616849899980424813826689365278676564232778531799735564059592840573417629971686689349541024014383390449949142598766860697564836610015974158280534522392237406857977431021209626424957165805749989030760038303597698457428179658969910683534888653016351036399515524344339298153480877209885240168600574962589091237856686874483640305364224273343020290785965353576942799120190231805728107879520958297579260967000096102263048114867892868758031305434152255950256616642931307166988700601575416729154812353026776379587188076437543869223635624456427586344310032630703348948472000811191137514116123107506670068212891023363478675904580143517180629377981767436825937492943795116567343133763983698884776898789982197585650659964005226616829213027612787026883063851468048763209669395628532171650811191667786117653472143858415606233681130086373215223047442158381713274605876730859756008637812620511925702760994331584780803922405224421406212895568693808145388868722417663806260442045010704216309317752339232570751410556603016696044703373332604742687824004715592618809456761001929834054248305736829873372058987816036430085425711815185186767571824954582744115283033879466607703544289243883678619201917753705600654440534547041655290425191292574935056054221921673060941945825195982112404751599147179596681254752733051375229546150820389004749517785742914741452612166580254590755934033229760920050396774755625973120457508129609672576381288680652946468932990685564344081028926111507354706597735716235168125015195898219409253265850413367964660455427307066502831572480800506528873104423141345272281264030982857426662264577904471871176573101957417363563347546489331510065369359128442339268290248976214084249151609438776433557568528998129147839013275798918946134728260668524637740759341874845986038244326874526141027168873119952850832797039542365336800961045719710642714984731112712541087017954576800053859722083099654560857109279701528307874793253125217599302148355201115652373464232936992876630634231599993608570868777361567204436876266975253301502145684978810434173729097255431443733739036347447857779688369481704511210631757761606613665564406682838447751044071125629834307803108868530771566090255739775465126277434515540775485232270442168788062637065049847898108731754180914186247307146415023896754819003459459994488745084135725542892442500738630638538855446087108323521642446075966964142015647893006664413091279093811205113242613051565338191416323398704002162841937677123574286883589204605962605708180694460624527663163169004908075764457803582925399276016659871200456862296534712430531797979295001968272284518182512377576944496761056290744305391065189883511715592349708137367275734362289855039472710385855150192953172551263505276017901108314404940007463877766069622355320508378062257716797811292431460508054368239683036231748064090023663880973970727874668447344360889202509473187671556968084668697524767288756789573647141757263638359527346514195364709499169309778851094167385045817467444827707352594797940938633822791267558914399614365565189978955727733615769223268373174087412464232535998238707049086272395199973003355582078364110034004809936737611933119175723190878510813216595453762393149935900819911085527085957238626155998092023071734711948767272092910881204914791870340665525426886544966381825602765385109173249224064519454300128090801948120896134846255287351417342502115855246202617338202733327015966804926196129438547705242771546270307020437648544477473864868625662285772836063774463220532319683542915177980128602658703176670267343974568997202291070476475851180213778306323490426517899776677654419923721758479525134654146707259966186459610593118209086150907733302462427076853406286416089690778152607746642540774660654039456201702321596025762489572065253753992699387906447862483553709125663246255546317145036728538054024089157140928555626431621465474366912032019262482320596823395603029166265771310021517273136947709930663239554379103377657374110669766399857150511501841234183383821456379034268987146875695708420094752023883785325317767079572535668446016552938573010620618083501008036930535969590480419493852325242672382550265962680483305903229941168195718564695852339170526844767410038699113226129599402664806082059476098964457061559186698374164080715065869336648429325181127853102376897234460218956748718643676727516387513978506160142211264600108720526645605047519123556945298437690300619677627138620356045955213545539366344941661584079717279174197547806366278866110247285830992976847085095426366772943692311868999020207799206833964239429614335877165222766650066349066049266844216552462925002787280231305041839967560897283595316403556440650472586719734033524118440214915205369072777842889701408571751959624184425581645635678218348823479394596710587016523930404967705593628090853084926711075174098517294804675821228145579899363050823744145091408908076455109416177262442049472750624137636821165906090735880467979402295143159206391353858680912488379428378678223099750709651247368227504801807480423628585989917316677947915349797388717280680416071369132502285919413989170173631308576933202538576427399871121796437231638139302622272445594332305968006779530084974438117494937810987797862668686518120437506646528524396153221478776831064450776252751194311335830827770680485548966509616571252144710889476519366270224625887075936319477569758620373482113674269117527478403176144751792071111798961906883933105144225804535824175621188019134241921525349019470263379458878509596670563193420974328712736821107003113117127461655151821875686005540807439382019436239126207815830035989768629879458320619031350491744706890837388831781527321283603882648294268029868999159428742392021594654053650786117802394326741261214927898186718486970442086839735642361035706651015267801242687416366161917465910241553224440681235081473418614014725094883905998289375523280352664448035790986931279877594430006522904208055770544776338050772972901105612985843918443033128829745408116089103618522072039354457297263827110196736860911053818255286968231139293503247580812809929372872231957634126246196256581245920246571085040039985016919122716748210699039352847379052329653537943644710413934284546243696397516439146029856201217147997672700414184290658324142353972569684607922404861561848381965682121961899106973551990548760080582388158218384085015999681050431639924734763131034496718980108863657085863817778946786169095941294792827240233473588002761468051584253299557325642785638645499453090134240185503172754487473796348616669414181653821686280236689644122384308116232751501112567893815676018955328952594657902314322874585030938814644632012597796974063802546408130772097838667424652958861571812777266831962260565885616443895498720499317241562318504028667281546895277530339796937959426378434656633248929960819585786705340820283395795889509266187179443536465630284974817706952939545646846358087112892975454919814536364998797101543612988423243507247367938479215311182323327216883893978382002477896791731748262835438524869388362512296760888068451131090170944134306086992329874437365693585393975829386062187070003470876230610264660739757226474728264759764572034745987166001676897924795379195972574857117786246266448601311845269658180249174324832283546071023711411851697929353202450417496800614380824938151967046578126544292359587147973615798740151230133451860376091229395092673156997258353090461546725886348986286902849586063781608091224264356414908039859834157568323938761420112035739834930643904126851266384043090118450660262425541956430154478002897587700979844085672103991808597310695783741303563137205939306490080320971956690202471432111455639395117692728288159844796873269243891828577135882703300225257912275368442679705141282380885947268907751304382724440166139829388134803986386555381432750094043884202788400420555409390510167794188973990287003931086517840904689654069174226092094761838499108101226385760149582654643853693160475456035097209374749898964210946171767091304157679987651756836530894431290360048651706741710101711941413680766086469145435340846820128013572243488113984258563502370930276035135903878712482094324900201396243360836351656166525918758203114949072251508827338879521991991163482486283683872796805617799124615433011144409355229942941668785228213010831621908122692597275809338799626482700265662989313229277968144407094016880445967367878718680850301094235702136271690008683286717600237728876452132085995102078289470752735511065811848379545120762408748307318069088163914817007613163924525215853514651248492268199366418225681787651062153649773001464383510089557849926332906009023152819522734875600942056571584222349083786825104675974052214007816894235970614250449144002725663856703788647558791862992337389107526649278175129292171822055286324717273589354719948498574629989780392383138513001750539880196729871306775981796554589287234258288591001849343466802125561799057483313127455151435561820810148262283363484553052211333812181456266960004421970705772011293024425869562347486599963868524504626136798468667528445389042479024995196675789193554018761060075399770122918504146607963473422716891592058523226289891843380586124305845275992435955352213283051993502889810799291755382183717607211777319723723730655397993072821756583840730395586202504295758309952273281455633352538912273689350393479010548317873889476043926771339911053022385619260708573893826203650270631645515632097496947104384762557669293278225682349084286706512500182252616850766927083256097464752083089557603346039280101605386073017677812114510220493580064086021310205103355730332870653072358915936203784558371445389433718933490392971150099314296946763301885116293994458382703589370249399981061046335575771696959366022659049394617801396872102629562575890157215947077431896529894826688668638670451234079371069077974181297562455854091917030350213623484237853588952186855302973121927251098754362441482954250684078365587432478494089464198565863400497453319576615959309387053621494630157163996645668977268535993422154468239812298871043023063473908926961644902250756840963743716610787228336315357227625161843991050291645832722091414885093096940288465274607706849460775364805527756028265222431558974709325566292133985399086057463217589434454731369465642292232527690043617488070383001293045852021694749871331915455387674981027936921503664907661121494952434577928823587942347457772953949192551985232365594397544544241097610845784870590225213425150452268131155023243712875410199080264863210958255520256714838222609067814309210074220033372484212813390019291625245402676513774834267813136610030447500811718852820008291480978935519897156494977379496781699175628058943456163609292329527284073569334933183762740013360419576699011538528492870655308793906593620400155086601798861715533909266491229911489298238169416865269122665351555540096627796510083645956570532300325198955900557879042756657910434192377124894858031187526467126996147525196208180278616754118994193402430191983810113310557359554095913915838862489907712669066986967720084342443909550520601230037797872021934090907435049889460988073024959929322643895595894626189723940747030714678956672152430832447429080564700240082575524297049570459594565036715638647535638557628824227174333167211809446458902227791834037828151375345503675011432240734335344451815877917856156035049050566028455045828079770164129991198971563321127342499465585182336359083545112250569273598822618591261666190260226721411899341339053195059598665893961691730815180517597488153845835673744565959648785495428678205798659099601471962449682086642594541254639509696646252791654844126866451007978720349639917167242501623242438368280089265964601637344986056379948192484424176801015671202960020483295075685087835617130189419011290271787762676141570591735002087634518541540775626141350621179435828219249571243327347170448781468431298619967716589022178185301369933023836836171645201834733112153926667857514964230138356803427666048538954761578566902694300925015742287377369044065752180451780667741086758837000169930287786847537389126834614883264828899728087723364931206668715310006288047797960335514678386000376486356129877456883568359575469584564439514113259733465182230752349745942567114335265705223240019043977309795858157700358716715550178612514592395393701139463865111635117779284361634108703632248664355582597220375369307794677521180560295251652504873503607505779979444832290042714833016630963459240055187507993045775917791658219797701930109867570489712712457144404839128813430962472108975911938590314033062954474873128630726865594658048848017998315055066188806205605989761298517627231476754986842649446387110038256825490404771519847229179926983189605316570412327051662304141719849227274239629462569215279215199370992515283371310637598692811808884224737668083974224649521671074539474231898559165108924029433382146274538430810985961218859568382514112692887346490109400620582783880777247399110678676585522582191732479591143930594600629008049996866785364797882581378145649872661038508724479496311771118259682004825872508219164218119795814418777768688781657637819525284973411249319602537918303706201728642406208615380467184997861745242965731296425358877084720220522760021097369528629897457874830360592178258042446072304682040555610008809950778675585820243423319636720123897411519709198400812638664832590789558148675326171233485424116510165873910164369392501076069086947200925176160383224146720433915899066891935020152476321145247363512668025213301025951996440857031574358370965788045840663788499544164647976611614578242614854797197237959348480460638763832348499783448397404998014318270951082923411960594692504922551486220134698872275007600738423736861818662467355486012465716148680081007228443705912269271539831369605180199748917430204978464378619495463902364561146241237105674106599637396400385990849019963929916877629524632788503647850756784474955621023234714489465535873798723592151451774706526424372228629991384323285821641067107223437626786893676686739992214283400436705256070140730973746465103737259162931176690124644672134186167837185038018368174452689287677179641958869132279032507268178320730241122568205048575810796967763068076948507063112037622051503700392530295275170552357396095289085306632025547393928017317284995830824687343995479500046641112682679799961342777528009972310549045704887886953112129646236474274224046284648832925128078232891154379979551877090467317324969217232032858963121487474204661334821702974227105637811424963390871532640529531188381802372885423828692555437460353579842837090961236081623999573426641702447587139906764441000597964776978699065606848098846220331122072379939906161180357555961133997865270580773817086137765918146056108658915518602619046387941729000225027134352958745593949551019669364551366373135808143022175924577511346080788302008386194670428853974059159784987328292616898716365001537920574268706453562873884057450235144127504790308482312250829634390451798764737778090792601525706691209986121411762990311003410049209476003369727236532718112171181922550792807320233269005477364781377748427458283908741368236995557051582912031624450473356616264597783764217041333210638632316352343757158110873291668210518334439934350746330498213771015336709419013429538796643444538052727043392767629019850062582523904494103408444783980755005152207784972662614054443546879558307168534606376111669743097831643502849651116569736445238894773010260235527779652228883896859768933836198488606969197157316183070221309178490248003653955136082006681810934890722423109209290051293819291450581142238580596519507925897668120642213178180671075233751351733210204419043819987040899847884596144119545833872036577314396222978818579947063576218460950337599598939172267292749965953461478704257249773080304039729058014886967147832221175971035153005574485768978838663530231212203039334761149528757520267741669597040265573289216809679481811686126123045040425818725489168660714603648924717602954676584390117753182517903453578073808974757989329663485720169355340962213467281765600721284647442656420008870654874257805821675501073847463765373381461255253165953940175849316836377407434498273236181485873486404109249680725254120574812099997273425063495622311991100914279653938294293061314123998553080210331784400458267354004123424685347763342759680294169571859122240256903198377799745591516123271734387727736782482911778513717042758066278780312740761511000555769000464904318967682747409446232012840235153913965802001870039866379370709418274289695013338022486157031063929033493676231462100634380988427362591684219212589837961496240115619867312304114828890580141695385640609848803567837874957175268776202857294461590818807300123691866362714496649440261310508107064897508117096611051834037434573672801470520187581519355735189175434903313114671102010760109391500142332119012666807678590501608918679536273519567165635485352072343485536327054602563408108611768218075233804454305601935416149140881987221531897557637738424183951264023481578680951984667137607552740141480735803161718385031627254592306404167151898866662167874640296511084071509993589898139405890615399296252268795943678026782902083191531093053052164698044782361661525442949510804012316672176644856434581954822348522218206907048552777147771262028950398095277242077262500071345108397255853698899980899266172229310600999634027239361033433723582518084624339266271395823439115230244094738734781289639458706554298818197612902020676181963133179089892348114547471730390635815727899756961148255320829931195391763036225420161462736452971530225414548315647094947194460326535971033062034540305848370931250308949320642295955605123126102987068315397331709572657576240650635641421801334486475934056702109125542908099702160705223039342359002764496330261756749190932984899848797877510570727869520183799770018616311614910974590685504325219718579206469479867924872970386810164428248316860896654536180714574868631288542360475039458819732573224274705804654153980498926257150273234502709969406351448540394197996639353392814605140970808866579312868136794097119642276053745710065167762394735672256251551252674428420891118608688644555043076289885124037549031642298940877270927775884232378398162276705119869690529023531310899474219431956794627470390777869368328042382249939469272216107104034535966937488863824504907233808432754865884326840842571612018684700404729954361751764368766355608859417828661375289616844654872754106441963774589004869723754979459536692711447676229815294571921965895463781051635888287680353257696163495490336249554460035964659575681283278561531011399820495329685910491995831052907134476573637206245674666574103585650968971749222669086105479513731735935855637783048428021663646894073564010907459091753456141942012993137673877420446354713658255064377876751432350658606321777048293236719488302611619613936830495889186778621454696635912384192837329254997580549701664249923694373139115860153616509909053211246767062372100843744326231343140082873458440481518693375924491775677233491813676600802196137214266906285892633460149691430291494458519079325917115396079953803743068870119482587782995187971813863593943138772044565662854739622229442434037275708857435591353358718823542866955872282500928156635462031068287227653925478506828762770404645527387234678588330686309823416603836919148096780725661181259756927150507476594313559747592982615127626969834931458935829189140226873971594908681089187665287544209520646407693222118409576560205490624593159491293476627353850716430172350640856426046715862633772089926185743357788505717723563037459994124692438716061839201574815879683685720571988247926919364376945353444947830228976223235538620644479164986364986196691462535585443487859004320251839646061598301805336149659724008241634871680549455627709367747835447234642208788300230077786841666610194759233468218608104805963759311535012370409472877164240550943568956781201024640572929496978092764922160169655505709495697857919354871088693427823436616657813302221087563749668945206289560419358711409532977966806928303792966197147429899629497009419083030317693769279323818314879959793674590930771903714148420375502656425410654493284221495679476035921254183077012354744914447786638200623884811405061430237230904466550725999384983844026198774512667240536618669095208627212656933054343869961637666342989943373626206545284279762199521434268174289320779694099073346240015400349461115501991280143686701535438423175112154396525011508709471457080055486175300701687316851081389412566112691780638742218134658540083003401985409900950533426959486486613336509615100923164765702541849463811664325001790163266876064443411369565504799640613758577287583752493801509252188118841747631745375921263067010640629016059770840240206875280567784042670974397714803501560230287276769256267464324664796628814436462379424819264945029507126300444901033469748386142469695856527555938200526076916610690331194863563851394313367071865242153349678988424042144072733112311134911730086141198986103842387866898097171559622239348033612673051522856260433116607494639473564353553793769467055390026281368248839656253168538394417735281137452996801895406696413130685601740008031670183664700280802236248126961332132588490512299771498558389339729376357532672586466443295551405241945972447172758523809687938940239162031503022514376367930360510491668523872048504167381595587862720981388355783193633965075517858211656770567830550285242611537959496481934652600392019935006989601266220325437409876342792331235205819510641147084173558809747124649956400768609244670591116228354503249091372826772931502275199251579314502558909509671619052177121590174165802591058667997012896344234854804364181491588844226428942635024813253655031730161739481262455443812928062505621398651940310866594358283218720919582608580786999111267245164329792064810777141241880816702815784120515329589989391790740538241425748504570426519100408326746104386787161265337953776856196905445989125421320848193740121055501040335757878530071541457029240764745986639658405122610176501437611303102930732324410654706512209354196066629752471211036656855032708479530276059700570959036600336357691151219348985098001568128785715065811992621145645948262702072920143173118592003745753465585933458908174697711847292400792407817031465917345605926154990523690185335133020041018054284328907653865951912394935008500515809427971370071181270429949647268150097402801262571277740569975296751473129876753424004711435089084419183586813632447432254165111522769070644913941856752817480402168726518075499730861538955108126717461655006566181205438298638369941665869307186980474321390392851787061152651602167470645385277956006923546292394755653555125644631648078903731265932545217592248997239898107911507644362056877408395459518374146431635586396304925597168760568897777554055833607656145063590104550569160424904968354908529790222093915514482871671663706537573084308529395396976633814078608896335260044777160110197502640785657684958367492465865985840095920907440043006436008685476083011970388331810552249699857122208073500102287453713736597155057180261383742314848720855841443315620724301934687458160081544672784818982536283361821241377005275399193814136868917058618525587808668070583472303462215223615218511532711703880805393338858512451503661330352326430858688886305591749057052968002186463704450860276890318447853437649777184263206356573996840123618907923290006783737392901793822051625406410269242946662585535041363137062605025933767309289591810364566137976863854839073851377204696506350626778173803770757958988840161317373026799457318258741023962681897886508127006174761803651550218683291771881981317788733084124745278659620453411364894350486840396632217973237606545320284893423160220035751699827548935870213352580689291798074157789536285280170609762292882035558509548497443379473442928329296951004906367230235905955403955088358972268150935908711739225891828295693098288021370865913811540294355312165178822648122650445677874730790507292759460915417288281428152966611746742718997021511880807348207336236700966792078359408260197719017282461434084474579866200168709242905521433875824781022201200053356257253806112821212620775827376381653326456475486586525669090260759661471563282591363783464181329825694496728895203711964780086354759026730066791053714639629018822883944906575482621301557518840219909796912663536447441877182363269667920198753893976407266012436900277254720267391450954364819685268552156751032082740467407213807072652719677592028704563543925656024556147974169197025098813691391525234894089966363324129644842168417253034250877969662736599591138035730223130639126322468794274832079652191314136453631528016439820214229609822524024433606341003464209469847756435616476805748283703692503890398749449951868382384459981917459204152015529614262305281609971535050363289191419715430842049280019183128847002980663736568825579662846307209827282574873424383874622924240213327593906716414851589137196665009382468472476469294316424945228420955461104094319014775634568504512148953778013446709658127799187505421896483655386150294630163505976884440126843432304414924207900228625058807281614339231123026502632899173439646569807152147813681040711363225151796586370550741253632918152426165410759146209198294450552457644062855306240398058282494140384892497464757998570447748991102633636099463650861265570206855582886048717844249624539584801477867159854813088492208236763825145942043463116269687550086380861481950611887827009235583606213483844125788809204727353455176333942683872463272273309332334956953453799090824011521672497061348397519937616684762609216826453627659197706127194673059189253143478929202586476678839462872187087791887728265707063215642494729659735287607545810034814198111480865643933812657881718951167454321793358500528317958670012623750848079624162794276778508131648669588848874127509773586517921093840344935260910797592012778912789776614189744917321310369016576735569067823600470266683493129228317906987869429790196078676679775162121479691556296673194778367868196457750631033304632777994618035076390505102322171795133563412148624265625799878450512087574449006448440220162413024732594275271943232016064458721334745066982098274004133568417765023621992780144224180352540353036092556653212912280450585470503591812304119035231042071862052721873510168979836013331122879526080993681130196110987047885974849028296243027056472223406943325445748020179907997396659862359719849445821845640443773818706129905175279075667971322860553635778902728264010528799775778083361235129921582857636692900201494078739614777996665674182283541241862932586683066396951792130513651835255838691399064295237096474393580262241644668163743661091378009133858708835785235386233039380230718203274742959571923072914900537559932195579921676501705671602933980129000909805307679769099083482758602997844743548545720610912745686440061133708132442392150454078463691222855240961158361989238831589587472345926259531378605046361978440168158317755927039910278481045515210618134529185048236228530133649711146381602450886593535741558732652901555600125963148118333361813240555247535454574755529810026903370476830221168938767894757079221282571717952739348216696797467688376280458208106912334447797096347955938734992373446392790109984228010576980257384224519128938464470627496943690830290138698232266699491428709098392462536397780353307256932679572826980086906394978753189468101976529501342346962587721618867605199106778107398803163451843513673478082804089730176257774369881456505993138038494547888932669939229851015086987357500039900901197348832190457390568462853305972439363334137343987581534655316866390719930476473870131641263422248300540105675231009901912629827956325216754614079809394132928148277756453101640595698614758502819555498355487983468591652559407193567276419236303012714597262518524002573601513587277838822479949182090496640623838424566813586090955455762450942927312974092729029955691510111242828195438815277575630800209537561903945744569339010730433960479600604728358398624533417585467524513733857524755382735351396896569666018672998989781284106152184807146919775924336642368535477236954412676247437644330427580172969867524445249486750164443425809797718627195055546317594076419945618378087171066542752675843391294834363301791244589990268406840632982478384853841024562647129138079464169218592655805814483451694200529354120482461264337940188623916319065939260014494020021656406154438145253870480881244889003151980864122793192645738901479291107387439218185361000443897911727536710839574605004907348347662060412736257953983873501142618786180039464087988331176911759564713555648868196310760850807618156644288981758953525284647608888298239966408586865694046488825688982473610439652107773428601852763024259193662860205211840449761683421607302197284063840636252153479933997921819317700490388333425325506225229965680285861458420671285076472436995855727394122465810470271025739690712511545885837024272438126878002964514881372960563076822371834938519999913556258943925201878665704719848781550091209312777552779743037463634395520489762709487851212341118357466191652549855966701809193713034952136445514269392367524911615936169687545509012305295859975330320993364646504165539224685506546662283690500277158061466490731725552646296364765181850044887242941449405657034391101351376473111001340401137586086044947057779880717700807422838528098151844779504283710594537771724189904475127807409717509206399959517579362261987816091228670001853348510974637928313473181738079431714771711436833833396901815689585231030775690397016740836428732578354079988210668631308953360067244068427070043726983466858033348435674730488834936560819978143623387473546950586480177174214907610443908941936096339876326752011180379797417114838261257799846807601509523756259326028614559030883319030926621236477778495140294906770930156465633243992826245068714820617586079808916052454164795655783536016984817325961716829490808487042213229499371265615644798344795253525201108904609904638265191100041126562352240308150484506753064180286572583039822062240208876017178922036376430008956080182483307374541352999065847788634928639517502850126434774080162571532314844784582900699246568763620351859115194433822670377772244284664506294359004864342117346563645129976149088364076416334441180485822903824895614048153711036632834746956565665374578554316218621470556263446293842508707077364682604890992274322191876699661686293714369601891615443413114792412675898579201792511454624087331224300492694294198797519107437166484389301798123934553978951179918831376340846174631878775777375997187839904842970882462150036280913981739009729065694858087220572509500304023844447535631345957549289901853786204410976619546634546418175388359130841625431660578505919186394852687749179014520803347618333105190374314594985287030290189614314102402185476329375543154465021253469162811032138235167150617965139223665004851315683551790650428595902017989920362812083941966798627148437252037016157993142407266474248019233044568876371055084866687439150439812280251018662197323474506293866445268876676480751805501804132061915119143790419552969331719118111335705421404847986985110768461837494374500739643163932548655657504297925910901586809411769981329325280808306355183538561542062785024495101817058131442721421660104017613568383507388554058872505371022353516778347514700874697920834632309151597959168112466003797835740838415380801133193115669722495315076177257930280240797035666726245336529273468600243678440927296185795623078707812023455515348748817552746418696074846207690012953224925882381437787370262636533490809295171515249254863802230077967570087054405382490063912446164940939418504640808713188693830263785930707184996899126074633463389566565189435813664737035101064733663171496139906349704076840600583215183999498553290324367712919097342565217828559111419914195608207832874235274042706016402587371241674258837168700181966282887651425482581010740385651344991907971336765151999873713618854467559393881742464312741121854480205959254713917988605788420143634752920609724695284677202403323083858928516398289635081250133698399864852453604816700612451841759625296613273352211312365023701524706473009592135823822753694814377970748177045456364045424887945611698977670482040974672785199083381649201979018125633020368084565704385511676275822132339904589647687709498270037397747444923297764390561475343816733890847249980798412692476292627541821022997182264431155722566024562452328213748629837278441797469724206846694644488268965913329583052591089218819137364340053898903048507624639831913527913253113780692042708532573535408302740856192606280113793622387914199395958059463487259689722812458111903131171364808558603231515201660125496618442491286802884884813210577448201461716328937601132816833890832326878411237570781476765345621535095187304529104533845809266440867180481415076049874497446581359891894834243806024347777298842176777037609979417402826126836459902855053196900308116374626299598928002237901811003006781087786362480403156667420865476512612882637947510883545116324059621807535177330543199306515518689239068154869537480182950277519981861528379434438341066931198769641351720457153967919775931588955947061164125452138071308599660465529491991315695038189111848588254073685722658722292544001323125174251425458990945183117737848852780771516750107933675705894689725256015568416911617161496325314413458064206699751866528433625036262832113912029418764132756699338246536588155804421287154436604863176593008926973461664335283183804417832307752217475969349039459287076192991629053694616887534535182274382471867847622987637034301603807182754800061132237780237598105735150991138549328477802310740130408602309896859897791059342011567036080949828922683707122225294672572903502866287911660523060448617534375947286439729842036113648102972171743300399771259828754640702038318501548640343309819287781967961916773982883823689483619334701824605083600452490686300740144948854055945860386197109241199239679365176138384688888445400315462720648716118848741387738805237601227481084507140178227825848219615303559104361889245052301683514343128003530616566648221579197900594623247584351507149591226294501850415250962423749664890397787647326180069228628733540539208335613075236964438952595573504860515380964295569893279017455376157268793261766110696576824337177515175914405109025316141552008910711183322629712055825495210880309319681869801427984976240598836679000983018483127863529107709632458069559673017795440177199789802100040703903735511154641003346093462928526275122981516142825792812339297805053076650518592718490722730224954180495524537255512697567584096140536952473257602060885585481902057070957196325650341500735914605951890661670255577999263039656226800882324351983046359789796773328196337014434135996969325330725859839102815050454866431240865141084619583020797658388663977508144577528122420077377954650096639125930612549785827506761999555191929745699821368343140117944827187532650603196030245393020258963806081175163329682268711010259724084626095713618281608362543847796956314844144914275538758999744371717784218159414645855902598024825199453980415038385380549157631762189112128773192792069807201438597118718238041119283925066261078622710441996087638522374435296988659545283762373192309125145421830483205272452583835742815917469995405240074309961823308161571492161418910052863289025278887247992514518665222339984996525312154123293002512883181674289249952061893089187161257004071750754347399152121494896188608253474547242984659162640441119343329486010361758078045365226588617706337835478079280321372717640266675292649097123082129790667427706198735780583512037195807150425427386329490273776192533990953733563269890078397200510676747592415072901717943179180216053461511046561766384727135184814455593750756678437514203141654712691932621515931343515988733772811529063298009631061321849369733985024544288675677321827354927689355471581796212163540325991222680061805241261728007130969609396207000340832102106108679623789654932963229462214708171412322533438485748299694438128446595104909534131247786631500390196348854007633075154936932260405277900305306464433923419668920260330268473967779737599799175761635988477302754812617760227679888485152305161501242539427197634157829917349083126161371141777254257000673621867319804486983861611320446891857772078705693272783241294642227785504539890546987825168161228871087529449029700108249759139910660231802630950006329849960997658351654669280116070306892651545579463394444978821819429786277426560151980647147497572620374443719663649951526963203498052679214545323221174471481487907935977467820165927668962043603911119075718241684276527152659980177130071019547682255942894191330731724166122632810635910065473240750138345977024203055025369675281461165528520375396312548115642316495081510079466724876068230269697314356580599195275194981393933546430498961665621717975310514616440177681641396016762418327512800795685914895488644172993177149444040229595497452783539254683852864166063209898752944496383853593132417626705041847650063732186750915960187967519876357776069829783091799131266111997198650795435055478218693992967528464695893561114290986556339131449940543357216687744703296023161673054195078176254512792144088142508432297211894748494703632164564347137115852043557314584572187463073562359787477244366887287808862191677657848272051497498558181708829854225134583230588575877266669875757574846313600481397878613771575436763595135285233280700658620502972003221895019718683503359376671853912651041093797017279581125146057492482778117378856590748797922170498728898027233899669150756384051280230556144125388232336611954141012063437676911489053785994045126287469429202567360651552663625154385266498863751162081604776196280975285961301769403267067060267546903217339806336713181201703654770531179829443323829506339099234002272934699404887233189942921872520997923918237049081044628334649590520427230923242366293267381521138046415351952578131486525423223509385626249843019942405133456408356831913758532873945623815358881055090981726512830380892855713683082180764383769425411275210795324378442835450619630329368113549165473436953399508836357475378818293992954503793465397154247678866933037518646077363604193371886604507017173016147803181157859114960498006330374051809680199788030103225413880514771663164118309132982918948569215233077091711419872762395585337208176243593630295591985695450445970179527392475340411535746683023202447977798574854673215932943487827305170674790523217605756267914226112983410954350900104446241297706998065072269568069073975467365537383878360010803465446172931195129183577385434526423194200433987001376179541791512661527571940101879195136872581949009847949851722206777490806945228581811177093591760524949217780352114491490695978946973336439649434401181153791149101214776790918212256841840723200832477823702496999023606352242678387659650075792907760511106615182559673252767314779910671786384649293386770541975400099404039480088902102287061558783052424600726666541497964794285323979300660576583660335292679231437927075962214173780732579851151133166552461268867855088374268490561229596998884440337766188694974111577294292137124264232336698010974537917681486070844626838858642582175338095751034177970012973337380983080378349511454307631665193662354500879360849130279896801815189681584000711155772384830253819796576047358775733481516298024694659939038498689255671852824796237744384582513467231267821136558750837120004160661870349539178214306996638637006740035862247899316474756557872478971752293801299353253151322389069979934072638040319124243987787276795333164199423854011771124339613815553881641230283395975123445945355654490629341560555073494026188900347679731357244877975787362849259943005935441998591641659533282856381867433486700010370804401332357446222758866193820119058264823612021334675595124818693554757185875262026884223780408351603871286348946037674209954026710625405168535364756867271367879371827892697074665649387685146918895319572797027230521377552158401851194234492881625550483757997330388097883358239766384861726084603536013343996132356731385875988502629334136903485946113157491862027198619519603452817100288618519177695748677536803450674797696582874511984929196542968328406529494265925177106811575253595819614665298400781643858643438621005022198993084236137321053687927698794065020676137675229242770463722052060754967403932115223253447455391709466096701237453358625162516130704526601395082380061959036930481155829433553722239490062997724429996855148506292811854040438591731039819794309845304421767931160608921684639264746012906210583651916401331197993582574443854081002987629919429802306927018067130479944538032308546586684485140057201022272427756776631820543871292732850078989861794899531869400000597610365821421050204929457107360511718645530769775690389836612409234211679491067896253121107532343820865121163678464023677472707872444484664695143313332200049398281647160373070665754262285620016282978681201101699158551996713156172605835803556598073615813714066414680786283154691828410203524360317448507568082612382002306731672912209143273626239848941513731516277639041397766297543752485230918775407915553353416848466914110912661441563780126784267194347161534618277357740560760049609662674299270628793723449090104905926153778035001543858345565219926227348153895296683293710787553870751627872146494038119861415838877380607256179911477853626387045929734331937141466304192384841608379773974155946333755995180266586237955561120047961198734735530160208230341271614450983121927319699827574068599055154741045659675051860686502936188097673519966194014966198111931059834034975961246430159795101996663160166760231896484070023915273931882387883684731119174683053807483623782840874683539328123521868224025927369319368043332990650948671842802512856083549477567460128220809846485437164650174613953122422766238284259005163074301361126495140074158737542907322196302171846572846574949404789294437680480194609413783171709053537394169485823208357623849082107330948179045742789856018349624673462827274997069471071067807343957422216563749330930246696170272603797747636201617093104607752879725766734426289901359290969384189936874642934933974092730316276779909533697591726178906276620396529834864296449996888746999467806352191306258841056676021647280260875086657285856803166608147917581454599229277855888492223792291078608337955885416851072931838332534914433739714110153942348840644742225907175776812165868227296486652924544587792552803944702000382343397475468700292811712493737819295013604962127961346291555488549066041041106327250145520861721963363037593141111285601261544203873966482003976565285821835246271762189426477188045911583443443813190509263275054309058403889580851889256508818182684101837939225473328507979989825458336348632171012335415614619962444873818652378613571907914147472499580646791512606559842155629831627686132252094104439774026823070654287988432153344390243134688339416698851292482326514454216612643606324107332834874437553240746709964667882499524853666497003528389263206405507237533739094809925619919770979739496741849348264227761953444487396846349901788958820980457656188131277991848804454671215024457734830581141759914539884793418973179623818718100303838463975421236278994560869531073760716895362248231877063615314922432307762333300694330766387564554258627683159598472494699866142592117193687668904874306466350340523227684276644826980631490126711790260178264950358413834311594440123675895319835638099811007399472272124181567719034284991249479445752190487901985361637166258134642748227975904952412313475886163070783473595659510749390004712348590888467289081564099844213869254087348435898949296640581001012493457050732800646317579688296182636769740101699152792312942541548757841038291010949304415964710644404038333676135053391937549859897742676257827184667704660090382361231881864580250586009221236705733185457496007962079183947201486873982125824198236285341706243883609872813048355799579224043815935199203694708235678093688672237230260125036672718742260914630196731019474048900920518235533466085450435373047066398558178078850535051676377928139070641402992317128418374429846394027451163316471980706901184453244787737240720177509596636264510905436078423105096701306121393722370012718183707481455984604674600392803729096492999661147154684373333234845865256061437994279571214083309655684108351105884894432204739652001931239778409873381389888440866535004779182653872699022587379239728723039773576835596928395199711486365242106748476526709186913440542931455821268417932718057248146498803916364367795864534845714354819752207877216626712484449766834086061585831280248308907501651453828988194282787043134725774942118191864268375531221652745508096314144029163040515263352372399860756454359931275340660895567350561086678307105870112349098693081608651421159909432535976739827102095562942229603788693191275389457089241305161231255646609690857308852116510935858552431962531668666256792014639979778129133234081855458206316939668537770920716781432477904544322690668143192150413470251086038583582929595179666326441092019806847758365012823685439867264950528640838829228977130258755752309791964748431486934850870715346064925006602159383264987927678217009022357009797119231964567782622525128068969987614036566118713229789264655272549186989382882273219769381559123793457785663188562986211000812554445747693132343161057103483461403848190715738341993787551258146395333812924255427610704790008719026178201444418895540288764054295349784065835016914946477907698009171141445675341197192711927924210288576762675549666696205340502002406915491146214801590107189860389240218516501826390932163174462158422534623499139192879685415194308251487461874148856321195900297972491862132287508327403982012723094022170235903346320908511331475682329741275307042815200659824742040580896303838854100628709753215619134309835896168330055115779656830869774777886338203585783142077524913770151514370635758675718462372167493155554144243098702096252375474731737766728162535163493540177757458104829180006030486842461673489314289070510013136930472944974237022590382182388910071613045479503044267984866726271138561725086633172374651070832673603221683778264312459065542507365747499661093785110866326208245761973373712361701229760736811299694836569952673973584289956308100589594267349314925679282885872359293915455369390326579597444359944641666279452055816771089592970808454350807741909775471511787569359687235239631603278283234761357313071892530757037687043346140878347357915615851663526351805333108118912469501387461925244885184070988144086803461926427297738247306449592020194139662485757060025536243811088258162465060031482218086185817553134155272840241097313400421801609695752008353848112398275390909185814419222699186317835190322051221258636696400777350436585398146817850343550575103774574090783079513822617855373772829588006763166311390417639527024077477831067566753867359012560900421049258110161696843397185127987743470288169520121121010249901215314607288738822417649146361886015925552859864378442765702149136811104942341873510459533659827902714693021064650975131199456164275498865589939071984420070089149388252417616002718948837553161664368205938227752701402336885162220394472443153484536599083143926942166844149808764815835572110793501543224302190287246257319679223291354882572319340885107840777669362960099011871716968277256019076686149660431366301999788502293474893485476260478566084966467551810285704684608791480823675950797132736064603405848148190254112663335404493247586799500526075331681698648366587551458445411129182456797549566780640147274041688990195989397727295419040917346202103778128478235335257213145795029817485332706724119542061046826283211812051214268376546025665293277904716506470768003633703646836718876543150285098891107452701817472214458769039019590076374739975597446218037026567327834011878497797207025175200201137399508665433686153046009322120837547542908764909792349049227159965559268856921094236512454505893834433526052106762698491111512600172468463709310022816494024909029937724184211541836099210938312504691171815043749738803745853688389208378186832701453340511194682956077041983100431281039124092559679462790572816705383271822792738146144325432052475983866072180577811927618632068449672201727094674141604361862998264803246203115699457930815462415003090054984868931493460199217603349073457378882677578829490386827526701375802476024209688273156055786887301085939006779476597613163260782301546796563610032576638821954228848610875114001922864227442929256036511797513810349686194862672472658963708990664114632022889870363158985695191468689579414365017487702818610280003996755693019884014355024432526356979339684410572686231417176887695064933011445161128597575439378080873018419638608892205879788536515337600203167089977908866562632662674786822314958809625265665602140315872506096470941839061107294777342723672486970942391678883829515025502099832936141784725050273276531376364140198506656315923856495555955270788021644696133599774482103230005323132808493936369973292037704728622501315798817142179742914825385486482687807171524345849729772057802335804864507016382954041069259511339174756598358758939971926669466722923351759576908854768219820511623685831718737268684344250243680145602465076682412031733039122547231502718780442954741132335193422336954024256706181486490006670654185178260001574568193007428266629709780008160275286931189077975082559495876351472653778484144401067130482091835922557135696321475633323396110152741063445261349867356315981144767640584265117933444908788914642198602109216352401524629325001249687982493855398557921497705772020596705397061161197582573512563845802135607996762149329183755768513776734069523429497462141573220288916507629220927861362559009245900634295630288634880506881344005387625067584125894437564578067407426004183671378414890619726687568730663485696488779872874927479892451631351278859193775202383881872937250743158892756989628392587572587673568534238847524215959178132699028479404206800450990441367958276034556517417102578475998484391465742852114685601208993122219786163492956725350123698907776567415348524575639760962697117143891675859864192688961938026610045285925022052268861487433785218695711219489545786163834137022729313408475754366517843245859492048630168247165735561430601299566839210234901023736027520681283932382358863793300978204504972393544439872683606250521631326634659989664267047769390000577615228715608845852448214560995661671819238892984673423470163698949794179192378750296706812688803828304235959801173043687854537184461743755319989492774932400297606032722405050941071274958768856272931564710548303745120520385167890440467551925417468684212568124749522962914913048713011150718329192105958742453846904852686776143307921481583914249587219040168699018813374366419053895351694854507836389659745793177990256736783315194059984863242073157332635980259627036804520572647822501387812625824307595701937628351887588596425454055839950236450925812181164388481207179813394132931077268466361271479800787748553085797706536064014587884396532174319486027967798602622064021506985456592051803443850446438964415162140529669245516305049585699844239846557134354409219894244087211606589658203739347132344175882431978498373268777529832362895567040207959826595043095303097532540505313477469946283623885609073155730810109892249807568096937938521679896179992075016776060117019151654742866079362761133177146048841685790894612484823172828462551211613033192136068352033035943972197018445669136504443490338440400212752067481049246114387066231009589292627106151551588266729349259506154252712235591329348366153194043237586030626067223661847047594901537141774195987365969293487942345908275501203382260872865034287275082941229452471607370776452883743975283886131593226200318741568036542681563410773339598814626489720403085481369416199476476544866600517228828475663869141121734836228384688377712601306197951107361508888300958578425835731859124166167853716217654380466165103753964460941730617978008039264073348229194048893742410012143295464938596593243380220475678914017867205302763476643053729025023564782662401390501117326858450493220264375994154094252136834742767984285868072314133135793917586749264471615410661222437437607053714203325671732344542201435939523245801070295415767464221207782616543926547929356762117354743737413892417697800144348648614468032439762579654289931976129132132855071389041087361736565737142141584017816821342615871450907727392778361074158523112355526829075727961189459461402985720534290915416512039169793564382755687012024026597896372809356458168476968666366055308830955557205878632156602401280776581425344207488198583887263671569689172103917977386162655084624443012420695482744716716918089392137756750849913646343928724471439728605969412879130156152352858209225659197598890177642699516415929011269707931682770020629557477983659018684181005229406491723131353561310920143846221028344193058467465580317703457771980377763117952365591104814514132202187173457657162774952946011627150389066507505104477627954947817750350260231360355694363163340021367329142353043319543239028339286918090213664080694794636063469716644475840950400546753042240865935429304119429640605914290875888524200761076492977677428107835512164913575533660245914845280224860924764838155007055184349091547279163835084222007629836703699270682874978047941932472090128315656069635129210410181369247187599770706184976452116144184485028957271442691360165589352355641729598714318373357113323555576938697978363225139214833026739169109535848241011949326065897247471488510078045738730314640909129931038296739195586770886298100454608885192301676125213014531954861282010954349300484140182311926956079535964434077148887096066772304224637204403769841008286685857096210189383670970360087850726710995261346856532522450653994000746917820052525129499578903120079077423399616868573040122818352987987905295662997019117427376615070001505436316327705785864180938786056987816508474494092388616988107653873461436036826850612446463482445996092574443728804350213098156581544704343623721219017556777685926098298604284362002842022150408607301058689551461928158533853526441017156120714573588682316571462441183735027597605936590625621692544679067092035504546001245425131805751367047230540233482645939294048449172332637752850510536883943997754161230883851715742453482043572394184042202171905498873879847134526879692672348674624883937306377754362782819031806538273659352377982040800493153950421933121532243485862217879137341743981967960436486770982180873952414885090513244156899523543338424185968876726418730712635282396965589844417920167372638829581718333468122182663167127691516709908673129683034657285368420756286831401212019514074478753382468070970980210522986562218457006691714531234448306589685282353440973497383796305386443903323743207156687630640925191491534733142715352610691061795725983530835690769710411784168016701461958401508577612844732778430588696191503037888305494044211956331065754109613631937908530965546357439593943207102816533464422624484449964628944818588651006156722968842738351263790414443669061879389049697875062680747951562033642137093861514878964965742827357358309560979726740366860681560687163421687516747442403793432469869310441754317325495763800450492887987114726693899859809254775337160936115390804673232299508804523831894125912037296026687870856413430603419985721889894716236940493893827473781811168372265887254918772998297797748252225750845089574206854556854317071331452671164017488700482188151532570297253979168850745095511740647448658625277019921412510110263865582994080827050618477945512774227424230700565645889841700622374756250444557032079083951014283173257708537908042721838898840069033870003950032987623606701094181023355336602332853402074040641675677309976968228615829281492894367330736262553282636358348527305831520356240786459976598492685174110293528541216948972198668991971207668722193441969832848205979786939188778421622418594232896967818042733484840851521152425535607431536563236762899232403596809126466763135005801687798696950929909172518921436615676345989291889262021647156636362066648745003043480450349085291702536412440222411028032451477281372164068863749331697875196307295886206621153004774899302406781944755619833247264002820772641632043417100194878890623874480600414882550099577875073331550013890187870764995849189796145279311573176627464325728021005106920623196229780428678326398330906163247520160286021403639777537772250037631913137220219016994858276093886983476087364021804087777164856898121147378919566009271396418730766276482122800676947062339824854742808057772519461791233366239476283328380133188327979743565842629963293135678304819929714044050302801638921432294166547584735549264615750541159299983876342704452457762661738601086048151385750761925080891626405738787061876615692611436474073014596515934141927053696133775606738118852895254590813684026242023763336823861249924499561095742120526567033508895007398440323921190966551424147451499314927937026531231709462576197504457876428507513844896035628272700496257905996427428254939738251739202106225048642646416351880759575003218289150263197864088961961327820284852150909486063271674668523883753674467805313340111476716125655547052987215845144807057876810213405643221938512676205394992440808228996009803653558842443244446341981980288083609881530390210436263563088804393838214520107965239992736747177735683188849562455808428817975461216541651516522481572218936264697935322276101360866319599326095015314278774220420227131609088088478754820477154904821560309374838618628011717170207172108245351696139578537470112679420097489252762752821341461629485552856981497637918085593388580823137320071803926743986578974809568107831869855408964310799388611421885123908618674534592312144299099676782143709107819879541657361315369638093472903570101666793082271711995669459121675907502956238943613799122641465291548921663821471744042550965401394878953387704153401965593201859274842897444602380110589820896652395786299831592094685812447190392968706992485202831294693474394008050651116508946616659830207698729449867516404977500622655027388544199771778082415490614266371370312870593394603939476565869858694349013570472043759569530703244656322027971571082577910437020496336956850086327496880178221840634675037742402129993285563011624492848081456358584555733430522921452687082717574748480204591918743849541743513840409972234501728809591046445586492299198934635408630213460864799832527035600490646510469839827688072442186215923072986706493247607256465011204019768146584978629292907186716108410318879683928948438957422678613869339596398141146791839555978439866678988167731350171715743652926278615400824386753069712021932669466183420121241665133713034046466812320798907980297340553143506201059501840310588804576974187647440719617972281039184358501944769796708535790387264314870253626525643556837907730305576288084982430876066387592056624032935481793520316310023890651546876730444040635488095510377712976809782075492916070118556329593834219730315253081039822494931168188706651276120560613962112454741453394360749485788543968782406905301944057659887639903786208231798327235584626803184060091928047709567118993222486538275686626610225943123818493754989895001643646527932929174352339352365099606530002110460911496448141902186250472318928850155278019006289209495421285737435769579054134087360800914845527354651639349998925296719737529711225103860273793989737697493174219123539490354536306491258675210568183997020865460563603955438365815004300684130287990079461576066552091375852686684748493964085711543495836985432144922551159090548935658516552923570171386896180987600225610830111352958207196625883149674307449204095886574062466869392414603474363846116005271477165963436210022975437814195314413219628542233131697576770196842488466250653171945053069681142486592127667759400365243174021051505049331497140703755152917329696841484835711207445313307888902884188767685421506886822016214019952369733641984608437174171498656270867134139582012385929909187384535493950221909917478780754171081549306252890536436062898800279882739796677423373914702507305844809141172952921427751497342575204293242968331387098898349188836398050635240346794963082243549642905251226346050846721440267823106200157893862946304601755139094081687078481463307983245244798699944609579207000961607850321163374993895875979915238345499275333993519143147417525951087334981783288486847777530200131359005071434040873904837513303073648680790956476447197231409112679944333566652564020547855708134971531033193142529044321364679702796565310832759486980227841355131398875752159567850888942273546261830171697271862142208982760820117785522282027665369540664529038968694368150532180781903514371017701560177412814245686650093374464434581782209812340555105921122649310798685271171110573971043264546718186653001656365156400619983063614439874345309898795153807465637168739735254466581825203890645970646688367685652788272493782666381628169055865426077082653921964221892961642563251413624169635365371311046333298052069803676733810218544542220419429185260123903026320327414407598243665609246288760537148908800508148039362137068783672955345515715111893843584678207477795304586936742895358866408514202314869073848380028370400862852831300133928518104501461294918462687063288000499011076375771958711249581710754334822185698358600074915373758836527912818365954206802433979898342498543653855228806269868603869584071859826068399788806332793399561113769500687700052742720565555548792052315462659921033185232812922595210666729604837993713650667081779255863310165204687329291852858737859003159413325537480331439211722914393838636665073900920465729469841515437886676276100856991087853006405081720999375630261536446215355876092372033829795298769092670058715817335031441862125606315824685205271334475993484911331122259009594038276182291546231503052900185547424466290691989236593863057976653899663358326268460971752738642019069624292470322517278409225686272611677643815898362015401389391819703149344872532763017199243111766324390924211098253171438553532982903185650482572377411594267576572749564585648833815441215752963711720819546033133871430667043750600545590160677984000709779423243801110755134815064914509320735325541751375487677345426259426796833842619554974039549406187067100944477447902925213420361499800550884458377260241887752950962604812818103170190448184655800740150597914850651704490964889259180471468693442910065605265611871356519613364874932575163162492702797488296188201046685060178545856182163960215731939098806033709836805916827267034631650425827382764328485922517994151607582032661997273887253828593461967343584495162366092083268090450317690601146928917417760607167670578817931488024991483174464338948537715303196817474734527376588910731522901311753017383973904514362449347988528418293771684974971468645611977146011011080020490066078499292609965917160460440525166893485917329299406128426337649857327920659232962704125293765381559890651084170872460043438336740365266403002967193191404361069587246771365828841371160698624609046189433932512697229965220061875210691071561458372686132559960507137882342303973632113027973653617257129335396236089178549218357058994033269909514784312137696404584558442075459125330856320911211270208580863078827055158913568144984523496321995587001531896815651128095182043755437354177258144196857661074555160961855624461540803191881579212371757870659684192088348977567076963924814638469162474354973985862445701854318890486082405042847343038087955502127340092915473076873690406520109135972941686616333681348312489348010724149150758166681906406129635074834592686950522902406776611936290630971677638339334774593186669004376517075612542099604868217153191241250791236627764068499963735843671299888346029918765809887540969903277322551402274939522985267500224312748220977446063525836324658475971065014418835045014201911757798836269138422513748728675202171657875598359201767805133574126612514217924558870322005975027825429490050793384938581294014154930589919125773921740788448548478847694847429709491823941969283362153617711021828718016569125361865402602640023091933900817891941470576536877701322731592144415855688682862905347844858373015784256629566277829861521906843955539517387665758712968716267806538697996668439403555047665475008716794715629540617161524550037587343098272224182794206135276250093972603634206161520349087072529928925939628689474764774699855805488683824619029935735513974837338129502512520772100056534341500974604443853701919786112129063083368165853673842406125925872007914120623996493865594848314445205170982131170595712418971870489609362831973810601256590102468822889834732185575395014910574779635866183635564852727943271110424117363371986190371075467102084876484351922799944347883814989727771120714688977677144217072119643450526748081845533156937677725737233528075612557042932761834346392323861244687162695115361482661273435750444055278653403511993471709339216735058037922832798273909241171009324860268292241471745854103721790462649769159670579045561608796471705748286780136133585069703683942931800708292943921481311826287907432732227498367506953021320834076106718216994285141083774344710459847638099096682037674039811058607332977658072653165282119928500933270589359201790381143641697085413712484192389728795837434345729393900269664831591484892564172175438965503328804113110358692468570299269342328186796048821904131296604932886779042594431611261820023394932590700704388070681995712317501554729675677150281306591777450158514757384095330462977784530054542639469695289279010974832577772109884943720933570763886136811777805730004152629574798855922947012272550729630982617073675945926575156075730151274142912590605801356952580630368201154803770287472689908470336351479166526004322065552086209309663763709945452343652262055940619377207236759406323418917192684570347380874677919171587008052968495116140042709234570277699079422708938329796866172677396240410381632514224622813181020286019793990606716702562382164422918998728389485491913611125185010418340380165535801023238347962515340906946800093260988007480059231260448760291193485120889934843504151276116602791988107504144712235129340065748544152406982055678445031839428794450845430814710576884339579621191455065839507279776280754593060915630130185626242643486557327899361405521409681539618028009938682308490104151509980365399896344358305852381264134383822857591113603048614220493882242975518916217049384314822510963824635098320312697680896904118007239908906679425745616866268939489184105004124080678834469169315887060976863333381431662683777719357648860793461582384029989653351538444540949367315856799372080597419252360341040661633198315479282596630857868591414525805702454634086939688796292482662435807951298458182458837442050418867485774413069026178570218462057808058399082169274926391963383493110722628348736264792970677774205096598882322110885492016004205910327325003860067151960617141715925101461132718561047925793011651960247393209727953461909483384199708624601285388712084668653131677226042968630052035192164468718614289899808131441643016187273984142490972211523653421292760550101611347533445359390782525590029678261415618168178600397434846336690962272130735678357811346151396788489428173499991256015265349095687047566100509713335180084506183680950042256649494711893371968249859533507741528595367476938606550681021975985555249752504402393789672195987156267516293250989326637529014029758195648716622152405224330544413181033417437658555035906439421373870435153672674152172682189569003459303305298726516567842251402043533465377295679955154811372422702052875189230146708386959546075391054478113948815623633662157752334901758382127612407659762681838398090256837782519127391719552767824954687196300486225973290471083166846556013430239841735902458877395998698522337156849409654481011929238306513081749412232800944313413200717509567921420957587519487857135058609930021940501990918575884195122002076285236960074561278945003803042209514836227769961779665340945838482662195343409936578791757775540793610497820329678131228561850061625035131782763094005854768053149975714498437106976821379822675998700185426654126057476147473150538323368075002497046845103352612491795108724496739080997846814746215079385273787678067247716763046754064820423510016226006174981349017474166371847278827481077321271213475908059622583141842240904071557296171193896184994841802297755316791237973757346094344971530275468103737664571412558207875572826382328586289699702427424295950223768194476609074732735194549037890383900196676125336560845372150324672890296958966814868186359490086535117646666578991541384076905199669456765109450764877289742431595501058686746098977281190874482464584667249401874109955333058286645640233353839436689677681501233827432535587202399092703664608571087216968002407270810589975257290434275235646256120540849403547992860120882831254277820163842952325122117076193266036021038717303732136436345457889639369941610419365731190591215480765990787533017130683541480753719679215619174312781343287518426515430887098488158766079082245201770470366905253802205613215453701671526442186508556168715523955175634047149573685816312114686986841030010282312300852352292691470253413203394147269230905393692036926192921599925013969606500039354778753758970861198766339764225814223831445221152987551958204262593664496285584385494589003552422837551556643237365614248955889295730087645266344361346438072811502976910772245980137027414807819137696655210086703188933335982813839725193979319585473305896479622902214260691088573750478563096824852533187178568528729137370535284079191178075593822785396234694150122840237563692863290500874026120408972005906193553838564019087115087754833236801067814905464228319817164143980292451862811789749875398122360039515712605832382357092864390853658028618877621199227356648555394842591066113534023107128258485858553704054218376802881953010839027462110375946221312711897240043624401489763800625729980345268125853337467123390233903667351579007028861165391152184123675287996542488046826776387211170743465646415636562864576552693611445509269340392589183058601385185064715129182944373727771976078371456643306987252505284367106459384089071838672968089883782342156951140624168279443812108555014923132665010323247541270773158242152257112206953112725316438196865941907669208304523298146470268980791153867900328717172303428848960658846387815444296825578930617496529743084108931961306282058480057612062674234134218749334774207532793996114363048899169168766095681554031888340350759038211293851022422188442504691947323660517552345490612445126198645038531772651125864755124751452767836797609082736457993527010030666764927658869840588589639798730034205469251747811968607707036366867945204357145106559419545942085342076167387822798157561502856152004801040131609065442244414015627596900391664545753145994285960951772102092821462027857418016848808788062912673040256604081544660185000886320256075940518464801465248820398482917918191989025033843990243114506801275603814308974827669767233854775126720617048735540041270513847779724974660202536062706160270772672500067523616229074499024629977765462699824974123716478846907895137001691799620790460120834589758942511616484345669619799338068151103785212503894037107868995373158930820608592327118934776732677851049769308634010285250858920241307132347678924682660524974280542232461787682487135035677193746528696491314296941264882119020058546890125037329384709960134438199113888062264475106552690584041752810894519116736724924885916361995366351681699054885575660457370946748794389002549590575361867295380543344024072530132749451496536057310845903211077992910731839445075523747040439408571824655419292293541374925713094354394981933976882280547810946278220615480597861686859621986605803185825780295885261545035734844105542613536210738956700501799304544228629515991036150813652816338781980090687714905648337791852105240325611214594723503879177776410619352171706159657896962337712043828762014712124942019249438826272712871875507003052705988147751818497609455863705088873369078698937590208788333615591873260406258543921023873841734123218792602078304629966302177420722136364552546259490158131680739709232947225278285410686722256914110943589411408155978349738597398944394974837189669774747137612920096066727161164823189560748068134551317651764611093478331805259017193173844822014333915218675327610274199199867250617499391593621055148539027958607121174644486880869265147709054442309521330209581001586095654793273969719510903560739226841626388514433069012456731017805327349068329013686263584996347668640984661238256511718208527653256800422387940209956440415541511304579843046725101329007273752811148943006043296831470418098643746112936594565299540879399333421721771454419943179203576798173866237165186409915125696511598830740974664272618946384439751658055102350245798809400788703833580238321043334926777245625587292116073460864904268405632011351882872100019803886885051513289000213598634241282950857367317196117849969387465585435865804903290841317145457486860212103889470662065628061243953316921272254502168122354240800242222313473585614606787959510121264275305042939570164953293802949050897156241641223734983908279993798908518296225293302282301371883801731685925159489919339210373086350765119004096441660033434058194398633028433851730267812829071326029155407825629421591362657257990071610835225821719148710792149525992067746959267398263743969913203752649054627872009285393497542264344462002985553355689423187265881834781642286506003627649354650228763737617146056052605340436748714315157100038977173872341250442269790348831229148367022535910395872241780076451555920265036483256701562189394782077926635972214792636346833213784325669929608143041710472179687365569911306730679038924923463749444481049431682781681305594204015496981043043593468718155149192996737540466055977733231458467274666960170797724168067386085116938963498537389376040967687183820039285656397356156974036433696136063834103469310569164051400847017721278411022348683516871687186305649319384136661149114719577478318172044614750909992494081586005108718731549221094626444293260826570196947584924358133598420598479881634981290685667159862691870381120931546652991925020833197757811847220983136719886404166327671177708095153771598831240484857662801795192140621964361881533382937959887557447537822520589697928686779646730058675379700877791033523118443555772813856168299023098216985482490519817054527918270266948987083919554163592165839104603991143289745384528632919856216983618509445475546744156353929988684858738997775117572321439100666747714069146593618748719220575961990898505671090144380561387188418821665565309211780843824496810305686783524637630161735339289137234330829512548345707963646551138267254884374789831848724452727968750406924260178151251932725232767334755732158925440198580261433788148060044437050616303936018525915211128192735687714174412969033569980527863984980555969259103939956336622502031064566895019372074511080780292024776148497821472477308487928843660086684546828091895281973266907384265556826764535506118828303561175604975235531213107599838488854855810786366495602266926957985741597916829625655944839853792432142087580343387917251904284939966470305885888906349270471591309177623849542237545511363782214285894696992016276319948654684086118593758980744353174044376611285639416444560080703847889876603634242370235288542531773829399453481394208480553882420529576467516458341464175016338224848214337907571193120137764174737787842536331874851074149138388607973466707110295929608706506577670336109577661369679277963795328045188381713370015562432811372036439985425131665168379349027660814797368041249263985750153546646728195692051251265676427668338468309254884148767593158957944631503974192995874770126259379048291364538615393020626700810361086857148540407992377664436468014293150361490786531555391946835425588303282056268882551507635973002061381900249629039899557533572721505852907315190627701591763309469019599429355535333023708672148833671263044705272790187563401402289064159996615901950457529086008530660130709427065452179780134145693072234348728972793720022941819384340243455244752077249314540481963862490458296149167803394159255337015469865529456873554006898720783169940654839876631251016713309089654943633458845315136234801601845915615596624446289597131018351621069826108108840866652703221503125934443465059373584194343703108713507105754669627003081091255924548221500519380926930228819039981198523340284487049627553367345950824571638768041965144779808870530175157149841780588516952262050076962310876731613423562333843588009521059186632370621916805236540420814023912887573277267734278578358613147180164678730134508360583824612064008390221698749119296266006623133092363262966173073220470608868841860150362957647623158143581937351801018586516269562434233190355044472461539404265924476173088956958935164908098534463997120555637742196763735790791230685636737443558775202702142483162220965173202085114380504316363931081147144021399526370401989245054787206652418284515134497914893918392912882377672752979728031382604615891971936389951811578656670836301251859766980833158552687979734015311678995253485958119637443671258737668951729155667024723945437118086104250167674490655177145055251703087389132207503811161642708836462999273117288798857343463712231397014902945948243488089475006408270383337351655708501813475395727162902201914039207677214032258886177585779538957310203499188768702644485989087785986649399479234421861136385057718557106692689838884715111717395394036882319122102234499259602644177869502931343051861541887746303271941651487680639410814663031066388014127774237526339750812001215803515687788204662243598705952651003187151855151788017001194912547143222104607379984476457696568569584328033346752676721207644132258775846663623338128364783053472088039993720050782272894744137810873470453518364256004665989700726199615200441817048504041019552217334108862522181221236245584109021105142179871977746298913720372222462627061685587330991243173200581788898476613842128701274004727283630467123124933933566680244021257960048415129095656178677446742410290294984476776669486815746274387832434473728165383511109690957248724149408399151634979879002541535121106669522933871318987337348965652618063859085341141258540931083465154657783350163779633714405115037930168031385081137828145380052341469643505252342101621390589616047038151599658526386120556746224840804943519876860428868978217766365080057032986887721734227248261112031498453860352502018284020379578496054008583654759824207099965604821647253354235884923523755714224161196173068891792332809534656366058038833944359416919744463807301719941921595770090501265376235582848781354240317332011655773436911630752016663614231727168737574568993288016005982169444909656040635947873598294007962406700279812066822822040805548465646752815570682674993222507098085498975750282746083131221935404755884502706053139309648526583029563331927731720056665678538031537863380798807635883293152608613283046016101011915535293169894908615722586943383974244950974910490640210748702717918508163042881295901817151760060273524366592599099974161525892935045565485320906086453502233065489572973128691588849205275328896098435247309127671308932859312636316551693811782403956854653320205563088983680443447946454996061232661403874915713459320127206263616552788882265018080588345088719193706571216952733602538917631433195247723092012566476218775024697048051503373899341659330171781935404132846470635718982653342248742030196720327194103938326149002495831280445768600354077382300925755746916972392042774771954377903737937383468648974623383775327849520729443097283464521855996777710505585634876830109247970406097501223380652456176529889809112204607219430687845542358560472252270793241329052037957756112324258719673696778100342459348315573655385489588063308523884632431847842478094051531658026575458758813145826613470158644672589494515951045081210521721248879808347119214397484548882011585437601894115560962570582350304465911847134768380800428140463225094578163417085864517726771693134447508752211723923037522849818318474612618064957412078286598724499836559607565774014706191684101620045914791828231748930277696186751699765311887207893906656374032233949917235013282229872463881325461158451800672009699108088404418873505951662864820859859546408510763233868155102853371507014952800241083922195072271131794182343129808164222635875423181415355142461062827466619250809226155607252450696427727617341455443841163387242877400712589012482322447544018161219312790676270905191591005864010529943538641546520595417502575511352328570859172618457663229588370050003463633309910035609253744526508958342964125631611346353088377683850213309766714629459575536007514741722303206779147943483730246093887802442682035610263774603161121613457393331080704858915270282956225726230684404244569161575893210831430482293677435393035519220655710235784767022851371724180868903430696715930964218728966930907373239465702831919866050024481979791430452028252624137162604891590698715659007123308842352474140069661651676223276698995875257565873542809899215474885754194792825516784710677286028977083695088270133409088538473403393699073227564118586639644846045579909966089880514176399618499326068114315080563782965649137511254883691391761055149833695511130650485598103542528473664110188833783327918825382645288982078419098815049579776418366803222713797935865289891345030715010346368491139784977822225559233805547011908874701315772504727461554487483262147033901725749956770408926100951975742959659330949953797294166504327555969325584781562082395626529100117613223238285047417243678365811150615562012660645819670740966879984734587799468672015366458541789716582985848826671587941587783421057585533894832252075519316338870875532050042761269973719818031778918752004970907492928540211161083021614914315560429280477348802991327045975834947821117639764211359303221850894255834234149968895462506751506191625921675967618254103730502653775231729560257552172478266657627502870693153991332719172852290400122840300926054791486976136790548189965704663758017546670856577249185669577416460048435999530993257983579921346977487275496618391419253684119018498643498768015494120496051278400339141206096148978629399997487969112328859479863852655363263901530939118899890411312047679974142794062963243980507733873188136943992167813505301121879620394197211010918488406966513028273386952251224290296462745847256048038562458101066575055242853055711033116009720635257581407921228818215682251894501831352579839364710483969031811273027345773589427912159844011456207245417112689115272155515799204061196123414246682043588097419037207053762757941710593219656392645149207169195513429879914290891282014188327986391216551941551413632809549309189682166131189766635870601141873744975197754537968633938420206810104264147115884155903401335010211208895565073071787737607112337957585850312643291253669392762608629181874731767289215925209022551321006214880175317818578074933124030999238602557733158999483000770958772689324922588475931253974714399437864842455675412119521096514252614079042564259476087790905663283455430432812463272805946155142804530938833144813401275960342507264091267301074553025111798492329745540655148512854716842839163490248985417461032398514152829495066838233808108600194278227043580082409485911264371576096478609131509667259931377504791663662908765038806424273768308420047779082978544970450234483929031256899108340701250461685227070001038077069240147982458962102565762647326748821558985712860668649896799230128151722320308998710827045174965811918047939409055155106731264201694587434762022959336369370918782868567164580461661967612829709395880370809342559615971975780327113408156453486912125666551538049232439572973402725254091998579492712572936531725240158199655095702566843010301489277898799661102368852040973926151858866525619416603208670775724216667251517820493399678108678769231694899348557194421611122583332217551637385157262274907121467284947177242154499115413423828050948857615761546419945000496147638717228430567495507794959759469335965526811472472451478592529717652869021914874758534629636618956032920651344141292561987817322881797182894349227133789583168745561982917989549522146869612342097845173926644985629193240019128045117845912852619552650257266500957990924736251094879534946318982520328024567254784981746562734959963803488612491010175872725419812058139792916402973850018883774815793123728873159974885304615786025196235863388187856720522254154739954478331780476862756873538406661799239351637384210728971518474032275814729108360622875149513679577791009989206907573263693289328833191984430523337622680569704553241032961631399944551925194312608794847594753840451969721346696577203075931444459329288889993178502657358952069332466987240860672126320544779130056211324800974974614212935126477258250272978926228591003697858019875938791613468857511301959818640727555422217815888987776432811303669073232178802553202113452265551446761999654252382561235158341141467596090511566783987203528858961817327418213757212579182710510398475850791413137349334552478635253651077215397871324463289180470489346559339450758712009002996574475580227333537041772222630684110618626967297713784057553655997201858747218010467978820328498192319639644872419463478470342771818154524060068786100485288202325721448401492833950342081152005146776428495003182004043223441561868035172990736836949774733016598372025380103579408017762413456062328426046376684799668455556415977334280555416434531349849881856851634779711527214788750786198680654994637158371210286604030166660346952087999522478625574125474867875871893303208552466805329679733780491931354057159463528768626282914204566124101918158139117299817391454718504457664296972387643066634669722180037896124046183213462737563901671879735266276006780357953414868584639506623437542420565341205133410043879290870458770052961047922836845409056897070531382408927577517262279298187293373681052964907768733082516880651079760412488586561819023482117250835929557047249103860865318177407443327380822078709707555657331534060509714196549150328112859690891611298499288005285959579090449761050064574189174259898131083797345585488473717597599786198065253513273515787026391639365322093823579690916181667021872296307227621556214098110125047972543062243404718644102200306635258348926064252787460429450757379879709220855427194657943075802874259633710117911038042907796309218013094910939780812811642823905643141534298431282909738265370338470572512151887500495197239364994538250313313078016528000109665115289466741267541160846202486478001706398388850310557586664739169736153877365657100850283236829898567342950080003768076983195654822711138024589336071961624429439493162027388038384864806179881492726956036585696629020442541170472737211923912842273289209615806426016260204941606016109041691212979687966459640825489045064070195113606797542437998858778466529812897377756869845836810645264681451337332893098593409801926705304029892651285260834314452346488108598690337771662554845769213113187533872092870929755025177402943281382111696575794028730535241315403950073125569100589129460005927075872527302787491673418904520301041389739395469076899739515063028898892499221764873499658703082692035421636408486939696480765800972673562942755420854115553909318137874639068630485501400425816383628619444308865997316109978821416919414444052769401880884908571430597340959647669444390676798372835266412311785630589778584593183026564907545367780806779616011491572578387846620463619109125354805816212269758139208698538743559403477311997433249030422644126852259208972816263971492721265607211993839434041628292185942439829753847001001441668246877271122413775094598014716459656511212594826824992644279362553480036964589263313504597931561971133097782092326498815065790146611360688909223961534065156665666923634241456770608991359560399485898185066338393361547318757193468742721265048147531509943913452198807208717719940989216231374145764818070646410101431842624076542569564916514508586991250809019625981965521143547721325688238586370680447656890286396104523505419541576271557611023667987018940469406833198516535812379054785785900352757752036160273007611111294631308096466830226729062088666434478048967568223503370062280055745064667385679391492869041906756062564581303395775003638432725827615170971587902100970894696968923041959693129196620988592806287739437046362252989650473054075234776899008061858048542023590083444553581782136141764723217342797961311247902090562759808342680925446746902657736460451072386163967486168694724274099773491601153519550908250974048026351091816316566429880682625710873299988973431145205442977478551332774575511325347399418435334953986912141346281311520814311980787913159635962228173433543448496053631364893800136779289226585176725439441904298614676106068460589040246654748820296216846691876457816592099010892254600090264371209450089167857396477775059582423556633626534721707053060822784057722186204641498392277465055415863041201592716933096427381201924558526407608050932366306145456586177376854846439632579380335033310329329878569960925034534168516830150272102626122479170602901869078156053141496956905463492897442154083593144888816739741302678435625323718597776997797306307139693563896140328990907938342378071350260934881354763191121919222599274292646725009164420792946504616548628711335055933771012584910895435465310703271804211310344539860523265581630978134309752163260385076086130728700148669240670816356861776811331709134760158045051625067293933695247803633121428030467491396388673437808948034421277219899662467439927014164819149686457439696418149256802051080397907830640910457000686785801711534758610182495037251795561265934231480581674708781579716502066989531299781105677754722430838900439024254620689076544776872973283046962461289233893652836562316766626957438975364470754621037738927188763121972654278889268105732938197512290874812737397100307558157099779079590848460154770993748578168867201025163165804510662130467291372728580672427308813240191863413014401291929864639371803112105230523740405322781133559325807527066445916723425603786000448429680881335999735127034615607025330611926956892035985857873909153887384050331735439339612353357099819588995567638565057735541615134480738368019734608960317591339456094465320230111900816400750712128056513141226920173989909540550339735270772356603915245664639170510281122814240445222146957798721082469555634940790135415294645105300201112574821682154985084747318056842498019683858426250749105257759104621802916887644482645188763194921303372430192688246986997490342727650555673033831208073738603604401906964614417529938593722523648108032951921499858590891908152675168110968696605344191649379663224655709988666844135714903464315998001660079529329004831992038031359224387169179858706231380648629178025960708056361602305848928006744262405979071585022163301362783972923195960017602364611658919719852492972575297375613859090769786564389653518197668929835227336668654000781964750194940606092915912253226671039459907422790463454213895414313054789455082183516544529918018938906878009341310771358994342971259079361939713118200888871546299767728787702537147681770766521420632889462929492133235586693226422815006154666059971069900919914482455195582110026630606461115505925527551278904113197323497533017339808974103503334886791187030455141097684912287456311880398272238383920665481886370649135408523058038548953755000942531662959118577434614542198860285452467510039601243478089296070121329114930161782420126619909120503757551170605986007709931492515612431672400997329464127774489245211761245831231240278583324630840922922545958559466216140571357553826804646408995592041045192428129159623598421349000866654060737868384487144977133348184590532499321646668846574242146887364196812758272112715678253066041655325739063534183129793158139064219108056736492082759347659582336045091617791697873133723019067470140006235969740101186628562110497167623760822078692240969945153043231461161475549047696874875452709253433869466613081450717683150118639465899026915491180339340476219495682328603515985414404971059618058051920369228446767946066896972730915755693338734850069162554181743664919211131338682002186252357154801356552463532394917359613995607980658080648928664971054404932045023679502127867216995726567950366670968124791892654995622525413314023193201439951922008437365433780118410777141903699578441788117220721149852617254217801284980577155865168208414734309354504463844502961945364750594420444687289912695266855098822827028256754027434767737756912366912274110180514038369590409883818538820805989651855064167020269500237363020840439096118772440031994605993276180518082597719354456106740144146638311200150073686973835272434762817976609389117061926596727307788843383595084723725603126108377777781801829774198534782896658041088855510873102179888640347739794603287830836835095831745925187805148496883709872274399076476062087548969636640288536200175094075897097306958333201309465173297140624599561693060832042756047294194102302348302931919023823532156779081284929018073234375356675865722216382331494613408313963928838871598117958731037816316960820047694838381826189741549086180975081577463347372722126354279348840811622240642855599736098580756713818748521434964572445728503896232909751128083145222303719830738618670082655376250368908007995738149153869927870593803987583139618503343245908550528610342354029606455877035973280081468766798660777871826168094134701086328510156108146110421134108555124214346287384263486126905721105415908698319324493489384246799877508848595586908794014615529571547502723695752655223066032904794326264899246507787174977511681968782521837321708403907369707383814942948290286862223787449959813694907101604142653193772568656762211524114693607729703557619476581675121885898940486811840005231042011668596954385762968398377833113579688582700918426450412281738041737792807405319216827382351002811505846237699626994693674374418008556461516128783233116595463110732583492497314457535642836177551740700364464050093101899831760287037440378545307364305383281606169525711184834208024364087243316108591669758818343440723793733859038326181738515946936876143287164522278683128122033786350038405881185626213531430699404098830084032601655553686471442562043577852331558965920189351960595161603873603113400422718636322425622481295361273524608236323468329161822191989547066781094584574773335840109644555440312238774642616971837571615381380919613415808088415940913495416238933303555671182845506077606092005912856234796148739694586844144095669330997739939273764478543591700433654321923360665855124735706317958527934219005283738767980317091936771682641593084301413187711226648991048951466769120823819096970769924504920990167492507127256786471007106001779968545135285220496491749558046918259957562489305786621952206479362093856081138367880367895293883909178815693578792249272849545311457585081745426517972317268357151904654038945604513384635873532372771653187645274365062424627140637641192400745931175378522635610438095106129375076018450418424785099607854279627864644742644101750582908529081695325223043439948563410828726696076404979590254934110499837099807249519097242562683276743704404015626052814125805557759051964228137738077532633888637235637641200372486411116858375771633757367007107958227883485316147706347753258155674269867023079464216186912925842045635391947878493785797443820429694288238107442129479347275362916109638814391511714749381190249264023539948043685983135388087899899609204815571360216297245431774140881828164073393858688029937520166557326075807728252473349439312199900630137454240894089386392516315161632496607185522799325135583255644083076847865043304065413017145694821338487182604183311428113182616600350271971676653821312210292916217273652999509190871767326694233120918228786735801296584052306220336936694016913407697447545687493915245933486016560943024644293116659009258180238124365171837273244020624560195583962340585005627823419887092050649575030235503161955104921899936543792567374786898073283078954357811695351359406981155506594496435886022259996296147921638272718606327218815277581018606274482182408108218535584066253926762596990261883654702125695537879078240621023815662576318503217494953108443770147062510108700750806162895357266595280970068427242297579755797211668166886650312535452530291753573363417104746144470421217854344450108277889327752603797595895298761039256446650508462680605407574008323322660713859523825763176727062859387690963522584297197683182162127512634363519562402536098621363117431330789268219924630383195328841252666610556234284224054691351442491703287633093497368635043684735179464604594163753160276859419832681196356818290449199050889728535445976815233674125666395394073325874487613356272397920545541751799992760869185356646487932626223260717616941696477784267745192850336655077128774856276732667135415337290702185381323557178674186009646072693390611005010254029207735001510459117940996678908788937477352659542847704715297836488239738369498954732323037088761794891219794822246593065803300554116271855292976614832884263322181959718830709238783820125883368804297451015007176418627176111179638862506657253516574570493915156903638145526147281438000544875863525149278483763808737889470583660070611520990550710401783626379160885502600160543339251597484451877123689238179264114909968627988134551895606109592885795824987477877704294584887561142009262187429966163067057954412238071041998822491463770791359728924207671072246314622098403188512042612229930489051579103031932220443999826166595083819351802298103393793236061824594434745855383336906053832291029100644973168119324272675837541248775073763687389688630765909808401674297297969014938682329434152568868231819319477931736561346846100223483816551450771514013889089809802994781414061816002087225952124947872862287035943572649072159189048143455826121441332638014370074404092247964555002732070338804297301599069916776753484690618963628505084818042308797281695863850626960612929865993965340959525186707315368759166000434647065659448660852825364489230604320487047373833976648943118972234718718040128236868518108350840427114563240110540245990799137595966169667168971108764261992966523869710129440914227095660278928007724943219108761708370345802474505983015451347911184007522596056318495651768423111297434429995770928528858172009959155413321576658007693547190437445963649292474978983417584719250084514315520169133473581861985510700860309342952775393034889643666305284505676722175618982597667255826888769237790212124370345284411199661232630905826416047088848196803234518356088901573225274063778094787405322132826181042373946800878593916880396634837996563101879504607560383568789966984497385491288503047155464780517115152228870029516997089409016416212840642850137229990468748994209256423653005671382023906528488294854502408626043279839527585376984190975812250713689489906296991967910399049044538758021327759490854244436368278367392679730647994849832192263622476923887131330504283863339735033883648314845014272952200988410615560139137087132455409057384574113360034710577558312998739244531776992606505694997433063998493142250094187808916766801451354543030684497687451579578125208117500765293240722068860123466012688599119690730464748849957553360842317890678312885999185782705743737089264410709882145647547047549208972648054446198337567921714848130254393439956046197259535900582934760583744244352833881255320654010885391805169746028291522378438839374353984716150677305277057041256159000612409846422415347862190453053109942694195996286247339869882787465546515747989800164999874000136500146129690817683405657183213820618344832207809449695585485080777186621860979455461928859581336388953229088921100635408124823088053865430776336363680874047296480862390947819324434827970049929182585998136234312172886536150062838199918377066350225611615742684035441910060624231239517307634357806439173193168524559883810084383274534185264878145548620058708864225736103837818998059610944407715847449792798763104082969264554272020170346285494570865640595566370868697822147300304801019576392385711088641805860348351618858347414414952165471746868866258945488163923710076575216167971268161980334445993611457030499375728282407879204273610798880114311413509448446415233404306749113019111482525803954027085369574549040231481156384831781811475255092138089238101677162968684811341998316574431721725261348125215346631171534289837164167088429364092001171253645877998640193288174704513188120756892411863538486253965805339258085256292659466910461598698211995669441074836453337791004747537620828207577592330399433479651305844060934736694410361130366889987503143706852167543652911067507248041166190314884917130546836349670863385281868065151949370000752275587598073523405679373153733777370972110790236526714072292402466395377255722425433084460984416709493639691030848218976065939598722836481804165923990637361683839612008725980491205353000202393790245778128934320517526162895912452346050723216950166629854955037182453525652382051262264968226275554993034710594535286201435937427209405620989363157029040430472799777627787724889220231270765395715968813569306834560473550836773920756475708543356445835971773075828180388310595815245143307760923908871281144352916091361877956142678621855707540083309931597418711600621901685369620103457713785437603799701291705085981302010941534357870124562099414858629102017541084672617842539865685987633032284598004161030814015785477324289054633600898224214068890595752078370279779673612201353801887898602072520748699544676719363664989153358301376815999562919114644674196133036440860569196965696137546984306730637927792322320994570836907442358403724466181271402445326901891248153900177140348675939980147625318479379833270451455252242690413949728767040009221235914603092163864627507026561348773331924682135663381550645630740974574972411376660563637836754406247004013527699185918208146423592956846615090825846783796604348071596695167727722043542231028591097115965582993535365495483277219172641848496136861653853225164634595546798943467001296267431129556629295322371394274410407728279874614766576663818430439336947014753258784349501119573811931999779114432773877796206104795858985172103178237486430749717946453049304545205571281885894930821651870116287825970460984606564954455460577613321501547827904217056915897322832488112879765708783689477571745360079607804404275886600235942855622350018386445086842728860664515876044511600734495664411360880585493411684221470042333920328094749042201288263547601085765713032759541731132093945035965595111127390487127848247260604821585770903061668619543161657014806368829527079210738575859657304557914937222000292924360636995984879856379766792523743201222073694738470859963476462883456385601184308885483064527766580972275381031463465309961458750970290688490575591005378327911364741888075155429850964251243744606165662329501843112669967045087146279308926261984298790113384187310531321178661781212989708961720694372709090558481453831703911633472235815835800092196954446644199371468362254749622108093599610277537721401094814173457838721093218182962571758566305993695406074498512052957850297995197648111442384786368219381177310347872656192215246489417969396374915758080982981977471860726537885756196326084515447711429366518790757550677545647465001566871162792551761445205153608265755425274856522683145468925151310013582269852386888932530614088465274218047843109466532581692776738861290461205337309172968956995985227481114681281807980504703742017279260058558098362524753536160499065797244023901220274275408328029615205749323714959316352901948313178592685961656319917304323276574835995815260418730805643119922321006135691646730096030491659553818465077694599120259016083637668029563554065729151832906265940589427601530378382776395434932553007565966754660013753053709268932615830993621988253283060405610782711762523686160888707630780401309451789064251326378821427888181217624996421763620464210043851154409410227553352917257686264980057590762739232258225189535272231174482211736382497579178287460826081011479001896687594926693529123202295064004213121145924901909824265018679397310998720404018153316812550181518101691357500350655004946663903799825711144450765243066484228695786867021205655098596007242299267579388151854727478546010626736485496726728304226082769538400137662648098034708378192681652141755957305424167855155654141122420369189578150717671317851190773400382695153115218323503451652327897873071140904494486637921621211926291739915698252278477381089438786667870873104921759530498448403678539399667105052937307828037720453201553044697904486992553618434735965727228935823755187094129698459447121450371964216023630537846966303784328689891179481689157966883928235838482130143578954552253107915300075305053214929390868878957426022135442501519240895838787516840937274808254761773711894450521009190865166750471459568058339156333940103376342921925242687370224210387554352370395616292536485613124424860607499747983158023222893234261750153488138265019697303473198355998946433359426833881827466021645524179316202226706185030000580414984771793244629163240697216903946192944984840936066001065337768107735248804690566999062224341359541931340508909326108321839307269857225551028186899427340668593807812641076137091279251536715340048631282622191291925864280194576330690835688874744459774879041188043191911898502145387538554351775699892871777648287855670935011312959728563625846313388331026545909855029761845113009486401327562083359835240468970809842956395781985669383225967828570707728773640837735972636531061532747592574193654879717111061986139431541759866204134418827041816654427826238953390357128405128875957217146272990915518806229524405253816457076166431009281140189044541987323581328385991453387334974935157544637689365599907823798057126761942950256879952133980521725861793427300580483774022854551395982102275648103730451853818196258159752141598532298504814710950344495328461088446157948628384512867293239243353643148377841481212517697347247582067384110748786883173159736506538991574298477257995665659346043954965059140644650236328548120487779747887130008840334531748338340088370118168167677707869700622971093707033290992893194435508532236724034038772124861071226254170758274335376697161585961944218690991142441760616920520515242910950207062434320317914401201318837793403194254454248472920686029476466051005251520754329681463349133980990175911346543506772086507329285080676395498436392256047878034746447350792273472588635458661979780088263120925044638866333304999399448688799225420736219120244173009094619633300530477169355154095134661840605913086942358562108721219065382629076374896695072441570601233423503470802339152277549133717715227789883761606715885110994305907916911479474996525223642660361149685910136050941984040945785673941958002706638046936338287362047709772982370010166219329691593686775394893303211444088990423685238164659269073104677709606399236543473424057570188050320495760519691692431816061784400074490373798106489705223670057728349936357170992736851588580800262683462530853047638865265275564498577791698918461150518109434249542051680657111357859468160044312676195679275956524882534070949027726708080968607284533289317140146052758804124991942577264516879926096938690565655040560564354477433836214130990691851354875579908451028396262588801829271902774765913478690395479899977346659531953144843579723517476689206823447381817899521533830728762770933397116634757073012920139205760191249433028756132119126919035378717506994091774380307114495824680243320689006985999632652073395393740989954265942737399797747163065890503802164505931968188736333519384117097003780034060432797143092870095717712559373279484476947043864393293659589643528924880183343238239305265222524572530815014501466763018767483736607505138096803221677078765715767067861537590478181130007325512389395198410499903474838824993258503117413847214710292793976664097416463362434046250225063273231247827136367981907931820384335055272638596499690188167272300424466881553232330761727041913426437597652184122816214474458497821924652019484058041884046518026941489442552606158433134543912562860144913333761707049405646908696115184911671400252860324568314010404092275708475404632217884042255999755280615043106427080028861100552342020214704798875425963564203857851052352978869635382243163042122384280087326349441783134317638980531355719409033740251417924893683381464476088072652170695212658792366263315393343965318224957948788893258722672379933618048491441066830962287726181319156429630669287713885718286806611195439108961589879635896170304582600140614975481638177469785170358251961432608810320114729718056717823295240934407254975230366005475596934797787732832968961404406978746099662940729085661504525114791454497577370050354314195753740722082226086691085212803191359731498514810145347286457595717576525590740986154185140800965700414772838346244180575685337850894612473115759468925875719451717718461486428163681848000770675198863289600262782323571077405393055897459705420561378712271943788243885125006021652191830747878181771678036787765621092054494931738508947991666959700494436974759525369218812752725019529240635447113631176724351037026672467986832577658047683203196268459569414453149228052795212199357167754327276423435604406840416453260147399156733754687077380213199302078532865219900420299032615816609731624002697142117217931998108604220369518380631349556473123382161962450657605788067499321801138370985809318349012564114765858434530953384078602315237418547085546594100414942983828386543610731593839396554753927049822415415185962548898775212169589342058436400221885971640988018314927134991097729223362147211890007803113107852952903170679258581617685538503951221031061831749268450859733526981653364160792591059642074938322705187213609288621414883656042560488497076042771233223104203294778337865408727776286110692816797957699982420495261421790785391989577846659987124755150710215427144395439581469599503859695869287251177362953163853033042005650023524397827498585875486482211649597376207742833988316297938435666536148710830588277135251425614718165382932904683530401842580172708226894461528368271017255948906628639638365031154504034251689491320655442323018903418652829363344389023368802216745682100721075990469919950865252124657422021508650877206116588221763057636700814741510486224979029653667666201016395693937614888230840075578582937543305407470749147105872452780684923960545857928991774210409571218368274112090287462184622320722569993983359028710078038093274727149550298407379327656849639670730145334825699415105112820223459472914765732680383280765997718262729223942923341800976087849112034778502471957862482602755806465554012030768047438764064442329002629093603052704698397248399930014421345164198328223409769795922408900279659251791026520352526040894910287959331584119631139944554346874426923296386029955962165526321748617804271962150735272042131317311965372950822917561097450466689858236976429914099324680148617346519712783531320459010650590713885794285516636531142667077512515537685057951149377006787724801679334483426388424435610565279186402416234288285196786080777266341078083125572394750994614863661744575146700330305145977383550851384230893173273527537351596788589899626241176197264826103777498558454105375886751412279219613698127662548825948025348253775521604859916586641195662557435964253276313174935424687607570645157159828981086152837340219203923475598557119256244788485354260633536723974084661740264784303994918162448102951166353504946557994685719416885174794205813985244767991789682145505739114503609214246875059215628696936965116373162485469407987251935315332389437394493969269561204453805020891195304881598843883724151700325239061413986324875458772734655607614389757085378555849636061997819615193594604041879498280621967005500237236388306544146783951213684688735260713105107511466938823249520414575414326436493350157378664805908686818819724904667846216637847249479760071044571464065249859740180404970878717750191590621164802482920146205969034960085278556438827136629008332144209076880010396259677172999519502229116233999540630240312010545097599223047389259533771381532867857378640530581585142433571999528660493764961693418520583173719039334872080300547074657548001876060836991637360193943521358045476687091137547260103198883735241080432425937651324554062467183418562070096457488371385443342615890852235335740679831156386540252303852851916240163765810140853604484807342693751852928361493052221219719851467854155816737801952980503165779767828664132935430328316905331856634010538700640498881524078360875021010036594309478916724261314626320288699471688916298578760781573788777061800203394967538988989864864698493941325697153223759671060715310758759716083155636480048455858627131941795778478171335336466268488110892171185225386359124093926172576641804844820451937203852204491621121659524103838969274039119163980235486264144536655099294797109017047304638491623300280183908119717259013336070053920972780534142814281562023573606786555184071325969477250653295171967586925197063425935345479821595218495797929093568273708443381591799215249904599329151916294398036352391154307000201632862056368999797627059928002362256928832566696981455741084838276720897362405473673026669309232906874301418978321372534815852233800200915248259696725815524153064868933501981246514785660491998165722037920106597989572718537157828421989627357148747997956475031235946182870001377387977552719664677949770547215206359851162494156910884557833199597447155753641718121599274867910994270108985959102858190559533821437898677474906123290550354532702350504942233753350080237896566579999872425746837171063375483554504857941402766265149728663919008247181567612177826561885293126123071785730555727302486495871050942827101821039621361705064000373041886487355509761139835310076505837746338382910198938127342632998366338949821656300976356600767644331908030586498202310321372007330347894513259554673383881894937493120642062741124897597197647188921249876483765746823017570468460436472300050383353525572547938902399341666929835994834930365112340004780709634557276107284912052414598265922739976516850643000102069210904251332816598526111036746880385087205212232081434307135118089373686491017877747378315567862267970310616348375818636935331115814857433888006256918092777427497288616198914494576457547315543579362885005973995197078817334604732307453700040539871795378392468775766983268131912977609739890909856393774556706430650850921771561891980582193022755179147574673313049002382946182601084858349900490304468219303848303677967417703608523081759224372409033509786235169129168765731119240109930707509265931464879924774656909759338874183115278997688488147749093489424418331582260012924925952646619080021359922094595346180427154693951699220171678008523993876468278200108718907375014036606457926171053206087992883489285549910225847091562130432956281189427826877494887540590528071805422684560111277196686934898601474320294047526628779723370132987513288214980998940332736967306317250923057606694377017420571954148457609491220437386291255830741861636156900972267926235379583085454419276368169086709418798957547395489162011268183391383491025030543308516794685337110979127864067480837147129682026696031359173038373768882147297333335953351792733393126319540644899379703375958001741590931484583139883904742951890336848851610548552548715601817542118755297141460622479088462510450563839665902384447352261437865077227928360462487191721699105487406744710380537435295971156024934825664150513381339290566346309062904008485036980076939031757791532725227949221310323770726478032765322076634209759658310230377894741991845750848681814798008775373508723143792563236693426966466598376012288673626289267815539968168488140082940283493118454453779938018565475518215885826074023462287673258542666475242282171129356715578614036250442793769764716792183800666825099464781588600213193433246676248302371602628337908448016597535997022109017729067984632626567319332677548879436456289283969980638252777250593541028324569248213131035812567060964877240155780968378376947116261426000589295371596037994889909669174043015631659144591019536911803698795203194106403879820542965446509337198077129388472629474854444696607651211444819678503003386285924872412259402184307022660768994313329977855497271267359793851847153947274011821704910703874680779097871789034921365082102983732450120360436374035921008873674253885904769393406732921231385763970364073715086244787358268886162265166233768593726777613457651057731143280233679142960027037864798935151084896563944924575598772936645952264758422900972073172251838887804385281583561638502778765993765947784945460210062299133161239430997799353022867924735676324310695889898690922531759574139872331507933194504683101555635039633962808009242958487232877090519917805415400413047470689644368545099434920209767427485809919511346248347763840412675939097607554696084254052793561265728204444258761244910083561552260808251082269154418774584222511994142248603851098840418698754749799185322951856211678518187397597549935885912290823570437693772782919036074045944494495876546993556396223226879955996335983677163751397140295266959533833611888508082928354299212185785631049349811271382736577842946657227212184672390402308149369125041925174554567861668756700744584088444194756843265055786433069912985197938493289662020777766565192280303802952141162425218264054578344965157188798239641292023755416317565516470938244956682884165391149996359422360346841185218223950344718057212585625457805904689535588551262057578789398114635940044224379101968894009960574179093805908453734227841232921205205853783000623149022366941448995770070230297169656879596860551655830849312417029069169053840980837855330915702654950342897649818504125995081406258535769311513137264435167793661627548385810023514176246917356512445429188682263303769593214617772901410149797902838348342873126985754575489000502200304616047199165001668822135819778064601802443219142778830000355361256851317509777424725711863767866006535336107398496460068753202093931673984092238927938787074998376795223943633929951281367952304439170707266902179159939069822416657577810251396555942152061057606044171072533858317538370653886486090467609822225585613524406470743298381375055482695985680129921509140559064749579519223430814354124405049539866375260045161971968713292262304611251112997397559500919314689931658721739110178264220087520576912433381319876076778063908641138931999996991119232459178490421504876297137511746406103887832540696307407863998971259287894228646551045362168747181080747692433842899027987079012308224243183293988922125761051804664728352350110034308989631235259946058244443496682641767238862156016620510107686311597645871176878574383776135689735032455854921707477220762158212697946582597915164609152226629996495329135283384400125359159488970963519301295499362190623118933177584821780389298510167544106009550134521600873382888651559818802567192823166992626151296205119697865785270101917867489419139590842195211300651939079954498187955131193875676984020343805705180132889797530544967546475687569507347861511932985529556704340130165279727466073201063969982316648368580318684599700598798926337759556931686544088274364383558302214906962218988095148402713744203552877996392728840278484617773095463022212027838173803600964933678315024700703816931606952752372665735517952719541570914781890900882565628731853322023342003331117937381020047155017602752877173938727348470492140330247994478541697578682931416768926718724743819922808623029218658909644281847685204048643846108842566635013980052233874128214637177185462637282482981751052493137400877986757320536692032015431433564328224969152027878087668571378438854660519080054534087700524429084046178987739365125156816601693451015470264084814232523747730940210463395550032817753925922382934793011616846374518932734405582124769172608089881093328166025850088957654728565137971278275108019457857506358712106418909695759252283082136414490789886143761014426007156787456181723028297655577175994137849088061224034000888352431490164848741109540948249578682645207773279272411983330335955381337473418520853784592022103080242056774379440864110083339006889487039378729933169529912209743894864490207116697585020413971936620664914925377139366272465924323798726255572263526538831451964286399399807244228129188202754440591717481545152901726513291673784273221873894113423050487973627993257833929287422136028554075714670657604007845237644110157280824415252323818731920566213163842617423195347032503676114813557960055490892564307771390063463911359251082940794642020822340137123397564139914104277947120481129434014336400427239775149948275664376618965518933683928607753686858246722513999147197929591280106501429062288934964403688797862932773971388746597731625481636138879861292756992918362402408759471908919954770837182040539122310719312700558988093687663618478245298810590426429337872500349619873834568025980490684715994487604170879193829799643608047894459336857175309042629875283049043480881683856267438854950723998602340913483256216219671517104637092965732402829003287237951933393903183413071325167924247163681881806919808223381178577487705546434439852034531238031470761280476358608201060576531095856022236904603837589035799492667726255120271100476286135938740541555571684933830055220788320414341851491535142282162272387745667261260869290101014007031821962224849052155116684193751690112326000423074961756029793939800933860345391311338389740399135701339806896569713995432801547999230896967869384263880783206029208516066956917435511374116490560553048304404748604051196244193230058158477769131209159221280629549818789103879483605133582075176227687643957733528960667995291759005802885317267056519013472411233290430595908445171668094785947588541718386792028546987898624010105596063372081201713808945168728216607931602130475924198643354667775002872565676520604011805797768472137785427898935698301455370838465068421896700809709991370439118321033842004397197719664842491307909685534818200677928834754096712402982787690690411635179427457108072152042513674823838514111679383158136311738408686024019680543620200908940143239990046313280030347975093466110431613413190527047538936474242052223618403478822462829348543019105053953640233055628407070086942212503853007534588681527065814887976271375938496569929040964632134056361370788473254136356276405003244491731077207384568501377999095342041706912753900036898018382387975941177142459922151935056271308701430206729954940181210478159333306015146037074827172951119947911057432432103287563746478541945130785516700149576347058706162150272859646915834657278909989495987651702407995704206751721486283735923285212148599077023898459517426001278853352377826922894128651001759288582547980324305059553334640327590672220668047466960972948469304848046797792100827509520772726078451861004814309014037340228745290536892617085063373129393139216344146253965763367762422114161390430451016725056471544644085712380400575308307194478789972568191198884704692030243011763548992055030609680524587972747518825266890712912116052001236350105712509185734865411703907437900563509932589030253226738184796943235720790721065060421792549761365010794721811343974425386346904229812153720644550738929889531467173344211383040467628266844004085095866194662331767539342230146349149689861812106157481015226419603499561037525161126964382034880199609934066963691859513056687631731574509821218193133032726319910268036236400421674138623988317793516322419271905517615461557557385614854352936332967104572402266715118735981199601826778556672080396392256103294749595976890624991695700147507084663977654964256929427858160475267214851742289623983160324679851708777783560016391134739097135805679472370941336557574735126886642272400055562257700756937727530180472506107410619802665700795403642609620113392374800991725200758636211132689833267212405742895307800326976575676564047583134027685821505815204095228004454408122070420422068719837440773361967693751460481169007075115261452161332658935669846418836676242580456934165185303144887425498096105854181378435745086294735507502663659292533528751377453937628810611606946591007103197503166156838777274764700052579945206418695901922179382941833632729601237438780314239195231443628468422325747876168041849438053979508173923971597685833777384841840334689508473494980519646263965388063982179331692139661261393654248501460236573285564092875078267785591645334747204540853227501867415413628229362444254411954527050279148344968058821807134588145125516596146964665584208815989373421013860470765869720530355378799775698107459844145042949698033786766808806167160159316748231448341731407182997136708421896614282464149748023981363104627674464618449941120173493530821210811702092090159269386802835592382130310269274790025762263237864086967196552360714502253077807300226146057359701945132294714011596643229429321464470147661695267621092415042055144149365078460545948138313333135373579549048124114315681536741919369029147252293944692152117289788739416521139886759572037236567484665685440545354136898979935823908373029526189510030805080483920881181967835012567923232553917061049928284882747187881701187207825517075434734825245164041683282119866334776458409097046495739349347331931880491553687426138298213257406960499213257449550364589025095969464581114541631242119592243351085680265263960307283293818669284092475456085266957557178794636059989391086374435961211000199884077168197956258368254399575322305230460645825676694797508503260008771941529069737321746263262641194576369644175292524880866199543553200377738376812894117712401862444570121393305027597571236542211525582855512929698360591124314810336798990588188855298553107770597818747299860700468026380142264871282829858101307785915879680761497173810299198918522076491244978714490382844840719676861051966189181765047607303083503619965496307343847198583852315554358769876828429133500716641629474834737540753149041403409905540905792360734580157369195739516833490587180463715290004072587629234684471907084267669763198337753115690991649161244401801832133486380963965764859055089262231177619891375564025933003898301269769025904037278473883787881107982556648329906602951397078679755948671513762390996539582930509476237318688067562408374747516339894621161799099154906166571060622031233872655312781578794119006108302982417692501016838987551815398359073235944568510726106037192404792826516937256350402099374033861470841432064549384039831244852360426966569088198925823685020228119909342736198532479090013265633210074088737475556342870461898223477103526545198903940994177328767435765238091217846857882184311575728830521620443293794919248520906335974998495830187116011816301900283215638902452608046215107329034218754044332187323899090791508006189200655568911326662775975471756132032369913277232893421629354630036566572726938243185812469349658673758194357891043466389924257531664827477013256522795111978822524119257298147646425385978150988338423291224937855820118339677146273927110988093448827403729922024252476814356802841651615276218444904929335471067103436185774842006378683080804633329585231385897349272922231078922610006312718716376171094830317900674172291928914202547222488190452647152817747275870434465495474990949096006838672977466978181386049826505773641957316070339988983944532886345573604313984505464329467078111144353854358441821121055258832137119640834252834811612240580025334231496915278561389335340823047695575780675794324776878110347648335635950191882289828371473940396492815530624860233609141507168122380897079271382434052164807928863583363680933546885767111703985433819502693874605963481513400960132944397250238645411247537796294102951757547506666212715893784240947987781146411749476212584151239154152088632057053609803067165023273224143110190877712969454946528170113163046850858079988494454110184329508164670619826744555260504139918705903951816363540137114823283307214831491054560870333793650531074674059158501503774840498893358143112022786141146687083677447242268263959271405917220995120629047754604770665158966026840696251003465367795679964717242388918394573497077097729380547468825659399835764485399315177944411420547012671790410490142409061893569721390895563076580225037852177179579838547820506387721944834101812443113662109867160428526026413926736927458812129646741653728728432693981486022646925934832253029930994684486998981887474302316213597663715561499805654222246778158346027880700741821872371750117746258278811745655563558975323433902784324428824062601541701339213956769127119702911590638600171927909742130332505858150191757476700801030805509486779740202983180222315988094314591841255891456991968267019047342045994688032343176230404229956113252710262783952513811932087019219185402476380768656940113087507845780555113228588406486011470894261222091109458059437066499410641359138924563569177715999033637271295479676589104920582527406951726435043676038097609736914255831619629954941933528659419236492904541963406563499053635047427545940645855815930229520503673967663083877902894923491105710595230860988052883411836813025275524638685248224347834154757167991957185726508324765232273422497307657044258448674647110654980659370866325082121019389778086901611702323032366746758563896610245651219927483343915777004766434006974128565430160856359074622424630820769789020969120181126723961745790157781050833602339931472040110173803899778315948628578966326403939586214841577288094924323901201190895088363709394823895987161841920957932717671901360926625851575952682001238008341017782118069540632551953302449974320505007300570807857251286719254970616889487469111979424860708403360288554810810959855042819902229880485818208387678648051006484805583495150141554457738166755356294272425057576154516394460636107694732974092439460252358361682847560802832040633216457444421725317709377085262189316789675689520643094866716457185219727700005842570267476397872603281744044585765506592929923852507501236882420635608885308259094849589251026696612241195657742363847965960474243971051884918851218540554443939676443322515969097616958316567297785774753781001267154004865427130246628781411667965738543577237693308497146058930338040692747313197385871235777832178269172101934788174363650676974591924072006080523697612842796282581947316951860980718856357479024323693348925974496225194769867288301549791574104796114163114954942464966603545881553644983711031610523911303380055660714084369560873709415153457880231807800618048980364995365650371953390730269153376451758492661035150741486165968139167021696708307317770330707035850402516162241211378388478620692795014940289061123627007084720576557168546136713146301504004989934930856105240124122027163711687897037752202886391315781095529778949148995981934111422878166108127682005916978443993761292989418155157188450690176637889606885797269142324338238803042050632281326995247951894458617578628318809124027869623636431759434240537762406795454841683489810170621328212098775541600157369475268909154012600505728757223988435029161811813878999183595767282332540120368484887302031753478900008101008910702046828402822207607678139667631044876065823890855445523180208939883421901220997203647629342856360696598918749253205295548667982591464384510390307172764742377947229154302642086961077006120224378752456113018888495027766095016741531101432122950915309152713111417642242343399671844118547511363552264041611317280986882493511018628653596402392588703280388785502125982513060262186784273687511868839216911143859546480297221729640329363213869108894650107199132614258591342221608700838445305993496390892088713764485834636250075706040999300519644505173220994151283459769327825126457074378324095417231270203080204033627010910074037091350431696392807468373027102981768984797544887571097324276544544875236588867392199081064987110507345122271862472383059007490445029249038388381849690974080885664053906623805864709266593904683421625458694993755528572440577779193526124263854777687281664040849507744066069521365902076720326115553703686674708013304815045572756478430680125561812020305297769612879247081572573927005186491266400746197533140258482199403342215610293174971744018955750016641799363572184397017546353022248310544087975392403780325277108306351241231404927702147001210088102340221275801112193382834574009919355825911082161058608361758479330724744160369454526788083865010548762519521544552686375899400156761492886141213448593433861051874251411556899626126506003313433253779441093646385625558384200287638313785635066367907149293095252616120653973618980395703031842341040319058685712928640902231425844278953949091199110627068284717834146470668917156593555608155636796130547456579663523969207516181239892634716908761466882884928934149199205491240360697346349413909852449157532143539364657522701511027056263449086401700671972680457945567784599942995342042443695968363036314891745703732519902231023626109937916403807273633159845761229623645933931121622902240367248789841194055593338721588144224105888894266081788939895585860419441619128128104336238564097743247876832847662519242239067713776784051447729655938608084692863858147109092756454814993912891639174991333374365384631787930513589456682099674048051793408376299309172594428857719641737066158466746209826380330382864529450923650711020407732776399014965661387403955428272154823392808793384376605483248872580369894164387540512359701323879022198297277122058202288924447706364052614996405520857910155932594099841917466072760520324445423894922511285717639878335472072976734110935503144184623841090031046759277999068129109587229917037420035162279642125712846634403051736559602465419908261908061771345665957926741563749252942002517514426996687274240487177427319563234744773041574786155557675818260295436299528594141454922611863327512504454045516029970276882531244280523275918428169210191772956567380048065193235151748410497874978095162399176350867268548992971003277714124547899478468668799890121889358405933796913988771554394387749170739926255735344353782833106431208176153561167025743684951431051160045852500858155577249769613272804136369063798158052696832000391818842445241229224258611592229938481978778148309586839467670061386137386055962527800888669123704931694278804995497304489346010260909592607145635171780771194731131520073707733243228128441089512063625838384223249267268317844192607591301802796466176535929237174857431366345116211313581070695928730598233586611373492713846349382200752946369900043940584892798565334201849980320415846491348389123680095713980184076564045312785974564490391831617790385779318411972382557644454565481585987119806933648105071606641275970382679796704367890011513549621321685066997338228681869163293384506338197676906768343424828120992413470783353056860528556284701415959468617789641502029216972727098902967701405309907272749485133644543516796521310142621788458614861718335274848531257521177230230226624513617803016584289247869682644094486160033324514349107088242359882233097515205858312225928106754839079403310795466220362372637975412532405204474987698933696910821266150901332914381876919025766229038894922131684071845727649682770610048122645399457109686752827354785127559937522303521080932346004886518547839800468103451535539896035004181408880708071425562818156749708274456252895762612514564804304048590470664962309370108636299938194353921493107363635767241869977542887635087330459662597014562378406392584627833767460523987300690679776688583968515075012347397827398335506013733436194608205711996994324412403328039865006085203783062649420930029408431962674139022369681244449377959736555026165272502411878951237715124201554463804281091972506846151131735919935864470927259540525492556235010431464547376609316803068372914759118052672734350803427308531304015241394730141255784508409021141414486037189035390603951620263085113201367609463247409990387609489425372183651976654544574612037402313666885551151356797741879477973011397573965326796606896629013234697588621386493221665016377949289637073902272049405414409147222949869683217019910123262445178568791191143724500082105912611441280351795313900604233002089655956876127303108347761005823507065933870046389672056988893066343481580503621885471783258794893357233007907404722858113539538278962429820762602296421758927621816700492530338823323209669302157038130983864840727076352808164005914561579851341968845333716712696481076098916725458086454144866166530884073618232856671732238774142095821934655453709874172647526871100274609437508769420803693704730936831501545679730387639481218198420360489608714998481430857955639709748520009143989491019073279755899156691451497194797009186888671809945715006244445280400062089469803399262295195811229394301475027874371552195079065975154558549716207169449893750564867834960593903581409742795320213266963938765710085635834459523909291699910305098143584046647082180073652679725444292162102972315385244094323662534550282653101070933002237629010660438083832017490497917270700071728994241787726643598053894535878706856310566159402868977954838618567996532991167554441616445340345858353669753746449674518002485376598016507917525974312123042771169582466983346825760502743028565024464908142828070267769112584113360296702306719546155426595626369496442876056787926740378911975315256513058906720648903631277796008187157452973759728293503283836085460522948665375308617045748623748291690301261670723913525712013812854322617775620416604956349374888504121653778799097073856354823063772861308557896710536923305920454990750565311775826223093191867432361132553035231837868324523868470326660578884329773288365200466285846965191233349395260055200798287568244442187516608583620042657064933373170046986463543982997299903904175265453385882968750099982834236557824215283311560116602814553314543318535562497929880271245870156794097231028105804606019922287783654427749035527664736211244690103773524142143495803076228562629962351689689305846194097627259472972033597158992168104578027322008506231095453692514555885843653412049681438100532074214970522835138475256891166819290477541840465994932413045729567052139049997555491108805788261961517193057682905349322149540447714915577353831863606355208894887657051387237157476742551581003361795311313728784175990930043671206081636326996508356824395544519989863002321011524435733875166264141727096862104771247384672491802158917838373321392738906443808044434827599843281528239860522501282616843557351193161771840379674245669867032121338247403869233890101091692491054834663728212118704400525772448092386060603231878482700125492480087025359895789168776731882678643612299641736221034612561515696188663698400921837847153363746982637440532882573971970554593182272628995359564292647179030688373221274059742075632241076174937065583983607536283264313625242247679271908181694553526238408736353362190497938120649388842393111619445546449651205642105661418608378573707427018854128436108985577913423874185313211339119441416618423040835762723005808879501591634950490272334404063067080841213527143143744379755299069760816666995257160767600443534855136930466670083503473246071035452848497571825269731649669258720072975068012132924855892416299606053463124222840867183832591956139866270118530986692964525240695710180772705933385242811253603040471497107275739114954362320778731945496049632601347985297767777452454981964946883657798769752876415259233106231556957744446253485621232579599026643081622493406434996354948314132778909079657718124525177051961085681878851373633250542120662775540968034984855718725754478383911116877583139300044009504376761143657278948439981840888795529040887477802690456534930992963543809492901878528813490855165370083467362990677028425947106753384043854068478157495744166781734413732565876294279071459909880001024593893628914233293402174289228903706464851116680609292141788978050117264050029789593025126495084374083628672752293100561233306592725068420432462664064027014069325900542741823885814342614381391515308818333455631608280292565655775577656351109550427417573783480812981236432356466297546971612698499652371444066304750319253003327785071623582279009237080127978794351697865618225119103302996087399247478683019921728989996673587265409440747906878757303369094650984841126388143238304052753752453647259767587151127537241010092056701332314854576420276327383960009257037985818534086284935026087545658599872629758042081598593911597772455540865614048375158442888291315405613475411696124258415766880894328812861477904739739189044757503989007356523434012621495617981191132302164284780110872684288270919996624291843608622298849510201432209424135438676255943191962573654559105958668347196627602603817281832521318427647014570059815251077167624184145438011796417968143126507100224499424077155602319384094321742019648739011064984870189487515273419130798109834178835126228385998244122301160666683351847561609716100548582817127591156333251771174418791716335486250242189587436138714359373649951750053143568666517314488182199943826082471897928051873171039079190571748697989349237410282299992867930195359679414839988381880196560279975911288558613930267553709275963052227307892892489301208563756779393032716248371809417990110688542866731830914557453177545839686791340635747745182405451552005460967906724097841500729337744404139411636887892107109370840201257185234953962929560218929090314551128738412733269673558273919829965083075603787797791407164449788573996027321278742726667088745117670757135862904719323613229955457782225871324171486483384022590147118278044056577803654862975067802401799839349821137100952484229953644822819285752803980843301382101359307020269323175128952877139874937120341774838308644081100933720392609189433747861902598852752485575665767170950932348260916419122483275842043607222910971829576139562434324385067658140635481358612907972727181749403482483854050004331832517992733897816069808050479956396580457566956287027377618025877273508967167027610112590207309844089243046885581112653390898412432515631767087283532473360089139811615280501759092653809844505289174983566118539416208538972343376888993866429680123097986289424967647497308572005181013743889439922151856604575924715317542371835318027736256966887297123277842535000343469601427684190211181361189098702335733250553926229351741231412333688939760492050563710116411775853211008346297708889239626888828033172089460185753406202795550377680279459060268730731541110336131095592852359638535144863800699789719149863187587829261493654898959939565404209736766478249495485276454062532529224174647496122235927245181614808305085176440599014988531174643493042155930697593201205735995502809883931666905977733377457181625869051611520226966310893831073307596521262400702614071650230385153872863705545637180256692992767245769490500556999879535037329844738485799338656652503357820531962132855685674260803166303228317587314024704400705469415823893575912647060278889489653651336500849822181709252932452087746243954259505999709828634612951890548204300263888493568217483678900300216130307102978012843866979134509436763666948894705986245679448823600725956639396542064897133779129129782603104600154596169286973483480218327336272122177855644722716412616583592396469578251582575254890645244551066239476211584081847145508415048901083143770211994815750243489266131224614930815104068071180197426697514326874815432821090418757148552652581355071459465352448677116721935908141288779139104630369116033359302102559446830694952791578609727597631742489233515849461608892857931781369541362479962768568838000666931860813798378050184860668974291139184746361231040953147654529200132445707066980068124510953403387769730354206676615758684791150660897631256265394102794169508306805950467349424898195209862577496167347547309415901018736137514866178658674762456610225164550854913589008706882838233177360862103472871302705375503229100008985982043327647186663076634005525841697331624859705812202817177021731289496731363027870966531362798765027710629903336381122714271323496238767943513572182678966094879065394507107583066982549484564023921617074258451608895649131044392753680354430897691423143955456530952757519245023257908828442018706266391872031038448600680494562124937439070650651818790519104251413200466662384928619394108585810863351634161059710451751591540784923176079797530506675746967360564273807269659479693455817704429891074533816176094358474176164868166241800675363340520018125095265690467316124148604417558932591465202715403756042384791676114044277769291774797113107285968743269519719932713755139890873231522600715175908191095868675180400254037167432667660858626030193967010758992376598118395128009179083712649506352252855173264458745606425645861316871739813565360584338251579126668479123802065844069036107808350850514283179763290033403680285020000623381172574556645600549024426811150289524108397458774149039642330210656295755021776011469129873700568280250951488972821286751174848805334575530786144872786351176009034077697984275786982587095650570503637935421185057786497201265965368652928215390225406790376753578194651727493828724779211481088678234589709110783490861337837582657577300100241554633898532084044589156868939384123965034194275404176291358107151740871249644550231905719458686141685101466180674525257693505282870392718366430274212090545953532998172303472577854701953677642249118979919966744007046542370408497994045263567751919071422236549865067296400495681141657958793285143287830723269780962887022981365410125086500434824979215306805175165356172347641802143422973659353696078112483424948402315829042508651485289848928395683310720855991291884558286470578058832149364518151539584178878263341792135629556187698755174742119515441710664701278290800229132354753033474146117846917452017409407495881161687755399809513170416240900769671323144137282586694140284878825005267227290558881959324971876612142758371333495602136934744614726855843106085165666807454952640279256259906235758167106797006684146222517488779603603631140314183665010690700364586836236653422167189188324523208546407166029897643432034806833192020703516488265738033137512801765000992418987499594966448125047782536787347244785305158695670176038904572370170750716517758076723450801333971915818804772629189328308296726625620309372898252121652082967463294109187475190908283210016516860229682284582727805780044422009535211558972313726336494474738302397224136286535351146286923426334412421288109476722894832355508770268430226660129385788244150792896528507145593258529698636392722320170715032505123225365563776106703657668173693218441011989957311845135656111001734704710435251718516221704728874748668638391476515553159050045512883751716215641051104280524066450522863240412947142692412674361117802187322264662002462586661047834867796042560473719342602462600873614814193320624699802453033449265829957297766151651111266535837768030650460374323823321742260650389075947411402570596926686792027570568502754790953072570960206522094153986426047349674371133371941430984501663496059451998580498647435795254745180175533482093620153739157020186989729257939070015966037249852051031345529526179091829151694297508395810863287156425152463991922378912183929875388217948219142026826432788365975024003009840283829939306556155025519863569570481200837801730083596950032919232172980777074392002095588023352791327656627020298758977901960704128480622542400857581935650787194606314137222781733856040480854293426063549909907508452707605480963770153208134642913998758024951016647649408781353445504476940038946319610843284032595259189449258662173394275025748998978608804744389238147939366751483633340604300106260539583096251230317248330881740625149777281102359545214296999212885993329972885774796689676949607354401255137621979889875606838726960674987770176346129866487236460055115798792938153803851943856563735728705197944715307241206336301431944315068215546110786651723514188959230949240862849093669582845567352506958800279562707455111515685120056436547133231637106098382384052187676951434225003152531524644164926611521277189734660773893637284408675372950906340413614684404885289842889273754907154505439496794936546659921361555846583335158493503860965076599949965283117919112226606576695521323414871310028000117221242222187775277156403037092008994410590095070693043936501513439511120787634431271413446453760256894098952805326807021693526379313207430765798994472798033086472578804909597663530628053995960470246089233794570980426083470334458944726377408749824175839819114405623311109096328044006787093168548461075438676397802043113564460739115238410473796290699183615320748566975343539015645280866851229916859970859275799225131983074103076626831329399004307188485245856401017791775908068425065135429182836281027188720441825940802116657703664776247911593283613853759612544785578450702017549498038038726630979256611348417522764183648083370202216756050135471018985268184522415060287583601857297208479705871186732065741929010198307657955065526006351436580109864992930471682269208414913456776633641521315729031542529558276620349066413839401118396360680910843598596476096546415719456437272469083307977109877673328451517944506255157245494475722255104100864643047061983484580730799024711185479772058982446753320919913589162523914735868525224090676131232282662904600091074304876636485443065481915705838727362153788047295214869997661500928479986127212746754950039951615707251369175724822660660684307707730572399173072203341070033101563849293123286715159248130300629805852610855387975697866509537208590011658128253654388383494682813111615098905052786916248536000480082181051975009201014258063540153833698036524569423734156245938170083453204758398963735639309181685547481067850231637361673724331511549621433731939150779713867708626606986892034928611849821620418108205292683183465746436325337044915023722111827433064882001421031779456515005497592107876631602358440597168933558528355939432389468163291333375787755354616555241510207851780048835047151007670137421547198818844995887509107533838650604427418072842388254790267267278500928884785009738899869522914533909048143833487509655431264449636645268320030945369353837703284836890984050908553101237012984686690160745392686674868131802750898910943515726274548879909356034807265935114766847186276484341663452593948597302480517268526188249731228397177066552749093081760283398164623005711878876588009784120158678409261941472116796353437141479450388088243182594940657985978838918308390664346838972810160060391572940776842742088363680907122696611897885790711243170223611058060760581892347928161732640287328045247716695880712264454387068404622163325677935932875612072316864930981931466362959927982833499990265412378487417449724840088158978868114171309958757471093690910708688146295383886782049589749303901631764977687184689265147135701195030751307346274266430673304108018728190011709915018310293420166080547996239042895888300782570958755422676754668436345429909152900109177226099634177627796833616984418715711465772640266217760385531625458902726742052815316408945950819791386458393503197151038184850268065574481172534221496011166357602916856012288632659296621865812982485382675847278559268390237003229887423907619253088505625909536445493341627175226845300357443113926776481795679118535462955263796923292905424911145241189562251113247086507108490222725855108327048127404543939432108082982018372072263215116340213213087086498516256387930778516692351783082215727647684350183485843460471037118879910460274606321224963965522639777051046684916371979784090101450710203471075868957803280867559864159424653697452229138080835211781510013030249212585692295845674332430151197861414385592014391944454738421209866265482271294323592989027245561089286859374437914280869685419239107709832137076825467781873774787782427495567668463057020341785715836282303791976202323322886437739039405629350693557448916185926716000528289329853979163303802800935694663119674940874156777334704086110569459073663897602038982421651668659089924196967397509043642641966110630823360713579065825858472037768847460266776670451723501728008033866251370922025717260958797017973864764708003469591991065458603740611437620191010942906736334398754784496700852287404533792175744790191316769708308784929797466001819067619479894440778936399222914427686829649377760645529041926846295052481842737379631311839107439957015144430265845800984730508515818133577514016646879375373397426074341603365437622976485258435794200850009777874467227150199453654908074532687008952584367005025234689836020273375493926991027512377041512438512198706123273148215734811581084004412650267152186320370116182117271213894178075761928569601978377184362926606255918284856086911185234423598278220542802295506882280731307529787153197440604920366467622034782231472800504845592946733216395781234457167715551257090324119108908954124647000632077866207468273863358999394471530675259661661491432226564524336743190237417513952305603874821759710651744472547008190680007085631119716233211304879586607666455720483426418592387273448393276026140212724271703772466852155199220510184402242159299052610233413076277698956639006890108607725267591118887365873921852828644234137320486464753370757268442576394746333891522107035826589239086280972684164927192158254138722772065049248584476619170962855308763556368282842899049966873277280875134027171486481381544694140536751958488556136237372708411895758687630749926847502002323655483069183852306539803943192491348389692042361561445188048125218790570004275787619758593342142588015898387385133214690562769781559242952654351092376398918537517373111055951420494445983139015843965947724488656066374824495985156422948698112458933246425820272343966391632239260872148845678748256382077671691531289542205153494358077485153551748124746369516450643148445941625870041623868499754720753257293248246921181536656827931268076211406607262142795987881074276152632349370811453923920469874439625413675713808118714706145520413473248765634008222706389225911616294620881011552090628588957567295068983889279589694093067627991010865286250729746275814791997484752290965215540121876199075497291793128880113457553487524969397341088512268666104894919339649883663481373496544103585273802597781522518563850817531472939735934738210935934131763145559263283592204443611320231457096538954714940177328757935605230584302923703207776693672428869159226725035254210951817327917494932113376020557200129729061117176983769530189419793365217009637267699589624634177005619930636906272102955709491969410638125088067961895972616323742801431948008901604564554223126038714632883521081327001152550869760431265010973062510960401358502902306061388517453070101450553963371015310728434536641492375830077960955425836159137618439584386430672982924280167215063868676666640045210342123893782837401714203899484603406181686349267271093077023031114674843325530247735542251479197726790626910692063126415288233253337295890722022663564025877434753494352282017463799348250978042166850122251120646386965026502557807463660336235835720055060067080468911056274003253096061287463913954387657581636262354770072941764128293096843241683851737785263542577259068718539018875619269103089879350280682374904945810672730711299924957920110269791361359403568045412663425034055670879907507369953655576575281148153956623654849260089077664899788698439340607364438005782440104693827470826118699555644326833312209776992477009997048524058175037189772343407158738404945264520248110776923075130695009613820315492960017128349274978968567215837130278207709120422239404046602182452931845685027931209894559780355469780208392415222858613148825961528694772890640408239680320721423245926944282591302645940773771740769030586580013908886591138184990981133773200421658974942218713782079309442139204223146118717141682635572325069441110134988712310063259228386087517698599586638722550066983056084687145280400293961710915256981940163014178277680113365280973845400136705952695794292113729208400771179019809625866725603192969043115707138766381166870244927359772212548074027155911113170418504890390128549673916572214114466291784729343340469347079403905537607035965979580059628765333623280935963485642909770657782823614299762246172892217395351462625518438076048097895597826515968055283991835702183103369245615642481733130180315879139935808060392793131782365467805956020170196169347265524928310055115713892446211036269089490476041707077146118004045357851522085051566980006138432850742148036577409507200290694012647218876845077419799187795129759238498823081251474780014406037395672209108325451291471928084774431225356866182775615060017404779535399867796919223442432165568488892299553116129954175563917743917341199146324139388914865014134456368888660000241492606432113607986085470808195761401596463564954764956151402661672556802170648063078654517001935611510975168760610443998583382773317521175661770848731198363216245669598347881604493348235536955312219624190472621449626078883784362351633589644541649060690175398788595817000788922072876605269345495625408759872105954931163133117632051508341119630755617833080348350551245180263913131252945884815040755717953068287245281545536743617682767590271840812221927030677352192338752393481176928426500754337621433201598881416855203455610695679948976971778726538218001243222747147053837490396422291685855001912111202844441000568484436854712198788422834306384975178978479705636500195370040492887652463168475789264501496727027078651870726735360753348048484764777774422746259063894782579129228360234088021929344625033569397306983744178661077592093979426821796195584867331893043681168970592782716311685802908082056165804521503521093342239892847238549418936923096644626413364468971507334755165574584925497336693599381863884087259020599370743344299853725767834754134002271079477150235933905441928219135514273469767782987325934857710639399723271585587692293150917827821121487657561411008625350348533066556492231770924159993837429238721696775572346174471499281079366697186508213009520341832429770479395583664342433035279032410861375330757687386872610043976696051236450823962090265069654440095446447194849606770413827541886002745168215062876611521540719205182068668889400224739471468817724859885624414343293435084015537312876953279549395613231374596176367850850681239627894988238788087117982377980396464937888772722141694571163442634280581097050092325456552016351889064173741356307342486399549244902163572040743235060648154108360213827747561836448531917862060039168621171969159160348101401770720024044831999755139986863545040739679168149899408699759609205936713899270048619570224862335834264617171822208320550543258043987517772128338691480154983307322399802868774206494586888329067882812561459734496676217851276624532323453947871595078118918075925935891567152410833080904245258303959502680554248170623617588337371490477360669065019422861376151349475473654580058378430360794044686143422601089032796736638444256876144005049844071475567260325294150538538692728672815667528524130116966830000106924016554590300267559809745283211109740780366397034038446139674780965423288582940420411763171739077091734214776162053600787802788742178770732919326771012026944791593462885305909172077044649241314792374538386043005437060114052112861548397621979158402624646930480432951751075828252731959387273229749209451254094651786806139190097229827504100093204564349189531852441721777281575231496415095213843728246458559939905570595142368519814023540318452544973553405370671941228597743090183323287535523797305219286600962696897756299406973635103260206198961867172661153367149026424938038581055094833670687843522754260607806627639221151654569955345276631342943587119084224223964474194082552810646454697482132418662990092759554369417849976599449376453544529723113692705637008189791075143135949984199014267740709289264333313817351711972496815187195348360751056079250463748659933540836809638623383588310210783990289611646743023295496597996135169380734686603032808653693947169557480383696926932731032840956105122123691357621397443108568530511587563575997825696594626507919709226567203320108023531540176922446351234809296601980455614288124431503477071122490627077978608627022620898756590688875515869185575107213349473819155545136872084430270959157631198236472939434573801247587105477329332683136732397317006638997484771451084791826274160090650514764402714040978083316797185664786069528989073883857968581460026842717527973423261174762861117938011291476169641236293539041951544424909644967957080965266687204656972492707006218726317930759101507495110787775257022587313938247244109083077268428996817273939598177378414650710996155027452326479068898659899935487720486290433300828415194625377989172909819089387902194418998339585365060934052700132301281306369645957364312880238192540822155012567708293936239717987787690568424524180544349582614364724745290832757596027496044489560842121205244369380546504694754270781618755665802524029948348695467799652809006891672286548148650559301593621515053762337817854325872714030718879989785786763235400974437907587832894404873681217611806929275858142008329803042934864562595419009538223668831902886449608914171814762919079709047574791682937878953987538991830004330456034210666714121425211811492308820005954003702597246400490333514323560820458910067870554045706928651110412537482396874706680918168268309200369098656135598406079406236731251916116403682663665608770327014776488800264304538917386901705061652991097380024716362964804891602659670580933562053807420974173876392788006376572901212188578276977796217916285003807871410389711928724998218705131590651183877595048841880944411703150591724964044064625965591548119569069397852141048867647587764637354405076023744618225663782853893611026102614291927790060795003519224515033878344337747894348861764171107201094569495907780313066139674494143185720231161350877238460213503925473002190799184295360178685495867212177834717809071160029051525335103135623345983040479716529258528650150579208035495476246504228251542840254969257162251135540280712393128395521338152095622715809132911582056555311789449991933248229824199478821512557049162266735900244779334244354634571688676884925321329395867813471032278378623573073930900810751780272494675483745043637451373999646176338713860985667317667382367856102127395318483494328051409500395169039307877569082649795740921441630921344708035740509998751939537716272748789290967985436339193533160771083561325719996014199018689708606269322011330551503991869945341831745149630911162458571029335399018193307375378508711671004681410881044703028097366908877069010842968657667340297124673278956314043448505825776898974475483892402476560753129991048903796933341160656484068311660770786258073737059249367773284238542185492080543662942617279807822422801569293865084399335485160090457636973397332186493006793247786110730457341002070733655232357887970618093391822115540164473369837645446896389348195547530842954014653274686600904553506647468186488495018845123547523704412636555068321654393531136585537704815260081300287371539744641289817912407590296223853657017257828693019421832667349498931409498839296037180347427189032683498372745361779967774144032940224258844003986040682026483004641525407951866835736463466697087170825249332423462564878923075335605438439766858430517684353160264704589272515774377404756493936167289883179811898000481499927540309723953281918845955792759499885093980081039172361864906626686485031948716188175787369965409700387356829872918772678681636934051378016006259298499320739046916773041774474726705835510903223954829740011415178063389067552153056341622649284928080243325774195728198019819624881712042325652262743144684803976093965813917579248594146875941371366401761333617227526676393559574453575774125442822037710343190486313287324574052432754681079106475582670831837915259374887158266597355519212885262587825380447007304698444333419206812910981191652703490411343487011898238858395402586297197791432427983316826454716853996396020907719009572953694978149679779181200562732659245606427771554862210373156976195685274526213414329145620045445520565838219747999518033375949059373932470163600049629789829146992985929682236604378882207499952408255725437784779799719302593058515372392151511685019435233956355694170967309407704945748022464978496585309620346993483183155700930776312999179099676042922213042118677054912312068839141354412398045264074616072233636884071512949628214935298560244063813099507290734181129503736934494926980629721052560875154331724739926382782457963206455429512152859060479661838369684901910316983225120723297415230297367783224531947226997222896847419136280101080526533479994495575107334825746007248500589224986698483870491674527073586469587738863754059099845652001954502181560147507618232367670091763718429638534993534406795887516706470113561328857082685069488235606751579187128527440888293959813943124371128676521991866315354289409061244832266010265052518062041926129848597789931530488985122268313817966781962135479528030151548467937266217988795987674448436741818931430007322383049884114588215924102641969432567996091464208058495694607388995691889602959973927861703496793574621688663468788178985925861657603441302036399888510886395162857094320783590261063580019522896894899556650762200664161857736505752553349996888988676884855947853464826799655093003510608881734670994462149967121032211954004596217047926719855100348444091990795919796333937887941649918725793404136076912211008685725030576561012798594352817287644330092072302934417778216628381732265347532085211377593720397466143179376889166867054973722169164035648408187748577286594453744645491368745388525427653783785931796642717899445202160292512011293386993799080241248285327507545447466515953181642525879217351875108895146864580241927319109959521569509968096453190288725723171251272630452294845155596286628966489655043572768176235379448826990148025859845352107808560758565404993256778694036709206557136112461475768200075819439362975747070155748325579702190586274698611928569845622218275219891477842449674933740410891635852766088140629191513126956489659516131845898316184768785011600646311454626350629658968400865550061169695425543896985555303350492341986809681859976332777341845105955298633320971447790420208137677945107178922144315733580362722329777529811526143239383799509573071320951790850528247443679010190646438609499016552309541937418914327258280628768630400598676086033825566807658520101948480261810398688686345994892003920827953326547668593340345004339028359385370078633877488153977909176443042745555935774092588169697304182913221230720609879417530365969139113506265067136087575675695824664280305594413114240941988278245240153685776817016777039827708600716177138591904145418213845506022842399369186490657469479966061673809731010991595788713679076627841208626155017887104910457634415408857631580485081585030810047118493030035462334845282531834151648326265871968876827033296161013239785175516592982622971507663146658835196641376562063740787650428343200458095716998077992570502765451182259714633970513649051577529306452334769268138228884969182311880289090418269752377639663855644577198819010092476383701206275375387048043109449551790839872203639275614598625457299891902970019769577676436081034401094579683681275598002089229217297631484677257277736788338660997365701124421420943821075783618614574765136029969621053286501491791472164250048349422341121093406104530301888040359920885648141967721121211426090143379497569048921171203109838133719977918498941029267471933439220566381284164304700202392436847275654504440073967210229718823520854294535533227086796785803856183808720723878418919358593627205823288045463375943558680216784820232899322832099308226930576997500856469053426317293509372627666830938451051013913062462232446010679758193829734728860060210247908632296035222471316134441396209126654327540664115855016649055256764494628115712513587556347743304105095882155474552263301652223851437477956168641469483285979592146686124750460948968066236088073826678943105498810031905120820375743587509903417881864647058597072596440739091515750809747474251104180904042778006440292248916337806812005067486293916886409797625219444618140384035271638738639223214586684263690874133646841514223111132976984550108582158919620225980741236390478131212276378113923114994730901903428175312710526408682889935748114234980293634224439331744069902466372575904366896852140017161020703597577292153751497641468573576328931853601444209250533566341417904182705981505265270611415823048382957969113837599075260165280325878286695541338323787343077944733078756030481384981948292833825230731730738173018934174203837503661417923397831395527650643925643792206102830362026453334044069426775061073887827300733422947965976246710340401343732313953986169395591875941195940115941976184565370528790981988491551126063709870765549203471095532277537722014977391221337905809953396133615752284352523750163662108210957956218299999530311252891264347198181609272428812335833873375930106302788687481764364031475433408499457536255721600135227736809121954092547154893284982164560475102505420314735804510960342086686573320426225446204182222583866674255741395334714625094853936414621048905580068187924371331648757966588304169752596569358178552983372502197702072479032588119220058767430885020008417061665023871728747251786961478772955893692436547528168974801130840299238437142597556126855803609863714958876156926934720122095400894338262472536739943982107846847939838491152902231911946129446766441574284300238780585662820427086568068488570621908783609794780817952017225699042308740043710826665154401000776524964668047642947704017989342127486748232554329786129435950234386783890436847876406861385777092189653524750873149306372403093142810324722422830480069697034793192157965231801315265291422162926237394742921030142745799545763607917433299157064638567639683869026675856490459829085012645919925781752194431357654291022652285464757148029839628282247138675985419140052525571456723784379450568872934801512026338408912142722808277935457182291961882793711106615455885078383153784609673329864400619584170955288621081728781957342474006523261695158782086150031086725852311034689994295793848436188244126608944106317088908164524549982826795823976549742013765814291288918668867317136742813639057488749198826319130097829432011802253166069081986203982588452850841736724302231153730755090882110603011005360918412040975281291830138441723503878120671824045837103655569283964345248818475131711411003678409925396412388635464771768691662421690432673216163349593292384653469190079501558501277300656868143427346721972999095074336231155076027693539114511164355577411880107584008691169414900303459640687814212141744310603137398757347660534064938920017151952627686837481182252080833381973056287742566672194641639509908862208627571906476286059406132517917968774489759441713215998657857799431459492832855128581262547717821428701881074048726071130452987035490322846255470280827377394968297942626291455397037301475341775064765792629678542726120647402400591351469152536750363382614629151595506139906017440677853655332715751557903919114211314467909447756451667609001128350018772619611239724097211913354559666485756218713300930829182687368421559854768435523531373729601306572034867902244586021824315555978292692770052391732292115376977591894371901695512186631578637542904083723006313756316664231298964662998864641344183452640146594449914636720230750265099098874445831674537383950259425347156718103943522304032070434322331124413490867696634734024195746755184953145825417962469198363012333568144698338867975481141017245449741213216807385103435392263914234630778993512804240215040493696446404047990233074979945136069840135649256351897200967034091461651135661734385621577608777038362845633281952300315208865392887880476329592467601023213863202783648258706389927535815847132405204383253151836111012716162981284311701075580029043474230292265478820828863966626959257931454936101609250107175708684411719245190192542314536982646687368727729998166479359545695542871027293432371273856496348524785378849707681730824322677950980790642115439625899967168004514362862888843917593220820163748887372029456267124584167218521511929425443444944950933236326598939210136762216967223394981061044299275256627579943249899571313108406905830273666989304104153809774684784019194937649576633011132023349721360709801474727888181822921501942444461800204258250687468495664732557773537927259626857944162612359484148039576386933501718586914704763216030440770746494326030658357327885295581114441698009422692813722709137740115627367201776001863568114751346188172985563074460159311714109446570395216442273071037817575932797064830447562138192808344820238119899302081220563564381408871552943171629089998885706353097049439105611380874432590783020410154789245062799963064938282166962279814209227915626001385820953238492475973461461432985304439701033974151908363087983505336326065010473883795858979633895978431305856163769449361445185685950280770823427492028641739974908484407927111637745929875730623971033028320150090056234235589291768453642677073077377696792637851366461395935530546030291723955615913800872847249759601475824922414846241029224649388457392647080837733587123425000125178983878536826267502649786941898867189764497193778976149008203370654856835983491613994991467252809370964999174468494042457528244457647668046696700571035861710868152211367116612008848077074908107004216948037588610744562851301723923326487408990292112915737925558647365239562942017951371064158203591593276158174397231822205530739670612098685968374338185671989684287729108372019335990366557598267896721421442257658916024040571991413828794083108334621054848902003282564617815390725767271730467062771431058560042416788226844921111080550118406707728900758666976441119675252753163942696520907170996274892001267086813531259266628837387854627386382923897877357377254479830730048810496802187153920432052330443702878838074433759879712530793275542446399642065297304515101954243778955328639519834132129050271553435530988528450760560236278372068285229480308273561086910518266383715497666760729221623371040830572641372005015684707269171963599338805823426646400267136310089130717880371299612362230109503912253095054709592633925802335568590524498833073108710925798309337472997722205721730706848086313886724722215348981993310653528532641655503318942800745101766073761401048804130205385659080155026647954563213867607921279936817614803126029398185405106096832826963277204757082308980958450029381070816308599634120361157972507907673025854024214253769325988638821096713725813937919849799626576933366147978149459778086374626298098969607487083333516205859180229767342281445420794807493152054279632078847213243110902314955504515937350682836556450946123191390310919950515939023876149007960466108347580432437887912622987598126668582191769776267138148704148848867966587636593421200860155540319167409255906327570447218577238363329948517745609287459052769168070003280070363939760159462419193699518092311013386719186925282828038210014923507457085590911923070131231083798903563852194398349994098125845244914982997291126345681607671454572230623355993777785268497275172269945538165860551611877648150056805793480987061294821893098270157503508992984420702272673268233046452904079569286295379848740464345438038655383118217686833161924700041765309102693083415173102186919293550195784923066772153569502484082394881481733205983107330297181103686355394861481178730034648106684875787747100171911937256484950229386205761334572086810631634003726867857486057363489471473192113279141679472393877519184953711333776730037366155003286967580724615683584598386245612220629585018269467320509413360250449973222733133604621701709306303590367685191768384309795672664196433303872971190697404332336085706433659636941846358917773106793281519281077670518506902423752852657063772405649599379523607054748378489229355242415266158259889362151328864682164872812091823648376708967135839071268831783144810190610748202069430618408635953709462750898173381822502951470976122437767009801300706963221351472747542593985206757422816506666153648222331992318830024143143458872815727613513812375924213755651810194716492496226272765615483403334826720957516201386024781254492270906332348840792007190602475128039519421286530580752776320035484014948134816996190506847540342414977119008792604378993464202404054647850543027269831094259138597354112140837999639424700803087072253875842903210567464794639918819716754261272959602419731195103825952153789218233816883331420779982297624120228692991915276166548774155064052114370108743743372011849771860486638204949045114186890459101089485688569010174271946957955638466328234856323106773846072165799932652378757108956499889857043020932772974782474057139275231434662886692459049013647574822440006522015844684381116655206000682127945597942069311374707824768313092154058305675354898996008365824181514864112742033262748956256337137182483645982094598797175583771446275806156059519654375998923747915064991321084008438059039394720570473441839594353812997531734008950019971654949370978528164387154650596414663275839582772115505797340739805667869357127203967022184012830781618324983959260783402228793661846990796932364375704223203827927444164898633426315736647684750062086037125994963483361113313079075876079992073664023127073853530433746200940004913830865866526111188689063917846035384578678532841044802019228908910568329282808970871035515448280392052671317373512577005003082027301726573495592826549394969383550379175896802469160151963166364867458134313627177240656235293978168822518885261654523968385163543242807544109130164873094429238767806678911013251970463981289912947954234611009063669409910616063313947326538618068941254464040788003973130878322149612928030150388253312733379993114864380056665863091289137859470748570358238458376804791034853895142881282758252373077394868627051756688704934760661708815041840074521874750841910747986477135636864517573579549446633965732166598092584825552045547109246781431966859814249528727804467359567679256615981946259675492257616236862658169505505118046669040226124775235158579018688259188814297538021942317096961531855147147489256347484724989996189005344142026738323545308486648582243769321957060127555106809844957089397074494047381420365918779501066403223090817660124152304812029328554554925325285677790169588645715069349246222408815231415239999106178533800846598716905092377371740921105844936360338009603745145754331307808432736115073733305198781477160362336739385481753873388180609408440697509120061002651813484220429473039106211661604766057469486127273152317063455333308059629959622783238035016962677971341053197209874985597040909067354143679407561222030672801752543540115381532531669574327432754386009090510191018869584873526336118190004570025796973132243568624506056449992446003497658004691469767476228756463812027850834196908321160545294401045709098556340014435822306545418155261588575647517830147496806329918680683978227191256098108651729775664650950487996178001764196166559447684463408618845434579823599784921974071039276169623988148843259216689909834125484409743350339148710409095015448584935256966136051532860151351917950507233502434981921218748114613115959900118547404663804444894620660562325808175070382003774405121782672630221692109356872951702795330475240752979639137598754848929692553624297215924214984265740681514401227900138944806440214910366012346042906352850570626213875051554272573071938396002981004666301773769242543159584631280520425223073361629314618200604854778211610840265903450350500917138795104452402112348063656456353150273504873530776420365060536485324965241296472372587407471142244680250660089805473160248382475311768284960519531768212544492112043343159345709613484639604676377817831158409207106428549294152099785953312747102175188168122863161307688457600467064562207607651681676185210656879644320280169785290584960205821224228394679771487461911801863045186039537361566663190529302957117956045151710282365760943121674152398653525635600646265806691439518702757268002304687175675939596669269508007323846767274710753287202882861915636384248537458145910226381124875828807982077985184980276219000323800105770718940365465409038073333067319860255742549713536045313982793305342366206088087944083016735242929381270270858320695004814956259704611003652754946226780987413730876884719119037820140763114838160035245106189002947449802340844309075314475248368906590240591943321977895432700712232543422263038062954339513426514465852294503979935011019563036313521967842168368010409737142305587830194460341423559737575440349959580319279949309445367956434249851828234319777891285990148542310836237146291322316147416176943905395355214466310072285181828620771051710551172569161045082547352398050521605154352621079030431760677756224746982586329238155319770600235743151817594771108548602573146636985566479514630518044158177930322988272429554854301913977554952526244482894922158027117113505518024351326061418010838956859921269522231382525120037586465924533189995476029578096012218758493747271280006651320741704812135391299921504363000742319742702221284309131447775523270856809069483638764201239059800389901609370620882360053377877228906959676701303917194501791195414300296742562223490111230668946206127266587623256089249874996824080128258234507781791596920542103240720454660826393350607451527057924634188426371868412703084578607068302167212614035776504965379871240061123292112384012779631204086344430068218360717128919980364819126211329896777733524982636974881214394745714550722405448055788616247096949149354424448095142184262337051020937836439904735277742103766106465938413323151633649989133639654836670169760601334685806008722452702513851243113329104791665864890637183308252576460678792865795027586478547870212852554288381702320175238653743279251416979933559874910370356944886630751895429107462986243247980615751456705722359583122266819273284240516753686832778862775014555964274514036782774953706018731623230288845516685652246720515988030729217617268748989836255689719303036810599008596867516142365733199328464169597973308105202852750361081697750772396389140939662524186316808656044591457970837548024310715222923679178449255754099060839110247984262067321043031681550066175950724542194120583702415352040191674929256706861126062507984471169688470509761193776214928437490527402120164851505570995884304535198193487131930510083563262462854284510767238164667864975110667300502515944158697064148789267900293026190846971763318623562177363080883954964497296480032531504347530035147617963157413203528169819439304131858247329938243935833829672485688912972726201018694700988038264436601050892407784327428523237536399826352350377889624695176240983900313482376023548012333051501854355062155777038142864157090882192730225688802554953463686981875337655760252417298397548759663050229637436971514982413153635131637926216278690490009465623326019178110467961242225164295118181893773582130388601082538527599651975309106145978199065114950730773300494627586796236210116611784561999541452272512366651089837973331738074189644099552054441375658728565993818723576492631030799904356686397259629575213403730438390369708768281000879557814130580362146772841306619875041713540722625943786108526539638187949044139520269651361261820966644442062291103136215875511997633830294740951485810706561794820742182120758629288879928792213540414185450982526212514544711760034649867735803674915998045591845415945883243996350178433716946101068095320700016751577696201652283917481975875854047998538559221327797948579176359980926230437630859835831371724292140384625287182888962492152764081830688692490580212750001830567941074655942307264710528366975982296970438887505149586089999862946838577162379704125155574780815370762327950149708396966495404061071222933305539772797136430964486986408368113442336213675233724885248361329980080919026545055464352657417888294248167889450804820842718081382688238589845894913164138368034755555848702059957898576482470556220992379324724294353280795090872770261847784035723274804817479984573362544301747620054535171514697801304638308444458471808116306958989097337271132974485390699705252676696560618210986365823959910509538373569263876108517759605937569344669303045160235104047341807755173750386165482670475052969501981849247742225462658065717040495323544077349760413305458818887795334545067544318479362555481084356912570714548610527055745241985123592456465718370363893072012182418258604980495703441995988162064019470204344666840135493097769913547462542450669216011240207805226516971018005967218098240697374626523122914914891694865346924722790275857752045922351254826398741212362520717042985306932236562354219904506105430220844100251909500124137492099654688762042874899544455489255413021318950378348092198552605956551965813744110537672262764808440554369482436172074197646696744071384060578535376493976703336846116431422838126238662695309147210777777184719655185182066718293923142158457233252216343860533556588289432043856334934292185435156387836760166081654078735076036729220808822991103499535950059615149808331565319216479032209493667485537223432613865801253820861327095167759134420024224332703751806541728630370425852097862049558322831364371169408378704150762456012846421618362112562201629353713550539779838295318037170090307123968329604085911737955466393220309692134900315366960226731364623371086859048607607602999884731177677511785732790097221676074042752901692732907475078965406241484387880802405760294168065259054164451752945865766828900640044925527992797763505103002973524405624642596652391884815770830143323339727472417745944521886883115311440845867387832940745732069521837065355873335664407392375611856591570576266998711688852710291547694056557066983855637060281147862134334627912334474650297106702227145132207578297822950405882939515675292414719687566793420482945658682306606286609059563946465179612719036338427138735112077950103195979348622509087986203962623440846091882457079063360103411471268559619675825046961061711879235292545500935639057666501696294954344362797045599335892365875037692489583487383131415320906904710417681239434622726883683543657161029353894947692306951726779045059828331236185681709577635498288566157318061525746662226818381414842871232194975210576426082066346236293104140536522997777871046894605177391948221038484416298480793421987932974899601194216132311304114502908547635093410215555658945417475536042780442553609238239504055058737458265844866358561963984501579700508377580804969542907881641374380283858709728465684511827720570700713365349013742327691514005137804206508906769655995983695297456679288385845742888979333773231557938783380114942732615638974560005833671916433098083088356661416289703997535765415172565295151825012826520050738614006030982244390335135191373433635439041276884208410510701875320058857382389773723066747518814759466199426761270854015257047430696026625238808302744288189184967099389198351568701308327873821278015237440923444353968882272464656720027549823736203570378845147906439894133953879925273180355215328929033328928659516407282103685875426107483657752768396683608736064855457430633559371264222213639812650936673829239263075241466785692967875330592213196691095737140816350895673610940293808271505678158893695500773084856622602024353367283958442141486097455937447989997709829377071054770166263428809494468269858439674654743768278455122852525706270803297779312199727362577402458479902615026554678175907132640811623191248902533669855859074727324848139987110978148043537569488772749269592365783630123271669756855469200132103173728464287562498086180350874064214449841326831112118145899659281470072604443620170953270636531030008173318071130718546174931171814748758572568319767810499795369173158955059783938197031532965282131914996113002032513875665327289076230327786410243185755703140851354509017596238776005711069300487582459341609477503693829895179397814222884372938999383279292387051387343786509518429657336831225165391579017008628925210065829905824088237083909676863677458383676560633366764791262441450311438416840461769747859779561636821143307250121314145836736042571178089376802287546081449875695723672412991387319865724451329825943372095067857112246361649200309520386051723709383356436767708028550431323055349729010335036525863787636738911704798187698821125872690686447909951364785990011505306663086560398355361142469482667389526754801139368357639607931856094416545753462073309289475530029058934348488329519903410101717386574712233723714287326533885280613336004104380183480786700505204549619194590252466791011201742773609261418941456368917570822118855944699609473917329889248218873373709299499702022477449967262765911501260858782546586817077190018276767329674927215690850865417727089797572842315842317175452144205192397265308982751786582558514718636248783396600439489012858827562062139763394277466012014348142422721650801890121796032568261619944848828848402900415863966601374685689618475400357080407147386135834595903723974631599576932068959854719401185552812131322289353124917836464864616235987855488844287232712959814783176601708254963019337699724366561875614245880542744792030978321694226967396075515448794443624029163101401077341802874976462069733313464646637947390531394303693777009983343867734003108651950991913570602293767828504447131738743112248882606700406133537521868257270186537954171465686538569703282110275837437437951376620537101209514493831501946805002370133197697587302531081813785339282890451295489304232081085437586794147170936514672116593638612341787553094076098803346961460602596710003833739773529265771652841547513523792249864041925022684046221558098801928992868776459912306270422927844370487831895681290622847974821012694166744959811173832371829071069667883611366957399235884826085297061730840465823358204040560916990947217587431717056836801975757112213841966715790364165479954439648958098166972886036588095698808300238592600661882774045170862190691842561272465297836935094831539533063176525899031609410056046556984700928585913529476495419122219863837340454627045939834233291350374426114526349888465088851505132785652203228530934516951435493199050997475472000921610173932990426412964914038200065772431258801137271012481574364557391405907188024132071204094898567444625619576219679031548261554904020823480334802861588335645358042335181890402164589713515409145721711263517156607686581901410523650474671618953625992061591135340080158934071978610293773723758734428251847125416535041790230101116092977141661452902122718712015099899358243049493359585545420613808780573445665550629707373052112511926510908979629314350234972747310472528829762531354053134194256315951147292811650514962436969607943071514715426059204836950689847195200280312534534068665970255465792408457974049824752611698061902869683861990354176408014231537735426346439795848879113768835526433535652930813048166120426230197718607963512278099610986702980810258823274035776198178564888354492471107337086667276342474377151910986359178740748397937714617556809923863495160564553870307312011168788905727149730278512030503580402357542075374614269093542729935132883969151328324600657001676471901799364079651414430614981029941413495535425207442107737854566895060712841843880669073228258516670413144506561253030440655816667914917526411397065656759055696141182312070192280784568206441970868697324277498688599932342306723047127495625035904349063542164023782280255434373510969665223614606603036824444238079008005063406288635287321507406459035531044526780579178767295690112333441482661159916632057599284849301913188148904724944319431919750773976528811285306629044034096638820471401187146446073820140092084291202573465940055662293214905716396628052196386762240316275401506712128162304312571439500955905166423697420738809064766778931405368736653802434782518022854547747487059205976085139052472527725578357811841396510937527235976242128684682853253871045546829652725412486934337680265197361383869185549435900528228662436604031699092147187940185517640895119070767857625832784386183058001228336944004893622285811002423330438561017299738952674747541693664189787522031632963430178301413885917491399998294077053772245852183031930453848020747475976227311491292631205340836342216381702171290176551892485644844243364562020321498517199323242937709820773481665904171397820300264041898815909315601042195464836039285005628673525340022369374832213189034277687022943407160078915258197828265787243584627618115032163063215030386748667922973741722068151454772525537790569464381139550073379003721669263007922269112685115754653193088176365041439285754705658829931713905950043724781025792076221340849153621571967153971548085089621150633591392581904609907617510297244382149709222569662185560029386592069423764382149853186310631312814010089044856090414282951512705720028037703578852552449482243393750328967228158438872950713400515509040535533108376552630762373690545547326958928937408325208249734513613447802469698015152377944318813687906461869233503530302620272067030808327131938964230099787915494220941963331544735964691410669127104310289152876380736937862839665678668450463414431677689672247323763264041622931573066563777188413236395487172447549019018665982614934050188899912595117175085262229951731173723879756448426115699991897245361588923142886512417632635940693353212301291368679800641420271953181464370503969105409238582009426229549570214324313317810277195783048738478898776772463099198232809483540408171502583958485197898977596099532599095343720883766180110202501328425469106292991571115529473959523667867589003131938271489949380308602707672059820564836280643252682585460588948831428185465400227029514228571329716140065626728955874530060387480797078061756035850757911306303913192365897398250794411477835319914601581633057979820403661035124900040776391111139601383393000607935972859746181159826377432768229614000762364785912128631387577447662308458146038400790276213525094384106548526073536817387012378384603507459222824492269184122632311360679249795903201574201188094919529502302963400504108427841058079342018114267257745145732580485620637696468529681913397876657960274411419008845686683948304337569119175448483589220981948563177238643852111229679794158870888396412700322670297699850590269888107137673304007117204637217400853094880545249297118052860408386018479381444334881848176227639617525810608688942083708028890247751161759099949825591092204023392948137549285905224855347418199998955950306755945262470870706199408530196584865359337865111994850181738944656752513190161939569033499764235966961986358975980018703736176680318828290226451775128293074732515935716263360086400933314935417806149354879613040818901151471722127193239899076812039535297828817912916053121569939219834427281189426589455931507150576726499266241337791509784055373593370399308627282269867106122033221892822656776021949348638434110209011033512705355639820579463535322465793138351514242656146543085741681333809171916657664384988592995369453824384248026932132555912202517489812368878683973149208379192320233341063147081997565006791419237589198096186384509044945042964873004654938601394010919810639972813666951124041230838454346979529248465757816411467073033772746087702050276404925344039454583355048991008552587478553962737464834224109256155707111458192531458657394726314321009656033746457519964612915156515162884752202108398890414790262151792145087026551058745682724561450423368620433893619736168168715386591978331432582010461885363856264142170497403497799471182770391536235316907918488050569606691461876423068784424269090907082369146272225753295733764957634128809942265939559222835129092658997891732448473636338481176305883914041057812663867623690045187943598755443998046745616539448579744273826688977707102648233457617225888018894317655860570527970871345663004449976065262931049375778695788473571400344630628538254657354492272967708751743116580879674184153040793204506614090930907924906813154781843660773940783096725503468225704827798459391301477020508887902626713284191636617154147514315589721343221760763392365709256673213547967194343293680425255702538701966064899728775555662606442829020998253019576528012785463143415430425263688655292410678246622005763558272062231234134875326451826368438208484904802196777846962266798866328456932032442614063941770877324204917906575843328945521130309030455765649354375315510333436990341783548978780596489092656199719197956939155782013603650409233781699197483229786912062417679454467253803659552580965105639973419261089224879063932245943295517786695740391667075909538511340184993837883525628708072604404031883065995147567210048749026054990626814125507196719841169558613267690096145383766743056395483755123068049039421945282481066356089310735086078897929719512340263146083272073427233264070282816987367097569934891439980421042675891635477793876127214703818957216083992798397853645522568598697601207358543855612575933926312208836802032920230362405257108175139783472219692485684376315429850173123736992023673031729742014275008204976516467308455687465154651399131877592206443355587738761359127604645879036103740590568040828686179252587262536331172015526426574101220101708863449899958500726450288316020999478612187494186240525290656119350408729033277778110655091257771964986256530978560226737198500501403031682464023337181416983242608192051639721164369972020216234503723964548023446396194750009398518609989361616398542575136567069526686784710705278954857631784977787578060847488248129954149852950884789441046944915011977824781499945863812085877330404565165330242515244398778515438804056876368488404299682267360770708960528103647946883026085250304170937097765203889377984626921781642114685732837492154688235547187629925039603971426020088422185608605369166658572944172713563397682526451349708442088319973086310719300596880306556213954551822797846684721701373119933552283593505963005300745767401547751759374285688449082126827359066708743040118700837149471775995919305354044885395995939925734892736984174010165448928139935636090472983596748153602873339416602036254890537982955791054494351039738440407748770610244339535319662028407989940506312980922794270547137137410799395867990550176420945793593998337678359021302050086536322961621835405016425527886632680817458895734603233204977743797756897074039818605621609143633193421612519933782481417147579037934770690552777707183080399678348207996013277979629378872219845011309419194218065930287545721951347969727112995286800699374305890389844811691071333454051219267029903832234927580597210939695578776731742032637231757070953260507646149444207651770699099420180544218783071162278350630877309145517823662313906746428029290798947077010694934313345677779773113746815155529618418341579854302457801057590978388110497744651105807658976876872659349868623402434980829689559731959081401825404796796793673613996585488844340413185217372229020764578328318369529783236623462414242303618541606731889396953927856716031561532635649382634362122407453766428427143890718599436478747363832290022347937158105555613197956349465774344364174874320839825267571822646871921820053306972808487064552160728599012254928622868342902307842434307582656409582887405515726691207262694088199961078670207922427357247402328094019099068613145994424954665090729325934192691558050268723833628554077873795052969340174596551855829280204455594340990684924705370359932477149075414254699277877464080353644668516816930974026617213529871644559371444563611177323998600921899523403582361063709530518557075519042849990931634720860186804981375718557851243769725036417813535601768518852733158429959684142180657720107743691924669335273438869104299144638946333652895123984734726975880456523125092262873222394829396978681464418710322041824581379936349728766937922378719492833113948439278367510573124060425893719179595921492457906750199826704486971263028133979063232128975550205858554112988864751530785695256863774724907597302765177773359749381166076723892102453107762586057793637364201552977898431206040670025282197157538435641016754985266589749731964450697097679715777228844357631824830175811662164231709169261822015290371682148889502183398243401810914413804543771888603119466463353657396956800889607767049919655098373659591413028157619236343056817890145872354728741833910403008145667195657307336451458288984416717014705339720634699325983131453402181722920162351333921239238037846747321979538507679128843594295929172170402822294383546205187841453536933672090244514167380961125427960340002747622326926492312613618865185506533297787660225889953786997187021133348581999822989297833835681542614945998575906497509610530505489271035250257054983096831415327633894630102236081757720395326877285557284754866494792092625185804290031813347633455973189302872885823404418694725314868196169732244382167555512846099405819780930013861462950607567258102156107703131455453292931118450446016724593223965206314032989772084667923129767657235779540416458655798159945506173292993808583066797971202416723330379288055288551371991452276768237281853921705306313614141258880581200704759946941142299555157163471542953044283991428293894092613327396983430863288558055882601007501961205212482798744995662538832570397097486804403995441732941007867546076922327470426193758388815523873258188161293478404456816567750202437231774220933891046636221812138140102685539348812961416266113069074750502501301339226663444615586145968437485386186209782787697534243295304151439483114529317451704561830476749257810862467238493668028383669440214405183432196160866374701447655588684803941420510799220347126705541946890013969417995281968672593792194883621150359122523429149423627823957360138482002116236314027115182210399523705717113884963794137150581003399076467105551023167201423649141391212667069314108188839988412663359279929833357828952085420973102251216952168686485653460931643305794995082444116505033985276175430325557082857044135034664643224587002280962452925189888696721199263303930746295488798423467853780580921898234108582127269183794788386827205213261457450795127112918386668031178652496214120544537090563060634668535222811119646659832217536544142977885503742467793755762175217679069091172294068899084401665310443434533165304822004448445156116943162551457759398461026329991214458389470311085490555121051727158561899378168154778958935825942126729882728448059601876834563888144596600824292899932961103936588925414608675430583379774918218292877018790142163537629163086833707734775312325592636126648341413629779956415299943863487432911686651421768195257504028965145154006076430373842887957532733461858975078981916913339276225628220118563436428965608134464975419793247055089345628700990200903108492680535775940112438197388402662517850674390415982084851822902983282467029513260712341440670759302010893112280522687447421547665536345507445388915198232632385388824857185296271333660926915681619018388640995145956173069502830477353178361498322855125290026889422304050515890438604531214947285658654840905296306736834121974554134721340734252416359807249662374036600661362297376900066447120302966470004803924674199219865515621471627761843782669942688516571238489089576770180628196122098496604145479753825340772861939834707422809691418835478128369570640688208735125285281951907700516945393565941227824135932878778236460928586107788983215761545701053290690674527930386895777053999431924231946127042257705139822750331976764087162317475919062200697762579789674556222336223383582106615245967517785086471532899131578571421660039850995574297173793071315797856003760755822898637435018845298009123931894983218347329146422749341057329633114448267979474067046119323797893341305840314373903880733418755872530342613866280052807931463128194594676175783371312784753463055966811886696249315352418323410020670901846847831660693424621908980459740912254519793354770537966734669956778880534085741442351075988885621443355985218220170107841487922310719060582051683606031464498154680676940863850413285806334162546869095321856308367601021675278730556932502531154098630627823974398202098443884777564433948997458128082208198987182329346341667272364130615709392703822199217434462986994445607491336848698161148504221867062542891680197816685243271581284049441540401903669349818046418093589349835614638322250222348975952948960323798198243868688312093386931712843179861699714875712485604056498488127517222095117319402236371921242996834272856939707335552518049540813366005100366918646459959920013945597955831218679201170691002759891414737621171093262897340263080190991995119444986228750940448643586513063954519845710301735906590023878404779663438083337503664113247667885123085725895277189109816289382545393329074364305825781016777339011768197813443856885365149679049462434612277921325522039921540092967583799928410653464328387023724222439846825335058204358209595604537559697645716082364790893016947319209171592160063196765440172921879114768567170544198339841878482360113204383506734742716669115505367015267835506174940217703373885077282527380950537076365659990154128355947570077943311303274531532663845234075128970882962108408036951473911902501427668845620277636456226355559540415172352816819286902648557003651826211965864368747392480302536560743095364391894366789415322510723242053948856285952624678969699554548860560218869249384088560453445740715973067483483228520991416421492602717409746392889016029573113476609949814198805768823999018150939433418023041882106460323856979335653400059748077544556206327385003691369559004836005760955850446136076056486320943612238034092973437109652294588475073561729406510065262930249949571316831265904342184666251951611503725640230570861581497711452617421360376367366278338116183472107221995885537427444793037059707001080103753240552046483860162703340403701283164773337679172168384317357632097108558760236633118074478297330052450519573150678679368599346895373324962764624748982950237088937602999241899978560257417258592800650840480959025694415056278992381699312616651771773298278534256286321831928089190499224348036010071059182801423370631343476090260068910340342276151720141819064093606397604694471362645003652221592350903890928283749189914896517910608360507700186136037542406905310099355206504524652081791969031482899670958559293502693969412874861694736325592541896288832476982150124898898711131643749937223077557939264983065232713349919025855389350995169121061652343143303149439408053083245499066237322999353439261581964682400871543324612814289344873059910833510413103213401540303793080976277759493340677047594819499007618329450011670268139394407478131217605284283225094113406435413160571012695404096982679777777102646401061062658097412308051094571337954980805624012103450355704938075894159448836600000173795061486956010912557923580681815998945692903303113967627941904554823916387437376152588915658663542604732667399721124742741191776351904745066878018878443080808310023782336164755144708666582775233521313966558179058235289529749584004291901021780371077991288733128773627581640869004991530595115298125646090928647827578996436544049168236941260457737882532151101309795207086306218965288363774483689859310432170983135518352188156866410961182410769975336333179952368099633348092281572941904082164209634662875386504730409954975126964524184486851907806810058939119340273490893339743211707326585681011670515583565715634326407850283041902792651201354883010399214655689684978013262038336238599125966411122999555882437558004235719304579813510423182276140424350966050298099799845104481261410714248433532564137373288301410561714363998423034755668345972987376232849621923451457046428568941293099452594896644546875711236336623624725989173059351437843747357024863510982727857388416890181495946598780051625859780288327558118846389496834535679621833289898980987058982719618999997524596777325905355474906241330390105652167315677914541224808997011405208157115790742919780073382959254125099641821849828562980895890023879026963846385147191853853450507431813085177611312147749237226200214943581015215547620908950749694352298408553490859677754752493605960054223588950299039188986508798511064748930100640569695855402778409392823787276699110634805818607980008463402513704649239633706409715912685398993096426468844508540878369524853359844014136948546120717308238860859841906971766332309992090040347601850796291136399496747318309818045511157757688942909405399745739467902031344559004235576376143316102986582513658865024689323521498313538365920561883656602434499003864792955419105347650145863923093513911256111537122858615786053326769686317770037056189458846983804809860280692764803282645218894936119503842436116590237317654429810578900858361314182733581657818100377404880189248585002226186132281091284418048089145416294976911648802482323153435809803727000904806264551939976694958627879469073120540462786885094261781821247882809473675259587010757533237960124707421387499314806827519256497226794720868529567796378631833769118755845474109392494586913162489866732279921620905941186134403054121050600799537098645555397755682432582718999124203390089257230050931697259759505040853197469454580230913626967774200048090150917873683182360539690080737454433295753916695772163738629098203880109288294376175132433213400632697980606477706246627018076900013009613386296489263712551387790284593711364733894996788930947976044986441130712248677941121809145612656085522993826334327106201799035679347729119379222453850622663840647364977438864601679064414859142456674527514318241100762364596366597380020674310994292540591397605025037511295469201877612347370950271882572591771677657249232289064807661037532837358062239147274958434460123226872970313441363119168733490181788501768716786980034368219484212480866884590714266313047671962117518120791911517582448891423084973712327220065222401910382365984381489372704634585669101932878998740532478092200616522473907723796271865425800253643820152676039477639685632201865368009896976298218396546994099534867558619011778680681708894518894832758166048659670698651276711447216840762281823207949775918770437394723589503331302394859289331136233780947283161064276624645466899572906916038933540269207379507316633552211091283556861498703308221536403681626583854783924083867399986436666993062002985154822557008094092072939261320500309259786030972813472738455525097675317043807300454246161580570507321265488652957349052064802624316390942905430601900149486424868243831984322439997508899136787384583364836233972018765540204295785662743689009578788591823876599665240161723268618777654431702355502427002181380490884597097541504921306875932766824495378146111775523691583340614431870058387224935176958667076583794101907454620786856377084275695746626436145061343490287533933682147729380615772933597942121374226679499708837821410290338763995836464555975735250906610950497739258075124234139201671373394131132993769705382367265493931266906302684714059692220100333158155050551354959802222451550953996995640482740056627554549253336891135350241121076429234407938823390921809430559670516404267216322998051977660658114538027520281325812390541677083996941645832147801518542161407080392255662651945229280696058834813764843575493888679807996261548911717391354288387237061845309773518244967421160634415290358603767522880912572354153148502440738895559472551710175003380802188974403192281332648712894174509424131442484489840047397493928586779259660626113677532757760094980671394709540479526979744821548516099071561835837521512437165462774157814743798338554563945396074866999067879719259599586861676667836823582196166938179710959179846273071150327212245452845474591209977972918249820331005898443873462457610802053367968175545471269707507586785513999700889892184858855595432851020452363032778211651242198674300073894728291859409625127102133170268899864916691853489115186580450076525705526661182502791592210284898311958762644237103793036245620268033008961519147163072517538118459296579482622395603681948884283323722847964225936608224461688859424084641508508170017446840637156004003940930472427765514482380686944280392015315141105178120625458113456813035307406515000973798813852574641202285362014366325315005039205990734179376772908001989768231770885034599208446746206328128926714541546103090298153834403984434654573919226898952493756933247798994417777017080014887010506614257549577809641292210031616691406212382599335674536571306323467693650678116242096904659333114781789521095143675716940537240523195708240267993153785966328102131561120888591712327151360964982395835099766293458219168890023768455670233031216598266790781508596801137072520590643886530740495331122499541862568423751954472407933386076168948867670564848870853625960596139506486641016247291830277292645011107202036308581356790965862680656226129856992295879172677152472319772259726122803092479059984553800785878615353689020542459671166734766153315842406625390648355968599107492079826563747269594936153383813100446062730773108008511059226000408655898659118169128386297427301428354269772682492293744058447132306878122290470383418599952463173486506935877155455660492638183302893588421529843718701639304526592775568189257565260904564756744596280619876090986268352801570609426637221550067761010529963412467415246017579491944710555838440308255904148168070996253829369463542075148671796315977398398790941401445651893393862820427576591463263024128008909722446178764698597700054623533389753561125132202325648576976207869283534053818339550300640738499572770497800568380920244025718828291142094320528787755203846858564649517384856067165784938526178038172971111454765341276109740622287471576481386819898850343682923296288727894379934232686783207757318437213365873743925564764487856955073633277376590439637319703676468832068098230753487776264223241124711677361716780935226656337071042227050692197820208451940609284463095381992495723509002520878016041283944073606668060977371513888227624271685631889399089644556840256544645708496893782451836651509277971644783476992665513169977583581948967377905420498848420892781903281456852591708661631653084303955846479141169947387191659560093091236406740138339078801678471758029015242761563181864693796285959628745765325915674937754617821334171073073770424279936692980134548310015357865097763715210006264897063832796173402863654361221827212073574957552219352014497560736883010249804366809074544632340664737363306416875224128081590879198920733869805176392040445020495086162443437982718770176025212405778689668469703420707298273435774963514717567615521073286976753144530149294148133927372791055321680234279921085384534623425369891154229238894152122131622103992921693618253701382039365876213443637473033217388849491141431706535863719397677726062452012237443499468138573889096019227741781059802182284508281174564933830812856944667284001439105996134994308125118671276194813199303368437146736202157461315437214416304995500107663974671143863334184993910774814460597715014680395169506461825266023420464888559301457058503896779967500907490411327818785894278691197598537472936027780637305057753983809129828692837575680280754308022228093273197817345167141383291295377175821573487945351403128724782589523372216843237663510906846316375040326149479381464890005537851876030356149976488249534708698870471675390040591321648984658886845032294568853499394878423396125074886108489898553096488718124715917482288015352382150193235355681395299005493161607446680673582936199510194856005781011552292239681326533006436174580140520816506473274971853822438481891069650107572180006748261550761715026967974291750928424082608158858473356203121637643479625330460758221388164546404145153197406083151406120640021659998875314193264520014417841072197119596630612986722858676119603782652826129563900267193014771289069745824720851735748628730202170175035361054956162216473740343190035434816064652283570263545729965259918768120323091310657422609540164024502746763763050309259051621605078745263703143235397577997844353517810927833097492830605788894803186720937851768281068338809184356074725667002983881499500864404505400742610872340604113792973579389361997436597078390883996472308368843315363846811685948253961742832218021421784406830493021565700673413461463913087426186779035564921524345723519365226078068922295257741250789065467345515894129529945255881515212803889228700918853915382537167449086644487134269001268052445176020274414807378926779189400817560819757925450961652024703629229542120247301443000762760554152915949624802807509607828166329319597266462655866269507436821736197391327453510925702901867628431063066575545018240763130751456344310342569565331717953368412929831240600132674468717697457337242045990873819258966979455988298489645604200441354645397300484527964063907055195748454169780224912814375651694614390043025012414695815839529544791151777358836921028257897292514849793986556579548072597234448462102512033984685761067908346669937630284894828753500085472075858527082087567760525718339799716698156009657171814402326722651812581565079182809523205463860520085223472766261363149533958589732761133043925163309153174939221142423686350450984886948761709814094687647446312403263672289790809192989127672861354457369738128092187040037539731931205645955274816082656043211099449203167143742813843789180245258238198963544471977541226885492702744868034092323212578032920895804815002485520018142758204847477659345685162007727489183818219293755065121103314595211020747906302637786242896558322585781464376874841324712231229088840944449295414761373934646576831577635551425799697579634418581147719915699629915528627455262503777912502094305098236631165008853098666357968235451336012484965037900974913322592669579259381509100536070086700093609464437429124607357355967811550236499185195645795284607003707427325586192650287668943727590937179150820221582400842384670298956862039087313267819177145805683678756839380755446969965339380234724808008602490036034276755952732766635044726584442505064127352299239222281930059245347493864704624441576326318294549314924169157772311916845556149809175974276236847056926890499973551055823328261126098095628973356319591177651533521425435224884504398192575300188652348850904285637410021433061901430666630912687010534452440018473070056039028569546426983103434389355424669796888772083328526006897478984253214114570404844203021222469908074317056309203455323169615376463234994998504247047086182074051302835112439714287087765653941454889825522420939237046392547828226867967636891727339354021145788076879363163299063781510070222158356871836604718519427649598104334572626231923991370124936099352391627357969339100586443548308994017516381123000347949845712396218657443655463548575790829368165816418624655914531397150082026049994603680936386952732708487232050295368323895890627615723890740265646686572791253664223628011953693947443885859872603314869707886311227420500199025628087113834699613032814238541076557358128223593549431262808689124077373071131935530508999446076676843188479419013027401334577979917298129034488128735479503397041560286565507326063599395797090136316986179566331208591356516217324540090802810301805170245986698103119289218077827993261057178919310242884075812455215361792928774010090696689749523673833204288821377319571905475172703980861544757703819883886029142575439661556345483678503893496612453324017966666475916128862069710954939253320575212767687257182529302906750702632676875323817273733412479355034540730128418190637078702274235155843776751874093881132989368040780613451824654385621001278453768708860960907339942771111743078378545657481699175051784974282625430785031122432985209697367757547586662822360024375702722903367547506314824297929633291885906165363130922496826702788799965391921281278450037764837907992940133932912292475023907718480567690259747800243408198394561924720921834457807813449290409287522293052051511189393891378730669996252937720294961484382063506383124529361469175950334759441983234370679807576613535160686627488223697158600256520895118075578851936244057777904471022067711664916290550484726696419930845649453010108533724909049708434072703799108453441065705675109646840121832874431134329493972322400690937413497350705461922881103612969364442622378703586572703224960517914437689036433141493037579002227960243933164050698838775466770064964384520127372791872617821210868307279838205514224504247596026791922598963430414062587433470483791827941720993604310150583573569667518545435598024293082114857234414177503734921503779971304234070954895023633208923081409116290588290265455764410737530895794836401061444941950429768747545791584299277817670471743328204076277579996301687211777728864842551060374163385032117873827380623944498401129654883682565884704586568481049285640501503252200438036091496752529228484762301226599813933051042228806242510176438351630090465642740585227514973645797543654924651917732593470574704000374560141698153780929284930462975768427229348469275480179212078638728485027297131355203258634760967883685842334402062780585328563875625926525434217906213801579665380450953742146851906452601660999701571499124507830535322683140652956367961278008658738274352348345966845495652993879316518838808910781238386756650853069878298235151977822592921796598434133941356066667203231423433632016516061166777615340791257418637042012885161292783609807947814656306763533858377038501325107873367360284987198027100630286155213495840694467987849321579112563667622593080239625475382419714752432431571421310422593229697077069608086131693755750444042480596873323583506413937245895160482569787732929335209598219786800550281695704237418252066171535522669409885714235853633006800917306543821395864093101327129860941823821041987758028428818104996950561698825751597021603441077289690615944649032499766802374436569709646298644574020091213087790901740210066256217824706847299882381811563069992255451206878197558473625509721714498234920366749609168710740452666954275669682903655332503637995953478021516417546401020828691417813762560633031470142638739176132021250532619540525731726322516210641761379934788812944659394825829407605240023925315007236999964786447282422216870755973346198895257202680980916666475341437859405174071671146358255548660700896975495011258136448536143415732248555996256903768217579650235051867143265318567355496690893558561710359990333341854077436984312652689906090689096512379076341691220347978036608937890767857791504683787597802265686019448277410556945211941461871249761851995076123538478515968759748616014152373674942406318294702759530840323660252814445118315504860392739634354381338636489181868697980026063170749080394298663305656501589438020498239724267451682681999047998577945032019605793768474173236274072899897122094259698818020859810514807893791135530430669230016378531991604108103987874845802520536102788023751356059110106264263526446263490523726751712810190844017349111247844417355250176329547471664352569951874339955010789816787379669988327029033842360191185793528740303451057518578806912119049946738983169358309590203940513052803662768019902684934892555784217189725730151369566857641875265504151492528849735523090860820431723133235817948502630612572856390556765314880345914526251489746668254763559790189523462774179225102140328308152675812691096377204925834998520758148978856401888425784114567963447770014228771276253066024980245271677440765549380555633827022100712966504729940113365769758063655652456705211736979064538656429240326147859737829619303855960259937070001105442597268967346094503874553802023623384848408383327001295994112199741936094321296788621546408978421329369288740300658762785479272882913673211905840850035401887911204708657711637311862868864965940387374122131674916152256931531517966535793458128415513697092188741468626650726869436655685011045974602357525661157273870271006604202772194882193431673339061052650561660779475929991248968068272596102319916466757538312912323550861451081762924411383120912700802795367321448382510298600452658945531778369263531759819256706763317672125486161054716945318746189625726389191894865829197082124371008666127425877141273975627600076901307359311617338987565747203948930421382616597444175593981057859669910330746737594327401630185921925328509424769737417897349341568429272000302733351842945641494066956802353930436100549788070901713299966920071959070701209547135685469242619461728522519012254812726404304463912962850845470194061486404105771792259530253097421182419761182553819685162306513085712323218522653346655932303854514173342346257454877917323611324859114984020058742833976335638768163966163633481774137594529887258178624111550643651157881749703488981734269506769575289376834329383145054117415494088881690349459011839676104611509429722869004241300499169276511606879005803407798940040946704549161909256729704504723797752781695588355733937311959661767788511080250511999971387752501542398193646050651978281604439933211742040793207990397659399712058185627103905030033060716482084978470367220233760120773819555959295322660104880238525673752989438762032336814378172119483440894392890468722697590538229153600251936321841978027130008432737171584773460697803174722481959594984548791724020848442422684392529397273714389703026426671053287281686965718991886922486888487278481499040863910244324994141054206362878675188457890334512882920323789284509433723188958178467335188781705394773163213952579417283136843096348368774908431363927293494336309945133770673142786138336421352575400720787258982136411161201809544175351853409984726923849361192138191461366177236087974969258696503272726828267041598526101682536429206489923638746153011883666379268608490909992385876331481545163795707071355047919231651103735055148827193490366676152893426878823369247073400084859849457103352973321358104642118137829761990285054965021266255332248407002912280339299578005647797131322943994439359799490159534982455759676191800915484841959091175852097772744389514984397328721322081605749078322341477453544199521814980500696821372168336603019945514295226931028628559607255319067918174910024737883518169231604626822900453179820089472460562657712129472847300028930284142825957392377971190269758912553820704457016813780378051011759416805486316730908568687531395733155958628883721011926644355760706156116649998062873839495032915827187540266771973182727927626922647334468032266793024423201485800587195013662651327031830180347053740733403181911721161919215231269704570231810600872991677937865920352104524697357474155245291491729153937142273658919863125311996853190589819552379388730470358835171967048388713810468905912262214874501277489924656893537612083814713963467327349190568198777807488305077110566828765308568993252569806735054787809393321695750235159881406327617735765053405813000319816239221714358406604249172001343827889203646711684917714062571957467725538509568616486282864852206718674542941365046999465530656478653542940841349048211196744295272456061344214692306187644481423997828849020341602411301299243516575122630059189918743347118871386084613610965570852920222010555148755717839866213427213348284286612842757897663478999617240936403460312647275460297121444769809709417301855139636111501499993552151145246195970011734288242314279602237305718959403398814152505214129973401599073159558843980873994552793346241697688177048711498140728816887645696880777793305653083519621843594173946043372202976392777041198924459819141864105278579608354216745255975002495559152764849592851526141031237120251844430710359343527910717248247471156249608074662321857339936801573183912620846996530936890640292183930261145692877800991341852604739078475212330749177935430425322688484925380318081713753278994099639612027616115691454193627240934346732976899656851855587110959904421804461628242878460943170307854203922394143533336357929057141460122921289496663035602010964049276334418089276471384264611563155846114737882601183533637125782517540551586307304843441467320172465965363555482270604278451563833716663183550465114300455894788265502272998561412006295616027995275830810015737224761800946290965966871179606330867848444554525000744047336527845599676562018423614521026111289997455970729531904120958388483002114852846665146473074787584963667888041499751261972788849189804298590570263095886251113997675575737648200420504897177156650970893094075241308629958306849427320113567110477716627239389774638462147428265603097366980154237614305315209660493610405446169574804328170450150250958631806965204470934526805385292946599591140153103479570446572982093478068020375038654557941497091019233745890993220745589847639723001854221899127422002265539404614088513964262350898247906336019813613922727035170308252736118496977748911716404191821659591187798252328997822308978536917033911072511845427574521257641020497548985063998519818660936240883561859531322405660245916334782614042342085752702626607382430981390358550924496958622421540572918536636972466754035594320731419569203222835956999742509818942535524991226136666473519825325337313876477506543607278704386592388786779324907778513625145247112578714900765819945499942115077520505072805342122423467472539991616736085751024517890550360365531592852081208777114704383926087702934333108272914422050174153753988749480206236897999490705439498951576717908888843679451646159183578648237721778556800949022507348811353025854470788787139484529260523937378999602846990263892468623213729506409009089886718574181676815065138476916697895664636989336619525945882780398443496889028209014359563416963017239816830285853657155326437689997495670278322531529265797671846824527169203407681802027223880357321323500588597866488954187637825908061192023827957447532962514685167447020490622251502878635288027605967133740738019604727953723936298328627595686052672870193417335281710021257278385799341259311686503219047367451377389459894981508070734543036047089346220251043169232729088660668734284746056450699637825005636012396848624111618439803703221209944245639607190702552930414178880499794670508865925973504858001513329193015948746156326880702495027971602692598442564539874806664316530520877178049062544069561956310525791083117522749839062504441770151473034025824407766280935736431033407358901789968429502458770441127272551421970089579516322248595571185445949326649664156089242414325197605508712442598513182138629008512482215133000574729495444364695142999309984950340163721851211932943959099800482615558425445840412617395917090600829802143917964831969393694518083253573681947994820243209327666450603411396892928172482204038107989959275938880264237388039671231690358313109211738719966415016057285843257154686761381315503656486098329688784465223856665588243037150937986256743183139071412084131030514589475125834273358880889232662999034658176959979815582676639028748490247703604388406862782410937049571250645602191246049648031631468736210931415901068228274069341168146493187068537371545938892836366018987604050018225262544807202684973431739686588517931074114800159755633425698821961456583508835962342154525317652754153603223532867158028772224669097464526440158644513796832776032931532948137847890355134491613255096527061640391193160235530409816507040546234075673570825383314736627236258338790710525024246544643341477479492253336871200436879854751672563136329341547220954416158856281036662113116231559005535182716830886283643804004986170556840839342974631844214600097460805459156412687791927631027659819274512367480768702015334473682691832879969685448587751077212566553554882951675959940413667198826033629276055555200187327688739158568237384247436976950816299383439729258818836864292459950385278622677587701447649060712459101443199869835135879152347885192987433290754605106652942348916520331002932320018363084951867930887451314845338175366537111952841174752376582546290105122468921532428384273836942418934664101630883547130786954646052420873778124551952353986282127001163376941850864838276862707704949643288705961162717190726313322374276414574011833287002151909990294918084110144853217735453736074567834081096472524760441780750337629306085247976371042803855811408760255256800820047539584069721596771670050652807747936676849027950228137456239298918320304105244651008968438177960731097642276873767857286230148790613166658169837271824189813082257016005444615283493800199628618093013368482450649159216747675094987856842912781849256147857538112942281215915011415941650918857070592459043382214488089591633677082961673760324594094058650021488221851586857692888808806526084444497579739223776619672713573274549384375593917215879243039821085782716967389157276658133655040616966424860274926266623909274785987632401976560308483064461429905900278014941247287146793388084668440769551895268113576870633046508618709293530422929133049923940343168409243310974244982656412693077575931825507452761083059085167084553823515970582637419408805364085269979905415017261411760279202188361906316302473013508216655557520616501557542405530935308671282515544180476321979814062432848594729062706410579161440227460486563405683988915667169380509665348822169430733204357976059582503444637252445797001851536243179135742944519724613931129602583564087656943558540383782959868271107777038039424543591583871005772156269305833013799347005849741404906051522921688675628557999171015582499681870658293932389530812307359358436571886492334017315557791594481285803707059749993736115945234616279225215371362605701704659705407901504688824510428420377967235479636976011639206302994285630912924216051818518168458673077507974718655409270351159839482099920635244659210769283738464707887162769275478955831423844462333607756370634428289597410681482045305987911951703649804333613081460271753860998539086234812832208193859304668411089343016315575987112280864953057662124619632232390645182341180498439114416738134828203993762938958875618018249928140927365609060802266074210507784004782735453801762033509088216155434729827421690573687885229316464670074219364997499654991390560112661562270717498335402272875881265793838726411960017442112537692508149430900666142835452050664063007861211780181416934628606477264925990378657496793779327607156937767430876686158799293708422416645031248994323112765646830421575459663637138979817832304830808440004561145677508622444827504685847055186362311311435831966629864413492806707813999577563266065290002067468962031966039680607251877358740219491646782134249939044562564496575047355726066225949101986275841864638338332030352616642797153345665125537050325284345880481733872911868945135427031148947450939828286332547693543142506590315436896558481175820330360099876814370651132553842674058610565110358573625781362559658091883463410974965669592194922520603580870928053801324820320543200039471634764119527134628000684610789196419278454006038172048064395263500959793107726004717356231740531367072530470227252569814880399262777318771891077465281976588697331947041245801356954735149281735469692440638584067234810885046511892140018813151987601334706289631438341103716613635478582589600034733829284372835209392957852991713553429284888542094426870261911461534812324841397840903205389537770465005578049102158907374384843424679963529873925093863883580083759038024494787126886665434891907791384069198928358794203846313156798335188921629449691266123226576145798604118395788982256627340443996883729586110153555394495740703529292461520933078816192685567961705459764557144110885826411630897380746821468626343854753984476501319191179121380518574377536431782853680545792489247877405180880746529088377477786131778587403356418455366028575054500760343759233268421652865190223681566081708682033082538106461663911112659447976694049830504988665863734873335601941708955479687085899000990634049309384558490871563914567230333354801943156444646001071636690278308966529638996932884088534908172902425035370092158744401733267184730438219108602719138832571403563535444496377312727805950647343115997503404229884361138044640475175587798622456968755794286703213256491267371909937523868856902290329633473114071220989809843501636527708360092838981426795299780587319873149097836553596661072816719060161393736027829316103752849698211768556869633882749872125732601372733395426872487401396931772184660966661343516793835067525084527588943786927744735150219984080644124978647998856712314671572783597387653477147071751152960625909826355253966934590228849783958472566578322452709589497242790634322698848113853143134391769763163273460455593260996358454366025192252206321762687836131730536498413577976790720954632645600153791577756704962252583167555856928453471466853882572618910059923315245451470938274902478891148553467836014497306765416935558763216243402101424244462961692789107656799240129238852137729043344759080487124375712096953837610275317062021543338257256642993551829217574701342216745575274401921108019795656746429472049086693002516709964427990003364604804310816143132710852011323912612650345832053597282686977986335565052549855824212699003701339898950063673500736171557413160933258005674039986744355929251228337837749735342302186993743838026601729528744958134559553617642848688929713283798078375373322402173807766743378884191607585187856902309814315398191071676674079915822917134691076763093097606099712871072041408165266918722031662783064299244694510186835607075054353314773324674601055942226811415419731289947031357907760598780120454105088825574664789960146108687167437130918793474876630784182911093254572620777395905895103248715802009610223720101681907770721869294233703775231005861753781103410806124085753699570955128565629039614462239076549130763078306785848609343339773633388305577363784223963238594676499756242953416896713832211050848767434811322153506415165724830049141649750420076777184456088377810587773498696926656080773399530735577606798678807734765709579278971247063274681020700226965306374848647521969233372018559443272994205631032146639159244443922961241026373164890712813491215660602040800222333866431338237278119659188322347683551834385274391296930624916041140565785275157278529823611822034433907949221493676778949063558471408258453944723227664393765297238827141181564399244594320085383309156678614335585580372112716318383837027773359131067777429487896052057063080070690453676285906364607409702977129505622575871735267724976515313965771427954941752002400310942665168165472591255931960256848895635496886364919873027358277278161796039651178201678802612431700865470636910441227799715252121066161614197049453360653249850092499535124381434473100894506804781727389834714431011481380813993930016679539430453139129524630671058977304425081070310836076528834817097337685340482540721683947013143390336915169345863399734313882543314164086423635189952085955001800159019235833244637603756070728898816534066315890467545745776147651848127498273196444160843731868139982989220034176038814349256874630910532279717049805491637593237822554210621347803652792555671627676285487651738177101722424131910047807914348293449217782423031583704717796890511345484865732815503315217999218151376789518472158000496745540127817000882875562549615082187023313163032624631298633781764940961963894206871516540778882019908894081828005508232831363641167934484758071099906184699001365878252255624469394517993478150645240992484222321409515319225691289756516140816891978986090759373368999702128733753444434813544459578289858524443905241913943910028279844943979242012058384384537630114734434730660327129316055797272943110873639839803724479842145331471592232150526412648364997629833229464450553518498589644396026144026635301912211272851430848069827192302723662602069559080812691056186666268124717769866923617186153590597645149085163206747520588795217499377654870568110048377265574816796823820985832598974213624524637159472754984578749853919724970344861229576391397251211684232512376316374207300899021755219296755168716179615174963570804066653721561918758856888641284900709782506476896976085309626068795730317415502973082724017903457456222798022724960684222299640712714404175254961777827305176690712930541226323323885002125703310137365175272412869929066130898566172895035572056741447518714316513919041054516234479826189682274575506896729907026407807392316450487852784266502306592471867232924408142503837990394057907695309857628352575740769643095406189740101288882298466905678603495815342506488277369815007556450922524730368113992224190200138678201314196575565803840949990295684376546575729063071736008696390541896786487646864908877954629042467412872327913323441514362017579520716739887989566385364550891578249092677090568548335579803893128014720873345199258919771411463786338216868610284407185491413767770300633572205020130015719153561028825640963636740016534111614528587477795315651267553846013263509468248160742857306383556552302840880898342162984947466124486674366571967009146466324938478645278388704616350709883467450485874399825411823880220406491454779806327284458826644696017834893219522115509050422512301404357854801381039644638380755273410653808753497050840743606302955703074616068715131460495502196447108214511839017380200250478914016240599555406735444041327243995520665655987839577999066534426813343643628901772624482798142260392929446797999396768013852308801582225475637991316767473818683665201262722779488511119722701259854156419915412272429103813857657829962592328103234847864663994437147042964885407624498430452708747782059118795837192796308235086748783689529146479156735498420193203500993369293501007809859573298390640866193597710835171240584914295595250742594848077858318788501686188435561489955473102800732764056348963070930349069513386641663745588388065965122201064955377852678194550549709090266367316953410191818629468533322114805074855116361621967288468619364018981550429792674513329081196542806378751888667674422131795733674232334580365058121354022786601520813275760761823258502447435816876480379478603516506482091379415702641954610492839491646492166968394831273539264779797951519710120596341945920855892511123580607943051651977717618127946455476396905187871634822518283202925302797719013327529746061822379736815656873651903934550530608098397234335012779233628121106990552567656482354059613399886015625754581026637887841823387686314238893510812204355011438884567821814541984064600155382489175921819926757966989430771674360472369171176597153497532276379374100835155791061421359697385887424432491893919802692456216439771225901356146855065074720175097843872782893703136980665775319690589387214479273006596266392113736108935608091502978271955258219155961894148039037939418680557457019707499330660915586989067839911881688237554842661322992007210609885666071159040785115037725813742170866292000949387047665999843809543300546836524461269026228670375664867636445706698965222643648352016642729502725421056889108552556646833138295363181327627788232959791708795704477710830375030208548822909696478757756098529546627617748382486928237680519259382979528630940378264621039475141525425442140949734483855627468986607499402942607390568483723150911309888466599014702461544041241079854456190910303603775105891821604325044720164878935694379953462222494535584028860111171596929133869668540413381567812933932218756704966524207488481973431247084898335063594799693184859812629278394684713312497084435878657625597838118673694329226674842564801261148780266957257394964170064712584142218949374471192125334039612104081415830553084548404428102893417249995452552488886071641025781282465159146862691617269055481009996732216975926496983341537714791603598919203062433863884000018813998117380784531286326619316458287743291717016028518315846601285282653898833991362733673995204774814185287528709131394277922566300390743779967817258661806840572631000706943321578932656892685157144796611649385715995987892233544493605501397137166700653067796423847274697272002335382403517541168542223663112573802372270158349825830767281154829299079452247916335182730643254254093901858742110813181822626103437779146875378155878329156789355052061004468500525575336664913990272005715303887629355276116726974838553672656536182560119954079834329682539007702546353428314285330959567655099256061013811732379197468592190955564529999623715786488482308709160432549221676809642515902179543869313626637199549159708546004309136609024457232822402022993268638820804959975262850540035725914861444857213701522210211396685618183370638732671744041860671457680239812619994091828785325351056008829388906205502538106480139853518627214413736230009613275948220633526696014971365975229745825704874636234424234125173948539535284149940100812313008104125115179727205767946522956726359771292369635266251786497529932910156731845090353160222440478187861474800649527798360486856403877826219983638511305061293664900958133927276677545018665949898435562430927761693972947051245382009085853709059596042111679836185532929777731760369529171823477542624365677807535024993070592747714518764138656217069341391823968490310357926328789257312319818184282762050810827599792785365863742892222847879875830793766067592679343467504670045512903985217369952116786912019880603972453455396163355430454417016900498084047993753781476292975796101695126970187589613227870935744667656410185193641933302150498906882770135373024057352731710766442440654123741822887110757729432407404488552555812802148866741613088306451007503947692516023192522454728555669096045648187535750821209498064249919889564055857298339211454893028603095571515895846083219804793668800277542990463752742319445419013940082445651252127324309585562746110186522471651728189810531751434525215448807325678013176412398361061865428634346177174678454651077238173662629271801220314852287698634042264798268688197565667135838262034434364373067298500231369013661255394379679873700140476181500804967578404212125146856886464789417243178401078465266842109336277340205298784502513486291125886281392878802027323577838474792392133742669845451851219225735420356413928606310967470481560830982369817043304810386147624167384918865275297842494874777806384474834215527912734250024578270736475414904991006388724961690175786279475345115715247454454356533848880853140794847256520201715004006915861976502368059861143982044412302072152203418476844600202423723390897034271741656342496436026075493956489239795023298579662326768948507959531112412488246172806945358227467723636632707997462876333995962945019115513295334384947209537614733629395876940525493679681175862611473598705299319757921886110849099589012898908640853592443389656715343139189563692429649741584427679425895085764185612628031666454001092338686086532263429159551270916259422120558434666236743393282295609442963421675744467500720675526587841545228375713267687591840137055918306742452147139238198242440962389905505383441970497222151371902757830124412613812931783388407909787851768490161051028899898791933673787530539843371646513901950332134770567566031266757614133349654232275676637053663812441650988823567278910055826957168130311066034026323481655324300050639974381958488409193895724595493644190510214855534266698202047469051307227536442831726815864866819925248168525928196260128622898628884686153325442810958533210989223606142663670019086449505390295106470498538729388360423275878996295122753068060845534550672209721804332021729615866688544157183954538763663723481084235450450643044071014438412103685845427012881721859698470348212986382463996492590185117421791614681234330945501899959105244193318496723603751589444150245846911948431926361653453656284635311845721809545656623958561453457426967479584675835305824515363295699607848950955424589836734989907435099190626789440830559570685394313413077414727514049888931951523313826315787000384043823732270878542050723648059868574217961764849361068341667015740689343565346591001721702714788321938059718126230347072148691818366428818975506026598644022786028338740692093584479381810487727985195123973408504045261990890653500979999597314750709694118531084986391641564905845771794938035502808790842424451234392296420421026542298687039748505929097086857649825668953520370911946647267303769798287583914214245008586966470101792965296749211534574681582019591859543621029284260529445102506854558441288786395923264492642536185002064754906522943291959201269140005760857528833901221320177878885085646140581244422721185695696799970580585424082346452813995604573076773967940334466259251348443416541686106001835961531811632364222626251904653578178274719428246115661598004639148321546681166261602833533366472228969003554725255315155573551103820994556322766755164030074659795599272602563884108380872742032029346988382502633952045653538476662922100653971584615142990361965537891166826968697080542042593096974767366380138321962106129175466351009982011116127647653949919183646851126851992653622976418979245469868842195212161089170667456156904441956560715049957738499062897933839026231334505339516466506260227110999258781448342226759145465498417683403174768438033197244419384630791281124024227376019638368688909746633283651429114575901149882734251176410000285612505137577518191596316742934209242152309503265661636737708737102045314595300073662724656397406873138863422046801569258540909982995828148556077520338507163375936687963910706542281937587399329111566355259600928567887191802743880414859850418600131386646480996311776494143757710387577211693140407626673387627352907486889342018977751296953610668295506432129007699566753795957800667940426669148837997419334632263579854343292485671936890680144044839024060408803966117354677911387896334835901260363498313182234002163559567234916055904588153800065857064585767955995084671947145876700831045360221485432661537649157821578619779725082840054000088774477537100029504331667901124710468916270609461200575888919435847404053067798259382721844047084450893794784446276995510079067409688249718005694718012989041142261812030300114050119462748040526294875739933647061618737793920344086690512723929736062056339027226039773806380325591382733940217032199104560814291606941788246305288552089711181426537821941266472958526370030000120593741769146423348820843716018432230578348836906901828225625840917722885431755543265529243664786536827731655719044608790516521889054659264358710602970269380968812797695169992401670876650327830010784855012888083738999670528528667604642592140086465469794860139685259172686571821808482509349844221085908592632340388990803001928623995195488044348638192103366523619908595008057568204497534841103311603421991212779114560827652102209092091748292524301281158620064987604106141199608346853830267679358894875640609670586759518732108666748120894482063736119686937955061106750830490137372038345560724673061532180090227622911666236117206629556777345946618850239521886994869826670517741421275357510339283626795851819399055779831709428533311898153104092624281663483920279621315982365912860516447152784259838912951121986660864743827246097597010121340893008944637606102347292746814681487128661716749945221711298102137548626573345727915292532004301752436692905352068270533421532188573511134521384079857439705149747312709289983166693311205149022994382761958899536416783688687390056733489733454703905700600095160328118709559983688821015335889078535390123782091504498478569264206274995212097794295950972100647146325244783874384117294297069584757034480765158588192959112194703745021764975572318726316220765742235774046059026634108836370996651318335170774127537665838002472679224476969210751228237244218586010461253057032309025692673416450757172885805137621552268672559755451733135318742916878557341788318625032820107522202298119198596124229281886389009167369119671875870834743870606770368645030212179639408438003288830811842944930584117757072732905417374616248116314505305117911357056702371308791979338223553949564132239652467514079225325411119830415591529582154741840640229479782354333418661237449585779060136391078271884186074489347163984025919799636653032602297376939325163025365399036237488198057496150274554792637540126227704831723950530527585297586617276977259480092974649544336768818111077288245795150195577153786577246624023955134189129252797759942415488421596335990931995595406212609567931333626227730806283308489531484083932991840714639568679274250982397315667014357982311328960151361092643015941806124795059702216247960129764993041826041221851410058710499518908276933327003507799253768864227263143367265396126569964953753465357101379339999443356656953158418896618312094155891584106793304690102795300098601862405189092767195513214480690760970757511909610795694625236362503309742062453148299878035696792625407023420566364688847856135981187298878332411826950039591006240809297095574887377653592215663465427087403846272059652152381335494022031944663063650989588552978928028443609006393828917580452369291591256159016251002104540489055588761469506382159070189741276540460938805264481836723667474635536576988469954868778621409335847996391992109389943237879908249474586599178036116820494617953421722385780298646300382219407842450032425341314152920620557753892224309254527909635008329854382524886177860246859766998384295732165789436403176070860903805146688016737752424108476418174424916953287180297062121703468844434071594821780238928376710622648499197036850121561178974333465348249705015284789935868805175129851684506930870931420163064430498114471285912373180177074980702763969337105991779525399233697670591232023297104973157557076923268033755242489109043061642942004197480456031771489039824354624267990461987042580814299426203836961811311691380109304370930718978847245386141415173111889479162448522838061615199430365835794503342228320132152862449349326733137794498648664660379682316025660008709683774768102794772533186941164220470774149645748888772994002841949722535640362311303858078948972067030659306558618143594293503551036547722740899716015622928681600253119418078316746325623135950127034018323390228590725186777691286329537618104694225713344519624684286995405259320881261055675592562245743344907159259564032132804674743131099704613663295508090246002107851543416229277191486328161061954321568023443710378813185690426830307181353262392898532925114439135124995655229755629027432830707518001856457821315270727637848590444125809794440705428065297854764523040312908091087113619730733364248169127866814332790777835493767928110857075827767335769510324278058283081138542180947790518443195290803947599255333295941541208758537665931824330048883101042861363691441750561799571874418906636537118419787374577076887041099509750064013113325540608737529332616508949679738446224670069312632224662330093969543967670314433615246709672741723616632494792572474888150981261925957417130918253228177231174872135237308526965885015415552436407860655179257060568041585534127810602752124276023273429641107408778751687965055426540734736502939358946292013151882398232005863678613737728698030677640260170602623381346302782310069239105652592445835239771584388688272765245457062656069627680084017690433513365847066017577659208788226145704550965504095899045148432210539898445899415322694957876035456801837924831786803210655289268614347599233431056877573941257333539939962177983405369553280055102027276963202668404191357987875807163959815076500614517426337931679800728878850978644747972667240121855774782395777373861074040431956740565271847330459038781537336448600902842471745312072967797604198342728205348847534568028207691344370297479857087397328851631142701723213315561277083647657570805366157009918062333457198638103719127451195343691348146821703259642784211711772665960734712098223690370353600619308246392731447815126173758090129705367669833244670703600229705033508680476635360850249069977669349387345318515398874655571424060019345203265536460088591712777531380372529346394976847828411136671601684271409285759555056114075317625695309624275758087719882776649657686507999966281753086501680535975855169127195898433643669387528386799588122055499917017968635889796572450916765154341713674113027437308663871608461473320570244545694086495858359863374160825499861859426336010214735805669330718879150116984832601559209293750488006158715397053639771911618735633993648405525349841398753356807010037644659853649545070530188015878483879866220661453845851589599145146735904848710493750908664746874288852734535938421960358736370817859683142238726379585661029171567997900295656151309353483918676517800457711875502690483021546551890913568655829524257477679444085570280896578923964668527229165311540217435561521020293158141307641921774971291650757531814051751666350462397751664610915629777625248353214174727303101785874725825887823718984963153829279362583406174473556538246851608666491960685182946956967602524956850234772808200318447034658883521966597441741849963460429008819093183680320626169766986515836178383139688556468700407652256307293570942707893001969890902009226689520975437957331140100055070671043702485623228450115352779488214396755909699973611144995753833515605351686629351104241919448250573659298535060971336611581413534430372365391600850344898231634864165158792053002124394220931364936911550377458074771052252892227848070776206773385667624794173941107483034220255545396008145879027233782447585603123500763121599751591687764050430166378088234414305773519423114496002663209985108485704161246742189155712464246663861385849671220057323848048438420929847389948363707680319621803621093119055368824038432255805362768356611176904428948913915912885789924284062411645501592647792156407918219849176869627146755419590671184295149018096470416419535025021478163427620487085072771366674336225083158570291411289903683860311055154711938895568916758107769481290744642515205924255381544130431911409778465322851582245691840388263219821066635293400659705884478265979073897783741375275296312026361578590600137917101675079735586851563720238615203729612464321969036264768752689167073577340195065552249102197077986448155781360666090312229505269709164429345696319300938118237946999181922050032741875532629459556307828846673970246210691711025639398603018930764243634313192022021615197181231248887896280229187826718138439063415547857104938924174413572864518503846786913606597001976591479450790302023277532610921592874596869068307114327116074403411615447192514933649448852149606402640045271730268550552552261342342967090128273584518461862332687454954740378485587697122311811378549342707674388545276039122643820036010577030647872374091764552365762423155102456795082681389234361807206109855882660855960143802474618784930141771291755853899790679282164827912829008814847867584313017463584350650888330644003375875588371409222007260814738052784139652763139006247200491235117950336651164060274722840670240012708335293151067263547918434968633690476251688776560259739683038601490176750058774490094084999767480149112112871467949780521674353020735121996808921100259141321951565901041692786799768022024494501847687370832140329747959015741968089205891691483897993422958784702842810094915774601223574665747032856257504337709018920895994737201374583604929619054828030516318174345835746265508760631954146752455234550598517906515538761424020098912124027274463253430634238387934359272808015318558178262291529736868974558869653230272943851198056391800892238983818192258018587386214036910563800203476290116397712936545923845170446638781337629875997869253229002420312773421090974365016505019171814384632306870027026293763113496845643026088197585381066541508860709933403221646431682054802020037472403458477287162665825340058768480853596859973375271333133008496575055999895289180926259526157314728540741643208278766582915286331616408773936813043941821425042004823887452931471424877791480680559761201293876181642533381667175992320382685524065377197340432939939907443572193667092664766825901930039830778971273664334005645246169998625025357286442301428297724633977300439915563663410102415843957838925904427479310728118107276377222040163999609381663776080700865294159362688983143177535448059900826742821531057578432287275069375647832265348106540391481999942094124848363827583448421236576124014388016770800806987696027592815320467016958877421656305646067391101696380966418832406330940271169746895148442546634704962537096732979942383544634364125753333034099182131902338255247676728870631956890414332899483299671226126886214493716220382581307900123515603563168053868296248979150836590665957799067573471587064144279172704525078459431819176093306844564021698984629926789121214111242530700266970065953277700239715480116121243850039379326214077551958346562425203464293918065846497171527282153151114081818778543030097439675937249068546034866114045241128998096630482851536615519237909586481041648400692203464501137838675405977858742628426349404348959685114265159411292405187268245006730457500713772278407431316574812204622354963016760623517883373719147142865498090492499390808551000704868709599038712493554979989296812763551072194180616518729415866706502850172781415155909752136256817890180738714851454008395841137954421047453986366678230281682607069752483413842570193621941537061667279264459334871417518345461926983256304486191357000117934291987383242453742141324777106483809012117458348983573463917417204325105784740196232661906129149880601302479868403076571618104717627079472420977556702295503070034467753623693402976756619832409850874553907438527357193495312962926780436309286712425399341809310821126530451890109427518144584811601995246419124310304046320547487551529111914551266694811242690042725488241950269967696224016774122170761889297068886305456056383738771498483561050587086390175027672245105992014600597392491977381661376450030778474920127475410436679170802555076969097022659276253547828747345455177849102417969826936842885776819786140789305357052803909657423950432569448177967368920998451949004016808997697950989830560971778794415827771070263104765429793257469820160589491426415158490423790342180177567996428424636212728101323519084275207530414067623455708022355183257885903153537430396804730883463214739699692579938864592485640173496045546291755218558129828206853149202638016212122463636311882383520503747413838936687388634578837749520034634935074814169267630138529597912602505929100988030533129503902811718197083051460963354132547526657421850966499439756280536158594517510520295576041410016172057792731766050427065470919171960606514505481580268441707910116871682025045390695817991052889380832591199625206688542245993388231060561113563926443781520715455563440918015326304963799017539068439423994122479986145613014011615429213445793779639053235424144781040341526954279615636344535856281508111456752338830803779958989142956220259394875609502987601765251029715831515733347016432658113399094828544879374212442958158074435066084649411640580405187420846407863980391861783615077451585893081240892513720382134024181575051709374320566089822619025467495424087690709955515163230903530359274475735021673586004142620001635429142529954478478822298508624511368671982536527513954749024312637012606711591500936305904153198592570462950900693894619662503164428257309496959836308396115109823808708492897333643168713031010800934437100315238491763287452294387190356590111318800526529360365830494288878994532540683559025755829921874562281161110036694881779145956857083691970114462731170882050904473107256560501800730339302905016171870203173597788710646273281756499617476933502454814106210813397677720688712769467908905171188415634730453767956563248443972857682695142769906616174469375582418558209364940451167894971926502147972257982335954075621669055649538482222663028176598312745735544728827548220146999502766431220510386853129330923072015038438731133793167203134411187867956114550281888249998214120624624273634320089126535901745382672906656773802572301530549841106579524411847629649460341831073802845706148794273887118071026642984669835005710799912445181573050618915262604311308799947250473010623094797810627974562250722326959075722578812139092655640898971128231485730822256130046537127018929149016321098711751841978264564476818741713548109870080878060024534950757893821050435865036224487245927540525345565071380702718966622050013031033258904676607269975734514672264406606516100302650360380717649712309626313321736425376712307992032025806282552717708198866855570406170573354675427069523436553208255102879185882725522475854855830557057654809988442902702661563275123722516486230872235012485320768323917292301414190293420804042931234856870002033236650475313213539411235629686114894181104797748903861463603416108165702304245825186609124694917476592166887868817550519589573435067308119619518657934126516787888698015656729744593350194860683409403510852984501445175737957289933301219128343394327427714170860362201435451034028309393114681184358264284087349230845046734059270271767393973542301190647665995180761770628985063593399970306624464533757064519917081568897198044594883752901792771767364844099883046935626884053018493188803835975315419120603633876240638518764600754569381176833770212394538690400610746956870357665529994715891061750888777423994800783346004375897881167356612991881856859285986495608917059195993573955446164146355982809838264875550174393339815426334264350296110776535297814603719279186580499820093788182372139776868673387243589365572188805829619542415872542899702838207159578572875557516937656041418413308024025080303234229666243855958980461734512077868488128452188537540393873955238725460098244855916918647203958783784596803496554720534476068675692321852752884829801278366688416435625435002334664053142268064746730495051478066508153411011725304897958406004936002140882331587201081880223895991587968647405660066785298139415252120769292483645334722419729950244057575768685675681517904527949523518983839459965390151994817016680066745098038914392396526827106456080649122184198458832683293351863260702519900277235803158430771221852810629339464146260830272386801229015261796464962508446385925932441234417470314588997425472306764596568559419520235385793847375594229465189069073096155900668411851134682656867830622363381672421355857713271227030167943175020280345197085936231245601732794393323568643440757368616310071231086986909791623947826312206508047332473765170419122510449176537612890293959958846375107995424475957585251854382189695094598081967291112400469988331418477705122951749384735282072445110776433182663769332718207566746504409614024241564828075915745524205756250652771817434673324474177902938341779423875189519995917058057369576176008800372216478481816906746917358799208122345001470901885865539341587418097253809190048539644001524765221438790083956714880543078150236840675198263266304247667411164292845616670730337940762943931233773739285589024335959938940880336905639008104893998710234803577751716184169091638904507249209952333161995040792414347038980160513955906845432255755891247154633798478684597983797885114193115293979030418912186368821049577391705060529249625521099371903080590760637959615140867068353500754949647804790804339686263254146586504166561971899881607863131077774922071109623805426768540327306884815811727303453301418415602280904947102830755062845211788107814022061524748234585446321354184979794920080154841067497183379906965407375595269200082056471910382813137391710984742930364862237044922641201530178750154673024609800017831035295546074429439784523832796296610275004422642381382485238778930169409438056461869977435762250202667466853853233691304758874055640564900769553680230700163273382602378570473765769939565360191924208870383655559397491026587503362319938688961320296369921198704284740180558963849888338392322792683157712743296925293452838334152221881050134197711482329830295237913215804034163489371037839717761288483464418243148602362406619876337327537188176240440070606165881690952613919796276544447651884760257398715701080293942680755608274772354903371145699813454105584095113051607396124997122684643190217034287721653423713133396507225883189594772114435992887379079403510917592468631415331471034584289069002949301478463118191949129200749508071580865802316209954001468789780135962266241281932095899774372873817595688087816334802997331814007894232592139968640380248115449951004137800840453765256350318254603480722039281122620952320002236819030395949604692761934594847147999101550346155145997333046653565502142309533395227815671538451826830006001197899035176255906416485707754953327939348023393757730185161921127271834756439831622813212936018680440276107162407336775996420640893715885328185151825123013711881275285522247051159331262442852988932387979272752452037002871248438819934963689649006168158355896771138602659610711993756659325055443295496135267018814811702367557735746604007036735551685890112129263299715566971675923823710679178872270137436031351630692460067725789192645759493403890894305147305432061772637258357731746155654867315535324603718436037989309010741214674664595205785406869828270441839725489103609102791230151826594259284228429766844984370640881967647758667727889988934457265240298501342479431273042271156858140728601694824344679828809037015356554468615800796330096225697003753598039554578478339284043333339980601287752576562123493515380911856262838950078614807595040018910706370089173404618268841689749839149158420283424199227833656352747604384118266222775880157133598688160274515099898631589068521062477545613903095326139373463901019384206483620935466650314477735951614324681008432352060313040765932897699422437805828975854336143261107610317012142236267514480602164689377195844968746441679859087107397195599066811668398575484481437174746481123950278748365616122602054729665181371723551807357986052560882158923954520892492782718357204168641063193153479044200139343434696767381681719149436643099972473013612055917647629608388390350750174125561743403022874437693265422647800698607169501964124083732078384709300635372593905818603341636241141292602318810369361238163852390868142804430502005260945277896573221910924234131167973322033564671094530537975436120077296185961373241095308509247674697608493369200988257936291561142345421675571998173043300731581777158292210680701722823598799749640063915082615089559794493394405784601082764988661125566389511814699470710223057485132330707531787778238487319929872331335837290304282637054511376036185041365006737393486320867068751994620272668831080488397174181062007981440558768696888505055596989530993177588320685770389957793244479983894427664913488624139385112154679771516956370177059171999185210124625167418248407258404303572876687828410163988796273237627707333173146247972608381535553677411353757150177374335290574960176917857841799718086789474042734574705404444078058622813891034978518053766744613284238386963922276006474948133753967074430670748301629115547013714281698105024908966196264710503591686592645136719612394471469234610559102111576504238778004218945693664467049844772294972535904816033183121351906654379021657983192822363665675316055680624890601161229212420523672876776796065200892018089939092289679680336878564631485942152445650342858792622730261534695453806520172634106864788281919532070554911348826171142801228137195744907297041871960915220021235404041987050434820314483690828337017494453794443823271464778528153595731201398947125385568544610066287469298083138053100643142509976918642811185324918789715722353553912985619079674749755716168289541867879100653667413275721467896135481795265886533778106090512112106826378396652507311236975828676429846197527334234255982607865626825773935806215127713412357205301846190310095276074626238986572803483369676951300938733867362562210430831523216281546092575703319944802230915878037963363753155890084902384733489542241256198488887736474737047468241926633571619605350919299606153908248298807553199643191778230297754588148572726461748840876215650287078925822658790426521115969843755004913474587459049349724401378769810832477437439373878823130800257737344006827931030602630166488629615770779159419792998521293940612049687056445893470678019479605645302659981274439930080900690385280253865223772711823475323456325255884780230381341144852308788354776629620630675625397755342697973845987233366008898557966071736195484449541993248933436373786895468948388124377994848501565260925430310820612522685780485024033518817494562297164167923409873918113578552639230138176894557826700946534304432422944538744706790285164694778130854890534458721791069748434870702650752797218344880089838524944978986268883918631665929080853996626081984917678883418327557487801227795774645966019695521245756524864110940065253988614565253083462696797811124177817612673759238061446478356392325136539773446017112466191265025455403365201737805795028347822959825024890455219679630280394142941953765541384088867916355713430585006215510813686329607926709606833436357116312429339542041865893830692984036538612682606700102606094114424314223282713671506666714557897087501123901949719091420132084450813616783168649965221490383872422437122735795041164082091061620975085131229769268501449674851543419676630553842364095970564001406484589310054029582431718046490463056298572424524864742926003687334215958295488823852085953355589309678704480982782028973321200280492278435008180041852144146317647753008552643670028066735654214679134277415452512550236746005468386837620274087401239263778720763823223404670840961940275322744992199797524724066215024837907454060007819295820539138500542555496888733404659465563052984930488055916199767422782758837665059682323917376393402707345156778729750514060204939965538925713985388934794512546967079678458279936522710488594179483826131560087889969395954999785057684863378812170799977164742983335749718276113979668013297234264574012560376585942960346485411069397817042340569287984591053015561740825461889624987740502657929262547279973943124821166118246709051321778282821974715334978567282379326012860473597391079380256676394297338535524045778586788992612828071747582047628563040819194032821716462759209579861017430077345119601454509335220204687384314118839404296496792538821568812061710041046943258955156254441584791064197170608393404623801075961225910045346164315798861805831968449073320036189133010906845851664534317634151091737573867927475520640459156068605238472940983598540724417194857532410599264931299892434395953435662046040245483871921541367361280264448803460351655397801768549766476873006645408496266632236203681850929889694820951277246470512424965095525903891282443928147575011647895925594287828551128272434565634297760055399261837073550383530973556927763862584193847959354095945699227307950601758214972549539154163258134233677836456414781764688558230551496867292687532698017389867438178588078564299723632818574314793609551430770319339113187901828990292004094344364578121811947507510962163450182379021192834459232999233300717336330124388363458673431666527775554904629905190467549397215376482189343519323972330113593319836876086040025611811136274657773212620554658950596692033671099516416896269962485874121759291444301594806829834859620008205696032565878865069068726714480285867146502382496876610024434828189528004644879451125856261055459782861222765355322122206919437330166482432646365361135887121061131081169688889146418697722263983352880176636847393884264857264494005846611803421079690589764841396257736217376931307568505468274790449350657045041191065347304344989432410670553391290405401643348709256134673118234991448696918251985752582507762307998731985970591845913453958588527968825484680224343330250839829574913817741243230194585484792904814109456168169864773201168310433609031664074071222772626864540517160778900414492262229657900232099698530070708889627383905342433243464185111750565895116506564723143379189734073945794283163010321991877872986215255344496809982556769938562275274481316138050772375177103259543512416874855125417996230845657259076118685891047148059706547624084004616378147317906562232596267066870635484285531388683431357810284357609447093807070154587032149429430951256551076418717842220448252715277166404420145403209552628041076069136201801435385276131315002224190038092416117502148482758941237345690839162244998702190109206507344105123742572699419503443047766906542589555577984382032133071270658329417875306852075035272242008549567682167253196722052182797587608665008593473891968134838747076237238919889785295886347859552648556276442862795353080906792135563816676321231464527091681791841561357868926215706481900507229116503744453273340320920604875578549017100549287646854232006915870795851771539985903734538296665502923508093972040212704853093523670422970466957794649811022164144017749326162116793023559954279464134788241095005162998347081269597051060931931045108986613551845420071239550528055845816663160822638334168734815218822556328207592465098125258214734628294367852135051292469436303088029661656426107117871421990162801454416343332953753396177361091669971395432139218576388287123518442649902826134206744642826971869915272252346394625290706155918837197412974196608582407247642826502031491936363950789648799111468168507005439696393027975567161735790400322075642900761383734657771108203395432132234512252183639040748274205329224485613375528043480377477244400173320883379422794474187192806597099675236981506147445151554884060747381251758352570379292543023336039666771648874915892193288663292049414485565242530699485810004437418131172189344580417188911996695600338013722700538040544716665864144387260199172767302191121014498496798996623029244249160165395544015107216271630607192786456969274054019300759021292341288253908302679600284508204581487539884483774743379079612171524518910145068476611524655176542177314623051376373074189350840285390459170598043257728562663769790076127360056650534420086487740639816872916826487869691553592645606462984760836047733091773847842018734301229410775458132309693458068638017885741692692316983889630968623906792305185167883726576773942656153180643657602922574000959427194714014215935085318589360894868467503746971286241633674703240937368728821336106165453141223448559725956093484460177139735449127689088334967525031169995680063564516293288384827247588771636399869949534270720818895369966353641087457640502982518217433467567945082760628939232829719011932278594207022939359612474989642177114811869427812549595889488508895747593853798260621519046488034439961844450739297887278678830087116153624145493763390445505159740064584763067711514906355412975083136739497473090017966757192437983729422861551504410556803056859189522969699785504986190881510563620879490283712141969915750796597904432125474996055038792102769581199260639142872651622572136270871007891281206054098876020722994209464675710377472629810047547469021372572360215095519926352086095831220345182119626113157253172876033838682703155599508244464242286222599448369391384776995970329313901604194536194753389108156818852964726601990026796019480160564416206627776128002716353625915467526875275437028580715947353287116337463036413657777977348508001875779038314581036066542163232691599441883847355732074408596307155640327119687348884639231358148353997915927285133519006952623144736290397294834476363541041212127112005636515528995785865368745588738630121319969529082421813261607303099357694017441395596918710079444092027002977962243107434112577093407756922333617332581100075179352962290542646144647480703863891745298598687179670983691823399455108869874015979359617634126734197861052279369235634224520811008092437064655269800974922359838125947616512037121620986294107934566208256166556642294521201585716813178592219227169557798536849864331457943555304100524276234536884321385524041896814152539108479422969854726755056209807962096053212867759299549990300065728768995056806881566979421082244179908674335611479747555113235453163123361236082357082195877418655363075158766675726585414441284380181599139601835138016367675498001930074174790973223015981422462071995768545811269523848290642608428614647076250551475856319862188012575801983437334832151407016782902674944846604491608916978900714726374297579317716014427954876090878019213975880288896173281813100182223356194039784503682063609051677379609615908241283990235316170529550860142860448560928671514123829240391014740376232102852328406109681099592877283857224383427002105953866969233364144604833294645393148322715254277112657209501685637741849228247230872402967958455534107135732121490925680722243549934727538572106962667839052728372424516751491119050536585618391728712278972213647870436197014739052578431398661432575815421520383745278518206763094846026921705574313212313641701266238101235500505649338997548687865390765792700777968850301958582344936487611433770519638831087507361015563132520972249284363013278461311849692580036337731396218792196276549365093479483142440956317786121763115727926865644689869245966531021127977574993997760279659897549395453587914340192176435956897218124075978929749199478061618015035073042391519017959709713856268263515664219462841390212034732847427655184555947438394718264694874804050046149903918331199588221005997893331390574936570982899168756988893535513913003575753867920976490039405288284703809304136852151222063892886535919862217671930195912233934608674173856656962580935905324456823713083277393592272762245166175927281135055275325381260431919374363641396661710347743909265758200551204505121137114112808815691252921716341639323358352806834215772576530437053158586107232232354903835152351867270995431031081828740573846426477993935722652683528641666858437945328590263314342775073642891332467169447752054734106770158443839922106609145468181043467222164116355465920888077254812175032780432478178336935932141184886142500936895034625375994078172871982204280531208684662318633943894784099868397753659289716955153587694880617034001557932338211754029265558430525006033449507198338823678353950588124278775344966442000187710288942771370808424439824173421910057451870484081543115380166266081473999194654424098811615273976730656823533369182337481688531897271352846304937612278578016551943494704147743479007192379348435032846976674858093250658824732107438069150796773131970713415004067144049696540409181375118690817468605966824141373905676029000869392960399783416085896991831090479838017816767363053043341479317183876841070584059330636614916054200407199800939590962754651134605110648894834107491902555095188217003801399302024031105277488540988643759476389694625047748393562983943509698018122562950167416984850634169797441886372474810358448652620860220876284678657335627952660618341046343612152366257141212906215684327819514636055657684889807697139808127236442904594450457431795464460722066629342104525148262977156375482692200127783405381205340171474500016572226364093316583318555163543422597437992541577683929354726550169513753571615271107647257812548080230339487117723852523667400509740667614019019660713935872135857300603192080799750545658752211464616801383611794834419947098427404314573147478856252970995754365655725177019819839150116143364797721346436556146329077396963162297696079749057456249373324887179320583554634501825714498480372044449557157233405412468508300205107413858017225280934358332315739116484950463169220008876754182020560739120715462733272625895363354944030463703465318622333655259089886474366692892349055521493181922278438836708642023239569033295048611983412722146087244373106504106862690360166655703428779650715166924726352988588184327242855885152242352791104196487615926208928786514137651551063024368414858084694127779188890900910444696397515737328646283638409910731840671447091296695791398187320617910448061219980602934075465778772740986968648544393527312483009241404863237320006968749591452968302915259608337241539685844364809314901752067188978910614833380182091099575752279251500367648272007038694851173617736629575211362469260657380023125451201382653331150049192848151693225131983931506706498669111524472873034001597722754927099291190135245073617982651280355427442079524295384736774957747417430460872314723943431968366270651149944948205143481608940920019694634067385543879846538975904956919554509557958799575659662549151659519638902191739615715020769152524855377682252477094542870025382866187909544570857561630363793101268038942632788366300630974881594662979358754050329756922000778561384899576722579782832979565153851842584186813265076090571945697144515457079963042430384258401500861462146668965218686102510843788348405683185788902340132318987979304636278515725792229135220657633389554776049329213631747976311796691027129580606988409716893046142747500505905983181512218591343973677009269709730673422889044629812221312263870129165955889345164026413764103708507624818053828587760636247382560736811961204412111107808293951848629797978705609717701975423699578650302769166278449891798842364653471731161458254430942964887710624343588723842940254657703619479642392681012508365088500026199039332978193840093632042194855094801395646617561901909064707487740716817712030019757235361206113690689452580895416985754354560526784290024417402441475326344829276181844272367705022684407614421857852395496536734583336716338615109746313185062907208721155399669875099318913259374939618681358238534289413315925761726536975450603335964581093959155762834527083848028693847029886039166179682319060070882283100065148535812461418254063968211789888683624007715745378105616466145531345111406149227301896132294154205217470503636809161081789021843237267815560409904159217814695101871027251799796692080333367449460014339189263360464383736477685097173744227488598984827896230552846006827083767928915236074637290076961599488120595509979079307246509636900898034318982676910951519119145933106830166939181539865839671864537359670018345585556019618414360970968457072416239901515700452266053524248152974491165686025303699610323249971408348270162397459838186797749929463523268931061661166189893161341307464393880577122626190628584204534943180491562476242980359912515327625927340275760233530936918893780793325343550709044996361775286829690589835060871362933126239153891731980288129238705633975653468549303448625205517745822387182751979792881353959689034329133107953577501727042188928806396827743121815071314268484747677223777272386566787469772987189274975850602869969704628761776014327225654379248612222247846656646450649151890892856571791208769362358766521539070622592897107291122901515085456538753137171165791367255955828390884642383443700834736554300698906273604357495415333937760166311856938416486045833232291611328301291937652550460495228481004677732051792814938970212058062176209004508698480612208000473801888634520229432083369752848403470844342424549471811649802459564728458868937936624220980533460436306110943168323884304207543519338623799335066233979867742661267415272812892945229354156388008095578430620966486085370056039606187467694619797213147755542918893901291072139544274083841357282871920386495623386580943509265025278502699731941246506290793505582244408722316923706113815468138622456920469544627435601984958363113646494568260279529044894299086730278750760589436851830085693088509407638459504499931723746778274420684756221078440512683942733510058328907675567669085348514873480859732837758666954118327427753395941266809752900463533781875556812525075069021356448483806336497801916915759293074869242381408072842350454672971195663970661380740776355251809731385331405183423873053003352230672440559668323542307409150357176113172050393347066393038394918261223970801327086006681750631188391162559499062269930743061043245741400468804726893906697444716167291508298241626824631201098639861316645557197286618221024368130754199775508830491777745484512331580747619127704753506009018152086340625711896974727634009499377499065957534742416803474484673527110809750598211831504219023395041751841451109126558909100230774397237293382019261874476179322136919483366983382795656614505443521964526639800707766072782092515143586957449255948319497675936441538632126179382119301939983273054193929248189164128263265956380155869279636525505673066626503615688136776185622262162159707686544496539080767045299893803729902510195758123290601625861071589862414852353154914283940336368966568739983675745551422428168205946849511264064401022526227569794440910334478856514573967751833941839543639693162526298472964075827030515259211408688780594597726515456245710881768504402700300528423255329815164374117988546877594271136884591383829921557502950523575361234618304676938860871224333926775054828780074386767290530469333848897045192761713657146745413683929869723608389727000778675271562073639265062983146772679677151264240724916593980146107505868841874139701300550635585412835845787538898433874629621677767073580084323662462120123232697128438339633462010955181007290557691160681167090271308786100857485722629772393445497999938435966516467928386854951854232412514479339681108071808869891384507046347741899225983273833806146853416326558165540832121064963413418080074348748954712529898801674702684674186850507854327741576607293696590124920122587223623733922911475866788805786568866437376942470371319201054756782939565391204754849815185824754381000961447541027212638202992574034235143686813936505971920252951847793695878487818995668193577370893903953895278635797070991887525844928538697119877415725540350135101907005960533791400255753444036591914376625946776515939374402136638483947826338053019415215776779820282658374008313054779511845574030772265211954317753572095975157527698580918903382209848420740686083732885534592517397313166551245888511430309060894536046284337490208327989971785228380433185626500515684863931919945506616648766351286192882477135401337848225841929855688943054734647576649587942116663682523359707174265539862215723013634982525440110418101598709767175231485087147122932280292702592461771929860807889795171715026770874543205221512640506896656969405722415313737290433244129504223139539228546523177811992915304472713603706339408849640776504188242011576444600773161223088851374047793425228586264193397502022870789009380001271202290947643648025880239653624689523794364078661308121153243211282813793249357860377691085921777712108783953508749868592438901622887254973055460304276919738520110365853210013035517185180577794988051136633640176388262673301964861077686060602333394350696272592590260149302584589884071364650456315639049751472483899578264677515432943646840879604904998302463000881634784582385765065565112096984113495985873207263926609865943603667297058717831271175551474203622565171357160250728926664056308308345892502173711350649947219902329232065139013975244660684990461366474385644870705717322206480616063183836904355864524492900352411861192850064404228369560875618718957479489343375692071254425912460353762302737895968143995442124286284280440387869944518819025553343324370752084858098001954988477229852642344096233716859682151440165556191773607626815886390426169889969670676810826677747032099944340107887584445210697146506873683619812132705980882114005971339462376233179480884118882662652530760247846889574730820797563597664800086987353503063414964928142693452096414569188606105321529582580458361586098978271948171046425499575015112046824889540962642867261152167042264455875564967369910729045910151728523338903297289291307615391930244295531743190854053944907630224716619308179792135590075318809001642578855322280134583633656508671272501406465836303986554287428097419880091824308389259425766076646201980871844002884025170570807210542038667908874867406326651184298028056177157833596893603970402241592167536561692183290096791968686056844993687480800876686914069727035317035122483198891133684263242537936235133953903327713306303875998933216047218217490686003528331461908483259072243927925196191453551721351416023562872416424461181610298895035409684003499513583352872484123840345095252715123623587624278605247133163557869721715625045945732333484435829775980207654483325634285737420739610353824041030126810414011751812444243511634461635208050796560923493659202885548173393171570091911345578285402721068642132190468850875098645392109800822608468005926746698579586838979293192214042189568265796983330720942024367256448707074224912498470964924088193312709811859220234387305285650151617829627955713329773169348486684569602444442036582190214670520966801209281838179118108716940011223418714062524848664256658793613988762420882390040805691874299626787021877890184962240050562831814121520730287695904097741042293472880987248996324469178235964702253957398398130408785900470017796344469923506455164515120076359823753981447704542775315934360138941470639878936369898314228301541761206864904805174854605435276511514841938723790472806429154211246675759314474713617314960095582739644664954054697670776146420288684519363295832561618754108577059311803514201568501411596256771280746923224817507523499318567727446672956854337259621055779254728432367864904280213903205485653235568325847585426731077051189820235204132546276455034516582577840108225334807416125669829835446468852770715909241842822724766373973671944867390022406974068847236267334355481166427854167836221964300476598888693478842998677564891942189558519986209901457952101075191430980603849176845728430366370912763282062884234561805703935154131922534613845894209421071977944348780938041654435177135997064071514436557469362238801640949824240049786930625362045316243075571944094992223175118623619860557730615572155966375768201726449634285952385934432779117308234747244978008314607583118623323355241696882383695339341233876176354699162352313202757010975717481433706951411720085058208320748953013042288701497082781549103023945436339751716618880281807562502849469402963605468237978939726724382947231294330303495680846685154670793468483900541328001380368508677135517548258871650880993888482316349395168945294133733871895813186607511118284707440275533927391828370052828778446624761101410224709347723548984122581923485836840091516630469879725597296150448419095116523096070896266308034053488596729567120483233475830550947955431944236739766149078919444357143962014648389300354216502099180349906785004027880640091885855803936359987050560678508609356863754295425620923635455115647629412669147529652345357883927173545296545574206300333118975033182267315074305662549609585039236507543412756941990515762779186697492995536196702234716140233121451150282960478148536122106645010016957868976273823928659173468143319329862132286535265100235045374316981957622023296614199856207219888201265406475568094338065278169829918032563987257511823653046441880556927530898917142872271647118746708492320051669040907624393863841969583701554199020445307011122665226444323922840408604136046800869073157462194399868275781686951537810689497891074272816375884375149096432793054760289052541912154522817616710644566992670485079466149646983502614415772173494368654472622084191317781226135557412087246590189850588057201843940548616268181357871378497764363646105792989111875995582508483166684245817283704474318673500327157926854568209672791595507051195906409954052038535441375586445353256321652098475009606296683048233738445708105851900538961737879167422851112663211569075354169567409234379001446131114056006483015362382562989005204028620162779612145847902953596511948977781828586809607162375253398468956238307049665638233698419826430435349586464813371074337101372517027749382620654128325440488051003874042175612085776355293305629882942072349674780333361233139739955662813085987360818807319430289833426838027891260625837888063415914767887601157594368388630501765220698758379913065743603398075687885970677432864121306677243295004576179212966560657175558100639201104444055114829225232060859807696791130036919236581057065236929628411754553360292949523859507071585375688643427455563180928076766477115866078166351531265736206628228895378681967569610382055724800817331770641297164778635045447851420428076780041811423064593577765247184430628214786120854626699094826589838262048176869965918527370304786055370156401676046777313582643069701832287617010493447062105414446096993191194607829136297870982836022485592937738870237060283027626819915841958664166009360123571137196771513652939579992182317025911246213204146456288998858479360915471080194157941443247317973816244802543113224054349265386893766294735372843774734807249973350258082551807136246752503887025671130432233268504156316686821131507615516892685578172395432514299425290484533934875494123978340347652824610376336720920297838985833487232333305297321986931223608870872332208641936565497119871551156992941949730454920092780378989845492062180854928903521118531730376624559475385262379017989730292454565670972173846144973318954991037975144578094177322301375350507238419778308474458636519369727799013699851946547670552912311161190842037306904939465514787992237597129447724464448073107310914422084622762347188110486400650795120555202115226704688163294142589278393773024816542536876574670793392842425168624169200681191345896996374882792491653223953709310194168936944151648748299784704738208943883551524838507771404846713100462824356068246909715262989964545198386364472056218743917095351981154201480292948750426876808561120952946378115813311313146357433674078943316242726386977488136271904157212725245984777392792260501849429521602908926973899216169488756421733865899267630405513234742587593947725144743037938746434161584363446256144230154240655347614504281179400516485231287019896017530079933948753966473123421032461068155025332254130354001694025643788277613066454703238622737066997703868700175134288452550223184153589206220510318571924421822912421726042306324715961482474415462880753269807736492242502907212869397605066632533238633914886319993054909859170173390854057573212975877426923154428842211492133024100849696651014545058273018532396681402536435497708856771307432355611878199768252545210866498652589262056320012348323065631934872534243130794400019538406770938667334723570339489184896901619720016726119085082887877418366712086482189121885478058055093859149321585046059470226538672415457143910998628266781166661525362915084202634429943189423508620404368984462345000294569867059364511502740930517378412639315913366709373986239389989255365548852307875272788695860913736855374267140408037628047584530682748439234267613072694851391637602611732063307967459658533648639411150850029887746559726127519229123152308778866948548163314220054899305090025261530235157489275209515973652309202032361650702978713475128695261248561059268445898211218153658037019709181387643512232475459040366204081647101559710441376793162942538655357683502410587786647431612136326120118787733453918955126607954670108079191697338068848251120981071607382135968839749518371614556520141791789914939512387097868492519013702601877602769231623366743947004383647150111053591053988134324555094720010568500725048906840673352554638783033819597528315596678039803439082010438332130140705112017197773531459861767784960385671492459797988095338709227577661805434288446267840214957240880202967377559265766102648773981014473811652929388983542324750729717279333136332597253449078130380368832190018010651263881913498839480903312228892875472081231159090877130043298145967235291258772917585139033620216103704873829595664934574245384004463515334802768903331036686758875626473582120144073462687332578335275010619996393961869209587346268821915870467621876395617084882382735489023246044625791105479139724206004397755294285178994736033521340673490033318438241001359606490118142581839637921973278345421485703106961346044646637340969409840606877657901571276973109419920847252244766270245293123434229349226989311421553126593631410310897038065474821116057528836487446410625003039036886414149686567234315688323750489001094588301877023543761391113521045703377462228495513047446726678289643707755031338757279591034114242015007245598967403828592124470677489648830024370543329789689216410173470981527237496221067372998319629459673477312892430114479728907344579362185755366458630482945242958602019462276840865534424214063282785010483486328243474293137520118370056939835032236975454314380126897501801387123045743665770329993422407997345181575556733193185131781519751906499185456905718449436802946098579147842325331392922443374261373390446403677860083730760012632891083815380489688663525527141261214795736167698451081725725635175413497561173124716614812639765612875832800538267920727322078047385974022930052586323516566644067925916486803092429425522037683706194854393232572695394569717496575174913011746414722619183222764595902401657812430252465533175356995137378844019024044584608092327308508150525947376428773096135821616346155426793942157909175431019606511727296724803513757676543070583924963683056527744594968532692432609247640174242209266059493870588899078089704304533002316744471078026495197959536661712624864816648297119591074634230372381390959843688871184785100578411756597879298798118962549830156515792076982333536466211052616254979613733016946307132679819544136207242452600324193791210659635501340652636057235011818393460178014099046273566889861284198861254685690246838429021245178404530746706467476084413532675134123324620194679405340634344588224886668477285674857513139513624997524345255151108757795368672806324020133176803867825218900022227022958223229720353366064881161920079378051340580622094244125610630927213353126668868400509830233371528867616857316548764930182956134588720041509246865062679975315591126178505408820364760186283031399456844728421725859448640085784481546690478619881741194641296330111603923722337302038405124034370641777645033333579597674815274689394673961629628183783713961029080371636879104852697984189408941964018730276791977634829068709847215335583059681254237823460167496026941407785836015644199906758771484054950864333793306011193480414135202434647480194244859682637168585064210868630862603302568821652476152580397671080450398076899369194678999061810788229815846707140906881439654770906032524646730626406408695374308092536601872605999606667984763711182119745986928689078837678808380207584224958601166410963218114994263973446140423360802272332467366692467606621370740934046786974050155797671118198026097077188818211342677830742255176581484266770204139694024096065489223359127074464420671467411049990214011046807445331527711726633773852807580079790450398947038788071676134727387788669791617367102886719129319972295393687294908464708296960521346057504264042745226435999363863321536853093235665594103364172673585716160457542839386563543224729092258570306851187297668154679644499306611104536589980454699664014894586690822846685947253864291459010499083882789603629610116679493464810481030377293720874328119240278277538315901450549924689421896722418328164659295376267733174621120393289903957187053203572893179418350362455599563211631325835870889408938305820592448419787782946659811818578591717362872637081840191432481584316764020168913480320979809044651928007081050883138447926246078651450014120362462335036368290274256860085932095974810868760748742159269927316518087813586572726424595396707728792065404763936134614225645435247852036661872888309768675254520832613401900181630312486115954544933678261221937026813593904127530916611107199130935294923394273241928927066644753594923597363680245409119509215138604545514890652188465525923118909070137680766366004711175279799297667702659304278300162256325016222510665396382966858663639409616196033250322289568640608630482923099437479090920140750121326097265307755218296636689111618671716279170651818488116424553607807519927913396355396361437807192969046435649029718552829181684917180396848936193527192879390576028434276542012842812473178540518193396020004375643989059400773446416458468317004236630454880962883529822416889560804277724911330885722123463529370750404837790295698222942558990540400516826163140980633306025138684939287612260753093094010397082222426566215791865600055464346696089927399031547579310904619307669581290098044486665506771033603989071054246016225630729061661993153923379590413484741288476112605762519479440234894867300827705245510729842452165874498940612704383702461139474911587286513759465695350124295132534545612427725681771273183207302508409687343063794042237596803891249300466098410920727113491003000479210835386547412271955352115538984728147402132146323556471202334490358711227362987272904412151465537268810326164112203069831553967885015414435283513350391397210461553628735478924448055100078964710438862645053298416180518005486914758593526332269002163837348962282636463108400949080058458414421086099182839933985195426842579315244731278139055106395900767075999826386557085846005901660236362338869878357669092676987440340568640175188812863861004320386329859813159704451806568456744151501373219033734163210957944307510066381438457876087750261962562331998038626054317932609265270287627993032978354072161927448832693746311065516119993180480763063581793208390326109412173039040756239219317843137092115589963930281029173851403663319238826567420390101197120292595588978958960530564040547879869555784147738933815169459373216257273469822725902690062863402503588635004289015461142648631246650407661461489331320189741202867995278127640718245129540508696355844396604082135315530164921939894102466867382026004092476497744086011081503179312281028325404873665305304624599262538081195985307778405952124770396451245563543844800779491093823601149075968718993341807111330731000068830005085056134670011837538314897696155809532301004610395665591196769515805460912751544394942803172241390125650675100083097354108629197768260173249728861794006663960113208423578625081031247919718012590361348531438284213488964501503108437074012382837367129230714804685376599179325224667228751837937248419651975139636300677374384915969661331085838532818675532393281287213295780340725961290738351295463189863974211522154233821294584727889813760306301231879086814225136267029885311048424059537779799718446695576348101942785994357979971322045445166478070591787865181898968088718823135708680575790508544081975532475168026977644671268592169344481782797628810014798822083488053654724016414256731906987872852354433194445915494451182326790422522796949375623402115917731462696658132395722867194530793720763659252088646185419149481098229018139773403308593998249789050223223173865315789737729702815069738149345823525880109575492581847969590389048417374735039418276715036426026152651602134041580256192145684367891156438988280402127928097830892817931428629090878844465497433005615358802471463226176314683484339911004789714609162393341177014595579961159213497922508196557225180405288192119027901591368822544655047374091295136819434196818750448847621591544959490796146224734872536573399174326439742112541239094170278327238999408693733809924971615376950859259113886234617687512535125776194290340645185452666278982824879322115417092265646932885162452048157477210452450555154830257262070474285486244202212651078668771670515434608619614635797818212397933107385190968492076323420893583148154795362232649074264876670915564899740567826594402406925816589110891252448809011641864796474516930749603603291562671220016352839048614336936498801095534994023081560943409810604974215720507856413651310114744303763760893236077025283259760414821008633587965901062523517031526152374298788914194872486819929824413554856794998283851739556488160630179244800792039826968943043247089646664094019876633522113641172737730689768991957252478962897199934076372743887551099439362831503179373299139645731795313065130100379633305482198510159257631510340998312608797057093704036880748351973446150281238849316565178900140818005701901901270380118521908272737782059262708759782798823639623252108044787559703634016863381675004244272322211941226133590833075686561812847864521304641507923821978532160584933064048153332151129653316966895426596582483421739521436914535873327986931758965663692885049611960706188780962626621206057812559034179454579299259309940380627106969076609091696748128092609842898292403532257833828468550734682889491808449889368342633831273269634752659178914214094640388786761718750180585536721705287527019218908563925413920746835851456816172146909393213690170122695956381227154010270451890179013353372707690123671475933921487881113664966493690891298115219709197678129696890503227132920593024011609885396892498414850540358676999653036622805336124736974115631074630165811402649914786864360728440410758713734838119428799619887432340916170212462002790360245451121344704002903061804269683899399746059817795295929066207424899783410008908626353341810730860047675457305949564523586225224582021949075140531314244425956462712071319439067803147854044800447360599636856449922892882352703461864384414235084215981815588509977654079629601848670289492652900777675139571029412782567337136355686699978449324867196680291324568241771114398932151362124982603629097327737284777251975026423732152208995611107047248154430086501126715369593046386395789047418211731572654610922336772051718744281697038176872704868340350531729642591911732084085083963795475934851384782439345801487396263068393483489836845052796842282417072967013982305166454649453443018418481884166337964979135883181864820639796652736522247671693184186475955502677681320223834276468062367036213046321811380323236596290683749552353745662691823022937096714713032292633283789771227048730622185452167011631649340317776175151673516254812550824487112526905456015995082097738001748735629241358404620286263887060478983374480083105390986144772962226057145149459218172495279735226354399310880862205921019932633896343466135340813166434981376415528167051773479563444990806979258095919262245493026753577772097243820301312586702211474665491956191418051599445804817998517989921189563080138994236876297816148230679886617223134959320342440851534739977158535804292489240132588980263331230817232327986959015018003157564280011631292016749769718245075343636266057045575813593372622166302231527366397641028506547206971350426130090995278277015045623086259257944437671803609591709189780791068541855513733798312612450454098001754322500129403570564453972402370664922996111832807929902838043024846839982719596713585065383437061656703825463381558732798932061328158894586879604862874694589386778449803451782016278272978819137044556515630933854145849310398722843858111793231925411915732877287978273344963984808984697814645808730089307417689312862106762631934029643984830571261711299558864878094002275587618294179397556089742565649583315955535794755408615908227330020580572480122705407982827790751603908167223021068272343516132759792411333700264276802080966945169404614219683938466205556127174625961986315697077737808815799863302075669092925879008661463816135072385772294325273620804830835492047620174859585351602599407982034395627693316366969148756374676936137669536813827234185695528149266877206614286828563124945134177954743695362547247751365185741828022438944001451616055127965122806548772574906634195391426473099531943642381961637167448401822024801770832503650162619222775300354765704744017521210091019130804391833653102203669561729331223084053929996879056613382424248830063707714044872545553527013428909945855676056703613092875250316757347472536322525597821155097127164350266874021177799847542100550207858189998966312519686390711708471565051519786724990256715037029818104425610829539150250069483412515197276611115657427135856570085559610098864851415687080049586695411718211306293524365465793559734016373195635152523912303629306145095550389855387104287749009142745571919925745934990680133701793297646740720479405332957398376380731600706032069106424168890632408464210112868336693510140118981664361992579274489232198093381183342105313114895999386401069070141849113643284020861215870151051946162473721400448396581177074991026579204197957746738180022791743336838829793478277527334707462270792322780326173135411545928693780745262944974199324199980140975446288660623449588026920484792882254228652135214477532807134785446402061551351240346737467427698361299570286127248588129287915609727137921562468513839797322649962999560421047661406803084229007124393186907487703412480862531000802467208671736295903766543543934174918953252528859011535581599008562197111109294170957369000738118802995192699296875593575595375598706795502053232798166966454033990727698304380258341707710041318488398555164311068691410478888607633872789837958059265790428776229459902188007453201538981225964164906644155475810688320618796891574010441201136648216919084203907142919246747171853273779628968579352633060197104722044125953816212604291387134670125935924475921270035664843607436352767475501655785441684189734285705580022622613419909853563419325369288697142687297409312162626345951055571572244955888483866394520789841428431665516260844536624738757277125372944766699962557832519158369348049112593050780420249185370344440097325472619696211689633249932898936812343420749237397608039070034773602899012336741966976683247714634351023144993770635242537639594119778938706634308076162385114926539496595075698390426098185774221155049585081764277307763765926961258779572476578840181822360749401806133056040816692614641144508404479495600288513706264840346019678678710628369989926711465732110258057592262257040744684295829723268098263990428159201753581146807178763253497725262722821084412985996347088206249578715350206359154985427030780062799186245310122429278118086027750995937698148102684910558490517600920194892943885771627097151750444179032384203001311706405444214523912072839326394774545281233535863745433439007719750925208380204186778198824100684286013670856211137516869974075337989835215009384222873389758379467074267476816755295108230981722339335641748388182510559923237126681879956660481451914177081701463508535975381433670649711885748379157776685732887475918232807144161518510424585215205079940067064586507593292132790509984962987020043829428177418016025458648490509234902216002490109981555226567529239583898245407600918943031351111733420705235864191476061426965469525523814262687869584864088295237939380996322557665731402097499485134540158322423772335828170353599618520424575473271510228898236687419939443993597748142031642836736922887833636789275681373538075288775297770320562828162297177189544268050599041250537119509383434695824777717845228452150936415856735031849689150710962327477717352124084139280052522814465178429190001867503794944133100246998513334065253886020883431566704244136723966463834901057030154388239837901788581375228791934087903503970624637278041444136687452514226076135153198242687064856445149743181447723998578525159480356963708306193368069161519555385435827648878141140707240982133452140120545653714621668481342926039511341840061375520110358234865964257259950459407637328525520226716799717922497288106618828622890107218224361170475179929407977259777843771357009310836003273709745517312386178079457259170368085437077585946994727002659683652849773375691463543398233095256046550436016764454054964007040992671000631631663879810009733299571700031522323985016728074918137204403848301105824553953331279606474584449843980980085406757991556137658254741326554430510338000860581352472566079484605771677628830937406476953039221934614819747434190035864301976038664103759758933812115304031670077483973139705114410645742904585901985418338513457784031907912649752046654800381900831186368433030238039522853746738529356275890493425601942328937472582809904654395347521858369927343203891692449635464640410740556963440125721212737060190391234025052394766288669012085634038363110150866936360678207227177400250867252734541931088905167319682165863622360945269640444807733811135316976932159676809242967665838606981954866491966945482184070136064498828172223016954082281518821607893847622851927613136532976313417596575320673290601922734916027734013274868765711713489017541299613390272397719468851752067158108852969595163550174705291715673177843683254452623758973788577750317303048073545853734636064392239623120033111432190913950718620569580794686042389461317905069487946799686872633451780551690723755455596364495052348677631973905306377717806055217966159302573772697255898179054517405967421866808670370542545145661541161974160361525541457405831471250673225353502370645043041278230077986825268229916196624309492480725323221150443880664393468578394562451789430847792602904600820921443725737751094128992089181007121857785896614954397753112406875230086659538293466505999918499150156853146194247478643353300792008068313124722740093214053886889304969292309192610607716367546654720998318833200216812068787455650339334714664393797044825679599387897540676324723103594571772412880585624656536415558280365080986330248847884087231391624489745700175484257740516244987591591834703372256489968446767895654395517257352510887957118758983383404347705874792835544276908737882601776028924407469549323423264158972240689058828610131990866617265660984266649399435341317798035989211189684384715999150777260678779258778802235099064093334377137958057929696952047272211525751277791512014077124624415351380965949148508411704363805213247912976960210041385538406485607654221535931689014211890476194143405046266251667279858361814363117809421706912458990668275120572525546685411211630576442006887196511894841123273269184976473671165068971120243736936536151794886484272243503809920842471907116048473603123382920854441549250794285972458775703755800634284331542063158842904749730516647955269409073753465735856522273183997526161379343369940658585859926082457943005831665419970888431455821888235686399161883682384128865392018709079061031475988616417945667244275651192901021333659971238756182915876385445003269212100049530022775503780871483352273934281899282501979327398845973766262858041805812903578793779830274546028641729985615341616958508049695333096314261862361497872680914234654630112491253722783343732871849746852021623035488427188618056740773184353745954526597645435674176798863332918098860287534489553987823249402099463362017949416928957511385195362434905650806421280528039265810743170798256042508712115804124634254227776310427044473059770897364762130169644304445771919584080049714479085214739810017463902439475151005550560461065667065682617561257602234142865059350341443512942431417953344357714544125820344660060968595929028576023609679044011913836586141974643616756285392500570011122654863362579935429481214743759647381681120110697843302359315118814395815101429790259287748576802992338532036460997540771022757428664757785528111467855852336674485980224961172986148744054482444330894108533028367274023863569537302137040404201430531246062546253574519385083033383515337027266213694982987338961641164089130411168881162804563409607181621073032090289650691331165837545135508726658206405480072021882362051530236076785795881740264240728798431695783073839487897744360066491365524249378850129710515587599348320882308350408436795158311350335511190474881101745186604988724329854034729719913613265196571223448254239368796688756423476496098590364039623137198162261006629434736796715675314598959761944508625591690146848515628406682886945218859060821873210871686848681699321977299892115232179188996456117422877394772146887117058732689685243079814705146910931384851334880007723904564508030585517815504914687995028366645154678782517021080688204136450480044252971607585682029244946082595662082255472520107497778943876805122265852266603758307025158954083437981170536250525016303413486330742766560434950093866459733424981023738224994545656196236739931183399247424174177473522337538046428131919806711096302067617050429386688725062951085168616451306965100108490231282713381624624999350681357500441874674866655795384463244143548216826343302516216931107016998259463567396410122995459294570559338694098972063509694099249778061825493109102216913401299988652415391293434070108609720822992393229228213618231055931970799896894901478024759436405792318793032336975196341426065763314306711691420139223510466546691083993449627740692260559021006627270754771991649091758623048728622293873795619752723557764231859545779745331267510143310708330708732725047441331656623692422866563962165052842635502024315707740038730288078965784134194649411629170686659823446660898609575390188610728804641612591130822068861115088245695767644987370267452641602676656914055791044146878000461624964244287054414934159429224407304725915095051599907491759750349409070979318179424164130895546444852435104991909464744216835568353721944279609254548860215317876180940720913579776973764037908386551487572244109057716072589473547706963933125003586349557838096553636885351387362064968083608447166447635984531789477790931743205348062670399399661875576334668393772113633806524056623200030172050182483637658281407268557670891114690415322661092205075752755892420412750992093667482400687942371434042099676568432203707996998587263413161038710039156077338195261174588222930449168032645672567166903198583272905627283893647433881137032841757329033140530765800343234832805686934948658202816547203449443342803096672467834970479830647205922833669620987777520205594790280600755797252794867207204778981379367077112914693395317891261387916090934259031760205533429324312515252842048256744631766446958128447841562827020969116265740291379809187533287436712132302943348706909382260127907431707364063268645331344622557752546541490148481027533468871486980799994769868736169822344308754703233956665640170610794249401810076597352482215855904332984246148823243253458717533934493272517776580831321777375502638318421478066362975058663031987612043102948010166749287170533160725239925975649972903352100596769592500266562131370589118202342000608812489468993127930848763966569923961445458162227754338090350243577290504427018630505505652959205931192184875857191868608267303024881777509946335906855422042957763912150244418574572602255014497248957540530147785794252261374533325239482781641691471176887939048936137817651778620094529777197833985143638773729235566318207449500038042979993118373816062284762989000736820535237351406334291121825970542651290847073202205018767884632472359446130157711254070190773974165337427764571906610287265137359574183429116600760088391857738219336691945720874198117464459425272337239288506208805534938011876217894513461192403790509720861967942481571236487828376242825799596663157387746442405556505868825384994844918246533264129063710739997335420673124738986315637408131485655407569094444385737523282328110917551531091205943566840139329998511748615885947766690969226116577237526473865801354839155650725301124109074028033594063823703912903252553694169888131410805202061650418964492960059014105989406153659040168402502836292600068232112592763257950617626304905365604496887389810527422999561123771538871900174235486384091693712727650020163693521418936508846393125922831983586849049509880414792109779422169758783427979831783272534558702574723292909013283121723634838449105372169031413345866229290243607111803113398503227313456762540283764886547520775110707875045891600696200411452042780085024715989326914982936130077666153712951888036664887752344856448966516001489652194262534464187551243672393826329138850541361978080605409270686366710871965108989091764023429626403784417397804890785215374437101392047421731345687927805271541140362402017119924042702174482449135906463634735155119666576711941423936372778191768342778976822644507971037784411394750400104753887469381513902049866436073977306301242041558147804301265061604370385951971601634813918680340814759113634166400260115368686754237809270119413777417170825840131517095776355076982371390226836532896518987722762261019804470311453867067772390815865927117789422961802311464921932714126535166670751294468784604489249175793228783408538980199647588340937142503454502314893676590271786350520682495649408037110371237305215713203728766933403441555901728297460023146802977109851905274751543226197662953570971323636982362274674591270508217472084923051926092181319359571237726854346742313228011749344416109427123194423924310511600333858640660855117394158271100498960753638521247069895184791196999419804727800594923635138337873435181866068865843280648739148761751172839959930681000604628941183916181558817359629184079225595343226070357943510349289513508254298054158886778188191784775188927416027643521684560934747634004694269772038316670093311808871298946546603502456046537448032808716885048127633401072269425972167951269533593764535293610882611229439119886408326539087740999773462102261556584505268774650078864902707100318314027907479210288864667061859956410867444888232707478893582362453461218264338923816207567352965128072971192272810315468123019936127214751038156154856597676759530973892002326519579835488993714677994779851649649555470603079953741101146869438775448238181617092935563668606357306825424407898739773558743037172763638706310550188738423812893892489030028576529969292065368927391427293607126837166443329676755301055194900792214912563670887985394867777243293752537520298245205969283294463169982950664156392415917960176125589246677413586679657819075055509700218796882513618105936432825390027519383378796584632696822713651994225308203400781097685467061315612195783301071398147296126934854913052838427103196404517531484924411058521400401126970529168845477774838928675960594889423615126239442340678298364027365121115131235798724816017799795968570385104598694895049876334579990966193705740264062546127806056387569486269835163793671764250576822931004268945996706768385855214637433242971252304891041204432206556462506855079738209737336302065310586374161273377297175188782048684412697995124703648582845374975978787288733321636352857722169918492501683899130691763369136694950360592385152155139716524407698968876769744238874817472751360251364552366157909891216478080786765298946524792597493493040428176549324327189810961694382020506442600261703649956265487046837248365745436146744666167576141780241732232721562796348748953765420521915786515069182327392500720030048691378250709793462050167399247367268230453117485264947961341397270267592579165571669810575194463911277066532108949440717974093827287977854584904913121997016669372637046103895583306851232372186111473627449005960977103464178759100697627967833414495089388181854347153688397842691351989472057021163120296966690444038638310503577557546798668527307830653510683603914847700058789674729362645742884540413776108013276991061835831971994730647280458143976540413969645010565103960185895555374346003483743990514848713521928575837591433240209713053591518934607444208974626442181965876080871639452061977922813873709916847049688449738777637561570189074340177727189659050363883513103517609173121623028939998339841215880204572762707617199867276550393521376718108014203156169497054677099715714807676819114008184128336292436284697772583611965264481998175130322889218359908230839908392205563047147981737970556981780354029631674000806379504716913393206370182365212288335157956715022059945099489821643867917455155546388521766829915645265872543811985803044577362312777568460173026716909198286706148149601759612663534475684840394873335635097043688756325242529305843538172781346132775552825806103604894213101525391728832339385650372340443240566014104257760457181742129877033113075857282766863660614928658329548301403629287423134731815333685063958485246410270630049769133654460326327768690073279850501216605363350163496371428258987833850934369123281400278027994670782876450865278513395850620369477657752992138073087573719851727653296375518099722506753853615721879663091501746370180668089361541578159668883818660489499838077706473271711923400921763769354579017376491258527400190557964270204124573816438308227928224308570582067390093844097132883934061935880062123472590084167267482363550328917976666036105551594490097666873879949637378262506080795266312725975389064619936953140823755906300894357731408138390655165164432661838647130883192555931825309733269468055991211932420115140534461626496201659261133354767249518234968599305586751492667016130963863540984194917522296616135095301809262955118658054374767282033471468487062772533334139178018595717958678842304462285595332632195262540143011721966374366322210650435968194136676905843960544007007542480706775274727490859340931024015512235066393370010496484364511052501627755455994936726394316036493392394764417503311339942454405627679747847756613167437941024257218543053918996713556600109278777364295661833660889903436810295027445333666072982308682936570807585095786633634457996611495002649395763677875717557375560089555824656036029479092607130108911427003808641796732771669269729306551933213313855282367402260858418619119507273222857670322288111642433675442056465917780335580536873982146180050182406808139960063887020038393517102198458180393620770306019483024556082935471475815570450090072517440618770940664525906716521681256802090332168033452189724918758069429499625953254046733997957189793402460882750202792239614005590173686357782845852740849865211184506733324977107105311365022460633387214853296118099135486753666607983039580782909185918505216490732569925919612334750863058186797246525337442908475737898662981583268837197755551594238868230602942713338179440012781815793379271173947939748328127988722953329862262289864640279914781983417243743678165744490686185505290567510948642290600416369841333918829577871436110680970468597225153373124544259566217284044227440584203046503060887242703648089392185101225152749295341988296580841724470158971580460572966224525457280830257749110328083159008496990699802417244558123509860597574579610972806494641826735857707500351004661883018015717804206704366094782363840025491448624648549327941402900150498087312387027943383565003606673834084326342085226314273349729493373349263560778774793540391570840755095243095090852863759980640115625058128358553922391154489353577219921111329708008137604264088125748840907073909693410437359223461059456980309890292219957359716650386973861048784778816614672859731394740111355142061439629974105460574432697300641784928215756256502533392918493548098329537088897450611252451718814066532881869896201096499159019190657543313204396061495692361013003950234260457434176543954297137998106617987970472994562199142340332203680241684815875828793456185185925678045946534269199672205548574795942290035511337824018907740458435548325788696942601670381125229607507480370300076029205811186662491442626482535142671517302817249819515783812179124551803125952224997432907171680721496585256611079991380855365054260584595750013964528339320741067667085557397950026070226554114849213030189296424728941222924537005620235269221481839212604871237162082147230495575307120956304938342519928580160497927615251837056913321815464347951483957639190093383505266233733279080422996264081502702537437317449448159791271896642743190079837259236073990591134336006833917017787563763113124777624627093180992928037450409742051039575780446874849665079755928804288237255360215282242321640714856661500384037092545215004711121642144548470822624183442784988508064911255388915567190730500884850458679058143958254168613826726625035684359538615010858898295248706411659531592299656076793129210873958240453057034540613679221913157769376499078064806563563732981277668262664000082001177835765261422795904256987790340145251880857105509802596848741386385099974394390163750292865923970331241704700538038133755610359924005402461302424720198122025736439089308600715928196200136875396246961120451103781678970461123720621242378576120096204524190853611683137878670667874378080912106896782997140361365718634758435872492635271335812256027051661869495824628781780854474230939082001627042658442886017177503868544325611198812444080018596565139413506356117395495762282346391596577111317029899411608171602674812159223601695203073256776767726185990820008597029021110374730749370213214909638519108622371063721130315610342617484769989184993947334707569747138326927696537000006304930176181172575034130132817165250169500435870573146599384949130897233914782098635883524612347558051326860701044377471549839319649910206061490289349284740068180824746734135158507776544559501426383532048582702387612757238640967395604418472556958801444443574651643093306388690683708216637937625402234127803499813634789496785889577026954107295333169272562428792385362100283014687200397347668971811808255445935870788370562311731746283164067289273008847224635375002560489035778266872605129509387914940336174450112930632083763775220744135371508596830985443144260256359064047701863745091600818386308871377195553630382232171167728977159406647710416616638019066428812513374575833438819664640086249327300524895415927213153447078125210066176756016051163551219841523947267175168096058221053387685819326218111614861631762390368190551484585004558423307786031887044367157543794043842858294898104108172394070484954851230321994491754195408973496458243292082412512026773334100795206920518727493076037461446554158303656777023752644759016132050363930195473147017822836880321486968615917028431980706660056736613068079159469727985488660968244704906890985913684392859049906812632131811659137797969336932613496975824042503595906316763301164586992054836891481390548400703307211431573620660137087457266072365438115979275776046063234210039144668855606046403292773462652590166713019872086165144500338779180475681216469519645180387319854038636265924259167539867399274857224424327103055295611088588340148427727667670655212879627175766185785968935560780674805390717671652968107723563845351322944795608506169264604432467057504696779348649140896194325780982534703759686780934658465571841146289349507051925397877914944630833481537341184208829237024026982655365632013956264661276394298381521810753621041697352327165234209233766028254270269745560966281782233961974274762415689717670646307140464410710465790255238956778519638353366224277687896884274138293098010331264906425779036454704229894800173660737570195059603183415142885636697410113107568556789676881178008446073109703496388100488043598354443883466927883905538509764292268892708558894661822119599929321497242829211511925704618937323826920136642959203499795671702465104256328104471849785822122593013845499760883664053682718777803189741272318766765859528081924709048166964738160393051994658956763951108330085573696450386803497843907387456463367447320247495159655399203020274609279926495108278985740875596422052166401541825579476725314821003252099824902823386299290385050621607289343510468335858226329280480985412979164257477175978028274412312102877993536123590903639677237987601374722922820461716744984681704669809377299259811013683817632110139619618126230542609424426141896581917359911670125298367754250285726419232042938314619161486879394557711002695833228173917945424841523401594591310633830086165477069139841981377540494288316064816973339547249622152261861009730893853854493895641362632156983413805229294390157956811147738613348385467996180699597985949542745673508088870859974893774873794980009639819887739852016740182889183015390455935690620141582751014174551567766517467950607072503978938686177556151740497465429915394384891204273545776919140937497305822589929253252180858030889281265587137733320979044992985081589009752960706191627987048465331204544715928956155178726810272930357107098295245294109776419037156298306589854769046047206109516616747511225373370919643235915847730038049840593915490659182600956287665155637421645007653283318151131286227955853871734847065687565217045461684723913154465241328168395538904728786818077670191620191293733939419071475918895629571617540216578738424968144922529407375452397187214650536447353583357138157978006683879336208205330112276835055674532395269700914657988138720949688978027028490761972168842789701802264309339353868184434558859461110411508185387684731030704419201319981657586237845107485924216757851352348338345580163355867192412859847725718206951152194800734599634813380530183569606630711301380870270627634624724565098258226823512060246072411416289061332589953365764512855797239450934111643934410936948031726045913828883733313694226373772019857395864014841776384673354052032428741835346204141564790695588033625911770299424153180105939021123255969908518106373214777866819711729154565230784973043885126005539478872070219036413533327006077723190722034538619491073520213007669330659983171409968519068392634394674045360200702313116054037163853962349428918692638664560364485340027272067938246099711231878702467594777392320287975593719772912964593962746737854494184932928935252202218939467046354225226822167406049177409744436217455663394719053534588976400932204744489324818680088595190013446573788949751552232204582363563937349142267751260334075722264096268060577327320368724518943264433456245857876587203979557575420083298216210568134909344097553380450882412197233139066400542443770988433541782665612865382288897699210206995349814766842086393776540049030349563765906279055144476435442331620071937459772550464780464842047928376608825461750746077798670766091247813739174587985231079831588303910710183954974288417029661776266100328012095127118683688252259130575171281935074890362056547282549776154379145234678488074301629347209110156530895206254877342011928465319606665650805293206891492347381352455992027487667904364507534194002231688542796759232133907993037122421697124525461698910022466538821009399702547066020102651790883583087084350970873439458763118646406595241466556206990465064955424742962342271443272444113060764844854623802811236078284078439860449503692315005097533472053194184040556499411990816937125672381065587443564452918091678650722742034504440557604565678384058696808604164410618368511528736375098464185467778851550511456636212359945975127465806793982337288951433108392621102226951156855764361821992373243395999740825324947767165217304212434012920927710638789739681159500835058274990653295274786176372522988310509637839032338152220283840933906633383230660114658828143488428940382070409100104356574343850451211422442154858230328452882276858465312457142867870376509156426893958200751536453359016545041933041402887541367576629072630631625947832623328719848668258307000324975091910021933115155730798926643699241250803635946572261481607591687431443447110389110171678476199610199427518839917724006608598120610360501959982180110299635205455021913827021663313881990358836690842903003187375385073441305825056622926327795347536182679370532276362009151596253682163968388421745429307916603118418824378639534797103720007918130595406028024354443269994403653480340309219723938486070471006832848116879919450429156043493870638962584936796623293608360366350643998775207305436533293878781940603724180963631241734517552546717492431831482895692387576895980663369795384788746030930563498958660295816462676713215881793612138429509046525126885012392859355948215590952861481781379502332060104547945871493078841081238140123450108329431491662898231674610259148487188340074948495791552603952792776480526867510342927068039567830052613594403588185280374201877507095259051711991588813686251045295425595261848067980402753662370194539531857594001815921852370512475799006341039239693090750435777417668941034565329016848782966197760538567081885294815665117605869903501644114630595005280740474373694921117417422995512700524849311748772833600647277658221687740309879416426325486764818040402644883272148096076581624384864230686262805313327794214604639375745147352374536112805197631634737046345049227187194454912836218099487077345262106461368650481240876457530669893961626478065231985903469637217761291919248333631845832073444668983517188494141789602012759524258518288819081094220315798669518943800296586277521134865184822969516058510222826624249420872468966737361431760485112619205715989783043331498870930709133972977306847872276837139453439066695688636338002307316523880603557398952315440842860183366344392785148683364147325409354338204903372051588213075441327993397210337134257599728789500805464815000709548903319050999131667365177078941209956523470475244125898852616589796421066418968181048510786232200345466263936230496196789027679946359639050788795292028929630998101073135141732494918153903540462166352688859149182651510751005227314905010285006760447334387456949949326717150467325206163327387674142045606705284140789108174703428012110043594871583820898372696724926676097334902873623201152605746388007085345516961023624882519516751746984102703717935548268325954523758155133390608582316868061293370068348843375232664847858749190718250890847870320293312667776192473720540367342913563620443277524297929318071455270054629753943260974266406474707584762664450734314720232820101978852439532793807865454294209111609051975726283412708200208342051042802753266131071964216339136037031777859785917279183726849677349678348369671377839368255084834792160923489564764862337212434471323731862621959306776463778635048897667288087166242015683875420673425773530146805701322314621711869389799614039786251814893841372703114136950477024200052641877625236688554119463930845084968394053834396832315782000647221899795382564066207921432539339333194377872575106138800852544168343683971544542973864121643580107364793139002480752954160401570982233826616193507843229391068894689939833901927813709643140117568889248022572003036010032860786939010532292794895443328948011473446639992778021289404921048407010469238079978009520681981132597880959449480043225472477357556602064329333136550818548848079232041598599897858900348411969131533172316244964395822149586816919592610191360294695665183337496807471898692108623734723229884764807259855291597288390014799452206250264588147450227628710552886446875322832524065495059657143761851397885841895815081746215375742066959303964148134791854384887149912255230185740592620078363812686600799061889854724323307441444004522291034577154543211808888076845590269628324912679286696908815983380209405476057991026317465551158552486973910802697952211443402798280539788412629022615823311073773705865046902719799594706209788166989760757705269449142746526149357558477735300654417924258365658742541848447229361514623640314400752514306122958015570584444334052549653211203735528724649319384290638154096089301678278631953031273297139522206143356922870913375641043330653621297423955699274617411758592096842525904023917659384982510274078452234757193268331241040245228348320003601296436245090148104835724290713420223151874333807908343469678203558430303149137381633889318987481635204684314364202185111626031511347122810576317128766624240155232304559853807796453202784934366969906714965316206176716979062865289975616420403639280485523745847660608136877735131613643271813393647462412913622715412468704536107460281626231241011893630360905936467463874034577786888773630156608352846360049843091587935096183607185061072352895718233267128221969778717548460243089407491242854448339001381667473947726222392752523721239735559295227970601915871591523129110791805448996636936056277116813594938181268298295723927342529409315973583300447042261120173418421119724864538523636086029977254255637573403779820870724235204791593112381855699134356752774227228334891157005987678425561182633470644523146622607175090587182530997903272333673913048205875237870321161616947291761225228891340842986789530459484507113739858629428374185671713943141850662465374104394566909282405470865884399499330372474263622443680724288910247436367393378354469803224848312045868385951369837753741929750340238417470602382687735057755479531461256385288740403805747198026923983493125947895649622450712209052997071662970681471905792587399466855229354710246719696020525651068792880366279603225472693283704258320764756134956465874646555122606739152224802833109944045965043795606146026352437301429242764133168487533891081146584629839559864788687255653103819157252890406027951768250947132374841145142541434682788678558653090873764860090850771863382772691899833022424539919783092624051740239852150314574579586687821470666985149521444426835213354153632547707263456479668414350802863083018668149694906365976755936683004654204714554813681509838137263062147294162817252631078444245884082135999268728724180094687107813414040616211387158365660223026794691815797944228732389733919750977720628667533474127016327165466882981453709753710452624793629574800953468426521990779891572137720584412635752421328897557641157473131072350653980315187247097432167089773183019879634002390525845820074291529777836723957866580073691489312834305235502909212381135520074196519364298986507981834831176636522540739642487452210415591171861640913242505424163326688220812708037297028239328497967494101754223161768345681148905437446693653723919583867466569598957709593722989455869429386767418770495250387990875365971090750164157137288595676086958231883704399296398712322740143767648614749766348200609048184374101093961356170836543932645121268111403282169224779952332096325042067090823515556456079062399055245188467559876684533713765334409817097039821786755250553321809350526849693654598417746519037405524182240490905155486564506604810096615041755562262802736424072326926915381275671903888199715364118766134110694986113316624110633769999713311409974931380288849771196453988275943015517009628974330013213445204054900437074121514009971982245225957314771062956876868693004960037674573461828159130515045448141716909604580022013222259521071429908650308505287354404282520692277612007337697411362644611768088046643023882600546840068567492316012274455528809538981288934700696039154098360473221804235261865941861939874316812233814276023854615985169563621251490975209985735537968743805380127861220570539687601891865192731748790566061309363134823231280773361097047098983367540584046182043906359889421989583746664014734672392685568543046574937795170394714097625143080424041529224511597874528198632200073921838310446905156674844588340225868504954297735700559714933236048637623240024175233603799748510767438820419146007785825471566629380395358660000290827085322175288960532414541102800438037459037496796943099472376656887824691513268471213534860389398606792978865104909662616956461627163810400950967069026317334495219514136624207415110630179557530398105180230145464474689596417664046945261596009288743584031051356212708374772088625230282815303215768423179615334118076153528244537756098649411531270501292847723775687902401500722810059634042686422273420098739837457609771261298924779962782750720042975252366380514910560371311295375016116243621974055699810702943762711858971295202436056592017830349533259949540530855659992845977095117904940231178433861502533631479760052692307163708733095476907143496983722889482295181504455679511443176929596366838321222647670976912719065313157280364118287970464605907529790803187249988779209799706840569173311735348233319315391727390336233391781089798754542195783935236455121784875787586623646178681652120025140215112180476164618669774840592821177994934968588054154428152117500928323806548016613007180281226740496024499581621307616712018538483552881644412704432732246688421693582674156114172360574687484250392896079507299705376331272595038177862642585919006376910321176023175666281291686481791831449731582840240204457931885440377013619585414215949875876039807331246289359275489734555687469193601676358000596515175228274924313365828545462633510062836626718095601896144739468144835948440962359330290014258952188218102508929109803569747872380853686994204809281969206651218938382919711812001165662394998434004070520599951874089517578762521419925666323264181020313217116982178986787234273285306711175148133756317047372962394718933375864697179400302691762795398171457845431511673061551370851435675375851117335296812836909637582260818908014751398285392531421300585557059941768165641351810737883477734001475094578583162039458584190336645178245868159522982320594829286094103757041423120484739865656305989970437274808547286932441964990039980961942354273948425481032641297778489933611503439630271355824562352524118221524426253698280856882795716974137596997519458045379150016009943254904591410206926593551195921567745760037878233463006431404110767578668019920502420401114428473237399349649145082858854710132954473012642682527383149882284827403699706039432016743105462124856846109362611805052064124006218385222093299268365040976761580324383412255519425684123862363080868977497058959309882737971604777740471861284463740917230084747587938082925017235930508209421971253052936963492595416424737096959911526878075687746303615213139385177456824324168450082808112870486844894326786116362604542986136659585463157005765201178129207284471404809558989916538184378299029381036091212147441152836472059610553868120795973319238894834052317705827120402402356385443731328389452371810846095507226743660406209598879084395758023405561609892524424727713308181385045141647178468931460984173191805836606904673604926715481296576753731893923384953324059112852271635703923335426928621218667430542642457624546301593438614618292769083074223859153693796429887126564454812128980763324505270073706835376389953258742270166425412730272576540406401110372771983444536310002206997029676281428436104207652760032563316747398689189142961370108023689096445995309775919941317985170611768839733714547056737117289260512985577015217100093633670642812644764870563109356448280248299357405444109457224634420679859431679386738533896619538180183950177681400962826598375528450215533997933930266107932621295331075342238622851587249348697002686063698625431804264414558547722932367911146029910742572629569221471653337293395600841710907659395096885259074511800370817665256847265679146422743906365460154378687133710332417610305495003492959916820453600712313216761183284990991076122048591059072880163769602894531121538166680160853577829898696407683782066124137960229776600289212736467718919180113848981802146514336711867378929117808809264904941556597447816864384616115288754379582776513322040553685456355123664571946364394047368072601891396365801743687591371269008086108808652074338094137976792931978196092596834994877185188973978782327343132041444022965392433740886511873803940106743489051530498367635722820680991559677950247941962694063924698107436924580980203264044666129386082713227116213569592167391583273779987735896485789224045971318203990703772750334693481133372916837465045703632505682410078685201386123828256336612151368836305517635937792859038574038861579944837674588990611323637945147956994320321791913382908881614278414887259638265834538849430872612744929971076116646226286526665799568201280966148529727977169780664359294550299982376034456462477478947521495272586921703342982950015616664528914023015877508388795973203820927263148414758059164329813269307420256094081987006624080747822301796990111472419793317305218338778524770140154338320868452745414465586001100189576634350628983778682305824097204170317195578793344970210903602723503415458510924929700569748994272141543301660527614392133138883498231465918166667461585133664356002651772207521110762667581352028991356691835586678541348462399301538405455619783919354681392730197459103435741278798536030397192729421265822247841606037052096589204292347525088929665815036898153595461894459472293944082226739213825302037897634041329513492355141775661343879317549456742917550923557538014527476759764409301217967856713226940147438806987358733572374487883772147412971877653651295620844145501303091368493161685772219089664044651545986044141219266618049101365521309254381515495192686319736743249102564344090547259813585504567364161069302824561145356740598410604607408569632578519489621605946762023770968348283922291227417618873240210122680739808689513555214540676649476185726631159110093089024626751154439406429175121129170654534778129826228676321401089803474143555286889791211471286233050424664914348327200959360493456010988711418424807845485132469895033276739953023852364532528986880471344689289691791514587265368014894542920027421397547876132873930886405431387941387695680869690766176584661087946275677920002124113498451101724630760130757301435919643659338959174448418327978948707137932607544858608205073041176734494275847227532477902647514128490966009786483251147826496908344420530937851851744986784808483411396250329260060307539705967315623770516622792478332042967279051198514702337163197355213977602769363951306255604879267926367484287417715990416886672731877526248524315841734184374733456673769633706751831398534298945090675806992451792853872044019731178441549885507700075122833992955031731975676657526912212808352252748946155020362863068317444105942150329864788205086133188627929715049825719028043932968032489530489530342385989582818117533850298488660492899093797612010210503350746355406953864660124581984395002090878678742096801747290017669444050047219465643621575479291951234593504212960377410335826282841918119219577704115483429868161577538395604019175196513636833788819930234005729837115127237511623722689093927605081264687286474266060603730820196349149936927249541442735618479104130609021513223173940354267920297158180744493697467901612994197564534334861394943276705109820278076573358071083551361238796495381268985347283086663131976384537951257653922804973105958839014838518373529546566288656934960562272068577500688932838966490795092490405480711502516670650283322853448547346373754417591541771155312030909037028864533975071525053446955207683994561968225003664482816046250052900903572998638274064932800320862325272988443794470378377281382208904174355389496526342339273329834835737361025196226371341463055724628933685043243881847915320273678859266514767339417229151623904234210875056057145214229056258170724448267726804852803754666349913506801394900373984565191668413624450027082461754863409403024593304573798557291364965879853676255715837909161295001845273703395457604080769665554649909300154873428292491677217096226694639567024213206377994251871728931150209231009471956371985527381421324281209629243019964527009006773595266226858099051925394925221211476854224110796664295153944021487432668098058901861566785548136373468564709955903392999152602251086719811809241777771881105397950504209918036592637460578374687794232641298992222072676882464019196572732852739033866823608176672110667831770097249761894156218325149587823672907251877638061354428300525428915221253040476831250784366784814901606055474298149330745813080529778740559359898921427514795002364791755946000383528219489240723871209749501493423389557095545024112098301998998389197081339860145136590554229626953187858103899778008263851756135184151473515619034616844299702033993076415302441133361986600104649764821098510678687496889898732460323817079018186986907181744019325028693341503891091553137741741368685524501000576850940714305947225605232081416691407645766315484459474844908231367869600437924553737963662927937258177648202028067008124203373610414206674390546520707993519661372992405187884804516413329295937320966821696269464337429770776065096637124140103918356814868303212379290662673906938425232850000723527565222808595202777615046270983092532045028983556821923785422723937836538857075911573032137540899561366117766964146853156687974635583193571158880168681275504318324009244330706253768198649883012267052092791463812939119382077575983522839507054823459672171900253003587557123332318493632214610068393537934625018996348324809225701111981304724866156401404103516782405584177588080561511067466268247633737889332673943126249914327836263397108330953216423089651131346891046066169351890013383294797813503015232698197566212107523997025310766755089619367177539309251721370477099421650051593672033461459902968323103269533848874770160747927198922962725849353958476119090471138730783789836752633897131474055999946748216413375976378762989305338091718534629525877818227482065040819480681579276401474971263070740510170257856795897384485750257423250789228252490829286072391900952932362684303853664358307725060881070199161325037489242277592225259916745824642363963707261108155648696598997816457870872377313382875534718904982419775629124033659378238756936406250259558974770017233852602478344931534533737326915856205660081316824432766055676982054262357499070664210701825245581251869105094829218994326710455161557338380826340538948247966065027179055652518626478241447148340346626586937286302982128049938148275553346917327409214962392423220782850834895713678621186324093135938010532546510841433582049148581840214050627297493339732284784758357917716832356302718189620895483821817647690061147853455657491403383835556537920130341950039831054070452039154803914863793104294445228975115551529358471483926368680750387936392963989047629887287513912611213359372027477453658441545598545698678175742775075559889249129861226396062762524611749093818127037747394592854247178501163606781011991862647841724021291498015933549683527670806256308744319374264809753790424073278927943082113527829216860020685970758660877332527287606288434587934602454721364891900567606127245712104471380798576082985359216550561235996716512078182449892568701983888388605342121996197877266243197559598604995423529939889315446019033072204525189545878978842377839447460365066448416717755625499149102662568103097242928952948792742555803580138057230078175192678379259660273413551991983157466969838310841241738618169672388952763159682474779017524744952364715608051123741502969230760445284249958505672638817065714207809779097409002798721418944093847185402158048461710552588509088283913038149622702808138282656409365728870991171694091853921268813167881381173572169557939782618279869216473108878537621581353684044196746268715719945791195073318272412856565423788961215565432242558251908899147134280280841539473621979599119817095037577425139757108938596436826216632633839944793526463589884134673890643726932108152563932739714024900518307214189350340598292250788850122114585802161218543845987834818597655590885634805175672892698612324475580593249500417140723361433381173167150291666377105949253049189893424330591661265687966995725266117054305751067007348067451837889679351812565586941339165405063853912209986730926909445180387599519641754472383161586389181881499820827026938398551291866950912010864614350311365701687722744253568757519477113988017449210427354164746036572759197934981038812455488601503048306507448035602947471613559881861969087686239735960006581669042819387315906065132033709162208092102120050012983336386900161562292255806253084334870947624167289015358071908435266790092034743937314931245518985894622084829060977781109559491443618034467554826654907544386438167098478230901624203966495812263776649029385028110856059360523062297961181769472585500845726757637700569071716150225511766064055466404039863232453117237749728493381204371180451171141862167086867828492367495690477405209040870219690361685348042847696777899662806691125609742824660130357240126059858794178227555548649317165648164437285706142075977470303583289249562388753517074860230679661998897145937961641241475760729081202086497627841308066433205094098997491980578408008179344577760688562418652726724445237755942255596395523062247885177223653025535719063815308460918823579166296842442682411957925655071791739857289772550423348151459998469299496471968360840944640084171478014336080190554111870401739112448401075575491327244672526659236249828427405120849496257278214941381071858199141728032493095889600049625158049772154303590083447967978651648107585057401405664953318641457735023632770120999194623237048483044416106079538594441468222693082586349702694188845265919637878604137331028340670444531809895211157713201975387015691805757012673221607565228489413197402761001848074255332087880151460965746738595613824650605929818960277109629143927583181043084442658261414600877830851041924253320248275387339481262967582999831848436498128103765165274517980598963623369602887109908592124561262315036861815767705347977224384859936089976589745975867313031138351148098432094604342572216662966407404003890843527953715736143925552708098406801343515142708412018914629094374288460644082864857698289632104823397246750225764639558001545854975164363581924301838451425407987418972755392436122238085601526024915225940357036365543183511324283436514673808566318419120173343421686004688436594368940894546892341754720785669372884065734604205669314089776159674703388711072765524267511071132521930490907001348119863722037954595110124681273628753395019501715310873611849567150418565299742596878810492903840416658918913729982173923584315838975943567338806275581094633275313488670111970249739266144898014415198895660837516456479983557331795369048207024104782772879140341093317946677729869460463177122541517050773245330724019502917444545191753673988904636569090596989941024377360427237654793406795583838929850201073894647165465264603907476053573594675359940149225748110739356831723658408185821948392056749460758061024566436624057249294317084047791868059415777779364539200724067696324559372548611520462433116852738273142218008654603140003559890930335017196325441108422334427185617997862275332444595860125720072307990186474925791644960119272089827253044545363180214436523601299603364059774063081945610952831148023436444215758872670445246069922195935058441489050642910686292230746759456558862252038664259094334821560049073717155185861918477823982496265247759868073615374238324608033016940397028219108384837314831831471562342065237543994506505656040399525889620397969110765590182580179512743160310607758403444052362059060751566901231030392015227336124730572556559529869645299714852682039183821716316016307002712906242255341990469067457280564038696286427683377687399031307640013760405416987655315333227167341739001277374870608740147740859112138423344444343895156146808488083354982174689791792747381693848771862935209141180002606331272154049449132834507589383164802490588817692620591064162081373945277025805251442857736192037952405851164425120280260914091731425147970634420853637479815095885801894245461819368324314285426035300072954190971162804915498898280122777108027061336977357184115962051585448238785257752338764085266289020129514689325363793527399446835244162776050010906209450345753924047882451263650775901354128381594211231991054499898237305425412022483199883313605568974600099416388569085946388277379865276057097333227285487398157944136392542970713347192966638458674463504965781632140603013041928624391310989790093539825478622115986595907511362258105537590130924725762066807117956091564206194388746842135003023077523773846217453419126558503898222507312120530631485247251944373220581641511164140026366856918398785660302193342824928432747001706032867392615380099223764932383042056601575956649992045402483284307182439335992036370796637453806281039605494674563174983270002728571568042039744499508449921997707222901400995156917697423527932164797317390348831600839235331950777383972057454239933462480502750435157371376239974400593522494802278841715668054641748687042287584298089309486096652813188106530800425047400074055592549619875175827637949439535570274334831882396814282466718242189440092639126866457307185352809101187866447802880892547857116664182134316199673048053477265086354922616524519337066514139217674074114648360121244050621252754578729135337655654219651961859391361740843924643939112593776045686183783517592304510782383784643356865270648570370005192800358462537644231102671002491198281458762962006060143411970264708474260759031679302386172918673432131355638303780256413480557288635574781528562713434590903635839759859906031405771196212482658484744875506955283028764387029690890729925465835290658634852927689983775169411524982832439328456690265038247723824404141508068356470761327780704199133325001527893760853157237173549714539370283681719075128078888370216012930542725971776455115009261084224051788793187025979155025592128019318559950669346008182031421193331438003069224564545492017710467077784266553383147890492623134668983035338990824147187115730223761458983115021763961375194677623923225956659488672758445021476154271297462836670500775422334836950128741857309048644682755213918705671673270874086614572208322828207823958105480156340723263811349507011079901899616934878168724118947489929888776695402279355894561739510393057111486506582071178352419436575744990876696493389000687982825587244860280828226394767201109083079504270171276538005088391090383903416992267222015935691434688589626376218461841313359907531264620383351990797392621716515564864072226851259706346578810525601192724500541394972569806694527763429602889096301875313454658791529854909231280716950763109598635516495967671474675480362622256443001255195553257766384150904989977627938484278891531293692178739987038739780149866109902677047695444621761798852070693501875386941637944150995211091547987345883116722294965453279859918509834258796010249424969753676427096200245462613072493500112332917005823714913931318903227199637129927319180941722764279847359242720401518197763146570535431258081783309724979838527345581331264733305715844055240315560874912822227254669924644875171075449629609883649011597208599275920660229213459304381365013902281689716145042809594425158195148557004461779462991347552901011071646847470347646995748818602112707569224190179018137428729760253825561710198210008597899305544004623260309942274630544809587054558189829868185731097105357427402478245738961526056784614575474308106398933522733083098946212949168126455818086157394328704910591248153679134941986344768368345475886222421178052797457288656724633593037356477511325357128091543012546647583499992064327677119874757471584445438381215336438256479244367602895298168564295631810789368658182567563703287886274866555773156165024267938369655049865100292323654016304591647020734238787089136716131566124414467320602376931341274907894414118028388826562993295891780536447256735615442247982090006129753554823860296258527622821811265944738202552506575354350827711759168802259990855806267717314228355424589586532366611969798622018007740845520954757766654565716180354198227223014267375833339486629092649916437730807668069845009015365420340367764837285724805394451431701600937060653730878278366081531703167297488983522753090021233498596710371897557547820086009251690257175473951295062710550910929877057742863905456001137119823401557854940056408790247310880868477543373982339144678364002389543678922791777108290441867787056480703914997571131352659671879840150730114524716941321409422840290607479223608034258097474160209528353798263559604557883387767317735851202594233929916350399386536703939360537542393694572298556761301928785222758090890061225748068823464166509252214597779949916704115417938382158974675540742178077018543130821684421469844574831999405594536263398754405726963114077527410244597378891331719495956968435816833300885560131813166858679471318664419283383986015872528760297847974097174533580236659329256379379233806687457475907585604470818173559971660178161158768013075824208735103656992755360861789111191954115279613470664016406555057571532159005575409080421096597894846055183474707995629135327767158038728639834316700946279560536803562008754271989043189136812978372589347494820219941546292623782670562038941306413168058138679833618813756569477416311172398728203510070818587407490791652354744924292526305308293760393462946196449796875816006376314519284795780879491094376150663794022968627135051829937484946882568571183482343992692629015061230980194199624991607205427284977838111226919293456529481618886652321340686555368947272905679021288406695789654117117312001034627289640199047168168820377190072545683867783591805873272179154210536461838168153501530483010602479261655189380924552071676684358554231788633319853913004996356483163697013117935928485984679131029733100982536874594426817918795213500461919861680860679436647830965350047872129268968221292586441584451421020292245377679158493195553746444552119039054661381386599426051894561086315065635122280741104051859085736942772171958486538140408290899145393012137662102081733151986780021925114373576851268044365351687244426683622505955155709925301115937367208509170917642770837242561885233824457637226461055197900491428526530768296575117853829426434606583204708754789598667748265068495931929565198346590758908030266452466734026520661624521371189670711817523637128502698628425414045367436047686967965212737731561814978052506098120534896958960835965034760177488101065404770774997464436065463797949905562731157610084118974283227660263700374292863443176188676872442731871645847898989044454038413535252318878005930434666345454355422076136515511679299297907184358819995296294046094458457044781949639306996140160584704017640804332074149611442405385547754765932687771097120775040872238791825473500132277003489948209151397296541638784665899208649870624495730066036653254165930125383373925865286124040159094630717860824713590369257933359181772648889529653080335063181351151406079264895063575862556684703242834124255379267272157718974252878114802715706737889932377754295145350672288967981625599926733742452181336182270660918919440592994213856047505963977507360808628867501636526902713798738984386723232338170695049171355609765598401042280926159515874632989275528602768223867217302183783330012050911803647742298362182204189812717504994895440757357555419822181806999526213486414955920220369814446451149758958918631650246786143915977778642974728669449373638884965915348695799401644364819044681349707946268873698923180959446800639183973890794213979597188869413836817211599435327558762630620991679250216107507446582391726008338677375854835136014632504276699083400779193303934004464105596033087145207496811111764544364426394535779197656626756888834688139100134589320173634639119978087959845489144569234512680614204930995979829244425942368435639149104939990932441903737902078941436685318547124302882880393552272599016272237736795777635865934055559534321434555285796303327045017420833914829214113343852632529568292916715238669984513714319948498538850087862594787572404430761586627205523399895641564603937220463876103664571396514527305554542112633776615123887604464327606938269940520781203251818281566067610307539932771971311871595492876980283330989107125818372457804838086084898490011943352907296727063452665458973656346057363092866560696198359626296452318851593804807114068437950618819019278639334393210030044532387737124298332444896449925440950915820927314281626617196623140123328942930064371532307391012421543138394561199131139833697738176271903207041618717104076498491165914282176170809075821404310568814630869960640137509314327896437271306640026390881093564213688400401132162514577819539334895026509078424093192285355563821933585194594648773413007562580303988680535899800259809629506627755857857800359719658061660075044528914943524381040972037239666209401580700990739641214691108361803031722866196480525932235567817886474269537985979679205466748707684088745753761766217270690988859148338048975791685943030116335417966761183919860452351683823941480273713881268241248191156883796378755076683259816882247126485060838938849074467792256487202249473697234268901193058906561246960721238782319886307714025130623744687618816515148398183938337991273491215625932483117446734954727513485382097579622970627396005348308954222388226904142635274055846631030412381159132148841373956297393134602787029135637561890388914415908051300312203420956255164369270336918475594516800731716512335345340249068247463677515838312881911808723789533554258322489288800037462032608705924663477854761257669477706846933210647908256309322490149899561783847461968869628907988697095362291848868459746888560861638560253731882108826826443630064050969820665596931161120058109609549553753811878349898135970459568191701896123749307482894561725407543289083409499229000095561099654546272901895809034807930125166694210230449163671415739351244280506612267152877537707399568399806606343003462545999550245000424313710828559962736046973147114295283383306263836112272608862235077439149949110695013740180781611818129202842846605334246185750785668365900408409877101600440604124922373735935548651550778916355241104318897837949436955544117804728721710391884053604113656423449298563912182691578714981485655328895987349176101323386380548029534444354234236409126418987936286769379850400230500370933468676609690758080993189964010176030190431036385389438981250772945028423073137174459130241731481188333748904850703070045151646039433400175498352557021504903146362393532006538074018056104832801960713017995905494031207440756475313106021016647697102770722598053301582221328017683923886258256692424692769853149997858886205559398994153601780317929674165182408917094204189441840571227426797731970047220251066120065016797400323276356960646693571490573131778319683176438512137795174397866697684740008491504976900266405369608430369441655311288992921262175231692820543681149079947735640820396453085348152982705695740002053581997550176083714315240586010364247846716806439582269703605074293670771588212622047949959071800511238713328954330337803329894904234336771735430891207471563354366368495122081466247423227368740252314551851397272906458633509210248078262467419016520477887701418775466399236343572327061369617407768452192070467240469711610575977348171799272695848962871382769912688407633170454476457972422193890994932460488197397502246110056218908028715884218448178525829062383832017695545181036463369631480844788270753480517108730065793786390179765480637140205556258796226884750154727630421844735025648252132681161834683145517556494647058690552980746443085549854875390439928938956361119429086374376349552563271947848442448341468113061415794199155646974144527251411473413676894609693935731796554502962893635029746094680538490055052731511642909661804742868809729680869904581185772950354332018248051872557647497283760201624235193064065930521682746852727290526031830882920377396480379870693969999619995759444692205309324185602729322379976093539899925335466948539842133554711738742466325113795044496905640252418278815622755359586014620164627876837579923156701124786836422474831795520086311269254391196921738345079651201602471042460011320873077446626019798595472507432933056913614989445767245302923014948480651677902525290770963493672360803858919926744658581824625116346020280904456484690890693128426502922952825271761196057226854731207038745974941249351295758359876090672419550806913566922350628709897129599717704614689270039272999919910566903201326479290476439867956082453557668181255351677347027443039391458159691382156430501713530775246572793209739306800139516697103489215253414037986419343305653525412627563959177245159343108243272323162940640633848695040180864942725213086882947285434187191586141942811823797279844374938509887473682069009334643171049651139699933133109728263963488820197542119916386358079758072478812838116272026550252362768536767111895922037536133127077953742378238062201510296612072386334275726561927546258996151596166832439896326898166142036637699051977267580859987446242252559920787189926141458948593448299750489969461259565768730412442383979553806802759925055071938068290992126665086482588141847632705365437154785854996126193203890540583174279798844588161185420136501981959335746892338941746883076354960850053445620057616177832844104526054404092001042898034228427820483550635673855049568167632194359330891118176765591054308121783138241943279044382461487510106061034711730169170585058762990235114823773525079907760962609200171652838995966503061573382219205019708771455901712634715403570605316785256384867102195800871924489091765981600221445769327391042617624662427844046337572144763800399825523900458335938133567330347935913501976844961131730511188439011042240050618634121977421696493276178357603253612382567093413763876487591974561946592485251813040000376074802932441986781068597978187335817012397591395091377502435950964475132905197313910031451072858650656283274469583118543546200881836100825401048013771942058119463163957225288921066864960058711517411035732667145417682165476546822653358345605771269884947388180903234302870145794791539270287204276117404586343063841865493029352300577730606875414397684334843571250853350282490218282442184824401607064575311989016082614628460417749187399221941311148816851816877901090137678810491603549173838254213799581999361622770481183720894554679488406863996504731701016692829754136818051431985920725247028438245357676124716902088177085504690454423459020209576654983240316799745856893286205946814576176630476811150340635865893964579167972234988447229548553715101129627024190252958386905944238908477969565735830578239113636211922149395920360907695670729119524570696795948941680091936674256228245439102167591805875210800973328960372082979344169763987373074241049348585763850453720741400604369996273990700650313608106738927940937967066232128737135406279010330791487514337907675973306983581748047901252310112448472936421045744544068603403484687652094967125391687393394423345338596907301915157197866728545479202850782502354976452661475886433031390401630237535843888688003930984065570952043795018672699868559874912305762534139767564940766239144899245298470498086240775147146194625330360479385336454377396963138093225147807490435545478584602387872005797730977514493741766424301929241725696558602314801353734473173262488452615628820359722006196069065708265958936312239569946059831273490273428454620278795179286081172093298313252870866182033194315799557581797295831914302368128807682923826862429062770432653338363938467431046769850580146306017039449682879808697511160813685678230900849198956276144635674560085591449935849324220118738789964357890762205283139079840369975744283785791031984966318645092195071720269854967307273031222707169974787092508388633288563683889238548287337340038776365171928350216630316825871923805147940936506209354726162011504264830329503371889210988328682350296698543890646103854945669676984212354583655357977078681880540382729427909295224058499095137390776810569317002114873996128189392709255977356154587549033397794895710065384141371654420474091407848526546820717638422761835557009071876603186704931671197724016531515435135685343427510803955240187857290551269858624137515828666200444541168387812435073760159341942003235309603337695039588238776894370291655142894126643556216033037928989170501949172909503714848976551918009965449391812759068820847663156200990946256418166187262086380356787752495155717578761104546011606279159733303974193597221678449741184520432023664271032631849093498589029919356709656838153696514012919364967862641613297494917331108731925429988633658370118911907544152335412927109789699544655250906565192033324600774049753444912097640626924914292150843313297587116934082613294918344708034759078764565112009490173374858577749888305350096587350735267390340925377695745632227120311772619558115818605468426838123119829242719757157077615465877987793788845089533937924436002440463064436465510886067096334116102263684713663699453898801747901523584214643393145970639395408884450768363961974175108217663927155879092528084034877609059418736477945966631527488799785480470414925801643879520062786764804740752050562114754683975607988542877858887872079901654492155438601064782369844122916605756291013117482853774335016211892341555148571520201108553276587544234906030052040290259075146666300722497519223656429820146099000762001909562406162604060426956437371256313365447524586361981822213311565212839780996431975725830898576833178202779759623201812611243173471444304002551704589353971193837686877746437765817993644382990157900203683642296937848562705409259399457277743726866280133422483590171210841151038881021562391611981841203855891977408839190863964589006006346289580615554489729094347898678232518431291809212046826466079261955676547825892357529725408054320066542077108463751578823629808292819580834811002094706291343808015303372917889771145312882807705721654092543469745887862022228954079380783907853407966482982578456226302780736919940163454954204166476807454127176791901216010080789210740488888908140249391658939085970987792203682320442244833172754054739896676626979383191376316317388649027384003000405256462349608741116468704253140290157262578793694432636531622635054130531530908428882020820889226696868094555805061806722860256096046986587012733658528796699932751513650080713361368125502410776790639127329254732764222827069315736748598321355753454716266180927021696787797380295557497481329415438228199853596087776718572793268267457164626707338090881911844109563987866368815400568009716784115463959300571346457881116498773297849789474132026160283391807784616553610995865691912154741432577984524192430294082979461585760645443832271479907604690414520433558344156242141977357106092101329695064061379718141263125344877411941478977032772011736018678627191837703974392465637714353481905849685542537128702956093812429151092953744068698395507439875266843132679230623124582883509839338442653623453679047970156259045600530111071621713415067162896297908159328777647990665377557784595894643645017072669651548730800236684441859371271160178694729296607993154575990268687582706191063446306062417922303724758981778336163413984244617011628911737628338002300838819488065822237638162118441677932805381060703963772393658994846905964472727491697600219366881144622758410994476995795711048864131940791019869615836050618819329179232340203444662222741021512453181333360915135915085327035445945705285739619251544181484416602558938173494061224871228910159901505476082160946515705287695226491005477909022540168325947808830289029991435985525356011363592726422669595206384008481604980203165852483321466688479057610002161445920384921211807863858316964381105718936853721782296947658507139687994059928345833515001888378404888341117748647503853450313571526667575408618924006139095874706652690455664273256745825609514929946443938661558008397823468351863219126205541620323095411961871376490604539471046606180143248490839174011633626685665747396097234620044183436027106576681050125753075150940196722250518401318903060023145754726390179804408641636554871105761935632634467450211975445428647412372421649859837294433620171169753781528973995489535672858311165064361243146214622730334160244230986015760818588610606241591868722429491710664218493812727043569449179414862573124639296075776575700711361684613185733400143860633059089505341977599368083824232156926461254812134327344730183651893704371826875929834615694950807321544081275587287722992690962847179684045988917182101990524441952350209898752305728272452620072718083764134307917748999386757268382771340551309014959616213333989375658974512650763798597929683277490373339088436415439087248281177853525964869449296887426540491309135013362308498215851646884650162572580589743731354833416976105754250388533562473033449911292990558438393077379179553344817995915580985558112411913145625225872578845772877440772472921000388758463604772361145263202202168174863484558623073390841022520443808314790954451803586064621623695363125865002210137227568534643328897516923658882663429735887272483222681936432694955760505796208924756128354409779784401682818985347791093949945849452357749760757769666695088671985130137258793331051592181424845474195175898402873663243890723002466462011432787280109301493130845513801792282437597441118793268562834303581596622824887145987399683254469178440386325909321063961453670486860656280354170584595216363107741514181182639742455524801152014558349582980757997795043240421880228811242842411816766132818956435383950583026316659950235187992687001460948572345935728357780539534846861594520215024704290113046417014091103815481528484861214143549180896121590833021030613739380510645094792317380167418549821679643330070613583366663836506111148182962944270726007911654161552771620205991524422379135023930471012406904805958104010602851073438718185244572516627977319116764057227985989622290967163381048286112290769615186990800263000027620425055404672393802484772963508010522005036352909489421953594243045866773067814954298032318693437266873076107736935153178652752583094935497306797475817248994322501979654530016368879618690065778914769555444452875188646510919040029504305405706815709129159906364864728953786407436205897448246556941692110042879708877107317436119389606576754967140462296856074043868065742622733754604423259663323913637321038457454168018741294188717767947880854956579022560052370735624610910417609021389563110616435788105133112876758589630237022015273469358858655402083381603556590703849930714899631871541620062474407810836165632037860828056560179501276103553289773022958892607192850716581214042487505846879683352372059154401321137280024547258184264278653593437696142268370363515966487420231710140516003809213215010797301997716649634943026623556714934912357081576478426853601599260885002978616948928322091342838063304628560589881614718067093878321342168777008860776077249574047868143494036019758821948474489563962583836041432329658062964569563606251650179588436613339693977508388664701978841149419275500362756468367316375109223432141921910052644483269363157025481772623978316485385822309344559217918971975505917193584302289102240250272307046401301769302040275989344235348602655697372486649683494799665462900817706332407814310179558251153914891658130811302616826795684643980317030708808380521046692253840763491261073423042069627146240045569554941524657353105701765267475965464440235530211217427363654126476337036158493896019638006762164141628797914304790629510401957535150835756978343466125018352396072571163525656142284441088018933200586403513337707576920484624295310548338818213108287296774341844561265760464631853232647505292185384693111580665276849571732123338792586362558773149930980085478116294920616010719859348949989395871128321649769370911788736437620348885431223623032022610768563360198157397083782817343848946044855712946879834451959015258401171944421776307653681281094958485575651401873237263532613781267344809671003863691673033770246588409235874118188530740513666058678234628335805696280712897757268046666464451148325225371673513374687134240509362468390564742762724284108760086981444104967789178125073753882983694223237591712825632405197818789615218147642901315457333836639022182352612356388463792885171600960623785133039827822608085890394484668696842008329529466211918129364302403759595192728348175432693530297650139470986905346461274519285622713306202699169939394390267542609011082926464077654175509358693890037181728911508070568313833821513026241636060331487720869062203100944049843105559330071056630065858445938208645104449522377605907356765445111645890799242039982895893773969871122583317545001818196704071616094439620990947739713962125369064367553445207995910014715080836254565201920130596128694966886143330579530223431727455555213861044101523378515934228808476424861414192400140540505807422975487536503873460984286333272389694456858699808983178685367354883267604790884199399672934040207699552867186451621208110010122710748121322597262454167717426740102682914837720922203093756578647061510843652321895799735149446805214629581576801654960901149123823060726784320092918890800335018104452900343455687902233771244777963014082804096206134647795121433588325743534976455297863514188195990488315417305019782169472696519291823594268169209359229815564131066901299900306490074509764299977034292537625465008627630210145094675457226926929684729626521197187662712654574463007956760596576649415061350520978266776352950342929882392731660901770393813738608321672127979828741642840331318000973286038449239196071172712076441575330484889042244500556315513499707014973060177934889173221987849596571466604429466018493068268125058833390287073395809077687056520825256527187627884841867992151305023680133053844970915195333754280029918848470226236036481448939958552190397128240896459703778445509072049611443082752892597687721689059210348160902414516049698359104733058248490137763648124846011607906160290999740926167574274222830317134992002820233787175139239999881872303842037092903607853881190839591312166714383851576436814238402670785384424485891440302305020420885221852081397447913176756610539272779465330299191252387986371437342923428159227926043397391944070030654873782166139981159168340133690307971063865837612763108370676957242149043538734111420173967641766472196208605778684222911701062862367568892877058431088724042228968714010328429384616375497311425363357848630481570900008865327683147109670378857037870514226460992230433089019064789851289618421813786025279206376057269106870576145199798592197406782953613868882821920377088624590744706144114553072991498768765262722084202562026795042790345063648574769286129682036958106631269366770759448020412896447566166530744944228044340783032349516424977671093079772281714127256723593817270388887015173207274334150969499972094953071247229606411827853973705136669847315593493542661725088112782848013629934129003769153836605622876706035208431091538114047746471836317537503928447406371851856524427169324404170924170074780585371212905318151019430708391758605610299962292976604139663961293819212037003798286114959013653670148145701153989097723284957084931879944840250268484366866617229898923633516000420258904704994460399860824681625654097731671994488476469605880061291550213760600875287867442553739609477123582481673179644013887989415317820392452850002859437329982435083288365877648485277125019298777926898389197987324506799133182834533841358179626557528547631153747191170234821888748883715583839817489419742200491982105333265637044990896037821427216129865440731874412190489381837454724827299232928953034041141824617655119762574889906049258861109644958966547322692857825731767576513671586022326844368220748282618185892069946717726864833782156529591319591020900897001259932654316031831428376774817062988087906679933638046065116673690458908513830414534421476147552267883606664983555968249453777272170857394828168688039473667656785903689036867571557139909227928153602941429053521279975853240475722087157094043583594798272046424758030735698243131300833272599535165746827811166484984742285264300952904225022330035196443100961757568238320101949669707810099542118982158192562475973638913840656182111193303939037434074625332783921109514620946354716715884718570005716972863093900673060061709212027432370605551281546341438422668959952116741749984233163428268610111310622886913559785268655059506341371651841142317931702729527614305890883232630657646444931943726924393904986825788106861006749345358522956667365177950714345683745008609434421026154465065593710047193120239099140901016214653746753173880512422492560737084342759787617341223419662842616588844493209983752285241793087716725250974089121441881693352336955672209688222298284669569212823464890403956818349085885659522250860393958479901875082300284839246698464225925190360227904522358550828562091878292056604225375333781253648577343921833596691429238333273266521055153392061924994658815954454910876913537963049409151868396734672624825049438268175869997042187629717850958464021864804353440399902429092853800970552329143422300207376612741975317494402429008414316842644330564969024949952512577087345470065963790482177952245805078804815281226675686940069162767758991222802679452328751891044486541156923678016257537282921065920248687729990830978244588376075796004584587690350825553966373424048781783084624870672626365381383219277442273066303212850862653530106790060217590834545819807268088820743049467248693225622290164999127114660926586441688369430261739142020230209172270081763547091996906347292053507564645364815288032381045121962435085644230273576991104259313735703316364037943507833843292694032791880470691028363699132083471001899237028720928117001722834674827475692607874506390184348830032404921471141994821633491728276325178699939131691597174081573376592996678664138363775273827154409104127098501469019665470921139237256170298131265647327777039455449055704992455698657291773108810004446340439833178805583495093470931540138693976984688073930965588513285673118889679100099907973986214428582131649758632650923596351434325790837443380055212674735638032347263768452798055674466540928526631840754215143493239719205866235042973639823345269610386736723969892703551066938518834930501699346633475980300289048104452410087469698349114015443581106409745960586212638755927416201688832047688122053542515136954890055990811030291885415940673365761722329184491089497594387413698066724980535563023848212660269402749380817408990536312421236235392789623916170206549620711006908567848607768955723090214749022245467893020334034136146413260880187083372220972923748834832907264894150383353792980008376406689271923939630878370842953182308787700708558118257908502592139414841679679124728942039088946393768464395306229094197454016549632999958228745123584149849136348070072764367041654947462025829333415881347002704570451019196094545133154361472134286225808197704115948427701177201222924453060945849004405597239642327379638694866235632696838095448818746661860851940140145716125583265457827066701267897553050605728234078562734054042386526477907588034264208396219285865349554846198623445084937970309582608522284975807520838206621800005995273225633073446999884323108735544565549496150131575944932590077709948402708554312652222652186169608272182813736839997867228069107646299759148814165231298099767839211120212149134962355716884576830406224241426969101642614460392163847799479256734108641347490283678651721573383817033947661382579172845467454182765391789635620314874965413804728390461313403001465332293513550521777057981829027397311123356490613154291885944328734528284723548756003019255623268022929678050299312559889711225512586089825931219065770477771599464720175557722727797505754478422204496603676712333819880728053823023388789698035720216882232908120716813342274541347291040474766421421706009926212246514105542666713336856760241129872456971242834044013635553804748106596902414101636386901444216201979651431136054949775702466410572612355680623331213791678718711157844734962536114566080354779070140048559011329500331286212382428356793684101025754040856786370450134908487287860202003146626898965154071235862384968078107147218584482676065399287578300356834842392524518663728709563818981711067605839266006453628187681065916606134745237824146926793840751926950807339779621354744458776448823629032815832862352956704322477161554922279131244677984293391829199273962221784598071216695993532510731500381072799013643772043880102509260495615118855571642311299919931277462927085939356232068196969133279830741211307946627029321755367353413629161835659746927284986815292830779228808338414366286781813645083318103643017416291663449039157046235158104842780231560855797352956484249323231390641209151348624530432932294640666566691336271149587358608130870892149301755980788359230720912887914961561860596967595489461571344093621553126993511864180847616129190506554816787048612632531383333941433076239916424499134008026635345756270819809370637914275610956999478054901241630799609296395884444094072318833899846258836201121443972694494934652401878523263148310285924990398151351954470085714642839334614226369795393509896154480715296042278585047054565120752275853378195326355245712721041134748037239975226707714943478717477027979025352759386046654795185659852312004183655419023777041856423172319225257970434681307836379074516584746728193249050681539436738358274833361198600762169521949787632335031798695435950545806296518364620987777042347937755506294538636951898424349164409239730666117411157870677962142651854218899158780207213021719661442054342406586714502102018619324460467040499231459000895311736236252832916946745362244691290788706074987252935465177972092719137760473985831571306092821451880217415793344208426609604827169986205330231866589165328607924726565896304342500886509969005410428897700996895062750750992199032767023461359999318108471400812874924441498041337868205442594853741076820795072906992469480716655570109085460134634701064301759732644276734813059883716858201982906164761600369946699823340149471070324750696913839007260277147532870948930573848197859651820286664728580258586681951782919136520642403690695554166480740008591773984843985259824412282747050107085021357069523182079618412248810313414894518731595907773589640796133888479368598859670101610181624710724284269072640825351641997324485361089384498959196179910605007268241363638645936611709445564210369885501712228225808528651186724974397035000593489816780680632942699920845799594369054580728735516039435782837146214042711789028542464671553912181447323810719146044982790762213862731004547923946932113704998446044380408341927068149834408533994781180279578082868121930733282611999758115300186945223337716611125906849787670983000753614378252998087137639483801403215041004071927784249407404927283100142381564067083775976936735273680570670126009541325557559848328771752252684720963874928284212160827211218757740036678790264374005357362974038136839339478945377674940864440084206829647541351476702601025365423052497201249080044536034875906758568140964960310748484214740177418664056514183191798645170438621006455284760260463752373459801533298405242593469424026312994797895395656553551904502946201540503640567259068348004226416909531935969921848544958037047249891994223584703783316748393105138185935355892717094249885012055699240090661379182448775670564131239388449645682969805639154490591825644986652303577132672398459777317152110214345808612677531033248551523913869642720547901155759582480655303407654533894971582120879685983674149990776347298979200513858661098894149045636651317480330061795279120889948362112449771334920712330693498773291014044024227360665663034840176819770665993392239438049167754920289063782996969668516212715281503023932664347248917319353410320583479113707096028924182985960469793751857582396154398093792386175593216299686459071127578302027878592873055765940637982736229361331843741927969543449552180781102453014173111981122030717110796167486401851090473951249615850735473844104743040904643391165333532611953482077111471454775555815651010160017633841979318083014945964316741271709306201737345913161298127552524404399944461203462997725547764626256165674785513061802269947715837238009462491827655541715096219295488227978327436104244715790594266622503257743354190984083058494802305133771920180053896400343836901129968172104205265851210176710371594113745697619144969918280024439355827057307139784821148749427526329116136895882790034712725144960823683550292063859454404520685320117244074296472101565102140089354946629515656101130628400094965901102694440220507267608998017906694229583266797981420477972039183958469071580118931152601268326196900614655234613622307635924486496224584404904991355315967172567389387589718235611419848631550533020952460389474246808628350806909733329509582652622947610972773088372855623308540653093662394137410227104640298276140316970602575784086821798270950217097248398724009811087469107209540879297304806355289300844472183639252976045875958366101440543254893785354117938024149074501017521173506651381261819006905445444749206194636406647662724153849422119598834926832118210138474475945840570234462226794024853872215654400246058643458646307241697052704731245307382475534697929439686006143839328509513169989924481476149867943790640843818887942516190562030109165294468265055312762914352155070450193673646606444079177401725631935273539802688769626157683088972730629998462510299819831924758889061198989535164767210433488127765861141199495357688722881812895067440774692596740768973347345583820763419668972209433215491216317092275608152361078296968615648625677639119826147112698297347234103347294770700496424770903894447414798407019425396297292308911478131488952333871341747473875963185244689148896276795022629400297488970506438355466017263437508271597149078860409237559720869094624300817040518045558132504722861993086979098281789319721037981029631045946705884390721719739972937958393603479572796899992656680343228981312203494476105062955143733819969806649580099407148074594463852784484842739077948341681370695533085652171856448655909409966771288079897862127960941358270883686356568520054170326008759435596401781081406913826121269487110487145128622744552447599316754412899025987983321543002529964955488816633019022428501308298745844475198536629017492098920120068715918686503691897054899528850583194419080476004896528450035355560400442864086690008511693250514008323088860716425969977930556231945497321817337409635012139542499445324734089855392754002241854301116314302543572733447016133419700069761120594182665420629683377935553966107692579081259102906970976973249504109752895141816970765682645948498259889275301408678084203059458493156601079067051832745854459902948253213530566897629421120114075593861339522481525998560413896150572133170965763577854012762851446379242774268753704161874722954500748025005530433148114154660226610152515603624253442778386793416096128390609262944927111325168780644099668623863358967906074362082141172306928164726526892046487422131665956259417402752509937320003083454209585556816739846782657030937003054018557900216937919270211272132400977131934683357715285909922680059102362095835950172820373695334078769500863926675873953546257711514837269550623484282474456383924456785904121691318345887682941077985341326265284236202179739014901205514537484304399305343634997026138060255627353979238286181209862813513964075741112691228373260825363108158143466232295518420980509230876172900897233618991793134562980509612161422810545648937861708754471799979391557472298910814941330471996770529275060208405185281780436222357676506868303257034347561703796389799796866684510462258482627152914232304940131354270628203754378296522325078174119313320621632237167103029852925899323278585398317324096992436442728412986340692060299186224843207059393655031773722379700741213423723105928638965311819010659858161954763828207391979489147671783849013656167741622213012028498676271088699897352055487876957185643487831340899492095357536402083500588165304670742161979243951569947071455413223189277911789209912635515870733171167851898623765049608622175027243128770244174129413692948116549341049102985573911264444837120904948492042510154422756740492567197961141281265310884421254148099855770800050832665699036368921390595423205384827134688628161411911683226903128079775682650743949294245305090786884251816653904394542468001988323738577542316903506756921987681677166081161951312225945349798865573989359326634615379530972807016993127173059240243615791770526269722301704898343200604740554585179237862537336213487417601281129462177624910147934323681378638109335739162944003625229107576162328747252694860749656225299988198476809733730767291950988569349918992457831178138285669445894224658059573499313234486040187447809094258620795328574678355472683325586080709003517980339621163410722396042391165567663003161677676517521645252565405664762182554101774048592932308559191622353387158535498731159367173263621431337555848333930163440638916462529954891710805821613167147598823506998645729315712320686229882926848618417452267140494313070496249565276379537890689515074146560420290805662374194238195836891740106806663005688723768280206573044810693964685295841918467258827408096678903798544431561986813883864068175403718728795518343921438561041499756864719620886431804502463543396598118502414549750360664612408528309614156268786351384610397185563245235092405199666334131211025725555622573362794279676568332397102759928137316824313254549363714778118629374055100173142599582996420928124768395909133097670757736697013023397545157748009920110567950918374705329035876186097786985330574725209631828006715115937473813660326755074439042603637860963466395725567289054983571788830132619635759322975810231811645398030832617427207921064882454762147947508933885019619747566147039558604213978374444304197141723747414701930472419081365187004983653468678710734101238019456542283236696293893907830261041822259468424870178296741495831413766595813627361404399381478619265036569718584105449152168839479390207209022618586637412531426825105162016676210532374947458654974400845398222604875376655226314931263679581878570885581289936113987381200297221975287825010881380541950441558918537375865803559146006057230779721509806042513144748876875244578772224876869199580782711541085672355972077931201591420389756051251947124871827825760236627182327527884985204110728403958103281356279935637526688329331812825568781180774727005693001551151727682724894201953650293937732490731158087161788619485227388038982457590070328440008356620842408750208876796897634006246415850529994694557875126947433117448020224122532475421296728977368918292668843580071109900658405929797489507195770145034282300995931754184577979861851678144248021962561974682792925634253001900441894454491341622535999905325157815188389734126555324714834366463661893867698056720609002275145509815764925117834351926670402377106467097270639915072937001558510726040312614707647134498115411923544904063848635731518830310151660048854847802541760692492485610318650558238833164507106547343488696086735659662836824394349222825120468312789649267454865970519284761884434338908191664482612661721626735880021202139580702339759430532628055175402023784524421029163568935695685810563180495697461416605042719701247520584680206828964741335464288763042485885618796207111623089740876015971934779857092306201110343587785461006846380744636047536280729124923122916308410097093709972922972455521222031728320990731826477376927584286384653464078557294220690750048284354139305955533293769724274713422592997679214349708853929395907160070485695700219468461570934136827225616558744647515645063690141910464634208856719973331460239229196548916570453422381902484880222502386663162369093212425994671399885848174945184382878120686615850249066313194708109456222282492050808064860086316933753059536152785541408416996501616865633123025197165800878619096358750268861278415180870923813660367339851810652085818214354897446677289326194367295339452336360704891942803811426939184311166314380286267440765839659122462982327328963478918189903397717990404460298486865177128508046224334792297238773489137079449019805814704001658693652837145115658196107992625470212656564714983847450538508039001027510220310539670409296668051783964917892281779763897632157488480900634524738134557596456765231326756465137344395885690597386417601734086888415014277025173695313419185546045701268110164179088877498176614686569727185969286891999894832101061230960028831102110114000497692674069939577602535295131704432502882050325410400915607169850272952313677941709962229168346890431110505526989994099474679772126846448275148158535295962567306193695043363879868506175085649085024856251423440388134698537017938337190794611241304318561048602515278213152609104846748603127348124799073982928385586966061540424889444114977819189117556759565963309884833189144381940790977754081305269023777066497496927430579781386076139840283955302293813041440335775826292910235779394982496870099736008938552084010663676504093560204463310908044613212578411215515895617504854285693423643498251578770116166503146642107661717801068888795989618119271620206749560906257138108661787316894014671825520295938378584231725593512131233734489875565403949222871589889732153919929125011524151348342542751040869570134782450384677198629390063477146917233886447947235571956263759386497157213604905245596788975340454880164984991040628096757255451300988238994791617272712494700274329361533494517009201995621115543292132430681144523039402953820428953535563715537499397099010251526945386208955178420071890528734048769662383114615890375537912789804946507821160281222003370404454526277418486980556776802628716054191330610255858394451543680775002321077007641938534141744631451584749419166499295389350518423416495521611532174844787449242459314535422440960411885003463512076054571591828107612299339352664376684748708168714799478031935906058381011048250830720136928697182025473053120151546239780697539392720431598954935420759400995491051034775267498622567404168161595747710292621586524879802868446725806099434037049627847286192657706375382851483812272467008689196426412516850259505214452605987871349527770934876726129811712325026698017387578165355765656378719880740135721379159724350041498989286729386949765944729501456441328965686696402676821712479644655416523783269306598425957779811055173025719023389433558093958562346006786851340120015903130790526082497919547403240309533686618053384056096227247956017517139891121337372265324759860473180403782591895679500671699245290380593923031726890626250412815910543942347891251014326111053040122608001748502189962632633808982840372458680495741875157625121286871910730779439054677172773987201615130502949191015991754048907486180799854572150181575186233826859702487205546124041503309298560945846284433901312266030546215760708348595355433637690098895504221461421996652023849932691061401703649573510195014848284806254513856000684833150758714981952757239173394414876684850756504099666496405326284000107882615477043667576981546144187460104293211747791679772329267722555196736785257782994900526916676709647567844376216678132835157092952501015490304998104187560162346168409928779518852220616689632383595235296779683554147898765230201777588929678692557289256092837906176821503585499159496095609671242099286783404746934312013873441843376114162809628539126625069323368960465225723458338597239532861426277497121906938866816892170952332664549922773593522806762518327196049851321112173162589564661122123935434892720845117312363679850703910367881150488353399747768347658820180060065026282958735301231710668038090497126121664067315851487645899423410720453200733360974767322845952744002242005875130099160700864649518893737985227598106476709596804988560226548341763314549990135280868525589329409619472717001534334577851228215781250682487858610866770125508921227678761790927221636252105174336068067326441318650307411921893969740590320312773243214167636482869028529235233224487765545970513993119639644649553713045182383392376256659314156640273006765960268120552771286861155901826629612968025889890505479618313327603986564721713927560015561626561700990907851102599036662657700303473863833332524882491540578722322256489947408688985029732160702198129830747691112749248218326444180154702450277003616368309538857328161055952820158806550519491791956875080203480642952387799826091061635256366171029324904807507307368917526945298981810368814540668817305318318870331058590561590604744033141550064528005542452301541365092733563945258439656300573572881353033140801761557344320083633583810612329021203345326793668702049378784731164079157364625838033658474157194176663918958378704787170762985686348781413262664820217697912075187462312078542467723593697622419737163199189239655436892950751234145392196124547168162478032612355093121531325794669199106089880100119500701596274712979435501167923136894401541522406780613722339479515690156056431244256070605189598789977067771088969813811994547149780490394904165210122035422650465885894881826406188366605957046657420271665541585108728959136357377819180231715875980476451536617111903859175602169289228038683723575848391286418459534021295353655554328406998680379281244913609787734840323360349795582152922824866917453302343597860540421525555374246940626391531717027162779448159935276698139544102072772031722269313238033757282684488733412250495951136877682343234693312615118448130960937622337957338722446885198104271886434865861180538482525696831406784820670163567083370439276176404829352021471565152698904886396478273120549329902506388738689749962936897273863605168769177982457291820282041716526569686561400475207140111812754200049921027625258899099943541674068941269645480378148247816501041871565381079327396913489607155543528340209022501108907389353373885943681375295109233913359678785111925034890992988206056111220545695453913970653446092328572588032622151605893819681408820327031371410235674703461381113262608812142419742035946596377119910968004227754477326984894851609262701006039040251481912055216464101694867771937261656656040287506555816210526537049418065561391127824161953198191862918333732257988029330816485595495021034532520482710722855813895385767228769635043833140183077739791692592829880552469699515096365986513171435488193836188303516842581297492328026632994464300567107231897939149243358277061425661180235257087582322149275460546823857791191298005908733362536715028578733916687651000596698363507519533550808937296737219701187555454233002530625744157178895657001750201436550367974963333645262800121423036050590552326082839100473636034648536967588154525986298546428090762585250563470413475123751991018462666219310358668929666364129281322597246713977822054955549186671099160550634308517579275674611173023502239363543863043860230567331898323969194090570021828069801490910958278981626339826692856392632657140595049728827597991271248334251521789724835661687701065477179175718098288582698394376012762573407628868911565757798297165873979184766448570142439306377696582793482352179152163419666767695930868195999709692473212452080077231812541649962252746126582001510479354140712030182001374126821175247715387901487010679034029033362077805848771691130354166316847589126471032781407973709011674804101072636452082729079303612774850977216570293610522977063360861930900890461334438921726649358303765447183451917694825287662633597749093707543595287333885460694197465594473757005044475023304898630712671045954361008048961731963682514508833817843261160594038554512777982986221667164795009619664330422301988148503717577563740265334039693124094619174245286343046859119011108857332359615535491557356852579592188518783910217218952320978351948774280445029469321698460081466664596364608082378590746584655935070532501806036312015504427671462649637240707208323675188491401243932463584698278331877283602481901950318213730750883390938420094093109694408098545854882873585526627363562845641078552816423647156659498313254364918843262310475506449554704335436522464702411166951325190706108711804666159728159611532279800470042733844446024635899396198651925384830127523134399102988625284928023768883492087039853752262333489986497720443589028907753798155503712870741798680711165099652260519298493843259892726928604076010957650539655386853650392751679076374238421840158012901707970550169905579628186333548836799192296968178635159664324331644908216724154515720008478637345989801120903488391282636386292811409803939473998509996690570750457303955939941767513890229606047168824539430864602901279351795306527843382344691688940745699620093149634573709478148028750329771081502442325634439458900434774884259380108289919080073055011564439281402289537055224872362454849083717496048646496307510551916334337516097523562219613671589294912982843942580191612571162483853547342581569461041888179887254970480976920261651121013305240138422520106866672014265458924673332480375625311856487460591201735587233666283628995189906807358824223561114773273553546995299906752205291845910365795446666225439841893781806264896575528510594928508645420552838754505288597313183707089001748448942914332642188395399947138937705719785604027082060520537666292730739164920148537344373343309333812362658952919201503379497737167172368081768499638071201015478421849009365439683235459147576361281078078929461716208053736023643843169691870045628027227855503072122178722369132218062049970557035577004976899380584602909347598113850875489441944718227628350807454252757129515894409380380870423113957555412236181068166487972889803682003557192962531725153212638141886645596715779588116637542684861702804413624075811807107245156452655867382770786882419842837996898785900100304630188663394045355722629497211661923462843573912851131371665891315643730708674446337554960275187759668725293029719166949732932584078722807080204406732453979577826628652194586497105558490263767407893327680973470098125950610155067535338873866072443169133943695558491938419541440397508782857598507554453920685996698631834244457844309383004342859244634170135167528689789075945586952097944362611115610439109375893865619149276505425741299396498752755049707849591698694237651080323958694414966260377168719343159091319781564493006492337664949727934326121018797377842582562516786066140151808523552287661260993245989209024784832630152637705463616538094718941648016370711241104776729467222236583194074804898872021035679851309571655106433305418421679603497925017565371026725027899122061895642771166433139109503728642269820263734192270847080578782246178836933410373855848920682320783774381399279631687572447528357084342569336311585410751401512772250823769308425195976620157509811362046199521011897245812229477102882060189350008861671625579788384666196607518361791107883546955698009101968124775981113426746206408708405828958638569304834951885060983064023240059674963421443501016387729128998633092797621094095451657793520846882016137485314434415535917951626530819786725025082953591698133497783986882790218479442791340324946672320242109275856425158504943904794589989786773023846039879190675608451494136392611075554438484264148562062407392539518597165854381723032286201821375206691442891153082616667609475170471133517462525492385633760126137990835011856330723492758460765661907887928610259251373404631009721589449133280465928150768575666018370508648559937540775959060836010388673267353201365037175645574554351615006457189651564140192508058179431842030343924433010283275270604541842674129212889673719735625244399615878040417581369153392228701947515092961116705388413220697610720577772869553622764910014096533617741294253379073526873354281433897430623483652525865344853418822255931795216996458319903774808101400180222199807678077677857247011763725836800182165964439958548996484522429484334354444221482339302259836581465271650506250896328836587348014635678171385399449092706437593761991888760646888928408063512884990206352557663094374897204237618751090090073680945872918018014145395140197932896339852144960263868199075033945525471400147151506639385700871632268332976575801013898511049881740046754726936774331071812107446505079685742857939406868266046533799666321239540136977662802734982114329828528518987960228077926497835700210386778961636881015293909206779153629104461833445601028681883955644922730214192067790400949710001098760465797412077689302021231422969002010574362575749991851944911417150203717085938306422398684181966583045508340962312510935949574037535263825183920225777737264489585849237775276457512758616289464606856225064821616213948108614330225999240382194035497612618708947423845616609474999481187249190834883951746173905073271866938635556425215627928702307109910934459371790682869233821501556465935807623030850118286786715388094901892856272585370216546053958392670483790813634270544019137103555056354558363875328904119576409139290659488764687864733994578299692112868216965525280269982630964652737217332425367661258422900109442249234756904860246587620086739661623991411696382394632086422238195776853328925647210754247124014911714638276420012568849092042909977793610613581140195441100293039268757069972999900216070562667098651386077321247387544727572077901335111051968669495511614414870763036262886788579538599619547435277224077307422212213210285784291054353884006675042941835877179132521788561918575513435202285496010654007904091492858454765047333461198604746399290648767708946381717556552701958072421092643567731819271144773576725698571917697091927585443162143965284094135892255443664115675244597318096565607088029630099324049374567557020548973819416886394262067398662519656597451631799892726558302770724281845715750390772607374082698553936905310975484860769426929505798504274144262521622422614349396146060059481783523527762095112148586180864037531569748840626977867218749835148847065540147756933267980726403493505523977798768435982808003678635583344976824080474009649748459937923470921971546985366440559103055157035457258984565187128597206514276299796324950365323024109951658303036542463227331968787662186041213076423700833750086793860417809107149194811371045833428826949606675282045283562340941360806306055798581093089480292182037049075714943033888759617471677726149251059590588223072784064830448996356056689955882516615865279684619029411808724798401828799602981239378407181841658864435462094243623103365302065126916533419308291823341416910745723659370478737539881360831547385904449344692841345411145396681534927132769757281209867911463385094808963460324339079573487511482659172030408384451215808450451019211103510011891839892292938940932719558328395690507833240542011144653276310167109671573181550227023577853987391852512836806482422268274024741302139075494949603175198597150310091594560256776442647331766604403966264475885126677309009698405953971630052322164602573880790597251492086871831232039358571456864280317116827960060602316303080331810088332773148015597072879720768234236314105169771535295939473854267329874092311088337192235651358142810679563915479925654540092675637254151251860224164032060219461760830531830383510352534227708005880392228464629583753506913126813870146510274271255093820300690818513953190289368782177923485509827548713250338404159042801421725739478184188807455128760948833477241184977390057659321356534437747222898298907569658981943645248260096313629929557313891697826842871271949881066905573048610777973524137292821131470038515097449764264803128482759664163452440571741409184356891107892282560225354516287835593128677232483857212080620286923765455396334679589330332630220599042541964909619090737654727793956088264614959294494558267491042559735199768478866882827421645685160999231785575433748036389938106226244682313390317227605392883722367718207867110425580565345594781717734107011939974920152239135761401637742107001001543221830498906668577050909793475796129094187902295405505148204308729343772719153686244944200470420132279543023367289696308411451920213664684304294922220142990990986669535971604282340414235854457440887394616731530535679877981161417787004979763526599637138690153877769738621602015095446580159379708046207730252982289580772565605453935370614991495479911241495908087531336771757756155571803378878226752041472881774348902423837464695585471042643376111855651444511638525228349378097092979605282936174332792481956343911880270479760833993426049712354691267607872083578006120806192986245279246542969391725848591787502259733613621984662091195103516221588702029451668292908226513159350898222827561394881516504430911495619335815400924227003008842387988635484541843559124386322157415595952619313518733133489367162936531153782052547185975147596210864181517630266688148093357034256429363291344608277752565673182016009385680971199013763502812465129088559080134565717503566062351929443584270178938313670981957057508900135796748695757227945629778419672976757307625782441349059522585731110239077953531865336064374426518999080553066357952331519185743528963261812202180938520954978522873219710773607802059803525798070820346762966100640276990804725135776122386830717030074821194640701152003951636027635629541051467077740783949156572645870692861141096094975989041651604389151535826321954319718659928424955208586498067133954065466588372356541046444006030458416387587124095710763635368908642007850646839308193874933863369089121765347791021197233630173561988916947298709412113073839948074181949717627789761209281437241144965156841145328845671863871856833797890570725220879888705196003263981253120467095856029871552683035463018123914324255914596903345015952341067852948448089580309389213213523588748813544574012466224768993022256925105858879695073430072395241082714745540230409234498887149978122403570069130528958154697994555402001566336925894878529687884261841242669369259720063014217524197108309552716371533259154441447284449181853639479320798231058149951921896935175057877102799362399251712020839735184120755725531075999292522763630353946542109771748178987064402098440605612489184063421685521961551752052878281262816284323094546552700019275606059143840660704603038862401923915287816882085342146829558658568200589850363441668961479405949820430661934821699258334108317378785960132332640698709330928617632068542953109264131505067487893386184131845537122104936683016887117967002675921425907189799307461780426144317299510290474418909042821158133153812105621552567825330364629348644508138184229884574340033334426348777768542358279859383920323562220696683424421083399473532466530018753272251941351231628866988500770963567070997625244191903114826957663633473643708814039908218626555820892327678367601264110479431605592963381162390068280228418092367542379115154962263596074286485630702790063771305129067209509695361826025168667040404839807041790021645139170503611096394762738394765742110449221500827774958039536033367025122653542492245942238163800673282989946989339963484253914034380271244463914327238183144367634027548903586326464006250920971163770795151091528474911026543125014182350466071655630023078117021978204498614358260209309295741762678505604736738515955438717975197243379572295232176661195772565252545917048545352961078652083121809316539462855836385424344547812235493977033216170020828505392425332203511342633493487380564677448681615696152671945401239199347601453313295865495781723556157283491614173176043792369614154729160259797828008753854791297152233893894853836107882925299996470766433468891021806364029495519002481078433331408664533470684465488433223216210932948131003009508793025980453506290754756936204076644310975226727828269973807681288155859783692577241286459605840184200234963022506525864591449172466820499124514723604383786006245334741784980354142585357298631615783251483466611094408430712985075160156428354593504050809079883711529995327308931270822319736420190795414034291290027406791031345439347521612257192664453610413885129061949951461108532894887727339223588309537488619395742285127807039529343122845319800803845802306618719637816099213358395696849892341259016378761920936309757893909079875013328154612178241098827817727161672694994382548092458143211771310121390171268226545508067464006546546030777297076579615360950268786282856674638274318434134629429088771884920594584360575209503494926864641052616806307985136609174458546597983926763486100132170275439737571388979916514599247335819626588861101703732668662589253706320173711474941403942523199557373474797818232648702474856393333579241484642900678139777314440689243319926121396531471560330970538389458807973752495773387676455488750391042589706119256839657254067856730272017506447729539884877635169409026195705616115133237713454856679273377389251003191661438980378684085885713894371789371041111298536787578921746441875301257316803344984289219039260480102881767215783863513712538495678611119509963894499343610905957132295168645506326717763644595014006982933423948706387273239557993545957487251771678164742787495039833521249584134093237066373686874397749165508960477168707729811705185681635003369555871702442407356082351757549422079957966109548286267892992424951413502447161837862358843949251702921130794275037220423840207246283093644235866819429050591991299412342000252917473805531376354203809227448744190610489574380213924319075053165293971507758056780001263861415258653007758249265820584385344943947086859554376382933282744636758461210659933120778407149150334668099336109000958209662120422059877694655616247679606108185067077853795239168369257652327700097363734920791723855361615066395212992137225362286134185597305893646547445729273161403502034243487965787677882943562423552277440158638651024998196558708779707229225978067562160051125009761864516330543219775762600425165219126351020437597287352116990096023258151366980736835979540500751056277577516685518690019662722630658404027910921061289306367967119714146194995828334644749995830710648751678044119436393239594947523523202970624133899840594703389198585003118548744575618568331843976077322907169132758797704798652261078726034716471357572176055556323182711738189446358638150317151973406672378069380225169807022945786248722663038797856178967839987044215326475940706371384955976567850822948668988831838032127428387665176085628719205612602476623082271998882758051492415142482068437108133871414946216123691946483070130663717614518289461812005741141679428117411845092971289383735353380677296563757524969522500310591539045000200487533131742049716510147395091754966630239852550106454214234092380320054836029609355970518203753279450893032793499697478052108063311487968010440206949797022764621910862823862594195731154813565171371096385755877296742449560829478436377616228963375206790538854080292710157764700634440057261043536556388670631848342268618251836551058225358745756144596582103536352475409974565510491975121575964402592695513933464328212758214651935922088241313052436238120823904692757510883569282056278421532862020005216538034181171531718642863011270551771069992978874130305715430434084193221822059655001873193262908519336649909373001948563498147245511810192776630894185616026694230683927502736528942409937334661522815824510702980234338907918386716760438735192291638736669452917099024296114869716727070171245679879331254411947155509508250327845236033018332576792401880334389638293922392041669829524629518247033983581459473950507258637004557968546654657005854643700472894552380636978692725641885966298163342497615966196881093454660232173065870780300815375515326023621774747649711779787465037026092556079178602568603595534877619400067342007359410619032719069693411773420042974246171134287882374307399822708969688284090436429409068754592442199097006209965813603398298532016106021357652912887068343794596702546641522584242527572407568984052407952814366202774236974849975078846554553852273020940233600034290560442816944231750329102563126039583168469894106910466010719998367333277101427008088023170823890552280834578703951359058993824354331636483171918142364905428417544982685596915567206868236787936933793599554980772902974914557025039140526656641597494519664736093254722154369617890898017347494485275981036936028534663644747939349210227690300469698782082238342631089244535263807679996498357915295514622054488060554001311207044329620068309582000294895335438913954870098835277228093395400173754080971186217951000729225018171482648248637403635334935525360509692952769339008425234058947680480214085314442367334034940545088464306260499628931957477137268248493423762454608116846194481528195233039426045066122978712159373547614530293600167614889009695749216034559140611263110570540902211897157203527513116694337669990503058422993321424199107243897197371220538132917278344683969252114761799097167109133523935070533403747403557450035838490945825933883395782492866631105999048406562668258513955353490573920299690095542919329700777181232305090873259654632403345936504865416682979997384219293213521277601539936419873518380338486522278497335066353662060801579997120851300949559567593187689686547841588598521512860496108044921340470018620422686090428834313069007046993659714799375931780415944753848451295182110874313631030196913591580816633829501883252093302152142216158681827464568546790695928244491556820706197026586210223638800602830038838684948876557385769782436499639216670242206088244628886726335315849401109712855188410998244861855816218495877387521765655416269381651633307616124060023104096482204397303059699492407267964637066946812724215538535182408055640723789513168526250015643337970836202876802594216680060024298750067649835313616370566899083024889110715157902111439672380078053371380607539209764292223726642689911134841564260382897775319686875905074438940153867068126418419653953282429204078187017239429708369115254140588831361538744371071832765006890535767936814331906731069953662802591743515667750681859658877169253811318298054226796687783138753807929376142766497586581392041545459724280379488428071709527755893799653275276982836851672965889644001859044388870552980803235107277541875417764451760791747138251501866418119559096198464896355240506110077529530242642069161154145173467840543314872714664559810146481282457994391269345688371186794343445380620386327338782886069967872672800307556782646608518386218537907385250710803467850635552679340021038959595594125060167289959946511082365075364827018849682633060981489416846960128539748371331070355582156074844558792319948842385977317345523917426000039166918687080896140496206967564403108686427243933043982823423529609025935482881416157499110472699153216952327940726446417749297086196122507656993329221363953829621576752872835492189910496905404323822240168648491647663599488321494438769134943299431043921865958950576150895582405475662181475062368909538097111041311814054853614748413909733300252536768726212531189887929516058312565318035322233517640154961524159279282332478596873188952405832667394332957624498099570078245527038438537410623227923808982615297398888021978815568414767099153412665196304612832707463831636211399531787403315453701178461842437210970470992823397027127645168002673255947025233361181124474673388171884225365641290610664025943311779325360017542855874262094430382429912843867151939685001463757927898380856485607358715770053074357930694309353387562996366934581999472539655655914788605038695377422655037935144930614013846877290100039516356573416629763155489159569310890052081789477370652571934737265541691321299092809641696142431298679202176573904788322010851748624577566117154568959003068986524294982791007201423563772563459734501827977409730131472191423613668624955592952938003092391239638610505322074591677722915316206570748728641247653045688289731458154456784606823425632129499755927209860378258023047242070776394054656221192104293159511813845752137346856478868636309250163733852322363629529835373094647691199791333376372270984011756882748554779419451618102474736655351283274351646631368772539476342481930491404565231694611931494927285115328241598503001683887424304228510883965439786424467607408480668606329121677912067353506258624480785331037590480072279005181905706005843148623999864086685455682186272346441278874741052981044017103418335067256308982374076339953839952347004668850044463673755828712882461799815150305553802366769310817709938767248515405728049389012052455478703954313845979983815966079082990240524141552415166699835845674827031624865875759341404748528136030426361181098773641809304973711473214432455472901315751945085094967119381241381484255275461669856283330821295102695695398499501246160119702355073184012929287935165089746813628902512050175988180226010386706261456304394758726967494835981959926303404790348676642693555389919805546809040307741693368466637165891448738796894329730864366288220549199200825571784483994977616939348857254355955492733971850485634094901530697998243457745039275632180302861339557637975916296509677771543795714462679257109105956699518139452181234468651409315147884578648954598002886493051841335885516583487068641634473309658080795841599751254223469738676749703377490389979079892820040846403678330553536149265543765000734959785239155515030986296590883136482603491772449486347045108216794192885353667754388418791836423008417331196111931678788429401827885129742084964668838376079540762313965680691981229381778044309493024941389841906761990945620367445781026454515790192960466090420682038671177259000348245460399320997458261912632972797675636479075034589571195032519409154500148336055118221954621889797538911433897918100393536658436961373309538568005744503160763568488654240071371215901860880572505767065681201259635916240008891202460442208606692643704100987915833684634386114109804544160507103217387775621415452507834849986737481024506168210121914323505262600896394298532497664102904705864784441521693978318094543558010898521598415957991239271842502148732434370269666366068237260144769597503639473271969642891591142112506486303753533600042075695689759491825242023683949606357387727511627876384782096319922014064378694923486433593806740889236018792893233349840876354874059732765656738567488447244659719910827524614549914442958851550790236780582405693841397342339012215244055556862798190055367897515323687229418001422240997518908178824901665156222733319412346596315414502883373283332103633172953202745984259797299752549804201798714829129104067790846037858966580164773433484529428779814201872347406666228362162207730179153218323967040148063088271206288357401097342575969628336482980926942193640461688781426859153027532200000081965669654402070703046271872341281194714171202659180415521324638877009123552552096081093083202836728241217798351768312885615133898056052762871006427027358033289128591530106458316526289115538414908325100845494156450437932564235109574384840693561992440744443074090487412837084918512038097154442294196886269695341042215685318430899790999675130429844113026588604842046719427479417327903233750524674750173436559790380469243384975470068308474875593354862580415792852306987295341508486631655918725503263390317561122898000271416727759279589499762787720500494272255090597955710091638504516262009197084524685891427566344577068923291622267853385824084494098485075576008063742952669074805623571965681081746692008552220656254989729136910326887996969929657774318254793510682138420366097127385392415170785567998388940744312153047971575011572116074154395135405805124603484377914619171434668060129225477299064892256091821423464705024531645659864919758138600015636316694854879508018644015569164402400508452340358972869815553862940206339797810675951451321488197358428397516404328422939948676523639964426828903655937800809491737725088189575356774069099529549074959517619428435453503546732150646136683702278886715179443568111765017675585337543762704777473800643096490450836852206903232828237837956901025018116225372512200895033744621278394039572935810819873652746752605343316918152923363482087960718130737582507649430965236310389176535112566657659982130875073953163580290663551964774530954515046711711230354974863963653655767755265803570775726609045381258654365053148788162715372354549884224508722265681357556567549791527060721373675822139294970445019660354814469244436697496968529727160120393785600055754926584477402081069644864945576267773756433034836639707048295587726966725577704167158214282293726330194634124199753825805442815077003156899478709225311463343061389315271473508224312867134347758682724920695775810435893212986366243775192839172658025608076509766694690541591951192851885294504391657132538966660243419520842639817080329748032968885816614849865135470931154412686560573248911146702442374224650443682657205395605149011795305869760809044370581098441753344772699411640151024466321924347483448041221854044072183980804966928701109820892278988484125766192600425819469466482188696541245605877521836727271063528488884742975847431325396600929968516951762498131638176022900182624012895557036169660777841542765287963580104966700120764223699722057639365981793461276014474940078000795339052162232780108205499475979039334399794800981647598832386783165034580190612098927685172268496759741523742682608039821397447714536247535813935889825908009358314855118116593261446759584270476950696501988687201306759726417044254130639762474900852920447684196076588646619350765054777232387755966634328876976498906542372586729830059469250824527407246134126566421355011148611632243041145374534950568766025538550155293286252193052196146087947647967373045337092912293748668995973282967683477248894811319378914085398569263778818891761212418360603000612934888184266076421251004795457447591113712965675083236177747927941464445841199060723879898673067031428170892726506625096800934896561211528869767404151271442249412216092196424552870427319937304656144746001792904195613745327705019226032465571225755748337533432621138909191277863449719137230720966387065854486267403019578867314741411961959106052136746121836081169536119264088946698012716521937956563829740178295165355213287124527539558858233874224583282360773669327072347025606514980755014305723007659791982037409969427095446708739569894016139233468240627635727660688276934964514989016001946526701466293937982676230228184612754191888308397554496216335869121698157592281073765401958944568479829168381328646942345534535161391236550391416595972730967432821254092066261911720718433751918589396511472991370398496956043256262208859146932887103032726045420490828748984581557907153219630366031524637894491722526023277485116532494150019751107707597210245485713193210948390358982270690484979506179784899625553840904931519936233537792674733944063332809694203961519912103609072557114296794580370005227054791004075797801880360020177296988171900556937877192019365425965604055334294376410156134363313611742948575469387702016790501934456222014931051524386314934566246347647110245483646914389724600589809304947001579901979533740795443041751131154386267071091488901676048624205276329992307182855447053177357345979746888202043411021878053898770180151626211424477572392331402621042932243235808480733214880960472561057689569883941251420621027323580504941952189777495583318346875361548416998274325463774019198143749834352482330175869449289619795479673830241356186410895570285331830153346564025177453752640304187805196744308887660866918999573384100885010182284836312870633801024016710499735892368896515140265028853895537598654709360540718787351341800497708076620683242569105168210384772952795504866495018199860682036672817026664359477682737304535634215129737066643534840235853528113941471724178790929427261698625340043199401786733931917061525610582432599974403515357805060305308249540712127156324360883588572925523731990561931488057348951714125341010452508550925701022190540080283088890065408260787968508325205265001085495217426190542365472273531172003191615874402942467733435429732705948169124885871527437361321471101782666448890677922418614780664127682133651408222820506347841950673157416692065032777209375719182780300228181844026209505464754924020083369807770067350255251198106451478838878649172727814926335578740811115898839663267976651800405457478936289162296888260397742798355195357638853405151928416230035505316979800969974827556262476387621976304878450105333426657730488688912647404645913355586141851752662145708674197638119838414940691078324641733801114762812427400279285026278321297142879803056068312375993500760859960346081849859234683650671789184411375692539329374303752576366869199932944499085185448115956013309370097897497553224473200905804923280631084955118547169576000520758643873949874700471592117967606470452744766729066144274017072086280567650458733468158608839709270327903015538593198788379570708373144306796257577080372430377503263714811869870298142559357230999455300009021031929118406342122599106724301306481522398451274198250033764934108214174081671344708336783396189593215680466759662867119051084895305000253039876545767391398202315447718427541128842519112563665590187487044734807714983851860557972880360944768689128170356037690066340567658435735728021616015342375169772157730092225669412817561950727915181210906430774069314780007195237846440181462234130158954998517403158120191159359993262649892237903308100957031884206056791390711827461849178644008466322229168216646554183355798544381460194729420907241830311032581724153852900006414353817132442999125450675470946088345113983764678084238655795655179947134688568868572519542749958746418614166572867195734444785031266175682946519278154912222602421821997396413541493616464270859414665685948423708719456444859196625766701390702807289620731567828918543192012432922537684610126888853950429381968936413383644612220484634268225831461347371647723154643222950435688397372112375957435692779705538013834351652934074120275303052605623608181211515931854349032040020683006773497338657492593420949353828054165325064436433808693848619459500550527295462687166899184417386256046404554030082777807874108115534331378115366933588234819997755235977699616071171025842201388368322084741712939775938755913224843885021638853770588358456251224157134753091146981347038937206121205038097146683786770550603704340507794830213236788432998379161854821857473928432886877288269879572593915582622879034670652344957692176597321661055287430249779544316295590080891529024558204462244837847015013379894560285237934271118681986968977067838850208455106313067164315443071768044546694624326952175156423209449303178945989149099132147718590657107934050960546907529880394134279330720832195103262493244419218201915685355190172302939983894548813265548562564721051885374198185481948791842344012024032619932704978791858835714957746020530957454211020821242728245056757567723517509781679178180402551133372288979806652254657800598741959413277980125339641721705884457348231816480784979109860797767480178694075771506817200544561347649149444948494958483518728321335588338418041692642991888367844716184179490182823640239957543077763847162177104422932558597472390261283537020324288068610600453585726152208022991800587693831332583258460192189453442845917990425306552436292519393563345675721552467723343260903460971283750038264472172688524453666645369646330938298806987281131084912058405424178668157637738741004549351747315391714959868357997633667032928564223068085904847247943759007722331941057914071585523406848416814120694381377417229896640046078425148877846099823262322074052203351406974542424333132149694618372092654079624848048301623807996852984495559671403222482636820504280554270924932687619823331774562675987443583959706788357800543199610282945458753661970861448159794502514262882615788822351808489360879869719405777795834320137841160905823465043699906273643385794245091321675415817253991369616274082709257297987951675739209019763889796967219657286441555333153048861588433031058532724724788922931327770569529766670427443430046223307113950757783117801329486300600265814157484249108933685732843239870178722596580623472817776061680834294264650371980397843785399710276070388809746941167231494771091530616448723157848612653835198637128117319318932226186600597956053555743856710476242252778196724417940156020793185310272299714269457244256917950965499154414260385915839342099744100110941930822389883258383953142679448261030943288527148101602814464941267791862684152757079878873789701552315770595603490219944134178209262637063184632508072867043455843726965418457384532420680748332539018134793616390282871060423391912477065873874694091313772391702811463521847833132475817484726091919580791966838134253437493415356638122881382102174513943854751665911457588496578925590113612290704779384237843624502038923232207822847951577328541922173596187900430645111144779515934207221869693213335074159183792802825180520544157698795769191586510752759736114627231109123290424338379820674059174483711717601092588306336499513322783457182899544097219459974376687575074284169755878426100322424991985972227990073685721188654521169186827898480398535179939517994416771987061326594974244270785852872144216423251733870342992774982645148469119774199865458860330330618804146444434530889285838225859466034182455234155064466428050616254090857530970639047975165908637391724794571069435073629151024272163877955877372049664707273363764892713047684611599212518404182801176646601073550892066078060671341659950282061133483699517845946499195569772569134058148357694812115471774298767351506562020857939890881209513783088519541120324790715797033530385002911228898260702204733912449257010209605490733031978285912210084176872894827398810189998080502940290540743394198182166398412026194062059909105466811906905304012791863940212476970897776136105175544288375213453413083215792723109085365918412455948458849100353356387334625946827279299374397917671716152252886315570062333156972559110327190446589553865064886730813255351378970783853653102700011111247791922234620794620505444060020663881467229161079926418863677360996833440639177634923699978758082673595524879399702187646107088255140536039111147489491309119462276812938728178392418146157046148648567662035963240756914134118301308283299167891298282135421921969477792793139125929585228862694673126572332745246841241909890374086905543804119771698806374278263555761316102349545496124474497622497143608848538706438631460751001927852816791928337524923204091685905289641743860504383464696586124913648932993533254986421006142270557760830180884471313853758112657467301477926237319073833400921782564370681022321072481972208772879815813097129015154643931252416813885037454311204462635274768351210916511527502532084815802341992015081515079708369951825681786487172511681934694099838089142592884943456824040946557479221221369302319354089633672417382376068508913710499377099017506511158792777109492735181099622295637839482380194133830112685936021653724214519156503538941372132063966784435799901927638019079626044455121409432597619953847013194466857317787694415433635448710747676081435863854515666200533456570251309268597241814950820344820547160232816813624315948771905935248102365001122065348779456049201175878463239590101826324974349484651748161103758406774092113349043449566874146719672239967936828636825570876920588612114197133217941994929577818467219042385941198639366048990063223300094181449928430976742506080166457535112218758511751899320497128265766351257407510139134422568550605943984273801620162960154616098276784315251566519144293595361466581434945282098952360683345877064353394180778280958227851077321779339004314778436714983307382923788495205157953808494800961725155571525317020393021306982792609058635771312234707065272154047758752747555405815151716073545648170249686488165265472492740876042794327628312660275904623675746897116277026528922758997226118210205103263427044532356315508503341787526375855417695283646862560908965860568776808270638895714409894858191316744104378583352921176686205453889815112653195230412671511373191609338062159611330026141760940967702574837354340794221531335362814031691971392618907242686718120904405405814375498859188066647448364774807219389297604101769320725753060026404872440802119528482401019177599628165042696242219363799838974504461147648777410430315220996241279747679197516191024561248201228722143182651106790817156904024582019246274087370325612510643032747951681925746196314324016371061080002832609871061189575110552761181611339887351712728094180732594633167029267118827576431551379520707807157664459544002684199234415320685647717402279507832625883773910885111677362977806894371004967729715893599304559849853669974601725260339705070932666677929210423695915168296396372414476987101133880927243107875046292359899506281648579468939637285169027667536773401247262701099086436089345060754575123953443003909081558833002305841631399884724221550666521935807105249821789626767233380736143055580946989207086626964932035179000217665809023766223001520808127239729204702860200905893436037682825875983613040615921530340221140550920765046188613796590747325043824748190192896048369771803210385286546271739443552596761646660961973501982965702994568005285361656184604039687992470145266871040720444080704177893262516989009614228548644622303647441805369665887772536436200401235855427028042963721732584869853204914331286613457562569717758036557181766436700241075545337553714741187956890470793367552628799928284306437620346733268432158372808778054568906563711307324768950340393181436963055604810035711077354760222919990345144927381849659618728071275990161000942970707541525980919892582962181731466257726262178527513520398463506149567171735053743995902134199011757758211177216938090601394665395917787198061476813278541361757154787390577249859315208327303157362221309876501468643665512064751879869131338475048481320780346455194797037440661039496797636167684970225736425662814867415547462382138886817893304064152859559901682356970140429062063440538307131567508458471798640046720105192351942626069761000172982978955927427424890067108754315789449233505696730465619766341110766744570249597029952947399752458751652907044154139647905041868687697964420349640193154102864401456651265302955811870182898176500031634932903067782779808385169156149112501088759835377824576598333240926639380083805455258808485658195560832557651909152576245665321914487793540808590591471988021352088157044222163207421875359348678715979164652451146810316934768735259847659328317188789029539522114905748052558329587311488584366978668163379703535147240169342929473642885339662267989878814175870374209852152573924462108043480845112483576030389203569378168272031059282644386295898668200009619139361068342946825487244547879895743499683255868803417882166850087138147273277653547811766185490893415184730171130570556789673666396758596710341315377500793639437605402057270458295590414040903312198131144380829259278472878315626281741544186146373826437798515089067667468098579315929715096952729176714461985996981711353161790720797000010049927481958810961404277959106773472980474978849528343577260035199597671853201605924507407342786565155822561581283395516769091193668605623545906061916072033776189378353344071838428037542487401105906298740083103999084184666544073570579191855163011577946973198219988693950301786541825060378048685523952224601209540451477068079596038417401599872196311582610055846815153216141895757736559327777333768900452219861450207841218770752305602896573266202072925920010298262135072146404450263869096911525013043281586717451292501491665545983540099715785601039184573425713974564780995965779673083323548099369008649200899084922307563840787999214093305026223732636759139917918477654711327128348930127391869732739315390873468937590153159232361086690017789068658011617656945870636802835571035469792008836038901897418639916963484308108456165065337837321659745245116290379710049333505214073287148548717755390028547430044388373987255803717830901426595166716092998348788567330304639758318287549881979814499633676813325820277771338538936536984206659645557057665435130945646521010633907321299109053084964130454559285864721885580127713646008155436126774336345952967237584798935995858235689772553016555358789817073251961205636348460859337280020480300013792651180636885661397784513888081722537273577504513670328702647219133227570801940826316998763713683715568939902065530401027009892557613023777761515897097737132583321176163583586599633444250051760110396835066724032896571989961512283221364911832883126871748429284927365097325251408292576417744330219296880107932975394485236623621316433306440388621186130133178427106089791001237976189254291134901722905323005767121893923016336607781311379435975284231799294185033382202131555363063963610743328066883010009624734689133264782947873193383659762762092960464051917462971784694001540108222574505587483103037517941231960535328745841977670434932299050847706704263128891604005964011850222175075180110383623747630698714102436784298712250450095752224508674710880404870130779518195665672058028377898401903975850725302522537060736203419309744965785523871213955065489205335050584956767970688350549660207322188745699715677263202698399596722182393830584452292730078383147688228562287762835350949148370110303602409137663601884439624400380995109983113259038102886657034470659353515068216457860309847551202332380922039582977175650028871222988433633513021131870672357533771292391700136005436192250424434792966215490195725227234042786686585103664233485127372028352738132410073147648961747889035706214232265205483947405183388627639298724217593862806845907887894559678495245243914597469228875560759333342204717197211536397636826663236757858645749929623386530985283656334557588097623216488967162581290092767549612754450972174635613791101322993713508847760030754955561412437029380490576234612115518893084264944532957817239852857539156984573040965731259519990037062996153436353020618297143276826431803577628439423093455864628679506603931976037136210160723936372196332523143678641095471925711700729223845742825056895637747779177691681079181719733440686167913069106941969945294184542748733995165796180704489545370774078022294952463936920819988563161484443162045017295434740911239973214506836019367631246934969178895766463271481402953132043432072755554129704324135593749772262195175090129900605172418363022167452213480987935868243760274374453674039958181848114994484056842511096674435835243193916731930233030029645277550928651146228891873670381219358128912477987964890279724637799119160911153576154707731500995508859193006436837938516621013918270821560145760012984438071580255571671928502373000172400131157849406990287681951341207947487752168040012619087115205198448496486625069065854898087998571289646696782849015995989280962394309466416775232415449746833616886950660589762899015991902026436873375895241031289589072699931376773729439156974590684920432601939696491061529669888077279645784584821320992155668070830089309331441803894629353058141586605325056027679742592078483156389108529625087924789724524418891310199485411465479132727667180352980454658403132008298435957404261103677332060345275851540142595668005038642212416185243624750627728536167527510127286192580069949230710916463520712129033072694426458456845630599144828704212778950953493587241337209765637262360607588896884704091853367227878642980979956895370759513665848815649167165084175596150707987210253704774072347710540643972810410443146921247618473801589341216936076703141095424872454443228765060110617264169916269668185263240787085326220384153027070490301109974837568722464135938483746475329881222302444062796971062905475144949634937994927973539372810389088091168750082246993034888425506804605561917610764709102146569587716903440266910929860697337267642633406365020067526729976840664611516796846562001969095389250850205137578578505735962198633164792171850976913488412039688869773936585097770197515663140903747403393123330816703403631916435886668717562195011925541096309851308463218467470494718859412432600498845140776018627424493619803817051715421566198869161523171512678682264933424694383173678772117735508236571848067920844304127339018563414415747217416663713544666346985293535732060165937243638611885519731600389932890694344190636034557676548730105149317759500625441543919996622989548946294210456982220916406259906527799924495810156805379673592762287390651404673782400224690202667835091457222553578090062650120471407854148225453259584154323642418399295985531835686996557609418541884021043017993160140056802759552778475468232614422521984803096329354021081253856127150109099196382920046784791245340844693035088369942801757380685099602420498290586641850987807297437538481011599845181247590620407124738871058097035484449250124765562657688711815349169732805282830243818674541484932062376929662338770768985404009146222573143754802460970810657338433314906458091441881410363649232114388240961676300570377033498370303535316792779016859107719414325814002012687651318805131285748717804637592581664772103666478644865748826512848520023355997887189536934608759680952647184844801579417275902691439739056825814068159316647581295406374822094782460118678349489396790504111249955790177862298814785133834896538736559084299771863547953469816961558932826324531078990000960915618171653137848421478124292769839476447345682985145616748975758336949811733956376816910427926397081942236409384994206854061930036241552050073752724888614029910302227087148718011761371650276971402837097267148066151181347261800182019600792987151922215393052764249414213291901265216608165162187675690356227712553388440032192775130522202642401324577252157027513591617697477001267400736082587641028615939359961913248758094269663312026174316478611879171167423004580466326898627591235007523361067950080331098800680201427439550302625793280241389509957928048394542782678292960548176659809685084946766900749452389878755555641178800458553548474012913249243960230790383294993378478848798881841889786477882402724689231472305678203434367941566471460124691794184503934735533579755502667766891788091139821586793100087620066893442494035965438513161958959664333207818255259179736734984128630637421716006345395449262001319761034175880734903058803926089095204685582254412178827672680691990716701096472894652131404474095017690383616306197291199482443388346604327702682954268711591360584810312229014566471362058471588434006807752039046657996108400470859946044545691092688087203465386322997776237316052460566776922648762581693829102914419028646714127026512505228629394968182634152465546513635942978813432052594165103363471490781901356562594977655080082125836976474757693969271614009675325876564278641278038322199774496705871705397475501770073613093134384436313854117314451381525972022243133654604458066589579506644389911616416092734397076518623939162448919917566332061933927933936560629026324371949877641666136948688207373504190640236663730110585442033737703086122252313797470642023084539152102420999905055897845088187852236074220595736031078156364893396614923784719454819072287206252542566778624464858793871724521688804267259662725646961196361710430158987906568504496131706207063448791932856288191319863922356773753315575891713842948525886118982953477371320632220464835979576081047579170643790504484572919523552705136406014886753384861883236558571635467664747082904399615777801117345114322601821576026106418576044857506436718451548028509609938861689892596221130262219608319262517679817792587646884358855863323555600774321449057597398486399405126516216470085732760545701770936289236925820296987521006452092684277428995554118549942655406996566619669468160598637473948810350170688660274638716743775117039997616348126403252910325582701024195185362868224910314957397802813930405651989816722247828430833506954764857079430417999720645579169144692239477032898398455314079447444528473449692799189305105922955331319672564288748546135517487769277889441277596212627961657053309261192516572746276479938527006230088864938223030562244547742376773536699875610452937432425536507004435982594986392508432121516527598202442742219728938181964927933091528449160348508342382368287616456456938191572522197626566012613896027621750442526601526456315807118719385398838808190982635652888625885513845491792020531447284710115440572569728159646455226486512310719774718094583778344197419317888494179720916923289441682237704766218752293712681037461027395330576140746338583439486136886426067542086151099573272605452605951996720251090441892270635589957243841755548259755375918843893093164682164470175155918515487672903598769999449524365613867795794209814898586859534940741595639366629845159402948474402077103017459532552510677072272613250859853721226612554955742117042979500930304985967108683157960304099987118868887656068470699261779058677523775758005569418375361236424404570602214598084927047348242241735526889192878454068396822270776235651168021780470831151059308749195839588913716385856322083749023877513690123740830932063714840434626344372961248936001702335595612826734934576333783375179387182962493340339912950666911439433258522235693297618012184701835419878836521388661877408132523754246856246510296389652432669380598554188208965488202449865247417330901012086926572564207418624191264964051380916845193432032171016085200378026300188404100067002343167746453374064950155813014548482790847569848879929242794022968088897995791166049731962604081958953940247169315918475095153455931649307048446475793868027342280960859445614865103924342809507389173814243073744590148446748164441793997999921088814636446185959998778172442473931700346170440532980964873070309349882087362792660383285783025310542874449191104094244265297944040547518281893818425925495511052680296678385843604816261877593933322181908224461853648159870335443838964508146930982265133940288165687096036107445885482648378716422951073553251338734711896814420468148948084939853338522452975242044346214181120999057932412124869458551072543982708919415165601171650923225303623564034980255435835774119591386493520201307747946869419418401929592765323937724969411169881395730084772742645857872112467969348238577589241789971831691272823380723145754470015600745755529039292879857843677959351125684604614768953327227739497557834408407838545737945171903554458090752005255074651609957894551417286965129615622658551717862020216871472172316021221339014816817087740031501229938354616329578907077232601287835604332134343511887557393536295772571026311220306097759142509875825188063296759757858500923714091072334203216637929481181042717118549398377260506466912707816820622956016587617539063257748771880141928489728416528654628982046140861821911278362854154589412483448586146258219416359910955944850331240233817645486755948726005390034105145933600429294998962733475279574826174017713310333035800396380582594449252187453609232068644828983152037625700924101670866283994456972191415071718904117253163089856029622809795119717199419349946103773560361707040317395791731317094697646738800403014274911589154238654442093349838703312380756975385680905518149227557168456102490545332612124646489182863533600085649561906270354811355292330119987218711446113510192260344937780370742471636005227908430358641191643777719691279998626088777577395465801301575743951462475800931099765100349175037180044393465146077840205745769130097620722355235715636925639297393671232417973939249352514934515048862157999021388722303518608595532379464428442885970955734759685453255910490673923964586707321785833481078104447443429464394562916685583065940576773978520155947723192827574722678196735027909467512424284119483689248723510937394207610299250111269994275085582810516736917169903940478305463233292129793447457803089585496560439958306737949685137910331364699682012003564230704015073502942488128226815111169812942962013555096606082688372288850895482884965207239455988042303934707573126928666531359290349242467424373761760341707028902285687106784182546988858235439515437182521000218480074811217700060022200548980420255150990580920557488990591897589331479058184189041652096140069909165006649700743670644421202466860802108638566050869226783769365518039615671356679745061693764035164472904113642389416243268072112344760761441098040871996631229617088078821688934562502686574319224333729988049536922515182291618398453895553746262946741084261116774618946906157344471808391476071910571237732539782072880081978786984361586993824125236405798978451673333617616632291979472819270771378448850379059495100965989552885712717677519147494552157035620843232237575513036844131004273760030975797968845050674786782477231652199480496653980170093860266121828150357618043983132144075946936026449052200454948122544639222952008012506949306747936879125798053192927972982591078493268153318616091560085206920682040829092988390924175624818107568088761641033739716483013223120740874528970506179418434673023415985251914379841299844948127981363492299455094903900042375247429710326528677967909443198095674308783491491214792921909967638413114110408950690265398053474471491183757660538696915761436178076373697634222386342765689744045124707265221620223892244400827041147651568386258375523203612653303933624433718143509645467868642233593167018170737607048568878802912119462811974801573383016007253362112886676196935495643628871465429543041017447557327515853807216825493674077809521534044753213166663302693422696169513965144027387668911358741297996386709757144349279186530691509132259244692813367472991263673217059012607986564582386057215804805663328817233217581897898194392855267557614371895899821217184125693476241220560703301491354798459534409548055558431066434707506052092507728585315663604909572687941192210769170998722504924627299577113971565187366232316309824028549694347443334086266409823905563598489884134299437709926498962925141249650329056041282841509660921840027511879728481697979121435560820675392755283560700466759637364752685994689827321943780168318585267121378505123424233341048952122300311653073865050601522618594573048255141339297547624974997368354573946567922380804026352080252313293340286881830396382216110567863499961600373192723233366371466669474345972036682112416261335560557079117329871525452329573518548985130031800780602788090169000008016962957480260839879408431216893484419261038972386444528448776228791694926794753607672731443739581005866422200614621784325025650561481147253935023386719654289788073887297506744347111087467783280798239785076960942112504627210890049779220019735576323302665041691653652554625684653117955647127749519828180472732279939678090371406228111844993524688539977936997331615185235809728851232691645964325624438945022147468611667981434705329076479586379226705167050839824233549617145202381503325654427451560491532177037007134148678447236578023098446784084308181425598056377845701119010282547194468088222810090091001736210628127810161288780415353954436442652856786250622097777467346281034518575068489671239476354527857552487463002684045077903846806852174952144232743347537920728535951106935116666749965126034590161824159940346034384054673157550309973805188427617827338362237066478364449640929939071613608114530471947169735158753261762287084051395909525246579663748972789487751177535263177224485066944591053063221343234064964086789088120373592595994499587402808272263207340097743960761499841150133206055374989939215476433601629871975479496799990852971844035818894135860252954504954959988728777534396984566836613377246859375278775061439421104367410975249692420340077039820322139380131962498929202799347179442366473025956765047933393024429820674151431441249291194036835042539111206982698843974373845601945152391319035649420130761980050039134425035805696508374030074262044538230795338172996034312092653014648971790793782257065430998668250972841589583648615075831340482719614078335534229263451360939155654814586013953415884824038861498284220406050098621489164137548910548162409500056341994391258862462271063441693647065582607182544117018887329891263112512569589238984264389201972433570795536711272806025329501634221702927548272513696144341704686382492376581328874342343561018316620167127341873446317368802285012297899192508013627943479883626705027932065223808925001813133936922349352951999544045681427230507363025230744574616312824275771886409707646435277413631493391197103995081610200878444917176216780919878888598515415498142617342118291900585449066900341626827740946820987559753409924112958474735150005790986773090963760679926965768609307927939070849616633259391620628457858604544450698245043026863281007787168787052045801571094598476055453235492655080647496386254810233124129060054070171802722839739330983959878414041763911018801999527935785223268651968837757793730024403545489856759026550173910092139370117050815413323375401551688349230295670251446763800169827472518333973839095809043590315013607335698046838702940119555988855522177557694944113267570683313976151160481284550577535726234368578275397873367164984331233797994645793384543394043867482688625920074131559347825311946474958724110409960478838615024362094348554411854515448362879027587268376465817100777028219788455483509826737451734432703748777932310699317963354446211159194024759004809912727981583728067029941753024374890640432089399952937443680373531708945117766547095388593715078839941925784506928091358504819356803372237570820671411975402295489465857978942522497318482970664452898227962608265853612274547662299828576894707953110221525294001979923551406244652204078993503497015329750808298698096601372148364406995203892731203457271738057532226640726972380562357922024003532283473184675493438638368519276279450318680674647903198172291366106396622080689107488046999707443119120919030532569205381977647644909869192062924844539612889859014072394950493178565573827627387115093188604339740011493558076290882922038585141573853977076598808651577093510835306429133815405526435945660423595972201436725396008447119394495698117357915684669754513466084560518614381536812855753182312329616510259911117680029548387218849120996743911171949470120064863995524433027840097997436574236235636063754622518955715264521648066912163779354268651049738598977678237621062797242934058979726374491189065573881909221205906836791191028885663527663445301646068833395920684266818296695049599129243080917069587525905140769083881274474702139487623353896355087285867663739463505223164260041395701379027809838782994553268703550976152113920590555781363669498583245730352947714646730773207989540072264069609510609723112461458736722844071667373650230114381724939527730560999618477058461129425842219479655440154804822536570299670411808059606502056968250321667304065132082817843037937726425544509658063562467319040084876980527179374644655141367083870572056978422826886502202719460760586832917373352089928187445924343379972225537806698644000813387302863075717635660827285657946858249389712217278705027262899826376860106355502336429492922211793050510430949525820885417136084357389463727001457195442253393123997105080142718969782108411940272741405346007467659817740906933525286159354285612636053069968928597316457701330713500711268417689297577375224989355413569244838127566776707818746474436439388675795114552242386084488457027184282259897293898803425833937952117598118526501337432833580535490462827513818898806272313506799390359856445637613069014522830454020455923819605394951537534110038490245760344681737884322139353142485513685565930834714916103159556764085380764833534941175728709765424972156295251955575840457755212091383080940406746064578072923348631250358448163935287861455392488478774696304318163396343905191666872133359376725353659168745053847328145903481067911527770741982339346728448259194327657471250506970037020450540673766765552630149942765539781520869715605425649330896018206200826728133022817753219701877988124386773934643125579694817249714461306877560533534555987401296760164452938338022034831652162117096894586198147046916361376157680145579654306241117926517995223910411028759244691908922189285376030069571336695737739993715487593385019926983101977498688652652077191419380759152032499836180699691882059070516591045588102345487525207335800908727190241443083847485481557462696662611075329335677047958818737734835759780865424920880817984097622066904593565527945394579218823622836451929468499242191709005531855929404943696999869617784754396178194388661389694500503608302881807482503627905466792084248271802336836501607662037852816367774089670571132669697711987639684831454834047052426065550472471697833503797750632988895481610836868930837391213880697454861101860646770245395785629175405909296520711507471637685499376900981421238770773715460694686491033122268070166090596669534291139948061206932925570673349439082743882861845001536167880269296800860264438636506682113032127272888328933969377743426478620703443949150601446707150996088464072220057579411494287282380347513507503062371218751975889913015741889860537155963753495792251286403756711856871922661217874280773284556596412310324145374550045172858369624231571528230821152303543629799889338132522406776505049412622392059299575674201133195717291935198140777596415071517823593338079627313217873950766274953174815839672304770516041032352732226671616517891728673991219388906276017083852673380118373641839382409092017274481753942355966231021059906740353336839115306572181725556270031903002331543973984764553271466000627194393361478386746038496114288391158044011547120718880386357250958178424141387262571483557869614348018644542050243403161020972064178879946082808328933221739471446061214607079435238888555053664134855559924170449195137500585467219218905054869859162141187985820526298881830081141165157368726350585338356576115864244080496260014568704519211470601371444681573081036303763624290615170497994872502201056550797642342222978451782419260811899318829447403855001771884958271701096568852714953329877343514420393712881103484622061183387783946427620423506663888453335455953066356829441973779907956309411716706645095796201407370878060885395555980600088182334508976267786706540975713981406749589981235899954156007923915147690418120459174245872532775758622335013173441480182742666330174295318415924229094998043818273199196597459155332113554253834773225333243798092746137168757758039320920146819326265035809749288063561648418647832155419179052979767208100818180484674466573675439540319323645102278543689169485542313196190624214830570085128633091555600438330272185604560964480375112083070156977448407017515998443786610244048990802837714814409539267536572108034927376610419939358342410542439173751712963753128309924750788034191424402982567574301867395466280595405253543325011733680003077128562357603526302638946590985807432663338667237918022667828996867558920718852521052052864232577235262075962564693099402576273838231437839835317641759847773988271512507280999142558408276687789053378382494599662616199458175996969730722415756299297207161294783879352010821182097456061900379496151471639461655665129738891138698610650943984835745592062019736629411343567440915329526843146055462720877307463268766805006305478676877678022462915960650407848989264798805034876968198261348904991059199081063776522001712556325251225688184178979791438649274027614764600028357384540817262014705256586496861701138904767457798955148343594632419014833170930842184842298075409150076234852438972639597984701468748435071038319731149150779041669556642279703437724172637035052193066573664719503287830913565339263766317529283401698144761114029584032194714306953453755684128012959082663486912348409673447544202465992492433709716776630153041635809536568777839490710949184478755006366805304007334891878867124795497068129347336687809228996412101900652708546852478361385225355523163059622537839545568610271695293677137371753683521753182456289923170448390338373789079411725067141312538900610382254533705029526845832017180553977028522529894614404774860915808878628940781757625432496237094968909434654933832606306010762628141634122416712812752426625364171115539472164351997584427371576702456566617606237470832505058277119663104959802186869059191630805616071518278784410110700611943141266839453302047785384240152912316103235063159844058309227030377229921826055821958489838641981273463327232989209880671259976965578942224277320921027538292370453464497402682432075613146503562472953803244018734031152862586310793773392131342876893394062001907559258269910386260990431702851382835253141097631891963409307512066188150138115517206850238140563268411516077150304982107042850438625220172326880364315143355489047321576149759213752245845388099992776092850768356327427096909746020574420196524610314966613582935352070958911851611033999658902181312572359814185084335214807189517283704455876073597353591295253035189499219041090861749397996066018616488378322001563671950157801746886944056815849503306521834148932191344223846191421790924267051580993593147350342284968473444660467951400387952470347980390211889871788436800594004667986402745816643318249201119594652831570708521359016458922382330109777978336457787323024055937918116831548940751265418894008219275273888607475108498855210575315703033292366526697570399752402996107304050874527196859530093841353737133691786822344174429721463612791175504479105513035943913817506084263518053662561482140322983839128888615039562589684894941229139589195956382839248289457465060425982442379876626957554704962849056200551429316629388631733513881210260506782489383181113827167132939382752948051527745661334651729958265166257378714911405147620409089390352173450877931098573366742656382412614020285213874602497410836239038719675994337631417464709674814697259208576006560748226267999158853963029034949230154104214256273848826806080528583506715963277899455796576463525077429768374096535048883524136950896039983441085549982712607512211677494377377244611810637241043410824052576671844270459113135495326900875758552061915620012001281668056590523887142392884141010130067116647641284354070228998011142953279834614901658071900176983547327523466629612380434355048277123003952074338980552949529408153143558094672593313363394491484127522633714511137952553401304787876673560286188444894260334155605407333533784713535002272376802297735283441665473491936893255882235432816961997939482700375800486757342574851494593587809100627048209324094027717977131837006239576788308581662139491129068052316864478947609361060086438179913385068697507358649993776159644644946688574422312692913494740134913353784066072318369012423979060889899778381697004892408045724877967707192727878786714678965562406742162890920707178707731308350845078395300645576976367155619469208304054598438860859188540556963314800389647915967382042868160043929444105091001921100659929386864120461389717989599783442862374992652949823183280631624205052088441552168717709536840569921091195113213309727487714175419589671532147099394170787025020948160139435772234546526783719478617041935564043875721013526164396169762014901000394693863438821329038537606894484488853689640549828632138044044437694264442209958403539963659839647328629205494239368359815437292445304289330192982740181584002218758036778058954225596289046908709177659010553479055686394724153533175905022390991662716536412637352060819385610944057994272186530509019123456457740283839019485972330660095597849927234191632234471502718417696200020047704857385300676713493780587302237609332636358396588387112287510458719186229077903147633549635714283083129145235160073129634786360875627703920855519219334528373082112931180532430313249289611671278569598210874762329582384298121281351403643309210506004106729295206455989871173926484759265054136501944351441850093745893907577624830199124543323324512893230890423053855988652819111140098582582779108832052412371849585382979145447245246913396083385212248767594221890627439781919949462318686093579645316960241158135931909796938787461874190371044915452948907858081309648506454438357120793659925840171077555941803823855106599248465377312165776528121081884512433260201092996999327931186760710081467876835081879603799272992838757431733622560551302427915070814406674176525334041945723412694492811787678541559078113802728214919258141683871963342504537951914020774968551162707564912919600691166398557238976302405044703035883961354344504305828081112153039679300104391447598253235916968928774774389208528205094015993482867432348967493927939614329887893605506777142194220025228288163792923073380213728001195719950428309495381683129852935548017262292440963598263020580786017485310496670966518829420265755271383214243783939256230344085316697009352138070484423041277925463872026116151881687944722403273098187716280257567919440329175327271889304123675115097434629575897622315378450488499112683772958613949184534988268650205018716464342809644983030057823455027864737888375721922115309226617370192298163982668673189142726727901160212512044907149091860347637681563782421091742188079109763301670082260565455363114779037653638856993753430318195580332748655534367052861221148811637378226432372374052558696284426527766612175713053058784304558540010046304007490932759750258567703057623016144980326725633222841183190805183075941031117922157046948209767101722120858618367056863080959989523417802262884764776067721609141605774970075971260385886530552588784165290200318550393923965817744641177609521133553343553359958321570091647408617875012685702542460022831192253243476090003529375369793433853211436632339247598131509864604967116982414497339185668562924437812853770148161110963845488800095414255580559653408387871693950119940149004047765752873135188709171734751368935648706754496978084532943105080960052462195538453157448445937626770530122951299811298909083788668716789372770853700340674804370931402149251567725753976695417235782604019996705450967947237572581340432428787884879414367495175004549933824142774936578607218203020465340490347020248877683976611909074329883092061291547163056660259678706029051201733603782396329052180866917451730426404358784780584345433750296872230577621369991737943842903633444234352827038400012781691053264365826995142486525327517248414755852106623360586956293518996678981579920442176748716025971555352260853577403750907987649292104954278119522407802450837692945923933451395940225263344812738219817243968641899225342859226141444825487660581857685449036021984815208571882044920449774129815902535996131299189666417168675517761727666106909786059088879677897707249469402182459992143307267618546600983983332456543259949336867702766556008028061920222705864028742676909548521020297433689519633122560430257732255892449743431497662224033725721233928757755622258518282900882339831094637521236100734257330190798902001434750120885425598546095841071164770306442318319869387723165763201707010678190905390167533570695374239410390533940850391727625683858519512648268716363574874915835458189028495773555613820698010024565182760507893816865421994172585443826115638321145436303985103914149810905681268461426043686581424717075637463367276900466791619050541288269439737638202018218129590076506111089216100261569091291767081282922193885826104608986382804163029957457496525306342218453608501894024336465054873559779850715470101389753415098020649489050699395408829396725359620938434875876441481311123179287531205257431083841032891450636735909765913140176810272531763353245420813928537643926587149314493357205008596820053982522392856936086616340503110912656566709666897725007347349631162332523032903598942475943967950878266802205315180599439608736462697869497026960088081756094024196454703961508569998656183305122728836186584193520820340557990119329310124260587506990151579149719141155375651100120202599050626021126975676666630153840413622616306929613393448346451637838859115902736074922041188382069212266858721574684402162685830741378368979197666590605139709194485321870002252663868258226449907375330323130330715141873950876777938299394163118585330505047213780165165634950321766519349530936850056842649013939235012606072035541499988380304997522762697841323089911423404617893437612565292126207892151673611673138076047477250431616630216479276155013746629874856372813407140811931685017649883573280932573680360205921255596114869803228413410666973789402424443064312973300917785388727424882781234966038947969935844776935822371755194233810770238155236030648430048769105884728448268018548657150426043398432331398972850620356648410648790891944680464186530038427869901087865603533581393301978557678978178201680086608107701762488420437226728050700238385281701197650129973541076697278674865734433752923421590768583718980483253130295254712073432788586870248104943666886066640195180637628177902890436145543531620155605333232411194484603888276153033072984362983408311247628945918800806363085682494938315537398144704949189241294331207372213823023738648241598208492996982579957346810859033473481797768943558649581720761867307301070674417860174567148098905877220906771578669409859797656216770275744668701222365062039317123091459125484441174687873650175646377359729200537270247964319695043579478174499602299547459336263285940100832099999076712909484092157609951480394786839092270819228956126502517047755106029648398694406927790615639796792483506791224276897558298678315254998238608235598835581594032080472784553835096787356379950166118235752228350656743440993413263613194035996426151958934864181931534884058818320697592202715872298120412286631985740906933403634053902486872330596597495626991621454978813373562997443036741423461268965636773147627241127288999821756891113749724765403717759722545347778674722472015563783513068264239723458328893274866730364542152072631317471420169023009764346419730845735657486724997471579065233754304175585148997122068661128058398522769887501376145557360498812472191512416088091693571944674762075929380357759933432762117955617850051942577495695450752666642302030683562004804303237125219781091682495125346497642957630092173065097626740273857808439923799697380402873596621327231744051838904964012005943766252665079334129263728203588851347574471615038444328874438890923040390635201825857217108566532059524128343325503353721612832114800774960228996278767952218278921621978493651974592054608365818151373121752430044703601612856959408420497089271741705286899143495677004405153805845561157106218643219403168743852983687119315669588161337049671738952083840507501331961736411984873283080715541798389650176738358693159164765960532508624692339379248653907307282869022956209934948491650448058957857483456344092813523788467991756870056870606454695318396184887789569874588639429264944183852487826928266489878467311318884916724992342059839535444682532538804263423556526999503296446830004916959390210263353109051679588778047391646628740641977103890701422883482334820597228988872905772775081566006585206865627301720780424085825999639023645734368861320234269766916080460014058228772220671259471749024326020978764650294616734544150942878867603177523143200966212368907033596515821829459532020070967685462759675599393995881625164182869347079603800107376977186157337190585701892243802896554921211005718814973389372690676343089249390159792664173947820907118388612132831767168114885689692336506401650159122890120877362966880342497458438043990607379420538829151901406458868483144223564141823153353431224050876345384172129832265559810199091470116912580712034968529394667160246600359133206882919822116093263002997404377763148213191620677638577301132145088295693524648122156791708954751811189513244452877408530859022636384495212174212896669033571336194363816404593577539325811262835847439017274044850678015070130959222893166065399556906218126941003250363155117093494017054773456199999474582803037065786769431754338961827981965334441554185740323618389758208914223030917272211160895503247066659024849987455317717874786042413208809558604208698161305620144371160645232840765179897578919226560834390301455397115976784481721517199283270851756583230861499999450099293682771330268430603937695524893564092883587330429769174718204017846122050653953082280853251750721903125130748882018043771141376448297880626916792406490415923475004828901592576306343446048645139311676273753937628843198765299851379787263814382465050628533859019968326672296569304871910531732069269359711881132282898683822939657021836424291841147662320286659010658330233386591359229091110308059675949708096463090913503198245357959917605065203985033476938998613760142440802396601894494136051915220917724293652809855103666930166871840573922379975422403242749382199203307354671400658769162475013967319983340723346579970822142752262323548673287374451115093045897078052472378190539095414546738679809366417451582506890562892350512668776598514944581213039337535515999966540437910366273243364874743927199004589636528307734560385628823958987612383508484339697949237949237832858723060006809015130742489221642039814024130151102513603055353116916321583659684684439419537737681931920109796715636722641600493035596504199007883164126473666349462530796148019629511894253882327314733386650908376155827855927136265448834553255432327062414392467001660366448854605439146154994499503119340062172517373604043390088455611812397392154697082296569879972084626414557814787605812296834436687713208906887383659415545542711753748897365243845159642573410412567655143390890315517894498911442827571882479359533217491144382932307973688664540589074038775100262493799427146462401884794432927885518988925696785722028407937429487403159742721198109100247512632797503558695816020401782387209031445116574997308083691061134736589003251877668158248906994546457744477987063173353355540469981426203737068212137103964690194047028708317491342761529040685618794808247567904822745364316665571331433275940160842869838294429045925990689348823005773938340072766344610423001053467300619902222638718636904006354662020532251171966663854770533520389482505684162642343497778047450679892418172871682684315244373957932473638681904581245478487191073054057361827340080935466112851801263604695776499177958374991811561153256291493722515032639270225916266750738557590693311790615658377123642948421660761239714929263828253655171947777424866416847915552276468266754420978141032556887587970476176918270674016197616572666085955221328669116049136852003110084619248853455899877765152314395885096348971192722310236979804653929147371403041961355989446494110620350821004738177302961162053613832314624151979224429285666101078967327455319764662434726898571338239796305778698012842797931433906959760098675552735459403796552586300717477998593394097493741730820125155147411109838136665657073722512281078290470494603996457233428815561845961168799036019477308136070892580876977464914008314479178658246315196896598185455720905833335588011349172533394102398703034479141534002654523702127831319228116039450569317809885469007193346251891934893687183028741550060330191767772642623195487045185624108108031449261342276781974949193456738149177011372806012379198498652551619565631670564216227485298081097457963744538493085737667061214383337333205775454526053169488665730349225852427225897096058379193588944066202726110448384145065851926476675489084351652762123371034639164830144196135049877486137444057839289757217846789661172093193086547983887490144191241457406832547299160574602776605511606986755876440039613412812563143853688519396066848612030494735429179125704529368928961846639729254479582996147746811612496829222726876818978736407302433258958394648860082371078098142080369278890499954418158468219821370027955291398499976410455840323311416125512179635398110359016579175008518038005670753184441571756588832156460712746609410850808509562015380603173548935065722676408760391516981558048832019265671238558990154396322996610884259260211677731742508390712059267218151689932736868695381240912601162679172776752587143354142489409642090762794554477419808872611274552778391401144208964151184608052731825502395113226615278486785396867219733310657206419489599806512409254435955335255385954168668632466561993637412114059924048682059412185278182548534295872907315784700910712651826337507699451322211657630969510567479828861403848204066807830259905482863881109687178902723704829941110484578715307255812293203661416183580262028577120057074970136490447366536729665712839068906679751061590295280897345167798400392251584181935955496716237398637311107967628609711119543007975249679196201057585820429005295676449956336185554402107267251406099864393955197974779767364094559291071659369039932754292074627769889321334997227431790158648429135676976916993290265806370171394133927986887763054389396272831215797572960297252157534070268473882712949559364429265984266309809597562009478112680750240707372942329266058775265242840878258454051657307263421390950299868795620592545215119816180667035627691720006212180424401926753873742507648935516932178695668303602513366080933530754335254472504058502890911763570155591810350675389826688992923092092811993949058305450144665103143035754645757875111216026514512687141787078271735070874134061863119249135183085529394995527419219440840488229004381170017819972767589411141616559838486139957404670903974708051945059255782453983411529853499723055535470615461533155039868017636574700781642537414461639857809095139460787004108160821563217718313355456021137196211138591385494713968930672487716590881948247638097403078423600326672889302007224988442899145846089114173275868950781237058640595973131023500849714566081627982100642103451175968899041090547759188858804974611647375021454857318963237916853677909217778686237987043414648119706199193678880023526834399693558351376594224003931919128656777787798801161616568822311988544502451009394453203166148976870136223464554778952321538845199677967722118164888708113563243594632719562602060782675163984207756008443790992680332835559001969443440289460997121896837585431138031184914940084566817964528823629087822532716583546631752265115063613777704411749344445434333889749593697613478912169592610673586167727004360717097883327498797904014667055153135427053721480539926944143859709689819002261838484597794673967083738531279224111353664170967105551210937325488449333314557674377492447964156938237342356480551235572171422538679320063408199844369356786487469410064785784144803023583682846820668528362984491706842181637792475860027794194269362710377126364567334320514544248683492005526981357744227832163049819724194714742989680839019528072632392661979911363029420069720545469691068216443966247128477204574097123205140668049011082176968404438571296309895322113403677178519717171231163661081547636152677904897757234743041385099952855535377995024570208010804294148335176800854629113701666464839510376991756376176930860851180578541299331150116727146691283815944153452956528783890222205807375669067607858221001690079175724933241591165635001450184485823172681664667935144468298134099032025639633565966552198877125655131108473570087075686863690949248789924753326676225427220900176978056275252567613632550387743789771154637251175443080133482375213428870804220779708553168537115544690979329936582057969652381803314136141369382304239582547968051260354966357379946854141917856673911488694054253392711183008212113818776396755526735444525005586472591883638575338534954327730712087338259754751749304128285662928175609148058070921837322702233067273918331288015667903613714458201111201651624046613285987027187681522170636426144925939960849719970412705634244577551573638658397370176968378100082971322483266061054649203270024785521091013563682211818860856271631224586986887535243680251428262536073194770090378264853018448230939173921584851330984295569369602582553214348638805203463203467209197219630664588857263729459862457207680923492770461991781051648112824483130493935763745892923972550484033527259226082958166466176883378271508851996779012752727076835502020590702230355308299432921450038577948990938506803036383499185660335076698987670622993980467218285089903775066930267239817198234703060436931653070081840106787563250255811033697626711080224149838366684848125296194191686205731325923096161984947335314272826172067671943023258757205215044525119455242580004555934357505211890690148330960696866996375703058617480208265529233852497041837074780721413310012902130952285719712562059816386333347404715148715850918832123793748397396863057845352612071994176761505824178327579780354117691518175744156998686399514981991431204619355375536885345112880684670478308441159574503261039239012752773052685010544817588420779736722482601158347228592748321931205040034680405104883368778927805177382563188861581903140392182261514745290668998492935563467529333496706668190066682284416813536096778157347155997612044343025686773567994519678207500245003738105143270728710075661886618305554799403204819124211055736212885237078065649206501833646677120006303582003477102629185446961057646016155566259655583776457041389846651663736580402953941292615051223130792340924087180459143997359346202000988811347422438400996044243270224877040758857745882772350430805968091233031985308408773244534616400946290668046094073188266064452637699561242339761319058163097071166168659075567045368567265742894443896186896362446351158693284114347675772125967969978038059849569375678667304441769902164877713328626571960244242025145403013244505855927003499118722836865006996070620366459411649185422519043973452594532122686238654233720578996782673062280472763322723117347618319930075531073824385565622388500784329680805586508851758777201717643084081116158357851166614565679272724019098977246417999889612119452506636358530668399288266473994758589714914246728939326130753392172425694462250491690840821896780901117422744925915269616712808403332120560878112297206346534975247168168390316071407996123902027436321362739223518094339830222440661194409490890086245772313996215030595630432627144497752953319619346835833407767287381257040412087452546226695222073284147480561267799445905794889588167427333189156253004006954496674237887314151249328183434841297372110380689787931171020151320746972631080982697555668204052302531789210387686235378286911155761088730256816152258622144148689136379245515803190581634139663873613138096885390637656169633514908487194582507837499299842504629128614827930570522311970027094332320332410398644500890630120821954499821511553471165083267776380113757107466432054873790571108641145770565680821825243129006545701351474742679259525018266497671926463106218110711961063149126841253448275346986522442221712322102963952528000535398408498350312575002757046535805366893210583890971055830797514760148304511501988070795538272950560662222797122896220327688555714520158645914855107384832661952545270509333938571124823460019163935149986811984603133249474228737607776427516578843625620585366815506656842856364247772675104815039991829177973683793084799844089964416141034612997744242837840592752454276292844864233791159639177772717356137038796451716161955654040254796727235200002774300027393189572913818048758701248955978888172142339339727980243968512299753947450029345297045922634384544319689358155269324441477261358580825559256404462300095299610582796350087133205755985404431380461529632507498141517958216224852418868530191289616229539568836377557486611406772045371436818524186765398497663646883784599278852928947458027914785810097732232049451238048261044640735822226571498556470649532441345068393446863407918839280517836986385593308176993202195552582298954112411941914301939322278587692161586123880570069357764040098871939358220499288001162729845935715997757121998742159224018883121503326872764261406655589528082850953824623982769020075828786569332957381145012979383483765346145076116745920229167760837231994646781595465815676739021599205924379147161754792065304649775466782186968528942037883494859107638244747309665125150800303162482732137763795103472220069895436337231499322824877189704640938597929209538521750419381990453904703629638895032210203531923355379367231612556511297136633774917518177578667106051685493264112737732143735088107320621773279516686048403505836008083761237535617073069261356458000728170165082353852840867541207581027276714149350724926549263664204716676161225088653147861133009908575620621659830078123628427237338654610103580898025469484243707489616040577875778100248353748428825603160752955789693760887483179932627866814608288482362737638725882535707777115681711865214892002179826928427959968263289313034984637237489769305888357662195237079324517465786038405716304113739167476762245474250084860643289683410569459642534462456931540267023887298909340432599195404094568440858819804570761183166953601783900866049017115327921184319572013088351352250219605340733168606672233168337168486984860265969583443087890780774871264666129863026677142142267870508863122913471254994422030215208380842259469445954536586510566257721349393267022864870002179012517456370269936849081926884425875517027813001069638990935162471903597275742307705500580281627048715571639778084679293291045312741072028191173896681624456941021485975781062760153001519164852693409779589155183397919525209621480506084841710998369690216717919194085615664479367144402085708586373351045071905814177056244352092453301811075288293780429143942366893691466390378954192105799325599186903189688282964078133723831746479443595766318363130752853813146145784232422100422608078342912189563912581842364654608968757560912738358776225350852701056337456162145346936305620990090484907230163949429051129087495457110022438858754729386625853105280763543470838021840595226134196159162440869189420743132905359501126741140144950393954726540967501882259751970271948950603096634369499360028008104473747496801661478833817676257026486169657049714721229460031763418868550332183633890282634826821845440820332797571974339978445864233070480598513952076232257821317160026195289106889082347378277003752802514187611973043427437581358524069067662511156087261610258414404739272957417005423411846159794093898995731199953349165494196568915901451289328674971492369124646318969745897771116617609863983327451113036151633772206257230423279978649328860047213062534310767819142231689107487622038468221808521417631575235028237672460272079938333518860582201835961462999256878070351620141945232662179221433780120225702646559446526757810044212769833629544148762749086455232166874841082931549883927422388308309852737116087663283451874439820938867598337215428325760900285665747945581103891377015264954914459682924814961042075874347102206847604908181962025057710524595102589394215666174085955723206435480614799686655795354080512433065985055224460728627166156365258582109283087451955255674666627851200474344780288759764472338997556350787223339172852868242987118282113132277476284917629182051140607518810910317796621075984698708594032515560659149562678321542273055443761406853005331037805473598563615994351878761586488696380822991703527119122012226158573820353955319013738610522014102735656295898122756488155191830504086111309952582514506916199440453839102156818270969989999834311854275388502005576453107967677203219090229596468691406608920605903251513993137868008735019630545802556310422446259585134116458907328868715474255666555450583805291420054351007591571127464651010502798390066673284594334875199589877140370075395380500431728624445335667752610076485863216842676057090113125427070817387404792887038495783635207235469015329178523383422715487216931692505758417864419443787809098606521557764221325798512210779145076602622269016324734197464957132900446428197079334537946049995779874015188543954709606623780692771730331245111622093813204367017800431353963580290628121591894519285308286378062414425821968493440789688000996310618414710195775008064837929574096949797177472481263790459391067966185104190878728404767026375199735056112228818526408069648955007068208466653437986964596039896701950680522441005167693958648131989196664310353209122771034904091709089882656864423970654502980268968885739642521634804288563668045823351796829968261175934898817102360535863071322690033996073158217326831763394437139295815082577435603960383779067758883073754417006425428022945595621408109282754995689610787416966171290752217018359774232723863055921199642872819036066737197616921210177235290761915824304845829968658090516282795318938044313179056138849629559458889781866415391311019433478109231135158438979371166876694255991434365715847075655176665787928479317329934403989226341321892564534602994291262556904593347559939170434256890120889543076396648745360995174256056751010964437596862341631699417084978444846685087086231480148293424728765274311296722185050841639175972943479880197826291298254799562322519540867981897494239181911306591080752308325895488605746624090809701556240079186449002091536545288461947283931607133148838303018474103859465184188038206015713428341364290778845904518010191518799525235232880869954125215201094746455104506333561476328653956838028076177935108189545822239406221121717425203763238517684607406324610047760590855958976143993757409222006435906216589328368669083035545192036906349427932948014056290406452823417819638012641950741792940568490292503300783091405522427515227065510909299437699734906224644095247281155842356638734819795578570900459320502497278339561414710086907537645572126781864771908237130904137188436161040309411318940289360469145475803780512939165078019107551739084911647046428858609053684297732917816394464212061838547360492568565484517348818473613746151512624760473282449438127464022359166038460897161729512028954566203955865504582022374873018973249689093586307691017020515178427174977089849182069146650468120089307946563774653873995818484174205635355239097669432901334618998578953466255244276396441827653317752050347099776360988291872576118937778231171429099340831050201051192097666910436375682029608385346389410858321946449244179119533093472194317946858104598081313677703960986537644918314640577166032586602289125154355312841525657809529904504745311829059386971765249139791252064937168783264852062712867388481800055677031255165670299270302580422926555339687930758380506021309373231025162373157513748012986793743389407207197544454330532947067541020296169183442965278559286274651524279690219412371320984540624977314920178695500291632478449701801760646373594648039924525200349630346052590536305473053650743103921874200701448345383159654181427015734092392473362167097649116667198251764380178887937032359510999574201726246731186162496093613189537179956359701284424575581777048349220373014496274293036986361495636760622157066762142000281059868262587511056857886043981233995572847748862151905664295999499961383585368644340873471786532085759209758416705412254604708340815733566942977201186126923870713558756780621740540741024691589400747176616456255255506824339159611606353920490656120698930795539635340611626576643190401804754100266066827010768981598999721194718008440960839417848882800350107253607607854274571881203199509592361404314078986113683256671138254599047611686103682575113632506551958195834230046894574016704534052290960466434945787541607010846869630523364433768489296601856512998839293028111560411201396272550338165358358900477490647644748481532168198075815956049286379348672280192394669198181073354102036683145044422993797954685180139604506830407402053878655153636649094921045032632287395635617685590068554962824811001889407725381668079373563746132231987816537749560538175427184171513648467414477717308432984531401448159678398488184839251983063030600786671039601776456734450458083773793432645037883017859708242055222577827279619225776894656105219895833389767867867893716648556943735573449051585407988181846004078464924481892869112904845694115104563441674522571887729130999426682982965571121412660675628116775109471885546496137920711754304756154670756292389241352265422719893980490076003637566061386930387002011560736928602287704121067507125319914011462817257165349551631631140192668636847009153033651098110660566727378526304997524104872838437022332382618508793074919788528613139639159725863464080178822692519949601379682512454864245034848300190500893484752914888153675131573511066778167583241269068704855737453454748330630173914140600568044942400322053787911321907375050089447589661951423410939974841291884222467041009150930260838230551663168292783715753857930766145426249270962260522988702825267190753120146163289788205642726601490829910378364342231781934442798819226381066723122977522127296583607397521156427559814332001633290659503495224991626002602969530571489722947548929758175777099678382443176490291992140506776908884656422238341431457957000506030912829143975288371734034326973115202148771702445080969984503230705351816517245448144852066652881048037426798571309718029432537885906584936522290708088920831168422779164495216271170161449059478133675270338893789977643215020687170978737329380259094462974430988707286492866362324012779211426730234365443233579739004591056944183970716639885541926606262708481228456399145141132833843578639917690790304313579222109587222418383997658924252304645550768625332482458105349086604878674619985320379173610964600476444498174777500492983935506720141708686589994155191872645059741054461499388842640683167974199626924294966500097481380761377821426496748017304286339298902997088010929044751122942039013833232224982319786888777129189555663972841088108520649051107425752350183384417911261042625357096714765037636490434577509504501072806396013801548309560011203179811786278562651577932889159535818460610774266525313481459256612639969219405472317791199937199073142380647556868065817496936061039757432176231173374502049485739654221099295710525554846163276615697421319541259796411556103770851495919567938117449658335571168707614074700747071081149718110820743819968187442818205250742855543631076168733382829321151716488793879087710817764742728100528114246345145864980901091162229289102967915212411806870985629313377862792822991521015778696296787763771133049546748840719668611904911262147128209949583196236693488757732563901870491794910311563543403298538325884374486751007444158945182286926791957922018683454624311803361207120693226089778449423837204739642332907027316049473067473507950810215324579909269046933962504019068304825961468945651035208723496081732812305619121620122302103852098848253698611249447661858590881435088338328431834512129768023691138377901132390562316262729975092295149387617702605486177370440334783989191284671181408554990079067644630069016796261798676502707134819134903683557531863881193334180873135374886656324565526597972421336066205513205452584853866188386228411955588863001105985448504840825147987342730404981288118965674360012128584308517990194485241487331008641248456899494895084943890457539070916192807501382716821111043161998050179065197041734114698726553929225656961929044870211218480516467003886565101729219292946248015163691774817009441719012275754252144424269035538728656681916648438894175898344907003392972455399123133837723742320113947137902705597644809368820447286885274891356968714433256788915665632863010802630779856219519963171391613570919045968712810512634534092816683346096350011138547275838685655868639677819236467634674164785043588342707512319635839012674299642180358886911858546112231462075051078431692337313096537863481411985737218922882803152213189097506243493917740921101484661190168645600424519006166863191043271915083285095482527069123801683920541391758266117007359486407122809352960187293251178430373962282894472171106924892760637730501493598667657557586485943067209936997119827925983152255523400566430433980059930441852739474471633942299713333876208547759597285883573945869140452557673398295977319931058954030966740879480308426694145012132620513409743225741232050401253516991173522627374777248232694217446667844039894154815635277187340451459495305648829009497240806434989860582041893711624060028077976385104372621337315833273019095888011534102954174732771612051153845763357733035003532881738883908688632420445142567293462743998153295225224213926473734610168289914321517999559799229502658358966272702199917485596657319029490578078299054110105889961534092047362585660680305496038503814292275014848708196843838128705837468034992334270298609477500271542869933316840406251377448444107007984953881653776135103903899247258508161287062337453833957204084728669653289641058327062854978960900950533079269278710433642471268185248657805274245666865269117940577780374066261727916864078666890886716328074343159067238379096493507345031365847885331352666911121036656762213756725064539835980765372634768140769150183270589193542909095052252827298328289404683196014702076980231536554527988913654479473749752256847976239539988901041924702396007370618992410059485346592104480948357367323071637267400482831696146073931480036025350235280814338718860611737708884719508241598514082079313420180798928680211551843779493662340756792285961391462075866187517742950734828285003425053583304906077600682562213176765335384723059478328314900481715952439363677639199630785446090942875411435921527372642012845769723624108243811623616162004777039732408447728237626571581401753994902115513091413909040818959398782649767669421393898978569298441477908030443618342479062413509534486421592421034640920699581182117789692605162996936022515350088219324293273177354235409837122042363882409206886706997351260850402043857279705790750202539155333241602912524207764095781702396317424739876476843364127961173461568502551362375937348093933035509406069181712143471118192349920264765992646958194077405407511772526046086196207774851723015494226835237071576544453219193145941410163286745583009336383653704406953199542131089314920876035608802345914958950758680538792201404106836837320020774099387305295500370408920880844686517679706526317663813879799070075969186777059542517100377943325447888458591417134820186018902916645288254048713981451598240092105361186583467283782169113584297613966553940855640347991039086575166634026060452106848135706839701732602614872707032697983683706860801159356365822338292628669779866435689467801010796943643352714742448364920372984646181299705982869105587891377592583403775096780225919735191132181971554146795396672737527866027673098045222789106844681044800387968902976643111416334373932101721522195143747493218562711576891929937462872850204248501904770065638571846583564292542656133443893620014805446319117913134184664349233113060237475425868451160345452124084753978453890173242394965645462714357773774107776612585281568394112864824266338794683346905232335037159900507251992966624979627483165858525368803741080792225508170214376208696081579167247389068246371508232858254942970352253527101100094884027353588948257872876450265790581224552518815491257959840323836870252348420715165623550667849590317948869107639666934400377599398189960267968927518486598454540806038014777110517430799870288245400452760191457976296093307891106339891095366369659407172869917166179295836647105170319909781346249721095077126848969804355663247154201821438110705251172274908257057916007934124485870518437372130467869407098342278946839120247806297888067076408221538382447360949267083224635010415245546136935684905901157876350043283791238845852286185856768318099143719451905941348923402556268333120176343750978044896498896513167456816071609435234457113540358870679745315647679204574225314283362378094250988379437749702529605801819240245783490680316266387472638106517439160734708992241618243799958184966737920833280127589203189975316932757323985777147876628119280246541592745627465570305114274084723620016826380722560963697259377554526964983873083766272442333787495133553322814565843206620285206158059590710207145916945838527779391387282147966489020937336637381286012611472572391913867777434963248691501591887377222997067710504371982736376533867866011870626192344616616212680648215908450995561968907863330214440726109151145237006066992307932965312316356606904211594132114592733085689571365029437970961219967372160352480035175050934676479732159572117765207803955394399650962492223133764752206787181789978873630244058070537303738109810702840916159555711361027556704446182243503828368076583168564153042086785714591755812587946750537425505652445560207740988743612978006541287895486311150186884203346631812901254302758097755635677980676867826147153574370432951368660627290269839223641220347354733948593255856497505799051845944553739905294726216405683145288682799016351867095664575400376734074078357261554691506369160531410600891585572143927227647486238604534844191492471892914054448565552176812076575312439860519341160864143635617611859735150535479331879510799636772178002695549763268631895064395218763840130052812908354878289015033329902409838303524860263324059837960036476125654724314593724115244122100251659423146127539371942101409625626766736380701868057037381764105109691658855624682776562199831090433441546472236816836399065336261532458657893889025279905295765184432117778330617513877745561261701218787827015340732610187348967356604869125436897675017681039358067840327697917019389647749961632284189719800762001659964594417383887503600113793431042289113442816489998290164047769060136982641127727311847106377697477794014500707564322396643880923979469876260038295458497473577522670019952360826180950501523051357274345761681323731190980093032352843798878612841216567230883152603561951846318501580521707553038878771476637285126289348387088993312316195416431220585768610739038540331469620665223285394831231865768507937605857927095197351472478819639604784808050631597013012867964594573920351557407820310606999399075613672375224897386216846789343859368083371564298590669337774187220253908681318992426199915502465434552799004346016863838023188339815008636259481323938350683382738361779324472111262110802797593441930363084869373813225765617018943547393489484721180611680237006260843529011533905638902562233345786426006265156596070978348362541558185514883804643272346574962681507006279055840211212460770858744613597141687602191008985769007251294362516805613983712910979884330177249051303324785084450801885018607816657389574584949753866609405243140478063490032101326723358413769663903232331779998111447650785650517251978711681387275061471909061596335745766858165936200705818468055101462929090608260330487428397477668482137710122518127750744529172458297523635940415155589267518036146575399561626026831949590429504780432787418439702471778885852120028419914204438796687243385152411308483546671444918391822843591699037664284324684160874837700133434001509065481406700324934674916929970889114349771341170386405877497266098206619468025172234852177712000376449585251688671654160937435896998681825774103171808278857928858988616697368713250620617901771341322606636349275543741294387460111539583105228645859292745632543771081481051821406709210293655444694933347029177795378687784812467412888921734259768804528400549279167552958139048415546171600287945207376017329545035214848880330017500872645124730894435202880785025773412789423208392370312194683091533297097157175776716852120638416495910001627972291889018682266600867368433782206801740173881831577403074289050409829766745640628659648073066909662204837907266022494810136512188535678369778509568547998759354395909632315306860409224872874077238524518249217383781282759076160739684614468270430600695114257074211855390531260980086411079369678446317860067641626812564555593951396493679505759178011672336577498674134959128780429979501895505412217338848421260122253897686601585894374781652216948793390095223289903175312322069057615995608277604104987718661802338623795802943221180208057395858553884122654516753938096544045089240949180931902521985210963242276433803803321131255534528600706454388448382335749276465591246970322300566178551986809259777225227402045903897642328431299484055846060451213952905953290031337140278958791439515767922838553787980376903473956648885683608332969215701343704958698300912573395076792602642431446704783242180661372701990799716699525060714292283387601595425156127709031032810950839956242713585912135273225741248477933982114938979622903092090823584249219679611237212284036484600367106245564896326349082300052643373017531213190270249162174526012387898135324665527411783278275572301103972145938047713377825907778894440331565304517251397220278450218206220400006834010115079533168864572520356901361448462576867835971676862991725426099644274553119898606274252573582133029960327550666512887002238815789441123676582997444898385252038050223838896327337084322981141152079167119456853728727538463787453307651193262961527949330147836642864196647817454704259052057767530401298915327155936084201002802083490182027202787257039581939008345553153559050009507724971631062993789305278724274463317241317945898358437894993815107331732228828946765788954988900710997943531543542528447391026122578620469718386350800575200182618763215410300722632721953871743335225748944293521808623384298845685438471377710262661297556300605089391006867770261040051860391745841280478840004415439740276318429741946679616586258352881667657274548784758970513978748954063790897616570956570286386010396994585064932655376646156334550262445900098673565309542922986866261994075665038953287657360325742722659911963595309333258049444445187321564739262675637674548679036438264057341296065997960497515495049082420245490692833120734196882078320650924082134415193226598599742811572231535276411223091362712111253666013099506884047213125120537246606425020864841290951625966930061084643156856659739980158594611365731600440923702459341184770334780892651161386597151535466881552077477098980497014905170595363694393339263088330948851642640416969681183902049279065917871758023382987574035716623633314415219042378017638658065046811359996788868098747313486238592561263015205307944585289801937106971171250834859066039298681528481307332841267844722379974760477646763101521175138650877380737155823164336843754216507447955268957912337056830798601027208314532614714073155004708986504282897847063137474849413089917239661861644806251942005585007229257436096722809357179598307620978049928101059134809240030885833661286341682387908082126930609798188701782091070912044376882779682455521708175487392630186293607606513357794196086810684027689614812593685800732519771099175855373638016334214771684583347647306775377415333753785347305511245422740094145634016745118339631443554986906294960972408180568706615613328489447171886676761426782290890723060835246239202122576060389838298765618302882250519527436365970645462003223096566983902037549576516556963624079245167296935659697441801771423859683818315720305809225081405854822426514731724527098208981921699337066245451089559894008290495363453189101433300622183635011110655663136444200526522823944071273798656431485772267732187087234232779528072402218353458051026026041287619367455696383772842674308440991937490346578541912473393847397766183663564627760447208340152766593121335259314212289295266441581160510850528951100905266793995229784639222778884374990082562356215625055856480278376827235873653487756319848192374105070449617789969477093604012712384121748337473924432531882738972891981177191365640669453303041408572601105854137383723352710703058470728041174702217986937757162932968928076943290915099916486622742159938449170865541346121771937848858562016186888967014897693998314256307403001782505249992218973405591507120206797677830733400958513144635725104817040910532014747099187681620983634336714425597741582531792937307980155954394799049594970522473242398728401420739602794494804638558747555827649073482617484098542497769435047296739445544561449636061245060825182170444217603518144426808810177544374422342154311680727605691460989602857918647140894757797668688819985500437777921735647298408828171630154160793736644984956946089638365577174190740138298227661029688059816397682526372277484671656648504781100667825426910324535153684035990270369325549757241498558191542408792998990141938552366110086410640101317555512973433624162846935923958069560094429587526314403553297918774699115276546852051509976088037890268551633016066128020226733838305925098041406912666928687074855020756433720513661995429014148172440416460382153559744952520234951638509313194762005815554043652191529370617148874112255066079058791116708367551636658880884265670920222667020386048714512452483976700692365346162849161268898040952718960292675462751727507057872316393279875292241525723674948077019347639389923059912579143132915533680419866071814639344815077273759906790960536387867768029005047898464579441964807475031137784438482405755080891137610823408503100655853629716778421552826233258622568319761371294204552432703151357186546184503585740887509725865868375170830341053582394666810094433749736602609501085610559710198551325224442317388515518082557219532388638659015254186081675167908981423581045311665958206460820965105946365800107805217082340526803941517680623428341273035697603021588761386822992455299710089464486412859717645897030442708863766018881364523010287396967771103941514721873708485399092920358362624164486670266550515759894267654544787762185745455015569159491932028786917859525606266069500588088419700736217994758197677365789347936917820304529457766616697677670894988524388859518506920749215200445721720103260022990372418280127740726024636900203167293836109942401436919611276895316634088752860374305391788986428217653619984932166475948635286478924847802152912217532696099592705651140418212264226347573020214589546364255645574074265911717140332170089816472681772724499223688638185052073652314899372659045944171968863429895887269570402343503457641291342431277712527630077534480731569137416354278319269418330758603747479835026210850438055572837813017461148067017894522379460961742216919130227961586676706814570897206716819400089706050612886081090874755935341535371385757242493836835440026366128456223494177066600550064545947355930107558969149540274350034761760015884856939494119167283796994434684497539400304535993604680591868934993310344372813739881031743967066327778915128522976148523117968573377543657250817606050571280418667291949787422004765870724278854899375966515642302304372375091024327176909941724654639637450803420995310581998007639052019303974637057622324770612418243708073978874634646846452599164096675498973875699000086453626529715886485722919204609509400994004027045700044625222849800461202722443323251651926735327811358795927106336497432891362081761082702768682133388851014905304787363319866379274950404402891063431242231452012152714441409833826544787073444667947657635998853400930309548957701608291745417021536727284270519778607552783480649645232223019824907326332958501056026119157015856641387964853187365183791696632488148479201108702408063863074591589507725648590393992788453158241486875481853102933711918787550450058879304166086281092507758457517884071414842226671150237933621581074169617911647529323308159380141003658426581805604761540902065976549692956831361362192206179825847912743801384340786793230646896894538340679761017128516024465119751236541336045653563843951033798770256775678629302989799068458784304052293907166737105936396316919448912545950130972600657644393459975373932080144952681080540493960228972607113899698247798992267094121613189478458911985690028261674040108637843140328655236707407831812748524165699063862843481992249803740691236493863129659272778363507243197564770593147581754573015137202911708963046493651975535666511077446522729780474011799468638920997865877972187619790033378646934885675406857982761804528169745236473175076257100377014473705802832487510885273033395546715999517294429621894093902551887473597272355783749538552200353684682075466773416832834064806117368096988502095306140349240440786138247582626758480551106539275056887764689689461000107954363602581140423162621741909883068215983522993254861436708971082845698534050241257576342754800380627308316710969926376193329952049541698623828968919504152559264502132853860236723615815941291921441600847968771156219318057290355622106921920607421047157217500958888820222195073857609650081220629175592063495064963730698721600236881975264425761016355691445912279236635562454214337459321049146555974593190171402036631028752249630181857997939553053675698132372595384901258437742488929392322862953439440751025961683897085373518577780146520137503273832703394029688911508580048639240465303400615878153821437517458794145422681615818606502157707964547089351084651195939967164456667526342048958242612849794592363410798232460680216913360255390553637177558838120644571743900874591590441811397991028277957957816729580226406396769080769633156005165164828145342913601260089796761257396297201685561908047255852574411276003539041523726933821615282374885452784650924356050001399554984870164627928524454933232777179073802561142653458146856814670211375348404436879791518456021052478809791134145349004159697615215390438215514514122175346317915727061274546651493987810507438374784633387925837816261957226870202533151512975529982849900711516466549122714411199043471206064472804526544791341399739234359740253422336567498673400365847274711247743466898401897521761610434806106933477443163569951919176536203598654708888682658523805444777836692290678952356491403996610074700322064525337087761072488982779212530764091022883734122608129175247097730393445047983548595090200204787449393000133415330326472742081462520614103588422210700230950035123725977205902302127169856309034823609788173866715753335983257199204199804943701151037868039171932033694113436778411652645775789302971672110614135319541295198797026495247949431139420490337460112018508642419280957079855686924967642496690702059144716231121101934287039489627090448476496984890207936120058420722696994235203769935903638181822750629986854556933215645560264994766192549700324465672043403953254627571887551981115161561688624946149581891322953404342191896291928555667040560862283219067537428392703040582567999106467535615519678288483102081332417341794922773655093941112165563048271332468598950700019379074109934460952361765548743690886431437189264307280169664892850404110421407630799066675707387616075055399752387860202514088149494376342414179628192918087272817278062002140154632423137663550932108046066770750492249946733718640802351182430560919484381370099977165872453933526541411320366489412462090434538903764223521362933767323819844581463196204004528249882804939842514096934000276289898122467819400411656967947207316296608970449946453785502634278501164145293317208578466095097727159410907128960757149384722063392102868111231256459893873238759020269935459647752230389460587605911851859869295246907213313454022063338402994401533430601680850369740798606093166196801139691231193984218784421356862725806046258686902678309347797110746552050390514125806869920281099295464821226479688930967708015566030179188525338140931467429414469175084947326812110471248339623120503391513541168941463977828759980439754676784012058416619396948772500722590024451821244450843876731948365801556951150050508613448156059181267755774002744762583042088882720280881257996803228149364082421520043087613940664157900603780162714698135938425603947733567183825154318776907711134249220010747874801067888391509946977326268686055458195289399868412537310183937303229413991623910768605134621476102667938047887082237546098757475995261305116556523000199471191318514493972457190947057948057924544034479390844893211803997794635125374164082351720391730491530628369524567106860369134841482141414493616599819367891393866695128520672167340909864081334250611734069833553974233712999300351145569432490227751961458456380085999334006041581052928981300813857017797144592460080555594807811615749562483643265037756666006927187885270460411955012611388021572634841151278928912547539754085725109640359476967696281345751635324350205766788118826021419357153820783846493535384272665644028278544091162119898701450853395657519321591099426519646701289359678412406350155653233765932402500148401618519546917626296621445147524725521059688760266372752120641644501946987714422544001410202913011026067362035182556108225086102246679775396310086168543081705626216500605417722414097755936545616483544752948334589646597620803293092405813815803076122545136206227739203254367296489221422311508414005037936123347219359593640023829012473067889363549615856961299798765834471927314034866740909747966712826383605748684153211325345552777439253563046623671904329010500060490522190128167863271492092662288514055437788317240596870990733083753670615132794213517993150848411399471969108734777016552738025550475578794401954005810115165155675677069820430462227006269633278656055708752044795533365865924014085635976734771589378550290618676940996063491768156551796718188081282533705312348601506542893792538336083198874163671316592317250477448786505517797572288011483951260310300919262725134715130644164732586441730820644748900116972231666368477860740284376880737448654375438589322813903155003104480264049656460822718841865058914448504601580577625181085957885873140118336472086389984407233945099666800921731647602719860414981041196638325239963134802867151157564620252910709688300916209126645216182227290916019706409336907740007327033710409135837370680837728934437689233779048139301663935685262489657063912584069925855721634605135666102208928812333949240171218881087586802488246589031317622850394280746869511427774999612828343773707670141143388842863712785296859064672825511113022869652990494194465547689604156658496642930228263713063917620313142282253222922660988768249686492385311027282246349966309165564067472622731048809270870638394636457231126881931280039689215730692192381654916033323524778096563750322837636887496366874044807964821754213875666142024996339567291180762287418534842586870379793882674294180632424204574627419350138303672737937793075464109353151522456735656843675597330047908376855089921451334941106086052587895470876583892145516667421521648896691355019493064799474607104581108850775290288921090016985473111540215143469179971918644157129177979967095378813016731744042176491754609199307858504302846204406582705168069540523659430686374199017577037948503891098235466881454505950546580617213411998323961339677974408696356453067397955836019346537332415300031529261742196900165217723957879928443623788256089010438691445399893966969059366977530070318996025740217736255976504081116215615155717110591843113854935129358285365381183039500265771468412408749346303835997237208726666509721518367991488999090722034645819567063059563615536657450006143911480938622593713652373481982212993920976973705179815175319699891889169510507610382197758342343490793021960870421281480358275137664013167506403160678140993366200883714722860131789282523897335392487013990562384099975498158316580362199436230278403316278446851122446786089426319608055155442830599551725235349248372943948966039028893250082007537058297034076008277112428060655673256656027169892753990940458160336762792975769507876090626137786948202241530066344184915047963372926047097316922537942784819338685566054873537431427336133228607519533828458364320171798014030273062628802324025447321382343239698992710837605765986862129707374465976065839213857101717896355127282714582407297899379787612753046623995159258391029295907786027153679146421533888417129477591851688829170913239167098509490742991984897796835296394331448017412236594012882904312177855160005456223342754534762232111628660450241484531226692942160278438702950548981862888471552148296204195194940721608512867097238472007949940923034512366640588453844123118166295864644761878007736545647728621460795558360134483569614487256923093846457009474113614005399977778003702128857359007318908160126845296960285130101111948601778775615175825578461950693511624078907123966636756208076530580745025188144576367092167689347101725887064311861085754778604337914999671905359985446641214938709762937840261632869843431494230399872786650258986749031200145687446597853307793492192585286637374552654883787515552250609420156265367823375123440873795164792235203315820429449722827509630747931827910733673974766499070574454287452576366097677197413191066973933715391482646238869425491255249985582259785068562887233697175688350857976365348093330763297230920428473402991580581278768078168529203836476071415261258219646378696749196479301120653036060766047144913409635476827617342286366646359120408833379550243973185013091150193666194018585026014230332483782221458098808791860209859364573837053464939006796773049460978195278945505059403040249407453462247257111378498555579035180503829453507726627366260884079664613671371397196023560083829093292309478415346291780426384208475139729131028188216152522871578893566657771080110140573800585188414009159981791897956063118550879469207551140718407419289533645241467534442272161792664583004213859452350743932563260278846236840315913619265012350629555340269904636827335813747171602805857854972578854993311269608969005139924417223200385295494100237230087042265438932130611590411883115678272703198129132896762224716168221654025733980302423657130727173954567602823440070488681218111196664796104583401967076927922956276114366514490685864221534819521867272638866692625863521700543264338403403872004644579614938655805920991563416974515080264253480996331642200257759137050487589498131414814069537103824572031253578503296888380906996703682559478401435107661491216141998632184216305890217029445397969130637438056358451549480798538599258297329515416357987637311780097687770269846161450504416925940453999479174292599230157307573268668616563691240926329195652467554533537986813055761447084680000303942809905418635256020749516171679916519752314725488809850985550768226218517005699366993097471210720613125378475012606877758210510297667355266207954748514198138504493287107771709573340335942112818109745206453561504713273101601034610584418973173968414387147067451561712646612662815321971736044072612380115834792337160914589862553673877089212520227231302028423951128662224712611655542630698547989930602711570348303461072536569837197287035848886578262257613940757169820343015186823442803578501364210501635239858395643448970150696658640541043773511203936139522402164061038314169650594095045403996612086976189364299446230654771548388179320722347175526603914117919363251810139008263190950108216692818777626257799562646211319691166228867215784886484992854518892756054784467878300378373962859879245605690079801873933952244466336544929975400321273723181827248065270229952256370213337455955789493312162661273941388620664991854756565132151288173341872633804343939195914081375672803351953293373151022899352715867631691746362524272798076038394574137416701786606863202703724944247711874105562322060293367286285072528687963064917857442151262822082029587336963821868643019545067012152893953362079298043946512940504228645375686764444347583437863571924898743780054295919816624719124852771093263419373427162622103252277263550454544148941099747534474236395226457232542777368989066299634434137374419705261809085493697891813962851249120623008574654605314564569881265469450953380349699692373189536116861502887983204625590226595300543290084927180327020428905820183133286993795429716320282978975353179846137733130472737545211092552905626086455245694530335657728110677224464795688700747647118341160785199095816198737404869070100299919586041030324542896837173892088099839471749357062648319201722870804872931606861181558628341095064036863109651255073295619813906192181632582291789981219599568054073321077652067180696589493952219385726600781952987625306680432451429208704841453056198821284353103112038137584616719639755718196907901890148893743887646532578077144433342006901800227188595383401409046011103330227191676956260332083196483187756914526260170266739360020192009665332618703837680169182004034431310297851300314617483853471999362903763382987969264865957428956319544808858745590137740731959122970966004404659356300313169188498811418521960058753534843166355512758696385189846809278574491594768020905739367839116756387141274540028109531670886672267102344111684363600881304376986767860003651762886675926414583697327694212016499151610203729463444119161172969357256421515796099940670994450919534311775580981980047270278779527147155180616366251216363823256169045478295312627989967676163982376475442667094530220835160997441297865507129092062830857186401185322852517994521981382415921501530302133690993714110761442443288880229988048016857205557593705231052620599202197294990137779223868744270962651768750106283241829628915672210026429373777398571976626845548509824005912731728278992618021910915408299587402509662100114878498628864564112194668315966477750976048892014463089987823149255325385323291613980831404337140677494075051577608004262180809793285613586522472913427738604522362689940315123612409766192096026140449274082683865317824616522719637472714170910342387548924274427883602913587633520006985544233416753020805765091363335769122864430482403299123626608896297086491536613594109720084841159270656599730400702564198670757765743863638687423236451864942296907630603902125769634850248560887156972265345569935914938447583456108647471040861544024326711975000386318724616715671275048786450093949689641890212003262187554239433185881955798034108627126276618184005491026076987417387438403566081998105009731362342855095886238035714209711996089121690776321239149477277902042157346991249825550520068792206470509372959566783592617604096773693017887765948968524688997975311743829178545174344377908669473629204692098376760048749492927260347867166422974761563772193585295424074423515425229712382272152275483521743990462958400651474218367855498726607729051754591351073974006806028620022287075607275068487227914253878912266087391644110113189129072298548258671694041746671295263804232726059835092850892307685053157792182937297804354053352274872557915702378513617845743298680383445686741517734061318364695170697234179166979422145554891097246007549752483727605797787089908569426735339682246713554867609903880113407694318423278351486229026277428424667349713310416634199107805072857252824039845369599975420206239333964206786918383503880650180805710385911182675010451057940689310345688588654250846284557400799079133217243810943688563967263127619733327304229631372197690993989038229058697507769858731915605703779345546455910732935988615817282169752344331033049684888251772259837230551427148145285200914716831303166123079176556617031857797564251252717756687530087606460886286202545992855510345753912292710212388724103203092630283275675301763121979864743372280274416448958512046581364244712684676505846937691405346116781663642225476593305105439226482035783328052901694210988198747313290216819755017820653834566193824866886538129184873226284351665861225583249393053920646494575765973238280581884252006156243660076320498392280811036422938039285301764408097640161978805994699122169463806119660734249392143326829646203016682879853207200289153256364863773299933342200110810930083065740741611316902977001223859055054056892283109473791459448739913427660096073248835716196226996429466761728103165188154015802791696873547799050880921156291168085521984504135831531895044586730110901836698231060198983235853103271318812486574038815983281843924866613468758926319439387471307897080303714564098045237858982180728109718836398642475668360427231168845145706811936587119870211923888813360211311131518881867095966760464500012941498236410709770689712441497921512614449736217818108321939775995485692026704075915754145696465679986322732831193931655649542392172011254818745976468882035106256361756810396842796720851342386230913842133726826511859102558855080839217475494101545157220479165772322954375233374934822921894629215043524514553877243287893838439116635608480747980832361128719411610902245510098397576002040236172748580962503068137414280038740274403413030456956203591141182958540529277684512358983907459609192364358018974684821954630279521050218690849355859514964955094711071790939953773909110933910925235065980522545311590724528866802149414910153078398364747737195058769165804290390931992518607198439552295925367283793114611902876560762246435517430569714402730046729519842544636534659037412700075136714761049859364472373689802373626584774769620407073141313176998485763253923735429001400274214817205646628243129307438712706717821520931177465367959909194924096584274289137501141005356072016316556399908424319833864949914075160305614500518075316654917198915721159586628369929898599039930235494119811434090331737859730607463800017143767641380106078016177158302525054733532185392455159091159764518826277219989101941491766393193562964317153375954090123420886324160078659253398585655597418380415065334930557926868424567668077151633510369059829742859815414546858176271715612502246737843707336411055275783633561321775243444717993852283239963914250324001098451215058649436360774880848224230441206285683438216046382235563274668866249101531850653142271541940281409153557914670159165759614212084181712006275423160298515387073555705644376884924255021011494731747263791038711171357551274493753552327083409977073494650642338767939576661773711328497193318409790841343918948841375010787164984870864785921548801176853456790631325119235421705022150386280316779381149104539900050240563617630185863536860931720073037294166214186709851257670366027650198195120871222872420779499913595742560269190864811360673488297709491912147732260018977013803829288924777445752346913999404550137868914216334481426350654697423890626097439484468940855518334986645410023767570965659678400579872024092274144789684779119160996242436002395812113305671915566679455052359007128415049831273986660742966347765443353363689177640732554076485616110950729374835077853747792868098282291199174650111676136048897752783500405505221305054147632179438389945242946778048259434173833284223616446707063907323366183573633821381289603366142889802524818205126486731132576816603614046779670496790632528654015212924032001952014327096426587806896070168329753752277580202076908221341901433249616622275754171169731891174341592192690622589801471629903824466868097923629104307228102895907957959961980379422185989940565340582469241647990318357851422836088706663251729915935070083093438211481429782926616727435104262578028396794102346259176791794936453032080863096717971922731419509842760147625134197358728290397672099143052630002491119332778566954045262828417335549073398927777775688485252180121306508524522051933946653898488040555192568041029187284404290763998461957811407315080250164894930579479464712964715621601272846456474476277542552169272746965935168938923747203645814091954314298314202385472327763459243689835364168480279709772806033768083326378162341772361656812674416412437185900645282375816342565262352193639963375126867584242580474631574034352044282174753236636326675173874355571153180249186599139689495605703294364618595719280861363642134960286581761021166252462111012039643295329725647093926085130395644358153502280497886105231651059737997807090832772189128367238619435951983401456353623654627663826472259033477397262710488155518352555168004770008648840578979215561337097358955011237175845842958047014800819803559767865194936531693720005981823643893793626206410020282188643420192983522214176509147651469133304041494424452467324838203033611878044127166138850950237950079737593056350905429669483733206366669753724882060268030231578169190221926191945421145602889193827419087976780261162772585152036868158888813851649203525745194523105684137911951681312534269389016969879579406209126937386714966239062651683721234952785723095342091698379865231571015919355577791647125997727453265850177965411887639970055234552277323671001198790030943546115778004208676731933589816829469679339251483572251397357044877192372565407613517510966101365504387182574127688425006029046773388629237352583936603404641720414264146926107429769116793206257403395423696747369511124703113676448308853991253823315986168148919017645390357861867744773562610812838193136022315572136898164418992900372639141999185618319336660996639046114821081940715242931099440679852987878847245379302411146895724147591839185232481402678198280152970030574373380127911504316131432952713843995860537394409680277628396258955224671684320316072264605146490564316963312306258275069206255456562925967970577854742599257549849675520927662137650173699610539703842511816162776274776885122905746548081685219309140592997919689672287131692645262550510485821074172078917612306807043329147864532305388112100687052994600994731955067436097272511194254313635684876407387708110145615579620048818672059552038260436706597449558059765011980258399774290102614912404741673436494691294678507367334684560829125965323594637426633008505139434706812273134539659898417677317690232487165646796639021528147897554189151388679093043610752675929470784868589964456430874720807491483636355436859654051637081068214573610178291117476339175091698637241940731149659716524522852730037143275111116937831484458754482343431442903283417000166064894038954046436889487191064225141454904502174131392494078492919134778490924575825145813539145878391882896609445357420033689460546819377366606117772411589349849526645368101050191483550230410280964109559624537722863272673433083159453089760202876945799678616594716589985318497636436365580054431689547167986413913922429713179148463597184441480078645760866001447878414116902161380376198790075294869823082420358359268875534056114056628543452998220651951471747216472439430158844751980492161021138004795687148938478110307501052458351229314247008199092291457673344111146321594513355328661484345469537250910805017598530994640280508049994649647959710441529986388960257546750851967157684292689889050459202964044954937175203775682229215188537875640074350878786989911623877121741902975238800115740408507430229981897268796929631465730118773025539216314127353089816580630217379800903753959045347994911056050008099142109880613596945296755008999745080980030902170578917369738298333841612913823582838399604310887470859530488122248752667314444743123204914212850898357150531809208278608473486739453158565597812771871579952845268084446522658513432044038500653375645009736580543972678158625729724984059589566126666590550728212692492708241449427639570585181539038785673523011680473901938893515033676163489516594982225784113877928166495732387792708336096430296763792253768068406174087734447541315683859238316408487824234277697773778647812131526467840782393514759394908091840038745393341230805599372183363327893414432154841560574154933746851693349736532300786075809889181505857346448483775313433272962928435139020763620513998709370718896003594309159220094698065038009265097153994589469321586594952159100248375680664314856285210573823086886800794470081264454493855432549878954470174776285953848401860872255392845796965780568899094726657911938985034326503916603846060223102831776694297392959389999279859870044946101697221690103312091655451653261367457437518874572653366968678855848667133566924926033797838426278234165810069000290125671235495781892648096167629884431335259785522438317215253490997109899947688819696924981230203301751968186122191378483412101226838620573162891305421602707701239309053035935304233450752633254491247714224885693170560509891719498456186689544880451088225317361189830588663787876062872147367733230452701464207543838721388633381546490828989047889931915325103163328119991718492137076836057306483204052012582155629057318544769290145229363025523999801508778102278994607227092433527410390642699598724542367426285004963560933182219976064258858589689112155437069179534732693489150865765396888913843917970655865350560445552788004188903832069045118383653431158057417493059894098471126885066612470482573422615329501115192982222004624787738712265116571894289002220658569404258159643884317332759063268586926955674810097547625765634881310455018743882541031854973671732292539747715162622335720428138756426056961247354154981984990334308491668262299570261415116133362456782497487357545316331747196880056216057883179350921774061276741716991262899850192581288922849196789109515675157722874884123429454911313269295079302326411793882543355616565966869480782849682068363930438389849655502844437854491519340482849072225029555320962841352686028520632328914139314291903661435468445880121165270757352519470200421198536456679782144403650683588927412826406765066036260498040162804243411038831525138255603355512159165370540633089506582278797211002616212066586329252386753364668675330045059176383205146132411401759217093042971449979993804467304509086991305832748309027541349932233737150510307608144083768647199257682859821182733216300347936806093053906921817563711056291202495681318260144747890129814955914648479974567446080166511514560858460163430362580815169836427940332549849698827390912639280563795023712552520216587012346671267954848720422422012040312048162666956351742666912414453856453896839618626132062397272505543280297891276352548157058991543682459409716727303143327840855946171419400157716161719510907376121152306417288809931266866120830761088129162472696831793229583339582179783784183117099352161256343885264567295324649293341609177933074390399622022107007878093136080289220567940404117088306368387563306752496980733844177122387967052158897273072374173622473371774433709398113147496562554099140747616821639702851445896177418117404467123271420617837310133006963156123448128604115043950076037770474918344610910647808190779783432576529480602575015795065165480683224952417909150675094186133542509359771755379614968535794509718307869541786679450812008663984205881243954809268691185884413469014169213144313497556645637303617988751584837043726923020840257143760837514529146299881792859487239291382494555120518891151660518244195275558656606173138498201557438093888546096568860758991507685534380547500286407051428922708689087068791359026388066371985868591652568168346510207127863039384302094925172682264544887089062402128127598151642629763074379804510970536243446690365469990559289773471376875333439136950902730237708671285002625856706775405514217087467836482043334801270374478681578655886813380691951296631287482511296882889702457597494726176633037135373177701120849909172239000293960370901474946405725439201150253855378331696736992669932600929814917559359175164958718952547122777072853825299147629482413393792091721146320219166497612237106004364132036473714415762721540501247294705237681595655672834396336662174210439955789194863524043582273120078946706702796111073384019766042718566892948584823283212534438606881226632337459759496663105437977278589061283148463657124885605910935408900802758373423485408838691959834810718371251723923818509350863579036923081858654767709013211039646629683841222202051895956123120075953948152582587186305502856072459003754306069811005118418218087208783601894481494213106666149078362241007492904564348449329618233910059091436903252281252759250082367807343559874907826180068145483837385883035680074487756496190676261785090679821414139103027009892613985957452536415746632013014376259370010518982789957774408280089261594985080134127984987259061415676664074803338464266129516724676277120690633112936658479321675475743807182825762907836202459493946757023935300588112079995726131256571941486168862371604922996195971131737053298316848264618416050143975345064891145359805980006097349225761665322871552650584086607976868992518360648951535915196184533731418276389278945378511646609091494451610370798033334533990512933067243452697765413042598037837700607605940313669588168839616925316519679398838008648254543072790497171856508867614337331966214859680242689692928911204208509180408628760356623739903916314697093560836990695189215311628596043568711123420128087394795438058209045728092578100363727259875469316103045269386763751412872163378155831933401189538367416523922820820808548318072439599751400584076011027457872706531860628975080472635974575073606777800328114743103290959010090053531695055303398748437706392053674268499305958224222374268839086970778838133977117208603259638213958984445140982282761732683324179847209954204544448972335569056306506786336336611164254886481090145376878848679748481834588379970691405700806689944891522836197117866779381208470051012203951608472129827044216851198860826535940710810546276925700982581352815260490422085636659946501825262155725082994176297337938279525066692851116541040531750917790923613467723722472046439460716102231522281497454788571725098520918010593524535068431221974007527854361267711537290427279896301040790782976308098193066172803144174709466357918757303739386636932407801949747393552109795692298413488542117640231462770691779935015849861004141733462533439385594655200750786385639959098626818689907676692994772377952551630099186248586505535309397436206638095064093929838114356151407136037589040020643513111874826739407825564664141142803246481545098763818736503728867989150398292172587987529112535782306756380550155869410347695241394740246008096093085096245001761367209176854803379526369190644124670441837463236047387821246612458910302379514799824250174071417413734573020038544837550392460553246597846351139257711200430710224303820630373927227146058680683769471769842440830780382647096205101374915048087457771495168613689212010944499546772699633338255576064987255307691281201395320318610470828859461843586567202356928147821773081601584263000160486210856165967643178004594855277563598469445432477234741265316290675243116467696789233544410372769111644731005633021468027695296453219482430873049324785259744985649913115295503107099993937966522720528175314138340643360193272022502693664590818916273248439816783748746617814998840204359303724719908327504092442500884382938005033261195919904208328380962246492085983091455480055608298287150009173231615551553646455742617634469590448342162389653745423988827359745185513563439680749879698850654559069142224312084169493268332323133642380263050380613123696067452102152793422044024215663994214268043941871835726666384382530009604846931113718294347981702040299831963222341347977305568007932886208026162027321547286991111568279917781049561746297410832410148319837495728004620359968918145696871399261192623584878556159497015953340875534392195128527943846031733100315695984287570098611009814710689761869741679323216088671909672725029605609054102265090571491480844897149358681079265994183567494684399398906865959591095738252001844464531961983648096739548739675512924182975869081918061177780129389379305390820696461741941495141328682619406757630567177325018603628095086527802849510530161930751536343997275588660452091607489583484454346283647311284549565432105294750643649871719024437429820037646573235366194860425521653584586782275213179635174629570101505540482844207202993076937755422616884364052566707216237023905221298880342347158244033229984460557352274669541566049484244650083681466653760143156523070892528782131164072378915417894242752779479507333014672238964487955624627451581552021526614434395810758366293152350212912804865696857457819520457971221537590524740716649502019432507168271249088628516571938032470355971735092869402480728610313403667703681139799709117743748941006056752229420133768491559781955651156785580609114867126562231573832083456854569098596620800368941774548269865616394619802924048846520373730168318447984799132449992077240753547886039703649708898403621581222222601472968460105994670378955763968406356259782371865345625873035332327236276074994361828278956968733506225709813361276223856612665244848965414886172817987106486208411778554468377482934839343259000398704529163845975943087729588145968271965684691471947764152390673843864043323779817748426134946007972318257287678102241101756685699593777299114954069000806147229670178736403101357460225691245817352318334439728578818741487632745149812484062082063773821985766409121289957703616098954576193515007254655249429831797338754879186359325583013039205385103900563137521179055138364621440196755178730330255604092720603393546349877123436173185502756086164453357137785590843805671465510525751545509981717442160982066781502043477692590245316460014626551639725548166640104174433212311459832488348099548275297030008186521535662591471808902744792378650422364214391966293223099840631127540112633923011069444586153643251384208776715934834161125632291327575070521594682671371137488449363278989909044942711202888451609348861571268902415829698479060689085574909294548639295569007837168409514902631837377871990857148196509978024909803743384684616234242660925280085230420260960891300318845598666908140548491134746169355431320289214758443816655363823312454772678649733638505188638315200225643463170361380403056101069917207592563436818123933502873961816404507983386048605514264768280455337734593416211176100577118341014726476212863281786539612865431458221209932693404437796685392602956875967762746691756038860105897178439899315231729289994745832442461727409481144032237997581215230524436309000951283216809984772188456412801143890299407261572024412626924265043941979287333529936739028979166668532605566971716367173011203304786619665253553295587319289748483684796775693344868264141072419835180710675197119007624521654847399197828025686110890719627541967989715207443645477504779744353575533707946571151629128741025025964862064605812004216212249876313349391301144072153082168779864617825871619536290840105198246755484386647617093931238556663267453558679856106414736401840516342301915162300800625952596796155853377465419352001763751653968784218557785103918077740944610239494944413915441593922522067128874459966631761945866164418979888037895364426911369716337855069151362334945386860451943265205955306402341318858788127883651131570944940175033322441687389611923453555424073213497059672507973165901177116696403011848978680747437594880914650105879318283835140377402193048664154233016597410273719797811788470028146482886868865225129298856841970347543275996552609505366230465634896704839291279469022112228138984640022924374948404227299842337913535387950006983061091117317307785986275163241335315470065916599362819446602670861055227573308473565030378227561458078021603478078812949170531203527622584335416076801400659327432894701289409395762977953128209999780873895351516552239027963229066806933451982595625304878347285117414832241329208341752520389475837121224672844695431036059510097280199066102018151126756556784343588108574692797302111780659384729785761394389610550312872555863940137500702927498263804931363715240097193172977609398896476717159183864245866118512962361254913143450829127403793423609384712329992421658796573439600327675068235917511266683819941834248924458028712429756278133836429701828272821631032588913976214653587440196655328405949715768848201964247305593246501929893814070379157150916479687750232496984318528521298066975711356087452537296756535006418233402912368783750508215746364978323103091497572525504226803840746591429309860367737247899505116473198957645587631166935369980897349321311951398852313053315916337945749397280676582813495769578257709934037289190599427519939431878016899748665851711419918966002011215738878662160887227411537677769766310577064362259143585507346451366276771125908899391114837560943540439078720620512465414821226861850737826349836200228638900532707525504303683491266968502158524346201543800491573673088866314877239130732994395672451096780842512132995308181261736570184494587237931347590481250212359802029530300616627499580417235001544646989082135214711814321826123399103858598032109478389852958741525034674760791589022590187114075755999380049580750499096276957718874204710764932702651827025094327252932722708512621462539902998553107208178348362723884800963833662074328244178707572670739843240323150426617471232848658911653281372300858446032761683807394551288598569075016443791743543988059830557261435973510258535818033562937158158732830957263145356141066587348490887224966300626163259544700824793132726539263340381338078762463354249063112540047077963847641857572727778584793451030384071527932770008969660857796060450439994354957793614531833868352401127074059457221290847686217806108328497747217421662036877496742813929583161211952926404777054378892207077573310730380997845861287754636952869816942992114042033561067628497004146408527391972521919446872139510807991935161654001291620314385002471992918028890421064317899003789762946746313555520672903096648862828408623644971325333866185148696228851381183538117664440882851176496424514909006528332673498140687978664521327818226229927908304863470353225594963906573425205068673016196364297301124853263475148100156202901857885555191590311827776908343008691642578761594314229369279846261809029333686473832759339240601785828398639210561003579459131266173917597637348258527631042687266669382488941665832670835655779711024382636188475715305506660228910733802371514147064926502055228819259360851949253922096301191278600250659517356322852897939374916149787920215871880328362193340957634403219679198059865058337230383160890235730939836790012937975597129416170256986698930582832670690508431395818171953969111457370405427246782413845989836488835959213535572973351787844785411343896622584088831212807828656948619479269200413642782886454430528360458291410622014098422290489278272627921827842310038284492700110005635507088972997537103846070172342971204481112544562741315469168363529287067844653556845646013232170648951506178188517209747231558416016346122473830098648902241432753419587611050642492214628512679564511351727673717311081793808783555978956773257501602930779125119314847712130794661615424095120880277441547211992661940444978807833538149149712284068893881872777339541162023195059214295894669888053658791382159876034457847601563449824392142819437360953401411141697027205691504779933416870006907810315422455702644771418975129755764000507488075939884986048871855242842238077330644360499631636753796791849623803391811121673676375527477408943166314923396449415830795267851835293658967706088875100775290643108393279744471269824124576483563704008719576652424552020148444521913443855218088937089617296630808647708912069292727969795028181535310110007139251365419203997153074885946116908144848153765091529475484480749281450806544516081792993946648797397951519585872560387225336944043039459087283796621375340699134789187247310733300959133402169725676241727447247784032770026346762307845962811820589791299329914522145580453268479718281989914977027311119111898140100482814155933651368098690961882483434304073177198140456733302740790021045545124278145894305065967397327551711407202443285751929714439730350575409069836900068524574278449871087440537911686564086009882369270881228342656392514779817781693793493392414974853641369815970743974386037416429371758953538668836912553723593107307114783615767855469356997060728692660949505657174703080373867100891233084248816236544804563011693212684725058000009676707783563436966907040177343631267239534684209975292774475326594509666909374930798489033616511292812648169910292219150884326381565403444368631365172792406688975241232982903111171906524781655604043054358026185265850905209053224025287488403994812786394007828814919037502134515435563097042659611714864483702927113007064302671569533475536410049112559522248039247334680458911666045532379289845776307762867844794685968443308701607589669626272950381510828496600010289914899644417807230365620147523413946093671095607996172883924520136627895735233188802339604036338050958389319603487646935643736145905706989668157719976282856721304739241640733049750463637033846456552073398262322841992033610593485218496930333228742371488294071200854820386281528137207428196773328913612130291548854225712980171339734317340968850906950351910909573197422790718074133530430115566580441559245681367660589944838426996838562148867690405764027186085416957782073830834406871764610123137318349970510060894750675565173189931651952977962875754034665137332768688243204192327418970819504892541958494415431952632065822207307556786954214960974563126848492230906651638692352175886266752448609982787358089330986640050253497887664259962547431652708955301708673111313315962765169431557840525262634772906783500886823487437928193806477020471088028648309982190730277060518777116908597927715624692684690110761123682162285833340420220593088451477219296013656291079525708313488713646094003072733851301149365898525363313647906507119424436888311952520175835816035144379581005461331080185872204704010840525579188285638117920170269056284047609933549845071444670896371360431261991182046141162238545011891982126121064405684107155362386393463198704824006001810104835074147459730915630819797068210392387550708736798773573414846639757334769784481823146979103437249344244175733386647147728181235556928174968079555809313272156561971831249603903200679645129244185372203902524813717635111936345330443745282241067156648329232390734230471235036812571939166919657777325795119621680303071257888277529573842395512156647291328352037996440492561904989503173015622972916549624945043214748641096856110909767565258858473404377204245266897960110496989005009343819217333515782959331218500565332227407320545805174131082968239122242541616198736055488333450859931263342799299113711788507394991958047259378477584395834386437003256783777086780812179531673387105753555351513700531524130722229084248874998314185472199346591376025759972504127957597610063758502144448258194045667359543655179800840035239389457425131240822257509699877246321895875200929951523012436680270947302184736429837872020621765080863493357982748817189890801498105335748390285018561439474630817936491165347897537694043148974878522163314401863991177355846567252290634047353532714792092123901281130446104572917658420057368627369739541696462998263768231888477315631947579493271151965969436771611839172423858131276994203904642506372950719335004384946050407029795332785865981356440759687394487357944208079343550945328195258674981111032881867470353706325207684195000791735436351469825758099044095051893743473180395601519728969595388513084912915998207210879012826176522065590681820313837217103322138155520470469043247838833941937845274775782458595058900125780882379269359197038030648623712948613161335346671459780392170106281832012744707210229260330031866867659206862387424423015441258336666856483081769702321282992130181488280927351094460529505683451862575666845306772537353360754842602526956408450576406585531052500870955747504703877970425298247635461545979077498840415956065687153401204626162678062486120166904230417750538208636825246053119711095426950360123254555057142899062442239010851580075976453125694215080242242637783941549745233990261428042920476179996877948044298859883846105121452525404265545507154139557766821870695260393996213862230518559689891257129459011087265162325229299441722129555536915753846411733078892235424394950201394165275447405918803183917822729836501596658478694328810247529202374246260759076303414958630511983179642224412333139119673128148179130810702738964529990872258644749429947304150718070273547582251258394060458425003857732767876515744100803968836264950682809519123009759488404917784642025123532526318144893343014137695372829344526008323151906555164347818753423408602714152484391340249622487365647756946587963278887718349024704764173246780590730018407132449770433071238206216391425242333202912341695873010517856862062355899692290308237987081961415599514510339423890697243792160077385564630828210228453553174177646273779644018870824112281375458569950548849570944723434489186630811669759733190309184459510218121677410340103504322520550071657125970739471108206038792041974039080747689890266009990127998444350015560435563404112733330680471476199997535406881510013594106296130151729934656518179670178889225265334002199400661998691316773497848477916442122666443283188051155509606531561392954433127711888991964026018335472180425478458253460140583693069663264844853018180649736795090761394119718147233950803615305577639141673895921405828800403994867366996192093889004273445985611349841845843981972615004595811439528718976453141982018182511439825282371222232272318927494201974309294188344667033160853087802025458896681225886492204848394955548026562274040261548509092300982949309092608517530506797606174876077988808260429649199585034605216360417714457656059375679485599837626839652340548720914334383670324478636368406380912714125538981339568316425859222341265759317055143810990822535200967191268395260630734524957516499052688546240251783687810716903792686146920697592667043541556569006383246215239130779491538146524074912447968599586252769527186103479299241118837069509447119498632253407274304663224281368363311033273327178156191040102093836686512283256598893308303548575834582772134201593884570114786141730950087541235923941177852539143231614358238383704303354434464843790170659998892616678119340407909980928392176022713744112141382118192993419663471269079678861710276083313487851461915764672298384112199457625046405633011107054808113953584114038878961482692126005915251118287896284636393434261995627230346916012022956963318653613931256329412146935422976248567761940338957682045337013096046683713660199394135675261580975871314136458639914300829081812247189734992230941777185568831379949647062521822437553157123502412884421547765823366747276827391752501596645126001051009336787578736685151046026211762717427984550032177071806384084226003922259099390588904868149564028732029919015625067273238449576411922936700072841437586137998266450960704389925829322409429205637260515520237683788445111764048443430077142345096210050114576664174932898672852715235948065275832159597413345790182096946234245879278787417091922922405775963638004726410921107931118875742328682598931969246921447227362226622812852518453327050337128593581895763014554443331518472568637902126987431012651778374705400064010590538231624129332554187699368194465488321702964970885902743243270756689439035459211950751529427676007760785621616356680602918532755402977776493281255463370547003444622019596988791721564915884845314425409831719104474803806095779618144729091577228792119772380151230631075753304753241617319025456499316622871206375014368206254806146096061151164663242172391952357716233722021872066694651631855321569810747731775899730722097658667426988904554737712055429389527336072841859219730985646735642279970541816082559843368002393581785454927644731444863375427864817401689111309046663195209492054488498495849590851040604431638528575680844620418618651817399436673281792812085341967745217797666302731401847184098632703040023708058739503599447912384773746078838505946639402762322620659079073018855086529371268155481731087657113886477313623107125378559887266534922414541270881291309078705926799710713890446639978832878238672565111416137626502381156349984196660320643833473276681192041367512676822054241760320343051762325618242770014488836757468763964969083670322032100126917503706482108111756862862398273756991733499773092196517348780241399966047945610489952782469460349741439841139475323138886667599675016216860127542766878513173461471787771799394513458878789140056916568656490216849427228695867346604425230221352995836770465713712401777151194169838811068954551169482213400899155511856599939374392963174819333590992728310134775801964410294642977131776021251451202582869591571786216254622700504273022061620225576326373419741254800936879216448768179265059206606759102672600511870755912800166783888899137739850917610837400958808868323574459327161679616754287890641540034434396935576155915455145262924372774485398422378734561559530557606271175514694264000204847179171772436763975660251710820571447408911313877514244685554590440337938976743298140569175363786521433695680024004682930862169568861925748076711951462721011893114570728509454675907752065722875737055272743806642621335877140373303468415409862928042732140114498079174229416395043394667313277906821070211397569601746621208859626644160987015576688123802903593644904778299851787277526052631171834313277533430845690474220820559875624458036291443492441136789075019570882883766994859911610453782126746633875119525205119187576812962535580495180500490494400968607282069107627662355163078884024302347457239168426516266006171212211701774378090685225176562912463146836304235725078718460933187185241917250919440515720688683159150649657336834389743070526214989428925751231199693176621727637128065432182962610980078665391389450828109309164634963334685980093414346824207721874731198918242555361965260926160039080986766233655186209155760839820472784444234332487605707905991341166010418572326440888985097948018845866500396586101274528762612107423885033814314282737710871549545974512109658041906350603627781001142725640362095846771040416285571299265631522360324147650102077613651214507505029171290416545144785449474007630137264624229731995729699516366683001095553436397400089539701439122222625878073450131114779367742557027790515493051605491664795290753623299650647328273654224181801501455464056195719381417549525281575806688843285735593958338667632523070638826195661006365336263460573716906974534319473545659606270311365990813547220340448938156156265431038401645918859582239523507077134255177686181452589064682715524071600993434404584801450618012027722187373219631109983292706380181563081907049933764857361605341398553515825906385694855715152371900850827112531426741719185035786678449577594820541116500828653446589650002002498519783277272858305709038183447990687254580814815489643779646471113067821763295104135775148582641932932250875308445146365766747922029385408448501052754704106274710931804000098115477534040641324143468880494900357262414070449665964593623235629488853880528962121569054245862384665201913371739731127107291579033111113632761322420279413816660214457325560371134987797315497702588250736962437406288263670034893287366344052934344373429435712178914652451756329118669942294783333988805711958037147311352784942372786028137430583881580196009277122835987725811000489522689576422491798551467753341941452185862064546738099034609358038240284281331584903057289693220899350386343689848901721626073856328786830723425034154623348097509011837320493790454275459444002167002510467100868109955973221946263801488342805212200334386448575852942995436368162651052216306736202148561680683612789493168006240832370555645833969953354204957926281482007820588852012109802472227052603574745934877635909882640170927498592391634239335502240620914099592476063221353242962527747426630342780880047504803408548352906437482693774100089953389410801091792631553643051265521671359296977651716365587198093000427498129824795649059214173755594266395000660662325867300835850945130411777104819280058039368113071203778294742095746698132298309993013035265774756174742611561243185469920854260517010512696768341895762528832139301256093580413798838154700692410484750719028129750431396019182186898067653724685895377420783861707434324993607839025858208944842200577538453120872311282614635007527835436421691081437068091012679070138747711074218090776542153870576755653554044506587564407705020911832990766165230496485204759020977321869858357315641000148319753748376816962625858785136727671308205993233012259259680735940711842131049602532409442283978648039169418011660092042199123428400154551400432572439459268252442072652269920739142318907842852035917483132523259475023799884220941703467237960876204642629721335184555389924304018869561384282725494488081534100635239869916305905187188811997462895840699918227023812679054308448084199534043562881803724335101022667556983617945478711706658372324973063585527536660228065849945772307404260230881954677650421846314818315924728616299593544898218750776866633677683876636500000984061269863124867871692947699453073883872387031765465171923330169991412062339991073594443228156682566761310966074889711035646373930309876202795032194975178023179426321391171069738013396640256381236428337522516248251678386462319712580895605253509207140351690342277114899652383246447349571631996065998940865153154883824833437847715262072799217217458503938237098132615832263320627600357959817691616511182552535081065111346730063049920160789013576668104177805658726442897698579109125278426770713260077948812303303408196805119478826439349567325689993423563358147501303099886454543825041335670608210519884198338729102300417520799328489242118219386252905504878369437251800694276659835457160717828500395622020250866844412958400353802541607933321604507918594722910038891002961370458745575224658031769690069864796808693286272553878272007745199044526671185061006998116945203978842677782043249333696016139114401660198194190839636344777161245536227907271895265014585424637992209886686201127246021376817423871335212541174707128898650216202693561422223065068789917838747944922106047292455817382786693438908359261138522631364556059908952085838330140211422741246027812244714488590042751804639755658876237576319979550146323643675792481006515135191022560813264029991783552204650894920713846139033077560292280279176655359644175419515851550060151152313085060293321630214987129761865611842604640966182369789443108314359295827026799533881998429929128209252924334736917935852327905267486260434653090407402006847480579072278809569341529239955688418328274600670696696923297563920984218143138091133510895025278252208469194285737970203353654879997969073554947837871557941555680293698542787215796997125780415840563508768718653250494881544850090354299926452163832133555712759003677645701399670363494174250042528365996229247851255599803269383276569817215313277259754494340725737316594290139903505924911217404129476966574498161039191658096082435703172247961298314718861033531297641105022300674355914056967114463313542886148253591293445821362296726520993592692732095439533149923089411028697381343181055859416071496379659224480351833968436210884165252286538370673090762201015768520729448516580672879744019279665487198996539829843126833629772935159705165074766550685620602305857790606876886610018945018912844505178862820140530699621949623045651715753274213078083461841924159716822357680014883759175454164312899256118703332974380118330375340238438500056466793108085464703070030976122959897241918363237066283375502915296477702038727168962272735619369799587831796072252864815491848974385982924381156624939902648508643132275615732857794420501864007465495641478665420780580170508885971930374278962221771929756216726802266231429695120337732528967211395746019429772572492339545935347789009753591026406055297513125865738036679462560358551296437325473400127320223254766179435946232210380233021539510894671092131325965704218135437107430668354456854832867786002942937662554794067319113769204968178687412047471084158624532356266273725146294920127700780071147975490056638634127598140249680099147910256266243389121901552133733313837453870588178234746866982095978626826096170980314970960698191559642522432391811600013866733956016633594996951300550220766259188672854937373921328997800009813703889528123257230443161048688504816680108446784017031566950613751160321546340177711044378819489954211786773082077532980209112613207993088546803837626156188623431472659704142082737589952694892646403541813784491435434626497157259187982286687718708582383074085910682637385229945610381667738474919336706498674762761226024227312971986984536114755785684939711825149192156814430461341057230095014523917779876046272354570568299641782669073622676017830807130532607792257076347087010870551334687518377913454406145427858911335317770476953163894804448850784555905021222125050661481976000257632070046501677977707063370717810133270139150532434232513008465947027453679521602016857805887296987026132358661363337930383239036844799822254994249445684083662736092006108902792433531451537872102969495526459252250839602234118909404107541761978854886737544052679734210852647689390874332967647249340381924040712743136689896660278803499906756666335747208995524598654243343575527442660240932306216561807659051662466027480357277544983528470681943055816794902237895953504529624652460994617427218847561997327884320082700410892708296204053730265212831844223923435378778824693697889315274707405564428089082926417097698590830418414230587700518236270561023020320080013799284365875483735508001310997542091303770483384674150407405780032921755055159036024509117726022281470653533701538906637651431100940131160121149417226650320835108530552944567338536130095018913375475998729738371875763883562174661101465041054035738836076151760405158031000216192575833179913932932073730282653327035411091325124797567540183162451131183903896347990297760874199604765449713537215793192908271291016741398603308660786103264077035535945012748759027897220970336943115636718425688179624843127512307715910542054302359330417055074071169059164447457333294815486518347369594869254544275634663539742545085532649882076518243682403667906619502437868792757814157502683132540436169057902934954411116230753336146076845295527058526715304349300768648203479909816592938247971068878847980481465572616218550804486130698316042807933697843701581369148330471941921425663387339620826736205808143552708293558713396966286110721022717275763589286085692498639130925289330513494645723286767444752241779147457172118604120070568244538879992557505081815884805276160232268163191342841368660851134833678544509758416629707277938204845684100993910483230333206504899200087481326640859117745197698487528114604737204916883984664632710152920692501659703670832253937220316266332456183965975868186838619415789145682560970239327332085451202869014327539373768682712854292160042146457567892739000658457772513233232549529141187870486646377698314928953282483830869774599568528666930782678590984429387367531778217533373622329979462461239731794654854628539911501754202421180820178471717082088243787863080325375632320557386730338953378933195500083778069680651630694333818815882092365417518141544807549002668547982537583294278187993962524363091480988402931916241865730969568291323548478522532786589114581113528856417531934090833252396621514234486997707465191840601158470862716137665508691201395761215178560226009071715267040655385433993649186356477077748865072896911674323908836871342738949629574605902831680459317382194620158813340305865755359804917021800162968336224182155257428654838461170498121994205527108387107688226353721093143726531974013927419540362853664656334798897104315409374298726192366581564218106825313689148397203343973865248428554632748126919679103812575425932044134047232814944054697184226351553371309050803669261881108896819270291450526265676157289206987991448775369609253623693147186552231698814533658053970077584790223452514139202388465012600136513875277819365627205091420114302609184468788901753236475681842012599908248481199390928254145847919018260848571464512009676361089176819014858749628148807614414132210546441878337659662186564918649118995750913954233360561381766553586509450180080463061518953391773582781484367901627080662717295936673707224964388531168005304896211983801833351492150918153405978980177116743488347905704371284660630632178199701279214762031329860551849116130124863800560937923052776089836038622535863626821030949167596112089421532837919434195199783815324879379599183468444874845128836592309893516306016420549834085845648491604299774926739875768895460642399147596062456032517885670393042588057413298691190300385220561441363844517743500660042278466804446784577287706897886269859273909051943726106441384714458958225968816071296171696082868507275803284069313549003945289308056461224182441419095145983927114828633241371756850882088446326252992055853757232438842637386141868907660960530704617608468329627876093560806640415769156676533955615226617177495730677786028319203961481492247152041697740534744291589395110480580360354177672687926658977957813266866422641083921223621024461900803749423638443044185943514428227696792600885701653723700779140477057816167081246279894675870848700237451046875661781037524693543423742572000503963184928141578832507067151554728836281225699538931934521165401242701108235585634998653998831547679366838704606844055966200136769564723741090943050396041276361027496914878612336517047100971532459009684302644545581889302730027143886410353516187004373403793188344044253973523891272153581831600447289164635462210072943832553125974157227152497390083432127901457452446588409635640786296404470394783749555596114875984872059625331639974079900392584760092713561386926205076729686122381677797494304315992585359725198990880402506404103905916609827887958593200241644828753936178053939207160112264367686945766973411877981993792305069100995470812684911752044843947731505330508266131231751588839347994335735597406812593883658061161784892908059212452039365948246335185037650950465813685847808793516318747363147203946930180413845755099259773884964182515064706348456576828498696023105485261905782225832319678869402842490759810141458127749373711248880346528768928686847704266789886593529378640060468541757466001247438349825459398273255009881539342832553316123833140162670009731847095448811748385742997516165731243070288461518709200124986452667108782685610947337635454136213773613486074478263822399316592622841450255004073446055782728789653115731178503960501510178354925704123308191739407111492712260835139588897209434409222201921513673168224588780942461411175694705424491952513558381657720882002161658190142222625370113618785397812573898648196091755235640575507746425415108653830949411958365671122846951099646088562186136243507961054516127199728112393120710316856105500022610975579954168651766276899848413674190482325401013039172871899711075672395664337850535533578526824340439902432283828375136480677220764170825487271992726716827640251538485513161239416662828197663745686305073739827193518684039865385554600213176401287375950927245754296391018410474870731399092650036766176610600725890514903400697792663011603151672796905208586561340496454893884059980386988827414270377161226336809575877349278970778204008588610092441172675939953666472606109501692863188758494726794131432284832757130051388387849475000840139385374415911462462712626311428594259286569313693337147043556744156484403895284890359479720480904588471885424070385324271163918086538282563198278572484810839276942635898192518827979729991361092085701912215582398686311067138849320654769468475723429937756745622291446757074950758071494043453944848005559341579708715624521463889891343980859768810713717170040054821167350767265650160033911404874757623210047026653847791472627316386032999510930570933370706827768040465681304944814173492510909955149923979917567007166994611398190685726324100715504701830991125370180777831929408154029863080753853107717872059937465144953751362191816061116289991991112092868944022685418961268838126626082694936977406645954413323344214696320457171029789334711947324157583360843103045672497686508893032206613046170606280809931041928085676956990291339938683080577384719550481042769744096807722131332241446977354719402491734315738019681162712867772326890484633053818707451657925903693753005814509075171009317902177905548098903568449382265211870516712090938393136039044360005398013519965431883027914231721359916619853314647562951780389932744271590130389466101094626544712172400397344821243968580014952924199610002606517935118891045553610131916653950640844730562107503922013374438116181863159329370757280744902163787886871776447999667477151305677628615374104182448093763550605213272453273953042045424493743349007113165380491288493682082657481131205791941889822054466782109214281544414156024289191889526827162509697419381614555496449510265898659260917137077545982050883176117740199352877394658936694299237138890581096128277835376043490527316088799240828272449445285984005844991777579014391373576430471564069868795331261840870946476435201911651101951734705289285599550887787049069757977112017874671041770632469188373095674012719693475195467008996402940708775052786641643010646524151797959387100954193454082708767993222859596959721559795038161219943295653877854135089304274816782342109177101651182768644018092157517992647409827115996849263732478302851167162041113100244198402274737465664317582284328281227858461548372489599295704731094163527937432962427417287047759305892848768701285214269756737742934333745606442611651687928212412552544290434634923592397499471268813478358908043192049344688222043262487423453685469417888728843934393164503546406717281718985456906138446067607464856525616200722669779885379810735623345929598422523875928711252325077954822872936700863838173818479248799591944960992567079040753185576928337914575794607510100057881396264164707521316294334131548046287137059826486344702527595285955611260900430176108139282242816166023150465799716372276113143776428611166091533173878223755061325445039353153761042592763416389274040229346782524066646609474525131525165801125746079602291787757089176421891110783753095839844746587913554191947725504729204428611152978503750172513464888311988837346807022174164049520652212691613231817579499439988398703621010629405542683879944441496806458703995918513267761359707033924146161916245637760690369870602147344821125538323581087129958591185801640235775382461440700987983122008419526884000697375601111744360908092098353369625701414890581252182571265945645526996214472295693172967184144683608153788581886727246760939834430110993564945999948608302220517689514521231187151933641451491382339416836256143842515178359690418687604341688196955445930724955250446700883908483135355578074790192501022101512852859843098085962881808525684638874122595479995560122666353538090505293417941818118430405447216183292278619869594101297067269563466128778133176348004092375933526676214997365835805491972974117754304278568569964279830626170718862784781341499617419861438881622395669527741218244446888440863601593060605042893254355743711706400816468280134603077712278880216040068785617724104673470077884117858966323239026765553958715998664024540842610144596837478017855272367928376385618515116386912728349732701383474039469392470339637471412837437127957683162503938240454262688803064450370488755905808110770200881900085393697627926098281834996089314318149437626671075544451014678628448936537900404437703484140378650189544093391839080603549271335634891954841389774102845332022800130692481299365928258558011437399959479211092675683994904642075703913823944191887296449958390956798203528314449583811133051202336353889723154064510783013162583134789239637546576912475054252078911280237919576841682646674991192236769538100114682030081578999414946674669812788781385938955167789530218824244274209422578363456107498625485368498848860955830241511672154114214165809300090756891218183057992411196412371477294894254127894255922561446518236913996573595635620087348417811434358695817526309265706092391697321250805113282019603919236683215966145546325322027032086886624306906037525116115865971960762047117376743035381276316854803957806435427122076739022758081626731004326399670893269902930435614746877432625804580901257494477470007390308092462844679024035990947820495726640401743886568294729690812659089942992457840476417025018829576855173623937142484391926022096481983452110717865129745695377164244462146792562985116485575243787036319381741308211378502576017697546609964630689642791504266867326119594407976826339702541876553096467775170676832260557060387838042913562530250947122698423070069176624225378954870383288202738801987592925630249444856119704513718438516884451511978873703894574269299885855235547793416913643801408937819319410604620458070032218952420495104293861263192557363400291392107458461128310114565765733305920157886678776209311543245364973791605528171430765383887949300079918333838539563578407037791357993081889207761805035489174198122877458162772255989445858323339608490105557526551373025199734332019325723222102429894726070946945583441325540542823193571670340866883196402991016124293763485081465908938933912584126595391475892197529006008491660222393414143519913622063282861439794659260732230646621653158537524862907955559014792707933781495327244190505196992317580366940728558376304599878532189691774769369636944488964766854931272162226429891230760657408779286879909216803645113823556173350111094478210141900463859291465692298603134262375151617912824655890902482462441649007485000051074942120081824945541638808919304882717738313193597667903148291652214057950415383221194006249915255140890020923485766433313628790503705094411376195895483247295985542795238372271231353838991241067489480639449993629407093627952882368175791799851461933170239050796814181260117509574913473458267287660846284902669904640788805166597611288059549480607792630007268458635705527959385596830026505417625520025644753115726636013668534472696971192007504674797284715880661365703204610061537136872724645012741486452477071420509036040344581057957870864436797973603851120662256119125435221767765959088137723871897784307941388561938998010133981488618545330630038413959658611709648101220086993906096069120384651652567894280783961471604699261573227446916192578690258000345059831182613356503301629710380338417086109755689656436900496403098000492971182036234417512834722877343622309641213660602206050274473722651528782610705090625494096413799212698543133024279181656280543059667874253978167281529207306610827639137820944347127331784741358437448266347355153549948246834503299944193142465126622169979464013922595265002791267360151764623116712551024147399956531012292205830087352418764085555960356308095906485744964846642235130429432876737198556893698430838903033259022893955833100742554774704528821796061505806510592612510183667823671198911820389808332048302786799117866729471176809817939903399302537578402902630601468422745467886044045494283277167061053153330577248909841399850280060911669152957739872852928012679471938568648359535343872273587184885831717946166990739762391142840900580551460329216916731058790774363190939211893309595574747857257545072833391973562007939675658012918108507616790326496144971579932139274133793581022799439966075672629624679943542752894675062559464114261982888342907371368797890568835771658397085977666198752859640438945759769455820499259726705553441184219669903201507287698513661518967617347112394020053857159017719426888891351179965246701812294113282819691352324687757351441736079011533806434548615692504892983027579276651422395998398873455738250217947910945066232129918077462379676277838725235004938511550098792420462444227723100784968566333641651861519014026561910974598694586014913771858885555882415995716041732133907495687282043915255568046194585081788151571013753824170848323881496574735458810020440149928582996878729760741205165610200501765245256194428081284147883869636622465312642711617231390383083867320031564074009859382215354368140741453983237188656602151199270000181105215280135061323010716426620002488370777398573345225562667199508392010406331080328810036976426375879113814500263153011461152356105375426308899923198127505943141074642654468914931871303646186001806549545620055954168117754479853179634138341615161073513260027341136418621263090602775815933535033076615372124088052634481324108393629719728488494793036940168830555024195888665011361620748153107826361273981608528182166844355384126352328405675270154908529194195268390972950249200338007303594465474822953239249898685264029209832931227644225553465552150064199532514551015220498529141614083280938717024043817148782311115872663263485299664983847330715986236782264560030968514822292363609140198937682111371226359036020994012078679430672027968698226777951539253986096692963101871805000882342886594444659307410481665854623526686995505372843306827507344589444900873252295555738410846980111156280230347210276510205428463837544097433690454136307141219241868135148587909601769957292887577047277078797109994417486809584440097368768068917593388723111462871107508787735457844960964290691512812524614644744310344386798968596250029109470746747525762898547667241661216040344815275598590830185098791140968980995548115863359664416271230356283369387080808710222991659236341818769295301875334771014621354247940304572953645798673337655692487149722427060173428004570578218930098110750364386379795866107183278216660252531355738335610504934141530288781849793751586993560987787333401974260233121809921574082654891129546796406777812389452432968511163863425624404235542093088883960098970466550314966160644362700985884309868283738585817976048471896388090218142851489017814196446064802560857090337069209380409811497604761193668774139766141128601391435970033649216059566760054896624616765814747627842989587110202977789265515462554747473946339095082797315855356195581684041234109627163519065231787173928387250614445596870397230891437757004118974640193825129011123139144048097448643303267628506074595163830706235928300003590917022941391420107674349611764973763010971447164767743478425485412888404134402333209635348654576549926571129944712855666294869119904154076623444956100257296028413503914023028717227402680737411359491076126700225398559694446417400113600641672069006638856531689518752013969286225010318975432044578705273581239270298088060850307156639761073926494303408687945311713940102409984189162016273855872583955758287326431967757249185278859783547366885295256816207787079682000541061858328950248544977872477642516160557883981231503441527594728093821150238229466447458759139164087457562358972146367702413412339291465489965604718827595157770282307048400964937943099449653010346472332495087901095122405872739489254355707526116645647343321886612798353820702344076537688342790694083124579420572767394987833289414426497968355518020100064324780916875502657677064601483499344225191517578195047746354140780362428654708370632475051058307131323074074107851838568391457212315062633169477053130294207290066805084806899678421779876431746448908360850939499141986899102561669672766447454667379694406396413541645016751873960539336871005618579941129028905609546462294331986029262358489976095779391710372477135114068160764590419698987983167630077919866568387863955156590254941059213781691604494322548680057663360069201104401573877344234877335544749090186102087357221565776532127475672375581675698871870497445086544941107825668074305939492851988276495209831286641693038378954799404204914307765609804441994563024877422516619858356301561971552779375874849538188284386058792496728465231191437161607288265329663091009737779869127911946336170310043002293705185440877202193320033289440123292952082795258381803295032141273302083217091584980131349167590614296466541372976496435302733227807114323379144391841054566590966613787899010558238981489397275566394874050688735020626126931047967949016102627548477768562003542294715429217873399699949445129717078000866280937939375472536611078451278696484526091967710970042789151971079584863877850147896916988535540989827163047799917414924613567106933481285555112358745034875482558570573919342844721114544900962855431958580621937566450267670312619364942680651724482601083260034813195672954721406678284869009950203171902820995140345164812124763844374501790960295747493133022985491695684256712017601443615658386467655489657456536292088643195336412162273862423578989386550056192613805283633446555594153953467930697635380236184593998013270121298497443189984562494648301999345075049402145823127560815345060360656928309383854030859786709082572315768116113077936295414152358181429665186739525264042005148659797122567243310337937534433421154377440785119513528274441930380866515457849729392113314408158787101966099302518719107247121316394272347452730838537567778959160396587647828451898523790917202029136790127662506189137649102585126585522924772199780292025609235573673686285424478103691592429116261706967240720882422246491233247854958402854862078136654858124669594108896177958172788266725624838171553357845229966103817265662901342133869115179825724030891534312354842962147950071052767514273312980704448237774312881821947783838857636015535199971106750663720428277563253993949251836365604953357406521844886586116356386882621289351520023023550553796205722142132423171701540089944100062646521076954187075897877640431637720593798881429899829387620479690666947763575053445329789952631075831653443236169528536667651429983436673942994350183921998347645898634990864965938876334232196880085175940038432401183976299984755957447111234551006478895669551233532923054708668226529807946245273819418131994070065130648477812938454361822711420385408115263360704212937092068097211223741572941172472133175750457347147801759557865730298000198278096235075984175298471218758046798023360558625949327901806651685041368982395350798731516818373819831431574421652764026120758241423471712860850691706133846099769752711620216137617455163318231118419526332565716616657065986062574138512685865724760563173523340211394162283266033269139058392962454073546351947606220169315220976581364367280911824485734965374146204434557947683868962504813536824728028826721312268628542563109735554882542591383875946446294177232109441828688586870268255035612879488935180604857135722298720151032415274225360731768379124686588127277484059669897547732221512628282060609947775359627046566668189288319342850474533175074205680484255206410374702458074135471270043511831741303590852252754350291519318842048528586848515695689582772841484306759261975908217440483138236191986099425637441275098748235896829117441686497852008641370225034982443256557411360744082312730734224412089011611216349655499139133840523635141310974819093669652625965313101080494825064739926051819007547633242753777646843730838604904941938969838880615430785793276120124481721671853261379047561569453297015939463649616017328699955841910416228867784924241712237895360110378759417241575235835344115487399393165757104590337720232290082495374530390921376243389595250392011361562912737470360885483991184684659297486589252549234900940120086003224107719354602725393042564604818396083735634099347756379923005842550770400750921917951859844496042724566945576207375298537063322077660059056617642793781581410030928529395035095908048563727555502452155247762347615662050899432806689283109288767152203137251634682705997682208395115099924646529182945943890772755632242309149598184787918641270853811527643312362828539379741627728792608352798462359224996084532931444367464495077629161366440118956807108900213605665372362341788687774210072571356082722173533450666941846973879005297842751214302844495706388535774274671729703890112977374346295034924357686512435423959736770722694820598296930581363274550723062844500979180502135297570073904891424009438539663165317178325479880752150389328056427033194215156037673543125300895128859778622306565047787978240854173369594683286290533851558747948087490038061190070026985706209199689869810759128505490794810732221061521591298323417777247660998289763715198146673304602027521097140863168541402582799005190278719099733090637825839787431713447321905810051113229304046061610860942581430262169536071977134761440199283322427775073234672535218406659988708343399598557127125607154934015289148653230651073821010605980625910569210600576808105335408645922034600749598567224835063129027799791645044076062582197340122459094732827607744013044271546671785429084372039886348867616334252219886708349141784246498783467180790123859922915210939470193766430937823399154519798327720318813144220364447404077690575152366035532573155795441309248690333041190534360449094133826564185711763594305635115809712125371918568499119984163677223089847983245341009391255466231555587254374769687751328968441804583406281769425507740050687896590886268252079048329205832003253695461197421474529940914639539538702597324700990610323817814803733086186400601411319990187145330023124739676069590844346026536268926068503972809202292275678666033404321593422521534275768625382870538431708908040777263879924469841205682331961497896771685838524566954436195146826660786999370986520960793881558189744670677936485042626253726962429382084399105450769804000972984738238752995869701016482502081286243840848445813353431500840792356448723335284827490433188138582696231007841758795098743987057873978446759898248334214466174231518112965548958479804046067555404689426863141647218156983138160074760869359015283281454151524437878436054985078814974935094704783255103383484223864156024765800297163605950892742841354928932710819817356925171893893715801999035250231591537226164507261513839405652901686064661180695137315787763680462338556393614160772290178463372243448340846733006813205860612885134165722829472647249707564934035876517316606578865885984336020382286203295367044614625432242446151968544389422595550090770354635733700684651581962375560969561079437811245352265612397822944511065010656896826468938435952324335450766987280192938150573727296284385650206013543631650244314890041950769106838728122880408179928272792161922935043683998181756269688499292242682007258858687143715161356857715532952635259146084385168799656372716970608046408766409004209333477547158456411563123791790284579094612115101976731660320895794402973327996001413514038444360286878707482934984301231438289078395930271507124951563023396212310278167813311093312054719351879891409914300199857689143895391990285383219536040464246201821608278455957496953180933477614783308185398531737063643296257163812761253254938223614101535163607812863741260199166117092001973030061982423931847877143297460202300036164892734506043342041653140545142026137216517670637153307084913642266019571856925813146442729343042131994253665523109010640274637537419161724066499060861676483834455892755295532807075864770412460305230723673406826137928537621254094536226636005218678640665720100243061870146679611434817005573270545221840294886701678621966927390740396857742635668338401509425100282449318537263053690971831276877778128045438739553500312916614773511275751607122731688848022485230032937364987124568257931169470562241541893371851252602741741357438417515877296752304285252905999704186997263176130715457805371958672175456019003579568593545330808895058918973154603658368289603170583096091858319675840466001228174368415836946130667116362597484242491458894242144521860431954008951929779622471448337247963897687982208268795158809825913896494668465181189210772465239308660736957699342496054528381071031524729269490690189063683719143818895913139981136372435193564785077950883679478746678100118742566519517960821956063872075445088282728280311759613090562453410013323444922329689242919773528876867600391078581256533365203810702144300490938681085590539358414237754290809249505104137417452623716005427932569452042508820535918955264670651667766972562138699580303227010833323376253211282887136726159322833625205963131080690694441099528308943440643478514668140891246298301528715665805435432219494642484412268436825906438108820008918761977135870663911457329792772552554981089136532299976603532411491272185573849403759711739545459230205814569981277593992584066436846302546765803794002364679216862160853207568465370399948576345992588174458717239578953343576703020056474375753508487170504092527505696277433254993902688009068008481558115053355686498601639464859155084824851248688366883993369742048034147808206557448690185437539682426194392181622525170154327960458988645942417877195618146762508758581634930266478325007389493852835691371584314742420912925994247624415748653126288441609547103892454167069853443422158764966027597271422942498472906884804767259782033824205705178985284401681354227283841063301025427383389972069005213561980765025783435422259445925767612514249882254552826867884694264878474746049779567283997569277794235413303518722390683832683808011580543728689840076535067010111361149817165402010445614211204216761225801817727629236089614261369634084865470245794154735330264729550229120102576565412452406112363718592519047172023258189743137475297475191413121348589692408579894543212495896954375971273360190069795594706063077807591255811729311348215534317466271028789887710751517991202960936489137074533175164115594589314325472796125945297942709980827306406702605607656720722420575434411973957569455274229943054261190882298402122729703027557472975505660763310869710585179982406407211797704338846640657366366670072838435838896094026045305846756402364598638225376308333547506486799734289158520576092718853008933212563110940048249088098836788583293332890368840561804714300032170219157013958094106958853071496286169847354540567617624474378832279911443128438312187107741904407864454291244488046040722025412367599160630297560068458109738082006764882350880478977201984555414366195970084309480395735325245320910279855735221974189141034428459847844377785483397120812496348455031231755218948124965228733424091383546223953763809395521614400295268454930969357435254019826206414663226832811733321086340459084748026410162059064191350160041851450800638586161450064822758294008037121878168150074342641186587354730755303844920035519543854970298159030551182118506486260886744779964215567785930724360739887323703670535755155645405147794416917782169659348234110397916208994564247117400598299999454920369750648175065740599650755027422890605125353597606551082572908185877666665193303284626541033832202342379733236922635161680454898039754447947558720862577056931374413982142109290894288617510697321624017462391163594345822739697394711379430583207264880780317635422173772184904315136675665754588982518445716011379981318320588510130162631129882536887766348271574578829366245361759885562329778112966589075251556236957662340478809003702251764332282754012681362443400337807587203656732085104384797096436662576030062660136651858756235959511667452475996754397982223344317804632949894690696978750764873701612313901352238524696054370227776618512908575775495853447347827863665330663173873980052362431456353495803865999524679956787912070101795215595342663683338908644104930810755139167442867615482548632270221164405605621432985550437395495001310151998275155148103181491900811854672169186463571143319628967158498623198837522373210848089605784113735231000595288895089861755954146796980520489457969636607777560405252050452472413006014320794308295485033062099204458471934847173239803451930750716617967340078237151737382317727506780122838229551814268713373603015871912638561020225566224580842803210021334996522430416565973829646479532445338195002232829885173482562980169083569071924947558404628833780701336975865082640351695060900210678766829227124263894200145146441674222525055485028415018026287376800601097321305086604760522878066518944452206784265045505498483463716410257060034386635100361161372172569489227117049452760073232223181324169023060864277476707731143236205862391321134187411857794987178461514127057094946646291390883656893716707849001742611089544928765120171362930539267206416081504828931780654790072578523084513923093309960268627243733593330811875119752496303841677575070143206637578575973673837882822032642293629738233086579209081746253900353766903362416297211020384645201032892064580374854413423790016676372453323950039396944503618385260700338323780273185674932111811727096947803374910560140070556991100265446977004352888038057373933298327782988884103868242386078357433376029820684770980149305380198356281796343011455547169696700900431098762364990495277891713284358010278056749276824557611273992459383498932280699309700457623925351205958518059515138810086812665796874569509421063301099715842145418226948099103172139363955306468116366446954648790405707494767623998246857623067796476861416219932559740412305373408899265567296508819903480126022501502008160929870768268716967850709859377393808005232001102139210651125338335706054929541044482494101821841813907171545545442004689072965489728246917235146020807485339879106255464927085006322345302075743218400806526180063469332758391565041954251835123496237458712444774740727276171647201196963362086535556438484328505471112859266110957846399169592390008195870209245839887965578557098879443181936137058470041508403706804845969716229612340802622298021059717723013358839398480753716936432619721258383466216994399469493041708294161339913355163439399335828147152573243086307469352890129580054185097566841544079190146402242950579857345242250750331877665487194565670645853332820146905234822264822715136270365577414921966772676498704568833533785131589107863147417767251341510782096584099520209177145480957505498251381727501465841428439542180655093615677001973797627369151636296646405990042849190030546456505692813461932001211378641776213849508433798863022750059199120170411298175222683947390160352707997027020526685624282112198457027752733872486783679218204597273120512419020786746625112069754192458336089886550551145915202645801433916305425272203386613481023801813664488831605329895404910357183290208510330378961834437526814432771805925210990021579647394776839692043432443982202219378713584984601566408891393239584346793363609156390146639904575498030233448682475795877870964558804556099439024105993391629371912689517714486063352361142890875334028411790169127084909133952376410775224572950081446175267198406994718219179966071756031149725040829000439942505117878450771652752839245955260076811225869742012939179467167367308629178634713251772379154399112613788994240993751916296833067339977140587610740554307321845032175004260661222761717684296067277938147605722056025569115943965095666254535915046881137398200569923695142761077319268635440864682806156188634979055913632029174293707859560869545586692845868207672017307391939200586760957301238222885207059596331995019538508336284853450722286368349045385204831607939520063754893955170766212521984303239267141920445122955836996831299841023172690245268195495621366921967193421574103804641894059577091281867724684661620236745164418375516348855384366351789081310225619870341471648060844782751403968265166496824750311724948609746962929261724530592697886461692718907067913287208160207359513436084698498527851039273701686454446220258080814108450168419433750022050178958632831528653646344137013379726685066670641265737985824946085040159157851320569536323892571062982958680453371770870880674517586519446007610912299802811129524599223677477999171102702141883072806123665616508935895920218423868819875640605011841525193121059381708094218073157109566194880247611487509998966111061558751626050616969919884645822179450518935825711953884541389156969525956666867495154102572467638617230580471408035846279765114584137296535793287984521268181891776865928108743142853050334806304557286705098498840188514884305446329179342622310240622707750976333798447336873480784287121048165320183051916119668999483721771400528816249723157002296495815320672211821379878214898857067235231932310658790427327850943310760384132100479231161146699469147121187482151507669707254377045539795136563517211380920430829698128053833434323309589887470893433318489250999730321053433685289677777059483732736638674086377744599842887852749414564832084347389829131788813874791994499403396369803144161885141613374822185198670924954914143002026006413352528223022073668707179182681667659869339776765851562754981680025135504666081979184803123545973702316729573100448634069411993921766521498494410746159958634090064155738198878560014566816076961324284045563174722723488406670714616703497908211422100240101060718327513705000395046379573502531110256578367877893403846243268934924193431619703202543548480698521829554532756653086504922205467369079484248483648198034548285769412056797046934098357614314285013962058014509140919296221347298546812563277695774562842883925657102012627731338544909865580569051491419223025704859024004927224762540363927171378241370744838427042438183649250017784967106466360244081422047633855601319165498842871286395800576763319289977865974285956484002718971862180474703832111831776920024344391341188354650072860468102053681194042767317419508267827036456764312589118347673458908101247461970641791073680877452512692172683280639230269659459871868057883784335729966055848145479933726474793464032584858744212352430412364517644702930439166415627361577832174165444344274178742060193008795427261164925899475513176748741393526243272414914175035221761262247346454217172697810404257437780268634300831341904759507862188150864564736289441764153012051915707068857516644189291851106460091053972880962488246177330771272669976747139239419419857525160560626353353697719896398619250677245742699754244100406703126827462514536648975004187007414942995122853197812555754984119273907507885692989953627941595511334079633632801627185873246687666360192407386325372230834773148979038194458395071364966655105359817163208184219273915267917281764017753615122299416800450253300430851534931545359360344221754338620098596958149920519134508796620897337285447252921948457127248391930219311403607962467006630920240245028968911804516727835419291306046153626122116419385345883069065351014704000192791993672598354361058933054856387501038707848062351431625316413229377222638862594870371227346372524297971434285991131248860499710714149790381944962608381322068199497645657479574062622608708735416535169581852189539328129613661589541588785867496015226063453558859414203137567136281389211601691371440612580974581630045655058799738649066435425393438042270117392164747999850193658347550914034745026976376023544899064718033558372807073505281923055804459647813832524065002372744401217808363374769861725846494263497851276046331372356381464029472512346854247789770128799141598616817745946294739940966914872251322991066649802330732962941195137968884137577831735041902135292485775401637255093674914234617667421313418663019144609000753370340557668554981307958915318064701579322952516987496340284615985419251221999713810901754596696994359546075413489868875214932910828063283061816241884197152621454575621153886694125041235062401460906355899771088597591251038709901751259375974315153896982266924811880732197420517240973908196774187365992119117839627146534010813917782089697139943335983595136405583952554984955158844379042592208864672801969788992784580646959685409919796327503535296236806211069054192627072929343925618419403558843590790533722622728047893299913611473934630281171574919833483786792262882487247787661046293550618225750809470686605113417385308668455571743973050939636839673943698948302859619094432921946283473693741916366415089039748994328766560800377526850094498010515110335137297208311468681561045904074148460394630780417573010188966272856834525793034476598819874616454384614712943571008616514775970635573906655342488946577554767089145666126241755402605291333407136282789253796162922141470991042271359419322642295074058269312322629201955940997601080848260860358130473128540486046502234038552163603450435081577206888233720583194119523425065226707721269778395428849150144420148929376655277113451451121504177223656068362118857299860668064013423443694205886590478998719075484687697316759361424505885412233593345912581993979592661880357346358282523289422560602157391533105928470010626967680986329132489258890554858538961766279855733776167443744421271033585539170960498300366979166453546183789055205864194765990657297782315797457993703962833432151726430810143235719945937865835704042108990971862967556459168797827479007114212002514458171412380718970166217683512908347325581548896076652038382088515646077101666508501004737408181772590204798955623369176627325782810828541111295023882758637297770072779892207836703480742153448430199971740689891900303286231326904616203631831686915164756577968461084258536218862701418623552953963285675004375580750948638645285341199095575656950840758191633361835581227237082376924901445989576782794646438065918123534908543300536160976809519708759784422812774991344165097201989710509279943557156854256082216954724593318847819495825491024313297426295567876839468979043684371375042664281287517844918571064786934893108332339075794310943823650134997302682254182848793530323364238019303909286130847134120233446363843080237860178335309086231585519728591713616443512594190601284208825411687179296868354490239336211743168923756297662280742408268522798105505571425986409205409884358825348190425069881494538154608603492821147306066315359236029745105555639600482546675680235155281014455329514585014013298256090964267369374776923930566835968926362068906925083576166114740781276100781791906692221039931859768305950815335656713514294234952736426618914899646125275458634373776310846615287269802189985611239816713641727227463391196655482297791883653728996918390736780315131250233379757021991056200206862683055070642601425741021606720729008206635233822606772239576141714649372700392158631864227226736739288635387983492021473478276405411987634652230729702908909803134664358562516978097335015855462011458542115856654751417985445633857097087573464812831486036870679860540615493694147257506537612217351566823293545543147594617224761917704800921147204328002592300918624028468939135099114175131000722065222935647769898643432785151691424406460145005066592121097617642769453683069989907877587592519372283343013587541448174205696796287571917336870806642967336188095005708558016963574121219362388602130801333189974613958812796839930640949375614523156747204687037230025727358064472549662923282513972399551078791097637834720163971373803161710693963479135086382719569640150043310624459335640085696006264745994675514236455597242576824256146467300878331333534460143836954439263310808652545723523615146081351203540958060446100576798591525218284141172617136577695880750879601090649322002894194102961999603145228651463814304534201851003976935800361034117214026709171162234840982001251029677148533361472370095142048845017647712324785832730328514959320540052481187657820027907095264110300230611815428027877545696717898824451865747156031910124566489171685794529417462126066668227207607086757633097767877597087188761993592183183244067897193871037383902006207692582193614772167526350005417335450950074066532120742031543174444730741692662919649967183190537810289378057080639525718247897464916892160077432391635330287476991670715118351581112590243683446325070828201526326881678816705009877471749166430136619533423230717761911518748674632739597611646468161089640511571839799243972935063272830928775979445915646905770569096270764207245193346439841199744998317469082731912462848077174556468673118579823882047006265073569399053229091188179787661180208376288499760738239274634282135612842550850545910727175230266001648625644508231259749749602734742758657626429464118077331404902957236519833599769309441534224527070513908146407882112154395112648135079546455877661698819958829626398901797615634881950023941338775627751227448387793365991168881938307995824233611363973820639490707535451305238135600083589258555886905520775828804462439784963073407172485547517100146901821122050623822988426426260119200899274780058188896613703217116453384078388922310398811105205027125678766880116682113832997475769388112559473609344829438695694567716689973910862101430325803343219824404624285414853554778115954646488385678965048753620157937537812233486047900805235544442794787449150082530100998122185016880036482819346139492868009215721304658023030010323401436118209055436406421009413637711495126217032077633022538646682973841270848825221482145656441767485176201833456031887496397430380334185149131145141197501937189738921669382937608611667486683772369117950099117861734972630982041149372585485432060595613511189612521227692384923301895806307980103955518524651625690253265384996026906469607313600785796522574752513040338904900340933416399666869794150666366732405120205684162652918134514775904083196951852856429374601101775709441856105349244956289657654223872898399118321361560137069525937469448724012033142803853524940778416908039751897669603185562989877135116906884173444967664805350033858057436544113615509789233212307602536442403466968059575698568591226261403827622549866072252911511934224650813734960790411348688829164227789676377864030918182289307699160341369721802453965001878107318230332279892761468110280250741645433800110532776101818029739123446015601217701433623879515506032284265446597081559339206229643153528408099137392678911503887054200901362314899254365783868237071353846390407142794989462514846035799736064236180759434928361418517382465174977841150532255692132870039047509238120417755411522105769389480338679428910009795489506021892688751770501889085168693359678254110429387866379698688205152952299615388940988631913413363995301347993731254074385698545529007015467197853583883570286635947007122356098289258607897222979403640333454629282448482663301819269247726531116492070929867399306307594729494217804433469220967048232465257568371353728895837225536101044485721848225937940461120179233982545090356712542565680957877943578394279006500630908284340370816107770802238561624727318538288533367366401144423480354403378568891040187983363763797676311243111852601774297860519171467029610446717186063751549658175517748019842196966858416024459234677664336003604575664101370363631896742049657251578705307588889867721336321226200398602007536807127722429317499581791467010105031283549906722001738113862738357549805984691205233639492904973443012252471367374548389773981876340550240758190412196397431541289108059924357409701133248279352090810046750588360450026955760392332662077632406025361187326742598174523459711113376453540976744370563488550735496264884564157302838824081826988497281348397507442206815161608070691919235772804893358210602273876440330668308682382962029931012918929744522325391977626333895646969236402739281756899046596295829448581705706872862112336396015394617162663590859824255064686948796094039623997407567295301735152046923739368673426968001615620328054496856606501443612972656367995059227371847167259383711681464927658653503227565961573735958983117302473040668685072066089651470634770251090180201168539838359582811670186177465616619199018513230060946838479214836283089539483998560853878717332926212419514277234847367061093385909109357411366250091880136663235502566605628118424093091330364413083608824864532093268871492061917458747831365477048828335803580510535736888305490959167467824922024791254275995385782603228305096495345884041966747285789024504282362553236677963757990030580675871826236270189754683282195938046313319571330516706621884016424708435773144826281407198591735515909216147546981801468832839452874679742816439380238661242215044802978183129563953141917964866532928614409819298714647783946728934497671876405624164242709221954995781317113700796942558392445357931062080197190472951035984167858582154574216038626633094858068495022674819480207721454740403620326922050666162745756598291490854081194254838591126802650014754880787729711126653757785436931742064446493969423072033172342378444037152043557800900029915395286341896593790822814109948905366956958067251874941564421316608342370395104116004284160110389034901270993528141432324849974620762353072451638927455081622084292600900835156150384680220791513568968059256354547543028212404779227554391296265254578596089223028922354448755076497729907163280688781707345962505594363327495941302514406251415226608561019729806498099522724747562028967449325007112872902577542551108872976974347836097317665509802123739687244843681164256664002722980335229523464404046938459193772842436939062058313136034261990779496551896249280365836951024720743005146671239767888220885208971613404030702589096013457054237442427156902876793154554076827067535542679453694963972917039136317734363094379554103066523917845789871081639156647441493812414451308085927173483048518465712427062197078426162798276104156461174361087273238427115796009354260674609225494980185843655884761827333134343714368291527490094875865992077674627647532440965460956317364711189535850672475779425466564747616853353639697465317849612200677633892219336530151667900961458853740763602352252893069144504805671784428868753341235288698376202977149048585479740007300182624408783515688828903089666752645536374705453361856404997048897858851850799646799725426699851668610135806389906489086298448017382718160843728881615350034060231194083304722603141798954443443532765565606045224438303455026798139415096172719897653238179622097089467880541296097555624331633928720985736182458272760395684763523254609982184039478798678464538931981912738168673876932065165574535376609403152099055696487907298893123980007240220704677538568896936657769343341683329319794780808558294035555909786718180172369575709792146210848834559975179365626983962236254446782586458321818376557401450381323649001716124952507459947240866038531251029507294829948957547051304383389615272077907238995246828057495861468119603666922841919062057038828722313856640528670683557362494396244248094390648851274716852035721693393257611577897410294802742981820525502676773493620138248880527372193443869792911008087073563346640261619440916600219678470837283715033579626843856211681340103835726718724915784379242688865828870525851204282470856733780830033258871394960179842212041114396240286321189775322064056388181928561191851137517207258460122997778901758412716372051284008721745647687484188933823281986873147297078192264981299929430272498149274779357839146288151075663864304833614826703467623075852398177440216474402133963937652556396580176034758045557524191731930619585213311353597587034821217861191639088996396682997827036450409311514028183262539820656885617258428575616250742104171006855749412122927727901377374724044287126358666965913464760475399346489217588583456599289332297174467064563708227468780843355913607854441610431723912958511652008953425763701833377613012357301657383464736815600671829113627302740159942847557169627177285130999350740072300896730217233874221776911868689978400155282193573407095952913335688222069767591732124702158836273231323992148198375367284426925829621760117260974383085033673968698575887306114194120654190401446704568643894873681620491476293096668877801739953576617286752564133078705441184870351276875281836641731947970205457511776660758728318400344550074952855763939712799612525827792003197322862783735773977628651824592184734954622284336061328500389085022912366593964515452689193829624950000750661372110233124614917242758383705170755770614521960382304098345549582258333059383582691478588742480913828793077742874959761581842385929890920291777234165169183564745155160341926030684329813976993042927577065094734106082838056959754696908536394494920186837420241995298945279854572194086438532657918747079391211167195402217425328511273501661755726812459572228305744663060473893542850570198381088181065741200240976876809937139362836448051896659513384931134950084195249327814857310544606984964243790558493210958698160202842884255440585294830681512275032035562472798709824435387227185135837843615721710639040725525265352417701686888920259978063891657186724193577235363120693687228289937497056494389943206993255157121451222368827244465512676819479876953750246498120388538746455863469858497589032492896114991229321392278466761453910160649841181873997684447480915770589048284248090828586064015496201271704961022041724116129850542536472658823068134277972190576208787492629715018359098634499689854623589599321349074901175698496651209665312643366562783056174501687475503084883373292973477516642305799169037898275622141889098499145119044883040239978700777037043047624448819636491757439808290589922844808846855858046790455291893108926387300298617380196770048268559147164505518012654552177830905821649851262017585263120821693891813379905807274310969241867895805074454584288483323582821162658183700443634309511426895541197178890359690967304674971703634100958353741463432524359899190354933037133738658119033497002108207073449907397708157282324371498690826057080706699568279116899568198056137927766593850820038068414310992988697569887067662976208627102081092973824831524992079958947248546829641855446635668687280360461199635308307364683968378234504765636155363958826126030943647393225847172342666468941402042314773540195877528520122183566034274218689651473677637991358185801152383858036919460209329750964958564360489080916289833146892965267913450353053427580593984071934258691644922151803708903599834928831649185862518492642724913640976511817408628465804044939963259154628322596916857303065842898542463441463387940062363844399682835845677817307506290458160849585856979032546345215053916632309512509960739402601590531320492529243342418112876994992714973468402211760465705854155032744306306503896918460416696339338395030925040041539468980842780204911561011264313025723773285364107665137992175646408613728695413530717478125187988227937837155013385822779119709124514369609992688904254629463136913097041629964228840344772837266882230548320853426863008874123660432947070629211936684805124187818556730801628213436100455265699146591331497272546002717928292703569355770830849563821460582633474754256476769628335305869690365310801650507062463297298291463143302738064133784794051505967098231078945710861496631146430445423399585537809756809217493922310080272944328401486799125350136450236508533412393658554191662927834422578435198179209012514791836622243803578476364928688299721306842617202533450245363388689667825546631872717457983903075170940117075107593252754338285087859094355671171835739413493690202363405714793841554061257113922393876422434317216236901621963143035215126096968962513511128129861409076073835570970868414681684093817480266545295733832299433255442141750712282808302475356920115691005771971576668205885337379592919174101073112585693396098476203267938117717883220163432864658124225795144438788803126147911330634742300436235111645984780251171055535175215311886719397046920743405836422285110914661392460457865980873862335111568396943384308492451293666852556334684620271499171373755385449829895036146460252851732225490238185515118331723656487140000534958705941608516828728666288906406424627083668523042440239539426346715074098013417545745435162942476143151919251330788839955437700943359164545882608887239903564871245758874339197138082741360778912732506925889736949684849875244686946574899749490284939929334987307807664288954599760848828046184600013161114409227665132958585619517346339728514702397447128345180290696140482023566861516396069643173168905435018545235868112076708330140855624793846237145541364939914813002307483480397152475653146294383482495215823264278959747937687862747466383463232738673128498046735388073335213464341655399364371356451566665082224104199610290967399187426859145322282330493856498376713819658740787744007242494265284159865417255575197691061024434948763696733154310704322246965229509910646672376586247719353585108796261855352157052492096027759308975009116020754100321126260938822671051584299738990352996977688999050867476909058409612635706986527724641704136889588708219329854453017648800715211102730247700720044556188912812662275319273543838773820186258389326187908666814459060254085480392067240239927177164198430295406098525365230305301715252575788797699217707827223585146243088699855931612846117385505675554352063088875246833119597812867031355901991112742216705680044902861995248120276025672245456716771727272237556042740145117421801765487721559104169305716694796180538724382781392879992151796295015378217717993547935382498390881950221692034799950536403867977651592015429348600372963681503868616946389195470591979289873089060030793911860670838656222522927578817168744288171618398059276706662450983098542506989187189151248442795545058020694996525277626108227585670800287381557869877613375831227265578411517535880167122944342206630729272179652191138589828465584927574287977190685058277431503381540519053317768230888096052474434668258318928347666576919644627478306446851285371137913874537123442815126054485034372699762758122502339985403540419150030052747851460534959688758942424607539414186731539026051466799100280175360001681926439930449754234831889667913640536225716917888081970920526087966658386051587679985356828224362112733183216224985422331272667913237659981494353962077679795965690250417986101504432777281716423099412342562511462732936797894071118092233799984201420848978968055155674918975222739570375797447002384140883828399774851450508512132263964264800845940998934776481266092260237861510676880776756401991557010220644272363023828661698923559222594408799691579938326999097159800042421316309003482846280187544712145434215927831552593534531391928486830522848916661634761786651155573124223884133596555875331135245484874020263956282247932663824285751171024373224606612996164119233209781853408324474060801590620062151696615815469135939996231702334162405972741961812896083366500905100950758333117666897219055914623322094874560056089869297908071848215252945690961005546284675904366454531768564462698368163942304164248303418808654213834610837720640386573575956294824870218595709359550236421900459125872739700824418417515911688313170466014090134272946475183659197272499595450050957757342866375850252138554584555066705382068210864951040858609861061158352695885980865032486470609948357083900466165161012885904258186448486410028272537985048528839442237224931914131771543741958680004322807918396246157074400647919371010122426041421616542757947677540948069437043925046670460975774022031856388298557815047953059997353527452329085547169584094170561777784204528967156313297085306417485968819568574321032736709217552354491173807834305455938035868402081382720933710243872251199880079865759946910581222529518278790470486265122373164875724599396613396005829885779955948338611937158392412778561639787152974976687613195820369915288638979390462716399133036671680144022836115387799824777260507546075218093806683162989955695228647482178044876269668670055591117486490360083781531742932362137050932683560598847584354073396009657868724607362774220271854750471800315479365548996462206971150665442965423762871361738285934218862880709621673908671043067636401895186531991454685547023828290780689527209923774955923744430007596100773068516351168789144443300133251553436944322188561954739856803343632001434779245399445939764770863694083197405487979111533877599835508978101803448197063273312769957198862199340763230227352797568205141394861870733084844357990891349043607525241193565822726347106935722853985506744017708973100369417221666583251681016991172137023226551390732140257113687290949699536553521327014413522538383207186922821550199056738681343383951470248407287560550139909246548548162629292626384067578450027031238460695419058355322502140741930714263082218483758545756343249575331084956753510489823361834645406978529373468402491544252669370225727584190866918539373885682199284901988853104958419250666005999435969616568474515877517809377072972318690515515234799205903185983600722087892345614853126160600495709394755908751914130099474139317426273907601387235219111466002521246335278785272106906221044427247691768595595032682242361095910274381644451802327810143310144583125196469134967622094113212158011680010229279500795789745823444024406108383304497025277352838961492653134881038324883502181479789902262415688410400141808388294520626279383830387459466164482579142124500780562129581902705225067195972222159531325654117795493643701675650822779699282127721944445245656609587416425288776266518277947494110207533926532026463104808334671044837804383029919171331772604088504856755361121658675361770357039980917748550612630847024184633668825094133554902402296538785989848743781245624115221917464501938301323171659546343306216071442609879667485585146783824942898181818364681478464854830372247180726710555479637508768941397188054873363171376442408326350254120943282084718250686070216113773195526611301098370872852321746695974138495026902661664524779886135899099505800532014635307799023232126683086955349296710432963762801946548358293608734890000764791354942159716020323570420963793737701500053676464646651777905667406213360812388874247214555110703309344614708858341065848583967575865629626961233594158238757594335978470996913024627998863420465662734610363584255797502879081526147300229533811197033183538990294091733896942208133044271223335063079539076254251339567825753211203324919119710267746014396603253625581826628625263226942820671560050143783731462934257445223956604087680974968529382997133084130233461236711953527910325441198516643542382816630761372170563045980796405538257362733010417151652833254981631626647208213457115042898542003099558185524130978765442971909994713621946085578320775076371553933124703509917062969159074330953857279385836807160055339368522787119054081263464649802807731218372945947493271350229318085198787282158930195592636976125582680846455690255539406829299632538895362019923051864074651266061628945036871994577537302211103700577797078392108527538516395368182508516843645043822833248449392254218875758493202660674442848967183317671174312872291640767924301210244302584961186827935817472319934645833053944126989392562437903483038994057606468490680091918591678223767101291239303600431365874742584050926378758928991137276954193570859416450668099695422514854369597919837553804935102069354540518703269374712002143361244663292962588153122387920740909570589833594498252357105218543871062040588427292905047502242820451894076141433162158552384998170924158341398255181099814116233750738360688710578509414343470522964446330827502330801940210574351790603640613149960699631459901197972744247263125498375622241956653186356311898130469225902290924935397580740291090212214006738717296555914356718032389037526770255829264169557159911831290743643040615192712999916852330765232069167360821169851994634755236489142327475840676480730099567708491731016403447931638230656075343077673838165868987166289580542993458071728728504423294046561434836372147707217450854363542561842804159804630667685046671182231289153106967947337709741490026276730552189867964784245357686308412656628727952126405364479420646448858482824094144967435848399738373578993816652611095179746742313868990760086966743636887854711029976539344804348414290021059539425754352816804894112862976681234785081473721722154102003118455356325605587755201524804128204062392146697415861730104761037470474857471828315956866953644194235687294157049561256027054568052083924322676504968422937199442135237253440142234543550719785034238304121335150102813328981157756860967350668202734198204604965834838950284997483551927667768756213128753112614860527427014350804077793436052607642629999685573687164255259522730217019773211009475745263360490785116567685626224459849664529982412131068431332248849974648131089246063506133167586578893609692064447695463495721440622284301561990427897259521244439761383364451632381911855476265831505293781686024197974498903067509891810789879723733750685332280869213489290831590934763086492918616825780795665362711038421330390294570517550695110309838135695708060243082099987015174629289636659829334842460003546764557946350463509368524383174618976523165246753895629497964604966135650796989203421281774978629458056875201609760884606098195552308765167929801187778509588721158622634152220744376244382277343320721421078821711796947991514616452181243696077276319375462465356592043896748325034484279737824858611929586901217632941214578528615559001851140116975705538462027418338866833529761987407394120668181219645855833908951521408391977969075185465173012858469046859984409378603019127039000854629309439577149096292670572543691288190397825183187083374142365990715580271332626099978866322786521102093448538640745902808538443358055388855456296729607796517461736915416527651827756437373805050504874091877174793114620326570181187700194865849095794263098050461946122203636974618737879527838428508598349681008204072920295235178312615933387409396718021412185368708053523814075336782550493691471448944396818193472975410712744247058356520970178221834983200421000495625389080554073233559327668383098111246716049012271208960407015617468927023946519755289624931009825171519692563887761456626445329558249833676458676672274887480685183795854416781042611232097816736324755468721091032529272298721814404550688713296351275656127060682316494455226992791534736812864303106102477298141924816489876533046046583044601723245607303493479011123074508840554781168563440747165548212182296924310486552358166745177328456921927171329251180570345668683874677827137790031733840634105531299720111173197183927216531763311422681246637343166387456373053561207399305996299625234608781035201527769555692945688898032704998175241741347060210631322872452515458100677125502947977541785010829588262552486412543837520547884069058855697806524248982867527715906957845260042620806094479345714100299112039076043238203730199212416193689830312240610638293416961642473860929539478441929157445226044363839990667282368091101553456484880346988115358839028981763734334741868882940549515474757613954474351501034152960023600085818544239097738449969128847701688197586937933940481482858667126063539818449629671632708887990681558825696945753478243401410899303875740171194028975611195426402554861885711910206921406739784466015568536783030586789595454161942527154175498572545575677558068153145863307290686386095854908348163248880613993309153215460106430684337151869827201899984808128811818057510654711563577093043260160121321456723377049100340677422132785788657072478613125148002108027809780982053098078656263966094717116397871105956894250499685881437896823984294933558626561478781455668954166269567766071606820712801724546703267236048136076878141241032929324772999158470503012409842674076945003173674242826056946524575478866931162372384135037631928280724052314146563302088066495902124428745489517376309950261781454753687610248671940460068061168508220992060949985897769671103700398029421134089738912662748090937477624129569186330226510010462997290307104337041823002862105887116276557053867880042490013639586340268378124002937344712803957271905300373496106691579296187192832228126492915897855441392427563336984723435230322562128520603246056221111523025987343063991857961085711911697667977323084080594055510072675880528644630585511525002087458537683145716003321403680743813020375574951428633699252531390230832836995097308695296667998477238164846940661763667824758544740502733004269747165828291189503021053178276504471602483872142924722898254159035951661320483202991943569148430257238453582505574204792664797378306394536409342288206348345961155525041590150557810567444512581820883771835947478448028043471034986090767449087755573118763325694491802848158126162764957094574763351120179910600483305671080677396932997901956749708009902584772053629558610865519070455168440479227324227354229881613124624682490703624637795271004744276593043235571245112145811199869685318289136225591442907943452568440117879059824887958472082945329303112368430013275530390931217806851365170009713168610007990134954263657129841628428035762370456555155708866628658593086808102017442390789917810306457801292831601538412171851550622820692836992159056220081437118297205902428634598187173670827435753719962688836797970936305380084562804010110348736770351057073215256460327474552239869171170733955624076221313985487207304252013728737594716518774069096290493948098877289287085527688753875158778674284754796813553319782501392066741023750498223589892088724452925061856552687005022877581291401626138676282831527492120291059404500085589373603503981014718765220030214417013581839094572558521411542394523033418952897721050181015017090424880687867522522426003675893253355371375258329986819908996427693125927822004907030863400435936065758206702603643811038202883737435641119699256391625908826551896666834534146308838566988556024163266340755229911519857631306724254523123957608706014513082035213236278799158921686707057532054328583507886476978105537458750911374300713501396314220808263679823455819026373500509966081768348358027515518549969508871979860001012218226263379798328073911993135247112228186960037116067597798964635870525331762669225984229369841667143961651712324958352506069760590034536234967524602448834899467139486883380576038752950950208461797540926011288165274807848993122924685627925928979217457535660432275220278486233782798250180533491366736090657119871101248363095853698746682123965413852512955685936891798892972195722394683645213316985555993284547570733679046559724466070962555752618717082331275524744597478792626717669388427993415613669750215065866691080519063111207186531644674403871631272206288645515096596857222195546311815948300174064077151676543362326271411818134724598962948309153545650734869500348768415204594098881534261468984376668535631471242365637628487900804042931305498802328316067048763144272637451161211251818553466270352052721482882828919193404485967783708475513456535826863843641534635331746709258334138423897844293607932069620200511557120641548287117103421483481655336569834126520390952633773828353716110556606682098702938986807478210073886530811785176843379481441479623921776016928784680890570232667145375531080806311198789440549023810411674885401753533717457610397882763838539689114800133487875291410518122268579476931750985099009570911410093336725211327252750119237174470314263110940323285023930940215104295764985203134576003427038012572176099253890084826469572197797778908533790319914595632436384000829210553842920120649734434372181763071623883352676415783133546869567453039952337947464887369298766427073026865490545735989719611309786126489916089519183833076409545240151475996521255095014367242386004546078171094966748709986315174453530198977111936980930498533347435144412141588810262905537272558159384554333881884519277619052491194947053313745251462896959361874920646836395982305305283315213102678070007639831571846111852996849907671022688187207633456038402583425379646417438669515272428684164767758158413195147272229500006440361882164590481191779647431659281662058162886369730066880110600575632110432997505110159166507903920027071441494094428974672737884540412289803552486228285413288784403884900745991959174000649486438222202275392666283089845561250553392734810248674681619111143696034643887584110122699415712606887322676134868389024572449295084681880032409492751315422044000258780854415033713671657494625837783215697543451110809431153985147974372068661456025868344705489110433759097278700403525497924006412696628256857139474242074274819392336418165675759838568359492137165157788664721443740581548063536996153556708294731556032517140586666140789995498495581171789639296373861845778559187951118407950788862489868628034655771457881253787749445099277424529305462234425997862364817977203292972397220381871431724206609412159370254938453384606454296865034256514674930606948276080285775626723721604079909426307133397021999585294036259858590787640329523161212292147927294313349248802390399636110973873864395993050887118105981164330197020697894836659814474956293773466453378500759357133640323116049498674742668740270885268670423537059527137208554773309849342525752213573888044989490353979765723159483578282636119553279739406575734881411597913830206830812355563028630285968484423281583845638092494569407590158630788358939854796276361501200888959710321082405140903189312216391191506330603332533701665952185857316071942052916622679667485468982223675033975542930025112819322665765953370339510947526018367051989440431420434518908751029080554206725937972138978668285007956356638647916627404201252918697950448399834692330902586374139553962827187335070506337347503214087717476992950763942665471354815624731921552913536153656771213936797754365068537788441597483630089461120915971293254162914409520308158858466260849031123622630349286507180183669428011128171347835185319947313771313377306557302573298122820601374028441996338173264457431239702975524638958747775501146530960658354063471886328607153091203887452745273840756161559466848239347004630685379448732581535328077019205294762878617597220214657272060581111864728239579005218205905871169094412685673008929201007520608891807662107162493016806339150258964074031784195605937804693538045124182227893158435287863513866097358887488447435092163788743888654059873897984452403664925389633137551434723467336284392663149966170060346084897383771595934584858736589605574988348809123906215822739630053174513795015527161443243810590041448941318621214411970887006965537030040343357304057729112135278652022199902770903096523028746182280543039191135326021148308545249449619873150069154262156223279554725460523091970707847216651342695824852084121309149297814914829202528109095855037697575681225152964709130313139375303852712250734277164892634475226365229182698349490410916201576746399804232683827834108524052435216848426622357441549745031950686017768464518437417485324801403686981154129453754148890312443821806526264173842723128616232273223668888720355080745539094767209044826526705312071508294962879721079874672446299613366735845540423222862833182126728441520136257864512218938568341467138560341031501973903186139552533750484594041165916504976191725031980170932806578261603175138209485352847083997571991639236635737179703602250484258894181087221840809265323170249652902812851989209246169834029724073222805596010662815815044161954568009156094347742198834325095680909233512905452634960366571905212725307836933468628401170117560455040207939973678071848611531413530318032218259134822493009558358560085979076797298369677364484443567513266059068687999205380949812088249415023651577603484009846831094160106671458381111682650771774819765637025399396680127580937820040394191979473829249029537113116039439888113529545722536932912618893667976922148038796908896453634708754233829938757119722369323778232747010915014517576524475487432874550991726197717226822929864760810134356557849385084775267473890673503389127986890684062847554859289500614248097084283985895789156503657064590140693690259455912286435778588971794668699552649460297802517956377054103108360515555567590210139408941697963882620107337734550961963170471800326636116584385787036750062130729408845861037159729714859441836197369625394260489573986842884747878126943081921442390688621992797840010621867246098845551496243899619053967371695815912579953448373682758376791253090037065508780528143045140061723155008030688726729065763740225422554151976827917313063493477724145040285070370086661257996779403772706780617016402492330122972625736415334974398375242584080803231381335315973192074728622366005339635132819296145016441237297059005024776487872998163217978216598908628990538307283274671691647473188636369480234162758977948204341453392190652748849353157481492439696558463305818374021773822683503032490850690642712965515177084637240516602660112957563401662172337066751614600959954214745926596319434831922004952175341447208681462631803905269340541143523214609670414588004702374983930497390417522304092543719170051002651102812851335998058041786151583474718294244600844327714294460112542807267715679968823512978393144464675504676742272579231607495773970688062089812884560901633785705031490727258443933865579491402189728467467516536022841126274973561687773254758951573568980680372698778253216802796995180153784466388251575823756036648577199957185718783061525956643473613135704631380682278568006159451549962430436860224144722131382332100385109201133226568611887010004502987948250363779708104589985898696865631745469015876323812378986131706298576345658766633270218958204633723484874997742580436645048446334885575232349269816253188225506378543587686613520056669036299757712352740334556845154099035210144305302562640126004865631405546271917266077147145380871131183562581690288483173010774337857014633357171096537724504148807420281612490734617688419964947493544470419792487321008956967903501294950675730283330220803226557360238907368976121057383375066006263264997165651804993560217996913780467487654419496082143707043375038001903373809345302428546548532424872804885962631096322047330220854072951267612434483607333141026073867622434274679453398977122720419951869067735625326615307357980011253134651089889401639481932470599394307078601927411454052128376250375999925853862232233048438291854148095583508391469101353439774984371122620676193352537975345790466702154629484083466247585130799468370806034943368033157127205256236550043169240826181045520754335921930990609071218300524266126198190492980794495686548421916165220139398344039681179320763547064127092318959100307739156792765536365452747017485285652989116110766658791680741724493492545722593941132916636788663524602008024722893263025238368529244932260089966916735927820902962009727650686324942363937628938126235006002952236182924040545776996068436288286649088183150808809131383689860320033174542287947791437767340768602609377288472470376357933994081957500940207325888839848374895348027379186493818024761482066988138743525740620204891229332707348357839453584655306474341316343868589101775621945669324061351273248443659683150617903336415715680939482123832757542457006001476819326942724710254249920882816820836959147296640613229968033431315098695017396473972292302616366368361532844711934559925807448931574570229133048998718885724994125773529648290344890301925216947162920052681738579427817692682816880065275412336142289718693691552917750400410573746275339942869811625718978170280036187431761793107494802713410494637170653889101868912921875072986959432386611200150320917410213466659054794098294927961494373172717066342405842860496776050072300417889926321447747559088232855253962678217346577701801544128787475308490647160412510268555952432805511975758134388578290597960536234336699253441982865982231014375383746605653896916741271270858243913343185182255065865608415777488942851820858265011877595269992648925767512404545843344871552406075327310734317724286791780241694135890159238274077158472530998124822898874115790483221871867859265724309720706555748519448590313978508995375446244662447955350028078113857099994922191503188402066462045597659007447291510563613218031210398634615292444733281669177438232391008473001670196586197214742828820809450236332071642661813061093328648108047320788939246159268882377691316971564846947962740046558322635848247080223874933698209030676538118582657001258526662596149187421120104311423661905099472154434868107971335088083411347500472451767837019154589774296690427413202578668296736835876714613493370767115792876330915261998982011503398615423826951819244950583422032502442641126212356717472466812052366713591792104808212530558712995364263787160387722886977896978768885981183796545718291834597279618843190785095375432411416279010313078548761056014564481896905533183586056416419118486104785566031561563148467902382529269190463753213105335588350662585931971884010310748247607831076364909799072689069608478784784479863470655787157335709562441958377939267586505237857324344698234987911988807952169717543307346873594539748148405821704983810926642497301168440907117250331753848721624258481082111220452533819609929483544485299518073865275185025003099536999759805700056728848561258346341597204367624289473941982172668348195313217962100337218181169834967017896494480161694001329244308849958388725840681076959751909722690509124048601597177818707206513271357253218117207626387290731147383865167519830452391260102214349078546843895725977012961071470539669981281343618175455194398413229606629182614153593806711773244191028236166927047274346132106070179817041835255840903077059272795246001981738638974101423331855129337454018123986092440299971838126455082350667962536910978685946608808232731867181962986035081722731823907866217061334916387759989336407868323863563538401769048630112813736835399084558160645726490284864856214163321095267875437787810213730993758293035953508516800853867331206823912588526979225172976441889608316011700793613510295258220530685112615791701116930383943397477257422514410938281740045073625960334708618257464501166774576369496657531640981841200503563992153475224528574517622242264564769260435602940885295828495837003513022353082226771210406172871711867566632392730696495131080815941123879163295049757100767737193240821075227309881800506353156704636642220590302893888767891209611962410784857005796331867651063166476912181441313066405031488361283183811156083181631049634102858864839837359692659741322909354556853740757429926701177692452037898132955451656380599013350453792943715093038393491669185543448269673423299993824755114856090886289641312228287443749552212058222973218235775905841784371570008275550189431235766324488770776734297343392736770246394966608138219824073996924936956008555052791460915101246613114066793504996025238265075062354071576549512008147517213592016615706717211836307780371093881477999357329877801847670791434435068827640655505811310391247182927781027406778641874887231400621285350243969850354510006147966888874152667254595158565274796992120314548821530190909178101121629674511984830471546409550662156127043240079908598608695741058681876011186000377144752460202664071313256711448601125067404605164754834708798152791385593570947704743867310817711148604374824509544830546857366329085165074661974839365919583221361866661924701317974016920527953274119568796910541581234657589794021074456170827483652508791036922233141907930681561705013384354648871855852525158301768206565162510595004164812547728652323925226906185345185039050157715738024112391791465582811930581777583378387580242481893551751409782862872993749166760729555284675570463671418355187163463450411561810265298104344825754749337025625405958457343819447292255616333810638708968706386969881094301600313897640702056835178430483114757197421828285816182597193811545260935727230717483174488725760761788579013429803183122423360390039265227090390687477778388711353903732937984619396225969751757115019852794476353604579449689665940945571867014804400854414198249192863177263819850427291539476069580470158810658823819231736553043946383343926909320355504482546262022442628713976436024517316790172591367483304151777342232361124668353124555465972462216041353513670939295751920264292153786644583650124988523553145454246032658966918711922131773000442925508236613568973482490667220807082600974547630658850605112554175693485527220567252928525145624609562451708052954190943764527599878415091748973836314724922901401582995999449780589223422052995017568321176952696249805148984078891654792414433678005777873746537430774679970309956066596359745560535455944780119957760838603911239835215665705732819562399599455176273329997066036332720717052375376079158270637053603982108001499390505886166724206889644480690407388120482950533938486197936497481501552346923809586883181996170474335029285807825177396023862135001043237948517680692510729493726007633301937039874747390159530970561275935939529228700231735733468039453194583265960806949991523790085401545837940968850206678826752792985606498807924542198706349285406446501120400883062332118659200396390039843760719755252662336995805714905244417028827104005682617909122635147713714556751872986951164165303470365633747883078647712840634246053196211305835987685680371721593608951289364983463047855800456777391439111716500437493068069821392334590526989175541080812987892831043668798301682424781237184802592371794611106485989084753111660285232077238147474132879455972442185113246293188863407607846276123491489452715336634044692350107092186378239288149552124183600912540768323062320503062486922605586362446032777951015765116845368482682241026965730387126235911736889945885781119689504915961114996866042167070545833749602340046112107984983324792474315950732888710789695561806232452221005957011416793557958125705328412078612882159061717098334195985055663711417263774719967246585998786873909017481331241718277301101130761898231887991864395774448541806558286199620984615540313903986141374443237967979897908788716203275244757520560824233041995845889711093855150697325150547184593047957576594920569109879321225932589272296909443343043913875137425582110316514278944743820929530667248982692658068534503640708331302365176885695738736299418282809714005213881853670073583559348005565007134660134451499826959382435252483713481497192636689411894451426954829541650207207635118910158280116098295819043472707899306597487819478894560098847709529555190734223691162693731785951452733262583249517877687016297499017090512924211591936005356286882644444294714449351033721012043617863940361063692915293864306452929376422461719759033645299984292912332556622732520131506248877058987520614787707809257031067894328059714101597205719716779689038599367145095966183498697694910978201957030586283215371810325083821572503025083821674120833250249747948842443017834330958551066314480169234858147395512240915248783401339327081624142058377246014385757993713750342111074008151311083699924609083376146659112750596349900977626238272429646572925485150403409436642167503758110099402454678838632630245175217812433389220412746066400869639028650272573357453810061141270969698333795160793237455003062134646637323923552671140690860602987787784821132338019899115171549762451721908645015816900230064981000839768357656709476204188007942140639124568127001812748598010429302637155972864552700555283506156202975072851325010266841636040774044831751075966711890772216270238635021517192408433312027823572304535524014357707717166585560804569294583357557830568735102944423647835078079365275834080966436879858696696936794542972015208843531263343290016366676085429072208397900765884222007548051686115729097678463545712213167952346873133814571747598389032828557338766641295881555864977537725886752216564832494231908617491511571616376917280678780709816404585829570709062182543881740643963531238438378592126354568053029096148493292654490818222539526654330224774350244228888676588350010870202635797604110471643099361553321121574248688581620134102753865274228802631345303049170158436020761723628372901992886255169529533192324367139758430425011962306912021612307301709676476114431013188708555912033116926222587597461018868205842781845131458904457058169556858383838580418242922768209807874017993009419420505660328255681271802937749052174670448730612164285950779256373275665198772784760987976701760096370242768803890005959685611032297027724268039237893992777886421247028102692120177361315798139196726726517271905050885922619048074780796714509824271379786479170617763949339167942918346543387872810426277735546678175087592123633743842057221526604331747176135419627583076744863376810350161432799142761727216509907389138991308739703678352157106218272859119587767311591076241332477265718672246317369441327542616112790732989656938115432712220912007474710146323570038274730379723120973507748563596784991642142401563429858617269846504730512626284431607368797941391445134078155112371033216880440408610977258015521502716562844207742519850503593250605855094662049291901373328048661934820842596244265784035478522668376266253627057193163727403014376235414720674085482598405291873537538992823258829488148832789317486152743231677236715767565727672130271010535861223696099208490693789573162292188455776469678512681854903690201066803158262683306257470731992616730973340608399808968867150480987086213305499476603251402240195332056843293348771792886455429489582820273230089272142911325760771188449491217412481140589299397204883099708511598195707277326702046074451357216657236218487966950452201488210920980896156854539691242773741621570681504243094082386132651242093369846312902631293205919777691472413936980927098061831265276371918892093416769360034730911893957118255797493509998396465741300000175557061812151899572089834634316713087230801138023292756359525247185701085844557674488078330230810523049622291867350970248139769377631434930924453618979912642696595625968930475628960100511849957944348420259118704384960998492143349098937900648061583264496004516108637552574986134054783486939573171587354099777069447442389645685474700094275568931990163924148528479249371931488607649594588161670600635709755740013658135752454979785736909136127744578372025339239420666456525944938127308380919386960164705578159601445812463161177619539112770890253418948218703304018827199378894292274792817080751567500020791426244273291983788461750420577206398790838104927095591518459488202540587063423883850979640408958792185629007329617939216465736510248576405694468833999140615507833568266221845458073724216337658799638682060019462986240987399262714407356089013311039699157516216624514883564922099068902656096618852481170722287948664083514852963340039343228778861299211902058118271586603963929462442476215302253945851300156045578553398492616647070508005913376978264344056428645976463131664853169269991562067501229419066496140148145655723898220100551734073932885599097378203748141276604071283273648721910646683467022583706333899443450483803005335372487684389016000310371410741993429147029892147684561597769429529650511586684737088139308505995774530596713896800522834371689611329184225646691089818808055064067841829438694573480922152297050631357286375362601739687850039739028138580328416348912697977602640934615434673194734433614475865649876323021820693342381911120737341771560793459887137103679127892556188319512573260303454981964305604589935532667150332961529572307253748310420938173260024911133710935202566469165990368542939926131856106287996320130526320011758015133993928368477785232960332787203484687710376622536698640315491412466659094239786822407173907233456109913247959053519927930000519435090241812225051607284489437747141394636442051471887476819717002645876818195140666253002678781194157335455132230175198280595121992197530281830535448391632441852569291361158878937125753578783099187417094344095109697263201180229906971420016307293799748693598131104509494310121689623664070044566891799295078127066147755936364056703552283807675073944456313531387323346793648950523796966742050376357362025075599866245922446767498699520512836998870541114645725696027144000167616666269874775804065309010520908090996357293233542824509054189998616738939926869807088512529589330610497907760154181931867012944229642029762021060069896928976044331667565755060794133603317590656086768867785397566934432567898735267823330258646154052378967658264762239499697207090351730493854449047153005187834751382485129217754629571325233965874865508675845867273125507764199283416781739091502444656065765892574384354279220283089229645163622530087875687056729429139797677826663525336081510523990334190200563705208858729967770210133308305000610548626010487552980726006620532678822944840617961094671361231866519652640316394701178783110049142252228070299907556346313046105077054220907853804890324686644350218826984233922526305594943811309127510061788281646374851167756395350833107180930280281243634709248378360763037909923023684029170376789070776893397877753995459902373693528753848495108804682412699761709960835844098034255479507415135030083501477634018931123973557772075599396341799348434446863107091897223122345024186917767099282267636293482742273334678897076562435668038606920080738496988096684593752581477695341695305374125993348724234344071264654983252137865727338239617146759285823574945824608569773365655061381213903102505092665544462887838752309593364783775531805045990328963381271988959915726546592925450943416812128414774002296292552911022456366987172696126204424023344409049190294848960284301982857782021282520723736517472290516974265015189538590056022136456036264834388321532228536708234285577482837361229109760316516764975746586039850453802552958247859447549916323060048534996925323491101935464238381372901343882810029435078488650579774764257713268772110486569531269269890145476976904270761321363175761749022024203697483763577167999883622592906341451962480441161716252701012700466444653039185339060214174725415037981247651475012600339109452798812116128683514288793299502319739994010621597295632744050996176858464289047163524944822064226894159164654903418855793016366583194456921970461773133565185980192036338655350167622059576399731923631675313181338968617937146825668118550281155444023309150948802225982037054668454302189751645132009103613061258376183043870789729755526828589953714685737849238955041335742226182877911070431135085554051141652786191810821108370398793803437779072161422057328227324245903224017316402375125629367728692042821632961060341101183921249786624664704394273367010881027343464314655423885677974158499291037440671472908052048392144377162943869320711510411665028110075505108983592034179628352925475475743981497973330090329145799143457649346109811864714547679752931315341236107257920392105029269852720347288268472053466125322820021857963745790935146531289970332727061569101673506099483367561524721565126275340497869397274139727250936344761868221900064101962231072952774561740617626878164869332656712644251422423108556917022423056138568419768094082397666210499801343354331369184968829457435334165984948701946639746819324389159060540795689951345607620022007047995777587708379961088225533889307718441220260447517039167888718930207001517533863223341125254683527932137905354184535987824131453595326064668676888984540613919795472993851705296277833588458750788999535168560331355327349972991805186583071046635639079972708874598525763720986199309050565446890701121877552675327558400821258797381453842472350260889321054757294882871265005782054083517004198946628634442202571125409684298023187285833936393048404105908447390322108875111992252337661405535063411998790621198385656770294372614286584851074264214166545053296008055065752130360104348544091782343224061530329555240241021411761732381958979177420601800350956344852805076112752314318735841367091006922210384374314114510894783597354975493149063256144582659369537184243276197135188958032338935041199676007649305264864748328399994379790061581338194634875260682405426736184102069511748672713602851032324031197307789913204748485825365397507952972480320163194846931483403795591592016341268959140411353664479892326893981742334224955106099764544440550138589677387315496989147115948083138493357465152043355883880348269742414336307809065876980756597243714295777741016079759232733994790178508290783318249560339350808632447955621950343486141029157513605521584034832637943772510407108805015898014400660119895219094244947689049776021961848337319978016080671585603795614475278110738049151651605986739885406447335135254892785851326233884750152064936737589938007427665932240947072539786564374382068286663972444053583987888489534598647148636020130351185550216653795622287078746981038584014618274050625374427556281279845678966557183978202321799060177074197581169588782786259780885574509514824914883250251739804771240749630969959443532860013965889877604850896754474999169396863008142945735601027829716531722267910938476271924797729734073689814024593533128067195170270495751716689740882143625346276684283250952029577797496327597876488550376628474800791538810461757300254071269921758553844816139559574911442163996411885931064719059506744270035692306223546820981159089281973353704434452535927960872613333390553257699560770723992272828542108411112352189731003275691735264143793398290979361121726449957181277800462132750583818240276797959582695443217973229379057134897924383922107013771110423933954150954613351254319800200415497376306648715989329832557107092817187788841537707727222411045206855911228780453362309589238849399469544922708861846911999202022949484966111340255852862712030017100441628332084291563540850552113782715504283257039595420266316390076008422904924738265857423762172190204613185358753510201797942533098504100505301729540191428254306053751486664984879918291444333182599064046747321593706688852572797387928185436643653291705213021012447677131349122224301505523394474057786517726741340119386667256881539279192720929139620716038873726645314933586485196815215760998690870620743928340743666297898126836208459983733723521541682339569238788932999703606951158500681263062325342072490657671714600464004045678861663287990573605828821183588594644407409301422176087042158747851797586559841950567002672637597143314586754849419493707009826617580571806962420935677976380178764840783708488509263231118292414772714993490771167067207935458806083554708702804023474503266483208258573469881974264598759793299364187193083616461841171875424469510169961086633874065239137030893184352944472699028267330908425646876952589434393805624170736958039504757757381372342272712361190273048968090770057014197462267764029677729545048778133715668668727460859338859858287532861770842698661350450560386119175458430521224238867286390000037861761382110807255900983925538781492556930331685898049959672971504191181571136184200520607458874454262551412900647067006175245295464100645297965777488490974968235986299470008778126824025017756235989500060910845680568766271959848364160635669054138161581075961052029764984959863695650000522470865399316317161344117493805055531176546011509095371598172642101908625120024968647911141623826817804906479212565040124746727184992966522573506505148911755494731067418595889952427658860186212419484724099297918761650468434104664272406997501854320688487858790229281883821279659737859018056213258359400988285807091530076164500596782001044375012196860903390971581074945273839179835889361895598788481637794002666847622589728489605761309322977144514181315755855295099221420127787664547253759055547175062065803522577615695406958397225982524290359949613361952602972791575757997983914161230938203455088820805013958406329195616357440044227946150529045709033271937008333005052675427017238234110728304159479968995012133705963589098646071776301352553568578087381385018277392682408630116860018812681704577440712996003798780143801015204441146597232012211117700601994803140655628190604001506532818711851204345099610870107260211366631800014470458239917172813815914699538835360147327662557747047378761692683225451314969898586630775127180264163245431109302611240689717056444523305397041784265022830101647153521653790100554487915227057335113198179821073800034748085179619176965639493390996230843520017549982196015985902104428023993380729783545715303186980036636384050297691703019707063455219070492736574057883134311860595903600464920228330397010718506052575001436312984740744698378857254395503914701986456175462851212084905319473204429010444981441480762822323811254167478572009163609976721797842594439955447184643972072321147120634114062674778878510385200579333855225046423163035089270920476198779714418740818690820873465111931830097934298264797581617488272981303734006038490799890445536027546764552171040547902097090973216085038136370492425888858579966513675703322467726519586195263507156711683584257976575500522433291582233728691086825840084784053076406734683525304126574014931993546426198818279645154724537954519323789128191548420615013218425330965049359257167389201642109059346328597503448532907446536752463358687332788511396920976896000985321953746440140431500400742133660352040605204223704274468601467431143398565151045662694538961654515984218074982696886468517467617913391357867579791983617208137563998360848064849888603213242965923132346233425835140788365970958435890296619766643471410534409562627043955938721811903424972798332743242482318704670134572748780220004697257176655438948208337633023300320610405106029705944448714199432515589531527815234452620735322978263685071011638787444460723852697877895782209895489752832499163376538199066560314096827639333605029263330221368642701561681381175749200960074462819512919647057284706345607376792642831455917678385721239104815652966397960360086643946641313805183662293040550003549058711759551429487730258571917447045409350226942840641237455195090027361986565611326694702964461063962283902646094550621469569122612523150062218331282536913459858786240546303527706953591022959332956699072874667195802052960748495130982740509126984061618357240542733216134275827007198272085894198046590905912492697892124100898998456198276383793732460433918200243702991096562874107444408567824748504872891284713332859002376838673498747929277961124338050026903900001799563785857257545489049938707024973092962286899910550429672123990737092004623584348746720681195031168112204926062143751976828540369800764396722530626044377419800855166731846145399208799321960685347456366894839402226499885335322669834054203699704467304091893601978435775053868794658831023124767361717429778981508573051844700310468806745772809513669910847953723878083354775105105657480115673410257117929838852808617913978710368916906756308380861344795441364098895662381993667653710023505696296476192259835481178581131817447482830255616791713180619266117424409529660954012317668537660460657592527166054296785317582118877247014258237702383043029719486395552459998500499974426784575611287072516393997347730901882727675156722338592499414142301149745814016493548370670709574935763008514754252522933418957832597757012787308186044138754344568124050685491503346685977994202887079835330288161673048317388104047784412809861471996257618631237461753740266946370729905759087204199325588663897112792045362093490172810330012746705804580088928817270947076505883863740662433487251242992414032891605576952000260782535415298157832501035859074347474398363918077329331836713490586972632687959046346092430806790942405839009383700514013957914754585942865119098478753734473429567103066978299435827980943341769877618875922312736947793974655125837360891395026271115846300719538251454445514847532810695174620220365638459946770737473366692339878661967444285683178919195889043266779726038458887284632612049486181609910233908609320638318630120431192604233240437455344545680186455857566208005157202859245260616919206581486372459367404534887967407775594362357373189627930590089260936627727303912060407919711527536987740509629443426727904204354622848938744142410982617594887432482993546249093551037266306756060798555622447011805523241156287892437176180911797370123678745926808052922513062039515133606827415537658702666611354086484698951968518942195540618889700216256348284685442700396158770315173042587353890455941574274350766981805448065217599486293227440655175911240727772196638397190636656540795813289245682907633906223039840761503931713739721730598205046427600726185453914906205742716123275664785797264509737241214778156312531707989639360632782489358848440555646206951937928158868666455713719206092679490704873690317962852414542770770862007216011339806406038931817135634282240094643173905934878558331729733738104523172757380549649207823145513782982041391251113341666466863374496129064673142771578966044244496999510248292742945095284343596844798277631620070611304384919203485887937444129957831976707937935563696165117759231041612877863096521747167552224367784863429418450565313661748810321831560668324113969398232868881965343695744059990953742909345864039903137230898533487274182414487005953206256258031841963185770206018746532049579064625471190156861488912105777581344340174315738621094085354474613574570613090158032331274261389192106332336675464637424021966165048515290886184546557850930584559328750114320028539739589905582173975797551342074342588706694101087366703629399552316395564436384303158300050996267095463364866076559161378786377082648261751535435770647019978794013974806054714980080654472008062643771327205434028054601443412344846853653454903697514264605468990317280028146616610649615615240851225634616821896850654587383728383329387111572501398618551036419137891837754192977236916269910973251338590026764865229310389662865333430764628259297376766516888355637687066332423553541911560673657035288163007988243140503439688524881922973361255922009744618355110038819392850318254833423137812801091555188038899099844275201052823489823343911220652060740232041402313301527880883898955474854488485246162003849348354098423032272767874441810029263814225640950445137855032681003023640609462229624256290026776665549227663994711020655642566062817371079292237346616833312057036528950740291043305461018710906775255933502890146446077278372148950557139601184781300049830477016775704559406106915638984428449123069907714068971130287426242880118636586812787969615696172939882915732864242798915617171873923611938491818269121803966640471268647093647297054990421377649985257082232519185646925305998148480009961962666973461300456886455923690854980829388027952891366771203710381578653116576630162593733722725062939593639686177915818971793046821417602269048007844136289585519655325243875953728786623363435208571622678045917241824361396240557774490905187609804931095435753203636176926651744840250705798597909942694777523094037408375601726997798761231076648867000347976990587078736248032656019636983531157249223546714590090622423938293540413069880732114226062307595365976694506807367570146122258158774195004519193403708044769221309921738071483107051616381615608061118296951726830396366833121407427242487392890997999295048015786477691548353121675621071786819269780831188296952039920588267269028234985604749273029629364761438168982764763676446030590965183639219868294227953273898087907229569027922120461888368420647812969519293435526610966031266706798441085559606452290960252147512210527285676840711632739371109141818450919762514729601014530135096297814802040939502827287153140098783867148570874978836044907402280324975128904983431171653049038226606898724632001511141688350629510896793200044998491700358213958845350656338545409763175887622347313654338859653746497365827586187980079301277632679879913316830976274558568127692761638899792500537635656870602412616909298129772922222531825352043667099255523678958792209416714164460811798461959085588683098392302990140799853934554089247159464534328635548096680175200842502291286620173542554044203763776805770393821477620580622127069756839079936563982879665733718397082617021739500655614072497215417816789945939185438090910034180247561113236006465929373386138767205040510713093900749367259934069000682344893664971687546070487588958903083023058436091811961391961675322764907826869395582093212791592524523325757807928956727279433898780443405575253952887707092288764734352186728769937484663656372233790060919429728761688522605323067847083913583279557734905864702170020686804667031547801110245187251240823020300139472246353603999463942866060586835223633117314998243975807008943893242197816330044050112669184585703653194190026799778828918984795789760277613477763303293106911779264754085290119661804709180386299290468393849034955530719974366959238058410828449474172001859955217046354684128032817135035896889222843899151969827946860457200081996187460826108944841381765110185112265102576182485808260566282355199468185144806841908836156637904414280042403772344989194963008819278838870075004782755071047595889577174236367488359839648616067638353394590461758190253195744232552099697062507882351187516292063859883366395915851741996786478478910433255161603907170727772634588125931281400621487249542396739654081535377476979905431100533089734016883001655175055306265520898535611544064807711768322812781319293777663410393432887877811137276160909240979933635564975491093705904525466792570704471012523564292610258326389693304357865861157508482297109389372651046518992657847134016356364338168781527646150776765363595167612519891530092889339188965983154201837990869231686079189443537629792658902581345463477270641731475663559313865306919776565593333679641205081282547462173662393927720856999256992567073365806469647853558258901501683508239970607180629686917497819391998172572856734437089723395736851800581510930143562488997483316073993374350974755745535781639468024437236178485637967723147824371705277827144056395994735034968106744855221679958709017214678766108330103379265710372342690482542751259226913751623709256028737011506968970095431131842662321167004206248222413200514153228625929131579517190309093396256827494249298953599991128200286592668737340789488880306871957964697297338639246269497211267897988099381731141747899173544841237374151825106327207526248707003516922446059571598187846834740428546394621083248165666673535735562872994360730768670353205850876152810283073505722750383440241415494284473993161313236597760756384216536223686229699137307918520369305292071171940181845417099083869857405968417975722885471999593963751579148632423600559111462873456252091776302871887658373672300454251324613742981486677519573260365718702865017810348260671877393728025600778812430638717438785192947883407394969530658846165003824439156145505158192106771393938910569225780860737954090427794331114175170220401988625271042803506093049475547637660442793964777890055957891250618552774924792181579690928207863968740134119775575731793989478181236674134488666827233392980023155404509051364109582126356676144220061437520019350207337861216511226260278550529464417059933708520938249936241375952062276297853192819018386407072807631395754392782541585707347869186387236477880858015036660609196664307639708644240377274384296387645175050635881398222622233881336871376072487292183502004795611890426859911969712883649579569569148749611637657536239334470854519592303990632458109626244494718527592676945863367395212514001456438253080560944855970565875933976464169250078861271946196964701297059109783912147981446681521803991122735657356582033341702089697825152528151804986776481096980684236438906635191437331759853670437767056521491034914723386430248391604429098322760982895823908763212232048744668705656715416940398245520507513242306983900214905591705833132845261330660410384403495265965711846863403014488725901398938344446855508630639252142755948685140827934414111628499069453325589868806776367051749791629714566900616274693840641621190489503603310206641670157769715181944061751417823976762450506299207456620261029571736131931525916127942710050898070676184405774410468363410371778005702998886641678286013374267709125267039248393035435967284476911149693929024132630145243655808858162564637591759212802318023377727701971341483904994714915079623499330304595249186454569304953679393099456022944600990091675015696877092393155897087999545645618013366348470397852505221117281851324576819052013112445601322568001776213936514922379033479229997203856353249062281677935366778306446339695912849404615066668700494498319255178033265730577025923211036957703307604947107174742840786813081408484215156235407367600110001910044315605376900908046791757531608304361829111359101143511516033682315815389357916526551485309453913438905260056300170711195703633157259838101361721997397906736399181644872967030535021804878335560983953790490718439186924759841567701049284913287662948805438891585922625177808046260765413259902426270610065028810331166781699688885121236988508159037370019527113493675685947808421410975780548237537290935176439347604082398873012893292085671625728650935412456718476620641418680439176821972120683728309321393353587686039425247589398470038154396929502688829067728570514591632655780048500501326723370352901396014800675543330025350912649272249454014713030541009050496181467054738549781282380591396815170723852882206442477296426559984700687430612331656543221193956170109798253476119381713580872231927687419924472812656896697227591750968262066199741159139833414683362231529253051697675372300501085877110740686986082776374042528446435812245878908922634079423324096237272021919567143089830868921228222715306210442997266121341359254759268713093685238467566140541589885496341026730565213888139715421621602986545017179882427899379173973656491270784203914739692434448345492289325145763250326223664320789320288528150490085875990367071055385882310895266401441899520825988861365729165013519273505374628850202280874304554592593378823823568441527205381844574142377065934784748737225112976263996749346097278018490205691654185080710488136738389879251451007032945265473541131971669621742822370234699236936119792858384421632272374971018144682961659095008186197817494372464235242002372201582615934048225735391130009853493673307226429988270762696673753933573898201569516614653451728336585047793670270881395562932266633901224240301227357207367167513513306506841866237610458730298090795416075133591966031467572930211051290981851460987117994632437104684411588368068231426387074634468424229243868647073694785702355179007609724698041246426882514491254393138054348322522172697704151206868660003736332915072143859805387644117122369788139925939638550493597619156057661918318273912416605986049857503949332528632594827494212247024481759329721438240871864662691287210843065827252898460784016774039573129462055705457463842462751712291205863019697019796616871914244820127390709815206396395587110469742933290563028919638856777843890022419496715247136471459855717186499912865808602932935581215236180144711485043933941631018237248371617400665037090395879517727762147397914612429049856523164073528955440652737931648207276593258970180274856235800096198208452789160465486501944456577634473364700183376417230592207398463681004476322834011752414636844178152001560376993428370567711171589364971835800709117299189801486883020218533747917626269731790995332253376730242072914142603446547120046942766968451903404535663919119253149294623862862537889463554641365655908885416267694000771929630516090080648354311278885031398907600031504469455945038037183035639959534824349416538266039794972938023781151019997669803880142474060489763824626823002285608942433013354478612404974386590743296598481266185977412901638763048461596131614765581624109273141642627995378915093835426083256044135311837039277128305402250032673889236865823064288833767529859959711136305801105563760976740738211518344368319597289790006238311915195938482047681703740708440739374075064940989609454344899152893639783783726409215923275574332291549230621692615903481288928169483407150974896164112680890399468909363576164286270721521274470101423770213973698382468100088679968115579161907585186556114198897534036486986728065618945003898228752622847589841548344408112772309088142260382684348099483505627502891599856343164839595630461741449969851812509322006182628428680480599279360075018911416485448734468640887161892668405654074216835876293147607338571857578574511106785164047970180683773106573636215741345143082490077814880486067106116493877045547428632414672273741075561246301884434535483727984160643028737135719396783234676393409792844551251680512573265704830607377130225764155474271151486505727000190289699074227101763354969896879380963942740011626941469996789251778426974457798080539180294781306173821039799174843056241715071764198001426278335776416287562866056591809842717503390317328043624165574217596502356155644908685555260278191164486001546120491931071517828729957901641341175830809794720502990408018713869229037621848992403852655089567114877416798938384521002116520138248336980502617594678788637838210818964336363884826629794985960834976098212988407572399158385540649654913327380061084255227176099514117691072880096362661722616110131597584788817856122787760093649771194081405138297249766031720732791306624088845404493401326586808118898856866817503075710997089699935793240546206892727555232249510019550694920649970870800189054481342484037033300929100884793156551141146752099879913084042143446075857909221646343007861629916099100198464268031076181393196034376140032754128093906997605397316351235620138443639645912206225186114372155752710701028468315966876294741361342775735716583763015605761051948142121119678704114716324353114476023864357599014673860104105589814397334216983060916600755554132500588719436319953927399948134580044004345104202521992505817814050749732564902939974366528189027242409150769897131488637171155734015592713039415571283009545569441666569396081231543494334199660626705003410974786324377509730251521719927422952772665731127749221372670545664158503824447467244753556396606404232602106077201117817232395003928145081159689210357209713396626920405697243280304113107683981520908570529508012281788690361184943417552775339969945199546428507867041918150708108544812804755753238329459737993700067903535806102186201308822072548918406039633189832262082400482870973547905738631412223849183489365043483297850785967092916625563420961710505227173727795492457017204284486491543466828302355697334624755089560368085816512884239186379508756694776568042943070701572591910744861892848218803824601010931612731336565545527955068609918043857999067041437417675283400000449191555315622747897548990341252771284237741951222719511644191254871813946210421146085007935504211392749090163313343299873251246525962337849716610718881146394110595885132969132811305709388191049109092465352266083322211996215160807523873171099333211715950115169170189647112080652951745376209613713333425326829165124409724884319685330689341573215315970408097655555708670789553123283192197295285652477412632427174654578727475678033597772721141918131778743976798029421639982250448340071492780862734122443342530108301311508308808448637438758854453240668363967553474942613551769362132369940263664397302612575266575799420253665523278274646302164716307607345813995556142718785015556791267273554602459254295331089414553186658045247192793060695058994042518485345791782318511532976481629158857478819431204332910884884485137405167244284324379564392332339445067285280539025179047809961581971072196667918963001082809551573979585853799280606083153114042881189074981940444801749297591995206251809429699771597676151066257135223452300370743519457030396377121743415889116385583881459293711263518589697503496887068462630198535808646067974425434105501445116620151456938977074324779810789687392829987938394121622093663426937135134376446613077188824525491819785464653328990625807040901747693865001219193632609356230176235656743319697992939164031978202377507502747114206000616507578730268067169501429726262392922220934031373433471026188484849504099905526025139821378787068187133200601221923769587195048696138206567251395091610526373819928934881424899027210920763370076036563469484673533349554510083865702688231797705231947593398896901149353209658856964691941720610376059715761947858384292311218408710243930266422070851289795276724070703844723621360635813969972653476306492560099880118715780634004180321299681857323732092134531407668520429561740331681666245998533589744705814801148954996749331078405550944852784554311809292292651897487636981103831505353731997385555549213707885107962894390888361663451562507811531256224701738365682448752009970735196173638778659916085940136213269738890812866142436991032477430985526375324869707174844781837566914886883928756083975289625788541654329349023970861519969120883365031403536157144249584627350779314704177876669402885453638766151332115186558882732236691019885336880539935409267383673616073495224991075602171468727504559395822973170351649484667436024351978606554575401995084599966540794484165901430267091893142355386795644383219702747417157188121319694143463418943618248094001086721482657179682663186082270755864349935522368836216733854797268727662658959329861575845155256261606548836841992462422861697937397733711856409659599239535975132163791105210895538832114566167504914076093702989448262622103321364651682543634378831499383190480810535425257109828414215867522667479712937694191993768976715785490246758232014183536843794572159352252763673348282510787361680632056563878429623078097889792095483821242188594161939697431100281077150363918772857776185076229420945417897179280749706175863635180778896916533773173725189014848349261974113342715716847390399515991126251682792444679126424001520277487166351345111998878340127532142867136880902395829231401879739921663615744804775570484926845118083132820871187938584643030371972999280327888545540531237266580534609950667886954516993687411632036923480281805356986248501293709883739337780457023076083061870430350048519692488101238006343411778804886214801544049369460447056099586084508514195646402361592628435575647667542442872761939615286841793873057571096063674128201175660921133667388609520701044381184943175840238812942494201013126600506509481958500796034610750636313889798928224427079235479466341654755916682517056246241562603508627441586939325902346860726856148619332099505051053971746894028784645250781149040810529765283097330665923886661012610770302872845739015649663513994538454383303126291110678243482603729106870827401402297128857752107723432662343633070124185666086022584658546091706686805143767769692128217811543992571157834268164760328717893866544019442075493897993765510698323116011964976027645021847587157260463831987197578822693711417532518762211866014350285406573133980607121940318550312483270957196692911487128050870490066523181452988754783853998317494388658894303272386548002939057791099641966255538687397758002102620038028507500809299077395997844671263435998828614483757412022685996244218806531158256528486871802953594258377025272952288139182812059066570934209093040751029653796581230004112935763919576460760270401695232118898907135198671799615222160601597672374592738298985050300097416158186746124917359503228632677973232174807295053071243436675146073827583481703695216845139451230647461015006737522456714425855241863927847061977277581072038623879815063658684204791430346390886011150955228815909224593830762039659692019873737071739824964034700578837966342196076464991369105959400402043565069826280755372873703273427045359926484839277190136650980210991393035517962971577653219287655050008879170329099428486922542536219561229681839423079818732937823366606582810393460347442140526380428192549468789087363307118909515250364542305007794439559105126589446305399301838073484583832916537206954320102219245327067520071760112554925875354373760001904470939129080918219455306453089549981521128154982617625852141652681220809867034412324004891306679720599806593049780152962737763003342636346833126739934880220449140164490387185146474520358498654379792717563923337993730310401175632957363459752287081917714108785906028358702808043021093361444368603404108340438365029016205031759131342340889537275387829990879986749718994055258074669286065952091109837994947960324716406031677904242484694037623142189396873804422939182103517536220899729330928058132553762668236897187518762961082647178351020677425241519307274828675391013745966836848925446364385006657565585796888018628489882657249562405985821025408928763806961268434490399957623319727530587266328956197926260227804470106236966753588429995261613617479868620709058666090683063021616101607660631782213199959539131347130877309411848042551919969516682032846315041089594340952459532762702556595444412244197756361218599610212712785272523969389227796488321633085216939189270013123746769341888399556720506281991578453336394479709878770421098679033258214311450805282550835512986095262132577277420510207574618084387267361321435615752299265044625597382998680914347341543204184131175384329178225924885257754345247775421206040560758337025901449278759940736833498837722292034255607426316074621726679427593152400175797819261251753769053518362027791501093543740730929058213508886788574031882780807720783011281951140691700062123578199986688569688195895640489789604164522738530122126853503742238589589584891427089869531342288361859264308340085108121038772210833497988976798143158840376673161503816924425056340392185775028138823951852571585157054326179680444629899976293157473893089672233279985656651700640691483218528845107909477111263028127351975928477012342773414870643607435795133998080414319555857809338132269020438495979825977731256899709549267909789980043202159084358451089770432695980945880892994543690198757849522544870003727969506134640993565813542789086521260078750967209462632937789371687383637437340191432482274878029809512119207891732093995182409792743934958462819531438121225467953408852501418562937193825729779193587612182835262273434848926201176507542064724640944695703999973768845992425287765920630080431882676377240624691297997953996421173743279645183448830991069716679939442104134719651871984284905511272164710409330074890425058382426445362353340833080143871834006133814945402206975594522192027147068743543336539065040036953529267793072286125783556920645964229621542778070989252360126442015522869301617693842949971781711702603325506393978976217602299700795796948241311612563599213793347669864781754934547801689805650632612912622231486222278281906675675224496672081189050345065108658084148539801216526939366600474994197535424334585835532143915345974072710035718810097653590387823728581400726307074142006872061283142777504704172911984021125396694499963910820123515053142381412123857687236122259892522121519758261663056383269606100590629599561279347212467338386556275858700977472998639001891296826414541179352961216814862794419505085083710283757763180869956201828878257262387560420987342938275707922075672869679130795561800780544023609060122869331004921559798516474044015254729847301869361141867708801292135268720371604217259117376150790373118648655270680265693730769989240112543351549472084952684419632933942026759936560071140596565236583365759512498713405444171668961062325870540170760355188955972267851054384472417460900924088239859856716232111637314218331229822939414730504894203542744794092032623452277200528999957336610991848281937495489510601984988295246830041546552665098498646029315579934148886641328623398430028591815630353299618737627657945564338652539006051956162239888932049435145415277944618478727222494576900427607013578193343265346750532033856523495052346092739921061464250660448022063414506329489337166148243707962568228504100195923515748154218471168448239255817444714419229471415523584516229931484523949021515198235400306741086582138939062953492413421714522642756361191778937303043290630419494445456445054935090823632931840102756934409365122816010261985018308736015383235311584083553895105169420793065002060334747178700812761289171954420685977685661681383236378151968804116827477396414535155428110722706869035362050192543024307134281964201874847036884562648288427325314034438090057080415693242394944446817526385267832830553019218103417241532772297724711210701047282027270556769283195176238731915982980165170894211837663080632741429636735478701494638616159278104296379163899192253882916194930343524298501280940822751471385223468103031469854511826148886108506236827485743245818387590206372339227958792114296745772011401897634994721017938234361345557721263782568815699932537772161279109980103611150009597252715069074841857517079503826521984579070639464960904555401681395259817264953718164009225029143331269978729320963521539988816514988347636568506647432149793969099228634019552419054762100895030389083080135513318977909020365241957544906596862188157795036674795042476595693225452572233923256742006206179071140864528686494018831335657205328560706480148042706303007527482055234840128100410218085295165718907427802710004049799874116941963939391395022425582853163144928460757466275469900878673439004429852207248631415296102775629294880319268082300860009121284705011950847827918945973096258334319082734259126856248963026688263636228676360257116425583611243244265781048235059796099553365649048444294388087546963343108471164699604071732434462424399655991343157689597400559782246548887525307828182954380609716877960088730605733717869149504977420561095022501908666428180250778762589147036766726767682829210239057564251921872747495372500677924038104680389243809465618417897120121034184532891654717077950601850517795565143779280201462779455358310015510885579237941883341319772989381621896347489588048021932420699018236178172051434885242203013279102986879672773756494166772756702505124191804956588957408582604595891335226981887041598849841438756954927171606158239745274020536680154607933720799903270423471810605765440459076768188174235020774193970257832963503095125226705119944912913636541415554925664109998927698282547244417372135860130936152583517580627180098895737314184160272361452653584807587711199021930282258356939063049601001217069275127168472372609903419666472229769717824605559311892577010669808252385362468008911540522733357779600166717420480274384470375492155843251788109971604033273966014636258337622839372951561811962701012782216403834886371982335786658453212809219693796950546572866287290413352441505074919126748760382234018593428456871166859468352593244496343219177975566794546714733825639205591165151998473942821736985420400922843281098999149250637157353175590033974198053353002333359626257165345271360795030845227747638916972507131491662828571978636224644459278772844122920776053796179848281416644733200880341726963846160852130871623730501249148928645710693387739359927202101914978686351286492591514658251756538508358631252179454102427117591603039666764704439742903026764391639260595727012335349282327616447531945191540373656138092682518531985300817719587905328978092361590242030675515171947964423811872979307729347301797705980966706123412261586411818809106102530427793291094049423555491074344464661912943737309591754572356434171531324865395456095533642691930891539540774601648996547579355200584626863714963572534077332637182661856143822503291738402165371415448259444897893110808583439933153733076447559202496684627996843658818592935434652881438743077327720245989058263269917224731389580014363703579216954308442908128380837237801898830959635628827783555541730976809015332215022375396709216489143583246685154206713787531415977621284641256110708894220678761911714637821463785942819934657637658097890886294470701759376615963364168077587232115089624569054613259294831928094318054239643723777144447596505123351943851301176245002174832845211621363382104691335094780287775471588553832141694242612555440049806252821782916428705735768856187609117818912304547032597121939739394242969546545198190160225375138939339103805580613558826619685110725897390454834976936359768261864682687469127541789399009631586379398085616747810911883814759508086349465799471265111439884548727309258407179618397101143694509596180157242756495084177249682909304357898138158933471216071892146174462021290773895529347426986115390405032446785528399283318281687277131490424780194926483603799193171782231464249432658990130603533036006594848170666279309834624209413162487661898467314027114324567339547073243421976049677067715881217845265309301256702221002705930697959040384223960580161551544164567097441109028869352294917838040741582500538173802523509013915794849593288366241780292323984581879428847259862910766778545310313519654651359641519355166683288777293575206513545127020580022250072631399884262839941059358348131380238730238913369175302288718895544239284861988550260778823086083691483428892396745713449132446252646047095638808783908016361425433073043869313957074716282794352223653154317470369840233378210945226984930525941900774637038790145186637240213205730566870257873464630857225281157077157762455616610829855910694870608002537735036900253684282499437030307219766440685666467735222906949357011688385475259488739107109408650602109102544125980259127829122455332487083866118499136576645744196813236459882545395633210329024605336587487550806891174468668996498862500372938800415407654628393285534561023952713430410104500964986087845212964296444504755801496832590215843564125015074509174845575295044668119635163294789085047173210785731732725442961404948903003945623924852321967831933480786437616191909912068309690743709018624089107317989578720105816067848201263920548351691434499900138410404914709649960091832953542711500203189718940199776196272150398886438787814194598908439909071916602885627401601526313763583688214733550303734116622181454297728216102646940181795633583144014952726401062730220337101961644033792216632951323465394051337700828676000804115677238149799250360201032039473985695881481866266145302565023929239505693382490409298235865981631643950038582192257118378007066573051480008761928352492630492960739682098442565521967517943993427405700194180142930117704329483178255876365428720237956717131819280566117874036219072473200763263023699213135670503842144826633753143211566644520719634924340125959712553788239294160700214829347227212524701564782531336777713049951113076518069911207078679653309129469016266826153021748001094923706338394574534095981626335790425218675877513838905001715406738198761917360554088568569520289214495412553547196088336497510532970220557969226887072153942628230881301610800919527203416528100141078392739592930146555713910934569023311596973098296091784183301590422646361424954784332924266328224727614410877546591375042489506377608987770318549807143923597202865736101868468879213999050514374181767013016401046331457065002574342249845179012000941587494022157178178264683975767860206220474891105123085461797102809458615127722127832716461192051839406145348754575741515640498314747636215157766549583433877101847362252601883337895377062900791078964254959734922049433098253172682004921340052915177811738952534037255363072910297290546960047799606212727715710283159930679664050026566484059431423509092321216297211030055413332865312428402352851030210240134657407323052858617268217603853656745008130186313597033027447005555011865727751057859295490067599179050162703823594429037311457286239830526376160735434290202115703247306492104287975010955923788315512702509337672577581895415476084367785133097694532305936615662349377808872930199953429329829394120928938234688471711662299945916602268554386884236808815181206007473526855083380468477099788098173360714758946447071063844137552963393937011691868463220985332783355937061816054902299095048588174378549122903994032765677167085278467813446410480592480827467174985780334250047838553060909531874123605290325823207645080567115307052242366048571408645846845672026702676978546758960928425684866299645842125864434622284727547594250010723042445419595125286136013006801838732408558123074707078544422874522577968265092156706782259888484013408187090375534405265446583090739078301368391571040266995769167306461622349181605942678844345326395595686862907493318886943073629575471176779103970269082171052123349957118499737412278262053378303667178055939677669214106280223578720598924251217135002864313309460903144776623922573830641552124576534875381731526807807535985928994400186394395119486589059258709188709748284260194027388375819603110994886121454122267203872641264484758153190294874765617248990365550114527783550908586998554090401757039538650976438164102419384321431072908158818686235846063609002859755122513287049813658524086762775912217705211284534906508975778320075187493658082071586415248187090388196427730973571599290623239634461623750814267917903365148247865001476424219277989947397972575389670649274628090615242200469482259798408739637445084880711936827990036017159738574184903877210209184904875343408848583343052942344887257068047569381176577252580929736794132678110995297697127376799792432182055915360099167517528215648688042394825011247758330990900970785302793728024091631809391144701494460810005825739863037112141979638362119794707661221573674302011492405136894083318592307873823220558520905704967793459471813306075924790745366272167543953265632946336331573272716904666091946976976561923808253525635542386171400196730614590740751937462236014939155720364696443682985108162243912258346871017770800331419539636359354709493834628692340622029086620615362704568675167150915583858032241253867902226694846878963637100685234950159932921018173664828578449231639786186294558766681105204734038617659553802764250210976042720658730545572593424313759370882666155860945933385833305297960430882005860282655737116333240606590251048911753170757669006300960992064379000357146933683122534407580987648319568980636310136060068871544617113172082600684198291733799348102949763158762462768973433225344343780967700445581457796844709179058875985217563861772173944893822471450517764857240874602195549162200322505921460904910325749198635174370731599781935354583442501553181144856304758701095561953327138633764726403248151427064693127203328978999909710834989327225764143164492996281455429296936606818070342658531212577217397556727437785039236890091294243349504186892550297197702469465840679991224062201874044897718008343223032308050939073650954136263588879494950689990228709174619370862137239279280471633937165233209966210628600923075512236702318197693066524308044947583267934893181399642798296233516799575016049319841131491339321590594122158997804163228784408860523158334485026925467634677856114810066802158510800705223414812503555553671719784542847006494855810530945513683888594763122930377080934151736290396324416202757721887549233772128194217226267334632737177200886668141688100381672795122400433120839853173677414437830698608503889184099491465993599927626423484469195841987993776325236357343695992841153957036993853812605781852488392599424420593999406936958835088916698609791134828151295085670220552710594844021580406693554833562618355671484238447161904375815419572486622996543862365863199773149764058989458537496425175653605640430273742092644803866219019016637797060767930848370773764127796746208997720541219571248930876450615995802703128358166348232498335822932777496593988502401262162764135474712066969247345151184883206114382427047715221437782342064650429499760161611225734392887190297098559643718497276873941468094772864600323144218238095589817690126184854294156796222296992995947000750719388579689198904070192000554972381791406941694693808290777070222921568418283073485360695279783729402578894307360074917280130151711232114415988377116486783551030428644246568057939606622925768392048325332210565676724236621066377167812882507273713493583059944811243126162279948702035270329153142744961969801157657712414247710016743762632919635736167900539703862273398275128096693623355437326447780515804932462970382243485208956660822417366561802998091058403613908587678670332760296648043680115549799566533150251535621444324445002996040606913667559734244680132247522060264793423372431786905104340643946443880388982135065871360110230672397732638091657972438688800329586729285063939296915794252761819513493032491554733247526493933823727346444869879898772240175903450879402693176020436452192480374603189153357401806449814241881482395510441552426644414511012923291812490502408785386614272282751328978990570266932343729448614573799611397437680688736716260307499172150989456356722718845338396456902982508267650968220945849799382504149999934927949052108824207940528334371741397491934691886437506957611005122375761448088156479211830134784708789108568993829404828161062174796641833114105608729119882826954319154986629108886850770265900847897509864979567875632471483029512832842498427614233442551130661963356661737473902536900044076715783030944487376465337769994518821932545994854153872859547455479197384095945108710915725592240602511821502502494188215216965978437390348693448733492355079463782726500017540262948259268154661616011812157520040865292929778774790882679738045965748559564193960685658652955007094443602320816671886170190940615317639945571126587284657241987000490298027061413662059470010625978788951369888561023121378759583366555952995236268592965164259217806469003328950196342003800673227470255349272012969482593389063655443373140924575855881576639300181748505887892512255050986340334290726499578889750147472233794157411587475761191160938118494639016137493277423531246743825646342344005357763005351361233089904914970245906844573737611333728626701534768203069061925985785954443672294118651039449033665314981982085821419015846226697055232733375790266267453895424235137058760771366383831823036879216681226849369599558464080252951377588114543604065315664211362587216262487188306743113142383520620412084089272440337300883084090900816369138407160215402782224311514820232486582546096283566073014275205870374403036320411529716256225762342438846590756559186163754688185216275854463977503699907848279965711590287555973282445422769165734303344491089422975795328032349128044764710792750805076884464780016144014062464104008079122677682147637162476194889879151019302536731373640545861055402232308819791638162564983168060120476046812328714414482686959067346173324186600170695972318475863520948143767168630220989004108754273242596000324077817467644638982579043664811459184142213961750857687272106076383197932770642285792116549781837268759503077271301531584713911285640152858569808399502080513250075654521025805066704632067920498809314681983358070893967831691429253643898894819567407063282519688698144075702074047679977739236349394889010888191610241019828985570999053962634134342771378052482033597532244537388838382290060855088819318468144323968383700207701033027180189598746883545748172865579116149161762706805358149922725289186421772677372594455208152222105227393914771274379724606341610709928545661592666887625331928052173624067376195296702654921883374291516214785484877572701665598102221204897706842308332839565028136942152441483083335801957236733456314650746071310221626102860150944476374007363995754751428384585146652465181777213961571166530926085010268577020400443928409300499727169381637956986953888983620634571461195990068369521127898952118204786001284509938508329551682745992940150884853887923323748733749349938179744271060405192624699894885581265403460824897404909869857104570203613994902045336819371245099113123195880537987733929254572831667627551062461072474206712687149507260314666365024727152715906948665574847101384301984093673458935191952726346542106550918878086633668803032846797319226355754747461585845608163764755822045006630425540042013577945268474588923563122024583458916334979702653426607474252539677749441863500182656207570162410185218458703659799607007677272129191068261906103813243160812028782649818362420745201151287804732616971098057779283624504746291483336520780449585877675968889224889651735683161556705026722284110318127130297534119061494433439754036096342003987359006022321206847762728692691913469554364599331598435734981813156689674042477855578515709795300187273311400422891080544687268725365698483727990146784946188543659674148227592722813167320724307403896678790008814408172129520206569378008376670714902769516933507187209003011559038315944514939165909428293222699744118193370737077721528328649364104133184640916608734079700173005972451312523888847288430027000532412667177927781105834618900360010269242684821690294577748401757986115321637050526095539392615214973420788424945147895089976550525822535355400378199819511664240157622781050269497617621731486617582789352927055119008745909400519882944743471747314643894925470991857293734116753874061968922676731676017544454202143679972573030906735285848036730373824011433327158399076108457631389332618121503029441192755285371862177591014914734935679367520614320232176021296769061363882445073550273720511262286627206249544383370798353945381894928472604135244607975236131412809130130677090760352213373135592326440662525797834789757227973232520762160531744797139775121081238874175350791889297911468488668513162094514324948208294836884961961062826003667314320202094371311736777591845339602660247207405572338442882445681043385974388646199037141217015509407850802399615069439759641417297012163118291131587431598946390017478052750000781467467314704701776166585344283623378960933970779879142401845754475566898812987975614635777677257744036684375896028298437350148403006387957501431058616572583597504712197558452334770062231123122515406099728983356909933662947107144782335998915946034364530932792971333621751688583173351005316057727462614712396016722692964825634938418444176137995838352172140462242180450871223424844344274615328347604957067310340959923751132901764512156762647809179825046418447134283552486983293945431104847260946568490112940200386848770855393552579209886944923388732041206725419520386017153124158788954866052093184850710276549474694609548051128662467727778797727307523267390117881464761916548738220813889209086012039624642661077859686143094865287611192917770946717418785990081191560674696916304254002174367129266260837883035072249882046006715827705954849789361004292211199394822410660646727252197563155883637091930662696040176896664974333722741891449381942122800552133004254542407190630613333555804924416613178960109537230298831795904573098238931601469170792539269093769376338779264356125229076696759750820128557864747369109706375960974520833242592751200769394645399175624524259261607058388986643593684705928830378176530454729542499148071500237914505233194957257667441667935263471427580434415539065074260488021561010482995329286246706787202596557814152098669874183053102555618525647454868450208040366143430021778776051619899196576099205263913819594183949971671743502176423998156608009867413564617154101238279514925689771878166056096243550719575536092764844856384140792209647305343428606614873193781496290004695655121754833505892085888569560561376598279440485867793354977275873329289762690334135107624518976197694318217972908143183556232255883397843340875166404174557446772307439672113380398822486202654981995982682006712845091189277174519070882950060112195620559077667409010635979633110830114891972856245114370474867015284963256365088465211059879432131121671959341991427287875949722100803465416626970231955367606210943611087963395482066229598400826317223466063178195309560381490915329850693568057571559660741079797214820316244964464146136849091920161688583783254059495296519535631007185065700170668956501183444361997716581001165974853425675388362285350678226355219221791252192376678483758998127201834140707535701365480053381090566408788588147892924502275382936519164710084555523117059330495039875193313596948263353511536085091195012319853653000791402444361852059991709748650253462827245128782041077910330877094102396351513300593771572654339139019514626916795082462207528501957439124759560514735809738186456535192063057372509741673218557915553609850407012583692542581709850074243143461080125556648743006247226358378371701369879859241596045574988353693180655619059845734313422861916676376769242488847090140741044826157814635311849490740517894471619750461669858547257390214842163753159570421995594270249111051243703684531997408612635885458970445052623327381799892913723748022986648335442221874643302609963465645954533911312930129348630428809299645015468146232657059023628728073757805396646225211739381571094129632817499542702506778448492297212194708523520162714950104782099633417801410172270035113061074827893008318141327619322356260394547865172749965542393236061085946911159500135019683407187176875704171340821938421506767242711802208863370882318050937359128325088530360841830921580460997328581592883738630416531154197601581386396951634899352725727128857880158724680237116022577128353813114832330377012772006612850497649166020212139795588367505640052423951638105352178541585636804579751806039718296458379678355773153604157237619225844518712495394840413379197570510628739393278949590927444898424416976676314577538894102574992245973162647292408757588105319797859488607947846651958262348187480662500653565352215580901967301651798918474459494036881719754514916965152698468861175069625990311556884179508558184594605964259430678535404231494702095290307781533079053949471504275217769618993001797894837020728215129840407026732198917953265576926446355658805822295181815156187272683494295675216370588104471278111191981836862301110915017071164520566900173687853929327104658491846221612333364963435813763686494338359844131300288786542072824753524569536450013236794560043257994974970723568904236537376620774704173115685130212788705879958058505159149654189663027615566925848061451133328485144861600437338126559924732343649160928916633653194041361723625320878218747148351629935840563997249118795906625802250793029534013387158610150813572379781887899987593421946735914273148626339576994369883082203731029456687911560718805736144703088426713665723690935070185127105387283506311021891464285512994842146803716601580153248613582137124161880466686687702469324701928733858507117154733002568548674832347816750146145866399152830578188055026899187460765443213976016756127732982761690996342679794916643121897555819019337732043243454261224646496406344322110175953937656109597558822287459040175522851255780672463636009040440341028436454415072500653537619637310476693354379913971896192384314541761366382965952119846011557568240560726534784372150302676402397677849810843842693488957179348490447254672137542290535364099218162926546259592853426798211405583618117472134869803803590575358576809917289014245676526284861969015828676924310840705894847018369376707385625284768544282039619278190311574358455033166594169950183295845062492795030307262282364128499071938481778123813039864778038423638161309043004096519978531334863854080747660857471584268593974608239166580554431245949263690413143821379301905596220626780841642596932327911203340719843524790659142051832139621810709212398822333050106611572867603945810045013614339319848234410741968926449617658245863733777585638127965137196794949728884108040054981403814701559001063652774021463095815151761359741229439354906663721216563042960763909753020972058793163402795665236698948369890734191661607901021996460889244372217226744597194799501528733293759750746797878308669187853304672430516183453806902836035846000190233075519288191030675709861280412507970368689764326816465387873553948651210642871586847270085376634266720638193506799104954550054067796903884306396052355776018946960027463716389572737308807280818158437216966421579080075390612070487851424348802937262199364228960737257538319165842078560424696711695442352328222489639877893580832424716849400514600520421084515005668613144283746707671245489000736060286197826936128530563236781649337542101772126050609895879987567339932994362231614844182533492248647797360510704790971945223785041253298476390663637766087413402498603862949852115261925321820206872019194818161008629953921696273611976347904064877426949387868714574941069082261181277773343206495322693858303151913825417205739761474952954992864657221408988977248436200763461726652887337188956653755316629571805928139869986308295572769384398748065631450834656781615805263424617837664809563205273931171600385381493979764934278926877549668718190194025577199335641633010075339946236019754560473329001797204161724931139619506014557238650081004688761587146727232714408905292040451814537954850326966387879096520311035874607193112437821635167564565609227879752011466480480700526633921349625947949977448961154069819957011519946655212228096285839650835338857711266934748665165655222012729182576731718079059838934844832922582974049888591975558936123969355493509740826595969737590366684425074619587400452247153797645984045218031632368470951398611038362894780445465436260149227532815288869670164269937337600858366744605293127124015907838129269843339669242007158909743589283614369685690366652442243259718615058919857004501086539687519405576973021305859505483839366192161229102562287321152854443379569785793433670301593683567656147702279060671971197024813002489248620883282628999465210209201545052842393218287370896760767859754759587249506219217517813216520472082943414584606084483324862484475050807330965288802306824096002377593623479743708180662897079992807051599560063160381567242828094614406014205397014576086481192842505335616762474342459302302589470120079028331849917845585887196494427909514212818966877392731422427873884500432779452941287432679556103207554456211103223246664569338808991665908366514473145567747219085529221942255576092796301475247982271220748968964336851842915586582964683473309737012817702596260924686211414890244059447926422164804636153163832272861936544940934929768903343227559230750726496651769650722885088922156590449858980835633549463242825165769950939025045865184102782944693447319121152023001839220958079396817506431714681149621362985397441377748023793436127283132386156557789042708157188769907104294992334797880228565691398437984652291126504130008212929240763729782814831357767763341558779466670049571262631795856164387713021363996689934243632594981112526691852770756033473686748277052338102142377906390638871681459535483050188544040008063221208019735935993758448897980260837984602141851131735988613376257038222765531849568761739813143456116800564946028360648583730573081108929726618907656646271016921423711281772635337702969591115405719585849157041612856326912086847999768479649696186889359160124927690898901812350455143678350424829064461838119861572693518262778853596032690400560473128957013910782960835120420038302920575622162170533132006761075498176146018992929038539153874520975153143751588953223321504199577903706990704330657662716348343923336019574612368175281436270377543027669049438337774021295569011233599590604133628599915445911881303010812321639400390752285979850124070255279468140231595907980084838191374495260329649550642532586457686263275819561468891772195052906779425262744906387619566831533017011193513183651155035903621400988848565771392390113873142446220282531062167244746502131873966108661163275480924611101659569884980202969416241449469107467940429973143154679025950997389031155017413332001007556972672387381178044293781405963263784090621555054580552138901569487591242725760923716537285457413250097377189621432782537742653431016615169439886274314310599667927467397059492197950366992591348184335282890596732618375493480987783127335594977873137054208328418628730775079652643387422866367131767865282865256659463126106548728466702960444356684051771272440748691352740236509517665480683521911312077046708113247495422761825639827755274249832679839496457086093030344451086793697175595417866848702219575952348829159609752196302436164658626586866141883374607138407287500797392595442209297338578398022563511973654042283946104163789409642379373598407799286475525544909206608331738920693225124285097559624716587916366915102357820856951652093538135323161420401869848193363001563145548938504401666122111110608880428687841053147272209506564271734278593916946834815374498659773660833992096400670704095382879061370896245150254923809769890183982743944389586970673251631518599863172027703405581463058613294623169902422771155277597741445148991464126184545981944336798396907440888442011108239100061245398138502698130664988638758543085709008488905838718522964795225958109658638535288929576485921731936817633692281668037189459604270175573499199303377693997964119808330719886906710490539539627006711019183662139142115464527630605504797625420422495786620509221796970437309442647440430044520411446817583072050858990806733425585196000864652657838770721457459944507215574699622821664824083362222279752778314238835838467369232106780301794734710280584603996923295552354820516828682693611206005061674669327922511279307200406571095819355155194975661430766233022727973519669176705100369987050657081696297476589606113169061311579879044877771624808135879151310060303923761131865380708678384004497391583213670543275702150265850764388687713486406240318895790772662447584902226866292154363525739500394580830973367029109925646816825765895444354842268417817012951493665171800154173334772503757896165747737069725639472140012250478946449253505464965450690185381180810694616050616548545481715622093625916799309911911351575400134885328592170286935456674020725802949563259012323485068512524278319484371491242571727544281464084250238018099246822135876337631830744732253717597600662770519374353595294491084543989874298021963869965436338428741663245055286457154908360907123219607925477049352252594762304443332347928874923026881977309094283658514864459278646919419460578283622711883711115803319316980610692747495618181382415399837310322923348991721241576297857543421679776388285370460743656136110819664020345057126957749220942363933489911498224700429313761740958634772494855896330980761294607554507516930632806836081187094019567599567920547031148572536935162525114428830513077472670176101190279818063922774265947515468419965487406381302062739486889300004902282605636410450820049656846431938235841795026231953819866366687600776412148374828594015270366559635510321801974884994164624577371132366166035746127725068075772679369563938394391256193321962233448237602484669762606942211783337996745293631155912319034805161775532005564956402999706751316179548789423443600485285357588079791930597743871969359940167997757921890898180749394352002388865812403478468569763531773391366367744274147563382973235489269808753375741173777362085347687253527176021370436246649110207959481073307475437205775073554139592091191090316721018741631479498656547157032586568107867836964356384921479816181934102298161567961558795199181850133954050223360273355231463887982275885889694800017124774173570024787795232542363581900320930108576787148923740055944880006665240132006311880256979580309727072054928983414559709462751307193979885797505619718270228363525404511750860762621499852163725305772183657160140853997485151510016091731844161826978149972091021302538197862895340360447950438198782790767237184047561924704273353386010964096553484500088664408448896739851929563258706028647059039964185273939410353815069561312861660003779905969972573761118596743842111098425807262656436970873879517667062070016514578160224445954915157936873626244781217539756314136665725860611305907623343968584731943952683635949294988998302532022953665028700221701261102429325677560091502399234879835629571083174993193676378618489967179168606176200774716987072007685551155951513381919798225292018105114742543390102881233766131260993930332008078810998151364773776637172301898226047301351927694085535497271456105315910584365090309135757067192120594984256130680288904949082230992389354873871805767259708622021488532325985527358729330196149360502593159455142660702497796241582854566512890946104426674514519437479997438688396165316984360006466537023135544843388877246078834196491532911503290237870388436781032323325126789199624205904153720673343067016587686056972075617354765729461357186255372396812719026648954525589403164250826671912122532508189304280640235008426739813040833915893506982746517062301611607230584251043822888237427153128365130458370726941261925305559794485778216199034576921503579109746948367778912428948151032296143622004860643421310015609824817619243382487650567069808065494765113830998003380221945509729726733985379255645149160875530252461703871288138069991887566447125210893122580797868154954760821937351895392394702874460048110454353093810398706943696672670519170493730419048341234428348087530491638084873444143308868346169213812719982564795735646315482307160478344963656897598643697566344881760180905988055736231241731145781138281146914441403117849726278341850482005566400678985993079371405506491495396972036478602458129482384739529363194559599163647172195408761056010489704602157324121031490266903178088720449662341424599057541060053567902400911214039831065038698562319208516219973039416258321205784653032253164459285847838403986563136932394709497902092951858935852770553610145269233129469478167244815368241597974607974049404107043779273396037353882372042419965509261614884550758494733552397155190411545617343864784558895579027529450660777055368613679233487699258079045794218873291550454245124685652566929846487761250956868339440378449221352048742069152412091955095082304787187809214943713900649742362403557439430826203669605765121801939492909874931838272543160912456333576436681463288901438011269116800074522712788008646572062400641889595133269802930896566129049275366739498653511952112684464492769149449182042806319455218659163544818678102235867546550790674374713499796366506741337166731889382620992639208693539075208019713810636605284890408488106384470057744605341527561773779496531287534504304822788189755515280724330618680408416014257499622088503552665460633789636370250681198936120456479765918800311777366419806245487189596984930706493408508841952828038237864485330856391383378853701009951146255972008935584463637777747512042094120146363877970418126500341838411515462756382469126343142128055411235493296724830877352474527642112545378330399609110730398170261156800635143594427029374345527657105834020014300317273821271541153701575203819202703685937193127305133766755367478706440486793940970641276394566199476875136578002071816413841373206702637964456810749576835791429207061822382436475341960028498713150402504410202228178813572300881740626882897778593252008914404991899046418108378577127947741808711207757918744876274347810460426802429812912768280873268598608908569835848258316427345859219313601680704424940423147502718701682548058699160811370553471467368453630779602815233286376309377801871173101755803981883330547469369401480904588082641743300539482555173316490141291322661869781845361130938363967013034822329950790506743711512685968139895180357900979562938466671973686632912111909165577116720576692085801203321985636887287923343519811677219148017535269880262568776550411887946151456541232970514418162912834004533243985356444353560887816935238609037151843931147763340761140523847316601780886637765162336269339241359948650534916313679180828622072378027379541397212745387515638721858687970112161236512969706325928019442025505774712376616604372470799022886464256142856123646984952760233296647682420309704832569513570654672695787614596368747036650998007036238596714644252789693178297205628843269030202023656463809272105901468810894014352513227098871105776904342435457734712694933991668768635934569173171257826444746065879238077554652184627966147440862207026683239989838911826528309250911354990255282528050680960177754281336428839207802816220582160501147654282655388626432518251249300262016008491556125351539030981273939159699588984257469682707311538476298419142639953511789612793886021485568697741848955938211124292530886120818278586165850194330452070636085752295943443345259476984572982971344219882548177969283415054494087038252556504182157705279259919873959368890162230864739499886770074362205226234825622118834613531734130045043552289652870756449547594791322335686491369438680665262831606370951282749920467344786820508024463973024549057217670466342873168711388829680780663973191669197205284967362346474808538895899355550987599455219451069138924676097230056183529452414459809540257774227477346247650725372673113344219825904322564143405709445451137169535423711648052459790541481711019941710939915002852079078019218536130239009260092438313319856398657043218992550496791021137969565058527566371061240159189687564479644526129545945488360366685749315660812205858996366839930957459615045174576622331016795910394983432649474292244809455554953855079457610099517943417530159405433477839529193347183621231981336600187228596427053241128572433532021646512325174226514629495121805182241493517474170948285924427121105620579082044072497248420368862297751741655091856226972141770204038454748313646602900789760566092770555784466398503225338581025185682533708482675484075345867489279756813267242315453365097908837748710055192021773013159175802379274770527501815563313909359253350153093538704786412858955962935374487675681219439125531797796625324151451731038191749163870500533129976030446385526802027767358951326191767634225343896258564157020711231108483058996422026130644631382786297214437747443349947043146915300774104050940721454221693182506720758262652547785976327604669679202783005174436338818538140145812301907910269126241728687282568165552097856958941941567309804789751251305255487447360680231929368552100406237659053223354048437913874298756718593968269712304955817975213896399649046276553829427485618764570747562093716362142224638502168452811063708293247596123576285456070944065630690096025344963337799074889058941227137626422350029285341537686568356965309742695763072574441540090273318731198437698763596628257245047148226017411402782621582269613991536098757798729489273331609777275255957104348760462722196806797758773990696550108456900970217101773486065268708337366730213868164956525052955983687987523984782151817086266920364501464303409522846661540866390910807818773255656967627694342588215778972531403249318552675580542880632131674738161101676086833380946159800669004170860702976355453139651932335023093070635595651428878226238263470167065965161713219395975565048420639451897588484979333599580042331812921049829161414032434055721815718219081837009556666663331314878670120893893671457710977262827249416113926081289484498492197442638295234675585013303091376950450855155232183438678562516343644891190800359393531203782687305085209789944133191278231108507657596669834182680425723990620577508977544235634737517324105444824758410806339166554771471368465596337213007725342882779669998409912160956590752023025273750624358255779043938501140128962540328541707304094257177805720834933786001320541134765192448676608212422063526984366422982669785176825828091099965759294867503592685949438498339285358781696300162329223493541457732393159602581175842689071432336484808156747759169955692561647539015914339695710599806537355689838881364109033359182686359192880448185869215096021503551338052963237144760671757730984286858958636646991309931037628397485395246453581565974733327883755109710004167767957390683724226155859962286057044013391828064355573543542932684058688430799549103857911791723669906061166414846498812352547802663043073871945321111409366600264438541865184694481263127733357097519298379389061770089937194205712024492669053831721365364700796070275079216868543216134082614933732908926700162406489445373263897695215607792230181820102194998317561420867206864116911982113268623880705070777162034273056600240541144095312503853825606104153274751863419410787615386359118541001498942389428221339290394335954149048822841599134400380514745489111180178885531080225225710653423066858049063226205237348212539623032833652582318661915160903646356617805601300688609793580171743551098687019436515647138973503995523205409907884035928864280293940294708012926209234621797525188119580244353536413673168762136115986143585285912739590833903406098099787928334801847606509761646332399345439935516401284758824369254298155037285555518294526691384176432839580789936048821475772403228967308440060167288612173235583897575638402937554085095699174120579476682961353443468905819539306809826576679108144292852841730224443473219866922517974909103802154291386260190851890968437181771927847262132130024272701518004182446496649414862003798856549533258509711913973830121565255205651455955915529678837959861085119436896457822488642803968536111724811138537695714560824245667763748307680320261492466069963775421952559200819897794703531029483119587773781511175175155286385554947827294883214985300049050830554530666606898060806314335469020612089890850268398247507092340600657500609662727553385714825751447361582423208838783165812007427992566926196828584947878869877520541970401833441640132547432806487018402353368726743446598876853231080184887102007661299794642387846399385164239760993114100516041493619709037330321317336643111483772825871789551847309144700702264788583735827363368505610454618806916423427285524391803239562182199943198252824449967530207966741646535729420888121326950162931962512143310830066224068539196789413807844563412785023211734938292554086984525958592337106373425905827044940394921075075152223123156436685422414981085195372460375328299728218825974178181710823849979786875186149732617763652929478840904442316395622448812393304136946962162552597381190864570945348548528788152787717840686038381567310320255020476600999037079740866902951819353432347743108642793083659691652882189300821305048326688141207659672901497021941241351939842340631103585399969307313022287525083374031233514384802666764705652131829732856415875809832787338472346140040428570686770428724555184040474220047802731955816399187683762125124974126408429693094013763148952337590061588628630041127270655090459289156022670734052898998933408074625384505132405935223682574448007822668680239416353089306695138347170587593739895849077580381761947145922858208291292062101325175233478041377923005155447316879798792285712216231723404632892000916127355472712411855020739960143995952528831691873648606820204295749970537241646617761660218163186881841374320988007515949967124965499271930449375463841632835751519624231391397088567561033516241087262101507343947444536386152584096131989617618611795685534535925759771420543912066737963664399664396663021690909435366776170886052688132402946125165670591458544201567420357480757929921409020865128071456052620537548306321394557884034945961529729737905062969801647816905717694542900857327043847690826882681176390665814649732646792458444817697829366420125773884245008459145222423590029251450912425449471632972610283124552672260160085463519316507381677568264721831876925695162517318460872420070674512436705025534075662017675455747233061090244570069787955491353438721346497152911365185919574057901709368195937926434428876314477596334957790635785518684745354833831081059111913334345542778787948497301692900361736566718964170964817665313641064245862739398308417892095164625296985108031226808319927133033070430145610126105668557789936131329024551730849305905245145364025197747887834360109970595298409533714280044430494490188058198355021659943912516060393046198374434230929696228977133012873222728401014103670234148847811253548772668297187101039796742949057674600344769783431648161957593163810098405504669263778304798336842474729372532117693873780520833140658911546540719374362054315396932605472541993723046304222988476014561959789739806670653424992777725704311346734854235144775883431936434538194860265396695716023088844577350313064602106095454069395090468117464555203423320587190910597181291671609012182303066375478054867660584686831499280631717701015599475457492334853337958115869003108988217171139297031097210491504512575726381739067116105944559241117993935327679223813071952349298829941466560419840123618829062471107857738488750366243952162356533529164033102030135462631593017067323184476396377027558024219266870849669220706539668347459871798302992137838230052751153820271163395480741463230561476530455014548845824279750600416057021743599496273974890821083533023166757773629167146630781647600873220827143231973258047010105660580757826688720692590144034326885386322327772325014726399278043751153552305885221709705542452643316809374915897932936416527415828876776273031516389214507806246695185182475421346008703229313168243491802100089200552223888738179445639684743273102384817297462592475705052062383285938288545851000296960024799323993672931560067273461213486099220038932079236894941216357892385631745743659480732864131960874833723000043510726133377548363826599163433342375549496971466158117064948239536497142552484600167296498578854666743905407510956520257252714038006477833713121249208707824384283010663815083269053167841531329426338381731442676272453067527095300783444348251250784038749017443903498995506399132783543198328208977102182009410525602861644353097959320471796908251720950407281691467843586264396105983566819596572468746165158070593472544428300566055935876037542891305207272538749791958768049422258958733366245313102287354721872594283092305441448309827669938106050486370900243054313788672183261248315484768360370638930774005954367678924288433483866832901130391430009006131693875227975594601123842582866639239541869042977037597511185688654498057996349388888488221472342742852686527341109789439657066568207250898776256207195855452311808990483604393555500212152643780705184355962535861576535056134660476112248567556695783155177653458349008371494185289915811790158576846775142145157413105264398223545471962598407432019610425684917438930296141038405302619103519110947909087137910723829249838224755447977246864515697875435738282466867221261849618894011743931213696704466952103955703115181468828168672798082032647674120246067471904513015709201478234716289965438830233789169254509649177447325526980969090905628883054037429392261675443500834766846201376831300282837327106667849297690685347111189943934854168270921677054163091790251049343987860177424310573355930902385706694603989267255762085717193849612009551703763327052812964901863412300035403367147413224467528319074620341661795875904135705991013475341847937470489967367005286897558105180301827051776170678505870461911908605049047065293136526477075332836085483654018503707808272547074236809948453477659839353032481834152382302550900502344861386057800922742844277499644478929616378793761794095125822730180231905024637023741705318255638949668090140325564516576466153644744564148449539869371619619777258586438526713662287373407633144245773965598811471520811222333615350512656836115633682734690038171158719135005994605134087558917859414906530465894691122045401457679756737674594260305568231537732474481694983145811287688709039379569127291157774264441103480162157655458851629942435166921204230129985080819585311927169270548910635553345068373787879149836014046587288597709614290914325306627006533643232096597727844475863838837011695190132873546296444944293609147757831882350096851082884370561307900083172844229034297422113381013003278811281587170694693636772809710580399309310723867111499494458953298515558971708810528734276545219100770070113537237542798979733721255385520367064565589073225697260054320425016219591978589967209011783613562961420490613422692732818349747554528731896538192733390488398666776180909824040225665545709391528432544454014432033389187076081258456118016394535041257842506310730975704172702565627150543452319671575456223128141805723516720627532633817010516326774523578523519032350214806903600616759751748602045020560612547835058066733044416263234976414308228779678287223140569494455988700887216447311610366345826350647350305662789780549775975430105334169773616405428221187312057624457303694620916184229104700464374972865880297959613226167970554215687689521161816912868886406845511491234967496622624394539416465408161194347667823083201473951948876258073889045570032406427732564572142546615327031053188400949312598657005893853008132046077503887812079178202400393047984726981284916490726625925543021544009211803709986507678192390170576953840530574123626638190216038740904297013229585504825234079541333678107937826590586380536541279341666013726753304194504706153432685199180586991134828830066102685170717776718938473659458508785552883044748435645442285645200885667293948953014673768928864695750874253946534384772690556006981638513757727977578991599245102719661553714292149997712477909346377739656447927540076011872991998898137893306260151387493390531685580652309335429579784019894406599642452077934490918678950571502898580555794208474150527541666719885979868152405191080391968459792054937951421274650247370017923897611760932640244078555697268042516707913089241608279704915475952606909497861712272613951564817431525510991986775574278697935348855945369803159711859231514967988533889546134551349224295952129216881970112339632761594051429357593808778284781612378274722252738346413553020136436089949062145634276593338589522390056381529522378096223783428993960884265384123752966173341632797313235929513624997302734895456773723553907556676850170610524681985179582168362899896155176873084231531299695579435969932362147744435059056320101081246142710435955895553759767789546453562750771397139038829897676402579257250327894992520652604554662184061746299853096325482709257182530405776458672516354921226748368846336011583795925052857591351245585746450516089371887239226366250151388976877489237325315041604211892443053576427771350021111862068133917577806381450296415021270137902039387276413000312352123868741656402167738473500230783928064689941667509662459998680938610804758971475137433064818316191321087260547489243965869420500312772066289539959587500883826410952449082387368466664079397223859016515444357784648613231425307118673807568208829442221813737864794687093717835590245415994983126413373802054070671668320164924993828303233339913331075689012615623303453151148007487020780323278163720199430925973917502326926589763320913144421237768055120547635997632272027841113684398928410699076812971487137858503309660328316300239821316160652907386864914144215486060472705718643969824681323499987487974866864258795755550700851101486394424057263300612871046282618835618545064417874473312237642284160043847329630241389202605595663977252267021151632142344411130322076976875679885036681527283879229200444805737162675220854610579523324048318595288452941651099079257845054607345760718541287590944434711124339632395168156983194737831639890969678795479013088355695838574381663872566507201212319772028603959249451969720004474141069538076661727447898592584122088560179564610425535328396723437961796494070673766768703781466127975259818950626436564733555438406695361674367530376927874320182919765366001759080926614401387581122582266707770433933474387214137885174984062268225498328866565728462561780148115224809556726506460831634350694521325493636744277365290880576701339246093083335819979239504919587265865043049952171041966562264476043565719739557985124523553478865403305727667375108129495916496931488021039301127229072315621771790690638956901816946084948453571176087944684531828230998827052408375285764266982745272384763244878845924095108003639856652851164322518532638997586510525740207304023277255923464742606924705881835410999996198391523557245192130374895551521571842208946097082165944275002358933809632685365747148500360020465576705970933112154589390997156982767237319870486119763133347342170107130694827886926939171079240093550119442049883803653014095551750839731791456037063059528435284360027327678451303328266917998729588511241109389827167397943531843105235880464769765535672812316153896841316127225472440452956660846567446800406384159152789120585918670531885693348653565672667836659810355461244392816504738805956413393029038570112868412087635175247458072436512177004610255660835272089889716275617953055304919351230240179762320409843798136104639992375202196132871242563828314281414719932886738370819221298895173534024280951370735744007430495826273597299410867307342750668134925949683470073635823307763252906902532065786139327127371430586471769013818889325820831666705364959289197742835425282070315453184753066653461732879940991912265208341712358468621803600717776920331133738867614036317916152573812545980535602506947006198747120720004511876416233737708312791703589073422436757868520177656263787800959961286053716226054125455170103238030259680903995185962068378035875222271788759818348791457988348196340442547100582720118486600243219824807239007312622456725975951368959929013466285089339356217773660940044533181977799131247418239208504152977281379516260463012816239931209572313062947273212242098243496934827382479485914747259773765401310969977854458509812695554220509414353959472375090354445916361218754363624027745079250221229968004998718329016657886485251589324733306972226421065514057363148614734459736745944704254994795735086683796680994787665159974586546523130563515783103394087125668337799831661788808358512626153701028905689746404667032211387282938589800261771661556083386841973381445202912059655184641078515714125906826354128869732690000495699884338657391914400755132213128784964988131886836949260998160508441713830938058054927682231343777359990421175969284511675920967982936158292544162448870212256861393375721175766350591624882574031978828252646334615655191744845243634639488850622164582853189227722574776510148953121396413100436308208978151687021928007644777402443404770700943538084508627921790369963330838104143723090009027222929372460111424568985068091057552541341742679578815094591219129112359076935926341112106900289778882316583853098920297591718386172869557707876896689282803616285623842145682510502113512288220190732976103102987724819929613607987482792636202494514305565394403607973821464241089064909664180815126493521391188930360477795396373834253962640378891131451381659831486840122756894958521344187781336715604667447364715925686681477868892719879129972276314610559779964523787264618511962797796132322373627257687669857155949721533139094371865879410259111782771667904628151920282937778005505650659434011185783510399315436023914457261785640843682315760189023261389443607784659465321628910364247545095362078265440939871277538673356688003891346271140267149613542051329944022056272078397163210426127373485990220198156104518818872340530506639642936458966002713622564565028017312194957621176036465102019027216404340381565368826944612777404336166187530112344861764255934279425286632454347061432475113898911629409351223346603901722216544004745832405995941538851887109175242651019514686252874585440638847655957567468120713912326398615686992487616090808642853545106099303343794130784431618286272384892356647854111830772486391599937710769393882729705668699110503841468758944333755430883551356927194482257754494998394850922702534615651111661895779216965816640728407638215338845807402755074691813638597424993818476552482012221027000380015225658216392870091975172892012924374299754345297243458338163395981187213216699026433540325271048273001633750894184987309562633606639752138901115999164133683904107773143759976632448572897202164631083399411484914729315343852867905108012524668663700998410260284996890510898544658419739696860328766864067782227860592162080222705968789827864821781421808618065148660920167621453761342163640547909312715024287467340127102570816346762317164742428179491661746127169230555409723834958977657319472535270950218625935862403618072386307696240382442332930058175343709100741383645453974245316424004203454162393607430501829840173898687241293138028343169782313006117931983921492437199397511077384194347618871031457121563617040149546475529672491425078586419893621988772038541323571521075013182491072105786897850116836710468780301800101007459681949164895269939572698819822287525136780028726746200569392385378891840981471219613301802340826906095581285639259375957903913251895822281545555159049132245174042931218648469654924072221840606964249108715161361465507451677153794638201020246260641801997876318237692390928212267246352921626108770865128586257287719948787970107669881149073452022627360204201008216095139049656316188455173622670697886810983249936089199889436401383574966485810544851606538671784198221950491608650831146177443234854537113691872205911732512821447261834279330896319769148902006930142995108910190590256376553872049150844408851174484849478246133352625640226478316040528786022549075060934674420965003279776598269842252408526764210644285137250690351581643179328009116335478400394778231933677855087298393170103774863153488818686561790713544860383153065765129089797956401706462852094324029918255638448439723586326852954991687840529956558805694435865718403745862365686520292550964319173996908099443067158017780114346774695309723634950441768160231630010282311488140453534603447092216693520568692262633064721108319075043017787168764720763723303575617583912342345969998396388763433402005709046314449447748803098254067829412564209026729517895051581204369664383006292223573461751759125100224377937048566829634866681897414991871431727108206526227655325023161856939154723011167457240817961750181283869658541940010030648579423340948260765555029145523880517116514812051439841971501643148377769149026708778452254425097328053029451918034769928406414779310703830975601851657011281487567436202880119633098347233283235394131144035094359630341503912477021325337278260603984385164051162920809119876852212712018386326708238396484083786630490596609347228305030234504264263513435859028313232531977656023720689244577333303918594165035856736280144355764170211703909377531379818248069780368923683258867630112694643465552440960426309956637989335223915318770450769923429241810859644638642464298168654588409828904300129021911101792961855887713448166924982717131914105650471561280446474144990554127030189786984546860197767879602005176289627556037797941593941208822091628705590305863055423127564890785427667564317668399580378881072235028387843953536858083066922399105666542795999200590942135327195294527064605989753592911170479757695321134615943550881821972630351626133822843881554092709424483984573480286622967698374613152895770063812689617285232523951331090440764954400227216813558030284344534320521989597313684389602325495978967852751979750164096176247333271059778036428024639382260467969554774683850704179718435323667993840569506548787588692351903238560752336586290516749255698084515966853156715778044658342643119329454056801375908287636156399337075721169900159303405331215464824657001015051319120347622431098010042525246476260240012572340572939904561635440710231758750074765874300190834624311180590644235735093443356057520361111330484463563900834774569556128234467292469043694567641076574056547393798686067065415965197711665999889317125532649557862292298761112668643054442416474858191393103534542803587370265515130974508319059775054645313310955872111015280212860843114109438994049003648144747448802252620395647742633007320368667421479304970598299589143675284404637844036910568858860672737349602707358045080198590875457855874449651069476859139570770580068191000830247979170215651750240231697645687407815201648742055165877919317478342330472112098397725949694720645198881218062097277422867645521698696012822126275065165396927798339649526448527058343911548993416549359623825726950935023803990431512411366487367384413751420715899097151482909137659053409995280802564230039244511493629088566378883556542153176496389600689390665588647347034537218020141525094983783241723290398152504371710346181322941666130832540512041004310538960041890339260224823377206776753478979187081119253372615470408804112214994808432229451182279599979806349298792428711777604749406070734547574400551392153282708015908612190983336708966543972010854817824484978016871451214002274170206206732379657768043522184540604620589746015176763468317799925600082080371761879033478998181502753973490661183467445298638463853694480018048352277667714085975852803100273283427024208452933951179577067315369782132501323478867514549587606325004210357589584320647377427403435571654585659273451895839961700291562604659356752920869358695601853940766091947525274938758797578102906945267273949303552096099544641861302278758943615574809912314339716043243938422029105270417719975366203822577639172449695654621395202778773479118821561010186674057578779578492775263760435167517076477611144852669511457634968739344560269402635258243245820899144660216738056333739502166857154879167136799463660178397995717906090775739264272408674637637959171759555685984566004321067087727105986487310017196616889364370642973524295084819266692250500086506297471507967428757914502316357454399849808207736714240965801841571551995558196425172669014143922568819769825900628208378178033520341471077175623294837305464122325167654543983307346345199789593042124308103021538234770262454629288041235875898655825025597266487060625725423434618690824792449250525745108529275610922678791554831763727716362059267980812550447295397337687298011759206702646182495610675319572094619275220101296124781796966460148190200846214438989490018710626228861944666791049659060548437879969563499238383719200368237187599495327337750786575796230995738519025157450457121745759525281614887613184269090996894687573450815871879455642917122563532886501176776491864064222938436653468347394026741041796373586687244745306508320914866188184052198297626834991141093648545250358636462553587363574519309718239350340877057112725743827568320325738070498126623354381995931894893193295052559929743319153597166987314520003509249708701527257111612157631522051200209355933908582185673640543368711098351611080724577739030299525365088476255525722532920465941676434207922572820697211862875154769450420664951847999360094088639669417749559725693396968383767624030052737204819068395248598850402369021084821010820370747186344145845767652194807188505415453449898880140934613393260558062065091459012836204601325618750880538531975908695375575274855416245658343698607259859385559746111549481880336986991932334386474940182628361406676949461021916786497489562771278830460616937581627740490859722552998442321156564736146621038618587270456541271630913710332032474823597541595311787118632307591087741337394964632137756304935013543350556442171528681049779111342667115650315375644022988698163266771044614499318681014249698637176617362664849672415683323434723661656641086338981287675405362646277482554936447885165747008092792788462459434623210447821879823417753382907014560666104715689248051846056401472064598134449483660243068659848330337053048593524108325179234522672585099955675383144689299876426155628186504939423789948212780927061387684007768328015298014229032991749825352565677354562613808182905767896092052737892373742247457164366158230334956904574840817225728577061798833379222243034345125139896567871164773685956610659036768198477941798050858020389866410099020500425878946555367710603570804952061282866070971072181950325331709216420390176250507171640578335402739597303250745307646938238717810714813023527828874663863271529916108566388960180762558772437971714307348270543350736656210378333043370543077971110736954263637223861168721813108776166079703920137645349532265930406695963988602611935569258610481239631213726768299708325422493602721208466392314286258641595826895318778128471485401507202959771002849141593625147018479133803775941538081223802560205403520732068916010272403035684365396603738371644351909985248704199253875479555613262175012669105341402229637546925332627300035378870625291431937420158355307759685247378960637777727474810542419066963254996095832085056710098389571697137007730374468207902630044186481758040855927222297524007385810995021612242133660320449396643549718985402912321167140547503334176748734698656061073598497794104101016397264547715179366411675603237994800730133606182249243449350299961407004447082589434689790716259457494139858947445444519647862426008568303933954848751003474637968992559953391198074850897286907585529456662865435492540128646882433348779687297213003928479142551913546041311780251719330257691955891118663320791234370753651136329617437941891946257013681247827457339706390191719007730294813501685103609921270090123128260853952344949399607705405556884748529345332872399777524826101196910470440417076280345842789837668240910891083817340755991153334604466066025956023332041331471349792163083725367883782828481485022805557608502004798918605209265815628326188203489952360540902117593297856410349839757119757874754580504617072361316244668121529296193684232409773326180230215233264745909387360082603585195625660264925811616812712856658706577387540826610780339238689494167408509395361084073975692803108033635281227643986558834678788286868326949401648268838226179548293030284323332382189196643661264071548891489317753518426014817341042161958322564529135789557510555209434233703107460901304821991148395255285322287152681936362021150544562079587885617922614205929233384310378634392262536890886062421930336863562338246372384438559836194211573676838865977313665208762597631760753500056663985232557487941667157378563430255521362358067700664445963668092585420162425069111567462190961329911452460719362794632527518507976220957315516236584597182205752082194392640009476264992598915330470115796944657973240870033399918090183929562616101754841741514612949088601509045702865123921944565812476597039075483924728890627887013680003047601147335949289979241771938714735672479814698942559712430492861304893662795886320490030975615408705069163269778709600664606558790075417586265182140291316186721111816737002473508549778042467966232592190700861856521854759285327230715177096509931615392247462080111090495009623569578577011853515875274744811046777838622191019004428605181255926211639826344513764876446048693876290709237651874303971442135852033359867718384105372592509829070794803481826412338966311027821615264742160192274808988632353709570204474246470408270134592791050239927761173273118162264111864382288228685199959674929596422363240373900985141529642851200380364617592251080400388950144362448133908239597186889497994527319136842630017456209437793133315475740321599992024458119015676079554720151841196693446148272184350307717318783525507594059130040798971488400847673766019562417224828486056967678150361183656834464632002310404474448740371813595327054051025044118243062724217857431781608838118344738003408245613040151751932759549756898350477801344322419068860113047583421819979173987198712886891507106332152888903147991423754015785986672446844385978465306659508881404333394182488592687055453160382483076955836966169375668963766207654630315120338613543945633472594079386099968867527310577354738345797139790317047055692177845885575587250768540400671335977388246173783557935362394346702783887912312821120616093323829538995137477415813614014381831380018745755933648214579272529748699148702610743393429841775614830142384997363447157068148121568576962148026585618536805783643767011560359551906559156978989878679125939656954125372058492667221809013640742831824811227054837174546216331265418886880052602003161409649727533489023836279502157535090606562297439246295225729898748614590963584361144748465778435515880311575086385812782862618835576052457256185145799178780698172077393312864333232572081387122651090139275936861075684156648052368531454218568112405020623434177731328297406052370649206056562087141825612684447502958823912402373385908680669170400287931626990590945421415136530922070748045840637150032002786876655116388827987946702960051543433086553781728067282543868876852987609665992838769782764089307529499342260291350628296301930674086465226115945696824449894141405736848868776984580118738639945035135979102801052804109147631466039251656949648392559759400264981800194289701035022908453488184070505930362351441808402655850753981915882474690940361987173447571247093968643407361663240350669524558403152504781243666108301225220573612908899264603759610556849672508782161876126177235102627792561675790304643058233334174439300217767812544221355459443700861227044692851236195543320979401362030848764863868874608582075005838240733393419225243236846329869487402184532516601827265018267824261907925264315819317860051338414168581794967583254014731091796971482076888874193333559912874325049528109208619367746347521771002258266218821156704558136432777480991634846607227181694122326833000092306347829275731452552472088497984502112970099680446722193073454292500862692022206209177500864988301784815877928364727520065609039671383947109879549584619647613462080047602353277031060149328380230752015290403262833644827801786414566969127646318801502919330265159634517309721633603613240458570676262837621328526619787899654261385336417531313856014317203793170255505868383854606136485187019330477664593427870713810817350211258408303202937457750032293623485587000418639742748434308465405075108450135131784490177866030203260909341379371647421988451736560688818941696080312029875776670404015649040025899503798237120153797921996280944117591798408582185906448513011759457687645186395750770390902422341561565503693557469853661130679868623724292854842528536345613050599057996525188660926672336563479496685255659139188750588073664021131974418803574729316832805880405006277637913137253916389301919980326575812583466920245813361299999723153350222195061226622803558102093390461309502477302136225696276842863632444534578838616347307190295129567739451962090974822239500285308040773076528821034926818501028735418041333332200032520285590013423299906252238311562143869879666440577330993336824756624186302142156545079710266892438186202967716899337799762568142013865975488172416249990451291804281717532229653322441582058082117752432894243783559645229439517773662244928563311838699465885584515262732769909386556651389233058900189459314487255516177153247767195330624010914400245740656166764034193058248231759426222525089230894119543541199655920572477582008255712887620160237844562525818143973586936759896461107498996356745244926813011318509824529934712501593091785248195098106233831122277268639540976638676052969943757457851754963234567530819011440133115726492077158012053080162694712969237245380558804125091928313938458732931280794259351200477925289848839832205639781286751945620471859961514762684821320552791075157746882010708124744084960560461408352797441256746838688700498541296331702068478863175407919202131847429043546545256760537459811222569750255185366408316622914522943195783972785100974123851703474319540085860176488562551889609939829708577564584946327802723732561995816291818318141370196683783297421204146882771687203301005078736197960278531758384433274061072444219082637188934098647535471076494103603120769173853455209556188138815451615608334165759918355854108354498497499224045053612793571556354159660291813827317016661011856208737994499440796926026802206983785627526392610284931020845297925615082281148878161152478112984568520386361234530682112178542207228241921839650331549376694780148654599333156495945827384869553398815262988229052184677880236732304617960376230094354004599645024144625050555017499563014634138005729153948097949398543576358301546457459996248150675878580032780403844684680917158898663306509135637527088148981950649354019265384015438341212365716321986845060632130305423509135492877175688173811357200255396704428846914819171354460517535228661899940585109997265802901480606974116951505081214647879305591238588112841110289192561422818934883081756974381319796993019062588900792095225331605629972594173446744267236964123242463150232470296050502602266745552225038905994112051714851961676557019403291634957659058321406625090328063168726259442162057677806696395053228903016671160339997770566355841497915973298913710586521270168108857967793082881945949603197287622627255830442877210651962524243135228186723342099543704642950740609163738014424245873880995384598531176805400669439830146153959042547418931905950894179685344957423293727765808619557844663427571460111475408136969771910584256225093051564530481334144501758533987719910535810587905634153988682220118600666157952949341946451491121964061680543899522041403925882189277577275688123931802412217198366964860871417387279616158598892465951902063723751941241367500855912411214338695612797538873803248214917727333521637117550393832863660591823701373974841142904198254416162395168247258418905316732458104223861242840003148813980497202955721679221513644138489691020788655005265222943275055804447547435410031658258510166870219962737297977342789593489841492140907455282235939098688181812255541115075944637495424439425339521810517619162374739243088806744350585664120903654507553114571491826181473705977139548616776821062297145704857510146281131041393125036199986510737273857452813960701918323736551363176463615346090273217131587083001118485986879226628644855957960656735387602986330493748424112579632544927194671781948656260803177829709418965351254708473124194279440542975160775857177565021019010510343444417921878272026415523860518781197043793417831492752365920411350339713273786505996074059525970776541217670532281292446562665146020896615635624531137892220519249373495213008747696341951873258800293931406682548152834280073108834962692928823166832067229475561724378860524214364606720275453838777981593695781415764229396206608662338034340993876402046271908526850605871948333268710099346798594636724127277254764753842013117759766589457055345218544360327003820246235319848873859440268912230656076642330651687060653263679031093438490899379909864030056279752994797032727265447531665915316842104447728633787354987058229942393055256283601781496626426004064319944841428290763027348178112020043939159740665504089747941490051207961959778150843789815171982510950145472313730803592236935244059507769327143306193402741707912439361380523062771209962116148542461704264941620484431357274168435512718503852658713848519303786627581286982707891639657116674306245713324028363248354914303208196278895159240861090520241506821793807463735325880608573677085067331646885226800140580932411357551351073842734675225783287226775204200327994716511414914612336084034400791701831632481022665667718927874529393538735359351529064037847705217175804756822919973146811092980740183870301449820558635127983320372193252015002381782527941017428841494590153878797860064015490209514025578210078618824110836482805660565697605614119787066471249705323420199511097026610372675757699411008226425694168875562636689109011250538400091481538766330648593409242942535208286245333910363949452015978130078412601780693735727938163977895390830150742581227656651691934423858146596406031662675593595434238777262509987105351896532540616629219596587388652319683125204010291868627057867136892304015613189847117196201094813681347857810351570855006194358639308549241684295287084991092892182953025791812641111077669589065129454911980641647384585406219665693302187800134834694347245346657548110125460214980815600784986501291623633082249165488772944346715630935480606390163152875144785438783799145575071700021076439767297442893257647537496187466413541369604425814633230911704629767157869962909779368197316837967288753650619563755842973320530271713174965289861755184351602960919214960050011653614924904201762504671389676860602341058856811890548848245412552111167979854239784459580511291411078686416481047839581369257996977141126497201166555073534845738120483041714677929634621192627524109509032478259758097238525867133926140217503808713886383546059382471489941892074901112788391301889993258487008448383860333909952140113304614428015862504773133779102806463961388238179257373887853619678710935834439052821800462715833460893555120016571882596317463489326894607521604208473970752571006761710279671581577793747454799341530369251400989246336715588635092897556154872102275189299344885149010325701717235589548648005093621095055820051720260091956625972460646515716174122026734193942862341817796340691501775492049975195523935310171913349300625558702721216232163264487438830973695090608212633153431828680865521276542021883938011550153168275202284043028640805754955023553000279389652295225327919769591471406631740538599548554594121178029086974663352342593399422549933790239518982606364530944111682229146144630165147850766142497723090844298804048339157295478639463883758260019968293354968958946445850083923462364106363226582257203511397941891713697488558931621575684997692408535530871451112265429653269587669877654822231399776270603563174054547555524269693152233648153510321488840890989170153547562262369744699446599947305619977281781392972093906835451935486949654108471005651248504002303273053642112185213693954546961725505236945186702250688771432659152947783371549754043671002407281803324180989068398275667463658593001061070510980737560775038185273089899462843380844487343635175641705266133617991985966895905955866684406223857742236588459269418924265467360476098384557413750563580907014122426105369801541953564579812952314609867266353865038207352437981615467849588758563903551938316945970941466006232632216201264118325592704530552551873342958091425971570879280117830001870703356482751988851506399153963388874798512283713429682524277894743561412123639298422631883548759030136739022252064655683131099883989824555636134821114177718460922490462865794168258079798724243142527213923809273087968510073736441442760358632497499860001779675029033362734987931784159300341180185930779288547126317307345274035162486775967542507589433123420884509027317318965913908317028791797335466084509732795065897127503374263894177056494625637126458302846946520028804010707317284951134682351886019534124991557786314334680880918012686745318811081262630685531145991390687332141049238107413967120862389678382551099972276287339235054595408068929706000352045054743752762030381160031755316508649090297764315327683670828463816836368041362242828852347558094186868721972389672965290008792240369763617519473702516944139737808937328996514699381402003611437492336785283648072427179228364210041536965326405276659574249482566469401465125467742634736805046849025211502747395033837964602139629467638694714992034461478804598959634655255821791848442389490589959400275255371034366214444813819127231427022821171198614791449616760177800056706049446045354306839172954672527895112610179941449212660256970043986767190810979675844004584489550861776631597321341452854241502397443585654754938514839243939398554590643847729027786685676886861562647026432309498349872797024665935383006494294988640354588451271216594680433316200945934031396637879280231523283071510010483986699879266586191919171725805997063522386450623914395528172799558476646937127787861754538194974508961544653860038015023037154436849585370606868722702136832329208595346603105348620592481680988213257874590171645975409917628142596749335113899809732270025742003765546654390754306482441307378926810837341302194190935517791679291876107931383888239513523852197493256973176566894955327847973742969198907644132412106665240625945597625522136522433494369996554162238997855887436873935710598823105310914158525117453451150241061781811255208805140522693027692825939478767602121944678946057603393745705643447583380357510316717990910139474801368502839928340961070417828641816938808682117763678413134375199067049017658414324911262310055693551561898822386829562557711708732870586973923643562580588198696475415086894866212147658185678704612941742654524552215019982525805379262281180459484978208065500435222177733519452334778269187361924752591906550108088770814867939695857825530627683162384896069692843260171112411562501886192393608241216765495492105205647852608247302438560104812093208556871286347105102919481358451685629316201036640200285952584663915630337437089238509464340772396568532462794294293971131323684503601135226079285188779875397162420082913042826580519701663483473784117015908795282427219970529803003764023336044457464205160449387415286178814394267501537983538191590901725915414532246914555925270453778616468827010446330046796209286463949658607952966731606218330683398952917671372809498327361173208039489942764553354509046853242467471541633287681744357246359564581312391942637755812460976592373282798855165487198733541720570989561820184272849327212062383100195032876830801544722582141623206304352993471721000628807361203223121639216685186669436469622546192655149390084030121416847980745032907137589204801429142932682308456582559806429647371146475537937212185000617477889378517604642675886656145237581491595220524788426031238206431824138760561179894821293822763785843597616006129804581753259039667923476840422784652292842769730179817507999036117874159905941706601544693876626975090555877048709705702387046049121356082091823420104201712068381658221808883553579565377208353328570058524473397797810650932116227557191990016424054845352309610198833598699996304592283887784917814047480368320303954724640432295114081438232315506769475716381942611568633479527929997026088746340836315602158991154298790751231286863389933117142000494965066730027540322697150197621405740785016362250152130036876865820750266018679307351562570968930379082139291389515526517367721974550067202251635485122402159015102150075114770187819120409824750423038064097069804247176180659691714870355801405289130586108618431990441828309010416667611850119575563377441011829103681561215166314148114920893169460060239158437108436675368033191911300451837506364786837098389829545613145898894903521550426402552011213863802993590744401128569762027328092417517951379068739784089029112144879635442666174359004466689846641775646197361275958170918272849344165921951176179058206134480185933574173559364643573020544414204437590960893175801543946984857353928362833714677821409955869905878135820090413769017279253081542207661848162217338655544489678128030042605585212288921431440409655408444992178282949179390906037856787848191623686043433888689201433897013218045540146121239761675920531315842339079706870179291504527818938235496947703274285319444229662801755455176618834844003180132122307402617525436864165382513974859285185283381060910762521400045625994786675441714934364263337616227091997276041834777253647489080668028416058552562611422995888624670628318732702611718878228058628354112421697198723383096140338818272910186120251275198869127470396044725013403382964370669787247729696997341659258521281195646649435416736801077528129421136772688352900915254058659153789542724740588931249779500220613221929141788926892100126728671078324183552658142666582728671333167816247848480427172369463217462273615219944451405505528822393497570918315912916633844390432492740887936465618737088743459042513707808341069818945353467431570063837068622663400573607003775412769707126219775770409200183436366973013921656916692397665236846077012591336386586931243902671383881125008827601061667003630305790801857765059784436645250935388540762168881976287420055145200600120410554986667233210780950658777812667146527501264453677468057938301909273263745743432659928920276882537234858826223852955162644357124610605077812008542224915970291267316489876841578043012797697180736711811752954312714214403575803767755160170053395261324547434324840250201033079966519675556496002091877862542663267232119049895604241756507259971852716159079638502621357075353769853688409276679564832229832152813723818568456561961145872185471422866686760626596309015572315537226243197054940960461058756762649688400868355468192516599545435955523070207009311466248337787758885056035505559775978175238703311139883189148322210185317988964957728291680408472973060655758369840841542755786348302451677381156933875621441505428785123148081701098972887261664128680824606073137485018506181832128031653118768579224291061726817483076558310156656297489631968373294801753730855422516593693006302600510689322544650646684472987153469796921459226194448292806147360009042480764089742584837499389745842328671556687368704518384071394989602600303828293596325120583017801263058364536041790935611555913569169437518673984827630697095780774838976342272492005856415623897610439336503316462127790784181679717324368680090963735550046166988877712180778505945852671365221108871664690974364342232769593214968292955245890187770511370908834641418568258710993824412077906583924221463386499314069871487072263071237651549801496297111432128696051295196861208304027461757814377377566686435454211580478090054201938960496943542560631742303301211958301344235217637740140826753145406970093423476089035970862469590037503892564398855482929841633029381444178098946034781139134525046368679155506493057989855762895165288276835829609634959720361680360678992957370924042111814716109020622750943837704647191138153539684867131231274029861108966769873285541519043973227860810957592031905354609671029059684721453346097764823154907091694848008806949273257278420749031923307573531756014435058565972443603700234103540527121740779121028512141019212929349924174033539856956451564390852811050292263047567410382755804782443236082300189383523178524422685103120505884112396010686151518645309825323563414196673466615273203450250786749916356178257477564851166574994064158325200274358742340775353241968710566654702476624886837295692370054592275789774674511272902027274797697719341535332430389600077288805688317350343836756942770643583453887550236355842247950364912819363157110787647183700559381679301997861518285016401094449296808292070837718656719442990265775136072729328153070072190505046314760630527153522558585436973528858046632790405620839514823781035668432400381629816077870696906825551671696513558777339807894831975125016059017025307051604502280731962925358709528679588171497661410832578859117106211592021691606726271099170242351471103623372449739602971993066709383456675053981859778829533432245918814770287887240167937328144664811721456592674254040549734368544815381916615204546310021246021653718442765744291263160112863249161545203983551161900689911745967829485532751125118547044664246221266197431538165689379019615393419401244525696414522827500902847905681496023452152052732237490793183682135644696262094974038413233235795244603823816657638060822436461126348102392589847310292170114208195654775005423648790069950134600612619832329005889169515852749157036038002907150142958551135210484526772765821159551339848226398102825790104644721460947120977202382316653393194930870007546225696646379293715227447296695300640394199835665005268935670760078254082108945834956649261706163420640474538451402955966165257589135027750384168418226741117105206180691265923202230260657078170560882070105309788900346296154652569441079051956503271924219830655957233227842400642891590131973644769929225708089857159126038408910827301411988395233427299527410912966286135212122963617037548619595082142407640648811072766503622832487383974946779689324231257304247963665138315403266461905971032942239896988804972716505178792516596359170190111742635135917183666708576592376276563338701977365961645794895916834990225386095333410313167729654053098497258675905119375093975434826110222433783158307873038643697970336347887652911378164479237321733194493510518918830832387728158971150032189556017129234018942759600804295263190613246907644428423530131663137715757298136100422768820057399815582443690272132352024309705739625406251721778388992366649112107707719178510743428637489394264367542996313122121033565766566170486660313036459496941786962976311347774043762364467684986368731499656550225575736226475376213909059495424013511045126710290506959539825744345456640218462630106275163846454502003122627179897477826570278821669588898962991952455942557983847269007367682300209076033733398581837354314760252954019247498034880627031810363112989313662404417884226020989385618055986672064331264768964034021028458561378324241656645933504974650028335943794703693052987376710711481542949874031512873010905110544964500866315454466189620568959044523651931058637464354796014099208492748402667856721715557718071784773566509805866392473155396558110731619601063747485276420908064029857109683127154520711188720108910565717763700960405154078230137126188989598502816523443607127195903471952846345904881154052272010635673099835713715843354574192844132679685832200655331481421042985916393406614486503696922173863857658670004810902603092130698334066727525695279269821430459875412538562423177049869251955012867489185205371155453828953393374668712513151878618796734027370008303808211809107200029410544147176562581773579807433222701632994352473210745846263508429395443635209288792387099138867987334070755356426877750930763844436898898209305619234436745838193928863650871331398202905643663870810418910043763191275364473150599128576357369886198670248967875947537245755139746047088146759716452017667697865580953284533699175771108340901546377064124268158128592193270772546301462049852775578179135821435005162707572659164859257639766846785586740123601525613966298345593205735661299106157658788713237305253925158736901894877637572838044706017296069520024908918404643705105614306295671859513725664753550505323154175568826176771271261909534281804988767196743211132033062155662078266444943230176252300175679042821137792874896991364419196701677247017028944394977036683621808776851653187416824630704654803387357493175353231788557084821673898124954418871641713595297066138957424134142524986556380812783828997999231137823427403501143995980468600092982963982669271470586264050697443858986743898509170156850189345284986787741336374701023215988092228678266822060637125292940746446889636831816704541918422513852330300253324439587692312455269630222929534746963533478198033084387971832307481950837014435086505782377816030033588294834617654243011674638173710901200101467904367571838081027547737529395393339079643279104916009559415030257509272021534834941132549054185320067937354331090780905455864542015051378881510276725588462961254119325745826438479228759533288091594555750122944344839183903007739731148511370091449204440156432191079171255979601091007357701424975855046219681261669158334956046831311034160912654514777467595019813316032169087172831051114367575396683860864835245924664774734405641784331832426390616675818837100638816394578136190729708109834406981056437949339753808959974439970570934295938361421214341816477694757897693907345927149734885104618397691510757137625278093748539016224523661858360169411732540757756236305607334753693559320025957540630370458329991451092849947154264073948052263372948433037419910030521347230473668591761197087688450876214435135829445258745704213946960652036679087321013519725665213950968363924155558152456373395073458856784430901822904826217820271354627253336315024698667281687545113273563354153879209896276516155822258098361404565889397491039039033001977172103567331106797406866576424921539513549987679498496113764180230629679934452817359059547408390395729061374347915628839098086691399954843566070476806320974837049872740975929205628596054067932268129332764886631118341109026880475351527024405178366382329407939714642580287462643444162360635439391209342951410599035659503347407548314875604656582253293915518655134540100237542180495771537296297485124371166044653184829691024672146530521817894323965098234939639755888561050287562611222397755180108168765735347945053565265874682508715274172302582801763450089624406883549279695808752193914314275885174998507446386801588161788311306805475562544468764151940131970289377876838904674536280653017626945092280956651610226729563095030820498341922492441698224906080757482995845580378846705767855719864171676389326647775827436190659250554333763683081760061425372470196275468195686531787511404947769568183988831176276616954484207727347387200096708805680061174341760814609183539925273240813822136060453081463637992728359168847818876352528637122861081763066846220544821579173604271831418170671914860575713640055828159669547905377112900197371600915842101429650777773292651184243927603240401010231704478848498562092536883489712470022605402762115205723040705394602452509185523562156099680373705856577032174550665702911023177988905992936593718413278904057573285004534605774104145752231321718884979495348809823008204081120647417393982447563502350045018833794511119455365664432625326719481921884648395667159451879096540768158227722774518067244375443951947202519713971035694362598592821393390849809346964160179739230202673060628490686136852136423146160376492100043358505954630582688551599855754628974074794625148095998702287504214968797231817112311771303445183487504414306539232777171185673010472063617641577915536369944605820126765045846615605859448734154373574680997249482414482772790621394213577639764599956133983500886640220908974963142945945012000914584079405439054945741331203009927962006164287867032383523547641673857368163539700932514786875392739207725474116077182774588392151726160241182415400968524899624467491529277187999201440245796122133008010189664355039290964811762356954532065484739688438546254194662306632901351367094825954767812857461700516549025685063996005252110353964543785822680588784658876289168538130084369616472003212940030284987443952430420911132433926909573409290298642045268632696761237309176510027746308007523800500398984849667784018386433551605567261727623423082748030348027985381740197959260777496236817602356205828219058510618111431758873045753320656704605410181833219248170075394729744024423827791681669817580816958644913568457363519522895962854262675528596199414002982538673418819128997834478653130811700852922438119657120709154082433913635734183385485665145924892597494593539629801790110005588117779288078774987950113208740699272690413469260622482473958530932300305973416765752741602567571450836066789427419017038395590296648697238255096840913098714315417137089660447452673901703876826445027100634298773874932815001879523962339774757758454701399546573874381725288930392305967072656398741400486329852582335373355923051113551276369814208329561911428457901906860910724567425502311619981134015512548976178204228689482331332872898460483616757425956651586681309513055686833345750024193071901503019943085587505942682315672595807673186051835782560253135585300064674468299819288583493282926830252988752697186401506603291677193940501305134616217914979971030950404219068390484215018483642396748818315260429213167047316998836292282834532250385177928118986742643015536776087983405238611338271040958417245982705826793618400028962925113606904101090610148081648533429177508396177244145406424652471696099440070032229582248252426567888606050477367790299661161941356439427789399093328952173471823208317897138454529872599845310581974053691761629901047339439814118575222216762900960847389806877410744828769314792682343426806638102719550176769970786523501093338286871968567319440126245430874671621046701881510687575289939852980586212470271959824838058278316424426564208039475361001942691134722037419264293397493918921171337294461320488223752514445928047465347245999489142269204572349503412838646967652159524456762632748060809507801595823595497390467659216002867049501369324683125261178376645238764870088886641461584903658132160901189077263580812083413246494099486803020941627984924634203276288240784899584464889494274092748640609857439122941623163767025511210999546988332740372125722881066229904593719567491803489493124700462281059346183492973689005063173686719942294723792945411916253241075940701756512186256180354350412680880874279799786422427205295770239862723754006199164866908662108644983246502327500111168120598517351117520610447405092631701464722902179191899891380903822987821814389780574064636742954268100402664892745750071284791534799913979592526886913945015287869166112077132105778218395651949356959846349310175399954855999129389262191366519770507020407641662358219153141181556134850946996154734582563058383891291668210312916502065504121075346654683691539046050654596657095796706770210266971526628435491006237415136753904917753170732843873295477956401092043443498305411762487076304074363210712223303183678420615326338904629691678514256496138992403592297377820506676235466507563815624113468357345201018944019711312666157300849402421647219513906675203700296903169281236569195163245825170563366289835132979967504762228386756939135609627127123758649584609620498339661826728943160277520832235800659544590287631118011053469971668092380189220038838780254448876197031368702289067921065367608438746935061018297423776674620618394731069265375614651791786809634556016876122386479389226958648521421872395468337854733527135831830928208166254302084702245308077583619048793297056117528842322806150870638607640997629106769718444097298707095251018109573874818688377192687657648648000631615222181163026460369206842846779397775475128286591918179866136021957105224265579178106892913652377570413138868374614021147895091918996515354777496190616546710539056944772749209647640629402399165364943284450842312212315926781042647233139439320146049366853284905596613842611501250904969454536112079325692489870723976185236572661257539759064277684304502570143963687462937206050920099050300944525830862843634116027835349639998521121759898718877677991618940059538072194390694142129332965088642797092310263873898664937099651330422351364933838019056845144979704794728873183315139824897352837552309960154943909441072341644569300924092410671490408904780030123841625491897481470891144798454171325565528947112747513813463704515830287351914085836043610463793728518096833392528011916657918587897421308698491183971611872341096857129278153975638209195123550974914971765983635952292587143510614882214949434791597955068416368418442658449795168676755537023240262511565790700602224590300295197036993497370493206013809881586786984687263332736339451765534461277413400741325792078082397334314705843040145188146255259229643982095088539918026953513495551949162735415620134315842742312949512662361013861947323388356149781433533238643706119442773307753335713327040583106887317245682297482080872735895627356758181903676186783730848244444331869207856981707753235763814859646412466348228762215044458636864510359647566937789782069175223881386272736646279070610412279210669237341273996501373689399069505004268581217295437376741157141101348678670992859891694246211925711352211518376172596751251161543792984578879476631146468896322840054103103569062002467974946202982328113544863991089193147203080520492519919217550631628638783439829393477060008019799474658162031545956440711113560586417501462806705078053125147795779522372873343721546515765908316368585448055252046269365653098774741362344158221018707439916414678723753104938291101971266642439469195498416163254602158584881779473789809284321904458356146808172912677556512903627429494857752571864714605642688243236913234623412221661370896967171360566983698113971693690436678312948947287046291550365826855129417662165085244755183054230326444600220381337139399464165214097969833804411083699131374624308375129633984499023845595953416071528770539620942309453175734666190430786870296906178497553363419873086981299785895616249539949009861524058737474947506313604246075565865230091851310495790260042285789115110811204914582086479717446055442459354977339377560718825776419510828260163029456213549372560779107909909656490131125303075191585398434026111899941097708629799894306584961521552366043371378951919454013943342984006879055468329562397978115883668232558185923843913875220151804027794954305598517442342791145364035445895569797302043413527310852202276381364467844656742874916612854718235673799502728126477260735466120847212939558961329560072611752730200368543907921225818169457261367484076531786064865970219593152413153992185972314499491698451185792821200011547819166277414879517747881236580984094532114710985522487552795155176091773174952358418589605119158704691021125791244768632288734604684554991594741215883112445318518949866987057871871626305002665814880834513041583518499665797559394980273934552314266949586406251655638062960882946599095112599190855517052920513020489785357638175672571790069958090215817564296914344134832911657784565496287260584269643863479658493663338353003786950051615028958191428413066569122415323442789494805861012416307402794738874315671485115567507905510325299374022225503524230088031432410514273698522140270647056855701680121605898023318975345042526389117166552244925448623510411269576592353591186328368756621261540256969879677075423764758262511660705873183367465687812181135241694814987970127042737691769804809028351567817406999077662801791434409995808866354761953344969788294418043403521731950576160557245034130070815429365463227176803287750855400407460813485606780372684356830529868536330821631616615056022894856735821921150232787237686356524527298647826810850718720851863460083322255044519874269134879862983451730023876320766526876251193534604209270914485889117202467329277844589319502924868320660005913657381689069078701439361165122520152968246278526275583702076712157478205972259899051632710899056670492373120008277840579553993235683470659743780396343121540509381696042105744996473739737418478996857841848567794483789735436810906377096220090003634822846571500086905031025637889183306991827927744098628591000382477369313886669577464584812831043952386832502982427967769869865726966249071122970608593326438509235749937430629347404206053046932884368878005321462514765910888643952095037599907988962975435382050702499580803942300569051464142942867849178392861365419123451482909827840737724196397705277475951104798976274551137650264203461278771705698876841359675798420887251732821715311731350607550179050803848961601791276132945812202673473996936031734895243338336129116389244609749330700431646279640394680047409915690558764301006640258043705535737406902136401825732500541929462262258878483300781598202050166115071052065486151037299822857314706165265311708415354244992156230631132943258213328152783367910366895370999026920092119275851936738889675873986376966990463324460408417611980733374082195158893045242921667396121414378081588279054562450892510444022733288793182274761249221451710519465648372028578760553464363262543487584637954247530544408310001098012489770949452896244194632919897598877129177938313153710975583067736789257624178098586038398838182720263635645478814263149925196098751790043804554621789438680872806815584439324128842697347916887232897274876587398930512459431397002436400508466698790751164254531246719846323326727043427454307401540774316116817791934549118282275660127206096232368675165968885076626925327342102789616898699664466570544058202625390425006474706012719017008712590771141975322617685510097079864892492961297138263400663402274553897426589330383808162276564341175054877113312224785457741353820879612944470647228861208910422458550594070198016199503255411376846820824419314333039632602990681738643778456959851626921493787979908042595297385042887795207663959592407957358901884999633533952201144626787545707728271565113908025928787375268188449338139141372668068270101144547979230622356156204881838197947766541166400998682588253538564123112206407311491132918956475340094539863696549575746252445926778430898820178374001558255029465505272558327884842518733073609012600039501600510703209121095690254928287464251406646487557834240754006528848633195240777400379783950002317413588251585272551162051073625044298780940253741774736988379767065880925960685124636432526939436095470330158668341816336495462652984714058488958864155450579628253057838559108496333907235826937575862515493209017961673955874684205143050696224166536201797973601345600955097831464592603151227932742114484499298034155800449703675700342400895515817462304261845951532428436363901265170393802747786085294131470021259457858597359037297200009408984839937987358235859456305870830323370382246893522018720858581528957594190449583767337380824280567631004365506999430417526837761209036348650702684186891768977948567494419590856909034769897798169173172711599784197920998498304350960667071932270780594681514454464468899850310106590461069927695008800108605790351515258016034769439307845429731503581087175011731440197995363582868776372589196247514932918731691743649740634217519041999800877740617480539053974098327967953841213109565179053296210491215722818990201997597224192465886812931511289957086389513594680716663829131126751075120635286747973860555837824211697064078111839601070673313460640108445109744653611607904591191896474740252590060710899751100273788814733439626290216625846971028862247676335560839172848821505258436642718896409282108276216379555273327185015410387508101217708732830628711628933725368043976803292532431299738310191728730004461791083030302493885750698775949674998881888123588384770147875718720172404500739975198476668562015292022513961783827137074045472269540455064525588839282382099398754499217574395599246405577534397469251349933142276771255037008075754268336768798808476053722788880470916441039081023705327908607330670651243502587685096059666588803233600835437971129759383169815249511191968857207244704808876617512769944376710800118624949787785186422303461973594311909785110601372357740326627591278012444794019517334544667782180439519894459865007650676682905371097333997912999226465477713824671045419037883448343607878781256045109984668594631079307986826141979493875650997051154453102233664124150148477144949477460621781800793248695319947822679331308674904380553814401784183240071444238233264044432771505473486855631172389165963629342069438370959112532429580107663601363701310919452468796031239385826922364723352553262829898084184004568489841857698367544602862241295650753815640307771787716319005630872541208824592467408327956611979366847160138083521726663454677275937192684881199372843880785753551988702873857198107152991514263642988932411114269963394875334778302403369928447064396510995161472785499964644797322478750523098069319917976493781821481795328743190078656575394862934846029419806498362961251031416764966814326403337400538267149008238465187224991458174712674169896268634927934849913861837194601153837500583463346406107150266535738591248567010768872529220056639637729450300265045255566941550076830050856873397489747083660307394224580803139411277884202512239445329495475737148397986711088748287063382435826275533008372039067576286933576241653175602961101007079351705513581394284819874029819980890070610778138989991771686645567720382701399920631014618913667359368206217891835016128555231064236615689141204010284098867661294125528528084481249382831008641223603974598851984452123301373350528073076016813138933342926863836576164642186867937566012042287325673171575616280893080722021437113886400247777411540262194442641817633243002428299694903573496703082353855532693557841847169738638224505415049152909867723381789778884057445936322831230916765560304195972108618726045572978182893545908572049038028373026916499337038550884482744074068209531924297627001032291416814937884044644381544725597580107014033917611873426002964032030678701881404565831393259811181500881760511625094673891825660068777335782456615190472666387013641326872767854855789862306947421131842211976846428729344467318673094423210742049225802576945610523326096439344729384692400504220863155539214164369951336919985914700855913623468114443274800608760270710047798725460314134760488254681442801867905152844340399970360104982660988558364325631039464859923129914835922627835651367874735899012548890873260496801181612983203188016071662385408072425375611179595481408893886754217374821467669651583780036454807647804558092316402848370499161438756850597133317129465226861955854064113632869211466142835270555499559073343165646674789736766726202922216699024194540240441754441697377709367218349115795092601293788835770551455136793767184995801626990039722958378349293422375244467279065141199516505544285824434622068810375837212127053327424673953835799458026426894885918785769183146593857773190722365257500395252249467003717112982006073569217733581435574443960262944909183490805023092218977603892042840868212034896804384710480382205499182637148898603015980345156168598460095677011112294774685138082040206920779107243126836535460325666799462067537526094701977774088570848269950227161625286327128935937335337128705790666033891419576746953952646352730369737495896869071965782103396806186574785440471431012783468748544487283485175433272556919226512994087482525491824121047594135894733252119421360287390949355612000245182044945422774221877784936135620071834742547006476490272745065177130488965686739507313337597272364769683241697039488579380502666309143271389365695375810306137357765438333690249703645968299317401561676188655382626941410671431400271126337150194513653316861972877371382327498537696298845323860000746901221980520601889041466224331394466519012596209680528850456982637265030256137163757372294491803034060427258979921422403971201933120138422537630150277698755195721408872143259751458264514717751383227375937709840649878337755404252009688301872479607202402516182354149450489064782441766650927559958118838057524017817105045961349324882452370293008771706082873845845440836254308515432553302559079766672600245642403107108889417872797729338214776432139054524861880725739973705559402540966544632644217647187758247421545157761424352130935878850862812888063457237372307389587722767483492791069932290658574235954449760855114637705928650956144361876288062783119881057206529572866041015868441563450414447236352645104603864281361832213086162309814099351546562087155395905449265812437162954775141241048269085118460476844612155256026241281011187788850802843287304688319802694008197610188518928982083341646400475552788409742543715938609815819672169854568207683304748164354014295361935995474127584272927751302497602752660914676258566657336531698004346041291078745370479211635891647247780462192652719524798306023373061290353260596639991543811456418897861927521159105939588996880093233218438429946424901591177783894087216321552926191478423115663225045350708743539855728030380244345105522096856307365143996770483756927246549985226709805120317268176684833644416433450669928889222962826058464539356584433936197611663267477411082248559791947480457259501846506431007535409739644208608995081434221337788539973707345654211547009751568961270717496112075623380145246330690033115965827127133116623380239519381476032889362164662023298049933946938456087098567837894304354330568786531896387919305434977385287936787187399587017788014851496563903325164979625484870077132238124123741623727138513322534878271270183352591420664807354683495664815465630873491441568148375766567480282319045788609318425483899060274544160222592133131955564357451737084363227338823694528597163938766572129701976642898011132989484730282885154888042095000357798462612498312260912036558175083394392917830293053421660486878093221842624323709226945207260302967347667559491436272268537973390246517992423580666639492371875034025434925679187132960857303972546179653422494791328242212876048348142349965200793719480385671827166691263684206020574443182342916933721077474225703433611947558668847287088360707860784667383469228748825811449379511314191786219324569206968030307346617127178521704474984274005363904960228724073087776675519984798885174932042223433356729701339366380734079331397474760656481183149260563027825364287661450025300878011061539077664310199917425917779908568705194121222183021086281425899923992174425799571106064073779013593218908167814750596481324588248672944144429056490497989761444201907128512582164181787196554119709129568854308356818863316609121339895392791154112221247283540590374088501465028929386352080187927069469673189974635889427426399210569902207266069610130758389060582564481866710289355916263027665914705616638664218926138698532902439446871182494770471824708820375219215345633779370677728557724938553416288062197443431860646416134131607495853731350985799508710356991206002452949881207189154932336087125881038439900616338372558616628619195656777286475866552492732365339851647146034677626573610889803790511049448285334674805284834219313742453911480425908956523599580834202156710785787916545941917718600895758386581602370090577712887126257141420382196317095759485208290850299830846492840322624170269300155744700236813938591127681642017391931984803579361631510311661023612813586776308975862378039989775916876998047228363556024290735258819539705178847529670803307212712371262072053186275144929396701995300321697883912619349724187153114505480570490873049255932487220116592795701216014384570330562216565555738059740589498560948592810006104580228803247943274353288950860595029243049038238907136672491335915974605600992820715166453987867249772197724978864455057714444422574206473115882143364958726336111094540841390373086308317569432422649122062365564425846165461482163675130963463399352417737111474768356606681219768189233195561839868667411511214407142084540543727813510364240856338769966523001482033237011672472573613959244377527736757965814362978404489582965853951642123989712464360560673410122609633698417220249983454020450364837903383073071438501755412096543400978275412794378742321599256387528381432595414238705863973321259019233545108476998564578113596576175077165067072061358848875929292018061945307702899066011922165992721189404423319295699600664229032959313904453894514145069607068992432456756702335685898883743134519456801875918203701193693901461348524661234003300809366095235565926105203951057146033252717617796638047998590857097107826563742324971050418207559566573985695105935787640107195641503035503570869238844581624094189571104166173028477440002346741883937462343500255071836675421463742432984890074761828830948008292420763963285274403477229610388884775178302861690647666787705783312258232743919727981720244104903376911335566938552400166683813210021850357739974170205876921750509844892297211528510093418495981317288166637597478318512294234398649354086511233423769241745481913365096655051869684849736569142225466477509753026240303134358048589181097311799140116944957055974999783179516186541301090810528467480889749736254924419663002926647730242610833204026816377457250156209003604164790016353040798377192555902718606641716061532778017460558144906462734796876429120043569904263873350248723411353983536332221925924628235147631682534126030420797846077405918381828318416587307292005542480423164353979531616582955671481429870512492414828015018808908536489726196060967970848043263517631981604836225118907946228001253968349361566035845043160320050183229716008902625089811109869912876689974384692241245214461771247856017420815529509414902296985637995208351998905523005606436880922224569218029311660517110196641328016168849229658580868946833687057301239995843949463081686008377952575773937769875313584325678677924698129466773212147808179799999974008928429705416826059664850249357623227969629495979610090064863105265870605926404330577533336809664728573495925262603584635742054493864987939314980178073630145882932356835595153214413739155494496566243581161028580749707114402785667766566104876194405901424500955504002813606836858302074862204439711132808687791052331347297365021556096677162079626928755787853327553657377554091802369675018225575675358653411762009323983098422982267679074836266624870850978058439943246396723021455573110901166250409895196841688382380482033831810386906739535954818279362907502897285268476426867872396624686443789425859719034971049922184147708917141045228555764327581995692674305826117500256902615279337830618899295798598269565895312464120944625321689262816853869701782939162699716309996863931673805736925661863497368861329681578226062711823823630768335516272782394415844682438543289864903547781288790583841180560746306272303134938008486331338824490191549859250386253406875620842382968726315501512404601259064561148904926073662550206072839677376934602023189553942993285752867689369496410497825621465778005345025720447627802131366642766871270664978518487614896672055199701826901661454360033371654069926053373824006840510511376772526644987688115096653129869150043393366510730296790186669891537054632109720461467986786519556976828936435833355218115422837995740527472687454639091055928436563389770348295530666044511434366725937646586174161284199750620185801441986816663059727342796406122250688715849957950523057441674968177049579190663920792165423264557270502806072655403211654036321765161470146539015503346032043090418793974511519038508317677396518089003257411848066741986951464544070034034447561588303335723183008448284094865867477417739725033049891942008429172479941372948098653434995197578783252952939585180887701489546219734562373995081264178682912498074667074217074437235759155542647123499523432323586097798739789035693041736962006753877511257810568236950316016283410971396805777947935640320745847126906507805688158846805921607591482031791522119122544868075712975375176572263268118077731473019353568008641874217156365541937204787592914962335512405469873828230098762730251550932003235094331127003605344336859125630014405085382710861665075727324919751355029518102819293237328711297859499576767568049961056626535320430795160621191874259235426141910588923464935025783541376927694410504422323448196814638166149545922451800423609363356454646884110252296568580354044619549151160866114355787861276839293624350251045141425797456323671624862136136551381139055653531654928971540525306064833084765300948426045296238336142305421956870321871241256832263036004001674382456667395432642505809056984230721637729658387172093488561954190310411781881078316448673640411972444748517651123997870996108741405262042934704636593034443785151947875326748036115232155690754263760563724656192884357703915429060236026129897594286636333715081867551569698057962388544274114810927697895524559384141286739697748362278222832761192917002774811504594985309892639961081625010255510373770775680873568849517979901335175405393146310951597138982210782944569307379475884250102110465933653657502256983751131816052594761455937753790749356498250757235434215578602402659177089218469271176212441390176982366506010517259973962597684960260791897362241866395482662287140560173584878182325504507772541491465906909226200639109786692748409405214483984403208751588219433110470222443663699428908531454758086237561479625282043774775304778456365265886931975139556798720852979178904479930748635482271301287709464862754137046427406373144049668598698994234078213836294929490774277204922640565575796463572119419877915769638224095979719119199462986354911493158175187356335656866504507356814482454621884011340708859437566052807614487263920645727632416235644392352606886708015386628088859505266770529662400582441676491516419143581071205312680639227003058854087191978659845381424548528862218494097811870038184561402994106802011045109864343785818838354116792002002670656225088443076366058710883296740629570113889936321929885755740142386884677977896331993982280050502006474909657576167170576614991911041155179866593052384757413514735543215485437970923947616124822165452632607611631414079918586846329249124990897474369704417971610390828760708607663040282713812874030446818554362720255595074666393977379483634839554879955813951366196992234434014711679959663081057012897089398183843311526890459319949900447172407338333581537422500830735568126736965480349397619733690872715973610665318130023557514600321069982893688000230161912590632536407503059318047640557691531764136488187160897229713384369061971850323930826134134537222991797721919558336789788854801824319583658290282598963142078064882081127817431179060514702305480937292620558968400472299029670903485076624601949256716654529529830671519113568143585454699071223585146918823056774334136387924432094113725401125383005422919408128579635058206879682800940378708893325903683027872344628637275800571581604698127168018582813509168427009903598798926340306814224027925324081334064117490332266754186474818602262514325638989401530218846645363001016877459466820354350255700094454530198330969319640678902045878077139889162033292636057554994947488947801054935446205265985707654991144276258873194267119746591653788733130914484528358064795342498778976317909221195840138104106921334590163490544644229446060857785666178217374879261539309272396123189761730200221892587331962615989030871253482912212631415299299333201400217641121942311682674667840078823084386269844210514125549960046784839614059071236281107241468948453633656511323924055250790496373666711134663012436597618725300312201381966127542489335354775036186461391206361016893594722759176907357163387571086147605683793195748071674913340462770631518499209732270114657416735062370126379194902253873896584309782382759961789164130984742234387671544153762767216900521675677139294716793886360146367752354228198471275066885948541600427234208683025766264747666367356128925904231534764479644107887881454670553894669605982631915154537962523698067992806933569979860739140108689583646297232008865038621709029221604869504022080749538750239669197755576880691724664949649880534423421831577374138727197275362985899738578545584646792808579653214996752943808527858554638080465202030798419406240247306419207647813026829033902505161329466888078340894241871803911347772049956787343024970885204013562476446849172191224898203524195400173191850766860035479905269434082926320818037875396892931381515368730518570966574008391947665098313553713849903198233831537369523041266895446514201454402576090447299754760630442398815368498748907758551434908095375804253350459369956641880651057479966136067222250820838447695077105892161282299514237775291280414731719351453426569136582939508874064052564146165851466773328096731229303295609749259922811105228600986303625754446570560499404413378077594646935433598987733410429979882772805442923298824185660126558753765511828741376767229042152266658448416110204942957716021244489583366804835674292623739039627740879334773500870728739933423257944768922200109526683400955668811942621351194279599380206449599044830835735972254542193430951229105616233771156603676747430017075392766895406731412455758663609821246158821678391879284485649789780923467643281514385073375461657528830609922125197590377863757836634845894343362566199192854866175527321108435185076345255283352998672548326989219544331624455204078934915490281129456632543889910532397116842240179104120106771881864235459269707233127425896706523115007659120786007981632541505876238368985177755845319518008837887680641439775122756754352393087764658793391677656135906422045378852968277806078210372914366013267142005999104522015891528008196825244656381440614850701407949210050393502677591215753962380911764898257020855897536504944411018810051126675375808344898608399444804347523672768543259037855433810555584741044985059858524697750360790626397947032993537880990392649664579579912235148718142262216746253661980658163496249147302263694256606153394685464404863516962105777164371545316698986526673883102664382274578289888060566724080828867457036801385217253593387110380780827586694476106219785266251778591568932865678897940066166140858144169121522254621837759240055612280984957886399734243359300030206530702105836809907252969684858024648916205691260920520409214489889052827454798897085047085922667893764460434907197313761168689040324128228265454733773933807750606617531408010054307961926044671804802670922659872734445062253235995025384342406169574660390829524377960790720995138394306498679722195867004224000884640322774248143213559293672694838631940979704344961196036097385387499961455991336986072903021407596527979046929694858367984141268366193029903617557059745423407081699297493252122488696383437109127776836747479045878038197012569153085311328110393596078972347796442235349170087510960640353998930032137613161712190656141820754025758247507795382727845955001487788880577074871391114837278774297516124448667145300028701992239593092254130875700525202338104845144811909246628650651666867913489341635339462409040984862706013386749302693321328110315948515110259046393747831632068926416932856460237210940761271083996743539122893257728517231371988471615182411726357093012924605933831143750887304797667688304919157506688205123916948418526882253602240113703143190381476143015509820407046484343408814085805539643539307656653966322570994462138874910863276056588946614748248461188697412645393671013617683590026429588522102765082261749040904771669965953451379939567013160252860456796979008879746096488548365512879635208807579568215313333848903494808000969633145267831888194014850101349959145638575505511601796469604621838959686851867271374759818432271011104851858198084109093445804964743673982934726141887391691761274454953517845362413327013242061329265059565821039221269572557014774120061988029358855468572425479156867830408054083310301208305739828556535666817959584123989141366448727204998219917089677025080511953417228604530497454657435569820304360389393252352897664589024291007910840249667490664789213337805206916974453965185775500075498769526995437981710414415420906873925328046099777577423604493225398009550667587854034322111552808060863343221776460310657923500501946624750657169815263232425234407111736667061118127437424449965962223038209864755052637778486567539217001835680498345495672383365394404772537655064174825161974763192652064413721368775387367742415423643162937388577817351710594231617647980225044289638315006768114888871708042688079158744230233090423019938329974567612289748285130392121462802739440919292466767417467788803298086820526286269112783105949760233246873552294337368737314812878856929701191741776725620705744480780428703368197147559195748748928439687794855222401685029028307561620224952056367703770701677961151268586945154026029346908162296409634307967299250212787402313579674536879598972447394598380959152637442851421968929515000620223728715962346978888149226974350433913774967759569283235938616329768977673362960898179153897040500256134739563837679083562177497385474757345776130716759730364340566936458358654836908159941636229154303934719507709945308372604957328485098336306928837806682031003066330460118719628935588587707701587171893273626989729862405477409340512822024368495494776925187186385681468161389547431286932579493490503707223035428757219869544497461448840921722765309014766999798723717334855663597681399076770956687180951702876662719315307727075886900873083428652626877824195891159552868929556000742785100689346510450380383769674926312055405559489313282979940576219400329092591822543793583446727831757325581173883410419592048360136425875098041630735903076738716904795339305009692190384587497752460200368198577393540022960945395895951509095864071542744566493972769327863008523908477475914939546698626597896369306156706587160589938063147715881470580465530897245137505382268097863314043384122315179401660683504714825754760878440444000792425773088431695024432660605858194027288776129960398024924513970952403437868082662974352453947127930606294007798412713504280752264874602876393154035572877189024157401897306299025471789521409248842898351430396325449614687039269821284428036639787739999080889194769708154175922298299983424606832691490102726715970099040026500449754983605196197979197439455777726682792729337081924632095388974912699772312734434071714193563997430132184436776199104133537715104534090613936770379526677711967739249930207745600933774847230624814731422447952283631834856784733244338023175979320576258850743945600151814971709504888481206510827802126019726657095055150653746561345713997206535187332339854909140043628926509715276699386741531786777036905922997066909648382773300968565268161249670697476763529577367259139516558211305949083774151513956338974893786101456662504106990759130971866323916003526295994062343740213563085662871746990395673026359373208270695353790760874388194079817122304738034423901495132269509479734105175248075632677312979407893165061450759938865032488601759404673090058311754783731387973960787477248308320853683607837590419842401620057717688666141788644240382103329642858939583412555425114087585445094876670312453446182838753333417610633854117075899317004453157519830644164370954848488361516857190686592082653607730951125138992662446319052817379081914113995680186356370367158995904981673472846614249948626502641362836839172660396691368014497452342843748386491338526847035935563945033058564303649700436970376806196659896836310983618535071600326912514470544991198018994739439448335648162483293784763425455019635589340673033676691109151097822005960380679241739133710241794148443199883154761582391964465815693513263256754583111817840572907897239948591045591094117617292854427975760083384577865584849598872191457968587650996056669448651811785839657328841141275005355664419362413419213537143017264391494860709500646832798562566820199888510402932531357840821630628612631047711906801828443719056351766794623044593956675351650515328983476596364091409633814365631842612363561475621484804596481220827441855734357073133372787663283162391294253757536056954081381536791824955039885337444340103632564473026498541270211394115584246889503761592602575270204167792883238430646523328702513972272987484431698904450927997047313677025422158454715270306929309382005250062922036113522085789269879653780260148335439072027870591416674121912847722798103928820718561206553006967054106687457271373850303387806993231619433445620814351143125912407144767166814242253577458274685859129642211421336324595864943581464302484380919311554278499338461238210167301603208397221051776113644346936705399629774437268033914915777110943933348565479679016741640896214373305103874033550218277196598233785493940420506941717070874295024188461697036024797420006101920031271379101855096874969384400838099927886213425082502643494265474379596667373615449045986236096412677390116381586965876423911135461567422189117551489338427545064167120575508776700886934603121990001145103157194739240268822342835335764756451260493208931600802771506287531587562126106440739171996112245332844511789674386280485633413212892540005439362723991503647565588516959858675365949407454939858616604077432069391623360953506263335568982256907647767336066060452703222153810102510701234387958587920046238863482812781363110368613714467721345862632148337563266863210160032998180540903255435682575937307685580926795591714156965544720468048070322562655638842968219957175111484981116611777622679558055686172792945841515904575914978049757432143697029086002802865373695000327573091665094605221311155139966289451847257168639075277999568601655466163649878385537330486990280399322682241789707662102253582865287254121105376634956124625373524401011365351662685220916003972746236884358221548555524303040556671428711976459032877304379701725802549616494681430947321801008479702019149062111344251188133916431702687770581013571080262294084755615201763186378865301700643077719215657331433966022109832435313987977285493924040440415498156571422223855911703576956063257630141209910189496929232783963217813321789718079404523282579342013092328663673141866349988793788193934872817296601259103954142827533792271743048042620905295629276318226837374885454794254186627174049315210684756413699778791900104773419344275404927681006850362048694016291705114867350136086443067722297190524596749830695986835025026380693277241245498196633446265049248333833453213528388730180912382591417583722546060827634869652032051038759846229534952997296687937671510049949795199243730991598002992637285614922079077683524863849984686222135454520234956845894156197226179044047946434759238947626120629190994120468034027184065212961692519986586318110645821545976948198078300781925476249183341550566362204121091442991550548455187386304481370383154130098747764642865779751705912328116615807755014733077561386318077777285431782117553975254748987432558924989692578052461562709312963506688761556370976248127146145596844148355856161886066759017694474814215512202968768279052567266512138510402003333894618290048331565732607068459270054938720215324817762690142278111415917698648560507968352065526476253907368236059582362385752750907874735581425037341219879883791208630352229837763160446934445229313704696088693050570946748956611904675383700675770852989074595876719790574498967745303127656904082900477687243590523638798625368643961716217432394180844265200228807568645947289643763078743887701112377645078244376762045794443317577734039828939274908533241205788365371261096844918216074807490909107256153770576274173196099939338235674919913635522927649445816516494227974927291617290133712118269519618198671060910426969889214692508846980454745828789941988843650256494868232062774086221451835468931917654575848315271206860157165778317964937420132075560513360286020834972158532494194231372928083667663386929232881090395571928378610282559723967664494372236630094311252035459166621108341543571336059870507412822256699611719382707613130350864638643467306573573268466598769478385171054276004209344198756830304252638799872334865874647093731252781535858641861771868703626975689094716322214786962086303387911386719835572827090079950442262907585190244690174199220864224890681899815828370726720295696722808410123739979408281153547074346044300028717106404439028287352137247723745865540857941277849695333738812923895429144591699652253907338914993080499680241752922213921663637233229969467252852876095020283779335516934629622442992392736618776928535811388912482461375111177954902346676319591512122696105923669502479780318861150608744018720741767287386772782827100631129627186061429044656124017623870697655437828664593841677162744792179088024005295176603905912025555028908483702270462042395571744643637589069395517617964021649222711506270220291927495348716559539965836219799495649883570389934143339167187927006367783022866008126429136934389200504776845903973426664792541864345226047864907251883071070512448366910469713673285408181792564966890623087680776171065835972225086382157459337744708952889573843431490268353722389590857076668472899267271924000028703824694654506907646149451938704146383955379396154738162947318348063738157747427991472354637189144772066195746417289336198968640210493964358653088298993723166646187921502420305445016248761775418410372923430653989968752307310431448319695558377447744113794886207649975190790753209980693380485523321944229420732744851747280148853173178195307979678696519500324442134212081321804088234831068760967922151225873266551243292629926968973826635060877896887765340303948783520806066456713784939099975083955441502719776252598226840172958507194900389981028909967442105132510895224920339259915282976908402803117642516454256695746282849384130219351129356708051477763039024871600053451447838432317801128431750730659312449445343398485848458104697333503905754430020165062938957690978204068019234716102445286310607465526588320203664189781370732333523685441101485042274889464025911946069066373414120320343594582733051089242802902570061949454801317131552422604228644695588531466771329379431315537574391027038363969907233170143581895299758582463307808069307524813064223184379853791896803918521498848617297306215761957663260471790388806514270517082234759147123648142050522140458743392805230569384545219947461140504448918223115655912278910844239444074905747941682842289972585471097342496625081523525604350041447471895778673701883178351300055028241108398169932517608740279212846206793462974014606820481351413255791880716007880834707366529940062407444790573642120707673801141949543426465512940213323279025792662086727516165044244100738562433876849642712870650073145050088974942991029808229843942208141349593008914989840325577041110298091442732730154887118703680639993786609904340115512512552979141459840941428820729224584596594344542129168768508300366700024770437868920385921948184384656818753644209228678415295163083926262411438699280791221186861318151563108091473015227279526847165300611839180394433623121521347752514958594063028678397934722874063943975121291865408002511206590766855279678794034789957205338005276275914000038925574218014760136327363730723099452096031190040364805782255911553177425703356983713680232661306992368873648493167529737799916207631496492961773385240020806099573949826597548865139435273385690643065382860635048939200148495840226342434250286734124369485783531017780509989642950283719930180519207789695810869206323010270314448131501506915373890301151967438944455666197223522514935988837328378870335657481593321713839061410489019264714397241498628475781668806197806770853800080816956828286003903417568718114315215441535655003200800265173061210964791363316666591615117217060484009245609523288670858105518090892761695953826987994337583927186095017580198812169975877128621647661530553554642935538955105833612725082386079850136424491808968628667077757475363151621954873406338439277384878482722840425417865082470876671468290765033288678807570213640694132151686039788609138510639306087020001940294207120364634276829193013250170153164241387033410171617864117316990353510721546202557809931198173533964986621698725667351019884658039168558997052608617192292822994151774004435845271269077178877052829482369554494418131779530841522995259347956158790870472076572642536531667773972782496480619237920573261542911426747154829391631121629582746978594763891502857136178886627052827111691796452776241595353052839826092220890797907361690561478241132001614096409245283409457269417456829724320006686955957868689212676897562354703023540779180540804048422180784278071421485936269586821553743791230007438275780885317321799238407109208919679868369636717111427380640681908483211232853040643236032745402735576271046164060650356838602332685670793470731924755411379862680110562033423461996139856535472363274751736669694586305975644014564275778589675115732278760265268942931766916650414784860150540959473750598803055603602622427199392257977253747909314226010833257367752516416526877729136847557702980901062343665151433595863430234915911786215069862606328486158365918482368653324146232531986369112922952195878098306387902486553456807999462724328129788011393762082004072560684926867578011638802632747031164247312388188961444422849745167631456095696936810991016471671990170752211925466275642232372124052907276700658893182806407239709254802431288866101199139715826666118667921468843266415580127224895082437184944271176076800251628385736965512438957218178361315593106309783295301953157458992401789943804030283271434365030372505162659914898527271159004332269718884221109587263293276790395998264639321392355338230684028602401121911621643465070545753816893356256145725806476376685270273476166446714798173533338489130254747615849456119855212579936781927636654965447250937501112124707172243874522626112532741423274301955002021217784944030395515048119994784301021672268403017117273531576492324095305596216717305646893998701825225701925187510835148089122947089321359285226406213466231929651945099999923204139414504329661075515834281286559745111414435404184478211547003181419362015671340646556682056852933046815150167887181102639148379520414304829448359864688624473582739472945706481925430474910142268022272642730322164919680459370994097267595730308858433660118800937237119239772502591775698045433192102539136666073448158078836001077318780269696055001858359298667532503233290724098675139117193894901544980070649312935836331710414030687354509378898669250338150276324784293276492320883191262727704220092373521432980430062706328656511369307951910942133475942016547629577120989630141686590991690024616113339021541549857930205591003212149717351733898898544917645574900479206060204872067199235186543061853159512031161103747624124838933500415055907669062326111761918622060019640452443871653595467357708699062366668047532724601674451589940537646985250945579320079524936538865529132156924625895068744934878398540741989710564232204866659279902883190026733899988201574459560769504214106578812712282299874817382213032728694049215698366766198729966051955029676102294591956175504793989822565130387904722329270379294079994578721020001839650643112285971042963424525532701205160778871242640659552830394496294637077549149314200113076686475542933182785204134658039238389575141886050476468999772606034940044267208535519943746119210634605035074986339620051305126679602971956336426974457357008510380031008621120591813805601876627850886456758345589433893090274540010070189409847658851772142538991047261251914879803618490395440930670684057378839788135450695866327709940527931472149534164505413072734993069593182408219174589043973734724370584960481685265443625730660918701696539351979150631238801516673874922609864384978446565050982569719738544847189435167912190876256053180128394965619911029095745704320348111267719931102836099811768014351914690616709107411611116944263817023338542336405627478596392492091214020738980200927235309888886092409909498286400142590179108476256585588194593671588102016436531182196498233127858080479887390716235098361641089030891654613270899616610726990169198536305425186127002910505421749294696145561924563267526018302426040743201467472071978681817024950111905511177896798265616473301601889074402550760195448978091664478834751143578762634879032798076538000184990682789661660205958586562112779272665106022397623806792648648870142373840578404946434404813344950916577694514656550216662380918751214950663623749665057860994813066837749615467873332304025781125843191994920579909543740315229280054165769593396936240225030273944766443804424700842119497804422378295289692182004270239524899639120632890299878764796775130348576184865204652697690819482169160767554145799048808593806747726961054662764560630417479586359138517957419162825050210650819152829017449100648067913827489556869900764808430915024989725564602940744423438198972921926436916774529602845941299635745692224071824356007142287760660278847721798624081019236966134212334117988107989595465745810961133058529440380166865884011605856817310525270212631029820275853649345370863787028322002323607338573169295665768321281280469093268271503502913051887435994847369535084852522224297148339335375327216489617869283853867004620779288067266524352716914277920888497810025917827624435371050759746600187049575932465978258170813417084178235747845362788751860059722946737793863011067461009951657006048388078537339061529062794937687198313447455619265578279655141946586798770454513386060208567805814021556014307092573266811993457669296706762234412706996757220649027327593149918094980610016443080118291553914751621837903815405712270117332317960928488308285100390548463957635215461296892042643670124609395142047745189558280343273423463163536810917335489964013447397978603613331696761433052620334518947895021339086756179370071284748915321302367771206344501066484862161587855288508967321478458496656235937156254295691968584676291308703682598207141282613365566880703133893759358087649552109219254096505599437238784013989209776692590698809931542647595235643599787606804408645242638120918163780148654791750655099536676182947274593557934629411752288932194582440885266970965871555821385003320826356570867776727760379629020417882566122537131436229994732370463051476156754261142527434213261346697538479814192980616928191990474577849569967418899214111755685832642852144811832843488348415056290339987154695600934138199058206782285511070561108603658849289582432030718702170746519187252728725917285075806094082234879375811843829650476096451610207545463151895552251860311952885527282572011402539957912531962062546220738500056095082213954532865181783740229845945464001115986576554730403587984467268709205249769753912864881548584143445171326538748710171684771997335730622077131499271174369777563587236248667129115043553967799585388731254504990419711413082287573461501868935324301022679414007234210528496335031708944322855568378169798633936782762051718660610894158405529209350752612041781786811984419169501914378304723929459476299138414140540601092714363610581194388461071279667334769863227978616741360773352871981287762156498141506888741477243442655196172386109340565078834460025519507941271616891199050541814928355314132419998242915362496291313059023124858152704425048646845917339150676211635686043204391495037261178771729544009950019282387418404622636808623988901498368676405644204704082752556508454303713112563903801605577434758885135772625593927772338847864146138103607439770356000071778332573079997367515163661860600937375445321038419307101912083223259113064223136254918370130071151128732013799602474548852148180891840779909631993085910223616555404403598099813855739138228742466858371397415971630553566604508759049647732188305887069950347021464654437915073598210375444168569654260102773015170993627076845037716084658925482983017211713408157638981104222207543796080403690185873355900466610762925107358910952035960772423205319860174426236412575565681251123995277331601723871339550141122139693215528233955955983287153635554712081136615924550433173433969180948506040809601574093595993416755701288421359827514663778758769728118631079120528462576388804337870571286775270865674837757611547823349356832913663571535828565617232299473513692929632725542326947212592723964070025837262068965050584439468274775456984391169830240702324544631173984709716951631939895651937679017532286262442797879899029604525317836035263364731097432484871141574027132434747098710451034042962304767781022060897305777692315786208794217958336769004218480163025582413991850448544027748101713630468669846881562650521607788146162538325577697158129358414306365623319633219374637518898705629720859354075433934578321638044347924071970493224534054755816977783252070189126203177625315632943729115634277457533871109058759079051883761882332085849862732224180555179226239631146575280520019565192316220753126304286632772184602812852049502641384872184849237169824934009893936872472717054162799253061897944821144147476576425031416885388602143358182643948960930490661548040154762146484325363719344139400766114525964515736441816643340439107257004475225096543347857722987443680540388483021508007915211630090190199436679094803345259914843285994407539530177866575720583885167223380198136146352201715388634394146559595376386446367322132848354794995719937682283113037938459227561684394313810067761801485241583924661849884992028668638137864464424994528673265556926254197301086620119790173054075644544596113208370226379149698013967306688833654297606142723054263425517567883710757322717466465822069740908503006633472041971985461503201777852995151183877857107322973727265876084343572389650534957344142163584621222000037583982166135147435227105142757355798090140609697120279877295294231195162526552954046585355649302610292974121845864353547040589396801886087599275372314678650842868066111628387910964801459181000051930367693108269654842540790622106641244473492588118015905557375781668380840988302094031882900505608683261769174885199452283380175184645436358767751666386781430749315585527505050707519986644958010853113704902720986849307804603321473966446039469122942178852979622302559742334499979635562935606164015910317337864545472034368239310808375103361228741613664044137555378818645138433555748097451943104876852959689032039053229355498024393288095626674343973830138633446168367222234736339838916987506729940555563584345848556866496032104364831090301442349070199571143102524953079643949815187429570972908583750944611125946225900236529186377672316778972035000168750461635243944548045107481443884238009244226036950224371233409404422141338276560853924781666708724294942160682788869975882893087838612285336802055000844150832162088280204800222175498670304976562571681471949398089398690136762346522244742958831006987926373680742691954964303598999798029142401488588901091719760998463559710424927809845965626951380373723545394008476702164255357766673552936497026635660795246467726556382338159965361006496142335559361858957700801078424756792104484664780933904194268591273954635417383511913785435731847713490035324547396476829376950921850488768104322270681811993308169631239294546529894316144084958941965489958644514140894722070571282274372370197237214348657838276390275501133016675943769798757201594862636825731937114005789622710586088843652229195480249731080824519643042086059763922166344653133045298587869036671399646907573452147333852637157732422907730216257775316679497271233110736346708249230348852394045265550439342087687928508840141704337139092742531521875159068561273715837848596587799614021277389663977193671110874553660798597692240421797348177560782787521062955983773607838138139760667674674231058133088363597957537757882076385887066916017487465470786804231952768785801543040858425840947277699756030968403910743174911910358563707456896096390142580886280893486070481177098625122960258896638279478144226186247636057279475504183417050910318441335811947786514618552839115044620397948080870079800021228947786745318933930043268790785040047509210674626595619404800374679601876585021524791735319732174535455043668147720522193094063559300337873886741640299813311495439769520833553757930193938524556584681608508210107750635482564782245235834297443003177385411890289141793239820085490240810209164355346954272015539285958756451074639499583077010009246429020613442061570742571107024806584606074580341587816775689137382528430422806568266855105688041872424020711924314009644301736437511000754161073002945592785737559447184593285848807024504250907979366374932945349435060162929112107800566007358136068071106485401303799700914001346040951831323591583542644759694677150749370400774598089388222851118044486476251752225553381112972929833288323156834436151255882592222349696381743490365372551378625571754665859143266594371571606425732278783298489775797233436557935846421702217416290056131256360304905204988429580961763416241577824500203776724295906740627053541177466864976446938099601174821428252301938044466561134969446463194502103935586570875686717222494213037762529603704023484166760880516435110574346386572972157743851274846404622644773631762246269405003600936063399823920993323139224073663457782190039469655125812699866891703992723089166365948856330055199646282914517259381215674036476844085361357534093853865984835881692764736026483199614508425895185771079253537591212112411608544558361647974588427672865886532768368559442448257388747392899634621315206684124183974258325526704756440344073663973244648511636098331600562334688899613116277804691000551545630877148771146298038084135907820637925390326022905622514646835841506761206748279799227420237814218642716190596242733414353395911170275612719607768666348330024641880589649889872164853876557529682443368190888305687318177137741836048724050581958377924101581092575412552167040911341870420310466023616071657312868830708533582183460105226300137520742068947852979303068403642689013210711350413997715775658428549463134886806242709299993844662110311852143669532498514361307010243782699078462284378029434500902745852785333898465502596273691652566193369433325063724883519341773834813362030044941134857790230805733500387460556876729368457152505456791665190468285993991221448663902663373023126409173936364283168008755291530731167835173190862375645192909272583346400315707701458755679458820696548698195109902844145296658833843078277904159054941300049658074588958486536865375661416854811833700093780660133900062388641426978478181214481155049306816898951969402963171923195677380538097215497987579210950922695133201239687911665074080653748689845146178987482822075769052819725635897532432278747825034092739494864660433213187279263563301685119943739767293851941317737510426053175389926529045920296032444407562781310490116256393019944570617408276016227782954572668781737796805117144745965082030556698938402830525763730115661755408151003340853280703815998920096475180651737713144955057206001259251115788796957504035113967438615246094309248555855561447797420547648374024632751331323856078925770644258243017583738785373562495351926840836728460257740600589311701544236941711805218454158197716505040868351946352147231323880839058188925535936091222272519602364526532066971166975910976196271679022053353575962611532578178597193663921171826931768154101411453003845036577767887813745736725156695303357084203413773820583911096478576405216693812300540679488632025723895418229126892696237429029136488368703448052824960721263366850236646471769164526160146224068027940726665264056131425474209494659877912044841368728813065010869638287252169619619340622256220487632866598682268334632456187087521608054046089090273134094812245749196807784170771621871851230699824701004990586261164401979147492557645606596161767792484513807253559369161661633753193281105424259750328014168092435128327225849355049250211900594216974097662641169417040121894942169724437016314686664571700336512652792149368312462531049796728470418815549300123382244625954281248206982048269833258392887575835589260251176580333521770763425195340695997653504897114178177766942397616564428878471280313482045047674138748331516514701489891662641777801823515296536880000808102025589391870635533627022793535287175825002691256921601920282500463648963550520536223335599471320456120763076671532464285704343344931271852662618130117494098145240643661632564969478866601420239841736203548128193721773404035445474214103903151902535298094616277825871772279960776489138306782391778430848942251944833573109112169253039006911578520768357839710439399339842558503283419539373740423636497508891535854665217859230454917472526947945820172644798389333617767845090339808173174885203807808155616555327210573633879326265675844516118465544527956994646411053977923442538040142836932450828066734972118347828839676813363167795456441611193066891001843499326932933997452757585215318070824662753721970155981744933687272414736689159847558908686223488429602037886195946204854692400109788188520252532242898588466231951002305538877985093020343999850212802512113963421490905154782440694385123412354468756341870667921435347679877954450891622995040312452027168228035050128040850543125648434085121609011684667271189889644453726975989908189912712196417553799973510588951433341931250959726161182922684732806223008405438638521045071026981056429091009037929581382004550430746997876365118013884959867889693350262232678269927803990195922110141579622251320847230996650967919335800755636584059005116451132235660046717472650463911782930451833091945307339324153600783052497540317081048237621484178159141082177426111985732254975475299455728341793179226248059417017813161651442022891151777848806069829065801920558103549256181579655985260941957235178152092728594895225614911096780095073999188592101738582502072145412807716468331935599464514757356408566103510661540124275205190809050648437249369309297638272855180027478069000482230877288885267420433619461423776270317068681304760450515825587402386330382907701310008916977971614139736081791869652332442459697446015784016364457887350886467260751787401211838015146833274099696962078521885565738433286983510703165894875690047547392439446616348272245564703293546384355343332453986699905802247373960177239162606959724995324496550841091285904597919435681985064178849115350885358430552933125908614358703790415158827780404903635227338117554430830746240806729233096626040908567765984442108557902717234708883642624995066072856596375489096445155880551354175193142962428404041660885931173194998027365976048542662532909481387528516498079218103657217370912452987077412558852527247381256097617329981487491206355426692432830178174575536215957748622971222416212331605459767368679085082438709255169064821773853450746941782476937714158816399292308194185876863716036232120472558903133694302040213944919750175872963548444661504537792926341924572794711909192784087091344724913350300564165972426488900056924999345515749676526352665033569391807673045471999295789056433804916874740333022265796006943893341799657155125014097245539216112007034622006410240450203761302946745306785180353993748522399437967946433752193875519185143299267733184854710750781116412395318940966723155452474176617388584536784891790097299980372257090889644525831887417954996521221203269495339301694996780454926874012208146839026768375276984627591324558055980977552307414407115586285246403147227802718190038157451927851177138938862627034895639491824671872381872949050529650655261237620785570636602513462538522536551342726552640918383420173574856471608163886560931709499530297332885041463849173166598412954056007350057972511877502215171373758813468344241546701827594988176546477326945758121929758028140262645697186504230152674508439121060886427741454378671381528126018819393929887767738275048597643228417107729588895636298731123081154547054446854215564623586874854782044856996739924621685694825890836753076684653866270941374950554958603562095117583892611211354196102766072332269497036218302855996749641935718925325515348324646571822221795038658106140912701932797321820949436220027704324587789989609895686181914357426673164125657419214464743796737940868540633843437863487529432255356243088682817590917831483122351776267661390227212302211331783989144879227190816034922542482698808550613786636299606048112011880078395237963948965626288703736658645736601705721894951555287677081581324771474226417824635030855850774772179120344073082755137446316888006785061070831634672126098651413748278425175251236501603061106522341735209502022124764330476165803212105443875968327192317550594606484769130692131061329817001338264827096624101990025161701836989628991615311660633397143526337291353790736726445309174391109207975128470331005359421007418652310345392418904586536628277118927621198757618474412957923789445565186208546763826178199790703946650999704454405218383866573968134667083120895955792645544425610036813233188525363041400320699103467516378344088083812006520569176340708683597688024673979812800182335452308108980598901951017751334962156042860075183099759646334235582267316728541527735456441705221444927131802192695038369006781881423494957205494659982842538468545510487609657868638827268751402419190758784456247166119467216314494953808918206912489993561762584744109104423957956145854388606816265454784554715353239409949412359899370999908696762966589094224704264145324700039417756586900248167599160856995450700559862230261553545552241616640661292904398470479340719878105747899869371263052712722985377207281702767558927669761479189664115482487371159863119033940056119956372071474413979343962294787266714148521529318872973042256402061744739271926978596993356371691145052743015549971982910867357657484653162453911124204709425758262569443547721129678984249748421175791919726302403256631958050185067625181679882641492140553904227473598430216835968560845011254682786442887232905836658287636498132596437505664696779064400359723571732326631674862818415116601749029131957178951884288256806573755872004799233366069223539020331883222529751690721774018806340720977560562882873221410898214645958233776417786556372115853084240935867284709747307888316095841688733350761776784328467597951081610083441166081307472704051422461915897147749076191516393166989239703266560262692990292822960969657451704694031735676545241056278461632655409815650811081919540168314418124257599066887743561461063782668025561530996884252262584811841669228298926628334453456987467761777782684509128043038980998064161155968322368911977348135803769375444703094711985822582617909087522579408308588979618849250721350315980485106703080988590096345646643088414447512277916384861452359856121106531548672009797539231463537140405543695720629933869995669052518665264647901584096576337096142568869161781138641491221686573724306242208369437599814559095450047760782349383247384245212370212619854467300512482293730049545358724011083729992821555527415805633553311124623539591477894389621537023526233343982009210328784868291235215623877318348979625708178088236058063937897142777124470779944892278182122483881173077949886627384374485787101761355172031772827641430946124770132334052126509215153798037284630013189879531617554484012257662134345463295809313021690053691598904848374939960519212323616701678798710487233695245708783045353989843250945618678525902510598891938296642645086315202303921597550360255632432175676228255090439221721297442419236063130977283933689849510405735626012506241964996498614451792264118456973253225769533999793529958810305456671077483637063483253422452292920830434839594303358165591369597228961422708731994768017230742165364966804924056285681162726046110141865055643248319984398159785819223347962060808173649779394559345570951519771622851742334395411731878620715324448773470109641397201971773489240372069170043652461327383574658357202436772825811948713358577951384030756727979720314116568466288673500139303303181149460260680070549910768937064365523381721449423639963776805187121622465565658211409195549511817182698673225077098687261181492935763551252346188363245160522555862304789419720413506300853214350790629951837235756323817817851329196363624184446418411201651116079420007072990271055722859946442442377218847778871510426603023863799653356726349513390718200942410255567835172179083963006515826311304036350823504721804334985848742759028798684007278172277988581577385342941548538755213043561544485459538461925104024503826759085808987240649130483621579580613104820928229107791349293293601161125787024467550772855261032560958612569246115915817147688587790433096881438866115563359025491911403177323699782914553399419639576216496437572544849317017407925850437570648014942902313779881273061884437907863585418684043791211395351436596222791034259401820961409748278954575522381016586407440405468847296032866644091194889931526290890208580149131314317029433869780476620579618181257054367972730956996524230974448352713739561594588476564221185380311599371881395550279823727118297099159330047535505758978407293593400459278293472721971898607417480729252451219085604545742294908379590448107809597549061776346278851335543110080651360972652094967736231642739786479108447558555437110704338744431845496084011170155491205785926307726939088120376163057962074583386118165761274004864403047921260117331846769125466900711441427327585727757837242734695397245850710945329879819262303257377760282744758214849436645084883670190781756984997269624914905779024732169868195111566824512287948820244841875403794358333998416656705020599750166759125250486855280239748155811001947503269321948877430829719642377163327544191317786131820237104453812618018559540713761010948213037106897164810303077609581962427468170243020809487378617976476727621461301942137555777247699196185496456517289110799035553899691627587278419178963174006201916659515240920897310652298768141544350975285042707290533182342121945664636290864112285702332147889981793072428109364992648978911183370495643582964660924786978995730688655873066043866422267280328914377380749322660914314190040085955832429714199063937075358363599087263996677340413372445357064609173570658265160839348515962306527178761447762727457929299934373270658396231264568938821527855683292227500315554512309424738203221514133436248314659751623103327501242065951098925894253124343172801864288480199705130123402584695382924779603772606487702551130451300166375414974777592025191520197460920589934062978674404299079163996158931227537479040660750334123300072067763969174797012430335681079436544564263918301440173845312880596207838747799734994547030629345410725553282662298153353769411854202506146501701126718491106655001518207607158908019744948690696604717575773583272148539598999028121982997534849539810951208946587359714861643742816279977047402179519393926477376414360870836921994189252586705158828371905750309690959395406265371212506938022046200820514216894037043061967785732485695765285786910856603290857161962169449079380784511009691563291674841042988388558885442374381084741012466812136805622106736206839248224300269638640396778010061327260580021032300969814791420094034186763586890357830272043665620873711534574940378903364337639642568785795632337866818840237226363655339177626256451862796295286177510736097674443969281465063501373244576873802243360672012731090098489036762162149221684041308246195316553680595757937167105191605777697549381908117666995126301878954705267647891803096284825031827814862529958428623106668177021500120698768995386658589203814700343989788236424216058996008336922659275353494570682171136842179174955257779844474442951359634876302505512761751250005325435795179568724307908308654593184463558065039615236598743542324899292076432272395998571917510780743563781225182609753972088223454402135899809837126640759981326365047490075944612117760436509721761339796581280298075000915075274711252763052450388657215404053683907378414749165017870857899450264193859313917322297516309374062258536296970194789421720609128971032225126440718011171455300880622222694805151230284124577761170271183804949475548378361814611996506638420827009732028922478025363900234411897338477298030178964182280414299769871012923416798080451680018724704177173225939767683248271556177498137141634560031447493691012840773952089275521172626426685358821673766225525708871100648976195459176312099113577633655922372109639892055177359294613016784826986747417950614901871964269690937417607387879656928844674843030651463295932051537824385451239481011045445899889195855680536881346968908224704706409260073904986948367013631021977948141772635137099715774090417499377374974439240934473216308281152926813550020465676143249451948637892424475658768194638874147921498884138697344607101900576005975974025788037070409057758823036756988307935347374606037729694047754837831976853499460740184710135185520536411874878888965180833108862359135840948531543516917999602710073960295247325632593870121170649990635572475717578806613737881856287246471562185045982194190726083609475570990716168201565255664484083579654988339406495160793823814200994997561535765876697989789473295144888938742425887715855046378657654701229067697011726422087751733653904763444396226887185548823295365740532021048911843334977954674958001638673347365671518729780707355084642022215848382146958493996329993301763131404150724290158666223804389432865107531792302793259282643870282079660225121258189681438829874645714060250880870910481295770050724145471267995859007192499272615634254666732348730896347013554310469049219702158704616585220119767974114662847084328617006640561092653053578071299409976228661188474096303941003294256751279922613670148884029185943404026959522586302895110486935587639951974693525034959992212056716850967361113132619055144927465856660097218065558902087378356823073252368391439835136477312487100472909759387714481987450971187838918963972147318888648851438917033502124250404770891040007459153009720972019677200302272144544772270106550832704644578672205978827429827146335528079673817489728134171011810085981423706978199056927619732398354696404874665993116392364337635356254757349319927982718198382720283256651959196307515071117880831248544468108199115775225390063241787767266660919715088280347747255572525404395628187487178828652857365667625416439511116495333119939758798656948406658108680276841512895874391545121699978217368906327941392559790741780755076549117001463633395382743235804675871205650444423827242002261128026021076850598210559167073215503255130905371694196440220294733421914405135735840752144025668561649871210559846559765139305859013888303027014397446680907385666665016718022246790443999394444250853992204370610982745791500696255108483106063971475729452113354616598596906048223902575110401883294283743479372474464905113847423452647135603931234503326446833809290578303730516756220744143333759680108715337371238907779117682554281239394378113930048093713243875145034637526855632991593730139353905340029000018735595125611579841226621516543866206313657373691978425374033064793798429081431849237987294672293844814243449457068295979505433174261514985587816091915997789866389658312183846653475228555126302357736031405853246580270470243113547056294303686842435756656774276907516910831539100322346156139101649217284407910014832932124463533018288427392589809341163690273074944468576991443866654458057472408515552567930117649362984692369345641955717437300582533959047185970129465902808555653507546488273735113966695693562317067343400719191725989012138702723509310409465830683929005699263437562846430971575014926533622508922356405717284151889440604442930774557171354997351258891295051470977344618548883396862557558281463826712901389120672097422273310898779810554722326044108630410298697040473183318662436642761431570921816335993033913956311541635596608178459322899343518683280901942461282168507545954626803331193409323610929599987908956044531356935480743266788091257077121424140004810040167594451691712027775445530312786858263836330217522268700391820942227941548459022888277448785508285100605529776486654479224421536518057587458351350129943637093648476691729924586401410836950005739302277319007176824971585080336048314523971323815316170201246921775846706052023465477107096054357174794445472105656347581238919765588245113576284458376026278672081863221397579760808777338510554671743602352208329363358246903766645966210364758533508377210803725684551352152988932827562530650805446922428627619358027753293266669148413865028128175988618096142301146923676894082189500641731422242762597793399170017643770080195165938489942758167479286382974829095966697326478117178732046784179648668231878557418501705941021842990074345410540335734569817047904869471775073132488441253831344009943287817443092173214391891126133657822561342417456752486076519380579933044137151288466767080238683755534557358142449083433396887704494221724305271930717778029769376713750568762264294870929763801849047029697482660767005243054844098702549663566434254328691862970853879880755610212055127774486281318827262203262731745670995034240918106304226890884414364455405690030535474349518901773458942992708143091347511100529618385485942294459028472287979625136206806731995445284346840795605215338313484067959831857543352493370354672970654784432589784783699472788495501916588629177573555303533854099911814999099316654845017461690715457634275893789278025074406331292165507726304046490161866022731307824463049380819061135660247603802897284778595555101279674946722813838311502267510478665727272390695574327289470314180122197715409054056047904942020250083785316061098725296256863992937861169549820793056780033513191270476937442532998392908688187150605010188056438267334565981558462504440673384634579600503500939349072420875816092664122716589324372609107443439151829016312144478246036733038332967056124865038878651942308470919870422253932580935557151463079597961926520041745051773536987043517905905353897954574716037276816081202575821922106996751603456040320797062401918930943674418397023603180310476018416624825272530561658241039391146126605257400299111870516743298786382857758086334564526739748651711877122376887249456709188320720420078845212005903635451335811629204591039609465986367185048765501430390947918009238568139126725171781905904032957344975771841935676473269776073099274138268112843727791145207971156605275123027606130801750308363728413602922396762106259969034462193432787092398964725329593276516422528454608441872703799828269882028066718974714117190633238540262787450299278386049274127902422661576070546005390238413584354540323805945293415218158506672424176919647231506386484679260553031260763117856824348516653150711878193425802184748990594225786705081434294676938390425937712343723875469536095757706306565774250485992943716609414239102378916582697337529364292547811985132081770829272158615273607197247150787070561438292178258575900802986153616153110076978221392567787940954929636743838635639991782259093874812471675037363207303222872079309260687186736413912845169459411378690500157623231574591906135685064710326183321727595489260405977329495339423196756802117378306913995067301037766150093904661946767806287850654792859985732051445847703233830075210898671657796198596604109284949785810048697507606816332703084793382697446696390481578026850093428576471131541770826513798431219469145231570456556802769227658850601794802540666314533041233078958719706986631395803022350694074016885934958285852321265747844508555380063499580822078379014777610746966097567076420366197195315516230069838502449973451995400538631072897521213561719774942364569786444582502702800958494419795665261851611926280966330405260556435408453228855934259551453663202666947646729969045824294425463739263407485933769679794163933593066270624818322825255801354363873328952224998757611512885467043473527647173736559219887133328143782049649000871787910370730805554902891167465315839571317770439030769136968754867165868438653347584442175825083181057600109066974096138636824074988616062959731055978597012390248645644700969840977331543747054429363758019071109599304466256531903958334391001761996631927546543154859688237860671260337855716425156445099919038796121726814035798236213346019806266782946798420154193376179379335700896510054331836425455107271832419770860481239459576399190554738929920587904352598872311820398543746195936250622526426597007377545402692288393779577591726097077698583212093098291624178674344123859780239134206495846084958264161952999255662365534281605556737248263717366784040707296120865446604626642379868333754004015727166558527070447945218493378207639479149512737400837926253255081941600166676253775733030285320467652169397778942965237369574533740389080100408141545811598958065162750429894273337240925036573290670809006117926976074817879591563252341619472208207676980389253703576245722008541276662374537725354367442707965494181660587650904758586792921534895752920030448113319923017209148177971615603493303127740204122465579657201048906540472232461888789829040779259881025246093887989462860932473409403443871582565391890560486696738031488820300499452946878852033937693808935168222529057558228461188080705740852522169649428532407289788998385090940231143042042076713144267379406345483522197010574937191692174911397332123939309310850354697624012838246660711992529700268606577087998045008294196009421522175850810342692050104628394726786803004214218457029113590898232410412830519117428783671698682398571892418961909701740980166206347657402401058981052617994582736181034711398969239851754856673299558645974406881252273611716483764394377161472295534758359739195215993291783216012899233891366477704076037163468368727555379160327767436656077919319552740722194933810499038069262229979160197772999089451370571974360616041798083379655609253249662337483323082685105990071065787269401371031645058748704589802521433555093202098284651971455713566371122457354080993092399230519631471050008423907997875135502344144516888284464507510734144816482554428884441321444041457057180669295371817785446953741155327198550006410513912179244454297055750582543187283792703461557885306930545653158611459927313286083286738971688477789566764616594292766410961167869354400222436203078779250952947195318846538421335313433214508734311656779076816559408542040299339079846814065338873354069271804426573748263893291226346410263419800350294274976886829623461169525653828521434004037740372229763028341703058918615717247656069710598486500261748330338814034755495118340612798443775120091643210555847647851666482357064330226043676621676697429734739685812647373246705003948446841172292502006968781484800645124649846290092299774486997802800485388739670139786577786738898726902692043276569114910066201756179280361638740078747002267475453631006799997167820903642197132454581649088349445838632246918043853902611245795305341927163954516698115836443637660602307146464220198106061809728119878160407273692926407767784420328947555365540635759047935873550703526809047361069876473328116956837349424312745639152341050010055579870726906975206933106467369918511074471171981295794286591358422135442371774534704650321020316662497713115387636681435127398031743935823290959819189831664144582992980395415735591758931387488713316622058176994118282091380832261910728959162796741831721640650469246749717244923333119310343880955698368055969657441812814067737370758159570619697385711227348089762570379906181878646864592767137548221897524343455205898135691453807350353104271869219337735654581754022273948170233261800021157865870628824823548714963174686872039912718381230199592338825859556964146929094515723130645727103428190194929922039994372890852102977002407943157917301434883562326045737495929447104052710623617684086493216053057819294734857362207321308617561501929413253310353255791864178909810780982912686334357688876549379515536101952248471470184280111167211281975285557251716663983418869896021581204069499934891003092173454017700157088721901416055776920633674989786617751532867525382683350409600356580167548599920414054195236854723920498092780006470602193943641416035771446328624199966117997511875486168903842226581290885428255331235905007500834559613498166941376254064985675161101804145316485041473660998166552339508766011059402373090584883273067366107185485988468222028410322001098313236766286003190677853394062069150544891035698999241680814006738697973246702765691679825161318052995960783985359958174588036418782711178872148032996156905675734350125936712724207349186140711714137473995226524828146640395853133823884581805432085169467773559568408781194994262323851717694673412210229454055648911725943937093681296859979470802497976421399567726634991735582418265878768512151315679486924939758382987344209967656772836769631165694383683174863866517819345836680712049060115671552285431179118787030022509282599428829252084656625109258626228173975031666980577276271218326825674191628425238658609585326148097764348216693749356718318656734244760026553288802495762060811243402231651556356242501614085232501362323074292244073649555933015285048365038872947376708032928628852919067971701017453486541532313119310547414016076153688737319357149275619573758404629171466191779572851209379893855675972353787687030647098202753258317060202983477831545214163131964609065951590522054670179154201610072422096836893675540917425019705159659278418393679903637821462567091226868264011182959753805397860934239918486891051631911427500202730860773562862015471493577303632115805114352942436552091221996746897707203912699170211712705880282453251438019716331068107051303343299012580116983648079589515906703872435404642714450777067662186140682844368710953579518147847712477566538595095775314790992756761160054903944896846384037815088144706318104628785182429208803888578089920841475603172636898612944168091656275112454227348738604551263737687771801317254051199674392436057869018422636928401145189067273207834510013723404027514193737031031006940425067777445572430064416352854704484295435638928271080970096551385598582984227583064732983913062083841022307952821711812748038249332509953897050522146269983909439739002771080089660114426668709373640693540077067757308586804066949029086569822444334793131983558723447015112800356390969810398442818316334946567979484096349892979812411635521280377836163431905634615006424716927397539636482473649650125912861683601573078965412333173856956681294801297148536530063332776109167125745026054144489259480023316275961128174806918247430869542005281115738670714882820964891300292041710180275717871474971991189722504644502443235166564424093490092261340996629526039618699090443507819581456467326090657091338170395510675092981204816330359156388410907618156037707790691496249489275312282060285662327239345249338034785152918989301954408751900184108512112042143450870337301801498786220155315996994987046942652259884728871546059446374129834998732005470686356787036676687883759226629091043794094905791322542868707781625665316969478249653405532873287947221575419613298952966016808040103982671486631015054738950471066132939130955355292245962210580309307933300146961483537399600581576407535097009352758546828827921174388452328699814767958953451633806777945203362113273145846245635682057906578668591909811020360831955741970337389077582080779666347682874143578289624035339395455204504602039539778091450614450325170370824064660303292190196945384777758152761502971495556477617017681513814431134903112997801649986557997756435258597987080459119689742288001139891582557588244846839136307645114876871004321410266301947271305935025312642029841420075955832110129663416896430835521650274814259279704709599122075060510377995579641969590646031639342023265917767092060853280122077373657229525267862417194700161847506912135838916775027622071668521887544685657427144776895629597254518070164659032457819427000436949562479134161853939545756484113181371750053602730957282933979309122604536024947894133498777759242579351901517353142371309593609259630117064907394409774685277533811430550902816060585630949350681436723723195921012969178766484278251775365152227728130005112379973364971936516541174712220769642735791512951233986118502948705575661951432727143594845581220889033542967945123346990967538787822104978458586427792070592558873491948908331384014406753542761404483353157287710518600214831170703715079082866824939389428909734026134120818779914933195066232565348197723924056945989768565272431604530659738572680295314512564119046809566394616530524991956869972197050788707761573139841451610494978854286650276264669038877047088890525140142047823706249186933687650532265785556103252223357603792726822081543891874925565579298258096063001817877578234816725857371991527119337624654287032559999949441211002311554927239936442802503594519924266133383076777336487770260205037055654116809813393082597187033639035133547086991598569166040590696794823036410736993003942733110160982167441241662005295547527286099338269609575913623302108019838677251398397984602521426275337275355041705384933285790156137003770308371450545076574759192934771529250877721971819798530465393944148765931003111050507010658954401712187535143046995370290234394049729555395152022130391131389274090768037652073585256442235814858411797504976982981430546580988474966676764248559354901230749764954992355764904131375616817740982889771838106459661341257820497005410686343452081124282876895261284156131193741988052465168519777885309036486889465456376887734447320995248764403724397620403281064261684867244536864035216509875807201235961653416173384917214021920273186917889369789400989382185011406891934303421302184617822549266613949755929248793866183021650782483846274678389754257508006045261364578984297464695140381094981644255135132448670963980421774024292096497727047819257744202437948681934168274884396457895268330328438459490871315390021235004723680309361312411800629216564953016062548801373455136395565269223535506513730651705315734215051504933645146706309688366857690446551378794396491663179962258991144160272670466228616982648415397327771211377880218923301915193848243829921859937155480974702813613186021986185053620901851168270334767197404406426187510537870457125593651260243219885764059066721361215739764170934700750650521193996049444448740442338088820392312170498004567383734266149341068485306496471280049355919221711088909551402444553005132450590647138420840510029287304989829761134686419945143738120807886292884806104101615222457849727989918416869779527043160477004389717515307233947369387790427482538106634258484826204229085996942008974339914949288342949335261063560851265600354750539496123957887900283682641581564924884620175982829857275773155486125272444218877034517181561936966716977085324637069693103532740495229734177993594240694306061126018688669465089849221768723229878576646579689280306406891133808114254758166265052033593027771363234931511092756181776917063164588885205438557197008998148228034040471736189578474788131177373306504184235922515561831288379314018449605906772702935010221160644289536097665282263392175411231673848451746581299213616241393230141133522062560370518787535608976904798578008469957651028157123091607254849929570967857025779095887577094159492974116725678659045096188087844504989044961681863387891597370301384708016246750877585792612466502204123513976947522433670356765422583930613312234038034719363418620343760548352825194627949067627918774096752217808487304196504175133736581634900185766239913267471969640095991713601238663789764785003677026230963404900171106931441164171150822917386198943394367245228470306353367131600628901711944633622192721218994261615848560495771698440883917048052525586133743987808053789141467676891983150682593377087819631973925848166994673302690294182292224452356745452732969515281564063259224349817692489169672188039511671339321051423177246334316303822780682605808036773651069373339878361666977814959063644378108791162683100410044781539925575302852196094230424273692429278607847481854267361923312084326140138653943024862414693320905738620379368932506756962421486952282658504926097888485900396464487263440123600071055309472610447383920993952336024683586891592732683012529430190413538088607515826519955088168433089662314901472795289374585529128212123127243889912536845671994468648200918103040584933339746458341712304458561046671654277080981680503223949266679436421245175217888923009043439239752122235258129782498649108100865853980228433621390484905728882272211182226027280223054657312252697579637726348820044431768288884785148473897229359708692445392062978068334420584286652075156022982503676641374654543303747613556678871604339876827709794838302341508384717197685284745172497940274622643116652597111411995849687877830497999437493430499066511774163755343365067824663323635965963639845310834766265579776186217992646483139887586307052295771613237877666027380693919555721124913621110654338184711638446293777515285643618834291978921185726506379081531650212082550354480801892468165411492224982532956458080149348326720266882180099379320479954877331423118329098062619004992557496154822424569006323459946994052628087888388013771433762203188008569062292084564426995583866222978663911674748471199559405299344855310035129366994119032861682081875913531198301074110167189176379167116722138625232571474973676138182473564740859109646716315200936203159522694034374183562889095153864873077411145898690188393813475817540804588404825066114589922013140078493218537993041039374569695801758662929075992615812845834886033978746004885888633651818735743268094325252468346286170971644200998031251033467212463021871694531213921602548351115339919080625898601074193583514318916002758444955072099117384102764476903661513250838596520593063006568322630724979444754521761607357438643866608720136012715237490579265886702202990186553734355366061993633114968327173767412786232547442930604466956430301851621250218247975869481876108595382737769490169409454520342222227969913567949203468381888747211270539095315454483906638674967048307730469903639443758634925476993324954411882286613016529659416356747480783225130409849848381861510603587954898250282097850739553434521985802975484751192983345297034683500610506068054918316020009114439488036298953626802984632124935172269561756303783730375370867278711182664106084271058295786907364937034602450736113098987226846696634618134964896436873565504053502727564318970336302760042163384994834779609452896507612070614696216288065152812995775503625466968179195017647600594269467238316992953225160488493448175157345187097289350010374480308170155954641525085061512763527219873029663696599953872317988278539596475467050294679936230370199598429077374049064552713063278669430096791019228929448795595148770580501904349098902431246862617027064843772184646190454393390167836518235967972641508227135461631787705609952872763757460111059191424250544382511223187070904222271122179058755268727805044452709838136624166077994278133850665581856209599396760614377219536102495869759995159351297924874791029270617313558728505618420546077582829146616074354309858598921377807163806282200209807851433890471828614073924342503560334649172888411187259454754623776904386892801567186755629052867089246724088731242238132247149705797740873255057636706291651755562088300602745298088117105352552993559047487304175822616525044598253597162705263162758653333120931428168709397707694349836112658104294438718450454593759688667176397150442199345318248674952540440584492244968505012939605343076441454922860115364598375693906226510589380547690549341800114063738269317008903148161987484140029513775746784971097701228874171934978181542669199279580816099466126567710730567593957262018701365594168208793336628583175970032962999168087302399432885835816253409261686193412612223096724550605137576224540731586516092133959577815622999326044210093271214613837226898209085320880927594481784525173967741475860357488881478490040891901802341918652218433880566169886266365778213242515509953289959769820034527585828250927888249264667487974521531580998011731907769673518623472993721689711359841891711160266392982485781453570608585095987544555081851854242573789575918383100617043765108411663753736798984549654126517206374113369324943759261350411495454955391800723265122380874113510634384880184056019747281300981402881118867189507750257620697609563210582776236075560254800904426109546014430926467949961430311157935149600138606837328480220805293636868371629992378291644982568542809398793641917786586803159751131981241319538918414406087135024017376106357085644043089147303746302447211490018033000635563548315918754032873560239132387130787930101501617229791776246321671313848786942516642451384929889732632991487331348094289469327161597344386286130366293192870680798307878856528320836858345643239260745137196204252311240008617524282805105575873304228412515622244838637125239687243965191855154140567339688275650795331234783463525335829244517519637301579565005761105238760967800689179857362050442660536063709055335052758740985180426869572869297997782030208891134646381402623865359477960543054965812412640665874742479822047928499998323410973096331347875677878525134880995960081893735630000627733252931297128397683805718788435027557485575483074826442117106833464544375746834637411323822152972453326387038553673177732160762491561688477423968472327325000032091824469897596776311875142404619530025089831690372277495601339212358782193572183462555411817530182312840252606970708847942131242258347148631864756023766782723969658333818302641797591087822450865243348823614121840072681001388029051431230994418079341435133916754293080017452488381810055770766168170986517659322029341429373290562735763022441417613073561776507732889684930370570401632280419487733984837155561954185660996932505549865116866842861636283532509296593283091869239196125006275824378875224893017434562156579603626993196668907418336058416889741327814874850503504717935804763199218573129918420307370776051490869933605881376552230906443240794628737676034231111850793605113571727120323285071011165364870014844906898193551704435799045991118091618846531403066542061309666972938751045326982881568313267555063556914015767123657703066039045115493444860125475862262640444938919061661302026640210977250262777703597878650710214702936919083430375278825461168128269665903277827014177746429402078186092481917821204258440827401355302540961373339900263033194941487255329641211162300160976374319621053953265091359423159995546970468042754077880682191852348208984162459005372018690966794832551591709684733741543905144912280153068769683094120891022363226478661759310641195629261392217950683049824083672244579208083528105196196442821681960646546963334300261142580964707927437115979876467172661956667641284990646954713790978902940727770022086627835892737986094169613042379538869312305517562011723170475955460229715759070418698055194388988210616580392736326966493925833529288705919998173426662267422462461128335664748656715347292541305514388540351203985534676494725651425685063617084698593493457672481401749263372301309974100597071980791173270347889365804415606749779246537133277691598927197382214608617247650706091427080954156483883049671802118333843915941225286496672709542518968463885143488931350651915915375772048886678205240890764561128552427021324985152703674879033691626999593073842228366414957873460922948082955088011378973899078766292425412531759676271207781316829881711676580316387234012521206271508116446397619856258635751641271231016536976159772930921730259840798068308317488182219552591379186671503587090595070358162216652044601342341343825379860785593568927511829384834409935710955873911203744287191629979916475661282754967817444630989696715930758524236337407419087381092226835086094022813645400441440970368309432345219194731275746047964835363110621439574658236940945163730439090123104886213499101061021715083769910528690458214708072670558446813914471563937550525800493315669159198161317419498709061713479137248810472675996492121056906350162680991899519243523768140717325743750889872266209215090109615129250020024241579610989049807920311929926573909671350267279621398496421354747847175090041768652838331125241316009991806365435794463357990504622749005596812642122998105787210685598826368217444119317162997718793013584841952623877296106728691132148167347254241651685958191748190789797258464605587185250897552449152059581448869072824149010972080425261156477229136187767967366057445972799066718701221318924496447957823562725524740291795922745283335479334124411766498967161780094528454062126463668395410688908075835636441968420114515191834595741678620315393334731316581286382769538504226567878517898396699098384567996360355296757305877199270238496808120680627443391542422053238172359997764773744201917124288068076813615937352327482074952400691530730511818861376528012073099253376802532372346657081099078297334531517807055876296575305038891587440453288079102334029038072984727046319481373038732254140627973949030950361691629429135443116592733234639064396319181672363297094163869681876223717452260511631074924305330564916503249061559711375526462083646546998189472426171522263155962792919964885248078006331320051221688182589434083574188239354609462880714786594833737835148414981478311992777662445442975999574835616195171919816589180737032463306538830981554556379716324318769770668788304229072937785571721130246663631045711222742741015986226545908594820193739089906456372363021168004233551999553325408114655709862643746986261745892510359573611902134705831665880820498215800554879949270120924395459088420015040441448597809079138034895723835585361838741726678152847076598404872190076407381070773559982344981219541485077543048467164493735431172759424863481768947207022300967398234649831441301502390205685776017557539053553064265325083021161812032531278448025392597874700943117920711071105142202703843389956754341737649679769480611602093092727778635128029643996326591063698890537090391069526883530339895876079722668822955408142865665368682336520872500110938930246664549037224224872172290338540425783107981497801913147141884814163304028064034850081200744861317081225795586353336538366594615875119244819646226996467076105383139321048678151405896736210710722485480977096295065212702778386884373017372362832748174179571249904134287837835372717844185115126973512308044125505109761511818427502244644677511969038415225757966874857788612134515827569609485542381700226766401601279387931273481556512624273407506102693462344994065532296010761471610551331282487138568045943458129663911436784027776588102942763461834892903662046135016759304394416662429427255942651512477937167310974764529936481771351719002997670828883157286125647049399623208727463656995756948845844383664184091715263434410130989651844745041891034406368801189293001788274557132898544392299013797002350137838781252377906245537896259276487035208288252565855576374349471714091231890684172892210627091573913423736987720602240588294599282657883511101725897451599354874175775502142556449197915990086002762772098328542062202044139172389457851217783958688902874920561459698324193415943354240530483229578068747741097876753866002387844395396561011671189766717778838618840079124029467906760513316011639922250215668698659137695919347985014621135519951661562767533661395229981803674153395196312800464635063559669307200404045516243360335819433966200442902316577435047748421640966099514051799891889075253698924313430138055030122265552508797991996881622258296110240168380370067778120416022589130946187962527818065352064707855450941067904683864307736087318548396904085007910203531963982065191303622860896614451869750248480931277851381624776911354106748090358899643007016844273062008355583763818576867422875262472864916265965432207439079383001169587979392558090824114648473339015247559067977095452561007726368470305906744635313478985018251840511669031962929115000310700095952838062034384186644552940181347104792244942431506497771737226416413454386017819164751858289392429407812213605655081672066047010495943417290118586956530616528957438409862777984048705614687552300833377523896901054042717788383369650965544775434472563538958022203699841317478061153304929335226964361447257050428988572158099071963392503114461437687408892130259119815447816435083783676198506531662156776931728184760197482567689823804130093439191183042719842758554498944660055656092359683414283772386540911623721081251405903567480877649127276221560023881993875400457690116461294538129381477324805819562900000543139768138712064417099167992213634308873709055469376322523231560680003713588441162280337861904203347765752819016627838558393781401909548335234217324814605472702750498907806541883568391601586032744703015029376123609350647416084511569994862405788843192352240159685164479791543486369224405595255574773740525008213400230393820184545703310895532364198280252271420885737780237279424855762758704268945729476093454622999964454084483275505200416174343878821583949271640156746816794562939119114796717110443499831086121915539193235513467589598105387881763356889100575719502578987561775656699340652236493871299615254172213117662720190387870711105721731521328227195490931851958992554922355088490766881114964328956588447077025733445291892826244585324337792529774030668037561094066031536427260251963475093037179601489764753803142280225872648004488967591440502674211415210162705531071356711896680609867713951255932604051798636335540131149324073705306107726809094474367314397428996098028751922869606172548186527540314662109645653438938430677842663164523716331385353656081485945336402568717566639266726800156860020493832824002314546097375980164841439052195655668263257293701300371092143648075282812580857153243912212156538679118153871105644634200499259438384917049321800547196296069476411105978981939308206547353798931846476374561061638998866508918080075377074197858606636822807073997426719259219865840746515542690383278989489056277297271136867456759542874746462932695919647617296339034340200708652068347234287101321002008873187709251636209313084543327335992485071042592367648479460985296009807010401956608151478964748159734469544358379201385741472628559605806807813753640362615031209289701533332421182446382965014823133571576695112368473312005683747245141801627222493785335142068508000837273835039863731047357753188089288404262904559063114772243140063598051216393922197539112917770990218037184402457586137180186119959990564293990363897754803216058209563753305388426964481215068331191509822618180123006926608594125329483604962040062724729734268995820984782538598108406380717550500628318569625725040352170018114015228513277018910348661842880095914307352952423368329498273847337704632022828045251407393400234183648421976320676977260481705904951319804970313293337456478066227042811937569059583585679268457090306089849533015150272120331673821449170456668964179015876660882770676471897055601301908728937994850266443448853270639674503362940499951194284044685957505593441064572083573038131844693241148626330955479221546139433960248839547248683131854376289338100175501612481511819714257665694405136954767200957424431299203088774259230894736217919109531953666444869791146139154051844729102706539546487768828514549809857725395079973336573744817129084285710644373805807878053595323453175719390551795238038775471555833458044744095522850978794177707071289016696251744167669495526801860658177470479316482020422672383061451340296486991112289684492635286856839883686526409419506565212570600855100785448889070075726003329886904279430094442229260147409338011659617926361336426099428981102022953327809436248434129882311533471484982005943735466315822636541080442384396927684443048787706427243256185910946844273064868411686867187701927571905871459208358852646471897144242669097985112248299667363059968678449667619409484833302752509905750729547692267269037635121432159157430702354439650812920107123662167507652419229798732337050729893348706210915543233748521206114614761594562259050108599459018509597381197006803324881271383858804438802723569138340210001243404687147026469466339841155857880549704476099277735474960915510672125509577253038366859280966971601419487398857190660732585809843031345768321843592031425896186533767561548878998573801327551532832629203538245198495566872439336920170379134877495457367617402060832400069865453162801036636822043666300353581767190063306596615867425611610354830576156298186785509313189168068075335696064878930121135192000173726590686595923576582895090016037673425898376600794008213983183639677450580747484193747378191918820227458682007116252995196364043054947632586483245166299757650166746483851427024317909252586090297157472433801845468707783395470290710980029914730402944431242840469114903928915160138452508161619845008384067582437927068514654724753387669568694225008171289293253720927429901324430225379501845130059981318942330800174661167946398184239999227825247449905345134723612147015220725540144758860031396741587702168891917146967332376892345104158282735720935703410163643409208552822649623729806753219170426218118633459286201737806371962113254895665020310842196836808255360205048503595525472555196183896317945297871846839223546346793267518564267136010867502554786731381136332062047207537721967395555892337668451314308598589951136319662421682047022430400799133490917465740345306510562024316585581399763881867268128121364875949529568405988115190366602722582035445338755949383437301918293832227879695232430169110504308467922557086084490150783108240247247916027479446182153243252013281676687188100189295697756159288348704801479695993646342232621907006536483079092643684240951493747432009709963113497568720307981263217477276279536021719882402792990770185533266740682048758189232764985430894364173954948384430627749285422076077635329658267177537184894614119042621859747953662668881676775698136954226152473342636568073052716108794501304281520315143500578860524716446552446255266679988342029881084052770839704242542429681799031290024364968073275509412081244957998044167147833586351912926606950075963575095762194155327957570298304525419658203601836605806786614704846666531592753918421384552333015167820659801442282907101632688475600627654017856479147400368294695160305988663012676086267891884347063139637558133410506929810353515554320747732962175428625555639942630859404704347253533578047351623215541274622523500765150790022963180450610613225210030332898175510503285188016820910201024251576291208457837457120200161760240182654916210277384296134068587983874877482602023601357230776208547423185662526674123311343864773407082811457664869705927282869085531110790126995975050793977883034424410100897170402060258547769555613237121605881620173794023485358634920299574091937621205399110155946153124143819974105664413979052954693139413173648748495210368643090376844567279787805442651645882791350026858056566121668393760166943602926758455395080185712180082522970986135307778081245478785997304725668855366116920527457275807551026837381322910464681306897223069829024298204744332418861558733386766487820845185584189015945221553670099906379794093387854902207977539239869346949268748863547520852263300598391810074125611982586464780310036752989961575030872425293467170386228368756126874166835664263236923316257380690973444074016200794131635605146635687503413541281408882885676334014115860676314928448169487795239502098866424758351876584987158891608266357886131746113951534003952127256081159056901845630409890445869375144993191586755230395749930858909327244371362712701146449546479511773324317018570284734284832821390259498778068291332589973891245579021205427628834479760651718695922311390336025009241363548867428277540450825949885490993856080787650904868794435828175621864803409495929935579817905152163151321861478069196209508628549227533939476677029944673648345052587907191260289438357831603627198955781407450747286432509228553841132862219466512155450472737772858638260827830279828204244940462246504650063795550417814324791538669978800272219701512441957772295622133608263488374311611017542904239794333597916103838564551429992450300266796394057931709697995668234806882324420131785227847732161231945347202307160391492802470841165453550791748554316632035615457175512898050565144638403157132041461137961938990555519218903551218792633756948947590135835037261886466332932368945385319442705560509126151849742109673164185344323334101884280395533152366868854229368244764145865485971560872331943954715931899143377381542900686520626535069989846540765845597474814563374354649829137222455372254943034362646243521840784590006330335213200918535073290759933605262384047408550761314447493384598475352720420001729133794119402797208607880989436500706013029517099978680880448992577560568277045245845734778661010730921499668672880570799486536221116429527605752441598398872554357234852442987478465462807188652660314458050767419799920576054254926049988430231462157794263494433361257326950717733940011215592200972567057915902483690412361075606484193362495775257774393269030405997051854887051841655408944066458904104751421385267384193972560596856271811338269285864380055058271956019095738724858605790276329307722999917893123627855984910467828562346379160184389423157353172189020902297742147639761149547610376637615650201228731921023703075079094180057109471837269846519606591976334623110607082921666655991674613264122946410394815495285954688363531184835297669052810477356338894111129810273414264368838827349901426712536273362778090132627412858228183533782444303513437063707121463688269758175174555500260122847340940022047487670825661545245697415609331644220361504711454549494290125620114384099379551885176683069402994440042298551443246647327077675412726695984547258238167192891608199862538079472333319957051588672098803246624075927929302790050835505439108130109593059781721162706762948408428086641143153307155319404997376608587110406444182081132158516255335850729225780978566479565075585725364935650038113883379519161471968333892616143407238457773506803207371486801554802193126426298829756461303212127548851497428713133442290229177399771227715323748142381679782515502526083321084507302725041248516348883797339669039207092961208290574157443609938697757440271616185237668067303076012100246589220890052264513137781099840936755002224613840556958074120527766411066742573530232793897091144234361312448315308984993547403098574165807380763961775199265242517379817449429072903912781235828078845887021156202779180060120612537187819376900892975556579584932482986698100570444317505536038870869486332849577717017101362940579289446146311277182043500331036723485391132841880115320304671406400415933408466514404144482229123207318023814883500118016465161874485768938686391309380383965039030854208981937251776276681237969978588361171292651611317541468301021955277900620977888023232771674851285987999742834887523722094348376985941422449450010600700115037398906129267781195930857563246850693081598590863175017144325606033371607740570423537407612386208050947160291912171603549903026500983069405241872992791489622505748585744870195691746329661091307726611981556481165941095945151656140856593484375346042570505860895530591304711167155219267310935308818595767974427769978890304805096330879812255902054408061657681422038509678030528717087217185618674435422558120308177961000928995871011302827249759799303756409450290552733467568011234359251416992997150618510365335080238453186419149235990344333015655692942152724747365875089886470722213539002986376073548172519471535603135490982733323778031485512205478283189028272991919724997688699522170956351970114275337386417251652903074499790857801865325276560706311911083579326268730492674589404798578810828207892905688385987173337781550486950535170295098547589435618861569233661674227818931881799683271844990654613187177448292147506397976690182877961947698449024538095288159914226619384008995380868809834405439054966478130167278714930813559032852391687946660077380890307534653487246316446996326265187888412257413527097721869766311017862235135647034407487509971487152730463906066804129238518788406888316926952496762356483272944731745649924857465760220040899888525688233843541732954035556298198448595841815720859849314165425073920732792020830857048538388073231505560918855524657856532574252262291095179303523425911594726992953797738377271989269240953908933211575497029485484377746881233454727493926340298758804704176047781953823080755701730148640436762186562532849084363126707080904086485638274149845438114192113671794280749805796112661122259723388900033005851584082608746661030671772603980928930405165618927962983667164848380006063246472111491521099114401361725453002618022914867390193098371363620890136987737709734025462857035896984204958886208866413293115720414799972217374134766620725539254494651575733624128042235634205502798902954041149171190249634445327009952110598764444447252519187600929384854960674362347813214816694394421160970561034842329820428341452597793736462067635192756802003345639902230064614510211584482812672454006028425413616386704812599146035402641818859094093729717337152753516617532114094137941533460479976753932618651411672129207898731338192962345487385627395868127227629870329180085443406338810148631109436685226173818496963539730599062960874128541627215444895993865635693297490885083390985131172542969861914219743194414282331835393777138462066835004744860501814624293129353088590536801196125493204623460011980598313691058814146845359854755047866760921190180663213985512293177589044484355046287700523306090850488352229189633478637256806374470912295267481542585729846741433760553172897329720475323108681692342438571127324828251722823120237357165846304904715606701801483268572869732120149184727418400988950186244410577982155627110980447299629020375517240124238080185864785665349291469427208390332203133663634510466633909201925693299055949760345520496315734769157130382213967654146688271360767408601058563673179473311365911007111453749086515882214165300328885100474995479521605696920571844027679325774867783160030416996325205234269493311439838898331494860066611333395101294823560951220457432495994509867491165309311515870943721844158850918209940240148308485128446591336199661367797683598896192179412305081278128797168434110123762193921794948473154601909389533733749693575481178183724229573015928679834403445720562955696726109726592412715612609630534788005571157877328382944170010227356561830453580960925414927045280069678511534413216746970521321957306441419614260367669417608593013554717717544584998495578162817095400929920473754277573127971450283715690474635864047861115940620161763881420759619034839411809085444861037383038267027923450265467198937757600155495674239459448011126786200180576744541947493652104896067630707590644367705607243714414539868804738486190046976710770950743533635615793460041279446303542950400520933540023704155590266781665330618161184891721039136894879284879055576202265714909197315842931014224290057544317079211989811972220780987773155090988495200578142817615445306351395669785477225166868344287395412344177794452858197119415202484193158403510256900349811326417149891363920920755778179839943430126592054261906441126639251491779541983989045927530960249443931431069630432748689154712150604032611909022405512679470928302731061549544180017152497444095400682150407341209690870411792018025575238252426667247504755221141870294172707282934371555489944892332383458273780366819679348500773968680140337495049826828273599567829793489170774088567237100443489323417269688983148253365513018315578478346015303442086356158613201097467912760999048127327957326814670426183219035045661873475653782790125124353871360734452245509957146102636369142131261341610105316326869375362188761642418169890950768585671865980732225031902131629725940553739463266184034440248047838227155215831737831252634621389087925810221883198059828796632459239458397953661496408575997187570115522029633550660832422115005783214006719705460221617082809887096163559464712716001727294586790454786592242868938718601900721577029035058737044713163457676770334668500169530510680945759876520780680925164759735144255475582164931009407055507475922115852335354389983888825957334480810115579585583629718112320499523606536161773491474387953923499666049127396692167486774350522265321288058695683701259188926769050719235466371739449905568573386961187927164975423100781384074373480975847802400180656117063060475867653388069614262070702482484808541861608540817114289842886111132281075887012046775892050600137097217673584722932531276319154592770875048003446839396107796033445930290111032257548347948616036319186138057922351202758851298772031142440336091788822151129706131885146159878885481911796888057220156446247262544738029523515031415321161781350992314582479587425087474295454595231172692532083507383816769841295867056232619975439361684768181772601661390750668987174771389550480618945544444965295081332980724911302692548908690126952377126695538015329409530225686621713261822321414528347181500711127175398787386261869094173785497087661272183418529778958288045800183346535294827573850119549049481887535195152626213590074330441846285954339159699352858961982228759581718815100929986753274336101481094617997330793690683197428233040872225785001220004728585789721236713589892398199459740428691707592835005680073731577108019803538235209029269231498712463508638640587064893074534890543898344871414684544911720961772113416584468728433843062506695944763739908424487251043518260855954243103769039698042947919354804665409283716634294044812040688127243585811712162261428605429017638732728068639414499538928055635179220925880842825482078608847742537794540531231225642908574919089774869964129435469030635340807770538214406636413441872385044323604498325375656450433091097992064311609500795215069977525658665639592199207755038471270454133248781194639087333740352172587558038982714457610528079645201428436604795294512385017055247733444600892247139417873785415372092874589971904434418137131948200117804810757852099587837585266074557103579902641004281585398004505438236772257819511048462585830406844841309635025634046246282032964776146837502002649924744689097229322870689332841379920560748834988078349646583686713705354915305211056485770767156683978516052294422091846632785829420615685901742308337989992548442156094060887264708886310447796821291937543889662316639665141251948123520770635463357916687148036460496527914928695694456323351068118464188342706921011155555746470123862170556765818766631514941384914280900140916086818788838630714010364441088310010462811485644394491826033047741750422432823393334730718569978239739105041443319433441238647263730746037169667780918858447224025238897928843931828115122058846503961534998292717083814804374167824013575441107731432250399635104595762713457456221239185674307742603011295528863694535310622105615862182903034792815021729625044104207845420921464162523111883268055671697125284630964469000013934729175183107345110878123118206724236573611514499519495750456449981962363694264479705583304078768880002440689953814606910608779570513157380085701874036764031197080657102761628384550241019018777815601477191980331377056384905904909877839537915720035325188025786882852205527759840099654962844780453472112594104694198731682630636588945435741357443581364345404464678597103835406942870938125410046587453762075359393486886620574072713120682263930523976132357105849167286721756782489444325851873835606246465957048862152826215715937936182709472940296329367942327400697413110906548410632664743334550642397180596888562838460442474318585117242261925718177363707478817844623964880851088497804118429970111229565859272407351946457571985168893061179364107751583465547967016646044536318836355354709023033054727093328120224596254091754706817853547018352388736919501263280612778264282147683557211693932008222041888345789923273523017914668450264054555434220304390619016178571216457666030942995229117449522136801006793003660399970633101744397141106790864630403743341142855925411199424831653832015384617309638280503597684040530735528908590292624692644250106798816478755137787958924424292573416481547467969006120364279911007907171687470058648294113130302287473276005345099056735425859106364069108825820997825229346853706733109650357995186633165042883119559652851919489030420137913108894503592269943772294672970175755350428909414383614774504833329704214220746200478110619126417877971208888320353348976841123351536059516614144238751430567039278720135174204102459099492530984282454184249649668244837291077619031602277280275191479013162165143815326331797147730752820396735328114867488066442449992261705214292208084523786260880263120912412876618444657482496423094362301206395943798328476720768010377072737160636449050504809169465750424626819646024802835427625608178589593717511009730888964742574666346457164594427422618645323444870085429893884410187098075519499115072370329272142809389283327404103833767571957220739037813373576996571058330217320772054170004455934871489248057673538994409752975459424322139674113375239512729601592301752588705160147893756575215326173775781671229242486693435915501565242683317152853237089932187030825651195501085597600341743990418232405404524931431568070240607817189752800363587497011561338828314253880645257868954929149427705673907454811346653253668169783416879469320174193043171032170372069430697678896862064682305726783441449616520824351900667701832672988194964731756126766907721508851075797732486201828639994675146929680581965366737369740223579896847232445959949948653436935664395411928402809963406141893977720706191489935768566945804699362732984988316891920362897371702322674301699659707449140882777847429640172537258455021989576149712879566295531991558837761933561995251236494818174303625703943332369493887473250934950875060704119750699700048555876891296022582402341298549239931433581685601001100547482008525174286699300937496829863864349750898768216808779129931183515641692232649356263456663077602182605730868433332374769714027226617102779931306366265339102532548398278462713167084658338858928086939212546233657295969506655827854145172728516373769690372946440692080078892544572833343190962862472043683913150987905536608389221000376580038070340985909283929731089890538142290269008562649984457999093570354898651824274331143893563571807482941559026250987580009946798128986286458227501684625494318729521433837913186918485939863347344705896715270990100350110920711441379700098820040260739388101963499042433392676961128210167569976944652037360129383675726939633259206475660658579061824446861658199795079507777272143936962873849622589428927506037763701286528896567943043734488558059775866512673179438166640321622658916955245747305853102148945802149863970573625837465227461838918976084173295959596514473160592074359010114362651741969971181882685199034977797467331776818458068826077026951018874814080288046240146012799324045510949845450778942357746238797293668927572387677772552471075061677198679661404274128034677791849585064813337557356908395617571967696915486586765000458768510792817512666457299155077633259703911354661001637989335854804454411070404947020067251144009066618045931799200815419105562647218167495579001694683966007102975663488118677288793477806169678162317779971544289599563594875323319815192641994977946752272617387909300490720960689387734499544790644049058505400015280068146324487898201611299420310136569330650548274632040125685916145442669991545523179036790329586625425386545649927508284843190775022431632007972400238347376302711314968581425745558007446313929903899057086945055260874278235478200017666750786287262717699315301895793078895621636536201033886334559691339174061849896804472553190821898088270287496949113453757512367272350364397232890469046267412181095867398198345531229944915131942054169235307504857564540530694640208773653978640896567055722602215827431072783468295772470192250508481406518127975263993164703877702007706049857081501549106973775437584388091330285100662854530497500115904075021868754774107364049763136980042736414459903964188484237083795941744876034426057356082156765018384375917238744356826647342315520944558088308192551903156610945218140845540965410948274061991167501023253513747970540743991575006717411955612935657692005753638860504604915591842419263731764603367651375292608556685775150240925971324340486456953056666625457366282511042631722439572954646029317559287469187228037239966884141941147664948782772354890089907055653349556344480671245582199451161487427257856799266641436789004941575457283585560296161445383908871560714444686968567887939389371071803516408461973698277150861501979865506994108992668486345637211133346384504721818231090435019518325766721122041773844915201794230684766262372874861536711923830865869821777581557630442327912280306000483073228948332232611992714625896631262702317284211020192814692960921730014767501492784896959732170030176163426685846902493099537256396400219204247612690089578316401894525263298385338103831337063115569672902485897792829971196499509311181445004396619878336179178121555250026300649104351069926247638714594343834091301355164986843321329254369989920281255598677554216548061583207422374764935834733899984288054188504605913592419544759114797134819686174083396583899221345060470865589995677749940156712582389408980243433763857544972969218103988883892876103904985022034218613823681390059985710692438746187169962641972119780705408570008157344240388389270993176836904279661484055965458745135201112588889153907087238079824642255940629542873615884209611395905797868759650650684265423102841992298148008108524434572265117507010776888995207007821415981706601675863512734351128882930032296627579390358743730100672109687837985128006753230324305981719168083039334414127237464192756312499480402955288778024841051914723906615806922461364409669932894804032417527552334178327882299534384530328992505588776279308729602348106383176589806753068381278994345102446192933555332061699030582032359030219174568642408930301422497515607166218014767049566451611778394548574893062389828213829558754440701361575345490268992777339877938791919976118995984785921195275796471470344362183427420492750239856257798487551852662513887838705963076323739444535214896481369283115546779453086036662135183931327346737006392162383303884741917491030022526620682679799369917737504828603798752384721572412728024179226234317598590394367126978029894683288324359984546931829880067725615062697540751246325459322541823145582714171494351116065807374074362329806883702113850575286371017948960254306065318230542584621544874901638597670955539266748199569502509430148723690977942225089410340640133629218172395270550987328190767585133295940837322964207151683660120632897195273293873526005150347483167175052074457092576335827074499986706550264768227525124549112151946777522304233715929413429210697311204815279171977776714434387886993615292327406459014033505821825703083742590390327280160426607032972213021167712016818886358144233319122928438396450659769044945905336368657030406834226137265825678219464667885755140019531130868332287401164059597886121199049586660058376397477290601122779679228156346500386959743504372460335666452090287131366362189815981065234802889881875829565028494060238238418054785607249152399305051718100183480457879606365818429476489624108273970565325516602711597730905480945882216119953212958954032612223490338158576246027197978136669730963468992601371286527029891638380121848224626124563739688576105991376872187471448458365585528899200381152065194277963554357631543409580964818563889379917027604905585879392419704966792064819917693073364226912843608109804464867569169968261531929878016547307791638655885794501316302833203969048754961932007837691278938639476645415816908019098311838271167529527832332417253910538399896932810857859403803424072677578376079250679184692218981541282534510406002798232259961960653898054427103850893101918211963074745652620656582054383588585547811825478997885662681597501909708194907848400245835711068649673509023924154173160832416303877768776291604795367860781380670444645522584877022295819655936067331405160427122030286386227540177416358793802959732901512799219776400745215597693451710728129798744163420879726105421794372795008660605678804798632288610171219592320435510946892400518998753770814528570097197075201256215505487211075177647201862584239979961885954119259309412657531363897397816260717594703862500496746763431648310989000438441624993517519216720082881476561083423303137785233554294145931824084687436110352542465892425542036387299686196347962174110212175044230365396105230384805885975668163628509595699531815201722139500248933732232072113061651099999108886277305775362559721197753088514526261474685917293519314478123223619508203990635760322636585182680080954875918472874455937917941845616127705879121565168592583653337841578625166659669151149031053627182889122596744858592529843194038359519647818937002245638022773070443294568467863776936390179683954422087691530122621720547390626244122701594578886496079531606348300835657263366397543045471641530481010619754796684850102315039788983930480901017357448624407300955625025887368727724422612563343194827486823977991442625766846333921181877403925018219884683622267223664798136790602796166800631595983409067683823956341300090250938157253210984137194589454334328436055896342996270525532487853806520120518232859646778131474354399170372174428960309018199314759352860272815415215645986997633951057047292415998612933632804798636598743709235287266622962702228487443930003706900880076486061701671783206189519030679727990233162522474297027370636162624370879587502465066828784285456610557896036857291439023681442508358883181437459070271404951178896220905080853664431915632071712564534222514163355994126148633561019877633235913114644359395895503945142674618565214927362506164237903249939484370775990667327002824442020246001092206388165518659969701605068726592895075051357589137965976990859109566922391829511793706652579905509217381445552782645738311447794789550478761593972750867612650825329308895207545738254612537477787350113230489249257327015768238770191128251006817917796501100145818357835279266066476338782694059656078144324124242077140016372245613204669771772091960771012116689929739746939859508211577756166881110745257723188710929064761350233672024365059279918296851618372664206978173309377174290770904196154530786783747401880111887378373559901689334455927384126563231150144352220391372781933753891770800270711186880908579452183594397529297628941102328452604985360949086184358673738791293804698138277378945064575441754798155199776668932041885492329921313143369608157927631586502576562843793653528836128801674978439332993948016135567497647727229921392107733604786645680599215809936228690936465665136530674875160568618765917039532302716473753521227191645725442813857891409919986411168509641291783455623400971866135210963545835632766914783892905570637484619461658217409800348643379178434096822666962990503729833233704997464254279012347302974856775800017013638858269307956247808240143325260011129518244327928629545957395617483951139762786456645270736024088175801275499617724271120984961946405773633454699247973887043017465054949145755040531467764776905651346938828053722176789322036512142885483853630078660266591952675681791286107517225569302777050675989154566814215309902539195178703857547363131509993098144654249045088466320348662723226420525988581076084961451484286588712903202150095297235978552283262603310764542530753694000967886448848976759783955916490449573588268499113671385852811462998487757658241206277018173517686812100019867468152628214523417276356812744003001912452982258929051740245362830204993717232761418413402428466445626397982739738347619338622588170965482139733858461303664818941276267096927715842233362889324145547154963352203175101280793194534989438965579655366632162745127175875614401429568143787208792226166068137649468623878503999476903785643706181690324873169331194392920309419393550731807614667138066026578949775137641271760527012593457043599712693594965082942526552632248880822274188496094061456959299098528242099923638728558241950741938253019495205057476788164505019275033510102554763586690866280773486026454152299970246345904295369526444808305685411698994129950017061407765834496384680560889397004726339299002239860258699458778999000227827742933837040598912791641486338755433780504113250174207166228616258704379832226932684867046627976175573890496848258854289036261912931409596531563256961706308086804450335498973898233036841536293215384083825440670810987429050945949344134591528320513802259951152350629843642478038901632170549715170518810525743806313210932780520306209932240439101282510747104756166576289509629695747584640533171453231041773081225091767158410155223634155601848778856859514146965946404105640461333664256110053209868709944850485862483794142674888534217214505674113953084260315647230520285066278485793282272365896334830375518047115475891400449538921062666691907573714653996307536691566875091789991332497165346697526040899145595926334651894504360494948396838289280481298252159719404209364624294651980535794386167876572951906379614663667441075111276544084943303012569757130796484893405035386559028163116272723845093147666579785916986714303650953384925377013291071138833966421898242320801994312466420820029906727214639341396592356867242189098002726684792305477835581755297559004583029905797464271866767298551005433053412413986868501858733434121795020479932892229794675588114527844204237658328994368847455741770389077020973820816305662135913192283524540066545871781512929174240620921722835700760581461938594731028389436503129071711834583018645447448612971195115057682316561973203258910058064789139981872803435843731700391029673375049605502662214833728443199317148228549918938328211227859587252261292480367383853082406076154898208477977054935749472540732825049129738626518005732855435740511660283196511319825576899470714485393144755116796705607124304415148758289285031226867492629424880501818152310536256410145617899576415811522717251081932265155209504931695509104204229491320191462846898491876106019315974093957623176477605062228028950431537168206986410904195378300895019208403641042525685176975234700261371086670331504640382745771722001551370445893477629617890771894562961524738203585283111927315337356823220887095036545385877437910467256892342959969260776060058691568435805902309195715164592349857493437613928307472365769426885893976765697856517295694623278573224073605770811662652378431178407120144177533143035596286489452046885713093462530386865246377285134546557184204899566780389661020565113335620198299417839453790262479382264279640780250896391386892932596753536760686664627382943867730442833870347120504293728777355192758834626462144873644675647092349472579583557608715223790041519169321434829946311076963254022482810984036838528207026945875878261829535908112568297836112320701055115143855649598294770938265166927880267056676352149892610014479714476219046202119125973770980533684661297182441932769114828316663655171123875787865859834980595931605557307184717410237551814100196379312566010286257720066736922782331798981123918461056169252484513221558217980864183483975742950053256787993545509922947797160310930090847429947038001726285265978562399339290504660780677825324363293864720133852464964182856022534636928159386816512563972894265009797215213152018474685146441488584373172164397811369453299552385811321948564292238238675178058252407120946785882595418238735963774586908712834598074921842215027577639623322497614163379194814699252351277670305139613795647216101436784927123184293719541049922333036992141337721052071235852342325722533775380532994421884762662689395613257552037300579020257370283091239407032716816343688827945531787422953925067222577157626030871249533644817195175044979446074394075421361351684576938725914915726679907076193798599255640648976298296794463250021067784920004640075869571799117106883261169275601566488593056542417065655927293939329845000222505350667325587174459452770542911843629189521950091318484737162921967141646303670177995984167568923927792029584937381659154816897332341117012023309261897827612101301738768366598808960135750450237477282437479498137748623384256193176192388796272859027195335796648609747952363223217293996377012495565810159350641286137050466219531621106368000875666029620138837088992302760336861516519999277514155972300637967972973917531243521506692319106501396270338744816490054888552153593727726671727843307853653809550772108237917105974229517530069185169165109040133927267677360604030311364976228025863916332705132263678583977829386029248331240191208393080989193560257252107266945896257917290294375002032110906043215247397136938620526151137059015258272021990007112698423729433459278658103315869271911212851746292080225538320929722938370006028774106069292743618231843064628179202236739009863043785673491284731502414367725182509864544271936169052244591824185258475556680773786838662051872853467425342379338262820151190499467699201011658469745823800287847643156779445648768866593509945389076106890392214361024875378495832847676083412291158940922644573701612211602522863320720605818776064103420249264740533136300730295402847466474172960407214597310096255058375915337697905113821911732323648261131470830199030473756769292824000136634201846212326170439415662455517141019021092309178091609531428786472385089403403393589463909714961298947770328033538922101289801227862907932232905430109525538246850353363321728374252720583805655990644744504024704335688868736988333516690414289318968832025196757697786245508072882649810690971189655769680433381273771015727161531287011568327025888615978988041463706813330459105744968196443750718912423983060337141440915937762939013778603828185514736120133265419423603006783648443710824480089371243965828793482847387148381716714026620466681958513569663104689684048022456496450313291516848890926836551902760794696440460674706593528022282293149022874084179813866899122540929000872615611043182122253782698992262188322574248936329339319161220886918332189689396964494407374154171189187555842282071240359569836526169445289634336286911402134232056193991502566819481408818736635415397323788971020703917679083692712537530596282387475970669536816658333126319507121235079684134708244553606511150070165318682205558648082230000139814863695138521777550059390122502286125672192913599915527354512680581751669052787383831033280772925996108855456006019982422229844457580659518366117680520378568287682527293336190098304266201430384634394043785650512399111764248818308426779971326323087073047051616353033796150635714797249864296357938137459243678027702298171000793597176327378031671975313306460076140381511322998635305520182727715591374952637494579305124402368387075692418339333022143484328825875749248811277334393262796280442660569910738776929131285549810064101019829733598596213166870091442998066647104872346655909364795654376768315601515559173196120600086714485907214279105031388261086929683484076016244956976322477772242242819466933175218640789539358916673840396416762949101968846672150224829010659472073210949405408792935597803005326055127465611845675701719565763652366018196223712186995351466170348688672982571475093931627625611141093961504553202969153738094053194034974025449632791662318844626514281485943399078275449370770228018982081965491859335119238333654842285424771737966304181502313704828493851239578742695961183074809773646160302185248875652802562530222727999352951473756283438465861143894219307772403394412164153715264724003796516471194618969661623090189589975047786275776005223816798253729792781058159200889793011723604310894965109483750306557429640890184704995851145326506805279406953154171198017290765502416975837567708285494543642783816342599639725987294986403393906061255225330376626686906071039309634007818553361389008880579016991027152181215749252312158001752750726881213010830408617809865080198130992783527452942448123826252967763488195770570271891472686529939638404480495802922398018759052834280891197453151035965301892388142370143332383152064930261217141863550862458362183556805907069064807180473328798622822570960419841431710508711692290276115496099889855459399110386403352200684867740943924075967877515949496380933318853177910668065959409866757865105860903011776148953803529199269508746840736129058065793070136481043388464663328418882265319456885560792183138786534422367884533454658056557539563182341780646585610497024176603773386974830803051738858702083455756960557154423399974821947444865254702741052136278349146387264770328730484344124329290059660868596499633450455807736786192556730117608870535669986149582793359890488576401757102607782144680478224393482693904163733676089678258280552790507123395669146600136844362608134975139257801877716311702603650195697477729233552552522846845958855719272269517603369303954292899918328749298028909774656801981326407282459302875455741918544658736347091959046785454204843426175791780571531044465897308910728546077439731024400367176944700733820101432411160383209634857124880035239957352445441604549425192271662186744256300981507185144873574174552105928835063599300095026689067190440342393752921516195711768322303570201902340387670218356543549398483332553065857598495208585041516571852874911376291400344688325974336724563902580313427961687147872675819989378702420132684548049523065369733118603290000526270716436047598209840634389575022147664619349339402754425963838238063194626493559850530809791480764707885445927914461647005814102647435019906715815251294774906789221090409840332359738016732688337877923871736471224933891964060692492204535453165468130012722647438504257983911669231779765087113110381555316236813011555428566746829061300864694041815767606684583879750055979141344852941882604057365521012430791843902581611357977755494915944258923819892016593716745558502438646038636165389061041947653275392547634778683291394742848548857470165751292381778782994240064544377346307081657985976397801356974182114380867953122033897527858727364883047957228846247295357110139070742572737000551674828610875966997302696173534203914729665259521695630201369494351020019371217318223944201794831356559875633071743766426565601602505298796018187816664849506482952133998802170850885637572961456168328148966876313921245846363197741097303003803903982636899408046140907649851173646418155524938324541822557149175360346735068847285512191810152938797196826156533352786906235695254392517047185662867549248026052510672923709626475326935492424651237074775422932275407424395039515636532615900099940563767400040815432708521703863591188353482779816009830918773776498921010879073378048309845697848199412430164918381392508192400341327950573716491377999751448680012734332766595787218946172694497601686575209160982112085934675217634346198639221041253477766331145320360081605644217601156082944795693635079202033010907559160702133079681364280154628090716216316059485777950374462354066058520875162807037751342127615342864905607934100086389209823113079865306274859304969216895421010347826962432109651634722468244368933123942162192080709946539507792341237101778991899709528868404456450190190580223077359101085537281156136411287983136898160740927540289239073513247972512250445439228588666781916999166580035065877950851711944721435662924730328921771841520782664495271256972024811062325483516500026151936666325280587120864593816141968521533228526315406577457888383803149178829805471261712821919099272968371063661435320449881669565687766395913010863098418518187734777545122512619591722029025289235174466083708310591420682993306812391668372086669302160960966131067125596535224169993279294986053520605362506557402223741555233441657916364331399263658311044700178038895452464523665589614908153391201782182598044693973035899182438659312359344822386429778650671142064472995015235708328906295808358083707272910155997037368435880151384347366421580217570366903800953618638677985638485380117561206259521292610957060000330499491114480338833763144682991724085792333094220097682210699352302112058562238216267371739605680456078705632304502252825070759484975168963350542180075087046379871422497736283561880889205290358052700738604777143051610216614657707995072020910894102574414178211300166364039318613216780467341597166551716971986173974090747522495204587767542607790581623092355394974476588595094372630336842876880409680325563708648428232485651120833947787182250831468751125359334004928959112384258155913696686764726995149017814310315101150044967738025363915056333949999546616432985413118477529828893753890228301775827772954538011287978186311820603388707987089941949114462536464514290802092094780150402156830098376389236876449097826619670149419280407413973924440514065489283485029195964793996644848599942681058810843132110878768291131946976280516729724338886796142174008818224624063506282303303965260235690590756490717520299581394983094035456745768771732894085732371020617424642602328948017340482284348757867952069941566321330682580443575120752861341557333563332730333936648789171787042617181014903979556481028514856092815405553580243097265947317524287655728704107412876988752025527444246622281169373309624880135407149100816921559865708046197452682101695554326376060094317502729652522788686726936362862499250679067488908729402646201090864505350922153582563920506933713346925009989531183469105367622983470065439195149954083919944810600746174102159468130421160607448216559663169117940297920746341249487767367111485137300418322980139082525008920750220101961091802511977178281212460909915449100376219763587727279470898411235231312367293374899795429543431764234135710310972912245122880805904462804177744614773898148496679157661201349662931434793068034752739746607648923023946961385259798259114183123273992406102016368403643337224144882086352293503208579320935407455351424858928133997225778677500057465429686526267757838013375696535957757150653628728780261939165040401853747746103848363256876513749787406312552825315307098485135919545315380568407019038704617640599462858371061126108485127718094234695777781938242271603828501396354653502124320478082431713597575310596588628824850803146554859953915935211953621907007315729788930757061473138108982168654606155008743045896932564909780430487082054270332201213951234424643081418308886495119269669187606052068652458347525422423402978453732537282833820213479030519317393233578873613847877341195180575817448237090706967720700804603006689936915863901542393468096363034561507710913474038377136115567547547140425132368802231490068830977341279534548046596392380991973028366346772626815108207111953935141999298189884069835297752405551701730280157152892854364258892189263366844288372761934586395634183635278233196241246745462465669434783675502656813495920417042216980204552168474155364504396694682210472478181155767585173218127807087314700967892860718709499702751771872770283283203767393441246136924673390127503025298051490657043032362154690172803284793666217135717462949807427296018036547087736386333995314421208629229901895653492099774973721420342203102233744903590148131276169943351262470917761547310392367551953694777721765640426852329004351455118905444760341112400520082947597101951268626769655430575725358169618793305160004809252565298676949891145143405184016756711680938673091192848068926476228201078013761148684093028034916923205586737662387759631589993981711572790947011784339548627914979022022689144404405125725708130181792786609071677400119085041918584932679443552280705738440466948852564012600064444788317095570643752939013099174508563858380220210487669789392078994617979219918679015639372760508873828074776196615757134973958662707402366466612943362741050757842566416949956287193315427085160476515512202184332069836976679205648284127495821390390777936372693208198914199663028065672119025492581774372997385268410277551431755489380615906891341450890730582968120895388882788861183911103366456417526515525519272840053819960155221155344283649968101960903048876151399657822639903496012414692129793767533325332440374088758491051554090221101746189049455101049649754968262546027010486432199825674756011202105857956913741709443156618590228470440385719346161910327588009928765428857588488665398600767141045001864038503622891579797411538882959401142678553209584901906147647751811424740903417883732454614429090773201920440270807832309192814253731801062861341561344343529532582849276028076732588998995407258075973694174986424961394789790233652541176069843133950572864371413206698356954694319629179409216882172572424693664690318327491266579288198410548662093781559445298272296146250650760814421658714206670739752767445306344726353972008476383546744275114893043152371414821742929924203812758141730772334076552572997317551293993310019248543757194237577028151790407309109974857065970748826501523686821342119779606267286382009017611359157096543482464533807104023437414891399054984419311178896567575453147177830682612766705063846792559995956181183131320569514669848817418125182051048769150499920791962446582902123510504587501733674289162623581239166417785518145717690345311393103377216023928341758173501955390908380191521778805164791407909211126418430894526504466382927748803253983507780499498316524646951692968976314020875169872129618184563787968690686144454087403787424826907066973746803426759290351965375285458385033671401453915762619809311071232122379861264519601959023144547715023685801512752711307273597664158176266996943604614027857006896365210819145055320925805378170370684721074227435444291054288019336193078348732705928703983197222075952663881210454137104066829542255523607157898633667565475452633138308902348208228001148159110503127597599915940932505322122856823154628316461943090209330347541366861270039053126556400483275135273555720513904059783038571653512985527854979863647095356580812833044987671252459316584772302569655864266210465411347180208787840614296053396914497970074780403933834051038775581351565523633922446940183540434572900200616138072130675083425512189899407236733605077670974589259143014679841168495953765294137162724427913751436734012643973037512929631492565678689415055564654873302638328603184525497920466684943009973055810389208241429117368553407506874412284592894124766493149825832158291566917290162407935671807346692226459305265878023959711140835198869276089884633672113381399397487891048552175396175356881862138606741998676669693094291099285245194698088330340677225956554409728377743932605621580854585297770550148430572037235724240969381846219863784926371924930991440890031267613289342116403196606420733446242854041122279628452818583796911964661455978236012478373867357993488239803008101713110801048823105909082104032967917651547529831975557924809499102119838411072836254356192726392742255430111433079525951031806674398597054119792124257210929102789043217911751309827713170919013882233821620426314590312227901732183370619770327400916939776509807723630009422467584758197726349701915367208318355719773658985919498692420099811309336022067509809341531222360358900578144506762828967075172913670711448235898160744232537290592577744758823592214083853669036725218498320215375982092389169923329070225974178029083493656537178022037179102885637571976137256220757400648771897421449284020069715546724049579522780403105661187201920799705086418866286450234594910195208879085576984276537983833354342363065698493401726411258828880884107810590133398366870877106006398282458679184176186890882322750475725906133194483967909059671800741482465145106273277728387630278792019428329314803672103253346109301011727273278577872697195516908896257711024718200213146988114204337654338807140331066423794170332869414654809719803876620626654286602696566661090048743597084368330953174328756266916415536471101998629282396819681397921170108309740857582166487926985020880188816305861584698688097784120084165016029721631189741326441129345075607338037694918117851761705085981099327631676533390526293804460964967520802238134659160965322118476129575913007423773842171867818993402053201598519180695628063281328751975605054656067432797071738680610618163914899892231327622462560350001127818728173046479518768271938430486596411798392554872131912213056464764773405884538676365244562911485422562113368946819329892945064173994789379149103974654017499733204112750143679837294999870545681478745041191119488729414526092993614281602409335337716765417005315206999420023712762833364827617879192363970901279366999044578233058092686973622058039473864935068885008340082286171836780526736187633700997657953937574325642852490143340289079424540569084602901764567738883654131561152294383085671957601430621771429317338791891547425384618868132308178097512041956034074254369170490204625527557463444928945709079256586471009952834754594208984014321637456010880769178399465107779866422381421383545133841937845419295424229127870226677515251458547374810084721556101632417737067901721317398377715037373683410076194140246523440736280298403376400556272448633863459166009093375190348092262042590203271701067353336335701922924258415054356300842508558654475947537002015866507285671284063528266804160510566554335346727184259093004845707222923376890001273755874571848767802764394798894773149074971655171801229318570725893534355016431507688619165012122530324761821377292851256324701422944036898454860278349832878320799956403528200256754657303157551029166924064483993805913721800620543345094579234027918760633271510140238925977251066208884593164798873952501658589060269654014082149274277241971960491438408155051629166279445605317199510292913405642189544333691184811446605111938039572984328732789786643658144446349357930938519724127229942405772568115814487773681320901359106293960897469170552174871222590146250520431813334550224599274155391264793775036443718150992799302279520872474981993889441089618710827798543459787993769383518136422444356613088023438136270717742754797181505087009899598442027831382192193007781621917565843029675770368603873130334860498812623012707796126552855068153743172042172309099641342447101681162420482529190982101156295847809643394664555426175311465270327335881536082608157938353980806267221753699487102893213518131392305851995732653277630945572310421337255727548133184733553182999635206335813808359916943749231122469081612780066040236515455826793601065137018242380116911218324868467219239274674037242852363860233706141982058488795444503969325346710032398559242809294563856268503616831880734825984246427891535942034303366230035165263597676370232398306719036877588292843397399658162096467825393276703038632427268347302166412896735776863505652785505735428444119169389610231939201245756832438379554239458306552909994510447207678269217684632348409181325041854655306209221286075765547748296863576221411285791195908828831294171711133843855575208914381002729361669269682089301300455584970494895957208841595011264868432172310502456078509395400048789925773905842405429269033276334962600308007696292294379568852304326260548177031131965827347246809629450607513740306492406850755002744100250381045668029126358624657443239512288479310615954589266134939925300115048765718718500269595045730147366395810916436240795630891987770661808727427388482805356826589668467793922618221406683092603601349105406014778775744714211865268067831103794177122497829303354761581244859271152970115911814456502114242576987282592694500913092377271005924278770096240104075284002287883970356722756478919315783292805346219975514100903352942391249440984356470803002220614101581210386700891818098184066222516900205668010669929712219271453672065087298002044640685626676857947802282737175371454592910567179864719719903948646143009253937765262148003525263981420715486387580329856787406605911938124923647638654964307968648322907978040102843310465398599808604940196195876986210375745452151061614562509747109198873471905296390305745916973523783406081154445535640607886049131933595959374770246913794807678087001147175960813989283414551392477300589206345895417729559866948090140280676516154783875751242837788553447237747696175778503970775862670439810814212809754858838068127269334912717547641262336551791618100581774289963886236905303173593650910976972229108188946836850005759850371569287643237903714057962487740757688133288564961287411254810964048493108325644161822348756197401973903128677257992847469946960046116833461617284561458222761435648416756117075511338169883530702291809846456240333085129233857486841695913610029470168557461269703377514124787341331179555453871405083256162542146047242580645300249740171996254652575178384933735055219416230614546182947143531503677234261400446444271253091939938262036917868255953154561641979611624549038369768516958105763773751911292016847018462668870717632706393268484721443390413215132480266494279130427336553226379718001192044869874700305708918834703356613739341128690039269806681090702261597079634870399318901037810384974140330927555952291258179947831251923566567979108172363843945690976356824340886568615137168497066478396438552262186892555864620518598256767937622561449628207451749458464550218225441854786514202467848641871025896434857750312258301175463443074314198197638478788475841360530593119143319315419559655260289221809972241608910378404920624111132359309723170243282766967096739675528287198045011014050859224366093000645162540466105249327799158582157505746161059047835955445217688842562379676792316552797997595252104323871503390913903460729658933085247634137638214598044587808198602699916756158699788978134780615560542811077641013898352473727238748190401926575808566974758073152036449553795896999453885471526832135038968268399077948837013365440712913013040076989328972106098607404320357316669073601360848307495573384987683411641935744559822075978756527398238035102650556646038745770253607325106199868419735695044315196305806239003971319780954935283620371671486676143352880917434722595254875034994267316695655203422475408841821347486686419790684123647409796759790746829881443440651184010071060176888591524947387439864605846025437230392059481620979789297917477842934980735066614950639218344515168640383334939948098908792911229322900628734692228946404958232774302880144224287681346158675688978672231142683652052030274945282882603834287496781860308125290377880351209664508244853523479911544025099834814766157673372323990836787891307230969825477592322523352331636158182304939655538597935259779169762319868237772414228991282209570323185889837433857998386377975492097330771386027754247275455604280820848043139868675530728751631928533567816531160536316817555094749583669842353220250991143878356646610758565029895663643833304234343371766960740792512054557775930773037919483621127364893441791921380215707324046797299165037186779368251827984191464210450166920771805864601928548292409843188264738572215794146448333591671263612924096115058264271250395548054106500548288625483560716048223389677396070635909207446161128967893397839544989118477916389521887582212870619935381378700829057801248742868394483502420500112888731202107152526696495385119120246804628442741402620641235535502698898934978819607807488323834946662591461523097306115368723185321647944442489381188896066748417395840682946627617700397071666243049063658361091260035361812271318334965584994200570566628653673584730404489515755622011388671862903686817743149041011486772738655335093151941516646357402239438188681901917620567706185897115929153510958378905181465756899111679828716250503786048256349059397259223510152081375217747356994227253175370366358643594391884550995280234019806700065957318409820489601693416095355574979821311773083426830957831442853740131589606964622946979912851948824928566414599228836870276701841760368583890256642132509138949938025902471364115204046555462909501581952236766668053011644630378630175685306242703707510857718551623801368515315982984738584157319012944295319398425679458829095472161415909635232753983720320002386470267450190270795297475150235708409892743938787143458157218117094257016315833637907987346576893191179370974617121135380744765183201332265791167380683623747624221210080783962998189625301218403305644645877628748062624339623286772534663174783147901708037867573521574748539311008640850295680345004590088849788590807874302561107440582181887647101999908792368735030750112968666021696863762694702661822651806324861720873506327012257656397683723634755778290225916200150728379034627809442851431155802671851930948026912760240428516390802092093515202321805270886134182809173049748715451180268850777694129412278574648956192676434255155379594500452528478085443175087902324256202807832035783824890635053445912388867749767555796811984157721381206283694407191220753774329472062513625698584542119741200393291782150051307850259148125146753423589684704352043873783539929526120014224191715445921789023810240870937515886430890237216160865102852745103107468286992335479115973900477784734545734196455957571552446147058124172271145471351922790319605612787149667298654933646473128202630433142646765587296838641037176553875672428161131592878659952567031686196289997258487281942968610110563473736560863076637889053085070894415236745381152201880541010316618073200901548987287006080713184018261940712787605314254891089003783684380173437626313147072354398633505023411008608262673869227588428396353284771542057584651829071949086687112240534367609281729779765044530947750033089384173528283841164196077228217809438817516293588571545835664086464473765843713471324416708367615770119994209792355572578503806554654163015191607311297166672276887202622866631051485237624231646557189982530160359302021923963327647339013979947563532771137429320739580750351897988503552875888698960589841325971125370334620091919771879030298881365696589530152125551535074033451691244060540436607022928610833826390148654938009377184737412918391074890250014285111110841474548819388565161040025773649932803206881117488087881308981189600818721997944342527757379867084366780835938077328862184778391087706088523874250164877099048096912646471129452489895328136553368747696457021746962002827352300162830668942939558613640255877016804813034344860393200439953798929712937099810712523064701908141524594278312954307311595547896833215849763145145050508723455424681910018029108694528557186282922001846002043531335236708201230998023862550838949789238284393527299831056078393102746551307858388318453559667175791357280134009108917150236051931573938299601686790261134220593901995931557449544955143601852119092280091330279538629157539389457143220648969899317047891553670049855295189856271929828610465429383021330634641022739090492731027546921856907031465713801151619509273547015935621006553593505656451556163191392159178022061827757740437572774055494595178510810969827422558273726705438924653591936052981705323492382659225349780642654281717974206468642704856085350748463595257227705373475532895797869374741924099061603840253111790774487993211833765154598557150730077156133252853690546776247325930473443781120808997471423397952441802740569267669140142466919133354953161712595752829267710828346995956276716305072839116992635462113112714507326426361976758761830585246307250105679783480738356625833917402504346536332688197410955794885160667677740430707450454028676170572839690492317632608028233122904243383776834424847690704486880224442831531804406346144277662689837090812751341413749200502259761694912909156997769258938867260848184428297559927644409422980991702625915844274587225698935677787005169890968951903271158378233563600358093677007546587762492568901019616006407423657605683359049283565519093497746353845316290439129324228378453899298160954857615181141271209175602658740782945910959051484715576849238984604714964983547860940338767778034691375984354034286884998050743906098869626267167848855505803294193985452282120160272281167468094043009670553062018829891317318601679169904940365885126541555977801331337190540887676561833388438297813546635539269480798429674427326279565459229922601317318783551013368358744330213363813678849721886902473807811022402166694108927505980657188820606720820137496888192160237813303970751665900930868507934005229328180988535321165494174324055505398265184005010408520820047573848636641787078718613212773274032286583833915694176104684807013360934893122604661566353462718167842039325673992920190730037812717945630111987690508403980269183665261378071424784965367970484596153966469930287336157614738584697768159816829454667536476944668333392146869832334479290952327381970708045591075983247737502457471068985763915390074003217837591791626701223849908135550739067641796588111107079843669656720679730503738381568510771047597967108725363377869282143257930300980918494635141200543564756689613773740409055792271091535967555363529815235877942078138420232667616340490957292245903914395259529555175551657983690319482265053985277023962555782774100432905643255606913987580713008323431722653192007122095895337468239646881197816977064375167416022418084208569629528464347593384943580520931036567470711425128590621337619909584100487007893862402592844446917074405448059843905479381358148760925447649978105356836955253331416169952045035369565563844925619028640329542885152438139954335408790100157378767459911481705047672798290266402278363368036591404968495943212242056288340326746378498914386371072375922403615630058407445500513331206810612766878674859410705911061051704518707012878789679557884343480572638436937366115628640292503468500117636710652511665008995033046685166103854076140888851636104304587372325424910026125634028049789902200754427207996543334907418889461010436511578759324411804732913830931777938055883291887484137467323531280069855306021608615151015328591531830480976167754715731611079437454090440961369113342588416534944910551977243926507705311045755549126183062789832391781300436686718052522976615662147735968999642018858682697668482039458694935966837288609471742119117163905079501880635499719927966586450972470210899930863866213972245877752002512850420613036875952798963412497229104839174814389778526570379469706255119684316869340687902185912853544733398846526537029432537672290518373894976783066200353438620647417294266220814365420253825049107022805266702200195530615350221054234643751302548410854512521512499550321736412814057262713029614993090767582074849792180014966758358559879750497137842815724514054364198432207118809920664604189619101290431048738124432215299165731535907428372647604989741472152998116765831610160279332118780287884875310884724671272707038250010878374181183944968096582407300866843066164311107168500237482335172850540856249171095314314431964734438175428252817125444888595608194708373659016406077236680409203587058841016005869829271594747081409781243442163842582983829279060261850762959301809589235297448408745401031640908270664126601563553843255577114271416716709810639065402136472189796505424711265523884839831292400425281608085949827404160818221174764451603456099330084282700764060432103618056489047740361162835597338082649865412632607836647978691489474140138370415562878994895720050250174025662945547459164573731759013228174407527961071274238070588373206584565677234145967316729349597892634222587752844955345862827629052321643780998143973478968440985139321896075302007234562044237056131956234407305605735072521381514466382755119828030014974541965583414233762779194278314145099595706032759937135849787106794689193914295467863544968954004505862202065345857049423698362566877221568110826972409088482482367218032900223031168398176570344688597937304906103560101643709759612931847457004221839101756905278706059222859821656364973322726478311480807320585003736393178936547030645849312406322703067773711226180417637303116314214394502199104721712519332333456842316309827705403357058018236460642896032267581123118986817521822632059960405985636398128591463620418408668755616671518803244422994116081457184455408274060397767272049637245413117134331173416228722058561434498278370572204608263143519504327636329410420381948592170502320235215202910154736873339833662721961545330974380953976346970560033535904099629328724246061863589017861553693596887097877893601016040017280122096911309543854800061331839778908474198441801623877976696831388800930656407735689161426020592394259697399737292062523211260628712802703350162808601169845411723253439616701914726408466650052061766735572436228391442002629941450921189445812116397042183454974076418519928483271536021912966946950201127674508981414030691868990683482054596428507697248477570557982748698470955898346370459599324658972494323092541309686804158263175600281777180422063449327729209828508017174697016219626710312865006658478763617127140170273636907244332994738294512366143162171918927802385660236676095323992571263390382713436543901365035997903539818342878874083327194702029631273143359620209981272271484433750878047202648427298268479062483336385597529538863085953904211674303183649569481509458120174957988239130705934649398870063573806693864265916811637120002871061637720083519678905719750319048682975717962225346811694574725148644659586385316951622015637634431390825245297861562984632774383082273582498430858051891378382275450186697991603943397020925811273825328531402422743604198005587365522156123295751645071274290409126063858153470516252886736792343750152104042508347178834949063514452595835429361606703057193738720976263588176299013550325761490792613859685278933189298444330613453382313281356874693571924026733991604198406753786230204599008483149761036981865970419320207598148334366166683448050843708066891813187797168758081301084753087664418970432073951493922464043420780180515119276110546075613509163550681723812731354828391316296540655158871123802751434888856280770893052249570339779316918661030876426712697509951072013845525722277646197619877819919344199827191667374790161726714574051433643662181026432415804998001516058736269906528733745376771723541385242180933300321680452518375912655041739822797719558824540048512784419181302023221411426869823638683338636435489606467304630041914117418756984975484211657763607259553449147956715565035339418246171686156047735950219146687368706562996404018284016385080757005559919203180781559732951034533948515533004241255171350983561840493548963372114470141865608792059387717635033798182236670018012442980940098684005761942312935626737570190054583167977145505451446384977200131477893645794906828778377628588692052328493460216903807727812544277625544438337558899489533708400864371448745988298450715619641099903814079022770236765801571709520122247772686993733634531598941957842291709159588526679165177931758554844189248150269037861955652785030725458557267672380052039073845768352524199810164813131244022480195180766813786696558829957672554680115354469462184488745995776507292666124429847034602593730275957812990842450551771276470203386410408683950947108051538877246354875527458634257953449666756209368644985181875967864955556790244439461794937849779668071705536607405436288284264052698488470925626231806436917293675637685459192534255382384682049872679803939956189646205333112500677224652034305038886396813818094833496891990570396076623904308939815369993489029623916766117381533726628465054484592803024450762208978361818718705783087716884877464828337400301751201228230654673852920889505363589017276531985237864366866008046975193351604162353902901808337516516777239125219898565249766364623820707362982307402627574143028182556462356796559149527091827337701840484193817754573175631075113986982003988309880363872233738538656138682619039875422196006512762766538602425545711770464296513408913635565594926493963310894800508933591404861781873666498603639066584626565280794808227099738649512873341302418710022289841391402087255334574020677277457062732535940580141345638334790473244133275983181426833237620174043199540998134413808037445518689006737031544799008427665885926727878612580335397760751622119088222517201280123355998841387349949913554515692575296707175716868249664159538393277724451927782472512032281353313584565266442115911101155457042120627364619079577443085629669406240825054138746944144267904475154564682621924271385211798468446279345659811007950413236736767414960990703566105636872651446882207701919298018603627447962457517198362896203064978226938706503266257145768794385096000974473533622438481535782271328315927899722389611113822118157149244995816326289621868613163852962338908082861155171815824532792709829985714614539053353531611570631852380122983516807300622082976127388633149371962901936581637763670505283556286770504561455016945222335124964197367400115565575612838482256909901555435891659421470894356412532179186483656365720092914347189514357612914314094944205145282359041368256344404594202091355523320180248983895784780098171938689454030270384061399323528326664757506062945370263377101903632079055356260867132297804137196875823022253612245006677760961223046739264485522702881018045798892706689169987679705806146699911610944182842251821242937895879437009521528196608286928026348777905943488252900419322422370354408832713605147278329894795054000519889792864966096144368405925343125204542880455748795475751211646936139203284183518668409187321841468833655906692845953842202625511298617586592403537054906945244874420517242423217973185628005519091164964728692371156225679895209516358753433546445617230545298080281925026498286968124323965794760214094179745775115913283241164480983693789595757121910145532956070921498450089313250463509697735146857829619616664676101848958089590380747566292386735924333151437322669544996627470809108023973561303368512388565605424003452133286859762373616657512465048397034847889826025334855653789355674568047402112460231854690779829135210973543893889094826102425368758723365195011501585078934631669230958534357813112537060611899175985676213360080086690989375705861598672277923020441688142689467813830754658735813952459058021606253472740191109319192272725148800093846977176896468374830423328248110109775977804612641950404170699945386231516946553372627135636854462357748416919040597236590690140932810988790364746758165642084217395523200340712627809158772943091069182143085671188410307116722372471099217611959607208960707214275445640011660368341952990449900245138859098389535603907053215748029456312965557147703967624671387416103231378790040463457149931932249879679558312868144342426886203315676424905440224847404933380542810887977557350696480296812235731410399198061470277205712625487656065782182489971980300845512012624746614890632588731417237715692554574211175371618156122429083638291082493675128692958875570153851811005063206830977654992771136336314002193492543762171848408598608987740939025002684119444901466958424466757348759382317722043675177601193261739262250573726404247528821764292769199312933597123491467487204087052718525502804758410936915153856862373770708305119119696059414354925549014851583935984297200178095234731163774760996939821052326212638839060998048485358128183262102111215083432680424799945509398795507970585481228810980901605953551262582252075312592509260031737942179205971458842446246392335443638381100601292319721775318171039063146326013765368732355474953955642521175959845784221627261757442588825789236130970779200576294329780735793037209073712427242251358888580172612513409805265348788894607424678351455437137369946121541213448461284525383762287407417164599676646537752414692050559203774668947722582179132585532306724636075497415920932927565330796510843565681107013623239697775211552460204059667718339176363035082819672478033117582397472486076034562317278773422262212217675401687835003552675997214209238164594389270390031694276750040132118939303056924731504623116482203515231030645293783071521818854798968410831136323063958443993728834305151596779376503147856716323822170947720155338028739474186765364625378698260017153079049923545002417521514951159070860695315589019204193834033355791475713295819232335348465090153590232806937533492397912070500089994372404488232588814702216625686416580369322588649529904213089218396331018774870771198890747495316167362972592352107700953215606354863366332899303662473676070238727433592594359065009690763094376224820380876705698147197821268957637676906700877690290173227903356475922619593470350601523995438053973198231268095020134447821813867346593234603081149941195943550462381285722726162659356974995075428221171251566488682170081354179016417996894222383784128153895891096523592239330810839598830787566070034495389443283028215517182820081756988366454117745269013578868978068650393012619949115725405848155640498026307178917342419422854383184285794558580106450100579211204627455032551327666499957738856767369393568369416970775834943632700762878540577694725142805849474598998830364384612176147904125831134243910194772445476492683826055074734835956975496944977407776441012644107108215878885110148430923206880621011048250750351788974027185109650876993686021896100814978130419399395194546739176698038126751762297612377817106092347264627254244507445539869948723446915856902205364174278265971563974588232981232126969313767850155345424628081794121161849783270781118530088208517029423721537667342216674792691287370086150385601891927112441931501301104630052681741145463901772596835746599481473161285723809354811066223864205142119891321702282468773177077840107092232393266834288604850570749040524196005800152588592050759560448369285036458317661634674587599544943086869174974919743224718231792946300720324563951051949161248307162564979912162516327100218235455619122054536513187304642402961140521421639323868821106561904789359883603098328605041739374770176917129796020771900906918335823085020300794447251188308164968059880072592274416369215521807454993660037772248458251842337538277424262774191683651787807420028240210734127922426795929322121318300450639631293661676319638216027342476183273560912694126794630907763134177542142450186660376964055249788505446614402167215628752230670713098038327958547691820143229013062119981716126500020663116189588142774028519704318469193629628058255588614472374230088376913257938327791189681024238721108436243651401520191168697082465895418952036100677930976326947799307973287369450783523650228535809386038479354937936171258338176166078843285660468423160411992203215381963153248668908956119006223775665818765079770618106446656548762507963601828790427554352014813383730114611854685690734531799230808510573788924101184040957610724274553936452408348704449163040963792524660358559952416284722453653554224940026740349777681756023272171009633159194755329109738166366083253168336227589168025042204354348501018355656830344962304377133762372350296295401821660191697242093066558383725466431946667990685680518556773651867715726806936936531946208118471746578057444544099433480689606731916792074833231061787122107907250196868236673603958457142790407335277344338562363854152463988793822755606377150648612271640263962383500196804021399773003747878390609271448804821850580187794544807025518639185867386759818603870072431167780605541929742684354417295239406325156435557031447770728393284842422758039041667538830979652886990008358664653236704919537770046925520556766364457365189768605615686324314679616711783491261534863639148101220276862882069055622601887723213779125511217391370451135573364372376402129292037809750170359808546473829850822949522615765283000717292534159313297229494228098838575347350875247208940427143955286359469511320222188801536359806389905757355227888402276216640819126851735686395954099707364244977259459450027890799037017878485910625067267945741950046893220307845246579729094362981533060029777343412940026330321660048871891509114910341027875182608570058813002423441788697540256616408031311852773158710663258273311413271199313226603563042366729388607465274303294479327451701858149253342399126371053965659286306368166763023347333690210541640395421647500652750064597646791257722521580638930032021361891514535815382394300819368918022520736258164267266492489112616245520467197660198286849271828589468553818100745637945930137319567881891479499701139863013838944946895104844987474823132810910223570344262871491112226295854238173918041388786935717993083827522540221337103760165912343454172012503256896715581917873482706386558844287125420522430872393329712800492364241962102117250856261935630396170521159198669617136373129342238788516528232404967764386839855400444630164094268957304222827801673574355345094608766755572445547383541751472766283145839164292122836834832411957924987316790778257757907199217646438837328879180699534643052416457523483499754747160730555160659593703607199879961266782256319858528472131459067059443318156649028137069119825216893864968950900994166520106968003726404351729206634535480323188774961619861493160398505169365391150605539074493947244784215276499964184866044834136877808684848211049521134299241177627717327678912028166239853617404437075790050430951829364274301333187635735126738706760783791328998990520305623447619269675541626055685539593626084427461119151690810388541890721521362568813709438012233727933922999941865881902661053763952550808195077599825518394358995131886129598801892853450760558097363262255464568649132640955419473503958518157719062533456128728755761155039453467130291100263333376229986505718079512921077141727221559010574988480299069461951224077666966687244261989471343256221125498761347142750412973755130753029117985601603814359666994711030462066467446374404004771877743489692091637715216440189677796547552498672437009782550226361095600776367971004609232402243016305720168582929356149151132015334099254022592080553553928126320875696640263510687621565522664610789533691860980092981921098284739087768262599027776285753483853524676466726204532182173219968288717183136698499194821900472137119193901208336501672892146880602985335810840116461574530106305901602041833153209162366808617208190010699956895117481333019948214489086303069571866262437633138131610045940442195918254414359223894794450287397845741777533259450207777508907489736830075257875211260529371866440497596351317163562788169821058062023765161289790725761550877003983048488116385357521745904450161959741359019407485863675029654932359270042662369441572484082575859954284096089978763408933906984961970963816862232856794984779480707146966238104676667336318196502657597550092107818092248333105018713929415123787571882698361617204520358174161737761958446717484449594547947602398539938760136463827483930581157673591806263465413214365117324726047416326553263180745799314789063637123640291657937447541536569080024077735312722430774218049460449504620592343804535025501458853771999635981642861152306922122376190850786410479882376602970325069357556984654445751425000507738716800522412629900589141955636413013906027423608485559233225286639085500239821918158046324581317870549338642827787714434181081604707178051937567468094691272913282054048224894127043113917758330666504538246284818210977259739317408468457422791060345366241665726596917601610295782473764307081245461744708474750951543896010162492611995454893128878401838932589428995020736673359353693866356160583615999491454266843464190452450040241320165940506531573650586557211275059473189423793634681175725255005906150891146551225431871269842012827485424261437525401556605282923166985176163182429283548726404932072163999460310564208039060708104811509454236974914425667062301274807156420274566428020042138329697587828608468633241277411374984615976250077207597787796838698974755587454907676155117303196188363109782312019938321663652124103159991974746695015241201002675447584302734307229416651024952867663314559652497034883814673742457044693453446956088338873250585269054181964159093937584831136103342032363541628222672535521904316963473674067337826534225315734791480789270564213965939814099742440655285809215786456395146961319505149254588944464654123198090931635070197743134284540475912743941920721903022731894044297186896756577731180116003106810999852160763673596457651346034560321814367012291834608794018453691821755364399762910380171774372896726857787713417084643736467858619029968946642657147896977602269599364857780908859519449805037213556665192324700672958578627003036017609833168051753690781328400866139820773355108493368120666721831832650093197301189584077894584830712134015369483072484569386055663339523849557221157409609913307762795654333513529172947314699852915649858551822132832049482318115614421791575692855180148800801091232146462886729114360974575757840885611654253525174862973846438657593992010324975940686100285322068641147759292869781512002622488245435777769308493132718186067322215288883359735034286890813671975838745686389043892384147249581168643152624721114987156527253947918402983352377231491243690830083332875308628427300024110436362432840761246875790747401829689981814261201975727087785387931411262661818285035870625295003760134083243207272130089695926414843026086209829719765315877983915680322980173276621413313460251217139401952636112555435318754672347862347071923040181419412836941549950355195632857978811804034832526110558431583980862018289540844076034434074439613586369455486611535652794723111071689155598275645057235362767048908847987757304580938466836744112284189232186877534735472745199789863305625347001434796781906471972274187669008472564619132855164779613193346085583457548966568211038878095359247977713285587102537439066478917368171560948751136781741667226051370580637985377540728036744314878587648495474264508981006963278815888640205790454427136332874662541506644814733047312638307393131818405876896578350473435297374812865531086298189157522389439318898055288306023250862775321987378847258938287525466559194585699374399850108090512643593368320927817812459562148865232973382860717277250366567245056521887256542339013877106310241569144528504740170817721614708810731901149222144616813300535789268450969816292164597393585281212665688231493824075019197658214896889254248727896226512833351835109186403541746674902414903053977547414289466908286293246512502938411454019564872587129108795271431375112696824035144784778831081795419425346345540761698909166885904476183307856555441394398248868224267502628737747596690500807895767675776469199640757386154355089088192922012596561780804147558728322723325481109549437424257960247123619923144560362579142774400346071187449559046276926449177240653958032777899385542112623541802102264278269669559556853310014144670342869404711439006946690670140642156469662122398797645598723443163000435828946371131489120314743737802961101630316929200187758068028322799648225257844838439591878889563603183831762338936979713744702500458547864038077525012600650525622527651729595989067951010055741363031647577314142507281053643175841377210338569232451104775214879125910189080730190127307096639801208634953742332827076445121132767716902900913288077919094220278631113011884029662225491810827243792776493403369280866703381835273183749246115274206687880592454415555335435142032326461567136423471079376704722774720874196650882523071310476528130446485096024318753571552897197603880719862621303784598558488868635157112827726145916545292337800426866540335216411798401502645777929233630043952345155717338423533057039705959324199969566341918122063760605740113869022253801326035942132139486618159935256953176944481994531985605652836091776518076411199276956552147298313845513172236379131935587644137336362807799130635893335732475918885074275991725871933412969601680000128062301386066414465403852870896348786383363087459471712803637653269824657647990648401888733099264697366304508283538907904294795611895816386755743042928286734948299859203499213542850912956229463944983147353458287530225405311173955442246683420695026039196376489694210092317155899081043814561253820419674957767241227142331046547140383405388690634711996371946212630090326787440903631266011948230220945648170448091479274285396247798263628493030007468307414433623460935208649640634749716951781143915049543191828782128945611448229087220857089149295162768934416359572612089151621622648663164540944602197996179979939029094215232718630588299055930986217644414650840664525600626899622761155357168800660616812560594954592578871494435174093700604824267589602897437659498751546015424718553407604732918235669204426604370128251479365519139534200076755096590135692285670250450710650208429863586821993299191466662816521449350464308680004063334056245412452828418679326623056081825594195723299318903246284529894195022905005021070134502290630258268829946331343365053666278774871609351080976879107443752622870021583311724318918673923594691698255816957021033813169843103537120424757396668797079553550317905123369753880624710779599854031496848709609374534028756316581061846450006950657125318012227081231799518556001103245392175574573116868122427848320976927115467418272453528901286530148895977588003631326379530015372743011666848838534412316277599766799681430325202960254660365346455818201394085060862906091691456619487449988782431322612054146238737528390532743400682076333927869579880274211666712983247407059391397013065429383601888107931716644038074330228433167029864004931388728068417836297894663127759432316173646531692777242484998020204893922835935643550863263866496267224127844708312820699300529834444536221130997540219980692293729481190792005133499207233668517002532962201631852319003184498010158920138115714996424264117742461953397099985403701495909290597187013462969463631505252600039388234892635267264573050341531223328751645462864276979251294690365785785071655859331541862783539610693924060073323183613389309273370156699458770226130948684767370498301343935624809606277269846294433337296218815417222761854110443823442619004201456125852257981546225762044692031141103969092480236010086569972604649227017943957855041374489169481746569219452284356099305089005716651389400764266443836657913411944252877090776759673470239238371016351620178556608296196992246998251153412863031626149362442361742032517202499515207802654191544275044771916106068606887793638567631104197789875833411605220467583412054241944563614305348108152791615284262655382927122224738790737059747834768029489389299751046145219014075296094868836379712464244828171208441523535704815751871352804299217608892322466912061289473245579995824420864585790668944668395390784761255298206728664642802807104221920629652714064291947182230259183190968160064816089746086976073575686440134981390375070996378487576786079878220115210621287524388004419217423742824186090459065593463115337573769293174324098587764570013035195468523348858170051786626712612885032269063258854317796918681619580006928020729403016543240605302073275817478374031178137871649277701336242045028715028565050005728781450167569657059071572479874989641443487666819056923894920355853757942354217059303231295475811829363834295270402685138160404842992072914713618180897365875836347330157765968640250869093446837849186532960048985218209537697135528186798964586769487198371941987822837330261404713576297699987048957949189306451613329487131030986091013653488529675534561818405660420847887168046726030941840743551083036803581061591611501809857084576854248605336518955557493317323591472563110092072482103823362792382631054397584408081307794007343427319124299962628198979048998851287748841947882375947237033885821728010486658471594892923082803397637871606688044325802029201004701911561135943268824156633289393706388425348050170775137271682032019976246346825286640240788779420562760243848352197049763482225224738666084510186266279183130836966126297162358566174986543848504235198714926060938025134355157180256582406174320854971445123861094050722820603848982220142890505667560911821327086206272438495183916608015889280586940359752482725791807124364570774196831079946540492332959772727342633965986925677051602655489910247830167010302258072393791505875029255974422699414925851100205164349462974872779324785882503625766636772795740073713417823447318338379075818740540052512858059155134539768792996451156585139894179333540628782562394202864235698400922153896402269258151772571512479895555804225762168953557425739938947857439860536538807733188008172990625848443050347692983677333539361456185120205369333991114284313512732361924669739194134206814225700941864584245152835782258602680375820759537571452496777902278319997874734206936024863842016804451181414046566643518846555666605151330826525185940186751246106839816450993760481396201584170228810436985220179995517894185761373100555635173855391729348690605555920370686217909965711626648073888799646297785975234299847498353553923424073026169877169976386148156873287319444326142129335559508360766506981230266939540157328616504465607733053028427144742648070767484088187919568019734495926686324393073348764328212035853210958875440820806174994941015234531497668867473307813496602399344833430778411268629682672157354742768293804224817225666981061910173348318948328012850147575928101088124431616616762462210577084433245617581620392291782621489397877330927489242861658785131917951923723510575882521211536050100830620641069325719571454053873085987570378297568906109713190913650502484751984049498197129622635012091864596485291993710039090253188065395233665311934858925996648946176341388878274141902135249824956794981525869356771581583818729112873587445761262892543791464548451104005713755463573420011687753418775597032226983103380959384317294785391106259991068616816944838653175313708728513168058840470584862761183288653021437235646599873449358784067643309077436765640465350832264538740318101583429275390919188015134151241847622520758799664680442432228492613455616239560155746824987219438050690855384204512258971490417062691029355938467386103644463277593982392939268107128509255385065439567432754688787490551916601215068742447258505645489371604179308637814494866252589521135401216502096066866123840699264427512623719710637353587257692465840724692331549416387259812454248215724870958926142319638768322746949376641872464434902831921039616675265342828046232987631535666496613564202924441659860047872329358796228832731116651156816986409220432183730114908574789308145852369860876665708743062471107837113387683934089894614908612029885139884635118934699628623349212179327964148682004289899671646050771804770715823710706859222427719648223240529723785637833050277079348226535426254095039573752114621024709535080359512220496572578368018610185823027297832775660551162702066118172073428105545210099381553972602735893997176697143032886404458996041354237602911954215167486702593696932777283436741821141680807375801310692500906928208180367787627448970586051970690279935137236573102391384316610453091995877508819738145054302617461148656479769951026316322080809161652088260306657352716920991875062316076947671288041018212911980828520631790374158243404793879044380651336910191108569892335205686435590779692189236467484111395558052627763677621215881496884644532458661347125196739950971163175298402783608797169458665961480071678551649736397959558379113254523576980709250647541862319399316330088810638794462476349092307894021551769486784330652038908138683307871941208740637117023614760116997129076745540794746682086441206010924755892159610172906178250717141739080496296837361213337920377131312342278048567695572574262520816747580442739220331937897606201331911690073446273898305094158523332233516027359914247273457139640353817639321192334617276138626709284270755674858615994902946377943060957224493308651354898931022552142039594283822597861292955906622783453081759768931284531669393798922372141086168706894935876041428667857768147121465612647547246049836768395751109201095413612108464499016371864912274136325185995914095491916805506444932302582921862288932181647826892348101908439812126031410211121965940601990301289901830354206777775862943052404712253360760390195093011671667564995408437285313515317870386994828952534330329088632675342600551538366406316108142641377317807839928445020555292400308822083477275212382394152948622797624991073964273716689588563022409994829164254357634555259904853505852323707546847628602524091054221154600695626725859990687368025473268972681683333568340591610490432904417031666549104853429289447947583579159972288889911914726461200120043288218706124954780463135648025419186509589911021874242434270812880890600345071458153963182426171019250854622313713574715880236737675024956450663730261528056464026401889493291430363971885947435103400962578245286238704947610304743528285401904075383606198969242317161185036611892942096888473491622351331854299240534932283780597210341863679938697831136581075011702745366197162653207403605897124388342308592967536741006445705260992320286318836133307666750842093763408971425017551923468267750687631409837558371861387515960837517477386884849430257670391715485250409507922699463424782416303647628406513770448676083371834591874204792461910100934094099450194245395291618449104916625813342363516575424788443639245673955027073694916035548001324465565252471194733097854200311967555714728255206712214792917782185499048163972487767526233406811027838403122401235701864518314845722948929242012634214966889357250831739254681265116612647323711236503650673798724935532134222208825398802771336264070434964557133493041469180070005226600055155160386609041741373823687259218681527953308818181717488117027634623156872387408174738446751412042711780533059973318895183032710810185934595439968429590966999944890498418021419167849036047025925819852552995983051369409349583996238222688872746090081200980333272497229040035808041224000873716439199253236139994777756591252685972666298995570673803812495245273155950496180103340224099806712005234069877059026508841260189706457104404041811716966765747725753893310962048812585956516290149782173558954295694325411585246747774619675477342508202864000842327897195158874614051336237607220403623246520566237508952182606446364469003014147960501607578074580363780390971517081964427941524632950038608754122705379064319997401470649868612822360943661298895619991935044783726050086872790602384226517594438027976141049054428622813454218057727345883368976981565315333536944843977298992214299548373411616650913187613267060401515287801196985195838389328539870906662039925501361908955613668928307221577127300931387841121746544630356977895894000277067433384704057827462035540191892596871637525223808048171383602087794773491616460276825766756823251235903794955362917660786455392638499746421285685213674047756895507386825347539655552256321438602054808667419131395147001156735616005127776449257947674289906864762895055351951087260256367268668551198837628035780423605544011371633316099915761699107920656404855299206378685929790597741566295056838687074199718572817612480591635868387132976350569114054592222312953217685568734787649120278762360437904455739752690410183864982759127210750260610044826768779313537985539020928681168323766799590842459247769779327935917994358683378986696418333289765240798610621537368009538309214740611384876369709862816715231062828526978810293480852221915804494525157199029926843384733713210812487990479168846936402207539235114558622522038867134173800770655810525666803808126782006305528810473198927465801137811503786137706153743042209919376775629351925154613011407710183110396249313417265307123710091775390116814138454846244439611621994097501316918287260417812483398480704132252408887228377076675101584791017427835971990239549133147689356738464516611150928881077958837425648910324484291574394404531671313995504891297578161638199099699375733229314023606592032245756914873529886695667635061731814722792818005190179087839369554169348880977113075524147384173886996865339694106116817563144432924234570799476095296782394035260283835202433773567235215808249099037541070925435528252441684426717043326284731160392136536916409829668456840844368627339723393444948834709757201919139773220016522430435071740250899859331249939350682688557213418518281991311755445370821475128995475962706800953731239917284348931544400089449786263968440920306455563898695717166956972357485656650779843988994031294928505998976380051771995517065549769098105437331114187006720924576533859877903354808984777002233462913894103701163493208780289556988245834591148692113238687412339675174686347325915466905548172291585941905082681675036005587719531356167444214048309417111001113318969552366700060381061109474049264670167158498614862904292243950508644001760342330914731291128267251987376137477772281467109861828255095536079072831881883594024865232507650511531977930389507082570123794810890948570142427453750265072382910505575798077400558104062339698835253324013856675869961283340386368413485716545382313013055912972252340630945247955495713999180453193686949524139606757766386480657336895176253155597724938731592905136515796481468162329397577022078960795388770360846852141102070176165462728475898239912977547363862604801813199909423483008478789865691065235498668344314094247089618848614153809122196868772316321800602494176685897964798656572748342481660348759052642411717979838327828899980880250209276321770532633722747738949668393514964842443327386647984478851774261666671567653159483198319264623452542513471343992120382271458564566351103311395282845406464118907727388705293759477835346805361477326571658148861236255106514728490937756634281062016864260010900907417942604157890748586639917712602153188599728810985467626529509371679637614617591953596214837308909622788511194496655350603617718360012851800543747853530429882162151986745037971904023848738076615908942777278155814259752905163599391475273902912365526866838461700343935310076039649251759816993147478682735727572348754372896293701532872058202748681948753176761170466462187288768620601411176008086074938377390482637807232086595996104144921370459479841177683079769316954954684402167691020845051416299251361343636895679036504615064867619223414858639082661790319092092351130179133129815019293936550785844360204891108877223787473623353577545651630027667778277287308656917393178827242651301962844599515553957008068589315072086499068155270068472328201881265650437937822092999789811534612733136067852655810609184577304660152848216532438123649929188727130786172109009982521082936227012461154512908528792132506182833381679356955358740703408311571009268064988755538865570893308621200907117767325108873969297167125395180075190090509193519988296700208746573159297018481174671096857466265678855144648654486639290721673288783052662644543810720038019551711260082408915426213563061609171048621480747829684339736652802851275232371754469403254502296483904291660116662564716554691971220135645855196072932927790257391200669790514015922213304867561837715312191133249403143669857679008032943263000818947120784398391835295482982312732521783724444500023974836242839570783442811551087097031651957339051303256912408051665104642597864594875452549221617483010337389713094530868676690921853310060769202129714367562504497615014292608312810630958718687722463294217742848278487875746879815233660440523186211764098654736135495254399520130042586649076044400284731973683925964032875312970142958726840495565248881963346172178304071200961061338226393293792576927815897455765691029578021785577026189575848530449217897274937829777104774954728648477575364495042677215272418654908477685371372239275077722741594865641808636362687529916078565874568911081227015902824836730012647287387613370230257569456904191930608874226683439102850374775491302347279217169571560825832831107100907334618665029900382551006201529247691109722307586409646736635699680061707826428453128390988242122101970149337765150975326078598322613047951315073804859474080498221389903262316527417159459282236285047785561103172038704136533362462430867262427410711248779042169258841547587879877040990638672176418878807786420608980961938333749092729353323669358112814266510620352942258584688207472756173292475660796442115752639708088937247869839567923985709368218513702028175910438440894497857956572704447868426209676200224906561485177391046447202683170028872461006018795117381350331832733245345285615650134716439378237892409986460806349658512599831642613852419371037348736723358319394983173352677651714979564814269092674835921488588250342896804820002402812291775660116720806002288631382088428579366597433202029139865911565602476195732242140724861573950124553432616988160175575281617338921531192061967668287223371389187742687648557770762855703785201073380068833492936848957687995686627677058783856291237420330196755306429667819775131635530972188654541055287891533268403317327737148074894083247893947751735892149681343287505087053342717106836384301783157160663736191307862939378240406961483615861900931610515859583770359885924747388551136853310414460492639369815924111502869298571567722907497163060231715223704394352020064039870919068801911681334200395231402704128666140385335670033936994850613676417491217193404740333272622706399933877420276589860326911896888713234185537964016825380082816281977537995488284080647664074914743458280482653565424120334330979556220003497476482615885365269379376565796396755300631291279298864719223274653039182793805540116363736894142993522754200172020473630728377850861396306367452292214914534955013068368315240854901474610239960331871865581010203488003466213060404511415894366083049286936905726563959747388085945422111070870987288161098984477815103710244177145741075459104064189978323935234305090117319788042410122820310164714716713971027004097325690947564549138554386214214238003507591105944686102605047090694151556470141446219182335380206786041294057448291027314474138369388253467318518888938005290573427211372709013750459495905070032685403848523278381763992031944547817246117054020714582334862986548772017732374616055091343629875479100577611384941350036918847487308456153686438182675680088152236715220179862241746952749066150322888112520187239913822770785942692494801133974150931010661453171085968485423637064805541726073994099119596245867019936826838374342442437474892744905998475308282016248626083108513577122084967470460829806748751140705399133952368759577479348642765477011446865280326266300504473950794712723891406890767839857071696221295676694183116210252382751652618317659437166860897184227837198031964828415416962956437287114634557670479376751465777566772069688799119131181795282241789016144363226805107421026931084029276442799122241934054945838618429948736956880255529842565856019437145203390498432976446087199795105071844820873519856747484906681203747755379088386353746432530830660442981808314903692608923174691744581311134828502672820968575037365790368268069627562918537000377802029019633419992616293518120512294150551324694663006045996293167523628121081630925410163377254334311672656236501944425424819879219689584078657211468436221941524694702274124635297034639419168101711526272166740154255907390419653926946194226270820291794024872433003582965789917434614379653908721497756430040821021442963986805223048655000655307350342458037288466082145861823224296033850300932597282327685328208458592462349788112010766414613892982139675148652501001840806500331865973441939632328526291107484702629786042983503360417631591167476090740279080756175429626082426019983686175526595324019278310798748247443266525240670290525975463283705436277171426057098227132015833088030880691909434528487692361970105028539169238311734306527036040671331244672759315727016126443546126986011381514626534404812139922590351556650991096100523929456447330390185649322303392598769959952965664314901035725990225492689639331671434415375616131556774681734663537658983399612394440784572071744433396263274257539819373844104542788837929840720217648805451406471064298153342431139215583745004670703683864324763735947707411733741861639161936079207199996373413918513711910874576319768280144401624617542321983310458726695366941830570181499309722311458020833621256419092612050380703181055160510580148524653160717476498445514110168435862093213751934669226325885193582312215801866854581215796914559329080324015433997191513328001387000507778419257964803629842229127372739085923805253330996365499011315518341029410738888633871975078940330079153853714435168279994987338420702704587473544006555512271002267714061603883702558180435838074110325543073347219429289712621721965739665035093884163448320145069702511621310616594804228411540072808982817633383859692347814252284042597032024398215918077216737839837389827724856920490791641657461293934235733868266934683158623511872539807181768776295151931349131562602130032553952791048867897184040420398805156973833063556611684647376443503177117358529639878358212487646136508647002444905678283470681241386235926435312578483827692347740565542439691625829570154512610505716733298632499810313625094343113053807230897269176351325484278036011867955829222897251067116107470351840736463434598385809171129922585649162778704543785203906852737076754081259871236797043709743435946892578692104395314078465988003611944806613913848954286008491025678043238190638822515456533560336383079927013016513727382125646120668565392276122944964392749439629776830705259508221990603518160508611609276084539437153342329585356559289031857582055660418821134459073658942125054918573213673008087653975159229412270366163552926242268575257616375219502700561835324495078657452806153644717858256860401128156635622843417733356407070670530982577524992172081238454765377635482026995174269406655825672018786146216663670970150310671335820730625109617944468706944199647161055744249373219502121019710597897034112023791152562000354179941393951084869143093296521812422581009086036361202338847469001190032557888312885053880377414835548483428449293239721488535654028355726443356477544759921537217475637806809918773069220929495587881602257015765968260910393856463876901566009959239692404082973958147946503942975228814144479631564511597773349950357174531788124922838801540345453395855426776156600237300534810827083511863441184574662961627441429409708326582252073737178468010175454702137847149303241468440496597122879249661534922330096308581469238159350596478408269538088976945275192288291029503876977555315285460707517234400849363141317621351393124715177039324926971961357117234143100571466211292855171436745141952027904826823423277851302319750397604354123268751236816256737686003241513704408470047480756790227002903444516585022876817078021419613306132449720537618192817936848921456082514499705310392054933136336827905431767908629791777684586848662746777307995453811103781277917984090511786475501634959225618144992677296380058907499939446808639083472865019165963532348893418642788897097726035264593236818689904181963614757395325205514313196037288613961693869637949723103770439263217489973996180049963622262582632963379795226431851843669397502602521432606165242306703149661532179213337833672813700079191938961203369886347795201369654248458174211950483352900103103614392754459552767679787543937943972772313235874628557035276160069292036386232008239391043829000128532447165361550373403625979772972904369749041288205490375973469716311410055807094151564500002233051942376378408480511624543821657803144515551369283789122863680013305797149514150320731363676067474845553127935714417906427944646112296614415125812716024125567191488933419467446604043978784887631951025113643157962233507391452613403231901668968392878370504584379352583302993067167196083542576260512214098404939361448979074317212023930342915243558348726319839872289938554113613017382935199068641301133413693620829600751520879649925162600530567826540462604929293994805174904460827627626748346155823230559743790800091467952373977027897545105267107211046123278098479015957974383029698536263660775843155538822525331688324321182607431740509222842004146512454812692102875050376486967642199209888316093452789515859779682413045616968137614350171976310569728725940642218825366935466562174187558195633710105381878485994807073828134066183357870312035994536820793436817101616285389765398691561941760036626588034829824688838739208022100563966130013879809918465799832012981906017196533817687227132547637505615131093396330001485865925359307472805621235745647388735160752389650551156055838578042585571167977582683633821268731793848776264188225561188411171353623181575296440698120709574284652125007343174845515033576261116189093053142545400547804643536311363057160867941544427935992971997822506584256073914278666690709395521846380239594923365546245743253882834799484586752475859910011534250709158443675403859884750088923517598562097757191407149465986476283774118582211432557129412539862680286977213914609650483040181454905366036156924878204739254590729708199702397738768133193798932672850582403853016205703508281454328867612779156188385513047438427127590259948716740934952969144891896785744752530585747056738809250201845804882880732178260282746482210340706755296492170426269644108149189159370083007274170375868066198325926715958804383979973747224847719266174529931777891452919068106805335290984133327901309131856175547088042560278650675948311268775384458218221440920510747128070496855271375776979872244062394545561753176101121139221011921555614082023583470506057547245457075544083107871388082962016574196723484583807168353025313666803228340317288555316390318836718540403194299170477526199348313941693663422778856856309190438753168680460935596964526874242738634180556818774264671875980958470773787469085448983441764090305485766880549698546030500251621622255547789714329718601085424323567858121074835019179101321951621720063436594058227765416022687379311085554725714084186263667156801289457961055813040314541221966971114373850904919301795940108203720405755282903953252993328682661129344155067879105813109852770909505144676780207803283294252400666668393846064855514238395017084290672453129408349148728213909826230444826226654983182781599434487377835474752988298589522848916630840070180112181415455713931029135690029654939459287435797481452827165347438287928411340894836328839902005230921267938219853726814922767070112296444130690537254414513987726624674323279234713536666726919557309254970978106682199011646245678630052962090165263406206208817260770447935033194111292167786837301633403232948432656445188867620854131459471964368354704090683010497274374242251322167540906218988372326970244185697492226763138630347892858838815986427942631010541820706584579212636677246354228279926301939771683948411659128301499905786117205893556154388534308034721705748936279850615495695710022679281512073975751928481448158929223516028548255247871240923352691440358884532458791085078601491268065112706595894617709263560571005879076449316903210155197032453322830608762289408927948588410662683386023509341847122465231702581927560580842610604824770394283297792787578222647063984908225117930559377736383920690452725071655726745914098364329719604714173946922575623018385165022680808996270347207373021628709989998067801314319954938728525862649104089119659041202773506132481439006976896644858440563326374416893857799203698951848043521688025147354977432014066868256919526497854894086436334786749776998071967757802371213245805809670446281285440723318107939507850228251234167918438529826736635171698894675665153885987371617779289430692198697285781140797270993739889488967183102944310597324180262550592284926754897642850803345080693662458612995681304595278394913202770070928787490692143341821595155994952641756810747651331479610570312190539113761721545608375443152350429809753139027446162582219860364195038882016110469582793383299033658557299486108516271498856683459692049804671004860342896967275076721699452681276935312187724162487897125494210299327968376970780150617339635494720757103973240027464714409034502536600479089695198063237217086425867834071537781761136333217327575341655393548372573161910836458382650419926399582353047418801414700322099511017293366414867078150389320852895543801098814755566229751285297019439101684869109417492422226635342024797757254601568708197772325466609218277608560829497201862576782516208170345515042529872314208684249355257212499140268816260344566375295407038497905048860538564419792481109621973034907682066083292565430676753540607634427794522059996637720933218666256816961295867547114965195688269870451251482369230000070824404489959708878304875305839832142791917529833386415681658397813513624415850272309682147370532793814955635980665854514220695222510435724702733719041796958603520561393528880472573687425359894416291179852506026579040508351944407987622809886195186820418798563270492394168398832986153005060927865599989717825156959733626600302698587588636165466819415410437789141940859093619290133777855179366015616849109415070088553680307954174785355399743252515650169263389583682921641903513694844157906577821158795177998483417132661126436129551878769898858549404446009818864906906713423966507128654111414193706371210825863745141488220861142657633431059650259954029487849325594461903656651094473800626285266971107999836036699880417519606455011228275890079039039152283080310251132104765511981798497789090653062981709921375444707146158074152873441415174261398312561465489545599156540693194395229707866483316162793367434490618228332153731804556173665092451877656928809185894117271607693422506118884337244088627942328312201254099951295284044844696110302113448825034396998464392776737403736624614403200955346020032990306731518289970686525844622486854522282400669314607175957673524947128637202878793675205866459699979282831640589810075781529652328241514391327131129106703979188948734044451137243823248946708783309711231047540683679236865606956872056008282768589743646365780737005445290144119617631842720878366406851774907746002630421617915511287823774560054346875167311071581784308160750138089748011998832550611486272797685476316015767717135388622336121003899727508930003861274246502041959043976601233687459848526042554197031617746120111461301786539955193610021373111635619410549159321959842517958149559831168301925154433863400248109632742937221517758327325282471597558895443815850137969281587636985134558556215854076435908731299919597474050499135113285425806796167947452774783315615569152191501663715227116883594626688879996328525850408597036598743070678587630700444296877602647024441627498838691655264901303545177610966175839214146879780311894418869143335952694623526995481739050661234315472286522740329022778373866900240515936429890246805333722990400769629517931110534923048162960444884456044918315031927311826112479255141306327440111291038154307224981666708226863748638492465349527542686289774401289696480722166241494293450111990094916955795635460846263841360245919437573470176194289765096288948816279456527805420348743767876647674234040224045747408641863854404805423911790137878658245941074765869795095833126617223986614973783254446450736978280365980335845951838970899549832020567093466613429716143748170671659244525866107221712939057368964807310392483181228050881943721547366348143932063325108590896187120894120975882121243856498444016117523574497267104264109138707245770590596986722671837596042471055704593498182432532342403296024132217943600831414271864731071037983929025291503124438100497138713609001007567105117131423974625989447602085591030525396349834057455003931379580801067234688805307117012844564856799633475069511804038132842161760429075353656512448663594093307696933623390889320575209834213329021175752928525478501068572548721407589344285947163548868921361806282323576185994382075819488600852281908014716562405665209231160223402066051567037954251440556624570054752617972864028231190538180478275101500387262293699337488538108296924195887578568711364171661172995779826237525889586997761814766197973314286657355870301520083523499433766621412688712071144485462269597325258668526009672061108697316189963797843241002649523142029493430613489743020845926338113611638508451887075611949721106078636395235116049147400356607424485238235433864643867303527405535416030932835692995084881664411424737094021166924148312575594321389905497907831859373621511605439438095397187954616941293685776891864782540214281774485528581122201209705481521063805601177250078449425634879938711655093836667797271517957126518973234552464616142092407355999404153476941537976867812509525831011195796964552214497110906767615474856304859664741959504408028893828124444616067094034843755772168572060338075920183218567918555913175110111803025523771886759061522607186300988406012746517652161042537797469249418615217391839842534291978138272629550051116265894461577435331378718042564303494468773923572783272421349640110467814291387827189921619784797169930643615053118637091615894487960676608110216438401549774537161200141438364833337074722712371760857112361592333813972804232325458167115773868320820091393501992551939282482019074760806474227480905482717708850913293312020287815803827699559643288454063000031009772995964271043685884082193590092724344826654043306387455528791235862781439685991697361539488387034954664445292449040118457664826946530457881946232509057649201642123165974073295744849131072428305761517444839580154452833509128723483481533388985031641371507333738341137462028659688380810378941965382431801271104958668209568121596799679829782622266615066943819470930258060472375432973144512158885067550128919959066183228995056950627564015460120377558099296862663042981935501813081191748356591359998762107510815555164604379126218560763834688481405328235493348899616229468398676885995896907590758933611731939785856633027515259657266976110550885916955392587205413415367340256745623904013179065404625100607077603882571430865538329787089855880929660318642260227831682741056404133951189777295642188553280887779061123310119052403757416637653187000046878026311984041380279057837132240935753178414334416301802111667730906370861499831594824518865811312666081692006356634833416219737675355974775282695629003474717371722995146763472736218853956911072953869162603530573144969860125543088339442106485489928400862932574840652368684440241676456158221149633663576525956536306931633674360219318577749403829812210206950772039168741474374093821222559148358200027899605358000273171692586906583081118367345464385623880740953189704378126072376634427482866361892461752575437292331645274302691270284607370269051031138179245480374914142883662147297212567432617067411123802078739005657950423071399639664934614644881115594585847538008405015035981413947808361561845283466723677785178775555014132254139293212307683647881905743100156270363050377275633584022197363854008493390196229802945730611923358924551401471019493192103320874772210355532126048300742471397312917710241916281804046718591075716743150103691037028299018382487594066505697041431767747526892132311745437174460410678131777826773013826373550610399394272960810053242444083106570251268753481391148899919324941380821853200259078152208786585560081270709138479065772089844739535553348947701905595373876658221978211253294565346173251956143250344603633887525428100298181196979296605595863554295531104074343906402990010635963379241729751135489901920436296340229400550173357026119531585741919121837355824007777401012295913176117961042328646080522767498738317029025423383609031032443641336925092315466637261830704213114076712907091207876472694661257115079882531210884563295283017002790240913541942857605817534858580016135730571768532622327288935869199712514528338437675402705380610511246790848526281960825464142770531180556171377902662531077028192853821878609032363507960424410611823691434566906719390670403018913651284720474011492884063527494474121602513022226939297296866452010207387306638640107885116371722208874660192842698958058437287273368975861515447125961316421146835909446272635211168925836416065814872778514835841533875612604468693590657325313687207393218250536582065790977919512049183222810110811342924542997846154509455534046338151051381763742990167031974467900442236204791662106515680216154769385988704959962350413320313339817904854250085928459610263850301815881791196153162664703728053943911672273692324784687947000350891238563623340125050476556392050159679734320711360257359438374352337211422310773944235107627390591127664288418503737365192190981853748809435300525182435040997176956623682499736361006427590083046371126642726775086505190071195037437019389498179520955652479599103429840230799520629266157074163184812433702124478690438961054404435329498444946931207347693906653205459977130875090759264835409048964542318826704286334994168377780100569324468990737118701732421261640554570837897373934813364229382505112879743916637543958302425122624463835158711557765000735471804835915054614276680747708445745619293778507192272969416454179679206559258952114718293688203848660207011093079751466108728491007136811970496111668096625302331977804924351871046709965580027409151145998403914618096638995175749006250746020114109691833692804309552876938863238914311075907986090848287536265097300876131040713952239429858833667438159366107276999301169184171668647840804153822715350088875885336519983402486699542400171493131848228481668241339267114508096218350423944150462687403004587768557903309205811208570834334263070927604507996516491365025930291109929019012108844997828720199507656426870751748878160193269640347618302659075410989009592303261015851740812820321954800575130092161673104027103873765926103501391671102354097344806098925257015341658838522557886767631413566767804362986335563728602408433160892297977945439390851632129025222462630713524917504700633343882650499987152521265025083206618581539852149705257669044646805774489349222075949977282127678623941152444577707003245648314770490954083648012036107122787487959587781719106887985030114794233509448049150772662634176093023064406523516614400687505909471549869435805019091303504743064394317689209307295312949429168967272698101277866554040770224623524314484816868838355392980852198522014249114211947771076830780825630374209915983701950346960730281329725576549167800421657439657318770210079967963146187683421495224944033320330450886026767181751653591969507066263774260160071922700776273388626708715835999779583822351900443145989322459090680755880425901461410614174442070079822222307668557169598568051452398502805429530251132276940601428344648819292937619188350615621753153272591921505442497992638125906924521319316152086182486507305103553934611617879096250947423575823882882669363822696264969209823031647290816410373494194605945269651867456019149916499675946009318466663097331122148929447191322143735906984190516907047528500364440727568369022326680790490986816890867523425208638377521650590620623223258148289861432508888073653595018433413000710171750171518070583598139185717143773224902146723935336251742682321280579460692011584919450998948922026794375853973885865092130771234268548678178554641246948052050068699189843004704554638130059530968471968831988284381158326812315617739657089013674950752877339766518206164594927642974886037261715489753178961085177981812242159282242716768319575880054166075257622253422166188167435280056305371328651161964972024546072826739640339370958530444736154363726951202281593955447952659894713930805949309509498391668462006018313354022352257195656706725270773698484866147638193825383176175437577972303768204389678657629910952037896035325866844619722455511622226512309377204701575372162145184806623180527845087719260379156573696985550486395737157551280426375227688576575161882840112365969961704369367937138939049381819935181606392254570723366159335395988683850932449018764106725984111592407555174907496274376896309172447515131935508972296660407907075759868331576636490200971799172787904765903744358477954417656019422878944152956336157913061944824994564649291652818323299536571085874239537789274739567654360303596237037772345958805431484793917337666224986826315093682588063983211935441475203263034694666340822256658003374706822205175638219692508875835217536887774023114206432238311788084193166328256080031597970137187112313556174262207238997330358662188303445059514072309056641425049253940376441360802953179093478008522980022014296009956565167369178028754254615193865245474799331315543615767243525318502416907618401674473050324514299699931620092792094449876426783643457535404739022103183595595556250529056127577397146666149036001670895474664831758410993335791338110242890256907270909728043141515418886746237820834372808419178866568758447894525719376716425594515584756418216858731125970600778870798374791842780786324192737503251626688534441553791791135912412932303831717034013536614461432717246542774159045992127670398216676034885992810991706630959150192424156901308103040458001871817919866983060287297486966040265802191875121343786580246081578106629892206745145608161435164554654427448357257989250845389516552062792176396489497167680110303180200891916643007386377351735855279414076024590062866762819378464817154787953930968362922983638955030128641771229525902863663491939044667775143371853445701103264310175301987822387180208077613883053016176272883309142052899513230460296127550726322704003503838953902172329532452018305069504923239180893983816953072949345187906254133239654524478303377946903487445848890107195734041849064115501904751681364191031657774732264450656698898810643628088440247003462176067019244519888882763960154172468308926668562590221829877285636898413542809452471849104717772651752587872141500656092154687608132502428204921093392300804882628791951942348267250653863710975771684976549099275319624557440564282513591507803152794654516990036001303026939019873763976487601837943905984769583637548355316755065793734178186502191446739917662704257986420704986190723545274157256116158521301136993039640247270908287379190429059945472910056725185607923206010181770553182142414495666712369554596885818152619824910568872936375356949552755580176608870279270661188114499963487784167895356008257888394335153178686697026273832955761923403606734327532766431871428209389729574251012239715524885169740887359087286273910222927659623880965221982467732439565100896443689748160350023905061589928221858809457183902562416716117274028563727523696644631962648921787233632349310496169548281033878457068901873422204610644448819162860780161385386788174195131592796931158053521217468020056330829054061322975037436927508557443045059975662302448261297039693234611620671889448615626520325769768155635505568430052220800090193015698725477102725824623243350608024578038703946232300894548916137316330260881003067011528448572599542479700289778870127632850271498426382340383789775898857968601183506813550291913163388805417052479140961406080973575932199134720655737575541301256676811649141814381029693603424184938733457212434359191704408687929664880384426979484500232607794295740314231152720190966434299226886808457005137325968846625311015370726685483183745718075822673926827119409598474635208579372540804936529215416124882763243252771297974672215613261009091185048649630207389806085244437893739039207329593435383276502031325219544804897403469070779163952162166845481592540499358627666175481021285179888809940862265738652529736486925364319046805320817907428886509705593340994718591888352578471028812274409466690124274083987072613833857374911231592118606078164066714344754492832844466033827841336059663677988745378786262750669959812982201302888683976626696029763226822177895133236573977444454934321794147128187935539152774559058087603871314516946977947931626380205625837291370737496559994964766486250562144399801450317284359617663954856014159573283417448888538797819601457841251489242485331305443499933553588830123364424475403318814805769556363229527878336987380010201411743031938620494582990292268807606144786237141641117614710214000413129812945811127615801682753941045613957790516472155025757880815338814846629117811779365388409485526893603244887727577681998679338246167720080824902962099795550720176601074811719318915443324285305718893406945760008548872295298255085593897633393573416392380699344592644228211532697521778900701086300147188526472024441454949071569926701506734859817979935603163666643792948729256714571579280149218489307239514944654569480121404832623991342420254551506595253851082384755033027000435769016212258109167611478166486090785115663978700659170372085321035629769905722670168667160639432635603253310581541683227746735491887064895294669975964204025380211849615971855720263114885358989505868136886812156956580987684368812219965713666926271352123450299207005490744187588912408962827841643316179798798875306351674221606602420920006120662975645467779564180699452340984034599572107441478069878545167814194318623335505044423656030976073780199517146263504611316863783539598823607309686981501341783496648495331345854390782893721926670428257600557443886070596711617046111728884184136939557513474984757303764882647851225787745803239345943848815018763606704680321715074175663194343895908297546792947610215799585056045749146132318304488516646917632814523679789641010130823396024351324387297562387465748330586953441591172507698198373711709877524676720241167846047687802637275738611923682798482693186379052749874049629728992043484864606308662445410775737785277586235448170645511127904561372222232559278227182011448441284006271630520656024335407910318837820626582038313763027112170134116310423808388693385982877831297127165390422154581525899867501387855778120224440089223869621012506780986146741673894273465810595613565213402300062605360107944838795621921090228531894830658418370078499684729413397421536956518727262631912065399800207519845736281725723211068038659436024399490550799895323929880174799205164155170061699501476135548158214528902652224558085326531733346075838156522678513835785871754286037503927635300238711850438369199434679290522786882360782456444859984862456513415941535398237423550168491608971487071952962910484869808428116755350431440787981653355767989871289548990588505181446099613461770666707049191095410693071510759474206837557308486984664970097311663619486078463682915655908411214177300026182318388475388517753907544599341417308114808953526464528798447697799537795386895283987980695525083197955623768396561029901289399981014068800194000045267790078412899299730505573860323554014592428956040812559868356130996342416913521014614279659780229648726536040878094679528033063956517131181592658050613933290454525388524883720560007967914722357507448981449427956479364150864289219477426692145773979691387416350968479961738815802179430355021235985081454898315719378672221854170557898407218661099960619718588308118655903384160544243671882400690255518392500815462627062439212236801390378029453554324325990846353546984202472085937370406814363167594692311878952221852466278242897968739399015505661939308951925591697169271215772776843242840397970626797325393924901643817348560454582104733876855458608793674647524706148732741124111916130448639305874434932415101277485576660641743676428834962181660654316630264857038500338528649291716823625655294887274915630726344270438280121796198431459767443856527956759903733464962475894182701462436629779746474503789993980416135206236247137447518503105440832357285314678119429338721746910978136198003751339684155845788712877813151611386090661370183405021037281492410010987056171299726263035564689619269654820212216904885658421672365659883997194865683094837588528547502163808541667878887889350449808423875855868688754430239862405559782164639675201769350046972960658031656397081962597524263174963632306230390222837844175553963758280277143392736880967380840408868499811184695291200107386307713626873770317373521992889254607732702908933636861566478827690355506456078622295011976521513936327251876416467762795854893027803725679728875870170494205731149508020092007913943507636929804463957953475438561916442673013153967922661902249944028772552760691659956750345080194980031794749446911670849680780264021349723365368090970463199510412678721785410093058755259406188044911684563575042012899052612782489526553663569865298847530838181475363564534975333208253472075793576559637466245498316688169629676545344598610832603258509664066759629269525616791501897908135028235812081799321748738849390446039971119710145186220058169211341909933577414312218879994267400405339773821723326147706808334346446219486759030308563200709264155481796040858168910906303390264100640263151373387994785010886827790489379694378574250561408572511818784105055706568619363624260779960392083218942139137623871422066603461341049353500672339813962495859502988177784502937246272933371304451855100733430106801123721294862170017479044133501468705521654719712105482634473086868218541612587679048397279914996863179819507683125376308199217968411739871178592204569132556611068290378638339327059676878335465678968365413494337022935140532736640729500719466776796549831312885506056153728695957141423052954614646713210933392924448406622305396917129854371076666821945985740254509277654103118293873372347398934171288818038340443057244702509205705342089405242471648741391804462004907887205091233305235284761867568781678938937637679588612292935315691921245278574770347480797184178881437708204355920145683912053397459833531561088511530881749980685209895897559689392876316059163170743279535205553560978554794226240712728415379182166776323303133469807562030142014016778962147843418605530119995035545269084927836655963019765911770174584509562358521908292854726133047118678424706194365062431943901651847555959291498531926554121085660842743670797893900823154871027913310317480232804760948438536941217879295567025603660207140157224315970280224284694169551485613479952139239722548851210725266519888429111379361447466677175569331141004706172881503280513844056650536084974877916326949164175215248270613446974823814955300057805418879225468400656096069845323714118794602106933043441596878924969577592484428405829868234457150538018402582390685863519230556636255673706256403000058051997916652727326611648829359043517438207387654934184134955979948701292100781955041427477890136260964188452199086494193951557260399227390202323476769756648440905849476900747500570905551291596650019213806528553292599221830245540304064976723535547807411032066022284547893790433625988084117178850090329068488227835880845933064492128200449955170054096703744868575247512711759059116187077232865533903869014147616417103145475433260254875902319372433255615183003295244573054456184951170693700024417327527390729592238109420684934239165065744107503085996092853149588727906520311371630105051559092090104836197586179659494721843658634937268811476615483565764344268001397249628696008508226844677941944543692518232751754305749580577037208860265920883263069818460160537323502941590584538940314169527866152925190761141478667578210850136987588298443417542343201954261487419094757609998892545802320776051722948252466574253632068845483721132195057302952298973679772144414035194432054474951787615309514390921712779640014851385788265366781830069905875102837074227026491323499553184967603073375414415811536023096529302392628122229281542179040894342600687017719629786100559450984516399789456084826297332486277617832018970001794682050779693157760202287218201837583343257810016541491175319332380230413213593255969050198797669182866859255414527033376109991526067976579852235458380869108838436637930354938589995807431651103173063495589269643288007297347046995875625923193570704846046652293169603827139132388014893624258242955182475457587089846301251387448294146731121785539483371826996141470185412878354634468734728846422609020697634891544190793117641743836306623837921923469544467737155613165011844450052722335217678860921224044114389485101562771486641105695056672003699120814978839704738598640856402429022063352976186722274120199862369491380061248968454324379769110007810896629667226003843614420652763505144055023565204720723611564014940086585512254605504685907800279519256530210370530459935298949182622313157340528655397909830086392509704145588562467883467278234015661702692040729408953194980709701207872258150753015510083422374848305787003987840447505988212260030398704005121063958643807746952453071144430368179619935811549948778118084547560715555242259860881715949630104250655558052853869211627719558437217582814747688807808639291554427141302680473141892157039731907241431538750701650324168099835406349772649529967979513075819827319651147546558526847738533542127295327365894768431919326763727178823684543456785124651220726584030496032723015720930384222430326416427229929994887963453453140017085591410495080460603203336688253826120052650791037480077529879256305208174950775546271144893640004361256278917657437051326035837737748012352488926984643422702266366175348324903089940622898724340713355745236808589516479811357245857566948383128609407574831628529191969332837864159782575451432682337702697195509647155044947315077499158547114028236184706538727431996920557752596887689443494572421938395795374951669126952063582566370931288881248106264929494469984281748870207942792970618479537071617593707447820078969436384128454284392116920475164403114785025868160949851051478998032896023000564737789045415291419167722179673791997282821300387133731476176456901644303320030060821620230462115963520200609490918019114302582032551375967870757102642877088853511891728141766705253552374141084141048095485210367437932834315124228478799177580201476000882709761959206879835169943932164285376476316251041920608727599050839542512100328754941977695720484885756532193044591534531732755890628139478361634782313599232831884344001795147710784148258999656351185404349424106913894885212264517818395607914605475903879344983643885499826439808026322982557973662380321375376374720137354985729217912258678897495128755204843859305924799962632016828762000195710138833401745272792899290026606098479324549940998519994620566500764579166703413355757292114939507376356092042241713748148113160779166506843678367382482688320224393350287084453887325330290864941851683413952603739016759480316126422602806322499702816532119836835734215155759651585019188106327674519167736488444345498242553731494324557482875726083579705337618600319468968696529998792724065420945527007615058001385153914323367552202506546207079088528904405535057137491717107231352109527639725232312511442919116021901984338071097854211390112503263697858959800456089415554999889825322423022377475325074158804065700219658613847225290991968374784421759326627037452767989509930183630826655612151057476681965024898702810620622267553260929999571305515003933066941759970444640402109549783920428396721527976106816938218319368187970328459616202478125700293612901731499333556913961293023528659493973060765886600840550049951551274426100012798559294237125127523123477816889707225444256300133278313857627922442516428867862494376600978426613089135301044995002903345894890548398307476775684039776186936478916267834009977873808755895710121857226453075902398826417468947249319042733825688379277744890814621523063617001999537618765885086636143909194744211498072371684436076827056830391154495570067153126238102897985793002659170380509163791550528372976319098873551342789673791144019325238666877351161381497919108360395678646388785599230022018593454550933134306067067020166116077740579320110862377074202527425186257143480824385196566627906483024743173820327059442520633853868461035673357668790648990755815899073233812384636202905954243902759032867819497570541971640251592355868441564558228938802938655366277011488214114633120511119106775307795960801310089317824317492862766352738133579566689280479607246033562528682359916637191190075884767784075531787928088505189749478411147624332494500398426682690127243207156284222755368063742899825013229115592764603950243103188450925798385995252624155616765084509756124754419200470308546879037181268453737973848919137402408721522410280168699584104279861115107956631730477841835749446825275524121065755369186077429278080554154246352912985252340517863745057048452060124292159461724548474399493140276284734191779364716634704733448737330358061916095342213541777363208562179084203128972965234493962398474948754948051795123143789599729748987173781835506097536674700361241512571511869077795548042704114208461350509305564712374379381058358736499669187079270490068704329677592501281945200738969436179540462618897693043792228999615400279031301100063261575935934483766142570854002402355147109284542712299813116914567511844284130700878715270956076680110894664712921636525467419506358748704827038681922571657088098087419680415116226244102482614433365843875492240468259689170765359434549281050885413323308801220943968507082432969186911133364526191042229296953881390108743532692859123030207976555926409998753773347668145063643467033579766763246561453816185466542174970444630135201464587315315406247792836509654499330657994461160583398680961892577299144393937151284077503207789234772287221473056172337871701127962515927489645476833358819594006682682786964578143854287949770726864445785432946371459026757053253802921164404064392426412342554355136266687433362220040718579905542959049777985523392197405089352122266504398175551964145344517434193119711990194001623296529546722416662123154060724503655151041341035528029674210792261184543958810014273092720481145404016639771690357575897338625880679649704260818098087671169284938249376034139067843416761191044154856176135356701305158214751184559789974961167561972724412997597227936076474066906124979816623590097350785052614332733120434904652951419110287612676669644439282986355569346992411937885905211587793533236715654901776108203972980618173515681353711920723581460992792742724886947659604502415228323987491009988922720160256812953159345073906248552420545608978269842322194331176842658781906696425352190830901759952132563309186403255020101365356123250297902794290061373518522568059694602760046252634144154692949541400240608417495954845008981591072093421046495073619827060975957382221944883308060148944210115431054854904120539441475910193121750283537177316620615675245730679786887019265477635269921459574411819188741006702845303498107204957863289527426550394992800135959909139596129099023490845822742266717830637495828833516636158411187565852084117319121544211088242738086131044261249809127199419711125783368711434100299724407070709045688171071126331552842163336560601724165065736547353802654367179403428060979099077300266322898732478396221314421853845520977831407226738550559156541297956240755517567139341584574225661955657575253749186102418697751417442339535331489619085764520695620916155001174900514361827844929310941444432155310610026226874980426004717614728673774819629299675768702577247715078773209404239394734520735811286603814194930738923348799235794386080579019840367312364554084535309553140219009772212550926834559773403963147157295102311570108607876143476389796873106679161401613968495566210583137533289682609103114681513094021457048555738134040897359582225019919429847021395542819852094804307164256489363060042356904062415862845295505306884059841077592053439876917284767328426739835769122156662891571322188661325107625175435654345728737216394019858668255740464198979569318490275865683611491023324426465208364123428645244730025887022535372453592661148483610849117182479672436759973217472461369106354708871005690029799363482711576495274673041614357271579800019169799427786292438555165344388394104836382768460447855819901026751895450460027166724146452130875896430583502285607764886715526167855015924390495007447797863414036267043503647684069272181975980354121882645962450892511647080652859987443056913028501432722437236011516828464743843190161296386988472114071886080400633838665027933207550881588095479541354261780849924187896543882297383725522553090599513013691875881770350135782018883522280825019042597389548191032079782607431813273525183518793198946225310454959065614945360017462462804109835242510342465590151110255454221850942827265415902913317264526654287710405536773287308095451124319837619591443175040948952604380731663354340407899648909429317721353098201591435728680882833239578479818351521228877004126555113029201715280124255556685983193659557050334115818055961948023539140624838615162487543828547845701470986428985715034428995136961869569266840675993890422497852598467813918967096051891437319542115690960450344509398327377903307598664295180832498357637917840971025167544357514524363599672190815716133368595894955807144830955571626874354525752748275672729821059524599991710818653404300132501538374177182980167101766270111482074554088355396111416633178729841803627059829788305708507602848268534419645390514662816133850851214107069900344129131336693665497055445957237243421222738506921861970251926927647296171542650744082518914568101935877286661774234601543014789533760361135661630317939828115559772915599403244738424737887581279806393175284237767499619542584054927483756907320971966422368512406606512698103949888465943067107564305093881584538919962041336335682043239098271831843936257170694931143682402051452824133762144045554569819413692985859146513442672812400238315654899743773052809218255148410744049439361995344810389650507914425028144083972515830272091999073496959430772936588820378626836834514893638143530404032611627599450356974669950473395095892168099067412696576939189820817671262177689124452816778537449584018945038504299626059232816608758094746190861152496036860804882007305591739330897510811714954325163778919060741004566388790574908015924683238358439229169688293268189828094467387522173955208351270599790369143271946955460723490175959263947552811084281841976471311089513394375929386530969526190133162918297273722575537121501698568236194435583317019943817767768848269437651083060010041344362220043597968698708206336511824957780174900439882150055731454120908818750651050327535003113558685820271370658666605090225533970069981869063827560124849728233601086337009260405497747156413120133345669638890965758837421753760132295707080854187582535882085794996182792877310845330920291586237596770253158546119365633487850779933986449304612382489014773791791438823875368727998210417291689749231469198542619677669176993595246380277484909351747014014156110987529173264491984430869913246152623394823030932187476541665504115878793478452351123076853316528416760158891093013129909218224161622662613174457848405065119574093159938109707002748267132166667205771065924198772445252884500620399835430132425998819304285016074082280759612843146594044895916439047185696043159218708530951640061135142092541672447060603248059090592758536370746961695302912790822514669087788012909341608418470220014524210429450155805340361688913552745601960292268603491407311925088038243439678676465154925589655474974276703373961890411173683367634451622864523185040114445798322865175745980090903971630876658009600053615067516989370748541419342840055359283990944024674845162897329842875357534574237925179099559181719296114792450352740108570769157387846635319885235502954121085639220110735024806861273273136011854590524800745560707617058801733613981534525501090819717575335408163573745400200383989607845881218724975463797479092244275228985620899269562508133344243353516123933020371990374304987109513161613643738593760218445907623128335908059144733889941309965349602753414015671449619477610793072535692891623897532426840248721034545959244883241634307056277922172725892769960611210167930723090404617637126062765735140329251901402353983102652618350399479420519622469269352477553351595853663989592269474270919218849419666861895591952581484813681179533454875061700590343260325458831216496054600798867208339973886452853633186027577430840105412383363345027942992120123768137413035812621265369739844832639673373280483473238949614520853855387161393829531564222594406869379655872531592520709579597437178178670000547783303883092572586703210475253742614680040836378358899147419589227994963123767521307086741002610658041630815634314044483778317946157584494032637426687919364484856365772603812786703253661335745448396449313007156072184215993623759067623824418336606022736838832587303853784560747674933250958234742038417029527557354799279643623471266517975778472384289614129413206159608050627016903339692624057489071466932952974084458473751167014900533501108627455344582108372453406629024339554811594875985575029750867557693451859026528637798918283485552209062101315640508888804890207812172477125107759679979154624933327507415350448983346587511822148602927447869836024671571511540325826204595068733354809192809233046310450909032402414233320219258601286909640975895640072135625233293040753566639733731100802379720634647521285127102161098700427537540450094437537592787688019863099011009737514701523745112341901887166036476507727494446174729472650724059045154900715583505195897591236403109528460467662291477836268832122693248873080599218198124642195794362383858910417922651447779102887564607290302898984597641945968248451661156162132241704276409628901386332799575197835271819318456717942642675301614138139831514082920502315304033659521493466788156313800780179344757671248792031156347811070776714689723240682637257398584144423611152022413603176642634890438289611245842259859973057005580546257383489598228401126881169752858363461217809411913326945994921173953167030187723806763234193113140386873761066338573551980538725369605175281869550862394110985920220017140935488670712265983895200672340991233836023367289825803281657651559408891066426577000816135155061616044937853551960698027713298380737211002508283327672562589318199054806019969192043711327295806817499746764046059569725495994676865074056891949323870165049151779198052302796344854353483131650367813479441482093872155285606860082997405473805879168578509054861025312217321235465982394282642584611496107888717065954444557824946850440986687045551795034835865459462372423490513736491724138971572963506447508298077615950409723289385544073859679266538016652405818850760209765359927086056995199098419838225788587377002678314234573060346380810187665732340271295128569217061049046177830336409138904293112455819500384076849004226254861640054489869447929865204723439703296511322349332553227404651456689940672549798067400874964718196265145522812667937641327559945862110161391296140520882729192512881645793464695787944429452689420364845878262708352342770496697410565102122425509595556143350858183169063063887018124358906536337293487287560458473303720556659209189761029702190349761484220742340502769065734629517827221807397058766428414373755116936329446218273515939046305463459752630111330107987084690289414534291921295423490468180720453692803685684966012642229722161442998779951306441368838486290180004468523624809699886926265032579773635050593936610630690766020209348592541173295398430725306762514654784791522651037060520262097003041688641634340403892301386236732111382501188174144945096622079803047109559845465205659009010085257612335881985391261388091267867347834128021033451070854079781215206665157417452107606330739008541379903280108708816423427805263155769508885230436224525058985110205610684913415276718427406098629876364859098734347019560259830463210457760307701130307379598857135400557841398935783365042081451674158661071273633037295211591743730342771701496577695884166834272047645508629388887646616802302262313672005438175708657990568214956517198431167578934731897346221285713341870602441367948206416902950252827234345996815976445393356090142641167372246689529686804154946233114460231156248891831770111737521624129949825120117759054692024894658164606866308305385026466819316114361982059977621520339894841240128932668694619002535086965125627677768770722337890126990176852462346266912869866915599333182134502793923797045633170609360599404277347410312628825515008359800716848651320370993426184094352612715687091619345864649417892647653469202586407670971772705018804639439310605191481370037029909475404301530546238437632378857823955308284902675589150593915372933969051563697073114828315617714310931378833914293618795468282364196821298592411157900533236883185047019340456032113369751165481159576594669652308367909173413148235787215420805018534995059386126488239248846697093778647883354472578280156412745782012083405925400313165028966449880117347217087547295305438479227429958976592441014035451663889295953243261021239144325277930161852980743052951056286112344638024587908903519757257453255676461616433989915191712810523382286819882727545904211506709382425192378910164587301127754790385578656269393297946890136256847594166914394377224482773691745062500862050660392147109316879390449049780968913816750104268603398869663007679859645371248655847160377796621664394080965172741486044528271922838431358439808555460046270813835253654160991118914348101910194830099607879949115443687151679776788451257437588728429838046787472929209688610800729954685961881063349767101346294279536151671844502716901594933564630025488928696679158511701491128435928688630409923458646367730883007637977434107985816173704040919918478490137778209348064107015749187872427938776477663204544239808675207125482361028863245732809148077371420963356826137110972542090646815871174283985459641057426931367065644540722844843658474771246252920721720629346653681049124001481531015704083678303939317049695836311406535362672551869520110116224947563490059494916429611615455898669610901475739472834148129766125982504443318773630794986653133591223358111544601636311371146614891083310182695938968066078452403712673273742205387731877630055881941127678503822828602902512392782810146909152396661206140366727361626217662155159295412293121276777987305649817941337762110333060247200463278556486510955480368698012162901501525717752001532888751954599788226925965831480246161683006130965237150214791905852047948822652064057711227170670926655095326280968393005177072488554816868685275619504584769099506933506540088772967596263725783166801602701295462004451451793241558826564417733767609199450524631206597296831096997757209931097408619026667262804938128794938346859694580516761904770246030753371826032761622409608505720886257100826451965109154065829062115199877324988906055697976807774188592721474452014552271041355373434335060798655497563467935940299120619647125505348013901535548959494906776809339918355863848778008237508918438269437495193983652011874046972511748658185167143494584069584528050226560787977886087612858807847150578245563520695582983564935915127783871447136469410141389996268133327969580408329978831738154840995877400479259894432977102299082721333973997673735106853567289566366375525122418187554789590114421923289601516309479981587335675137369464652867370143742838987073275737326803907963449132746687948468296757735428616360245278761344429426602758822400139618992043766621778893189117018325620010893011944455826289239380845146087821283724313542832879032833729697723519667135361570188580983761368303697378949441862720104949950080150017560036576837182143105179155511955502585289903936120639873039914520067034927984358969855801386073308411954571873464011034439634707382790498164130823160912734369736166104660370107098433449187084562866729711482733150192217077961813606390496272880873648669779288816474488920758549348784272418395243000773475513551137285819493376673084525390632789953755222747230287483605138546230522915611902149027373303486482135162746137555990932868002285650843124115760581237302501769510553197876698698873995580232480623857060673315766949561754799277229544041826853699428628986666349019686075273696698276684732358108500110767564428636651674833625197446751256657813113973168901882984143381591848335127481480295587911814256133737704349630138888941728362178586114388183705087019958089646423282947598249619464378090400401659133961325279911452780771997589636021314224806729903516030334814560663893377915755356749768591152779718373231844012076146209888956542940657117802347355251215090110123359532429684885675880401150900594952500722367909535907452676089433346351712598658644786013583099842288200938457326979614700510090880942008588318860219130480556317816144215366800855707990693847810281417419755807033220139233957782110744192747084370511087860221779710116205151989960112764502721933636299892640505629791476812441136861582896364224218444205356524306924343488091028159995298506457892415022384430814787199986229191654175338038145312798760488762105683280121005102244689039476865013127590018188824828306727169404348973336246088334226564591621713257647215503926017660695340742017420535076788634040240495323857913706141317291863196419282288171960865567662043482691858729347044904892987402299237336250143730936246556693986110629876437045693282824308279740989147202233905413994827880130587124743542750011432451502932973477892594109259884800181566395196860339523089555279347609402479917668209606388593295918038726037121822083292081271560853298322866400851468193409987538814654620424786064162434767378747172538534900143282130298697401065472120811492877493176628701293897209404177448803083136846106776782709612039288591579464876284630526354604719476970288571396350642264769206552514029443783095328930410756833122328531388279905314792415638226805206269478380667766717272713652513837249033980585891496347120229591932820633141709982993936696884655391989618158801380113925843532011060584701023081145855542878625844986157483863903354464731021481865524812886958971062395918689612792383104515205223385377112813762556514472054073636075826812029600489684130476399222784634445511194035173755117979877431081444044380921774316881962998632506951953915592375963483593064718809941340350755875930721398184657611780947987910854556529721255893062139485421432844115933370797864966132925440452074012618919337540571149781293410476490889243438556569901864327532558668133235467508947891337228893573633215187088235942889693036769492381588926008826830332346966402122468996368004982993196273886020131807460268103031728057077734259345888731401429567673260268463339005203731945393076743793560847803733893816730500709307327444811790154194716643305243498174051271620634167364386996858291913433222157679766185411724944383644384767585179473371391615539932558911470522339926810106707653701719401015243355173829630923589080384196987665508345508174029259921384763373954583747752596403482131481283882376895017891247430005448394193667170096865850661774732030642778013605068327547046513944596186539995552289240314411940539545362607300445710489683826501769807410594186800112445342875373157066927469435146817541377304027806698724445365285916806810117968128267504066813025797222224045082545032844842246387871336014147256254806816189118861148593174749082225148828791007637302019161959477983304643653153203716472250141250746246873923108973940980786182927174634618099703658060390050988215049546305446298488238995517418258239634227409496255627110862442556586797268838742538025991192841627122927582586061547142787032103080215410621043444732597241750808932162884650747018362358114287544049085107123868280537951800720437240552610023205017079515630693054208856881417096893785169957952660947611964232578249908868267090470239980760889798834957093679738716111240771975859177625730561938282760340176421915307791302952202403463801175762192412286138592746805178267524784448344754164437660385527125011280101140897362430538741076042905917307349525164768017360931052152595783887782831592952527401198494797662384869419277882804370285193418989381980893526377318317058980563507227354305907250395348208659449770373327940836579834270339817033358951589867857794197603839202985577696181490468851002755668988895023268451943137045906221915470628584911676019557013788645317591553806453416525572031980797512743925027266827985115957239377423716680856636231947451883349380377370404683286347699186207662802993369312295345355641806296802017164137985445415489219126878061336332090305595553824407835606317046068299255518536415436293970200802591916844135179524759376746189279852000500719062280522770599753716897599739160166532074471523066687284658669038858761296375360246937475510368739056906310884795330322649682735611488463365632952959899243417675724706758158776225906372143930339197298516968606250534932261469627094188890522500541615685482474587186430678682887125562076687171539528108324576695359156969644608231501735973097303898774803127211976086697655447552572212817923466491918796656938626609934190697180252166170378740313378379631123439630159451899045869493467796828922784173224901158529907993675420519026281298540802322247904810330412565241350911363445427158972158774016332023060477235385724229995951926780160343209094199173828063395217777328929512083242698940278972199574648912550621006021294964492782075452474801933093768370744038548216747738222457932315860454316592323073808118399420712444731140063788717418350475328813238446452457678709918341276128777828136194528996754110519313834412513138936720161193855409331736752529281830508451467532736948126804584949374552565547114582934493124294846678506500488834940488350723417189892491196681635315359582754705123890188177591423851139161332356208377686385442875483410770233461828380449752386988276484942106829071557669783004811946194982559377451806325162209914143077620467628514483326707476312715607253333285416668731239525269936776292382297449839744485874548516567092015547427727250637296085419943005135248697264433220207492403067635164383244984421396945824477034005009364514118727857762513502367882090157140442120433737117759418474528130856342168982125000682452707291881889461474133722801372389454573179637107957094882973724812887506481969492592538415145633895116469235472544951527279523391733845646816006116631927554463046291970534086864787865783237985688208072129570424452901722189413334819526638927377558712441631645296179529426550208517304633244082863376517787193392789447945474518123772003912683049397574716812894103223837356599465371148830582327612087382683252076092832000665653310029695628421316743413923446417218905579839737030103087188240881447299330446654562680828806095588715983596586421668893258734574042657696197998128284605910742451466107055922240335456949859475923772356312876525177060329690432716038062818146437990307018813304693313994045288803842825226577929810123578643616425314698366847573297899821985297852503263609815045661736639883091247041964992392748492799279408746925789831130245285779448505391782082448826966544442452735662943713517290965935059992965217669515935467272047668042247142723521769732565969180688513604522185208087278249522614249185434886022081773744436349149413519940852280889315417527470769898141446795969900191665710073143300894690259902173804160178236846648390335345162197418386002882085789016972515425802221998372275091415914497511406457676775297109428061540645171802458947986987584454019501346606991029631882175843004835893697460424377638372794769439586672054040280208365515949136763647691515619226574764312280444236806040080221517118220574789847007051761392076665341997783462529871928636321598764541145035243212208798733129220315266666097826037092346480532089896021901271887982833614338951455388684784314912304084640096491992112398972204177786520782132093458833143244542859105173807105032983357932375447849611393422740165160959160057926367243522761590821598612171251116416233149626124808517245093475273897572425259173363304396684822842800370353815065897842747010448792551673697322573431187229204351763388176089152339038564367978502978606125366169632635493008271904713161252843559396509084599567645274736491222319700177700717875646195683307087936382349717455299451728680075940842488724873700862584054171129934388040396919566378816022734997418186934736622733282656704018316328824555303185196038654377616296500660225086720926056987310564652383182621510437393073892499078463340414818852341248523444841404655700634915731717365065700001046215370599584008902117554867775302452721402335335046434846501596710050589282924000499042127493892593033204142819182873155332151903147700467355395278567511421738391848616234695696376143957665113573151007453614499575000672997243775002563888959433226506305469775371790873576823775687477425194568941102140980503540713328990384798699672143380080625371551781067288454784140128279431179280535619469856657271107200868789493844702589551966022665064224873868836980262243651144488530052801302848007655422922834815268793671375290825903768760333809827219452788632487068422254240157532565236311357140121434349256220868702305000942673725108609500295556432926279530723603366040230330484965797571918938769830012979452640385140412534375283875298594882491186476798229401643338223176519776084881893516797366062883353794452369483203650231578940824697307475725836561047927171058037240887889674147807756852803163616420046193603287691459807925423330643007704764945774508458078532274607830285855941550401690101798820360216862410949232244567729906375338631431075093819977084932093550951614796942680120701753030672029198980198343345060481307751844716493009022756082001262007418741802456424068632340144817154601624278806232956649794685707523066519280710519752752180073564160474637758188323228652542353448240543726882222844444863189783536126314982092309345201843271265926103740402989749028532035547567637282437374296878790425704786727915756929259185682415383618738626496295332703024766444598889751101041315453925976460248679616741051205472677604666242626624006742677656330259226093793864175670792012601911627920581633120351939572513254373014647077416975697979880125263704240217715350040036569401248011029601741929044795819120067587144639653444321459879015277151173050084260735915339033019180043608334005915628944818798328904426295991819356164326154127391161599494991004959398429297454636866307687153068489888714722458844382373332479636413235760839853790473667438928736472302384586567890054475782099526396964110982075716351900173346050017321008974979849106480255379390586047351155624127845335377915073247467070101287013862286379319260367875699404312373724073461367894177261562576769167834085023469195025708711440645400381989280705332545205076652271056652280699440420360568582304820629841837832898665423901238723116292485678917906721662185782551962893188789405166614265222078867738724909800566035302946241031866313175373571182225714038330085402198647411900258785107575308639784583944333036013904176961523457437633068758846950775609614249079163919700582957422094332597668294370927798122747218185448324044920472233002254276375484832251941715659306077186124064792509372395156390758581764432061060576421742685532961262688088385938161999808618509004586157488007524640406291806888179373543894173654352149564655842158978340009522312972096660518179636799422327336865725603999958107680076367467685901350191656499216996079438712832592009586502099677780820050545341655419296463108694231060305229066550265906581437966964176110463046703495792702924332760804889815473549266336824080999868671719970152973420168579726831096410790201645563376369795459022325738622865514005223078033494144950125280575847416876212629691486515587575746907816375101913395090126977145198105362241351634035976305067870914747129733506992517204991056443583368623207729124433946130916031550876937999086121437483434434028612496843358532325577763709234060723628653778699263346036251146458133035796835092936215736304128578143088674146306042904790780032307499321811988865410232841653163891201454320432333877454754401596682671170176586156323473597139584721003249408529169507771540966389886569863342992466364007730664653997556134537654510535491034572417380851272029579791524221254438684398673444079037034055203739198420236544719223842522616959590158758012090677521157427955045463047115953675879507540743857110593820257860322386625989932552244435358589952767256927445969390434027093831115922753709124498396384832571429652020988031705317186173310208146736997965716428162651821923286581969412087658524233681444504086967022878818744125049060307871406272909700153605468583305273699527975846270697804875106020679844009964511690750095857673091218908125798348034141134684165428756635819798142424799552778414020981550899737649688744392660355167484042307904355284117214678551127498408412207357310930621610760772046467123891448792626426182971230636206924414528828531898888157417418787881772039896807239461423625282644404651337537478484594816511973951452977676557170450057926135459834974356578217379637112912335889287050916060485021182742480925390295241093729417035747180043833948965164031152115001355447747691046454364445274873158286406846509376647146626389862681807250597108118106020705537850938373915982251355165362138973379022641513780588749894449247003577270704032632003934921573204937364627006538751522160294765251577452478653183978033966307781532761213454619079673271189552538221746173228012962719482089738532957455060791573322011903027732071838656679581433847637010555915619156470056387308345277515621057820049713639185758551460423810796079051580990959523455138664328612909857150911041492196848310149163674390855679329330081345104326908549479728592901985603543441608291311968116523673961972531726906939376373903709809537819159410716778731730269986871559301618739954422422222165477074007962778274040772373227365555282536214086902705849407999238853235022710840919644830913305634638565907364823774484566623807784700399769880050918846437346886894007800166031554682645099602322099839777078210876577605256109694737873504723917850452891976338479424039788352638290583152776179943278610099316784665837238100232851444980614554482164528132627617551498279581832940841231913312756752391116524365866087562797185980062046097271236760878468604311149745735130734628777539466340138889200327143486892815092140468533086799525699238099600951156930699853410940662849135289678952032999720480342016298035810881000953494861219470017465308682074569396414587569365361848761171302353108464733560223532031405957023604735074266134691399553132376020462527321847307237836425615893069596958706531554511291718608482171708474475027453228958809443521672187699936560467932708282559719438841121434417057694787870908253238531026172503260866215544272578694332397758929490285975226741364027231446417428012066448518764965385194072974165644131992389795186683252067764586682971508957690025845783042234206081900604012244223930882509265410784785861024801535088820578989328708847404950061095172491460919226047748294632156115145342862435732202140926816520509417291244163428818767118196847252480973075680624414701766374814137063749943288650691563282949954327626180209598686375235961758953718972221409610861672637432859823844735305671298673502120729756857196598065111995279030679890923357758476911145365647401250784887888654536733485146927465296626910469346589175017549926166936937062948950749815999734967715089250403085366387264540529503818472095062966721468525601626994219071584663798951494420146439840565851291542848458308291156082882443149657854459964246645879504304254776997994919053437266825357573041559615036490074189196964811918255365008682699274498974874421077038461261388406962211894316139470706502962145242079461457234883984373055174889848884200518911324552953321228515224575209769645032544688162283997989277837617593635536080170648908752943714198003568572912136395372528989964220504729797436941026205256706768525895145279050337009401654627131065193327439307928456490762891593277162414654934019704722618410322573978953254121333111160685739798533479174451292082871238056332894542153756087490234771492469969229677579798721926292685527308234701446335973297088316041873684124090433295952538329997814098701342536235452052569710398878754908048068337395864564205028932588262313285744415345059020672366689749511396121534144160248595182325998492472723769303068252606482594884835472579414948000695051330377598564819902832644362710246954419720650291148771413511365546545496668853430977372809815569826466124348832302785544537007018946986789431153137939095878814932892948912501138180894352281970530366379124650308441707678094684577382883564943365616009842488043398997252594944776154584362300579418437576575985124642269262705533479820646079914076267564146071069311767141804707886001277152060596114771530944231425189134012685586153961232981256060921823653353932237203180117464576167823459972426106606959556218650276835118693026292567037409956721168126040641332182050625556972909780021261639209005585620621476909487875404148637792723746830438035983588728173908635065790199078485081570970488937981314720902804832990592713649190411011517021113569363962343081637717880258544672500672347544320653135644928523768918519210775690767869281383375374994988662804986302738655352713076681611703583795429577146892078708751559029058924777220999256249873101602341437503646821107774196833379662855899911587785823725357035009289891747386194828644096008864922135968015404281624914596762506223674567647674179277916037529305862887737765176581563838459535359824185110886494617438817665365167790364994935038778743516083426297547944670228558872432410936443157385717431278774348719275759299717051651125415157132995123098050575257200693853573298304568422744007346998022758693236089062958316290692656280976681463029343515978530856293427296601894546114562014458564908341668552709999077320169134971019974540342836712521621344993417995605752599313619885206588251329143982053220190284159972525552763335846614324464156541248063583451352406141048465583938543616972743572906505278680786995332635854803376920554740525686298278507234326352479200977983842412908921867991225155176713720481999022802725322904180981417324137370253773217298685646712976161311410894858303769678059371310569843753257748158681064135473123962415372264556381462769398365000992548827266775366027366490057832300881309022305166270379578868953636764385005215172189690725205737091230562777161947638655609676493338406473294741382581761811424996114308808781865905337436191235968033205409534358763670258909656232805198925851681177680953842719807712702538166353962859382632884868544046692791068143803976539290469054019855844634100376705905811113562826451073723744723222223871229257647456959062709007449635893835154979180258579646081406802032817583617092784108374861253834562529873401254375423582173326447724127530745282167033024032976085511949950284019634239915328726601013432891854862855095678633887733694267956189512418632673358118045881674904024550192902377340572336825540060260081721671877430601960379649557985252553578654548936303156678213239663028963509911646865500959462807545766069773883005249720642008897999124564175870895168891452404304312317234667872811842381864478167052130725537737381019892123657161143775188218228973637675259437730981168898417930133328023712408305920450310295643427677079312640566484444396706472925485285292100139496413814079220980821891444232551494625925682004495799902565994657807709962757389270893951326322123658195226997108504802946094946753313026322653340994840377324528419019304181096318366981880422582889727470190597163844173455753317057628566415841476490003552709528130379067336073594592538313596379584934846542941750455821942565598111328238822895608097891824116160220492317458093282012695245567753529119869039421364826872927831917560012823096235677799304465592364235366299444234692225431341466395607929797883449592310146590794208668578630569390380023790283918161433347487550216317749035231742032830964581036348922206663471127087014518553076202711689206949903589723830888993124797974091405078556917858575144337409622147833849025693253751844936268602339740240678048296148781749306267177979887515493819052549327411469283396816480571047192578580678346462795633964429304439662428961877985352123065925980196757904955446131880741801466715089384616771603092755633053457865287752105049717561396009938450605179380688035321230148826275401438768815044941184024434128522728268481728104403594441485197377477453770562736892863810945732854459035495076975070187132019347020090169221321144152640307059371930516521789440429987595019236171834393567559214495572269852589398015283605637040337829092611231226037559038605976230553895747958842603571065161267321609680588772448817688366469390144775098825509794852788024042214615310926755432190685197077428290074967948509540763091064903348209107896663284531356087342658554130492069139172461911641176133699887941398999232425331818537822549879769928928098791067299536661778173090984945635995609296928426273977740196249789053689261115037346461837346108407806840126704672581054133270556908645915702928814906551014006345721821056543100485862695553097881065104191183155375568555623800388316245460070074673527662395940097012799775100592201358223019132121520377367788963469708404802166873452942133702106175362919618276482719507945464149325563234139838718380560303541910993323447508399902104344739119821090724133746315462969463960915146122715755444785648618666581545583349642138866134976618921031848709944300026000459901950948142733122817145545516773413419381337892262794833551544661706751023975221822223444125944502333726734058115687304455875902115193049397323057308831716983620232454204159080243894611219073954429144879707622751545127530823608838598696044744825340728642090248910424459747971205460383833487279387349583345966229051233534530187358810407351781847346551132741389494860111304398713374616141205351424538635981585176072233874664059825032749139349901615255622636487937474289949026890469043028385590212322502844316024573141106478142771277859824993498297420182290597796240662850033324486185937701311462409847752927819660721120863661955987380704822265572612304462361384654353052532038138586885261062792385591390738262483465973714930834553188254943644904365928633949096804384009560056447163989083256240955437373733476775252483136962688509695333295396802590997862643721525560610218985277600677985557945611877568095742561569928335247929005873978738399107992547581167156091957702410261186659242052359773342747007506491252667792254516210809677110327507178561787681736518794689112212759457985411811641106852329076145253730256365028073172137722683511576685111424710139577715363354648499782289095648710411909029173131172378363576918452914098637612354642492338176236177120474857104491301044468377620278926719564912065956896198287420501513710549153552744084558392177230871441802098761826018697218416003376596751232550237394187303493344929600456309493494865775701482888257267738384322518908948030054549845198891712562501488354400852753212049251776165119653032819937911835950866113371522613094332030573424703494344330615210019090446767135948236172490973793431461827908086068782439607967383890307206663343773988342114577779137262727207744592264459948893558116093089710223865510794390905601065647626762704396824569594030787913368591758605675930347981603098174196774799530587355596715226305752599036200809926713304863714816809110237140007147363619142360056694607947781033985470894059459633666729393704864035954926621882691411869512526297745827229160328755474002059573666185139012188071636338465068631786470067107353292555644688741295973632186643877366692159833786213012617299978492658955160907932588809196595735121695354028605742125133086202586840041142673093833566787936378005096837496159313912071055367258818067081309761062315759692016388477870761423025819197345766132356955962045697684974184955600522110744712007338776508199338285173061057344873266132219072071778475910157166451508234658708907982844707686995206406575770451452330168829505949855450450000951111631683244036073769615259403884070728137192760908360424169948219665600122722955284721009755253255095546609711945448116713001369523614087510716646658673675717975478760499144460221396939184065559226764549713264132151521269036005142780157391414991775864348695887670032602398674439391464593603660677695734383657958141005519446206398772532370247968066075858876940838236665634361390046874002481397772833494633564876892565940546619863669869545201426370663289304182900411987706529547144279611088926623804773596751843335008591818263292605200950876177802459299959951736861709402734207367606193255155296504839399388777888184833915064958714855810081659375045026209707584157289398971399032490206028479978747975414615737293518386279530267818150236025490809090427102622390963897658264770988131567391865985353430229368364262220541212207806257321661314879654039382335334067571512600502504432835806823561533003445119025896989974104046966061257352290318166407626955989872643490717763808018757634325974216170802745690227681327557376397079833748838029103132170327150351694073381572418833349588050789717438570227075429344158035757314187864046045101776684089929559836943199119749839649599482229749538805405010096112919423314450472764785776019303168338202135475074949334919440318120506038674887859761203460712614894343205902827131952555691102833116063762917802997476003462077240494137653889070515484266308274118451628730295239413400253095366180871486853989121225202157986424049538905767724671266495469375030654010068600028853406710427614152852843297126700570536749774704900367397110438441135316546985376479559169255671400991164610617583775322516085964307115409848812201195686598139900560479931056990355058147246153563477881950060494128902783506415388446240125595746724818451923319276943233516654472102653827394095759205328238430760919659816203754815941017160815361486513102385390581767332308544159876470635082177788063198101907513454698076218699479001385254078728695179421655182971727994253235514086730123265015811493022325793900761460129454363793613750196273862378828871693315218621360958799972855658858510929656168070514547115862685534955880485560368663599873855750926807484364387787198315834191705600760020446084055426394838824472620712099414067477926728633763972139787340704901773097726375653151044130952805440610390769968862877135922869176628728019553074043557401859675171813813250752515152355643173310816393576306892541391922877218971655295883499267992820739303878851135933820277162785096206865602871342336169555387731676230007674244737772650360348229497653365957481748455194728511748282349216209369558508120601360106217743423387542157564379972386777535177854987675085394269517945224597040546122591026701503306613105583684575985329411472662536749100349634485803009405671120276431382899166024097007468756437206028897239555373366517311281968754033610127722327414974859060078052772182157549318070228579634776591914338235448466572514660351671297039767746923866831167547937870018524465377111206883691507245106735221806154822318031621295129921419267152152579359510610881378485572177242519345347382752871552654671253506031995648161223671060137846365822186191579313417605965488812353758195491005609054946747210863890615489895445811451411660958597435622032469445238372824886739183081236972630278788036028375278129076718935461263576707056790647351282449867294995394422870644389991695130292270694542389692492057741203423727827319118147143814763950897741990667115180923402078358104087235700870333226285711053924174364367447979105100417584155719193593103049000018872173521252653705940696918536647694150103471894347081969361037422419264121890197915311279511147242919333076066481063028166979650879130652585248815030924488994995360963896361779522957017593309051461986115613416529090620645057588230325501853250036107456734207947528447457377036565492527187168879043124417459198904722414872307914215624769525660827209612135684384880419885794307050429347916038796130088570441565880360411904761890720558477356990507498707970153372065196312358364138318687321949581281441771908728008051586389703281089994976344605409757215370721483977510362341450396732179881098610015345196266421976645475634101906549409366541557672463468638189987378625473100753884637628034595237886175263540075226900286027968573478641001908350167824908416645551025834302759613461034988134284843460652115975980234406859765378494366542973064448570821715375939333200816353782474202289401974343182598917005741501046499754539894542598838651609691370768230384828031959927422732149294116151325548023719385935852693535983092438883454755241099925939002893376148987246468537061525368786192118694011724964036720284922634930254887786425009827260859973427755987878926644860794796053495182584042698740699977050428220444972603796007063297406470945527221103824563940133586621590093902525489310327441214568322701656239371826981922859429107907714777492558313764592079066148867795493168315909858304290615479684765018715318597154629306909344501491566665077785035204265782259513127308849425256500853231235454496627355937678915107477540426168324921042493891785578408954678899683353960045250578371107994208787677205183847765773256290835904059447105660287024522770137658236671478643090152782470374039300901472930970644015925129208955621205432201896373297186518196545279786237590050722547204074836560399222195203415107876262197564856301193163478273942186549764031513472768502602588598416428642475683887415695188582580188854165141419811828591456594571234860439467390960006603413434451409581896197402264846321527567736496331121386638380684059278628377321507308633076188106048277158413376668300058472865781892939326209813644892725688699183874327449991021723113186121676733857410775014609426262274326342501732348135407723953501959430008901411979105538824833694048538250369296878570701442520988900460776946326068990804076179419122391532892530740971681994352341447835524991255566305740920634755166057760021312969763279840366201170764151249174843218050089452386860896357384501521990124118158345974335802488592287399779506798534723299951913070181972755768825555123105199794451891121442246344261574967726992698824623175150322378444138689873998829316440716766150088420956870497200649982589212376051963807158364322300363665086492730898551456973857600687071920749710801820471367112108950273787188630847807469376380614026336917518831471736892810312057642024884209888515618611475957320645397613524776016578521499533967442246674443869767356392162032430002956698057725722813317841209044069173961102484762658983661969212658235653900692480324589875218936833609492507562567244572342912772052322250264069942815560869769087305075722429807645989032391191040030367039679797365991061698022010024384181079988654244343703350063104343320970598888286793390974541363292277295728161817535869753952924475751541759194006618158443378926309691372551409805880941415839935211473579139976703616444001477386081566323792245853689267020120760654665061619523471856037135846184188796455536710675242249004566985810603009690130131322482556412978051813080520772370582057598129276236233824401641165206274337499481850470983366484653082714297887541481114191189215373164047548428427183725561076883882794581950599356233254117867445887726390313222033119301863232292375967741555710768918288325787180656046933265039482802271409192723274027548377235788911022180564276097419999907387215933661047221961651851063995124762125891547256795527860348484782983498419125745866221672549319206265100473496058752715299653209063236449078969640689475986583333935853943965519727261425610508906289251221258241948345877765471750324523404905227553223199725811445778938136096360748475372703492560220078496229598643775480229970440041786441352429119531681423542464251291973474494263066911460457633331389234309356480382066376785457088901563886648193181232464961351408795882683559845314869668675052502645351380098555236532005616934851998749729757786330920545101484563253315425825007043221243203599409697352616639156733640044428071234553026188036422418516769966171230358692953424935268638231040153660911693111899704680005482963577385130944056569170463859281488606359138159823044110731759274477863652164661859177188199727107281695713227300729847391426365525974954334131598525723970967126972457882567289220146897483832844417549071895356555209864989751294049121592981457898810203937321734054067284672262528867044783328460209812299149740670470140992533762614367331943547471573603344379546706505986603993648577180266961341097258521093090615650688479110966628649609324718297102663222483020284479121004989370565823610373613842281533270373472268425734056089216061270471657118086549811061512435716341798584224973923286600931112704840909654765455860219577932064662966147023889954031784608504164114997857536889166269209651303549994196845340219817024040852178882587387095951691418887276407649417570372388406120395678017976254960002261492019184025720892006366043474085998938764167283514868479620610782011529635790869714951364414613003340730098288638035242733672330951792155339321157752027245746886034017697540569023455433753908396717674031981962905209700351431319234107502112940158922052452634789566714599053586612134252487189654988028980315215104393809352589234461121045643792272903840663778263119055144707130249869733012597605471724192554463770653995234252652166364141701265164268338947113438350622152578944935600712835882762153105150993740562456208811554121193885283577753793973912356455637381764264205155896015495073118725907520669653950281153052226935313247542379869686591396792810219049055380303463650615436782878262464225461008717225811057337410134468822858999750136903340580007666105765122424111029674961458024773995514523606913481182901415030228637726466862193007986493472809422738749172181853565968995532991487927524652641886258369180256775223556188075347973225319748071931178025195861008690644964901751608470171359432969167762481556180533913659690749287091216625079164052805515493847238203582228836164061060792590886848645449988138307960261737500906699252000744955926495704457785231630139814285964614995786512844587409129168362646710313068080655522331714236256116230895613261438151777230319387287232127622415865712780298137722118678915924102768208688373298558211000383861731186892010507285512233512066578326345817178372132410685662729777215003054029529582065074777843334685050432117279930194202488646062507345747323456108958496354280752375371990082261019122023498472880022106838243286949057965034187767380592645879711931674685966090107600326797912478746547242384378530648085961662412310396736100148180646645413038079174588978054879392864352191595845819422316501412620961714640916777833746007732508770874386728010619934032027373420256506265483983440472389251077097593373914244648550784580322369113374748492438568088814129885927633414088858171890316471932917435925682605395674424753759222703855672313314574564920962213898215018768868666087131589966385457198691023733259874056700507803663518745792200276757257914745125123714362453509339302632271816388639632018975102208428235346164883016597353983143870352883597264101325704640184116564132534034804686981790578128020900030834792785628949115151051894677026784191287663343690585971382719468703037085880500618361138461082671691967645136137067384924717529593547547571934464103289642943548323802943102643605997431314590379453596968328641203625283740354597076638070106149677774078294980521399833074907374469914718873456598696472269110968517645543706291007250600612207461246612871600467778990866031364599148224083858065184184080582851555463443046512831577008341378840413232531832745461267394163056183487465664596183679210206640248282753786397610138344117832888635323189603939699383642841650088386709410258624479312150331098628563824341869317057697378742505565557696246787413560753368155276772017533983835872248791670858011169607030771452063662671899917781238139525635185277486877628981021771821371657514616775403573504359981559423646363153868738263888778250321902074510106978456337979405397407923103933151433876387479315339229797365908363061629937265934315980982608070084899484436261146722536796281781252697718680528358368876896734178602884751262681605262174046906975903063850833768626753091051725396413351393855578806900435478185582787850207381953855059000730312185748160025955172282160298198026215860901462630623459710263623750053163031410341920831492420894707122062113365958219815827483339473599959236898161173476600585182120060577251603459698010094992954723304185341221935028176814618152925366276194445642745685039010059950829582491753773980541970146479993200442300376184876815875292602184775516957147373539209643314963691685495935212228586823332336696476143485977285520578243598755538283961312762350152133279700465624375558917884617356745845024315494943716610793061709815695013920937515412640639087296132080812225257193950761227727285230431773489168837959695092167214194098187765696712619120678843304122183199623634441379929320834711220986793102712982313071440197191248478242370800575388843423221706180210041429177872668167145395919129921724527305067215977628941369525148519309211085116414164599876414556355202923137343359859844680256322152946088561965995196198824795808056396991598298788432235555022586377842438905751401032588798866191734640246305942885101148887809159838435999897008478972857472743038296095359108221677484252627933472297453290096573660155635174912583301045470404485291355139089196905525164663722919498163170397154416645628547016148314841747255085879048542600760282293297245833447250863920529182260277362629236655112349924757529343926856029144106646791773101527750986639729233173662202810282534997856192595494479087308097347461796464186107080812529801893471741166371285385507233092371950991948939278643779904359178070795951246897750544900501074448512547975451015103787841022331198942512351826282276402066404334759150354341194517623910204431235657097363031167661854689883436103001051908710893790773736779716336959112945931655631966056162345677508150844979102294064969516901321175883195719557583702506850660956357440069812482480141831366983381469553158412967006459875044770553854891955719669479630361840936166308426413448232992915645258618024524356942613481935062146017194560481284413424715980269382830621534042010567672271888633063357280395318488649785499968094682899947794609531564379091820239068612035752328542051642685534771476767307039633780886794415516806130471876237308464946421625109709295695414287850019325201612953914309212960370656475477919378792767821988482517534798983176731702342348315344037783464602588717503009801174069632017892426801716288561516218543284107094761017247171453135702675468097532115622954386305086834165728227862585002544374203231755607767706377456605039225914959444182098607612277854073342192405567361730044939776330294839884252788643226834784272052350292897035319531825454636227205014048771129939107048850697393846039963251480878499944637545186329460619559573459383907059913275289372400976171919369719974535555433358535388336442045941972689869079459284425484761706259917864837123450901592247118326520322526271065071345867179913275232736970229611818221056715884206303981855723875530505006645116714788441184418925075230957433173248984551190269945775148739730531153991751303405616652564050842377084354150936256840908823795036280801205174696318988675448829126445169336179927482120118665990786348352960728337285082107963054943722211482038961094116060534460414824894510488820015539500465674566320407445077967280067674030317701073373604351918677589301327969251223568245141345300653116444431219487208252313649582314133335949244778931883396193442020815832590400000668903914604111623080694342187939554741313719279603070586319337946871206425901400108936149585645023557974404987182080499533006325703035108203507549326920350819842899749551875085598884910955555523491940128226641684230926116366411212814199563248507977212563805404143229666887589873920414603360737606773581737313084646609885728570312080612579839578339724015439016042502712400691203268178228859270631334568848374809552245431353632107411268187304557093486621142362571011683432654714402842812772341787454085836432329656586720062044828208312903748611765881067841584081241620646889555199137421345332888077380882970022649878014661118067300814463496187285902556485362940238438226661666146680773282030626277241755617719550643987094059113225412936598404709334360961927952270683299497291427581571565320264342498260019250147781647578503624936195448077033295642496695658331937118653004131159504293529420641771059220646745725685690364272489894774380656851120375805388741323738220115343058166930778524032259596717640797176754427508719990475500048971881477593399909720013708966608154374195854335671318565731991356409250545266389212046530362094791932579995176932739337897518190618397832289368209743354032790233311169826751587113596071465434421877812333955145237498766186120486586762804237449498821528603244655917932408470668910742034389649106311892909970441561981359963170076356357266067511904330392121207192962124238980340365611207009192552609825662690597680736020748551872042248140543964067418532323327642386906394426453484879849549437451443131109203854520273160645128627154254816466583109716071269718336959902543779436989175913185051887224759102676158777819256769990140681004110275178316569772143102115150519805106531433915076151563025126578528501729663451475217472892325107899719769155000601008869753526825216740084555845925970599073165011384117733536677553518710407160291522903178898792081540259262824886422337982588643230745773637216580409424577952935622067520285252830103399163818454614105375070339426361228108055704099567871449780732078281866383129845408649184331474196852343497924670507608736825500757685234686891732565333063572117233649939207415583415326734228769487292699825483722650707287901754196743863561142714284030219272894362233037499407993387114337455298507627087580883812323771642028007388705520045041526883612733259079750298929315010844071163898402436102188922907246549277504995813399278525065350533384145851097948236201217827799707736716121002371108384277485570497826959215723192735027001976295283940247072115637213633465959887430138986312778865170047803636023126899969274804947628391412532339752952768398508317419271386673286094333412963600430617789632543064127381250646963521650830941804331882311612174232918105676044253570413795966837702148043226087258977241821710686888489483797112133357454518314134936430686045305518769058440909153428763446490218500110587182434798561792082340015252395170669812727344649457143869836310258905615810863058937352555325564957547688590550453125450683197352979540860435443847971717807266476396613714594366304280343747243762651397181722773993973215483120740183900653587792241672090657743979828620448332960391707930072170006934272103141487379357930045201933538476714531807190272307455986673955295363127785360191676397570947133603371165968390167137908117688522161489912870647435477895568469469151407076385878081921809765991090998602485533731104982087579856361922946179452107769703924859873890091336808641339796718731894689780137289870952237664663358334504885990045425224088221460185949057234045170805201582415017423529548242509379440614142798200516642369790256506585206274145549876631622639037432674156176561040500503209672571343838945709424498304162013767307669887459588200239695039639060478972771586755964028762630602521724193289296969837171553551812151958233098554727886804068329850806186988789075760455496965803905168826546885362519864593531324638649158153239428918791571473478892982968847282067162964050185681406663646996543200962844381515713730388119460469418307418164049906844372094057079252556542003138058463453003157627203852711295401096006071231790012600236250684947782412171249977985795691189331588177923950441313206761675532414745919534138501435264006696131982340180754751217390982781738779357597713901866378641102167559006663886336571852086772187895473951160723431140431302201808332246961101827043755521032241982236056112954294079956792219364502371379209321761627808487686975481094015914323265967078995828255247898434854080180979758792372257213138467570302042023331847091068138116701398979184464493306073496357562699888878004808772815693663620648583726566552878111394485834550566017326100853774037300469049174156383794252628315569532658907963720198425611829271516889113148993189453163054523958758993016853859996354944115644755084561630283492389515927230982094346923363139058145594355620736723917250440402244120894504856559532128447013509250666259665572047123833199610761459823171040446300969051594488794121760843928095482113690050110910283832504328343015612463405281651770488051235227936971979630045803913517994819094562919377143362507261158095650562582087836990826681907767617596387380236972114410452731565766116251886280539455852960728274072966089479472894897349710018376766660834949537742245566616090206717375507111436418618502635061664452600023926081447705718459296577117211469048155509218193652352639846935219578128276674401104789444693645214128206164999886299310225152007866481555523993257827481895757271439118174877561912449724834136946240460592430531027111907649819138034689849073360945768846203704275707715418033425885829946170301147261675645502876174550436301770827894164929362373105173065097033461188221517896510048524190638338607894331266827932400000461720247904650561843132983356993863306971804963394681305132346107448595880528733924352839467820970258420876677245991754279623061143572613424161656892882454960176122132083528938551089170435563256478556974396510595485395396026787603447244499672842678629668849703683005333199324942809334517617342575226840535878451710405578149463406727388611688272510436540115571466039301660108550987917403579903357306640849233850954733728029196523940248844848584954440526076705291432213166406152614171120644080730143684334419432947358427973311500497866563588326934278717488139001930394329861849471544870279870033363510108535246270072910719003060635751995478549292347841641941290013357105891802290165176997011940783979864611548336638978394745550341212630414087058398986516830147301572141074727153840570676159594553088277980803687484232917429105912468699890358461938812374004813250483849187757007672664281373832666998097195357731814541702615303183749443041885661399083066598651518374985990496134941127202654965355843745398390813133225296675407032707301962971819063109707158387334173795422161180248494762617871419409105274921947481535591610207408575625990938279973447226692333494835032266799012544321168162216712357572311836847229877471523520869042321332590191338179752443579429282016177247447130619375362495693745452708938563856285901673949349389634938991062088291360670202608187857163822495931020657662598770709033397838037104245604235469397119160573808218340242386854061778738473266939570131545905041956473883894250724573990649274136883560847814384808296006433283560639536181378354505324798802307485783891417184599404950496050480720389396910183057667512282860741114294065476891224799261210576068462325227654789002598503490588317584487075045055201186802451836671557821777421421691762888059371131920985508809105327441663917001098311569656148502589863018625939542650436828267543954370280236898408792149477111551726094572666416567018276141566467643908964434698678255950603966596966320605628360066307448566138076836848827068356345906055089133261222993001054219676433597892201551114407540090373239596263008120129696999015849072159006686600366243813440688097733615864451725688114444905139988313058856804910808394324676379974042986523311047312311774455906274705979183590884121773643878009108978630483669895628811754233481308407540245829241773543699855067919081565118057896250031192632554049437960166280791815346115296968296412976655533808103384236023307035189019259451991893121262428754568116550694074437558348595534186120836882061411439255746126278027989853050959769141274798885304302234804115956660517945116772147699403066992320804605275094718254975733388870542150636326414305951342226641026241890714477401179742777488851929506651790654599365562307890355716633492881089437857900256715582560909069049492530162684331183723327096767312500818838069079412134033852195395332880374062781164105176205785116261145384063041031786634836185402919354769394957772091732011056419804153314102010072054429858200069889070655479849533369750155486923277433306952704822686672995968830308566970322004472034196278120536688189338749434037977114816324964572326156099177198791484699163402874452118237132699500979420906877076723840183817349681858779261061108800639582126830002626559720197845835409556310906181502500232220563825247878714410426996003902632647299834648784000163002669254390195664969814995382729909972804386892248677309317001755757298130200911173087506230816622882568934940710510918318591092589279546880548448500961281475753588210996490782345685328876839713414510699572126623793943674381060365153721317552801056225848982788445642773105544724808803687954894454562699746981594064811747731367009406255611536278631593120772596482456380986327369024753100013339908118069611610546602113349149375213476819222298128800234807645308060997678964742547817707248696299428634878836522470163400552267900757461042415999871664339292398894638593040849770499773481416089557068092019332264450322251435913393815157732597994017386316026737137466335869091133855984563927687989095327372898685539923154985166605881389255376128543132326748272111998734367082729994799714986866930473309133162163494245126801216238245480986556712332000312743995824528748430934378538348242901634447314458919388789895392652461167087177136854767247295770066692060161780189557559517946840594201272075188516222088825732181253580412075836560697129622523303284462343160908343826726871448455716677011474842656968081964921956590316862766570034549569460997524670191498415732259075641160263574673248451286100237658470311836335914206429715125172698281477960409593610769626207517708442435576868036798657557190364780182891111521371313883576435064939701551143692782741849724402537880348822048940960713431452405192573023515252301009609276964907410962058909896859958980895532556354089817174128627892848849957210309293797621920978803454192892706504531312297124795036636534671905240900542443042095767412414853440257946796858093951821709546434679705626554975860921336929353140132811096233107625277342824307886423386696230484715546197111200339564416951676829319099409435311221819289567755499744973450809830916274415287385714558085999858550150794818445425782223949373997148451965718658384187419648446298289139612271265031998018519264848630002216677136052397289759219142479535775217047810609909779295545911018705915493670486657797333093100921025490776873793775863221916737202383331620795989077529781026205765497059062670598271351618830007164909972534061435618182842243854727219119672331525721350144581609681668405115218419126907392033517107885660841105016741132693583612087588950526760834152087392340735154715194112429757328492861138005457552694793334779214299514763886188895198511994664288313013485662416267796609846343790573373001318030476617971582464099168150979214507481084447151188275228313124823064498252096804153050130884146341986530488240263579589776217358291806386934114058978323403616823476209812245378069635557289695209427155516948262123332034728061155643694193003700584546009561404147185844380018685891952949139398400705780277864922100677325299986967265766670294108715413992226200668989950665323094339421134212203168114281364337951439626255115662753954327114082223132120905574060295318346095280751450564435608947635670586563669513284945092276413717431591598541285208408373980461438654369476471391212328225218102392381758999716737168321920234307338080165746428435374574029949724273143272390747113645624675127261590785565649551782583425462185925084094338630826996342065231838126237794741374939486589956783552326778394875784434205568696177633587663302146419211979287377671574124824116491354421338785111287334731334401213151314537039157199379992375642050610971076453826677413508310914205519556521918408176975221842479059435985509756162591063519962534830534837045933263099165163101788784807355475419180074303126226291506424999755942144363495984114524125966881426650569283900669601281573600435529262141915343382078738316120811121293236156608519087907390035435739221689569919176898561765458160686954029882459008352087010216648635767825474790420276900049947472515301020631403333206682447017276031410298160188805785808943225056393246711190233326714343404413535105321202467738110587705902090991866489075439334443045685638309482895996423320216315325693668869411732295285648638693461750623434443190340317941541368980006623272148182393463836941196203518447549430634774354213086769804318386704675864994795364724398985120865766400043599884633086046213713277745192529836206420899492433462645814132764782381448075406076450926172177660333216484409609417900835365078914165092943382676831467575597641616476605923524702187576784974109796035434235218339832945288812334312037603578265794440194796230677700991869414342016607170846932514276819454955129742715095654913672173613932931217111523853664767758546125116458416807823198270334959031276013630931479264978468759267401845241546546931316961615888813471718191885184301474201705696272220696627133454574066875426126399416353507087545692271013822280044990809691773845746827735043968732663962641792149798089604077913200559425194963539688006347186286335519292506854448430638064028032139192525803345501152153254366976536244420156117849357582724903400692678308802621557438991852044927505298890276656613510539808370119712444367409915228435155825797799956884604653254133024201644223699622013849006272959526085557944848436286206912597225350222533191053039662943040446075066372092036914210285049710172017422559548504603309136061898277128623866222935829878834300882080033670323835349390781069380210837505843863702670876638330198106900260903303318956292435771083083281455883778737011088123317882043089633237500898611181475604577878109648500323305728854540024199840213783639891919719725497651058346189227100890779841024000374432063615715881063943210866285518380098887550992258409542551905546276114159701934956744196399317286918679457531005733801015696355159300920022978896951075944809056567104877585264915814310143582775118125468359062607141261628313236578517286104585902252018943902106534418692571575818640915683645987627829039069541678976281955804778339843776532017628364711565117650013140181890958528715527374566562171662999185483851901255591406432908479309820064115757163337471632000368447639389589022929618382087873569465587492372187779570126540741392197424415681812766769820973734551072061393791714778020722249276361889853475817602185642056274060954312877057644966081694434902088708549960633493604324781881000023753849495597388796336832754390144473440286134322800253325499755633622547286249622496568187511466237358365988952400960072897075681271360593678530403390144738331849247376349828168125655313838874834072471085844485790026173084262337145157646691623629384210018602633123089554017905539078482665736341348961960186673706842232353186786961969453155657857838438526075704244088438169108756591527891826345409747261042774176793215518482864606507570851362711872061075983729214392822402215876371543344508578618836828783823787434878026624726952818792769646761203118068923230087175984954214281762489619731332317475427215973663692468672118642173630317780540004332865822744519652284148113563226839444215768947026602709659286384653160947042567411337717900851899218163140201198980674476112942047555903917567844837217969017521011219640095513427708190349870872048782129250924338069577968475944512650606105456146600841178157000306524684288264763627216143006425182978399393359611282151158005477744548008501602372835819389465348391820685161547510257167275725141732694340043898068375616807152723819968253167980898971075770544774990762202663216249108988624756531722451754848045331708404268390617602914233743568841157731191779796711680189958657590000676300137417367193138356293855942147402040373846035297082962294000820899289288961778416325557692900355214333171416252148681817892931041951280394018691007927789637337450275397769702184768673075385100090572939928496187069132894398380548115121524266053143410878163926593382988367688406900957488908198328983891312737920959224671991365693863522945888515798066947168831837392256530951787460478408470881392032007355604495571036579862234245689462811809172083373817550065916121137616878066631694457601149073552133882280146695485331171674432887839303415724971604142364187753582220747146733530946326050026318611077488968231114704280456005005406530420898394616164206691879904920631494060597213830149990241633266579518399026313670149116849345957350641235072480539904272857355394541580162306545907528168301716502162852906205849140515889579087909454115990804401048806612958510958837971941496321868225607186536042248088410586004838976017072079049327056107280257341586622554932713676778336187165837704665000000333340837454264507513161697720634760140661435263759940537601426096519399931661259698590374662456533308951868564273080881828570470100041620057389232146659613966351897724515288532423191199255913217495145939956340693466118068194710745643567197187089591913920272383855051107765907006202326372991544272405706715308713889895809327897597264767422518224750223685661207569027627189076247566546489585673524522649283420354865980749241081475021412901031362872766017346608013143923579015562282885746820316635911889477460385359490321325242443086743025507604052794866318369728763130773526653663989436925455121127846564125717498572885612821676036103538522505162809080249329706914177053979957159861832981550425006613098313044847762904579571100356164207587869395985200219628305421791987412220000464632971373140022016312423030242341818071881429483192513425110265505734004087691682837955271343015101358498740018703915867019483891085441791899935743840972346641102383361356069089944055765023276987852066684143108923540461345173143609794776551562448446269231119678648159708511650694321328290742404164278302068653962349881571963556825179388269714852269153239823797289930126243241541987923173288851676707906787931775072410684088827847731515817023646830758301504521181597512970168444624669734562866214413538417268989693233301481411078370118024054819300914841328640758915595415303983194584420119523570588789324443337593507153762786925018928139400609173114864452934746563208677216924688681535176018661510851250061403549357836833194335659126617704352889047277932795038381023886690520822624791661506412115198594394200150948034125575036100337042935191628540598565961246447540421551596119776008385594422289882343785837099204448603554204881116516959643184283453165367252805057675686818479708880423092374881655157029045498281146179073511937560273670574897171193445154410720731141810057952411263142096659108979480114198751566574776839453806299634998590163281761925838260438805158951788116583915594705392299318258458488676920938947642808372699765057053710387733571534407083912146276693216502454899654730319727813272165860336790359489422147487265123546107289051911549647857618569797436519386243832914642986189142672912628618962429457876053138846184622162788386677248476493968236126679851113031547417223858413445425728482836346055218347942440705983833436742467293417371311573483533490647724350335955262855967939219106693700542789666559476819247486446270386879685677219227382895904817519805170573875349967306802484052801521543991479591238310142289671654071635588096135466612498283482534058480430986733885894004471591016241298922321329257542850457064907892303872662302007867830724556644725796574143996823014017366495459374211456619881625582919997888125591175552373666622616688974285213927237227929537803536783708346961198019863311308571717005934964199106257187295858303458266517043685729573722206649336469953209824932749371784280930388257175313804096839625030160037427929730587732128633440790309457143288311878504387095413563271142071281176663609503119555621198157989174746248371243763473404299448110270972984050538260460254573971383666799738347328017693744869829926478357321174101978953432530025856953470634465491130064365968709453666852220375614335047847030399676045861007465640713881137245034126844224406060464886020018136773530446463535274640288855739418295925743003930725229198602238086599034905816187927640950013970847133234014496458141744673070950140517790176033501096621105257163643851395634460715262825227380189702936578389652116982534371045272816297280449757325831977127445866597944894843447044820386255996496582767823632871350863547421586630413137925340617601169613766744333899227310274502363214313538732411288537961668783395693159872083099517298882615581974531565962459996956078353180201855706169838966252683850635770689681934310100812188918241553705109128254216914861466524489601128293552330555052834420461437379073808940047334605833896419662336442845840363503986279983146723579637899503290956909062972592630709193913295818631420507705173883095066815793696795750920276533901181364124933589377304854092368887684467422930821810073956507470057712236888842152594252525113171990989315721053248287198256167313108449814864344837224870458853542995024720336978896537582720861621336469277829460852997306248637303165903733824138753884279207391147901269714226775889871187565465269820970982502746448414281635384854908823917348733550612907533921400824239715443361901190679935711346962633042467914061806362637337546593400598825605352366738065039272117748180089452989102486569071423079711258087745009560468160935428039101290189410173890204768535141799369103160906066113042494894313890522539785584185502608958845623345492748188121130061602619744223790209783141879098967243921017037635837905616133915892923410226886834261624055572192969844422974201117368284861375739452502658269327921011409790757531882676744421329903173030192115252396571481749390442505824744026330589298216815078286816122094814276565441591583762268320625882218741386739083655098292608685224313640578900638765154886110137467673804877225201571431888452582442795026425073335353178600352269656170837747788602678886598853170894651956887081540102533326856766371573535269049609864238790499907265327128626220531897014358668826751783868397509575525317518711231318636837207948194256347354917529825484120337763132941500643586401098955822063313969643088558890791384008032258360025997699103214573193090047817432321472313989111809735225131069230899733006185581273475789956113842104587086760091973964549267455190111576360874966860048873890333520582431786822826039003620087626818018416347458165019259820639189899242941229607317026221512702809374543844036246069201324753161101054443019870359464207693372166530173390426537496450390078764266510273284206647127369152893264002703413253654519160933827691499315265005138895904027692909087989659416245241160477093364809989737830275269587512998997552845716774545172123924495976650779612641496619667467064793815760094653801714636834346009113079598620042131403155786917056174948463071575576547831765604061974915044233998082355027749169333981994233907896656244954951121858392626874006844625304067574830756559457064485920498407823336693465926731962252768041979582007683341426621269565947727149097350353362958625016998281964293769151015219365158388887406843703456892306913354138542079090455050186582233342767583657410280744434470642919408596524265983966396688274682865777251456752509841803449660075097564831174769382251763220477092276680739551217685793322281924660810027283088749719502895336294295321262307814887190652238673816880991067704850815958383800919037155552795193774236455310771900799108966732304219504625631540931204795325851057139099170767421705958763295258713815000503569935268061226431102769227934135360739979731487188867521852062930941265675401632825939040962032257491397939219614607120415790250977654041961581162195082033280017459452450579354213480159958195324855978094800822450232488374224045230725644967247537681009289371018266394214525973826697167347352203296192317023869298808234799359177612931627462873072130547176230596248420382972737152805586585529375056354228580785945153145309380584692502717527453920762205246409180339964555428348331451075435039200457861420769064713022303383898475470768325477018298186981315860366745791329074462956224820524993249837916149952268716040769588786689236230205166563280803993608452773537673279036968327191036979096694577459709288193401255204977755960406829440181878406689704437860889267405687141356340475639620615715120828253511909845196895143196562793024739366613676242772330216103416807235382849294061780525258855453783874917566402360721213976877874187323109110151617060207188105257613018675538229811283270986569191766471985157170463664604085912477172170933866586840929347251728585580179951330112866112577064626983449333912412814169365935770112076939546943309056287100508984605222048343908292511610823327535728760694801395630700764857524299442004264992240687067096052249151046914758426359036314744337883411471692682671701939700785868709416263789494379496412051557978794565292550502221711187396583165977404391270251063525658170530475002763555176513136269487868951481706817361127182939653138158663227926920590923943592730754351299571956494289501553463457589311209291194905032722056608653926668031320406893266492041259273984171143550223263371847004942242947434278648625176310671113857757094883192314715111410482103279672005082116163481527918331906870872138350507097730581639331364165949766228807807415536574248505225321708797608431238337350671972679955427684369107150848657927565797967722977824617476833855267067452473095163406089157534072329372380018509199156579259164227175089355872371152265780508924163468737954817739664211112151580162409737537895500992095666316556019528646149284339551346707011866938622887118902646137315194146306635663425065351349914299654016662252909379446661211019662602569411128851068310723618644687108346169927871530898364427833585655649281194614431390129472940146351342452219077132038440322738955170788127790832699113701857590906783403650525718245794322095051884488884707171364420466207609334402416648670812872197591313191371431537148292995725230829641514151210721018381200509708583405837178414106389326307901705949531259301282183547591381811929850958480680488839028910129473272631115396919140383322834544303936547198652916272044318562366271706882844000323327278092109873998358448318377603604421865932263588878602361229680950520811385426368801747656648703169424716248135610366639855668365897902462677530706637430462252681477666864567452542384073618762865792930452074313694079623331813312047454704557082996023213910714517322214875685497346578200094923343876799875598525573113734476090170033609704664147744187947377403728626867608969282524025541368526299781296521470086926796655616575471640631705240080318688730126681552912462151132833762806328015015278827517744310632930925087078197915569737739103781858247157116429672926145811384253002680144607437803080952896179915641015200697990535776323674897903101470717782295045307236685797271057572423921943474774967562327770185492397760552486077702984238499900376656021780340018613401273553886091380830431369659216494489961388015361890641025477044709696195908354298056211543247257552431598746534119865274654412530610896488899057608638499620149651826251373845172449971647561526634549774028781107329286434453544047098649278204114687432025659190207437193984023507354007714967880488960081006839886842889162277942857534540552369175584822681025100344854555866112655268026703879290798968142025503536386287546794036733260736379472069057085813098182179318645659079484106617302671697455914467595361863122571478573204232022187781137452255147811947181067506798588014462859444706949280356106061736990145494199469703463604275052475523538612984836824465991479100503477020562695091976900336858567338111039967363756269986911623760895774153405391240790960969497919584465744149343935342082059166716379566109126368390495878024549003914150131294271945736221302214227411373976494351980386659347511856840595771343675214658740312541792534174006704584458159160956674025875439973699688369349045133098652173277581425578868091454969874205221080761369726249516747781691563745533165817285628932771697186303162463682546703243612799494349388211090346974404674021431363392527552745010766052733075873083810026322233407072884030508032833807001223173402738874361354093036667023159483468093644569716859612425320624034034280694673360737918402343988095835504450929748691680368216387478408079102505767815978241429576042278541450560904607197615771441341356294155531635539238197786110131423164110594138992189900695645644454045759596237786943050123394422059437828566895461069170680788033423932630151030975623909141165828657744999206166545194752246048470771428868330211178675626657770516299975182305314653269895812135317750519342759907704301207250847988860748362566303886958804674947460168717116469860387731566794244714821664946126546392381748579422376963580089173271368029940028002017428119240840995123226834063111492808263087892855112455426854482844590935287671335414686485274124943018599012465255945792880363838271385350869580772118760416134048479561178319035750450413004103948990916414479377521435753111082248290291637113899587433678511365644324098899484080311369959982664253056446877792329842347457300532420839537034326021387056799962532589278179458505971244085822998917297659987291273257970725382825204190268108404420505575805167860424639990890722716935388807902751242274126786808731625287829357113405220537352573534576413763668115276246694792445749171201769971528234169389999635536086790937329333229571523603901783321737667431966339331875704915102992625915472198598788421465414761086842465541374087426098881131044086695600701530975221955096276997604601831145870414188661332629178097469558868667965086680235145174705525897431158205656769491879331351824388974801893710634375398906907511807827282168860841449810688537504639911145095524262497810901607905679930604051160330846388945851388760462335560310309649582138874764815502937341494995888432763638222482471950588838004558522490798133820379228284656551411390658212809971930797256664919002877607846280607177162852214790663465368086122599504126649579963837373996740184760891746557802294014986903253373591184078062845435020416866582353676713069937055251716947542090815915709357485043219391605321943876706516622861212719332649133287894071369232947019901677443771123278728346239354151884792030421833855337677741299249311248286247154152517924500921457527759571344293875275797664886600816011931117663685091689430745240567344828165421648162434180563469512949606105625464001514358261044896288028790877029693286861691211528625696273616797675783049126732474724629374389911938426323001801218404478419454564258921294060009490032470653615882317760339181495195925192047853396234306504648652267624820356134790731528631680639396870816907614374346167000565551017402499564706305102874870234550493915797258266189287673229504581321910889239785073282795858506061755301902856337583190395921091814037769910261597430175561505350736263204556838988252599815206326376317309599341022216277896428248661213433835784083606308082809107821766168146857465858500990835354387441389864000057345151556926672516324517206105800936474119599275329405437911669965676948650540128763792398000071200460215739103304125083639337980377601791888793882134403887179420206732968536958029259724376470039267994568430086889230015983410268644599997883224638033376082025416852930097152649960902023376576311893002192265674242003937177714225758256644154797529844338985348769409059657682355306906901809873802123004593132129348750756238042470417206325570377282231018364843574835060642281473697148035952094478121569925310194402587892207271718265209636545661623761645357310021231810414667269664940998608717126143702695608367768021210145966112957030755785729053830860109804242258974443503708553864528643133006461311898368321017728530812659599027981856064474446034430860511231184886933791761853888432945017667362085877647504538892769964511662730322932138063056104469322744534448705831501782231944965471840802219098430527021359597948783782944010078521149716867779400120950969747590363356397174078762652778111465274620732208309203814285379835648619406556148403218156204186129336473451515659527051976697404660113784976893882237657349084462643780471377002406342996664716650506143024156009958840780950858740323356972186026954038506175065258512984193046317940018584201610013129469025664769734573741439218418624709598341194728555089699421288781116467038800539284452763728147934249574033809033528384839550072588969642445948698117929846845802113599545132806387814512866414836769281816289545951115645068439658387657988415864674901052545529579669412804062665630539504036905791977622886958644641105188674414149884007586526763206979721788943648266245048182023946590959815239780017050417083764839335284528256448785768384059568551882926193903030790402566204029502052003373508166623654501042506625288092661606915316201180259420591382095069070374999562279195973337905053258228283532423136053067026490118385440783580107562440239855038969267606000484128689725717859759401880373908507196825344307178458675870465749427853415484215255854008734847249091465588211548896082259170696965478697828865718033348404584610804051853368803857527747230309495427115195053478283395837116954427062826166452331688862029722048348263892586769686893252970861499373232428337346044292910424629692342667654060537085145777651621488184494307000199079397596425107447560749968656016164591525043076056162380983269575269720619739144867184803951072579664466653591691991825522491857865114642886554166115630767380494309746434749017842263601359358434277770268778723870359782465629130032611982839262356659873778222874342162910596310039112642001932522077542318885686456270607457908683158688126720804163506169123864717801545524249589078921659163318959564118947070233808854151453622234510109111693893541554500310146468984688311545977616245626197253451862413384214930145108217048456871701325499452953646085844876528941373960610082182956957941924688342108913929727856662398142700178134811175889313753296080228820501430023329848346989621974110895630494709408529845126885693757907266312126516344583069431599256903019068281703915506062727107176238457746603515787815384816400673555364083029379086002125399452432939639608140864929854898506738179587876611644021637778158262152967230309026150270777983888209675869475858552062138180505599997833910173343094303349919584161929274402333476922294515432565043005373344211890280761855884455600480204769817118897228598414574571863887115657395657123305926485361733181716633677575215983099925913992379387251024277709750239913785128899453427105071400069161043055763631652575279932866904929204862040769247668066624046405973649316672330848873638863033371569665810096597464235107291136976073924754077758213634630469023047793535077388894345925366916354268224085024136093111410399570332158165952113871052665630520076810575965511226280445189381686479873214151138535041258557880786943495441350711378683937913596450023877993611803303948344310354236307770183021908006868733411322031995086654230367319419465215978947335556409078055754537580657341796838664718085828730490770215831963196717485660589447427087323955538414546296183904257370823640572342571007584395267325421560809087344315162760577055164247383979739408995120904659140834957396091482318645897232224384473050836261456011546148947136170520910450225784361403720252878784718163212911509582988890006443717353168635076198907024605667425889810492972044727046598818348768191999624063554581648900062178963264784435103580950597960919890931942370911419594104608232646215953452553836092299467604925759123359780561186216145228625098669947070353343049136767741697057838642987817723659588142219701514473150248890878301221747444200849987092569597869420412536468103414097026781469387733069527738666814861318124935710220798472765780420655193230428741613951000961531299696614142964842365098648272624081668325519818155173735144572885673762284694667046106716835822125460625961708893740394364568641943241158900768410606504939903996450761811506407359753970875186987244761354899020779148123570788283046916557895317476921987661920172593821658774935265662553804903705256335083872026675974229749025906716921705192622539226987414873668691060197233082226238751131068563131544610470650184618545148173656789573152165990009068229853614196653156728538970554787980422621031206072179754000846973978273664190661339720012525440867792380434508615904225431679733097049212525783143300845065504585483640144617068112685876907086206946401732643843470392632870421737038138278137736817738296660038413002485801082155826003131397053512827194530900861397039631991437610665346952564740962278786831038236998337966341181843353864555648292816482363819054429618754938054066902739772209358445914757009827546272937157755479133576389999469648907141316625262237671303463557612991897107703539939764075567934003972448408735422519780145424449340931694036745532351196587754096338158422543492645267953571213523586752051601118253706547345486826390390041113034455919436021358738968669156731474500298820830256415161597624802589449920793872817168676945722124261159814125514539349714960880964787007239472365210375382871164202257997220365109525807000216674734895846698078999392356081167489822937084336606782903246932477128411615606239847632165081418657345016990799563746191614882036082427534606066785535473320751626774196359677947066942022436249728150986142245450751715645816100408172156174232671134081943921490202595862742914295097105120757671371776835977676758003672008428620144328340745527556048036961573059580258486754632055720028145981257559224130711515693894797146761873206042905347027158662487670351157848332724323831458950878123191370746805662059953581572900983733983255581017008902612392771204059635404493418055505727515090202371709023371052189715853931067025758034755086510298359750691268108457913729745849001813759801449110848553296272476362590712873720748546133866361358288930731282374368706727114605726560748214261145176659500050276270067309266878988126306846317195083343453623552785494097707795199099766291828674979876175569606278649476346286087531430097121003871853667553095167973168839403060515765030441600270340514059516267963222789129710600408069380658848560191387128391046743659774786597373838102963736880341131818458284835048829616446209131134869546660131963063946185114503605723336587484538617615422074793672485118267744294625035687282235581448710306095880873638255857598441008027525201760328481406049058415820724040749305074179307078076867956227104394740190140477359518620737150649141612009202068311296056426665892447714660453174061152803089265875608850115041904812376234457724041139296914145560909314855319830335232646620549511118590593119748225686730625670981971112946929285287278830864027745984183851813661181766125375799437616408223689944540432412627124765845154835748671244338462462151871382418521488141034647317455892458370796011277116999644725009312028788837767432530438832057499612396568163611377157537388459237122671593368817997136882315136180513773769704410092297403248782979039687461013277304116996691859672156505900952039087931338050765138934860453532156294022038036651314594011439527754755967525584317969808925612586681466719813331605840697057547140332380626343110165563349820407769368820821099513827130589122639951638275232554206117005510017873612260657724762077397046970073553594852726631258425354086258036389892957224749350497778903602977729745316941199791702990696034111123248186695010811132326192805438992050628817656034844527367758124158502742247521481577711762633958191650444835690642151029538756161789378498716172107337267495212108711987665848507707761389345312955905798399875814520690224027836098200277847476705132557312066200630315801513865879671074928900177403663372236883453310411822107074805010481460409695536856781957764843891200758146255984920804294173663415138850533525804882392094574188513534575551812257640170414034488709001719874149030386971883103675789673288302379543631177323781089039008645524484892335187871864401222143400383254842165145276837234998051834429581546918808663967661347991195180309508698974458628049018410805389914637202483801824453732997444115850579847922475880987780102828245577709019821944007813837844405073014448477331963542234161077242646809049271988501508552961774581700910544779414054444003092963863102271865625927079130980198618399842082646099498240037893406223814746153142624008314709754488216348140610031621105042380786230382010719209403050769765207519642016267072945942511829234073270274750901681402955722430266394458298410070313550129419756195324589496813270094607100486301089763229347231915218969382443819731732333521133407114202901327173337933362005031131019893164750482877141589325695576528458010192186415235398933158213952846810093620843480532654754077297518713179328644261397552376013111150748196919262338038671766381463776515145066846477169488695595798720607645208807072479254963686542301351658542528518991468511797879712523172323356714706545078042459939007588811670150930203954910463124487008538997946576892409216527800182982687328850683667467006694306107430439109950326197000961573996360060883635144699551364565763098677593565669392324434859914551882299759491891039008120712403615214007692283974394827654059982545175511102888091701994330272785414219180593557507515828437775877411131817934864998025142230982489020555217352499883744535098012559592624490785115921751934526280252614378293545302224739691629609224095130176558483939266941988394248705273839732251923166624500311579149627978803322526811679387096930610544322463385268451009780358121480889442932643015172214265703388008472919320257339798528567370657315853276120517889676127281941355837708354917612901547690399647506144569050781930303535507729617277771056843514237714627505372110666692721475307652406576207989679879749094578634825455050059658980884921560945338672264226423751705841535234348243663501535167465589093529976054292875929907809431481736358451430040853696932879813063581826438591642677021954817861687706233352919153189739108163051093349943018166505579799695148121754832378153170954901064044727033506700246675923596359244485138858214142505232722613999540748749454105957914601607992991404763429743153852246438367015407831897563623741906788984944920615608450329883746070840955889053404165593151688278589875428458731629488894632609833415440907144646011159924667121581204930157345373279683256702057898297473938892294974736097458263027318140628057880240598954767598795114950211003345028418363619595910532789874818208088552548625946646970196304736932849097176856999660595293277600431627713497532367793337515976370715378901744902485431874040311711525978482259235922231939035575961274284404850029498337691669711780866481386026501976772960774423196908073736008775409550653164533478707416222999312963911796012026002646677756487816036229297861127361127468316186312652564661783344425532201565120206310979476623892580613779984000204882548721846448505673721237542906550394153458685650601767834546065253764530601870400437018037373863495111716130469883919412958063337701889512316764408261078221958047385775917562658945537066493043591391631392632596477758286538176836473971200456266162019371623771496009210863447851601433433595347120464088291423152300615377396431908138917684631979135870994843656529390396250743827343216424056864111915508151455579410416331684809188445340905603402938323334830065690281842616464080553381727591865026627467820224533979142242538006774638584756875773765876140812017519527720903665766532163332155436603949473435662877454749281328895698397739238930874836232048955558605905439727218298400677454746794919362633696504285804008924177110259387084797907997878544609751108187285511839306351581634423305744916173719846175297344977964516701003735465240770330436274868309939955701837542317809544205453416751370543649355994251960456665637918911808961713124063838545627164201760558475444400990321693571302842810801426865358662765326720683291032712657255735670546340914168854558407469990024819062017477635449459948868235894383667748831054955805658507919532614847968830792606866806152270983104187314570306453444482013889624380026133687976866089040952791899106747892729605936419489316100943473191830535945886581589228652766283409455601477188476589000961403725519416264166323610979954244976982507634016485863808104764583196555227203017457448177989742811003626905480480421374736806496309460755544128463094151180129323088655068295773191373814337337713542228008226725095283780851358983061029920933027978160631682263013636323649200604282057406327862863062901124803651872184941255661964018631019486730872020074899686522451535566439015178057589094173724830084820327043466617344687086203739071014586826900040120243578475588968746463175590853725588007135182364946646943694992558777844616221642118784971730353492251180753806465153592853186815810663217688137358280872052368744078451212860830602203052791326976221648900055115598774291910254890914247836115870816334802499434812719448534693494367032305803191151223876709968601179462054085165047172208103158032004238818413633476848434279171796421757099009026558231918774236978290089371400237154917071582375023945787557399505996658142112071423567335874727142306876138438101774390530000182522512071055520079573499571556019298367080305588195347034083470396994447129381060675019621237535521180621121815143718538672952960911297854574713325672370098038819167047471405145072622933721036492769553280562864546527644138998580145327164383566639116880536183802176030495956060718301685547029887047808365528130653651986494637848000264123363656803108681381163892566711429034339158647917495536387760545377763129385331863282567892612470113709885435232208030992298261601827812471553892138452695700211599396499723803263480048120772559967756718238037691254653433566232311989664038169901890697774272860224316678061480785535343666630362503038128761933643917220466567060206866153283041046375235590842720774016374633234484379077632512835826746310988875969039020305883769900031444813029426137278776158119006805994494245941471391497173642419750243305431290189951365813516472226826918140310998956316407780610296769911940917667693412947851015560730058607888151758755377088282991981092206101854238134975530117171915106984622901581388213378371334263617720205781072439337955307442985058106666081325842456661280372116108814878969678197354321098621883991013993826895763527203869656257443794947717523634521219497936943451062564737561649483399232080665933138205522864328467244471226275290323876870084526008364207135090272241937935656550954893566899485197889989017613263006210848450588507057685271895782473459764217559998289327863504449535928476458755517238790022765006047333685984614013804613360814214175751189396640567524323256177007223870186908228579679363536734611530029210589488070177932652734950367525284434770316094256922105374343580974527363458503187282551624461761408727655484638454124542363224742403256784651850062571567379039410606000042060400412661342946851541018960217344833649126795583550179732507725581128993695542706806308873049681101012918339494297565626625024683558713042243462004649987472033273528385744547275740516194154339569669867471099582956704630566906920894071070102027828946820463163115730172309723914643869224940896690681022361183756697338425014951320292507194420332652596127104538291615224851266160313590555390280913205430962665239649798711242000162286511819344024094569612219830602014941110949164082453417333706827068484128196161885646434620124773596559326034930598471238372741593146695244708601594988738282180626686662232075937604414048463287345322034718897502437558359411227063490532263637476194238001703835957061693398008308618360247628288193132311558634617140189295350932027987328630548282924692607462533997649284219862698641223948975910426767168676624548309554724706657874484032979000988159538728013370440144821001540677777617354036501249025417049486166055395162597930204845006737021592360322250645829578644211251859248498359436696310222098879602783434581215725031907981745433365719225826141371770663149155573060027266057044402053362286178680183570228269836166354870964104105411858408806597349557728891276520021836170241243067335277076620866062195690411025301810539132765847434693983885681391503954038422199656769790375883386454871740590280524379666656068900519971203328938623518053304991961140801679492830529270165895634329549127641609133889739931676381802149507484752675214538398242245002856979506535615525329869903433203309424346796329291255559103942096357944613529656142025834302066677010547861244876831547917219626114546288776379789804644608834828408407105649555603148289483304286827902543048573955164728047699840361599090499943307422411408201016607012445333768069340844120662989882942031364012269693669331107078506039688584994676706700981945907291728847983059991427231418208979759249828529223623028225015056318817237287957263199840128241879778783779213452365899596710944294977277681883353122703380637606598759140231771933760173809260446306834564112106744436474575276856108002100686319015188895435892514374138237841597758875367999328859930193784719146830600207113702133386414947088231903702926782301990944576304417695040354755535020130891401163194705725275161598018426186327736401662407478573370415737074712895108864398680402996533240547031021186242032021229986877102525220085961969504310771507686897347893789496039397851694793919445577568008150723136783732305583153239393270914814182907957772189481011535048877966947727653015042948091406890208036101604696467762070918746427227611815600441344906238313734778330524935897712828491866754554411060556642322725461775739091085003186752072715585592910887978127801776364513170203361370338651842178704703395699813146169713919941834535035042230246712423649013517142693146789073178039770233935336714178541668743023440202195074724617440124091815031538191079593767036515225384992802131686253819752705639827343055946409945255558435212801838939322301618509777808441832529697857586481384519559589580667829530540896486125805624965957191682135015908537809237090574976473364950828791302825700482903339846423294076813345491495129362293251936728098613684147451337793212150197764094415343146228612330336100572383611881244949485564903303048937619135506791412786766133070489551102424472317963268895514312344769528439933589137706392827045464081479585423041601785956329550258967845413812217923260536048642852438702459481614194195800712193119030735111201217500403486117029028554798547603865339221195349257088801457046628682538103731695414705818321702163375192416407578061712043752532684615015726757932407213564580945733356365004317693292558936150281601223029484725026228827128553192588075703833942779212661436506778911106879465840754168286857893957168585318216458676983574572681590878620868249585848427101561417134018378682191988239471083611644141354986581347054668509010848818181950957371759386443160992808899164667833631948253575469981606903377523635888081590984814648841868213177828382227620268304704087667195713342652796639593501204555781895084924033673665518009133960582832531919712919239637627305605479546706174541175049991224003141987105238735698409706448967038884036708197690222751772794699136835108628657585786701067659842114177798203968079038315400727370104054848247504330475560355042775388919644528619266376254552703516049065738498270972827023993879523036065879693146249051628496858127586092652117936494262943068254563623577981502833849097768663967641698156833598926920838244140578259537456222895866258525031764868917314385693529768807380887509210847770604341316789965117576938717445088185585151590943791679001415153035220065326611081916933059022886749308709351061997549033230940481703218445947006997596199768314138469321279058062994068280787110964207395014314440772948932622456501327819205126511453395376659101457117026155386211748556716699275030071813039070761224509545130928798782254001287841672906909536390832925476295098718825355152544515012795466719661542378028347965015154937744571202672153056485526394729959483029722995019443913450748035249243133247766400982504924613961905312015802685144731433874911046223036480806673998377827263027593606725567812660302720587672223701041287933631300682851714606628582012321422586846707931370855144548088865503064817295694805468969530984210940478416448209151358356548743158819389925744342650141096203129051705827210784556372884961608469253928049175579880644265725193237005259125433334598733634867075004187015851672286437996621625361718434624701443104288573060915308280358911688903154451550475531440101175916962179320112596809776344809787799341984325706702772522219839885249962528976778017821747818661252446082510549335506567210992187088870218084768264639490416042249146316672761451089528164278813799539266334560196427179662706656315639503808947553392829654879247254228067111579729831055482223289032214961129309477856161884273451436089823466661583958750823676578782816170733745106223554728849506440670472440625654309620295972442903371837787054371937722080103727417965968490051585945923997103175956735748671152154419343045305771671856502629360290286905446903728961165768056671775721876316125417710414793817869052596905949322015190914100831848856908108969652722041126783087968301596178975472741749687977574215220948279016169987434628886942311156926834803191738692772340684295632796292354876277221505326110438946037309288617021154460218645562957531190255349853956892454775143389202230061748675016904244125448613070386342867032388865581203266436266323904590163621700812126976769657664762272820556380168496460327206721971437716653364434402660838895120117150761497449257998940391241981300559752343827312843168253733961290766777754932884816178671966317377621479743529353270749142679711171087701559717607565329999035518298368316559456410222419859207736071770123343663271399896140415711541463179734466240981954234722410500873154288478449150277182122774640113691314736665921640638568559637257672433750975381068973105992484195382419660267876245716989063587530815215146512856660788523848538496492525447706850082806872943562076296097007644250946002577153295051546046297477728057878632801940697137767911536244259339407409550460825980772672489834043423909023460897444052464832980197358995048785960748734666271863738662267463079296296420579768182628911189012290326273085785935700100165389176054989925129433570626548400865638150515756198135261103199931463907586154482175078515340530232686713861368723438658615128886365361013440622192423695733869154631842826283609462130982774811009609444260806029962621453462683828894912456105459468943361629491515249753673568934159565903962106966757144914020490123148733299078909137892648261587392106618565069456426532482978410913478178023065746048308969147602999963808999136628548771450982206653177731802613076243798023362872046436245065013142073408662526730893246350072837272437884782537929124846160602374858791300421553015895615599392574448128740665160952314890910687863440486031033279401757017365660089137968424281729242663157850276501503241375397667390065568572574887354225551015170647863542800466983412916725957533179665326183601464173184486279698997036981544955091187075625344829278351039289998991705270037037415821796711018752582991965687155998368606809526195967129035009175639281553067527439529922892520710554328393148518968626950261711377971060198749076784532479408836252021666412487315129227899087889769043396760451844630317931989167083191922494604285241684485360262268418975924550182179399976647701833832481827298491391997658755097615292218419045469671277833974439417556819688997662499648134988108661247368609476894726156461078450372453957829507115821824079081767520782205267674791545788103527979563480957232697528352238074427447408148492628897883430049814146279617281939950299927464685060602531184007889534626438612781515832842852024735036238809683768819915520568160179289114883984581448186255503784227402175025697213075666838384713876694394540290356487306524321048745546055097196882780414686325982337222601042040645559309741702868809477191757783480929596561364087607497632871962626549559251630019637702267039727864974624226445786547402285063387631080492092386047520523465914503911766401546877060128586240072647810333967447314037042347320255661890905116261583954112033007855636693774669153696558064041298601558534949807273221119529108438187006465728841929566925599171921117455213711624016727295453086384796036937998287211309740526024216631287740707324297716818038774024558122506218628174840168454208895037839354982908870057925420281041770457064903745061074458511594935056274343862699999954556839688822020992921266840687863876833309591656267007052264850308500087953906952689462467206810747326572488478840858584835178807821038600743701471881771415426212095839839032088493006497864047292227215045415306988603206641841528952858335722862596011666224535595709088397553689183193868287998713066246264377306472253888976226225268882416328495499647784762765171402094118885500203933371983482961237061816379858738626798472406105340463063125160236152259690641277312918696053907465133853460019601903354128603950300083391503746620805351843504221333833689796859757937901814847109183720760596228518764201499045949833541785247171619846931091647925982805856022323179748295661822689778360985571104590342161548487556897475238233929539832122349679275725005275674964810341578962854343797821438695542375959487916899291706104661947244399931120263332687971306540953118400436032518262469881858476329987760020199990193798263950493574466549739520330544072556810878287135862468723189588745618468559164630074466720649144451654183022411059450013463711409643308271278513844125227286282850066837424710254424229984774682089958667221146865834410467959719292759745767752497021976469045072916052107707036678293635902445928442504667134189818705321085773269247000759610809088134282870801660331891497380105763877604092322173462830026444360416878546479675742735442485173004807553739760365708650966676885470191651681012067859599905412875403578934047855033044724744794953403583803659193331907096772868859030311000363658198382170862242769021215301059913582916099915402182760956429586417033702656667465593233359469964177863906191804136147203136894001988455826545039728549622983252099719725275680011291140523982924577609375634763338632011814094456020881881858396037561508578365515591319734701257725267054118189350924742459999134508009772673463827639849179643095932211415978164981923924046034565614906006037751068192776198727110794203602766608996009670960067176917639465123905369187427961705744887248832174681892938957275008670401125891846294363731281178793439563521164158509305842714774767246339327512069051727546093816247887009618963104081622805510430835798951802591938518471659414887492615797022045372758320429016652953692947507336837451346363037141266402514037785144443078428186649732403066827509862591218781349346940047543136270899252921884603850154050198716183754931365481277594427528704540997823747050744215075455504659402103650113075235265281777721488565796280326573847265528042465991679562437885722005992268521501120443622311621352469762045699728165581581206405482846977794436729081982012654259732948620553291866404855189407888229744273245952524284589209605169122867423355066906271470141306962068351407030781048059435541278995178107928081966189723204492488927641431583590142608812673775823651100492933322246103837253777481121647021091150377795283778240876144726943513686852155266208550075641696534049081468512423729409007460748031466577919691879823861672921431072435944362777604782125243325599923238504233524647297082029673367072248654853960012893754478588259255845098302918471590651013938469572962350957094653692623459949670147275832978357719204316697588256687145491538548853603980544664346292108702218169801055323450137309816043435806875922551286468345846267641658493986591460736257029555090882092506159278255248235627509751822189768993009153322225058077500309493483547622712427369816708381736936281055473970948749613306797775231661442138687981861242387087025665355548614264081063616116077370858884570852033546889924761862532094674821166434795101042935014050738316529367101055350300942666771085658841109189047300112658368861164416583328905084065577208818385886530763228592378902439197656806617266347364308429898597644802356598761720832903631340864812126438394009228546359346270185216415364655344049632057989799243913930537692098567817508572773324727694682944393522230790094561739138929697213548136417825759706967776763733070973950722631075316909954803312492402486341804342272440024469700260820666540017449399539304939958459825224712883113199304596169558438863709618237113665723598383472117716730646759746700472625613062325963481938164954443423824254764680993541551243511441762409403173104805829184623339317012131180980551853701721508132498169224847237062522418562050217173538609063736877493278942611261332921671595185673047101165901744879298073654952436705669159547001227624788228376671918458059067674878223703439609016433503955777473632323828815520652146691820419042973884251344091100592361274832411152805594729723654865151901674115948010464402399150677572909103930120738469440252887027206068436664754093705947666090659854053794727234684732882415950225178217478137903941143166348834531785798814272958819806402573470031618192816536239663251953366905836144977888959511567929438161289347808187105106350653017629453627890452390987178302321979625762519690136293510141749263591390795181355425228455298767375769276232049050772461182446185902673376430158218144556312224052634998765271087421413005020741409012613427632715070633975311467422721750697254015481525090567838386211160048443076046612568119880384145851036182958463053650566532120513298210859726058304198747742942238640860800303122037693562344651913214744898388465974691252153002622477648387309382067338444099819395888256645192535639401154335405505448607878025522699641285011654904512247484419177022374021633812931816261099913285915348523973949064603697846402315357421837389527303338692797939981795796810821478815977163795470457645633919772492215517409298791221639619967454210443020810896935222669265013206033893474477527853833773858290026433194051594374101971202161764420384673391608446193045058971029550329091474869066433595736773856531428029484906840577816849363944618143230568860626613478525480945749304270633211434514903992858873383774693618810659780726277573438863517242372824270345653338989425088942230438120299432891758124041891650673689771755908550883943165288451404898466608945533453501711156213071809754796541703900138906309535196164581855467677586397670542024671386552417825711525626041148461089549649893027091481346525243270053369759384257832942390910274489918877547240019765309540155622306086646105183924935911478693483809270249019264944650982882002169223285763786896007070524863482179483838202128667071657676505881860905871190464518098162062070329440666943344409276721534958381807803940381909126787355226189868291438731411691371330094052838774495970962707474278882429784701278316515418860279059494588178660741826546051989717748606018629299936087161656598520792121451104465759315689550679420711356411195811333702372301564017429161982088175466625984205754365960320660964415023163424185556487840794665836007014167924431222863326906543515539406874215123158119945828755896701528394038273240881538622904873385942136982620888421738925882697986891486398807175718985764071407411550636710495121086980568074331397041602994369902166129463658384781728354273584030126228752451425074223145331699144789038306126161719252230367711850403610059181674397324001585156281051757304706479365500980277143163791486628289330341999278450208189804757333192424685370933988378867979504816728491774802364140332412969034823053550601887471505414069934302080059185943467660613860914470006411449363848473626635272567632522277358245385659538875313936005270647020812003090993679498926808004237685423176274564534443451096476927258694627313112917137444997050748683068303707296121598061118605700703303789955628951393234779247007190575125727786153244379868326892818585776070227593995125691790149006646237539374383044487814262433554555280463546833342324979276747176146661715710986684497629576494310264751871501610085095709943560555548428100737466849223628571677816193924377855229487313030364940163988773046709907866761628607865405674102384953567314478564663242962314337461124353864527311579472774473224022879338380072579427639948930358759303039537769052006948992818375690062900456882603185849686532351130197986413552007453798846225126317087349312173975158911525423491573091090649706960715074699192357499469336450446227444258861820046000058902606874710082207679433405948254669918689679873042966797786233353752392910704200714749380218749352788826519954614828113163009081377806862898036004300618968447958360407212320980787375630163653807017241143649838193392475220418469552457639758168324942014251029453037851562580391106339657052225638167484816434514888121588678481292721773006729985449100946732463171275657826760787242203865265204382528200546803338803035782565692942852944740603192638857867871412377049102830893468015227461430743484582602762258479283374718284630101367379023796128204274370536198334949151405642833776745710550935557332979315579636792340086025200621955827717757385395922668489018895088176873611762379816165498284331201148333379100125019021279826802814078397326965049311357958116384509428696159878422462828285270312694466813376470280533011067325523032834705354883493310232960498880314997939259001258269518656745856345778901097740285495737492877479909771187220882426227764004595144355571315699812367835635610615880381931060997235772330412528054826663957545826390604873424305124673794561821446124357899031811811891122461705960836942337737012953873238429410197305339605125363785277852253426337905468066749674837555083108656502919086640297248599336917068981963518764614062856821664294368698378951165207838512647533306452491095383478874816853219964604907593019489895990325606457925501367895684682960174981798829848753733771396537404722216414555285198120414005928712996662275602496133914479026701999456783400149079472086109760709671809221588395177899537020385946091840378000369779500339988135289158772096624600701869938847777095194171182779380202755082247519804686507723108325221017426709143707530966483058874681851935482921228165703121145534150208188444998227671129520502055777254863080618433720295041293238395169363227101468012760164439253925689150449726181969891982953534528676415408614568065070274466826235787657965176900426332300685918546857758175509781108163956026438003465602747788336680529661630214169964747021741266281321352388875034504419259841168839711947686197148424024905097163953743582120700931691195763884656381293539069932993201687061922136279636688171930917502762212350289041272805173379417748901999347356098300743419952801574928726894259147951682948397121767550793441112701600084521290987091823520175008208541033184019604333505472671341998894297956481427979577606981533563509920211864607092280229465898467089376273020040821363681052957614794883299173819449029280570741857696214038713371712327485467239223627452871190466188366837452873704112618715232723139151353229991276803008542015117083025909468330982503814598190420681302965966487201395224702666530159155516003672834663150873990276581383077647648454763541591663463465647537237505603482814579605274236267505517600377018538464076964755506443596411513043108198761423963805182306996723109887614161171555778115443891106349700174751458540161770990652071290531185939076824711961499154200347255430887708796837336799755431973230044077198826868570567551053146252521213539613402821967045563878105614372558535015239643645300947667172361832359435584098856906200042935957084057051233373592915002131285863573676009143689316238538833016980271852655553765349257158082239222527844020076151150237875948316884078573458987560349260152894970573546371129562792604372582517751845464555933602477962052562584432269663937575855286067755933122561236246904891622623024852421675154966710439956167610402242050118641782804708891716921448646364663705848595118293399878824297659258143940448501624515560444772628905457504660619548402300198714649578685715304374166089506982030126391492514762397802394702284454233065446931639688313168814584582951265098793507344782963688510503376097430783228272131577069543253375904200497267688399606152414169497905746784314144584597552897299319658179945090624487916335215151698677411963971819359241803669505615989879158000328488320481795578974581098206863519393144242825503977028412109478644422256738418045249069165738729888037226161508084886360029584530965444033280899310564795574148863009004395173530391294036295833693976957494803564564062458774162595648612489826294510908958295750742499815569032387848392466163226984476171213745439404423779816077727889199554787865435400309199383211869905730970267038514021663694859348225303952927687878492455464395581600619753939068112047164053727310239730608727409259348032672473024494274510621376483456968842810702277575403485247042800054782917026891328043560500379566129283600314412687125031899160879117120493095443841660814809800726249127777017507230856094351416996487067011247665666486930101706289855308936790671886544681837612586668256777984132416050750148567701682827953266767418229146652178908729617391040569974010924630206532720587212159610700049184186966334692908881465878033431083131573526379439754967790705974909074454132066982147257941308912823080118139179468045397279149203358305723750531184517204506689724743541259455514433740421008340081748999739513904404541183536345781085313235350663825528765081437780346402127764483970136257849229455715322218468840155466549082211950246542465691212280898419990924737451016209075515579712366398156305598347191507532857247821151611305203368187208390592944595760656696065495875739772178310991833967141994544971876922984933017942689839961508747770428807920064112584048606887254982141668980884966661705040758110723959783530124955728191473173108288823544681897627761983857797328187285478044536310800958685377165113632821170183577030528617250217725857625523477108471413203010707808611300310402098721575790644110578409076000008964768974497947727828101932744479219959903397923316366413868352429176748710320882207921277811745719190481149279324551380308933967011642011063942800907135164464627995672908174475348047992602223411129191635081762195031342680018829904064661571054009280085933571668354042032265222692301787305756913456221029081947247581587540497758534331934597208271584367464699421249688858344995165147571909415217470712976594539845803892886344045484828332849402841185544518688456246479567213964530828827822194603856177335707103518886028721903171660312559526246822367151825356943516816359962875046244476800297950427962603645429415264980258013039190762024599946849902072003677543573101784411406664172104202774395433644725355759567996317334630428361607847507910681439326649999264410584502564563625396786511780998277948673470513858469739622023999794405229991143816831033780042521214577125197010654551625432489124653566537942223521768564338495762949310325941505940822081534002396362821239930604084180001727242353324537178391374658511310292966198818867364441974771272339249234857285356296712587310362023552793653745520169932639664385281125675859441583318389307589408775613705729495358308875304354798541320320566151591789517371980836381205138879988783566029090519029041365505196175092921656825747422150685866100248220906340175999668123771581873445129647248764552355047118336820139257401252904203610275711161895981921731104845147115713782414351782189520245560229744739522440207899101305074489139977528567728885000654690658208683675287027945012278376855758235636926789583673494500110332856310696048092981014954930863898395885165712441811176168375349265421497532626876289574942494439779229912552936163389782383036400523397099734392567078003138800276454220769186163267573965353096938952135888193717918308439754804052267068079349326141711654617747266292399292709728406426989900521056082841298634022918485574205652662990462288825889629216322655076228027352020249616290502165079783456742704141952272906190849177917062281603409113270760801584759375229526659434336263939478361590719675996297612299739792647009310965905189857683572972419374738918743493768627460285427143118375271534784145897173117443288135730070507740575344749424892661128715068896746449711663870826237640688702535254930021994665506381764899217447705176827614353117625101624365937716674784747523852968990312397238324137787698045435353413301940775856738676278080167053034599104328196139975105982748023029018462772396713833485163737700235507357398992901615981213631710541277151696746258909271413646123365853258628297307295688326247450339803154441650152993342795427059665782195223458746607506668541814711710876016043469700930636475593119090228012865991488828873360723917016064130354337754014786652556036882111908766435677106578682727180335241241270945339957142705925498469837115279019743485912389328320491994453315613296516450519712659571908397459507562778913220969681220367202820936300096461736340150978137237727527877559993197291224869893616225581673487252389949386572802076039859450590819611033262474449135249313452780316765873186264961164402892008334619895928944436087265583355767995064338178855313618951060804518789519938694002066358051000847968718631888442555510491179514156303930761991296105284028760913479974005253797800818622304849774867795425182827561065253228491191012476622685074060291907850273984182340043523266582426111067515924407033986359378086818220219132254154314283215794494853321420410132241095761632668814567666420873031308185929637589200197816243615223474034107217103036967114641269759956169802552332858139549358363052480181771814200657128382490416137698561855120854896899147057402296565671580694897301669192379164933577409417962834004069817782420761606736456189147988295361671564745843888367126805968931890133516136051152666868889141600319121109595382325697361245129679002939095595666207741080990443355245853941423752727293538416275149850363408962082107795967037124138108731160944725076149369424471669063813012977309493797210866386732300328422503580242397065930771314607383213853197067503857561224936631486025810816183738738524876102864749959891189281103321130102472662374862514496963183759653968907865404068585425211559643333435028248019344753967687814643206486460240084433624078282258348825932593732619417407696325041640796461757784775177495542548933622982520098552646998213590091090701849498468488961777375541659185943676727215044006804301808838184283368827786990677638635102626521071821633849998248831824710431044867293146036742489644644598764087537668791769884965166120280072628334966878256326917691780401704696972559772468929290303915561338432833776325831154395516303136745815371292764594077231320991714346596267415041524163849642984701219263502134962159728664922866612821378414736304887169323274115361808669574548923046688873735730321782728016822133086522733885745610229465186187615907951288566281784979730390348141734704645424777505047334572295407467398503314237666343560358046085164494852766457601351538542003249221114820003290531877883132660791431473832784569801303410026020972767072089380801151999962332589087692104520247551444609070213649689944998398561775011913791740219292742263629539405093093955378645578238033714943876894390631932353274802969901575334864953226219369915486662269167581699110061318053970986791056686949897626568097047382941051773870981385216613940829031848630578960327503799149357854804482818697856772319044798660648077829952326492226768391475002617877241590956775622726670534133576198370818994765236447334919423371460601628823736750112519099136526908858504738695556625491997101028096440977738617031265864022946691992920731062110514206268123053129417125150036590166205951572012837786444016555434831168819545476409636198655202288316020858845603024733385829434913696893103963920449183436855434564682491318586594840926058863514938133809777952530240855759936174395753253604526738924989999366541033884243457739619245082794412072137890046003445234654022595381112470310414268982241370165405372116917913807511337010272906539075208349284473284745815112332849640832880890425076722254749142085194248978373405441156042736043495810272701417385592129901281487380996828760666505557111751556732404214135843511432984610280187361410685760614043728301142337755172970213085683596008287058039547406444081887915671075374356741389761004552206772394249336418357242332826472895452544879739216155914152784251028937387527617842497568578563990808813457915706710066529548445873831763398922028750900493846701688907132179320906901853175956355385435567332241520378671463255319256695223267035280789731853091603373264304515247241947615844415155575061783628157386242083823793905941508794198072522146067471610946977978114291303692337703296847951342917503872799873929551102515232007746624798546902806700604850308273071998574067901573985529226718985087341745340652807140261210942812048709654638516616649290327157160159656325594068372763907318067200448620266209429101636331716143605179793332018807342502046734422535854176340975441194414582258029403119527052520000245055175954958134189291985280860388722825667604850319936983899933879055940035275038088815433926169192080381566540288776020577899568380071052201560917191727340176466131886191068715134469484106447950457216266909480472254077210668676374736197019955304440975694565115012765152651722135894315600376698136668060412017840413501059732624125572918720715428235014072513116475373655999554197684121772703769934204669742348089453129980887174218459692849175279040871155720699470193459594323652900439452894082894123294178388269812123932485890825631158946633384378125371911255756190255821997802139615939359430278364604731435262154300612591403319486742533669945637342024289601066555334118627184330500779884915711399207109699505918540460381894708716934905482665838756936560581448785535277776980950597956522604034113553093323888198455545098503504683048827878877973147449390326667034244564949359146968463119753092361397213254382144619415875610564388380056289773927397532943413056612170452851472917752186612858963855414849803313956193363787325383116782076077421441891550593650772543217954461790269864991335880505667082792206348114838565862304528898423931485482267627419510556908978844498594928661450992283313527749284107890502902643168133335211343745730618242071682191595251269755514962738478879143411676019870800088869339016802566550027869169137142804609528788612200529527390004379345524084026993535688057915816040499593862744059573795161505400597065356138459085163537374350606250490156728012740542736388937494379061474055815274111654234367061265816493860440545827051425875255113333824240740335824046057694141961330240695475066300065035041797167666851368654777613479280525714134054437839108366977317159053425894227662505067522771912478728625253583123604395810299246820206683852317947535128976426927274284581669977074412375662791052792138356536122278071613875521519531561850718287295608521563600962043154758321010733468220953039810205072657958826730446710416662546849219685081810671610349207482369693107086252218792502434168449745368917651639316059810925901674496109813241813450591961582600368371295915641093385354258803673084098738989338792410702338985273734632219500030120472258107479857916150750418084142079914667906706737706169883170372736084297897700648638560189943018906867804807619677768210208237190803102114282199899985805398163110515357019031293512647753066380197920194177370888194168523760436486056532738223875163285958597131242996376693862253343099616718065617717572057656002203709314246538243432611140665853040457714764151995155294888701085074352199717772410449847420640832617348207644085034792833420248540897851827033664603225475560082705128029677409770278989807099138501598035716487200295025461891975122686666567611898304943561191891828374635062769051925868977868608023031271856133710613378540072429435182200140464504609304903481228993996730522874828053108258366558240046517891496980726674095301496365855092310385958916948790092598505490722428936392818323894648634165748355837534491720159959557874249065824025792814429559300224679703112284178647744710431758083056320173798855503169508912446657610722701781846452226686442769284264157989585062341772585608460744950891469146282962889783202699004640967750271837157805933610207429209479434773111728017316081516935200330849957971145811374985599378661518992226087078091806770689197188949791178716303638755743250201834031895269308094182493462766760997802610564307461812868479317320955578830367833510331049439653851051097217102384511984185884597891936244190427964866288655635852926627669739115356035646154315471881973250874243933146063020190419717820725255445920460505129078457129669855638201660803343487258224557639659905266451150032545139158991543516166648114120653268376614981354794633376892982965342008078953767044956961090310349680363156475328678964644686667292313327264932977608509469133087150260322777810400435798522642519884965257954780346746746913598755269030230836536734600431909826423277735671414982000862142035962845287058938550557077070122775189808712254012990165257202947324241658509405639573167156371813835558815521500161048492496322557973927267421881493830770915391470759246056939304334387104050648174216897998856239620602558976258588640729365427679507297312907948116706820675979677536780804823665163697027935326022676767752223077357263630861756222714311050580270655408656534790326783338756610303053951981246516653201255210640037085748372890303067864373759655273596453509408004132185180741116762103580497304778657549444433218089455788007353924725706238822839239175399677086350019648566218079257042573109071384780163666587553472110550661009498607328200331334496224069327910902754134742673581747988427929034675934164885371887254643829128558204417753519192326291742021058384994571363145115612274986779840506703488071783533633066893990631814634491550219385863374815259608799593772881032653371442759479993649656838346632556408844783242410601886290054273621688550564420172917579026479433594115812752831009535845520636391870673304595354705477690407616997972422958193015015740707816197326801363265054554574081862896541731322705665358847610886218043023385967415215847143483814434632311269437833110704125550679469933011284696719242114757232223797878538890314119094442590578727197627805202183691268645225481009642712134169205872923608333902304808849501929093790894471475338402926247519210141396447756631866582718699410949982642351707440812795206798928615170296056843884866384852947276469978225557580140449200403770549371156747090668797966117467426817069104008517872825567827167622700076659178448729199779449398328147255029511639587198144242623543285418655424329273425311172498411617578766069567576237358969529289783209178524998985775962206577806739321447501053521295592428562159669025427228412048998937334423129040250595447104591526415437816784708025760366494190734069144508095283043597802832192385251811881516493887070515853109517673118562485769093607021681968379111513690389841504722103201449132572319799437724845569001450172127763734922096340968419175381748704683956594207969600205689436053490768336002182338860307767233553261789915957056594019989852982253989341762910243403800588921210221891626379601930273399311032892242480303184173805936726772743379273816025343279574190176860777720362458209868285514720076806214349215404726866854182836985371698037165798214182364892456455912174323200376296788987576862810624671270239192823748350474040523443024112530451662352509492803965755507669347089153272993856084482706800675837597112168300613025621878228456237900423024871128520379555605062014807616759102028124300716586765510550048537759753348300467220176190161107216856480294693072728008117990604321666856339421523796031012088472294056702141704524757790261724279698939881709815104608320896033687951083411694463220793671293602672619925628732572093364319185629130578512623693511383194054734994745418448286791878622619285006594997201331496886008018553600532457073128360058138556275307028759464375049674169405412738436482226644963181135561880710706564148013809125358705431952491724919298338514469674994931330325797244408810252083418119470883511639269253085045500658165529811237184234243483784761773015328121284947370760448280882854335260695396578111746857495228801586727998316537800313880478982337061680483531732421554464534010366718250726175705714413074620631807121919474008326183834285806291432235738446531324708654685412309963407772308460194307949855555124861333133619300775990294546685141788471490083993425881614853377888162931442436628899180791262351032061736791129213320459655257270206582588193636465333497379119964455887037066018571642633393307239033080628307407907252145654207191372655719225876586581558269551423714670928208431749841845081337774760410106996175591320606871167666239707197834880691673450777150512881538691199755495029776341182970840501878685759544124710066534921121976445004212580661424776391270276045380224724397737078916825904910731183801738896743851870839259565248686261929553096463158850776023995414766815528556820453469091703038959995692237349376025065290918193375226096844494003134111548270034874091470837351760109653246559706368545195114077319220330332623179265167840607020482013630491208081767082223810543415125234052383401213244600372816866298585493317467760736576753793128350631232597729219776716675841187010820564311019240914541508695188034057392569377172242030682762271271423014057066886597418918172089215331228076342853785608567805386623579300810494423875606806235416446699788077123006803208689762667211191066183174798849611660117591228928427168063185778632557509585898753556049813016170206210178983616828370339282877701303957133822213736527642329477405925801626379551649455898767885621172292864840714632806087410633377909410196758047074576034587251892620348213834655308365914032269843450246324516892110773387756048659122423572277749370945722654468012405924684538171008528588532919649060623231534771105253934028495514357311430968040615917103071709759799026067418064335231966511250479612480344227609424038874026483340593881061249785111425521174781769570311782011237293713605145948733610487533864741548017021410171346148285181381871507941537040073298679909943851159617618662857755826798070882581720960043438295294324743378829930787186426457050156664986065523733706963157409160892683580314397440982389654402801046119806601181660154408672402614288937178248154221442039744192815019794967044820725116341891316294398202138560320716847676113126967418449677493609921693442931681893534551667227465192120484212435204923661511084927062577779889468184127862535998463054063152584924089594950541607350432857963771277912329913868891399837689488930786988946200782851340831387934769349222611130513069834735136711367656490752007373850130379310167294227765411371328956014311580210261386305410035840164617835614604342489704077112322996255500002688537384703832153784432366691854209131290821804561027959456527948330846488989799455653134548640088962316098118549686250944479660753144538250615568870148608596907885438140232222685500141808760180896646725307232177104004974942525490284663932794975591424295641307248397249218716109318732510963576361590077319263264603330404445758546441199219203502142507267458789939249673812130532092959652523213740903889388773982487987816995639732920842022781789013664128691169992141603539871750337745021440891678123468562620696972446293013555411956382637941996168809355689607050317922701822123342562769993849605004767218307648385114893856889259172289278420446626986560659406658157121037844874589602317949525525060101416570290000362875142587084079222115644391209274123000552876166209777951384502464159471553556766230261079339285678343675665029692715405725008946625647371716595147043050595684288407110541402052870777823108940415198974852558415158383058575188807313672195460945672475394829973188958519142031564507146527214692084420335171979765987008184994752185261767103967780533997607590552785565440262337986616835589154883266312282101775857430173522361060932281462002110710484102691583306439697367152249258343938661949313162435869362812962754486202091705329459760740804115837997427275627808340902046362646209982169476458159530797489833033547469366370565900764796938663320996671846728689115774899380093024730597956120985467567662309273121923123307572610672821683413757337374130643169903451893902320682270609375601288954003030668738452489593691112062094416550063643882487165132425894777397783326294877409509445264611187675431254578980831651371772850247651661831861536736469710694987293019518561394532727540755466489238308979526356028001399635126023138305276110301311739900409681555608143167875507759031322022397822006813159847054776573624938187648592060734652275985485421305113556693429844883521528358779206953529539259589392849939746728388773450458433666207004920307390278062889856180051634048515780842290227299153761551494187864306529217701040477368625316045618091957151017093844501690985963149826795368277460576435612732369536325920009694390957841261602059101151567579310917398407151620935079658055141441377569417542575000043736580267286996213519533475922490279431356335116349107149584448643021111945056074561336371041418564699662413987494070128410665908445548957160854291243172570555055810792875700148595712524588429422682278698328362027839243925703544722192355088439517689311838935345273587467699932792839978750191512687615209278432825887630292699312716691572982914643391426111974498725022819840657270354023789375474247375778618957382562730051887396159181364103410090496015680933403438613152051482250088084859825136580784446556615078117133464504408108003520051125858720840994078202521041568555680619476143792739519033668206984264446389226804973102332970937693160973516090807937793960450607936277221305471667198027818056765516954367647408200532566857933383134348879124327370175629687352843363568177680007587876904782573023497678096462695177190935050968585685065402339050604209303797237739807373364226450229487860849786288800411525915585954178162094732383244335424591022185098027003913909166764248772765116107228440466060407854367049961423821052984793472294882317351775347665805963294261291651632727279625977357862561785513401108874808390174187885928793305779729238220160745997294596948437508133729224009737394235045038073980158316229850669373003346480111155181153160093082073765791672268822990197076310713860434143404326655654963204777068180989701892006472250519137700593805142542582775188924107955683139475218348584967533892569996959717803549751199336425723907081166741942330019408395379991612438696455462508283168807260104802431746559664854070521743427366557094440049602425894496775022649181640781113117087949242958702244463889335357556120230701465260002196190803270591790492777199639698625375321319600490726874088110629332509168996285654686721537510372461326375637216268376177827683414934988273262164744362296707508145867535490461428807304519804480241750681014767816912892875694163127146269561924654219718225708220759399528778486773853610250159838102612892602029951513004719565365062572265096677588936372312438657688141109373821841679211129578767953855254784197031334427621016368083929392540633068181655729385226440850754981809403607310944780634949617149943013008539754102093958070517892775078425025732497583328325725590234713204141301551394904270438846858447467569831473499920520431551723079266280999483096112167556017968831309265439056192297680578288216456999365570190628417093546164963266524507246843578869522978799344006565144108376440300702737813512005572355071305310093420319594965991659753933653971759408506070285047008615333394396051271088787359308962596282185666126413181584999899360555395824275272805328078812470103421047539361210265629978321896836910169346735287200960744188422079643230549717340888705239625827227446275486510190946933609413621265874342576880317100579561850628600548305410537455177172839120889903878968419672683544231052480721956304476099661358735209261243112907369892192345198252870457036717796590703262788144856926415671091541674158828809193285154373918219148792049613924701388279813370756585887887895395841962334533216404911777887657041408198525527355346477084576223729799847439792318346825990074153038972773526678410826247603087327746300564856978507503074535221939790548511375780189566130545937027087753505437935755816948506309201859257968599381671437756531169808304486203444564653498776553483358037442906088523120775704826858444408487045776901714666104616325303991806758001832578477806214566133033690151568201149332526896421099207443639915821673225371712227493559478533994204975865536386588696859888070477719155236202691941798654572399918766634430588259599138573612117102196346209089682784262683959085455867736721037849448255019053021243245284823782052545757491476855640045471075268876144516952557590559759211925692338531272242678246176320273153316642588968185925917568889350731430556508888287535500756527017987367956034996632877235680340548299216142363584868712287426083335205713148584227129579074680010737486808960873636614216956754044283964220451977188871691038642299122183803960890595477490460362152778319976269943456038297016169367823953481612787426831281815636735049129541280471849223841058428890084962015056820886640534972712494117114126810080325349436619115121042767650878819955218091160765169046830237622383610925668921824117654100050918263439026269949204597620406794410292100435301417322581183299647194179448363439682684562911468454518871400323528690027881850435290017748256765973712710395892208102170558222461906819294228757880770548687356225867426818648514508356414645737675565573507541780749567417305076017268227484885480276911589017223376986274658557457429875444261515663970423701325246360348325609555634603737294069677748822736839340809419701678442371625244525990020963785040913480788215392119776290079986675013099876390386112712233466478807699654087611430723091679880873064768370380548115426271323792670109644308364749045895879743251907243917779244624163637182033586698690435245346495519869330118868965947173991752665451428701879173806543312348684936179707171810414335445969141200195099561632536563402069605462400836445474010600332415307382991282146628926664822622199547971086665357436354038033813116209342779633801841861816776751728512646430640888862795922184505161458566291390536601175006080840927004909173055302521012918198972290341544380435854787448205815390445819468133985926163660337195427187215622776832878608828485387876440342324643165405498626774180410504544893286184023714633526625148375793802143391286293375489591409965548061002530451257176123078293542576098516719526392344556362082052681917979194092084996695296284450688186976739019523339825406163981696310404690717202066281306400351827947299034283173520304832398827808196251977274589037268140307644818326565014846586266235228797812944680741854851332418694537150190394668384603997116815910634439972874960404862227002323138593466881809589932865573644500790715676368862996630727607374189643249038201177581529729609306814871534372139564832091032587252167396604614161199562733501264026389916514683121826889719564080703480471670602769245551839676308436567216491941575047939841682339778977804234069527716298053312678864885090726286081905023073795551870045893987348041152521008606995193462527899871964376530600552059973899737896488925425704206591609189649363515972830228567334530923285371996316301565179256860993770812270088487991350483123988036874448762336965900854415613508234510746815878738358547846063596292745409338465415779327002741910148453784623040342731086095071045254512447697276735161599713455893845884604951836517723860523639948174306464402606491308812577157935441069948657839061394039400281874859224617694918144963104824984208744926013698210811020357691716260951896922066082721437256255206689117420482044628370644080145950755537871412467563113142905431416818547864255608246907016383126589679357375124684351775927570575266494547291179542541151944129538402417682533984387374353403809453463412758884483236898293401011528513178187183133392822498090966540444380217610186790456547706617666405403597311060382229672243064569833288641096158792352131306719335971810476706586776157542886494833644119265430086664616213020857297519580391825636286575064524310478972121468784480596796442678118482757027014494523610336221942218980480410532536895096196604344842333769328714718855866187033436613810124063504690747182123304502450104574081500243412739590898565219338824277363671914144939506450875972157923530858843259628864134258635066039085386265015528925327465550175413418235239135654129295773346884896739558328010699542895282104022666158651934283614689237474807245943664092748222603536958309055193450389481677449307033468876416953796985339167774612690814191214174850369910570265838205147449039594343589137560720923627803918046709449073695700773000292513433399911921887795734902679401119756882728708941001529935967915410336971260822035231065743670714561322653899217978911960002208965071337800191907658486613362863839531560100288495068256636213985871724337392866381367458998586346935773479624703073516964559963758393161513593399753558897852529438332402279632651846556221142212537285667806461192723887102231659213653819498583575048735730471894696836198081959128430916614607191187236369841830953921427992969513237080001094359068681843682354059908391788462014664570154785503293645457984622968465778102086197281884379696994020443738846009808172278126641476598325296982644215217441493553378553429064443520566752492080749595825636475669351457444115993322670962834518661133540942486456929770643080878849541895111185746484069058292148587520991166243528805715841153744687509099778027500227373490985097906014439193663819231541388967167774725065485010621664460317830346771818225434507394310446730678912283855944732495820432011622632956904123044415974460033710983451387371991383719098315212993119384444383445233242221257867952201330946749189381295566171834439087227526646833294474119714331975011060419177115873265255486884091837964207025088936550208070475541830735380637188616731491185008199502355034373074909153256464062551499922913721631437293011912454394268945085967425957503557064301465911668863804428416055005653719433665681218642532614206628747079432925693143296051396612510921871388872988679445807368180043404812004504514965157851282426762327628842988747756473200135003846893130456104460328432650727037094138005291639465856290504289411198251047705098178171327708170470721687853984399698461926024864512104955511881781623628396374532812912139450991369452054846154284290670820286117316337325442713202570880421522348594665741437879877574287007019971658581185540773341619227155315265127238818431086374395741028657328397639935556343273424462201385742978545101796478017346854834456626304090337875566474882329464056512180162603162409743808379549699389007060522250565985321035861156542992986236786360343035169811179929211273049470477801710413648982739134218479397699453697112381701240396414655123482237476212501471926107731061760828674797798612029717666851752229731868524345204453440698304653333524760408432003324365068005125799621053014795017983327514609284510551949706123941730679233290746699107286634992929625795061888553441969324084726222877784038681303639603196829098859118721616318104410226845783965640358553664840023530841132492302070549986386228621465890446728569635446327738511239486401511738328429980003692502240785670485901109076669917463503698626592169858698698385969753596338532843810445773333345962003920613268817279650014399448474646822715749279277781311244849567922108621771149180327540851666346502544473353114400369193750138534091329739245488206797181465208585714363356550646200995448329720872027109041002708686879347926630727070646786833847470238731804775385398307524232871818389414922658509815387394179703191262581919945854033703011994460770961672017561150003313814575043656401550412997162066723088782284107318316674423817519542895649427640298442268094482717679494769541104112131523369534859958030829083766532830014545381600411897662011660486969546243197467149710621465020866424602062709380190662111521231824378887296738490314751181479704917335074783761051757178197316100980395523910008350883399757880446569930005074754253568542930186261395511034109920204672888864957272139644121267826036781237236729645808582069948364683343461800425327123301929251023357569050910038234525264891795890210396511996506160689160268836152330631070906546599627047816006534210041968206757054937425169084488966386013962865289819877952374354232159639949964995083633388038150234555829534015139338598485602577051515225639873795285824199942544070471705513142245002176731765827037733985870593008026002578977882632557698330375368425634326037908490143872841280121015803736956923151745984665791476123654116485600443241971033506823848510404950704385107112894396253617722572598915454458187977493048873032701521734404142684576372867028263335501971309900803393367457518990753589884476354595335706189462404008761771126846488942043324899387485392940539856403335153985557552543413514616630815128020769060605106021138257065901762381592942928137130289887313824600824837779822325035323597360125283905438619106235471602893513163985696385202576906751430394500179534652788578033016160991223011332599442378720876572587175114827185400978961438585012480134358612999717818180110551381824291143981475268098273886724237880314030376236220464509715658711603343595186273099224978415014299434640340232098215940955189147289127217358073343271258818960511147934898091033663406985094163354119505543627308334789987475606831211765384046101880584550108929557998757759112859245045805044888636996344987683886627585337938165719571738540009360776277351004187182258790770392006385540095513773483442106955143298927158882643577085408812668259207212507181094762335639217032648832062875539254458546828073093312338346027835351998057216325276146238566044237259005654221719380591276465697578661131769898878248573068391642293701704979801468990186235739625730914430138229451958543121551674735137032378836722275671548832465426411824025836173352718396404939885980598069931545031363374658511281546350645492069517566670771405749360762679896009670996108382578166879734201426525338176876709938176896770828529151112208674146884661825100569228265168008815301408278256066334531705982021244244124589693020575162100331457793229943029897240364938443862688241470050937130371147226391677230115248282286319513834833814635983125535262038797609079265713376472171774691394037000722671795261785576639459816152334187043408093784664158079697066552647890502318180526402564717045936123603647161049457999987932617940634396521675314059307001157372537244657186986993651502473487219695380819751546912939783387445914184850376311955777018568478567481959982214271120455912734544919954228196439811576975256393301329569715491194610519801276859821175135496394270131151227797615754826357547614475783547833225383306487470361329975081014996358632370566171688665221501437539767962544183184696584474881630610144145240084741047180674254608210724601235407960655674662660068046826025563150381202296143599120499955626822996530868903909230737647309989344980293919219042785249466306420707461145664457559968183203890588862605793369791803581170203557724940003387798990757005143403695947946264805507274837017093292843913977964971085339539011629034853206753629441225384349633564450040747108898327238904557569108734632696549774292176188315574780231070148259736874769249365827755494562587939311494009467718063978272139885850701383774739188818756447597437534701903346650119898748029613602516645910157855873139922838229995112514458531105031181746979776836255122694592202078252201956721734802922388924239187353967786000838775398011464727614398297887952230442405801574777220149282590229474178905141836735976812230995539657731919512402104196152332880732403445014370289192096064823034170308216750299745703800280374942167416554124305145967153274142510256368936362943183915959259969151836385976388126150561448057365430392896585124067192833403489709211461941102789590222874342098844888836251689718594350803925644276214507020296534761403147124892895369473783263832128165300570837189737948307248203140411219265854579944904668421620159908668310478383643191933279644592135622497139009411296201612010625078820349084630835903906153434447726540433271997663005869767654571767038813038262918245954947723744527754138294560924515135214220294002001562285575908709371014032534679433205822415844474246176027085106658504654926298885367692800153776847856064379905658296740459740453598474632912442427438407088881789448452965335904753787052279171196334377464288108929992239412181772609243194763643746494487362895823175055293481371569680868665347563328943014737443639936524706309601732790618609252544055152859712402416881594660310106783959534384472761411039375835883368559841657231507526308375975724093025493950460745616923431442906691074642957686039154184879226772825755875840256098386888370015515093550911740884499837520392924173006829849075187079233867693550777999315315170060128794859769958427122098433577598286550609377750665933054900513763839877063576870613953584744170202937266745922464161722783991010000165235136674917559454042163017688269258178827726981511848947540581496400099997760871813478306735647144421205110455264278601245260656554024942480987028301292731079346330760785708559020815899461235953226939751384647428128867430180874469359537045912047386363471178428131432810878119376147650723467210729001571864759800107873949689176116466164193310607987851367610356081136618504395909419602497818345311111769867756816274334404744024252222004874924666376493203112256228046886376281857587523632868583444302966450689476335149576071946766933782368098194772763098983170821144883456567628514355668686157597497754037560336419684084445970812246991876585084701225600747571840416571145878330595717494839927788463022065918640903683900458519172305634494545233284407180165236708838524469633605603622535053741774445918072744252709769544397198595226856013964121881313679895041555211384058165412593986123292002075508764049570716410441851298285704066324629619577062991796951310416296564533059006167318709934627634073256091163498299213296388220966861670423849449486238278997767894864612938144288246697546575529175798666056066067367925054858441007865847545238521932871719512307367339261551160371275920132142544532677000887450684525744694830465079123986118198208290680103085991438731254585004352134140810942473613287781871356405576158628172585481167474163120287834446257433304174454616616738315737251420443532055328615517801959154192484858810412185059055552299008169959042532534181456820018106641436122757519566403548428278484613919428853991093694989060607319270140338591309716970986895856333869147382506571009219823019919580948010597131632374476155233827315269273862433419035146801693876361491970951474545059696506195164175831880732743898284200068972448740522799890415295523449715277849263464622943530616009904709785877577251517815850585552614278112522677678486570965599879798300534444574741991695060537761357315733591446615768809617303807662296981863896634714130384325329608273870781504658589729730878856510984640495888137055532467796390833696236114393692009358149127195156826209658920598317789783396043284527545793257947184794737938894043354952793168841263376453118216286406163396979823529986797015882017228713005336410197844818779573701882132083355352575292364792582432788865492174374959903826932129981338647029231189994210607099796646090147222156736150115988026094535219993832795443183865854951943667040056952854960963850402254656925111228640037924726232710440122093290028383753871786747611850851858736188511330218800186216102025130572759337648981084827489977930270513740709817773142705792594605471880780434460869112135756361053611293070482585164159876654329469559504474222373353318588388282962510503197228233899507529557537548303211649822562682389162344561603495879103789205534195686289334673229306182368691148968611420339499826767584134236307678718541972681450306331981184502654561925296517685935112752858129203270164283299152754552992851924457649787126338148095862322355526738693032004079364582239015142848860234548957561778625938577528884999987913814212678071564589486496825320458796183721138203989812497086357318307878320811907276462240408659440831692300656433894801838841792049427939176047308960808358754090713633502806703876027216225454843032498506575571714851481157803573562452078482618227351733593066960147488141849918639828766573472002863486784913837999436934560698446021615534068276320682296099928181686989949020401915694535008801984465537162655726198592526059923317022599769200595195131695394637348320187627653941464786374297611611390885097201143550201104819348041864948855497919934069447073188861007553377393574207130793534339057889538393749006760879738460886945673034598126694261723834743548279544148451913234552813774962321408757835559692202350247080953842757933961943981909042981877392788144514794288955016759359585923996901891990378641442788377334663252343423178108786888094249417876440387946450684388507197374670704870921074518560572793718431713067204003032684233739320919854271244160050798433495362158277495687330333260404671717663088453376205111866148172786800046251297564640956642617073816024077951553471085245231374623636207726471294859127899831928284591231558375570862128039791563877709288636189721742139402174211141424313196869085404097010617897331773099000806130973727787786603699633205889530745171503381781922540259512610896318612174105082369813839585213975555752053344303942515662838982669052808475101641831003251801340867139891358795853025422577674659371150046553238503945446766029850886341084282687498124364129070605632362706869826487983336448248291913463635807497154739578216261343709398163870457026260236649313050828299520897250412436575910194109132563127027150070718896096268176878121261250960631233884870825503212129163141681080411558632707587242076765359614018767311524942827804983741726059290839986932786071369431498439763677669030003839484983939157974643753578522138697638977223186171025523459172102705026817752466119643731457663255538018823927897573592588673076945707738978004659594022169357315627987747314580225359694282645364491631119517372982131464650974356787030017010657553853321522735499411971537987326128125393928407061462288155430830386158211363721205653389973070230644448907970578495711107655177575220992430028934579476934163495599276976158811582395217870858681519514704320786709444261439800859760515156859053516703181496862485446557090194047691958749283341405555118781807717765192141245352032359423383345021272905813185617468959718183176278538729029287451206943807399252052827212143040662175907231841910174695788537962671575167593748668637759812067299597532618054348375792949535698105725623818252045590060912957091065429458427077169676506010733807336271766270227420737010418971048022443972388540430191916810725047896940318269303495481827603644545033041402911948907376745106352530051854901140362925916374970109719506161782104046252979039880679721175066674268012243915529389093265759850343410811831120498605143425606270209431389707560576903884462560449824629205931216010374303153339642662051183935813457084443281841763682882311548481874147223288991604783095470497960995227842788480111450817726358395737533853091773545945134983618714535749551861961391235713430903313192881444780227073527796449905623129018516730367935383900390479314676793738984603695737982582943471843231474893581999952650858235152792374504081930155280220703576026365171565636277511759657948542333661072543187542559859434441810478462762532002571295975835436122925939074373993375323485763941822208097001031433939490446781367149037518633516044001326816251028182401508394173528549700905293360009736384173628962720538694674489507440819526696253102336431761858960527926835334701150775349827500066037702922950802572825465246863732092328934230949732700659727547113162844014975904238184551057977878302782378259842355085500972308033144650448623566890814825415095413919313479261743979268051749154963717471961764249020395077854062740801893047153803467567519598583721941043114363274911198806019118676479948077027720428679041327360019504074241185510142510581292336297335924040095583258535479279189711667402873897691024976747437172783412180361584028351661803216838352912592653322414406067294330620697662903601358423044646690276421591532559968158081508578832437107461488057147376054310240343392412070971542007901333818300861729749738897070037719060725977859267301366096976378186589803338978985684251483355509778865608408232084613254760377196619995893145894872443038053030561737794423440567673920967594035968421607421830570021708070389664242232303137254739956245675355404597024567794552390272123816224915823578949616786345607741453758042012067562024152091202938654895141283767860557797777496819328141320013750299735836608306231669020434987689560918127753462477257066460272519761886660356063441975864922399335771190151174956589630552913032300417776824256421785182983313363524169261654508877143419622044338145157661521758753849151874870886265372030939387325204902834000928004428405548363177022334792888289575135600913050183032935728714488864900646224849386476769685182610381640874876013655231789736504730209138207024918409154865484740270609625181796082583936972554752474305356393199833247293301898510854036200214938258743186679997512251119625039613653045884435232929375584184168002188141338002039548455216281145234099042617528768128566224246967371934077572315851325104580423198778493568676728421730899212358432428074473536148392811515701060928115860718731634162013171742092042655151152465182962429884148442246940030717581925859446160427419149851717851428570833081968905329517650095204711185269643486518760540810751170956132909923234889105798389180980375458519577464638441200981284820261141298657606432746764549605042766147340738800130137603083768376072052569425766148753127475433707913799477038666446841721705043130167464568450428834400511144447940301258321264117505133207859973345774014791325984921320431068083377212001044212801651303245620403333057333129944859755852078648382764717275922483950532165057413292766863891065828194142342252284627935590762072722176531455142510659264877674180663557143456662738022271778388065418936326282651744331772530376927064515833287519879736081912199115032101117700214959457287622827852244305364134427360405748642038964653993638628905011953024716464482764034101996332148495379919813498518164604398320493193257491863924582754855289172253925700834986469151980809494127207198368581161892802069743933849959232417762592178134334092751976348400959919434940897673918647930153540902973631925091633953980764053844223534715957161742069206540874991113678580626639307902812354015160851538406477392711213399084214978850008646002720427814046182173092223311388248889790806971510090741468949860812958371479233952105081960462216695648965713868041753060489715544969249567412529068867582000615877847989445348897255813040204979253140152273901649241414886989133175236550982683696584178902035430289656704301249243853838438509836975930954325222164420383756462557896732012249332316187881422587511252766655693131732412537443050912607051029536265933582554875532373377935537793774051773850679086192094457737127902753588929195539616674266919134956569807565417794721444756646574184493164523936532071576715775033022653264884750487419425058971393133651032977747803465168630187548957288706144854741194467758123913322284494375370903143737648379300394203339812021490576084957856000084882051799762135851871039157272961962021610482266817398199048489409439905532171661127666382788576154333613755324634140531234595548700289484353869582315309863622482862514092830295914946590447596995260040390783031532630225220425685737100979081299475592706904806229336607880874396309485649266079019535299846895343425229212802291064166453530924788809585369234793009848210800411219573722671946710304091183075397418242044614996526282149140613329975815946138345073525293938574487434884012860923066697017206993965267956373035631903203242482745266065283046175957160459710917049479824079889979199861987587970046656907043024813306883930480907281563369948477071603441911222901153865541722865476340025659735604184564221466314200647210257486522959802470867124262144909974930446161308924807656385560106586072609149875297489326875074234345246499203677494820668755466346834008931912197322579861075205191975502676081217440562035745646469280904224557873312574229649652253873480030461090341669601828652423187713068898289563705875054153246212917753166121695699176694856516297975347103868117508689719541491312090630718434549249116562050431169159934015604247601286557760737582809612306672753586095239999580925448447083131972437393155678446661741851704710278252538008313261011324415982910136193192538999538702507935382683548988471791085158576893489643948331418044425590486338456464445474986195787231562545695731889592030375244701830887239477610417302406405326777889521547437188403808755372029476466982039023578408963207194496522407212928188466041941982667855967377761101873318611248068038817791075004266521292908923380324134468141651740655737859311171965148296773722145100266708391079043555164540314750490677983882700956952873827631600083843740448404741092533834307959543988297054615127571053206655141133999693778165641684328400627401052642988190565291642805525245028230886004013821987223460760734731554877776998408962544799495530283940234543977259379258499521120158455781629815389680942532056252454932075441026750623533259760162184891406103753548669494956165147319954129289896946422942791478967866154348667768367103617821991542946924425598701503016246541653047353675012109291033951348587609034627850409962827835551648619516788479190021598668426870348061363458326409057147319582938975105692960567698028397016754170588464620585594303817447454978041782688295327505867503464011396669394836817400279349836447355983960841496441068629132190169948726670758111047990688057957503743479322060623048026693856455927341923471067203968554376503482505172457932249906518663238706075120510123583373581469224017332323156848869051434468497607026206105139318321887055788631458209620277730785061606345746303658307045509195528973317372985528501255768230636939409111426804122538047449229463114963752708592728609878134551799190851380935032004898620964772994027196255257663139647537695881442795194195703799186894760287547924711182533601121133310987196688729727828196192216014033229813727058705783067875885606217458500451209767161332122879485035441232716632952027265964456193258353580900035761018145782884567314196717591154598838660445446339194188817340283624914857355373056644039193799393799420133903619298190529393553395419487183000402255028919902504887228664963532117416840239873778199002591673648699269324277792877047762977868019800211595350838525887426200545185652731763487330991961055420031015167517655738991193208378125895560980174985163741024513009064797942123433477904208535493363779954990512978780286262565758851581419014659129710829403740026890434199070882087794134055517081753259061666293467565694823496978630423653651025697968043782918972838437949960641781573030427479750306933170626412452938695676054163467218228812183662165223592626362565701131329508362652689478012836927614716980854148221019021462092049285687122307468983582472202107412883576164886476817558589840255388636130684656158729699181962734422200078013876025101027656770290025944844907368522289458604783903527339452064655824338578189144328550159643371493740023615593363812969830415537084408515178238342988951255442130627509898663373068794404631136400157464538129899559300452801143421105225763278093256051268894661928699477104837294005106201022830690191265937124594310432772928300525815542901248774749512150791867977911618901473197345857576669829604425249899600439164879535794913877703536248196313186795585766802733664223573302396360996796263464701406681892201260337589776048253574187446087470898372454474029863161877911782175171686314446592773775001431952570151343644521326341941440701269385714913137369788204054499634898679796380808688852658843646191365270059372492202096151742525421078989834940467517027200068785528316050782453596328509804560349341034411175362187404312414794535862393218426484174989562149214648380524802966343124478797116823148077366233534781851018234210642168320697299019292698040002323492632113255154700186637677320865041103820034674792859826173572793471512105392011982901890330975147038424086025516446811329970431505689917572126853592928169381789548381567815481808930446257574352608823961581634245186418217490359526934735933353415001808888377649035502019718717599946230524298434505271750437317267585179738261439965129492979185002561244370036984933232048383005500740820682642507637097174077753248488297325204966411945420689095474331075356995610619890953442231594580365744087885911993134969574534973060374272191471447454910309872883065028895315267393256632664396882874755812246269611505187597405672088027599015193950563160445274850558017499639609289547864303138258081313388870483880536871770590208110157700723147205707585567445345154470633058556476382116988851238094200232148702687148723567919437512369784323842330796789588371871132124636536905560733063431453863452967379689479243155947047781480691465917806750822081489854976222175257501949863193282114299697326932789951068417038269864478532896472114615500190524006249641538566429402187331133517374596660894460334489788448506051719753451949543691206785039071388084598038955549096492682947042985505246589162356141089225516333383199018471906506512578637696459915679774182049477747118388937303847224906408239267325082724134074416303463478411190534023213544106347569420037960228887809185435129590744748175132399326054113853194154402157316005100825873792435533667387940783202465105941591533508371632893420227375846530900050952746394857844821972891219588894559584409902502384774367220059420473593963975171931884483902105063488474035780173108684712290547637895895974549330567037116592932718039780710590980701245597864184081158890574326418698485670350741561353626471210230116685538385205897270782135039109286124189449709271725089195253215606593586979669148565661287304030539618290214455261827518722824091318422757045106252962571341201221834610992957224372778921572847734275903335917841042498529056745606854146929234339465894945416919871505004296726816709936780068382429076644300366976412231261196412014261769061412042936870716379934105490557428675933832821115741858019237943512514951665814095656306982990547690143944410460420121962216392276001781436306500349573921414115394375641624732645468313634443542597055744705551227327338196753602070750534296628808009100277373218039772913527244953804602987428234562227958957109956727012272923643016585139082019883762962488249634260289129652645990455203946917843888571948930501100327413056598702486505608696282629955368369988115597224566460600547404631602212740515576278472743958639516866689105036084656005950986636476987075558306954558647058339701270631715411224692861246083527861006624407170023792532584220435633128935794940538423263790687834190128459688678375330759877061372322081201981807314408859110423811290845940714411651036022516845985266692753611065792482708296524507599924541729929541518607155938893309509864549952900368227685125336512815889044246182539025552871031893372177598836434854461343589957914360503414598252613731081130512595924794005880713003018418430321540524173526054082236934909767285605399491475781610747980848394465095872974364357678925065743883059959388318158043601141306336779851822828712671114790048403302020095563466353583540133170824011156862079072348802025835234582577459292769808547175800278503909729495818833840996535231268087972936133672287578001412684996802458181035668734603592771729096264462602903161763398925758642937127541140225692876587317738485954755243545106373649498354927611499230667427574773728293282073623688775223621433486031134666820081120921614555678158703867669587930662776207297058300924873389553837489186441966999034005586195276726034631780940635717430407496286346852688351883261280791772033064622930085729331085607067960371785091046576650647785824622336701005355812049576642161418881117858640632503243872128021319735086988695920079203873433183651598725936092741529308807304074225784722782107300430091117024799053812253560960070760927225926971575884616305967392945260897129104191611624945215806334802191486625608904582130807232618036310723531959067455453688976565205680778004784087895306085155759343448361102171365093281274289721979930196382396164458406090884753577950796170119005216568101305875970173775097104920033118325585461803558652866911339500673525152602942525946283564882725879950369142623735467519029345388271364808243329039599198974044030233126758067733512802744150525301391483372499858344657105013874411485480644266511968892825066508821587673067597471827766741224401954683468218685929783745832985097255308546480117438463197904560052407092745059994825233260490304336603642389542836034901974484485471389363526385242046452489562886675179843045668330797556901867840353453449194449683976274331703839002019574820805247315619585160289299022805085534364373843789479050880050449578159930341028717812769575260759481462470880009470239858293170527940470261132844051556824266180269790435045039469530217758584459345421154663754599181971843949007838355499013384756817677721498314535198732428986608621031743992586699458475472364823621768616701148066786963194526839169763259939889454264782886169972574736759592952072781910993934693914202969232006275763074007841924619373914375113098968490825736275434150948853735802165668358591430739360016545203850168291036291995120352090708037464326561644934360065532174783706960249836527316796196372573184313954668872945228184652126874848214380999588069622814084871492883165522606848759797589247231314053041465013325382040243910266407541466665979029737420073951642942493275995205715758460675086161879495974591365912901800318293352238799316910381444682775350515426015967025659382679058385502538919977217698340540324279131538922073581666204924480385945973676775261375994854359716871331512093111378698298643148541371341889198654949895747354119603466758433246769967785724346998545376981289196576160269120279527573021557907279083644919923774815082204712162237361490524810892642155100519426294448534545087034150579863166862027112663371340810154164174744310196090092560279041661457224064801620221726411510012321933465531872609398532385182226322272216063376574922286323261555667362900185036139599511398631498847442802269904237760802651642701592273811672388844924111215097066353279115286886519932965384473556252280676663345727321143076035005852925996715456220997963468190293274717713316354436308064154515601983306278938290954296735036392421378498867187888613168016613211018855421640021287979090857077529151578592248522321674620967734542082385108262606740960059415986314977385000894994657603848234913763190807182703139793535734767502126365530319328996718413129904058699934051638755892149121877472704174462584705904617208647023690366704392284827941442263112100600839277001849431488434666752876125926234670950765530230409179319124576932407628612154131415559638595744921959042177648135327843443761012506136153236510646181970114780588540336905473616795528803658344341006890483849626626867255882735774514172381679755210847519669282915421465999133799831554725989303670356684454668465555592514004230379073704651966541490542427907462186345555179448413309638216833197360417109181024429364148397685371180912953008683841057911120064158463279298863535877843752937114377259926542454324449495794675103769244397395987734060363693927157163282002993044607888375819167057970433023487293151134842019102262408438084854960600820179954199663358223695096463716876996501885861030401271762072328905575549645839208780609912918822115827385845931456982860495591753961944229391660435986098520344569709656149843823323752931881333829471296206550773252516154129877789120526589484310981990145990634480356094939100172281131036797949428900872638499059391974229920102088439119806916489313336247306601157207263017719292759532269585413403196550200892101835258012724957276476945328946835503866720979089342775340723137818332905983693023821729008093921011067465004670032713625815036337063205768858670255911777485281385955946503427828776733631596407050549437289541747545137862327296646249847521187248873256926608889682318282123944716450291543898848183905946525501910670561795995871284253900848022926817114206908060196675258170238637681126673639867292152451536682746571937577546016337425006607984083619798669254783550919003456937729474709516422882728073956691633328870448215026814063701011947020143214337727452112354471084189729203398909075968738348066603114205018395364018124225538230540916794612198351849280571159628508081137128749617657519842046179484114271040265008966112941678173835079600760573245778237615475050659145131414905921614316303313791904982359430897479393012930596083430752810112294065990144713958378959173238897365836532629033475190907162272452252104264602382780494472873372418346338518955889948144515409602950599483829767689525299273845464913686448496184563502653020878508968077391490053806027626347838481471705615444412394711541661031323664747846848844477137713309261332342261793919564367309036539440851427884617309247464560923303629891137418737109717463802389507316127268427491030510293626098506332616637303210006900385518168372431172086905149551860873412693072214755061530454330443764695246294909924352888585714327795249357259775274758931740810136208071517198136321611304851149296152561568699282751137556838424573486591799113608005604512579536679500695082427203337212670524406620458835328201263383451581338396606477596072727674446874089717883751072563264802008048772719226993088592292341837943241541529112433349788937396151455991150702527187094787811669762705600045574698159695434869217995978408284982335691798840050006893644345444350003683621214712921375473728586219600037199138299487775970148630338814816270003613368523280255864884485021502444208410622953088609036896069360945241206998775039533716807779880676344651113683046684099597392641779397543309883348218016393403474413365713002258189524842524827683070893231960400961874628148277422982395671640975171469157991616833782126186482059727786172303680860013943540612824736515607229316085008588603366647435198992065804241979337369419954410213388054052579796011546713360488444576174848286164622128908233977257034635288654217164947026934187222329696848941126484280886783820193830091725740488966944777313494091024661407707140786460662881575987479666292650802053010803771392888997848523589312112144661719620332878475558246077448841655821432992606584848708543792536848886316238223880976630741443980084961234220958466140133945295370712120088914497648842755502885055140438243822030637953122589860050901699518417762172674571682558090401433183869098729180269795381468391877369132876054622004124717029888433767949540599338600527493373441716623215285037888982868198567234533668039026130088172632185747462826635000812943308307849822329435034622763394307029459196495980875209935951992697427564365809101201604013530023345944167026748848613675230842713631229381593292129827025326108853115372453911895838927392229503062088177107517778022832291623929478755290115359057179193383582462445591294356866313876370442693532821491075917963114641906024101087758206681323264553282541331673645794290957487044248996822077095605347343362557860514292977662109631510449733849123598280498379510561943210683080076737349552288313650174392975648724594858788532426982761994526813487920292828990166044540704134477750945446024439252183270205697413093227863449945855275866162049070371391484539323495175544028970039935750190832381138379988996116595090975658426489086036144394094208682625856646999410055720168429319608274771845046473580668853299965204158283964435262366152856321813250737502584775244143786718677665505118812660683038503254984710611418267170126799201104672777053605241340552369729496353064738644585519724515282560633271550547731653471972232978775489578846934678007773606344723237235952767732632166857265606935438856286492457451994494299722529854519395167031139807677397777933830139572927261699273938043369666560009234279271685382966412486236118177336563125839215000147688533058411554520425341817535061994714204486509150716173692421225128521560752889178430991764486551329416454470507702312383944374706975978289340588991908341411304851799793110247496448515274079356613414572499470340698969866976742089328440052554301956148732634460686448706580270682310218787168371171527969316512415478067797336260219030971218026888956326709981342840443849796317813008385590992254224340018918490408665060465504199438858418215710843639742244320661246046553705234624184690409376863722524655112078829401999323187821139661978574762186766874523620784116161568875454885738579625295837169788706543491772408110714310886382699945706922074258952762887240352363045434086252011501119484570779990433920494578867479398060317001340483856015558806854408698309395850745443040707690044503636326405752333316441272180004897773858774960257750803203849741846485727394491034941749338228038442259168634042496195570016497844779170190295710896185195739133436933199154647071804706157347884211284776062578039975102008344355511427380421695254831210783051022226262705691613416112780879707618006656913170944171561814274069104714409043579684007331032282569989435511691982297864156786407740714070347530675006282264472158546446066757016419764283567427131687679992003442361005355070108516592172632782655592427310371741569983575798177411467068318109513963585000345678614328806444119353170685983035280937424078713237784815985216307367323756574551315542727960573842334043393195580700208391315281639067249600621257383296374785684540335820038148433256616800281554794219330341952900550048280320555759294410944014671103630883384680447326590867548707017254926052554376867422057849453731113335169918636091725851709124433297107289126960178016545571502659502752563002933271091539725823622051866414471500646199662879494386567704435831775042646001999359581479541754950432429298699497469521749906061508147761280779024482286327936069297974578892256175175424090044679016689760473457007898584940102149412679884635945342485160582376969837280801235331169151227390635330856406989573329642589617892227606188848531311270313061816567794793112044160639353836211355803427231658176395778961934151708289212537868113137224847999774532097260573406546228016318718518275898644621071556964618907024515578614198959681987690542116956212953327159407701232386085240170871309292777313846517519869970631042523612351236165406319784226942654528271055568338203337316508652769441367714961858813481965701211299151650261855953659477499615850126645137166723933866262677319437974006856332519459651636647067161969874972107945714529223015728742782436214443161001463896591887348324969266292468037462837652320667988066890676498027726400537250186784781542628815743145027926939442972686911346435041325589780758636301371013465052163053179346045114867209693507787437976016159087981744354724405966815447715351901444184057540550026473092885274291093479711091855560951765939746235546847666478846422541554889677007411071483694229180330461324596102062865446624988168189319672900807307867366940783249685946720714245798873585889939769834317338190600258672682897491690569093471922100173700160066547253468825715593068028065947426104711762418329395497057406466025047910820655272778741169015094433052716591451472410708830121970145741905778220804393235071625706657067411094475637542815755658120695965321119485907904691964663201820568949139929414949695857294245235890209728166386520539338744064525533189570182835111230682523351158010048552795451152842268255213987874056067496173356194330198522723217747733742342490575928751048868060726698435537585347828582601680532825339172874530138861023978038859067600985063285640895844281533513140689607869443738862080658534871883462215015300123775859991236718576291678740629252097660964278595576179342367535065612212323772098209683237313595327117955140566753107736254223165239287032407081113231101033659046198033056528421029855849824058329924042418531721015149298655010864054257013297645913872628950383809467432524326041323517414554302481618421125835269499344989716532788773422466613622995140619184740159413499114682840336499446264132344060099284391113336874030132707740309994068419376903570462537605266496682821036098957541360936770456647717775908184707234393909261283957613035222089684845128592136683253023621645594451685170629042589425560525989942970991387990769237874462221459130587066196160775356767651849124805787320983432812489893049105995913973642340269832500013454030276063674156342542407576243939800852918107930510253202916781091209144347358149630839117937770982139511582329853983058835925425611044936742986449379516715144380697342267775853130764655266153991373509687187346752097991204695940053748016121368898090082884921876004985651817605651777037025297170651074511132486849121093590133012694207553619919174334740636528253082113304722750471581308529493222672607420581987187753864963909230099517304487598235442870019159214328465088730023454691219139745325993996973747160359563142108039732938336914009927507986600415737693284544524275913005881908006617656188635654036570745257756168089362722435790382138445572290182658918770259321380038201920110458308968081028237818997388283168202996056804331558747356128455838256228944446808117214491443643134999366995077996758274855784016417510080727478233466569605505359221411433402542162635907678952407994890526103732245540586057653982460010080546036687070104234873636012396421560163935096422822406936576766337150046420380224606208649582207217817407784801641481853479027254758495971422880710846439378405664372487217454531100692248701751781030181907874647621226606422584266448871499429410824748080886546788834108369421595094852484595820044668288097760077328079580450788162453851165769679373250059416433955623506802823665867407966777776743652831060952662676772400681205600785333572942900769306834570382898173891628780819140608682650651564379563591529492357982065207428704849443130720837386179073620175863646756331853533385697325572736969232242025072268831766650461254166728342442587320348977558450011818116892924718489684988580155414580814444176316954778357745976933042119169804311035240144504518137833296476093198813574284333139118049057452428216036280031126372933015618658466603316263170234214015192422574475526229750833275766255659883089268556305485361852778523779212832008110479090918815172090550525438687332418072651235009179395742147138611582926558534817883498902980892618747373937346516358740342520922600783534258279506134502577257714122081840111676186753018001043975087185733049266580241914045413415559597651536669591540549970995455851563012148267407024626518652529295195657684444418336234444099197985311744379349668793560573262906288868916796601845196005488164770054989032097732094697326950084483420479301867641866034650497180318171607237587575845842724347088348451358776796398101638121796862979971581334380118233859434833112322662672990801749399571457135496194664238425579507512922341665248980571288871621452794534427107127040499235048380225628929531975454533904913088267558187269888359108197636821919499650249873270434969973030345799840976691973657813417131486587043524874459811969432484493326432688945635223997964698347380531490931597386453546701443710693340396527423665906443054872355319576983445258028634234654690787395703327094612870597374559552799072162104907628416837202886877540005413059331362761023142446053088011084445907355456560971437054506801707892425537209279919258232711183264701612376784563027474574540409225591739257718223650074802925548891651295018397621511205780288209144810226382269506473714193739999889330721245726889243703392475032267711085125716107801535658341022510655507160793311710167108752832088160117633072956637365873158136204390507785416235621187280107588149507875902871346061137611823615318967124189537550294198654126229564890785895125747467410189150187507010616111450823262969708983987249778234508753590590932374352984305727011496012628794543247800949485255725545716970507940620708247379734544598591505980395377505881869848946894333418036832658546027803530453370612344527925436591713812099808889152554281815048163212254591414232046814345289447305344858171855424525419498495351580853539993851054382969044023550445076789005062775444448756642538698049444004943009539261761716848876541932387469646443266421881704823067470883877904515084307545606080492904315360221736817906867526550596988881166582992894237380228073834380838805280625602348119993023276375516059091265300851747121750132963878828024856192874671834686268322932460483028898019278998277265651745484774197647223791589314991464551184192349995958585124864199560837002261426293412595298030603543194677123734233943273877170874907707683607614538377920049348673089428752045277089218601405912313320733840594175930092619869000860320882601936968668957276870925413615835558858869127664496210742399054291105660441019656140508481514959897640801501100903282788675342273896963046488327350224558042601427076669363029024227098741038513862982228624481549162767439473914983025591712634132030910423331892587169456764695050910555918044114723429110950868549581702488111570760379768954454824533533352936729704523284198640838981133342487110317018289866588947947861590397524641874454532289623007677602903086825796523230428521645890310953493963378157066832868233883049357788335891884845613794961851612171345727937529117773759473796242373678115128982267523248429895213377262247305316297544348308042248182168739985669293324177902290580442788385632142608611554218018350880324553505386506437687215583012908258871024299167526079626324787302514941890566569384132484321810498645769724295908073695643817640775216672012654683932856121406387425295932473322490008300640110907873806746611825223880652103751787601456957912093349486638774708935896509782823074120523435053065071405613340496095436937525942799166991850738897864114179540587795435810947973814767093677183640797900696864131729137141238023720457956231293512095617376221070322448824598161358963403650184874756152045614988151820858912762414258199548162375146359612950522900439978516234150745032688678166316250884449301002924297814570621993709861060585310498421589473865445143407129353497685742229958143321365467183858955735855487683818967866106533640251265609807487475453296431615953935073378964832232336309668539929850092333456266870240495997030833797135588755290662071685130143864701145479358590710685436320240710578079216236790059199689402609638332856329336521456884586619621235649871940751342627784756106108617106769411779569344351865849058245328891290054466586015786298553506189976353846314102720356510026834383658520802900580081999576415945133309988755070879246291992849752412529408492480209492368861079313811715558039937563456301572629925583826802409298174863424164063306120968855047355937540539810845355197837123076876692728597691771679207043886818147998953323820047424219724936308756801563407485649897311332542583814785336799717058380990137037721121057066659397143523736455322591466328346713906395854724866979178259650570838294674283058345662343809389152822528187109165208098537609152404540263520746159688695428136399192909995341936782810686724808526942399348898330166390601484380902947090214726535086273803508613505657379249634296089164675977520869551476194198909489109575490106801890349020184974110774683882542733615018253294667735060723903278264204342500802090231340938958330068199277976882898299100273545359926618874008106475703165067074459053963687216256862734767905266898934651726244591382699556221382740092249310461699450861962414883418740088072399210950159469438348370673421889568804656222402329866674064967213334191648049475652906119663058215276407110854533330890665435284664215643514871463927233174987737956960178373578018229922140483827042687931014442146976392509951283919870228922360223656772424125626790729190403513185901697955640198624908659569289766844198425856043284434765158548228265320719115652861903340432338204857898082780291443205555235273356226166950800681918415899642219044131371016859705296943142102438704313800294747233942657289500049685159941879676488103045297743196243308946084755111947795653203857156105798002576211334898326780573434964295026585854817408487302465388147489638590679609617137531031543423363487198608122441408715436954307952019413677758307184354363934735454538779150622186835793961589911235153571513423732342862435353854621667367603054696681980609961064800616722741449718878626936570309368134746250045773474256870711569718185758887479894524044809009727342636618630872367193068060375906114496006707711659194484013728025761315197190797018621321822130180943309369954475040642179156179734536148152021641170043451360571969227791247322067155042793860636687012589539518898445560653895164313989259286809539086820929044245242757489085692910202408196831898590888999864167949675426737247020885455077317872074625173546012742382562563652272714722286696784419298087011492280656358460439219793655327181761799000421468474489913222392136763971364400755591323119983312422496767765537837063823993990037718976977351073812135610465330426912738446568458245814675709143377443294242895455443627864478243522564297465825876321570396773282785463966507094647190753070272148242653765604842960949846597966957061962974354208436227096085850655393621829715549196353202313587103656199248059375305175985159831603679494067234198846820493716532602863065816279377480992019288077831762964712543842100779630600246099718491770521842824999704177631374207670809653418354798075336093846119549449928874433279260841466435657721019997088989019463731203779868309174515998631531571469198315186525580650630147639690017758266891356381797538687787735580026303436166495615035293875292653076837267472584687594835505645639916346513015425086647898350735769082289105638046952264305432181731408836473227166919109253213843989532778930165169065737274037175124632462042322237318885720637059393065732226219628363187746160965948482936804368639934657500408112672735030444332731402913506061829756556960484393432679174439350954708266034201316074543067742484115793532013560901900167299991866736701387483497587828688516843945119451221642022955293721832995602027531145396866410559911029947561470340154180496351651050804584290921325386255503159478829163701083858986492312937936636828679512532959521227601225378822644032067521210210698104174287822934551640008163647524819839333363060966346379663019745574057346391077302449683804715181509353119831842530138541030336409435855532161996775851144606792745586190763592630192452184629480470249323222540471576478573631701445754777293302440979409699335201094741229631961846514277065637352041078465569583660886344085547802466760536684502451938720303043087961496474378764434676947694392054315054847108355951120762619485912799742053997815317995595829857993954902497266346312790539993482900315511090780585252725708885572670668977875464799055358457849241941541801775478166510850660089666839522530431942858722867341891716094866995186311209611997205587892980242360625397338468292201751541756809146028840027638081230059832169295930403203861890734511211151567673330744281142478297906927953201879811747145835315185412686213234275458066228074883606909999150204563084680942006606266351011864698728517787905340535444096348577228845696462947043172878672056817268110208252628198489376656695179291868658653558795138821536899595657070831358165302795289266840628910676035415399320371398467490184025413406372521019854402500614915497204218426209645652052019925602023875706971064512342504493391247908450430132859272955675056589433057783131754464090183144580587473298459275144024896015744498082096416885999898428501324125710039360917541554426620642189484247780933933880834028071660656763740437950765164164422356394608956231657235027181244720924387801848140239620087439572564383450345486087317661006483244828359017855214093074793939989633165556958890138981756496802628289708079902769801937329873493664431534492809685800708847137913865160194683082277301738854002333066062399766743369912076124591584708631158334540180734200660164414454967769974452311956072395008959791363540525596922030126803638541108136755907624083921367355625273135027497900038128537242731904476097134263554849092964318598050542269223566140508425663604751761653576340576880010182854682534278705752890918125330035075707756556885692771193744717607189249064738522618114573188328469883058988174976465421717686974251311276450357933680953157540391070577238957132981180632366377064174350829414694728306439005785200414749317617817453266034869341425494128714564115700117232670307628560400858859824289424390023058923017510394383550988919454622387589251549231305129134563317171428269812849948498139927024181051829654685216408840700451782319563160550754094953628230021466038477389779784939899571834507699570538182632172809769431094452355088160658076649024493872484289423696646928098281593831124105375036795985474483807041607651081799867879951014978978775218745531112795121020940644408197424539613601090125400590834873984666838336462363439271042040276719419395505055322640307622195426023096853253291615943700957326585776486057955709715789204844408295753976960647368838433037817451180596842525198170693867967956430063980306800393657330491309276774015488816228893399759944705871356673516856118809085767498125415232002585106390801770530083620789983011835786056401358835453413456315152808588498063662155691155695205047024787581504758720860822167314583419923997877560201084993731763011659047086279873841487192624431050200813976847056188439222101871125785216410215177429712913801996293375526904857470743286323659966768651728835920683449442474963212325952562881058299259807811927913096713873513212936223092308089398763959242216178923144668295517943011978851946958800085735639759627655215207408231773041726754157801627966247033733364768454033484066310513906202358828572097911660452100805393105626821020900229643176165051808122602697258386143525597545581192220058239635948883113893543997972284914205812126495434110319192628676415514369306583700577075255457600875686771467299675526614527972195251055172423882336162121955996746764769517867974478996340275771408537935251385065833125065461361590303164486243525894358917899558719191308929737840945406778807113054871490596915103815647242019756183997822021866901438676289746231494993328652541099724175831530978795324844515629277500553039076200571529718202168457334644137017494547310416630782141205938186612974697109887218201349199615334886909552963231349930658131210120779288700389344274521104305206173030447577998258659995800244170110336650121172393591237808104321291574234558463285805355346660555508708993508654875915438776080722173895772413872086735572640244010218621365293066150374873850777872587872981411420028787479007009591690723037072240574304557444137661310510899907877349900009939558548179864820493935659941025460831621837202054942338477592261079878512898229144744583741636738389463069967710854650532281313263011151342418395536827709666747566476588295322939832663605665137548969379251450716980746725673737299588296426000432797665234976828685781870218529032617981097394199312560041373305719743065861531692064567566239126900729306348315976638782214284523312735523947696847637470125108926647175460099859254673859096118449126285124093134186393310185471903958234153032127221800942465440800901443855406509049859038275505249823763519634979935098371865489997895631452111414364026271446874277923692593842128879278455930816158839837165522621648096326894470008198979587635170513143952805993604007692878545755763111615056226391392236440965989975114098649926262115672074886806401411101693318457061461267265467022081657890873050186555296809167200362839975936104938069434162214841129656965760197804264430500855945209650823821781961208067610750754750840531997283234172366464418807418378560476737881286372455035386713553748500426620924955127775323445077889217501067635093861604374913151599483852223069341289112362674650692606931265090160717761985326882663249737615348840574708086228940605853328009923149159259874330159956199153724818457183863821995455171480559213534401460144776993220687291020882798680202573149948208550919362812135686251358079153117769154914821336411076681634061945470956053760886640928228087459386703786102449128632023862981684848855850347398663870392609073343055387555664743701066398748572092167525802020897723038271313626067433071028939853952022984709886124413897804202694129121232997796523609649780438851891079456550697464823056821985262196341578966412231186643312829859677230849326649460214875000365176640857967330383363303411107915029136556726778241661790568308162540878350303500960578510496885904498361974519192506955326911191435381649649777453379917427701915792119010128183521404080524284537024423644836247456280902478603588833332188329345612918703307439190452962181455424406316870615555640900730784800759673589167632771670298326690769511513256382649568592999661909755385920743303100862750851961975688403346269634849634997172317893018691962950633555738068392228037384092072262483232932962634424681099199244100831084139536474712344413681842123950930840415588175493189955960829007089712363724062901247619295460109476327340954588893755899433094635647799930067893251989486130919320030577399955393325351852790861350581618141177674556397051304711135758424604295543302418485986922935062968625233593536245618667210209227047057945543411764539121417928984350439901869996318721977113627063668593929395219236378879164745214545330390344621405237819102130308622684882171844216841940127861943144269779318457139275051601157062760891960405357879468027104212623341118880914399372469293003877497510576283281968627192686618218293392110572979212920413596048683042330202312886901355055753119941752767479523086336877727826796817722880657126963585272255831044075765385712879570156373750768947862277526533728496759392834723665366825911598639062409212216472529725283484922889320487531768414706221270422813200932052292659850365060390047699040181649919180528920764739089003586427837008613665297676499791349792055263743324509795654179525615616448625719734230577832315910081387352091435200512728409830884971769054898738455311658011619518700669483913030180650502511245400582336284229961208559242809989637380885192175579986322117430232255014344464194495124140831826247887944055721626867627165169611082658707675112990280551889391187722697887851859370176214474291991299702800151506869121909944953769667188341630283201104751289813378226925109750933189343811555013053113270909234133998360870536549867706797695562217244280916504868614635408518316899260559000538924222019459585905529310406083561936864217731195621335191581309186728590742505017229119387436553363334918865578575091655766056149166874258746701171519660751342428849954169985057566719743127456552712822440354426488637740157140754653043337382424013785220378376084815610760298852052706000493952136642565159644737233751882875196443512831024784882215546597501696489354873201699486473075662007957505335067456112977421006126994155736607280271010429923699722051439291955579106789776998272999493185096392295480076010316411249319550127603610571789112848659416459092823569908700533177219813213982390200851388965753011503087967694937942968308785493701544628958710470635007378380523380129201806060471786684167918220127216805013591001115403755836378329858231419657289465592561420226536351988388917939969080141560491469775361117732593378254571312790019294361594489877773720303870426975837990097002532053731271674388041886747432124757870428392187367549062940126993313170207586613658715597669079825045824850912414783963163047627732863687588192899079406215284451279677453616420524146621285834568500427105604456908263071520504333921311465950121916585412182794919311371799484027090181574220264156821143379550192759890083048651404310565073570849657089498243866351951776308218412803704234174363789817639306475147658641214469997395248256940969190199073654197593304583825753185355379346549062435598937873792285997972169180504859944377732350567904314182140787183031262242594382404323085690911167905535969788301500528552995354206543650334837176453115538943383721794893618677633515671307067666892881609501788306865330389918467827883574187031534031872637348887163782339702144983769057411022986394667468278948820900286900614669511538143451528973154868902144791022820970722843549856182939513693870694701286069741115069753811275569693070450720329290261087772216429231449311735884277564072024665018097582331734133513880656684471218282778546599866561878455069982459445545339200027781337966008402806385710390410279009288244132851795230644699658252878257090585412095322861840573259101632852665479703315053316614185111421550209255773945542236643586361881241382034533964351873870138252430572387402575923555738366990624788660109657950686843018343290576114083223089276193977406620348271526302871001317886289757748825695473399977649734786191815644209123024520835516682198332071232677884453963525902342559387558020823044419511830444886383841116999484318203278708134624701496539551189664074505232756348546953633282098689404298904378538431846222351262894192171621125182036371987472309732990371345420777342960224964966199913783212064301207672704767658176343203201930811806175710914530671440613691990685348837499023995626460788695303773793242920607095046363843197066464031171583886282988584688762334308144958446814899136525106794065265052288302512361411672697238105383049016789681731477507962366905961437126406611173327936096262609467809054644436628564266443185024800490082055673484134456598225840711579271636709602876534612204702280136257436141050718131934118056768220389314769378254369050429740843254969560323206059157794927542737517978537606196430887789344518722492816152940802519097102568792720857975412535500308650222970424193578940757440609642174986282641652311019588371163966277650315972294689753477635309993767294691489059600016398021783416127486537311859131252061180944771327621124769144857161091342466365420699275659422047647377834819900611469463358055486615608237299629361930752159078246268433378042515539197262501217008892071296026657665541255309649348659441354668043178837034018541115506693404783455515270857667549005848850471779365214299984227921575654836415156563003640338453153035000042655348161105003656717009715582723724612952488428030030347765872678137574037263901739937473018491732251347962719136957201389471791208414926898783295235473544780974308747917457852628341579378443918826001688138221002170424810015483382706858426972354281751119834420194243272847367571604848258808755412452180033771866294019018872137356337714705094510080664592017242697524872254352775063462833011289239030468026282918538127125008370427996293040210829759764583761301190662780681339328967436746220716737493818712385364962141101391980997876452771241338956777363898991188214254695324590298379932612541563018700156239373838564677496288207926281954960467910876182124063729192267659409596408091963307394398022348760167511755701208474699064300155710700625587899224622900289071960288459250125135387854978110107641542011002904663027873643405401583492158195684185237810718027857893199342140883069952738906810498521895647393581372405398712348437927193357223672001047622161532343201731074590987094216668845744471559344200114870443342034564252106953908513614826409392804616820490667343163049921099792429295245150805159947270399329825544019652351143971050146509589234073626658833943841631539534487291335646250073986918009909608730367794650159634023158521110090423096180965751037730744620173054624575859149809639660208734402513473242391052216733576462876990130832535547692320816507869322937145530930802633125615223753901080747305587466583921494355836976287772630870342576416040422785421218730225072349354889706197312760036385155369655391356543291413389766604774486709875769140001502927778380528811267719166518086579380577759963789044268499582918682812793370594056440875873763543179996343169990778819238745312554222844695606409458280829327271296721432489277785714353456835744855734688750631909729126603191650166628710938136918343369806476637737745403124694572840271575674269166899530021813860382983780481865451678013712069773514099020685629681741621416417821769117829855833510034113329878098280072319786249577846132549208500772685010102270000761408407118686984640937281695206042127076630494097760242252180818143700322498367445185487855541692175945593203426579998236721495682176700999800247520326148484430367780093569754674687861237623023212545020570339284675224540201606608716753303331029681798430552593017378769525544654597978110354884323518025304559271870521508312978492584416761199735964335708252519430768068065351055419772414011081486082483948895104049403933554756909590618095012750008839411658937953281627002883438090537210226660668186422286213344181232557921853212688381225281038547643011306943273085100819604274315628896342067871020888968489105653575898580328937830839648245059853348139266831087993944651288703552971336879789654749919313917737018915889822499576317453643255777362471519629821123443699627828226171444657397198316220631490367673721136167023864412761703063244322815197817810330455817369718522546284856037366042567966879304981955153801534129449872595939150635675597826005132886214205371151186158007349838765795715178300010264614953010394138848948164088970313188874843640405703346624115964693618894074868208974438711492420426204438424248773300591963407370583515997855035429008930067344850579910663755304484452826075832609704061025716853193254334672088867306210046810989297601979680559040030378693735952280974785579290039553507875756408985808557303524876429938013761958048207356631970156331132571600655625304569570132653954798340539421973082142812162509585686159567799232965410326249320927535109950051088200312012294203734260844372001675819745456874340543859069026449162960119135991076950681772866653174948543421520030229060030325588540956456938845664749204093370033684386508535132659782855133430888970349651313715725187647407198963789512547238974174751050611166188553761151667426847201979235646074183028447640691318144634221465885171228668296540477387445044833689109564662076819177598822297983568821407483303693663476977658605950533305717720709683088145718849090273535289494605378077642656886047225868936816541304523764264576198689380797691622261897282730057991600851785601015019793229482279108440121775137862014129952774179552450944274776818515156435883486206896449696765631755888254004810842871135831548919227901576359163603134514728306283272874726225804115516090388075259810740074486064393797360628812887218326714239788969697351423961393858076275005952521169423958928017117677971535811591474523816828349520149178993899877389017272398261044558505824991092250360037338183195651141270992369000445357855767448986151493725010066168415283876218784703367978140536347145551222735419175361414362964386748488739265851880074971656684151996178018375081371085646947851472124427261657455418683818314838340222789339224139346943313228050644250315939938063029365667965965088046721785137197351289125216659129953104151754891503571859507667548747072562221874280769586570293757948289039765491388348666936922978209426836260052814279882144521744134094484333757458672218972424892438313732716103078097760914708545586722384684110761830485774937343679455932054791081339853049833654069108481198045918770598283888628245038399173013812547255450847275733375217897301629002916549036815837722309565053040162540907721402768966518336770614063456965568764671438757758651500792844770256433507938873933952870964133021668096659720749559085304525960726112142282444970203531607485153080012214841134476809365552529965331141562712573939612355495011743100930691842668110645397320035428092089385940269447434657950657934599401348285994964191458485365023767263974731296694715947680422894127888895132688692317279186904640123023210654427067570362256543269541537517897642076600864952215279004384909851366503778600576023501311318382918660568754552961769391445650353399553894070837689513203832804921990274711139285937364538950337625717278310205806376231966177926035642759131328804289404101368054926818238274835777795365967518562296949571099491342780675314237196589437482679201103235020468001920825092629486929350456534730176496811662820202060935998818306090756036989628655207007647963517318203024245444567932605286217022137613233953229689032809228606758287039928686128709986110513349123187444522972742040515102828537314128319729879524303679189755186045608062339633508063222095368969131775026660060849316110072173981565059049613616961318972875648534654051296197184962680678615733383996182407331469374500549882468396770651353544556320457932759138970111819399684250336660021590363081333633598408349863436854659588725561760845514078566049080585451107460404364074958348069644231137055504524089607403609840823237676498718794507247459846930324953504916273196722260526660664456794630194015094161595005413368505388023683903888617859444160690613783755623104160798065774903707652187738923922543443520024038450656747998932781976989737308248410437015016642283978593029492041970539039145983834058044820757531904554405548127341716354624795138572013196850819627427964157531139441631932996356398610334514062882487097223069403471746059136170842246076726545347556189916683749384734963707370412074390035550513817612355439016331044728366781601651482989691194356038820279495200670393227529112436385819758024251965183991739490594423613875386228992450544335351915345096541939565397325721120328722805130902181077994141093072029188899623240598322768508155196266738031862288004459588176617732146866927684942421542987072360410578388352562788983066677146764416085423340999728204857995750105227888632932720941955658141807672988723061531202373915175910828645116127286252253030535118020819395066863543232169724527436818685220837598904572950296636257465206421281471615274374232650574905598503925442812399231169220640887334661869187719621690040821349760920477253197420423319087176944382426387777869389814023733117956341547057548191633110858857866266771902507747161367995311324102698022250494306064138641376375176416939443289680930245539988382322876639912791060366687944132404938336379684566917552606092076454920484896980838164692306452552168973194093466780924790965409216986856339490169235627884111231064145228564066862509402583487987665489902185981742818074970803174770445405004129054660240380769383180390952534882802166053676408886392004127622714645822388829977467431847083670437732177443434001153004373470978233665246952291793774812588960752032340981044183686378197322124699218840022773495015985470155376008148720140671211679669696124736088576102065834987273114496827121935994150970875372517454504766880254275616554922757642836245849558607789962495451904599232071466646318530402532316800424694709473991410104541297658142834771545925716076023202697751489604505553016694570979124209329992865239173818485722156830243674985838570917072580613560405063602556876871575787845520728432396965007709903032580536179358205041312201997120725768759727110087284264765571137625937055176389594106013943605573024843622265321107462430753972256761425306762937054021744831576278953452054390726388107307575117163614921586347072932348566213910159402374049555747507291672315989800888971648079520844151178344489838860127661256428172936597784196715950135210760376743787003048376125552524541234480219605381116544675539970576719803558221040824101906739317920399014589884269135934397898582273727901302128664901113497759445096578546222019577944135488181427614729869243774557970471666128654285328243663325632911425016691841546409403619658993231113464822159045737475129212655090616912232298017645162183380769417252183529943870511050194367759641213021415146800486582713419791976903023839436098011795983437260654542947411378260684408196299434842199377798039523138905808507651326236274344613944311490849166018982206797843723065210816688763431900968463569865920271080973824170946863309190793905778124830057257687791348925008294085899702683366216182965255521606689863008325312442637258138522193881561219480942515290209580223397104444441728622201802489889700261522586066449777310102091313524696359289048187901361948459644609614311742586676441644638091120546947241850342208962752970670073535094153684116378749532428692599710038027949566142922179506812870371839900597284766964538591955594116469206982250820818073947695238279523786939568455130697605725563847793855184266153189696003245762581607170083001998685870493415268501555668984650747311854663485011530532243549958962266236359149714125215489826759944889346176396461022170798131415115475894191522716501249854356698500669853231157111597085076120542025537415907178736093891225581870181292575988011181778560528751739602983855239846624849918912111136898665404046050399563357861771877992342323370279217537303949266257271565343249996954364267096344726389967649107563212699225236380374821962770055072455329401163048157709497908695014797557072071076646379108576336135343420884742369474713815182121499334370308158173130146515991553132289234277387994708711034719787849512755023143817912454175879840754048389319852126057147778730956404847597698216158469926216895650313092062912457027002419696265659226726941032658466678221951854273343345844375673974089639777243523677298316593624567012610887989009874293478653660116136733648799952139435191916885638710033396801911716433342524854743095102380470930565053851742143280060160003196223977730758534772794258399636027572536636016418736274673368877229447773071562897239183315850474135822949043005856776913685194169982465360376628613825078143933831283378675357063672949076411686729846797676766042247125599516084037694476186895565119272275161440917928463128428043257625041847040447722134582267516868464917182587531568051644800982388332395204776118223217578036140052622223601447891589510291266540271438530022707404148737140173006585583960205899469274881192728788362696419776421970758331468255052138357264672011677507659966739295338801196578787403750852612456356203441142550890204241194918993004430034543724431132920928899241599307700491999804135803971484831006327236226061483554847877031478965284297281758473245342698770114461207469528697190014515301327360999849012638444480494872419739889709051091680654406153891701660893085118871432289123979642643730928643797767362558413393162762575608750686170684625915967330073386720875150445362533446649722738219599007159090456034764445285774625146668338361448329869144012279735457343980047962935907790331029488229183652206102753010622310689618522712174987218692970459103453360866717045686458711933760341160452688774590408960017392780554381456897003278307585713241902780580347521778758425088648213403656621132447433220298150473659518147676357369337312218716530569734383256098258297009840267329595831395624798266084380579310943364559876582825184841175148669964366692331915708601464296748909799141570418960670020237492941159665681062984327599740824816647182112406170638191181561830457753147201993019791298253887606626910261676178584872289150808117460763210936652607831826599126563657635922083144240251129544245919327977143971896259379739667477666055176353751410720540482327602290387410054904039840402076459109148093344306264977638669257263962695491849834970148705303193004619328912250742644208150677735991207996804842208488702840954143739628827794990130888153197992578349654196741293385206817759738361422789636278869773026660640831625678331950368073718492285112536154447434686598070729410712274733459322433214958412331488927303037624308905010342017821485658134095608760221686961103144899479750739240386657416276091785051149138323989220190248359753184693605656264391625862191752176561256217035898618533049298018089655834507427040285689885537419729660342253782272411470713818859689520948225845111446969996258425788370777892378768765836465440125000467497746711592655792897475281061427829680254329662121671980054889824461425932951566652445858697164673814464327570547890404899293935834639358139682447224559100634525981451985412316866414155536550983525673880341811744544909889179174398309365059944026269414025093439956597068196248621568783563424526659059096681040235293403597570280194265663165234976485558473797260315855347543508830006140343018027090412677672508757343624374235610304814310985024183719854628003521497531419539765636988059066799266102848519349976861823590866154399017517173344431378655926361082271619650932119393993172078246204976713786757626232295804655031807240050317487585065750865303944131919318363610895325985538676991458583237879987929810848075842120953698421649600508928288674538695210211007468407629662250757098277917853299736635774448832218704050058528812735831108706891426240231800907383050140216620603665909383767729222403453740162593983266763822278511229932753155819031021366431671983774596565064886016266242086008994916478777229382687903830756697236131622007616420250811504932183287734586855318913090685786191223639457696613124534252511024524151186345226490760175480866825076611271006126187835161300891929654620873979807278048768882406868765117116026812058729394643316767482481788018344060421657491089568112334989438088798900613269288075272359177452316687608731676865024899196257800493460759400110940388547360725107506821582018330399445502498060631231259573392394073487183222921282268525813837769301665238381740104998941631849243617479507701526064221199602103350911619661293098858758416113886031731605788308254110530178844687347073841326043404082763294763718967483196591072743704063018383893623969014525654602895488196459191604745486842993829955301621212269191873137380382044690052260124521016514566483277901698175851522766032438944846123990922345624272015495726708898078722171943874137759712521874604646388933309476938628468513262260409833921288336510628825353611232815513946757703581756668745537794955631597882539123554754186083714915400140004669805174043191432109935423501933755154490211383180867868824130759973232963664413283460717207641695006041760103546617735594211744696316560313554627894752333688994828038041230356074329053469616824524376220080430550695731954267956873993528235271314497120468610531299162737810550192281442162966297508898095543235833759855180840638171352744843629893143340232621374799890799159528814203997122784319209160320607858933450020059605491545220118487860219036388930975620697468168570399133198065200295237178816454093129575949109697194936806427584736300990000848027392713891795221879099085868948368616432259748117931024566873505882236281121558797590131808179477169388271709931893294056605081382198284588071468618058085465946575550383780253536423194223460255794610626697055729826856129950998299419752732500786957946601246783631099019436179830843011684688437173857485597571333164516561051130821035592568763207090515122751966851078482890531686002264991910000714261557018298881117215832834811547716502497061773664764247048676124061953218001026109040874675355549813499381083254352116763877914880321303230285179418096364761289550339382488759794520964925329519321404797992859192313162271570496762406037122101403537035920079083677001074971688078331580825686955475602323339139034461288048217890235547288607631920184086427429038423403594794485378297489888416417061448074086354120150030672924396392261436915894579993538656309530921416135162976690030095824464084676678851294501300590171799458331195109354160946607489568125091668562121722343713930913871255818938179752074716874890195574498745930886974836344863217238394414161189254177290780643716331071887724752456988436978695583981644573831371697032683768409491282444380733936934030933720183069012261557088466648768990775649803550122068587722882161446989229329513781965861879835899748011215650174719877335798386548850655846072699248154093992274569942769766993423628206406476512444852953120732221565203145333935546339360318269192296151010226019783516811232885976257556440977540251612589700340947974481838524516002553761727581310836628778811226479687946802647273022410460703826679061662871663566448442874878219647575167575265629401611412649030342264436007466280982270378259485105356745089021498186373256662404795266570810338036304554459205884767988493159936172576461725838404299055177043504105567057203955042159151514107490605027296771988547015145982919011718428368286573395532491270561993198851302036189010743085828410758027015461787343993847748700439758810732637938276922728351830196409341894815605856454571726284967410738552738772363287979277968643117936214292435987312927993846319688380823628834611881083551537630780643528408947693797487912134108800726148217797734593675225989134822308300914561025599714419768701702676022848496228858372340903040136989762720902386045001919066855702539814785114888152474229599210607412593110279535920548625711258980550880396914079131395637138061148688625336665659637058349764552600269205480073777184412158739081783762641864185993471326261816374680915663469317181068288583724485990997005297769727841490729201770083581277483945094045068372482185620559808470191056087898250301162933078475543941501273543239630699501875464043311417957254529075941468375173595392655960176835458072531825128911952461983401702874066441807110835555742868448757235885517786318586060979558232012238261013671775409038552254501665894904018283245486420762004063426286471177129317378681340834633511253974897431472217671250071201422951933666538096998580522343033918580372191182210358952030915932674539412827794579923931127396491709871058047578928917315714329063771340180246416899571700846523974754619233961778431391153073398808642572258149598235378461756555738009013880119167914897716490298196491426037634256687687658100899771575371637368928879057231846552847197102094895459103367158957169502361022006435264162838770459549846646302546605069763234718696625909043239920354001340683011435175809886131136365790422225567397380881453323173845554125637434029217828109453890905960363257314070501540278951409793957856077134466449759614982412631324863177973681360142297926211584802612748457360576151397657151154896693039428659897477661076185323383736097846863994620063496500261921812891914130794897798631413171783004255993030380937686502669243521688532659654914488300871163018090162315317771107691319309650543298892051313632446169266124594627433791374739683860680225566713197069347218306691165790592169857407689019711858684863233023235176910673859379642942685968076555028514209940939906662107289897763059790814316886568291332818637809105020006659095435102212304188534776617454272611840926224650588254496092118384961031499956940166922260418585627963919867283204195098200861911681996186792697955455801416495153912332488058055332222212751011109092855958555619910443910050259340422500352284073378276255147657890505837031765356776006516739502820917019910403236158298359206922596039243077256374886155537451257237665813041884287458149323612990396815741548983132912219768582056292007988087300252909094192263245033634648442073487953382194708305714859866603396439152673847626364748738968070411923519248444279886262785107837177374526414934388869600133397775274299476608672693979737643226418196813141357705921254785319046121571525710152591922167849231568844331173906346364485874651021237685119314536263328943868795492221623840937171015547015945548468241623074120926697726299401721932466664480507474837594764877821297097715603199029374678814909475764358826927527756653207277041086732174647631016355108167095063997985627449274156430549343268376199452743582570630143416164940924144282308543916025948498652384562747941292183170091728727206509515512123988430192786342362114005257433136005699823711606763209253431886421795779150110208627145254385987947547481867099028481620225544650474296524757599986350619112323136045061758572370557591684599988341921205274809436918174841227981031977245259668063765534287767958278213770773157404880143763767178979937527306256911421372503323468709778998641228456397037357522058236726017294912477235375309765779624915959401411995781442198772406070378310801363071918784741247761480613326438552615098350459268374487039234290404184809699128470326019178227784998824341758785265624575898713910018981052839329599044773925660945668086155124580328515716641299769597613166524948429761696181443839509276732581125264562066907810890829593564487053713106806131563483832876547298639920651650167784202639363783977848765240283221698245779087948206009242843901760141242017509751373685118537629167771267021708081156886304994602294001154984246715188205277485945886336998325098049437312451601184777015121628769352305013715261237372246340196454633641743725701293211904706537718491154905597086214653649738561907921679844504982588535417152851278865401957169605146558104005040648674018492776938173096065207828967996938998009041551503428619848842489676908291398701667194354566673165092265520801448558194128396829588260620341790028725633629655081106151386237037086112823046525462191960750948414498154191456108793281384729882975290369121387434395277485611793901433522539108030419633852459991250982322189606835645575676651254669888081395783365682825953016386515088064893484686171862574689565288174440184268933909207970538446782047469094948975395671683193087951058093707837289773552541197902338292856103673473092768318735545167317893115454974902772739194388916915755389031889523881391754990905573630965661846081984620397638501949478768458849885096527589212134292255722283079417931805260523693612569239054471634473805881165482836491770212304536118206586976082962471568584740285177887360232788639746703432902525941693135063758040365363215809709522552164037155680031837708164349755494083330204775221395655355185183069334940315030455297879503252677917196284081064813097386253672691471400318969290225242894029658955429250271609485860216152792097205016283896580538698387541186592174766248018021103551743063577896860330752784235875918472224766617163418511774797450211831435478030548147411366692158901917029642778618237814217608899938029532796434823356968133088399782036007941525234174579462009455668740882801715999203228699822168251459240140612447497754713889294119122289927007151432400121957292151740847234909787079593996520243503935231354500956281080862023359224649182462266003248690304278735364359175508647521371749363879604071710786504559086131854823645001073806941341661718154656678748905761262868405829208006226341562010933464646262226617205996294427191334197574206081086170229522964086913776090247354582304857487015568923786964171108540820868827274614998979294639620318974048627367319219740717184863208569831683812902413662979872868843911086284797976362744154188808474586179090081371174359752086949909418345105016571484912578545647302635545751131883249706611892672114718540643957634810947479932708653264461220453149311239866853639769525383410582037582224004651984284401131531946206300587548345772296227963286887937510723983632862165963834544455203162721885177744005734051992149564065137111328697502802606811320396989000088527106406536855358400989216568177000207812043534055270831460459101281612731974804546395838465943979276072964568541735255438993253959466958097054236118652799513891527023903017721372224315577052355537679937979116283014301979911612198720493129680182213375733901192009164811451807163539009769937769058891179046181092050059199679015259274694230394406517981693422336325783284002673747259507653575242085416191138531540288164035742510000873058063760020839297531918225422811308913473513096216162752349812162705825638728711599466976833430788747600188742516853329410373408487689252222391654679331786547724750772137989779449751351318831967042045203569315467064839359401279611908713227396958318491473214061970343184593092468167071877590742760499148187631728178762513916293731555030845872075101876001179414214863487908404759216108497126358455156002121111124643843049998784346072619905263468759009231064283030733023037734039812971625002617294601951111962617733509008326351078703526319203733476110221329250853440471580990835318607303702270220474491587899769898609649305115028862437075954815531870805061199934952059249550051825757842401562265032598105939428322472871435347303989751712970754372754731635465258958376050231546221622856749417981781665787266256279400343902019939311363519468666358776660117278616581523018109515739888892799680670134292596097144891109657471787684393932330649596876741408653878957588722082356305123502697974777824302551235344757169349787099598492021236952591931661980034654248833745756695886963529799315937623530074879146234213469967695292010124671486874142388339535755419143271915850771395223094119604458321066612243835066066764074459081003811297749887257949633736149593169791830100444075347563609415223412178556823677847506223762637405193445441091580282465853701220951026602279521851187781371150734967112345256183970462097753395356684784433487271807315530467394650353653892354397561661423902222123905938870917324539037797610454514968609376630653859284216096874991828390503542483026251573989434134903067377594118621378973832487381624610807217879333527283962153955119834350063050029697030223551750864548246448429334005347392042219525066452083383296705309657711842731588410011489981425431422226098540927828735262586319365060001513728227660879029065049274939036186845602177921317014031202280638547706341330447040816743064325469909157162530641046643649894577061260948655282930125652107592140491382960075532810471737835973147107480055900982022448572456477960258733942720007545893492480078384281572841115152877255364327630619891622512666069982431566667752723193541628833141281746381862608643726105459723611940098568239931646060368128247168288020016502681622542170714802477162619605253162697556118578520968716867826820394252446686071371457514949819495760793853899243946181820415305222052852460154305813427319215998511020505746493260116801664036276977953687784952036403595729678648040924632154592635507099490479911060212529978190202881730617379873838552283017203540891742516659139189759838726869082277229901271279764341947631455543362616560980808347555431649816049439078716534433083319362080149796644882996928523703107276524173932456388490984607372892716901341688537001159751364411434127104593717342875000020650150562489327830514607267588058308173788901977853750123116289361005570306144268666046143631710010148480927234329561238051455773014910513076006927916210935273214647247682842556597215712808516256052953750701646097483084797535806348761033660382568122270280486281280452080799594651030541638875247999884493761157807224418310586969602761264052784309948334369281506615380143488535845851332253406840224144831059649340409614735571407114730138944169078557524355077738419102928521401100474080710197898268137659856028809876281434912042514399190955449948226218213993362800953121269804187627447666032218988295866153973553124052814388849244385736068252436102873790536834457280163461522367250173574288355005155942235199314015549821238342057640484540707016467408322558086787868944425795746660200589708318862807258967728729537962703927607881096867121877427342382121414428799211482943891449184992929132180118594971190182450662547243753916764399286658010141778596011590671569589703585360813888053980170047694480677169941440052692869366930220570050392532669813626204771946015016743156632966187239127168423433156578699356339267873485648905818710413133202517129896465678728007273199842190574458151356646548233153345839014115282885575066657981513902394196184670202065045833808047628732819965113734849605269964173699592692105032791926013569843707701375122352978686614392787796329308072540022744249926618936957278921342411099086764955032896122190560802037786546724215371862401225479619512344750351281123349267623565044049679575551105296793439099620905094681944349128503829954624878588282956777941259266144156235402997258528567623306900281407333484506913267754431576120459720232860285174161921365125322707132952516190041655418723434183782264918405626352123956717101553032815145658339166703683372414247941483363995574423029562345847296522400640147398447083913489018108345512622657688596456783157569432058443556799803914589455297369437599717553756382313136894211881223406145127590644411100324855255881441901595272399858228942739894982491905096196578700665921359465480727053655767820186287916016142470393032529016145887039192535158992581687477111529586438605989159045879070299554335192238913649199797356659838630119510910112143808630135545891267692398835592180188778182178146095581943220756127619752677924754208240943837739968601541470528220224140121773798024002547140409931262114212200858849578915274872253575711069451084449937621512371380715995849687274371424642915075784899786202887245965534357792289510826376484158905164106032241770487296767052692535553297340033686040397350266973593830291142001021426869294989262553120730600895920249941234874988382005589629246231856057307975998296782664787514397927353509099401534805515578103005426417181106524522035749389821169689068090002289090824434007309404767231519044120861848922671323766597953683667467117547517982107097233783580247177030184037239840190966648949872989102781791005398662146525549858080704908167729207207542282947890612151395623175787217585774830217345859268516280965797868807575351927505914032651762680482747033623175314728475484024013710636523371089322498698407287544985663449962067809691886187603854864777287637803690481417959775600617014731748198167691380486386748376334939695931084385952323576928183958116634543774838939250446379829334555696777551733588896333111465833112924797795709898849050294386708556249897758548125126880578253721583050077554699198837657750117005114630534140527946282134472976680844025304594940190140880831408520527193125921419073594636787705516543804244469779953673857464741874500002041690099872539511924857356752366604828121690063212661429467412805875039866094075377038152386184385459335880037448759127586665317868776095504406723419343375297411958825849325416385080140554883483333677436345173372060716140269035369250806656028291739908984755003675282122563553954319925297088712464867398370813999634916694321176176858373216008893419086236735305904813620023510036798201873013808606075067611456094570357505405534214193803743881852574504176378296376450300549259595942526792689137598507724986899910602624793715513986825544097422509089798400650264941225513302218588565590031178328854791337308716812116349289045808429261527451940195232668531163446185999987226838022620771224609157415650714511747612117247323423846162402416664438990023494491669680813374506234602058834775646730816736714430842131138738230465919763375176312835849640229334679436806702260046045760620221912923837901040641981231089966800044313934612997947240168997390625629361744919153302686396070138512802507301764937770443500066469045150264102423724320809652052443459509878477286822879627983684607699313956449046808657162142443477013510293609971317484543573558841056398927993167206797648493352565417285729254602784016881738539887086678849261468009681425331276661909917018865921714239168067083657019890059313070236016327477935568023590736714418543959198579134732770720601706326385564352257305955854011068926144274643585589870766782773441338879512188408798219115556354683528210921837373286685295863001231624204179349150909085496969027651647663765606309967848395942637501740533196915196716441293553361799834739418622882568284401409716742706403922298255067272732910343184570972482642326201522114236258629367873795059243629341526610795995745775784635146348399356659691384135191736150497137241088713302372572196955082408914041952227698553959099424083173848900751548406830984237377245225096930527931588625432025957515320766509034413805880332722281146807386389024767913816227946776212460868701121264600028050451734694641084631655591450130795985594703563834345302019987436990517116115020641134570950362206542903907812526131231653236874847129444038988129872561674711941764170835288109604809969766886250430047840173201593853495589623328336150482451236814686075064540905030447239592658607441284942482308962750964869888674284875755171309191088077517457098438739749694637770285102419747624536556572794680929627133994883631683855732188054231296730467381478296411100580994363011167277153053936298903287815067697033254937662376687153047680011734627329831868976495118051922076920675289448730165339133310821204728498013416123930126499130408646121039935722766637784905167903810751596792660077892087416397445023416873327252291141657085785790798646711437835608993543647074358745236760629551522138667949932273109542253332055661305232562773470867611090703421480454861728102908954355188556043640436687899969405515575673434043055892272797553867468455345126218238400678391142324685070187540289563232900545172243373739629655170388307882472427111709731730832381359435149663068011401452032009085826562088059727517289232587107381603857894295380476809921887448013895151736786620467428771187686651248638744922363518947527233124582109751866963245235284331421952023489055705517060040749547757482627772180916051147503270269871248192769832693662400866715106534551848291349707346986091101345574526674985341529302588694446096729614002623900279229009757706268073435427011998508694671098888534129061175891133455144280337657875325540999721392654372869512549880210358939257211223911796139164390494543977426706983007330027992469179544457402035795326049433086759734336348882574363289100959341316965700398305204455881569892169446573830455211687631792097318584273958314253959667581105258901512571095913751020504498142988403581495568109308818844214721821319840989428984563238499228642920677219821832468990267275708360871615124835865939252276063616816977258992526106566654464594812490345924263924330313540419609936371227850002683122721231608000055152667807086925421358481631556939111617274984571851095288163099095770745594198227789469325078963165605934660476643073604720441248943612670944239247155941216841839207220358788198480232852733693254391040954814112813479961861200897111718159832642629286479153492654582732944673456671681582034127043994107418859767040168354596553468298544929842665022078960515426938047421246794279034601152621889040325796033738102155055765125869959884852240245070521634392120163773864382559122617942901858003034077247964395946329269504255609617236602819323364823535418030702461636040730605267442844175696792909047605652280075716476131791855767374253920449482481773423383500661275861810111940647821580688685884561042271977393394034224630141348204270835396442391636434638447754394435331638257427989284421700728850848184038739322982318152174960391258344878000805339659811384696489666681600788059031038681454736959507984729073757686301480512974865889356150021353866840942315603189600789806341653439757310843031947404678801117422515541736820803625953128780336174112587139393419368356985880350604729559234988197599187551340557712256282371677762397528640612750728823646795527913118982884151823975516421863497908212224889342440493312960214302022163756376706948026871983715410759729304021306236597589213388195905765659955624573342422224165320900880158657055883195470590794426008098617785746489824347453148173911284443779379167358798957769868559975201109735471480954954217252667852674076863550305549218071981057168565850656441477020276101323906374892473108059193104622047607296495489646724303661898455428605469970318093933771706179171695625050466548095382293317876547689600070927623555599871420195314179770624200619429923425774649897302865003923783573553950500195952610134815398962902053363376322258346420922371100643297278440437987284362270679933159328999609016969601751888120893624126846700225853750524984994022097032333442768880208071551363351339958740701248772289434693755237138624902729195409463899338457734364858013881402796796805749485387943651580256811327574902986015663278961180794774186236007168487454991311262727838880064775383742029328584695041850794230663523079681152471654410277244154730976477404798159428743997407395934050539859216977164619731804099492346468286749857053014857796334768105930776505640450063793730728104963130529180679872613496240486292340478701496564835163161678382068287972397922274722444355365261654480973089661337680228064872565831116894632556993434152995941622970487175332885791521849947910377794301112604667119841272801910698825048584967896321300297899423586840277145279399176459339279316689671931025979516827661581440397231384508414699885556784313016827390900725161902282151921080936156485671442297638316422308154354999812203668774447574359401302480190466743007718085976323483186054119435514572210899587961630015944877902083331045697791742969517692233101321607031413890311532825521432844367352198102792212829730155504784260573578758291289071541779860407326037996392851345557134996386114753564351878718005549243725672999435902802821695345212153837385626412949220504410814634161705019851226311759582657894390044336344153339030257025392674613566486836889953419436310285141097527229264794093643979932418558226855881848445739440465452910963287317010376907566953116090496572156097020136138822939068786804403225195051919372644565290319643325181210975102379269041641302668452518421238104165158784257064555627885911540675696998750142456292372638782061570115732593687438728072658615237608982474474705256967074967993444310409366520009935851069646413688235732338269684897027780059360819021307215175618411194834900202171347782765144871264837481353671864304783553382222595706065725158631567289961531404106998859107316140779402558055809806970308475931444778933818822215481771926018417156918816324779365283477296617915326957223419288970505854640603446998789997952660963457636614046837344869492298009190946958514845317296865240689071624903019211248547604467417159100543154272166239996893014633539252649070406498144299850532650282395312686600361899911299591437401218033516587947687638888241903331521151461047101224261483491829204748034379045022772993809981885551383646253257116347719116685186398952761551543157142923732796708063359908209996259945792514190394773476134412329982450525817659104704771508927163534526170776332692859634033687459808004662215141972732338748435714930400482119741191090894827913527813410613088985375046431410080763770419400252805465563282480159696376334312119197830301375054190319518501258594964763271695293180969415230385135253379436286950666154435524177266048023160471003282550875845423226852953621792393702348410686419473342949235603411018885710483276279800759605536494018830533623264531685883488389482199341074852569528222886343737168612370937748797153402536787868014246710568387529083068223307272115584414060674161528716573266992219916090121347348304708821430788228224338312004887235969483926435652247276512374022109069227308245195409056594912874360386898641626726967247700688144074242378140578761561837713990791516343627361323451592916467160371259251542457707594840964889573117765036138178884259869336922567175782788743806037208796320109288908004328783787648511563106679855566317819067348886044456541153890289167906006954878821945019495038872645430868032494410943348165684558904311599615128732858262992366545528815552220493003719371952476921652348101080465280987129305113945495252570015036361793800376581249676804292443965319288903302418724946796022243943647411281531121101441239115848910915149410304023494198413574611223743249584716430630785108962750517942513381951661282743485850200385198904047690715715578950368521182695599622294305897271184398155203516183190404494878273315711359128019499174314170384593773464417321788015389924990982774535890035004285570457709692111347723925833637144747002333544369153446214451651965419309886136816406880596780250038210638737196434010099162758395320985191456295585623426727929369387879805683685785360094608134942235052779534806223396841033827001686921668435963925519476744601363218325483516719719039224926264855453118751631116952398348071908832274513408042154478986629850033382122929810887261622134513173478020168746759025368357716943150663902640699122777027029225838002293066726450718899823219377811513174604604315624273735493423060104626687298836023550170620613033263806936574344596374627126538828942643779328808132778071093338195792585455682799158064042320948836697402379247727872584945931706384919973272754150390742313942985845536796373711307267945688955913002824867134952941951914810633387057236019884762174271893152355227056800525981123433374518478463439455851341769604168871682486510440232688332924243378888831936210219342484496503895894273324286556079754372371181472498877288886310144054141786199234532142527454013083116242944222782974452515345433952946892717523281623877500605601913859045289916085163658137979692532953983281127057642374143508208246774491769166952580997994698742920539488606386836406144972788146227237862641806828283540992168918861941126762844848450177326881379560631579625326231307861665134913781413561201782726481065710860998719772405961901827110862707840334471111554325051801322756318689763279747791475298955077442567825061314180818004603108688946328598857482102213760339596929913575962651336307462491563880103064317380723977966246251503382523099453426831245966727812468586728716401413489953096984637147537824090072929938717817545452932849240142404334535479022727173887271062034084409351123653083272160051748573296076158624117034861126752624506898202872230241343153487568639512254290812587154970204289646020095729354090822963578942356538736533033484554070336654703969149679770620258838943640498057490711549970544410048236763384844479883400626139856916580591943619739369354215976886132719494044330657059214433246029218607559557987975033250145676676486295754230350822339005729242895761392436164296345672975335274452056381965252301789167119532676683668239300384412890615154896877053406736669087749130715608436876290021457244312519325944555454179533447000807761918095422727559754455405137433243788255338050906316068137863924941697432918221691575441921632235091228875353955252025660951433718872297044062249063708859785289985386165412124164426149086976666942192984438875065361008666827867219314270946564394234143574348959549084291577322324105305615058045937007287453916695494887441950323083594621908847529644726892144496747912705757043067544264282881665936251736462387401948800223922626473952650641473048212169345049641678721306615157639353958914869627162216062429145778249832159485861290811604268386275659146706919489235213011234998912146250468616261499363011989561892893224348425933831277682033892548017921763332441458894344416488599532452360673936476148066315163637735217805205841348610244908042212327930074702654645189403583980814824542650284792780655069588062483880397055572931575782374160241239027878132449991660739152742758824024752259877820813134155322414878488131737425930421133422825314279678884332793498287466226765994933236411921978687611164160611865352739858227136844162906108918681865902082664929129620276038694891457197953241559305327558830135898918820731010132300707187700059064671207086877752036352317858151125923524784748114817632464746161865473056649648027683093277988421586137586999392162488114349931139470515231223920685605445556196980911871142516361690545253106496206742593026763837022297788376709486933510576794509065839119545130809388524149585908561393484641276301712573248714830334073891976399141685803268606736038335771003704626218196529255853608883715938851163252705366427888832216014800511822583292820922141693739286999159477110236768695664595415263180378832019301204264021035537215662785941849559035623425748670284307781771457823470637095980397353259758102560271033921449513668322636259045309392463855586222269777827270992902289346060071420183747088715475955076485423778197336977582151956091128361832147010741142653047920765471048625168906820324533223035583656222766622926519484313061711341779812292101164585563476737426732598320288310690199259573434043449694117533994521167498052952817272035604743343794421515137830590096240519469256788832488316721494184518879037942501970513601489550887116877542075449667207932600882929171107835401697749015678911479324669146276972709160923488252088470877573280158469759129680764723263095524272052431605464527324484129567388083096879626551717603053615871399166476611310193610735454322978256440163850728586116746800706656353745072983515021309961657194031515731070612098692374244187001866470285906427404148825641313618016797871292937865569253838822045806105886515436228956368105381503495796284667245571775217009269639849558629190643347882335674746554204373671043328839229646428309680737984865385079363442602513007830554979998013062271363555352133120806684000375380919793206042392270577533966942086017072607826196651991151623050320432230641649338400966094310670949033246228069032312626384227994341173920457310403395534539510738320448957932834518123938553727479638470738194207847483008118104271481875766058652095149162540201782810988957876567536558868014523614480564813772572958120223493580444206776064200245274041099458534356081125958984726565851820788027412132634603956020195319832148991424808662212709824774506286210635777148257118883547794909883830042377273673888128715575817959748925911349005248477404344502509680832582470917946691036898458170300231860972003105740630720645374381704993091703901958671963630552047306518376076449435153526863001586536679196950191081040502141446778789406460633849073244872002735976288422110403635378330420153746075748163295380466421121748523319479797714206875994605929145590010212464105594722241104515841017851898986340858384637380505984613332798783635223883160442607021142109633157606960709537883254737354768278943034565648426166491449316333273708803919699846433002815811645197851878633919177351128838186165796961395540616933234117514131675596506439304456875768228078609814712480637777159149537495333423423896854850347235877401856425008992942355450601534977681830067373631248775399784372690492246640954600972200757388402168115505067903572712132402096486490008516909713094410271134943395758915667035666493419916890060397592301029168531624645648819810652177163470105763529383964494943200202065529819383753622276572941447484734404739694112129399349688486906995322808775675268312371046622458639182659161642310330654661623642214735705455582433097347511587649215021541297251400218114919754991208455615728652425375838408772495313903294343252330206349386992566781101251179988984745889141926407573132798702384282417852371977451011187628722318916059254821226930648856396633955741789480640119175449751486453761194588059496186284898150316202759224504290477401453171834109478754805855168111471297892501069628971138336365198958551772272028147675304450767499267157409243596392004585382636020918806007256506735229168073165365668398742850197300815072812305495666751463251757982548917110848209527453846333042519520763861377957780831393460869971986391676783543875205619732540409819847266081085290054252016055641935037162745474078268682703433982403055306913397537889555808959249570121734041922280975374984287713758185844521011746443594716454948643607553090780508139735413382363437577761587535766342111434136561482651986377489304680504551942026520141771584964165369747373336687023381538998795980105711179164123393088943350463544868745808394772094660325581622899980722539604869785975436834566970091390599606373408189948683929650091100704058235524494306932385709151722538578764647960687615646087717922992055936277693888595863555666102720684008413792061195720163250211784924431998159865663308393297227269262738093075262886585987718855001042666935270977669526068960418668104735619878750698587916318993601003070482419625423593520391500711763140736394400902089084528045115590944953180343735538702252885622031834415357072365628976907298287438790069691321828448742197837104968798543764131361637318863750834343274427067306810323843842240260025432422453217010212848437271955130177270415024165519900138270661090869771379992679983589155275143386007557204627093100882507991603990169474812651303654917705554677456189287826683037318352422751379347718701158820906046618356022175399056812022661160887132487560387013713990631445637177042932754395713178652706763622049196601513408710835894974625073748843268239943096242848832588699098898118068227385665031265169437628170408041355667025943063737783818393358892685538763234041567015418759420902581385002953962994809472119206645286684770416421025787429894272632037204730025660732769722725022109271292556210470744414660317505317635469293572390517063364322929809383416576444090797887320221714587888469864476372425677786576597135042182973128090380788828840346493399212469841825227231972137460940351999552593050393007264551955823291389780131397857095812694981481265362034896227392789355224456828126941866599515919137024935942847231715369623862015974645844062032417691536430578022097008844502437602069296841811811787892796983213770211903442523484205380298612936012918688515795134154660233800570360881442331724847381698136199729476717457561604772098911315431803144987094363721947639186062600320106708507814037472882103710572853442407996259584221387201064307108291230560583915988922866713173421288754036518442598190142670325636831665660437334816908482762190330483034048140112973741509008581321774684632914827528306978341343985616956794914774476448000053996221710829253943615804772635049088792850705429625701316234903669962541881374246254004130167260766406933028181836243693479797328493984629166220610613707020581820468596541139318027408446486857170423660948250692096447490608437801634417765071603179577230378524357314245749351835559992684117335062440917088239884212139396537536233658453899430149260609915789212623024947837611468668848125045691923827158291002865846919629973663809397449639122645013653920692969133643446812334280576836162274308467976989903033430519070015417837051621078514957851852954487729922496878727464958679438346110473793173851777778918346930914987575591491519110203811298284121371316793054383030032239548952445088297559618648118711871253904439786113976269186046529669971187958937565107684020866026596746799945151672672176848462147351800375446053317568097730216350552978165200024789510390084605201729674524924223719186461122250309870231834161011789362820299336408633633809714127395116811162153469220993349026219128343315623112804112865690668721285710025465165336103437029341118923162741895717851146524029877376568227194671333077766275526897751700974468091972586667440648514111280397544314085202318628661026211484088104217860734750482437400450171539211660615448574989172067697096278598240444366146801496493080423653715245158710053306908216772595720068595819473673563694047988206158751987901003246060708824801143356440086885475117485673958683808879094432245231387664861523470364702875147387580167160768048398044400352112638278338694870077355638003710361577163274711785642320027069381195756133034981340939360694809278098579740437192555120494082356904301572509583406893842236071117102932597616036996707074339312860446331329223415213157640043419810082189384257956425880248705119635729908683948018494134301443421164056851740733823064008285890454085582682423124806989948562032737747132749247655509027168244892651637551895133544366732252104375083035783663140653413342376098597180573870515039487064433384317067121747083791817199632353512034649206528876323454598023431988232136004633050619507029394226185368507233864365265928787209427046785490989827124713374223562223099787469348137690170711057407523285042359381943974819150645782575313828154601530792100926864623812731154061563931827134597389440319293780354123397559197850761244712027095930700479476425600861207829901210220488360636281111318252589835270459179169362211004305522132887899571118603872261624437425474122931167479258482847265678573191738350842186851015386167736531433324418277130541869417916246442984557835839545856204063576628747151705038224266169455377114367247609315962033334270415553214651702614355441878023844971388039226235173919302241119639063381657790191422786934333205288127570240176550472658609557513106383502965916475160855145376955177154559687640744203855152408740723000442319529132267562990969760258597004243179200655223576870613932509915747434064772632422378951646130431687941342475376383645175086700786262723816278136825424296224945867354215921091306453475106627774445943709906487548520074583325623562791328076107752866422563171550024947266450512184668611994959704134951819473718324840714390413153021897527678274260482032989411859749047914988576315337363880282100644769650786573018275446973470761533146113946322128208432879021736495152900591232142792361964535072911151705779656574383421195923581334275953194609378813541635816579202274244943522262698120273179912954535110721286460176836576288009937963427706787136063485511428720619307235591645497830155467098032259713307670060053437018516385386031170023459757070754456224061434681497277677804050380826541012669614366946416983236113130680767175977186900766143666231589317168848341838565674033387869181932827585076076401379177558846669609560814527116301144749283177517770314326540730650745738908854732936303369916152239061660066969582584794439103477911346434937530282362528305372875303064594121991508264817515235862760979667803992069663096090064593033692046043280109717431901949755168822487676886100337688757721934755743886916777887762850553634477010749220185388606332493919716928836568895670738020543759259599009972493618907989056416149835657697149731312296314902877286514451365388251909697346582864961765913680581235085928284383307150259853659380230769576916765514525329879429340409257005060542246481854548144941420773283027716903181395388800422381775536868577637390791792543274751265076078176549584767509095256961256733755418862302980862092125556706855295579156258323635731206874388473902169253261223982546559743147692485855030245301116847159836976058150533269737373486671625908286997731876002668068150977933903424062064827130299429784823158024694617331897861227667756508867082554180754448964895838699511973705163043771491918564646506743112584712263856157176640084567904520821444654049069497819713779440875024839833074430542855829428273240998558413782366915162442980559315933439079681639378363863242474718037395715228867411709061803458437057028542636689598751293088325955034337367839709952937061662730645412276384519114970074781170655205714653911341965655518361973517885969238248592249626823169462160984971739264739034023550993264630562492101201069145173485397256026085901747173988985895941081409558701974511367845057320729024394389376332517160640538251626455771946527494962565105925816058928240286474811312394138482984004770678807855712330396500228751658610411657458028880411207519877598316377591328634585542911636599969731387260769693319742086906955372655543050916501337674945766635326500746390814695366306474912481602173518370770451838061504816147815638459258133190417583482555388012743784499858023729322385257367729808125637136232847960305149641041028376486591881034560476976609263970317874894567053174903411457510381037005320786382062236566700599291096367059995367553162682500747733761974695078787542662923475778340625399903057962803170968443423962441036760626784134290979126799580493341446766478524357558660648728686317114403897385501076358032858789939477679753924924941336630886899434921461885191281026576070333316654059516967097267475575061014876253299467661518194661364273927853136546479524245647450332517210349760293689918796032502637192985310450416633848245959048960569574678265741763142942491250113293858908651186824341415269106423367817593569958528266275280847670720324508964094705481336536248739566447986603464569266130546922781021786488247493757156707372356639228727725282958736542631248459594831582468665106956133541603563032941656081934243198065156349691000538234591420093008753963883651259662661131612770913449787335071673701715548704290922740601400182707267744874403596662006443144358092861308417536808625675215583664054563962811352609304407125933041746397708795011897227924446551706526966618543251152697597993651110615085488905199539801532911895416637502508227449654815910150939923591862510391345707410662032004582126305841141372383013081921509468052276845791864971824487633631767757648468018490186846480851625651986346030857340167148557052272477150868828083146062544976209711843510005589932433131266931833445666104283825288590321060442267229781984603715804936919684837799051805962621021006855239830173922424916487204995733863071632016566662987070738178015204462854286069152120921763821964275203315566146787761898557416493368615196652438627786720626450404861306977108212632394215950108919159888791641911241322204469529551191478650914243706403823331844013571753053244830573645015098813674476825000907335521957209932623355989086562733814801605197976546162334736442604360452634276093067407040529767532327225773082331352895528948778215259760602648791325855545727352106996416442470126094842232981630201322330962877519720126276351192789044779271514429691882369578898056433316917782577935780136217958418533037078341083164353186382481022489280676716358956526767219484036738551323859736232267376333935283754803136805232920203776960133567326079082286390332524024118788982860919515704027241272133939190531287323949973102374382095260468656921297824755274921723533009437746619610355076410838406934960583415634071264649237909058193317116692061885052199885996776964082264846693596184252118803012799776543432348962318912575220856245012505557631015585815872300685905021898011884470846271946419033498534739460247756688078223671154413906358189587268222273885232109756779521592865485342529818892944894734654253356875410578620817431943099897067484367784571128797734842879390919869012785070769463663883127386083350495902711622908612178619157194771241078041042148727437382481862625725402512596307919960589460593473350396906533647395234181692921201539056854286902270831491460000080338147900993165389610046515094972701669685298637304920673780067734691864504071952133004759667165765999469849604575756446135687414366754904379964545226124551880039253259729817800791606216724332321964824177065300369023810395192544442169834176780988265632437926232525720814099571365665559005790810009236215629455887805087095079796378167328916196238259466215729068186493667911984430106712837795239142086857689725614957118245201225182498146554304596913833816830146423547754224013226974817525322543116410109011091965613188628470060816587705130380412570779450701555012071750527471245388440359118748575680392795591888602803833234943750576439098244597023319680240338271020681673972864962547673547902888899847455586661470242130526186845873814113357838425371261554006443118055500836192921497115592884000758222682081761570931620547960052691661893173362550308894660531838655008321672409051936686548149732188365099995423975085641672426381292197964273749953369241897890770337584774512988563785301527140468404557330378089948775604470270488531365126842756891756981395379589610721326971539801975939370477824542955778107912778948819413176690696152995063850666469614140459046796927229669763715921405311323016744582449922378044027371333273221404889527780998277237304003369389165054875223548966824105556224062732849000409743438872915355316588032827745779640138427558481393777681893973836229578415520880264817776669506122153600925806919857237252913682119756655842322475601466760000858296029797315458214153666002745446144937951907398804026126133031835189063678690647878054297429423485567817431913864161211593337397525465640736488475257162954108853554883166997380327118481009718155992976393128750016216091294739773455599841170005947815451094476156210187412670672534302172166847718808835069326462122345367141142131601621375970943937603696186956148329712749492686233217254347738582084725145091903095694236297861969537282011359236437610016678258436988862684936063459737141686906911351508145607613717769301469972589057622907912284909345731337122543226069987665842545732160990318474984698964216234199453921729969042091870655469552981454677924459012120512258812492351903944174922818060303533933940264181495708789330389876342355487028795873452204862283042016789695382990367284921041514925528060741530999038037754366789671897338433821104268104144012498174228024843380207815647411723123375327632029507089210744926554825005417733511658440888961379198392598104975847227025231762555793954236121389073987873604631370432972418254711106595105019394156793319599755224510581620614544679048622939626065873496659685273073918965836463098677361175686742862772592257601843185283091650890272217618237053499497757412821676152400119598196437025199954186250583508932322554704331911297260360431387583331233864813894437831794784366497030131092740682270251139016348606383490407073533430065189089316363219119688045157412510269108346217009168374197936735357693652700055710522649110953535816059559666639588117766664582970674577251910645010878766408307103065769172363460156940043138770680703309571802252843536709969292541075416442717545744470147781197659033155122570276588949639470142715975527200525257551331360168210710931713352601068070701898923280578146003394774486300385108940254141084671820868343325211109146109699069438966379389190674537591485487650271585990053845691965293003485515851014255469087420164600334551266302385026550228319225528453129361252573469036314458282439547249710535290662062604687268762673709734965218098980106978191218490129569264114536564656663679041689802277918985197831369686845861366800507832591994282495699900779930727103707597724049698521904370767238299573973587214548922524311990413880372517826618295955194223728308404748211856737556600942782246877210549476494278199247926904279067120130649403682560987000071208824930530407377362333155549655526610242814386580957798723590843330410575426277473479915554210178378835628928763669905928935851651560083921231201719108805993281959183905021488548840060433674992114960255272142748653782423664318051886196902988226271038981832464383203495880606202451084739536090125699034153460906489839260780605987220227354664708844909913293719075608763540485024782558280036517851987363276673027191929867006455624194399168813902050646920665693613147632220534967304286570748167695596408959707546736226252059401095154181883773563620599063251771899590614814060912680352506767630566020825702537636494707936108253863391884227440779967382753933889867248085866176332047887446558365379743665544908246887591373781921764807884226936963712589133599506993998236642871754021643561093106508270437826202882048553576928066095926664602376959445113351064491265190188647985637259896719027795071037220256397483729536712129932495107696658026347399760430342334462652949073264637557454429979213376555025275321159485387913292263140705540305101752339923376391079393795186295895840884659345117264687373634971743649275275691734566482536623984474616901273155108393504728355150284851994027143281557982498075398747083537645329484252848069044194760767213425067206340348132894062910331457058074433917274673169557129831072824529519315156102202871066129315883169931053054825081693551326853443318978248814899219107180947222465394086631891377257103663445403555560391555745465800734611952952663956746246130968284310748667262240562308299161141017877627478298961301778535629210557478390783180407952347749027800439664254349210278003899886518882151944716867302986815109796044694337961406001090750296542108447368048850179266257245306564166005634161841015630755072512940644803021429111921292034637143568977234205110766643228890349144146128142040344699750985362357140322056882148748023365580710496670595433456656059944632433262445445344396105659449722886688204465893253735538991108421783268121145263211096404308580096077890049211077894411160441126488104590937654601592784571300421185776382823470614909434929876676141427527668234745094394745111643131623648760308060733774744162290573571082778331800907935169514924287032954266432530770927034997621574671308979007594400048470984591766966044742080326812247751318500544319356431475961905843956373375199125975511477258363759972085835061055781420372080097732381927499500905402724384326840503117664421559978297279713702431960325464702293549259363035519216829773269420832785224662661212980435350501470568333375561076939420411327172173784268625048870059828903835030133738960537162944319440166364499650354384814208103698917950665301193229885184319997185582332603983670611016673514999699598532485318039258592670399840509882009231209110404864286332506347659305990236093586406239359196534870121459552975778676089156841559025238028591739578627457606601713967815918288947784645896571680273923043577242744458054534484024633968237129310309119728733610735999740441002704053293297604462511073464070207693894535691484222402135249625290738141101741626647822943120494971818541912096600166108953330116943889844170073580435611170314998995800866528907120224753525308944672202269497902290945140263943789881850564735737052603428976525230310906253156107681472239450458175058262230970310732672731492335947367458962321057463894773788092468652956800331518862745816205934710866716086313172415662175649539548264349155424999469001670711026377113458613937784213632216213705114746245898650718977018607278629594599029108285731691872608174979523564812324740155421449404720824962408445431691574342476262180641574045477961644239500146907666381429951141953064035614170285987880844572112786573975769331356549241184518450326972684454087329031745963369762922963550956831355084912726107426395215111867768154033648746301824285945525519339532844924364216512378969471618686257484552313690486046710670272147674094181924019235848493663979326511700726787676451069550917456198284512723529323897371031117321132789930789617071494253447887479735128279190040419685122333461765883240722295472741435065738071501821637015340566907765729120055612268976212407502149247211441742179365870164855433820349582592030548076419128559704175675241743225080724906739717984731547183698423052023490822956183549264570637262868599897516778320204217080080442896949762141389704132693801927450016311526468134975302073790112693806156835882377605655008219587323179438341795418174678416015406761709587250836852108766139474677239762591966918632462578071615522829572589518176247211104628774584363044514594911749130194693481576806020081060997893797291334685358120906436735522096449762086087677476762727042016860585543066493711792175715574135008515180008714593850703202705907063653466799604513117050577663416556783948267405075517358229783922788878772331486734918931138683252098134537416201498987759540310811654726286729225121520872787418270199592110446245733351711482296122356195990628444440925260540857413982556024755127786066109745863625506697802335165683985821205783081310630269867908428357289258222095952749306191052597925813612359387617819522639029486747813405366307790300710082648207931211695195450805367692557962288245154792323805992470223002245996563377859800771419385095058546062019516923723265969405287495468912620989469788432342434181253267533304091855565526493381584494491842744646151012908053004995874295075871817625852125780454075525142058836446749057884000596646779642223092919968166245992325926680483070768476383526404930640800854523362012886018884624038527358447628117037390294635972919893742297612480566811493170231477132902287139085152131784655129874848667410277329832302587437112109968653114520411295560204784163815602035489226002123080767108038334470271516641849881269840443748018172090560976593812548758472173594019814457242416887573035357683364027553136230984187109338189135142866227410989768095558454365855935449767629336143899217191756187098986092924793792697707561495604536115523465167080795149616348068439811963941569341179064267396775552770363873219002324437729417220598544235825438048004509752936728280988887709699672839970369692507930468837277475905769938225834920041920704016649045295708792560755410916118422672052766943267566151671948137823433677349265608421519712064945293085730759336060863200588563059588678237459768566169068329991821575214056576888208720138516831517302730804618734709341501026880520984915975156060027626008555045308312543139944771871185774659155068480705523604823345605224412317289438622412189256189786509178414701894782727988481348236326028218145695740279347966839892042045145221140216461120618594795139001454005969074120671399243889345147591192650471319274131827239178643199824686569377827912448529967517217676480562031286346878816086630964797707431845082698724639104743783199438090991710738853529025396509966454581672892734282605826195467258577299652853437387086797872978691191524023701138669428253507080031279276739481790645454241874309189338474765997797723314883513342210802813896979590961697460152945097056424846115493528136790024675889933684765005113102292672275273475196103416140144702122499234368879786079944137901204431811679668299962333276504489927623059791293148454720652457678340151022544687742152781540760852969872939679175261346718037159138542351543561074916588442541255958380295591617872611539301552992471227717697269851898488912620785205426697856727616590789346717644671161551183093992631087428440300225545113827486229033118539860541783959826416205165762500562150601246098417443949123470343826816806512476511906583144900323783361263546847918268511513440336568063116691146860713731179657390411505112906043993779894472514268005959879287149481680176581132371528090666062008270842766180868794221207642124871395887321668919081027002188599943682088344700968924732855191086712878012046668430586672715061043391077636649619513411376192769099809905575844928213740335631116821414733494862225362769870656851328754234386240145404402004293012468506307415127190758095640342140772501611655639823205127611394163127532882727632820602533215850049160955908369249009041462383531481723851647904616129745902416881093773330304307498995182568152941785284040505744475587983108477717754627637896529111913687266920775385998755222199872177617715878459106918448901154713731532315144192870916216900567670392375977933332580153400419885426603531748680476381753855725419776104402014392346024101781599274695809862598729963610730257109149639410288444081108565300260159329256358146122880909876084907220763569061761643308042337950441111592739238625821290664642021962517577826283023832188641526654645797111558259191371543566599463049835141444790383145848752466785339385611210561214528039909016845604975305834615035453391505557076064150597638384056539952011213526787184449172497111333639649415474262705337305596345343151202481744501390669574443306375920928027164057765828777450818773618522841251466904319773572471828068455690125270830626382964502029991182555398592061096049443283129205579159921018272748575646510388400638931773765086130682610626003227120198579056253521890728534924880583338209327449522807348088912119474329960431957822101198895917087800672870336227574106517574507358115064699289896349739883988108509730202286444622797488266828369228254255737598901822388109316878355858852267063826102309483348328630342499988727175217684349883224025087220148802571357125234226994119105815344439380319097317057829827026297653312316926538446611480910324248238788973583636280115078506035448019302283797822865776949875857014905278347821177919101534731313337439568204062350530101168166028504406467345516829430223075771919714755233783640392697528506143732084859794779937024853349681949456565654739159257392761852006357695784983889518026353100172465963954607927964953715221059467647528910959810449201980224296640308386382761574083991608393785872806690590830782588907680407656512877712785437671044916173736940973177129767615848885039352375828205397810499323657541454947747744160496533185808782091951319173007997549490581269589916320777650108824137192745765325714691826176102500159055503928822556867476493325161508027340285322179480578363187446911972949903521944545477412089657880497494331354760707116900048048062287679245112783840647989992804975958651324071315273390327664316661486512746915872444074989896928004530658537599880840625651379660441301612100408532550427540658470374948060017734076310932998202567552926635875252663837513247525078344465385486617761599719088936333836068511911555967710675055939000943004171388845805265087827290066854006566813619663879441214397684855830018394353365360920452355808306725639545027278651063845125587352019463478427980777607877707120684334073350725414267994914028770039452190249089407310506658275276972685763844230478405694506301479254241859716762212780196931641835747374475185969191269975576314312352800579826891239713359898823472387073201186871414780441959855691095127638988402598368084239449191409913065444534658527564763664500233993577395961583974906071810447607058293472154057273077882726804751942806428068963004764447649498178806574729967891460497210302257052197584303882848975910103495231152311354046040772268192183848806578744007673925716637856050304384395365529964260237627854014259076162726094958609880316832363089394738000727819204895107650487919445652222661690933987185713128107622646221376462271910074350329463472206991736058562126528918995760105466544520588626769316275093835082297908579209670796300573178764215308183567125370029458653222798266551201510602897284537134962876735886326412455041041005322857545891216408916776130347354418962805708273753130851545226828955647024501468230342389111341325742116375789925125451191180030222845818624181971449244503674549847833750974932811867621520902174973498859577041884528776874889886533700224137683519118763698463753959832831588378891472424287570911628180285816318749522401349260041953898992574660093986540182585800676652099068743435655560403484315864330944331677917640775650324514517642121738214575151973519345382754184979690961603989586569117288523311712282508814779020260632378139321649466404876197327684427523463154856499125762304326518668682743508731839151084123133228822222383161120634137197981675543352813731782058118477337842178418069842583144017511106630612108414272876010478804913913061373793249796819476770084655927921327792094253148030729835075451501366135500721448160262759966035317605300161320140068676817737352586376712159887182033699940338939083083593344914573979329141923965185894205971589185568684958628845030078699497972739110003160940479121820790589882121317699010888333845640319259854556536883021198512451965142940263653148597204734436662967321082488484287090307878051880451049713192173509656987565612526359087931888564984021253333669561491350175066305241652029269802082745518831019370990216317727404911990263523987536841390414548889005268712759486926744236293363963225241494247246843735537873226677137940983228932076009639654480590820799393613011244683336968524537052310917124004777649065554691002945078935673714519314404128526268444318854849007034559906188771110768335738332035990984074458296611432654283121704125261720276437589622419215432053845382265007929276860774911096018828922294190978961326278188295177388892710012368070076278328452308146885587323575628769359698230142320793045442260523559957428589123593449614328793763570720020144602284234943301201613827835493135881135073889019628804427061047562795119452608222210114187410906388493045482069325366970636207349397983739567205520688440861528214345368010814747680443561999158988405618708525584084286148289948964861709617073820662922524027796531875192532158691977418753500768564360523187151069143874537414076449619679214810423667493191492496347555073867600903111081860626824774651093212658689173774774818348281315645048830839921351179211595384821210948967551031871582222039509359933886551008192300929054774316233411833040279527079494341352479700340335608357435752661798071963132337369365542285987078291478952454939656957277286027434382771690079685021199967628282027643760539423670463389256041756948733076185096362267187535844856339326565396644448366028810543041076600573812760882307356265249672860122723622718395460588277243229783587941214653730371946342109388869039452426001816574818277734239678442126803297849027336145603937766982817407623363343880369602733854165820349375815254026733620261120932108143324049826422425311627533006594128396569663052520205029848431839819281817481822097992207929020125647709722433393183783591154744472372545926363585941955653482694747353000071295111375848001196293561263737108975167297896175876214165730062363514260471188690844710103628064001235746811226510938485352584631421883366107227871406912998966069027319392978026890079153900200676093119036593585411540060463616774495612328135625947369940010060103228735990064209862477028160042826195863145926535483461602951224499012697226157285657174210039086946451495958711556408520967612397218008995647290951698750349729950978563579656890574848093872070022592560563147708315510840664025825452165293816627737824126836655593467268643946666463976977865875569258670411960714766544471097987319918256867007563531331903774294289659425441901904878542298273917033680617367189978163057184810312593424271857601716401425531297284908041709820196677580988435428956844382566819387746015693084247414373895404087447070748377599273587755618932214205732950042459552452668447599389570443471873015999378993965869763551483208052607172776251251399804832500210381727887356825865111114015631037188574344479449036906422392280610290839485188727168993050411946140873378066890797384880924315936259956985602464806137147219113686428282101520656169460811402914738595884945707346988903881963360332849059468150875247134639183405265637263864060988283593086650218090979679592654715630697960141072207773964253578353815167456251295836920358614087336706961578467318045922054681373564933222474466676951411854559312720488391755960788617928866595120555357082667302862431011270258280338618014305244665867822167531690342406656820010995533988155421729140803882773508376769931565746505273568265331305228323443375059043124985580252208183705623900738324744880348531975939673311557961792559795805042155145820544430015633077168948535107785944193163292627036752773088461231278031679327574571740320251914703040385721646320214060436208029544379839865700120426497561524841721621956595368897179316688912025700077158261578375739401452072986899669191254465562257124128902412159810961119759181361850467660358168916760961834528097864100116063333638791221882605558449653561200083394782868852606034619430038592423685119487200871031794370049864674094178983235742922256495826553496334306147000008857740664036582807419860939651337895173651691962646451066794221576982690160503956809815665766398940382553238354999702298385508564073455108011114544325183085734900367882067936664504951036620102419988860619168157360523552760700440034993105267020454557336321503627004175097532393220099208866595409152947671907277629195767073617832660896619920057283751585910664694804761318816204360396959963388748606338117008086679583217826266598296255571387758853952580756973305907217532924347892314556051475444773056340309242773073487915040820185102557990170448027101019520001352711621450428162981084608886803026550594797039324795981974301037242990149677946823642195467447020340674472660334201897597137629291086713127468090988374975730973477107455975976339999496148656303735302576968654868970956976180615936519995573344048463495462467281074137831694993605310837917332129795980187790745693007245710261098154882081566627903006981579368491813823875895784864758645333640581491351947910187932712724326538507713487053536790630733278344609160109039569960676585560462327002235678524338646243285406987474167752878475896403640723018760816612469098563223330732410829238257468343132943081039213648285562249480490652387179105309585919435909136608742143476916105636583635218994922915084258486859767224943463681783776547382776635895762327679526433616513746618319592616998661212102535470204915029206066064093258851317658593059882561506945097439746911425613537143661815705953729890008249091247135747812900148623540747927915315010997803657795609732912202381262642681455639395155818186638088053739270924463918093264849150823453688191797618719527904350435313728398009545364692918173218640273833452102705458279757636123484695724501564024110330673623916133983794351487409114745160743115701980987349717248197770169882910874127985131314590533498913434025131856907882625953827601610790647821186709116480040588948695783035969808604401455626436722722163827887014189472099217495107803455492083039478003922338915020790604382258617721992743625016271214318715235689548653580681904598074323729057651916299620313782169578358945996838971940328977647843414599137375185100419812355260480801481055654873673278055156886588652294758613697727919402473069217387244127285400138329448309404056859410700545099343120548002654115330515624417996438341991525909942056047523100713121472425747228688754417229629047271525442472589355630774438209366709353842727512118631457895353121836593569820075270638999198097517552040038857091839740373909807047535530832583623611042337045572799003491682083506912928651432409601438035187395277224693212556803283744448234680569866493920973259089396121704560339886457296348938135409892706054024897196088172191316204310852714389571776478002821879304929597269199179746778490718927803120387447362222087081169399409501529793382017641476963168260751368988964983169890218447203269012206709992512703684508590821834991104435945830877918358775858087503295517547721768519649745185899992349774737948542637210084366799678300063606834154340363499818612775467888192939502737934846318548568213244152097270959173647000290146616414178719756561242037377603201717634198446864852099276308571346148527467852330782785456071945719783338001199690891781908041569055757048884397897052704792264250568235505273583786683215606408208093779504479642409836168490294832856036411304768342080554306295362778360289986256493911915302356934045729815604944646461050700592162841877950028086019714299407440814706333975962882650137113580662849483782028367666889756432479513416736393361292723223952524448259815874784436011679907594282391126255044159450742021946747906275461620337802831111771247335080013621509105858798382298708006087217155549149969857805996650305004902071324603080968948731275783884833711133476255298915680992009987305524968859998182053945520516114830690818010097999671920040023964379793138230046255171130970067527301080106461034313036259199134357544096226598352481160038193936656429468808239021311957468846731483325486813116151058923796209995797922317549683492020970462963798019836821263506396243769952534386934478720603406282872165917878568751452306564169246825314718864193143986941812274448487822574464617736785755827382616359474016873200718981833862263940191643863984742948553354044439040397322993449195774930524638974920673565993697524071695722144350586228411493656585357350729918299442687178242775412238931120490566363674902069564439840701830364464054972378642720842115600299553368812185841770141681746510497462997902569868821437909065925979106785576989825503222561244335090295295119859942317181148069036333576388683681612011032908855991078776303594094844563920493162934153033434516261346942431015542031615664218381464151578481863293318587277051245193775128909082390229555774997882753281917743071731251709368145553007372553675658923997824243495315139816603986146290584881438697079834498910132629578941969136449128269333519476894338246765636429828656527857248356995670701824493579551653803543286935550438954968623517280475717897264276192916535464184954885346594265406301620508430794640094268151776529931182255374352503571846196702444422053224958802233728598786126645723262858953095196191081090561089358285778368705934506262205001764199350549639049827992277208105189944183156273350576661171641277871180432018233788399705340442834353351712799762831936866952862374022246750156764951370880617784897173778936929982943346631278588752574463323220065888820136004915940717439404335285320605772239134455104037930368313205025844633488676866085574664467100116732822168332377468251178798116992080075581689106733517402958819079681450069738088975721545860531890333206380934428316372344796895169047348439020007557653591297039543949319907027966436831913290822113713740648614697434687411402777944411727820065577820149558855589210778445829977272753005240741064538649163553499546912721475599907101919195321176560119790817281011448863530379662681374327792559130924608176977561872039692674294229179159646999323936445006060150414445363829841421839510828098060740158110272000138915780852622376819074442297541975815666919082342363622111450376393951837905228400358411704724733200447234764787198835790797933403450051441083818406704583289813557739207176843200010939787376981793207569944092949017378800727755455535967781331166161842959113684417012467774202729297464317082499652808112072274389731028588485824546734415621449876714578136952814298138052654785827695556028101744872761899915946501297468998969707268249212769582607401769768861737198779635471548990108230895269968050892302090250436155117162594218979770488407616770568678442883763513501747055685403441643529432316824985422402262280271578818463928555136135534715621004818469609609972250357941197194800348164347800543311692134514968536633352966022847575747433305177036325078270182827380222651997713120372551369260767411022496159382041219848744972709586356362603067547462344550464192068999388427301500604622711831034934923007319059435355985624272387249962309717555896310759520235247838551831512267366498004706646804227307690023870359096468486857748212603228027508522447520220519207397036459693193129100979556495372445875102942078666811962003116926899348598487339430630917434449422338847752625209745722175816667329790359368458815650301906919581818462679215940648297564046475688991056534303979315898201100431448039246898241797590128232899136468677356393445363673212535128931687507063623847048135181790508168920672838218320818341983251599571058907854025264461956508557786887526707011656934123701483508968528126280869668070201782786588166937720896825645919260582849958945820303959900074246613068859336334797547836065091738288150518627828401777915532913361837982799934280734921694814358087869532970678562822837567467061368877462300853766898584050967350752429732673978171665361485399225100961518971565486186035549269091316997229401070268390358198044196855434578404382849257425231558026403582080355800289643372917629722467979630233395439073288292773479784850456619026800856150490142637967860202169052975706426621141740843257250014998600741014120447685121578050738839138243221565883450877183328554928535071204743813946737327828910389296195902065333524837309531229595067515673022270605410722181562557302662512483969416053560329527693068369828950578692837276826499681454562310547483356632760061396538640845678899337831057071378830434180320556699934506161171080653902059714646689711447169238905655784303002235674623729823955390313652180486388476950279811096882700511334033678072663914696529612233337758032502598484294008497368059861851524760589464230302002132510652573719134050374696092062167918424375082709876313122141097998769822961002938070232361905836646256189825276820799306029351105017822188315947249536898984615221123891189913188773116538844781836679055779059226028905316998766926926678234670675286543310973849915622680153724470020569984612044854517805424483616943787923956828503714206612922045647279955623651081070333087933524892514216251493601067191806482088543709296619816286358592252699512264568458406108016193836871946919621774301016481768506873726350941371929194981445275012148696983121628391442816857730721566825813795805794295719225338738188710881939776373604867826658559962232064177336767805689287086939582399518246072823614926827481712358614904675455760017748110711897980834760425069954034181099968852586034688364953717131256781583036576747746733003766551407621098020041641910698591544664848875316616312120686282088438550833049239157960068971161022328141064178692988970630793795805553007752124185811619173529979951953754591227831291088842057467562957133212821510038930698686373593754255184743961373783363285435993798120651340179720578322906576412541848851155978979331061731562073414621110814130096754940126607599231941617288221545175720203260239657376506626905547247541187737596740815247156680856849494117870864025403454898568445420904798644774791799982211046967118989896229525388546461383293377100634545104083058931180776637240255449008107875392642400407698255627020915279760276787536618429612414521906934859930824678198825138160725051990342201206222933821029304595077436514235073046438151704295090091477860424637540544939910923482176352875342850077459237705689019611660384825773633548482777994005312584631840447088607292390455829516904025724842022949724741906114446905752500108849171284854536517778546504624280719790014617630157164557600360259428697478879913363823172899824919660123664897769877060000035291139885632374818009646789990557448820862724914466375246046039156114823105400468665314107778283667352129162168460938166278234977555360664258154489500267966787610679147123396774382426869952134000155423909659684406366022434510541699402063085543046667028556096671554097989525661688099538420094456669686562127670905280068892892272126015554657158836834071202294855097618991276210331154661927583860286464241663622790925823370745010163849740405853314136224517107736761048751575184827122142890273656804093979449241425801560236252071046303096518647751318374394201446868855413345840616509986932939609648070378185307504440051603310764976471512151357389654271457048778372333831670267278240802418622645341509713593936033743171457264971214519845754889326201666926977064577298125779627052776675640188331508934376928888116830312345594728308102874001202217061257133947066572452986942016751417725184424778329455497297509200741326872180571062703899435217994130511660016982799031373631107709807705829727692635589972045493040349306905534182965391966747129458096953333242725182971714509781369824067362868964411042905899632442312152699082456140459982785545216632026332587130331678841300469169100887938387171865694823721206701974943556035221996110603410257003873647988137668946792862422173192047477508696265706447330220159065203258552847840298438528041111497065861453406847291730034423790383870837013903025849625568998093324842531636304631747761601515103152014196581009679494893045200352622173274695392939376272224738901929509100320765252501412008715829047428262885308469619211925290812989745249923033391097216067046938837641663488069934676317335158024876720851951429535499228338055804644446832539581416168636710432384082496625821203008132276934331269978620149160099199951264063948859550313321511025327280484858648667885306697132448476148279042519091838291447872874651360564845641389217255496337422669436539473904343269038989496003655015336151202182947615451708572846178025775505524882012086584614504843193447387003628958093576828641703497185526474788829970242833784877631203459308408452162378354614321573550308304880941964168387724641720094697082879639175150815908897758525950240868041555074726693377503914624922520672894656066183728005004799921178670260309828410238770835023711102144812982730798928335862501827200953779695122087675525388502034569225440547284759939369198473415696032081983638690283481919350224355061090272011996362182642808091510789831623472400057763523861357280723711684339978024104460965904299825931140953018198599248330398489284616189832663430670790777218536665872829030757817416367955473502929469270942938057302199524194036439694368439549674625590326394585748327811467807714450496406332888679206073168076849604554143995279252133516687151952534309707680149053616351238967810304799022220535256594250271730255807531464689965077354753243727608014198361348011051523917919880620136455248772946547473132184963315219515149084944340207006474853531274108993237076338537468647059143045808321859446370678180569833355641214676934039817799325546727598627377273100049343997534639380630544776580417235879842059185964360927093577007964034964343602219441230733583702196080996292900294003992603284390538436880743010252551141475558440480284281004416992085585855902241642551556828308647040432491992004512616799269283117956560340143943544483818771743347954669868055825301235838014602320345150363834155822834216486459772675788156051071263364714794253419132297547712682267651762279439240482583752991480691855039447351552924932540801334192925016774639387946321290479308312561408895621204275575299620865453276042678681543300531562620112894636834723129113987511037285657600962087393459167404320365093140288737446198354520909138440764720570901584063017758351250898305974452079772684836574583218068182677461150795963426397201320186779931815882121765515482836995945654601486025547121262193880289461098776890616612037951057953905165926200291478888540179074199203344929770426884339864681681158536816948344513570001351294233991860754786743836556236546442484893054082200695951357752104981492835457128715439366009416080268328632256093812826045268071344941571526903270994559999497958640325519639947727266012239470883335958846952001659699237904033764156244149450467418291286542941877060038629961369733159744557737689982547029754398434182460509809522579950801291045659676265746055398717642728199284542314703407385441403341764382138181110842242167200841431490212265014039617720216521469390144867735581592638151010262023574828310036911499112037291370675406794957864015300513469479846091009403178930026846583278277010245353465130966919157829184259471547800303740029946074750022255239312228610852999825062523211733813809957954076336704552733641934309138038906857211638534119226831443290868902495023830915531434622318961371141309835351810730190857150716537835660748385547625671282952575322360799263217565041816614857749487015415265330834107957866497470277644214963802518285932629828933491667032011677320486155325826838238301626126893648708872861676164342185721585204893201802590643743151793321398940412826087600302781880438813582900950479326919314561831642613900627831843093644176888392486827551268072734999745901297764838430512577796713406899109109193267195980587953298934144415633370148771515064740396797792260395450788740398159472690916910104708734096784469348465821803389135464689938171280053216957370351555680868707326716246319618162598821109168240622814702949150130968889093504080827096239571511957728403369465184474955447408310172318553599270433078655353052435495209545752381169924159234796233508663204253175474160583768117102253843850218803938130115404693448391200528532554076291759250300305455771771960313399964005090447208322018395578263412282752503260753320689749665924846789457633804230257417356804366661776120364539830155727121624854791929921171275774651544527289911840224708066536054860544536307064689656904966027468898679010447594470524169788635666205608017080788077917419176843334129484442138436433308735184382654501306594340757622028191722459068733180539219375249444589146141057776600098722962453771490287472984766274340758684663756444758251507513444472768507524169049905625245261091083002020682715974306228337654527877071455807312660978390438780087488374787259086773481930990720167882832957355390259767481233955125389144192428920410810316911389736264649242464756459011143938219100904138696180169077119057092512736018450860521328862444085044248466097658161666685313054873248685330225473234794447136074904802159925720150615885277075441807751568299216806519406510739242772672771559714737436041362001134074418637147285463718422579478780669166732493503162342762962886884827297651501310310133371990326030244484094101739160294404569027592498417987561081128258511079288158845231638387152753690322104872540734350682247877599573466035965479740844059467586052175160616064549058995995323092730625607468447092281646729644774861741975228816295510109369267435133896065346863624066378266119171171578043103743188335211718505196759330366090541350506028242388774734018774693597177331014564919934040345427197178216155708651364919701188686938177310713311457329738464872817798046734769996457127702226008990396239318715184054926320093553982801867739583113699950474854301462520223382363603759316230458606852468380398579022690090097048920198538285089942736335541740587140242877297618969645501285997505019260203020843709824602933877169732758201858781620766130605030019149268075286783828147488576106390016141903869872449886959053411620056545398234703069796147664381656444995803288511828470798400246549519908790550322749773260716779756582594466571166008384033090851763313741301625216560410575421416862394645612496615103267075829311630332966428484100529020868789372156213272284033080800237838863576902526056493680694576639607459088877795707349655623204028038334770901671546636527477014713118210607920992999090073792083127796790087976267494006896722789720931321704609979576851764452345856771282593281179924877426062198519717615926376502733662455154431775627710676801887083899995266616535480849370358302905217504017127663184292414678650588578039341583690967686249449280371203835411543339391864917195638477954558885531939736595902246588583884047753294688351722590784155330932387366588572816145247326671771460586419067861112936290317403418508271904883868015782673301574140803396192607631607907165460266015125262157628798407382227534314385464211547674595423005534612451349580519265449311415722518931485959205552911389097094408236470609279619792191950089884160700963440068112797123572242236390386870467069108968444375270853161545237293716521555643687036037692910156968791630167779976774179242155200328207463251372506723591381374528700953049081364331045973606261198197138838329354474824878780486784943719639897298391662965123193944130349599421683058907480797093884439160064595984436078857462797311221283441496348785146340971252396973977182554544415420750288368040369436675458944003242055605169296756470898620852116190080803367558010903319931830660532823544615217506297366361344320702148777374993602708827424615203446899460603005190956969468493077178247496117952409656623640077063706591331622159262323517043646535640633672147394426764168443738804075395063444814587264580419974584592885459052342894617856675227036017583572824182198786249058292782356690279977474200628982442014446357065746140382798776119941396496199985741685235564290494264836650519853106491692548216574911661428289749579077893391671602278891918262978261481764125253705404130947196518513826288628455466034315283419224727066694233105045390008959160246189813701296359298105690574456509737797956011905391985274331171514141004275673641755375362930568397307538438531979209938807753665664157654005943796230903511980379026633199655190437553971278179491840379639360135309202210989069443784996412572803609888475781140447952404402040299760392366271382235277059091859065692997810888574108570729228876150599837803374399873460824194107365767087406569597533252552471057462116793958661023977659673232727600350642931158032503655337195763205784731521457158421020665269403009447422839165468499592817487519680295315382117098428661653739883839824927902733790240424464747611889167586525719255588105264914644532955985188333413515877134815613001629073747207773963827771782366350290708533727726284456769211648049436368567198007105911604030774814018083223260430211369192176938651961914294099714720278689430400465252729478267031389297589645088492168738336079892331017821173357430889605811917735728363836229088489128389916110076698174284078292090665473359778915445660567035423194846712717975506598445694517813164718338302400106564157926074470769798414967107763262842913709872218823769998614578901153932214780797567067998858417984982394071231375884844079633306051625528563090704319878664140371196367285691944494797805084516717779247514481761989520432249403964220071571502112747048892927589091663717936446644288642323482801801619978188873410760671304514303519569517135344137193789315991869358225734323585374275406246999361531842386452547038202249466770007729426203735486025018473184023899991782929954210723567927282527937512055983323685603324507220146162904637594252047262976154225914381558639062179841932210721133871074533547947170136660117826930663337968130441090775100634846883736558783385566282297398953669761354654068252130146791580177083334801536364134235930645974711713597967322851955204400758141705559765108513076672764480857428745550617359612640019496643266432659699550196965733235854095264546314879075208200548982284509259786618183414299281839009688201458368164902114813973304172684884009724477656391296141653300543491814494502350916646508913019513724793876667243651794535776135969717005730127821892665668118534260611488484953491251945677343157282274851788318316471883480266419767330417034430705081818631387444054867663930947543372087686981898147955442922289899683172047932358514198852998841941418599736172685029034723169863985638207423586878231070102947552597600988422103732673522826950743320075800369079312114960422713998521865635769440064770159389014736716291466278499920249878468566482399167236962218858764333074174952363600540673812472465926855258341244337623301161702931275514997606135187283406462171812018691930302422515822939870567512448569356548241598007041026239486559817102935988798764893066160102324031561525827416788501147551262743345864247952325382231832702510304908599065059395042543556131134638413514778955520694580254936509548479491239164413474484647773346844674984272344561935817827575151090940057741644068927259935781448132807863198181562143989751268134935205155585755132607026941907485168583936830911350930100286413343164002217822658623053113270974024607326549738979994969397096271155210153376511071326983530704239383178438761232529951538031872104339293458139519838507031318084558345036429269026619228125067791413871949351823010821827521526470577050781261083858912289757651112414823105292334776506051451974238815090953761642352687684504267920372618736828690483438535513754509522744281418595977669152021204806835219623090364868207001093301861033647169384115385146999932787284303829162346603943623650193945303603986125900721755148528975130629558959816567524624688778581727838235754550761691244524276597836254696683032633478137990320035707245363137169054897433844443012175073922212205178358897928076184062674249509043444775717295122870887962190697805075867025310032303163322547312506535599990421039898454492581715825010655065450050237266163318397782872152010759407500996670986812429837111708715922403284959729549309751829112105622788392927185479358875158683988698294975409145840245602707653769073417069653728017035026343469539458046773805461200456734595364430474460746440268178875505918204251030703815759547726339629768892593905369006808926969570363646565867241778386100011484360855183779868608363450723125699236208546940470285191369737196522284107127484805438975316613319004827746804516413711630129843673718608848126919446872960043268867659248577693315829505121730273389955731927483615228621651374703266329611223970844575987550543377325361163394814924111398075664317514375437429594675750804421646708018134902130145143952178108749401542205237028015807947795434112152308373113659735256543364016332349779827785867341171393830811848591891693861530644201247573268709325537085507852487086261571132116352181591872536727257538328244396871686726953268278833771481094139730100078737621223592889166895077288685427951406839906353992099574441127630441844267775677790827514487312434215748290425690594923331216828267754799399604811041661935413597545878952414126143220834102075926040178527939247427036967278603869041959780126809095726598754880307324957676206813563175454142411309283827886684980391563848225331877371264665159192320824319696830194533410234228007113597324524835240616705661536256090426386528261553329160729466833638658401350489067270399806064588949705897816563866836912647548737673423349171123776862223107996616975080385562606451744313842316180303067877656341203001556500112144318261083435455303046578098958160893712076174417009119936352887593330083164285392781001814396847739956036540588233548632989490194472491198902535950924961575914798955332768311446460726498531966716703074717165368148562233337438225333048053799045155644610267308721810564716321821839748704266687698163563464890284435649345128469197989776342272057460920732899067114011295197923128174577185430177144526113133081841688150280191595411853431995741839658209695882047556108993426112038540379980959928322087154802650816589410197490784843681291992611548904866957408084344655909294729253218568881659909198748621200715513570914000066601256262091512153620021252037762434115398885847707584155028189228858121280461356648108997064756802984208157688191324058983675858039449259259893835242047306482979377806033310272908792454143987764204430013207476631347111588039915711337454131814853485996520330142349537611689139303798662375087356561075038007990183477735548524564539645334101797935940217988533635790561630178995763099517548839382710812553992818100863064574487159473002231921005845044271849980672716264265826423565232866591391651045771089584246048615252205878712759359931385881775263324694131143052567624619353567900469920689832892507822678317393605590743393412776745733718553001253831515830391167544596264604019499724307842394525953565361757304923139590755024694439724111167218375009327334748499237570568712768647570135056905792594739356317595682567398367431888671272403648752850432070881374848927795939872310522567387782911828322176631720380010130199159318202389867693523968745053137449359781503446088989123461160637798212590815897025227789181021409693762879729244258041103540210041395731714114364645324198692715814674031192046799803031584206145121016736222252540119466352974628633382632274580141916357954770398161494501191788459294089302431965315656875580889521276929877016084547815053800775868682017172311444815440354989299701527322640859565152630018461904411662900164563595972180484610240579917603597316727506723997223720979877379142856181293502463673720310736636247741347661778245244490803922348345102356744332263389282306514317222371021926292176448917052406123900407502087959901512039966459579208345395209366139697601552836259156321432374182574192215937809964454413263930884298345823356436866118119018053130879184588469145044633603668196675285771174938710602047690500065059132162175674910976392094170529014875071191071724776516536000809059096417926767739891082385318474463024707194176166525988562291022528378457503607426588206850727316201532257016948961979456888211962923052824038159301583398792704380272358928190328453486913800409920483021218403441240701806518886958103030188733812261547345713812937186070439186147942304323366067645305156724984320314634628420843023907051311963889062709453673017831408785568907880485960283711644764003687986259709598336371304539016633330196970170793048323037297208397263901771735145707497256519505790089069485382406219372117129277077657216195675010692441094669698380386635090051040928910628632976541771769206214374049028698126879291446708553178420983941379294033859649480027787175498453344557602293016723646682786743091268462762815809849098814740800501334709562205371705237851985039815214960913306298827294914089946051263762127246291613433046125673816128423308210279737678637152265449690643685764828472866175956637835940493353814045688005326882361197517744846485699535488033164983846479628837212956977444259559430410334049190105187151196393131754835957619500699181788494555213500374094272120262877173563461282506569207249432380693906346723171756176159766375932061599991593435837521601932525446512196209209777729505011787799580765283933083520382460943523450879407150270252730813334737400627277554711499939558983339125244429012388955201408567441761401125703759363002178976602079919225249760640471303865110351963141617567112821947240713109163286962109017912860872903981357589949145235880261901253980910202001333963273655226023672624110230682705809896338455454005737786922817008124930477953507221062926323921564998340560370352799085217060451119169138753251164297698853405717649246226592521585211036943535051640411221803695425961542893481528145086435873315738605219876489664723046660816839823744683777804667686348492328814281126569307546114579977775651529100954390460219918747306737642694128568409517289133006398089724732410288807639122148744080575793380100682848475786705412777723320612441222352905684179758485538707317195077248583547269939906917840234966304815798380737298244008365326023634333812959948536749630927885346024415099966836145394648302006768840513443239696235396953084236042881133636751624611591163854958817872210787469838737389668679823646302003991131088115324705294106726908221505806476034138630340398488400684029769644636951335147757118595362409166194116282699672516952801977643958088854099806003417354025972257902290041303028869665900927631762004424124772769727182872557321206357753957945328252273071613525195872581980959236683033593087380968556913830041444476296014056360631181176337894409036720654638520789539605950965545467687000563117354299518431372136051189912568415905374495524313209319278249010750530614412239109961100876253779768490164346299142385974837439360377859329616014068262907555504393512925612353986510820453904158419381210925603041934151090613380388609576313566015883290579397577864446546950074592113565704862803846031239515842568949187572230648518470105149139951716267798891086272286043576159486960166036676246569216172232554752904645377382323973070435468478964163215606433344282265359399947349142810026814261883117096776269778218104385152065202129151154140088478713615835039065338461994847206056743307181720784666825484143504071923706790633660966833863915602488280344884547659795581904689320416844252551780668035831908144607949604330166605501813171154148082911741742666426199273929368657216569233650808894272335273990723946933297610346478359629067224095689648431335080883246405656063609750187387756997757614718737957210486858744346728158686247552792254705753058601468825661264794235736097412401603008295747320330306488278510376869741793703529452569141923058044030254978033372418471997717961101765452847620691466778345474997002800280219468951135771799700344115395596932285782292961807409643695726463856784358290353576215842586128199752554922788999752659056767766838278826880410384385597886358072762023669322226254903585943562276501780631574387824894669236252842216731615417737649081796136723705481297131389721911893203865929390885261673987006035689051297616693428974989688035697741366392137085101974279612012720073169720027486385012342357882183638655157611285767472972531626468508927208617617067575949808501053878787921747373170815450032941613066099586506193575302504099099988292986552209026317615970172281488707721776998235922358178987055249367503294791404645795133480094679685941656176165482097153925508037224066855364993763340990811685024696610005010334415331174431085013990934926444216303383765045090210506076100902320445082039970601930161604601986415079605243131896321494021566564964923660740404494731336846774873907700900266380338924389909492541984873922334894119845098276836765521990864442753512424344748545305578001467994122940230185253027014847534265024412192135259462442739397162726215330260111060688669589007959643350748729008851917713347131232405389124930942417712632665671239892825986625746586248466376280851097888585949311973252685714257606723319555343829219899714102737656670683571071978827411172964995165445336309875687859142890456144517677003235617149241865072220729279855597718351311297869571490034692516096015330456777416680491648606856382407296298786710261288526482091694561331343766639961151261229213791049422224644134156649321219967866677124267678756270062908769224393117103870019641343652715138349086800581114273984960928272446372244286074529855596830681866118129830230528198420063715813930315621513032997295225743547279870677035562870012687686508718297929027223729040808414060336215122739246842330415998228068240989083018015547311086173002065743929936030277517405136421717150582578111828942885985307163920506691339668853860780371540920220314199604502534239999477060631271843170120699994004573349138126701702212619925050553038525940931739569941647627568052333742973018098868955202301982901764032419794300299312438903056388188463859884149050214938495585814874972185764945763930140828078316867961545838762807832951050416902869145233613822462326294737220407596871924445990011906718187819641826810654527094318258917926127596780093705659786517695667286654554704388220233040472472573761270521897212847489300011460557333318076032575314081875821855920913963536232706499383726541346006843244628465767887507322580655180730168103859670619754488236464040794783319494677228524033831425754099429549865908356315339221543563462195176913205356032148888085421276879058936747020010070690364933118312767711545458071787378732041051455589385126124034953736663616965578283710854213761761528062670030970473507928753939884252246633752243113455391485598326873365844282240345412332604122047516934069597830973534285171176189323750381272673389471283741777607657037839008382383689899977976861389106878688627200602738895747116242753273473065325062726874692606378375393538323307021528381290994262650527179362013137127566112954508604983132444278851950658926875904427932873921023290438832375227956794876089411453302514561042900533378905192024005742442117728668710898748325116780140631510968133411362292682496796723789558061979790257779384361605903877462814093412394913598451085187755379028155962453500950346814416294008563365579142052633821568875208664338671042377141858588035713973923254158584708682933444229666855706120283227484658165874711724370221906063321459444268176561719514503933540110165496991183426730640077193282092512929128626849129047311263337735047511411872754485786539982474250680202781156616779118870560874093982480051550783612184938433798115002787701057601451089534184121207298630293411406763635869289803104463918241945908291815142429488617116364498022356113831778670294677333407436173224085210570558197142681579827156256507806012394090252667399360636039441881441125093867753626911370358894975486233726109664273930687773593470898389530809318467348821160201903178217214518701370693134595275712739885736686273187548961250545762427177041505364080705628805681998596725340766331316024561117597871716072075385044575936694226010153086976354060765972594225641477033035607103172005356709840735841666972973453139569558051210557357765414896331097517381868524389827507295072878396357955134496513600042928494308727699795129873646733515544183163143490815417575352288787259257497436922790254256756381704555970040285602332858461907319437607888861838724444495270920561475880532913293903818553437553062177326284640456802466978643836667580798962874521704907337481188059697225667057423025158798417583081877037021091221368413212094060967846602517136825357372791163198257290767492250528724510066273470094803233781438023128574915404266345674166615952975538435156673283697226577898776404333053101809641440547578992271136078747046522799320769416710338032765429235993543105252460795221636236981092250053173020856748865028916043263416950144451354064145706869222392989702884263752727374762546055581920730475269786022121767316971759315382952929117056677195333021107633204059800576408679443729738893509576565068241631882596012580287851714446129339841397104313968459559328243173034181982313526605538808785699246788428751464175187525895471907534495292930373076609679603078830950233135116636772514095111180282383294377715267032925789894641921759162511976359999167999797675871558310064418493716306493784423112966252960359001165883298531734102106270792696592734766810332049868681638480725033926806374112529292363309866232862610649980998120273180396178386050785356824195912816527599491448383612490471411443074869258699906352335833505739720741370453145685978704993239860380266900268133018224407804607313090457445383310644550314511154698517702898823954704460124486521561573555929783869215476679054465461140269757871854989019600188982195633480127921919917618028322135915492366317456109277981364371885835714539590531587955126587172878879173236674603186418234894215133058286759454221437493546021233392579621770435794811568073619861897723794482221663948049244927773592727595687286408027393064450809076718568889498355106153915558685603108721943535088663930639861103467165188374825432338481247812780450263333531434596916352295690039965857326844145100642427527296440957714918541417469958286214465507187552393040476015583308659727202244805122734820650207929352051722648846128389455604347643662523041451475406917333196083215368529763587672716461104946192759352998098956748693063443358533103752018050392412040415968857368743694745349559735057214924509598971564289202117855773042009148040055084548903465575221823470907712781401091599433353588587177188810937449699277631866950315595881651404760364928270095914812794140984540730323577240382511863754063658597266109016752181231731910550619523540895494813200926073876620278186917503105205986144687036576377372886394687410622597832732310368294925689116204451298802948640700326983801058972299483478986078146687214374303213830340838079534082381132552587213267608447823107345763954430732487079758944527668072528753861210528451758136453101378120413122636778287842123103657907879911568323710643385478546098899022845958493064518090804716737700663567485449936505807520376086231275814707610929875770955727516742530661681290072056924782819279431733109907408149312570807979619961349256599879697571443649277286701085504240639524472180729799271889953173769926009377782073493229618657009592374841969344275472583443068371182940696247621408262892390727208966185967624819059944336869306512757323636123457556502630682211665959058331788179772859771586562184368681380313009350102015468177172479916899715356653304824482519561569668044756022984511808701204442807361195484960395039887695978670897938724095590943325378908765539780032014539232155241961799103573247392714552361965728399243833012854156947251669866594812610983788677161744707611670615910554058872505361250964327106138550544785147478166224645543271803519290276058790316317336503043986150577520453184836660689120674564498501627837683595143065897860487807777244278883610259242052180325241098990411129020938113889623591294131266590676371676633623985743355277327878770415034996979816157156586114297325853715846333597488583065932887955381064190897162761441206090744110278675813922601242085931966892279407753072915099054379447650506681251017076683326074926568873408444022380968596125223777803687133882687677908326373965511317569369352026119082214287002854604178887161615377680744596332223606724249954339464988808307453240461809984760808395232008206823855281340498819473961724012146673293696359345246347898205755310698968532095001221311320752869283545647553971214538069489528847052117561595566269122541657357554150047621093707381612823846508652703842228126232663924386786205304176436622407265628067878436465023823964701548900266709326678440161074551988505524006204629969937502900749514717070323742204178774666952157978441389400255629628961305172373822070708806463272936461941487470512563824564625461613133692581171954316088706594792472849748015772430453395714491939836279639362485977103894273310995414921681647421952735215245578253761406011473922750818439782969662817814915998092785716229680062931770423101565943628280589977113189533747995441279937031298230461166058809513059511279899048573778259104242846200142857396808242261649452297239110458529118192210116087953252393211285177358512463217752028159013589203799886385194023734338585973303266547776157656040470305859519343329758337406066715993387100102862102146623012563119292063292664581603922460037608675883788719853208993205304429810693894501588018659302067517922071702553881017080543332797203354052820845270665592130736995253944346966365778235872724680050546515076251877652264631465797285876008960001053870650336440249665883475289631700010397903272430238526398028013275710020433547773663881453060833608331392650655446527919218784654530321043221950426789393606833486618557084201987009149388892929027886714246129712154237323605759650679314170057960311410138326739949361790268787620455993501464034136457216612966612428550181052692159192910023932921940195814797034987661688214205563622845468258240631872046774924303210881877867426585931516395769028830074533165023009259476342532351419703903556846510873361586760466584260131914186253848188017455622647214296068132838621207054345443942566531778682757711274229647747244379549291987802789685237305666933705088164712342917145280883968055799627080004595574877505667386075009805705387814823218598396589245834747477029960873025552119387578372145776419621913496307120577226805379413681303465639911670351128832657119201342205821701214258403492356055631044653205592565488837008884416975152990510046731893944921270534570508226119337057966703653164138167917913254005368575047147071316212486532486608019348532165773835618155373151150542595674896346868228978213556671687997642999108597277647845200101312665070624971603753167884764010413837223334926760370326402240472730573171325689456426140705902176348258954879654625008717897415294581804626732964504784286732243886949255475754989571913224415125744523149927702511459486464750205762762880392092449856773973137704777568551784148552350416347801005571273855380865205114937124352663333872860129051030906279487898306725806766844601013371074241872607032915280210018543614810326407986127940005874068980665959535484341461739949801978347227258275721353541955561650617631812931999283787408205313543629650763875882781016677382127659196478308151237882028295779820223584026648025224513460380163915132520947835294942586055504686659696317938885053457285766210615668515960924304075700643344537568585437337241597299612565154571522794572090898289727997074079055820963245783737896766252721166597461341849507215425721829805844518039368134768198959516590239367293555034546890569342416536407339743311694140867005376639845779641572447318101538262065976126579680618019009445798023447649946383494208157064322014031243570910854823277689181605676870353235705720877603694602624811212697173462599403705843574063078033958317660733098677161440034648345062401202586728199152401167613910570348081180763467149759807305836659455784068413157599645894297559167715471821000794024964888860109582848999518474153873219525164339719068131260877292959483044952147465640696883000358994393521481257092687565979308299268460663767079104663514270896473697027473598244666764355951186470733975136450166607742256362853396011142985393713358500333006398779569851919535112496458711644145747735061072486517045406446682788746134202317992009151920772864453293452060851826159674712625051309975353100234480369129764226968973475843689494712488437151618275958134609733172415106832416549120592401648556217349788202341645207425248362891819623814514253647305648585550380896140481596487594592163758418941486626118219004810382979147396406185253870369329369072157528221020501120360790857951424107471491872027796270851372790438481257111005003843830772478177439740856584527812785517245780454141161466954266711023356267171023142285500927355224002976989074887654024865263646236611258096023613274169705136142085886581046242554332737275510903378918562833307654922555963912362445625050565518882343164542585787954013409720634565786929871685839776565405831871579102734192674193279312962645764380332354073989386162777858245746942437213866047147332109493096963048286683189774232285505660783093703492034732497155629062524276327944600570241836611900066790925855145032660045936612360808928479406087548752095795380641233579349124894334322710580593344093512356888992980473746013996563937067706940996006621659324848335960425626415203890430647827523644771069964280603647917970788443152104412615986397305912744962442573798406794841421389299829394336557105427115585578497284068918106141754817465970444288636931598673455701403419302860390078985146635619638309309014560608470632908538433592905089152583546831655522132642730153745790226693807023048471150105603482896496695411039764574906893110477166033838855712768314205316364092278974996402197667020319462832939407289340977181289497852151101936973436433462486398766441617511290342195681160230145085995598285408913783710735550545705109246081970858654175442588454736462698033909467090390883263915336709884325690678396978984757752015406515331111223947045350831531392044499768894482125087117311773898146075884562103961564234222286306771181001801981258104088742227863503715466342433205262421952408627769411609370728290284924904171880321165544907854922787852852122118581714268047757770157476891161766122611216007082102469302561750144231447212558791527991353240526453413995130663313203468816176465565105670320534877716889792335889863272952268592280593192873667396447088089521445134673574521023608503978780925368827289500488742040178979534414090017697973539017656740685638506984623089795714597101329121484424636896369853992154562285755683665854052147326320653281832807882229908755921822912236225845504256353874730045694765740116357960490796779242747040786525339725232795486393583087294235394856578206869294841790829392049883696932724240630736291985265686920601655914688038289147105920127778008622091167890151363607604711072587008612009679072398270164031702151192444519944223324745466879749363579952775726396028850781634901211182895416793173951570534184645438620512594060278592641994788987750578241993437953190074954901429334283087145318302817787070088908764523807092256553246494840632356554535343028295087350651461492728081222652243039207376323062758164910526089819174390805955393112883735213826079984853943605563223192182402760156683620148617166623858662855930315596882926428989780263853254908083882257839674631941597316766215681471836164933244374658128547490000572426341960500483394735537931787942840043063487449151867216166302473053722956494030184684251363760426539989812640943884218511686714426801804824488127454254072962131854521145256334287578781543795487752464900220542996869729016026417757450225052907369387146961818344041306137641441092782227667967499334773770225339138666420926425093575810565870550928996090065931196557314568511372434484688217754451427772725467779424296994404807463074844737959837904219120669256406959155228946985884299834720538531884164488820237925608998743519046231003239469845784293863734943375759353436894343869271801520377349728802651682152016430598013336968244597251879760597307540429767506317872074238378111135533198160768019882618467540470613461643181215630472514066633424203619809574859077797424653656912624938392437375218907299030899290856502959975067458964953100497083341276458941423024599823534763248224232785330318576151871792953363149450847923837803956855005365126854579726630616786710621855607940631203059807531084573567422783930988030657676513914413217047351732595271239106653330076384380201878300238387226647003301570308607005978923683349776361348827141479544584458503051804124368717155601115389402969956927167988676590512627656502658355745185623452513435273828756529974541072513209166910325403823262660922031880198611390856681806570965085938499067488845911498422086550972118368407773941241703923792379816603932184612380803776426789290360254517390769020930920885958352169847435569103276995863851589722749842221886947766405227621253327590040646470671869931287836046138172982322568993589593787247367442610023799859338246091498198511758229676191366380680125516241644356552635944227176674108476647188377952701824594730351979189810564151196187697088764925934475436071206505642935566278974245285835770104990175164181187272557589332542768702585781290425332202672530496790178493506747487825863393957031112489805460846198604575464135872243590402687705833941175678117469917673067461443873151461266949435463505351518149847370858763112681260083833434508797091275384330846576381252272795014308731726338472580916493132879001840783039641719975994754801418273539334829528415214177959413622421135243785529028718057609834749010217812881930681781079766806666803480157901750308961034007649290585460803373457298737146460038246262108377248355075895558338176081307355439405824345305899285903478612664941408971904220941235399026391798802782760290773059175846576080624065735874301870351299975892168205515569167366061228294011953002185225737119164561683259194939672176119612363514305699816332778390947730491644938855902004363888442240719364653693648611977189996481727648144058837048232708282339005056044132976235050121618199069539096143000570804852744498712994104125808566335933962681221373953015615160590751614399042944295514096700233674862439262799044845533779401650242323669439706962960278586506255787805011369380290534332290562391975409856506340304572596732333459603475636936393962581600241843147887946026525142482909070310729334172680853913244616779940135905454928989472090139947572360857683964099828110652333397244459336696965546184372702133302311752069812633633313203368034247046018101458448032218627643514506752975208947614857151604223629135614727681933278927954760301333778859693278323857718523393877356518715043642650765237021787585554828173872984605619501520001710616339359461562313317624696738203113552038191054787863513829972565710425294425739787642781309871679595132036648001232243294352166786731132176368724207072103415811698178601324019943283232340968646007230980146865959095822267911225607260268506046647154970100670474019447743852014279055747852648854969626749052059495273843070643399727756152084294011703932724622427887644329544546987674886375207899618162282016106194421014784025277808521333552306430795672657118766507690076575826927663299632073749603069336566975099243556256897990128858611864006308485312666003433027947218442394874437979530087594237008454544002604809242396231008097437366179021108927717463997441324753173046407295005149368206543885988917269355633075469501839967128667194584896512359152609330052775161776137984989528377130075907842677031764408088611701275425984775970900640112663138462623976388860709474409141850353950656854075786906462222131007213686708212389568745400952734390683252774907412109584021125345952008650528398621072302918693445181597340805019505252688550262229827878856455461637569933036631884406963671005756322491006996331929543577572734106539718594256584354640787424068530095735240256395745713596281282609471373519834839757027939283900991028679656308375579054437697866755078689248187958994316920136033610047990773871012228805061633977577539890312647213631762000042342368825616895170474070168592052028530796532237040751597862156158191009659267513405209390820420524131955022746685599034603732340024383314677924110048435931536479749754969310627879843957207810434523056321469513283863831708883689988028171431279926803532520141698443211378405540122542263291564660417230493898897380399228366140110830024326703016845570012507754748368122753010748637981468520879628053465617518469885127043001498118427008745116995304857838681429576790206289773359610193124395167665831641949916071882620950226420152636028354585922690508212320423921147226893550566095817490025918604664167487490611766351444959021613738586515445767969507944930552096833822522681969058109830755301659432466483941117155363882370155892809533225124526984079207915207158460624411078825468958525588887873245641285537729255282450981941066946831008514467660740959448924298429629737256679385560338984547738392222017815101548252326892512237770212850699462594639327125254868015931159291985140313446214305270089635861381289170342866257249491589466547580053945673433100281875859719769200334678075599384553269335778659665757121596866169890285355206555233022135199506261398630020701449315437307871917042794921697221843781241198794257474594335098329790871342310739151485621624157756301316602752891046831305669690929008156352058531816711038466723312325112897687120701016183465067615530630535126693129025622565964005059407398670968625679123861087509989953556450157265322805876337527131946293487086656990246876063102092026134022562170378761370776274837403920777485563983245808902548383436356766568805079834531537811514193059901710316346109434880168505389580162488538523822144779337587084860784974229016888249612767772815502981014480683664330499508836571698230905413144585569342681585943431490583464236417393032364547020190109218683657098674567904354418484953333494080323077318287361367428973352801916154315651912928270759631472230999066110283991897120180989508477837909291186231384791114986499629063100521050898008660519492841708374396764425375700317592963174562870870994946007920618019634405592845468119251442010135598269186091435548535300557872646303515800067057720044008532923593715454386437769773135598724220458751351590629276491404803463191968137511458512923875651770358350063463856245671018985876942368451102446588370123751190689644085681797052242153789334843724346514182818827218685897214711971684206669731149807429358347714061098643381807944674601824471735879170475630158971314543540215237398634374937700632901514001597526960513688054642527929140317756855921681589493088445096359618999208676983528397327962007981743281731755314799224526012920047700986297628456765927888233048981244845217184075524922762849819625668374758299072913424838052655789168834986650191015563997304383456810698039371165898956084305338954189226931522723752492341264508560243002377717810664503059666813484869341997531629314135705722686863314830552764894620998458136529665674344349212764932993905426812880614108733111093235668752613064222657680646303472533332322314807066745625624400340291530462219380533048391812419194599611249897214696425388160583733633487179003677558049875057431913178162906238839790504656670444144885334314480017214669764984627984670898438051550852657505997935340067832043597347882272062591835888243129178245656998507115082355176178552629116107022910903432501173456572333205306932296317843047925324680604220482277051418065615193755290999810316597109463822618178591588072914244699327279406638686644863119914396045368461811704776754027136069071065271884476749407069349491896189661958175951274879732864169607755358905613855657541946395846275301846544483762344769037783993866689492703614878790307963253786071994745913837581209059343882520069301075134265900508041523434348263067328583444473950997544758126724662640398658704019765749064159728864703918784787529344410708818781639566211908437210137381038374993278395105324842110012048336964173234607370952379958946108540039898499101053481748296653512342437795532794201311407694061151569118179811538328413211969116581667211061258120003546129847445005067789382570829656218586532860466991006234234217134648272277226419350617740878727072587937013251677987105994790747005163332887718036423989105492560109468494050937781687079080761456498373994317916046599834489052633143844371046455184324977719975921409037003770303527505158143629320596998304859239019238771816131487915526287530717346994022701830874490474640147368708195730146440595938658269828805349459756876564011612687158648438243697601393700535915591951196403488470764432332121799465792931754141700443090338089422705249405093914788530322137083830291629428405440300299012072574352849518474283259483134148715098192501951700499906693037902372988190636037832500623533933196411282005897341023791384240621330021320623317955776134303016420282801704384889913557781260372654741928411527080630920388931830195779803424827772972687050655471000055812901799223222845001773107012875099045603939027112552394989853736631983092493441326492912563825922091216650205597234315806158494289977615944028514021946652310971058942145347431084915198527279017155906597470646741874606620511421112711924348961915254896561951209964232540718435818685653499539352970476711578662896757459014934206505036889863438858426981134972244416705290917558986001920020016455994222610508996432666249950585776466872590550623679365715445498449826754795420956684316894257035383168138057743114048651225069857740426075546246953182223249658260028387633933433363055815559541809524501844889961265905972531958757334761162124424584995974580198430159350000648220294939997617932138295449510896401388267660989448163674538243152560888991931650606925525217480576196305759082893267263667528671764702018354326791414935496836320310526545752057859623350209459796886341852526382156769523927606573522612824022434017013333020785407226046667090994689160107828107430151821866612343517662413089335180341092637015385419595818714780496953436166962345905426247843555183833727100007005420783500614094221070029043357619926929943407958338682355520803669415750110196138386482156747619623794879953079465495907601407962859600759768123196808015049324040108734329990997331102013319022510050437015675647663760776560366573510131492896162534833979143353590925743847410926865364815828197839262905422614353898566728077535174121225535456745375834728084169111024558016141433863407119564608391524989426220043232133761784700733016501735254991529307742024461043493044385200419305636351180815271143103981055199638191100807208912060837969167636040821171164134080019420582022769190493726416318865119686040468999402475952661264395902901191371323820419165283480727410829095738011334757538746746729553066752860234249655709240953640476077315243354012634266970250470210250569418911588032923186467280688200523248570945558594459026677179051631956141727682733165773052246998683135948323083521641081932598076738638371765272627921270189538014082187889593920532176010446986608372731408722907485975113736798184910320572870620003722602891263587336343519431481312360066026334414497042114451259877197405122143335706089405297252466461543729544102301402042545151407009932730647845930644521890465749037403899877543050012971787601168086014388498492043158922019759508137809014822008283575111855743466193419571792460426309209130449524888338005516350550649280513714307469026856250462066937924900309318042191068263437824097448854904625816854805674190846494197823508556394779292942906505713409524116049172457299868386080729400561901492067754114748149800492474238343045410616508139116535727335310764955290295899707001647207386862473382622476422616084556872706068467846649365633607508533755190210193514119927630561764880533208028040830253937025568699227683214825470657729910941208674786773159568538141643225469883889888764157324481357370764905949530531765349873248290606146347980061594177951451276318981007843533621681895073045890451849419722152008558656058168949248821461619638569744568898189613520248297531315387617493526448107147813426502072557081384160603809793176016102148026864177253585361152305985324986484037273674253866350801162567462575494232412931207256123029728829703615319628327551887829891983477654150971572552283046900863564065029327350963715916896827044038136219803692892402497442869006159566280949023020049624237078318232192413332624448048778569063259172602268310995658049032251511909905016626463026024368703925975561049746044897946584718781493847424906310450477180662683964704862058230555441582125501140871325413532936139809085768412943653479251543803311939225825950688604189882334545410703834084459231102412464379864086008620968311108956234765416192512604996810484317638290179351454530042221123897401067461051201069824058320894353248261843055838090396147144677187448463589830277629706481819424256736995510068195453578160509562751800496790913333727849787889769745322735242135549283143467667269913965908287520356933197679084398537894925725374437261801612537001165027043794040715399123574706900333689672269293996603266977984326457249677431276658107538116151868619278570735357266308427973856923231317488635689137572861316566867041369663472002412102036525222609089106345810317901334356049803416500433342736976989974385874223975926641482770348415841318356765404760850990883633035832142968804485954994079400788843564705296084891651494460637401005830348506444001514383706058353027644327275440623946354872300084535057509486733281771141110303457315407539417448104733648727457110605049275909586478762994564400787533786844178426720709866294360811784306495097815636028768466670770075100521006191944221589085105473301137844180114947620007129340519823130386863762526118505351624806244080486585530581517038019711554938683275266139756476255789067674451730541808110333714596099012916130766398605781900797966616276713657354541549317543021061711444960831370571470921878169353480489756512009117109548414850451210032912616082508897822057366490508338408326772895515880690496150665757904987268660016298197821301919946129117881308691676730449815629997795259837109848912314885360549715686541403622138630007589671779236591717650266282490002241158815218871487515024259971435594226280058940514762506958341043456929255546769534607945136022847897250246948153472158943807123085917007082915045369078459513332723526744499840579853588419494099772402017068688299769081315655816699686064790566197000767418079396706252880441578268565172924756290149770093081033783177375486263617282337992431117460608846928954219606112715730910325682887902726146423087569547738477462099532893471982326390746249943290237218341427643797056916448863519623738409255647148741135524165401484030536544590484778654758833215178038324484108584633219116619042894023479981386037669788425786007259508359575396876858190884160463273847039021288572265271132369258005007845764048370392080728927256837211736243193387785729737719006013167709343279145425081335733615749081272761022652272991170481454894099701416440195434509277657939697476773646674702286774560730654962935329748361518467586289000612848293986911869651156413684041450991409820146873811224403198196072597743815111507634114864511271997870872212066472072887999190328450235599310590097226277494175433530315457811618688620233957412389943278863526520340952072239454385824266648312767967164322886045549547245061774452172604687302392793822136685222740465567204921962013657784989541385109282731607719835283321759994427611312854074936941973928969185919730628054227047270686545629583065939509727846244211029684197858209556339062147506361956492755142493668120568026064825858015470701356142171773145490575431613774862137851919478760631308757744612969106295948040559049754215581593789624113004807563363433836934611856711391222760522899819532902535147429774808879123071567234769525354381897889844860575850977145249389131083348637094213696163342323009682515358652623305076064537764797991139454840080600374880854098074602024194171477220771288223380340248851856680897591827458414488728501886347477124655326445250954238017153478188434824116266070348251157945701222613246111330696173628772192891405127027711468416539683759972238361072524642259981096461546284649459634951839114094736158790323484585580356815929052261015419528972980914395501486583430616403435354969812919090367197955550440701195193878455997110314255163428994097298167524721295729482278464789507364637328836604498159546332562140759153456396812542583251408961146300950353476155108228356617951668661024174892933720182633952939994555692616206177533152387232283961990846764362697537308827761154682939556319164214483956404872165118893900879798839341573293661334483161759072789534027944764477408300190493920349815258910843077093317995388905398905776683281591623333546066152141368604424669086045668992637889109576871102728042377163512984644152069803798559717879618000957696822466095862582652831010847014852505794411081487693154147700916212559299196784751722760120587273681361504064720037624956830203699254925503023268118932944316129259350619316228302363944606446976680633499846002985845729124229224260181994729079461889660877044457034984201120509033192259418037973455542273621902740847400094552887756344143786247065370197327606883976442509709780456184555082928554993455037332112286086276528660486484154957852628517895393531008962645773400063459903242617056055070503887231942869716282614850861635082495319027883276890720012279981887991127606138772081112139923604732362738635403323102997681354152819450148072308082452994196509262807524153027292204844814165265483212555114999844572682099707092934083716802027706825192807491932518478108929587013013676968656996654074026344107138064562116377618632110545557325717815765164530034813678744560179936080328540536538996869249977926281209871628302068778575371089037112469780688987223727882750353508581269007300237481034989200396337065387746147701549182803728673481643854238917807368817762475681816868570650728415429690738347504162171715095233182225533629673890123473526433676528159172318304378209172853627703159801759752170737732012926038406489247711973040768300808278649634871013183085612569567302104106780547217470293829380790440064115459115690935249263601599820052023427438079061119945421372896981996833059923522439194129262564880819846699181305281141308141848234102164320003609105826555637786969993707329882706637039619421321767692055706411924376488193604122275638384801112807345545793960999784486485252577691326680546857326752718203202898215231510489464424635796329319956933356971973004699024377688572105265740979633375694867744476238405189315751756191103559495527950656279496895250653024017491740503936670327481345530303080196747844702191228429952890860436054166557626286036813551144765614080653992298157319085359089540377446948543515354701384315111630914361984178034107949719495093540696502532318266157576389426895115955795728391640905535967494685163488458340098651043615263852106524971279786244557205653249356054406808113190610323088838820037423732595047044667454971005511785822911477258569155681167063202657612449387646677745909794245574237648062228737918177656160165232665813001314098916509408143124494175755690496092810050638464406655105408022061070968261721485504562544207216597615167433730355481762960341402736901245574441360895116922300927318245863218470007827055068592757033178378544968690829892305667982395639180736599673790106222665089825122742046636200391832996982398022540866071267404850690135202650308454841173338242037635147472346287652562479541505408878724232414485684194811529514342027918219586815548190744459966788577540055038687657688291547428633319277911622570505890054030190871231988663250436060960001552733615077303713669319553236144953135232665819116071776497348543186858137471037549549547124460619515280171536086994872136290396868101185575268629008539616280951289729345892645414773219350798137952372368840828973405964250599400292345257946395768347108509758743765400077995088444803362539932139638996539348473412171358974483256973741107123584483887352914034104940883882273088802984368392324489037152892980240803673360361975261510153852091685399417163981307843078905564965860534225620874622561977506298017631741530467168768075945921050273366390758473434368836838734666012173322334153574219435268907493954612464392807755100842458556433480817730472709648481219626452527541064261233640176100059795011158409959107015248932778579331949059745710731152153722179779726476209060641227227897247443535046026307640880476353577586061064507019345429535284114404121256394972816953901425803819889079538967254628173037608338313487877527653185458687291585986002240380127131351250241939848194345006490612414021925569342543255938385495751102250836682041708403054468469511385713742286095455751343919495073078427747410383001510678282573042535004884779303114294604549765604378176671303226870811503208244828207480597314036235976039223070938446474981782640691552734397787524213005744092707122475584671389597005477169664118814660432326452142083534758903097430528202064729346129426464162596929035698996758906081640343794769591768453668005940227597670747914015926283705438101983176315804117004371813345041492943063459256956265065465480038924857185030806302910195682419465776963874690867559051577546107454303721371119514875805566825096834470209096192626137989247759085454960130625200225088349465010863945025594833023362784341945509584334513851323348612825017351717590052576846331983690433184648306371260375685312272483800335297922195404850812524249134595918908351315581189595550681866695454722539996929079249765851182445049652832543185462342392016005168241829810901520386654892497122406878997516325492143168939163158277430862735462979923927477575536059369108792230876640761649071456558902948287181388922185372313831501579102800654438340808186036528557818119906431327854957851685782663987583203371719958707558546364797470785241223739029010578232725900707638310153555860664101502909968623107332817789591402922501447706420822096438405043317942500360819403665586983623066893717578560533559026874909950430731682832467325813921216482441187720904526066352124366292769881639556990307361980039082401594193770410094519963730242105142107809635476456894466963749642212504914753552648127711726054113520028368399725841599101021408123101773348458454815928188565916931097682206139384249316556514526888787961374837078191351777136730601672794099076964059186530941595754880593374205371488497859895395852465471879665933854609120233991195423150317989971264915277224965683193021422200106187889916422213037096934991216681777228752893578359750818475638658250298728992494135192213084889581387318049826479922611920262528678831842993790797033979242600481376773203154189348027773048965840684313003289315096898627963447359011003119889120518790830966974614419534329919369154395592152453723355538389423978625108036897778289765573064251332036346279205889912297964649080581787168237918298001222407161266288413993918485011501653986816355623419998267071314311950217302007624577652596427453174406413948986411771143769174701241909411304623182311104207622386129611606638977127288575911367416214089224144030080601581314109623715982261348376757660394236373223519609125105102568006310159878544782345757411874170787909369673297241178848008285395581350582527093074765688599083836887264690124671274168830515650942413231593236178489795128321216156083239450242698002715878991723755846299195884311746736937823508830490380019959700029018997581005730098484793043314046555489210602994021312718283266781782023794412651016261397916966292546472199014019757343773326274584980673148842289816709366032805985480671438725412607224364092447325477348101222711206131798108000251026811849095183959160971552424825545997010569427671512621635124529496974149581286792740753134994357684979655020575195609625750623995222204680981752763218948541416197199527366907655167190091647800990807024120564895488677513626431171992789237797806624393734056561054669893252844475452337524501773506556946056324230043098934715401492474835616856513461989844034960402685924141333407318561724613162181545910169005938944528749939492539683144580333616511807352846110587519559279510282052979649316122069164435942835645673204021022520874291435582059920738451841120950320787707594104348344917500428931357560059591875481236685486733974205185499790048447261114810590759454300260538153428025000488105689720223245654441531900494568568426868845749777490004415827695489436031217570711131009485982706745498623208904673132255877267445176393569565695888794527452554685215470972795096050016165654517854702951584038607535717875998828646941739831222119588957917805351994681987714065600765737679934396075468792269079792901039081085547639185050935020470461552863752680879218160618332246349819758800443975425813852429738028478631754118491042002168082446335115036735571748011800783727311784275838082937517141073274777406709867282623177402288631743895811306368926685594216199882168240355730112009622889740844306162588856329949662722764849280101583341560896717070253833502978156020004731053670731111042057949694084770090053392998701507883316352236342865167298062783042517072767627470563817826548828009996021343552745659294825439330157044133938003760851552227670240247858120967967705487906134735614054658808229640871384550928329177359215839556567518623299942453646872686375130434399806806482328683247337060316148432823373503140779580293747028717736035318595777642801915086460444293828338629186969142575243809848079076743754193961324870961787141353859839817559681067110279150714657190594745439089360549177654665582921534707756337950758893620681019924760848953497770052167196590130344602114541281963109053528308556323158418330718695011763768353261442496649126688223017959610365900515886881352951939665181081187974655998181750609786864881617267722769555803518527785214715470667611583462194299199633446206978398445301935513574525744454473888453292239977917248834406260877547859371601663470537176829009426350747831532850242046228190088754769435879223763785203898199368534719091850257555754914145745932534866564511199615720177267127282546412189398180256156017200650704661816062619270834710357777153141925686722009829301755156761305401089164022071769363698647662311647238840179654805299356987285981666456914742864762668375476090113422174280300412938466645277599925068828848937358594485192526074861658482869045474961827629151149606412586208145661301111771523449863832434706257093936173334357313241879184509107153713589583943192600780266373156336150025144566178027229084008725664201156710479094300653992690216936438380226123759727166147413223785426862500065098662555069257158802547016204389827826260344517405978419489474447394646686236880166754883792600017418963417793435724099679217805231081712034848017186589864914899260079940630921242081147510428370162490066916023914472551665012394274729111032864326987859041244112054321496607783281302490971099209476671754882872929692959134588332434908213858076191821283112096811542654990146186445005670289034176349409203920529378660118043399977168918644115318178584585167773635153206652487569005162092076702144315766995769547634147813787513255572024160169281608498038947442763416434166234976073728886654451680594695395270954253526750170442755155369405627388910194567537398440722062231850024330238073941918776247297081153887548601157931392553715886606246288416298447623379454239714850826784248525379696933576241397852358030997150851931342762340124467745309857870773010042235989965350969908977381058921554929423628315952648167522640592258592142612799413750627350874980634902358958697013614022550531924323120586178385744152285238637864618363320615488916476287753933721900119723002325268576776569933031023454660144271309860169605929745218459059430881148261891667352972892719634059398381273896795152431120226720763919814644400926524261849014657096147012323344786144686122315534676095680049769391354704895866586075804694563481938358959746728390015260192825833276031897660743144893115756314522495141674191890923213998682676922620831861256186553700372710622893011492422940539787386074653195420849687805153947472866121366713533333742003712612155241115041061208116417963807154634370918708774600823901834004346676222093438223078280507421496656169968258238335644353265446533950647076763075943791792614878549877453774186120731960936973617108103970751970467350102295101624785486198500494362602189119230607831353518303696027690504578266700563432502131879290277444858274531371360034671078117264161592230969967777998321165403470098787165067642734669535629765123986324931727172412131921896618099357224248668043136720238148658339949587679880121871950607677168848421711586919447942481399353505089494705825683836711103834700864075703585228260131854194001288887783940455904109943953069889313378721757656376666696749731509652885043075642329689700946766426743901862432592272687644366626778817212419778820984147720000976676485253199217834726266269579547198662158897100533517075469737298551430049374623021706084641840921750804645015189820556758819047885487822728687796361624839254125924189089309667749553512649120980644395250111037852286072457766452109834119338878252470402676103121977112425093644988552998071760953297552033281732452978736349745496626208227496733611785595665171072900710245743328211147889939392968238091375068059015778073304972393754659987309820626563907245192709036713654183617109492020353103794970824942652601259965635801365217459208492301297646330753420922095057322478302370882552826305394249960932394438719388188223660661127151087189745626689017942339264741536148690553351522997509878438788285153199308887243382217004140769482057568184999365382202316837282524606125761441404756871469655772093511010738714990331575361865620362283038460708316265683016346644960808249539248175838985067606893817460575268139951637771944577606081625422861151435863017029665606660029215888934531488172863122771239849792343344452332680689034954638573837565636378834460075106814729323591072679738680940186039508012786065587710775902287255321692084236683675590422590361692102649867097763525673735449821609402201736103669054539767406050947031203901579016574271342671857442248588600559594082433947087027866496769145928056122923951079838217775501752783081789712621602455467961300128286883459996551953154112574580997848869226010332325664597891131910103759306932231812647344498392109652023660007063808770219818011687234879240086905411554549139435954390930596532358044269174713680845951175822485338502339175868165287640531136417101170999195522472622785854256353199036265541649554989566719635834843658740341500765047953827006072981841552021878882921591041958085112876150539569051844849432972448339460891796579762900442349754279431987698846716114412459688816335427203961414948222041179583798236025251530261330254042551163311114695789865832531743084884426794196862139167082844988204986951196565579321577488558606418823886342161298181195302486763754935178520850664705179459462007720126128975171959623769753677056396590069026639555671297126922459755262496581320809658944536783783141363003869861114219147622703375752755130467267662121515755492052029875380390364904975863347053465351087136798689800248345129311932056566002504210647006810292726649975370908910998210748825458171754285022996247541188079144448931126738253339590081496509470713726465133853344692970171670236497067464828435138234345072463895520408623106605751885282613735605313466033665607775145486718335201469887040725423448697069285549497748823270294987882117844445448538268936432098791417935561603841914456008922504484824240048620562670364961170863979422360773774049339643856815850374686130294288656733241756439853058557220845471770743545649782853324191098046392858519806095101421873644351354547394459057878048889288394470262171148579616830947705560930284651158504360771151569274587447870191410560247236019891590883225112265856320389385091015206204586739776324592797375458507776873232303751130312575182262200591018832995337618082310473728270157216987157175240502547865966921747744462126676627227535845631496476748595885513819578360588741088326337223091335262866493195751199630769111539443141607454184393285186794657574337341439203991247734817292484471657850885901318910186382001354700262315537811685360564945525560340663378686572948066947955663996224076803192375117192928051085204632405990881240960647794853267354367137930823686189499053106208185023390445951059450403691769737110115479731596727102788217939755079148256306456966661232217850618203872985481952501291639423885711856716794971551066231683121000304987615449996915087715723733184460464749411865991546458562244269297236593994003354982059603265397281712487538890350989088878463500059911790966862699073901583176241342078102829002945144244277478683790952872055254742072198085022741536568099556889838775006988805930273599943985569775962688131608857559906873679719733487997718446055488099884484313307299609969106199472222468387843722722474519500114912017073604879799258606772631086731131564140158586121881873541905362334204660564766938307262686556662501176675363772762797399170495840214924356029916407313954512572494216413998198685487313060519083044558767458102929875103238839514604960152236912346427230083275049173150747927754084529953472391226709709431709078070207020100000096029024669746722278916989847313729616720735626592765727839001934050381016117586980120281461447609962452041067284740718485372299505049544398221704632750341256052110201766086558779789606320640583982806249394274990568801750482853180151797446747926037311859486677523983160305375143667226120113963385142149742694819741464353703776564309810790340404165376305255445442562429053116419978740504676806596787619077084444541658221841415569316751573051127351711604607826035316309750206963132116091904448105223996636448230486664167959405842272105667707395934293220141749575004168493758934738819755541659027753046493535699687411468847904552233494520736899682575152986278015046792118837121991029913910802181084782828034728852596003767905391315229610431852932007248282142461591459701716727436874492307876519557745855658551516780649877756577615837113733376880105439217517726578458224524850602392683331449831802810820383975673483943054470171217797341050899526153080802404570186829837448769501842212493441025051126146192439959274836588523386473017114996460353086054642069678472369518978620200217848885077938200318591494729387882915676838858363404444664221745702814199510079523129722662394542908783689010057755902665124238560264403404569946367123310267822655490879937507538767957930552136246667560654497329352970954197301008866198660304816339823402108548331929539835653303706694213861712341497628344168501771908438690852270130512371728343244987678043816416293403830361596497952225332973432491255143279015641595175341203990097070979890352160475787141056903987090293920707045077899643305314894975488623814996014525331036735106276981281006994794777373112605034339945031798801100758224281174608301934816145660203717102732231011779835845230559942804743155685597800592466001525676772932532051477401999296821708367793067968999226662191062280253613881224590333172417170505652344730040666559241048940666492131996561262737101253094822230242080149415916535112420846322839172684111679021356068044680183984308776436749606473676873045103348347122508114492559024462176552456894740362666099193479315978412710297850237621833884547488490619626472586341497193520571398742678083568880629796060945633912937907818927127765434960088517182131137128827380961435698422474182476913597528756090484040644962785322909854704912702113636028317352100649451903427006554829755095694982393399364363464308837953192505149667991481145638434650600763654682847312376734004716250621385810952312083140178681321115360969148972092464971170785703609341555140163104751877338711240768357118053709229777033426770496545572138014161192290552401394972629784000588794593384704569547735655927941993587260294183933800451387029306035677020250829278866404179670814724846583624496825252644450445157518564104541089203270785430877227776429393235827998592886563854783166709942780652234178188219371702670455216426007637943780682356172847148833759819080416248588306898864761514896834745479682770297790429131495558745310640327653949708259926826160381329651014247746933957888365450464525371563356125677189133926360207655619222727917104569553059407840573017011819486793552555844183803164705798753327073533136380037268486151758413650251350394067098726479199352256655904163152052352956696105038660075586505625114675005684647411597740907792275586843177194300832132307013553155481533173339872732717440312178852173906299714387536518901170733486882905417171675028967521328715000221236333502964490081925183264675405017792073189663876732055857779205454457760436642306420277647767824606017672273929390363088716345122744406454649533803548735778249648560190349847852812061688110902470020211520694930842449532248256812531904176584908648031835619343777622281334133041609230710289085985059546126728742241795502172730355740452330514417614191926205722732494675629495714929411800408129664816203235728648880316438577609253861429455235604989313288555188423331864367811750681717016846408070159111902334005018352172935340992452933921089585682797319717362812663252461527731487323006312685638947491472964804572873408382028657282377363413450684543690800029255623854630620171389462873809627147845186566499436510977582503853220776821495590648439055910337804938937793579475489053231189067341028734139327098011907830460988789687718870987943386139855394002508735745125390132080068762747656408110158799440398412242598102210868415472537761965316723334739759198467662073306836283170782831408152380620187118197817923412948205228196468859097175578824415486127490158554141421156758931474809394768612491924502350127009562944117176410625713205991584882905847937950860744962263606213176265356178475615529716857288475024510909133481070167508971136750340565409453403197151008692374673221953713628705454415567349813534407576727739592389162668649347313824649330559722511198484512793925534994675125343062632364119394058495669799253472235955817342889614958404551410657985324299901478376922233637895318832328466434049111932823274495052865756333577029294844260265059908245810471305971881101901199098363348918173536186481504319742879515814689870004373641480507231623000374434691588759799586237974264548686662477624679046674186897391050564558994142068325451561909985420276724188685083009257470908187847136112666356519709152090124634390928085634057838775081864665167913636357028477422202348189525746539889437307429078810740289321719451199618876108842727439749780508642132123359954963253767753278324118014052483830107824546083438782779919591968444433244316261026340583324284739289555837899871562350229513700405173388743660053103292502595262044071738491124854027840049750997184751025763939866214045296089752830799757531902314665465469050220167633826701066868732272324666652169905777594068764009815600134039415793909067720092970157005151350417559720704944959473087749297978621189723625280499442037897153460335302327099264771173944672993091594058148408829104879743413644847030793695293997688301331256255347754872104681707368076174819112334242406455397801170389582788998364853205682511712279864939966734246126221549591480466729178246503936496449105836298570067952782297572956127090899273606413086955812683666915031989079136243144422705891518111622798134591484427546918695427366888748143637771323947930213041717530510152892137671869494429197258105039615594024627191336168373268030161133906938692057456856324615785584561222947425144720918773901697966379473263160380212908299744233678961398938455735215344195009502657015715669019364478133601358865087649847584418803717485715251623577402072582351141789005586272788089240164931000603103652423806062696038815633290892561959338054145894128137747621904207963096011589072665153129272376666892222754708221965590460891335706974346113549521747395954759373879108499857358364533143217289040706898556017933279148750797935308694707045554772884744093494893747098249681500910804901618801609079350590265438291204927049922580603357970152959021481819705354167769139160742931587567469136068626563690253958714329369969250694093407634909970165179818393822649899613457648741866215865593886406894722031999974645194219110222661987956442529086699038315922624369100495897975857461803237400027566680895707476723613129365817786795108681135246262951933661476332288494468815854588606869816761359956468962751969079398149878449387405682582968339582739890029529686297352461650077629727340032166490083570608783105473502587526075572842643450081742805893574196051409395157500103786829632036428736413788103662847728851110879044035621845796929232795728259767217021126701127212264501309590243891965515709432149589009564271961405695060956215701659777363068205355630282263526005340429332467962421985491501734307356900839563255520909079201884142341982653665770000795247741481137374379948705848154369368092816991488872864707950492686415727733470404959685982131278111236913280291837563713156877459759747612076714038376463722537811441590392874292742764865912160312541747246864105645079337370129980615464456610589326429975790205157873416407827061658693187443203288859742730190380651240179216672745758771338153134411795191390824939312299148594162293801816444425946381824771032274798289841370958504790714876692769929723173634933180884535253151855156546240720489927684937932795230627246690154452344429387946832881471776697590857164255309265898008745062697939250136556026415621323642026954146563312451190051799509102016808989001274037304148027463505398788196716727239400464673659460462465904065361427656851372553981617751366673259675936993280908644598158782165964152566987866956977551276400758913261479554063016175276017249657750066186171742682014467309188373878420420345039564935197406585153156875805024297415206005374482923659678076542221967869035276085926804845403530133556664963360609765991486053072873804724143936631718473644818648223257876782257860726822879141611059800143220403341563711010048956187518529581999013867129631830049621680081838192680186950778568381591186301403866850044095802547803708996138531517421495894506529306145732690133666549574185827195457344073487375087830879666985038783021518510076407491691993803782060643767698280139841974569922759706871986969093301250221009231537275571199889875183981974984114590943660458755889200205828181051344080982777936225041686891117752972883724462769097821451987643454133468498063662734236083738602069996108331391980694584206387747583041268703786189861717479475023637911197244903149258607765105270926087531102891785246601286585824717775781279090355634694528965728277135734047869705728998708566481117054354375454143965878765117666844074959721627103618766656396967901142834578957152874554333403777110720627707197637280250723085675404583892693009222930441206514120426285676552434117586928646514309128132177581092716372174646739662792206198672807885503155492501800428965461284977727178260247196154217978708480662543141554057006015251088418509123374315829358805469738344905299500232460334006594231593474139637063156797531618211456593431125328851120051249429371052374233259743386273061716539640200266531543279587261789401359213500533008327453078710215207790134599218272444892484245172762238984486316712411242901529330602316527062451369686718992694157953308116567991052837213135237442812496409627203049209149953402513586210573993449773702424682760442268865978848193775868112353687292423210510447653651920849022216479341313522817316165089754516224950150556842061099734885465616795651885419563821027602933577099975923749830733174148735077482192598833274143471030990247801052403010333762884411884619906655349747655651679115873272894156850181171205058478533000112235532820243749579132259244702214468936950637879264803112760495254684251098386585595534708449574287596330081446592105983752474521958273228846913331279497266572992243553648320704531016078651730041748533504284781572253713355821011636802368856379701016581276582996138019262588595796328205192221588648177220107273983980867582682835416718310825728776717406800317308581023904572521118747886973327069953619233282480450175092176299541814444669312007085370091385711168416269552642056019773805223974245344443341875551196323670342810928656408310205789463451781847972491862496718975222202831406459027966347490514669340592637745943660693342298588009555145799982818246964748488701296858907529457489710273226312041158447957102717606146881665017406350090806714495645827559886979232002792017043890360205614843033781615045439294461686198464098006036102610411578046374893936559200452681050004142493653309624095145418378970350705481529061603435599554604438177258911299509198609041596493372823949946090925544066023591181142240593918280448575086781101137790493177677716064682992994229338420631770125371943058242410653718340740332999336492271337832249935692972612951095203500779389003946345904792889041354369690872090957958788046063895965572149215999653094253982935825078457994898014431285319555339906647741247986660022309072115533169920136244425179696686436279760138222908024570007447939980398614792670523598493643861723826413466697231841522232455841987677478105296665571655456352082954616251995144435065996949645241648609227801856747791767301445947282658921987425036823286708973787695556814487804388156403379673224726793198687515717857556019599348226015419453065975525870387508751647593084754781394850791864952413700182817175703861743321115405245384129912183356813840739085912291140654957272487238092569077258604101345182365588434159275183733233123861693679142405704784150779710427991640333163427862537981998275833675787035279084155186348852376934133772573562801269316694137617556582171355474653552219923418052355504221096479214533073834733919941338244336593815427637134121750716498123396707816545221469777810602444745897810135845715420459865306242283427796833080888396481238169731986716631058932442281802638311972703200811999855235887232323085597486924031355841227284867728009110735192351826155244992974204321954898017377242819530936034066029859595678771788094078868927249995477245342053496936618775140555985840225620447665443804718643268559741913993978836072754971387847083189897614013679690822951181400032075442843397141533882918291349170652768691284151708597994235886156144108040133939375711455211357184345479592452408213892693088782758729845318083175298784524174614968226772191142124005359331217834295856065675293293356859838925990233771796033226550681525776941437187583649217444609415061057584695498078385138545212338910953210588961570870761875807232042081250591158377956939427832630177573962879642173582063638428874272753219373889883468337013765031635648030929695271406679096668005981431335669887012777026786820085202093402001317174670607641942102145516078771527977655977080824077948067004655788181654176080086105046446533595187143314430068146016494127779980622821417552425033641734782553145840897215659795581784294867127087565616058462660162570009657017585847157667867169481419488951123064001487024385246783167237119371251268345946780814540329157982936971845491918899083863184485239053810440432374077456682686532245420420126430312875130348582528092139710393029625734128085044397897339013654001866053109203613819495058830094086369568166130760289556916168213809780552253105207606479914369881188789848652336145259544020106539000726242963215023746342132607940846257329265278566266967169952619951572934089212379558638667051670374243344212526221376832076149911612803548926387271481739437733360731240562497546347724467480191694331718040699162648199152420055453563113638538637908338865607337079318449732483749966492239917906622100278654715463664923892962561875423394909829180554655111522621759618427669220255783217693652579339551974061683460684132642665942336749907963310360090046952749692466381805930253701154080520740619830225283696967962150231916179289786449446438462721476369008099827355174583118175595053875575883299933503842424190358832272507447166541233422673500891437066039735762833800622769998459715328404393960251596262842221812576571053756254983304721995243241996905781812205846544094195502555593187645391863200637175106665178510929591387507938221678125803253433341027996142442554997909993451004949454654878018647349703997464673512786310924562814329626064746934457681171858812203934384400609953553960797422521924362197931770369297730447818693035971930947305461100874584620276161638721238129655748212149201462137655145971419209570700475895105266245072526275596797060265058009935034604538819910817649907396939120927857843034415168662349443370883727890120062933921172994861141085022047952782674555303074524407634814527991255937500613602114350749343087540901080502403593200672226880964076126576149881417057995978185440858962814656254396057865543701912455295464961255705295455905182713784634072969355290686641872896161286116127987289425238362973586790570402726145964601556891104276590572359646648071243149037325723215553581938067246840832383178228402767707660046961863244686274679701971885201777089229437276360655451616069695693430721596376517681091442429230254641950941854473982060528556666906899857625622213274101014788050703267749119806031257354271671819024427127804793726837387311882439373355039951258440140526235990471469379505421383906192707240162260668743097697808576257348513752410036874854508867681436201640363288091640552774931373734742691558799045140651553517773294167732609356058123281596411480258599761336921444445668414299354232184090191869803452101426448203281082613120903996109906079724630925627122139555772211905769308998870152698694564818330641804917450679308243101684588288558677656579297931094293284407655782580628960505191417812829005613037470739601689392297564108759669486804625499656992097768165177160820458389551280279075564720912619361256763894889449112891093444173208272894324481385221082426753826887070042226759197381442365192553805177540484111067424214802453628532472936142626358814932808563678426526746608780630652327705219419174688602599853038444465896662775543399993422770858619734988288612773891136899389648405558282435534255144998403031744754429856883752787759180480997561076972803320079936591414711844851211437646890629907353063542429837266637853598650948316982908151428732661260824073371442974816507345508872368471717295290439600552747493338189172191281536948162395329503442083908833999585109706527563568108380969153738600194521244471505213781904101303781734638559772833247781574273538672158669328636820504239744548347821278188484161054645345392316360310267668081026151346801459801081647173328293909986131068921075310116430626280478138018978578379352683307985738425927623494659296850915027787324733746227670382482982909644463045616487460055310493770523959203758265852447172209888160593630296068203658125980018169935537651978837679177532870088318803326415140006079342193284749402967959951684455121493389350048520030958370795979711281537687278002403479336062918999211161353441045905244865656553340326515045728968739198375221259515283032515640747187620269685719592551564260767210846712047101428723156094078266300234977854620800068395939975077367076034343192644753978081161615436000321058333763520739258744489542620484945472834660569043791613594669556390729078307194976346639848335773691469356022028422333781710308544943695714022009971798701914148700815634097919206035885078503065181785887518403785826504901966067893494144568495075312385518063744463957453002879383767176430448184412110004059516230503228570720644631129628754386265578310435271935533864840504584269688811836494707074033203614165481480576184540090181662564017805364843011322982617666918679223835826733931013636429796935395841621511587093324876764377794378560458988923930831835780005607952076684470369617394921748848281945648727526446151133227456191779324316727328204279224573462719369651202444372526633767028378011911332372811277282649384721068169747057312023054906581709897072821174699191421540416322602235852936869452844369747939515388567464828006936553262854780332720973436615780595206884867646000694899410999386293955069683887988602496178807519264784055069889215576752844949584856608728175947805787295825064564585463737197798357261027275718022813284372757639896682992812733735429083454613874269255602901445191793762440816570715041179092561129582021436341054930756973929619438347504131883570704479346890965788655008584181885617082056930033697510087375137511402154136411911029727582181345754753283473080644792951697671912580695425654043470310569083747522404629560543823206334360454962289153283683347541310499329861809110196515026141818487607837394749330237664727298084637342806177140559649013988006401140023534875168827872454820797206520150761492477455566058967859707642058347053540164461404010205844642385036216941543087508684931559482357276372315104730132189733799079165813957323102968574079803332774636191275793168800779069403781727427197458252787484809809280604625945825095967616951396128666199087467867257342045515706573455016671161837871495904077467230609206818724186504014292918124105226999137303213409755215917469010080357352807541366416854655093778048262595378927467566417355995631936870998811720554459202643760884708062112361594632628869057772620836913255587136071137936848438894991351862445152337815492292561213049190035152841654241969804687780022518093600761577477611399126248278350673694450216227849794908514521616203434085906630006183371102864167755506996484010101734121602777470313754657589489871756989997174758193694502255363069974700373314610046786610108778981877489709381230603163945598403524914356925135814579540794708318934516805222763357095493076876859366529245168217846634791573366498903223172247072345437199387625241752734020071603991437088785811551935020402058677614351729830631877821547003784800574611511637371398720081788300014206579965932845928871834267663944814926167025146243627656318950167402660998444179389947126586462953908280884891526366938743692256293428452214001250162806925008209195181003600669635142622786219249350228657337352326926478685275191040756485007060483730070184404289098401448280492866924961116268791657814082434840022739296569880330611521599178309795100430190768376513717866146439278160948885818153464530266534243347824499845363266697959002240379672248295843520434104250643230443352943355968378819894042992766925023010515563576355042616731690496813213637368199047742528456670293111667562634602272817813352380773830561642843028096135499810342265896776212330388521034709446862479649999063585675064771593893321927567876840334166204970743040241067002873371299443025295937410392257062963120872866426603876180623276013682997441080911030364263092992994660094289469346053611059711686156604094486876917714829807037164553173229950595125987063473360438944732544935905084676097749280206511399374354617522891310110244152840128312369807335053386611919899248118363594269678331123956564753786604028394874994231515216938163614294923416866412266095902455601118618547775016458931977309631130355838167343521911714387361551117432317860482000405548391116927298857766913696558425557183029247456554582260313659336257909683511287879286750316223196856407265139407768899892883747517640972957665532407389031324226476412567900680600217194299064462119319752712418758326445571175507923110445832934461370542786022869248703369984958971233675076057426202905263879453772961410839241609454358765820729767919935440626140584426182819712931400703651558270845402956056701809749668821760252770552284383284609965617051758015737856625260175036958476681378924729348731334599158173198092013720493120046357386243216557631568945438589600344642700751279821353100218304695711254872343067394436254520615411552318732804726168357579526171029391146737306798589454790396379762845465560291555234479659705011376638376791150227298029430183284241515444407614962729350509378034459244979317231762602987634607444457007744370040788898979125026778152691551841719357496623662249729656308464602144204345696910933433528635624358239640903738104198973402883322286019519002507379712034897424395321901067136620739276852268912083943584267876065591535481368291030306116004509953630475271511701385222204206927082887452673523993367290649206384036061514884311660007096208260341096849052266842466024049635791082637904207403694533958111472406659164566787054061632205411672910665410596472083381894430696895782806404900335872825253624534337415752720896612510856004192623245327815695045197644491384223116090557568944928680572915887488255756885128178670075990400930419704906505383457748056250930348172578496909561680754280679497216389479719565632773680552098115750869566038472151444127213948818039951569232762041337060877171421362197399034237225303443683185704638910170879566029644475946937384919744958264497280494723831091809218731617630467863431739977390490654670868463001577264631556262202979399907008122909595648707529856983787930507494333768301496469777848094211947040595216143809850575416078836810765033175458865991969858974060845363023180878330350756099251714201714389516433888960604246534581061767503964653237657825437253946563017040201806508856643645435278428224529517287401051297469726734939830784230233547116629195918083376004139521774990869424062295974658791062430162847927002884677387562149257751014874900385140858559241003047748507807663380814202034070077227173853762792428698992051907103217289062235191162723943555488536465944834719051366311570261046428234649229408237600090644280607911313590223331778887498078826303751230537850535331593860417276331318802853586527178121008872170606775343179015142310753556137394003947639527865459489838911845782302960016970134875039614726044677948801784934720727517969872685402701546307497456137590873958384233892544799869064092250795949238504493331650839682443454051389364088963305261696911649839322079256053799654764383131979073823610713614595096339722736398842115101481496958416080740297327725310306971666310763729324538480880677570548193074571030703104794004181660479416370034625736084768119824874260443289813333245625524250162085660174774964023873509734119359626791552647962444764023899669828297700196110724020800107851393110366652924602454818220364527015702053580460205152931542087018211482976426287413653971527507448153903605770647409477346846440063007163826141141853093990153810877180484646472239505144365641948632553665934866831139252651648364742299507458528728135298441357583343497423607665807948886236752255541398519692940713881696949293191049677144129654105763912479178102459242845936682693928481182444861594976929278404525425753885755475703593047957580667283449709959101778981003870698199161990017657033340416939433270350943668185508906748453320560886505033119674511988658981365543374928777213106262462910686208547466496022532819895192583496654287274976478205731987882688056893754636489646629935267994824818684728412506129890309019437755987638381411854058996473061091290355132584525310672644355161992308276582518516848329937491956273278286827281574286684759413381736052722564729481699597990888663902472971524738725897268262230610625543817443096024146709943443990806498357065654098170222401187093445457069957797088680070163987649468314410614015196483739994870557852322007472967541867698189747550197749109522291519376038112994939830746368489574756165715171400067093121651814447060666276911517735790754377840925832347157070651563459447876507108776290969121319233051166032353937816325209979800492329784013355089957820131951339720077113395957234355127312337164764522384305483944944094866474321207661180245851675875751242411259799569694598808823071531396799577051095877786019600804640341161137996371676599946560340613643647341015505819784609264030822045520360307834281633228871269426880901461104308880628977534970161775567037914325076011349347164879105103881219707601823915755644452390442144459861775841813194868914425816022269149760372528996244300214061866524160277062655573611973938245458288911647984638301387307501897716637061559302703556819747745961438175404080793155271043928784292380161775456069353254396877521912339204059278008515074317686068734781718643164119437706921497042088164142507172617880291145738505418010734116433212837015447688088635599586262057595977657284963716071269566348516062201273276398337048461189465446964166950875002896541385381503132454073038506737618295887996756033905219692476420751509110820013124225576589413501256416271369600764401500660247071939171517365254212970302948469426871873118698214035317140693942108915736462369534385568920287721043996292602586632805770397690356322289517678675648300541337984569573153660026657205097064419134965913283220320645867517232915030866652935850472331215906492792725957508699587306968714324830432634249699240638285318147765746768009240047130499382104672751898344452113711352299989519411907116365347984934125087189274385730611135583422255138435863156979672813008614901765835094858642357955231050677599050866210707105789096941384200682120386574737816892868436616449927264818438356849191539693245916990948815893509551367471877663663110767151712757871631323916509664762243266388290045766478041340202979809489442187814728159002766452424767067596463701315025930444811555894244257599029021263299742373054849265080308633431874747691289856831785450705937523049513813662078669186511178798883902266218075751601165747851043498781520469743021083986974147808891714762319687533414638175261752873265582413203109861817240419924003563755069664379409938142218636048269451775095101798058396582988262160802614252622518682501180878899751213565682089542466143412580317499033891539719833033764056146415997380382116183168034137821322099131758014306402671131599938573341903104415884153885651864975646309057604085593265883676844164899210053894708525912041373674112946943379480493062195688478849164027483099608619335317893470634941976179681029522603443878203292388702055356224318982566278993817818500024202796773635229779856522316118735864455509037177326540921379586128746335771317624879299759598499094969118763701029793124171112067554787449112117877949324338205890125696617401639622411341483747786059782558992118166976452812775592135894108387438774874508441635655956724847512816242402693733774156559397710746698663964020926269754300869095958526149827284773344676541824508022103598247592849599532989748466910310443513413228761719184353354602942032349448685496644687794660875240151341333694150078630703285799899896632138082678989676134895771367194951102624648300394951725258856214098149643511012187685111935621575794585365703296106551158292161583454982398567944797071714677330803592725895866525382104911495328572599753815442965897298379591671788841592950138208533886912407238149446204314211180960294140058080762198017374050944642194205692850307121838741641325965736005687903484916593173544390366095401686671003543984415300615105773412443312744861856087453419439443149763109008126342997530359560654734351041513557182848754314516617296769091281687724202796366811215497494800437240763721257973167663756498565826097201042570370665677896627252466893158941582251109428148135130136286129311805935200332569931439674563663206060512476474283324173992443965380737340955371951164293399213670928655824749687606708802012683772882138811099918774147022091608530094104973381603046483057532128010638071068049257786670375148417717227067768913183507375109195851170260523733847447440086431245615577389790060593788595288199084625730519380654681569852936098251716117828134438310864821292006004213105649560866503727727455601742570658907481719446274538119105936802562260106333034079015994790818458638731183007779669052988074350086564254864428471128504253709235158429350190967243192375746461612687131120646648062150246938462044218749160856677766241025132652186088311535506837441051795067381664268492268839817937341755071527475734795863229772869139530602549585149680972544827288725705263581397856163389761980664495145563992956753051840556803823285294175695450904900596601966306028744543724262444430934895391945379122727191060888760053180475530538565065634385793689656024557643395373148401506352354324254775559516920105456539165604901132806767593320646934765865754010859879114500751491475872030379586196687904941254272206230806322495837047931106331641523751195647780426092105344093059553524748025811878620759797709519834315796383262002683676483586176337368743533677058933489409780615386273827445146177299414572631122737756998638253661356035400454263280246397199287094013663240418180071953587045888615766239333418992463519482435736964463275753497205245518299816198745312784963958722701346083704567001666167124947939710577530150499968896866259580282561648803480476504866893334664151748230466867084948862586512069936033248449030893899550825546175027150675266349669390131035914991366161945745984074208403068699147733677370286842057588765295177590857954244023733374306983100854077985550322273841069001104545600656758850500176628999309665431337120267623727419768086084585001822851252496921249274398747880451181759596957181551460231913658928723162017516471587186665646112203054118946755168734579164991090105929862902707771416090671111791708219677918277135495866286687491088597547409881810419904857832479651835268276991961476873794897341557996689857881414602753926519298661190621788534902859383981021255954203605771708353804737855061711046427797345412882321572186938462928290242641902282640186749356251239669838983044187961484687735065783201150658642586142843617185430488179990081253172793792688591138643115987795776706628642506126209805192888841829376595491937337837570271945464943032081318439292772412854506292422223385415177528882080539672555725800389145668515957802560357493514461810757222991092699069973219226250117086866522845852567187382160681148345089439996431442280901675324112354029941358570882084729405237339098283227360284986938002983082872101068652352551928992640226472762584742758144689056437758350300625111299586138282119680947698668633081644470496207200892650408791291093033713502736700250086319822269936028191937338468622618011644084333322084837425528579866635796042826476832295646711714400570733545575539857360998167344685091937240579427562460135449113541586269025308548573214920240086407384276742585920188500236771796873374500975611251213405366333027207353075085157483853048242238231685676481957786620023539171580427010285361747793687574613117211322350465441277113637061598519650754470502034856540350612889100845710987619115596894340034284806255138286279149051118322541222721657322787778509567123461089768312286779558622139875750459453263505819001416231744073778202027667560209380921064412529240429056456339274566424017034441298331376623496020236092380598762067606646033764376185857725972242165078736147690451897780076582834772167216188111241164956499295570896452372503771138108766193004361736056207323489044893873394116480451703183648352615451667161333266923054060628228165811916536587564007330849097731826217711073894267948974636817350046510682561090625466283341930178999458880609356601500864384224561064029171184198208379253166439987206038584818715783341448285923694611427360261566648215228600439195708827185759862594599326076382772768564841706317285990859071147034725457175755903825334863163716993493554587069302372354438521909419321550914526029762829304835728068766816365576904216695014072352988701859108790066891061902330879034114818617169341735999696517343580898946125780305090116344403133858354543987147890184699646001588660078481061658084226390166027662334495105647761469195877807859764465494845558521644029124106502577414312083647677057978519166827466425563374144859646927416987764479752871974221868927889453958844717488473384074044430834202163165480640424309343716804166083250558540914965060622683955741733889333293688763661926647381707363817281267228925045458640552305022031740015945478909504166888306186637871734938304175167243530581465984911904975699141111500043318471819319233591767140502206760621597189754122077697944412239325863812315934446233721452019810306282867345680044515487571216124524609999566449111542634156777252281615158274703792440168564254596140507699984556506409986323618747379078614253288111985195451601849931037841786665026791871407952736189361098875831087427539442169377689041304007354052252472472383048466907055169861037780727976733425163000137904235553703875277475263792590823125061755465108655554162024713200406918052279157325206493768439532426352645908841913983689587046524755186105434298533861449646530774341335279024718866050544881811973141534639239549119008144512504321835932200278289817774612143751883352194867048432549563089739097593386872258703756818264178166144501273438524684269097066373327855729373063660554428927620397876796443028319758887977836887237827262634116855546464118545072023970503727403040959111981817768064539707402538839864378419357743729608501805260935140982497312347857501146270307057535391757949406994038823841008018669477548733810430597295393289503519032730120110273977885198056162374991865663018097314341298946076498170357443084677321942705444327286870456256922785146259133670133607466827683923617082926349616728110142022186453272830332624032674158926815644036872321922467759095379210967053450417088433658695723710876445226145567409146117981656525337512638952887360636973021389106519597761077500432077040596501521219197652355790549386984454463731161550091206173198389591335578450366981753149545346033733708942456307889062514080422000104689152503174668581595567023215444903485687776050188029215788880194869651581234786040347452947613406692118581842737938424960032612159673405798911560931611454943509711131448706151867872728866399853510118484142835761949947041564267210010719955955014343561678648672355280002597159247705184006873508438594823067115119641115685508380747119327203411117244104921310775763389507222483193758268142926574999217172819440459746194340491404669158915825168357152984240823229380169104611051111911809284595281612486340748568811072136813208650508577964486371062634872396738745993264797100498653660819133048940075732230238691730605613566666593232075608979992427797046749346129566840967820237351481245606122968969842704994729376661859163040473248693045398749119708376883712711739030430616632772142218222976129753209101147735350540477723801001986670466859537241169262214401224079735299243754125543382842360027123329701084237614002988704917082864110199129037535828590649534636340878128095884986401740382642291390754971996941996228293057646266636353135836229697789884915396906926883640101083742028011981514130510025736570864731889417082992521277820861484548214204426071879133790877403504201519581164240690964468622655018186046411191225994404476451490749016262217099416647280192075547447244800557353927389394550675114875938149888117365201626463527948570990589553995217642301397167201619329198474712138057900726271783024473059424533865946633828850120954764654872428965025158567298953293563312567595504330476183998274881305762003388072249766619602290063081754231643937464150737155148954253323194120519016872597950286266291321727045246439260977890351534917216605843335718479626822203749117886287952883102502754275181760951571377328292227828507775890160413185017886964293864121736622612729376041446880668356988754257729217693812321664070406737734662899475615238945851939176931985180389641162537995552189177004234030251777794047966053219428813522717833251844587204065791053460376121305470339886488940228109321334035114132777927407563583285326588507675044969891661178117071898643304074686468966742702571702130962459489461830156645699791268599710669266479246552856629875529309695019467378691491140316361388210247679653443494254507277345612028308157596239284954400278394422972783061861220379849318394542089218959696976655162665184808317233320925115718571851494953903315284979471785932631442978592714105423495500294931554935417625512753754546065935212306138030074342454127935780576868160605134791094001364661168416233888337804081645464937983008322057158579724527617783773878370201571631857428835472430494600464577217139209926047602122061145261954241558292423493668292230242813917644377276360638746965699688798577024101859548815577608850821880049944091922321841179564077877716472458818154479313357142658480666916859712121341217053823317291762915922145525726669483044308236089082041885586079867510653442935437661503301002758902969156140600989943806691806968525930515501862378671853772653596138803801033684721295126108217554367485095419209957311033675043417603165427608091502647943649409422257662821266909408950753611816936006379697618388762907451908834277047904631905225712332463281223177261201577556537562180947351263283770962251486728348176733951752523595986874064092510760402596816510117202418624616668444068242800235686884310304017754984348138854321602170324954368206557359989169233382229085467709187465027129733479863190332486822079668287076062536578676230290586125018939343249096372709566725525242213572127851601976876755160235329131122574084598349470098655876038590611096724246066363427298101886195628345313628275868211004681613956675439413412977801691117611752750254332781986094326816405977896358088028091861792745726370989883728917327010093091071079400310477115626030535523029727333949000684844553385028593970903834663697136038097356267608816743321834630184755190675507373665421369395690992121007844926586835750015686695101184434884198954137969006903293636374279977975104151178809434100499697215314742350549082278598930311398599579466287519624664591082814048507171628286007522429172601703343893404664639362919541988820663311756987090453657650169074110811565033916899437395134742824648595530680059598778986596630714211697214797101641455358866413522385002229243502955227871828336608678967812530028836727220126170535762885579757165574624391744379160888485481665346875025407044686102909577578214594224233010865475436113598159327880035313875705998627383589165504704040030886491080889107125945883616959387609074180904049402940264068309798575548741134821784771040253430657137822426433459800685499261560844289359469041510174226883261009141280561736316862994645797057495884453604249510965823462323705641842396277901142046589343904305946936805751320039165145604746342789393747912985805221055085160554480099011871897826048776880697189046168807817584655116001450958147486735471639900238583299019578181548914825399435479964139220759987569935959709844393277090503035228724296501363159330632162403277630074855019551082951216544671193732593799513643209631996720638639466585963472461122127688412995645760628883469734956803631132346469645846810499739402569439456275721052048331194167213806339368352768711090537675590628653175483750354221620301524815983245904746767702746353892480774193250229747370442522640807876769103989133471825800573364474867512729634314255063929378882974763715076777061831444389847982271310318798433525183039518179966763378763727502584207558837178206070745184477628814529665046966321159487468303723098604754640890508093931606148972219189139818059502862883886786276950476269362959545726297073592266492215028567147030820474198678984353369402278754337879536455342993837464404398317008035622626722677539809673372850592404701023656174850135033625566838732125109004572111844636593128650626979687742304052535244676812562479414181874238820036366378421587425682801556129212312791756584769020729686948160074665804393102051066522953185773684803872474531874490615145600332562841957814229233232122142179481872610725890012176558737170987723483707759137507728694170903757740722093586643413841366176568002566272835230342562354420768576875433921204811513342414873510132080330612974101750605355005506455842931273573188428853648370294750205322704870731720967682568451683613522864838297764087706176303605951265238600155621073002972867671490161486109410527617669241524992968207473763861792979239949873984865677846765821838443154609089948359736095267193553835231309740481271263449486682146109038891331099879460166634339816383310371326091617543746319521419806700023123732141796964079172060914819864690120737439877396997602690176720945427134831945281578160520313891669447315424666764850321353830406662355439092141930105254818989198464793711477785684624591658299184851708719693204753449339169359065223946680532240349415143654839579277338277801111247169203535040459049821081466395692068972652056167201156178831417818724677854507342910609507044913145052649662037497413839752654472160360846531287880983846993534981054782444648273282934920694749721962478003841702777529362140436383212113069831201966151208309343275507103435010624405637419668730258242299786615952137112184114708728208453432830297833885087406173424204530058553047901309278940524112848767175981581336124358764713889459758125947396910063747839810177501129556853823819365965361250068824869427202216554405591997236789209240351231092366871183376526971583941161444822377366414052682743025301273833294844341981029253931186156229988271254585040381296982008304207614339789070776233557861523392823190606055455316154923205295269146577446198701631304573706960668656524254970183551537369470315952015741787330619545142674899414942361296214625639486489362681622219073378279518661138312976977450925568881940389136069012497985600966745288267204974407617963458500707659307443110994454328056166749317783147328090427413125179337089998885574737100093330846814653060543834394885270170218868372068323525155722966378134589305224075475887646826827563855090520142503148873715260992671442618108860352193783462960317287473385409304248701488673999112618868076561954177630858831395471514481301748544075680319338571068092272471525845051956691595857256135695404589559400447720973952672411648927273645221043244058016796952245009256893944419973961547128085738662428548050892814120892681854530762892288205703694330956210817874762297445877573102756136457667279888616363502255598886790255717617153779473509580959673839433149997881672188155280713463158141764386035301281003623615832714071530548823626312285127097749888431632910503935700413518984295514352248840955613586048754762814837701288949720802380223596245405806536457281040440820582225564742105051984304367996647092665779024462492766149200043053103598298926183861905946608870311166700938734894262293310915103941238831706887503004705704439677956461931832423725076853962555862092552603936039547333573432945074895083522490097580407427149065365810638084723713118413863227069218630660178674651307332825100119038119950008071123017559571176261174695782187695580911965080203527310181540679531603762725375131368176582366787944923282398358679130330219673799457478174491645272146961151534036172070451722192455844785953367042513431755671368926621772393404676504531527934036813510908995780908765857566009133614356140972998442987185669924290266442272981884393275471042168572872163684084061866199661350706854308404478942791544713258231561666781461443242476254422606396274644759873119340519554206778516176075428974983773665812644568181981608423362836404514754165834327933336119550836225830614536084220428562084655214379235826669521816593815939500946983016324107344659474271616262666212599828479080843535243886019222624885726607795538856660403113595309946467431738360646317208974034507648835140369772775551435508851506262019135807348247699194450229774423520854636914848309179919248650259988436007717767914565074483409896114328643164961398948520202371422694691771233047418007656589625726253886240181611625981321411777887155297536776163652012201196738730857073276581777334805449293291743501402095704498031829538777096533949054359998028169556593191643924301299096641483609443103680207015659417209268142759854044231662949885325161795512644564263539175353959499210458357992255277562578523746372603855732278385637691734020676490523076542589784828083170675643510731541665626699550003742422822356254871416503563233504056729454617410575900684092376285150333499040016029440793673789815084332025150446379362628799195947021941888831626479290426910614620747898680661150297366422347172779661711941345367243574432431374379660603219573098900575051661464720119620013080491564641389631896779256524629018152139197995819514268466137091279836466990543310602501252950974747235601882886323015512639767554404377433194684725517430942186097957874154523313777144155660594582408398562159163793323626206314342683649204231293047115277335610515762527056247680376801689353638297042529193026452662372612302681203950698996141649441529095731266780634093447574228977704775331297208446976947329344193789623305591937988486339757838398340864662784508631683837411988136606730302413028542177979816213311451206526944400826266519795071517736902338817029814784802659807547071744526430269374777085077567397115374941483723921208281073954974049692948046055392258768259579136697811620575273817792509279489662863433678005674768762781837736584747884401786761682943373586084784326363658397285422593326364940770439015499802724794421221146324282282124720784242664059787090280592424641617310699205656321252592015841697809255847006413967618804705964976455002506856872759947172691098730172352322475479070946654852812149206076423389253989832757908209871629188017489701103688308317703678508855798772861927521371235711832935393092112824805336725954065884173529022158566272227734516610424107901065546073599381071285382242170741116738313869772130257619866053143598161780780716524535270438164443711730874564096662433011256131320975840174586247412394734646031157250073224439572162851190309946148060240315770303565725216551562187746431654942520310500803015160247768155059502597294814947602529664329878948266237192639294171888979471830847040910230677757318669460682151286742252428079627197587200035768504707880131203387987834379486000844531326892912415205277206931946072203564540287187169956050694781822298548492389883239901389038386922741127364106998588610000017259043301755963495195498695643143856488108395971090176116825506691208466178803045362628774584680467387680147282838071211774408895859353329133257963120506936772011377714298648538884590605221662147486755334453957963030716942633080788305338494137975561386381036213702976015650698763896928795087980580698109558524368945009338098988221582671645436859820098078279120750416360193492834586104220565994073119764478377561443211272361495884764042041619536052624197266826935322334987478844918216029207506286472426798878427524980025996233290459505086966882288181807745633657354839400414230950759723341122231589604922823899746320310411009798752226967318629975235136342118938018948168814592364962976994172479483454057975970731425918305323909119735311060465832027155662038858339432698057587296980005840429368396206704745039370039707241219309743964922347316555505937075080514780947346922073616481856693246316598351066959230787164435334246444342533978863372624037825111566092471305061142695020353047879940111251920120446270091394195949734875813718700328457837105454768215152063289389016123267753840881254986104721530333481238519516793140182024994837592437013698800859731340329594847627882895944295143239393125492860032159373520439421363430364459302566371338004710264237422872127458863692516371147414495933626961679365863616638828763220306387700852168537117339923570553086414934710882852977208938606629779528537597406752407397979773200317485653073824105334228255867119721025538322447937138377614614715216079909923903848528960963802104869046361476524051036565237946596574083705614568452961227923954630185669644433596607574593786550361923927070521347984659397845623611696058904021375080123510842620245839831577052427164285177012510188553275841640093874659810519220031132966035544832506317069045926813577571733911295250298468989425237229823137433722345147021479482961070239745367251047963679568866666982564946916996642132374338163205849135440608306169156700558340881911710389554733504658124761500646225559926057192270008760515299144887804704042330781201730871277099686899806337786164249384696737976371112161941778594240766202385879179357554272906549908408218990681952605024407638422878656640985306712659419084040392685988047173493415280005896220480247198002449339901772266132591906216548526056335515295913772975967709229300909282745670274409221678119453602066112985771692209979598041406990384161663999493175688056159207305375166724912320987211000668629987441318630271383497417455641982416352530222269861952654907304718092088922153240858874671324116579700615783979154185557548510889466409109337622903224911828882611031106712049738626499134241587667779135626268748594556501971318146987025793293528169509777095040852869073335414311929157233050696634445031738118531078368530900342884736415311700255979257764996990150704935833565095128569768023111050923514399611110296986255348950739851800039119949908834826399147873278219092811255695077182779037398048938716770753054964865396845697705703522286555251151008575416193583089067290923037070677546007941988384961712709020636929800849108050150332649552638299833182708251945229038598661969456048717160457403564645914536217861818993023007357147960757446333105542327297588882920931198451868773268312465390585960475867726190381528149752406036993633245496625556399470300889669380552461921809897479865816142129918628924919515486604512980432386644271152364512942019803909277901702477081906751847267967498781715588443915497392543618360076748703808565836140742897657177141937440314491790284098702063586942138256153543320710297018292265303908063625039917237711839938270139846229758915127934706910768780580252110281018116405151643360605382074833740909226384523237922682642848243844336492978716793984591987442542658551378313248683132135485656322760634586486610282334383799563692898183954303275015182366449624214013083388313647548087777969319024310771449509190832866998637439175418226763732183242532404110362486055784313909937657769848745251493340455358292731848538869272947495450861659492432423537267267518131204011600620266949765923209619216456660589231003880637287985749433714752042084930829194934997383975910373034926753060940643222992369258284999931498141499238901730673561555640860640544172057143907668257051450648707819357641103007704650374806646932719888450957905918817101301449260983710501833495462957440290344295836636541490546297587759589677016774391075363415177259917401444517985670970820235371696898551922392402886908745702584763484834222842379195970562574573998921152408963019083219077260522217097265671226461174532077578325688932594001269645181733692492724006944412078602629752165344812507696715404680994739513854585636669143557571419577733667005949094621462248185638413993018001726221787007570011638691808626652120719241732060201975519827870969126981522651289042978345939510435976787760857120995318845998055562153949566474993310111495166644271927793668273887835328128663428279703867984201587629033968154272399606251012901424045492575283263617553114957369989217173604543824834826095608166811336971414184281278175608687271385338328882200548160549907675473966241713798808857971620408518974530725462971107499704804824111959467237805766351827839355998551692826927119932178092680991067972648887547842833265675786314901107134114077319135855088476017301457253518797617108410749909661322381661253187321080781581838960362833920185433577323827676536625841811854754470838923107010959990887036592358512501390851326064648299538837276532664093082646359062277773961356395012188090469470403760329276336646213251069235040735261693201040891331996653665381394954217027225085895700225030857127470842721142800046209811145581986679797341602046193546459580565185582574888193571804575409905241631288062541850606442147962150640753980918803313732273952652813017426279886678510811333718833316770791622111533318803616559866643701659324969285385149936146103967362307603911150766294814212064608900607815072216645113584583991524997964194886589750713941313571619122092783424260937935789328540532042180526386075613722428784466287649906400168774940308648616236627374421018258940308261370907616285398566539449637698799844134612490080551554507530769567945672135109070864193323299182780864704398689142335709688883671831014277254119282171537681850711111376289146308815089690315875145744304725080454221827645036771494929968797810498299370797640074615171160157952688672371702093741306924996039883618043122502128023532136683219723168584592594047024321722553868995738778075825365946535358383571117300449516594821005686470352639884468648689396281906701669212505783707189932771401292758583718928072592731794794274754059518094714877268496896773852326848561308773147949309976598067189934275206703751575258171723357233472182112016423582214424582931824363135698970732258053098860313339512407394384446018804053869292800520793984955621717456786322139324676419491471422416261369801384895259399155662861950631548066275975383040119898406532420657488242601936726503920123205991027350378982269242561740781116981516944191899375623780490434790074393241886811524419036930958079698177406724911826782236851301884107928273349356546356865482985868456128944685581970217182267171874989159488836636259237805059296802011525377787849661607971159120574927362849725840317239238665506137020598159187524325291410034226399467820308778087323554696867590146080197213889307155747580369242194002662856393172036488820120025031521444472840233705479534711763169595574894926321694479197764482866757050041305197907257218804599235991399837361002344899922025822223141586882237117875223873962550954505017576088026864902753329854453435260858310876631891220630826313127443209770765470647266492771341394450633680090130127982434817696902843977894010849456783401260202392358385800246940843040867769892540158623495780657245798386362688211489226136384815929715871082507502667210252832021497345137605152985720030019949911595513452068417494886068773482553938071137194727592898669395854887953672577914222702234994212388644167750136425940142259784659890507819988898086699219383672506223807170558657302167873640040089451332148315618102508472604208483681880049931975156465461179811309311558410203458683531631128196211408099181417452597893946146639132529746571977805168486354105635340751613982034555216269345718081577802372232929619227202637495445130748357266419876075488168120640278610270198526950536142361698846909191753797347721499842611675231269615684112535029285997587554134634814590016672787151520907711339741840198219167789633665616956307452466582346095413058311007318854888895757853194234533552106851582242431984832541190825533400136139093766465602958097143575231989663738490335243851529360444729004121379018959594115913267440527206272033668995886802022965848273505030577598242678012056717377007317477253242529023737344349818430015081155534755336097488421054988968840425940008018866199737041066296009916979782816898581433763692597432588309450348107489977675669005738542229196566248745027634270141303868280236316631646956058241880072719235556557720213381771907608637088323983945606758749815907862961576555858600762899135638969927392185278822992868713784138882278378110105828709940277215408733180425473842379881825863054421552326882610836522524983087638328479129320152626233700712693376910924148184460665244379324882853831882964602605470017656431080668996271464176856853958811265833194447774800606705585296822207084577216693783910814555015315002065198868684329376080602204359869229046375698732122506426736278665262867316747731293771584426003655995591362858484370656694398910589471118621747845604762590181134761187522297981585669449008806523118161194066510983050144143830932883092678638032513383254333477258631162498596210640910583893877087715277574802881962988561401216552691847528261325068201578731091332702115492682042068972340126052067670039086843246061375917241323718058130221656880230371299668909043781539912924793608746196491274782820325980948972255246413042542963520374632040569098687781236918639789419338971139337559869081694379256669564671412724132521324677777836062430226293158555516978348469874604033003922472294462612337815337102172651388202959786817951097216858783116024266843255001616603932934088920741776237380485809774643394956507741525661497786358590573907866619069410459966867581110180108041365253067643385574687267945489185420547522153897188175929720263017550484226633888228866876100087856882379055573142349222222884802278104693637064579454735042185701819769939837731857471710801986512561239359295124737806069431952445336599205537247385593628814827135668681806976789915259596082665797118009180250432981651384208800607723449029163249544467110287694048564232185492093051973726919113324897086658838495369708710074956374267896634967612533104201699203956220443390817014927794774404991010247563442338532186409663218379588493383217812531211850642885299635124122072393497570832523622989592435569433256857782482973716826227548694687645624171450273534465755470847071050835570022418256322764300390684756269832492286125121906360129372707774984736776068077058020031062026147499069792208463361726490065162783596565305095836806263899840061242433857477379319049714857799555402683566347887830004564937453707577102057022454899913566630625896254000386636007593091436465057258827659879406632501840662969811283319128169961854762788282105131959620057628050381626545953595903506652532331101572593900705942771890976924778961025968465631757520494101985763575615794188630091888485061986240336558630554244889380266101205213184286829245357185221167735796828899652298014174537623977658098743054199247234463694366855929254454588668619887892688825533750203102257925592177046824492007718767537820428491549014194266044549684243198500700718135662665028777165814588121731751778043004616449960653100849866602677037614824421394919892626445099966585215637393511896155552284945748661783717627456237551676366894458773332341844673858433258070031757608944821228592288930248896008897888368148853845960125954692877190510383212728456441691600561324993569504832899189529776336851816033772481202436819813981156560105727724304743524069328560403362233590898525800065243094138960808984929651501817979553676697728811780453004499701644431685573992007420201422081946148504658931209066422159208504653239205347954614828570972737770485554798524046449693196397013397902273899914982123408619107077846708412961155484481092151171623271992910083149339484911087250783698265375468979979076234031365172658804076227439112037848779476603336773237676065272826320649157428011747264004795279841942726825498411555289928838435824191504692738593622585070771128225467866016514865610111131856452844940415787039548126615521643269177155546602296181781541135968810284520884418553626581805042429302558027736726979081594297725624500561780099106691172265877212576390865645167429314423584015263251317927363102517668933717341567180915645484816142739393262666567365653178014400139080435204427274751594486659823374056917873405441310696170161084864576405657235464182850267848225185604035684318695120716698566164748198540261645875234264565900452864691722999549879495378599382884908579238955220650985652830983352381816853873581295999005640943377718261025618708384691167964621710686501048775373496772690246814565976261552538106549220243052784932076140594696865049060411567474900608572873382814422096401802171104925899741877023296760856668904091163688060666726723014553154538616351986386798710118316081877861518115959179446525149582520331374115388161686843880520911998584203752735988963504514774554290342219071106991129510991128209762610795759736133233618495402964680839551399008247614903287168788680618637991166338639012681905322369975384326605288403981653102797310417940683096111568184553297700009466461245384946629461478195886672128302665160155526891092560433975405980591154764415774234184471272090897229312038508118023712819690213366218161976433236804177271327362670288602542909784498851845581693457715449349026465472313263416714827587847036437467152589380697980360522307892682712476562971711094225143390339740423466350972803208381644846345059215146996740359513908822497488688728769850070229456299425921975675502353495636228754907622836616958049692666576942601661098956086570832768926703916424615820790422746644194522266021294693671219566651064801932454362426550086466205265405286996570249832782397715939133756244237712774461950917449572021719205636328372746983211467717882966656580842755250880122520358432288404057665221136878509415172609939791704004922251029754145844263892895052035633174072652075291793580858430636304118671791030522956191049595559812968636346126936863737131212271396524646805656817562033623880626088187149747388781546040558594202765030992907018940244963729890770301007990156709004562456659144757734780426011128217989084997468502601983690540213588338945981540919742563095725730671367029633645130871504300063991290519395072268361029018577007259146185635379030762734281723123836697927758305947755003757869972228705050870095883972396985997021440379276960242559826852221136032121855940686886992084237657714685352624083048777517955824130746519058013420345988824162753822716890575075020501169341274368310236541713920262310783733358886637411889162422788402605941387378898062510957622055455388102489100120708203077641710181656261212463455065294473462912739830193385799947531872366280307488536218560543620524294748944606481663124881675384090085434214293471045642865468361813988851889850138306701538275074372823697449760541333682334332361714786296577697562752468652372318784369808560821963643800238789877881393082706671935975702143626722660407232923404909203980493455655728936227050069664413387374061732488181395088994301669623317460002998061455607798722089010036988178663256720985437910201569178800742396820010618483713459997861674853100250940967559117341003490693843988805747145126871879514996083138837143862974115855941009663970243966720404281870577235291777035080166526893572822651268767604815281055986757505561376228447490275033359428791924425651065210867492463613547222957116277299796770284074889697219885083617079047221682960069116610432390272624357493805827530470287977444742573830324718303168205435451647312884987882885077860314517432216460267702680604911548736418151309644653951813844775193665937245856612173632769128094006864124577354980133171253500727871006243728225012576706774918356583444384392975458492037939397616309763676425768210012397619343178338151579668400921916524445720111287692320773465091946812183353181394297639578261251141786662902182626392997824664876596969502705529680146222252203924498062032526453656850322278789108410742469652295584669855830337206692403447765638732278738335069127766103394550915836404863969716766149467580018118984584675014268013314340277862012662564638430770796194140039774098442723471338189029944288540052683788385701663566578883528908775860744491138752921852380301662569195345209902176368235221359959163100303750041773238638879054993314645423050880541564853648249148089695456597345821229023358507268822162215241297512799498749647271452081009707399640006452118909669746389689805758245519568378584036600966377007070429023543558086922465229487295452488574969492329737932229191028808641016279821820995812010535084597964274900229286693660834890239468924898518458639231511023438103175695789104633897694025588539873717194731145404100131239819051216921840368124168459019902123722696264620485388671700828350815001666948820199677449457404838013737046043469739707916694048908477691521330187492924301345011702715740932915434641761107707956625953222124398386784848578534400809290221096706178645142075576715017949728672274759582325014151702500696277300100700642601941973455432009716930041171616447844734601064818048969108104405766813538283299454599706712374901582325474205822730830263172538194703410777077654627433265621226066763033586667817563488903812479411321558643809023549818319731633816423135891684212344391477617589188586154562021192502138043504377290826672189028198321920486741071640213336339644045943858202626740716042385145024636844808613280855139169000918141642716042733284633822991830710052903602570539144526435434286207227358316601017012216627696696650776400892331636260366989200098887441764021343941704967828100131185957154955162304098376739920466836452437640844357884051754102819051083362638098908972488951178380853894173153150906003401279161097493122763807049645828821037282002823093060541440607091841116297198038736019245977079826596291630816756122261985778967509300708206819752089624237196943841792341163685473043313360208014021090005776218602691271071146671378122873080425994245986696478243514857140632644188772784974873291100422595251300699520885750379428663222032667448012099845932670948237306217503570900666633017352092424269858097877409272992570854779379656313778992044529354834999614030986416101157345436025204666633632892445075113437571846772492487753350149254027710404985680730226686062017268159106529340542314971110546916668691469804009742009903616033870575032400893117288982346580754132086727840955235004158552034268241172976763324897205471144778073731049879844914649992268091016799832084813762022694562114761344491245953145521279304301754080727494394333261248509810674772802437684321963922230593978869940108912269591835387179393416871875395989836208627387783906518895813386096159075073740524415839049137714133392745945036900602373862859738666915776761349646813338237699801520843152549856771492247898694969890037151127239180283851473153362603943462341459784354864857151596980984422587746316634232554307223211616035650601912386250088993451974384532609747206413947196944530438705101161728205052753352306871684468720087392982764339797333560116965591831419091099728294730176160330300649244077690130779338410880571141430676642411172915509562736463945841958798713083805469658584710930870593780513836982324997153382105315941934980131205419991432991417303946859481186410244458816147190559805731099512337007627418226556359927299408896319183007355750393461386098444159911800108542419826724562191175378495304911278487799536589427626788160079498958148109516794709127629400973798217379463260728912827650507804326197614808829089368233208186487991022350976678891290386992850732864169298558819429296885484879369568199817258088431156811610783921005367325426763629385530381676091239509733824278598194432845531641983710762995069540695862362523132787853627724637994744978162734835641784249131840654348750437095700728689257283459644330671872993191088613013101637548932331396129793549750390719019810203945358151983867113054569533553850286901825484016436012541319257573097368810450480246427603595595690777561575070075212940411985126127002345161675386788063923170142999558534047930053517952642725643310060160868974752301357072803454115330627792929345403167007588403140978231674050538660503741550996938142246114914874859093196467118336963685064022093604189577117316768626808136393615746660181504330402411380884433987578926639655418160508563003585575800410083319284576374269427679483165754564562887496375393100375220571551752240717281397342132612838891389020082150852087345987321000739562911512279173462293302302933171081869267844924174831071896916351899796031064110255898247872923226594913453930154680293000866397960438019631879070219511673090631955643206059495463144381857489726474007700112352015320387354843183523535346709918121243315988464023412791900238110780210253136891193585072464460947444940753904243752569903628491027152784731905851883016188953590119122154717506341606133566812548428881163978814176919610839872454163751252380082183379319303071004626121266022415111575960016497710111230793998098295086713269402729120717010147944973603987853748433226995298096551987283161011906693187981656354131886788144364862885874352445453012891571843606396640952437215970467107116328101169926929479071184316744128405051393188987311359743986712686870898912846340438880689538729183431330606012664429379655349041067777159886044775946256319517310071552908073497017937446319578633227904209572456018520531312776383780874567218630972053848829035410166636213393534367520872458715103254234834217835936522011110512871109939500741172032545745481822812689495921281003669381136212554759551383035153605970816095064043187736555199343811825827694222683077000450738055579108111101476983812508076489417614183964718684063723549864607885523020361417429647076042783288602045489430810460234946206548174969928871512298338519143257711265096031139923515126315237242364003961859774317005467446308285363386955306620474569320367188593240274335609719931661340557429338691363181734922012977206462386560204070791260463281452354132966567770999794000990827297739092272287224727551465337874655531778832165984004950734226010748125385271186210606405256800476883939972213119998364120170541464996082504960786288626143052908122943967584774724072008356857357149512005364098788230042061335629377471857032086829619536068057526750757872512156742861810224201410964928028531042075513073067306552113507964976030977141608288851578561438259470705316591279496715858067625226697016416955919961760655057066462312092015604794664652363671501290970431467804789060115413339729325243821513122519756715660698826204712870285701635890144752585983316488426389237760711710326610065721414220042638066189925254828982908151784879903868103682258955789483769031414379606046572611895954206587380734643246672385090489446376843384736712703086352603688793601071295609422725503274968480802670238325048453751181508145293848330595954055543132809477162704564941085146096266406777525775872580477946993623517066338382599985072951565845007344157990656901643470100126088272601960969674425221365909366811998038439526775789679925258949811584039605793680152281904648611076192201891080806076959274311743118866789787227002219529390505139826608399590419349362582141887090679442007117797339575047566429228554517915317890238815505271921445033916470099368619307095701832031437162997082904278725607075542176764185594386785728896088142777837243109020055742280424926809135812250020945289329672683895842849990098965447631364102696546561256079017211376583928699763234044286811283713401510030083631221442240852723368536411002512302895991284510619151414906960256909183678089552611383291792583130721325157382900100920004156009168867717947617457929341667544581039648096365104216041896733568914140328676472805411818474900280490548505690601320754489814288785727136906835946882101907610914225672765348343650278933626218430321584689462910887174399304276935172036502232878056866244339145532723817497159333517899998107417611981050928614251998969553957901082699750972257898883859099385742952653501943600500963894055584914699082469445371913052414889408005755659667941194302602298198545621885334625556204492175886125760898530708506465673331583521128046702560436211610970747327596152581824880961700835256770525331300092254458178054773859643719640275813824680779793410173248320557898724691101217480799111215360044990121366163455017492568266603090930418116151664690635856943271932060761553999553426763834081275170792295427645145409833214697665523895143715939448289677718397164868288459787136738001144489465622319795747936608270746066792884379587703589470270079445574973703481610284807833012643283532455588772436101235303539694106926558234147954654594884407141607517055422819157630423739711805589910162809204624522722817577181640433213452723043285763667805159850593334390224239283437894004364200129362648944504413335470023590817585127217677847889228815492336249863910866193718850369113882758750068533336641071508172152388725128779599960840523755700931786411295408115584903503378715580988372437524492885265363952468256430240665822323702640378419744522249672434537341564586557235694774246280114166407708781306565965898469444607487190214155671480728114503937201759255867345328941743846010846848192532202512032209988956034782993795259948239009033038808569332862600682117678991628818373960382545885877762341107622978841384068634854965164181080642546803741706970121325913387094543551456370508110087001574727143201534699681785352850978293735486502793030551438849462630544217478669712628950316673107680951953522922075564832247666025327643863842935434202376818090962453818206533693813623332615956288047435788413125077047323501743335505321904532741866410848181979704428194715195001209007228326334182508187103198099946328031770653903963112985374602587967413889415586821218066485061727476511472918042527963535593618066815081036614236147031875979786690290028856163210572632055284845834924282820137161270511516896349696720575767933596016269002720375548570980848618079532057101203177884762287161222138656868797110599117050691351332343763591160325538470888449516974755462410518298724519001027559446566720600630341461803683696037485132816132887982967687005919728369850171569600713163472225316348452732371548950322302388453505372574764176126890835741823974465814345386119044482272504172771955210213670357165998348842428733321753746758373765872731923116576815872402335687654888723510757010981642313182172222570637687514308068718510997541592544501801859344657565290464307391389631479722152516380537125093561417598879432782407787375137544346295420609039807575097089403186325039611269979910004066360565234863312043749252379354958550087633506853048947747425442074420129754371649125729205878778015529685774022145141360415683139606558005918347707114793076631190649908892499222726549618861280305568859391068125894396860122837178872258813991334014653329853291878861580235730997488369227577785583221794606389531649769413919712128685587339056275948435370455912465291142573308585568275293915234925913410701206850327735870063371361689166058395112552597231078860620941793506023348052224460879110525127893445769520631194215393463282296165103589967072439108177785674516170361171299637470285292795195607302589780172075341763719477792731944897563831257617006079684649534063938226965465369323285763877451872692496709535088294967018293814651212516983746258389718604002775395073444769708286937027273162780672303282212454360083665828198462219647376478436028023320826484011199900685345152933384327623637328971134296665204951965109330808420091708496172985023150298499006400390592649641704386424717474695790647402751134916855531239755393795394207854785766337873598452513119204378077699517920515889556492795698380192303061800804493155118428316972637306440295981299462141036177601510476377396658413773766019481469334324494292732113593392045251886877459422630153574521389306415510870280451094209456582470606212598275080536788729921938543696978282461526151445899083991348629938121054874651665971315019478494764096172461803992205158771342144233854226487523181520252821054681898554945257548620430552469381832038824807175858023935633436786224222802341055308978413693253879275885093014761183799867465557083557241557175355367409964354826742723089562676815822981670638984666543164316335599528037651730175881942355732758769270344809706180000009494450813673678822669274154018894160982376429299501442611649316241888082783935107675101119981133336255839943537351700824344619999118480544965550641084667383870939924713517012138752198325882312438838794823568174785023288505937391838070304642426946077827062436540146997461301926261024547266292340943407943472203787690542882948067357292934961612743174073991695269632848840613212971402503675533831139466149856240911703790028435056860004846188913450212343477501983006085859635541100485138885552898815266449194279720720609094811644195798824317311746759483498613813527930795717667493125830196977718202346331395094239026067655742983853707678531193279464804176450774158797509589179014109264943003652161975063354851833226839132341154440396722307669966520175596088150610503389680175017580627188663498866909280555424873262544368761277841551904591737283652220109340895627728632563382413090608999575365922416552600737388862900796315799608604537714414811222355182918987571019020557535976467458933837170921889374277173934056189652236637623161349535004383598614983839278980040302684630764506995070501979552082156692846527574519700044146759262559700225746393152832817363736966234340616779062307495205923039002162959277378485049407861514622496771724378012253563467224783317390899821786336508652500288848407970256048371200823799547928365445260201729506284341279494262694984010816933984179757101423906274226544937819283957088122908892039703000344731474174404572991540869483451411185208476769976939575556675740264422689466919024950072938204236625159072070234602441474154189351068355573461786342951540413194085256288352496722249206587294855066793639029286148445122142482458393630954534845601260139345855645827940480992115103767572626527042408833822794751703650404084779643229707148206456887606146590441818200265393139996137264911748878823743079809132442290440496445461755673813330652250907569191790857533200878448351321545486567411982379392622398862228423359745381084184835739158307541077080644660062776454535507591298580857147805473685402959289272469255739719994521088804987967270047728414429662806699285647083122843475314403256803099004366958135366243112572814556647976651785498375095634732521492036824990082930491356917683475850733140711424799461953133806042646112803003876965458590022545514520922062128362481598923752979608798403048644562449515354734093493212530143587261723401088062988127922846402333111499272557731559898904163600738515525762148899677690949595758625137489792497943386989859698199271565408867892589827616093924189417945213764065891777134607654365390379014333183612376401187494117937116641984378790643628271812546634201924452884667817599902664735748624572484858459533640950265581237645659128948342310092172584180263434095892830237937780757725276312005784132777855515993758333746111941167063007110346294575073349311505602987207616689322813312724018139449715504033759918248983821419644361923613587859783458762116432862948381971845564072492388552313834718670064262345148691044591653243090814743359404037089696133110930714793240551952749866666994832251907974998495632032889932966985267587901235702138428759395924188983020472791186965476586880192089846606735259283915215077194506910453993885730785118233649996870287250709334487722362935808189330283435601862860930281043942070127463214018583695590531243055535394715449189252295075929430179893806042171028949100084918956423940136514369572020240482636278190669259342819411435113985687527745066596539948940853729797706596227805513662052347243818555139798545431309553659562294810511787219981890898200604836726575955260734254651376826104198231701860024333743267719191399768950979430743906435435925202767590571881439342074025483645437645200764475424090919093470120718166372403099855556279515047834694538387726363034469222202524082212636109713286317712366898699225442238038806068012480166500120668784944509531499710693863389243162788833681700982471103915713497729021037197278075404461977673290766437086613057993209268885422267364292634951343689174772307850580667747545270153965667186428907392298999161687496762308172606966627150144421677578628324044208185184092045500531962722600214811405876978165436866776768099380301177786655358750327021113253869900951954441024689405246586822937337740963561230191187467961047265343242074039085941483823007537777299981389627158166317176446499912743456573299505706689884494810457402434718260324597235742093271968472261405563286053595356373392446969816126463468394915551547097119207639642596407538716370395839411699512894042323520852701940936723566820214369782237407062338860658307312506656415640862521851380838874121621544141653660425686236545744215986561991926029782672459769476928458292719659786565914030367979839110441536678070037932882749502130429560735059603369539492175859664315976844613245740244458409897039252607950255196962779605945418960666209211055596264146607114840661861039996992739510166851560695789123559472966264570750061373688106423150874612823872409082074357658487397873705718947472344228801231330853621685013418283312727054720897003562307251848368367846608931661827376808524052619410249544555965440379657857236384525661049641035711209740596325818601550546859838759683123037133076380958117101664638163483000762409936986105028351714731258968898400690390248871809099554138481208916193300480679179162931424728473348165002929908127947906860524179132163291138427421641975540054026721254288527605578950969146929133318416969132576023408173953852682607846973119187586664276539012255455752854763911992496145182126477099148458429141508893494874713014425676354836655117006914330990804996744194817448547807714457700789423842117571333749023841218174146420955347356181844547464458997351360313049800371092045463132048979304896205813710291838665877933613225010285121410900629494008291895329980457287740139681952857652219996918316291782242523020041853882348077090643609097565274357133260169858531365629793974238448342426090401816155446910922229000438270040940305566724136054402733515478783773326243443033742523736369808330815544446073276776025189240171501136428167268670849850923617345259917782112589419542830351748940514514988083470404017823118854959832668220914300519772126685042595414001887752214515163769147416170524787822488827535400224355736555273286443593976271496005663537085848232744525191569686906276658146155582107871593653191077821278662686084170024685859318442460956511744248263693637626498066746008609682644227574065649923733206915521536488064136262079745515731232507810062065418569093314317415210373101237613157086180697063157113158885804932343837484305973656949460743172950934467625730621974063585788190220040618216982711553412963114255583855236961240074450105334130716071327147834568851348471482272915205111677301184029973197108502885702742485058054791471945044901351930229057987628957352940524762321839961523262590519321800699908235141611315132476022220387819859955866149722951263875759127028689535166295548201151696637690729391934218214156964312958530545003138445236708050070258996889093976607229716940035059808162390985412768684357821923411246350014494944608040778854215229088334782878024159733831989223577446951375945822763411168407221804116271971670982315147153359933078850751362006491229111648062484760971912092311693958761998098843372327281107641846042452518988105424003392674125547828742128779466605031364555750976888037838608907214197033797586430297128937014008286848699266209436983103326225705114657473887387392389661273293847967907470387865560092645967359744032262496304998207253482527070343374073207096173022009093376795750347438443184243025353413048474171251835343831215649902570122004674259087824028109086594909012282692191440147576106184160720441814977914778239125378784593108212141413104105244176466413791028462434436356420307181710354919684605145494781343501033667635569961382617330271804401730843623822592445368515474651045578291021128337905863871276187538089725642637306891296707090877769103285905663931141254395536848122569911328731582032593851440415217155098769987455348065080040370294438739707316342876072777377304646220086931456649819197682552894679332548414392214409943611158016196551765606780811735154495183580369004985576435074895470331096284961640539504514135515769303088321397339840970488296711071013194781705508878457968637109376541593069678684876502352052885508885206516723539012952957559345279202227739071851009026674751119572060863196700756889608358890407901589374152207757298236963872831861738362007005249434509394975663739781332061530417068934359517887955976510183653934517761518924039317952441176323383585088872884981484439332368757814376261594730123536710053345853337490884075993914407806310265737120453594069312538893542607702251346440069374046116092627514843851908241878824060181480572487408121516383905612519037480056686620248222837148216922579090366189478900147382064304782426656544874963074903681453002527578604119223063664233789063516909419122685297610802304511344191249626455095804772831882597083750407695563565767786145463338755119834821376662889109619604276645817307392086543060892777529316206669157255801295579020239653586886818111159975605033356261677438449720424666111098778222996637748858954219707093521251768802661089729634279412001244132153174422566430811161955575640758336029687291127156800512936302630446907251767838407515097299910506852863879720198149484811365986478845316273832372732531429491250032514236395545910589642590291670806162602716143582273517574823483622218979084653066245670430541565221796813335307049266403212521635140224353193862635077038347139478822666174828115286499425866995319395924416872263453913079807923187834635732375185178878433917508255849077712768305392919715207345584182121896306610818566479886225831408957330206038480873752811033313190689011039103040827752911484242959095351494464911431025096416317511119628246568352339714805548113562965608464340027404708356613688965390285985467270765142444262873017621735958346237579892722865007413303233232222988067140148664994336691273857290430263446413800079918207059146174938914424983044357702955687878176811835540690954649542484259474353953106352947153080767944707000193661811351671760287260089062781949406306929017074914830571882998290007431778768873031028144245142954682620196227320860413919638144678864634329589005791180465902918626560922943639388397058316595180643315927705394588341931548703552144425426898295025127389497690702970324860234275568198775424887967768976890664287080318587962997195788227268380331842232869739382204593699295257473497417035969062341871574913066802700934365941582518110239286712736840084240839469714471462366680090634511691022900923942567875338831506233273704053121374100719566138679070985383705069623466861625316255916964492638047784079323603057061070361129757849992488753216700416151453686851665220899001663563774238761579039429602564828445554102584008634568306659287162857774393804379252021616343364469264455173980212683811993197736516033453237008114002837083816059834208830746735387667926263551585580447898946905724670950804700457051816449195279574410062442656753966330741184175561155129161263825146282977383033606496967732291991850712540481157206567709455121952569033929398200057541801557704651123787830308886465976820636036175176963263019051455077809441159984045340403465542975051211330089781586023736991969966420502652059330958610643271728482968539485138279401754489239420041440714744407493770040023935714304190973922310723503634165846894337364146494041312206695835924521362200866521318682271083079525697753563992375004044748411427346331258706761409906455204964896813786822745248662517476004995410369855173529602829949275509887820941425479895856196881442998235619347538095203310836777159858760338463592884948531718307073470493491104671219506622508598569503442127981481096334948742066258082969786543204348608162461551645265856170199260954449833789934535628492067606056703269092703656683505416457248130634327968022515917931310993023171297928403514926051942041490176557021178113728905948120768467594695325593659512679778107012483524332150763540330989777810551451077147061743205720669032701446729319371077284384003148120211384097613257720989418457661070073077527450132060180885097077370132897694443555457873359988201715675213002388963083617448009423478882596385413794505383059074465017731526901800624159378428616437405660330030654296029933322748720809848911032845080233207441207528781173039055340890890433680878960574405325139451614477478680410166825348638406574188668805810438016246825109164363525577488327026119878376896444132198333245464976604775371662091289713648753547832626714896349847295217160786223116092957461494724766776288863683434519319178263050181593548824376488883404164029911670997865507007228542399297592664055113999471845356665945220090148623321079414527648826009807636719295502542807371411536122958480926881903549439951464851806103291258803574351024919926457065596273877152815002993552168902783693875341819106277036839001387299339152914484204091732613496191225137635344954677170248007783475424563329314400519027088731395448493792249450621217091217912238065892261349340780843598368552558286263856156011330996390167596675534831277040273809166465597602301840219469810749909190101922843270231150443842519446827250060313081097520581604659127247756114546171515379631541305373429232633474394728403765349333768446813294855226211650756425360914321526540757017896991701341995594432032891270979412019449816514043549611415513307547664908255579199278311022166312799306703582738136229656432058084331276957352441546374604640940310303180182250243395997695103796357388057426430571213185825525998232396621149225062141822384234293976206342709546299617447881396345319524508500466051782911723772823792356892048267459242319175988210567662530782276044911112765502861452611002092774026612135296199641125330009419368847511164606440086596019013513821629712432357310498339612736449294696909995676890838660048903980177215211863446092077440358427892785275495759668104948586260621483027294141774702276753822760162411822375910401397637002772915065259165726419941512177514871702007777844500103323656612644941218849340138647760042972410079878589495440849139256549530958407274157050170655337442876714917079149646996979970482325452440855486245089128504005873510653406468636517082019753541027889247113231653554254089242880886440374610406942313429608940963542097012282397847453601608302390743145796328377619832451597862852881534618827010216915677896260002410867361552956125035284328082347514244049220500662643459537416098606451321480309973727760405702585486552189639017010521043174328025214050738609572251067845913952820797088093414541910342530504967098447681127609345545509913587891411593390853404178815809564821801113493491254783401287070996473855994702337553764912463462115326618550523083643572448565871419359698316020567173437369126888681409824776851009855005863131018478620718633978544242355899629732362096507739533261458254209257007824127652278077608103594582553193387880598979521426891760336268545910993739978851115733544778629623782265746475874406474526681344925848621271437139495078750308377577064097201371645474762152476685018911827028393220407431845381090078208246438046052733519441311330557465304491668829907855634890404323753210762072492759199248695608551008116546184848126069704120399072995460076550725269467454916157461852376777288654255027049595495651907293583433952714963063445307976201932008607221687552765917507395387827898254756428829895183522532055819010801615169679273816775750786612936727993157345329276478861209386468361103317712833307778055226390249722953678129297031236547739244954314246262639629683164049400807875996867011386261341195080517231073428176699103594727670830999726778097365383420774139947389018400433822014079565043655529648405890722972111385916566075377316983746385060236431017713486349377371885077408295682335310852193577824250699974671276434971845947337238141760875925179706260280825338467452726143602554443277833562982244097414153278197916530081203022811490009228697790723913128176895502115981408036866751225197998606344871244239721769509144829743855737521072316656041055764608967388762742806625368670985781674214839217416323735468813484327675891584820931822443448978053820917766263354925817820229447750818137717726486885614688445550326362326641586181021092016867702044782483558643578831613166088205881995388637342062788712268658656203404336588313502619921308224073109117594236593250525072452973945154713979574109661068683942987712152003073826847819490590522869406122316314668531021959545976385764917329868632883080671114501146062106526237054424214674766007823094400803408781132630694158685046478297875540677426597614511851529557051611224728160271307849107040809854166725632100048316295124818306785198077790721123271935516710062887131412302731319041897354569235453507682828645801933585455240540835155915086273690146441016466139215868481813434445013037872481936159473308003624139067855553452991182568662905394605029052295795544477569050224648701628353949689760589707666478326913170750619253862135706357433628097215137252711974848290619716711993596784814084027398706904126037024997947723623817567999033268583655469486162590291103869884231741131164279327823620820881166492572993419628275030666678691703653724607013365460074409156695138488583101662839167831679421287600856170258468119102957256572727035600700473122646595371876231553419929986281671187527869272175198112986038307736699248691347430618783308831218736419152096027625138158779552770981706957111813521952455827528598868636283941091631376478653271763147295707873076790497790261847185317359752564558374834315318593630809494912106136618080487158424317808621722216434089019071769576027035625017599768606908914978792967282044344991354686890916332753189175836428925840619182489426348486217926683448130526820049739319967834730307308632952055194690955917982896060744449369995985480778649295632225208897856681532991022399890976644339661136046365947108685931814543019287482892672275078037676124102555654056287605717024945471549912055011061085454192050411733379546581204550940003032862144763278465785685647616761071051073871191267293792320570409414134152899620035787460070951113933740670367181433159387304593212814914300098276367139550217992606727979516869452491229900562830513386482580140785509572513266309395331939297045565355087913504834078514605162574485416908853668110965031915038550216173380116857061455957679473743269120802775978129279533303020801387699767447282904327102232486801638677369223179295007622273148912644044096894773299449191210521098129480665511603232452758891276033845283933550954301160084131225136597370258764300899274269283266785968572254121596180212857764183325425212516782844758665679933020230299230908746073523172049284296167955420641171907980077264121706763785575273970480664580321432881286593522065758376779227718581664172753827530305460503220531608139770040680075551452936930402517242095475450682671531004276983573226585501846684062632670433681526360637994544014474084092313764147434315626459631171896602315136129868760125809294708088901435391977674466752732810621590422532360350058107131179690874996701859542933767704869627209894789734615653125390434696933046004733323426260816790905345381195138391216195241517533973877172651071550713463465904972596805788353216682841123939576935599996452158621295806008668713616453889300121042724910046292730005565869924752196544136670993960101604201908995795945028295935956217770425537475349551683950047306665328541568970388698262192949055008165297675649644141181347305334459141568757312280477597167673506674324629059437755016515969137213669114615507286805022767613495231711471887091894658585025205949743176948841181890847738219510267276874246453480187819857005005626209922157591107412594277780230304742928890894089883971963515503501671185732811477796718294924427243127637223847398676927759258506196545376402130628445160131698061620321625072823237487500884330833987752329084237654686558564702272909746184822367529139192066358291161685781471158722177935883046233155280610755243296723087240424914532216108364136370895238445196899276250798994682046434385788700261278347391993707320962670668830593789130183067521654988283852537428831891199557643945569712925524869221322165837932639672484048683051759857228713074671710651846936980360532496739376553867561284792469053519943490373365128431119133194879933326911173944825975282078721490624834504767066755296199125753337263641874929828363325499274509166928236538644159991972728237281447516765588018169560717733918516129025632179544257191841987537504677203616254798611796679140260196133802987097654230884275076667664154842079514238086532533717673805343866661149739970126865683092135359339854528592918470806339357918793488892622560472496353217592247526548723216292027623285790820801165363286245419880018988348542016144785695003461044953882800391900887750519462341298263589522786470910619154490596091431850237616062721609106163998150951963421681363653974019975023629861747766136698176453208645101781623920607106150201777613450743346168033841917836526398823891919195897586261421794049963380270195946966390976931664541243481654231485892817974249793916463860466639485161395325872899741074603987181087713761541384015723057950853605698675503953250084565023479121662233684540672094619750492313957639644701770976147054906598270279159822954780443056228942988722519707829110202437405683018598026379790486486914709930781053277753535494546825757379694310354326453356409812324403393479501555686510432778395168390586924264446454276326854291121230426278215554295617040994549000739544271704727018904248440920837425777020377528683229893537601711053098789959557539138277349542618530347709552578862791140880581608750294169558508678425512300128339048756635080057311867713049665467352246281547465602205986106594340408596907074244141720154925122280945781812425262444702355467059808101390091483104694166590698717941362770838503201149918268051073592904414257018409938966697492032299614072016252078073739294569044742986194108883852925557434711479881705870615753450532208036900079240386179601698740655397122706906948660448578349610260190899001707151899773528401160546507178880663764485515964850823962396341856874570480041039275883342107454124172153981080902684255951873936583504192013209914355720156766090816967816041516314528975519602045817355933588534285805144108032767024636426956242949960156607520814705753766514676946129182713204084731535817570435324691906762244545552105004690960414238622761242917163048752445334627745425284114028336199057196660734226715631840510648010204893614596645601855686683446601169961302598116305719559020908330040185471441151135092503662720909785074795891237296140280960429965699088155583666197218952701402161915691364634295510639810947600300810564287683981094828255166149490039831692995140563683286333648387857510769785291630584708473668537860433875926942049196667056879059091756004940918337134487436818484551156006455819129853408130274881210276661939970259245932886728952852684458155275220585778381855118083243100775424171889152357430480289449671939133049373464303877875245222059561544351504612620577945716101016326326683643788701206136396504030385848859272172018124884969179196264727794167055512446047945337937849850146242551439506005945256243911724758672989266822889241607782622458445494230823415414571439825139493221652400217715263428116577541532725604189070739071630375522382816260122133139467730114568986939766140915742664735287184226059656704783703233523717901533381948416699141782611746691988085573624325841152252552206785928303988795677165393044740610961273458628447488550267760545475420803646959064198464472171487873494406015796839783895309991979013784998720878798541863896155930657797111264475754464317328149921516937146382508950043030126748712236695716491093775356941781218600054883704155762722339241625066719751407567017941084255116918598802833986717297260743488376130618765598862861077990607616045873017636516181743498657670493641203401755232338178614397053423745793920807224337497667673641916798905660588828840473743191611968920596103096167654623724391295617299594256716414371378579984062800825096957499095231405358731886391400565893155782977748047919030352693945598183763404778062997989052851718728626626571014252249746787167808570866674356235148037392536203493474076453405035258336518426243586740273055779730063244057754349393816073621697437512878932038876789754296723154616062974937307773024090278243856688279191930296574903601066875311886618608331663563953363296167019672497742962416554043936898221051876440961097519649082131717463421322708041450556501040097614709394476044142058685675689536298963015408924977684778707693001450055848346913258091356963519696280367966806665213091995442535217087123161290302321618475636257152133207120580671539564471200283190338480416866768346549908848496603037007507510264003997130569939997651240417309405536191151447698415077352254687679247006473497903743291025418169707324362207631973609634463637177132334259335144403455896594124888287936519095745563333568723746131941311868677350045802032084640646121301042248454100743257934546280281181085876244465492200783572456131252558343203106245597861150213170616397156191141626384091684654900789569501411548206577010396835469967388139340773040886570976051989509434179479892390515839524965594456491710270541030695471567172409169334462681820459680178142647366422549298652358613601879097262013037367761884620618773097880380891787000896431923278046156646148798205383234000785559991289061631531293923929828135646471787205507326703182241038961609837091299032395380587913197537441534877213387969615650654679289826442286675767931085956024088990958105810779235234111002510002065240192452734531110535437996867516781252860961248590112652825701033415642323025038031245165583940734609828180374276751396079937809757964332782978375238185204610594120876065266674957244677512800896212630769271818813675329613868626947651373446020397142933451128181493464605885712419804596769335779005033922332984489641197979308005354509689790427830819398194498552028195318197780043445941152824278442726795358995055686128538701581303916595990908212281722690526209624044412996044441127682763487922543581262408747821244138541363080088397983558951319246867423256979029448158089736183850535481809777184042259423678098132741297133200025651141389798982622394775075455587014735868507006980453430014867331464242238758959541243550871510586769270616542672000406877316096796882144746210012639067100695299691320055512666365872672016466123295149146273023555575571645560573410096460810986566848322209381434523684640476461668244359078058110935768761685270192600349884592207551445939443149837337712892792638552755276971167868432431936472808744172369838667869835259905831709962933590996862117168160418797583513936970606428285765223576005643783813024955820428950531134657468403084826319518334187196035713513122809764428194796245795267495873469455030152980667738572661813661788432948947489139444124483665058352226680788353439951549144323029066162618228074962013348551369513330439340941257357513271761433985938278603191514721487633807771208106812124220665502039889202715157640407908505852132437619362804621306867770164774422091221019820643175032418225362049438723020488210025747318000543275382159153663927197959971735991446718886606418847789534918523570664216678199086988307919600688322160409979369045114010730256588353790602901970892705694102658163669135165858635132664920781166929631831340066464486167697733280665813695147318447088987586450762949504177583787960085628043820505014322880046056602462171215254706432261477494153381725824797923967258308617569575430444937935000632391015097665149429482375845409664233714910001310325852191901154577505064758189983080170825645171473883165407818320364232199752248367451385356345315246604378036338635346174107028622625013332942686306632476687819922574513703820715724301072353786520365763368337056041424596251199391118791609381424641395130816239995395213980269792693656009916064261680895719670355671972248380361164268942852061220043953238259575469790974882136167509607204313521657093644919193940770602996011761630521599410703709642555030592224821419680659162144657015244024003751191429413595182521211210140493443379407625372624954946139420558825380968224118884024017812286793543124804144835716698891172617456878316452080334717748210959173037782160150199306352840427480292745878149004637202042144100383316109461829713771800847178555041630859516959668539113933856599125395698129164685735447237355606356692432873578493017648704608827020608615907141560340125962358357947695830828986908403633390015978647751250798456598874219157280616354652228686129046258563041261821481796188293429000433179787348532270387457458161690266211103273829983206598476112586797219827346942287966423949594852589366544703312797148426910501652447105228919782657987415057029794778899801935304960639471558717274894618518411231660076776762140615225016451835222759003803128385125476914867435355056097765713496665954554407829358766440241266274042478508440457644272408561107397799841751121826266658664488206932183647954538473454605400403423888214584107585809304748164169155473977682379908395489702574288368811660305576582213572833346530018294574579994639067493883062280223414489804740230262416997542444183623403526082104224661113975932770465047744312681570920313123276165200901201559776158873493274195958214563054936321902819631409916263385842078531739866869682781491164348849669557005387298475380132618348730797947854345245214267090968318289363940755358602938063691877282689300372849312088753407161749477220352404071342227376045572028263139502961210338113445398745077775875906163526093974960214717187993024817472004499943384997298481525196483462060545878915346130369721038320307678945720224134818050445281094623231991380521570157521671286103929969856190053423749272074188195701550310253596458973791479163608960143693055797805731349469719693510627122857590982006372616631393065546673793272893282436339448661310075876315829495840639912489571119720777596818944824844201041237915813204673691157143908033531543733445141499877184001248711803452214281750131141010733247181839939700402585412200134806420603322656481092107710740353085591908145705350195458967174937911643342241769658781325162554962623992153149199204492287755885021803982907665174995971768483771568892788750630204404422759990172973657364352751060761926107805058774317895779301045803311116780704383838521813586336688878735810628789599673504184807549457506370735746064681971108609296072843853756082053345365190901567908883623491239007001698742991092659209430920137616322159141920529348258574989591203188366327483800740496765452393441859688666115421552774775268234708109595198339137371307174654404288450136101631175971888473917548149086027953648329968643883253476152819512073320817393203140273255691761245718940858407169009350810383895375059431853513469503383802760054654973360878563688010668262713347273484222684853235941586859211467801486908489805443320004117271552744900370739017069903732193084312510262528015914479856318985556465713100720296597857993125296104524730711777034264276880048795892013319980557260463247065670216637657931633706673967094705479764286476283538282191947444856798247938210069593905543373444264117457305601266822514965180457307829060332046107380526687578059967980366028057098468003893954879817975225991680387929547698199089935735021990334205439792084935497334749343133512980687223989505727222255608206709926285666888233894086542551993425227124472501493125381786809435253402073410210318560281550097940577406425774002999862594848993991982358359004310931514670177445465840234288114558769308498877102135340240163788232501646241594123957085808292234639522522620931683581653139823480170565913697870125581768306499944905104654114369596920818828857396498233309442551847630701797823064498161091768863710026348061386599856622971174645138252864695649525329664919003750815854062125485703695984899677178328785719393798802648643907296366546624016600669404380046061924055898528282293813041298262403167247902971193976378278034900176045919444762122794528622284731398712932615343283337752948322518819255759959185784241157031177410550624131149330522342540555220426669863677853123320696898205766981553147549201698733699166514216567552633870519669773839047326834213830297153750682121612930902990772300455223236077931318571875735060953897769991408402709989022785171340966019205030571732368601057251059157075107181535697598712817783144917737251586069098844928694564440929561134871848490805565159033005825631175528275919837871503480607890465211003168897469922915804475344236128429555552400478773147577450977718660465242664657723160804555505990138102351284842758988457181736687326737464457867742286925353965206338962821640022257490190653533193258571199019418446127282056063058716473418998022855209686644638921533789672397243394142933393765621871805417049188989836692789744061939729595992245657787288482632126511875669476959538011326802018189841253304694545719068792849580602698043577099440473144367590257755732618321269479309413618986451836780318019617573755872542713668147628858113811774488065045430737387990613355755977908188979887907704411932406764140893076701376146759366769195471225688406716673154628344390327925423496437297490488325554419048816929314572474939017131602520513329038206385848556742140385040699720173792516882078147003113255715286659323658331197536020944162565923543011338464171508992108010314228232759879264440088869146677560113150742738690823968462201277725890272258604480265174162583856865580845291592131453959973249637697011472717490340335813466256716898200573884751262705720219113362587501771224665909073868133591522165111758646766136053402760265624520732806735429340852550760029666016942656405447378527765266488980951557348023981793626422393734119247162747282683467320081955768328922403557589878965171522468218078053937246752506364357785018969405782564328055917707149327509861878123515303881393599278208508294953445644081525708338530812900198027766071962960019669484610430650117665629568537702137743928472818777667747404508321064166066659542246654524720658955366834901372305049414591825318231891168495822971232725338245333494257042744802230216222574347831546218424146832672931294837220235914386891044793861634660693916284357430030264245582599232727477178611552714268557410180732444255845414485154883798198863139737071470982514395570812032499668470247790266992218443298002394453237954465447867946269584575626559924677612584301522458449172358320348128437050682750955291326604802908821837492363301764692192172587072853218284432496800015750545127718391527875996093135826092058578326435244618309779323418816950131770952313273501497471999414808090398106409485319168660317898530399892471108880047426864444104063076034824410101223741774097179141232861643881605954494237491427933123663968486516961164413994483983874592857116219818901747748273324965232057996144396150828126635713644164256217341079266951972108074296063132333862203168653960584694626034460351149154589095938541107944537269253720952621735141598084943464480926860680600196146957237707698206556863182409557084438734352263129132896001762764924188534850045130605552875104264141349008640473138899224012311492086882352432196718931725548890690200758286951104192224430079456337825613620363382484625718664127331603587611560400009877578727522000454201435344727273941794265090051555494335415158136662066389823998112654341232792747512724487305178269584497319618804927640359423181938456123696113053990736402326536614646959500144032772641649234040206419080578013793991257847670347840263146655806129833909746263674680228012072312964950853943342514153041767191365010875601142809677287688877771042225889084099052997160684173936254687467580538024257846666669755476340415987960807735124596779959807121587273703243779723803936830255160753960145833515336608397267097028434818704634986213838347874046206910594928388911614903069583713469739209814375343955799084745519984748888861689144435986905809101969231128989525916174739745857754686084722482373557473755797403419429344573366859550406535762168269244836126570526251265666926434691152078059258389135094563305077579440982005153430238174878777758768629136662389142380453979321121659542484989753897078583634185875926398989545837113231169383402467664231640588596294022024718850461070434394854624775806481730994187642294644148951454958639366575549943384313964383292136629851374617825469661325583417582542555903247379565962031750252532533749711690981819630205355943200566849879794917985561052708706289477932936399157580114835924775106280187769623747269685552246171466253023979861072248662797648414224574827872786380472019523530571041143904526495334641677646921674357263874248755779679509725470442680048839173846191899312021715756701766519336936375203949545115659663216901291221359842154826332824267982347441186113323972669980500485541508310561274520983126756462529575939304344614942546507682051572366152742337596442707545501070028197400016434135938123728550742828987777512005760768894010701059419392973796489011908927973856443681566130638043819845565358176469113213749043792127574260777963478268855034272027783432860080615373114489369879586334942590757210675553726269709274356111588739283894419809202049966652305331848509974941298611146610517820109623824443388170888197103156436653227783672646180043832619090577385297043811365795849073855619477033709483574426113356357869795997713521447617882942298752279733298874527352970316644007598109719146816712607885043821684519012867882790451966858858814880658251269010970410505223699184142608287960018028187954207247282709022525669068673876299288487714998124672132153073095317668748599516762790557889833774349872932830704299441694178893848123342618859169979411753151953356689471540214122797594968299909281505924922113842924773482697904566227943769715997411143683558763293883489797648929667687146155306552891447361127393535926198368946311814264275500640458120467992056365730370504754013256666620234673791958859139498273887666194303232807860161178599074936204784492678547012579972980541258322043120536749863516022315171954417237405240929261578283484334355166993532158638968892859077038688136580700804169587726734302278270132592374674971002530108142518891788198107889318491026561559016045518686485538130236753075312417757708394029916320529460461023544504218560570971431147151659523720199838426365715337107746129908929010572354505966563293410594785864138682182230026235846929463025769455345174241690755523575052748506808675000401768131516755931606325070011148828608498937628711006787627901380710146983785610824255981606409397028078210270020449958256397047907068439143916733974902803356600410962812035065467817512297877544411041927105702904335487720918061504019937067419791684075341486204874643729795978478252663375797548310854805124954825893633062254587555585243551578068510544473601977838337638534740143051982299325566080724667746673985247029735751711004634195679470731991159717948892087062096487077710693268913010807647928723573312654866205321968652484052308784913507132871820840486046038465648518468776799840533832114212199854779415982573423227254999604119368197175952144610130855103959932428057427328167601868408053697479274609895506515518123039057806703391882184245076218661919933896253518510257547440971067672172762135490212395594382803615238314000136149055517785237044051525836784454435080845634832481925755618547140761758343700242152338623717614970963834859106022577952379493481626029348465617893421561576941745138262556488557117650755627034112280049319680366001571353215979898172252798088286940686511966759080969821611721780709764124112950936563020001697030950779073911899027943411302854172432019554644286152212000263889164553671104664844865487716950082111361337251804678220708638579662471008615809009967875958238147427884793105947768728029187284426844332828935217656462177997496152013334811319936998596785911676584321557545090786962236826662469236663150362386518081515617619019565376862624080445742629244661881069617319034933177735559334977865895563048839859929560339920707275946738643987690972347664861025387970159153904528184621329574596241440810952264183703930923039483953762524749985161993364060683179383798081440137504175307055096588301765715011501448314230316270464394365110339169330413263067197611822256142019939506752571750049019239943305386600921595006383421528463244764608005075341367760499638288443198111694184348938480303941639152063031561068760343735055495901587206667424823737193251951515053677510979052925945315267302907132123882955809729004181779721436067992479176757332399434139992018875830393175597302704007275502383598625951615797970149396463352801765333033656827795986845863320396587004220056811591057847821782905198676342580793843156417519619213276784132406562780294847613120703975352748195842845305602717097910304178214543557684441819146834073261556867021513436806926087428401383073972814474143456621518710858514198861862749497830465995124445773739099517522469193173378887567992269606500491884546220217172781042653689561890506294023419415052960070873884308885743447631308510778545298691420711584405652592781560556326693381468017560146195080913462314638692224974839234481772934412920875075465735606465000088906777108561934828615284345975412554513620832348724143961321106855773818362826895789832155626113365821354132098424877313052659041383145466622998500088286379970188463609879653030158112997951107230677669862099111211254585884365046566827949795885431382865895226167145034196550831940051126796599459489943284624528148435455495816457882515271264579879865857187979850206296582594226408235997964869100462363998231140524074994904981003598240922573225462646757381304365531592323869943362812823996186938728303502683429584781676316666883636272174335527917877163950224713226212342011258679944035754234198293324401015168354348264658078301417053684928846210638680267569464245771740219686906527700171972827683141412311298029102498160230644006584997634936982979462753222008727184847289322007759364412469692523303613532366674101163109612504214308582212973107259791039909536038706620658895430835655277272041207435000474610081847995363563483271837982906778413923706530743669800610358548400585638697916211802679787535065202007810812172183001611033615612375535621164947161218258118245359716732127530063381607739684809248940034986247051334193070944436582706069258095970661280387041547730701181541886272131574563128314719716529253701777357179760763433841026772287883414054158823330786137735614010771969498190601662812786062221367680863941822801267983757644604840374093611794216127627227348193241250715761203533082597836548206435972461401716249772741610029931939447677951752710828028472185782725202960659995403748131261470458144315748340980771370390416396999316475234133452171917500400871284585328819937751292503349721941845347188425290846402191971953292409327683009524622865460304614365636602946047584405457289870752522643733145103542675289498199128785374244384607744335955899232412033127989759826620555138121319807801443112638551750158198724066375463866126886828588477114330727588331210900753189404794267595103933491539134432076212711655874763471042855479711991277559812931797581644619099356114467682104644505799808878979996012661288573037708692600041596942370369064557229935817528018490127173240736223266642714360126848374373990438771931901272825747056840794151565513298616602340377446579130107012774986478641843723867356076842115616735778262164920470813562231477514066608570548312689243620478378058611047445490036741085990895421806573932434106081366413848193261675328895103586261708961438915726114980317816464038611644746456095949939842952447974253623231990109920536809880515554946197649387358590932242727089998532098341183681358617814747156414375038005473018501957444720473537233387276926173407323161656697902478611957236553853266046283950038118066672484353438158898174223793307669040146264764133142486877327096039903880619247745207360433672865707042529091122464305205094507079283936650954908226528733155146067925379815068726076396526313473054315413045232326338888430471312986042750864149131814266892536642093335513570818594787991308327038609781190609656455044445057858277789956961246457889195192597868659359070303201490825094500935730883774876759326250398880129406438514627292974784948374106006925905940872973400408774737873205989888045458887557719618364208349736326666813059230011014511661267944485181899996648700674034199511336247277523646697240990070689261765143029155103040922233937448503393206294740422295261146276834969936534382459097139340558686808073437850471917044785318370339835915196364123094675037366453630331686436450159116588899600205898752302044294586232938760970369895428364526486528939576565889315557024104899648446370120694642584605105052245077933847835200875710892976273757918194685862780739125711319716389250538864443277672981570309787434552768023514259205752494580922692598119983711298124410146143506578960471349230347244447881930055784631174720789156321263825422120815075623042697114773415235692373711708711383763210994787781601060722447205733453073186400408338127789770858338230980773622900083955285368676510627038169165356407970441941750616386468103529093490899320289883638764260033837266196040699884809364406286002941358785019333912744069489806961321261088870845432184511074341773977421003802830309185453471303570595629374588807582863382565306342517914618420064640240165693540573903537663214970475047383676723597361644632827573457053676177072711686590180293625064448803440698133947281635747894534157627963501127581857048735599292250523304086654707536951176618670019827288950071409203317762561089072685638661222524129911815048763712051304807434206564520328455758721452276103317761986000712557949683141856870377733808543705252765540644394771317936842140693997431850581934239051880073859555550852805613633259644101942042473356360758077076895515171366003326874214153861628497866485592223479888536153762671267766047662193912681164611362903445638096491063341193995183889166699153136527202796898911056684229396250302893896880720747648533950868814584771254995661548821319477517730475424046920419985951919250572200291274476234625461069558137016611869414568462042711714609616711713053491794307361200573713251956205132422259536656282095047992628781701769886469379983965733153595384496435089151806802519479035919876700801448095183569063460753539015805807150059417400724587380687632281674281322680727789973838244049980153564146513841061327523880262794653715378817214872186470357194154301624200097300362462358634159442440942075624608574248364672626187693785052736641391889927592320300803796473894041983078777518778988398635511322716094690189437284081737444881785368665635044643098200331848075664016266497223363669110992654792819923535000846332327144752593596008931394533588507383580315758385119864077699199734133698327173844863149335270998093280544047819683828193047786403424075362403995732267034466901229810777577035497883931858243576042725149269561389602775591090479536438264156973410832432468612294791623293818019289419534867675679109789214056027653775575617624110179663358993290200479562180139770392846876166467824756654052096493628313067970474170964928677743144224796997280290123491117418004653098286929574765520751195346007423866811032898476822143726353557856025474892548230178987936747449323759699061311494004631949367889301094698908824478255852290850255651743047353431857460428776361606754088155072237875805213849371766255978583250181301079840517314498886161356519445923855935579750272349570880888967933528707520235364134229800595593587449263912762037113368490181334281811262262817013964263567720747198757139481895198363555628556644417915195556715324118517351983253668453432047734369030166756368159357953655607138987196739363411049361035545193549749058466753403306606067650767114715719237751186288891918570713062849054669124570543699738546707746014705969383594438423401231893485567458079297203160567406577761662030787999542496513490119520291939122667048420719357330538335954885004964634918249482113040347359860581656809814172206363749097907515768813969829128684399200560501419985923752213204772608992804512768347403234582210527704058420074162315294937041226782861692976931694131227593168448889972494509379976901194070587371605137662480960019874109850286300613617924679718342207973821161409769805542361846514890430840412167496346588433908884510447887892172507551579019271530152789103961470090742526710232580981054332088055027865735682565039884380531587724718746121768357732468550786148341680684135066918070740666376960199117119631868870030517900214138746660652134986974762422625501197669376867021569739243225642485636819353610403443378119463387847804191758089654469143011735082040949057736622413093646985493260461864363546174169219161669213397076464391701511615634531126775977907445374821545214397193459896334143653118197069111871020180243156100360397195357861890384636943139247442604841159644970811352030964813743600627537872362730425819511582748160829484982707280535827003779645076716773767026962859823584470607805001896056284194666419144041293802180962290383587099770021835979470906489166748530438421288592318716778282278780601619301541076042601194421852344409395829389637716157610766502765497571818717605776314416649811721693637066546265704421599246179097511068095306977604770225136454214353199469241538264991122600077864689831073097672263945207698339421964913381544709967163577496218929142967908888674925556889778749484129990423057177574794215741620253574007537027665953044366345883391122829924149563958057677915663125406610407923855669145778037724790637645642517314986223208828317449971444168644718774706307757878016269895233600782113059449355758707919809150471850513014882598973371612551366301842742516781366532722181862714529436068591400932672887737739608764516738579068034861297846463613213016973235490187491543158198959105879938781566368725408025751557087914177016926923306324204056099855978498748201360231136539550921503468391069000349881062583033953116581558561096222584370217679098030419228257285902424640086971829058741896594618879111064776042007450650526676965444737175537412527341888895666607165620327186586777188873235801224183189599807703646048915774648721682680325800444694136625163191620516644738808525320909064624057320701417131602716997177092164005323385739529949783329365980744072560928598343086683709809502958626241668449871869909999715928817479245374895745220500677720793915987421067080074219680800850234593937568090361974195039434764870080784519911601153225994250099948497387110760009310961113481606687484140819477848487808489717123469522617750219562919906286295276819877411945052376778721064320502265069225659165114890050791106956123839695931087140350754489164044081788074876713437754366654355831244122150339600729749599107630742014066709331285599642434562870797803422834314893939448017687187870323040152733900664818030220060410922245521242684560923364806852460905830756210224484412219171532846094357634801451465230868831163584558764417647172145017426077593258485467125405004310621999081602990674618486456938591565400247917027456649825544816607668334304594894244775834613226145485257426608650367177707083130514449950857733544955479995482158872667453574689161488567011143875365236606683798854485071775370184386800830261272990318385929000809436415374077486072541222772081251690652353948853142024540337488593145012606259870731553214005776276869806633490622818562040188304151619401982851914548383423251055465669239385355376178549741304993938866582801033431722549773755194693071398926811136145476191978167710151144779856802230879057663455245618284819892876158931174460764309394031282209596411879585852460398113115176955420123879416835303232385177665422849200669089600286426095978243511279994288687148193196451547809683306295480944644638735157350503139091943962970996485161290324409988662880866796746366253155237754446447239096877732292917477295616421186053146860654214000124847688339801316615208928197960700140282828326418697578782622698186327060954318483597528922425719757193787751224483142199116888872904703945890099940684073336664950703591457676710527471103380778995601119875269140410094527274541225916977525621776644359697831790555199675766291679163703364681613993106475964110943810438212833891850654428278994635756068433724120947712452827966691580695058460574582896653248481608484542304227840134874389843463972232792354176005340539370492096083754349339675556243380273053875615972527248073012476500964037124102912339568151032953260614902595172108586319434994263929068568735873090880914680542112974345726202882939613517971689834203683046181409715591396594832335560161665497752990054715275817938910944341646675757409147682772742745144562163014007068559836445343158071260100334773135342821885236980422523788478131275106778329300538133754464470098553109061746008905474026267462859727663058188532134060372502403630524437320084044765954307441246298795527253303779648596365469863471424494026067452325390879089048328316897034596318407839757125122747510752659837012480904623649823624927375525239155782622855910985384158055192086088943527003947403093517345519175363754744926214992843254067468736016885414126721515637095631500595947280660923563208774569390144281700049206103613831761750429325587646495811472407414733905490531457816128824557330103020957905318877624637577984071489027480253323804138970783319187349240506440020918216897253283201293125640462476425128383999187615610360551535489964818203476557901056636157945665137451897412406858318829566112314759161214146521580350945561501469599692204141399128745657527320584877461018518705543404015896670504260368606018154553057464696467237178179003356613253335135029296449844403755756821066499595746917734363537897768922638014789278106994694886002963495265351574402147767102760344371133973794660518739804987992048045660714980287765607820580784314255759155231164115001542047051891159669223081128286828223417401420666246882300789964417923921758610617839909012161225399706962326550590058656608746762259570110422790087564532384178687835916152856785775503471601961152163553691959089688518702977611235565265180473844125601539534304633799106090203215447219633154457829968838838419471692278602005834720839709412641899399903505365506912843565960456364521665531013473822873602983275826501325687547122252332433641817881899721356207857916641245842126454569688868365046229409968057102544304250831960165883987208268451996669359520440244214397077004359762367736052218555491658909113907422120541668889626647656455159260514571606715520318769717320587892597423778774387902639341926547871720751245622369165036609574792817918987205198956183455075347117030129971775152816270509440274720823250905772805498259386142816824169503773244717127208862588518985859432766034758075797767897685901186727276564768846172385835685480079295597911872171730806647021732539345521309461687072674619511998446379369111767610454764220284482595557993654172693151296093965523619404860806775076247777425544881999615954658578188450279809465109887387271183946935072891026141856917923906932367735304932540024143086107262948937468678888055609404928283080741163089506978010732243643341252576524184692408699314392405177600302040293212981994463833006421323164999362851241412378984310768577988349987617067085355000790817863084759887236571911956352038198541415336212164963085961989926581062234594324596436808169224197042866104223421043273196703253521509239370507038366584479330821853445699237180988449885000856614445568425627509688544292458693283574527243597809466667812864844728319518845515210693355737413037915468018835562618967774951723063656643670308121807125075580205508955315499992860934042156804760293188815935722999828490271903040619887945444420727668169273839645949718907892219569292166369077071081419111587680641170438050285606618025306425223173314078360199049001396556864936315232698508014692457993990009750151430355982977910216421098915128877737673216072031720532973496986213345407134245310520580423200662648624592159617209574098478462537594547673613944300496388930076931948426405638396585226059658701235667505283623125556523801538686354770650241773766145104697726369910215385602990127649502601793810954428709571130146419570278409562075374468741405267014418545614041559272376125612127974049394256519579210741426475569302724577502987840748522357997900955420921361553118876643018314933483731991200199960237410720437758793752795474105384565326747175437932012798223241141817048463069415349404386255332430015254134663722675891206292969391677980209737975269088366495954855622337389406125474382024730829923038484908461966329061051367630685218546522150787002786853154415882987236060649159342191664725325815264282525628456030533962852009545671523849322745708453608200926444134202113228887461434367994552070139777611723791949990864652282826263473807603997417457178446338609585755712037788435534750649933265215061384668631087064549413637385328990610042344569348693525612294358485602361455327514156786236671600240231361005756791441606488297687963822704792848841946564399763380451059294435752967290978547688148218851159460621783415240795305849814318605812491557938550326652389985500521565294070124357187336269883848116138930999027379382030859448468124222828743515483570463104294974260313356860855163788138641865534118953858642519854080716292715909425942305720453953893467452298846589662665926425565250586720154354489462459118251507737893990609067104306402797126401876860023905696521012779941985112528865906302755264446778729156805389289930296240332176852461736929688509440348564913848299480874147093051779995356146417356218194892135298902517378301503631338046830096490258937396180302787454958260424094783632200362437479500213287375203300250949495871100805002360086392275249892666332642209910674091933266045376202708386967365217653475334553359217483086183661598454895528520046678604739533067576157563738541264668266978044723336607698380335290859076718527874586220581503818681166393719774179591238854275680532881300199417118955709333039731069368843149644876261193313468571922680498844859879378388449206890196856269475305031481098560611385753169878093290400763017077239322579765064787030202377738808842230326085571818004216491895010831594493361406852557634911449012719464509088626819291384009167666877095310351407076883837182356566651620427380016476623017769330550361675043431837023715448837138650751962905510212290195253469437739981978420826283219283872502415624941825222453438103206370388555234749485620833098718589312379755352389898978045078103094871800904929985479813319541131896651941498821952215669354743823218384701963627264317443873681633494786849382211401548183722909644298013855020990339986512437892946481193706972075718458299302098170486453634647411575886505407263607243601574468279314387771199942281721871673875603650899041975034966695915385362535275891617951050477660197799508584093363866062225886542088910338958963376367584735510341409573343116381674974127972431673538030739867542100107774946134822380757592032629285266280796332789226161867671966946177442238850883412631442846384180891226485653884539455286077478353901997875980990997399589673903611415323561092201464956130514520169798319778268728536779065431786294813342372884382974129237662812544715038472669940128314192882285893846781294580310223404037162246536316378521123537426118323572614992522647259650778451111424282469604904899445108235042672799293384616699609000386051774948110405165575677044941383008291209485943815749129309428357779912642153716251253912329545135007619243684516547603676503537041227273523686253616940855648123894505103752126453934083583858921704235511402390261277643675109734353112329146713102746496848422810308973781202980137148329915180404531671465239216435236264475640380397839409956412764821192910959951166036350167174189748894647298461146475822735383978726576479301538099868626065748878350003703251483485574681617496358310092909862074927720705301580862260527092078105365824950906598760032897209944164785288915424677641053439191846884914288373915666147018533327991374487453447230254358946369240709412428830248985461876190774018618167458685088432611031892606747196046540315062088930396146055500005015294775489497682089911760467316574345634064435817310699813334192200544550400319165494167164572721753905910872115990099552150826270178609165097210211297279778129103221215801568998597715078734875065706359081345092225081904805242378458708815887714818875919301492038517278378606854243502844621804450002580385848781067636095861246092555704579418170797201961196474407462945232116292893046880678895860097149826335893378776142859423136638996355911016907648539219851767658320412433450532416199038154503147050768920540766670008328301188254119076085195446557426501349751527629045501711802912758643978229677681558056942062144771557940703957454038250310857499729477195636040500737315256514998270359372202751043300114916471813356949156576130511217700057138230824806708865374903501852964206453380773334471052401394794899855634858885100624296621407266820938440631537844086955766458821837122525658993818153894372679826158111882827038623308492319608231946219303111086926034161210164970064120119698685146081600259104153932928776975584660526396112288408858154058891767997372141418186316797398842382475445370963233235091771858917988198565465666563977818585968273926210369950105941538721732427129799593314294355196858920927361384588304216987774508373275634706967364849303316765005526596868335552778115893369038832099851952572024032361603815765438058610717934968381775320581872087662862539626761031284752170017112610664045217371691344144560750412598739712995709845226399013492167533562057368038388832929263014099705671711875165403312920647201996376134544573170287776278357781571263166169700784038843928223758353196548603820400825312017938835598985011330965660093027993080004885660073486230981593973497547515962496658757011021582667808077899166328712304111783958799571848436241590115799135343211792693165468520770569159055086623978534137391451842553544058678182583870674933442708871449714682809638536368332523252534795898028592359152090011982416615302211805729455871161888313125235596745761859061690144296934764943115992578095883884573457014923317975204036064386396219046317833138596086152439561016580838377520629445460229981211837235473996011109969693101760389982088702837445371628761510933527051766519420561060474802182492276944554360756721976815287106135654282382492578775841461865113034754132223406119935545328812218405321650625578885513657445166955605808745964901000902910327850992596751392507228195336256424431624711016428367002294141757967829476680964339737110451637710242917087757927547200979101405602323799545049520736927793102411111436259734855549282067470750542486948918910132596160395134915753016696989388780181854885411220259210358936411660574377093219231420901993078579076166316029865086054413927046646839484867496284873289303120565905098684330409744940094568588350694919991389307462448651664723923035525074190561300580409326977729538573386096559470751778364910672345911489904777191788956423259520057613075517434593668776139432044679289623765352494652463010413882017598443623159489153070726911623189687944294749860882158744113627382914353432988504447617777449710577937916594095501794875360148424940542543241996332570039193045526602891560817390347837076990470716343361665916713790690935184192683398151147223607186520437949082689021421956854245451974331552457853722935163090072064276364897017084600362913057785295304800657008022149684266939127989558791352833420884913495625613164012949507987665978745543334786249170475893035538138254208009111755808138802537914760041186027198259270541393730642579335610896761272538677866404829593998188598298459991019742000445359442185954859896338677865425345543539444037360158536421892227495687004928340025923223399779669780390219952005484965385839628551724216663048891929727946946526115656521118577320960371077134449756614026294577720718568293884696499233020800956327417810507696977361055489660593297917154786206106294172091400368031056733175200353137837716982172054991704297280810630216605006306348341990109210228889948174633057738111638892409617317641880120204024501835687841047584593386989452945847147037792647748128619388004876314859787733160004444583855538751539315803470933158051264780722220669309582844687343672717596872580932276962272385672469345077303703252599543000668255065502717879647503100034540567267766423757929300088672421176087994445990508250865447752728248431640809843456637175521006020391220771754715166464394661912469530026012753207483859349177262633718873675251196875554113244169984559192046635505108680698393709768629151722010075138531365958080787833726031643807965754170266239786101344030569135674718019955160275853501580453102377546519351631492543470250577117107707824185867212016951656410288276625451220872167255091288180720650556824340916305256388214725997499679326878756091662754027985086687722780512774693553139242314979997033446796832184763375795338936578093188254266913538380528710465455996920808550058917483061792515074887692673961648183053321869043545787508685215886281109123678190124291829681551765454829967133302194339554188056034523529869821556988813699662608434976600861398455512044207048530063794332500985836754514225792482118286985758921127795422372282530285139093608800007854392720572884022715331586865443162267872199499772332319959392132669518341743681016263291074120598659002599046985975663479084078347472254469077699278602467507421981970417890359395679461749035895006638585021510504028729434460175175577726733677256414302874731992113185440253559085654496916353220457268834544381859014833057735011656884840609227172513310660994776489706647358707854938179333412980998978358605003032875896495712758237942132557226787791189224177899261971222851028125544687387528228064160125301026722720543017532554404572629541841820597613054250955811336679028647121306093563645659076801172094820463086690179871854187527634259891583498321628359373625451949756153548991836826139822398136170746703824680389004525537179762622440175492384720606463353775437742896653370880309468344501607334543917177206541596770163386775990454033527516033271327419298163498110766371891494127713967669441951460043364515129639127267688764757608972188073787277280090486079816997911394233268073504396379280106765994705666081042834010373801618399562324388437119195836957273736093255490960470440899056442488461117201912876005178598925164317066931138271568194849035176311268938839437520058967106028376143741642240838925785201070496197085940661364192697178069864233885661112308158466784214636893485106662051449111747562316480143190295014815531530307398294017461416584996653872185045533015235584913501170368658154960341893890891776205147463127369211785632793592185060162404306932066257963017375928728785766114801659200273067655360322997618130315953043087665308365462291307695951927832250270814343100230330421760101874050958851499733792777481556249556178809769134054218476693378026815796276889842374248901727839050582925268684476358905255547516732279691340259406929859044858772579651771664464399180899258853480424176337121210127886416826750614869279108068058929182286963276707327156384929887117445741245063687608092038060810009558280916259946649680504581026559021874497331393427701554591060108643187203806538962283990811282192488701815367914389892728867066193506911378363789824775922900041234952724257147893358881648433709159570986680133425053249658397144037037243209133526337820540739570066917206518941747510118921715979082098823765810683145674719781866404618593132202405262033599888887775687817910363719284469786390938551956769416639665726063787073216161582338031917034640416400089454848843897509710632131888883126222338323313037261158346037010404208092825122603891323495936600581828275556067182232244492179652672444184362245452840826807935212606838383955142211465601532086787563966077978424002249984792500959929340306315972982378922212216997577629923602655809843112756001006923583686799463744788292395284339455661376165268816450418577650265397532582100259278963811645792945718025284961988063520341540300451114445107340383150624125786521469853658471791714139599225857991366351471504944064169733368390661912570757695589099331997231123315142779389997036239455050824236965755414598360547374125172919533293724532119475730905049538690417565073648512551792874312560044829898793235390249465603876063891096036181989246624680196054296055158554861122519851952403967699641512715808924197771444204212049879707174602606609001754830867104710257924152310796030779127279278633195701964253768757382990045149936012029927971505565123094377156455877683745889486421322351715542321933384031334687392405643976401837393199125510630984007904433847509113347625696834597440273419372199167235224842611129708352124626666894921117213554230377459580580766341543778385407770753197697123675566075022582158647658557218714014169178602017329616923724160572314975077203619129288447082372593334173478145506482467077696225584127309027239050577694209255128954461221964253920545799970251271746027105505874486950588082328222753878240264769669564233187818042349286921679326887670465680354031366021119032998479021897107801765104757379577280249338820239449606362721130694965144616538294044131366940702047160702566944051494968396851540802269410801518146663965302710095552260714703482497181149510512841648969693406068920842463370824268954132236910095113104266888803478739186889192578647607224067039506730529163888545039827308350940396986010487966708629789502492048618613762435252362322774223840483722676502940980407685794774199976433400102160067390316384218305217331415140544771633919989148376698661413590243442535331353561037918642344173467036989426161578441008494465934031065199941501198759893991520925222806074574699516403540759372512843986307052333238790806085015879086995319681188396539649028257784187141763771874053177272673722567342623611250542267180151851424416379199093552482433111226673760978228408276728391002561799436137639765028793908146816605263223811237936463700058870522828212331042911305537866473915233867814185418251282962719022016606606951695265174235671465671509314877300837750160824886594116457331441598593926793092986217936087953378506436513733351477303728813292793090115975788650119957054199385617399380521030917668533883656169567568127143847780575963745637071714475693444783114947169977667216960186805556398455602721727249819627359676209422290871732469355227503894368341326280598649916216115878268844685644194430274212174450159755204135846935741990325542998000135322318160973933544421201947357001374806655776640329744000123892955674007073740058347431110863054257894218432877873406316040510002757973330268766543564268946473997033727157571725698092335408177381193236496325122052128452558065691889036248383723199973072374639493351186197266168456957878813532146393269737717386110959645090251642357387853202658764095789150226513936846113688605100359304173812216059997586811862456594707519495320881690247411055535471500574135941614519535928763012170647494685996031979426436337780488221194464061782261082304811984239676720119876479973475689298807894492494464376775926057443804330894480861428724700941973423426634098569040289678531400803653943146259724188063425764822530587810007412714487609368386252986087497050368047804372238161314231452187027276205787039744267062426494686568114076068453558492682441421386664901853626861865867057090845184330937381953921607509216243161953164409489402762549152852434216200770551612076294663201094464545058540865508733016292292400851566054893989168366212212879231394651182665827870243254356846157189473222611489788130808613172280182898999468041463293772210406605248540255955637080202503571816663077824865649120935603018641106827225355979183173970932996909310591076820104429946620374126487656611718822358270465691111446283460241772041922820847666511099995394791590100702187635884814516673330842855033293286826163161376903930433165676553569912345232315109390941430225184393915288892093809483193958441528113542145897220340359898065215874809143277407338480127168110071881810231173377789498149225711851550591352822063657886491884827503435421580048689479682057447870091324874496269132982220618421471875577248465530446283684834407188788786972940724255066919594924929485354114100363218083115175456619281248238197949912833226749339789887669270984153211820351442925518029121039667668880680026803121197759437965868274527557169780052376610063414801406584818387363882006826415177345830259066350904624980204655294045615036552576874837568067900670907005228028061080107131351378660699036904332832447074412604250974245757317520799248166071284970424854373749013140927727743521559020658799697342279912591107955703305795461637301743478189004906134805982111727299525223535866345029454776981184148774156052933467121692162341263594969293621682640694002072454007354235848540352611073166158657806285547186262141257369539163604641669847218296856621950345476951268104338718000759544889463261306943453137882673548372974570998565275961369694551360205514810107057927164723458861231150155756847437956652151949273450436360458755040533361810687609592382888683824947337385941254608198706807733641950752285207719390602985556073333132354502544146618095957799899259507695667099194668954989748192196741033182670447534310291808886838203465784947495690002585698322913150398606174321145969163165042443750740055514175779390744634673808764962106236617329221350888440227289978212534862038735783982534889430084721815971659766884687787594338095653854107719145978785612181370807714249993367895761822350478001534447976293827620673151702034344006558167833306111337168906537803008469380127042776368534617461054897496703856854426273195086467596949923699424450767088432850640517024031799663896877917485061380807258107426625522183842618849570154839961765592788653455601103507146106481645245844218315595740376073053566179411016953892138542960194515281716295297383045954212948991747857657169911334666231310802149893842003342136448867264546164072962677519835166354721128400771941026942563195134440127929384967168543347602421276514875912939891506722043492022069280733921324406652825724795539275583776511789339765637610100236242987781782143558045278631998428608496042409952658789658787939504183892639693740516307780049167258097067425132937876017872659687031130456373400605190433793204589038001590458262130122069046313613225942557940958576449459615334584814613065548872650843197206495168064331490598413435949800794575751839464038695612330100949460615728331369643397699265688570747898785007781863439303875495356069253342712214393063863767349380938214907919112395588796605130569098381595368335930188711446731387133453555002915608741663935213629122831875120699715778980091205096868749075048562651584923364131322777939173256579353065288387312168109899387477235746410863086602361204266056692975056080462125597578175560499879736405281215530366790206730449549299135522197586641225005010523277413353348357323953979282561218188554912712526830225773362941816999152407425213201839805479090228146831921622661702872163139833483105110546421510116642603963557891031998265469456860317279191245788835683749050605473034754749391381171468755991536765116280947865939647462482663119141054888267651823765723412783846486832348720416730466067772105826694895324929091432782049504220139212551945886289088716265749322277907275819619123056591626670984214054402147646117731141147875855097890694777759695128297449178373922623759518200251521928735414293455032728527250943502348425275948207070383576887234890732365738114712980348927222036063885918064742433034356606519994640774838713076143592017216778373968815461092958434839084009577564661491146846481119459462742651990714375745825149612236131741394182908879631670964712935348964526407372837927336230882469116724961485925951204590027184720413811412567933767517586128141490324542246242856061502649833261119048131018332812162212840545405731804801381223339912750699228210514943904025457023520967898869756086897890372206279222608120760284530029044971621766102621404067582899874620429041609863005816753120842991054591533657696722763451542078913101497895637148102585860343360795649007163444370573081690465827568427861943399383732099907463247379609458761530123675685436362027148635657506975434197072942554405550511244383988286664332604755813621912632178463512742897641245900900937395680583344725189493104603910877776849906773326179905882088322102494399863595444376423024529363220274303788957939762447456482318637203681742451541613337880747685532631297272919196843712650481005432110891934242958549546110817127567881032532313647503109674618455433273028324755885128343376781143072271814202132035815119660950126201976751737172584904668279788082636152590028157517622154098315188347087558710470002271207069678298498943091371696202071819122200650844971208460725588345628512241520392059170816392730653283041226382448204723027325978292103958785971397242659571697707207398032288303105504508089040945100099834001816951335449404969148645737284008137234903485714769667621520280339752412204280693311093845825166626308754342557015233827837862233999066344384025052530925934076047552301125118035056001668951947179047134659774100828705511523155719150299718455751174848301400642213976246524373380748800251762575932803763145429170946087890395600118675091198488688222291601260984651734799556712713881163734620688486327122575247952935145492506766463606865458838123641010750637263430928446658827003959445617208532046637239037942719580088037346519749804936682453465325690131068936658797938223854515625296166935579670419450612857601069947966376885137507753769661549470272384935845369604270188664743527710836101595671681527552098345779075464045474446245064192730397490955469944528922403159312822383710700168608624582093631517971068112650372254803674297714891891176645780996482445582395034745781501371398042327871084494096368048205937115224133008224815910679882020933531197201617091017932554552990662747664237312417096553021689911955446616024371212476792866423305568091274160438849213477081005760122332622772986918469397565285761281399483411689657662015817610042996097022738656610412490499355439097899340364124987145592463047859583231685127371310026377023929450765910580201483663714184369953400719093144306952042439210617190493036271128753287681155431304952326523168836662010786963716946153512057742389875831862210014664307299922471290827870992745267025102694663934165801785946079165988371309880963045696904130992900944291721682958887114468890649776624435083213721013619573913328681236096588726685683110746200231683964767302781234619444774540987997420130824094318083210593386239240510997563047750184209340405402329933931164046945256038814005487729207873546737919533242799504249094155363751399861446370507120554860361206936039776859577014979286993813185554169783037909555601430966649726336481312599237787841117204058628983775069499582253646820163583799790775649464627956203008271579372942947928384679918247933207510975967720621935285326468371899468807735042587221725616906226130173077891828011100171497009557283594169611429261739264374185822135589272410843993614921860896539357538414130951795844066022176789422562168654880328837100256181148411868973843592656081470162812069460794374546891931507017850146968268536564753865516292603228490080562219406114124209027808539643630871759759594645905441072928784404368911127771266252876934094088659822573540594044393094210563290181783117190631576567181190833129082484275017557027350369333958069884839904282030177901994043041632941887792704394454378057102572845107176669917184851238184187194294250247462320715251226881889610736856506350336978938589462252381382639177293287406287333132947659146203586162042745077915478797410322515477980768208031408706576853810598568288471221214865621244364926705812325749183487170523036563070021977009516845124201204693751561855951542547138049783852879026398310939155443402342924560129407967132402688264791214107405857692116976268972281454765937780158119167205767959551340069834473000451408090984200830665576071639148598785737324503972326852185826738568936479055407028994674772604420043003099888773320580072720337648661762876626715762697334035205535326410988716785936509714022388911307626451799647953702964886177518597871481238914902888700156235972233865670187138052432449463114356999354127846167303431195335033303714707331665433743643824955264947104773040329980834938406842382441688350801177169060184284096844637478218145914187380385662694424391382122076662633772670347744833858850792168102825217544098305147301558958615211187159178418191054725255080045513556653683427887838218444331682821240230217905281709755565169329426665392356521000653186920532786465475205402881987310189095141518529534706012097794571312591463785779348358086921326958518029418945011822822171664290395580549855029738564629303882681263196588708112393265395155138357012135447870872439942864646624949737931647726288598328707470481351441614814668204961255692278745094421772860785338724786646462636199236705930716743180319234888953000663592674413187771427055478148907150861265978161169957434706118887096993689427990756823356100346052071615603153213913947232412144049844359813181545489494886475570518853101842637577734365074183824083258040679407645763175353079963339933094875721231207995965663373087959496468502807473783173803296931240636288268044094778790224603347468074262105050855380493025359251693584924311452624580904794287152703606486478422545274044659239734077868038297938839520542769993529858950067458315174517936997881067700151243260238156899551824518334634815130626158427782007875365525446901114863647942066076094001598023512002888322304058413742397900434620410205322129007761927386803737996482709499017706044468482733724757053865440186344969590675607713196818087198702585974415419138262972736992597798234721506656305268440120405799233962664290274137437114973676197327422573632267816104417142732442514086742565745704285568227926738038844400220388578079582545838433580450700845764518506991429265663356019714038740468629450939287448072695477381550790704375803138265147185530320502844363060593548554321761367498025866764029982046258898220373383581365699309189917115868685314053446597785307185368818858849625698909161805935538605733532004718722446040268380248711186129514611456695944416013927691596876445072994139623082201197843853084190959847266775599539726152815602744777307644196242959360713231918740244306931980205777561570936751305681442932691937794407108192407488260724362925179574876094411483900573009205575165861440813848422029128171812282956147276790204309181304938614071036774793562859362717776985474751157136007277051478785334494842855574265545871958787070675724218298859649420114650898452934677426008156319169883928476740608558588937839637329490908559574172402781827837873906122534590941208528011228849263147555700568070838127136947351832537717977293144335376467988976845262487368338592899950150604929246704787147557740610169664487269218657261304403093420837236906527659287973108416978347808786133097128587917716668648082733312065212992275130617287078860526613783353724682961252679452227568392653204489038172951154403452830818408429908817062103389721950738885540857272233100024550599560807616157045668473426589722602327294457022066843133088949736516377292373271052301339331790655595080818148442154255285861728496352754015254308289735288335035350770311819285581602140673686998540262767411274325631826346847373300497514394542555090327744004843354114657001963584468640642230790863649921872442157164342332771157661523736169032369145370613440797657172402259956008899567856652169274966452149551034628270637859557429767648921220717976106560361697324233518266650268819789380113012826217199260982310900278557919091349554660703873806702631293045096179526283348108842698639726784309336981737555485636845156402941659157086559856952690955497963654373813466358062331410755338078992074366974555859541417776975297179088486111496200804133413893674470105534723913534952470007979833362625109252679877753567843738752233986611876970295655424166749221043518685370999641992564535796765416510953125055666099992126465503407059934395563586806616942784189738632824835697692660411648656542703497027706722869020855311488531970770487367584567196028367865502919944257402623277432491400183063072407655503956913840605604306452319336993036103003737955014015839166554409736023622787785863023055375217258584619080167564691305879737747726925562180245530323339207015644206649336637223031574924485811156305993285215297398163772442865947886152945185337442516365009898591843974513615104921872784631282312343154607018176086168458485010020413310723401656816196504526821809354979548904865203836057355481318042909505905108974089560407393836890413562835877556851900416541634382938183905371846838957175650243197472587588917793954973330933896454646355594786950287642548433621021332781580175707544123551999875590536804811699906780413656010164387288490767367087585291308442934774089070611894732931448317166440080797142203635269315683055365795071476106510922995660695225242484079703768709368973906958210527011120779898008680335856779128227147571170103059940226109021003611529520117591640521443027852801758485516042512606577326214920610613918234345594073423645306730634050562504821965961737374066527021304246545242934504300983579664967082600767849933195937135527752943185083700276844817970873217398884082820497552075632614875755649461230091580853441364904624469189495162724953881060240582889938351611710118213030995328207988680120121786880046188877120269818154186936325140830631591159156186745698324051085321324778963148827808056943344362658496539008925993643680784000244647043593173448062848523433357659683950739051076994387493290345450467670005139584756211726562162720168984264985945286769203344373114594687126486075682489942016144181733832311696989985263972002256835070278705686937008404204800098295303176806663285003708310876225435593203948455223083834959057354720746161392117149417890635861920292984758366243769841842507812484354913150661151196299175308123515341284923319685632843883077093664544326454570727768047208164023678527739430513313504156874581874678464009850425157796024592311919015878531204232113471226267144923447711511083418910333117204747641037516769619686925831660469522625067713514959182369495886460878907533410182207027231108126621289061718523360359279347383687663310935591677019631645615770702309942138897600305093002759329393043821334969685878433097092165342269197125260320064332562528571668400131300487592154440093621270837860458112923905602513975811356119002635641086676790830390018844345327120710332017859746126971479237035296683857676383328930718516064076545288610511906119270832875207623034258072592684300639455427499243960125480399985439263167650766066322836494324411764608719667441118317521772268291162920390591725941629522443444418140354806166178940228099401062610925681099685237758482785663206645728272217634156075956566850554165786157006902001323918704532099089848494984583100135333806759582870046790090202539258678800756671247313860598887932724470712981652471933195589268307774120259633095225288589728633296193311417797850217562102319933878642362498706471663885211651243741535147845143002813954051636813923116330615576033935966287831883584920532837370887822261538626391021260257814119025786404275002590305825075062578144814329573899080584069252610752409117921437713782947081320706429606880454188129962575891302532418862534511792353221316665522787123639602023736633122195256695283695607102412709189637531365523933335041338543605764440541989117821860186664766533681262365440027398528395585552692758992691000763781779019463301601559752946105008512911240681711747339167915953546488853103905722214276120814456401049948187639831003067432762382825968094956340171494530931935891996782111917537891830287480849472847088620780342947481649170525570210553440755364614819344121972414046934980880768001550224590934568092577896611382555931731182551283622194670146821414979931715034297746599348156480528386549508159304375887111870418293429193263068313677252221723326895200322816019882922454577748847506889520601528966209584020171010299085439214414004815786813303794388625225658055500963558597572898619666389903308373565335958820948673510328757605282620021125451740637025156282087556513297642683305983923571256253794791588791408153644263048156104482065936134699567933891198241753598219445825301989858210787714357451670966646197725053457546836518752087552632479979538420867020088191448945882695841677522808995400265679742611403167439215671529424085140504569600202073921133230187609679221124784402049599712838192005837840489734991485836737154380017319503421328244760331126848783033539732842602716379703994691848893095636553072615354203131301663457958275044712140025277078818747492791705824430936183862508484986526196000175749068300292551217791482686827261862894744448064948641358083132073795647662839777645788330268329066606738621443726313022591168962193280250627176846440058072145500805899807038570423796209200807556516949801105185788959431337446462019428306584147844982490570541212732120931872998220750046524728730215406853129875494471900020333124110253673324856901731102571153182927299170380556795910817993278768060334626042738360145999803784431838788264455866255227848797898518577124506064205367649417386963527680130238497389027357896060813679878968313075471093009265147627969771131413109697935360929123827050327046939150441271816601956214308906606345275093070471863683876863732027823452905646621839063890453358687490598580965615019383822766159984766471316132417742624095073080640727052818763763049257141718589718309363395641704513273536991137033814723861472011119859392092949425957670160249806987440369707133520100803029241675173741355729901843084289467415977983428589924308458863768417726091675873078974493101698442690205182143846479430695151137138576084505391159891794243015595695195368785800416492992259841852760764292209205700260846517767916268163000278310066217235855656206830475253155204504436391841399685888040416429851765308374156642833747180027409823505495056471876387225015092459355322134535134704138697514648985664571939899938540916039194041191703598760113898469359342714632077072899989243806276416948511802203592146902032400890263779460258764994583344997362111777280021125392494179481697001799204100992139718185958401751443886354380402842521731174393822433443314561532979718571501672002751124399906187600562649391319767518272482380091560867972928639317670659576247425495957439662632317435628866860435135863255286584358211914737324499326220437769651118699454601530561829221720239790980608962942198715947653829047856463161505832907033665650049630821896180673204288489883298512246400303699495680453320174450115617136211496737813492614171525496218591374376661187210399226530259590114356366017655684214997074448515985930942581149011588039613208010397151510570325309413973179060499179028054540239617605367146415852433273214667230500095859419780866703893979960612231882569330022392155225261140403832475490177361752398643130829875345925809039614212657011231193506159345381559238636236813257955555231289263451857239159789043577431280879691519210219548478808207394801360559453473210459291303803393874529195356762558611060673712225584006436134214750960777666111243418995744397092738958505365153218847451366156557321125305696522856498569435003181553717672344923372883180041418381150067547860482863812457731991848805413170626484208237641865433279503618258332870372223403961681365991631011929190968305205740144364662379247994706602408921878879534992123382751599906991756291929146916886269027589516850981690373190984397518086861360261666488070021053276946558981815389986369324429104647579198386576396278854875785994776485525308329846609566069120606881039261069005880589946181882939138688111257834727406250962755761491186183652972918852808993632019468614033146036504301368672002691196102433883148188515360895415674493244799792213113655305626339189105799072816331439788946334648796023907995315282809302413439857931584914035843180938308709453745981780058838354040173822131574713949474017789299194825896669240477530502196830425224137946633048344120149934769683456885393120943703723357292438298466303394081666812228868138065830087766681672993011325571788608160614466776452379411611497335956074326623494825469478141434684532114053333347161497545834781578341919975399926480869387408265334369966307606884965342167293548223590817456254468196411209587630891516732548370529220456954367711939299009220450308189705798437810787765312744908795328955763863762674260305288074460186059914254171144107953040594293752229011639651119976112379926226840198632210852423608635016984060374126200643875803454724354300288971917031147049447392863048873526764787225683334639218558249413504836778933608600915351000911179098352998055512107643758648330563275169282394774380699659431906533741522823100989029596710952689582693985777098872516697723331538993713072742350465672747256812172519916595015858994455336379143732613470080077800026191438804126012676651091174717923084982372780556647914456796698735828170412197011392806773144895392925436523096876458932779341598014128909863252263684925358570387282993425664906083987471455325448175027162033977140067140764704001580765631944553243247763480582818265910541455847037000664530055898405305759121305635890440816512037545089996218640652333396796656658859159054921336741297125101304621857445432119626240045221515114136609295477367506685133763400743851216528420890290452310859709183238837342059097131885846937475277565776544299268086600183627196624282759114476911094518405251546575878538661422965881255195427496167099880450386907402991059384506678714205671491122371595719373458937982482903641517929417497870282496034432555099758147634283847246273422657302957202907690759366935100682763342209035692965982006697075499686131385737106181452921194558577872353513636884935794270964059488258220647078923480002596653240078649491323140387916592727364130977271794586322047265076175778983019097158945560181358704204552300094789437605616089310650971253183422736460173001804621354306309525636651559215051235651473479725072814225589842650081518255912935732847342409163764706176545783750067407192219186879267787357676484716402182804145040160866989529321593650223649282600428197372886901370903968201300351100021674691931611631573139729806112562215912627546899422461603289667147012821047912308766039001510673115384047629063400209095166394456321902317241133158948335762806372615650304739665223669945519459480805309701205153879405007099485805121821559043113359972805401200013788884672630304910770962297918394691303935045309725533750607068675052825107070810211361072666696467183808164340180803366575911702694486929003550538829350133373619391767499709941619121662743080955338919457138544989592956684434765770333864929056748758214108483146184974998905200417848893650853110888244393068384473947697566215860170515784478783167294358108345692734489056712072699362206819693268478685193415149948827513596858462509301832683170694643374053111328774515824519011903981451314329898943151600275410818110691535864432986355675832107463310209854184221983339929031512054049128777251374681534673839948704662658798043272671801696103119922929429804675930914030827153535108652213435472245875917716176011127181589444472719677946067003120482052067270047313799224887873950143276075102009220884550472209378975100184078742641056474150862581393228215059713338404375967422860274094823704769455098196895237838996975157278306478900781504467449574755882158664380188864754764809133360323711701896147404113019886525329887420685303382842029342327528473814965316447746601319401929300709789978380798510626095658518689658683212741107723083036034856481258641479851420099135867473991359079625133274412402764680475769665000553217034244810412042785044705785904653260797080834557411856047766100716145001377607636210396614990147379481185279521800336935934139189906537203165163312330313659962977000561790697334682103441619604757329331660011738356683545416919783113018486053784010673591135308463296153842823581000000444978004037235389509615232258923723098158921120739122924105170876755030823716456206203540359579356763429290309103547950034081018340409745811289861526917866648710955274758145296693539002657043599655391273635337427706803067191869158775516339964674167679142580792744734127017773089179684971030977227638726537882316276685508176607293009892994572276483624322672971164420098270100355136888895255193542802814675082406366439467676590004855265887696202280934429648939917367330549073781550807939924171766455123189880940920281412299535401798990307999120708117711737836259577348628661053667651172800817585718024481422744991146495871325525559556054860755125486071077120805624917486561657543796767217095484305301200267981756921670584799678703658639375880626782799274140622495738730222833628645550320451968205383476344045715791823061664230432024273830618642578453908800178517244678196989215718243875929979464922096473762371587741770011271925495943727531853434196236552989566733067775954035175250122618147048764470267504032690423646327450207401644915772198376834357525469924796733882098435182152575784861857916421610442455834431829082870422360146522096927864752902852143035495890563943495131343339773861589413393413424734495895252004393095906261470928821082275112660416606416914162052592102407100897895724432259593037578534585121372384774684563653577072728398284035660298290826546086502290180952543329146888402634524049969787965823772116847939045165023840121960204863357608895798394443427015229332141545853984609698129560096632046226811821000529247366244935099590755865411646175591041736267642951162650536072954339414765912665288147476438453154735477664416377460880080842142401556275812243885594327985091525104621411633237998319831395235652789288981488801884343259598455338520886613221114981715584192561032499154573083018995538335567826138831508034255770867999884776654616502590460646436784160111264848020596933374902445067410624406897079592582550735399741303166689326950118221308636848194163576879579030730063461515137087039164558463494236740702368756232052654563024068992776495193076019261260561001041449869616759828645067539006436552447365370626649247563746721824153068311302492556496116234798391084331934163443149887308367956315617797410168363408207208602172904785239343283535552047813628307920925369190033119018802342669030380729460681372470885252252393681725591995825568105432493753102987890169048308902354654226889698645544108725164818046700863524740189686745641861360571675252327099262613814357577434192584704593562247234049025478997733749815801257305016434665617404601750775585474893141497469670416803494068475904482147416888457129866017542765929113206464178331831556920939133741369629691588543870932502374837645495150126523752332502889906002644386247412864241273546264315871433539457954449966678642392566378920677458279650877141789080296628657978590366363810721306945405580264496507360336978675904419061812155432009165125450497102343480812502490600933394000880300961557838403565922553517954683774361049992265105874569253896906214474629319943926319561641571460943251357856544806530827194402499864497885353059557801205545301399942208623083943333853299253449982626514281143747625963434734943096042524716498123171471200978635786724387407352298420261488223361104884873086558026914077731217419676527553162741217026134998025394713275078180052376166971067102406066353861837275144717368544210153092605112282320381359911330748563135682504975034778627854684429253493514349420204150119390535729737869002395495570631511688773504574606854039622224941301439964972623591318135296206834596309403253356878630112192041300831196349332565623767590157487140261596644526639757541807094360576380306711885482185816765021214312319754384650093140839262790071161850538775308927366886626479253127899850995638379960289189945129566477085689229138078070362997140802007402823486050316824880781334215769145923374461553819903796327314704870838645824338141510415984230155469443169505307181480900711175479164719399696298377887751080036452536497405080966710644720117591718829847879327006521328313308419324147837586893522171503005930736470830350885699845243784979373910017178996739174327015850887014294566302114058703277315272003020345838602565503942006957851543900487385841430752984425010761744358275539531025931710083436367177199325836532316014003055567682541700756873239717112035113190934430714029231943921972185260045260424995117528267838020036182879527308449968356701524776721379796992011478398074529013395599735992721165450775164858754067497297202249554785668806472606726505702931503397025511670840709713898759031619743918901323743951979869683040919878873813793473949658771160313275959256519151921578191918658180523469540183285507546070295478828086961333277307709935243625566758388191647385560597970857370201489595718270926114765179049799891419283932700292611572539545320272833892765282418225783737631189589058262078856037002507038945674590236618107660104520872738548599990319995351318085070072125837679259299836651094260457206834372785333457102826977496328607601859759122924540017928796567218031417081564938759398481442310865459686633467966032418534521599005984923859138870255936011856010246208362187250852100798923844778746764669792911535866389502126817231214261238005119386968297589717751625499975161489088187875787939259874698694340550037689381906741980903935447215452980209255119822460089417693360094353410933161701839179453694737916828398012806894767546101432555452241035009830499313662116876597816944619672419039927380554329973811854238591209866647660918121836747912119252366686244627018668692088451210150407741376847738452197032736327188401475847277991624866136576228972882976277808699111343483751008416114996665870192062009362811216973008193962500414470013603531140847877277989988936277357775869702962285276814394967689743619938796156496300942714630819902500478424922983059503769662520585146891027881644106014896572341974591122622349769075742287895218421359030184592742181447281165468790896227938147204161232167233331496402121319898387236061016827305114517457175383847725373797050231283881881865152580790516205344566808214116766731545904971222501749892625884592990516810332379647676084795778242833100400820304371298203175934143498704890686678691016804425106564941135820134987345607571002164480968957151802406992709395441186274166136711416213001504079882335941527429574659590447326115526170559691408938185708807563016134120865401651458233329699678702303032920159614540396613218283209565309045490583570825793302772470910487648037704846161424520774326656409147554158622406222378400046858166018473428628593197444219943829704676808118289867939334213179037110146857592835592844530956236430922544610065002666988028211598315203388823149565663272566642499176785024903088466453462118870259598666440812694471448202973406632914156598012188218824942403140801122999393066655599001256883117765134755380101591043891944144374384932458978508687481275852043403382390969255077471535978899166334471604240651785965662958601690560829138792308590917078228916028301272446304031355953551401101998224447415386636322209429193389560355911623850210590922810637257476431200598089001694714822654096574315303463244580577881101313843734129906433781124473982593554808289578681311948907625034147249924490367997099408289117871251099062777136829132259250740651810505240246056448168074366886116303938708738989640317224699778731375196168340301000708066896158818960802954800258523557707304900119825911506979099839484691784013289634805258764354927347982146335534370699178363250425408600529550511400497881690486678742868474342612786888466083178730855271636135923279992304354724082223046763775920523554031231483875817314273762653263587445691911489049571016153805221890304044013337483549023178357871383151839914683583374381638970201552055290780820541677616060223816832578167669674566961377370455686159367163740447179814030116476375070766784731514263182119439356681369314248104722305778657016466794340198438448702319579137034377142900987832610396993978798197196515143943474965598964430906135174678888807733031073465652525754911018862651455747073615356804206427765800693889606181265466962929681839811372463253629237761386059988764650889638942138720395712900166472260770532908398812137829146417395864599123583935892250828510291704409570330671811259563048628615925495762390827468890170808330028873219270394135231895206135272737677890556269812642018487384735471352248208247785505991106734593786147604093448108941372837934965494364352425533686108531396426975329593394698510383359820123551501104447884173325813618768319169567279628594039453756708215041553863145298843809123701829170394799630119263800149966861267013511230700795054605012227847253386869884610541280469332197349819656498232431057172369118445166329731761567991106447720332564417220904544573718044257925636480779114863737125990731342661989218538962461338827452183973143741701021805973381929275670799159451203835913103833064343957842995503858294923509091579763179320042655520662380561582219288900459018804310994450436370821010642991939366422426240523804322087746457945440453639306317157908086197493016325907182220098582536231884896291907040866625450532508774104953687482473347429476004651080030173228306568167118129385609775731555405505974239843584429692469913756739369554667674260995812212424837290261974071503328140469438823576270325206479113956984625193492773338602366046243613191827421929483548806308981754215519020219805239799227653064339215990008445141500431434805193239228769563345077589064180825669703513483081944287008425309526350831590916360756624692503590065261060050719917641423996503925592055382658168023338871013583510309960201379512179089790234357149086141483921933755827445208999167556834055817219452377747515054039860158136496309643241469364807443796243908198456521910302122945573349132755035381986133280690269165092366603875425645528374955283644118333178783918628005340668006091743882863065946519946110163195675167680881048865555160986088651493905850339362633422671873318647593322082683587179633210538435357416825267634325334757891644367621762629303081029693483776157153979212544424029850312841904813043205689786563594777260846706832131845221798364056227533717773894674848463757600663132618211340418779809644403639907377380666248210986840593307896543591899758937672201278217657916975701910996097034211986354757928868923596633383285694971533632408358855436961771331094306498638023175456400822229895224971077195140735752458090210187379575141033149327096520555612826542689977349123561816118665431766603035633405781840819045784305218395357498750807147551584748460531694230581689742072364955479609146496827980801812189442119525651723122502008965277930797346502635909142411070245045714607414638167446520231653700662563506642733023241491787518266686590438163682768660735675373487864027435135608035961609610331207918486925063960028878923190317809318165162411587555472504944553362989535826023698876296336974453334830545601763401164702743006699862218106501109423895255057831616301450706793130511364854134113851056491751050896280334163220868174267405713082925525849887955960381679040226734615877687094913547070192826192934243272106924772402757104594329934774384715436876251611811533874377105477808016648307743864817188214925494341323935965525877066295364782201833250986560352867956970014543541453334850855500487532189297678938631590837964116099707077775189639881568759632018187550727546786413868219619952722203794647700490169384709271816121256219775515980865089736822939610957239923787492105010139201842300214389620984722517413945817414276652576519933132969780359971587131250121628749405795312032079517151403030451517651884242951789866642083018434889513693357373948327118856362312424236151299259689523368841577690594392398035282519340891075482455540281542069990067975200826766357249035758573028159884674073221414589469251363286693935342952058345535753649558764376331063687618445803779420660794536312810859728685097870766578755083940326447298482997366442562143924422401930933389936603843686955483153740535784020158188973975754579823918110151188036710700185935496905237657185400321221600153124715833246600899144584004766117774600095115934164789369433231872144155514104254209615418379708557626072637551065134190444666007327848543041169820565733125652274245155988907349326418041316235381427050038400940178228909049881054980338850011578473108170275418926993177611469145450471056872053360135451069350323250410437465249323373121937680524196493931927446099591358982616411697614595565036734155648562310694789243296824620619094362076741986905992514238394536311390284128288762596378777797841283015727125406815173465754758993210142780568463592215245874564081024288796377776645919259187881055067548441478617014594165325549995668346975883788456833425307394299255532396307171426972621178729719350998256457494888889476447993611687466168740043991237290270153903102520159741069081714210881636276225900190759558765949985882940033387688888133545699971299660627126244938892951381450101459773439369873132201858854992998420779078092759295491256437019330629682201877271822617063490351770118070687610063018654712638991871826725530026315043307143941083225716034798383698678421419942974903327402967005838131905441822883496775850600045285619649195974998257759720597876723728502778739563235128681910888557402439604537595503137203638321416393356468515218333253578622140128880794970169381016127359395938567060236739049072687772214426077026833239728266899044066156784549330261320338833942589442076422054765315888531956296655734261964710881729345857792587859421225396373774340562168352894738908357061135062070584911221950642750682215371367168111660286772157453113686164120434513726141573200373189766599822387801557631585938988524416699623422100714128372664922796166435349451183420763874617872422900383361096998878255805551369473077072941020526444356146982153416809025985099332812891022442324347829462404134237186118534198520362770763833455105475995595505559705896719629431760207508452380183468846507205533295898518168826187759095862852699325495738659939371035872174011923456991397514346370852902412620240200089788825085577060576549557741403820264260353509067411386510768864047164078574125102442962595328049305765706708767700773878440160800251333320947467063779350048084701637592225606122125995403815303450781616905844924106400082913626130318723182576391765083587672792183569768831489267462899217368349951340656992543526273032678173708011068046967193638521503541057627943282620314594062964474090393004851764598500588121903236615878947273101046749416274684866298817265691315150640825028394082915602767487268919824582601459003391682628812280897198848097636707677867139428504149122216633501631934845765176071017889514002410577668645596230360532782380162449540474135493646564272524687321946027195008998311661411799595731948909408989489071287981124206910089076317657521529897349366943210374107280271189340008265220355301851930511195151646572985933178974943408099203579397066136879525365185032851020873328643217095647966675839626380979310110480667066328830279708011429907325880090013983029675018114583519224679962164469421208305745122534905714827894444761840168067418459401527467077844042614203251564503075936140009876326266279139980587189438222905384129875806423806293693010148159996133804218803510325885693141937325559110562961792916251579748018762492188164998536027033156591575150869250213272295960846949395294857871836047208382164626257692337748889399103267130172726174683840578256340750316040417160361253173953234644948570251759120606984204889403689467909885020930386212156827893484983897142614045415869749496929552645807371575674259596161465376007101586838406874119688218720408175541191288392735990187066201965411436184006777103052811739076735534338945419144495913772732364871151223715644008098222211429449280032357483937689799869478617102550833159489943378303265200413171265985855533759534727904592451389326966073478394279413271214385344558071744447650432412004060692001477377849221314065484135788740219010831095153307925151136807565718171387821926828188529484610438226459050829490000584337038091716015351127293885693931349658282765062291157417162491159795949180693959049515193359733975424641311829664343000667709547709106817445813591259858927337856854735465824463926695392165541724916262606965558554039431156428062259336600429391892739590323000565266781984365392901461652967828976819036865683333697789022772277815815694821588594579307549350102568167057008780879568604464925981839616467366951104481513989603132992223903431017130769752402594823431458380962721615311903582496389929828954580565086619022413436198443390457302558809404391645121782724135885336002630562593717360937484121733732944652610750267822219678888250422794473016448098399732530542616269996471027173393024605707559682292528778061915607106726107820276886786901227338025113179876961728256704281767878830253000106812297207492077764012920839091531423097787624574152611951240011143434316224048577648758673451015008253971159167602514260439019862016288521205608636930583397852173095080175432890545384679755200040131418884772264334695784097673174691769318578251941113672969147166706191291992825681013253345493233881708067258626685834844260788861947321245737872890960888135591164875267670873774199770405802840462891482792036076691236950600044630272477804476445068847262217477580676824023493362497009948845039195819471751104625416205402680241018838335992730316818511042188576314660524127282193540717193161820421983862298502589942897088892746263504711812462574694070199987752486475890916256261359125084468840698813108223144101574143534447749313327658597559990448401000705530041466173388062186467870849028889189240716087314013809833603526742622139766100954912478126381272017048706176296855788770141726871467313363930776668717159275305663436237665320922153358330954381466830449226374954499277129863589578341230068560461636277017555009374108516036335811412860817198467286231385811349027730998282983222822447968785858896140666477466418385445423062822068140645335942166904093898007926421751101744173492148224570712018610699566666626047342807012963524495488850972717573301809064492085872159679476377381294814499961044991243010946687871089260207154293891398238764529601054232197277671865905411928409765541676641519044465706519327926911861153140013488320629469868396324516218152343002408397718939485788502611097028299654256994773442171568221437080710431995614118521522369535490329968105889214207724080413573294662989356660520043527996215610395944414791261809771169370672316390979792098545946697818832523924646706272937934176491592649356272167475102756600504937168551365579531749954987004576772866579651381369057222343460355114321305028273964888073512404503643478426791997850433339929726782045475777331267176194218323139948662830273396213654515058379674708177121390686417081589309912048065665476978146729761246948004158622764898654370137872743242817722720121781592568274652455684443133553378175129183182647910301470233796817676687445193389111794110234159424273043359966173944241620087246422854613225826904855348819172536574934517010205069326056183715178002586742805598521253279125289582289357118347655522011233702096893710101549501754455497724979135235760149281667620827333633151324910913833994179642256982780737584901211977840451435890288454048895055909921882397715516587016891840228193119581685136786070881663231508572109511762077748968147836383561194304523268728758538689606687180090703545118529547163541740312954530410374284913080015437719340960466035124453600510561487155567712891153397168649927917016444924062814222036698196028083905788954130856350607979599432032850598849988084829353436858154432258073119258490165315733408084286164573296876417360234535252613843445523796209464272271969476023934989741283780799285321423123901443406614854881251806959872128180346104059803065674985774881239581803229118172669707132271838987638856825117727417485657885904873601971383057593549218887370920796791284790578104077351343352792697739711030640052259668491687247022992482618398682938787824759398604814614073048848107005098803387686332394852705627540278229553808018393706556331524984269647243319815586358030789686143399573770711987258111623182142149680394328004763674521553673425853129576799881295462378372817381572373649515791793426106177374340630387870247190221014220209503693602494718867567825980823907523531079315864573774097685036102708981720667510267261286170117189551630830561386561399010267048123853024746739309109976730673248354463384630551011352186937730031872350836368004437138004657688658806733421308130437996799565912920509960450195395552298184215730577694717148631857254572333076494597601915515904686897843035575905865864543726099153422185025121077382475937545196099585087960076857311615666611453498561484343130296715092841565161626504668133173001644216753167183106453098605069031055947144208202762423577530976725909242452643934062584494085803304919672846943075541870468467890053903281862396880477506976667210997669256926760682116228184964087050782185035924679093546265844485720903918654576969679729345773198369946798803917409852125361285925223659915988288401225121760133866791574505838540229386728692812724990583041261263132279152470048918718472852565882235488381504911078267542360202975571934465749933116706760575488229171772451462342682851485796272224933216242156137994988189400778971898429769413787252165978470316286325968088566885716042809740025766504262345365954838834075163513966733352073184167743788061879932292502379602629772445719648162822929998108878937880166534458494908617917460387555797751229439367908616647187702383736699243271327566590697182243978575201543394864318334763322653120384413269337945889542727102338881022371515202258950649525658917920814303660427027146632352157839558113521367917926484285335181523313122444947423978445898173287646734003759895768148179548531941808224924282493678110101690247040990090676824779390090552707800082790246197688070265291189623859298400296052915493196294492132446511413588872932353114818932753309160708759373161847838404557962158367081583054046903179117861287566689065813203149837718448179368952592245698699921077425303629006462892146234132425840796299395616474000493757172492218616096799034442196050111794107411521337820931480733351906429567579477817995463860636687133165731492422793207001278145559938193090469791381809318793957996875043246083826726097870860428889152715389783638862361954348601042618317974019667434754937594884644380721801645365103834129011558323598173549390832068809901256440574437060665196124751999734684808307213159436648262316132290388815387834044299937699333339558970186849543981499310494644965790807447912277592154294078537292667032259881273393518197671991428274229899986219882510247608689414522103935180205828241059964619986489152194263913696860621233386130195586475405671905131413955791900708856059768168956710818364326487394677696565001197324892737151661297976310911033019655216704039592642578222717692460025956325059959360459405957332160101432438772940904252609001416112014081885264405119275437287173946598839840408076223485554809934009208330704064378297624879237193749111421457517811650968728923316116467397358701681325615345940645790598283445693073056847758370555002623933498037650572409786194876497998114131634441144592235472342781918981195661187991622485474676238866438645615586118821482191336386438189314353590640821887536008999676115965273282761571609678706301421861892082618331470545525377565005332349745606297201376442138057199120809392938894567971248192040215820721158797250660054046281113818318023124110995367295817252239239299684354374026239330289433915434328211455811917506371029640167948874885380267080312945508399101309618077115516598392550894467857190989221199800049884167208172557041315914427002987716554705639814355473738787374669111744134973848039089948007526623653930030501287018081330640209933902197413702351797333266171077712985901258156913588934093865193189963085367517965662713309907811379816444693336456150453019328435651589080878165117701358844745058151947110771103282353946744507091857990246497596343882224872947798878178541290289062373409935196953282515717273799553391257089284009728635531589224065275329279081127213731029183677739753944688910268347112350945423878775712408955652894973525524487660138943587084483683295065080988078768131058967411149922698964898827775842733218910055036996918335378796681594365660015428269002653112212333798044089001243475529814804271439034414379989834813264534027541740539238019708265679710068855816520222896256955318089674709343472232080976615025106100289171004250375752222521300249131259130880062863617306952836108319181896734904179431622125454140119931706610855121550470187915709818579860157719505408799664897496113527798564012167909038658513005125199895667060273065970472814929259802119846785830457939096432985081803962911329360133989354665086709386100705558781512374601898211647724673765890905467224323657539745625410479760675628087968756714800542848945528811457405553002046304850241375519866991630758063851523981941507588734668140749152896244400279056641723896893100568582304532681337844146939893421799691903093147482237380824238700148815841866421858380544831127676644602009106439297013891083924008381728288154044945805800046432497186440351595979778585959814160924520220698172602239784455630746391737008484816256963892448692240322854572435526541604791154737168857017179681969329455786150700514918633189953756407894789209669296798543775156304391512781058194247992141514553682900668022969647362733879605046625519059608519844499642793104312550980928669709821702814052874869128501889551805192209997185502836669649399744539375870173191227693645089191058610361509678703728105283743207021706467879431859245632791704876847166854630398674327261282163736448896086156337473946153308319562097513516139122280850630878174951277489343773914784653698587310769111145857797665685022583742283405335949818115013394711196200650455817905248160355487512578726053758027455425106812055424625389658658364142463333542083659201328129852816510627620062939193628323020542712642617668899506115147109745954945684641244019619177571276250612958808305205003924451386296930933896683025400680041350240478510105014038604472748397423677704039483527319304872493121066210716776814482732725624970884568255452149959623715236161762941840573796064393339519061825970947011557085971445198026974904852266927002117098209024480890900300681078228034331952820923074588241618612033275862017766176731966171722356437508653659402182662990723171739634074394649245101715885631289695465958098192482087856846685083398944183678763064414580728576570966808733912927517469730105107126066132809025755386604207629276910230532105233088369507570925160814329958304096242702831672505894274221444054723789939864651982423510455195954233324033668475658177955809463540125919898865636821155937625119561564938918766132220924803663052583863629176821298908953212404324747502640992623015865684554630348211949141100159419027807412322577338319669205334951390262440407611228685793936519813716864617544347407748354378963420357436823472857621362842071448852926860369532457905563481373348539676982457553204131723312157256662140908421103737427432705676002773969126407500898103714108482019334873805855109688389779525959826259872893663160204870718200279289821906212900434798046925112497420511678618718237774449645796930537761137897460231383992852066248434295394092877008814204654682982127821422835522608819682465488934371628421457362543396347865705751233561862279476240883944487623249101461365377031135932825154114887348861042427998842245306017586086577314254195450983875546324431787358229721811438935888716644776699803916868505607435937952191373587467588346464412738835400497445490061128741830408487800720426505087674165921427629218080656168226808220376374396345630985997969938954238078235255308903597331494628300646670379193765586267684283450010677379306468742596376446583467328647102073830177610671941930704698150261971517635272014530851038577935245893804289174280584525481634109626257679626264380713706096647675325240017484333168282275453259327131861464207106029956963509617741672269037119294856110870663867069482203523069780688152994311047548531843414108389658190378172187044429148369572321938750662789996009964423532443597115818081922809503484040018610789210814197933561950153987248803550110728863746249049303441132273252267731620926795037982599531746102530264970286448316137671121215000838261352031052273970584186600861964697805694499180241591286328995810589193722981916946367729582858507919729554616854692250115363686666372215720555827137965787623361045186317230836352948259210066600647014001720696066169175626922365212991815684658630567759232295126291210814915951649527825248627114404610382490765819045527642843095395172318092943822833975910925919523033505377741971592514072490147399871920170026189840827024157489483913755987681736022025957972435806875697541353604922204757884340875378656552437552810305820647996830768837551356513889519786068504561896614202114243632600373429673294042752901710803240919459342226834953256705807556840285356788043820654627854814617238958730788766406441927901797782341033597431342640676522878058249628433741219527007047480576888301507310090075312388340075945691897729807223656806124434629606400466213323164751384746239689481380777247310054815509263496911179288999004187668978220682949000069213121998357895673675369029868703076426674148556643419585427810176955423325489583144329684112196058165534920586921346511188890173877840223536863782422012499074574010005581062647088025507622277711342700478358132312970622558462909896097354421671729401078834658477606772920813249354432197060308085163947363168207444186494986153417110989817551226302631300300233493299719065519611070961839738412841529822124054711342630866650904976093580578875647749914026606579418076135895900590307871060958038972188723220207089372178235048689179675656363055433098865810556288149647826717665698423733712681672489307518367560156467259225752176303470573048245810835994364424161193433584449707394609413201403607980494885969539446488621336081140245051026605864129124446302547133760895375010670858504202446731273135018203196215160342981054482754266394827680062191635981634818853106536807043540466049266017199256965368980082684996972695873805232295905526262779732373713933871558710691445401290497515178016219873274521240741970440573970615682361715630603346092333715147103241640328941297057456281294009681758997090174277316085224496028716147321483523595323691780629759536361280183865361072566685949866322515441489178205427929129955483216953218490313073683793250477453152905461065759410807441981182915910724987352165260461044794467987752409037971228880667436834036719630974595326980194865386890653586937650818905551115445650806463427196731427068971528542465232686216788572141350176605378753081132421918821615942893927250616438581035712807838218563659955698530887268998052045591820849643457654929755741452159199134453257963330268963211172437520737638062536876018047618131523426992644930437965902962164291270362059559801966328446650823556872017181964159750055830114245450987064734777891735898228034497075544770047045972949328162934035799034736200043081146240801268428256573428081451795701181969783251912115120443161398885532308977911569067968125120466883018843604341752285822995784122551805221814050720087539935404671817742390489176283578345164921654123029945692123431383961517650596728440673297365374534621367891510237167554219589181876392025494530840414417319695365532948935985602103180518632373040531866617987620829789228916019682106930394050838397219600452167687539494750343393405240550470487674915284488071386333220271862795910967253724227994887438314421077810190539902124026937324126305001026091769839250807455664787242316296062813177426443467371089538501069135866191012591696372540495429696734988608629987223776724924784604817850001678437814644885357840907780476730816211954089910812973047593067042206551394104143716031521920834653240218769486854667643521229094626590912631782241386042117728528492235379309431880989904042076238432102041614291756823528217126037328045566753103453933668801371965647932713773433886661667215758168409082138354173610151983231169991741065815643605163784046543605029817913818804795899904925501079275653340110440094936625185305322601597121954521788090916439651538676042502733548123981147007728540937485152694948020537305824186615819535947832130696991769157436831987836706738747144858404031610343000654290553086825993520915477452570794545427104734606982849356475224829184390686815992498931090804610768127743402577117448333439844222493691477920196447952603216192702537788197923299527414149906800178485100719726185326034284569145093441158559753927052801989221573030605675515191640657064228131684638869715598651284055882386850178417457446410236949816180241583771719567419421074448852878329094745530814319291585060579124386420473008248336985904309960202911366581602121760455292482585445509832812267561939715385180231350393407810615552618813883667529669661766356417514133121260406824610846811846676215660850745248761172510293400701312003216472756885892985149974180364250211256912327894115478258229331998068592446712203030878337679677907895955022239448779954555601762033355994423149935319473889270714817619700960306075709835888328459048801462801839473615142267472537551900713200713198565468344213166367071871000346075110321884461108407245310529212429419359506226572142504271592523689871549828760724041326690253147462461549918151728801568070567333948456725552708652923661004195252849312681696255374600088642379236608193182376371703542909410309749928433927577060691967415142145119643725512979060162960073897549130673765064384617306674818805868121615805584227705965982264480804759936210303721870239042170638286883026643278786393291795314642287311140744988169083817811185660551207915511760509646816625457151871181028621716623804817928391688902102677823176724815357686391424466784862514209445692696279392722655476188187404904971233052137937021804468767758294634242564584113030405015946619084511427616862084231642932099324251436821345487395297015809312225091708470402253885295756564732580063264016462567245984432278572171447676001825974539869995331663259643414599140978100455636841015454207912821449772516687904453937777850484604271222814831798562550429389418018931222834683730403881750120826428982552155815024373978253015644643428462958890661880848977880425808206479877672000584766387676866757659252161134592246346793218805971442150471352719343873915784488980772139326614488790835113241441733915766040293190181812096349307200361608541182006225072996643971835155722766585828335763306439843905513537995274666030485920378938324846977430219255869420162932019554695942687731146307947691808165322006125457706804918238171527597578450924095565818681284463275660656694731195488949399215640389789059950037827810994173809453062551902429643084342250211919305719603147063001548119237901021874604005324440182276740646059281512885862973286981480111013707365127518828047189152926767856296319519009164110368114478829329594922727064026876231126725931214826274629605050369346908297768957570970990335327948749594139088065073076057445730321947147111042805989785159954373693051855872316410272215818989033783826238649735639446759715686254130625138032511342040553738329238620138058111690280073297736913585457812321381179347443205569249421240150755763071862893738243939937205970812449263581004817605484727588198300362920183300383511257235463178054662177808566809080749563500380007676449207719249127444704236195464519856391578189267359927197542372849928604163614128855284333339214772140680485573706842133847643901487374276587323797568490528453263970654223114657183379111003651827819863617698051840583167285968748354387794018811496942608472450521542086661948401655142194107557147399085052519550481213858127262139216051966135388658417443883450386400782501686023883077954497574102809923118645301359083671212921981725889634086290355118966626204989239550393956152302650228613224088572276078822301007129620947355818636439002341135372657913396843264903379384539095200395790028501504757892031958265854180485210553090823340345034925798625772007623881843613604848404621098611638361878205586229370806530857114036945918070440190960708028669467738043136707975968558590523374054758981305336629518518919905007068916547508730323273976262276172033329589335663735129744161608723407008374865804216191452430438234063699204895954983530674341538733851352574225632801227975984563153208634648048361587449136903562900792521960362539714313639157923939228539265558626505737503688068725783169144608213690815602955321099847657923798011783163525512112852049567031919817121029411493055434039944307139864015978152186589638377005973003201870108839952481688609683960353130236612404602790460821576618037921231177380305302611851443412485344736636980668207619680754984078850091296729920483406596170866045674760714240044375770341930345669430877910038999623182372245810161130191216067453598913794064561474953717917356373953118707764341793078830627798704722203928201457548285191038975807876046622953069474472645851006388932944187445339613096381891096371448674852661942311769066264523943038466559803343363170871584286509007442025585895227972717336325796554411837500680597898465932826856258822857685423215706742054632265973701955206964301185456575710332298299493133697073349617013670526572585754105318070786587877441552422197759797897809753969064203074787675354609808857550684504856166335911968880311029849307589319099166377908326166052004173154763006854707183994608016820284771599302444982037630301387362388449545115964683659205467199854656253496310236471557673944507250201462750849581820202138909387501432119297199687088171971343294426985733890158412972996505911517010529028204719785426873756458671452818445556729206799783545643145235879097275650838120697793210198758174996032101536529537948217346520677825542786674223701559616456299399160480864422301914802527246218586376585555438537831632111174488109526833708497296399005148521421407451342658954443376145442749897810455264897061606635666973779077322214806976206040633708316490785467874542559801734687703552447599724104422281620191623097435170758139888973530348080621811895740719436832328986921966007594067615898822373776103519588891881504682622191716077443418484080504138914003259500179190555562518701691036847702062530523965004634785541366512244260489725707197347314329583872859147371432062961373844072494732555571935944713752609686107528653239906059377405783120402761765825691946759276060589640564477471085828999174863394135115284282906620263903585182892591187396435329204673200675387816361136288748945645947870096296266128251514815246332900799108310075624152866150168177816806259258351786172364776447531963646303472021512956961734158333321541626848922507728606113564888020422359720178530766190317776677220947368198006434677003844433172934594857343851039447993186999933693334175313498716234165452864385669516817497149998316932019632241774270526880203765697510355390121407632832041925488399726284710760584310439825500781876201144940981948317305846390281449078594874101909719639069903628781689331164706811541016458493768367175762939433576796718960707412280327223807530499052501559910843324731004200911591175630663828301316784718305502165796676509400558340863459177925326060019054419894482342440045057353106403836524018701221000644647046151906898797204112474826292313139707703144411529343791475328938963561879540529393174360408536947975041684020142838642574415138585048137068387293825713895718320022599383234217962735970022883555557650637657018204598165248821695648259186128851555106962103667892286271092479185976346061311203410087739223107505661639258725736129771672810136825198932420957029921749431557872918764178487628018800162014986902616461414814917588424269906181042026097889337973953655249537069429990726864487041532623376667596301842702212537508134549990046533040868561911230599876994720024679610385225247216235560212252584784988152309097146270225128554481320127959282359792621930421758342346397377735791677570108881653915012063387822720904323958493969979466946881440552453202640670858518999138754752499083247576168868058069256911522414402589272628845785009454816801255813011415415677990250207899916915833520724751650177046081267628418087711204050388260595093547634186395128337629141286547146638868320555387762531354974635821010189684699678238024341116228925093966030187065698108098712274312470987327556034944795457933587108222283150250732663134833893436316337740267460781571330627792115256500560934880826427079242042695874282018758200408919794661561530199897545138609704838437814582406442513009403087044759729057232813075182805626268637685452515168996840333128268912601461844770287196047975246725518707831557372290759856643190692627614856130861504790870337449401099622344081214969466421274106491890609158759209952749064560286905557116570052855861363695438375154369126920511612767539219989581493911250310277198524684859927759679105679706159326531107161532025680635920807643345149119028611974971510112372595959185492009633358113535156079776984059573961141090094206213485266807747784337780586258848421459347141436977197515473027497866194042128212119959145392469753255829517065591623493478358856809211485902047348450152877634322457880702429347039993449273265945088771583362387987968322487921896043328933136708481916758293539990221057051788222763676181014697977181052508329464477433269083671773460723182472860539560784284516683846029039668907669406106029075184716222232708359922982187476906286482641655675746288293816137727928563481928588337423560806670320266228747208030227210566399108165002282704832156149147150612190655367754770722794769061407226112377699812424835492765637891574468042747608384074228513053691876257057800751960391911208095129653194100837071005347942032424981089564955300227704260621654769958210738109467467846791976460727375310154161942955072675875762705421043914570889411419197305096056519363886833273784774710059312710722800801377410385977241934228703314935811852516227115316673105794980400559864581200079075518561019792737009636558945821269798860621319550545801441129378593672681970777281126500163818057738669632160591886751863477917969527072793390207146010680087836097659585906552726770111649695146720879784335325759858989560715112567237410986593660743494675008292619522902393664919036076508012335244612839189957295150349167516005023834331008452289152144716313117806480726041951061739596988396216229616596561701062577090813172677462445961138704765377985620802392195565436895957029674102916671901838437181541018234530579505129597720137824889717359210673526693677960336136191316566626776680599410274345538475754927395752447031481784313697690297151599025935133247511151166692801280933722639479894857721785915204315295627841912010010203516947838802164276527061979961686989079678055329587378459236376747816970771201461070306767183669217735425883335696444230527988747476674136255817907823517463145673480625054931445698876523771499199393366393925447240033508702114856598811816721575259003174933903607562373257146832593517329437872055855760017129228648985667371765156017273258984116398424284483649247696383560398433699861133204731916444838198859492250146463001551943147379805912731493293792609508624292137451994310936274700527049094006742687165896965856708952650792496921076591540391758512628490717225996369050811280335721961971771027904927667923633624511187872224576213519119738240135929293736552281354920438729597501184566369100757290589451222777210372853286738835389178948160487843777555414995623168673230822337558637152281660423834070925822523835704246721983051515833414364465300046497297642827935708749249439734104802433679244605681048628149433440563673427873918588070719081885965198489686639614472631209775544372964646831186197828381481590561180219062818857009424008724887616991056576412651397909515632662138780272955770088754657780057048771679330343369681166824057634254878696057683766271035152714970569442173394696864154731691488315123838051572043729833513355908452300836139533899352121888780692442997636413271893952835146029375199461104377162983384695662282861767566600592185509232710792530605213655455605024380958417902395218592943912164786959600419856023287855830578283452459714850548730525852032279627258824882918722453385604683731089531425810732628768313129439431971071616181031173874881619407524675903154211286477523509103548978536178578543250082807350194465717707313341892420788887714301101644214986842087724039521491226475970076474562661003128692792580939747375214270265398152859916292684885171153808386384532302683440722667304828419034944691138284931078529826906013378412781693530302609753009921746535365269313486744774993425171932395982594167378312456498993700136857834985866286275141489847739726618357050088110851286062799077966351049956382218846097666219439551742799697958980305243508586085025350693028504179305668977678442848735889917496789225067839910071303690593272628535819230149575599060587868551112951851468562208330063289692450543972951298855231086310772669850241533832723162690171108928782766190382684174182668743640129371641821782931202029564967049097497971094222972202600429229122620702407808453431728352531647032946076342481114835844687447456245250035137351773299184917902165394951281985120730109506800928394647766500535445639080682249494738247318472733269086456154146417312438719560765207323865695536424384963938354683215033456365398214085811888359743719577100384457192886724267619368184831778763774822123042386971872713288207236043742410329754073758402410033155555130950180767109872939210569891260672686262804972219746713689218814254331048647001539319861325471943204534866678900679171267907053182016254333267839222674542018667416063015015604023224330836335431359187754670231994370191053278809254256884192817993306208588126022563373415719333059868692429472335472269741257464765008881976722822585896739355997064132584471701116319745940734301297402411356481881734785482385664171763027133039673488441065533303296812283797153718911229345192837226248597097735703818870742119887865929334633205085037524000107363547290150082333449219189085426552382892310388628795404255419536445015825649307050842182628351253444000525459035723217865706127372969783710962049376588108698353054319100298528960544321340522479005908291947275920371023713611655537164613593971387099510109620087485946496675906821371245811152460866301689696724565359011997811081403859382430908764087993069786620822185360236137918815970525163890836296148323039520885948702125687470247521209897555428826727280464562564865632547383881929810831944717064015659878161470528150031696760676787268176633940255457341834513729229559000709620998546791507535529198569248260265970457717602140333903775635604626524388734266087552098409284282309166785046809593874144055925044622193170860288414699108587142112705369970310967655127661159061162204800118013520360559334622775265280166867187264124230507465641194962386900137016998033198029070972919896640488835725271124921893888831759463267986260493668547884742261375818048374077704433728824119217305824885582500079603108605406504456878737654120403191351163367873458962577856614122454595172088655422482474881827506259091173856966354308215843303720959614188049297583940036537698469105403426577017669946178997941857286448535396739207290714198317286941713483975852197294106425332288075507230773921798956884030222992536950637740661543232888048908947604807434083203485607949363911676124683922883162379712962334938610571455995653919345440399519637004629689067127165596464632159059176910102056163085413678357852628839132919390456717996958162334707033666301191930866704526985287390633883401993853985475997157268346099738208538039554586568163661440574136511467523971476553975367932540337428610688030496133341367808944814037747766251054561177904300850650696307226133531182020234042232968974919427030962545374523460467984292723849479114762357180527879518451234858743494821083596984802161615320751303713784491607337305022359859002800425351073005721580983090117876819243859801601021544583728026988290541303318624782820452974349769905959680554936570783682161382595546554230699801172704045784441163124338616607337165069494136956309001684120480600555718461437625344837559393131333073747984446530044625935657562550424269750917527858262529279350658028153447974281733994591880052173729594599028764042989556478449733085138418284025485721113801805168866965024059221623532479749522226628823791980216609087070587133565808008749429794961764649991132613988795434621595834958667808784804678157699737593525947177125887454571115507009978177289176215191831168488285724808914654211898238513420370469727416751458952001538226878911647411897377330189358617001790229985386514653066096556086748102742936282471217060914003362177671169344303303844563550810985838883602323453661399165875335156370621030332280726661950420626712857409941158877053879803005859624067988569111316008507527650006423451904550491010836338577093764510291660653221407997904678292333752705805666203861973883022033519512781966365326966272831453364241218062630001671009479537046101585834503216247157070432935841274438326989265144376581555843435962996556196429239732634414509645652416414588954472936097025064210933776031944018600462427722014982909977292779135854463046491527584330017400494735051372842746781990247249739011296871775394861423570646532702686646781032686958664606829902101588874080758730184528944140977752513744665853684657331213895945304658843934864222720222752726851811683802705524353184709517155923073551653373906785295589375283679919350783368428319631788500003002127067915393212767711375106472625920397033834715170166768842775200453727994129464000698006280234450213527940913176605860296526155137912892957441732825753492733068620438373294499279699369622992355168140402124903087019941761290892908124534753063371459148432074858231160472842061909356010581235601701756277044030954515899443116920074170532808433577658111041783930256709302708377555087660917574523832859430602978835266461591771300090593601224888165440326516420355639626439966505854146017730145518089125292387821698416859692967021276955461844162967767563732293527419824998503211386737711815397920177834215950991838267195066223036542832941580688661678258922904471355771917876662866250486488756314574934976817417264472155421160027492973631514385909952714255388621624109183255988964244464110998060420348909094848942487531432410813950649153571537840999099504054413779434696208999673969866739270577351303203308037151139975175081477499176352495371904927672879359423822264383281081624626562797363859336993509938295621092880846407109697880217813835748263099918725363412865584181966732935547890195375057354280352358318085711547127417050792866312569396870169821358087892288890151562674286463666382247916695650605837782047590899056215329025982915272831374626688478699901340094835009825012369398250273550336625443517586203870185085611234722978303478170129271175665514804106500549516205289375078934111945509607465819017706196913139954148110095046112367072401813554280791207561736979203072609486533104699674037338779918945546106366472371596218856829140176847461571801522846753753437203363751781117127932516882742078758461879647072303474719531422253478443628926948583789510000217030647507174106258003271548839124722829955545291115905207083320770595633611545146351841015886606888899347195983210391400536084194913603455141586945167095874908636505744415994529070231329398100653962670621670682180595845863809151915996759514480259312937604280177716713894564391318727028000550515980187621597765886760691926248823873137874952615272736303983740258592156657356239184200818657043738636623095845977356286390977801440837492048507623101989321562560138529599849738317506245314549553900955051710821368141487716675652564522487069195337515562234109641952811912177477792789640252245196754091494215529986611139080250633438177952717384346977081175257717774910328854632757655351268668300644568152078771584354544920983025274036250982861444897515892991413994195842800752236738244089114756019530041331911587718719723511516490851092869986058466889883884554379495598008955472653277876133983244017256701311802457097165582331232039058706880109219349651395858334944950551454843958009412763544746971722132692088074118784630780452390464393707543098056890502276791729921680598314998594568798628798363696481393324708741466167538470955635894267600922908299809154477944586309251878463569815421508606552015759118370060842593067115688871035797353193237860106195105237512541745835051375937474748182066477096321400035761397775409718984352269894703042985045690213787090516695067601235388137913766197751366439891924996166327794246893002167673039136241777715096109802520945233557717571647538303145112248867027893827348350076875601636944903316309053935588468787282783870495655839841469529332229303551717624769806057818454304957723589866386155273469248424113146848338957416674123313069923517077298336780929660783377323354411170318415862970824425740787153133693586361014604115997250777191482960992301689413364729473862508937474689263170891007740410649035000387055314088219183133093524677582269457281483701717826815435630985203172049870153935035872286468400153211410435671931403189563214688127635648957799553480363541627800599096087225109802777862768827238056615420932506896424085751094271772109687732538288730796332122631657237175636700661343955541724638701189682470071165557670105169010567705357818711498176479599488888038451473495391919755899354949235967763164734119675061504887305171385682027282582834924360604325344103379686151610402874885575682924766651051662687043143634610093818567718830092424139449139267493581955436703147269657728678976790330972450920845128623509539351554117421017000839545123495739780509440164300580892604468722766890968786083960003240136086653426241086770653954652666084100418254621803358386921446126411249819418319829502793787254680086564068355919836472535848359411110608592116399541577371784881736618287386335100311112445202261703995944273250597686453740747931559399198496225752541526893523278762679185124726151267612375396816345136244306678105963012783016034932579150147246911235054132924102932586762773022035256788918043545767262209991317549565639361896886583055092980305513295016691853775351480870542632109720180597261813720792479752810896953358746581869022433694391689044642983179695781787961486544974891513944777773569115746705072857800005871638695954055295400618095368365379693614465672284745938965061352614817696527575177861134109066988487813542917118095289515532266464760225900457038961997603556498378606847887407795770804401736251734884195634026765932579250739877517321844225845144808476908492819046003742527184630071678000222016313189897327272537863672968257900116006136754257242576504033207841223334706638457810890512132009684115544316930823775766909705036851583563522392397372204273416675043227071345539324010276023478263534139712811642113340227225668206191093295536460814529770551581215951389328090528686200895643307512383505044421374396583212071502436704715822627845399062130272843920150331496617336377006085401207818362993414463399545353888244415388172364830165968809798738686274533273721113375611247844444330528541774051087549837179585541562318538088813201916577508411179230664627926619697412010310540242176543974628925092372582966945417947169352057513545811596866514961085843352918329016154694931698965082090641174149234464565954196021063485399100944957781057344938277115207081198623247834506860187992073501180967782083171721924242178401361768183625238050149432945508153117823362702186951511108906918978611462611748156494668534843274078330364631002458409885235319143642167593021274103515701347883311744992184983932667197875472129254755814068291272238668668208294975029221260636894796473858772742549188891226225286670433139313429199316387697185640663224540338279727388613719526361949801748777579483289608011177221490243076473724810987042204087358888801260026629642015153744720385274389130403417089398561468247133055286278850453665895693451757330278461637791895381979565040956110320042776016269882403327549968317004479247619677137304451529917147035627788606522685975382764174991800152193559851634879641741666069880942625360919154070938321948110482064381709863153278785486829404192114649857111005276254691695906176053582696668406819969797206327126834430250494213540716185309061001234573038976740935744988045333121564558453369254622850959178229703090144713666339306614358361488313976503499307757389810698598857811788568822353749266696630459767674010533988171827161630033943605251971386248702948055319041856566454466498196807756169563195693065990494531919292935473348537263286278834319099904798361441446779716382173786381765329580298169936164793861630965408554421649130925322012179175588756215417828736876681099062285533198659000624140838820414252912072877729445908307104084604361867777078464678333465302650974329916309416748669315069364857655215759833824573002775740201222054232142772891637129602280967434787803721425114089559452967730080130313060115114804120892020377811289495534185455770029656274337362691807782737523116328861114549359595085095320595773529749879523336446870714618084191190987673199851148325929371756642015523568403542764875031619880790509412229792568651811647307475136273546109888019741366369856747883891651470684683396469834902123565698570277266288867673110625292520483469110329986771208408889172363874990262948491269762118974303222178593369009334114880585813748359773802491903931346367827009610980151788098948330387853014450343701356509530997469846796111680332209203904316319368284780194303822687308797986687796242923181697486218985058759519351815497621105183434474754044973646200918659469816638143221324487439750195600788580735258580674305888598637753940904624963508444105751325900204596007904614523188779379300671656022529944931665540808844519166997638476978823822766410312168976943843820956755184728828446896524595554943195701579976077424300793199319393675162605126237078956645691238369709755915661328146403700607523240571900241786513768479252843105596040889658716272770625509219444595089600656195596551151316508203020974227968550107115896387865281704998430552274018862847836147765102623422444025621527154355107997247905341914451950785633483255251134828633962083573662513234873109413080928905563370098318581673669075924181516763066347003855730525993843195649439194266232134228968167930889866907793967220869526645185446903622895048508660417079194800876467002927530423768875886160466644223453552094718724259897540530704362615114855968766884425013691094901906686106195660727460421734086129880885530937499217982479682690705113916225236771384083250788675913691464639744354154493127835288411428704438516724423050137034686330797719746946954586505945035774953146153941739984316453058326806587180986090241677366732124473972788690076166038990704761742527751522121027169455883274887661446256461335063636086234255145692466131355812593179206170037000911580752052611993586151643588950245470927499316726235341230400760485183584109030676830713555078673797610912740728605303117528571042784226653796082583100715270392579077861220458857081760544827141017770634924107040626895326214171081331479899005874831381089689254641419211517947340206990072083392214223786765896017995312620779014492950522060432613992206449837834394422854433935685383716808121632886710735976407423495197208093392288550349828119954847605248110871732001384885068431937211639605682057557992678086254702120631859640502917967582583754145797688866239461131698190926539321873430435578566269878519875442264464491278986975535076363516350511509295279352338865891258938252837237535903917684699661798738320249794432626935070085496165183946213573001980456714063403635839484135601337518135471380946486917973109907760997438102566608230278577328965617968047568062569509946223945044715985414233882786269175525488286197510071827976634952010518633368226154657835341236841174631041560220913053352505328949431591502360621991283949812683677271282871001934252717253410484082854188342761796560421046977383827472746082656076656570109924943749953103722195345074787838560736900948118883368573368712143399998258811943320658592826179352592015426492808087432286980860360223062089965954545594171969406266060161678403462620722160250932705444701955769437380155244116758177141759797097797643565757022904125089194024846740140299401932787694248766111790722462225890406718583123047974106221426797431526989034251113380902924672839957949038445184658587822786046360404226006828719883294397287800402246276380483453313946760156657243157727811031886753088637583428037895021463447856237944649376969429811364788319115933864038675647687368274956420918072885883550014384972958026618296396502856332878560109332221166872401090028649854041840139620632563719707208124187891176711415402525465216995664021213569102010065710492069978818415725608493666409367888908049923095269827747110513343329455622213121257026723799818833685019299647077506265640388807741310471983166108655147836326269978027063761726741948743987772569527989908514577085115586405445849074165488693037684508457439148637726414169790615595396185071247537388486627215581047366174993268891932838386451606640530183040917109181977537018600193317846892576004180644493888680968431683584509973572635049974245384530251628331075251848749263892915711665149084021168952171260248646124966057403318066420007148392686075099223669697751981186107622460671757935097657387558084335513712993714410646302385015451303618623447808861293704028196512549251163629739672270825014464553652845132753095415435074287176043896632227627192212385008447391433783381644850884109851230562495556481419250195097828521423391178361661700127625246796944133516449249196615683561167963546726289504029740303560517016800290771523502034697069280564219914205017510230146487504359907411576097662130187494348247386447483510005332591184542241006256970127300341889119176803608636389005721993170409348005578298774746040144586206687926268344935341066907234589266199586248578774199830983499786263218944502422078953954447941197201854327055391194973932661635753857284939255583339604148449437332643949121026715727933648198269695510990879671756139900464820068482850391761206426099937000311065908929776058133644559489052877460705407159235557505645642345325262735422761774521189113454202634508975248008132994153745679906862170924723985247657653379554223604540923453804606035521661536187906639216068013624315039506931687064873770144813818808930471280941568534213115184545787779779867259674253406858288888046602347087726055956761481056570910617207574886960008671703394116404073051199593698499532467755845563341844075476982484618523231666242668987163694793015964927771471238018452664918733932861293556573878485359249929624605793764865053065889319927400601090137333334263114906796465478009878578101341051256457821921299927756487875394152419307584662532963233971540520101437717511583190778372105836802904622306846902471401871853228036660459711508117686298397898969064217345359663148128607617814014252325333379389542638349671224569733407110513807462682345980489914963925891102115868713187931799667264192068856927380635691064243662439626125888240679720610090172337603498848066731253721331751526745459827078849293900128117712442593080566788500903899990103255743253282387131583968909715976040729913471298124045313583194119872833076328574384513234958423566637580393763812262629603506659243337100523458045097636319952592549080244742353510995554467105202019792741038273759443719220030908772614979437120907608394050139372600202562438047213238227835815791336416562501424682173980349864789494618107859876946584405495006508903991545762627732388711346735711260706140764779545344999902372980363878225669543208591235318458503096852909559501447176542161847663289995858396524698279949216292382463871488745904558569531810298634518245627146181207335437819164723310823833075041887894710745862849941525752800380741385358928447476230025369935872770145347086083593505751384702296932053443646295564850605664861781644319681911502663141419831926343705028529161329875965608808329715791566917471983540211952918903826587653913922060625700745244994119067672479804566434384836505270199384239623095255188997985010486125762606230876724797001441143627532502221409359098225293699072853670939392621927422847608801457024233909636116366320603117580919760951965450356389405958955916968837286527220807743911486405426616795363992847301325528579191790524737923960981799300539140597560670118109468541707071805633025702276486022379559843834612270927418056795310395897538805101015268609559214715629611679652026468334955496300285964673337960816373242357787953358841200049461703366537590825046995895707444373218045268730508749907381807365309380921083800496569789963325582605178541033779767784167497654983730633765917104107007661131509434385717468692822693133781152102127076316867510065484183626167826848475055775600580369937598885623235522224314935052545932943228953059508519519395997585446551484846659301732969481660715748152648353961173296497886619452357670000263865514710082211618021511493512827193365733737339216852710939914639690570383419586206420781895877940217384048603148384505935833786410466258843978353221976038269233853648920281792275018341606611671325069224816311456245969213357453021016856177539698596211619664567878776905577097798030845426727627445225205611398086874944903129963599235758561149934889286947703715174648443974943309096118925306694324412775902469367503559839182713406543451911041863161948783389859906491508065798236851256356363699977730265800824125206967052751616222582372671391601683087906916074653323058634182831958442382908982808464620313391048533859283320671192901689795073220604236371010251713262442999098547695269358087373274211519146565063933494650583699438373833681065584548256473093171213488504246967956941490682464760557938593257614542004024476066848898538674234336251209886108585726279968674123050869185614520222944733272521154586545887547472891359913116373936656613142081500772005046515277237256844421207257863438931237820524941235421586422124045764091709711150940047707982218570293241455455754687333753292613543702320835582302349325536860266997687710976394411935365027214809550713421489749611583129518932944661348420199090446636741864576902699783554521615262661964014537857024708482661062302015071749952694387257740184821987130547675174530148220274952953356253367400795491919649771538109653225248675690323301535567482031592191687178785803671305497857063102169062764320251277957632282803783521117014133367399117638708514474696344072431231553081409384436968975352135188537358091447116470666679367830848088308903479179094099563149874659113790790079949896352796365356260854212650844028468173434969417653402177169133656609422905447794515792513223618962992485172440267424961623005796954521040978138712092122659312981324600119481709252490414501087425702617403106556579674150175648489218417557871581099121336884949988537700409118886327792788294586613788692870985690200836179789941034392205102725322215042871734442754398919072888679265088923885551410718962186502530526044642108794246226625363868388665839070655319505333762657978672170565749217485239953172533898829245995460113077513967663846412071252133921032581843588287164411107312521529771954533673273785084491535277585037011026050528849179766968667006482048875885370190696373923439780577947675130965036107232940122533952979561850092546295844347450610981394140010606409223588882399551403547196689200795139417891740530089722607918874974218524154405367198148395644228194119052443058920851519855508896707617022264073793187879176359735522103189089562163113183263127928390186563121462365371406681477153609903429530968714267455520688165767810595814808840379704086222407675065287546861689265448003254000044876313620743600615018151161322436988365799257472191559847756463406881293417728545788735848513702106194088603678653254415824746535389395440299786197411144472703092678124840894487725369373125082177140086369998815202318067521771530837348251097009011236954314967392585883961688436047178639969630919112884427913896804983368894131238313419044625144000495791899765767474387882924058411960523980311912887497563457553468125121514184442470376926757159944269334203891635089993193615177708409765202258504561531172548340109599602761216472012321035678410569297123388371476330657906947224024808974643848075391528013575796778648930349047816424784294945323496812731367860671923386189558733985123579303338263771020021167842443755684675672500840299203904203805777762724022394881248122242685059456159976018435033118150167894307051876624216295779934807532619931016032365558146087107786313076567331310934218049316058225063116223292648898361810782306044853674913291507740474145686629475027002645434437761383364145935530751687154364447220750922814785397935015680112954807912508765891987856425001719195874217929470775731300383176381959374937825498173837232041977398262691102360439024815566879386971726912215271794176541863689772291737880890834115515887577918772647626447995327193845105452792874334881318247315674731424162489205743798927902742774639928208777526315147638827829909752106295182826079760480660850910070019282337516800597690132369874267060797949922716853772572039168207061919817453594427312074340679487069262330568203540126778321085880679521055758748704191380165470875734131190859769772942769968983283387316033185414805243817596840945948992150559279410976025307251857237577519163309681669068549971367067089457640002137371772732868895700268455533531902836188180313183962054991080650506366387561440013852173108983338172618772031293128520628540226690777979988700867983159054960528103644341934501133599144206060707217900721091179426925256731541697065109421715179301627980380962620949465707670500242819045049191017176748475337546051842316628336585459578579442555403623351191675399378457074530937377181073496880988962100497660385936002918091537754808320264598724399820331069931552473265200932775704994505977251348404239037199564825704588247559330901346376273008506023877142992178550290394453861589627104283325071556566674393235595067908708780567338460830655231954414912887107608541878006742772274450254634669230563997807666240514349376782052075258345211335717405923658423222664348629221614438369896741913325073554916501896017537843081083376642470395669698489572657132689167752194495874331446975153853065090362733562054577989067848062863337398807818732864660320152829397385547626422190970046937337419677093158030023388336427806358620410781937560594536521220649146951524024581087376621132556611000581786661922827539032300381791295162695766887781962627726505820163026488098122199683138199971012107061010225577151634563061581672660007394494596289114078746073173707122696421451583959849388193920810203217773968577134108257338060607852601800311205683396973878438433852908094480057295027928823935978943192769694878940444374736838790609826757597183893230187701548474270261989349595283297406482693140114081392214414691172162121474473981583033412082994976848398554592015851442012317509631975521657502393783064596509083862292490799517924062406054260854103636144556690605527219525817692161117864581574308608631711862376734026113289467132079577298141109706090451004621197343589400114585795648361437353334472433499238313626150360104691545892877921726221388058921416325634798708869925999185293744855786709951349604884027694809029407251279551554948369202958659284944312756618592768137429962549348955102747386874078489621018134102366307470627739509028814135616645022932508731788134097212912323313003365416856658153449512230764850592521578747069163390954014016373123084701462195330712008860077472432688256285774526615162067523514787761687081596851122883168692904871396200502785239155592438500393239733578327531791178795440139787976844881945034348725758152273429314356961338989657477657613301561638488425870930072299192957131112020204836123134526927819861538245301795812795593265149659813943512862915068462040688126449886766629384607848108635903492614310596385842138959191597166016665792301887360175084641858802362796263551038424238653885146839505138851540518123751996125387037191084340163949912442068238497931101897206725761044991312838113399989392096679561960287188430080779734755074920464572761475350906703753067830033242711476664103571001126473334535180452237491715922830503399254364490823230471456893402259629160303249882420731872647911384142881317020186994662834420704411325321450115859525754577410901171568202397434317401762040871316906252681221132874319680745686156320928545510896239493374058012045333059229798785901949049466472346218522780593399921850427683092299244502854967913874693793562986741488194717353696111506541996832366490922637525939565009159088116678147317980367567578850169265350858512556777935437608766645932310904599562222364090384007935324658418982353203758945060832037611423040294553275476332352579999173977023831300752774868802309396232932078547843903641013652023723523719429455727692816717460523059032898132343289050604233430108749505302197586253069771272979674014835482011584097528555212373688414715213461130115628210160123388395376426207603679397238554665187464397138123281018829344218831745925087934145215044560605945104874438671192636448415883154089031982453757446597024687861230215419406182256256303892549079853587736456324279603968920949801014295688719310544425605440346749377404703181068031965379839047342299492254075244332435428471436998500845767634259814297175353412157122283301332918595406570716552358962581506940061896286462267096046507632546877523762707393118774811122532636396286286763769203573463429161068122001609895471648794081263426329871005912874384395085573065428840084769927647044822034232262686833399320698949522285041619765925999044220516732731358316063111110425889047727499335108908311822594241198665877223405208822368464926427295316453363543905051683582802936548083786874128083345200170397590964811149094626281978290412161225002247430648027892175621007087817465874360105837811816613824068114897600623184665929655302090081179488785273385120483800881391773938392021417141472965003794620302556676690686256405061701432935140379131196182863144952343578758675279385205938717757942037426950692172783906966739861185542077623996328676611632387422105622054191746017803020581701665993216136956786554772578758446627073147827325095542374703431167635941418172329707279496223615185894024070480858756356116085224317133881675409075918386473779499377507989526766074811293675392499439293883137524281436777206091556053969530954943084342311802363357405273797112122345106054852701009621212517613796528423644942790063042934528029404326627421149466569226108874256421639685261118587345486801270164707960949425777266332168359243655897871941490288649661237920693859467351192145626880454738158669810760160963081131239623559325482525398613647860540171146077537690471455314120312722553355211946080627082980585436007596932187424823192427212493618030919806676661054668153067193009834407042588308331421384929126021068345056897151627204439248844950572780899046763416533509573024176507467311269026763294223102877671933541348109460768271220343201249431889696677735691692952316104243040255487654604084173756604144264338509255759929710954424254111593837958042771099721973982561083024800751002899519463830951687613740662347952365936977728122556794032418931878645829686469878656083972528270139301331813435195022519486345981501107905160675770381899867513124211188760906102434093828839167540732071341101737462447885174341701279858101964059037010685496332105857079400950793979603107941639617206496017587991121608519834482040833767733926873092453246446006556269679450953809314843108489221948324151044897217151133335347783325752304408611922665645935191305621609163760365049473847895735870858012770909758924553019271617561578999589809891752554941925405384865123194493859308995034002087247345330567930826576954133097498896958889454843302912603137019367696746292290562984126449867711000766592906050857281256447562576389362543230934192884803632408490737237445592239802215611211401610518120151028693063746920033195475460792344176168638343164456300634269899265785060595397585212665557257984812939704925941269768786350950368471284796494891469731117748634555544099715204870715660784306897230600630778041231450128260162439950803543411209919457220424296827088538463834248034936571896663718063534494684338292345922831299712925134844363446922221749744633658688918288962025125997076814004245715122311197032794168101958589885656692261961501246748825577509105311976120103321744758217061321343645598152185105345131942452735055788750916224193879541164110650657745840928232125179985306960502984246444951245023327760208827775599930046971853618807911725510206738381635091794256454649514834917030360275066854892332356725852191616047155403592565600108934508863222985277301445035913435313255319927909510426835038714901084310482336976836674565001857700489210319752674503827123224779947619156579320067713326430152198751257969631118357916456766608717274198220642971064532510277279743437598547097154722740119337739942090261247546204965653629610151666121574156924276594832033045239237236493009694349597310677389954235245122425872369877970087902025651565816921635693672804401629627038986375111785268216976994220016932058967560107582966513921990455938498836209303594815864610184744395002955984740257184998386679465625881971479249068586178878234850646742636164671836408466388196296177488223303232084163673754707120746847390997301189234450085546028186639460890543852221962000828459695341068199063155922928796554683360100393852808495847031837002452959930180367841522957366645184681540595036210500963245160745192567450329748432163820580140125188158347277411212696327294326667254989624554246624312797735056016045266387632067528682850908785295124135604801235343176639214233659396980243714513095168567724965274003295014167819393634744340861340833301774831166192349294351758483186773327947749146568354078573248784963189125749145062575043795741342478072573439561484329489609150745822612046593018401546112159385777660973259486999162788021537795413904021969657436507699626285658336190615117355548114764863014178053582477029774636935647952151374874352027937912537061883329489113906866140955257842890298573013456338393993940676704349338163961829239649510128657584417282995612647151982814144315204069267831346719751964955499056380640306459692660042511382276277904834583616765072202120674101723538321321605219837983486347123849166636417792166602466797648593283581010572518547862403234127424599026248819460987251592018358712318911624164491893778306977992757471271175145531254388321557537096003341688325699379563043132182461977606347174483721933354081011636676023562015689852080367805379844039087413191353468970298113053387944478553345448104224556099864232371392246802590668298385051835072512888608010633214948459191322555144817047684922511053166566785156674755282793383240352158399150039188675816365370973306248807109835169430495358124550229452501835568773356617711870956526869101442340649011501948710039798956858856071742826407695140797966884245616064131845824504279687547974885063862565296456826584953974549371451487938716953105308677745866298882739777244926621411001245373352803057074114288131186460578181886761193243779459843883439431183118881540173984188590354338034467447747694834841824082911443100007965443192998212567579049079652626492077915690864507808092608245466576900902731831716501327132053874413814920535329680058570223199030576158944497859885947492178950091162247970748678825724413135606411816387010889239195062353542017682362713677153057017680501845567279585344766148143965267505912545991488333480646481602875673170695706657278305864208761013835560361759393408987945219143977520983989536651285273628312602991952748311372945209134907970455749737266573998710294586651424728703153489516266202322954535036616959994539302149446372470888202950723579792335745998682825295481868751033539255392239945111396947817004805500947690551465831355738535218480239365075151726309276597114495889952380184114431259205912114606352333763033121857509544422148678651327721019573816326835052903433310761805695595982866893801055207939878291941575943955245467114062842749709229087285454723260271379519697891013758043532173796630417614822658428293698741133958892083284534144121266389699876239528908203644418039363806974536025728554908826582652352232785813833867617978356360029809964945968830553174509894856062637435897794182352293961634341391734144866877417727285692638462909016719706058683251937936828702750390823287978716519556144177303853069634594309543789285451131916361270801586923498921022254092217143561534808133361758543778942791756998100849380173621994169116168791092618743988998054500743631508256895328623169330053317416447455957375247070098168517667238990724441109835310075700871381822226837455271314655774143066836825809990857225119236782273720372181908350999859675350807320773454803757637589623723765390964768180334634966368405779544213481749341213183824692127397958001205994263577143188455175687700734182015189075954584958086336020559221501659501585383393777606560542298493223157507139629694152172810192643581096025342777387722585525925562382504177482297108609628177818930363599646816387706814411225533531611346089621943470302117588306374045897408106663652236620558608710021158337173715726996842847278771849896600332479156952229853680723180482588378517696308225618877380992471990226603812864636914031767162821434009463881898291202634271286634023383231184139519121143818310418011635830778278691056587485812093192056403103583453967640346320266017896823894095563341517883937159991541663701675127213306482805247634241879432909974566000548043286642618709574404196199794018797037865502355296787587195728636083696541040200166676957329035414675459090626294973903972909019184424463602145095799471660910216567281118566975431294606519276815611373619793922249331876231301536782613579127274997275152023054700521711326470982757577510558680070596971985952951815422966691709473158562216725084179093018478262148771561737925945828580779126529591939598088685635289695945245915548808381759238823511343812846600698253673241971158723841107089716701516591156291538515224793190004115343440379136060488217943017565671580556211056834143639138183918992814534687885048668241991754392280255073194816830666505703995784590407766433822795106394854241435082947250993782088759880348749356697605047160983180550961069197169573059535239207617637702792357015935665479592575100767780142302591029204732148410575961539369825851687912969510503561094779234890455567922772486186345982389603150642417596613866972628939068437030351976706397857278530751076417110925536043700627108839061875033251911553119858213901716814805125009902252485387635169078783840934049620162528444008496972367023987123693358448400661520737221703410451100742065885841525185469412525670317563808049185794745493784534041464157152447074096101932711812917384477532385827297983197987812441581501862916957785077249084694827351797061152353496646310204785267308417023490064032014558892604406849138529083757711759161867807799884593176637797037732677226841267886872446697234206405211939742592995402081340705812377098210213615930463073291521064162628188451246724066486934426623054273691725479215013245751895101863070622743935010866871043740970217514612421469984187725134775152887617320105925405249251277520383291748642234365595630533344772388649245707057219159886164625471561751855896060920952155574050780527616831128516777816338693416442561511192407316676880928202184106081455784431692790127942822497663979743927759699456107373676396220260223694447436497876185662333372868817765434114644434509320081850295875764743796112880863567828987100356503835245716976288554547929934996556176343244373304822147992081671742279173709127224750540764291097164119000277296954327099780482402368274316682318375978216642909193811028995780702859309006326188323163753426625051298125938127797600143048127925390837100582419399449604355896544258886045191191596940620113643501024556110729936654873319428740619897623413385001794928491695689140595891907470834174429759928173407398550763578212313934735585787482741961589302952254025942180807461998903324578928184338072373033232278668679508486319235570538527681694980387931499340730990011745907750475305434069317205807868678900708145586961112685086731071770736148594163447856766342890795477272584291278776656454528990405993672838850088801627048532169727013923596865162105584376532047376304747130131757564045664738979245480078148030157434412497980135338247176104498325993519733195778724895348239621335040082324391140241730936209013983302438337257400507314436061783008251336947314041067242749214225236334066537182858414477147642629075986567230472355169651120760372610604398802365660901587438726668207032226287183442358760344690831047087351264722116135523188252045751285930940048113546785818130675210885341294599132365376280490307062748404038642526441700495676588145598433730169344832843027830617231592178461343717237983845516893434880703612366153773936062182081810191585995360952484635857304548472062193828708048587778447101228736718581305477285666421034732120825985334466028746814165532265683973647814722444406817167650073139888484409199350588994205668878836925312940341972043552557882647753120662793798796013823368405552863599610512686265117688656959431318433810902842571479712125789340829053124468601705843329036863776817836101528837132983222361645025913447923305228082676486735278499037930092967729265034062701583276990723884246535595217740860922159696170156655184868779861752577379010797034629790933442989016210879381736755706248238045557235049640047041923421122457116260670951200631789243538629933914281215463708060584996721315665714569593586954107957951286188880590015990194611621238224917049734740187293387686014279851893235898218652323787287201111586393188699415804461472050482499873136175851797480524965138023089812358444367548070493057398381495535790918108636819642507896335355386191665898285268397449075138338318982174008781420649334802958346337151993657400269998536474888075564508118869907086783284453264380748971072242627534667021769566012046346209436786004032621533683552575934949735205957851763963604481409129037846960269184322693515337875346931970122297561402100709230319187895039207304988464826996307278535346978829277855261489753149670292301876789487864771150093809340825663427353862282784085143653487813519650851595986199305577266964843669380785583003855808818759435770528902540144762003919197669082608339018985613245514336622409163846357372572677944112449318134790320200602495573384050852059382525493510598484336137073884248758056155458997613516395935598573491029950078871523654433849620675277783954336625126859292402877568272375099543507461649650858693518688343850198375312093343919229463620812419057750705342758010297927979127985426469205886433624504203704026714711380020592994132996942089111684527505720927839183245459698296873517999072644999310124899988397015426515442912751111626305245688950730079133248259041162592190225376933425456518641505436791070680019344496829207538596590525368447106640251576257747871768130855833053039604901379899633994637144654659419285965558453445961128943935024587702481777487886994556365279045711134290084330867238925705313513462429018814082975084586560962677937225049003442536442631469825370174892225926692886872248773364956245412047911953110471707074531617224588897452926251510114995589075652928335574366191027876997352948794611866775684157653746784247901371533975957311736838806759576848891350182966793749059859036958465422270863739013159281319103373458413341756603168383399588220192970513363368503553637115704019873428443638995840826884683637510883279890356969364888516809793777340015720127832866499292545757514069291244951441484390722804044063071712519080790914388618843206305265582610716126341773404193936897621391450072089043037623633099743307897968678805226968996160681783272417960441894516835695618822056751915541619156318354099231763948698963328675250632825179599869812805555046842780819150461112603682171012196088705601355043589006503268652836088683885820970592745972797705164504466475624757099879997076280565901026900373671774747540902016653753255440087443329529933815863000536280187951163366358638637590693175550267095323501379535543271875674830486202125806602227807191011455004757110213850003087100592908573344579231617064793448442288249828214518376582161383469899841603183324101468801808059448641792127006348247698324188452541900658644571121233283052010971352220326109923423699696185471181389557258550911157529415001132510381895738371608765930114058597392751324346275432326288594176243682021514687368537601937574719259501928475714871657427356355905423114569041699617685156380718062942902327316007960923922450224270082126243583911284972511958206000224759626528224795034379097724797303214662490434265643640812845058499447028511920626497870219492227143587170031507715098399219317175997445921789947582621046660755104278299309380134628790306915741643664131975174727026098475388879738033706182242016399283888689054761812601970499377345588833360422945077372921855800741337422207332544167969777671246194203439603983817182014686735226104213530033619954088436984196784393059530077009619221392118417275342223580991001280714045486328978670582602590885253411077978852216166141307651376343485507619010217819959349869525045299197474304435878454596399655174835384294829517167121626992950845975988222457126378500301237104354270188552378316226194781439413081931592693973274816902176122741706635996714113962652033636308814443228447876618073775093683786938252820386191598632914776089441158515275855693641422553527823541455201520350184183009429237687763163744672166493943194693519061173933103170395246860840352613566819365878936037818913051221303933398149703160102352957132304415598439915486358419158887987803244574098795566031512834604965773564192616335046601940080679832983882429395768950485618185703377353232761430968055462800643019749168193984357928380899310137329114412546549103642464216039634540399789695391361093858016785883962674454791219616757983916173943067793181978272177854764013904112231662121369307240006044738949919844191765558592623001715019415268165508963034647621900359474978371901004362095075320633592788166056630483978010574585889031311687173580713264222503874075952675920617206926179684719440606223869575910376322408709831640720338576391968113064809958967698761977633667111120782608397121850966862396438972082958434328358325478957602334229495006066155217275760943465560161883639538428098616458420314312546869450051535894123973609457543879246886568819147362426811766589530208554020568224431219222559976725859792223709540273811687899149635424308301665680057260843022285176938189507931716968389334733436939406471326392702603977900218227918713836779632266280691848364523814769226832507251362667191867693765018648991232409137083849688565673003664607724759927459359504580502763965694701850446273075744453563239629141419501118706606612700122366166346000111245134271326551328899037040440928776186839442124575489741080635568882717821932674982701088546349639109191897663766678465579721881008381155044674467764344755994409288817224531464828867471494065668757607257179580072898645033200769005219929010074832958482145620544565071166001508953685822475601705549649735149836200883895911004725260450428776113439187231565880457826582441036185500307334610276518460118850298874610066354867078248432174508978503187848033733758731190653192582150906036319906106350702743270179254566263776073300909829139161891302294180771280368576631161523474786585863771539617790714123866058939458267754852543838851856304394068701124524348247066428011928297521346359190882505210000523871717917208884562084220706282493233848845247229295656851041786635995251335417653493377420513381061349339337705718669398941977198364418381773920161125944307380091314193449215736589635193576672166329919790695040689249745777734704474769967770790878699528091561567959078161599261164278342111153016048372137382996085658401293677461266752920290462415495894541630675562619503206031540628479287435528373870421131275154359752116403014349679740484271377288912710467211538903805290270169090832483358262940241227305141595373776350819451285493712248634527594681032076472339112403215336846510162210946368986713948233204499803278918368582754085785150416637305626217310230284103953269724811617591215523307331625753090759565168262884820511094106610495948534201796831770963334199058925252402786283357763792510711603683946278562152055141232545085434693392480063568759397791996824330458165784744086084200703432844439972644863561108051931409464796726188981997532593528032041209550571501008642715283574755155182868573845813415292130404918512691522373332528470073530052745711024813615607206423243555836919909817092463591254442376478549406269659809029324256641293344629909387887292446848388064159234709250720545214736241418964944445608489211413513221689441060822634033209649754547586784292800898921592182523143806909773279868688861531992847431960853230610183500790882900911799794362365228519803677757694551580765210657234829075631416116549453807409753083318357848964621156010456955148654222711955924807943321191622683880194775138146418628106757392888514704253722032391760426247984767289569097218550874123482613654136945304367764730410773869302208395983319518700466998600364360331306554211866546882564820247185767205049364734293194313431606092710471297292031694996433108493880201406702039989011212501222139208641621975043218330717976467023211148363850302039687515398278193792157029800561136490726711563559002250662673968489533056094685062258782838880647987467756940080395630683999676417815726254023991551787953655973561192044638700774769226055987293143765464491787221798012386013687621504775018625375030945363983803372656357683556745058562754681220025902254306462681971373973947799796358030733049635822181239758673734174017890850084090657216348395599189134694227872163301021228974336526490701614920773217007921516459647358807265033237348680319622693290118707365376444403927247108023884280083264536904405741054378434498109195032122902726373949648952814368796251243012438893337056836046449210648597309018586815890640201722564978197320273378141412001541061868801620520209540462906350803034584989624958292564525155387200306991290902349976341088606237100742126680971738595854610927863843035235678955510776149843765079925193514431520545001562561568091868904048486199816358506844063749988677316453365529309867332662261686642767873885270849405572809011122554939138865078559119651738289157135489836278604703860341271068326304936147834620505176211620141761953532686202883648000294247935167537065601708726234710551165465026495362485388323609446499937816329301223910138258589355309258853344939170640837472536786728566505373026674407639986633471125177053286286830088489290411649831570350492245858255476958941469588667168072232393180885586835439740743060472372035181760850623462791361189153190701596327661340843614741957825713940300842582347937396650534220548707955743830266608797710167735425341807637187664771941133656215175501254814301667511074728432686187902037136957919833575915246163728368841839862582401191908293149411261775874484162639124425306928918270008902856577595240601575123260270402486620451695033613006797751459989192948842178426682400347868337954943498868329765614669332020801712533611655815044459785218092408489571253273048355717502810987227351038928062692909896254181602972150402621655705379330833180502212099299629758541293998293437526575096574140688236890200991642048990902200889431082218318148968361554430515188655941427104385165075777941343347879878245070020097018738280791288581820264885893626341409325812980960062329866119953983531686560345199469666417755801528051154399676989068131966056151567801594892049753074070583851048286517086321457119800325056214335975451007073172882672078773434505267145762844186314355699037441050957888891385802350961386666544744193142982319904859556126163985752016985146791084835714155730867748740008126995668886760870541694946796713886754115424333320340710480860947839660159231574234446134592512470772480769363414072916043169701094043289572154956890284382268083366725201166146300145218179690685680576858647636684150788436434470974347340279016033270022000196072063995355593092265485245768640074041013815429290697816616446855660427350348765963379498328034344570067527469053010447868619129802316953010597467206676723165943547201424090581466398256969478297055757368273252855313501922945325847701856679941774153394189220934298203281569903463531358083116782760887642453320450525246364395368144310721843992278991440717965955997715099364065869057550943249486742810543626983022399012139323639475526726907610283858285915206160455041571307351832031182889492697695815425319919153334902870712115327564227215803771824761717580877751269652285821200583528541953669877895676673195934633723129451362670329365732655812228450913083692389735747887504384171821445883272862952590834336495282544275166936498036217331432761987926386271619673544148021076794415418732293158741348693198442181257620475386487556640546176501506893448073089880985317167939902606613632882104111626757240102508673673847926582973405986231973810200869237710561071399654053129509801996520647239446524441533262560500515087661701487874326401317355898084318439082341294458012325625779239386916034839418167830244247050382332423972315552187198330207814922522825815007931657848486814567457988476305625782805052972976022159828978393592321967102074702752352442311560128399292112756305179872987363352593875451783804568361917971074295636880761286451246003190372726187523884358193887504578009219451559240352241866842115283630632909254380457254497399368814693301117391291144164094583760922040510548546313458991115396883863851898043260415364304571227647079687420929826146357846545822958963109526339132876371846393925745230242823727133353379387089374467892427078017861332908442084836644146144451346575077076381334511852362257660703891700021867039536764605161271394840484433445606619228778907105121485630355445751713587980231786518150494478463486390519014874556930722361731197269881572796528619400064758374566947042996638018300775959876837953209872301906935668413099463448905495732536722425141396727796327530920119430178647588137942145907424525047267689809236027318473250378793628952208894035753875941624372871508501489416135648091633148281965861103033010633275957165512480648074038495723945542628458283305039646452957538249539706830977475932564911640872669153868597597490056632334894918705488540996720342209915393599556433716282326260563895485929857559179018261370281075510999879223762984176055919588520595997029122288461742967950109637399309374619396037560313085874687762578696777379038420373432055656563172952571933465384344876402184395879018368965225379941710630538655852297943190927850264492701001482418095377184507297191743248683797269467457977362909985091371504840491464886753685883891628657958394445669357380091943862956629714603558497135850676777817928828047571899555722180221593021097717206638719744528939833778158608655691968407649185365085525033846204132802643491875356426597279071751565220896294971853762546327909980664749424703533502299776140231925409512441161959229072198624096201335798663515914848210988835160360940863962689646710990147259009050914459837297171053440452276308819233267302799095314232803754938666259631492297729761380016632602681799427153980976408107693530025900821778143946433156857198033485592944544914116847306023034733699533951352739676327900147491009504225381697974424346120108365105786759721420417787484834311918259421556036771667322637067849872222884487109140408018625884429343557058758125326906241425538254472274136059307462421005016821238587206682066341115383772328091437616971038471402088640883894962499043489012295639046221488009572531989439955804845081513822097162309429785150643280286150157802919223363169600170531764712229920443850097782524433227925249417840423445254544122513048091975996685104591444927855262661463969713526513987775393239470033942280876069325198956840469734394421618933685403866161477647687609513766495830671131887657189437734050436532019857104468102708085183152255740466054448069726694658053228924862198865916601937676925653156863393506157025966167793192261777725502788402084390429150601520208116150415872112894781471857156224415218006546120788403820407101928239667390417379540973346630687317455326177861148405394532100275576494823298681499758723659937849646771389024808013611045580796953142040555946341148037658966316316416055640293431497430202521613993656034808936350036398014035872282377735809954456753165626882892966517231895289033067850840826207630554855974587371927804933424430196016527180830966928626726302152120378307060978611379162048457746494858066615998282281038493318758306838328037823172030094144361191220718865779547094151387625440861779876912171963278799675960456644153915082859428434431019831059850118559174288420598579813278014643475752160540932014226991230242292579943647343834871011860297567319709098312409939679645984260882672120364734846799804478966015324212005614248911676901744148001270616397495850341680139060896384115894938825880273334735554479211288797884201449876045510135815801825494743153750943180510572213736575868248360153742649395333906862949780363537101022923261365650709452226825959459712978216768915615133026057655516544710709319049285632059191264827278665054515605005831027374446116280844723110712080397191556500115609890016364230891917334501086818321783189575565132969493371821375086553020657010098289955072730104038917578494975763736410039015434898255504716114389185735037172191453824189293684942233143009825687966171707737696202518213376786429061895134637996443435981238627592804413893311119220275691722964060772075779954697243105621423033938107686871039938354593708106483342515692300549171575263014394400533169122271544181569506158423368811597247145202660452680273326981876980190920491982940805466090371642333752173821155556966403464652426131968169594327249979896876584915667615761440707539651404627124107356535735113385280885503399948460284263338067807339550065928110609499188773744048075479642273157590872547966335947751637642403508427677911853286197906257383130367738992145670323935952946081210990203643350280823294786854774462461862087727883797660644935192653474862271354904976808726898760753491669627393724020001176452132321954296112263054824937913616894069708952652910149543537503182657108068691462057656824199023771963705973271147060019350250950468378128225059565190473960242434015364333829521099139020737541986527730877814901030063648767013825875692886086738205330730216996176750925085350501390502034341435166384666363880888844444713936999402491959952391734553743860302530365803376828576175940355148040011825373099029012757896640244076894484026555161002128805271786852658829891838601064960506193007329240993805256712038231370885833471692780387762741891840847285835289665696382039927895161394141467974478655739878078931594121852292215180862677453633551687583718741258368556159119142319338437771683677754250947968999985104698123459467369499318034781090540665345863950156909572480018414233793324072880880790083951283636346560812000097438547273949512621798499882177160504921503157525776020388621618043855723004274651032282319787674834688995406726341545709658177043685219606106978267807666154239140297044807151759562001706841394516727094382801460432365800247171714434709699092853476624281752813317218103158730791477156094056202418767057604071151149642134045995610471371185071134036874130724265546001293100385916441148212586221484437875317251150823239868613420514074897577061733358969595398499460603907242890888198421371042853924784014240396168081170630107838929685356117235058162652971851299853998730880820530443312299181709682440225387930208520383105285957668946029238202639732986119857945918700544863388689066323811361272191199767989246016232959981970690889748983952249504030461229583958134146178944657192771563145567227379356543200687616113755388913814275643667663473335218445883164464957936324383860570654827363012524699603913260515267980862107948302516341677841858160258710890751807615155104165716963362149332451779099683072669339427669377196666068106827982066571362358704872964442997524706937991044460720512664255978915505800203815585423692859383669335182899030117495785260574149721516483800010203586545936527616157465618268391553818989712424663434147667169801594557383959877127250291827496933973238925243814627801249344963117290450690850205918213226368141598928456110442181616740579196597826099496006245336203474515480226563426593331435363161713011914851287147777481377165646460049460389326393351855654480805053614838969348480774685073965676808958138447648404995547564208680164260679368822206691174293666000786235139023571113772239280947978088016801850979375181777309604519167516566309181308855450394721929264083107883695034432529071134346790142133471740393818117198183159246808668405912612481151304851192043001817622553004417891647158175825038184089888717401640890532300715323662213511012089437676381451641207790370428127196330417895270666658607783423010429078104358162054714960353112719282776067644391127602196852905157996196102926930990794388346987407959064422571542572909868774652791112128134101455126846905997396307814213432732549632608026436925671926776486047367042960643140492112476312404423144887342685302362159687003306352414453565229935509623429458204013304936949248884242594358913896152424873687982565382450369379781496399407990870458508696476827642869114686522094557712001033133675108953635586800855059736660770927938356706861760693775349281797029067845318487295051465934808557617951820865911966183739938694160082063530394248160277401668286081777807197534584681072635996562423051943759897768323557765696242689984119312132470989795487622674078355313260555114770565111439577717572368827886362760477412783411748307311551809699338973103047287999311590141984782042025739643604645186036098664570802230318787225686621556776295019282721112116855554277119716238858104110956331789447124037316210960779866615999597034075254713566631664260869577807837672630607171313467101546649834750496170870767980465916218758410908156763474347057332210801216746857093823120579547284747508654078692208574171428540705591302250789297078906411814914508840220859599687314884623575264884030067698401206360858499313650322977454607024643710018890359759981031550150585255820873694186209543637954538783903152503600840595647933662236008292701424755373492610345239499281513873589116685115363900948662452456555977613986421166624017841025761058636197847213742267874753177353925336859810288872894571061316172325985497341404613249780348309202774149476127878215350412515777569134076807036861752394559232876541527266345291914766793085829314856694307406362312553325823934181283756439381491004996143745186899034406015502924444025899034509290405506408620615155948835549615442602345444694235254933438135951284087207058263299935982521387805054471776620431026091759997813682945215906262700192014702847225977941825065267092904194148870301984229435622980867592404683720241056959282137424268842265322921678901114937606038580179204705572171141423926267845694071227255905693318792709595232471623124008445570254591803517766510518632680108186304783658216371784776167609194947348249419828481976136777386459837211239469363486891343526443295029414455455888108760821280319445205283760775634460995787471577203138365773407967594355556261748756832319338301267287460735053994551319151951847319701870519095677665138486220273546203944808017098639704306208530330772439586832374322162978783398699422652570002496572161318598093731376328041729075918157868199204980774265494544033173894193564451331717909016835758935602861852314144305090078727510503154405735936301525265811452927295817748100134268107213151532483643404314792818079290793066785198918035796565462323259957384067827032437106266487003190255186434562664874974853761312502026325171218124109238468198986850306974032323787096093782442803369442134978513923740769880834717501027942118059170376972151130194861543644513410773983178547398731333687285116317265033418435251239592455810848446568490556665772380445826105751879957754258283807625445572793890295123141331337104217600833379674142572268834630200136812852105794549944825805603803547813422362883238367535780984942710198980775913410678824639173744343821762695213280181638760041657987998695501587048741397460666638387896804145454385587783959066104531774497468226557035747597541729699154234714666099025868348227518210413639716408058416744543374760332857074886860409048802789383234300288452168968262104165398803260094047599976124650610492224529154212195944764869552471504619434234482057607713212740041368743225301298978642888571633055535275315815790198876568649673015538625576305536097341078154197503617850707614521378446908437929039929118158616660184905203936569379466384643348226343542855320657335440483220142467847420805923326039383225304078563695155186223197035124629329956098076302933242527863078783811310695392021517271828549626984421809151671700901233283789204463461870990414430894711786807756458950148872718795777629337973670788720079992466570256056118564788060318316902961139025744339107786950068894321704253475007377563427715958168990486508382517026542686643414582701529214338933414646160891148110737843371531067451147820787877689091338012053479046418740476481475829354916431836959132127090031976709082175277874106019588633305349228400177422809874672943232647935344031583985051002594039949580941679545342354102596973868202210835653574128133552221771140714650628230370382132119214359716661320930208417555943576114139599969451814690470837140061006251842996094343325452922101251739614668658801661725165879961789126620729427037814957379770636730694113283778035805657172136929108288018023687247782665725457755830417676711284209479862815292649857391992234937125453704588428918774067806503082081307089806456637920706040043555573383732582047450986529529974215956305024637566516912074289964110996206319342952545217794691143010360926547707627426760796220000845542249705742701266522896386266804069256956087492818004054312317976216851931733786684743687543683928948583151505465012115267286576571336537455903383569312594800257249215702755334943130070939820301604785089003903695609485737350806006479985380392998614471416218635629922022672767181514296609025578528049359325445594795786737851899423679119960819492955273343024890140908508388041158317439135725136250102429560288792821393619237728462433132523087246351693405064132157932218650744560714958580853567043430675817719728241739813656744554166963857323542631516828424429760869670966364435665397925438240956718304275804470153012992436994913565554810684285708867498547771383712644201601939836161593211152910459819237033702077137367362913734234288523446068656533926633984259666005103724501065085430318237953889929391101502268262821676365899573957957167845003998816463682765256095967379326417890466052811552000845190837395576703973174601683531803492128785518173287502005251099237773011990042597659711495564086991449763422819254154061243691888824344421209326815846878080330408130722894346558080726640804922724055583842812260989035793625147501869993571326981947782822022343667264526415342364156169570315988247824804466566445299982505509317122261968140830917680695716944196519514076962699553650500443004454173416912406142748074676129399129122055313952123601756798394472256306398556275923499874603073336049301273829536191650317464341436748761747765535065917746362917208732339140342774720365173135289849690112480361048827088659635969633011276201383832574550293141238395298677045270144255957616384812297888616087741215390925399313652272436760502515232056509799302379844952232226671410728575218276820366305739597553219352933280986081297503859249660682272246906858265289764266553709313001977171286326614045594391218771599695366004759628147614507032547748341414023277022193256394163884652486196386715212117734300937117223387091165096400632248456090630545231165074920187010078054305672358213192065279749844588959567481050338596947605305683645886825793011924053422895376033201930465463152322261972742611652338055129558372429934706392640151241779381683351102586202780782913650484917562416156157081575749105820506472800580522312013997132358726491738666762306637553559296765312272874781219388270551702237487130506840897801516390720387527271714952482542875474741841400728997972367606391077484159134926965667502830911275836466434539862224980570355463095181169544799290834303929455458553398038378208778219142980419548789457960777690846341162320463243515133442453767815174762651129591355549712898376981767375603038852972704598004668676354399280836589079989107843216689851850384279968100607877295134403887882716298552263583970189988564241739308787149840756634293976229021283491214423957449859064083126054477340328058636732556172061688783548925708303601678041758178438715039511516266547181633128658268432845972770954224010443953755607763613639765555383052547345704341677024297539411459920026424629302264568532343068115847049992930093154128848935646016260390891426328674568331767009701208629063979329174910755779656973889324997137447985869854432064626722077428472890205297166535462678373638122932154661018471736502772342653113416477139087458626411653367094563555613968172983188878303823438597724479641293274520269287875899382885826227745721040161300285975479138984728305880996576164061617779541393733560136884476673169537299848938364814029894234442335580970500829176482383470994629691535091679600085553673783097056202939842722518595670898993476716443141318495925880444762481540061991694581353140596443696743709686643244926214672040983403565749118749285785049215532331305457071994388126708613177760945845327562563082549665944935745009027429734602479602151594957552623824937314010328509805044548562080710562434763925365005837739010176825634378966625547169996118110717650206838393733584909253538169129794229639859184423625335573885619645943725031873493422057115755076699854378954459005629822983955610355883107224117445566066413991996275245173998698034778927301987511374539312791030242114644664405808051858628838587177553499954837491065709039786337337447986037286531028590052786450468168590887606302015524876397366037019726518771469532367287495035682233766998388545465265661573936642538634995487061983641904961318813587296792576343424682886681330513195439851024007578795987768107824025880906758447697637851972280905142105146779367748974483693210419129067953075507503165152249720940305141001264876863189137420366345075639528690536883527840764064002576875951411358872224574775668659568978874171387339419824359972507584753142100829861944709835017085193301904795776128049172038774656906802135030624133581355842501343774225110683614069107662979766153981459982253146627075588880301941311511216844104926730363035464171720118778325151984014865029399150041961931554424239407633455335812495010993098281655884887503619930438477720283618892553807317345474584038751426772015903209780926478925331847878179768366069855747872606109487391122210103195527557975846976395601716975556169562835250360538714085814075323625074690669926086686576795887119884401743745955064616315354296830086227162028625870632251132816276932405372792667627736120971608610997061292787435823532548907884394113165754251839757601592331874808904001918598038330177465011628720782385779069076593730922145345067096989969837886489974073957834999654034285347626526255493814022154471643580612657520116831299838586651114739523970963899933519585780851483860322096858657366334150228411927122316558766174875277680553049634997369005237349102693002370243962657243560646568644135073204275722399225691272493804487977071176081345568648859625640630114590643654203154574395486852159667448460814290584677826590018502603200879751071984546320312157036105139482236500352881267814198300616979341851034696466721715706022859870795650524534036128315872042647480757486949859032161215101816246384084821397178523972369404856786239646985538659534363079542336600834713290172647748263972221233646283209688572516858222938927826096482763298687345889852350086086389707264552032260158876869186461187711346521535224371677390095179471210280100080776628466297316295030323756682184189206342977691905405989683979598505273419283760486510265088933964477754544178505616584286492735580367309489722596267309987346074144400398992293853644312641544198622793705832586588401892719145785676305312675200783266524930285751794373315403028380594199304712845018811119563486848224086541569111496617676781405266400175895972751245006659120129233345840245644971017917656650687136479047213191350537244680816761773087868682286207578400025636264869464511126972327279134368468751561810190282432490476055197151349930265444711637077714932481406418324824766004998474982593777979625240254782406869438832296406616463500522708252229566819242118455468619452155972047325648532029953378386087848833512892726082209809726828429538321592522105296213882544141797628876076933052776317333406535163981932911257457333750179859009173797548858274789147888164578777771373686762714476262516774292419714771160178932483458930070848488322660550501098125826320106217938587881765627374818793996432995812653789688209123487658352806735578512121221750046880675138655282740671549584855265539574045176045630653210266823725400614619653819577299924541442583864472085003845485561119717804108569598299145172766976017598651055801285433236835127436632259541609232027021197663992573099024559086893752711428193300840842789750055171559232828726855260115037651390625880037564131710470566348611412362434222913672025456301471660431948417004258545905819715967537016151695537359297471936826168314735448147865094899772974259845320117548176142507142731828607415002047358785805532299983807949628615012010161945811738242775583798347049975207968439801565248762643218009178976889721818605787678619003515556156314953910591679105472631911190626192032689287698895070159744625272760735019935372638148589756191606913406558123689596160013434871332334693481037864169774644226100290899063689499347729537782168095994587910513779989651548825398724490735985138185384979314561719435945606512447987444733317485080276783271520539191780231232776559123563926253990522773333391500866269324358043721196138398692603420713908760194129395587202181701529602358564065130973854878392211232787013482769744344049238885545861174955554509954585790269551337242661372604918500810127034634577397588212260957259808762186813769734626638920682305857658342828873719912145477897205668425236281512980788147817331856594591667709796526673027503430374433486358229594556316277301222002439058201133910453430033714694700725751274934755929879486945720458836895751659900568240695514785514955648791600012982005259189653113410330183265949186560146897156793062119208940236392780428695457125984012692221961646720094469227769538106226834594901470332616697293236990990945716798076596599308758761926627736177055503313287168117987226012384302703472673704319648921271132969853483651169232979749740515325972151450504511883766886205220687764236167004111301478079672954947898533345734554583255561422783903910986736969018495781286136984637200645172915218270964580520119581007118615402927121700750907505072910843677951905629442224143549331321615673269067060705040032875504635069811228439285541686691007878934571048465408407340980252455694357676966127383406988559975786795617101322500608565314398167079782530410185830947264010722684192109704612074530281167057044375930221506994363628169183397115279626041781394593473306884841641254183820814620121741165263068714196398068963220637612984789432551913757366095961214448442869429236436030378332750171684602247200994985299142316162616662699916257721316136588389962060755217059968415979774293666296015233426908124039160042488397237875404575691009700079951520369676145006214038467370845943240246777674869862114766314211481049753477169833781983082716576545135362521619109659505806563670402261668137209254187905376957995380606428332593606034285531440760699760552361832849217993839721320073502973845922393507528161099598300213157120790699688119026973799463454286298449916646710490952932153811272215636109079538050027342704209771527245797055894199181804551504848886101164384949033977289763050167611312062534501512770629569471693635588603172113503234550578931681350132315106641880874779322337825913002269062423363627250760666496868425275694388483611065577609448260340193648155365608905307475334975271061858244613983386052817683501000259809864200508951320633177932762506962411237570766293229775052949494825358041834579704063929368042122147396791127921231731964872391875693701659078730929378175268020062530389333269402281713340774891797911937951995410046654856640387146288226710453436324770336776955489122836701334536767477195014827211689858411653401507423969399791049386518325210566419022431500617838240596432298104858113359096261986453917828392555713964593361670491154852648215399518532121683442900495081184057994465254811856336325032744386943836442883813016281556938749010144180875795001552503159294522976505612730881704973534102435541431508732269999547921541668931118015543069536697489356024567467169896330941523375687307107883895061654001049556182838468414309187683127689300766604514898069302929158474839227822001487164190303592471089894061277141790734131349277147818020477382396236465710601692970913241852026093682321061797128591256954758388945744123913671980603059793740248065039115934104256660918178661115050328489569336537523037034510905996915456830196956610335218077912532198944151759503072253616332810033639893864710059196901005443639639294529466025866191321855103833571175649417578992494077603986702378825995734178614543051711706199026439741666560013911220606156397137342354353364926567414765479131463747157359049117330488148843855020106590235967462432539892744375117634761952476732559173442407644706552982337346742640067334735330461787040735876228290336728499614925322805364642457558098107577856590593937199425348244594139550817683750426829841523812398837220595243276962557538584427211170928348650033468121625852312547686456249744248748265701434890151539102683599237443843106929626706206407798714074579847912657869299148700965687473563543938050673352607881627123470041015182436665638130236663567022088873830267638880416363314898747692936760387147104577447086908315107992672456372556927112852447615447823153342563998001991501996066142664055749260244531684793610024301666206786037254352834086175055157053076009576817410397448748328296337780433030442503133108002081141088837711179895916445498176122132791597515875090936974869058299495781150936116432469220352069346551702697703049549390121458499845003723443201788525138144607123562255160204138116191428872694761154548695235506841375919843104174475696680936682856305601483628373472513653863173188514047448166301305886773297963164714128805633650850160896317760383264313303809823706060090788688633073324922973614046024715240880975211741548972569425727550490366987600060536341183527451741646358692227566686605897954429262755428651763794000145440881884998477638879891203533186550963374946456696917298384483110085114958655291760611729528094763073603280563184290842818140252206470316466815913172116372624948183239936936027802948941394248629990948623464491154555087495636707800384530940760360929295889535396954998766493408190257693306644854628737597822436133900299162439354003545590173489105927546426127289564701286946380841354936549253828052645382566200888405159417433785661584104790234315313998113398445406066830739452538985382344928992703620268296691058877910720826971767861291804517375196631636930917101278241219252561729824699439721811832085979183906000842229800694131060232038987960379572918917454512939048637010601213256269560615837205132474453920419008489651414275733928526743817764222521408219388632571583469030564927411315764574955337624218128039230101659984276791779508186899065718904694773704854288085685345914342292190736837496638527606828078982583804277695593276557659989526650568854510458695747233153911074268458145825127123595422397886175729953785234472380958299244467773751183072816866457991612653018525262395636472964974492065001353803807135445734144235982222002154087548276502701384944019839126168720415805941260952895217034431997202729306024756785859897092043399043598482688412206374377253346604254301614634125119217154367360910305501698095411004167906596607908072605142191578190223031440586494264536235640896327781569367219615707917516876408857150155333847924026680626525938403075584360357554660720605352333350492635304058395363063404233054427406769816581673800612805145667390479534552714772238975647055886707376072713645468412036615919105551019422221412234587842650596109517855460440529300800071724483945720551593850073155893035130130276102821759248865189197722399416264297266391319784439868856749389594164539750115498349685300242281040160413922953859896371244251052368726145753457205386247581402845337287924641863228778729229986704079786961736503167159175555756906574311245872572945838739645403047258544663009645814270902682429076789324227538975031023727477278000719839879679158842530427661437682611659704314505380377164187504614041014685323261073418098396069032829394694297661511226882203418517723716447613087974346875306562461563949838138146667394734995832506946034998778188664031454703230480757823956308206669566908270934733730008366868048635679089295417805082739054280054979449165647766138361722899310255476942725924800772158180917254393645595117397814222731386918296222165713713301627422361071817573479549444807506971569777678476064565629353985799107971508212749316046858913639309020023345445627545045949485286135345601928094450614736516698023680638545973844986252733725243965154926510773973897946465328390774127135810007804548141275652542236764041810972641060061712146129583424835168868774863996286004780970572395895508636624168663868694722804704634678821418956361211290685909323360419987379394871189937823379553493077515086107068624279543099360310409611468886566665176124544661762193079004353229101267171333614562947855347662547231984514008781929446268833301738414785934953465677386137425717119210878023397751998718890060377852316837286149155672079982406805015708414474185441373852453095665296628923521466964272385541749136531147347963248922573638791879694723880641499032997715041266484380226422699622699085080637468388320284045370118821922745587474794277359084460369309353228272116868566284544150911406358358252664070440575476408665463985986489419941378952490052959007535902292535854730936489240306245172836994086758813153629925973108952063711974324324345950370140437282797257964056569449411765184137017236723362613239414460356739006274374412942528406452645310934526125273226614739411456300065583443308864066478416681172102482669634270385755991179440883686964997993997866061564741528941569461384584836784015603698525963186357719189917495519575385193589947686886584525324283093415131499093481593824037233185023970781393234413094971188193025334009473489093682147727032025548547107493606153941993019576229999593215179942383128024240687790480439913149451386616094168335005060169347912891669204504923441285853373226261382022265863633481400310025606016329161869947031498901051520284552802826579627518478868823632020651858773601134082433051825637779666934310730587097809295009687505624141227241610868026539118820111396884953169611370391085907283747908370638771966402386200539965908773680131493009775882383866353105753251286647511348061975550196289564465691890066910055578852849974757296171223587144066425409780025366689508078234577607903593897541607352163814140208758953418204247020852234790876051151908606667770644430648424657285668606343648140669349372613760103548498462572601241892032218492997791188758604284087689786002870451360517532790856397713883898142996753577171688455575436433636128464704855705457872123810114882226025160532843467826675204758534357653769511422957937171358996720552923433844615997507399352851398659730255591296906958743043193653410637846931719735315663049084467948851706929623790235295285239472319773012144851182495955488281764761548962129305089798395611261026282585550086720088063952756944695764280144022216593941680485152081994571264010197619978346559378339959276165476539425011421890703298080552769482257149182937006777221797852748019002283579702243555806611849608802228335286702551069101422692621786068496907030693743316966454442638722189589068264367292320770441171570736335662916778712141528204363975301866194579761407619927812354973859472767477840394939887336933014786051430003959210583966024523143052880666396961447513677124081035213881864823101483171680787998006954522594261695338686263371115152094460821356480888475053204818553225966539166665832236594397680322553040180205878406300901316229247297993923855328687031594398868093944520995821772164822843586349707920066721653089130784625971474278910079602129952268835685543650445278333741058760394688709763858767094930186470498338431997864535374550349528866689608576394222841613784945349415131587313404785372200348222434176934152670078421993541180346232220557550692406528733981198777300061860795582707866041445898883062870224421063697440317555461595052097308841668077835113034505695676154596211562863078842013173007328275832712336772626743478555006303608676708938511144642125979204018029739467740087985315297185462379533314304637699245218601230862303818473541071122156621385373349474725255474322311141103781532257494817929578259208727422030663868697262472552872183587252144425111823875805254041986315689518664686742305137771791820931341138682244182664335095444507814239416899030640060779357087497560507794183254031150849903849066142567173152331047668732863744801467460347073172385967561835894299625913416505173382535938480761442174225416766840486112779171718525627710601445076001642380190986539646550012666001318006765659526521000865158138306881184462362662920816753597188240936045865247307933077053816077820534428225131391670186901371784590239164173860481663147135740660892196032173638989300943181027614728134403430378298765773587076783224776081499715588645436541997020197091666098542838493894886182941516317841814925822805549560267427893178366176480880116361040093846316754210000639847483458489569650358636467769105626835302170314359748195679665576121507755561922211160259411685884630208936389157379275771989733061522462801561083316129868704879434736231491053496029276014019747016323494402560178828257074058747140152764589252828595851811218132973413008547892769183699156340967045419761963796281104374907035451395076433296209485207685383236434023292485073327774996169601018277003595209210480359933625789693182401725158342500989384704998818920717695095570233056342852496653785381786927693533991415347302022834602242558765298158520767221884836405370344932819010296171359640064935517879074043913801732501752555700609560829882261611699394137737159660773344492508224161233677142590066735030221435499299512638150642196030249888877850441296814473943232729245199863560108894400221498175666398830228812356787797218844328931643922207100002744668277524756140244168104658783742899762884849897254954985414751970211005214594404275261556984702458435816819945316209886512773596506969284365570922515219568461290127462045296186316141820316018159345954371272014736090220497826448520940984204962332784445471677447338820652560084238068202714126301146247901968447184744607069878642496081601431749560295724041288819126339752430251906911738299627329237790452128200562082603515345711278604466650813353450663174863538449265941941429586821034144391474921277122195854535830387733300466715095604188922771161821953740756151148671690496508140858752644852069983525650779487818080541658662647284388487862376295459827229311208816864013630699910291690153690689149163889724878971137625464405339460776864035253641280343216403255056218571959597446610261032960863559150843364615088730562439460391047755430700387347841368606620031046755914959479847054286885695349273238742827345242685800273278029524072196719271792789011916896143222824683019782104626266826446570484826750665500695306831485540431493747361752522832468666454319809684184754013340574512461479064779680416470637643349429473991794484531315598932315594423233601252060499509423712198151342609153535810692868996054126056375785237240321152119203793818029132697812287305741998393177953415820702409547505743780543974710670727795430843921991551875660785226026997091616386513194218464685126559973677281326955109011912746997314579387164123931567535538287776897001407812514672174604885688484355505400019900409836087726851205170755378272988281664189544887992268204566434662253065096577537565413407122567139077994420211720995101862861125403906866687642626953417962051033443267205211292226084503384948538079775300684119662672037566056894259617555498715536024509874279066004402233513974324686179390533844242253612089451661368623384639751073633481921623152599757599144769448650516910210885583530756718947044780697650580556544720099600453356664526125465030165343471189275059752074698617261003274471154622554581555175383350290353754814253671874865476575653919494990468192293672935908897813878346069302026685399221667324005440489564539943224221031185196891455565227070620789939278044822452918912596280489714829472657461856350153719043877504757578597874012281981316634728145722941816918712333670425505163148707253067262136750097633854723094331991300676241997990260679528784982692402540524054088407433300456424257414719739972499610274413324624539314955921797003889115796298990620677171272916971839752753668436568978142405900079164361703162239133543501244482893636896730320008184073366381745090175297134242472116697002867522643550753166040084604162699690419401239869200369172761807605320030457093979256799383018393885255203370820895945569258855578097284316165089978302647004399883626495968825839680349672339258447093391474280095954117622518582020932892251811232019852173717892499291696899762845290807746912500637914605874007497274513205316303769207319449356049904286477886575153371402034972668202922995578533390789922058781787469203455625298221524953196045780701556407767904138325597502354499475302321419421339323561408532853856130350737617745056786521942089800202419327562662701744530971445588559538126838747901154890020422061941848999198651900831548369963872940578034372153675483824435925116491502540675759950979733944928569709371511043144814184672900306431837204247658994136546233716886343493619831375013491072642853453920057852127670818977897654181572783952315146307294304449576660935367951779665247397317947458634301478208258028775856475922786685506318367672325104355337251874598199822059540245401813617577198520884007123064422679540217086139639284723633479163985742992244651193568571011625723035081346748132521950451313083542721042786657952721647378464459417609122081581530050957979399901922035605749333316466855889136858913765724675612649885990022543712596673055602349710342033032080408954497072353604859515190524132175771160660113239719655313410321399456432848770059565900108832813547354128916905378440839193617729148612519582453522365935234569358556043929068553473130758034693755392408186579636340957701252170781900251234082017565858859406722572221855099360762972540374798907594377101566914183852849010034557016134733348832376770516563390302954894965167718798206728780922409139117652133725101285284154605540026952941739811159995248871742394047485766657137731676131301481205787133015298393227555964020258602326714290524735012231336682103916117923607562063423556841478214021749635184496450781782199625488956505180320462776866851513857135557059890216714768275238784856814923584672428740426280154667260473437713433120855472087222147101641647774306736007868260463566153311091519336017675081870775942887783988052609851787365495996502980111572129328842301083813573257325108660468300963648568900325325258589159937196202646767966113512881458942559039352806001597217386068618178060894842596901515258973338959429962636965415096428830576528986043560079037459303175712979336013548669844430649598535049826233634372301683976138038425124397861418265037979845380021642875696679269950787374106299723229019537549300837924096376361001014138452952775428757880401002634849564349041233586293152586465724371716924585157732327325997929979641433804478508914985890900265951458337785523855824886617789857215051657292683099703343098333800278030464266285789650260226541606572316221891941891558902165702318007750978187959519851308041253166449649961358794016576129865332638280152883954750036759706919059749541337534782024776851560904178041135235055493714243741364448371496185759016475090638138312074715250185091188170845637530117696084893482160547223463620617752834321103103733343443642246264331399314939889980986127604704508438885283212967632471010695510116133379789876427012336225835271747194833654780351764497875077211430596863561590950731590411859906195712359716217307469572347095346241280101653955491772139343029514684763273677105410566433234862600870503513893077886463103842943492960327420610356410596774846076776326279789590427342148309336975427990425725066068949318872276980887396725786872632616157573781804343899672968106816981353409835529763169971423144870224021071867136239209874169414395506543599983653167198644607313312324880931503605032449984441714255347347676788537730843106502044744714680922984076086985532230212491708430867180658332823713095876739141317926209915621311005869888363280055797129992771369959514730403526953140101051252263957036305546741028290754590294177497322760695576985128019339294026154891248477291462210240285877154514189299057727200675692521225935788657382315278044196939539603002837305308533100800265256214321049590257386257726011325012250340678346247657600504533209569756765980070965921561686199359696675600949408379300001044475334388234309735011592933990412086737078852708700705166839463793099738769294620956092123456799383186408097682068231786302399098865607666110205550934158414668442568817564213718801171753542621514863546163788362950383243666081790138682127260362469278992823054839132420370274848903270206641713237715736043942701568512830886950972102401205449864207031543767286284110296895770026831250479680305903993811262259978487580772971603331836757260580483075175330496243892216782811354428380674512636575754808346259897039628738788839161362133145942208866327098267944390270929873883686981966463009259940874473170237331237356879147703479536791821397969417666497273998600853747396204160762672629204985571954742147234658532383271648805998601048518549400643101514303346995866628008981321850399124894211632687668343048904244971541458237179505728137646610238355189646075635806476290158341208786094894774320603096896510878568194101482763121640355594994338423465237509419062072659042398304290851326944221869912864540856594459079599461037179767794908936925130631498108668118120751546839261511780726108578818666992280741461315990951490645236359596638835573519304688092987030711419868438953311897445268298297770436725222209457885780982199602053816582615478669966471116712627305178805414010208437038020465014188044995022181200183394147335365307220495548599549607600881271256322859192239227604190383482533225915677521310701881035284244676283351431659773027313453024822379690533680680977116804593920408922656964216693404389372614372467291869265757055777424523616890957619603554551678354956572930438178215615054603982641650854116472351548631848174820753861940444758475245492031097001242133659415556240769189956282377674843162956227760029629225274825590517422538317351136814973922861431524926261829195773172990306639206976057235778617737408849780480299665116240487145556671907017946239935601514604296761667264874843899857224274617389610130265309454038962012853744797496534583181909166433010862589704963902265048613432113419406734746782970200413621587794059321497699913447404475174656936791502077339613470946762211914190848633146685165940013884623144508853114624326912079424012888356272239216672821812053316204660609822537967436549632159523478507789666205814271854508787249952380863184367066454804686219277881544450313895362418241156419424930956533020124548886076597006882263859292798328658126234442213363213812624961591646212367545601701768416737487340894750797151985645013677005461909646363941204243306886993232905485156370218055540101189224590173366117655779837453771873852657897479008514599596057423291557640335948905215018477352012410183422736144938538508814646339456977188432032085263218484674433479268324836675419612628849446747777653298128808503810772400871806205402169087005848003532431078556604669379545065984856000169735086344478342984095987854463667315185175983122205435650405289266706929448521241099606854053075373199025316305138825186382673969889683473287267016838911571965891956958841160676745670279149301380334639810967125378294465847170053322108510436791749627733413391751997369586426416142457880322849524349443266780803519078483927417971107187736112211585919053654982457194902347057942935370653178635313017782754119565026201656405418226806942234037373678403705416741830677141493257493784309352837692266228271691440289599368555348895001844634279560931530959198891491753841444275282220209421970773770605097081718384477487329126063552692528774518580640790873581666674472445349967035688621664432173394974809356582934353280057633970214567813034719847417253497311417848345498107851607085883295315968716119380877325247893627758425336616898313241061448158259941583678940192636070433820521081938291749601037505951351709107224755521939970637671626991207126682917137044131165168692114941209167361573736495096221020155568550245627442454876098215856164098708700611736390598505437754538395919341232935727583017661533319481382811546399919764396981405360355625608294104651329133281966746613581353826809230739046448655293634440311260987056685696739501806230081492785944881111011616389640719697285083884422000496050794704020606480135205643380148101223880366714105602063034168408544768988674628131987691498742181856882521825648365037883428464949330194944922640972539200660740156898387139085692281418699589411882502074519007964095695090681347391773377616217594949873028011955320352660180514350173655059064601545654595653738100305683667228499277666787884434344332064994845154827780896776244776631049349889862767285685118176805861832689210920511094150062493177587428158750502031752772642452037326437767305162313652813242830567543163203426884474313432286638820275125951608728478535807187581288810682769647104440257156709737975085560397973720211125168259359946812707563187277508111767330601761310129707199810007388250419861943328170608852374777958188337518781257130200337950289165746822319574602843162704002984389929886373829481662397994924224690594786309265324078049394858437265530860333444442424348774440419997476363317828473193102839786265390035343343671642923565332635434256025068686953157458632078318532582448190362558020230523312471104725494242740844237344725482708775014916483959193367401230683657274229324774570129330165646436932013563764608642055002636768982662017256728461632777650186686043746063272199393438509398855703307764335650575810012767510791559486077221356257953702573838204948691892580126452470794749001834553050005949663125630435679092759334102004216471927460622154946478320140970399570773242330402040933927240323265598871963966786141123533916371707265353895311750199976989946629962733675733146093023958286528427847938817421615879193949848562000549196100682652632654967232065414395019343804128557652609207129883260487212676810595247133839802583365802237761025835960274893250535011122631000166479850742543840023691902944274360415941184160474770758814690767439506950861031826812669789539050733761259749491832666036185017379879790744086170684778540320354312425838593395664613594956964426331260687900111903842204309796498001559354082972170402475513193961775841812891110478409440494054437132396339084530516935337808842599450666221625965074398623777415813517000007306639972099096820730753750007252914813372939469188065291526182146289293882326165804135374194201763759264756085429686884045314040450966826254912869431358413877010051185512009765033284151246525311400097370824104007004702141617158883865460857006268323590220816848098423275518058199499817821331326534689894241069299718331167002347142420815741383397692494762234435979056169977940284244689843367097975670017112576923500744418326970078471911147254674539147936765052003104505421779275966378267665184566442432921323734765576955715373226522855066922222067384649695120464792239182981974043821481679906597446709730381575474352469237812774402523761008214660401267903974693662976844015026843724045537030545596908805425553554422246956123346430246450135335254621025592884670415478992814589607433142958502866965299497180473110491772567883600096318190609563570912389652464463560222336914809742745990226268616955780496846657545083592752861770660215612436314483923623209571983025849384700720155727262221689611327080464084317152206792612488042131531511697387967245849017426638728486151072426874808399566222088656382094898933050256851079514498614784876318113613332354227201397875440968809758103820998547524377834161431567895078090809000244153846401057656864364802193634984770925453043807638908356416375593659577345269545535592010428973187600133931991290713768190162289494356630705294760189790139940166447945193773207452625299073802590004831193366497277031290355380054477948443886415909806144751100577354765761155571165715402840091339827663687988515354189581681706230081129199124968994860432061909932896761678701971468282272392139489735350559292881872228123552337943920603863126333351664008282468766105879743946598667981567455507012872955988800142837180307280151665489790656071882114327019532237251237876426099223949230606331196689555849401911155682970361931911702811958093441456522293982729090540054131747349939190114094321797397720744882111999953213870897372870081126537434146707672024735316706647457291549975754434463908730822905131015431002049029734716749133125393160624095765905626072012386508790494522265912581780452944367184945056452037330398243155390111446639705158557206391546696147082904250515664480576303812226216979134717876384880690502375946937786597755888677080407735287921851668921079599949381904534090967278832820871910637746651150618777760418028380650293576915836092371628339992970006102544496728989610934402860409660011476546846462006040235957852903975515715637360791638406644782387304351990426454104278305103881662247201041663714679701499072898359930822123461779670513692936570962424448100798390309885424009088452244223316905347423062638509267545345692387161997338415978604087700091868570666287342146479945991534428411838318254923188616739489728067121664328291059999711639686249729997156206040802005521396240021371464222637665508567807532753249169667149272000246818881051434649536431321093422160775796408812961756374972896597411441105501489837212293060996613085844459884028543965975606201796264694463083406811556820338894334857701267828761466952622820539811735196320974421830463921756049294197803375497661284332786077066764505141202607169736352722080328076274890921737095250220090903214212548292925095382846099690285957582932740951365776528838060749293058729286617489334343405812094466985034118995208809696429535052113353217724808872241467031724692601054153861160811030288505234874056304852170248721984249208690629584249698055741995851271358985293356306917135052943919751643927772747833687944235242154573757848692705784168495906297448802800359770665393599249686444805983388190256755594938716018437734804752628571197337345474574961191452527196034209606643434199813428299120791619871721816720356357593066127670238630988206975478216228841584125557786170578632948900673151818065348725297253479296067168576595062884148151905697756045113757749317380192078849673498816674510117675657034049692198631446858244992633407307977590585564106998356361395807568485898096280871682515063294171414799162089592934717157012021109884353158559953128096114791733426239007028536557322571841088530341764877442654870179179506969787429723845767069413047516396405828268662827401505580529674732622007741104394373243336798323042681461632034090020610803020098904314036672113046739877214262356279617851526437573862874423444012759628293377270827565974501382894150907082073086655170885326426904332325209612608809228220186020401110114250343288930509664211586295093943675667016509471655490449828546666207567495119734494068146481878389190972955896986757656956529928026278628149828714805834293510179973385663034348547868169204061932619397929934845241410666515884334466936168793578627012028090931678211180993379348322310995446944441084752126194701601227461793786312064655958195762094035207936424358543135000580109928902495262750574137464463494053768340053031664870252068016606473843033834676831891793086162617712191155700721622526274272156401355809446419800244375727986827695702680613472875792774091517386251246190807043168579838614633453465241097449561885055426923860188759204033092628805369628303279349568833912469279858976105375314064887098189232846473834581843743406597336249476158828428280453348340401731565515729662821707457605355334528211507477982956105477098293824673562502285490743286067711606002774368994140017089013173749543637731899835557782306701618327922488615556349369356263713285626626172368421242656087767947556349752538268259678473645915931160918611384649057279596232580786907705594333496781759237561338259661243351416583367996340430164518890167133870792099579285085245911973666985255847231134459350920799511713382209974082737141157293888722483941278003513141602755300086024840212552170981003890087688636823609021389051025988701590370007146579233370184074460440492686174678964679684393577984013006595555389765456265506781935515652625218747242537222359256138995171297705502709971462745207803902813817583796987050596284174266408814736639347106570305538330776426748654517558804950106737694866689650636982620185426331039149304921203975843349305057801945768386728861385854938468217122054526294931292505158862613291281472148996306867175272761606629895089152721046849493702117312020039109966659607706459697275141532974993333644418575305405778923245610025224585064943970065832299354650298986291249345363347516415457127687876149433576161268117000790229738739560572264439412164090594697984125969838623591730957595371644024985192339877275050904201392951739504649573575775858048147028082804897343797715345163044048082481659756546436681966667653928139617683061705973061196490304754070653259098791562347098082241810192745591679253807412390004949986122784334254385414431319393685203682590342688654430699027237345600291430687796927541598377397205684395748196667543100177285452762914117711880039218862379016923966046366658297800666627341968928891752079878782095140689834123687975220557823490551870077899676764252956300109181678357646425965471862426927967485505498100571306842165610599276740453515627861709490020647773704036478733993462080335039819413011879198750792401236027335001058960788542491302473436195512573516271941249906563508567499456740572228335100947287951577882620088983865779499092242259348421589363525560138482473964439167822240741370633143799738112749454259727867382041000591605600103494438761184719990758501697013879491173038618294299183323014027545621491416876216518240715352819545158658844339131827454007897832646376288033311000393691426821130213610843185686276517965980454655734851584448781697535999392743756434006463750808265432837971121843226851569909512713030982440902884291978785759817033879279408572499754105799935310024416772435423424026532935657586361909756475162532837932686313690342888256751309921290482148788826008094940498905214985570715468423885740982036535920216600860470469080336044659055361821906269911219285588435782628920246898896931077533707652042186565621934523226148134459354718491090536590502820076979822186578982411711518441449865354834045354186895474713165528730420462460250699223683727481220135267740800117312213764365093956519112747770322375837360845221374916533930597955665613109949404649465046995115814179801833002234551968710263251673383721689211666182250937712778355000691681884572492236049130113705758088744305156871778561949695177128285075843146245085603355669766896566399702247138783855885353236168535376697036203060469608143484029883578020828012530895940429281538320646015996463193155002009537026068686220044586899719146732617433595559828301232917878157166733787682117018274818225813543302654232782929124383340176951425218567636119234088949967542159838373446743139418590349963308097146272952577977693808697130303556143559989833536067123569775075140967370059537318925400157409885593909755378026978938869527758585723465515547422340271132437603946807450860908270680914894572310205419535350872395563165292294784156635782806493502063322434937703377107392699679685655354286189772727283027255213581287927725352665503940694083471207959415460561484475115800786678664883777768674454163660665750369370924676145412568290764279647708694352642311727463039798539946256630741709804225189546649581389266777032786286192462229771642058024191814927278399505231248308961678110495299911282946036619432707945291547496398871369856527649848191257359099062101280639840815916691953797148126861783628675455773520781364434754054674627453302615571074080564228812484571852170657821119211961509757565658561902071150530435583548099613593810279862662577978893389802657729415482958551681036981165077354354641860873002873369682025669921224559330027717274785497647567759291557815376125564243304282515153537036781617891778200664663280921691265602942537367934097488874801471521731394370324848551611305170663461699058866458834023023649085137777225581123927972081051343740419480997404042643253381437412695388011663543481281612706150930977317497409401992924777410713924983177801892788948500303841919271538869758800927923038197447904943403271737111296827518566397047431411557070090385456881946067361937132944096030682288714005731082204293799895899777091888033944756745465054519480447031970052486427970156930635530571572442879016886200153488223957395270421838421469862271392390813410036019637409561214741574582321133422585482976459707832072535460744627702555961515131388091919805553011040861806191448505032240126773587244842112254221280605086957163716660299580468028059042433151581950715178786317138273306065034215008912528206170371597647606887201741120459310883442604962211208933698876446540985287359638440560775294011898972400038627146130500377593001736933841151900305606965054811717453682778628360614267590298272255840337571127749661921747714705361386153808399275030918089759298542831103221175640234732411801229233981128359307967631719767298653567086408279000915370286649531680410593113742210956100517866569080893693175631154176841297846961175028544891230294916153631071130117650300835320472949300333048563470240555420627186323259799730600564354479738816184883989276729556927056744817087289774509552991730781440206634774061773872335143231422131635749765768608359412546653147401081232492669024428988619683677301656480556381867324768125259275942423114833201923213980635309264602832777082275029844455933993399168372018183668584899770661700546632211310497952681670396990661787518416977447255213100690956357572778719332681787788764285786424659792872365586706979678759417459337691580220503632685136529687725542465865395213630659307133678582950640306151259922226990025094777362961998765933489959766521407332183555216415461727208609130273957630852653110620440646862869040091076040382257002831365294655907502434640010266962243706439429794700658603085140355585098405275546741054475736882164643351460744121094458153225089711057473014413751669345670068368437893411627694594350305128293982375597079294875645709864646616686223187279849650095977549770896539314799926513514830664928132363213093217860038131579507403729650361493943492054927438344195352459438128775954848594052883866006356190849772389386609538193203193569527064840384934195116500458787466811685301751699394272998618820744845205604596673176965810149600822740347765507489448039139976848711439745557305445308563483212271907800706055324259375141512021571870266706449716641531361580079090429318843403128291796850931873648375433739066681852483018892351132979401184601553039337783070281190223153603675056276144206842327246870304576633226490250923769088941165703679434928728234327065778073184329359795419667620042223419814675921030124542727637873064975514999560398746197982216201934201380024274571645263432088366602451216754779978295438783676422614042380904858736244899132174497549186220800202795539203925720414355344990424051315311828546712114937050781597122353466686000275093237049198977456785607494583633817753042893398140129983358917169883093845510734885817992952234117780657427461834082794565606499421550723319956163136121136977104709380964883956163605889583471855455255903610174935796381654529161030888641536366137411889056845638959359817323856939322527799248189927694003005380330524199962850792035850758223413923419005099293440073389340387520811984742269624523525680374109863880609978091720732386214316638115708566896308414190312467981450239085522136012594918552042561939070390696393207281923596257386662518629202551254551488913503797297316791168979993467450411229033700124251638362653631540720113047553756991753961757371288566668585380676909037651630170249849092918581998396565231642082113806331558895457866991849372721130630705387824012625737171128814649646414426820126253152227389578777893826399796690788951504350210279853518602790587216803728355272959182532805112203581155008700774556624696288792340300758373719451287639486286471248723036760629765950044822936249287928561003743806212433370294347681182661238332106642107903716601901522907617471834796955901475748121020854061320501479465582312554922160900367487734944135677672510742772277833174802308024625395883474269935147083712562599354763945217138114655194679996816142232656156341494444298644672514461677659764047724203427995704754587788504091791416437723405241365618692205299281518710120444822362766186156480461782785737581892977965380329630631472992381188628990687874523076601616977640010091946276909448451918846055330116505235605064934869183025823465667227463437844166320163523203567630166410971201808512605386423317708423490913868980674194452811837517460370070538438034913116342735466314113766528062847546643557013441103325770510845419498297510104925763991672198221141372451327018831398025708888050679607189782792532312302658994567921513882318862636365432553875278142462887152507064433603940583497703387361992087293370168940877917177802502194373859815671035486550541357553622137105344592666385271534121998873287556858948907148905597878692545650675996000708197857080953344622011025164579631980222096146627396515425281991570641700186504733854423867280895018694162418667783972366910341015401357920364573460239181163053781554095620006687294198506732962853310918970765218287944761081009591964892327760928961654547656018251193216992811550972336938129257724679908440868791090904621406552692081004327679240895540419525500721864821377619171578054818547205384955502310361604026846406691472247272050382524981893655522849451581147700985196871789299869138849015457572818836775964229951000115888202480245906993528265005605781569696774683948693646907964444121626613115002251889199759033687217883576199086320643316887705785989134737863659728311668928301375854992251836603286359787833604083279363848286227607664640473546534599079313787488230922929287736598985982046665916524403421427762459541015674677768938931453224286757470642774276507147112769850614828381571320162177856332006896533115337109040838486226284796362062972080249246993990549986297639760042969406774491505917184878099621311143451582475380196766879703599002379272769427407279159316916322518827235420932087276157132692391577520433823998211086492750387648012729945235999002702208259569077205330417998365722629166626558818278279972543441511076856222307963412860833816929903256434752163502559292866735520494310670224532247662631429208087198282579992732824760832340846936223079195590167377695406372783478002316917060735463502655485420648187689264859376511074896880344779241921840251660076226249343064479527237749187347002711774943506013173782853322288194111306474401050776198816942638887326791391315903782704360829128697534340554936392762453724375345188646234468341403257263549344866955544494656780785913015194921695950413512340588400696312707344709635055469075444454095391669979086790367251454832202990089477365797268963387132619350839497737145545313459230047877013723440360628144156976390202166501601488595772930104364129291342472417175259493745361831308626207764647542894255554073442675805946221300277319515494849820602723465781850482842388033181408848580161814607588335842714515547035448757905129841478994008718380927070886666711203613756026948816057037971358047082837434413857348721610916263884876767265186505359641012424115523333006821863425808623876620446121182419026665404204670978392501096019872945520434101084341669342263078441439053205859479926062889304811932902336287257821098581611775922386476686970135633656516346337567131490143742726924382820381644286016498214562216650549588391100020933751031211882362632321312999191610655071381955493415039825559583921774328203814722518272901998622212636379001339217538666094145190998649301094571609356161937782531115646544491534599594466281439647187191166901183028417247272542160578163685586328923345418745063869409523087067271897931105375878504283756440118703091435345144052345797308427710330893296043261410253762132458000176658008691469361772099904823809918549146845332906359789159667234516411314646817468343097945504545926998447154277145318509744282858759196641978820905268164357791107974123213895937127419918305172332319641942952392774364956912756963211407571973106101728052501493735182236188714205909975256794550689472846126840450447619018130366178462533068521726213177592494155926112464475390862911591712529310104986624440350067629232526428501592317962403066956103465506323868024167070829236859213529624565565325771986936429535970168729220643058415152998288806902808829981251014440600549599602514586732903781535392268822992566303457197167958846562791524947451781394591889588915613797579785109509276491893943455238626348119391104576695671707331532323207403734947309523672625939784681751641936284273839322441944951885308853386646645766397475886528686200636810361816511475271306079609791006407294005134775362820874726841534530491868369431534877873481606784772518842455303197661448251373282445958989123540220772482211574053812956483380603210403991572634280359276375739880658032248140542575097459435234630465490389639560254921763041029255085169614891376248067698326491743844344054081509066219185190769950588487870940693284956168004320785506971333209101721410537378980256010190496079581903259071447255517790568205443579434060764334669539582152545286229191308819238747563740582380067797947030452200900927864528993689694987006484453647796386290027215119238183978274360883797395156987267596216066448968004220297001422911232534695194125168703746114263923834173789968132334738179823016229179393443742246743865187124871388589043914834878010407119681124273257629879192983190449111120216687856090731035510514969284986071196487423494129370559879340104585372499245859924112989200236146747049945231918809660235889489824620646381033173000697368923218662197274237569950013370147900017053689193432000071646289450088115953267163671616160958661761271992293979036605267598025406042654492715363962639187893016348245390166797095267488344864848967530937231441313365467860486633517045890456052679689301134437837551409737731459783245048712099535785644386248568226820715381578524306815542764861748712436157784976943090421649216025517305281495052206144388967635191773671147750535906828691844528619559475092625421293347599524378871836958888376533190150926489085497268437731046237627825636116476223196480737067300077700590227250445471920454434155786241652952076917134677986526424402346890560619199171273045907971525728193318649126021785796675946858580444460916654021884285691210504130463357366049386298075560279216317591650757192906613780655489570135365878347400335226098076753041535990689135385470718578545987556421872927641247942363958889755479762956674057846497295067563811317934429722833389140358407147753067405255636787920451355818856518682893665515161346554193262809443471785660589394567681646707463133355245460890521847357757794651851600799173731161318567809269525802610556577059488707675626210861415671711366617070534646733120464734371644108627826610994614450433433475542962154700656668401387562080359836143996920344326608928449839333856377404908004664033742789163495274641665321430346625908034117722837246951608620335531901111693379424431542977329806514997688793710851221127870969215435155223210272852919869672822995902644467781606346722157591157830041273808107714520630972366132825454984113496337771698841065629899463612645332343159137949419034495945983811282124473631617070237632487304376850196992637238599100340340912377238391166982713909652163517929773679061724665611907538420892542194869114881266089932478836380025182959180914246898351275998666690541213940979771003811178783032310260479982233006160191402346782988056432962395173674864244310326991489609109603265395680243617624555607477472925345152852145430168749286420788357199982846230056013931350586502796101215422962883452703291959781775623425463223649911475591123125793414452613445007904395534971256998330071315233924960464939654770195972368627863471899904765628266243418461771719611851217686556986444655413037758279887673904987851077998420133408347108176029842962626077941889893954185663785977611942254762364743989646655606385868917541024777799363273772941013603003325451374207559394016820226697542857625694314065179545101401446070195240947796942763626381976228744062005311514896167118936955412806686944723936117240400744593849025037459178080543890074539458682388976130956464897298171191838369717689472873046550500258407327389676522875603190048854103909427194225928591586628334317629374689158311345254665387720253318261802323978150691572119205905268609875143884416049003507126228668146521368005626448883165574239755303632607461189418853211504735635808753159774110551142324015964161054965905541194352526501198232793329811440502339225635908135950732629381611517079439622743731750403144595183379266618463257838597200946495619265539610594118937559589692313605295236566745522208844025954712390045888248173986030792625287767463525705717076102510495184385208430683105753649586583952272171064812012498469087272671847535551134821300830724322657106959563402362733778787621102225971175671113504398121801835928337954131758397543513761504965566062215221451186763236925664359923280653031000838477433871803681163191931760171302898532636871788310334396733610302028350154869270836788488776440007671966686911903712687852582857001523600838648101714268073103956402143058835983088250332840533712640476930872961928157320681282808550553105283868583859224972925314910694422493361185419320395024094543156472804134866283916261205240435258678520054303644457622391960435610281445645390952478709222586107588881893621611045782855675659487739604726222020820162854594381658956862441308970541279985368597058919594706023622219990726143274061146645021421455721351773332189022641856475580274459441795582791581855641206050795531456823922176219046855402491909073616903201680987158115288914423199071057957127064123860434842103078598885560064813502597700121226012096160294060395659125160063219004174645627579539531132264562984277723358807334271695147057532400198232233825459979731753800763282321172674735812110379506485687999503659380525214546230532053248670712212338651650705499949014851489312322013456965273027203225117633270572859560161427306541550096261788541971998250436965975426513218092327261546019182839547704573825227898190596855571912189768829261934633271165686673660918944369566409138549322153249983698497208069939035560628510923781565581547877587093577983577263730173678439362122133597900971163746791271731967372938850864670057095066446503596837807546281668281765665205052719859372630854122735904536218071301434083364338271043128445576367949677590871730228251649635950245292853124671254359991958503029771871929785215239348075968177129128914625627733822469425394470831050431830477460308311779533192052415001932044836957908548327780845133759673039869045966008535259906058690356336276411762777257706338783727125420318741370225283756698412279033772811114112486376839043408278126643615705038222286903911837364867873092500613352075460340838800462239997476937219037164149239538131904469627914311796920315826485547090464392011600465215680932182744543509685875832796759775171873786491271542509650798658735879183097018922989400608021527480836875073569556944758836750531884931115781273948398200109761462533097024734182647174463430847641301947862975346524503095445190764164262723072986128786491339713794795101568834146865220241047613527527600305259675189172714118219020601556959853533930648834730034257233874920727547685410286635068914440989267389870293304648239723595274968256280650738711811991498075777483215423669951927703349717166247533705563200464880699630107716734311521323784149463917088558760230561098754299714454282076303265951829866916502544050803404516653059119117358761864694482166718205282712669823292169660526276741334055475815983810738236504867094674682609808022392412096843750658840562369836179550742815609290626966849371335474963426151363805809636181442829818254912903241817857890398660611450584301992961254611634524138281847547426476093997297408473728261253871164012075192996474446033229636229928284577252810060166332936692415955248853681844226515317554171598885708186945855554203377320362003606267658934521589145759830374869625139577174013260197459848619839746211583040803278672025344959054034516446835952373558073032318847692651426941447437988027668201028865275465288667536826090694158902734117169405413495048467043543533434382020109407249108810745803223462486147782566021556486032275126004283619957644411556905840442616825213389136133436759308751956050989666591325385320287133928651063193896206812211188901555234500615885305825941541614037828504256799023554823507254100154663214568089373261809626995580019744966325247043611768855130115133823782483345608324305593698892839010589549865546957710730579354763467301168997264589726099458247785576056199855173416217026104913548887867332324798082978573287454807299778623207703953593045637947077970116262362300445651345654193821080901678839555071038974478108950036945051386308225758180559192033638100651698852208911670769436137044390720074282978653844463954378765808944660354045647067085415171509320987412678122346297952961192447769823184960929460006961150688708234317209518785316047184224581660091156777153492685994688289898977381453651280356735050102739190027613656454329578843948377813541164217564225586588222045653698138428394502323640008389771922059954579220365879593171261125832590647899498026841379914053937317730351674749074747849617220832255081109190680937734040847271638161748664635262195535537395731748252515867988995901687357414238420807083578053413810639062058411805824405133552682528813572832327268215762447951707052261334170725496749238576789463127660811802776152772118932783219463466984419304780880442849008028624943741470928437727601589443456269228443644350791743389376034182047041218579700035007010614976845003984313228469005423850625952867268681392809774017251725207294242207057052396672689104850681989932081685930106911128982511653500779089465521967976467738727321136596745310135918353114248234189499180985533568184245224882250471613140259061476843747777919320916328737094182697296742583470507299242578314777257663414105326427840934665060566569586347597762621923476355334048534362912336518610822081381108279726987255227629215431334465278682575687639537553468571512710086549233620125500077900264119814720202344165003217803088292284749972630830120121097264090607980449427576902962074318004740679999935683943535388495047702275376522309480864954683882064860834460905359424229605529407417837681131147136231920168849365767028196660701048065965793403267381299299408295782873743210601849064748018401981177873833050134663789686461147786193095000023723558546859983158346292066574010341157874958038835966622368575377398622545008727019040088320129962963374101812215727042121364982132510737680139344109315641517884852589450586349894719100533687422465109571461144882083092511370068009935463959750659297311054115488597118088953206766993337007686236603584688542994916837653242076070024876751061665508959014732151349199622743481132546476704311769798589392894230820846415695311264635725170825500583176827035168041773904817462019830503886436875712586563109449537217871391111903525702925353568384976529369155643123627613288376338388552654170315666624715369850779450217818501919705003485010460299447561898642564356000306080528138321976070817426864456705383178373954609162040069428015966364049811796473192845400262961200966440463063198226634678310470398294510094839980811035056700508621967456649697883289496559099114439860415054682074833773434892232336596854915698330511254580953977612141162466512340591567600082403816638009532029244920948831697299272258438545023897647080626932713272274781337215224657075556408007047750480372999180415436772617786214748500214811032471027318119577481193102692205152944970145504922202581661112702238745581893010613440123319014260488932361098879393208216676362147011738685862392136844587141634564488800889257071736453469748864726693333075740997116987792660670789097578055437479867095173656934860783568979311985023039605834214699369971556255703059157462507618898785963974934424272368228856528511222528655439464478779430590485108830268250174782837692949286966260173108631155490021511201437692005559448195129045020364887496247910690835091249664484663699849785991421568860147936103417823996800962838580105669344356722009116521104418717151140859098037861837454078770102440694041657785033916363559607436371745834424893808079048332332223763262856935433657164249188937865335623370886911069164126822679192649228013000569517802095731918054850240837617945687252677553343482014252573223611753900505960854426543270950660441944273373894968472749595459436399381151101886841919397816764842331343379085462330616214599513720939025055766019110459753855311182272883331007137482140241390008832990217367070627159192284209400530500933366107675242931969119778096236009290862921695961937119628966778286204570014907890412176970808847579865158662859233268647480638767194342113368797601535405954018488748125573818596654579014829300444111434871921286736136026269685224327426076891961280839718761655579944378817216807531943438360922083441068283566682273943949354318823970802702837607985369358604121813940195623072988465710195325372154308664922946263799427535176200834875847060301444394249921222613654233987193724023865693806757398086272187087264517988411951818557442894453516065248226484682724107660352816451660453659191692480453523826987968530279953257753784184271803883198587806747661997477868472275538638061906745734752891471810715784046457762989506342065189931544938385411010349155782893424721921620822710817157599614765911100191257312984794235656350577963691331474501511189130795809146880980234410339305857202303784791387886378545211199210000312651830467169667144362086611752943818650226777292624201006526644440042664499905937022027948418191349532627698713650300938074485167612998193681359994867951571540644851899847132848250267426006176459307447873285423853213211809558499987177041325088725614110059081169091539769462588688901391116428276981824339692320220734300703331971227560164212790139732294119347359613022071621225928666343194382534141607577049923312075700343679405169617405973194443338475042743816347643896679989406468975619733661387510355982986081619373844488090611739133018496674438882918898238312803824660195072234980914882701890522978104735640120310665308167702277397389649779284966466887500828111611900014817685162725792552001847762631919865262215339783080773319603951647528487350721347554686589371789647654724215300682081172944275371659612087832495192021734570147667183593559269187956812156634309975444222310982939108972837967966516866167026430828674593300701067627319262562493309804924136603420048977376836285223418770838582917717411380389655842749287695227098838280671186626508644864328771995210905615273481408742359076813440609533392636179069324568595473162220872898539880373420454600353866279761626516707122088424886993803952228335497399945744978565190910709576105136755338486433572890015511421219992056179723680811797330937653042556697558791696555046807821118447649391459918016814401953124536245403510846892109412318869758666681968672876200279849335490589703506695495687583727466775314355177543060157457843437502412133133708269731727293175991389588300214160697165009178603753233301758725985388582063973760961302814870538274022909387941292458364108093014687287738168848282526071646478101549845583409577816407704756396053690722226859520266954650102808223383498595674948394482284731774911050488642708137746036144187038879058597263140525041963771150251995943555305697145624162842909233483101646129823000275685894608915940603395165632556841421639502279667986449451664397013531605008574118963327815029586927793959165979781265614976852575595635583947897747090951225296490807035704371209610736727934345474959090274973492713268234561932664861853136260697015101656516043892135635623976119761055275962116827144867232032905435955830262722727151594090421529611131269416777253076648111214849963511689613970591017052519952898060362266315715334879601526055118528619113370284950858433947408274755593816944482060444409411299455797287819671062727427656879188680820627742926173464762968447061577846374745896073530797549601636705270654384447158273664658695607790653088768589777693753346588499373842145696799551951243618926192927032201157190003603574423456364590104757593536268671237806235603655864293276683789667810537977397424458658404843455172319871064420665416342221042278331574454019783841321538913642314120315126644878987540302271135078683536072411909476217573463650066427722341029458056190520712445782193421562210771236000695843084429727316031046366523802206095401678699857817504001762961794414113580288670707718895096288630282412103322050096039462727989201075281354316943815301956102013469055475408462360639500405642959230831624477369497113088036784890013381037018796171295219408736731227867565862253695179212905653592437538180352061238140097510079827352116597744539354158188403849249272163729861614187020008360320379226689921849590759893824260907409153580779754886584796082428993913062454183961906482181148229706577151638627278755519187526585325790009120528300596874712015676450523009990765529836987636559339879958933276784867642643764552172220920121274409153703636849100045257932117129308083159443641262221593775211084504934966054071389937051465171414434842553941186634490507752072936254201357933386074571847320244240869848131152091405999515765856166071612910650622779355494731461454622913463027456132621196226274441682110789559681443195607888461005737650068362639239677876346595172783077786271103418155450874441871988770732001137944946688092115305489491790678065260073574652457289577853923231448431087633720870116107830068303100619187145616880879756487862735104475025100623248010593099987983585811430165008941198174312813764886811150433516362941878858423130637398697338798294320526677158741599328817354935113665816001680386646724444313069355704857633130805221159382588901227254628065147687096944495415428977938631876971213916633555586146786437763943753554819924249103357033754013517178836694211956657859984769709455324511568611526647863708223359455593835492244297983362290607149268864207082513023623104928384576226844532132862709439580274664651774233778418501541247101872018495049083220445367833092917777829553659560128099717132422849137813764807634251829668584641870176214086905510240136329765010993868923864867689031355027346779076422183173052253512678048615898673802883343557189298552378497551827349505349227367539248652338217954741073933490300547506523654787782662487670287258220110149290134875626088336221588603833935274049281189246368649512907326181010159355682457698012549080540122020441795382491762523993512182553910946956675644647313012469202800670608365724235650259345114227512973087771811068476557830423486901077320979595456656797242176378286486669151639504707178396362974799957674488219708293517042523996981669913148465192622877766718718665712888504181691600354673022295305614492785606795109894317542700514952128000140204641421165715791255435778977966077065533801474932916275637099726126480167101040891864194386436584678800613415170087611867486756742966029311479997309740753833274428187515736377754807386229549624373172673168726837304416020008307551997854326046289327717616201670237317795211691017212560372038862787042663829075270949370191125739075098841800337083190740504772715361335543885315881736897953704633767223184116050323788715185870837726069876721403703424332641222957231989514109217134822816924795589123093420607195968371238365464101451210104567659682076126934507366202153392167035146606768896488194614297352038183498454748312460186875570235549068501212171159556419418815545376976662124362170015317683216094200093565669840091664316383903689508261204663206195869861631139188774788896120641352196991307264453030450993829384863306297126403877489191513495881605029209575500017210326484371842845473853747854925712530847431979936783047657284521226561811974872050829706566529036651465663619959913673876821355991784540741603635720060163681837486556196001075328388820364512614367264323219171349963917698666667074902328650778399722557588204684068411218327746854078135791880035645219776275573900768864786355421154353753797832547310792521202345124485132935797962492845299140729028257813793117965147981340803159198890514349776955835899177615088734812380028651583093524157064447592773969458442394560212366565349160175212367914943451464498845381536345094722924639423600337803610460766118842096874034296037239805738846667051388375990016242458736884634290330350344709924279029722494321426258149569298047344304908114941193958707512028527192780078913312348528061092944475588370478479832536411034517239372349066915615139018302492670721285726370067363729867861562934547625229703077255116552056281620870432370883812923859340824922209520664396914680083567593080857091744488518242983459898395119764559766878788602180965458517242088657043035803177490281227068215049412704149780779166325092259336903528065181844632781714694021798407170983940556850125926987666495710239030845993431782239772817009627182833977463390232452621387037896112210772947189725482414366540156439855058190576164483673694089328526680345964204875938899238463510652655094801383535079419963543184101621578594908667141394834559115120556490321752841282815304405680851335094885187424842632610875858382210025418563115663316189943160094362353841115537349343520967649409776914402404540378213353963903319514793428330744759458219002941567656318508048889046925704666737265933198519622179759891287613639457512173384484900943470902637163159274526231968752427109818348564312683406681493855017259432833738043877531980061982239163675142688546890930321494299099919281534272393322036458770002970327060591105601728242271411947690696595301516635785519364916463384414901243722009187939443089622119007601776347730198169124125136110196713023085779984090996899715000175703495081270731221505503869160577483976704653347294325710414810885777011613321909115394513265104910953481726948843157867789758067597255089218718216878964846644991090407238221044407233820704982051338383658612962557032144189092336650497010460402185896570153641293272601308606246545658116067081796637513023182077990420812285234680405491703841075167159951293083059836929355232750544423095689048597963941054772570882300338316237992820682095383151292140850387204399983113095838207170847925092092847522617716798994601530782314054416804974916765937577890971605027699988177012506775929158687482115506731417101292864247094284139212118424034551365714304182571198582325526880511678713303801754119487736245163070384747063808496949912662302051576904788758867044977809220816463094317898564817279467379521564665720493123849458267647491391111706065464775052026198893785690504727858896888350211475309635932893371794848273708800725087821460912328493671559784314770930235969829221194073271963209039994907879701439349904259502116333759734628466690674380615863239618914167451278807453971532551825011175663955847104859801848992754300124804860247291280827767313909107338869924672562027320010972838064254564890009569090549390124523685457053441598736508797922320422045004855326243228773018923444546793247849501902746433074403441889231890990647436722002197282049146827875109021576865979982646282737870696678283532478217510057099148334573585200839987500647435761124856428988381654696807756858875817430859120512678246276466666313883276502291937550184550013017781195489880534610327825599693600324859373801672236920204306982600142290341212634239463294782775888692200238531585087364472747569690124938343559053032864871593235637818623017599631286294757110202443668941223018783738661394240846586209217104562566747299747509826059161098619892555536990634847104331345065131238776576508571750311668381308137276674946330713424510930107989249974071145393859684649360893242193519862973988067290316995807042946072086308671033915958383277709823503189357103540862005734767038653074819087514512411148907584432190416055945799992282963935409302252270856960273266534358357572130053780538498535919907185196821472326902055009125548774207057854983934288418592137071082539489792166182120822467194490407180363082353736690723402952415506839667904051015690156739360182670320842285433702384790609542404838928375381124731903402698629075913569009335929249976841742359920216996466710674798742762092277598450634545793222154201231275165492952109960617117014647645736061890230497905742512462190276356548647964541876729948302377315992932012595347216822044601770735619680802065549787615669999523828384123831840728041162428739449924821821085267130812332120794179449561237497169429582668384320894497694919088875812291512319535198749365338021541500659948604271886572668647167481030645044669210472917494396955996903334862071145996949977320242706470171363456815593854739569983319105725604065659465385800936450902710314182955705551462464637544073904535125963334003803678003494766352627164643682664665735724368968777534705041319908908557933924617954111575596998955836872328577513948010460089249228493454973469453844357654774156962434537627641800485538896688339870277232409600496211199859467203305681582430487811986867240785240872983363946800981846966482864528701705273837620897481778425818466807123434691810600829607088241701714221362363114123921754728030797318451125413115474833719889880039223495342466329283852676568081505073874281414026118855957547126798122339431299932758722594955020401824002038378809329268467426998702330311999114830686872853732401659396843229548631706493095032038688986037577905729499773630823233796860636326475864907716882935243742549641448879911463658630539755648497167779442529135030480266070188133957492104057645552034097960738665198709174790489793774901184572130845486783551961814358165877751970529571806965786229460585778903335811439138001598742646392558496009144474691159200439352219055327484349056248618872459603246085558532685670604282358149140864321766293288072163572473842948430607261240653420230987643070551450132802404414038354737610225618608702417470144839490227678233641363271007243133588034948066127618755644164476732306156568636852563442009594437858122412146069078078985099493255415365368663511019730542890261836773267528577256287008245877848990337365411102903223431591554926024786024243277792740237032583426605339140360889798340909850944625422460944753286129091854148210443544585804000764504516595280954677781339645859396628338226909227454490291274532806434311860782808225335456619394992449990619307329084853911341080988340017607834954829355528784895416777855537109149773337181319496065660214045449861119362030743897657566384097510976604033913391756414630569957475838869298043252380430659832457155458146283129388708451058068454076319152744440090377003036711514305700082492438572606510205083415517731291176195200618084697575164473038060132019882626531984968205099157355882363147308512103088086599617506041809241913009412993631004331397706720334069859771426184599884985422397082811719237933471466644427575135195148262688840674659648667881349459511013730072362768531921904877808613835712544257706677296056538599338286919440564103787509348639303732042287214186216712623805795487910758626654680613470933778775207084308101770487725964185897853566066825501345672358329148994325861758949609087739538721564049344397894152531910097347316889764631322056220733560760140037807968597319799041255356439154515512705701266668213729249372814209325193883726099354923860654566371510016579206744576219887955775355491486783644515080976722977229867619670618294776972768202917701822451805792439479971333177877377617408338885703114067372752000773400374218615220034564462165499063369247970776329058368262543160289698442490197492605125321332430532616594126222205191204115383553556280499856836577285068274415596577094897124281720931988106895766129698714334783455176762907801030132043994378900104937315419021702964903762621385769965065831896210135869633099211618743555656381166801975139918174144473427910011790710870557403288507939965806506947570509509388432276785508332656719202819756785752810824627095428103295473079853055244172175294859513700805513171551442191133127399358823764558724414922931591049879841831384579195602657649208663376126821777428024075588021223652718399062291630140713480903706587696093069727636051348954607539038332338739415370168365133929457767195691048953688522507873445287744837926955383804427398334898866145519546325720194758092694368362552937891599690815331981165999634656209120158377862732045957228751892328988873823905726579112989490522164913835996083806809231715265673047932193720774303101693014749098351650346203933443559242520673005260305995260436627769939620459060905429290466509091416573692925196984754921273254394932084308192823127166426115735600173670952443540191016780651516989780761548804082935658238760883450694343570197909087511294104934439679263312106850054062033386025594780542000120453832202948785905226864167529930557673461260418286804919884475637771346221556909413090693849415365709695662247451220613064339143671397267799747992923607277548228471264788723429174312400194464434882117651812743818098001735347066233721149547128884942172055561314907138832870518447301622573059341736403002760585178302333174307551359092941183363172202701657711524746673696859318768723932555675369579702156576557228253333316756664329497484655140586297794860534202847458901095874869460507020827290704532694427693177465339346834414396901273037992226114165760532515194827070533296787758975513256653321644108574109609388849434583504034656479548030358668971999508169958841493790204769892723294186758794216966898154025647567630712551628075802573283470527425660111697355054184500496080398960476912636796887060809016297063784927810646247994049093505924297997588368259110118623780165680130617086145177511203209470534479924553417426076508190539740230093557057953001845379004149347506541734241496098162392112944598265403262976883342687929208208921945844908306899733547805793440299833007774900321037393361504984193058865502884157142581572830621808253974467786801757838619802252036478481104841349693809710729803691388518737348413932940652544109380388177369515891238243474841968183797398994339587222781836911362461067178356139835328881427627906506209999897316490242296744538675319319217705805795896936721807865477961325975046413440535986940165242805501246281493101051452752668061066605029928247270600476819465099494542391535025790185817295341592565162336192761344167764587842463647046592485079976962066881673121804833991122662521441139728016654855221285845300065585434265791463034461391247077449195361050958395070966924300774989086492428978126745604864436512206666668477851552912893922935683383599910445404139393411978748317768171274057079517759817593154383871146395474148469590198372733541621689622841994712354355798136024037150341096822844964440617354893784977318297335792092822383338026668611405623237840053265215253437057853191370518596293921972626721868309147943416004157461626993958081489226687521644897846363928646706986550973470358954582302722717979372813266592062838769907688405047287385138357853016320470647966996900195210164685528733383942175986541214927178024211696076164051522224630571329037874688475378679266413192924993237741383326840165398990373702482144365529100758640625484783434998125142491362881882300780985892143234360548269994737039910384196940465889500633097167697671025997516382849601157198214764273267457137630491662440910470282424816641203417051313904637047470374779946463352673970480261867637585730390381385526162440587329393653607830845619281305677305709158894327172011208062733442060293743264200417715286187899210285167928630699160111924225374481645468653877514704298533184311394907891676428001942955781126938769106182404998791069127341907907483536284909075586399696444601175975066747939401674435161591627891530864064442831835965775301563980001715617213215667333057074485161257375779498872073513025164216912363912991748336331993566370776070325210561144977224263184033156610410754792010975771572433394488618864164094028782679801536823713371395875398628575480366214235393079014930297887970476941893963745916283814044306929275870849996776892599897949875418388995751661988939902062801036235722603076620535001681499339657897496240826809216845168577657782045349787695580567440852722214414077962053431037544412825295790665004492922251665845986375141100393899222361569123678560302312187611957742307107677560755224090147741631506375957403845782301628749343328654981753165115513951637797166795513524996571804477222339461096603816407223387984460985526134786124512208299726963345761595613730464999947762288123609261776042203606340833140627065496389969479272179817351152548463021827587709840215784004373210814204988699095793650372361969175996054245315556108605712069978363124546512481179277854134418642541636698994576919979766055654020690353161267409554280320348935083926405397896155561208494731009954687050533790680476009349721209049143093747767008538289629416136153551414117997824599078153087834955527381180931107732192289917529056016498490408469068118272841631727466542182501057504922862232730674002187720646357583714485662428433217405327672652505700452861397879592097189716432342132863240515882675134076995231371713150216316065823663512404329160568034417195413869209747727833259938634998465620844230522335108379106081174799880704832627812184079020212293532748587510244722464278578576514679379391016662683251985580904461473009313423663642372647957142508927475200355897222640513468811605827636413400834659123600345222127027050648728034845097143856767506248591334963200285798846073554988173914254587293472849355410076827837014703331639749086063116809985234826891842907739883553829745940884797733033658453820682585906506200047743193666847940688863502605836392854049219268947035622621013234373643202300415408287732072655690908762338844824958984433637367302359110236592306971439435418389656626188871998693681069449725567112227915660374522726633478486291681831779551114037873698810765930351514655907581212201041462130011702553322969722788910898672488562302267554204422595506213255931314150741536735562218932603463026340455388052158524356602700873605731724453009646040440952426572955517135078089591854312630978606055854248965227890818549987367857782528270855842816209747633496131917409304349850592562058121801334509051062015078042580478507325082765896484409602576486469191607491031140486703241661194812590941412746344860369848120866989536635602482970093875816363228474894684850118992262184374243994827770807186494133948641196193578545047571885872473534252168095817015584067602697054820198172719614898358718814524382726792828301629366770403150145061140892647204352827067437907043761696783094262329630163919036386131132200100570884278756558772257324368105264729528925783483039081895516609944638428631250357386019609168742845199402962623799550930309057995400103680096604292178947478778346637125730089976644685917841687461635931333799219301027236277986221694275046306968646774848458952564738615178170766231025512833560108219698728838817798250887091643020415800818438723316457634817757459462840274157642925130819261763682635120305929948177173005870663034742646835595370831601690581575381598851375728916007848811106293300096871486361618842147555449552608761160180494579570115252180865341799969251738245868813436310727947192698660069979519741772660148304578531733567602553334576628804906007600568938466273927630536599634134586307799401070699512272571989628144346511957536326588303231212338369265484909235243057788699493399737523557091514294818951135028800259772519458895531915971573654322422911853031110187219764208666311322651662159100043645870925780817578824408488377291863359017756560718924048312029635510529277652077481365303139989689758557077423041963385936351955996714214860891956332609641930450440255058257706737211953813874803051293445271747375757341658383308850033796661517664476155633625132787342107889029566562221188493633533132201082813346711691459069953629059600723506601080497656960622598597072515112943451619978127481571174739326032103067724039685254771622458546657518279096538350300925745384075523765100890780881525054946742124164837732642315404645539014059796459213592085616994444987496327110892912730251906791419837570222567187183826855369043583974685087354481021429765877898097151707716359281018682073728647773737437418256498706110357641175106986555710582385516913946573158938987781713177957428564669922871237960963154410779113704545541083994565502767362893323826108388666876187323500926149297117125845348920000362500900755245185875929060397834887180467608130307870767147963905659805833361062629745815841171616130668078028963715726925633798001785317481380152273533022894790904345283852602784217269353667442044665534229897563643392770749257539651496202765444420550986666816572927322489431014566613219918154977837572307693984628301458515874458785969841595438365913124587576691671648671043297388148023261882683040630221378418519147369028915968936077400278138340689557464458962742674754179801449886399769420777548054364445824159019472920950507740996693392976959981541551734731472638403835132513203659985332311879456525913887194228378382521270572970374670405653509421730810370425511629234209830300585077833940176017479959049411457287526319198847821562155486686669048944847355365487258751837523259357386086557899635209132329353683881726748905103192166229109570929887981518267777059034245890790761309864785542665049930776599332344586589350523230009998196172869514910424211890810189888760497612202557107655093456432847017864112108628563089558722914775772452195686446796817462284889369759830479724829799054692903562085060668826117804911581002025739237730151154287470208973555778068320128407732900889432536319173560584346388373331471957983696145343952907664701282246105343096930754093799675184411963719252695714354833923534184263168787620107791446529799705178219799996460491218343548599263325021421319910207132951554010111176150159182844436963573717246607229881858711176514106725504898132137266969651212794826575573342245664415085119135371066469565416007196489847397942249258513153615269627570529883883216274135711297522996300776318185697938298899205603256415472776677291806370477345156403396724847715050564378854573806189948831851518025953784782743501445300704824380067514916213058258773018424517412978090498441980097831874826617776818453992931836065156348875789538907557150775112068019438689825344978314068264184243026758654818055595547805126616543869845645465745809169647678618419338140962175329807244269396908345932853313855315035692425323580163808194494687367604442993100517589765157306540237467270974470011488632569261513579378873648052031234529570094286385551792406447036901209135546134127472836840783475982239293351296061721591775715150054949185333299245724827555130374881205263580799516809140975893937756809113435371656318718072019850065546867297356434523890121993024341652303511006562889441552214471762537533979044990719165487553441168399449395242455263664613192335447969884863224974251627997623599970892169497275861373349612965202475829569844334928675358896077319733631308009401599587858792178803210573241649327010116764191193042828455155383167511672395232991264203661509596865329215169781690097597929505811991453486816622524061876420978595606043984932091244026969255139503830443953116773839588021177819661548963473791445355293124062603042918473796774928255443750443948257857353984624496787899111977157626791038772644152240734670792495474821111742676975729664641371218417520080145980384389905425086062049393519440500882426606985446173175472941449286176890897477646674683137142135207462777794024599046848901275917875621583937333328327285637306771187564098448479702468860911155192897540333918200444960540450216080607998220694385774371497259210108522991044272245422317551900498223174350800156368724138947658527120389683215957688248268805239040226594182273897977074851789986634492811927135713560226144706779323058142852551078200442958906661080828065537385610024742867641948534809419522263432058176257851096248765637882875044827059353238241675884062816681278166597643971941170833377353357879214280599894102277768254732216936325028923175482750984918922430673374519988000532107001563850287925826586304239802393347528052625238516436271481846540994515801207062726891448947619307848222207873803153202534948819560546399607066838880748594302746170559103886789894071435164697192378519569924464198774147916760825147276954092294878103388708314313627065790632643213407556771187458881090178760626883626561900286501720531569349397363632235273522237967367252928072694419517818398120323014688743946619317828423312842176741967780090269121724454557105596110299127396650338511742305933989334246662548371712845795448422921858844535161477829931917080252806375586065885987368216474728695830604299396654435226780356777253744590880441212301737483951163301453973506840984623604762214063457029191311906656898725688175398399434379206406642246859065802132304293882272300863822598413295246850899324516464545999821929733177218753623495584046255029802793809212697035922972754060535420558380111422656741194438153131632992820054289791154964342421030373893492670470572324353495622567491998679883071762895702125534257788533368386142993887584225056100520413959908523436739842316311560134374935346669906126247418321994235945626221294372331154251677465281697510382173391371361341080176089210886560391333055471465013490437644729495684276368808712724121689096879734611966802430345737685577003552102146434334876960727715475634368750268717113084747790347594316940109817380959088990138769174774222737996457608362061465324943256604141597912708510630221316466391842122668646186918939549922768313643694541598133400288378770387351846936699391526368900874014716024937157800931498720692248014126512941459887762023215815330595898605343793237223697443058844278505695588381782203310860547153533482766049315485394574840597616204517808552359403316000445512213749152275498463564180528062840871282420734444184267540272772255424239858194747598417179944727753222275049681260668232460069619123181984714131168644142440684206378889064005048186366543723856381749288635354271887390337573863138772877728948389274397642130209724487118717661618805057856117798365886448228879914180512140723754341374575867532047496920853687200289880243372759097102142890687133586131329050361581623359940433597590349835548073033686302657453135829323135660810816784281616320823439721218717090958228760413893418807600229228033405137587892302090914212059222882913265400155936146289613596436404436882287397479052294872445917392124325290455593112815501209359710419724583460793950110599819800914445380687304401725206629588513454877748587063161249304273123362276592326219365742448493177508928209419815033948835240163399328848265925764736616637816589370936640801589234195894980268559916705641633651020786737903329583753028581696211429012223335366645593333562525560924475095169216460775788277492400233858999332483848438959726933135218631533079976179288366570129651256810011457244916528278974157272964870304442810161208372697278247238060914656904649807264445814416363260498532909972458068663018556492555908880270934028967063178142482888890700879699985256374323969339968923262997839674502371700934100762200099990992358481905274273306848777604943539143957866336122133582314876620919013400091489988583813713202190710923538325104291968909272035321713568345158995038896110987111093847895328248665677305628579832042040187421294702973043688842104650492543791236023612806203670882172239618783508993226088867812530040543386971544969435250739926289017624081634058286056055591008409392554962714111695421975602549780276816694652564373162482021430160624386243032241484874603211823061138843288567356223809860611123203924797425718789679340596459801482517045214634883757805776248318881307997272003891808268602301813088158184686248748169705634057133848765701736018410404556361516625889558231899384377123991126560631929973606846347217672135791850614755490959389828145794160517315540179639015139036778975876750904715014070156075938190573294448589346847116389443008405381036228212821090974541160645579424565655964467831964272537600177699821281962460195448064977580247562117929910015312265603010443734281680228674977969539281470562591148879090789112742465779272674675567280448763783294198246974470446696975038881196874472290708263399777515425020049722481800676901124356265159499493311222942197068974789727649624000863158581723616912771456191586344253544828826488748959753800280576964523320916996402762815725494079742444258554611714708414714806786201855818532159041141113411364046629451875904667408438104861427170709819076559161993907546475651879144086184769224248506529901898070207245455152915774359662328862975522914648501518711347109163569663347407981852094590666931682570165589801292725796330329462285490250720304994231784757888260413616807153541868000318223029091098310744391319936537419545119054102259213088958713757291525398968477661853960134741063197370140623115189483252477721721364180225583470179508776908122302402960145442680210483747149292900525097385261078573148205908628869975892236523243921314305699878141806423356777765319895910497631715959010044374136523034388242392553689886667278540262838698754379298617560653793201977328764890244028021697631651869459922120880126164924209856527475225312601607506219267279926578016452053150898120489854607486397365885050459133176797210318923807467449407141273573466305849792548805937814059133017397394289886033939031486887594534211114841644988300168742005878329760763929721104896544087988502904691088494887864103665656141008533277710427023452538962129233830737227280312596778136243011529501099001314257146131545946839670432950214044325376458560387361872810323414666172149423179314958702755067123499942813336452330291838170202171957885677103190507814623055973163575678178669371369173979561661781097479520579055473192295438555981514958710494261204744152252992424571267064084347326402405816525918681416468934229351607163113150787200605235086318425986814512056734759018618777785273102975405631836320137473014028098223498673062821319481533572479061473774650514280612777003080599392345423265247398162924230148580313635412982635593209038880126356036438505469617683300940785021116252810139739985000992054272826384211470409621254867746642467931139367700580574561770805255551026064137119054013581020468353646477335104347183190723868821366208075014836924661664540916133131364876750545802748978669951878369593174839184360577730783948526004918670252003409834367987857758490654688885132787378097454003149017645703537196562398122063097142089779908723704458439791840180252481714583217395284661053241824678214182775509710398111813700161890157507669790673134225949335717338690705717908785150878568434278570971637362537593654419786699106753023422211532304185321997122346769480248697937244378544686973905387419242118043976259199841768474464440685983983918731733911686073277750448571686238391541455752075115093502465775204085536254206516012886711125943886493584817030173284862820049579630990191424615132775748568571206932126719570384025333018870267926515689770794805046671899120311333188977780886918077960969468185729927568492490776332211566862990880713845056847171135737687514060266917998149771878305571249701168557299616618375228284574749995166412995483882080980114285841804720368340506763369275928619913203073004636567176422271189099952317045050032307343977769738380702718018379934709874215633453153827923528790014189908661185172306640043226477535300819639423188856059624995383076938132775699033212767480812602126614236911258660912206908921495054732765350952601350055584383673838415882145490361317839611563332083350064861441566420878869259725560706729350508292149898116155765296350540443024879312318691806402303143168909297659886884157550889791563808802123663226112572647571134252180839093349317566903325708319443960123263601018438299979776915579551775878712595816084400358839029404037934134137580490594270608855410378897435256911685377982287575896263308679354268655683796421334848468754501006432450608556420824290177703097989964190190285694727894814100367648067730552669179774115396497882653365828652926913508104829086868265288487583435297882725788402379214963623304187781711409501986590169784328834699926843045065596683922998321446834288066331181295989104468694726118020704058641648993465008011609616988558934087034526491443268221060407509320396440753888423501383533342975842397085382759660963774747246401785294271779912532025284331253016869245762433574525817297605093313935078762447109650413129253343802321323518178997932142373754980694461112303057197614538016772187499021882546468212639978788613130572847159729005138451564925601113902943285505297462680065222444654670270596546547052417378627872055127959369772138518306043256612721343942140331927443498033964960576627688338843259203376895687743879079125156118820149300235066997388830099514848879953582917299860663895058063670371967693236887307144232434548518282735324373852733873914124511731256063537951912505897897371161609715631832833535259302442644916780201907587580443994341203214400053782457301014237422633340149596954851437873434596643828159885340063729914708922217922646767880218752992594646951936038881786913149053341447878841546932010937147320243022809622401086589016550933102382001566682825101013058499355798146724547431306544203764830741870514772724604285884459896615112459238060677032593608768961809113057786129840103119867245772029599520952804715897543399529074996958833536979543283005142541951264737939697982893678404623736608598555983397883505639834649020960623096621299107721009484673285625712442764268540978810894079736688694896031506295504924280124001416060758842644237196576930079612098719503116131038918163047647511429690354274448947132678636940437452270190043581746501865655676563580962305969104741137252093011000509902807960508493676677130859582028378051844732760712578623332300889200800847406630750857135601016129393107969822910760111999056023849637583177961501655498808157158421606494429684378056285050102354404235333534102053487359414431981317747902630658219406680468884832512249416122681235219401314631812488130771087715626431998520000289232283677447887854273291690008406901039958622294515408075982782840054257104957284269904965313974014646310559159515217152888296590271987555351270406518679916004329662672274779263645741711080599812210987050087399167800760753667996913186284761133522972842807370658091381839806032867333298165791080244000983005390394876466012675442461517754234926612433986617807146147855476955971438749479072201818823217884016099240569969133417077580991194733308816188041137264881386386636246775870097667277530261224845307765934476528424254435137825197363107127882253977645447178904721273833745802008147516785697460340478209737608012923658024558448012325179845980355672607887402739259700243183527894134500940100572982372724310877437390831515912548044616590471469046787990450720610684341643930198960633030447648903753052944216270853980223487712126130136556122022592354064603340113580779253130068890676134423824587850381964270957362991226091453035554447546342270360524052521546768571167477541158549991305528147546773034773456196086282402601625023206823293901707982673304091289255208951334607019517493917736886239540493089797371720188674407915917991917554310684710501755880286642701429885494564650366947287623799358199675700047098936929218538648563369126528620500978692057766314737798226051066953006213435099498195523576580229954235492830078465487771369621546858750773484701692721540460388403579082172247351460978120857176384798852577551437497641388908422718815440338969841175680879127111216417125945596231120216022581497089174908651754418512239271787890574797946378373241485863170216863339650484188065457657872756754492184936588105857528618662708646562525287043994881287809406107765897453634031512391674775823730621326320500306769928683383058959523822318424083701399441261840930643751752737925118842880605361095529857825789767692454356436665132323980249895473948338720961146696818247609155893798954218214587200804338917586184438958439195916002677141457113917336612846628066112275103032020940379734798770165302784469000116451128970780946860790994592778881602726980664461598785916249983787851156266774084300676240005112452769406498358936473364694475428319763407681295016272241313106886065878463764195764413770412394920230637969082153819091833819938977219820731743740332274726639031143245876977531821221435348391072577013203838319364394583126212131483552042467436441762878218347755943694360062810517425528435589093839730690625633512103432092047788379946020175940769515390939722985063876618000261314978117367099865509260383128178252247307545451511279992668584327735027769807136746325927426263560093041388797377068115983466126562098913013279867177571173016866135107511178990833960936847725007752527511614189639891238560274302922410302204396823925634331347147914403936636852460330559194665140262675557095497143542472021742567347193249157698941585223910599758856129591862524975051053298053686900374931173921664213521875421289917924174520065685649748886801700484861276499546658838277788683456203940953780494004040582865464627963654744181261758738485121955231239779968289547167746932131054059708561785614615911150790501414268680896831570322930591667057504539698683738589828001337892665449059602172575067899493546468639186630699669129151420420459886968068354715029073023746536295362279036829845761981344075275773737245745601295929733236160524093487227343687455375000863472857198788762039537742612377608381527150882390710843454239480793798752837301958556930563523898734539232394722875537444015913454960707713713225164205192383834938532206755009454699975192726019899023633145462402200255066234197316141103118880424887354210027047083666513806230145829317506852368154800176592193196043166424232525420509738123513983977945376003787628215698706337405372744387323678685994577724308508188147743384627812776189721185568632001604763253369194005643671956308798181528659426427955509561984129725790662325932951158045410863338088297576637238643118176858644086426909114852351182868380624131388137955791084253735301050720342813301368172447474991754543536516015092010274924074624521481081884532491709226099753371837077091896626631336059408567451352869389374237099530912384559097314976217960751048365631026705601024861275750352000725655478834145432289967082090462495170366803600583266009942570701923471634962622787064279372216106454259716408786876079180073649527353138632709523723836660906596487035637189560506866602798538650886921217255821947082800870635597743674724584263449102966159902616085870281301949296617331288636652983160127960498168012718916614068729820347822860107987021516367015032730041548314671375325423927961469866182444857220596247744962861616866367213734122103776413905313068997440205520900773405205712398217800123898611761734914895872297395492363532150526287324222802745170356300438365062889970375368574962729145148609022511550538277976672193820223627463839797854373435197152290841935621969368977523219739503762155205234313538420985093110078182677933370326935277849945852630495232186932289238759875313994972820027481091639798215156271709474331176701839995283896199574239648880009626986514423127290009911720207926398849387891052722161170549776408744278480332759244087292977796804915981485436597330449068931314198891629210979231169965090816400181750163062907637629538375832662309365324263247137305399000607353733048787747861088855345152168696146910621297577832954763389179823251052733120424579878130583892258936886388599422548007095423078830922073934685798086544678319268655554705001131694178456319406848703753809316143880562900307081669986592916894144283441414149656183450161901540895657490496531256619952472146227526484470587467540325332884292651046342317829887580381658328536057180362575928471657055969667261377135706985687405157517434185407036044529699738791749813968672716001063306329575756089600378856487008146080412573339403430075674310750377699492998205435952688130819032945506353732840903069323784357275904522348551082147840118769590119306455588359361386915462967165422803615560300624889487153646576775707060973687192722704101879591015526632452595829786158624595036986544043304041022292572205347988430084645752689436390713074057078864286636217962398620868388019830634343547334827464984556871559849554465485467023970136931810971239708437436685616667014788793177033192084436255502786880287842294309591238596229167964859209000624977030548733498703157218842300218276321196457325516966713666461346263084568766196571317308136810176012498361536564230445686714516074800191317655239100295568844209799777905477932249951406360971747580923853218091530788169858440705663576726949549809756635366515855862706785542647298894180852005099547867731948090101633077356392489516831783079658116995697176557912982643973194352026301566866593339994154285209882277477588169914296020933559431758211163920315894715489051102597164221119491130262056322159641974153039629588876576569605103166090548738733830147431923070000747422796525426935296937098316441189582601513494278164812154807214911863135347242883506016612351609576723853996205947460129119694744614419449648759829546527802439988378968729474289427861425169906706119127906746714940003897368663987146742189357040502356827168393501227066846304157575937603516196853469541253620098862017822010521215125868257985255419694196037866172835705613589982551057564269560211207888043955286264273181362466129828091953510825201691538037157056026739565257689464611755832707069409024871019578922569621972099205386883128275455644112460366251189383013440982688538804215877271387114280410153371044946154756118875363802770281211216003565980285909466548128441735744315573357046360793855249694665742505033254683497952606751518004635487720052729424605147554803451194425104321884997179371618262608610166750353403174754719524436091698862730091045511973620032697470799009780501456163342254364859530375753281350618133600748594884986904268155407676517152068158853147268968367691821402855590949851976921133998063097489157537838749309331515142104532119300590568811055763521215617971112010606531213686591537275249811454941287592113963766445081442627039207448715247957727462475931145738710258219660871917940329776459564163945055853574944900319261314884178702633266412210375580951336095294601310277282248060059708258519374531670012764426875892113589143681875701647198244732831519705753021715454306221490651585191489002520161367568918276439733940900150951058597139316652170826715466454190832574059483593932771480635064983071939972748865505281022127573692815577176923001509885400090882964398652114209323258487563128831882547076699385066805044932805466096429408338301030434864690909875999799773437413317315799949006165210012413682098889551595944252963163169680385716725493334150536547729427189996169845492045469990177899847893947541400158046906886097580066111507036522685243233272182894897769952898349123554662783988455063264015617655341675932322610888218624298542100868867769852756018642977928263336977965777417106642974953751273890345964794241928277023433255676016151292130226985978826512785751334160238304324499278512621529136880138605716022235266071916702887399751071386910064103938261535791234876408019964832943114803419461506132662947435741488808910206452370046655982442786510467982880553652808033359075247176875300514774763173371091177713512076760034876828155411409050765404887063262189329228413667237230593351493436336922233515697351655487353661867442495835197865000532104086932943314487468599785274337142795916865492142807463023130700192606182371403627318999931464450972124890829762729239479991944219620675182452437502269725487540944360586175646558994610196830676141037453933690075305820730143593394974881836445163125143205368808908200403479124354567605907481097681659195366831473721540956408322323737998227490580567527304732613238428448124866939616289145325442347444677146253905798272680603957569589951408777591392254635505171217167537375666965829282035966216735136891925945527009272738932653055833755764035772575568779637117759803889636924610039820696328795270067858132257251280277918781890258839178202954853824651086765272374400986306289114633395573528525375581583264479114790037720297838789743565085622528761970502588362727712343202398112366226326036443591991006928244032471880242103777057380679890081778172545838560929536256746348358331930445614036466067489880436345687284394931816418675956319638703123969313666406394035231260098569654460046277895754887169937365697609702056563071079317671659271369552115177502389512055825246522765072921893055648142160545002816178686556936967564347294908271242600378873843492365205934148961061341455696014867711152117880755651070497359849595685636986931597578732193933717056439176155367964421184278469260852899108681883744224829157805012255100173196982489948684976699408182276823667228498322207119254348335721693206969406202648961523186512142903741632729816711881051843216624440863799882665037014155436137461137022742654349186110452904668807174575771382719035591367072105193128632822349972147547200335795282147973987001149227092719025569466749217073387690079000474650110516747530783256470421712167656526594803535809337709514125336391451523564932690668929768996146964958148687190754466570275321191617376113736511337823299205172791140683410823899421961428411360875868345827616606034275856813398544700036234860597031059646758287982759380363884015507847149876742677557588431031055577268643176517097060250775530693988750232135148162580963125538009876975008563006454945046519401618429222783858209077956796789265572185642750045050020292403826944353366963722420084433859514659034429657606381776458148614215507861347931248429431230207719675752819216811562571358142001351007816399338700078435319400532744129549113245606578494061192308216042531276357607419870845160558044207304117131688763176325705603450849179126520154675471392044537718131954225409601435766091227831665282114517945436567105542900811070265262856059569058530613009752973640938073623406046083285606539250722072872106859452450713225026848552952186741830592192652449499888345696520227050486860860851386192822758276736907656022144719876564143816139051435818669223529320900999810723426868214211897352429131321714982400748201341014449934687800224284846340478451585887728677820239522973328777635385149748778935864385620684818627091614153743348588102232381747138299517896707040715454654354819873502039433397270765019907663386924509309117002247665110154054485040565972983160567972249658808067239133140074782959455007884833722764654430924720676440061099620306928339174166352845036997891404210241509211623792785644173748742570224131523393946343984846436599437497810961761798506126840519275176378941265430751048464155063959576284498556968692278956827543493296939439900973895774212757978811705220903505097108360178102534759431348173851637203926074853524919639046828667697173851906979063211486108665896239258312701856279354132917934975345867265998266639375726645888892827575924743666073798411161016215037357238488685726065494433944922064210087315298415359836645215237520833959491532928894268809156549673577609798341547531050514546727490350794205567030681559861034751949634402420873783466521470970810059819109414362593625515002767625188699279840677966326977365039009294556441887486660285373428566695557861673316477968851735813455302227162215884492544323454837950530770500901720965998453282307095996979008136398724058341262867491692789322292593116636577802147209008676485366008888806742208404672079484158046045746285128295529940096636949046465938223519587519091001169516074449932785603473269401021998841067051910151625963541430718855325276283591618915758269852495465534196677079216119108514924862161237817935344534502258089458358795419213105202348236121076328874594254610857390812290341775912345966939336596816719380238609102370948963526952513782963678479875249421937671787947429131610320126759004457055342265663946584359682930124955210646502341748027398424036856498476433871343463587914139428539854173051490063095670484752985670162724605749405419388689120775835997155136364268252571308801369153209189047952719549768450601500035117229285752034205980472515987701366570781552239292976183021293149373115444971960009182729815764856585557512818481029581432077764251167894805158249144203277984320364750603993046900541509722917829251530019208360910603756703009693039273807617531122386290037384627603856557942400980987149798910774917234465396976316210102597725814833344778414780683323727775904985577471445963139451869606776677752202672252205274478709377558133356572952586825308671909781386859380195306884310675301582070120497431535608761668213408641650730069154472033186354428213207891451492645993777503996088867149096132311173997589380892362779995881540835450656126006092369200619341931070348097605663508790581306715000433771097639114475124130310017335662033906870021825540538841741291699342047348682347839046649944370051878870929273791531919066321482441063453774538851933334296293377945909159833894388383516868817547254302817533483466761167584815659915272334245696760039696578220855266490385079557067676911979572219129192453552774266519708711687124281569513513843289303669836285226021812746877080767101498933919797129110658419250766895809001139646182450997244076416428615966941977182725468430442652861047200539921350362869456324748242835473367635917506157756454283485844312123385719919175044128219047954550681691609569502883460748591379641871834729697216996815694437429456034532753591397730093411840665397965121205744358283537402930407641145884113814060578776714813835190663059317833361539845110511229078047145926116792585157086373386645591110537664513127229065015030644148210502055182031336295762893720065607137789021092197164716913832926325729433323997455607748096359322666282883521107060945143457096864342129874836545373216925429829825341988712559506837981279597752351834505003232338602511351916723912886744490689908234021133310896913352452139212040019035443856100272240540818979479215171081991415535912883589564040436059930175722521319350881902572854561861671557694390813258638927418867001297171048176936546144966721848632262228663340379518276030210714565887115197001693352630550668215650082598516427587959119369365817770770649318530599411902854346469376608436451809909338602683893836178375581223216683915790282743246947105743637155926984993760965739000133705098396841892210492529203056178218381383473736864263768762071697897890200318985046149746433131887910237555973081865937991994930744427725426050310429460180041402585112092382914569946782480377995183447715342344241459461940516654557669048073281973880680842706745314694264435679230726523130325003986510926455509007461693315316742567511815949578684500695542209310321677233056878296776818642219469991898474346422061951858551495791230697653695904665106805310647826158652554624024193650183476270949634005547479730453823556611980063315631284053949241192181883823119568129111811587791888000613866376407594548457281601869020252490142178994512836521629472821421995802314828797300792828667044013960413979812241824654421559231460755096537611016511928901249639858394943501215874750216809436894733484471677600937003877763762145294810678334274077635984260417512774595221609672028916688770610079446351564510731552955483918483350689513391124861442917652993895922974098704643569283521229094744489726131245523874791323542118659602567980660539667084328339647974497714104272456551903967018447538749054797962722194480093964141483975669201492460892196865716758507710207497669598740078768791235927938961574887942290912112874267087946375329928641818989466224507098282881454120554854331661089153746950119672274194558539401932496645072278340670395152080510265891029340255658665809689825050611437992190003006899182692991490623301089843799540020707564454394990485258882300556998733871083430180071277221020052501841331043101698766378582216968228168217915107764792350256069939273795149399236867935741227869507596981705607783844227405441035177956101897645166583023052691930952691615519482736424582278634163296363388018290104430674679796943345295713080914568235452794894865825275229206953542982304169044195953548522561717494137687807859236290260567533177476315956583281492577757779721538977820520721696980885705269698378908452733839700292021480715754923193061042615660484361514628202762865758598439145078781800069700357644349423894642381518626450087825555821031418885310507701222866852429083618066582198496733073412899934527540580726806684232897144332342462535217787547564900413878977741092065528044983298572810911570749037049149366578319181225861114708179662492501872150278229344123497814980414450561629956568370614281183945333874657270647636879135847461557893446886579707750366554193360000570127910074790802265850441515685280404144372641843099335622914644662947805719848570650906369994401297687011597373644411490923216621838722651566267600685953620165378025465430278932058800045731672556676299589136811991741314725388499665922519400293706945319191026407281594086580955228394347283451246179419044158465314826659052213896752207273739878500250937611427464275168290480935789600949782930015839131233403004939347980787926826928919210297972240691201752952911046519792576556314365142742005928760291182629968518803169849027823760137475182295433789310805044220117616997454844288334273213222155325638347864656026460494104535992656897786618564210997348172200115335347435888758034110700777000324514541442042660267224542790912422915250493356792547562532391418872699438546554820128699449176837958217090082313657421695456251856518494694703721228031338013811629483308710041582352551024388305953206787700075430825411115300252334324529555924864103886158482772240864512612593965108317610847055896717352197220858592220558286346321006732636508848898011949579993785313106112506737800025102160660943205146303965699693335019400389858761160239571917088739350369202599461405621257530188320379319531370967718550619391175085515951840292010317433133392228242384690058765108473164782762334834174578757848416056431269999937291704528859055974303815171370596858692472994237005341355164999856563284203630541184088495576011837464960314078491507213341412078873097137609689958335215290140872931544733658202719924472421848633431417483752627337182547304392509206991447216239128617613419525645213429756519748934539192645230815792613101167456352274211162674723521909267422531935761084062353533024467579728240887423264737978693772277140983659577349340931251205811531606804397483087853803705131865578264026934612433478486056534398980750958165240971452341322927598210040132770709821481980156342988217842606988005719628328980902184113019403927650502807647529053173306929842557361082982426675373189037022967255305091496888711178664843748937922555780586862414396198993921249174053701730477281637474741598205950416548583572367082679167666786809146380810919377771376362775892790990797475463749414011096656080020575137024506785688594229144226575979479683122867205704135107468311697940775356411998460583918800940841875516189447917705544855761868593209799374102182441415253792368319927401645129920119238537980226493384149773270304658662351889726077975503009023826897096738179473578562222519091919818441201546894145762896233120972302056304326648969458050161699500894078449574200039572981095568723490222577579257120237328297485520624011266700927911414420603350236988524363429664329897846241749618161048088692153253852819654166877902229918357662047762991956533757360177947408737889861174492045779469885533139204488080500634053289969975380210718515971805516541455777490753496369740940872827364975799975426412309336813094174474108322121789493068165111379153908767404565224072225361487508451409377986282180384586409285965583459853401015324698699436533573159272641193424843206694038842289948991088488104143731313522710953179070041711505235400396538014384575967278472954653694540821478755291464043098775977086139758616468308109757738990538766364666560084922127351523410993851706182936227091538922317650926505025963106522718134035757729962834389715586241759730936540384061807248748022288238928223298435433391662404704596559912382160648594437701259656762848465649134994809467585213503114275751314350914816910939046285380061694473129733482941727314294640941264257800130423628388935759302452209414970923418172839116701076821429584648374361282849322587240245655217029844618417814075149363917016822186449313372907520628491951359325747746707064488445701502817569391547644555986990808266645639843337813562447066445183050266200906118088907842927016479082624625908855950268870825370411094997980932706582832285657892901937801152019775638206779732041530049128115398526605741825856957851570068595998304029617118798814532187013686115697242778477423440885219038206168923591009878727487153613281947635867386919183882805654042357217725574158500634795525568919392895515619417346474116467027757799766664990780488419342947338286868982245000499712958726995160129966814693135031533059987609632253792544865406021013143873917280093016652456521630115168208620284170692635341033392816859016588114799191338706253669508785474272814144781110512064600015480082416688366208662594529399114350146239966124740774805350744551412037482697899417137602785194773435371095855204646454082749062425722753310897894726004673918417318915642563912525362607383345216627808455759107592953134921709788767177539773749097338676299679106398327536221025648119526256529611040080881121629595924328538953320593536492808439545003447955377266397814202072767090121052601732352496107748573898419046357444960031889849729502867494798019499550285799529897080540273059727076912370643181450199061223327748633860818111273875202250993382784275252461218526814132786960248534103329208591777310741999121791130631312355652392612418284311330902907656092129242467972853919691355679797501559451408026399920828482461661991102322412887147275165523498189114380552609273369982205692862967185579566224226600880584822669581331030576460468711038753440463983552941259746012197297249977975360074594769242422263862814538154867697360906100077427659728342691432259920919889668945046198900901354200699110714469873701183990755440248129801947606156873403838537558317620355317252444656906841620786756538625691420888646853169158054756826874923290740858202517711202814708919486509598570188889295575468360123115694229919351374045041837715932817766562439352679550412293762762549932675861695351717723572670489019513835278185886519042842321367430397283145608286553669531449763575631878066417773330800648289154013122693899188614981746149105022075116130225360831161415945461185279435814295240384356071101588689875533884133865718731656567250834713086420143503196270870298481337044701167226583449922795865573612366910138507290978310365159925011703408498871950296790264241151307243181852602298406386976548001955045752674072909834332949245494935519491903858803992126420083319714925516465175402869377836747605065549845363562925651475724496650918929816731170198674817120482732239603534549782969926211541234434302000816922934020577714903207207840968536993731317217966719329048872610399421151470493890595993724092479494766102116447648729956167101819529367793218645250314156881126981725465847223097810365810323969194612373078086917846085078108788756513559883457598432744403101411151815399371935295144614286492180229124093133192816450510950816677963195557106593110687395734193955944224140216488009325675420334577900074573406674715075283877476807483810929209238994439869858634944733043249099069127116782307406769687811517338575201430169689595773576051547537557245805149000164258911068494203099949756766604513533569237519009314640965530768219991691439980113249995523865161517812556268432074223769004428295750740432677044285432796994953651535436823231776434009985650872615299508223797674027764220511475171509181225491905728085690071345601399655613600596887623694437480655562699470414914140680033138394197438149510337624674961921571216365442367497869833159902056991196319132615760982543353591935959973589642800040731091317591132159385918880941464306968483874990114727637390230860827206466519336400043838200075739820590718749245274817491437160811422699878752565526978732842060751953994126411381026808995392280718295261072208643806780956241054433945326583892567242244393440799217441071976283408972396016972794370841414616541234702813204994483997419326037226451934996505656037277815337211798982352708458438168540700724159227034798148032667421036223154537935898482571182327901952292017779946786272519215721670560477073417026681835748937860430386077993654691316783623291717917827586186880923317052170334836408582033405717870268519093850404692265267633324097013322149505290658987758387411075070330486696885612701164965615413448581210965987624202278927862658948353097536332791008109602499188416955165170924281441074607262980761812112724235041213976103478361647841485378463409188119488553960201614446848395185042078831189221227546786037875297218944931380494758306082159805490647212070994363684040980754838608368411208189731876594806628863506526639660060343944963122981882034726629665487628053782524487330313384014881732221437708707607395251557272102586131107252770880657496426312619143494899362011230576858580193401500974272055555513429657552387905302341633328557024256985106112495152225583229399534721126754506872620067346166973693155192985597224245545267469499928690761311201553830192607896965318364703687995236238231035032672450069295712302759214282292508860451760091606153814128704606881044107684479779904105769999447651666604657840130535208430700039366519555830627098499489293820108711086133631535511630474797754579941431987051736255503683316684924873610735969559882354549339413240365168034037957010319942513890754596205337865480930279211791179478073513866779439410571575858996615222925536210715582916859495642444208696781361473501003303698710273124918817518581657500179124849705516182970723406994343463016884155764524738830644326006589604208489512378486642105694744804132518139923889249992460443459040248404519665193030779190579982160726737192652929502990524736837538387446873937087250894993567576666531518082285057350996075784499218477094176501548623458166360426684491915641148571971884855840688590293615766272797694749799309131813194892399070944103596596263870990983830040244263505212799424419000739834277027919832616725984713428434130409431496997494817060508929252875569832790908833063984652690795816893348457273551471326014287585056456613810636998777078580862826070943511852285506367886769788759496260986721114941573786337601774523738780022826211612922692766785495323036475991534993472446309593143622414369549339832505659276779434748645074060096735541203493663782945009331513132613485705308258524376343472937548142338893562020034920917521211487737491301129306514003207636648293619647902835851362312441840738638698757454383779020808378201584917607965597044234019935977790460357025892104474097732644157522270255066575464363922225616121778166920857962608685555302887472213288152057071360262079781784558144992547432171723793507282660691115632044240092959880886943174839148755425901314045895337355213174020844752744841547775605102706836794858996777470463262851008642320797071429655343389285046564154576128742494837180407534188307738818384725890319413979331126999591665053773511923509519804831851768447994788992329138395606732836483105299193439267336854661927063866196539899455961572612030848525349056921411862596303209332681256433076942107512067088621857928364953442350541735476820514769442962346854181624759589480747401088563586304141888857899269343230073401655579719546121061709044872746003581031306758685286032027738952442217021700241378292149126246689608364447250577655003493049194679325315473786690379338591067335540177625623376872485694571333632985664064926821038043841332545872025507119911804166013935740728491748878411799319290060517263148347610464105977539776046607936624700964738558315461335193317095186756287534833926843674436825947595130591437067598905241002037413819640876623477003077814916793730731187442155156389881709230117421457671087813891281406192535218390005094198097914675359353888268334448424442118733607106595472297453757350701163050979086349146317263569030291918476434318002034639050216383608180586818530267277671402898971485624548710178512766596766430591641999515678707368555656451448022580623734499413467844402527604767111223570516428846859433598503285669278701353240116494024862924329348711071191744357421591775958993594567674626935078128768082885027782791384991987230482609176422598633555128316051794950087718296677590612223444235183834881293801538485687964014471870373004323229084218087124557343011711680376249700245414380140660169948163645218091941660047926009437890023814826527546760081836239818248589489652297122716955074071853750500574932391384184143202833964086370744401546635791286020642762738127885767922604115103930657199136225895441636705850356224037550439914235090254496502398562189915891244486634858599380435344677776895829032361695171728620509115988742482069702672717118958780415682314497075212360164855525713280715149714438897745948384221031244269380718348959374353990074005756229597291799764215581941981711937680165545891250500691049209199218269010841220314793743395622835658736979137937857184847812900903567859202558717834459142271968497346087745129022571890911808752375845043143111965469885776700833312053091098532816893534548082215596518525320813948021858363548982295465485504651435570982913525869004927967987198019545489856595066476401888433184874979702586199246739064490271253941756950299741963089417654264127970600869275467536347577398408773072895603998293974289035805691933937815030756103731339582710550224773981595962292072167067512980664421247171094334208252704600109321244885509229536403728884421125573037802609313040638289721607803434591076123828068540150010091234088830610805983362628373396885704388682161586461838851527438078250191885797228188645179694163420883616159645550031513719383592642257396985815360853950600780352622768389458119184039639684893069930888943089658639644372925506290542225653811376570159930715371374540294547676958183043464047262140901625769590203560260436161225843148521833505823669289556060432139262895649292779239135743265791003020930537204192796725672143391318889113911239763715805799001024253374050495158772078548477081577965980834803291886946520373818784023001899112367500232805258035892660492335126549584370053755132617706467669935903214842814231595277378913645153241137135930196865119402785123536087281427624779006666582759138792547199757371988692832808484708984979255414620608805077241134509109719031041647021216342296220747105430243591464108220389742548439740134463649270748233714381191769367676476908579616039140353546152223702449376840561739153550087265293158701025920189804096577392890749418414966840181661454760838294301198263425366142092791470824000571854465304513281607675804444492595709969536216398227764655071314789838277953932436004400995574716696524893938369526481458895896371116567533708565706777448764724694279306369767277994148780503849158727664192687063345780765095870625054930855836693213555234861612935832674164245002880301624099843910013085871746271154517754859223117526032174583511486834658274554908489308507474968596076417488310516201281096226607364824844834818904856869109999039606147505955493862695871012860895249907425248492163227579825760872995683905075206708299907312328679709931601309237554072489652960969038746825626790786281326701694630143665931039192345848062006263290200922963208552053804572936060573450052588893549855024275265472230702092613873999398334269977847093281853832195596004717422832150691242311938279604359098612529305532076625873719157681687918661821335340247104716693582881565100770335548023743002696170218420773936070967166596879107585712493685053532388414559495207432580566589878749639227701383806005495855937680743269304682448713778802600088392947627560889550299700364861754407127639384105798628648497465200919365980858183773646627407231403603990549544138722613580106680137185847764842407031864268576609161472553065716589799653282781447008221981522355788263854886722461573675340494877350517572081498947446132795120213425144599643836096232360966953882747307863257861538497378392912446941773395548844726063565134184254665133387421420185855511263829228197475544704035322961683117122496538761617320157080207093283828972022965186251388779218854093504594141225915176525809474286269372802096485075020241880386344282900110829421499280353478163771259006682670541746907740760768979974715634460804628000247133647706378887995497517118182998953558757358423182134213944261589024448083850798392448702095280891945826155346444090544206722634719796987200006399372057764459066358001320460897173705112275354219868996222766777129925717422156636845928901229528660753148496862006668741729162061899841283176162223225862885537818434820078279606258196848824527447401417367992417790526246797648129602842401099757271969863387841276366694586871133077343400262154125340047435178970585336501271518713089608918568670998538331477531111012306600110034979756826376609981098471810002506174943624775245670718634855852015736079317864604892255271376883064467829560025548261366006575950309818760631468942508877676775358255714575510989323012119846081726133026199711301880637518118257594899303438775971537143064626792639545738781441265336734761765459573403657243476230058248711349991039069013656242994353204534059432800055456492538596955418710119477905375126925107806295828270558476925188190175961384155116514149722377997028743035854778229244506804212382175554501428827380581689885864027491073484844510966651898203378300613963252162549168852418565491527624258634340935708182240578795385764862579455436379985083855670258199657914935470459864014029425829136278392960478672878025946766593864193859356826679151601962531478458639478620775256128527832607069972739956514923537267110910683692193828689589313567198759576374245832205530916012911106350437562199542596902852739580921600130559973292042854947459138555607650768132128037598858465560957682069884534788646886681578080468403734877361687588605002738012570700788048565400089594379862180424503306268024175156150022018972889209274121981439911701461899371104949018125930004023330349098042349331635251989241132854333991046416192519735559685546907353471419424045746008992190655992362485227735250681752047166909254163138223049058081486110540387763648033009291055553952830995332361192737461623045879331780350374001147019411891173490408440836018650619529641303143628406952318622506543385447890980724916877819323479521275818056000700853593896262088302457477577612882828005216435260197603370502036213629245833049167913572923956678424314498008295647522354802848802416047072866705543207391902058673171355861176225255494539973314091791211544808245917592900287256723845610294096985323750126232449154536113246533536156336374424894512282916968483838487797658156043740486726874165349123088719104165403396468825977569063502609827159041813363355525492299975270980325958026188644856738058550924372457829879617085172479638844012284836859029921861415739403016249039590335661473568409673762922879804079420024495424019621809110221046992556722378424434375616024139573648131019097479998753169519198863087344433693392881945792517425893659231868932224375244380894175866246932836298431218027108813790485072883965811052152256528788036749979009742152155972405066469865668612408611602824259418163583757223653600782715895183635112947283152270739609197948980052943310275747770383349378384127282512298751564225723821937128678210088858533366833275686225069366611602378437627883457360181159827121423855006234166722777992187542641414807038038478080452573557610375151519755426179717567548183567112782889868715861465873524521176354140328423481198976416547763016616777073238055620809013055541931614770025682937663622226552028180228550183880595349326608217991507526983237690151506175051643870343423450307899820619565526900094173641176687079516955789302814454942391329029324047276564454738761774217560744804662463611553782770565786716513800515928003068724828738267484733692704018412328729497448038662978208296599697468084264181377561062867686687656626877980363536702286025667357658752946646271887579712519343678402092884617764105557900655315325985269078308287166669265481236726419712005701925435008230671385115864570869794168758609559730747588749304453832515399135468661812114991508953886293094784737612189172371075085098903580624477934411039921534989910311572819607621670320516589920493783277239041112308516725425736485460301584995942084372546204078893387677225637883395327539719701923840212857440638513546801723888731039977242429376945525709996968009104584046967727838989630932128584748831331444446061729411059060537374389917699283148833469890357929761615754975310578360363726746042408467578264533332316544783804424903350381453759246409044037319148939960079885477612968095920642958718170466699872121810465248258866804922592712729242243966352383211445855481643713865944237807577042913020135382337305526132853959032405925823909089968036501778653738309032173335240859989651716965455075905643218914971085585997364397311153426999286926730289351159957078580307316108629938686165693759781195400449092402025415666475056959224412289753533938357477260308663457786094744884644137408695280126766656876544586936837498314449137999264269270206445060540396894155399712519664196340352825984577412084403024718846499666720491573081739920820909315842385009277986937398205581564683835151449946721285301172485124197338950242928208855906136697885049468429213096728491247121199774361907375558620477593535764731323178427869442420730454361290638828644662671387087452802282900070948556170436673844988364703341736757711548758880907531852181491409318632412364211390182369186402147928479033373577594453394632038772452938121811874503213952421205508710286094301771586843586241423447860988854432397561807996709894437984160926803779392639214086119611740939898424923303789855951422365149104949767092168623229669111787165914572352266008199143557388097466195279771058364931677655417324051212364249982422653805183823021624963160535231827682173274065002470368453679783096885158404988422820995323653892938245699894634254230509707941224005465011867267219924514433325733993206745618350340508009941057753348964891336449727956615300158914860471710324932872358349474222769843553143402736876906709008546576832378144567601635168988745182992528172227930212092009013830893934744185723863538596819204312118703440513939131136594469728298505866595402739031552250231128538381919701930602512697632661193766732553742663696795526459445338047696426673082164720330055508806470072758902277420036074204798608294240087643651561616818148669148722055931161227294317562937563279162930787634302422642965994001306728522635143780452463361234596160701681914341128431046673303337531137316589623552614356266639113242470831621838372979863034195316335113363221073828985068223677352592083077414622394600083087908388463869540969697696551882000860441398566156075058811676190329312153623754039183236357086947637118510583480613006126933019593673379358830504516123933796884405025552345957904551577095794479885229036119110692630148274158771858455120704373976951823035858622285230751158689464091416628989734203329191109509759571006993097529896086732673884199262132607778954517685765596853091336784151000125986002410663112456738842797512864267482486693458790491336182944738577003084384245912345644305507843430031739629721102409010724687176296002724601001070515523622658610505579151758591878165096006391241387710603302229273888594272811819417663196182628557089505998631561600301151350244191301048536967838952559245669882672685314599378642852920277180729349848922925186993198799721702375001186893132704260118119085869105152402255297651847730587355002718897162665567151862123836667503657646425537629445282447524491367777219620802796715303147033559109073337355734374596464549194097765759189597230593720640704203089734389664764814865977511904357638484251006782251632416527682179821168525246975933026223617914845170315611944306733339446917084633259274853338057804279345463156908282199181361805391292382233469169372860257472339105031652374337432843761482540725231727241472364176111783102542874557814448718539754748374632873407015437643572130900176564478882862612090174365221073761835380870393093851877515965660414875306112967979722682274959700168412543404382755891914760367693078906492131198243143926839179263720803084069030139238890205425216064572576970309254890629968298238828912611068545859480193120602880572275557218561043180314647399221900755004139718810498294035259198652294392666616211341148580041468138444395944794065953072849500848143593857682372055882416403534949740308632926950152643170048344326448879611768558533221746031951249727335418512041863014239788704526973936625401397216909341226729482084373018633937397929429814886256158077464159171209054925451693683187725675777763527175621101203209019095172465875428923675235422127840537471059854341976861790186774591238070117297437067863663104288018574609571022684400791230951061962151297394319501879783158458262414477845090212255768939856914453568774811543224448679044046107523610235395244204042638765050568865327784337915147267758592933388396918021884104711541315900681874813597198460885982869447167308245443962681936032737684890143073315221595669650028536998214528563903389837194682937022370731051550728585922041837205659696271919315860318049144425273517670265291512629483643470114601476774866646429518048321168823837302524906593003176376636558436400973231532232888625649918046308737247606328972167856497707147839244380581714566079519856607926480917964479621762655240052005527017018512128620825506949581559117859670871685861890882012519015659831279664950368383902429615262329404797192017126717317912782529337290520628850590702726942179904610692582661856706258354972567373984270934467153826953162893628372280316297114500305427640282071743121666619475530049083096608309745175513373098239342672831857827769811368271271147828780931445012068194388849820041403528324102493550834967090295330602286765118320598716083285258837187505226677230426124893870631238132435906306053307386692405848244468866106653269994193557533884962974134923962725570190188353658325480300433183450107340711668766948774526364878176179830951164034353911456180115682594892719789946398901683804454900707324957575046068513391208899338270999812299082584535423942484454669199626729507422798680644514227327066257189703311343047386853410019104095012348714005941563260271722169213406416718609125415430504698359597287453036291371450898552184450181515349530431701872483922203745879154244968451585049355958607374005491643440714238481188990440012807611463996487179258492583923524089178898144205338171217387307903123931748854043473258987648243323143192763545455456466498957704202716072673793867173820357280289124774780656196247103268946927566516774545115997705440498857223845172992949795730638233098226000254863391919156206406923661123872203449607090919080141364073950248101535005449848596963237419110461221673777519784085911570543522502496409384436921798133656768455369380240833916680860806309627913397700085808729146819702115721516034331266669570867801770553661909225051928823783226986201166252433479205501090679731282703227339891052838872902635243630858846328269240993865538640411498334549297876328144456195908092062991004813006199930227614154809240977859630795048845376442087658950334749219882974996610690613938149278809122913101113308996709781144211365604856010717348472704515314270588019892146142755444077504198934558039816362205107224115094396583665416458046399612027850937772768065247069112860060528963532302954393768989379883286247574102367045407530607086446464059131073438166826854400148049145239306870792193065111575331055520407893210132885489994412183754244248962017741031996141878841082311209770854027271352743187617817361400179220529125140581110503772536495804132939175532547598959424670624447661933498308692454101329283948765907855040491416875118912607756377520789436503255617572662781233804508996508498139335307581601536122739001424985491995041237096014425481127042537101113232465335940060289246732260695279803942917628329912956098266722649437814106092189473312051100194931822754031671653649822721865343720647989258053093499341846413209504181909236051487906036408136945044817612250095843783898287053023880746781313695921649554356760348644511214339886843477075373455218917315154224187663041611136823020743184615478728263428598701540674707850697283861723588580375944686765233980691855445294615063768460436045009392668358613672697509774542592583935078350880437620513581126481111736932675595777687678845898572160911700763322336599499215508686520036020086881048588217158907235757847472245366578515998957730922976842715645612379544487450264049126433246536773135134072941294445404567259190274219676581045107023253779216443163915003193681527042980621355927475053533444687753693362922411672232963321369163736545426760141050754502384317601841941334149009821863432212300262477766362193890932929543431099779923306927996511273427189108938040567820431748974366145467237580510788124164055451890695093893542015196273511040240862760977103411541746981950054739690630037498087889523277899186207002653546696823892788795319504790699840406929366861504135765664331669771124649132967179475194734121538846321076184171463633000680812433796989109832705745911333411845920112345582866329387005770177501673081743816742401710191531039384721758394188919198646343331405729385513173130172943034443911067407659400236197571767484322818934765753323478189670800600928124582541753868740422862149334829271551373600507268408213958844243913297882045992596071625542909157077266760303766683873963526656235634516578673450212578882219270531612296022517140894831882006520937005878952352178716205929573843432903403820186658512758069442087251560137299736152574989527094356299915642968102373680881330406282164735572850782246521669482917035190546609390257540158302018233725340670460370553123833131547057828800304584958410260028787789303015055179470035512508565357754274532194393849151153937843368790357982263291786285761952786278714411391232497279102962358242824858233467118052205320059641943776130267931848516907662608306009830657070768192492501283598100866678742280157697111945855236621732161477716320810772582957141638040306837679475155481741869783867765689749162433936339064707284511488471300904414153148062665878146340010334213745156903926501831396295983443375042988402372842017707479809410990460776242305690153159227074552839780636163962535182063427803871041122718532316656392807023733338229580292895254435492775335034575748493621176815733391309172303105539494461067405588003296516364275927209318313806197875590660879592242909320210462078727997278332187093556045444099946000649541806080034693220898755473190765644612367424783214990346655967617992106411719797573865725475335971812977746787886737454596847217646122801780338099560322384699571280918124140775355422664516560400481180945104917783504345709722115248193221910149579610437210631029643885083764842545413319740456883396582493215059770116092710070906493093534999266407363215911773487994894562521234722294655153656357081825955938305321876178419309674645738087488161769309745662978053744341325651902786037784335650120600873521509484428416939858627897852599822009425288787794435712828805410503442535794188225377573599204602022096161140938600286549751279933940624698644599434376947575543150434202079113803334240475139240839780211102370118882748846317473749912889860677474960052741176446162806175833391707211951516368780858385817212479193114791565963845032911901793432857583994269501840346793741701232943493746655894598762885862484889874513261530957602310444729318143016024156741596185468620245916459573696054926479988021267841096330734629950193101784671494180327072111792835345010986517809959214793754424433439000753709068276458241990952830292227112861781913776760521201075539094682731085201015330046083754811197599298222240973367200838678324371519495181027702246158904949985060388305238862044112318788321424498953370468007095060909587069978597287966062493681335224669513820749488971223951067264486571759296979444743805403467074166274975839798165882213804971052124487828880005847060826624414460445785738137529037002298471591448838501463266135881974031185986858934719415644164237674512326881586107961994639655774598993238045978335643588028727345892577776973636779030165981254130475209796109009180289622615441926519313109651062015838490071178433143644984621074190678521960664590537144787590766113673486976673788712884176070917034875135277423007026336434158536459104834443746217468496102149779085545483731109270680969674148115384094492452601439606149436286198991842236791317996050082054490855206040601454055832561923212633790879479537831904712290569355171706074989869651021773152981406485870516299937740018181318972382664881615226922121071088551244551643971907904370796519442757973241970941517930939139482856111518722296192926123787865624596730903970674207519628796315940532959564500575814390316700945541939907792935537521514842869112876025093551397824366718304261312574266662258222141229650277656669408727144552420954796792882489016180573887060531131549720098824225641887905459569148815655688099465655461798931092579761093940417116055026616235818375570525961517445500515578275424074620959492865940172171805102354870930406974581698489238586121713350774704518325361430673148950042013415875870084466183611948053455155187846930316723592296172030769217875872030328501600624612468410453240071635841465320059819734281159966507887683579725896028846366959252707183672983101802286358776857189754686588257950291747547377378933659356097503116145373346482818729790349404584357443003420433488576860827856276855389181593944073050446521613438088657405403764317881063133301507646816942319591699932304467635143079480724300102593635154161416485790764924186707447783150630027784781798903587919621798159721172143581658529138137716164898823849940562486765184456512985709796655910141106532238774382929784666542554077817154455517373466569964292534473410230810006147168765957836426475165313040977231407632458747451203546078473401950954016551622393829001435071997684714367965709556621690848133723585309599052342461938323289467397984974993636584750478490608845796784338221445825315075115516987117440453531698493700004653159136440972471682719506061054658639572503101597903300428760269079317002101738030185599062290694822363139051756674453343405933804041419148017419092235677297519503447880582350252989680056136487859254706837182341573180233665163641052472145595893254215849858827903608994709125890329353677517642388397754393909774159561528266361422679724175502946818244362295429336351913294530363703148191792735353637668860415908743827686201593871340413539424308518337316288240442852167411215476935223413224208161171901160291610495285238781210327690185904053809718107188763218883231936040486262109743053261820610686102457368361677296087895326408558843903087672021782086820354027154161607303770397306244392979026003655244618560517310546970710703064433850663328642559345245087835095408242058119935357187183547483562223860287613948711231224274657826868969962837963277987973570258135689233634822971372972278158413828801846009093782480928321419155167484472932929305989038410810426047458499910344950405643846952862644245834938208655117102065450219350700472863900180888759985862491742549746658713354259131323329071595938347031202632972465086882697339377917924280333656445587033453986424915937125750138822444150197883731871895678781895917052984517886016268123471014338268814377837379836870196783387554192473720305438525286493356208224120583895009901163191660450185103284420993877944536339077143725673066914372300088067470761951271508923036901077186125157661446117635099795516529166116016362674630648334475874163834504388019679344307196373010499113387355897345049504582407512346256677559123446405064745740916756477863092162732452151764703266744418135484486301715506395290922083558778623474113452843586130072646423939989587767627926206270813328646465654032944858467630735788863765815242971776404407644000809751023295966305347771092772820146110333292459749317206580082794379745710089427380543975681682957974108388605793544151164723421945286762139642000057905475291840643632505081062364373834471489937117419309861402970568584738771219795292403635966126634285260883154821575780029783973605612175746360179915918264483594042468471958777816154334213775813123756482653087827803789799081546835375465598693798330826315729806536415702383043156632906509815945146348279093890940236709812516847130827309177123228224096074777698743077279017426808121596400515886669282506117868207981723471042836481997789690126603444024961856846474056030982530236395320663967508691964044263321492012710663709145709443437007925706970630098895986185998652251883434925073581860572344194517350747621325121296555709209170496088358029382442320214380925961999191619819653066156375315254408331106607000546705583904302903569444086993135053770347330540096740740525303117249964233409193140521756647215923101685863980641315763663803437409458446219211922700571216938622613948039623854410082602657140942087898383722305620691366909990721032233947805262742817081054991453713748997879972103098796024814665294683797344832716400688209779837346884224316831806184370172841102496918375624791823665254621995174348241432423738399455440078545780120252124671176652584475981053673057705619890992673174969466685728257892257751361208180590146219561589202364588236630438978214185349658489625407337823719454637332456101476997529320593172179844966035409449799963624771157786481824969785765961285934821315280118848824539493614609491785833115293803430515291152516664346358778378930742695826089680323824482797609174811435735086725362514705245937619369826602733613937250085301191987391171846242803014431389750851583130807073516483496519794064557068839168614509632230641930704478328320516021884897100216402026511340486850885181025966136816480845087076135269107949364774935619715853868303427083362511737184520807286838438163466569037681657714675368626403722785859622678630881087901698545017284110789256214099118978275775072344798632567980686009440761428019994056558794425396736123206105581263318738402230800971603853426659879300548012440744245539546643443192326740150207030151404728803668909632540891208890144881264109021175328297038433691618450632437839822737961910414094765233022306446683737675147722558465628279816498320658470463154442789043767150733481406920390906200072067199390604887855673831451937943764946284629946939624931519632048854035805127435769663869886930478336555464578774933524266502276271522775385378272971837242878349289908990352220677969096603761469723541706214531306399978652160849608239236647319687080102494859804616501732625036974593363985143188561226503681754068891172996226513963688185185770566199185944005593477921543246207049562370236403566037406845430111163797968075022310895874188196972903643973735376678044380116840355074785561208279077870879560285142885346949339404208625497603545966458474075193141399282358371226745158692690785183031673925356381853291529526116105729530250177998545585201104885974131406212525854313540916437231158355111171296540105129632729543878837773189983650727038543549221244444108295752490005454468119826205812623030302209979144671327943586950555942935560008706837936663129427170270127858709524448138725149780941026820058352378777602283134054299892813111327342160924705927368051223495976578341538953686644847180113528969221375757081800579932547706213036922709649344308870382371156038844348282593474346468146098326606232775147646647076920687362045231462951074741647094844767522027543828918835214348222746579502849814267534462740344695370987332818934998872844121838271816074573056075563456847091507620733775614129559289995347136457220750734789306166286261394836119188773208856431062600398233311574889420152046327295337817517199080721834209315170989951815100918506538087553791262790160326047948636508743912132382730416162175837757655727599300929338863479048807855194507024551116425120146301143298253604691732727835920215131487449295767226551416959294301053746810181343180734775463830350581625011498194295411956235148718061783184478304793197051603240263549229164857812602343357483370407815576294991374672910469591133898870359207319050331740358710830773968461344898936900970314048535483070671162058973349000830397456226744464804032071513856785860032077109009200017909104223303698988687326218021581701645149815461873036160213006047954144508110796286722901290070246953800831302871040257733384578814899883914985162825086935858571269591258906519561388101291836228199597766889835615878173688971177225488366604755232905663317143321434163525287479025531900172402909408793542243929117863445912368538355980549689813547221426403083829054863534958336689123173185923746081398215195823972154342425696346439461564209986633345739874023742934820703730610620149653648708735481909089736847555555128053932007502349325823175694003433285350234888118181067377140743481674440223595845072641627429123138829693435841429999652893659904085690452872491314097538347738962481083962216563457496294006456192573196315562447391318372311078798232987288660957766354270097277091080778705749945127559999709863438012580528672282614070143827563139065469958177115631807215687838191215499121970746058072087171879709656109826619702288325982292505518664528777019774118354671430274573469806155077949953159148904360790854047201600005924202597449256335699677938261127411283690723067765274727254071655325818986668794684426438699441396873359157033885802366355154478182800051392079664923700268082913791246186244269565072453222550499489160007827182481668397684587085972526709783783659738554754914932037771164990880523275593728717459467617749709617442625556207163991854850640733966795185387046258323825324150575247802837518223848872788452313448148599458445064978163365645292840824302603679795119974655856906657928940799285562762800712825687368938218507912963117929104026253285043663877586912820827096861629315453193224623274874967283430583044477230117868943329000518366191575047385227487156153348741170221087568424324300103211731079514443742726459020127989795106703505075982397826457804772927539338057711110251150091651835296885662822716516931477569262669111597347387896618854743133674682875025657396435435975017086009436539381385126639991567448689490857743957844382435810799758065988927449071920866528736705493315016760789794563933431823286684255979087274686412970576382505355234683031880598262287563799419641208308998468879600728784833119372690169044184766427103049976087792845133566427492871231932515176259694847777436059047999852244949528803622222706878583229577557294721627069201779797257732552498386360365328263159497365219853575391875217758173138135036080778703185155060421304499046029430694067688811857404770128092338635662292557395069198223302445921683243946445555193723628464276128358013393581383421040778108265067509696456212701760317630891771216215238497781282492017322719646552783172618450915562941414094943710613855288971864594882311740077822219742520950700727277891270558153979615918894145667263418438883650549986703788858711154297917575578695667025311965861384242045506110867527616786585794976402746241349423710229176190027740202162018408219754688762035535907686051543579875357658873751873136341033507780861977723659902718881815726786175654336855287139865672326019615197325983012190061451544475885083919020104844589658002643831105420709819802994139612708977312030556627571537993127118189460056955870519746902673217790601281822357134288347778893330267025637950336062342943049841462878760850192198281773859378473048377692058224891290074544817003035275074924345917207856823477793814658847525603443605671851526238772009643034130367632317611598756900696504122485500289638112687229346871516851596617088862927142590878019861386925700312607887256163626471113756487408110361440633111996006221588794769406837210472871976447436051968477804638706605472354129849854687105785178190406846562544636837031938142546770137703567213504164834890822700446097296452006105969279361309015017257218060615196466421327649091026783285845231902083627873932949946715984200833597804148493235792322302494063634548752275305497394278613448547132541674319042820054959931254239812316579431554468015287370192703623716152525969788517644140280403203536565470096226131671102822823973303333950720209549009426977699095950945638660571573336655322287600422728551516976538594461473006670196668773609732181088375025001283917673523395484753075979246982859631165439425249686638822027826779910268986114318493633873125376057317374482706932463819604062717929019564847936791879117338160820299112582260571847639357749059058640939243686901717524293226577074573668621469051178005417838809635670164232008823493567960094899477525337233553575008597059111582236249393606791265775652585738363377547273026894400148669014452929987450176417938904818155499550646508433245481308671813430593440248470567507120146690581427059509902126724200497819537453929300377455442428654989490199770025912256440333175824798526629112155613636618550292818516486652310855237511329633243976576378216098034933924200843003696046491774596519999063365763837477450331875948316963632530219820697061088120188307292149059663743267874109262786241730748339276503463246468425218935022080519341291292780950319552581177868526095909830160854572952461087987864629515622887919522096602821065317104088909382527624487184617795419170677625850634506071230656402746556514736807499276127319785187542356130232161792490174236137938561442091265840939700279211905630057651940573804223989054154136776587399036487960726345979673273131354314202652794028316685933829112432512522568223582489815448445039251647004855479421881468881615511659441088335020917864479536433442194398126366075395404425515829728720319490578057193147907086183678904500481831043674173932112766404459717984718474756831409911880782164674849882085265679996637456450444617977094238743274113049228860989562823290150785497104878419499337172654398787880537628716400773520059887744851160650819236061516496245265586721240480411832395285789044916820515501631181902723729878140690349347739696811299231284083488101048318299464412647481995874104146596186940477747048376617726033484877023742779470351028173427061075395246740171165205351171360510320516613746995059580188268507478510204487005870985723492053341960553795534656386722460384810267227469846038759328431914076535446757086116796290016309704803071403538873272233758638724053329136162993987872386400695161459933446436006043572978053973213552532675751242775245481127394027406130782026357823367254052802922856847597427719261954898087290857975808119754786056126664571626316444468986469664799664441445157189525317070949853995605334267835350924430014135496317175226870707546388514451320500202878156698490188188947333742433810765982666363266264551004279430626825585796180220908517825839198442795119661797934877187096268845657890691345106218340062358130512222534082759161951902460647912937242745545944400027455926356591461444823806503247136896645030566748422530845015687315938069150795864827450894046914177228916401726527930521738474712687067899968645778480400000288626496223509214281268904789422459881196203105171980302145657661067828605345547225663116915402625372365786777649019923551884614826417011343901053025938864294139211279513802778064015049269169184719328501097160557011541460510730565898767644894062357119921091346135166675404306541690670913046155624394423625435133563989007065177630597542950608913971545847503584236469864002631855690038058668903595084737251953922899218453310168499376867822225416102304827951543203562480356573354431884563859844370366934071999167422182205437408744894693495985166406818987551567498942602668150940713793196996996692870014606080332288628066074425205959500822144438000903369406696996122789476521214865602689984877668606297588153661864987072825037862896804703536176426711348404827894258397942012147780682256416887780449858562584471781054350565172200686405006641758344621487244272668647834910475541251959644460846995963662784189038272224738891339382585805159658600551267994032505253595140681774902968136791271306593489889929378329954407684725661543603450793970584912455512238570720275694695280758317914817373778867831781417612652861423781341624669220214825092375261835705967346840797676116180651632732096078580854951617450119900057927944973932257266476964580078492032219640481221509804962915626247843491244768586052583325197688844892371573743253484560283234657034943483153218718019364549121609595130686526214559475022923941071275966254742543429502180174409602125060347478019848176590599758326030572024692666742688912485057580975152007586077510121407349064728988069572260683090156112059373225307732653258614225009708663970194178337937772572470698000120817145852707171771972895588252934290202428721000955314744373247307046168617596570361596399992263515085751351288732156488288801996120842994777818586936515100688546379352724557397030205251416801781230065700994738698187140950501178441048961755393658614468620406150482832296616827417503355823370541865382389199468790626729407288232150602380194911955938581341992181970761914634330336201386654998367686234745840411274054439748018420378294660808389063703157284674463005809307726985138888581283091696161990314974527405420982969182136703592512842478228917672120050584029011019007977383673039277426728333098395036714260363577706043833374135325039722905100664069371526050512162511280391524910707489035412663957197336630702242524330238060003779209474509325182916663219171571903057322966697844273277962164021377739794335317948602156065096610383089854660821093705349125706229845168671370922149106215155527822926363589971493060836793328116888080033723229092148120744092140286768830045431013649121123257032735601690316706249734315029840920009150744127675486055733585508048631650801369026526761011128463392107264573790385444570569645127863254127806745711944916007926893840366679496579139218010390419082339831229930173103072282124464113895425190225388107751944003516659809831911354777650370511815513057588386532625610550308412509256644768671031382211958682101394277849828562485614460297965381958852581031573507350407003986841932759721129939292937930631095794345797398363145064423113421728962243690889369773470453390387160634511098408339478843956253670834321677469795757069684662062798224891054433849856437303268287228115432825931049991575456795846941339625297007903128587781381132316228269483646815600212058942821782619260112199522686740699304465462104518345196012891110273304934500451483099767630513931049473146300094530396937933610204841963045820280142789748558395909032821523804667329234442982765870454751990996292230737810779701630783970115937819306068092673918566239868188848323545192953131711874094262700107487273727781866438462408502945345065850215289616800652405251291311964025031482703430080635098823004201268023874108160063480746616544795792684445976794041982559198769462959607206899456777300901549675594035832298271040853794787642580613849949487698056810095461395188664231789794515401854917966563664769397959557686478243039818319574089251951398028314477804412851329454082226835588648433578715056867641087935340831187420218915152418296489340002630354174291462919318424748434416689336432064284313161775818927372175696377302365105576166255816425407144713014566904024116699059157638810089078796625456398719915314213427438918126682721718751628766801680077551424054405841883801715701476388948699897040054419835784615363032000516477965513686377795443317759151748192685173613191022488767079458148698324239179076384115973407136245197858086566367819710380422585223024050795042973971807052987172129812063928092399447523486167773900156434098931090201869132930270753463824162679166392498838535571816191383279252741108583542738668583060896860639287445552780807540083698619273537910560476733801909975550673654134213755447284719170635003246049554196794382309656909294118017652927838277684152026058444069358566138479098904711718293476069809891654798357919208349247554315353777479033396348298384878491850066622691804500888464995715632198735164932106796603582665809754980953053284938266244358207783631926395963978480220981264579535594480408800703846346868040426884153537144652902816422200425188445882081094796820645872955982109689778072338866168546225898103916595432707704685840684721907665176298280214508390235666753209514478111837899225470071687784973561125358521319440792647875092039483758442646606826605365302914533159935540255659898319479818539825273520598360590312848979914032977855795661631216317503580207462686089648907613928510054821609155960471231922348767119460109112336763225544307735266755996080445254470694596096917108921653886166975984009282828413970641870284723166113739986478564472780661406427867850643169387145356222728527267480802829644425088234652938401676925217952470531476541864622737763318584282926468161830738954484100568264871966430424972919883875524131695495992581733111643730489698001400299582886780939740177306362089268214018867842943294758020021489346606802516715944348319648624800644532440710021280006187021061025969737113317686387231499231656960413744263177141732014333695527951844290544090362666160671638258634469287010725196800825709180835313999989105520064888800738429421376003919425677294702022446894687932993418205548543788519009386683584507318499604159341605013963489072775819645586848289784105127663754359875926099265586276231975864353081157902921638895597450347115827340673430548202642109783492363020861307458575681807528487500084482950789665333458582019149952779123483854656056532075483597604274942446873831172486314852826091585877410972011250605744446325637914301516959282925178030741462071164356655991548298487970436013104248808448008736518761555386912726347151901411906110015567337922939187723940424150176957781301991369387340161140631541225392543748409394407613766500862462678591049765070112322693842841999940038773586527402769227165572853865477819006398798444710498724816891088640944935975423514998039450203746931376181636256528753499588558534090012734071930984861273798410566965407806184087617306248202626845448821547542823624844822046180751137706398821313347560156868445151964023787362170728386982857139546027118165657611265387531814289011639606627475544423805878612427689873080360415969626150275063036382389561856375221463204044473689251992021376342713707698698073570140318938668415193725542419254831243435367119582212874173902293869717013801976754045425041416011039367964904361671211084047097384627820545631924400099846701073187297725671213472194504806178547866532363730915722828342645825971662203386233539384659060554314034308299980172520212161807078088829187997108202735265483663159444338282901103984464033793937499049046296627787063882271262311458043758841792139725509168964400065520556202583180823291934651883592044096418253933036450641462659591409184116653658982142117468843000701098577383208107786856013529108257158679652309454762280736048320201724215154228148294172221132166566505734601413527146379087063574634264705138376855000548267505875176692838027110119391781578953802360187679860225518188623704554059343192956997017699718416663226426748082741674484188972347695624963683982724560671791218017091291616221401600991285489503025763620148430910682489473762406428137663858767975915088031151396548572950172678558281692498128638915679669425629322848597629682301296240381333163703505335142433879195855199457392819007061849657016432289453254413868029047633341519588241334150367561034019933392074291167395466653046848998241054519203382000513285660979277826995522684057950350834251360384391771565690459966223947776195294159602402950106605502165322533142001424044750221339406915557304574763725243803338933099727435331747388503199045151151985095555351187096601521178041017527426243074031484549451616545837493741968715655366755599964371902335412662765160109598566696727919967311330410180958252869554023891746489287459459732606693265611432191766046763144447029225263735656750261602943523874509792338803328406572763124434135618024424814162293898799757200486634601146452965624886214057966263309409096240857013298915658728603366416789330031871871558857590387602667711430121664050920807720027750333768468881182720338956748656655785037929941234623921377927997777564642069823743061114594294415083256114419336101005937692729657374916550210248634603007502434325053768229303749174200566691963731956316998565891607510551777441677300692260344444297362533035861878785347074826694048676053280695270030465709069967697039745001936286085726570422681920832804601901980215811342726608879089544630556479015025958165367537944526673157255706050348877132220387677132755307348988382253205652794205531875671960725754682590737252386826310896684731423857992384182519348597676863051978535487818320315278560203403282608494059248152052343561844055053716294027006235286194117657726798249288462513586342743602597701296265379549596414212845236439817815532489218273340469536422117369301686465843377088656848305046243862644058798955776446383675902337212993462372377789001009123401341588169336432053544623853557011940577256187158566228052205895988907953105012779304011482963854054434101817961030816818134110758035152685933514161090412247988318531652805614856319015973907257284521365292073169136099117672973000914514566050671609755024263061623794251819728863243279678391932727109830655092962203813429627019263121471559320474291014409149419804797638451147324816290757118667802999366585400796449840987860954524136334066222508226205554687142752206370068418508938094644465909822515047272813421223034872500631652246809423597837426145430494259492288639602401926808819819661364654099421001672924962742473340366634513296742777477632971317105180714167087035886197948648220014110308257357297425606495841167577936229371991701133231826168000637846991504065256193743741804398953812243976910612881427927916333423660638466718010785146856800595692455777727472178453975541978418234581188076715387781034657519547593498452400214389742924853035108570664015756703010063755020400863336460466654529803894300674474031716576594057374505189458564793669836441812833754119160256269926751809736674247056910593563335032940413819249127817511847415091249877034346511239364882399503218067031015775933341621138348750470897074630874248454304482152152050950461521316455338722084745390045646219061784634275552714296110733652966833357584076743069003361199961383273541376207093472198074086352570382402712125921391119290831195522935539869407651537427143829342802421109252175561661535284108424122372102239090445042728686553296624070208921920606021997917163586721858211956906245251407314671837445570141497125314190350243795840899762055931834735484093948605532026771844245425500352683256048588722474247050193503325419828903697173165298668075594893004818435705902674926279631780962747186637990232245110536164027074797360417240292981683642222627231602411929820925427386315725082447248756332390984399227243377117663470083768728950779320159113662406723730947690169521868729070438216391983209326716966435176049939020797116342832587212626873217042780259674992010015828472208856549289934918538594271038902085996767962885143555931773959208651150803473204056085766604844453693783912565412452834646348829204891782606083877837790896060433656086087664136561638433588746339672739364796475655239903453638494324193129424979411105498335455053222161373628960399961874842122377845596631677848651614894745255311063905931673272507194851274904789636883797188341024841150917007311519663589108685913190705791051510245175474570746985405800429878350773685067732859667102969593890937963082722643689555864686381290243970228098244363976846575271861326001137405393733158914681945016741116447006185785053338729873194845535827280197895231425453556661169594304570136013450122897060534263387534103973452231310271967241969921823682210565818202672494714903886420108354050337531160378109979439968301180576084413865157286829211613797243312524148853333780867255937624421793620372604795598132809621324265756797632072249592663315320087884252491045965570915779573260249160965555874570897179001541258700114312728006233379219788010185463062574780337077108284418701104625253641815901671472643322016239678386822044542696599322484915218806949844694625207790566366837712955606058311074983638166090683923508846669737569990831264663117953289085684229831674709731745701321038008828532153972957796161184564035231357743836612207465877284588105942843751181360058553605281572599051113622214657849765381313374403371809585887938057195831621283271913432438834161277785722329215977969370234665203598133214181489241339197204255422158430920434860647247711127400490358509123923559530799272985972722987016255038858287841805194077708986746465123098217672799587674220113229633228383219327578961373180036715365182162293609961538476981029825654509465602624250480401052632598389869522309547411999671509349883756831528538974578673302679102614123779035976853174860449314126615375006000042800840438824292775080634364462914967458970696616879345069434727353149494073266783671985114324120798192124438734840322956021871503882544358318806811237323932192647832890534252696208136770372585094310433116973877735128795075759052715100788236785844497708697563117871875257711534403618288907668305163724928766800461420719875748336815219246040843652108837627901319498719385715613158731317525528485863742300438943534659513537746517701205949762856445243114306800029873637207876361298531558126492493365539620813572030979229103606937484195224718564500590536159841410285933484909231895484957206623501683847259481080962193793694800929254427548847745406684951376194412369575565776737623259429814312887150523295491637643654978639185306012914915076825672517414771466047262199810106433778505551423863024527651015666062922322918361879005023865237606974097993940087701164716261707245987062965084047845768483441719753468419639538276466115866559172431457482657642390727280054761089687902366892461099009657085605263403316587559720680594207969979162649132392334469453419056607396067639679704142579323113452624046817759314308464940211485130775469204173296287699138878251678651032582373323561762907164673658270850979662083187824032795815659388148711789039591722199849793642177006557658264247125152471104633328645994987551625522028514595928779451274712215877686850789879627190146252013930065767929176633656934191801845074102315146280376376844810058825826222272271249571697950602256584901142946770440913528305105560084090679956359610596659835269201390183729722747069017983588943313604706450877231344112295922789241289779878700031313402263124265359547617270324690561804740253606775810189423032534069812141035855562824387652302910724938407421228314992455583113395235673568266476005495056542626518182163778599867915573872544656871540493545914095241436035400113850172222108236894955976790748064778657259464888254734871380943749671773492880642270199843384857635445850185427072826637395929055081185545397687608303029199981198374506623754952793943900313710656499413176795329747710072543691751549081457779228185322733326211019599864420645508515920761008220475118349194724750358690458948788136254960428354978365910155614826633548386507759955087653524356132324282192301820136650063246949082699293540242501886223729578449611327090720534915618638062032452718140211482155780122367844822998607820978731228448219985226534471918187019086975475013199420601657936360036960921624896505504444425936705386884127891057816321138269662451927422770550004198025647769562971534038497862415710229217049036018830144403513177586114641837961731190986308798923467016469600388634228516675893118815571954804784302856275184008969330508760739212697862152347202721008485132896198781727772130034215494425960328192354648475145938753659663437071655723957653876024741326188957424675981196303504862681402428459707733029203470976916591534867743997606166065173274084595516182029659956992655012353577575664648336040346502669406703028312319138787588350873304951198686092066635882866189163713922230252633032499940037740100960570358820041573637700545755316389485227722521317268605275389619812250505895833204328909177498902930854198395972358446650562533627810137999335216481000889707113316396784794110939014889537170256537973304091026104261894707886313841409226390505986180649261790547734792020990065010436061534987786687750093031759136231714238786930484364523012145387910569305753759440697427897661008148375257696658169614203344958283317146108270873694751347481883383756890607400276784179446708336224107293299089746483674960684970608918154406173049302795328627564073838190814332216761207052614676096926062859028508823556638845474424112951036261724415876892626603440879505834071098381369996427483976232282769767591249286913867977565047867717181712740275531564602990241906512206372335395388211756524114725328713958581714106894426036490322398219430985822533493432760093609809739863690479571499679589774840276674179058460353138552257768216359278018151994762825054128596441484580688591681579121538436310118401460861080748452392796602543382727751948158549021624909750023002165957202458681039032362303293951867232058051508669503639272150480321898365211462939715931103643314283741850835457710194630938501531179896496702614247580800853499933475093304023209434901238196564507188684208046445461897506666355509011160556341443495912898766923099438390706210890992823792649954474517517942130332469530392038342507786554295513289442938750182008813777002533943759693672449089091462422074964151261614723443059873321641950369084097055066851928610210548016055763059450694107358931373316852205406100024265990279436665945073698943934627161811588444110499156854738694349723436843975100176210162905281091601446224187721561665805929000592047925172413681615979138960511943959414126442984847528151841443843008905078406642371656379193673465837717229491188579088261347140422315369736645034559834074979569827390493895847516021078561381643363562832095004322022033050717464917947265390838430935656598802913263333548624587216480927540603362092026166612721777729086011047010855892584062518982269592575893019305359555035100548688200262897629503292597903718296130681130484589098075247341827593290698572343944069742823156268764380332561226668840572281731452923044985635324373112231195798697391218041332680762002223769971596854080234481611336618657391133906639841219642766147097256658207925443232193718233026342576847856842310498572898262190294556565264352557629723644268032015224329900932606165481270503446289829659579678287443787282731280552340913955934108732684274736209808808286990048806681240249845398888306078148685733668113820145393907087498207082378560464820625100802238328882907421821150822070793260285715207425321355043216965460595151691014553802084283860125021183348211946306523209043716164296346764584130320855624116170136787794432204494771514069341250748189523301122882928169270974809207310347211114292614943076105406615713154002158046723254755254680217827827152660251164408867519864103883637741716388474196292984575897034507505885222070523733954317316700977174598840746113639758668138491205734110826917069763459384710686100683162363262100935332964578803321097453567466146398126647670659470648299070177923416433480043849270828228314688559712379600902230073460674465766004710513664860570539878331743839349833436829127604251382900383215329823847388006745568892772975958500193289771560592160016354702240351013895496872819872001871631475772174519116580532098966873333473711748166425246369977352090635806445209683576088684811836724919965577928010321015007293902910769182942499289269432330802962215425125160290423726233606577123585125480620876928959154475140000733135024482682157595392267534034324695020273896157154158421902118070372405828049562984191697985059240856087716301103196789874543592247377635830335270259516191030413982206085294279770188606275034752957767547476365650738762025333712226814111097505206170082156608165291900362363492797750135057502710281534238351566037895617822134360609023650441377461156571796993925920363605112857794776970779149807691720233803985397261308665314169277080760020143999196551148204520559055755307757934522765890116638128885915405487147830229988797840824823190636839839984145699380123900949860654097742194642240412096675146991206028544683387266196479210215151221529222956812105198631203629071926785571509528661543734805613880369000211600883946467877883129259613930722456567613967891253683589150197683576834719846633411726679554308066778978560175060432309217864926631069994315847227456550278455219445749894611574678947657101062929876681842215657483850308598631697815897821784686321674149464573106220457304965988094528109628893806449204191511074924225320427926219252208149331433284942206721404964191690456434638488078571522424870471048662159406282384986200381196628463179246634502676615273014506892348196231824336716230445032601835906915751877653842048289981259808473740054940007689539274681740031697692354545925935861118766081100589272732248810335909929021004645881887258843860538194361376174507731567789856743211676747465760944461066756167880104582309980807051361474864428795983873000681128865520205996875295849012082260643082538102564103370182610882014836747181519720591246018736390953218681383755315660236962366477367488152631620015574051305370251330713394757732041368623635162507073816418719716829098395509336282402585253232069397304687795946249132307870645573955527890832743704395597003863123976051964736520886825161323966163849161159121661246175679291555973466033532307858397544996613677748515647309882411673710755357022831900740818503678797403690085466439301742593257214598757382929783315917297563101593336956596482546479588140642830235630154726999747734178101577863956658028317253662369045952331893540382328169455266130922225723423940732168795482023191794130050185795318929638126428129145498632222659789466122694422558628323765736013358035125576594809617601583525345771640242718081418439590034950928122415279429446603621003975372531380568098478839354989803849385484811005839737088019842021420142582762544552608980382686794077463322041517706732764582966338116064450119742463862141722144490496249505528938776601379722671420173141709928268570586177325987402001476631363004754077340185513907961270540135722735211584172351015883997479083274080430732648229664614296868203896816181392783911233975149942172398552961531219209471146467589811002842237915916403759281132886773344982748260171574664071944614682348087719175370151221824963101314661452729771177191534717425203284708887844765389913662919991113876866120041617735459630306558385603590472885768482004044619088362385674025530208017081249230472434992217240252361059972679905890846935538910780815908714281018133664303047912974297304556677325111009787330093117900412394220328035752940071872454033369728788887675672821728130869565105170584160250200191929114776123482690688445363009837094640948368195701380848964477448298413625687742720254160484478376428611385011399124460170544505096842562275398975668649644123486304764761150456832107885818365658532496655329881078666773977392076268096890587616726501996235602240622574117170750223944204316603582621542767251294938231122983366488634909408339287274401670747171987991746776297419507347333349343509778483593077708412532179956002542404262650006977075086439420437201811289436547590708623615663534214650993268678012476631902737167935826295819443138446899334362404425297491658160347568380542100079562020837243022157154107907775674719738572029284166739122252286485611028962747656384235690500320173009164328186915504807558936579721689906122998226219557834835177475617382014772004697603614790439664653560842410507803564693988889322042692481510741856660707647960998853047667406918077468391140472117403108490989323966890760255549784494573312035729780864013204019823563615834481836859330567287692578800099538491083372371419435210110334660005922575359069319563626453929720373440230449892715507730471512028599041027187713021659428993898596220923093451546037784253106037835023158705268537563421682951109882668264580328813212541267403583354072321232109310392258483311868401381583330011315570293583865335746844576466992070778371020709268150893125960345072755881721769339215078634977826721261422895194373337241393862386386532025797231238194713785498971743917671663187199715200339279259393056597384175983281664021697725310903531515641953454197773846894081535818743026366247444879691423483596698857886079200282797727125225944952716905929403159978998145938488442022564013104472042231678616578057729048087326311516384014472592340707311478464318968233847629480302713233919018601823988770984691946791175083420899078726133676531803690044155473160451418790235278273077311541644180394566630463677059987230436562360145482844336663453563247737110824675133990912525135901426858444066450358670557767745692554972840207012371137190700872322126172328065931184156617535712789587590372366336229219087342736811231589969099889827736380437578483065407465670551582716200312247154849563991532729147704021163252296872218971667975273601094539531560481862354244091961312080760982615865275339053116634482508542047309309243068002688654966542776157429126751220728744278857842624923497506838023554020226519371421508781349900400183499722647527207416633623036074606379117075455716191916723118364787043667448848659650867409664744153874778069380377692667766906424907473677277663615376659778350613062608611424382309010441771601424975030645662232662021385472315268372383414118380641186396022342046446596723658406106199317419863913702473778682803075469559675671737903553659861661876658174928499104711906219780179565877884696488577989199652641717312001523230473134412145556296818636273030672547058071235162549455622095421587095486222129436492149795669913084336907843839855980294965275920272255653418756250355522635793139838856711188540176613330061647828601570151406566835223233605502362968705257161496084643046747083454938691937335727235968090274462735807558694933250647715324764534674746813941252847554542306756945605710979043684908327625292329062061249933182478208895771562201238806888314374819496108747807851638614316980302131330812156809691596998477245208825640095812514813997161501224148335233533007825538521291052383399423104631843064958140675431777535924010569678755254289810952760066042053452910942315574101125500405919236867383598785173686533072411261861394352371215562677774391229882828746050624928152258844555563994092340699831584802174283136031316901209116480768482488730428024528654232409752615036346480211287743995385998747762989813714078414135891856772056831881139756101554249023039850756999666806443508267616793440820398839819484258509889199055926759050130209180222177159698115246212212758355605102981017656593487493226278704567268094952977645701121368896857505192099910444867929461056451541571304155293166603523200786620351676500141193276325127631443221968916539273207220221335749106820993685087737253800570081920214297666095767220401618863243115474541248928163043302384215648376783746017972485547079390755768018945155259985673074105635107021932647060969048232348060037703041240325304509877818354570469367161540530689852742588000496748743912057012521087629605580903290585665024348580701251395760209856711562364991037307741366198647270678341149919719396054656437848187544963147666338092289927790492381266164393863069332310667762246489245984754562667416748107991683270496245573535407714198169810391671023829749383147098475032534356975939036085137697930739919107979875961064321857524362171777719912845270595572529279857865110091871442050982814022182840272975466415775106177253119139783039101170633135111719278173561607243785872873462575547881058266285666680224535912180466464649025338532277364277401506472747073245540622896449514121905202043241866661098483911890032264125377728906372417455686242356770414904292184011442293729285799155943004113293709063388624117630448218447723977929286752740259608632562995091507449531673411439296386408857806241255170363610541643273695136055539127962084545470808100408843958296057988506760932077354727002712511570853789048712236554952348143410342997540030262555531783124466708734870030357666983485096036608593002259876002007045116008676670639966529729644815870535146034716917120347184418971851708613878729280689800565471988290126075912906612596531291820320146719003305162365931872318241720938128828998963138330962687216845753497192321526692058332674709639102840200125882769999827879232549763146220682274666899957501940695993681873599459084429307532795713450217903537054087404008110378529328871113619503693340928804318785224551872411123854578713150848086622080817226340406604978578930181938670653053220549224281296001962588513619056092238139594595425722971609673938483434870236190812871275346503522580790702571786448787236511944216226419530821572282390072079733807670075501800676094006862966537057524531331539090604683782481787375420850291293802221922848744255731464245384734191191117006304784559376901341376073098937996973597419193804193821190418113651076657503617099119948237282677773732024972426236066333750365493956899823346132757012394535150670921700521936228558955413273177863215615556131576971058525011599250573446695090649634451223106215054099078887063961720120713269394661515964078926543441409277272937062490161516146933346063208149773468374972529223509516284834372525635841295155339800502098656789041570902614273005843673747891249337219530585799201359674865928018058736416631826794448062973423841425390502183677426020126605575200129797695112769937146130666382443002683102203676199579628706197814491338498886544452825229206523973210085878182079160821379259406752433651916272124019669595554469430245256268863352825185423774753205083059444166919759730332884806519379340600935789901631415009066752022235353664719179557286504158080861805831807362645317203012364597921735112525325461867145296082423886632279208335308920298439643456067461588013496073765932856053391845719467868840503435902883035255348151477481994282024399521750412690775593770821611767728612180960493681177522590739381562735883795065579887226411733111749817283724237377186605918139583700987250806080771377446376195955072058137126574774539031925355480159212018661631854853441472905258945476485532852686873544083960340248760428531086294937077061079818162921131845034811543118893920948168077863213091318866826067527874554303336214368616131988337530275484413258992660605079560849078400843733252740152500974841920903029131651616514094106151118932908751141557396414255962567230666240649885375920517275432691477450369765508114742787461708117483060444130838987097632972824562814462736701494836835924090197833617493375624882156142308226084810212809474360065593739047369390479631045003549325467538659397200486292514430372206137182071498268774308826405098364261933662757639879988092507696310605308916156378236469811300037180889978924619819247849121217968483401462057029679628711228021008645814050368622152010195552997408446898390730678989552002962051402402034692895677696727138599574792154525794719247715341745774708683906862296289917116305546491144234671710205392756370005420733816517523083058383297678826318528912435779240007441384685986973702733154529313113959108750572742964733356647383255192748287959122111930836876357644109064111659699265568906733055516658589084049872230461786380587448183194024720706115116537413820272056228340265045647406513930533332423959885049744921633870064609318914902126920696517552944825242096656008627198627363294179414450108618794411784831065947640748415104075081615171383087108704896377720354692287550825390435486031914943739060843171946303626120796600997765460129167544338730218399116882599991462569183846867676940317410494824011609926842830281720469666342787643747466006924749187115988409022672752945488988843819243973876620310758937178227744831305453068916342246096580467064873200845727107532522291800809367668800412219301743252290123939886806065380055560543922183395041817732234843624408578282877534102282741513798046317697866583373267453593949274520301157225076002667050590851564799249149013110173449377762273699982986727229178695897465269822027588453349907626984267422956560736619597484619794795610206972526954875205997330060841372167226582249792353529290590395750127140535091779041590140873766749823609565785043924976819831064801660323843763252206752488389396246962277502250681256164109750106942427856651086699392778195889150534873905294565618906986420334837540015615720983228731115085596945407733032056960012742555735154051154695377857072353859076506432309621824075364504256897861923691851006348159286372490052967256111562149895950034562665424870089360387760167347706530956018758777159159335542041971265791557158610620342711174732620867749686824525790667435858887807035454891998548031938835458770726436386051107976070345064079071864926226570485642219453903798067694678312274606093841361715806850633776690677344856116370605563482797798449767530095214116211678996795738435503684431802783128242167595717175807978270837943110232771211298683860815850958862973506230583839728885770197688629418664410855422780747890009023099171468364538771241386497671036483282950203122919439176128711603483008516309140561313260824878285894977022765115426483336900695464946486959791706232582968352618173089536300122600080403922019527069090699583141716258505327164754736223630103468792982770814189357932831540223914791961662808455072909055400460619824515644085480389120519622643325382605521682661539607268684723172356425165676763614929958690668404269407195294840308205989619679961330845560698827547456262517826937857298595530781097358843001101988547622070198235906045411460057871087762004563204789186325386645825953077474243430619547240315039876353468703576560241297819219902590633684546776637762575076229663880388217376294572924694313454850972686205841041869562549855233273911764563014666374913461929766933100738538970167602441127818500801772327118115785725229596146841931115792835042763236520994778893995899904830481400638398774765918021362428408435264502840723850046796294510547642427036622833326471511074213699980038784203154555653515582409999401145333335127824053339096834077921191960772339123217556068192704463904850142786337665110965946999857916635670106682785987534074651912255908037402668586569599913733342646197482502907549480050608296582917421743417150685669187286182400158623020900952802070456654211749360748393545234944758195396944280925849718263421667838092350884235329298039243503358636215866018227221828748405997117779952790938188112945341878292589645534927748454870659088039824365802648420716828505148934130532075624737973978912156424846116061923034971974570802948438950546676751132505652493215308132586046372688309213225627673366886865425356970693345436144351513192147659489917180425781859712332874299906536723414264931606886996520817542431631305314499883643700427999885607549089716054955620152887597600697008608562957569470542030134109396945876407971899961094991826870304741725363553800727602303459027715543633136587080171993611955101607693449293605514558017554343402975149350772349760031279954809509456071930259292420104306624114043351991568390984632676451477563320845980931929468994712930069028954094462924047738610460885817984809712730285837523364157077276888687442387900537844930017775279999585468360195606861803347956501447300499549246851113253285366406783385643237958517752107426342976338206645383863389966351989585725671231167918770637116072163310449239336061563960866344641200318590190981729296019198239642109662863070726723839647302699654345438443252415507650616868609342687453473060797252537506053669368076871025174243987080658854772861851914764999653742874653380284592400067593408657835169757757832117731635510157246733747160285574034239066836557039616027411851404237587643771388884897389731383598632003627252766677607289216051041690176247305232252067517380534549783412985195376256788993029556754286350816281723902441592148319973148565938766817116534378613179344072898478739768294930038054654278089984427664462885528245846671030804043300751660820649356191283927182912038307922466180800828776851183475042929576124115523018383573093099888337537075898147777958140835961436310888987620525877217593581223683275775092412071654524249660405581177504896578257606883900983041202503980014407689902538419868933213221256531439675059052558385130399170371868461018011613229434844336812178457756114532218159338166410715659229025806717504640839540202024130402396870944903833734870337597386835773301599257551798952241139795295239475829389191460889137840306631589410565803344767584248164980139656067202668960101878715292637497095361048111153886245728914813311408766108540806288897281696899688964689086214138937548607235340098813388528408540480120313263021224585453694021454149989286389709106556952437826497475501507958398649836144075776955293554994674116034133541724466418258425362608154452499804868867686949094290248677974427128915561367837535840570441745060053143287969855025461212560202948432049426299296655299301958132153393756995647675524505585761464725940170119657113183593082920216035850692567541686246639418765162854605948273121425867338694808604832833164846252612767687828192082802231372608830410444185821893702200479702866927888743462697160203444046545763829766178819702273124022694634801996263213742637177944534271952006553962375600506665362117894536262512745202320229399305377000194413798820774387159619094332898405723947179337482548433424766050198049137080438045979969332068628638604545686605152589729624420032613518913667151151851219217511170287210221607717560477155858103372736525116989195047561117704863625814408742698234809013366527868968335464128360268954215684376819285372949739413672163138469733286946787106631942660260539189658969032063006554250839531639263413806787679127408727814062681641834550241168500054877181303710331491128162619216478719328591979250703366452190429946660346771713933793126906031618246014370214587126432419709348153659384158910123207930575277167092514422642538626456622701375712414331377591451539114357988370897722357059523193039069740913165221430628108468754169481081636933586593326802273875502036321303000175818747596668010735313400818243132049723873740129320081115967686167436030411874980726975929180532877220183127265559753016753978925382500961053184694025188116007835576864669406982587232496224827349835205877505508474737432947086668789828391897553693411935132934538310673122758010213083159023001570997910506292720505051948088646582671537927616562710969508802730762950580543615436123622327461824151641022910529962483316978332721249421471605095273661391873991728316868330790348755486656305595162687287116606041720738688636264793084660416898716412898612598440917265601838066187990857641018857202858569482370076909548406537413773433531843867735566444778744046562924391382921587266144980947530107475795522613927045246691296707248456782434125487337950288386383526143474049246900576960661298880629744254335050034866422179836570894998716562636561069315969173544230028718734252804702817883653768733994620612903554528612022537686823517345761031533165090893437286994001668404172315584605752780477111224853508465102866061057814045440597521187396541829798996401842795471180556539650738656824451230209070468985554893685211917225570234812383553389181666491916185356196204634695263318470749424609050629003165455155508779627780149896149228647930777907911771168708554287218449470166946828131259582614418542993226315487724126907972338505833169501445765633143512246228479786863145183349520016249685257589077859780919377269939602274204411233546886627563569135903728946669565655225152650550595237329939990108198543986954030560950195095188229585267546112853207615976528766668231908266579523242482393012879988661423001933398220832502279089643089754167666749313901809807795623781448989660553565642963980729595430984288997167654295883664397619023070875741669801991891549242942476597742335446785319378556654722739604468154324562866778378124601744640830967334121350842463625047039378006357274846205383171990332854080756215833230836560148184485992743055329990739910909890890875862977986670682329724525031825055967435201967668553663314999561709667798928480829262342837916905798856274347898757116613629930352978719422236600646113967965155801414111333717606001536736792384531504110770285471887362888572570067980535888955457482572003804009108810438468479388649993127120310299843371015541839499287674407308954526427064923827993696369762970156102827231683367794431691032177021478420614685466305363536751173024542491475899220264886067600577133700885716643306632901040344006422758620700646429595324172362255880608410742352063437354633910812783221730396028442078070237383399931163860157340512105826746865563745431808418432584767236472888638027795126722787172449420060699036867052051774240424240681023267094218166378377551151709590318778526933478313164391737049621790382460168003739132928388138579390327770292088258484746219902694833217243038870662715204842531573635816457675868386657813288771454725242978471649407757634669016499044218290481367085318304905726699997877384351072770843682560198308066479032556285991852253669279907035652196594446397594075885406011440369841935907579805662112717056032648055201736510634383168104398668022063724828353837806866934683921505008870040844254935150351123693122671011803116145295109664359276719266318156403537667673302512864442921206558590092531049839405584097140675633509240385243593573657375510875664689076049661435369367152298536470509414568859702901333045115142342412940965115689657162240348413304892828244809952431527072771191585725744340157120794025162180755001568233450947167308552842626615489668675721188399143408199640747300479259095711912132243893239323618571040467196550089826934599745181681218875778536917831904923105802469810799187783323930825860273017238638125921209752459965339758482047815952534018813629202821182087087274885368599735058467832411159441831720071755409189321475057003952959657528045216494799469444478166968220538030184462761138024053172971197124375394137041093208975293856529081475747948639832517920447560507003446126302174283465968106050753267486986584607437258527473169426958586571159273291457030339059185518569977095179549371962918414727632835251999419996615214931645142808806283615764044822853373919317746372688748229927492430077344284285473073827835307606060221310559612576833853817257346126054723033764172679544193559448485549949807434475917448668873321296898706133302472122400903388194397422754271719840293621164320316523231036922413695562629591876573365744874361826083460487610147946062916543384464709197974076238372516664026134059618522908224091282886765831736222173095931989586746462128444731880508603335446614726173098257292050746318053643045196598887688704657674901988266944922246410973171757675697834216445925405517328085187016310620593716903286917519634138479370890754630554734391497078465159335994233272257777511486743767925765958810906292050757313347937477914309135885498865204951905285902754936827527503361678775639947748166243908005327884580178588602169127350779951204450302154953894404966817799721757181902919105869316121792416891354583413630060788197509273084599836003448026082495716762823929971669395512306205397500068449075407905777922118612927272888339159003789197807822176539041723872190919803416635108814435642134840693639954426605911999023859430745655078223594144618497875267616965691627608734090195574259782011224931605946834375773809893965707411181254430548390419431105255583355344475400564097041470378958520446483903077055717541928256639975904430708372064656000533450106971743809044755415384670223600660564741105239375754057884359740832827676666238129624095136056404544471345695026500085369328634644679123773291590878971227162759826669075520469109900938732103088460155423382294280406557694123054146850669911985108958130646334977041733297362611584780410329985587952190580915460069626290386158994534547054110244924677556175066881145245077059570341147709718206424230815679872027846571105632066578429195911377199387381809074035962249187631841376596498881766260425272784078280251300763950294682278704936070351104735592857117066666212715482791378191255312263734164978613090117682734281094584734278711819947895336785446112812908384649417557392339015266818007696724951930528805529867735301915687144930627197019294121113219170960759673567885658666988380201419492465695964064674230433334930510247636224133131704759142303012348347191543837310012595509069743061089737870414804102328032939293412198821816172284475738231657856647993261283270631918982213585130831320555323267076684989794564421073194838258091930124134754380262964026660359436855024130907750006857892763391252661182912769560122458920580256793847650703782869072948210748969460831500501256647968452679689367892583367304008927623796466972037712703993200399995580524921684161815985004253371893700377057492772326981082506360196907143516481510796756987022416436658505519603643474181757218854122826917597963435337058454157679468902296217718068404388289402344660249549285653088624159519443373681532733847349097119718943045534370645272718866477738170140334373085631280860133769745010956674504961304473055019650295278332632918866283323900294043525828825030164888216293604615680307500654659357727524878967268911595239745130147643292781653936903996207510916500808697465871804885417138772570918652240641966338408319565501677340990949033751152016571206312940791034453493339804088936047997880964151155498534057898201286102138735620809623402930727437776634692211837759588303468175403610571556149671021776356352874749722713137319085569189427419124577839427437298021304862911012993680906958851172269371412917676137312510049655376571862273743698459756333385889869699674709716131431517254494165257903121835380506905717739257381533380036246014562964657263300368051623744756108236970886559258303335074770741529082643385761598991293102099911646988568055924681335754431548800254063538397801949725346392350279759542786743596914962495294862626676780338068280905454397490447801480611001733009504846256955619127208229049460543176018062330789745189694678906237411477666347945275963330724002809394153033870890036262550713771030263737656178852869290259248555421997429947729393691499031693393434955344183384057412669805067391161461864393167671948428873620709629183858247028809156370900421616865794796615445591503648574441814643449060158301547448686518135001156438142670179338258218412040137443740841519425564363270796793263659740997661740598303710425629358768531132745195742215370740192383604999184679134172725978590396136272696534874582979008711976560640535649168591356871212326173825901187314478431806123715350748627561513823586607764793623779535404621776932204534628495435970568722859404585006023601963034886272563903620007500183810316720818501175050237565175457912994061653409013226490333497017387963843288790958030219949654353107128532618512071277948500749026889155802058984628579992513306555158991629121037549201465676744298137400284707186723672907573629576231459001484212847884669686693249718785987528014314827186816218294500033104777888047155929871511660488266303071224298463754682549121795251145628394735571580150679570819000151255691982470709673314318946411763566648951915928480478053127982843795460666732216932322574478623193454326375420744185737194462662809784932228348941474301908820070695767470324478851688708201824293785181346117672896264194495616938512846313040818504868611949232591871469461252329744454530307919222500641252817254551416517379151122587361162913372766020394426843450102816008741180704106454778953951381399269361706853250675426004662793410219232415584487454183258003797930922167976928341037514227142548404885293102778478241035718350238066206688144121369226984666719984654884748886459764984053022424651796915395721184019302690274537724311310672774995850053546610454913444550052758527257638165540398794575326837003738047768782385985850990283046103612375674712039668220004126909991274982082892019364526289438966012923151424411334848927595267334083732755519476827154654821422580734974680716065296063364976649363745231700456480399145282310500168487142333474537781267781838107824774127803673012052227228914506585746800596190192954921633873222968529429965823781550145253281997208678588390221537404945947689793792278006868404522571472102883309986705706377969267180420713183806921864482863760936938847796505494406693778295800537889059842386215080136677155195434243544236160814996503823992067009220215068161001790183614301323387569368506638377584248787256543645064768368285728795945100586818110218004677383139334611650404950699477091480391945924939972804275402930062612711278934981252009072430722531658852916084419250509932002890537859074024810579893405139991240398152749387852664577400404269421037114019656507404917134013255594384792621873883189067804429257592833614860029117016019535573114113569242111086737246409554544463150438530537557661616524695487030842766936639506900532329960177739230139591472716806008973455375089187575894990898747166991157008274582106940189750443900775780937667274070822302769232442934211253348531326426580020898595615516741420908155540232820318596473412104330468539895541181604252108181502163528072409380323538524961707115918722152669526762268484905371797031513720305945928628203477305200701635711425839338210825926517990501976324049106161614852200224870816996835027421800032772691322162682615484513268550955810747225903934473521729913637182443399325344253563105556519194497272347791395446756214738597148379211959806676020100500589917038591012192445347938503693599533192702823030314318921559096464998419120725040725220656273541214895598678785709664276881762876971220417564742042812750038808282851442195426525098070129074657911585407679592467374704892534012862536544739372751935308080895615985249976975898061871608320774303629456992985757988080827046601308952184538534298744862999215621103790783105937458509670937326388609165095239838650793576727743213689103919962829068969970497574374451103527103580713041733890931818942845080311484718635264971860761551840591206656906447610119204525443902580983890436010046572210719863007347951573689181455151379044341270724868018074889457731956152385304148242533297901235715555337600825988184053587312326522370579449690652172398554786120606737316598082590580859792729835695588732485592220543417016702272595303185543450117079986893508281936971476616846455343782698710103972684105104233192385867170464094038931305783126242997277227305924010677016471897114271556023149083608999046510812871943355538393692418594653134486464278798349953621254275541478270526067401077580516599435158351296786387739737252965192598733254337619141851636291473504268427442415061878518381052059279796851879682055129474901928475320114717417762466908846791741131148991935376515377655417270702504821878437212380298120627697438635587503279704580364368769176520980608634939655201437351999972355759000330988287916973449041529413346921343769633887762884377668167787260932247166970932308068402888716073989715905101272962465908299810036962482205518467643000905929757049763258901526239464733899426034824618862139996129855938256706877619803315014007959634127325417133448359431797762730959518736697159995980880083862725916230668163421613413808137655973765436705308840796189485911080716843742919103890115004903337843360813899854290439227407193918760056995430146782831601560761080820963049113266934087359357318505346834366113151229067537248307613518769215214812072619039879407512136546757994106262590903420939927458279626695965542480928747757473731441222814576838016114996185875328731677889048531295928509013227805063176804759733715024173873451059761902935142206074608319230612433571362924414413335273346438800229111031382769541166570332797853937740940914835820861544668234876893405173013468818595917229630909235350782918426432155929594150207520571786282315908970235832048538787839740380492258050400770619824898969033063472500772470672327227781961309298452629759979115681643154367370190485402014343337477729096729869172444889085814880228735012012636894955269862322508093335078640718225730143882988504957684129736923526688744816593342907162233771881061911194989373947724488581222702417127791268459024320165274423320892905206066611657162329460312668125283492710640967089630710240204986957395998121741669577623222961931089345580699490614830749865799398777388123857605032517859658969814202790315900303453755981502638474283311716051558930386563613476983287697357384348600293236788081066567881117009510694429381674342323060963373453805095351234391709145711825873919618338253359490482437687127755982494602646751282528057713626591734530949328883241431648783085625878119883033198578257883077164613097272652931448005671276876837225330991911765196351816580180147632642129732915581869933835180661045792755073167051629771581543208341807605475803860475981349726237519035140158002887507437420190913451282634184342492535187808639829071767151945920417273063470338666396017418685710296894987905756593582361004287091895896085867652783228129517551553872274207324074806990477314089500725726107753296899376669703882948256391857857508236014783683345456003720635387016563942612207992501057689491495963422836619861523638781876563569049915586320637287542780636381940706573868124109487724943170226021208697999777857891911985771181015720797417398408467227943879567523245514915759322668449818262564402346476029114042272818371714746019766652410313308145195669068309085186381017813819625480021290967346375686400626965077805402717806342301672839383043983137089697493668938012108139493929049986764602283471752999852084381064761666122422382723171859040428173079126812296611952989792763322415732119075403754694423016465102120313000300085335984099024846652456369991016712790059164286466186226861569731042369686189477811332124805617892707786884191189320258884124048437417046214017411000067587880202045951282621974819414858713661117057257653641103679986292899004958247921652026903165808925963756092364400810016100413095365155511360907196586936474030142662700226228101183946250202809957384685554184275994628147465678522669836023374624271784396398019991163232813154021327130284670895022373904889739454809113971199112602445456628601406696911671627090038233211123086284959610740758849935045260058135758492800548900428964054366935333699487225598473632324690616588895639368243562885397061410614234973610235915079121774009279599596606177324618707703709793961562098232941642077033814736995936297744914321289969142786036238071727522137287108678571892630985896386916779127783341995465568356530880097262299232324425222636950430146698811783416559442364651472701580757192075967450392368802658584227453594758401271477237225914739664798233941610867552419630944382783455632259484494567080288224935796516050072803436938702973741008435087391588242309329130194170252036087932657575173296296620063123510304976300498340359587062644867503333220541143254429951348709619764876498266172221199032828690607423957700097036741695523463419133965371703776152324281193364154815957701930100081957152217603476093355174572837787763137222846356865890741676455971000438295933248815762082219725737884962160490025998243941439829159074792797509924032925766588121093801372407704485896041990145540041134310187659448693838766350904151415588731161939976338345274425376766961428527831616952818543091762400823051306515897365133243507922108567629161275232901355740838649982631895164706908415585870723740134300720432125993562270414389886952675076843646147813577632131501447482070966573873918745660999720042729491544399828625639437449159321982123745768478589646550373071626416710864681005865346117809024731625978149843446751751202733688002190035123773136410865474710177940727494659303163759056065001542473948956129770787061546443872557340263721133323296531644207329920558564100555891281040352207811204522918921588436709436126759474313028562524037294688324353943483567508139235282086340215972258687989845350607557068339414197165346727056661415810215790031819674464619207761666996765879934065988994723543910987379735925961776871391371795872502923780344033078051041231198794848663385220173452280379041655789523529010913799168830098660719597253079944357349188926166370602137069994682132909500505243328330895513824331959605482943532511052524647510269586172690582944001053249961373089995811770188513384446461318170452713291049556283351061844041077345497554656834158475643185668626199979769193115998382014128245614041925629551792502791964891061088429497758160887871470500517338813273645612549933014709257100080615887373439660668843637780528518022679912807749352523350385229163735138417421339434116090200567613841153810913400146215031758945066343628662945786296813841433770419164280239821666190167922698585617412828589030590203617212443475668723044969312465142213973521884774351885380305480527996622094470380973397725758135230674730816590267539673642263116971262725665956972332187864980257675554726807185122944681677140593210450370138360793664131469314069744619543629214684682983134126888119040072604582455996974869852776533737146225400356305135066995396819509054345788501369072151983532966702257506064713383425022419001494021657460036856956380036275026862301791659645773039773305629973133280246368255691206713394399388342325812822898120148681473213821596364702348416530004860349762710905697176616476540856335360323821770420846364260201117656854063226973569699155248061718498897847533900341831584765828252963419359165286833329209867870472146289422354022705836427863162400322519278013922889529008722370985861918022640471695663830242996956039904168470845568748975060291222074289521412069171088822846441375091675080012597934036497342230762004979567026914681403017279776115066634406844436702989089161300243544934626048889741566546213810538119553315698041229774630441500313340295339277658409668342444626113547847144811292245082472547911663251111421265017898184944823550163708678450021601675345905532137219978928659146542256677830217162664785156417977168983182300119469035586959981679207002843990356121457050852278916852552569617932373312358676082680946072083625730054086644707184768735957610099928405057499679289231952116970294327602877188179511728880990007717065013149256954495984863061875530399416004812903681007505654769224913756668725179102240128008481279637374842170948332960621317430946011064343752887780381681347529936802237961686897985994150071354497955753482936371634850326104355923717916987178137693470495528007248614253953530818304506161466303429217060015348593127902284715073989703770388898437187631709165859906973726565486060685577942408086686907243794697012941316139272078668931523988827383034790300645933430536851212909290121122208177370726436458596412690775776798496068825999003682647810381340409424708911400374920735452626366989967909938129979784309502037424157336254322183727985491246331925567195413854212004467717668196665524584658967406398271005716422464360565453240278712177589004168420380860827795258863945496790695582103833806255890765374862345209509808007664458844830096647387205885846770846815277375483487585877605163729855631123358272659577579480917790090730513612027206009407438265711140379288787025223134741698830384456817988815833130930014747714085580755115458188502800363311441902066439354624902853550829550609986572615089608227529131230073198831264851347521713841810982953695523962422224730346091615938612654575210222859664174480482521191991752706254475717332331421985638304137889768511462951810158920410008606235582532368814168736381392748159434516164258370994945426330197537877531855757944582989378949774317125894374297350125411499874181788300703064075442448869596756672932726803363850215079718769264651582097608819899401915896721913052788662740768319897374062616523040245923782256445854070073136135448713617443440091743640089995289193998258647929994762376736197609295127711041352761389905216034615055489698923363566559765351297652963690331120264148476060599134277854167221676432072232878913798918321992443070544850560350772295870873584336849424773935116662391481408202716607988460023448797907453218208101679865478432134350209023336342170102035751171898097599463180290680339567463262924661712625674626596081079871705999490106562588815150001833091196305313335649364819932861864197760851573839585724036508630842134236711419672256533017360177387629350158361398475141431900553454557701722278627824958631860623331860769525915872052488633424535402723469206374473292901227100982030040926395036080932675651081080157247029046363142817758872826818161400222494831808607605417073955587593992243260575197704836583838309095814450223151256375241489058085804302534576532401690923449852264594498076968987446435886899793088473832191340917985495895514634696611673690395260958776324053140460964232482949038236709726555894529446601605228419220355332353401258408581379776689755535448837835114441830164504687877281664257928333434902342210948807813217371793468922523960160747507353443548419258162800985864830757286065699124735849924185635016402874829570223478490467624986670411677345451579574135906442319548232788817846031934463286387854663997347850979509390858896067730908997153540767254504665031101333259833897792728912646031698473552217172529794927157463416407501554995873606460255837738373805975385778886659288879280063133277955978083316088596813551030744184643618481841598653660434669283813982508792561079168131840208586046286909257759984852952532336620970378468864256835201179850850998882166450997138562348203722247268352745405186170350093254549890289711143208520365459389381059325500151353764978060342353022833885318858530171112862004059352111819647675993249247926563283983337315987454949285205455515452681943877731358523187671802965218582314070015676612976948905656510937182664387090611970642452302323262607975962755270614876981015294145170785083796577867626621567322841576810704270439116156944157379927191773856311159587625867202091357015850815109432173075354508845779920356815167961526429814570750242246253497480217080490817603442438432393958204065549067999507789454971755279362033502111017929548148667250646146398468092906979114001712308980242129563462061932768610486118075436362179702280018024035514021733012377378059356375024528247575084286580598159769328737968675028640488275639156443843492741809590692120650745901915465065785726621042751928966661002408065635799305733203723206620220510578070184423629810311878470438429447036461983178439102257293848484891934354491705983081971734367937911691202168210010317214458836764550970606195204256111045822143421150541828386337426675331363694533663456126036318108033176683525674099696288008517997514849803044007795951768138246616377030654909681278461730722694819713214435966576076458931180143229777245209683803465100941979982845938753976421546771488618267807330237925600374931093866686502529754069484216264825334442573457255622938116926974185524774678790288763732446565738427587104319545085763039036354164617358016759447453386757360438444802206746472071312061257888788394441686726771368797564765623215384765780095857408907675636977757084924402560093353026743418616475869152950962495185510858191999992973626270007917991842858195109466215214031483193010524006082044393036644267320558431167859780496417827060859696155184472719374271773593109860239457798858272880971001238447011744417990927336937860711047516141770329474041655086704740195051989758784799661198940130494163198574869769107006021993753141760484671237442536677728714909621325920663741325566080965623599772336247677345092962408807577523712380699570566113868155051833565866983361506657890001980277869927854313533682993328303200071240434425304247401409360696128646060747444398759741334265333315629389905023081747662882993834944216809734410059562403554763377181582712026717499223593132725216734280332424544848851473487924983596858386143123960667279357392385184162693771850052757384196175404454992665817210000123278541556221785778059994801844278533088154929537355929587834607989479423436730797172930676157719534247144257084759725992359295960328511400408229411296424297119835425337934525529986108976206859641714180400166381490108263964632495790807614647640640926639075471660980909132156462458378009723250855034316907111171631485980102486581126069090470132729577409922519031338387942011598476257616180025795645825771769230781733699056783189561281171377626126097168628382801634213428777555172065450621806604307368033731217527144551728735551414002154760969580248602231417897649040538461636187589625271229209272859398981344742498898827392618791170082420573452653860095610633946837172315414033913187052606968346061692181395438898330946017920626754863097979839047405488050312762645399446971433444536196724282996076449055339490581437399856338979103765830912453460282738215630811350766920253766051358823331150905645739519016837446978522793178437403109953621878102484137393612132948524776138186269685184497823595359646991975233427190652705844781821705112234528850323836642731115808346488503715356310838447697276690887900840512973096847503459314133394965866138880891061741991657425507186914286328288664613339961815554318025071899126325818815344665117526741118004456429689683324711035508868844379212149136118185701292193715103012042117350502338483239730433332238383945918809756480253416726310895177409066019719466389506523849599055732961296437871036173562328945840948550129436100058322374022762605576979983881570504978760869172329037068968101455445472505202304629962965049782554153907125974714953721331704653988545033655509345632513905029485690609143080943902869949000877847662584262242100890489343120770840741458269419831598381493258368962132251824597450040167072423829225232495156740196048176317157956565046947106687464293449910013914868883347107280731085362018452755416346488488195498656093998149856425185701275255587502157891384544584570030415286458199285601121431543694126273040042991623337076557432828454124166130198658642356159958500566893190056534974345610439167028228870779906352737634453788751742144797186591549638721645928430903011462100246361473653374941446844701420115741278313869217870403274726670195765756826897741501635003019171261864949458070495044969144277008010758635406981641504675998006769908982960252454870262406108411006134454584644058824839006957857617608724797700683811738112913128350295439955383310025745273486587449319795311218050246880188449446830809188654718723823910863031676044370442006830694408041258999032801838255917705876449761804474541654882098361560677314073906142705581454163449988629477117976271283824058215323224585973007175108623352640764634265089085584205515883239936211355533099005071770145179631941603904940908364597359563873549525523864384762973029382402864994967598836664881242376378219443646612902499706696804525216937059348595673522924837598462386746998231298063376306191609371052983872993446740997007376944077151564475072821016415932403368468179955630958508172540681063600931020325403543888847016211415942780561503047990462140120028211402208816484269831968882932621422727188723607473913998518049596869812463286094568099894909611976461036660280687362619184374116892760006611148453456349669958202340028617936398952710258017835520581797707225615724093544689169569157242725520117287343247145789264727810262358870935219727615218075822151647484231788907113436715904125856877024279334270888637076352551444396895388077793361862389200063232895669180670313896786624445868543967618514140126752686087677896889420007982196460645271388290117281040609949929862435918230975879565437541625908348052382320669337136632989889882557109850102833285616999963307262269718746314267740499334612941045705596402662310064666304142216264064883928172097426601589247133400465631593042342421076122050789629971521288276743684510024144551616161285548622568922345923381298288466622754749033487782515601629161108322046071900748078846676371990271034301857409035890353415254738645088644717894372597799203285605252587510811294587521972377316414240716582482267876680406089531658315493573415288767767478922425949990378099511289143805552179885861575522066052155000577629197803377037700465448892656680299147471568287308548752199281501330239966800196986886602036970061252877637871831131888223766181991602617525044686641960579082086003525922836391489651256936269310292826185561595506645250613054429327131664273034080952155602360795353205019516079797910672484952369134017589454804960613916244210523738712645349506194129353466796273701174308989452462442517727450045097543704007680171557936976538444966264268370710723333442757471469727436440595212906998473361919878838546067798451428655824278131067397501449375316830398006136404963866581140479192706161190008058770427819150288129333151572175240109972040266976933754780358273650894285672212504482629946568214952358234564202940055311627050420795603080754035603553697315152387601499588141345243479712015578955281987635796383852684000259254712616734009504257664897585853749492304341143127885791931060757371405074414009549334409234104194429098378538030376456239076055155838975185813035518187936562419243126129360187551793337051419659360750214903265375967628713243871040755980586803762457235452213503701608108596214985586532895002997136246843604087196339476606171595710497329686854303543570333839512051348619920873515642785947492584463932256912989493828553741066609754232979193985657159154284857822654128153809310075001649043195358968756642735212792259079202322753331164326660062241061329655277069615274752063395109854175613127864106059585818778552993918936451387738671492542500614386628568884326377513985695687663869800032246853559489758253785555707930137325505307808797002355755067519915959315683758127719207191612446998148456491844942142349054006536515378967062877982838878734006982489919425408164274018951060438689161685318631218441442325296346267298628013292103782555211703331401729834299495700986184034275981635488874687543690672382074653157578857154427895831771963918151859613589077817500322920690932267697762884568918400987673810239811673668485692414890164150799715314070190203670987950864052391143923387741314670230544508573241939387113013178580962251952617125172114062777203222911978653012612286415180187538257922312706706458793998116605859692218071827669109762472542982774011056304326557300995242146475845229954789888712103315998678954217930203653461325255074543461747480298983561221094966336832901894746306341600763319562704502100531845206816785320655035814267530749553774029185438007255113514666675820836205322650144108408397409167367883939930999907760398657558184913856083805648568402334336556052278639075442891444274829623628109294592190729869347106859825096972746114440098268779315613190732293224904292890433819681781731945371306389567153816675976984283434193777499303060244958534462941359627997968966863835639618056338029732867573875648328571774189708456525470198947165915268535369198927476979507093643182427089855030788885827160161793795008741167423300642509833753213371942311796503016816556188945026657415820987553171603803117633179687375875280973921698689922212114444268388853590825660614585757789360431367152950650101634799390782999660341170816728048096474907769931162367084884761840811749812009403049135784926594203589453839648843358184516080624227735217524717994977989367063394452014742993047202901161509500440455303868186663718824861891903887922239441957583753228932844563025471213699443470499575271189663127380893102681974978610689579505986465185707398391508253095438418010609850497372283286028326070799963284289912740327990458351531021133659200514354302972271858618371352653861810319104436032672419495269080013127410406268425425477961825452477335092658858664318667584345375405889293818988253893676795149516740576096624065397089319420773907237177077864588874378949459208646926539967381304341134178324537697766662454473688195710774063675481074406777671070317994267806007797891103733990415137250713094300279199048615018608264764125610518335232113109612650392229166546154114812570351468832427070366915798586674427993643397513877979727166920542069222193357662698004135002919681333179066208679530582692952982126041721904620249400321422129122573964982958849526180398025711274964452620055897630568353826039522429674702269493314528155690053408964293796881146308075975726171901714962137844014036567445357135929914176782984296289472519401136943261702366336508892338849250379461860364610023978315167851997537457646230501639887881165107983914817391763967966161134849049804158706162702035922590898526035994939753758540235374267012517001129226257156762816606346103480346157028383083823692194765814942117126248610739081477051377912348519253815005110383573535429843463998868282347313894449555897213560673369695850646726615777360913797206002954685663425989878488991174751247820979143996270141879424602161215135219682878015771151208264713450427849307088597007041191146309350680473352186244742686040084854071987418930791767229830308539313940387839997185993120864070774896308431460313104579778421521463818297627834127527451387219336295302690278365963337795918798392030464653918873528121744874493401874045092121735930229688427404413044181495579295088560945602501398589797688716838113071410672654371747476616485367153649966057347121905601767929307346910232298389229127446218175594855379876716512009562954888791179729973229685889757340740229917672265734865994282794269030753182923889358529454649277741156363574751084690369306166199685561008416145315980358426902451726717756796509890252277788679737467300561288921271220395697003414826158516733176827741142459875269226931292898590227100911889190984800668293150099109580309928821734791005068440546241758166378329793287804908795629800745024162820028389160254090655946046123863546936134005007619667188458001675275461270992053127268205752181262011922013265126685108530330392629850284973915046837032495498882604132037904312261895047957669251345900493859874686756355551745420640896241452092776713956519677618275125727133264183305608287292276546309518842778963991974641035385381031556715910713259335872409533793711165320149791119858392394084947576982380562528231189012503174571203664840147068412798384849351745900695168163659765566142527689901207088796464322913790411227091881233156756766479254797550173962019327917619747765541682767026715128510350938277373539237021989285921468678146802240725113228904088642374232983962774318472936373792082339625054564067878396427801993572001240576325424467004444258567373759504910092214571212291609803840496136933237693771399978460068972309582576720699669099501424770756722383108853423194542994580865386383975881722531222359787604871615824919590016974204650165995191385801267335496463260672772444778114243636807494490566910547270229055482498525429835988836910836135083462615828036766605701843840286673367856982561766706204209645795410740253651070984592383235609886719788575695822533181369833809931789958445182980812667334877816487006403231557032091020210196721485941985517327620288713862366688226040264900454025365009652297590432396579617029265457662903218890947024130719075615259590973004564918207409277928328608802225607918857913459044725823684477544724084614740608066949452621785833471513848486335263714480755281852045383988885766150680277962971249404415430277223909658413747235502192173230857546255959471381290424168466882010182574368264897735663408922897256825244450221595806601542947887854636796349653257093563939877775611002697122236183866344148128504180374912716578934920654141503927441450073653481686621904900912177537802805557252555086633705102527132985674902257245815013866980936058828857425319580761464454453718437497718472989405794995919397619378000435859704458586647214944321040902209428077917113849130679318759386611561554455510303343151982074417997468025241675023897872050880201274171078410026598040787393363598130453462681318489478036801751291380405668277103721036520723162666996223560442678919733904960946603082726201567374038433668653583067136976341531791720896040099185175521276283256442398874531151764177546077728293149723170091262994603674269120198880869374764758315737544486474602839899567490733448063159831518254617412805939900820915573956322744124382519750108077601336907564194998418956426412739687260633447348606621612176024724270522453874123768299273789520898566247630753835782268641915827336355629170435499635157999047382887905672089662878754882220732878223178222914682412532869237243460130211694863845876562704019357403523868467999551575292239984309950425715871910551366078885478062667475754278865693273955912905564408736316038990013219350709768074834744612612487798630594067153125513296481496476485838384119332716585195892959689571511978724941787597508001402067060522326284997474761369773629727901763723383895032476919649331610746770713507316831662583259370248221413157943263611479666417016330733884996769900605915905361099645493765176244204052860494470380788628281281878167802885325795866572807582002333169575738307545137687991894256383950840702354141601702798049728963048471521559424011979123197541489218490423123261387966303654669572357233327013465297669092389978517821486963490261987338461366698360305502860900191707205366519370597526690469279659354087801991497103786028714450782594738841950784824881276190298454151883799272360646864971635815741889199945587439646680822876651436179595703693330743681026966781414543635104046567646764526397076419768012426192819212855928502109769088306795441709208883710713946443230728452099168548302827458608439337567194136759823217925369248512893433408007165214298578262337443101531775487024038024506388571317118204756167840756884784858208601741043788360744853981416393060982259065782795113395397309086711237428335293515562706767853140073913248761011659403684614019550477423767483563801184453477502321795677037176398615594286563619153432297879157362321814851894152252752200365699274426729221475840548325940025963874886667841539118964057394306015646091234447894982646520712283667139325597130778330547305423181186806644808308217772324837040728340252960293215732963537697991065948670288929319366354711108466721487922202922767532540107746005423916951077882512067018532764082521094372154046636892588929912985674194059820203595032676743070646407718946272944382303106072701500073642819715107957685484090107755481435686011066180969984237874600548294480125355812434056991137027913057064642146278011269937127873520404481484346148265383006947050077586206019525137431862590978148879581900272904681991443006263656228976215303732857567278789856153692826759210035467801708645549396854924139840302081537212559805455508649369021211198407993089788197720902894729018226871377516897581759519842462167620824576132438392304876689670117413141705839839503901609189681243834149849507677871491338333341694598276920459474524607875495221878478202400522051936698020917254983526556466787393731208082518661338454272822480565112416078029282565120479475755948185014964528602330551513271320281046290278885484251412512805344966318887181729929758919209875220725784786003214292586643548423962191350346435162809153418986367976830382262616972443158532322031760763266000635007123862104823998691952841263169843244289880853357944050089801612871122151609117252439403466182596759238055637112352943584228624067892954556788417049779711937923881151269333484709888270565306969909581583239797622853697109568525411256099056380337554749161423412984474113203963850334947143189043007293617756530118287831797413971164678847133755870240701613326394129064356080737320518183786296380231552107057620621657511743804546871675584134869786288303012076149112086077552169514800133158945109842860856688798543054455580368574472354307562750853489768378958869149463875111829353036297863503168958921369590944671078542438759513846022392937229109900698882712422118404090849619722851472057939285089848334212969659254668423443110849510511897680598597094379386373440395688308549298487842048442373219208718508337482611053904631030737335992691471114871589321778313638789379859629023947785038713584529204948093136193500431541169822087445836243555344703259492924800110573317535479724893653810907289000342045430809854006462649637670444690240276698136411510134961124210421059262608061906042484190820205642070006323637659921778889168322715214113723156647071932148203060162337212402699928220721766558877186544772754837275870376954120772829951427872693452673311394705837793535961883707200673055569814802123413567917179205887553211809471880449264724493060808585152715109121657251195424571481410868202574753839699689206998318633118177108596752794528391482749792274404791381906283598068239650575517152226868101983910066359747137813223855621852459218237766361517083185268464375424328244272286175573129267108301711667678322494075614520077597512901672169941668604529795443497813851430331202598567294654899253337099088392019933036820006730588520604968774675856004724990536611333458980681875454983697239901085065604728087930224984077857801898194959141932687246778737162310429668383276656811735979727874374898153383312356733826810050548709590985140565337908321528089471094187992757375020549688967322192682510644207634834499184371667745423388373482679257968105102356136506513049555491479881662560200686594858899686207376661829703226211461783713895289390547840730521184317001116820631938942604950464854204213218874178623673221298022053983655331798720135451540084638830188660099300305359487244965653178052000209982338634514463747561531294385088571510128170327415203719974664554550077538642361950713258939995638813725050399652194398340081441409008617312920969129466695333152196649653527324868724971982206208599047468682450292009410126858618724276095861577381203784523811244376306299720251196608293696025546339561101554145389451761130004691542685091112026762842942604234537285023365988986906812617453957342539554419638064991454962679137073140620762633653146217075126523827108792657334701565669874629453902472648470375683756833463682479735187839211965790905083607327686804456990455930843927902258049427471148451143120390701697510805584624566338249584028742516058485805044234045549962185142536494170868105359437359311867305859849319757288358636314770349694539767041386635558294879871193644030271184904741830640703490987957555800537244357819968264677113148373875260025633510667866751837001381395557016627475961264877386440439038574655959210141897526501764519575214080110072295044883915994591728914092925270859564815656583488176579866803815601183487663366649201056264008482738009654581086352995307630992639063005991492563017856123514909776931390448409870427616931897512806443749924017989995911542815222373077339852987343740581728770674691668704911124608658954002709655988046570481758936712177982980304370946896185158349310232840414552684161804816599932386254683960011901329257180715422886526297087383676084810117830369497107933785319633529615539260879945763500529337815441269665407854948482129619183122459368217148135635023127518542352073949079172683085072497502623462791242349891000566836966432712585993039886976330074634843036638008028294684301482322178221805510768495322129556087089539386198368632005480197210264444539263720900020053985421327849155164826813377600650295938441140034799917556870284131351114576304938838581446459964777427556034839727631717936148000160291748647213768525611846090383787591806654951007418389227343947647122550979161232805002464528332010970159343758220552317713932267052981373247721065851682706626727449539464861113343817685375074822271483892308013051430594018171251058700840737241630515210245427425746205655994593433112849521654262846880787942084496572609545578022319806637789791294066519390410479349044288417682468474688362598776898839532298802324951081190208786352591946089852100620576402980491890663685187052125998107413811602838838433608903896799740934521907755081240812172290214391542741888922849744338647935684571419959305067144058810708956408501792268762870892428449888307699461691734923946347710828628716908875186209487551597180686088166646040063732557976519362277460205138391926245061782152456891058660494082887259964543295300311345842523626855435601042717606907862723114926305495016811436438011081022138613010027034121947686917257987288911344535431784347908684168216659709198947671618971873664812633981134164877300242345034336441513450277160776293313983135380651514000428904075920886416607431183655619444672450219259245919819233903922777380517335489083380261777196699244147991101626183430916831474042827310012002644470765361809013375334250846574494476605447884739299919569953659056743763367469532346925793241704611001037996414700078370141100001050819588233512900244514267182380722289839803986808609044860426309251343760992977563895370047437612219843086996717615084808278232130414968829085699308908189399478596764886251943294168927875555724590082442631638452093753619560180752590148610324968498208356465042046911534525199154662471084956038556167846223960422624487410070533216223253459501273008015134282733424790190836813870293642951364644445595120228052095872039478406996490054917150048088696055901821597789309804591783712090125929643844393446686335842534920380228316071311358350780609296556024468786823298940023197877963141448620054389863213134394363867058505946434342783641281612367566588546081776863975857436523114331897743659778462383914638359810608570672398101789343506195057611969786567538454487277680258328053961741668927454105436356147793092780444091824684158702196342290810560287820585610291837441967573829820438758044365621128768154967489068379905261375186415123889837363941830313516620141573601759875097492942575167124445325196661623482733348964038013796632892141410731912415356278029181132263074457021444395386542962394468856922659953025498759152908246047532297818908570462660055455192917338133279989037324702378404315663055403546958394397902117484170457176809503263172544045508278458263025845894619366594580651607064580606638476981285835550724527512872719232361826195815563753811068822021253320907669003042043356936055247793566029264933679618941493475372094392371307890374423454486591865190533354635624160112114372308688258046259005080254073197396999403996274786611840293773958871795411650871084083467369499094698468237864954100645074114937302815685641019303284741614999763443346253306425217045857093470975575724387756612578468182409772184384939811377639164189162174477194374722043633723324840263374839021534912714858052994499364015583212364772599305593791212019831747155305179426634707685715653070060752556358515437227347309037588668672379359117973967021667460627085846903805945940508308903967394038345161901649132278583149362126255465902311492280215357235174491077652375099429956889347560898639060262270448522008843261168629162208211867506746393467124364164104773315694925409208611890716809411306719966799783870498187608539236991347491484525482866521229800371989853212028781474471770013320740356652656592941332230491414189309408251879625126723666478446975608889461050565887222676002862791530867824417506122423900298997190258413586887838671260578375133069714172279368667997448427407583337647194817192629111612778197300622742203264319517364413957815265836851564402245717219349618289049766424401909232683111868732231366550634996511189405098608790941062873099301620458010518633877726708715820206266158394305127613810861314456039723450812466712246291898595030341262335913234689078958323627705389335826820741171386535491899014407185293177683736967216382137696489597751273069198113572682261806435583165825876245896014288222358661882391633289025963837729212295664493956000872862848867694287680540093470298581265336540386811452927467081691023497371905914380092358541194132884334146876776840134672200259076004602667043995926689156890648471529673355145030123092085437200347518536092389323251333336304748922266022517271861502132001551469456498897515615925462452990751227116432980339424907910554360169569035273969122611655492251113121518289948061029097126780034172504002699921811535552943302036500067431240428508296935465541273188026218116576926479114076613698712674329659472321392217645285072329871617386264960686794361175304516580891388611574329068536796336493680629072235888912735848002681894202709293778619973186327263964605147870396242907808546150709224149856100530625608721456264757524638457729023812205006527616866247102965926947907774918448699707137157649864574700792366605585307834142593320594166436062964747624730615736656144186433639634594710080789664289923173924958160389204420883476435582751601329317281399390730195868479550469657873890353513889672904859797011103869913111600493705022355579565050890747046457640760490650512956024892133441270510178405023586406026664151648988518486585083217661926368902661564156601931852978449665843907737522918268825027889996336571800037512625985672927832193392766171979515932075968442662564304605347589455214198938511497845347446272322062824936195767577766216949167720724747524927770733445409490718957185383202422091239989491629472860344843889125220298620569999355428549387030228718696260731426762930584217778960776399141098706161696258152592569350152372540155051589145216338278645490281813203015684927108890228374866986153766421364489409643288898902572407365153145400744023286544122820326080145489303261679470890376629171649694581299086709542643926360491192435458848824470697996570079581340670978913925182574813607200914065090807041664571660275721292138107091867175220256067112550395438982809312296730369890796679803558183655199427816109753414641274689454217161656038747766324000370776712643661285521694743403048637341118900969709133666337686683539298672055594980537739976023752776757931051986154936896831250493204210422091411008750912302885327332558082483064240614393203475950606846056964338005930634234411595499136295347504692979337640908675432550245550566427105012115676167751670628375639678175765152878393137635859032339560754501652526169541401776473971202278558165851763441425050004732858090584933614589796537757463641226283998660555812411638814097883356898050600792353076032460021102924912722093659454524068834289413682210632137203700864400075100292404832425248884424614793408359787859859227215957599316051284394067763957304840763513749424854552021613955028249666640825743590134499016820925297789980355980602600048114972247153749260293671936989723390893107115972869060916249315635936371478468184871615346264348540757310401360243514557322383789132892299137218782498832651128504669885275077155896803014414856298199415012053619268783654727706101846279837455840884105455399522449357941871292871997118537448294527629158617715400910076882490223659605667244219916195444333428283754088764284714200088888925623176454393231285798654432546376962001152299576961592557246329851594461563224700384902344251465029601132399627141631663385278914468650539107100833345054735429371505091927476078766767544961738640249240310995700644559176335031637506608928039967641414887525958164640359438449738645681908677874793409590704641455734084856853836364480503521261225114665968302914627896872057293694926551572935410104674343365437283322324549460185318869653900763699214730869314932300270161796738364993191645692007116951016266941113445178082655454792562432905161123634632645117017160379683527423396135780407641787029156064092894714565296733646274032389540216034521123667165540008766385679875476893515927897038766231411043570970865632413809000118705432635611236502934456959900093211672737406259396779820066418116783734175270478472440508236763793611403192291277514610330922990484390212300080734284266998362007861198872531506541584161919767423473591733839511982727066816819191056652988299756408099119527544091650026320149267073949170603064982204853245526566561248704154760833496230748625511283259877703806858143092757143438170908114984092048229098711325435642234123074743141243250803384684223169196241311266839974314799387184954057447641771647566760268085559374077392713202996732129719185319235514296352171275970901971363412793821487076936367758747487803122261378187313649353176282192082627110543345686759329006246412426795264862266949538540449041577732494399915376931069342065311757461822809781409801925558819535751897019166081200385442826460138325187138221748743635395029148234977593265186471040313631209931881081323117682070846772775864808387551200853356209395749512305781421387604105503131432391665353011640198895183802564917179178972837724068156494026571748287895239440871153106037747498232255025426255548016246436781574120918867768999363666811416357410730739230080090519564618592961865968510386969949817531799788605220491563536024769565751811165510630759294519971564864104760044991208229750281189300296058000903322771413124288643477509216384617255044438647448276419661024226174682099599902818514452407204667075523670979871366638762347309261330616780640400593227770737897334556595286477529762317362346152896008791529664262229508413994883313107051096918800235824563126168200039059994315238654433344182754224894616962821331403025365807892666521389509997887756750122171958121600253533891090933584876014790903048367442541535944491527509217144488639153243533518833352881201201502057522154776414259772285328953960683283126623037454667071588177068633579152511201884876344859205417210040240305998986013498074096974630212407848643344869661218986930732659295482803571924967058372019455684374092348283922822113654223086041083078346224937557629672123167043090427257148226901112599881874227145153804178421546019031617095606822763019839479218158780285045435000444969213515145921014378105992701664755486844722027173935669680049784509926510385789027986002976356851472458213543956957360218522835586770190249791751805986516598905537062332929567110997909954152859951265924659876339453039674887251715527451605271888192588018285805970536663108235540284243411000319215216190038346340938166393202766335491765308581418735652660461022430454061988674034196384139694542337515144523781120860295316858555646962180142950393276059825345318718835868017458981240803699024382808037616921603163107533244696400979724152009296830284323934964762413498914989083860400950954445345738248812474574127325834168059065682632069365070054631020517992310864750163150790542021847812271279310990972379449018126203034175142931748328176332887902933967874724416313167653294173076833271378872390887297730444974470691365027879374125885744670642005747346121444345351560106856740576977338595725424347251215625114284443929916216211193756630858849630823481724977293933897864535216969422313501893847514449152928808936737000994089920070834789628144989931407222900769489387007505778503247188310455797666010796620228468068872304701483092367860718389011039712648482266035053612256964239468611995700465850168286238829662224845682449567622696521709223602252204003717836008720298045926054153418246929346873188746004830601573129536966277412817706890610791536143634878419397617756426018967909412779515860726088326831309033010211755334040767219815424008578379928680272541501795941144612092133838804375357410383208475546201840015513740835430610589712826297551016921872744827150866319072496056680487672172328667984592403775100702686302879808477013917969498222374564107397293343597805516979577307989924445432735702486464935312036485069789873277643840837950103307381115605382994623626851138206336433462073875408091205870070279229769440100359746912682416640716174483172066839098311386222402170944424014279692855482979954457641717588218377741602567927481463860718007986233190432754651877309673769643570523802663150162660608404225881753169687849939950094185999225478209139441097123940616712951211634246537014735383982832647600415892390710383071197174028512271219448976405863434050318953215020505933516589954371557363943020108605419155414912643492127486268061502162788125539762248927548895226758201370248018233671852005954761950604885032052706032337440723125296979851351500727585873301962805632209802152427176650215360108877416747118078326097694366022235624149166629558049150116292130787889861492860340415926676663831874579776614497179420412616744839668574242087803725419376471937493205298701202810867145614529473725051760472534182093634753300676596743727130521801949078094289858124957983112807172519955772474721296214621418484377936974338036662084591248856854379200323148755216312421291508027628099870031095124136307512078453597799128136760830630151388337861461617571844353827853531272159728413100292762953306086956527604435794858670747276769350132292604162997736202363429245120594809631940478549939229986266672598016478238527234991466715802910957160724271385733607035136598971325642112110788050829364880666166029691087196490737203417093700027582009738456398301808895310373034029575698728867609003799010143793962224980217635384033062527451445443839622880263722723738743608035545396727433217331910723962535831596808034643288706229620994238214403457044752277490384472762123557708188305265806718076726519544263251428614683859420773950563922819093428610801457401926277610154134278227561605662031470357963748681272700336353840056925303114984692889608513535015567429010644835738998355782315791720978674242499738451180323685277645481972219521027423784298576175147834962544305046158199836211754564908433062473635229815997635976238449998960551861680631401136898488665431674112221338265858830270756602029962323924900579174665492089267988074535186234164620586185190190377404845533957840529306972070276058070629159931589425089771144203216803647918304534078967294499794530156351807702826000399076239306724092065913359930177901087195104839721181756733374052956055878079393706307774625913855518895321453415031320084136208391441124406778423582268141814211291232778585257288451545450434236529795045758311123298258946911136943043479315681912130497936367604727071470412698806680072697822589588127915382270182257600302396801313703950245535758619478486040384134153386197307027809628635127060357462014744421111069819227600845882177747247815800332755876577111761775570152267863217427611934468309065282111044292014821075598638273249248299850518881170934235695879564467710182181178696963014676007150919844899161078914443785295691237390202393129677545630092068567732381503019694025889577629591164326545955014182980162032403944139716848547134180341470312917500029239791174853282742218810658912043609979499568800169557824973309672213146774314132818515258867411435621705937300170998464363443419409799566933521971316956007358768189429496538095889441954707113699121773200861899975505716840750330038787311554826365531541843795348400622063169571163060810925183754031447914783925093960834852892432686457883803821557520912816535070129726134936255072442781206589182481901788379759672692586006504255336904773384978385407410581350162594821519783405773870438253018658891917731361948469579742020499562638327930741823901460838694038327439371059947960250824716399825406165221144635339680658351075037162033990117027432762675855027431302484326457311501674977165159468308191660191604074153151796592432723205663434051034981385941598654666587072778798272575425525616994093609311957564995465818439697142685891381027705455870455203464252730528386123954604438528382213055922969492508748469360330557685891234074629844077904827998020004616781401223256664930379053071310042414352396025591306013968687815053438675549369832194725699934188534832867033935656352380413529618452641624224929092371087653662738574328035925394297917372168575220129961544955180261185257502960684539705906423421654377459417705475360562282907076266733465823064857209118478561002593297918620516205372588785156032252363906092838687127290456590528996004769980202081083690228031722968191311847211399787736627733715698579528980573883800869930882659706913025784025550418747401218849490171413762950937416661098003495716791958396769181371535118300318280594821213292193100826961365149555536043242539725758332873104577996144243799767108091141222208354563627369321208536177235857388502265609496216795280102104591065686316612738061547480502450430578466323449551386863239698226511737591939342901416981569403503862804564812633902954835544259169162596981702339846637496644299192817626834718362018851689905267045263504110230173276800801981884175216597438894774195998152315834785035666445061573004256625665264808770219103065055088319775557207508235634862099865754608288370493766556351541481714098014944050917802090997783417398401568243061214919949001684937313928084512215757022823734157726631995266941584436807281379774819079288721708158448108459263461766110038239597798543295556748078314140360225927256816547081968302212844260574901043760560606191231205082978440941018147977666109738749828540511821589510022984132131167019774328556676297773068290343609874393242083831258503495058885245860909385341012576318175214225776346132937057840222714832919681656528302744844595446662601440977621141369038266106569673062726001345534781379413560253025972021285041489848701199408286490053942882932070493505612973370827813046300790862862377824158220098539665348891865290377452373945098830720893422882894819290029027453417297670049383448574895633259495033080189487840898012903179796709725659448434415545403215025840457258228546896427539134991722392959195988941337865377976705501234078695875753142541807204069965211060955018446498615179195098043748604357977447966536382222715509341803306678200166225183127884689960533441027338309831593266475749838809031708790869785159458446063996692126267491799309508199794356924242113563301712110587035346493336506804276296140311054430092637651354343192248629765052438319415274018478131532956361417843018084402213326448186942066776995701998337488492871507649064623220967708844511966485562236536493082318333541663823362957569050453524693499051005419762103574276267831218468562192997804045669891579151390473024850033803874277026156356868084929932647859938318299395700687905260994348899025432167542020763013837970191303420347913002274376118580651646702329622465418798517198891820436069221174694562769616054077353624911239742582268221905168920606093227155813744238187746425258086142313373158838909320882468999010457787399592752418427546775285311445763488004976118172957978757669205410244242488292623074144499872398350995616984556305626291588864026618899579168341990747232994308814427040100285436972559718483676830774311160826272103839227723637242030262445315431447066869206656863039168561915514535855821483445544578978782977193096098808113699702311651888294305816280665465258603853759377650782101202635220071742449415958355489049538728724991101559513845111689336211979335452232372583973593213392963637767023201859492615758207519115065158852600150349277935300166768575874957155999348498142002636284980540861098094332083883901267742223429336224322354320929016092808552084802485881697254836148630418807282271900247596371223718379607718395649847347929071448890761646677324648229007588226486926884270061906414459764335323418597184960002826574510578431746472353702923689956147671082924824091927320466079463627605520925611530380347517033985508949380142367441388114063316050138455256320510429437196911668434246054917234569666054170212062390289576566100262526482542461814338826684088264333646879486892427063178408957457064206032344910710108564150834172115464967340490357211866494153060729634248950785391829580451478623846310527133985193240094857661818714383216718275791204698926159069376743492457917933272092444668575543234871364659960940348263153653333828639577885063620161499303304643344773466939889017084057339513702097109071428715073414722610484381436828339239889133680174706115382553354734402180090554143617294004073501995322785091089444718543105693168387833444411316948604184245553196618519433866122758563641524759875983196153233058383018108180325375252630111086227342966455954063907647611195799540319191604890634772727393190707234818041538024924606482329051126341818681809062357949465412525832751442394631072060282260886324083852245792000995904141243076014408167874971159008146352377671955275814613237447954912248828348534343565392389829089689991770681092937201453047224283658294971632523164494392909944731599835858701772294085443973885470802597527582902772930229859814374928845205077605494344091649170767282875644740915545894134466939955000859263505555342536782960522863044541567886719363468503599866974943935882541430815280385224237131813967995203315876989594195437931394981720420869605300022881749740507634539731843061121045332402919196955765765140761978493606940762727600609712384267082712238879038906438851181504047111245614377951679038910000728323986624485833261298067026886621378841367942127097733360305963944817359291952297966516793611400734137646875620612823046937689674417934323796365286806711793184420560129729690357952128469896345416123024913565089566241579550636173216663910270026190492258464261657753036697849635038417749250194910767817287017022461998158889297693697124503823291390261434431174692836234146501455345617720830052804591931298674185305116929282306285643152577201360022377918176345225004117290811915720370835510296674407149200752573762527988811443229812872350764334708258947103837230528122991579477584515187267980064884824343496667010272109640313761529255471974300242851698612088443463518356449657132887246190338384696391615597592015453706502759062939776608067827180767876324323256173985022969540296259131736208359151915551634942066054211186936690805328987719435281098063800412544721577713683269832552175549158610717126122906954548517812523465010421737632291363734148927668221075368910987228748980282387922054453867032872389998309706735133106794481529212669984332603686728975298734510901033055048521021959801633327163558123315237593146072518317768111616012122404100883646295049369284744432991185309407640869969679849369612771847792817824119745234236616224834487621289032926895165955880975669257176549496757209243039865928807769346185910477544404563270271469885307642154907252773830423705394573812320536121405279046558366135091098400748842540584253281326385533220034559213319772455699929164284715657468910150555411830248041293651191624167774783390976478818364850527504767175635536103942901981273328890366393062354373599330171337916195126546818601687495669593622191718499387198457308093413278057920023782043249378549194611387546792835895913935264044333399142611484352728258558064362064748047642427767210644792654466801247606489138462703614236667605139525314844197660639385430726526428932838778976033940464644369189148073684722682573071031578002013122779122023946447864405529388206439792291688488580820443412779877710585803846293129313697892962998934940224507039203958963611016446066398399340900463863531978832179847764346190456507039372761479452288513476386432978331204911183853349139754961922734643425901945051811473332747622478285748424105249170595155232658561507241392650552755335825945161812984956802619113613453398331029283023352740506559448159310042326384336421773074435781502650815345116025913845581326029481786495345023241502870542083604404724353377365996745683876713398803301874690593715808718071705654819082051420837235237449842118630063281235980768129961253519685828429364469842504814316770103878103952265045440457931127453215805971214048733395339246160680090939118601540739040994205410049583706645301191348861263212346853937197587172362393806198692219211267684766126827187805977355047574950082840351987829573099662310222814830728175033075402415977939568898778977688397602175199146575369408361426925124073437571897416755130995513599777842182267859680874978420488856697592597665483036068281425708153251036059606738295675106550049813133842519840850654243091062312083594491584361677491398040128938923849775402988275652712541043795677610736683520711017210795112818402525712817764891096620929845759414517112413553976265855571588864071546815993372552007076530305535569357937366775853508027056703553541660557444224963415126155027824573540891567589847380834662710696679247983005481959870466076415653804259667894208547894475309750909420956011946401967194116400185652357902226031788054335189212313055229129158888250751681180134806801624110528001049006161724244673191212748720780977427168003940267324361714037325542890682725665911748376642272122755368673589766655426770577549686686136573298189735038807918824066947719356309113456652038697788278103018882950253543370983712442109378321770078477120300973392992851723514455615378092087930882985313715206440883014344223413070804076571522123403533867297579849644546803907755405135618154979514093215689140414535747845515052758554461058837145371770720069171983232968944548207794953260966098738592670888779118040377025726676505097033675142309772378768126120586585181088966296591845769178164204897017751673815809237442802464352233647885339304150005539880788241570476002402262140746081559823529370206642389900326295677151168193805213535727605659988929724214038204042464506819795596380148529573172615750348135424539617814787027898139422392353430545865943146666227802238755711342682668397350359398204508969795920768652918606330783877299672827239499906663987132580792670731014325015801917362289536863807259649907864504559956573562245051504074888196754983706588826364190969424663841131876021487085595323361561633459719211734897158672164501348518033487955626670550542744774653595656651816355120557953878161424636166847214325670457864165330692431506049058978608051057204656572116629268095048895368743203630377528291920122044151617803701011756296636847038427702773373460358689450681047951601969726483130321497311154521055787973402210700227744795568600271197084313951236498337484588598702602985407364081698492904155786607289415297845045565892260282472979725856398100816243197771407232081610210490961557562873011433403640244137788440444644584767100513770291774065152418990628567640000900211826913284600557881468663070444791351908780324474082408248511575561501890027253658106846477719574414684062411127224584184098348148810547995691957312992513783446178699979219023438290476557906044207215971288503781885139810908421340524240907998647222179278558050817387579082457736209747506807670631904851709756821612820924872536335225952117916590876520721456811335799966865578317440634074275391519593483269168426170201342895195934214877287546604767943313351086707111908295191940695227623125988450330808155920968494508409095847369616841644282750566675868725598562585315542417554789353244754520576988012160208628714235743435857272619131417199227561958949535788717954646487897334409280620818292004537796794402158336490692218423655400893001697143518601161346827262498706234785261443406831770565021012094752032689053912038155493774949949374283646010120746202974430294692438716148944236320743116452478836917030798002810562518885497603464179520262808854862142249820967427286840758611311427332841659399890057440524542217118535320904538671313334753335037694394461300421519267894719015926086640021405271152427834663424461736128474183973261570393031229171319380633361552036097633532349630166384457515909282373676522233591878034733530060117892946383989660516335688571602857536767663333842628651260128774592435498379251387726013768894912903805169999061303469996892270133868742813604924419943947051700102301037970699177073059134265106876068377932697565119530973313383821133501856136005852747008433818095397558063417240668869433730213326189468317577718977391974738128235275551796030638370200853910690727095402545853085762473090211998072967769603115012190575558656669457668792688425152417491370753076995863454917928914141462436495390324985867220161508029634002153248784519159517639314778476203754553937721183228101666451405239852709676788941908557530808607321147194997748243446382648279560549458384012339050148634813199852707426869761185899875870734938288888425207579996351002671176512352919504256167307855654602963093808848571899146788300286125437685322129585834897041305415602437945174671921852670924316894946729881236510925319896917682296548645249930989335618233895427865782929272735369175759423020941374675046469976688385426127381620846110858507200978931878455770495805704113821748624794591793228627706541938788852216226815661788676680566324814554815929880168874348191176247754793610943254977639700142600311264063916238100606159013701864041352932108087842837630419295303438863586019190497905926286787642989591018266454132940597381264296700407765142190999562179230916745401632499277247071994096996797923867577287971975588681669152282915529925337692847355238341785371033304343482382265528611335916209390619295977315660301616818727618402896790437570891082901034323348425116682317766956450662574208632361040881053002758823753801271574541144686498808069372379205712305438076251752536179328810568133012317435749920717252023844658495222973325360855698943398505029663680531637562821152486199161534519380952819149348427283532811462944073779529313839939453787230778445218596524121229929937189611251970252957743932441557927635081465471416490691752203673367748838125731053179569323675558619472881127901705523865961246883353671614961342526260523633043567729185195806674575050630904756949602005183158590182140283350660488376992460651672561499086300013867582838998513259056292832100678454026240230281423184507710773993573924267390656501443366131573343096406309138827933699229962498059622670692160703441439706559729029456184238618900512856878734208545854527067888640402454763501188183086426862756054838493831037509871567343529507926368145039264442680122028943884201478440014277331270674007520831047827989561837373654746738876855023342792284959520048221965148261278807849242547426488007187359689376255737581232891096303111924468774150041541531469746219877459207137650723661986279610645985551708913261283523828028609123058851450176219700992244888463593383832051395430787064575693330906349147935833329525158158293687487326448592900004004631192891658162724660400537470396358886269047590270807724835901856070097507994095526374139120400136058689633426528529393509334703383743217069180370568591361817698206363061056563455196691478711479272172076934392351904013820748438265473326647010781664226149001961357892228702428738167697506423790883498792287164544433099873877541537062360112451534240165254403374314580339113337392358741529354525251648157634133108161380141329363341213341484790045352723413483029707662650752307338397995246324204139234824957673943868800008122684487137586719591985804476646133293972559131459038728309038119015988530875091572698592738579654980817387781896595126121303696508265541802181494467147106817459100294976316559337747536817818307977860913953732054046578313789148031588881707627092985394468934368903785456985170934345373656091414673793903046584668684323392537165945522034485930960435028973606339421646834975731104750111996177562946701591231154096988471247010534533624158572108341188905323104026025568490156332719154311594762290092153226989629208887990683542756342811394609729698037999273119339780487117461607668182536433164478730938587661246936884155397025731749451768467229462433119007782176180266544703302490175667164744892740210370807550924745454231964705719383864729784849463828806416858635298529218702072914833490638155962890471899385817611586644226739363400268914101560217506311166007909279650496442006657439775474951129872599422668717205594333917942354654071145154901899497620624458155395371788828296851621513440544329577824568829333463349535590342642011184830546148625318748799211715894657673126201541364042352267657458909835205633922278007040079500445311260463425804697304299327830040118822692608243754883679876362224154671217722597812063165103900827296195304068730346633319954288006369117190757193915823458520710996438000600830884034680565897063325824361016659848290181288706746313161374660685863733375642761233233257534564169236445421358479459579932621340758539802969524263554879865701879825358257556501796261540705020329033363189236696337316957771698364891017892110555489313438533981905862344143257629958607714314641233423542236068084336203000626751067871078749879459136530528289696341647880096876841712594118082318963515536468559096597361898149708519806664711827315121585477415331341237861016658077836315919568984836237835187073576948495167703054983907147850930964113370920690499997380199903511988667008772715089049045464985463612452001748234900224261257911843525152861835350778572656844048479323577934384993695079992983486081415424665934026214649244639830652903927899365796607288802758826670957286063957446698023348195524477536570195209746139354637610361469797635320102309695000741787118868189273010285804380281518804362238424364703506612768779706862177631556782535414766708323471007809164732479133660507910291749434048712110389793931027370957170248604322142628501425262618382928160466373951003062989354133622265068446636038682349876977266290594900655277538572423701233831230056312217527047157446329047288348362527153408912220081133385940308538242422793180786987520735242268270315854114584075330885220626518747026369649799190894696626322450195453967518179444494171291972174153149891077620397103466573844362622745108727813763434408382875560885892401902480715934375412060933070693916045039026765121657728306851030597641856388870847979559221309011719291154863258012869741319565029781957932086094204713353301058933493941591140281579781297153317839965247537869490677703677425695454135554086524175850356156085220313644394887459185123871070041135464398919009429699929781453755401587460081202297436490013953168473488625364764633010682383721808642991839432928481250071825628251401820925471565312528391222294295813096990902684594853624351967571741626305538999121643811245172609820748289777244996017625801984263234347522330847970350194047023723932335895752580124529279798890508167405801801992100123797544296469282260364627595922029998948567145821611748134231677985691711678529470072065357193957672044299374489502170850094368764898376109404497688726073706710128539831080511733671791799552891766553364407471750467848002620273815141022922164960847497281550173979992082299070289087819052779096672796684341761793564623244817065812003990099736393507867995595701323753984197463807454770231770334278138665001721323730334868052575212343052284679663163254699812021567969699374550007234167440175502462115813689873409596987702033445191949172101760440377532753519422599930561290870241838847169145995186706511888908637403217742244199375654312858729736322285197128034303488160230528524723082217164096949637066337762302432908669022781175667106329237162466543243489887121626067136080477729058694857619104738991248441693811142904731893568656271039810901645456140162252787230780112154467999919503385415967440840113372086308176013507059086617657426739589838769051330550249222395918894709086021418484463156561500761657226696085628418457492479557991235404869469173901274238618464819037826875865417495358326154046091705133136903148079032605809841492515056183530040203834137943517992678962493626871887564780392852017150739661839397651014250664913680794390714288964111829098092340656817073994234051383691365643198489001303141355634723996958012897894297574924955703160496513709611988212896632079734193094838726789353225556196028533926201748054250199342177368859677259717268132668613408445535211358478225518197153994155988328595201307311652607000235194053078577309703706423366685959195636091815347520725338536169629620970394019084863424798369518136245886490356908418885352633847106855746890129476395646142999531822818376417699449557390582059510768513318274017786365223546254644037985971771535974386383760598833627386418187922796658636441413981745929801163351303688874581881844391777605311960390284628144290273769348283546398556713460491560140042071167421888593850171373336689203387283316164267196442811817204841933359840244568988579623243310244365532335810182733957731470008978035629472105100688671108482035305805682311165045023549813451948634483040167519941404924243929581493073402125647245834456123210305664197354537491641819764451522958217040823842483861308828598874502042985895653714938814696867150837078379557309077109041126957539274033764996802527797973349132834640868211556712225818385635052748447423594262760272607622074282117853947543488787332392504783748691111677887737327362010280548920101520228189130567206983833257351261592150817533094678493961185240456349239410943222990453018121953550811693446367954111559301808669762422964538097861846385656595256735071398817941864837299638537146907505272036230895436599071546328322135084593314466641895994620858842137117905121321170084634907709779927623440721574347427425579813647469310007597751831995514932327154114201863434162386446915196304372410198579102762213824504163140727529581442083248881060061387100638071100563967687428171927899597641403572248424964751057145212871648609566764179131418568070352519156209666386886128225707498596983407415665193221414879500034690191855722334622172693912802138874577535512508059139739730461295168712921353659415871628711242888206083150347624918515163551141534564567291708492209450460160576860598462631613233971225930630542593129434058794097039360095458890548229039759057781301626748295377891639920666361499853317001763874400147002722748369397373043434135476822604356347510097107447535810204209259721007154408202367756433368458396030124551694875984746921542916398227180739122133115459434854097913868481287758977863457278653329329626209018113396948976381032020122447476653825975872491555710695959067747250407216168820271523518801377252742898774257467096736723022513113128411692745918038398239360156335067784762343507043100729185781266116216674222765963816143699185769280321790207457409003479667261525306446701435343721597215769592489260203336647425085652635836925240314039910111195937211818769512055593500086236961466488633419758005531895278530078253947235227078015091541926249781995449486962688864675268318849889655800596044358412665901071580360868389342063664198089147676290101242599906129103141025082160976329971542425561954318451626969973838332907312944367375120942676214637237343175075045699280056015288331974806689895595904336808683027119498535981125801741687720773075537412157021980493044194584234170594844880510446317543422979529714384365123389980656163787895766449070976025175142145816778629621103290062103224635226396013957847632419009915470323353550650906346726502016015763546398135559641260733328836513209956796721003233504139104760779697306292070020542263543773534212352296094721602004168520874583810679279604209654778459606219942429527546544700947431387304425271019467353627655718491524932142467542384551681086397490956291370051177608225393239806747086412400941431099374451672636749819343516577937698565878109865662796965937208133772648125133070282621519470260722803805602361515332531585616477525662927361944859133203555078169684541245830614117145449356034809998807837006821020520072525760659612870327244095905495251120878053921289455956990705658837506206817691823895844636308728474464098595517081298207957617314892499716932304799126113681917153188439189950539127581980902335949176558546740228928516196606598473957178772469554562405792279675861106735813156998681871034187175099910972418668352254147635950493927771174294282157904069798975372317023439905952714007993539929195677399850087146030596572908142294243178439089593977485934525426906972139137769023919496315813021470305419501212465379446621511875452439770700394917143306660081436916313674343250156498310740579192092441242514668019727754620337227519199423450265122422983372771662507698634756631897200268131296823291854113100947954978068047633846944592012933929094176358357657351552507002688190876879167588583860216341321093904501349478824020904666393240938503592341617679963035045791996276880075367274944370549974941856759634372418268354886189656497227381875255809464940419226301536254080473438528650025020058856472537307634578115441948960534563076469034957059097070984635936296888212665224856274507523135344285340108125748138250688561327901473745532692148555342357865570898522365968355823220160671149983392716787802436970624421018820953874360592797547757686427843329017826781624266145403213751407455995714590625065295517824029636191975498630006640502064029129123787520558046866105605256240853478918982562253326044435166052258330839041006872748619606997572368618854660102393247324819803359163034589422252273429027433425417696846771837120706642435096081529362983329130409895189630786183280911547438175916119536211982017866895196509253058078603860935965003787865333625695079482959587588117337992926437692378918062108746376989205965119678174270792878333908198485916575182570959196948116681694393360826773293753784275841351574898795608938818477718353091058601866897230395936411225042962724674602811113165115699129540849647673794634909362059370916296072270370241029363294743447428193130135517666873251164373130698340956852720262037230737576894872819599099259170048867805887180399364366143346120375102648768027264653459423050636984317377479820684555078367629905153228545648053656815588470909111912998596211704308577852499456921793969312644662972397897426788402143750778796923768820435902404120229456577010432016445449558886609001575522787875636998253923983553647302134794089579549310087828970837292657590440832522485849899737575680988098743299711589195096153197663390530787248395483143121262167284188261480360974646318195820922778458702854734657709614160793130919336087635499222820665069348228670775370676241792285623893462272336078124181026686150572558185769679668969939470738315379910508078166828639960510843930189416540796357402350851690290375856559109334438853205412381169463160680430876039930804154532043127673541725207046276664332964558656997998119362642280608235974348067491501415665682052006260809385783928853280796954226439955866939714865983337882868373467747157254959509570961673344851705734347273938799521861906441123480353350157833173796924258266960117277658456101837283557270206211099555735703435096356379691008457909563993662406877606694049519632519306952840585799963155076820993743029785665257513683705090114465809399164523487242898837288742092526533911087217956311423987471406333486243118123655317515839218155324665489037789205874001319782991559870001851376801696539158461112653138282524848816739057417699630200115886705758738055891258810143818495614413528351794108152938727723763784056733184272020857273061324029472109352262869205185009920555068330115177537455498433964100070734561154885412339042331450668841652428625091739976894925248332985470340595069735668817923020587775194397999937520880560332079999454474812140303992081225659600289000005258250414014283945627326421019762923700462207559214993373753174814779996017512572356661410308886112990154214904920877342265339172610892085704751086601924119686090362598498603989385382250734096352566029038562925192970174653247598252309315656151071190587022509809704585911122344970792055326251717804320410977334382212545033331068838133580347968494877637298228511392927847099931134485774785295171068654879335265522697876469597416963557502619431214679217841295320784259592937617358604311015051195658623648509177871630807603553226914062925067303745150892765601208581131722159069548927724795432590514036122153688923332698762436403658865562950492188024535654494565921746844863735416298126967868850282822962819567696080153643351307162200831486268274180982171313477900891813764396515587168826681552368934303936325608076358180456783468537120327873467822277612583863829801134076909988561025812315916069343930284145002690526644757075680912880667597617784108800245809603559862548901598236950787521194782926648160431631185123126828274881182286831063050693058859507557812190851066965075732861608444753166423246870384806607561209645381267350333056629755178066924976521362058001363412403642242158142214159723899658223911134924075156864877522800944490629921335066616694585289182935629804800061875273567677350310307027312417161036025061279647343062690946142366202189695509178083425974921231037710266051890642262868316314235197500798500899392145914015018036578754470188951053025040115937348139108346315362890409337040793874962625611872495338354879396931265963581273826186315406028972657474551133819053133453753567487923184161318230255358565019400182459741508624632179227890490461926576993329763207709967715407568190408731928713665536192495559991705698312636550235664727549479591995849053430605985422286453613259167695838560801477438076499650276891176200910830483219953949442578457836353479427037533253394169034951101526963014100801676106996122119705685128013139676387369523904093850149737975698865519266425389725449484086996150447410330931966388599224423459119234144959597875005228894159816575274055103715608586012018176236474918159378166335462375115490177425444973463515866504773255290324038117622625284767604104037832866367649312547593531830120388632389561577816388522005243405574789550174248198916778978412591943413700441023606352298009369143684657938300723058488362277204492256245678347701053667218648277024471419672255442237323531554621589274657410333219900633488061762451008405011884852329902875875464127409318018078169531095358914558170658844399129311737429199109106112677589658840433470734413352546483101813450837815188392689091316370471552803319829163608510883022581281650502048850992719465375260513496913673454515230375151729380524570772209308689274980092920680400358027866792463431795840633212486290460322277741117255058620180696553301182479468570960372651282873354479981518007397985231805904808600639392314411062734452893171238823900953118190984731458421499657663223054294860707753293009971998811351441127010876228995202788169004806699235003175618202592148792423512621981414085424930184077724942420936163410514127432373101968145923619080233293069931979716361423683673834978496383607984536041382153049966085027234804255730848636281629261050132012329594534667317570261638886473479346458134446684385709922182971835818890479515468444675891293798895973527574943422027319801402770706690418460267457712297457257077737527267784925575773241612377264164712857596964018078235766434916022190707562482026754541440935363452040813191754765153067152472578618212530952251981448769287526361948956301530285534611044186125231367384231122718439921042927006749704721506706622882302713275086402558876490578937558428536664750108706582378449856734562193104294688307413313971840238185941810372455689973328542691486748045659266482636533110648975802885677035141010121015922897996869494155623161786419540333147754052831291068108650478689141661138571251452753649126052836350082286279280813600893949137499084065915270581249097749548987765747934456241633104592580271743808016794323145530186172015301717614934223007342354135087874659111970614870739179830175393761355684944954369201769236880547744232645259895957057598987723696846399469855661817456649551853988454560777935853477974974683677567674465229336656712718974383143924359105506460607017818539991590115295211480362484912764368201745377903860238553334045444568858820034278565025543991090429192986189284637186214983433905231594912889542870972836725609672593228000047474131641076460170856949059124502761418818591079285116305354969340239964243152166897601149521072108590539754356084814540037836530940305518611992805132892032866656663562811487505864083837419492424445001779179804997890915218787121001874927442883286856646794304418140465173427658953531075760799076136363273395769651649976323575352085697137833761492476979176038760709534442903501526098238933406443584089130300587689626731294837803463112159210257327557374986088063805365766652245262666166538488171421675631542528395514446871604128263059952331437631097513951439223417857453049483338393225905120635014921098053689079035470693263354564299033395778667489231067321502840768516263067168866319890072399390850462805798832858739471101252913888727890682321354000938041533702694457056008306883496602881721857765109714524356160297869876290334364368462136275455923481837279311539572526444641953215790701165106185979954591459389717114792873582874109935617462051770438632556786756217832162658762030398830041542828103005248585926803170817592845490732065896909900389385045496540368392023049349885872216142675932462420017294293006077197538449697635058093910390204002298224963081321483246543982955955539709275009536421060996734597614353839136362436126690662616989315590118787494370004523419679466591200871369740818037475097857328068621536831286509812249682120568733142517633529379705074592835560263096968712189477330238214902394731268977367339920413870418720724056204518675091175064394770359814154260952693920567224939464964861863810053935173198099019083701684430118141227819947898041480576942407780353283602034963308133392060857258453301704993005816115009605765337301017803125329105650697022716963945507125659158629835969066966700838994949083730854216194080477308154270195538393899820351057175309459655415208626805190378388643895546517428165271722063419119936912561123074646698921053429937488128679850347707377783817131885607367977616780357061300362358199383895376343540293339989946853658344146316791858388623094475203662127462276583680593167372459499579728169472531860417674359562635622759734179411579663774606476919464056141550323114205081023172162822979522172434633169836572491658773848528821620720978155285272032180028402454522461747516303796092722603080731031554501445785289221829116384613351361654761666881916889383946920111543328850289437448049072661102610663154882582546512996946632717020250647824285755939091246121191153425760231186616653064284865505671177944907194894952552232988999288793226513196078691811289426155071748981215886742734139852317528362637587686895166891042724136721473184513068468358473263871324385126056966434788400104262709942226412166938575368697754889877574890152629680175246943634575366579118989775986630299625161230162226620566091595757954404378081767667244806141713094727798262298770919927356001357346154744989111730252828224472371454795471458502295419959761987338656448043441531784585444990732587259289830426366785064233908006531857523749730629092248569141623771802478235794568004111747713453674597931810725334060035388548129574071772675359406561763196753788194941460202830402302734636645584006511100167174382936898681700348614612217695524374009431906519120928096454797465668653126667441218857152752410497117634985258800500217389304217645882014052566691666569548442124128669360969232485411107902699551245386859990339140363586902214031277793452265622005587882832989173066042812569370551188912919972749922041875978011953297943374008808177829011753844781712646272413886245301577140508942486876767253434864380679245119468154869566073565480572521031155523406997412224590347427562560844099731400285835285084649201107576594876137246920873025912501203901999114746785432284521259561379844083681679032678967321999660960168610011658025453913055233320827437151953610952677426492036761496690996824847097395617563724829183660007110803417020363870511330929257598152305203090917831928874984916809629689530213088663954148346929072111235912022450909797868238857385593217228648834834966244903206784800088262985878225155830675430605034049659970710519339215411369735593195830634847206199599173986240895116600885669918651973561420969895526514213468641988754443990846696932943120907312364484305584388953745015767778687861186916286048843054560141640878128077453915546749841803696706460503781837116374772278561225961881039567673845999315169292648786917680105435345603984030746172509720838365510592572088943446841472198881645984161902227425825680394272538040969838412656071214678177494101474178234417885180822176383905751012389931947150902360131244973364219336263044875643496284882336993190812666536825020058584785829573512608386286681801280007899929064148833916375877153268681560454746730010885653380676837852632341429491712921571645025047872155044674855506680022924034981349894372539761616060154613436269125362630055719803538164077019449037204840815776303961457314659349648608503522474982022179735305444511242272524766864864453637381858918337481035895762197975576276326933693484476594558568739487133876088035993620588005292316292175440962106938181758908228442437777461802528308684344780826241946460351552016321980798360037905141064829201640733905676869166495078244592999374963285489028318792679280047475877013993082164865268060275531615860190200099674286399813895103138388308468976122336690051472580142780205892232967683184584269826750761497076174410178130486548992581994624093263435025998663884766419563837865552531079005448889757028286933127658463138012889835246866435335732639813257065127707399182863486604528317792164282242470224849910330818120322180798854710846632190220286699871073903468000289386572445100548315333937298212243429633741331486610840723753927223613459669887634686884094590738051317095792866703537530068122807069295247437233410855600638366588269067261115823719801463014031334370793425308891663758387832365318745647223620292363740994179139948026447582731962655319986557081592423436073092709649759401768869778768557758843707071259523047261586961516338463797293233581122337143999079430679554709557652377856367338386197809044733902905455042942039372113854294284395213393539026617946052042027178931954560443873696767437571256230284636383744576655407929317691826954111330586988171345902031910565571364665866471979521025995731107398424804521881262753703213887099253439947319050570235451729026257858559044857938203551429208904169105510121707207751880253128544465950976067024814138126366122141243168026787969299383757433411027437120754484267059449276255348038035968130520563178781494123419135636700241856999120574406335170204737069938069403156399874836411260871215732168439104759947048054278668190843851996863529109036462495903512301226290699436865850180066416601591120182928193616600286845844855414804107681218553444149444472803847732018722222940116494291725981003209291735930831251667241457800695512323912518757032540098698775036260552793157795586372002667535303442626322278244004158918111042114087548729933720751266149634600820378866710645264066710969301515843369956342752669755398906357595778328727715555198314536227597508552869318834714895450385672166146153155535350513253443727556274097885311132087117478003913034579881047378306273401878850316764586105544836127898983476079669019234752325609750087132241602732368591746720528559838219615391196145545571725277732213908086845817662904816044713584163351564285656513856455301725840438810662056940066937771388559221819929254361444718049055524723149045221639824285816309350591027733573825452761333163328704381503488676659245615473271374507592781866041053357362970493730108221054261078399654259194544297927899692755341582755536348313071431294383063466716146234705554521459875302324617919821909575480526294317433389832662427222101855483385846189442063749793514511919787055359105871590740599800357112326680540060663448811765612132701279556750344292146570318663563468818137190422490487658451827781090960435659576801003713490851507014186092976731690654598697645818483433678002000449739084208364182636944024150851632816455854297294131776328852928192610859839639322649161012701627251878740825719950233623659244067541601008518364424657264870337319967237878902860625128716693788470578767217838699014719764353664150659977457233552071941126781962845055300525803681106111107206186323306203416473044884959854569031420842482101827243855285417344393083603217980250004562295880571123684781635037204011011441037066219445913889783857350598267287983466060483854011671109905836780839132515646302076274546788690672491191383671732789864885546754967517307076185231679761787877721641984499741425506690283058040754081881822109287596408689129951450126160572789313717006173256844087221627048295725658243515577459503030545360723545178171738733433399069713037962205631249474837272052632852105046682930533270882629015008271477893803797870478034768993406040710572081733297271031987324082425433097069880772272263887416246740847796326479662755075779226492891926842099543921752452427753827715533350478587806939468827898777343833847173763569233263766922695799536767852436457455268060658443383337701904572418933171644850168155213651978099589013281852160808682928920936821428816623876065241011567759680135127153749937191850522651143888952143423027196867413490139368039573016412158751978648275148770072950494412310872529001117720488672557886151424459978357803840389881510790543851589269378011929285151159503367021249303252252341267561922318452215501033609507864857450569034816483490611855687377516213985207508032500742741655536851568539699191985556168183325737187046506129461506727932196050041061958589565506743562442651578314919333032570569369076807128117546815424154916543266657655509972227553862014900013308092426492119232046987344270500490123746125946913234131058093419525791920397966946817378789841715925767254736869218502990359250706580162248415052899857551184799346013066261911923302748645147249472037405896683141302778640742032262251156981987649328817742588588221879799592310982839331814577574495191463299527790089658742674990453092360160528460829290745266081333601322464533092272443446419645998332237500487856034122850296535457383809280135615782232414715790451595413841982827699447063086127236932509369489974188789039813114437909595859112513731978831191369794165661209426739121042774389573117635319036881778687990103653189913600117023245875149850549301780347572244904995599739921344165563674434437816583701095828372638024470438787574560185864482443120948141866032834942074274637520711726287302595326591259369544263222203630799720742022298080661838204088636154250971840509382635591060636321551256840351722248706779426788732914414401267653090803148126095543660377497977939557140973598221621487611040978563140067419575901846797667009722292758548206835326049832704448282099697351903610797603359715177199728452016797622919595561650489482485106843064349634979106309676600856796887144972204092091749890170386002889360844575731300789154795166345116201246326456865728954956070451250934188973938064298299467117419564366123543210204761557472696323863449020933392349491699007012973956610323246344783989605794889484626325428650610995772001343953843648405159643829909553620019492112106758348454663611863527833387409202388134459781240237180891171273136204936595316168752762566176067991738854974732043902700112852733836199430401064411757094245878326399469217005709689431618776900450260337499188350468321516378461806501721862169778690302150295425280342979391180376531576776760057403332697328365866812931579193296185239059757633698323909938450301872267778514868403710194363050927814815111953964483453316048494925376960832147724037697123118718244050042651551162436345935344582127752413285137282780386309367712614480120864904610374315244264520665138684082395921616348456651938451388818569272469037784291327976696902542578195816714646106495612645683785210958937575140145480637222026307209257708133382516343008955066825939287479165860334975051949650925346788027735847954142990198923372148750232908627841172032233071403669020715875295473292158255144246574185026517142429618915422551982483417936404991994540413134020457466828438325886251636396744380161793449005457198919067893851787574113881022575383558124329993327567397893451636561814550657981503261075266768575270239597614272145267194795168704625569540922674018808379120399924506030919257857064133846857371232884997852478472890919579692214396131739637615043663977022761012159719072757563801648528886692591990212549012521923160208352640240936787723089056788221493814080562002547389019712738033021283010682389969881960407433632339952485932785655708665669094099345660171782916280248615851402869965371733463049450369142333711557654081968082956916304760341592909830442943656247931475028494604468331690511659176398800480726968638150306483476792854345736346670926430093999688704810435025792728501331886892908858733842636754958798748036939394891846470045632175917347330576873939608948084764577762793256761580943372093382130443577727925677369531569712143662016087053282019921778005600592079599586101004679325476052582092466730567950544460521093662184184546288027575377655158324505281270408000879340746561258436604763376330121225071608367209798560241857870877502198411169780067062389216987871091977528532093913845994718413338982954715789806848543864799971607250661549804435426492548164122114884379669767700245982113980470895004295778124343923483846930247544001734779684836597482918333059484408229783779496899643576105661525212293137443307930143226992299594293105249337016193911809119309543172826982064406793807565131072364266705247265232998536463155853013304175386142556461330341653606562270511906667340120506155349623561232720596831710402728642660594225248176218025697846369305746545312332308868563680889574975669677083391216394959048020571316410962384321959365810307762188642230980250165049046220078451089421359832509172322408002135098009158677335146978425594039891007159946219101601468632859821956955975067681582485464554908546268840446158702413088393317591209970029209658220854549028420478645320096443577702767511077658295379195622674663934014582132499063340475656039966002113375634487060891831166592070659716111720379635074844620870819866002566544025172803910607560678712455577728501479947671348285371251617461264438774753777115999031353803739827258586425636205302583082478186623647704237194446423930042103272157931341845231411195547067952950535267924873071780148326953781203414477176515904383512640697554261051669972553866310443540719687403805987845322637243551965328067511130486978568367183261437943343018592465761496543966341917642060699408240794524166465520351498737944759765671842737186577104590808629131631506923982126981115816859918232075564816003656080312455141860247179370152396624286865348929505194592349569631127507343186940074000043680569650351039828140934377276880857944101783659483504975400925563580670920427741956779672731885868211058410149236407879600329443259086709818848491857031590346662852613168918200277204235672703308685455266724426216541339223080721577403965007296702272808505751893570617654368662090081281911468954840442937732224712271449848632628991064950516283423975934489187039968241397658248311298511201615519311907863032501667690421967876008299174722161701629408766069542282598548957101157575183729377886430857966563421686260681449086716920853541244575046506384723263142372974235040742536634288356939383136223970943261173276627920170991847629813099927995854518652754170788664822847684075448304862870225353815524708636082636293649861939728498497679041464928968003362433778743375909311301257891055510322398814220059281644562768464020983235538693686824814900201391450156879031830433902381360135636769197030328291353464269940795597481461808868271143143326747309043220138203178689190281579005867029682593898198842583051952477178342944385225236375761580849379586242910467476784069605059734511448266555532894789683483856343823647619185078200476042010585718028921721874829109946319390930076261101716978008809143909745573005675994936303816229949633623697338313651780626946127520528427480547651292099963288849859054622738981401033417345807458298009200061938725004491162220554218051762268267577463970057235774177154232489247348592605663608022387013468964253176344044215949897930980735190097148416132928042510203272320564684706587850801511251351251898591432511197012743393495414550113865302364172577928888433338406609240072040241630702641157484094044128280964605206549258227021398404625646027522387978856000729747175792849550584353206713554963902497330189153694796342509236516300351150352336952418267008046471038682952369287750515837579658318127867358045984588106811499939552485508515020820662626697938335957445302171451523010496546874178054170457513688946544504778514050396743126526295459956961904579101474877783166245621567882349554883985016521992376937691653839369155306936226786582893229310619609085273216155433568282600129486671182474823926440292477954603977565224899365178977377528365608138113470725005305566924791947961465442022762877448559992261027298989586696410746275606887690660609397950308139630000787737562131988954935609203126773172901267516194607122662896055980063742038176835030345355264975202560815904543939238828078895382515742383043132450270446278321327381641963646647822038904320392263964981759001983313246489771208845867418108397341768072102171233381101005000053169847713604546990114759738127346494391374301926476577658141352352373657506905969692835377910318748678249766832492741655490697929023301856282569844921259714486766371254873359704944368262318655401556053372396999881776049373678525155683949417098705180897823919912337849044195187034246698238258135667927466081591585128452895290583923758633209763140708968647132995139668200929697065100401937442348328175732093849758267368013117271703108691402476549611521952944104883611662401213952248292414732475491781488171453832538678216992435653294188672566420477802378697253950230257332929802238955759644869462523770275571397156952307922381831677173853585775249256891399293785546789485458922739288557183589356429548618565854243599150460351421467625663405770599892978896705452417039899879819450505082733337892871743800211370732906787523387381226442690591499346029623895823359088181496391653580003405684987961575364744806443344789692872944866452487656189487780643807563703567420136842998856652167373495574789358698208962907703246231750174248716758256636919326020290122792160342709302797104897198246104067020708015534980130546311082719366971490483317343146002963634113250406242864727431330685319035796002324905481945054857570838775380447766713301245713010641604083295531241796689982487086405024022631028509276716689467440309272135405656175673742801408354148122836047626643671586186784344257416108297161371669216387830274015335624873125336690235529561823618988341780702826029601843071228694627282552548704792372600069221802685565366437596850717329573914398302285646411621847066720419179276401079238050389699814925004089931398303550162578916194581332240454134104703665059984900459971031872242035827376470473611222374886437466852536926941876299688325882972986958045578377390687561119518791135112106718547460023968581868706302699426527477279174946796908230638993951601620185386568823946618578803834543771403373698306293740553552257806119614197392107818850140144361833981049310523270359560422191016371447256056843799519542985155935318817057393268756013340962559434338841989146425113067945000325702501518819489116953556448947258823823897702613494933439890034079591763692574893013844784858257246986447629273432176644448179478009557030953424577446202273134604114496638040229896992338868382808460149927494379733241040640181850953002997932571532680300678385438938770956957444920467277002478946191761572083215085129636571404906774246074094951297483579738520164288563480623329461170004003532824358046784322993519022618877926580749830940728575069997151391182648106609372134536964679047394418145522586522454296380739365475929089247129361984045704800018995042356311600843751697148687276520350724069704782137053022151451790380727299425337589100105823400367012255598216641824963348373134439187022216216155080204181610175161011832771769878196706942370470187590028721371364569786225070155502468133919806516412042402603542904111551041493081147728654244604451143653821251378008421553375083881306703021778032148469385779604129599214669904915956779884494262246910246069706984018508844215443944332989448291687219378034579381086245464725844069265486018083641867016881996742536660868316232312817865104135594853193912646046672151081594317083137321300087203795148681816111031957737312513044726360902054245105913809111361684397095940911369455819870978953959122962490598803891315981132579514926557150866787932479263581869548112434221467352535971187098785314508234569545034440661123956317507442012613827819211929224773195569453560198626256349290571863151356039791496669588264935941661776202856280082844500721803438516320883850987016258753608209739121880308362915413950581277198581352489713173737217869071804723189831349720192833477216167564014692720066272355581868847234742041232629113758612464740813259890306668974425750625932933128370025150237952521657402922380467942005965196253219302502868761621181987865180056031617064727789852413466865528018906031718070996202671786481469332958070088922242177605882305457018772207539538530860103104535836865537303589056097238008449290330191908076190078084370306351837228146044026753215653954946740919602000581052376254523802042036953778472026899565671185790691149133075712697670491104115777371315826320508550996564815523801009788060465190809439615088709969687389402336257481780070106317864812661990117089128175098675862802971081187123309581357776785894020847953141207749315435650196631667221747441445314340674335348918476578647143624890757889116314050738490987678915419900601066716995298902691312285804757391285817642537526414670399031095237952151638805735783293064805261422851887419996328800406130611633833185237943101586595586216516567382836492607151011758587954533690861564031805322063235216061987577311488668453317274857385841228616871845750794644589800520791128190682810420900284012242021899656117199255644012074738082714723711709745385832505033088091688772521523810472461858133973944918861690590269313178270050528162541736968690639018417887627205967387579066483610929885600334870836878026777653815153788943184544510209096482893125835419421276840876048482162985699897533794890980120869399223593204083604255965687202830080707291495984558663009670662502602663655541019124930713454180527000925159526957496951598091618187011873354156294420433925976202885455943866778363206555509428355537792425439033034415542471553091112836689284150296176360357954129037635741812114510089705707626272731495582235965217643981200460537653678648026257237639319673569557126724836947619726432071574187371419415781964283622167810786285819282532208930826408948850217981926592597265783301880619806219062996236584466289959642671065373196056469461767753274530954734149538709738485845616637605368297849157507547081021571402742116747197827205518151386336232436341963124577274787190245143629856712173556810388969987254440410076110358326743592631753518435481727296351778872127029145906712952951622487013794029338777583596693808784562523430296457033376689686568569138797540071585042426878366504767383701783834970401856290410913212832135401027320877206058676359749076252968578609615105830082157692305724276840555656957410077728019331128467529750942333780017364794630962796102812872048015877172679062657439247457647260285921403846578039656181815086031827836621337131033014683057635482649093757402212826419863195000830627012234023367383858289422201153808352634691128598322563933809831594658683991344683668034978396767641622882244243452074779999645060998340657632852844151503115200805154784108189606978647567213336561214604127469656883769701894695471317879842650359352605808702889687594893814967000593540563254900872260066751901782605694325063795870304028787296172528494485163954918558239017326495767786435252413682669523627902134599058515415681382839494585034626069957495684334699767439208737392676918541230106884432822644576608421885961300690451175280613391004263712862503915766548091339422505697728479284829102520451748703313999412779224451152274770753292140733145258947903247417915764089654102641235252990482113819919007748082291811413862973525783865617945659852988700914818512003583373196288074741579687518023702571520618285151303296346327951478156692325425808867103326011196036443920983670157099913659170645000520100461022241078514468708515637213378795369677705420967559271670285300516445411135081953013936110732249261309511366620006360674879127293334004010942274895731997231010714561512572125996956635972737189582191880569334653069263666849545304974687773062331234356880252899101154053512940844112861876155897867050135672274658086816436551509907406031400875303888549575463613582260669690671978692515370083092024461430286354493154218378855692959370197796364107819350534296289769011743468565119387161064835017049824794115478516491880696239832251858543540466144575471570151111830235266440917469993271554387535215044982183619389734436518164610458395774252264905241125709320098400671355545246035241537074827520926896506273620588934580695173133400143385418354465328634603404429968968648153447544190494878775794737895382599977320601600018067929702510695812225179561717996961930923674934664187814017738676972801711915771721551349543820008953810118815402915128236511744422823460945538567354743516616117977051572922927595029054315277956817198934776706087472925512848076997566213512709489684212737695426439532509000695017646748350963081223598411637116252157079542148200724632666294632765147039730311887623659779289479678318921896979824526917970816622271336075560087170545310347713029412592980214896447511116719551967064410012618538356484504770352000358591108600266401148740194942588172810980129036801827917786537623274863679874758514237504831833714382224511726589774847106891097078970944923102557242748444052059756884499349373808091531813179193915269222983432256736350872009633570129553447224832762294645661741084177713473652944801907351580122962772129355175236131102298858349444879920727313406239658343036014081874481240639817817980315467101470037479170724373912741574644489581636845188058694269301951754136322793102829094076295783689487621812718782786304273248765472861930288780236906864756906665095146205276517440833833435383713678709040394740078849206402202272115423285222979531417679835018921372772675956462357532184052026387290286155239951089180176240231718489990172126070121431986285720533914798826004574889270301018304588391083971913286716629296023550026417017197525428584973014721015062903199276558360546914711291725395476648641721006345293854137570425490979054827004505165896805256584191942747542721965927324096095896796118023558959047513736483893507739063829624581391615400288192896533940938193094734739313500050854862086784945279067819145279051622360365616824181038777935209278303583282768296693630043293726974867035539712306790231600531887596881244619080280533080889069110253326826476932594716706469981299018158644758917613539626767005063282289991407990537756738497360338155629226904769268313259315490623387582965229922663420397777110113529519848500966048516486561875166482703604423720119344713599601840920136603760982465089081484485444260734419090402275932287951761028953485697083078385289246320313606494357550822380568097932856775909173618112990332731404443666917549057109533595016851183966920069981955281996724827369804205261284881885190054871985623886049407465043646295443428064487706792572155396966684572529633125520326844354355389305815342548609506613537519869796575166676176083237164317497784012363775093703573501860957702610942536079779529854104972167284478246791129426906677740793343124840120234523328419047901605554194955303525068253792610255629300742287169321931999149295352547694498028605760573458236757762633031099871420643781063874412383763531866992872905355214660043510269324532894676404723656007645922549046333495245255900316508118547296775731682686511861824980216960603243952246468731097160703757223908518522390332065265116046837039136159763560208353181368220465840213986105258509063750379093340612945633405246746565380077758518212811090292503082547831630147251550381793598599169865979671016444102821148131753968306412524966129837009797471338099490203660697790864748428233446312738891002864653908300475813210939697176489550918634938495344793688321340279660510752536219153263095148651243601939624341946691957788926880120297170192765883278941400127412918868724266392174088391754272990227832662778153046109655471617731067224503404905043948795484443976113695181569959493049120425097169198080999117208622760991984975334925025915419337217073963278613856975644716441531038608364722314654482569996551735449870411910052370679850735588480952773563366022867552194979843691843544596350920429464406084482013593875036805584665992983492238100739258999196729990767817683911991761742000564537625416068079084255377243584863003366159985807041727806885201270928795705785958097518780194215351626964002838943159308852722500884901268593118650924976104445284510685708873384429723588734278307950492239797321559253348857226865758572814507271263356773690010579186829322745144077541697915425932333212143644552263499872622190397050082256875914232239764395077932940100592262048950079245579138295572582909552663976463695633624037684230436399725122837359538607959592999673476063028857157520453448205487506553627913852963567114356539127198053024740908082889912825993099438527473276436444940023204221420323241812403355860679455882894190960154219096307633520250280909236695458182549363564267498967249969736741477025499046330901207079254345268584635841447887259818860483566532191489895539976390388333040863885505092548222044353467887870458538358583451242092161798875255556045143950060469625199442620993549749681651138382755189088754022793749195435071685278162055392693368797047588123917687805302511177104729968086303251617883044529125900077700079921372205400506096048123784697920324380810857602463013890754371013495949397460007728955890854364071179537547197983870600200489991410556075187498472981386913193640119944066066984894272476650711465934149842827146228399937745750273283892949107633251697677083574394322046048505821047318571944057377401223310011814286949633713289140618412964233160279085124743405726496112340462503799819413939696385736428648321550235387641037304460978481696437293322609357653409173829350405559425675395864231949265092030204897052685599248500468994678905428829535813566029695150030464497207901099295683874854414788239113957212894875843068960200880412873322013297974699639737421966517309393075675464857073250475388324228694716980775770918534468898210472549957449102019467317155200414534815927805892837073708033969867005571159967336803607533334242040529903843348886526779553032196679199219313585129888753882294730996301699705701515093780540370138024799155740441279452445180368958631288453035369979706460118684161302426822846301491793226200436163768550960390885093325527147685256687019815016053916588323420322114268406128737909641309849351042310643752833282930745885143455946758071764439459195897807918644987256257377068925423889352817370074263998824612234876047881233502730330532119787762287381903575577994399599882742007610850770437918110277949330973616598739458363720732675361505537512371514980223028805299639540912240325029132671541443680075737755455066042751317066292621916695918358094489211154795196590801317796006113590874249043989683744257088915298424120289634456217803539103880259355330335390229187458725277059109240395835088638139790776129276646017276844569354730019106615128632033995228698869960893661714586222840815225619223266224375159912975676183796370994384113530773409181734398636755286931536788516497239771464435810464991910909725727805985676187895745919200840874499370053238214804343467675838837128354070857061879940988897640912562104085851249581726531424965297394837330242441151358971856887486520210999090248041737832357784507368454592279034315692945432936949750344984059545335063600436953345401714931715450480670417455617634155393797282229306422815727130048241322136075611712732122301248412039361226864875730564134282301834868108389275046635896076735349401534723795589205701593694235427968225261146100458027737238365577224632111832820658895302029922642092176765715045572371242894249966550335898777660527949395553528100752940685610448336683705083053416487310069460507370585353005488025836132356910221331994992899466020850494005661222979198175899707877702031546988243446560718537700850320578801060444251491456858436698073540315893734952312384102313576541270946623267302609511280157109692963295001101986305467908268325227698407530026239132919499427754845999676943804123359694216672322885006803563437981858647152230397081042477657722842880578588958334435597763354768710285383428719012328749169541612335137307391529150950616052379098482562130809013954753816397755611032966149862668450315146318972840523687348180546517499427262892185885342157513437326904335423224266469231595645475798274833857394718486223313969404979896125158585155989974621386950587881137662974129560063279762345249496253039159944381165603680101322325336553019967302976293401335801000961436203354022130001268688841662492736442793877701189709113113082995446777316007457056330508748776530660008976492739855029461097665235878493366305301436700144354936016154252143546038732390739612412766429139956676813293309076658272556610048778623377201982130449640287188300237614966394720252203062937867800294233093556796284936250851509663041575080793302835986813941343327619619571994804333336826005411964449271744702985439279759977476807274114852381629322618321719316993027892588667314633068278708210882690780655638180020952114763356987404120974542515549689078751437851641385705418322405232327836751155361617823897793977841286586515267376085413843999781563219830473790287737862630851763847520236460343298627808444665408666252731953075034601586788818286997364529976289335824311781371000031104125244353258821979207801941177119668432315900593618028129309145195436812052468551692924140196420105329695353612460344330367799537651277686001393244713138231949042037519264272765125212176935098763905803879038621472386564462084511861212761514584174296407736038911730611150218598789309908668391217247688016729888146003317821275097129188233464665989515036858337042798882646595318081593415676099872702690178441697129038753525724049360509205504835111956906766329202660625260791179980761957341811613969554962628899403697023060480666403078203730631210452701601141826230375004643767342814505023320356035018074719714251756750613996176371386866811417854345872476695764335895519180133600083370643758957721638062149855021740196911865196076939937675386323195546873478128746666954118838217297682446018575459748447168665535428872157404469890136794176703781038246081495536436097323961761873612803420816350925867066146644033546061133078343328872253384093626671011990939798077903129644433762120510699722760822735905689090495123797236286777462235862983421989427012961749215478684466221760914303628195793656094063122118864134874722514155669562292711379427886146523803857934307280429668732014996459090403680504743991616339052923423551085526335845178205813586297860590056369337834095281024261958335977870403697776894965660201943831057744547690760918066744592209011490631285550717317634989604281999344595269938472652060148222189523386985827421163452195874694268320511119253443305587994989382361501634689886719445407319706422564601714140829284402319350701711967719767477407686331031532447275690481597053578881022897129649564031540250118119172757200029702433313916034525377354341884803033402573640454201361267268619007085773309154409824096885554290335168166339678222141083285064549585289151640912726659070248274557211989018793507046342348015010547830369299955633589333163817566558206045813006818788918379663316765826356588897507535428513125410836841267024577458233161673599778684534869834544639668172786422348745252108785773889880699391703032077505362616559008985300401289884097845016844590160656129749408700091339845046539217155462678716430723284141231304230795702979227420092624120064257120702518147583175142175524900870026076100264541274941525425563042195728067887398944303925518158737981172443348829127243291548067855319308772158597243595941952640311186701642184843188369134702686317960607971505091550570052351078206637457005729474957114884665999900558490590817337405058231523888153982819425195571444811909748701396255166258682185598975339146837523857529877100251828915308406692031256602774304942540895119933767400129065522353724711588432533023087899684461626059768626513936988121033971540670563639827358564148931753524331344203430267159531111867787560674017645682982376508246819900249072852999365018930884726644743797335064294440263892103910508302367877845977430119963145009349924476924640514516318493524765686513100829153661186959194342332932713414226239044292172620571015833498738931741279867666042543396628546381254114037909449382069091582592343001549573739120334968610510150986614644237149373541191547185818347265694437129555404762306490672132884064822170799950712630605623485349411547901480344410826284781494491971545750514012741930028591037885064419983484357889589544939858099713933235213930102146241400879190354680942384956471362438782257793119608536253892889795009601560899750195352801900305022538806409491168140444298895044556693654612630672771240409969446564871643272833185428961370179409079060302956838340821573464379974389062755948079818040658265948979503261676969934241962336663247937733356545255837084456733496006205571177993845567214544538860578600071037181612954866638035065916307887104726498723725492751870739813456217616285013959315763997782713879533611724376712603249816444179939935088823090423886074396872990844023617868354595443610230667559195106356886974069281015128435455482599885106109944738400221854764237481403194740981419939529406133571522205916045827212125104785003587197578125668950745720101660113904647738926656814176286026040992291811810279860460294531383621933295468048571916731611170876348485529106515390312663437487064072111466327654292183821305844048836426951789730741015486445367348682562078489578396112983026227521259969847065965024639728603715113759242856569109457325023309496622460492067870673802400873012662873360959579192456356499031511119426825920795984869467097983353966200910560229711560909730395108527346276053025619936520805810260250412935445072086416115307336384315020077661336950761119703301328146093333516595281587904676928542653241919286763722201506058619825753061701139874288636736142128370803615797266353149483187172436351196697858506148115217112028929976598005682913895482546891149812293291609008352679269517838767397363724252355085371256036059148504595908355780170824004037767438445097382337906273568689230621268883245190574522092677114108915044638820695409582932149095178566652957675023671752194204234618384893316252177432208293259971856459553083149809496669549592296330988001920999573184808054219327845538703504235153423930406693719404253955658674042386779026306768643523499940651192212744651773401981654446174293002147031822555096192760444044797935721192241606726665398501919693662035518057311658673027218394433452861420573346919860599566129914461070350938896539667087905736760211096586119943889926508795858333106367206164932783678409519145307950750676588288878881849741691180020541199726074794799728255404437590595462842162354598837487672299967670299137468599677306764978158982960173075905978716790457494353192616431915237162441348798810920497991249131251016607607213768765069168712020626255376932084190690456381558365611022177092760422948237037784938211229004754894149772895942289539442179208461178142998327892871974658152146090453312161275303215240014355417853214740233267814329472095429293847457157971648022990395931506707918964747550421277470802500588890507556720853188236390078654205573690338959855279318005168919026656390987678706069066683619846454117183731062193009524967817690213341041058994872948343050276925515537320661700044105489585029760842917968631264154020759193379955915820759443523738716841273377507261129920758337442772956123709079875979765846216421247212084623255325822452595622345213106977075756623717181574522161416161579896144641998930472471400086027241704934467185909564479610000951195627910173386582991337428437896075027659830991687100321537023346888253771921917210522539975344260238308884176022096858960684077782424973489236784133545435357070927868705846664006443952533502443192562966026802836625015131944317786030160818445996239329974544124903137652586481191157351783218950128466774245332468718168658785986500745541047507112122106365078098966755967656812562451114299045765064906328946986349990910959707107131107470718102306894129169128754494654205935360329606883278495275560532027600762751357732471012567416121345973453138417977210762966219979339145044688926101574580896057373460142359988910153155899274792328014192798078886623499404801305130555592810632331257586294195850289416803917958368442802305749691798077528194377272562230931996414508842148806381062876334948987033059726822082719067246216301151080579697953020755406406397229058460441905061955795583294589770788116400847504862502259843078403434483400266469026389591007194646941361061886706178493750928358019691523632902911448221916843675064902873246278621816167795661826832827905017321967516531428675151952211805676037260253155009442817648706944096543676004496101505209881838081813719390666234961886499837928766371310035895127718985267677866627086602483405734956474117263218788955125798235228366479646704834795815512636168853333899166145579572327899837363255826133730609286935002741377979704138905222452836912504275794162047995933200050312686415721453510687748005418574649009274431673466934302697586848097265895921719358976344546517515275298646469655168667557721424555930609002405722683328513788378792527365879718036662494258412391162352712905680828155647709947668369202936066791239895909920522934004609497536205808508569687784163766759180383997820007609691290213959179987455107242873210030160227457706854903534863231221127624914058738123227919698457323645302710880370396540766892169978818345659335972436490758735551625876956725851222321620074697476333399849562586818673974931671946688698531868473125359702442274301582235340426494495793957222910701830136448012023862174197768087530990790606849046622946873498627094251479570935400652114941708541137474281707460900739195735318931520808567994929733801663120075464462473562944609365319659247279209498975705193509775484034470468457078980932230561880541781288534836507998668506634400363663525699965104310485300914263546158232056899929312062677384623116062564908488725131184521437579788956735637459691437367109839376925317430657601784147701267553855985024873436981032677905512688312616984698618361980666670429203782913779101269612212967648988737127323948846493903414169684628093310163403115697458077551358521103567033453801608884023747597229014354448217131589900668713601659222684913755771657713816365262066435461107579486447940676298330845364566081479658547934357089613526794043554475887967758078022101672224379883653055701837122346670553372438467677059269410628990233507476635279304390506169499981683371146482792742850103044872014435636870602069573677848045495927666520278523569118870970010978463273619305809616437791714441552011321179580939420003986515718025169035156466305949878548085532955801444628494109068840560769676013346286615052070022156567140402685628108622002106516882751138417615442937678432245030616587142059396059995176018526762928993707993117178438656024149365352957877718822131057772556312940248193867064110788871019909460114317296967252829960781941846309441671706491510769273151961852676098690735545141819587428948278686833690952509277931160298965473858078040418888904056011837776249409234794201521559476011428275760948592792208885991133027112880337304084218822368567364376646284858665198745153171331160347946856430603641773359859354943725828019474354100058001221545995686162684913721781096429024281611651499662457094821358187586479988006666214464272799113701090538822402738537668484873254389357548349470285045035717131313861122688383834651832210093797915897304367415187113540479311319803696063293761751300777853298066077916251413029239704136430493404208963472006427554852133166035805257127314030121629955181922817423422013878495028333035911112868304182740986058745759014516804003267537342372297884327892362159457942892750710204990190192003046281635950392148751123441144375656806392747131093994606703952604943390678779549305275934977146473047810053083231175435299854361891640239863656541983042343183032908621846720995520062285237923509170981086658583671876803123501985976579696597054507845225399172273641417005718040627618384324494947819690778418772123641103251362006699685886333334093892682280695695990407976236268639106115134483590334216061375631791333153222072716076733629194891299737358155670624347752719258929839929829776102671384435202811381063345005482557493778965745024429389752611490983681440988338143484208636865175377494267185901155617291787624710826109513193040598798547890724661029668529351258350791366701687392219464489629694727211244773081036739480751781797922472267708882050195893952233872835209680102664991527604949235009207190743479041463164715720332439840830507080215697476130458120467890066913259611429823863453024026437115082175884395868242550182986629451113361043111800238243362749569574799750845416468442041102528849447487121435195603427606630570936649283427228672228201019243278850317122685555532784384424295819473578015729216310739702460869770627639350783079783033467261534336462474998104965159403145785910760693195383474013143938418388019074777440411668239084798441227511507467770039967558109152831319791181451246167857051758735269636982502093968998929796319938671404215817938495940511808181147952082773617630554801156539096949425209902166642102235453721920456387420652864416310454833920535188172766031839170914255833918909280129948090265374081252992190137861810552114691446381021123425186903454728784455334627565671737057880328250040752241715557872633369028366453658116312863339820360466250704026368263443664517057896328669052924657917331213598104855948096208912614689220308124811671066794550166256099682861676658294616736189258904587440001384612661528188285793763314802898121944788318320138766536138904560905126866387688932789875228498188430594528883887260435612618634811320818661708633657112376115619540839011968787350681157544819056393472634740839198494124430000969857864794835520784855329669746080475257746991998421572591141269247806404203186938842924409060822122098103841834860345093406954565668228245743183960626219076305728682234045152244703369486541943465791746782175646249381580241602378050643856937368790437670025415423887569984012043323786140103001401588820707529629232200323602649610777248838957550788343734138129133816925510577255881325829016681184848183793096825857221309381765801703091241485769448324072450649535942434843226803632532920669726594608293463169199720826716477071355426364072396182280174679658020916188341091300966500092557603655483534659305194150322307742109956587421096823221813916005549622948391637469064451355434932843725427404862632839771073628582705635953206515650305122675592048868471162773974515941179686985846813877636336352335621491402968750999345031610874674267481338441536207349554799231811212441219600441064853125421253034815751279145969329173878295422038447347681174209579577897801001239076711781275452431015889212427084375642167906662127007620687642953990050916801951582926135837359142503635418811373964969605709850179517749529805365065364183391717887272596291533217924821894106493927373453203573691769883789092193151695543718596798059059416568452654353241194062489272212274980126349193730459060421137103665975172424814580427354578872885601996866765452803376925900480161456672437563752286812905864830685511955499640193432640420327438693392301084470806240520234426768731136340770136494005417817379357560474712256324412701127406714257653329011969965147885553286469715659733952351775662293596279880051906271646539168149761410998034923819738839837138908943416034420884637400022052039465756394784626758234270437573322683202354247375411276504124096903414213018206271642189782817392535780531709656817440673223198149583058185727647516663530494441833506928172465741146621972125177559920520210148778473456194151626904397664503119369930822843251558912662793624945904205206728972141721538305882572794691906894947780274824804200343829870909497461413260671882549863218045351437649706145727166784042790733900451973026803260218403051175304034126120919815138685606202635457198819040200758453457651196448063237869742880661943017068624044076160183999882564743254118114000296293470985987377193712569229113838813764800055626154486339701607912346478212362350337938635785834476690177878704606842452437651288214543149538250530752192475835626733883653093731530033316728312626719017014413222036572991928000433335465028237757595699203578897646572258013956961905021872824544601073726123377642424981488895580889223572441995135341091898822788131603179155821671135547807631609908592440914519523465543964787623367548989090512948511947457679584766909409391755128452644326070402833784438925108697513261040767058863283158038199061412808657004224519556684206231343412257075867027851373476941675764231376110052417775861159419072654805026587810610479450226469717296017680202815675055051290601295146242567539831381651212004034498013003891378055148347701879659707167947193745807427244454316380427069817671712115143106204945205176790785947353947853977278245012449826717772029905631749759428291657969893012662331242492730118657953903061336327951762364127696735711788604049066402508587029978902666349382060250717886728086804964732605099492840523769274594950692457557589044719307383168425020942557707026822718367432671950212393585502176469365377714719452986855809763501870487834491935839699025094026823606612459363879778591145210471339866981293822423523878239149623309905423033600619065119726945961416720676052548936778198184179780341581405889414260566897809152948028478979427572734708535978949603030791364850934409369997047123751373017673078747359035138179549746494439237723628724060672415014322298521273585399660621033889002073413800222469951011552836495811381125245561180179493304600724101413782474005896788483196752586848093818514475179409338970811217382105626104526538934772634794716075291905895072112193247984259796274124502405406238668522901522487924569084783213261183363217048534259314700981951941805157711640209082042373477630950973538230147554442106251877031004066863294281765486135617303102655691409145975664341613873968633754207484969550325129789814444302237510700418123798433583937866422781630113714949887811874236163749443926539833795363938912664693862262274978375105165930321770645390272405443575372448528828739969588200164683543687996505454071803326961385946092826124607012607544017325446949789638251423774779677564871439063908748265935009461457874951357507049277010685095428625109303691130453040929389955881928711389876732898301173149801027580388619258646155107224442376883772074132939847232016130019027890148847645576847727820568824543052423249378162486962190674873637840759461180679202227634392119935755175747182439887858160081731848486350633908375018869372123821903163026632196712831810986742746968844602161081031083157687927154641947465735182743713181176219288697934508494446066856830659458398222052510008932874031232445485875805417484412641359038231386419858071083455292415570701209942354858778788459242089751489334868363929272748990205180164103805739472403848688973833349699384672268097992218595489705512617263346234901633762022409506001691250655938093702979427763129847111981028100768353102276342074123746583204832889217901338917691368044402155163743454790674702856757439764059041519951349349164563847850113575867618713595615187199820926750954549029793654060759420803938342468939646126154371816970893547064904965974262265168609172275022888480665322716971532188757278481004147131396714326850822268008963591770621739834830648828121055687724119107440628397866671966842078746778180378708489290255530945727663688344358981558382095247336683093728635174586666225565343591190245512683566281397644861776663355180132259046843879411544365602558927081350332392278791922718780615443441485174810406901774980183569017939415404393017307191038202548562005189178281228947862343177553898933762928854674180572454294906600304906460139973276141464101947585362574395506855190215448143560415485873961182164479061701479277703731430975697143705890708083361635390920776544850717150426576079837982372477090650131183760689570540513791045846303236002055022232773683443018171175879419632636922047030934695088344620216089876625138561961501299513798331719117882510052714935781600225160429812425405019814249863710760771486484105909706029142547386412924586445415092319651776230030833086550628101195798093267829887012626771434369305525502131832413582489643131039942349991995533069945874150812921064996095067512380477586411342645610758039375106984011342694512815561229864554469582811471675430174830658839360434431011857542028428627190511120829206637028773285458251843293219537897954773379594979646402871036102049446539990243318654913327535544814736898331053705133236301428255771839532199584030711404084893889339428813712591950939654157091541867909335484731748575029907480540165369504830101637786816933181377125906748270143631225994458411221998951989922607595084178122746490239050915130507595650913963623300406213581981200559906975150213415777098203564096317146384762403740631255254814802907147624886426807037855532685946707151584551338016174105285427951061094760669233552542110398596143430900354737157583639985247956035975360074664182596040035727585932711660232962647802493370806809403567990307085849509392070423329926731468374042339471099842535751828861350757754224348544505003140518418653609193004363682298574084172632924274145131678834576480800163814269151742636336275752754245079387319940722268362190695558666421394793588639686374144522193051314891670338050572721822721277362056299961792941430651592022509527202008575447839373483588353684880432468733433651322964165573752913181278745392180364341380370573679126115914153369894948791429041276698795734898256244341241703643313942929110316245879940468433114867034877593327840636033866719726470684761668177697176699575055425988645819006903801773547858771142329436099673828051521300716843961524141187234833947149051351496672596852962098744756265138733901709146342866524781031638782978868351085791716292275453804832377566954553737810461647251964329439330531918607009378803676155617878398555535781419215605728988813850688540702631576836513249280715832145073923878948476004077275288609622995519206603233782728799521827647705191909651999547427897151340015963624522615984371639007323353674301682658747139931979694351079835106419735982798932403898299658692691200511528280818643543349708430314525037009026685713844940218151346498413062434431597579984381778618562617797301648288784064575484236535364617321188931457935134750196980160044011161777211917791870931350271475876469810562037805938721188490271498511568366991493065353840991761020334503097563653545747742589187508001105919379028068761692941951795297654937921169812144228838297842515723857257414320085593511245379528028575225317020003576095127424185360510773091144907913098552044903946623041124084314557702072879067246617634342117183639473948984674131303383597358857236070607849405607359430435072855699555879073037749043986928268221690553683108175202951108968609939391607786925263454751016657471739217944766746291441291271608126301733188956064070118162277786587399637073595165113185142453307307959020372772319683727488005263478693811586489207529255167961325215931582517192697589468281055694453118350889877756497052604559497257052304650004492762271763855766295052156793422689927875401156890342941571335851446197248184637247043973634837661800108467469171741331753071027392877575991930361969685756003815840678079197203654984782381504799407694296768714118677929998251937139938447293447898038927813477598537853546682551904786581353568666830148166725617358060621530744639209395368936417811702629915043299254732080904243742528312004188881397857547450678230075292349607701585176238012235983993944016933582970705353319703338759027541909293297468952722887279738827344607294306172428277191670833225794921454546280843493938073959122176463603364269709557924866488370391836920852420966945433744524771285697882723967952438368136223065734791722074140480285420296838035473353028505264372762137938744937423478959249705512760450465973659499253999268994076385900845903382617753561714362193715723590867266916711904308696137495223073588465794120749878651499497725756300175546046003230927675156230103001213988304549921616837569230115136419380294294725827873384439977422285879762251534323736079513136899548167646630262556231869676424749889923512361367715697745737049995257601613190601839180361720310771594328429569332547039839077588979814604968542390534254839524695573247056849602582080933943161500128596406463617784042897869640256945662175285992794433135583859758218990537957469727948242323187694579487740380560936979176751705900915520305750654042700371452493098114212484508553568834135091135356707568712585142042036023848729358049703668747406620112602749903596799831329846492001568885828307453931955024387419935750508282098282297248543052242505622296341191423153267097352222811250162666348192986021614963896976624831997544386579620357336458010229784016688247126607961179542378026686834996497430887629688241969578536243499174846148099641176411633729298145362075707689182797802530859295583961900867943267386475444621728505864277781500469987619707667333604360539643849100353047884213480665765982096994729729180613955361651710684726318110801888684702317361522922505446165579464497217435758930495894543792690225202101874588004044849641936148145121029591253062002307445234368147480306887189818133362693744830563472407580605112179345359772346952300985922062862408715393963999545958123335417302384585113707605499698266445760769887245221406144928041963046738308218739255828848935441712480666126112160382048009452756151784770514857538413444900114123139273131935535816079827668750034308345932397352141738263232563663518585144222512519803103581518965896430741738563345777016754795629872688198101134262204432721386878967922418173071309038578632760623888423848177412086071088017571335771101919397660495608502538393212891207010176352642343573113323486402554757066711612123724124906482072626713843323511125929120882788440126642784056588002369626425511150506437983902893357990394448005941958586561836318756055795797814597981634067888276397485468172420528027027656112116744840562839740809121190864710261471855221006084319988679987837303391322730643309461867592594674365605088619426453472536881196512766426033977772205913696708400449192433544550619805219736281349895757973199006854013443606008317644100918476318744992826430189427278888944530496133110285874462236130515772680913831942307332153859531071829449838185032539640419615697485284740792565466559403305103315280348127305463966464209395494951530959521366265194134441071571782635508285796004343030891437543799955887000591863851446184735494641823000809896908232172192033917270928469406751769427902044489247166937576386424273180025142580961730093812427818260440004712843310755757986614720042149853936016027187598978652745020460126695917261308556339463725533273322318886255912579963236807545442696419928836919077445646354955204967263363640763952282400953309628051050551201265996284304013342845858912921235268505278734841626760608605099294205838353393447852110224829896973031229081428123733050179472845105082367793529092460080513387397819759826600011240118671911612238203789129136643156980340759293708793985526416483893186863434374536827260924198499365900258407995984658505243132441464837127062927838594007017827653825576840452004298275433644637846142954953028158386879989417662445764908026210054696071909466091640992666825461774075822170868532181704715739347206014132876294022931041957228397049884153750863424352299531786567500803326834242879505366844674088009416240635041750717543240342818861488374962604108622170567592113659514394745879815272580218629504557465855393515100809335208893869107397406877545138771803738185849460106697064635618347865970507600125266476038254411780111156091413096909008652872653734740707367065531416355806257567417526783200047537975760039984324336306448219362262696437823021427462388196802503641835865659149449705545705752718794489348907846482985661826081126294557170939123006455705980547524329157348526275710903374268938589352133944811443867125626408799132508216025431271394059681648980214785482841277949021727493719395006257134667148855194625581121383870813796653945487070201709886459137299953158719739078077185125568542248551082046467139397563188657210135850274861859438461475492989133576378615632981241753998516083098562762787665513995082925110011040393367004780787051878692307411180698155182344331837457392908714479047550328090202421008720879178141058537309823447263710740057472367917016597333684049087817529888012102517867157353378286919322791436028824422788836558620901880542588588388380423904771609338103286683728607812105176521073837043602462602306182357897467415357491429559707286504891699776251310113757658522317818411850692869222068347171207751574168847370953782607478584531206747544560564524434869720727575430121741209588619226499461320017591936484659752036272468271100907965904236659451944943697356134377729655390818159580926801810011512068625104962708823983704357725433120242354821972168451151458546983460102014735063963151359432186046736032320318441981166425391039642291466599655543341380069766254931160517506413928785705811743178426798806213815845155277973405579642878220879266762879035075460710030046211324521803840739304079006864924365623920177351094507353079160043224011605973966863142487123600735431246429365255613430566960687256170756781877844695146124535297197706545092894860888816810448295300802214255929821763602126945948715726953753930644982882079406905395532774077880182309133312266031003712385149916114968813222919553325851106338651931425176869509908326265873046234508656330809212279323697870631227018156907965737663357766005523856399582611893521133917784886140271176790905043273223183288906525003830835320779707055513143884089436144255079692262029119015030918086963004862171134993458494575520589816389080797811092666867110493555036825130910262855604105675216973256242496759018697635100976186387560268636126124091281880971163935000538808443069626488280402012855785290350736183565273230810593662840822047917306259024890738160018856309114146583711578514496956920433602190302935359520731658904288338003165116171785720684679298999447586561207606811694824041550034894340806258044760113930497253598301168936683289484908062176924059930700051735382493839165429983833854064389960035142954251528155470759287063790303639260393010309636262583002456474605232928428917362113313366158859461156260109141879950639730030770978844411181904666333702424884898205948964914592231329015591539758011697401970400242222176309933595643856224343745288407078032599980123104453529581284385997144944060242182070592846477189197677462264075491166296851899815036387017829644641163513612985488205446722019422509848103344340230603866392584584168061157134303497191527966901400026191267973117378961710220968281722249811849929759721932272889450917223371074193872389740153626405862607518560986207608405217254225216676490574029291718184505257368741215668439496825185294120118970144888545164425634285489816651893253409994535402510629123756880541110451201216087919317240177103216721967339902044119345384053182150285600066265724315939296565758028938191140377510675092203201145265240350139820009935049520959381447816562075412383660597088988445053551273425935800572787939259103823442468251265271462734906342251129228296625630794117987660531150565125938380345813987780560346712905366495788009123827474197969198757686640675508646976196198602061508530639756081397321513108763866230659727254151270476958717637979053466524129538804900177363112276705613960653961450979391162055694906692166052556056723167540273981431309230140914579466196925615890075227426163575577373475935946220969611448021774038390110366692819154197186370258042730380682865401566569981302895622998403270529832281309062328245068660756622748118110826839998678455499757100926414008418570862399188266848609497941209387429296759263259425767187219338085239633849487145823831834597932749593256571977913775663966197261697595471901406141230559851154258977632039940403480185779273430534461066208707184014220669706377751522183707689983074773140500333313858306101576175589292714209029024321627976613489708066702195055608647758251858834578279581872726200889462498728841166828691174730211679387278873062182678611826000671394067168094443151489161380174009955911393735740433912600011292956623952461132849585436756716540238814787830357090538785641186622992440940024357000296726253970336214432986238034855577499356050611709699715173930694920126425159040478765274527450941712639682027661556776162246697528201154926852585368196191897503115251396582991834521912488046068270278157561171985643414600660595716408383687642713319333450202996246289932031979749624313199249485093116844104299378194856354164903688862877998528766762982467493246675465612131934421826256210143700714181005480823921693418672831723197512542152296764292718259980041793412874008695943618712151323641386584204124632749082597428593558342525242059463555992008247412658368668312440280269233657467765274426423403490529564675533245749962633855259513866425592675205163978599213849810505858153739185685819971305017361629206738021726848948635654232570734180405251050261484015826317867162566065815040159176059520186881899367365083736030276101462586566296527888008547847828546837024348013010078240441988087807201582661761211151859385931181811480877748424407753100263604967459968548528500343099514511202129678022066821510941829759944909546854642924175801051899214238417951746599253108232954484943520892179332549927172367834726681358355387571656009334481823699528998740637883111921741384474989082813070155980068790949812755163457166275529911660641622215256502794907975160029063375305946612070734626622963078296461245009948748471476090873545091830055372062992198252716026017265667500141183136589802671439221113454996282116444105210033798909022033005299029649481807388741662475777328853226802155178729004084547279982349403605042159262121780581919151437250064695771122140369472643200565676421230799840679148151595329327808104916692300250717296553928389037063598722447973848384679311816193226575291002589898527255241660985386127944488384921755291561650291449433662891871295951281055898706054073000501972557524065629317768552217153942415272902004782525719899166882429253362089838472080142589152045195782087865284353547867979748374308407692663965224006681140778486363692060528662806204335753188311104737550451316110607230492563141191506157181964886324788225605568427805418032432068840233459859722404428349401749366962312827301404111673609094155553580511910049221037550038562438689111533044666198993605802063586143994786022040291260706692623377382402973529784947362551115168376114220637643527373239759254245146318442454190404993286042451751405252242772195195048631813375189036775234144376839963525176357583187872037898275302051057296303645666670084854186227750475204831843674998098721013872664032334283428449110266219493005845876854803890439251883081967850965075449686139608934048546603262665701353156926703012080860789896755590144614411889567336159777855545687480665102350699159028567224880370968595886939003078525544765817520993192737896062698663877752428937302512592070626965696306260590860679797699890023274363632872655763972877838286774916168982340838563297116736995131612435738656153868151378883083758357386764748465093963488634734537290565095566684941314484210448290414888091835191120614072629619662968304968987852050374180394674556681096982960761179276923309793605859891737110541002011312691632981441706617278104450012856667379982194755113781142173568892189762495985832729332605885587966268572819422673301089995614318554017252838294712801794654982657074106522422604946805200511352291557281257780017981458284616032633773356081811348807876453216992227761179363691995571391456454867724700438909958287958865528954558754435391887791229798686404222149219057263491363188806059409886901792017215446652317879310374845027676937184283834829893698178555807804466191109726914502468159975422623428887480435903739915048083666228649322906163330815554883995419830120543587306751769623393732000175157967412428518176597932700118208246393040901692663126043190576138647726637958486058864933514408355806127430393760351339366638138758666441926193277970614041704810979955652301819809629094011293043558226248239679389413116717564507218816728937617820477412537340910850430646330183640496497860842769807820583098876437167254065530341163728209688217716052984213930236586190804067344592183908498851325904150007693478791478822601838936444869527205109196363621430192584743394887875072813445919499235337765111396409215642811584897706424665192804497863455538051276492089660103204777544027411848105642683865561913301109947088745203710388397802958616229511115609927490999939732251415920898400169004983561786311252607994598032101509994691457532362603806097175375148226927645574903358950281367720544499846390349697333400508651894833285570546417692687187457039108767456571702195073822341396535345602241337089637074016216890804981502069232927311106505521504681538294704737685636764250637382935037094225216797339835842502105444299751909261426570207024667808845034736830162348566139382230523947088642960839773505546107726127879281538362176196736339310544983533210109246918538359851374027334503891628707058135987138047989533576895309491311647698278310508913664665444044221835591225649723763450448923986822592926450612351433675099736970483290278586176769451193906763533933396846841052176062644590847469850479406555017382814612966184831238560000644369380292978903614885867153764485338283972907101746564740686566262863338899045545182970037333411040132940713933590289066004046669880762763093292396276488065518312780329641162721830773847529101377118221970609843026692956583748734248018903373063680803408532227386247510791029762376119489378091622967630069409257777894966202870748457578317946017855633144949372615440010766847995071962443253875462072692330994026808495914794190491000236637951462135625267261878741619997916838747358265289131322989930976858290404930838908828231132726387624601394299428175066044757020202560540449611206360662837940669235547671763914095909137540811165294646388928055440160602040974347246679910201033513343243124874837870031612225709959890778402350919806472176798008070023969613106983746596774805493655634628461050262873912853227010846527797062088376013518009215941014440838664140932113067200404929122833549387339964213118550523748730363113144897902729036476371578395459180181540945197251527740688205327131150294475183914527357240036446099541944672010539396341941567257475214414775990923290219049979199767199322652025836241458286395646247760393167427344243064575071457075205816562614525898059646594292464283686240925565510466993407701691095066119429256148949752293334050579019732555420544032397409691748535498635431410585011992027836873882613967180083679699886068323984146942384908940687096206367064039500038719288061391081270978133249793855760365049211591072718332051254506781940041577707797163267129619715580156318892556630339951414248363802393504535482982885514196564875586940154890261415896727548295305350589348990409582538490053908499442161450855465911929395715633915268406164304016351955129237346163366203985888394546066618589205157707109505060048077426393650858701807545971810580868162716049971187452207301834511297716251109420227525443776444539669402056102710362373721185137429108792405798999131106715687177207454428455191138556797971824700167433432841027006366157121241537382260439848824059185768716277282946484738363522770932268814020211460456596177220422661251655476861236750511168290399180200330332485209267070655793175760247687408600659385952204296454722372737112042816358003721771035651542169518458413641217390035912085356791409204563328817416446860815698581619147418419516251996273477968339642120419901646083988429268895189647750314850883245379912464599973152140032525966068005030633940384974690314592030020280135149885715000232518913269508166391200533057945451687149802003386648946287229272845602353693682017426193354404187771165321725196097940335745098644930621919527971654460695427768163051039776714475231252425108857858044552468568614433081498548337086998198344243532938951549628900875534866831875819693726599343658412184213465174821154625916816839884297346251456304606123042739420594522604656314833439429725807003582200671008427815012896472754282491775935314869656022411667916692627762461184639639961924444607417114945289867560226265212004243258452639123380691405333496915439836052132825282756563737717933514403193597865423838708009662362559809237203144142310283958466214989517395551897288826689225784685665870637898522568683674437304669566869448782244322401195415568089873128339805077690406506154638222853983394436258495088355282478654937639800162523045611268375297438202881829249299154684218048059643525516140281034239797462871105251808751979350518242530512024329762838973188750463729988831044637208252171337005841117726313394461749378682453044106524300971281858057558711453480797224942712951843628955198800537646657201598669564726451493803949197272909939192574332447766507813634044818260782944590423698362491314924261248049421437308436101745349725866766919821955912831299362564926973645380468232488843031229587599042022263766129780620470608261378702224452156079424879282751393965369951656427608014917529629917950814299572414065450288000451681554817690411662534338432256710405737148911380077072630513240801948756034007232796854878174954306025628954544980834477412989911621357235267249479329753543440384585377480885178950870257540063886886363757591446019442565342222563924081752535995697603083629878518415154272026154720050709903113488821676735134055230131548018728392144739340502682744445185852199992383707523018162815155854799958464173199452979495572772705612427027731576580842417650727290699172818509818456814445919553692063330041424141908205052214180260930174154897218363277562915877780397212311441542085759778004027670062063786472342747122175637709703378228210724117436016834326223152790698808488729383504682772643990429944826329833864688974973927968858293050678687533613252800705783804074700622230785306894151790700800595422209199461802491091704673394543285880240585234504939875677005825478553283206861903826358059480951974802832422794840749792071672300063789558322355671325000201170549078657500199547293960261615711138930007132455388749926971073094170308864561204938800379102173241646912521060672206864283174713825301338786706804618984356928589316466460408457062002680221320460494979842943448378034194065774138069357497329116678461224321452856332398853549807005988337696570090679993352045037133787260734828744975979243031847156042947900943132364814922325651383955051355656011057133690666099402804543751533495004835019695679616319598023212574719254436164886235105159683180744093654690001843907493590919391354755876056899263243459351744721014161779849711111954021676236289901978092851521537551225988466003665624935329202978380985939191115093093078264298618221132543919897634995043436662760260976862638098895068195228905162370200361396795957319123267028187881663507572105228826175142672240218122807706427942956308760648484880067274324691071346816116455335986908844143403552255941640081935101430359386267573755193712665318417923683617184088068294129462604804815359711227232431199358358688122143553815020314037981978481943692179102166873491188239475422998050144404507544630366049128394047056885227309367130906311949388740151831225119179245843732688746852320315738532119171173539872804794574356738273748160680691229757375373069036997569277956319072592527055823877141518391650492043355564057618740587550389163736837087600294137748438980307792870037225216356722225008188177565956097284302657022010897717956485053642690122868831155949380795768124676819044838699672853445065311964207989824940905800173746717035762937401476429160106916249363569261269466961324973378987913127405192877665097354269043684648396442659990270044211417070794420508003825551784264435914288804945743991030844631247798677704734404116525904895012513069531006586239609506574072941034672248180111445526190894610270542086651502222341864471406870699555388233326831097993812464577347351540807635977553423017061595000887339353304251967189210495762710521480571831518513001181076471452236843541247771265890655825932600262377276091388236173615073953834238250166981613168402066485512010771672487889277892762224260318709603746336778169350957950365941070368928686983071097481259462930486270811256369792921795933442806106044115030609010544879330117740594960569940445756876854704528226019741471028993299087183304404616982922465181527433005614800640096567301354448552653264448599075116783442804968639118664866751095584420190213046662655849481943920863078081973209043610522920910055935577804529040016149497677808948068214127190718391063009078534994150917436086781500627443889033481011679756377252399136617733320253477776442600353603912225634505736677192415182453917601038015094271260070545388299352589893145126887459574088841100719459098676612149280156440665216777332185861537884302488982729463001938579648654965985781803722297349517884470984344070502626018779025404492466793638264103475595466273145884266559657048146116568909678014687861635896635368227836124236075183991381328699312805521498425702050115939356008678341462517516453397274864291667143382629944697006349650259548252380784034880997319061399951830429531220351115949231900068972058212619361303136533671260419594832410456297804165689754507288494796968199054246180192506271222643923792505327889059193881930408671638298985506621104293681169625628170533451095065557507721972961364772698439089833207645636701649130008894302684863835111913755978373591359147910682065338873055974947589407862751952943627280871866930299325474343867473146457733268340277595567637283429256356984479572183132601961317811561932657430230576946078800056795088994654372476667859787886771892600522994865666406349609764699336317662624123386502404881278278315448750621137046396350779110585496243510808747828204972738220378060824276143926191814847315633055822924488042372394463554478992191973270827688734125186887150091181284849178515756643411256677693693140744881770390755942484244638547204756490567522333806693909576380294722641411010846249871009982251023655944630113893336439973015061965505899676095836034556133655040302969926388180665803897846155399536232996529280815890114321918439727010793792644418068227159500733683040598381720017135027393773622727800984144621663204842824404606326132310328033912064119014834394061949549487559260523135217241379964396030638582687502620899818189870389628680326852626440908679129554047126462878655223918567063149278772842007758149651920939222739487081066348428567087234781793006727834687717439648960607462229189631497323975028100833865787941377483709325413121238790407956738900895958112648410158818873107659833449275796561180059717875149237803772756054352711371394832349924985630710049385845382672469644882456434823393238449303679115322987217105197507277354016557150771744315331328189755446449115077266760633812007168937985948639559556037029466405378876231795859027368502428664297307583684800772577870988712329853863742495249039914452299460156572016317850355052619551044956275104125031272079611643945303938076874293549426284829472191271293010540446263516114186649057214437153149409933543220924321842478444353887799115246582279036050884270721974983966925722394731094237184731889887932464658904501701437313756725097947283797349567967895042686511321169916056990163923197677858614933261391370628314044959523154313553825810594811179286262396932504867460548140447927087443378497471369898432086699678916466912773196519734941757805632709942967032033800931584187971488901979500176564740452362448590046838491093960772330816903237889172943115092828362086860522976492441526559500426312004169590265545711563195313518682860492326966513605456490568055039920213379800792540737544300864677673404272708338514696244501240974922852376255367203274245494302806315115279976569890446323635720936474933703219781993335515565041601421141194217348444458348574889567771549281906381988627714721433784239170044528944324177133151267117384721069307593910276593052417596194903082678128769547729337278491955629066808718818704247284249898909879204003414197423427095253896785514646153817647116357043526344848461070671733189161329639567545484477704820718083453570576739980246762907134220138671184191622981119944655366571819070684407353065428376999580835801564145937441717263010928175524997264443272594623626395101778818850386643970046689121869573189996727544526519648913634984879208092123049118423679441824630769173481150002599005704370339777290888295968971242936320357816903709985023485911303759680307928172116983164712859363778436852234449495170272256893915182363459864672332183212943880207744053053508107022444923414950634672956627721047596925550785692469771440647610990168070675226676041650944830104347167968838062347258192579330919007738278999463439486306247830842502867442071911595826898472188133914409992451036341026036406248419873085314067907725311159860804213532727798487314140415454883731123850932529012651956420114878706808041670239695822924196977904503321437835105110437433010870962961584735460352986275293318236915818149737707570112449067970392333617956023596053367288535743482263955331799468881813618490814535279812705210387149452777764428582409569055315841528582030909073604700269556118367075718113753446821614104573704106731890483401022934068839306496546001580684353645452014217034413267762854354034604793791711852810979694201574960787767355349820542810724274556728703245749971602280889014253602526539256022302195521067291264687868038636947432582438283909283496252721742527656503882877410795587203472812789578753136227095057198319626344257489696545930582285371591806828909299586100331086770981242688696860723996775153118186040343531804521470449027940433648929453772266856078145396935421946302243187131129798712599933864399253922549487147268052838689233922400423898540995496425504900223726992887962879627252568247232098321494975921847961350708359927694531951866475686135273693637745974681735361949304946794052731178238868603671695276542701734986853559335392470454974843284571081312802459568210290595526515463960401566684373560710771612151334207136720845629782621935577542914600034205244272158936545109380264251353747759936800634440659491608960935389316582346573246842335077810313965764963253031702713855717294408325886978644126941055208594374004746020698773673918945110557236656289586405317956847665085395539663961383170332157345686369449640919568539763981009247965560298050663885734574011016252056784746354550363942246219635546927493751935191204330412565559080882427331154459107122797090409861741094590077395536483598211292918250661152601010947736213648078607925282793275592469992992786797712691105380354955634435498732323868304356576059437362755530835399080607710333434460296107786650871242937101977326494942120790785359017332108913203886362305852352561504311747081403713773539950826833646270448943224492725851210649541263911877231879276079930461129475068665517565707768986274322003814600821079991573361555804333639337070301038097886245134100759643987347017210142628713283336628919714850005459202230749393763959338015725282857297160333645588294148121643000391243865716113980575373840390748258792848991891198074694981090693385105627732410236195434255136267749734156682806988654116211449604797964613593987751986129872435385001905118892425944118494372029192234630914669507762753177588257493214745839422590717116964828728429678476839018740023766220838149954702739371091921059498122794963725790079759226726362863174368001189194010704595199249625361643257100989230818719493365754807849273822248736021222337130134766670014355436518011740744211442232699462392933200266404449203058102895966380122446058405358930752206043597388961297147847461686772352708707348725528409370431564649183622142830219866083636285389391929600693042298362156651359600478106925458124501935466705697326638899198329937086114239232609750422966455135744969308367183586582581377871357251966926163562516958640953883069755705181176961008576563516498522149196801908115217997158402115996065972008865613073081596908236733313737160501678048693124871507366240616186508198667649646102847640383010015847520404916165466524636258113255257989446840075125977734157147398329536836648919789010485109813279877372138360305472365067742018645601075098182521509424341543561065078161375107146747273071745701530416473453776414875456974613036956173251933909404609038863767706217851693807592315867006815374533708502634279631756125202605016345449909867218800544434270995216519618942247192216357135487711298978647312990365780632985472237826009279646950897433767356803534858745705449274742857258012521719865116908765914089255773031983214071269537743004872917794536321204826909021291250367277360704529014065645551669759709079776765495787287383388613483591322369786920551512887025135195162183347613214478973080273896541741411524276281823198172503625626052967759482487305626526550680312517252766676903897120666087518847179536255477566555067937496424083955577494071141382170098750404625195951871143061656987680400276753965607487365071143003005522392912398932020819841174558316918160553536802124825283047105354697506014217361910067016044884082548511981589589071301389929200623609857307912601083196604849197488742446279396515809754751352130914368608811278131901482576711172731029858915694661891121692908543112661940945950110510804326864031978736237720566798600999912952717975828963675865155839799645001497289848378676566908122828175627269821614909629264911821125193079357941085726097239813637907057183363587396497545448786921799816576097866248057735233847134917421056016408965400859569111808819962747616058442413231571660753149380669070127807509586575238155455890441575845103138986433886526430862509060280589175780728500067756782190795296587291248677593725654284020949872796987326384420985597019893067308240472235451151045709118790515386089598660374062805288154721882488499468193843251455784289497629896341384357046261172274368216690756466762979242928555677437175388508086822087001153080590996812168991359904885520828695750692766660364086086113146305472903400690145738058619955833790367278508573112782313165027027285366633749625162675091121626315564182697012217103949459011778239120545795570295277943426411258571965989327163659698198538585928833229524194902953807255459088830486777085887930824949480845147048518556150564525121478818110768093547107923144080557564613340830240764906091833045766138159348900933442041322244160264743595437844012518546803361294983800582358480964154946169947078180881558461459252073481295357234503621579010666338245146979982231073286014208864385357552609376061021945808898538846436085859487570467110079185473522194343620418650993987826498646298922807624340240145910996619004454464434595140972571192635027958162509836605550914845265177130931364987782978137107964160669694278155660630697003276737501792404514462751691064990882157974513223854083423644247668864056970815049964795508168237337761225392587988139872568534286734895097403653794199337690977818990106534119112738598140504626061926199823947690915952630237158559674040196004289649868683262197263396955819163981387566956842040323779370180147241099029607062801106722535696491841090454049009415132777761724750188990939474366258485440372023570896970749038701458978444571103801188683872437487935393032229340727484778647065124893583814336710470382248406172195063000547829128681182422500315848901699450536594991703821283661776817215767481045340387661563580438262258576312627635934899363903159572571434007023996778301035018187781888737106731329370175146629688464788304214157056776540573044832614081564588109989912541652583961547575251723207260820906136331079355371157585742714061692771109497978584280803125378974778443467849432072129342796350302632984977811971149603268535389197650691788478662685397740784291655031423315703088571180731232099367685453478376729183259691596772211036374651755414429841861107872135722666073412377173490194235140299803557673793424399220151045123068400368602379579436969855174735258751245784578849134866061346963534720615461581606563031428346533710957597105756390184369914946697414596662488810687051332886691578940900164392152509981083721580356908563431527315424520756034653411428808938727368989193058480004749397024568069948649693646896558048702618953748869720876298980732719758932361158249766026119441884981863234582765540191961875632389328307558072099678509404898679735854395804795018432448436162632947804729256539004097653846538722445892618025634659987946794560042252376861198696611075025906292590279721979508721859618443420417044885386376545816792059047372607657970289486705458956018018333980808323282571712071357869675364214694103176779581063564386151722599553834144932983383004059282636425276132115920515310868912651527772278933442752484356655117394266847231504030206178287022078341888436765779516131570716358153282361285546488567884082980336921320538943434120567923781864006273464398640448063716282040698916237577759918225114556105031140541812470531746244333132154785360333507495124517832612089262085739785433869410659120807493016206349153868323675832441734132861207068306914498934567003441847419172597564986204012940422381002739751879830429804048397528084847576157164012318396226111216703372187331775724583125881236531970554004689430464233819346885370822603065704480096301469942080642386261193949916279855198015553181995211899321010386930909845306678712645630276925380287089857044148875943720470756419145063370189125814824035475159282251842328372085685209361296902766738736266047862646254743468383663564407598281654785960170368960717204237722367159675853510367276673080315589308009049778714992340010984469107201707174859992913312920651641971697626124398100472619874792162361645649638508371321365703078693069926051411399223927750285341903150275571742016296446448845638929121619170798165449572626425665567418965296661344677859152352233323387946788204427924388470828962492643674552821010396506591739934456180703264202515400841378812880777128365807503339707566419063289307832573654901739438169264821281614432697730453252419026425809052027341398915777871760404681790774632807561758491952863493318728511549504535827276908902695076080717445169071423014942868712167898471453750730884874647647420604354122135755396945779415000205953102393948339620479715098105850132543721441532323357184074879047829143085748101829651567921745247291080096261312707460770131303935969302925280049327041060635080602710741979670104526153159124918789735631740170043513588394817954746158124374503295111336173949161314180541109951651821225341335644812587674219057058096019386238386512087729947874841682904203173178434907236344130454630297943739441610493919233812154428546516472694634288121647025385867907889794358905339206683798013757494546459526334677211419107657315220608846947954084404841653642374455269862103038741610821028742450658637194075575052172248992462467944020950590592597336386044249053695389867725578428662782885123064752851383329160181734388334956194906610800076048537126579144262222352617791093782604281032206591411448577103232289470681893464798422670258550757723419722311368192757861171085111511442847246662254342344292554693671487185044264603643050979524686453686781683065136507653670956032694625439320114944221595322353891873491357737084352926701100711668031875934147735602111474280797865731046448187120734858179127778988378861794337225915010302239780725400492790467923555261055999509316915957349703639638400628367613503943956513974632125578043258159777739532555962477298293412054506750158293813798123278641078140457579290318530415727093498876210105640542369215476848913202767654945527024471368828172361891808383395143116599100023105157356471409871552460172124020707762590702786536798081027332939121245681344758420958722001173049876529657735639627995291102156268391923070222558250053993923089989503111225961538052852313397700165638654479041547107240668382640501983615168037481937374371000309782546687054969066456463379294535939982171106671717736199447287308381213536090524004853941498335559651757285500815349382058122427380735180031976417603891666613554124437359348217951169351160166728046122867806274100292197916347526091911559977393682649009130443733169399393934194470309869183190872551363114073474801289924900804244328470292389841437981049602006926568056604143350740269726797334398657681490146024032331646365625241667588766555863175694498884551860161262447507274238108545033303376335708936897948986797281994351418498097734306953074271608440128909521322767003559237326741656391802888451213105627998247578497299725348362728946834937695825747144280400959473494099938604735162974028774073304423042515881326661064278423102250437201610137361457308035586892480586357471155000278087404406015401179852116219842265282074673632542574872604902840746951310203836680623345918384018915077546916772091519397721375264716319130024726590527347533330816700198069731145214226673238231803844027896193804142737043109168019663508746591529722682374347272065926687870358253390491401991654801059458431060696358205595818076437476289408790587702804162724554858864199587193695775388953906686947214598623772610996398082824334879011942176506172607434965590753158916801908906364436659774815974962851256201410835216932685798614279367525191133963148880107144517247140971810759841963382349605567107354461400486840095864094050478545677711230928111957884438516470261964093312196188920840313087480085898044434829762280137514232210071941628989686623324154190301914368705892453446838433024874225801054463997167459139016252451075051345049191986799660122431073555267462262206060848701162532052570612758110474611317330668398860002451939696557050160745402529195143729047770733377522993050203191114087003945181731837218427263392123535584148460175995017916651200351122224686866312458795533489577808052211335429369718206695341110842744027178606939298322260043923611444976823423605446512515420554963683929171579209867304870920602068509698202099737221828833060599924874103502564517781758990467856505780878575551984311737839024165641563078190460118784433595633319209430183169025782330211363874759603029412712907479538351765548853224580829302389039252095786335604679489831166650711434402312667838417620106709328509458407164430806576964327178858238468529468207473955381546845861342057976306564647914258973150352248986313930339956339010667638772519878568072531971655948577924575813298988281406050334124230743119901732160373522020677413121582791084956548615246694441813995792575650075731874485614408851573493647527600714236145526464983377923691131312873248665525539016115370874458831533765235296188076573566831348111989831206745854206525248215172294652759354343073477472700988012922171899134317123639824844467498165867426195216731108636600214230334249921052839675886478382545238268437111004398139522879105115819298276299038627492774571322220598478008558410892217482267861269994097396669601182306108746870724963819347892799954566727910074597511078372425406813270956419902119927103575127733007305658229198545302371938360159218264243845417416687829289584539217126190182446919578124503747128808546698874532773328674191606367668490509505086485877816902609369398568618365782572700869391410025534503284357999535309908726311324795225190036102057160788771225242764102974591689134648035444241846786270326361935657026753009358486120983474894421197627673797017782234022395989284630118195034968744708657868005682785037768992449801726227156501253898794726341492435506159217991360687783570710007453866168044174706006714988192074434637001699768076751961554089014712820599145594026756268501486413359755941666004552066743177261281510952256994460730312914383643817771626704178301540026477795244157828478432447146479601009219449185663967669806678983971212840161554742548386337503222468353574549064622358858270435991386439050477454501393154602116644300273020393066086150271583227022672804282835441463909560839236599149293227599713658479402150405558706522312186144002881584640205613163839997949211389808999751017382370675352541989002131073996109854898355671287566603718361760915441473243717772543945239816312675650868027127270667330496356435450868890121906035635799413440401300385961905350048931408573537697844507984055037649736834034875350304562289102755677880983294239204802766292173985544919513520141784786403672093173066395745637263973247041839495938456174972986551927348875675584659384130491837965217584384797590046473903769440137166237848258593448219743327653663056863065248348040438056504640079335771382317629250668699822795539890839451042131931520044352655093327778120518930874486457818583987515133522234770003738509776175392950855691634108416717343526403197631970679946680747586684296940498737054713023812487131563333477287152931807364915570150566141302162731785650375075896176468370765498137041334887763681348720480701727138579798685247057640058660767387993897398663637388889360760214369259232758945962687928673346284376127493218181323050276181313584257156813136955570928232383625539848874466837333698492953980945809531162973774909112528589302379103708866331134502864306259047890129290119501789955253981395462022160148973494769705625952270683064351123505567044089846096272818793044039778670917917814433736032329781564329965925867786244025509621653514710063750832685480053288378627402690307484916527829712353372748897610880355968545027779606695697527187266859575242295405626003896908408563740139490959175152255505061555177407533404409248386866130295676782230895648758166979361335973729146670399364345405139849705398801794983458669651816817881128983951024699409810250807249378625789891534304351330950338353564079115779904750258319715847201534660626333437144930319094784386104133720017487145076322518356792130584172193580798559376132541198133163560815270732858740322377634922817707752439066069191413610435127820352499248714112285614133257377944702627028373759213149435229371390309023183686013508799013049290067605671336293860972129555316039984954835076941730625311813793748221256683921536029150284565680197173997424026845577003215214600655855774904656828537647544945416241294478948852301094697283968170460320777668864611090889090786480793313085152964133263139613174792038116177995457820301910565191693154784893496550252810209786644270064770486510043187224859822868438017706241176720958269222776938217624391130849604720275731997905945727052294436748867608432866815821340712878301995406129012368211018835608403414425053454465014474846118762497421141757868508643521258655992171282895920274187247961281086160077929972513980067963488092839829877636748102747377169329659444945142735885848359837731736172262165616026992789067684083961770542962122206705723394572594508681257572505659477533800625461476037219883653877033884536822807946581334842042675191343155583249752390844942163535673128050718632071718899048743542281299202177993317000501962558166859490059488594789676845026228495275654219016285874076859037618454600850488545514286824321434223416264791830776139358799717552834751050904138361194974050250907905254020243040675893603219865308092401566878136528071586842637448967819544834651886264592160430655698700813938557128647568392557314537798362551890598325973206547675509031580006063023040187201125709565262580581742615411196655569113379666422319736667936952787028429719411375732328532067199778389032773236946152721746319264029496581646688586375312403617241010847552756841216814913802987465153451702607354139118496526627401683792280761362916279492182360882042918089337818186533081840871944841926969337765262741840047864557500552083713249352055991970040569155354225592064114722495438069652687651101141188668186620045629593157820278847294307654009767745279996296745872157852525528972465938937124700638430857864609449889236772998367257629300512601014878711911496698088586485819262864939055252810851052463889705899620281202034396375003431316532468748862598566096558182038911116617037732796877671641782034585371211119608902799540971246022299396983730520814873396078101443427261432757570403038290649336136946496796729125257137839875128596376962286460192786622661184299173451815069728536122982948900206358976399286997772259757836254560891630710792777937500873690981547625088439193482414092005524239635161638007526000004344395503990660242030518885428996368201484104942441738472071814957968961028920090963080312398130502926194795986783400370496219870504809877678712341611157544661960228610379698227439051625011143164995282439928669877754752195140159288426898773847660792340300224252009413711078979334213224316851000828469312502075885647089312663822351639856689387212259351276405021406493764825442160493734923373729424664558632110162163563243438349260177584542400261053602100267722025841879018472002379555914340542408281147661930880176931842120668579787692806131806832888180043138557297367924498923411817241624800606404699223868694541035446292533366786596922546844447737923835847259696762216029081642392228954209585395607260897784487004100943419781319176373574158802262787658886874770928241838311489374840648303220795728458908951177488919771656574726277115644868323048060109867337056009218592680560948145095812486719118218068931774226276174602683924747663352075821660896874649774266608400990094973578002158478812665846862582803499772662538749355417659384199784948713567244164501174897581022292545395203995121612713827717417879370420703559103453968407664728957660902241402272697936064701130893732621336864312505731465507986775134813312764348561183584997849075549842307339874882750350806094480770259260790770449556476568303050902354430267871686839028846929923837280122188833289556090604983849804383295379046763722809042594050682552860028982925213019698481896140794181834285076900975402428282435466427360210181234351405755417863034012285370776149898457597815962947857626262597899420744848162979586463495741007938737392553371257085992104577793524650074626384147370244060909061610636284565039581332062600076797613469090605023685885579545465725807948161621376582830193154599993012191730946613623525251961421018704257038831942901984419996942789053423282946028829121854197342724722850269578421814188378060857701680579378106579587453558987634214362668261900700731047940916879692101868508824999757100946986632965275814677503733388359091862823507637438521191280964260685677543982246642641655225419593508417745815545208280162698242756726142917114622541338390008722455410731536970679270384912992669275000710964360168096478892937221691639628485374628079066612469049412020514198385505096722816785161292957729864562059298818475154278333729027973641773321512976449526971943380785722543255999515297238110786310045037594728936251682188490117277971387781422902017808208662982387965457124292160346268179123204249234470442505416743167868594430948157950947440051380012792039966181015334208814654182785433882248226748165230578691537670423099615845305345080249295056015411792064538771637078928442240598668838056490807350247017607527294338947619314561654691910837247379014947627908580848027489342834087901981273616940247652343369047295046074632797265273434028676373544298509009459892512778716338100676596362677165884498485057575866911499740115387357373584003768840416228685846920764304474926759091121154414292885226033230121031343767718702192438796491007100300146209946613261042207565891457569262866301855291255163353168552978883985875627888162849126374612745890350236077651225454496605809965546330385490089263436619228952111545388083980035212008606253285575426718285483231439151661820610800604342645928218167290675975420861646652782824380957174162198481890661346849895002881965976735579657614951391652131752418864979520704198839502299115832997759835891223208203759521250408434032999164056783755501056218638779851536730669012813359831324385989006529152148124950628207761369397152342273951509984445008110393939406390184303796885541123442356589995892028114544946166936416855861772883759393197485975865794409146076097049673136011420727139203641288385237453284155197488297282671465902747743980641583784155336050375385623503006637619604425082132173894643182637128022590862302075349068550263696744191164916893141324194996690573968136753519068554895636535342558730310965533125242744542492702239465487771306397368326648582333858371881547893974868373180429515543577879148967011498121691670941995615589518439877395354547631760264195975510271708396311749769636795876737713670713678475437286555997861719760129490013750782776444408910968950233081190974927076264072320999013206401544032956749042396188118496452935901263440822579746068813886514385248279440417496437978884742026026097230651478374677970916760007481192553699425979618088863966702668979402562495552732017466837988101140674868968364493230335545593290645160066768664905553507563704172552322492440206398101727069517199788247853300115666045817120822271216298381434125056707179935992303567566291910850984785750383752058327539292345841608175128137585745343262304079390532044946725274711682392797079186670252467064386507291163688657636960536790118254988040585632883408896534143411774405029035066910290091937721263042300507243245003876137063710851454869922069868265882041789124262246228597296706393202704918341727556870127820556656997457968421369408750724856116232745294179683964161976624834774559971542185473006708787673067543561759567089604638589603770774437191117548689969964834849755138342578893796026480419167915747667888192006165675589059908505087711450366297670640567003075931187510839027541814128202592473311616060651946848198062908086517215031950464343655516525089658723004376305461843028208451340046931649120435372139786413780690573040296022528851469757332188405474674107120485701527707711628207579178173300773223716991241477116208052105334876074464289703056508996559071151484146685980655533977676714619815437391984746029558546412602099446451838268182917430963762855141927142045518308765762947460133711180827599281418945481976227328354961942992471639542553373880802475254610836420338919748975182545606392649189517874690667259829319807704482037125703978523484554098986196163838502678602543313913871378357496338578727448675834265961080507109991245741352423735702921559273211105131054740559612586919104383553801631495799056984734843041648431145800166993627872096332584322495959988515930243763728902997370166795745927477683528329658311929178749491695401074514527117955362795338967892340200215699433433539479602914575268327277620546366832611595726697887180983153055209405091807307501194908831559820685200725512788387221139617873916373826816455967832517931858368396472269803708294773801256005956203275715399523943566726882827043342658051354054977749037098917410471717351626138603135325159253891642543115954082231006642930458909416636495196708155589357553068666772224893023249361286936935992297149006383322823400332411227979759634039943621089393766951546020188816585603272721720798489584855810709371440927668283092483556438403136606901784394440027554968272655450573992802992794901238710933850279972263305336224665053792546754922002198076492623105658035574080267287174786409975856197831054076789841474191518429303877546118138371714203339250357672140842881346768786257390573398178155980027261150323462878061626958221643311973644711651592756806822197547924910261414349306247073445633742981131226105957339507301143758115670791609956644055791839983362725743150192937931195782841572036916547474255296850019040506260521313454313036833657161873746984807775256775942088985276382957302668260717895017422756831769495650417131091784597377938433227695923961092873330465444360798856407042941642486515673303159385038377608070693303912966316437645292616170149037486605491256937626079551741260428161144383215294968668982784355364453971614959865802320731838256535461407140952941947458359361534071060859915479776752002716428737055777681352950582279816601854860777501735010185761667050104606535855650744943663857451486665496417467338977551917096799131908694862184566208013173140826106417836813290680442204942427164341309411133535378366694651748918232019991483319332440698476060572222431828931689386612740588007446368568694020087778366194035883090808200383252179009984146774610799750911195496312717820756502047085071830512171827343141217172208773973981759660157892067007099724744652693415524802580142246380288196934289353346761567365901003623095082603708175099974806815067180510634110647942458801916881914283202995035755848951583139529006677934027143696628088113889832956541474071700638875534865605772072756427257885333651363255067698686647007109556587602027124422445996937450855562738533401927612484147706356503259106184219658979202366430353844615947484375612354596128392744679271067974661837136739507815546297415289652042566112691382059012716847108660820942771500255838834131804239390678405199559434269359350334002920187145278822337171212406967172951806550837159289961670603368396102721301138424119047317127457869553304060072514000649268877225238789109061712115694319357374021892432765879652208832488324742944735635886905649045201842723886076891155249355932719384027807898382150748665638470841821064049586897370870970003430224982090134822113358896543591423166868147262158687524077197400805400892929678827744837128462584680735571658717225401086815386569296376766877509495422858931412565629744501818426946019783130516629694726897246632188228259471082986917999974813662644110084497208499395772726722032275316443504030513808040652423924278697733727065980536339566836739296084454426852518998786892626257397153830094445179037680150134255400504674624997481077101783880338462722880622925760204402160974368742854961873358703720770979583451003808238739782103224336473607167366343615935172921469471698874753219496186951274434287891525282737887162988685511786729125420618244969733869440892344257947169781774538806122050074695918668355594264620898738943135342647571264175689602985082374696322940694795221221479054242560624265368388576568801873328109396032669140418061790846528927983122833912458106910320582344295905213360549371623184988613907632752050901861535570657495882617314927694978178516902873334974874629132736147634834927781592281035984385513791888913350296915250761387688024611428677432591361060616294872123929786548512984242339931883226541014292137015948293635198923492973903929667062679742524518894732605431955623990204526943672842051480753788025630046395431365116548389011206709892805336048399448709722276685331438700377212627012915963441869580550813642080890652556569716857317205094989359784745194365803334451890056997339652561181856348440829698614589639208111295144049069975806704224762894952202550718355315737394477710606352260473946750880438185943721512862275113724524129085144573259178613162928955365491327535330809601492768879245774326866938389453477701232835510736640538004988836037786457305894226733197275965238612335259671036299249315260585988535264952156675849614194632428128462746546670663467788311552848920525156368335919335157723679851134726719450236451303804657286177749979303667969322188526079149887539888371828286988269197680369231270966725018940260846596729800108130794273144147820776359829293167772832449776302956182135281955537725422811095656220457030196495229765666740652578028658540440157327936688082956908589490310533490830092123354327564902657565438124944058964455680323001777097415206324227266228279866478340445879491107574150830373294889981485754964567365037616116607121008961527766156393887933342498945639164987145575489863341052912243452236938871916662395032070249584223845474597284992790127077720678257387402817991314754352691295299770230566077394408170477760293559786019779056401131375538483333831790500314412085788706478629717081340344936921520733325928874527806531980046999533922355097138656752584741951432371001112530989142734634704216153674740907027630751953919614782996230192383267583877499349331055719835119466440293225505894583378227541527140259486532796818884369434371217542074829822332906235894057734427804894985985527425986172468050276559470859739930683371665808534877788595914030342301745590218040876769112121687581278517750888738954254877278510164387396521631073462937671155146044387775245052658334460387871289821201767495461928862738049824953038453969218450876029529184803544815659587203575801191834806799668885678164413593840341037556309624798724385873134924437984367572709532661577000308860669285762037370024876966735456064428787235612049432708455375501340681744798795813741333236648827182829448900568905623587238893345405840798759019214145409760291389370751535719599953599128358825958298613262978918955922119173120588298871802250211793059235502607659667419920820712167303182070881556728171516032518307181800095744326704033534374639916053165247450964280631336807778380762229962559894535595581004969306957632890234703496920117649023157964674991102405891525250799633440301825528953158405345380707124459091129641750522495842028411199502061097677376222149614298428169207444490026894598082350903744505353497297826428696989579127995772123829601346860884457210316986512317720359489159549959537386562483796891090763972307562826125582669857337686260099492065699689121749451849803643405096196515867605330402862001947388537328982172948507091062358567768342082244723542333310909533361700019551702438251235395518132062992592037589747249377986014163201705994968815870534862121262714087090193064801760066262569046972800032785270897983159965549968856442874828927988962525471809811186465718800855559630102262450822730723426570623446759676956158403792888496755608904474845474469414175577419587568768335542224822425953893020668729739835261433603586213052366101974617922781006402217329530894422747088035311331926291473024186200299469962185059043942603162272147805617753566098963487921609172357470486443008288515550466242501100258683296627919957515898092091331903604680116937249557523703409081547443568505599536374373401452927615528499783044855559594381040130124725766628299791003044857161253033501657656963138873262034584320522587140053301906363201654487207638345587925480176475297401241452546278746626651798936697397450056230879732871759948509985666685573075141937468149547839398819156969676062785830171100970917733842502138351853098703486930942635729834160189792988216134330059621721929788006096416575165182434818404317990141687937765827558931025081892721147991858954729549209635279109810070887464176495009217379423209654090655034412256225049360466343597254655238558534511275966826357491544252730941505808575545621122254237725849237484863405456349866900819150652779841841478960003774324806439335530495257132383075471971540184382872777117785819829213753632698319839000791828922135262142874579841642099005775678887141113614128849053729832414379875259540719535890908567265409193460564621887653512948396837715632124222111979143682941025602095428430030387538040551879290876700913202127105260953190182510966753902464507927240108740864948662303632827108977424198232617303768245480974235711723320689485973044808998207112376177581180111908356112540304722635792059350548294597821524807271583214190214955241939728207614756594650912407144952403136785992033399230938742644295560002414374837551380503885296070525700047962720212804916421993409643836048515143392279648170947750642340613864835074475526669855460853826601873326703019601970642345139184499059194669699460050065764485318303371787308199806380791803476061500618220538910435068624135578201333368035836204072886267927238930353711806229360331074438896776202190539768781542568588952505098695578147204824561940162329161388776531917598294604602758735763726767602832386258298517470870512381480197274353188537369319971959519544928843662612883796549077301008689482839550268364648357728376817084304411198264708797427185770032591655520211002403432833164275980949174796951181004264734034667743911699313100423722633124074345733606644826140739464854791132654923129349254157693793583877603141727486701021418186832255819936128405963488601859043910767822945564178039274646182397560599975250011774241887957871476464708326959195749909836208015854990659449811972258596353167345147578691655502636132555871118345510067975759188769058064534548287557853826706209925047360750342890569899366093107788053338775595388751167871568899296448804950245626988124170739994445249979291026592036523386923773691446853533600932597842055652319180040293330429156839284786567443012926494263086852768336159360124580471420547940838144524746252752307663253970206943098464452705930771945541411871459214770494704224185098908496446318669612950141824384796634581827819224419315684386529842718785221123122523682920211982004297699430575774437886357143756042225883885856611443012047529143693080577344965338812901245599636833763202815858972038521769782315143528444639424586350471129364631335012381673407130578085133274355046716545078343904604660794222256685565540664345225380366153623398799700574726248369160415935501074103168834031753099951341870583292368936115037862874940270769281829609305945269422535122400738855062668921326254788064903451827361858456667461098036233532251152121305205132441418712171233135285898915868526539465376695178411450590823611920082012064732930557279887749835255857623941089995201968210004684421862455343512181862221701532222250029179789397751623966114256903655064729623085892050193417621501778915516670167370647587218253814490123037291767210590691329740290520966663783033171023679629823957426494943367579021614057582484870486543274082078309427911954082632962319495713812767553693098154076746848085438874812590263783330570921826161076110383439723664402292541854356860650463465676003883395412197595992745166188174083954301247931991419924320715469542122916217558391997803670270179632474792992674652744169556054795834347212666019144687421615064297908599476579289625054560761586190500201059014581690868322903734147171596586814273842994648404889204030134241164263439290809021397727133509507870258859157673882448764520788890330523047512365872902664272799697658904007807658751439951790891839325211796842396548386984308980060454861049998505208160306629901515810553930044624693657394368355102678191633556845629357553912890782286622802063862488519248864111373273409057122586775051501966740102622319244977002699764753963167366269085193943237135401397803009428748162423352014883981861110631622522344782674900093288095746845769491971255957579641706194683195391845607920106071318947203089679459382823312994601483123975749471449416133022044900150694282568697011580137663899216587210005433528632787069134376576281449425531446612371317363082086384693754953826187391297050957190976764993558146873941881693470528885419071253110200437574603738738919710448820489491144704119191818120449829362584919921366825006362261025251654296654944755911633543491147289374372614059554958813007865725785439086515890264758364188956270611945957491426782973459568715236147587036589440904277346530651659656784198724710777250023010819894672565730064144194580532165161664953708015970699224104278119602077792158588954673349252309654291993060055883253370944130167039083596261944433995976100405261354271261413216442438184831359316549629335908650301026415200632449731005418846856421805544665259326399719494494339596209804842512166357573750250716986916274761613844306482893694220805854244294108136337286276951534183869950382029376396149486376605939917118675471700035096418337247075226760035630621543236418234115642263409440165422982804117513754402449622863934663146439750729861966999830347209324824681927776595931827349828028788636806694785669346802029438686375108618949135081499309617009653274262038706319689722595413115138406669589811281110920850985456630121873393095236922266038559100800297844526576627391022575305901989833551845402338813310814502501704635625191850340765137516865127549169095959259575123067968054500586355946230881422067166129180085165866573059899080442498229555582945029350227868801423049990639596419847442377182509065407202533579170581917714601646228811612725112630071151115567744214737886189553726929198602993115676857557669331162692344472353227556520327185025242120111880102483514107736150409671036576212435172844753011703351013641191227073031620079323890373207589001623340578347993347962070775016945646710404905224620525824276355258100969350868871052156853930270108464964351558839909362062815200337632212587756660102506942895680886148589488013884946376228842095827883673327545097704184460325916009296420568454625530147895933916031366741034596110815220899022242556695365476080707433471881824508515414141643474776810199926879641934774514456405474439288171172221154658734767280546465303734967292712426338472386485294231727900199038066292769445551133292162977527736636284005835718628416018884722376699934315029050431052784456595474728537845509238693299215331848214980833281491029648417720315435753764383225744311832446354700145367821713484161572942988049407922022558084038419162551654478099621568631837221810245698295397037206955806505111194656142870899543028319428918052575281624321618206101793858562094810774534599330654181435323653678548204099613475597611757861331093638379161276701565730400277955330491030113899484787574491238921835003681983793529520229704998525684135870030097833440842963461219883685145105236114789249863377178175697933335980420339924431951560205516426617842258011079980176843566606541432491068394250820290117403859857599218252340723074391539057850939667075104604813668538217240906143224531300059439504048828424705689479086192480499237929015138485277008391947231866147708321760991981239147303955293618014118574164009449331949132462061534200065033474974456338358284917589351377300082541353928592162916185334819043062371591999542134436753220784021367974712211151207682363076473137989787517544044602216665314799230506021288057829867541216388460428714675510537071915025970999526955925008175985642256615831580888920370300218258258805894350554761020829026871128425105930150405329102968641657305483335834808347538618546193738486255126578484278409004980835329763380598680420144469614171712722598196087986912147318685787682706789521202836548705254146007957717397269117341930446763289461813790867327697810828123163969835380264939287885077703542658749058450911174879205463631776643491860439336102003510955610540557967824078779300802245716613670943447148028286551462350959808286021298915802877717844877736900941351057182277234793191691077114142964723015390430613864160095647202315805240766104123732410742537295352987725345928140166141947731091636669371065288174069380346086505078933158832308114123972650137100879553876805269829817546957229744333309339346048422158114530118997210697769982248892386442529418659436252612014874716839549358096589464100521628461200599489021710406136845636554160640092207815568123534070627492123819555870743326499802240124850197417103428218727122450542036578131441745446559731775623566678646328653022315493552359049678965857041646272192681611623640675769634968281633427942332053509732855624386385228158741037172857829451803940920639133165896654064327206265253660577750544175388493059855719498227828404108327725732143069921077343309870648651440573497458305332604155352543020216532209532088634006565385913148596706704632911705860764085431096165691563995210270961741837888764468856212677950950683032399423055800375246937779089422654297281515012320648047130513742174168279915293812547315822446551970225135620420570094122637927072715036786796537884952624679746789464280238048537557308936120537943248984122701306131684511989892120014284707075850103305668894745196994265363085627721197254120291976059358319947024503820664571504809458826514973521026269820875654054280264281633497995113307917727638847373081851054610787981156750789314281565403959531735004238227092372385655167417556104617149929783787401892074634398521480926800907493796491192985733433276382648951857900947096524428274538783427522695125960405245587006035801947053038677102476558738292978249332419179179735800585864032660184228908920222632005486529629892463239502679507240403472616814684350513080749240964418594944433709412333461695483734767523581417203348212976161299760977687335887557731565054430846732827014840978204620160921129907637914754197893678137538751021034736370666013665476367095575824094227683674568287933571233049203448789774014836719006804511920827576144344940006464126920191108602922935282478304926849584423522433464049466851979976529341819667105815269183648703641838371931883166549403361687232282475536485287034656051875515105777400112200197992594397514330341076283319369966243357456706149165267928664635802812056315951391340577884522806439491977406066992652935571390176074281665891671896988909343745923730239195587491273524964036541616605521888770618350509414997335503843938230256491685189370592574184353526921616663800947859460777173210732274931390964482960390757130573079798560776364468826775500422768978658556783309528800015410912258635522917431532373976760321917044603237065181491781446788046444570943396572064804700368322097324481521400280945872617625709869533647620758915572008703336096091152569184256723675815528489185577889165744204624085633605638570835816757776633983573842166146837629916840575695585635889312628427526311761119011749933778105535127723810339487584518951733745925539635029404248195250838850468323702314188338357044084972013133616373882034094922614498371448431738666161587816212171382941151657837727635991183298084277305612874820547389474388642348028924278199316821260968665788655542545480805322816460358092574644508312224202005093426541988617811677339434307211374470698611283330944054405470939386955250137488409088630492001923377625066619200200241863020701159056283311794880440596036813220370831418334031206001100511334713454463537965943372045295438444914019329745771724286763613121847344071966283184244783220446744860206495197807522656746700677769348874308317406143124018827116227127996008330366967997643909490978592027434282028558172380788928829840999646019763262023027339406017236286931596623960538991474699202996685406531786459942275460217726681790659064829330630103908534126467218778890727264849015233153746694298048816979299325386903893873503462912379229003550274372144352775136852879158174636613398439876454300925987249347078026433440855471923474188213245577439282410704177932778215078144412527865730691397099237766978585778438703404265739522062318539242897102159604520878630681685475205463037954000832521264935579919614915873701276749341290959114107415385593001550933329210793231600767875395820612165219076236688347097601011560810713957465702220185687719963722439438301887468666837946855609540091907730294938532260331822362062244410711628030309649291306241209487688239739797519232744817826417144931780532195453487666063174677892336438004868275318756862814477211576030691301140177957088743105232844485599342165935025584450854028665424427478550399298718348840289262699358707353574641216057278428969326691403138059584740969948583754687905953936551320329942811544350192105637363036946713736223121035820012830862230005712692888800133444726335647788356488819357684367028031939374159257666707939165323110676230955729651075779870106061273947473472437696321014650045003869501548142699740908757429949069559998675054647926546242099013897937685836184693782254870099570977444517424037204761852996782731215315923957328410176640828212413186997047392737241920284056448119506461361260025875682297221429126979208722026871280944085038188577655179773908320391132453264460655730562155244636261769665158107540722996656588815721904173773386699881949105125806013089222752065043830847548174710764656356873797467746895841079232006203401684564825199937311936513556962270609432096721362897098898090130013532236698700934094069541666950387195067672907925077620619342820230264158466398304922330373590347544392872797038469450108360109490441010213321496653161068473753983788012137952758998160487393968487806605142859658201837757313806841150897760759947855839670363102883443399710470935065304634395662052628779077986447059309187921072421219717748843704510111911826375008310896500501254648470965490509921944853625112749099766241568340846994303124977414857313915398304961744810825697885812378890451979988367390505918561295889686572506497560850225025659335877926565126416493967855849641675740963838365456152058413260913609261270191590484978001481692417759494637148137702028867104684726501412553587914560825197315287731823274041168732760883486259049547230988804888865448057809164790158005887705898138358596933689425395446175382182365081526815091457845010323846388677539088170221942990020968689625339708893762186483698806549075745274889408583813811185673604778420264788095220993068963133247527389254516311950593891486650690566889118118470906908307714384137009435527819622856480071889252445725453193976608553427664175458124057627916267509201708480732695867235717078370720365762913693098696808464275826916176759016029085299481071349872964199077450903944362656971359327914907149089875567678909902941751572861126546350207495826167978035155006528679589322783538997099751400393439123711176487001310701397081939597013263997211004870521581873954415440589043404171142479023789666501962163201175905034965055797078240749374087449410467217662404059441852152806154957545047593528550150221879685468263814988035564301684973494638853939080491131846369545256750546399102821616535254671037891275730974117271391338220599319176516666480718941224658388366403651597352197695248863517868387104792985474038038528382997919724548461752702578223716962343386774215172325135051137169615059350723423109902305098316124303929738864157013137028453188475037758961275200531409489612773188101470501339387461622032729151112987029181567433000566772118003572948628237773770619657542028299633357750623689415419878054200572857300012641447195502013663143853561071975778175827015873047566899984897920973557983366098214595021501233371399745061456577200347361227312036656684477946459203896363613579493189608392415252344373479489423879138191419445542784949603789866661397158663561778729107764201396473834045376614859595115816309354104068898772045110685643040393947851230380833927048910042445826172015732154243352492182468272924692560438348993781320115247068093625060002526367420711235827976572873702866693582633947309988162452907228762679159182948568247458447884317836830924997365445212259024251255341987484291543116752477620875986738485173303144216049937100811628122710605047663353798876169296888801234773033753659128320857893532708988093922701119726679924713034131753513024586950514938049923658950029385046319168818824428925788350685021663665055132926985338857928255086809767655699076042918073378792075938972634118973489070163565032093168245412988550389141171217030195758235673244509572323167485759905123670303973285973302940783993568692232711792611071387685459068320553974590244878618087194693420609391252564954790404766483028343984068037364838620040686465429878929962803058561137884309619175713246937055569864971199542409174485438104880059697913703592010327967739145675340922680755153274710846974137622616572990657401131167102883894216249521703715331152929563004927906814804066967567194298900819446267861792644661277993214708910185554677338335768222228389666896602745706318248268090407279211462168966167017260385783760221745336332243715141150238645220225640406259940417212333551320807015340420688321653866551478318383810222323681116599166156184070515461067431479218951068457902814724873885835973399314502525182997131964144287698879258153584864456287364834705345799380426355583855962925765658765744959080892877163393032847063735343820402317878991080336252722469066369825231807930550230561521270083417150467290571559571532334803966333448925181950452009572477506519768929189604139953084217542505477600597434227629179425362283595735807494840112841293558817256687939504475729750564456819340637950405468340049071016101638184484899901006766051755555389481839730942668847013729894432349014559215146939035391993135566135526381205701694703679931044173904183120471582060542200660714393695009331126187057424228920828224509587492949157216384313338926916063332676892363443374923052746444504606334980453910551737113594710003470962751003702538493320591414562792312665277458913163015703397299880333598499320885981957179645059661353408384766536178798613197588899857475321352149575474146590138389939550090181034264326063563260579665444895495227769311833444022384081038301158715878892240368072960232238540252910861925437541733028281437029391182450045640610459124662911962265938664317937680715636829478077370199689132704247533511650418403809257229534145277553599510056684522713709475531158674239895442453715793242016718282072252513531683734088137479509893159784582429052676415789877349916819836064162667963668706872086300676074444786508860041002278511598984999982852180085520957389723864694130484781388415435105099997696103604123869617011921924494327810519759590165958563945111546297966564434724188080698902013688014193213737378316775631535955254631453433371082007305984394187068236320272079036986526370296819888757865651290676997959081727178343520674970335856357773469469326996864588764679371723891664169671912471367739169003166542858878161665432612549188812282033250531889250648933077834163377468360462473891624781941715889522071374006763863056671255396477909675363327287607026401414413590585039210133608895250166211635042760615717403498429852524857775412110211511637679136786289998655958244280401830176475052397855356097038916409796051401574278000079055149660825388701379975767151283884798073836686132918474042852715752605694254270385053530716537282506311108772943973655215362570691134920426067729797795813990768885518019654689303672168327196784979782697261196155748963686599319246716935432004179993762907435748197790086910716962548836365405081188721618900176650921688411829510698157901414964335413843182954041052054666848965035899333219804185622896427655750614914082711227996867384706480436570029197891837574313817658319522485767968505312619330691579244123267344235371001229789588211914974957632255705938304445739592192838471694148920094160002118088778457598003133002998990606002597286623806227436936802837502240423372333410960738136896811842544128978809506725345395499673712284306339496265609833704113467049471055187918621775725296424040712615171849515529474307598669104445062223713745601428450243179134086790917687105936498700354330425739920634691074011463489936009442756919900793673999705854589714931788409225738585642143137732155031929379547894405223959847123167108834523969625368013500841688498492792295113907115653844317379321605558624807431715976675132670223340520007921898903306563584396630787364841559663672206519231609035858558064179002070993477500816340244518690405681523002165766590251830886603499753964577919800678878421838782196859916061648879391051426610354883366397484503460126277787709547857131042507923589277800882277286749908442786749668355083660020594093842941240414084573628427351591205108515165243426281494406237076952328029423339599997856693634598273349494074293966966692636425339367295928844207098422843364227703710442540239719615397370454991058021978499056505987724211538078081251029849319655759656112672556886287535476372472390000429244095229971076846207020132994254720741574209217902513387811124702966526317692492276139498483088958338940085850487267358132658121885503982662125809531641050846056429999773430188671782468586365131437973648619033860385960005641784171864409887751743473802210012886174084674791085259509166301196124188284358399435940253908188890879737975072462123919402808275146642657111189366142306420208531068772223361278747360605562384592419358021115881818644598629417626054690548062680019618471676620654529618071410263583383679263158148908782908067920889703584667793029731293389446933897630701556537102622833315716602769292817232419678752016569218637482198356015377931378630791097961130171208079830153390628889474058325511653211863946735655326136523080662172854275469460247555550697003192516117287117968073838139931209103734998782344856654057495414909636114930086182691967633683884149816375344062935447852818332781682114240196157031777286247164959612837924925121151566212520110980148431897830293040943384221124724298385638820389570574827206130230824938102291885952739139931440149716309096462545559570347980306274025549862156945659732596463254019719725714163067112533144203843999223905100783106223002189585665983552164236953930527963326101004294018897869043084905039730791974378348725220535827466269261219866553719528852431005532791414298117832253740509501035674729295903531288692253876977294944270281877407679999784938660663478881718152490615250665590114372613669645321380295632738904445361500873435258234089817362067096027594547092638817653029991839624439848367354102471604422912994377936174069568303335131747863977769738096657722378977183469401343667041997636497390036817755031557454905419393927895582938250636098298869095907353929714479835041595694206994466485167049449174784246349824749077329211014334116825429319967562087657660894516965295409612441953375089437645798369945110989742429955265083323663876083433852303410516945096715968694375050643905472651600179831346944229197945044602262392044095677637406060266702732586050169715847547414721172825618599162264227553623266224470372215196348745007367352059776764074334466084113700861818248961436854181152570994877067756557392465761855307587735468607767652057037860455580446185077866510429058240744663999044780166020181574215701323485929547781886863450226524465582809311995281449912202348706147948658875592009218362231077751976389783045295685942279567308837342718013702025782855708598027308508291252280391970642386688217187227876954440759750609752240336658323593384281119743300015820135271722612267636259531082607086622221764182654928914722117237534568329859966504148524825544506364121602503437251804442292690763881324562807327203626593678446719618037770298675886406455901652883963713315318627866036821466664115928081869849187381299439555710741473463051505808279609238391084442612848085002521952706085360127920779872091408500989073495020256436695079918097742790910842990450049750672573144313228132870500030366546464293899558812711961501556049188359594223831368341515048792026255860231296009972440016611385117332808991710848918784935100552187693987523678192810386841226999435942074795575193705274997763879863703465807728705193810104341045929022083283928518705800293617503299204226033970637838631206142018487558096420110944900423867212002702371458701853943181745951314862436458863754503460456477005695970722598389361103409132979817078428174106875818887951899807312766878688824932469788995934806915904436434087904605433195894864706127827580066793656453725105768862601285100867287318623018943545321281582468883735260834313283798486701768922462569506189544948401339478179992053443793230094252890738524786011163137624129320385052907815470241582641176134016803952392817766319622702196700096425021585568627482111721245554506703334120457101497246453992672990294155417531020447378910143105737583789743581368705962272472114518821690158396845902964336979641949804102990195732976880645393466949920185403154597064390201300426786135873796616138497283517951905257703521611381976080590388966475320884602584860949106504002800524756804304497767263351339498698396240410991499374862066260426108605859906411005017687569918530952974262253722751768126947336698046214738939056594734805764633167575285784338421456281273185729854378853650810082953757217373282436715816972419618387716292054236550350662082936145488416283813477218859064150764148824019577895740252027047759218192467967638760271586039312087693152809930625487292186352001277243728475607821036563321439204710331604968098673620946545850065093013704699771094354980964536915777888029637148477480742231705314155582776748153699447488989313566865383594450427563469639788118389420075712674224035025037899644378815646117927344947119843517561343044733809323383382862803228605203775108018518170761506240289517917916634004061101973395117597536984371351669442899514028071016500138598409828021790132152508590427407706457550356051980326095081032762416287491286229211292700766796428855973631625480982165772022687873575909219008542028265039172756689062992807632963711836572861997482394562018676354378676866389176199490324574306446111452167454507432599432398540708137071490391808134997557129901666162063498586833880073341260418400820892790167220423270887774871113132812753940866897871018834601166928477338131083549767300348247768685394762306508984880762582816435539918194248125934760657921775164847873800156980299268659684004014422493187933371815850882194956803004323006107439266597246852367167517289394932260348590924566131618169616987444087574948703686826119976611060349687042557727848039075829119745436530785763975277362727914948417439851314477525348686536545957587636299482706613692175660149012089467717825005654588714167579806632031758659012816714894612550319465153306552217777697318763486663656446827306057972759314923056711436056600729139548309300281926317404351114145087964091614750478148633349952784073658279432253174889653975819107454615411629363988026126393222273224786570873649959570980189701283407693335152241905681357924578596283042818421192596477925455221134870256688065681004693647674705793349008656535872933655316512395376673852944232506540670210291224860294918631876560666169833340397719213377432846132524408934963704897832268742383177400083525038150766574507160501174969921041374592989897059622205929635123598215036903496747197449439718605034226685593174443544644884391736575842385126930581793149699635330993026388611039617466742287148564590200711132338610210200880859055569688488045570266467017672639291591558469311083792564290450686189157568065216444669517493330100244509418990681555378780028765990626808179344137653474430117844690156192774944837544364893733989050464077207506217605124292240911069681841212811607424198127206844561838503242952844690509714866356527416018082359879504030561994746081000606159967937914749987151624036781366369326752637378452197221983593143272588540571197520317172612990274330763947026617570495177899635912980731189688875824487798209798442604562084758007061835262077014435220770592597470594718497846363984860558239617287630313471923515775210950761553306567352883634481637978004602021037184006368437287317939071367225109948325625806568505471082249771687731656976715959274519810014828404963359851228063501595869522261784837470234281833304453957439009548248100180534295662292359803622263003361483853647835280546250814541836391147399012066801651486675308657287184013802607474632052432336697411339333162178258702388568251217386980197867747715301330196222195299345656371218099254460826379520111764762515859969300068744654891517797579517910502791811383552991037522960539752574918498458113903680610056644641321617613698754758769695460110104978066093923732158748601331797861384010701725766115998587800701962091739724596246226839353655150832085730407230089359886127961829992041131174926814598465359039559797632667678791636828323394964383607099183866829702919450477504581166179579454387401785262898570290884719775400232726378247850308090678745304505016647107602221510220286069724958792175863193752716256335027369339151101110050053345085790229214964827374391958290069079851520179333862214900295191204611654836011903382949728282413888745860588322288174538195510994195288885735557767141051446468323527334078162319564830911371026097286751761694209692638054610163887200926373413841290561079710447043301009591333864825276900666186059627057709279617672903290523158686798897872885215704393104061886763268853726992164084979349496123326589583754130550972065341032557162541816023444791489220435749731596641956845817695024410883815313581101516841026329614569235424896767887420223170954777534445366216012508716661011205603884581903193021232590064463712477591765213399013353406297706362783260799373411627377683492445707953971781981823502589023456312580658035071027043363532177288784790812517801294393764744171974700684076936505940534771814174439858117419274835621955037502848468467576353722438932190285970684452995511274185840158196699355933592996135517379641771690103393897590486238083643261091062133631528108841382514786029146558516639926229563818088516287873223893947656894904710441934421585880120509069100223941699386190722897972203453871578688026495387996962412582939066609286732947790482999383548993136787962067743026688919299695539995555735857419621354025942674147312738951874578879114979828354958504856228111457987230660659137530262973556081639217991471851486733572971430678852250449538339198511926303054746877008396639810807818146395694713949349431213359229086204355571099506182287237425660532680310365069960472907342509440818129485466517442427330723640521828564609014007908984964601552180913805666243177922721410331033002687371591039781250257091512035982791372056521934956408402860588873538235506632516680614610501584681380643936649496475058452686307746058479814565464529334715902951131307935002872435019086369833036978650687408304602014714370292311743998293206408132122196991440168587042265295033712524794438040605026032840740512738710717552850159424847706470270153124632710601900536889685565425480305611532074642324274280625532515382834561636884931826363080947334865418923107609068295840723199040974400070039307138157874510950691830595968228798817895843790422518325282046755677282780603941855795703540042337699123353415795214779538978257371033482448676940828470098841006221071756243474576124841081987000140048721060678962957837106927124921390661357622148098818645927855343454940208981446289435128842103089657629778064027346616498848473105868023193789553470643202772316047938450003085802069438373687027562745650005209441651124763966541317421637403353020286125431596310745237194608197607158070301045601738464662540119446914888850009277395491752889263416380380951092218033427237783686408901332474870807465525490897563861637741093105586162178107686305212205947300766332744977665154784757457120218984116567703711490393629202199441946112485608216758991072083972688124929436750356824247493287862023226550251881588275908238107806486435024401172591758152771703736877263380751976855000858512088431930988713421539534815261372821903840606884090896821019021030459937718494463495014402129327716642416271758201848798663092288685741631585732331665793069138661737054733485151013401694265619674214559841358563268200947690711340055503824810948426629453215786816327594137698918424037793370634165444648488780506804046000348543444968060023477116030026108181621728397723013853494079724780555626685769429442483908833546549654795342750041114008553580106750834089843354990733043657190875319834698157597094900345073680788226688482865697007344202920924453746768269372758259577483667174430889929692491911894810940533253411546916602056729757788985733654715607842325249543519389213506245608143715799820695140385347841249958111634956760527646727608916314450269718639952076592191495999619690244057342009747224422042404760690191007400918023376235005393177017659262098963187049482744350110027529540448992868870991896890098117006565947908995583716688173928797135460625510495643643045736109690808826961264555176646694980092634543954229878359475288643628258764656431774755609712232466990239158568129369936373766704456414022357580418775955843835907383214232113969447724877698677659422501308480062496217467692497314606352363961638572772886707440777354832605990528054153542137345429088370709968467934330732325735248852772582673200809371341033304469248007863358482529507969527147877249429802929920679731185665243927545009606187844218957497718811200225386742059838766161158660539165302462699424063009551641178452264842243302103763106004141389076106996658766672443210203351331680543837942896432565801525496591193002773425107570729488340072907304585803312211685288809256550270850001925585171243886524923533494372683050191804901729497317305274193313914617255444247372461312402677730111190480987175257252383506395245297784635320341955088536076037409096574768508774027251139739041224937995482761270144060753660190448301591925635573670647535019156031447487419774881197079591234492025591625565130995153852409939572803994288084457936924709283808928977676565325172593422853446800558028734555380852962210638894592796659286710692237971235814075556004828761704828625524101229400804787902533873706438848829758502313571453873666068489395362335825361593564609728819296991722941062489125956540672113242920479665899610391999671678819735511393107212428968644944408651446307202471278971388075997216115386788058879954254174391300778057937556995327586888970032446450810557441340735896801649662855477407270828868773365266571335747996789449885403693160175249188539204479147529980033538708901261605565315682311484040263727845159438333142226531428318431805911555528124776918900393918187792053277359095635792118710702831796025889339055120782757456285482489611771657251526547379037385072614948101872198955205923883930909537597510690382061691918987038319721949890428725758293522086578758107796446840597587307217087837058419100978485659687757062099623979543191427102636539059200573903476192461628993998923859644998507872871238905324109842157201086636912564907044473189713381929512738102244776115723989287435871959379788532366992385221708497585536943304808408447069120770916853485799634746527812911215352530696029304959450595678664048047190511173291091601083508392862154376019028685511572123749397742629990931989234658438369249131521780913917887333870364051227311736153722171321520332824688529886582687507157915937427476547325806552570133916257321185501104724789994830235974685974435797154778320031452733030308764345711070728909391823567375131793508850694442371499966780631452944037217761703697711681815205096366814810330045821126949585116875294662502342634821609834915765826802559653069170860003067824983498367769124657248467802494955928078743086749475726411441576147032818199678892650698009731886261153639548000808984253884582213821312363017242672754200584252045967295582256580650240816684374080469378096449653801519608295012453569497327018164426185353694281377859660930409890020409999687210019478373984278425187890271922622429746001248210396128666582051189610057433181911681782917673341069542736445589878793144293594277361766009903510879254332536388612229778982318709119575038656384996809777533370721760239815881306835015359302324981321234963184488014154011446899588321462744669620680490494134681078181953532046730631818835573672763895070482946947170749416374594611897676531340096530359976029784195008695734375910191643606207034916951831497489773671966840660105025991578387510927900577038128487403119100988056620675081931668881825401952562903623202211003526090776279469672754950917799711565041556451684642556202580414424207511403892041695821664175493137421641848144992091171655165768947740133747854264562179626384596803832212827382969248084982203887300922222981865875174875173142171448401185809359722028061566210000829718471862792307067763841080516058232946425490620658737888999679415016532348585372422797337768102218662437484379288028371520252002553524831368261632357204055958425118324441556427696178957128912799247807411426836064934204228596025424047237667380333911071141586902750501864205756473171974366451529584964920736474079131358049266254367221710051609159760903476319197777891983216160433818612883706602185460494965674816657450786446380706253470354509235707873144356747761085016265390675441210987481817215243149337774225544135274459289448944904570364110581432320086859439739451989535428609664652917769480255536798260361285789762108702879299581595352316773357231494362603672246049759671139730159729266110606980180015519308868512006748116191264706426029250575313680815157512680273263483572837358865687887603739793580244201098030845685517985549435874026683291142975589958390937892201230086874937988337512607050493374523407554879840406023015771940216156759442579803930754006040743822510766506722920033734766842588328204554064614691314359064852873055705914282103153017386483567824680162363757550111015241559873584433548717743760291022623983014046801707593287297168147482559669918608449711799006905911437460350695377533427700173841624286164562209235964730321633855497479894222701283802113151507029203504515761506772916732166733091673907255469713425536371347761805921938094802491030061348038982769503303529454837975680843321143088212893163770228366286606271685180732050107043667350158269649942094665750494634280734145549009561682673970365030274579341192889977152048695207230114929329740019418593718521762755619968172563400148936609403532159524172978937084777454132837280272091142121489756546756244048288961023486931971665510114194702384351259288408888675752704494725900634257594029407823414185656730549796462799763824604489769052046774586681372236366425544010370376728584222699982347121554134434725037013327397170672839666498542589266904322528794496804415569624055360862811683911995867283636933630068561801056411919731953362109779221591932431934471435715703761019503412222321239934328769735101625682575806812643434386621382719575363798868606381645620141476340035687271017777445586590281139369632751803470621686939036946825128222503131375492697740812555931319107639480710905379235720809902067741890761275896764542837755595447777757962396123339766425147509820732713373916593877951421221329050185500597447671577900832478107404731598803574026283845981280620837679084637583887466408258193251439823537984189722674409283117300999487972177284414689371633866437261594302936067652816555483694602112001495732119694601376260216507013669844122977733744868945559150261307586697428712883467595766068904024721814394545948221081234114271495262878728662500882665928684351600983296443004993312481492869454202833696912060118978312590290904463939687743540282125736036084419450426588365867621413258622962507323537414899425168359138759723747139128804126606480706470010880050510485744286155375555293398175394346546782844083596054245047378484237917060434341095961193382054417806531397982679677358180136778558354607509509518201628198151883147050922440647231991408095976464303530595172068915108433625975277138184346767591179869139925346710138085615068743151946623053521248917592938323381612090428795889304763181395583613543188301615550881445736931610454001080190875029874679357371821258753111192488560436180712681598654070522399711484080978879799504620056510149704928073379465997850140169259203553622786680575879168150825610170786893103235140620973722643964700711158862999787655714490544602446550143539711076204703880442671284031986591093947087631156898287016108224084518351154073872078594222623591734416950321159322056986712954903808432374029867948755367984671201338167462584071362328143441458187687129183418990182911541389868268788310688813507043057436207741680766061195822289116196770232684147155511494930587974041927341910530110794265715084965233707822331245228333093825612621682989240486049734894539779825917891275280482952881607650078272317050633551145969175214531839417746939825531007560918647569115844889770211277362638585642087463241994365932121263865496147854011968561579944845169347432998307343297383164420380578160469615758728487928723302770464694532995198979468701884524465021224816237430432244326715554648166124770987377582692355827595499279555194928681698617944210382257599036876597489687586858063611890494438529103107419589866491417867602540180360009371047621605436926430034431024594285956535650516210290684013708081432242826971360349045175021362762107060684743423548588514068530120493397337363682175068120831220696958952928429723058300913426364953603781526188161744108855215373795079926572970850451902536703230777251184649376507616497469806573152461830540560734705301151030546462186016593722622547223249630865595166288481461065564745948360252780416108453312502695618143825491951638826385125113257908462020190327391537966499009167430159721686482606452739793334198842933020774038303622297732889002617256295332410483687689127839714018023199928847833360749468346430441709173121774014600075884257524388811403109100776247038275326809744506487956704498049945293497291445855652681917881327079363153879061629776341570874919475500423762652364445034210611862866028789656536097856972222691640726523725856489302576248112237177868610852208883781755791580000712009752978577888425379882904111285475982373903750185308433886844962754460790158737435467300255817875876944051243083240681536829082021702860226193173335045068422659601578235413031168428824843648639165437726379519112117039119337076914119378592070934805477440655315075934783391217919524497525652734630929735957358671960672439881702197077893130220195250901636221320645864676238446238726216455967001801539541982965957875368351841418909268516236981872771061497464418535897886529943943712826215892222585500346879864657271442721248219828240941630589017465263641830535785315248809560738318064840640452886833045361439892989335128534312877424716556703765501108419679102346263506185941881046301765600756371377716494836004067155869984658020490309924959872970525030853558830329052123669677507508298228783081848707747893168797349064326640012922441517736633265315767589545664035785308666103310760446998786298926438634202832142705661959475049713117309932281568603274697885517288731166418668987025163160911741835182342414200281995370939218841951252070463523525780153252833783802170468344492736976056597793986686724415697544786004351551696381111397636737075244639547733274057384891021699994019165493877725398934623801130367453657709763937716048540139138954358683990932107683266593951116466240198617997963566302574731498896221244440119403446334593175031851863114646791852021289019996300292617752253970235533263301987465526846330824667415700542873729455647364867412610388062734155127813082158989353701769422661941225237066022344504326157948287598640312895089981804509266187426601624105762886361136531376662489874874334889626906891513562632263490093766013440325238584959707044948215683381008668368307498199606735482511797169239304145589082198084779937577262228352910157101082019669728300794943956254522736067366916078075726024248778236120749575188823191368254727908573176753702135651172654422337601259063029333602202131244844688457752666852380740630511209745818106782147372421685955185078749478543822534427701519483475224617954660429009650124607040754869137735431788676976087506125356732705184678634022127830502744922328677652054723093999007773943515450790413853245394291589996205454708136415007964347716558880420999403648527682218971104338910214396375971028442651962309924946265324444582960833791742500894329994463094149370298563375904659841100488087889549912560682983830900905819673759724490708858819680591610233240805744921792166318836892485732009541563421162368151840898611570094540625885655010417129109241797627397232555121529982450825933449289063084859349404704298557137526625030712158140515154070800920804565493938409043896845299374858347281208628678718072777426881231308281494584218535445654675638142721746149546268060331686520263465875639433714918193053148766799257657155867393130029843848811163456971725744647979662185630780881856669613090068867083541844059103943923631976910224653307565744525554060930479687871063650215901389837263760672291062375621559209370266947560667645854743865404736728092845102192379980754841650077617955205721881979288251424377733470386956138287025988553896151252792618474740662708588117746015751814767956649776644855372015844882273595140726020700946070905880046250392781049802862695741363173632128260383504893687399651027131086897399266207011137078959922616832932050618018036157661114404646834542388308615734896977396313882180423812903632433151565882968599643284937662406322656716809347757700014006662636705425575155972020895234965014972564331012649158063073873373476265052873313650988685121866134619299633753336198983061937669170020459463228019446672638298756639222088087283170764458306195104301060234719470337129962843617974068296021333256672354004973930327712010125018220917983865143457431954900333114344920261556725525958835443354061757164580380718889691515886707554242777664684283831243836064878106673710552188458382327078817479411608076760845322734306777594992504038545520655532908464998315030962072733543156704425043864671196600212032803680886605720386674835716607824456601157531685240020081560902262570925914007106563195412909406209201244676335315713372006072090932494841169085678092705363066460541828470755901045821603756404261138978996885324969525395094076699557045864021304655025767284482489685678700283117053521460895374072973624432813155827468288830050408865302737072615924945230435522348842430702477092329425604220957551893110691750875359077059533618210785212655087988650396349842903866654563947897176489823281159063622748812072570565027154419899149150077969303350341296697099221173717916870768906228685106702530544035176038598079211985497193491840644591057084881680820177781444025064730436887688718260714076562853333748656187532824579411352452286344588767213041811884001832464422510360058715857509503710494127568234590818100999776653202546430613944751447469916359806015898262105479119054631322080148966499557448939463122671501348362208380189701609357886587663393929540294488197706556632585587579232424592769912571490999643412696140758707591503851366727181802425126309014293199117185753802682736779158874551695908798227592738913165589182399360792798722016635350115143735707724317904634228303754035776989344429011613782863373064525630627913323807006420349461610850921684507413424497000564598327326640497236982804301420824777135286890852284929112030891705258219080477179582431183626228995803826885795978937757757578933253183138905129184698115060183809998345762928128196545211122910542094561899869264146208388743614547762686891309603993890393560697320725597384187102752504489061906683729077059466622490267653054914920518405579066947352462710810379324953269622808576055253681179646712486970187605409077863883409957573954310094938473405777374385367568484742905649781158999143885993889486555607652738541645428117075051251659808964391322625569667795820780863181207233269378255275922965635275812511661575658344050811425916589251113437038618565481609721734505940163150705380924372589146714511237472281722723483098065067439381915315697728052259909624800367834662207117038415966998600576206169004056849797418222865892893253538059578233198170735317557266437877676290616965585986816220097212816796920528876014934656167597130369677505191602789046533075865815958467593955356812061874036240570686426582543183421488480133590260003059819630241521503743819765391167543994020464320707587362015234248708159601870945987526499860978488287047139677890581352646115003011662266900028226348246337058178898746552209883214742270536641490384091180991184693046271340369265188907881952234578249563088992052986221973511425444621194050966988384526050729287969280072495909055742860959427246397905012319228536153841457811471733343081036333492250711578366627424920757883272212141672393950402825329428570146096237447603152950800618943374841652867526796246566349651917811457690358905411743980496990028439430056067448658290151297646732444946297539230790386274145531891228284304035266972846385895489177905535409093641671639408391040915189039469591313513632781195891739627183329740669974315181994916917790951624111151142124448690105517350453855592351255812164442866708498256244162533913680558933743249254935430317823752405397792348840316147506935115544227741365501143788096386495105895587997495996001816396995165818060319948647332076014310639010437875299008529600919209526689012065448712427545807331331938203019923456597419633578616526534346140681610200759651278832110049365945577536976089789280510991176060549281049178207526878055460853978813432554519348219128142700213463147071972932198941792426736602410965242117799664789882273137353808640873153860728610671637792583300261667606012333893597257501280991489499380013604494330349057663353607220193119227022108704856761634927264918346169314752945685805647343013736038309352122001505942832545241872399421194547809728952147709221163420004093226284672897144361569986000679215880429992696290547716427287444264925074198406709536027024740315382072197698659324934157200954153757051316516999716663775783559090932365340212179545229407392156672282408416633959238922280129472675518938781332079025709194194544193031157873112128182764854963348129948306764484821868732139318221396564091965761474667726791788243689422048627837047846387631645468830417493668433400121436124487556356319352020579468295743722287819650826390934513304427295922006737020024233495818561888422497429798977254481606730568790442622961799177535562931949433526720938683559902755922887498411068089221518632501490275811402398413346177711975420765602294954895128934988396471044752148483009131515185899072640354713792995989607377197599915383998296575663790715051716279358323571918122655513847989257758949702766104199442151973658967156640691103409017400763615974472288051908619143923199820987083704044496205456061163911592162142911256853337782165759117527637531136567822779749678866098793193671711198474723607512389710598544631345677799307407031908885376375210270299649471091453702762296974528422381289125020462992530286853744049472442436163011738635952757136184345795831722559243769120904724408905797353018496500690377520009125653026110126531471714541317164084483967128591148668297546664211838523306922501855616104281516585523717757264775052226470389934782736442327948874591182229818651982088387099300729131660467999222754748239610290297751370570788827147753373803772371562751769010308365479832368376165026967116524566538651746492784479123990329152463425631530041882610087449581400789113548823556961992119489533485730457186659749082164401570242283336135459035926939132076556076404855275254512711213692264391787653384210058551922226374000403248879414091096973872611735640448454531138482648360170407182540664490009787362894827910357560708220093971610962552210143005420440371843936097108240874119543237782561600103521329984714437334806418270935187704339514150102314609184028262560928392955955275176171586072075997553185796621769058021034232792626252922133282283789296490167954203226128195323964429500184590609927122923898999825240973262873288703972928440210255863216311445052275985340929172172599938050013832765709817450667789628568766336590402886255259750342055126263043533321879104687712389799388047833921982762173391815493560348714690320973280360087091059287236408391576275841349367336132112656679127025760887561286932033781485605572222105223095935661424606066660196633743494842982028625965388724454898799581512964840327935562239913211003370240911115975295709969759676831890646162600905491158312758903654358643644103643324303874881892570391617047397544249992415227943317212655305334276010230140795363993398306260180925492930143844089529235020003919884993013388512331240802090061911768027761427615322438607256426697412898087556996498884367043400698167786162115889200365630632746059242112791239943993075434573108066578376823553013015740115071100429007499508497902419527708446365607002652659303481693381968759067520830749128279448414110217587609107136199951093804376230584984228344185512075903720340964677257042191953067372948246648126523517068132060121897585024772637057607958668222245826632725054914319079777249177480570658626336903595498942543164805253022887120293211606118226812026563655881687912589758366789752621722165496444807804015796830421357797637893066419703639842302589227820789887713381345801367943975302788605749217524043280637610066690634565457629474210955442177547866058242615698083802590649886971886860869006119773979569594786305927437760601659417883043394549870583143598833680230213429697032592752663851244962028759327114248287427333295855679355706776532450380400817812243608340822231594355670624129024809533306841530029336682754903666336732284839003908812935263981159063827880410242000622356546837644600661185545427419484132482454747960465932085324756279663147745896237619554156432518514522146159453179762794974612838989158203433245154395929036394206562268258250484589868880328925721697816948492906443449219402157483937276022848509055165947171483510442458162694224565424354408594042401740540859967044812997527803597014431552942089724079182377225163607430860976523041864789948724255229541196625606656129111430465971100022395139414039758410558550108867307416838187469469462022989940928886096878424540134413456966363164421473753359675731119240971321280336847815145700734727584259557293303822559485022610651710574913383581880278379008348841026939639883911852969664485150302730032772558835034343335345027709881415671651285399389737167112803660002574809287712978040810565132135136316391720082154596709652797442672964024632773686521347354889957686564896285727101121928484314867010838101648039816053860429284122877320492602544430588829172604596669103572057572156336837713094661736882117663830141219407243862198980926266113979241692412258811746553633799836650985389587366090165006379430132032771573949823773306856063612037071272813083156876600265610600803856050167154665910066791063454456474856103248660218156340447382028083888979468963521562399954443908917832007900289929441164537820977866469337223059442241562527152790585039762873727298181992665414678204700460416719555949578193953678267840953019299540615343078967458137172897994592261883101038220777528181767792658582576999047756302828055656509366817107744494471516693808080445065040422625006721830966571324781397745634116909878818688239643408602205964575374359394285943455362337046170390093385128618225628233450199382423305698835590096449733444993531897185005477974172804062452989666224062587092734635437244257455539058024478029523382196237953821011337698968329252847739047130508979203300230496644078101159144546485267756407654243619383288131023275633231257689364519657212181054752529299074677098017855462541622551755526354844585547977343727332993666050657371373631691357748753839130264541092399170870689451439830983209301676530316874784653793748494011251899924198084975001882422568547356483762536798374921588154718401587337530490524134169546094409709467183505052302439931202013970478350117363291634701628357419613216710994410250192861902746716916519610084833200761134591659105092074268298642438237326680108447549443309482817142809410557927907892305611342445915679532137283764928897090694273838545348454561181444017490767108396805825870976975923066713445704178622524800057817347558676753392159967718777702500750816626003217064913156187819258821238765847591591935117570328934715129840079403690819754260429825829568034959316107952691266422037083627919268607416128861917461899322453078885050265429321496118576147249447969079207814391931815762272003459855549884273113532946560105349849687553262258296499398122295872888755702089805023408044288330964119622962098075595874855301943328489619109313514453355581315575023032887065774438312273597911866506068540588090443031440676628382772122304722465708455162301118944372950848490911424793184099823255490432635379875515455971094300369304198754843133622374749235298232685173912195081917656909613255655581648080687268681067688574487964514421794481319788893498349285758384103470143458327360508845164119850949131159582395069059796686306118346802169849847564562303067856567988746287868073659605819824001496596500215086517384975055692465332812300972689138957552985962458640667995692568785077748294912330845907315740883022124675877836635389179309108196009382966013008688735674260559257428117581498414407238701716549477228308323673086071701738915668863084436800450810333803521966011213907419387474422705213516643078459124465445445280633522937233860558755611533718123453021842324251212675482273793832220504581834127082414956491154208693280656960940289207782107810443125762490424422247563334511152642895505797421074330236111597161823573234590342878690287465717658754953005710993528946701617572405957581963684198273140101443975389564540572765538659880720947315226669097128309560722855559165656049103055112685196489799336616160621369246280658590781781314789403418905734946547297437752909266847219285858399666753509963928298385499052057029572266192140287740230735510828153135225489048431058074531700797751352312480445887483449459762905966445546739473783373268988174941227925208122708527354621663910920075636139078655246921133318873396918350322318247781551925458994397771844066899013557328704675262684534938636975778501173892709309994520132271247898191730175440350416108193884356270804681931351239398141098302957111298153272177719255327731725711323867300816116242898957248374406900214209196265613675507230155292702537051754692298558406409895226744413922105098315041031469973535717645876728941696935220343665641093225087428007727038566209856612725917669875543962473609694358976270204084595969415216857457685388141654315883355379161521877908727288459816335166799751980252189992978207759146118376701479102837715234441314855293270027081719616438155317681895099501678391330137637616658396350888006995518990619451752464936867351298023410160625891950965538260335940233301129445375657580881770762259752574962933912846972999727184335505435323504269702862791098752979088963611024370606852370791372231495855457955100707402104214470890639934961639757580930473946029896148944300104936276212412571549688918483204777427619052810735248310236737747052167075429823490108484154609760139899358732170361566118931598784400926237996067515744313483905912386369520169476184107136419391202999617160885590218974089904325337889350093566155403921513831025515205450540002050621206006298154198382073165307068321313042408531503554435148487435702204448750550618256858757939464726475864842998045469959666008229188309398316393930987580502040267378688174209386311028710517345100465704718545629618659657293496290505985353559594961109170291479761973014332948611433511160817203858906535586648053444976550197632636423001260037047803852664042315430570797689571909444446209992341467572239282904593926619890789672257780468056103210295058626257547621308563852106785129906967675592563062788604661438098670559589960205270135131718428551237024315009395726300393509103489126745896916609464711952190186796567064420826190284000281169030460107006747508608262710055705588123392615504393372574201550301043023529320563648549947265097358062206930987484023363986837893628667380564003313606141943059318397877917548468270564571207613110757915655663903227927723804387593731840087361406790673782500212687119123697057562808895385681889786513418044595104692596371020388696378398811008042166221724606087299202799760057737174451769611001558338608741435800990147816266353401363782406840695049158477094831046647168482889765915423876218240737492254274726718264756055941744848665386581893520187629595628050243249531128003774551112736640422937438999028803606907292620766322268264748767503883528324796918733323937958994574550465139400058566982063280010971540506734148172296371947459617701406178165831299959653749252573808622769024902999153309044788094965165643724269561945747291910949231603043388632637723023972984645548577500812994384683346012144579549021034409154700945230287598732753593081629258439911135310343709374980176177510974793659797696489473199992950050410072159889104412762616613766801777077485859480834494476341256660377029718306437997063447260074034854348107166127746893645299195523670138881861238019877581020308758055519739859488073438428268747765198664570129924396789264914874110112797084866526430039597355989535991485349121262852546880648423098816174691981931692912809655412699223240067428132447241987139486477196180495077730864881020175171974799702845381684367940789016222188690063524585678748663289053316770449272984032713735915927533317961274156275725952019639296344906560951057069200775071728223507525262498555109886719344323872439515272972926300619627416276943410758128254479709210736039597641410950119222771471437849435431952328596191199305890327368505432370320949202582357913619895709546259637295223217298543878611474926162169270999460969383062883111918912478974772731774398626822368470280356679351854086553193569453613627985010809716329271755543171867328134279179298990830184000621224833183753628636415213974282958941241858755651438466376075384619330675623471067486606440357660418627546763845367468420609613408333880586768097982428010620539080325007433898642001913606006646664192487693304311864299876649722927623514768336691559179508683792781905359062750427295484748394860510295946877216354692519409484639084625053271616372078020039181012440591059131552903368382230126612019412035344248896517205534324161969433792404357081827347349534376173450074153734055718943743993724081886968174206979654139991850201409547847287159016857164803696406568972342642528332021927181403764140106569026010362320701425499908646504317891844858111513093134925128448670822604792584631742659398867169095339827338077749428449636289910613735815983764843992070020619300932876641596318070440032713960534634902270879999525315564859062544373684168373666657106795134862082877372933865190133997797662180147510529046066193263461050084029560120096848297306599402542584147579250847586381269724858945155446428908835272655652856010205658951161504636522228291637478728386226317103870962196771496020556471254083235789645121103437457845198772174970949756985388748131741926339640543422151694193802883277608650416921766856927973662537845185768026315258197876582949036002947945588167194866195642809866782532356463893367411933580769367363792055280762671368701339057900846000961978347517347687170624675459778415746642420114118018564904949821748323614654381970732305516824625456622606579217362444993409921387089866856930823144984752591538807314467165366368838926933856241904795473495353312433566608157321881418413640712517370796675811420061157607000292547346030372351042330215491264327800584695054693535271330881510137484453483146611238141391561040824347288011817371289293694928025886219277913819373810849454851699882751534902518076982432090579762405430406322214057995291385867901355810453378241871790960486578858061672381851523053823297242781231164345582571512238050415779644401691710452045799276925721004698372767449532778342373909174967664271238925144315958709342369959483911726049439036771020073037767439894905079220410760561540459345498529258563731383086012548758733224508997470364761802695434836387439316912879996351645251236472422060725246924169205142778871382598386849468729464107528666192741226348642930482482321882111690881673324297107332057079752634147332381265516162606217231022772165211182242425198727114223050926626313810663776298203395090432796797096156388914836059391083823753212094377122256651166891036848302050398712011749876560131326080777749694888095935794599463922624108792844836475524171907938277565362425984880770518689626934125678697391795811251278591615048590199224180264577022113736021110872083353700745548890714209378853435924446132090397379869486859092389967535548578623648940641847599101449817036394001303263562079913038213873658981179321258463813257351199335751616041009430660476670132715303626532213126495801432382182807330169372217335178680363474682963134049324519246097165692137467826418903763663690323959746798268121368087491717276846337784573140934285276920593166677079983356380434607275858491821566864977838232872746117338408790255009218988781995296144092788475971710261448930860627525720552948526821515408418056276160498396647372022171348013173116096707440120787870010667402786017856202532231572836468480914623897310684265170426611042310782363852440821880788561132599187901743958181356127362624947227785615131170669053146584623695101821089237055092130803731867036089897004725874996124140484454754248291198670120430927483705744625400720802554674724808377297467173762937737068001579921963335221103260434148418516819915963294521092225308248387594906907447908405174450367822843987711886463254525919913551407680749772747709219497686805511995351205275089031658430067080512766116866119308951045285421778726973613375117581277861608448937299169447975804590628265556058152277052387790533366454611863333129644351590282739583940984190223163609617037763003162125664654634989654554876481824287917213779763065266354176640863700956009987352701565821928727629697957728333361045092749947355047177892965557311042826470507265144652956637403580770495937215896486832140869763532549967432344858471239233013155341332184469853942917583337230031759838704373023636991651072360934325453705252511713411887154998012291684829168812001876853389908285525116010942135023327669416263215238142427647315039855738304026238235511888768166286447568600112275113018347507143221565146285689080761971438692256611446749938846827181739926456023581623341520359428609555365205649887332353306291191229869100145527866664810934551072238501763530067492480590358757007914144837549474468943235089460425291604770583985712366135096066114176752427666005894405585597914765397368814329005674522929453722639845733353027985059853463911157364844713136230670416143044112095507528481336613472669389734230058156162833698206253919204247472310192521308402388574063520080803421308721815054453266528815660728302876485726902727680851469241171317199877248960452967502375416900992099556890458510262880975959263523158982539393876142888701137515121335418451161234200781895194518633870464822633254229879123128911450944852028783688045272286484466826872987649961954835004575418660248430972947314200722728702345949764616456211647150546368477194964031104988847873047163174779606853505461256258107285653812563219339884633449305558870377963560355740428716160461326899179674436258975945379001772401864450726488987590400474750138122279919410834282513303134335833799234015701058687715539579106888323350109050491442552463368414331307060147724459946763440597073603321703100783205311279382097848033121490438971592544704558134890715933698146685439383362524944502193786728027393048673474288011451608405707597986145158224634820520418577676522601514395227703727198365154079757677863035384915348157861340157061456109672089887409349301168815224119038343988661451192273870229678519548702677525327165411622699908523905933709797190827684745028646584932371557797188756089435394079261836299236076051592231370715685214414253679406721279337507793027118007719828368093979056646172178032250845238545803837685138695465841499269292293642583328811984846152112223416967580991168319695337523178703868423696132143130355575050232294351005812151850998524946510311013403524465855643613799757740714067038913299731705437201187703042908299552135898538259521342094049841967316968806725100223053722846169213239578650247878574635793726628292083278297311410183877268406736954372963677787425624344207597451210822281906114558327907703171866457777027007141755858636478597372871257378015618240683806811267260192734878989363781289774439330028072777456619542606617670382255936144693334783508283642105158615360422267679133907647105423752172929544066680959144560897294153745918317443252945335635806161600804224971428043772038121573091409612177879830039018883542110574047906222810733959516069769556837515157286060475808707080710443285294060856466152067686763363025663674544956306320300685168110853791456945148050174606325173510353757644643155219412962433452116449761849227366916367429094400203250516814234589025432118099978933089639292916312601743859955556128294555372886359105107447413166207213917910503434322425871447296669340774088248225515722596536408423499189936853552064108730387126870304193144185697054816674845480672142146643577085187856982419701523263366070383389812496214587477912326729410516581774026978533107197678295420921737697907008612411369609654444932731952286365281841072431319108151817291835129316899198621426832318191936482322391154787530973592819374621678703420643528456722546458476824041856274967667742410767809748202941599832482847288755813133945724771155597954834392729749693822858548106555027315097526840461963208978756595945895079274489728156239864655297333276860283727271932958847447849520707658221615238960693007067020217979034380411089150708934413087188827301763884669869332830745703411905767369169730324473153617606159861993954418086212519370241420197954817782408460318242928365267129707991164114553161742020757151655835153219074713896647092864673085029538746697981598494786494423304394956657594029389119757717087727812629807644467858519456129589909691645385916770426129955780899012099950038823117181410380649162192132173435828976637486392435994908895850510863302672415554189404902134037620143192724601597154734307701168429279016678702421441143178267984221933718950618542916942533099087586849682354040755422146467813222157708231971466218605940531874288747269676527192954186744436530819599446109508752119939098119960111070659037176345912154753803292091727944611163403283551006800122755656374904553915313081296107439957069152349497466422934784155203796995422956711951964729218077500536535915751933612076226935226163618980532745183218937541628735664042399768768449467808628393880680485360711425914322407391950005047713037357051301058193331186994799319737407307129314145687994061679980119865637752136759953994982425190722795154924069826287164341701810940849553154829211952598061980841270064924123305261625718312585065453616852232273885371912484416391651457752165398511230066676142676411837390572019826930581397419531617263504173078706279240304720407804847088429347184582810866954161985202561428834375339632805571403303704127131822456308818242318373794928632792228080521271741906520116298611867414566430096952381161546600777744687824917361778060290333610814606902506324831267896291177442086693095755855505047577705634999399649929371431642326471787304422797659747056470173275204548849863401026511768621010290399021959989536671667094332070379083967031605576834341250898560652469546562837736115829659420814639012648993530525277162386251944607791304311894535501014320532400540014761927295380739142960290335026047608666806705901713990880028542091383014676983782269134052241235544553165383415222590361713690169757875160142945415876237638372793367671776027560986780541566135578261627691383073159036380161240583717291981055454550459521519939021501206770384237715211074798135232875447586221775103449826883302188833864052147213694330616826401808073574113117503432737582414729225439866008588601067987744071585475099857430986267260557810696928195985317793546028594589583401916316748142765570475770952326859930306851595357810281139808763427953185036519183372290183264358804654539976220693239495610035298443336153341976194161381579789942440772992779203455894769758080748258430413273761605553684325315835762960604429798812871433900262062851738091641542967057139950091978114207522360757764853760740176833511187672946168567545378799397853563360541921141114715036454260388452651171695665446369400095080703459407012031247750851592132285401499869920517822311443575443829834320714936647546349668967113988458408210291946130687243196088436028765834255566563376563206246460430126449102431031651887857310344733153782561923422930688170336018330195088817833501471971174373836404846596884213231988451038329939640873754788743039000686111393956921483836158372191343793490296724226032327359091531249208134762474187047075778658428050739989351907472789029230812736248264893751179850294323340834702579798778333586854906413783491433586822716710786686564336428070616705428963950919113169499744263701178352003541936562501889939057123236881860377275808672104502961315104480042206437830027980270144062870087973080737813388026601092634491053859295441278435947475627382861752965826971885252049577550537820238343089600267694197200025332170729865464289919248474284977245315622673382734537521793054746650453823599567948784361294313800431763923939912526059903236520384672664643696830680923073814672047766101804792863694239312497645559099201854498553333809939798171545410432373226905221530473449878114665927339884031796090567099149430504881003065760634365173527990411576700409804651923505790055523056288070820625153270250342970381473447745224037583775612324263075731324615252271012930777569870713102583918793141427980597625558755411747402569451957777880885438243256360957938511946918294499735218686740642410108356291967551962528597279575834020231679239021991369995300592353353548853835762520450392332109417211425769361930151992772472759011520928572202185168976555486262650746277598842613264295867179555062544140292785912090475430681452539139478686828052047206091517708132965540149967237619567446490683084462498950046064340762664233132710056879815537898468832232281866249287458211740529842304724784650659783416418544174814116894753436386643381760181214087080778279573114669279565819026314403661104950559112707270536025148295777668990614266673958895532510920269625553218545036375315366488024054656687910512394390065761639116887738625004336628665832883603243306155218558783946197974215020454719223543087665464667899006276373230904577648172227443300423905868513049504301351756693478778193543251636589993493152248275259281559627054096900764201174921403673222817419266370172608835013998463297531984210884692299249523964558424413956518667508420145570586128539002393553369757528996714943450720602785664238976315838679202127039800585720879821594891649471698076809073789762121665697244163156641573967201368704821421871688183105010269512347845137714801904477359597508566302920627301122507852555387648681238820938613923702159164734664532461182838117225805049584405411266435657456913895451550931365710719303298323080591391827428486902697837049610732544941818856002854028173079666310995365738961888382283572271250905683861804722628900547743527334975601760079901927260451626165533382170951583228487420310865233391718432189322195586993071721290965024420088309516827054047947524020070951727193857233616152911216376269440742540133156903228118970882271958599896055237893957797989820709890578851393684085282411622280856116781924322599989673672583112697449757365826642664825041200777125159706415896108306668403148009932722490277326302421466547717726196535618839392126321367775349892284190477660792612940527249468918050023256102208598636663589628688057174269717240280630119884993043423149910429886190976742776026576217335504055876621742718191592194688515943775431520750353301985576174257076757489910208278226972669251230773334137958951964404308460192086619083283596174488734745085381844107251533777153174149235703028552535720479282770865100012394163764296254006491516152491660682817142375584132290749799174192263964746523411532411892235830084425679548020333660311614809447389145973975597480034258584097988151597818517555403316259853470346820081305096622860025874221770978190145296098488183483757607453750937165629777331967197633451498076493571253921898912209798660789224523054250127379613196824432925635213390028649966592540539337699047528368275005950500890499813200370804605886335825837572440641237112105310392548832821161184304961709129307042481169091458965431578513830318632065109832248841008651654002755196148039089958021626370735591501151781776659723400285099811417137930008045630796172355897783178748405058866924429658089359986948758229428595552894395776828611404822165790677504199817043538600845448142410552579373085137970426707348889352519353618534836031502093595259137284488676888606413505570396318529207648499447323017080781508462661343013693872878427763822244449508792470720669308590055746888057744018224607181970135931283665228159263477010038251412421145897061206331384590038415048503157986296294318549188747635974879405019539110300471300472280202640304507786986593809748528958090386999158110188866037474212862064974398226827776252034566359858645543732879428078429143993677309113571486956099571391315835240455567787673713924567526239158252922426638506847717459201663728063142140535458387235356982213512363504504454809365598163514602426194855446149333739580690770792274150990800853616275792121006851971089445159273886188297807876355178137009789059796037358595931563660551071994939973421959537078824053673935919335352489984319726210579785216213510282290444916537762232108612533603615289167168421898584347053820111381724061778846569393667527295740351364737700956437296648182598211048597019341490098661622826486121353038993388518930782178687281282523768622036759800398340041345658161980031529862923819508674325792393109543084559229532375341525164935294999792688866882950632934964627728531422600482227142900783077025371046396877469026343404802122687143015221322876693884348416997817257069075202353264961539065302187965943827066933291021507152128316802260840974055196772317398593454157407318348980253627710461093047641463108472994046454946084044240318458597202640641935525817315380449585188205112514442432791248326820033099799242567566683098204211079953962563855482174374648712738643329702068181200899347612965634950776812490093790175287496417906190318153391917995029256393382168937718773864512170461490016244384325664215399326729292834483460746748785840128443676945141879822189433963899297911970962079302948119224406173392006714935629226369256012999401665684008878169749242908500491081157817855375709721756322841707468711300999141057316371546249676564739128900558400910193438203400429803266782770331941657982504060753825433905874485154252371031630064779952303647053352648054812438039500033332370111444720596706186549116385618730386332548152679333209592995549700523374486058366151567383314078566283612758017449870093781041813429321173393864245444258767099606338008641284439828716251897607771795267705049048902131389431983503258881474533619518346751430751770286879961308131899158583095744806241973509991182127962359084326635681795605931548556280995665834094985418025582142781098735533973032997922271202680002516712148596057122585364434004291636776976788088686982780864608252707733683832892749743568026708819500677039482117981243907337967452631947979801576070229031872729167128851665529121763817769692971123086464268445262757238428590379416645239439789696942097707340152675509050323537590279919520561993978525389931065483274946067066352966622037196343547244582132481379236875107754908146670398930055993063384623893068608955344194089978166421739447272724872133589555042919069006223265467583075064924173591229844691795726164119673197616760476926808624924674721252374189771641473706810185554269943373945824305084192890725404159118615913900316345706657046150617923405429468423995893114987966239868533888749705410885777898382880686510575271777042019135738917105208696831202071993650686187673244471601028786570865811123335828808792182662133595983909856163983308846266223476060349694958375036115139268789169902543545719886796636722850565837902576755307969639571342221342853703315264360082379625830860450679160173348632257473112218656348958553553384955474242589850455744746416108295048309185216612042103973125925126296004151482604495906726867243796343586299893277329984038481764312830146494330151301381098446643660821001788187320597631956848673224475738056816583184193303592291572279601540516330391401775675477871018994577796172709234921654697736266165394407606334662324376788265446249658245631102192382358418672109106052231142391316450544582547620033991454828989114159389430862573367040251977827648475454272659613147286655932114237647304372553449556315787861217493964895262340037512999539696971376212716904088058263444195449158298611092601160460726803176694121011869690812803005468222836854692043095764883897963542123265530937528148716721931249832381149736503156612978231487987541854070119109797820357632241782624206595427613227575221629009934930484889292439487494381695116590801984383249893110543620785400492360974850353608814071310554612054243291013428196810597096389516950096891742877969417475282403826980513927328022441157539597524496662424117927836403085790585574570849699730517750860772907439538910178420866473637474323243535851466217446059300696501110743586883421992215985809039277526478057364188952935068806408617173996481956517613237592138243610811170723628631170548665420809890508029430623259236161694173138453937096471045159128550832345223864670143828470059240543136135321227345926431423122531497578149159652093200167561331119833171652516242790989126170313560465125611430349524418867093748043266357561236066712880522783821468565893104598456333541252198734442842347604109970754529883153417396170857533750280023524602951056150724749973841731530671957158500219653809753539812521377518116431572099742794468755185852561645742922205511021253938684144422632393651604495801951697673947554238218734802290299589297077322469125598018691819992008297467692649861558814909839910340666491413339589788320322461178942337573978543829170018968709779437440897346579870687189910014101940354722237586105042696318636276881409745516805311698086730591928618970759881236216674485146668033844745770969699524560611529809009623888496159020951720397776488225701573835644813486409230116244835723425420922373590747063643618014919930590268508926396430637042720932753784528958748984679335171602574905198471982875940871564607525040947041996959498931000513076137646056518586838356683988129271992096078435620048358724898532421342615883970966477704614846859219676752475216903738390113069813766177054323067017603303588440156157399704341800302812873295635225295091499787414513610506921847473744772206659535302034435705626967983867390702714942993974027351097018408617045965562376829122758973935373363893773224043172328750301142524653294748102237937871555900431142477820179304481306416620921222874819361979037253239866288008601097662562619078365768347218214843601250249687407885469905754268559043994487724806926002379697118962164851699416031617047698249906666553192452381560663554223545013406827600993486140452011884320201834116699596433617853238117012480106928844253226343028108090543526478838526549301558213503803689210576269251555801525464673852808652448689680466939962716645554368912145466507393723968545284208938287197644924473641330123869466840769529971112557835393853581888063539188936550294898164343146908555172432611522851160604581331723054600823207736296507013853976186305516709336007636568015147946067273818350876203038618880203458524349580458506226828338727495719499487622652772515193998139994410779458064130203387139543050953805810952061503191601382165272315104561180958177360830533061939202750082174829577243714836780545011366132514879106619072779730842129679284409710080599173741489371792603009259606573692549603089150740725027615337142440978554596948698881322388734760846811729010306854157620788842269961738999445971339608969911716249433855800557059143140950695564388521015613882082839037115484700724316461788926858503073105919841057010380013876967843479988203834007583453424659386757939083798235520502110191284969346587244620004112282708164582285357555311695993157414593467889572184464006069968944455117569238561052395043847432841709903578109169999079830337085087442806813618847718400250077580667599665352639735661488712027330402907454486233012907334962136387813463681966068735264140962762856156787288942495646629928508812646034124730144973601742442148665506224012005781739684387734721999976851753508302414869324906384667946417912007433544225819782174017156808513419958566354673969727242249654528330897422535885129211326437314399901955353492182614699398699320637022680784614245813173791265961405318787003939657273125119975623299112523386416386089758867532970780142061234260387092431458891490526039448948530901734761680311531683516890870602530326886158021114052891121320570706659433355575567482159818892549648326481404856057583026761116242783591161004333751690641334594120012401657983908704487777892799354493709431687959282056315874617132182754053116647090114830615941609136742969526601341916318075921520080604158502406768117300387644272012987635214161632963617633662730504195585474563736414359479890661068642782412346901945529562351375742137954089131026694876700607891652975603653971887732316740372941461255759529045888784669432270116293215393935716143438008665535778020673268910519605698752991893233356121419861026466016391384211672879174154533052518977027911702663763114100967141013453549997895764477496280467344796460505772795918438415924923032285028588585585375594226517695788142944608083918301685343420443459849288986929367496584510962292998622805092566279738913097546075649609482943318682556209569210521363994483856398249161134041961153573950724198888833425887433556123902595997984741998595969205950812652582607429649217105908748656052402004657314259433404898603096544738186998089493494695988643911337270895844065087420396063143289354941510603571959904511221507194023624161096442533967681382199899740066023353838334518981600812821026371339484494016807491331105602835518037431306979627935869406456054137161555168317220487183849238471690779210875125185743973333103569762802335176272591829354758863397523438102379856887544735991461526750437327220996679569970598107229337285832334416999181570713182849665604340174961220851925814054198597312558747656248555056355871519513849106264143128724609509937522745498622799461830466325445404363088928153200848580563637223272986007891785231275609320054994263290303449182889411712038247605012734655711787657243632854864091837111820533347568736648304129493181017318523960036702711269434216306099616007969896871489860128350364628832914664985926559795398633198684511970969429565045697675514968147426500839512275289719878950206967415257118009450648933257872991201586433597183032691643407593484650274166580002309053270270926576514269668059576046682788967379040621829118779613134385196724454969636263914040481332436912434100421776047918952997267265889992988819496261922931832381935627444848638853024472929325169199393933197491873146050960180679749909231813219801778563139061929537548219053106995428544256986380011546376049209147659794861673795173142815885824861216749814215511642007296099510038755435107883707030644757571201383138936934897743690338523869808775858096972055764220875696350788480866651721554124443923666369882294619545136150031048513878385762610081418881043323520594449293796009226685726323325852613546022683368928362584636539870863947372038416468091490736643906303022999868676930343108916242966821026156760222578857664945093123207675304437046804111433094575494525406243926808424226082190021716178453596996405533367771237409177083510781072480674649424636810744730024600382854808193888606987401582033732302239693980035659769587921621970010438678835346250602713945122030850118288944128336219087687942466592722174809726884544337692422987843344789531203172729700631700587871103554465868103739566530270200667959020722164769225317097536267373554279037492463044856829717268384109728783458199017685023193589293865534470116267051074866945265655437959290136280104864721679815250337751310916830692087023666866168101506653077382076363451202726755412185177237047699282308097036037660471686353611308243104044137934767447002042275538901963569418354425241013465131654786888342166574626056241411463165809147703481930625306283325296675975228852691403717886158251129551930135597134744979274310390779245476597344150429438104514619546917742360019373328148915049034936783844863606249932684467087677562284272913055432020630077773103492487462501155101957932168932181466991897968232234302481294234780060014489343437886728596588269675122224396149184648196800214111028339481571087232052810282150615807388627562621483447066523778689840022988406784404377392349187621347497062665009743440446482483776518339406635870195106632895491575955402871940607023354474031283410954431689432479626007584248278142775859377348771911023312704819613280449965504041677913488927891568407684220545996593591627358008312952771075929048923260781849390941877423300557306611982130389094010544424638589965935506205803165427822802659950406839046676168113142272349455266003801801312293478211316591150417956500510919409950835388428767162246641521478758898191161341744201405296602785654220230460979812598428209951365780972030833919947659412182024235623876399155407845921555319909566841186741579515111310712389307191591016900411945830181121202094695010107584453599175730885269821044889596561847941369352118037657915291318139622867110821616206730977575347334851841087690896710384939475966418850652253957148309686169249073464318504295656769598407780202738563532609586163653504703041891283412058771668758287589388928866100322132718899761604191785819378924237608648929122003964337061438657741218508172731739373901167414254401616033368149021618150680128365846480108572535922496579519896081426740053165143312772364528753137387874944132655600126862331434870811787113969478985828203906709765366006998787922647949999730326508709684965150415346394847181359060664493283241415068983397569969247199856843508854445035782034769456981255139746731000051176814001564065328907313992116253498315338182261228786427848045896036909886753171367307742143870163090460114272090994416415613019653945063816478226976505718124554292484280627845528269558675833216567618460707619483387125706801257752784732228615640995356618835938503311214817787109546591620875045280891578066569642308751553242359955292000234367926470280968944348099622653103598481047273414955983844868189545381063007777776722890276724976769976289142360184968752833147965501601656747026993495245108704340863073679233179062126065601657236255544059525248483428089056648910471396180022290679919961673134506954361858355693980684242423091261535595461886449306624231781306536809686367080586746103297192683858889323435380360799305925441631059664365625992256929982952895044015642552211853643233464525021714288447799780750926835046447157108834796954202280088133054031819738457720315970707250111869458070173270963215143602349856856563587153609671964846554026992556841832310289172595462981905682375023053962030839173683461707899604026598943074815215421504934336105533545843449705169384599267306007082857585032973603195526176759607618131134450057517526761993407476850818487148048146357826713360301224156889889229322751588746107011884474418662407221914169308445165201196493354957052228647903701968668720953921602164155415149759940411730605819979540788103074364661064993362166738264843331908915479897631968967135482568763412660773467069343003549105959086624090110907174113166981625785871559438067890986767178270686551213220880767432494784043161767239435901575475032553387797037442259210059727845087647721906104752223707712010159574417542138869497590534832327156480687691520909620526366920790879514997170867811744737787996556590246631508657890591072782395669252316214727906960675283913261895147203529614052034594895811820235163195510419922399624885410684202183410590649448219896703342411120033375714412458514131710756802222835706167541320918319679375359884053666358497114418114345644523614830752284826475330669352289986266222465165941870448160442279858922667789548440259670864442104803492466739869625679886888661557402277584835039173748150954482599371114887483155609097890838139994457699693222583236488424925086617260615176774581324799507136582434955739318770591353613489276667103392723086599701134078135268410290346363547141330915528615835468228480486868205565949590972112302371585233629238023142944807176142585877575190207219354704114564999496569984730268143577160646673425921283976089504932339956243368456656708485661506625642255929586116582118783291347344904698499088352397429594789837891989470693705214365399111926318797862187326535373804908702812616650378525891555408188994066243752732870683577963887891857606672583212788540365893020137552467328261461986720413042925144330436359196857476622707410184846122090311134964044725000556496180163981961662724889254914671337296679160898040862190334032141034328882889176745588158348153551324719107798539792654986248927074624588589097572355043419144798224039082360438411175654722248018508250752973210167474617307069140848825879028068028493971796979649878482679247527760321352169971567006936095750896075237867178794003076131377237522995147061549604254672009607485079626525383754132205608891823101421215788172466045881480704049333600452903011497514775859707698573464680491028503654720094682376146064413409660147110362211677598605943091004402899787724516757232909888784671129572509354523463923640645873441742201478910963295857871894622552525244166947984175935930702490818575513441556361572506898618755536535712541748156998182320220495993016409166455791868678424170003151792971182829609701336331261527206956192717911248759126673458954756612972181942617243067936302938408887821938530669260890378157461508097435460728159877511187151878998416995105256079342438147007316521379809444903977189416876574211761097972510609243255475083161315357597615667775617207078065127954099239939777884847537970767495519705733584767599891028280723988434891263658346128608705141086794759124494293355479509181629818579068880288182658718045557983976577815273031185118546688030986714641816379161223876202566361889957920177031598455679319855806672635167511195971940360745512632634063447643529712218567116758032835376514159868994138269883557292027911472084089057003218009957496780770507600432316164421289659182968968037244160010568296599038154590501180584938246533971754055054277841723878470008962657122808916759240834315105639114373450598922329722027677215479238781897508928974322400568954511966469251674767156155282204955150668293441660887943472573501547923411630911948045514765723440457982882217626384839520648505832398240692604858304912176912419544665351395661390081133549441554047759172034833837305712454235960885421765722426086430532775235338367626608648859882136295741419711912583908730874557730663366387423808445408859109776689221388392397637815131077369412935093733217900880342497294212783327590279396922008161301896847568128197712050920151102396546691689363939493480545544541688892801818988685630109495375388812565141845446828463483510268355566900984385477411776087798525003583275026874372883865448264537208219396570299546605018045240809812354423657370458161637102792850918865841676671013688477556873470030236897996462572082220606009842026478916830328167608685049528213002553850891020407604240643086764161743485796080681362488045604788309294160089650035182212977256909632909508394079435265030883716673634835389420498445038083596848747238924601053602982157492177836188804595658334743287185762932656575152606730596994492359876278433484223423547578542364749017343493893896330923123993297141760291851052323285855825943252537546382667317343293775699726357319107079507411567282566657128235380264554256312168227471102020430604544250276438580887218698248826011391889148473106113694149179305858363040021732036460262599779967351218641448549949251989246647871428773593964542342649670756197406474149285678251576512309852695715539668810048595501457043066812287721245399007402757776937499159036206611338909280274861541465166879572056539888902720014150669322469044006191449473970441857376423096498191722910008552187479302607668004108057578941163742054991364765161907141435195524948973497163290063346712475849814346153039074090870885450751877932004414076648033771164104025289982152770549932226035567504674336146595404377612839737943953441230143338750572628181648889683154758783951434948184048589249099327474134979963914356342452917153541556801684243805527226857974665841629400546278938610419761162841514220708093291192679436946512983646810620819706283682887636398314680034098348706679300242975818442489640195985234675613049313983261464020441259339829109868927971802588812179460834986246513924684877320122178213025375303073539396055859025707638156773019027680129296282034883480201095861067904709175185509567314647005740899312401456532828903217089744903072445262822784085490158741965873725006439873225671946800425080745157586687669546045196335662904254467888288071530690386085678533279841533056564790450457596222906784228640679718332659497781750154198896034891370764421525540512795094151774387184475364198264033727106606571068789752888359549554016277760500870635538989258329502754794320400521956599325169108335894741158701874776807464219850143657884419571966410538769044590832212921590507720241447350817273745499352923984001820558493991736397181623577893474882907791093047655075981700416418164556218404990254939479706584805970540983978258623540102373168411376325250726645691674387643570501038761875058146907083159014273663262137274630264801155689986095366805677942849008247908508424191350223213403409912376607089845540948027647995911366260171195673863971086875813267080489206538958491944868082159153244191813474517036872798534966464527458027655062481469697014485527426524142175724475689620132840729951452423489261472620157735029609978022643212611466561850242994111274561418436046989584475362640736354060969866205230103043322287025213066466930638280634739157837625849090361071496530328719832521637940344046853647569505597982007616241046531835625212000215125828265817372275093212430977413906749096832766848778774160162845690635899732725493555197766047548485787770407156773026357538311816521580429765431781838196911670574854638700283100940786650154973925116855863972562748970841196111110002329880986506987799124972064390626810572043159481057097288575900722769120941966308960008648241384997389623883100856032562828119387848796986695202346557581835664193157355333619743324739210039142661032261205588176800144530940254189569014969872981170964563241802948727273719869196829119270565103467481483223227651476250836032823426721857855864903734480543529514125841320324415741095750387974503620904024710955256848207522604272462468678588956860780160134254910852335452333164939659029938870990677218110799564898149315223853733925903537321788167030138438780541049878053594912231809194515620581308515873767570191777161578834110380479531541314819636853183877926906727800717070439975450817457223610345742591537151113717866187897529338432672107958548125414688449682962461820257198972445858649278126261117731521024918079974597822184766144076677618707276532471216710935253220465073405096038868736324200257057591790821655164520155127749987719700490093240910987099441276356609842983280746590279313077469513616017622295917634584799554250351067006786346683996245908757930455426110640298023448943217234218518164020631795949743210106830579373606886875244521954945279739474337507453125367711416311745013290310563649645829330947415183627506594485029501816527064282483520085443057063400484497023132750876920914852855057891487126545396550399709859538702042825093512532490256976466012355701864330923913119769080857367338462468976052582165812095298992690472878634982108500299188515741933702929281020784412787970054375881593672856205127598852052822309124377767102321058503158168907276755079406119066777560676223380567531002098393959782217957972894787109396721358040131790797950958277777274623045673090566461421277594907365996018346755464459042244466694929598254731451566623542508995523149631446705304597468451424791651740738190907748904517029843284063383426823701061657946808090956403576663606862544520150741275036655910309140695449831051752228054677911325038389284908675993375828312091756266558165642755846391143957308836575580771492657234449777176188209589802878934205673191778290076623496069046345112331924783609150576221679298014083061795026176977707232373637543669051979263139265932364512667386268923154701652165614348791702596796150876019641953972031580399449351641638620217192392179789501608807842103662179954185119598108292503947438453932542936985504642187291610810690159500358198224962518810091007561668038151420888850205484622045613101106511296890776778534231408128427689664769708777000478869885468812206057437552298720351050589652000859800210325916292859746000389696345300141996338385810495874269074225959546347560016411189734476550870659830961069195262655591053238805776546084513123220246494733168450547366367888912945199494406483121691743573264033514942794731976146122933818548028381538933059191952355190603952025861271411797944682269001377402570790490686261740694340127215332452388289979647567967584437040837234292089807880021918120068290116817562699353721958840537571830413323531400976266451314866761897965299397281475378070862839981232880084926691097734467349601016091447417271597960752168086408293749542566790609874610135902628435869634280058666182575133118500972209759978978341562157262375976093321614066004036128855230174687256391718108707564253474446723387774434102014823155307523845557877830767043531025076464112999654340611600717320670846452024946341219979102656932919975177151805436868903223866777576151490953809893125508496382893030969549642945677490407786573407429333277215255336447807663198173081993144051599473236309062144023456531401667182450509402526109081731467569426757022051147999051996675805421055586204649088375672702594208999425608909020194832721989395031168022323290360870128986189641686139752929873216006631145830173434407521438863522637437134353422554467225554369600760734767213725996434763125558746477946896907786845788319803791659310088010770505030306957904297593087233699309533147328951181690803606309204855382145497432474336097959691579252809125010918344285842901421336911003921405168438093059891331052777130414869327560288364981163073009467473395811062661998500502421303639647755920984849469826109258759021325096761543133358679529406785110207671429752929127630506434225343417967386726110760958112861748806053712728763058791085893940878623999768896666136353726753823874878965948896788121423012027146419253884765623326166972979438783979705162215375855917306302978916174051200649110190918328513187834778357823695270008266954410918433672393469868108584192934054303986087503541231563195151301993034237149170478789377682328915894023197195505393571408454500615088259536380467325210667506607161493641609987931038733833687078590263999691364473577430604574982577753050456111932723598450747275780231392149625692001140227539841037704281107931006906925909855756038175323897967463267037815763974392268598371058861364360877297222373557310244804805855070598874931586333071487676351202332163963311694266899282577301942700665129248718956061453300538608405192393745080175036651570760471953982301945747341137008523672352818316684192889665350057567372420572220548902585898459387872160847305921812264644802648027933232809849219234556666887944903473476729369481964161281795460395745828400135070625132731029713991181516023485196949782139470282314634546597420933657345732438469082371913481312794567058526959390550247571111499985253032110112283169660536998075549402905777350463648218281842507109045615132681970098302672483988745134458334825201502171133593569847175287342897400931569365237904471273647341413809625552856401797019593525203911562909280304634174524402004120559467238909516268243744925288176720679739607715021347441495925824380882419797576851818074901829281343060969458401114670330260698153311159368033776385170961110232124262652871655122104526523690597057425386029978911436473946770149430392905482060960520488920448791403495470423229947094026167753118392705012979493509678317904842155542197869408601047813537800550425124458940020237869089201395209282429317267860139822399442696805582533942231980068986753226478604007983523289230996395275580052200870295415088169050217815495469898037787817371327703192465436747713353263868963082011734696572194701529505214402694442987938756615056818508285069477673290367513622496444786997323428821215678281057208141452560831785809525050556623724828149301946815023790491909775717507198013002610550652215028945130604939135005254579329660716263082623540059106845037118640651115838887497374986238928345451018386842797034908725207721026226617215596951870946636148630300448616166487625626669379789300901777945227187780118476141740199139193693220708457462226711948356436295285604830833754223671139999126963781937690175941499202592279191298441455827811984599803000284153298906355042273085834198874778772493771713332685677073440197968730142937916710230158094246080201584467370858830071414781785716720731135879361668648446884462942191223527044928963951871654023836790616358885156446681983474335182219938060346718717267551316226864432882760850577259846736717033635771624512338956518272154871993819923399257975704804923817148337241489484657273372180744093407722970497624430959817865502262885148404817324088643556084820616807292234399382282850638500512435457829861971981391949239775657909178375314609992057807393396422584700547798832682334273109725682596007916378130338666652872807620929606009713638113498108193308048122164347233358179928994096513428013787506937781165337379986618942755503968961125013058442579026427898625296581385556949313545748597023755962819032214575367438643018357332607337091584998452396946931862860232890517373216690813402697244284423666953494987322832004505136652718168667578005973598676314940487692194401709539888670611906158885331088837156091034053756651520617965168465442307235815121362164553047214974951403249529634602467860513252508346723040765054921598860092452072477352703977626861083093881732704464910331110526223521784748675653280220247103028938978517681628263065191043497654984448036062532381057206000369253789520382526040051502735072525152582686741994811833510256950063992960461307412256254051232021796894255635512446071797928173655309804213017449954203883233506665264937312284482905237179945214771108576774614062263463059871334989955058887578180624718243170985935956860176401578089910687212653210191510705723655868168226646250119253425740736116655560734554532748853468122292989764872422863234255670582689374013215414320348384242801419775287068200567708332158966469022047498637386255101585022314632173900336873507849452854931087261645761864557993566105633131934571392142463505703479592800777241066052170212983395871924720999645200956520338200552251911408946036191540844081623383577958679403334970630112906475419665590594497672641841874338137490569810729711032341978197079677723119925382626755247493834871203632893152069460697977246435526355047202101906340961171440766473867116467305690970260821008441436034570551540575547089910831402015121404005911594785888097050927886243764358197369263362256708374409997051602780012954492804684795949608737259326313752262925317070139194359871952823593936669566010239945317888713307553299987156577993427936975460921801685593219731833412370611928469085709989432485929478183220365400325710762851714756620767625347087255221891197320454118983948022636776087812763010784144151733193121789024529009855055008481415704751691155426689727580924652920698946142132220610539670949659712383167666473771030438351378563180378729490947023094719780849843291790127092894494540445109690757163886791168446569592547439128910151161584134049788452051764669852649922844537896237044358039718372979902877427301406807438036303222870097375125692322761572392558781973029993915197817609960551457729578294281029652974563001698557350972356876807190222732687958185307784177348923479886841008263725169101899819946207644198682412094358434443377597211192367266203133656251598935943422849141100290177418927887982365800318822661426827306304137867237404150702876355735757074656209317883405771823303423468383991245725479381605949585113314966301867040725195306596817983349205855870105069159506786834226780981586686386725886516624347976036732700800164435074840687006865682010739095796622362571957324347416465239147021763332750627433604939090100715542149906923530625392845475201702440633039043579681575249358180762048806932162792195157834961165784730418430748025042103532839483416594534479251900693740814206643344174222169193373354254134980817882163007180421951073042014000753227412519429141682877072642404382831260696907561756398726793175839349427975190890787218890698075014351094393719772376136224886566150853036371938400337728416214106337398756828499184633190096274198924709522725243147018874424786048478883798860569072361157915311249974522233954395735554338941983493563430872877131007570406254466293000549455798541200093916429905363239423700660392968284240329721413712741821446887135907676188109494414295038969088356844919314231394349376198965308619271826321217002430774132532458587256115185639784775080711088926695093769032185283704774915647445561741854191490389399039724431453140862181616247119076273577752007403110343177518654041248848064486513548673839105316636260788613409157044389065590726782347601000855906217137619158836757286320873377282486585307887924791798101682567052926164453988972733762101969539177619412272289783393683499828748712782620461439349445935842096191330282310727180334294235888013512108171368226489634732526840417063810196164460551789582611735460945522413217309740061567508960136188712947107115618952256160892006465519727056679147516478319046740979594445304709514102118134266607849441772628517003368976440109540413133140831639274608100976423429820090024187081635708896771119269746734483498451395241469379159806709336705919621541228634048606942905033051693746344339068388860051084729414659043421197745647447606592009011048654587296825695599170885541066311448282242645415786433268093643163997237522727009907985575942820909725029172218645319643751045031205320647450861349516295689013291839269087497934501721182879924050528553578900421716028628181369339325251697055216688125146511603095328766346460124474769065027202107527645724500465373160404841004833148841163098782943784541436216527961793635141569033965752589933603194912573044659874250488326516590636469801592656742628766662985559856018195809309772769705994838126940257740132681157228809550189339281231661462307263226117659270367627556277627232412054171796364522518449464835846822449010439185981446235191895375517548829294770897716344039386785311348559439330213196160136099869504576564180489637783311555144769831959887794336955837059143906862218421043336056574446494101371633411945363540484713849299321231129618205990700895942548979564465345493162355946890183386074335081048522775771418776484954576939246893643622799636299034440293980084143874461210036088534012615153690134786893186072349074086538274516538366025842391116341419188059588527041255039264348166574105574427334497017773970418213060816610261442788715866709762223003663929741048179145423667897719472674209507972001222491560387837895292843380981072935077273198967790537560005389602403679795810869899308451048638826242425681937864500898062240214193959480195237003504002649128907097867392441456862150220446471930632249736535344492678239762503593147126523142675603149766380269148669801177006341119368217391380442748082908291551644397923888032779877268941845800736761953602931089651386718519380340496521980016889022085863048883673063866392129468397995484488463590598926148263654797169339651111822327732444553827093274717013893840230354817598538656858837410722108416697798600115040589928838111149092132450164085370659158681354900040001656591971377231038285131094455191048770357510609326333263621985367472468829771606198732401217066678647284935465362543728223351654904910430911603029241708869232354085547030019044438839456539005877646979940539359752069664842818102671233238015359331972483999258271910875993303139705348904486680821272459392007587735817187480857740125811770346292217998055450674910094591818685662494659827250426316067506427987963687094386197729769391670510323033269233504272855716550250231555779425593817503535195109929139627756863899643735684813404628498164769945066088822911197731500423902208462416938875199478657396040744705565963911614541525653825943758100286922452057871099001492011369234623904164114904512382170549083073033183094435994041386893894900809327624092954633605780215639802578583626507064808095657804556839671541291193647921529101372510764392482312577452186825048494182381509716135374784894947175113818211416522747630899827566103185667196916889633117243809410560128255636842961968488123777958523040802832347984558988600545720121548822226686760852416717969347587606814724278947997351855114912331179889888052427553399647439160253586084257056432772928234849410643205611860954136337636855893231332529032098075356398407952022550177397539729107514647665252519688124883357209981634939646118671087433852808524158422103883444428892240239557344030495038385223368971519118643400965571589773771999149023251733757386358749514154924323178015541584493495279407879520716196370655510293344150828335954531790034771333868264902588195046248778947360140284121826917170718963574835348448510408673510666451198509829831935011786224468649902030462107182483657944566680325608896531774547200061115945796535693898607810748560753803497501115460152102378637988240356187752194948641108438915511984365659564328442516531841930993609370407719879029957543732625037552060846157262119460264627593297829181278561003834094104224415811231892418385868744228186490244530469459391067031538996160724216475098674902270524579668883146494597258243656894610995320778376808130536664969475351160958760088243992363201163351183209676086696318747147999525964087231376046590360572256951896736880275166404996834975627682622398836331245384939100960986933681966937341291684787167792568151964868872629713725877647233740654907512074906639471080739148888408733722333215731818519220250849037488774942462596392087090711477967801997461418381800605849738822795236385397457969832510386323699613433668843401435308678910687033399652938316423611128703497391980163059196237421179437603394956700240628873158572453512398403650433697867056374264237616450856729253304542906271986098037793451853102844908537178382089645823139005530505227099198556189285660012001553757442650570115550430648596623769008010029091155268964821488103635230401807495683503762985967680932625873015289928729294533603552808318071643960840483329092303729536854783740940567302487631725437007242100007443035276943189308787132318457612128800340234392334013785582795701427018864129867189749165280593535658304679276886330602473009062671699746247062687648924738294387196943180460110118816811394912216295728249631451704398596338939929330178663162451899463427295338596648727743156650364112903525690670456616710631069528876925872204906846069855182244625133571603065557851783466553036871267354289752706902732574956193175238487422927857328763258662177470490744543952385291467103690671547314923176100504482925923811800250771914201619000210491294790396445064313980690565352621819498491681995924534001610336640166997720002924920814914411244070997251511051520157732889162079154903654230719620227081597197127574644222786908320395266347829179065343747623447177233374250593916643295016817352856178722429111215170758649549850078794667466066857492321723725545417136246557436520775849861707628794736716463587489345659612506523371403353747556109085636368958960770529089628741562397477595574666160062317025010584129598629590163252116941128975786483991153625886933080157915920856348666648821553337284462813326998146056516367254836411048855462136485769517437197329140813510037608073292922085280307587503691125755050234860982393913592155939253529575138336876894137021148711584016314755789324182708184194969564482980278051313265966191039655257277527763631620676840823753654237431149185407825501806235854679985086692304884756795691600698706236435344605109191244212119138880190045874507575141228059850422696366909272756886323269885149831928301975849240568709098923512264847815714748799818722414940890165392446231409988148368043365637306151536362218180554452104843637936706375223223096698934965062770155530373050726911543976851453994426925651912783717223734581597956694429854871830048161668880591035742676804103091234897125078505881537907902952850982718827495713487903086700439449008562926650830411373024452865456820363567419628734837601550645433844796414852726611517302033318293424397510641870338269673365716797405825662101281674209695692519456030548682923229797439540281346459736234280459727684308996744631398344504337409178037002126238293391263206291084927446861450200086789734102366845420416854918901337462055337069001906255923665605149180144298302502712024631275424064101251501798598517579266745721105499529977345357796600384824989270283800619460027440939609910697527360464488598092533397405207889962844017136405624890689565701030518662872083722431117092586327316926828265659779733625481627133540466491268224982993467733804308510715495804103608649658729617743588297041837465661041940055287093775258094383683427219323072148194762591960936536900620992071081921068243228480272356922585159623002860630318495955221298619140691457040484591788232144814169848124200233774259537110032322701673250407664230185350294410550861177477372592417721327564317384141745018180768805159212519591498481623168743341812079612498304411426656532305577368369783292428588693016284124626161743562700685973386045528506875008661896102392127786931845268625777702644957855058016056789854464157898361196046968005031221129605071228487644200629466907908208324657540953753755547650054766013102065995785564038389946501386266549554876503808252080683489128123199252846986967162376931291843169466025605877844288644344896410266566810632944235414619474081548271306513031375329247192016661361536743827193127017738912298369900082407208780182056243300725367549709246405591194932479507323292574786237312675457174758715668795596073598931802635349431566062472250601691417047339522835974875843500538178638916974221522773576740266648775641515993515669456274392953602110843925785129774896894752055360093202632370889851031670707941473562597309159786573685734624404818171792620450006349834396684414787191743498445262171898888787993137384302876962607406889518108670032646120210893184863717313155170568168965962317756703591041866176839466202500613878880929905597562625873003690356560068778503254473390375652675458696508858949763010883292631543143447522944305380431509299104837020214763787385521056897998818166256451782967705381276014864817974944532647201081518499386813842970591493266180460482561713486792921149541995953048024419564870696084502415976740413676707764737506450764707046185736334452157478359416546338722199126426145036581133194570742166140729784971190927381373460997350902077151405046611967764506616952200054602873526711656715549996036102245255393268039463606936267912683078661800466335574513366040352677655965968141964970541483896509703906951554738901612714091208237925207202119100599020402584384983329563002231889082448579764646052280446687003517107445082749374452741825905773472482609657637034122695364943920185602795681341059015445428906400812417690123519435960436371815430744341826735434471345373978526264453083543268013582920658291332835821793931337944530458589726550989912755289358647915914419705228922603694785978291649071216392259484698192087163219630180211020060010128907194788937603552948929817277367015304777680705421652874982445205545445049842694628933687034988314926458377307986803628165238121222141029176655023549942395102634304789052284297987524373897751553006531916439963674469647899343462656567081824272154158530579159038207676961249037191405144587141334168843902908535395791125460219129772388581487051616069294693921354252026131506525011401512425246195524888597230809335553432446618669122437892137062707983518943559209627119880767536187031988050974312557632057342042786196333002522345818519422357058542859164282262805549539126524845143801041626348013280765073417657539263539803976637063661248356445666319482595485332137536179143162608480540880669711430632798077647532095932260487351425867470967711145325349398186031593082692702298907632377465125236932524528751978761896371994715482829306013845646609667047229879607574502770007381147249900841862887621511175317894806322801516821409259595917949724710184473285683936320543465548591499448097655594231199455593162286396998882362742575432153302457393287838403334604973908179677985161706921741696369437619597761945310818578559373118912398005919137627044735780529148731572443733681375560159102032438600000601071265637420749090445073732525003930431130292913906998421885695485430104143474427393977337559204431722234738358031837707928708778652425468048019331223983058309086670220063018236479606928351890090136784217589722654705314930704035342886486167735365074050598544909691149899978187697723486565688302570671312165228679421572680984626530807990118796623433900362754154131423378129897603018423768910707287944492124700707544227440022307141805868751931440815038024673786411953529173431416811480386548682613044517775118635290573848912143563934224507680726774257270666670974866390955742765844295806857322518826765546593079537628402974728741330285058423571670206208489010164137008755067618785864488120252999077613300439420093487610721289780671958777313462967858756978949464945047370248512597589233624727107586383986825648337917891283637220816426356038776544780595330207158336534829413402913272027838878824817718201683486680424870680913770739602840162060772027231194627954686718247988334336550535297867484530069400840088835005538504639532468662711523256764928794458305765380577996543316644398065214905785810622698812901390449790300271643606954305163410454992599928092113184975841863298939582046032770560587463821736579587512379417036210049137575221321098110600344984866463062344178223706028908371050846436016138414429886262346877934673958815292901987622846293073656813369482293315772690052746115444351955720220783362215827318566723626585525991710205821863189731868579380822016961352142597128943918201055145228756136090371610714000623591223237710285966861040202139602675219006745633919919206675299355496598366803113631760469126458314318536374098112980783136852323487123827578854294506686120077004281191904049293117278057929441611774948239284954609924720494114943044205898868442112505294351011751792044196401241470860818992472936942597007077866704779190219506005711980649789971325820554090476519984041650685953282184461218973893302828099568268718860952424140471730327202629853642179463279617071548054369765221112057245707791771404659712673648893147559681271780503728868590101409858652057424796871977063497567781891913389242731605403180174862571774835641529260374001325469503607453148234320087483825275316159686455574452691837257012166904499709627128500121806246579744755532730035308062609074662496684391827696823410556909194928544892203206494952478381944921960479830562707116720874389191383035079567364012433317686396323635738487602917772268047111516322922781663670628376818003521987295509049726441032055163957158857900791331819337401030585364621796695440113639808763023485170653798477545971907599539111047878380998614790558583742233828628488285582654348378685559134656351828416354288642841096610951699365480252071440738558897113426977813777543602139837738970403624231248044625587943969663652429510706842737838477882481178440591981271164282963022482833096601090991974179340241137367543708196047896954353081033757890231699673657319745357019774943086008132364561172641470400733928992636668404127960574572120201164163686373322051144621919226822672182152057582948041686211532049285365366232624887101945221596283166439526411082059179176315161099757426131628539028561862698317581666440141384241808768662864347931962880277924649268015494245689878418074524918816459516256615881854766338751221098682558738742586071202703325080470469460758491159707084022590364128714669792149326609530685875108771152231211492045904713651711558441553720171902729417177176691560766206771619164549593118862914822188474922441801767219618264835934124132048062332573838161697541893684815566518019857043788853470595443874952477542823744668529888381850293178937495161557597603598079853382813421693448707366683543747107945734996123132360439498397881379298745972757268389960056378988720902471682940588082976398496727942589023045067380655425725137159345792647864583499966608468392443999052277713517195496919452955763674384294699902510465712295746279476259056307485657858872918309923095522205380048959431735930360677622095019991954590789190464697935215102691752907612685006439581718926783186032712810113482198866306427150700970467586007209208092953136237860080688018087876121313133656868649150072488320347298615083593874795761994752951558098905170320511237324284238169355498358102742935872402248802371318801784905196627685210910407975149087802043899978092085894255716959049296103783215402846005857061527861568730810270130327864032399982620425362875263855013796986890245073763329377469400333272952768216903202200766886273865849273999173066974243309530782024456305671709383534020071110788128259024329807675279435606152863659675889084737303430267555336303688785152894438524709152976314675193078885654531154017487457564858751450986976829011791252141196554020160426577481955195121024128324735298496881672673298782719527884393988253350071857225447567618796756477253829868480199498256333630347711547967282842961857647197052569102184942880737358461888619720118301860500748948140856049647632138548460546884191681189868084130022390414834343168316265591666221897272972847564033529084259298868376292700028293226030305078906805975696282614918569327613418762471718813285541036021867627194016664571845016345759103941859070765864351322662469851310403499578393163397797433893051096189331528928396086025863876106337314887439534430588808084768332935041800172446161579778238064201311560659269346558458432431574494962258053554453208740618829055821769124412931269496958213349293246989508096047109238636688316747876747220237174717576195034081543902673620634198884812231757074430026365763162834403582808659131293625595403484922301616075491378334439440198435381972561315409791279361828535196405105531484680092982825612667576596268902903231564924487141637520615330023072188915529961658223574378078622752085326702352503298108992387141207941076854664122061187001726706287277708230049690108037371655498602469945530376150765785207772961512666427581370832234672525756835631894193335180783397546926202452861517700070656569905917961266378391425927614529520107494058398551914776865669714386585633307495227596332024861626425453067039546212985063326022113852109210474603072983431736858969109545549162138562021970785654884298858255815242628385551136370313508414951032069355888912340441452525436347363036847115421771157164362078477704322977196617721513462190243283683514053622469983642101170483294684026474380551172222008512787507299033234668238846613645252665780546650594559513431209052518823464594570720048658931335442261047061553024438665197072260451158540435262251506406053214617958236523157587206321878227893679329288385918748974482753689409102594930252058300313208893520738179105060434477412048881672341035780813004442656248583862632499870061108573761847482699464654770247088049519618690827446801587104724887058706870808959902635102872337495983360774143771387949751642372131435621532026472571169172601679515602436591239865678383615777144729341508300466798938056955096360958391557632969033861948493168689472539633804105604547614044073849043838305981836191154433818513008018551453499003226542306810382438643640912985817742476673512458736857500543723038578382275359034683413118975072590858786056963424346149975115946984659400252538176052391957916862388967840262411002858329131617534691484155685653522331931590181621871665963843787814924995315959647204192930938622321241940421313183707017829282180195656293401615412240699281005580804296667089616376432986317502758289270262955757730346058891012921243554461800340598378149731372209083185277928071501052274127913379911862028357318968535666208904957338359887677571554962975798222546187246445151878368726876858219146190553155764114839067193835460204095426662225093415678696410411621333527187923403933262262868350222357649216766016359396599909261678243143808384853871910765507519791973729437965213032039106991284634976030023097387637651721250729632279532632866002930723965767375563396734018201059322576640755974712810669730165176242445221423765531087569427823253680636558927739808437636148548776364726905915593154476529541917326928307861064067594793688384360339516340472055828851813109914926765834380711955373679566282482912708580820739310716174039726414953450909056720789502439357394887364682585434657257561301357744541713194259092124946506721387958757145366520804393001205939906480552771585867453875879261885487341601127308884319437669308539309149816947738950550476193564775184269909887016143321616895259910515534538898654558565407611452652603408475832415657524848399360086773165599711940569165845210836355124052609473564494309073007403294422168105372711591900344916196879348068655429388555426790150574853354797540079996852673072476089419473277656676348683371003996444700898148191247206072985335292371039238889851891413038014460520076627103438162740395291729633041349587254890272343283988312252916447554742940277068358200208631655623683523325320798798509878364914917274494975100099681202145538740245272570707910715587443944217860977347714019205379856006795980654663540902305488651845536008659500025064444612815199749524117511684381973115933166742638296631733275843108438660964733301330836743536493586390104291819899734436014331223378385427805624515105627940192730852691522053506529357520750731485232033871027445913777029771791032097507325110637111287560593940834421455463292291682030210011223579531023909480785213673914505935577252317399279371416003045896253346697256720145658025753172700730752710483668536800379568706288288098628930931887402798998706687878518887027819799517719776394597400305502068134746187464340032242328519806113405475304324183855077064243599205426681476631923711295716177646674529654091939213390035053445670672062797106743686457872127922690510519204707339040131100571147634042754575878448900938140473617223710663226111814702416792896672038039437085751839511627001689574588017441757106197847080706400870713233296853455257872156470172698107579256016100077133784367116746382809330059470147834913418767377713796504365025080265702345753265510048253826686096337420703901845666476014501444224046655380075286720400472044275221086000777387715811860515829514586428799460509879377922458190238147073840014617532750876283611777471214711668934290644849868310467998467728666474355984521186946422865687236875029294216497117582641315808157743954842570465980691682538419246191403908771190916560922599377874245280128372840789697500849759225810830141648139418813627021862642473708948942262572487234771934185721932290135602454777496872712677839111883645134672133439720915845711879557342955373730729566764081624127228954327012415358974978840657519973380376849388433661827748484694029064255990994341746600601466534558207879286408737969831996692121632055457895675620858363770352974354949663228410294594853629045943194889991876741717505270452645859153315501881042875405601151327295477098050374678233896615783384381397110498908838116515970401788851954615222732537123229082300478441994981342993837517297244095862609490886505739569256539052925236155737803398826635200534546147609694384715647369551069211759284041226011824743571462630884418838088184233301967924527797092777797522924836514440672648634643541283210035338573066566387847315135623050956547482404916430278101230532882665593321861767128850124094654632892379854239396201917030692163272446660434561609755163684294778984559723292734587607386263839569534135412071428864820952217779514884090678828419298160158181946594690578883474415509273727906816967599427030620610208441310564791333198279304172146709664035983093247781715630568769209452117028644982848698986941866441835203718507836476493347027534708874457831790349377297491770841116699695499429869938815346100026555027349016448818544651715787357932048196317806319013094622689626038652140576174254587369171210717955188762421910961099902239096543971534779098822547313078934644304470771521462178340382657640460812977932104395191071658066425071885981317549455273096723492135730900013882904660719634416332769013984901388232581084950893598868593508694960820940510570716663497910256578774173784924279295747589183346945775899917234769327111080744333516275559993366255984211899875476320751790291416565394917154959304112896858374108479215346104226412296130752161735351713607063336090910299558269627270619047529312065523626272415633353575344461964961665722496288366539955261486794177671933757856394329889543290882052926079192446316050250435289234951014170338572803693129603438165056920705267022942290422888979202543661829488052672977185816595821479801211850383580736709487357793541965926709770854823266968901177090569489480807871892852160574763564355549218009510892013417073031987881839905801964175829181895831114815591811067522316263444420537746650774440696755201363309462471086945669732154105452149479196124679742761771600986351087663690167780829302361753597028846186584044448080368939639357001177023708876753404395906830277482443982721109531929488144279522053048796047633972452882137079214128794684798551760778512552542667929863457917037721802722751748346334170980034190094145207005131248855487346992820213036598330742839255453758862533174109910691683355097261807721624189155018899582881056191968734633467019665125466950363200237595719216193488493607582312068345956713013282704256698128119575444478208011496120338118942422831960929516055395966776092644254589465295863051193016288998201593498232138221925208262171579244033702381767418878077064213876462373722943553937036188233984839527000969664078075183034665603337763489259016687063084633915058913417705477464044571053029476208468676956537929865083222163739682623597703951408618662378897907254301573447241924583194944863956010665275616234358762888223812843435977957141894085051910857715654484336895681797325007086359696288475651227996015595012166836814119511329095307313504071267173219539303277208965029638057911003225363813364274524004973235089002062350512462424239320163001996238470568686604886039627719797814507306829624755276436616520112599813955562622079378629347978665653307948507976869461021682008529523889899744895644345858994162426719552834433994942203803645190024657797673194649419229997814212379795864123844634408930617672253897196758744524989341051272704382560574121154741347636395147123437285424387896496263803051945111770243678054154975279287136198596169431635875487883649059348563548322195824237187809719021583564609917982446119586033525619568606188378207558953317000117719104551487879446197180120990566287655903980453348990492439424741309494736203203995173418924595773686704491516533596786444499532670193489475733246834973735897887770841881187773704288146238179393596597511375649936909862139246850627619442209976441770970426159306297206502296759604532589795704099633114374100164835106853980996882897394670519419999007482014809034767550771348968724214813896210292733060566245714918540859197739645449520281679570717816249412252412324005112436874850667442535012444462990417730251692039240777822684249462760393172529774130472216502110048547224108631503874370402671411075781805881271382168371861222043027052610647913435815274341625320394663064230342658289173104741082403913431989491146475972015411117232803869849093441198707267072442393154537984832712250427803794400046531221110146672173746286543380342813940922359170619575654984710107379625677243672038136029674411800367759422626744697382842745449289301617246292309610846451292462408888190778727399938215653969971845408382062707457416372105383546480991997512995562597485912401559454976457747925996025111456051923864533695111835083355283677624817347482892547403269417240347592131181890480654173831600932650875963864816001527317389876915215703052326141392892266757490756073433166320223310855610117118820159924658840634682549633598296665342290289714544131633489264064244540714930844979212064272893066522503427765464638850767272816632061013378932870690490862130128530488584375951985566661323505844127427505440001506994315961070360875170778198306240542548480816529141096158388684740601192066705947960780970518794451849361944695933933562759500002571281384844039520730587291510514166452230621751293986697559771495145760761509353231046790836716820094219626927047395861898212056392653478645445327205482007240144335528235487421219070133817792374699366091781298939073196971280888348446838316700741401995299320515786514377901090515302180281184997062962931736609340302854649658485917780832562707381157489191963665279044385265815816924354401501977679364427302630991865231163279076234969482123582039238395018668962329943767472537806468725449113155341391870530289172813984712430211399982493626024594166652169948507461679623298991848178987634782566688938997285871296356840419971974047049280729183339350602102202907168711636720272293870674972211173919266748085952213819288068115382828425283025688523437188407303646522216094902993009558008760830360398515545154267823732775263143243792797452220733168263859294799883132641615280440999941226648291429074545852850540650080233006562020702635825588958419944607120483608587403717053895745867011966902528054689591736935628960714559802599220861087514125362778080888955102968338689699379929988924560072501687021253565367279527282138446650484266388189383896489617161356826753627681435030303831225980095601179007498983726269207676436638478863534682361144351072461886083228755590482769733615247129391938391337512336046093768154436655110033217024948347019546873114845267851961707144658170665759246415068908937663827509474660079747135992774639039572571057779835339569269009673465350542235657900516690868795761451873700267249819928890344765180910854609876058906524574716291602640009153322605912563330945262983236353522438459419188290647264265899016110489540979583502620704661013352414465303888836353418912690343132485636833336899649586000017525646304773463003917627892729172930066473720208264368092639240256263419157411823526567280409295364798853635836537581102924727526570591480710552918962507899687583987587243387980884026740833978994812397854903224466086426244340906657153027084567039232358970750368544983286497024164218051695107032453327833207144646413827648814200904606393923799621363009634823066133496063073645391335563175499109909395369281678476274404217214151420503412994215911353401963387430711087860533880440743338987505406418023460323190595093079345552776098405754487990636675698870178974849531080521008665781551480746297104217846571977766074667723277975213917230433663500384203886862880582628398612659410961053778330372061110979878863855859043165464139785120187955924389215514901662454237399473032128079358900014946853282795907332203295548173580588341640267930620404540282087400697738140638354978474333405005693124376346496190668003617772999369051122096340138810778751702134877117819525095901578507940403555256270755136666412150700431183293113602116059594439047082449150377408269120430145127208097023755392167527017141295700740531415104613443841884577466409078466657168527591598652346227413896516866705046033621623958799005749265203223061520762944485835989412112316374769037322627189251095968618428099021032858890566175751379073911743409235238781846390903169477977649804342992285180803817732473820566337774641412233610091796044492746552743872520476923451960185596182706635870692224876434575199034282429436139738280457744086746700687302419785268818328027992720858207337514820509900774425948249610427024450212598908873936091588337718822057653596238401597225467834790366072747683725803125067795661844859106755154885371971294186672397915094337662713865079647469666015295715125953530386246649209096628576464981553862199897662166630572484869731286498004962637430934055093399292747601098193889971551848359737767809045052787081136194554252991542309137435698639267418648752171712243528703061080936776915116600016805112071721481194542961007607778054747071657827808768814130190888690062162007920489778105340306026448904743062454762346602948752619286169785899445013007035032224812121525293800985544080326044513399781839061815493580676142448073602047634313002287149181599799067834424658030410564289460872631246143424862609746857388648520665324918402983556344119399629871588619493043140257503489843248136158569381080772792986279819357677405543449554398881957896380431201889132941803665774241076144520610252975278452937380500640518348668011012663841493016170881717306810851699019122813898540455827118207838402237986490598956983354350990425698476172597336369078847942246246825080941988209963284841598355210984574038698414145114538748224406248302150969213481555635155520586500379091121830930311579683905866372795668240336501641208017412973684090255917759022098910612633523832687816813868158570385544474676397027966156688404457410073977127484088975523580549547373027923103114179533661111157089395980458068214345307977629263572023649702137407041476736557903684301845046558218089349214882743624551790195062741157286660631713128848528078702427087678851597397799373288021104176455205743155929509818670225539594912693967560724990232458653184054190243773801480771291719981494693412408306259947388476697142141653394986738912446887035872778396556390635083590556168536236345148040467060743679639228434934712528435040003430292161903728108670848793040703786359939893377912854378670289352909005882515941700126391275976089852056253663234429535021159909689976096330342308988234916875077795775720853876031411250661281445979087939843777879158744865833917695264467301195846339449003418810087762102380945176955352730093727134623236833905552171355102999733471790624029621522370859373487179099059811690184746958801599080401811011944988556417236596283760029700448304737566326371387632475809614052549861892006288304987325574691520213612278096291652923760575054211727947658646816096581358286787239961443624341802054119425869881485336533823645081488101575591543808900062070528835121700911827657666488810630609052130724078695155263258410264841193806094719963046381057304131879229472259157191308786132104760292863695350495836924196456082658741277316989695036720673921032605114083936633687679782569206904546422545977669275438994026010384009512312706822803840692824759731511460613835623612855151548552804626820666829041986508862440077277601062828377093135866759142009778994580199650232328808592176780215921199450940241500197673560524754234404255007599218777333480191172407956435330152464354459588433244699016402690667225235389365358379982436459027567835194447774891093012853665783430307449505104741817390425442740996136106698718343863926540636264792582655690094832579289494474748323744124547173683692888904798706244929073317573106742801530469415614599631551612238202956343771527286892538131915035244801977657985870546884254823579831881701828940497060822686286222550897190504123642926596668216935686258503767046039361181882145096136850315050784532295502028145169762862431689020886892195271216775760527365921402698813823193437970807472781097144380337742970161332213549005048642105770227944244769540520193827772786892156074962640153214205547041295673915300995595614613588534691069266320470199476890512750783051707112655529768745875783224909341158965297912947327796042804861985954163898987603426245155001240743085619346278802101827752991209859777470170032166941389837900111315788306734524026610093897048416998785023685416462919408301906751832710943025991391642199143308869145253631884625052092679316955313740618747473296207724812786177832818073022876526914647010036234763874287021749637228437336668369512310291440910129819975123642520064184317887947514949068938317360053868213450881912396151906986694118873664238914986019908994126714245992487079258889534492782339677345038410086801684225790391620852596504895316596524356547052266005878467989876196952785830555337962032554071236179377753284302041782582885037091616373640379351735218876517977757837707271541982639583217445189380002893334207630062211365233741529178233409195755518225354789730143153059846406093579226979151584412309398114751008351887497978588258917834992796991517391037977180746288478748836840114226744406042699301320927492735722981551666273694584217718697187518390663689358149438164049927872084801201640973310933798790915312002436263941804934045184268950582063314617362629096362408816698953827951082717394304652364798250140082751093707394002954433290183838510357141980942057542834186353233103073987284818795741301319794699951882348119172173598875902877847463688654575095479856181009955505655936931869159483681956991120730709878977966637750396541959210206964470054421706497135406184159030205650144667662717078492286301567063747981380927602740883793972266070630037617257406039851141160861756703533905609733594963852970239865688093983233041985558348446265317172029386817912705041810095298539141698261500748704420110664016864735657966346232221269830330011648582566466689953235041143946288641105243266502193351918609914039530863284503075797491752007158994826916146124791886825497529700367441656435882643706014579980826440761159474352523992855336545655109537877035462346814800759899039296130796201724708252435424881713908225199067962140291415380804829334552141828938311081478340915364191021141419868864186164638339532913811964667820638945003361097231057717625872507873641551121702144282593666770958240563760586058715477584456049238907210247078114428512810398714396910198245973204786633411162442005867954834201745535788081051626142758772396671649754722734176322558314388649041616745545643634140441872811570376887444672401091469119519054186922743944633591027896827774465141581646297828068741940501932518934694195175571346184392163600161739753611722708758757375343242864908621292808557332913448553066106478534389108412025720650597150720140687804467753622416475585190811083733629174514493435236957780086471223638158189913147646235619608832162039541462212574947617150046111777547126910915671949032685998422880894092791652161014219148023080546505604420088654907226091626647179622685484598829382273770711270724396265490728327565471295203409037192781509886515490411698555524553435753254884838628640424093741499297220650882053315388985110383038026081305989103842489952000849165887179808300783650166504765240504024250815116647542125774028657503784003931981854709905077736407718623277934547754931995182825901357430252496063132112585678557812357435248161262759612454163625735694659116848507885333566839902616133771728829288582775361036744596253388092719890010931856737955784122001837844552388456867917705585727768760055578902112987414766229418518990282022077616688675253735175275848282943803107703972699122462274186092628065221001635243671367285934923374801512782833516284369889316376908583859553523655565318740866569648723686338280245919194328392477445679931087825920619073804280331972644414028411126119329432146390400923138115923633760928660935633876759232238932986850542572662216047485647576872605341879037912964395572141834872274419995214931872139785252228100920866927581359082188951017424441715922488698173560228354849757533874214303987068329995013282477022437012140696178053685453676419494667661062647559947191608013837537331010895659779676379946677049788370289736554322511093235022570275941315069886735785099752772002080202270949798456777257447138221657679355959611467755762578092801758411872173228916500988048360322665567699988499585010235302001754075287535154236092714961812923987262019288335058765844131164480641601142341781005970254800072875058676391342963948967125045891784707735114022237548958077983841895997818942318069861814231741686939208604315994936393180405755568608345238598130571926315285784444473320205453597180394211423260108449808795721159519145509685911672055152175006999205085421649008657864853352209812933612087101806990441640750454005253399963916373823337109159447801985937772513226096629553254966925414243995385397369074690931047527683235118166132888909098293859665331036419411041549339500594382245750558135608419730876123147203443753462641625546770813618563938889015274132154195712702199493024075108488392498013778231284008565411786697885139439335590366383142675528194577091214429634646322075340895619135658017289729489242818723898071779233810677171651376993245812091678036523386208514522376594548858084830484255879792462857982149749723175610647890218684884755109469230820613934674983129189288655989904963974524432852882097947574739058109659113304191167363795595728991050115982960331134796010458547047427043612913558581673434420568450447957386753453251286751608471375198171968412075582348569165815949533328128761587329560865351630574441266639735811921624472072509959472160556793874544155913432782477301931230673256314799709949576893258770915873635693077942108007973880854124725122231041740851600839440589745558152174254835406928174932340252858580708209264185589754509968504898045822960466717757202370051932574511906150310654796423223409701197618902462189548213774025262971115270832541283281333395135185161432395088969873150553747820381483326798286764304433899090023275168653916072323224807051572979522782948680160134219584562279946463686005796919851065106628951822645942702213869802977722346158643867969379670665961229760799885990607135342771826365282545040559288433083715495663529488397372700383924269425434938815357068829460652912212049874503722689195313927175301890737879959191819449699216167469222069344134238922930242495403061571463920092412283505600699684062009472513212786147304160818941360147891333840543944235849956593417812346882993953660940794731749485474228115301391124122349690649847089308157892331390961686288606610589183197136757248913677371773482911401929820714935027331401888694376906909312757109961133671385683711342786782626423767917334704644656591122984625885711226124369902705784286610056252069296363206957675196994820992411681737860676591627806967967329513085044533143074434896100483920178820760916195123549673069702917894350029554787760478835674474355951072917760792773109284883633179887739054758031976177330151692843862223720059350802429225508261543591477536076880742679654167947050623911499752097404800019130131979785628234999978743447126978583181553015569451128240714637771088410729376714169247214669591044871286428169477301628306487621664925664469020547512398730211139359197981082290036322936362737685453299607915940110679855113326084153712542812960663918771536007412057020077721288123591313768560582116346626031628122355112354624806817351977820762137422007693315271435163131970596896721324174938036153445558760889023672694621250662136786961150889548684210368375577155901695886244614603876132124147357950817575561558850264316125731495927921085329640014614409072100088469307958631931300789355454016692167154880002616257270474700284379100444734339613737062781483343424081241843531643362454540945516068397929218956232352483492991017047286887358132187990959066835850416493012042555251743042668602714204457140507418756720791191505442877560679184095108781248163160407080832855118869237379795938271847899133065112599354649468171719202296695242388327589539973313209044940404509527431242386517850784058768486499058493278818617261048240224356926337291120739912947684350255161560889474251629904683391261457869946721237456263088441238082635957675711091641250346562308204909919010814873473855881420736216450977545969656586605296404362237372384842700790709487082138015062774058897277471322516235681464798575136893783112069082735303292126857214261597560342177177861521192258792415016584638770977180905670707956369433501145860189649694163916062719501675667596891625775415456270714015380381040760928262060441149085596020754681274364562565371012117635518960111844736995527908706498031377017720966420800830277929587575270918150923822565932803277753368474507285216067609382383629519276375276077622650924419849029179613496709469738400635081166235228843158586374525238176264108916774710169847653809000881613277859629584403203010741865880000879797447456225054985626024567238861366492269335926905502438859380907032443981983534980220141221392581060328117099229257338458985082169072924884464218933395268573842280041475581375516728784088634145209215174207579832882675824352826914697156768359558461544503363499110956218389220342949933818585245949926457441617288261704242654186361398357545737635021145297024440463550790299058701769416510936691051421170676711087415465001075648254945255060687916066605418219191499024301561818758176310060985063551074141578308956687474367727321534041972087377283274887017273834441152691844338502406016762266749643983777931873551013311063607133336959948896941323176950316959106980683796902476487878381381489631360675285099705675766085215894675383859915824881291438626388021530002963898064602782261022235648646227287483343241402990209037130916174158204026825170665874611041957496837125375073601797878747477198421939216454648407146738648483842467295691079460543065351476187736610967762642116637715854899381149955606744443344133632373099737941234728049647616559583685042761898457783338410464647382914117225455889826014725327086665721346091653820902307732633864185803148988992677396188388974848526819617771017989094359574868618040100708122702374899188133669811675149026872441767677014250864589282808756400586220069021204787708917241665167216015072609116149620451620290302373857848738088284811536700404642953365264573053844773006978731643490651629461932549557497336681124398007720405562524610250946297668015939335521177721407788735036188107211817372755470913517937752968959424011505713868273325364757704231005233717983603273582671195392223123828086879694124619941779831447178497904008968763825065638978753465363351741871145141777159464782959925257609371699792007626329997898114907310652453128935088502120069022149934374093157885475332881958016428252677069522000391273636641132371232163433985321772591596536992502816182467109255582094389266831646682057598885903649841212890577435999081200770578287328429891369760423880420985675816667097935509694031592917108081178000274229640457956415705726510928001408587048249622404349527234444003862542078641476415383555075159325339355455685332860732551152576118926968351600917654424526137746200985481178199324430189875284290786349938795299584861405471813344794106025834946096919910304290792803006564406360702432126673771625427723308164071664493065524529879510810654434627864936238578699490374012485137666550802570137694954704223085426028035861939927894429651170906184994997486226303368700476456625527130502509049030399270331130654873298182150837600400000801450217486896029289911551934866727909964687419903884285062619724197919767060241247263500566639810995102607007652412649670479418697909268725344114395800863687739922959491852171634736756911613284263571680556995181696963460881368321341931563505223693572109463894526179110785790625182726967355256740134224650137366211892655143738202944056663523949102023354637809480573357676814267243754638999492808872917614549125182143462016333466036252231390207542737963485920137229726665023649192448914511827984056887565237572464132263606298420598411786588702865368676491123389409051196610028338418000513845514393847347139258870557198411550141676229642860505670592351989689588015182758528891053453665510565869091549763044361169695288346076232606453679346865302454250457114697307790577495879431859631411111119249857090149634347647643158539078700667250536818966354809053741435533347076546182783075866340851180851284925416738851803280378644575035314302137746135177687413122114324646320378712787864048496382432616562066130235925460337447503894526149263840365750874498425026662963708428119496581574500372117816303222440494303391617484233892944696060006877305986023550793046272434144699287681346377311281624228761339500298952478884280130410561792162033372458320521387347378496529460192056038196459911742240365578074324736713266905364906397944642702946849539582559410299528088170278776927446720621039904576682141079592102328697827202573591146351232883004980138691769747490875650305790609821742450270917898622762043697412917725700799758220616056904728916255893788359987846571006575230257043768965989880034605009848410278240723778413292496389709330996760466948078421015400887567518585843745794448840583010535895625546870404542263288100536048384289186385823704272496220122687196872464008905010407376674019046193762854185053368745781542141588211828442088238416649615908500418588467547412771693526328390626108069201053001384076887829125964641363659074579092917167398274622036487100065327200474996561117629422227496092897489588455106566223054035021002053711457046353851215506276943960062980294722459517948671320831081077002999991933648394264379994719360377124303586615790276093395463348292328931472767889214825932681763415856884268176705925353465969410195605283747031751403162490085399208583685520685452008569186871956659465019644280848266244015721577618894269934000238264765818193700815814694159695008658244369360701427686651080221657981258259549262896506168497199090945895236058841544287223066887632595552363947517842995232636162815912723128464205497518217603123234650998213615203338362339552153206244716749406651188134547975531277372465327935383602616719760581272423758445293050051439362029045480094252284211654588741131298057707515619036328428958590393749088973518417626046214482410007380954172778916644698295788256764352210873005526791304759557699098482283665524390174909750198562998256220549844368218456401525158848451945118463034448569438681496067187459309796717239305174875417470820077507921739844596061609692157007081717884479380431706684947802177998215642961400677047839654519206649124923994379579917221460053529404184625536723182419030891031412825471561435131200551929166710909751422049006106732327478777365304991663005904600359172672415130158683899748241255934942448682405252601593392965804948464603173173370580345524286400562991895240247922641109308662752671134565981140772312931567282007218619528576545227135888516518831845074407819331221147867416548849813293529786740455356697279562334893653491119985356656848470373396080520132930665002644200105777953639208463817595141897740542989641157478296143300628190558667278152097681271838831541567277761170133920455504682083831736705729533652457235853385654512313806299479875203829727107798458497940002411854550356721693610520802379265118288471601480931328351125292431663914110915937419046557561065091344285418809870769294513063092356537331701303211926118323547086132522537236596693188070510992897209212520931050826513877689073611085183946022157076475290526007880165684940321627752876542057063180187197433053036059921575652249691642665746131262945989871967276374261746491381848675523613605544880923712047494081720324032351751963863329952105813490477959235730581062004441043575459236411887353526054275702979080626328766088503973318253070385427759363694558846496674632231753644914089379039887035708723463593533502029381810199131894479340384712408468989673183187524782490822332677503201622999833773541787340463153710682530090545599113475383582426890898662373285480894216941906983936415924091594977286213697279629338130688690537245477470811374755278563666189192155991553463653168715874403727122736273549787530264648752674462674307340735920949548837555868788520657498017127767240501182115779215483172144426613886251869000644471237761174473458366510884454537620663927411748982519244077374253847023863290861008139118782285378137593232445812512712937428573773604582848406033101698510902443709602823385459879886995631291725505260746450993534988853761719071377004737079465146367209705688074957516986871636353818594410446231633505292012956279256058560793963215846060092364643494120831084616964981055683072455576879798351459502886733660629446508568316828040972689503581073842313786914373011526569645657832725558912897532631377536757605021593635817022306691357517815351398207486729901159590887068877821295408739460834353555948611084302990376065344119102334022956096724174522353975162543148801841451651513137270541688871659090297873730568898521360730780100042385561771980374475210246718007250766447608282209560975345550841881655342282215153451048034885062230646404674716346025631312654599893889472790649628223878800832359256843776094127858192627027533351463711388513393913926891308913516970620831198198531969518333579749411221122417973424155141809299455751308419765154267796330845642834326254188302989606467611962588098313902023507905632497971499370542567315379712751695106730103647724824870279246839269242543148429423532234413365622804581061502693916459225288520099194388974843877327904347874650706698218819845424539934793233634923118487391923541298691284408582485615335154110575293269950592846377367861827978887981640809040087260077782781618588538172551656586133792600777644321093543062340900425232999374820722375947467244134108750841255486030192905167461077295168528964247682677655924740661141992160153017147609638011298971394490646827890686271264984578471837358916679941730034207810559866218964811889443729703247733373802919977223887296652085302602273764305933533791996676439129919050844259714549784566072029095688658097048846835779439372412086757550343567142343483105033357419278123402013869995650015763493908866118247443586041504594242402041225546388642763687450754035865645793609579930332166015083790944819513779785141859655808070849154023661852766868436161526836840823565933078161703772527355586813294007245300852840774358022668822077151979528888429070032787006178789492612227339634914218074112407917289412527278805296624138609765624010348728986395391828101646919454351656162378043911014524329713753083406957040673152760379339632102347725976139035880352900179887820365020180787003903791184948598616139414863647423119342095907553965136870829097228019576507905864442874686669193527246885992181856425564418392571633223412126722098205664317047540920798261926552736359242005219322637379297879719244222672211718826657968104840172552815551478628089391692774993923711651218588492549046749808087104273179850647491026170079915869996511764859909660316416495056608356642743604852881750246112951016064890550322844095752845602300429184006606231783863551864249614810246796610947695451611981247809452206117053243575890626036558545917749973412330031090249096925792130512555779029501711869906680030085733287373252671051790628032652170410809926319080970945936022453211490219240004466511370340538188070402778060684540742962273248408020720072768331322956108465284442861781544133378777530963795964198253336870124304026813840734418848076062309784186012571244303155680723160136097718428680243967409502637105560849646260432426800269983535945259004199395902991723572872744189014895485449954230974679708798205427914063850674428448009203712303946632897711756965593609744695066558739055291189305475400409169631698305666119681972072538063050435681553284865769252588584673975596674907003244289108481161297219965464032667258312268885488159241008963645363944536637350502168282239892444970530780952536864484314372196850056239031836855712715864840377699173287684769508268911210432303854880608448407291530571766372402875518064495166767341867845300524263511326910202062819377161338910168132348701358044436919911224754793656210023583984189529328937497470116191936703899437736987465186642209181894442017325542037699930412082897741532918969037584415572852466405899533533334143093446360603261879418619438411283768557900358883900274076555458176469219964769047910734250489638125366152752402811182111609774372920039044020564537518102215869330499037313759208153567360350334853073411542344790523514951615844621398216987066474918289202439931631833006916548129183438803691198162196164338906099715576835384210553473726615417804881345537852133276338618023460183335469168245732321644576604499917339613509019176415307937734649142960052237526916782793648806742403385626616193779753480440699526334874602290858306910276621743666837670658908120620554261209961347028367564837619439799488580736943442994886238574223225267877768993995346769046431959871553801251782540049362517447390407377827642363804151162817803322186291618818322242786284445294924043482612003336636822279911491187601384625836637362657774825646227698078821612608757061807502961316310488415750692664276935565303968436445702189754752490142782269454303217921563040688767696681202859931059856168016906157942812799761678012644252114584293542800059310059613509563799247657088621957411749063143574945533672400837754841942042299562136708155553302390894383457947834266343782230865989501339686077584505568563534072194842179259249392432557420771694150613109679208416003012153164676690837851600210134413632328036112326190379045416374342506353313918786963894125025850713098088032551651408763593336446398806004950869716336025638485169879502766653223504076080016495898401791896011599831229406883031719099124146547246938542945592465765359619048196969628270998234960384675025885611616027632454349226364166220347389416742232800944244837350482728943325072281115904392354762702770636736527667591789978047306143648316200749687649169297609136386754031390063503168143338913156168845364379725278573979573812475381276889704738046785988620013861251804776239510061003937193932724422468915111291285533856771563473017195946897223959114305058281614102399228250496877709678789379235240871062720212268706097656571451208875219455897549307759886417281507499626173849382653941516002441856140322818576766523869700380222525731128005312568560461667413677392458785844522320923531396687381579073087825542704672678450217979149964638904252908224383981906971759200210338743811250072719502761569119805025065451959005493274172543253860321010266695085002215381642423327383230466826693312242849581866228644753631557775696306319002890395227354529772862950919003315857882686299843552763347613837867505617495699285781968308775589258059613225461054027718722017369571785641614711724473916890162430151956993705610558372074265492761775095739321542128180629995569446517500440876892227057519547055950944817113384065182719694266205304465816106712586219166875846768832285975641534042710203266772043087841155642221880333961175127351545051839632698591149989147843710161581795985189680945336390730905105062815920635226095604428589877347864237034184916562611701623872315303700655011319089516692664353959829979504445717604766651527340180333064543611318075435799199977922476668613165139449683820398213334648021042823762448445471293660769031517273594252101465911596546354545715644686880859204339129040780367964055470081176188815670814060422777046433510608429747000897274997597082092218197912439031439283922413035312222442874100726360520315137022805004560409472719436501905218936340007802604712928571412442489427403376137818378615553825602873325615181026487980350118255414694189412778732513869731010062130087582930847145002302139952966164701347869955746802696154974707648625847170963993964195456027844846319666345290091999802119055935787779468955234495431505474657005528916253942472193387220676128200351083288822684444323623777657478455078505900589710491927649654827566509029620704590310542576035981913059555800058311864356357447491300906626188701865896119408151539884222227555809839475417842664235894892760825707421428292694918769164442577667078480889171631737784497699640094805661510134914172399598174130443016756648890923985392527601796624816734712712817548626576216540508254267778956650782865936807087553079734087385318605872534353320651382621071883950880265748683494271718338910473733739663987307333507977603417490578527899487545322439470154450857457586838053593948950711336842505562621406169121617231977646928888427807680305530767758102276216694341719633723766606736352235392466687772279463879969286616411319017557123801812816006974688082071199446870659959307120246149183595481070241491620119467834931534942453863313334040900087675425010290365990658199284478597895094014937599196243683988322001685831308534451099755221326682323948103479025179442749087097375291277839728281566131306238557163212339829626476678290139272894254746222505329894918951221940001170008339044957080418487363049851652823102493285233673199674462287636924762015725713792508386130026693317740120932915455653187026466735705118784957358287658341649597863727210027017801932532179459625525327748802552523471153946480946329477905208406682066680281238139080885334197099362348407649070404528783627914753182785821342910663520003793980175390838502944728071727960912824119791355521052313441204352698296163074354813182301846008616565996871826006749183235707885264093732263319009046046952058798296343500507389796358066124485321893721341363333742110712416555467318223570451136001570451531781760654205751166682449922611220641992673371351208504639115552682044101691920572953138096708099501664566060320364594495473899362604617726872480021418285280681363710725957455061641242805473929668118273192371267754944129044555430611188527977282521555970934523495516136470475760621872559110590916519849864832699291603462115548725909107993469035282297175625032897154986670080810274365945236900107027434283470060216084076297430417220557364117982062414800659936842766905942953163515067995750643121486886584834585982381402577024876925502234502330393680087320151165911067599527499079675668970030686436946133424204100031729487089311601792192499489303938506706041291052019307238403399374903828328338453128508775403507418859595542846144087904180818972485023258745038525743449966509890333015633951452980251452017312078204491158353359133308810728176239329335607211441144918938943919403973568256929364718271464943116155191150778081421410244538080816983964822852463060814414949799305911538236393649354281430899137829024587963425982044314160346804989122516267662739610071944550776152285890496771590671029815318799215692059563734228783734321376182922731148663261766784868186538846371595143983624423197024571684251269247699131357829334081738327293993508915957309875400623134394531534692579555637579217257474957885890838787121698777023823845162394973304345443521835992918475799769029620978324836714994793402318031261233839139679707794222205618626802381680530940449670354319962504277695895079980002535723891283519902198259202428212110831130845663937988160865344453919247078603254249618885116005226958606465495500636825935787170157893216470493529618617700752931850532285379553806996539492813578341223522610173215237602048326285417229871673458439957108275836167254464924723121927807376532953933951731582342202051001536202928036495701419567998164564422144751477512050578531312404695714247734842166711541559436214268076564473126734875220666624407040040252429578521621697294458381655361839643276005453076420270491237285441736255230957449783266535577352724774071725262011086570523673308086661191110088341399905733701827517213410415258987189980545838731196950657702580598778744087614407109663357896684231444441799639434319209134203602564933466224678847275484618168562674385607826116024002807224261918601581852276225553818821882112967857976036878990688228579472801186331353234440784680401305481900480947171872146921910722496110257772342407958221537226679930178337799403950169748558814223490162958109645519893146798282381643715439328693479187938086287381382601877192505253225875670091008335729742710388253944390502846811935628853894144739516702889627059260320692151427232457502713584331709332870975547693037072143803424542090670585390076352732847619050088673127135416788874749506805261253267218743134435934273856347041881784430841126786095067901150848715774770171134343769865960455601086773206107748582743885881150622482585961619250297181449877090623021195595918165233120437032152693456764375606032383984449989053223335777635864788840451151884865812336129159356717779251168477629364364602773221336795749895366850032559553522647249544430892813803544162745002628478967093102298417578399680336972596450744593684841665205291002244679804448974393884416499492865253422895245281980689576175052946643137280828880402822807000210468085315290165635338792421022086372784132506699454371712440964476049444415567101010951021639919675150735488766451918892746060993788964566573207734067395527428818798126786572008142858871572722929490331011679769287706392048611831364312289806044129996999652529181096507781797940236971702032194846123804222975186933315088578654744709058055926347358166297648970294947326819017428529920170047630820889658149483807640272109398599564637893118312645544803465931635905839168774892227511181569692762560460626893076172257816643987725077441231079824823180444355935593235505107593246610658403628244383810057805853600049954051323311178262371158624222567443976620596916528918665139338894069254511845612418333221401638664239749059120513072607129109175280471005398267063142486628269829103027841861906552188935708155949560267966915437493117444382116763876369669842614143674715068253396065673467292846009815063998237723814217354178815781304598198209526453281585708377917606132754304597874419863682494646752472493190862291961392603903074498861370734713013446664977319033285190595968368982262321857021606151830127284966565682828192814197582632049594947552137695890122088651074100008835738916279682795970625325510960758920129689517140059590141547952782498074472089888714653715976012235911457350034570390020504812678912607024295149990518546686535855926350514253712700237339460536000836282404053014266028668180394381997736053585550882008565998594282485864046504510754556985424402818236057319078970115214885315376765888546692717191628019823717757632066635242498334590236035645406615644482483137490151247274829296547196429173995095355204254203337510894750601076869762973994916055134911166602524894066196069131881713590845122860978365635292457800602444778634487833097464282156946493510974846552301131948180407495713915047951215468239139145179771736650729287647757735340876002249503395788821933939551758606618973170061048674195403040467891204872973520839069213886407691268648623710881632246196196895571857966507620651124002850042839116538780226152601052413301512581515060563429683996333226783160724718635311027102448947311031676720725462956731089950479282292681161212603623906796535736761797047543545456821545796901519626906603027505081250020556995290547597353715553854127664827390949179118781038189005423366610320208850083487741990554428106131249031755181379638718990976752081644250789113630426645411018501370546712215053150264680541002589397621474006556817834601334858984942310964901432088786623031682662411124967640217073386951443833102910802879521417522609917979546352701332167369284343345887404625546032875082532259722137165697437421966763153287609481790189964069116704089364596379947026092067852679012228609517089101481135630541948081995901963081017605148479822578469198851202719178798243257964366669050686566489626879587907653634241418697183507015195015268161134253861855035744461531833950518290372071028152323185885526656437634456831814007509783862916300983613424760853005758268154543791226039985487234170398620591545602048780347705955897961357217108617402825937328123103135756119455269888456336620244863800499611009377850546544693621766788311718832195180325444885936648866298137457663025006250332141707806153160220103018940630410393233869675842156908410768175178030169667677363090773197497338291565602594019448767592008632106907706504268126814868847752225399781204864619138654855359747191742094053593712908725905593090643720751686988588881447001004540113038646076695898493526017929482252458629556822390975690103295969340026862664362501336946644165191107461827258191035106856134136499448667420402561813769211936328572094731726981995352388690742376222030334657314763775937638455183718397457096891569433351702212204779689277299731320357736116768264914151069626059480765518289861177896204304027040224562895161177780015667916497856663657646610296108095232812359852020578956020571982566631268285122258688334245410942085072594811692075150035979568767355760924297129052620878710934362740015069358056626479338148953768455144042680963148372860829281390408734862388899820150773705739290669280583090963882207033605481317374284637220552979791152668770847042188238006972466670449409139430504276477195784825722670205368409049032357084736092001881172782224686414935892944779176450149744751326692128520796064239364245431091068472632702603262869091123100176120960962773634612122819383408968454593361282590849213575761245995499256881428140079188191567988801403178273717421833856266732960413943696922859571402188758601186171437498284399009877203170731890245219264287079600604650916065564467537279971107438361170369154749838793510069361104788834891880518865343884217806531674935277341958388652305055909074378504457447374057086466611404164059471442341395261652217330464493364829859865897670192321285395404455184226220249521479435470959928600613503773382923872753650188156891505979257174274459652004543747795067005701372422489959117821322429690823016485633093416506341013820674545544038540342527664723555769453293885049236954540381202191896146003769927163403811145476597729380392102772997654177219934971825067661116648079109714937902275991358368562113267308456830025059651828340183923280863666841030810068802679383355663541821014951948745220518850817994127951691984132129368912271514713082145162652612403583168363195297096313227962404514904931890609865319935752169601498786949900555209941982300718708992407491715994179178763426361123039769194917841144243180444699473846141218984302399827682857259679832945004514187725946615284615818693094279258325087107036654517809465977971137570471610333438353833383774013256968512590759888292052028042758537134731348222042172292635398653301592225515535251350460146721480483587586054545945258528460553119112624166842642158498125947479915806079567384116861369178318558292786669285457703923746317948998803013969225000876524593606855375531943394993933830980461419076230293831984683535344013324909415259686382694166886776821995932614728539493646171713221226617352096535904944720264879857556537541990598625456482288294679969937233903415409280959206333728907239743314937794094597388292769002293323038246399294912824307457261098831905204638802779630146318309181800201798305732656183098796283569436201647693619800730152620066779258544180228176480225897350053603586203857374304330818935972958052650467209500073128119793301809645491129061586151845162839517589395228527628835487627296296327535775897772642803663278617994246878739166527710905358034638721784465509115031053865563978202320296483871899858759460915603690411821977892762369487466031866710147589370048069757589667412807244067441596666262282319628315631829509786923906591699401521024702910764792067814365068772961836673360761027566832630815566904221692550972867624999549137334445366688198563638399555258454273421238952120284491470693258230330224817293057286242031132529522142126958326018504683123970230948780791796699512211614363109715738236886407557673965921168007265143797999635574456252699146711005504352580425409035209316671042996535856361839217771856508890518892962573917696005593922008504166596551334308808419149651452546135655112351910521247664408842318194407047047889789680555837748636793435169387940391353780780976369899509260101638690505417059825112015999800535552580498941047902107484486437568813666336487012876433671616005980739662301431732073607261483434235668013629505076498261713271297480794875018760739466788257294976277068294215548521867001939607863906876667349736236877208426548457202518705086241189879141064049509578181495136541660648957954743240073406619208007016000677849839752783174181092060526841784016351538995098760213895128488092139292468593203122176389329721619807053458229190016476336388595601151854050127406645464035647371076855701832557865852558014174263071562872544959208402103787512261166602198996298230800160306446181342143359724100278097732088393216125197018368476110456004163584428379013499081266167489871589783176898642812131092217275665388002408495246254457492008577691633483595911995952072766503690170790672709848695610556349935823708932792940773180567216452081060150389058008954641280833647524786283545723395635417947673635365658419763343493880756035148826641130625236882211293573790961560926143363924144692494219608281640128692411599595574665183220162196492372460648431896516372681885214341815280343310351250657035578529739650606120961739214603047251331046288921806526401563333713974637008496963576030250876194736673620703868547844166041769867947963938618119112052266833280014494041763714625673996048617498831712810362882487644105784761797698810066631443307277179842990097703225011413217015359629984900353421151878232779034883324504143683713192675876264902978582900808133320279662530273817323120740823810178394893360999379341242160014025148132530597112441182623748597513142030270957215932964579068822483038571319971822811807195871864632107925938784909992065563109878347849069194058983761712459663685278996869239118626192226188238933657491434996230879405385751582338874833790799103734300534857961242698072654679096493050632579486937324417736377001758714065374966897725411044939836551072854454150015715246748029070873381490035714518029561152480440571315413862171449071554009756468378470242445070825055690118574408326653801206968902980913031371891379754905916420521869433313448097901329650638121010906718394606383874605995336908552024186003165993057819820847815773605890593610808335437468297350230275825619475585586188870837160564045447705889544050858248315435406384742635113083531799423376934468424647202710557304679834637630822235244940504146235295596101481731416617557565721771343609238339079064845250047767108085504545317295484245546226008370265736060640754060677471865211013179614551934874491193642941139879635826159885302354337334027467902191467438207798939597737935791279956557073996858079858868525246455677687991715847823236818073984016756191740876261716730767300295448258687561597628413550190913504942638371851379211529882045386823797193855499553591818915095339664623963141331576839058436874695416756782395470685939288219747228788516405656385664657152093196340847004222785340423169294206947817845528144405880401677237915346280947878504787324369011493373846151394128749035489445609794889878717602049006590783471703838700714315063959675621394950361451207603318345983696596379149200820660724162219152283693215815365436437957211724938459407981361280840367440473201637849872509232676970003473989319506431914473196411520878320589435762140738292272908576384606734400135423103535944785135706323498825698077037314865197192440316909678989611330946620404051479325233187908047409195491471639835049958956634558815409874208069253554029945504881060288802417803150885324891505779803707992030535767711838389440356582799899100708658039245725414092122783690938869886687642140746345265299033173838905648392189261943370523057638066530842548622740948834308073507097517758345354477045407877217729988115148496685747292444122410486221869461443285276569135490012448023084857488274628529100973022088949601252121584098875485416964620565395695842717875535249724973668947120332696217550523173866479135233529298519392432114958493781138249003598677124953857418025496772489501809263386847021289899607162796336013087106217556636779398337676319923590931925016476010121523349828120841586476949565292114695987012703634142309383039662887963131722286856076666172156476266450430723153627261388093773092117940366079387742529886557560535472250804192839294110283486372494637970249962807978472925855494219528740113006715795453903916200866089439647749546096356905381687794250104617715871537635433223924993708695120722236515534521493220981560457451904863074897582889995833442508057887591984062920663180964476134787554298849934112390375356128252624851711963220403126071982628366417079548421131868337753605332886897615041925017296908601206162248256094146167961216954764758691588404885698243644733165976499486681961305559565733285137413802348351371793738214158580168221778979526551527023642470370705011752517959265844589327155519523787028014057686991331596539204269855518516572168381103112632519479102556553590562261643044100412220393302955567664041296015258740942433260959316487820299959835465930428125254544228727378800818935282396614529498397205018797092771688274334767302925835305112713134388168737091279403269346678146768077816118856078569281645746341017950001590218759721430626691372284504274825890091497140178922391086630493944349247897376232056500804175620952338217727659981950865636484279970745411038551363451436709221038591582179794478177097765159692367758842411952977720601693974275618710426437562423535532761004422891831183302379202934140534260026300821676763640203077043242682477715130415712279438661990515098092121973010434601540713109901392700301891172519200027525514470466169271275369128815444944239617258936056259940351772499024817955031055672540802091070000024440385274964428646401770895166876354428968619797710550402708098274674627002294685486574081305983560901722050006029751246996773396424735019148110922338679680256245793322147861206951483948106245936137738681106475376358101859577384828375734677236343672252268637741159396245448306927054610850278706940536973096285818374671250137731882237017485069689323045069896287620656631348285577628633428002813270912162087176558026475131758490467581519964903644799438670490526957605311123774412816318460777368342560628192675612121661240524217290244509810046217378450323270898104986365789972418958464769204989332444493348159264160800662609805995073945894268714210923959779414973493669463497953914377359238425677795322342991944573075129274552198627697787260316550614263529769663741790533817718810103165267735173126761701944901871706152383770733305883192932947017468467482148916776555935792054889915842604996765431549050827093316331708469229516675509349267218024071645066566717029574383163632562193585438360935784928925969981262269356264231353256922274325198772556471521479170255613217185291954187178117593060899806091806202032120786173676655562909707736316745322568641317261782257976646066769535473205604621997295028784934936550523633299953254863579474794549031461197453411860868427397220570952795217885629521564329062711155481975789590110165495208254638182609508869714304524279880162702918662544111187174184012120796065441948825430170102889581447475044992295781487539874752731422277306529257579698526674284776779856636281724251394497758431998594367021616859532064390856033331014579631724034455620634065737853238706412805020281616711753946476897466695154882852922201607996895954808375690718951758404836833104358514126119488393174926752548519167303981531505347948174598582039756898460610207956118527348329674008956372886515504507073482025050738991214082644401501157401268549813071330303565047838422020450925336347400137081043352764659887375344924332219121225762391751793637314849554946436953476712619536899526988733609364880794961821590656584523594597038801153784748959811892511465868679826483292357029125101651260725066230071711811035205562869558600768260028923737420680222848965434448579969243403350428253069531783509308988970737334477987917050361717025791653439816012974241337566269808729579814149805674604153488470180720805500927159043098302169076497468216669626439037380608300278685978846800115609916130743845705124781906247522756736803880853633409328161397806842111888095821385080155078946597410195944666275368146967331944955257837760244092025468053510732835926059183575766173242248000949825341768657699721821090187923440266511495299009030056494160458426726206467389799195163168311909907000772042800740313162010387069276370155079551489859758322356521070433705577398870867604362397312146024373759720842362507547764885099406303840582500618308917123794995002349373485697057172415588873742879901260985884838646263190593137253527939067627768612931425141418612300866894309249530234163559456498372973346559634140344936337771644968569746181861573490659846578106371494308624798829482145923270221469210258117526561731175021109654403089418601310587065258582994960752810801623269055069381955993694248617937527235806091873033066449294670285291984406019274323442429299219355442064306724446687886533488184460443210533473243567659687314731115075963233100877803461970824478609829295062020224902909366792744811067716185290654861170274224980359876852110227656376204218947513806109777112690231390132327998948402662727157323391267771807661200669160902084630614604939480611039323051919786334335944818522701826485329583651519043553455287764083997321942922163118215387403587405367064991696143768071102808558678497274798226797701339663738162329211963624427573322407408911777892396108433537093166802890799821776429476251954066966241571215765836671776654102997458974032512323868718857135368693157542811598629372575679509181055294909948325765421093100078233629415770004034159413629114671997447345835418176486207852495524262519217260811136188115359123717885523687637744569859210676214961455758963258588138393855153554557211493518930715047911447023911522450338246631601450252349375124189822058213790740428667529225852552745783720082587430826136308605679201808094689896147693042806257290751179750958659475257644653960056160591299026200026914011754796207843784703207504189914646877057204955864412069485503219828008155445224883052798019020142017439352169565781885863474890957159092336050396355055244224571283532407063317913208071793156266290736697367950226213100852330510387186286326972122666763743716612675073699313289029834062285851426288926372860075130971592077695164669864004781900195361571291636842446224470538844829932506377505587897564846696149848076951985066597378329607958341466163264259478013570158829829690141565175513657189416990027520728307569724079293910287088984635685583548647434751604030312223432043575775152796833278936632682466406007093682508662183635174197892372943448291774764382086654148510349025426464873718287721764569022373571156666413968300463108851421450881370351921313639271891375163656637870708676129268749340090530379255422264911349713925218083802172339625342540104554918767846868423222676355828155700484637415717723364174501807699903540174002930749867197915208097291275374492752010471013895035359649345742072005250001157219207629048870218348480753023945492590596658937978165780727842733291209789431232842985904350450722796532014753472107177113126008286907440679264855987280859764823431220531761376094715729017678778676036229313796561863072890504037013234698246475593805602726316806603963249629142627745183878620594813837234295930137217396124869999181243383086563721862382578374702698949264606134825607683139711729343442217749016427910244138558683719022164996090144033642798424530153859589129672485772020540867152904192857769446764066275208775531823454197862277916295215427656100262878027873576603418473496712284748710526786638672111563666859828698018116157764763860875062923849540230587611484572514450376625891487005480829069356589044664003631069731865305612889100876256248827827541107165431745487087077600315336723066874641683801486622517541167276559989799341127642060918968376277075918717400491805618568411098102644471488444030207003577461068413514952147722396585372779318450847956020418625857336738743942218498615597851220734454603499394956426300520606992225832598868202120773161934954743533392358451881016048490840111157200958121935333649897513760600101850359225748516823198545705234422646871110921240929433076369883175787068919015820534540740872089920087068082759318888336174447806531414607072853753891736629744330952160345166595346647049800826447449351864083605876464925042028073926010294354058913231017793007030460761234248634562837322971072608900780943447373649554018892442088606211616819985275329362785091798100931423943627673765159469789349976477812469510305713473980943663651952544472701440964234325529591092977534539419513597392744564758628541385516371215801927119274660677255379400246462458513222805044149828598416459699344609218494081704543729048757066647999421132513332160092615227316921309778483170721220424509095509988219406186563197891016032825873230357099176178101975972181126707771399014029869340653057384000295542200881053908997427597814062621887628392650315830541584054598172020672114870751581057418904752817820094520904477104058311081203084533102594038801981657411375126358154205594863565803545331246990821173562030807515380870939378944435335655441379135593450801451674961521200397449469350703511842001527563229171802862610851550489052883100891620287303277048605400292192915874050687650965273165102056820790143764116896712820280980378555006236161543357957786969986340196157523421990846217188886320677045031580189931967898487109224875077765611137008180002775476855165021650276579970020426175387159612528297982825086595170315909078563723045626698510896399424750861167783584498665327973435103009074965934433353309047251179812846182663481214351495025557586035507809151148239935999624250870201477609365199187177178558406722304263393697650530628368288757570036375630533458706503971355811784081778987874740051160183344854444866050357594893294374129364312876738257767812234311781429762820446629858527662407322329412123969232144583307267108324635949440442489194338580809994837756250309735435093617496590249255467016804414666384185908268450830397096623221756916775937353071630863775560514346261502279486330547103213197484341957525768528383604820934673584532151479217877219270866141126363125700940876502607808921067422000325620505542568379312957211700669591178180017579057810619411893288842342703486005766458235005203849728542128187566162797253200283739296798406363831992359092774864563722357384217517504236434089300054163319376122709190130897799293300785367781017571151254256976357273404530110659916367592041016309764856198984299992915643299229461319986404768152501745534303718379712935310378287944634047145908473175337597682489499353535253595616599298572622616289096020903786102167789533083790623809697146829031145080003835030450514375587229723226718048281116610715081547254312245834806940171005775071682217543100375144806239870177202919672249817720186215175185256486509171961946248668986765478164329029788369094055260703699369801907871414857959451558938450765248172680430247270723850426420295775282208727553296424547685426150292634417673601818396358438859786882813553757478745030573393641267092537964244685470165835953674187896391810684469476345882757327262488251386911183673396429570095033913595826929725333634162057015316715141330225450838553226040393462663804348461807502352175658878640993173455777958652853995975648028075919025569172926213962695609023476350579859184853263924108556231603603229367631609946218964780403078239391493096837274238467423816539623654962866857079130169048547325056464891499920703529475945489666229653634311993109773082433002849521561543437074540882436306887839036767365844181533746132903583334623423407049421096426813381913081956531388282084109735448619557338692613429308574868589343845725034302444808957514501918789081603087692211162509421286287886376971382372988872000056880505826017831329967746266628943467083290179335598001770197383525722752169537894767896755468332523849589503936884169001097265488794588291180126409170475344147716778483421969869935545338205500760174191027899842971939938240205151352676508606557762169940470840848353894780633178269223879511156261486760825291387612974104147997817282218972181626885981554811927403845792752000252929517425620077013784934921488220264022816670172409634296701368654385750877181706202418249977440029176771710090568765145504071167467301931895094038733070997291344534919301969952132831122043016297353874803253432307112981308105936799266088711796058796064267823975134556925745394414282000759526305215960192325598527750270558399650857748165798199439250452498534670055524039966274103109363014991614115144511137140175065971524293599046507108484385500112598538448207070243906720604794950884108582823248329348828369556832993366972191730434915731039415003484610657017561850933006191795272692957669093801878601865105658046370910401498414504095224430416161267387154049833199006239729421627004711551505128710016034955671654248494607300377703837644900758264880693183008549438689327543483778590084508519354030483284828413867903971291187293847235066088312957672285697757480380960706147230201524677837926028896520665465297521907374664334548298735758961401850874776603408368985164277069585390590923004030747914171541222443657732873591667646232399186185983769285746229861374704563054329925515447679861508575931318881753675342515094625740345591785934700976473093620345669334555612519751291794409232766461764073281733542182076284746534594856811178429523530904919992631024333427555600850731180424679873208999877160929319240319706661574629769067189915045762387678521650015816991280308399169996575983212066502610653836083508032447935404629166407960302537663909037737984700153611059441128547670253100996930512998473782146614878007368432834564285699006711761719773032499767160043872897535702925880859319821960449546260646254281651718867818952364658650291613278177711684040108795971255389457661551238083812783444705978792422939596949461869800498652244584012859796004799563756109908530126750270383898925580713235805057868481416681376140899092422036937601003956431938073315892782126740339216617356659935805911419427422601979062350517583713761679813436772052308104441817652570202277203781504249345101613914686469652146922477646970008907507137212611389887950188241591919288954981897997864523997006607715058366854116172335026066696687301771798336189010628760101705445451496354168969561161913404699702596434374541468811077257366881850814781618888881700454283283605852769070063488154708685419013134073402159543172536722753056510950635379789210762614287897313867267066381445486000485611447876211385431117607506099771809817130316854359118614358837409762988728349796399585644595786435725097525825392229229280913562681692382276162976900349776459123411708332228430125196531517428383357814426244278481120926240847549267342521284517672329906062699602822477463763924351827529818336451507906853176146327812671227713037359093883986426873923636732068314327671938118347791877837824399331411691144936037518381306330323715637854089072103075029107808570577557531172506573654945026512300536286435313552213683798101067435449405133096232208836082092170618169595529995328467396791160935230356511378037851475124812058547148374358079290873564782671725088142592065743838926890329331867165220015033214402420884866134264506799909042826697569536905191770455503253927749962808333639467708924025101348071794457902815065919777417396061320607354860881446090783479711142711728006421598294392652329273045951121040563233054251290552621906713979119550167237964627165898996872981397785697377732423865936399484996730344177045384912406162673958292839563189870748603034662835201802436818426059184140288366044269947909567690237674902651246481696199615708140340233134386613333746891612416430365765949363048092144611143363448189751927659907274897384944787705087048028787403902285447739072682208327427925898418684167706954455363314287651668015476515125804699039010574650392760586479182014342069570548769839431066912345358820367134932347981294215069105658393817689962537176475778470855786733385800598268908226629220330442253895976874130981554648390197127231288343939325852451735137191259778825303534847658425810677363601726636425687698116327872337538397078202112389263867128914999697747870646325162003957457315450091934667914091698256356071326736575340010959257716359541137567037950423374078414772545500519537425820903880320859763645027222815736193898646303062185948728960183088625166541567212758038708077853313974031900532488132557557387384745466560871644070134856232511602386884111754858199503598134608099830214834830386545304528829773202406471746882140987078324565281863258283397491397286842532232661362508037992704491248864871111297516321638808475838180619976193981609505520254576827380345491871385980280580703291655476782763313355614828815127341832959090159478243466868673219877416342970096408252347881325473650701106494947083429530771145741158228386321439626232130414913546853588249597137307191139467142393462366281384056463287002961633456438297107843577424981863470917053354145722498170018848662487728053997892637435084048571082629101394430516685651837028936913824231259826303690979708540457797893064834351072152057476491498295203442199334291486446607114549763328442630020124976423540358224603089513073962663458277960965635525615212670407027713691294282369585938124326102394424169692093285951735069168926686479690979022604375863814281549075451680971878538926059428213779273760814790817985142013220224379727897807768456402551457957993416891140989201013472386745218895064479841250494604968518361443670843331869557667091179826470626273661858754987303392368204510983919177772305369713931334272907050807683185565907471357286057796511327363609690308612563449304439089328807206823186156942542552034614228657385907625059452991914370165386785859901426652602695561884310161890544472612785554926204638770957286496105282343576964288618298409299591886790612285644661409362473347984796238590898090901090389786671074564686567312985368929316711281963903145505143478211362450759449585810575566761213285751280419107561581002113075888664062442926325637013020698777486890116766693961671027559835538815439446874426057813472572230807751681290690281957074817697378780825180957506422492111128076548266339983075946632970396578032969353775207112317609035834898977967710897555903209191475408639454586745131592458295837333720909931860757918576364829131684753785509485004539804396038631187155677018100552902782258002359481151789560186039981817562488356502869593259939199089978413314719074769307164537562316941481403903874511804071144738493602457297014773520668485027817305071811070801928828509471672251039863821721199967982366039868996512650259038158044241564937553101817591288808332866656743951118295787419515933154377957606454391259971699838984570673045656058181590331641319247861669259631080807114476690993630452226974509649904156038127612795164424653260049245909525902024845700176976822595275362652278027881612676877065724848063054012250022799863519856110956260960873660331154585364847293250446978204799915391911654815758665055950848532497602103447824110688220709096892581217289392184635702563927014639879791076451483351003220403017402801096569238688360772916514284184342236207496528505493031168666894851801685933360448556423178212619535478045055373058013072863160984145371435655920849422441787806996240994823874913070911849311497078292449958545054542530385030218975669529144545280448207870082842561187979821576725240163744520916119539014638584200991325927449891506183304841443460378834200008883312361038892289756646659535205679957836512901627280294884175936338276924301942880335533952144395415152275347721023933646501265911193887165347862271652036950457350544267524853443510881269068388560293432891379983617297330943278449733947377444547993146194112632347852028045501228060672453528482089958029532771417611935952862868095149186145975468226142939522445181823873726411222936590300690672811539021157189145630411386487074930807060199711156202987229328893124155126713992927830648101164722468809859250091326562025485028793554435700477206263979965893215670434167226305543274303808678772998101977717155186596529379766253232839046946229596808892419428443967498621994597603251790637229835151653543537774669516130104746055269414649368703432285141338828543776196198748134241898788011654511552068101464125311574091574224652053508255220025638607675242130919710098664787855490351606128576959946668307234867626631155585547757362039937214111329663104891239236353716094686678258555918281980626445577035214884663111466738305940509577534288350134645109991577434733914603810089192788285697991001857047297197075948422439067891406161321887873627207926104625413624256044160814150761409899536627357936920975025042839427316736314280137436232904360482649379326738490055892889988290891880407455287586486478318419122160013507485317973021625679234702176560752027241091580830434977741960766912580050827668164662092077432942811896555786316215757058911010316405749119502427356912234467987726711257963098348557003406989712433665070131626711194533440727973602479620260134207096719984383715334995041273152114570673422923193536424610382278268920393813178834039174311717817900224854450258176521030050201409750064210045045708166155598831174710747678991558646928591554123528580596591675614891270787188371454801678945565627261294380142842570920321905599408943275945285807242402177009838616432953718363316563206804389773428223056397266726552311671471729670812882051925112956904193355055230249180920145318694169193383727195861740642613552218274086376205913808563846974005402359623215034598779087664283779322061122287217988423877276501229048027037147646791247643517124097761089419030003834135121263002931545819150788682935912682740403690801017100203021848441244806626956984564585224894570889434384548377078607165605663411968406585247385168304947410448066898325965982091750803750450758532671549132975414426165321885763067416548585117366315650842131830318706822605753199297582933366178929835894989590855062627622325281011686338157180802255201393812244236923344646643159301863096702928677874880415251456134594138782051224148510740493972717359920459896077723183376983904125113884430233780522407700313301437394410538009147537627896441427935022394169277640243366474445027159752861818826161091728828363169886001078852730522455183285894746787134782325980255040263089117483880642979881722753813882090465562524231496245847306833595121378009573936060624238320762599877099592667435553971235888367517357137710105783375457212487189546694050950415093482780825456975320867580156952040337903164164868129725042681827491472657262426875626824143728879078098936657292555932792191153100564749547372143474648419746310345189149345164866278893858415818864981929589625614477850621734589121158143823418896900444078133951078551006537174338841757089368326054843916248525882834628800135703207004220146003825504299307912363743800486630693986935405697307523386118268653065430771953285362401130803751613372616788064105211394938583844512506016753378900304807179251607683233843089168358852352149421899997610446928445128348665361101810319514933738181413972610848722334818410620998519124115985714472784096167748310914618878632417965679928696673978677556404363456475838140600446905956163141474659072430252012698276153720541244332699002599042932419546803705932301917942807556646660660614104894896973119131083051501680246882207262263390005411660344784280566779105499313141733039955933885870683423188950116547647412963783709126449781312263858432885203852876956838499576913939838288978599947590029380947295021416682551627698982885469659210855371101861513499092667549073625887960454484117359470352635754018689382138080877586805761354634411031764856888931585716031689516438799160223151037616924462925419218728106924013891649986806177780448133261701746910256824512302056932004304111453297226771528054670558874171220140462940754567649600683787279219101663523829944432059460607496929488221738589477659356441979827749632804524215783445273730171151869228899499132500180713608496940194210484984869549006359047179429011783854790489455198326578405291456400123900131757273775831067653465084402305993920802707165829606024148127887374160698778907698131566542029993050520460463931968364394960754366095695638086403309918608094227016840663978326599676457244885275330790880008601421588640993931576809796007103894248172552189657375582083252598983775406184994262419330773369819423708378624568909403741337173052449827192428153835624599056667313833303127786224251665903598762881932712319579206497631145504425903278695742637802237490170817828180674036232564156906544809742547691706999456727275651725140128981919578130580839867207129426009626799972175306072174361295862575485360238343072321762618947221750506710916327465833076025569324471460040120424033999485059622085493362563867201159437379635803585448870484767589846017817610123507504754372440582954289152621393699014602756095269092774380002301466505648937126792861410443783752691030317133535283382640922108859628730173429770269490177481438335832617972987243932508410873148870561283309208618432880411132386818379322427621221081789718504172304085652676782884496159099162643563492037183997474389437294764319736378519266856340776327088350187093953585152000227120270980529128421435410759029676126207874505068516370915714995592722740449150178471746445579003655940815264908940561953970586798389061126832682153470972156564756016052211497687499606488298974626344388763625913782083157294370457387677990992840468500432910100117679465858140463609761022725219981150996180607522611187210221106434321834828949443453965245364552107103641214793058556018984251004566920813656882354370299733971364387615353474167119426573109541733530967690971169675543961688216581952803191842032815165384633326163258410522205202474550262753010968619645289646456447868154761340516186298275351145865866090131171423446318282586809319815389622576787727528391347039321447784291199724592850151053779666560449066652560403858562436639794597268784313920249721785572400828187518477045071585150725133465686902228020339405247428718320798617641539564479780627154241554145808642511722229907658289292745014215770019386286472466615213619085572654073539116478963245005600999952778586221199784271488587097700909473345924807332040699715293273646903306451290496778758296663884014995042912529998748046436645666798154318708679170657486595073037889355154838158314020925631506976378453949738842424663797860303626170906720403223716186241245940924994096265514093335693272023159610854577230752232749143578490065812734561302756098745292596290470388463435017970179827833745573958992446918109663323476116652960532327452994853463426869882712289517327619674004118391768934823363838423195915521602372188140931118036070604880434068114089680078823051595574445052562588960177660448501143433778329752807076139066358304631927053087855265876690476541586522528844104036615707077254074030773325045371601865306111621413010580791141689030700245297829699813945977852524913011906143806978107846889170501962533513531693876554655457829385897080305829631036545821740330116438983912207817145023200133645444153965833493899108560561728880313028145157688457374711739350651910396582672938175888101218548095292773094050412453976585230435475565042464128617870263036617435922603275515379068533046870055610422200578166094455829805761807825812196477165746531776880695904155005957790110751178052583467268271464339645270396840284689378898106611913198484220375392836960892167899354800015930004181868986793893863674944361203033541132955644719080939256569711941693465091105149594672100552707604698820266880382525395627951650812406885311515076823677016511773690094746274461294646408505426169980245342520765023220088854898004693687062176113786875110829317883340136834880927730462061635154335928052987595293905198833441766988572850486207377718154815555158825274562415774070523888139641062533348028786032171587701072078247873555242137805365357991794502940373855786243667111714059572141352318458281291648217480168293500843221669288300492198410767624537710621759964214091362905993800042959198608802303060051969754281370228603624090320193762179509468984658736577791253280762281741089328451265716630825827776257965279722632823247336431420092425482330983447474630668855888943644612274132636293874827444781948315238997180568292423905988451155732704006994509411135767055163817837023317845946930233426331111044579595795314928824816109606555030019903562413549223224890506585288316834811183311141178843028617238183737699268483959867276729108567969924495355768768710272831420884891708965491579058244935505606812022832234278460655881242302378402097014032150709435765723896249216957630868856690482213189869159284321920763616435505359720495586774236683348109842596023243853052508328914687397246807810287280608324432683722580391925869994194734536655596742248017846060517676782022502014836318087626609525941051919523619198735949438654550392412873230490331276058262600114835207165444733410386421504777711150899320348066258146204438387602515812977762390999597995894130046577873463271416682658060980485698459888386132995932878600988419388835464465044896282402936735968605802891103289148609373897929719519050184408713612544012985084122340227010338062577021527701268181207023051945657733612310343521279327845771913907857185652908377442679000160665158366655259840718924351806254515155978344148845104097723883873527717855551673690901342395569510661833054879567074974751567557679877614117154988933954464669962331753170616279234661438476334469712609874488239438196727057893454672405953286060299611392377263148682643465101288855680599151696022943643222799253678033000668102362243607489038717006422454736005125609931706841599782369015922119622294482104023966307064522627524183480729167564096568293921941311754634139914298357306732379694242606567561966937146059814423143574450023183454063836453562097570323746463501700241123172232924860198692612236465976426445978283526122103251047076091970246708192168403195240420072232396368120901192038691726745346391138292128413462315468957722425030339866319979306333581137184390837768421888302197243478161745215455458833051451300629263487666951092909238579955852555493728899726676854347994072001976547870063430489784869438055499695713442688470747656984493016449652305160121918658685433077979562061892494281999062777397448922669313774879725018924748279861990342262172214702470542454073032290738877932904806890834050478699522977852635169961886197338133556801209548718454061875328706840618609574563487759631623909720185493655520470784246029684445811936019298676744975608882641335027513644088306397229798727827798323917799066390268063415078744340819094600834157363583506787948558530556955534567098262503572328884222987466736697631522122996752232267484398845720299591925701372685100013940747501791536584753801802815683569981538242145881142707773745520229862777744041458753552823624627517768799479070463897987853819907655922869591640372176915644965551821632480894533316633432946968258923430497853735692501822205688318041345634118311200606725893543247798757873584263028316036781957926651448868507479599047295112840258516270341099076728192300543986068067860632427284947533061613311195421937563495645674617435437158487712684748701687534610246059440319140959810119985267584295926464457958178345510765278133959986292869525245109273522486371458730665322035590841213900366266087112733158605099708959846773415798379396076785012033754493069450008253429843938191158300294415111798318425432152956188220552132932624649295384263102677309930446941448439122168709942948193594959201528957834535782983307535385456096991591963027710632951604080525946307143037812027372791067309810161621207963579977318317904077835483495530318372744075959200261389551473358919110600925350512624169126430732531648067069394658958095304509685006799663583617952580710309321045594136121894971462055701725553844658396116978616477540871008526525002506528558965523797439959184078956637420731502015414730814861825799954302749501368499183774394473114948204836209192917150234439319131387862050969964503922863415273052628600368963746936523205436096208823599410030608389718730687882315853109668433295649800630789098107827211081000779071486356408287557294802964696439463011869320005575971386990351304662336497639668637495142471433647653730676170667839272175885572351920084207064230874273847554093415588329430265306228718220516903767823396528080476035323632877220113675511702161250776291311381477661174416383588621775990490026001701988665496317878020950708252944097155629153770674374190640098340131188114561191542172673236922617688724424585110783196962767454699807855773275889854002414719831225475414915000982571287177930233813627116823091326578626199644439745127419151345639487785573793938836961195551114595424585280060127321514743223935761165387799919525395858568172740178778692653707182867312768912230837853697173656086440683596278456824404106673914218492360997209520568908418781077885444649386358003182499620380494745506587335361508142124083616008540532743265633000609993299125645980255481346105734901438251621846124625694865616759346689182034350902074841207046175949895059788740910849901414778864764808686435236750559419642292993475570864711374737683999977316262230480935552181503130530728644218696060353800991526014047796784638999009684776511613620398551237978583083390308559211949711839918828473008456554004436500686973563848292436928021072500757591868589078683781008787339385291526633148425602477355706795841043697098572185368493316613403730775216535538570609754607861383921567844811811979529870764880786852749181589730518920184918711938998344931518497117965391892579609128244307644772865796644326941044959085232320569543812381182432696226449100522440986218945169071593933032252226046415400860319900837975489451324147456778420387587089753485211262011989327280261210997337454448420881703780801398082359505351997746127886326283623410069493481924887813101532194496576582614927487369990891844044178342009816408189194990619579758571431233785986086441899155702124903323674487613159783989230363397711182112170163054497733659948326012288566910653520814203377946437449797723437937131442310449808785756278909317572175541284079462532603338267719537135340603316149052561087918801595880471705654877871195657486438865281438365309850951746797849426109504683284301948294004219337031821013393559780360732632065499568238148806315234874671391636001403069771978579927245178262399061245903853092924619143998418483137994828186824560491799118873092240646820415985685812125126707178758465072480236356619296175709929540627941298118878993774365223191507163757872327915185977278791924220928700418092946828441909652822223843081028039205407709112642807426498991607706748645031663538852251657111094959036945584759460872030331046743085936562227618024021172447140329810914825889715750747926543041279464362023871926251945147381031762913127776233504300262338413913812742219066746391063397397081425729000681719218658735957017971697373595256199139809255311631247580123822269332389030951682793383727939567937541772402734075047174700044726282812688286003987854001476361292378994745541827808136906948642260431564674313780298504096686160754348065744654721752247167254560438371790103803828244561502770647178666968525910908204764497410754369327052624297903839635890064175812241141583869572967385688860719955484933679688382858054665769371798003479950157747920477077794035070235033795314350063294970752326208519683100942965492142288015136807785993063468757792287854673257994848072519369244110087069663085354184714966224391478074454175235407943409028057880212529327733739834998707444262017634455732975216033965663263596666297211658471725768230418759246946169010814158653994717454454940398159441945396276634794781395622553022706465392717904670064556254205663863918272653528360231788453738718248025307356473427612338508719976696119235432097650637874280092034695105109390991390394125710917978094624206354024246852014495169007463501162401242441111953486782685374755273212140119958274228124948215544419330808345897971712486886657381094016832230827372271226525471389184936224925470594973014125691236002298239575771689552239806113258508774918345205884221223885335928745293960122592970241733995246989166314878580443966069861897899415449804321449359698960906647451330060204680012835208837009933442173790215053354898360134898798495856610877724219503696547414089503044778140830009634170390618844697334551671364724357826113641240750663462074712446404919809582753183881423809686563102639561721423114377406931160201049623406026030848074991329672055451387498986665346365875971315934108091429315936426915305449769540640907711397524120621238246807534979573948708824263281645054569881105458945122684593252656288518760962196283232338134803048804987183200935897118878976442584326215035616020969715091408224654834421843943823413532989970937093881217395403903684381597997688567110711253677261490877075116357755385205892752137323047607819939128210972004146698311889221574056381404994161488389379602070190811582871023706794552819985029830769403030566457054548816211684991054395721871953480501670416887023772018098176003382128563292304145421234589318939986892164820452166942520756668319367922758332434653387940144872748329678194507136988890580420091339404530778469618941221112995678506456895332451901772283847199817328121876923033678475203693886694151547612473296985053091407710091760391324272280407960448182353141212947910288865710456194011419467625517096316271781798170732934676591742689375577730033711483511869117982751044868749081819588703651277491022790393587627022801587458665464504951028439353662238166545049076228786582406750145172165447918492959082156370861034852195800428456791303702917960592887096494293423087980780239441875501444067591862708062886560387564251374175322227268766140597613257477701597323000069366193342216964129723061988260484419560849433452284734016694671723648798721985324344265409404868680710040244660079702366882464952115331651753077436004949376264615558448355913730380579090361299440292567511928813843136491485210906780272975101609827159805975402172513919180979458286259816324360468077703347501904171557384828026617623943928692993769259829204332943278813993232584504485349533209725806743713457417540609532842114499708891989935882336741647088309069591643282534958832741840956174971246086829119201078465466251613649322005858440369200260351996497543443495399780931419673476856522680225868547288337074015415108465359148335371773187140520787552796099754995154788740017575105001724072874405559836469770549360321639181384984145614045607116518230669957107980419290515468089860245415645185519285336899517698326713668207061491918857333830515573587701474799709575588808485553637744561977058308490271166956696570807245230803694478631971889651724878756366472089664088270689229952407535679554782820578169974654089868630008032392800300651426443613275052230532495467489766459399057293349995066656661069755396508771569279040400537862800581962049362283387669431088365209505377624293311761038963933352794395037198463075791160225567506447667813043705699666977915746931672711650181237682011721961173356547767252960402305602535926387442582842930647277903244476642919798194953444518726874110741337217254953247988201374915673686875019369943751458064166260145293633234796913494144430555720162051279764402094718756546540018847057015450050725366410505861372136532004517727309814863672110548044275595037200045753780268745148253411974451796250985455898180994557004604096935648279161839080323001001492294802333445732096139785104140978498961459738168289510000216815349754571144699964963489203726155927722114263966347539411218068678013213375336045323855609142018509285987473525956676335684552526087159042786236080511612426541863063154449964186173852566352702153754047668394946726371486049051289719894681995488388431247698406212352522818995215462639629312381576050596482978909612858288031461654727722246636162068304881133153020654113372353120003513708034890355070025970870625974708420463893736038490880276844971937739552741526145517165176848504084774716898097664924435477416689973428173621354001938751067504775715307437467983501496608985182048895270244328742203194215443991037293466723176237462371900956392870588429413908001933767296987315208107417529774258812747375178498213266057676632631766842627502510533943774258766571370253542689951030365335212575979720676795384538686393297939872822055421683545877329462772813008378843431227990901763797920644513951774027692969976538005530816870403561742256906565483014155714708789987748881996387836338189600675817173328085471772504804308602598162936759362069993610727467069770197041858848775428294448273196911719358573055228859618452696068586169391262649686857241312943810439992705572058679610043215605846784293284853369052467043793175370803612628581966381273964364648442281608498317138440475661210412924932108941775774776300505040313599285466864507223183074226408140956738656435428638124662642451470976267051809793629166123831914688251997784662106663242990396409674972365157088469885269879125336703333477934418885253403712138692345279383832984942664598359003613655872349590401281998352730703168186023893239760709320000449972921934722215703766580806390370710662406965761726537711104638539321566006237102164245359077066338805836091812285865150076126336825523460433741264408444765220132784379463293579794570268897463612267719152940399436107443091809140302284482258039967993527152044343416683639979938467878314278560909704685467804242476444736361060368698709785012997025798094298917629355893729129777515539125332201986410369857801291844918226422255430507917482063132290217948719581294044473461821302097026662922202246440181420838033849139541618833311195069491884472419605105411726054733168847637093768822315352808189038452061428412470261938342356999665906677305115313487053821953294420517967912444687821526379144688785460895731356774085584331881002543517792885838693919332480533457254834253995001286549945619834888901967567364798526901194216554297177575827781089035269008740185616744498816675670208676803756927543309902210667828602696611303840683635808122893193741200141819087335651247729318744235604453812731855621501275217923837815087794722852883293589007511683107362400815153453539364364110258896085337955391198043982453677215482613107619556160084574200177385951590922711504835848289073501398791464028624784947149053647495040866102343007175206216229337811198669670129465546792230396516861146427496728207366497183776494955455263565142591787536119027845482165058061348821058483419019764543783214642641577420595919172475335628844094099931779966043382340272738355481086158704874150990293890143818141146211024901752286089397000207493877229049999092772827837643117112814548697912834417784622859536927322791805607949392140951428604269663039496673909895854410373787807580570905124903186741633231115152081289548624942479156845571698353183639798109780684621247742906083189540217278205244889148665881853422031419136944718557101029659559024709758958558773562248836639515281327413790410466257762999962247174745722299001585760308206264737680715685000247050718067723679026960780685655039186838589506772862876388859886989703199565510304819595904877579255169439433394640614222028008766927188981710465678875446402015438387723660322055709216066278410731209616400860737890101011896523002651459548650972832644382015945116615059892919020628285315884853369373364883230489172841263740879709683309819468121855812248574218868487185704358498540149488252601520848962486866193387491503817716706395276651048214214602678099109845404525750098487424972047131256149462671225003833322297759854043676249553391756454230158908568751776383524863169565270864760755257212850839192421905621485717336193218619471239556328216524801229693797912667537084727120009635717378533148746945594010645553727654673610114215678041197684061406474333155516295906177904011548634505472642540717407953541107917557116868766685193013159359130847803534621939940968194393445365488471195593690271655292036598665745626691173880951961726355324118534086485250434976273089264089560637616553924042302795866378508111762424986064914653461617259482860380790715371236413800218253868690616878151291755255904590559024296145870758486387084768956520368275620156437375519786422487106901297061840599690127715045890002065153621091256621096783672430276316074852395225490541784806396131790083751503441000730715222532541687042310550919784027242746825905817174128569146927797518308160523221203155042927333079810459822467313883498614768357075776226837406114964602280724399817005083706050713732287685470825744363749075649914058283845837951414449488845423440636512829050444195605055798104660459088536604233085657077195375476027334124174155834579932804350452632689481674783175695970473146871838362756595833883002064998027809409878026108984025436516408538943652085103479125908329421279293420832606110609980093656610673273335860365154316988919712123500295416682572729293583759756662452639678126369163583691750887674119695526464820359103624832020525031282290171743725128842626395161381970141870362683473189143167060496818276691793078242251148137587217820906803806922334307270238688183603831328285402491239062539457344446101394016037741815391545011818945003005118979890453423423624376070718528199279396523097282207451682495472037905800259218117207569590840364250693921333781000244777793026888690770560180138470023131424228107504721489555153813490330687019210204751563367964942906553362111270020583649480282751242297409432474889395638555252380567064737739308565201486115795564404832366666466588492300377854031371326008342642958833744082440503292401563802148589639143140198105378716878079922253047725947740659483877921150067668726780429050641044416259899442950395491777234282010661795498595743470237023653046588200604481378323401241121909760585869997806044039143018752061514912132478546153932398274690894086430222552085592710623110383897978071940173704107725879707910147952007192099317471338479633238021250259226158970161203831294636316676212701774926484701202555674562503340347368224061774134658180034474857035231628331390736242312224478773502490482666196446932742988597773193936745961382407043186516385192316289261141164043443187480553597852494376219387755274024556722396358808564241669393569676024988665593741295210190969680130365799836785801867855548562543237685335755401669853526820233727464954622697221181130556152591161232453556223386533635461942577990801889959731850479437071616814230524544040933553904209137686347787115345671526439533200699225287854091660088506661645072394246723542141185578793279739073934184722252223063174411342643589623904178064033977454279340207282290359316094756861889725325801021226058622766879255201932724996508417787719132659631806668331083202905602683790984291173375491513599564503647889352654654831861064125152374182118426616204097129891044931411631150511260590114385814835196904204648839929194763354620989203006135070225306992077813813473149981945609489937347022307558752266749235172817976199687588322366264711624026550181518774065774268031021563089122007016265789462447345253072211805971617781619900560141334969882847864690326451692504496663832698634482314275326634568159572645444340520048413970584295642107427946397610106841312126995651619080044601558840520735302099428447178998420689028936262588225653461609183425295149216100563037944265893785905531223398067666556458563053318414841598561501408988138667936840816489954643186726521114814504087847627757233740138157456321869111522636166590342714976348939869894735780653107279600701672113967280806902042205180513297590452470198210442855829468232127658200209541385214043781990863855962311910860525802798601216260598115111134126538018561542326792682043420819109898551444341961431371495673301726141282601611753733715150460288250149220046976946767343483126709945097101147008681849646138049234296389462315027208361272145970635282368758574164290894225650942228242636325462294820122111539436245602585030089342005201677942922234030024255484477184225788578995413171813898717627432887989403993876582692587328484128443429117504214791245237827165407303095113746369755382533599178166213862138736418108885121438051942189273825335107293346210707469442808165467822334573999783773127773625685062022745921582671019809122434896763335653533458598691752329729268262839339567337570148138399261908658256833164379802016492007155914883008576049266414509808023737675764016008804541185467183769371159922946950038385565285390466763805195163637416689945303647030593474251234989038326445991033127867655957206517387352681915066756818269701921845758120640525918533000461272950286774056872065460448887544633350129856349494014034973556425220457274049543421888282972295585818964129953437981221240091100360677835770090203430253252630479125562395701895675941546754883136409261683981207065410738094262099900494697624403746580610673078198109494401862725198322604674282453852834785063231777340931326542489139916624565772833243787249216334640590957005308160721310112080882498770876979804341875509539100245026118168299600825518887117991961269467877309365272770495693289846458844425709245801855867604983339058899887209893184363511173406009557143339988644373271527399231790597494023822018223826922728008877123154482737068167668689595876330505843748467135882831796812021811441447201046165973452498787997993816729097576899975344690382074546363420656091859854597347781221950723701169764913368299636060096719788561070282427637207919467685530313268001851212825001214214767507358271154799738569246850633256181206226559022620788171310688069670199249695968455746375990141118127284344452006011764288909269333546743332241402229325427941877767651397810499354189239502368653605042704634116679477088033244155381293474047069648648026268130390415974125873227147805322533463385734704585150209134067875829627891601501636652536446052316973671584073175294848561162586851315525881757141834300995598018742882129042119524445588595828456445495595114055711588959494242640120728402076813300054511958375192725674729659990622474168873018069931228306235712903423040007686100686978532500127146971212238055180825725079063731456405521141047182758235834758768952204460386724293541121062794915063689712051585352002669908901541755895082329016051922716458155969428134511624214962105604235958051224176136851971654398598404678547596712854884391936891774393629526967663500312302462561671830145889206438159570039219037084888955022439874147167274684963735750616014526067707711584893367949022936356616569037827936049137389010911179881828084423057084001489770635638056926388664727515327583607353107046109468611309754055395731896243475774712566675397805761856779329501666650542178057288372554914323778890349193594424734629028348562337215728982569060442451306813210048518907096473066397431928429959307507639074566516676812967877909154515870516958199190200487392964754471894675622941364846979084068789438037127765476084900969257513895094564046550215337465687495123607141685101487249600449104723159195683053658678627222516044064158657474263970939603554006528004171547561994138018554305226216816127991719646408421825739287267169211738882799167500092014527079043453296400273651400422711676605253341619661101851101290067924015286398389574126583556273563220738637679647189769913161124846678576818093205396102849374748146997987757970151872020921867359624959065091781548209549548707548155175290126417611355275657196509570703811268306779221314118357349532212318172822662068270530230132917583792543090304100888740417125503193300828318359134761493836570119397336860640131325027284931767238737264904179284019790585480369872776002477339845343076474126064699562930779588569494034773474887844469035626960579590483283435358821193359528008671713853235340043729859407297159471320926272302244483969012585907473236410612183351793690882709032372655262584152473540945325168698806051340161862944011979714314505466768491841390227451699686015811624513078353706413807382552128606583083849410772023177137957594370407652276863842068132620418246892050798672695916722804898044672550030655635046623978926643607677212112916275680688947448958813053728992671305948575351604579949032506253252807259930389409833696086246783071007654682795835599427704277619912974143768671640672089737743272235486251707457726981704143497988616557974564508845810459813788565557797590688138782004426808105931703133858982560120067466518328898713383270494879711951789918044637532783575683511495821732174678424794399056650366234621758311911973073814417458832070669082220291685236329872354002263915618448254268486535253494228229607253193183616530694591133408613755559072808660679811611088240614875086569719802680637869920596193584407507418800860192988766701947618334487795239155065909395419473492958255157326441862969564889505723515425423718059616018302682685420055739617910359062688289511251304768911801070350996685616719581451255174473130682729304730521468752815127635430268437759015972292553805281723341840750626496841407036527467854802290274756631871856290792775643342925552230887345610031254480069835908738868726274499393076020421430574853686985886753875115237435079617779402288387211784725269220797724027174240121140194333756131968002510374966827564518018074495808667079993690460298747272421424427429490657985256548808732383244894114137856119733865936345492806143511361430865276425781979156070419438732233885956022050084744087353666668385209904838384539594072624253927370283205689657220559923581303417928737242296817746132319387649488294414496884603625229640106090239644938444899357266324420071856649106691809799613698890390573590849319475146363199151951369159584107230645440781135484812837765587108719291011824525156668365892920176322437419898221857647061176877447658582961803444690441338004405027416054441186599583669046018272373679023875576899382970371548747267520240341368986595011619723181387152102709407942748482670469291582025230114539368904542877339920040397062841826376350240065245137245915258074542209427854797948617931562854804358058434576703029686393411184826428913558086316759870291800422231946324061825321192142614535579782414639096953544239143986409955057763042068636632165527029507284860683832463960906393870485183703470313506696201843145055898036890610236525231750413883649478815770501517067230742960240399223852424928132060554574741154526164796459649419329635853840657449570080278080395287442932737330054753320267093949435267135617220615516308163697325779829354880550962632250335173925891651999456667663612428673745566556395370561585237286282394958945527171410111839956538383506613481736887749599723100062756794817191790631438053928276456999647921017847043143843252615869715205911749131049940614687267290521844753246913100886142996605717794110034929424904244825240266864661631290578744222533213286036370942916232042572427248657291515190799714151956121509009908698690512120662563950581217750909087108868268609556610973924901576741083548951190159755639510175241647033550021310881732399162046520463329549912445299183182178746624083367119620404203261084553109757733213529449838534052474159271220410626726669148771864805836573745786319578353808312287153273966553138091305324812051663028372719491642216786456473456332067696149014633989463702680225794018081005708967784645449568018000289703207149252922617628528507719414373023415908524217331075706204950838073767835535830643239659789368678720914992828510580950766508583241439275900763428985530651561939414660433297031337064913383966536231212976649481828527786530414063946570319311983015071237678027736007110750391423438110966189811505042988461095401179711516699760431396002470260034560120763326142526366326254455434347442438045109039497646616885654077437898348499793217776312637991817518443157500990167621552067717838682372824474651761368774833611649872619885806885045283700209515134046326606495235967792562119792648688656227197564221120539734872797685940898546363215939534558136129580951775129764899763863042519573910174664499100741627540517608206783213468987749464038741369310066072243543797911169766656795193886485494232814320670227937736051043415727140679647349161873461845066441040140209128873888029619734395029180904679183704666017893734168044058322721384626179456981190762462698835048065549233764475204511134625926801333298130859514081349213705916292768047186075395993110455080426796100834923726132694807787537027910381619129172122613216129243564793370019532748928043882967717573674587462780772793231542232419757872001866392482461458441333071432646208848196088823461905824238055046536573748679176231968294207813806541914368470363747619030285038872268972504990979895621555719775434425853522307922947769286768621424321759421118030702309478894941724889942523084584317080005461847243523066430570197913028902062728622129360628168718089628208982199022187987352635039225844887577758008609441608559994883958952018254020526169529086762118265668006726397741006256854464157627041484188889325990391724552717683935350243607881564435945449964200326754145669919086403498913518667035676540510807692538241766274718290588984226619258037138123665084651717081314854638314382783276156695674632000861799093170656807033402964588713514141927024138768896568426353148405000814874122593058698838418804058892191339640642977993329941133790194600238523502905075806191619559286970909719911051656525237231393698817889627872257781232036184137583694877316409906607425274855597540221687597187267455021098370171490235773463624301403182290987280907840916254314219789075628909929841455919347935441821852095114789945500078167455044359704007038522740649731646387719996662717837528106783052679118765261960647291861542974800131414073833820234199224706870944393029280550457959361788595370251731744991580982282202362825664541662339911903706113210335024908729850439619118208875411699220904547686716463268849630270556831770257377725538890666140926618697857277145203048978120053369304195336004093408218864807192596223624111414416006251454043152595067491942435603959511967338173674884418857949854883796203939000883607322852171086323346852442858013017842249259997537933296159308453931736808738877369148483569591995541728041868384536346054310030064451196261099852555054265270793129974998830099544995513696534028580213533459771519703398704221982981369291325079540545273181587706688459844729160708152182339547694865254358714967587388498311899530719134576880012824901568985499450917916823580689398034693349670402408744169836001549807415928413349400464869317496387444122016744183204811413949635862632025360991853974205247351262410150286500321802465352114152467375227505052626621839590780852702401199555833368248771261146977641306741995816854485100001993250286891710727708231643300326132212335181727759133304729668019667700435513864267846915178856256841993969532216377730033346000553374844791553523020420357257506164899679184903733720205463537914771312390745838013458282435690387459842010499699972801143912093682534326246886408777929039031471364724142554819171662182153864751420731592726782438598437689534606453355680620092592735570859966237406298338377340265004392281702311872035205729377601654271070902559008358131982995479322122907145681693673692564858633860751868782921518942994708744971553841639749310388133558305730316055564926426621037196200661524614739141085060783154657943700944084662830041224205946689917574006235105844672063521536489288895131695314903958015822404364313577971691911323779638613874882384230820796376066071408441937960510948176927078576265933131377038884648409278416411376777151587570919519272062327202179674957909206436234090314995311350252532994767884014804524154598293936554786681071055079522956082108271106464254678591818626070444116856823973899347001085174945770861483363124679910789098504581291340359209795365039913093045550952559413330502024133912681208049971738495651806951450198118749718202811920961058074222685565788964420731922134926184339521245284663995098774647009225738821649306961244941740276310256441680860513998884140316993055454145846756963541195613246284937285357398949785222514634886265439136276044183931401642252426807967022610383828968741467311822595167271615597081292696338232212261931347924507585770177521453672899673948472815233808745843265242073230452858364717772312857499976721033636403856271342293651843288544120777728670666484823505633323455771484587072773496949311255904328694021812952095099094051073322188819084658643971783106800378094722906679665958037494890938282073434755688455197242919829068453199761539403905880559010733970462553340111814432867785373889221001383339347366609877273699362596124225987738418986402519968461130338024668851024720298048309343786350795122108183975637116451228862601087112492453145617313542492158124338958803900325213277577829713728944765170509715236128703653593834133503917292612624089584874112349027932992730732398360602461349185459469782500452870269557687988792528685613235322595840294597528568210405308984835048989123758562247710443549774336733195285527503684121194702891590204159773102403378795688701847238938558752952404316591522208378690017999537883089559795091730614556031996751583993543580940513820448882560525043085557454816922135056318485854028373272175669248979745580599093045600117841381535673154535313318687197557676689675502282483192509685800221247689634047849315496579163352988508298208204034562534500183809160058256167193108666214028100201938628890541672039196832813001547415436537081292637305088328254741612459558926919061444191828388272710972259617987146323175817299483107684142528487847106250062067363424097533129945341307698855384292202070455113685667763830587813036350816814325255147619319153690042488314252317715521375631912551072089072283227757932031709906865437391649552683188832262735282788035220958373460635966954542937897992059347342974387337286413278663826376218793140838889539184324018971000934241956778122510366129526104190802138801747087364298928034286477328903195575133137769959175937637867812369266371595332334954915158861029109862683761348837819937525090200837232940720402802563170290667977359261981228376275723307208968132549153176039673862558662093264256902488402481043591070050641756164315837892854553912163980150292885668084767491227474744948515975487060245082320115961025714669218488312753167328573233567279416387823692417744170882952913397872465252425746356255116458745485005837688105501925998747352244833654652221490964635093742451196117012021691094209415326179810782297700029434924351761787007571998705762808018259316005106511892236301268325877800617701830176800815050152616387719315944378982532148394491952743419430274867685807801619376694173689350126381554150133817512808581843382759425245691422158710170564165366894940546770061574684802957633876165774634015398122183664640713329349738508615957205880664497008309246873207790323499612402523261589849017628411995458832452970175393222106263621110067016885811037493247575560762873846799878835554676272446498139607457229270565461576840683785645349085550346756683634563177428086788347587924101095314109248427479542167259086135945512958390206895924483121992354373254354088666285949930801474707902497235031164558922453891849838752919409781601506795071978240571265083239122751990214021193235123260851855703650282066527524868712524430238850466433568052719840505422542379790304597702499374641956068224822138915574852743276831761609398353133622136920824376658354603254286254067284867256345000506133826877517221333267553349519255779182009566668508850788524356606987963011928425031986925835933324552722475209118812913499346693041035703207880481087663585740980473701715770809895526019578336202085469863873501080766787197275315954587406548225161416646318039257689581131410816504528752532560909790628354882957407088101337392238713763095253308672028337537355258956844295329198400704518498420007226575433393942126530050704240502570773051438227861176076823984506106669964330983866330189892949300439436930693365666768842604283847530616768454500867832988616682193323636276762852345288360234980483789376733714659003526536160639409224038631598059955054922318396398040359291880662015697777848496876922148888313117901737875225253056984087096413050655652014717515507054712801979746805945316015645610166328469322691398267273220189014569101165765273257195141456265789347246665863410470901086402946506702070956635146043849887248537320410735505030975952502460115510771129126521440081009283298576284940358664047378376661362160457975378902394982395279942530933610636965311338878647974343781760825925344932463645765712627905695686149965745329909686456468129223966870778017500794204991154935406725929297326245768333008197137879401188448329203584025940370852343848074789103073267783543138041803146044676486624028740505006416922090470234100531348161638717115865184879546838688456615402987703825416298856279559440526069285279031880965630517424086373715324785763302912126348241602926667927074001241428429701622888839278174302147745332047244800517185938093857427196269448271339153693091284203131397415650330692251298594330823977426229846274540516540363012430968178744374140924131525290014147579091937125171223697996658743285628348933206333075344982937802606075575778041822467137290549725899530644199141494533714186413753638526854730063233932046805385142851143845535322557670374160678620597550528275986343199575515470299695585351295615894310033529914599856533139792682687229379125631327046670727071017952982451354234864265926409538597309288543792364795120066272663524648771558121302421965525437711406174785752685080754381542746670442855589971784005747248121471749967301880511862311441993775751170256064469245219383058254342391198401253995270176502506303300268153353100012020185609599865904296889801612140591964749654947358910720767755193903262526207094413226490007059814273554170516388640154278290110092608425164088118641757277603217142642287887846220563672082458093144488371855824820426301121796843147973415497810109894065901202169209203392185499043701668035685509919933258480504737262168164944174437085618093609954230448150668434384696504601508540674558636870087630730902974344674163173675231089596616913608661143919907613798745759925407144226675565654217026975528201238695151811785754024543829300434296020138923736379828246019114688023625274268688785272398999730126023321053639392572875513465137843366662787215031768494354467197429582240503149033463480354776800317583285586454906282516885158938146810149437729188116273401630847680811886864513232362722193072251859571015533809824983333484147297892342343887887139964955723086631509134335157704155702875003410919504785785525571693625929936052607872853153295805190347266121812537035386495447716738954174661083414634933204430475868935409969977152288339769124945103239218460729000322521216157934801953149862557799132344212311453232964052549009385656588308019570602774921372715629243611688329415328956379294832851872409219644558039232891629140045065991361027253407321656771999042188974003808090994301179078066074817305398399548456644700814374369454487116273338683423634051929870364479422950686615665950382288313333208788454239622116960335597736624985145828911858537688636439136997759393731017986685973696224331914918063055475863683885061778564508516761651967195203233366508796005028186985708501026421304341388600796476272245742987340024282760015677668773499858015455776026024816461627405444507739476320129713006294185223776220354108366477146194854683476873883239222969134314892425202270657114612269568947479604282261568842743654205807241941934918871800535891647369375727468951849421802175186288546649357515671155867334423900753620734054060005275108545436932118972651119870976556220768337986264579089642915017173454832677756575938945877440342936472763755761575431431795533507427511410279449707363568143909205062361351440275091650908061822026600426953831548922033340725267738290180859168329347037756909324765119647977763911923184560755601201076670531782296102657938751024323889403980718293375747957535617223910550743117041012690329683691226654014870600259245887743140779969532541906565630237374025743846564169145441650994146742439102013366046176917502571042491694512150703534048637004386070759056012907523118838949337381747024850267848660135137618340074090672846357732551653187968074357330058152595463526445233479830062901692864354982324619507792458074898823642382687628644342085639083105649225097237819330939760215748059575213280281240765386260177362517511137381975157658245373219075237637596619347306256182731841436455724524249918631340142006695908544718055343218802384079715039851714110495688084704075802901169663957120287270637630974060091593150315868942222522711441502374390084088525137322138991307555581447188636914562673749838146404583815721775052853174545481431987790535440220654196501347900428692608460032710134867778514036312013752510902321013099181640659967857569947558552022840666429272492190422215906209771097072946724756363419343845754329392370102404549101020882115448326687859347490419840852742205807413829024825084270218446850464765267115047680962090440022820211080529841451263929712458983662023357806970915776878489868582728006692449851261117881917267688134503463862244470715695777144268323613806844670072957935852912693059251554329043356438744870017366417322238093441853153773960684843357687009605684796795729069880207368861244806935149102720635884702334683070501606516609938787287570808371990341187760226306506662213033681585036161587335502546970552439407562027784755214212908927453127894625087340305990406034706823183280934045398526552111002704527884491015105923184477689261584242329800164851075813383161489105945737727565008224330246200123343536095198235084974547391668479591950318514232461646190561136853615920392749312766145648811168856724488901820603144499641149625174460597625238047769556730921115004430276587646184788592849131990233387358256475585531825679054144086857715835906095514113073417687857453227474076311729766288095493890179144561946434404816988725255486925977783823721416431335129964302516416750788462835682574433321043683716477745646532072856581192966974988504936876856990371999530832685727774900861904653216341608533998613835746193816547077017313660954584669913255688118928074894455402474262959460546605802751676583066290815089070373561324763550670038058373603718107424888842026179694260138950383635719745945851846724206127514973835342228982607544176834864661354640168048473152435235006442577539969423488250548533177648893672009913858566055419151150114945302170044141355753665660522793695817396045282620464172913713025848172628562836508858844676789872392591695959644572602825018125803308499389893828216097715160597615125116177194677362407584882733310466864946512191568390615524808084561139187693353409264206362313157730127715945466465849189237521748759683518721590513146431360289889398499145074226896308968393463532554097600930742798265416875124917868645436971266001303520211937431556545078012106765299024925328955232797101434768009162217873772616444482679039265480127722395703653440332421135872047085911755704673647906044353901509253328832642491634011961861914194810370610888983708901766331362848293077114817807093769197331038370867280334545119864238217468727221124491105429494197009272155048775378943129087835051627764489645189783340471739587099218361819814207529371400550824953621327949664511611536162668465459407828494366724179183442615266473317113239185478718842009604362205477383102521337328692120433327743630516682376502077982374256185684067794488034723526280770842403901934163935064275427722928183546813136649884031877375945339335157393071178013499154279313548960174778008783138313527244935029289674308461375720855154924972640946589774071607936953527393973460598654768272135463496434410342776082559097806657740460084772458888020901674871222805509108712522949091090189225008712647576224919935626977599740519647702811587754444933159377545035584156959866632211216044057347174544220568187259960337485430860701588730468496623863581695106375586524764292245305848173007248433910830301147868758327398437241819948155690489397755734843773675003928435404280986358202269767144057106670478953482640238322717322690397417910511388700660038069746682264513031474702504783067596967004509457324643929784625398390316492555150053645272290114148525500465998580791911881799341209073722072494253393358704407251640488108163862262274456133164427529294660543040284557654937682908719733177091026996288020926181861268893293215950815244237849827854342364992763211775256306953736958976562969418346805731436843525219231236533076199728798568650160432461832762856943559642318350096864812364623243352889094067560025307823739761113933111411366175492856162215987241801504749234854754495145547281992788701389423388292595230053598472486219189976886740236263926235926123633107123945765331505604492322156915532497898766645867894554348701927287198716329229072914030010263257246044811564401878115363713125719277682487158396429201996510938821627444397366156822593290873702490978721471246878877469919718158794609256814615675346448743875943913139122835324113115110283261564327394076095237405305498843115324637928188000886354182222473625827073930064233489709778485100145353759716841757575881744670582476889692682517444766563239525349885326895792168319166547042559079772564907818119597975869528913597545518859363456656622169622808227007148196032548102996139554527111348297204795841134173499688076271911243240096826631793486870489337212554878989140876367531957759228864450078623371474420147072977494169150832506181263924011660923335839697471130723335748614412841728348163142820255189870333115052003079842309184491504186736373532149954850577303864691051275458567835838571760988133789683387024225590343235994420320891903141222490071501477474066245509042657523041976483190153315460418345080359532999770610746574492618532172519680221074062193963714272851613827716593594153447275600163049297404128927353690571933625075996044868287721440397993848589562786154047845610745661547828908744725113515975020952744456403783678258571918505310033653259662853431961544184753202081122863669721426630571551320824734660868913725949081687048379872537385241810822066044248528986911422881566205998839143728743820067284888023808097582078007009943282686722878916483778739787142511263244274660645686267146750747110966812386605523040218458532414982966806741752514328560378648526392789941087138005596858311645579189364319688873709752398091980761500106410188437406571927287283735254600995330253716602946403631883219205606432673724889787900780354950044660816650994001668144946977903245960937217363877401416603070609427310122454331389405270697574039584745527130001752221413530283015445084719557240886133386458841954416651231078020099495941438654159538816528145386955998757483630317196252904296689731508922155174762683097050312514116387419126006019303938921082503577289647285288925648131552582314913849649795468594891993552233239483053632139644594268176075163905069715742888082582152174307765012244428320514604348291489438921288990403150865298834707546673749887456437719679825586746669405083145490470547147726591620872565996252188074805203529376763984711130753551601821361548645748455127311727554166521698631424104852588973196000092693023693883578657952485538647599689603378633549190397222885326659944120950853112401315428553118653043304772891388511130420449015957957614131112049632023925807008362244987957506099960470242319948821054327223156659898618395402253583221322574371240385058756702724642439711411688296770599637640924213590059470927880142881062323049885484029504855966211631911035203982807908256639273117294068697754917141339727917874769605938006364861690743787129476551894987133163484255343280564777800046131550260089786719329796843060273596715979173057937821030302955783908076900845563171073766581485367709667102048836925408944106029130375755175871314698829357160919476216797952846424748976543520336303723366313109709499148292606358014425921972603231211598284134740790377439467737215720541387775066232848328642695633795385114362964943592226976339149713385963517501344485353961424767681541532286543643879129748975181760523621329623608340924441409115783908063950647982933116160390759398543696143347005429428868978410881535806099477298567112556671990137157566367985831366553509167531331516891844333765345398811534617069186783003447857241628000321686700831329058742653484574634334731914886081633165464281593229763389843761990809343292749034506068499777004311766484952224579006084786160117571350965122471802230986865670762564393381230595869798190257892238418094762101548549824055730980257884193471470704600795602491152279868091395019699625057110973413645065677818520256705458164593559002629176391846648493375477773720335835882514435318875044328398444356600486980456483818021453670737670167340940836619111467560726687548582316725814590535414942064883973758889452413655177906674521775296752942996315077806696046626180469184915074352063966685306869387521364600032681505220055097154252472439512271677649025004090447309688860654377027584085024009182092112549447280344375414490662522443915348640689967022777630695290259811754142592824185286398812666515285117395482122713605580788008323984016529412649566908152181636647686926423972345114654574298873522017899105646492648648831852349595086731640752697428813741836792397405040871423235613667945574037833541242741367827694614065547906950798681088692167105476291281906093760096505755108947672478497091355554763593318327758833429807580301201195649389163712782691551075219263546275048697006360421007658834275604651739791579757497063833914974514733008536382094695178126908952515612231701440289348403418913707977396618978625193258032255144036945891483569173342586066788738602314897490898422981539343541329065670823182705679544232813683861332536562931614409144123700233977295314060716785070951785665055119914290161950053857822753636566857842879888885938902431388789253800366930114199919578759809124576608740470390371796544273619573134106988225419058845587287982042709327638371172346680581058376045691423336092922553481739808485734536619923054315094691256726283398781141831873827337872828855946390932196770059127985065872866355118344415955860558350073301778623885408022191736230692523568441798088518014786857661950216586675855014546511896276064213965176887905520964634355593632801705709265741368573789993079597910985711130937899521068410992253941104981687841070762399026600382372965051909483156949125472691909553103967255518412747809386531239892817612661859771121766658807968961961855707618126592649048711069984422719671623180676583259089592111478492537666084101068600747706730439870657450488397564110793410491072442649895483361297488972521237057645290386236165869388401743254599230920466822706626691579356715770741570891848823563302545147010821747571828380558354806382319122740232213702185567975167167129249997558319432741419462726213241088224361541833488349388051254819546513491932810413267389380092796548055874358535232624853422342080121447961524812562707559813645858315229872944901394576233713006545446024208037172436803794048521727838325398546640462756251753316270064964264893005249340527030191437007192941441234042997514773654732733462899500061883178043735355737879530715188624793544839929061024022967856126402990292520331904529721633756596233070949291110192799478667930611564594309059071790664919237130797831163715011758315484392320562788183024824354995913930223221927205990665273776721617592977284634341743263906922807105287814964070443549443395518860425260657638015055212967960106752930870801300095524001502765353289992461615731606946296726741866916428223767907717436622524761786078943786096928463950139419242559136712297906064227290637739833117092834739027095423977417381681531334108752609292315110259994724532468235001921256184490310128837568879264489117213088938248138881333659044124904018633330379396727205286884297855059466939494912371296361144693054928575131901456443892321669853492305421111147811764706005734604312139945607126040959465265239619521063334478830247651673429380193393139642517906514543742508643837335687681118859628601944923799736013172129967233947651832189521913038405512151834585761921705115589244535833250892856819946984811256631207584232796969576579955209406723577500616207562566567146484812206358000442832449676506078019573407824208403083511333023701372935070964621053672018363938624321302957589401378872193747765475465889502358054706731577305087153988775178926398048637596505223968631286857533822499066556758526730013303759912374457547445049720738066505785230821127001128110119132274061161918562053766046653239462729104444732039331513626852735238630307710472410570451548689337276639438497546285527877298138012479735718718805723973695978077811270361091935712207159355487304721003595623580561982874728044616173427440893672627705649794621275713205648065215409182397442943239779999498308045584460640217579923162936975460581776307362219354308713549666305064099183479454844251673171211098920882217498787840500585722544253509590800383752948348567964226175046041090182302345717197527514211334354354598564816643829908253762165878684752223685891073373631632592169089506509576091337265119702446799253947889212054237750933627763688276713408011088020888596283191254195526241454582433716305968870755392097068899673183378722495327301651616000565783308985125007623725625815427439633429587867947950213932982065008570549801686191110661281717982476618334872037561652239212929576568683973436491148547898964417736839195848685960188361813317532201855682704476927009162834108098687395161841169521667329190214107007535461679528948166709220385111797762789857719709468066595445690846332840277190645026672214205112725406719920104092066155996343548743291081105519757247396757446822542165705665183651726508921365721940931322698038018335579529842648550679093161393591420202613725593348857415789174146757897178974979007625251677145583770976638616436380225323848959226467809209833130925122990193974882051411440190445115073292188079858677715488507023479592689693612355650249132604849952941339157382433872440200979967607771396042312972091362417517814002726973064654569651620316128399978601754885066012795279490575726487062919290669998478379989136624269456360105610059292531245880304453122105072309734875298609315074494364671022369231383724170854493449148607958961460230593487334784804083176973098647557428796779559147709199351446705741315630015702346750545734994324225278900321631982978686390917000312887816966142334159897004783390390636856744439259583068359593515911994037091137883630596235984229137405542227084834277453110647863960501118161531835706777920198746110752092686128939108179800886106914249946172633778395275755815825443860797646319918609400706787999738432959443918196933790490950044211580119394201718984927691047303501717417429849332116770711235787700573749921929012299425380018316141093204129714757395651527134138603818550505439214384710916180202672110706546142103535661745824707326216058274745425410148563504039089407441028963411886219920556060461974951497187304046719239402758835709745825703918210656616025683522307045030320039496344966111793212178148942248269818563030133754637297858421490439574689723778789021963954290954237367619473574648153909653604390621585541147265462161531582098947117273013019257684194711678213695519578981769806758269371348622753904792832166406904592727053429215443617450899666518412390336109896792969494664366621949464825584928730529316921810078503501434220805570655617304730371037107476378610019930587669787049005689936939808956167239273621527457208684982813887706776151960129188706376571631645226711198758682445956527213645445223901206516520812099199471241094566984181113431647260718312437890689119923444418528659448976382263551045943384115784988745135922202952528737905881786304902718793396387893635845172462322273077942955557344400368634811127818894658048544582166198941843379401073828920064110519359919961687928190255717740914124347543301956420539981136418632367071337716561453840570525576463165280628291186180704239608939195917679599370806083284035623363876787399750551570628636411051542395309043695601896212536301150363281005266129097387456243503187685744740413623381472998960356827593906748389569645976690242533832937497882504744054719528838296049254901200588059764577547980987943756308657990075856442368427982068002342393138580887437720631676921718910314961910311888868267400110813687068308911174619839541796316331767345447410371918750998042793562105046898478639737084211502731901483435727948677860172687003009938153098659675938597776900216254190621019870458798345089765855138105708875481197566404935189316837221711061705726363461078296860477761843294981170106011068304797695291643752157720868973922993193860303434467499612689190102559936674108969011644677556603762581589717882666856263000917642359925604920453252756657312377404528631212296178372751746232982732164604108386626987565492657331883904726908831623254645052156484726255127966492341070576332633466901738300190603867752531798619701612990640516618668679180195920844404591247687436807597874364503801999171985660563663225830568482525709931614183997136822225159624938410627817153001474445395058363941138929350648299278791658967154898087557095849087012958547252756057161823648949985728593551379653930647657270080997601862935296339512520684155724966164773210080175207159758906338277558305849725788818971158786970778236132573714753471042879115923619027657217870748073390887081284268895187485807295374521848769009739224534243160765143483314706923162291354543215691812727721370835775154457288978083007761612211446882569847783337154501640807888013759987629497849305414243134889488587760868886117009924289985022059825973875020659512057686678866816428662486769022063161947934780707799781399134514157707117838634214286794139085977001616908095411485802659124895496583748363641346976432266050077514415852466473447443281410560019641599919769671880590602681753217290400178236031807860079746990887029602548986222627378951583268412485698746288081863722986096748146739571203425933326530606302419876588937359748342931242986354949025939893226569053935020836306402530133780016342497635599400280981335767481763946216095670866401495539211362515905178549638044564936630538540838015228761610605561326343047983194398276481230849509877882078104755157671495892085113230481416074001202862155341989824920669058773237957045674375983797045375402214175896599485938009211120807761291684134287079613649922110718253817283038925784397728968518297499329726647727470959678058522536536131413413814862832484112257619134537406208163712461842551584093723169827988376541143632549359583846752465522417471159476801057458093744607193137906617787895311507495358564418829611631127052090358300774784498192758944414506003679029495594685509178925128167201505396856922199690791246916007564138949818641099384656705953519635976283433919172363763638719629375072352271146947637935361071428929644422770471716886879126550589490478048244853705960267124376594113117175074438887608461128128273994071637697102681315509299845603100406607717744103882146138207371742789092070961481610182429550303428299922015154252764130490136533627152130004051650190887594128817164318716379340533941306564071703675134419117359497971927946399452900741614302115696211263182299371526621307526764494153607166551458476782483643061207016628691313368098118407109307323444103324195678028786548779774580347870323076078004839781540647537737708651998431336084340535324142934125124437434118474155881885165435665100301553687114557385558537681969121200024597371190119534617787969296454316149164806423466621463014971616003232716066559411341407468581950999015761105351799685054292386237064042202883747876678930865263081438231307468066494154345522560777353581745723392265929327522080832596382678466576845395041801703687459299496964827147014527544459903513411407716688527190064855571785360164255758583635318942851135422109125882658108101422592384577181960964216636952683506520595927393267308193539098782258689433263461227663878717101456024039588123540151591688076105087219630045751373774056931121993266511879462452478195025645754199303968861317332301082716846194156626002798014609528769903736580416110687878395305423882163740508291622701170229350691078835266323083221543762995342398532454189131793686627922935996667291621381578794616409543090605844075661431473905429386403510197312148388069598819902426506395669088110670338510678734152293731645716534953883437667745919308687197468123707556358690305713247802650486479391973153433125296672362078686916451922179105445935691006255578120080142068014597067745419932963774206594863129239429697757181154192629580608269248828151692791289253290824271453136346814332077788033196379937640739002554100128671401567793261498526154443677376696055630442598365875187748142850727633032697445819057685443403043358591404129804070819890658879407707363649841325705631926899438638228032989893192108644307967791775394261634349712502857664130917786145512428808652803323502044912930770153943343227331777989767192695525396000797337897685048455708821392113090087941243782716437811893093469912529112268526805027059716606991281533482778468154936756634125355615937254107366540867908233857006893324214265727410618711003079742754613419324299954259944297687206489937300880402965850705319327480222208536536677479534752280977122807304763764368203770163949419336642994506235119701042960380978331919769661925741257933465125816145316978283958725389959887174289934422415440022447405793385133334851391616197774649530832571069173281921656619794298284580388522316845252825933910213288363109496040048523629968509699408900588911776352798231998180016932820833888699865813187838505414753672604456596564094436473251579252498951316121899184584964834099399345708317932936883476432617157093473389179743218876561129927712477821252808960353726113064734222253785637141527954687706182738669881763326428205272262180192189157833256391931789845465265768324951840999837425765735417859688180986758879806942602720032274007751209587987549606683565914989626960691179514615104309527438940590329404578694203953271281472622029446546858952839094771315208831281715013418828962186600360110755035321816218603010933161706296219591734897279836871313470725734880906224657217422000052111928307691382216894901130053187666148121199292919789935846893284266991440331797917981906321732950797649993904769642605112381897710297804813304705840366458171907930242632330561323655084236434856200295724597665231650538569834547620045222686514942409583987620254561090157989942561334916104174964196424237617483077559228752874248864303486508543010548387171762740090094142772060958487548600219573267133696084072756865304515130108184971641572465163587338369906986273888446880214536256077735172609264940313209806145515243667599184512273165081944957593666897910080891751666506271792868309846993487744357887826359464229439705901761239897560611927828235615148764790922344653723837402325469469875862591349239741469469804551742775025268091719278881412453531428832191777210301457877461836009378255768140116924409002869225329338341179507154333821380046351637007114441684845844069735892821569743775898532575871557061296563299358553084056155875937324351390198753535064741424224101261966426001798251964061133889640692041484608176951976291418880355641371852510304810047756937135410231551033299423396163715395252775992732343966621068783841340180468775959986585991478572859081415048573785797861050657690511590185038625620101833246111747988930020475111958628986324649005728260640009627460536394753488953880577323833786945877313956344647252805200732916955485888184226006881456688184240491487989703419679910573548470964419079408660125646576611230531014241352990472986172993247536001687600735187808815481242999342219096408578429906418206734027109469035048591512286044316315467446291931548840298648570693624821163345313850797715664581824245925741556228505929904939502295419152080855997667062842111756985656766273006787411744164192976826213519154063415128478793300888035617067900714653693990768458091359363357939531908835706275414044331940701675353972372673713459791180357824692779332512446245730223954683156854337105215102084603454637072640093001948525490450599305471119289005373185796004756517304773687942536767212418113993794612636839921346001412146567156004208278082710888503741664482723709140359235423990857338139322846920925808798463759978599864002033360628430713235404453220359148790931275167402117880189723071674282596723745840691250812937751580825394219693552649967222363743283187016580576820125713415958626889970489820097361833567281664539317938317401692700193933880544359289998524887448805442153275329001530496202334223385277414261976796391895574903120889145571026561794926175096727705085617964132388739503464411374979010431991512990692786893340260125172805630024968505276706726435157410955262209780713070830681879332963323456535630023434272317709214724399597306517291496885376408434812320388579352076108786550936603226800821993706951447676521004860780549873686312928538821301275432651687198547306364845865308366027496832726917859687863953012156832207797459841860063258998689503935815408139447780467708099109738172996347958443755754844973900763431153977018987825400767247566950588795754742233351568168736493748611248149064193961185061322148693794762666194503424869784976322182007575313921345496095825538863205341044823619735451139266582947528726184593579426602213752167866514354831399934793424296657463764936619020438245573343955864586091729632426166285245451979779577970831419551729502881974958898545085473346388243190415213501958592703868643273853238041284428622526093921452791856342005754666900354658299959837238233546556498522928066086824949037489097077579208152202871224506106249264611059673453556090000054852818033935765009732879320191073554836975853877242242425211554194917635558030662369426489008827197379299619033504163333395086950721261839354163106320283578309541978455567803096760478783320096552338487818682985312016677929746305129978504772247282243714729728527662349199064575274796519416923167762813532856511879573721618212309378028313530822378145147936831409139912362060343128991370130300988137538378465461618910929669565598168335542483692090789453643727859002227731212733265468527322530229166267033757429174724332968241126957807873081275434264121971052532788240770176404666660762256269949208878167393028985680697455496771830978450953890514296157637274706293777143648628192817405399843736708696921098240222142037978576948435879826932692487427960964543991934912441872113030929398681703214705346052442026332087540678960842645025812521798273281572217825577136662863071981452069612589546872340622188177322512846076726936798477819140429219377024398145239934072832560233991246096946958723620237455971701077097751475263867704022715438959666394930130425310407148919664582885885089727712199370433893167942805087322751653910412875439738468972197149519066008519249971940005638949816560771145928166286886485710409255193241454231657089739937492215678272488737255185813435940324157770598386674525686385656030773246999476637242825664771611650619662984029086369143975799523903704580785525510360254473705251503552600380657223131296351266757941953538519998649749853387690895707220701585035704870616585077980469225021920305393277991738751865571951931837739349456232972049567353158546360401501317997986879923403373784808362119246169550252761443614664990617698582793954790129826234275960918918765618849408080019199241242034887779280205892347356591646213853564458042582698268576656701228528231672529729962620868887856564275933264419335768066834826135834742113159989688661636377497247269251653081128708218069473136833167245103010380934876935869509680420329047160143415045248384158227217109612429875856072985189516483837840412541131291362595836941490501127331397017009632474207897037055799081740521792698680127972139625459761137318923455836648397791726071340488583988281146156618318215622003194529222394625272118469107740100066689386871408278329946818842830143715392132500443512191794983994417533425866451101494519230289578385143406358311040319149513644459408781092347110969702387964253509317603982975460433759271867386196263915120030291664019697560606003898537199618000626917076760886006614007192900719442886855962875821514008600056776328644657806871518624127747250826347334301600810271166113189977516968169242905421194039411747131591887605480684591522401106800781177979887658224099474054158329937038262504947663534319995036743886466305776279141073417584831241787605346629114981120391312928855187051910476639786205759909509393358721974573773812027716410319306118800373725805220252250537884945442489547705951927275159591686435532019304482082781749636509221247085478457074592644018560561093960477526778859550710969673936553877685055565896862838602634110046730794843777612689436482348033853722038818979190036332391391700388119938050607691311471137902057933120946453979810731325661289097551118996649038145402942964914338374174454857993149667008812918125850697217003643178863107213220020561136409581377356486717577230725683061690154975620865636087046574421626585026831213945202132886887377003979919661045261566253722871600926665870384134752713213652611467195775445298095301567722671858014921676861383143099113853456821854502329887997781616212022332260031189253950352102859377327936206939228165052447668761739458349624160661969052864782058863379186473460424630439458043157290121148779686342992896619333229085578112109761753557106136201223991126603031342817686823819216978872986790369763373315151289091733733694732225754622135537751135893193266170665942840121448962383854129054275611242446832579241543139996377889071790394911932910460755216486072469239691695603109197947694470769107136129034035900356973915066576360196701946513659074074142347839834499508876294289989826887286060432632891089123798860781430245324753992726940246182690428313379292772923754667323455153327927235230296676508630889989933548065097802770180678096380224342956532904666073858706306414163722044463404940340703676977133468998804596633296478076819908505016975400260316841878614766393268304023405903444504982206769333202067044124133404071719094118029204516737019132974039416378612938480378762585297468454270308286747841447102339030605104744146168467971927252198279649079142270012725406801392866880961144714955843449356888292854568293314820702316295934308556375836701766647536039504869621561116649183671862188489304086098543786658602009036120331750078540055883661457024358679125745773058502141745189069350299567209690136461328046462709684805130506036026187020264380562074380724322428619666956438890698588546765053329504173617687943850667223174010554614077051646529816348310388732487612045450288808904908872580558332413387674483604787933870960777206390807474674302076886094172082067127176137954176355878398290779282184921399021021574100359408442826460981994335166366645032187451661138360309483092463183062631904052800156758265412841285682300745310632779568537908872178004606407158776003514365072616478542037361199450678577974313425534296656105555801699601999242806854170332254235635774263997933064282380429378793434617252669064716856230984102170727037701165154490732895969836682487827732443438279264209341257873809036447652854108023161634750757380902583693266592221184667534650562581717476688688940004749674420967993381270028729661986386152231152849029431848602520480962327164874420492278792214369057540130687774117273170862597291640563638639833469272223982942963606303392066358994534268779414317775719303814045947489092053238013861972401988285668512855139149461937028420129191999027184154416013528007147321061692041896890126745613684803748206516426235149114239407147075619289164964481440266690366476038377853213796967593716486194247129691912935256571977224197388699933528992120599935157190311196830360714991708408751870351734252673360598880770446657484507714889734181394612736809752994758685906359173761719870575586005779858734024035937861375878529635774941626816046675605645771229021691553703622460269941121231761168219634070907833948813688238139681639885942409154002388360843215678709919361189083379622307814072630221187941473285794963577088017363069111604562547412251496407087666739263320621169571385912735266098008508297970528736686112520574901431587950595539176602869065747202672054954959853706288010618204662228277601328348965102230465037075327865477050182961248398328951955667854514333327347255385249324446890249106360407403982828760884673038613694302202509373468888771919904824562577324207384425165945448713551050971016699722982269520359632160102078535242689568021088989625462123766342902307520716541344001611688193481405718561502173841465136578818544054256815194384301991768889081868872697436824110083057219589941490875542732768419867039913531516056411312092844829974630796446610648497212421675121978525797233492666407570450804816957375698590364690822419850437232366362249427394436036447994340914789219477378452271907279552512818364436990794839163186900661428878314415563701027344128265128287845922944384886275048055617843442751096256721759821887095534116755035560787446832166941512432767129812783527123227090541144379679112450657054588710922773484375897800471435229888015389758690697586640614097501176833621694096242581047687448509804397939561516920678408417676098379992722981564569679734619224944717074409215427549944835923016336531854179854619682975715900141592011314323171795227991771906660593914959437731225815890294096099404119007449338701009393555597579368308461380592154510696754033187109184332903994812827191642415702793243501272241268954953769386959861258019906346590334350868552934652326483540464378397687181106990301067150873605784713222934248043844108261695909821364839105584535463246907736050608620085989035466482229010685927755141552805882006514440376432436703433718250360647508504020226995499701500940966894632158152037993560612347729030066700267368883658959638992475797480655343529211474761237029396696085160593664074039635599511641901002290444067591433963363917420113452155854424028485592402779389027176270073912813374789815832209913075245561040637297178214950936061850107808296444798725403836332805061951081773297828137105809414222333892349919993023056571741351499900860373223789862989106576402150559692228282505429851709046532247808561586227632391693134681679444258005376894234975327487228755566250438617352049198697227412949323222218991769193952091889493161807515463253262089985019024935338119876669744084668031367633852507091896773150499172237909347955231516772772829033121400645099730097730620480473485134682563357179242402646860525205004691893712859667746359499237688420757300942210990908615631272328429869122986865065910377083837703514757579071171879632596719698544356446487344386588536924947490902282654158394877736920869500706468193142897560715760092684759043211701456215557290457956478644476127477087816173315197133104585134016881409217169310749928294603179439457118869887112686927017977143146577932493569960704607712745107938711075306296412115945635099715150739937191061016261814903274351534787995509327480752961452618211603650919610696563831607842726378930989236917141958087510942000129710332523763060800025564717200359922954783940632943400492657856672804076793880422387979655523285270392968750525879027312842406651587002873624689363783009954203724938767747171597784163500616122157726216434359563691630583241299795725597872430152228205869669714418547238201256899960098428424182369058356609570115052120760701406399768616046722016020745860620346825818783454659815690361943361736431520440749517943350639146963522424936774190366533352533362962559599612094817050687495739611251246860955540798068524246907723040480408353032008957562972219311012261142324895000531588319111685157858938300933466496009687478859105200390957011777416550410930525757758782715317224916927008401061835379935196592861640287019735753591601403957415643716522814807655630396230596641095641321065547792884131670577209911495252037885135622368259623387787968996019149537005834077123484917913218946505262231118344525734001330695559353260491607310715243794109660714153535900966067563494265193705475348531391836696737828456246069404225985761173359048966497987362312958227042544851329978383969358710329764895316152690927053854002113302070118928027704455684663980198456958485105170965186331352507642971033962987754085954360766991346822338061293292800662115904932599945318509335129794749327983129447701350662305023479246645878250352324161025842077972002915585790872440911514038065913013417869517415881866009362085387701770829270316164434942599875829062106059397350341097370141566136089309404149420878730278811259676133294400303467199350897585727456292408211085779611434232794577583002595367887214772164806698466168053234646758299204934890850323858205730648355242910166650743611159253111455504283059361441157476416964610433320551230785878768914122786481521972591298897495249155860307657420046705312309039230216570079044269854852792042641798093992539291296555417773716490570260077912800931331862373305057324459134208239767891457782828616972695723395541754200428249497322609441739283871914011009767144039534684510240471004868695704952354954905753626562852347972923947058192591833441048898484568301795503988103539546974249257289874373492787563423106908912136798795202510408615304738520060122740314404784742682097306875654029390303997395842884695733654998568187254563361686569071884405291680910443522149812848128212153182453548260275676314985002907084756312095256675300643617238675522007266814183451057664023482286700643236200116170565556914319606117539995084498016004194436997868341209213233988321899819918316851854722514026108845403515906777824516684875222812318830317703925940822077439342945725433566009412211175676495792932095055348010859011971880357041835569230535876348865590675887552518579915759127343571714581240146225670466872043025540210132758290678659362987770091351397782979972743509918231362209034504791442084225007113357889738530102264176516381947038882605015829937004961044521656677607161199047384664445321646620882598529998711006511561975187506670726006395207374001751116031654991241458042745315133093100377210742541796330139184768398938377679182003221042625149495166089712234661693915582046331870599265643439468953373434185333299980773352892105398996640737508208712523920224073715257002149144099360046434692246868561475558418096471795306397023494909939782425436081869574547216220891231042603814094556240011275168253411298998151944410309324980081694620115023423591772223940778048173599844972266357881360329750443899849038874357992156740794833963295963119542866726271316790607385777367467550263948464725496331637290917322760520062144849238158080285039978930751964114619386087740796917845081821828420198270952833068874178301381455337820517823117695141625057470890346428455268434853708262418798958047305879997793008300895795999743720113376462291759368088843184977370354844173423508082313218843689527764473195293472918986246615810774930484732180365870316951867312641701043828748285583628985681128256717487715640105609416723413942153073239386424667981170095137897504902818760900853609595048765606327338279899504732221908253756775762404637324478419228658213978546952206671944336007170733156571488994089376911556011879652984860428841798909842477805933886588263482757558891548066820940511368042234417024966282753513654792356577122876873986988757264121321004485543532887306650064077442231322630955737149368454687598803487219614150348579017443237342977177500362032216519940547464469037840900745074575268364165270444255011034106548917250506920889198712154502676582526727267195649758821062513993768053611418240771391445117469027103727271149994623062478723884767468347443062081335673819816883316649132566176481152041293212592651984872179816246322408700919315260971070975623922170236726529049609822173180682500890381391511495518200118288056318265448753537708326617312682751180480789594145710407664717009889043912758118924242764452103727520944092409446809887598138389928432110190874929994493622798887788143742997858682576671707386760242133451017254900363994129132218637792764481047332312835109808259232511212517935363445565872989852488905608627569359074776957352752095751963023318728484846306687528138058200294966960069198011932972008947607016227753446665183032174214891481465186397940571394676339843545261477829181580727069805376955596852037016188619583821443731157046108908310460945343003904829995231479525456744943468865511397724528057572515996803491765096518281845990655932441852108455758028889818181642549578527792778643792339936363957589564577852960890227482382714232262606475729052933287962533431446816670610008541095927450177441758348028347335426208408734451661601859984449151422688380271599104693548133538958815580839366988871631848239188227464015774050274996373968792430086086594214527388595749608006795143833752574634920391997958504684314592295400193171535397793142590415718368394411080623834288092757703789207733089825588921790700084808972854667527172899645890453501146256850191770311697558321961091223701380797028263501751179376756102155200923063055008800818678333425040206809633101403651832430596943216023181048046915738245271048955656625536903696121499049710811100158462929557045786822086402794075902928872775569004882019674525599820092583359470317379887838739102381089314523869193219574282167380430515434038384165063348045514297064317607896238327493568747868390393606392784192765642264303789480080089913334176645813249181120653991256796067551946635158092515562397659322863551588640514472862189118183602639788013354853734709883411063206876096333125091395451874608317683745994557440742963672433026844837112510661386356499498776345260184472437105617102362392763259350365590190970438448513313016297771999690861950665189251300350842865487326485578095214966738059653835981260180195284860023249949539808514800614395230541019703329988989942974641202035121961404329560525757209950722464477500230907211141307015194071109634932649831530666064023852097140644529392668633928554973834137973652210377137461890848102786805758952335382767544120297541242123186328414679682936336768996122576519740767941443309536384113465279523199374774015967487574511514535281311632667188852463678656328746950287188128301961711299729934909229102163918619127499625740958539476334937560893795993465219746325663436842407165487431526826141692212203793475009149580375350644494379815448633918921705413156813236857725615333101411571792067762640677715047316784934380461127047146786684256359811310038214366599981439131232626899663333456325727491329297488562921838428105931728696394133016240603074636384945210874162176359227699609811218945166128955384902214255453597838174719245096293399498407890997531209238301581257950527176818349651438795549151197056790817589571116957971598388074589371911390810150099335976309355905848210518881044613175751679062332406262662256371575112184559205405947555567185813223140169725804966806869455429263683661855255231549503715280418474391995097806901644417564626072913268775376529834190767074146305382756257244717104845388285681906799385303816075529052629343021714768917727450711947988740257768497827761570375060512513171544173403402248231460040879941581206403989494870685918515376629053314369837988235679373343096086190332204303166489270133550749539904702213790002746485200460511849660363817224995251763214740126935066734059485610376784753109734731893479020374226943916592541548307840588464943769869093481429572278007112208803572592854799186188676720964081115899362107483534511265015769221034126461609840152778494077433306502128303077308771862787717910284854970666034799822075314696923912933011985457563619951074335071571937751199425869316623229598637637779620340652451493206898407624849811427564412242650477922479872498568694856766531309888428953397170094924376369340655478011923197992649495596996253558321100522763740357628281907394950102859623738809285663121317820531839801872995339862693832421946603459551761673841519071866860452051560154844776493290995861875987616066687631693928066088139500363523153082456362798283787470938494175617026011455876016466532249615279296541190471980240891481009264036666673577548195160294214941848622222661760283431060297365079606412172295372781607908803687287438855311228810070521603724488238814742881601998336691683212157632186144953766181301141005544717715769615174612206969057424563394421811314940289708939037113067590971653945044949421456334353809655323155521770286326330329493008200444002529992891597267777796081894202368314885852029366584849989463182210512904759271739542477993958249506430022214790449588838923239353327261237146421270715894143095261513530813722959281557551019533108162178094679491197605224265844473263117590911689138192465970947264959492282777333175007080967550331782180343140730048189974060785186822338920780201543688198995841221663826911030331715546671475267036897935780190994639480315300651093402407561398942236107810095110743310109646833540730236033417663528472169395894519839184095959170938398363277069886986426496883742851643568412923481697068682419054145066559149622272510324278220360238641256482896918353597309498220148090356881359216402690316141440643987385691329368904698268380303460412506526781445380464280393895299234368659170453184482758403948908117180549305519224835444954064566707861478891123998528850630023770606236900796210719416901843783042432611335969363486444789624657625664522982314646562139348050478245291873232531066015026399598664430586938667317541066236890571503297935018025043135129551634766649479239763334086391269609539776684458540201667630182147831668667872424206688041834521115236529340161144279321249823671752032759924260048395869198776739577987950448206564450157557964946331730688549574509786824414944068895063476564810639501018220889786313432204428988115457998156006274128736866502679786136731729995877867814142379965905970243118989260112286116890687462296028958593432817502920613536465439882743167753541503893068423644723399689062297410884387777129956441463044482208177197087576304947292426755714817551015859565803442947663551436682872958664586130312013184099782523172681574931105463621378829228157014143026237795704733361077133203345223054450823968385064674580072043870708020593986443490536229954294675522183977789000804062262316411534615223366915188621932833353241579711654983337821456681590428950115240829206986146694727542960390556286624350664851203095011741595369480544073160865903767471062689668832622897130678974271025310828320430242504533691853876779422213027135027415585143316297476661980224592344570784236776231089639169652134186866315340597572293383761717777695731023270745734486105270726792813988647225484956681440523005517253139522547995101131628808523203710098366131361775972497491124969366608741533577880567484941538822692368428918052272961292249318710123021290465964993394706915190540948340497852570257382984748372401240073870250530942387363720057492186836662339314385044385743236446213624174800904696515053681424745239266597852453352940382903347067897553397182617045659916689100517166561909371624818379191178997500932976732163756504694582730082752174989858265192739020946577161316768242303639772543167804366616641421838593239841528178892554917815746522366334016574722785111850990102896457950007891910425021644155503495925151408578233501466400775346027115653788550433820663853087672560260359050004912914672260065244897663716501026007411729377694583799269085301177470802868248761515466086390115879934566223129580576826242020645112412954674831679203489301291816992694307538958625502932842984277178290696086277260371118860403874893083603732742860714762653515777778909077611462122841106665034693330988760401389147917868479166818943448776290070765678054076310380174671844973595995005060031955499832971311404461359774194040108300622399201953685728750443200214174933879366342977000450371452153272745586025765493067027905399888456529385023840035124384721278649555148795291912542854464226352362663664996779461779845112123719659544311164418307020425561276417732309148499552868581386908855432875336290378539482173181328764952827062237010133422801327939525970689719081819314743929511746166805239723526410731696185328244780550440085704579770943289754537729104808784158960266518606075236084747166611562574116499815125132633859657362718676335191703765200836451472710785397479653255348266189595182335711466933192262483964813171345829922467039157738084399624610813924751763123454053085754775969781359291865880777972544826275730583388181894331652833323362469084332189577265633848693087873117932403378337587608952621842991110477429097606005730795421941540044246309178506784495298948774844063228127287406872550987559224444268531123600216778146351399716332954099479911759481837281779550752427668179092635736754370310615580435388546586569160659819145855926750533573699826077287077390145898404290907618704889838195763241572970626239230872648341272098697842908853595788264431344354668335702609714580999763889490046025614308983592668493998781088028564509422951776821035183539535207558508946671098562458315887350755004115268057163545504671067264080200767279316589387947555659803001721689810257942889636794420753165058242283208003561516393484814563126538338833069928911996478598458035053369143937186729246683106447082778044120177624293924710440084648871980939956463087361324130431823581727139762596438564248113066597140615880066547002316312745977296721848972507107244359923088815973455638185515710709081954222898758858191436239945556937863300868806812505947572242048970129999432381790920416304484054876661348785545908936006114429754644721061859830218390459068626024938667296046282212344445412253946329080133888539355013740402662633391063661306565406365420486743527857125823089642267960639103186800466805605612637871366694615903857455566309877599619134513373399769854407598177650812282929164791197920632780695073495869147927040920690416624194678392209359814025275253046913640367362677862199707024872376898339759992526182280685525412483264195468835824652649620307200892689413124813755616051473159264630343230043777268613407275660490911041113218342328605437978166723400693290269266333186133828014883650009293189922253529638934265331952176491210374639821771547754917247858939730931689283545450968902039452619793555268260889249253849420774971407324721219584216603905339009029854100101415053347810510030561438241923384481027222844442215950078569293983481774758069301790293961919047718515464242367219653490555274907828528868505037142221606650376682444001083015694730914989766227444221706809898472890188686188927412217103644342322595503940344345390602427864788002165643378520071206509671424651440286663033130812789381266098385140025672398147359105475055487214161204091766561789408408691508119101881890467253050368577516935139798739270156417505909755015215452252839443622714463142797337071029825158814664322525128570654959285262638111688201379107217836153336275927764151010450048259936321267764254659761276696787943622887561790798016405445279703025566913559244712312694035339510245953354362224593792358305573446763016537983062936931376247716418087287621362531052506851589199135247092102455353752096692091734481127636150921083131503799915292934684469882395646812334121232593666541175311715348229618525384950561573036160772074566906832135506003947632908036410916971675782387774019769911577894182795916837233986224561610015053206628428487061157201512474189710645592725935246297452723066721590398596168240757500583163919013655888699098060029704109797398377611467144467852361072030561663518979644455422515899346253695900558414716878176965483007091339628596292041327776766493120173547074739532924972351030106725462317912773833885084652346829946809120251855248067740227186284651966042004918345597516417267717888047640495208594767708134636677614762416722781600999715158472746405857202498292906724733653443738880904216754136695648116363452130706161715962016638589008779950884622346371474485653141100495334540874659319800480079892796171522663435865551223662321363514213196082679411035558121242631858643310796224879147723769447059186905786921016929664692714829560677676090650012517723055248967700632665192828768751784820847980011766431027109924220789073111738373044982536135896049089915230376649628624765464470483653707151256282267725005611389644885920685014134070723888314515543536683547324428805159329922713755119565652462745549479986495925063174099579959649237559441759837060130479288771160953775703151434565860496865473548867977591612330255835757899195791822261725126556419216745712117197568420601287027331825293792195187647666050193563305775299049061696432992100755378717965036462582375346266396277214578125608363558741994583310267209074079101039779075293011239985056146271688298745979035725035881773884736011013659154489229636256274870176022984533576378738640158687438690097449028746084497978184301467026356964458969370297525924383897356235274275022407098441720956935996372488159371577421664816519835823755398625798482915431949177917545176947215029575924633260299376372895875296993854479517050969880977839588096517197913934358864203899186756156891547264749303998735241893420072359877353906863867692257494828595841697678058257251800989492338072029448689468336985955681833968284977170716597856343728287477987919273170225914283733198145824565279617620093196960438998005805419775156833340417440128860696305736231301585323231075077446907977335404312090385075297877641750917687127121805126642178762351265895793805682982765354785139981237583253252510878695951899726736659132488989780862984504639691312955381587071905225342165618184662945542425394677045772746517036175072911128536688452268620632567482212656414948282668494668242046066098912440030464425071092113729567365487533011492771177494671230427604118481181630148277004105398375832181480310863873556385235414762299271581284770303918007628993641913767920701020168561801874512964709244919873504406031800737200809505281492758386231478984346493378460936591695381115622777853082914775270878688756631582564807511733409323560071952246590584867140563768696473776934964291866020939358930996150186022647065673588915288626114279663699792985984592783696843393932021431428012827202135349888881780655828036989611547303666098053065789214613346574417013447011785522275247926066785737020477243879532491650337087693488397844573707168880381682525837918396074980903801685037325697565968904305172358468579279574611534640144607811969218986123598075253718143158726982028060774131509148191471839700816755019433997436684514099859805598536744084806290732114964130862509394876812197303237245537962756299492896249727711275758935557970839591532511024201468256250453169107349571033242977721092841992128213017426873023929755708785478221177569712951541733910225818639422329123091510780394793193657024869783095279859373199414496555882895644475095256589011594196670992620298888462409395269243250971726109011431922086638625065472892532072163898049419648124026539426466014491904002163274974569789503803044773009539383976890544126217176836512302652365240864115836018045019546759777668055301360341156745726567486013187263880328832254519850442570756779465867683013368976904869125702967376482855670937126044929553181524930191180482991318838330773519290205714242939226255268481597350548726105635973255821912975290533795986527400592705891722778338013219435460495906173819018892279491967772329300466980586100523168939603380253902178679262640662416230532333712426996219641670923699154643912472917339239004506276183207581535872583686046056933163005267880687028711944332414618676394540812325414411077590937799436558904188291915749245745754877734466296410240627452605515838705360605901187487443793297924000278127209709191857260378606967374769149700488851550247767224387219673955734304941525706359619327807437872128584841436296185260883386118322341911304044281956806709469582529409538450683249167392732425996702228605058344993293580927387022462414418568430113208423717505551064151119781163924722239109541994327414118767793020017314735807885485196926186181883413917781814285329466624525398263886739414874600493806801156637094223878244481964794713609276567398984832592355097782085703223304488552159971199500326957839709586944908676929186282465297999876573210390417004225414476639608375025267109627123214215484035755647547045804804051601594025491267701895175065013280940919890742854322939613818703076799352751260297404396375049381172567470232666280028755485217981228481838305602897826884099276311109686403085859337683598028653802670369727038913383141943893316648287440063694842666575792875278542248776987551548459333996172288192230804661898526930187952086562018084894542930275161066296003927365143570738586415035277930520794890199482541469196335075755266415159558027494767614348801436917227476817714065846932424846255889455645530108306466860221099766244747273053625485339679214432856381674508762610248966880505351928969460474778623599204170252307338994116222862441249712653303081251381181000175711996432653818254480629940977682154803757094389804568720377448543084295403834929122412640992221812627138127468348361810041367597855642543457318223426205206475602599204435481863114858059307830645639827977913521138143882939687134513709045874720094399434958914541468680921342725645836617529509792909224952402620899010320217085416614681708041569865058883401197553887657720579460493042006962126878450664749384799611291034570191919444297656373253710672737166832507962315622195474928210321303808987948772331654089453766852629170845255917439864670586605412205330604173817486570562887517441364328843717165787254046843610915119351997244504760339347529704899025299877615743362755207784256450055429392604351775252915186917559989139440110629213059425418443658788944300751062211122337196669131195789638798265351848423469038258751946185863829438825708928462770765950651096263485379759372705078719374911012453472287966223246939315373949724811851123138493883756304360610994279295543095635508705805871359747051171136688475129268555060500279029106827874786571353890052996563805107436025251989093874121137397297682499942194369124272068069381546168685285256594291546666413963051292028702837816125609845123074660069621813783424950046872735914698444058712910212124762144437262142365605572764492798700196752183836389738228289174337517587675261156992774044588463957431619537901188854249676622623992230295995817757213813658407174663071164360783620590823781878303391614681550664705178372838621169116572243091116502454595781755116622375709139282921878557179266585826105138373551230641228606530527797997454613872309685804514086891806240939475312868427932204922138480923398710154783923227281242601596517783828895233758055567444651798468345988989637162048733761350603452298538088337123591752653061417601611767935463111368312689050143795230122056734689441383772174489249332195403098674183458228400698926808532468788225098518104495245067199697585322662884033522352963955104079821062668881694500931421390358822689432716609193671216828703079747490001170380393936638141384820247401392524880951318309082452424656010137449463644385546780724352815914464527122675490769067342720331712233713199670315521392903463854747328061062476927106804068921283617742250562007729025419792104232029763960406073246199119533825561961101220500016757816180696312400815489412912968658687727470585271518774565784770682499035329652186300152619831432595510356992624220925995479044852235261442631137723001473322887675884622607825759130061507875452729637467652275009884705284906124123837282232070783651565511856002406158850503969443403150355040389447270949457714633829745202121377433975840965119508389040234378069731195523127000485237519597599075510313835118891520614783705354308204983482158925869587503624292765084237573293025994498215499272762401956369192979454074901445532047089263268889045006130097697184147386878645664488428313881919386169845257584452413915708599376236403719725713312302047447789093311126209229168060121716661743179813426708673769122999386109570055004663881373195664857012035069044605556487460910140914013252469311755917521789268092952073122242399038828792775471338187468491739593869688651165331868592900291384849657315812071896447927561372844034008422842536954523698287394363123189028440796293132901434286492996898893310452095147856029810348452805495029468508723546123642993278057980295571784344922763939564009911379427958898217944690895162389710263645947257177735795423483099801760524447912025049396893610163836768256469002915195269302217901481131928781359342831610075623543485168834683735599760619492415279579261053151881871892877782181191911797130727465812984323357154538877341931062496257993499889964054781618521871713221532726911603744228573564782579557413665023004103270266164052897444622131350558580838358586179215756118558505958966680887606398913967262186373374178347074578780869676083976745423577268247790794995219720291423657747709296563061951593654740714040144059923990865284949986451103262067696485559622787911128700393533949791501339719798866306950247704849349882189457839003460959185508055001880519946348295693859487914133019893649010294818330380569080591428556906617986770268640862718596382553460413501259444148036054233216395209515932790315524214015473307591958653030362777571852041136968745537155518960939248864787829019028949431907923295830613670829912142067316041578615986938251209564634354167532946997606525821827588929336847070425441280475136861426290561199057788377617896291051946596810355721482993457112071564675641637785898871017903553913613134628779098510591263118031236027369147901559908314364277322104271259978462077175762107420207923118504568144366104883273029124525094733356273122055393911341125746623799558093798668986284625680750635547754794864182591111415393132523865733681027495391318656581101850161267663412859219871749255561481318871989787534425453471808450837160594992007558149331586321723509788819285298755124577916643495653610447725305137877940193242539575258618187746668884219238201510763939765997363787404234807555758906200169840576170828780262856583854315709343005262538542336652813267931803634865398144266519831798657369833550996511536472823262851159351459522700262137598747712743434385152594614650588529968055924043503794302352700006853236671210626797092232430704133861809054148361455090758500845870551570725978628920722705502205076373605091710537275176138167807176055326703915749848844526633990270539409765773407329044535732504041202154125213112715385009237695542317112200594765346032001153446564738646683078896617722835520837355437104332539246065057768738206450128176101472999938041764760860718314740831438479552730837906085547422776712462809033955843682616320852689712099804764452300679382139992622631226629769890229729282314577215845194584725162943599898822810017742659908722885067053817881759005164759931505367645603836651515911308738705982069823072831492543614875959468093648979643048865839883423708008497728873296157296610344871865940239143416309649956848691646813901587807003222272439475234661886473912803563762262076411281147265332193579737845095388217458420626317002013003930628914501379991010877558410296742994727232096002548875236458748755646123504251851234941394000429590938395878280500114757798019402579153772252049055952276471969317361921260232086517564958380674221494140567455745833778684872202796186814853330190677441438734567723237950092508826809240976371388858487846177530673912490425236236129600308330638267608238951170955090152336481654808095589111227434078860446551225202637179282193333955625573604090376805794674456543281533575771555434828825240449433517951810273728144913284501242044804168086548585967965347657721381939094092370754643887130032635441370980557095979986531705832741374531757217472338529677495707455306573186228930693468991576258797152911022990146353245181396696017973681831481152358933578258119111377943559096561648869017009356370515877948909792723534843964803332358564272823499204323123942127831894502721172645519682457800234999786929275956171932342932553039401136461519457057030178158979554268497355294456240144887819843209024285349447958584769349273746197400977477554510153913131682345821140362861360975989643370849059165761984562507265266706515633671149234766372003787882967184619009428658268939876420280938455938650233991152797082376025252804897787931828571825320419673154440267592103232475264093593128247695526474225708435334609978559640085922471292303411116723985228545415954476616206206352616693548793953193736616348120172339370783652222079200175407486472710771318196944281988905026012114914066183525330609199598436752348845979105238414938799929946266803388290240783194658002402201424355281895922961066954210178225608602508097934837288364644106664953258839282421086986559463593172170066434587459337814893768543161978143116850556211498414420733830097699887985554310029914835857016082217950096789020864752625640770406149217195240392842609573349211773029071444938728046244902779803064357358574312058183274606892280113164796785036261877671320039574914578480486591133757102477174281543447749313558330405236954588885417284841611377050836289422819900247665270652296286864659988141076020138460190774196694580753920077614407273992134557497278960087096042986751386540374306561692998824035325192332360843480075770626339844618999341856797081820355233301799192053506740757788955255361356797257720398322788449015474334436673806241683931045203264444838034239015564506971484762757893772177910443346940897369216031715591598071371295030047020153419019658079512683567814287785691160391739914677531163673584544150037041698686440277041754676012660859076225527175109280818630328961390711155223883787242714997919058362217138624844846822127375741098565533965955640846002493484503870190413943637976628467182162131291344585067517627305303383793090082434844474240729116332612991213464501189416168084093827756754609474063336687481840792176229673544946041345190873601666893789747790863954022460568220991777264907144515402075444017209784887218609811419964380828077984695943598565654829283766017021213406270199394136519984999978883552059445203688468984084993377522659609952460934956674863760043836078312964015038542315942935945680825907383618122047709631999400677039948753571678003321390141719026878549241528527801964700080059144591310738885704808533347667924239347484441274500236870761134371000237916186024513889289594128537932121750522174390741679737848807377731349528273576269428403017002016522106008213326383960147953217620142027905372849539904528138248217038691577926752067555685912487841299252598395343603636353382231848002970317562995302369398645588154794102652880278158079368728853456175167937838573966322227289641400892941615394323083244482637987193838223929164182982608506315202888165400234095509296066288311241575953955907436997289810957612282161216105778615569177309870809340055772788963272825955707596195201859423904003297832239272843752339543878600978850434502258316156893134018519088257984262377691904990252575735423136152087415575958321543056826237445097874324799691844642259613793606782467008823691007767528224450654847504670617366488735534960304928935683414706361882821300301623527727588863347275172863331203794095620033345375331166323619179748971459738116441354735669110860379235757103759441169150987866475742145715217744224376572592313379830950689167599904774857908086959317645334383656040092347459199168502585834286373032684352453562989532430506842517128407798009969424076151924453109027353920133117835915042259426805155544956136282088838715980132501835601118587146087040727748010154720154957721606753447183778630047717695544416901330368377375962373229821652569910980907056311459746510550363695346639594614035202852937867432340888321997759899057129462954224233265301795814025103730447964073870570505110752691503692244604845810699610172849374728358591559300729735928668073873004590018858077759620715603834577182429125027922630544124492580459715415915259248406194731736818350299981799830033737424792518869598060997373816685384626555317727310366490679354866408593437471454943586172353232221708738333913598882117569243503358250504890798869290096524947422782177327989203648208130431954076537305056336356360231383464411708490596539772588882956207297068068723728505346358644101786133108341658237019989202469191538378649955076487043723575763689406989601397378872112266176124810505596280445106485433674254710115440888644088591865667328072460502246320264039586363744930304229275067091392378432179664054050506676773647564867346850544970473475217315034218085631879465181899672767406524848176446452740326758102583993703706080448216146198575271563387880848366752636352916981563173420033467393674506052049236351592098974275713674070395241009575646237113623009210222331117570536933202818230470578144188055716559078655321140037983649894071274678192759397277278167040808308053256586149392148957606052554806199126868700522470394382965140912778850956550114047685545024320366589419321383583787143001032107884738408802100283879735559867176938525459674277081343262479054836137955559531432654170252143442760135871783237984791858199172646383901291294105345491416439071729186769989026401028047229168553136284376170885971778094001229136592537828683251948698558178367731058819311428339355361568100309664988131107430967498117426149447198864814526919899155764646303905918629146988592932414729478054494252480058767660546876476836104013582718821855312284529272374621028097783993718175095299329691155306521289076296437651383309876860564997351280944757375270107072724064036563381064915319713248375994887155237314589457485280044989774596180251946116019569223523622466826366334145066154274897562638841776703317636201705618612971027635129467209981592280388224390080483493083706324648975044889528706675753987218311710382808098758535001768234255490254878468012549926955325255825326236206143986427572331958984670450023389382696505598547659722873361750670313369743143013011269541387019599753249212514586794096699618742004989443623492985082639726199348398661019239463725879694719107627787777713010433456965711318145723729394227579153508928035573836948752907283660218134961152742888730179018075269930369361023909029370896820791121443472755506183720777928341503490858915050054638911003798942256309728528063943340756898336297269297266923224453998007464780160722489273585446854125000287634468555449969731007674138549357116184820848076496489157429916192565024622102150162211553598026756530545323181382556075502488563018848786483571434236096157908625189734964782009663798482551189470605552096219737103401694450390037773793850216893195026581510745232648237917358826301541689495116846086199425796887970551266713756843674517461678917152388936060743062062138701675716946546773617707754961161125556896887610979847663424253691556318643187422351587216465622625520151032001827227783436840561213921718547284520286156573990832769499493621390700583401006645698213953030684472478136439093615588187666920554997813106377769584093581625221364848155703900778904945660776021856765462853846518480411667595945962704930809224610837867069451679146881877116875070049342067070485330091296749446045318576060816136659740284002743435383638146555402540176281167694101219963135787281712643806014002960559096147345661441620034531900962895167335492675543594603229437778589410972857860716916155425150828138815758427836908353704555937628157702358137076486254457798109437862470352003537490571203915627409448359020207153654494529046718847796574987216722049664694892890052947552692394161198270710440543518089013018014038391543233030900231425444764261048811642652899918242734026636230489145894338116204340163982816677976794137036679245458684092980353784543078427664564790636821114522283983879716873558057809831956221510109967291056703402782755869286440881387756468458855087228022425154120607866482347989945132721548356048684116814098374543711172763277159494290174357872864010376537385184399405300537485353118330166576132068079879495873893772220142478217668089714907278232814457264050321454373814938794652639568226192040591595322631230411901748914147900294938367820785303287116794179798713613098404084051491135326204083801358433538588196977483776845562380436087754193537969638244499615064234851396713403283343468610819461748161642512961993385502001944978030181096427917617539449537097597131804931847950311114767695530760437236099937473600887813930881021151184047607797178575841097842896588925059177337982164252844688047674822039155944658937832902433119489218899469144960439003939261821807236543626974654088603319055157498466553706025231738816971107036449667807210453488340610761444660107036333890344519218855759264892260779512671393131086337566616452304211615347270340062175610638415949924597994960608571643926138617036642372144988792164467778882583457703105672303974461808121337510700082952172802594750054688458730836623475387649359666100573815697585886209445998912679635033669726631236662072010188663930974908037682756935055481946950940042514258628652861105993560532134963239112329614629575292398072711213864094351476998085475502344992134330259410767202329611547424647924152565314276326392539400499675827885753242678258477872797110077374706349802316261174671279005785347632612137917458720745024974026488392359798591900768314390967704161781858534135330721329803601515176198401744550784069046966862707107523358326322591994859162198902324559753592188478103632256023551572532388029040751436943636363894585449744762797099235041953344727412857915916787821940843580515112990644212780970317292049076856986359735401855174255357482396733521543875395036486384847858907147189006583186005718803464479849649411458218594529019767376908223017239129112401482942737776159874504428175116705466380599944786852009741420854100252075622319453493868413862316947038162092697142491318979812270323666043693339531355934107114432908312541361354307597591796240310307162191535756587481488207107659280414141624403140757851514950963423029635811413078947784877461022465069521489597974555363131517324486809576747345533605136863757471487267086514048311250084047906167567106298601587880514547392330670599185697644275777923554578490952404620450480525102228411920174451682450635437064356474677969918468055312303697208164664918994519155519063794740560220077614038569022371472237493686669285674467705802275620462257588354087948994836935635104446208953692616662250413290717409706196751095357769690038856451004096603855505912310293975574062755233999420085212056579858588701988127516614116981048379425667224118548664298348035503770812326033969218291366109556496024812776210138755905390966500903067070459887438166519806455642002631766854700970388585999577283508625064094812390266776236509911978234027633218428404753970057394871496254801061677620458007038003748816596971295008037975288825591146801271047541408623566324817814148145011647273795070869134800466959034012468530046664812495464293065643315508194834551866058090750978589624481754299631863583254015386992216061293561109808480339580501342230006589613262099915658686652575844489021820496913435843601372382939441481168527847108875898187446590335725533151287717761750925700317383726556411290470650002273850001437407126992449312888440423289472898893944127587720844484511327547643999359968455293732671599649755383492526115206718646080531873221451760519490568484015463776145208419329567966580202666589219077141786032690433973356084158282843051767940969728825831754506326210125751278514861035668688412610811728392264464661743163573669272980427114000571392599668147454402220207441478579387901789111153767862712183154171438334859101809416900619711109689102761325370720210371825260414668606901501422248465784392366285958397195515531159759048309651977871955246212066234787581787360943637854339044236738166850571507975252013808281583962763581599539501163983257538770199315184769939610421427043603902373708718529049783417699490093749245176463075133802736911648773718216918022326379498434702009104157348533332170336454713947658892838842079037100827665142073788260033441391400628395263708288703554292135158542182960370029691927282792330933529096705138260459061181403907387491772597090171776782994652239334865730863831355005835624498612975517051711749869068219799378199070893759701253638305823134863761152179274505305687464818469308625143921896336938310933366433257189738721082029496278375477002171292474980367445371492324852046942695839134141338578544407276019367499784440873618684873169022385221678281398880377768098917452089233198669645349407207973539468857315251752851372816831824800237396784302205687726320712760403827866997999413093906083372298898958660695742301820274685505173294157518999958385574198068487848360626832754575139153100515033173068332817765920339047868508265019114798616028821683886600938118786849598790695365083349058519804326391552075516362997065439145210702446428956658793980971792130112705171256869701970548936582336649961693688575524076849957708043399503206363788140493386416825933556204391678671381498862898108028602676532112938013203901234317939818575778166599455497485865133240878906336053535484043733531104748198928682545635160115649385457764765773464192112258927549570688128351949099501518506867906814646140571402233859563618553743708653554796608540452425993585322441540763793546981805146805326248211975560519008059418445068598159650678872925196780357966720759801927992165438086830723456865339266096753427013514792674669393653685010040380970244320045916853613323159434766686757261177682236539143899857488352827628273033248153891052455981729879220265083556511251430319221628857453790085016563864474823912189227333007772859064220602050682692576230446878769584222386563510575490346150927286085940461800688696250194605898436591934684603482589891923905603351650270202167038674578847297965061982679833826117544965057652570669675000977643228956293927406175487720418245928095867885289151818801656408502228371020305592743836647208376672930953800995982921155076759083014564384994062106191685119195842327798371220905121620264036462586644321066697324822334738017911316561252749372406848023004997740357684932960475503677742154354256205643251533316396616016583827194418683821300033429734979623431594580608136744874834473753603688345221122180098677868277791664117979104708490896749738920404546554212663545451682276548576003992449302405926728959974902833812351034074209771388621900884584210285959340226371093372710786591133091730578119600119908937980398740055578481676022289815531011533113253484195920513114090132860125522744362513199705721966824122471210746161736229886619969609701183679771635867294033897049743556178454586149847624741685057317242761515469844952579957517098184152029199581043593768094073294122247259441337060024387687507455505951151979366479348095123737401498491738689928828621741905495121174631369841042811288998062827691349977557505729650636359098231454072557031818223529828104799341963726999547169202130641665009563191213509625656544282271626000565171947867079115971708653926869091566040479352806260557004895286972142962887102845187203834508498892801415728668321622157303164995913428002305252602087937811398101328724161881562934890017546162381843053683207100581372967166714794098250784547219497574520027348153043088376157295603604504339988105632984864468012400402884519629795182757395126567609536719926709966561663855094058760405752909449443891605399041302838382995388432478195736802190285259302301896856623217163236678656147971377734866550571455123650214972058608408771593244482423703193257321143952115885826417200613533245461392145641945703142412782697812706531434080241051803248897885764662312275421367891608064956036506714799017633237597076744013292718109043099839347275984797425626705384095303746540684164038865868030833659444257502237900489999756127336531028062353364277601927431501393266938242767772167420353906406323619707038204441426408073364609592397490112814325169721626569296648762597063841820272311332071874043646145931285166162047753344139566270404169327814867129322085724335515956170109334643367825232005018130172593968620263328839946182903235724124966082113803917919213190019263677674335054338424546968021015115253468875696438263770418949699286026772062392054318513795128514776627991468642558318095901547918001454254465849993452966246870240809895604139332046645085494687407893436100311489685319252635811165127335626097457372405120892764362717761497667073828192364949258359367678225769176211693638485950428533016665163097439212796659866808132580383734274118962119690361903448423011025325867191561416011865431412415107344661936618169329921212504453957148779635441879539999404152561716970622898853929294923469566752900627184419954456426009342483423254203640934932901002934484420203317506268854668220030019160905721025489815064441863260739303888713471378051878383445730644860858386719284842161410907410854301308171533052567124534624489373582479392635649669349648780286413459379977297477626676290775585479051639939677417201462084638076647667753209818668414585631720644068497080519556390955643907559483600188575476291576330914452601158274102035912848891888738963976257470278370815302387414322842230293434391217290288226642219027329965895755793617190138410565497621526326227553906605333774819013921638913519253570192012377637323053355842523219465985777096724302215960381583208871040172583171307090373299653042147642512570622663185235446331332243641175294945036653367620721118833577809677034906699450347624597249614270967711139611517126509180373442938869141469700203803966015382453248381569563985463227884483705666376635130908704218782775368274329878709117877609680513298942017758909212031019764992749307242752601959424813914542675639823688298335025576397920837752801101193324705476884010384399755191109124651504453361430025461894122246004496236613421407923244646422667528067044357151594297791055883534042415397283436415544654265012136233670200263653725728436363510966309131019139577383578649104500447460411108913223781590319422504062339100982962443940738614123353843978260640915003911351458727294090304277715881806833367603938832576101057255657647505065694279654048974181008624149442952015130191828223950852617565608666571503133641852595663501852748570433837156893044856005465325193920213093520233265790539807192296362323213653240268716306673429449717747181150691983841830196323140412415435970010816393777119565891371446604168358889670340343355696016043964004904109629524268323893813535582635080811446152620140664015268182629832109530940976483669597806388066000413558698054874699869344937667483780773151295947688156265620596595196226354743125616380515275097920593744390972376225243250831078611752002103904051085028308594226637727377941708417233740433762744910897092977526761835175328241263626351129687021879814398131486161155500384131655152020036677307343363563169965127543769075459447119749409533050055950375307452801223152125589525382486749960367794476466166739077236348277790496521472500283223530458857324684847589814984218946848917296028197084934643833775383172971952061636148399753356644446350733736151392034046395126184191589488009237166331564211269252658290239989204005665537974934861926423480360383028359059137962454727431544331542684370921115227956604471829178990843385406475001599686996853428916707655351610222337361957807543951221107509333192578118960053087665442613601355790662843639917666707134967434362335966340364863048777286726521880902176518100110771926652809807903419978576450581461270703276275706381057386876967688545345551458519433908002371586146587206273484265887534233543493020443309583412775621563023866097664773224840276097174267720262792730932447700107922815756050820366558327107965069745115413040364706578000200768206442416791921105866504643521955122660816105671668808927044310644389633581543413635628346500985864334959823436636628610137333536641659282766706321210116660332730635864225903633027148859883966341789637846034550849369625799220640056344418579499319442870632156634989020419492750431265022044801783524566275523820029698926471627255623224593059215846190023029133028115442877679492106540379287379369191748688120648763024792235191079305475478491389866268048119538133378306570248596084314038020146350825280985286848341575263360360900621592991768788158820904536394987292854096171032284372316226142442074878276339112808910999345010609252978175626445999478493124327191763283347355629408650248662489155064608436458727275655950994939798744621763274720354571903586247402059979896480272514844641641665969547625588344712365167306653549345826938106759823306644176018888676921539720039620470509660836648372903593254550817384110670158969053534219749853819231127242679838844140189350449493589926624893990267755331863866684894734663849623507986933469742546960677069771497827427103452134342036871542852099352166288301436824358248714501411205308819083850790822129014774323894580837879721267005393134598624432052073789702040052455728067641370061758525911025947789794378687736722883014604411942292366987812899905236216356727733964329028959336187230547652943746941294877661061768732292853441315978011035316808684438838179552351716982116629882713526525826414470160322053213007965451725630349698102613002569868822815029496882556665833976794397834557332566853828155408660730317654295217418901651245587690530713961331307661637257593440493582282837155486459129340365498312082475950154333695624492441303665164899699551193675383303901563693340633694364988366382387202833062915915436812430937402111063042633062920407066503747270753316611107034210051928126692622796234359711563632192672430830694996509740823551322978220583862472176896659417292687063016069050729908051345182368641134197656523127591172510542737938816894803159926540416666258034645678377018826681884488896265520669145763104795667599607950283544848200950023849078765572430066920405112804395523795831075887880699386533019194787361955116098739104845856827699889227057056969545305244489516285826161858644262821140951652692719521949536262875718039382938547260706149209842867751566438561196848650816592099475006361277928927162702662974291503540727141003642390728375913564632635173728446637081938960321921770095441627309754182378840759986094071747209355589879375971144188917870161385758829438594231251590031136770146605712626439721284312213833704874614969563548399028917828426647630079198438533351457853698917714128527693692521854491248152482552917434961791202059380811282242828985091654709730519164366137555603536622498574110920230664764114634363634210539732095292479194508810709409409254003557727493294218034278292477459526546124303477157194087711697609388790263475112842024154788107820642980591103670814230140873504928642328770152941215120993803507901273106784505871988356989189320579802904843490326337100597282881476008686480526914112104788824606073221411687774663301527377168175826229299316453062381540679268962965190157923520552020271701030356473903006388922936620797093267501626656300515848155971480037511436074897261606274065568066604861032128935243805028734953542358149030930654697022523294834679248119097966469924097015016401289493132178921659662276989612819498444095772039443015313213822522570383915889190431729333248198317446532980553791980652638367880822780912895744355087197114558549415342163982789200235632018418920540352815357783188107064767425166901595290700192145800094567694388951080225992498491030343382290335840760261083659895749437565957426529144085102247146340676507334579655805485252949071720328035289379457356389061307242276440658913161423662151291246511260749880232740985162285324040978885010792367538412218350388631024460767886836767802228259650933649320050901739440220161403619642218950048300925275717307254438201035315506714116902660666690084352969507462215088664849405602717695087330797142216509401002669380375047480321030699248964108527739860415449915698412543386857130187451952977068619720322776561312658298729115723388071043374290905390599259139842912487949853447853612689384134167705485093809072322179234019832130183166433822649140546257951567916569423350866146502059410965817282419335034561013858765151450621585986670826172955976100165388444428725288325773194438665537948911626928282569021192444466826640794314137229584938908781990546621118703659478569184711168680987292452435168462111871769510135798655238551128194737218539976411055167998364761756954906727699641650924861563826389336060655611972066094640610411602362138155289215883026801459092545411266109284309698277754219992922859160123751014042549409458219299518982728466857621200042942021684952802087853607553528871685844472734093819424385981321109637735507125180117442771909769659693114134745935598675819489052863042167024548515226779173404329362691741077421526555284661921988665153941299568741203381599998660414705940645982849546997187826091598813023777001163061316286471640798006253229233998307005282473723864468683697414083351838954282605455204932526337253928765775121011858748075965980303460913646398199680899176001556130202416551262536199916211735873252714232356456779648730924150834265422615796831544458983991316263274826147478343431674344818257348897026539548288750584944917696933443318223440151889780029391573258080912845099100081054076921763270082108560369070144814350611793435687656305267072903058351024856967285423383538934616020870437238668447303559464270215437148314629609089158724751338100803932230611146598845149172233367554319013202149027466462033942442664955121873798081862648531309838192123224847439768796768316688110033173801980983564346700455727130209766398520785385340634467559923789942297182656491340632965497220237157357452121706632066757817578567426750079763717611625345781038101573281952052223080146260523374075856484308055514582246973229383559581347282968381336537947429975026009111701408224120042407980735065113314975574559290106055584035327697664654329165225037341990833315856337036095239970042906246416748291523693040874992394517962830820979925365831242649506751171488831328458956903644243491682417103671992799843513137453035276103175256581598672122370797661394461713748676573115530543907128392030585362702357609284954952523953871515856154909180205401002996331481070877027647725493835390127284115244309881279134295240126428130759174367321612970298297701301724159156224231426005054816316021702379057724975021718205764725970240338524009955201838099113561161832765173590103161363158597800021459105767784830985989728185423984505987165247504689693326828764678452908563306225708447174783766679676443931958854286393026792287989830305227001237678623641777854404599737025453205841654058456506459155068785117322575753893988264993983152728590253429108832940141181956130291526920307871479010209634103687379827975295904796859595660244144946327320964808817790140950052989771253041488299418499574571191863239958020216075717999506700918520698511364662626352692854674523728348205755079305687745202576453657151299540441826408803266408988538712676708578030794261533874045781096166114231610093063424645365755650808813775288469105010412005727599842211772518460257238815585469318700180245152695204477936546770987068211138402710700519351408524995483385735731865357351168835264856778240285003019927104394791561653715784110432867862927344948316395774219368556129353181013205430644614190696214598462371139414151669009462204627526787920344111723814481363440460282863319800637580539745929236531768243950585387995854285171600860323839267359097885518221875301806143123348240621127958051424271995238252063136564749203278762493300913929848562513792325241806691348413858380074731641812743437651790486693434617785176086645671410323026444817620665818947849304666940210860531216313627151233122037264039896793110828308346526470458531496927793562508463341050975738569072512907858177412790213725778236190210380039187095606448086170423276211384878093470738154704587973283401013569208649528987682962851873277748520968888801361515175874353613675411894007860654036816363632300698658308168132677498213638535158714474887419433795631059115314239159083727220238792970403015440597004508202873998928326595640631093348986578100655988643891860835333301170944065880473498390135853066851301032193179778606240361043378090366450314791217136090200815587089023801670239858116531989430329601947305570899858878611759514186176999256661181975627852100065493882252256381705860383504217574545273561253381993438145936806149903459532705695759905909418998746744724883489037420912054283645512071378091071860265010616900341131058946917832178880505657335124813629438443137956253490081443930413954607272832366157435198848180461609511081782639447631427467117324235669660711809578238605861002654636648662910336451695813131330905381443726383310428238381356314226766926311458812069561316006423021815356504606222583243454183584229970627358333373018116284934021879064729438319298797963665828641217449691359674018828273554228931715754119532339846328876172245874332465721332722468120089432026255983393131557972654296071836459801898767936279909410080026908800703014456825765572307634543681634740435275790299775684273689066809453213809739774026655995729316218026869440348949923036656777390984723770316897689889264480282157853270538281700135779696159974991813174537333590695960422896630734343941501749036181397664077078251646636121901079685136483213824568850921665770432421903326144015058413829944317464320360878602229336068907429317551991374749644420609131326756952271587409429515815358089783370236616719940781371401842708581535879947914592164958490204264720258457897979559220284178757292044205523474289083066411180180645073099606182910561442204121686563657731129598030624240257043566275070789743757921111789069281195204014168806891737388240022713017575821064305770586168531480382866379386693646755035882076190205271466566071178597087969634914838833717666414181357444427306700114649470181548409779767094176094921961842452454931476375527797243701263456230218858520608506764078563466455110313179896943399201196220953510742012247194578045484660399877928473394160201016057458692808922513652533273947171595603362915965004104301752752727886383192717548132191005472904878569714328861438195902799022727591022405490504023256619554250934170900976429207275206592679025564388238965605617109303811893902035636122516410123887785452274194899322396296708400550803591798957548086336470958110833631797110226607042844739055613296457873138928592458865054465440176510857683360909386738021435649411658619730403267948488173664319717674578600590031584930630987053107497397870843751041303911029120209131609569239174027948498428231379826632912717746787350361434131818801528045571653926798808241759255106275325807107979132616112570889928983412685393596995012764730948294306888869742271741519947169834067150047316657521594388202508858265290917173749372128300855710268644016432361618148542387976258512918236835519021244232745237319068183311912292975251015664543393047250418260744353049618390558748502903629378287653589064056839204915842868205711177698475233487834485387208709842009072861028628082407501253584577041642236007446418927088276423256323920522023675154567022081008402558073910261870398304836935791252365900154881777643073230175413631691069663910081314857532290549525472276815118928114571529716327206975334424387247085123298308430336910322518566320901728626671793686218567121875849038271348544463276321687676415480415658843777299250166131047079255708916349011194850090075848151579943165724117423435265307020343466969952656072717956025529734007359983842490620561595258150716955513066587230668235397584498745495020735071306625214736926523324053860059098359453973450526528298966159170762991429444060908379228158921501398260021581817180176435699109160997925590552288538747823132718945378868464776029971381907728547195417921840502438794325499161425491248150615070415690441553328390207056667870447187419370921885113539816385030036507854324056240496095413507313474759742714852035590891716760342266873399074266405099097480304330319591861778562465929707636604678279004577739375585018977628444819128467276676481125295107907892551421912661847544778729985498000834751764213911272786128978534317122399922135078448189021365823791751695566440128640528422041808361206251552173831248722358817733984723350558527964239950735367816480631491998285009070717319494461216427197790891191841636809317812264411638580942944548872408529262094114281205507514493875875441869056672263279966072809518859063189193086075755597704495272145840712319224961959677863195765325099977513017296065090881359284240118675464512848909938955204102372967925976366812388687657706955708681759561769381413333152179425424346299728819200356376110681982973213496962940390543344951229108863410348182884145251485821882426318092694413829260907602829562109759521855905164041809879391466628641820155314904707324467112338034630366717408821635255662573451100725197179877735324418796935849388193625728223372925045536010474564312436584371167588943915219331888549386791743872105068923331790048927902733657137532830142189075075172904635258113454343933895153589150354284602468174478412131929471826073389571800181243888925343443499227301927255955691730186249647384392715896172384590905054465691361918463986332307142189955676039243021710114730915503307409955560228922880001464983452218175458573329180596791290219338661088523774194294502264034684144274095811541463046040373152932544121206053387162611513696271597205216976570252638867238786328723772442895378636745597083585470318603291910631046350761019788096433681772098915313174544742160038135723019880681985144216030227659994317943715824627119988923839335713868176997158643705446793228767543379703723012694733839702641734544073250538440875801372273754696414413210652143267373597605065525844395272681517934010903337810061518575865445120957521689748279869308431781393812291622845165176150987199614759429569388328040803167514777798080962705914778261368170114428205212392067177069263257024659541077796734425638369337060778293706758656679498091111552490881777374633227095909516091435018473313514815364769237810855542784572208914759244987420472718870852980077529715523315589040185601375526107764032786809975182454183988334363430915371853800604871656712382798499397235952867999060576978454862234798887429600299073860109122359953523470065635374730630438591918246428954910695102906193619733105008533579373810248574202370829353787575457613704818761029131047463896956383625208465817434103460519549845036685571729618953604835585574198957593362735247605196340697966393375872068239563088049855866461051897199200180291177343419527832683697221604185233288867534741388375170185288229534300582953910944286932883718723439132554970222842464036409301793387003842197025920357063695002480318059752735817903147564972105426538355071605647479327726098634696903104939476043947013039594134418392962853336595425431331382847346284235437402785946696219053915427255161873498938036375133037022881228159408068478575029598397480020058393937402453384756207019218648910258484687940763625060825782329699888365411173213972851053106445588547279903438891528437823467993698623623980151477106929184836052403582456273377122772431579054070305999688852773717008743132943377542097618253027001771304592344447475060810097876641133282563429154625842180816498017033349515360508957500767084025867656031233450430912057700303306160197962119966226151453752628279025509369958011015069390010466071617998316184290357521076160570907149085070586923609274331075317893766695058995682894751488537212443804434650422510951916935137742962254465553429758649595976146299976852104082647211688136289195276468126154004346181524499314685513199422006139386313948489613473965229616780848323868796997017414647738749634942992830268508389628864713852321413964927669948430208374987500251067473100370974749713307775184660366925540284065245830202978144488830315795796514769668474314939625223912750805023915946563707756689660270284152291208749021615351239333289308623475107550917532819308320132052065249015305417694795160271508765499672230699035015585362822856299815819939654465643578121420408446481449960274577628788583894659226731546213735028360864396303887961305326794609310070997934034173371858299227411647880337035203751450121605183426729153837630411046477633527578438522564346759901428414327497314177354905746680291254571049847144927433218757596373384006134061192432268014688341951500768349987132647509090058802473941881884873477912673068080505020839951267427021895697862739285143695443683240703214563333480908462317696654713799611530771313609581581881107655513047367853415845856011364344811253234187046577196403111517817933353255653227479482811977648300050916029598641054782459954076049647132650745456598458096482362311685829128241847125664268394619049993437748100915307976355176478158359293136754811899374312381166866488952653644265736121959340639571093633643416664923369933171264311381951622963048393668200289173705707446075171164225068863573473502442774870399759047190719151666248307231221025747096959406551523943335241247118823130401521230900545855000330499913255651746161306873181497375774775556176411298550968406525921785764225307219311622366371734568489660043740057888324636952414559006824206106001474071038486812669022711561920314686324539269840454476720535114263274493981002968705316630916571459528279564676241891797466444053231630152512810925919694416318088256160211351998904632218211282260592762494715883652917516608081302453942304238658705777150767718370388742239510044693294892849930685218030006146414482027822745184277616874424930515840358980264273268785023343986558897824573961659342334753527080879630940434676940836396283292717900473947260782910868677277642833393578485274965371019264829371615701337521060219700665031425781784460083304155259076266313014579707566005739168745375273736305110823424540372639824814996115029759607762870440886277212013124749084764882574684436534716644281561794443497294774280457426383481423339036464254807885985227917625966061872422397223147476083002946995877167949063339298100880398800192621117217838767724155347550251743441899847572627595147376379298996948494971609093437882004464703576039731927602681777472747587059409652094603083225372470288206660361160289113183339392952233658102776754331581284686254580499714310052883697579304298438945057371964923610508219420483390385955678493412453445819835716581040072350630915137436798729789066973393376569455024678254067881379745910467426907173399955987267010003410404983262358044572353012207236836722252252134907261666817513885644183204966300309456189837279151660990146081008458010734404974781349626457863456243488425413372218423358206626497491000174424703385418164704249548001804642188489027621646092642863001325284057094633175590162591200086200049457127186452808919645987059716759615184701962201969071780960946096800538783659418895332215388704284992878765533360591583031718677456125483395692140208341451690916922039347707428115272747960591281892743370025175347351618327792075307760808320267419179984021978653275292570638039001301569085081464373392726112697151016380236978957265149534237875553796816482014278854435037791334757558917212054163028273734063618503495151470716949362173423361060489790128359425199681427534586853460852168618365569663698092403705126551210522511699572662261761461292042192892319263947197174201086886982119969559822466682744201070091789562684581866380570268841475690530810571250797276019342728071566764280511828329129174532552455018806008311530683594343295905045261631936007712480726610021670376372858204698521183748514000053360641138745410282586913042440180819984185162361077065532280802907753739247443772044945065268404247827434024681331247765049254738928777629319775419469707334134232682117729137961007336986380333380221567319163473147630370145818157301091074270712855162645557192833191699507867172145683893444765484297525818461563162408261668904042867240354225789265059136730444155716354590143769455033909197406057952360977158053812982241275728095999474983777484633079799850522018129951408830408902777079166615704837121781304515496541537185018009850046970270822066980163356207749984907272244428235000430195455775577511864819209186773442291305926482821718970150464076847202225696039031620804279628689806476019266307720091061970922201799961528161898988671402722779246334411797870739901171342758497273509352425182816095986669895200335196982801449216919204546189782199907228642169574118521517374439465215207107270650658931477264008869582830974521047139860355631838157411865050497584587218388510475395417650501699454278044453369303290496118619956848663489891544026007630633115355603672835497046820418744450112559649743854560002076496699758340956117417423840634638760385489304932569124736077278967944829751309408708551137797912060056347235429774972562697131468651989265386482343534868531344366006124610165623368363810980017323609298367604744127671334145325685787311089749848883792450538216775004324421245535002314028910503176174435173334885786061609161410224575222042897579028177372877982886080344934989065520890811674521274303519368976612924371473367224628321872935509111811534450767231393230076159938763002739766101550638941223642475719477837970804941909869588893999482955239131595940772923916891993520262232046889850629338851771039615895106915385001711323788169252463990461280490798084432791988453693134458977208623607997573743073853518140757687899043230084145660072552101028568404654363330329457603897154011556088413916464997367219400499238982314070374086738148622995972313915957317039788839831613607954143430610651827606320620079596924137872020176961477282152162555700806831546908690272624550103085676483255310047188645628580124398307358787565631612041307121744979451904369374756833575746571909384455311023000028772269125644598971669911208454434453070391606474637720763185527180853596099066166143892066760460291881149241410502514796280885377983941817837025947027376875233981727690810476966051872811965166051885944643342217475763227048834799819295851987098496341453193254355001686405656329276568448521219837356012447423766746322367289106481836087138504834513660899332952653294230117624162251485882622761988252809226416273222990045272877217146657752671218764981135976295979372053524201181561738553137992266006113191218662750622871239714572811070682007234525607584849028256688767234197731192001276233874953496897757041561567307587952652362571673028027760012331889232147995056751201058093854229518826891114274839388120030256029345163387219988230260093492351087830985319202663102874401073320678899342427117365008783109986787838768075123216173920320824183156636025797856124909555382100351585683573845775700467735722254687901254173259432141621751346671568023516809243768483302397834087530433723228555068886028826141645441056978163202005821978503551505948455484386646846199589852258685588277326516337851034324145348563410900522010043059503217711442786372562194911203799983146023522758866906824248564705179227786280484807777928405715190756147298429647914346627194743173700941481351568178845301410261620460796160808561551550873513567356616219424515819283211734299328316696258749311277196027163086009406991269531891260549400903720436794842438823385621126468078966772288756438643936939303744302961838776549843123105294420566414760079718485077806858278020414100207497325399719901634997447162500497457816138276477586988807969510492650603099067165014469264724635348004194970356174832816933807912935512153395132678645166084771596304040086776106740521962098870739993897220531014854651067335759650067089272965127618267208791565442430527591482655513212791192246646072271195903153030180521610521577521999228927461720256607393262191917735426473688995665849198698999404400748883036791980134825848685652425490575783605674451812978038595062082064074497115187192345518161042724115775065004716612615542472811371101332721918602230145204268449823062612183260575521510263367231924503172729719459129910006691546657714225249348100979559444726244345331918199502532080640842557952297395278142546131898213735170534883174471582003407677048173065392789745844694988323925510606756187242683143654448487536025607650470309820613070770457857953314388562094413637679461113133451175946155157799783970038059963011395828615234869056517990495290074649507564798273587430583027780653307078295677192537418499140244155067878250792420988357198859920895908562939762294642872565430682268052005284089786034418350553548699219854796265946538631106588992739459314102343213199001700042955807329044538125735141980286457708102140621794654091605674156382225920593054237108121242655035001915392758553997655464106786397801116167789275096051994376159414175813011320278438398873525612863224694998094102340537681798231927051588175371363515933851658942401174030795029222178280733387584261631258236110046729518014978038292969512209874904854302935598659749189489366115001708423559188572463995147012504552790862424833902648480626353500022822960711770066635251401679121580576360422306538229023798592804271405784017976830197598626735665803056623712930454585953232277782212665755801636090991255128000936205201064612436148562523456549560512666434528026400386590054974686479216789784183759666258406812374591206188074243270677610373912401619403429829443263585376782858035514325255665881182394238758852961037377776776593101608711880515162935875536977209730250635687854447529892877599652678214841538102714982360762848306289570786137890845817801501963112468151125143840218300717564159359641167326662066936865719061467112261541780676855047251735780130771568125542450819132835813065980619316098060257463608930488469660722131357720180121004680559630323962703692978894868123520379003400562975380625754438638797505993940320412842591327417499715308448661646325203545059574350286203278438378610868284061687585211485070479782693422763494845811769848431157979837391213183676173141351919167882239881876648798572029232315641889037350027478883446751321544160854780380778920776659031917009996502134418471379983305624458437735021388436627999368390506943772346604234727597132381362006048649667767720017873415677151005477010982273763545856251456083225742802073735614980993562212410527104512070895817606255795799110931135446360928551840591058496207156368217979785310083070654564793008347673807550301973641059355455307037472621228256255089637395852136431718403528950546342483417629193523734059498470094151204941024641568466150861291636637618185811426751370306287085676096779612869707666644287657821733680757389522701090376388090620585268721059390022764207481601916233596214019766404048680350230770760869799237729653956970444338354198114369106086182727250266678700380925322221502290890223369028838818217945860168826691772906756487628719389312426313722539409422922596335571309235770810594720466256364509598941387996767107325374770148162355397199787152265533063963986093004128833618415022820142636171827978053086222583407340563060416464305111103142732183396793317680734598383650381426317311125535979443207001700667028908960242298399479846721481538121182813246170108731058244118441910354430444162874816075773540199960242840664203678830148230714833372804235718932766370192404930192933174252759844340741796368910427415016760017214856365745454826587765233535079250268228909657758537618044445188702498816131448515942625509738902645166734370422084800713302455960996788917357330403149374504224457404915945974987290909923236689445564378475822174563597058240424337990420116649175764686836515537204543007537740840777484798693850831576903888949260107599155435664790937819651948159756144967451206313717735214328952086595804204137022689848160894411585791177745336639514825428462834016442742090583857935754044594232132679673590621015480424584552807648215225937810818815158732134096903214176450474183316019089023059116090001554305630716872581113877618025168728543436855516628350895452193049950215758367652104133402018786504452251437967505271753522845630195631597319326524267396691246654916167259486478759317245447165540204945063094546939178363280241539888464280037719466183197542870717366113680248734549603260920265349048317090277654209970319788894239384977683157899462168167519614508698530579168597796457631964747863650944106649973750611246545121259073055581243331129951803275146496294035406378755510711060957560321042295328562932200218726953493511754706183374172917615302340917052615947612962397467020062843431610487224622834828306239369593179425997703260801608414700092679458747855050033785605659496552272393128280061492607780798950094997791422638443166764198087181624402666294060387155301570008417647483662317337663523780604267099566889407797313417391777682403784439180740195033985066777581794562392357772816685690914163193442940771985451309718649939586879595497449830877831172806917107714730084500018426384732700883477155938991131318038551854107776773609195338151738934118259119340568690371873870142925752342737814082981012971880653644630707926597337218328648589989628983019554918749538751408089810905290523254337947238282895979212837889973049306574973834156182672330575477453427918478978271764578624032158392267113275187425471227555817724989401006609317564140204620221702570713752987017072760569395568277217979721225365816594452509335816545749609506786090948459243249231749479239757495390475595368774249546028371357137810009473336685651853365332066900867248285058143533463503624501427352388102980643268070379490144213300230055696812291613146347784399869695510301975858333062028010480815734700421448184371980510023768291343603598404283028903576846429951973852100101300903430521008466794550121595948857219181761751181816013493650527162099968262447015262927340771008338019243256928639455407348605766250889095962734267791314248784942181035929965818386335321911641948414323101948956509956958671865728508450746709062824146888232983069362523897584727499284198906292864720894626864804206830547911472309949131089845181329486174626749398027611540665276334306367531214244262390830710576581908271469517121972362987107880819667310135708827182546926399056748376887645483549697518830814532173301981259345838448382158425782581051124678838737502486504156991650312164889452030412553391576860934506510882301879080984157943160488031380256812191837415433038247473941975064486105831030069763546371255156179499610823192566863515798662142350106923769187895877442807014060026429965126415129215322089846324810111285652734386374496377706493332724241444073383621546543606050336292273919560207505447699406932544671588116101772661747540117214285276354075738163774762150325283794825515524128780525670411392440047834979772539079327827475878908661445461783818409346551806764140232258185900162936732678561912305552098225478401999326926421330082374180285492662414732435870470384651719838136239723862993252834693033374570124939687116346632735670521556001339833456693581156741198802117904577569251394247181609253631508956620008100529859014390136117645587176213188020702579294863155300292481810683041503303906351767701668308306776825925574605128608048417608429651618563442432982917230640771031538469826550440483513275698889074494549023106894031556159970643221391174614303763409029144846027846791696498637873867095035916523032592439939754265519640409103387580734125776315379729483050565876186083143506473776683704832113730626307115759764474085408934399462819813039102386545519095676784727157314071108270756498846231537381634567897631823820381589100911970714151840167164367917357387035052877043735710553478595765983585101733216977287254527071647342109554978932778923773165056098817169554004731883866563354545043732390140056717533784140883342533590711990898638132331622092343223099761937982039913844600596915970621287312575489917177136021263241888493552036192624597775516421570186103043154656206166366432024335973623318722845125287550728731582524501206983595983926657060843227183727151809789377336509849840389242500580469640917807886464608454266091242816785780751719401383103767396183528750462384467442645015365490054655017904728316301364581256137005533939206950246127530648538053475954977186860836789899639842126216638151461189457688404041367378596588423173865917625035577933124413780208451067572398962206112443764804100113123165186437139214602816162554800382670030527118829711174601156358049394183301704861593074534528060933624980387998923482880204788599731464941239799185581802102294283353777450484042020037272443431324748578190842321197255708130696051306438542877929117375906445233271556266642964276738383287294537605221773273695444837127152561695923947190407557805669066978941303335746688354153320565373813024879834985730817049158164984584470352081162980230544078788440912813284478158531220793969277295034553304419551518764924149742426303727713863130192271789368352379717195598631260638814423416318616017549391788965309827532220564165788789879575536922145079370503838404003307290575888778704755580156096141074550813537625301372631849643961057882264015581305467531420324676000405621022409792737542176259643904595692065955553545889684586641861127425636484582133480416744966562110998641970353324189521885627972867423356304980906839086756055111337778095470248522887813668657991975141181368996801009173621169690918386401567130696032021475947116816939202625777071720900940106654510191540742656214189056438920178055831091741795313091790251978738373261923335455919100075600609316169232750705509065265857220939908209445579542186989273779941874726520818694225760479509414489166021483209041890949646550850384020134899397274231381183947495488657366667467915808271410510606186079396702474196734359342557476729555434395012247002618743147839728926440923348665514464428747947627761843005776339327735614311344197726214093398849543944703246931790209126329802916537875027434887844832583602706690338284816833876113663600129924255212335216287132088144290119032034502946326841359172806901809423463074238829724905085839127446439944007450997790415256533380790420633364005158145244638597124603980093191764564831377550286189614605421486188360929901161888783766128143293221644669616349615882051135449513993692114524687810704205481184256466684029136222825566272216214150854056173605891596672108156849297447573964771213862936185643965362708602558555543448973854029974763465251032191263517983769261083666306106842143635958028458161391812031213270697567256117045934135876602918752949519052052189399605065575488627210187738028796645444882808459953852452522507437889242792820173595132563551195786360095395384029235273951330988662876444056147793714878856661405514863400998486823581046745313022777015680521477105074160912140214335368776328007183570623155623651495792857708722055051259871083888803215337369721425432554395221666516085290082568434911558204459352963356641909126138858136111340521292286921790798840933094964731394998518047299911305840267114161865064832701950871838760931778330366319236326874118827323711944466952415559178917678448262475857238791872811165606372485984633598148944800272469076343516967650572115781764290810240198102586550498911524989881090313320719544584118984849157208555776771258442372749577899747944611878384104190812798216006230875233174194593201052732402458198218218859987630303830212778480996571453794301083990483412970824971899602082073239521692295207979428088012018188654556100965659091007847259555034885817595466109087654183218946334659985212827588629061937919038202478421525447539622167687473957265699040829956665855257323977458018443642823815912238079253207330405802927648248068969502713004258028527492209431726944649433103513342850205024503736851129521341643519392888920825557965502369628790150080527290052954680787843710179672769281729846337997897273199118615362669625804490887993270439843245648993846228767195445005087901343013721006121073857494681105833602788897012405066435773381537579724739853587102821148568760416415386919135832842400881498287361565810774763059859634627055427465219782864294011462035632794882820027354726152257371491122903281710903085051522384025104565568498122915602187487449747408791242931975063336764245483180209182978710726484527969022468678215124223782314349378234723628400020302415347146082379201275055372920197400640694957549014345357109106595496518033627556063125118461063836262216272798658465675264657554628871393189970297971449258943146061823572854364246198006151733543536766991094353934150765308839797661562886341182384226925385809175537439207480411704224722602415554059380184644099296708881434034513081196465978657263168025209188104968379151151044144049668980751482061969777032533494286783867581715917996598229535310335568461678762641827947896628955457012384045951125126401414652577950549971976667413521426399816900239213151183843357933912402397640630710367635075373977793777323493852373573864828252412419564274407540067759640096334752837501366686311579021030055522142383138841872062150863804016366313229340166107713603065451914510367689163340101948783206697253075518408925263745306430084859726350559835038920089943609552281384873844276024822658953702955694871088706135605952130114006430931394585322073646951750543905993943587477727083119173297407640900497124532894707329441115935083675075646857550386071309848767649072253708434297555191490608616611452726874374213688641648862858209322671069488881590488107161239039237726007168464968052639280772682770427751300725319268834372834082340130012116963888136165667405352736941143272901729082276955619670987772575066802480232756506512847577643098509301255325150370125996904470112145397711306447130785671968216634246035324525062636755401731218629496178742958274248014377259052823723192039145808647225580961680766002275196371484211647995946892680184055836033195523807188779630579228121277079270759644464840504233546245283394030646846538504605158977049444686703446468458607939051070226159734439739027873979139453617190449351746067944008455812872219886441409083937494782591066100363770712426044687028287186860040378756109268968628825515554563792652077222255131358005961174434930648216748688264015140152866099860428995591116234078011820383976801239123166199108127215336998385962085510859414413546452832812086273820338669510690250944038165421383606840688398801912932184612610022813457996077071714587493555388091389224115005810114295325799372759652991324635660704112096816891708233569663850842874992578851404649449151613324947118351132355131096528924052619658803034433262599659808528343652318298202812775999942517344517538737404132413974719322911637677710493908106922740631913634745166600023590389514965639387392738015280995523728197908923544956665298399224742822380573646205835088696078385257736506459755208833727746909378305655499557904417700332214454349624262390283921549124292136099529716057130008733360428658742601774305940307385171871085105350771860516673955017762461441429125373082375490306317394458743665802251005500165178583549561649992918620462411053646949900330326514746241138078159138689797655725664451165356616254772793165842765363380596983140405677867825394087041949507119993278513770582708262212256560487435854451331283479227631517008092780431214854020772598203462602891713372248300380919549974086368490195496440159901700231835696979591201310209906066675041085800981206118782926316291758210382749652511205399299460912568565123125154925043042720013749777022152143161729481980754419338796832773781777621367002097339301214165697967602097878067724642496999014016189774676006347254870102272035052488671582610575983264775470805209257016705781985123938929890384650249236324248125339419493018935977832222067041120135444238959027756783209169411249556505891330215496784558859059873384665472462023473194823874690235557010976196464676329594060528221157324133632936525883390191551887377608551250438171349496292540777901565996512739555429409822319220743743699785733390325517267913663726416091693480293264259295691917150566570581935712462380020531791865625372534838471483947932736946233615780558530542725477584010127396928015628853195127410286874751070239940276588383590505251758241223969522764224775018695680541861271947609887144402072560806157294121555872007891801591825131353708487927302056628651592879467064162556500419024535050525189989666106382667480298419374222561343853142954937369537406753302121817792269822084077047322199162579656065446247042596069092735412510928131245763220471964802589030698792324690409611892955664126900634266534640593154079848804184983515711876961535116660978970111922625526500036967148137927201671924981812988217479231934557039309441670022327977403600330295588831055002156461723183734366818986821452969118603585250882837138966425740539745221834061504514625327930833219290274343494650762391109640868570186416742061537890753547406309741493404707630391122304516934122147486021684812157460218035052360206055052652666264750810401962816998010780406664073851839104156885571846121260427737447784957921532354530446619892944449759872334827414464108935209188523982992676998086694925185124409960503745310168781507347869379568829662173208708353671600433256625184018643419774925987194770676540868529987987711139462078135217329249811536375997167318448751185955147035869531062486772527757615139465710163954084242393018316858633026307295446329490488061659828490867827405446860658069408254725678752904368694498534899531360023093619237324945637343484560677472067474160093310304187980621840798880051503301151747512565342763169396581098710771221661487165194778184653683228970563155505927811601596387160871317637986089252446262467842913205229528395647056265820558854985168822920688436366217954950885674711450929556138287461249705880273073643953118300706849864536780428990204911088011266570266554749537553513944130522364920734731692228628472988357078612239058204454952960006376072123978322889851603141172647304697140782483993324948264052253178027182350445323546029547648463750688697993349982980075872645354047559021744452421608087277504710738720206934356496987671420823978020736953311401384743142949018896289227133559218723019042027504086886925081320362994756250089796927835584776378269668907323536044617356213285253857909681567259748871289482154750296101841116767977441073409390638203040197240509745283406684993254938392148649798367473469846881496536606468136725564881670649498685125582013051138593135714367585877488944861040354148966029556457930556735291586788065341137264347855245015068199351653549881477165541059183338932758121818450082941617088631000381776167403494526366011021131414013852927607602562978189117269156728732397753964634090642816998081852952867642625296988168461668532702333979930826170828367641219446446320116032623517673592634350365054286330761979691856552600328666834323756102679039519313368292992968125217584369241397716727326015560463156868081701370023430066915676860253864330566916738902965917208096040954821052514535535547104550514336806241962462696666104038774843495019603743606882955548106461247187575089840657883829697203231097138579816728276001779458953733985854175262410201991543692034810990971645549340080783515062388760204930994604898105643938209806533770855046658187615392438300985410434102051330988028621338924635109414038564928362586723915959467042451366658288926735275880480300496055918248438771734921543967083857044388497540911759715902569906357978554028631668531021381371657460248376564822654378080669713075691892256358397517548043587794105441280535460922837196732731160467942988497073767165646540286776916808485866960298971573082809641536484082956809658195490877840790073209511505580909685997762442966696124415207055081262516455934315286888112489993959472233624284911295201169050549293889807571226705010927753123982629778215231787278667551544159576937567024205250254425891977196859562214931146909416097331363241903578454583083284615438085995978240787323562039478460639791199203404107111567684935034810616485278649740395497474142294036168629297929993594900995588054995763030627025936818359305084615086912652934968172333594382836675200420879416849670487436680721269092653622263139048293837703269337958850354114571141182940009097302290525738978701150871490670604721439496967544941640627207607650364453610294651122454521436022658757181549165361212157574460562331162104095079386055679718802543007979440165776982769503058411697773048131948878125446581413918952166713463705494106832114959318921098038428161100038901056828411571616124718937393963350505953581994182700231182359206354821732281481721161048876573400261211811212758027754582051724912486270106459628577092310538950517906433318224190235523987271475190191735083807604655794997290233738771630297897562178647346984550603049053459211281807066787928552623255765877263413678878346678664826227071828793686577141961380037112295386195503040037426972060618014168907626431573014481388733748494269125394092078124108252251466052567608650426823602419703515231513868330028932257555351472672435411445313501546846320044763121230293086829848898328193528752855518310095261221988761865592438047147265063147260059457168503833116380780295954832690878142428618759147157464814625928179059895887178447472268284169830584156846033955402493228896016426408396681883881755954413242798105323355461130951326579027813813424988677019735951610096501488381049834721147708308070561018138019280215577170531808376269931717429496670479617764515515203145658539784075463959829256836746020009428385058659272471892599175262089791657486710330479115259758918233643775088859809196321577435972293120702073946192489213651881241654953254353116239267391317094568891249254017720338348161801950684842180574123304470927336061664356307721624990399790908293486884118905481845152113792768539099471271660387581513298604503430783704749795201038643421152614651047460829531156548961013565420675892190744097425998208505332552590974978897193373559241546944463037881862617833674997217177534418862410779186752502959077707859569530563303210613475207723469491387251918319071016236087818234724289504933898013169502436654463175679412006173819537346402258043803791265390803137588090572787027343087777076986136700409993482041041724388965134956045624232873634303344994433306975991643282105533908554560844747027990447018649551199864858122515678919561072270492552389610322903132413989815111192581407873021142047500134060825819036093883879773149727985879499946795477952672775002644787333727594747571757220795899259263714777767852858338712840640593618676797659691292880796302503741914832123865422290060574099513525835847683233115483654431108096027412202286625351510067082949934869187147834733092932786718514674492420972623745501365452614844717869360233544238964185353038766590138720703056219404591070657981399970542983768252472203262860466012324207588710827280073679001901051069429238886068531032410266232852973658255525278465645148783464820720538632109815486979053567212428254390183657019977547540051493464899806388165848994258608093177938764208710120845961978975788066789145038865480620945458095349064013423985088878044485970638747558718420287487643092046112395143009229429248559814243572696244445976834928697768654813734983989508320199326360084472909768164285267405040034712976867408165561206051729696695042988656053997564587710300612264979624510619003478031270406703661510579404056523133892287654099866773238774669425829396788685671397834613003223859425812222224692197726091391145730551016662577280106556606979875124943347518431620987489817362594406584456653769197336609109156574334769069081226795825931645294402626417294041181110109400510522489607041007244334336658580381492312702944298343842880731027098947980213492617017066752344995120415116897137526651492650690896311552972180165922601762984169385075216490547644811281348043356693430943760787571677075062671466350871632199397037181712864343894412483403031263153816322029893891691071011080435508728735192679028360522461897055900875028757837076003653447164826122061755445750596805939087331521874276118507452170041803851863987675230342427597404252110932431412030337899735855241109018621989897398200532611609432551500146485620580994354861443336366815867647254198436179219382652705812770154926027929109825790171666816236884947060095792919839582773784233935238769698618306187140853599595363333281938894198455113257560443305862330549410230652256900671516555300746729984573246083792311092285508036258132516458215467192264587802403334490125501260249133543656677699460320935047404345202335546624938555426954177016710109548463365675588233621408164124947098526346310355359969317568088325686471480404289157406208072066626964591029502480728269487682949642967166954588221009420613042876393314045285326343091202024692341199890425789926344051327450653613018080936361311343619628394543276503555920962814423894511253214326901654423245285090873589757374952403093606472556144549396909787134483778342274174337475084868004465530622946082100619187653127787459632688123282411482373615163226088074092492531214123977957219190264749486056192911197832872137189503863672944300322918619843153459078879568431526677331666662938812518856820349007459064641852637469405135913743888748331693565097063189699074613725430918658902868944558940988570671571027717948543768223844439742554526300317284518577198607661582443676742889341931910318993057744569813900895904723730560383935970248486781978428556718583943324006916537043407890712319562973763103511852755848064022490336378169010517666264710552381256095596854042083108029881104413809252761926246601122881766079054049252984814265340602772478645870695476785527095647903864695028589422749975332637722365116430930652491436734943343496185620139943515084354753025675458183809317576424697281009548325349755951252902400684813213962953361701466317188387663490547719275356142143986507794079840787139365491536945244182010776932019575993098614146664386124614428308696745802696480721069804880397981182899109758253324146074256900126608737583245523397270141702061859379054274790548690760740718059188832580625637644274120989347173740014853762441491235761023584543587813461324721122786635784836835368991275508819699255835705581889484586264722117820694100226354557255379124366893651332746739889078209119298078795902340306529719497027923685731628817951730893177432327551160661736992363234094591635152906754543982309784653882261971380400906725428090590480537152376646025387176463494034128844111343806456870576740170289972639410035787976453589769480600531494613981191152030655769916257706045470028117057839667670395743151729043882089965506431233295983415331664410215772191915416425059555046673171724387554524294258444478301017854885996264049172366139003094133485448369857875218880223931899804326976883821600744666035623657733572162562347200883377255337335059701299588037389753587214643307473013582360959988007833185696646504110679050544851438275648984714742294994516038866051743594341314992056013920753023634232337332797187797741986328867788362486745998253133569831577113458835268089373892791671986348883355726725109111611803285688700843697358631011069175227998443272256136697384867605067054802554509066084077040757338483726298202322333860231090447685243511569958842597900745779024391249333048491710218660043907485774520016753625100586264270155707775031613227063063220044246575187771233478864467226401691533758032032586961958756130966512596061791615463133850930816311042319929449307345037497871734007072445793594007599495529854352857183581927230769695986047385836295663945128660309786689777054651406434692667916074190575078487644172604008068913581725198905246156453635024088612084649473117022103024326126327027773838959333906676294148140473963623052374246491779816290249784925908981497218358711281319631115550985546318580479344444998300679865956654954292094486572962557096106425575567219588437328076112068618272505184599602453239108607991052514228216696669025343975304889305231885993095946950698141038820065351816234715325167831788921962102878441410838037856056548061310265218915250386972831892961703144822961721657662841246073472358050426091120661201539674365717891209080089198507134658021184875792086414029414857808937337948164564370668035880553158819553533902890615743860777971387223292182739255831120499155640074006865738946036967540403136079651438181144208043780257194817785952113424469146318636921366915386376539709936691808747411108460990783426035086478149095415404931627720139586964040801001775645264023706812113853807158012159529275912651432183865230090307489349279098660462293481366281674188889350269684034588498544577586702745956926825860967138139053759366278440597724809134538545771340606225747828500590746404251346828307221143775279761747860028968058476286043625595996799119246915976398633296064373901662050430294812651702621202304530805910702891629593935250894005479773081693294080174534863574265807415248519739604775704624177874428183149337314783292238737818822121960041031604398749074291748254211062001356719535984888503853022574409558385752874276847197438047266498605047083070865222547795215892992978285313894036813478472811663982089679534218993161925027788009469247497658943413222551143178299641085816597288032282739985845778684779451472319824413198691792281894355093327409037439326160084460723748943826939505343578646878833375553922475517130708613589915919800249001241835206515342646840672601417447833282922938783148252466245484358153886274884631114761858702824443437432543504187381412708922742922139843703399975063787277056581469980423630754654229318598898715100545588341989502988710588407789600189970126702589274240224895272322139096326644616241930119493483556180872274137792364693004682907721120509894576547899885687337558505564174575899698908614583332102207751028517146744002573781587370135773133895536145020501228110665863468556318192993690865670039874205478462022272669402831902462568501604592114710155126817556932626473901882059804215805763556068877305116087312194397929078629512413173695722596622463561581949594274811372704286858368090088669195228809930997644139343865013308516518971916020789237159268611967865127559042026829708977864689967183858588364089266322936912249778769806306209462299764695203047962765855168437416289248136604144733814327771806512748132156945085798311534335617170038172531005546035826568949113471774673456904018940341699414729471878906796587022713387817794490788374201514858668449262403501069232662213111064297623116168839240023611681761603406438491440592631775527713619285923451067752945042900533918347156637659044493473840255930652484691136173341331006529484589778706858752902992318085193270127794007454901401271129482338513184401213347619105394039638899709118595041079991331746705159594946876388169361391308664841872765970940837596511068714039063140141995690872553473748171228168312026385003180393165344852422971109482021246572014069213335163661138953991909358402127092753861153504581585660348222355393714332314655516045334662957383306463135935814818846102118975919791475953081782627914960616078677826889975246280534738172843744170190239577965425528996017180167062760570104322458463508005793702186984386732742802936448185432633277039810687905449216074736713083665319391253169096713879737642943554029084216915736985166061121817199645214564557783635339149644223372228395152736794807127210131110342472724605403897481809225323084803150111662470393599875582771571301921493492453796347946054064704812197706262718384012083792380968962606074631285815462883619862422667705129939117258722142202847080545132318730667406716721202225622307815114039880660894400933409392576066492258181074350790502988180823938016336045996534354381202964435731292064036541388369411452183635924760297364570671960796832142714864274164276461085318918658285208670739788666206510337515613802570297505427310124621727678805171371571423474528800398323337463847814139723011090746783707316878413205422886484273751118855727548569925389151780049177815208466309794882511835340071981283476995882054154154610536391022086136447851945405000644714527675261548991658356024676546112489950694234256999380558233895824348207811315202276110766761072365400535734330514011400053695525420376306197761464901027671223975588007439152089664321202677660557192567336521861812955524003191663000174851832704462859254413867102071143678960819516742915914703463584906822812180424109156561817941196113082584307215098884571894055808061663987612776153915398212394815723747111319289368591996394833228381237789052087968716219973016094080539297315156346128864138575767800400350320133894707429769780470792691051370542106697797291510644223275913571807162907688792212898699725342449819742009987462292209639070334063777793268409868230187506585308206978735585743972605876137788792484045909534493926236226554678242460001867753741635846928668985646290341907241977581998778242881815892072826218055534931259324325757071355880118464667147721145964504258880825174317987250943804063615619248873134562825938570725595408995683434911708748905666608332061510061940076105593757600468278188188029083630387570861385972935965250148021074777391563483997261538239953694936343589815721410658585470653971320834556966740666325946632596893289268258920943587512067482150306584308819965070398371855821524609697958916605060488065276494849175576039127172959546050726179072888688625892012413060810285200374889745641382452733349449139426887843584708712808627838622638367863934269060953657777404746876104531210458044672889997301868721801736343436282099446291321280014684636889602284705382205181743664311753424934826078898815511435439923231323645116265257033747777407206987972877468495521217462944371282924947802234092067190203285779309976544537202882439424977384664500131875967855234870336682634582444665008384448678186208402917966066279248467127952668159117742886793985840121051684247968973867868100809546361338324570256494818247334629394859185185531668467784425271914304095557717420477117298628268055896606094182982664127788146801127786893102972544503920302389274132906269150052815202887823719190487720452876559950852612317942814618068601037319800993704460016690471301405556342799884691457061687337074804258979900142563461239674685585746690780795915338180898814467908374205673775932525310692551408474107249364013378411547054768950179242393661213430323062415323954709644357831807964061550980147905253342518850070494062472920812650324193507869220837796342412876710373320229601462702186105656796168566583532600206448780794050843022607619194432097627331847508444845958559755264687442132207286799571851447231489855049954313283701725562155606338876706823714866984276470618646208551315586465301825362149943264016093648659286295215426750062814004358411017084507552202548150783822384097619973242665484254914959882594727994430581258177068160814459059104158703198755970587746794753678358151798037330438766311077232971235571311744924691162052331042335125346009481324122639333473557928158411406232572074955934310793722631170442115712792144024347114524453726696231038289120680646098513261986006883493512190447277885909413900007474944848630150270684817180655663892635975613030784531771712108886121509791073736395532109862651608654627106849896217523478472562014659889696689542383145762752735906598852833053011651552066576705171277169845551683367978939551101218780319677820190464925687850145876433501717236113930441249219693271797853795155903922998874185564962467784408227040993786650253310222627669489202850073747560509267716196893001888964665342041233291862121213153653716068721845956910163282107205540509923690780896479660206482220106060359458265921740335038761773673681293185196102933022147823196174935503797260534968711094306591318880257325890363744631776316545987986447572541168874474775061504379710659497665994590754041216162708817933630968030004658044866963477778734547717386627374828706524200288695846646453691642725179950689433806559538156639560489236893701680462459507015258452768301209955554673219757882046309979352270857887255189507442287091206303102276284119192096971871328196104298943314835422367639389685635516947413348682527355848225226467152056737891601861483885385344750658473032047725476035725108761770005084504037227546280926419535245308362021801014031955280334110659176196809931468136684842006325416047498364027733893069192862904941503613099963012701350406505908818853069434690708724459084161394390814946201911707074137406112086576688988725243110251954500226487980096287033690783041835994619531561175403681340735090368990458117012354496217119202465051315042843880308532722141302080169801336265994611339079818292100107476286504260492908058038420923403510687785581491614979714343178479877856394740846508935122303436152521751919663513052045523160139061889030928523416567955678691794085582400032590477333752101419244770724508703709354800127113823762345046847111687273656223891065996046368454884265920117661783545159166104215744955085076744114346940792231235104814287460858891487016438264906562497091804255979628028123241429670072920374391872008531118943388216830801941376276541098396302183458643954539598588964641339206596707137408784904389696567860015244294832329316614664099724866718829411366859214708058624428080146095700776557643422166694437148123052525239279505264071812397176513397223824169044066860870324795584300363186644304119376708555787401456006218688885466026529159359875415843787591591936422562446011985936642040218324889863679232755892305687394859535625007490176559694845078377122388980043343608266902843309975293363044929326971951055306552749567396775489059152588336508555740901950205152547559837169545111042903383680853002213738958730861155553563319390014818144806623449554911121630822512489117519231515681669285214718561788619501476868939136947915888034804951356678074717229274235264881335668971527403435045442288289642721467506110048735430708519429228789103048983162396367831998875587369730819208113595442742797286366285383055246662616580294002677267667572050710803148868583910874359351641337053632838375491008532947291192746407503082678689375855713514217526553896759558637187485380212760470378762054941236112933279368902268590631722641789536587546312170056591265873170571455847105778526035180176340955279895613632562546003173341570214217125381879724631669176225575423499498675311944595912281281718444483534376058348133149014565402020910645740020775564883498350260438908350671876737991185177903334240670627446744986229452843606102360199414684958465391702928499398986300359043290057579472330141736761102661149483513367968852654302619429645270340892893513945778190775521541253375335373963699442865756145136919711220859742762165363710155883253764420516089728692745843613416121446244669924678185804206287295545432601591418627492868011858866830000399657382107110452106245877946997408292131999069642550147988283240451964712030619383968706834706915786130994702018892372278135308390774425582665039679739727056724885572218441365518869697029634172530524674668812176091366592952404168923961123006401684084922165330437394178761301294936935228133442400234224591085354509099119579393857483153588569328193613742116292813490479820946415573029119694443710684053812937597356440605363856876970181403663245417337606851039796110348207838838299543503334548462621832251731407355439691694401305484081478173943528920143708716830263063385171946049012860891182824843529657054807586663475652748229824916923289909195633994511888868322279044139557626949619661267003969540942271127394753437834705082891928079293125287394668147103342440645269930563199155871932712479817319074616892881388415111626170724253364196468296737583447041435512054341007316842601336114355868513097710600664582228110985147684674755547475486177540952035353155445900019540688215207547004388448788976333657779809811168891150129877814205761380887111834624627825520952740399460446556096909257801554141406916963044520927015342140399187352152830958572479741169431128347182189761711867389971586251063497421855876839037147471941972491575302605519060521885847450584232767821266088515620264914437317159963968659146818914378323193149789062734046849959003624988565309881886946657415245498552425652882543671402765434578831613588544363729587190517698607770749470140829435884145768816461232253332830007701301806483630981928371274040168078060412741931927059599839118700755415217892328420667284799502369975400642439779383245046303012133967371630784870413911594157092715382927116385376466191234240743410091240267566779883337078490837803595217594885427592251656770191930888061081978455929220521257388089413827870906543661100528591917274339498702561840983299168487853641230397774236407781931005328507279619689487647107189089858098548202182055233234361196832210128363615870852452545680070169989278442899982324227146705272847708571350937214822461546649669098785212286835786662907451347480169774107184488062782196366668346260507213227328068701100646665647803912336665624996621898590328881416424807308692413149484114511994028286448090268387104635018380865281189907272459222724038755772818717799949488466389486126965525737374013007665877041014555662939940550632646020323747409648718285869549008370467566455397830848590653443962875361223767537396228165683821208670946292890209068254612733429802902406736410454786976297806771751450623720868126455268097523180504229819241197987390653691103510035009778522381189909988120547118613725202581333116544131911576924964531744661485043036583285058828237817871391484320993176710295818022951221745742797412417943470496286028059515086938379410023438185017137453477414824838587294729265171821468874662844700952194034694333209246793754506833193413677005382496156823669652337931262608306863435694037127703751952608717189517760271027374204905595843741887820231139461507432995724844897659942297940222434386774533124402325029519967735841620941266173189863877257547493067184008735836455324624391623617253548096855481916884109833898465206694049317987972696298519017235998074743027731025788881505274822305397182882062557828366466351047387658592927799455469985188637798549162730231455664818614201458074766182964457381389095311755989203881576046957252417656662710768811517358319821065502986048598872236970667087879527869104038341519553393451704713677059612683459574922166359217314214795279213253095728304622868874529561041180263925944163482238640061896845607320712421826360820632837743467000544731891597133624404510071800101635473319161104755715702918142125897124843363181900997370002313829521068711039352849158286214977883456199688799047695943642092205905193335157895900384362911177348727089666881092896735312364052791579825503032954583169427302563652330798993307882842016128542350991419995166598207874330892301364497167033531407734985989731545725299068602311727935940168500588245458638972031005722444627961144052814961547316212183904562966757828520815246116566572578540998911761811024424528012526283422291847448197389676033845004869331231200688028856412223286778251628787490248469683054572014760277839912103440940188649376828320873695289043501839754274779186494533042086115542433585273381802649675190236490919406719023147991094125679284724477304835611923147777363830646335627193118710136473848013003561045321957588919570671968362496884014227700135154012389791617505343576985502504891359519821421396442857860898072349016848296138038351265533761914279266914190882018793485526873581772394021163639037397620781366817737242929723761559054214313810348061242969365651916873753010710724282026034601378423026866313145109809815527560001065146699232901162233732560979313581332227797971081024662450935722644666341139990074593325243794418344677912423080366371405102700169544463269184325688282371907075397589352131491846111747152059989959468195727880266687953985774790686161717227760978717719741620999180157907931604073492103183253870265959621228965987886534782243897707429064785253750989364791771884110043990311864028662071187977337667854863751574284881177995406020868152265808370431070150726137729393332136118814758475662535908186783093593464889159334220760633286894611054618620133951274070027256308769775850576206779931294938284906616308147079792228250259895855653848406284201360661665591120288782110879562956514815528413676901992163134158521660363432573677171251555447229034571980308366325584962983997234554614342152078267057407765326018445381623269055112413784506674012933348182862168905312577212391744368279031889746978868067527410769656444626246621912737180279416537117654221019140519009923155937266591719319866318041584257328426870237269675842184881059686787177339504397082865268988085846026275431387754962058561072825851975101277570333968671943526213703558075494299879412442851547504804840575952399314506949537201090486455248168819429185234655039211946538474033182079075859037529740549978196996558336789978080838928218658036537527625377858223998838321308218484994164663881296761125659470706126357100427909603179162021250192398646586430215829016490989040896771189686527751679260156313790959341293931831722798454905591376092612861152527240911543886296716188836821592145696501025105696968282270877027897089968152276025998785414297240452178180476485612651235054837852833946647542698987499657779806672308835173744865668274626553572155977609496897456328675809540738940540667369052972622670059966204559335984966030904062066184803203126236030294429699470386402621402344310687809317167837314843195783849882331795478106661711371463782142384090911976717188109088380504773538039935872945050087122956664435869722974020413888846842859956493996425986185110472396468218088480242950578084710241048399667278811244771906211893982258226621354250943752477765911548975607944748283168897366582766677631139401591633410977126827779392878467650889590537741102985675381153156948705451993141449435922031706261536038500137970096705324419826917995398742691005087715915892860012784650004133710744987164444537513041595180013162609497580120042706471568462831464690613939465961174223480160217889558674578520614325077988599222774711042248937357016850335343017327399643762749278813863429260947140246668345823080998907001639651129627045188006567788293106844974595948973446684651808461090418552059055881634474334474872113525595827289257413385774183442524315999772367267583829757261977755599213101795636119753287112629838054166698423380999999011273874964523905701059529329948419149723191690616298372044973328153030121035949065985643474576392824056203352598939920235097423185508187828932623125829621805652973160507779768420274785725375058241991939887145802524749850835074000216119485762039662348880044243984269165856594851047701290963089864147775304348729280458654398243442556672035867977602614825618901724745457822260370052733776689232014154890644202992138290254399323498362115741133170225730660637722791495929658442757764297635748576109030142583146927346205125082788389912179277694501887141330452686615998226648637331559114548070758453761069566121769879124578679981976120138389182023677726146911658081635786847176379374535871664585433071758703327978872166346002017421150750390725337490895687155062222023226706567205269623133941865503407652622045868255324448162073730498011420417943814663988303379660637189252775108408669027268869218642784820770904058791626251310366048148553795048271775926476680152562923605800890972958141479200793300122827074917437549348038175784889225561043608924934569742264288889291446419903619178877364985209026814863433207576742703524365395408529910658493883324900114372503644063917877451707995470431526515824268192342773383240670443032875019305242121103157753989425149798954093657823559050839666435105213905873262562380499636870797856651417577885859017404503249498681736019425050011529457955037056799148461696433352512045870153583150988535354843761966797199628276068257019014258226905115824393740732623200264224059194918440351349225611973309196345237183650580966008066116965651464792575394804029532767930595136226181872529750962484493009675041337529581759302123318507918831052585923468678913318759792405097345890577461258900211432164203085100382666829970165519987081296871657590201735038165233032121660046756289548991620504317282967218618007051957586335247048032053979306520177901563750997401347409172764614276005874063180341836961235387400651722193279813543535168040028674372054964643574556436332597546185333768551689814709360356303139515866283293564371464926556739253482281860970983523447971932749965071626326706732153531389292257189467447188618870869827997652078930584433887463832603328062730431255133795045817485530906077762183324760728048943342538030997826336110549587178743363434436494979091231272580697443210637253753635112061404445928845998851671594820760465066587645857650881545836685616049328565944522675810308016350651560873136963805763739146094310338517737082636958101752741816162158127984063107384988938386002265934033559076207024766802467472488390798190401777146873465740422732106431165036411982343020947614012344845895027380274074272213179335081569293918926181519454558574607133308096324703302749394994112506289243750582001207412206982958161246668381974002648997394188523954725445580993390209788351151455181904802039670350929292324945533526384232931627383871290991187826006717359967284621083947772898778619759825477452675350512169862606136554327196094178087865231871254380424470438523237183846595489267520181773865956113381037127520942988736629765477220288772257990872841503251695904163081906736082538784319815172451360407806116297267952359908251875856031181814393689829196071179632474398883292387983459509139919140507042582984540696625873418609301501822698332711103308283777621045591412889777698814610460927826555895870113361843728167519086427145502077719832514145742999695863124725868848715405398719189401450028308487611163691268963069944555546378321398140237538280677822182664428754931073504644978347601631826157057912323836439294369403723976798972648404486747998973522721474468105178533321689665374285134672903721930155255595278660460470344689788113247867544524599418774851437785809034533717675016283160225558946393661405267921267640844184769219135608459235856352251899283731818134368475363201308779758965496930694169946221404455393744397008761774199796233474486881778702901381660441843234747862024358264872651956673520046177536048439811958730240209900731006494550696333597620450170606596707363906345422104854864945943324633450527440897941961935996353553126744489935985512272722367371675216490632660016629573534087524606868268219905046614842907550417705666663634985855045731809475129762967480034684271272888050433612060392093673393736293228237836427046358222896777067918560931498998618570244178351145407783836185504759195707236099520787058076403211080968140424906285002711659631184349233430651815643637519026914619198214951171727429433613432433934490179489316114272179224736937562449328770244422011385971742465311404942930800286011823542680910553894514035587134000207376529379513041266082467413706520810637335060695319043964909469759362293063432874040570732776818661732112529484565898020212988962547913916176313496260447794886326266748957313866162739477559302621055062225127002481563186866425097288226723632173980067334564006994998129591010775613458558340993877524314703685338183327061586149521165051839305076028693180565246314814226057053320205359643475034877401733696445274884801877715356337093196577709999210934009461775455883096850856470116819322107263819620489042918477276368071668949563214200756023284568532347932120811306009594330414065423887927377856644223141243244452701080858704086030294516285685245994810423312456523716266023334467818339783404042574066719227798956027059939557607946338374734843257523233804752562737317239187813877865221835218340998697048157618661872375855558894825123356162753413404125914574459967077619344030889727928244724744809403316204655431518541372624795164578513663275274864036476178391494163982958076744185720004073380906116626283917173818572773528245069533785657415457625270891491695890823386268191332290470405016272859385799526305169266208652233515676914102170376860716106222678330491474516509575927016194735082632198481358867575152118963163937894706021080646228048173547784537117911399336440929293261069600493469561555557910169881261834839896243624021191013351706386391626986561506777680600502135592046364009184419039920469323952583008746151681806026553157637523654713028764556023793614216735140727273979639895016937697188288552638080583588590396740015770108647194536767533589456826788136129364258061967604642127870524399744582214628056913373330890770847657836372780895924824796608153858520802364584484656051762147327161986517386060023665831733740726883264596091430196585207845192468490628081843326853901644296080985772008459294828918948054159092152269964128800776359037247623987320745205346371472473677823074439065872733091907295269548009902219901181377702392105576431228145553483984308555881122176580807516320301963435267337556051742044818077348932505384157915438644587138257473876242920630488733338931404256996391316864709030056143138548996668294456250736885602294449610999410192070605293878584794595246900314418048587277666960868968143205696974788025271545302462946004118028583133861121224444045361126809259901689637291860718741257574704902994018752469317063126113825363195871605906241752543041005612178886635653391062610495412140940809345837766252891166996717553828532057523110183140758534661064036015106120530584531300290425628394341251998100390744670889208407308367904590087358218472593078494048117317316442745298176575535016300746796643519827735699565044192720015196812849097455708555739236748037266085673144798296247892976459245614490885747940948164764534629145628592509633015763726513389077124796044716659115945363609031066003608199434331766661638834264349727950470812515726809112972873743751333239377346695829618605738251128766257076913197837505538644614825973768460869588042286485355010403548748880852988060899575912741355314400116222930411038309507312086528055183656374984604593083730992477931347266946267914087091748477768490050988303640954165233330474177261905221770382813069618804618709115643886587384145566010866040631706552208174826604463219798893900155808128671150814039900030664108732992325752403724859744398520446181060601457453270804495942185790458671515950783553914747219826573931582048777111104735463715740751207097276119926077207314483848562159206455307902605400749965984862767316961495010218924863691719089808979144298811557670318902948030957321104637846006316898075398235123618342639542759718480587087025821687965778063676036800935694591634572496892271402367456916402223758234731835875971452569650705209476045720316083816659132353869030322085447947740923493836876772665723178662201527169928637773578444539768546193884640732299376655582371142756123872755966981553746256806835962953250534978461608664497475653206472209854378035592724471066833755840897326967982178303206677308539762697873826168220417000825046886226477372293729528921597296426931187210326032432669413289563877875334114267413352810485903346201439354141680664647802908052275036146718400623080390959448237680165628585922112491354309537678166644985391155478934826645041962460369385547022016503178362014525004711080941964325362156267555070005983549047187787679875137910899426062372432414247590380511073199138819761599904646505512571072226320970118670629556490449353396176245095884225206842651352596666311992831695496662696096842317867525522002760603592237357060042783352909819672885162638686389686608715347182591694151348669208412371447184053690111236757982687443340327337090264966485381070880052061313977484170109837250697641038172829713764424029980919931199960694424339398635463927668930575327775732738461335496885840025648838991859716008259290393388682771218036148729227035670105475220485238680587139975443362911697597234629846301739077253131222275450872820989016866198565351194274995745001855894406768096729273350179067557136732542683615877624604796638227808769136787301096751218336964597742284498303562176233324298680765445781023919477261320256271382426106534158691429892435951242873378749614046442830017786168185993431124648801695904191878169081024864989193300991100255013066454215137596904514470394481021234787555149026610005710407467533768703820973369252345108452872951786324233063526800537546458641047275850412360876701131001766212931090043795883081481802756761751684265474306633443152035755745159814937982407455728892737264866841643047433150575420111069209760437545377689608049844891697516834049751617709332786929895126577955373493092964050860998259323152720781197345105194350611677813857932682747971642691345136334402343912411265903332414995227763414068609631160358022614052980309358501588886216370077221640561717637583470389102421770777886928224719342018202380109372092306856105023978918136577616930523801468697583480331588512892493256291841148832138398840997995923016419295156776505162210921310673019626479323464723979687562658693356993619788044407595500380928088861592662517399459817160891163965060231341934608467509233087875639538501386210844186720782270985342220132723806436653277732236428907458608177741433215671911750290954582441532727243140165054107598141530961459937452044399761366049365580330276596739340482876333210525291666519021070743535896453890552914855109291656477521878086298038414412157766435781487975191450818399612048196472372550368843411684543659555507358638666594204611729062200501410746901233632853638847713801551568978403780737902304985654484042623102408154562632992829386640802403237968946695918718224611974768615305718649796203658308088275339672813269432324849200089545887845905398186051310493644730594501722992224069258591513404036993033480577509199006534453993887895669532092183560262819520609860745811874513879920035227238566106260011005969095403894824780626083914323314978598819847949709998646859313309557741174151372109936308729699779550746549818372358207484130838456503172970784838769901705613415577659192170741099890282020395138119717079877980895766659317743498156189662025524166590271943686600400569312816315422819893398690842627828188757029310230532525749547409967756197878573121463159270374000422498195404264730258247540363471459812718799584527452491259729747410313132869311529974785957018426408727826363210150867400769670328796744074954071472459057486014715648474132625062634425855270568110003504898843902635378227125837063855203066048392487763617066816107907039583653322613417855540318624256885229846351001050794236712157435088890862571962143445059994114446311035803476029388476224626513609101389695039534455646547721317082404645132793564230281405591449812919376274796027431396168921037740714164413929010261315322370717081188588311675235375366844925306270742161618694500612311379778760740132106437222335921606303604749588889130516414100154136851156218579103658466503182093390982017301342085895780375574928309524386421341099362257555957723671591255320208189245699734187943575662060851702689092255437148540192024775068497191469649067275231949836661347367667604138679649734346336981212959120559827858873933817853557137624474857899661201652723738227700741495419815516702003941450230412075074112628602420505281622774982477757275555549151324774712285295190368787076652748782911992592189364932657867770803611692148636095171699355259046414720307118588238715335310104639807132242134577039737841184469321954635404379203086676350382454310638747945408503840898431884216670257189738094781430205285863570724197550442931724910216120170449390989458805267271945713821035426652722846341845268317084426530049117837960731987204748251350241207624547816490332154464091648667012447996870709644397672577898534338024443443553621601476005644523796973155475083723672837535758792748634968827387696549648831573148261686438272413269034484685960759171750251832240227532590909106300998648620016004695650160704077159192105659224887310523756359186743148214821219152667607360860148159669988824194054852439620311155551079373295625960356520063142112600492245620824889729451329854490489564274877528331074275219114821627466332493081078047253183668644932474345950706168360414997000524582192603105147432860252156068479953776066935450708488780988730133375719290796332887709993237485096296682868046675937402194784547373161953023565939003790387151204398396898115499345395948287665979681190479232650898111863379980765006590147955817201941259310130575462769151384220509716912021758692472282201694057166474279765945862241622616750119985738550840216437418681303442849534136503518115709421388856607501477181177988562100635838989142076345408807547289261423329365918817617926076589886648914402625347398859083906924207956171541923731365095973805229388368336300349755039863594631296272764494384255307247057999155443623101805622194359382881743583608940926048137122154559095065741095989910012937268041673090973524406411327805041211045315298968462799528529243651953990414105934703448905625660576199641136889784783589206084329056287368680330031166138923578836135733292329657168334530831296840566458830339178451401023087705267548892012906623428327863516023488821186518567669138863290347011480229476035018405526954535699848233369180546585891808382618601940814633630131494163437674024548673967860136920669831281017775091447042372580782135495025979127742723613971579413060882015271248526676836303718993834334043045540706635442990288471624585428830815081148175337907326412633615350586617395434046198299363986123397520144872253566385563775422375152481799214054107993680241831888537170463877750678953478389040234249687437420514320626184477459350197784727522933864433445714986718464828968951960320157260766645785791974625969522526744879134052146500839078240330513017961816857481268899228105892363739581140808298371235536626462231165415394292324211037688108816472140948042934155492334421097422312175723171414890643792505931376245000096825678352276947922908983227078278288172999986764691767147068029241185516589210892652428651245377276675402466638366528970174521905877118598653953908797041264087943948013140996267134288086174959303230107189784586168436117536096237236031101232847297647234420024185846929121690852182829485459817921351871745414739735876974730973793676687905832574745788440882106375525858154820268920646960758037507275184554381940804236360952846489676943597784732309782160108463332538295455399844420164624884010590230290131733657292835608492578139453985805270048827201863442849513296997075782162903892704411727782340704440385950152965421200220332782442379372383245226397758711666469745910622929102646912227269537849800797028369177706627182483308891116806977293450405980139000932974772216508245816591763997160786645403927171999408415146586126355228747371227747881799179563285430192637138630994887371278387462868018670753688209976349408355066769409467690436300350335695049130693929204189091016664150222182758141597499260057051924317255292396501999791226066292136396465802774946640709687391381345022465131995988571595553131079589892975480292082365497703036465831512589760724916893388256403908989128057387076547069118549637865638270932836534984183703457845722730337824897979151638644746762072642821312435731881036867058980599321142626417836424336472630712734913418505568127097339595433487632077553009257774667030636647152850622526981646777719446278437641332637343003618309400326779266892706897012059017943744990071143177208822460647594136635036618373640216217220028556409279352831956478757320689705297662502456296313850007140134341866190463146356541908284147701627008044897780959581377849352454575129783007474109098545147383917209700020888945383173701578244094444859287463074160147007574457412023933473782779833968302942431822389501668142793144561318234367811225906743530743062510715140314432932712742792628572592112695148777006626137844753859263796036942899533090147741334471021192460046162751926459212015901203392854489893196413194828237571576170686208246013751329509856765527465068094943730501872161908916159361291568448365850490890637266167559759692387436389186014666445488984696741275652299119296806073063759036614098520166461503099589755187962226225176459207771210154394458216677837608657862283527149972018471064047087707763251930392955990948851331930330616324474794767638260188854507712838811405836902154140144494296801712128224378006695981738299829844703946504767828464424281101429581969336131937491660243751058414502588322585571724679504021828500142202872458823328355131007305951074271444582287107857117335858088911172375587713949413654214332776197086172068010610035151667110885633802932867162189984377992201557194354685135074672028042104503561812388099564247840765989513525865595447753173785630209007430826934792633498866692978414456971513624093204465787715331788724177021297845224833356016487366049106502179648116137438190305418441148330930576065809308061468341700549181791066455409933130345965939075051226987987932510946019233440949750128951916375396923709600965995381529772538519748483005330979407170739684880871542300181883817553803379985560227312712729745963937781207695695776829826963613124730174048062479483527864354954635027601188478563354896619360154242552823054337264559235378388310719935203934397135127485631808619724843409284945017382030869680366914369861565089891308835731814235610482813394988360040256832525427665473464232496358495893769161646173795488786794628113951268958185502828164495860784382975272031980281394451859401557775896192293222717871854127202018924553457778808781093134730527827555462386906339288947134593987341074602273457272029025406494034046157992772782101267200366767611369604757573497438574141648823088577839674682675802206595242856285831048710878140810033339602441930560044835729827335387755946276548999157199705567155068056666682575977474564459538823821369329737375626853527613176923468934852570783984249517438864444531162344359117734160793146978550558334638368632243583862158381520659022160185619730623623845404885041700259412784298937780480433348033153567063292322068499127158622736873142294880286021027411313033065289002205455190359311201750418773335188287409212573788538878627511176041595293202858237663353013645473809109824843139081317424184182756410872476608822391066219842741376676045491898952459091584774874680491434235306196950239813798708997644034707844534250427017565138940529901959478673988146639756582348189719274924242687374643733940330570420638078807936270395337901709599651059504612334465364888010937039401060979188276836574240595119279306666017175069072685032611538363273549825194594257485319736758598822496263403994475895708775857022935039838095299649309855551428765222116964006805060075010581890184777764517138206709992767064155728814281467561184472692689107538763815658146307265128343357182743336200240423509296687232251944104249641671732903899722704763027086952530179706833400861281340258826984801506763296809170653723770819136446337921195846268340956654273537614188135472756423753665549761753459148336691582644220583692140135445976057544909994271190919159467980937389154919582012413919222254278527255292331327835813366671052585060903403222178061611715926488642247179125069750590014142511328624848208764182793116164537013134723529755273414873924516047681064956813924238676459068914607083210087035534842387414210164069644050577692505011924270751907609065814537371265589753755206713189773438486221754823991578813570232346698146248597908041138617242683906058009872658625206381762457653926546895343656887336972226338089060521893500903980315609609189545377592307830049494532111135235124879903593560525845906680737747818758385791654546439207512179293021715221110919226068396366847714635045662054625884784686556385501549519226474141286546974543018255614663432459705609599018895915329922986697468481395433295738468433144614644042238978739941445818103591001980508314694777005324436653873554711515081776472929383584127829881405000471382391479545253675547938108362575772281143250524972765203709653323516560314283228117710293749684615581205767960309699598613552334886716783961762083203997847596249825681429898487163315844261579168945417509291177017572662486852294341479809436143292397789855229234583633780895046010403432310635080362267251331404139948652315334030707396620642608272732955930157388137802271428096678887860162262094994640842968758541790435929903360295288756178702901785741896038145332672980682388377901509788291498607151287553637640104590612463425362073504263539937243416892914386044110292489189613568087656090228128985676777165896722915940902289459057303653922003546924709657026711723974631749528736663471392104936079694265192283056469927129069803271256145759069399763781200988654191812672919615977604820549853318389627764482459912376265927257735979589786123609750048052032344988657268084091901718878409605407044696641417977761603833616555298411752884169581115259233926474673254760876937416335314170190719363343262595733840380214845977913610158675937088064569364792729605377305153964566268769959102403868778535470512387465783222904156867602009004785775285240734763883398092923035009336122363817975259308899692664860289956116444213205311125032678888787364332862522705851393291716247048263609688795558973048707597887836444373705367885969693891934361579370429220414211144779007080533017017091621649362127872044485241533204945880850138281085368684046680036178077790912967480364682336065008521676741685377753009581704403897742114566308597133851054623498799152138499706301755959667664766859177983118001032426141537974642826406441541477590832536107981606618223321397865784784910662768391833200671814832967807508911950195329247723304789432502940398341015254117931285841624400909445880369003209878940058517891342906778492182360509547614316945315933882685741656134521030633810444512372573302839015985683419696337166812909655355741053644895613281887695776651912373181447585628513100222994001332116251767383582045468625041169705895872412030311712253161041370430946934904908609054373665595213402510246666403316310971691837949319241805651096025355018313299732025159242833510329961785165678708098307518447763169569352000550894401198559187083348944763315486256469400080576428736501572893254667064049131776108816695413471956298026069660740746959428953808883053660508244704982832751682761359619093769895511253812955578850971066162873651243998699279867123490787610946860171166773084729644207243124567977219436804451171663920012370215809065041026499143406412788957582196094295289384174761497506805844836947361885975896990947951525499577157443568821107693773692197316229290257899688450777982701226629036006702121232418060214810772638191130507157980672235785358193859003984709039531934565138960553795857170391187876742296677746559306073978856042326784174049498143844760543045545435112411012737798295254482540067464707638555136379276451157120490564965703539325241066669334512740037499457042019241545449825948533681323999118320490480617552951999754079404028580839946314226527709785162044534542786940073186820458791591187836594539558018199066732447862318132758951120155019420125931679121474463888408787953218253307029856835017409152659664588829758021612108724581479800908189345332778051845551799623056185643677346548293059270034107266654068837133571790551344022398652995483335960090660341151214733898559984922385567986401838910747028422572879467476139775304287470533717574373579147174251340350901711069864524826614957243010009957052431632038280842318804877271936912032789901064770102199884946194690180661040537498293641804533119498741299306623232465763792240395146126059304208994442504409272271118149478320981649135587517163748419458286768004124566683792742669796333171926765402034879446112687108374643154548094340759964898802911926470257168133515825968506754304019353228693113822983834076704917088282157330845484097266536263389657872382757296753140918580206860247705318950466559504096620882310319391796626084291192980858545864775834424750361591294308105745957314754404076019638490145213822078479540184628890066023357913985664329149686578331669766151757908699928803781237832273030793442316633526279264007172971119409965972862029751540677256085682115031208627873087102107590921464802946222462127471139196319343833820828774806517894626276052558731988738303364092194213173105432353603729142884814054386468474071059132557458290323998458051559317616257946578184583778081595126700778042364092534146108588086557635379384560584046272642054402361522397755141831343633685147140648332572593867857435124832043129394974520516350501521555255053334372598627903253454715706709282435890941643695283986931407258935219259095256352841223743379530545204631754541003992499920668734730703199765401944070320766270625943293835745456294865794771233086385456527381558489584937087900953703770478996298270180144441726274370474043218108461089710176895034817762545322631842780267930110121398408300021991910427289097829171574548713764786328741593547316558903399778038161481539724472049273604148853511381891810394970639495023163484805263913458144711379386193095527034163963152424823043192325599767374006256072748711363324490916632118817015170328387873894468529021856251965438171949309413600057900653608041417693210638122608656168291350709062363377500127915926648630874335029516191829871395407413994088237819546975655853915950036159807332860350469778642624820289825260402639360779313942035230253435977104270869769639163865749040447703759473778298064075761937697163599801979176529247209673507216306920273665632064220532836986354947333931398012227083086307648391120849825656534611907168849511642483358194950290245488764257135460441720175021604265205560343609330905885086892212982035966067762788563208478569656896175271096197059847445677961785532333849090219432157116003796174069085818096933982822162302039334944416005870950515532154236208114523479941582623092308828681763523172563814471545450215936331717392725664567537357529728718937166835448380090641970660501134447422346857299395515159625729010992514931860400979997168098800630355875122207305508729945390999342764351919003970625577138047799894221501377726196258820767772761825164327747929851876732114767428554596355900728996091831210224596682672476093621117033191813650196451929030085128699098850756588554738251889017289760387396259105459039280058298812039583364628056073124413877690635128435985563891972730426845137461395937759571670098670828200816274319809952919472850528334868107924297677020248309697481018168452425948068803213652778622343006677509995483266283744785002539383824416737845881528975342081475021815898917115354526055110997843862881019792572334322447148984321717995344564540601766901022913982702585021131138162131748516319285968063011198139438694035860061244345511986741100346640385862296077826580661967521897900938313903851252014148469785571619796692994801583322840947418990226065876450853966752244666723201193257958578425263155730480836264492345739743065763217922463535243617581456511669020218436839046348127955414511783919259498884466001302369947207088472287775940502326520236882007252038237500809138574034184830454382598239570746899909568353859398188862150581893442158681315971099975773631700624891833846001711721373084558991680243218325782876366176186212021848832504797377248801283324734484074790799078673599121589866958721258521675539283258902531524320411919557188522325905006447016887860036462522453124204446613409701459516538209205610318756528130558734056231578905330494136893400003607170833874469798802119704680546342696868497157210615019369614501386370552608829558973127593163016659997888057089467944389235817352468591702710571988742781352390602810091708798999572752352914070948341901951608806078373924160583302619053682332796982191828968435563036643838652145656646333218104618854455903138356701809098701598421469065257302011881447163244256702193663808308653483759959488220527299993668081425408272724025675168650521343239680214689375793928607995193127038989001871923717025793194075612449264085787237488337073896162540690399415022439086664158281046502148584285318344251022921418775964741129718682542085263169598467937321923792938060960158292563490937016340357047389696203020410278798903952563774051805581668198611621646349776027679973019778367912430210501042507679147217065003946656523624946927632665022593469670029039808770877466628054197785436052068050437630177955297200822954492474637649354987989977250917817231430060525590841625575141015054816716741896716015373450572459809304166206432729060663644556869463464349158994596933384706156552367496979289624355952661315152300905742059895672746818114399177555628381765949620335641960149197350509439611202899063239525517254177931640650108139105870251799016609434176975528727992231179435507633794192835436980548366849386243047608600452404906490666850032394754335184019832040574536609970749161856314160943152547648533728910541864517910539743906696796441300074591062696343620729832284745768107729866326346666523032531195737596806485557343571178962198515339529256646425945210416203339224123792519992193766916583908794345330008510506064522914539374226412000459387462829490887364836593003051473572849675451352093189270236382832001959960084662390109668531072599868374047653087109588721798184793032158526026763152669667508232066649866073230752791884863844820705288446263251913999148921904582955160703867494876838541289521911890145354626020398603115296146797801987698639835235621996231483518845780172835855977560341571621391583153567359690856097679769149313696644598331698976223295963035889627167375129300835105698837531257501306677546809245008639312667941393147371017164865965072321335286565664985760218671424049453503603866550928687974562315488040251850534300168761131804064335233998600189500909067633581585126908780172271588270226731970510452028580918191148080437669211215211824218689096947055759182190370822835949789884484805549691581584856023888068175892697838043111043753442606091750804960931597883931816214711695864638720620366163339414607927939303732176340818178075817134510213935038175760284468953375314488285249040464549502523101131098902092992021614632510930931639374840601142150083304639731937809365571616107554587945411723145346820827087987642177383978280009066351243721471690196726051861555387737520450130282884098364463202607179221400939387513884422564307696544292909917279777724789322829775855349024919791031207941004377414346160829194911226710912152034234903882944953149752973578273948509632971818953543279787625275531364120919414419746458909837070090208847665456705668617611087279186231203716402179581439554998949720347096826330897145857012651610860834047748870042437864616480595837736117099273261624584001754623516685060990412330602452160763910239228356444173337269650142669921929176218108267537111396418689921046836944131040367435552536521206005006667696702018444135276465037295448923094924435666871012954440442447581716459911330586070704260600685723325229432111687420480938849735965344383026283089080956228889598543162233583790791051053790243897253447234976857481206191926749017875587625380842620016558624263505992077988543596130296841564929083492674707798215860890899269184219861096766243970691101161995526310903515135011542362161428710077755686866787586459147062153578755022488518163846920076619403483999546997502926744912608316202442359897103800630644703883014226100919680894643575893570725948092112680076595904127059482868000453481242437590224301772675344888135525141025418959331500226436994275845394810818267231632163739959848198034459545482460638903316352882715132107252235417043666739005021283296186611508301908813065946587666261822606762460964573186121266406060466710086581675635828257835178536388783957586532804241679790408097979887651969113608624743356367122541835677735237587123815923833877596485087926064470663292197977400778972332271672409913886324279255042199893598265205177124726856688001998744599170643321191126335953748680396400985939365243998337582379617858704941639049943067921568708338983012601519628932601895190183121883863703843749428454773833481865993042336494735591696042595929501425933276893626140197121883595142094862441272562438335204599823661774942888555926219735804048702447966618629221839973857883921031729628854823176151085761320273104413720195715119967959689866634823001814410697229228634779126986079298580103053640434036803201559945599888638421692241071458507871306944985299115898508503517683136045379124661509981050839580442958636722799263133355956728924715054147968083550262932441488054546059270564394752291980380979097667093079194842916068991864014364696068442114757938850606102365070623498027078077329036054121051511811616026551341583079140759724577480786166190954873351440149979673926513216323757000259116234412688725917970332028045928406489278013364150149352932643138609781117197842533483656709316909408360110767330007512524006046045460303588035904148798382327772688806060545163819741499266648177705940870237830825327001962755062237043758685510269305114547503152362446994038381806479915692785759514004629341248989153496802748604244571740390451856734106191478378797302826000376495953174374629161912426635122702294185512407678973970504231764489919282798732751846343795168931639298521987987570541688811745867885435203779306508896290582961470385673300953646514494021678120964631312164592246481613432282975515666338328272607798459094539614895362628180807964975114758799892038262010558925519804339796933242535205814731033138696950863456702601598066739167058883185822212940912955430467701294942055053362846964719958535201621192595187542355194730698860470961457149555085307995420841883332304909085660850595719419075342011283948817657368029823291120904464149680264408199820764997650576882835369291839996107980225383664513678953867041042986932801014959968421831994926542351595129687711543534230777680948324466863401471960489276778730703490597986269124343287758733085691966727418179201164938422037937413766219789696970572476794871330209845662291689714555940953242316881934888968660590579483193691275636876693570728213646613001718476975413148536693249344851059652378042976419313147528111697504692142482634884572789593328525936405160195685679865484324685002985401750614988115096402951793170642670225771259494854446042001555483652702238413934740061389868265636138947998687884247620124062028510061089844905115490576466469810171919824794900641470876257090821624443949631791052834905120192187276326920693165762573275304949576285979063353680622697246627333338041323601730185044205919714975016551500870900901727963777339806374049572285523592397435851041004252584135432065355274496745311253952856749151452748422181111455844640305892571123140745776824322585657199636746703272027124654932486836817151886820706523461025189161967071559618712536436390425224114275878942926643693841771277585356058917483649536480238269308324675485856970058715400751855879999260954755465941353639580878822352227672961924133655777661702617996815171168653664098091959296630365882773006415163177543428492011350119289631495119269672660111244683837930000878491503957163538185783343142295137374065687994278483748083519201335475048450152047854128055213183180408106300214063451838917068224113269039738933447625312688014791404414046868683034321863757863008705649995613649331059101638166503292927197701558225594668286879677243877086114149153640817150219400360715580705953000011904526969878365854032599233550205105929398788613427737401413191619270263601588881817925817033492640073305933655832792946682870069035093538323539121079604514179410225647414269216380808964624618869849682345402219740515988377189287952544086816751488168680108767129372607838092896745215926425071787342132436811626713049894808349134499132834864691108191665556684292439412053821797864147882987116584259396313033163984757910539818222712190833633711940589811139755505869638238920773667517383618715479381783274741898864301714475560820395511103160413395747134327009770017634208509572612267102458968521219024243979815206837151766454255735273463239224178387887900940830038717049954524221256574999838314181193099320946153845911828946726841158121467744009007069884708728964436152013492474319616385825495273102301076981033386298828971654581569355537595082718643469681164305291841476158090773699086003482695113559246755751165607502140121197819338539230157335918213079451084152549617968600095542718385171468516783397847920519558049575316337811131644054112889147490229652938057227767709818683291640009851383225865172614697287495703934957993513042679034947916717998059072257297067593008506929319811499462525795936807571699654347046786325544194975053819398110629801369571221805992271174551502903531236150918266558653238563703249818638063789138390391534651661912640731673692540004302534393784539624285837442800341695924588428139415974386792159470098530716274512106642588919213671766250033986188157986085292786618450017232002086286412517408479127231966149713475370654273137899191113154044270621282736057485655187643546628681570066249091644003357994403847704957003810757057973468114820099357886375481040276855354788530396074232349043061881770672430367074712181653382717910548105634792247825537581851884736340841949493347190207300585384881824031454749853765845227524718800356244320779114222820856891310871373018883753075139985336231109991905103210146395911508213821373069332986023646442224205416539012773943531570348537471096607955136783971478987371737449846727140084166421111582884722285370318474302850462030873032811134587355483216706749031648912563942584240309254506685673685140844578957625273160561410057918617917059270391671127194921108980274542249491908377360570121330268162254994181081510325536897996375561802540917440896721882457510705439962162095126750599028746247466349328981588566395571526347663351033866806817913815187242223435141041646237697548160480663201284433523543331511519220575564887767618465436737872583811802587197023198655659219217379453219357703172751396771350766309469024045975023850835074895700943484338675628726958324569727565670639837444862048970756161276032132060604107634944385930070454232293115216039153998611448831667168447484263130797509888685145506834468358752013167831933822177559365039434785393397881655183313908904083309927270362978813723537193732306355308955692399995043420753683712320071720958355870205740947466358466555362477369104310514244334757763793051937867892551218420748790782085029364457168127185464157656199929414938839658662822668538396765306228242267646376670146723605786779979024605384963362465647283513054880082175819813841955940313332870351987636130154046995914491467332591920047410590628013878318121037593837482146297950532712798777578581992209186854122617721443866110230534202803045093035458730181525440483615776746478148126434203556966357637381052539451222397080345472412257680114980018470278962767519123664882684427720605896537073178878447883613605589241848682849162966824039289392117080230325824586304630815588064399981495333328337969123686946837261098697163296894422051652762756041100812959737782334145593261475425697346824210358117702564443300030609916819145469227540561865792999871147740503554867234782860181671364729710419267090723937808312456570712590946295505386915607482349138266082933438513523823249747025107353549593452761955902438234961960283675347670921193743340474827135638686066527887634982558212905248783586313487772629899998848479361714155186532452272853704508108399850244502876762664341711277283553770409237233992839592752117918528387100834290441019224025634461380251929362254435097171452041271666935757640433993137511166173753678311852282743552883928399567832849035849868512466522870348336469166000239004998873747213470652062105535257534486111374017673278967583134073740303822136443710805372134882702280734367981918627510764149154324596390242675016210614452970153463952481749279016995683539916196859277911670179323220465449913617356418707335864076183804882476987431881911042567297002317085794674447418832801930491408770137026576518687876414487537085444271038133235354427973979935513079624117441498981945049066859159212863061856122227084559646197631936327306385792417313296125791421552963264399077101022482550297045881091069932440077380592682632638216357021554776981181753277740199861242541337487225675767484046553572868955075875732550974664052679294089762883952636447349774305818745470334679060032884750756324038369523026027823739992475583313152610654352183790680676179159368584164316788975807309832565640111562197518291852543870504154068095454639013819556445295442853743756895326633559577676554337563648782178700098719693131169756431060943300403287701777281075740716891401577751187440263764150458142750553049468677400851405544968699797452120850166003453802780467208752470389247904380280722455434874776282488508457108644131113931698240951390352439097468703237649893165863733591171786100939514038109794079601969727977426049095071111651460781187146302191646673347789195669922078685490340573911869172412147793418523620755751082052166521871344210836084751784374223653548048627057652346724312643599384250938773844458364937677512820210269403510615866244201318856352332224212659782791950298811852325161084517494148133460660753194063815501894647986245219250468964650668810985880113699148666509355784376443809326982594533094746572041002825866729720542599502659203030856990725894708903888924190819784540239803810155316709264788045689079710936687197152240418841269085217571842631700843249531549386654886597880429871618911164750802485503813099409239369606470538004188967670360491839715773682677033769960684186169335542488203685920479275184802736600750129288185705351358633719417823425867805919044332146231077279590522317669773286357909558955138658914074184540334238449781821401428673964948987223109321006533442951237583655949934438444104502761328953150666167060142672598047610447850032593011534426785691243383818721601976156352927646254311854097787480276261070509169229437223292522785993371966381362385705032196864262645574085426718581269812358926487677560186690650719752813637827855532862536600176661985655899500461960265378450731433736180391532681703720519746774562794273749899489133233421711930745588182076140387533471186053303826069803257969297218171625095936947735807127144040658939179195398919128315295917138748718218314418083813893130163463035050163012648661442304726313329624130657997903934613098046888946332016111516391746215154961959898517879028180789525352462855286596044680879590981825016495214179364186562171957286890453345106909572808763779579291513073433500968353484333322982538517855588331125174879919928559345209042805781816206929910376852099096228005799670989866499470290661201242531967745203334993676079988894745468524419438080227261417582985536317823307201490056191521127984705988753778342378368301392988550378227681718166508414663824330042362243181241557365194674572745657547788443414558197377078437925668722005985396230938306563681809051447615809743429023752163752688651229164155546200144533421341414940358874608690394469253841149311206014881010896635209733242045816824983850724288568277812108193295073334173916300326308346756818496896538783212411858430139808161539835632921845308498751407858002254497668808789398371773891479181590294625173810645629638874717029187830966313058428039164387814690351433553369542899803073703175867739855702473831760805691271515003115527157649308064666848745589148981123102566922299266373321291614706550113126332004947511916958673467264544340123414282911394208077004999180169787136898219253469228533824120967249905116820330049733895929278156186819367200815165922782664768710403277033076247860738395025167851660780071748568348002185082714669279666527060789256116818903670488217124764318096810672684273563911672409615315548775727803617162520768589598307150689399540929867238975570810929259084756037330982827351624545924310198819168811256780595553784842823237251642043338237902341289435231480754539702348673099802411667332095091772791122071400964434391731900122995274151514092891713877344264240429392548015859880925726587710335297753472485712203332853580766256348364343219325243157074337490723429728408474982830411815127217512490417092875117902198536522166479767988969913761005987472271728614614607683678783865270927011987052023913701494005165310682587438079358190605752968526953063831904553912971626964781591694101565016885584994733644539079876530071296179706216126025778870311004002483058801902420210298859932775006863317972980526647498235902146558738521833906501075431952562908076132932684583017683043742762315670342482594120531214575398927718086878248854869452753454110902254152617250956822908886553879095141912170462083697678391261534385702211448754159011862054240070805845234463576494162233206959558347908331626667521448772798759971610221363294949228064843183466275314613506301618120926513893654314059372531936651336857920017139599596489226825266446119775706405555860679127126203947079108532949413379633786994674880439567923201960072106637685011965594293486503935561635824683099879415365650088659063345752379848307528478992571194633395138263808434119831060835176111021195240574327844102661052558328878465734373407716851392301280463394512818234729786844613819633193697987563147016769239019783095020322149714776307599201875228986175387471683958746619495843077758781370809272651070194367709887971023147841265719663563245063917956510194149798951918165724809715756324510559333393995651177345963549833958345723488514815666910762744629951307965479968933391927462981358154004479403962854797342731325069592007904144444360682662541584386963652285960096430722706283370260359005903849290263520294398717288387309493908979845852691681259586815949190553873676753181616598483258511358104592796869033005049903024970120321714297907966595443339838594020570589809273029507407684879692381445305089699885442375048682457299699965553007636954105050658242977185669147663938866521165618644208625387178579859432940864561127677721507119611377697958130066281067556182187123040414676445834692267855848299300198242164254972390154798818738698242452600350196295936721329014366597292796416264509735185274977107581482259234882865776432231682020547139034277176483986100876874610074488222365794379983592544393256320028631264540708113968940063233231235483808408834664683731947795243470842725600805424906118582607805010870769117458111660169456039526214921012532963901835597865417235754134900318385756305143468595281884411182321965918386227881882072004804287753092761304565654388198589382942267923539194992260743536607382838402201276489328786432900857006362615061188309757676431200677796109235715199958795568474024695526251228317394214253089822962078593464450616840637122788813031359984528074299552742301382040207892066761152497908042477367420016608239072249208438248180878428280286836772132384222628871686054371732985867599556449772453925173469326995075550806148616076861374453174103942968188266329011437502094137482834129663544784004216530145020962353376751132726582804074901410502603205999246137855051270781695695311858253400328017250371620891186175156434348180565169753117577542439971656343173589659774216952997378563110713609040900725859626762360567118855116605720195567010218806184332762661741328968591923852601782872191943004749841670453230086637022393828598567530251429262647730749348332281830187640125527714884496865362270667517204413308373762745499785835805702726755252644791492489337310723995355561535627416306569314607881905122124845062505547422577044079077985690620323810340020682175657356754003165881311719475913003359584073212082708061040335242952102111374063856521678963337448506627917225877486227290764938587030462364330289983033061855447496936000488359378734653553098182031222227292449744786443950523906421064495571582898661895614144874716629995373707718901117009147565286704455521299126222372365601321887448384283088646931761299475887161884314386623279894580931808214001750954773651829953036531972239536807868975758050135297770717866212248637736634051377473542656212692990371752443191157035565233330649544220940331629037404965299138533761776018938886056269115439195118651160656950271496847487471275307127519159920409168000483395575972259920237008364886424270901465025083724173281370574001228328085382894265080126472518334854421965901599403568043894797391223527040696399285029429691437171815225929757632638019354118498029667153255954022851551343540525003125960472648884293245943189888779531651954431294516053268433987853119325279159820603548668236196397501082627080416264403998803407082910687963974349358826607463437026625005549784249704013909281669180549402671788053411310350809742741764893978085447566138411737647204571443830083065607935788181364009610082998907717688514615794415091820034134781442319010906400234244839490345519948859828169294711861258312619021589691194108887662857027339363888205998251096733752073969023388192322180164035337609745333650925350287253436839356466150087332398316063082311370781483276178599784061419666306200533592256106270093728982409084635283118709662770273449955346203358535529717151202411354474341732342672493444250927998508894567770855492786388575702074472609689948855207705888062165390636758168914075332393401702285890237148324964227961652718398936533194966210444971173151776310085817847293079999512638119141464680532909973073914336717904596584375561224849687367194442794964825879317270016436184852842387750646576297054274516958407693715711326366751884130488450144469781889407141251472930215396086722490229123676858643141393117161648722454480380089629685393534129312337525646710525270996702865597408466157810988119066728683134944941737930972987229936100873854733402533547136742666165861614025747487349800834378912119009177683853407370144245834018121273682267508553826769796215603872005842002846289535572567318522791516286321600758104300427806202609965610277047286845422775791235778890732106130213447963234336292896795840059172486068529010819213298357787171085161353070901733317229475616827010723106169817747105504990868712639632908585766946665546247108974102019694971906946668138205885302349219909665264456728173332394482780279190719126587675384662629095663728631572365145638250345735724520128623115392820702844005306144351158125866234492383085019913143966237083634947410438935779029965920979675688558231051814169910351654248655300001864516193081559206234543126696667744179820603821932287630849987856030737395423203119972191297302952989468522615759786871979668159514121722529079342762387487763860476296808030784545579073530750379829195647189689677531150246296087644991428017810169616889530719978931041186979894997182358525834821118068261945776407188493437410343209628497494277796500007410194988184747654965385247709971465112966760225129132437195876796961470116581077698333714975121307094209264093984269780762815789077494847648354400431741664582776956185262540660658820489350947315301780627869114072535477669329174696208691894091145850746981554735329041111495242301168066523065640922792958587508696213130311881967295836641238514900204372378814968038912748922213986874610509094871607987538349412028495879793296593650734102844742248335511134389596414018752037880175813205413819489671022593007891494226177449162089930827188750043514594734753330457144817676595324913668965071701952596542579413589674207937379847210555981748964424789076990019873159442192355291412790553660801996861772815695533785307480746749345557750272299609742160116454041982246026904351316249430313090800530594696283682212267100745864416197920703940282087356709129244176905524941110841787381814375535266397867363712702595870191427536780919658140306860690882156210816536123970635651009394218906826062749222358057469723362391828412711105035401595529737038104226923609335582928479990750856848383402586242142866990882616769004241648967792281394734230928780188350621549574613018296524012351034272099298452144742803506947508951056450197747096847626567246903831726906841194755938158330169531857885090978094773124780951504221739354868776034478971779193827574524488190434014134350733043789439295952580314729015741464709405232488113263662124638346071347064376769935360912059531079567255655597883010774545830279068160193951037077998610974712668045069958545044504339354887873751233015889869104477215819119484177600954522804560307326053353650534838993187422942990962240694837089597829124928272076072382882278236632281857789664308628679322707671236264986920038326179843427680102868254192497644041801978142798729151498644691229152800244247995957650771494233803819645350527046271676921323122045364772385700883441760592850866420689403795874321061597644619363322329957466766857359383474488011682595854489458283236276500743234953932330886174447097371080891796191492968402436394861639167204716417765711317733914697646320025823016409993106430143624790520076138724896256689015624865226689762422364175222775312317068478186689625989358221742220874423379880277930896019109943627814290027497642122766557700161465862801651090939892768584552247479549570887160381185812814614695437265288959662825556539858993166597859875807081039960024008504380986347298881927529117890033598639850578802382775399486808131951305585597736623605800339470342121553854861734885812666448508981656595534604624364877453422165199112697784005491599097965344551044061381554302144518022970181048686644759474664927437634210035181189087388410957655020572294483898036245070007974000302003224192272936445626688640565687975254016528178412717521179366006042198485612434670396325308792620532919316244907952335384763534167468855905213663640319708960525236047313374675934648949988093336773648503648939486119728924933299313224588087309063306078137077187487559480629985946749571459037079781799781215676796314735449442705867745093678062466837974445936630412653620655618360267046832596884463956305974669604445315520959310059085624481750593580720847885529331749539342883781369756448322179524537173801961390945141983895185236625986990865654531008514676612729003112998423823943864422427589427937035351826488953454907014287139799965147573074162760289866061178791533636248102096596561215438256624038194273970703271357852812230548142923057582790628740907311687038019350353429184344433440578726122405808897364044268168606986024639442690156794772115007929951742365021170785021517003088443579477502131006699630281502092595765540325840776400454597139198240820312864033876287809743899157309468279511532225270751084985754329969948602551978676494096304083808894217842329043222961806280727170908724446859807641171299165052635816201766394176709946635616300242915861351560233234343229173579025271867886290902919475779660041320205769516537130395602454039614123766042201342361057360294779049795182269547271078992504973244810129781332779584766296763261493565278071889649348668360145579411267379132515909793521979410558706947784079863892394350768531267513734310115082110379750296602908114648280697379358491042386718062392914349601023753543021501119233000984103752668641717690202215990436453061490453525063466964391657048567736698693654878605745907026454564196047346702851921131952034053867037231835382264477754403194869042809684709319433567189206263954410679829271319331638064598447224476873602172259394525087689730995482149216417120079632999215630770110744376058793831981622445536138002130409943486579488813221125069269996794637854057635049150343911457765115227699877572617502470998969792608785108983709463321125463353148022681783804644835715361135529788595266192107063743648901279229358588206360771325920872197315703054922959223416929047279425840348918074742263261964534620549812213784468668318130399688385322074052061508480105331358230366133517341451426528561707636133378541029876416576030914468095048881921302136478071385256949211558674910390536117280902112043422875871954115858115275719153163548986917738009504835412204307725563485566190474811431393673672439994226764327519486756467843142278213741964317316771227870317528213391799198999472609646413431951040079806621597639720339375297317166594293935018157838001735866232851514062998756885359765490118701503931505418669593056778225791150648557224371441256427592782389040848629930129055617018022731439961452143479730615071792441939166196893292423564547358638483836318970662050017071287953684261273083427248384668158283161154802736965126444353865258242324140199754566962295895789248754008103767726825170653339383037335485178931754848966942961057904373734487096271083486630382540751885830450465693058568589621549553196655200937471699659164654239570050066781308851363276340001028598347021287720032661221147281120013123270764772229084861747052875518515686453870375474587655350072347163455178169277547206477363482960650262423547213864925297917341744074132615571952751341520142524547383024674908780015407730009442218333486000903957136081622335678385019553755870811316273140426914788587362639335208854964827909167660586478976331611184379684138253675545070035859847803898166193965354663444210165635878811649301338437925048123169538987850152310885173820769860727766428840063725226947642958505115002406294319489964447198536252269089059288954309930258813168227242848706953885756591543504840111081745271084097493779648180445914469013119312877606083876449778954963726205941649636010299893778743166856292196761395036138523154433148482673611674999149577537314233196898683644623486090557829551296232058265730668862634738025421251372314563477633095221658234400151497311172038941291122204024464435762244719159141550476535017252267612113000322662337594979312466086529407179533070138329552046137027612281355304876405169783862656575692072232319835458400127394992126423726696858500313901170142855582078376695880149555118141310243723165252066577498384039537013568343132891828448516978299715042619960038099273861059363534840055790162846395213737253746563713414135502600683692954677867015316039390080289433323492753513137519060419545214861185567458175525955258053771534176176492009586019545483377716195971459008926839664048797621388271975953303485109411799265081983835934363072863280144779951119871516173304920754476292995640128661500556962510475921346943556481678397079026690014690822360076473760651164864504737595266709886319536093161863009287139428094532834986552968777531396510548054408970309038159404038574122473334459833317354027819108040974562629749416688160051202836792428452413501476286428966126185370269605002544185962995469998456104332357873741840743017397468826910805596877601498581034731626585175068846956455436499064775965005600147063618207158406469134134537918779460526329746035127922769400505317754952398303666606600003818525069032787902270233886407859296478794026376912985983019867743445683759732833800494349231872806257973123738808624460931813188705185801611925253111952360078248742579546607192780828677414730812060386183543071454793324312952163234812892135218353801052226771333578657630580439813208066663481993153116019134306738336623026229679675976901038102335401600719579806347062022239473693816931980684563393585419360917542145058021335803764332479153768781282327579481809626258439948121505658875004919173157578319221520315985781223598130889893160019031181009933342243153833785758927291301680466775053692653227482085865030280099428167322354442860448877441782846134386355031347864673950236022889870641183991058246892261062477451545318184043231980816940145537994512980939560886470341521717238511650577926448766759726807050978922300175206309640475313746972883888413241166817331156153301885091204205959209723599443213315288233339500320302005000711357298898711394403617018212571271344876719921823384756213445799527133774238418286752116413288983296184126645771643905101689344766272777951385301460823057433894360133839805945511152183051478309677596533995508803239285760912226870823646956172510660952902005443867388213163479632971392901036162939192778445233827058756250562217304182390223585012933091069217983549191406607869625440848181487666642337574416959402994452775271215241611274838016831522036109763147010278610530237670136695092901188712694220409616985978353067828095995656001747320179762028366957829694508722843477337207154688564447345130080723960066156042997216113808542051278513786623907771411916574020573507543860493951854879669666179669751104357194830837149488387554038695713701363809546074023506281545482305218519982936623537997022720556811687437924095354113332302403895053175907500946239470552496794980394104792517492979400497263511402260389279659563474201937075844672482684403724529693710760155430544973066267801441614581911093528986862064838096696005007416468230418309641378828289166415989491641890797124980591268127991794627731469959367414969961743136462046764159800110616718031570746326964433040198968028753728577730102045746537595289995758585673744570564944499336637231599369161820347382310092257719148016130267010632954921488184922523005677655468499199111222749352770733312211090766174014893683356976083810597609795505981404261555115442048242399633899655266257390972073105554975702484209529026919125911225075331088266169366495310644155749342883022946698914012929295283866129042199501596315642242434669564594773166302690088377109199031688105497801383133487433417946570182586115417936881007977061684732375628575417874479923049209847067758085093452812682328059692626756349552489262578083758777858067660496817536329613736309686978772804040854583140237072971354224399206571471248092084795070408815592409464151994800480125977038570050030098915925998892418554520330459449564249653440976158998826991508319654345145020599530333982111033889761020776714703636714098313577247145331761043624545368305708226000054432592266769502009588811342952538824689881191667150472010433485657437304725889653153975162290515349169417581294051010106357003307866837356915133140377339533513323119033283921217560925343548415706508807339183150336043594765526406064488738332209198522777460295745665481306332009147995521521649818472753669981380397042867463375905695361109542922258904899878983398234714441782316511560646743133677231153355940075913286858005409783642908824107805780230163111178733545875864692977543566124907429211552939926618031555911478599330199237691402461687709703345410050638058883903584239890690837889069430042427141449427974844615454968932638310937222258873199126870841535331834999931200750160018061422541160098873464735962511882951158753978972037683593219252729901729773718015642717783447905283828097257086873465304965144818891390774300113941374253541222641825254414102297554931570200739346614396963671555868896457365029707165545572407858653616320928048578878200041061239690420626429877423543594375645351928700546902290623087690459653321505314001970115437514541684608401322872120453625131402698654556431798604068307786781863249882180253306594492945201600225577619961737995855551415421606825413740056755880759604323141894483103660464338250210485609014532733624553804091189269357150660842225756024323383479237339920618664642393478564221818713815263239041072010626715842427712148130961102101469924712915533206152894436808533666217353489728164317148219569649043657465526178733270006310408425897525146702020443274015011657846303643527428861121956175927079254226512930609734838660545894013015398604186949283882420205508940286015336802294436384092788361316076725012446256995440711006637315537432922040921889673161932520270445959527298301190593561223909145830711920434141317377831054481030235914003284897652265920579474975175342990660219082034672669471911723707943687705440831768770163845208001675083008698872046977514567365095295557725420749599440118723333083224161702114994978966322522568684055523090800920178651910013883777202075842603108404302894563380904027220534815519093560316449437512535018633500390324041031902197114830829678434229364958207534080629539947491025634732318217509870606041009027753326802525640435305837767090497022388820589417294078087343999687968882743788605629407919234614329775025138120545424153420111541076586628014633721699330991674722133993847060539999258210383387380027612024930719887079552008366299539559052254241946073549658553250206172749662031032084699225199745276988039381914172288930400641285565581570220524992595618423250857782310736037929839768658862535533265154357452435416179663130893442637499970198028167731055549196838499678221957468009418996985354408974179995995570781662615691936522579902532457141292854091228683388714895428192232525932771245728479407390128799688328325860690098085434817545542631338257353750533816560121102042467009222266451698317072017548303737039554684302485023760599115326894181777228387450113851726484495024096089510286245711007213527639768434888910399643182918527029592226741402107519418718283650954292507210735969823480715133757186841945617867676298583082177501722810836232056031247225983061761280893410394463664496603512254152258897779132863052428172232667375824283242710463160830635016395989510434337801874852575785928714137554678391945829374766945184669159405385782313762759615594215396308972130148112816136968591461586703860181128239427620561569122491888936907736806443945133945867318514669625714739892447282102502618391458423413169290573351977070133693628247749059265239245003562440097751032534142402923778965941271178102275914911214234037409446242542430282131959328925649916903482166942235643224068445340358484464558218535300872240381672839277811898075854132244205083148330615099127901308192913967302501336688085701626776612869524512398290773853662224691839673896294398372151655565432373713408054144267271621870621242229759913650392158574078344015956731004828208290071118640227564997340170997383205574760186219979958177823631122972123304876797682568479998947058740435142701050859175581212219313233552557703555000872510735311789034026320765789574510146221340328427315066889519331212966479501506200611182006538623460586183486414346170348390623528183689926579048536863601212729947852347845511774235118709948539119377420920218967673362386410668672280991544207374079919492988778952369989206227657445848907052278745218408544932015614865490234453266726548375690816886677535898824910299190123326688541537155838522253372476980021407332602695750480150148972211727710032699229055403267755843707438800952607958501099455250874152473665772482216151424088425171780316003547927691114096214296648759574910777588747755030278286397526458328608880653944407502973324983766431804300655315410244825212080325406040218195359711645604705628801335346073137112972809524714509849669013592484313060543615697517642158641945707891977048112491271876893622346163770698250219104780384109799652285957196126977775281097976042741413566369013741754391684918559436246992492882970505581700176031633554010826087069195855569658439291201417556717765927519975900910086739402337707925878844941221563604624409117706131842776111400164302489764867149935973596300598133296588258813223742764908380773974607752194304294320437784808867397012438458638296527603834587677233519615215620812750453643363705095887984794436290566002394084116825561795859001261163970464205009026882923277355232755943262827818270991862578587364079253314987918681204189456893311797175806667057319694966126740004820448343284942079231212604511956218970351025835537081786977317284225337195136606142479036509102288072616161683406609089830383212844386339721283005933405751344743530750007994559536022382293994468594975031029444207382276245598220965012060611128680834537908317656174908642138117562694889823910106840414384556320063616556130719425749653375389559592037796941566881123308299113229601901115898881410317996203698284270356746916803360298669111783212273502593514999083412137316657857847487304166436540046386392540712704082544463841185294555407016851614449946649497016376316904326788015865133002098484854270176396834152586886762728794583843999616985117029026416300851112929340498806643321417911349347808030013359802825976173261678613758438436966423703604380077915470937392530152852246185333523896407078071969784367083850615335411932334917348921793756296507820638276728877051765345261010053844813380266200550283289213501184540138354583933276081724223925813908870696857191998068429589002682377580864526203861594401076309402337066147563138280979887569744772486877128390832701878677091417760557704331314611249361574386302328956010006023668604710480426845864053007432010431973608232781387013660528591669208112464779988654211882056539302233500259558925390696096195519097730300261811466815140426603401309757913856700474854741241649696655577338254760934372353310893173169307061409297878090433435662496966658516964660939648721054379590796179068416950949842570511468402655124055075374870772410827021776716803961235710372927275168891409152111202606594189398147068952824700655475201532189461108430253535647905109641055321241734112927212415902702462033531441689231977113672438542744030963955037100412555144577603605228790931076266264825570734721197542321284841650727168938855151867145062680248343767793947316971270399039084956186666843209767654302274783920076924675096395239206941873063330181112852845414485507712763534844002510399512731977394870432262577535347584812083214411775349374924507879748440953006391380141484350775699939614105210839872588310668626355508348563197683672105870165469597974776616300724447355377942760024113272887441707773597186346060277124916694662257371530866991675778175231093841106183614136327131030130529679397260964829916648203868713818099010763625059140016576873472037301339335104880958543203218945020787813331472911019358090102097339256387391619309914954995839619688557829907834353154259969282663102912129447071652912479396488880835558374583338511858127298644821686539940823912132766675754599131709681386043593209040623338838608816733536476515843441262509033747216252613264552662456402678014585402457658798865451489681787361264516413200254903875335107207571027760193341955054862248640719141991876948765436247000525932131534228866181729844003829869226226706777310900877432911033428389026602093169168022015054888629284529659653110673664525773726369566875978192925296171891833388047276370118779434076407293349394733804575001645446524232648260735377383896202933771543350646169028951139915320578652970472455097740580236926471702760603072157449588908356712394628639682523157362476651791400179753916309176552000248715759480114503490675281960460739774182591434153602875655183996427440815186101549980247169725113324709164614050692881309847557325037834179487523249723164856404148352991435577142884745179737656680449200846692796662705868824326857661203654652885309134878403075328524260209616521634105162180407784751829711041143643830873930981770744903319164307343843973105127729943419557175295561299649299336810897320596169471383912591525430358767934437267042181848185491241820866998975491865082802257013190655911862740077435338709562311108476743015317428590016687556077155376054756469495220943520493187570246491272573599020824078834008219163584349039965563403240089215401977162417606369676582248708164428179432519814180790905462934819727009028619981376828667112635485467230035688859574495376771908578306957869073403768170002550046467523079731737626460528645668837380135913530497612677124636613219732257159310609986713875064885942981322642200438906430197347015445786596534081407406792147930459855600090272912111668476334654235600493502712796744709052751926937147021900168675110961758675896638294800431036260818602340922083346704124405513293219131274398329606761037340150950122105737411938191307259014482599457206813070520149586413484706392231912843330332878568013324042151714755544213740955822990835350309496775634933665273520936373891931756581422407327310320188084956571734744916632578862634887082577387677096704844266182730354674707213405623014463473953228020640547902891198224832006252260148679890564046097529577346594708309495159269824673053794411634504105388929844862156392066224908898221563032875466740675831365044125079115491878886457863868520723124401458048806496345108188201423955125559785628991139468150542934332008369734687997758946257430828926423157810775702089497950832342685711992534885192930467000911726861602582496444450659102527488468502275471521959795834847729175216458113831174962189847589576793366099329073496276013571145231717208386885586532272053284716962668636448473121085632197231555856160528372700337735776246694617988570753623739515739060518945453316177669902057520749742744556258494477771647007374021953145774825562834606017175509602276831567638851250635901850593859761640242126931709401154899872822039531601748692282242243083755808151908981679708728828238667184437142976215408864857959259597233794707205833927036130516050926799857670421992393356232338093175174195038458776507806138626928374420266164799017935976046432984413213473159248072627587179383473798784145354489399568201771255471374535040505048515850407981495179919410848262749969905461855844505322815796716534502446468666191105857158363165365511312204899747470763517365410523994167895059396450361546961961895539839565921727281402058368578447872488684591280507760975598317133439420360796687482201470964732940709853920955408511495277901977310756360786306891481612955391198217145031648370172503364761577013135592668666423810711036680585207540252151409101814787657424646618861214421403618800076809006549870341434476640179883121066686255448352103259613139531701406180445290184943340402293632251996808817284636505840924603584283598138089010020391814432087996933762083829467355131395592599222962159433531202197873796722596595961180505357700267889224099167975395161840677727067353071042347147414141410372174427845836056606008197846863988562208114036022311036555408997249010662302274932786972766031854117323731735617778207645882111656382076402557401279569809784617217296330399206681628309289678259941926836527567792995072575860467171289035121703078763095275447080026281485775322146188224180553759517105770573909110756150867549571356378183877583874139232224257789449240001447022411261633292448538289179660804908231732021047137992627737218077600801302107251591468746159734468090997132146518686186976043728144790226882553379059858849734850115355339787448813885041737797907920343144963900631488470254739920023213774521119369313719901714150048490011197907767577136209876400067833045023655263050203619580641952740939587963468193808178993459454218189143210830775334762499120572389646178793302781774022265229654168608701471361825304740343818940132842250051062324257021570294709889519236897916857546873532520336908989086121605728593468242501800949238876393073241726874654321936972656974589251136622489467058245813201636918303533553248698376067954592428943300302282001499913753926857822474985522907092267904991530796453728816389214818313630252332213830573965630411090699465827798610026218716413078816835611386325584230792762610148698122346825314033701593975322696766254715329182401806298629693308845814845138751526733835342177545358096055618863866029166354698119271842695486206551224928088296316249312786769656292963614799597940048313551865457800577431202199117748739469644721796758222703303410548354296661197727292250240728890862603428228404018223393187211407158937086529410040711467659550693692578253219321029441304496024775457969278973230186225859585356590778225161981775807597991682165206497302344108856918110344758199199116233612536414506824292423924407927386513292254088164511453068709073532341619482603411612409097913579317604871784758379849228972562967305855541495369315153764904332214690282377023332635113180196210406739082455637649704460716649779286916512630258634297347600039132785987877920345458452405419913627316258137640312742616286314078839873605294116052038257570123249750760144091132233302917339589932783901018225720405766732512509086820011041842044882046761826066996466995934076174941753844630921032329430465735241389414849600836682930464795542025497619518168596384808909055099456448039709185460219018335342557590790970306921687887679698134596956301183197131487204417821357709487654068524885685136524054353189870425626581663891354988595003844071181119205886497849292032311141625677773343673693219715346903120305241193011051851016858823462331216557773395084276151172153102021421951789825043655360891067137732266350248865380899846803494543040828938018987521544236913667496000508108214351732721309572398934530865532596215780530576360082962734244370920703346630521414232476903561003305499873680687389694418516458949013663679842409075228411911220159143313617869816608157336632904504237161383791268490228244513927448973005538318062172030814141392649427175179569716422232262437380621385139882734236324864902068672024692118230033718600588993936275551079622742172247869722045653383887477768372970045441155762583361030258942853320977482046693141949216766105345377721547495909586281562308366588965775300171966825745790415966236576700284337770915678066040141715593066932112173032595033105077915847814663568365115982623333879236526312440812679971108848682040368941277055046775998627971806637382805317803534500723127860692319203532679702315481728024277039569916628752012494991291057937126275157023271583434999635831027037519620695094623482947674115161434077307546523626545242760879499503675474140490724482215435009760543319937593302626807857601855612233777751185128000234690003831947698451842908978490646418414348785116421414408215129167057467847978172457082873955210038191249099463821636916583814648127103608871551805779408703306810876058558765523544149879697374537451146136493790290076243476433804398178984526791346664758393979493477533432007017261337861634613282198188130900602501202152231601787060639481842428230749302272966169199731664907967531571160539181163823768311896146299117326603396210053649560703532126932233544158040017604577981308112406912303987382430238047178822540661030668868008885291639263918878109723869631722671105685617409044103987828226127956776814037005179552621698522115424325354455340433967101201553503849743480265412213333070929878975646007803711293109924350435766342057720724590386795217120890350780868879042978065765831842405614420542262658764774534695422029828416508575392386455412138150745342460405672393707898179332677928834993440973284175444914469245940698532909555109167597250167827720356835614911368688383949332109962773892806382252551209830760182231394257691646898178854280499591675603120806979784232696272968397782182899477208101486685374509707883092495330851474155387949077690420927560889570777134695799614755157251619384925744749610700795057760022804931254204823106274526879854335105101213580983750386793749565167037240334260061574588700058993641997466332049887535078921504403312315917791924489505538260209615210645471035036030177682693667646681586567984798730827578021446448815149724943367815622028472032205886279317386143450658727744419336308839925950774455029487751177167245809246405667754904870630730004825642363001388294051198059755088215363319443991082605382173015438830482062875670065099991047674837168673280169269960392275551713951826650970927177654371128850810298767388876039507715648749850479434271195469210027242528915065365830394900474894470249775175127632565709137633140505768039681872152622401983659299024124030189840909965347307290449091311674105612392461391369115189927824383893932588226752487616718209645422919720061779696413073301594261360047228415464246310028326680022316757369455108088968399456887314599376994990218290254257934124570172439970404073526661232639681533902457953787556196334616589006642178511401886263521036064714320652523166455495350664045253450232935841064439590660274039198323364522104204465980400890180160757452383028867473750251889388875018103270576729702979036201139172280627725383858136412592192643745656991690514290298904290851898141128687768930727369788091191618497864155579693496540579115581924842616636364320513004385389629334296939915472341864023490567992110601657094706001730773001864102229723835536211889384325287705205540136420357817457776357689506405962492806376118708884062960429998603113027193389419203183118543134588850464521697554819703420622129732493385772932780293830752617064072920846624614211252995085452238197207632473262002761277733151713207776207802783954665251923616308427598748300379788481537596020737470725352223010060543990705481259577499689315476247666974843906442239510411548793755509143084565796881341749167525563468019405129890618394071182424461130185789844132163162480771205027594519939921571074605611754195686854623680995699415053145666778409720596778359727529342123614987039399378512587552134198727613039245416629730673386320902123641111444323430990550917753905697017510905399992022076906956582605219254629069518951012287369380647658949428656263858503153880005751725342921954399301942752376841953128797296081123943967567517091042228863987667892066483032238417043341788080242265131165366440327697699187893870365554310467426872409330129123480988863249224996941405710517168302413417185569307518916385167905860074003803337934510177723076837340677805584180863515946672357754302334665898443838429915929735734743334772832745228604608187959262485380919281290411267486485750128830598199034060410355332610543982283293199885432141338392018336770855133878418726400251796210583266430638620194652681924612863971722344342700214954604001006866277940395083005665319600496600316150316677491312677576362675831332003828057530856930054835254659180013540789373496989818214756028351432912828331363832453020125714571848644397731060416027311906267133305167547381221111170681886988555210168197194086225952144307444658057310869443602535514453797436678412149874993910594893675328108337475815527985190278592476564326902110387930454414138665731851504162784824162164057322301058731625732582320912286597306203847009650043002908351346212244729549794709515183941558288667274469257860541295982120019102107926918116238506063687946342910830710069598321530009024338133065783946017615999885668996420476861647693704341847329206343230972549050186724653457645765350660845306692253954907122314486908394929617493295442120268202736549110832607732162387332147772948807659033438588369095071354289052177133698349056003946643578703791138984281122886264071957946243827846884264821343088115899511957730828266835529771127397244995917217091650220391840559012144498493799731771906132345775911737119823429219353346476470000517194546847682026960159536501415033227532784868788460335940740192674685059372704679079982686135902234451422613673413243958333251799107528320543925370336253762476820713428252781803783373142058676086131528030994454931520715362301698630935471499422996754436830840728664646676141940090973106191914289341543645657752547751273806765841211388043047433686056465968204351377415288487202405111020542541964524006712156789493603767639415742617306286352267454134018799491551045990488873229064207858939215777559265271152552101288256771923694168390481449594043175305476148489206522244761336353497998580934490774425233160324602652722704244790021470609011702433510337580323106647104789553806883572097570442028330654544705870259892057296675741035032739538228542225455205797040694485035174005419972820641090478197951518817829460356511373115392614128038927771439063992487871783435570007218642903507567473448292978721716839492637329515333350219511224422660128396130499324887278784682207931089833491430428433409624414625506806070677511760019099163368103768073477796885147756211656906036251405250396475485709584068563478191361973253265398789590999517470085497430405501429325069631470100665099233939110433660817030536988258315190026695776325123770260140244253831864877093363861080850428654643267464082628592304308217311053364134875022829597252894673234792702361014783827102496142425023374844933278703896506484580966180883405850569875431014799863837277137326606673117356619472624221337540459564260110421184485613933016851081551732883133370188484293699088452789337566105942883167398035524589880298624692330473516673310706530893938584246425451825874938339545250154562647682811755536760973805768324855915071673855784370569317830296713571693499672460455505742633687793437908276149016873976153497620694549073414175737143305685221926254295854586200818850697659120188134507805918517499597835385476512887525606484600322333542713776190633911643324944879057314350133342687037950522145315301922380517442137001310048043727905205001838799392451943855884276587784755507625301890897860165283403945152767570718192181985884209349848432851411289880921643872880686835917175572930339549588131008591272540271078483267865997362470175921769591523627878858680963674805364815086289220081863188227665269785692044551876805028172666413706740577283467098710643732040240142829059901463865036274687208003998058335967796853769880607990117432756194322965807687934810786583856412077013655728075975194778489591910505405701788538233266008718772496277063877295872089488469139608305251075841702029737165042427528188667769783366478482830679696925895312385851424379799115766101367982509773966855704178225544180885000616128440188407244779023085747516227680280008403799776808304718127276290391993276113104234416396225981984903828316866892636614548382956626295015620637935320816491231656329572720712325779913599746697088714389272684174188119575633525453901543201025656228993508828558801240209542349338530721192001103047124253206591711469612137202584317609764670045735166331808262993663593100089569768778881540178262156777317281874147803719723002656977272553834716244700552680078284939547528833004881638723832228637695065928233051498307116920658263973621098107086457408006732551663136302899722206741564631195236714031873874392689939884812950334196123538565123883683075444405939228777235997598821650503568903806056458185483808386938574075485528398848434710735207382192316323511045673221942264100899896351281190061163441800175918024999029648899453342808417448337076426337896440656352259486501495197994436146674665090791159949405966726713489547081355586109491527439947712818394346263128057621838980262807858734692839471758744611133074897114396985294718577839239346741386179860766543361203571163738425251028253381733326736648361918937402590280431569865064841435355921198811255021248902626861507116533647920630335458942531747809307894981750053168680028075433098266513430184651164008728428133366331972345576318275828876736606299367758632853725621184481158940399624270166825584620186816208497330945797477617964179216263835161345445348433375398644251972462581243166774462996848905759493864808356445180669371889039368038266646638573077416718164446941078501102295325167642649816250289172365040670904114018723553759954422605618693410696114900998850053280240066617077501285593437042818856227387823672038907392927539164009624484034089881940551080579484858513372371675529504233308572609129903653330751491313165878852557339984838171622742845415915408529237903994204198496326711061083207093281916855879398713499681299784037686290829594702535470350516393811572479328242624036715354195355433104825102301249084853528910028189855610050151176491261196290889608556257669707273852074532893195715543672460413261322612900845711636590258540191483814059582140941876217729545046665014414139030625650739131085248417144287437151445823950867050933219443222033224651333934409524433611436864486399261574776385806947602458637806449969241182709856653171918864776860444729365817736322809376157803886495261367850582423862570055463836993408833911916113347884573292486547168636815009987980931256336507929213887585865918779503369704909577284357407209705668019147498857081740134675026229350223246027270996713173196665271332524266655239565056810580111838695108477883092000451883437081400218112968914483598243281009858643569689429067213898828067920044178050752414053767552997878953254978710682724928510888557049666016525882938647620871002414409925809891095305328119415548718798488784258527794952688211510332321371755971692285721558292195070203479179796190575574179799128790400707190359787328939075453877236998577445502443896414683138792556350580160021605297423543153377884887770819412306699212630522479479205045259782002430494827803691482534685037711102334643539239029022629358980571649674193512130661455949049589791441089149269161585815297878277790507840196952480133852818558782879188928164582588170294821576444634774701322262479427951868818250591631472976911511870661470923177305663789793042407778294899023164195626289802383917680476125369309958504014510004574172738116997200281363103388009977403910007771513205082065475787271014019206636646755241092059841288150944747479629198633529584044236581213419106444663052258697731693799339165240537703215189370032761250605271050215536236719416463694030956351506311483198675783573643786120604977754751802488392859910155477250581377814864428222047567356485399814902427483483569197175243991292158324499846887080049218480579119234657336830444548360840863068172275223905148686800670396273924931285811800230504420212224631676789961022089200688616348732522899925611437430341324994507176718323388971834644595354161484941258781169688440983078932792515633471342313633191671427735538278167447871325800231857839212407566350492984246722583486602885026781035206756446834929004183248654331430355044846076686740966671367375311239420603463098887416762086145237789387180614539082857826793164326859536637506879482690620724135020258198189039019519383577145863549265382559691977187598933148727193979342447409013886594584341965412587165999809818773673181643856717052851349432260889193130632789167491425693923566569062334282987583370208758803512924369123104718483808743259949223579445061224269497639304950098328239885708277664717675952631984317425384995187862593438722075255592370793563519419927731471774245803139596370130556992664227143246118389827635989856764179831218540026058384285482383304468059722210148811565772621984819883894534594300063258815526963990397708446253788782404473314548736870620353222399686104797188891963792963403265835250332166753673057183796592570534239323158603057498055032051592660237688412039076219225192628766346581276326798738297334949001439068007771238724988527570475056025617038856180681943829731970778354416350103960023315548997635555663809606514747231645973710163517974793007740590296290774362584789646500923219525187864619614064260789026933660377935443898268086244350133019408790119475598964325157963821707818611535246841096209618209912681601692817861322615368920844361762850364686258091126506387650834121173580180552055500733240363220547985648599712685004148663948220879856468121557282664387973617401898575561518733820312576316195587156374286437878831686264960578071771939600536101659171411843915294503207761103011147385484770097293000964923376923581256674051720328927103962987694237805908167575689654118835468469663717071370410645156010916014557136111869910582897799956704812371002111082557835824108021859193987528468922697717489331217224316526443065212155854397999978778051353740950026435574265566864928966066634083770797921678204122579767991551093165536961673474359267272688754311718855342548894477936723339953366601394100771766897008689630346017423654462743429175746145786476129766691039825392913991441475738966584428640350940938607975796339919543401497855032046177043782125657011577863616168770969834670397142630268822007641948217799187150682887412153271705743278766080427844693731421804787744728510451293086599940598093107756741255193979504941238676913964896732027273028635458950711074149960148311123174828133199014350354847660813884231760682687764164735455608452605062723160262332324629460584375071358658158689243723843525402052565688675493201508655326915353955999148299353778038720794270108291279806418418761031944890353231366734337284011953065968726996477171666761168230763449654944093308399614646522426299982623552011830703413100932342373714918389957505037065511913834863507140952682636649276250720223453469147228271816051592644726343790955477107092383853798038064863372025337120489952442277251370893215121105625458267788610891995281533407944951527087348496412742942119879722672664103648172029732177006530741403579333798316231060696609677856019299409189259920538487845451123526436441521079591733519893717926149763911188670221786504002520434144883155987416984466989912717109182740646160721395781365481735780687678127815569543182947256500180470872641305304160285077463911994221309360840469517286574552881782342037485210735534421375995304055080305482733113649261284498254039397944358768438872558936927947998118341936811167178031740327539796953320262996349356699805306306125603164658863500383753143882596786969330239074408683767071076974961540839442793301468259894539728198402554772639225476410262923620457378783476993757768945739549748804097602010540716294775639581366654229043914350171456798898285595774869667031736752739308629664080161611826397798783283472457075049054627918487858233288359064400415521095102121299566905112554078353196057875439979192492993235155822335495730688236958432312396010646508325143500466857805137346376384913235198849314434325301227567684421709185275947926722040569455061762603071257459056120562567874927957661561567635246897382301673424803116981338196194252650998983864298800443529770893608743794173966283158565998113781280288171910201787032993080531937189078387891781820063043939279427528900805111721463545863411927617808807114470084116186489972468716441832383220934574247801070391716968443766627174033717614034950879357067246967900608807117656880942487535893621195153735361471833382291935833070133103787270128872674749029545181759783755633827016031573751289832353414215668222397906111715216807969282191402035191456856528959266718846730362658541714839976690307789245821175943932862367261202883699035561481689396142427387733931485636413105224594411318961673713252369323009592351407550285604744870660238540292443697008444891616315396201875554759051035770054254960843508338503630377942877288277892826487824129207364732173491651934701620630306595440132856391075003105443247850156408234663898758335152330652369941751521866801694714332020685849161833927637614393739281016358124019937828860021681244389677212957751884087174290410559719249164711177656229586642052402382283378032102905149229155456347297936564096784016302454277806625401279857094707321349329752533730383605676425286745649668189329360824742125933252364891701342963358913181693402363153170716680107928903978096727170070457544667941904509922484432778291881058715609162762910724064460616981919793123565628460927590785599120181281059929803331909431025679863540037101552366007395025712231852740517809650965776102733369345883605183729694112231378655455865125295640973954370709238004967318705561324924265112363950829456372777320212384120901002256998773172299242770217215320511203156941737122964236705802289505129501363495974628883900318821522406761431512041305861857968347283161278121722945720549607531054332560575077371955208970264226486209435220959579484743811991268780968023929242882426794704922208764927042387970942308469235643987678457217552218347467956081390081447324912416130106943218393146856185844357895558420115034090727693679480608103374299785822275025884633622110121642899451328449842848791512391078246928450057958861859369742265824350032121907522045292647290195354704191914633684327118719866242477243803912953320113206926191367548502479155823834853327898570358288107025126198568506427450645543400457956348327510906725004001212020818678281256156886717945363701957093349830571963605598756378209120698312065777858505420532376053486382006214264611665940783680466216156143652920548588465150615601847825408930371722656602461677060530765866946478756086523709099361898613210914473419062167562419665359501045836269934024274530089936558760768379547961778036659099814790840355433357590288689405597564167084479105352213085582408831570311976774821515069622550487921496102921014440025964858182626202715623507569569525954233492627041979707726433364655814930581165999529534687076659320263333581168197071037482057702424320885622664166826386018445248538615336630387361929680083500431223531582548643116661128331794019006956521273774122731542945904946399907828530426088434273931282973754028234386503659733971120811097622701692158001163374726806593649652655504248063482804972947488995662323559092577707539654647612862236286292031456525067480120770567816839458129380115635181820215889546477941428369087505222185415604212044390931080427133367418717940002210564561330088996387220387822612433134622451301382568871579421708193975723321758480019305357972429953410724557705492638757856470805382069682167994730133420295392991481663703484638518062885907234517846301022245165776340216670990940094816631479522567367003721131457483275361727310155478300940316185138043086610666371258034756381063122549760705428154175048086648664042498695061049347920066340834032794769948157835467391958004806385034008081190352360202997462725829181948542619228796205951558488089378393746186763939632122704138075321146051968322226740085198270164516989463491719760657095489786012869588658096692600894894942845626140666511102130567594846490443530018041846343558188501178952119664707034920217891157293205174351460225745710344563147018569633369402030335171613056169442873640216396698023312181356447499533224027475991364515163317781480421166685843490808854863847499670264327202356827433713551316179423527824517111227356778987291403711841805596970310559202298720995561571414699841582760343410262170404695986867388956160137722186294760973678539217372168698696884554961052712592828179494489673673999033577609510553903927039843908141702552020163793474314287766867109101824152378424796266081715968806032029576133551451019964687269082855619184186540967153301370343331806133987745752461531279487991891385183442201118910798204808048341053273684409256283177461901598430219703091611713553717823599069611972370815087160720655671873600267130385895822038250056723456839351619332460498994304248391798124119360410534566001840292087746457931874181802912591529457611681839577077723071788670808074134891036818960907059124584343989866559828382586983442075798910197858610684000658154607068474769895240827879707668669455237882822376872595551582059642502070586688597793797065763618858798056507368330540108300134236354297242266158802333895248747394506790599517906719131281742791671797187639513225504058125410303660387980236711747905509628193703806178183564865998993143389931545004934542989592644907754824553563805848554806830583571759055594909238487539295618038639664455900051803157713710246239457795215518691431536922584859734997509360754086831568799642883905414593253088518774293319723369977490071479166125495275553076378879849066399880852031443718593924257724812732296783599725095355674740530501451225941806638984290691821996679944995593890112111299071118883787844604312943662779367144108905834688643204233124070998818220306889111784730237479755287055339678901217023187851502064232623600834758471430514819593502626425239440613634888796874562424957826873418605281093604363352484350932196854169367961245609367590547392502386123676722091177860688734868357136640003672847424855744590085531002651351200727678977689774159844918295294941538836926475630092825097797030113168517029595442920182809449001975348146966734434295447964266933170593043906825019973565480873116504020106378140306940904396250266464490452009936932289407523257838563932097695695348826822896541033265762248426272753865780986830656757623800486152180550041299234896725364317510870322197081611182718696750916841498297870886747847531743846289602336820424960370340505879019250161021541407524061988643825540039562550593255955807388997797706195936846381447808865830548944514708099833280123993087908565074554211317189535827968139429509171485437835663399334394543758811115745650411111538114506967001592804624080696091971308142964666863100384167923482155777976362999694087398988422517387758925262121816259963273361395423520456283940715028006697408396915980316531112226283308737707120813028179264435350805530825735118256988546806034471089438027812382706743768279053219724120715013090390638179499458351643921087483909379645127180303657030748196001922693387875505987838552255873870713401574706012851678670713046767935350779601498217958332278961880790907261062116956536613549499319255916669093212248059906269094295965906876413318612571579467776116309891431835881457502299449197807763387139223346777628050072888002188834896151046036282004584243259536176625631158477454491726022531957890924068626846375935794378542179094554509063397382268488164489523360646933678232319418922891055607406722901299422720159651743971905128025009326214682920296729034701145522652183339016495498348097909740203889657157637218879548304974178799055562432556594978508816552928629546095444214019989863439647925319388406006231190994441298331343379045518883181347432377731518045304756123894631761392091923188137370911541776751679974479455259366600456567233814747864344953565528556727529462321429048726153437364144307934550505362198791935171191013900541924060998611523580066439358295218900382653996350705089753730644176397510938343998830676473477530636217127371979579219653657975426407089915100979364314885997641338502873951765168305929852673778452071607004306777377274132778665783953325548116558528706709768772107159875383229994976544099197129219123742211206555701969040735660777706182651563500307872154440508563597181407286702718699052018361935778207482959869445205642245529072429931972913393973804317599673632132678356161733734722662513459173247319630759959769724142568049730326989820422672930909239711598686160735952184566581552475000369199851832231714823390657781955119624753171176045809520134846262115255533206069362367850589884476481564887583822931224653619340636006192804941572547710026068557935716713938980989225460344549197206029747307866250088004255977376181182125044083307348329381564544209641332584143092516848464627041167219446116902556990673834302246662914680743499743364159339633537999048372467500684201100990730384955909166898819648913326776856700667385003406543981249358668238692517328515960883137841236160275191019309551365651474049158886674306114223656155566518727043391499244914094352405478282566398638703190400621484425127090490381153711773461151512185698376163673202988130553011564985035463358538626466573149572519840978532610188152927813065120826613020612570010091881190706058124367908775019439326841620236219904037730793857008727963251785280635295097812105248942863377165361902767908452395631684307583288715569980745338959553741054041212800989770487885398759037996633814602716100718529526027110915793823163585782838321079317921053988533992208051785724212018458962984413024970935308017542979158636785083247822277502541267314122050578540202918903588244670398244710358127512116720710026881648659902164703831441796539699103717279811109827271975633564184126972641951973591730083164203055544403332691296508832337549254842628072453961360100683994934235868235645319647034486586605697859272856532684834020447348983125022934133490615707162393041506999161277715644158215987536978810925036496787051157893867410197091060171165115752295908388353474729376316457284312174468586153569667469551275695256570622181422702202376387067747335636973647808403868859654324072916983038939770477472778763800764640630787266846622078397799364228189617386601356661158172238938349133942252826321547367510774897156015626983163867509414425613585076421839067835014754007948158239521886597163333813706186450608198964409821633253411647283064797522380110703408383199419366533520628604606243261271751904268633079649616747504016894211737627388838374724130946010497411609524290733413614276960040382708960902436903868828703891073830314130686333506661735891337719240819609303738403786856966681405377485230581006189333982390994060003335682259603764990235812027833667665007081728519489223857972839785036633714892498707284061889699193042239846112066496794120441577192277854401616364101097379831069204611799435610098071483191522465279655551841976450537781415307077886314169165999310005929577639627205357314496039385728780725193483284291719232794724283888164316358335988344230603052825279534029621877650019173303743239865292332285354271786468385253441327157744764284620115622107743793211746736060140830928352395343297091224069847742000566112396452358791927513672074652474383083119409380820072092272265460729011614162196619200272634263153698423735984758588141798091246081879637606413242323484932366288724278896740718926294518006889115623557157862726421405342476618135364735999789665981607789816814473052342744712670694348986005615593445939460185466372505412143458670431082673922889039197094988282910497728840281773155347322960577752171721356121888040664849857891273213908306260317139854633044445432771682088198757710529266693114348879212368062805272442322915592878572480033010744224864722932804098171574467963763181459888699857982739494536672043482143051821199051390568604109555453886473983790047489875342215816781703268360758794839753055165737265473943355613815033225109770196670828806405410843160267087720985703940189284642135827901168936886929754907458444360357908473850797508990542687110826279057095412763851218245984475656106496613646127010927074017260325051280604089646943864778478210868727034373060083448269902019780572415882938475581970022020175350627367879721953112962273698459799310830464640523070912889472750773895293086802130055708529383985999972929147720935354114248104104713281375530884898058861963373392787983486408523889061247663432295570092979294191003439213213622388648796379743966551068074609310048875815854643898982442932923071911139722297941999644839228737689547435489124532646527436795872609102986000634047988253996121523102074191085771552553755681557303434515103691272285767708803688089048371742810300737956057733621992871674317608316119478558371188206830077206192543855952106988278235142695006703488247462300830203971849149791069704833645866967455583684186094183507501052630000993919884489858502864981587891678076792799631949817950690448511123045025776643355670649675344446929126732366826859412555512555354515118978191284514929030954657158906582914283465640859462499199477144210660520678527250694149804798255506243624013789476263119571225488561112256955682895653713582999717525481902163627474866569810783613204704610661027312272153123151100779298351438984700000494478678660801205259865720408393865616917334109346733108787370719188396269944579840505349532939111366246688869620898355725203322293157433529654441423878423976037729534450392576912625507927154424055126217926673301581571081376307776248974446422437896434912829903329762014696854698271835636824102886532960466570289590299752157120557394545266766176742524137477874220113284021093065790748075992710860323418803728619572897165786578543495185799598314356628940409320613245790180946411863780671756150415011036363105756428767508997687453545102981632994776486719079556061313805585680270206482966194731762118173908015263102704808881575868979561776571259143168205834678954385944426026146752569688760818654001952353560261853176059224556421733404001051208927999236075556330723798163703721633883550094019738755679734005629692813555173552504863024895931894925060636191557136095042649582294561420395752358253124583265706072537934052456344785428643385467709650417897709624868083149137516494318837252281629407648688303062627462351822942170381989350200544093229401195337394012030748329301056795749006247379282144845162696506309511111923638227318946153549671851548279549133958023001968661408748372443039883430203527661784649416925287122945181505012664505168375570485272591100268153453508171462425293724349754117105284754092989593859374400952020330496392680032337370986161484843531355361222581057501630459636994616145375782093689553122427393666502796851702613789369915662391939754520673505705553241072175035150634096869537742506442767068899361503061935128537696855126123291933893147281949324953691777840510280675554937353622145256785260730041982373787003915087799754577381690525620683850120521752693385125503960811386712363696014604380812563645104372344973570319330248441126955225814888426919990834098411621210139150409550485450375323195726128664994646027551632475086625150349305269851312554205672846403178713155860426942250238356057938377669730592242804635907669079651625123911933679966845349706483782606553738533085872721248010025054518504634154229283556778383707637033527780943881521927672781535333299900728415447444887326454795084854285733174945337042332080547505180660077183935453293325154028690303746604839995989612472296911341046981603233203074083748179635359833842324537867911837962520133007971923840473412191762347763280074473997099960165693513534685350378944520000934224365962161587172465406086690329994954284366276733734338247873307442673146680974364523591128123295067269071199383254878240024485935555709762884401707740665221216775799324671965970012350571183805469992042025514434061810769669467743540263420120024146786121483594765718018131260189458609132152067022256501050236481003227356015188112276185965286719818430549630516090276204976817960093079953990690516944586656127671982429981283861744472820330462440074518000423440762840233476002075176406096180481867228132605353949041448990840641122180847279512925999137116660331772576197225968362558366904374723294055718333752642121189212279521923452546103461277687431509416673388813049675020036256569603708730324906183787402705738297808545559878145608499461378678529478861385398839637638320476952935805104346204561875624509939666980351380755275737901647649690431440477660307087822449342971017834367061554029829797075341243574548903651306502451721628839903743853879785877584953859016280785031818973145940314735606751858221220514207425001760655556647478086548065033475108726040890080558197358858265380428234841674085518544941567534814852686487950305106417209615600715162537926011841487640663877535275628775790578101525459411765539349657742772710456975896355728419829586383128746785300462214696057367603488762795399732436758478081000171304483229677676539101976714694775877587266989799371409555603129980213117038022800351503625272115853322261181985216543678194901199799653988774622227335879773495922040333160989268780221492365438336279972093839659756013646433324582239806746387118224086653616420186755870486032576153000775343131257718211450675814143943844068482748739467849758530537326435357445246542836787561102858689598732758352457523981140107154590689329437862453830998550363857168163792885925266663206912801571120808306162379184824785186900712940961003977277240890373983932224556318249595735462422603281717322512670395805507686463690679129747359238983577720315254753560391887159699917819491125701515011615495602814301013491154651181829709898807332973398462021250005866783158778971146082146311502499660888431495381635797987730754272921509513933378958820234450511976847972751343988256003531696256045436997973037683719095331285855300663787336657197086695981170174712094488233464644596166075394451490359392877977986065470585286392471102323776468780343807178520176066391395768882564535783342490488744064921550964051910500566313744965787245192840943369832575845997206084835588877165152960037460236339427042529086187069146871763191053033950664624185240402885464279523835724116545788040666677994727821153875230787859405087275107957075540740388350449368342326462774787624561203126700656357397584986277281378641848943338113026465775314526730686044541118885141372861025096156502704910062270772899108469914063960775233533793386598200845359770007068907584423463769353492924936979416974598984130752352353521124977275736978563530191755876368864907245187849588759803503956638670223507747876386318353956389622417468186507398481314050193435070015083833552233847136417495143056219781786382374001512869217462793636787332540140887738290857231748272692354267847882107814107633097611599583660484664631182875438091379105343065073522647102784313658847291641856636289321892051741174574271238264766024532719414756867053594535513799371756937108315226084587914122093288500748338667462243420411912764265401728471161155339422736795810787144049238586123855669643806437958270588219993117230205839521368237623187596979788716141354187840928046925134501358616229779250820392637660369079654859172542507810151651230963226619130851363833325205757277025193921388044821408478096245709137076667114094796511245212343216473630734541405120021267144912661391448881902099855160511918949135946307516302022095439459520806853614741628348205323073367715467899792711317384553670936689830639079814106164217224764087656526298664221734244516864668451345217539035606866574091211186842467275207922169595954827623173646855950220224724935144218605213803117981677270443928861724882477546032424430416955143258103547735279558708580642232807742577654101101808867757364492271829473094354613103369318184891202348250263123544048213927484447988512116477236929873837169700897454138659175976045665369453742726018186358866596469558995311043103183566133665497030355920681282537537859900457867091695305115999911763080388022964153776399796714908602530108272699666791638806482577558131382496267547528863120799581986055941464301634639098393499884347251530801357715912467532544806903505048788268060026568210600073700049678146586787362250131836507834033846616475817011841520533686713414191059923749060580877389877753845006824575640873904254651831144702300333832164495922337147332697538564470287043910861083120641213010864288506329683433687461108927742291649886597110594918674939390462627811489987711376285315573744510828343199738044431667056494134261610871919482000625103486379407976618725720435068948947419726125676875365597106415006626683976389042096427469518540848980704914245940648580097796599761399200133280855383783877848278444820852391005014392487247354739730639472105483795773574138583541007443782120514910704023064489046502892921938886534366435621817926356490475015024654830569658247643822336024101665366755563211604775063174372851821735046299862739992802600445252446707636151917112694533986437431078501951330433385728274745134051873979378347254916589607547321171633774893121442780251447682678138441996659067960488752931817970406294180152450262936168420696819911816905091314820467611282722646624026425438903757366145393489960325899250288505935564395598134145171346585483804723155312080375467289074380123895116241151560561709442946385013692883128831293617553906700200506588516492900135753387580941645332811806919052599376163802706559522465428062220711260561925645563572929998388701791722781328845177249836654739562377204799940838620110235517112960222084015055365534437959407000214648339366477449803717019406211191576833066652311053516297238507403139700272956680515730841383626750595668338309791680382403055239357592161014916465512629829564118958972556863058256297597422536988184699152420796930991809218434576231752856306746336204506921096189626381169555831232297123594970103077064001478982121423798640717728335829386548446515955477381826172664597884758178843876455828885640044683271073812492017328375684464517037602461118816363484257488507363288547943431527329078655934500107542580076921126211077571238681687969939549605674612159691997536660229175509721838199421131998358672564962959795932085179797391164901703632706280846566829556558773279423325425981298113821391580497969519184407523266247270323408816741304745090784375524736917832325001470765357229515158002200302350618571375856458316920050012431969967025390346168306429531564974524556020120983855197398468554429017593346512829729111280307403565950802097515075852207836939898708301485248095279045533975354083941580789929771242447908546941062518461563078974397314320025725184305126321504820289937677843190529565651413587965708466028393986166738267505600619197885410672325905497212340425134120847894791840168852804208040202133444974316514710483400856526334782945026367789937801698660912342289267138552312211504805991410278454494980705907721354885893863746360953030556100683026053929074849389757259019513762268158470774128372403741871685535380267939463585386255776817786376489080193885496398004261890442612992488167908068516717655985019947405091285536037059031078111092686260542440473630196808062828379682721678580726017405369881942040420741497350028029748073208486298674859425737081434540201129597760825373754660986543163122859827944764157319723000599951235076159438707571179266282228552773954427515087362600606777056928493727444645387533426134717690764125619517900782397350114216527974748130702119177501473338930208153156497513562138986893244408442144025815972686264219624938216643884957813673878651204534544010920102704758571327388709930757191773198437799037406404144562821585446485027738081389058507699884909591040072514348482686932354023620806007001588108624891932803603881758242914238634921625602182330459868514000882373820276849484427442321725056053754371792934587813947630850332484236981890861218457828718249093183958719009276640439327669262157079765158514182157698124556143157276363200645102061561142124860764359790659356646948729895081366048889627122645707883782026308178496862257655070020075257911762916152480204937282824689393894600207168937338820533690760429328057948340048268476821275061362964232765868448328925093319101843696918988674441625385230323997976337161154941678593314729275311306722702445413310516514258810699230658075216522668788585917666477886231478638756838225013743714897758814682335635474243069281131499467416046111725781741813228577600874043750204158667355017871309314387340110348052668020795678117186180195037556211567034743190416925145408956610898204599438766057047529986316150767456176791776010943806477994664679147142662107231513914390833389154220579877536315561555592242195104110667611937653008980385112762756305682238107101441698048612203225976779393190760701214940300010784517097058086318886229827829631352237898908020310129999088929371237857652788862496769306533266511275244535524857071172105646855395374382716938614491991036389344418966168954962639546758497261092989152078306036126665063024435659236842635968642740980185756710957321246248271530083468335138615586570965369490755625920732875513473296586178440010696004149349894436398297377981686352526777533005466909904728577479678494319914981057828383088909811021249786296754079190093938801871892946871915385330482179420847025560080382268636525702405539987830173233439014758327208188632530928031169638882855534407344285180852075406873927140939319855129626053757952749654908127809907909879876396173956794683035824311353537151024722389613523899261438982882114730447768208165025953599920409425022748592842085991648488171953198784254282605427922804481868680585293495078364242097375319048265187952474177524835291383746836834519541338672530776354658538228790571486866512941167472386924053653993477150564631013921353818234895526531888460414781363572583986777083217989573138367581803233520404846280460775162002274979382373998747663868500632440040977291372124692448211648396210568436159232033235487972306196349147686085534510641468740957272102347291328663579378298108117262175089076355714607326023852313745399118723999518211580603548163303917037029533075049080295755850166959532459652311248543866018397354986981489634765399619323168446362411372144136627378870836244530738991588173743836029751092561841248583458394843542204675697859762052719276825760838021998248684393580591224959807107962565049184015581502175895844569841841553904767307615435961813498571507413545906229858244621434097117239673696821609143510026751434017694737763471101031354189982303243876239358978634305060164256545421404743251220192348288355947539400507487336424099702313921652820475099862991054774344554151199960175019537681515979977125470630222800818210638698397570258974770921073749470338366376924046333411523396303756566503578573692558172330272668108639166762070056254895351963898529046351514892222798606891905579040795279896405407536644169458718565156119323673617357812375662103922381282371269582430191931294342572767093323617872005984602807738315108192474831009468239357409610478924224047640637768112104679619530288862760076691248256946892104918912462038916906261579801259435117935929211127303129778265602654930276051832861712920318922103643144778890609794151015335981910103633188909190289559306848061854317812600999482324143534623352948857643988933688658379723534204713370536449052863349148981539341948608024687093225294420410476556517114345489182901726048320642215424429413138914613679109867055145401048626969644682192160658559270241052106614902310696090799804233874912723046183287374771770509239159321316487861943649126231045987054653688555637195075143507472359990882517615952429664389444511429112582964210134832129819730998543358310653702830025406168963883639366714273422293459222514473569412516341637401315633658033072974292200935768316909491711958213384966095048207248762453329012937741790774431549789933247456763474730160929210675680365346324973087594014173030241049966166976107215386604678167764743608261373568903083222002659476845516949407774807800163577370704946821396243394612385464364196528598473090079748141928629596884083384321871913498132149172689203414778831231756993384047536957005912367698156441646866170923824506736183755806737205019123401939141611785057184649786807420365105179160620183937515622125560379019538477280287092198792045796220496563367665653395230018064911525447539195781853554505004483460286066862286932315307027735582403181714495609675019774568865839792309123544508132095964903108325246889300345709224724065542986253459807525010971661659380912290356505835744981690930543873391955712134483836606042233666162007905639330625873656965853850532625581779086887052112750964019259654812892912498936331249651006778346003450837300904499285419232812028546811752695212418820252264434656573186688827557578897578534677701807349851960522675223571946874455745404968508141472192840911578439320233273969558848344882080652984934711800627871999998399969225274959107348899669658417221857004281345940775314742310853716603442695084407592487001183878790426502903898749276627292571469389297450941046674930952048424427720765164373957441057878512263781037636353622974727094143654607344160931892356397913906885559529745037550239816332857443066189023019177144131062296207929337401706150619549607457841782267455544957601465073210979978870405092298088946078647381236566091567194826402149361608922363839399895935006471324180005734720397973380017821990053978097800661870834588980661436658196917877362347903820978743329449440320525087214821420286542810155236358434607944770603149610583298928709830162055737481535009570973377118217899942382275995849828747183057495372006541378997801629662295085611644331498935441437016934758608712410254798378498396675233769783625472334186630200342609770630542616418055641029781559139285121023317601980087476046097299364372626359020739100924611205458935464200452386408567207519436920779899772711308287296058975199345525949934294604311782682547474596046571440139001759769324498306268392268083692530759165333294542571215237599409782293649104509888179339283256041019487443908188017606406423339817257566940651474668710694893537492649451778170299450087549559053662774840852201863361371171109189687810420649227380580945217616221391392489906431067750498963128903384910494699085510348008304443744633835188088770125130862150338557967288916516104112462681619396710310446339522951024826494198978619771276501319861079019647722443738509647105687410990085570670796468648599793199714852839450888993861116065139458048742648996902391155403029142044626626060977139370528949125539190428509810826709613948694359188045066092477442515551498326959937394074276290950743290068744560611272599398600082020070051839320894716045588042282935771139444558523489562058954032157307657343037516278392348219976875537869538701350519083370477030762126802483749650619504741996178614470282666793712004723954933426523693532312342224247812676965173807008195763452525205717974372881977456220004249194674952181067888817254902856324516505272274647046353340640660191148048917214226735600761216253010914999705423641677509820083006765262757493605719997767314314079415873994199397350174767935283182913315758121181060000848110503949457622811918457003823965181180141145128187676843144587567556265997010197167555501015520831283524137760286826502842665921775741024248775507555367270715298133867249111766339000954482145962249568842977241302851174470901683971313868957628768250551775312380481301786054212486185399276800220449385911046398267442169639186193490947225648229578496126515907627792860698018959784100728723789588359125505966250188464569189545718687215041152101175817724143456695987870157362100893450463816064733393008194138594095011528830878692560192233838466479542584798629316097396440977089359952303396759834422899176348047516692711355618293285799371848234886713573467150728246237209941667481857033947887059831437581684073106652585205937171565662106009008813778566466249407846250025035717279787322511676520872721623881887731281454227918975085024637560039162301074295201617249076605150021598723207578828892505636520890602191219456319973704650586897710847302012465428948110468832592513034797093277221237093036994473634226971462238581405213788884012609122764771156431347623902409721120008200014944055389160040833400214961133565291063327477799114443458044284661871598969061264701728554453096117524370305633321238639678485283229598532536830057026912013717545553813500364812642198796275494276007671898007494763231427113851402463335129868644096170867606222881623560452054294347535838411707489017824410967703565062804457266051615042939844740342934092461549086988695533408753631148935382401049442148132117890832718510229368017309253956429959161771975438998855215956103430478956340115775557195560257854320971711212336550835136047984749011883123487129259199241252732185170212444763472359621417508758733741286459467542730291268627664526893452493362526033132834047214034898890778217575583786638801760933497716076159141597021352164463881307566837276789751119225817852532942576071046166874224829468258998909390451954628294805579595015792484112907798862218021458509663531315445163178688094325579707388987047573163547737053613123236655055744253646491356499465838261341534566842070942809296919209655857931470557558375372886532462136004078976031686374796959829840180264159654720792463041828420364923533550552265647251462975317971404712070915237610719604689569374252747377124590144607287023987005779940560210167479756066203927619384991924730116063037596608645353766266042104498239645086305714207968651848226437737558491984464950688553222227237969171180583123160770719160328284855486379607172988089135338000239280291167428154120128585799191710584486311974115696490603771133051154735999984216251452102406198789900766346326859095630571137613892412571003656825270289941594603091890448273204745614548827648529725388638298713946230777668367106385430846920358466910843525673142295604098130865177914309936245557927122672702921546788258330240856151873347687874956905614175043156998737376110954868003688249198499658034667837336372555444599822797492376498521873192756274405819658240181908242016795691806040264903022763008679929314431276202412000264911131846763764498883863302611921623880453062078907177961206521535155210669738661226729785944662960436161591670006466827376558936623346814993107770527386200215872165862519912950027454541519594694861679206598509629944922228332867988347526773716860157123833477662629133517667116206781621540359070211048407597533126724554337802376563143022345854876937741294861745901683803967864322365960124066642851572005306119633829600905722769277405874465954398390381084407162959750158646219515429180452588220666571340374999963544357680068399079232568049442036614699286821776733823758813402605665297240302140252136671491192957499781717980409868634748690994701856738180096988656578791563592645722635960436837360458701120121399840696525914252958074135634148153804691465883251957782270564651216784808823898548582793850165770062872048143979192141571794315939945212289608546653912683639355166955625121682089360904064852065732202061208801550896325980923762253568085118697245237547015722356473928204078322978772984877135592339145904298214494256740534164897638284698608381042718169782283113178556471882038109702001564570309931669030827597502827288690167483035264832797650164780032618167603348759152920818633627547431585177631463571084257512056204758097505028116047319145627651875696918818523208761257796362864845806316535904605020976573152331270811193764264718994816853484874180264121076918451041475766446354279906828966704973523549244899260643725276080227287120647261883621409780375030810728305055136540712549186913357847455313506560144227791386865584920224514384842848097882108132902327387503801932631826449851923121254412397506817896816173117980712397675960717213366473054822442719653808764902369588239663632952040488009817504932256363776468280102520413975579062001060495876604801787581899374751224336707948774404235076957854410708187400891634526512823262896839389880345637679193982182225511767561518715301589456275275767139612262924419411542583744122125604497970574464259429970183719689527459652491512658342347876574611058380586142011103459228860228669396312841163126294232102975015130004397642645114771811190725460767186903179455346628955763226821999107844389768417242580919123905118455025390968960649497944064519248586517561806428184836859881808284902434679316610462306457837576922567661352718954369363413131508305248497215919042598411302593653341849329908715798651212684378745515557223981178865950964631966216230720790156242664706291004161928659657252657176431820654180049259468391858279070776811165496848715307600715474094976469837574800959739610120814169528689178627954090040962237075939572392620270549628888396243781082613448342887161650620756197032476025390820177003231799415632220195148746908431632755527740430086565380898466094671164095742359243644822069173978922704135678349296969759984082256070577089648557594841696601876208559862848052099530893973296502666099650623106695065172796901684048365184939218647854052130957749844126457525311504731069898119289441052092124909206953459633944188035783175456642063833938500539827950496590068071200774734116402592029041143052948857081445351772082995069789091570044015872951088588778414061262530627755148154487277114180847338810407758692328267918008410611687530746843672970536173008281783888270657498143903860981597900251610758749106866851399654386643777182703888113896757877695357400260877399754245271836720262062540629618115847323253465149638485052990107862368842218991779242908395643255604461379072362091922113273825319351481124689967484396461486486585475163291768097295568501284441355618939399795941202621396429139906676348466473979878291726205707509844948493220963859565991088885014150293551345270124706409934911450565496350616293635697757312397339227169675053501109644487599449379927541816268170573523974073727846039992529158419371131542200147694513903560004266173305712272599989091077486088059307991384430682655541977454375993309463023103485104141675309434334027877183896984768654778452303246230651743502219481936924549821843143136066636327409171341395660940193310440024238344441931269881549173284291607020529497027409720244082609101935319924643758692276560028207695895679455337759859698215327332203889515375033086566563992385324694337176017504790490916800350504150613005694994424289514896771873023047735212173326345127953184462689149604213566802725363268455689227622711121523089625355211121697596046443745798608344760940187538208941173459837383414336864187770842393106204868589086166967617042343178198015151587355682186766606503640403406904796054662410324816784089890797923098125799266491223568357359657259504157900942001989153075069351935001935884765308875514496324645725013762718655994557497200525741127896713898435870294706039928297630311129982845231769961875513503144060379100303297447269458789958228620548310347983907407953536542906375732909147998578392674362175919354490969451009787448186263346526573158630340605175934234099389991175241231830969744735157198415223635919449259724829401219211844696800599998901510947802976332600734070844859462516674807581565362406767741737810572563102886718590510746764524901341698440813344922353423357085377910235956569243354997491559288847484163962242459361246806296799697993070530783592897376195329817987024544078403312366161365383096843817108709140656232224322314708815596492403384036996760997102260733106436698307563830469866345961543729651653890451780271409804007714563816682589642733272663682832871145093630313748239025944568633597954425646063571352481313099708375597992155916034958554278234581472122102174358615503625867875995892848741946688776522071452618601894729042581196411467966349525865432767759426713329898247036621892663036678774291830748340831406142173135006781221586866296196535044943218996160842590305265069833610042520834420877084257416147111982631074661199804665273857565932712146048114721392085090161813757040772956682859778589566531868001222988349813299839406380949207776003402490904558000681025106060075552517354925059400833162323236083766611531775630022132152371511355767473452349317478415442541230298437247712128638386387425846933784099286891926365758361341979872734317020946103172829796607502341408067634300027021657583097480209392532300510661355515421846439161178941184625936030542526751973174288808480582973321129850882516946755736447113280438379621982303499273967918898327188074652495103656513645687665336233260098820610573206097473005484693276042374231557893960099775312596155296545996770908529901859799816895879821281635958354750133802690915259167590703353864154939613814034685791375728206544517271777911739735458504287183901402948062386693133896545543711986681320976363851375000952340333338121692855805383015574863739009264766122465765239551657387863916853925163093631888491310115375802459655938518175793953579288619362493852545218286293110117896832905541377744387115851906392036967908150914894019306795377228288660598072028418490943797398029034943033300017840066528954824640909767911916533829015367643975869487035687351594445988384322715405839894288158434085162251493890627239853091044284230773444583614723156628195096575143679080828850010647454192394345795368402607401647622450926946754512064671437482103113276487790445934203682610406523182728395303068911487861869281709393705341932310446576423550885865581639737799033646605447700023734073087292751766451486036119177119599948657838323913502247535171067578998478501812969971062429836274770954677239034376162624188151866046364572805015993711614506659698637104846157037590782593924005115871935487428139808324487806066505931117511236578099505947553223451361239183651183941763996606872327794376243258343674631325011743241941463572973682751805014639796047913889221782676367564314363283048511573018644958745525257583869216834683192489048005729233767181254489902447686870022091164986635189081016188675085022420485647256745556169099245140224019092801235472488829211632181892116522342943723888967033380479832705416452071738523426232311464775442045311010338391094246891057191514973404937600404417777688663513798296261641685243131709078286714909931674948214821124833776836975613997144309341805052012244310171772495701305686075877205532591619232439215403432644273211134967533398431153551903048167842406083048225011909955474585464983370701967473482171961347347200116091913696325741705750371731028207222550711046688463011230061609723521585169957760629446948327907456042682377213728077957558198755100306168534924056659565368953246504680383230308072924357912306222274064939768048908239700192760608532595894218418533816165182946376107853016051636746116459150899196167290795616687986196163710978770264059199793782442636651646907531511461743503953244735674417809255230551215864204540381614931229167879836438381506487799035177614168486706936070702319439905618245555355897115956207358770415853445853768462650290212753893786129575303328772512428721756876900104690127942584513715208524312132115400295495540987332570706092929315542494106607990937298274053776707814927068040210166407130729189946363593727511094253188239342839911325918136062531606067054324397243365920349302464690673909279016936225078345120268842555413272539531826052342129151308034549542009905633968678767507394231352683376248924370900927900819712649649965394192358433783125872091070220402040338263795491081677111531221303642593908690691447534276730261959776340597571591472118430177906669197228725315847524563736259110731827352354382059472120813573370783008271670053976901093707867170791889563356556381976389063135210439118097943631868682915950040700809310038429111758188708839272321410536300780598088265727974733050838425875611007757049332529307197776214511098778139335803057537283906988432741239525869079575341701395122754889338963990738366112828553393129315228672201712493827319522569363532810683766403754414029800174200789090576850741447124302949430415698399778481912306703666137777238366601069637365642360422826952930130248931881951641978551838365502180981002598973084874407893262833691745543306615864111168369689669353767041259519728068621216620538118100411627196770323731671109972893120662281002492121760690362069174603291415865123710884780808026645467068843928060270368245658054478278819554507254848319248192241781333095454362948308754141483437840992060864923353835744179759866484846892986213358576420411996121804727306362669249026883680191015187490352429452358984245975788021763147043850485946367738779193200438490028429065769009375831694039901415608146313685551781560527676448308884627653803085783900475727915828044780530794613246930491272061963556935161617844021471681215527030460504171205544065485532215030098476253231629723172568523950814560182170515625935363815923641209491909202011156067377470006141867673928616474022624207876033673853060299016848727161978466184226632880252660003849230535076389192099399614616156596054821825124739163584203192017739664267267630741363391795968841964751233471976530293922394201890636034374713854936922936531890466818138992769753699740219454347992404438323673681461266344963680846535370299955071665841684665604886349637523323080937839738458396941965958437730833850496831979915643021996613133738271190697619242887195772068331095468717469164826746057809849391905536115859563474746206087886959822045156132538091194769024611477013493805618475579639886241148429657622496482178200945263378952956126918453276004943311367541657434078700243062767377585533730636814919293208103248606439246885388496175123137996355515314710934292140990957236981264860819973641574073153573446110668238170970238673329610773344025406575603199807029826697544631287182916527081452497491716280906761526826631293368034890148486988244410115219206143876295545675996012060655389958988849994430238256732390916691283826477568285753908561066419504350734510855499680469303514107961258010718430177450760821322431012794157247220457634528871861994421716183116241162001302208004320161768773520068911416075296108578488819144722927242147644467363083406677998234843774198541552089493754469650159657745701238796335859182931588340037053881411923429044433939365187059519885362007191301916738073768032785788292781876458041957200248917630810598260982457213253299867556626819400407366971643306817127699490190387393676608296046536050388354172778401756043115941518155354493044229168094374347774666697962896089477030605906993338803412467583398482810668763342310795402826344878421597237484234465396962216238474399557627792349881341003043897371893290272235563628692868689978054570107405697289143522685429912195751171781227246050814038368148489021996847028459935688646732250639758232213456131372461868685610888524833625933793810204030805554052282272601493633712198084920216401482256744784556618489920501779476620746387366437619416017376488798721301274723424877583093640139536615941068346661493444243310816084274071956158219244672795722515297043122083250631336778457450332100574445910373987243141345445471673308415087476276304444764559735073938712578982152846679407502026085182933728565512476196046767856166787027912792968780141392460698664287313697759518669522585803223284127855160898959831948054933723869895049162608376150295488602930306023347740596434067953681804942707063459995531620997208835655865884056213233777987907380921870861058669663292175572737088244664956800583931589256824992746147737107428002375803623457891413958234303464223998774873752781219830320875486396360326633952207322623126507322163877203431982405304913621937333674426552544775750933920773357590502932888798340998510934666189222377014819797807190006209160627734426559243851455512254876580832335855983468573705205188719099498391815881837661528717908376283692390672895716675006185203985821620945693654447748287284585117951143738355309424565648777688033876701997128125967377606476857622968737059528048684772231866682061498064631813726807359822152785411086816037836409173094991041383435463087003533182551126503336686210530087468354199905525109882696977237431198310867876266965887172270564707924984928248198809591027437815589620238346203725291065566923696601347782899841029477747281111057058339470351371598364231791703801361747962773587926992383665516907049693152638585214007768166490946082145193871862809677151405110475408803831964130505433979990060489792774903661452906426641469815074686407460674646829213992959726229229516547937530379752786169390787443320606621063197566313205117362969749385737513552297107209918801347610097898496005290304632244124622541437173229421857743990433807467443539548071352796157704218011602841027632887121437302252066693708125254997291198103998524047808327034116463409715225198524448517966537134493688143426110128186723742308084081809774167214835668980889432943509952634728688303129841135890072377817972390749794892941629296376418813033980760759087908021335606372543858519427614718120812071490579464538602581956688496779858890206988463161597752634242019368424639108067702718787155677337797610710696337775701217424901638740620908825086201167192365449580261480894072529035070311674493620317223434883900258651519583464841310171293366179282774558053229640280451407740919861166071123135429048116358264891218942364738386369974900224378332755823059189506048823561716509444057081605455172404970629105873866316841230376477026424584314502045901517431624980594766962915672619190825160561446801508188954019893384086654171433751678328445186202586227832155008679978798152033647985944876103544527756842039390206141556575661386886402598034225437124640069388745777163130064888131225437003233685820632278646933760967367876622358955735213957788269232167315450509820209255880358983996153789276935703990877424491808641206224647333606413329081854400658061983592160821403919303911716467629102608200286366328325021457957510186127454084990836394432357908609024628028954928668957725356289283246667676313625466406685072868316785922193399180802436167007935983198684151468489563102223735278769706025758526306789891799996224747999863900443593136813862339189619839303902419199830969846929350037507014764958648777444791518617300337642143164128255361702348203614286498474274547730838038456481344262161006753141128023487054232258384528310540573501012756949019557841105034744131294822935265308354388218145054980939923434937956238467866006467043247657682608984215521728718644350563585785884361460393015129187660901771298467898171275868450514615294797903656743006313347170065798301991969868362473821643349112177416456546745450201304211865431245727996411972929155030696598740520731436945956893566974814797829414010587149307532850052462589991371586121864715839680222957228111282919897881352199864407148642258471346505776525906513036192810230039060071885582824390991627503683141381143049214955733513192935907142587588719504451499137709631599675425470769140559242044111236554286308445753249065112421325536838724397783544101831757412702199387184658267813719603418538630310087865856390103040454470974056382686154408808047812273381461523621098589821865095136859894982758251146212896262891880829653600080801583780919534472870800304942006709450287509049416243537847654845748656854399247780823761952729809666680755140650071094232135345651241402783278614252528694922022285677948652312830580165100887511059317937287871942202733841222853012411737196549606292381709257285942322700654175932265389468896517109696258928330040832671078264682421948604383303762866556651932860790633808262153998102725868625210828077669585398920858920177907787561998780720746827511472749464753766103839910703222700313170310066465195578740033364511715349285206705905620235102248741971276505074820126500679998695575482815017138472962264377626990105516606905476519258563474337777697996617301264548007342227708180038462080632549440969620230570127920047286799328605633595207705576912682236233824114072849466704321547634962084192329714288224859316974077102082378045779934054033602282434209790504478489633331534189435244397319640136179885665471178173565035502247463056700391455886572719382355688469906446318509591268012856771608690808517522666231547252270160564039242793268584306204665644285420573598751080053838030386549088323177116775262464454461167450683007446869563428398816991204795351855026888810526568928194879462918495805148427193718761843849251449567783734016535142975476820652316089152209270835092108229025080036432889201266908003115555146555936564641481089902043536465601062058197841500062043921852464267292072746731032021086456531388343864013249401188102960003877589554468237212221256873304724382309474311074727856857188546304902447954543003463277903776838233027235090241599147999484103321192333724035307824430500009426255598844915457748074695698890343417086701971597491488276525215579950605272041087965785569549300919016315579930623601880832447163338691710206612094798097116110806274624727391065768647663373968410149897558190472407362148031959381623881484481743167671618267316909172156340282913914509813806968764985362124219306391500456845232243195363289219041917575713564755401978360116120912244098287005201257553089377602784004748535859776109624657461679294036508907108531009292165389104802858811610382704381106834306070644942516161563064217838391190716176257443070633063940546696078228756967203361856550289161580185003683216327184258488260357396674610632670825047586894863541057599700759916683579007984422751621330410404401381210367808574183843329525263827224311992472558549603391447729107961172777656884683520216878555038023056221828755512562953397123181908181848601451743065504458294268176328304992603619029327131602485908332335939153753892196198802588155064475894008112778976401717715198435066285640981210227461572950213035957745794764619525546124834150398077419845159176491542604573755198636930034167266495366206011557263543024399101210448421269898175207097496239296931540997494065615028683371005257757017432807604565729374177384409288741694899654861687754836993999820882523828815747890033773447532694205376275409518377601087960826074567671580788145023346981122340581108758868022313336732830016709968388009006714896363450828805267526370678521672568793309790612421119630701329491890801707657449449142581644676756127895766832140024446609643576949973305081012398626082038848359853133749450503895213419723245765428879781519924223803862425436431787200125383238444141712379402445798926943969505737206761758978559292811866550563385863085051227788427019937969585871733562728165643987496655955199808883837438866547506677247191198943267425137595188768294591772683092726342661936610023244648525248069852805694926784363863292711029830829552217058262528282426124092765199279734456630352999883379408565612597328834117493786646483701720426964905858571249147021305978255200868490914384815795597125509399745046096908465528574266858845184931217012434596329696393240902077762039781513567567555606515802875842123676610123827761847665355425298955954778707155184207719492312320201753847877321959727595003040359376223747091573671397832556671948191114453288397823051503704091543762583969531012134768918500698291614726817969095899073794613655978438219554757642646515973858384629182643207008905251851545588392844318367682662407665610843031672325818684969346272832984304606793509386376750586561915645185358135464972436387418636286676066394481801454090582668656754640822886212779192057449468330840972529165676978240310171623595986555249873711120957537319323504188825356875628116167242953743033692654430183002773648614221300182398417088520320814369371304062600265652629373510493432757855337702589012378389328851925279493925316467195111438471246675074163082562165026034481993896941698094701714584885338771099423766356984844164416375829713865136521613329593678260108190786813000571237666142082657827223475474063730650752843579540192122512226043224286721488332632945298811041537728475339941324726096118195177993448950321701606514362523722050241317119643869877929422123041767809161487995055438345909452050023246171154479130879113622852162363150109956160373601909061980233455902646835046811914773350212166776129569232975635979287004685333844643227755086185418717330761897663694269061494236417972020981633312245640044577587799424584552832225685512189148735241202280917615631574282888324460137927890942438801265681205436106270732359160599158482213536644186021146422511614481260808386976519521075421001304055375086315911537043295560535493191630955123781796313652135278731523622900314122206095824653422268541555071469238518539835940788980368774746595457858527973007624573406561132711395624702303422067674955475668815747435866875775957290557054576252892234616373988876046629126538576401617482921984399182087462756253189748862563327941174976551322123489432744885142179015596147971044774562260439454585893383370990301791003958827942640973602536336017838516762434287511805686466944101480261418796630800407823896855897678809698111794026878072457646230798456184305935606884786923166121294539633530173571998630016710535869033175766117919226360250156306499395808089698560437991383259206292686805899411834956588159959996049611996457825625817426808533303516781200223136525223675157142426768913390198184215544883809570820523421637079429683463241105382474839858788681791383467713452249093725630015378208235247542351447558235209609317981852613355031129438222975375092715023631947450605953501282133465470012479049737835367038011863167042343073866729808175171718938947186072468840923579835056167407949033871238911320495344331170068646811106380894802680675151629216018197647360611751933178611008808146108590295405498002268623014592421792930882006360911994733419355313530249866962033171142976407934311438578584058287728531391093117746962313320303916077838562977176638298429378090009523940046610498609477399710742787525675992811029340627303310568421960241344718419407033923754861330594656529291176109277116635028823186314309771009572248693977154582349980534339438566216663099689287696186862914056244783016527706596986905497708459764974330999812716215183519547148172557691212754459202431839334101478319506718504229828965884220265694793310890861637763948649837514753622127811283239758447139706134064586658727677316274816847850124549512878013801879654216590100809645825000545592756530748595578582795883398001376001327897237137256392736010208691820462893547729230231069093787511214469228376179616279772800725767919454800589935886242382041702213457879239131376604605433088129030908784691887040413214543487114660427453723574809619378174399888041703087688016466147012935124805172432640028164668905860005887134822748611507920332087139273065742620035764966805109862675089144053863146449485114559129326965796823197153005014444147160832958338170945616998404784026254302633394141910764992862453552343476638639812408483567922640137985331953890113413640782765499028198532538676984097790772274718406382060256129235620031814790376936420878107412796626091937459458744257173150823817284979828354153144691588155933118871419014950563155970419952708975424937465165423960716668870424559382916064331532130200990676958189018981569180118772434792161532671607862282993848220183836821200463970137257021147024148972682321592469608217230353265524253797285367522710905355805760741312491708811517022274090816436962234455959166839459026431735049218857853001038733682069615503221645595706645406997110274443516488758069395176635180545882984412208670719162334104467762792581936137674879199750390145530898099691080883157655450452801076268779838979699768458924401359299124755670113516488061426252043567761483426301233844629132093737248906915875149760999875439988870339224685610078727542644909739287645350059898508334376851439679431749307839292605459519112293477253721655925422895632915640993022468630748245183466274530817676629336400837731506459978384923846292541587679833159880739996759534377017101937911133225312735529913877330633243909474506492053136535184388400374150008084639326541882281010579116528380149211791879009468573809447761872886079730288687909441490539146211661358469750479693893831268081298670481729890319525900907219227100896291831663678564489670838811780329609507797336843001303315727539355943515659398039832657082259074284699700672489028927464384700837328575580513541368879146334414324692571607437096591582607956960931399690258558462236771478038421215648939017645102490364887777309373765138097869386473522902806342178499654834859445312242937370752143859721984197912264563994032728172746756013579352406074190238910618362405172829420564507596711494054098298120609663236308379378127820772450716975184818851891973703217440753039433673690442400517955260094464222517815577127779041564990544105067488884767027599194379840306530393541398960215585289652129970839635205821120116493686011581790259316824890500398373502903601599533393387457204171414621792204521431638415878092663886366228343176037574994457468890432668981723542397744279914967286899501692435279437464085964201643573770340296835562240394978473389344282912298209470226819887425185447313665408399767488400859944753265906220127434603084854108888875788445589817315815056789287884325889283761413940422223702487008412475576027557676860286077208100343814023249244056259658908830637614713483563686104407191743239277460507213675087961197036147002369964687091397014193068382120976858231835178526682045898121203549245814562619452432527711492825974042512880513149918435601169355713233019268018608091944429750545537114756596378048376304561410729039076005741335844344113210516272975264036458938908584972873475783913089528291598285056539949930595546954246576050344740771732384022604899397654836818493844275228797002826185609157746768500295457465905548042104349677202635695612120217264434355533036655542578323825769630877400907786650558267210810534653272993470878852425238301145156064994281365776616145404270429928289641129902518142222963826410458531552258081297534364184421610189272458101800735851948267048293092865829809374590197363040454195538043635803112480884365371415322566716068190344784818246663979051044785545549488474118936567477001038014065648170971579795643600803943249291333121485079843077018443447527290535344541323783557734052425022181912534090543507054762413737267948727113047356068894464846944843696390286558550490278789617047428440347726507243353736559224848076401908891265512344754190896996870762644346776753141809629106890087837583934026616716814581641879622001425918510093020623427995477249493038676938426963806661030955870378125726173905984894527537101429066593307023476518763030158025578315629206265468298028306412082650079110871093070839074740163811496531695164406621546720879179248909670311289414112893782409181625596210125073032828725758222386145452048187935608264225930832608121810031671560843202323607384897699637798783763640946584413879707848975065275008453648581189255465360511021606323937652939992918079590304380497231487050901884462597772147218732707571223421563919413781811846177448015163336550847179120549214698614321287092880197430545737121868598750286911602134670892870905675081535436442475310163829323735198189283136004001034419361945930117474751299597091651050604121755453394270103808164336270274890938421352249221385340518393632001322901784810144371890038704387089280332154672159921131410506041593923733579062745999517590058562695047593819611973832970616288141593018270355534742771077955266525265913014460211754719708878743665362448973436883171321807687254500808050986726681072547738101387060333144456236140367339928809685911946905057676619427699546624285801155134367511560737587356460175451438622620893357189786133355292387110647685818984201055518275810519275950547749101898113618881311354332948311318595046380326711001704971091959338147269378701580627781461921228350545751613438066573695298718687474452217804716738404789834655521161204840355117340523998454999613300495174381369133716603444048291644607499556641542796312266245281193865680311201522923249226950192938523531819413253889522629237423638815423012887672492390276309664018856336275355024865874044305137131793365038853546546228226506125127155818974139896266183090061609738751277371178159764538919589638495771679722991414999686490254106537974938166574515794742908864991056985426302918710111901307311860076949123963543004881622981603716770845617566219334110881556778773314231104155015720423533073883292366876370502665679299721106002355023387253194189317282590675034647965342119352507190369515419948488834312395982166441013386143887322924333273903513319361897817168409571841333872131130904565865618343084160926161714085025012052082364066523932704417692322338421642281397457934939026625715838624057273615113911668061801243872392488083676063818686734635988377465068525074398169608227003627960037262869218873380262096235259741469506815318940830492738615733212380772535628911011794050810353914352809706547664490833234202503702966855155078156858206584820376841213423358133590326315306929061443296569795961340674588603830340152970844905397923189203360976275232477562799508249475945784922153349357304934647736957601670095573571757182695695982096790560219464546977333526165972425663121174729867213900502683597020765599577156913278999867126126261393719011039959046064990016154125933840797724978393626821940934133359931384655497990219225255070318506802900795034119043011788960465781587446882884439586964764902966931229912974398506730070421998125716610353162104289713431984532019584398530484903547730122622646946786653580838205853189978661334908635661332721308763528510785818513548304916636923573921909622666544671185910278888522315812685496703280509823290843620469536081294371944489872335609225862116261212097213450742919871280412524390664140170565491326966363866059194417070393430417312264035448817749219157522967428732981534350461165759197568860195347137378097908690695300726435443035427889994772135496662571935471762949654332611238333912628501282637074998394888933322013721035491511249460245356458989101945255154383577764088663401767664502536689439558288510741142557889529053871149941734065630822613591892803013125297176853153109848974229551233402618883943451126622493800609544510568308905917391314571487415248798134019307777464094503297742272858070327371729763895466683585426322671403684210346865181482626270663847834641139292160327719293675310358312555682038605743618290319448664640536198590029167983463300649744844162833782034991614818603372325485040534393394985677194167339287607489955033698604933429892073998621201976690727464711969999526079129871570222878377086807995984299056201518685908028829025627183803483872122146296770701061783986983073379289164313680383212924114128995469666675703404148109272487795700916715517223790498106361288268827253600368672616588569540594184834595631318430300762361421076429785231955986792156561857790761210559494847220641274144591012143291741781429283180367592448690076251684562407906875397058861632541333139096873272053656830188131476823782281741543957188967429482230972442483084698955177566767639535796809064764524797135603410987386375210066006401456712414074893842636794848749232666873140264411860948633479191499516804462210680087612016370505864429510500556455316162271629387818055793609258988653663696277605137001266752415578149008892649816543593770397928307751928781073649338115766660912492339516271331678664852301524100860610790195507679035604757065314732508962814772202485596846248585027314811119704254640570772727686125544495286453759891971878492383382807626035315606848050038863500428907084305468430895792659101764085281698077078569736976774040740906261592431514123727915125422708647782643531402542261183778768972098880992789179461835548423081944568812096914934564852662630042821739728478659480554004606569955141643058584338016912840828146648219126768193349542712513890512560470854682263525109874174258343119558506061181577407261127312043556838408867774317247672102313000910935363647482098893372387520315202174026009411025614590602687237541730295952343379317402221274416910574141369645974617978340275665464152253682707122042885455415468748604062221563985096645669449683634043146244377813917264273071433669056896471745207882757258681033944787364544899180987988414873147228563438462393930940258357098564091907455017633189069630440020561967494655020649901012959928176773760062396993651106956521086952347982100451735506735646652283904616958261229685020560885578296798020734809265900126884059647700708516232376572795013524232092547348931389838879884204642203566860482768456141395243288170554893479221355231353964443017859041686306246946679905667063877471095189510895989364788326053120053266919516930767956257278865439796216441299335400484095188963807342602526075474506181713434106480559669716610025065127555393419400634713624305962032603340064770088593344605601663445704416667623675935631943162658547435561618401894556152410972457195744836520214574246881121144739835495726601435335035217820893500521187748197473859589119692373092033371981517901627178584203217085693083297525010790746216144327618376828057291813890594086787393661571040097282204697005028886867906481356463922260863190894274443841530714262736347805324118791628826299956957643782881816192483285578081020255689397923450739074521444840135211151208729881925259172300711698341542037565176934314098965850558084818065520315475359491629660924116193028159955723497670010074878077098351720985236459539889057420462026659204949005241291558814510194569865165136676670613960274719918847658576220958429427362735266504238514152925426363197765508997256292259431987580177975754602270101513955299001768044658652340871907825040336945914582044557014382357704661547732501607898365634390584785060347350099640550693577819883672950635874197124126913123340591621091398287726279718580472640650174940349602038638445002066018345778857801515934005231873483363352304863716308516661908975158926072111245908520290111943399314489446251831656262288160650467029403358134781748699445022041206432847003944386160325815770021403075360163920384990247622804123841529271141898887859365675367055557374601065880226939095910663692752908752529206641666671241843971731886156930458219723947380548704865662292776755379200678355908007964736006995609264505560064750340188121433497436619673923607354800432752522637987915243474142706753532493086076005679703929390206453752442224215215043007103329551077315286848508714778150432208630903235613365842494407583382587432774751848301588044634792633585763227416352130812052777190281788690884762921918466588003749174638988095599818392092993699863392493123713786865703517708953001159025598183049946343031965838279705294212448808753748584253450280498484936963585358016971603595002785345049923179103566868318161768064825691038832979201096901991660148038020562646894972325955722255255443560192465612260644519018070132144077806183573347851592943878421858724257403353625998440528462202354408961458496609574812639564184808414701055592453989964786669608768473268827349568744479394073589956901041641151248528327121720229506925178185821255615789508518842201341760577777822056196625465824480312713368390361916433824712418701264126342253929574764816900953852320970410791199339830968288565695848106352934302354159880569121702583614200113134037737995255633327094691599036658496983879685349411439127767285156072384267572806326461799426392175753429839191126642019913280671261130627566303111133155592156463053359815857841765294943088041020366079379596947563691979406132348581645056869584119919670692310154531355520310645347523451191461340541279218050464573803603754967695111838348873275495041995997698902119163938591555671367911237924624196173286527374844422459274754073906137071314470535157993948427584875442960207533582213027477125718955001102305554060344994317881129737562101072293991178367822567823847580845760835777223558617292803477547218936605615704780475281403850652311632647916720515144495596366824464774514460696423965853051503477708407526270016926031725364218639351445421998162718578003308451251130424164941966856581656816222167612589510421443867001772913581432875143227711867887593142988450769998426382546812348693472819286821629480195416596907076487389291273620694912820152565916352733541321820581949036407566578456383718253007427468529408352366962804436082246770571051866906125260238623350788073164225027375925387830597210933717275731576951025447663419264311843573625044529954002991370956246198407136957288862856746099931620475832998432437730545049034178483366484505358155352575422752838467982978108552448364870232745447015971102413718960495763186114552473315405860232941846060074294237417589161697967285079633819504491990945134543033963045452169691008424363624036678954955354153734468378953303727255158872450504835120514029204765770390536775407519898981348090455422548102380218947366687681713440193573884312394539503627889031826877506124412285071843828243841432680769823046285522849133952068590104231632147557685392182773085023217790240797851027207119918740468023139091249032343394667860570169824969507350433456919414163242150621833435062491410431812993800709899618890880539016261980005604534107362679405117837554270249946428467623849354233131481628699323486710914735985140652507283237728906058386971177930714246141869638188246327551753089335694680483580386474736690724104032229263955841958031289455602746698168591618191765445602323489894246337511923772957881824310681893592323610912801171938082657415294282697838690228041558633018452733709430036875392232302145528423093191960271987645888797871441961177413701828013546985733691678462289868035196806281882089366440602624139116949615899063485881374742345756340117235919585630368562784407610767000704819003353853625757381517556632223666708082201992502318679986005464922863617563237346836256844475509288344109276550822774636272648759093462328893391414630540811559745498002608019908844707671072758230755032498254163168417535665896155119077558981743625183577345192485030321254642838719489811282517151381698991727004696667512370658900008294778786832397902026965930401074057704431318892829137298195630387252048598959043103607723160200573572567461104347706572087669457829156266494475763599676551429070941607657889455058091578994066548571693139729147419324357442922199015655264140406287889336309963095696615448688316240431471369881504119183093517968768689686485010486032319159812319995323774051050057278746405321719189027055309130306780132635156455546948709996230463547334585013974290380636797174359961129013346933545435666041442564323346869117553325980246472655326140207527377345889122903758873868767935940500748837986378927911913622666699117845307173749447733876547745187875381625264003683883013630967829342906066489460803161173963519655863311399940106888906267663873553521803968921216732692614288558740960929517351711133775450041427615205496567826937257105253621206673244346005612809910640408800507162731153971060037867493207428235257077589986384103777246562115846892241088676703150194003901363015200895618139134487606920473160169193308814007069436584068158973556391611876759435400388175455717282992028746978659034674012503925642100670480538523095193370226716469814653954019672139665188198335439330067621510902699271926923299308230946638375366341350794234969093693605717043388296767623931910845066519294381525427576357843375541975624596767741306177722947192318969470594853948146737231167594573580748509709220495798442798390161159126164285326733015791447301210943670399027303897513850555106001835324195824519428577296529428954199670027006742430030874585581563031145658120404810163106933725806960340072241440585134369709971049614515510623666698132710112286328569153075058293774176033544746911728973248578622583962736507528089611185692349197746115022267430169313147455085883525712565373792072782119408073260157497149070077234536456414981409731415732298774324668002174094897249772014537645977634080262743683886321084664082241100597788688402409453868407719215003823686143369418798359649663986614254143674745436315261439916769523671061748147416193475187369669198917422552333212652858232176020133684618753866117688146602115026844432078265717826950506960216116920349412121474655005567911212695024371534942154749718378460197434307545634638265554496033766221250536272853134124025975280700334666478235112525066964841083615631465232793903449047358716196480222154977258645441118486871915808964324539725717697134928947474687077956694749027572388360809871952017438473371284591037005553266643062021004326022554787383181603692698930910204547130299598173659521666645504504573463538514590918010563555774880536631586559666768378522715067561887191607138958953626644748181209749305278973888890614142572532839820388491550758150275044138460762192666399714431936437612313171967666406458509486013300111727813122974970618959886793287672848974864916436965870529932901808760848840854488921083400628950000254624897344760289515427964915348703126720160930387179118087956300885118468125322601970721782128030019398099821344327422305239574991219262086698346247743641772333098613654012624466381101644292742978347038370504173237660283725993916249309012570771110820650031922077576621201836277502185478570773858282709905042651802759411364464044892410133289852856687372342841691493408490683005290778757329963975205426805853584106963831137761749306118399587494444152003479727357896352015001361501797197192122537220323875801216820164707821624710197908688397968960384718027702481380450615713568897062409816357881303513626376041893751697657362041778345840569488788443375287992029096324936698158216853223724500312007732102404574202216674730264406222619865533940618751740015002079730474401828537472033859093907571395342597202093039262696501574745791476284119474511937559269220008953265694292311980857945241566093151504245313107832798417121296294780215791352793336447571062454725119549305394713958710169784038986316131041439536965470526270277463356917681757924099543860095564005148124930149643173772217428694394802157779176002456305845408850812080856684376759993257590856099900126716625008448918303734459896804727940943035694696954854256717073598450259153248681557510741404752163931987051517515564147204601039643150394736985090186441517445346083419880461690277682587600471130539341100868641249117222106368484578234622651132365155302645290909057742740035236596819028964510406843598337194036225770799509092201503975952026848568464710068292440077891795366217384040392861376595493626603289362106372050144340213971396318502327284580803321678921532182644199531128835252784574796734615355062260265823004546318169747605002027479008932984423753641316155305643004207584216568909659039076002856576974205247524015963245187575421966894375045445519805058919410353855060704340567872250286576146715928708804779801974002684177684694274805661844009619513382901068948262278137343769856415728404126753520889282265098001388696879681697050789090974320987530661541460381265311755582727180456851121939522962944620979864928314897404267586981334349480146884059836970722699646889005762081834456207445172866338395443488051760447140734505853620095659141709621913229301358029218778672462903927910479621583855182867871091834439805304838400747119426929974504679156516309015824918194126891376503417954437040546985438929157898195402861351100463126192443671623738200750964726866909835564651520684688942611307079085184094443228029280281694372248946444434335992522577122487461333591804497156298463193098361686241842171589313764520315644886072311005040088631866838524976417669921971338158449046007910125926245757565677477027866385297620288020846197440452371322813517547479607248459904134205367145763480739515661593982326153524382073458238287517688925283557044244559361487103788081886507926137398117445444917056952943818656365587212232799877824977444728209522218842157688745593451648273173515248537942455560046620510092927152894339995429514991593309321554784658247841854778014983523133811444818003256636183551697760167951919142982631297929269332846055115389480850241059461432036334707656487750232759154943123464156268536942723187413417725578250581211965042256762957113399982472801183480420693972175111198727327917959959482876798750117390937606104880912091876273414089146880569432433271020954349471285405519937221654022727874084818619294035878227597626349733672297285392446033450062257043476900164130799548107435677365278861157623581292571093533783900259445856413068658845437600478290870590588813530486120111293960452237264485569691613575315653590663965726154675327498692802444022815737489808563945927804629227988566465180916801694762188989821910437837566037893163300806685279710701269030686881207254532753316252578878926274750691852360332452300419399700243381662356131218893009098618682111375118469115035384466463883007533299752596512048278801858727140950492975014373263165660661347190221746916301356423766823038984920806256364974306625284824349815565771359831758164308709228932545333837202280637113932679361849359644745388071132642274978442961844236815231214534465784728525011933064212585914825825280198674723590469267553047582125158509258530609559154548102981046081286629085133588585576901995472603223202254914670529309006020436701341757892311915227825995319869780334063605358549520962488684354659419296333724397784590873922670996483637317266226646925272422669999457804264944422062388702184779779776067811025425607072702205356824570140168458029028155128358059560415033351954945873230241047381132123110345608836585371139158862223778544465193246860440814793636835517572202464737298068698252104393600955401872962876457921117074839328886118517457857109123753316865947622530999151712385951235510274892094322624005642053993321184625074393779681447768625279589241465331892371737629224492214415424512649781204804474080160460527789079787822347763474545818726510777558619300709284006339830956881707737007073280570610908441332335817051250242399499200367251508251318249369310895091855248630548035617459524585627124506306130909350475126577111736251128447143883790268015615968852168847315279864436494275835056909143166805247364963736466624847989974071046031976798679254160889719459093632033320365108233907324541637277956274050732617078746046873735265765325245820464557582893194092425093356199289151931830268754710597958548860335753439682190320219591916916245250125021795176341082579129419069508238303514284829348390466923404737233291483042288924078394964451717386818341599309287300415637889542060337111527276688007413234198129900417363891636218059610478513071419676587173576797898547277770445775817952662797738361507756793447966170880346109414017154737663381786886627042412644074714803321305470954217421611918582323760981394320998320644396150269659133628564731955801107278816547060818349265256782596899981169718161586940320719366900998856165582976005564895927539039832780848532953206784121915662026221295266495311641665360567954011681302219069347655125410033618323343600693697437572055784241195318277958910168047190856909426928490149160780296246468088690199149658600186224925680078780869102861861825147353506941631651905642613725469769562028132263200410123145369212521620124619748379341824127342704386676037070584961482681340268086691293052984383448362468999631341867254170748073955866736350388454247848110931768936430429751845702518230807616801551451323411821049425873085731552132996999483029302176012162697369268425039456897411169051157618458609251644844418480052630237688878052510186048632206302877870118115832989048147041668201472706339017632892469862129288869707086185725638486710390558726094201021869219656288454441821270037434790631866914338013317553957413637382077369489389861144858248527296726880749854078880403416583334373294243425234291904381547136785758468187789640751785690942988550581140328345231131095040707969767059085296137332664049192106214281915380818380356453832495412399063680154824268715395606268579498433293878395739879985918041429565061669729773608168215728783174764014121742330055791606271503007340314738548879757644939268379984619827956201532630238483909883424736061923198961068195972141054599070706249049356998095456335792921388484681128671175185401456573458932655317423886213526876207311298327975001668312672042286698618477437487139288467731610695598913296502562957702844551071533008437931506884794595967523521964695649857391969158333837824470945454127863423257736613781364909796947697431599225433385923541722490386614939982633871919570834836035339408790884765788064854368173664651687842228358748364076982366286413923002488936619484546742496073575134490822822993121116148446136630240631057163411614325702897637832727571781267343713918678525957179599299391762141255093829265340083901095335612182022706494707874587663553366480817420979814330847293193023288548965113400786688857775506918885896199192605901500434204050301582417580332247935486141146041857674575189029270400986847353400657239923268738035033425607744464562599155016392002255446667278872122749468641161668761100374688837670488613479055555027897953590920861940945950897415855331765750966355627791914090058010692712303686053632382005318666357023495943321337056874864454688137720724749554969148649465791655101952207239025582738598841748482547738350518967423253756233295202289115546518315619195853736218376694799717985722448622246821239710414043934801442323844130263035793193442199826703703249483548675346082677281810943443945036397523578911353482937409386192155115720046840817511777413735909260301871627393794664876621067207815655749919723140538599710421127298279779581239431042006129635032821050059839826596410198647293159541262629161723994634644948071009131276598627252628366185510310228187090170180618494307659746735458315147983412535479437052965117805415646616365394194817309359456436996104454871638749605496077008758204020477195441003909544025732026161194697068891521076648685221271970975817694618668357089726775429741707357609210059744545830492904416156694317742734058913574862083213276674171432173849640543710660652174146635795406245714789410175213603550691128617479569823879914138866548615834221293956927417349562285271204198829088753102164864813573642926878307124398655896494305797634217579595784215899209889268253178563518582810601961751466213798993890314799056335703625364569780335120229915614497419694510524061750589080184590308881182212433440475666970323512275489793842143033087377913753819819991611973023288670289194883452306758347463082501301103869493578281574754859270819166756977025244306383636953933535424223169391231387376635695791921279647041201974287690215333084786351013908274169213187074822808848987735042174467028901419381290861563126778687279603651435868418025732254554906662219273907259148076796682470157490615472050678952152737548269354019395250784308925071946820065491182361301756037414419290206551873350513729989027625595060060686660893080000789315066786685690662864543790515442973360012379479035407259626839409584509300880210990654115246537175212315074360584524058821006534056386492872704852074988687624876139205890752395746867610991555050990572546149976415216677831194092262471118755887103702007956268396318361073947996513318197262073976599903648792630909986581062076143436104387625918397556511795346672321378623489215156275640687403284431177294810831862137482452143257135248870611087729465421833208696926178393307309453608850269406644930645060920359067586469711298425454357193433058146030776224297861085553747213320748181666218894897770556489545234327209728543020540684755087992671608415258492063134969205962829195196644150098386584724049940686095769190049695203403380944491436843324336198786593273387939579004263249742924674452051479212571294344665280974746757420192928673039565050924454393709723250810213765417954797587494797483183288187636148332326918469663368351934214010244613921884218834381969386497604095339806504355646994698450382184686707284509019375224225356775117724491511540648854651486339013549561207317476342362856279085078720507953044619984811973415419340406016448518293760263850389568373596455638167478432301209357687727550459806503186049376029806292268227445260776369758716555881412613139833724511842677827486692723468594080656474951269990352490326296774881759192934193137403756892811993121693392027888760473689073262558682829786743980297452253723378847149441271647883544171882266235300811976489867028177029061665715988943755200569177256982357499043344405091491604331279118383598099845925454780859104133326800092180014231844956352732050954811702877499020338640594075592759463554903156179066490322654188127784286096219597063489151418334525774935188350436671623701896554897145870858665199684765781667043756122433400659325361759836586520436748356673227287227492826212025593602136643157235523603219356251320765023974429809995887095033802755231939889147847434343842989758795716037986593233807298380494794112100637931426555339361882886423197851164252741208083891026076364260423023859821959002752046747865960245927686194501876710154437400735218966887537061145027303937164482510193873468521819881227337358940967297142940351536484415996203606879307951836771226632357303622227994845313661275209133280270551222503673969643979108580050125053649936326711206273147311091052821621310385730622854176909236186705526597302132806869712037079080200742289903173249465144994312387393017036481425138939059177454485800725799247723290538478599629734283360340926615684677234408371608308022134363120565816947297644765174165789658118465896331129362508807480064053872870357309804435450844542116471773200310018624252055975066114360705884874979103991815444433569567936855028231844370874913887401150814083607585939249041339451875262050221553639649267789990929811552569742764219025326368941891472418826278892890852405358054497129126425481048217382915083031318074664757335220794581845313381585452624153776851844055630039300778343419035208296013749713726949196998843425603995160601680402206735537293855295203396379019077470031478542798507174403213771227314018702521629673444451177852493433069782394822356043020366948761881345933081814903988005731774887135516291081341146797357449147790304649338054462363458291336572716354329089932775405788764322137129206752313160554318798659576024650391402092062226722987488514476628612828810064839622389729176595350816856579015701461555731277644810267622309268297980874525350105151459978284465382367902811421237629669734896649570062153201022151951179594452585623237475049654114414106676247826257008747926709241959511908208023428049088646341773205305560449871964902852867974697931089516107766242506600486446142239938455526790065599109968322551853367126405274143730745708027787244299496001065862104209811217407123992966165066200225245300895096851460870575960255135191674251342165001769345064994059115983619835738324633243941908541928007398708190352132827828634263918457944732563683253802223194956595217222671967536637479944854284486844839261364641217711974212748778915868183051841431284821990787971399643335238834973906005786410654412993175344096085969835192109092029174925429877445946059918178692348457701542834083757049994351972544845276676278574980663724599991149126941355084150757672763151195898828266387031557608873332122655143079677665061652300927384847982587936941550253928851812808820399589573036204031794607566786905805917426120959054858152249972214873854805170088196642161910874900017828584907689109425142174300065809950932295628444707164872183496739038593190306739640126333441891089802736591657336386620726270003096449473238702485587832031733408150064829999448725541006797152381704843679558553968002448523451025527012135235244971497021239697726751394935718441636118607346383865772637190122572000405216157945926794107068217451034864672733931448452652944919310407024331938257707502326547301727390452620459187772061297068990791799285627679133967003299673297624644450136317795599735316077677036083150934620599469959670999024095275298677426014656817333865535374285768495022371119616363182029033833365692421516699890796249671999162283626474668110789377519980638482822081887345489847397776423850460209044750385461967446347252496856578331400980192034193007015530372134838813054449173471945905100096488041438072678621904878437387457258405762428902998468311562993533401783774175158407782008433488738805631802341974993755593657726636735330078693968554323947407939607409290823098115473459242171217654838360521260599010763031878346817617480331638485562117988805394828070615095352172686431962810534729824419174967368300458233539250465884540313625859421416548542431187841587114829630140256114750558238597472183716681432153798078210273929220654506651983724618163722605939877655967146177622903561211185471056034358932708965892091537574052182475593170652083419571661220685844160799696401422947651767294562826735214105517985950504121724641644520641773904515340702026813459818316422748382056082721129636773420072162662256232953223919443128792810910998654584374940922863386831950298450328954808668406959397155026490203338183627111297687134923691201501912814089282036265033483737927394101437020471639009976624329320226297711435037422894587856812013185811587620058804224508658818928063494030393678469026766158010986863497633713362639144294213230308933904797421426189882478249094256971587336341914393476602592615595494572383038211169564058398076099382365221684149638528280562776850625105701029532768507331405421381601407005857474517278852140072948764789933473604821429545192538377208257975927256162218722888691601307626993226851029446542911541245490248280479504377702693004551464628932944810780335358263761462389736611904817464237324134909691951284633518437262077159785052423899616616834304760369897091119428763580386744281107533543275176590115020222951091309268237161113728682987062573458662945843621422863283108834534437089055171779359029139003728102864867455300450714132161346495735949329011383381758044126483722260750123544009347081809864094929220466160813629910908144536430066466292568044578741309706389712712389235193855757600722218716246452303850591797809679578120046802080862565035591455833317205693171844712258585106468755968638614409019709548213406349436524026982524338778781916368531271228432923480011119972376458845822616193148993411975027297237934117130471485864067339255243281081591678890519787566475924929541962154964166235545899151455006995770747264858999009232974255857892188520525930790531769203173914013492429110262050809774364888570185432151292469447397517482205105973768672623302191290259286029461568452761716067220292575963290980494366165112184867049544486549249898988594114587781275427221469672078774124923510938966139001035525375850706754252573852517457896787387731303636025171939739173671822500369773246833217273398679787533042225996987744393014103770761565118140044896401120480153904299965340816418866437720747811630623410752557091718447756410328069632128011551444644242103508058426414424077697750070428336119473682000245907297091172344092566264416710127811162616191457571910194673829739227400218670163240457764852330580338167710198637215176883078110513766353403446829261860920738527090150832520845385090727315341943703230425108189326917699558195473475141770559377930370115467542968846999318799222589037581419919769696636761679447270200343661089980634649076509931522701446253696713147087114615715851630230138068614979989499300763283634212537400115520943803248890178059043971942740513252184657595711624902942953791781209345375344117755808456475120640975724178848819505723193804898786837900919613451828780377088519697617476344387742944047705997685525735250959618193095139890721048690097047790923413961546627837181811793005125587930507379616608119238357686086281585646250757998109607384664929881802160515673081691416486213648917273986479599950978836454776350013191528122788942563731565205145661624360838760263854341765550970882376439442392704659287562845769475659563381500305426614423413923189932188615793908139695905563855701294865039334717579445359021445363405985670745816489921802864081114211206663404760950237457204277665237244277374310500117310514319374773986149831413186010064289006322409587762939418949087814848743721989261623454494100743777249854883207338606016936008429109219135086522262999618739100676925072406145964399374188433021584094519618057016723603728336027864867079101919268198290003895129682551203862038732402752494307672664124350712049966100639117692743330671014109115237611200002022529363436304834708871250763037872599251066481299953789541127123958532609229876137107983652959597733164039030536757572037563983270920136070599725465390701243467025124354212536104446567178021862130517050084734949588254437759550976013915573622484857709351936939648656608559757464993048874887860526285868255544187119036890052978805382437048667175840543969087414837324046324315849409686468991307013354950405380770007820051463152217379775217291610088114594046971339363733468831246790491101279586078423195631551594863086448364248825961813934557090762045220283186741919194831882793235276348811441016997679957079084509696971296741275360156848382128336629452523378895150584489161482895701061930306059729503414822493885872761992424247363958753496595530803129873019510048619688454506371994791248231625628667269104356360254166379774326012030443434052651460712070973805440094419326902342970700223018881052342746493164589905261178122685547354937391399531088449769661116855521760542887375007366116119546489607648060728274072943865437664945349098400607986482039641725158905179093670170698183633058632110897004845602733731562473469309486594114346904115816156364370850994489916081968936873303241972208194300831850374150952040758037469320167160243685409313070882633589513628388963490329199054395346627269566097255369109220925076498321519747624197051586827190112131067864035847024501782949875500154488963777879571338297080341154026699458913093542886049129252477819703966504096386757757898534461398087872580888908257082845828864621973839939985627870363484813536632825470150183203186993109726217312974369711772982183247444384000578230192749105826808581088606207981185872241714900907968969349916194753077566591869864902090628288710640851282993183113204218501701304039094742442024991813216431644578147782423837380077013660603497644355730158023807767199586517654488268936610880139351911139181001050639150262217395676848963769227985652020012796269649957442613065591691542115978461669187717951947942799292608903757991308294546918054626022276890334733850895583444352937098310334260178592793108180365715255137524935488512449381127316325761661498864459953980007886953799467301757424836659633156572656003641864126217907033114674367061009206911129351841049355877283005307758467579242986451803748434441928116091697565042940401384760678333901530024581595870689921681685799674518039050363565791673657131347253245762053248637924455425924106298305345129144033853696056031810643499126366744864252988411140307125751693478808634891714144634450504599007684254233497691155269214609551609629704365922919176821059979924160939030003317039225642566351026484212548408590159533027729498693095963245620880764141413537215876483791205938838804875205047863965323980272147780541968336264406528201531037434880625086468139101665307498132510041674482539176839738224490032534479619162586270394207875597205078730551817983906322108081380043418170896455258484430247609928373706475505045772765405754038606538320723260565066463459379828666772986558734601019765756834516232604652246335705823569055033689192169370786990000545801056506911033750620242979319174628443665868199945915562210143173938127506275252229409415095929605053392537770385348153695908464641480293097127866487063768285685106259311278516186004599946708901662464485227118728295652260482541861103495479773129214699251669065274376280159003666270032407879767819081750332773558226870986014723812076567836738428202113079883553391477868541252421202830132079677004166307896782377062523351687113935186340364670744923229234708162864920638469297392024312944919496315409631214666490888231458395523258391916626129671226960726731456377195231043702125460484997626291640129499770909566236240679501805219098647373820544819658517310939367629463494189762134051914356178023038815221139552056964744564917088089570661373083914595682395947453543427210987128097232421991913936464980249832415825215747944322691905341563078262676010189430670049859624212652309447292957490071798557483370893703231794927826831138416503983704205583676875525268367399870798496685771014858143003697150657329809365650219945882322743551244011382091272112854472756311642355445918281263432184786441617782699739720643528990046586511419555845017398367062600007529576485084915803791415172283212716094195926650841645786513651501269799460852815529743946943311219731175254633197862989524423046768762313477899294330631228012439208814728426885546964230436376434893262128397411051262852298512949842092273311356910439111557542990896206671605659645454901061572200216439877649569709861081482475707220818250054021266593505538259212136216962877274552525930325592722104643023868278257856016455427987279731371513319746731728188993869130640131885598554375907545432202442459000442013647004572953134692102816515683852635808511517739732155760234033362753683757331605109628259129294481937203981887835774477418770703129447974439129301311115184431241717987406067589911205178995043534526852063037346782361959880370730289949988514484100926365880227735575147048406765484762290755153364820530724568476208719286438599261792039076414349199662652889705839063935048965307019862168327989815951943740828941837020315812859142468098442488655273953732021033591247291483859806611980732246797777987794880019538953874558082236750756793300241384142296427007146376266849183320038008278067692811412917691415780159928526136916017965790886752147869865266796498748475577132225524706964248297718960784208706424194102339127148671340417861424559897402369775768417768358108808332915902906504774658754090395266826389396211695535315329987948186664454435064204265368945759559063543857959746389293451743545476920079285595783801542247887431384923425092274932802332615018224995253549912714003880504694563026000690340435727019357417402242505951266732108021879313050311773116424869348745616526382951083716990630773369427207164612826284025314269352679622046014004826919637793447941106288419039476501291714710444386566850818527915641933328473531574948736384648184791371084554172789641860760354916119782226029614458234517684185450450995622094609934510189193938841786030580354769983650868278858271795800030392922351620157537891856571487379768049457952900496632704595841507275082114572432274682141059862121147342267973058784777105661084646357974134729205661465147033513144638727165045511283879481211652356270447096887257528406349695167842174487326174268681022985928729349148627361983999042216643955137428232610392703637820018411931248595645333790137888957206346694387073056991979910960592716739212188732708682558004830617500429381715961931131280682039661573238258216376462617973170636249003637652381180768923023217449216479601076931875835945346485578111808815816188754794399779852106831518367745934541993289652583816315401191769815249933723112404253593001341192930857051361209295991145368039182473912367034015759468351619341808817467752115650389161394261620725470195457384647911175561092346946680055187199278685082819613814059465142479820681351745878419352580060404829280363834401356943129915872635854233218465522794872933438981930734435824169511562228702875827016573186380615990458479544615478704989510037374349753680210372285606719124242979596106892690922078140169884917105549442341205884480292615812083139010481278466920435221735256341250077700809994037911413991991369548773214357634074459661219308585166972266847159858016925201899690996818708046661278154402644916004303069233425277923132570394101014359593910260264913672736499976292086369091998115189662794716323886284101152473566661103632353114205250767001157891671434007486029113652136607422206393677867074944431837890505309260684687957603541515564870332248161459971991099222430237717861055920126908661336378890535787294932161164311264676896132327272953561845813996877594799999134416168921846228249947019411039326027425027452992418114363995885353462318848271690265314618598669308582297473388558912364524842629453385371799223434865159691970431328270120472990611524094700213332599978910224071770226751866764920038083623817325880560014527895436808389202097185057953078081425240357325113533084926182966041261514567973702539181364741950839134095400213367624545645317454557603802373978496286046469734828315087718382081401897956369829026375715145237775310389795235821604497861034389971689098827661026887370926657268582892589604434609026818793437915224580397927143128717743516127749191343675286312733996236717318973169785448677126025546365357023475585748753226579039026454134244078601835898251172602970625087753095652715582282445384131638572824797460446101755500135076704819653712814355593173547172299467083284669974835503809683082405995963158925354685893599898060104271870379068478803054956477464362994259814975384368388203574474021022580421898686243765105959464719099648614021756421208895326403538736797774362898980524394613699286140677215344887595967153765897310739876301920840154532296371541974206738157783257339213969476336991527179918047403767942387091640442429232376544823870316084165520332335580786924799011582221277815037085594193190790941721850129684527415385708867701304798103577967191887925497533510780165784095755365962144349631735210007664820531220550781417788928456213081029476115978720027815623157585081429872153052024863029844508225256974006507145666126867884944257117800477292074983068870277220753259674057156099735481222595563521848980534943244571088309074990289430990840642151629624011135516029369331013788446960586130183804805237221685642758348205376264175099158569657109830600103987130207602662919565985217958271772655881633806372579064835693508623552769880368482125009510381010323785742627665458648178695496848902981458013130088296869346851751733094963173844339432197701483362359281288125979139161651826988219694625366682719252377858862487920832650649509865216479383691718924204616881719551341882765922270515971097936840130633681625512879930667295030061652554561569478142789903650347916620958049693120243761773944047085432936130576591873484043364026284245133433084572060331832352166646623446171395366800654799084558802741797326633299825838618011490213028501239776912558069117432997774766291169178903519129350232899893453769157372464996032159743764358368351399206116369496193771675222491573294898970335978904599052502982862248016251768791896372372039104059549913404287920645336491894000862498098297359518200273671264824682030139121332939292727265136829315435459722733528360287044540564585963925984808500983196542138306001640226600595455993714181119632091251095671226109591869429038300039139975540918456469240341183908829351799187790079452922421784854722268326321325674216186025890828776173249777556666253077304662500610007478284383735602556110951942416647794924189246580625354527508402516206221845633613866832029105956439926285509356985180063491760074222746156998495235517122572247539867899963608047520931464792849189179390613522685699296296323808501896693668864470384912624503463832707628393766190423183414955615452085721470208539379367806079137569865611807628205133090910459724847413558321985204790536684416156242323376072996845741975020008172879111063305206941471197102831531710808253207183795779086018850739453477294966647584173096555070043477960375933824182927952472656230870169829269519681820998930568980046923160727609228694909364236410266962314016707347704229680990272249331386917159776925286905395673152233040893401951114692963235566250952529230212176727826413361059045713386509940169880654272484544949885960800289764229657588873973133468658073650385642259788005010061942096910632899351605449327945477885607384051253000861559358166453825967373985833371819904564025712580668291844160418026600543893645137133508382534916943890830535749922019760882852265797303052910138264230138589441009175466177540399599090584761933783624944570061708944423440810007332279648496455500599060818603642030330295660222824033409394662948524382595849910032722347847287080748105934273272742424832445010615848279723893208104715657435141055936298214794110829060368373790870142617201217341741735167271711913387198729936677573553521227697080752765737345758607854471675827384708185513606487717619711626232000815288411865251814005171864162125754009483940388822641353305152592655880626396291912732582715923582308326055295562183626314233198515080594508461223591725878107850846123540829643685689400610559954252920026921151443063658593515044363829501668556433969647029357424592143747152242887479611956055743635437847067887784089033801346626147946685512425312670533987304703174031491571844927227510895047134058447931841164435597014238520203241243711155087631834959733945798155465144251503753903185153674485110542860386421560711053100461053321180282963452109227947093053221613740838478299910968189258396380018605167126041317937660865387939224393586843844358915445115933943446378940904693219730714514809188700447289664227347262292278735897115481781696615294317473556752056019884572417111430825001209874161204294780104321046576748055008479682516141049104831890068774087123078460505919321789635698289168811510789669119506805275328902231361781022344945684035672985280340045330063918188020092198379018882481432757568743653262958139521899799812270620080184454392301362728655713063034794049508353825893942846261680625672705505900540581416306837338099833841591940497033143041137221351684107164457765843029652244953408916902175785981915321563602496349724686035612620864834224786573768488504415987942689256180313725654731832212805287698318134432883393369401603462626292944663479462189456606772682050344916078186881972629181767975371990439734263092091866803605930283685034662716417172108261865664930258518016914660275148703766298364848064486528412480511760678249375061986275205828866910098292135959325646552469756907654531587871226560813019317128349353673064620406466284248347529946678145283676596239147729285795118775875869999254888813695769121937219696720481107635119296082253765232559943193979727550560915204817716271237981192398848823798203831242000820802924259648949843643681059355297207077544988533800358507635968495123303246944101859294989114686219801693634178746732056155590335138479202008733831991028909734414617734194379861369172915996173501960124665398434318946834279560553498638282894721868989491843283042585695010019108203931184326740041142287507371375625359387087984747216929731781613093672133317201129330120623845757196874153768172908942908866607177508353367466356418389351010639703372852144605833178158349619379450233514011302803625823659965394211632364097030046502581385579253567728106367996220175598126135470487737928139763951850026815330810899194905356512940870324935012112413334964111257450007321074125696569565486929828962322718191434932682655783932131659842032521441013417238929126728562408432518294393871454702893954647764870602026424123923719316467752454258357541561037914319730481233099549401952845294332338369980112292353952066127488950379829340144529313756083447919994121613901865626892412788617504345892570244753027806721021904712867205601180128918851831425579734646684996038085069808787941264306872851237262198139079973297724061659754048303762540903682246808385619794084239864641662151924370197751799112202277135623931747834887189389634861595930263207455519292357906634747718556975357308755710927180771446245769636880351358035332632387764848473940607655335766346668804506140324298970754552603148426137406979828844967390070445050116257153527782712539224468081026818682333975057837907968726023303994796588478610733841179583637904320565329795592504104940874367354566780362450386904908305185497724021953865661240596083861107990381934187980584562004750624327979376275542896836371184029820909275379366177763412011226723163448417335520618801164325085115373199838107058821386381642368609557168067940553748139292902575702147282304377018530992582270098136039978472035332897129608147868962811128840222211220257473038526004955476632547286390502645015201505978238692434325143966701554243875679462406887277612399733412789223146431562853272800119583155476987815666941007767927369038266512438607588158265825463408577981319475490288287666645640349287561866088994184551107515036771274640239759562123554141746070821453399554361258863979526113714364781542982105673593011117624554542302300434051153092727672664351671783799637212714944216451543191502765037934358342679745933347869883317385542963283711946225186983612058445616101034051904019508524615940310840583906669964839732348806859752819526917723866033169954934692952826452463461657768238596412301318502933273680147117243178597955539597269900651862590751120227106309520642158298418728516189152718959239373921500535039296191653591868232732795102513746780978332976206843418448411973724445738201052608307924033762453865496612086306934892607281831459411353117313150576002701791853807364602328742425480337396314924764730777610414579212529985271241087429543329851719990811241900898898136186604989511886458226283311068115609114496505435952514035215192943513346693873814394106450572689697808952799728111997307259247009185370961318995738927459714486470401611821772483401030754209075320992478556689660762179912570731811921522255670568383349443479155545015176191466907171500492003382327595907549411602213317299594832832225640724554312789629583993865752205541267779342316022835628041526744278653894275819581384285872477309256106627505059703688355945539365666093189833671555152872608465874824999723336699251145754510566747644230549606542945309086842114232014885533287840034652068936618620724347958875682567741730824152269908247740509811866049886549868120662123047275223254509007772872835989901455752531588243319532098029173706122363264763782849174068414431063706712391877582827405653954808381100433776057652596196809601676567970661609258496622812269149016683536402556354846168413060616729293568958443280376446183720302471323497676009271908468353494502146387341128655075034171311334632699952171868305408165075729191428555581065175968365926770283367598708539068868910716381232115126836164526677335529445509653505243839965561876334162773850009890673560442959979044966022621713254009098296952312945979601031137816560587298232200363718060658407839585878974940439790991839241093057918365388478094782743452469523645261975212572968234750599620432492661705555904846290610222065734324866623165470142582285528407531840165775329783662544425233859634648249639298618853570665428455905576143495157434457181019395515253371900629121846227509825292669634198585839334857756288297852227776404155494282152412978959578523212176071646492672107910195785409539240578456552147466068690454695388282841393967703279365118143658267158812515383561487297659205295557469287402462474422247832304353035824438134853289031994770600304966921044345025024648336505818510630747490277396674045124749161112261144431031222335419934523540974131111989140092701912725002834242765647533214696098465568155949857950290557403772659020803098487791626061881326744210215337264507285748112191913861271197959041959739578436180248553392402615811035646696808782526492483609102108468869243375923472264205892249962073379514848214074112777685991896326115277421550372954779434532183169646338927491572455072446947108499413183422434293522058738820580057163742537215490117136540047152026870692437700042134906303353154166443420527710513813345797077527679983863735151502170698624454607479050379667351370645243765795246312382343688081556896966138193414334737122055819307314121444633689010726045039873989467884360631371726151303451955136961575881901784366656743828050520014254377540327684802270770778817565172040247446938591468455090420557473214573558186920806927869351730965187844461483245550254238608465060817423373027216148252378821925583861722633166653321643014905959877978972218109025782983791989335029512906118919667943850860706767005948549980090276201279330106886673518901034520951170108705435097229037438098256588335502742948302225124758151819366247739480362558223949820890596920575316624167017922447162164893837611721891976606891967858922571351773212172414539992404876850782901556061519460991401779456143082347464087364978810624400598689750160681456878133320952041140370087294949448004223059474628857047160226695779617235565111262344195850780091382629794811532176199320279215932159458905394295291847005816658999305756914823668472217438280510712669448909980047260040054214380647542560076164776027952962387237205128485875159920320067935961199274396157144521655525439747328755111852572666322788444720843770571742826262773338107421344189026490086346774471702478211430427745934654801800081132150554133009516764538150588874084430443834583924754218000806769548996114594087466568384866517439984039945451076479758557222597461130318572678103516527997630852875740172049677067514851826358115013232654260451730764881286729884072111639452124030685996369522792593330863324590193972945445166495826354965903028023760805411466579798842571008375491378845800518157146147017899005716515712078945484603720526276572123375208693517246348142461771658049315119225138329031714409607728799512430415286604913754455787508778375085299423122441552155564850679465848029662020307176342074109136950033152585551572428243510004835021823621538605006837696822048177255842712456310302683678792015496990777103476047020700516297959726871878197465916823084456482361842832181071680940184277670197680576881547057859854252230968120626474340845955466418402541778001563186746470432484137604041120893985694048042947362273569206662845551931011249192235857900088001316816606146020428600294605735460553345563661053099574905344802947312969575303802909875931117171616745593557012642867317895513861448765127717093705044552368095806284004000771340752390097807313103464597985413358400853572430367620138703371750702828357189449680232313804395419660217594365504363720140702818363065571661916749065987127057442021137237612086360348494179769987375365001826849168220045087755260250961482951808692977156707560893830458011943333309346812401949153383411471228718356492311183777134860723035644991122822833829680814734421031822014355169080842630603554276846927518185862563388558426449089313926220574933454792755411467423437565435965554979094031770295756772983953348098303524268518720407723611852758079439998441039599514880139791060128696922971849394819973058775795361999730948929105409741205874008086694063825277381944397734192848384883993479576441612734630613627588883448406738945189168771558747382592470719189004282260423286604412957252892588610929272216239068906120616731347966918886941607960006716062660244144869326670289140234206247889901027786532200134109578821964861450137395373109150825822025128581752801195460167141306434604472062693972063850518278900710113388132129928706084330472000870341965366787104760086515384536840383167673783711167019496963742829109184583431494327499566638805037442179755163949340632890131365029699847875456684911343753423163856319362739336022312826279108854463141110304573163062248289682755181700352507013378773139436143670539522289691633372808486372382493757098853014170503928408480773810408637611295379919339479517405544043618160856246812290813324293547400871696773661522264025311139559586928001384634546293462454408225121843891151364876105328073174791057296528427148475924901060799915449768343377092133914358018843765113062594986267842059145706088564361486345894344858564137486321553240559644338255346067880375267904025123650707764755157218269132270698874575259432235902657816053140789227168518102147242757756723347825670130974760922055044371491912784400616347490331810274869639323086082730872452597519620121343820658569602515521581503428702024237993632907011332398074507418862376712263719937234132714242811216275252908847336943659962848127945039495823113939568007729044329110560140089906324689783659255908420178433427076665160546657502794144971799087886794063717360696147411370372685659174693273633515688756805226761990625095956619274278608681620115851588605723767063658514780923607570292875942617466324033359751077830489771849268789923625662460076944371140787788807209145267825126202458874543641739447994110782736489987329511435940684546325017707643654838712717553959624950379149042357434198421584361887654802215145821382932482666032780754356402256087948665622110925861778717293799565269865056291730479786759216011435849158767837788168439772027082066022845469146649016241492241227371056274706447629912635984301603485322210865992162094974631899390213550699727396687324569921488503005320623118904770960057005178520679163320666887252713775156802176479135330157352126359623075355480368486677166981894486261289352854777663061922227049432850540946043867067163922983565103268447101961619403903419847787259657530602014016949142588905515090798189120160448538138388751539814092649518873515688842104103047622993113619180121784796551883617855415213550727032942407791733456246325942748555999611091346555051768779109041260029362226835312343400449493501547008784979397184558504763072814055396359477419984571162279371147607980073899071608231880146902484722130503480280575860459519079255667342972178329731856027844121090472246211611983223626492535567806186055003636645386628201836831612321169446361019431301516062597963116612032601052591455795052528788265457295642261291115613761240271616806794823722192980555254801227285982786464055431790362514462142897646953282893070571110131287795802466394926573687182383734314410557085732512643120457491755139722466128667175520146366936223769880689138715249226047577816581082926804040943982155333233904462836650034072050912724825921708644223053056228475072144745014726884084313599019210309073362472100605140055225851150756805533759267825654928725797669040145728242562841005053496153259970380027424162721668473314845391426179949913870337697640746301321628996943585225014599629535778579107881714308670557284816201567287400104491740168613667156165753032787860178086149226441237626465971617150063682069006982387298711662825311062472313070926417573573883370041663114673818128828152353624237646275064669995746544957866434648959710039767146257718835314308965876967308901967908771443684525339162568912145949795528588218433182927340751745215634986667737867253674809176780721977969248949204742533646607979731303384098001822620646544526511176177914447935408861127131908723654175869061755757129189610767162915553847362743161880946182511939754172623509124338123124464918642115602324585295355673922488220958434918386060201090335524769257572513577550953258500878528604151822134442740869532547416114201554483706439783229631094970572388397283311210968179178756831059839211098085981805191785826749966548485063249314095744292678570710411898109662045076356700034822370835162595035554418518137558011296101562620293867398576242443589900782279984948924412793730416680808982665167969212021117927896084925793806361695961082759070020880813458527317225513992690521849685413669303745005670256267277049023091833336453336685341785272167243619723348529035483740399143309936644298029012649130108332409422244307784959043146911198881849743167095614841787460802408932760610983754226002712250359663283042065246683689910855242966758882959656217870911812772646300970074271559149648235069250096911067073794587542736732282850644139817794246615680830666167294877663646575844729755021221573789932846077719671754262606445283387991755019466230727687422445014855626461805000642798455744148039479662849386680683634223289556277708985633374132434486416003629603804399675290429070460463255879473886421963509279873763983681644460225125243948658097794863124850766587678722864244499548604150306769979829474687076456638256996042649347325089511741041378874537861343522268335212388156920462624820374510272120761285185623224995587319918874086024973455056072394269162405134298119052378063704615718023367506084902078711484541714524545459835510637256804761495768863204147852660760672772275231515756851373260129356010403181734206980510700608933009011394141379157869933891708378439446777235763733099080870150435059990638244823491387834895438585496595457816141316567761568521293269906149252102642125194872645448667307226842565529999076690200440325698712097043479570689946628472945384361609157302506436294314320660244525719024879004799560968780416127102324188285339550276410793738269833375803419231423604947780153487356132808290979007515264159129934073933031518106308620406629121284853091799615231445364330268234682679838722463242511308591309146778458024810103215187370710662533851894381370013159858701552870793803494762354751943795673695053096125770699769050769777943463914799047057448659379784510129169441072688855563801345630122067990637976864002625864414156534762145363849713858969993305300304650558145807385540853416584637103606251456077547229968438179472851305231566378901099596980136574199945722102779494122272463978805534788409575682364739236022280059499843924395854437355315964222025212802259874580464762714173790413551574848036189985508482522166042806009926497567110119860739028924676536420148331954465339898507291331394024944148552643599263894567248781531334456768947174830891355870158088766532144528070161683896163169475028633522810444700302748710790827914049431712404365522816273604979802572492434351741228376793201463984564683896440101258664261771338283500858175170277033216220005520570374923548273339458670180085903461173640423687344899970910163569369927950201235225633319549482991518797816795740202296681661324015063570593072774864625890598471766374296645529654989538286325474116258871143158751276716795588585988706800230662515682057571080035783717940797476886035726618755647463310551157650837961874126007105091304266330947483041286818195370748529874482902909917226606436191512251871811468348264540423963839131841592176672171510306259317579786644947072334498928830702270124573891271387219709653499479495512520140047587397296269046248257817468296806571618984081645610204821623341654250148399549284152607531076811691387917496308534562505616626762779501437847965735878087731077870720938209479420725774435685985777862978989802867408870728492997653255586931272586125278820510263684314436808037906434073107325623283507040836402261668064929860733855927714102947283045649622762005903396928477006204034301734551008228703336943189805103146294123774796654501795217314631236068444623437982545173717419221707609003521117553939766326858701871996616450188688969222576495058677716167086252432666506237530581482924494391723206830106048641889886558328367484513753084782343534025291477622650743720163957833666099558566324496882131262533805177292506707642028000635172479745255873459449171855400561504745147061519700819132909941956922657791728885625383225488943370994696881073384337869927369672182616949604145685200068954740910651431380425201559676341515222312079412743687019282251448632725215498352939914858414156691101033560930083033803604850105303097516436615998747956731131054804557180206109562291624626062609076045029404046201159523171817067300618906515395180105378543848699456465849818376272299472869637232714199817025632898276301943185091304980990781817270997965519417879911391278193062954087846891392176588763589477979164331994713751809441882702421717623646268789461730871910662064763863850018969889785910851295837751980827048927406719486835224287838303496259223190465829132303573132041242347071616811682163111530158498282366291388958201690607121735663110826917176199238721181866447947596514923989839419151086292746459085215014388851647772406698342945146811115815672332819788227104610580490404969552601436664836061333621567111167968859820605923917826206787138767536461875797123425225245949021075143174878435367969542743801110844580510008377400212789519454848692150752171794350113197386677728180618890154179365386120297233394260113411767749969874702705741452109356319716548474191371948581084731230762661562465288096233591449918458627378221526006855885992105938515621563605115049064389110268634585279573611630737897225684953642936947893387608567873483747666860881378104352708383067977392210530110842709244476624713854261579866027668180474436573334617374290727678308191249648573002702158038691901522240098407242789992150918905324455813104250897657217506011824921741175436628072378505591681581669898170732350061975312470377133895726272686864233566856908620328025752227083430700456498104290277606889437100308121836660412538683253919478266732815984036674365794922468256582573550877113769652425450816189274090050377319880461673304751510827254318955693432688449214702786561392855473852177596221446482511797483815042701774378518647127492634666144844621629442644684473195785957596762498383659105445250560935963326733847001683172734846275998911060946798886039155456005230706518592487013381852343709294435882977348459634471857324876660691163768744357092709071170990811899141438582724068343634332177192556978816278116333873415407038388859991505319753523244506815402339620213286005038092870149472263743624689850666925370115655115377624296691066420980819655821546666094932889421890683766873632917650148386938351250344503694071597533968305029219109911338416194218402220441648712256959846556418383331595487478397639518918014592302280314059865499630332295943675071168607893173507485900042592090189323721058612543804475344491279480569310747603113325934710294254919838101350715382690417477262209507126008260405750708368130460242315305907884338809709677311971385011834477076723165201831008083316637990636970084733388141358305300670253102560298624212646148360243644057811923306819716487239818537790149776316391682181905420930779641852481660333394441981026519777229758149811608340684224284712869318396351055257466497154628524782480723762215759663125693994216679432888713687062119844837835640383589262952236009241040652905915057196085475043925260306978312915832306918927585849696666717197668306134287166707766212891978238700995741937835831087287760474310407345757953478894093132610929070905688683207051404631839149295277602585972915466421240954232294074982273168497723859485891439759415617232718789226616109227983645149575758593433936236800423023913103558251185964471770736471544001835428231765965000379542063705303424029245775533445379765409931230628763305602313416079249963987403912253624955111232071690918849962286513084829010423661449633087588894036220672085606101133794463947215171572796795438186207773481834598416239703607575186107707172286457059676502829331075397210397983040134345906822923130336712582291610491163227250237175342854340584492939910897566088409921105871035118765963997576660162247586163472819984552494261278827437245322869403910783512415890762149056440471676881655481114830518354063574450800605149663626160586633193191693101036845475334975324628007440846619147861534830447719252425440543064483102053475724393937074697031827798335838422816562355645094251840687492565721413781323216267847902603866959091337708732087800021643748937642688614383399763764793697714176370718871589458217256620142018831362633401792332474112012897607427357523606954498774429323473221121915790147779100196417921297460085574016832388547889121060804601576093615578766478822892707174905310935543232951863163361560961730241284481138906597144134195832950373460429381517154226002185663742532136564588686117819556642421907507317572962660163818603395324313209901626881672673897793086423092413971155641368096628536854341246766574472189198352898620631419685267845490556275434629672361220444477208103075843906929404664883968061214238957399099169074302750344284938998728997758870757967763767884042045251923360746233020426065079964505208081634863527080606158616728571656084812638815717279002016549267654980289835785322744913586468881609361557241522291229292723816789947376967564777237921726917858178535598548116398628760664701359598152245607514697451770584364388428154320952705044432550756858822158948536660663330331586961897305239130906672903802651903511404939920584269080791034845879720081118956298413889886944225005615931712566469838424364804900972259850866023755048848434521174756766998224209912764916244787361963342016370096041238987372266546288223957262577304971439486198758063242301796636049234562730015885046463505999301760242269266342147033906605221171000321063554519971575963179452880066271993424620380047954718098782116415641472357087480526895501752638099443561444074986472448014166972441581371159864213498731120945357824958371128269905332815770885677822637045491679868936487730935478504320158391700936248686090011613359895041882095290218114366903007626060480365648883441315162159534628890606644609526423289158409053084015987538619429453250692845493197194915696387694423956030229080283827162752089299907265330369208416576043005988754970520313524439403229917075556239424770954639368305821430600970961707837738999459032886192862388811145902979943451032164555058943510159879385425963487937267554879703737713919295488451178076833891415781945925098078199209965349367725960575016547420729835619175660604941317821091127516851254350202131858311825304328660178602976695625046765764253791493904627866760096655894087486616546252188527769478277353584362043458905125470662167205444839232475629067387030582870318483120631921787958214170636912361248262412098088017021175114946546788420520175876349144947046236867117336260700377147413059619732424146157077336215418195768036302926219859713479644788239084072164003171921517177536371335833561427947430135521461347694404689351201612399290563476791262244853847913547234569602561122698091964115614363255697896691178747624528346261104338717350525577607885859508398963091865181480514594164115186054535686077291123652341023197847024808676391284801981264640284725778461136815086446057097752435965102887661646561292056223324418542571519632723494891026763438949247976660826997599691618277845530418138113810954998087459372189071500034654687475682312520563100061708851523912105266514641052774670178650357030183718769285045037530383148412782518000884915483282696250357816473976226978206171757007452380256758946786937001162411790402923759838474115889158853616701047998946847437748981268593792079315209128368440841931383392856236775747522437939889288493540332928485653167705133962310940094923541871139317249664150366057154318932064363721527349690019986494197189596294159859752677346370036912001136106613375471475649945615340424666022907133963698926549388781368870409924172305492860691053326988603512603761805155297258920002943442811545776219083847906786918051630638990197540209096537821869801516188651702727555580361581462283842406052073113364049362450931109998621763942792012416470786604795492996144581245170010338635077115827531390908226932452160777257949433045261648336092262207436181864945911838399967819258900586703418938436578363730680929918779845834210628631497577437761968305681360072849362990097750456846951952682123487784388855017972547080921454157992161768027443580273837167942700959019956406399604075359635687714309880140319174302256976798685430901719092187752488480556968178299266022942351392233225134831572295943454217174000710438229878716201950769221482224488947256914661168060236429596071415727101425624965155366484591196020982927953892894079655634566726918960076241857534085580737892601242993457380968137793845963889567458931413193169187899838320345042235443110558569591265593537179854769355395973293272198066373861502024874204383527723214065371875349637827964703527135544930471476832379784956722496245590871134802233559538874205790067805932872714502760941729443358359617201984193192257405663584489386173889610890050489869490765872868964564372384644889471048083344290052331208125194041714117080765797870320571196225914495263670654883020389452293634623585854358222126430627289418625522075659868061308922746557086414064887703054341061798044525330055737167324270910448352731023219346280901096784985224966724887322312879933197146493769250414684471386854338618775656780540175744720356936480782789956091135405597362637999540593827478444929929358415843898240829857326472725836117321515319804871997498844180725757676878086608060196320324259532661897422443542432650398626472620435138641300822168643042596626351870804599538848068786756489664325803965605499895989312688103321381304142380554415011988050077833287484818757496519897876364131880405183748253046872865389715044431431100158234522569428034977548523393553457028412809516616907361694001764373880634422370188403600413850146602833591766841458788595135206519499647420073508702266129717581537997867141612370609834807269870761097822146888538500813901826658987926395120302000862780310003144381482351821039548895667475345637756200008523566360056320256635308196365464396424094352125626103965375410820477968201554840350934761580033792516949024336048207402647673073656787452641256575238272861574080823364246504181750661825678975037895907419158593997700646112015416351185401474067172107776216656654089796633145456683651820443772916360354382875286370568225315886712168975235834254910792968503647972152203376239881975140339157897239467707061800089633721021940413427242425535207679296181557655674097773580800873611584122212603714456347089190303368644187876881443103296825725781164986716749678153319979767457206120785317707072598481800544286827044391216715022491160501601567160695482022802342038721386173602739143651549000123357344520422664623004249599072872064728576576879675169506815122938869219247742285157113368776152872823150665898942698974056635920530659429918015066624478266447221642447702896406171900684668157777142073978828755157246700268294423538881887236256584596812110160392973482935784686855651328784501889002588884058113943647686855816887582224275491343984108298326723090042103517278406968015201554042411390228251670356010493768550909159530633492765423145711189530441939966396230275903574866920312460095892482496550370750850147027242083491850919336634006419418218445554616259789404629931506199225439660470882749490856369997125222675805160531802432741947565111699188533252883636868138315754018965987302708761763288650351274645321232683742828542339361679661084386849250164907365265082364317138550020689567296977428612301490966438552283961767575027260196279992274799094479897560069173986376171042861115639588106412570838302357864919482987505985028206768441210493238215243860525921539993657295343042961644528246274071965142021858446131303897552483747023606558345416557665062604138977549400444978838946205260734681650014127926439778346729392178034861034066671621435246574267915756375489603511123642526373291280631966186125463937396248817803212553065255981627811469327232917900807319243955089179964385977142639417244748327366290228147433277627880099930274786518325243663405285355510875079257016381633676560322248359522605585685870343530271949127737509205446097722784612431711255953590330969978780425092263684114437107839089723023773627351419839751838118282467851985977817121458697339640931685822606553349723297103120888835872958339692913657552865056777333930015410389914511588233133494654116095029300293581604594725029042254343670278175545363437894800909379851711655155112248501692658315052541710657126978708114183789858995035038418480929621641040906011527923993114055672076798215571083795225673490265228600250742978814036872078763208856406701939156895209026954410965882518036145296872668398830844575396288072951405121264542226078426840370090041881306237150743624624707261337172154633621938797404116128583681652983598679263583846342357992251009821687486292415850578628521292892707461904202597415825772340938758523820802462515687693012242599452192182455713011005385645453590683929817470821145464875425050865480609022370752452187297377302952957184620172501804714592375820545509476273577993634493403243698587419800369114629780526120127460121539155040799596504217791710158024031281911023294104465997959570374824488437048095379731494451338087275347769296329339128694100951097130061029941923407028723773105271358611548314190274473743858012323137758751384414791913089766768762334551071387009285655906534406754899173953669049971815909418691401771356451370263919831212548806624713984422765319970572675242017334745855832954713739831992057258789918817809549506166408686454693419350486337805003784843309508271628600016602792966433031090068346008957995192253597838683436419315054764810947213881424470825351468992913599496660701818929289151832077721531378893264728521115287305131719047695200238263465010434222839045173106368173597487474088427029316390568015383309623714628238976983558561815639131023540657363185342905129689275664436893599680127159334818454824715135290741902394105902731730866549778446245386811105682381500716615018467197135446715529999888254045633251317977080668758238565774411890221332213030059135089566579422699756146793927913005152634735404023612136661933620419211589202936057321961670447276057748115160598486729677416361457173766249778275168287600370116899551244747701674549453286076054606167555798879222457880974866772876368266043931285203121389442444784640922800092524617575858157595890344245630770512549540308954905185545729469866071532290919900977832813053350183042978140943762702099011234894139625649833584371940787369231051811058210118308112509013687565494279510341964206497300750318013840639508080437921899448680327279231309488907752608490957349085185237242115687948691155885556571190623228427997196033644555229976494843646666750912146780943641809414260309047984174682106402335736886808817999927671679171156458434512896598404027174381144917942356668194511420882422895032781661182372453712539605675290679624843009029538932209013516491266768562652938711966512757852420105163496384239409383379414286587259924734188649033479368619980775185456622022762534459448539219876452991038965299713024779427013793813203580986917378680693072475312320322286827130237967775825146972071459572275268275138177521090433332410063947702314474286379938673319669604949993411652937476743262729962864818184506761001922621435520580994242329961510080223769231841710366123014688985926182317622877566710231491210124045369526765324773222641661791710459997689948216516374799635464506912448173481399630703609787585323679867281061085482691836153790222003038004136231417806067014614553491443806248835546781959969137111674129169561582895812612713817309767473093698133937626002364065641188794644683024544346146009564598118725326472945880271874900447934255144058434092216117455110990049132874030710982436476212552087206492466919313858525084919228321457428744454406748339451106001863636303560117684296074602538650846996781116967905468320354085422358586121501682368991583556769024570840234328787512249443726471772333192629191110078797408719881190516548302161453371079156996635894718651070842548273592798786854879334470430540376255585050087277002853160418653539193465079199531373294025012998836359151840332887815516092604763484053048690410224010785368107538010651436726576650157819093879002841511657047359915114063228619954100529068660792588220808041722659077864954623111938087996624045527139396356141955491425447769089656934412227187508841853929066313144295601088930175074546683672022323524324496458893819336307645579605001492800412947279317803860475042409861523521740506568510965410910110871594689431261886048944889663652292615313180444487594314088660092653306635887237986066547837493296029750153474719375113116087233516779068902353335611755257099714939523365508055722052202260720538283268996962601524543763287168083755391566717976326538269079339101104268470139099958764535213655783320509738898534389522682829781477038471223386390700390761913529920346878402674276212398760698116140774890797918424837394472116970034556300377803546811078732212663966587050169250138006925919374077039960632642751524224520679692602707825682299771344309983406585187295701608153376737030024287328616423612045951027475768968903629190750880065906768380126427664969516206940756614125582952445143798518524472040954628077991526719394002518511360581147716177152304637692588366398619403242495673634757554320609041434602258449616679137536699867475098765894609606111903413832423790501248227549144668651497300789548614342452267058364456729786606155813383792839694238424703809672838720298884191056598806441067275844545698602767901306672696456052124342253066858288652700232864314972226309087614412810722057084069497303167140907997662667586960390681372892011422243034813253576009059654950643864948812759964112919844499176187751281985121851988538187829324008104124503436669202021485362087211644735083923252687194952591736687169531706463762815498872565005693356358812795668837175567248998114034495068881823965637580074837967225516207657937239498859254552658309540323764810911685011761185404208013997870559211301384512033097619056924597489229188502149428583731351286793272250221275394294570268674963938732106881402644900042227923468934051613534687458820729445671087189794987786909125900975058528470346892684755201974237035505785484512006979419386280016173625501688133754129100763510991540906386974153629073255470780487957476292823483204005626884309385320933648837195372074053881655739156992635591492221221205714929236750359424986492677886865818405028816806476573684977128943807461136202470014409463793268419789466051278639799211703831028820853694399903616029021425607784608821940226086678087662657491145372367782021761199363955658331258068691598705272393658071619248437122659596955935459767171475960875391771081408719824289395388965041722624689010132139006510568541257669226964214837395647714656698083563887285658148849125983406063368239579316143794709526743367427523690513559859263108768733463285699801397460567924959099603037773257697628099212995698275576275868468868785872430147941794223514700564376335684494918857501588904151939858138090343315937722841045028922747962069487497289170073410547930922886005013171579284963873579295977760835927321698305711606877932070027953399751439857623060219090394721971252172049400901995892673589695121033014970831619672289349291307665131078901535638307952711698035825127270973752708703142624310310859922362562473819484622885553762032257000485367691804230855311100134011713091365055575921825648272328723866340454479333098080448508307018875937218969451700528166546537812000422637393500314043117766015499043589242675645274635194002491945619721904284968997598266309642301934881646733646665176276248150348993454387296202988233940768701361604362168208061683753690121931948937628880206376452000101797947653373471615353656980570104905530982462396683262778672490063027786165076569561569131031820318635802895422689661734603076958044909419367321667733345043989830616676892245689524148657527659373740197724637217329900484276820772578940453073077896113095949880517628642506258749543760690578891162519255967427726942059248527591858102002056043870638924245080323834056860461496091068637623709413860978735214354422954031931173171722710797354027007781512505946603563680310310377853267763551807288705566433977530135203380135165366160665091147095774099757764690116580787603590537784803526519528394167160403355716271707885231810285614678729261352826662384336837134508367175595546455295060063871426915786608268495277859810682056160557148699244903945209703192088230523761048081181085932201150260977559440409000147915910696996221206979215604096703885599961864227984146701444766902785760037265503998574609853878164180542499415686391957212766168296967708874897332981404005118203691623681033356433316764892140264870241997946638783844219010910263489870438045475995942886317735415675288306578368252323979255728304499575326465604132584400445595667403201424441736579646124368622865578936739245674733318245307831215664425234132398305307954328568780546860507452173602754737718251380521149377013913874324475518304633956810799348543795925276107261474411779881531830297684468294916315611184681819970960252587080119654949993718067887120038515692236074144421486830686191584790310095097728138324092694594299699712719254168380182257942704154950477132316468211190614915572334726763099308059866337549563264551532045170303557912553625496554419843989870600852686685317501568886336520609207624323075576447632813512875001035731060876489411288003401080798838949734123169743958626878230025940730775920343709472576162140275812662541216618097680380617989512313885826234146291826775692999075930041498767010607046737376795732547893046588879866789556101294645653182530669436059508457391246615309248038655083367841663919583232043760040550553821595814987060448870923026326219540842943930051335937350205216940938445241878417810318826059172235545117332896357694989935212388366976378275470376434551097369523702415719114652221497771358270368827478914187716135693307227634764270727021444961992201533301661750867482327248896089266049070277567365897852720107994859186452214319689313730423368613277393075250473984579256184084518346032146418276200850763772313279126672613298942045309974428011090049452493681315311941483287609210073966363283376821198590845076819225218030768057613461486911288292132433995362530098519929427379880125708537639467559838791773940195347130429728101647183778529557701231778157420002705255163518787887719880032912474995491876798910552316653809889243886392383750669239596875056777278297813186403607757054024147909980732561109932704300511576676737552393690477117249261789079929260185170970328413170598198529959987382893523119540670232173469397977601586249142112005468365810676639925540314915676447273465604198695023819899711434186831134676111712151647365642741320631060169887598797768153836719667938242785110045721203807443208568467637559314467109679161199687355432234711041023171236052833145981624451859950230695118206544167401622153991460916888672187336507209657611922704679332798877569699560495589429718970239606449703482318524337238913970990139508518298778864115239912824351708798135580746061816368574362854744616412440972985729623964770004276042800848787110367908732038519517815045620288930749568545179670594278623205624765042069334208993807303895340313717492812805684997612882362815860872128785353962555292399426708262920094789099286738454828752036889384747099754747708026346493875767197260740603270841978816733729696161158280181136294914859391094058948272295730627484808174823454393039164593603078694801737162142891636033080509594100580771245850707028021402280233414728340892441786517509480902956299035257150382371150501674758089604631397073733433733553780464850156839045786968598150967089941223685614083617100945308596209103016186108063386538679776678287871495185572801878635696507387256873014626390589816633535086007726722495473054078612177188685716918893707064048513998997854017102027887580194316493752550480351390145665593872945845662964396309201681427895095391199989930066867955468382719986668257987745661189250780646732910483516757148107374863677647069556981569175756078089789238662566022014990935396874764841428015428532148932388940789709766767729975639227780541905187310174797307752015785353485921764014986599254470113900912048327885515817250691457837323701644424532679302998589950436099622184449834480966475229538908547881023441751378030252463930412171159877593329954222522748833963842343562673387111252301589194191990281257427081642125558268348907749779930000316704031806133467968256814633072508956951252152149271976283677020187492843929927147050272932041829066875503717830704559376242536464932693152648137254554226047246326976995450357056054762949120802556467857756747166260757522466478109251928407085419667090317285729302294060376400794436828259980706056597181075730373220225668990095893095985053842375001152430828685042394685320245133468545194389223548547738561832401819043679090813261164162613219601731280842033883098982722807320255762931287122329348655099217289834988053180633549503107578847355808433026261317278032914003281601150647846851343598416140232271688406610458946686917159726147850072569402622775447082695756771719426453108733440371576774219314689974983857586498278347683364904572424088620029810960236237120503913307934006145630521572416228611270794677673395652640670540119491606057777578222335261781378121493640112447415953662988290479152160002419917958826993389266174380745803156375191050000978503612835001120550553127399849569430375263980036641143911297628340131005614352699372992761402883202162929853460426707416713112563410981592032367624201112888839464961328817225824433056461629416726657989909961943641778835080363834427817814280546120241156877763208200168202708772450274667365408024721881737138640599427712488378165079653675312208737812156709718313842796597451407674668987335030124371425402396648146245067583303170430374926647393311081918703617224285808786749341070871923971964242321602501014154147124781728765177200444835814473057953803450693325896879338206665844896001136920567769386005627987878302917461634836027773069099883939702539014144861581784074001259983895855774052254074554825119818327379981569191167708177551885480509188221370229937003654669404726296270763163197372793790351620373207064490841012978663094141622446196676360489669817746770635418409303868291560587177175521477586387547430645858904727546162998942118405735868469772508818198238769372036582497524358811346615016337314205659093803810999020900188848167686977756031773123129496191867789789580416169118810836516349437375265015422565271038748682793827828740406591254563004941449478285317905903735227263938042967248758471521130527073102315641055772893227135260721074381524999180198410967143271653527224412732785985287845622525931955736573707870990556522863719304495079303667950249402116886564776508346245058999298034429683131994207279268335818736993306357850953659801212835652778707115536909073557545935307748128084796808727112358268712599988127044130207896260490455421231902522789069878881185465793506113747123244542976801680680660017550756833174151366701658578979211492405472519044065010498933992133312604436198468040296681910486180117909021662451567304901257502687184854197613242385224556964126029512568372677499870629287329273047071569332987631735618529043472354492030753959962585259409961975189837204777285938086664354542940010663615443249012607689186157184003816892740363551809925028871915235999793263612944607607910845053895346849013665838904159718355035066650900754108112117645399718230755460038772635561909014107620419484471911149851454922885147719647635207226426202711863063941897773527238985705404153253249213465046198894989726197717999372610800655559312110212084577219302339961468311535978306533382060006216649659581637128790499790873796394775245850129904148463671883687460102859063923408626940214520014747469980176863292625610925438384587654516947643030299160530442521981090731834088707019142213511381720956812364636808858186683757445256192834195442864325557783825574764237900690193964693676476615153348825378494901701770417076687376860243600398963827657824556491987100319880351106749446340564075166412787765472853533891358519616768349173975098775932420859231661195312228479327153132700823396309267686868027530421144251516121280367354183575108949820080419232435893886126691095953288349666965702825873347451479980151945270792599630198109811185684536129139055938726546823879029377790499506552512692015550012582100943909342218077140389688021578291968114420359132859886080774795998146426244662063358395554234190776443413307355340503063653311208501287672610391375649493637721698182359274255547020657474091643712702290217913903327749422894706045605575856513125684507251487689695554083931812505735173735039533093368618728685270191224497616621100441624148432554055573759291682147455473467741888588865021821211803607196990723365933845037721726534933853620574586687634961861827909078751800199051267881095633335655027597226841130680157521025333922516414257834604150654792439771988845823528278262785526538467565278951070618465242592303422741115571555676357884852913581246900643561936471590117364112768657048452381645447945759104791080120955153359016969547354375947630274274223066179562215442962659715507092280774548200292587013991064529400930416102581324888389732147874833947749197675085885924168715534953005950926780463082599103406656760931077334500185104644308513446038475786983619536971358141682684270391200946959596997387382378555317096009713541893992792039630167911486605630777212786719482778113183636656213059128877814472627982561809845085507152900464116669172339058779864797662869011640939589334390776918530503177856839526320028710144137277099989673882526957694397590429983958630556881809132215156276140408514486427903212474440734714698177470727917313271161584403598685104490650164837592013876470994307008550573783743899638719971144233395061763042722498427437887563031497564312625796042411118323284339590161558303711280364845595491410455064204510164673181448331518301160476245007371918507054600392332959110575128571394210698832638864307358444985122989244788192363647741868034033409636080049960270583643715650272281975589822135711608548972164397873564207355246947926597850814171389505108904063638769732415706601136773891237983335335522076731070782397432867942452162330227295222564641964641100689095603825955516519761803757549208961642850478721992232893579000400600681516627628984798594503920633204415186343396215067737579037065979860721391284117605372553375581846567056321130803755321592397570657349259619929215233597682388424757200026620950940007151727376634006233863923635092299397584111544932135117350419229836649958835672014205435892185267822093529433221109197402167281600833074417254606507451653909644982012838432226785030930752722674933759720436324032339247392332892589006664526073455087186253585239814726079494459143791372564991366473951766315039304828206034556698444666603607240795871509314424835927416367120428947121021861525050733718951860974787832922624129802109447287515581380274976220792096806579757007579758469151164316312864604328706347048334125359634297343796432468628190695826356469213357236644622786906269303850574870409700395879837216502966456365859574971084270797157545365795581533551114774727726996105455292493864223534159404533319906064298271554277299820467625548951751402299796502670495412437773354324510798173954515144530090295459510487072849282109100498034754098046414749839465357672803520132674626065928317058699811506034521984249611024258212332495825727114668015306709227791630770756067004207597850035874536753967432439677282094935548069876856061458356986371956809477168521041138324730956439501795857130746890751322758399885162965899866824247902467636856234547106833860260037776460802584365638440729399002374796370723391850504001495514418073293906829223272831553834447182791686588068031105219400472394337393662738231749782710650085522229213911873969924562534430580543342942811479513538102188993348245017766836656868785747581005673849599773571996494082384816441875195578960284994962443215725795771021383064208743863424706783335131605013834608133801621198957780158379505766073997849680716001215812964544325851901343142629207815710468940340807934185172226334122798311098008647724660939220435492971616805929340496756595894946728741250163546389540843484702605607009839710471009711176552130409208058097480235274148224240920470825938543916844942736244690631212483954502066943373021767441462001227587650827771972159539920915053449451179241691031139731227556313718609968979851097953221478331440899065782780912635701886110345927442309612781215105146967776359512255222886419010336145130128450469624423828616803017431687078242921388895721244149255711711707967155120896750653034627086163941143888941581915576708802536299135291245240728122994217283631081208684748381965970843675584234979137641809627674319572193134827479106928625337297964070989417343950069916878485116980814012742207996326963876541460692691277177937052343047870297750077685855954946564093699677784953995288630723521232722403562822990961789062190616161916584764510093746936030719634825187354706708231865880953391245795107418617905123281563005546125578561577248209481757931669691859323500792830778398368977920480807135066970299468309805108818780759660133642096080335092737730389943994761181238243938188223798247324020358736903591996824661888336643913179530038357658144878179813462685250415589804560762774655613701549593761526860284720157073470186485893114519258528775762948469363141963746329674943727067347633375804995826000048936280853256012511934143584165745738014989083925520189576461205635035119262473671907633164490293727507253296433589316601852955254873165758370638352939327304240772469016594685714659632914472819567269020980364763895305696987312549157479990632436787674742484402855011424635533684224171654403224075827308204316512869716508226488346162588403017822725180482634239465037712074390896256932260999307395788346675534436963712231749543072549321707660716804152475524678054763286406499997990325785037153026292538022812083928854821515929041814949830910151443564820877945526055436881928430389698302528737099950494316379500333460498192485388192254655154339998586371258200398790756864317061334891095656597113181309024126958968974795892326777053104457472127520127010574641893825138110912872908051384726574845339501911230004015967697827713537884959258299132593766850753434164492242269177567459315192120965128169560934354454647101394205971156070948261885555415308987993600792122972867388517488950328467649345144132110605963081600356880288875232003420245460258091558575187454741974049193611881272003760242215031362728225139452227850464431144153805871934001726305507001355930226967042654517190734303597583400111542343451361863678003196580736018114453505797948377855313728041531327472524327530159134516874817227597108905475103629539501889414072413253280523417932669462125404180701941066929146279608653220019613540602503955834566601340369682123195103782036716596321756260686430214867405054743522631117029822294597817538131086286303412708685510032472456766234425096910951853887605566242172358681666153827775298194131480926211818763402203484178093496534637103032955965768885073383655480598540874963241621590242591534496229078432730745880645503944938239364814562417435568152470866653670250550519303219894920877954030761040316413681008329321914014137211249553146881964234596989002499684072024188726828873714170994675667634603733170424357993788493876930328453653707098535656212932124651486458578398927039674815944642896794573103217973902177887448345169951621430676345659659035294546727413237769448980709730409605830970204975958333581764373285158801201591802545570326234383198413918633635113615018245499113109355973223069931631947396769690877792937218705137750956061877415186992992867083054345953978261333208004378574298625210228137574468546966957195331841293909341249207506680110318697301036798463567066375826273945058811480761956066449235079012275918133039050314371017403941132460414382682472686799869507794490900246713138237272721162026991788386358029099705287859929240332924492547319345525774770654920527514454229659048732664030251736281067147452516097369070087201921435884884481275351498326125917512451291588216884549394455091165281274695252620916435464381716542629731213946068480668501489527839846941010578284634704067018144280390172085012298642843655296979417183369453856428902349350465395105129985466016332761294628661850378143274340376271161657981246232079185139811564973094931635462479221194742529745930595109543730749101367630459218150656631418116178443227035829205743788523472986986126907757840035225789352215230575268461211934683102501544719677165031839468340343756548086102324648534770865996150048469885950388360640083849591167956769651027169682057083982488949331077557141294740840058668798904065087205885655893182830366660163406799329504275065770307522179534586795291339008116027862559665383434166676172456357302340444368506763569764202369367671728199079281568917241206901531368300581668035455293869712451458018516402283114371651201951762377585587941668777608578860626773095562401875058442970002185284589532556440262394283559765902401835323016641555461896408605232224373743306499606137785988764926109712642055067421660152956145252127832450672351635326838284259524448269131662175805941526297894752351531375967132506302154750633201370638551327070659553775982554808885229098930327386157076338559779032386721377505106847743671917371496860355554011820815722005478968504860335909721063097600503730392526553671756870399196203413907742111056300659271830431547629250385065962405265104616102278708960570736103488600575586396339194625474656320963448351233439033216279817782679405539771505800941101987627239327465685354010635661322277788939042673571800711066298615494171241363931571164089780005913198047648366675375871266987094055452175155966434407229504192903780581155636383591151723208227947130053808741316299222011981776061380915716444255510553348754184861845812986831692497547018239362644106345833622942148092032286880577399599600384372699046457655993018803264469919875010742782232616457759951351631144591019534381803168416993319088706305783411764940915292622399142541556276580338558984732982314401763853633413096718931187838498411806828812388618560067839809230782365698468776905240198046414992975763718500478152315745895782786850720939851956457043346698976553483188787350198825771810306437078010768251289867217901483711890244877196934220421954218708973094842032519592040945308397126578557617940941508622206891674475833812248461777488021897926902724623500749431653728843390712288910133776345503987922960605197350624561951901244606670027756280923016259437216193409624640243150588086945670007053967377611650315083896940929481881201140550212650765706674819117367492206403843425113813307819837975978673614204186023936119606891476446112946910476466065864147084530847575299640916290108448892332929042857459012133132400528241405042021418556278532794986066841815257119407722767332884369918333025706631076784852863463825680959707188387816038619805606557154255347381788367608253919353685613769051384981723650285114503309141376741694431778045028228009889949804945754360396259974049020734791655060780007420112984421432640483748459885832212301150642284821442718844008188170165302195004517341693240288350541541366290686446253652942039590435209993672552278787466990727057832741416539356730473372627394775275738075598008401899566853366813997744982884849117313699397869432554013347854417812838100504292418058122042225822286641749917285901624498322444537055845929071937402586520849655616869106973319303443180721830200581359934599137473700802688738559229520323419952619864505742657796274910426138953007460601797782503979467748918573391358608511552910007310849939663424437153356304750840220326771902387273855416535553635644734112477618391878759316582652676278199227136626933450275634526072407750277682935454275038146512325601129176282020248205649784495002277060681274327473787497326328033665718703041671100522516183942219899431474252570967021809250548861851137548289513550823648552312800467552578170622978935517831982897016268551283446954399833245644088455459426675689453791243892853702319596187430059711161267169168650763496313727431685417102048439762304657919629337560439333393853717315493554527653883891205594623582474937203494056430302182804426296207460580329070410188791110022827487894166991377618799122913305494637119701819959166809514469304151334249647865124952804661825095188000005312787781144094744994416725013257542411796182876029291051708826190582031088856763542762592138803194410041975013876588173147641852638366488908717477051175728182498845740261791765806815340860870540324340587644357602914381067983645324435209549011831972616347814191106743848957201423259655085055686057503594155718468064560189517526296998487264578501423933777165010003258276514944107436464479215555256428966820022303236352041122643030624391662485034014399620605049201775162883068401097706615365526633074114401988804288980458268607498385112199623283764673126556277892530912891094507180664612985695847378979290172121805307877578979701559629058899669894111471663274884556173898838708903963456193273945935052919433222431930850343465916547601005016705404876461083408890297908757373234362411992416904936018124209387402674696662400981331938049169612412964171269064938077519958490772008225518222970488555451928746203547033177769806932762657117186066523641432367342577881110986473381702480276985842602660973976804562860251203536730069192145466972108613071051276483126727169872690841080811244815268297982618614587899470402001413878512530386479381494879866151868901698457369429742757991909760672727524893186280473991682516772601423191796548989197998926487841713508856655692434107299702771876992130317919600761138027355277285003049157356258602775657466448681693438425947107255169709354442798521047196971743653138996841680755737942557092695577479532690640088134275287632371756420453083363612553276655229315102198372192392474849464261133951854152240304431313767508925622309107020432157839264968028730925730460141394006953877731106507731717310061377916399448547149873305175027663224972942084784592427497807142881428459814363387366810293021910813635029922424457039610477972144641963498488355412680050537380967380046092786804567833949510343570714678552462967538986294849066138850745940006834883892233772028262148948735874454131867640519490722335377658943148185286846673910737058068061068089773354672944460793778171001547925999375149076808934949478181500156268415726251477607028160381935016434168710696346058791389038617083611312003207990181035537167719174624646723097637277635165712862318631903139855444197539245422113045876756164756016628925762016467080471740624526865989242202969594870966654328810681542397355649713811130624690970802350270159007949447938093859338898484949432737389146286522212378238450431342428337568081404872544242973045142739071114765370022327714489383034258200473720121314147363694514968140303432618496676795697575974873915576756794910365178890928703853011172319971605462796471604093509400673115087976792139417846103532577768891057863450614090715287523777952793173336943701105329668650073655995007978562038382760738920532874880059800871281252627158092745694078359589175419099623216839215593362547460489901089796394640196052605932998978233879990386410705713962587934229582182600047717665740673357389137272130876965831928383301079437706752583250027007575100255357475687198072800168854812703147315282724543522375753518082415597121154091874772467143461778792203880022753727283869987662376362557438437715607386366675509322584960654999170411095897546341625734726105609356396848557884828703757239964238262336346023608291920659590020595776710860790414983228845301166106951317429024481458904141276784319136621126091289447403781979694854050179413920329378560010807958379909975564833744641359312068598526509824192319257670166476843754385319086933764247982587332961972031203526594740443963962363767261661032157989741427452941805417096749401352561671382951792367104890732288996255744226658757291857282395129184231133555800148426379615156952545505128894310821968039857883636305224991400184856955660538393938256408178601533042366953060405971201739111483719313782631020427964028916409086826261294059263616030653441946126032626102906324443093117865909184215623434828534601561232655735260158321615258751214051827349672352141449946322290552640125122601808720701862186758836976639014669301628925196198937186992835805581336361267690578069953875429404250010620155487969336992674348700378817975132296383705199276721515546369772333088655299982189117281271006832330409179046192368993337218132383217664099422198001034559914124472540218151848628969831627531501457404018198520913675410442578277259096892257524389206620291734198414386176552344022668906871154647201246000990118633523448592556459757145778407247638964155205657251855422588566879046611684086756374994278951890583358526634919823444385045299675568056778102237406884222839154397521779443999586088952011293513075309339922401445070198040123772402183055357175232374687646990661430403525192078991732479888909117086929432852617482713936453957982679912982882670694563344715867143903860987726774889118805490445455667743298708612455411101583856982331113504053253982581411595387802810715760128345814160956340635961334760002960414205080464255384346676663950290958583721395191581104720596424124400866965191592788320516171766923823838363790569296080502002085515067698737106536182816338032262172677596336977225580065168587585231823747258438137427203033982741846170805277648581028669921168424209017969676072025769536793471632580672279833454114389522178965594994579948443329175885742310212740691559660537478567397444945421917001815791190511569205993939224059408892298880338137722871090005505809023430707412505479740722580258403106904078242803986765660319754184670173330622795260761203697840497848717926568700464871353539402428666860748726764336944290670871070237364620736718929680647448689364645127327681156023604796957170999076968989279083521181664838334239886763839852132021059807392164531634815149275435749878626623137352349870120753407408866697895014045716516473897022883075211733702067217742263260922589137546868170134993761270988333696870798486443723260813304519795619330850496781987576907183447400149920675225193685929138754121839324879369494261255827242946388896212413108281323913061031927542390767435809958870439733492542342243281979220594906746167944007537456499863652147389136880837449453524117192905287174461269299459249066956503653033468011395913858120794049578553097929172349458835933239519917329632597018355090762912500367324900461330792449049269737207216284132671632398827376044555477788478884785225142807375422311542210609726606796836778132705451529573269465396146464287385200154166567829814916518269222066116441712009309073595229618344034368837024704388051434409673048149127639097001967009316975299972908167753520930105469119686505855962138374964139762142553311801177777722535179254996677962248314562481071751993220032184563146425808577790657584641144760517607935158900806891759658260753627701894185003854435640925566324984648923228364921788685831815312566050597004761522365409133277001255081545481655888065834970630139305922420141267951584783822962635314230123774861889331304484634611561043434700047153659625588653297650868377970085022720815992087117954340502351947718380108493195504237828596537039158961582199872612354887668992850786170246249888447772806670889174612526292584620901428958503061434098368509151521702585985013157913333204757664657855574145870038577696955044570368717661086736640942416667011733240920711960943849240917703879487909705866509816666144301438445468232176481887855176463344209131624555244322911554007266187813327993504028399625985917419962789234528215024346351343307192011295423377145221914791864047383321305993351356870571672933637731588266779968169976731229893293819436613755769595384741662982903225278436428181590508421720389587933993216559215473418267799143044491664379113412722129016415812362085169077784257639452440295899767629355835819383780653826668963176556177929759892612089373404538910852604070977604540064746082081063895081007101330031507340942416927871420251155132393052905471362385283099591685891484379751180360130774201000216020630445326489847538031033874137652963733930670254831395789215477086566049063501893729222640988454670518763772220530458749137713971206883018087087192211109044230842253983747646344071963810746704770443224891718686330934173058207511763249906662223096968526529254783700792344452098656122472015683182342633553085892021128133441639199517043227560503378708816290615443021825596115500311327487810006868961329324966700574575997918173547939892611077024630184427485567157485448199834149312854393801359784668508808022379344935996337609628202749513105467877406692045114122762578264427115278101588085040412075470572501788484172718385390321204345028528236820216012492950931774341949394069038657865987832663183926540638135058991956338573503988684537000229832974512084096505599981187211060671846857432676432953114694154615696119901198932354925839546047992912732789334054650945099001181084775261485541294180175912640500242419816490623448903434478485169010478109382089366140627982254773165954049463527914456928735672268181803339501395536975049130979898166482314891597875812599647512921955147548075984581543963912437027796135455684916936271474277303951071280507731023401252656685751352858223092752128363292075241648566541547575953050414337417947219823632091462384547345976474804115871676274508330887184751935372707432445111823110285496235346920468145603067901677092960032251594577555332554048451631902561084795303697403646723429573262014985367314034560705380784919183982877623535550765961427901413956983562051487555777588500734452452801364711226178240662155920765252630654891858986741934771624842071220993119557526286031934181449776082647615579248249944793693126814782242139804809974883810687610754451153125496910051937906726463494000198396193922515136756572504444846279447200395290775957136907952420345587592871478708078340070893491222708187083005004226047336953291615301023028894219827121962507188155654542019400734203301795401013359418056556367898167317211036038682114308540807490917750055460091216861627394575651603590229929076867625737188935968004538193530034993298704258521112667636322417162557213638282338536257919900203486802729343807640248185722195772530158615004381491083103407246534324988569192082696303212278770250884087454402535769014638629986200927733086624338290944056653612521093561415317171085048864163778039159235440433342531607860930944219827617076731918289599371072236934289348489925504396969335885596878496099311458182448556438239389795891751038060334587428315458941762278769041460513958908186925485280559831192295767017985120284943703515367652041055555629507840164600899484427896341821674622616333446906727300773108522214563196606308088115862545667555287768341062830346417283881171209184922215730817914983940138141404937683328372614103094698832810611889750411166686306093912989897398126143739139292835047437214425155553202480837426470224008472993142755465884099591420764088124256983019741805483748331381774059769495286232545622062436899525897701382760556798033494040133088607234344938115591576174826647125024905470879521249994865939909539092229349467003213857394368026645042534995702974388054635656619790751445386924838963986221059567778568816962328439116407700000332329351079944199809232901152440115560678599635138910586964683678006245981579334288747988691364287309851247038787860308751134508940301398107628265048309019955788004821138943029269987257840456943528946650231502641218300678322038578266001351610514772554966753994683589570370755636917142031320948834809535983497368509303156433299951992467442191056650964486970517040196800529522133326267096118091808912909494714682495538619213893194578176757585948801700314904122049132351085379860463603574773018198245406892880340605482082197025464869461198027160362787588807656470951399084309089335592085641712273432582565292850088984716399117205000347961498041157476547161710868292813642990580602651678363078847156713803638557977622827733591907700026646673361091857758653092048688819423021102148280121443495414366967349778144314623564287700007055106889718363226993210629087663595837796793611652275015268841960882943172861107920048933267987800050488245801477271062402583782416918028730026155231435140805476258930791253434217688972592614212203913772376061072025473689722180742387400859537373080363313184797582041482490145169602925266633816645390258673908931115879758379049596175211376975458420014222469557942110119466080622994615335077270168757455909634689636797618167394827271255840314173802858497132251265961916633021885865372296763970305160827293132027549655528013820740169082900313624948963726283607028570176088359780626235150188170199488030951805751717438590274330233577480753146856272411058217400549932757893513866934783403928613144520744120641083705455136192548287188416031144241651606117966091719431485253341674091322016815186395524094156997640581171796677693526690666338435869234724864858087907457852341602824419859755712230221914414942674592036247606368497076064498070723890623245130152211239950740397939026365686754635408329837764297915654409525059649465518368582681453896432593533349392948511052635880574594346661278263484353274097512055160396260607151821304503956473575871472858466768891075126231695821711389769233439365773003493449606396141913274260988158870729865091932999383508229364767253129758712937348289081692128433736136685038311766447780751384323744188588175148328946407306541572250239295285546607227382361522487110133927813746496045372228661904492087217637535875288318347226392098615661509958493229628118593329171033579740570034146468469484616531733986260479528092499656198475986035108861272438615275915461704895927718197466110962731344449238358164129838430826658350067189799982663455499118675570243553866950576565007431432843600738252609125977583568745456061007134820220436400858393069043852163784111730754479846668609578892377035622524618787204667005306093702596160813985856089824409289849638290884552147659199531059897580779851888555152063036933160866084714930600283645708354895493678729492549232824201578506474414283395218242987813064531843504254139879928431831064372710100771151222471579011040581355540417826461214332646256048750183025296523058091877703463604507214329182689347917792856723253460735449463314660799376861105836594272275174295634717194344794509553111574571072412177316948088480934883400122414183138961699485744042223070198161427843620809509098384147635778202193272044240376315035157820720601169245726176676525829778400239251651791397123017580028847690099436407451028324923436442135167732819071546416007679940903119561600617682976187984085893323206880981712268996231363137900530696704036034310537666015892970348725713708440668386313220464906941258100182321953846296672694374496533194064259665825756044927807012981329855905686831969048808408746765551596748182666031375309473642240155067919207944817669092931697312797816606077280088887373017115691176060053236342947367350759455370596138041578249540772938544276183412920959576798258092060059723987113135293989066425887334701327733865335119380837266465343650549860438628043286795613993574470513975488367167628557990278933254479671113296111140338590965004211630940127680382487854555626889382519009663402249953315763246686943431008736011868225641179163916035089378817023326513498873520382501711594930624399263720484245204344283281190896112297205101951113421501449977095961685502626379436971553550157856768225572140706584658129382973062605584208872590801746930665936909044124425726875553996087172078725265071880814077475121393776094530175854338373437707267708537173348789156939246987789978387257675142528238048549689409639175933374017155511689230922321957117584167803907649603619490233414656872808364774246475228066709195221023267934871180458452320615878481088814936538131669063939037949834502514137056535248518584555515246437601911094365027370639429273822080678836789735064489841611657426343762055690743835013943455518647629735589815108198163786877185574233200344966033556909159159968754359191278265562313526311310565831263370527687312847981982976866053457782404121269827966880437201312144612318102959502679569655596846997284429177452307871432368525814034420319337421417726630020937530940121716037420200666987919997319624049085736391533033315147849817155498644008466459082877722077557770510570634384028668021422826461807325189978777054406228894649464766829667515539733056719964948111684093729406351670949492883036532136822651724957231085416516713966038253360402266156929008560088931731007425500139176545401862917543379566830917169988832836597359441599787275378496710470966634399480351551466377393328276375233586838482962925210328496995657372484714024417790693452104310152573235073424733288511016885206977845594880701707014790664856900319158304784932515961299881891299631386557071574616315927229499050505937766977001149919659341644924528907050659142625104582569522495535143070541295986088748254226846386204884925908514859805692306470711304595787588087824047454131025723865452795701348628453279061364029786286469141801232910679795706328157157629053694865939655641043953734678618788777760361122219822975669020746594336483774498801900715352442214079269038446498739224790725767101312841720760360101722625057075268444205246721655590461183220805899081511680005922632481438831043042138315914808910537080422519466237545548365218063668792005426522732108345719145679819157116271819258299432133038750525878148664942310250195816763247604595606018440307871714001050755630663601842797750498196785504490104624874324548216454476255201907159800510634426151173299431727889266990260777544752499194139690815917231823228318422151051472545738529916394346017118738452550000733784356168039134883568375041606773065152619593278380826855019217666700708526957870901570985942672281815766750611552173109875408887088908022290253262348567444961453086159427634656725885562929971383790811683885874580576662339361292184853975735052155232976401649024106727182892555479352925549551504281326231025730765415581732594590801987561961999546279560524547351889315947674008011707571368472441745934511005429284168357589702056786402011540400123416401465352869898307717433254834111341750715070116178816577878144983200806993231561068681712117185750372434059876672698999301880430152233185879809297424051963239971461929098792527112075364010731294069398291079042022256849232102643968858974655593109974639812810152368955018444478578041113571264696640068013455552685946334347537292352143834970546515915448943477294534878172965678004562646416050135175153294045438264767701047649913251773481783092894642361652763988415167876845303109290978151677290283273866028170512824581569123093159040920822899688575671355485346091776750386964712196540561855233558643010693872142884990874910964023877236401657331394795744064759728163338403318271268235173576037865473538003285145310991183276483626077488226515073996247672872824890657472574391598258332642853235072427712608538644756019254241048337123636005306260412419817138418162771957491609970704438179445148118173091396132625260260550835304776378219864761259658421016972830694062608577450351366568998572783117450468602336051257954685263423610158035705123990323360220382841907118325679374445574622127200926357180483182142775189674701654395911037466721740210872455951853298924071031697521212606818781098415455305339629156051464745538783182377039529349804300050813579404186934697957545781725397516937808894577086452834990111608874429625717773948996387647391551622306294701098885194063322297882208729827152106975673051708043188804217303896927382107163739790122792664764864548102269520302184683169985669765090934909435836909107198178363932357587450706238819139724755683376900874392172013811409848436583314597826469424693695480718011052964841526315743358943729853190639704512361460612433204435776606061334433605773476777831175615791696711332304616654588257145075010716880873204120482542865742099466133229145911603553850592517700053629291163127922628190148794486947712414143651265683084803796739767662212226363223596229623951147575844228167193031916075804717132600581845747295081705895866656037853269821094827711050741378145278608567895822802201690262665733760254299175417853554370088496764594118257632853514677099747526460251792572575885691665344704715344519771809494524909309061064885656581802871306584749828440161118779129466666060461393195408711413372313149699061614903368691770002213344759081199589360680617835838301709384768180731981514221670613229048558053347112560664673021602134170427339449546752709071219755317004515731752093576713427999419760838140953359042098371127011840645014009601928309134733229190587048160080065494155609846462687549240804854523432899229405885670168823331418285402073680835510214016571817747502204196102822183344237788875608137431807667270827730040957635846734374231671966519102543800194285821841165872194439677667463070726463551763345114364972017169158248434228701884103813485434712418693574471583384488320670750555787372578108884915123969129509173553682973438692774898394987855753098170819638195390671368989125125105251881172831194512667674315431035907805777093058651240016935706499608292401373603289156528198822655212204041388255928840090083585473483695408228739821161551197166774523430274170398089915246024693058458141036307464657333898308949500201419680072634022881854668192118581712849128688303007230599140226016162304283321200109884083079317050092636551358273267716937406671948868511419480709333330484890959821223174488588840083302596654838297522830610195282206507301969914523462420871500945546062532885304799950352477121292441679707821762350139385404705548140648713612632477088239536549927626200445840416664416964345165853206116196999909448793502918845014785655395088020923790107390098474657791772638355776723880440100049603179961641279026489655190079469801936165642429326961040089693067149256724819806311882399284542087286684691470524699303650850262736045842323863466433490852616567345653429653296257552107067497294460135828714769107792422143904062657658163307924730231314842877863904934168234790415793052994407705999431280946447917857250355085462773601079789538402855031719919894688368276016704651321012931463421672526637219335693411418916880340313678738557645633760641627781350589854748931995537990046543015839949737964871529280798594666062547650979174457521102275481599686143766616631565167692116477603384701950604062426048120837691059494806977128558361255331096916973382137918009787912338326924992811820778670312678299303740603007472927323202998120745792231212072316388408157786274749854512588876549322474199585291507873700514634997982464108768967877443975581723926784638526143963883384786073830302435243113947693935211478244274203071461141730700664976973343881087886542522433251044964589018784464011941500444496232015477706028455103323741474975186598391860828109575261165094670479241145587361072328957913286588545221797189849646446320455586170809242218870763886502241100612617279011326839015617118947029920415951406768314952649498894091074598239715118307366075023606362048972290729101331354632615941341102260223051820932809826691648397243522070985481170420043920048369584095521304974668792965592032594396943281655401481111366982750818282129362087319692452272846770399612952582929709186932394465767345147189246136204054089673364810546648802947773000949620410540407186958203930644981267446194823392974299120103210747450781758412693100434733006699377540655464548692716364262100962620443484704114061494455404055860135434076078564091981230632051053158414253305184731594097153417059496535072487019795974880866187455424562825824109172608600672838129781411562617632482405667115469896368005144776194327251196037270589804168734614063979389892870429992447469981949211580468412572434876688996204422703285844725694870841014555206894320251740532189386146896518958202367348198546237729840400942799230479510316751041267704274404671998605938151106768584417413515011770012707130702712865391793064796408899383017011401569776725162282124098193420395955702229744267985065213290906523295023016524882250847862767012797003388151152137497438101605310753411775739522025241638939536818264917815070462332851798207620671057240687672635304348738289851944421720684149229748665627528134385639402179038717556652707943965275269770252965251102274591941494423786672102682258638978668832629549852083119881604568018277898619836143214772018201177370050553375057924442152551295328274680984012433384523971525798760910299666050165498787012641107626815084238038790353375057191832735398361091831290344333920445575967442004826727903700168061904867030649796957800993520648101653534216599035518181588204026666816256000508876602763805415137383682055927632571636712102750489652444375273236777326216736228257456781125444286795686332402862094663744058283762115506152209404183640481824852389814287926449028734865671036375833616649609558588980484899768555879459236473883614672249668116192946067989811819651529611674849993741406003560433638200891375285231746036327756752631388016200875340904514443326482214302594790771451032960017720417832176731023142233688548030661937540181373606276587421869438047056580209171923301084445580498171628092977879759591835672892669938320437073243603926918014169565943287871637323917217837383560643491701948277706922908403954635455861521093702661031529083567640978093671059464338129771462593922704705580481643387446129926119699105578666098107070981271017239260119180481458933208041536949773518570261255088973271914478722729209853551986992304328199784485859586194789038431391924984417477302115940758379297997524411273353229137311220093953656734978752060878896699605556508363036258070563023685149998789662415994896113740222614287654934025971047655543589844862584358475653534202081702837463377748561101199746265477388979704098002424474848920209619709154779443567796566413812285617325927862598263166494359064013475294309094328217734713817086182237306906514704381641013862103005009522374144197933659917279286030296673690811122944171607481185678135982139892359029030647595072415856455804306070492192698819052956975415775400971471878170094963966731889196708697872950485935450600570389786867455326695278413298841783346408015874675271600436100373030314114387935397371736672511709182925509600764033959835982953432948155895859065727811794057330075357379378258931480396584573721328254734243753463721135449295389327994219967195870575066010443761042895251105505365357456446711993232047241866210192116692008037010607879771953240814184405214712867967065489801711383483205442051080383821045590761479789755121043410981109097995384861283626397355771682445139210111759661784400516849768229324421932826094964460172848607135852294804046880042018822006192065562609483912838795314978956960295244234711886898473598944021011046199649944635003986647661706459538916847933904614175800414896086640816049973559639539864620510166051636727523030936910188332259448126644728332400440507159930254980999752412754562814577813691039055220783228376561644802155276848175674191929094244596398956549739758264419655901955803083899643868641244376543202047131290533794785594121409946847596331240645505255541178860432527340486481763511071580977144645684128572179996024443855911657333553468872017369478532377930954787677486379353820543190410591017410924690133816087602930543505918532529481889775945941452909996878975485959070436477759633451821403352294905489469433445747259825994227608821957070701142278129440931294026595206870285689240293579839802214031917690366081380687809792369284141471567664358862470163726087400525186406231725066273933917680019546071764227355169270738428729793142150767837090592843205998126993676339959020401518454200496847968764934589405356055883595744017938531116223867353159514749174828238239806861766992024826467210295467025968249597488223885131294943231943601593705978445849078642635934677656463379004670617563058855600229503083865342156330280302721993751787469059102215874281760483276933676143412097900052845009191302563434135643553538017243167602526005670921179738143751066018192933719067767419205449103996881546133949690414753036809165719717769809796692687019285439518806967685792087657336060165241675312062382019800120171790526317923653162784071279294451514028817393808856022645569593396270613556798194764654544398873975503821092812924625078111345671789624929864473865363530265080697033701651669584403897534694522650665242178739965019524231587869503432845511426374546019747766367730646650173922478487754233429584751594756664608545139571358705368231334289425615781860222494450474913804110395721941144884105284940866971667512389922615407616247081523646464881453915112351751157708878451696841240129970453284705685578495209741203387204351774760456302399102461987443680113612738106082573592761341112565989611796446413298314850474353812320353670346389837536217840416187090889977989128121186036124094929684250227571182809771893837824890764059689433974473347923942708097054598241883722953371893167573553398265523587967171540838454645668427998567568808770611426250236390811224020622256597104072497105332024536312598730540647546995968861436511084126598842115605924642606048144920244253351044464063401134911598615267104565809857640636345728032543189275633435417945941748075895445149509260978013548390547121257384355296186207301514436726939176487913388454999175188759378918578065415172223958532963771238817486255994900007842605387339994614091938062330870692708573187330708105153341448556000384695346425076888108272383142452835801747444815618273821854530325582206361992217614901616083327831540293473741718433141037186178265555953809742683818401430796381817128642912631877976746106409660550569697633426732151228525867713290587136591041541291273352600841443873875195550668688239440061191364646244741827422637580607813153777879537236122742758108197040605793160134123576721076027089594570394663340258625755270419611486447820774779368304238539684975806443426061372555682685732582623775500932534669094464836045573818106281623980613279279175434919972077587648845416333160429022002147389534940335153703422094927210619127516772998360341598129147820935495325870483914750692526309077225941057324437038960967664640725655525976180063833816640340344172486181250829280536385266281732639395136707602231632567951077324547441156007629896038454052271738627334210642052842193141618084773928391706795281786001796691765572778030613057173570221225173091433274339802199723899409687597964889447909656203532722742727208856043085534489053695124594646833421657048360731767406642116260579722034956057444343973816104243836526437312880695952363157877467686407385982948117340496701357521019235090688326653561358050900455231888368179485806760393403652367478874489469326178300322122293647043206567360595732722438693020672696205075252748600909053656184280660718133780241074269127335915286138237775219969148431292317662453516999588896318580501307276471647521625339993279978860767198051984885584660622414607502271326013584644936011773790111253287901204132375311995463462837700128611231005323894852092113398685472192144046242334958735283227724178613418789268815756005253212621190937033247035855423582211141062544566618667362770829779971234957841525754579335051597199949026738663940598844192976087967372937230598769370806265406242298411567732014318249644775105887197777765779205446707543677089165030169233784312675986644299576402491471982119286125379772351009874757753678158649653633672743193987289401219228583428229908683546068783619064505554422393382560493986522170979300134771047731362883421618398504594771112330740503383338410692375667229968484602726058994156002939762641310290249531003738106450013541099728451304871201199993387751644011735945182286688401077143853030040553040908952875112202449552886073079858428803684682710598735801341106397415281484834893366521051110344340748345531818336473771048952887006956177940937075110163139391892354763295265110443270187636535227436472369013496489868025297233143112921893696034636904233073337495374760230122762224280729531559734803874447659255088089022704910973193827624547329661739447061019562822237291768121945690425946671161816221401061343448378734056497567339700636509859615126394453316053843048423520698749307474754541297458957594932616393534534679732052695261953402185551856361017565197793230456389314829434685156107781149660352792308318489251892730249241080745104924305977414051710131129488184540371616328323400534726486602783992866342130021720673015703629507233396613096053034905787642758564125312073787225208852458028445076655784431065020359400626327980436006163613651077176422906259197454301202494560903282108887510011573387361203329317987906763779447344406466809321042182822931351593488297174971399355886113139986003872463606244426763838729845216973844840131484434186284967185330256710563778201596328020369305795192923470946877261418382776084138887695710982250198053872050711201961066078710461295722779367924022068143236094584198856228262682635030095163786132469521725524521520665350509272267592617959683716384245668455791968508097971343886192587664845914052446058867045484081455954855707844354150192838465218246556223814860334678674970784894680999503709026694420473834679416547363255891003315108310733373300328005997492685224332019966417602208239333443506645365030797840622691991073402039804769666964686422473041106126503469949731120571965056438951315022070027103817582717094118302847361297729279329594420304309177722192751594867299863792286789249264953840327482210097817145177970793488176105430309419789219422232311137729869590010110047384173048203754735970540401909925751254391744303337108986156750315891369752336642581327672931605111459527288098905142966080910346045537391732338119936934340620633872891388568327698676845198986559363655998666152770035019828674654619144190708634386067492308068687706286829791710919686456060442394545803663272107711623128910305095050482604023671033073393271119406688840286518221504700950123062353860863472438285441015829699096950540781569034655081351059487575726226242443331417563156622342584111118251040315361905241238094624110971145302962337277700005670478669420664057021584364913675649272795344430670693063175741327727238635912232917132848888171775600039667251029493276410530075281013519697664954494572395115717593691175696197787281143317008285613398644158248637528545663977887808388909115541565638874136130271327738566193623311703803416552370642675981893637826505280354988565630091094801490999510351573375655658126914977810475130047679190659777450085692503855361113225200813473873669440302376516103372859058146786151993538324743303400072635883549942422921622629111773705139457801287590950711424804759183327400153877709706557948851911715731088186827408177768789670990897179940194684974181726525170340104353605594610475196002255428049956922216167553667530330705632552544531146486148763636879562151926756335230041839589571116589558608293000869833701978139067077096411768478986351904797380127625703556859236248445620992503992735547638233339955471302055297146828962618286594490061722320833897903172944686781596632163070629852374516328493956630204946571529173336966652562220635451176802570284843772598721933125978751475294707202682669486844501153268699242310556587080880984512403735774878674356769414354635989047904492212943665210497692709862470983692039859453011028558346963264245609507416727544648982421984149963353354118189064105799878318466929359606787557826908651337903129842366996917408130905438066903511900535442501180959038435838137577051899299277681715071161648778258058214690157586662768454087881935505555119342802839936795980728361271169949741278765337710229951854600287245948217721170789398676411146507683521757438589565260178840046360829433715693118409436333274991161261000645655979593557514030009747769705529444657689939753287054464034693097853030976612010487036211466173171475720522666978211690251209732162152703929469661460647197449819113179355187148229383929996145278625198907396402630016833203450880001651271685444328464961051858861641416716975687272757222505963264028729513831857750171689829645840816126652423116870600082940716875489912498550593851058944604499508097629993339302716162895684034333951695048630658849706059986081987247579882987339336665167573157704133122330579553191598095068732658444902076496143320470452393007545486086939240722615480694379136343338921089566545183306327291660343412825090287905486252061937448769148073486059757415170696522523946046972011287235469659141259631874850647815467936971392399112672968683804230984030301027693136627795204537557223996041985493233175467240497888591902717182799246000243873336772784341950875336955504988302260038839970043637580630860494143126574746445845348271486439176958762732574629215274920042699038100289480306587325517428814215780097656229173932887425950903981444205385366681111563971744503567562133992433477094144031990519125571083946059480749995223232336557257655586802753655942495498011199999495725614201995920087591730725713158299531363815440646691425584025045146559883633704644774077129956451674482113439592091386916604521214824591168319929354335429406056066608844861466353717193854092612217284943197966803508519580462982825260266462184426929376262767479743897948960014567446196836510217569500069996434604768969743130945019671678445659301345331941632351387065293379452566412927537162920356590460215489343455742841462778878212830934958308009236045678848006062969739553084836782665318936691136344725221479774903019154751387783633086302660769449240169288680757071555909933933869282835307148748420581391956360755158887505300829491761742628956616908743277056518867414292533591180037489609766261914604304992928931336033973336352204349868365849828806907234594838544389545117557044019664444843069850231756519546692211643330479556805332755652986663659737265419455724731405557476890623141176949310838866658474570642551323924325725031074493471348957325835932736900452618097519940830390609085136312815635557049014422755504880413216112426151074180224675526521867247634277513075279513071222952223069568388829352614600630866859152059473312508890938801103454437290512453843186264705668471683252818751010133540760626886348000561817720213023030610353927562058727436375473951249776840921350727869139750955516831250873012844894289860051521781565327364752848797864309634838366816345489597880604176767255665829655947732621762528847600542185165878384184509887586750657651590802689074256845359422372075767676971614807460389239232544547755110487460199935489697930366403089285461304608021703020737279519040176461215354365883146096445266836505417120337487532062990361127515616913308720644299129041662073469338152416133508929597355519483142331168973365954482868469365472350906647504227074709048015265966495205436938469596952047068003601893131162658931139628800259264536201478872100726987927963612692791232789266788483540286678759630724001573845061271406255569144550039654259356830468015745142190760401139254051160351313089629574610029213490109120542115579940025019609093887659729363020589160830580236164083756628062336268978697456880455540945013806402826162983853580724007728719235826983909697467016509701090141108464789964774466802789028647624501707468464493018424980309086060095020393506785824376939751757190086184256514755496709308604963344730583026934971635644256862753035038322238613613705852810101894513196228707568706279575082923749927413438416130305042587067196237570660693550787334557468078068859149857640618226931392042879235457816439645922408898477940914562515069735218606690705663251849071627041916091889872100933859640396755783763858765195504522866163668279275699111398002136364646050566291604872432826137853239834654588498166169233162992631472367862763817140336146337357595757285431227214522530846825897076108286303463034464499794034976024046030890888252360461633163546475679105734261575220853138022684274005103942303033728682090952150032899278305933169116214868009957328083403446710188987277034435223963308124426023200639129279082521334178131421968484089616106766817886059727141035457123390345087419701775603502425033722525012687173736918299364314999612649967188043357116535611630688969464415211132062906643701202321184319630804908931301874539679098895670500770484174839093006742331004903930370669414993159676058884545691939097522399016085027518921644765223688944846136314493896131886530283222797429033828567402740621029893696883073914217557690327875454378953236918073703185943071729322738775738404874169147971591186880541814973606340493368034613875587120661684653500340427605793281836492101317109293316801033870218816992904670017884511699935937810934870390060562463930482877831214847308696100437800416137745573783184087131608397096571639256096839609401950608793275345749825282461034302386541276435125746202198430118170206415907052587159878686865825194010450201004694564873898342739563254344098229340555063673514818937407822367393889889389421482215021863070976923104662868453440601705858905018428804783277777739889537629704048521062711364384526006881519125328595235658611489450939553791068104749924725122961673985650193677852527103898750309184638492847761866882805724960313540174806949411330075458126068971593058350976508695380605507236697456080398266704281799944185905952636079119007459703865810213917678401438905054691522571111318798959495616606164098333416881238064523665512964553947496083095775788443261598661375953364477168572277633529108742308570994257878318953773898290904838781732340345405211210748679183601805835780719999106079979377736555414714883680602939282314986379030415813061239159044820670157206759340440967327348951038983915730380144311941500796602959907743898887505980481604210962689280632336803121318456117244838283648470112341961175890964855195126275146793662755189499818543446425321223168903839292865703427644836907733409474309916312472979673923696158394090445324012021169968933587131361429689503529156079803552036887432482893974970087153052336267224476892468956808206030239242750703295321179083077857663102243173815595541594722015431007831721116346554404130015587368578325613808343730397338331689185182157622532419381509621097508722797150778933018939933170005681719296845242153962249486057262566245245089840155043784262615390510136947712161723354314980902093879997818155982644354363936551527379985119403042391648366482587536095792536850530306784252121384202974527608771735862290029566622095295034414770096616596628192481577833874518836568663428938370101330883583341535792668449231719317401020530401283666732967825904291502106983670965512507591821341706441047110136449750302111969924348226757749852084066154990862326725200776581178261653320144750227813895525384311250727530264577393348414739027621058329723439116773362931676072625491509533457043063319992659465141146298652181763212180151466191150790638901477390905303690003748318599953978387914996181161066267425785002186653941572403337416143456830390783653094105413156256705346097066294818387955646669254550462611013242782676379959916196942273757046588612204196970405890463241446136125623953136731711719585343376029694069386214894293043704651280264639745510112955767296953697743447829813987889337516564795517535223791022104777835312213124606311063532817732395752350887951228366868916674330871743938500899106824856520275119341322159453284989026180789349047085274916088482717682734872593349823646970470048198722093705486416589643914468972854523034906112288678365662685048905356112527692743309589469653387143399711330006741003757985946711070319928992027691347166470239214879052341833349357207194076628011607638208109397351942924663488692927523230412388048270576745263977868086579138077720685720309383638235662684614060952259224756598479050560822432237279328436192804758192729441353792495188673727777605951125665822817930517177727336533353678867020974243367847829766297470823475166841971083166419810127747282475070735012511946938165511839553887409055150401623217517560170960314184804893806356551318682984047905456482814847847293720298247556575474414655226519017931822958117463156944268601806647477406197979387696174196390204525567821753372538637609952139124035275554209364856568325592233470828936217542765255492268348158560275783489592330891715911870217350165209315270225281466757791599819421696925587822422985600946702913929718423308893136676158194361280195433500265647239791850094348479998296467355902128902962860289727107927196616472661566709574353086676678660351594735070865951573315503891831342847313413624956007903847317845988051780322790683634193236239260490789718797300449835421998585231487258658169451532371705849250937430096905277007472889154308201576885601805229498641147327878009804910761408024290927049651675725857011671240495060318344975288915830935379530301142688627561429938001722902725191754897986117110511226765374557897760774897569462307720378514771022883794099636756958381650659791454630539077000854880736489419899926235434578965494400720225863516591565048571060008793617729735398323934866249323628164847757225592942960661302864000125257688983907201095519799630891780644519411747421936157110859349717716865860571483984956921324937005885536703138253936160470493056855845368488313222066564941455540205938539485242006499201350302631054067886015204358417144680660934986342706150398025977985398934657980889455881996615516393042561764043357764806010944883057045413637935720435439787000603922282597928204277141214160270725634979262229049027861742665213041947709572112722476439937026765241728583921156509249169871058425849382448602890663084949074900490939486958495570855728429393521225455616764224090305397943311626838685686925929156996438724379385651199303207707474500673617683073655019371133915200619561158429842136601674606925097272270821812181725113289470086648350663493237365268979924314541264354798858896952214897822122874610880936905594922562043253700358985610601935383762719853044312817800904478766546941203233756122986450533166864304694993300007508051415600755718583552922318915681813088473425561723205865705145956131096917639713204038662705596695741206081306500214822207967705155697449329254759757886195694613714428933476755329540593359038262760825658416548696398759769739786229743297938212191503308182835592415639909327752219160675218364190588150511080960365902383828908560606245829080936496168953944557525779861828777151165736896567580125670806850873290866467853629098615287036903679244821723009792017501482956607031115029560074848774924089484046008909824037141308592001389478156775291311147762232872227996891565740351369291496259964757645805219829059656092838022186086021906479155483842762696935625281861838947489139437007478821336805881824857934339516846497190079267418496544495395298379483588030190530790941711877299626131692091709378004380806446357543774302636198138835205817228196479136047692396607040266159822304257261558427181621833079507722802312201640864167122448300522305582960703265040819144824268983352499947810833507339208814163303941291728899046328309920656014289067436447379851789551839460726757887166038300638775500223550202885340966286387913992482958074028985245145422280151304401236886534847914870640747617543725901361472406403854872518221414189485720293019840754567091593358567248024219104667044621094577016095916617990255197936778420323034341682116312430811370516800629795335542834726888803645790325623385247548195354135682317428719497562555677179330759251775783949049386745110626322107714941139368077092663074564588298946322563948317478839657096902359498394145387460411517176667318625848850726961713411715597587339605057189514192387785198628322945225661953213062601118898133233686693716767118580649799243160083934001157831497556673530127928930113919314572081057286347713094304532616922347403900479776915946962709386139311083834031450675404411869039224084235965768815300291385703514934431400808241942055392919763161099769718904665865799423914661068394670057690064296889260395596831908040721318371638366594690145861851025657356251478438450840372593682031411987062914298433240444293124754921222253714949317375708983055834647248044753230935996952801934712215665618508045709352542980460424169664642238677518305679851327862439791348222365832989552522215546271429468716387043535868757219648091849641258915672822025889733218275062233841019779885810398487751269067520596324679914701319022464949002843996490008232474604317964925136015126058198333829092561081281101855995403277691873337565298191762040798264956431937707617807625081290842663187286459544864220989737279412080989462625528343048207029999275302430539663322692013180384685088470511193505283228033089122401786764242993849432895174632948946349197981294342119969060064933191237719093733885328487449362142633953735706175178226566166177241085629387771842105604445196206561511422049890047613397261049808323340059589633364245194227082784179743894805556745180801102330309715179068840250854447974827364950458490999362724415136030784962793728592834082484890373928052287041605520603236209947565824170460412020725432114364009684024265346013287735943139326145957225903542127339907506005823728246414081048972824860632029220474971367961520600118851989273143554959324281352197231623204642742739338497103072525084147424062882720328568853609193560280903568153368956888037438764424456615037081781322150419026572113315193864126189007455311137920735020583853285086860569289538333837713757158717552723072743432963350007872019630865160172385444117534771063870527809184204152218429944102252575202697681057412057643551944265110123521969723990805996870278760404702770074572575273819049588292110293549030782393332500094922272734010753494826979434093600369442010340921607160292412065741126012670660056640644640196651909399939549829070215081036302428699370824688717604497528513408590662367960933593717171816215847447819933803094260423762715070996715436640165641931294921875531487873881503741523163697302487288688361077650743508220585820185527639017083898050466162964906264470514946360647382882214015993014584972102276109516019797254649199576315959359492099315396217402016586978370961418282883741396823356703849104681915278526101558029527983929790295728344771618667250712164696127611614651482240288504734137633368797798337623873126989496574978759779240607542596956145589475213367092225711880551813112752884345471682456889054383804178028337063864185120380935317964271273338551643887098131621889887659191203913389227882979034237139850591208058550427296316678549259384389131933808560118550325789532510886134336701529220151742276111784055052206413480939022017467221184774284885542489715532541374547151735865988315875692427074464489712828604545060655234726151218432743343843056090857991826733342681188153872450809120575904959184672520493450713216644233250595022193662936740363676786701786078408309388338501809165458879360803250789247774320779592344110673770972205472898203130644373631739310845057013101615594828299169773961026621633226361669773351020526322648487132581802121114942789103170596970002407275366347712555670464038296206519473873699013800194913930680469620144955194469071773551481017369957910362043125328296660866745044283753931402868923541055721373443067435319643825327930350972282020359464613897269639845455419481648756302150024954359151703964921528478806729374537088457090146257879846920509965190650332057956448619002116893719761852248721781327320284451875430345266990798734826446330558507998502067900329427206784897138991222407728490613787321977127686823932619187407801911086425060252970586993010278605524650304848197471986407452677841554350246841983469064445490705585389336420077707834497226403379343730435169687818625471493986882208327654343415581957808277148741905620442457296144265601560937872216927108185503913852668241791851653194044090007030486280523456635453390203240409245865417001860191981195419778922211235668159864717791139785807544038685021932278039047722092718629715900419624666496340463889841212046917126104035301435278325718530232562646405346752104246595805822872352820131076415201539254286705143701527635032423714240604838894744538321103136511592993656287038763078206143813245387554663366432538998390658034198602429899668062127431283489239989051029101786242166760748999817355336604768342876787179435007011013806356765983153088719991921168866152661437467860605155564016698498237517855114990530415887801716715670488165865955393284600667765409633629220824907272788670431486458293013915564447245284400040240280254019868843623911308353452074701650323470762983624245829676155534621972307410230678449823163604693747938721424986027743519553303603194858657422518905450242270223193948811178711194240239724490202266177662160690775175396754533920635747545310790490253373486866329211351427962873640285550570111211116916967737203947997678537620346735253650859267045224549524953354643769202594233263508767338568460596896178438035495751071432657859592043004130144569842043460915717396503320698555033718015816553904580204958514233789695013433654180677775453276697134860534556040132432537952978997429966283859956270872567329042893003709932278911320279986719167445272302247860441806741302458383420057449561109443447449822087359748214269417768214043700263228959065662688807870609098808787275944230856991547983668539637941878335145363674903790870285109448860491186275760102913719246361479161013595196958402450762513592275192790444156517440678715911387196894578796380668157683010954987026654322722460500399979891434080679489865741017313986225323489132433931129890733194124643130548806040526512643946716903838059966616431656874232923327287993062661964432845901780486077702315509658451213149898180383493425873851037391280237828469500450999911040591666699154485255906311515999573001122048523793258762800829040943736573897659412422095947366764639321405569713592749279323702649773455846516164416027119713109292981945246646711016770099517780746305014580802660770169307398079054633134938773252954059307568682827502782499683053457185187435151361502772456810378897723568043135441047735637063573713390276988976756662242533255426349744301884371890644905423442548176533576546888740239109203629844376182918037341578613732450535692275062489702142312876305414067922976626065904518396148455679176529537086974565456077694595640456853272618294413451095026860747914842893057937297877145958747150024831909194744640198455760070021404246088266049134820688490544360580306064158353090372991001813551208388149652763837746409028560643092745323169344064669738624109004301323746566618118683488032435399157032046908353053568247597066830907439081437155737704304516747668206613007491303423796635565188320644545884534463538287919920001076599121826070579734712930727176443416199728126527521586085153802829335854909464324439146876414600351405845321742053206718043529583937616530689831394899476526003409200792305797699831947317502331407860018508426746418923011392599453279068053891210973098038319634959742885185223249733068366794933088421869887574179284574902752266414794968956629911495305931035994128453901714576569271883313054329036192473335834923395769291832617101342954280754896694363843282464199710026950765738109143900799113905685697951440112097231392853296062439231004741032597652975693668796116835685808266899901804296009909023298659716610008410879308698291128318017032710567627434988892486254220699248766232777047879006305224780494642506697507377864900351367598648607900849503541602439772566696839332949733663464066222146401102686728273946750983884091546245845717028463440941290703466945859734169279408939530450100848376965890294850798229162724214892964787411758558443804126741102862954915371019419527609701398632683591886410072498440743631495200365020232608677162506880945876561905380651044615883223540682556787080191230687436187801575080910774448568018153626630594298768079673687751753576961301025687768452877672617719030744506445626898512122199470479836928007761907984605754241994926458513339383475843894007891095288265274877354764065744515056294285350313779921316478839205023692392355911657293184233483715703159250053728147788325269465432402595620954246514256680277136696875019704144432753904442863586989329486507695183268783283824098573370663210996406371319444594234940948198912739908276401243384340620837619199897328524004699787055603008937359512192398847169451451715022690878110794649388862095468142566859726650217527357387367808096130985565783111481911557440840096392476909716137109797968810910966588716639457588687866692575527013334844138598488048957560101046183621891247556019634383102517275946933344294795546793494197174459807622408716516629302571930988516290784313815904445154512367910280721938148169470148607854870102171811495757346866660938804842986216447592525986053517518839008728333226623828461631451459629663069785697198076738151619467674242051189862501392101031887962670077528881341867039536957836239540347195168199132372853988263491235385019998411960069676144780828304706684563154860736700913440434756188487283899030292940885643446487565115185626016510078613050822435583105984521795805329247731047456134020488680499781959114960587341206465730921788054367419701411654791681715644765816868617447696021436877381243332511353074192874845263248954063337206994317264111737771145358530722719292237774776158313447021327804305887097100896469830668053221366266434864954607845918941294504301950688454559391311260600409570407977880188875611967327447952107302010452915586779120134932492600930606630115966311086852188897955357776990484767046150226205244146637444411290035182903670970368639086792641805622609664793850444492889709970211328524808626527068317260732431642435790335737145455552640272621815607190032046456425547082630296337357523849726121827917225447420704410365256436802126563076066223957484705241739086383946233080825022038194022029940841452220420144100585174105364489555833580422449996703560139860070807972245368276256634502319069290980142930190373447470752398082049582810769124300551823076046679038110416400036747431090357325261487182884531003626063177456813507967333928631809330220347163197063629473146987578804451873354751559884098023832547124204347038084446762082668721424681850796089480369239187443327626566890453614905388968452156571815917734611125077665626766574273092313667172501209329718897675678493740814939355927865208866599434554344038392146989433686375719419090923954233348600495387329066803029147694294724848619876685546540332046717229517242841308267455852366545562485980779994897126514729091174860365723356479930923820905647362827193716695110365253364816060866569371802781085766495249850799759446665799592773994699472020428934829290718832117842248570321584134845546899838382469981094200129219637504507397732488402351024261031675383645038657273985749481666336534029061918041929333671411642534244618927908573187782280028915460611058597381149023072349946889703021138138596597594327383647069133592633131261439678649827827671317605239949499324379959183873628044309053555274065125837464639975817182509962367227725896846914293696051122097137406232963611970190089730309070741950410794441619244264408799033994099388981721082560871123536000760351375598730101766892726463363751444403480441705738024826719119077364413976877742813556061545672626692167741321925393173935296653972140775032124493619135675261841430072951546617397772668840188097615912510142123752698727418813596693075379742925040024948206412177125794859512597583717467733061138059907302125445166380528453948864663550401508463381226540602121347819508344035476240503683344301414287608038159258801121787277099028701191758153942700360917250024157855959544636355823647633626490696685279403957840613063879554312276571579244912695360804758096798880452503818464412521710760633214081701074061081054420373793659327967497709395570284141310693341374600665010711007268285498733486537155577092159136400037240873935743915550374789785580562945290389771214025927199778211497155073845165019013423946507986142362898813620385417836874751896504565069041738692296628336389547859975047750584400140628474955203078753683232463567868198289223455533227041693620219769063494677556778785169008896551861117679919157044113060356652937356398339235378555927367884111752691023996357825279112232681766959048831368686940813773409940480885880768023328667342762294699144844945637364745133250119698102075789881881195908570313666216430956650254109275228545212371072939442804795411105497377417642005874758590291111297164663623707605867860785937489458163088416822012914627045384225968102809163597710807006844405785401724207290766902025741972812967615295255964251082183267530473143176683254607524214354333862812926723082590839394944185038603264689178401105655125595930697180346917365328196133576732589991433261234359711240968790369667082794910372394892431873699461676446124113496017646490670753752038373635072811496701486734286272451450964173633636320926160844449932722165190256080068088618232299756608159960704227608169212655116854182009735668252072967044887019278994088556263790846998948935216941018453586078139877821128746563108464702988960255621653856905389935685971203575385577117936967051924999731373581218332492698711893598639423175426923470228555021141669132624862470884986197477319391575277197429690069508967885217360523116931563793180191122428267499415696622870416337051004292017920661674431922551439159554342624913803258882050839408362899467904332544963948745267723696493545588013176546503799055576669812895777886106588115603449937332393615119404423319354212298884006982524611349605146461948424355103315829546859930081928021262470968780094045335171953303288248961656251188484962512442033778505531528343469440324289945934580584038583870995171247408524669967106663602888673086326190376117738391540139609136329095955402270443535904598989552277006101130659535118886938591498948508256745980167666436291138851298211988291380715727248444308408161191273341017324951770505562747460496505582639709873019964408731675035562345854502203630489425118813680690582541606708120661666593571982022365677467460753912308242802976962835083942747412745315217776597047715222259787205426336539800855141144428258137664488089086369445127178177475190416841107148720627035802146523865782115609346469101001939711941884041470751736321813657453713324000491019021603785926902541950786264508493979079208243487591932266425435746030586978267658755062724111048574706820815503680790953949747360347078159899412034322088907226403835525718361703245471247522683593560071652374741361306042673380715863281081657900647068466626667630527989308065906055677446306358052833942528466734528243595338427448410139940118698820638480138628083405839513570369797212796888679321792511527141368640971090549805257457979045278878495588572443269701283811438556941416115929826135035605078769433193429772863170361873217775512275930415354747522689335678876856652954107079331926656231910151741765505766112394003465035591143467415464802218586882884107975874786661126419364547929841338930697426908916495323463411529706432957150043393414360611538506261993854800164110940722669346682951592327625618713230629419550982674453789964267157208041116610104031255409483227608106523602742137864189952909384936413467735138816134221923747847947734265649194913288786189825202617700178942830904993934978993289271067669408289834870825858977729198149067495058695286960463120785151588812453688650353219898800993956227292588939231378874400178377731764176997154841964368695821704989141381753058041693853333339776925023089990424609023817831871104976541973623971126658431404502273719966816897309932802878003310195974735882573925178599413282364549043862897739207262921033354517366813383113233824268739830628646771766503904162858324293686183647035762023093085977410132245351331313917712263851604395070197708656964417878304748341606897424809746960680147448853715493765846064507044134198750205415119584448827945175848924230266867814929669406051034965208162278651829884595206858684476502546396656176701916507109163854317373303581134950222026505706258169102318108775189547782562886974531730800516892216235207537934408980490203789122282994166276918557390567379670553021761124636961693478467540168154295284008066509342386250626290227160763966841947314398409073661739721229708152450799690367157248723882236007988251435830352612038306826658855233430323580450634372774486964301007009972008483288112837377180024416605038400960573913559084269439455871613179371925926301370665684967779758588906294513229241254342482091097060439155579993894207231835156454110274353209295879788751471355460652597163977114885072929560207189668253597306958781513188395687001369913059983247898042996692582760488822493533061906902091758449058753776571361675838740306571542832292214358835162504708095616317053501507815352447397744679970323523749036040408357445256563950298667990317094086353522194393803738540501630558808893275000637663411488676318324515497497409801683523181134935854043866103842489002469174712792258034944087500437850046854671419424653573704443835856351505143256212089047405667408635433121876961582161014388493699124135482089451726732580716304847250869784616418359926956107676218737866996529219841428535302826801889219721984936131845816299315984506257106095914274108231502579303379373118429415818052803815907748368284838095148497959260912791734423948297857169129599494486830838041149153886385105927613168566113362726357510072660075951512573001335760142368160594805353828865073787421088134371198876132896015205184245664887603730800897997298372702059693253299536325190437093507008204011792300794150244669341661278127537931816262982471661018846951971736292618392649597571949011675542874703221621515911968862654779771195204307143013059061150333916379634406858002708292571705911694728988747302207026773237267260726493643097512835961589463564708410674976468839977471795970207352961923594413870025027997257468431077766943137381136691372465086122486010247699277062349187860913576741916244434622448636912776481390667045497122057641588624854658885406878503212810898869907197594781850395437922374115857233465826642428248207465494358080392197225791373193026454541249038722692299512878339253694546435258117000951151122664508537040561155014352991347387921633167721204961019375594304284039379474290899710538186963704090212546291752723516399293249673986990091606475460460775801698780842571217310278021323977070254594558539129562572158802344741673591197418789475125955936918724781623833654180018955244030915640879375318133416547904887455264640603925508994064890417151639438732323752168882247430947023154449603861057203954172839843624280950329096149028070607434815042611928784709819247378433984301346344161661870995742126996166443558490504241610546065767280338436331700771898391718749202042992621600847156918374598962306980143610058901090904025411594726989907405842648888868602984177275250645572422846211524438268772376584072700839450129191095659622529099650059097733467827897522833241108444950673614168779293373542877456990633760904598080512280445807662863256899313485408007573111078455085928184629725783816030630755045257015588022664094885796218227398443457195955328290350889796275358702457649322845054995609115118447193952351927963036202363050268719199031763274855366329742644253744627638299085826680167159246000378768983289623120743617731519445745424832408719955186607066977257330358546713341957511439609758624080746098816277973265290438354189976246983459218789637084043611063931676313574689818558849218933476826395247544606138535300846521864640811614327723126924878832743514766666539582894966471347068793549893404080763830481115228671454882261137918605454921650668400018176677778982150920897750256869597928854939259276003763473590496690883057347014773688573668286173906102826025510113763652693041379646982732145822325375287904622544146702928071084663389630779670148047933858761095007666314630548000524654637537586996413699067565256233518273751257751284203362354378393614318418634380014114675344307340452093612762748762798103659178678480004449982068494087705896364100490520810601891111250263469375247383906124146327693467176581171507939361282613982837639007665884105720532012185467402619612473177931295919818824523842578856375011294290243270131417164891722856945778632186746684045230495561690122658097939460162007374058932044015624315704850617803675093030595544122636980250572474970902377743093183044236337487411701951594740989188632705967459442404340734759923130173587211576911989484940772783127216747538231257255846060091591161836518841405779558728957430979445261678596657639039614348409907870766354993911042053209527588603011561788521629073747399637759754452301806650901880560960718006255749627080764707589309615632360122674464476041436913805036686806256542306720154774178974455180954074359196771917643437247770581531136596771907047012684901922459500934528778012833877006406955985936012345296125520381113260682156168438473905011808730982630418138591078400648529925647423320466656416144175954991321362142633604868846849436051544181840771793125654417736800724780542699061073454584595565426323555801967918356092802066198126428239512134628322706275883002465175362449828120619756861820054493984706852440560077207274839417241016137566917699990965415691528316054380341048685040632903739146227398730819628050167204572652581714470302012645156258872200296661226124968854474644138933255640261158137537454159271852524179193314038319408130582612293145263466450491960427979534452755591247116113100622063763100135367543390744850835357446185274925847535255298292732032423871466637379876977187520225750107663511617503043940568920324479380239814835337261223276561170550145747747715457037179455475760696637750753693568861855458792779884411335262303002318411326656188548593050774129900850410710815922622900909759271758471437475907789543958770380846103735736582915402678188328483621378747109240640440734100667685428291972747016897751934457519209757716189470934308060427764768819390733317398637134924085506056886005165585993912859640586405535989627800340369148832050070194665775178916824981522204941936510247890896745064032605167952292463902572655891264709825781844368129580492789467621919527310335111147830275152980322935055964008813666494849110514471998824467635502100306848000077190688245442355310695734736565946659758569730008580642395275852426005760073328805331378027495095118727361437998662606474152087077856206363795101964289275868738579954139438421594488639244338213059328408623127008697186457901889401033033369226051038983842276558508753565709878025261969876060518516883927242812808147486976593478240624065635845070733081400969910180383206674630516402999663975388256420204466066514628551307061978223139111976270266298671131106125663392610383003381373692387220724315338543754167628640817056384257104609582286207664481801245918530715341800779694958898070446618474412573323711241387354575654236795495832055458144289031643795573247552861070828257997257276653399791411146901752623399359884221137318790642324244534200552584064101072816154849679347012019004623446384625215878211763674894369730860514500085713212976759627201984028653747560440447547313794164033068070297801039276081408362432918831083538918463472335770575241848005025766618355215563952302326673442001640846236636769625840748129888227655047995762592371207764078919652606843849190050515096863674747240283308435303128213683707165994669103985529702285382026552661138107628505522773935767237439269220933807080197858673107675495722639778944855568010033191597904543878344974001776379275830053035039579411975761236357785600633725070066624583931105445253624828877013919254171718929533959083934314708967889976115923237029277793990842115698830222585079925388205822957201641345161091361648323959923079730313023449685302754929514179065440348317049867038449317648986550324490072773010214399416940047989395809146892373934130321489770356431532134106803313573374182457597801863253169213083130724342717324431915892973623636925620903318854104567474865083167021851602203577116024345548458656064838635219456250556922939812332652453087450877722073525598423102846770114240430682384304230792177634035874165203381717029225801451533498392849749710723815701615849996057068343387841168169161885948303204883016694232534476179241874186690221079502779386965509787709768103637512970196041033927579510909162918706690967067875950758137168994205423889843049819558302511449093454696353858699744016779199604089314533679062121758746423098642080023219703252266245198468244988861921191597076772827162238635377575942531290671950627168222315383171619248287329113730751187319460739029565309821814727828905758895935675598807127052219712489509186288509328007232566557414134355914702670887278975922187205793165095384199485237685601027218020665659067929455518415369128741115824070726605900476725541251351115616740497506997471954965936412913946691341318784981208449756242279730764407099347782845516393007307384811318898626960939248698829086665368233126343892751574377370364984471737922595479040188559197448437528494476428224978059518569522629518381385109694864731451157553207489855228596971420747553180159384063370737009255508277731195184554441365140197244049511417456844491880495209712574237950536443479957297331565210534013324752653727390221487114632551251803203275236654957847932763339177903740734676246089908250575512654230191189102079141523555702182488314465638151882159898684007691932127367560890113802836553490914767931499205957086013089367920128698873384188841844997385763435529378970541753999454240482031065294487369640855283370752608815461648977714023639689327616879549986283753831950016032738048107185217136337069335929944050804148660751772259013714795016776863503405780949060229412159917798002963110337440437907717280452459551803861985063868539220064867518454737933749379526754806508235760151693783543263931332451692863150246109675219109226752887926930721740151208966122264624889473010659619353524100007037508738821950043264488370423220375005857247651003718581052409943652903099340898067099633512487449051043323918441770585247485430342137050536849796940688564473276301512457010494912089580812035200117035060461261567118563643982374726604025202936232327234873187654026396458689845040151357205793869980792748857407306944922750597931625172789550344814943295996620564563467793784594746070090361667527726125660393725990963820140682144681484264270717965045740643131295165352083920222960531265804920006605058141157190227142546464289497063864687081232712483733764465161105037005508536624164480049163606405650411759787969334151855711226513457609088895930726720941309770349333571613323013999801927372530109798075874560583133180137252958874922051393776318294449464043892463451405905565994522262983345779262214550622689150907412104759177337501259831157794698727248229083347914302060327523933205957164668987575868849857165001867288971183655128812412262064768775078076906593426722621558578418208150822207004521836252140694023788622811464877797333679448815438915891664517310663762834034160203645544870484831363494051196683260623026832972693614443222854750863710309503022187731982835212981229098953677442428751374214655591557112924448576222934407180859202003650612479308345655738811691531520785658378890908256242266543467927724732428925460269200137386222667125320398835491809690083549863336312363673594406274898084015964187638459621148450029577857541057619275297570054839614691136913616207585010639966417039866662057054675629705644573427569342068903167301324189900496824187554642772937212662507667723654894286752368440361065235036172795232513915561553951399687348108887976304529851627280876825204183446076590928372315292914587599286937062747280956724338730452353046046221355140556235289235251315119862317314252435179351657486404539077702878883460118594729780201276134406661364384873495997018675381875818643727970352398961901468159624092640898704859549248847532454592239216669019265081656367464422464864791024462858556781737206271977461917277640162776631651664474193885568827304704336595699479409741099163508269956241484347040717768917100018715840203793074292165821589636679497374293438268062207694550739770010989591664679416789890849562543103295926324712916157150402781371753112047973204500822846543554134281991293572377484566943424598410772951100929838736208293609779771911444105832635880450671933233930844547108520298488438836008951942597029242208030249201407610692456662094949336885400300489533510905869603372526050168922824336853769259920226493259221797220044267717909078677609756150687992197838430711977588466551615819275125339661799584360671425030328259595067406548608362510037432579515162554848295473442834120457083622215117492837594597699900671364217182945864043829008645690585318506466735813619611042787007229616939954371628402453723593907566218787451133566081732729011357355480284027484730349027402349155504077703287012898352191955611864803966939217175209292128411517057243126828497746229835202115545061297518849123666010356266545423775394181453137354544024761542347766369833650663770245954955781022210190895730277866059410639397597833132041626978108454452480097222516526515554449930380465311470809679885657102815251882417437797460563289990140586261414052526119504706140005187553953974632605839400402970821026016729091118028568407845236892174023375168734232987485141501069304088024838066506604806288362571463354051923969801125779115350881657566943215078049675748142696836983629355797429175396037177607644961586258263245316092054196502488248490598104313277847566858205383534725127947984869987819400178926552997694124799880537597618410885581458882944677437766581331728609963086231251284201633834501336765550430362361943934676727976671686141159908048809991880652787275438315638834522462526238790465627802076800302189367619218008433429122919186879073977737662306610150112621102326611561143263656467240405443868875039071993823734732870703073033109993792039929262499110160190011291885540809572745564664378371998821804305742184166880820494988855812578001064351657385717324087351155452933255108386607757509587317037361157827974907942145528258047198705074229096711437457304899575553750985388029538344181716982683967457734141776631403259199071481923227767005233608378226730953116479623494986312428289739396913123728124544205403974470561045482849722233447628169689658969225279824966605739605826304974628931964212227182473940520009642743396288099632914559826488181487755288683875380965692109525769354590110582304941890591824921397320515661123094229880481859413826456537329083245570785313109421005914387676106762646876484228084417751916228921437179387402032401038898304198181426678180276585663290982136186141495794605729252248825790982057397513974307349131675864733198251881757303082466802511001491673394002613898502663052084420432690561891292060218662854690368053944620028033269500177601245603426718903400139840824111534541288285972137777650177283293040006708617099558594657706984593558260515534582978199075226877221242076308014255340967312265312916391986740984230426014281925858856011193809097575070087392847195566770425409591414770226064921734696618048989746670451670977503424939535730551162348405909562654164015584165153866826660972995273105549264212330626403824531694771650899206703441131990252716127384746725051120243626753764514135569669764117030877791348498370226854533488112604353581598657668977972892408467293743083986696124891647158156899146156063203571194346349892687797022570690035988944002968544833359088041594570122000927898269552968478318854769835394684579971679796110161814555718831745052759642081573394702274695746469579468628501939033082630487384426953325212850797867213407377683045084254229491808705140846075646232411096508756963531948461005513936175720977833845668547114905160535693158239428268338008205622669372782503546554190028185476972568761486955738057474703215091276147135552018094218773614760257652096179563024828959510665809830405792063173954322494867134946637782181001500927168086648033134436858232988233568965493976540255524806651487455497069886126894252898123350342055380027777391494982751436747856734891774926058105080984887338876518258026430757725489124057558034763096959509178806345266347251777066622795487225765422358047983724247537189481982364363710412193229669352883182195045197777096084321472044959746118810655591529000210451511532259413565808240423911633238027502892052627696013409901274636478332646818472581082466279442844614515037908569202208023397698671424997902773206505634791803528178088311274041541774539272871584083104607836147502025774073415548882267922091119500817047439291563596475833012759885690258998637977366014117082025212073618200004858763996680466683508051682543078931261774223825034380672134030761005642814547830675575664318887752087510136545366543048703766133344156197749422174056219287653407122944295082974252094787017835160930840877323777669407617244756338538280468037490155814986441024171248694470873832767319809765654690961669931001093983487798303367629286785576231275502243292290811161053776680218435199868305375813529556519745031366226397926496687665311657398224264046853298986738529121083398704092625797346398574542435186734521810297579178125085891698891681409710789619680667006768472875991763886934667473084048903603272800993745824264602815480445986882227580291826969234841497527696213327188474027608869344139152254617349835561388745535718504838018031086903416006720557330704747808657775528841405120972447911736831703633919518599123979607896661536706755943804392470660711036426636134574664088590208865926399951647260283458059205366987499327217975755322651683084796471126857172490002387500370274525892366491926547001520285983319707761353918718231080126829904640293774839093928738548598526154236557981267843164697168512009404869116938281042342556434898229781738465973212789875186676238075472383897572172041890296098805882131902219944959737775485311780514001875239306294069802550966538487943754384190900967135646424234470662742678023000843406575456581514286892152161435803359355914367514951771798625365824334129047121992997141797301848014162358247854104819610754525483633822557961112101068158270120925345740114791150291465204472402853279761255059067888973545521151515586303672693269846776451146605557105716998494754737820307529110601376265490401763185608387326990755930082966290662326948193735256856093358022559398754281085697554796833955701187450019933875224516914771893029611168821717702885290292465389468937168250322762178093990099186055836514010026157307163545290594105139057679451740130019280570319686250663432751049921131566893078411140102765192974743116998557614346836672368359244330132917579743406087836245097471580255460913983522933567696549810943265351819156377401830512131865764870173938407887293340003825487838707114002411841454517125465471877473472871635933594981283258824592559070921632297387863801023302417987958720527161896839911825111914660920089349675911645993725277355743776321033413509271139704760867271182695189530658939177656122873298125800896551728403226745899697630883694855002236013947268389389949300717013836818031848951267279140027731027202245647165898927103998314184180270779834979910786991467185769838693446982312827043122033279578803370639235783883755960726900462099139768124783593172792153803929429138069637780801336158935379672774905115748413964024503833278286812956486366446702082650573575220338261337068459745804003848403440702506176985184497923456626860875076009451520498019018809366564643431160385836790617822351142637926486130169809549252700049780227833543162886704630101476791841905321020825475815382291774922988011421123046286226229048897733455812986311624809745395302590067304788524797017450838573154212410406248997092515911482075945220320916287393470179880407910770802264880124469440391857021730286343544612276095128511491585818894080181178325828121079297126764484162441578283208030851880451001118475500061205511427675289115203650503482907715113499658003118640523395375202998657691105606139193133988576044844755573386566478313441531248312807007496503830153117911420894894837382804933700271505494710454045336016511260207845699140081936029588154709538583687597163191288360926698127379963521797759556535689610313501388065098673895994265007429699517536337483555504389419424606933847456733145003860246635184579151707357941483187391139940727144564307276601158917921612928318150385406820278530649519388947485414621036861161641782055931383290214564260370695943782372331419984104447833117765409239979156030525860523186864426054271222411321491075578686038837684171502646655373230780345844303909458125604278145038144728087650408041986372321962676488710023499796366894654419059048563342774264249632614850325578358246418893579724985199366268716049305806849604197432140209531550655736479715307962391920010687546273675902398681897607709781610237628498781993139333059674904901934129844526360742344967565382487481850278050004015924965723833184361591765727973202809629774822395427236879232228011601883090466711359651442910150121065301309100014050251554912815860769668210929956183589020666212179537325327669195030652368093938810589417026260518656969687108126644569814284655206307935063104917273544383418733190408072494902702067683799484535667772913258306562869014173227197199159337979064059691236182996630896002584928639287190921001771393537261449312354703424135765474544504449764922890575398581928468130549450499528087921566046543629328970646895159652712173567844393152589090968441068814512791838648916810738649032014371807864792350160067779675976281271774907460650799399225393231001950212696696363039384826701131856111720612208824344543286240247063679913293503836536366992779262183948520315522053657791595126457298603222764704430915506590941506994705092975709737338875893262133272320735488031825697015903738990749093629457210446006785850667306375140443301504891723864392124626565466540312312764921197189655318529918265618309267095299669889587652149824102439793941607738517979131992617853300873313749391246945782344258354591876528284453730387773837991795778862050019904852702210165246511638973596373173278699785053787007054049891163314905992447259941293725808556830208007536044704891376201705026775110489770829357078609104466151105893181708381266862818668923724419208045016772224754712482995759756211743815080264863736602705356517660118467614990207789577957742209917440133376423636259685318220852275118250414671678998542214823143319022258432633693507283528731355279360015246881491466399361693287374320115028677703820377209967613197569836582570485229022338201494651086243109750010288706269682802589064067912164223596245375407910587111523059417260260617495458933208535930943925510403289775486246463901498009199156317791099662524732766934099026421262963541769538153684716011092490221202973315369586512314060179796742411736257944701946075737101910543702639788956428212893311916700836328461900935476297923138547669703876562088514195259971910104021552032665818978991878442903294643515313250887140190698367895806162557028967600809213930100638345985128827624341180326651405958162754904693818071505537692490961788062162716542820997089507373013429068923474148652873450676539776173061236236422457463584562174667376221833336866212303548696030265811561439401557436476004496846368681665521988191761305055211720102766155414516945411712160665484595692822247574428808220781112868979222556222724030778406471549797430248736905703442452696109544892112900698542115531198231924623379591679161629465902561236749529517413048227593102249283484135755248724362522172245098974887001727311152920446552033569556390723999673885911717410585916748590168881907197785245946264690057121284283888179896397674665249019462329893355441365561958431503421435929222509969299103801772621876993241911343984542308482512079439239689990131506078436761538265015763106321157106891211142238435521894520801871992826935753870010524369764789598075379464925478487618885257957708919070151545674438210683615324963322944400267716724614351554503419121745405732378874260601911059325206605608422254018174566733998687785926347844364816741848952392018628806471885465192151849861585342614291018632355296973990484992339858345604617174641836633157721483995741154608280236406481927564402215783838125628129073179482403582734890193620769854301810208296739679077333219406515961420822660605552510147212717759119050110340026513126471832668212766798132076957053104016567083056017559188207804628704525666940328554569160576128437241284483361179069539029154685772577605573840994519823294932393271786442263385985774456814852881524721405955949449061892106645175664053974343479135208049858819116714356000033212646456162539150186410345694781777505299338046335542175582679528537491131011261631620720044286438502431003428127088238500109519302705291628652501732465839470939098984831051158101036535093977670386071658113858939990610494265933043108795232571385409553350740120775286939431569974855197429796191203582773825222375401485915280569272596927414879962430643924305503103030236363413640120291633783446067911480891835887027105358254741177089116783474974036370472710064523834613962927126763774767852984501801121285012832665926771773620510841045872263256318235487640101549341326814073210755498666194072911914085233525397909165036078416124214201679468668163125360546801268606056837868484381133896959978964770608647063654293381650828282815848909572061219559705153881451021824925943950205993837330474004732758892731718204447146596085991910526990164786063177920124088222886007657176669802415246896646288297778191456595146420401162724888232872055673177179462854876545150401721412899473283951729993355506008161246518803620417598462429950489433831778581098285637834684143536128080047003722750827767717276615319922716179444111365270614948835110410212162545481362449572759751343785812861418325579584284859749200231512361527130412661531668506473833424554582815168022789431766421927321050161348124273150452324586467705475739662473401246965302453957292218055822206025348088935992170526696437700088668277933199297233582715045031878705155936512399488374886897084664515384225191978060312668701016715798658680654831200431056049108687906859549604954392112781597662309431950563338036105752162983400933686720889471541487403638472042047359468987676204016013251584340028557266365772978647206074262970213192818101005493055762257999943360148313425575141177646234310791308856380797469284476657953551162951645780505842780814262912617118647996916089771058829608177802375826016709896052529936170821043048714413529718052250561427684459833658738115556280076483067345896263014429071107176276335098440141645822870627939652157333903258694772815830494994557316169153987236103355445845504407418083251212560523853833327644394218210335448755945980451129545773591075142811230548711999745283753888025107802545036693991342797725287210194242866608567517224341279394800043959980349579209331527502181940340113878507123940813312600874427634969104702327223113558112677954119391905185740586805705987519606191330016221334088049499366016151735365878089883477130825279915766067856913377768667784353600558078317483368564713326008817065456320893450261050076053084583528161095082603682063088976086670088020891519869455851807450336324768629395735640684554509522158836077091032677659205081526029238036591951803853061095263925349853947248999984798349733249847033821091445376766479650047100041497590344912697328550843630353629596754133576940465741881395827623962611399451413131370284710244735186430970243022985163111763618691796085642241095858736586394558016703124844375069395890729374362776527467172159528540626468352250288775520820651451186180798627219203804477199184712782099643794379276942696350729806475751061776774099295809720387855474771094118948511924229760155589927243332684948070135942239079951633072993048452591645149802722412732652360445355408895930084880892599043494024477028894464992381114672507155765986682842383407240642873360856861487565995942462203281876549271392532983497608796996799486461306191574297482145627682092146983004221986393233313538960314556145019977240144448026063896448320318327025456806631069711930838591196683904733793464840208888178771486883904698210590701040796509450454933501816551954770661697392524535374110421432768664091445900085589525662770781351939900637494776547772661398034126337259277989830230478438570116693775156446230858987895892728413122686008592341603959949850147587359317205129499930667031041094132902916189100992023655304447172829412234184706129085571597846305213560446255607993346818244684571460846663323615638447599316905968973048160726911848921593567867443843923281360907623074049739937333757670766704269482673949970379243435741492495830405056155736882415577118453793959338269926086791552947439635795536542532542670135413462532839015464408210648666337137726695905608165122483036290882362734429978782852541720353273550574626100829344955364926581480008367075094256650880370247187588525258203910229725125508018578531071467529401003263091008777489430923084816683847313339289000354031170251494002562794817166963929326080974200875191901747151932383701341102659439718201515165880999342222999504014574556755794782486343881872451082342969724662288915737136280373004422201471410480861257376138758713257595123411651954690152675072166566688428080188326879252643042412717582813808750034677858028406317511116289769781775911786866313347017904077778895150875934248271580145817085475413466859334995815361120825355821642909896278962027293996091496774209515917007034900210676446276825432373283941447812429364903827388868262864422653223321426078427183701978030168634658826548632918168195586232461049905946384696237020443824919560808440944249195356830037766719915627729067566027166696117621628458783596237418515898638699723515371669356236789248717625508155346720641921341970887663067020440325140603806284525502463849667162975878395158158380195187453501133110230774488964134170922417850445855923473611831862044459335848550916794469586305502277814018939748054431915055713984089112184102889712785052955467467421485005181215585736419148726049357032092438222821084469370376517404545652989680957158204043527659535361348139177688336138577268328472644047951019746524851636357411334098076324414562178312321254930387991484210051022022333684420572321967072403084856348934014210788173460985903524371633795781393966791703786379107634882466080763054756809370443865930503374954363244986875848870008041291965693573767963321013825269866413125371433154238962704190555673601883385035466354504078479106079173706796397583072874676019711115854363515546608350836547306188057016764142465619547701532455599657686908905730829892261154614595723916766024118404949211993038119408660381124978482047360567581447904437269801102488170875725753922997438851369103084257685119824275488406439683992247623809868157689668188698346542586325109070369943904139985916322208988994930487335371687714044473939269709217871934911562677175556533122707248087411336697595139513918889321323940505132775910948232458943400476137802287611705884775793198292974995491948592371381547515937855736887940564565564398205059143819109628379336090835966442783276186513097697580644567447671734044422718293349753687008378581880721147113659326622231584439898985502574532507076379414776778142835038599234091981785118881333598831323042846824646295451159236322286364666357368932642775811985287957916246237421226998697533295945099405846842460142024884967112413701377246730081701768344257503612131146392567437983878652233437173517040050508254330106622845232382089408858079133206016640183594580243348316314613417432495818220711991095084600631270418559995525165623969041392372145075684211479831690893619536807759949936959180048301748578109877197827257463237319987435716819972855522421314602339373129415423275730581035195073635057443678489367204764271448168164069103780929568674916873060447101456150215787294925523594788272738182788524427035999096907690890029427775565945593492622508095977040801273060566297277140889592223872922583020354266891491756491390459531753472933041776417503209987154045948379703539151653808710664121706027742402760849528648687313974634776239409376574257362271948464601690456048066420334440129077683958710367786882376144100353094928830943857306004407291880696659152491104588152294102304308149611124036004739123157874789117823779120204661145748560682882955198781650014839215733030674718029843484475730830261446674169904283643696460232300027138656260474253166822036704889271979725589422683717369243354191369849536403122628105283843520053335377245155978607729091858983987193157308510901118154070864198885980354359450344315005262436866405053864814503959189409839950109889797276718400515031000970349438806390497521850224726913529261224178921998420095680403391473604238273607728263596981137685936302123330348839537246033615091825340354863055626214244733536219671338447517775937764959958470347508754512931863102814568674824999248833198458642938257361500158062768387185585863367036764091450685576728994695227957519572820987842406074932589087512157002589915198810592715027961937683834074354204022632882562624135231967317924100784722075831549792180116618217285188645193843859494591497010369326035790777266801503212338918276285743675370534044613444012056153685901482257123804204362055157322978055186339627120347315516690055542565527690720820640364602395400005872333856325242922329745717918184991208054063047350031830339451666646874490521597326354308548891172758114785394015077628994597848167837205683454285573670428775668561110256997741266518593016748847088621708904194620470259552656947457370739669916126321052935930374337945607463637795861571248169705960521514096032104688800632518467665535312330117282739178574439013796795575024578185402357410480379550917082600997192789621912991201817102848243839423865280616649820969482193435276818110584895222918111232598968254957004948298350389120555755095442944622830638206120008722310440602938930342606886066068655526250414192688393117928437730633041063295862302026510726732989755134356435165011124021005242808795505478996587086447067213470386887929034419312623031502137505218866395259775029284661029875110767845380523544176233433525935139794770348649324289771150063678460388147782649456132414134213373770142980175310661860163523580845267609011837525052867725842401630117195582031792122182265116365661549181853129467713936995394138364925459565835650828364507870644556282604845207417945056444997819710220549568504315062817217098588065850444967066375755393162428594144597115329406784700208382660149823974620140114311007628215950040653365453536329292926187524008097643929496192762954013135057717140611548609316754866858455862413603911201672507682284502344996379485965459404722639490769754526759026478495510238954915784079396935688076568374576225916534852720306693033871372053327417398030864476328796570083559470584934869890148285306189283324798419334214947880587971404022327261390076115649707207058235809386284323047412054681417594121247107772757737705301360280789895087779197406209210242553320207237340967657572764136756465928425447398665089041502282245599254610082865645155930220118774432662051577484244880910805727217434126464228093101008601249568549152874385563464161220335021605490561027590517710951938662651115862576378552842430246083177482156180517049547647352496334868979734126916593279231698000766474926545862270180293907821112857180619880736159317570432095893419873652584918717740987415691591308164227662802751027720901284023366413700328771512079476824589142444859282487309309207651389868313883771400811212214082328503643692308749436405077826393693229497206022996456911051023785541904409664051593011331823810061517608388545412865883092408487989904080632651951301586937438522562431626063501725128240089363214113280743692595074537382080260392771726415951957363515204921489657345043676134847075217057712895391142054237362719777524531525534667032999686296844640387671997309668129462087460089505416073753569360915244179298596201346009129164743082130683142014077941187776032053978395146707860911643278746546584402688829111470059198486818553032287421236789901602988597461803076463451619579995156657124175326611690896992433128917637606195871298322064639891453502723639118114250464353956912606306256660859376186094479402304552272688338072144296196345162863898489450830096958990907675374408526969528038564709266213534947508463817602205842295550125377648221074243391488178904307535693117831510711567881292142276779040064559104187027376566690708182585611945272635913080726037738426026854066612714222686231852586266794761714378524478342061545034533345717334311378134957805488119712581512193564010446833585836090252203489177531288922569268072951743041570430527342479578689008126064260960154522804887696932441151510943680553435887691622779924294774205294672208728089029012194723994875202761656593555935659151823110135743125594855150658078776706876663984601056371288794212066193031583180043408679010635012680337855273608803855694852270957686610485240297718077067853727848032258140377209899360399610409551059504228572809450463405949650457404049448764078841073387626161450488604210542840023098720406505438496806171827516367147108369112652546523963577504787770768617782033986487692796126249001334990766570078516234642981932469370093591196280427249004628108980618628992404468644145287886744546253589829664323814160764624711131348979463658029794212615330658649880380777544519552013930039640522809149685297769936742816189885453325151984612537618849010461770906791465356551561812028761618960171122640540888451679475621365756451987984141418882344934941663954258130695082911915795804982683040566132966423626392981546869243323087268148285706388036887133960488964215786570385933590042450513047943181004543319875928458780307050380445270306391038592230931675444007920467378820674333512853203407081410128048109967857033082460460037086019571575490358123324789250113549130893478520510511353470640525745397112057736836033399996408952379513909183190084672840577370331174090447073926720488267842106597058231553861356882234809736634742392735847157753014302298238264794113736554277841646921984869297374870774293810698688377646044927684742835173647278278164557461021605875367668807188109090620018382739776291944248938166634659706559132696490226637996157932395583829648418455724812175129977816006667519966534694294092184629609901296535977523233489095014632562428719585940000956471059500091402252762573133607701774408795879395447038816580762941617507826181520041171793621912931740999519429368228151093852893156464861442258926076448096572051677491362965229210077344570986239144267293005739040583722300562254677356368146279169130337001093537682053011536694282590709591809820737630075914958854489236324913428229595191382868585169937164971815989249473347134469560315342548548461708668676206734005937278066756332190210916115578060687281226279640415384536381719892249451145426769458481325730496824786474726229977698567350811657716740647020720075501685529172854638905909178420254374037331697815894379461379310115012176671454364557879579606884040408282042181328295084415282997862918506594238986829948992240570140848043774431261687524484827745416344378071246055693219247148232807356383208487149218469832523991647175118311851045833260874514392548644660191777650441056512999253739815589050630638013841349456856168640299817163827863380901040442664590171439087523695373795694769337814439716650538688552920921306873744703350967182409146379966675701777623515315661526000897745562356276169964527304887101566764364837366977857381665915200816214498571828517888161283012426769183492583008257102986285144144664832568540522352838495588570789888367183312366324319848517701381733059840939891211278819237453517763442857536442643291364775938323509276039448147134044953359844993103411065965534481657497747241617517488242100146759848207570910228203659788464254685877230602856504976135124987253839842769197235419076824344094065336129138475524133133424664437153392305990943590285431753622564548347302993940160107361449974101801049402922371665911892478057222348090332038642941525048426800391539538641348466472570786292794637108160943956300295508820740401098695574010949251116132643417453966793743632879895475083589430637830826971146186750971261108428421556562853220160546366675300449429826446618039899883753453880344808292004779796852009560398966852737146836461884172448460403537830428057690064787955933951892844727444402301229813421575774399511686543526650343771220776763754710735327465925166036971580240636973728223644898414697735820413404735996794156996560686821123428656934787747653694454727478846255957697345858981183611877939077575120574473601920410649917241367660271231501976310914010109257969569135316863809558004365395394968883377910489537098147485945910316593376585200323431712734671042923777353700965702901195817101960166812388264743500517873243831479536706373829058256340396858130545665638222619237005924160916729443013796545748139547405884981459254264213877944102928944406844689599634337014531086793099809062019097220240934041894112551634184229459020779750645422741278626969053461868840289304872961973295608310061159764725113411807547858868939353858719903417738429322628890158701645169844249349650373814077581109881780828895397501074656470542874811573103380171484602244211474749608222260896848568166736133985278133685560384718377015738902672068491860397661760650915525582315181608221537778954715287287291063705174074688149028128692864821708134442855192529384020929852478861758665651636166977489232160312833711207378771284317608411519436705894795933927626746775776700862411159919609386833430566828357814095223417221575230232489261010114377560027141885241255962294908675824459409409657454928179275793443061947520417937987152814196788276445093228366850208268017180934350949248424599736209684812842847305118803167521247433722150220043723884057834094170267173659353484273609384545280829659910430269232084397056450870375883964983222633740349363091831709298022137938676552790022208415875059103659869905562809310322754406296951009759149073808696993986370137630859957680774767759055007841909865616764719973783767421603472427239280845268360969801228601975510549825711033079264932261891540356875100504788493496672878200640332756165465606127569048489207172355527530882475856317905634749981397448819440419974336132372933423079943839009701913685365715259292341989281240259807451770502773769826480009610734340208463656554143689618565541677595159482782052429747133406992872861523511576885868543716105356242146679961897398841849363048199355752414085360549638573275114038511126229459647309293615521115024967186814212314029002030398741415460076091489196077964559446198583848703818334463810246572221121960034994649752436569852441500548906563682209979268366563167079485647795891496466461012696862740126552272796641973936244176664774146319562277488024682522223209103445175114397163734543275617176370171714780526289386629682664138862346597744657771451465140057480811807329368575642229231286313102639548563411857381687343314253058285053943747547910214870976628624635764250240618667745242133392256875418800700759474548224727535550735018368389514303143705401583560941808798970959504685572396467540688295638847412132550116168419008363904797900463933997560848655087182293755760623223105658484299134426450513361908861781237249218663125095318954114731079791295943229652349429256997027276768230248640558162845743087771695631867556884483105084312524773259439566264488418717182454486965540806237391728468725308105672722332077661990436894193736548743799662922481005295472297966185658320229612173995486984507445029514959388980493971417272762577083822923725332868678491033562033056874814510622479391288565794553509457841209932426590460284355614610371235730695110221973254447731902072113840098645274273408101715986252966447255603172622961082617946896740444563484161173121017522142175419944340467594488172499421521504889617996274815866653592646383439825841073948063828542954238115225600932814623189152323894989314705994962393660649694301063985531988171182137474325558844049894155118856595626960282124269180354511908283555706498259270729212850714923617452669471786000383068367269171427998431444827752743712779702516833962442667587582551162779435200365910609308158015720454406567175215860840998756235572322796588649451696525171193410639627183568300358540811598466702284109606503513265176649326636955195339903557689199524577344060399669509835208603479420496167692492914565882073541732139043908475454334856014363041271188775333483508572902936374817654327121363706196026916691024974635643844461565834366453622327056924481552817972539499360923606502664007579119382747503230147178883276708105365482888696856440299170449754242289408560049180155124643720339938934655377449867540704743088162192304842324181797761867712083099061160763002212750563190121995785136480129689007610929737984108286370231107221010538340236780165396285271745325116204956900811901353547901059559936859283935627844811797171367098909333410779802963211503756646247866014398247240079177180090460320667006016945198840239389881359463422479130342412090947438473057021981035308694895233869356826562250092463086759673305336381268748478042171156760520999956651363219988801342271517016680329662984807457033211579977996635018565043808666225801428109604732090155291319604382438215374131054302773909364287769541686045482920353327813247532284168621714040659726542996896858386246581996779212423881438363246009727827210245789918242425802212383268738810370259409342845132756176153766714397079683667064274889467128238323314118494677460078245416163879183511939907933038273781091999939873703468362848077965513383813674650561554344001204414251645435173884107981702830726523387649895503865972598874119676612312919972764294546294545517487626497926379917717068180283339900356419740732818659192739314897223187925907100382344341788398031718912678209970834587629458700518614578085668905318299097700736008329355059326642162707175475572280777613677843006996095623940512811388113412876031986312539303831121589047140561307900447550891470645016019512631019610572607908759799395091728216925999516466624533860754859209660839591263718549500797066689300565560360442841853548047046406851688432735387810558385632309914962154165046540272547497343244238628652045720151771509906470397184376981427419548802000217913401534078734464470919223702787503392764757020024268227306760408777114381151914761959722509130210539541951295640215735762837398213681073143698585371452620957833245040630989730282254930191978640153565686087399594282238327516777358868589688981641149956855859141992840287503821318353136732172196453394369575233666948959631922947247196910666036667077409104461089284766772169282945838461444272111049684786504554787098074138650548393932088646394576551040863795053364518144683721104769197840707169093772181953816006630363678287655049099423746216532174728584877679386391059939432752314730089673156646012008545858006791705915704176362712192900612931647075152469405902447395232338300496343484054733912998104919828321231501169778268242262407543062185272809617659713831382589486630470344928515720587248940585864855421087055163422531558161823259521223153166888988103970516549659022586306251050700837960021708217519795298507253791548778981875396897657693638253520612181581911629909011100170072086081179025012537506092218527523772579579355583302111047400752634717634623076615661303569750365649994756800528895322579071294842139983055633584114846748167088757099909329123726102927239069727725639389314081586165064991570395376125705514633067745346123159391713360335984599646893190051312160786618772968545593078176247792866275673354376600810157212561067442446203516082401719374906118569290634238709410140803570255850490675759199973938519605631271791405835865430224737492106160159374059048752725579415089440271137457901643074739924507381220491105257338137938003582228798048777846955997740055321491513376252949834410886339070463521271812922581467258127994470183352240557177148483595064597633278244489716497051885843473421568726223577735859821176494151711840345184501857070573400250125488058688087385449803533938703190467136784882459007977515279408877242116367255967228824354573118377483253703498316209327569798286879245145561196222062985209294638350538075216495424393566888594131099061044025239197785138917416183482822342189634856181460637133071078557487720107017201346414732518346433053098560735199529133495752376369368909812373053247111460482489412952145700116674781617446578199865513196470092467450875442996255297363239401087847358059249950846507447253891135096538064515040919539138535531138382959409627374367986587589463882227809415314923229164361971725186482264958720792489484619440101381310410172171102028026628350320696386220487296314745972855980617393724829561216162030044260085300799140873635513199887070227104299115312980092430660925675267843165989235608088664198291092798517557547268511882329630182880118251402765493709226276669413565960968092175190245485943073736444505338327920118613289110115699823734429941825508036288073487828659874456745867284531414105479944350033259459088089142858362885639266864261982473198639196363957309068979656482196175607511176051254092614629502715633867834816686246841828950505930970895171973877195174345062875538207832190234056900167606146045710112471626119098625799151596013168508003637725840993408344092599048291452029780064567074051326413903364752075048510427382861188253706445379868571165088673567704533968824186019360409712311110331491070653947500124707634999980459771175241921227874989097912744934174993092680322542699061622594654062735251058432536554791220742152222264279089505520086243648996482393493165573721821706099877280639015144784932559889785475807940630589940883442960295890204615996066157099583993014696493820943212551778987233676246734385752813264629591993089563320573486908926837747833312904544155861627721479117638556122221094734157935692070466254356708496501580903942596601858651910641789468270837957203674536696080645675336980479206593295859962511967716050902845077333341744499890054902805009308945721471445552225641093492004943974492876803151244922307379776028052538524979082924451312497475812915597031381590555597089592246970517706830001948735439420020901409136075773042223476053161355143904143233390194917838899681917334215967728370153410442401483914512708984912438030748300597323145561496861153748760558826173755506977207303135959676695928483806489233497542036750800547116445032212897498218008127275062108968419659918633599536336441564680945500831951539838702366329250985437727051876326330807454999991085890981424038253066706277074913320333114448121345566977433422633789304883945559866338514421716683685421252667976080645111272272948047282408593894287830173780721997492853295235229575072958043475226462229047196272328926507624013079709716154670663786097141949020864371852753381388006858861394930257443252462666438226167016041109181210669547269001225765154679539387885447475031741028397375424308308701477105337193383074131266392179099199174640201921729319328613567959669507431518517801028783989297518528420983045991023137849163494928643282015223702431165214863264400301132061188702230268776803237396561598307083670140883116827535417783613612110712048756973301374603262594335171389398133273175311684023463553775479719077706678614422895009579010739207841893148998783471588472472451052302992446641863293045021876566418850855349424067471268710558625611409210603221875977448761322206239843791638108613952122373183442150486802381940212054155701712001844204909929747557745120210204275175992700099898348151170809481340483738443409191594680088148322020085483524559730913282104112324858780394661785563291309056097214526455080844564527839944323570847404080325334819617061059106118505661224619979854094964619405941478122868093288570493293340466777989207120354032922062375148574685337841960391662947219163616110153519315756094655606223219899434639704176885950374716186759764434210036692386042337160322075638698248495113679258942131587965262395782967559982626156484297700581374822262689773199071797060788222893738899420242049876831831775203209559663852515011430491218829294485664954195836839933877643013104371959794756726030532447459505563739568612962215799196865310730139323885151245956406518840638844497715705894358509599751382510717138197790603602580457977519042251031258784601233497067280775304277895054927029449533801208434643912161482049261353540783497945561177526601688563442777200373083778378700232072016897671607288278822430757619657679279673763648985807960393014177836876458161977711220455197874686564545333578399405858434442293155026513790927258370987320209758343018369977860527618497917073258280568108572290698195454022417267035053009103293198903544647011867797713400300656484729208401958898412225433004761239498190256579781308116107884452092247244973398299242333206476860844074957759553569381703932031279188163027979393070694313700465809353849761837467231103756594030790330225929510654763788290253393786251893338457436067254819568907406832636440812603221649002629416084101466740019196256425970440825776321997354887629883256667698966948246023355039044303163364257212368800099345348898735877444937891932538905486591072238978671167416463289829498498881490334632670853348364076268233980527138156723230058614461822011405823024016409552129297867773483678080060048474625641730109772302711887309568919164361155274559749551912268753645720185900904443459594472707162400106821327290786965931475958947508064812364002794974360293245932078959936643270048773514697883765219311736389907630799828040130340718303752144627840666366398925154020302864296786195005066474983070066896263624266940710602889627132642595516902277466038796750131293434965504113606003797729392995114071165771454443995623658031986669763141454488890608337618415498227343205917853505610726514055764759551960150539708274540344184970468865590281880424736774646270375355457059933893715415600096821381362689329012156906855534152768889090913362693445939289005682937308994084835014968623996995444363855434413024045499844083633545135491604693851232752769101044973771053635502060196868977009997928851925324720747735831623504488071773970923106429025545979401998342850362697746186897770706981113488240724773909250255542673185906026078539944278696226104475856455371866942059217467160079072117765758347758098988105029040157986474042531112808249843225713267656005062809151671586390535897014273618747679330292265218743888779034144887750778135822818686569947325708747821712644556659879648392834851972871278667202272005428384923867995254109921064166567049981593953589860490160733453243337706236754385268610738950471928969354213877570147617291663529759987976494260096170229733086010782411033980951927336865218610920355296578382377640175502952992965030168760064808579989171104518792065179307831319960819796163417668358546614739216956438521543159401948683957878643042710551183829819568323793478625440215438404259833922538426036486810310989027546063559365313606573388553183552960882052869150806203287497467603593437943380758994453161699671217602595291382359258737978632880404369299480652839981204628195402752052199873732385683169212287020866342368633701548705353112279329620899182785672677735614208960705859882292533498946201892883413005574404385841233051837595308084161715012148068183102073429636656059407188529118440257073203688072906597273109577367564955409434079458679075055922055749910683188629781285598051474228412718917328207329489614953087304797551127549178452097555968814458506857479861677881047659485508962599685463307577594457957432548162235934648736991858708167647808321214713566169251113842287368967500782221093260949569215496348706246888360123750687454116577315862774197567671763724810892998575092180883526880402793370053554647297171850727662206051326890035573109399994497333172893170428669605303975494917599854590586032149274845769257159757083692101854652451556802498767391934292954026710180026562349285917528481357423376065852163378554112416225509005260289961802267009189124676384377595085907773357944633235341990351066289241128785469964957917623448727296834683259404114681713396636727689705974754078807437638257567128199873398173166186960263506521139872214981754868379844724988898716641097943990239925313978642941904319349085506496889737967214373203413760173948146939772316641339791702738329580145590976246840115076837132069282736035488229589118206700809252944268659501903430353828977940161446157467323921665183085638682077808712732114616837445698856058599627216252193197644592981835471633288882938138552492867115346063234465427018071750902269543303681983266326914991503210590938530026746738529591664576808886018262922214900119071058043425162241110797589815111470871077861781849919228866984884891306421744745496500160913665460278690185644618605318550480149376469661724932477630424384080659183388728131584354095999700885353762211771823359268447054294089207488859514451422960833176417605643320966245878382397341288096379157428238473602342762503605617647367039078306645020013736536379010249992080732663182126542337363319441256201578897626490880190368191502235374918126183573299835913316532527435761710468120137054114799834886848911124999091173374004201115975394208298663302204551559002270061070385169754556641115055265703525187333635803216266295196322531454880420125294634880369970610546722223095583737290780832949793484148402125540516281849580429516514027525302028078320721249095889765887989314662864814242459147056623075406753727112434112102820665435901277295094816587444639695375825014979209296795601850867103278560939856258190835114526127452580657508764588872095601065098251964009943042535748207297641798302508895572132960580970906440180779413639270280022451955012237115789301228795199711464034111923378597250846776061218834109087860392925100499335983800418437418907156906006539407973528067516513828745283607001129816728544124190647168780040506776339098155940049302632691589850535783696383222926178553037250209196530185943794835185100580533562251083987223269358154640698864659326134164562312281816867916197424183226334147516367758095601026823700100203598427545811669786242922353034539568495447738207468045630501753561515240925339424216732880382593959952453511860970349863420497304500265525045543009744468738479147759726441003989184840212662365278622496428297220056124021172583219192243434837813188775441497236085638253809741488376586248328577385032227612105042731149156797727237544641964296426474301693790762028633041372964045932616962099535685175846723264777151942802120109467359273664777949120158163437719683888163829897196661020846192637470481028721351320497515861838072744389310460220197220747526869144691629735881868668278730652354225264302333381614602353785669244837066841781375094257847349707795066773368886273687579452281628597682844577041891053217158605886046392967958885709380848193489906795487315597935135545746331525349939360910425173219153962650569872808485983687374030679687849868417244042877876590105141782431088524198962142544731776759794997993124049998621811351143651126976430977148227473590109230207559768099941078844131853618152113956590903827005980652535583764951286114028886935260665190491431462507908460711233816880159492889893300811318127239523707231771765737797478173284199661247694598229472868274080448621129421298630811745038641627656513597253255758651290054440556691736916391948639960579782265255951548033019308876274494640056985147742746986523205704275034608623393511934693285201601719531517622354053257272788329234927552306948828307374704367208165063520499784169303206773043359072819123831916088019591518151266649229559401572142005276259983670535276897800318188013621858521616383193714159462566862104528694068196571079044236866637770808053972073230115052315059972630205687273116086199249680882058304645186217757268442152154501276815165417622522953548278169828702298928340080981457386673859907886451554177156888530459658320734313937558886718948337410610530670715295214171193777336780923085627806880441329846609014181627218449822207718975678489234343131017152224690361403026409888727264968484083859260452676536887251296129390643850474495150351149747488886118884263482083236728267163424071929757918843059506123562718239139362570015548252919940817976699787043732536497263668706781037361278532697719834401671422354589238095637822008189952564546801961402895513238651696861076130645516584254475521700556389356699207612126975976419666210871404849597497299727565135952237001609386576807480690242969591439857771480125329234738638158232394279824371371762986527952597834163764305075145586646569176855876561289732922541571936044410263818380508697314008480170978619334238976358446027419421317959321229920582337639058000785490369639688672882252934331827849601579260805023084176432456617961280610816864603434073243290980626110101766587829769971522945454472427782988659014952904694152422060330248801132898640546926358896413269554592930402242768556309384794755178595056001754577453186112339314764091352748507047933864663712204924461157281699485115995966691224900886456554916540076943663294163633159562043387022848966072510950717845937237465246445279909512695941832793341355649667280995347252441606111777100886061403110106598657783343562059090618363257530852695762363619994428532189236639474018493484768262430995895967285692015671567610504877663592756306736897866063462277123347959816983717914218829305375870384576822695900874090931664632392794179884931551907234779606714900125542774225495887349993737457072939689808875127993592939649792423043663529539577592372526573296062363942034627698071898987123246159009419215005631122390873486888989215290748719264646500512917743525971353630556087586136049663918068058599743775667999924175916695159676683053937265473726180098135937562192613453690871921783286629238557266264427588369632854105047449120116356365679762887381309763830597393017810974761119337692002659736342853929142662938021258851708994687095027567235743744732912376914709703927252751742311254712183769954570962064108756135869865065141955397741371984765191256159025776677504274767152005466832503122457424465399953165029018936346482011733240130013800444040469411292737472501094574742505083877336024108494965278689250230733765637558150969485272038758890664340811441171608394497254020507786235270076950796028004334491139285143857123314342611845076671690146354383934713781774550716308933007264425624264470385156037334453242908677516480920737526328729273302029362464273724239317652730644338190773172990763786359402749193534829977553384822258661922889778319689172107156406730348147621879996478604284291684664978528635636905899437950600426659436939228327427766171176472167933007967433939928089864950556953856579357342543840822643629425182989660579485726079710976425565454623123527074549579304323606121738159499908504043770480029817488589542740519210135524699763174455971746191720178614528898469160476746502988558083421887508287960135646059823944434938163718712496933263880393744679535600611971662071897737941737122093246185964344578851884585770563134089853314817617539567285534144396680303152705623175583510166407791381865931714115673632030518842303981540461816919963491322734213383210159532349086419851186631128441753344753364994408216263041628073149497607868351311502442006456287000689508516781388971307024659962598886605237541073620243404174696178977898033936554529588195337541385537860790404333300953361996056545220006238173471031629848075800987367451301664484792740815011243956463995619543214038093485039117315148169148537849338856993157410667369260489767070569811582227509448338000520355826907249425663714491329165360444403940452383100726332768271551429914062209368734729416555793685597326805115751839436007648025276158525926507590837644049115964023841171122740269064309387887624575056057892439837885210057824731834086552383182272874388174303340644870339969034655271203187718713585824542199065798556518631906863742418084362803110774974017475963658489390927189378190948550056072209179108949945273269276199774867144449591256932756815820995080383247329805364050710277625744621098431045876209553421299043187773749264642238123069968226971572586080550618265418142063347967653714687513689321051156122695070213009237252714796848271302684751999963910148659779260624105718532842738692492548667563856976235814510563213526624966254426103389014553950926416026603635205672302871875121353373740129396245079817094170400993288504303859523426948908714868493705254300069221817176442775832371250853967487049133586954690955558836696661166236442170936928143764173475809545480233722159826956231610770524040070939900232132671387978218436902500046532128717674591587976620502259492654149542624906981799992980434277027690471611381958626720395776554071334854878597445355490363279710152780443221183599185674972735960766318018708146652233614280227740168015801127771289364129048631718438187748172357323692185754147588307899429328546077482814430407945325106804637858098888108855123513935461425597989754403389287605822171602404447909880040689488134302916830815839487759779100567681086563011904738422943405509345804689062622762316714471195086965654393176250134308563348657843719119201584749390908571578257259677725201939556806375983031841638051828812929330340369232933461726355484491312507349525267857007641340224668928289397316900854499428404621693084969030435554211662298018599110370043197526678615105831147286338880436695907328636133978208304511478452594495776779299845024167093540027009720454442522069128542693035440471279792424981849842924330018543832277138822098060890236787924751955192154351017849627521125966969742388401280423576482534263696601663999131809725228035357538331747872210847412348688278405924260017550802587388113376615738469983228817005383562111389020650339037675457382111533753204464418084765398465056851506143037098081353125893008205917554686788778235369528706104334015616180120506112832597716401329660178151276412078893448256243543839946391406028121310805657055773370922154790553877310195680814688412665119230791847763729099641957716147249790978095575918460711437466639934473789329412753173347928718015101861623611490612592484070406051003185499353843184712875262536767114987695308941708033156359201977465923352220380602421093081064369575114651611350220491662804868712997298170993082263490085480110224168809861603513382108635388682160910447173234134881971064279960314466971826175049715770586939015980611995518349048074815858696456509092755754191398268439745057027634789162417062434783554763756316283260054475533797035830819096174986646035055711501129815096842408428886996528279141319206780804298266398509583820981456372091336709131175308962456543693501775693763251595927338178659389594308239835879155652828874818213708315748463626574387286042460488467355780839477148968858855287084196150973425340454561223870352019996306211402962281476129393335700069897768408540132147633202996492904933290241284563080012316942009478410526267154821485071493194977937605703746103925257979515317376628987743224218849452957063954302762922911405044239682037924430486446490237698826062278605678403254963144549034670531137105522970665437891034941558559949061423567282448052935350455353525988952616484269243957929629111814247926050069170197707300851081915804961685706906705177187543165534426112346610771087845487726690142244389797978775644131701719546705910855021130859803186437504695308969004958799814236886312542933560647061999597268895755693146768631816972933271348313981467301808721232409263759679394851956744472788159187256934381337107770291173034493983753903457899683867304326085826255450669823928355623794820187948932675164048004192209957758853947913881076004728699539049802933916149391251011283438232866248448473958156152283693881607247154827252002702411415334588360697967155931674838858648226111200716583685067568830778949705389498953839852800536071103651714369154020665410495216362149499647453039035297976530161241746736111629070500823271930008602274044054683820364811134255509433631342345951102328154371591775728606215227856879532796471391463922322034860021277076457228469826990867992247765172789534516600133260602040367360566207536205054353355715319582261701044679099879047910610948902187796044918381412914258634673951975112064036007789070137948564008565644138934025467213947767821324149409912294865797191202156455960006813994774042691200364899920154691252167977642483111906750153309134910118599598313144839141231751612413197667347988928145955842079289859962317071905736790221615684529400923196820389823807516226885264553825289695162678314230504072583913684177711915509043019419678026268840074688750610353973062429408006247918400415735505637179993331692571959748963166825331966028126913908962454299896924469022328810037303828631891759873785583624318805021973283782722539535405780298906592157124921011276494605862998732492526712962231192517636626232935272829203512937917820459636063340693064597901962873256927391000228870762751219943037987757399476794253505127989002481459605274804153585590798396035457467313707958374294629662140105489663635400885125464183565284370098325929227525210645094991341410350996511723514839825995074380167391502156018316380382026031692980613846950783775202690225188361221576737426459674603458597769853364031343060450385715693933103446737834103767104999268824904732101220002777982574155454338522704919688589396656567188560282830736285665336230843992624870592172903911602201114200342078228164939663200874940445128377371863135473154704107278099179711124571729079091944406486438369377928974826199712828719888885427477088189460461750265057898766085947185088890814098505614277796068609948785258278808720993478439170245439084219633052883248240892245635988385562102202359537305096017898058496361785129763224728821657639480962130158851424312521243853196728802472682335507557337494772750360269489890633643474775425173765978685282273834761239091704576499555093984615677768240263610204841651156791050619700096283617335985694599963822104442754454535337013366015811347329286500764218304593815142161321066071279181736094210872965332283630340512941509695794567459112880154706291346478456009498817000674537829225557390658850858905670347655123943496761908203327241776511288406288356892384040404301227680644078825098061061437254388168901034958961061813563280163827384778590701298044899739687418789428062844106343334258532256421634972027331118161185429607851973795424406276908584726952205091048125330708735903198481680236720585451908820047225674433323175308771973762775509125376136705137373187595228542838607147557905841025012682104461818878072719864496358326103606375351870311664082532945685389185371700268918785038021759988534347175599273996840253716618095999359200833986639227332289247316177372829705625233468393351836103998465966719708005901877095834947263081814760551250038715485785004419302423576954630058306242093362304229931879635388462233634012312485688376416398590081152348572301303897697822050187843244649805288353601528638694665258311983531633019108695505215757248912233110315177646599813252494748355305217174463744612638517110955077155274179329274869264342130341901813897367243181895028600677966809318515720942952750254845123253692008445863596312209976175991348181660959387234270369236432830775702884600296637100684156805371609155397624959678446371389147745194839795309753786025076328035233207240413627310968967577786342980392762810997946012556996465512052909674950361172144361714230367170395960144107372966426246216898683936351763910898828469965610215275666775051028660108588377954697393226474002142748981814370875750759388697770725463849624592800460130780113282107500689137954521639482739272536043795055449010410011978087470943858504614337414287532056781475586546073942613859030666595063299043124747518927236443475081599226345284565353691269573338286054647075869834476718880935174580748010940973203768257185230435868844846041808206000380850748532184730346464749069315665032983847100487516123609830954298138304132370612992185629984003074313284408516593224842138224652720093768903449494611290366927204198988440545136032164010196175137508583528589243731111880477536277645377412851586756479815987356517576310376604899572204106346218054256184053890424427668764279083641392127300171268537691379321233103219959409062725549782630098181245395708665522670757953052477328829049044058932300171913377833383171747663142917710564820094164446608293085515382290208251934428393334253655272151950034222741386815286148259368853970424790527312299802921213399996347691117116982752267678548636802716010669335283940469427132098819207213414419775656680205894598029884590694053802514717561100277764284135119680543379600306916077587986661756600683893554236694785430077634375714674562659844439203724176159603172733707815640660260631111757565044573108414181742201665032886196003480145347371907442624295572197881778573135865983705296677839915315471463542749833330133416182631729525184270580361094110234016915796166178491468714908456310992426818166433287123847787953949811840308348600220294395893968423861035122908410369435166128751750523301393451093111797922113616806147982562546517456502635796871020231734676293943852764273694221564291608826470544260730131824394151214342009759873879563422633908568194671942414756969922410349532224743755842777330989055669354246887516008242156710390083711065800298756628890850277642424140290107415320175446040533261090622991859876398035202686491239757774145151599425118510144982385645993536632953743843977707691185459512029432148319979109788204393735041896631105292520192187579595412153656311628898855891089286752175092418724467740986027770415289019796348734870024283867142545782050408285762246589653403514739703523585825532306605344851180148716386574805478082421650990235030416816093344834244341131907734983309369928227054794585421146094198884767138848226159452708873955874405529386388082690833636399240097004395477012288316825439820806933647456980939321004414208335637879972928821653557149717881658675581700047315138661253579150697007338900438269484379302067033825400868475019830409058170495132396334039102284023023032831383524417451384069818549355543160434678633080391563712049957235819744152258432183645572261665064877778218555341997505394985170315847850273433716587526846193302298504734494935013075975312239175081029380413353599666431649546946251704381305528055184385728898091803549740112349391390359531908686591985040788263738212857112510711026609183905728954602955454125695186087586214943878720462917353681680903908682467806345294922372285870700293065064251780917144219673321552298777871600663338467144015676853059311736434986150818329398984344927326569493374029761501210881834522170509378352068626401142333620776984964081770432910048003770853818268260028926599623806999213072111402925892222632060321635146420535297261243551221605175375454238834424584651986910835812880556792922634529329375155049745779084077535640404049796199172144674155767451506586778910552895721058886713506074168605203615960915824151562783351680805371854595594205531227366064033289416381456493708852008337751970696185061334772889393352406875126664677474216675895491246358242205127351862497458009198674704343987711944562076526067837783691328098648121047364212738715891546910016085633801341407642875381569961007967559030034936211932934914417714598617954268534125138123372629856455900948999459886303661791903515172904494033848067255868887275508034179843747162737075838851366928928445738753395047614855693936325180462243864168620568269327334874734533407382374478300941820683832993027278021196668213972179880530857667175066778714972095758176114042394314481342332302849778260288031864803540982030978017382104042803869535841280347230936157514267732744858176003025340450935222399625796995693435582254117105008854064627757867080913248658007865003473490086920408196537708724715862302045880994095614945742036967932052778824305613048176573699900912096849538729909442971121474078912265017485486500568650772460646815265361567023747456262272021205659691080224401858737782976121132297433275954423228655856298970349711140513170874887864031491416422049470468754397977920695315401164370925076349391156827996512645088920573885293876911481976333115309996144369567437660548469389122334553518837465210386558381810490293930940114591845420879432013721482654200625338717507409209426090597034626010991408690736475715646795882275883503355852228709997006147548907072746518688211910309823577994169544074243514205245534327749439347418780348168981128724304705329975621793592294630272436126003517105964027141889165488159978939457017926239833660250512356795081812924793330309461540590931454569790198917159644088905902334876241882442564755545223736778768634221809197931213458979441707176685476824186066703424716584742304541530843154221072228369761200670799568021842942006075223656887941529557719754256983788803510030318665234324711392083958913882995080319527596734750369954780502188287134004871549742940342046508808189107821218988888065219706757175877013741928210877276004790118082929189631276223229619803007051626549960074645605493403073189036594673169235537988691449791784683195122434541452150296401439221355559644696495053856271058535920219650582916632917225370655688853540351158948894139831582792828798635888715284356763019357606359880154951702989962048846997850469238423331455257650877621337876915978031002239133061080794966465455990394307804866638058260429250231530438178433888212724189793716232385731776770353201100996400819830884861763149577800426174273400880332858221318034318649833846743500394528665654776347338563964405514053296656932648020962507169404550375447117737378347496724686833702943582771252196668827549276200184319177096938232761104216410781155289325970708247475637043689262995383043514429580085197552591276749948561526000164765333362912044332345891743024909551306277647004869706651803102562750120291814648446900980251556009815736724710014865128668851264486343881664722553394684851902974716251102447472068440441466326526122125616929231555120552868370589164158539243428210597499238615009825082915747711214543836153061655388178385879673478441019721784660637123428327242329425453993771103587135291211571767852996601802208573608962036608117446108391342735438626629626951540957568826404367093244623585845858335406499270412985367537508272099343966469256339438491397600295261360678968451425398142508482749730056851276103150959217682083973810394172397105350924662292979663239995471160412636219954894031063623017468151105137617723978209500434893547290875726004523630524515527727609385748601192138523308392352747003369389544894883222738612295127661839004760604362725001594574712845352195375488075621326124691048331531343446791168425676203565194701353997134313851683779453189997637580258132800347303794570281553414184684874562791158785975892461895207478765590973525936194354277534915395643408882498405391695554981774014357570959492948988298893866503013037123743373754432304489092668601463875520941793418077733037671463594396428270568832094246545439290792091792567324079862041796501082842084124477344994997679043405688831732459048861843976364095567047949497064704380690730179809448377586286754935145652968400475693779030507711796790981852913292388131532365993927125150402925199569502683241836729261647117730038594957057356026937220453653797203872831578217083994652871370838107028627208490185322437265459847650393519591438763479775827061529362629054265938727022044721834238614671472626802101990145744847884200916590188914172901763228783158953508182630730342693022674658887556231247580353126487056022710843884235151511718235592520566799454174702640345140347668161036182651361122984995788031427392772434565565466998324227490966100295375926145494265371105389762225719757339439746141507009266214578282649594421095406268024233681751113139488440871350404915271796559159789429429524320752989617297609967584822554395053908536809634815417555857079498632327717201346059527544974091958123024081480635295939171019184491338161365426071596985770698980634798510131965492263566802103228601170345102087809985771453975028535136340591263144715809247323276643396729952783501227734163815911038932771374506728950350855525816614176822921854444085917941068494578692669760468642953116098023164866360500634003121362299359677817277406487779629327315456094211622934774371366190758063340033342477830910019921860828117338178082475298610187142649326557987952665552997311505148020257091189163392712465661343199740402177123705906247521736548699047749235858590936482590591030886241449219800886127237083641911536679828418670515327510053502934771369657594630009265002977266634311758538484226623181789294640358343367027587595370072575490479893992849613216244527369940312128322431675204728711534698916074983645581658580249356107403522515745367646397662638562414587012024456417199950047344349050286944183353270739124109809077997020948936156479601240473762441187970341501163946582135168321076070616663877449501332607851711317112030380776318140125791932716547860679249983435716435659207458327370388681683621615155987743371686122372423934145949068470363069762921765760014248958970920712964338859633933521229741692876280719039324285808282976654287826915167081946257288906227022034328345191725266455269696501069797072066871057562627590767590272802030877611274079293408478568993852583035520540394022863385802678366212918259110442309489322812919302015463883848937948495368249941477807584782821003574271142986513706965832775216744461676857352662710628822993027851007843970986716685314247605623867252565253045334629686891309905381737429070342363032245092960305777195746021192812724532148026133029498332734915397678302672062959988475106612084288798895735086434350836519705592336424437202601932863201877639978826384051288316852056209651435104614389552562049460182730722846309771433353256547028501906540971633851826615865369234216760630469226671751740273421251105677901786213666604387601232962007183768486252227572883808077360053998102989528580038410064358474424487065994776395205023241593598442085762521169498809451461958774427679299923603288812632333547418815255769153110612615031031388233768407236796608991469533001546590991774506204101973614013822319435826682188802979684602720572896646066710662620930702896784806922211187772933146635441549070040766960499994180098787708306684078390656899716909213398822073069506541536867255126905637618374481997501361604810808357452861833210960568397388496251311763822573296197216847553624126124216862477630864717630440673181712008369517089929473593039102753851309522137959925630920904767487970362047878618782729328838165132571965981017606675836987618151356156357589600376562528903047163601353835764843006056285651139733285168672550152796356010059637953795126734879915976257039664019322009972297153079262425042836628630960404225140806121577405940060745810047908867354772289022639890436124975293471323469813128982460186139505687321662335671597747038784537673009957882110120507326128838909973439035678757346008062219444617328036534540960120999497462882480099650395520817625169539715889754232965530342930092916765837086579586465469425287991318443503973640773656407829949464474052084232131021724041524889761875495218174083810591662939958551160750207567447176974228455740344204832156688893242018136959485696161170282198796446065727304748238401889191902432288575149409448772863055380183488900264746421103489631902099078859167024839572565884440617021318388907218474127557731102434531669821324302548414637004754993167064067820417903822716760320843773189876676085838543695302405682103515863859239128843825722224720889947530824091299728646559851568954450062300107005638294990581587092785537936855639032905115795973955280825217266533019059999347853671363483204325183735239129209130401529007027545709270449980773165272520905668792860942122096494952505535276378081548839740123914968405501423502717734446408841526134984683751939211136153712842408760126381990550944479799812817296291716456981433501961793837144030819226027148677734895595621409192237830260292927086901363139815291679056160961035866471378283823686418802234380643363122597887877222989847575857154278555767807987670885848745931685818101645403549813073670995849753509619148836987088358545593863150878695742311743855261045132988448781330838042116282080069762663308427949063612735589748571378263681527550521316408409648447502016682570283115743488792214711479030899494104024067935114116730769774438653247015417200936183156237647565813949880967231843361356594732360810458645499407870663299094774650016815791899849829490908847300512978818911616254900767066902409624955801262774846331198737829339757223119062885999648735353609337078960579675328709687863228931923845916761086176232288286581407111098245503300460090319733953597456912014614465825153324875664443329669635568673515364227701973011869642919565804764972278241948994282580257635866398259215570126842676258911367316968836093291473910514948593941381434263454764237879739202671247187322120713683624918104083313876317354602205378698012708087524795695080684376913612512771275767339386206635667211174785592413385792379021332633746726261621749544813394225101714453882750955575341381449819947908525106726059538233798469651699850845512724797699918459988877757075033880349485000974225452904220741601260215171578737215162497609735556974905399372801947081004472080221146761757843590263461721443286336040079417632117563468648193558591473689462653165532626914452315827068091718392438889645650259373531087943683998157000274025834113978672346966447038017423104875329846499416849112460193073535733509806227895600327465225751572815776898796454326017742684623577308727336771579791701552809868663470273344842492776562105526799730484927218124004107467955646290111417894725047719320759411656039987473003505292956633540350766463770993852399077245980568989219940561456320609972277836853274459324460103816763281190580138884272733752527574228047087164144221924507727713575102480685202271398690633887397186287393853417084609683886321658087066226292248480212530468155952214495322447131187581093578386668818055262076359986259688633462877732270418225981007477265972263468654067659255957796670200229212642078477525108965832488318623494981185839802257792433261276628572876281137419797450060372495095533947442743462582824695556234353343768423166500341404455626473976197307925167951864813228152130363525955253877554531770799888096516929243823519978553966573929370008346390599223396883924157497784594085631490077799058583057043496850791328234468946660060245248201891034547564651745439569092489221421707304875278896039246074458909730118732195447104485311607694710667389851116939787507849571826831265518053957859546734626570433326537855945776486926323119412355753344007072401389742359883513034934545572406829561361280150927815339475767321121844147867523339420975398514634119488604813657745912862012268040149978979611723689005143920116043170660084572613636431833967842819162478676848486147832150393634881232772431039584487747154304894745883814224074023146724351527934093475292732283931573789723988475916963464011659078957096366153496932761185995242408883547832677748991420555410722150639181902031421487495077483058764475812540564595986905227024582007004345510532163154952438008998043698907125637906101869144567312492381554067796925122760613295661446399384361975676895623516732505645157702034193483601756883051137766012109094575252523425869169840550248723232638187694237024064732957181592966166789878256468608721063821298450912524714005404764722574541282577349233507972535690826037352139951888410185916650180476426856308160627470025862047208343593546171481031543321813691948001740322266327135817691281956529472914686856333242982674930264096108394134898387019733808427305908121961527567234459730008857712663849336400527233860714761568547601672726784360260628138659330488409979463703242225408319234637280373378176051337034601409838619418456441348581131537478829957123864210795687631301792776491840070599378459202225097705507830595704461886663442027598753659448278394577539766121484933788752315613733511534491452360654616976396386212826453997835136427975747441503782871529479025100459860607396955690428395524621938650471117618932308352712875335685674267425968458021517363740680102787780387541788534542599189832025169116495276669683345528708033115277194038065505600260124460080633606315125242646027329539156262598875912984594218919397812648864566711620137161297169861584786218421361234586480613774088046041224430149837862824383721500427505509513626728245713591621344031192887723058679945069501874877781560910753369801601644274814598334195527128621500126348699929227836746349869570691496277376518859871537745518589979760742324511436779130529905328850073232052841731821578271545512377602944420194465923979738766269966362258957819293325417909294874087217076156538243617522203720814633790795119302073666897937516231415560600532608172930267577293935709133027002132397365327082786054819873489797459985053030558794748686232045103775488118047360179585063024766325260426994119025166600197750259263726869491482204762185307258594350510020974121078248959949950311952590746460113344970653625129187039803619296488259254321918905321588764887908615289288067062805324800989786165887444721213342015887842202819650216132802558889796191051144633001876053325033078694115114858607317556178480007358436470391232580740079754838780004267614825153874039320984025759269815591109361313287715978687412023508760030451222623985086448556890971849990286788768016777967157663356452537885883615330218671345659439153956516824600979028233175631388833370046185355251631709450195253452409222202817738645551731596429037979373190056224142181448999056783573266126797062253361563297290923112952049874525371200133781747592387573765167899207623265042944403153078975516165228375942030127610573793252192359669131561262355571934407089943002331220725651820298106670900619001621973346002314805942859646813547297760217706930411265170117928900325256341206539890719972228193021985386945432420491089791176314216893792970270369833340892942725741692745200331022072406428977825045981743393313901972053769922309567555448104477184429872165681662080036541997239944261826528310969118661726608669180306295253354435566431641699092667465448987562544348008138783037517706687847814037673043927900358968339240920655272865165979694351291686549285728698221418003505258416116977758412131734422447085897747392395525653563142882936608373465636611614537215416086994351317270126187963006638695111772040986863230741639710402210112676052890803769543085151935306516811736738443576861687277901220551600340242283686713332892435913669562916321770984347064862081879797435130651623877850006869516776980814069252677074908916465989568320046880820902204832212736493150782251975346769688697720187037426695080711558026666809234488692361934422898888322497083035797857567636266647747122619289148059407343774159563977196902618958397643436869800904938211836896627451833950713622788582722444977753110146650575817306796929335558489551899365998308825682043323240379928796222326712088064774474147393030814905328304506087939786660833870770504867617445366058738751755318222644673511226978984315215714904426918942548814608128404132052149331754537494396904230026312003981946912164364954661851828281177438107059147784173274379291002535649747291819308163102094076953345257095231513133341885455503116825278509456272369941461112977358969693281567714312344251461092997742699994202599748708615833490331140485238312698164921130685601772147772393023954316348478784974218282661729975887409974645870446745675702761368336778887655130196542522261728557104091383981278984030519776131874655626484600200156131909955856153598410502686150375760315904131512570715006526467881897939672738403335077989025408110283060735444494102159996782562286889226877710120885763476723687435676882660364336427929142913152335966495990888338482885590898437079840140883987387152006180733921669785403159263566428624537585514208986851448333529678718986697162882994916176250566288065006417442575976361599996667132798543164179935885840789090192609353787158495524289659075584122725630057237727764945126992909188256204777741894911164534654907563848183765054145644568183619181239513727339547869437186474371546855234159865194342633084105014449904507908162509271448354276544248243652187595376759994322399842224271837541600033254444177430460725779027113339471023989462878417599788363168341725425686956129238268204659864381316899485191899738069114617860059495787838054596496026108860629402017990518864005053696409464283641367202847724473522353820861539175722861506477096018105775320394834233475385923068592689315459127179407428654055948133002549154630137736699296864929818699887725288804758422263587043529509865065275238286088596908815415605932074361041781509170604816921614420245863841651802436381714832855758360824901878420993094588570114432702822406171321708643952764795932733657967161746045311369227741682866909233500020545312392931262122229805119929657817297243069594011243422336854891555909366830630536040802499750158360040820994885438881063294642160035510228820599252909229121252418616413288742225867464898471322249596576366530971595033508988565216870954673298784745997030779017273827929352955280631773769315367293594020620868547724674270849373105291040873194951762560535468986849927881121363805535774223270997369093070827321807844276633962986813786488449793189577723713224428969748482529386058204745588844460893360049245060916580125804893057753655912376094106033213622370587825394337099508181419293810885283160834193903569121019453346404783263633512506710528463208313390458649841212380344932671886457774682109565141300489178172022941426882691937980884586322575758342654923870821788171396353653694415980426242251005959859733854403984572845699269661918265786678245575990297820830603969372302271347497950753232008447135347960521799839644047182343025501191545324919242210464529820533489799943982404197164718454760612033774949721877367569273259037271846449698323685981111207439865383439775939308190192034333462862357250797013525046320792050209843933396948709768166811834934984208988526006106032174769755934298441944152605882130854666571177738666984644613273251817704752796709989677765355624666083761380682069351198687441948026453389531570251905520262947557949041819802469846139237535942340109073044970953090116603738097877472221629583728238340251575080221899604963390443045844114164565528633083195825098647434974830444208579150585264211877257582451167211459782628112529468742927155902949374072595268217141948499129517890128430361818637702704049901938174084955236317736888150557565780156662602237109528858299040172590640492638010648998648366713358217479645603872809112981637886765307134013906437516908162839847620244711727501850664850004011785217763491556090347921760438091132463160013622922626257160549533203973162871656885254851273922242311847035801587552151738358691134211538131014422432998923885284780027252242258498367579594586901250913754875084302507066518464208612922493259315396176518954027708607549747412238268336310939589124575529664542884537023198685192372294567252109509862604489986898115480453003905493133311322629974581029609774807707647598457292194025759603248915166497482475657157890988824287230206794453040958337308731389170948738108078485046986404530601016977724318758938345052636357073311860154292933874486752267655382695888065486797006328803286281611832163409979702366913601644294313656282597021392040479034350469157710229784203278596606958381503627317472246967324265270185766892846954984645911719589045269769451197538189687478480332715840099585462846066781231187323273447598951270597707844206692512382908040088359996087273186812470437079192491928897903504244613950468046818172397362346829742696149027771077615165858040905978456419105152231411176881179452106040081079041346996380302812683512489154541307685099889850138019877864588779824128449162698065457452204816008382686016003557808590505769241415950635237799040304087363491607899623268018666830176628634608357140690847444048606271190877049425900277093337150963663220164456726555063254790141932361751437303633066323611594834656979460716429044731148988157590816986429045094705299877587404468025121804654513970539731957867584130544701262085354747172912318653107099040234482242523667103275898164077766940661128987251558418492749003633111372968112837197901406120333169884278982293996759734309904034773462043111057653290327482863310743009301091090612703906357503195138517019573175064446263013507805937621237177364591057357450560643676385816970438667877339338461640407100647200344656255945546449477919571181215142009329860435201849833128938229299997075448497082764546092678056865135327057284669710073049777959335762202223643814486164444987257184119275717302058202574012988517767416079207360811587124724347291926372639978097013813749623679766767689689163107460660347674521769284959194561608597443474971524029051731494353312290389064565821104032263046699711773802653932205910347048629871158481861407953775046219094645550970139305156097364720539400508866086317288233177984138139553093121328720641865986774896449638733190377667120106009086012067265324991481826358298264873562161429164438724259678887319652443812452258059457685335367936624554923952411743409530430066897517665527607337152599110698278069496887549187587546800398443080840571755094955023766260782816022360139037033004815845025218247898009693855002169883263203616596241820647475655794635629299328380635949212142904008708123731456898471791765644692712794524924579913537658461423482099629725395632245504342620283280802107315289843680765630803232777851064478867137874616924656511709880082376483917011131576139280830804255103326784022878826385378334988381388947152038112319756424255382740227120823200049801171885575499674475748694613033377926993738998114409252405765713606974792092756975949526912149303576444511488402720795074902750742724255264846269310278628277485850937913194692224497404276391165138297440107039885820581312068070526469927328623379328934423715966019252845857523557047462093627994552666485759910483056067549743492751266352343888272651695643261776473405533933404678928229216563843843860061606005548247222890388702242060909021666695774607406062085631285578222643411132333690598064131796553142246583443639053713700075450449608322867660612477137331726986658829177127210734058882152027884812022063258735131768358435355775266549005105436785830196364407061440622196215631183450510367613613679666407145659627740941786794395478967291741852050719065994801934163725375828650527110654231242361134113988096973860266093750183721654210527338564509903570466475981312033479216838031856439815834103820583306352674745194665211355890548756726897524161058796254754070950716536419183409317133210271289533703943756968083162071488307551150208410933317096352465935044102423967789900055529502164768953731692764920816487706633514127674279530553488739350986922869681454599570686646603182888149114634052592337128335059970310431970945308899046316134488382585273647531450559958169715901013457940391568619601599512679288520643043412208420763160504961786231895672011311123756807348592582538395853976903780645696836916544991512451998077927573871403629258843852990998010836730034046149975902292430183113070298295983107775697944497190276779458888742824304263954957583838440103615039256843168196672462538337029421400092485925296592746996068592973206934537222094061181215259691177389252663905965807733901952896201832214004900058674061020999993519544816079090437985094683942954180988352655024853874978149959615965342480536050983211426096636825766398859953935632942564921652506772391988797497158157523679585214547482310381282225862713779008779736670705791090683513655731486726546991506600849319158526565334433389329563821043338783822196923081509244340080857196651480171888561532618050074072820076706555181944302723576596535721210767946907794403080209479630040026377596551218920716122529525111182197220448340639480206892090076027816239968757429997319616546234615068703860708634842947863816671094036030069923122078028433698238233617069105542550483234683497978136072268427050597967420373909304588796797503108910722919884677345019283128673406355418093212999629121019117756474251914166847343923055613338396348439752539220042328935172262897164091953414964044510263185862677241668168816918365926737916936822034917922897542422256676728719376043821465813538871966189710727661885224671775284112893546664369075832011983012986917038237244189891010372534518129076335169827562065037905676168123943811740910606222630810618078786065778038168546612353292251045620389578262380922924099311345255788148393063540907525449943404204663403377351496902351034170137518283407889117580585546491419214199698322921100818849652190282068568039070607221288099134278712794496126204308364708321611873671362066393979915525587824291240571274900210762584144621063941301902320834726432390527395421903280515759377892334393543354101638948020022496964144554436977207694230643733713458163240737814373963740687804371942550528097976638467346596351327378485281225182208141439698214956598617195874697371496514534936420758971226990086488721211264154403732901054556158284577694258359038876615920778539731520475679251295555260502557086808946111840106001243361582815788320681685977712549118742683191495540478125961785114748287459279155535685772418709106822223783127305100939478349742312950718560997261160380689019597917900947707031324494546660577897683262833695706503034329058835285309442212353911947858890872184957992693926416444157808629031379182170770553702952312225953238949159881507301100474997471042562647854985177619575965576118966547754022122173822765289185769910897641746864831959522689124522900215107071127042623010303097206910095845526738438711516605131640287771141980149099603619932288346875032372853655471456758743176595925305850085676420059225996922180136306819883916252599657846659121847659059955324887479141453872459291673139316080431433925765819349809562863348711366623048811742051147051056792505287576210793297664928819912812981433137063258860119518754185152362243715431217663151757330774867190333324500335202070447023690937327225357709092808328918435986176677459256858913290171172755831522048618348674388262072128489427532450018000705679415080072589873478848125509392615056332522822895589734179798871158187341452640193150645442484318481636786134421359203469434270656613535975293231446911222433002933862702316568183980155345636940202993040736963045429660559607018628744849485790316720755106484863577734017460295369740975172946841806105137231930180232354654470486970800718174781154921484309359496197674693809336782243441252960314455940367897160360902817370357931362717090552075149799136785132367130785851371045243513810669884162182946804275509951760634055735220041507833189315890183398756880802969764227875561682803453555182310799990255148158507770413273865769193785426124028910059415614268376198346673945702914768737569297145816999630412627660434448485134272532922427626065617672940479804439118008813991979707711798996189070918406524099320099785884852932677120169936351530459038232712344286775605470346143461143650065425259160926233806489337120002599991689156750959290386494596482477372696814877560351135387780870110023810083838194063300743743345461147988721244657596960992828339151909744187431133131158631327008119531021224055977128502964023442132813641961978535312000181294660137109315871150435633686528578245085881721704934576567188267986808602265825855034140455237087822371863439787806380367622754042045312496997326917049487687216421016418477488839169787710494061931627250789819169026397998814264137763710922224135419579456718734092132533789803368922601047584094799440553850782542064174675455526356192255195542385756273584477902668932694988264661503644523770250570791296576443469950442062102212111238600184028487875450205112848725425515029909354059283844922783392870565267450321867998037549139969115030628183237964983789619626152337628911627866342954584146767540253164362441219620664966484859147641474718649562477249685575831866161380172360520581709725314040943985534135146077568027786336952105296914688811798318891925218162423922488780475106564851209244576830794682933179878766305493308633117442981553000858695721683558419853879326292873467129771335473513947707070388546668268724028776677667008387590683335559804204517543023050876149696242099188960499182693556638613536974238843844421681291635515996075228958010107853060439676854146141442283963439317119274432803437880664724416011645817339114642623343445063535547431661884910933805679100260318500376232557336142376122410952085712206007095838710029407298929425689705289495527533603676201004597432051842193373414026431542627033905717222124668417068525234555998893515607851742790761465701223778108742300166774250986936028766066543662401928602531198246500404701275938318758218150891885050861693662258999456980807166767001571241143443039183046406720392570078558546139487538258878268074463222573843864406835047026817966747559046990716647878198891874370582769329398007338088110355952118067098190362110277240323547464117263267132942035147210152457263993375106049827253331238158139380252460769905620942481422435612045052921437537758514877821928858100507977248573530996114010573312738025874478869484386294993736882955198312322933354619747791894154607575416625865620036571024997208798691709961519702379428263208311731622823776594548953175089359481481066150211510131891721862466054803546744914155186645955650115589066301004970779045070290762327980190881841744701256077625719981127489682849382950004627941006174585360838288724064688935654990430007854884835549724265530758486203387289492221759024833248142346682576171216573662385695716200501412229182099844477658058580602916748890928147367832674237420413757304355665174220541939296007877801096900118792733729903947387219069270606173801635624500578748513506369170860544665508589895017340378831786740829961158694345579996786715537279018736266306545207798191891714779093180470758255522661565894817048182891067335362183875371163446963092500125567426237292438293635760810064020292386348311417305813296381038171278886753822537371474132975121752058954151874251964364597826057007248286800451788948670205066014558089743171537377482817052296870261412892295713375327243089691137399830144142518498260316390659317188853607727751138776505172165687238760620081888917180392382600430903287257576188937824215737598603806697086828984687044521262921878085207099545501191869864546265126757806556171690037404014779793092779131177742297329980941584395059887511405305046064994160833339599447603347567755711209409503046763386416127175078663523250821888206206743080293852648680091482108480345412717841965994095912763020581028287229265453659025737195026606836072418762696395261856782590635690419604760037684774689272437224051570777077020643176152960440519560316191060889424516327994755260900892704426963426427916614316037119612747072306707050241237376976711669648361991218873675968483323344242202554618593810442091300908236566776289024932653276124435954336414768838920038318888123821423755638237910011939853330475531346602545300639417736410434914666007490668684104799629476895280466992548726293417196835817149572854378497575507808681019720868984644302320248957870433869014263383267118074446382616571289260347096899484975850105129176339349897149853197847574671962739282098930975020857576120679832569200748934655591697494162154912301862766977524480645377698092270058913665007780725247745159738918054751546935786796748735695642154607040840588181360738815122119392907652279803053826023160205968038831338759188666720818399666079430382765187428646724945192022244000175258961433424965152756661011551259706550706537743544595764194311037502516101050898655181214042566173193892561211662957087642666523840074252787439944916816617460140549965707246293654033634220553684573424532151805748687068968604785036814336221217022797237898452082450957755210278437695454697176745676290683860679242728092117124970826590433404047459451034443882614548810108512165234472709258888907972283138177277907153343129791546819573594620894596139991405912126905388956736554814390530566162831359481381300576679893232526974699646921877709346085866906994377540929522637800899432331479834260731123478322556232470126529833448455653228127822937780742376814945291498772378002738336558916595259221885830303321609840203548900946770318306950454441953638822945565058033526035646723926387059308117723439507701094823143458712144870506010287817506080170490805172394521712873473008716577896230368722210259440487744264299384182344343487572150980838036283797178454531592681233121377444928735951632311209134569762320820545449624412050059076069877452414668005511050222741398110284167893345285848198477021730474221344405743220969489400509098526690637879996487434625887139227268565413087314520118214941010404879211567553742974515895178616665188900406599163059064685447386577291574200734938977678398379169961143413335606169003856771592003818983914800028393395098865339801405712416278692022722631262713587541856238776198618575051323842324368207073788182965055858557654932647290296533090805031581965274376309093723248317271166060614702072433197048387341303385675840198158537590899104168809936412047162512589659967829760910576600580368291442258531672085971498440851112215533392832121391276545231875548900219414119903546222571369958609349508525614968162183360112701941208235824762364314339726699296211321928566314287646656412695347302569772124402280035268120850151868675693816889835918646926982075418530461090952666525868420556162358469906354512678409203879475374468867556200920387289145147901874488726489972049195354532101592706972196279571298988566878097447662482389891216371705714732377030984578325076820474486278716700028961650294260714670688943715062886503850452388603128150466369935230684802863359322115852702165111223985497815128414633486069516702637231444300192182837734974636861038397655228584664540991911128647725964135570917926590856667182696041259267130173855792944949340901783193088180046620869515310486654275722630477468835319242164500495539715218667692550200046685933582324999441448186457114047159121317571320124321170270633987271878521693199747967259543595487513167603465204214666090065720793080668247505919105132444887334316738726849896036234223412578341065434344423241789479417701149091513154818395283971830789129132144811451179294919791299282826362801075594669739463007151571440461251734929343656636526203992626716219775033874858836480070886661074939430900401205203202856090309020429742620295044703174740112090026689300239781751546193158049354852038418903504847809009515141211524205092328912387124152463970578573618096777305145503845105172031864880933877146130494441726059873394685534013314373338077629324703694162476938375636849324863055757126034456895881163308838092137787185012350965458571393330266716947405948822357724869945241768574789917511859381505886212834658111509723089351076826838334878246446946241011158350556797658765766003913974696287911413005938299644462004529247903792519556155499553013938847376064495733425141833889656843259234428786084718692692316590712769622333879826320516681884989140359026651049214825808550945702543663281800785278480243418798678111774978417451137588457774059292311554629253260761702528486899820721165611019411058142923938464899099323893325574484087822083751399007214973753638128848947977853008193318151903774801308857935476111773525217130421112578388692510684742557872303845688425103522420136365396513522943432591671575266725188202937976384689882337871497048927134307718653215028995782432992996409284555772382209622404370419688743743745757219959152280746604899974027195426427725075810237098292606245013311824724961648746322561451648154198246091331102607204008766903806798816185780104378688152362255748397905589402578926873495923204536775346422182603162899816369390976611284579853835127896824943342655186046617392498059328564756344373909262743851992670376466688822513366822033479527554968340434526495556722611635895560615022479983019583664129768016795390580083669196099147508553704834041328764263988099413755842731085683315350430921817758562795402300109488967273149304106864296417737122959703131017052167551703289087097504016781708422451176055674492126757196551068411048519815538427259863620708572304626552400329549138286924813199713254492168068611026411449578429421592172635717364549613173369574056256865190787770623642983749830099572693784277607038606736151578988212322011246170916857522275228533641367125532878082839335506146512563385599892309469417933145353687839574940034772568496222477210745926633955975778165018708457603937516114549556462897135283024938980139421867583921464035912229185417667338426825430026852276060921771705928443069285919891422228869045659365416761115190469631678757905201553607441848286807686611827254964735865939778725065144454974970104977117295104958372879630516370090437151530113201282582166587259409465607239927548436240707829538746619882112751115817334740296697196729559315709780843570207141464668199584796757178236241036456373004768931188288346239770890758908223046018225695680474363338116800386976540134237528255300452730329126192058227345847501609006464904446748255123438048744793020606288971205155680057354597001528045842913599130089638350922778269386691985386086812237488529096815389878363080378898501239322518625149889652344558607270234574674947052343913072565563846096712731763969308063956361749019000328172615388896844727453807992935271191275288198181380240411034686278431627449569741797496008935578308384262364293845502579917315208673200498315847296466871334025394248296702297500735725174276463881200796058792560327943956557767278640071013240004782856925075522090045359300645769081495637929475840451343535693045057855201168042088254122617887175667405480176985126745676950161734648998389682706384463424228104075729569598794298923653891618788289246570760305844199483443895385207983651881482111279627630622848383162335812888567093519540886019282569613204425710952960584341584782742386743423497109456973676962548518664421383584562640814213378875953249519272700014990420665578829634932327502266050443206993662851506364563878672961282517812097633454932500502081542687586614823037635043898481140837135245358870190135000270457470811426394653578091807083659227806679495217113948105426572582304400903427807386694570960619255108869987778333812766051005754208577919370107491307121929014819410386431993321131466080771476081552181499074527988699012446191822501999493004297712933426243360608275246381538314622568353616370002609399277750329811289216863702041984694685185299758761526883080527450059789301049383740495507789725076407169606275942117099746176883827493609575983472447521824685807225891831792259597160756507298541485116986529517859519900302915130843486028520849686069243738304234388374610684066698036938323714615488633816917596224524948833851217399682859243945986322511240791224948932981833088357416049705702773012698858704272883573941431451233187468962110665814894855019179510924481282014185880912141228133386297186015838627342216312223688305984801469728286784890822436478213598566287893248430703522324317275807268422097462106574280199053485520132392596092179225651080997020605897818777582868482445825857851549602983150743497773089957475582823412072728893499268046210776726602614178962319708102616090334473448132883436224847261497326637627492218094303848115264364556973292692268314777621440368034598885296266516889707750663215596787539395970720830651270238957447339753056940855468313942515958085671953986519597162069451686927705994061523163975318160899239544026192772758540488372848549649366755908764631509452403772199112228350542114285789859231266520467760419975629099592426196874951252105032068296821946627505249980421624521551083825790124710926976001345771336071803387706425666825830316976269500234350576222758899570792336572394161406765308744885261814281307527042811761906881156766477784871465621560208751732338909742486015298882750610394359355780065267424424750195289594556434406987477258660197684312345827336396887607387240170885264225716843805826952989450059016284499136414342747474395235260917351158922412427984583843337556238784564059078153696810454591397317627070490521387746123499528903994302731487832344449867035401776984170871269689120479090927581807343515006087228754860256479264154612882479866422557721897217971368911700416364147183417495406341408045905553457242764490962840132050522600580168691616757839630034591260057640844812842270989377335476363731846753521887062600711571286002713274603074279425804818084431375682659257859427990475125346704562601087001537467924827841357304992217451655032190160322866877853815732752437897591281921204685782391083573682421016717546168778313405157891063362288294372364021602659926570616199632614533158276797642588467211495187517961818314839222410091800553690995592245699987887382386644433182453428863726613097596590247466956421121900991755012139993472177833084195181070133904478542075638772021266993691417589782101132743205242523476846694830148283805884811484126565492323684129101209890236227001194926655425727473466782641756266325239214993454124157049094652085318734505566975029494740897648908103203001989520520428144882589076900464098381393086659673725519626904419716389227833892854562399930189873471913887961712642026923895407052027007103779073603369965949731831605558625653655104196812862544953228364545066867096742395241569753355147589559810584910172532591196626979707052300260772559717526877634744679457078136419094867891638592835602631976894577564071895240605523723041942366716403231700957209904585691435843016185646495320709267682058328584611411783572477051475639216390351105814561757373085016937201533444276563112838136390228968267273075745705474140590348990287244658768202699012409224012021535727604076677108948126241225000208224506821100229007921501300272411983646589232227909620132149571395153429935886684886542249408540546610931560605024807126726981277675700997814491469385745072250048283485998036973991955800552949924527343497446269961664264675253985213790829499847146462644596084343670600276796226095697890960030311411986131143611845936003190058466903285548113066550126472816848836530336909273494796754012655494261097591061729305306764351188665024772479411248508958983568117920630510274899607062706252120981219450078740778806494116700820515119332330400176626266363878278140673783828247372351613862953205453023985550044147904613070445103925296968604476362182691798989599030545583637082704265205188946336184994759852814668391830895120043835474917352795978212596393304303605713238146267788907895196403482777212396843281606664737740340201992792897844305933856186906843663091651923393599059086595981766132041416686679987364412443633262465791420561455626343671661595032997147627865852755810724587380327713888166122048317701726631264499575737099992146993624188535677578308130544482510149513420668251454419402234928706639687366631096519026038705008467567087312577582269033974312647571856298333915525452739657664841845149396125529550764333477339501974443096653320326751148312640723806001207576473888703770214836067300911554242635988867859554868582431561870635071380704057109166200799431272874249888606001604082157199742018711882642887317936930096559976278508888597973795108572156164941864924300303148919630729450006260771315911385964035104328790063344128041416975311558965298288592806637300794419773040799096043385976841151785253114199811987543541629230321909301292646547874815851824956924040197608841158575951591851704550334709516816472975612025549996599559041655336406701975216194162661070404465179338310636056907532027772860798018382928811396147732108201801715372837582718978692912780783781681271440956861374045660836336697398962168397255023491514055174614327187749751068670687850847381787729203274424250394556485346853942048366899871017464927198211077033593788533575042664011358924006136162884871052884519107486311780147182853084479695610453581072758506195932360509519031737492013821641271959484337063669494446625380998057165863095210825449315601428084312762945234153809796122890250793135162937244244509820531190202176965498780571723833940319004394356540962597201631366667915920608370797470787593569461370817469814431973875272905070552243980155230830532592148291272564771020712479396918483336288280981558589273156294700454464899030558577869882141440783063625044233826810911793915674766746602734497164041422078801995314362799474399339196929561121493455183759483469985024662980938314976865623012174788486529458135463815461097092040451686014707564466501751383478727951163269994468333257944150782787139663066640336996210799673550644951633324921807490292694361906201291150207746781775857656485719382036542469075827602337136047070624359141786525396558171779171196146174476195332736923117889155410930555682701610965538650627763055664379622466847609381021577840268412797201860776829029736848077642525340441136688402462216103841830042348494353198459499715431984149712749991216999050804483120291800361425376973247217013053447289489555974512062918725086751213511087518142127823287977826939379639982778614640140776956866878961768305130287740541655133195420377120287164201305649947315726220268206288918058200090459244472907334728502657590506336903740092935911724285814546775282080838130839703479972522623567663167904425339467168908230709292898585941362264589686672694912744673114054065765407456964708929507851489242090521280277471679468505767142320787707675660537894054532421356946214064353783656856280402333354993607236275904548549571279546849515005454992230233694770030609927868522721421705586677322610256479202269256390523490633845937416373689730085093307788039610391554131202855715832701570191116094578071236244515558733486581571003767582877099301618767664250057534357119406187231610036624826820196533305469197081193403376227318871515049416943263205425293619818318777864578747268292579041993947775390307822737428666509705442169670665799987298618359488731470751784693827280132609587516623995827871201698790694174088866660877280777180314326199508928155899324808247575824387895938315571213260577289366766961946487197942606343693269867163083237815268997447813778307225899802197625598788108049587956359827769062440602637861810619515680187286046572041569149905666431438071240646032526277225168161737115653415693887117444782977312387292752743540408534712330708100181330722904117142689508855330112730333983597189157133577741422077685126037484213590606659003255026453662148275557334709940554712541833435329236390368372375969598708653646293668042330411847336400116858004115425803230969592388283220588833861729236687448005804462752053017320171674139475900553658728493046049066524805677680221564959160544273873271661081521977588211754928149819190515936658078311024007900122421462492299489043651274746774671284227750850896977635806671684628972450208290636401173612235918905022240708549933308169516382224605488334182172456898855139196282191541056545224578799881921801292146045071880352168758242841626958534339420863572749133672442031876476749125319501534041944748257638919700083183482931802855588332209713113438536383382471487483040319340857355166579073447250412777983237795362311088091025506189485311208045460868648569252820438423150293071641271351337578576253177807877173237884964616689393613736780361642919667436583396761337149502078320458662667809430427315306942359310955711716340629950080177770652940453316306167023008496200614639397855817444023885846862054203771148736669421172088366579840205027623030275384436366084810266131429881366600883535733940025790293089523996729373620458502887611697563761756329870196738961364730444753040695834800738981168977022157332341856092490567616877329332863366368893013212422196970321681886680606054227453371311781656239818215231890739491557679839425767623330027157990919073720786996494973188815910396083483623935908806586540156964271628024519140826316857204048252767204856525934116799307411281474924323923977135915291669380577439480764169078108722610093684911836454849326883224555724723584528025796393578060268387810840251066057266132878957363389951594407298247967371218695342463180936980719678080592054009685030829544183453515165220745944183314498555070984336157549823104776639877823155064753357538353209811847715852261049700569706042705602500185417169717998424425464794729573285231869572512015910553610287713157154580821209335275993207551697399314554848936208561051120033826892682930180256144004060916333056063601596041241123523762257311217598777390595068392795875603467293258178238848469090938639688389431283915058252332642117872191089777222755895080011086041429987360828367468413283682683341888680383882906941295375648431899894471634860289362009288350334622112682408544800017438832421663940876325194921928287326642501389094109291820334963275732738394206051350286442289349468275106699827262051156349949303749918753587226626482284489761618986399772935060480697262623970726308380830665158404981612473182087953683505838219162092507784470449661868961839114515291320796076109799181538773914781218945810405718092929088684208826880355047626194288222338968573374400174373395897613122577564456870836847320271245838036819882089394295346110141449847664571112238588572657144385105669538417112753591240143606826804730023625123921948330624665142469358447717611576994477216375715292655771872036540501683557302637522099958111511511693885672728960581863068374723250824275834189177696976309912894827411244760069378272074443932345790480752865304405653989217508412582018495386091255883459677531905849306162678052470346611779012121427260127953850026209647134158904629394532229614524229693087595729612137183745930094584695845147752215900546284418074494155552945881547801623940057828846914013127767389216558608338603561923875885252883267919981510408963761881727052966964878029694358653783938144517110186779171452409288955137179685323544982571087531450401639078374485375455004003127835647115693548460947938633213948376961032440021391820362619534809356193980469485123195548073635325096903080805244832907591948944339881422879057722690080653536329153191481090242379525584897855740932422848456169066770905722877750550664390795635725210582091953805503900323392417213321134478835506214232808185928519912788878878734371594637151626527155040889956122493895227781038430203532968829986563564250207487374407091506485275218396477992629199651533979251890969361409508715257208836697355335265784364669497435140262845645345608798449036320820638822922179958916913543870463287988707946422304821257506578022998996321368716759967885762376656389314306727767736722034318867385469066980008347193139031285380270436580693162239143396712587089632048059669655833996669226430403689582894684644745645983425244025636442304256571989505384152210826054654904325717350050737680081979073693689672147006590257469796441595311434486528515456239051789698661824943240615450300548052098643756916163822491976691804417046116849490015306116675460897680728458097765670463147959087416196740643202619175390710066255087952734988583349015653938744723923459951858490463576000002112357027164218389755122640928465869500867888052163944974365306972453474296775410749544646025925077975290372696234554334515123133526983824243273038315637511570412933431561226355385103001903784296898189600950407040751091779886531270643684588404559697172010541433362382929858985272443706538466013363311350582320016273603593012175299357006297393848290264578054580045136453810852331921613374588530704189045797205077175031732451366642607850297262730096411580973668082784075924784324859861563901513923318463493058261954083668894453233212324784887281241449105752797787138080928268531287481642276637752292375951473824107499392495614131846237771765637446388034718248162217912435535866474533369768276255099570903595860654857884987252774767794294084019486282462721537070709137351059489889024133456147631583565396289850568785791210425360933285769173528779510074429960611905131259176227112769328577190150618407255268901423597056641523247399042608468038721346273523742604292486751110663094915054360477351569303426920317111383663026832716012587702993832995360575439128464882506761417216703008875756128805110914658942868920712688980209021745015454200601767708080383304187102490159571352561404094454181702885860437347194571775685034193482852337647542855709553770266749426933889641051845276661887730928562466857864402087838357565133106600876497232172643762825852012597219261077004931746159724375150535309410284193216077269442221514270961435951497882868501616049477977799585015408759632012662661782996356182570082974620902446949682152267684897920410530968352969450804709352477818565926270634577383671128029060122020891939216617135903285601595529932256397420673198501956423956475112735082905724271861132175947392789343644583783498928983574066667133867216361493771417470161422176764950202770845113054499580597660593444077372837604490858653845843922577180601980779020247626191443482848956326773374092995533803889030632572761272052901609308292665703358739269616205567955529191322904977046175937327125584556137714063075102604159783837999049290599829864072919758098136115652495634018488438110754009658760477627001594877446685859210122007965711300066664212693541223472796573658529357492472621422045103533730217824611458889704381802651090172387869434407559680334617920344622730278301989554965311657872761760856327614356515583177795145817534486545830529325909723617799635828729911030846773674300952746784138424006612765391504680618594722119921129139074768195157693013875691974126853692909748073859414186725507813351876539891279208768440115429017898957574403101569963786179269516681087616507424188923797370969422546018201123535086393772322464538184064801223971168709038045006719721266785767676269235867789048692712478894463847631157833438892882458521806870593421077495901409349501285243820147270582672488055180934708812962601872803957482186922114535935546730020257782576661461305214691534294459027682444822275069975508616906602963945589200905109507268430653531527917041072808430827878374977991632163167176314394962631526400334572667804896952373977954246163617022486461458058678500923525996889491419865894391631735191825052597416528912447016451551564317659453687776273887462598661090285508345809017080296512173692709880916993858808807798502244859967739898433888730888915001923609428377657676449764939749388651546382115571172884611649954731507128835232470438320550205660724441261833291128217160232813702054326318355414355415184960119782568923382116488630489952165303355367329495883057863127196522262829165889828401425510540489051423424418277872979228092330811075551727101757795705237737324847942034623943372181301174395491665963979721169326073894703734632346380945228734044535053778324405931294835157722858663950445254022667159421803177751340523565119488983044876232506629910289420852766928164091726069569240144236333032976186147694193062518287816316702850075658717989100680673018243117022049984920310431502772923239192885860809073315214194181655554286267340339993910529706599973921541963610355105550132636929129227003453898029670959822492132929385519037276529267099032208015751170335424303461092836728384707310524988389375736738778713296631694593222826766285353353261456847225321491096760223200921921446661818674989947956620579986679559099284642665286130139441569607581792802167060351700786092231580569012767564661471761179615425416358651259884280780729011397332404474572806388231567221093312364771249522518051731865810499681526578631034347825742522805794728682466675711471000245431483012123430201745355650196232073716016240255981763564142817234249917113303864295181210201889721041198348867406636948446048606392472397102762803329994657606586383759602667650460627382606923149555391602764144151016393139310496610484959323388186332478835496091131308850908407703405017437434755231935169404763239560456243798986499488271043056856632438913519047314955800940688873728304633037416682841115554661741523766629181556061098979584935846390415007410891158892325940112067127165490722357473002390888340285195906160663037900753880365048243836457844390451051221658169848724403635635188642589592198699137545847514027819677693766972865527263957027846287736503236313406894012778758558576389900616713227901977265693886586026149595520540573014970487280025251240233728110381476774503371508153395658572440801731199469492469342890478455445966435254743419119944501913025917434123266345686733375935583596264962601824743881174766556458677305345037797600624311245055768243243153808150336636319996859175465331613401970290596456337776796884597549404258528876853200814119920683347297286095898049552865832165032333349979914568709243385305761348084538256124632473067322044435950667397290458791868139625662879826945401729990844379796746893448680555966880552573004824826104822586907690590221679612684777525936882692955993408659177974212511678332603590192352956178187043955090908413511156073608985298836910941437349307631878307820377207463507431822643116737214664179202824247273254248546120560198498411269055401304842999432193251424677167158773183758010145763853026189520447308129854717281238848287894553740967760863294820429084281858492682485642023822200359414962558820090439525955021035176275862001666120717517036807916606063066675361872734393663757404439381300339375603830455321954440259461800167837965767278565586541014048389416667975468649213319653273266140131445686819600261901788654068107456604295389234216824013650627837325102564951743215819647570960231992728940312945058182110536647657039619905397907839776787107056624308335872419690987338184870722374688986185032221137367354448928122588346948903892762455002286894844971177955412661903491653638107180829317513518893142659647828193568801850219593678463472622002723980877143106326804434794321526384489317993959747482969105772455423089698225981085777766985652176503714202411202370653693479106275421352376798560796280100981373523589046000887260104790940655345327985206758502848451807466185106652209364497180542975399872230811919449017850186697253376342583644561436986195370573522500442803153200596917463444567301908755209216005183631364987020647099688808465497611529709694227311055389758430130444350733220024579349415873264468230735020423996075593996520036493784605990536680874966171275213357958872978038247030940879999724381129773023167740363290434276865634438631034794524181797900186270898356003431852132208354504764446525938366099493089470966071092257469596908189974134912723209925551342539730612554891037179058628279957088780016950729269562927802318380462272862130816550646677934013562328452869256553602887040353695686158349019959485442575621958667355654889727161318735967587705953319018926470340852499485920504359827872353644473745410721856767076376714934819392072072185053963372195972895752665013508234153254880010677062716475395607815227459288388045334688963243644387232181778283545208019267179446919476241749434763761229544183805061115340707129554604738326144104861623535502015680968088752234485940338090898938310112830713716582863749978183533278310703597034180651598209306400361007845125703593707923992475320642493088288712902136880114340096812089207823916901398693108298846947285166107478173651153919888369687873304619159171950636704197299062762534412786115047300496202272577703141263228243544972285683875494334798864405212684411279796804630475640032773704523317538379084661636975163931303626720131896424215197368293542810513210881477993893838795924325028649910617523674597407383807196702604675763801131060576053080218261614796601226470417218627244906667664103925484415068707577378488163686749809064638154992990541263290836180512164302268857044731732006102825896462551718164115686481696072064039379805230689614941831137840011997683386490368156850256411159890910520892058730269149857247253010768537513948580944707437053907692897933484138846596805152935492514034117534836643280665776166789973883045165423756092834611348769688501079463881127434026606412649041462028161029391219585717912996135414755954158011135280516257280890396649397343095671799257606976388561313773262699606178458835642972799486258449253897222836277084150127475932794367158895187231708179715905569133651529830287054994194375358942114499749811904653488539229295245993061649791264695605337786737790646716105187528590144246750154323673728622434234062555467715418469460706535378658980960629818483618086648671847176260246534143082093218296542810508147867672499757958770585925540134236171554387522111279595171735726908951832720144391476511580713444861265728118413262747481774712442478007290154765317900595134333384521979215035319929719329180457170910370675755000576646296764745949028260575668263668306058350240554134807429464872837931932781551782711096295370598343951466084122665340488821657415532804588603836853040303614669035617379816358381153152435546338594945264067014303897036198442817452031281132599087094327347633330876954882636977897239978837630986389016230832168487423181367195813525863967336583360303328786111970466791172760342321468735585343177458807664066032217122488542135289617722340018768895108352705166069717729250641498977052323566158789016068844340777941848513155494212122885014199472001161103240550151107928681108337357329605249212780705219724467819182313999441648764416402273206221165345439381233143658701232853257433507639191598338916681551450963587355900315395463352644163959562771005934873630337142822110030880868170924993101154726110240445777163606775275510904671894318209225970425400555224160727681435594943421824352576803908415667801282231929432233725957446086679914355625342630809070788912940292658560640652018811269972202763424385586697864226082867925228880236326577487788342135104955671839327972377520742324820938509029284767174411541526684328481331505259118884193140473150956027496555242293963455104622169839436755610402858342128751591794698051047032345754861643081066086136247565179739225257029320932384441550152550766082092632632383000855692795773412576006359921795416632633898851804383592031263299583843763229955956121720148236245955191673241617581065452661703629837824954804905652022186960522130628718148884417249885304275404575787463691842640479987346623886516381882793982348106319298493080524149095495934324720173501316687935630060007388972272097703966394217010112944198909985459493028748240205300607656402036308744784246827829709038389293903701927359200453404979562473549478729662837544443109631967300370115839076631781422806997649041036821494961434425387343317142712164390792506621758613433154186241754217235437421950412362995678457759847992329384994076114080600858650257535894914316748936358813344957967526793965815797829736342351482962129653269436104437358493304648688163225547919606810490802579505827917965153207358360604940860457850617523154961616793383644249283523533394004801248522585948023623276683828368678597441998403957422168472831890610432746499757378424536139253537490006909289319945004252963408179378403447235350763082775030819738168233238147324681750396376079148669003072827513390377711836130571124566667324616704515279747078258630608790620453064585270087336773485092069971665900270504127405660795284223359224691358062301793714267599617154937203961489967333192353623923757739942168971582691210405404650830298446429530379413171772424048317870522644767016094688676869289927698388719057692752221612288585106674721236431758782995767448087796031930517929718882745146488944672630143483993427880835604974369752856166976670734201360741935729456728745187458166561501470055292272672677697502129347517860283020784296360354327082877739798681051184741987526652323392626330162981031523365104986359657286305693169375014642394422630857011738325371363726318689466367747655087577854410075609882340691780641183407714874387774912614651095487871711990693617214121319955074704179686116428265830211944051225647435446840453525390688431815691047818142106186638658253689324002700537402854193699800012667451130499103428441391178710730597046976847801254911301740180772663067937226445193638069361880482717307169307818735652344058428481193955285442653617103623028794883953721641350411967716843945655685376383009753684085692584622449118283339216909367983319924862812354233044161725430122366656134470095116169092436277054649955080316771911346766059050170734401112427415290725148591406230859431564240374660299303620316385670866490016867220689361177471368956653264082617008843778172396520825446261696242495374277618420054084344958320566661846613219422601623876128643428169726236701191036152666798257916888159373631055237240391483117370625609243457092046358789484540906930411699123981815416929034405963362012162339249719428802899939164869146073841509637343722753143543844595548061568203932273374273425225916766145820854445601463489158336366936164773950732242167094132448594198123397500779649318667578638410869484128371915870743845371701800268559160061048438616648446724761271926809912441505263116632727796538225800691165412118113183043856089388043329401263090620250054118769640595609328606732379447691195657561273103916714596732868071826825485791788745607822309869345771137823346753531686611995363329670355901236271447831716893535401350425037346477934719841375754693178421165674574252869202858137954155805733257751541418588997489274649489764147408713468238148817470311336824217695748305782291192362668533206007188986723145607369052522022859417199232999571468936746428813073299754643280691537372401823635363084834782994558690122608264928276469005568635506883470910312772752144087497599166871212232068056821530371331259586172905693203430275334915376183963107361646637611000743730941117011732434479236199346476663697183314139430779423804443380621835711299267830271337290869297256865762883304384907032123380261735354531321914756161402742792565594359783400003603696388565077406554419315715289967781980822634293774214386560911980171822621015194303504609679648000623192893786452519814211368783176392768130900894725637106505942548729027955085184284358685152603122039067566113584025208390236999325955881916507726770795144813993930076814400814447180633950303318405431366986948465553404443046505261415026372429193949527444134673886681988600957646361121058061355957464804523917528155525021242747301178291831031711381790512596027298519554195795136792373119797097031264958346278788136487822127134677490187829615866039641440247609938913053865235059291152988827101770245027437961296356895764245230011565604599711266430340331925917761064193761057649875915147275672587426297685544663826018461057823931979549760369808764443512611134140381431268061796577539364813211402433166872740271351850125999619653924220858507164215383600917006755638144986954274887297154291667765616222637748421974706082358629804473153679154475756596583995493785852471651536556703976951897216226807624912896457101831682550779858832741254367241076485687625157019355998721774544744409252096128037025767181492941934845606765798876557315870482732223557254868858837429394938034756683650281299906652718011374794486565344989421254877653773299168186752823234379193476365888609389267133062623345873435053160639291955278028003099129949351056505768600178143378370750937902942881155013210524385524033095668475039291190695390252399511290091275421273051137835066332612466380237592488829118513547407653801027854207469486113687055134507910980512916845740271599389220317732383019927359273480056274134961910945351037420652639444947752394501859370373345246745589257292127098363170051075733315115599294718104141457865580032080217904449749184424789956375169129360146405197948146630515685570675010619849361300617765400134896029107714330852877696813587265757434160915214191822147077661703612859194511382966718769687110310408280991088344109427033146445312232565668921126150410598238317533771921990624875849783894609628443198524939166045496898452115712815853444327059798996349256817875680575615017969460042820894252089847350369413690293939193775959838018936540018659263876348553006606027872398819854722194201509332815649019958426808243725351092349128067252973518233690910074267082843903195086484751830405906912487137854230267933103263930700012393377489751274779879018346083816928627225601418351707378744266372363731439925230916035279994295238548292771781096692310715564270665490740705821528932056339474280565043624502550854913273584649759865004055229119741759386730854043688342001812676625401509563068602594993671565067938356848762390027792630486712324468614506054452875463638569365476595548041775893184181295420959624171087718837436228157234110866188746522664830304505197506815917694394606183552604629847885017365385226996613662096377921316269231438388486450019008969326663110699576564005059339522353543770894055183800387961913153791288304518269526602362013691748445136908983219763292508898364115684826866258057567521583081400613836723289524672311522869950599898531754146442194122699997998041057111441122046261720593953526353503297006065067680731782378186517972280705683044924997383694896651660535318433700809188499922602346629762964634840331162047901336405470223284964360304502584606028881796357379974201664965775784256181103912643422227051156263541505840448844659596671658114779912114810052709094862773828692783077896378489724057751537795467682826907282359467975358208337151339083456785532623221939653680447256984297743338764477573008539236232022731436949713726619058877633461432961447722212547735526003918190744948958987904443332464406564550694755233789829351215892266088978477943197005797462626782309643239457342453671955687786906606710760039342866972625876209113808556902635412791854347069441861693729768365842921297663138895011347041558999191575608291811528804362020377264001544268804654693886850167039845315030710825423008753464979442601689482027866489216517693115722906178745980619740963196692162099627742036125526342244438315606924304581713651287445935760857330900448423565840720631280395130557213688259175320287222211375467792432960933817882979076554643142886238374451034728305464984397301489458887862934597397075032535434472656902680004705127429808276274358639704389159941591136824454945001798344302953780643194028084855733596588344883870332894406311210009537755599483049802067109924088138052761816158422418674331924855461658150059886491132129733671263857852419736601937477741715341423509582101748289258879885777593303913700296762085731230794431279390759502481583501568871564766383713337105141368419242572408499957403807022907982357782747876424226867816328765506718274341318710479655561048107113992476534007020805491310842267860885841757342701076281796002042580298399823703737820899347289258299989080844823805070257531971406602238489054084455529742728939388339215357656938298703136744263945979641263703509501091809530318298071403015509659729679304951229976966708494843765536205757676254097482478855713635352028073743145011446669265211213209740507162187771700161168046760941800863063120900985878946764714692201607911508667302070560117920822495311765018338536593850292661332210874309395392721911952466667576861026454629526452167548275056108650512917353117629735363344349403990764037571829745147552965624777064121457320607373083668325676973876521104139217614776118331191946131749919754493579334999246442192143597150941980398846136579380420370834091836394501937576633359231060833837803708961991037535778510475269804504426877408590935576392599781566085714437215872771518966480947027105246825975956069656599493988762901310198318648911107430368919857290923878131446303770800475488406574657155824786596279692479985474360841500961556213373142198985773826750324737619481273667446453417174186166367403036104422537701852750037734817696317997450756552847278241855702508170317556723667532872104825535276495332141638400855332968449086843143006693688738927338664238110336086729802409871523955443809595642445442581131533091291214227383285998568282634012751760659777634210558081557578944753887102744967645519663834938809614117629780170607727824480698049100280236888717962234582624551010739380589920664075895014340957785828907761554516168959816425120418142455116828845306047082774911019962758743707117127126470702097231484386767141008302976186987797730732787198514340626340195246483606429722935082193315647546006797975160327069631921444993210867421002138479996702135041050854853794068570036507909812432300508144110380034963745564011741049485893432241481824411455574020564078855363045629715738250171971451341276270969952184813532314639534239593656789308523226922962917449123201924986353016509630698292767234274375111409608004798215763974759916867130783069054217141193308638373999597993593081171433873268648073796596570513755531797748668236193186856820080725103242178647244167935858390231561755585969874595330560631116692085146310747466171130697534285426081318538660044413196017730545278351797682488961822026290215554989270768138052793353160022945103078298989225905568074503617003024847356976389944242123819794025846584410364354215463605088589313280889504347153284952550645270872523054401981175615913097480182241567460771335162512844720295584177911969331538594168225993825337001437590016860881088405537703675131671865728221878048302350495938592019457608956031878361889161952812338772947603768730554951116498589921936837410970083051395935632486833782343286345091507854966438181542417260012351997373590814277428797580433181690397333211689816510257495009374493608005941286041500070969676164318901306362594292122815753012430147220090816211217639681679550002189437481214672576544993129100984988438034001769918939628897992919313303471207550642315817641017158375007294733596582446959909191789644216364788906078220987345769728180279486364931574852123232563303936901059106552597315123063677274448887514246873681661901446397217776027928973247434186910890217645640871927431161978473995975166319454767191323332495798354393698383943022708920427213844869628567731969473799596672324267131774398728914463632204329343867088758836816088984727572635944292402251238699808951782554142485468804021046193121517007783504644509053550221811363177394202872834134193307876932166823169315350542945138208209535395615103690422030186404402143891697203463612796126440479972032846554284105460387242864746163401997875503004365490947928532908634304536840425315684146294997316296354725717190678152997284821810557530080903367409711139664197502887690675270889323861493829865146769284255071705297920576321240892676768947346814753322326080671816078442329521009949988329043555534690641924336767194890109659596457922886553629209951277356189880508435727620445794589059421158376364798814752226156856773576547809331010229669956902152820565672412193995854870507885574226953218112783447119509089107753758736171046092261148152049032329530232915936467917133385871476544823861561745584033469122679294106376449531621518851915589901451223045589214639003979839378024541434604833043257737952258067676820992993109988048504624872701446939498854088448336756593009742762491897990148116558265148497517673766150043514186865136527674351667641995893082706363102754572860616873777840142867143984430487210229509326348029660569870270603941275554327876683280289816795832919237294222645764314112122799484379377426884956991261386315674882303387642524757566196536681822369028764055171273890304165621140060532019039946930666644038463556619707245834218837545993699786037034401586319826618562371635119885018516819283333545192075068612327687047286404127132369124380511460315749091754747906942446731396608788936054926538689279543689691409066165900030719240412959234712127042786895091896078801209215789292572314616635527892351903764688335474416857465555076462945656901896953143808604320233877386093307826060361345277200906087495454917322126480225034849204981481535159453481772950547393880709405301584930238386495742671942660349100862239799827563669142588179607202000540481883887374217180860301904548259163345635532523533683352062151596900276868166593228211562962139547967859575229580560061834517320848624273313190690266262401460883960609474426871921173398222446049763245334313006921541200118280314327847191887776581414134194888363349090886191715900245794763292169959117700910626339896865195838960292523381135439313198992318150519781938375277134468561562843787840728319529192533551314863652258862447440602021497438218736381308674153052056100971038446699466464672436000684744716152993433714912874765218845115151983719571817719410379737027754653642116322422040961997394031626756738486467578225523445429723306913770764781956878253178050553716972478745879187410405299681064540730250924900127138514843430166977206396785577908211736200189782223659536910894580370540417851357709103084877227777569519841291597366518559895754896187218608990515889371628398868359268592420858495168758088485089604636141069540929842186705611941286203391865039853713451479229918388186970175290511863346918809189674562571495935607929760060468324346058350541835723911322214244434209313549275764453489386935758566769832897077340894661670971364327559618767809644110647161995322131123193758926570836974116861437744935952881003196719873480548891504867783733098623242841066128689724749043385809716132732483224054192641800766361551724546123251759708277522377251513988532055471444284245446973477947352969403851996980611209245411677736243736743162966734197535568581540699289652097354959649918575527243353131349906571000883547879280623676339939819149660135744075536876408304797230450287204178632823057121456687963344001956765780001842040824298315344437570581802157612535045658285507779513525544391120655283390860203828636231796651249946233906610206156290788827160273380901912656328092457117484428775774270695906184088099204866772453316103425614834120093157283856991157214066994040058312720243426042405848002098367590940304074021391789105355467018796188750296795449589060797977806849354385752328651706488571721321580995601473334722510288465046016735423857490042460150345817061684273593506530190468924346011187435774327273818991764796027276541755627941495572825983980771040133066257013905029625644344682941705394744630015378437742287242431947919529154936420039925212639153773303369171955074953975232936931267754430203291306375229238412950336713356941240798314498713463969857401664328465494572923044729104803029380623024533460103428082579145065440758692965783171477083431599749450606260548154453680027847751340863053880646483994601660872360270636404238319245434287516880539755165439134334942959395863326846322853214108996247908706286829675122692423102771175316375607906580394796306543095138908818075423179606868795862566277567959254604391628986628870431622445896672837051354485638663352275168241032079319202688792537642566112018492180193559704079924411685254413777442905032261407528025656129837218586252654750340448957374598773845578611402204064956629069097443729627714784262103451757370358219336179820655337418452999839814475416172957118084931077108250763982913425974752159991102043320083817763326796138090234921293299824616917838763138383816805932255002919343136548395223411069671710040055353998172100800164564055662551596545012127683807102664311589980400513373738126666673120637998349871800358989407346359838304463486854590883237184578694556029034300690418734450533957770693440760333707394693300419799515755258973540028082438135353089459536644487360769436280224579248662581866672992137458512811495266935712773683667802344672168931089670402438686606535422477381269790916895195026306814098941465459119371494113048875913262478337640449675006523538386260977029976261319574534531933762232183207872081897862516755155281752273423267535488121252077062168779876534228949363582622151178108654108307123750578142238357911389679998445455150515308152907017332409142624831615008149048382991676612002180258632125863321062299112187160817721009693205537149388475841385427532777763748213305139893252990060455539145659877462472819126112985333483130358122803866468475147606145615032247502268619419962406801631118060520434441283251463659933029899242278048708107078114021602336840476565011670868403245582400771632019712606972841864561401314793486799528439472779668779370705851820642148222858365102160086649059185303178309802648388894703290381374800195929355443058870499412627295426598137391039319955970752560388751385857736993108426023917118142580182094347830938969551561466808951651146951727211398221895977100382689110911296688711778955099114496926981690868425463502027061011237909079528226643134568082503949356561731942859221063958215826776799211230667743210865543672526552034355186514124415142705100305824203858330814133489782143405925807870837486199697325119292187511315927151101875558252789113235144317602422837280903135017187652452780317508329540788209299991432914026365031421519207915961777712493555052603582525758158327526236511052845930094956627079306158028276546886348035742943110258143632076067401382752122685224501956682011954921901804061588431971485840150820077169060999465644175913665941436663126482701014143533257903829875931451401597870797316825505602947504293227543230995379911679490944406771309606749521406651287634972224141973031602094037718461567309884293968152426910306527687825986183712954664544803561431524497426837763109937525624542945574999121813779114768400646995902736462914663339834768769643910205195516786199445142644940962906451480701367892018453464302113336639431550149059455672811493806873063029742602693029781476824369951283076091538696954270114272609506228615150663474745313855881319403473685837859981879613543944467511422750117808133907382890194946554206670735524171209405863300829880975251238358131851248195988127015434345575365368051791702324339567764823691373912236044256757810366307766394152585880677608548274608974895571537963498877379804338692433922153135182061066377602469625300978251743360790008925744241932361928566940423600128237168080084996872946129382863910909932369573966901987938035375413726972950165928093531655512569300453211930113268567481021930954090026893312552212042850788094429924897169710652278459489434144217368551358587593273032975620206210450168092783034960226485851145897858121460984361377492847328508431836109450347283226717795770580902910166535795651206789225693608971576651889512686182886526329585368933357622797403229008879794422527001482985335684585463921237126700169466503385702110009224345327643499919772187466698720405310784474922035553919425016778840478904958494503527646683822307998480564542677797048764959764216458136810782504709425318044492468807945839386083991307040802465257165305335048653009376444812034459772593543653204816921736339802225209440156382580342645975378490233672723865150470287966270824006314624259164914506529611132107807128109912602525750455658057143069510306487003736396698866698437485422070569349737460517222469439497083661447802173964659947916015053790161559158696559658395884725777803109366436977262408506343078113506660997584265477361565414599763265887934423266443301926800124435591879368253748789195923799653382336937623621614645598770969340550042333282253649747124594275249711181510302133191534437036875715051642255466462785297633680888476166896372492832535800428983616079820811802649491471232107641370828074949212702201015462959929979212054809809644326773308654936569969068206210223809077175138285171333636304608723214352322782174963415894869793725602700264416633165420230144936459197214448394905683754866410489027519151246395753461756070679731119390325527381583244102096318691833947998493162464356998873790781959845471378104859409792956754194949901195970880922385045313909383327255195736374911995784013912723947387011678515912412159267583905721456257131892735246669902234159325864618783353666223656834370933978746933139683766785151594628409952482177178903421323474887938769208532701634363915440520073305166551784788748939136584132139121680359325600191005916158417250367281092059321806535388683887478159593532244806587750289240749957024897263007272533972261775759377762558428328592920319350116393652387158591872055878038478567433737430032087180755624312306417993550050267383901629467464470757180710531406421461077590650687557891078715064152069670519567747060091159295937050852178537030354085093206522877268080353063212094944887049595020349538214847432415907610161885331302071029638498173120999081650367473997158286573150285576199365552743067006049274184934049628414414757039322060533555146863664705929310280205003930646285677062795358488142888713982425116222406635623016155430628153435531188188894053603575985036398235633659938117717750451956008444350037177341878866174418872267680862210901792249012649217937842221036947039556113660353875514880468023728385479906530883865240312993800872783817987912659936060619854218907700344186293419095841171119772431585725428137578630014529999613543934632024053393624933399846465447347140114414592738367575464294898720866402295233028076695910063720714467795297941353689912484999267150213343653009502587720239600050804226003825848761300323626266993619396137814419763177968511996046232226401918763000543979446897550386431516114308706775315627568240884281915073676740230600103080388243129560207329489792102071377091516375313556053154289826046688356667967602389861811810627696799451432686538922091351170286790590122181550817735742575721581443817156574864242295816794997293089842854212936476797616422035442975342233781811375195220756109334089657462001398951054019724580619035708298672027792083682014682250180629341234132151145645804621590100877471448497839368523278363277523198288537165397126628212566245372763970121612795624579668447760485267153184887969809710023563031841187050358340084875986066397120450024942079259715680111843872810140094053028997046777149365384592478797901695483190229765397693361540581255564944560502061187245017435417347606045345976835359114873045386270980397292423092335409882087482907540794753375775018691771922172592188088317411052637221081343923992155656649363942298972590482928122068970707339147274233875025132682216980059978180997228666545230639394754401892695450068978003414430470370473390463113320672543821132917759599312222336510265693606670221494286789765146494298530526319950514599391509143557095252859596606036655690502134798519515634339083398863605364605507699917673149852501770023338010919713658896276082278491996800741752756542991954769770919862370797447430786517229627464725981204481795301914666785383589618764252782056536621149104695924900973593780443405280424217465287625954372792931829653105200211285075351844922937516998250367225989279263154311578605246010840079150286683648961243910598766688524904620992384791105176866394812532971635358589140428888559040366534797351040265132748500920074198958801092687946399357316573651908346304307831402628405868981892600897888428064124412266186407403139705779276882316531216267687097378889071434540494634909894591669717066943283926953292897303097684178504576948243727793102581546042024912398601701907240435905013889432021905851068594568295086985045105635676188269411282802670210445458044922667042207964028502018868859008668974928772519135450960972438070425051404482097905053609498596715095090719931311590325260251016160536178604299703137947588508520333958825672884060270790439885469972930650250953940675460666728668695986812036665291330034429101248294550724150907443527431885132550428429533133314815834415548148685317741099254964208427398307198093648517122179297195252801728960435063329112071684902977377582030835276043104821458509169337343232513357154689405638645201734115137011428387010444246968014962198671303484443306529616271049954840361015651169557464904221495458919417384652977885833035876225057207078926177786201885744366908713195473315980080918363649610557392381575438129288242375438941004863745080262196353959065471955260675419204870410487538501046673485260703543244260531088512682270244735332750202392114299714936668339245393468622786858410530703312155178823757588310517331169666798775828835048790399269809381637738123690739129418957281628848965689588872865348318776735491017808489963061262859885196911342422806258842716390359215714286897129101701607733396106969704085266451684519815485282763201346667133969989589557913743098629475626693484904839728964512554991133014879483806136956054412630006528512666693053590577565213918341716640391496429150991994727431633524446517779784392400208638874099388243511732249961302932159845928915841012232041138484975776546039512110209798204752956920751685935931529226513902659595266819494982662821515047084016105902177697039605452068299060750655784134258270454392522526977719897332187000660070612669305790628777752010303510444038944764624796291523262209968204328682725498800027847998077340198410208397579610813270446405199601682853780163850742934429180465906774066938409434768306079442091943383558391291850965324470837033714072695413234880296316708277749128068291803064188034542083785819833924758447915846551326695001654182826216272652507956819104680131220566000779941295306428073607572006537263080556885484297167153456731797196077519400606675668781625076193382155904858488153142511864324057492874068664875852623129321025458216617819145393277242205468116317073161195933049876863025151580332775532734172981107339961858403251912316767281578207168163856042775186900401131677323059153442954639318906851856138240307826249237844807784483290688698525930405648352895435422950191790592401746093374891537178880417415960982003700548677384529735432427527076474569712649946276874470814236753527374697220309366174069503949120644239040271897231804974415919074690979647580596318717874412035071046676531417922558749124828503815491408529545130958949645514951667098984653387904649936333397476408491353339978170663816239578197335907767521440470435344876751664370361354912239583583354710448452481261488278301190807443527183405856102731305992181178918078266163312970873989562780054578850220197814500769761978699581797197913132446602649332826300761275986078055863035498674705250822764070756435719824150196637329994391078337568870739102933745415569720811602432971429893174090927585098432025043990487792908786651773986613713610036577626533038049796899707580866154633158159430957807359110251967728885634851693733695901484196100997346945669693795094530292370528391886336445048217322238675984681521873714794292178470472394356058579939198406935022850747629946482742548595829143467061462202091520352960655931250993706492148562406646495010503597469804452336835196481711296060355685944022241625355572004675683308710458685496280609124307345123097443808471595169456169542062936546459288426732398815592442335074509842595618982197621014451933036440922610434200264332432289731218992485937709277836915000915560286452423415854333567709069882015848163634016674303612174816143952896627961300778767017782634727670109971540931712780190967747744693690758541911036644362561763502897426489682525609153551629113566686877209695181462834178883638941913134847569171179047329941027165093374207781019425815055853357585763153305575236466038140589732980589093358612818436764387420251666226833337605309836720677752178765320722656757342010601473707863784707919559114692292239607908382693160741911046596490954308294993012154674522835967596006087671483326080825601551657237608176517330199081032887465901146162163538301717735773251931248811121608899585238341645065748880335822930261174216033065123626621675999104493230295515386960383617219219596270589000059722605742991116833467956798236984378194084273495826975526304576308895051513116412038022316673595229360791698774566572845812185683725093766388098405225197937211386282832659527810046229729638128639501305660663270271672956104562852631127151648152284344463687491740680944581462412934432573403933521085635943331055358030587111036498952475196723380880456936340200985173550516274413177859519445984095953118351874839579668709315140113172745470909957244621239305913609354691634954255566955707483716671347789181848610281821461197840440921737309939093425906169741928907744504234506702296485198061330277195779323474082039778046185430269737133842153966942617235946113837726829953368414546221062073243625576894942888904850118350286311658545843200182608737972341222836794682253844175293333841969373881494604788121810925426772957024927406311944866793580557587219858169793422509151287557043174114302496548288368777889001641289814791473118968563575761556733664568974764459593422219438857548620425624971380504107163361014123947137681714715038296284036035780865535643294637272809955217999839271388432177014484813937862008332911438464197465437916598226496679378866393865140074703806361678686712146938203287422672349313359602238207984473197947270906725346925264298773519053118584439216553943951030776069531731915257891463774911121634279719753441200831248007202447359971716318975693039145730857749071051949745348505944529699240184471320314003723919886045890465697259330922320690166789694084199939107612007485317701805994753676336613560157552879746879526741933459299838045361084252150930621835014795859213754630180754799244333798597475235517384186255268600043517613559135202884316011807304254682864061134654334483361654079055317016362880869947597866911625057019684985429061313389099321578205563783886557626827583778151319659810028421511050806640426794336226517168684618271761569888197268607231088789747386983613795865761039793606209451268778644877075657047201389599898126627094383228373557550221504699485241455381729950283001318176019112446937670409993088010385401716173592719995568995089071729704854073991043140893585438410626396803961709208280908488700612038425065797787339550363415263477875473793630263387167373876062415726182627034450442656102883018166984941838895653719888131732258642283825805617545099223055586264891541900914667944860580929168820432418114485666000240430079993822148469592455847528638879714634777654345041524155314246917383263707471699169213959530973114514967482722114920493063931842515252388080102006238545128691586165659034453659156014813897434717826871388354839297684752556354750578274621904511992575935014676413451565504417333426190395174958087120366453763837424072504288626146491066318383945693035996364312690998907261747201710349160647439377000338795169965446842198254270364970214241431129893987946794533430045635388152082790639804909467136695302598862759777709751080039701074342543950958890455541711063266043290970827968302451013515816015351443325114971616027342021048650416186153584150243560924808498886081413750614521558791001663913361531927585161978360813391974394568832084094841122506449683855520014169497719324481424615714915614904429899287108627323047538082925387791324294731943775246884911619643483538602761322747502280646639294661247428999782231263677110262149213100806628343353817598625357771162633549480885718881616595539879690585125547907211646871089253640058914354027995921738336606710403998119691718792632646133520750188781908847177671238064144505290755723205412409445815447924219176232054455088293387812478157644508274317368216138975096975475141395296671974981430637284749375888626603311094797942900329201316173381958875871052911249809458905724484629919535362698878785031525060453287804508739313069486270766478341259688346475969580332665590292690253111293228452094626674080735995816789498935428780944806055725179064572291897493031221047110439045758184311886049119410263026917399852432542091580763088071310040425991374598118052037774208089919555026919510251843636270970253126046638111613273438988743117454163778251943898565103393397026098304827824080119198103799292091883668951683151239318729163345859062652345391841593835034073160027574713493046999961848386570100944833753768143097594226504814214664301620268044040710773105113441531499489914954016379055985912149499406040738971140370120976173250898349098642533560895411287333283389979221793444680875197331956958432165671380033364247646664152129913542906317727232147436625378709619030443923949880984191060945685805953216234111858378002648924929517655317653543679905098023358083805031649949584803017515390963796798748359964477349424472213503220884869415123665731658538222562359742926309502555004167045217433322345211918581773611180734321635165071877737526342441199972260128570004424572565990038266410211607888164766573041610906454430735323379600599723205380407632888159052579823862709134963866747298667131918156151498617457124499711596680321184555705512066446112013026679006469706109992340333839079688051569650621854032373434051418008246563264427412646730424221417446429140102886829233565238095685372271446898769762110936830834985210829223538280422838795897548552970664581599465626347597520102264232892736335070387522357990701301692029497987619165269750753135857614425906067302135469213410444432730766271486399462411192903191916334870219467515454679046479183780374271168622341130872550741926655317132558095458610623691877026441044023117435238839992209585748839162798753143431405127500708400542542415194114420637905205145977338049445512961139582573285580877605919569222154569682881417229160863644920515100057733090166165299350120798149085261470725649725454589735999282646098496111437935324880050803187785568082111549608860243338787458587878106475972394630089281215354444628217725596196143661271091083211950163033251968002672287730194519892939795894628438895959868913728677362162562180234819053264179217640888303238722650123086106670149716091039818070269074998264294609772502586214852888636756380459471664504964908187728634412397662046204039577314355941328068089859762287872271024852975066831619068779066889028499171820161709446442104360189488295211906845938152332841716941212566244970788558974584030517963918528950242799262650842723150707423772571803264218864870890300936120475756817017146855657788727845910523611419391108269837740008275951003526541125033512245424498776484560145600993694608541172888840654774379003647349178527118357924667218702889830834034241065304072689678544655888777854810082389008206767523680933682816909598921080309460400645105544622582577953024158999345094291381354517228477323496850270796975657965383005601386922846409889093956331543761200909151048410841220260557469968717063226773555753229076631440981371523379250574809189340028616943218165340971981500058541239374155897316430689103505687278121563412031653384495857951140533728969879266908498248598314964256566903326346281579649367165124508259853092549896104723060340698209990890995205669938701017839264874336523171886213170424843448393208838646709637790449719527914123944900764013991211765989705977577394548438723031777405909498494389641684572954368753291139780176320289142408369754933142560549439637049378613731877586696180832225085410179473664056380699730897014907102264212132762118050846846618414637687504890850911946719940724835145308608969903865530615777140459689279944893952115298040696808616068682647836530123230824323086588611488743753114112098455111385234492779014398788319240812528454570698703858509500615486587797075261075822113967734373060396296374300788430275804261486174441682963798412436341730714118648279877861174630528526942810287096814402341065772492850233073500404508899618438547835220752509616937726036398776833466021062374290248846381186553189160866373561774336060202660351020159781909012989884966283919475956361975202639987920675521290683057602498706379981464086816383510612603464147971789380971915754524481069879270803522874027468101926549434986753312961974674073421658717413504511397783496774043162524008329225346880796792834761196473099182399316906711442703156951127570254013288692916380125832200671060985041307435157803261724668918470563882621867840976768975776344698689027889640795750888271108442632027984427452307132659268087173516591316973923459389044332357703774221621676117959710531415449728071519387537662164378942287103268743930715745179837126424639509598932054528978654952431499621990188900074216475995809504271864017920010448568694471082964809010375501104725591940630554338121686945257768843148377817685715191622810664257443641347085496817535174882043882074588642586691123551941008866728287428606931581810853371386465284714081328819649237786081161283573577084011782765046469685723944874582831946881646435479800228830732360777300759104953644898317417304832016011983759360093527735344670940958017843769244374161835578067355928946677016666252182714715111379233991716430641095877701306363227157714907183117076663216976768757115128640973571269629656600062617192499643921817161514243309729333905645754862718926252319723071742530741475826116644525255730608168120157305210702662557737348007992948401122858487382847417033307623770447745132783417248134014245297054796299085705096645519819735273112214861470380110721906424985255975901400569990840177613813413756588489909707417766999091990695916784963323982985204975243416805675805626400371297721399678846961826252727431916129596026418915194826308675926533654288009792431374113277350879096175572206705529902725588086792001843686653287721894908110819210694866092377004267441637934453471069442904664652683045209029534734197836356416103942450441343083711588861219514885924080578376804466336975626261617312546867393400897376473471777562345775692614878209293774566463371038042691966465517313902508914469894314396669964871939601328458766218715611351142453211686158410252521896442684491085484311061728152310519981882648875151480042957398086664840716857750917563701368516181111496034929118695736898863670949421796366957467316376165928725425241028214879157024657054748772352061669200525623177695467590449164433294832698126475717121131230231895363711918746679892623127000468077488073225370914308379111649663630414916980107756132100816013226163399287202850180752900556075940251558819101041449945266027910947246539081444386356768477958124116488660131770250843016383509186282709365618400367862226157902070575486015382846751301122200630777359924530906020623669871560912245261558916028989031967623696356140148760925526643609062714221984265116186067316700501472152844302943864969508337220748431150494801723968833682267615435853282438808092393401185710572590555039588698668156718038833035116937375837600360240379428884473301135328207592822610176093126932183372574409209057400968611274975106909145039471690882930734481438572721756792808850918043790069242558157804471735472744184658192977966055584996757160069528798462742367598624650370728142295292431439532418287130824770342677007129154059815135379633388058853485807884135643605873900602390931686342462667110534908049339891986915235532328931873247787709881023610304342807895412949623647643622768842825980193523951490677430715009349436799466054601214954025190118017569145609863687511950280884639781263393951523963581182304264536243973353588296880125962583066956259883638228663632836704059274584907819703867200704734496888284770249035651560550131160083818808005162958736461575543968849605684335430582761211351781925353508037494004017961702048245288403388271407641031247185636616286832193375550419021279895341321788443978314259789790113267623695397789326179501000521412967368101871011925050652643626663504098053803173362902938058791760106527312992104971391756577291404547352454861501744234998986797769187310001829522157039088408300415999381088337137903519172685037444792948207955134128272458996693231658292233911193627150261468975864473037023020666869347358491336778963543653798695437439343498317927628129273180979162381312741737466581646592209650445007923477943128719912769244393341130689568279036969457597485426158495252992239986726433795465035915667347115202415717854367434275231134058783235371528628922489518990943620179485026670874845605797861999574907083946531067032059883504388014234992592186855362918716619158259783832539263121680107861985031398629622695522898829245631013377204027731814323804125870180634990010174731965744312834370506073222413733876741584487913476916927580002299375237085573546787500737341865006032533217123017367833669790795905107695377797599359092438311768838738932554437025358834278480169371809547842872780093015876694457352447040598596254461907590198625540649608340826926268770511795804205953029954795883189989931401639601319239150189229337484048661110055658718691494363881389316819887891450606994664066037547342935077532408817748419374650024117542585157799491737721509646813904336257846865885904836358657673847434701096748360746695118322969763024793937995389064536619190665377808007988434568735858463041820825674443159546951934831148946067416002069989963362155041840445760911960632235564152309704196043732717995416248814966685248701912189697326391560194476623336512504237920017066454113045312571636838823861892343326304061770172597949217913100381969259867806969810338861921929825358921800830073136166128579790345177812426550628353526588922375500870879353209798164092534578210093879033720948399008278950070924367170705601063172626721846140464053392362725719485857971480157661704547506626608849253539817621208924212032912771458749690248757144632119456151957728820718609678266399965070826443652442503753726897878894677820757943200396877571024600350455621237332597910864942520030299147142116436263389413268185666138226694653975463607906411220317910936502065016735457645295804664640483922560125779523055028977259646174586300006322274406899151318287737060549504880939397216006603575420165117830566297282537955472382330757134639515383989555264210448625017142218047509373622685668262945444136218683434836783000630149847190849106094076455209627999687019727426276068298012530088175028673190846457072224577161681729751348923781756558107782676458533485364742167202470519016606368142660194183899826055125624593030022278530054473896398545967146015564141642465450904240936683540162594744045551504683796406957249124500919340368563445374895131892361812739181112345375415234683536133075961365086698993562531618323816259965391982870788965359047893546237879966584089191592461931909285897402363769508783357811126157816635901784083345031621929237671537479505371641897134631616226280515919784527455942980218251957610176947515862562333676293098820216919618403363779607064089142849239241378605999658446266033127234613879893683243030073444100077518871261683943068012638318787825974710623881879701815878258754009494462102646017646118556094996435013820350875428595427497237548954158719675538887091564991056244371928151496266310522498968900380176031253363204330866330073687516676904349686905281129260034829985464576038577047247626312036727683264932452441881759820969973346758244184554739764704389808365699303454929870553998557190962245344403166944970146905076036268157306030439310128149181841702683477298314666332440688645548409383496232301562450375698278502907591187667047431617285307736104811839504479095541646912972259382677348886555943466232668945610320038191966872148115576107436616103207381550662300542521611984217129941295794622632650812695582614794826328855947054790481139840027306951536987463343774142556307802511269292286097658585985856935416011186781201072147335108900149977528503875400930657258951180828247731522610474108860577271109323385387481805607809900188521729744448863154347602604135898994101409746312652040335760315115231742221169476680359193749435141543657772448338056042453809633779516201849652375565949020799796271789532267220506892637381714150095183778198340918940639625731160064248006647371489887780084720358058207306497804859832176129981988557325878395720471036615320993480782820504024505977556911187501443173440030404700464905205124147165276319286703049933586557238480440343622447371465221473271832236313895764760253200175083265284314624213681279071318043851925255437370167087212225291885195120488101649678619544413710163029420368237076818578235725698393981936843943017801943781982215047898049132973289851449499074818696870775491106034346151540560500200437693515112824990781207636358374740499774217402484820763031102743962813008891073490573530871436193425746270965346983983288347374451407533232366338086415262203265706421041909381806109554137785757914492015441285983290112016620975691954013246363221438900292303961376767792935100154469287289420845963993943590006315874779855273707808769789598971332533892943423298969802615973234668402473750270317368606272073179138109073813894800684888645724466152836031231028129548827600469051977873532907992679386554989648917947770953833101352753485112526753644852967862060632295500566127252135173100459295728397224538992021641533825765378453734521820332059011468773377762468840226371715329275546246400846786648821593182053355437432991506493938786757712593491305912577322488701759173886378703777364620898050897505494006931547444898287778809108829091562552305173167357313968246539813249639865876491039450745024475459624813123644305953805361235929876095337702507845680471484539068417438789781674291337016248360117366899403742120003122701014968559217441263043497037251055582952275249473292694086435992155999870396126546838675400014177001958744969785494124372657075851211719339354762676605947850031409029963806464904791601503019338751734288265848843687799813014540884591275405985136926370844511823803356953432204773525408848620394751390357389683899862500165939571948855282806103898967586300912339606260043953054549643019498604131204101909167221175970584926525324707470522062794840277194531893688506803069626450285935433616709736989794291509123115182930378139637700588233893603827708259732496208804311886328678588557172049429270917817742776183785729888525734713652689847898552699343463116674324590673800337893238175763471317735097529636586158997467682650070378816482385909797705730670399602562253157012241300569067477548421735976171882422995199565538461039408328209216451885859499034540086482653829673093194155043312466041050454264081489357650009766365897405357756526278133059507178258393500392237872695771495710940525959426454193946759288651992596917056744101359647804029871528118347386395339171863838673581919954890734955720917968744506256368353195239473949877161865220744056672298618990052990767440460634539155960493107348642176226664310786732718373804035823775095577364222489892553311236400765704774915762112080897890633235727085463805140027302644179411813249287230142517974364958658162816430831823204714579711831098510516901451271825601034865065813233396579119407000026063147218573337211714429828024817649967518462208612005625867664523723779777183486318086684846002360998435471413172137583601056390881316169367459961707036074580638197222089444857626757267956987825722079291193400863742838592327844729798289774667137888188905378678090464774234382016897198097908031177551376406101380216243530464498919097935596404604058680439789069109300341151376168122633309648668355036940104717806206151426383466449357842658000775840676908573386664574087378987351266868475532263145815608462767147559760642915885608721804752606290379044871300417399529567388665707488252670796039184780895038508933107197368563379358781748477098860118633715340135786905639121829630997477322368413163928576050014334478481901895299690975410408467638998503610994319685417010982041396483588043059902650322354004675137329214651936892324162345118191089074496749906861730761240510664180114028493990351673509313959292842118145950894897393981193325454538149753492131923340045611389309209964256020113603301405406228697624310189076982211814060358333367715558520508198197982256557253218745436730405164240406997173279124784311617981764614967870127159645113080902667452096329847117881097680426082657539022393128685667216947510975671148915421003540135002910614553058153916185508569902318166525251502198362326461496225629407679113182287673846625764081857749102575462591651180529622918029530187261683635751999008215227839275152431191959248872610715272542403738605334324090175557601115238017750185863663719715484569904080054535189840389639261204351994132757806373641946451583636593558981681439543374613430938720924675310044264846656067025926730155516132299775993992531250367941825710849045264524556059674125474765089210262111272749337146464559202038583804422658718143321645959966616367765691341039915379757570751219788174824316703995701157840894613880926253590763938864470358689425959686318470219038066367971823092623063589803897162772591903355811830131338335229709424192449504527632254776823169677212015974738755627048003931301509350305546301049423791642704356974596796908242264590159569533967419027867513263003372144555429391382645710978485280647142371664508551565424884131485297578041335440171109184184040439392955794119891673329515315805661814440434208825699403429466161704808265142313156616786732711471736143821700783175742976382982646954219794730034686002342516383117382622080953501490795954020502685511544850677048733137796175176114838363199487581469006395767957624312154148895608425256561927269104896062273079661038848117510775734361471588153276263454159160765522075065190825264448884253463666725195531188545624736840587640419544081461408591391317742683305187331964556309954485788603098617658327217832397871852206418339917665281347371604829429945754177268840220113816229376265794787196669087271658724763947894757826361743776159731645971934504908821437316358468279492277407128085254397939878657208607736889591577386407819762470083888058470169072347618039069528429775082653309797410039929552586566070661076065358123967103848775739143395613391077225504110396349367821928458929978172787515641529541022993837865252349298002230846164214304276320868626293185054308886578800956997214315123807028512225766919526741634343005148201731108878421342272783438737387420077850178318918528710626345368589856895670070842916360982222976622405298206381055620015439812482634253422634543301342864420228143886982273441391735748009823700006982315733759710327721281818669608415627770591560946349746330390044672605236966401220300391949233246150743957391910173728106252542717529729545156819503235472192326538261418190313993967333308152277898307497417288515157239765048967222404503979556797940625911703951576703541186646198094197758741197012000929150669385111278005632168960714365789950763968141120344730115656970295208600396256741226150841621100949126262622074185381385507486195967976150332559641526315006699419433941927515648877499381644966085869811860614689240946475152615937694107637077774675992647409811040722618521215537730897537599366659959861426924454666591248892449765520051304716348413904037249680690929607473477157971626058850452313092299348064647753589867943861384787014904626993765281872628653542069576618938257932404508620015762400106836240780656035656916018581791078005223081273030272722316391281407505366642202919814308738981839808746718619554535036501011554179236227788802358938243721211657734235276936324589552405383957341515014160048119955955415816960530773774273606635545644510690269603493810538156244520325820686730666171635530520108416638773157457106820875931233298587558275467618842732105365363360600873108952108565911819306723506842882864669541333229116928441563887046482186697106524368835676235754674787463954955185457454691421517283315252783450843291154012915614270680574958715053969496038803093584176408632253319152821542181793218149806072502603099827852384034067438395079725616581027465756689958790024453434684072292714018926644854330170940424780327856548840550474257932551372556131400230312720953153409561505313710988195719321832471157901728035575089838869356819939512331169368781215706335618635059825333136177063517598096356512024797394312634761491403073547787282522518051831361677457513349150080452812176211257463660547186109631382319618780741111806400186584852604359698671244244670443929359905488014545401713916430831958493119655004909524838179559818051656264810941708630632811664446065741277718138278006514226673745787891888027457456200957945026401971301241914095790927717165467189074383588803989972689730453616281152655701572626736020129794903834433076577938868454889110706723409088051652832820897438747584305920049982641098157619308195706868583052736072544014877232754771736661340302805868814305837805999411343501911690098147123429330934523425114159567891648829846521061326166212631372528819593174289905351113954019709745201596913295106792837158161722225315459116724413873382208421161147091259502698667846305088654657086534615514539334825759984995035183699482242067023506977041299340846741507019847097036201656050479931691808657713436169882421678976783787443149617974180827628116659440341145568133265220433345096886657248735751611761171352669828350377396271074668989970074751902431452170581747163668460468535281697716504813287005025134132059108978240342840426784443759844984927652658729106190281254718619455327082667855353419606980625169800882132286569288805624212971108445844548907640171505467295004693850833783072633026730280745672275404184285896558482216598394852918356941678739683169026695713635641464115549534789165535572373110135082143340292961287099202223887800224295904666023689206103754420062325142652179586902412025185632182867610855153627575213699677468501710137633054324268585890139305703708837083849233996211287083308758375620191537346071816536563670708958585090017080582411744241311849123015851868708132387422707330620788050701374484441612421703882284524872517718104307262590504538953434564992953067419973385539519970016681078831270010384945401983471552250797199704687263960759425366064663238217103531285116529157402500347350937130168476897142404238050475983376390502931491010860843194008958966457788414643886167736004421618425367837615487652195388153661830526778251409026050200103579581695620399591509541033304464065641222488317110478403163344614631762444199803032511333578345041897533405263118307506119448634877047557834125615305033527574563348787360585477462500177955015097961941893220040195965828023749097058271383912646966500566081755496412820830447528412158477976210589240331130053964953053053593739568401739079013862940709298597847474560339289597416128410531213398482922337796275539179938422734240256839552220372483122708569957037917955213152109029528269588740278039818267562315802856734743044651864324356431125928796565419135895773091042093205397329233696070548105535569721555161411028847444344657325674029903419806663546356850321666843218082980274065931751434887767920115052501215185604107099846043963721061667158975769071887405696431777921187946759989831180333045758612672682415806752625757107269968990340029293392532473589586517125658381622494158598871125636236424260129943937349129180136212446512663162559320791518934561280220630607686189116295898161935709372946831589854832940567079235349976006927819254007605798166360252709786037748762198159617073304816790787002569553338752234012540004815389775317866087793909076075897781770812901921122637061528605001417671654098703462020705817198825739827195072501635979102580093984653327702577420584357223328730900852539779991639955015250422138670032960369229651311843040957393334220142518914175540770755754836753523122026728135322747464484307616440811541406454564761738925292668328631623442596505909644168029647953033803785675401468790452687254767137145296708870264371401404370809157560448894527325136595571182146068714663046070403252674210240928783523082489238338312177878579166933779069572897596847521354720366800887061432006790163254447397345084589800261702901398774542346510244866776323458147398443105723174522223544257847119182360985571667353066093578451769761544948321242493656713824789027070529541653433104825713195614525631473917624209939888308975345413581929310905523490571417262033126832637166795487574561163022726229626744093817914752440522029904374664858406013598365575202949179848483248293982795395549720057409683890993568130697388159582503576937591966731688496264836927153165227806568551977398843646137763635010417053656589298524275610845690599739998332772099036499235788903449815967012854000709542232086555491101048820622734404250672508769429207354117558879165980970623430270042944349742918882268381484525855821710240256579639976194592134086451753422747138379067022611115377362604574977015486709838261824735929208089018315711062658041818905340024205300812956173031226954475085951655141585340120039874117604629897356919634435610692716272557508199336838182541601796031503481690161868571225991811720120902397620617510220640449768291106907405081790746766140842465801079860763156226633152156917485689505176268795885328282875371184851373688621136047484286322372901198481431962398636384954275140277445773849735242978408864312747906669570364868494844638975318818263244389258244698338287399922972605246888959915070491340048960522727796652785147426858461124614664783878569700531197585553988297469097094431415360220242396880266096072548843637836833154127233039525642979728206479805287060180068385320529610363348136297328694728587904518158930693735538513597397486565357085521973322702659038732531561102490301064286571163270880472405702363107627962143754000679495835855212210646734964117633370470282013328561477127233362415463796594379113325557042247942452083413774161254519176705618187735804335201286425015440613885823511860460134250672005454337449469703346007772021907398771543267777957923922930597296881761938856744687973175098069957224065846654434098951501750410404540074435676538177902267898391047618683500086081537175838142904926993346708944096689494695324935582803512789467109862724761103810923700190861500827617845239504121448074679111964213746912257728621996206357739471373811801407642396723116325015144409315435436787318128796508042544610311890799242425452306980712206896755688509725765095862631107089097266286667606681733592299631061373505359176578663528953915247002479899417323823742214550832847872984576539555933257471031343595417302884382022544133942058157646971227222196471310576348019961240626998614724329466713960207186316265066081926446691270130992810346056980975305565172437831234015284417864877157360083859951072654885414386039179475422730569826663708894163571283107743520361371333288447256001648833075999173748342880401530130606130275747699948463340030606266347941984492433450919580221652067233295836444859314327602439068252900114033777736292326397957406027196700888920388947979018761830702522566479191751045390405231792892550683533373281947243326804138586662447898209823707834750060847820518435279906272258582914908895996813404473431442330225586762784411480340107878865537394207914938209598263122406740295875270805271500420914302649781326990773993729205229272239912716755621304574936676477947375217839429630725567762727350303239967920805008597065434087853571115346774093126359730695396294218277010655282865380596124326342761534317479350645333628830808611421934331782533023762013561828950104206383844960580341563703174332383893232317528193769799041963854541550596603448908906237997475685123934573361206158368477983353295300837797568066652401335201814344427062903020809812232047236175571710723723170483052135063720539730676396893211232104270715524360450422564337390031778548649092592045932759817411113849970642434255204270664612409776929317151231605967451049505072587502915487656709412274577964104156862957529907005678277393538750136255900558073981394237528509412096872075003030985561791805471908899107276622151352941307577073539529825031504856259298413029444337391388644554375535790397450624855143190402862013367565592165169955682372801710551903826242814826137173081437668640932690280370498126737234053667587864330331060312029177144845855182505626098596866925383263714069396937994649205646121112510605938455513825312171537994083572532741922227168201727290584336655425214202440945741422278076966775761526858842685762583389904206183336579668888182311805628266857977017860572982883407720944173445200846819822598562080980514428460909099123963571855686894389357247789864158317905265624380849884390105441812689862541846802044323340408850072650922417578146111713487329623853395091207145740360724090243758672514114062816932126332714347607458327191044050351490263872434879441891105255537616430687881308189718376777268485775833655328600247238703217955162080191075770972512962971948720477900202651271276574277548616474704452591219758733023995397605166080126347000692723631568875779111644801366296250158419891303324045828789845476728052972068100197428494803787547247686011335318723409173768004319170297461758509264045089831669228903355932335282080563765097343979100546716453114842445783183933582805649690694948912129726969475316383157951377852335303888656412515061731761495931173600358082005484393033626372798063031097532205519408595468504675051140829567775785193369887971957375658142674377574564525901658849557969684561933272511640590290994429699961907360827739046960727137507730862697972523554696504046260323514020155015217501299057134658146674935116688888389189999824238606686692533572318392256620961233615186879557051333264054979152071825242922059101987399986070305020516885022422557461347614743507539301509052838207513034388084127833621303117952207373228663240606587134493447600001866416045718906300740447667389527870228832196488477479410511939331198426676855408889901393236153860724758183278020278242918592493337703745141630779647001169229391085941566627196785292194662172247025012108714008794936389200268408882328030339793313519112834141233138708632947130684912573525149659006576894265849065040826030375039359111158889308224678970473912145485437457453895969910736479778335661185457751698214805944032154081567718038072010262875198052682349689853813369602496763172956052450046829157920351550398428008540792427920810192033799585201988326849706755369295537463608029655490568233256453497096289832566560061284157240521279040569414110238176666903274596079717579215231879875521210530814939023899204300021421607026324539752157206730019985520262240486134442092903586846808149861566023284067550561970191525152565870609083103434767481253412106387066602158440659714018916017079066215895440436513001524605941669822686910370212418073569402231886074150355684011510463374612008476755278088786802578840774677663727127995285646832865202717937962839703608301594308837238596310015931746429799852359938450364175038300178500778501769464043999527696017176616975209239688046799121026276633696668216308808729418498040682152291073658689577033151186549677188779326920966062446642637586643122431886553860586401205652301945578646985663998856504231688971486951528179003451209767336033130601017611268942308594773876862067930102292367931606237445348012869871857828410498578559217926663926585054982760951802268772578469241485571565111121355447266866303545723163242085281540040689930309296475977596037442587157962649635530533232856834381513881468052081112640369673290982720641393750617111128559607760071587614831808375853366484197080252632690715384602694904156035686376853077191288204046705427034156934111402156529256220094575361595053981606084791693147403696010768244472153295715357252783155944960354924834461984416375340622343841527688527066091154183098628150871022651198401414972633394003355665826085501218375708148205413077728302833147388584163226639032638981897955266655108056045408341262402451877578383671636969856553756835083298535649144678555549501348961114231413271113002295917494179443122832768826766012194594080548039688964920313057764090534290491645614889618680943296592021130736375128168901361575525155165993328792440645112252712395991172787776745089521527803522029505131903360151102579248543897945600191837396360821279721306423329196199325014795383361473985553555641855361643844672565860610331995431159725120096714387113587432014232684939942585985643531335882374684780921179895678727124592596415094876976147034660204377463780032645681548780148915769994140659419401330563243341606614723915657020422462067343553539167608362405436298854769320242920458110059530751433874252542899819616407271120379440591575330191660627547062103751393166939507872436442248677670575133301459329056465025768516307801541883693455268733843976974729004334306519260428690401347258642136134541389467921658258723310748779018313854105817291638476417716292068353766565523191295136652981916879588986758764807802997874609751174738476819935062680066081434481831192376140829458329622989812375900200291364960872240076740958522542281249391185725142103074175846058406649278467212106757535284635688279136760727438850930708289892536878591998648363810984400492146393783293566403632540180079091351656776629446266323788443560759655822192118723581706511463379980978989422145290830016179104577134939688632179910882148758916780234364232320704405348144049658546512021819629582852967134463442556111413527857336497926999403231134929715699523617689697959396417293131236579454911610031829105809838549790728023543830710230770600988851524910319930582542102263006028443722700838124332268798872038575445984122500707246043697483218140035160696122290644822243050706398018621945152506480072889108016192687467492337319045871226600228061414465592570053369229866626926207955715915115745792618311606326125930077972908251996535098977028774069111962981895117646411972214804377427051188064123893151963684015315050302604846860024395280246071235610631310646233678836672649595960938540392794569311703990329167660695812713560806474817002934763660248405325603636549445702304451727562087719662301553562463361999820916655947591782778486007111922350613671475379893809119028196827743656310023786663195560456169634232741359083104817496626484389064147363536994919469354605612120799765374440225287386599197852700930788505584742401202590311099029141811864213125232634354506510401619968970490617545864784275596366995402511017698525987314367104541110584091283350578552365226547178530250235585286758650377748498477842144453974003756052553451592058985933002482088230479100343894552959139588827977923747093511925118906466231376254512670849703398128042340043438969488948364292552220955838270203467375633475147880977158640063269041820933609919632408755199742653418986887731626769005927021835974345627788992445735876102079650673022394262734912695868707419872883810064218893586078977794852789224145195083029871153135212832154442556189452363287101551548590041804884084989050497102774352011514158550238887095695799591215999778764233668274162974308184833682646753006352810290914257201457278672197873426066040190732535280832052501289089034978170083430593442638307364282370198922069354063501875555049599933685080703982530642404064449694808569768074115410569439798863097573511131204806275190698908436132002524457122748852916644021993267298111038814779174044127476757797689172650995241840267864921954469566254803969567816566281562812824201276582295349516745367650551336977225257030970473318399129449210221931061487775364241989458377525049678077424924844056154969951864314783396893167607516921603861129599525670348793149743677216959881712541796398320398998534138513333849177053122279862642484971851376165132789242232691788799284118782872095342017637200673976757732864368700286425964692745618364039121803826387982851896125099574865221583436858617603047520708936452952464639402952319447940060828305889398723572745651715709335830624407474979779707701742880464721326690897744395931296520685688087832810105958203034015660227057528677368548874320078998107701938413103027379711493597757850041483297219153046944483633219843046838478894045433696401097267539468479806534265422564851721098055107352936390307345924174736628987221669833083238556836229855961170981834511873643437814591637357223776106985793937654525191936471467728583329662301891652343164450929494558000762727338433444466875023307846378611493721153231040416801751235917410120318706335998078790587961168858574467161755426512792800554187564053154416813007266168473611907801768482784149050788870540035752038849387530643662151157862904785615138116097754810827841521822339119755308245218642677902349643690285082035440376447604149001202027471649041789421259917572110779086346627926329605422691806384947346969893514576499668956229541940503323895436307628664924460605134956864621780585746820451427163515703346021763153704902705176097329628118784379540572894029358245917653065162830532296876155860052346224148299192737626511657571758215805523897121925225690185820092128394726932166805609576859834932524805343091845273197316645957180478888941206638701579996470328138467506344508483992822118804899097233731309505100434709014477943275694055554096098384424590056295793474101093824173449795391282073342165454610260110440764190836166677430147860122904360882446062330721529124744653571783323658321990564896211849632058796704098887463970562578414503542294353989393420582961646604288771806934719795892505874768083788923696214845229367423435720035949374841518806027858400044528057254041961213559829431352615269033718773007206203645742944215237352897600535179127603511440898695605177688873961920799841433365942108025042149746925824898022290008620129896696625114741416307806895227653517865401113166430706047715534635464128333823321799621442893515183179672951940659129045106824816706851367641373236732236650049547259638247335754975945736677759958625380355827542125700190160986966129424431039503484272621203532655932181034632853613661046996689031879089565470400312686225050469954726661492846387476413562109679523251982951270801744372670008963211073967919337717200992805347285247600788213624262541894221432150074067493282194085788293297903059504498685804515323367113159410070160790237643111041922989274194582144555406394145533479205509956852668317370963001644963515296571195104773543178722159474102719218114819203803180062321118298625721723433090605801157813359872958843931161969890520548402018840752710003490194062351065880531477840789567869186316508776676917124315824148086291781584516429810248607836615131917175849145961670214679074723662100258215632777522808695544568341324973180071893985535505506169920304683337151639453878181680524375896952831315375273442460578757821458035516193987281862171167204429233440603464440552637369597861799570691015312372872796415652482149677394557151811451639643712621494903675111005680352089382807441139873245507118909014198605618810215537023065576588222878279229668264320954364974798568315270705918404106751166575255795757702262341525189519976228684215519295179375159601498203961983057342430215962485944211762059568237466243978807998309014587357933288138262373570895650366002203547782198567810260403964970682841897260149794683968697621414078487873504234388643953302921474467995930325010395597469702645723842808783549904005112015334975734651834417010826849337914066235704969535664080724278022759186425213701538954559466843200826962511568300678556066580197790016626322533845681749522613977749392285335791455191134025719401598032817148884303502353044888772054298481970312634833678902350842275005231325083735245859832035885615346226002721941485023579518701653706915960534374940950815469037771800520818452351549050025627769175881066513064348624654371690201420620838445928733520245143782656283522039608288347439795563653151725496548875372367580393660293009451522923966677733345701166869071383505696031357529416290085580082142659896713249634337452135493004071568695256811196152987142496286167194305439931479673520929756244304146652899249166431294331922607536615902870219534219264164793528170344697040470422534871227843141995872476485248297800525300304182243677703826998398259180950567116056290909313318708629013648180337907946220997931711551084045141619149481841962232220564898938671794754310210683073830452437309538546783803165744873256490560872226875173937842402937646711463461480944571688322027321132999451334917117104325108592278523272584429220597714150521290207378136058155504420232780888183241454410064719919118489028084896132904934378610408352934633124077039148755940986188778513722707515969944021290340726894053582302628649281364383530501774111406537442141518442888859044299904255335231486280432442240357292184407143367275398333442977248538848509099086215482030443720673603452802038697642147793780821927050818665770175996397314696719626491303639905702003864256772560849711694114496186315682553896622247117769969660840191084481244552024371474652461440856179985860455623946290166897284972913347112582733504344695495248667623198798236104101444138271527727179260019244611047412274741699716278000706420019820168273813478625472649890492970942177400173457587312609770061337571792504102396844588074063293782846563500622741155468589257920284703385119536444398629448791286024740640810844739634376250243444631991050393863884840986619325668463513448022924206603182608062845884858866763360512361484623586672217337462072090538785741473016759613702109313923366189952455644199562125423393368804738257455636644681002319082083418566595059104348039660536076006787973562655766733969690810622020287584297112999843825148561108384039707867818152199233542934943912863135301529201687874992400378290772259461171501622721199115763434456937360283414134941731205682152635429677103570055179568109994549826552236534075254205937182219857386075715592374279120044210175869571378728284493520799438117794444053027028547165857841314442750336334597276975581763079437836165134543251103199836601442759214502553347315513127782385585887889749999377811319733437985096037874621044868891995705295243496995573137241802162457273683599081529841176770427010250126673824943787237593515156242363289097821411690552334676084644567424671565207274750949573141465898133834343095484020020093334072790939257188199489230239908668920661108938017345276473964653799352356753520300936067421200867271933984801682973153506844018379816671627482859340015473087233908985662564752605091571596275924512333645516376063731440517030923777842050879998131679953047861483743701692582309011819121310622434081978734388951591552369180933266087640688766059747861563491296689956708161542576212969636484691549366528956196889626487165039116825579644539098261297117026311087086288172225049952503642374738179122012540699287717289009124923416936111725030336093104047942476881147013739998730797265202864497424895559884973934191826744011040244232367283057142710573818962791913353874139826121552127589138407829201817483808610029759340097093929428902258292372842034187726230584926164035336687827102187394806694300627876424224040863930289245389433076042280673987677999279510597292591824238330753523844128728000139843039256043561276037515165615917859167686543336532813657932394563283923880822420722800844186217113618480397613262923037216755984032851364074989072987448563369648469835176426906394223324085359753020923149949695542966361711597237510412385806628488779098320397871447702141092930122274129573948280084007747346932696684755592691809168598396250818646119955320300534077641859783902514016527822516422197123441356058139754313737871546055470575978203015931121500995164234848805348263289841427496430181681706791047076544933705951767030232396429620658864824940445448852325699962696952034530830362000331705499066202571808052252119651979352436025583664984748083035419302510357330614004662164279785186552379443285942346601533755321808276532153971087134043180335134527451442778186331798945993255871507020247481554213414575507990963627281261699865728848108828432386018175634616658609474610278074397214577785107222276392041823622403002961891395856386910598202235902437039967197911376571037525768077938817406315976928388516611122737930719066170721780529630882465794754695800618245702130045811057186058263520967230210058962039111618223174031881140977543646247808491710506278155610081830575808598451077728830302051113739207665242487198318077237060600946261972047705072451642818492108848197009294374209095797281706049460119794525905767469497058865711413939634884312337330439583833337289339878286902519603279134749526131696189650534550867042899460973675316121693294082203803360911633542096129326196924612313710586604844473291413962734372020272234827794051198327544035515436451824257871987019900843230222938951638256683267790793787484503121941923417120627781392989179684410413377037431145636617613324864947504448905722441749654867826780807465716296495500321294891703251742903097021262199175702624286903458355792213870840395160077714719182508345651021398537845683410148020716992837369711802375907777573652186707478364782213443457288944984614992153915285159380243101405273967822798052025831473420296374095817590894445997286306548826756939630320126481973146005168481313028791990706689452730296694426434831635451742214187122896221951548314173016198544730481151552601548452066646018766275780786082088881656251540383331061079268605803660839493680696998884130953344764845940312966776842496454317766533594172940385362043741221328629779674910127525468513586474903624475575492376017547126412072299482994872875014330942884288951725343690778214555808383123763749643218892206680920315251968225767713008409257798120856915989860352700163450738408507506328250202956827388213787501639671418663041684145465848987508672058175509211211985737551586312214046024908769162824412548887971218149144016009590425757929595305990751259427256550847603871898283926712343471633130533212576272357623846676804022987348442956461860375744173914240151069650172412430652186297181751906526446504673223110102275432784494265986471815039846098895642029652848786747982993818800680433559992630456986640314549709688749703955995602637200791924166811521117071129073024334289358306697673916411616503089071003316231536045961195203525853075494045435087328130275235570183709237092542324409390771794282525066732061622054829073558183052119660586636049419705879063595852927369662523058026497276829885216885113358812549363189447330575569138726688222153485507296860333934724351228399510642014262628702655780437710365910451981388610731848033679024645189665174524245298895616980268771277277827835396716367122180758273466024874703303907465981689163037050926098866330582533834970377206065503092070593743313982903695044052803499587293074450864542799718889817189732493130687627686238157092181750735717947650770365551280951105759683105576124216284134927206095983482884269309677943645279839928616494677325683475516974386154979576311185929437131329789510424880234108778280650095085481536434583475210182401954965911790499413890183231707440230515959671064131743121617511351790595953820682767308018697560968887972531333044261623997787070614351416650316110229763255542576493467224152414711024261548503503177197277035582207700748096345351799270538525067994576294145521160061582535217635735314995808599813878818343225849213585700934257270970448102569142895153824583043659612569501480675478694419258437179540281199849546196635732100285947789183664922751465167171148523381476674485074474850948375948392199762280517962056346453877586264070367444093323488109969972396431668704802737281016794804411458805597325542379099851546157367665739799450203155036134240553691424314949343486528177062256290877234156436973893157533928787241611512336082445372149254611329729983929484624329124600186378072257627372956203244475527656776050745752559481412566270832064673062576042759231140059071197340945044452482605449620874457968605187894574922902071336246073284943347549752367232060859616699667497548741194730257146657241310118853213588168705313917562846449605032657715136991282555923904688485917738607290381789259694181206882323042974752068149323566073977222730406008518941138830749397574865019182260138303002078213325929346032135138730370690005157609061239276734207316354191609180246229944218827978837785912718961220296812845274857396700683477212587320815997477013951751046903716602396515244572356055728149356864345487577525905961766634415045198184865708951221231453220851232493465282719373771197259391064543736442420892173160118022132312318886406283521053650220714419441028270798396209900551994620229855168860499538389206013568979378573991652038179946571398426081787567869774454936150061712874529112096905348207176128619653752567521280536742078485024282582983645867825017203909391273459270212129848192708121527894343306780904242489015704426966110078472790866827236839412891405875651502378563341565138320533942732241819400015750175938067322943776533791503344270409853565496891856899563242283378091283430721078637642441302634770487365611131600399619013812834272749875938637874113768483227925991246016653886857234102412081860889269295483710249127322592212026769148898136894807567857741878336540323942644870597580954288665782410523682066343076740025735655794544536265698191444901025187896431102242708641962235363997895471464800720974932599331566215431478823891826639562719258460822163492934166239223362130090092577493588694273168159260061013268421246371628178483667297940169580613463643279027291614744914982530501895478025008173694679686435711510996315628574325224050322774487340726122984263502475392619563645344880414890451708575789402846284052305054425486020850991316541231676671751196430889116411984188989874799112677549347112516637028310302288353349832086076770451519405342476912261942761256910469358604010913147068456462854384711487389342386746430199505950545053299913126873437035183849676999885094726120827538026979840980401862436534232707329249760583709805069458950303252182991557101611844096477469449252788979255779736291469339800627238929406900493646945833453726759394264297124551953258826128896738561374883381988791078579335272175322144541560905455565226240232324739360585038784674326628532562214884387748119651869720778269791889186253981292859188192257046687742683471345614570417248044860984363164367419917013521803386299386689414813205757857580971421869909492505488042771965213480619489605165241276154182111396577613146712686514966194742634167870987943200799926074355188812737472091357327552643518286576395520428173069875087062520385676062264333534963451511141152068717078311712056882045205792826472564030029665009732492996858364963359990363992177695979663262689808774687416585232311926045450737579858261972420535329573115041518719027153167543199696713089155481059428247245991796833108860242250359825815379360590108433909395306469461570098986309568359876315705919181940212670576579091779090900204194031979498416130986703055472800759014695946551680827517081314557597263433314811463045816025948102537597376447592413017484039087529420453291680137415942015868441964090860930272865682035665070168401481987394163990877465320070644001825359277093836510269720996183938179454266301620938947094929650535344617696411394818829739218349404633942259746193266059775249979462087424241710074626913281875010806320696297937737724566744501830209970309360669821012089705404588825897507148279342145083149032279506116531227293559348440572048096603700916134414734649486222853999629713151134727203008601568050858280039086009094432188220761142898634776432045510475383220625367870355393842069928590346023585354102267672354468827465494736062520905083299124107488855724617632882495548869561566339059535063974558216141626356488807824863969432411174140963787167055806430691553701509757869467934172174209242276179182429291613850008473828705403293023707307628548114359281214677454517620502276642623715320225381187685429992661066115624646693340033623965046731657757457638675195419291943917744616768241598179241505598990540394671616688237413765989418052748300493325348482274855572869998705559698968190234459988933627875430169155216876392806323210291856955094042386061570223518477714071589324068440306047988564918042259609888476005939316884638288713331285285652920495611108361480114215914266916814265893060217051749684598289171993977983371410553438881603459966592158081271417221216996505845547149741164577953929316421181179001757711488816428216133227301718022839103037705478617148230366137856422344662936339798897628091980183077891599781611605503678203028391445426460049110225689430453160853414600881064090988452543943969757615724734486685203665156757502447066348840650973804917375279778959028200435576633772823542966248239382920695230478929326411341567952848454537191918953197647972506626626592188608548353739153222129096376051101887527755687763660513629611963843920408751580403875673456878881848387860577951238246417169196263447482252097094019400657014763889643292674675446717718090169124362674888288734334912370284639170955638773101240700800578344225076182119739732880866397471002279481992023990612960898701104628498478553788691965787317627989289014460865713145971482371990557888800567272367412043206676752941790869335594785464561167051795920530487830854482242542105748627057862984513798948568882391119249787810026837764666361402913215619363281007667500408500791149882431756445580241222850173663683845533077955968466709159790428864400970281671421513403861063496774125026235222725940060435655803477208594396492854983718092676371573080794628946598540153322993986269778387774543187514782592296005185388301733527171158637487017300140449560644629034318204495222249337521770894554611709249058883318280325181090701640463726088919396176506228612867929834525820291562471047478921957271156685167892717836437674025784705219804724418904316729949211446944861947367148889504473405165604549467586693512403446593747867546032312076623661005612577538266221718032645611142992514016751482449660470693148436951138168981079163433147365930246792069678970077155430838451812485060826864192939657031359579027017932455496174846840708359199930959212650304819858460361035686890316712469004179104151737597754926476258984351786766067188338533922164535643683757010196838356299475141252578561751537340090764717728435719264404597184850046447166936302096798153907216287499852537925585918754348496857604982460623923651656269088705739525934900717564217410677996294475406852495278546880392517347276362896623015915423001934868263833247001812017224769184880671514005514145092741462805151210976366389305457468286659765840461687242972086583671670590714766182186278095951857117720682953523442027676174789781363505835615572902421750981144520951592165560891077963429337674815728829185412934327553164444498918955150166383937344394661811683793443397083304902189707194376959440375340502515381551515214966795982854815854313895049544232138166391875927109736079652762625089469395370496875636913982993433416154161667792131060662969118754412089542024509064146809291488192327180431933251920094621467296317249528226616625770842039331080981012788794876434105870570343451742326016056093021370644086711542809191674130707348016664528135652468781079273041911695729045619372765137241971649444808423260337580489804079553396212204050804872796205595743792997916121031347110282677217188059549709743285627635396278228946439101892080703532241624984749118614046294934723262062242281830823932560379041649082352307266669454200509585327767375025660620456035775506463058689046765524801250940916049126200637761931976596500625955237559789795395884931121187225202942492011115172696554332195176833686249593201020264396442898874041019016284214156430369896135162626842826586714465005538816580941024493019809863093377673873449809809512295792852290906430198356636095023491166699270333807615673464471675473293852901312200671373887307451723046157949065315809397399175275593846645588213598036745789148324970620219285153584015676643738792605044114563766797668691492786830916101195294295016611264964186502574236459577598647140085855756922780475087645044068435276203022710660013836112148220121801712060269945358940267039911718287080518424139509407153909222151128192085853485191479513386377342219371350800046577526871501586033896471589356142026815414022601579502086568374617090001808467693881721418100483284903650529416422196597151657908464679483664311937641941036601887475707374099057014430000154792236184108131227361928316518782822076476528990659502014364305242228944725756244125938105474630228152843350074820441763650407240887631017605364220827411420340827824141691292605827522368061356021127710619955256778040841744912871848554035676953463615843806001690199977694117638258441817275163084987393447824646078958704917439250391215527547781727357940869119712173777129145486543079377185537425579544078520056571175449013159250999514823155243466957044173141989684895508674843166310128368835874185206704838435881802643633045229505682757061066617173628166556318804101072772640975027862922560845179798485962375953493997915740029613095840781144518248178215014255735721266398345720961808807735069422454187882504470317455427846273104693362965880951915711134684852252843339584462689081736873391505169025788360185319788837333582645953427608826671952635043097088838123498053710824086717258931460265413981038900795276315020132507490566007183921232655694428249083271701899268643699071331635957897380136580195698225210149510012716659537464981671540985317768553977353292912473948231375483660682721477519730153232375533280261958726723972364039247808431719593925236620384022328041610103342363858589865169477501591723664934854588950211008305370051656792704368483198897513451504007859895423983846305848023285474744927832985116622651270194598717588798633955968528300156051305611177404993669407202151854914531317478573783185002382037449834799384071349126974586996920602095663023089833258380615039244398478128463642746692913852685224113892818200917735571757349561703953937968975374515399292451302477186485622887289384236606774838319025481181637377923061030164003185372568322973798511767554830645873013544858656883319013803602890923732514319754544652459181618208032507414943131617959597629705038887059636258780706037222251371540463304654068976413073755311445249452793799899686498528357052766908400196029187469330352801226276713820504022706285454620095861763006776511707993490187816288667677244009581028793318468651191052679671044011043634946804298486427460933763658261643876647357608503016652932847205659978444304247948922253323236377274233761528430245871435072815997346632314670819279093583884008711817456093787414396265222938045834371105623245820297655327794480570137540877220785060183532946042436386291057394400808044829228456581168094402222449475279378589818297332485097240615273096988479263019383259048128143152179783533106832696671208060391596287395287729378378547405787132392148504895111681756661155504589808055101683352109927867474682600895649103898871205939348679374295569130075794933224056305477525834595435494265651174030788852209301023189371855428029007145061025497649933615167497086483048986901220515807247184941477947979371227115495848707179347595483545415167704065978530465358927096055272247907331407631677224484305261999072414248929376458034849712406354542915070730107059047570840015642378930902094869653151362371384128149145177027038869744558139358558101929751030538118781193028881507078194556365446283354340794714169637457731129084507447532275266348364212578721789379213889766246778580655975411960434419307792685408907556983959711522037889553633764052427812052170870283014915702736252413655643969502296079440564922710690055849800921298933843303901948515262487902835831401370577118221644396606997681543223888908624998186989402027584719147202309522862649993701274271676542414378093704395609586821545872824412833434810181659124580800549921827513919158897004495884583057443717451055407031121631731675998240428407797535393769364073965099156380726854917410207871782268375574782882958139583432421972678598933822631094191902189172883780110594537811600473351686774101431088917941485946044854839132395837317280838245743349084644599478611113391283137957372273164850176611504133274319238223988343410217724653071292478307468472985431505315116779115912448126090555658635378692189237456341353735549506701443263376051042493625234589015558869291408497073511068114093339256937862512504211205760036838808335741497150564641953233790912053071160309900710291273898220254936817795893551597470761503603767133698859299967464823215801199306082369000298780127428073549604940490438434542454957599331871385821468669387942745189698323809713593442146659965702139914785550848151127366003725649170064728568364548554344492620907583965911422114213627447978287024467019895501558491281010503422715500023448132200271730451614741690466435895147045902241658615454267207474148464082702760960957999505524562737432007658828610679228251902668920101035305893994897360050734307801206811516606915388985433725139696055117904117208381455962296604598429678632589752078815420259118579429799213885737582347903545091177371076920033613129666232039332578496861979087606208055528096294535066124792119492044700829587466036186629685689936729193262766092393356640506592749697467861236893319453984730407239409612586731198713252685997917951101331549628143783620921934446409669962995462079846747508221867947185700241982329427669718856995308614623887162465683374017471268415947543907965016517264154689822013281003768590159015189945635694134663553603237306599683167023042324780941646411722261950712975932199635933152169364358482051914100035322064632416798687312102056096943122541232560458317300748521231266937297596702758341852568929006899938546469249267845718016461036552338793873816139502602934504841129902436409810170644013893995395554697171306820934153257648245128022322511011163119877422294675067370879652632421018582318375121928076081887882359219552688637035882312055120446592054986293065419991757988761054131477493966340021299311129945562728088085769957034796036233775752604390542882187437359913355881112882442697890359151252229415491471776349941070286297572837287846786601224061383373534723132317529865028034067707553493539439021872834523056741631446331081067412824110456748620851206951075549415502047248971647214802950517734659858331982962688035499365429934681181645362544757869722464745178712674245640112582740496738338948181536607446629339386010436020525483919116688329505006479625276566975244754695452667598841358553155876129267828109284566263992257708849385525888500928886658414616744403896063102889219659748791525369824089494962593042048839863696001431666778158211618068651354670556971815094173322429869480509899178069755784109453157376531573259257746043230322298599056993278471454408286306725994682253464082642786224697937015897503929575004898655582112680100755355812062877882726260259238209793313659217715436680328188148040527176205824217073484942460432034157895180043989119769324319813793698807305439033984498977252743578977773754567769173623096687878391091945030418809120162667732413185269572797188190460172729167640265178082104241252513785232643041235829584066258183364841988090453561059577979591011680061576181106751969665749040077867088344193574470978272779122402334387295538930377877775403394441299334215408450627822719561394702034191018431807321554204368834505021780493909420620611723806788254054103261264290406762326136410486084654044102100913780915101030855826571945032872480312991278339135718650199303642696114073365873497316157571185983173735623132274482216030777282895934419488911963427109520944336297540253397151770961816791137342156717760598091825929181534828968931022124680282363208367228442017263182228458037497388976227100673485908548395016746092483881383910292128651961852191390964906908060758146566695387504802589363556543572730074635585596549335482173375479834574314201070984274786993153023657521465588056608176234255372796860864944841528177427376723001193564407956910814475636473834353435601921322700665015412033702224597717512448664195679940796240154276624002634104600540646756342142633099614639805830772675879885879706583130442704755361819677246029835447904722532628686471473152142212805212196851727347210200731400872932206839837404898322153593130346034524219462669628396591728859046981323920330026780083959702632327240906844990139291728940593864676446883769698776666334924524134673611242565498525985664093502881256738241500002097642586168330858647415338424875029868564976629369965331191915668890314355408971469708965509874669819193287466614880017983650324619408057199971731821376692764559152241718060707269078497298091452861359365578719397308959237855168365260389577989010967849843406681149530707867618737135983881911362391035875052076269973263444111074772612967901055681710357399128534805683088983369181288741549542351188425435752171358899987780101471212918816202698721368759428419130982199302360081387713013868935041243915047303982314017940741026825585932613806283207028994208496090089701754166795778717898149327031387580104248958110235754378287637946392892207108453308800807818163816527563728183350618956851140142257866352660947399073785840293340938482674939102378313010936953663292314367680998235315954948869364580036430081078418032833792511057438200262351801250819015260132377965090831168524618932525406161120292309580812229533756991551787928965600847556033709396610844108069838269578630534195116194267260279109198369061402722325238553286109970895991523488176537347028136704190177756334317005248885485630133046765463824082335009318550083675180012232802488989413753326324630138782903004037752768513149280478537063224837361259663441328197367029559473466332334213800940867050691754616445448257157000577399545149673215933058633489686869751821868845577198100733284795387111734014109058124110567517362981640223870363374045336434213064241439801186766052203775068222128972862734373031221298126633947295339600613937954613879214576073880000155875710105155539620006855301674357642185703121985140595782559370550378229872282197821550497918072280608646601089624296922728618642312934276782708192431061610150912006497080519114142105107735665050753069713344831119826467916951523487998572022224789124585806732372580021286534371300019874878324155901870923714050162360909131974889043278032400097610985173981108492836260501260236861646797783062659988121630247445702563953573035514078210237663173947084188586307510975000606750575529885119737284504606912922251287620700026131572153198423027317008418559948038044936357538197941665225921595293066039662969530563971012162116966229238641707499919858930404608493116832461387775202007289256301793268907448854056655170614405544977241134362973198050146115221917594618240542067003608890680995525008369557771260850282836970555635847121425675216163131800468293890192407294551417944197852780067633125461575691481275471670412031784351132945743800496254628705006573399181589818370735902421592615512313122663663456533637639433004404031253656569336865473715970003128467869279155115204636726251832855481885415894455435933742678743084492136232712700131644941145154896040349346965987216304326805209052192536785762560808461838535145819401827601264106900582953711744279661160429338284470641526634380362012894175557560109731376036992082768700335483406624403875971872079974342903390030693628339740878057543745165747428840228145949054596565366817948177174401626793065865815792352005112559636969264781704890984992787672776623431636557578466647532323859236887774684140825556106940721883401588566827414906316141904958297312619725517870624384819430555634206355377862928509426356658616792511101160898294653714089906304357050363937875816074958668616018543259502998029294001356562048051636125202432126517599637139629458766895357465246492144976167732192374259142784338394103083355126126696833867501375721243528570992730525766237548013236780495175151058534577686069363053220919248444582402589551727557434753878173813918753944680888451992297241362526624306076442495497007718528400475483573577293006448089841295003021268919341897338011262391075116347643331159497391139594529285102534934453556794290782120292843483089120341028005159589595093990271509371941026831192978936448800631603858967927540990032108877623389815527285502797951801120907798817965680517482611235987766044677515744070733505389774187054229564227456111049988525266305243687896667382553104634089256235853531924323851185256095220711707682975195827927064150408290831831194827711452967335032030765385790592714560095760599246242524674373200544140168675069512422834911403874853053321663983742226405852189197855728692100831818340470875288373468300266616254278085528675071457942360724842116287730360310611826889307196724361271139876952712223686586046942162633555560065378961069615089688635529537304679895764300225497985698186802594859947239363471488055880114442297392174400559115149608223931988244477634196043160466429803647544931654885937777439647304996057964076111924432536470026419720782919520660916684192092459181225612277957237757524372746861353990172962234452661147766794049945376296633261717622059332185113950232299064223281452297570643487996757326726613557800963719915866974548102477963363719982537217782155055031387482138555356332791647332115955885341224625177636478104687438682498812086191526368777807190303443266746706810476910488606737650540956312079651045493934081342710838574980732117954717062291942834245618038603569897552904781910578737342681187156462453704150738225195025477499184601023767425403990548015281131748588815755283037754810825787772307208397954072585813744152777449447202868988530585380899085658723429335505490592918225629049293314704657160789476196878411212899810820010381309306184859740897544514004669564826530553466529766903020834963841343692166467177051730444853035186138410122845226307763151504359556349895141311051155217242075951164260862333218446027207205833227655789028404455023515981333924643284330816654234028221354740719901430955088035454163663083691972090803498994870131386200785130325732877891185752424408725782580935197440830326700059432310845511395690399857806969965932461605850975303616219814065857741744486214929751854996119597103487519328016050499618318215075944161115419598920080473481401107813220995425761698285186044531082625877016146265316541514487161462854656603232943603566049551882013191823817451118492442633409215473102481999688736313904926689751986104987956240627018342281139637145610247907923528372655303678766283447568314200200186653776578991108484253763316667284368453845410271394343271160107638814768257943736910631335640249426542763991407016487853328329082505285168290052808453524681898787768661237506310035665919074672341543043639039535348925757909402045329181072655904352053541044730899353227642294527204638533624510728876749280889111515057441139562294294282172963765844743201004640444288189224542794005423283332147783662848343020485453609202529954811416606877290455514062560470383075710386753494233489346847830887998044511394688308680835530592234616488735429011366430813371617232952148806291550478421193093311195096519736699922414410754223743766523381732567782508902403642448045546966057985470854591440573263983662395171255849385722199537955666446990196216272475927439887437384655713362222496715282916270548178932424055827020269989799389512343730731733017666255993848707820020933366303074492923386630737950856681949717186230420772718981353624791192563596925073997691828568355426689936256600897372709491958326652257830196462925306114929783660307687299914023515956500655592820031784817485378318354171768778065811507535542739403921667424106111100030866372828900759544375411357436214856571527276282644129897870631843508599666890157409276922051288076273074499199901419412489160676492657299886259190209977477676994714690554732022278380312716129768577011420616522279791031175392900041480722296829600644718868102543942169780168502618504682927482105764382587578039801605402782221847283679880153575877323996520020916750842553018162652106037484472843479414496669930642201854484889252597640172282872893769113069580997782217557539988599396524928451178900473439054742316451475763401390842835291061625369485243418122672246084796288221408295459687851388415508678931828468522189576868512598091182411442364487097806873425325727834159761946852397651522966894880442083700999259918382422080663703536576010321042975497827547167340443485263797648786017579398118829431575881582169750776149876029477905978377907607534643899740645796531268062535739771752876971687443905563318993985297563924871609373173549023054022675460688637212804658976547034246619644914832658528994472029302884809435948195811678499994641212710463087524997689317280688883805061549871923002648951753825167906133717182783188401070584299476050484246480371577360349687559750048819277931144507197605960632991849692770031151808866825846689780543981038935457053689965876515501972252204702390965069075204881098357104365330654476460372005450660408509978198576816731500926298442959685530717939857057648170063337372770862865667036708178412949515223390161147289418223693867536422960853476051816670519357829265325354553198988945057946110438565846032339759464112703615650864250927669016919335405497102940990864101400418573236629213701089256390558007368081363440602269484027839964911367170312168677348510190052574479840526635902731572942068245156772790092055077999587264870019035857110343508023586857671403426048566078470343120103433404505975652090421733838590276890023228501674506031133814559573931878693249509877846982005879234733118257329253023508711898181541275298610916713530202041276128737516638384494706364981101605963296204956721953251979410288653095041402394106081936591197639017938214073814157720138440643235662610353694503937861765871394364417215678236065393134571491624892620785683982200791724367938174353822249450543503902676225403100496565254673761379285317221486381698588632137161508960670369970965492211805159802254266691301667290180865565670956134431806436889579738580504615465261600924564498810743415287559255380609183818851394078645833714002075070116904350863851075021153014362887541068485187726097063550897707899436567558616714708688889071864519952334120674323937994971142662164004347800009139156030231453140989490142842924313758915234156021254520839582673528664511028769283294705982038363948123258962895633928490389324883142887744835278968185618859982576071137423828279240033236963267138603601108921902689602642418564756898898619537720679965627583041807326064698350843529278585547212065067782355098312197917995389632400870137980521460430095138010138620409045289662056427817317269479267400471076067025714079038038219233348993046673853087273935130360429641959771616948985904131076495158526546850806761000411487953889393344601127929616937103117868975151313346744122064493367154282583295637820675654358366791435250433086883460921784398716323595265823080245275292609734263592840863096774068836649503873831128051541120496421887855922100884815682293666377838506203617136308722484501086483155516840809034759675650029145789657725035642255688816972669457599815987231716923394569104116121385372746316445190838075433357759266795627686770338425851522578107566949526902011099699287566206990508035738838959031759474708830299373463681862268419826450179751518612110733742795088517972550051995688774791380507228228507527390894665014091271738224347712248062843398794965064837470594893323658784101749588737783431069517222389331147474784987904904566784655650410734940792344637703885628739941657506904474439742332895914728321925345410860807433989244729600564124906644193523821594852021588145677793096139947286554504414042088216402049317940050497509434999348979118282628175025753729016531162695483768030689296957538492364102288794940873494777746215152906151538928238812696839363222437832620312542177966940563518198466188354079976889785997767478115712031462590320891606918098937750395118343017452981296883330072772576183061871430476567612994406555047189547575549863301204127098678505881668222357725474116848617084963219572950442534048754484808223796693183834530394979792596965580576117199422717353326120030655102690773836426360386578864278373328817454815705611145569475924144608447703496806731880825209900600359430575141323819078330701429896830906281607765909099267936144301767165608956871219759112007408291649634152301998718385283862995491803041847401735262222525760933103033929431665177970690034424647392926584839475169185560879976926213169645387865013013984414827869984491237249861084198542768435234093100588773149095866974869824896325366837504737035946853102823881644685492285443747723556328813050993138196351942817150082918631137112528300414042908947270245755202050849048325338139320887155021907785422753675451697311792762453992087933572955991787200346833980043928972440722206053138203194512692502376800156247859492316434773622667617271045194263239266134564054830549544823392845514878648358437153611765719162853425068210110629969692316390156802860407872391710448217776014526084186206043845785088676177649667580453100545935258252926174483459380855920935845208391983956532530167921260630964810623200007700204486319612451192554418751412131246619964465442453224321316386402075495510128941575125948524638284262664031821678513858272191146239376100522411374470837569340715654328610296612425458088865755414110270021952518556856662609418888615421605049522808652681242759726458478917729652133711828898469438458748313779537746848430579741059105249759544990031825477055065685323853593621207251005551912696854407353294584769321136193118734236731482080598425715675243453303082648322187463916333984610867068357231322849435592733539734096501319816125713609063194285410610821232597840921104503507274803841214655267640131001428641795785876404344027241632527663864855548424450752924098035283105873305180398236476618113460469270179703710424780907976173277272348941374029619415497749423787649973805618940138053616401948447245243561577935217622037857566007368219609033243896548079104504904814596198068790726960275304798628788914062164447200029036461889028308137889357758325131630053113563041979726589767603253485215944422532693300553241784904212990923931314940084342816518396555398849253421480100217864434946048248017453786319139445721402798620351775747589921566130027161203236553219339001136525674185649623712062266773451613326803030998749744610743862704323776670021143981285244906194643486351831940283990541892369183225198778552984366930729402436305727953874568109137046330260906876847985654934407855818427332097478539805445316201174872594168606231484602032028063522352023728683396319222134784773680103038314848049349657188249002372020194243220405597706133852573571348854221860901188976303985348847383160874065139856291807707201318297416873197287358476368812155815767321791604222285780599375404908272475751659670725305239260150735487585709512189033229383621896211873972175009217016100983068082499705627673496849746828357363650656159668643499414616672221561080673616041202280520827252467793668938950420663560146238294099217020083580656474336546891793780891017804557588716167699477245586349329516548218058748250436926095483226862791895413985142220391602086506711207637293751895838623930709112975615493297630798154433078799469353990369137737200164576967834059935202636595961821476724945291350604879767443408123250280647659333786174712174174610335714413639391079191389352046574800243532902451158899992201564487284140271898402663458165876427876265892165449548523078872468573295698620372792486306871402964403419338116515328743337563061247792226079212335544133810914517907166427152080882606544055735907502156586638952287330556687709225469343150568017014572379269716318916082241583776030204955344330958059401499302794761463973810114417804035199864098275707010206344581220655325513515602576246134815004358639735636879005788599088044283145583172830281430652218725787581209215333672626949831209724641460063905274620656879648752456111739680851199788010584394092126606829128945598216266606687215397720401634850990314238675939973164562176446810727283415057492402119954757450378114431224143355219983243285610542662609448908347609640136198818512686360796621862574224679942172471598360530489610490160006830175224418126817648824288280889711959225826114608613245659652306923763159670873801157801035758546531803269145200721293786034437516586705450980225872181818357257527978774476238991236773638246780847447430297060118866628725689177374930334120344285626037307139384680222082981442277991487210649479045808664092823238788689536009581527742875696849254867962687803308373786620131039989023205423070326490207304051374910537341920404860179879243898226837428097812337696866924640670083613291154866617517211828892033594774392227392527084142370878420398461099230178541064234841481204092426390901388856228968188583813035910260515742555722608210995221053497200182247733048548672164205346068970585262204050609579980829753796116270747598087901951716790750350900956519365557601430563304592034933716196204262334210411854398843463973952167003732153366396093690971184587991900323087808127483192948120764136014020921539908558069905292840365227007584343089440793303939381463291949008475903393281940702158564937771910904883901372914865358358152639205872852721607695362056339002688221561634986360381071952702232979052714505828160112049899236812362219130868360196106508895058490866757901243796831929535424342648652155079849231266494854862897490294350855438875108603087062661582707540467658419810781228088093340474057314279803197607525063345694343696787867868362060160087839204074323211888630667553576998370102410569144107060680340921764440993811850250794193206185341998800629098398836586659178357679800483065311440579113608275506924204071313232647301453417575407449617161524097887166171405599799976162370770484782528311382304779975175403863465879250430059753516386396858083398677477668892653267886944658219037616292117907283281434718429628330263930891217565642886626120229255231195449452120595988231526876681382404977508304420605720180648901999485944179063556999378567109727837141453909204507078041603821584256908017260860717850596758023028858249004425133169167539773883349361884106837579469401993834408654781163817448901964121518382215905340829414976598487487799247830959857795084643774394771296730118819502014409007496208455420789123847381043617826476752509839769390646160871626603591989702966165284794282517261027415567956318804034809746185082680051776579342897957940551413479270020839442590972380383086603964083534747854747815771924118891156537714330216310196071724364898872902599314117899146639594218402221026356732328051902728467456642175929857686677299681377612971548036308110023659449586009111017372224154806385712800080467517253547528894263083455035252050962475853719412006692264108891846955584810305328759141528756508093037962825839931094597357264915840121388361153449400783172142308295028576111292935881923825081143932646091582948111979871578699964965620656700927659947049809314590565098959900363029288024407872858294315239393833046790364879565160268463734690761716790249856035399711617211930874105300597063011886476636038754591132908657823246982039839243436769083145445534297924397363422326488735571473740710708472660655110972216097421827926086072424735314972972802529968237734564111574751770199943907487376330740703931686863103127115033281164818610671887559513950319861850099935148342284319137325464984471622601578812775035390139484562078679571836061942075879092610191477158643000877979625925944334535424994805900142899437575683876993513126871864128717907750752657473309515593692800102922812200545197431620985574789902221037242515713549818450385636563870437455376582487807564314288714428149678686332732854030095291692037841972258849433178390543821021472713992649805311204952229796398680683482011501924321345912372229357034890857084511609459480495253842204470099295312893066334648461377661633672648276058896239490877901275733839920732041630678554335635432542558976691714048619964751419541769784314689782135076398936325864570256335436772140042332455608554152384651778699285611944522824513276147311583546058300485964917135720620980721980413776424413103640639048821326983937582116490103635505729534252490594277577617950815509744057769752920735034898008198768388485943751469903224032648182704542974191872715830131165575513761763041165014221762902209306841619563359367331916503598537981503761104578500188248001256664408467447070773381261746128299947656912712770150910505510068120848499117590109394050272465369313594558717999948752617631356777535009385263115924680468956806126578210730739321054374076754027688551430428880376883571899730444025704996886306747206783786789065930100036692833375319288363087159230145138471839343103296974943209936320225846990596621316140052623295932216989955918332088553911789341792179466255948911966252537479780911698878129281471837276258327224855962686806416938651291169897957183504419835583360864617223642631992280018009417549452798293899046268250754967179314201109744674161637672631921196560612894128409312751405163623667228233041380984718203817230803093206520904128478388826139985631756368423488233986659222868793732399187069172865656242122111381724039042467499813308692112827426495690002507518278336331449761070178907288032662909300890015077823284364205205819592301055700633757893641804177558026561450258050495359746694605438685801020187593838882801426685368636567783068558233370249688144121977894880391035438957525504622276805441750274370065027665150323071501967579802698583790502375914280755928810638799869873001371844730389516528751716629625519981838071259589725635237464661442301686533738983547552470891457433187913106836164707313647457172910120255595457280330544747928320692447144146197966718155557725524671994886428618628756599326672236379242160805323127623705290703106931069459639346435850763712247908134872746703384305968763978258532014948757796855938569896078913945020708818006655562157673931241946266693802569610950876812279151842924567699971097827165319287786012792702048947137316488169413923076850062490637922138122678744621858524489977617313414435333587755282973656254940614099890495668393675639172663800873780150696925743353581190570408828271158868958942585603090909009557289566404698710095457161216556849036245564564841739690753271587068604174334923130511150634961092457563089939491112838670272685249976518177031786395329260275067538330907261088732488693391201374414119912060337982283525420173290652379325873633891105202250488310939578464124002629409101757451667814849922027207168779556509096871086016841445774780452552545836076012286406424886215153514128808275165843758600053887979735295425906083979797624895759525642605536866223342841546023415709710666123555445944918724083492284293271726210277750859405128904343869089527230834048917979810347032098405679801114654543025315110067023899972232376947786126096904673085174784884835160067009340525620522023348337009781568620071023993075333589263265637417697602260974479373759229494432573425311149252671708705627382950424961740392829253991732092171037370918837390040057029535074780909452008393562329521922878253827962955144380150345993507034969600245437808768794047474927411078960809876702117182622801147322286619620584821521236146405567501602039635735380483453348079287220223286947769429264275279209323007881470468463240869898660182878234130532328563095152215473191666247124253518406449942771219707638867626260369530151509954457821693443916708027659912675664326477499585855093010433963577379807226008022032862963724305025975028330848441678594582247386628854492904324951890768440860967721568667199498927260132919120461681424957526618305060755383008049243618284805945000670534519834269594192819001914470321118946958951496514904247476700977939165923088956730779046865961706044862818508777200801963416059744450586686157989247218526665918996461543892137879659638510160908189154682438176916296099224087104022283582312572749967231136563630213023950748126061912857459764209573993124640796636495804216843342164486208782343622425756315475515309598294934531693722826004574185216434267630734962999143745870057519456460341048003046516153513754477235898737173627848615658156779891725684323817617509493913118512771466313471258891578624776722885345646299689909531723517208117976311213749921645728824813970183311842447491795692179168258224286271544796750627477670905102421374629304201709371046679711178862242675978745140749297619739578802961628916201050437164869656049941720691441188231669393850577174940540816444215625084303189898600035829096246954427744177430139690384305244868426776513069944751720771238077741441440696614233289060486581888321104706577847052891352035489791742500733751814827469254048699819172438207303641156547953612112412894367004870324141807601830433415519831957505551633830091509065429130733700455583802170359238016879104409862849059473646530136537472270648782622025430169896664947510388285152469203693732146605270244045983391687355297514080105602102486622666536987652871308957000212536329016656642644285257611790412481917763969081376715104648538238525118436071010451214969951401559345280473776238508200335867790277683909800927319730662770388354605022879226250938378428369230990182133160335412279856723630046321186299790545307551557419152282576306820893308626944748178496045199638428862687431045190859183406366645007388930744730310387732588944463367094930040269715998983962013911388765896776689340624408978979658934631982085515489339125081103405332223545651108874444411562644649710374084940089571102326251800437995654303329389426718701973881725329570464836149422672143616807470268596688664073038437149196186442523037521678012054965640789483351881900410695567432656479368525402857098170267151754489690762382334524369558745691432244427719391325253903187576153739341250046551753818364711604278804570735873277581709985913629568414158006602365771339101375584765625630688882643081058637692553208405375988739715494150923785825565508699744916942391069426773120078800938986340081136726757372365546151001064829061061427494102963400923127211908458172153086789206258382399682900094583146283153264719434802138169824169349931154513512950829042436106411641791450729094449389593233106004047314127304632531846681864348247817359184773116533828013386954114818930956846923609950279655079408725491994445024964469642081549232900948452820332834774022709686946498251759050571490724752231854032747205712771893532990868024939709428378932455515855858675058949289893568459893291138872130761667781402752970372254983042758805296097155220639309568508043973327436010538013403004717056758428461548155344578419552098271265598563589067502297969795543716898341202789064576102961637043611729202707866020672221263750980812701537348684573724948754264875529471434944870820558314140725683869283498529529806653350412081151133193170144726388572935613029465025253172623463269951685979213193817923010774569711768221683340579494796267523002110746451794627303735732960842578437152804102543616510418602285282521535172601169909068990331686135735012003593362578247530062725902752132838381353655405669589213782637465731248816056816060902874353924475042547934446844552398478124584150638338682832588309304709106602630688762380688813263497813724695781637204043077670347209496638997142861081401528585719813583336795680615759225898696380790999204302183349562210681225578707895590445858754817101643965145337073819867636942689841957811247868066141945805260096846486000625050961074511503299421985909000707303880508440038933105619398142057770243451842501558965478713418523727322485542668337702256783223803066933070579673765410889087089516699804523912403815603720458123372771877249938871628202728578729007451522067057316639292561420279610366770979912328303853695165145042683189928752498122055481146058332412141162244407143667740303620547550037078271537701576897198885554474048565329940217130836042051136021962452902408668289133852885137026996713900835389007577625891734439152610167949572261757574416337999326168945063658623127317128922296196833017121294032235389919049115511982086471311314274361239803799544821334944662958272192661617842536684273355192742687962946556615001057920300915813187691610017860906243107343110693388909026443809287518636423339966604368347754161140582212216891153903030300762035551033902349359962029082282011719973666537452971488083663897599884528234763903252537151604680509588112163235319263367306262335283031362368904567277209364244860656849216941627776756997332246967764800043386703151084105199401821134554452957128315230563204949208744248685725978520899095667236978390428900173648258832750694950410500698082107565545967628169667378673208699641731332080816272391614209898508946867503773551092948038502419186991246150777333611100955514505547868649833465970439134175725998399985603562585650998030861678508657137118913592675802088006249086094738474640832137753396184586203173047020488294078586489667788528516024947443324454189138587693486077492380501256562182230775685263458394625339479648616679448357240405065960405697609371903407074713192047315813638293743685821610318511728659229556302963280463792303879972542528767914737447945905828741204906943729849024917105333451078883030181976541474082055156768309908041407759500293045901910308009555237268331097530763374034938614661868657606218610893091615220175489270264074890292931717133724279090930532939546308906771355214295487643363444019515353286346545526862205411665890442021557644810143963456874634695619253313551523637009838663216160080341450611389603203391563495130597833266673944825911419325230759865750530810023131515273988769751676402761020590577497141729775414254679032926089481109011506420446214339314213010017858258108574484178550033844429560666090201679244851458796789183321082327818483605760849233066274536062595675960172410151703592647619072189630164050257832122642541082998440261430341037479759452968831212080164327916432576642658728195531726036487561029675718015814785457554185525209533521332366596483783340847899016100098554563401909328201129240063536921631544320757291514069543691201300318271007290650431697581351971443519646070070959546551930960832551753730112253007517722183821816467206963056774151521055903447893919897407078344964756501315620257867290145324482819708448068110026768325261232240899638093133456489783070140688649735612847095085770269170653134338438545339211014756316845420337468883483497701642120265234927936623866218681228496394468321594231877723683791744600357298853477486008623629773988622760546826998806318556195006173958705009749269696644989781642335063807252588983703437417153172519334828956223690610600961359120528836407475839630687014696444412800418625194941512424679449345538862471166088663901510730585078995414159500332106951753701470621014953325632826335918635716409475167920312052421568383636321589380006695382621138626935379617502713244741645334001671003958010771986137021186338178179514137556802842658811045549771902000602206749647412256635735915740420518997040001219363731097002661064861326378680370031971441863811503207982389832972399627411302149109343455366392324748334584422107359375587949168138455823622351620131796041604612312134105694331029346402424244299285044713163904472393274684132671895930567964639337075146048714417159426472636520812684157946482369178361168029596077718415417828570690450171372131467893064150949430993922500761634086935697164701608812145923771637188087454498553357061320418605282374786176968120023334826883044664921938197423288430184304482397543648536193384719269952295125769499401017939850600090849059351539401204872475877273377662499262567883607121447147515039523854166233942083757085507198777330679517241779916667052697384361244295492339369891177339513359864723529751782561665918798697619630744629375027222180430169682731221988278772789712602386843264472643537054817564975558374347527031640308330877231065932573554730922508813741434058671499820137466815847130799990882718814241730897067607604157410717008295939138716598068354455701301500714215347992474139141529522307513792572877065810611979923172083371355290372344297716804480000831296254412509312166817620200028321368469416773118208702242243104345548123057360795610422189325077429527380326123477541091860176708716996272760507142395043209590350544284510330606430023593369037962423453378000212110737485555419066971852589249567586991954033744141971938082899109869385884944612974600130453806760469540049774523665466894860162226344413901863656104026989832414445014809489427518025608994735082711412765484245177917479569469619344234348745075717400322161232840951295589724010175247258278968456839831376955636987093618803528551701292612269022111768935730256877178977105103765783232889999608319855821705903838853820580219840554558726327443111752577043989854762240076467155710366615776044811443017587469463996360414251204379533527685005048394278062860251807406236224948480877605943338292004851172050771265108178793968432136535719159708514207807031222641110881863799339078309382610601790867709596581748393643197647011186763334243777625862732474752378250354397542158113214919258408573989372674554688819460705880899170355171334584100839174058199692815865594873623951145629077317597765512512494281199747444570489689250380042339426229183937076895578434133048596673834167564630993779794657744020568703271581725479498287824534178692719456633105585357495871667924956295956180619451807985285082383749705808927848383519570923099460939636683730965667962871210778611999630427996057691160947351228584324768871333642895995075763995702817375260833948948130276881409258338121456359171222082611243480554875078555498002402337879433341485808259949288388823652058207536223022314874696612107742835289384956607537493598669953940680720216539900430103697833571205805247421978052371605233605453107057501430528493869241285367000494930685414539352016078352625507821922565989968817286409273571565956727627173683653136012303434463638549686513678125846600757653363136619460130967350962408703612509234895867544377850665641878606225725990016407941357216974797152702433043838158638135069551237711427548958263685298803111494440720016702389981978303921603184391664510112577634278678707667578975542915599367748479097854518865099905100481946855866017647450902713130429005155642713203171328231992343290298021379589237280851528793682111122589484146218048993165261563127750775079321444855006219767925368714745955095684794834585029455214235482092340559579205454250632285843402265253705655225003398047781220225929276956164456164513685617492643450925615773970339197746351136026613744495963178355056149671500151494346781455153201542976229522016017678627511319403524221734917906921078365758387623826366253726460113092321934319160839109735910151056784585434800540492865507082136514753531420835458783058765731285600893790848871617709927248978302128764267332977160371189974913815953542362465308718505657728055293129023139742584203893743625495585509802261392674539894545368772128367403921033297981500360762236463595738140992793443904477773720901083028420118081423486102069487533728977961973539025606386003596170211120624689658929888664366738493588245747453899901386154823713922442603808687188102804600744714413747719677868721766002517413711306521957380562705467480665825912748895575845198724786759459611181091916407864127545045683908709166972841696144057232004976127153185982563596928982666863307152428656142801815318737416804456047679102051228264203279158217745620331370471934929650205866049906714746469306182883274161476600362221547377109575389044764949349480883762150564629116170798217587565181662936325417765370754144424643002706383710932027293823752319496734680679310961182888419800160808214914929085966637939699183048231052481530535882355423339031286394234604460832228364609895921342169220015811853966267747887026371054372686925034415012528308860926956843592482487771174195255209205715660298943788497300314368627495468925154308493107935864659613565889401642449923862464548686031121476450606076591658865642240437394138625013076436018952425367889288571188791453098536994250130260237892903589386759225368131690926777166914724736247923919057603491077401307438352514889983843496831347938976672455056111302012175154043845584316195384817490063304136830974869549081336334143712306387737394118258629735024747010188569181094349790438580724385033160480375923766470029871896070533816259103725701278010551150428465539019299866803991437690312898014424913041595875828506884874352727414165402512276786335093593009500883429068610938223591497089010805944847499906984721537862659190726472750107294647859819586445078159608394620314965716490896366498396911140427514758494817152957591698715600710812907434649219865777072593763230248167910305166333290589078718706478244535565590766756243722851286692426643201301763512491301297046834993718006632611216050521048004897428896262005565962430498722524898097040243746907652164095123890768450324095096770984118570848757161580323402370536798467193584489513574246827104216360937359582761711069442508357866597765719331955503763653789596236455960851956193557343740029300296241543645849797822202461492575124871989136988592423740360025170109308738447550934615204602477613383977248536612888845513020545942825594449851067546847221175710024630026594356186191747587731281952289233433440011989902079364278065105738311114683478549968223106939984954194158304253209640761017962387337567530002852876823044777028678499953185328429067934922524797880400328151379970337456832994357855420941619169111530546284396746528090597792882824691650949761438334573346127717370329708909119046713221046277105837018952679414871808254881843983397677505706553636736665286922703643264627232265127797634967999173932843047991748415096794911138528025980460313327110067513440193329108347415718651344655154866825164917844729926943683379050404421935757472054570037559692660039883269136576367776443164448232049968839268984276010930470551231410500494653613420781913637546096914216643299395517799555282819675465599959552445488586137844059987355439364787170940630955922335757198664227407669120700984153848668087957397935721833323658215868155251148952066777337712879922307523117174208293348157583386341887072273710648919541165305971028539651585074045321336477816827653862555773391009099840186559946529427450554373138044389227157460768089640089790843898189387868638065839974298704100800933355694376106284825896194551275985958415856991792208278308158542272286721884666729682459319806298338391123797798431527485004178534252710611198454214220767163721227407596427032037527760688527716667338843261737848768739937684531557722326636468331235118802302224331634168251544721048735815715685408369540216387866918953855385257633738596113108351190986119134309729392595706677413407645963337195424150150580997793237127695289209118353584862219518988303908511998102982868928255706775903077403179608874418527865738686349771354412359575639177687574637126930442075841558525403433687396814794771915368771473183733596342489250738376102113803345626914487254037150957695392710525118597511170414416428601706458084512963384006634371636221072930872088034447389518441134320291946982422713683941901323147239580016182248958518279692986862066282370701778399948946720122529082688055870157572999466611477405021968071320075867895820974629421837842690225018546924158189464967751091132061795604007270809767781773796599123686146947768261871032801704082073114902014393305601941981621919730843176959276588578612556183575845357220124262351675347924542156370347515202038118598720560291972557584085106205706435334260312128606066752230366199134280495782491046719197212786940764313708740491116985201823280098072018930793782277689165393254253327528805953004406567834594225489529274226958165429191021742435015552755026396662330723132394022468316431874273431820364180196129303272979110136591546988823678639518520597362269099482953170013099689302050399091045845527627363015381038328447675000623743391763979223880051730337189613184092270307386341450111772493811661212182634137588963276488556973567921205553126409740283651931220479171359818866595828671711171547377023425220937692440571820899656330361231789363416050168594031409682549810971597459647730555319310309680761834884207911862387483878928142344049406512958445752148123836878269212677296291648699421516300488668778386541230396012730409660555985059430887541597205383422848606494598558759086787987536859854180946355298296257195775283876188220966391025116050191327063564050648778701974349972609094008670390553711338877975554511764789713840348823318379867293570685110090950756118280809403989319261838127830057189832363240338452516437699945387555789978632717475898547401323165041743592059397113741064664285156495829140751207461980329672834553858347591444137310670881142169541209503686433183762661368984702829051021229725010135387969871528241876516854226296446351400791432841689490298810539515791664539633329855625918512617609780450339182776512908657788095266581438295215553696750254533759175052601334286451252685316480640616255241232163421571477192480159791371436169683175311391167086905766322933522200256402369894067209306642502673088095207666535177221192313196499183654932535772816397900599042765264704121653649075955712553043172415303954021813141198475670726887576929661836825197736094645925092808383868612266265430025175004981273247708819085823053652219015027248884271864885517802077062989938230845915703443703407357187428660067264707749802398880235895730117458766483728665756474048418344155841547460712859765291081992986637324245769484130291586207653076106795830729454059640212199779915101846239869580971921505114220716304229657368121238930188297118405163886066305097335499675699721880988390511479994075508814563935762618031530790505321647692590503094957018456667389061299912928716315545373830594978679336711253746017684965480053344973995804675984987592257141068825480612057231189193507806927433521661197709579947381439480887162137180190861272817360322162968719517420144164141992472863107575953111376808018017268495648913335903500818671052024959013370998415186350221767786985164281482464504239292365113590364800358482010745093649637771369653676993902209051664354501279334918372181017440787140970026113426261371069533475528961678983811923616688873872422545679718866069923112484585372244273378446897114513880757378440536722502070284452554964862214210064249971033341862555667515780398127428541262213677461858562612235244617107165771118910830532406745736802573281489158197841827514508500836776254082837142678327114894534112410659708836689421653725095570467914505799932937120964406831022169437248516958390127792191519578330548850465812416490888298179214684187035487950327603180917135635071665710718523107636398395681770510422200557874211856353045684260784053752319734432647681519902662514958430715809609822232144544201724335347859025358100059426961007489434228364029641391110660862501167443590489655455501538621565369779114875680432569043261597830332944485631644522069534807586854059666624020969196192885120665032689562903686168743337193199717813413340183148037086501514061574075093565775633784039979030456888937980050716006849951631154752098565410152000351253861438319722146603872340586821381898641367516145968963894149459421265549091182734872787111161925473779836203391038664036000081411262057996776699512212341661514457267956621587155609388709259578753960609578485148622237655505165666010983255084674116326414542576892954100320934837015671324352655232972265600353880569290118455230676300726129846399890598392577460183873726617630736290771324229535624850622396209372371301531056180117942498784944045655309334309890421126325605777164240932627346799621504980607710592808212765902992936114202581357949961936001044705850958860962583889867489324149935276917869950147150994119414655108641692616709424279030100165229073477922621530172946785105133408938302396113616288396967738236386126838921132485024010663211289456771870521346956406730189603666337648244528005323496920588918372067970257703620511383544253548419127170841604080993997928295976414949676840587358159193996061442445611123651252460584887898823479051439692026630110642635486691897330712416308902950247116507922742134567577611677384211408166478146428017880607080059936605373812725434281212974528148314217820136943843853795616035605182761195806695255185293594028948181931764676819649786244837522781652129693720743129788774968676534946201273163988317178665100455212633475732280051358424456857389649210623487849922813023054459064010584130329756475421271504254168723995189704031942037798508764516743556982890004725506496191194426560477643328423707638685200527127412333594943639215493781099885584163685367690788018647802480957469211809140801066303439303350067599997774888806720620483740518617949542270661253119103291388766728252828549954894004587392279894456509961203093516123659413524718479721727373206986269376714088012231362782000143728647624865392307180967773422661837031062646828211984096761121231104658238680857667510293004588766535300638379137761887009449267815861810236463845156262982685608997008311111709042567045103505853794441475619160396742864779017088250531232745061900671420656897833385249434209881395098160937705335467527751798295446385516378702547065171079060131895226273755779118874403965147047818808682443624371333860156551974371645443576334919763475865629891480755235912667972707504347179413393787478195884779363680032439887437982286205436084088028326822258856497202385867253647738965872457840217132252735560719169604345354711371771108331450038996528425342172793112148851543957703115168648376217943204674683477682640990882317090100246372653169241718237421884715481419465105209509990372038837088139386881485729523387323701739946387462701317535056497709943006437673816345700995896573901602027627766815066974910903275879133658736811259232668708040007859927290742508449072875655875252289803261150400077165430705230528855086464888570255681655934650771853912393626504448322744462198505189219173285955939977924560604999590989139310246698282675035796468344366803685015541105628149043802757738567179464742372818543829509820291150882845860774015460466163560246501185762416506443806359893865397700236896784663378946011827999317082973592420741412804815941503065588518702369228697648808816211463248709888605205854012984016670979768161915494727754591512146135557548340701352295610537120380166208280597197747198463360419795890254153866352473636840077251402387458261949743116694267564033132941017925102230614178577419344468903443036581293756078815118846444667322441080751748409147686052188409548972719883533725547752027802236852409311147565388251956216732917379044875961633399819003308899651782416769872261813328753420372070263894114040178361007594681722644451678993846888180138632390406117015622345520913518932412674239164943924019015952264500887738764284589123349905282261431004813004719100147708799192447869869244707070896457978013510973388657075969590652967184067380728540158341130787826088300363019590003310007242629631169161300374707015734941555510880632585469655893371031570410540656755626159726803814265957142465665994673792259823108099580047499322808637847823037483909936582676179550696264948447189771831689106442670044118196912691760123979428709406102071214186342291311305942693445373818011513699545024011610149553740417358752754186128986215356416548226365064824151877504509709404327963919827841474795440650102225330542377806293058873559072885339032582021136938045072541468629316644699513489160555710317703394450179967089238669492069311985979304382624994605280798224266073170394791530172437596448156398749032528653240945858083705206057256258857921269322868868628218103008804092598740699215907705280228176810675087938966279170167174997666033093587068559220795525066784184413205668928705594777442029841500804942240615162320336448065477369176565036765345718742489935184404969524120536160444687963022999632289267414092073618032162596175885274963720184474484839179988787686840020203060108969655411082878371732759397533864038906377192079082240597121251953891675966553510285015621435158878410525531528537363642856639813872266972231633753904277020835332839342097782357870866738383467468623790248023985856121604096973655290819116375620966514431864575435355872490870419183374988921519177615735170677349576970813374477654212281555137905495970777017674343795216854604598452009745095288442793568963040376932845776149733926397905103305121484951768873901851922543693400705096829870293328722160267001662307198561729741849000348532964660773445021837669448295233976324128768445199164558524898373514020250113829033256573307372836122476819162780762657239249074096118462084995988423384243021304985614866822751663958164481594595842641728931037728864943450105570534708445036863607118500994450946177573965631628748147224428574291959888525664652290307913304475184418970735247905932019659389783337760736667208226808030633712770383254640132337573659058688132075137703684274098647023447551348486624424426167682839393260791628093517999447658642263216230090996162941942012798971148938143358454484431484726572280522109710321898923571308640642159010203832434480953504232944373743765701209455479843630359771903883564830562019995802879064644138559187663330173101727230818335451670084237668832857770398293991005032096949717201567028582740230228379819450690899877905803024726651764271797536151780108330320396856980582609764658323326122248406533824476052459742949914017051982640309131713539258237225319158103271442240848231774682156642436688063960643833982985153412524456651657025391128020307761147134689354179905868440949098487043215397721410941448663601860147312848880955202735617964437519200434970761257404151874277479414025868292058853903052634765031511332422528523500160962896917787651575182562822923558547741707933770629272979875764929213819560208812905989506765144427184811871849609401752740763962865038814513433138877711551752849674895040695780729587212977551849227672559960519131722120829549372681918597494650771043410341886141687131958095386709775817020879961469308901807238524909754027322911368484587238852130160316142084209963353426939196261758240251804745970236121120620142225615052566727959743422767471382659185142210200554074076329628594219664997056982341236573134461957531171839997033801933413864907811577098987403738427921275644235488042703600440330555040968221026415961317801006785619540748227817031277160085477550836506621546622951706592393033138051178367346476200852255392504947089505392997875988038559331033805522572211149945047215070767233588710313986471177149101795790344789363958689170983926659905969857773978414448405407501778339965147356308527908909514773240651248980864183668806939810925882590880728050371282582670910025098922447121808619136962423389428361798050890087679550694896985848466232544235158654601716058624193066815683989779336018222423943650521102199989661580548692352587707433786287300623155216209916067139312642247747923276038736364382251846769744778584483564927586392305238411776772216938879598081766213302936238518770743060121835762984593477199477122748181062884428867444090854143359865697244838842031287582275826167393105923900721819733842574740679914877329948806385254633729102611849071337172923002329387753816012198040405746924306321311479865745887342842236766489744659150114634158896367417353996858777486703927100721604574306300067226323375646850248334106566638644920120997486874116057554489973071985434500344178197846503287558831409156457257493428505098903383550399720522829504905327262974409359579560050582257384221238319972978425564145560972195028002945929023738427291538047135622012510369090190652637717576376338929683970788500278462041843370999825390021528561368833505879797981029564659421499494436213971925270536956717934940406891547030379026981401517263159593237404530820757345358660659056379571576779648719177795110782158011297519900458249179393544865363306696104771218922311462039861572757542373040568880081779485555545742833180022498369118298447585473743092836625590587746093740947207447976289984445599765479864506112633844918671753999181433647332280655746988390929442004023557813371006167387582200160942560062015641232015201303450819163079249944942588124794201949995428136353594734843183814417899066589297420294073394454071475137025763066975522265707529079372135403703648165667069294909924805401902216263143028178142071796873885376386581922311052667507533919712724401825610166538101833888963165940538897789096228543969336094196818078606743749603376042231760423550661698421655920839789167229065699992063213004566864095882263661405677686305304624240620931917403702558596170463345059610408595197226441934078267113222634159822514284690182020367216714413813648430218409063187652652380756556118524544265735423688379800795427373011431818508283768423886159338874562982132329281858972443867726186489251229911811937669812726528669167509992203651195928966079309948810815194482680687452639440895120674172419604166938467059680883216725596241071737369535982704067090257917775102799538103807784293524063444040879610144018079515164475048985479635042792668890041481006286427261909959135605460814464628391764171482335345440767777107673817244220312859512000328016149863379821807610539289255849714318490399655575512282069476607162567759149793190440554007713516213230667346259742167975580850499369345177498395632482043091556559213906740823845954458753749944742809635035078525813175358403641252705899224460281822605304265278106264400818075047326652367829334726583607744140421559751326759079132018538470284355592461636978410314259738018929602650500490452605514482613601603168682401833547841755259633099158084789003958179240778899233981959658183219571973620193961605669446405811644606190870725094125497237078434221665273530823666003426294346695795457765301731121634983813942231313256845730208792778126611172900039130180101791048144329465580568879862516239462687880937363883216805945240914281200931373566991577634383846976368349786823108167616982380488221646329746639352918702212455496795400043761968961287545461648563313267848333307441612837262930826160005151686568055676003186400871784302321270891734764595593147976077037271591603523174697826643611975794132536723554065389251729648436814740141606947849179847301528292713545181014272504275137374934713020734338065649467458705738988075674425037091202875210423499147131641509160286811923202662422187000839709250243365615082135190565838433271746888096454276875422218237426185482337077040773180025774960529599533208631207727529330694964530694981291479288373562025231244646510171988338471370669270599395933922068560873377318540967363287549513049262362241344006282791399918265843798806507085842231241876055495763056379410814053412351547442970683545714432174083030289408365524140159610254079771993893687945955555633691642273686995874621911786090853359516120369695066926282686019011686156562856324622031266431537035152515387841003566391640710313357598417326936518282823691171305550649016544030014216721264604739072044378398300536932260583006911175886614033205722560096907318057183093263629593237082892619876935720664207978545457400434456618864455323019601913226095189578025072355595361443196304983849863438929814770256983440069614939898939913887014613210840004202568224749415933578903831203159414499814676088749059961785580751290253654780440724063528403743593162139254597041576649461516839139030272550328563920514623749798853623435909373806844750336463391333838623994518145577270986052888793758091674027392192282208763497231930312127445158731564923410216180722406685892760662968974366284891739975730912141605745870148003625557428727516508916210495852301715636365568011233552649724763706308077690432743088884435450854092505071640748700796759645379167221708266025660599890491254289263554198582424188825761552156742422997810491657199990588529214880763592036052708003943872856685281714354861624265481519469372027369105651087156511696045976417978338676809553468715093297583930753442050441792070550462104808036702920410024220695368599312798893806353447853890942387459641244313200858830478445324816116106248594044436218743965026442079570425063119750879758022418748708625227055244055340653392868263036850089585298885633949003838234229076870233690946052221656208178606982682282251844003910747553472954841843620912012710527402201780959079958452964130823256588802747827565250197034903102470821799387696437628914062722498386243291864844348267384388080141766747325466819269452794716553141629039333338537880922096671510145490608877055686350462345600111597145402719030902597596663636789673436395226261781211300756473463806462883789986339201395777596407711772852011372544385867294705463622688170669825686182048888510214267936678724082440947435316601418381111766569123216661969462410462403825609686755002640564603702777225325050220210689449221078211636513169426085727417182437969423972559290051448305564388381030838545681581222694733436691439899303065951551985229514945970288025724252239910468912397190196379786876001134309879760986617929804909141918918346941168036081062236636110456325354894562598171249392020319942290975861113069085450995769759103135440380064069646558351033049237741004422788747367782398556956331904820851072746117723295982175231131413835900425033338828223033535460339211665945677741696917644701350651921439098620545515178815712955013233593194884859537269775171409421267068586811788624369088436827798444925193588122288377613442448895686235793079811975557793947046733114703112079096367678393194227485722425370116288704643222896188349177272405265106797180046272088087484396270760431498807512364201680676590473707794486262529671590855484080129555868542520952594858388359969345079532406201401979486339338610871548702869672380994972285003314095438801200648102521690039697177139932451396001724014387875913995914519232279572811829238114594112117205146938832699181751566255897559527063359884205130088322451732824753155936921861459638759480503878382815069715423748784126881032366263466402439479339887722301951801912525256149176412449012968986914839643820671376036315402422264427739451245178324483504114476545036227660127968192387552533039125855678617051745741288634386139157759699879114659052129545157237617199567742913326571809789453270609652261445274115597856483629854425492252992473954369456500663066528013633444654445130390655974324698861246667864443079411933835049642662944455637811002360823232934156888823599533261331785576542918542304146869696471978138963202583629303394300841207463928590206031777746174266970102383308278302277104506774650124818366245581482036102222325649670702962062195804411517618091318316087361848397390598387273329351209738562304070542787510579616169969204174880138633956810808135187926245544840474954289389101322689364130449401268515456664045117240037389114273173970552133345100158969576440256737694475877443189839959522953129082778081760450348634803826135527447423718963476740513050735546967878818060341050574610132462022082545241504113255738606516749155775684890100714317395204020601185272256898682213820316995103550375690299243817612424024950077988882396152637433347563626995232492750749341242700565150784482640753284394774858145385963455032876010876035534935462685438640402592545977217789390166836941244795570751932835413661090222580024858328222987961758905233868217982989075818369469328666244295180504895412378484458071429436793912292115184243089821445674992988163266609326149222834391500014126013544098698238319679400170937933862860930443593452127113389969601050730589456008654133495546555753881453860862590218034355427351128200323827722949628382367234185097187486461797368730565983997875305493061891248044354495940310770620903917240406226989237164487751293795172316421546721341010314340400124454263275659096272310260419589918522230715339204716325086368942931673254996473845862263635242426697046582039279993851223860740152810013690924722113183099723393187084139658987040545519331376754093890097860691439385483635751101036453822428008209199556140888046276611585013732640934339479329967433327611021448074254162600730331008313198661682341913919350233791207806757827407069759360162558562221319742175483260514703333441214742780241526552373154145259644679521365881744431875431101241438577909106521827703994607888706734653937171114642517119885626177161235332337072302880256607658914908216938861429832386275654040393962614269690054939132128741267252505964406433794282415655737919034044677006867181486285305634952487187015074297966534134672052191836934877364512214350951904434336990861910912058764464722983234263012676535756694669247837609398396752367363545503625680453435814313362897359211952565527905229769011127891462617684618609556186674706747565807350504920805965277656046494505080417320380193419821653199875062990185096958436264547669096006002113443637039119126722456256534862998839101835435534833086701973472788857053926238228710804581351826944942670967701053428061530724092429902290814757495347354528941412071283421820586354723373838485175891085684337109669247567013174587306303239310904988883240805746189945146141817534862578689393942128017007692633196976564404375217259569585451584656735297302020755647714660903766638398425258192905942562396951991073121607427353545698880852215728510473216691571218296118528932750648224912415221188711774461769109804371213597854769205614379557721740079426914315114251762650038731967056225092510625921113910251925157922453473309105421422542971036058321881195624496111817277556173393286263776174951563568290602822311403784165115098649547664774078420782799716328372017898309295552770268148005783403061119121985627922016714025808693807635810298285584505808110951357978517224977698086812801346320020567173034938744506654027055537742449065804407720850019942347782983770560343186666037261927562618426481614264987372587713629264154865112919904443689260590234161863591115046832644639194121785645767463098730231337796327087670363930893211082780766212767158135320239549761539516598053968302090827224753466645403639782424097928832350412460689517997124143958297879326278015420760089084082814586510640224845631809173001625300571771697976116177108875854935301228315358384489303966073018447252576941654082896046715527130655351869197900286546611581734526898646171411013183573208074206120208262857686561602789626300461742458421648712605094840564627360600069962958683181558957871125436949219112722851476863881598160651234014118851448705357400622402888815679307625290801065645482619813803295583698521652541523599747773008079880254763483257337765041794575424557213412370093128993246548348048089361795399100069896497806103744914655800341041846462815052092507621442069596797607323083725108239217600830150598853997551577853139073134668643027114673271161581366472227014741354822592992102958244404101292587753886362021085120952588315149561270692483422014737063037907418211648568882857674658148703071623096523862292933724714956625202626580617931413553726245490036879078020587601144239731220797971265774907650192099722756951701417107491954674073803320067947057243709464449619001883348075020442877684591488043442832121337657269309367343911413328637532769967070505929412516616721469993148390294842403546855324238263124502149480157524020699054476617087765975420304292160054435282955915033728699111278118711316199704484848364923447111920825574119203201170415312222976901604921988639030221018227830848455056772664101751323955800306008916437437010582840548988993564727086492974698195942201767433111291118976833740267179387999045111669226809666870774613292754781882824841881879904557829340608439242087014500944942661015335130112405049065500483678584423488520676636756099705087999201826431156100210353232050930321865153566340535474651780465417249840854650897515721953471959343417031970248215368834214614528389866928901112175797443307378041803179178876656750386666907799414572743374057031815431743293957298520098053294237122453979592040714613972828940223753533945975880971289010038484721158933016743667543139271961572630272269701120050388140109518971221992794152243088653386444776218617857002028916973392769825042707867028386006130833065008294492467918148731212892834425416634992916230087494171577557040082922861359370811686543321985659331352896065668392026492348385913852613184437831027183049454135280733132486584813906553883279087732132643630297522632670920027652005105086150968280240950108828620551292851312701212423250697561904967211640372307686877352095943574236259037317575694376968196729031090684401579133810832585375730178891136225553325215935130711262575619189735993531279450967790432831435923050488776055804540419143369162239784498585172635733919872861096742103804146717465082961107185110506847819207599088789482250461719963498207325829537951999093000125147614862262281302711798840716490935892749745886707285282889579751585120440921886104709218038412968898600671869516595136732507757877448306657986089291374687978154658960232078937763945428373120222732290502977372283433467811012389572995988954649241011003438121790215889466960929293716003394936621284663126548412958640870321395698569771977113650083040465501170240175340968309237524951760168982604330226744639507684038318670727679851458365408742277216165055947807404352092056919093444729040177471385311706654585435841418191785024763214636850070780923575083058164467638090988716482296106409813957123613071416632191334499447004606504294258536531437052258964235614304347957500154301032816646968634802650783922118947259488052125807944717234075530677339896829335313762371387103710586388586584587971917337755364149194061982879669597894631993491452242530364751296474880485788495005965946807935623510157668611715515354500094058123193937584525633218120546705874263510469452967203859873444005791420955866463285812102089676754024678578033499164744981914217897071443869186975509365844778626301773766169879425741014786713659596994071955747310705667367723492787300142781218283081597697425439337817980007236512441540278895999934464200505480428018935855957792938800822775213351239044636553711595915014094488833883642203149693924483302331450977554509135720144686018406273558227422590234698444569790984382090575489446989212645809308472788470384346212582830158589756565040750779590537366170634531823310594461063595126887224180204029933569737850593411571751658604427556968432744424322982730689359703935943517986453082712770312054699799545197009408689688360125164073806107471802001301733278771299293472469572080414792397874388270943664781984230628064809028318505466712624119803669817293325134800659079735104443638249796536046890773086296261124847078593053470078767144108527735323125412556428607675840757781967158956099529682191929915259205196827800098387962858663703075140506513999536024108452154217293624844886810451955253527868970200260169282974352682977021331179290970800569226979298333435384903354376156903278014892625226599666742042475560832550726861292252334831432193490974546693294796376940182310996790627925132655102049538827464247308117433638097322512352455697377834948485913714962813941139814401686746566553001843374675457889663499882751737865053796955640643591326622057319559254874497169219863535135044423509383456728236434129917753772715437707317161868499680574406973597534014017370342550546135653656166491764363661662786368417093937938159523366866469346471959647212779727799366781188099797402558895215457121507027351455946430647620109409085855669331090973733914224612048387811744103852771277941846877415599294220892105257031664594728371284451256452725200647337212407087716010253839972698546427028664757838051515828352870135604321328184223923772730197381012770746089838024356336231674604910771439341480481007628875121940809034221750612682874604912412763202826551260418794877214177962730597694068052798099654432939802169788281654890809779827282058513075302537561590813482368453776147435134032653076673850422124207343740276030471680756538951565862601494058476996816464839619250523570962589836424950587327248146783544852210602144237481194333696081002642000676504219575448165973809141267011428706174265496040381453111391309151723166431862470342548825016671995755872269329358484446873891336837596827886888531261549496187548990914300779175582314373369622365478576802229815781537223826919907899027726147588046858047160553597259315517066010260596423241918074757575862930257749510901390867529138851569436511086092591888056908701386075604970265049467800810669426499295993202939785324715337633303204644740096794097724705026930686044364277474818811026074365825371131670192607144473817223321968768489012982747489904431761483020967019622205837607982054081282078689206966178001526247028069847773990169778793923054010696457574586040261621285866019834109308644016211534291901050832127154953453458675750833907069381606435091022591310492042092348032705312722689583029921331938890322910710367424221450876441398609658745742110148075281268170814997152733958481544837787657579469126920282094644342793861028325885281600221470721722257964613826555456256952888866575815203114624755665757251642452451329599334386765181700742485716086951080517535886781950020010401130809388236898880023880923195025625518936914011743028753135399055414350575068190324860997469563251607468858086385200394149602700389077334209313428586594253104603322015041096222869450850381113364755866649417490951327317952513954080654772231906882115540671102801767375161067306600962054265392508576920630924700921727645322441211274669619668675783227244024875248401070981356025920867338514826929471872213711684204712500370312555753196559137301502563332668761566462294521866000406209208388240399271413949698122460529793422178049884582160848775111978754314764922229818403654981753544882573540999458191411719483244475264860040471022406094269568428474674435740806743410697160035113718107453934330062242621228612728567187397696298987437411398833412174601608837684944037244169397281852828201790912306818962434639261501824642089099019331624580428986442135364984399140704013778672508991697532200472970872038096463103249653812843424068148682172356032380661509044669944498278603071350913511670843704905302204079859163021392086729208697391464350175285175481954802830064141526263541598396731262956219207916281893377354748078619606189665932076332156034332907130554292018270714737344054766708707735419621091299298066338524961393635611467230140730860763881324829831942375431170868432090947711699809052850856868455627235145954381691110385041684918566891426660709013859691055506787719285063548439604182598052367292525038599843368879364258295482802891434512211150629579105339203543492771966918330596516363621603898655690341419951403749531731572945520823844760177060724274103889131137761426543580613038238906603720308815117559018071400143350791569686998142326420894361476435578882853781708198257396566516055699564123217998153820614331395007327277358529168110861614962796337770436015111940042409561083748151238428282355965456798424617401531524115391554352131052802644629185656377592006559661481190330242506040923955202928159514248517028515977191073259020861544692351055946772039978098459489919017354232978812966773418140025073898311757626532577467381171353141823886878802694723770187099080094486220030774895515055376811570722608664412776926031766472615862720574221250410911444928447270503399757548971894003526016884341074112391729035577512291444178983402369613843218356088134561403737860889381791115762584267255542546538894650376698785717082567147635205199687252646506329202240226175491486950802119360452744508997559473090643280838828196923167124097487157962142582661860937987077392848461080487884806364619582369139515456037394935707254871508055582474155579616087425543999918028270333679224457475717705438184567228948156476859397590950550282693993798379784286458817165990334000686972855754380767239777240256510918530096784120174924797371257237976026610282265960638287443496257494218452263806739374515634885704636152767803152808769030428847943981609052746268864552356664067170263887558345824716022368873168572412175703005413852350146921027996991584240243849842063001899293360881742795939181357504952681991130955463133708344752932401916552487586393976066330633994416842270462149949375341006861007365020498868601718687251638035130374865401543085839255333600588095187014113408660946338110050253382794718388017871007607344010458594728595316537499523908129698295412457286272355485228204443005896883102080417734933406829283883419433982467630739773451350481070013881126704821765800943661818739644447544447971698057692244339292825715592253027269386196840006364458940846444053001640378529482271000522090904192121727909573650109553325245223231295604604054825057717772671782023308142888519969057612256714669739759680775750255451756941454332378707309587617491533454633121976432802575121243977240314078508926609215478737557950848157351090016715012602915526717460827613380091997042900489025733897023701783867014013782615938358385790957770218598634963502038310005205745860498106601169341549702424377479779436303544153112682802122555108572630774300071972422133099680317991451286150177628999109371764816807265766686904540036679011334022325274113440110525671977336423905602097403140243339187573000630119857291036932250043696046079246292484083234624272982934027987496937847259559875469171415914847228776382071839760810571095484409305176188376643494610390622030857837883681916508356822398329571856724954655926489133819856819468733374304530677200639907466113296451757385932839774991324602577103490652840621187189042831213258522318322914500977429258453590505607772366839940823647051983859397027088105474714484657244635777990869538644733313401916189099533084177668305494995116438040407489258952722761869082171785062073575791013720335227023183924884237389193668610828483441519152350761152088339777178036395530287479582082268400916691954529238622331556924800965151681895265800023245660053475345602252753520113601449802730298981202633532082516202947677328417305972317738457108073983017278939103104003290487316744810251507859805975945513759836316451843014475035697367397340418335474993083471813708663050326600352304446743054528732094132505587440980410180081172584516063073545084170931757276064950986241913389962115782703006460319019772886956109500106535011308738230273664881005851190506703681349018626700477265188980418837945758912839665746276545435143846083424000187672245922762286447034875105495516845126498137681330954158233193347857430750115166558440534653406988735902364305014699034801455772778553855316091312264946310969722968936415674505463557737403058119237564429720130972429305733911495878240609890427568168389297676670939323659308264489874934844738475830216511758045869647895314691738885692007143323729276115226920724949917519400635596821204474082074502189008189424028428284391470350807544871751047135141669614450905873005720307415334985381357030552380821340844937402305570966568118086947940847177780508239109352684153803695820936625038395529863235681358312515723527451444568375441772687594688503098000233653085818883471050126327722425296324498323610167935942811329899784659666650086124496005177631415197687428885008429414467447458672967118164607112044413504711197503106361907751839553905049845695854292930938326237832997988444280168375069739711509976425098957176502341303747615709355972188283218145817225780481914364382710633087603036317968226062748282654668927218532972303378195248768207518094215351905354471131858909240813645306742115331793427630317029889385875938233405118078580518645856529220062791421239270332459576180914577181339474610322983352636002347745623562671533737201491953883818063323969319503419671419703066158674425609182660146531080584051350843577059059039208396755701286952868850571253415154142809927952762796513318032680937581357019882476142880439819189241938778729805649258085068723970466126966818992142003663651636408509390170320491263453264689124893725182442085180281587822458731882757793810266114613145622055804171433954810928278662416474327112362308558237182073395817767272972512142021318554232023129764911372473193819861109358739888392636447720035115684057378828154715735049381184382469468514792519799640373156726077878329123989152166735039821446014755014761927813261062362695573378301863347030734585705181123273614108064654032641767145274289952836361108960990692050472453047279658045958831800923231696013016102004365586033974376628347530393275909416046182021471479150499912383628878150539808035511773473446259482008723383810159247828382739396020107533582328295464483504096120930730594318589132468047800683180345712265323883814393057538044748490395839788026266211403296964889677423868410414164968687360579381472256379534820272344801644891323508607531936066122094973142333417535657739312435814069434653629185163046494987516834461826806760127343412532409035977010133700261865167325295476461399511056137504313186372038766563791519076906203554752490524455427461638436190630087751721904116471604884093465726173734822876840874817612995988993795003204520795836838597129213253488479236524694550835778102668154111701569567792314994009165760641920026205335098114717086820763172199242045307903611413131133550345985820577336435102428179973174276157062644264670918671832281270862147913617610676729719241407025519452001956305897631344467541195247511169731555837515852689672925814642461918914555455506761395921440485811193666571769444510664554635914622604658297580162732648258407321253487344203191577620521863569958845938149079037964886968597546594996431612779742724730476770911276366063494591635953717856250162826436307349622500728361842724205078388574393314819093086464688149908237951420086758366787879492635723492848800596635999878083280916825169730675481311246083388095635305710431517869708075155175551401419188696591058689624520418182508238381337515573512078697191289897296241011768263850827052419775545619256840967240425012504997154765108671981987972465983078171713006559717747109228968988938480458609338191313155944258257176294307790900718673384046113471416044147735313332852139557536006768210805592355490504254790674241371201414596133718282306640755995600320651884034735503559612163382651671296368293547362692029595789405646391196608201418145235196859445153381419318151019319387243588270266737651647698231690086040200161709254786039584493063415479399832297777357769342485794046033608496444558174743142428632352680699088693750189649725938849526751389210033275200015333759790738041953260841500280690541136963333265817733444032680721317470546532084327573075840572446308430453435761140979900723867427928373453547512791605406567590659671968156791143481339989802166813929044099362610688965716307804833147844886162233740274596271137724462869890859126410804509612246864343794442597910962927999724497590147683407389726826187959524036494043605683568379448614581299020781401409764079185379174998007103537177963865370960758508537855984037436663710927577632490072366458826840285002191331140116104755848421546625845465219595335361318243403322435650019719303234848384423261794767845064759362045118723501092390410483182249896115512837032928197742427828357542102193236894691457134770158157602503774633933227403140617456941345712784640244387246080402369131787041506405115097064796923233802978801786167132607572007340050956732427448418108856597434207495148571536784604075778288411303765109644258959353762519656020800002128093723943318078553327547753380969446009530194395847667655889183797108702723377096809296196988519011799504674784563034326683858404845434739358198370662552490852263088413132730775794654411846826114221977857463256691869462223836060847251096929368115392210827345103090341346013406401480832975936651693817368884647428423179755480888671932272733576501603943424635532276595375963977145733930609350728647439077934535194005625876549723469252664975252509496185736908585695255083143389336783013111656290547379583967026546611633689598630710915554567448216524479430031998062408454604681348867221546090183591875965023971101162988266203127289789053778981975912205891295911220434423900104007924547568350451563186576395421596271295407164399115476186400778799284278472361291253228965348554630870387710600571451922134478686410311688833023547868314336936024349046233806170579120535907548039497404054019516852420647495079693789037675133439722692884483722116898921888845879648580083632878837603647245788517202380415513220896699521162788577427869550783742526994718225920956930702954398887585442504559189371159219967578035899643182677214706392543547803071740283001353683621555744989849629047624112895120143744800464961059878805516905600167978958453047623687514644604539422368114530870113028169470523249685918233006465686800685178040146888385799011073906192070495284539578237503525476551261023707234606595946236110024836225777321627811374034803921258875950924887003627985103123924228835766570379954382253899352785125994389125868657910054651043943820278254598717799776642037203337298880852800039488044368849372488674974233169987182908631158300172474125259024143972505346709014745858915245232717896572154575415883256615785941124074894025482762064914895571009375751507083095063770907735742876406866894502855420922493022791674701593779961891597978651223781760420393671758714178407921628892816457795566327299473182331625257434640352759320467370898059405657861627097019712011638478399472591223535761281647343823474686842510229796815218317484304091287099270214288642329394829715040986142731627316243843705105507897749886247688592992271241314850038577090759236476105593416059488935600441355184675719557190337496359196740965979110491824632692105857907552314253249294507121034790438997007822513231711771914330220442551051799315632030311007739246302663633526244361164948144718445199306534979284295394074614151120769700171004271556442993577934385172657616926943244005916141755153674059451086623984129639963245153155865464069512116604768096998174524096967641590621266046939774442197597841298304912423798915327211108757865467512258864644093499340340674894202497740783858542321354294286616047615659841300700463396976435915443829480821719778614164723336769315446697538894347586256038908702359282273927387302882494971750921160768959940892513328536875554808394570697778564736130721769970744394529832381796833883777351257841997894450290944492432710851252982999460916807491489609831516212009958401852539594506298992934750040334939970227469172612938821287064668214088498996273431692852639416025379549534787242068295846207016720349999045555442203114228585565032832344520550183448697488478731701353276493357047485685256677945218521129487414385505051277498450909062318803272492183211319177582470665040567435423810601851888347924325831014702761490095707635147080522717089606241796242465705307387078669111676650534729277791732465761926637025285013672427731938099557533076561984176774301718900842537896105418988943683041973853954566921209824115628295813018679118260521372070966956084527699045358128944985620782042861391273785090751208546094948333093406934326152194143974904737303459044556834946919740193117545786602175747766274262915663800860267878988325131661008193574953663722628110753175510636216047546511832976150771261785408270418287477115500812260858040816088263370244532579209742080868818064882605376945648641007689727151617155856326061894804377109648811365702432374568056009364424289259029259799407742276838705902578665804652700061927354123490160233241278679711660657259992313058109606066107611174771469630079920583209023751201598301638897254836478490030975564250662646463012585303349240968070117923846076856170552769588198970243539293914451274716025297906010987860308479209381425686277178342155864377877419391374737417025900375725609244712712909613229032928525770059186675524491476118714071256745900669735488201627172670255912432560439444374621457139942213799030571266210622741019034881527757480281080314005371520281267144975172887087835930105100310265742960337479855312060720825850596749501807500180853810756817681793983564438810453374364058726339068321962085615275601951091958496849321402284043506850725187474726453362527767640967963433637209086524267544652170416610593197457051696027716053748438751824851469239965432480881081037748733132086159195599507802404650464131225106341080615635393908871395106759635124132634976254955647680479982246410209204973807069846264940110281009469743007591281713214983262336689126722363254988198831449562962131482632879970853951251298308112697907840224836318759505337763065842915381832759688697481785201591367062265875010818441966956955461734744787377050218216438410551167639558844796452866946581759153160962938065477781418464431360866368681801049612733161770285366339220670997050946416223199626470226943312643989648254893977718481861476005293051434564309686759369542283203660924124124255749189299849622988224148964132601329956080832759334064992864474885772965974156653735840640584137965529690384016890633229284555561265499620625809633522219422994497061096047537010679110994660303888216673620139448169874680036104920810775768928442386516741012839158522789015186111088110944439302389661995674840458055300723649053821393013652511164176735155944053613048401634175762592150038041593869529494888482562337955408889564034689856803663024728303148695179624068826985942474797752934098887388832861360529497637154452121220037157389339654620733821365422174394806428750284061460248238052319754818863420889715499589706231140063365115833945370153038900215385252414329914861289655778201232517927123164983523123030055332006821847131167888762420213234592783153816870055912540111110715202948534556818045164101738839662214981139546183023364377941246699987748840055571346201734509601281114507344711578575349175762035376730412620703975705668377072414541450821025327477890861393525846846014192415541512868927553519412322007701757965317234696304357411889125481611227896327796480674322690499545563625533917359971907691572632416303828793310567013769730779930782777912403063158494457405751194070668379921478709759661740883461523207290567972665229848891064907775195210418487058378162610079586955110668400017617775017753791947895085419330326619282107019301982729202404894219433598635146231837520723904239023378235858343306163924909114005185430177439645725543087291081824273271654036711000557118140815485643048499514143017907144013708986661986893502322171354146634371028702437203497205258048186411431013388338587552851609563017502026223202941264572438902629177075649133143511845304485520647245885005972165272565044129233462617751062708862250940716462804269164527808351929821796682328813458947029383229934189656807362925501236425050820832930974673594679283708399105145816599911326845688168685701597198098219031440140859846397355448603075623714469357257350691357876709367468621091084694927271423151895547372654147603950876889154010425581412140001221646213702762197122390733244780355254654387796001938841452183270811165656816944312189466168981881650918138966948062252201182116412138441016697969039113308534042613387684168732615252476654643009482232560928869467793789742081302936689653202138308725782825402248916320485868456112470165577116152478861308135751528542087339185923510053206378631028884747840816379804604225064757397178151925158996040653363134491982938122611042439410990448101503925984375239964614611446214601360880248682130206652589354262370286559578286815064938819000261722656844171748943545543963578430643263775896825051614286073705482059685323272375808715796125646132302766588119247163720589613048824530251466995453177163660554729119350575906040498037014286687959833847863770217670328004565881638207664498160140132043350833604637951587268297661529019471339881318030678237797201173147311733305390369003314093008311766031969814769684198148080036170276482907254093644978463012990568516338454727790809159106271058613393735491350471924023538106070585550726400111182073687359610666323521493567244177576871386337316989153130233390059201623380043221041861999915067298173647513055222326413891727844960376568882481730053795765215451186588723147711726412853283156699632674230534538758834937284704689238111596545840146075380751457081956056262774898893977341617506695546065550271805998187819513372473835906115194190549055663879926065816891013533117101935259467367015127293517275194472442464970708312328667709689286939222307788100652908976562002098475364161658529278565883225071085229423896871267172034245274168624306769594233726341979447866203890683069784897339514884792473549349927846305313505398400186479875313653133764224198955809072829198013665696563885321458307792794767155576380219844254039379337563788640117070157067662772692297002543266950592694576991250916242965286129763901448587238520313000691248821699685840055726981161736789890272328618767333558761051346828202045633179025098734201118050342346211700521765169194184880155591787115780658870519820391568271518052793955566162967634120876260798577838826376623754851257858294492257046264125879190970480064074004109561419643390248490010264137319716484965542688298329921869511232949854103426304506932453952594539319669853870131587077735349764753586430346302031488614069101798582267379977790082323833271717262542648856819762767313284534705986809524907798889269679805628374153232379799529211013821568473937908792262062475178451574301147389557164805699018480142139253200618615238473766847628139782471477173154536986329993078821970518431902701312327750984439579611551370184613611575237673543233492611338395214047365324547020281986159226187297468842105380109259159559742311063260951917773839360173914572083138420895174863070468085278416221849943051489646106259862681781710912531068531389764226225266888200092715916304729237881270299505923050488472265422264073547212092222895730239624893917441343829277509874598101246752237478919940729406909358151206541072168632090759975676635912131814316894699328315259012150495885951588708719514459377247409143454050157288109145819874387036813426221128577585172909344260496797756133351963740992591736911098736691509818519521999366210165820566528861667539834987732015069698614522156629172208644853469100905818059124686866884252883416863663480180615907889358832271087132571439916537955556252379036866341466015173036625676033852044653356732705500952470978463313620459096213680112036944810403990705253334830255157212679932014076590403702466150034599318964929144719252400413550992472595642554613367485408826706533594071599890618330367436583489225896962539932883281094172149325014109363983949766938075034100187436603930980381926620353262746522052491735390454749998742093528002707394038352864029601630569584002076420861270825854807082314456466910673271093423077925369144298801399251917192036667041161326075988667184980238601431240428324013085541934786556978449489136699292422149097720413876039347332279945532337259831991666835443769380779421066797732026400337384618173684901333507308308339274542104688444253690404162231892376208689307254249814428810020063855808808711619529183473674307588517530951121987568256846118769829430172983123277440075760649956511493386125519590788664796178215205634465322709171796988803648280699445153200931250438134568289449507495414395674096163898014071104631651361702852302381287540826707238924991089791423270464738086586687027620695897589367223186880747377788882441395626371718210156063971077377089719087020958591181974123030382193436690510335149674955714390596146574062954164702168463427844475539020146776275820618764374638431707919141433230975777209755644695631942215583911695891807607668097595290712091482097905257032517686160258402559351009332372862412532058277208332221258292218810345143724066349773943913696836463877081751510071977054106864000252373280667261166971513763293571722228015711462580386810235341715447472410454542144464676867859401920917090538171163625116202688049575941764517371112162693048455918191283955436448872597821402846881566178636775159971421495187655839240911316164926395161633895477601017574208145421667904561988628125891290456130727067580930332994023956649385749642036101010952912541187901697115028261122656248388020679060905832985549311410209488190767899662105595655572063116350166680203466358442084607932914597960955557180400322218072813951761492530589586266696803648313549239964226230497496167698046197283233335324813922504793052722413786440041247263397647898138442295081915869071138585039305737969632277103277929105539452032808122368081137621175958756463429516337335943598727481173599993980774878625264883885195431344880070052473205550001758484801521461119739244420121020456287489193521844859974292753237484556268366711946409834260492454085898934986559737722398700201827443552778668796429552665686880768345035319055011128211436099162564796374804345229683847538804954053894713318646307300533552437329332070341612440821736390306408301413877957358425718714856860932372490267110447985141208159971861581675021109151226472402552466287158872296223451965876029368183031502402243115614161014357173530727159825489062949426458641448540360196695411491167603760817500270939291931843678364765227784839602075168371236653058299814248460458095873301142514904366573816502027098740548239441031971664610633137343620262289096969504717341575450774789607242949037674824082047670649054063993039162504089221571005528778050182986546170254426970524052106509181233579551995791102567716620932628361264661900286998166785876838294359118894443617744464187367986136477760624666701863375805231565686119096564441870791148788864360244930295081362609875494956534334907488563075302652578097621982417370246281837022102323667769090017683734263172371345167665379416855941442659649396585396395913978477429153741683841654003365513968487383249225072188916188911767593527575224201809812285467869250705053474774080086972858183275570463465626165639020729758348557367638976037698406679950925535158515389243977217005199966573172112454045600174424452191915261186052860536022265221514026884841093416570618559438821165080264280573209948245087468254703660963899854887268538100820031914681423817052141796377049084598007352831094550632068680633769568676283304383123518387251133265616970156006790435648759025069633597524889133888241319653970849203244324825662276108150601539835362613261609141165593319441682020632849799202193643108573348548439369143533038266688851596546384987869969254052122110487532340168375516132449176274832514762072505749739301412218913502129151827516928847419603442818412804324634341684138547664349079209570935447567585922930954340874062778720832601141684931937291849429818320396903217071129737425225036705128226025439743602689082465630477095328789219164354536708869424680261537999899149510540069322482550242013449468981172316245445438091996752162703259976960119443294448607560741321760957910857293611184646915975732764683646462607842256837843968520708605118656703821098419855341365196307527022970102639008071770326792606685841782674340265571473526479994873841042384313072970149134159868903999661067952996652822759809468538914317308766315022843737495064445109884531378479170857539361885184985288364148073004962083212045300783701866929851319423957282107235794505803114096209228039784280342423935753573132611755465184163012599990547892653305545034341227857944207471412844960355741501952998691381524445709943889164099224699434440369368857734532379168520580405754794838264818374092426170610800724153399077912637780698803522267373830342169675360308103420654010251297478062094160535167566799426132369654618703357987436041573873114043743745472044848759081492236724262020334109526176005872268559730010426090765562594973850520262728857422122743590616513055495394732162121688034640743034236846793891160466577678036417755382611862903713278635020144167102510143989051851421129159540306820416572272611753196814410536625629838568748829123077458218198243728781144664299196686802108634634313972752037743919928494300852868585739741671508352020386686420086332478454979523691241198894078728198889858159332735247001291843556056094373079458579290497403718173563817621162107386902029361529956830893304226501115373416623842480767543208974363424241910076840917027229575183249337522329776549874944195419522976384533615069091449590559190045781435263615880167115729794095651282450524073583877741701001588926855110696920595073671769382891520965838303249101413330478179321046378651431422807335588429691765033480681940340922075919029354037204567428350200902503460640524458400914394977758688077921127307941148451857150046569169692613647068444393018795082843146426564440367024290872959759814996248527499530916361612174624863542127747159290643112023060407287193567802275811479628617033573322804213358673534903780569003696046405790821790024376479923214925295772695058928835774756497844240560007993333754089233809672711739860574483784448375310457784420757125506515661217263225615526735287832633682690430051782886021335624843402350174474385397287905510242497486547697469821432123615440516854007263766589913137009381566292182401683764999236065705703773142808698124146986975492612686882851287243398000033926160312048321156937596407791084743303161985875748363698322480672391610300071483628334867931432163425413548039681914128380654018434591965361548851627345461258495819597854672649240439057876343349380169275331756744649367161481747078688052526713928744975145737597273848726086664867270733543012210818158907389651791207022983409358738739941957795627221764142755820956005868550020090801634226151448795536510272963219489599749193254973960744985812109167540418309506853644104424359697548748791853446162742751387951883797721475029197744472600104199942913314425393239426759170459994064401628481430204650569251764066708006772383778367624202165943379524646965694222190789475537399940158776187322358612302626663725910662135486210960523266684138702576328945501576757823146331493653793122121295947317466404203520349797030064773949170724741645163506205621615614121639412756619397773579163643997825796566534669896428659492040441330040433701300797086402512993954054358669528919421833986659824239567791108266905258906203753176189254214858179961993895000304584961113768983485183730843628945006023079343561506633156830760076743718567865268886666538088016846504091185602282547529261315889942400975756359196506249436466423596296105577779822312837128345832815665368402945172183341423769697286913068819456869727728091623897577217479121423545874934864558521235943861072472815910833888851877019326683755302895813048284945121861739610136795482469303727445018357486074828511050143330721393365566678148337766719660966443468097905897001177446525826325360359087907058564980761479294556830046468361014841392616997142183516371530166728051960669391039538914290943854708629239137267796605961306086168394027232336030918092726832388709315253412373326897089387644834912353828879568044182563962141152696498244563644077194999734501130354996839679312078811007332614120448298731475706509978658611170828469845512216496561299627547036221796831510992333994629299028141329931008967907665134870251260138029313951022335011733994786381507106316493441189657784715406286896989816006145539479686710932921380657222853339030287610265895483444402261360659417972390920840093509119796499210035453183040400600410269731503705584703279800339611276267117951443221190137804589556970049906530798485595913334651923584794215303661755378920166827771603650400891592833734628731491706296097534167017197527835275209136520090885277892792314380611683133331410754764226118290036489579564211780515476468541070812034272747957294130597441497397780708221267856819802147690461130013615440613155037151388242787429075242850795656343072289358199546214409010636093830895277122513565801500869319085056587335211872549924805498791363657324616558476295869756682659158661645181537625378395709781544880740975458817920116341698831577618245470876788147560601832168013554366107783259215964579140896072618696875150849356951230065777306434920468100648569173685812327025367333926968336988928610308970883147975857059272326374868244220842720490095580829393390520000556564485155801021604360805604695691361307082480292512381255704377292934538724827028321637822149397378808623693151196393721978898032620881819060998804169796194041124205396741173090238537187380641094053705975169760739797571923879917830351820432333399392575283144399320969574039252614391834901952281873140170603952700934410892875147561832187251496806736835111418233170690293475627506778768633735156167658119037551109304051871923552737916013437166860384687559426378989796717068584179100396139527916358733617710250331655859276215151012497333007657572489674989747417496363088080463077386120702732428247937486895137698217515325955925030482237349449265445982428558878690431894663914542764243930143260370794527856907506110557900674894760496219821834102441986245969920504987684220371397840402017254046747911280734978954043063246258299384952961873186799189676123683580988658330915862939998425832008492156754370214072113356055402238420827075758705588896186245132645808802859323539970132662504464621871737034923606318604337839182858259214833527293591262791436191246128345853292455055712994275385023027657046868143870895553244754229063542759820582149837093553017873044450940439411653002809078710649508544328368279179122944486350190026638396093631557108917505933022880719680845730050155510603047502618382701215298780152834081766601144285766714068998141658002382313448994393510762461389505534098899888861050902631511629691985535705326184344802557119698851747475094845043531503008322867232567149967161258339294027196199240019876965800498258269830758915379726746469130415513575480059330753041783850105899249047627722977640853112736665407013879988007598534518670127032940358282126812264762162610970104580549744270753496959142719223447799704850905797498549405164603098981703068326728054038134833211365975219246587410315614098003005013091949643860033002961881722118173895123071789554031512315848716981205015102789228484312121529456292510557865193877183738316701525342114018244795868577817524285056600081352698762113609071219794415376851687930938405526672587412744191499662617073393568679371077486335525309277434865142255191988879031140621955358807602777320195212654711619292350502108808174635880604699517814617340225160751716524858589682440832685750810713271828883283994204613289279422025579720909603707884541762207985037205587518107801706996681727351333115764320430814657985154129517871691676407118662122371481236116758669449132437216285142588019162523392881598462715445030214173285946819511554602213190556977994814390259481907274746487366472496579384815214306656135756365513088120949485189958474993523977303410060463979323147049662173194945086807908059505242918718761408953634264720434126005238297520778959264584402026187835411933648016428626815613496191042423444691020968093295885606408641947004680102642963900694615161691988839967254928130957247466856466093718928309026664190182382157697559696529730799500069214504388326858549392388553419017487972488649154776782783980744187641726099971685464804877340471733109914354843498041658723270725039392169572536295891806812370633718739403127326193188506588968384493357647818441957367611872809205932575397175860839935645232627978209799624947386862654498689069065176878226895099088959720744222988799586624928127710131785366575318652352620807969249120367619587880674173476844584819076997557595297044002743194998098981279604188891954632132728011595728680687806017201853537656865821363041073430501444015454880156777831465580294219710621593326006353853906768332032968538941387869265281244261882988998340403521508223427002924001198070853232385017903655098518239620400983783784795175378253001131788336057047418168253412398951457425787757693059125796106796015195931270383754624529890197549778238170754487281720820526572584637364293442365439149960805566524315720848695318961774770449358164798590110771182473073832406581576192794069276647722095234482833751456353526828483234015384377134678383019622841104500751765043706367957961151351026920389873291031283675565263450283376760196586815382860723227750028779843021289506191438984846072037605372200825509977163913739684067142151299244746321132303700711885743809045251009078545475216380642186632757192758619481158515647098998397272948003928241596745419175715513123411026517972224711101478995716033666247429656997045695884699830883157469722358353941029361759765080608335756787716178603442082834860414341047937313479899033291304063562910879689471357020018176769468168647632625971853185365871315714180471811289118846855918700789130183921170156190973175574287980830673595905233204330396089157186884275503565755029858284709289631589710430420158526216100764920438081017330194573760251940279756728587774466706769269809278832515031224281747861336882608772918984157518282035607941378168329065840187972376885432790291130395318858063075726710385800250872745742104469496561579694342752805190632295976924210532577490293092034114217492918129687030444087345041120264331277071179758316320567936075718105914293052433901060046657269261441397557943851227051597869484265462009122027997733278332830214334779899827123561640371980868795752170095682246261909304887140289298818557014190886329369712099166950527229612923228758326156002939231721497525827462415654348906587819362100840916922751543997599085339023399459692100458944958924281566292119868586604377200501210902337170137433908273659952682027838941908792947775454834368343552359557428407804171266206394915846513079037579320753486846254338796143372378369346397011450514036476058298499687916963867660063308251061628320177578863177680385860355630229492984076366814694017735946409659853257024927191922803689539806388462767249130985451694874653540240880818479723474306804776887470889960492394342388081132965731572369942137637566808699608362908253069946740107723529702077705827094793370449110535961968438114727640346977988917464895015629656376732223814375860089180486690617416207999516037666681880156227060544638293173507819185860517226284021451727034035412552965632876299763058257055141340293927061399034841842681736533011182411782754427432750874338662186584824445484638032189238564357563127198266461994614120213672868093981536842797141729574150481642273080704938101590453955087771843418024729109172379121471560165706899024813560481873393770974146562153678612868610715132434526542779640707301480605582891009518188715647005244864675080443094550943424667514094675008765058566130048628200923045292136891249127542429389378091833148007369357154570602516857984242611174411900707063187095936491573153547181644230591425997481765472463620335405188366327541283204342368565837511582194244526880776592492537786743765185526929639013693270892938988045829910296951532716041030919226579406276155817329767581861101219381819284418638848517090188379547658820342932491026019694061554810364988895651663250676865779173518598404314532294301864130936003146739647608014004842208585234449734600640930869523677472890254883813640290983484725251789845884510825705719493947022390962803441666901210493192693562057960494375010445931212761196878332081764194980298647291864713420551800741740353198303735997875026154673959207988813828494889322563393112569501535338846511022186822007202039150559796975279802812676074545771041183046134170038821856741111483225347607434786843414769506002279559047069334031037015208111729335188382695726720097684404350350939312920766750103641514389425576460648780245363599130871852841782933349294688863594451298528398599218576113254858760929754572375410202455405096423083689580211354227351206668796229920018329223881977186503399326910804064268882571538158033817771167210938148701658122502652180621587254798467065737308933353875803069314186042675200056882122010728354719293991587949307070256519286888844888088882822148075246375809514767507805021653408094435346513813730980273627641989579089607403981234930554274572624630088435965959473781366958275941122955801325500788556548663121130838735226776366570605324362745041743929749423267636451132011032589162758374136233026517782591466771241936212079939862085123271284300322930446700839557791564070824906909409664824573022965936416660372229112947480184813521073357118433091977516485945750084060003811869568603895577290984999948606951956412971429495131057415682589325639209671912373973115331110729505402543924049855683270282001465721124002826248035299268405249246734708348323802609805215362939515131486538180326614890314133769631459505351884625461633399457469315843282155192921715983454537519720210632313691515688445880933880207623250291793105187419173948398925105512415858318924733012080716631325289124694619981516106507821048916216048434018712850868561145052254067852534542175418328656643463644292425551843189129260620215843620214228179462934503064771037621911841225097816016609454649696173287786067507142556644427436465106383795668821386661538070879653291015478642416243768744561396803307041595336416860876759189562745143982560000030292425926195299460119507989767647796780357310678857877043690995539149865015842101757067181505332458338331202227980278290793049306292783977383580325193480803702250387648013597131430868661915676899328878845291390791768541236917215812388562672303708931113410711115152447460697299639365322472882242852271284955498486688804327083709448342074334819005810549890258675033931379874593369859513415230391008651272016971165361068466036162084276237334577170380768791264664119953549691023844854470831125213899245471116856377471622813315722078088847053818880557968526552110577676420249473645279208661874195573809802109082548731510040079346575298097153929540689588157871637337146460342407010656541872344062001156303376302280997894127350083945290130461059798917338888473145399703207525453459882481720798974248627320539529569829763807579025857639993209909499614293843376289360325800381884579851214385987029368288488149035835218776783251456907759381754207586772338466491895090638019067418505618546436209316808448685323135228836887801161222492273887271709864798534138149076485143825912492293202807729351077960945768787129202910607479151751239835421504611176934126966814868452135497424718261732600240208051110902091162543606045779984059891933667116333689645700806054010645084861916411381280578951275020837450470354224290672633244573695000482171670288868943351973481842641075497119999422608903805433089360082693004549324912934977962979580855147654940361560466574158285993380278956512976819971423856594048128305613508747641688399098977607863225826680745235500192216846967701207404314837671172097618176827214964860242618479604813471167392176278708267586913140826272103530319388266295056240033925974399110585066808299696997771785866030946069351113564625694523399444341017393053511609446445112002495273517695782711661309351007336800165170218818232879852303897941413974459666296496745760365196458662038952386080254552115779400728209347521921660865573494065540075574705060713235662447905684432309514093921414198840080400404468519659545087242861957483016491403627601995799116459974340313714731656792542858275457862571526307589735844886471501794670448670505066691308979207281659667600730182797799307774018546513366509525100240127499212342559695668556183240407695178655428232165447769243445384162796902835465246086566021605885218271346311030171415946949041122534326966833837917173153946098830903326923777041944940993384369750689621893006995364671668432866711275479187025029629140104489412163136662888317344894482161858393560315793851144828423733058949585185586309004342838442700101130502187132784579435422906841747350759083887779940162356169186651986431372133192777606938404162997957018995701749120405014250561811897173996197987990160244080029539362022705648298034053886775700210712076073617289516468403546562907269787935135694294407230742038170532942881649746807477774150479565050677799721291978167551289292730225657188321941440785665424294965130677342240402871820144252453827880543331284781079820643548633101399932699812959001296871869736039591722343763122252996377027762481951320624019037923862813526040352588004226229608599552559464603757783633695978025130442277830754356432160320027686223887710876381797491746580874551645659038303340917853111067936850295570624435831964783364521108651677834059380018912720283267890176286434102188456272169818748671980182212092088732086585484104556987348298310605387387410046905439452628672794788462519821223177602655418570840114092628283096533902488920564522406355607514204727415327639424113079958894334782297550861905037319876220969296089453788879106154653161074486155246100248463681589117888576809430355348435212887000224241205570392639284080813952888729511878595417606638487480147845123744770583277949926985984712346248169288292421758102492394315619479327719631678577856010564449600191266637402245457890869122311054186190907947945166889890658338486081081510072925078019935634358234334164602494686755381405962362790088887932359160824607196187513705915181055396804486153120521712220775414934426200102148614333055761965685031094037721720866966394162582009731659020887425886749783830127582356335537386524918500436587041920968923764843041515080374222289990054907176312713508750431188846280715453220041863512750737498767474549070995268455735917087515140937028128423395049931610995153907577217050334529592890358574528834678429479118083351573514811350370914311784652426173078931499913073542088049629974373586722849542923352701274511452670701539092007590104239185276424106081281118365996170500922763224063323831484097410484958713586810580221159005221029840212250132827199675441478277963433926606826118181905110600475675037819479411077430009091336750834262114293491825060221800412414349543297939153812515010442894182845406700663186492380444291994152923814584274196139858731760224532877038838999411666192629180357367997618552802786677924287431751383624719143652728921047626244610688012114618517619086409244601370706389889481028152804488714989620653658629161870855395210285463373051866173499100663520096656453152224025548328938000315884837648472493707396895047200098162821974782738749683170900699878630098553907375311115117324936729021250586823958653802703797474335597573263521275911673510020331616407087952875691169725729685828112166985913575783154567677428108327737348281644131864129494247670847800338871333335129961126300766555557429669188396274837663707794820925932808748010977072331000359132675878454181949370675667743744791616245344819392888512115905030478024984935741940205363627219610164083249853003464956587622234606371440161894241935102664524549887417248646821377245407037615049091265813289721459200722000161348278823213806419539626627829957512911207545801319462308123362369236751631862574639758246140705121451626783096635130336161219235394856809241281561930973653647114418249913814786936212821558455828486924855800184702173434504714869607298436424751524169391137054667267965443766522433217798311494644473471886004149875563214853183932123619582538826577232389982090193316209259953850797547851555967573191632473190608935394850962031433552952534867660631723394888090432577546644258923237430845346599295702551196043235416485863046340524172893157396033816937595696989374462422311370545912644530223071043690473246991535078784089494335298697868088169479822254461167008178714615245926333469814955150502589441269032018465952001534323891449085948346028119091185173761094877017110202142309946080687434394158100586637995314729014518103460748119261182974688244453149783077896807798193128736436083318784712446193434722584398988941447275214712600785852355656975428042784698876266276990849175695579952966603319994429880200377828890050674434925245759174718533485083412666520616047847377813047804803611553229323525655552989513538935242699305706964318499053001917443577730824653363956600888517475698384244557108240115729417497565764173208023874446042351982551087262709343319056699146833816456508572578610989051157481694337637935237461787497084580626903073956363275001348708753899121501548202951331302650981181392938809547032855743680799668816623401608730460993658622752720307602900032820162426731720053554068621801271523376564565227879593849310288678895832397271066647769771166081495173112374192478622696038546159013691536923348813405360660035833782473777002422828845933031710805405067969737527504972280131107036755696421927661786066069576164344799523631623624331164332305943078099995243347605912859462283341133329888262881491541940029267049556257456786801016472031861463056124038364940167045915186031782579907355733918540153679145585561279881538384934799873132619327504059403471877597119836781954418072996318098158895489091922718860658720573914625164494753899443493890908181204225647077032008320225333091426372042938958212370513877645686383387319182575042044486361729654921423577558724062471784180139460067805243435502718384145882855597467605603257598325122745053082746356745883392178676916090081985131677717455538388672168644630751804012718853281556695942729237442667782987706377850756047529979988049454176735827786961208730327580910974570303854654950208612336402014466760520925605227473641070209815754936092327820646424358394237614161970212080936312992336840139432804844153429454977031910079259266517197020515936042908591479995556425143656488744281500758071759779518336393840629484979233192094986352061575449543632412002519595926558421398170133414766684161364421870415808987166845227763200083992455689344718567803046195516565774519688940674587767623430635190287663464134203682468761524831221129189060308024106308396430275935727582353150850278588063578407075818681912371921431284372926963509027813469629781801947601706532301291140117459858321927705593467834369484712891775046404950738030149611913906890336560099786407036113999382518098468137069878017840853960783140829234708788874022512486296780020016116427542610468127383489389631244115104489116496892362974605505629636257162939129530448346206033152609374130808448300384876695709674135317158585668467991289897509363201941626468595747735043579105157067024336558512836813570592032308190500960280633766946916858270104617295390119567802407703283490577539858768817115452912316733163744898050650634107972169060108475054494281311870492957512495105865568728805787248913004729731306496199112654220847281058663060776936733844225089521622387580139119838592502147479795548796601004713771185778686569590711664865219318354400561183530865087322486833921019980570606054263705879454613746226886931287860592508760933198969276481209085559562747476544489205723567751078249574445626909009820903777963186861826889573598695248268565924281800083126269523579094391199651953579423753727786509055659550510137205628081801017068806554700919437554802394087486913683077061178137767898125726906896724006326074290360876274287964871775766453763557643228423552708126936672703816447932223652813948876316822852356394700894013502829205442214459437095846527957368867407314464740804136719570508387757994193459345127392921962188607778616818964666139987703670648576120736385129884410776248129790349977731620359960571547745817209142529908161751565424276089381195074885788405970530116868272925613187333970565960113024239679954429526908832187901584701723530314299532630036520661336578197975778645463368200985879671910096794388292885538446923874530563439365437415859483112367063406549866060735779595364020445030820338247673578774158427775753909279843736647836038767928955632678691564799373723483822737880071394538497646018741161128046272835823191584628686291934272530344922456191421477250065673460762429304796424224421269064828196732825713656228433213729964773038999018508817538859722033105491020433758183370664875724192621045077219926599790271684636544348215280444498532541979761949653121767326190044501105602673460882860618695823470792836470030339337046499516651281134172390891017693468070912352319699428228824001568864541764266464637196767144476909628605318381029156384538745294518865224507828427975290636046282418197100257181996464896667341794461974913037496104020849763145603866475949634969922849433976711285862181691107944273079748429927168967611045772183461073569821784447379750314411603303701279770274521002277690951978416599740409587423053557628241669809067577798686341219473638257644249369317429934632492947109409529968986488141613861152321079413687492816770136868130932379834016119548493687659734771004688448193747503784720099737723183253013718513521140399713584687175782240330428050326183506773741752363479358953273700144200500248278811408314513935968435428138905624407903343825138113888800039176538324024277997771171451139350639199808262707074963939446327314887336071069361728737077903497032894127058713952596272715788891703350056967770106143937628556446119807136634738148439832167805456925179396337169727583081788140491041753899312183820978682689622804497338657175322613924043377705290199541944743284419735337691513167573616407542791707324140079906270724383304596071386499096179565830238905205735050928771500046047000071452301795908676473777863594020590197832606689422490253224716205946101031000906063891495869969570121829670082902564095110897281476921517557940597619848182310629913183277782970050699400336452561943397048872275913830520777753742061158810636461593438806644661554562444118442582699319707040341056959836697574777159469528066988171230490799683662464335234009968050163680031459527682858564170392824976312831431802773885832636332827931253241039011007121583432941877298873816271221221717922051307410495631471005392694920828626875032736142856891232575207001266004672191073558793973091224625318473369783305698305160404202491110519772769421095622921494356709340583741102620783965203034171772969142675638370413780017097161726246346255594336810753399843530000051719895197141914245308431700536170225436263962842114715765846124785832681213692778372269087080331052249931892169835261117736805254754248187455111275981421563729155251559420182006443234998542159658149030687890360668473412976710087777022469157552597081627067265903221092770101648843848886911059860103091129465276595039506265490067247474685807654009285402872126050136937738154946799584504356984603874561963870407686079891832571240955647551857806759121931224349504558351971614431259486806630561166199038158968762468132317920552862029834191764691905768693280090205316920001118686871319313800252686937300882598487127401834062453966532665791541361771587353161087997838031401301660879675981442274733123268492903693836006296677745133056848919266337947019664631643535204869519304319765113489103391829599780905884157830905488460543192818492749213829240594409294625475698108676883982912760757941999530165161388725531526240898491633495216909383002190790200676801310838005695900997730761648400396518395071639474443344321075433861848144298257856129843377437146866681997733334630094558620638054632123835040842657958627895011470904162467942944606013143085053102941691466489912005691913260080801782461181816890467714845728385915281614905414606269040731003931257423761149015698729235641537264690527066596006985411380513658275743232237720934145894620540419602248535016132286359714126576949662540926997801372801357258624871132558395523173808114847198582637130926594301112270018952940142625326531888987777382515294492142341764062795028193619140877598517850260650275034141415309789814029095592990060279548500650223575900313424978878385837984244362580805799945836730248168847228222022028087894686398587445733061159658749627706115045945777038150109444211209150158392999890381334689511358057063400133065777945870457254864962975938625996067316246610922840240797114380858284847628415549997262338525843835823192422543385955874349342887097777930994381725763000878667194401767894880339348285197473116240102952460761337322683564057552180483145824766524361926625036354988763407087259657362375065480200041782211524874157654561712782910059003392727021658393492251089612797325962650433355637575423415761640603128726398677231833566229974836158040796389171017193638188369021965305349104803595607836576345561412953186745004495760442228659044577405846344008438198764954150198447483311669972908728934712024582843582083348132422170492362940272479467786645229180755319817944789117288126571177843428787654986987827799729710930910356217438504752478448546603775828294634783708511641436276696441072601057979859432165171886924014046343111656278472584712707571304056686350300987197731754566156667764880362243993883398377011044188645978878892140622847728410103932045200627976637882456402364434154909670075526726927744614252796090491738977560988586717603349541924400732840780501245516218374953308220086320818553816712536745168318079657323899552488018089468303753376581893000553609203687809067978104631624677286528596749827410136308161652788122094759016331404050879643618955637102647600703712277857762135976470232452855151391301281739623188946050833844723568325371814192492294105364156269860354538284847535087674347168250114294960281209806129455657060094896702999632275778640140813050675114708549057645079357105411540479890956284407396732660160896575259366321748701524418586570052435540188162107770567276294034031591031657826432618138859274472242254203246111789118500380064692753434394237126343730884252354931090804470444442213536959444181550830641343468180738529525284617584450940375710587897640199995396553662112556219189289827260341881227929225262307757706255948572698939603408669614634829677975201606591353940133966771910430057953498993897230215161592541253151015817978499833123882965361788621753182784928132297435887596339146614997009577612903592996575786709815517749678469990762220957631599655494607732628344195772287805256235570502826032082039670032540651560729204617911417964260836281364619120200202438486853891462624635308973350552472568149011981961754176634135014091852522467002444601247082354238255822608071458441756884432999526612318786298776883018421879440376256863387120465327355142224208468939757229628483118429842286403094747971998692178487347926363907474399934637188275138727157306166128923769590058701677994000041830804015567589903002413937380957651759180028990241300695043915557776596749747531888446785737217816586426023602708872840780698745058059514498572548246508740453615856165190944301126212091104031679956474728800410104792401708620092814764811780900024859025783591329721744928881962721580602593000286720003432640302226348933473358399059724414769450519294029918861863982129684951969087690835198770717271352416146383650689059195066184455300819749249244954322564347729653851437930322354914905514936651517463559466785931391221013136731227433639661460308418245609180432382319302647289748565586081989750712624129024274054524384191611242852708224556707534798370015365363056061873101718006528560568996676666012742126904350087726101522078887627017834653424917888007600080323461857881324316740094846714724477416526754655364039439147646669815920469917007353117240046990642446720604595740732993608315456989623598494460371207441897321046115362196966591916448632650221124881296866701338190566601822638620524832211680198428083773054704909991491742868393327004056109416811566799813170669813995326352146902050753866956178138277784700327642482583512939716569375431657661820902958603266479152659722887195643017423303926073539871627617025468320457460040452485727296040715415250107298156497955079957114712567295903402978253824778642538651861946255337187624346645151912838396878629224170525069811517776803068989394900057202108243606048743241602865845471868140041367916146345569139388672819702502614748392490427000028877361799791319497032148123023885538673941556380635046387426459292564862084484812366864425151778282463507688999642548820065263627802122135655043116120340765502769649165669812474477041354412646121763158564928981618584024609156932409984910962440241133045635623574990479412161518657685097022514599774579267578263537222749716280831263372100058789356546243717413090639472166579326145767454788103667282078416400458107941250146539310131639034135699998250776129482186906534179094169202946514506157418856748155567516442406311081307226774956244910909535652291514084495900311105492273212894479457364679280188528599307357294505015112875415125541574573025378601494125947553214234136187862347428819580120259803520760062021013261521496102280165270722378583483157183971318506915438196340128931824096154092579917941111340187886462562378532705370608800792664250210560338361388688083458261522032668965025632856010790802619965627853961532211560064255158278987757522710688037765419984929639577309032154253526618587834783498424508511115887090262640319075871264383110583547878271441341760624008516252843778346248923653078550180664393468115725835540632464130645614468552258477470653533445501393929823881488304990339419099196287982858288288002304492078960810326829025495454064165020312670704821225939509093888152892890038366735549503520549869850371956708716754399202576080764659149854280573043799383319205894569579193058198483907311666740574056244397559994549268026803879171443478129905137836989664562347314273455535355623955763604754513086678545206949495719762754403341215457614987954171318063279039060995475840342745107121756532424856379557369240004773186031264567029999621903900066168497015730290197270690305243268664099652414933633519062899176839364541716373583228155954187111806588638867052210049245113374559532509486050891951347212689074853677336513566127610163140145950753611356903361806317912285404820662737039440197617624490097613019619892206025409289343731824985681280721631120021540451234418682686086695882682976188153029565106919435074536395078066706167285045338726070132942126895639311094751270783146582116804456503841283533720225823970395395692314094248029593888776299639397314428400940807003967737234003836524302367642108938811180911531466865266196338274265476663599930200096932128404232696139167553786841768312163417520131400734531887707237612497789413116062527936259051792319798347064212521085818118247247119073421404950894348925899006827782592653156799519473452712568591545955936612323292669414741451872568545952280292937007604090823456724416742980199937137138413090508164748185673094047762962399209185177492843199205337236891164335087503440518241380513370237255997832229048180439954241235044547616531910850454950171256347613981314663018192153254064328156011578931033996802756813282009846029594327338161382963995389894766398177109996995139181835920648415141070979790962310130893757402620582962535585231476175014320181136629296929390467517998634703339123340347372462052595745567727489186292880556006295901870640559198410669035826450738110520732783061186916038878373448419382886543741755323530293983390075406097399392292027739285599122638515016133378725987663928583460480787182123261350501263861390505917352575592850760365841987433380863507400274244846231174857621723463193378318248328589431683903116141035732897110303141459937418378947510355487088968541139771635731774756705669772051193294346803420056059693294423380216692681689264858050671091491115483572590576617065035133151100269636453406249740736002364556150693719113008466604930789140405044819197757424994207607325657126518330141553614784871102222451136890971239078507116075188488581678336079127542047273037444126130788361932982214824947003150336198081039675205077166062324850882250601355539981230965293427022986411799663117512757408466824079361381402227925588048740794300189547672706888517519952441551850382067440118050988002102031956618240906233594544897189984784824190045429838220050474410018591371367196295489934199900581829921611571292164781992020232218827335080373040874752619643381163306790684361670821010353232314645464897090331134028799683658538917927280195528757143341241764880350841127572520861233472514848666318367272552564418893752818183196599918335534723506309713697640296652103234901081619509047847873758343404884574530123578598968941387804940130383682704005291806284943553434527694689126306564134139807991126675451980746943012047864379371041725141241580241520939036551585827398444486655875161871920536562024465543824780362893633233056717084751363128177396227734017932646688807349949451340548125899382027215063059822495461929688679756155740864301063670211766047482589080178470231622652869701283614206823775858045426948587694701541086375996659373706068411642964135251985408996034276306487994523538684066105520064829009908742835764519071436055448035736686745991221903846109717631203369557140985658116807636033586119463925770775579874474222882057809159321401300116994455222982040829349522388467221322394036572495934111568409194574172811948490942105945170366394249257170375533900151514292554046346604683790587727610990029810219135051233439464593607798142166647109604898920321897445344083994176605995221313776381747822144109358350886382734962831094125498452215088376783798477040186561954734891305435796124439843887895024576105867757969592484364282032075075343044876441633215098464080999964404082562374894758825833051841644288750681344995513436531304821205799281348592408955879008590277905348539265963264677336672286260714025302555367657646344473559734882722193078955853002415680699949304135165289809346372696942030314117682402035470370103241248538630399045305119489090229196023315130579548088765495963646105480083120130269238780063231324235169714998009359753760829344505598878520216485627407898881264957570748956748146444332123644785452270008845521435879597666344137172855324800357872310892535093950373899787143532010839061083605695374271857613547248038596794810309804131843645906628894589094645762474152075684038955952327848434289621434797582868789451462089764364054720320253757180571653011134783883647633934980760723642668167909290153408741329381293669338450592075958667136185145521061846832914543511485449821458158442902662571814236191320541783216332571444838820392432386901256000639439130278900097726015637856468554006515986141360957470824529953828531358465373323323693415280679052090541094108897427761568355993161689782733718677577163559607429528440176134809072925119042026839349349049898895412314689687473285586459490091389241012325487220376049867220063719873053145708986665997926416927946357892545190069183144928591077295726180269590698551143156665578365319900803202215160471140255840209721924722962674964778244114307968133568947341827139662229265838699112573438803637112993232493019757893394432115100343966087473036679169108756848764314893023081867878445291886799904391996369199621192172320670392621985986151148844705957910559852290818903097393923065823118268686262730325976200225410909276874316386751996985005891488375224449561040383293014143401091072875828528969775180824104773519093229665468920362528405094177811686404619475926255980672725156298528215200392143581318896311467995387708708507625672911820055542348306182663391415465681363857991639664156301918882573984226584566262845475890165040479224796220751071780929168463217441647620053692603190535462761833550158180510826563122335930381637172740001116802389144358050400846274738108140295046453118310833700391727864426801252472955228470231893571202114129589702489351326102077396582718490070012221534466482464729535246455035501277653489457341525858753319107025705885574573694042762305639449395633981938331657992309487036022392714192617332727662946710177662501189508005198691890360804464217661101092489105850303678336565022790316656546607356902432931548873117608851853100175260983375547630422268848375810031047971045812566639406466520713236880236514041753632884690583262005993416622239768592613897424974596662527507385160759783347667367948899546736215470427400005171082774508455528106373296860988170724836278980626966049765530273640680701620073527853244270324490083798751240681776522851712066586008967097701459020094651246094928627552925861114127083977888413213576652815223835917324556449512654557073344031281377133024104593578226952931331589002638201216990302005632713772830848780980164274639895475344554611925739016208553806500255844139906232371642341487683098347970561498666452342576321996762644470645115659548669435878516724160741699258990109024537889126121007867232211436610936256466430310853987340389109252868050517669765792809813051281924928694749915453713025506413153843490922232269042666714434845955029822965760028379094127915434960808219098818401889438600331344508315297215290109545685150993901741191827054465092976637227310713438361886606043745964967477278916698730175832923821513482880005217982107232514958257661085754407312123099406447317099446267253917651168592529551822003345666301830817950077945485202665466639466069204860184923606973351219492600070701678323818882713608914922042004082841281028128607645418153820961469591419181622200111356664464425100255614063102748191109024829977868562703831724615925869822984051197456616133652264382204466235265075619206499203474720797404191275600607730936578514814131155777071614705460165362013199012062164670087634698809595417584199345614281865946027537614292109739716928623421454404364026718987516396273691804634064769740039945941416969107033147399513185711543076089283792408040634774276711464065343833654244637532228997707869447690757471941713717159489755152714074779747684802442815849585068215593683468777309033775116417015931563382261367836038805787484615351995048597775912885350151547059576199754559391076260009619300651505592747685846727067689003964802275251364157276533130775024618200443044166120402274095598808565751579351505689017873682156945557007738775545857151789532539600431203040095758898726319447784464515821300534017767197368444575777725769008535308499666703751664248767383393800704340627790007944043322566571185870680256613349571264690408412606995036774278686927947771091532245026337323196425103454813196148350932589061923117277983678414248153916881459407626279802146185384442720616611080642802536012272846935372238548954400018217126725255653281636768946239022086009049186969009876530289515398048133768208830641155274864588042080223383700163307211522271880823458478508204298977804962318653914828452042738855512391590723430989799355015705012266768144043699763595593320145903018989108411737107270228728652579695490317908058044772100219711680378307546905074533994251336987231874165351191523843410398776342939770244231896964761462530424392481334851560980148887764650650217215474442092044088434322509968696358301373435319965456497818090121747079277123359995726339298245613248866412561334918389756520771711401111833773494481351504825626844206517817032060642481870691683584501917190698195214584369407703834113192639512094390751362046602790749109313965513369537591319365120621837174988972387759804357669014089168684269455502065664440519661305407440450762649490727185886245193579292533074785470600497626000834940740604920708600842454885818686426461912390852862228191000076365582358042779253891743424384936333131421637485074176056224105626234127376100129870947943960708370823588168834734167173668426819733285335803436637384824975171070219111987086766312112592868373021561513329419754395664016602930191600409462058861401715186944143711516784252735390818121932843019681681894666645048435031266986577114338690941192782557739293368783758526717884120314116748221275367812461179880606808773362239229695320383566182510598820888872211309160029800239670287435449420638048745036955005052696192626399622270924527090730061188067154119335808389659094522736383738497030500234066588020262619274768162252471456582648348137853881330784629276193386350862342915691612937728755358098167820987572426170123020726412234454203825612660074917048859573110658304936301343195220605082650412180978415573078192914768631408313688732946209346358789229139160414232421510183328370154308383006859144179283846000233330399036898384856886697850157685882335819358438715908284633754538796690716873715814198215346312330431754346558381918924017982005631333148969917455710995794888758101910622239047346514057631856334418160118594697573093436650145345803789658159042547827500994065518242670283125866555130669719955857831436724790262298471299412940929742687199830748645140279185613384520919481403152521439857146002950850463786590564875203143788422098278197017279907431762597192165807369898883071612493013786666743196317741722226748751096025567216789777094889367824532170571181262831632695309215332590088629075084618355541603792013266316970614783059185450504027388437529362672211617982518155243255603956098907244654652653418325806538698003217293821745109214823295483556541195832684300979201402395027475157499374734833508606502600610730479242550824865930154066802724091718158223114287206414297533429577754145109998092753326853920328053635502615915189268981081370366957288620619442240263147069183389582803915911507745590045499830084632646252972481730249840699949044132300262738123995330762054314250634978409753828419558936061786630902428822753838347958550506162112957079231553698894399581780749703604121310969028995315503589006127508317385926968137006735066534607205866361394776869018197565543211415584503261731720704410128437749489226748000389721891990632734346029367933152404990587326476664195613046515708750558248367479350488095424627076517178962021263145139150721339928044936763869943144832755963899392166148918069338383666800797440354985007051468134739277926868854545567569004926847602634757754979295723560805689019087666551125351822184552427509999027799723986422888460831437448713669213393926491349767400018166356350439733451046926439285388235079327513283265511538498655924120007931475523524218186791954498091199291119318674527950080159195311851143829591931442332087054492951703193585539327973210315941956955240934585008719030314220142212145269245841423981980495547444900929970842788987100305323084734448856829212831795551462809062721748881619491472115383953731093440847405586878398132607775689388876927610630434729978263444698286746222138680953156588595784261199896242289054474859919778794176476857356893757224716224289323296536901077135755272270137186173151824674668719853574741200000333953449737212719796261530711837192612570603668518292832782076601833706378233051948996904906853866195824030692516568887707258287239261875644579061121443045408552283713687418109896951620868762833131493324502973010090629800935163790477874131752884060603330996433354903788289532354393683716207997755259253617558865104628958817978951497712318533636276474590016888874806849275365314271813354816594696214896127090656501475418816346506392122499303797190360535376902558975167143159898710163751045088140018124963391114342458128367436710024768732040560578704373699583872438335247204741063838538653559630350054463002463786633344993588533958520359461420647583337246592077868022056241663999030874553512446456399200553177424937729568913505556324047185578184106492154204210845545668900922464233155050393192564349627048578545758205710049911204921956071134893117506622724100007025097189578740594984294763908789436107436762214208044978934954992693313981378208119918446829639291806038827853169921194992369080221491220853273695309246950204893919394094587554287337460470907417989124626775557944695248373414464048932642246072355337163462904525614244600127281888161728502850548252111646026169844527198813523886142522206631193973559407538263269597173556128100196065769227204036008290367518056462580027494318895386808692325826744516202446278493279541937116524188930163168821570304042026485069231654123860866590298815298544003711914922425573334999111815740024482626262499749190909499757444084545108876468386916287994652543203314187936349924664250731692698959938863377114154944575025160924593851937077209120778774602648979927742944201384780944864531295488196673462723999114674435750713555851194839978434035073804648474393927256979315086728952753192289638298528704758564512221066629789712063288432036118833379125233777077619697876173735522278453249152774225378287231910434036706727476687085719625363221731779968859471493765056439065650725295466752469010113754445501309285606262612879037660540971649574627758433666564695103227668650293451624363797849899451524283797643157058096279663323155459896532687009509973619330369555652977980710888512988539295654382797021680493865145777403793508893046050021486427604192974327583103576622904998139801616479652712399890054761507495443688121765410371476109299829466416648081736583741925719228247181822082615888158550532719857266848109288184372138040183765354499979759977686881576939255206080672709877765542651942774206593301780668606531809345495290601911633849868733570420312845706742427194433930607390609453997730241247767738658278262516429589310254033701400993052341606400500427468033965093538883221868671358460300969596040009117111858042282166403935372546191537796199107460579329270953630956689837152897777256658660081304005577027065101623080745212946809852534309578115830461363622117304130201476660481190907298996593010199808748857200359877579908160956062692203636471704806639706569373726035677024837196351688900576742733333136589622709607278113626117304023631330278428294716017444786825124308157422890922654137544266636762426569779308907550933238881300254339560840736167681741945819123059143435970748294452374443898994837069586582047719844621506243428814920165055669262077666076005250697879316040309454022367298332525252532236820806710010869833299935878492038559196811388983068920518882457417020688234441033925837436685401903749322113703725450451597133018837057983137159976547361300082898222680473167846137476207738599981396426522797286354924580961744517129418434399719871496747149998802788699950839721950120704990898975458755575447512204602696309487045004968149834316279518850152185299857349960010512280259777295702351720293941491530863416669817801111717738889311130387580444566491001160899615746168102868979905884612755666248201391518428313175000254779437954455772725159875506391391652362834180478791528805236994833876074975044699310948945897433984053675445486866802744188732462423354347897438237209114576000664226820198127046319782777074263535718753396748937869570966038962006989558464249464848530396124212467963650865552208313600262055841886921290456253496260656303436599809988813036828710115235897778359658059662143311196402358675212916111301997032600867845921597906773555191553791193317460178165769235167210635713396029087083158601383070456861558144977780950870623636299442996319775801385081307997720836461276666311339615528936882454005359576700251834219284933538024859241828274639770629357213481430412325988726953123071866859109787280086804613528875680638643144755694200368962577477586045622843057387100518774276518065381399094804827668925208797480219255994315190399437789102125861116082993291618501677518786801044637608689463438757443704074611152991296970628575162629536888334902963118962795991439554759345785430768498492162680146848781575520246734765892396902751177315714887499353278822416768932745448526523586039176970964165182718096308930476681813643508583242877324325430103772305909095638720324483795945862694514619730815087599703348728940083586727336007336555638337433803564330975752902147160353764300636786249644485209774503021651379693264552921250469297064451831207229945443212302037593806301890798427226090238094600884067744611950014991050034818549068664514600595515214237775362331275866619886505403058554101060215673378135493192481373276292618457074451598451959727533858190045503002849012515184291406839518424550937391559280468910907465018922081912643028406293461003961179930853343435525337541113433129541567706599215801474530670369820572025493667396887498278705178534008837755869280525931193917977371660592783470761465478715088325187573359809910519537315123597963055893013803879027328891904404115243692219133458624714224164433722916946764412992386196027179227657485988179864716148185163605525023380377140823860812637833204350270611769786381289237760871649896490517244423834680257102364762303604295454775597415264184374659631357993727553195333096534201686191669044511613491244984685262203487381872741429792390225393183708192737080413702449372146333191621555499133306764268743337569138279602188500373592651253335050791145913040524515765999904404072701814454883241067948922013779061404204001809918788358182606911712171683587352012003385564105968925734529897271661596896354026223070048154692433215616523668468556519636551555494502615195607373683380076704846074003926091534928818685804149251604490081981007254838382020648849278313629838689634351475757637403100856433009885389384345385276357975354112143939018014716863065103335010552686172787491603433318464318204329934536274632325333076843756349975441872210222750479121866745333474728485910582802034526026303127962578987908034676688815232125125306259680981432038105722803803542242400219432301949341685642062434833836315209634732162190817468841942226081207670889827034214655351576694179486427606263030151739881495570040990997960070095940350329553902230121676838679985859361839912986018868505411787360988779682233351989234390760104288746989062062985299608008380012672692984769002635701259504471081276539011423179549191544170686435687281729751874506928370502557806956824973156007076050097731599427263294903309354771407301023920229964815921561014631533865761189743637749613548304889422368593941527767744576869130165373112295062726407780512689776271755893331263626667500505246276911340063173699507647033591336608285578532758720018146307031978936113418423129722903961011259106042063409086593379231919011518736713905909703503419260693236963400634527165848480475534584738477898984496024110541423167553671259814533012107260329621988716698949303410281278469554753744779520175865967736367917554753309432231983637819602329787758702647495706696005071189939228643272924505003693991176941503172227996470446661331553689062948151765940688125853723849909952261243156463019815675730938947120065069049754476171762147065345384241246995648010363320456145212927484884212063521603118558500860124374587931546649741067090702784756965931281477307034208587260056148595779674166835352478739899478285051881100071525173976652739483695682423534028225066547188521629871399321132715366586061729784258018957712902458667367379692141257825335141787017306938722916101213951586366468966747036522737389002075559028522261775120407863108021762382636426811901950715935682156947760831199849273720357958208716746217055429148272651138415448598407004344409176416745009774684168264705264726127846460087372310091767620236504942983222303656618574312744193771241894076311304848370325083506139304897609808166116505285096232956369632876060996492508792483746403641204767812570020631971493703103447261657525441717732984022956343443563155840946256591540971829420910553921327966165688151613709939384713715514308798159047077009821211736380155909524352055567164955469623147612883366665893831788284860975519334920334731395558249375800413658760789761736039644521957034601379417106515567822879297669009503304545502599257761415460271328770724719014921600381739386528204006346743276466950946888063905998743641964610378952140043361315498820964377616495085358380223092461376663387373307083877634385836624410183125723044779021857689243686374457670981426571776492853878788333355681985181422146175477539453185391523643356882322522006040145164019042037521127572619965902839585058641920938323503434988845259068754550796309616126030188694470820245075296353622219557147663827995092040468795873876188920658371199432308685150637293394504531466995733603730007500455007108327017150534011576963865934647359605545048798004961511360129942547474859076587115258456721672762322843296836574161828220876283845607401213993421812968510904912154306749495406206039832912780704749263188775788207074543755750503370023695180549915527549179687084254857412169734408107121412137515220806733497058795933107279459546149868034926405887658919009253116941224527639622236905524771781098489641337490869737442613786186123012458026767863714139015574152789396238381414648991624254364533205935748029203531375258020031903797893546204365971770748452603505643771640270778310291430493358670144501314584486615939844013057727045613176262593079571749409104451852234202374712601839900477474401012515025097837682926289234055365159541927993906219231467163108679901905427443513874784329321752355234972299449165696840597732972299547295044147741065868427274936065374885773591225575529994249204131698651363592002266777584024190284826042337855841219834998261141803993636879732106415503197586972785424295329668805613922072066699526309887555543983908731433535137304112593676198585326971776190565328341795352994635986508577233436371601341119384308246136301662042482520415071962802149521628778370182181147668378518014146958909108418628867295357772182489418707738393002919624170155840433088198401036169962108957780234490515959143935644604655187604453432434698173314032138023919093129840085934076329273091493544235669435667008614200434257127608196642616671704026002700207917273854605212548557304200258876871804542073644925633528953653942735539527397132660029528830085803836746558675042306907998533985702498592659771907381839057431214922950047316611634531983243682656206578069866529883186556542737875734429295443211691579556025013001563593144780447255362057481248899309632035175089897750809921428552808270714314649900725790891860460872061281692432677864040899372136849471709685305741385989362332146233899424721412506610731738717886784854762579047121822957217028445904768420393097523712968083273439311236956101606149571043664154866262620459647908021668565515664239878077342558855584909175970624964337688817521858257456953058956147558245385851138384060277316615758965145233937728548810810982636899652679185002044325310859372304146889396173728485655254866193800352080170471753381803520186625134951614303550509058956693550605616260351879677281479971978892310998855494084909474398150953701080983081004076978947569979507704041620856111013641460295821353882467685763527329871594709265649555614453992531703130143916978204900706509300649006820613300383977910859998256779228052946665067675717857074121841845257766542039693957985774559312589539003638602717803320610849408975478553520973746062311482825861180459221425845859851836271260803264935196216105975783536238325504594559470901870626221849523366121065168300100318253628491419526024008557194180366268725445028092820098357400645690916975502647712198338015213158003132053532165082567755970626847845256811611691593205183331822493734912047747012664633322025063189255046262848768720863660651262922377193215780979459221246546179172077280762670650732845543546093720432161015336074343999488230895152007406542447411996611772179098087711989227838116668613926835052094467983709655736590536780316885735133194136906146626644882806907340936097771638129287792927726160518738076567215122767376996285577929471527963891398412877597983263995246010820496367687024322487715390809530491657258706654665447035410954442035197673580682239754759570555031485834426848687630211274891256678981127152170766966932969177613426926678915720650358061858551042307982556637027087343760639074291841172276091222922000618525487363131755259499536802411879310267790172285837778493708077691639577156548561352410577906019964279747585292781516518984869847318556107240006211979603781365109872642265367730254022020217525808746724373331210960367010895394403864282959908447086829514607649119586251420153912517952137857623380157622489820570789375606898941663652360290696133786250861933517471756406800717620144530156996961429625011441386611622050226795693702241035744545700626438637560040959975736157819380955740687120897719056773075413913802648277933102731973341192548424019536286833474951811144272164922268187833811386188578066250339068263891117053944253331446895288986502905315763004619235868289613545315389215232677994289458483643556916620655496715882149041427315366212061471740345187591450081708374434986602268999837892333121162435717750115331733416314103975338690884620518749926376013005674189277862414183351472446776268433737463992553427996592854545915828332590885048236365548427937051094809950473833019059483335269751381336828871270296159972147113433686819402759470309757488834232482393033822707098841496036151861098054918781446491750172739984612711175106342298172224957193187237976850234226892690331221438119522229208567262890868180775593723038712653021349739282790237382804608092426612716603759019900037641540296401532474956590391187913595378467561897493735164766047753817806457601830712145671547033566020956411369172290933843532263625873948367235859482464691489424170527907929840126573290775098980508054587205412620844245373570755172306713681119577936550213549793773208634150462384820509497081222899930078879998090028861211687739676845454850735602043585903382660237670873978242683869904959132730061479076010825533199843412818641071690618738054760167304486535162944264829430614559761050557171554500577945995856184937183756777546279184962912962481682022915680090666539060576687137475364965107621225569148151268884653265676307686875181949920313105777364207964859600686927415313015079084598003437744333682614808083196951334965063173572700103239882499829302322652591811274297849515172487651804496904593728772063564094015655220978363132725772583023729711279319938316818728602404757403436975505291072415229117526812260313785682860831934498167848322837917669094835188343533421248632163662016304131868419344097262414461795167264210017145363082572209297532152703556723100361817126328944730707196972792198853405471225515529568502465488867643357057837774799737972725206317312991923769345012911191553506331046163896556952175557983415712911157857011077578448727963820730573040766143358150208166356570621411507462124773313237129365031835118288423339935663525487851130511539837170606834011794272447765832808539978879459190606845385020724344663895169946119009457278104567055857449009862556844860364633154946430743061022649591304791313549235123447713934049110489465951527824039814467510184388940896973776759686487518628554986862846540166577803821879954518160523789392671692997387757198504340992687309534198958288422286398649441278456109731055569996622181872981522727019951944329340000492417692230206187130042707869048260813100170774619751327362366991585004110065178515707675687347953224383907665743999291910573702648099414202127841714856525187612923183374853943675079050535372827593095351431605197030705668739407076682573667966012696047053504773340025658526949822097563313631922726596548518332466501060702652182199053924420851698155697080549867121118660414046438414743038726713574130101388762554893229320119507370811027449967579781415269814998903937318558829187697402240098669570901973275234172060658574789659983015897103991491328275866959668342621552940533341889801529029052188520791858037010358576264533039416291505797949488071958038182244393458046077080977824354539090531294024423361512465859028847180291820849522268820380189203667975449057915892797531324761468608836780714731050203452062106529463465526415911799173755346315967986397982327983235573353494684897920525526699090093920842306806563508047398134005735745342600782533781392504479151963089197774737094332139115493191980556587999018463939717545747849288466831252557148582979203274207883234394032469895751586684232042527556370732062650473110817373291628413617225710547849112673233686444610957666202968212034747834419527576975617014751803089674836195911235523933925089399905421912648713776520674622256046658412261453046599934996565572667152766445056565101559721234423658621362636354026869471231706387394535000762570328637298430485030919045566687910194215487062090393854728023054003944951108992851133190291267528755343624126889011073167417051757782277432965007487792248772513470502127294804532665801392877206177471372580472889323923453106164583744574103710446881510238803022920136013632055175064754536298653088825311188333104159576471767357649275735430675569719512311912913801941356404931793180010334653704291791532488210670078476567391472197573112285602686919949470930766447471888347860589186837683176766870628518368777033877986954689903782507027089602593733446403643470866518114925996920913778338498708678634183523864235170424805986389420957356233512034036977198732667215789783601793699611887179911727404582146819562034492248832413990720575410176401779988082114737500873724524571429283030572542582565710760402568937968915885465583202045497645629716507652390473778112323535104543971765420339711718121055896263300902654119402320650971498162592414791074509411662481879986713198911146439544313383826042544908006091894685127471893945392408409346083066969950913988890433341651670772857522722173768153477433081439258838420114675727725184316017679934202496942312178645661609324440243884319756122316285342774874250445310986300322219478389042844676865975336766716199658808540841767048216971120883643548516719356872366573184032380493639329129248241146875252194628277862422296577996844284786407129504961840907789351366345019439198048684811695550745215826924613151755257293635039912078126710718196791742144516812758122064657854408347332088573710007232548573608783088122403564340487356888214988935423382855682858155581418804215479700702641671416503649523796427108136619317120366599901791009762876990580381218877456061110068536741285807415137281544431625677451860458565122081622283780046945094658050923441025802752448344941191794786464756501881512094987846963189640573477944334202342431681430134719809462115049550656700668092347719341794189170956842018987052416817537794954199236628059620297700649090389840044009039250368337800389403851808878309287736895633673557231462256442330125700103808335983847408501435200067087134966581899280040681539089544705883009657700592360534904916962838888156397206009152275373412185673820118601802238217992131761907079680513034053439889427845995292623954021002738488557125432571376784334190977306119326433145956932936001972129248294596065402508386571587375030467201434907727624844518801777097895275374490916429156042679863790688765891724541754296929357067095910163944315900943589177766367531492600222378595960862459629186341943770493094169167854408502394954302408132226034922611956461200321262598788188757501103185498964826217191321713255642233187631948487077376458020450409281192573642263013198044599695033072307500326056612122574722276616379755861626973637672189331455608237404717895185197165050088897814689375967148032592632665859431779789103341157282673219740459049129354823930878824795341555224187431392474640068228853903482567852956060857476724639321253063363406817415898833987742472864435865995052030243372859429990304341391584276130241720219265880211837181415723148689190674031428613930187777585851091545891040679268609501210524025281446245344930447343231228416958954960170371209266849265017847632129002485761058820942194898460443430684726998790844807489498532905062157819321202700819799198268318288462013095254516184133043343690226068753286428926106775124211407539153239274395075746078019695455660064718769488617919463155735055139900395290612648584140888288386030237038328235164107165969491847161023920050405206343337756665615535753928229973047243049267134880267256131714360197450001274096193291430503990031830496019251305110244408010112709957779233770264133016273886250261000503607029937859476462256780095188346801722138837386703400710353741800211699220136935028124757529662486842709121548073909613705185448819490588695536672910453682908232809113266430521669015899996775310069374189768249881347559738296340300130306398211947621027662543645097135843549456264305102654068614767057210814596016294234427988081649837366488434391240557871284089797781422395130410268495894821637223524857423461317662064531571530492859476207996158895595985642797500000538254419979505653552575899989292463839338852050743303454677933743361065685963808841340216575225822262073215728017528812956357247380632773186192495798675688470251350603131598113471074059163929145109681910090536058880816385216074896852608861347569418968736565179298749960590225009021856598080962577218719847237102645029451163640838662385120154428174716222462973130238901861626887239965386665655555273167296855076729402576509476439402834378107159808790698115690386683743805947623830964858272796165821793783862427568675307167138088849182136378835704895347716796201536543808500094905614056439218328591325110403231429243408421552505285523293592643141732097352148552303961896817775879503371414932566583311918764046355939378649421322444987997518728626804254325763663985280843537277751014529895814716937054036884013952177037938152773895325953040974158894631739344645285777743471690221604485849698925347839583780990184892134714108236970480073764044619696390985919754309586783808903577645861346674176580319990169146117224285972001326263534852909507890051168403628847030400452489436438708542388431456908969481271470185503834173150624487826153076606113317250240145553078524485273473291719421801215166790093390660468840157714000605704794066658336160804607993948733525870942377199193015880957155927716718199301330801738366101194577447762834527920294251903785319509325060769785176899638881333409334807975003762264423975651217741769852452318429478217083804139966402466525832530882406883937126667963760543618959816072185811282177463969529892054487740167058544511730052064846792129944050622146824235216739800070823365969975666401752998012172708445542666368390582113375758093176141544426204809471474223199053895290176196815489664085909294109296019251572583790321596062945387869778966360291627986594678726534886248509571080035636073815813123252337711254290992523641205565289461125389892446497045074311439666673569359904666371580282201813200332957483531950929396515732991773160695861801585462216101549020000101438853677632856788690051902922392974388935491177152216335534228898009062398264046063200375436928790555695537624671693024558812111209198756624801893886167846726680543979970855886202434280623341046778012510242940354706175334002257551106059591425958893661614966260178425593625979474110016789310184518053433234226631496329069469995073329734262576156310634409944620896684522455755655855996282141929064312594568353697387007665701303140244936853673022923167288282691683083919844978173613327496694508308387782583832208557813641831323354025266964978128464187463585761902814772674886572523276549016905098103643348054836857294119635922993705150954199964116914557531550147345397288526603321094351167457764622197331492459849337198039416838073487870742500111785772704247070020065313825277779274223126756516468627243361726013740449559484981816610046581349236966930814240277171899979906145425959506080547651136301163646999568097542390602774516611900580079351243503987813887488158164779046824260621396759016867597409205192729585473575473230677492175315631090044068164167791083050138740198627737624103934620298638274009358658282506413745541921301825016683742334245678037043650105366909579241957488311167476318547250570112944602166478531263101101598946500652682208405986962871176523138075058061001671929108630894088440058086302960074863230361454336645722038285680167955991151433029622795122610661964955101279932901259082710510110936877746556497555200172720757786176814528106710469044699081243805594101325973858083197635670269793729579528379852742805898912113556721045443238930328230203638639656113152384917067065705839169453067722535369554055386670510724046989337423078299311261725086307230003520218492124755413495804338415349908652315821218840788311331037723520657633105917692592838058472323656625932197856427206218469767579369157996866472877556715095385206255786582939631877958559126584050291369741966573582664244927575037773762060920140646026275418452034911037997125155853164631732632498166223261982840761816594259168295418499833642266906341058886755876052188444550608803085274996858344585962173129967855037438537061517909492368332744801067338748624289612211029258968269277798009332244668020465941518576126196201752242441103201230118541849466963877820792035874483297959771781464384106336699407820406171721382082939888301204801568772163768755209609556160890001614967400634279225167951323529023558890496435917874187132424289593046280822431458183047107045314706402517619708999876154198312397406260458645756181104663773640085421905978497439520139613319156444069119892472984042766580437120291560861556806237411358969959846864457307260100785712259162258128824919468457769233833962202246917396717505148687255680274724119273670641368786439811901149691806046672421968795763714454781591882922224498242734715791037046492350173238502282297940245721000488719526432930885639047643768276188887726777308916489534121197974440733267835191546304380474690255390363118835769483059807593144902848472833994521570043793511800983238513531503703613807816686724102582701512845771947193774171178482993621062079536226003937022440218825559061848502029291395804897941626123802938815041980838535560651106782400707625060819809362432196673053646497375403509731941814268925798181586475798375813804444275607056033547872931800549194636831832324407441067592981471273535332898356764990950754003182426664509936632956012749075135928329254560278494856368038675314361741383943721593703113870603699520848963671586760027617036764572487567301789081392521923422713050846890563052043380443405819241003255426953039109796043055949959263689871281712125689127596706377944012898783408978260598510373831510415938386883141158818163295968799798341394650627738226441122899977165548035885327847674772959624075409562425156413936402397585240040433158715518592511204228814468725727233464707879766261637666493340490322701481428196175320034077628748208729135889936914690978796072510438208777167148059167112173396502752617037790444801355106649138647463041299422420309161395724460418874283173182381504004831026354704285934475636033136882170327865351133801420020962882146888451717519619947250384527598559587236993193952671921965800490367317609741247281938411736975422560805871232562920807764333662283688191184987652769066559330568754690130164644971562399932569681653559563777520321383523312687417937201515829018376089522165482851842588951794415873772653612729604106289581015195793323180416839946070164966627153316881139754459542001871549054264020651945469188976493868833784694978369097204471948222038087520430136298906420937391240277692852211664286549642706985575981918191182231632187147130557279730164179337387866021700367651403162159583086768426003923750182928866545666954940163899774385993483150063423450897698438103220099320548356967679564344931384482877304471100239838056494718318339453894528614552149063938718157483443096989508289257621670721054834651337915150145986066148488245014599002429150027322187446731999283542058618462990153146991705545662745277242824248105842010192639238617026666334462677120810126426618340099047343953951166582666144684774599726167275515940609911364306279730329407638322447484440381987321434147220527364374343891652756309273217765685455805003313305243242930230417818202630779131455109634273588420460131423757150283635546317180154142204017406366683781675971714638238022157736464931553142889456931654983927936347592984240442356738364419252334125004826425065414605198833190727047664619259780791078409524374460186116986636071590382224127229866040563552761767164465362423515552030037621329431430764912099053804764416167239014287426086113055118742504401016507586867277917141640638667368450196077873559921542525893042498957382275758082927347053925188982714019538763745353735978624666864986890981676443082043350848289787994990950830237719764698829197170046866105724231499527421924493818472858326215854877232750384229120697816612077744257315718488155630252766696999288109648761973190511785397712414720757699623490525006910173406112066578005840617612055182581502077566313913998258066254900427032430555480602900763394924673370117770562204443550332532432070515677553171941997344073666262664001915784713810910797937712859156214628135981365418167717514706117338649143259338058746260928652249591597923309942105187118681938220092730892714336476358984088234547193180686472855498845463875802882063555801894922524129281044035649680045538512966990332206534783434486538771582208290663787233672571907415758336699980896747410575127512647269612504024193463102822260688164336723565339008743521772086589274279126887277719276653734383482407901515806793872493120054547366464029696753540859441033250862220014456971392883363494123379539076661914115985110849256227369716626286426765539887510262013356040725936604542764296577208183899575873288190100957193192548072698355651204565033749659926630331620830725913416712848840095640421166317199025948312475474878060981183343706557733612811224884850046638455775369803480102989718956862139208215614477058180142211945567657514922878748295167883346068171895418105951985995153179139738368437955498243146225824211923524656526480037555921609786496341714517797764388397402732882359485817665105535325109943432325694301739567329267994497359849766860074633839718963634128708969053710872717900199931728853470619163010592264482114905323667270025490701063284058816870466888083640005682060456982753696274890123235292336563762232434718103748823667073416818573536094824352219369471395277954883773330739237029998908805920622514108222683931942913124450866914381294754407402605188257925996255258721369816521607387971520200529036967408047680674569407382242023072433038289222850805524096870417701570955698070579695727001723795936895295242468800169752661245615285473404040369194673802708945120376854091154981823692352752860221165283905021797223201193049345546110320796637808979740732966714767229116721359119018429331470956756569033508056599500143276284568346524996154418532925061836875253798157734239873620192061547574069091341917537160076607273300604775612995471923090024742325591113191598262317569655911057137123862102483141273733713956941193223431873525267616398464614388325285595928333060839679342617769212617953689014769343025682375054999108557621506434084279566331436584405651783921742288188260784164838565012524043735372655868386287525701166862261874174592622754320520126914325014306260165051042669813994622501077851930883406604390134610484887966657969853657334908867984474072216387386870898156693271250185252327127049054310551341028431460137351817051311487153877215439816856592047501048855025092775183286145778805483890003798100146579626324905484678831544438914246901866238452891393820733872106637197348811179804199693589232078261996627221878696058532268734610383351088897889571940268914087848005710137524390218778640050673069851333673004875114775964319826903269391887716648880009669546756047383047865617530782193920976310262267002252144092808639637532781028605467619516381101950563118553163430857570669889658357520740417675809053226171571676267887059423984318776350542791812688026569824471920494268738295461666939729197854136453885787616406449661639015463782182289425154955350628712489704163732893986502916636485246057665146592387872761086822136777853041305425066822153968444434711597439534828955975083275603393515481016061101098920537197088457642483567686670101865228291787048045801879862157667546660591355831367602609175656621986727817637263657600690190557394855080963502007840607679496773853903686725249537652254728105748874321798936648564124676033665067586547836948141837611060822642061325399643112651353512604283145060672679324212255348063376709041086180098882529866789088709092779954895465476465322998668168814991732700130827478701012877797767265258037116013953131484185063181587877343278225821204520076035271527713966688120558353651908774647835902297933945790264345953273482198224813208619672707634471373589111358588303043369995988104996502169816165162699891387338797462659138803944235919171561752816503206761761973666972451885169719578789175816206216169324500452836843468330992374251618896351086521445630636948200646510161428983152888530706005772166627779831779205842251886862733823933287298640157633878934826350507754535138965087588187367533424583087410264627287986522469614631506526688688621027249613792089123002896040094892842582516419596965345572806126902732386522722443994356298633780130854540025138976412992817233821651579982468560124528442863047300704395221377507832205930836130419979935880454808011724709602111656843192699309122764878668341637502360722100122964725512807564139088143266035453439095843471564086829283168743045704249741357610340015171512911198219390580266610399918632052023158878182033910618042996374727257862662717626389277233169068248687534415572270230636005647050330754135333527312780342871556645956526068573739355410298657620171879073766917121306524144557329933260729704051210765723279983906268151196113024295193601000284294657968958357904052849712146883994409261450374202386552789350127209287444050673543702738272299667624018588218454663519152920353462569094875077401970683333521405295268675833582724551563939981734984409938235755468593864725929842640942718336892734530759214168380474464813028322331094406459211272325342263618379929328735503754889957240146661077741410742371535020635104314451726229055369528740558454322746997281870492092646961308486746232696056788840691544858565175891696127840857274952502849770442515676795868788381862338801202401641003474799648064528502391102159536810401180819254632587025624036976298522618541420618949440480637378171291936131667400031825454990498996436500512955528536907320324077869149248166231172897897989622883285796591334852424630257577518449985654814411343313816890775365794142921948036378407064179015623797796086230192999603018727795577014645737281914144780399615028786307633424473777864404100769930457489491670174196111561606993890427976975688532599217771548530457336889741509917865034121907964390559498770526224518080181395498257010635056565160288764271991071002040163626706081316886856622866331416917599266394734214127895459675755213163793231096318673402257236531913142634267736990773236065193697072725778039984477416502508300614006804508868514517988142403210873542456758736302808030040530284837323506199239826653118458909749592148016271427493349142225399816021570107205372874641865101247153097565751269769562641635217813589998528473853624439641588359756816431002366040635850103966470243235346928191167839761638468841358789782077805616095708262742388504288062687464387215476552768883095956708882558458802882083296204696192936101900318670890714854420969159007032382413112215115067546065407196446811808495682728507407771158984541257566469482089693639350525347394207336990691509411850665185114393866564415148675406066818246732350352547531055731209693770083311329142939660594945799922754576289894290077715288712565770565720882148273100433518685828932261596577270492159461962639069334077368407053966457263515953816344690082535161320345929051032080341127833647517834443263266627727624073530910338179935437165085637352283654472476318879824196393350156287791536627472820457491098113550273142653446074152209338189307047932510652452352088446699559356195319372118067670648213048717729615503120067186233213873482515771741712960753886960330835956654428502633054846555026892965160350967064878562709302590430287263265813488422248747049683429966444942506744167013892785995320933240569309318556255721115563062408812949679060415873997760213850639303169491738132325210843759778293388877388593777020539841388139943840242665351720912041681358956023624818874307498354733436811028585987635666798764948619997237529301094458846135569150705963675378870002675011074797143589955703539169584910395205933974281461866603046951302067843779844838834359220676250358948957712585359792349175456515420038813931950826978940814228468390187026520587314990794294716753591072134593368877205534460305765828957174335748642700096512464035637854189522212817360524392156770400757088656016040310858347123935539939027382586785117810801572486229568290738584126054601773677491843170597723984359418630665182957792810050428788153398250891426542773160992813508029486067168833834267360837005336900037063800740935366681990809072613352437278252419263842330626773606636781961441602990864884702377002404951294610060140988864415296649367167954475871992398094056843607692040094673498384832317616017378178649784462891277162115356529824232956512971668090294315830337803771833276326270756646812508101886300042693934166276315547173516418338906388640658504874192012927702846349381137750119641519867687359570185913963240389367656845192352869407512867896870200991814241555641970819490674069483113824046498948451106017137660709087242132016438121803314696731122350436821710552336414937436290727482339353791616835442977450540694964581851024150924682941572884843858649249114615407383862762791066588020545218834513958031092700790894992620930077285967108929309748921261572517067939197268881596425806542495097090666936749303033518553620084876573996549039021665305847154948406477277025791637598333606307543604622292275743514341387708111426698205154195656640920049609894435665326959431009438488692332215072007697803248457830811605535376429228619659543955467956743580561777922481784750241541743431192679938677542654488153271819674376575240680894217027104752565342743243465940844888644722921178586628969892870697652918999728384942277291227082888482183765914824857852250655154386678635143531718998967008256519915598316055070290359480405132215191550613073707871798008714613741009878196848612921766826683009527876103946352017505225178065932447038496809622173454936247363587661544569640312510378230188765784048826038473395466278197306662597562051714495332295363643783783900417245934299873194163597960034405054220511411456433627418457655106395090674835532008737834128091516711991691483857378723558118307555329997979794876104976485157503315351264690434841180214348385340704716127689190047080213707025304727177009177770282436271120484584568336276682902164297719779892839147873026304015146957183341982201591811638060453603466441872277217721409733250903836195106711825245221294976132663849832108113444021730975161006384360369167174076992710156717313310016597437608803185693731400848232273882355750375006420045427053747697872108654696431442344164478110591438832291277356762562442556687559306342482103319530725625700987163048480278341223260944711094766814356408824661206552233225836340784236649241909163215566652228402127594046066399237829681559107615028292329425043036031050298074675352455986008203174712537740860731439455374608694977513692273088165329141599820841307820427344388729094983073973906478199788557385082391988669607698032886792957097468155667323546524197575003865995584136780461048248546239410937495422093031588424845599285228768483622375821837557243839468565338914547862359727074688210417534242838316303579275311049285172898313988073300949197077005362735779605893203431626972400037749105530361803474623641251841519879251591269220328092764173844182917490611604419633400895522339162028342127304121498491099313654213283277525582207839319779558075844470388894905281602355712516677914659600551510421155702450328354486198711453781485740273529786542500702116069267601721181830107584403520352966777684193071367977560678262904302483201788604984414128428659782567657578359084781432996786879260936759663368608191614616921785872024549758481362516101111474960585784836416542915414179422243480684389077959217587736892758408474108211971950883754191214395978921311569302321210018694190555511926783050473001017161916010543738748460728243262623894025461085479241556124453273493755530425740506168309671181792467564606837569295561601551501734412039280065957509315060313398113123257745003719498191772224447633638613819725311841602420842411692356735941144344757392314393434808260009266277969272308182230557356083969928535383935673256501641798871572755212167992324772583049779069322973757528915717787407435466625395265992063606914146790976409748007360722391108062747333695323929034191887684696797706223988996593620390225314178442653242361976240818519784930507684890768606247333573689088104484358441902645243231288389594846406116226386278260690353144480999690115808724819629002399447060740936726077987322613238813289152635077067115636277911089658412487776446555489553002310050808979388711269700209091115964734916646401143630453222982048462512727493888573569194228192761226423456039601004194606033708434415553306252328633323772267232912948621844227182950193602486772590034559444054105132187267190301693368729261122748451738414553290057604802688780262487847446065520721830473522825432372983420496374902288034357130065803341059682179455723363448080438659420871617536988239391883614548373041303140694097777907572536880219795337064926481843241165767644505728094424718229183838396259453881823818691270027890443847969580905891443382278575392509868827975333019140581184348071970899083381854684214899169503366991153467871029379954736595635652462599255593245307908509055108001415441412421892593441150996316703693857835384180065008057117747060530009873267937344722833360761119649590941071875407760859539730026456811351577257078681303253801257151124661667478636456728903880334765738246063914204804718261863162255632249954136663992058706815012316222219049075664957330969102411549932892074627246212009489545153305774202755768117883778538436732798355127380443466664689926291212173219552065188786716725530861176085016810230292022182427091637089012534803495063063100169652644370429189658107753175539208990316280224343717457392419058033248368104203428660280397895335766677545802593072297344222637864773970027557719134362415594038740408080271634510742020680310185400818690765600092346342108039085671165462234010334716103053000702541645534337983043658804571668373426186994364597557990550756564736845015345368487502173632261617780143580480545950189717675313235951764623180538209104727284027649652918098669968382608694082407139047968117323022325781135119852882931551023317977802202972558936650770348338314123478206660625892507122438064901993982918441359262541977108749100238118584951335521844739451733257869338939074626411883693706512753274323068537658301464869740990054451535124568510294868885511365372994863941937552039491478654991545381044319885978719218369365280923867571835275983588040558447303707238102348579540224134717854053445777440190337205932865437048700374996104016212953470028426011802086072565098010752949033645140553821791014842962117058840473681991250949631382272621943954024479347157033451438777838885155873697637705054876298403593155962472889616797355556729002200172211116810530699755986691154540809656774888312445227014226478361670264332272810023922129408093673377206923276648243860345187930601067525831798198143388731599567014302042749020187335514292296364067592064849555831492221445649911561449646585064404096547613908766566885018997890876100004924148445658620212704770728933590298832671022616034747751186133837222241143278917052073474078385953308055871868247421160779924787859340385188145002864381536894028616440850598972602747997781045884422343069334916772417165318076887557609039186226728642244734138575748987808154922296980417808909802448011872404480873440355856288870451998596427825106998899149804797662974210806965592710421814692002011794614803721842674663035210873892806609572504855230533690694272197662150494837082246603370706194296968394979164268724128289613010181975306391461188765171468873348647928834381256519855477754242380216872941413013718436979896623125792862535215161754529925289230760191652445624758959279141690957376169031176540199540366826219385252371454056639820970894185396116947993555642056298237362738699804037540751439142910442686991812756805900159954133678038494605757476294596624252733792050796998450080132406958406995474460485746631872519172864667772291361762650742792107818669594918200376166456210357546751642625530750141690527484492736857568202418007616805137222485311401444354596086225424314540363670801316855514902630809038874051013683574860554369309588069008054270576889881408125023164010217826021895886672632674580625819589507353441015041513335293024792203753431536797398857040016749037171235744545017755580579891315142112322664320718873380310006612054692971367106909873527536417202479536312218750208651168029840329465257323096075887236655389888522311299727701692124376444727566291536939665331048564864840872618353902786344108601782120671362512269374233522384641276600575762867878488724644668104773027639795890702391846931381912688191062886893333516452169014284456219576638180325119123986759716859722822303000406596629603094577292417871147669617656457175450055308786346079615429608453889155055551286255941817194308827071035905462197453588587666089234061520043895293798576333506155302211412169893582967831859632658275327640745077169594164336250123198462966989935778569827051895179138779522059531335989143793263811372843208226098548290491018220490454161146976135647492626193729606301660639886815354157667604115854329688314504201325293935604712637422042800178252094829744287862575679408244836825386631615979837316745104946517080231498233755280895658857840837741850052258305830672595540052182027939049696112657109327732352872558398115184383481538585085803169951357002357844718086414760012516344939015036574484615626803113081626754489281599242089898661842905768773089827642977483481345071159016427673106078914576706349850026690691605666538437685843918778121207722654271856098392526777221521797726040458265525029999776501144263722167680270013852314250792663304707456001312943703761903349363401940427376365549560120802054926210395686859703638369435208590905807199946237361053539283538685485197577216939151931900887391260898316147878532364111146563847127745975605203709563038337537221920585833340243643375263428435317407876977379921460353465240551073244774262515497792176461056799490160044125027350151479771242873101043279586381512454664625527706494157370509533781391906054149925508055220103951819496854081776786676872283902344390090287753354429931481021520659051213866471196138298038549428618953922590874610591076069180799870053698367868289337527631719685029485715512220732807763229050522956865328119371745227151444180383615755454041369909280050710173105708499809081011241355474144782716277912363835512854786381945871551665640391242058636838333406122351603102376246224172026770713905452378708521866264564037707413362026632584614862952937498763482558682182912971693377184589380723773169698438954191214451292034364263683202274553601503464392389328372738457761912074071734206542955969814268524642670724949173649643666696468467339521939834182159125781897337342957146310459864485518254946820537323482536594716421377891525878377259698103979669936356014293311790788106894220048494896937781593097199295981561594204150394693178679053945512998335147097730939652240546294262891110565067540524583269813458158186068954718930958875100901776832154235057476251419734934591283247612018689484504844925440657704071047575429169376772951738848726612954967200621685404331466045511606360564685784873272844909283746283481448818215399264973840740498157618417861825303730256146366817199493902365517363677920473411616570662326321697042280891576904000496602445841968568760661377162199263623341468136709850861263452716151285244634785583366210999196218649456431858907782708682766017075442849096689932575704679285176354133906647465063527630085263466808251888403824918178294929000350765205796155570921265643393719232085860406733071792821782524367318286705787990545906039171950348547898234341396553993135433828576507703951922637175024083301868911002223988652267174857644098172070272712642992164040953220586722212035297957994461351104023129924707770536881491221732602145078284671820614511225953093578554675154448677603272930627782082377521533781059876106146099879900581218216017560925471264877956987575523950634433201045050747516392343126437433792310123366707644413644865060132184743892774854615158114833579306341612300561597445428138757137010884951652545255629623155653412749124283353241865998561274026545803836165055042991818832732666243126513030633317991999818192558469406086360148682980687977288112225836706861259910155882497482669239104472277788474962427612733819018659423704389576111899077920502386682711055195115783565810709161532326043739155368932475192773640935759847503779183284108058202130649168623554528697426593586124356392441134769099866826575285261980774092215546076418923476287362938249495104343911925452860856915157662066640840543612469906337172528790582669141043461766651349054550750100341336936663480028852183347594155536634839848964318146815416600363389506767526572865989983592658241124537613649045111047173512763503669916508094534371453494616821210472306495409116942909019201876313080422166435963474834498288003412620952345318912784666864397745600137896641367836334757350895012372208275087030646341352343567852896326527403164550307397084850550040231588071382001950520101431973159173242019253735790427231814164843504957839945899867183192664890421306927885794311039091625840938218862812710909467874573363992555597242609150885385760213496832181680121534802003976636586177191665736547762435651472729118434504085208220333882551206695858689731577940521343383335173766081484618757677793319929706614066419247278193613108964343900286519543920569614247561080535235377078991239321503033506818732237473090171783681735460361601019432658106781854491011255008322247050769894295373121980788223818523993290873583013599390530753116581961403984000871893084434730659140441772807305258670212676237976787587576457541533047167014047563095389446165339503786991702801199371941572611279440545022516622709023390425525272906154777324411773091930802613711770004174692562642480030554003470354125164215455236531641423253746081033816954933034903657814022056099194293051977335023008559905024681146438688942116319815147504128474073803563404396330202511014997120205417403385537939021706904774491470369452737939513037386149246833221356265648245919214226981275327214899548176985692992138923346693183358924276394691695823631592339400535270714321649841957020256536623539768786152469984520135603865460458683169526357804637153208030952853028078985949149871391521849944211245848084430822555322513436063663872167151865416783688045026010835512581051691332263042499156776685020706567927108334326667182396586810809100302860036151928670866459609821075623898838542234487590633957301247100390325054383843754675790419968941773610652357354751901678017683873346763190586131144756604310496972530236277339304622002989052121695504860458845023913440673267562737747041932317002838011012131538258150181814699563088345159705496122894653681799296921105325556655019089070745550733568763145114260537934065132759818541215986561396476120053273232801283022167684215372866378503976653614784208453738611739063217082398669751689665252979941062054205644091506378958502599033244156509282665713703654940008934619870736209422694827342948672483577085963300647952197808730929277183886822107700949641915882116198934376203467062479641331514180967948420978567448968747667698024147521774153095253637026259499970671841695075013556038806901343504987288554280897756854689717764897161016461910330745969142916879788016700392432000268643834544216093152941790136029994229355119294079587695972905269374721596005604883062429686958166719859531974674432001825576792214733941399019197004203908628711149447352341849772265342698549534062017794570288091879823821449194349779470149644283848021202832401963475538840148678675533103906445021108664684139804011999256557473368644902062092257017912171540222572669058572865268467485338325808579163315233123434782093273622555781067182257266812479492199572539215087988471268823250283219181824802425711829688451288830380323817250799824781801178659916983579900613659202565096966702826749285551426165788698393180383907421221524454913647098042185426301750206664201002318645780298476191203673174692625267110716761594917030705857414098602627486670501471725935528740333693440543189607353305320477814176122033658133163090785337495059414706438043074436093371382880984049292209030280053785429559639984038330919549749186912003392353484520092745921124801853919842840010801391022037783736895209438834662783604761123762068604605713492569975073342180878802129899036290297952186910061352234103930960031622235449488364687989635194625501008091970593578626563282297611936780433514216774246186454728221337194327836368879378058168557427635795758117533139750273319539459072986175379442429364762719932664531630349122078540359172914231374591977190650189513164077234888342390025515716859012288157007365676620804450691750808734354774174326567845276132024669414636330555774944676719962534395485275166069562849250103959333414051910991108237434487849370835139800713720603662577775052426147985592882953008716133159523005707820018151263806406799184871679146976295242746400937736028809323343746583380352553369189711124484794149897204467008221057053442048051462622293737740948205848815159959164062842769535535377398549640942675188957532203329278723110488437785410323653447522573821562773707716430850351105794584696282150893447201993853318107816818454441168377405150051157303891310067322067453771187583405477535491965768450670591041768676831388314822016601495825318267502854799800627200476540405709712165940946079614755880452490252506556212618333106683505595722590309426042150957128750692286569005383434458070959559448032868203492904182296830516574581774240642971434172332886359665783436342112748458400542603171156435840478152120728052637032253879657428549787561869250128119269768274131436427112596423340313263079477159681962992659223866088403912165839860888310764052460769228773455421970305963420497453558278566216076960424633194660946956220864711830466177155500292594184960805537429863245088371797619753822871607560907999227979911032327576310717732378552375966311094507502286763867070099871918330344944458363328830060191080259410023963772326214129355644185605105074922146200889470566096239899409122120471035338816537075966162324243996736326023635730693278912413048960118185233837723456750067393493663575810848101913405519405598161554539458662224390883588413878176243984775416147382556260372423756920197555414768917334331596383811714162166794784423862198551807590852995806801460481273021757554346981628956768158146176721726029754760213312158595829464908958938234220554438719626754419827090491215849034533175527940458139354367702576170038233400201877359970464145883322008892425410422834460983301845941714038422556097991168330547777124799910714876390161929025219296197559172732167142468789348722490146377537045493257969123037200336555235292725497701388284041355277944858739565244366297276836077596283917697410471466831591908830521310069989714716056510581463800668238481884564128413349061443671169089150281157498879619496509522511703422143236882231151285063534201719765193935952664233462351833879925722245418595068652923026754354521047211302656627633799665475278778673413423989713910701550011218002045020209357733124323995654711459635198702262395983047243103892796827353775378398493750608151915453847352871185358869561786915981795510455518744820747090202147602045395373647978598225928071654403352519815741078359419627913499237374589046034079293906618666818955259002800141898737565150059616759415084277926143667734516040920776519480770735316683463889289180376041459369579789303650949303450521181073758080819313363845700367822971704183087256456980627299500014064826762408385133601220890739008592119221659225924075442896048029854490165348344239441795145637107639581813539682905365526117487178872113263218115763259785486934274683920638552139345491061010195666662030014681905730711235863900543964840045704816087614296506678717811209337560852786310527692373843171794071495407407854053579684857119976665773945859345837729014669688555195012290531291856785294659152935554614318084816131264407055603867707345125704567471624523759750502171773620990396863173713709966337158485822175209223003213406019915168281380253335638722049912094822106826412681918137749106537715642044393673251100461691891885586220813324267148072166479045980880333101958535512921965572286956627820592426815054875526560195406688575741126346276621719596053834914799403801423604584049196542247462791440045805693383630985564350702226413997165102999802129831742182316277810896075002741692222330486273950109223174258559818293028586361989285596361213891973057022006893942526094574230878307955116307822960961937544669979356712984722678697290260393855928075208278791751496975465790393368637659571512750428738588676053791247970817334878990239246004868386006708249828064229991511109585976637366764783820197252747502978742360968991516537398091043834373890752275538150660996563638785124640966630370636543134446871718029520448473981900905029287242156472712025217398031802484302838262934979151075130651119846777905438917906284103640754568699022826039017054006085843769061146558587687687032501460061344255531700746781636507427962904406988476134863774609799854121216381304961481654387556477295174674629282675329378862437602585051949724421744142090840912227082096184561214807716219904136963795788882166923206491544504323950981513982385523793813709640218509172499920830707791485109517967551401407195233979087625146387006818860880891519379797090343374425495545117648905798517040742481731730528416194911726330503831845669298854405279321782071250037967015982566793751713018611724375212862979920159140645932524687259024194666721372262401477921137094425960878221930710452363630280370175297320765014567066114420882627203639132781118225784217819492831499619097525291126789628989057086838638612888644775288939659366888810032096694461425270160187547936802078945214937462455872388546715477786266693251324931752617320861059863269491454144999677923145924586846706403137954895630596920365442198867793239681359717702366448862737667618066163903824829377984331025153798690910090450752511493125118241067764385928080764342168296792487535786578495459660205240349864512188630438151183756744060190465203730108552020840764705272979881790883466150561061584904920513055430792217421895014965100226006483021867748103892822087464688037882263287768611305321209534620102519834823662218717396415830765061736593542984765237081675590013506045168745618320263291352091940294357548319817525605247963889860684071432139348413416805230740982590912379618920982618122616350305675086950602084591464582445178079136372585474691105188102110766199846830188284609728914642482374629674371289927600092403841809331498017022698046995181244148882201837845652150554947025850160358713135170469333920269293166683616745968823341059859285518625489353710696446595577216095648720220268845208102289473624095512860246352527173274047256802668444574021449205297274862216453622392301585726481420079617070662140701532128210131807973966484538050139727619503216004204430974815357514265907959434892523795330121913739895199352566486075362118247191760511115873237654049438308078931450190074256207569380034510151962897860267891207016551912302785275518515634454891809020415688491466829705593456376298987601518263064705134890732611438274334122180160365293645354342183227008819235323459389686528849879134938075243845876003722219250863818267941459760597545487850437747948422838079235916852285020122598552879954378921868319631802423419195792045385421901785646719685771485367796964951867861955659251911161954340327969018837029130353435062414109172915483718578865593504529111361856349720724921368719403814389096163830949190622440476591760572724246980110292953776048070998990798476418981655260660453657651183731937841861748673825431321092475397525843745928156401747656143148109339858976812541385403086487726129037207145084361520139988872006266894400553621609167788511233809917686092283442426551687716816919177023605360215747503831846815563505317513511960224682087888233515739016323293044889676510405974132751034113191789695525915538701639109321822462735402618983156452533611665382898378571677854664622301381535052608586502888434853254334282723136588632055292660440188258875360051082985042842299569131438520730185102174807021109713971643012401177119755777042664690166160983905934989298540549568220711487823287863541299828398890276979819416784170648399309252188542565498594590897102196489869112855173047381325661047856566907321321649075228022572662093868100681499894133146418691093691845562132600517527139745648004301805873399481830448297094006388984234324457564746122783611130443018331635471327893384363121101497254925720309181711693600225633685084978843111971067725337120829660254005279811633400473656307566025896125612280611050479257606467351918209752199183402297986292473315170662942358803954387901043850756898254794349297961416337080904341841502913482350997384367522428103075989185437473503585444392587402973856396811775090443993436546659517699467945532950947200668143602879852377392186594077648675733295422344890557073259393826774887922589971963340892813475073481242445911610223581542972744649454433786265703845678894019547118801950285925885196538326204359296827823351448254520742363436725617169042014014438820025366816402644556761634486575608465460136462462627337832930271705218380436119057320118302099941204824169847934432729509682132044235956650164490904411162635842947545147698746494337014766513562190076176155745610646716274308864456908471388539957385781599113656095620119277034928763860139969181153806243801005034262596392160919492892121444524587321148383393088254531103471111988252460038777424430709446095771619535431243440091154816247277348281234055758159059209834616376360589009483948147553808350639382634864762991407825362958316893657597592481227035413432045636979077521519121604192971082206372784949422196630705960633999351676515226777991380854500254836420386730038029338719635080979613274778404094131383503908659595904427224917039754444152370870030341256087377493401756996085916897849677699000577227367359839348265712704743318801663474661959025827360766061056326434794938596070417823009570715281522841110487568953353348878581586151693085895091189840726656088943180697152540265940217877533403099520637709989392339635836652103884846333518739702313544518003443046216909589258788370608807504897736355955133090103821930831142630789335987222860719718955443938804661848250628277593205944364071124494520254083158014784953830936048733287271221671213193025357006102068094262125597963926643687338121110024160735449340048178398292664513342310544815555422518852827540614898717650952249670163585308044782278326295263474383855258793822834733027087565189158340781209289116799879504367501437467056238742580066931041167706418071842424245790010865235292994686422373427412194860755714817878410177448426411809035804301900389319969827158746675437668731605200352696300065158990467242031452062515415039971224339287462299921433309809354299948495731183585773278979300910152310722693103158209205374271778225179972456501348824681792696633709634564806458938647439675069828012787288476205248016439151538777802401445917994350091175911436799523447864284587119317379244289016196610992273154957381996636669890924021543659193910195276833390367172658758108610412377243823662057672495097861771412152928530648659270980550485405279292242115789075459463157732292899179289586706649002428125460032167991810079084900830616625913942417531686862998104262099522129751922213370501412364477219962391290605534368850203323148057139041160670969790227714100750910821756539870220095831542217371462585530749414707586934518227763953655904904680062524476324815830153592568102237280325828025525892569502788808851308575757124255599693833062569588466064296732863266029576698730834559936975034137203206000293622778420945834463551714057401249567065491633075645656905137540598355102498924051779581949585075536160746870247979665444599493917347508936813744870603502910197397494879684344884110523527205118447131953065105110873967789601407651759047473512128434605458909328033391074563765440368466036364374824402862153597456034810684028507252442123268261194360163136523146878850383902740984721794414659071603258700629332426123064099634390151432027207885896906672176863964686029761508867365132753421275163781522105132385117064696031747079500767562910936931957121388880833734036552042570620296639153464710928341652958311271626943031884264737682897524125719550209760589113244590848565012025127391523169813916736052595993705630503757287957155932438281149701859649181977370758535662961769209268662310180333596970691625898580034028165978215367223201035721318953142510329339905244345688735234584969021125897393133820047752511332741837040307006880541816254728240396863988560697310132192302016767742836478718621122665574087406169234158352392469274893194194264949047664538584764582550108840357142229325910268119129873403965111908711246488264510358535168862080395094333988646451485556218014742334382634154922844034873591784313539415241762660570343925658319437596022781525562615355690636400922985717839310836650940446927831439751829791718061592305798460989967411121456405754558839989505355637304429270857139583190194526317874447143474183498968732859501108569929516123611794147975911779274570793412106478024346467111772449629755183574605037760166656919258878311966384491273084948186131204343773054353448719114507801059838577675549433417843635991144218929519973817325118346562591920783461055567956388640135335368307847797293602183961590918181556723102854586252429757748104435563501744778250051567080215674776957012332565005777812896333963823739714147389865609517154503083214107382371425194427837249267559577851305881953233518703909002065793361547859337583859449763283211938179146601013290010828177700806843926686680092738389879310069748272448769860707969385093705105160756365997245556612903831334752821027660750153781361184494903046568137364759423088323024842510069878729491026258832647654516329900010099575315664601283459559570803107787821569029670945739231904510750278475009138130614793781561527745034464378092940174297436509657424845629117836384165140084250186569786038010257077895676036389251404307506655916754344698722247779351774920839254916304026789058385040738490530074166998061847257183933398042258019322325288198204444252419051988995261955583945194752458832121522081553730387532641935493120584746813045123549039007984718773531393655973094869127590870600370878564567417093705380671872490648599802383144413941386849194737476331958959693623246882755649135495032045842994318762572928213384349668642645443857736179495636072287507026608706239502466903225770043673825059297127386194366490277514552529517251753938635109031707524606798405987888224231450961366231841615490786753293580940337933468931991764028930420235108890547150910101749895882254229240655816933529054800847185387290636215607088932758716018108645860845121279353105974940962752691455383838677215225278902990149789270538433313900181046525779419081958201789261226525010697032404516849375284684245596779317079528699379082664579584103126214841689514444528389034019417026197700221868468136304273081087895981053868325965077169744657434063208910318772772757629600305774048399041058415221488769010701240457811132036196807536098231529121527981754632068795888879581321569891638665483681241403503445054885202782667544173151830679029926051235286716375339679224190613566245915569274838973151057672524264861419357611588778580872362762155193330431301850082637751483108444364065671981816478954307459095911683818422156999048010679565957710768779906183600923480341694968363315014726121494948631922133723437483597644414039012724091416220782777428176381754265198462302348828618608987016737350478932121724298579595239640277713723296844851126264892793384657337089170424835874274881469361465389111069144162219445237835032334720908836699030256693538494286235963775661989130394216702796768334380523917360586978704595715608886691997933758647083649223129035264291289045993510454155422013203843225259249472769124358449020783047922787897394602051326083271217156197776354664658872492049609623103188983485142388541217195290503950500954935238488769496008701532040887105219853039429224000601314470162307007647307000114911254550272238380960661431836761448375284749433418924419734700655757801218731833160759625213190556213061921049225657800545765754986213189395332207176213900291431024143620463058896808269341896818289440748675574261284970426089318865485804205687729848301001462213524453206615044416531056615413688057400591995787893360761129366369733132899142989023321895649620034813538200039714317182666516355728376538418810470229186432029232653150454846413197871892786629901399750835663986705078675769929876001472248510291932209985709785606491329222697208935661367675429763607765062615560005181397651342172733411897790585162083231754620606330545836975925714435114548573141475666544266681730351421579636078382610917594047214231730811098877618376174871659527449426610393501928502749894330737576122427202717426299227066888381723389202092596552204171171951673715209420943306343084313957368011734999638039635586959594627610566881294498295344411746025240690551607969213420891549787794321860477547207162865026717056738837087023903354157116816608460044379314498528745742383320731276803611945076384814539411756274216839487145114759699440907993389450889137872580118583932700087245396416079028764181649881358846144644307025978508268714439930618734909865661684264113976244966503655972978833006236744538626006720571262606666120056110266085622683047035685539510905280102934611717058095936818755142770246442465510405758237125861941563419843458532240354967088637449465211355079620110532167611237953793007204050141998049984360253077995535777009794226777698410137911354738342474607451944607053520594444343100815348643330053499612697261497124638972010529041085725726169867181911750972541386608087658813053598032238721230977214003958822552671532491466107499732341087586762700727550980649811009364508176678910347128840141512594807972428919120348321591888749809248603383872118451624901075313968911431524672992886836132665724802207098811822470316580437073972022204144720030278810803585352094755136177574230758972747417160669730149602027512958413556845079595335008417104494161195053084585424071311013133745822986255980430948288804668618947838300849724842681032051934697717126433734368500718129429106639472063915141136549250425777385584126776975126224200832303670497303344512690581422384350491582816205503320156101674212783718690080200986287156210387813505964324966312001653971947315845470746549996969725546596022742443336953130505328454382613417462190535846428874339930576596186385773393052169727666605168378567623409949977386394475480947240526589762554385780724412238681435608464005957978698037756910570784095232533385371961028915835540834683141658104301763933145775684932173555801116126705743703032401192027330844724641790716676567297812928201658984442724880032010237869729736341387138436175861391253443494949434280151693602957897682057995557122026249702432585667995696207871158275626230433942767682320490271340185820123022200359960486578820262449367276032694601089287703508705129699543799400543383398009824076982797966527838957652529172811776032297141888331926401955875929098614844593946215484415934387029560894035227409600040844594121496417437602392106725781178129030570086266906418002661358289519850319057792273752195117187648105691119049186516708243416515860562380428849739086321540655695093115771455014212363384237243362202159110414587464313508196649384920200725965210001135377078255602692840478278026658370855425421430334643263770374164958066989538247312671637434566145810155332089003561472449445183738815282391072327592475476028495500527143962778395637856170321163592072633355704512759247734555246165143218001869293732832480063068788864633071393334016573536228378397351751136269423855735733990391787703536585192769296579693459150047286332550122072028957830383574929074330154990356606555643869152134027315610419654141431411741986545525803528562767458349103285524791710617516335093193124542284073177123918907156558753602980117164586578835297246972978031033078835536481230511642645326813734650342317971039906485614038805760151482790095451734260073333749259349389085302364587583186300977245030572486195092623256035823322609904488689378279614227672594907916838748776563153633787224569137467702066448834651167379497501087680266108147752992288185582827626855963580502902161239257722315442103064675378210875836355398025895635608278992854644876029149061793858846722074086168375534223374740559338832102538109294158741369388731056694152668687677000136015729210737985463735875811856072255087950576127505225107933257156855276559581596498141209349193330154309783213847103604780610088991086506812041709525236850747373936549115990182032736422494321569489801081810445102466418997912667931546605690519570350401647759539627573146290657697643484068745849475230230316149473534901909402866463781667612904714025428512763640470820432036894335213143102342344533247138343450040084098437000911224171936432088006930463797965328476775536581032406768525801125881122158812300007053679670026043188339363317194588589382508612529138755894481463415986805464969598143828107277621658108436383107341086038999334098103725068516406533391843487625869604849551859877929845149317577008327243624366668237767870344046498514734109677612375820338403077904488247770897099474461756333062893226775148942850336695241245054577006115830685781243516854191151761171883504379164090897959120276691990176244797804968452857070491312312037902683132336110718419862854661240596058053870788996348341928634535292171250730588150263145659356158434029385906514582502304531919604897841353716809080680930631872536102931597139960700713977673065765231519071714576345498572397208095536357793180061635428191244245322164184664407274829698499549795099272185448649796792610495180743533070721558226219400969989121875236270000913502834903788677146417058753806373353015754724742060373929187455324783016519378269244224852747558323327889982237902058968918113423529767699558034944302136517692301230403729300858857653655076616493129737618639655914979209052302438955508745817635441319392163587280335973443569206437229248950672208180544975037970104291079310316191361866361864169517737140819872814037583179811617208973430370172020227167306191766073006673687449120471272955368748863793984124181255959294498519587702152889309852020500303594875096345747124096055863338541966970602676041827244789667084072990197303306116238826361783469532851961279066822602135371659864274520147114552166786672418220610589703896647625422183031078830338906620921773591083884367555461903480197812315905919792454760864010173368605864835311683210304341341692234588102303581668207478796183153044316248442741116175155419476781191424244545024960064496850759506713631989094529874110939772765843085017980727672494583558174821992340654669586426732572427325038033932188684553017539549479642069820006035240417239497157459377369527153699703032429665551836364965253814857800013751558362624540046038185882628007947581837897675208110135690702183269597096949993385863374377219060320064491748901623396789420418489496772457678079252300571472451806225665518046796692745609688686592002685185913043593933293199600171343696107906854522288130832688854123340757983566062100683867841998964069580841957869499326602476045283292864916937188268517829395931001682532780493263180988412076568618592063735362153201715101063841002101626994282213327503553717453827683341862104402812345246490018558455679975190292051269835351405814720785743443046741676830188737071379581975688039904946874998515860425503375566713350798712409216675781475492091124618944433421736845190252737166078225917814180576700854216602449012290763118550368423786906292211341013883933424164443115940238610824685117812161355514863546653511288408988284095222738589660868746122425898089974348683837430741984119064021639164477553355489279942456092667413717581825194954546138550013880819350717997759729330760937624415109134503414809818955087607257723195927994837329488632196211383341448837988462685367630416792776069087106847772867913207745826632240260255704832300498881163421835836229648118807311907847071203597002420456495185955002152461446046181923988132116139009588039858966486389096103963126322879937472197800398640403835213146648008106617432120506808159418870630412822738346682987518118515529373424156979514524353396774811122734518815672926256844060037506211240172296641752125211556497708489841790446639272859081293787110159325542825816190858936392525696403777713709193783773378645544088871357933799371200484301154675571037530922274516491844675972060277022543799081912244011420744669742853580735407697835821775877609130395157608406831730964081656107354891787989658668474394761757920695845656419097537372261951602710138739198211972965520592084841077064067740427956109504904589314690389516760124418027686191422958056185584047821732607051412305589551966857823350499600810458723698232383049369693240950713476921510677487150702781170058233748537680596373007104355335387323766531962534898905783050076882501508213737429545043181199591609391402995322690761947351188347961803644398723725437887037109896661915135045491229597954855259769090405928446180607756600917693649538889476374663483234951717772103821435720823772208065771585727073017766800007525045633675591132146400906694656468405902583578703278296360047589651823105126284826589898000707046784143249460153565710505755550712273054102075145706407637216950412194017499321195846107936961080006856101944420175869682187745672365222980590251558524634469026447215284403627518184160778368939254650445982495222174403474168468357113918141566668771196163227213979256078796540994532290636091936686272290135003109960024829123162075676591411335090515284857577987040652192653459397533396853591700671883356690860962085982104733220190191181683354404047034538274150396817610061277121942276812110146836441957936547734661819429217035145501159322738462332519332911269730556751009702259271712992808454173944925423237145173720287742103117788811328711539598476840423701023047712675747692179158297272159964824000287680207853805208998261005492884288501655942954413749285038950132668942891712448676408337028385125565456366625447146781963120050791716110053527869174929295017887071320378782364229700071864203644754936722567226298449181048933362584126795678710609543139552544547582651634176162003089754892017826841158636175870796884313555201213450503481267687090722852993513976543060915414139687185480993730330010148633576240371857037743705634525403338708668819444518948381706172329779866337269111380083737965606256136311848848701703308633214538133765203821727417430055354101994074809881379832625504042297890797338776706781525612068025329615195801314236043727747226193598933909176706937111578698223413670828817650920020101008794565757030748143614899534461958359605631637963524157266501793941974113285270784683750390816553406494221451123886515335723438152367056799866548571344544680115253325781913027873431771878388179778053904058690962517614921338601154940295607981079704258980085820526591265294014768913099392020276800734656917033374387656647185991483482253629295496599514919812701833465974327976812112449176536887083952337919428225228664170284106632661384152075837623831183893347277427706398848563929719040956921391437890536442718187005914063623032215811669405008166068237855252445019343866252642913518698788045410015945697957719983844365747966142985015160840214421224538820707549081717788182689037886343088127921582599116710551360984198946827248631141956119513106117219235580840228612755364129269320188686503612039593468256187544684237950342842110149708277959299558152369193987796509269541354470191868723271406023713355395996984181248785791308990235222548134671166229950161662180073922263223093705443389595526957816235967634052034469703033000042621302731146613463198802174775170234692827141209418723790285372027214387873633821649479152177178903812415344757005734384827845704751372571883100421388064214765301368695959830241656486713173031749500933354332634057693334584629981843807425246459483712450303590120343150994921020759271800206682640457335427142320968242235142880176986092657925101633497583806276005468015999606475963094926471253077051636083930093894821142444456470900447211021084027698182673917052303948253051805127921577851731662650092901033263563855010636442583518856771126891374612935903878843933596573653132740811974627717807795408277044549426786177982365986391073512543718815481723368955230534548561119675892745241808398473888677372073360453620133551680451021971664751392500862467150657493543793406255369295413562539960796052772921433249829811747470498874774175047513094812169177066033557240903529634904468866223996072755761184734880317681907684798356915427782293349826521864677557511321046020286023413027007398022308914526352916503364287356057691869026788616231530584346086915539092579861788495985562217043079648431500277501616696351074915689136851664079518677736433992029599857786085358908229153788822165072695758046289609000876832793924866243496161902039226680392589405775742787907706560809425062349973577755465225474990653080627406258114619489050587284702057924222924576954048715813197373200096834912614914500262257409971378897847503020125316904961464758500915183771293112123093421835888797171274047838162360207222630847408744999061856259542541888803901007592239391992764025581243214679929984320337361561245809769096656968144569076560266667934320904202203575944998795515323322849712388991527101631886152524744870441226163441531643551691718826223766220872863852550736389340877743479829923921230531834454013908408458157879118715970315834194053375427937968134560540246181494735700841431939460222006247580194398172388088596287462313756764233500730050172890871225470621733048658220527655081481193583212098604505292842534849675329933690080671407958861548580499189723033842087481313150985875267335667617342773240329180212499244314846641085584691463179678639948672791042785835628586187385707658546526155283730298578589665499720736344785670671499092664655137224575141897327079495705561636339826129301720639515740992159011707961290824489580841826045330368930629194719294536882374951221733827473476506941655181097631424074849354112539576944917809322410109454949419883311395581402248114433859761483371566950698121203674647332792752619366703617781146079860870245371113867057484972194160682944943835568869709556306784928992416052298112420687035011722269468260777822157640624535993244476831180977730126296416022364683326434286345783048911555075584508227002334089703581940766039808038680510074536937448815351183140527072480681646507336973784375424555479226924306423443083014623329691485182343583151538545777209381776318959793120075922675723256106472303120818604065129712786557757443026520742115863310447352062064227954249321110291995975956850973477276478253208265125030890097763831035072632502431437185065257951853265861197959317691037652885748559873293650506423464435244948332411792506773785437678906096421399108884943041372469885019008350691413725592372567976064187305850081659886555321148021360093792898868815379939380067206314073236779372630753084739685684326096256633998892547070224253061436676627484918712191391826734162751549107223600912350417611859689356714539541527291664460467766009025028214094899400695137754581755676021637209957840412372828647339683978248608993183756731525188477873809343386324630500566044663083709590319987638990831681700551148135032656804086107869765769021614398061157092672901346037767054422261272625764013404502766506998368154183770087017182893907850783826619947145881537717609525282847230131887474385705812884110386885406430565345536689916578489456185097640156139798686111875629125108785858797476034113522197367697646963666668348425564896005845649368011131412999088375891611276658670456621262259289954255328097490518778580737714277075082544947997163935032081649909271664635443859561584729484588006812936595512656916582148064814761813761372254631559792546220945184552024291558857303962292308316476844526419192285746741145100467246368012762161458728439168626126158970035533905967085704840502399384078198623112812126970619881905681278445559213788646424399433262034923743299803752461148534520208434437946060010965714175083794617238476863762603932234349581816668610818474742942076395084721422431426580936175437150317710811675443995371252091171968950590959380294174556554614527865163420972477175949698346733440956663616374521785565958662109091768400913444739590107150059036522492558682980935789976637102886978105151949978714713084225980816342220165670130706010510938127159569771695536834831145234060977150530389021156181617467433584268688318225635607909893617074520974407530483115034917451408028524207885582747990779267062524129928402325666842899099154203752664634534404690931168295627780477450532160902463086600672012316091432119410912103170182227906783739262117235253451084815039507875635521369989801902541462444550274411114902823959958700191250754966905515145572657437635959525703230328079551085132839137988473202927510089696895121229274435193376948573981776030579845245338590621937976695608802171880830173782125276291734701827871393297825662256355554218871857607572231690386541789141027903824261996351100031218373639608849089861670215241173156626137462701976811217064042954972268411553101307804542539420649140032174690222139314313632433851125885923980819659214533598108859570749006717655215274755015993814838895581683087213379123411597278373784602280726649152882949280644907864227130504623286732919205505346930737523465684239809711932215211426666593515102181998756120041523923612304688101194456181844614169451079240929858991946915792978137531121511096247520670277324394821663364336957968081352178815100766829797385350982876522247652559784811192413676312100931984204058800209042757214002627991818799225864288058536133962683052683678725350800999680947903386673505798477440125989603534731432681504427292999070572791981572772468340925527283401994391276144009701673330570499907785843660238332073133608145904635717430878739247131480473517456310502049623358003377182515314822933280063343775848107999223316553716712934667909695543052241305775987414412636226294672142517946063850921877063703163177455735914766787919774178327006603868820762991458409241709060499507607572945416702149292278451915632592760181644466600746965454235979758910849786307297615388769591724244697524011481592653302847545289571580211037006548247879859518607417182193637020020117016571750486630642077459321682541596918880311774736701119698016742637665593484072777506400709611130469869685304388939897683027389871439711279397039385025471460151094915203105544216526632522058505334712339799666932273433764600309545163214613676674075387259953861906588927951386921263615579506706014081246036827627201530145332974648302633982273883438348208723518138650393022357504299415245910612950489462122834123198040340991046737979367275439573462899636149781791046292588043394243383843229887524501065835190533641210385920744677240731493128519988780348841895768365724585652080740305868318233000757523273590369031873484118203253989660657012008736166021033729078909522923580422976942875085785609508432771839182024042987584587400427369118686942216873552205097152086547938690201238944524376858390731039022083203083308567980050102912489964291964574416313768193057134386548092643121267876459579535805635188003640803368121463405719971575238791548671286160800433617766588728870175023217801980626594793977703731332907730329912553120252869843805232026293836723801694635161542258062235617699193962722364194738566882107356255584342678025929412457316586090905583765236193121737554112551969151366301188827372452943240784084018991793267951538452504644705795427578039498580719698432742023521019103802622775431658319648217702150112192375095307624592383467288909802341302986342608671091098971886056113261813950818997830602069056697443397536016446318722320034825671902562987572860315574268103944067636351668346057734576583490586620494284486347535906739776940529057061445819278106189748125099744145839896638664558559872862774292813079587848834726548807485630156852646049862319015317578940686218860387207229516943082284125804897498291870144683164807822189594995437836522999437569231983527129064693152593120927875253235699718342154251539390189942128520369192512089870234486490864105534338681336694136644811938756321202166427795317841270159672859198089661512763253832400041590970960080703429383053269706149671943680731677788943505373974358960685802324857003937178188676696419789243312816916350075774358522056166783629715609468819529459965531547883677018171891728205860780909459012600619059597780869880181324847644588500972052305948611806409653747459269787423973902343688196934400098925267155477464399349403082211484495022216814161418754274000735854681343685118411287603557401766253297379503657138856950426631775407729389617095130426204868733909405733435106975578583519169999405789892638105059724624244857715065175249646626369897342350653304263268678088208780786547789772276935917176011750442105285575053641087717532291951780979975759810240975231275186091564038691597740505886403790650268595035412391202040026874853476471114233894020783432272656640978032136347300046242627532385983469960866679011427716663123698302058116976055748239807305706136714337544088029200049528273469711411667990812292354137828750385755670920272384907556827139575398065779695412117981539426076969372527834856784675331461323597400749281514143593005722177554173286564503883065957578336747354648518424306353281459550148358409090160734556052735616503811788452224453550252143435358245918100277402632393562975895893927170195962918595549548124225215083302996453890588827262344411309710251895087943459110919755870308138678051059187767919268484637938573121965835127756867799943787522582235009569086994565929145965522338798944559765564763349662025989367130670529234021320933779023323687210698503385042434665108488990625522503299143518231202335102451609476670614456902623192484556518205814427601629396115844711939159316633969106792586903159653113025113339482367585663465558360623165148214236791183611094673302313647246750246186645690133659515765534989452641783115069208618102454185980819931319209032180982783072683981460100670177823459082180047436167520129806525899274548533892599511223539978954563039532366154733399390904702549879158733182377024195637866506321994518994556733958478840557438005519284515671744382324362292463969441020241601764147787232269835528202966542692047984302231251478040474570185502683657563971632070769698145211024660312520392646060032556950131586114212444230416550243104393447715331796333207970995396488125964519773999254918794290039838303818028193384298569503501526568936294914400123293470069556712443436616359918241763377477328425656331163879305404889899573651436675338491073526577680509526858625365387847440730457768726477994638156358717472796659936866843438501013345771534095106699172187262511397538159919506583323928278117498728899480687671597258929813248146113672027071953425336293556509878755474761429516542594210350347982889230823900110754626624023961186459821359968535915554880828234863180598256482122854494826873175012011286096898962392805084074475408352953466203088235427491970205299719490117211425289694660315680497255002264341651692523152962840562443295581753489805708665394065098482079663394220606553915434898790440457731876599461888536980844186010469599955394078489229096367566283426496090909269770931640730232830417678436619395506835537780685016461917195007733598095617998545157792570382456650214669524109953813297108531879150414124984769804467676495489753354526531030801589907504139347882485048235296229676339971894107869538178921545915301766934744406072146093565240119463971944372718826589631144541723137857885963023873522770175852384825900205707738427897798264688782285200913198865677825051247352510035113966618129127212676451352281513855826967473249280700491661390654107250299202007916157336801955326391491362682445886497859249046705604061738522193481254638918470944360274733050116873333008328241020401139724304582995121709334719531357771361086853918822031344958719374869318219237463696987742051653317720443420212998420209663546014140201593432376791270233829783204927236461486983946213319480848052930693943334762604374492957816537364325051400387239601925207105627343190826582247701980199384329001960882564280343027820540557637889794266165530767364864125251488773803710852881878616167220083227757312740291910356687018287593052829291525232516792608789026942491808077741780354061438474239120313277030018712197158067612462009451577737074168863256850724430986643199160690854435590694431080911672656259572028307284291660007475292498983417508960016940644592416192383076472947134461241076585915489823472021598345827151224600554159956674970989898452788627620330803367039565265516163060666545702517288859119090142890115710281229297318671221829773798916424435018347862265010068750956809160597634700041692866920265612486158787443266442418597483140023781975613791197968693545451571899380538348269881924137761115117292923693796697736867067547283402741995122244174544616729596685674856885625955946898404137501586938705919376642099570217704823183762728403225247010406124714182580353186271926514946222701494224159906149146693054640284946713438485303058477169578739361309542639001428754789849484575424178956254901910790910909706897732852205917474789174114379446476259372293502573497819476436877836566243366836725339471945476187334170032610067247530589859456233467068594927821554131508982313089452285836641244394395687522088130172481312969017157397275947618996093446618144853205639238394554623674567937525440254791883142718854396233763498717490757585963057686567604275435639286146711397597061450170683270385570758605205487668682215542208846040137092527627652674415496783921854363052220509787465474500858067571176539081384888981659424551294933055726113845936156033161389232648487222497974627311241853802058267040276012222246685492340010730557765655561844010077975386517304597636025829846960597071684341700414861448591555955613092867520465089405070845776105500645811548344709309706738671840539298196762528346870123526074277325223722976731004117729054202903944368772198420979634946346914751737319252615889950673890801076945024015437813268103171139821002066000430363647385611461326830140594026244995147412391410163882808363100541912788910958674027994030982656638300535779001049117748132610448722693992238426782147297948202567739969573867145632699927823193308417833277450000665372217056219286807051710921741861763265880974618615260710265980485795641829833196227184130330941139374829309996289635055381718893565901881196113381479192747800618045082882001453628957822576431682181598651857098329643370435974511830381155125489226169868740773754161670399577647296653742082047490299176339881608608765571715076778870941399325279497503619598788703525012922213339907292187886564253784301733646679581574556857773949166750745848158317045330522282645735868428463766024877054902537404752197669206400276004051135062537225206632750954679119086669533183256783390974794642946354962230329292785165717330991310453353367789868195398720774561245366767160058187479132414931057808342587962276062900060024133878908201337046070495935881974400734094923095859349577407252878113457053326283116477311442871821227954189792675993967435885067212794872902347755851508728806673045876821484449722250968005920123711428164796707835033353935473948740091416974643198685405592894980493605036528862499111400076309555869750431299519909891732526738892395219199286059300313176519231294830989591708812135915627979958847882940281221050356795112930480500795950783165560837412215452471640600356604368071599573980673352359561235835411801271472024621811380169814520598723426915557486267768749365292048570931383503366638229852599676857590589898210193643982190805533219251899358783774924256830846790769393401499704751872217068548337078484925769466135469960168544688573980444378146910876452681593913404226499543310425992686731967104000816464082795365278441108159317184239956780404929175815645017542893897626969172478079184806287553423677005647465616375674939196723225606887321852108718154678652695013764655938123324287155750034879234192038113920329188737989334200997123268273060618229282900115958125738463256818009249163491097281478367102742546452978713857288865124535566994790833201083646635042059353037865551814480025181565068843203909894501110760186331632995211088459155491445526425800575624168740889500040848752307522215632384134266476895227496028868152956157290709760865308776830899755154305457890982089825976653024313341956183424268626164444161559256555048519260699191135391435913731839963756042850084527820172477650279993236731392550278876986967301404773714520109767498164302635602804360429666779516842034225598678958917203970571317322501567918610666665850378004368456347007962632674682350189793299849660504112721432452723681203345683631055220249018790078964933463703910066428464427613503771048161511756112978518885682244744261900662218109168449043714765928795656903655532474410181752016888695981310831840791096884457828077440784979695104131856113838742843633732824165090244874968189849076067477426831096966182093596143312617007045669519683491309567121189024688812163050030547987398880627214099274479876910975427669533958350691443854659020753406081050186486784251435803590395941991124367125417254515208784782937137578275549844093357561211225857312347694814216212233942005119603636628994748303561041049091144041437454511022135496624530434660238667856631453264334695230969880324147639716587750004321134959219434876932311497479530713265322070249149313122229225798848878580756840253219177198775291805720919357162412082445966078360885087655679524071545350155255752825027741204717261404354987988682152325171634738854156364198187074057204506639029584879573152927490342667443874904790792476957165310851489207318101721024608501686236633075635442994665066900780669163890153077569492015611495352544197684451264234248657631544670626897644065921821451859892092444049905012859677610032799682910219066141922188800053163707968040670210424041890449857221719210430105338908014052472457900663763558662335917349302496786694126671872871281977773474329582660488703080014781861912790536802315663592293253639925790433835090890214084613019766892939739315135735904960884302207158290358031839682502585311421717038679936499970839788647480051642440751685464646031019813978384322450203561062167874327167025687353721126990206966242292381971907657763086706693115612344323641093500961439354745593088222009733001701289052002228095533122708408164280731892680108857204321182527795627476428207785750421621682401268864188080674409056910587419143663972274426360393588705999919739500871489822577931481317481004904502703856946754232714899906970900006409694666720572503109810646286016552954998396134270993745046779262976520066188847537942515929975907621356046761605107015475456071362478253415668107397340997387560036174739262831632836927855667849734869568523662100796077324585305509099286769273178869382938391253457745145747273973955961936537931064557291843789917196398904812661838229910126674617176388551575683458700863866474450853860782167308372215042862986208192431230476125432041908386495374566331878547899978617125658948175477422252036733085978860274179897543658933378159859158384951051248689486904581016563415418074141905388165008423583271891846194555228428689767335161490727134436618399117906981443637293087054566266867346351714112960933767838785210854839856167155635728469696334776387446471795391369366929288154930323372877899899630182971080802786971135428201244241541996584621611204071944000196468374407297698397907295224438323702308977542825097183593562116766724457070814239109011276298111802080973271501504292461748947560610083182009253504503354310173886796700262186429169901569829816668854102250201891343681626535024690949653685597550548817787354172866459918295574273873994186906017131955588329108003164949589397825524955751215584195087880000410121161000025950854660597287702815217423986682274232015251903229698961455816601685577181197289020535578790982871925892789931935723396249752000548861655695949314899557153863666867194442205157622426197670413627661855090031319810647590560443031190240201632609543178119835838758521879783335222453924173920691774592672201486684712433391673326988849221803645356413768559455500408795476041112071628968262178017060745964346618936402614649458334568984400041090217958881517300443697382711877083703169135673967455552637275933229991306731785788086432452264889534404215708887352167451754115994072324833924635682129452130717133956874739279782594507784018324093304993708100369042603477952761369138906399455518764366296395054889560271287406688542790180318165700464109071526534725325673876020162498691402705487483383151346302557757588923621460466566354760332516575143903615140806875356051951134692865439368716057599103925414047479568275643465460642559856237563683217317812737856256674313507657050574890258821288027828945273364263194419362534456188867599698236637960913575929212872498604741269318101206467401379083086631458607216220672703416137367339618190931117221398577474859802017877951759638242406373444256768921437991846301677171064147487223192834814338640018846828572876945649003781406047343870642282688072830228188663182172167682952323441087591571304993943868102349892399989625951304815399873005237532357785572049278554366546884383115332122116212063107886491222442513007344818322682219801458138938619496382024503233616612284928873580582143013729228598263814624116976463439568636703027458314791273599485067410493505960746027046146741526383937937859384014146495733650147423385852120870705827484780560389030103679198309406620792945470292924027211580102917740691329897583518250202186061428031026142550602483941605844019286847177384499124069430319877059492022926866855197745166720253553381291567598962108643809759876720402967254583756898047065675961731104753691216371258486112907600112652911822290832828928012952650236247419337979306950884813620454764383319051108107937271824842125667992316143546612588489678928099191319847297598869048436614704089593751475804388760886547437246837084162696480901490428849523181899981801790182600975312420628971352947066860967288744314028504579124924174394371464287397518652205406230141167467332176061759848329935280567154969833942072230924719630067674058237702138618936058267965530135820218854013929298778603355267931270059867722351368859253172484589513874627558726621375569829712318938295056224254776574798455915524770966376590752657677410350330612862464234162080804245467112077841490571889829278441692816866856462589154866265847178815618723222979988739208284204719848311484893324438952411593946485640005026983049628489184711551482062001654347832211029157901661680542711691432129410655552212414069156081252092019383266553394369064686959210367855518945690990352386665272620707919663338724787747132655631227772344783621104310681369089066181462617703279529444908385596062475505253245872817267797461638242319822371544547169170118734951193577506860274692457340938332618041634378783213912003641579652506508483520196951423709167238312463697004308430220792485590136471783659060559298313452726960781312778122947735813737758824489813000474707358040074502156115854147099346501340929557358510895497009830477777267095412706176112939298786464631918729526096554474460362788964691249493956657019314506102603054734288169027356833972458532991830691465950812101836136400611637828826870475447751622025976144373507493293256640699093480817382590228593224122479124355717916621464756951255791986615827900642783847558761182155751895667598594130128127593887951480940645489327260093819663313943648444523535602474681391216968691745296463014289733837367792609408197870220600244374007181013861253009029176671781491678408013629128906358012756457764978213550582920351042226689346708968627164161502654030528901822499961625126347161988417293541391174914074383001393327610718846752485441882265598904132337786006168234090627665184834212695509042565829403687462373370813985314246487574112555967619482530091120507433072084731456057499408754973397954923478952169222593315570787486947091495255124593839104473075397087064703780845969221031438008672498146826891826982091686689809118076184817346863693987927096998340511244009571017412656358875467541396530807417932683540072943138392786655872604694008735552856679981349013759826604084630741861831849033333756376977886908964397185232853926504942249779601407525346137373774693843503462499994638728263357235227398580178171243026457533605610347599307581422585146333499867177056711232284604508902099775341089882751595307520479063697735154039265601214745525937014164087098100426088507193784926476420988649674286917304935549315638301635966090927145144121244910332203227249355383299346992977903212855403580895552691646355748474793293061260392788484688656804627688797928487120011991567252156175665795119064226356284929031768747967964463317460212462227587743779442071139928700343163592577137364977526316683614145152286710311650201185597634834431053596969200929278017355050203059341870892369235162694166329486635293314103949228442646385072955308485753264974545091673270200269230206466112435504375955449401667096161794842616170846885593267244017847188486112825036186256715646088257637599431964676896899527854899157069212562218400224476595310207609784965387018124369533525664474066231761026072730796405620942029392573734748468912454831279507806623708219378536279258510951758238885172890320637208097973872123358635542163409148473142912059980876500360494386903472218856621288287155958008677747261611852134264900892868589440351257287416760796643930598355036988256827888522930804647231868617622753264343732267879564922643029486211455181927714661720017460264075602779891788269025967029106067818065635204181707910411773756063513746089870661274854611113646938040696620795673900479090933417307996161574201048716158902540291996907434918756646039631518031800420587706097693267318318306427132091171641937758315566349156001143699283082165647889820035556364740425111746783787013447007396756226544672036876382348687743007900998210552992933793388741237044313029319874980245627683674615894264799719611335080678575326319534364998114804017527959934029274681841265115085667032606451962522754242873262497151271940602710457543439932271476290353449443519675293887454112364351827968134971524682945832933139124724975195807112485572770329754780529314269150134514050306056488117143927589975506416061022401000121228951760694935353622544623018017239210930675725088673315311659097540029663414553919714117223452245211548231855864628528283475063033002348604911149716751302899441463087233907388593177061614437689666548015756209513518763907725554583177284754467314083707880534517685939038854655260796194367675886948043404274385204101352684501579262637618910788316114003563355247448671604929756656375727962928401464955009213490716262807933514042813159688120080175041876437479766714246677584544617751093634760700217772116850114947967095296780814078750595733194050041156131481612247122294549556973086777414622504969958967356307104513167698271258304291760842345414688359490166088207855512917051297608075459302382474100616275353667790581027694115146732548606478833263727839203761917510116284254655949653327417774861327768118569886924959590841162302467765206451519328103290698257671376361112867928376289236625036101109609453397495432493277334796618603466125760860341250039146066371536905840636394420416426664376084618183743871201250086332796394319094388919881107559690326367059480870832025946822345942065083934385535478406924170863693979353782701249499851107451587812723486254251573284606105813897966315540746680649309613090865292176785963818071045380513058477066897475894121236209558939656139370450609314584738458722634333183212410042237359163914848290445038129218556411380617677224349616189960402586324141507955642951725853958808630110232624946003080428388704243462455343708046677144979447513583290830384301301136679577599220446738342078988842930513122187844087661392190880007363411267895705102062576694869922185826819286985023829081635434572883402878683139644604970282085439440616096942425359871749967937087824753022465885590564715074728558425840711412465458813509252062748135943897664676276401446216340492750847196067029409286657261230431007644252985524682489959416617145359855381660886135486275222876785615372650503613186514987331688853566818121914495139201158106738164935005406703318661362696288954169837701321511261573658424721371754521008980185681368973465638224614974800287435858979663323483383620045275120983748936987811076841748033978879608550045766692084935138691583117835260068089906567043484685161197009277475962937217152715842095174954668782823141255987034065141977657979488794800140480706012839903754920751600574872961500584592800048966637561813439673274442594231754491611928516403465162466691351192218025930394969375066546982485410188946710654813775235235695274802008501293091427163672750993380692497479461700677597612228258425746308122414976692178649689305216900710357792441146593924398004974511702191208140247804427205316824738923579513246673594524779201348351966204730885164105662560094159568148100459394490462593193169188634402510368357313016907385920110768481752132630613243640569477852115575549861914662879951631677619950511845685275219563025782370353882200156505410720809566061870024433109858410671052178287456947980821611542979929697827066090533909224831949323710633956227644611044871177027227505291039483230365728304142845569987740729630589217569737224350925172996169415365257235277715500343484322549590433278569618737008951279640090084991263800536970704094381884898120471628807653133771305522335299635816357114323886876876282438944662977736296559525720334130325816909344745886227420723839090986065383179760629926787264651625900844581609592041074476728242574640252845311491271826032723627968839144768521934040112298857462266794940401918268778571089399689613248699484072329085392687165933593843827689563135219628003253390271570885020996594005824685498679938222539786510556967142037441105669783840950727390462882513289609960931742661046037501959969905701598182375924093933358469429745942692314556450775582118641356032457760688629068355262078534836008295319582443267099505364153994291077592592369240978391523061347410319646515343819884716555109816398736361570074383094659535836108870082973372882766924514053753887876152810252374961238126531361137327902138888756208729231488614888684331760565201830644952292959348570466003969552228096046444927752787895314931887889145677912428377182218923166514437696773028670724583249707291201654472106872986502972868434265534792535522348285577190093427189819597545343743935852566947793376040813113243038883537308037475272452869677072520716099803472999830566107694476088622866074424133288034607447934821595557050710476651495958727037589796328495791071920937152695383925926774098692349649302806306274014256511364118217483814107254732431180011973931993274039815745207400693110332601253516980743297153114139273420348701564403958669423147586978990731944846011112243831656314402825260906320914841412637882053531045089687731981872306458990106881875997943933275670236294858291124579686315389011708772260678931287415596819120927547311413355001976732506747475771265376660453966712041233036947688303096083456092990706003417993371469571737021607485252056567561103875189076342789730755461620145794876308142897659094109807009089900395695725394469185981633630251743988909874662963585882293750694580949857092903458836672212793085095448160609066959498745687063668677598254837473897390765572973671111289109581826543043282265121993242562724363419135305490567682242238227325578634403438272840583521195255110170407573311075791494325767051375760254786634130311101309408458544339138872559139672256408287207703215788704721520903694588078328543732225244998299047186891157207876114008762481438529480261048685538034905130212052661917532221956888293153564440982110097724048484633317641252014313573048779643294770985600760939987143768539592269233125349638731297808141132601698949674847598209566217301913394942517110882688756582594957846440577464251564426384159846767054224567041359205882024122989965713640046094034484281214000968283615630696103115908806993706635882442301463959596208193451050361212987165077842581615922730908951849980665564221955253815357760885987215145852810393874949896280234115359796618796048412980975120955845533914353308814718553672735252521283188922013083946922244784922123367866999486578383432800903192006076455453275109035565846989027731801047574798513617941158442793473541185863669622058508096705955003263997498404416769930334527744744519991086146765856156346586873748493013972872873450069227750556026194213972320496451860192898034921294078158769542493930552043371286303054953935978300467403197546711265964522372986174973845652077979516037682174106672765442552050597490355738120362856407873492116357366410894864811651986868360191076179883078652333878507956078472593239496768706882026709011645891326046185954413887288661100756995107235619888184825987716587147352342632380791286420771623829235987595531396991939537100532611305389103923276430891480629844188112548716756612957695373402218617121979847070007637013556869917122723466420202825334616948861714047696701337031602778489973412362958708863345017694052368466934009041027583049484599865004664021286476606759293440622389618717386257047023289236486513463284770097278856080373971883019800192608756427349235121509255750197515052798275436879820526013448064736471106568500358050562337089740164035013220084338206659796537106361347809650668516741623821672006767400099251876446575968205354029056515596974235883038507268265292724464415211106890987440824929989569503204851916894673279578974736102927426846875467023178306233861791845999518713237118118293136472698337900229016787818621862906352121053159510193833097843866654890601803372845965514355419989770991172850614897010190069156824446292840188261936834468335814982851032414018430359931128387583301617352283867189865607293003949583618894022129697151391461166440409860551167659361969904725197856792124174565000530466704412562248685412415056562654158297995239621049658059672285326571164352477806718687729900828100054994716730218855395834007719084069063233214213956100721664330203985393400030969737747738960503000934556109535256626714864422905500326872807414723884750649152065099899682359994909983346686836857316352256239025682338651071373566367564420527189430731939764914014389605140642005028251395043747346349959404701943839048384468666177647907027324566501740456782743863784616968721858862347428576082750307873503798645522243163719958613977791838134861329967652500685145809871130755989789430424000869058192463781640557971611084150170142626221310205029491152945772856525706279339089946251808495389579830586260856975122604949080981960741682962616023568959864148700672152864761238832173061806170174959927004191695530225393535415174784130689008538089346572035533317083827668702402557941228457073940569399744218085564323596115562891177451420844584540011098490770183834324886983825959185683674011615288187692061698374194776598318718586433236012655856745207752904800231352008219555901368550366418260374345401090322314714680241422713480844422152537940437968960976330059107441184508963992113852424332187322335105533692092588370871164028034532913519934613346321949669484673712500685827395015165478762657923172011201348024323503365630742500448809229370358833859589298106316467554375691747531624402404912265474500974389452443799618875846822906321471873062016034285040021248249147032697331388486932194379964508140128989027200442946767305790220991775561022651031648303965984421739723732534364909474043850158684695027722721723124429906146296948981328133174016060220120439680302904793815814772245990873684626786332545769953863084683540422901236375126401629283129015969516663712696369099082266161202167625325035791701342443482764872917309562304098278232965948919078752767507996185371744281164521867638661854121656229114375522662961430554086847801676408787785356752378557611438985266031175291073431651005517697428081558422517549701238214263894812339743764033146531873202105340041678288199652904278471958853937599292333340575010915336624912535037664870441879298446691043856783025596973669449324254580711248983007098683989490018260072488525201686050461993639684847628042202075473305777872031127425482335319951835100030517034844801568353587629393487412378140517781618117234461645397018930846420282597639106305929477307359824931274255101552426531904202118080243105241024703358460543355013304559195543491389934945408608322177534439830794409566392166974631153436371615666860763731975990675965195837972693412169152583151325822348108179670513555373681768502957705523165514579262511924702638967601969414739491119120512314707265213264459909387340976237165383466985615167564299231352208933547050168849714983268105395605781424120231083375687574819651909182904480514184481351330676313201033902845643521443507786614728457005065128540479579257813158728426107281933858654088402620308692234676345022526631622374635701269034886414506224066998638394889263186155339802767652867862224353344526704636422745377440206255036078112823086119847298533264754262614883546103891663073023008012466214734621643929720802702141407375374528436661287010432417141082644004831256887728114139049798694707559775002736280458018081531398521720252767833433153596555537549064051046533266730304716185671701744323083679101767987943778495636322609941694113464615666181308761817931130115063476977259892734069663038740976497769138261553533828241667159996884177281207281806853110732287322309439153036178773367143764503245792641997846745938502063944879792871481129653097565087400052696306251854602739159294282885519876657991990596547614936624137061062674586702708391282757489736089541372294806638113758517444976846613604086847743657335523006015207972169770244090379017444857625060041070163748828515065399329893077622741832120580360133982852769800789304518580630706515609596921004754270934319803684115340368415212636966242906337352033907364717183941752450532267212335979287658826279552367019770015917195582419717589687680363924462139414668827932644473034689166253479556820325892441167036514645734303036707464930531999727331424240516035706665003512944876460840320523384061513254160387448545655078398924389573002671985316057280670008498531218738897170223818957932060956721952741403786320480097835111046699222195138456069752235671175617514947059615592874836051833967476614248619254557037501487418236520626948703908860092354839494577331558278138640666261298270295656284228286183322148903792597230038644319660380156410950386214827380918526402903766359768337029730665135920882487504157355843634524551542092345998508426089177932873966993731393283779600170424624927537064654925448313293945113158789541880717282362631292960696057896381110608236371348494939946125669772126144782201208757661541799735634423441319613967862531277549348651652645054874347012086480118939130042904975915590142251112398576308618268030532805430948847968968770409187065340017662607433870270257971935128512851669632074737887331711698205863394744075221386433259431200383189047269027425134087903326847018249411003427621937980429861052550137375888286643145136072896229391187981744782497870721304592771315175661045936861997458205742963447796780955066474563421301342335260023094429739466114552263866238466756707648302841834244175059764235268078521206938388257237008170879989537981874609919870465218122625110893115999003222581037100397184791720473248581473912209169006048160178200895805041482013558412840263065586124201559497230175468267146831038913506846742177383036440281089052418632584008460340136252074604164549513271850092676586634887393347429542413807375161950739472092805897441344463531602458751113785832723411566708121966742757171247404468216225089274975955567894349963538913165958428797802441617634147011130217754857474689388906078449364360539027896585434807632481865927370397939673918594708992368599578790687018828278526325200531461218565507449992553676411482833626277319226379656493800231016804022861851824195062199745862052604672908203019649760838735478595121699110795043671542462070153730351078698660258799832964898839605754933730037001929402223712058432140202902800969053547147159140039593143191751387584511616325738195216887162534859126415737754882384241555095981194779510703595846708058480754145278233864764597015282757608379290425448683774391073549152331887878596716922767848217360335053133549371580406132436839069706157141742182420618013808848762420400734665313319745031647841467145299627189896624379276768438772390579424385770770263503619660642466943685349643705242891407465654051408572138710132395190567518521200056378160806965513283629535825294111491595245235410448558101773329781760427005785457766352360544279305208636340043410025294410390537363274646010984802723256002554661948471503023443368259872006411233709670648524075697210184970349015842911862812369911904810043822364617033635878353853810946346700204394515197914754652164360152204534267193482581160792268200879701433754936441205224354678117379142222718761881207694846918962338428151633124891493951831695555884154023039209172342697106771030353177604653243343983243902861824772246932223691309886200744971798620148620402542088594342561626806980231112539791404388270748159336080604767215515193130468810222108543236007598342674187512358427822261487857453268236212066316209543025224301797783606603598454603241627255277217113868640595730615646792756656174432358786099181988867300158803295138889431235352284791774537218792779865799813058928125573405711358556793728006622592080521416989616548222603662634099889806408490582273711683240524262762267399144275556490444116599202765641651028264120065905984153453648554084266453209517394596828480136453531846006900466186280357367040182084763990464543416108332350038485572119045425975228625601318368501466425310898605865191181743064379994986431185757984093351652176075844168640167058705709898620549807668314511870132025573752845283377359133400195626872502834137061438263742800679123023768649979773564974249283775566340554072071774609066092746173885529606661003938179147464531079377340848086230142388895150474564205533802519083793640540097511830227152221387508172899065615017596953079494319125903212352294791047211298612885758274977740812032510611244956901867117006744583067481848804242580720521804110693070039232744409662828519004579937325151958169844567347739782365981671548889806233222570986390881652829614135088596002673821688965208384555343309768696343090140800726236526825488683948151220524348583462321192993692772294240256269917292387760191606860820115607510200189651712720107171965023640033154893667458192446355029139892916372200817423588790198054726590087780853929072614984098335940503722835717186654570794484564097636529410062356459321067988308844240367829951979636343489644225147904332920612572946454012634748844564293827383292300259324507116339872837720476037780869762096485453012545685684765641236822592396011715311671598914757444941340770227634246748262123988510367068065780170744740853430532760235737496430661265427418206169225355727678451659911959462981225492120549805954888768795969071551258721510003323148668536991055385007896145874808670219940003677538162979840190305376188339668570792358618730630167545313457429504369268309675709090078751478585654490029599407710421212906614499558623884958519069297990290491316143587267541953234698278903105744017692882979115844162980732919096568853109801799958132953568515803723397962468393953993045028351802278228612747801815940923061305554561062799373060334707990637434853383725967169068407643574548149569145219898311977963879139861186581368449539914626634212541915657051926892938375805323230842371965089490619732590058046046943078178115564144644084039561363080325447786706057672777324287168764178363038150494516742000537679556342360798122691339021812102191164912421574714138362310230961008395228681415708377518648780388582832825586139635726681025550529973905390024021600473285902768776057034225317752620961543434284476856406326561538844987775484578824058373907932658295120737633703439079482629093570167857206837462467915212585783094249990205635396204161447238897350540435743177385449862038319132786523494563026553867483333136423317226578832066074423912304766884780311440706122661400128702665049258396624836448108330078997071905349200157672122438181165848095733604421115108053564819105624982458559283473825222301905029134493889513633516722294792538002743573434188606071256526560266680695156269352774793731346195009213205710591750661821521969498790985511111171727525272942457256178009503318033214023750779958550061727178647796815365810695052278145535727730777193306488176998642681066289399945637627249352006259855393969741968438173461603938118637206741903929862549633677683689380869980725892781962257363790414498283708651169041742684520598121596549452378791693488912621119812402927310780008888075786594628030387144578040223777350689099776153519372661626130185494361691554106687837969561556377346963164736169463445500573311291104469155370484901543348471186513706321970212995671409639824745846250009954490218765024223447703405074814613493143225094170819427150717278189726618530680126107422681392104710445136954687736571045164944433829122779441273753200278266205438738656789176091588144793779088497623119263915358682762916530296967247339349900537787195502233875347997686781269734327123227851846349594823900979810970934586768937200786205316989915521849594307383752995083366967615247924428772967291174998050176372316371671017257507239608509790890597705138177674002061016168260760301397137682321790623474764615906504793877152467317086140307267604775171367560545626786451409623351066606262897567400906599126191924602094830238323689448528753889037940735906804911818614465407909910672485995809209797312505027562307558266143643873687594855661250393435607103926982770528005829237240381322877040690256012961540910879500221631360603408770733243037741998839181282187940458104181020919074352480185325308020171898281683287176514281031965152863287920002821196753318495326638233847508289648482083717798659575316251594346555066727474480975183587877717282892960370197616692702875254449728141142389820527887294403076961316179002475908832226278889795802149138651110300327208394868482177665121831726872620343603668781841117576020568521099480604774444170459786605269578891636493793701173173106030585800570703492681002389520762034634539333882086940390878613092564947074521033034601141320534179005971531589596288210595198828262729041498346990233604484762666383672653630405987453574404717920759459326074757117576053071590712730848188277606616724594051860159515183442271422874666174217789100224059126944242774438613945202193549083036002803606256793836642002085516320685095840220552379382330025800333741611196573786773880117201803577781341212004320199453028092936042347155398762629865763302393958247934152792478907733729677501183705055766717069776787950509952918302038468569267710696932793910436592972956670899916449230310221533653169486203219921440348686368931469782112035909200117598585733842358055496043450816967089995418507887163816184117238044205975190976711086575648135409521765910615603446561697955849943192375651455278328212509630221620878222275318552400078244653902897639797255849970024401275406369901156341767979074743671463066017340664934022377662271530757030677457788692136849146930998457604209544634050250324654251713406869571737235246985959935429629252826862698482661892290660416149716105625482204664389499849886448626433391874148948692050386827308474917775521011384074574919876626346607200601052468907374987130421404777826726336953380049226534088061728371716120409727843825725266603024156400371272261969932089531316090652654262626029085673273045542464355426552633811853295637563518580188623560310010540211320036967529397477791285310789516223877314616410403245704146350771504315877964714530162383830987479895853438741182983497719522134653020102998129893586440725347450098428983640205433914226284311473700455795023508936495111189076295883788351853421777181638205931390147184782899011408027793062899276015726387436813508376108544443511943190169544343954498313620032727647131284252219904374285089761229816312325373189169855441993820411067504804724896659325358443205985782964871191715144387439874571164169561898413998164936174180252250778568979513163717153413555210908721500731961385528455266094821921059198445451154619691359211369706862900950474850244181170604748269842761003927141174859595710639313160972735580818378271703966244130009192283234989371410321674824862793693761198526298651208070898404549493793698982863620547382580401735627261013812039430366756676497384329086091647338496958609162752591810958297903324292575524277522078457588751293680868164536000919791964623765889269011526201672677013567355947852413908460893684861151310330693430558580718235221436062904163893521504715561567492041560816510671559762128749878040028913897381406942973107773407706785178721969750414339203243263377409171884982402147941198432867695180838777308026436453247189599826625526457020836354693883203980892949566977921615082359558963499042469009802100517663595007527578462882455867650422781910731388854959826018335733587209098900022811985430261312987578322825023493221735356303713390119483921949521177712351409119671174023390297326985979733934974797077898916538167775285125210722922176395085020797944651654946954424800569451643547337078310611784770347245472189490720221353470464958315576478881747680910856628835836657887048495987552353621047007396240380761430738436918652782076309676311447386768745576519549776337568850094137931937888332825316415987122696508516492414787735204247692979584330982454018020459157075532898758622500020468625985943886379428101481692469827233937863272524609475167105932605316191852867545145153144770846353576512833606757090951537597031838930032147638653134237898737832847686728311981580215818091545474792490002471080470644234253423633369363976478800421482835153104936725031309317047705206104129876601091551439949516103864651266106024832748782407172250390738304188657215312252957401328600119265694356966871267683623995925631256573312244190246869604861379651591328485507757827199719167518636871974118881638804355227419570099626739398637886136022015332224989280430619385849847258668100548636679074998059257972495710091181632282893571777692100649168520243712656631683701669760333097838531098159497915765601175894612995521478014879681593088660585697364848992711304146620229548600551361895697551367945762929462514582822392334833006366548770039802910689660724509048543949283303661577117913040249311084678460839561511717880051498572586070237452700716845487370392229227605837983294069601507186233592611047906326787813097355818310345088872183914481037640139957638092926856694044567695546301905888043585587999041402740189859505981825303083336596111490477811753689539985189469171350384158959203788976731591895426750741355950507707864608432373634246951557156098091766907563844790804354228845312568877802877430756445678231367984552865388250323040078570973457369421941189194184336453943619730490296114473106721989740270589396619704082115039926768046160025707832069165206885706084727955771359708326016955423564713845802636035069395628433720552304217614342892686179346866822161328160240120764112899668295381199980105104687380282256604655344407662875125105948484362024252084263353680387106396043343372086460520059483417282854002939784418069401998455673770973360289306377493429516774396150277208762983138520312356526642269125411591932232322820773772385788426582229252230232837162208253701574536614123709316570670615958682962710619923168010115803531296238914371912226198319770439458433361850735747223547160164713937304802674186036674018982313357243700003717605902510394118291128447040893130748450463691584639420868787737839518741706978579653643761903548367691468007524870085465182985321455245050425523690214636806423936467035894780163999761583755379092967102864103397541110158315332955630608037428319798250108303926010721658458113596510730813801370603178448372133484657334251080948141336939020350995863035421195689206573837820904441399818006472638518925460139658325307978136367834086690411129296609705549333176013003468403890470896463177170230703113998620503069765486088900702962265144267422037167182515989419479421578411718667766946532077282391690425633458793587348829799559938921752216130624278008891756146839683638886281737061830814337002147542270661664428534658466345405802275124611515786792067553948496363134348601522844205310086492135117295805052161772347224819100083654475895864265866265829265003853272165714493098112384805484785139741170841071387292131261128852301999312831499753294472809188310512423924029227478320365077697330009584980115370206313842162959895126951993359710552874196793992623216730490501332668220592639823776427308128707111873274948154359612375437578585172962453743284353460342292201819175982315455615786990643368166281953829563149654646452042424522104206585568581808096574443489973127710175439798862086764091629911480531975579685809245792380239431203330488292201954511467264547821869223344377021999676836491163249498346383555167571435239013967544387871113785100219914727864930015943056765743022864972037938236055799595932994682574298402304293246864793671645563461029770575109751201069186468299241442262705302934430283776469582823633227868676209332525443427002886680846358093726948862292300749783792065045379664474876005761590661294261306408173321171664901238400188432061371620704007080857724184681309734514083777970862605382949673148866227260771005943302321746860302706990560313951862924391186881564575485443580391268326819330344122913655162638084606292767466782168670400901180316829854090500551340807821927048517552475194274678520837920530818814563416897643675612427125621905740095953143281822962743535431401894809741342464755092196465223607512617421545229869342321954129338304914640655482305852237810631075582602806204551695934833017265364270646388017478338126046051654221952421097207318824656826133420845113274164406986080291330344509611404237580437233566113714056103028286828525850536307994339936059438652237791654648973350376783542299780217957809180533534170725022503367189423812313099527173238675532415449383865377350818360172949012353315835899967891545612637444722328934428847006107226247816721632093681924816010071297223581249814767311231857446126052074066317252990012574559998389396987655819388671579235459640886231298071832212947005640489680549772756973439279437840239917136117259315984866972081838902630374903454047339389763837540078906682512531946984705234545874249977373936361158634871170240147532761910707269271428548069350467195975617349679994233449288852204666769149844545684493240093794252572262067130586684849604544524123336571760350335883487666890115100325589885361978178488006071625112304627087635823048855649627910047350058419638683256557011873315987556858740602382929300030111435009407444309182205936862057421216147439920190287161849135253372846510614344562348250761819712426481814944576577839495379230960000186297602773124538127949015083630389182418423708665138897579204741553323083382454550757732833543788433933398291575094694016321243255235926833540600896647020741761308627009332231927978697333976389174063990616927760824064284013224268763585495665806352061396671888774209804325001787926072842084830398335387786694981200910887129515899924090062712132416344566753581647985751863885947125937799543090062859305512761476048398111168381934348993936325046576935829584517467879372720739661104482429292860544550519124073250077494501112881538164967670588172056992238553057121778337942156643762632797035515694172846969475044582001227489876507024878795860643045689865627674437720691025047988563546413338646016443661927532316074548091874949911558036892230999635973242767740200656997621870877535445760314222919651470447712772009142523694903696143211847169595991963110174681892882815027626046139768667267329745703241914259776939740885544105507795708414702574304599964995255798720122031653851517415783502341758520795503039690554058313700348185376371607507261261573204228807534797087188341142218698305778343754164223644163406153604270158682369731296270034615040662977801365242634033917188948504231680748964823001948081844040551679342849509174228610885699721122378014871431798406242163142768397035107124642215760714484127720213447964649839355487819538026729617478492815596266951797423699942447774862185509006439749649919863980019313799956952008731942374754390327199473206881711561151870579789736342263742227410294891715674124641962639494380627729993210569342609008939286329436805992672978516313229429168157261170279583855790126544744973531302467664387257292516413004234449220971553059765285057995031001477188976476121032701866763311776498246119386984902310253258809478252482429943430030757668969215223751172179806823065268180715534908072119273861357315293000268073594829598546029065223452244575063576317335885234973221541013946461842302460688653606894063160963413746670523087442452128507648708927820711119599097971064413173819579118310370593793895340078838446099981410933529640416433516969502032770433608169664851934522822746439356939483739833996086691541484363304796586953347518543640844583629103298764403105516617868474493804333569938458159855041324925489959225160124054590205168221820302237374742254172944037230363430334122529829742864942419332932515289719486463081408658041561079344481997535138973902547049935817798267557516838432428012536046754229454668021048828692301461805981926004725305004686443080578249864059438147414807388343120903627116671711958756315498898408925178694042790273930437406066449924936839292364073876007230366922079769317429480198244659085391350125552598666969697529641638436249944979100902428321913537012453512345360738945671196215818267574665210367342664939086395591920679354906345469184491275411524900136582456460827459478294803976745344452571635996074018146970024031847096752927148439868641381431823358936728220251899958145788939568170016678089101438207593932945647054441254724974299480706306996107120020974967692929841008751631791316798839931465199387675393028767452548084074394183214741425330761150308125687549492291520190111735473883671620694469166194140624621809899324710805353498091774017739658762375749167850805647403212806610448297134228921674906109034340770822697054819492700475036806980609380639336877595944830865478184634600206713295334119077621621345725891828807963600323741403784563851943678088724552464257362265825921339142478002612131752665014952643927286836782523278721701310954244266079235233093368508342616106977190138270935618662312906704149759978476006830185205782139207123401758383774473197430636039466102589848442988395317448588036934321366619081403341018483691624879816061701845388845479483544006173706087020912184585633888769663237270611334417964253634898202103295943218700911532615787443709159476804851412157526783944327521634450194772463500697813671730457434122628343458569169209461657546641637707748749990561393089255977630457014690631724130419912398991127823031093172425662676894751797777779722332665940579403323627486547740613623460244653320331573270210454913694856431116803971712459359713530358898535493884525809583451111173168568562071815613414490674363705242936608215217518392617524488106449316931674750257781925679337595142106337213219717106777936244521818528011917764265617221310458875356583526710838535230817736025263978641036641950528903638389678841589978604450043359289835001467086556305445572933008686266211184440341823145676392345863288714503067805390561314551961137845057643217927597007441139296810995986811006260051909106636148212768606838810931371594357723253851039492301101624264980625260025208781993746058767604126721745326544378148755446513157208470892799142039573763076963341132787889206844109691525472338863705569675874387093681421430683371373449236535208009632025398270512064957235862767512668759588234419525225877578406877883561935183161145732613812657952022286391619390343988850265508215729472595705022667679129788883404611925174478871806442048828403912589172514164667492675763058123417254165773543046029119538389234145308801319501825909415006193343329224856875315551507689701757733929487662103280868591628617372515181322188083797021473164196116639303098418699510167495961852925279456132497879266358352477764898339949542150165307185754564824849923943364404765112950008124822701612179504319329131010610702916530999344469669533086046779111483626134914004111963487428856776341470107511857026040626811263739866426576210964313840107061861598252791017640135672261825859488417957246861356358443940031955004255541312304617944718596956708514045776911987714502536706143477743282408237732962652411636132532448998345639344929577816799572142741909327700560891783512776363718557004853432603952908593509351311914998530802937441998604974707492607377935482891004960693998122569668315655690315207690297541174189429136239337516589594803976468055846591448871609866688846211141863567795928311939210019586700510323385838065366947822011991407994593059364861594731722203438077184844589443106328963512094795554243397589564481120636577506221165313794693071733937394361323878480382231679832945803141917409386934615723978698897032646255648291062411795801874232868283780135261513880714032690669124175148699907741132843591847212696894606955879476440881590159231410491260937305371758896337057274789677722842027268761020280913314993798929020626124978921690193941208406312763324613790985391284400238219698741349593582634573390184710309700865844744400417046531194090590463467282214532733691204335452840710980338999416888914010779161559453956673889925840359859335994991604854661104943037875225016823853160474445281654769279590236421745665342962187026176935088510369108977714301865612288330837151663341031868381632125300569735660728566146855967171006983968089881136968793103240269570054753773278433180348223879744801967683271136972248966208904086643149177180169025752763539022987214242403752028194881902106113575990134216932456635808652359374905703365244237360824905902880874557045965365792373835573154329518592480849441483895296349541122213950785969650962259829404920359865434955309139779614691298001709397674066876701264318214613763784360061842420441668601290046106947358934535139496826202955225698951611744652382016263496776753129728747982331753457199564860295754948927447685800501267177432873743661161457451932300871917314325261301959612360516950650177056424267234767120873634216153742343200873079288811665385726506896823698115518631470342848198659098546824085052967590757321995194198380618709519300711346066620828470214983841912338460915024411647109794477227160585518166050028187876839620554085771442802423056517736589924376126552627804703278681262072071238016033771014951033177638646228505146835996304353810585895761945182517512664192468715417680498008796054209808818889697096710335161437969157414239626467752487114981788633528715919565515406841621983424584881199268992575399912064680420849252929839913740361915936229274723813006055399221369724405622198243247370533752245283491511520772222260751972434270273759865668136780447956472503192999173556947834916198263567639105985105311620507694125489325737155719267637127568477461384526899649640861378752838202775408842154534777368890214469471630562369662128948203990724208673103971495470987107480160224479543125418020280955462283889564041056480491691445492457417732791887686650838220191624672063652975125854582947524037337807207882584873814844446793436402254962073405248138870088607235580442825093345982187563954893159498468174475104693221677073083538087395785381911276939169605904012941225694275863486321913363051975246900606374066120006654508670897028973189312849007217392395212608479643678345827274395743708392890436869575060456839285030263756597499832068005710584955411911517401113011601119248368427556372938103356035991813341491973535189176294559154317016347739657579056520580003016595505589547729103726531883818829365413722664753805890410985164446547846087635058847409227760878731671489172866834714600368809996266208488680614540104643787051520148125883139145742683457413512473863574515966557344475009392288754100814380370952692352236544452173466433172667246506992422408395741983081027477713644411544058711200799862991124840725358109694434343130879887906170558549676460647721516188971313215969296025604956460509997590354568658845331168478290276179152710111285558337270439602175641529472920220067594412352536010414639582898121007754163000495860611842741126756752570204425886328730802775062987182889721176645357644494623093044905900822569560962187607391201268916521946397617904905336661809501375066311834266868102360266407627890334121124761616330117172315946971191520298534148434983070961541592545421637300830139927082126528009780113723104667100725319004251570351892834786238106047908239434496293114666796141953883257595735780663681416796126951207111980929944489540594843145861782630678303712122487725972809044662045988064541675734828834506138383247675575337888373748321800666148369894495678846407779779604772888293740753358659943056813035956108223209984783570128020259477605081079015398309692146038015345665302672727160140722589701407587612123808949295520507568214432363440154970884598337132428217281879551137150817981578510395866008154715638356730196355617999415323070253001771482966411286006462858699058139734571345376613971940631209085847983851347890821895086606799728067413799067188635632926110224208210663059237825584209362545872991305261879633542638306714449453806847685940013033327628891069647370295908294029278377026164333159936511918654863513589640933236666115375445673745783163620563354802415000873222174100637781568821576958100438073007649968530754909314608350381895573191506957165777418147680403948263551388918499186393967662698525253664706201250265029703846513220496381777015218839899951463198780178933192373330443475655158105855929281178390561573799464280605011666194771888928108136691878567285315185381152257809941293656787702774250219814543863570587006502293470136535825687211298123622994628093663923046986245434802292938959276597881227412359731915193931647031128209996933497581905821308779858770086052861658224188676356489306757200447235238102693144735773063027856493631669716392681610334591444186158056419457932806872498152173919889155946281525268268359148736350998232418025969166311122554332145953427361229331413686991221039698734639089980105922312344344507641800740292311678641226739855725502857800183850789902896490906511578256641081120932425417409478260483741917374314127687808916868594253824208101054192960058715071640759109813537170322418035538646057503682291314470277965819935963893174442392176247775543104201461776243823697591264774801775936822289646842623290909377601370730811507436263362299127395754313122110594670368453432821064547288341655573436629053968696770046269194432275481711150370574646667121211948414076049852714751296354228784673416896063468204520438952722952557773462675484318013467464948675835044932611663452466794425899341932435015530339577715508595354230145635705609102549472726247103915873183625163816806162004731858655311751812308989664960687343713293034987205053261312227737008652795741222537720821651495661869429853668123597092366476760320263519661278324288364959931086811058751538366904850157335764551695489503891953052317439285918764745746511913169010150102513893051693610352231877870521365394836101038614951315839558247034030081063313232751288693560696817133971415736351002266571666524527481256740554920079676242028143411454695708864031918521380680088196663638574426497970529340915867037234280460646823611531454157793482587139185942028976418032255262072468401319374457016868257527698341010069952932910854263649139516958351287539892872413939499338464596400728489867359592964139022821242941647954348173642047042373619645033767610631130337604354549942983319727991952876651043242971957532904417028296953093075349325917919759896645110307969317481947605197922599417399432292195977246011785372709249850055454282589754011946935385287835094624121103019518084611805745154630691420078484922123684721990191524347026423995642433164689645072600915992790109924421811097784742873327540164405939017223485247622562964220137654594783274927677729998642166337910782730576502648960831311475449249230339309245428813573277300547630349834431075087036109322951473298890175216132589948822902221128725001182150214219586182884024937700491249577265897979093397792369680827489414664513732855266795138055047244400269777942806847235016575182306443504181732780800166110693774050921760750046535857218355992574189119978351091039149858350911073716223643195633665945856624874670921792824497713465123889078888245738588631246633063979166221341498627768465543636819950246804340367026204779447803365253191403140132880526465732205126864182571476007836250042149455421031427457283984504585926033254290060012758889124771852188035199896892434401916197336171928546919841868243809269252972391872592879574204654147560201221938182853377591539484796479969772319836886342191741059101072831866557389397103749648195440723959365940692271502948088738967986067926301186937128963310620483878021183742770691209750855669338118837148043677747453399229172869512867281567992809038523298364616485035044587975162401464800121491235487822054855512242107202562301364981196660409125343964137062786992961544835589819677206150245259288189906156818598119853922306868130563267465632131529707620023444339334259062996813229569437365217303280308705182961727161982087727256669744828471955611614596631768926011178600715029957256776425039220850823218148899322127345717323065724019653137931984968540377161941893293019268087259597294554527478177644078837926446838810467324352674389926300412969047484450195878398923081593842511624165629188696408136769964657954247981161324314766376872906007143706130478303518791838426646677193896266666241483364114701762608701631624613494439683833383433560719229033106101103345039882310098820123467967628227783125601411779606344154594144188692663921141672647075414912398664271361321154052057495197761994445818910587834295599530824969803620256209422835912392258613927687857360047525471204220420249265035472791316467044824794240744896166046992964210221436851176429089392338331887124761052401781456944291684504012477839457241909373006697974175051856314379729366242714369345385004642800124156439781114272361536274734481390912893413226552974685626167799214580204808628280073009861967470517918995441883553946886978764143915902393943799798674082297925609609472313403920539090433626790999974742463816049654781452950643766189212083461607502884686328471109998499413832975079862841180822177775776798286428343297617962676087607947163429066546460902759207444833383236857915640064215151495582344665188624808613152791631840646620970151452344438675893616975753991427821115302160030539943194667294215536230905143829499859134315664198322819407278598390221021562854654468098812507077074718401749039501456088168219399587593598374157729404723346129670161810614372114737944418403862649812876783748698525774475724546151913050972432018544405392179617874985493983630842835420232070896276300255473165655595112224441880170697273811192654869244011501736658139269025184115366310975511222668331309830546984335627099635402634989389192556680337586073075550191050258477138740055705539171031530023237777351350732813613852288886797441008475325742061616094595359633155973565183023797219519228963220579479426931089132571414700235357463542209734803126771800667764189995514875593390364729662458905564946979035514512359975395831614806637764681531777268534416995597731046115730088661687883080281355551361149927388592180908781106041533222707486055938788309957556089846879657902051807148474266795699371074589732351225044678519273420954820521808384730050688886002179077822957818984067276192998431675188050585442881464654386207217590191412878776149844670600579264438198928386034494824215546363362709482827560470411533931053987568175847460868788653544770641368689430122962941536216008226087797921160049002834693392848471554184067297596710387316501552328874823425584525026625887809679053003757560315696931463665749622503199107559864752687388337575952823405377995378144014057248386269064800524664042620224762271277903907927854632862747230926011606404485322411721387345726048200986648650102864286124681054326478911149150795120177781085246620878902355305584695270658720208412431346519092550682180806268236757025213127484441481818219354867167877121336066528458018314862035314719474576624740769669292338545515336183958342907999386152702360804578468599989620940338603803103855388054990750777045690868966273021135391038921925722136233290329602851673011213619203907581742195234216602089341752209840250407367519091767159887522013897182539727919386585913494113507524615398015853486192347456054738123674685035907575643892523729691858590400007578425597844295408795382913529584621882120323886067098688529970804751697669796839852508400509717858963344410888694596919903133954886308727800192324727486457320198319856410481819734821061826454969432000453857620989274088125530209307410063404191603705062780867198634843515808466675507713254805215740254202143777881359210944213914784441076789933362686216756669324350134831699678188892571697158846204637742102968260242503098468953417830150717258617154404473007038091398392282482108808052859589694795166609191813035544901282176410515256584023255014575166422141983938721471920679278361661347708617545898432454836367732440283566935563587595767949330236766648896225079855653275936573713713855692887469853120409085761826969663946983941477765938916582272491064335619934685006789647067125723384523285007308153676001572021578926918286257775799859960818620477713264941292105148754692883049153084308473402389626141335097655186563939790121743347279287068308972709393640105169579387456542894329206712186120721112178926982876030073015885032603323572251727239040894028170565080708812413473932976940770764840049326230738212603272737785381325635176083130191658934044002599750395773586660657298445473246394919212310310466881343107547484702077401483368296368875425023350870208637555984114170690687880951330684914434229613775726630933161988912563515957089675228410369436139020345584243359567942603579552103542814627179683383962289094362157543849352139493782448630138260507538703169316583028876795940909568182759597509319005674345300753458034490316393325411002627736827500117505480786657359912121569805808522723897317796550066009440021830411564816060709407090542989695359725668399636596102298052439155662982441340755665153766122861397400029987448587489740546415812253778869310619024041672235061138252214815276434390461482341463167550372866544867199953714284370971707423957981924842046421197360028566352002097435994161140390639147941083420111233493546800587851281353185457785816985207176956496268047942455935387454388515402052179059050011769085805366955161183397399847635864511411193138618279357288204500510601396042697300937790319303272427286754754822821531355650524260027742871539851898531860540072489595607612536534736526547235999315121667417103408305061383201329550788099825155924668240348001716525860013867560687155063043405974340668342890834365504401175641154395253423679027138490758944296268215054269364216278434050502211130811812607214193926890851428453069843292572105009897133514339622856405361499827897120412731799124201988657580420316343674665399482489311860838399520159038939219577474006600893091208945711532683937652955911777030938685469920317398507614625348682080343321575566928014058617751258100110962049118031237421914581819203921848549233735001136990671860511629722003198895472452896069848995536446441138222653264902386825911441664212556762191685351754880618529753887354855415622973772068569891290062239195353396563105716161149735964007886850197918567753757872059672806129912082805909619013807205234781358647891805341866791868259226187025593670809390244526374535852460455552765973001529301812847040387733541045884950300640992765777467383755626760870288424108508733233269922255439769544228566146935288722400666780940967129137494012779771369431296801889294439303871184672508083937634692113889152477031568675718432797628825986967199087390030005856884175206223401845761437139630436094464640577853348700917334257663632847383491955797477014713443973374954835293790703237172791979393972001750686611250588361625383503531483703681128495285509204766971766329631150476685331235177342129385186926090851427232392719719539272395025120413236228244643920147061812336763585591262535915587673579883203136519957886117655949628583411851868735334516801621003764902810008430199151844072850129262976380803547122579222818472807425143234901806834445949530172641973955843113575032196085804613390737113141749708385243810980160235983864892404461202526852594876373121793832854833703843856205672572502840568039581679106429185922135620377006833962302137942077614594806581997082997607283683749215757203962934928036245881998735000168828356077387280070530724554538593483295633083873837670204425991976698771686587049973234788035708409943052820982715082696188990917057935580865013312398780155289406604494356471262160504589546864333218116979985113654302364482831445039746771707590610265290044038957993259225964246623162226191122512109277733229152650836849612098182835781277251125757859842762873529226064967353339664986217697686810706993002144114401922388045587603207653775681434418228627214248944656449076399658550574034676030358422916631667444304589263077018314394201248225354352939583785552893636470937506378154879110100417292889698323951934629923973502684622061169107797576490788209882620832738156979527762897336185869308107379937812652657213637654419319963560223705110118298167306662765150475760061218603582063412424411959429799866991350488960970013392942542934743865181769563046354125957690638113904420956137207306883601453065540803466148167040973975408375805290181956318279676015230534126594570299674569043556574294181940207400858964767106630416374333338004651369295828456363019449823997055742320542300126912392541195214824850521721070656686848119113892684446759594502395276796569844516250883628291866808138464803319957501196024198138463620008665273679590711506409781732034877850609883219791031644012928945551365903606479429858180753225588956098718334688445562699835835643965457910551921143888260091763603939896265062830112728184113478961707485269212539116691591741224979210581384099636923012737151592555609424309994176205852131366454781462703330288672242785930636346549055360339712504536072937011136266240454438294566459516797927178218616682263356753653337962383835577913369544345328898827540153593140827231403377033333942179090653335259971460935627117391362197999465547057069620038963521459409023699920394476142826438167457219636255065769614444393826613583348329943518622166012524275253656235747140488697858300675718690298289902254228235508255555965712991000616365567623345019096761483133810091252740217141087591100587824907775223502088321256286553023375912714157132248378907739846278624906390860871825880632239972245124834926655479803846579913809953661718531975422999998940417010311622662484597236917394535213555634713276841286239877165318121132314904387749326060578738755899926539444687987488207859015318924471637922597075083372929561397660293486482819640785464060937189081125382263388682346033424000428342448259015985988656846129771781268522915063727534369294370275146583800964993620789274395814251991100306809994249462229712153883708189662775941542711972463995193955147335215082382635694435226167649367557505527103887364865711885977979901935330825930593588837919570521129050170680783235782472504264648575361574775570274678632701680796468679666959048021419824422713144887249478772917780534067618387348406858627508342579609798688417833511566966587393845487846846894020163995793216083288650890317956446113412225277095696234409663845634168901127872028606458348765223895607228035251314425132164849607407885157144190875095028268909193292017580284786661714758582877920059617249161381994109508409265457031729379008083671227283341023220915177518050584083082944609157719310196937871856058526578249714659989425672217724205028911157562353095054903986654183575198069028215973478839766749331932305734269759341423926818438509002200717861502604435950311517871141904133503843856920268651785256107818176571023871572513470476622540558302044320885253253356570351322844183774912046705946878775193010570470544046961593239384533311974790106404482246209474868358558372528009257769365179115374684662277783315643336583828240795957503416023835997666252474998430293038902187262828937689829855987983560923149912030789275767210474218677341285809637770857343739413829959893474698001302456507888581701413457180977971171068116778117614359481799314660497743135430374982600374714711460674651526709061428852458408104653943999798715876971693104613923389709728742049507813301215979149635379556389724648852522236771033189829357415107992566791054328254204756523567599046635035417904586778442561903429430987131287396677686357814079456997310581623689012617681716662822752150942715416425775576851834813717412746012700491596566015811596000381840476803310808550232148597576159148923252637649045496543446467446202380928381160386454207397642064726147144793071086468026532067548768288075276601210610919224662792036050049982105735042799970414340054778125921853846343993211947383326122995441326787341886827383221058163692455099797066384231028599037503717861539299203459120704693311738416480648809403307929324763300057195486322572066692019334638015447052813860736978873109570575759488102744616558754410315083555102963601039094083222805099068780076628044657502658663304516478705738514627777390303378625664705003771181140494856474478163293756343934211512652290736754218549466166508423631503163768294179648909557550841615928594074646512369231734899431233140821665639084275191508052501401735439854297494831984066001064497691379122911919655057976594847367982300131414763883677316547975217308421948605143803381673509139379727045364953123248743873729379678796130066094298297190879697742856761705370218670095928998703939543687102146446800721877280777798346355650925721863042147730852638901431451632351091630527405192994256447545306988532120234880373998880238229032419953605583425665256568888792215455287244748145481171807871546742824584903388306362491535679899331504696634215997664648195412854533774504757510621646584566172344517477560979635182596654408077235243519247919690199093577935198453439800516029269157124038512085904103412088831713253955464234962995055619272182606352336101509541493342253823092626952431654975825542702036660127012780857442238205905751717230590738604137884761992602613084417726826750398793309194985608730409268109363512194012000317083457664743336641219766595402348922520656162427215780135996374968233528034592449821104579436439654310540174048549264758477720083921791716976561093808489305510004709503821444812386983128663550827475701101637839535084832787305129053103198230524245299565894158114736375239746595362361115374291784863323384030611719964709232956018366076658267330945390232667328370925926178138527657097974586045787881657701636330083168405518407867197802606131931020833322836209763711074560211649111601657388495151991646556894870712642896184543590450986817286972124422038179791809889944233638028106975952886102609246979237667489381211332834607411709233517314665179619207695208008572362228455765512576695614726215895427157415048768212636225936357818843604588132115321105295001247750123638190240397166706024480825466621003468292619913168139901261861440402765056172942414154088234864619198649512381923012147188824633026895283120806689875479093812252824718126605921519847893493140818907960319307592903841767460442887938064338438020336871171028735449208172273783120253966578058474957272895327986035522558475702776792390318666880832962284746890508932661434578674320359296317327737784082802748754013997803100638190691006366254961829592873480477149311014581867067280663119318224959524736515637285138780146384276811301110535821095204848934151686499019123599120463923082645001992412511781662965922624144240968498065448330188444711439346135753654380745714512112204807581677680180724024985473541024559746095430199413871471226620115761964403567822801883887374326256039506894158010072333627825779140677879784540517083056186420016608751245973750104421401942651340635280468113783130065232689853080130479132903199551291501846998259054925634404618690750008411702113872810872776939248932495383862305660636008362577759298330178336085825876552751806035632455300944127758906119390326376829742707883766516618041770323234518131506924643343709359421356111532017309501401915723600025557023617631792120310166172470404171168737729207627964688347365694847268642646277995276347689725722616578863364136368042328090705787794582335707583971909828105645612365859924524157208010559874715202358697224991866512343402216800053132045669010063664215471500765928825324079029961492161937529993574683717198633443363379441180577573365285173505693840084931386500643879356935244863832262467473543002629383785988407978082905925726789790487431940778603920567942146217713789904865208361785183793097745934797137926153653731765373854359695363292775088201445804065239256618598011780273209150240295159392706174992267399460992303953718557654574087832253499961367938183975005103039264478913044522405600341310767944135241035643836297216640841585794512028767171328806687383183017891703169229029742360789679091137937626977403072329033027207604773023283755692674396475387513260953014980211456724815607853186965108447839070962013199408065466758359698799797445490211193818590871928072152694712701806455197671128234393241479938913250639772539731067099312212898676885744400902174003972819089537330674653113339535836403486458877755898934764530103037299296703430700029630964038948667805214539144162211796380105148883082348535914051947632320749322732654026213834335723225487617672947681044863718222051205696283751011896928791840277171869121750044916444084217522232070721649272222937903753252283110755098083899912158580623296807449499205544557753248284919389027153985347575355809981620143429075258149536498737103751191773766294456882041922180163500391385030233844350432145207976606543812446359334998551645892631194117555964087981392654979106728761601780244373006439505894338743328334415203994248726090346073036110334552305873178227710195620809511275468472252432907417623284310413171920609478213612685626521268177376408800158535210126569042605076584444237338805218759013485866645402891489335940034692104676671495964369310123064034973914373856677013900676872391345072863859558317733679811225402405442175943554991790841443631948584451615611634455760864666644138308282477376868393568426761251519210639633300845548441343836560214190357447181144415879184452294974790627577185309218790064727094205304472069227553987688036297532043251377909940846720112524952314957604236338646542715358379732606527493818425012165294290404425374072356778938239349664423038500897032538750441270171618419720498362884159260062632277194598500729105058895736707776086893686127469573841032923322961592542759961027789667641332586533715731671796776895647829757300680964244670835866642309241665604714942869258209095445900880069780755950203939290609433403706140105225819750712578302509429619736070529391837269329869267930350517337605871295124833536746074287470381232363036937871918599201341924420460696849760238018384819057560908767480645012516404995280926453464630270116041709653353517486509943083471123917599962167045670373077225689460431915301573815690196295262300481336646511104701306978908232798311475649314767666242853792403687572823205841831014707827622018443665082275785977237323316772958349565665174605223714001146276016050337455653734609828016433208681013873065480720831662032362748483008401036327801047031026440343339300390928000661838063440187994871072914040879203610322544326873298022569946803698101769391345700321784121013606545561424315846048347186597200539782415500957929054612345210828187767517999676628477518334544675417061840965858212514655193543608796887155049165576714808148430588357011529617664985910229364932011018124987799213205741896265303695980710988280125747035634353982872126215645552996073478785137304166793181298328751474752203585752875725561931867608719758806839720127423581642858144529421855905666159206995487179952682496464021593788882828995663191372620868579838193680601131207747387206099684481227473702730859445859349718845929890251143357733426655050993691834038322157613432267280069249352141819836768433152372981197801102292003861132968152988403068425275629928941079993391826146762356871719274990585456830189785460336444400397632891447396616254362162826780724016283275862413521198674342459374940163202550094846272803627022898234463667299918702230409230605809497735365105017736939232670900963973088596947078299289609954027113260837191228145339208889805201280650700822124806238024479790595528563580731601771506022283279469182128212508439854600032894895096701438719450075798624058887405414940962931683385068807468171624227289040658060775762758399835087623163859366821697747984976246475304769462359953293598672413326227468698461177255445939051576509514537136779398514147294969435793752776332998235806755647627832080387201930921203306335176207715299045425468611842523640869096842711290028503371231843753232553450737250011324347091045896971606477251345412534102288688383350391930186203076495750059039548227088743849819905627922378572836846158671934945621488291790245284962129243156483430028434936797853096049249440282677268986688934698622121554306660857902682134178937404129222755085624318529039825007084924692129515249023679393715449103005103675500777061053242451490946279351618078705689399729908323381891344777780990240194660883536085930278360206810107216154639969029299520026040635398080104823731442662063979845566849961049534562111290340409734305813211703671369803487096679012497333045075320593478108714883837345139320235129565277106175160058284277986141190727596364331172928820778584025181408720652858478156538177137032138654523386502897616725607726148462204715349900977408589971938544403124737397399169768493417635327127664332601471543704678512184082087344952638112042859473066320429016867564398007511625906625335491465566215129499130831054207983090351892447493577502507806840264463648694884204090709953851475756979903721203055590154756212513335667145613966961882743541856054959260365244229141059596590825166209627570678132677363078072073330098224569562875520354792013330378463553201326037055777314252529086285528309473233356762612634251864663875620013813668533092049378348838845308078059229562624621482393179633803973830030138024121620836644216117886462309607572388084164181521925228601716064901710230437692448050725400360358195060996262172822969706444214997654492761197291660580818826612248134822133174915543569570432780239173930671452372071442230658786768799633642929903832148298516418123751991645059152225922250851546806125180752205974234094331101673804124198674651201911668771015689074677233245719674644109722175256195600371286198962070766986285124277754000303132850584262482238901143192682566046801139344771278944689652395014386118169702880271591374555647451813506618587130027503326009120565515224688333998671150734745257460484449459854619249828762888573961198983291158550319948642765037091487189532010861925141900151005872168142330555192234677364594578671557770759682426429186869751473214448987942438245377168740341592367319350408739477771297493617991401355204809738452152629641651491304855169760269861786711321556036276109728551203247261720953719062375955050476378514695582638492394527247026441686423884914228470870008380178372902223998031782298623086196078681580485570332692670547471961185275253010471052317418152320038192430947427013255322809253264226495735671496216925873125475846442304240522464230853567863775622374780650410715644679966465423567226243806870823904848659332460766367556404674545324314780620064378079939647574982475802049018571595684893944810009436215022221936858275042912656477766084909053710930509358907551487077742487272817838205908881889759597977199344604685685252871221893781906528862832535148253628285327878601225312477533461408604744948265899372114352440112574074261476127091192519101789542546997187144153240191197960864640403997127225030845892523216201369155627135078598141539728023697204290429689804316225712993214612538707040653395451661280565991907452734550694342034310638054425109005614816327067793478369184997231803256528671271550592524120923045530634400576744998175269885435189438635942649991688653069340137918525658224876452702762790044835129389571966845548656364849636364843784836138570558765491234640693944966476068023218778829767263380253184903651567811512447447879093870689395442471725031407616108103879095334983427507885763339939788146790913216759421487451905776072871586488927782355819821510770073971901658924134593644819143873463142291899009960476748544090659730534224958395486877969633329868767161363468444052298870781355518198357688673129557580314288125887945499009757026618453226512483741381103941463856270641204963520002929215136838940461608906003925593158033840096599708518820420238303309863442245119877654530151952067996542356512619561422233253192595208960368955899807621646333911464826931206626543505343245277315031901332732691694795961304644617966854217624483445993502954404957428161655498387955585560357482810098258304171026909758090966288847644718640644883014195667205993634400573243208216165283109570154697563775186838774470671010072362606412267008510227469597627617461190072768980990289211774830988111763839966787147434714557643370908355310239278829840294109417605225677430809008003334134825863860000276218595714245834189673824037834064534300542659498055402412141935381186012644989938557875794114894537217622393932356151886966261244146930207344639712855639322286506036646453701155211991471025403142206394566090363388650286692888888518057366591828723358518696887742614975138971066821009792047482684409831223162617601050372309114576335465276621933999534802121529573503020896763988605578602608408074350560683132541440169345507955828229962725899419475876990587008625272782535914474026194601913826724405170697890204690610671378099254570533724386738735639183929069593568244624074238850026125170584970090233832506586930611083558775992018424525239752197609580165445559774292335477130588766138486418307110402746630018844647307602092463617871676700944832827439149192052444226936370387688257862066891841564396181544893980831555617434182135201088575514599816093836303194885086431837561289370416519781409293519912008076024066432523565122317764479745967728058392749990936611038900811141647845144181832586597676460889264786028217789469791391396072726910311065011401877943811758215581536701428094606160826788192841759667510947815126404284285835896277114893895014967657927808661605668283088674418506125181607707806072335754657021239660685786502838108913488334182905318499532931184941859752558287184295572084420837751437577448544763535615052950063765599718010781947668711749584522528022901471082561459154282188502325758090315770960921960849610198955127425561763442555491397680431060156722473811404594386910945464641378182909981775447708528864480416752165395505927911834552587820062307536782458067878163721439558954688967115577164692864914653795423475519059050790064402207217384320393554644613995171156290862298233311626201285171931949093288963891311657756914384299117142009420401671479750845376649025466199215619102947276229041131797123237773359944161331237305795008388630678318693258035455585761583877540335714510679565025173962281009342302010516806325519256304469742084118855561603125485211788439179327023454530949364694273281927865187983505850586862906146223968189224932632747485622693094232425368000569661159644788484720317287232480107827365999187502106191997629789665386430794586930001171047219086735266381755823041676923292619325866591313030570376495957435285124956610764962304149261082003057115271313364082902853228988617342829524180104508076857147987491675833108212077646301808493625656306565779223934258600325370246654675464576453244663116982974592626097244915384619849993695216030133805936561904820941900266170938935782903467701670763379230391817987484108296311516882712845303974972006693292441605903143490777575000656200714021034918054632408933328895453969013992739642864492752502295002125442104952622806104458371847553924415935722052314458165826088023178639195526737966380398360715301593279741999133201697292492644342683105919500587958410304476143205162735617288842149050991556062835053293759275335023671521531266942759344412447639528550979156405266462358345734752275149163075934379204048713523255220965262782251271110462111542823459012411553600039686706114558486867747877239585109590274222267362324312811661247240254495780571803408352236586858811082265478145962955956667263883198828897404874854987308858825117039583095350161708940493182153648775265530054779344394894337377718911663991216784129695773232175536883286089745318113060926112740150773165979882770220938800176335793373131573952450019167705450757408071575064226935130643418569128804954927215016886992143322701578451629812124059911369101463522587316385385287406762362872971710224405210970991871938388108467347037723621458496847741601321148395410222394486966737514490137629746520906034177677155990986774724692887768440677909405418970366563024583204611067897334923089134944794556019100946133203410722564042376413297820378859790084458001055989687177135960441319657532893479978625888467932902196678057156461694219449852415864858269754261352317857706915095412479500042377362939406709421877398782882434976055544911138043596665323804841559413394612488092754236492935518918451336497774767208452770273626934168896456313344426065682833137129500602212148890887983538051293098734953042338901856449597876542249831562802298704886744072158737187887033526067013414400634958254251840235145614756890209893546793680690391898384586937379441823002995845085730971722650469839560905041792501461325666240017694005439900162828656216337192413891017011709296269052887783182032376086147400497687963445362637826913240033482590069639356194798940057809589832765691569746081817653492980762632079952292182348472630929898894618987208408970852041977801130305433680022931295372473053272214368910920076275697315321376271367348066041175627000054169368202669079599553375210089810377961811202270327411272133576679315893703210007563093073279655762867025915373522872008021621862250910444438740887649977329081136886187803084424389619483220994878754970675343238131141580434490757422171245559772287589704360097044933954280359114522348613897299258946600098235037812872082726352833570727947703371621951587798048655925035806122292978653938243562761361989881155819095095193743181349748481599132101712719945894049955665059753873261798407050712746303598484423960217917583958954919217098208153069327434969272461720946111337283651078204031297121343585263667978826130343572349078736681873595677863799900385578291271332219181963704813732088038572763620027339482235621183335245494662787816513419530943287491943606266108319603090613383799052354215831642369245723853553772551052632231288966685362112401876954032402233275749256459099135481498759255708941826230210001885177602846392029420900589383244995933800485744031673397829525518627713656213688233678890261217956031059552943039863057005178520008014800719543395740596987540049929497575223814460533899132486837430036899695530857802344957728020736231210885685053085043002613274532343683603934109026226891881079912698853897001997040741168435773291394881775959628170220961614032189929594352045478172483885774368800004449402014005089941908416295035993578231448785626570673118279381167914850547860826143016115635459255244900043405119195160534350434687263192442422908619120384134222373096879774774573707005500833525066971666676421832007345437355254698136846817393058666867163864317386356242326141541763982031917480200142796688486469751257998439915269693204977153500317266107063990432671931480978271791095735759364149011360569713931316366293788898753089512094545145055777340357751668711821635127003117037742223386863042635870695193668507289483948469023216244040449728932643125010634978152152140688466802593079098513672595062472688883775289579318149280355271563777260332512972305703832816752250717483947101880187912375776553914518483028383755593944279923155215185750153030343421327079505633459513466894136734957663733513336999453057568664528220821340689771003042290345624668842490968538797438801195949650041720665938933668993137746597546016128002214431641408441442294569772143998127398298682593985814378072045431339132418609751992730432492142623529811086116515217739590031365440434590816491188725186025822917273415938675463898069786699084990389443685827958069309646757875464222015690498464297116838070468801687297302329006289580659421789418741066943436126865786246904236659330473993864436135971448714860113514771570364637360468605551590380546199732099255807438457192479105195880534948122299750736616446863020221652149313253899316119554858793797518775232772353249334936610641244137569514706258382545600713813629982832903417074017243423027315366006717036314404004704292463474118987855930918536854197158324667263659734553994995111083123396923201807821778317644236564946673245186828709128003885205367540146120420761890049115908767702633617811305146582282650681881997045241053503012504021303307792929497128586066525822657435043489048194908900199524209875339358268377859537782085672156224680258626956049050359257973945339432915099986464406829662202638773025427462887925182769395695589153076553057283238090402479841186608409786944357810906363657622562921096858773452773672730035056374387993817756694153827043962254186315958420052901563416886015595728187731836331973511452632576143877487298336286794727716346690425689602648075233217945063137439271583173919103883869099995207358466188149840250117482726045043937301955410989344886906308122000220875828123611863079792467536765098799464450097482923175602604227460945582861145559910706985171189787369788472722535140186013379486541209433400007273376961139179707049743994575461336513228678048848132410724175775713771897683761385607645039324507416484103565710199768515708639802848324335866921043980584809957853149114249327899886208718941035380518142129911700816147401632805742030094455195262301001454516674613968930277301066285278549627666873711134628314954741723237334124118729100066388487289730992739112551293905306244933809734640718412177168817432174082301382221227750700683945836327864567026013987871787873821541770878845875857074532878723226253881200723561026346026461816723796295224632438349019106076777335867285692118596716982128273504459867033024591439737424764731783374398593290144123535989457512351368349412536762705214810393294213710665599672525619339336999801378794579339192835742162038326282621675191848027550478537075726968126890156103854819238325843153869394410043935084589618206458071877455764210005728890933465114432831091980399933458116682361510693010329135755229245365923755134344024091019346180665542006383521560617988696048718253569428506618405371441600780622823924567353571564541153290560353354252746537839141584001928440713403608903425904467122442103244118141246971975359318540995952171201227403500956782028918553258622093900033121923367904869013650054773742147836936860554181166468320594728093655739790082904476974225566986464866935586909622271734920598169931810330884874633017320144454289830875298465956339281992270842534846452260593048931202887403186554256224532040458999358979043744230517633349304325969502225532450000387641486640818953804934586956589717357623096778205595505256625195055771928533380571495066494043635675276601778872938379680343032537466997662637711733191153066129868706969314819139568367850665654297026534087690514622444869744215976241668579992483293241292344772342481730469090318142748878685904203574586219216817071814445328067242181944971142385096428600985859371776414545159899209544089544585240831210413196765004815171528985467656491895409413840165241040416499991821197922884358755814121624244446788193486195230421093394830126297664550356724832577371199856809876526486871638726194397994790960453974724240397116148167872090158648548046401845169013504338273721583951199422453184636709285328514822295934783522883639366232301829823650803516910520595725280737760825959517392790139174916062234209747452122467999674987769616895306751608773339607960340270740908148512946727005378843072025480925286188549635611338843603042218213279950338414032828239737144576525964183009795143754016722911870012336854814874102454540625612299170030731222117880641086380658909384496676465073878560006004401171437837907331391971342267851740521391421868641932836145636709862879391992917776833352010401663783261262643860450981571936940505108560150299485228586740066891738589030322438871174400675795062570710826492747018652560605305476920845664145885671684339665845716843508206691173622047649930496946133081988006070958009386687112631370497148377506985001448700986196193231538657054464368095471160540530439476296525306165866550140177690367469236228319759280473271863733739447285575446329489476295156914403394047739211542781433658326743456044345042341645729277411316100615546307563328357570416588886825217985209468252958155246886433333368129636092827435616764820125679836174622598770833618650703558381427806729353098380929261341258263164735858764419467735325674744007122768199621272236848289573951495046003509577987344088740481502023165636211759503919642184307384599078002433101818524100712742273683725491488910460769212657388268537591304418797628655482120436203925882711145375419235231133554519924366010023587963129599286438125042320286770567486839372416890831525664499302067225563391870406073385256847655320214034519509065293620149844456178488194656809150851901122500070289017251780791268737592886345094609865284805447678473729875492222726954060938983053454137785113825524952610418385974276165682505446340262834863368647765679574205797635889136881190024206002761408856542006463393115607702844566090768724192647483258242507337782400795098834838511443727539039296961623710645340778539266229404051139219094320148741601497743888460144075631316792226548760608640293355873763807598551573787860427659374746181831946268199199936201899349275359547492226421147530282347611495265264485745956626313466421091530738834613553996185932075821387555328144070081454466580650725835058826486440473784871817975810529678803976373655895321607452426064058621674055178022421482164940121279826869680854797455650416217580122458952237007314520230060204923504978073908763310612801030844356065052661679800635250392464993349465427502784923572523173176794091581442060817328958701438187354085020050994344867584755415121986395950840748565558447775802700665540930808296688003734382289127667215595967312384102663903252230799884298821241419875680215481587968289670587431092108333643761465447718817939816524992519686966214590898949227305561122713349726535005887585649122343499740285448458608329760268869857755853187473069437504868258324699932251772022723557711611101957168057676741452328258339014500338770102064856426105293439603129975201659799051927976560138671060411634850719386836600576181575356211736090839769123129194460502448611602650131872388249061408937534285958567405488487627201432047201509418906131015741285028944294208085998251563600187515656685056471282840750865188262911271397485140222415280987231147917464107746499671479288720845055561895677456411315325162892204963047681432527602787797784635457765847170499682826538834854372396154305305881553710058379093603745961444431903532484578704682601210584648213524302900748714483827979852275589054477710192445075150488442547821652175192466652920517994940765221802645199085489259726618636152284070873077206707433277292834480615929661632494144169374255150287043751765663845687277349935138456739428754026022493919044594512113873199984318420648352490502570075544654540774493010793326299492951231874679519200212895072376890816698046117177711070726430149146353276498644429975171551639940236353833521097950732371100029480864698539310114688097271910325034929432552056075868718224934027705913565219594685921315613574236407330753141666813561886844334000131984950326361156546399452073800302028564741344468586715220414188620181029963336965280251234780282200173450729687738909166355493843594101690102846385270165313311906816333673279877124040197018438145577588486869352754772534493154861478341144325134508949554235018716241305574229155425616356519841701872170104579752909873884238165478795189725357491829373406276061494629559542599967283620997185596198152838133103458098765663112518724120899046852032749226124396940846518051727111243762471632737195900537889044915397086117848887558998207039810170585640192809171866343032524692439349790279602659283784924055108365661325256266798747937847558075667278718791120009012259807014754548006553140264386747942892807499425289609904013765739268892156124740105236368052103297212318187225373619911706422977582275330208187268951013711142155648851556433587139277955531735698839411785811740720041956635592645834094677825168972086163563262868056155204585047176617502288123527525463217976660306570600939893393220045045667094037979828668172788155918911573562598404159631836344849186551482110692359791861860773007401168397150051324702950713169514265530460988775546718549439326964059059986727497193224653047258733587336231311012297162970706863378565875749467938849389489787733811743211634216771262055127901543641080135946441661016773647712548799856355432062108826352805323622813666606131261246018025761645119175513435432528340226104322381902072792497409465855046400130794486740047002011345913167566328597528253660831519871339679724710636141948477408637277459469316160949848136890862894160991889056350960637958699947966625647250650911066798363081358383757188003609213603055602496396750647125393361651735752429284907666713256698080916899285590337386130245010011062285368925552662911242105235061854651853295190184798703325579781359753764990033966808316936931771295510881174278355488579305632238662915384757996336269643433444157151177100771589159178424721883021970074936942331319061211216608266647203625724486440262067971230759814927621216534953732087321397789710192563561762468608647465178622065701838135179411814979976832227285167289520581858108610452899424083363816572318378502188664197841023418846245031888458273395077924801927905032795024129904297233059276210750952566237115985831332529782151292158570565364396461788249013524460670234714148096207641094399304136986239633946905355487133964757697785807339281847754622266532492362544134512682917182366414916831186335094942129651374790313009145644788627529789903072560316118441144081440993579017193590536377657697793631599660897390806468860809931072576430804688144282630992993641091749006226373132021765054476868719668479271062273249393639971041394309502509813181187522119101226297256934339247997179633821622980763622973258226731608962846201684478149054612851029927999476359658916637516157688297018511025093640364688922131831231959099051869593076706200861312977979528482481643152883039941619028562462605118123928099985232992990805745544331146593712940174689341772144392862507498163692248535191428629151081630754701568977872669934668114484946838570225111227300931009555655767223974466557345150278315998740906697216172247995811573048675075127639715204545265052381367752456477420262205500827999857939080846921940975314334845796230174200819761435471026898083433230769197525159911805202024397161186899434955494174242407235232882052768619706323443662531709173559562207929678111497110026709800506774545150766102384424639292487542718200723736754686501335971760447121734312545289302287249855173428051148458840954740597387892912461419700302803810937752122629835705787928250564374802972571067211342108331789051256509765856848613231340052905600415396973528048021860137516430582163194776654864937746686097314058818164819685013617595438641175919029000806942953138053813286941619331255501078748410322448118700181211946219126449342243554326694100115659908242187702513145249329094382553087036549615470912481262727534216989181664314371488301448602394183360045754561088747792039764821665569369546163816838788029968491750652071657746643849156027316307213902745348301489130914001554909244155889069146831683577053772698929300679760463687728470159283106345370270792694760526778599646518849136015663229569977787653966241164970355655107312815006038172916617814918551968720700465380570528488166919603188890280563106195133589280002234068580482206731450540851955518215610454848819141717170973325065329806158557102619375754171567028766071200296322577023529555363375518457159910447413201121800078302820540140001881288043504187065497162864559270771330036244890296509693379403952269766360048882359887826066889797650314432661206601484377358640013735851441186657303194720708828469022298228017510757306523202030673940184579980135590079158108590981914882624300455112855630686954757768142783051570078386533816398423582980031624024626298905282332983107674675250863146621880062600506065393360160262984414257238466978345772183995719306656465298851600806387354991970638583237944444715921222980954539265909023358246776585106507545315895004317528989622807848085220986628275323278613881432902267842201314260826557388038682839765219070853866116531566487166865468627997157530258759107011865293734891715884295403625979270645772688039747853237486833357941799871424966286795407417399039839672311560180862008479422492051868134797803607646745621838115065419754573717052298794433330275557139625973594801473698864268413424396989043470419719407374100962175049142142706779894992718105428298719212259440405554904584601723632389666488991190024258110628293481116316479571650722529650214320973664293240526562783973510999715137998777512557489148441480835969213708449972404661225873715210668355315871654653270685075930739596592409496814486705738440448930697830802248534356852620516990549309705915328054342389867192028142256242618042671697109499243013950040601846937223038632933390153233445654200227910684914865443883640225643850274934634379802963669873601939417761942168728749618794588011455197376619442559468772383375409548335381344180937615246340321629409964489902991726888635342059606914926339627964318072101900441391269743699400552077094989968967822586388124273017453775654814564283667677015415198426157751025245398902107379654923402715862033893589505162131427672997666063296872682108937012841375230554448570560941269932973662645266038027745165946148965192504671851683051135911766383589078045831601215212564088355054431919432450372873598709509033246119786002545263892036373149973520798508097886749051713939954163854990731162232636221339113704113550377155865596078431985765702787758847112065069696883935304079052524477843450042403827577080141717408644888758968501664545814184504155135024357573998174374479077749823475377782927485026226647478088882265021181659499167210695341690308880432311198917764678265333597718504258994341860202739845366610280545214478350222447574124892046390291628421498422651633967949661501725768814015786484058626654159733930533252502397393114583532472944788887752961649666232881835016863777806733918535517287467252675781511438122652281924573231110853805161246196064921237237186287263736245209241544308921932321362984986151244599461482297597311628182726905493872160374023495092934343432176189023763106789582065205698757162401093435737937028660010132173947345983761758784886735386685013356807856962396280974709875253751115290121648174442237405046616586874583419788776555173986140215462314768477092966254596040073362283732769610589175730529868393975049318269504442630234083983738676300208225177707021894864841909122633977724657261915661112440345765858492925996844094467517850305690934275573080744763771498571904780442646167445352972383791628065798848077218566157534037677221863568476317835895833815773783320649075356912186646095277365942375267410690024477248087010671483402571794625758844274309671221611819258533159095388454357724867149393240254354977789671674409317029510932659249195048499949458257488272341954366967616484502824542535142035478878739757100778229188743801615895055098395351444226260272846695761849232558763608738557026635087491439402963126352937387584832241223911693345410803474108135584019611513420023218305824181909457338198342941922447023730443300122445543042287777670815325698988365335903979309027245796047035829000215086674888831956581853534520184280723487972379904359466640474909612355492087874208322378864142708475669971820522496251152637591995777681998033750375742943522613672109919315461681026572039748182442723406411595962034626145802519957038326194050145134894620404027317223580061145246674515152178111340407770094087949606051287984354126461541354861678526988210289473065143790846481704926480302798201189262964550202513047570161006687440189353354247107535188847761711405557563305321079085598776158970612801863267967539399347029350640151519100462203251408022855415918122628659000081320038645886075738886951895905902115082917471780517737697988489946804620939853420514819154686449054919000206056268861789032148079767221017159384374435798565679399748266121224451993464793734942834500085740489042052349492627052890558009354587176576864227993089447030365098739928627953686023721231758782290849086004965650836257475084686946467446363034550587274499657655476621497075978472533947706012740126699103044864706443938128103926152808824118325339819896330388204246423657647965281842171418391020474787860932137805695491815927760969639320931895879831786670822694028677875975386887149617737363871481005780579142449880189985380078543306076727134867226979308904529021037718285404685718682039421933896662374028739286922250230755652217185476022851628724216537939327204425175618443312274242302917516324175791339036659315411403448911300746485426326382271377094906445311914127983757326885857712183574373285444982387671997524578402590090705717823334621432066084416650813643407819413494924975055926446704227146351317862916813448842534253483674227731760273810762944367760895119714010413443160899374241947890114535559601176557688346134096821163188757840460374495990739680614793836243266987563926297127155028159782487961507481529652682809331987373236546469256593457467796583441980942591987031349899096801236204297900444361295759290255236563402093417908646901261474711605572363077870593649292738304556260148701235439716377928326353298294711130446399784349810369941461881756263061446520450237314329848261194256829029997944786709580685148849751013649007730511641514110359784358413425247580655756496245328534618281120063669841873651706987395075524088208538309709979560620492890219320955235267121545461850907446592617190060626247859952133454236536557949528281573897242320264520523942803048337443239921230857441320697583721640604674952164866819472175815398487855637673869226492552474023015154954984922565384106117479557774075052989556255257729099499638760873128872122938618524684954728890525381632291798597395718810911061824016599578426787658470062266613865377509461014580550835080248648334597283697647131631587598892686851718518412070277582071040097920434934196469043641048305520946842503921692873690468220445332901101741529974285002898979063855148650373999443199796123762544851190512146419166174265916284505667242157509719692937974377476613793634073861648393270139684341579634146786196832230869300082701456589598120808485275253491056565484431851765425965192358211942661001007974687146118973504439874997292098273620686532987152822413780997485567093378752566755672910174047882484567458997246863599900027138304335949911468765652130342221645563527345273446865185654702385292786430683416539891851579588839996631985546867909669461322707422811030610613663907940746866203976862269580063753389668821349916252465228594056114971863221700327390901088072313670267204651281369720702365931886141023573500686413643578512401437282929826354974045193051891450587919455182359720298668353089653723090701831279653666269135077758493406640183041074159309555819234847398305277087338230955393051134657870105051335913256882486160025542089708560869286026989481355495178874866687170825762811057519945347465617817857932565880996721439818316076729624261149689848384372179715165181016759800506420115994293245251982490477750298031314407011950170678093749423766295827396809343451083200768272389668651669978402709793236158153689050144758020700008334789066058360899111500444177199494985282332303517301719908349174247570332700043636742691695965083425832837195582659602404369507887647825768227453322231677844552399824124070109598162918104086069951446680947938361095172490312750191534394765123773386329511253854930714485774353366794111452786157762518897246017172518655620072026444335718655211419685936704289427295218557338759938978872339650910547443264476370596546889330281250145115033134416225684365359332815257555585816433095426361326881136891058075339594354182853349436785269568094328358070577615103268437700126066855424316319227825941541383044462196141337000790289581635216349269018042732852523697364416942424008880121648347330559146982191425990597734521344488581490103012350433994925008331215377633486646237374295044124923641649662702417045408984884279327883415970926670504121368767279104188454043046908940996403987506051247921426764849947777225825506972769305490605708819411686937612410786313462051862537618704493978726572673121523065713836837632514260406308315609170820884561425250859219655621380455029607686448313687924422529599583277791452365076502078272942354805162157559316864146138598498049099534969105645593442278795866301749933364085850517840223188154584423618466409059438828817196451508955826349652888023522445861638353198601359050545062852989138998661071133343894862361303584872157875171984162677657025353310989194136077650665694062782373818052106815920838792036943096286196933167916625913515910605637258208669417232225788769170249318315702173429449914861707950620193746760572602277826738167538575190768309343010852651824140268120138856379097463359218095047632366570403891959639750928848336323501103440467605497519667914887401412330693698393698818927074513441717053141110387497250212406573661391220207268729584581359723071587623032336351649088019744126454008309802068196560795673714263348153214348354195214923933089234204256569649591507455403009189207189571097092306548029779819519951038065945439207083353977230296957722927456820049730697549997964175316185096153605947004849025986942621287216200018685816375873693829652432447452014420163075468365608769984952840014857075447593131697340282134109802648349287936665370694000582846425016637385046588824526949568674977607637393782936748698760823700783189847883441863588387662729512306451634896312219061347791617259130983477833941629870276545745266346927961121588822581122917472630806456776046348181652102922575235169063920715220230346049405022941481882028193781240793568884848293358593264660400053787022618581772194100381511067037892768460757459835390965809638846837354153262847913022724995266766398181973358666071802920388362490063627550041862953891322830913598142633067435603488718426415651356901790937107735318950133018463284828986549342320221900869516062965157626418681108965182126689108762942508098293666959368841813995470419300173772432203377441781310611425495627241430788358505610620844004609018426586054582398984351677690396682772077688045362015309860656942626183476872200262020009705781072723641298503458139515131320513005127119928904749806093816787392252738497366287728032556052246453476458508934048047319518002223684457229051105523679832630543907122400513136355435719410954150637462593006522179740810709766939224832279261297734771211456304014036044296313119968595638509580381142067166686162064695468483164314651081429257333779577585178412692343508104363538428060923447253129119472082482719717747215788831340359523748921091303400227813264108069408983059771400348682059336980124432459375355030607481069775237883424482373471533523076556882714753685226622724827530849839100144291512746291691850063262029881953880643000244139845053354309080341908553225099729730254924781516020182654464900210948069120304569666591211600259114733849091283305376080450436617254510641987884367141561651169180823371861112602974651341237009807640708291145487585370785881445945306906990338846267583631129711205174985201982239531765108641602148347392018736976015548878779192667564196352887633641587200272872510919526790576346450624247413932921879856091820828439586845685916967932118312530584107741912303858401044406468533160822191675408759894862823074863845179177233134265493326678924117091951968957900986332653235672744012731849198119023426624969230542226100067230008520064716619322367887060018226160689611633917721344302671610131953315081277263331473249784826248160876393330530862158032752519706110487960905292106044154773872464237933105749167744381116633852524329988907914394260626125646692394676095305971140012511645146474968137061434432878992210624691785374593181220313170871232249892929847211234639642251248303191734579942954939374577982006604262048069291280017980319454029934424580326195902419043111618836057492388871613487785122769410065697632495454375587767464798561487291799993146558848765856244838998253529793007975950180918568984051410728061737307897037556705488435723666025280712814612881440945649512535612708640270908600862573874896811987484083909471518326072107799003339367955174936165917475820048606190477700942289427186502098936953321595561186877418018612368458703353485485481926170882483116258369095602648150218011436998634490345065630332848490407591226994789512391082129111997745290176211017562064860397173531848756934821825575207386091609656514535868154410264201705575677920035082535976209916606130277955034095982560051610750471099663435683863408424547628523563952994529412241868447939091462762438397012659328799901517211360553675051136742150084606311171671925602657416654572866611678106643752745245138742946830187046180879690802034807486550747935719684837507009525784237431144264676672091860228552854983626658978768927734111833278836819485914871468723530855646546222502802399244951064885626073306961529054631253817556761778602679011542254514083522036314747654954217779696131185723804243298333849765960973833344641715150508732597671385391821570505336487566868734245156260277653082274852948580678112902416042605209836926008277514121523722375217131182603056467118633825988615471723704320640570428435890017595065257289840480004055287583195172050733051871580674203173803130634126120256564402877602266125730196728000494223740706768240043756240866813256188832068420861237569305102239975029494011760355410281746180198903687001611805869437374211234301732013889728132911501212583019537899388947156555686944874425240659787560549472738017805466139573834817954114708569212919409692991324354187347688513370671899641785124075519632004833659429863468255381409285193820959970295630146373728554890410801553124239962144178442221922580961259718456689896426877124650759096330954918782152588404065948677549828114724955100537189998971680453569062166947881513176606241621666963865136349433009453794064911478751893569028131473244752871620557563794549796479532738662992385304037904142374178903914408739890746041631507959148645742510783071616306183578380849045967297050258448452528313039619613634655699184720563113351049937625331440309143094617398036781765934523430191230432242183550152382850227901520489514780315734949685100353466601959619309019691523642379684071405341639546569970348328536755468333158888316934614375422987383538903854013865722088155302982355714347469976341629546186380182362299510823654809634477048383237105104653033950442482805430404236239650335377732108338801913289190870874341425499151797900323890465767290081976079109267094757024842798895716896129612244152013547352057867657843367891954168458160161280116515837120193650942544598609003330528105263023529351959722287639888865152371577814483262759992253442670761214890239782076629402437539273016438341132771062535657527913764320714274368031794013492793487213931711279116217055368351509269226841852495022679548682451719483373051421767141822889211994318678646037628696298460241542833508734874154659575843605302719627563262321634481902873278124439237618220869761618127651456037627243575923788514022369953122142839884426924975932499801439402324764004407223594309725519485544702272776640778569910935439418285028315871548997611661494080099181055789477433233080855268582135373141217800116504576963821056782248308537104427455175984708003053713410318764014241872900249547915867119168733671414074139173984874365660235821740177182871902208330257496226537327388032562127950230261035401788590770186099452019136305017837588801679332764757598223181999775551740508610486695400463571947174837763874247644140898704220405894979606151836081376619486812818215592660199327900623763117690657437285146322166636594022951579494462622904260085883585443109094481346648549154275902133476440481411216625727185920110974500545303191851885766409032736462394506458030636319421542883681937281684797642022084828730324827984656394696089690745510629916247374291006833309092399652704242137036646424663197173436561059506489529637287872042726769244060990287377304576517099617423919280688712499034945924267555690302579270358463252505032004576081151492693835641939363347694512437491393985390581682691380368202131903529490908659030671775679623267041269567486237441121025408606549796660660949400550627666200137021568697309070600279209622139376975932595893257516634234121962058495673913495069778139242303051542524705045766031554054301390173330410544527156962035594855583481050278315452433860678309612126175012377947758190993198207573119921146477303459219230716137308911398939018015607387458077255349358709644519679331751551173061499218161787994577263807930684797721853179903605057768762605663442258516003593422630082101153823607794402299178060221625038870919465090409080656734466962398686689487279736487854169750004894434927632118696567992545152653564457437399471454017079250569204566214288895039430440697551132570064312979654271508377392257046001780239045038859223615786874341588203462132938059605540584670310026861698656368803182200460133211239545730720028973967408949111415264354360073298771308343120625248381339111148749590583266716891536074644479344902599724806776153578152632885805478521237320824189266400804076418965041149133503042148741980047658926857513795774151546638500262900223835303879429958915105713947736283449724211405964580562751676116197881664274394957723466723233180878031741913509533028825197823713391519127863416448631544412195049435765911887472943488765028297458917321360478397598796362356818581477815358819872057421136689080387835962835072487362659784959429960168812038121907780274472894283670194659725993242081869198426728578299745379392703023753777842021158301095255471688768517410542766728406297422699484576728384972342185030793491528837333354667579677752485970212044387793590113337921199897149967347753517572636264584183349362328220531397708152219064718429754405219093645430969161645400396117323104103969392010152353994497688581306579371074861898439261373126804187858078076142949707415409218389975877868756677034829468901565966254596702522731420216283134549510903089854595816380992403223158242009991934262841193128298804036020099692971696689882204802715106001172458935339783671933190389451267054257667449602582402191958865561254406853125054559233843935007764718888527217782546781760231308334348639302401735005647564497867384904114686971076946596779431716288596936422049326990618302620890258342287257617765500306630965234470316407935272202416258915835878029477132550397007034504458328239996708891006589464137972476869069591995075229614753936282767942427294195905567935071252720684172822812554999834943546370234286852687510927846880469173022073377483263953009586459441184729310828964057300564943338715227875571097383456322291199570455200335743612928693626096938080373801071382912527897793660446193739978519694733276551480754597227987974743498610594661189057032299588821095456439417992843744075500307024812294767654885125170784092356849056032605278099416728322632370124127716069435581697314947649371197416274233820060253226522643351913976851509727879737489602074558340129390722907515239350183548914741083955752580624115491390226293068329483241312390213001329880689992857982164276059195726390607110146459762786079318612235065061377756535022323724083718456522485700137745257404088421129727480123109229479024097713068940593192659028638751207517768037786099393697593313921391791856801802309904042637504407893582360695779994538597368116439481688107107559822535539306868347831682465757244460181212447829275340823144915423327490210534270850322393101168116667054229169063472532402835238426457364927445072035180911038879063109006375137883525294200217960830777968253253670848096680085993853096701095988845703105411640241598767834041514699651807923701740263869835838339862028301435814866924552754932020420964106065291688934742272971215727486096620483069413692312939285118435669581018296488243907308400128317002611031112713899104559170900092316195201637777595612943300575434109784710878700421662376858669589648051419588282497048122523769900172100699170286856337831959769856796837823980824068118948845790982628406912946789486061930964032032433972952333056094806000371478001843588209251126273690993367541740230623010725053222686451374480496531257179853858726247609200751504542318388859830363708210620130205229163817450231913320332966877615605843802879144941450557815872435787365348038036978929418968359966196262263579245841484869757159534271729775737089807033641596879207447675686600324639797632255859566692561679073260850065185396988404558822921034658336898363794974402212265050217047152827847653749219544234392259717233288753114784600972979579180668405041959850856135762809820509541431208994911100116312593089633653579285959750873068172316710451937601703123805738655019733749523476063147834479386815066880917923882522417139335276384511281446936043245742340924889968359849024006755991173214614955922040758355664528476822380750295833696891882554037420859956654724287298292938564598658193264481469491225776880010915689386241732292444762806781221523200323322872271447245494977002948856726322762920704147748942440162640882049985637379001042975885226158560341270042515458616898898626585214812379129803173952911022051237301809962178700784066962488638622347399301677265750577454638634395448785984432613839139620878953097086466819929041394110785118175262866800027116040848843114527878383800379741258515388027694600382654556381795478146099132084160298816264254034872636255092734983872229661867089970640992034476547758719309981938019322072903982517890425337477731083676277982798498904744307320993905433864847601048823356883485806223612618125337334100106231949342162371087484407784261105543431600564217495562953912427411485907117725377631293104764588323921777636713481098105488473241991057823529647169123664658674491823320350174962909932329192777755109009210931175189277149831389580703655375778702487866421726838171900347855678842073650999706529869798751433352220218106974658516417524331984707772197546422931154660870686278053493799301412333402704817487607277464339809942324937293539904692015390605831101494653781929687770287808120204964586315899357184787138744251386295184325405178249017362521532013614443633891427663852721714608554053720850803929716912743798647973860287532639870864855366382585212655519705741128319635943889365390595141991174588678714520548558931897591502520622358505385269794288834361199350909988973390568706070598702898186578209221118299923771207634505517033321370840123441542842193514682652840415048890066552343515569630109482762186202353828163824850436193242402263316061257816970425615428779504880980514724525015700371249431727986390239815092310563257158199282068952421601306061917899499084942990819295194573786352156938138768397990052617822773216066132147757009072493150441088494513125648533160150953341492607656693831750950057723072534130693789347893427487941319897089564255250766150315106500710526482591560496301040524281415901556780389882702590887179710915594839402692121949860667141525912456269381950681948439684696429817372818779552320517797301718866284158118326788763291413494213567139213361866346136831411670001143204233487195969812239631672034063580120270608161342422782860980475221098147470016672611564040729114903595320137752907646293605946355894388568075189437421051814804358243195252170622511888439547956705672687321269981536801874459229030497218552836975144427866062509317252066069525762079942378167657452035520888699635985026993758090188340817590572053846414399433955348223471069118283126715007333185183538785692665919038568330483849355877766384125441263613379507493936955069967478956082163764769927884274738314944876871854260844214751804753469419426821586603427041748900035010888950176993684090761068796656288972280618024870201393968980025722975087130132650533270905375240875367574010313457811632143285818553247664605831369981500184898273128863546738902904828306470170879309882325908759450501184313610151511117126135620541522422236858225655897354408036838042746028415358120050107314396543338020173551768627040384676415921453645733647363443867746473971938750110494594955553453121136444535042070698726994915088576409909929651245355217810227259271911678719790579434910652331719816404582206790519864867655535957878820063151480231202110002841062044141172371559681824079279808073957123225369710305884077631795231373780047011819401020662489496902418127182812590788473904300755336017325519334746455520180883975899110606469040019222294737569923469407579088276547388606043762785065282191098164556455451646624088587089808480307105465884734264630606135921242855872452756450431684647808758025606443880683477618661447791112240945376961926543274987165343314306148651105365917396622825645766791636415588420480847614002964750029719912672011245223925263280008140426975896608470423787778047665650316313629637209614730619508332471615756352412213289697036980301959949670091946085965413288400165356989279594451836399339633868293961818292126785754310890930673379009816037088833237193771444336592880856085475745471032280839722154530810648674182133591285966567298935713699005878795498420260975934006051156280058650182134124040175765990520311358472588626910414668623752125587348801208822331216861210698525211640519377061230150907008818171038508476290085480263789741508040892158921465173467146353896773343243942216917474554880646163621730096817712421295696676420144716943130715209545535364532315893089196410082027361831861141118098560758003677861034114050068039804470012210293471053992675318920597817972055980479324559838451996301228334721225037943034958309175708258037606486645617292271517475515003507216735061113033266154924175659082836537707720518272607125166006251929169015479452770630757469496656856844817715174816523213653752495812641376045004071795457746119971394032123302035357787817799199342766678331279968228109945538505461110332488632155716045575250874846251266684343469171554356074982191779262928937350556691838590779785773361829246301527205407297217300125319333229520115519546749845166650792640425524992928297653076863708152241032401476251317130036344628089850702139487727089401571735241682672960824478044835742235808885526229539048106185654597117675244771281862161930717522768100359847880065543127731114947977493708417086401609354059572527456120580626552614044870638853303261876738398520431648566323556887044987759489472014708745186260580090843097014409384024990709237132941318026463331806640477677073981765498749432811576160492319419176015937014775217993970795345604980582569466734838949716124995104829041586668717435288083517901920214769457669680910113275657610522045445217371705554633728945574178490034883306585274087784934783179463059335377034650123747553459782533700570907855938525725992710403384286152061107321103235724815456104238856183177314137670551211358380391010990870046967227733698471573222277686680291179605958705546670911422519403922240184565559629409838862322078310835130858024839558942121574645328903473540490076106212231684655082162810478234283169168424760578816535214546071009567413725265669915728539618384866259842322982623308213964302683829408285688962897508349416508811022084441473647617315031289648132506952873019366760019440297777124459340500351645233208913127135362376520842384830497364297833305434004966844589966779452585524901989726112556802173849405774653711810919879315940305696625361060888748614077063700897896974088109778293049007279711494015052730704426775235521849943842725186115798445613390442678000575639038666539753235347670208346289596938936545735218049753014101459923589131556400808648857640989547129678732296497263640119054011150383822815866986748126606582930516260507044619411328833200176519587413785866768760443057718339285902795779943178213576149760191036394392455040058894831134682981242632529290003746838889809260969877109341274576725823394876921606237258743773280910296894333338234741188371881555309071692747918508616905043622972294400854499081897302192810524653546994396752917455565443055157597832484920563939078460579479031423223589463137013126839478981670902459171628939375020092966821063805345752771186357137165508437531362444945845122202533553608575087857231254247348596627913378429895869974790741191373281919593137643456793847304524830412983130241999383792356783518056599775654161387170771979512038807009122942373566038770984406482998167771291582987521450149723618187164495290351042099711905281115857260557673595022814877131491717325202407850379741002084365399026587299902116970985818904232584083716424210478603967533736105472000470420937255112780934308202674818824100273960002857666102279572869243917755611545262576282537092233182622209701882272765620875421733269622394161428113102962689458811116175369616002771519602596196339514734994377968545228483769727654119733286853785019606783221842404949583676339420931636381915428535033168439941775224289732408521776474368331179462484362117740130945545405833490339765658661637869340393148229129716127667178572902558692143158958923247737517607016115299360421273861951697063714875539475447597567845226378790762442763701674420965790049134396856337109131628517458233196538787827697848120032546167507221374091108690095406844355391237814999430182032995975814529571696053772799942959165538982113901403296078340121034038301182041826467495695502796628474854162654516103880987165068444679837302202368671678323728722199309067007486400657051241745882476703198225625898427749271774208536206572294837375457353321620706990524497637312316591861452531592812191947526140520571598128033293441036115087803651545070985391641922798169411417548696431580374217019605641536776095570599608497976795735717724922157046390072344716804972335752702478251663421606619720911685417134135711308656804698708345225143594994731039743619604937974266747669651860424483654464337450640508230929795028895777308868730864433647848975458837160514413550625176746309898744722208490822494263751754325657826727758830166493252960131111364982473990431041176059897041950965675749695702639299057452967757211950687266748767240497220238822036878150309022550563618785744697781014593787597627005609391986340794979770060215753257903949084809469910052501776095735121927056911878189025752862665106795459196261815182476625381710988328004298935714148317961314899342101597623884741594579809149895451549851419132308326008643165528957235570473525918500625606313389613785099720833462945436654691819542993487301287153916324664103768178404951451648631583516158514939868428353185978820039794621712955876996269084665230442868277120156996022044996710172662208835691021164405185322191617791156619636752987402138070653521736373230665757414009649266544383437504167986180293655854469389579414370287451352694567460179338527966688775367081539256506362530593874674867018798115459881108508488551604427069212915571285518587550401961384777058080259976524850622472186674315247892497719362254813080228449423658760210628832132907099488691538553472648436973932130559073159972235620174835736893157563827223861562866596401331864833104006950022609646063729580591254365356510831952276847432097104939316515076647126176899656276216356114316661154256214550110294003031768160386947962442666219914337937778712473659432936128818423022010205160810556116965734658659831688119574707390176623600488000761363703448935411495544784468202777988475304447594289212999964792479104423065424693289713095812745083661997083596539234285376458435213092951906909455828099528298949494152798537470639191551511992761135880879745536348875607862673744162668429782298555766059941633676242602572843248446228645955989950812226370516690911873817917608290518354491416893219693978841568377716218097229296054519889657807331789122833425779355361333697892177364673190176002917918588478962788804980077377166593566760379400420074744971923485417124346305790256426209817817651927469759466329124523371887215833389429268136355505610054532709920773125316891783059412227034462164447439750489335052910235080353095460914365369316652031216039967562305300364614709222856381771619739583827329077450266744610331783758118325750424094900584166150857460462863568211728115986198530374129890446401570623113761507616905931903970942304047497627568696251421110108376747106137271747839510108136759239939928749153052000010135407378272253352675586159902014627834412724615881356886108136343713680620299128338047889790771588902325038613065700767266820694283177031833829814388101563180880262260702734346844965505142805914667667086986823409001174999129794128828509522407112949956258787028135499775090348204950938086412914799841295910378174503121339883256518969922682170159229471112252861576347333716727959679017152200667744329760507821435650483401566550109692366442252748515588021554029291225697956384992226279604467753350555957075782365164184305026836660302312200340938905775968011317532910118665673137282947948063473752513203582957818985510759472851241410553557326559946187039686930994610589302150520171028705600581544422593904829437435491390793220132001566007062332104378781982719516803462344275782927402497851987175928153450801959454679531463125474312259803579029259960918912520156906514423665058034578615972947254200227306216693877708870127541820267106964109101216747329830521756535405296756188976905788911283638301153931906731587697326198927399051338733379953284177014892555061771732263436768667844867209643284613638630757935433322951351719553640310258519399425925069933206680802213163424974549059966523066412087291357932445601506403478810433886677691899992259028291854982067515997133918863070182970384353007110431815074660791682645056311860405001338321917843181243652821916719784014834307920269562270463307031610723909239864606404341901840431327728206354096926882226402142308743713599030398670892003101413338301598905576689442276654783842911146520696918323533330984748178572868676710225717333070694478880468767784335067961634155527037776121179749532204238381987916598847134352854474357568761988703670035888250595905501461097912288730601496057796780283261470344559250253088646116934601973521169863069211077519468908741675638458374117351732898880148132058914930929801648806527125289506909547424197132714870251995334104372890423264860390429998345550936910285594308216104575642147847122927745162737320708712409274261685495725113283482551526793941175957013226193521309961994350407455771695472435166819972674530110120134492119267678737779286808558917135690283487392936871955277249063144445184760592857569114529351641856855319371276447934220895861036331786730438754216913051034456845443197351767548039000780752498467929520734087125185269407739367843595216678877480641227328374249122264652571649205161923534511273494763003805530337667670690678482808811725730194403400610697615842166931082142075053373714819221336790594102761380328221890518176935609479332098900507344881853484582860352337757198839706951986915186649914041575196051087187821771694426481104003032765410494589353532847732648108576943476544446999193658963533949658035668376907823361974192611767413307212970007989603643527492323045283748538401805523782867429980892315937683518250867814648106495799685053609240222463585794040791348333785449557888293416618809704327688974253896187170341571418551880089917610248021320906848083707847612246631460401958192452787428520211394295652044106117573462640115761951155992890213277439667584752328347106857537630309256906650770173279422690059374847738388139056447531257738691158968742121765732943142715214746301800625780098878209016380537926913289739933004247686994379335465816991537085264887747724984712948952814778090792767007940023929790629699439289607730268740768949050170854469062588509643786537099671448884921251545804642975047980979787596481773767921602058581836140698757623628668464431883839144004113726274948722019429417874903167102253111628615294005956492551464849686016822349770363777710394054216769333531748665918902597964964571690316265724168459697629048470033341314394550485339982269102615840417267817285622771362765381055222768168317800665643945166149856664950421593129045879998800884039467742062402412532911270367845370481312495611146570956688048241678449597855786512489069216112227189180913865847465904393715871133874389858572877156760086218413224885550306860922743600772664307963720272381461783697484923041125471530971179101673299578071700653371388325501190779329949417440435330807079926666812149895848140829180427806962267259145243192104239438039480092270106478977186519621760078390413551819439434476190584718458226790830044444107720503186443335132729232458184319187576241825650270354448329954468576216401637733011680046977382637658654640045967495239509460861618962141536776753663230139785785492273135515260725298711344217558648197930061585637379514441482826576045962037848267297063191740905330230239958107105289067688444420325587791412800810391540837946177877081137160593987820372723559372424770517906734047164212004128276162355920421341610547883511532462265171762000860571020393874211587706703332766964027664356392752567528955082822042468579421899142189253934472847503755564017521072877475573242265487734251432767705684173732008888196636056110573812153047194710384838230676411671844027113575937809232035578751779803428639503308702662641480006226652981425541549088206143987544639005057803407233552373249378945257026480239207830407680837756073174747830302902173522720930190230522661079350386258110727071066137920762596770910293451333810507599919476176443522042011061742354227119389873665089290664063858974192249120015086773529107643630406380504047613801748346817545118202221712007857541225819293757920027152228175234860054302495797447559006854292020079241888288491127003462689688344959363818918472995086945475359895584982864350791167964008064772859678359994070584395448301781368519537513468658607991265691303828937225657527058852424457622345261790364407696089214042806825303510081237447348891977620807921998184023515055813932431677026212928776718329335202467084259835700905633562564399934813644916225597209944041071736761857549066147897799452422941027378967208475313519868426768971998362662527948454577901382781916758839718884200708980359989019672984530611336225610958676416137572832011160119244587113788697188640925349946290622417647078401539799211567996164220112453286214225945761756307190194280074430567409872790872755125874282561452447346703332897185422607007045295003728239991605802202518707810019477087901704096357515425174057592677162580480480834242243644279438496031070369959641269746442691417256388284084714141064919034848143707016876709407800284564216447664652490981181493839452148489923048219380844253210415785210959428055692279747359359452328684358962087689456937941219137022362678250436869053744056507655997824225655740490936999678842360785361482438119598696006429685312204300969125758154477924991312644182896247120021947086737368233819246272156037396786565272328458830650911043202841923799321047918186400507460825115516510715707351411828294734798964943221992300370838005740765242791610874954731398568132460719469762251024324995450237874050713325286249626613088319509021364162239028601713923054280984133921650359408532307746405359916870410662370048159205741197480321801823697376299977241656193526780458626999291598828997108946614888326662317189248232488683713970851449523864507393624938760745918023052927549491837357736434576238574105279014267551046520217564985941086404746938914126911766916301516250111739521809211342924425514344598367630376414108177100417630190095483956820444182633547570477035290293697812145580373865403983668372087842977743809677955977963527014524966048144327004483709857655589673985390300169474005982724284625398978330955780587262069088535895596919462185560083015070014861468359478735945032112237176127954092408734861062475890981017612372709916043347567141590962206893643017961768664201698284397160017666687101967640980816988494930613529052750461341956881347174068321943309585808603530468014028058716956439654466373588376174645000471565771317159463085334940666754405489106168565440456813699614674510719827498713368795154238447290140424661027486085113933088607644663241335253874893878033500499301800835109662380393989238987312876771145660475994046687559911408634625494495184791841638293256530453839639314739534268085713745166508101430465388277773777861587475396530528748508525193593304003424000607071478027501380776610966207274395327969906264675921053909119421231356350061754268889193524913777949232352628280981226287818201193124841023588164620678998141451564022145856395062960036156148133058749081635573196034023027736220918424645797590718636039278697612522631747891496690328822064783750975157151937708365178072324312589112889517317280200573793156406148158891496344012001264664773524045837846756700095047972849818071723265321430281516807561316006735483786957517508916991753798054428518652351312597758304289639719287199058649858661425373239281598871692684568545797437682957782106643843353743105656169515048512268807830270959926692928563895174228377812568641353606370195403411278922594170206285806824338515044610905882978051436185636503501263361506668693730477923399446138182983127312762355414376900386743298808465121020787611433881980872337673227277294978975815076170408265934169746816797152789404330389329140639272284294684908573150846290234002137435282687698759130174181994118101346297286165283085495111233828322088531937012897239292720995656735476242457681522350073872915555574308167791122624737212807033077315149123072240169595430113162519795554249511016603642301444064143713031809681612385257606981459759759955315907339243507773017114545616460491083681019635282007152179629530364705317325590779999155962890535107871318355674731123250924999204873069182944619001607749109040603018500167741947441486896152003573505278985763582634494403069549530148759198027942732106415399550740954279171720250917173469771136732302241457967174629407781379642012717383446629671121113796540735267753340235914218338353435335819628289345512437842190560023468315979672919895797163249976860117831058080642041644449734650716218249163437333877463729292732670398937351975367095002174222914470872585941756081508389991890130292060133625623964518903301439354802841918691018268554895955779808738602415923433754936279967082973377379342209597422228697524922319413565355776920058481793511667791996228416059234089332530343212189356619485627486896437657723718539384299493855616231530554075006981805367594977416305741655041687272395622772266871500805675440261249635587791221809831869375046639824070173046600342416910028724078381574753794165072574926123674676589371725153166873569844494618538146123940561818008233085809416202265630019964341260799628453360982799010049703267112809587624903307363375324581570929295176802756001210240516497447599474684133719297100380401253660359117385785328371427166457846696205582655448826028909793856482984783294151873294413619850125018757737969165675849520833906320471960117878952037903647216757093492695906231037239293137440674353653418776994926970602999576275948071678281912540905875675077223566357270995971824803008721613676785258307812746664871224329336029695303410566372071376384857373052973766004602860147195598513903085894260545081191232545536095512134099252660587147274312491739119628828732062584330338029365252946841085031281006789923936255854771613301109943471246584923348343529298730746931756410264370006071442825670523495148833368668794244042931042584722187777426403215512543528602806959252300100037967715276578370521652871796489247000477771247181429499135902463753015098117696472115100679386501379135281739746312819599061689401420427235924998877777213350838383610698754969023228106713211906590196077045263558090002720647079432313471117181491311595020339170548294723314211833211663677331362418164730267201614876912931031248965158925785397798184430036209523371718047377669644550078596504874097681956693876768030211609253406190848603010557897724537855398820265851396615405202702349296139497847274912950723174531259434990804563781118866431977976541682745636978448959172513603391458390095179242921480291140700493478173373994121796928576441143259276752157453160857856081921455064047919481115434963972252364804779222045651425333972739046957162825836208930172840665167148075050576233645727869394527866779110186934437918172639198764599513686906850444909825883724354917332425277717661657379218640143192750583575146322921953367560977077423439611333516690998378784529371000564771056332125718111444022235345047278328840101618633599873836734328380336141601905707469370765808461123463249760625109781392895027750510277550238159320705771929889323858998559890382712587550223134854990600390365498907392217348399124767603405264466064186262515071872854745395863170032115561269310548571591922331486263332717448423823471748867464368309157882780870351309358256855891003820505563756777886979724261701941176684296826749618826384974135984001331463429518884226901310128570213711541039356357563132880063849209106634880194980929213083631430934503320409245761244180331324406353746925327969173460049261085405781850576445439541508691156560195555412942776788381726388391976434682166539084834375465143474860762678068238793684641214397734648844968659903454009319016831586673102627112751953332807956063741298899329033492240248063721894993060119292560484760692042174789161020806697620273667815100432699451961382766883663428653423240928400770564050748310346501037899051869081083063782493720080230295516494613153779315248705432500307842451812265508045103210050529988761392896928817629312216613982460469701790814438158336477379533889487000192680477142723355729608723219368437116088244325430524189974884636936174268204286978369574761849025420320272221427800636997235132822815042042729121993204299788854903238740143759957168369422543841117804545493868407997783194666359646721053688767696571673197191115164090896482906296175824675103906597466618581938073941648505442893968884223269821546721856097195047085677240871670075517849260311278144274496601050738481669008958458283493438740147598174433061140013819821658437406616303825143905296928253264900020625298131499374365815082891167315214538438289992265049567923839606503846270535670722777640710947323370247361875933735368673257048017927947042761912621339783776710469539587634627733157148727832691285446742994243041291173974569420977784827706977738216230794849404061384859678049769635132787418879689361810005498976928268644525660505772415258161860268094549612335119650780540950363275576528817587824374078639707532820470766498127761909922652095887813791850351667039084863478111096711616156226200483846236576377355400734068151578473639865653269554648521885534905208939431832527762863983789567113457258654375348917136390613031640762083922225868142290297533124033286354890657679036986280584275401301459569494069459641533750467939069699704963356785183610103068777823405006086909786196317168348719972480880633515235283969332941587222013016941622332634067322950315281420541088884576888925807238260413743999401069236842352535469773072127960890559701074416099436769873300225565650544500812878156248391195464455503706306830673652647467554699479931867567429438171882900537952741854079790111494349748625016776060804894269881585740993368972754567697692560734267866275034713769837321498798021283792332927995384566275383552946323031513816419459219591590678395366553466662990024499048641918102677754165457426752762485285071756581566510176410443805179210339094260277371529200378389393024110635075263253848571551775568354269704934400329417579722075786520391474880188068198988852865263562108317817765785825933708081930856286669617142760788052350349288714326525693286947980198389747109108295064621544675948802873217850758327803709613352731960499118867402257422535998361595909591236555488683094665264212229307187852461357357817002952957871050575479273414457906114644970961950331431048559581574353239649928323090285203850083507296211175881223958339365845495556178291913342188627430595803120121668769343036907955854517505197751882169355080794822910359046358969987348891992967028694382218652064093545696234036683371503677985269009317818934874765494400046295379300563502199580701677072673293739088629509816275963120502275049169520786399429048567843132677880477851374361704031364780454678372270839522637000109483722118228867139441790311364833939948726430460606162600737751256771020791887336602632331454945983665456171608889382378937218871400361329599646195214231652776719188380906380811327783791765975458274430520330632791527485613020679648596419009242192896536563961976428592354428790448836600885487626237405646967243386912219596583604227186600963762875010960972801234100132132228352217923759662246444817601586236364119418166795835117556837536242460083645878940683724335401052466987124470470423261379658983490076181339572577618921515364119481590233984308106612251170206078708509026657366567478349363627167176383895732628593669192549787077893746038813371544418295660697062145817938427936045769017349087652471875853201884074644043783526454124350958715736022891098962613512104574422507586975739981075201656222177691282477729047335757127818487253737043548944675784208992563445784529341325376240918632543225700452249529953351553950060886883948240958764205389169414941876752324054556991809259448866169314501706547328247832947621547496767566280458420148654933089656343867135190160182160153929756459129822351622045134660373382197792058697673544961320858270799136801246772143973491692974348931889568567093830449798519305516700183368875563808742340753424752010957728445086606719429071292640459190708834288853519941680184063985123188959232513321162551443688943280560982464061487615299830000786715774927915257222635811450421948619412364900473524615571700707005783606294265253028481296761441526905609964305456183763920042281505607013116796991836847751320204450592024007823040578051850354493528102390628518430351539558749843035849187065341724953785381680766271099706831353782316745737255736554978401704106126040170004325489002124181950364999323180890290794082004963681933573323940594321167781478902576060294707761260144623993646012776856646133171891605761622946635961128902772264138402791134431172006480229599266337883523995882756790500070593388751951596718027023277801039216251868359080036747273819975757716813633019554844005732892079348484126427190718921166170589965924020596619200232468520884145465589385932926171110600940714762162391288256347929530395006980818039931010562121595506779439382365419631059806103329569769873003885862652418680324499749231455380806026977823518524612966709449106118812415975178030874881586869210884348645184983941336842519015856016022235136340639491088209971475920275366656959163558234112853469062713268376696188453093942090489431768947968184884222969880154009188895085582564248646341832000549972419275559415727884154435144094749581836349602278067362894844851423357485279953409182512045294384358766985063904690544245633637110345903106796919728322507075166018930982649671922194714919469905622326262031116934493838603636148111325731403063563801990735052769340619543849676246576404174255142714615984087377248273682618419699498376280018275932015483059020752875615420051354733298972166894367719874326845855405035174366816432550148911313896405568851835424119991999768454292810479857133507716976747862859406076142279363866698107386154997324083226174204138433448986698075845801703580653359252445931827092413228144082394754747654144347701176839263286142687514714263970072721907139174122556100290122287774694346494766741298719315931622000077989147439581281493623322021588528150198695636095288342296805850601517362182282995923708050082920815526477165935515678795984312818164707073199215519637074861320442554141889182772968265141620365620175909048215420277101663881492878299719263175442404196422907891951365830938929422144011071507299859733037698525289194477512518809702461012176679536372876655643657499388064141480581140534767206465380167716080322847032725346302869824333374541309345512070766058835298803176597528740205021760699739991764880272347988883982026867892211082556336953454668418578536434319915659176769272823723926278180068743615045738844937088195676351881846431704840248065772615034076204967657080061955627076155731405273187792640547936467840634101222797643277485958042471197995414507086597538442948242185393857134509872797191262272133414887770562364598242965757362845028697904960657349497487629282497618073521621714474552763479401274374528500084692126955087776613589444346512482818972945137978143769823126796686368841992428113267484294469741012307067224302055512306272307317559482664650509030812666252796959346332938500410207664028839674072386045062370515474701550457824656053569855946989405498737374516435390773466187721897041961664093773784161606880990608060901600287110345395998597239399796715171243183019432235024366728666126535659809236992578411128036472523567447792170595535853473576644762425268671313642879724381694404310439634558439600763844491545586225093805633521752409565836201606980951718069966006819404540251380502849220791994530134267348831287415118747855953455726756492514219289982741506199156184560931450642015436850393455949881909637645721005237308439656578614469149172489428533687945813684131298071681192848075758566232048532671437606733460923485744414682612671306861042455374035192937058990800681237363840834399604539056256231840698042810558997411681807278653678482207984466642351516208806698904695653345180241370236811540316544429899082102493341297634682608037494359420147359134102137785362991682824455933111787712016132024131965686201016389095987618227301225442459121978088929118070340625498221254173231593424083053006928633802095303670850256035060469854993994020590400207241004822329728262678289599156964474327505923448989479582829055513346003839497235320253760586338736794304866311994199932169931968705738564791041701725206500918391274938807752983265171935604890489703750922382551796516599919844387924442668579959746190191658707947606718897461094362028368240370147904482104715404307460881504903310961721572807758729944498378329406468235236495262560290636982432224796040470935817558995389743389605993593844227986953850466128918028913943125417360641585781015368586978857998953639952234314858411498381199345274236124698360838523415066818899137095376834508633520483202471225210041160300132663613702033674928266144469584970037140893595771481898138962309643611969237506598612469362660701758890157282853153788341538304414483605472040074432936251251492521221960060161040259644607928327035337120155625003339756240285395693506793669918122317035286912654586886464233689624060447801870338411011887596116291962002980533204315235797713871150042598237683680786858944037692727757314577975062836011523688771987593333459078319989823018150378181517180704065870604199456072528007750505688365480351944923154212077125115353434681992124216351651354592895615996686921888315844970450088620982212996657221760502677318280125342259816842765195084531276730731790055624772539316126496375280071954875210347459696354263114159425917067180806275390761834418896335678222556282704565585032209302655632112513305061763128877387443302920112788459223921261443337947625838294611308251438470853314904498155993630734906794703122773801928341946349276792116280271829605366961037967962119474954212329883887391151034985853764351404918853063367672140428507468460115674044976306898370134105056668221259175237705736489771831583568709696355825755092427067633952888572994429305189020576935630740303860479293967994628619572443957185121776902455769901979536119070134546631917275320632119117340701788988043753690088603225428039499787894616002409784607754556506918112282773328069952187430355550177234926411207771160382347451845484965651385168577210348303993799975262602749830302410903207968874372925557974797882404790255256670806440050628370410832608242691593056081227643324999384001310012819920361256273961953782701234885484617476098544141178816894774508478376940586804393825154642888616928169004519314123135088004780263787689933330052634724013007193549793860133002813936129006332826867844378584776701937428981230811869399176089132724633329036726524594052750497945194891142928875330329979088008539727147920219634288405852570668686302182664648999459377283279295438909955952757407136360597345671168165209424400401307259211965581142485215811944875632938072347858915700119168226541289536021886852275843474248678194643125162856128122289732963217749241766270928604291116908392927287762791498313350116953904369232811378183021911565644223395468286733675284671856394148160786094771993504423735484880348544846420579961480838205806046278730458056921211238548396273369894289864651590658392689586363717538545764194340052585216091490457688100366887984253346328026743973410877707168426619279588239643140433719620344277473583796849593712547926123986732770575522381922249436962887851116716838667742302865456170162190258091340691616209602565123521743921810346334269360166500212407223631029771396176760419003531852842603464756210283042623111849446756817167886159447635188953602980392399409047090999907463380190796331794473057439825898635467872474736537283852725542375656533714044063603344516772131210477457504850798245210445785411394173720445751613164278536721688211889537843889639835576870821180496942393394837184257659087313587300512157868102668264134827616043963785242592268935300453085594593430599727530623303305858180118517365542364192590430612560467803915859252971024998013898164311164732054384614815808948026966066123688491625497135411154791962165289928617373664834624944441950527952070482126226527047928992360331981819336339482970759706057106869717370138701302952445467145378537966619212712068245958766980467290833248144664551812609662125824507424787759596012091771602937360006681053482455872961779225893854759917708767043498923103492782583786022109624930744167207781468900761659533306244789623179536964350029868252243354861546313627218638636988582623360293591863177651708375427702292861995692255256505200691817380171562296191696375132570488755146624413513071635163940254358944672428268006057573705996635549854459601310729184520952581638762740442934459886970001626203345550201725115089936220521299663264881090563900218904248517290641095222089663060200302015950665609340389622281841873161038268691914458286900185265794869943180638845703009958273312711125606420933830633676577314752289760310065161470901862586169291350196370482276707061719998643126507016965856056936952063044445593812111965660562720669707449212034391424308677907030657485756403121754241982137923859158065761795589801576791211223058067835202873672016446310375377413002902224977864760259077397987538211372021768480465451409626954003332737379384556273517619547288210402289572402763321094867314456692658084965981556607600154082667845384702635354822912968448429516585039328457857336127779548847634605692794987723366635902231238689925386400142839235191989443791625032572921432884036274614744782973430791560030461337271201956970885545949834125437048832300560708052553077161724525949643008867334077609364799124071519935916867784489260152673443716535398772214583206200039398390675334551310093093755003791493777675482005964710857981481356312789477130712933511721383752387832177544228821010271011576474530244521390661765403723226886951714335647819645828571084760832986359790384989770250140878299127131160738351657706183830403014503999961897625683835726651091932948798174200071837469438129712118711906125242173045421643266523679295311833535629081083763511002641042008215205870656340380313546855997585339007593108003290629076811323973625478187968747832715022569009830899368140989314036483429471351898422988737995137886907367620918186893870605896319932518069969310632207567592452599519091468463562530487219084955756718822642205926280200724405096578576380124222828623278548558507475618426501444913403358815503077844707807143316626829448321340512450872402497271860957794545725395242252910739242375556750620629505966325020137355031981303707002180898280682700877674373451901736331053651189480349084078319442927848528650401936166071511251448489012524483927200448756235953715235184626700716454992563823981729318799103258134320834000007805499094330527942116442557747500032867185499182566682125761596198401254227131252995955216161174773083675766297808507896903832256368727740127386692278343388184163965970875790150431213368622546282287933147623775079729392817790631455157679137373210714357599584962219840123037273498632968368198583585392252918986400846367867199567982291182932532383773934145266111642871064434266503270070788535585148027673384904752896196288376948090784559367489874888678567218418094857250580943050604839970763969515567555663257543114211721040810620682892353693130698627581130958345325353776936576729424130745868144826710637319939463555101999501440717660958264622472839993936714254371458735253776674479973578641753369813599125421863769488376579435882922840584850716575124082497503071343273435065639627626329814692537947855428992706569707970204598210194240432189689028110853182023057399416942709983916223085829608225565043731549897391533079129832675028442039296385203627221579779536492610180934300726135576054605960970468741738679144612249902869219451127192269808350361721230621734961537989501506992665907165574834180571034835647029155806647751428455160872170551545973183977133020308013276433179638728915282448299247674787694118728796250352531441073290938146822568249482364444200767582462538402824616282145345715872870029790414369145321810369897489466336612746841388921520613428921193359839336839413783483445325259665470952850490984132976709534992812953479636397275087546177250304646120784466074754819414709232070612640248202458875949555500107587583535274487485069962205414712658378295952099768657670815409943591968221311191873720115414712781877291325566702396654966054554309271922206053657604571648374217456170308743376976026134368121865242186484413092882999576846147000795620001269089033050677655868490024356536866956889487440479114621412681958151770481812448409925542507474965955290275772396810170804081712943494668246935151473025424404239546489376956480483048246820143370111538258374979369110131711484397460846225926872099642003201693589097706144687827436501702836553482070364710847281743698417904717402748803330400529717309747534729919588772423604049630102017316923792691125584323023520113301115617025007643692242021729803107734580469280911839314125940332109871149806868991363641491004339784363002067622724084771820457132763555128193024032845364184587118794046571104045918616785980454671291165595388066562575217959337074861037074009878694348979253264109361300059935199536706195145571712236804331700808547012266788784660905496979261053221733775881059709608731471488256874936541872038143288432353433218612383589868295650102818154220723196821507447344026811250586402056238245124539288861388764805731737583745315852739636982606718231173294908007107239190510874711444465985067431969154561708056411247607419637101801879841568105784153801891838674269211426911285942240067002995053655306881250817714492391921058621785953347302457663860283764915354453324140740332485739678086956540815613432170954955184440521019140660047766497479977492015403303628404866171854127679943825265947708230711356834062288704257993385255677432398621872161348553026958465857702004891893185183464468432132094893177325259695238299399651908812005529911145011816566274386498140214636174734759438167080939566714285009224201890408564559315830635348015857395639810988101608564152797668202358937848473181766592315706048382985829006614937468445481618033178598567121372323814337951585111532304061364624490890821165049290524513849132311016260498976691511971930915824463383752288421001928169126005350677539333216438005880818915169768805599575536825176073209105453442382248351320047413487241083792892671046590101333929983449630915283079785366466629917855995311213812367292379974665750530183405904604287430590266004182043891478909660767361747084974765745174056292531994822870595847461791814921300621549219759630713974845015643638295121753125031723680214848676123765498465765086563768417519669273068069964638238289815519552494498886564331402560779809558721578053550717027955800794395272607319756577299143755999490241555940658137807224189922990226831558652469958960188522777090493721568781565938143924902685512415423365724805226857571333842411268362505203765501945009515951109635006769410486364441222734596432727671136259473267516737798106742225510366709213996487817840657149714590078958257210028492530895380955878089114697128288194560310992853659992296190885120995332216104095734985633989052456233067252403645404684083682684568896122331891295073454226770822925843812804291402732331947791856743950399267740290589943387237484635802321328340215523741857282012703935126862302841252044716319896918151291698263091637877044988845015365570098346025681003671288137431003064683919214409157419998931495228923430292898931297136173760349213467549522235179872108800932429516869389073576501005853637184805834494282859356484539644124322827630153187770424208820799140837695670653978143422970058634990357046313447740216606552064770677083071730736419591490885924844257160550623969471068780582914989808809445027922081395319747844023428686941142807791218484547443983233252795334784913431192100424533265543933295147119925217481219569909811960953015984796804110718795204318266729054674905992421114326829651988978518958970508741325601944179259068478005338799849744486214384952975356672659627144748310020969818824817824565206115175773811367521659822828286501050811583808634546111538292503868478507999618446280789892859660415439601206352545408528725442262468173860798086326253577209526210149907338501119462316242843787920031740060488527313466520989659282265895789697477060041140672814753153818937372901754397715559989333697808153850436371282053301097185696225998349750301859443847253792758666871219456308908942947996339155728044300546299170657796109054504682052548591656997791232233934561581074816409263313579885145824389050135741820376998065676251173054595518015976646076295561552098539108023291894435251322288610440954643046366126519494341767236375354231678418050950683013770267104019797365586546669591751034265557224873323686204631915265563214685778543493147485133871372238712409160497657659638036922158614920593302122091464828575121368263498125439677283631134536258403628653004452305993389773932959095179609359194693756729390175312481273873523463107432958124385269449280850761169311996492951001837703218508674931992980780207198775273693335441620236117498066465199960174805149226119706943605513246151146634495119640842722607915912275159308613592160093755152834236152991001469243184733867250094124566591901240328352269705153610343433963818328254702217507403302035839259116580273228941362119772693091642975755389481144415583490737711154571041299410714056815799488606018940945667517711731259706172342850113617625213937665896430404649733749956205732962309407033156537708957432071066053945762046480560765120026088574292288556238650835797766917283223351901832668720871441485983645022748191807759019282633899917015080734770366215591415194198908722032319723620574087938673681395538430028995652099202265313016031604582949113139567078579889291862830968471491213599464112389686152298244446505673518671383260272149455961888949860763619814596702961781976840210995800157159470356712510390337698707989278363774134441203584046734693133483829512839415326646909234587043884608151627448956194462694603305622701467644713266384008645381466503655845364123081620474812903930177867920160364739427464173044809171200067349387688263217496259347814895587674970343675955140930195338919608138571563044039138964992992547182975162071043235195080223217535997031194546935227588974668368062987173548326094840963269116662703688650624458423299310689945441826034033249381310392092106013115532753732417680261747227709425861586867596599408946975770440475508734658543024315534723105364451653403035854928718546655663082693014460525819465740487563662789771008084631383731613616029594411467447907875806676087073437991020298237176737967171645501858357039595364186983371560304605743374960214011772810054693265395759375931127448707251268541280769006433102395588640864387666311944598588012648899061247043198289283344476633041782822093769527408433065386249370162223517827496477159379691247938296630831543720803741304617957445625190423752714597825352453754634376626681188392650352148565203621420858586805701607426920441807533080379268133166330543259919284204740118878860426918619437890078073774435652051322847611389606335069427717432462507269985917509200802753333473710509533332039584120439895509688226130161986153773982870696531160099121701275230884239203301777451086397411434383067373674700220219834020936264809090855810716023453338586092207324453543796878728505415334487763485772162951164739235885376163744678890132563481192664301599298836219682559568773495710707724291715956433473567154059361244788606912432818957948355515016203053029261434935966077056236154461525927615097307035660578212936324382845353802852819133948133836003697493812785806652920917047127098976996126337307352448040726093180439355065359441039636373192553491241919407472797004423068278174370967249521852814809319521199930054442761726661267110713621944714714170408866788654485621300101022243194919386016560225447078306277811539439619359356977576465957147992316886097282343476851688955372087297776752765167443192514513196448413572692405752312832498720460645058990792974024325290249279873595645023136743852825946419137447909900030927898488610145262071516010726161307723109552693367452761289125107766319819943129973746731369556451615614996529123621580060648909982745971084713037142319478315801876435701715925347350199878912568673357394185907611259204410163727335080685553385872960591238639030763726391055333743453033033690320140399593796470824429635443152970778011740735205591837143082519455279402320724756523146434478864768743086049169352573576698020724888317943693835926464569685040713771291418603702463373804496540541573718932003415010824827948615108624986478675885059338973458334049341783330572963453939304801600254571029424667505480234222712546846353523717802492239516155479859655137252118584250593807236805186336284934693273806249491601722375366788229306853574553779312442087288337459079242745984177167849436329116986517251582406018815410423606264493257297306452886578611734412642703948738181082851468121171517663884028094965367681517516629187143727097524008228483762803233560931464879197030204160417716982378641845211885222647619178374119511828787634792581375550455425794842598241662113946822506784047111292821216970291859667927963010713453117653884441027837104730444090721228164872490071119902533952566695692672381285313003146273877780569198968396502983146215433916413927528482950198115633366240720677484237582686887361929923954017420086294094808316368887100568113216934135008833254683940933996632274213428213802419399353749292671038155737712706390836329808252272448101361159282910479228117329224269305138908522534582900418466038678751468015049858061134474276954819389745791818059771933918675089559564344840828889740985445430514768016545587208909204046793561107439021113200131945150020942054814185513834084941909024566576427129019356438771428285819894921093741369805224878517579786834930258606318987271761684709472434236969727446269474009533521879267220250734413013780402709974909762577639546034403556849095458974407342121034383670340077889150210136944424192558204747459274370189316772703252107971678152086904973844106841308407174800490279406102864782949784773761167946723939055913520749506721944992587707614589109115330397405701722747526011105421303974875184491380754988088341341954213196272962992336858980693545790178649250129878925732151750956650250930347228649597769946529458138358559515240570684931610382420447312694584466441649131504586619644944614895241472253694546262637418563138718825669854810130200219973652510836236777389850116550737172554584839064227875128878331330685569375704872578430520189882492469541342701178046497994899508893349801841261271582495359535593546356774067539049542211368903177578517071061554446074931245288950709634744680976916898310086587328923213377216579196960117265542565776505370447376644670565016613434878021313328697770500298814007225984205902381853093680172389297323865308584952467695588033643473339441997732017673229623842744422147618918333646061167873205376194183644525537375290280440675623546629816154082012522131041838299526687881034168302878382277321148290868849193541339707339375736677434462604645687395149306996166360065377439861961413547511777929758529491666497424770236608456805524706704206624154578332579163421574724494996870669989446333698315617693877051924045803507456591745311233168509767377701575132555250478410602858223998627382030726096883658542606263037513272366355113218097516924816976376068016342992170627215833277245825787915831443596077657691261939741908293358306984944996452367462329710711344597055579975581924485127470838127125010530751247934105064935617287098490962683641491184443018075558721651675668455296454401087990773742508601255595224277670579983661924379394865509834640173338869344186495379066683991245039714862569582399941826655990784649422005358418212977302711000508741169454020472536127292939805956287092116828146535147235885608665459870762604721306979988620569328742101954387132765226683824766294227770802686983184707153031299662483452926640259981102465488649891057788640851603774878158082216974528427309676162716023043423118261978096433234332704358187868376533469280404627119199074348112456425538865611384438419106946615216227753975463741737426129815722400855585791151482961273468182564916095235284437636519581671364052139762028863952288530880708077460597104909377377639344026137752216983522288995933589108122877174967798252179904847049605752418532285894849341915050766328440333209239682006439888573847601310299627017810848892031750200556109245438808581664275264935092027814406720715631707244777046971520627210007844898730975058953749792718843017933511040136695813866336785026442736914390518768436045023629924635433492698530213665574817797084953946667160550148156050153141769913454328854467682862787376211397776522728897901550728194459698291284201862616699426932279317328082909088903150661863611237211283966448588141344437849960953249305120542843926969086059104806936540847815645454251282930577582201277452681753810862278433694132778471254818709468155922451414762430529643466331491940011136950324649838136733051634005087863967646491034127397543832843550479006828697368590086034056545968941586148846204667373565467531571008320938623397926902633385432548392983383025616008819333492877537824652678133934373416780128302318204819729784564020291395265463560861203055150311959254036775930589530760786720609060550282418341116908732110427838035591040691440601417853826569333533033114507103828832764136861626269973776415697826953703806377278543130498368551726362701768411353243085159093965851255621616988620317773187058399400537405185274291805724341247332279643340261972232460481642623234651372792711296435211588366930730696355292551395006576591218697135657339245960184592117901673917801374413948403131857089307830971783498896125223459910480122069112997554354614025151524945078004564086897930980584676181146885415673093292589909147445490139014543367025151253427738884087897657482832542437078371500029691668785727729061631775710251091246985264785100503678928315901580601506615120259368330458845355717880905378698953547789188793608084147671470711014259796295228949892021615631801887271126723427126568747395102819297125585129974732301546214816021547951635453868013512923884837169548251305481069158395853817372608016855703082293087532884808571721810293784644196283586977313549115475889416508195143197523539122305948208273990869744502335014406974062103872121443875039292542823557378681776112176757314377781720234685944576787352097744662104327616982202054538322469580145351006527319406024421772597539262265059286149595595608054536962974482621280334960629721067871518360096732399912002171414727601277217983953865393340295257661354288070403530030803807928963178706318860086419815607148173256746406045189653900615080315555120378160446750143296742607586858538507392091141062779176911663765766470635628230033406273275542486333753847331066967365940205867099309907200981099144465728254387461716918253684060823657472548337387146482508952702286513976191207542701387219577268733686968839613367973382846928870203332224672646614634735727593401072211028059070650990115434675397851012102663628407532201098638068714158908896728462426540507317776038558930741741148528282495152029782764899776172697774401430521335207137311547945333530245127435525699347868271432890500955207021984064600867119094916472837034063290944471681391084495073251734498662591163086622161867913577738149319285135742758787610193863129760849619682607873604215799915981078978970061432124318133775403224483661573599777254435190705908657474235152870684952497175166248128287129213988482252938080922775859211908052305695511247566622258690845630664495083743936629337985654725633518648652279036494168867313626526219959365547671161080407217650128271903109507795820087188126011340524078653127110268004751272686976582162430893817792792052569917955898098435709649779527937855416267011969474405263469096547391310985072073993634250648981793909235180556582588909573371035246747124898597287534003302463250795088510268653407255964760894254347921148954172098669341699150852555264996537869507452485640910240077410853442181437414585396312850356786836252352047318953178477001011109775032554062058660887568230867160494572952839796335930276875236970528360382715994718445350296528719782234053077771118584033268338202589688640083930580171796145555882100357144537851447956014592269574522319377120922506893507292495002753300606111550434793687866030050513720663503513896649006165021465495068491753242981360709671533743065235439229595518195576404720131919085922878392267699948466765612658116530667373809224069568788130126341563351172999583091060948576387037197474743174852313593902232688333377555253941263788670862456616933090372091961682997711594238275918059961125410291152585169369188541686797626800373287685046868168376485767455461986141734253086512784117674195464780187641098655909714188086369036239234329941929226854527192751370241596708078185809114291448160989240297446610153131304612088036531561359324568821827959995517193534921945806694354730732001820965510874401854702793045620782852616583009929484903028692722031981824383412724615964860899282327688340434983509834889330758281380774920963908984847163509325609130377572514610076782627825246424606851740238322719887754167899577187775315268533432347855514736774496171103066756439009115593972796638965736217163142230102556169080472029796723668953575597342559094004393807060639847768434083800312581569339471045782588329238419977797538477083761588625576968433920102517100911346404572230508529275190255016431328403631549856460257839910262200313020385790737658074462051635773748778979446150298421155921669546347209185730469771285942921590661747202828940834968380712109550635237776006855666880033903627836991159857172926332165545122494300059293860785899508899579357166104076201865097798695787493437368693377605282113278412461245260925721414095751938802533670979409758270710156268134791781171122185359773848313469859713952674962690252651488110127130850259222527284628876445337726998063546517692150200946016238471549459012170664225083624780635000999889252850399053638177493343486919169913691568836888891471643551514317229389128890377488668161179043941263876092054345709025372304260415632484660100426009133779311701626718936759071102210765173686100690251306772900356508051284428251313685219521294471534392528141798918060259146325333810773229462120456342596908598671310288836424138096028621978168616817526180719645980666858308624401932684852626251795150418344430221529480638613846002567469505137901242451110861893090343810627040824349760579598311895391154612767500680721714418818939547748500453786539365989997621178130990529407812299525205704041323890760335532121459553699226448645665869428572755832549334820511624329703915447437766615326295645407992123423648281428321020622662541767827984127148171586364282058389322509195268974736469157804315661868712797547975709842735974002093574784549920103198614631965677359831061114147346579001356229159802564304434000890772082876925758804277876063923490807678364578569327401897511901366223836885116671026856745089784866655923297950743030313026479618950807388392120951282626215159925024325693911447616676506107094128239257027450607654415318652802556437901689455577080416698216768245687018909791060580912968847164290888166887575079858876830185069138768115515710252464037852867719797038006942006720326023576141912587030624104343039393610822376191732474553735264374369784718802572611658463883980587396649880429987275220762265246298580953058819757812244712029373282917849572695964380967147912192467531908911194844854712081513088099351720213143657617943044734719694602737630525645848952763072323264441409685194971649539174381767536430366383063206315219436229955188693584302768919403111802215779405669773413984565277430082778530519691993172224545508665724250748865886142832553106208840719770113562299147099877738137486130866817347060469260563830400008581751692855379783987757551200990803655816844876470890300426633442964919639734136263748981759555109289624066028768870675032687858877294338715994566763590534330427504447930261384722439336641633463433202139338320530438120281048057133358857947241627132835936402773607605907304311429217918499139559377106206051454257283326398226685942397773130407389442694650694897496176658723843234092117786005536367603387775102330230667510360460830734643379447948644914161818249825007841581420724708915804497101693014097587053856057262504426111746394436121275355966318306311159869874493257815447209587328742038686200978340621597333382342586937148151504566828568848060400534545843373904352783328453139330007802650353240868660607233863845420480518652853090315399439232972438611174204681541807365882146817568878999208910359433359951328477051383213764460496979465485991757815678621745768346732831480838524676116055839542438807828164207452963829939921924297505382331595271064102988825650765357558259464620511230837532422610973259010826849308273016153708497100875827305365259251871161815448228793114114027597738567911407620885787858006977844750086727500451820702623999704205585463484272763349955966943632626462794196471568998601088410942343308053342684280112954791536680465198698069605508137365573491248703109288875411920167614342039094078228803122296568893648957099145864160149411695007505915748551454974201437145526582064652663943842272621384372706537584333554302673651918690445943486787275779142861674987407290702042483976837854499211583178151668489913585500256998976984640947452894129462180686634750232946408874422312236362427192408085370296371347506647247812104469440179130357635471049910625695643998668918767977599571472029847898462851032472619430157036157490172865758976677238477885185079434889503513243890604724228314658036453278121546641565071834183477405601301222702476116860950869235589038748298185300681740089240398736745963894449414534359320160262195586525905449928022407610990011141657024606445134400109233934780963127509337761271049088878312422506636881482295010978119034636978440255233044439611769310096774761949932791806318943771839673561319169299824731982979714809534617782814285494079787972441184522670735606174494966785366793389726380796414966480739200055089708856104846649516247271866278819158856592064745671446333177065350876288929498022136797815874047542930042274872718467248192786406854113747410410220802501188876498259065079727068894485782084055814994483038538036879412655781934272572518204795925235004560987057048187124956144954551978474082655220059174129385313842216239597495182095046973060269670839935269047160454893923505322235026027916379272039498864767818577134863347027957286188040554263868548637276880541549748824502756289188961300152784742809622380302856286487842044213379716815592345405371594290391329930227715914416688616213027991811845601688031639063705575343864372017220579182780848310329449016998664264216059823183701768535439884620254696454544528988973131130872476756463295739879264656321003515038234352989314277925329963423428382658284505191229587748942792211882938297361754863505761455523722346278683056691549164881839441806290205939723110857214017675945906175535651562161763466014043603589631609864383157177962814541787196241399383425950242863738883339755518423469701158211899546054904114601709873138780386354697024343786145848119403700787544884701751756466327696558536182030385238261439464843305425448582590295229221894036493614723334211122843096442582764270141457297595651378959716696730845169560493663722775194896869048164689949417919060239432768404326903030220463245449638567742235720828276763587879355437532684124958550676852978571096838433861023645828462607842254805095551768415151647063051712115973381672048652448540636338651103583670342418283901597909057809168798816309368696550168747482312442696806137081503467632648440492985682319213546829441589943113898825882573970729273359889550604032613889708717284434862979088182254697299349685578092465317758989275033972601815088414457572723904908774190848214010727326522898321105947977160254378190232679750607303456278787536855169079565092326117656667228448688401297483360046898698042870097411433889723810950794718455842812901985552323463529603580607096952841453111701183174387757458702177580080949579048231324738468359251918886494906703499432877869463391400745394232420599470715948422921176166781317617843605694398296940541421307801424391336699887937586439187796882527016839902821298501703069412103940085031827380366806029648569865140916865733396500180005683559468640121251299968890178175592342477744888826863610570396708872973243777107028342544036439969503159598707837527249472244150896876230502515258039159743592939548206394107192969379219557407816475914364947061944699314802165905060474635491930387856450825445611851174160567287286070525683778207469250054897771078462703834339191133902203505501894065530617693587154952985502626594020627787993251453386261851813093683580735035503374260399600357915594708332809240758398521781294777236780264997197116985826164740000825661592449108528727650035136803028104649621433170402347480384285984110521856820922748648145898181771428844978584701721935636132821350298727748301596356653259020697568938463780645350348983737079746531022770093391690004606744111557056902509455996118639359805403710725085823901078203568464268239343756628527838969159234996729103666082179381719835138841029795874502925992736534860670157503311450807302291626350885255550964578173578687400109489375061203607475152991586308344350480198991776748637592016020283047712620195840279757460103893378190511315167011484865776271690993992410865837051788564776583278319015016370070786735769968913664390997877121687052917529593327971066772480605730132476441158992305377721182238399310788477130469591289679247854395275177451314523692658157937110396970568503157817038471126608194364598639453988616542183257539638971478504240683935746348630705874901681178839017847753580818234534367325451805823552395875107521235300503614728421443695514859061657015060094000944434567261965860118368917832239380937508689960023591339206630540000270107272334908042473310440829371506984973486916345898759033111342038210234749262177794113165553423716816737287919582246146726578329923524948977078945967211707837211348823956315016261010521583344399848998853827169206407744818626566173656388177822431935366280317959038713717110488648997538996506112200455099280611149283135210286534107046445029937044079173167313324601465793795174683165178091714059624620553431803014692532196736291847087097830957983613934528499828887257654027424833241879886758298593820388126355131378850655839326994786770690526135394083198939985145841153145077108241771182685156353847245649043354360928515157343239126876227045966396398530970541682264535135799066268112947534618535265267565446382590313327553237767222971553908699848285581210485223861665419900318845082121716769887061653436997043577542896987008859549777562316068256030741915676181090096401555187449210796326112107361322986526447322091295282598060826829838324676895119558018609390257018271098946950948258965688580470490198835784657065972248578964576635803406014763513375262406071603003855378435368886677004649231988283132679719546998022747637740703422415626660282081857133016952062454850719873420615686425527702936863555290222246914252857713765624088940655595562767368462769602230481904717195090233690657371082565414302058269844472597578701758585706903322352022578047139022537538223408991351227589619400065663898344460507002339234198692147136531572941296122955589561993136908302497383096306344269985601831003421695023571696682263229112234525013674801107683194319674146896952046557073866153038894249052460600925445220404153964040911366905343076739707378252345337051913199218996251782244522140459765941746287642073800601791950773401197583197945464667875864020821646178260931432426242641012368887785155891118428227859382014329465856494091271972319269827931959128186102417003159720816503327814205526250577478306750269091477955032591183060968782638110084029579022922013374066756322927959864571557839379120735991302916957756284787456117455925852076130293836369436127921531857449030826542197403998083634991133777084990790759337965797677035549232073727446741365377723981283538474273693374554753925318353874604825883305960493220958787836780347308688605721041089259569683812105674891094791999634518401074641961800617763797806401093369200648562176720829743292513979807446191915873641376075540924120209437731301634458565549058103328020232746353920195790629310313817252635724563990928456748932533170082874380106892655497229493485840028188592575981537592700682639505018869325318485708759971277485167184627185885726012773629245333591101621655846559028008235539092944006313848369533469550061835046685628734756484429277243639305175472845683263973523960584930538112743504456340658497181752790108657056969578493997529540697740275642841960120799667454229291864490944984160037223299979664152068253924800726245375006895989386793049890663765904983872317414359387927751313188455928247539575290809778318703329744818407635468609258319917930526402831237695870257778240267620711448995523205532233688295476255872948712347238101740775792815476107916804262456109410909452865578092700313578535233624682122148857083562094247840121040625885797746619690937213314994647664715300324319727628667827548840075564576415268026714981014100791281465594248150630573485041644239550643735287958528543347247270174056560056358257258254074578609130442648633602513123496590302863406922856663229932929631575458972645584777727218986817374001296658625869890137074272908363637729002295928913467359484596576641617404423095469603946449930331034023186864833365686345693404365722381195379055834942890451060566440117328948553357720642409156436224288652532607613452359770043843596555666995510564254980331369212016716703528626785721412008579842073288226683125892050447010190366159089876368855197122361634255582614871535503493526321511587296712675930066706995173286750900620772009857258243669736252123150376127558875603920714938786651586379260895721262580927238270605531566744281552343963751267233364949058217460740840277722824173127262616709926747271475348713053307289193779504774264184705494517125867035692794549286925835360853223362163072238347995447008735753848989486220789620756488546494921729776012106393478223313832038711146340489063915293834406483936286278643673406656758054698666727912639969415768639716876027263411372386957448036971466701224964075863833010805132647311745384414408867430752115813501205566993735198627327431274753897829586436876789996147021457139106735789248471489406290891802480808694679993535740767397361812693074569952764800597503709895019894775627811634718283661481402601564092042884281750378377503680782707519523248335232602603822896009696069013817963871303976520801738486569680710604159546885557743431468253621617373471396656157914265472519515779586089139653742967943111457694055580642947997348449936939578546464304310833008792454816900122623298195971216825764414345966473581984106710529422234442468035672631837496154538791262297152039954338833133111868212174373135996536677704633562884964177400358955712439663357994835702411947929245166143271443578276100804962751336095550353245667469127253245438912179987044253615393232388418686052707059766875966089971568756173280198878818523113081371474225581948853467392222799330942792330727728065944158715432138931205168695261700572766714365330508697514107432442032794905338547013362725867516008320565666251994198369488528501784901896846219478523550771160535283323351463383153498413458918537338852977849653081875461627715366689501249977330724826517573343688109207133989821522523855339747743714626359258464743617597552986312057605774068389517647493442344233278005889946645755200812508583824774432526965429193600885760866992954973123318109208208653095168588252226903975675321686567661978673951762937476325550160917320435195307512730321405916912509380638777360934153413874206557399560362977265772695121308792092091347074598284901289204496499352662030003184911378723536713699528796227277857728794274573701346659208349006658128210596065488693048744688678230916949326026878635437962488829196474871933862147074270549709904803027747823604819192006201592513031200596262435329254635261807651361023683375865136583108957294523654864388894335049019370984432771429251765537026222202466133231159941349903789849690900003380044356870278491481842344733330392983474610647408197189769389951567360387110760582872009817316753841810775849150120482770308499267600091276923015824295786066373143666174677909664265489174757648598219551815579795642686821198417418951309414718721546003644539596213952418137673877286821247840962823294961975924574829565164181210877251702869075818793804291301889968663405334547191004087320014244684885454281831500723474158296138068747079706790672885081293268919082982743084912179924079872170585112176686278616600082089635920067102837164235707705796090637610468047455486752220181217408439463692262581324483810342645905812972047940365603896780438781207966454844147396054993512925213056620041150708185770591193208399853724019091311384577516713813375199346237994858822728180773217124462184069276016069471781146076405614835749142431503213894417443405800825429899357562358803540496985192779467568190035954701350735632620939465271020510644068466444328740769334600444309507048804766681564703370249307561217266401477889184590504011248536909882516004196998321152002044043805344003768558725627599989378621603577039998718863653172630125559254887206538554949265704231373430755865428534159068653927285604832889167699061265686278889010890450338651906926651915617574706853253136487018133277980547334293067585345653181432014284347850754143154881145419107204461517426995098673269634742714840862878134938099474816384202339910054672666960954941305509853787113488402468651912482233724557874130935776565158003487629358811009963060207211523114897549477959076893553402931049100823466902434530826550759741861762739006090215517405753910474738265683948548856537660948998605414118917794953094269280602089085102760634023719055422420265003795906711089312560846505211403514052054883735881191780516573216088048287297906160358145461900225873492646076143217597710630955937607001230685255228771736833873747700367598329682388196009969767910044838359787050612484157206313274224541576636157238676081180816593025724423623123935067168683588245092252942593731997174541521957039758191634220451243289402476815738291504593963939785227422200210211528780653971254291975524698027906371799801882636146761096740565117814917339118092765746383021836569153906410701550896377222452939270605413195227054681521650286001182268818015757749035149447151447862109427602698191115360289330373757970500981711738206870210946552015364386360251216593651670628638613895664905506836582022272174283179845077766148988541594072277999401030982758456739649614917771510409783235760658213745063581283596008107456217501111144832927262086948750588905785984680743454092062782580312375681122155386162816210435961313158793158217042618767700557252387107216241409981368455804933121170550374428942805980992696894265255452508463653432031533062548738481532132893098527267195821305910376591833222541707963456391883642981822580305030979645222091501654651347662552872518073263411669893300554343145411559569079087237638705743373415054699221295027396474976897588254631972474410939426377860421238772324783653751638190450521687035428474095290500536044153593348044163348325412791949538882083197878326119704478154792372142763135214908281257531388643399663790513194687795931213503762049521258424210946954235637195946992469283285251791133832114021577612185327301215572917481480459798542738742192654199374623903552757252021132398782157409044259295043902614667528092676351831857614719913256839530519905798272179803801992645859559656327831492006223969831233087305544482887454518521045403285808543141119326057474961169711885768336900249612700467569970516032258713887872565179902034096808256323400178788310854555427206461289685206085188223198196165102251441798233133324212565200260616514022256217895712056304341153371022418828634427948463851518437414767699375502005066629831850680477730574105849539944238344748304899335756799998571102431240776702574065226718178294922199290473099336541604868955831979867185290425548030061067367543087827504940345573415121783604952468020465420876097961389343766017846379114504090818268064532775114290866385348480970857641733368504135154133843948047850799713082500315486094034476239085887823388784910171573926824837175892854024877796853918285702149801029690881212934425283427048894939271608048473881186438769838905525738661157554044131280956187138288426137638045331013809158952790762897635038209608030499617055999689735177302086254338922011213723772843139082298896111154628345324199828101557851294609468162341522407304157583633991750279015350155849517857319628504212690809237654527875101206338913418206781917832743478422102927934406461831527031347326068973984633958486595304716269338043815927084894317158774320488168696281071164500079202544097632133548901410271359350283874966591592948151606444290067848008978089700173697577142347483781528024411008586629797996373157342407182851886543820672058176204245151074836698770805823474949416032650372273440142319730477151740456258949538506474096928084517623917294696331593797402399304926591816900503994376697680923564434448574697786498065033956793629234256564557613270634880425451631773358162532133962728552682607168789224323859508609058473950995016519413214989251180345547627014036729751048918819092384613037765561067072930804579477402906837440062160930087233739780061153137780737391787697969233023028152440738312002098246264322425353218146728405926715474369262838005050861737569435405098812584836052933370789042944968489079886439173327438871923169247832825514399987174490440357408958898719192586248761505241116166991991548255859128595407173016663414992265906255137086381194926204934171244368923069472766580484360592720701341418428274459643107151271455431245717615934380181288625329731149376775282482291875483285780989169149774692706451971619241183417399683600814967146672449041892110136519700370365452102499776339051651301985825323255131260954720782024266001173442161716545136657775049458211795392486625925948334359622730723654264778104870428667730422272302909443459974827730333889607607523360708528423267885592911930553731823535252160519280459910565120153149771599131983696399839421185268661729336254844794078833994494067483006712014346259047472554579773043885752651996399807459153282084919855402005722801550476253487175876842995270762668183363492575222508409777292617032044386337623039127546004569907271831483414457537868885597928661521489356993643732777729815356717925917543972389419048658522987675523914247549556671512651439309188565781303073590136109132860507693990378649283449854338577370886838008529472932386135459685747587657005402030634351432303828974124355455697828315383768903414996261049823900768551999604827997748760481622908667878758581097479440556856784744793639968688284461625072541737600855750849017810945478784304487515572772234911451667774043176667360756597369532770782648905125107474907619150257970956792448236941812504481103039755519938128753417571578820623820586139825144900611433254546118604725698741452000370037976075718068444081434049631132714956893664673311383614557885567530583919516047139540486594449676439586293557789208627662277920964269276995870333111617453955324568154987173329334769214170957033222935174417389783261284846678441500776511696693476106767782630254999572524970958750507019881073517141447303002865979300192818334133504162040130290879042980396711972852772418731530394887642811045151629018067377603494733610825627931357882457752240615509426150419260149264802613051652173700183742735456464777517444999278006978652584887311406922239935797471785604385141236463967955875094435426029144290919333621696697471735024855963361076027951261712529186072065772899552336169554402919744240405534353135175711445834594755483623304299788854366823624220080589336424610340225769393543226143271936145826009261000268705277039536971001489525731661855851018295881516903253389301309842061202023205767147794006534305335466213202309831692513180070232211429307983458157824317201244302502634849011075796207784339999431756107356396863647916736653810453514661421538053193425371262768742876708050757488647004467452051430674512137930822207733509995056593676690541958798925537358827340721856592086986755278680071893633238632363768409870066538813835699664550704091323214762707573973130568866866856465138312726649485868339005674796178751846672775946135711286521373412489633302170689704514030227919585729297475887842361004109665957922878475507797911753871818669503611005877037832049852162173102808583377671051544122398515782621889217997778948645799699646476940040112898248835513616365875787774843757565448672955240969437199018511620287952723743213200249014225803577224463504363661703598451104121348058562917130402182264611903319199220268230652046557898225908137360322650532238145506847319932387145236592545933754601628808863078977279857174191570175946557332296809334460276673303532517065402868228770382752185444619115564367802837386904408396880797085978975860853672255763159572092247680197607495480511406719220078384102908312764376425021262519483056097615466566033972374094757116081557275325382153620836989596622739355462652689199921322797617125265191148936963793121002316208767289436867807103437751354959573287411304048121693514619098614882486099849263286615079336266621325300259546895921210666324459076762654335496045027745022133114122333269301119296286241645241696491355442462428167213337711063353302777659186414456492561918107978550597446092861051618042780130637346047734786299448600857021757212271537718612052389590179840217845050556169816588514622114168516689333659249584858540241430446027489384772655393197985813670814458502489463118662383254236607311717067666033211061896132054675847971770137170463368229201125402785802159832751413252870653251679238556965583003340570375498457807498930266385832075282599624008398538052672360336711557349068313181846901623527450791296623004906553277316521355608866486440697197978090690120703264554736098600778178667222693019935131063891353680558779220302245380263373984845766028315653348751363222238799652083310385727579896667776910023941084499210648946587629376184468668482241338101440835680173615004946539693670597236308060010472223941478861306516138504115136072556310762043411878324991428273927764703242639855962746923882300009864218016294925864192835292445024458204359788966148199935587479690075827713653872036126514494548779704006529070149926261603327784022388972771611768512833858942187603336995708006864204937253610522415309266237209343837702268598250292498857943585004504556077200344554906538858358877610504045228565180422457368063181580310482446174342545763566059605534530590406007907110553601036882491930687453614180154342173282302536713502147998295948461721357536841632374124660977344889231472285379142322982351898889358399636664851587380400042183936849672720464561433037057821433012092003570284660484269786411592392677014302528552356392510753655584677554324334669566099368763850371699818948497001675625236668510551352185002074275054311319489305852042755705297619468093006079568025571777688437763353125244536106173525597704684070997188259730368243131863990425173403225111997363454341330102170979562161669054959068719959654739737123962424860560496558911596440339040516600304440579961901602014247589027890513528194275155511863492586802925264386062452376506377889298451580095348945965232213064161788110734917599171212808958657179213453299680340900785100528737543787788074544271771727362479230707016049054974190030504794418795718071878437165635746257019989652100787024096989716329860035116667603689466055225420221233344033110679542111353039886978824188301322279470543258560807255403933614740340185713575758233700350886756126442676517428798435973186145940382886532329189500878971853605816708687622687066820427768545274543163515182460694090422903809536808146624070760322817428783965944613816199172529535277120389495286765777977962997828485565927310458858011880820564613970459851367434278464521491354760036564336607390651880759522919509800944890795521630844702707495193373381708028825812192376423982804270926272984716557093007864435830137770587351952226175766402709358334538185083647364871106417633492103053840603753621357453321625891079623404206456079417451202978838844596815459075383024975465633046670750313960389564368721299391044253229685282381156883441339075192741531824766291551712737973416713610720513749795445815053233714536217951385673257905919085044905622673608890246063853101268174385818535849765171574913169004000210297864695134999492496879061857489998135922509782173777982881832506508652715726386790897135399300234169945520980286554822974745562340385447814840314337149426970764850507328039732959197088555355168051798728863088392129380980978534810185295959915718825991531675714209160412600392936362000070745868561621517465846111564371758341950333182193083758095246594719565750689327182273708970643841961884144199879358659829470606504296472109966797571796001642397709918471900827925231851821552790662064249719267807330859624412079091281824815344094349071359096746975238495912143899078447059598423125167209508649974922310677551639994311974749525540633598066852372542898159846492813761733706193241901770917808895204457000098940185094315573211326000689699761859807241018553618117743565898411104312075754712922112389378369055619462637955544455126573631090816153102588436211479663392602640965214549217474282831443880046128480594081629190224602598732739959409249206941786048261378428745452006951298880669119137365922084339442104753182025659156440551073930122939638986954683302839460588845883642650484115838336333498567966440690270565802692493205635077673965874939936663803310590344700988656810858260337795735549678899489449919929612546642901824131013452340090708229430793015530172386203860956341634062501287211192018744577792051034180997841760239030082791015073221569093448016922694817603546075736277111743467102445539052589911233963731840870660344648788672274444271890818303791211955057137122784643363376535261285142272878497406417617844017462005971760616643582227266869132232461269584859510934858136658184889665936108357788765585558983462787501404597448678716882028860124255274159853943561313449898123207660553815262063715876485758509236270704280009393595993611631317316402771470763099798404093707443784608573299821063288501630261968295666593925868329899758329557947025588229415702789420720304216076425531874819986703693791594192235845854517976129139885318773710631982043853643981721391354620052660069271544336272973224958603915647006205676891309383999442254962603808871842693681871323262743661417353295424975892220177277189333291397532472023298125886657277579537482566884958933766890599009293685911776226711381227478506220429655236823146373784124287822453461110655513369660948301373889575226948049947884170490663699673526169456895243425811031813434631002336581728892927265622005146500703117420775589110430290400681681356725990442255850802818854896088431358866507405494562468880623662116761084990563993163048894976095382531097640807303642647593468268135847335172802935486663387647382886001182995402162336564731074509304627566047190065815374031113730618312167117508019414230387706846054865738573733175683810136818063198789785369111727726931875244106550632292561799300950759210815971446279252434927565942017362343884863635920375205406830931787404757630099616454488489078093906383841764863596711241495111036467007405595244862382321327026472322076953589340608445458601369184688817699454296066920528396092553292323871557504960308298040155669735132532394977777117262508921756407364020030032147096341181447851505971037508098273523395758910176531994152066772325288144093823202138519253186048496756243714247620219499726224013041601583277907623068792602724591728111309595168274402749504950084799653959292588983020502775122809885646470453917376036775574329091433716621609503465752545632377932664804117595533166618962960897275695321770284111950344268800705032475486633170485776025792682526901321144576792596071169454858153163836466209580483228344987815188877412825580201954383189204589214883743332472499837969342921359529417835104810407986173498502232879616635518375739337697522657800522647750043001138892750653811784215613282792604661125747032151738160919363937699333148751732774127321456725972145456384558753497620698457536628024065397080661999310904190461753283912834850725232765387216780266120496726712349991023044049283482912373440739992720866810910356999846215423031822211531634859728813113840738309095626703493266241439426771037810306479447340117198555873603054097307832682989288738748982240850883446898647197835638305477019507692970664414859934677922976560967866156284872803861734868988362772255824021740563211204756670577014701446018356846126515165045016256104093968038870011548537524839919471678427177772745895567077629515330965064832021592558163249513234878098888223426062860829548237100913287501162711443157123562511650738387726795088941580695437106822357330868638238628951902088749091680472104971570649114434719879339509342471681867101927713830611854377604394736710235150539747867016052593007241124073913294401487390140022763276985984080045680173334918113462801285931951140167203854100953288788361612112369375505800545788311998466286141533594135038397203019849438301080979264357222358461975473267956718911577287990612316542916707030452547378462686162275755154528296477981679542628778012547745399220009643224774922620721444872209684267392128009790312961267518444910230694041036369655527568823849807066971112492129607284180632854175932647718308040347516428931350970428020146629360965873008231711683390062019922085525841638971160004567842976479416802838649278720965766873469130439524171925557441990980522661029200364835658272912006830969487579710392129713166022373361601025021685325771990382935387771517025221405766118028524419189263117111324752350108274527021062255425733133845174395299672557678689680923802412989242697518480886427862279445988758350073801415677852584290465909296171290994652804800137839037066092657551481272647135413336417334091431046483137941498357373456348935505627568693046290410575408513755716784992442067808760911382337822060225971513393081613072571295713272069367439908247425695806258299959802297836225461568838346185842650780916978321250569862784892730040326555786212116766698907003953155477040218495046783007414705232858881705679585770509179934002699079690372350957626992744501361316046439851207703875689543932569904846761182584811420042991785929359310834856226227635071587734653364906240472556068261505814339269296180910202522964427401597967389886709233213001825791287464143481467960127558759654793986190660873047330422424048247391900190805886849560855165677661347044509199308806406996757172437850544158642695083510876730860565501662479968932458578465431694783639147361252412976826886900205528859167137838517381065313571370743545775143295622090808516605376576190164931062265764775820320399279627356862643434468283134872486484814620830196224998772105095338359647355590872744371420129093322173970566905868239020855552317608347836508600275876765305116018754287594395917317027708853095509331034497259973736144293000435683100763562331421545038908207886084739309721325633861342778430782985803003470354611407743128994796716828534004846149392610153673926334319478808033668391198435691194399703159904317017233974043675095819774534786742948110194726146430584435791640664280761335726330982871487905329683867986584118840860545868119863287337867262242112364735901027105623507854706150989774716396493576244748924246736331734088538790594277279550049256787514804175150462741795710034013857031266755912992132145485090007075388723925483440731216763135986997388504899379986396519318155276786192565324038703523794111408755275322159474108113301701672652834303130245144812331313167198491932981912266995993550665156580699483554706508052838894153521052103457415654065144827060397634811861386680420992375446361939713970757663282741127160879939212757072594973805421737451652663956509905273379479408181444436886473946828958451766308875283897069932683692926784834927966405405249585891134717974739068956569121608630531178144888193140012059214970399371845271306473988235043875680447240176049593886404602879808834142697026015695512818790492744279015984271388756940589385784426893625015047816743295115662056496291553582754128859544537957635375829457341187046750108827833371282256330057805935574806005079966845698781304109078608670745917998212886458494961335712701023536874801559665862642504416770574889931248068659107643990772163023277835238171504777805997547385229231102342613259669119912525180353823770466011330186232897273892637969035466730144995009757233291396938558505321046781513383814087947203771601074928826096618613439386869003230341697989178579122329044514944617301829973402318523529824962429973772456384590287935323426691779099316806007810260599554010878049788405465114548883304600355763258957107857807334428210809743122990813756164707262426412477755878612078486267639676820535806823782816320129484647569438181862305129103655985218293754086988993486440378094338575903443985614241795102666246935646866867677468450206866093288185985644169990096488146466459640355594596670923626899957363717307648159866743795984045985127256128986808550390722090907046583491718317599911484207307830335216029008591140380405516064837720729254900947980609679493942350722983727281527537760344293564927259643622111080466613279675969887314565883871534994711122414090372774416982974632906223311761212487388667678528908513609229190362926967818977117531843430453429436726782022152699818860420349849581889643808235311504470143904322517109001292947258418872779637270985220447479658979084320680930582982298738993641546391845557304435898813961053793615833335463630227107729255860425623257037821401130407838030277552676116207026069004613467858061273593951630868587070803321054896005706092375760048212802264232108667822888919083739436359620840202242114858088410134574470656421992176285427013757462404925547819455351224532332977833940538568850176883163969134058263301714329893560508104150324202211638384028210194140032462733681023989095500067148599324150831612806659285760209111035631501579594855902911943935099188774263312957641346282051547129937968816080930635147456080131131182992069199189910059121496090752873097534528339153257383331806394690475367035458976683475571875820304378188904373803472022602946268696251611107103567214922623733945634051027719438202599241130643838268956110118321851159174497650711849081455646212715639158986936602811976049651854966107333294171057357303150903842484026126232504346487356933074800889058310714266913672547577012226389275680628082029788535358838327586246691572861306053956056714405541421924255444328229014212555228605940881336086841450312410697828692786544140065192159547191585678424686774097830310010359058448183566674825552854303635921611482967338719495711909378079705002142284501041742814932248074912157827178802477053291938519515929616345159441149157994133561595132665036053508110975201842006928415519183998141777544652499278735868143933725941282481876417068014453260979544215663195253449146980903979164784887527954691071991267908735598628207665055828767346962968407048316095603582858617093119871321110368128783507713670227829084046043936839957392333011154532464032627744333317861533025054380749992829088279713614699651755260685320842409936772175139986150521797218666706823543749758638267982166366212568007505968704438807841436266404509974034499206834843889231783043410751609495136332380299377724528483139177303790681544872288981227422208712262316770506076709309049073342778120131258595436860443701315703097247847030468587714745059192930639562039099293525810617000784536701050066202760864080960413024334932758225828159876374726926456232947640205949744333001025311135485629571890496600798038222287760029582228447138719007089165763589883864760125998345098386608526928109909679916053369387708985299676726342258064552992458621151496636061482716988093819721351708088740886122238096263027526575356448497143191444501751267348526542876882497128778288238240324534344575311916715924519602127415861431005318687641418038425636662697197696692157101101605085946491490446853259145738277365516318205958759153224812084508838488023350286162419575732244157002234380018547477847540542633816504231840257274686450895535509657982505799515198676055970342667245230231972147088675177453669072417628936870357535941027574110326829884404110384808307692675294575286170649069528803104760841793029450305871357683532669915945362598762899361220345852507491498058804571252138090569259483103745768937751994802913995927737159934247441597092136247398095418335375489908345285656530426911571340988781144167555829273886475299593520324687792850942495249896278384712703600461826578876161718955623947326288037113748019915944331336620904759309265993549625381323062096720798453512314924918460161693896139806543637283134905177725827368518834912554325292120051777289868718770813091695376589577402675431888250500201574864286462664965698318771786334323874503960254626504157128025554197338054369781713936108415221896216266620586269248651911277368361842685400966827187415279282095752152706593806651880183656679973396089019735653317830640545127201515556752667680852808576901129469513861947824009881955687549050343211144966446284948859329682847901985960638671567646763613701061818757295379748705685939855338958538177681287167632285114551402737058451077291115744237529052132309664004120427974852429843400517250253549921473127213033510369563459333439724691807964593843430518845156366105114892987548652641723230196255202472909641533505932235975390195895705491845917784643553221871237489467503676540010649319637599650332234242002424729826677807439145867086889623830832269434660783889223284153823556677386778206939526016213144289949273717690572846249002195865145305875707425365125045152020008023018517669367625041874945393025087021196995168740972503395797366412357008494540929663568954828226079869108500543920625671424636526365779647706948031002664649522020345045132025562915922208513625698336951167151318686304505050450352663136964411551250154160425503743063080266862493218837939940585303144272837785712247161497006252744061653942931984667954989860727502023010784284888815223387354444965848371659733002150974157715965202066071372347701292533931022068766422199185126657861014415975237526252111227600669714506802641629114608800967483332775982831633246753585882115472923547552406517202164363167228550319262847965162240374992740789832073178223535419132704401857486245080326280952100170512722048410985366258337519781461942964657122780587824313330355687310559139420836473205268493124816889521196508783892346657992964601330412425808901086179215103264196284668098502462089165879908733981287689149573093935750675394898265349661669480344175658066232848787696214900153405461101203258104333112659613618837190496894920208589930553494868510982193233651820446475347527833464853697179601084747800719487516524441518860592938897171521996828197979434144191174865682504936205203425573324870406834781368951984166253968043490681925989626882196305180998168260750342925274077629483187008263005412618798220972974269561039743045091034002788020824227179093571941680712298981365797814214699872416175217493128902539655105642048865135803655159036348746988517690800876538166901593144327007304731505730793214707389924334794553549768969760383340338385959146802029833338983018929504608697384815266550688924921623347859221373142897679409739147120124856705946895987672061918754453622036175031388637900598419830539699989201138768321748826321650882223640660970804631445959696636575561363456001584529897330323850482600222055093755782778769534452134953477360204990571304895482536478721242855515386342363599168992539734389766308457334275665700054866512126505215461729842266383610058408509851894123978406167467541867775552364736055786917793775513355989171815811459258450438477821189118622433189636590223159975636635297506641945593412098276994724235528418452026364894964089244271924477747202391392220877195191561820802198997829987222393702676687915483415992235865711420168655736589159118756971512299979956554424429324226591960616373601826528118125837819103786356167996519763967104641610115178933263821570490622616352830826051969506873414464985886387960878758636758182966439422914655633683433988030966374784670392914773138818586839790072797496104659260616648032619061666515565464208697319089118277044028078171304412564247708586080225307207078411726647863317632840997318597301578595074802832910039408266426131663179039499096288550565258622432607717355701684548854192060739818722139683923224113385907169230143991578018311905906541079483104516086050216895542585540482614337386815752399596394892340290828600066841886669781287171467948386376886797343577777092729026509647314694275011400551823402383274309827878936426940953965077118926763838520686802191895868014036366579497442974040140525232671957682594285733320182796628177540285136279650299219422499674080953650472339549454833200963654210371226676481084519612494042537601493794600647134451279263911726848746906899586601699369338213252961783537645280103226192035491714252160250213440102873635870569904104637600243494050492230745195161073878318128287139415958694430678085199754883007910247591710369267004109334188871252825577649759507978482393105398434242262002026704642306750703894764789071427188631250730764136106053683410969919417887119564396861560970119352596910743542426581215763812074527153803558009398488188336189802977963402598925189754789468087651809315295773023072600490786086757668828546288685164062190321175931883520775679191737360788400090843073571534680395219777745724327311932949848372122168776700842259595717942284057971741582020795646699700887059893210957358159571777045925359370431986374624294975878855154962820727599308907356743245092878663232397529830433024197853067380134450036862760135822225397271055005164952952497916740361454750865983392268970807662807644745107702672944862677106558474080171635234514933027082765614926388396494796266055028332953768604209785656532890246912044774609964988587565885753856531269683151650989482228467649363451008924989940133494815314859295369695799573059566087150718557348589738222297265720098221230440093087247336311119359790423969604650130705824195199776298537381288769324959043373526026398152771648485347749723158467063283764933837895732666171360513947512063653297292928124452400200810589063790735013336754351351448953123660260541656940881414353929680019813078407493388086551537752016344857555778477298238808237153328776969571305755765183756043640684386852011318871748377944713568443026878032883181422727555149483431457941531747132682789552723243792313181410210532443179238369555043175590393219738142047778469237957337452766227347921336326058572874967995266096323290603929434672421715123968836986746154013595558056870885972625587061790561494424762855968467398245110044466627164476044484548700849143052128803301913248203181167981143622258797299309193202158365195651658570295195883018759246451006116383761922005094996617928797105264022198763860120228068174586441338061143407285255688386846254916928023297977866455685334380025899009050449766689076561281145889042776529536481075316818309653573177476706319742251244366946326410097431041643466514126264107599350235136141734482432620221656294636513682761506164221876379265918753506401052122864409868827236787586730939123768531149453893968066917143922183807134809309967349873406878209260792702476986768774994325389366712903804120779957928420243735541114306459684301032310458712912113440347939619793698705894512768759474723472756438032484714759178205426052377939725080047110471214467448716519839096081368743327370873351859598261961620987495251380559135416706373642827760371470242429962854037089359947451252589428581486335754451811378435813081064360539517830076071289098371937973226938736601921453317766927342106938200174082338386593918341605816129626811208525912834508398224705769275172963703928710638982498840069145464533526447787587170226272811668230892170146381308847403798176090226082948538219504928648147166202850629601441166673198462472434323862102309932514489573461119914035241413673165234193472533628874740298248575641703316461498047467176294281532883747715083682474898044084407497838007103052064522574644437633769964089160101576723952478882561095770776130011292668890761288918624769033997591553602052639642913516674454182934116468819618923953827753591607204424583360550849579535346416236530208302401838055200261415576717911886518452230507759486127071762831380844815963856377888730628019661819356881585857258968604831506703251581878241569034416419170042852903956916915672991550203872104131978596046479083020756256496802133561070409323778611812602691556621379222956266869399599201548102302585731238338413954914955942040821865278754285179111004833034977536922416673070832023624538560472462545373598774629751282736604275502485904118276686165719755089734358271012733438231570157005697236032032662227588414507678413174059674754705034322937273527536420240572880188043594702693443116014150212844772516349946112361496827338533117221299346280049843330508983413475251855196411592814128862442786640117197855719107664742769658197930125984196441355892312515542855792359819848544222494614496224220517834710026868271900677366399543259181308011436122156548847698775463856797701003142587381830609904940096149909728037185062217536711322348050678259724044890883766380807212734846677990750806705405598796357317898126152520321050869052452435990737270883511549760483372776830839197502817142578844426990918447571473461504093419919733901752185318073182291160366026220232790268290432854585872264694639921172453897679936270728172028960348111118255845743665880916776063591758581882078641493766533301793487026794990547439820513580619193837276615517338457907120855539536410718607344398586770659499044708461504405084915864289471789845886140529967083290228379032850732572255404857944106455026250149495607497678654604466568216270707530477425714973817012268872765639411797132967233253506369854299579686391970115065701072298565876037797462111661420008360887823214927915969743156442127043150275755478746037056108848792067365639375043615544838129900893690493933090306403765868772388873016760137525941178814304490023758998698786285432297737656018404305561087273667544213326904013878962462832632960606682235973829120766874498669088005239745790132955954671791511806814857052397455688637751332315272705621109524463092569180769110729308309995153663495412357249742056882404071663941988354066849881416371029240936019399320478319113431882086498324967415947245878712495214161912009145414726789758779069376659562960794160870139837773537484614484391300506095585038285174498013710154542755452454424967798135338175038957301187372293054355288165687664641550200037258022791498837991459279870856305896092254008658704849052268952070633146173404001793977887931198264848550037325505144087107423002741459318894836882961409103406453246963435886851067284614487560421866211350631297231396143184115467647233423493000172501737931889770345878945713077771529585490608462018607585467309041799681853936030610734133962323609718615531110756274336887662799279531455400742935573772356091162628486500654199456196343323779230148400214322025479145880433662743603415905880185290030930765764306866407086642844566114114832515888860404681710430870243890761704724280491129617724760051541037371916076217503674526924372967954217923960668891333150645051559609560738311333130917965328594600067325989213337196253121928574987260790782557591037774842428721085507332725706677553633265874302182488636571185560110819001362315245718589438799530394686912272564071513258670097886646621258510900001632927054977463463272476085959395246339119980056634142613533439987540884382793650066117632130437114192929952678010698674133917974913011691465483367371724138567610102441256472671522817070193623867296633429338281678446928943040123548438011938998961141227768324685305743254865555922359707293164465127799815998188625002013098483504663324063567349105264309873747658127133369899083428945886204732873408785141169731492312757562671066053018817741588579732119555972778646371879154973475199359734134611301905476620941607695599109146392072169054879342062774183874113668768000154707544443170100422472037736485398869850588521126295943472352869249699242257841480197396140740283038315236911070273176669954563324742847771596265856795443473619290826176737708460537443036052220906575304247598736351446868436043549799737058270854108496537030703443783918798274330661297218444832273313747349837382246017984191612813994873671323517388261663461520819375530588933502538487704835415154696313266741647205223598177382867960980104897238435270364468201116438530998499641362539013068042767308247839908797200723985284486768988823226975434484045902390795652856757190815774401874982095908255188588242437289709641496937922325318289241079779629958315071507472306748102264510559852467906748961625522088698784797061939373739199507450160839145744986913085786866607006578230674789320663917492994708739324408201478531879248702625490372433293329344017361679960431690938484489807989419402107290251319859917204902976760490155667020628338947006307704431144061368527638228431283884640853431765370352689968148589434760420444628442534964138849773945298679331547670953676640204002375937081719020943981528616925710231026269088071635423623480680935247098016538948725522859762394235364692245999846055289284847817463287502845200589034566097158527267696910668613883026078459264956383485567541889881695754071430966133012514976117400857613651192930442642216143325216244380055754323215993482274697572159193152571501570367004296666966294816140279603469500927844570182780546113543072932307364411550311359033419913258373480045715217860603485125176758066215244471830070195277832208712319788908283298861936937381077634035842325789557623122809971569914046821624480648462311524792161523308708713021036875669153372924765457568684612860284711843372494500714835486690639547020763713421208072913667125806808313178194831359213095143615013255499250992917779685214615426545310946094236892511116390158079438044403890687001058630663222448370919744210796619099624871122627165399179364876328636050179897972375746732001198801968824348936542148723395226234770846180726543384228123147269063932932177754952039639040836475811558426128431387770767526797923364259866080410381242797253701314664903356149485636930056517403006496510539697255004531494029484055411012887366357847428155340260618109440486690315665843842272446950947292813789169614927605633165895243836694144199182614946301488759409294463414455288008842211469110148120391950385725085180272076353723961468941294260329357853753461941331503220267558259370934911566151048606386435245275387138929858150786671052358686626220731314417985026842375852262762098984187440405161163023296145332802480920062297571661436332574994347416288323777647466678341936814687004285709487931217702448041061976791401500132705947277939061852188688809853613837461321536183408743913617772491442549925034828011218201716470688656052325463267959398131695579397388941328751417070098202789694869479967500386153814751859885020663349949979094182268999101225692538016826030692187389328173697237090881221205027244950173052137485637294538464298924703719809723880822453894432880980517884524127453043327520112769286092281164855025177568578314605472904176861323003585092344440072267208326613321196153627773296292784855787121995236549116883290709014945058977040769165471206106501449756687971045819387366649239045529769087908509558093764267430524485804878448534679175788169787480172351106398905563178191696398584022250788119762770319058215631586457756108778377522160601907571338908795009804443695332070935865805780668076431833178411970718348534141354578662134071258240326410836796834228671098943866455546421777569406850371612555971805365565895305517138573172576956268336963563946387452058898000716551760826215669733795575763977349199610933960796312139697291273291964717377682315295848567856068500723474550432045668835712538949741162418595231824312063193499304923690766620555526351427583511482100750319575674770694617144883647988220044612277852962264412286461637041444331850448669866028172955650522423381984578846697776384232222533328010516830613552806549875510964385338598157222881337799016283414119698072562381722671786997476675083943930736733370381083147775580031531903444534526562279917007468339415249146306803974750604968924720624802857414849419019243404770222256662794071553320133818750086392469518318661579675028112210417253979246787122381490164706787871156488338035591996158845046741639846429049268542422211885931475524235198607550297070182775993007619032933690689875670060987693237834471117354829293648515179976890691109088120208291931043852527876309463301631643244434904586471789520315252681715837989832481318851002299390073701183197312216599521315039880910729055047326151539520051497554204282243228946375953433725501281505337730807183483879934054381820618977825590161477114751112666043180049468032078942414022829979815632700153518520206122749358849237225683393677707938304331774049551747957965646428906928151248673528216947987628417578084964871054752974012365656364215057449037097256755405447436829140587129767886985490438086941021597611774567323053083654906223152148486193810326160314525252281362016548196129987266822674009274179572203870020800132859485382617407107935235280144516616727394526768050881905479900691886923998477190447367091199822692318156994312362781759569077488791812294300228670278599412149186913241959983528931849091147295401823018379396570580712374260674823958533199280404954013937162890757718878174720526249522012768564709961034282304540781295891885644086411297153390523336033606896146775021697764917567522698134031015240764972248716794296455388919361178700732986518161376204417682355559346417912971818132258535238810588306156337579516275284264681875846969931910272544066042921086029278968554986854262882786312085684732407498945944201639377569431098322957861615817326051821253339080012582161018281140837006293855426537952412564665022674513384147073833157037147793623855415733971576120166867644127999344185968697366880576986523783055984161249819829613163036557956768797907820040197259622239685396702175623020006813509595012461811603125558053224425355232782461592502099605764209665214249055285222900618907265422725543856198575675814596479947891533472326914964180982677435262722595451607542223694167208909647263087752748874554941933193553511345910982625201139732135946748434678369125834563402619403536299907116067434733350283974181605042126148284445881265685855548870734708568343163874189944920154100958471655993254293213703920996413186849786708318649098657239477150964625147772437729476847868387145232139322032707737541706100726097670478683858519719946836098887052395274994372540207200457713471007643769712815745690361692894715817255442281251252881272603512306697827115220344183344511246228893735346647295747566575657148713183390110734585353881877105731797119388631941457879187920982910439074685633092253312327009561164751829580610835619599398982279403954894795685106317218809183412799887164137585402482860783405006502053201524672097899897568537597253940362462138516232702153881538871173157782052698344576010692010724976293321845938142075045597029996139293451427643250765166688607659563681695329305390143389013734933165200198784720334959125904732461671828614956522685812615615558195266354391457423587984702609142530801981004677130419451021559408014812089868803193997744187130146464470509824155403012434982846714234230300619432137289861001450667309667637987268739087161874080814556703438675164720621264722363447440081818022317739830744537478937293494769588721381385182050024566746087936714037245058250186808406836534019339280147434432186576039557733421684895553794502886122613743396694104197578149670796659931774666854401770038351441588129477976872198388425076139686611487011752594707133562857803851399728319035162675941514839834128838101002804851754188194836238117318541684005705297023780629067994181208358411319579139973820847717214091987233052773689226480064065026263674537513664361079853744538690094575018830598627234540187606958877287468941505064166358541397447499209086602189055994802085309543517039064925555435480824216347426237480124399587928724431009249156693699662335073934336286117391320040128402327046589945751057037166374771852900329613482240160921430294967932723714051458763637123578290306084497773731388726880717164805018023420718848046710319500526473312907081899731619289688809991370526831188524690961828907865499023934978159292076929794024412990821516205988372375926408875516105568977877025831517725368319996272205008699829810163884635816085307784108718400215271243403870776721665643811772915269720904655038437368767726791473092036482627131843164610598071701226988831950772225707957832367187361025129895721401255868702530796456537862902369658484471212435039819693907801136658786676471926103577005878340043753959999199687312250416243270330565676172483896634759940203082095603542389538045543383030292193927276338584579562338476062181776384372752232362591881635351450831494717982541689966753934031193958751923547496339050569777094805158442799056780302070847753833959755779131637164439718107933773318744288310548829857942961710977658025801271827483877092777952161782395211644434444665875633749258466224261932982357311222421765591957620565863779924398076334589623123984692279060870567832681971351516210382402279889779956935615234335925206785442374595609555320127659406124371026890164298265067155771331784252754653139477091650946091234201993763314430943677137083057886927087538243342962434107181651353254079661092648125048149303534863459924598218633085668438626083721307474436823406094709512279461160303206668376243117444151964292572999522642776145329212868443387571781869701641452493601038724546418868632458272791397936831418420369824079101622475131546305560820161270476923908705720534573299143450673214036391309980095336347007054151339077306983580130186223242803574853574393896593209037073888663687977038751604742232787450348592043883863394646544704648685814183030377678925660804129080730505035194180524975766307076909947574698229998076581862370289112818924476091558785449465892973722233305114520625970197622584579350803521241946371773917641938917172197740858424868340292752927842914366000499847703846119606469007637988321209866510284375453492104448693277440572009615245033371596930896674082774356583005054372580412790086326936250776092148007158458978946544676646337779645976639539931656592865274942446941266894917934623185925374325305456302442309976573435518709299561837342121068276981964587963809119661517404157679959418174737048953884340512619840135229460636879166789872242500492553053247906963718771805614492125109675268029631105593029541274614456359666527461953621269258325787942297947540764418540148562350653756631939623052197360562088074483400852201416657205602994099216960359672705363651535692449981374425704683521385301192670998501238861126662541895044324972461495783117167523293912796529694908951100578069264799533578261207450021671070084343825921507595796881360518371637427077807417075346212205088195836786672455592374920738441405794999485694688872777287182678662162150734328577059314012749515422292822155573503429085328573025761322083984457637459884145268718613092411562292971841525922274459850587839035836005993652372706503268714708268505461955903140050823025706537853581046457183266371167863694680850156453647765036471617763642737334616149202404163502619484484209766569119569585257132213473260400990569877188196319630049265524093146356298132883175430956905618794108384933223448607672649008422600597807810546055393060511548823561392448512254625610354301625245314247140816186865139297994558906604742458448540440377973768173479431445498966858665551097090792928261415334813885581128106779630555284948530102044756200597975609183600648683093820277534908871118607438492351237278058971153420933730591679795632337623426732442157083243069963795777051827769906110190710380237149327038683288176862807592813464868709601892518424753674539004989969037556340647945106182011885701531549279552512380823126848042566715971488050174146710752741365056723836057713946115430136270886777251466118621838040320682157414206096474604841936661417510418293694276763905900850501119894919959676817966772796801888449538988012496628828383996775395660436328443237585542478186257716073377381620657705699951008555024066959167875539552827958264496241343742161703761775065709081544397810880328212693236677722049243967581045228164302536854607946688224613552631799988152747090880327242436643892903060726783449037515942100346233553017861519155850449923737783814993775013099701197926449866328396277824778498507662157985217131162989935599315717795999616968411216582175416272859667793118086379282066764400443746568166786835683508890013974567950801273085968068927746433711766117203088129285919423409105689448195808789161880286355878226114269570424334721490979906132516222161871980761430957960321398300879910536392312890337846446139203684233999262198721993657111310570696206486563985961741951518197355308930684713621657299183856481357225709129883820666245365811975543442806950324673084823243544575916983832476343922457702208242544978757464012223683502428179358966613964506897494895879938995097311862633041669584627474929830230485538282129739166301347516812511036158235988200957229586197650626166136617031418689681000428889025980316956580602260494474942828553547261816897213890721095113840020452033827612069617515251333208548752010889934894503457939650121535549753189262409749733058182686961029864908446991315690332327712438132196307026989332545393152296273496040734880144621436819468333433478476853317907394110388547437624622233435252509708241192310967985885499913658631749233217042392375002205168427608152372295687711139196041934101871759285885907671233157913293627187582175955570960058951036760859865569150883836452892564395477067387259920938964431119476686500869353513802029881750548821655813562011471362937261996038949366079948611236426637036827674844319968375736485914329844880982959098481933588263174312550292111298538018235861139873197209665643691359112392268206249647335104872089247530438870328270405461919952776527432881665964676968373176252355532163638989309003875580691415368066845081164261238130583896176329326466549770711695630424725052266677739048252901100056130725593960330554071762723931291506479240096054015112603964015893488079341453340412777374767768762749986727104317062664783240676395693745496032295766924719846593608503033475047310792215372164272356312479653154664202279599838165860573281296869746053855379167180941648020458756374548804588502737706597894860336303423147094408557479424975626869253403389881370924208479876147109730694107515372904772418730468727469629234548736377779695493010031472526605317716279193342634287686652761625352787949328009371704526031422701557175371073898265981905576474612484177329974931216305343181870681907370222521972362133623680448586314214168222267508739039928037708844094373935812973112260678196093839160916450821452249323857343536648940674540369372778562927810299769343633216540413944728908465872453231857458419401053771752592088179574320430740091556555288058679206361506996799567048451442565558952834342510880992583039210930820814028607935770302727296075947358121582942959647385459520832477487611343350117991155246554707983625479769295477881990573428008330297812297780589609365884465393750127115160357924989541461695332890997933765976602829731374982012461386499481349785090215217975529785281401596245265457774882580407302069035708698735084417238501905910136899338439490936959094663900126459872968364317368918613225607446309461353836142528007638615677959490325695744074219145337393987640072152482112738205578553303532304481030613736529724158791537934538115199054519698058491345416180359636577202204189582850628994489377479066974371802873316762633368886412961946790271310916482135219968200457463879349709159078981339209766786958263069207113720639869257606778688675430777457383714459605451343713092328152653815810723542888814686948722661865736044522136853120625157173579899328442154462193821024418904008633372745005399812127288295831726411081973944156059808758178620078994300743339284749292580549786270933904287971972355362938249962543998789983827904374419545573995414686179056273856718766726730614813477459282612033140489250812630446148159620841944317538067131890373013291278603380464103269978006999319081934124791537463892804277713550739056785959045557124262655360751110006649640000098507800957298087328292257493856419594708692137117503721688466871663394767883366823267011791525910962378065706598936548113021190780439160733161685414894696660207702122367618512528105684979751772104582247508453558767800433972239196683612365757877260310894622749971927895723949521844853036512659616212693675559137638367873071966030153471048273624004205197020110093735989257590733884363125550900484859439494956181224819959673174101298552880171555938803111656642688429561651517438837103838288511917213014319917948538158401383921791859721212151049750663842208742960496642536636623977911018770809665418513167372717171087502947058629082002408743358318146994610816562791556245871865513017209427620750741953988543930037315832318535578910618795507046082883942736338521563900672293118212190493360161952554307280406519553349445551785086185540622607383257079054687019798803113577716594286875287171215944030354887492819872624631312897037767172964212003171380875045907542125947673553297241814353321415454195670337493280726952550754870440830364468283457247486940723810971784561120410378279860296478386089142993493616098948277553930007864374983898841310426336580748592731974878561268501592673505535255476961647187351345489882669436207585901572663509662169146833389769588355364380082744580986392734694309155346750274646329577598319248534555676713887126031110791774859639577851544867029586635909511911735454942843317137415504011332440547410421243361563966953256342768612672651216421212524068999013251536413350518891909902895168888615782276367240423584940741314887785516152961293192157022064303776488573508073703205907248973093642189125245579165987650677588348815773323335205726504766163667567788418471080068054846045318597814836314075320738771245721396149449541922969404968977078513034381219340116288980205722587204957352913023398947630723621703090826325864790033083524276286088687559198029975206856083102049038554018362512624721965820772268074901839939639706810517400901826545439453919491576036398637758265676982603290222647038735163911951923721274410767691234920004748561327972155623745407741782951709305782429366903721440224414604482122516522367659592685971652831102702081870937625825179030629357646157198257618572221247820551589426973740709970737008608536110639665727736778193078545228356672453097573920932869777038677293196327747695058064371713899582559795081681372590305811427154154367556473578895435197968243778229290481495465079452390798391520511397882506960328092277320038666501180205877356500238070966514680829558663668185290684720027129348053917853410727582212038251067986200884002433428897457515906144877340790956942442301142443074768484006850724505813238661672436721820524126938251326489827750244609702241005180520494891526091453774004797415074240346130231379511703619148590300256400287211809128726869620396195715042594427645851337755710050892668205096926131300336058567036881004395140390614356639105915406474715943637781389526100839014089195248998444067710106947575945461851570317472386625037871144951254357380489716023119608187710159035278318120415916713099498241349368702025331188401545785685259935694987345894183405145423886887914833387690029070329171950436092559665333030717872080694923208789163480798212471331915038355863492960094839893127304131716661896252482482329206229556617802293380420888372549620614851503916515435993691166240068120876538451168873018866086678535142564889256449661129936595011440783600396107929602190253512762956537090218162295865359629078644089860131260611649473557632539493198494299397201071133691694469266158535076200409009573569488622938015650773878661513189420165837858656742176770243255521166344653904026914331857279176339424840333056339502503585062427160921614645722145317422938431219451340507356022219973065272423908961296352043346288101234264122741589295170089154809441299345587488396149702726044600722275211237517574497942122887030506255166716278244825236438073476022117762832699507689339689066205461445967923027117232651907206696810945488374031288521782195655228814809784478565035720346855465104050007013956285988239604429480700261124475739511416747803509326919429364138055524517527550279554315099154786148163171176939695302060298063774145863938324925620363979650552686135470466979130089719973477244589731781044447161078442084486665029669436149509000829362426127603382917791303011306795272844800636529197765789184148664294195668049519381714199234529658850398470829629252098769167811572285174801170687522987632400730055597691898359129597049377551637226736488344122181761719614653332199789086437824102325010144937845824489405189746258617660500904913168153502853809337707716837162576813575591930790112956255162423011542803446086696261226044438929276636936600419396887989636427109659566521794706407401296544747369383831196021497281021365225179078079934621490672426383149995514988228098811302078121405860174223856029710110267294474026520252869444185996010365953507179062017474498053650491191159942836985061544071937948011718565194449177885713146513389859320135501176160183012877037790641993720863119128762510478153567340315624830848380893102701966224841396243622517094484385102106786575805915248265705807222901554626334669070010696582922963483568046365370956938276448020286525671537045177565959636608812223535512352056252565210886096136999144772025839924009365248846320391553876797377529646832641028320741617415562295968122902434780764117800999976849687458257142692554562760970605014473044228216043128091455228086423145740877757298249887293473196739885038054044027119554494629262895286126915857484685399097460091682831457099993088255095979616315263426143558410072108780746314549294677828965066913158845816362963403224191382365818383767710766401424848926408002332936147571035692178604187149828405368871580045543346855421087901301308764842992893883233632503630598349890303066681031509089601554030198337320223907380081969738165622111460442010218264865849355227097970425828265014608647608181886255190771354134277227707603065543102738581650077263788694152643808196217164561870869573208354118262876712312169016028153435382877546029832816706591019440269239712051563301209466726451035834495762732280128885395599719539820395882185690063991709876136589752104308037620687890149061886930624490360667299610594015511550798317887277649159008079121030343563083847129016976504528488822074296035054982474357110590602698271503092323301565512750799224813400910872412314476743456182038538591228647490867191587648826362885382169722664713894290511080592766127569033591232779763157792090763595829545911907964370038361319994372637821958448618548601248839011938272056888844397975476132717907194005847175668805750749541028667617845349851711410245723696797298645627921257963313353019913947173027429311873448759529304995199650054230414321265695174922633927462314942639235376484800933335482287424498895970353804372483479167747220522740920592585436316274722351871520580962639192779956772676403109807572757407358759602660138926772972986678817651216260627857795927037620701933926229999344016140885196234999716732344346614647895558404166925345140933336067036897159325821986873372139653598515513420588105132245271627056087723075366237995835843940880440372314975490174413600786484938895771222245242011337534647329629059992574939277637814308553290133648327369990262294123253086579878697070417034167198713365237510076699991649775699915810833767683634304031360362881483465399506197888994046919012394507022309541172928743758875126760135159580624314159949566261262074761970046121984516556263238708827037910255282048142574730224363035025105086619908452339680691191774120921396869758131899844995125497812215043271812379950639482909239482785252157840074278440599164445001556698760013520644542833267400276713204857704406971045731183366673252895555738938608096576428247327301416449312177280820894093026118438656124284551724407946098454497675637079800570073579532187499642066415365121889086258340394580880642468656929565094596963612232228402937317281774114074617932360034247816162622232532904687013502980263369449143931168712329707606274743848578221744606613718715198756045431946229962228784894474502193843309305084777018275272193997043982013032479515263837094560965581034793674246957648303259488415431035225310114130518773909546450419762961978868176308956469392180984706275354464173956411796639818694513617575262152399015728306141510948105856444580208475640494453345569134421344979500719851227148176726808779219797036723017051413316632448486795154842300242693588271534424316577969008340619346726064972928772458110263641136379837784898799829821472971866648948015837255614202885487945346004456514156319168857183274301246418781061700766242127726603422095973872521939216014959457165991545070247601962499069959582002845407738597985618887968554322742939849065116498513346138105444147007359920623981584214869388713689410389762085969703425659734242484231630219140035052815108445843271127214684090640320636906726709137800973944965953232281973289449830465540489076004018344087177442355139299672025613791488889850156675879550865848137517676178737460211272498857122720666815908129018257198594161221590626235121281316826761361810741835287608566539425572459608193366231324319794974212103615153131078858215629241436223024727581752411128257520943619200592377671027700792602428180639372585639290706358357102549085120587746985222168435989689100780976167204987230676946449842959020492395883885321500825294211992864477307986991990343715377940025777498857146555829377256031408996853796693069127977048108111677616809213887686909641279060074314229558619134699161145943641462745960597677490155456192681373088133476090052243043852275166887473573726231570556801055527917031051460450570340034676197876672519001513164275584499814586568843935024731887012241549063458377628202645734773028110552942496568167384873893856747234375308376729453581851584974784885861730731519079963495955146524367294220629280321731940393062347727724411291849789685672313393470833317235736855073082183961375555782644175426441227424007830917531264354746061993838781770978411259489781526653461867455916136051781200320337315498890240764620368745192732381772284612322718503027147136297205250146078865596594042846729826046796762214993137070086478532961712112343891657950434064540675642197580016567733400447303310240819943430136913191316427620190598867825977303694538268417479445488940616870575191656755432846506336166814968639262536393711147614429097599931320732612404474806828007926208169903948127515856298461071284092965491277690234506581583697800430500149050196948684060271083541470809570721141913631291478558356350787648419810732453471045733343486565498830334357551421085873512988115628468156481196004555282098928981896264995448121409469408515767136381540682793608642538514093189910635453352912924804262963694832896635369574702210545447598491126451323230596857457322066018158765863584773951644882806860437785074284487743358060499223299002788600795770471016623602773753078647363374397813388687816794485661050708432407863132521325770668129948205202143524828509628050439839553649651972313446816433862617905999696656893707372584356249404499003475162734210914999485525126106669611078368993059540809871459110873838791122507219537359491593738106188239737907886396868809885483710668440095375204662186730169950442746831736385095893791275251098821954704496803481416416889276472183813898204189065022887776325328455536110205151267335871305845517925897899821917263810015729621276698188301076272439761198681558496761700220076183442985475724729988028443646858503221047619347909229493316073252986332766231857816277049619170317933033210629007557706307188381413569041099117209590711602503156445309822460994091053892096702849844615951727859455811615525242637044455074996544978578405138353816146376166581857621496623950641292002741941733930359413896941151233446052672028845430201194771784123906103096243677360380817056334995493450615786036812884383499867492199066149647123645163202617105702883505847324822315820938559041040856736903141414646015878700749600173191263157035016789003911964704191904741377245327759090236518305362957569366930777678803923323064717023266636923462378599309752152993390474982234918822106417135920266119001241257710805189659729151435951482251170387079360638009402742590394804077751691644336237919454610186472242405270948945503455236633005400461077725242841964044937552163706262531445332134825107550799224475727600604567226062276859367259714164388592558276787501741723226285201313682450566926765134473929389751951087984460250436230104686796824576776763174169064924290756697719496998629871918246047263579266369708168074640802713747121640613668562938204687533747718313234798431745402315875647036484481143257465527834796908340542503073613275479828283424234675417470512080759732910247615899071524358965738139907858428883315061367224582109103437116914963402949238411975361028337072807245248302417576948311388915286193705223911819166713613624661262448953297881648701254324784474399590787686360063581292691497831101986033177850416023770799957797161851902206687671398885570557002311814402535518893964334171029082836650947825595685797116006685699213487062114646080115344155010223835011022151243819839446263994843052426426874297278267972610757314802186364901610126204421439827310792240570877923194256331661440233523717978255945491332779347340370415454349194681862582567090061269622663696559334773347895313598319583719046245388926378726882643864714302337266948862838222591506975825903085489022856645712190370240403260873901934180190959874613312615683082822038071718740427938430798245885459661849720230246604137317020365336380875063881398021041152560017880710268029853577003895828191022784646589626032495774428724705079507733743577862368073317085643883968757862196810510420215504068850152802112442520049585532557198248513671749717191156438698958158700781088186869782459290459819780902085742049813446276900341621662875405855830795719345073120249422283806570436373921074255817856545456849336791329001394043740463762808563992287955036068388380555621503911824557752945661713873706621319728528699093635676880751256573412230033025159877858634490726663414947836044084138942292505121312258095209550982850310354219367041813250843533487315655482980666329814316093129358060802474552306787364724454842615056104659036089297702250375888279583051051243987053029183962244755403981324232926518557352336310367918113057515681977422249321130779145157940499671866453512905230823645811302855410574041912734111413572342833263630225828470093996819634765976347624188528917427647552518719875797827778207980751034097458685305530441651845410853563130132353910546130956540354706742902252736424705637301527534005900199330044485830762117755632839823255416740932400789416144680336458323653636535965359182129142722060120458202120099687478722804851061107622565661451569584299183217621828807012509912103396331535289836989654028742694691827891873662725135218022666628679916908616702854022190434212367701708574223519512764561491056632316133541834935769145295535104928191981173176390160447062945782539619288872141146545944035487742196612638908834746272014161308331057134965696465999786533689134742228458156078130521368144113467548730836122997197183849351380173239610880903667129437635172648120503793935187091332893691759293133867987573523542555412735225749305894583349571998605859058494850577161872522691096713955425266429144708031900791528560109219018389744551515644625935676559447325944848479356951447718398831119109018930690622696415145606211634008465523984357217562735062135605931434954916357426702670589269003683438355638933499784618625766196964365541370841650635845078597323788505401917435132014604648819935579770783059235257032175505051416860690955446564027951317093766685082018007142752309143111708945450752533403850885063780709679902304048898557598199294006068998487763941506107677516210083368027083778410929233042469624958907358042567445218838627329650869749807938148399033133964909697636776881051044309365725429570311415739622623962034667700941982821290075389949541801870886795961068396958456597687478944730530944833121038258181388470473792719546015214864386752105536401969043269457798818615198074919536887630062325019947549803130551517809074210191724166745972111538816512136414181562516688329251084876732441304877442202666530853643443296167886726467596119856587561997639870779860988991236474830427442058651153351178837212891983684975828743856509371385787584977678071289398003820789791769610359431871657977682796344489082339119517113389263993565788551912763014959177590760779334686135637095043874414720660174582764303265459763341053307026052203175603239823414639331721254511454354084747358485727974893715326555029973445859921364592135439683794852732126724881602689938817178089631690711561163667102481457798293309336708564272682705873874142131732493352105482953114801623517739942856745164884492510961018594773985901137538704022467463814594341617067117286713279258293064106023400888968532759106249906591833441524102844641136428811320274938270854675044768679963859302558301071874376634835116514251898129375224462532969142015639501885292922592282952288843547765436330913087188585697151376171778344760261071608592642823111236288926047963333889331017873876207344018721491887064788788871928597845899992825261633241554679708668823423004997041089278111457161199635452269692610641385705723448461678109064660560902535208437385839505963164053397535649574263499611559003680597735123688360613523137441347704923564116511954152850203367564284815447892407718993255999926758530678272257717891781532947700406604878406896168609043234599950579672567246175364688893369164312177838194357125176933980792169095312752857421880881214181148938327683086880674130308221933167599892042951615200833224395436032480163336280346075445987607120330509349717403743483681380868736420568450430956673947296373690435141420299059201681380539563955630308181049879884315009599033259411555059264015950938924689644751447047854133558521759406952685551294684401671537854790090464830840459488460385748932752852482158578411740787357254565655471421770590539259559590038087215318671738727199810397035080801508412759555898887574818072858919109746674766996999047595231498914724575651538375229659135506700072481959762263151946058640991644760579953147369255260698576285990207957602400641172174805593996151244677153173439864940153896043335009681834431964232783467553177212445796027552609938068534194124000533728212631340746852947151813958707596028425872269041184131609115007838378702645667734272987277196127913750128338529407846195519826325185129641235594658494879007633596164466952383589622496318388069520100715934185935414328674504794277594292764342506983781691513149607887933898793435430640695246838527701301903904633299599848921980368037725860725965433547225933185383476124318137055306833132357574239704879866380297029287254006969073993702699702591017011180791116180918023781040394331009487757298725091327062958272750400506552165343785693410465588082238557480814148766177629858303762087857341834249255436686743416595022391535618111205909286129157810881712624807195522686232031354311225118458793868988649142957631890153699622672512993120603632524122101600027293810826470492315460375173607723545867946540620586244464880429729408662393648866898159891901283224675424878119042202562511491107613765088416348449360488822258750928442579813657509035046247598862063011903270708180103962358461451245668589344272202818201257964955385602321163289941046958495959801591551559705731695190680746027699531907019995276147154772114296788263885098056655005491446891248196246021167286354538114296511897656354937332841168099731904873698430643560729071030586796169297042772052439292173562249378457378481358422904589996251576438333287833503839446791382733579068327426298333642585371874015568249090562403030319148148740096336848267235802988674139628619036457846296773405303437834556409402185675705793922788693020671080686454146857466171913991524169755236266427993046976249634654142315458067528025771113601003191976182459825665275441836252549530047292502720123813978743051601528538103811928476354686602787635669651463684759134417417043535363000185845988316549910139620888731382862807641596970047999669121568612808834035234012814556093875818894664590142734711166173810934597033155862812047420520383047001601408284832870068155554754469076712787084924957048249725495041349915682508045897371993797768431191031906892020594292096824001121232657822606424504732699306822791048921469673713514115748073025374121126206068543401614925781175559768737156892069366827847413621907924100751261757171124091346175285575511076508528220333114989862505066042295968480895019549222736873340096502697087465084100347515477541335797394790972568024056784184087267279080611528134678604675445915300863317693507585822588339872760121964783885409243714495615162338517062302541710857426624728278899590103421024081994728209826838221428970251979253818885124574514055200470544137027650803523611443049922491176106677520758279374718451922900150902278294094400589459694497058146742571508624993593619289983661857786551540921653578695086682250705899986336787097113625069686206752216348515087370463543434286707628291948704872444648738115715470919797264971832794791099477379940663241487653574887773057664454774947533986546111021683260447384126799229538764383419707838545689997540580384215070752169115160812005522809218431801957457653972726792718344411454162966453603118935525374692460083701211877780578057044579771467376736188190505862192139181221105471957527833185559719596507766818234496384485495699313176715926456548575917767080488311721030236748352861200274474370885518810784236098295812229203597239879963827653915624306981426345925762316769121019718662911874807832664487476379883543031845821330899585384399963434722146026911259498346318977545053938756640293465450029872248129885001998000352961405607779557587491440050563317602043425336992860707121401493226941670671025767253529490042106678379518255632449039269234210925437383916146304129642956831705202085753175311876181293218625067771347262264585218449238813411124871711962227803492720824078081732826098711377681037974014187360842967889764702810757964761714815768886045273302980084990033976200301815371836724989360443526352506767390522028764169355752828222095086837600952923864212856071719613123896601850989261025516632813865027318864453392358802976788367884168613866869631329615709211269498303451118922966229660858353338441656533427288803055794268918742927175960251120486716546157090544299976485453937222379157875052982464750506175004590821229727763515406244591703318277628718122419922344245121260367069536557169623811019191356058126032126327571885147218428967417944427506384223375316648768567865336911972361551497699931364453268321114069282985929940398371457206232443441536545591256772023259099234706808244993857735939994529282643687027287184623678714701540954144623676746277350145217758572473987033086312444845883728413583879279097875533339727799124122074578214371993971182596169017680765347261030205336021715502610829998000973720556848912716262619063076295157563345391786566977681309845015629700891992962817735559510340402264674877810650015735485093980859631910942765603488524165345187784226897973090300958681120579240675916575638911804533277129943476939097460355800755031406722211154550743247480259464556692442179580302383120637082373355803698892891697574076973083529892568265053336032659737450648185079694281285887485021061122544242715882566470723302866078122752250569881864703571134806037681837323096796663835318371313574917417739624438286924750455156405573532258493143227104125006997638792600316475657516541427228539472572489259569957558939324059590651822333410175389218876073817246135847924165076024634496438731493764893588314956880307150822467730346330626331802043944869981869915547350621698222167344030441095454160223301907034991345284854265740410959076480288089133529166998528514467724736473981857630502607854949502702171981837170280976628411214812134472089004446518672589384329018425363903858629610523799480620030376634630052856729686353207910352081474307070101759068704956316966196311664071068162731264926815409779318082307119168256781121317983472122687599441930950812363188571266727947860472182016948357507951129745785745013105844339121109244223165850226834639639460440305536814278348365533841745746877205974748355445355041070174360164219670528755578592251779703560537660644560527715988842758850503469262034793010819848984358864022940961681633160785504376713098124794301536249888097702272277159620906066003615110399418864644141764373344661309796314595791463713601229116492962124320279397428315481039495410231546785458110954555467757719237465619131206384131259846504734086716438337968752408055970133392665395526193032857236660103770215613702410653006943181425291302437775354854376011658936676487357357298855944617189681930989692121738353570646026668758340454036784147805711693560787479664802245500206657790029776809983207345380595125462211747069618624540028055677423317745127081821546967448704182408871147414045849391673070947153573618139572537159044438483339785707956159482030529705771451794647064779502437746602215013452550349784083880520296173075985114653641094092112540444167620891558504233382743860404203702057725468830307740387569697869934585290522970207703452333052129423982420254024036914193246576354020066020551208151610878043777522700412907272112078915494711205067941624123270323101567794695634889757020347356259951558423822850798518275071970210222102344612129617652110973701405973246095332228481595995363515534041551995530507669450211929162339376055104972264686074111794359030797394888136485266922655987485411313793773150721400235454739496318667969612145114819782696351897023420493578304103961223230639947916334249591458880753928878194919078895250509616445619416485306634796854424610205862589355502201975542825458746236345152942250108674064329643645064809732568785385402772862729867088089264878230068009170699342740780065671355862645472925133192878867613411639808652739318855289348157798660403213855266336250663704314783039087727732085571066262509015859478245611033390946213396709346315541964720942082896192654113233164641434189448886333301998715023822377428193851264691893866827203640769055532329737671341741226723925989820505419496532410878562807088792023501538263898086547547240072538678614687571983865281404382827427986092449624110917292816463350791750478527583435219443262027401549795257451650370578923425535743826638590016331044189719252758059541371331912355351819695126023368297300908737062066960352258605532493325924437789862936866832507135194096885530142618969894127458450320710921066939447357509683879169834550038968481973219151847971769163882294809779264538407559161056162864275104929633984191517958687630912646406896043701158899055270063929920144681439142647813176806163315682977972470978000541696369617481398755043700641966016327245377752760258030846596250547191729755358956614959952512086754951471553509212888855008478581887530238843005957222734363774579031643526318835951460052617359922594614922045835347448984718623727346016227591808248509591399632325509295365284236137979211977617899315100622540213157989101009930866137063800307651513864201161779664528281794077652419351872519920458204181547180980546954805763945505900494363417860481626771912004771800700994939708913780672966990417588930017355382116582346025985626351390601489010024408535183572403281017944643267853065917325623935378041073882807837506375657803146966870200896995000182338935334093024388970586852504450238384667005337796217197284907872086993546676510340461325306246187572379096568170257178340906181908290568256823724615457680125544969470924928111996534079028762147550825721872892082780709968712170608308375107466059641770323049825541525330869923463100194324934327585640516045870084822321678002525122285412760540662301981160267094928298876770206118275749336448698169341987110262861789822446779126445524297258086088797292154457607496305757677681214380285379626679625328717976342027235634818632011243848472538520823329910762354908898659008843443582754899612610919068091639714162803413287411666713494690626122501003251638777688372862684143197197681427437614845647312496015754140509252663787578935120740173410705909157954750339582161778890663376740734919874185385507539873398086384825528509802961822772120336399146812902648146766962724055283202455611077084901152073507496303895168638813384456655199941252821804640090113777675320903426701458094218124321002488593032617395571216246246840562247573813009667928301409731893462613572147907675404455624559033523813919134244821338407454494236257827245890374203925611168125010072996084953616094095716443226879795247787896111672642224222591572289231765610437471931420125073413690707666905109755457448529186522578150601610322667500117109018038503158927623056965170329982865020480318691903143082430821142037473121164491843224611461598093285506931046618919970202305138135308643732018876235483162753241331118241889463782972358288911604971689767098762937530837715926082179489738063160606887069907761623382474336723737262312383703276631451141366707280180247478632404890402408972995639054531385273638077396299357369234449862402401369638959892415056577723754090420335580213190588282895583990802694068792413668704555156130697005302041295323777972936656836014195813623967388628010766614898753497661855359843151690988474281585237233436506780716761530474831062601828790233728370036062095568527148085693186721433385357123956014773240776507613387304637925039873538818453763487167332456528869206035133875463570964216712697419891673253167961384620914591884612879146710457715263526099557641000866666886533411233745587255073255959496429329569348056589651946341810801002130458876363515331916863797684519057692834957454090279253764003392907341904268452153307224879478131952621482656003116238094799715877344383020769464688035866271194492438256824927325672103924968317807602449232774596787884514631239465419586345524916454693726392485858870307828889685250434801460699327497720072893696081997386077349218513156175361517190699433268497536982640655161317859619269339744887728580255848566174598701604713715857568082513326396595007018861252764449855184911831672476171046651349609208030682580984593470124826385117934529083127981796152424478865727030538890448484684465384522537262725450696382511185202928641705453997220937571939725938725713375014334789312041042953788485408280067814637781223299858106044741960214518414821582001185228451978748786376763254172720452967470612649566759303429123330187392131545772047191212717482789927856166481353616546800032746380176487077730935232933435016121291478923712517494829690488063641831899643498925277832997697541730279245768636007508442633515704578657286900534426918874287755752279927250768832942309181811914207849366924277474703001778533453441867444643190944852776866151467344839992478018342902720349258355035910082232236337629198502116239552709381900889392344818881620554145285757588835265402876265006165757961615525871149621625286625454102916645719566818671672221163632012764553396307094609399196160663826948593224736599341148903848583042365686471592520808524783262294147788503525976543619156140727498529787311708428305476089189044227128748501220316257650729605635416625803237850288579423804873643345880425585916248532211906283995270244520560178028694683129165310101765545734841185344504282014316765315062879678796173283539195141259904870404891374284095907089054010775012385167514320138376901802161829018554125938884461766222738510135402922280321396254645228124675246461330213355063593110070964286804977302974987248014852067947127194018888567673221623800382158232925578165848419895994828335092616704615856354754093387263554227242372891863012230099959357487919360701106361506490540251692321075498106172225364974868592271941382302026254660697369358334522256505218841146252868313775329822217669274234441678635772144294293351969000730194100211584097353210923592832775582198601556926704010924181712156313382626325111800431793846555703358902721166131034839736400785000615157423291029166585054800288042067843634671490659857643122728601853861566944670565499955484633231593971643515000029849358985782024270902907790340303427282190015504265934161200766287740813943464783216226771768918373245179415248934659952138754477196842960171160592849841199144889850061782056376201645805138251968298747378346033999445740296681400953423557706302276729537294533904745777757554558510103395098718876561534838459756006834946869300014800476005001157063005853547090010942905943580832401094285828600273347917297532979019176037458144265996536102314586612653813277974765866460893885720726925153982805867192061872730144471131619093249370528621464191268747322695273253081951998848997814265089817752201567717492534749543143563281478497441990034316974766868141453767953464205090853064429418117010879747704263226928309370944578178620719911071887978890726349173906124782435876092099461311703261094969476009303328815467986002626972596983516856765666225670870151412573685508865810648583152844823359693590396373722612906646611890586819111937746458812325528969300078944610033037986438221378489274124833126889282468834429164921717238498327426321765447401460445121746890441935747637316875052257342087328810782095604074581522684247262047810876646581844393559770135136068314273123972169223834548236046999949789263615350385253543074095150017521948350797308242805716612054832750875541474879280638659351600824540678831369459600790436731878544838776921572574848182866138656701665193912675187066706972189535222216718143581024257913732748231776141745718111202285914663405212325215596682309488077296951359107087698432497690938453959793881986102471256676610618038377339150755983636399355862790798670155270692145950402477533978955859571162294514227160393391335924092749788031642407387178137891418674769701757162519295309763627222714462429476175232400006335279394128459340688865552203368145919035492480689525817644239020035448461553448442073145932007497196546828930983492949677565460538755313061733380510582476244065726531073194478716154770893120097207234813361580882646884671454273523715890473168390798048286986873039987920674187706588699840851690707713558280017448785757272301406187802528299914030293921791613997798758855410087648923863148778601632201007922848358601289933561645612851127413551137952416352680713959591438710569589431193134416765209084356041830593506439787844752582716633570297417537270456528468819331129857235899735440643925523148436859589882943345034395261383147162982654075875480734330348563128862043760214626343114369609663441746130100549483601721441154269897736406829331368657584543934518650620160753016269910469212048510783381630194963726218554784313998298965282247043312514432182234088120467725010551874769226711362711171943296160972960622529467713308250886063395299876096186953886052073182810062901375244392041955609021108422939773182248802668005450757954009280439507427650613651988588658697573647932615717590400838386815548684047117345910992922985912936623836118179551133856999226077450377259217074099436768731161324516621672440883365719009935403762584812601491174803196869750947703189754228578864518417289892871021340269443648883596163554736729403978299781517020635537381450024656855294566932625979399760359749391840752445860709957960208303350423568558670330713821358153154756994327518380445238169598115038883020835542761100386397718501390346471693112401079376976811164836845817906766715611511311763542804588265612673225476044851455751429822827358170154238425256485435157025972000421508511231922323912628650824661584529453947067960348400484108676051369125050086624892646468672498021136588740233569971252540217610446426797838071796653761537624394896594510521250785637331735156343971544332584008674346062161791931044294898017958032492670314119984010857370866988904957884454244562738146483434295896730931423198709260216070116147677398175559215524105484330794570364060394316363976011401254523049557715190975690000292627739708459867226731896095373052767441974769786821806116275751058559374964483074592999038604733075082084694060922819886026949006850618897210935933386847321481889935897879042013983559802389213744666767333524110742694770264991647690702970997595706435187705268889035528633832022058617041963387071113147789977192972244527810321559433959234489112439621187710814479673755853264619731932521346619795176145403224512732341345851316456334493036575626705609981866710388288511821399774050344854412865999692517719072792692789515940677639060296997116189564112130750509414387572735844655158861396737152896609493445058359686385430284210389063911018833927450072210590831887926810755456596675615814657000050065741975055438961790240260728337900338890154827245438280888580357272255304051381871231942476431419509307129387827988481371397205388239579023158387014345755314142888289015800043067931266810453427065236645112483546900004860912010447633438490300794382251980921901272690189784383701406319619652504235444984156699728029068815163327531344411921030012949849836140537221245698759766569210212570660928397414462385294066369227323954869726540748959218255097580877401138514576398501046050628537873376441348560655026590052731678951762815071564087237665004838038358905812713285676855941040258703244454074332798352017598810142080279881996136580525710593689581308813079704724632924087644512410470285647506480380123817270838041127949384960222101853134938952003081030210168004167920445227292025325291137437445076924921525261912070968203156837171817704467838705436750798042532312166371127069548865762170503074010426975595996459527526021989850993895515356101426397648361061572549442842183535166779810176022328230495051000687040642878136878089175981133934584162143410021480260255978612388161640197678827289399886808060451130522331592534181191791173558684423939055849575073800153780828396325080508516302070596917195844210716901288992303696352551428032023278005936132061435561383808526582641305189046845106251570186666789808795719256282588929256032786668589872552224496473166551216336581479397958952051071545202234701289938419317641599114434547452055728157544238843808448865653326444498392790402442642901531280198190284990541317799499024376078623104830967765346601380857204938704853527300120349932738339704917566637165458845683305078562060710747422238363197755329570092627905991056127354284026441779786212463170871848408396961459096235845723174264873643591317980137242062829555129915951088148064304402996604621099948804504091593690240282442670306244956418160577232356844900748062569689754784735233956289535452098504496672678306731851454809737022570670238980876337487266785168587068280285567754042294350962801693652261070226803871968886346142225289342723941627034576399853602673975155748158690428925294244931301414266658815849440616436135378526168861367339535250052332814420387180889299534253849396474049899365481105899828460907899503273266631423904412529434335164304373938225661742436823792089937731180406191689674270498291664265272689597617492875845794390940277859160059273727404239456307457945432966150238984802918266861388373004747112012492311803933093799085968157030437384446496582409442657493982653471787531758100150119642903307890015131857754164982907021805179377872773329400205441631098989466804215971537795986551494846658599514479804490662813986984348386590303809005549226292982020145244784347673723052755895157121506328904228246599618223372571293669324933029803037660672435252261694883850387931516735334557714998455693609662782011851971414542993939989391744491921621018785769025652512582283858983751250781915723820912739261178374080659214479197654237200900408615168458431518906270651793241507012438484478396879036853469927271262876299377641659342920528310422865650249790444357076758784777162052077610043162033964080904762449883219416401483457946409880906206600245460995099754026362052902120853486814455630404303578975882003576196742416278845576263138103393137774880119919757579370946052021733120689347832507329540304984167088736618054485488946715616722260201841362655087308601518376574591659390144860735848534682557032554285300729634158139875137329429226909679721176669270999654395620100964928172594215312895272444422485641849455573134303382656033646289092657717932560959401405969714624941502869073531330649508943661188725266097393775098853877096708836926597469742279283871627444699895660773922632047040202844950399055679060496807475544784753839501958277727865760031915919871770439007521515122063431106861465353747260250028762961482197274489363266638012397995178080520073567902565575517462105118307418395521115769156185000978488395934380787198351392038679245666631413746375279776476687144513604003204426312088352877112965936747497924134027011273199817423304437595174775669531383292358564991261208831500607369843243003584891711119748884727100168637154978246717538147936747948504852887410226434133560972031667480724418787843655672503015581935081654698538370546972966018633266851957671055896118618758529592169523006440603996418832723467144662465882293460773942742560183693705180518165518189199336853243548196520460171975018539439224471899783399834130016384684322262312121078715031633026675092330317936688296769840865287120438351711190535105816264377680569044958282620903519535095520253585495271161159411224467158025879410075753078169225630646284201328829639346144881956529873215626262823098133868302966141755193329161242408340246328145739467392525884921263280430551639471521851536764034660139473726174580636579728680317798651297800265486325210659333164083321103650762814261482121881355710470202657903935379221446509711415408420762310378467568499102625933028213886317776202295196872170364373781538276664260835336467741538344429327712096627951448111086012691948675918422217071534111740554823721336144229574763815505408426760246623219289968333639807381510591226063047775092119446396861393824895102366562924445667432973173372157747468718120010520383612710453586101943093146606384843033775165515289270129436592174189772288976148602948115155690280262130030999313909647793119268000923932467505860982348814010134786749425542131237652592257578313273477434958055817811532958604825610914294712002668243264641205163660502599755547691179551501699768049119937931473308827900559325833967297255316999525343253351895674278571324667090615711001727757018475506526466658367580783947647598744367957089884964546094915413957804663473131711884323598139144692870696343631822263006595421981005790963691108365103154959725349379255420013858020791731655878828008540573329238855641688408655824803517981034135804823637496836692573976775735842430920190278677430792884739195541124976885097201018846603818838889898373225397403446468875284598146750530428612262761432829343368287707728526504954106310993737708051600888468591143244631006143106426693527978441458830739376933052684710593382099251170323314499582305241447021161570505819044465556689214097760379135094255751706840246696472779545506077451554593934002884475876881735760185811565439334416019319515295260870107745019932945449167437076235379866682935756393463656037469506945667346527003028316783351430885957463443549556385223605749755145427470777438095029190055239998244459136059400510023280753326342064410495688696129631679939098312334006713002414847982497998328915274990094167772761948272758643680893258067797920488131177324160196475452922007105765434916994497919553898070249567750354521969549897806533123287362397828118734731898388281307953564584307080982055967155387113132120056827558488690162410886612057750977096590960081495329978708399721198576793801468147007330226490938220062430185532224879613681613598441905816342118806966908024702380502972158109673765622832252934592994070134783349221449201314813725116621254398265672717593394263019798505659903590602319508853231337600910197976940992157477341653714547918572078775092392818406367032083034471602608346009406975439895669930615810328086259975906447933636264491946140042247122096950776491943149896551175709355520105902820873488723801858198061237810524083600012534854665491657337531579149889470849013368402419339086426995990907750125168765105129651083130436048574243440042880692597645878271129669754119738535961459000476636310181194335644751545331445730592520748263578085277150365366610179417887433673879722990946099880756543411585993541018847694753187624460741441430918378986861339202524107348780332472900265405827277900055742520348096887186488336223005598896432687240288351565194133742833656712324601611683532868107887698448078858311143611259476646743293250797523994251067725610503923729135709897814918077943752490900163751668463287317358682082014189145828315157257048256121644272793777481359937680831884251237761754999739959956081396642422224919321173763101135239294580970190929786451927325798333047183925685737503887967078774988328953358684357176203493968264694089392365718869996630670655146417026395804829239904046151012870208479555551368531491783803494539480693460736875760123403502121322940451390955562438346742773197951245454447381639692561024213916568228267340996808301707093032612215091843913999511291899209265644632225222754654288155148958234585980721083606194636495327321663481984714693508987437031602968119616053170436723904658727306555408139615993141267458909220120281406772868270888008591463062069200473330427442742356862597698055357403012206105922373415443205871257437012957680517637827186677672776606577706094333047131736228806612096902479509064733570233905643880540186736313241586765452186827006085179167974114697950601235282434762260719003288578725051775210735736394741868622421106463253495670949202272206545744874156016599628649188327292742747605244495610185804814259494134499953952427583676840982455468701378086885133172212035845139033927221601102062410626931010788606736737795926983718117255424012822945570816905284541876231880031710273749214436055213477904644542646821291766740975744312452252166652690904060799801507852007363182773261181935098003593438192988633431686523382773753616926253962113566971243084357139877292402825647121857432943631901441018659172289989134921919244244272069416974307876647172093103279211517428275772196530783806360833906682484396148924436143955471194964358714555354779467908744435838128348987587962469734013296996784477158607772911759653192147050167497948708234117916658515989421896470727481821313990862887408350886242106018056068967204225720941070602518094609497857056000865668532037719126341340379967973939992993025065942133529849452543865924312913339444217519510394517142377071426891333167543065433964274351391679568024012726656138013258278444592643946352945715612184665739071239479262416429263529367859500586880895126508952393715466577755677020910806385641122397344809879814387530873461590660573645636700575458566973944405246692981598816085646507654270358707990640434851212731075519535883870310096000188733923965947747001964559453698832499935129282729900848414430231928902503474215892080535969332484319671453271701141558255667839257484396105901562966588048681994508035235127323322564213169807203355680857963504592585854563670794709646848029081775859169437233293276849636252213595282380789547747992511953933999801956241361594699395558007171371608356094713659740858290522800935680206587164155568205201747168221168052521394879581670978586211861331472860185414151792922703874738315705341667412950310933807730232055268743726989359686455043188552716546889244244925567973790560785377484178755132583702576102308936613246962851721464096127113311964053298380634225562989476155104877707848569385869385052688052614262834170012225240730807072968597065538675031997064976697935741324625900949161266040923057196055554861977053551414999986921601578061215433618697255607104793671254234406967967019401188997207426427831247688422647901819735775789524794611661253631694146177661345519941045746605307767032907148662066105292211296326442331142852654803695181798668900230529993360647180665108769095823672958119949722658232605037584037076056264808772410246592779829231475214977925502200033775769387644977652722687226154857541554095046311574942126836897685606438105393532745158946721415415475991685577691989195431533295478670212126192395074549649539800589055656368981203037046850703329127947399215729042286244048000349228075965596695863765696913141428143851934483805712112487405339864389152684030872684391821816476234657835147332798321387908127222455397990859396297543352947512915990476279761289730819796772034551411412921287919668188699427500166559173714255342078176870732888203912597801935771625972992040014572893651738004692847440194353549626886076661855390543577847591122725375084100749330287202166081063611776063388217840824126096560597528397969641181886352477088841748059296386807634041587037241627077001267009690690281859983017005164962496132985453140669811136471210497753625252073775372121620802161428068572683453696853816541412290349835920642362125601251093110244110110962902253547987841714159859920972937617387247711660616847239407519542552928707090121288773036455477880235977623355883675539033721313290006019659967916222431493741112980202390835119419677250717388097675998255270062014979806387067699619077597346442600937166069919483566042900254876346975851428952626649616391810077017091025845426129593190031791061904385436825304549039349513619506950776479099409544366829036452395576298041701549766567945857921106790005685033145359995648071955933632144413218520700972494778073968799685582162301984541481024306009795269157598041015783140028263962030219438109711735843623677857603935871280217227362279570599074164942759919663205710211865073668156549570601613080741664281790183582573942063102114766322033735987750195895473494717569723525327009298814410398794500107392947154356458273005645735733739332071937370671639751174462519198766107157273338187581518140313407107109501562434160534689707989972952301857162581972443933472273606999408128990931935081769984582404331859844344504879853465792365446603661957736448105648584892347771813162939825765076296695389478334149865934122076850898072971844177738658927687800288643526777481728580243409539834453370836690783010283516986074287696467510499347755003649693164380509480122747152637707602002335476750872039359434070608047960333285511188387701330035582072024341193237493282660645289585387186033633556591339206548237138242447851207285715361265712574288650452330009819472873000282905349105587163016406423179228667854823582073401810691841785496190174530290774009264461553540189594610553268528966232536292656080887587514030298042164843160540177672774651707978275088848991598869162300166209422523042264610767296433833130907909896872147433920576701296389901204302910633733282429554695578539702000014591166540625285871108410162643636026828078669290314916156036611244932958284877928471990521113169693898823014377615969402955912628732361628061208982607226124393178226363533200750269620486449750915757737507630475205893218816139474097287656579846556062803827096365954625013608271820554890034101309307874858296003591030737403288784907413958510061055955248735940047411051865369704386787299440594766617191813965126138045542116257485727329403120750932000570630163055298315394346166820346443430623772250172255535894761355674353079789616687531218533459013537024658272606580147966662439889046712019380359888669012783209113111418369817116200846171018788031969897137365375910492680212141010742210527631143329383255257325341460170061025722123210437353279709626420269305559258455342707899308830950046043979740279818798329155119210809029250608920799616260372303528500278517109145038116975307616914022113940531135631311549165358166596034689060966192295513996292738507032287675761741858682463529093849696802448577079233235925702634163690686768771766693099425941004184888954261501753951003669246436745414384558839413838819745287044987543225407723840029823789671663238377489432537272548975602817170524799879523151128824670886291175654209421407394408904563248685037394498824926097635843759221142256003824233334546235743397949606143011960386728520198710162340142658631187450082941684419987982644794198700082275470776375535383740927547819890985926466399456489699225422105702389240429902453978825881786808856028562859153982562206012008432760204562286876772178702403735573596290160213733065046972781698504585381048268780960274303282131966014992338786680593493877743860589006297778703181690261493012076699954533850585122622829375363917354574398838276000209187612952368747605350859676355444107540383237640742122843062352168366348415327360684983785225498216847536312486827765816817411816235650172384139114164014063109808158882260655373817703699015449476697668276554149921782805621760490864599756707477105137693847363509600310313223801384753039206001454905619871500166198227411188581021308486212470107816668200585904006946144821321691341696397535287319299519853635114803038207480983834616303417036473956901271935265863268241783153898500389181803696925052385376447466641305878825399305757233191408496921552990636232378759256514259041837825197805852269006836750904633213051255761468681611675282796892111983307066865030865392560067216990386914353795576697680023913532896614685708868911961398258584692537819533294392350111794516135466481505394710127091994508701471085897063748159563961661032742973987599111216895057184470667129808635552313230522711049879198721774763932386470484979747363936990947653121976649254122928627307823198513797681761807785935752486987298826185507632636606736168092382748375026332094904154747078395870704724911296417656175411437638445086307408338382946901437477422340101150339134204031242220650387205084140576544360708986441690134223795044261701778194914443007818953681544604386279410433579493227770965496448779192083177894641969447659733059122295289472814152341804741980563503643842862182897857693046076237475225624901491828651517656621558047137403274308469137896463660501799224117024411655522040113385051927556787474065787368322708258089039448853079757612756185437759428302267039128645912735401925495217691038780190702953727476971097001415754870669017430295331580242669469201525490201017318431079942235836947795566881246581592459804887167950548095471699166506823565764057605719541534968797406035677225821723044925323475699318816219272511108075513305058319055149869619993306556386308498966417552896668678428811925562314115515059506974747193433475673028319072148032136873658654319046043979498190467878896554038809898930447877188333093609136840577630108425268341359696246889953924287624031367995372435058298393280102151809297949973995412413366223381998213255363831749703258693997964377815717648910855443784712630001609109462446366359459389376123130732453748079123934569709034541765105765130908925491597552212457811442209486767933841643801056132468608199666678148730449537292800092544385034311530489192085946374041785385248790148595945834510761001172513281129407321179428484322179709916202116905186368425803336236827265225941085782557368364691792615363127309564689468683319157873237588237369542497211497774948638325426216656626342995548603259945155060651652751919619918313227686621619643265285798179856371711961691676301324790584853405018677243631542567903725418286603150016796751933281015771662201885055954827902659004192078035584185499168642047366027011117099598845742116306792798476754121918399894225478959178338914797022837399836487605126500557185623395534496620918919007501223140475885019381506166423548911422041452909325101379967771494262141019486854660413794597314942347297772774488470696392014979412951868238924500137531322057000304368195762386591612666863312347163016965298800798531949583036661822636350323155436302464651308154090093237739319365634722212731536342195963881846759043062590775897317459065758636390033786692959337448300533661290101356585379010851831730746999028327860598564917528492743448339183391299674470340839256941560826804406222990992557734918171233965800799489643480246092084524513431731359919360703940186854641061955537920663114448922970633999903694873264535884777722471078179122317218172824895601485044571941977492822538854042137057860709588811540393948356054548583746164539366539510102432272240925274870997064146568328121348103659364920290717534921215093447019294405594913977080716636518287665135160520714493536409519010793344716270369194020949914505842862266899660931002333879946808402424151791389102378189986997638316042304006394957583093668541528453424377179861860553137754846546587715025298573709438721283014406950838926286852426781489636297554158178490363535417065734516419676356502995138420045659927861290473301370813425128084503712905610127730894269503190054751739152380325574002506129569546359909490304329609758669886491011059785530064850409218011772152224114916490607150743395371212430115156079664067572000184314853921360967473960857413892006710260471827446389625434665983272984553133105330695408121329977493227754414477568102751822610955617367890691190637361248927659409523859106690708947912794064475117621306365361998573492341196718529741839173843787340342210120431237374704286129977997815817396073806332950560053141424637575499085666580816077054544667949621460273567225009272552425984111797033601551213131768009304813594276457681756689543440535310274454761884238696084915091324933396780856155551518424331491818909646438252400686280686148069141819515320859368915484349510963737023674646256773871548519295155582400920317964659032758908142939280538615896070491732354648691440668653252974023120034791026605693408499704167627739832540653104164411339840823258420824536220547399132374079069163680061642963249302604814585643426416463135587521803722118328933325147262400533890553331900078536127140869216876069871100874753393722319868768843065288790824776560949924794941392048110159704344592418365050454293769475443768276431357514529296963590064762862899285485152231572969635517066377439021806796669114504130254723947234577529327989873615165658342660674008475274400646415325943269122493856426226983555665224049480865297683660113928120396606462755018547459100705854829159251975256453940361634616433350260994682791969275986521871857643245491948178625043135451528334675516416420494610749976709684978054679139909093023251394852988450057610931073948462178952819343642622981552819186087689685474130673089738684762709705367413065343210855588591019306114380711103132373120406831875235854769446805531436661527551874000257953212486398566410706820118725586262541590117526929317611504239051148392702715215524946243949349032129660260292473518536000305460259352031606036037945453145363422391289402563222850807723838888477412706846449137106153655712739324411496209642929437129824616692860053815498849492955810337870174421016149503852046653085805323412713881588107040144084282961194591824940612825663554963883999752861731655100800583357038261322425181586294891068705619543222911665652500918086792204343304258116352058411590279776569172281523900153856175154425524717735755553157377945024090644702354569659637186444292580442470130254695824759026690692424525553237537150563944321675246693821217475559447998202449381306094812970855985079362254098898958812120583032571496356847103607525499925844479713136592343016069339248796050882390545067697464595168924680091519919730034972133765436169923422532422152732495778012467672767452717296612519069163180086809817302080400921421052570811735833893968983850290693377564225325696589071144036039640540157053636201070552942593414011857506558958493767616316977715063145693545617956708056287216837786681834916372741850118138216935045895619597829347683442377993865078750418383759267357207281685657901796527729195521213007313723915193692300973744857496849389231045662210539862069017066035919174960567961018618864159572100288775768908352832070740298741038067694122997883704825472729951357016292049749944238081788340919399019300724602549937554755312619912065687762357867514127982738675817752899190541655478613980464217106752244422348420140240060302866735814607464533954130450372306225842590001048261278014108923548098566531475508223824297681348812478606747379956386261993096557133271492827904430279214885299744840177572090751899667700596869851032574710532519091226087204556912814536256800349071245225905844278383737314724516691604249485615090959448336999771693867111655004971398101978698171089408740884330686206829901774826013414776255751294803326435924055541978340879012299137203747017957053092911192968922285039273686205384078122293432971935155199885732134418150870713199334079784694653535987030540686378248502517135284734701444095274316719404158262908173179763163640016444577860600217903059432371921864739830980660582596426204791259297198025495089854844624303952213423357604546233768864818233939479556838684069724004427670010931515345501988143791261567975884152373348061304801584585495503919270951495105249318947771034712574704287914208128515552907437756803305480088051791508631273903851091035768135853417170815850704296431842597980556520673088514646120556381332463318700747921567900364714041649603864104861875378306396873391118291742039655690896036489430864157864005463486750967112253740241295144864579195632615488919975633920666071903404500300643045157796968205927600193642053779603568584199361648202953221975906665758037589224725205281234863131627524554825738112537651316219604195070056843325481666242657814735826430196072846025948980881398223082543055651730086804355560533694275131567917807322540626181703160865741203148259756385287913827284334170513039642142270866303423306446141631701612982985541008935225996160735501284082733804193052414515908231335145404042962989494887962288154879224289675286685093930349793226992165721290439175448430084703729414873622296827531269395670843631991654289312686995314594785563340186942012508375122578049772826819220246505934463604135739473826458379558973839788950460938696012868254976627199173471001124520460837251594269871848509960564343221499691877412744827893871316206225953311457746044896525656758389124953948044373207248190510075590058402521196249813249076083535179439114871947718389659265497244224571972755152480142671087814413704068473225717540325518437905020986598785319974511487706085108414976693308499041895090709697034901879684425849225022194371279423922608594535596460611803498399517597529700029379498331499751977613675532219608036331401398777191501745411337972147568585003570339632369125747418546980359034191319372518987516035123708833746409785268743880269906707645182853220186625050632215205987796847148180776143924980972916705005060880457925475370468921008342640671606334974468956245010915018806604065183703723915636877965303430866365146541255010753414968114489114023786972388291009790193416322742284579161385476129776394057476944430633264882815858688066266610994852948225357380764448565497305773638933376749797778381060989668997398231807061434730609976988318901725291242490996364437649032298752870808420773713212674654532184637438582507461448160511577979812540475810098141048394957163293877527411701697593785381231348810920208806843676155613747537028648185862099871167560453933759960694315954680528291754271931944050719146102196623507972659460497193035105312607609032877506461542032823520943977635165276726252642286074216145101695439001937539853946036312711445949191844010000136183916553103998394545978259467016920787500852362964514891009449522258174679084037517883229147354169961200621617816769228959136776901033820198401657054441433995238779179931365601650367896855382469138807443106390649277554064302295695961510015403253533089093526441391080980389270020137189045192525431492940207618013415248738348696894479174195239919662619923175510753930962751458738146724963954232772557825544920322862358010858535205921232959593571694627365081078313610333041666123253656630021384150781819819882225430888303715222002116900249592010574393988441519741869676893104513306647151994938983606778863594296845191645301761903232179064573709892027382808615387095736439120319137487064051273084777460041547854100184869438926806590718406494431300385576700890758561485359113692940378877597680605879096194578855273945198506374724521764457702342584092315924601815485964525650636903047256280870414573128723443934640785105071457791646220286773795610117798340539101225125632895919170809704203224591387843289748655787162841778352819445845195359681539632835674547888321204804345928214928455195031270751981551987410414273172097379722481851318268578008233210433766908797978874821597662780747575016503490331090741168449364034832445887349597467175067687380098070041041392381274199770262642399135112707031020038362705943048544307694509732815255691973334649403524937251761103339376981536490630690543064975637510730592253924405079971766564554970198013188264426751497339966049117380109448961047011650633792682946312975643733112371689330490974380474590857252649857163501070937047962103052390012822218208231477123423366029389529331628725454139727213994341881759209190457712827200296279029657918832152023158236111977698285913728041182444459072355580262806035751669818275240256601865114222094215169215896473649182805330201635861838695584836288940979299143273489808495217871753857768943798401929762577507816562269977282805197764407376011498650064099396618945921367635297668611828864788769395597498441248043740981033280769588421194230296297734328122732050859061111346469066592969776258089608527611951056111945265695710759452675550283221348030700394061820940171634385769753133689207324307389620598461676177325915619404504239754407338325569211808558368681243038178528463317082861874174709497031334365741010355794571698959643480170596849733365038014136207586968243050913242194909717651632981376449200280865066093004753741534900066804008576601997335665490613012171606247933825008839321950128397088927268216097369121788197976152645300727946277461197558982347265109181423818476113934153150040528084850965668079707198197960627400378251058572578869663053042037818989049989485209988115104794256913627257592003272727898361284500000604902057649097865908134320701916927169247503494792465350455236678201844695851038910002132261733842235316644834340645893736079904442049011961317178331028865655298850347000289527012859681773606731802265809046705021659575008240553247934476392185349205207062619001396291874771841014670937042131116883757306466477547821706595790040911016093293107437269583323298406129924939844863189550189911859796466743917193445810961105760040458076398185326865148496093331109678367943216554278352887015414207346923026170427823632291283186242508860583426372489618903981778189558996365639373494496083001115697534013529957089444852137082296300133586358296303959445382579377206989151505729016870419883491179620221139515858213088127031340118570973902062099523260983639749225857963731450020069144418157456096041645051904604009716053471716141593540823969629432692824179783011294423574789564011590700920269753497480221272396198250910200601222918682276484448725295645392727658167902190074832861271019409354332260219567086854094184365061583870139308126941176149899464998377997698463760609951050381034994139908331549694392111039415067368138119212424762517291717455642012908068872455692019308197693991993303357392712164140096040811423665637003825426366723239680048622045750843507709362681362289183661386666873594568329552410275825610560671270443088404455836681315728424968076951352067625968810347459160268566672858185566538821548139082870470334592506357608243015438314372238755328875822182436947009418816504730190017967480181809176701299922465482408458200387131158881899977941163509885885390728161510659650917513280533658668478042883146200201269049806939276961272679445414899190866767692023918361182123209875990018556721808461636025915264939998637761722039235243913560761611894046042567511921877458139864044482749883783606989142913658308302599208626085932455508460098870990840323489291693922615243437559481615178053392074641362003449962790546484242908734282841768222782002296155084297283990869912797791101095552122700912435207517045974074366707758469332822500505897183451932193837556066325448266550431408725452408256117407547816659200030367618843933972643087309953810014867980824931303242387757013911219927772323478099784887228140083670224043123267999907290758472410358318073705865849197425822795913929963474094699001370458842765643919699512272991888931595226767347095052751236815725977233929219843205940333689759408046197642275841177234947404529163043259893387218179932279094460629296452933002210005590841944787589691888287174410202964535729935895781733865235397350421580746322284228600011455572232579723934347108977631443325504505666050633769375394071783392953921101547993959498789381068783348458132072026673718965281071696490369439343566359068506726083737876026577066641643854657928265784906966348599595536802291107317470535560254529488570033086402333856391618581075981717414725027979718302469057559411441025498630286166140087421546896282775844072601916617110162952661404606938917125773124854821912189903613232786576126724777827914444073279748661197735431879943091494336003910406202396731436415425942606410493476523647343534329870692007770836155493338882068259406548609215880238226225059098828988923438901624288321858301883113238337585943315463586301517508498197386281612657071158713737548942689049479603272768115729498032885938470574396016834312961841702637917778676771112166725389882890413600144792090142920387765470767710114825597258331282233916567410454259594763264538244444557068103002676301102261754287120509586805748121947751352462476265840485619702393407609077822604186151644789968000695210511224264386217834443213034709731075221759879247104517071225723043842591854192025920553397094368186966358061036420894574486843747704266527909161590528542129644571304621697292527300738229960170878127609850394618144674455709511273167736539706042973507699352037466806221743004680885379250936438674067681024167425204188412308615931619651588139720719701692138248823528656016434133305850268660391450084619351684889478993125324890504941421134312647150263128284440246949751061240386215187690490884465195451461232227925181774550944531023167326229148212919351533803800913142218785757524807288797102021062447513427060564008912722726861124607256308179704670656990867306594047685048843982744926960099508491765312677497139000443875127603240592435706519948684118226502075737052053530155922821083319262170600361903439732401069673442090092966041292554745501785909164160235464988331131317733011894537922985909216304101939644230175969012292481835107725476443267107505773558159936248838371956312994343910408361783997416301759036091704380061202491791993474868267164412326429908539494554312991648837649766901873670962651535476810107031247496811621771916635825007403834590860052294308190040698835635678725435890275249862894777896000019476503251479865653509847346529213153696012917645966169290986901808576401669612441739298727357380083478391603122244106520022224637456747438583128516704563518289696806715095036331355518947772967689503633248607326549881218091791417510016932420423120532392868153625272339517252709832668200443134737086884382206054698320674780443081226460194307542825202498309459647333507176685126970501835770257562097288033849965481487610962857708809857979196013543112940984678590796044226533570829459949666412275359101679343341277509790189811858746908056619585984505685243378576190933401085267072506720846898438973930344763879153723905951007947264063866229881268274052243555620376363549116391754357192566765038422686706474133387051377738514094202053153144728313881890939872048614082099909331425922781031646752056519690006885180605975132750780739636950174657929385861285166290475369938030564760557570660517184898379686880367547831963550529702503541044613617844464839763670559232097661549068409090518501784110402032319143648474143651278951775114243786361600584027194414729214832678941336488180137649681340566770543361992492717933671436270064123533872256565746312415871696788323896616058457348399956389821307498146940576270790642916122528654824874483678437002588226368955821398090462270496634463843775045907092024840139067635245261706093850389721029810110678413995829737921643256959468433724315984086432226407110004800248499238982576114310238585774237929627638109924794614028682874630718650379312054693770712565671935331680213187761476950442669722135831225925141985704337515029006098285877529100631924032501911588042293929536140537244521813560795875084165829740038706835894117789555006825912082044597562337330192889934360945004161577092036192837735996080149276871325002548862355465894362757350160751344982185996464135505762070812846184431674844276034752522357933178876527276974958159221481821682484586813917494361962218736167758774621910996782931216645722766337605459284099395343709968310113232653204434898619710449990432207300785141849375851127340828966193835101329723900729621625912804335627166663307260642134175902300576911325209614326492774711326486287880454090500850444718716180415389472043444533123577823870668555818130212928574633604299401640562341312742031651423820111636171469664772842634193857379862834416662440185847844146877340376735326598064962683977084995151026243740137412452935586770003090058917362210752883256044061215728671498638475057505636209014016839819157433659832018387139278829640189906418711438927410188125774032592172963307663077296483021314171393185741176118951100121727954136905624896354590796458428258477316638710616932381890380077617057125991661619751751722008672461065752057302668056724345424733904826055612826040583277612919881810588917176347044761756116613700786927158436918434070063271078969224666867891234180217722651164591526495864023186834626977508486978983271043325563438881237146428484106589737744684065680803268193791967855341588795568451733103323713644471931378918192615471773221760826527020388704552031522254453648514545863811026383430409779065564274065942263374544272667880298438198835912005985704778007380025610030485550204439700858576679897310369715351544780678832539539093120900015106988940091790225600583846388562382181507589973889291372486481120021696932979967337672916710636801905809275692025388325036509333490864434088770875866465467862338859794676384163128040047441670717908574135400269595760709331646536299097167558723508085789719096409762107786628940644115038389985885764217320649149191815268724871222368458448673628383189466102838284439589011247699958924874614882653929045503764377281181498726722316067178119183032775934483504630223974341359689484542975104572824595439080115953732665854957510781095591792168401585434075940975550214286096316767902735181138476570435938280183212865692642713903725315933758101610367957615662305501524851210471406097522875974111783561910604111037637135318065865312042212361553460387820953608401650646276336225108921743461800607567221315150170912836481029472101350088483503634438020294666233854414666734275488357465423332040216770509924058773845779386760212007614363621292765761421353413239663848200808587234139762205506245540653745855454533445013535655977525331880410515332656088119759492635899126702681510110151053173156554078507031883252658976744251536733521289702339370463075077844073035082527068471721551995531186262634598962105508706537232944009324705053731073006077224687301683306432324491247112661279014712780129513272375303937630393954771835820649315171063388459824384817176305618547810128216232887832370513501400717741850368217201203384058663779989244021391904129072487396959171641000888916382101300762029673397595900202775267608092186156367861987998372580972675890274171943951991095344816329377118238794190130488689933533959659278675538541959564602277574360546755896393659931704442637455666979502891590665433434908821419599563979389188575667217900492945256317977638926760263235272457170990685392761513981013660724730717126445436174446466629116024417075176211923696571514854090649257672831345633361201645709654541344193821307253350034290054819127422595287409000946346148462131323761851388680313851113909120165789255965837974168991582389885127664835147294033132579704161180934993233751369672564105673319396050237238585467423032177036941559789902613588134105371956208424624476155739467877658195158864211640547114814481236557312455393554129305029838306012278341918440507506711854616677516756334730466858218196500255213701408185187008482599818079845620544150431656088823579132729856488593266184184921965973158548637991933044761567284743161592218753651185211240332516511736390227597589915739599419014010153893056156643319340698496864621889041565901291555954209717869692227209197276214290341065672970613923839309306855693732158611047314850275122716542255596444910783995557609977180833608439691316202300878776512976859448517957896304618771393686729628795096574341421179464356656328441804892021901113752167320034020242716780676546040473369522530141731762184148480121221873325249271089265161787898471241204708182874791726323175137482081490773368771530203080064944567420853359061087769995405874676293209476269668092449313136309062395618821944308429300861256414253256248109232760337862120008320716084768910110975588644893039343582064264670519052570745023874381984367987515386003797472361096916213889820200210822970002366378787274493851766769581045108746241970478918831930390891213024033503553606143615606940717330813816470873576474044695342694504224779510662772378130315601802848894172605706874338666462393531289593193645676331888184234907539976656004212897126992714951651447695987828742713416879051867409889408761867610091671224120221142686340254419633028591395288611347610972916143474505116650007653583350417828155750002842466226935777161078050779533360523607613863880977456692661926137484069639096200559253507955152837569636927159076012586480118807391664063398508873523861000211589761339126119109537423065659007471789658281091552151014730431182399975905371066014128347296224700456551804570931788804165305158845090845159295020241276231878207961811695764770312726493558089782476103756743450989295553981097873660190196706455744407434709947406087484412786030975208658702364303988710273531527286130309075441847649724847247682285570348952683903576118772822233299471946757587312392033403552217126164205501286051923227822794623295794145362435990979167055330924786293106738974721090474067099590379216304690176251083690076200242260397808229688613129928013918447236830880098312017216808036864936127470372947227352658056252272009784999520645930806434289334352225590858807629066955859586638118120163651667233322624984662830708429426246254572704676395957429570911612534079166820300578653985452013825155700448150126460936292949908521001112050287554477680349252811940003850463334139002130317208370482669540787052467046921999101453283211814263795174951018358892309559268978717784044602044777960542222315124183414065734169584081593290893047493897403097315018681214799387989382509416757089232842940986138895088775684668943020533330682419672744374806916060704178655569415268776538704800542248309246075615863747869038783909234854047775758025463109526144537419714560567796152969712734690844085183374115929822405020276627309342370333183987159873516740422016245470528196465555551937604136883034477801507308204254928076418549734991825582109935477355037398732907816321365342527266035881331909881530947004700465368004232592501666181495796285721794149698471788116055194866048725065166088832228102453489041854465189476935491547910745142980857200333593794524817238648975414877679341709013540164001560280622942051066668406408873920327912544919715107441432601833588892417381587964399179235264813785873178584639868596743403724540929992546806191217949272613224724257165981931482339143894551425498296643821580125794231719539181354116737926818647579609015296807766324398811018226643459522069890757958466991152861600127805677300784327814895727677742238504514095452459919966528828694572101004054713805644353220200731051742004106977636651970696257273270039602519378114998978043793330113372158914002392706828542036950633869820922820479640477487100099898410630556951254417136504269179427346884486814924902972842042526199382487523910586578156105733134833017027955126221234183975080271972684592018348084872880206266305974170106208004833864796111981648626410223490929547333040718054130266938924866950672422962446596408251801945876323869505381694499387879628607254360718103129965601833728519214356381536824094300649926422024685507538506934599469750494303757919642922776309144085789631127627378916773250223333410035848042663055567169510598830214754316097604616111315216173603918523347250428542611255057250097940346851925971637318104498406548218138746521528697544370400231961557462887305823013312915100157537304835123805399034091297433176021645104103408009618578844273314665491652507935544734693335676728799171472667203643610000484008733690382991912330144366815742606429701488576190775195871790722643071299928900388653661575890164951955534574921251791654816331745690811450868941228612587705890818562515511865883907631047967264479668036855156348182298023646738261244199032523420449788512632087366943323449918564663045735762016058953302655662538539669892432009222517938728736442827904680554400004331509300557003062946109940721474253016095997909531165430698715992700169690068593352089318639001975677984107582477665899615977613108768997052028626300410928535270935762744969778527929961838909039574811755123201393086631853470090156637437165304919105424574318266031407107884032390182265419190666105286020450226316504107803900462127746113974119501018072860066644728205122984450062938747008576969530872387971578020455322646020659223733159428301971471170927345802410965538347118092476829246690642858680035796671949297157880035319553957877333408012385248283613816620884774793909432265395325989324241221221094369870522724556511772931456851773600263793276084444735821965222771482878000918502063414130030026051550974882666103849044477770969753400857499792401514070589100550205363351528759435846391848698934835076377422794214037113018404925125573580488360340895475686831501070966564100460976036601739332794574277461004129854918452579692054634176126535970080192579417412886497850704767829500587522568341934994414049678851891386932415632337381707170962792941911978106076625932142744148790388307200496320007359248676851349508941617043437077132685957427092535147571354871495733569330199936524896657529770758560608732741436354489431353642689304049736543484642122546205600454314766418230529150328938514509377622751676207734494424558296581057365250889864099542702492424326654059157633582483825505880286656881198220531163231345332563515845156795176976444971125199432505028864420212241652854875207831543585919095429208929080698404498753842928769925741617925970997349469807560192113090661975591189620031654546199721649267061492096771382365242062826343861633768700011501023116691828132558971245298792367881241493012252485037418437505344062721595889209144389110117024953738999156877888547081983709257130475171625831329109648463980152738696444090007122128049434461429121955402409752927839804110556769362014219587654214800228382331227172888196118015808967119008789270366145052784526412994194201025206495846466709037248122381856142892923118090926355803750101352514489523635262537129496513120453779257117590021627300233946761173426390388383388502594124141673249055213654753808167077314010877863309600812195346228867848904278162184420650048853147311837448483635461356480081516121977176476339529117780411839156463846262419078640676123776616623830605215573310401250469512588799352092634360885222768869514881286324222724739497814527283125217018034857961063919206690333118493370396609950374820808550228597279963638532638159839092685807885085597418798742379948475298307342291742827167145791667360359217558552283542909887947098579229505020526183924306804219406428643292531343082040383402154882768981852206468819502974325710210273193758359706737759527182300340100657565173181318172817521442122691920761497660794713630196529238132970485241914951643668003907185791538633113962028092278380402276448530441404124827357092302379955231291693625422584968252828299931547383464788627473425915613294969032117895894656745743305417545769759008140661155240692945455882207622740210037768110876058055818394270733777526227156711591059125027541706456686944914166949028767290552603023503945943446121320677513503356718205098024565837903431147236977083923550421227745194533897019492362760214109480576113179101599753480915290897342825568396511684307629372212880122671017203534652839630420975244723353192888105672501535138404490321336117122692484596549753703704758410573746154349041757201085898298993821738915455979198284235054588033043873672821160143722091796281479639420163587126568663674298896684150596753386516716029569857130508823550553460584282375698651182847990843476785675321859638448538097894457222253948165448884340530881712398733247562222956699946336709814021145576207001231413855716196618566184612133442204480818666108674319026346695255264460541204955011115050221801048953838334993116946592427500232922594513405136794413477064437535251840553134193776688035234934770263907683866892405092004884130374381853589496959006793100490714236839320465345850658838126391492622702467930191194865762660253901461379118580455258127040325415339700770993407447137329950596770089330259723553620834576410312858300269845000892661771919610560244901822068275830049791095683001065343809097604910560519545832331377980525540864722029994881655000918499071216854480620283245481616593099387961240612332674941037607656853790086742046147774615188405277392412544249136355381041473514931168154458906588499609761996206703398895421459276829790808827693934382093321938554099815786447505803166984930786152304386385374309158089346959011683992961935496735378352171579026218356139794732405740588999436981224804143919581189761242660024341532024593756657311308372617107739650909113947526437334377990765376433931374601376055224046267602807561826964791543640528156050553576962218966604709940229936814794140199036339571649492344975601775391325179742696593453139133855290002569997920805047792369898677021240159257689626951125817225578554949010704805551983988896304911092944527486017878933081908061957136213030565009934519542845810375677599765021865681639802927106832263100146725242466714071498784635659395422198963184119885187595939049579250572554368509589205469983685678092735147116991787064740123742953065879560218786001221790599974648988017505910493224417283657181870428876355917852239124740470422717052848950990904421524325552749087471008184740080949333338788513239996222826370459160356810357951538197928099707752604072604713111136458957971771885092874981818526441753433318545304965958050592272483933656000268458918065987835683463898460475886132384304153940082218867009344006115967803648373147009244440326993436430965956889825618268143205281647883764149637899465013374667108746994755029998744730652940414408369723918141785213149617982581914544395982229804787135978455224635873290636598318713326381742334542697185746446235474450524602921688261370649251524127567198250913573400781057480625737042724619811760544859440609742424467787749348706378007837839257292195490640013662735421471058305093532950963015024390855489527676383582814837471408164347196992884733950869254705412123388604263191240276113028071037702623246808929481809784470395719645162120276726293898469901189504468559078421900080681749078898110790468702265588249405387913834727232625082319676229167423744739642031677777290651149718074517674124654950362165724226870758249824476529664610544381865416697904762687659289956239187857219203730527196028399850583158641977516448291049527073887597365395386452758633645041611132642006019113724475356166585549039586604456487044589930990677803591007945459974927675128926342067029936797254140631347974429845831028196870851921020154857306832840715395517810740321027647976700561990135991841013707966660696656174061832794215703784313212987458912722530609034593924134522022920016920476951200476587979351135659922755253455734123093560363129379851207541051775224600222648432653556288110468822999114584161913935804607145874830169597532479074205625119297244109956980354460880488234565982316057684232094013210354561950514822165451330717790806291265495625637535576210741408120396089482453928352831215468344151017040969589994805354149908202141270785592163110555772379400201575497313506860672308761081077703296738251432531085849925245907453455108095495619200727341941880907490957344266696326926605707552072247234869348722657510045100405065234758502186705529474073038101223451031575031769583051474188892065598848917561621401409094069597519013597724945748577341778034185107593908628781562006389378948587256396895515591069565950219776250519167285088947916748659852029319059787808895783489774307376666933298251909726016037931996938178728023608888200318879876603422023812053128504413044415179840754406519551848872042752400717568340188364745693214671552509322786976762356240095194411378702831610064105138694227280686849509642303063224542625837856738519722633425897983693241559609630435609894801309988163686115893896719502709235270954067316228632337781748606257052314788789475503310289258872887440089293852952756058176008492757206978757210314666720222997314558824805607119733578619512700224276411427281060728185269615739831332065156646249408252502569396045343869295662683114573336040164275878252014502968995323449987861755347851218780867181496315986400255157773112138993653158301762166689904087418938280430892216359205331609748249271127455873040006600848636727314888472299290202116179811985797474796436011205915064053513709750295477441979996271669438395667371005939865077341848799565602852977309787103419607165381759857905381419247029709319748030650157892564697928117439398376103910370341075108456558417758215012567161894927351389637742559040369541791797052553114797945444159657810905952548992847089070987338803485520609490019608899331195387388422644452738738214358933763747117910423075164901673644088300961555008197996436408022598130958137904733275429735303763173680292421449429988893151242146080326878606483507134197302993684510687089415086709311048140260880600079825635171219661903276270471061422452179696938501084694776078792205894224136579627223029239049688080898452790112730694707691187402042424303732811815692569713186792255492909546960789668495363496392506886529870651648151083716352740364938211050893934478140858107282251457986795751743598644666171462712135807679621909568612558264504174027959025031704714823762600296435343218540023189222200483802565085033629519014959671858290479584014503051185061821104330689483712910246122344013587101686405651505977624791013610238967974717354156474451567325681073273538545343777632380631690846007271777204123751001853180073168712098977446987099236229989694261420403243308358616588308102048352840972783129808212383228622034362939566217327410819788270204608262289267011133214372573414440650944976540668486889427781530785017984796579976975310599089605408699770869559445341811070345417051563647874004743138650651285940318058077409896525791267155348142499160176165664753522810296945500381870793524868451328790474836576087523123843081260006681788263425159292970502381956679734777537584563280951378695002033926115343549383612556877814047581850349944237225293610369026083338256970469160232769666106697570186162543283049043063487403338982531970692471049955627723013921487386324820736798722590810615665582306028079475891440402093417210022009271442426577691714886719324771608264112526639544628631763037669300557508794322037878411592235529253906335765978173716641660184172795886817310081314501665838268109982586947417349432475131273160562529365318139463473016947707993946393174814240410386391131945029409611450638875741509840009506181296969829593636811723721425734333503764368789115555336237728585185886955521760394766556742627982430685524405073957401951724831909855892480168151380442119041517821934651267212914756525369603838513187815441235916346657450807273354003376328627619889235778987982345726825707859135286126457520222210143667856533906452541608246737886696960449378728025782760910094420232324643236815789447568274244995181529593498536344011145522002613452644432736539761981574602231945616548958680414640790478327957131309192328611753621402556923909170818743920676760996966234956594243986941988621709878568273665158962284728631031197166881269120265907396423466163150663629263261601515032198984194154685833417961454079604971430413832671696397756556714113811096644181686857498298472984015660949311649018972144149929555897698102758200377297538968762638745697070560764992354360211452474619957791678789985162190840134143647612931937717172292960669742529875036004248962768559757097970871638400599652423025537071149057773722407161121087337215249142231638242710724312788216521057010190216992742241882748604049364216160841105039174126246927097246256269207436734382571762915564830948532780478938392872353319538273250834945625709090315007119592861655235779921030725096413201650399406502417491481449827349630011782420583393096171327652245231072525261733276535793373783874930339591004880458968108619026441339043371963329250837240170559247704856862200556039334431762932518567589414162251562619983085285713799086737519271736282625032350452384028436529134960959163801733605446534845334220905405869741689474942115693154220021185034330874401720255149069421782171305736179516876468747062325113693127820356043635718095700309350945196205566002718238418430755281867204121604144866013902977081603961368337895733801463887891447178151774027655410251589301724298784202721439694439646572637751801984565852605854418441818021962091189068157619627723996771824773406077790426148984870429348657243412780837237766422643657899670699907371861128820203718154539647242963848081061414939306788604727691689907421305530240030160546591555403288577682022005324946714785897766475672680618680053261250084751758487239674763323947776051309786839024154044352223479947810311625852730528472595919552344975782022149710920211779833565401778912382929420841326173928221487988456503096162864241667687780644047615588375312421080297746158329664037816378126192095929702430638100027862933773460989300960746603618328005548859703225204330531274561703447684121844605170364669107370901599963570961965988742070483097403132621576790958976734166210433227350118358951705463334550440102230827276509192249983694289100281702052967507825530169085016305235841167654220250582375243566938173071487296304511441923073211603844447540294672921553043523969246488360029652712467213055999627076344145081815172709204687938351935897996416841516406510615569770140093536807444855809191575725479193708868514066155473411453351744588860049300886851959735305036095447890575091591801477794784272550403035050785037849830543973998193108872837455020013581669318052006379147177415785913395104144946561720893844242479570357932939412477460267722840578840130133632423656734980386603004452916673357754291270063318441400666436790593685096661798075504340342359909410103593224246159020043985067796301887248026877456278552586234424735539033304282630830124937473835584273012780833575326499329351165918106548209344324299166181054783064720177746033097128945945966536345762644165532244689807343376339337825148565781178723084790465430930503239056038621040324056067707009529564333186810415592865047348959245367931150832928036282110312153578319659995561096052927676331500790243391754065775156859446127142021691112497927909600189708325689169119125545104278108005907226216577062797147619030021639589054048826876839132380302019419872503737879870304583813682093081631814353616436604815422801965436224045217341812438672489563218406533867326302077800337840094334222812744104871056345886943919683342699061780309604666484223598493727322180840780832188983079369594560569464116742291025804635181037096048656849055364437839437795780852221604358028396840756905767225485520037528895008534196627698162343685025403473572683538354944046386118559933343069832861923554752809481187719406075464276062855679204042204361222278245276931930849451855214703937692250538166803104319572050416131499852372774400527176958587474041071329716331095821227744190931609846701510097305933053798929506311718398559233840676359697716790468969398673167991973785695853791574516083660230318968465724390148906493679288966460322857594439505953454397814180078696614364969974897616995982401648424589499107719134145071764095113436775542383919119049781448657149644659219494199846807010552311102668910273218755963858342055388301425286071765747157780896219979285540953935881820135838268183056302097684111526416213835175857974218246379748324078070103621019113954955881001044956068599613669806331578905508602349775578168701806227150520258942243478797620430922670165845024913198117787597185035999237855717461612905223783497998501679865932698299930395118385407086866353405754116396247944452195506413256469269041363850663783202344074154991456533914069781332473308465624830692371749011520807395521208441484547585980664916990779107758296464251410483660099247058878945092006890785055043324497987655535759600218355721675280956045551068521226200712903613142036179901992992366109726866332376605548931429005895246512579347679756771625126168621732515123252949980859216317338941248738057911371806127984541448386706210909988736356823443769691434823280512129836862376152122290555322692234328362955352938427265399633200690433300639793820796651071913041684577001734263891355059967877690136754529146400328270992718713826772034509789519200841355518126366000536544004001522610244763156456654322314968903667353137900271249762740140520799731826206744863951201485148665133418067558447065850324122747000581450579606203512261557201839708906631796712628257510024897401559332010479713821462466797961648155741662372600189503602052864205385841407614377923202921524112709764889387931317828643401908918569023502106084325618095814444357408124727092643651627555941346886770700055568455092527530986353341979699444501684246282757121113330126874028841186570539189853275284858478984181314939974422181068492722951171999104894623649801632442912594067398588732916642871198847396355778807513511604400312817104742921325314805875110484078787363352134599245172516930394874404824798358922720820939988788542550740923274882846167560230405363421579848530525820459035098756510407934964010732526046644913902351380577891411275939958277958820819308205324727718475862899359386112910179170869655190856669934229597438935373609666262398809769899440403540272152745708879171180183369164021279606378595397138320856168042219016548769587125211184120924836582645823910497122293893259938260040032524815739405048783410230212416976806081534921422973074745961673990535447823282476617983470927568637048676720160128202287620138548445627819240657568486347778985383887706770545117598513602250507713334303249227925418438174903962195056313187448440495838473039029426060701621101051742639415104103863921163231246314473650242810740701799657886452971705585297752206624466189382220923397443137332459064148614892716189648562003866651463223954343001288701767989022754775606611773702997006969373468513505117050841295088613615794101862924057281025893945170146632799169734961834170263058948034901932075911987865993690310413120865628670910522424863253786370999913201730868692588180071141641634874605387976039325640104949262071938530612563926176307432835588579688897147262115139735483964286375790888622684071261444586764182291554965454770532627081151444433328788470341897843285267659583296090193401944785207218343625536444453606322923338078503062000359496893784511921973946533669608724450014448987664637701883993948779912523676366371737895930957610356835049920893281595656001304108297084025189024847088109031340308346470158984148862413063199647505770121630002143187503757566445721552481321610449440276509658280546538267228787984758721998839287574770977525938750892330522958445109295891877279170307094895390784381472690269299230774346237323013740596420135158717119694739523442917359726935761671779157794881232644325974558809800038526176487259271021382529660585454195020538502344326336704467059113122189657121757243702408780526755138362665858834034438902232080190365348893364343140548597185973559022105234076058672561615019603309412783485765075967932001345970953149935731996537342601683115621467804024294521016659022053128493116298129582642185239804780638944673312210510033169858821544562635814640962980625210196590705311167248245018999861417863493521304990338793352444902916175132510597362923493372299992292744614186061729016766342266006165209242517702431667594892891053662978698559145169590084676837395621885758485322957813215082521349635684832181967847585988671252894997724799286372597868827303121635420208879339140083984591327751768303844637222052878195735801926879382628082179620977622779115775353938252390900132813047418937337667540543132978356055504718139981090029044281215834187499625323065999507459334644655943129265266456110348230560067708039922358354085500000233988882481527346761410899885975265005863339330333499033620953570145051577568657730520397134033041840721338636393632955503241681415421606541408897977904212167943083729137496405726159041603412846228037702753320913802390191581485592022050227385597915746257284916573690217620492364316512263657429656128462838719311603848847450355004304578672721460664745865670588065234903962008218094670441685284544930032332714899071569748793054388009149941168343993291419263275410958120883087594265455309662856104955730207456548398997700199130128507606382347606421766876725522962670431822766563058299975511336367798580372819153018292432435710938075932394105018704223456902955739817931404705661046364599150233333008644818924330767553170473095020494193564493855933061410490524394171536138023721304677992030767938144782139492726418057812156229898905272603240642939627203727256443210405745246013080714726525970715760403292862473461095035144601350216828861368393813024589025857573819177607543636539091852812247326515920101164741547869502844321590336575911810915207106954596762006998716968721683051759512576146319026930492887407828709343689732605841417049935482131691077569633138499050368466759711010736388892222884355224270367561505264183648006019529234356640887616123431176939075820415306464115381869540029678818575884770596481740013208489776701956995188923195321880005708483815655962079158253015504544781559948973778355224107183057122427330196881058988320461762749213441396125130156442422813268864992096210066505315995552910324106035725088254509318129222165748210512500320583309951150380959036821305196643761957834505199345215243443365812213869202958486090274122303108495293689906518861203755710115858193952621940886554237086378403601617431741295211405074093676873983212513543869773247120075881378448729334639245526050598181442939666466808818961850572833891181509505716952706395833061594199015123502352542314886768461143201236454764089222049942603848370000281211263107986274238654187810255627992964825504311208794800098586145028479017287796979770471835090224035238768116194158798656425821058225444469114916093414071121561332537729039863156741296144864168773553377781739450630174543660049420109874941555607861123283044709201955570479107550929400753949903866719708949312827228998955821423960707948030535172011010561717926768851184121652693982452272651336822313278329052997929784368491924416179830767888554028748764138447956596611058032753684102262246042198158119335111106536712263847411361020098925330315232729175760210905264670918870673336464245511072528581241151233787105778596210265952073381452221408627601137779146200812374788504851430642123850145379820380922687242948254798807471099761263906111283835581157931509888751118100916275550984621639134564337413431829434065715085291113179070434835551085369787240903928972321307075607209428845145484105739438246136724087849869667983049894818561492183433442454991196465454332586298139005662201113619620409757028598493599617157163958944914678381671039902280749634316877219713992683690024255107966471384262314983225902853089417184252018059572386047096522675954763934709974960656599364621364510527358814479984379724424875346398592984056512189992610547139305346293245548170107378343226154386718458036225580361220644477402542236540958769235343147008265729855314399745066803198045356756394878098041277967699644195031855522826923325898032327617091203871649754997385577272374211225543856150937817472625702964420965091356824015602166911051003016138524761668248760174453581959353340085035918654022542019483615406117482018616921118146691178478773895635794575629526958276198806058698174627564586819400888300739320148314667332687946054683941218685124238774702980177785651020775674680895541588008004907683330773142219435058373439824701181470053311446643532756374514962675043529312329429745365525329167413886406405711869069907016706101161322344768714250940302295359889546514128127029851428722514656659828331416215819243628342712277916153548935984237011478797687282226946654473395736254964861405335621825865899508646684970860793596081472988031349147312953651840158504663249748562925072618691008734687648913812759888395434705590448928562847692310913164327092026205033853337158837530540709396192747730823842728166232882487786215357534931446635641178906457665766102506827029725797398064412757900964321899997064721291543135532587389098996661207227604567444950406503393098704500199633725950670719132678445559514715745566371772788843409119484884826344253222750772983957627989514467533507316390513046397067810445468985669587108490870136106291984517183236831433416924611996565719748538418991795090037664009347823208508042318021057651195889945979343848012098491095683444167815400915749382889027888725985379332388839861534570089847058484427226155290817650729473566547427728806222059552845684917310395314852900770475078189845726653889058534801862177945756382930172274842293851571200173444177743782579304208420568248141499132084978387153735757893685280032954106989571195335462941178200556350172949953990017063414095659816173124500644680297001394017519737484891147991471633647899706054701949680172243965505974305826402925250297830356162084218495217816736038785606508500511943760724281507646853660385223667619556245008842379528205097055827497768614338943819119416940880784193014350304524087810834916910562434081733546395159307711764543719445866248566265890743723549093693683939906594132032527186727152569852525923255302123193921225937755508624709874841196615602959646478298053771335222286624145857028779118539456798197665617355491255649114711725614920405605649398283889575010344114098670407738715400061356068992938510628226374704447207996325775531192002059778593327841273280230026552759889133756159286971573737974068369989129661782726016050098012813226870206436310693470039107993298871292796574846729424265613975903282145658315285560211034416025210584203481205970721352539726886715676651680543597768343619022539812445780728036261384633602285977832276060528494624478966552673919163742746367176228165809307463837197012802320012204958666679267557402334730783539878502040646728375602946001931339186610336310609079865664281766280093399152138244125327082951684821085833256608436164464252211620350546962110366665250579101417328686609000815737672929357847752135704898672689542106578426241930954815115982360486801572307410545850280740541818923912184870428740423643677232264114218225981861895880702659067134035053492834840011092381274572615924521180563109625136061423337571065500982880309761738187811951613638881685598820330863488347567744255434772074795104613605012603374770586419845789082981575454211817261255533582984233195317160903338871246766465722728260543730083903431393470022812500300214621641391585037194209210423549577655653957205117505786306441686526646303122641781597372864613690930270024055904498617857657714275849282212014711309541086758886203280978809523817428733672220033239767338808579408149353480332235044252276070947914398421361615750015795781326071988594983467497023183871249800316276312111362798431313878155608517785558979287490509930912833895839136823086968267205407109857052513062710046256228603703869688857200597383831609302243146071706929839595700470519378961045535073857106938150591410610210452947398698553764010080047317373069334124230395515792060535991301851058457605152491247670137542662568939044969297967368573768833392245530028142155475632524781863952489766500297895017163493648181073619921011205883347917635443623007016165285985587933839080090774035161077583047353867906946182602092151771273931524979262468556974397391558665947573635496011631975154212136619385294123300623476559633660030608347298451768976994699489318185241800222429904663502473969713521208008579490055386526149319352856430217000248569983742320157495023199828101446586142010489140323853288695479016984691972491128275872239126174245389475859314702081340747085076592622242633873656331008375994697980952604213101724161019381498487707856887229979788349828298272754497244954190658893880059921561687990574494694648168718087859374769136978511155598174458989049897945556993319364512608228027420218457749901107558692273697202917596308904910657661788619646092426871634858191626001705772597222857570416499579612701073573035043188124578384931117867137989439581789868707560457750172741858411485317818983954332217034677023355862741428857886031807523466041225291287944425248692932220278233972660143600794911067174000897116357696211827104164971169638116046416058373281242555576978221716119489138162165078216921545660220769146072346973022715119334074340541046121986484199478553325363178551647166745847775130263906939484279991249052149699641996965229043097217068471002024776248287452184319798152347659409059059662398694926891856175174198411129306129387928074414804163360649428388534499051864933893135908309391920902171097763106122055796288174732273088498079423557619338400012657023090825114699868819872810374852352540365430084882457977640420664234478944553819825322673588905254073227001927274190429123800891905054187409139386799691068199154890870269221947558955952882243804594591753761608072946466350343760465940872260542115436976852288641924661378306097286556557689806153209997027095573482094160957836757771453651049997112413030865738213837503602516047327054965600104946920127864273314877552775495365803923386000503858199040137880879912176494146197829457246286205435141304967004141574826412888362689544130381185706853077066859320885727600625582101440473894099224493298882630235029104445666562237604127366350172688187393563097872349656994074238487461482308633772743811936142678265367755490863609606756408213825209393942163831474571698656550741020644327690111536754252085727481734521000847661711056167423396637820444971904914449677825101711547703314368763900050547060385881309011383113313388037828955916170904182011487773919789677247276310719089466152748825817699264298377284626756856888405615741030162031183322717520866076825623504231010114718148898822179289248656377122573840746049614093848162615752120300474359273864941095474699710626374261019889411811305100534939662602265739185430238157167401300721664511657475549563442075372119777789743986335491140100857304081484918378218726963451712955519380191415414126801796628144133506772170329780895133920100706818714591719620201448825474411007608978210522446235125226836011803148105457504152712993475381121216002730013977258731409071001876027632340796957821717077940302308281773713072545718867808627160816242936514023035198250430872744543156643786121613104204388986981162070221983762009237067556963053742368994190599376441377971756021989771206095136320196956760459060382478879564828890095930461541258496938209001537444816039026509193293372565929203775551470171924936120685032764686073430872099210894934007122111568188299061593676013676403659104799062049467668870958443031421145310692979888814898127973791971753835256751712788641641088975486090893159160005612783113496423512997582188217926861716806274422126890334418240444162950258933948152579970772010063692575473805148300138720869496100306195341860140833472685572445626995279340502168023326753587894617395287184395925694649110036327644126740066407803183803332901990728562906098859009856049659989521882658775165639924360161407558036845959153308639806755339664214654353992327174231506363274161929287711874149410033836787898167673029578590339628789833632520707367758452484259826793701927823248260883031672058470680393340214002622448018992296825524971254912532469943236719964633136329201282550993924339155023156498221945134288302648495056292628381996388986822722399282419815264670847248350308700868055987173778100962923219688631823930215145868388478076814586954129944363017265408235842835577236971207840868788935680202251065961531404006489125865679978237467999168356852378432124690803561487110232955937304177579411161850684039717898191608824747340238972174870841797426849689856325129336124091908395545279960490567497267073485885700582642048383715165698465691891900291122549960396231468980628998014447166487347441872625220833849826707541548843020239408168620608663484026168104349217256239115448888160357821330794819325364772584175863634526002041881160397414849940896009237767501344301732136680507843643019621229802002291301090766082097695230614685163960288455662936326240385056387674645191820762301904487905785761576172672420441910210908002791666906516506150574553710641651017830375525235243344854948720527046993864800736210055252706869970437923264535147542747603643844762600605139065920915905414031128575441324828346131123988837576486570636298563353507886299151705200780576686277911709432966449288811006008320651390609746730989089760549090558247714150235418339129461752203650789240375318178230367236069769183621797408097694254453260076054763834637588627966525159374398233041333979630261335928505984568489227451404618857168600946899856068415199645508190239189083713470367406040107564361689930592640963719007066654696059402036874309391070196908120965234890166061429728495420286316773773817755519555898022057784210501838698091760681331088281106742661563795872471083867590456047084702107613505401943893203346304302630725243802337296322539767412789575430069312047368351441265717697567456745489553941583139210750734994757292165299489441824430582471736655447563392545906073036885240245862472181188922385874765850455028576228719132261376242703940779043636609765781296496686543540181503660259156691016806367529300449567907904174151366427105842033691872163074554846373303158849065076029890641532956804858372561408735301324317051254242693927305613051887463796187597140081415853100530580827100257913656007781269989808149168307760520349027598577885217812283117705577778733149017037026075051210266036842544641839924477284216483664139886695637815034825668403461926985976031393947434132819870195950072803892005577788011677824440744835387696465219480768364564032861763283800453644145309251002670878252005814865711475128653405859629219398127112736252707334397971601438627834698231434939330900079717548374911982839085416735528970007291583854367652735041425926731990187094622548870362062643086883274562493882733984345423402084323532483999023829811789793355946955242764809096928759317963769268703518629714050650465490398872510033492358784530839910719562619887419822939911671087577257843633393054404531421948435007298597754255799695554411265434969833105269921592690538400602288342461481349598676668706256903487061524731595965023293025933839971983070111903997863001943163584261488414301291027790559983054215073495009873779308554694844482827279463522735039767237621279033492375516952141997369115896690627809694106063830599553761411731320265004178389954265388648624210923585942897892600464585012708216125952464062759263080822527575942646067860720587937620038272641532314724690126607635544658891714724243300258378982258156264069429293846260130394697829736149136552968714160121931256212442805741836762452491901500603240979264869499084897928535282498889717137533683356700982512582532386135658121612952358134120373060003421695002590976431967080033476094991036145648647771201093340408674661130418058097169494928823676487616496284661043172199455690670826355840969280075152401213177362070487590966742705490869312363903407230879104183288581099688101915766819197877365093229718994377712716095634549585596690874765177610633470444165695247076237945031433726230484880656591927598265725712447802286394924152666980321865799082823127178058604852537336641364887178505724737873401470434212632515047421757533553829504960859526772420437353477245013967247139126713521277321664583364957702223180768527140393510066676886616386859326276309873689571711355522312753271731029777466008649107354458756639024122047401324523009932372345634209840988208927211243064457452175000785114517414934793160401338631252126402514915869109797245365656972148345536714531367653391864056891375765812921389464280719820491486385424388599283040637166099935483588842257606182761857188777250826912219374521617339046961885320705021776655494851056696017210330562164300424634278964767635191093661941973801520037015027415929436716868940263951182544422600126981286116366653882982989054773455340207643132623653502590390785936333703136972344191814285161477809880408905648809042092342714537119150357436203090334512184605205137034880503809741731973480636144254591022939805341360186879810914686527693815850124990295711528250285767078838078195033193108870517112125549111324730221651796289781763356707602900405376562510035232673819458298513764888924583617669750149018612573954096690324964006007535173070549797690396487643162217689879330336071425566811335844308100214877678386785883867823661666096661161658240717486748780566599015446369455939800423994889429544904826413828848904046666203947192134322727875371076872726492761760861988117420976566749201071641326249290739519545236043753294555130204861224425465220281872544093331690661897781280741174240728539242566858491243076746613184852208499341268539211528973960014321699623241670964156054363020685080430705978002525052140587665494056926863656510441613978438806335854280360005559675671869936038920461666910728660554536153543041313553628494953316433487672489360061631772819536414464660038264831081985089339215499176514799818440271062021723255479169146950123072549980502321410170744594253954691897415973157203000801767594432412330027518608640503864831685009418280206081220160628362902969199111369119546540972551678908275314480548273819946659617459611282291252137421787130618772780998268595853211893595885295583927570947548368898883166899920429431798812832109139167942227624630369063637122068284102280417178939155793194723999275711478627274563857358238191019146241813528896961588322798417671049466899290333091417272094871276650970489595401738323484348941347214255141161494343264403798759325587464126028830586788074197790005574622483172292286123547504187997171260750010767689294312541802718036860450935721806251061218449465416074566149026185939348443724980493862432467326040558947841573150184165305277947063294563814806794352807992053000570199362961705698968510633481272483177096723816725930505785394539517827799410426988530635726993080231469125644514261436378911255305861344811919952499924978210861552659850018946998047752344340822467242895157160861250313148219900707498712312404593200256150466367620810649329592924109687657159132905889647149854543889912079627647291696334654370125064595672419319216924716197688417785782353421664293897994126300957152678500314996247077778161955724264549374895243744399616399005753225891641722036489904613140131144581986856894374116096082086079401218811489949933819146406255978382766722490177429106685568713917015950710101765578244895518546890814170864436377988327773322705523466359308249065630024957692848141368937149394507391266587106114609520664762694234684385202750725527254213341044165821661580868428085784113936216337951664244088665091425423138403336020902187077879574574448138775872309847614661866368760360372054937872076578914686917165105698619694856931441556855169790414128519934725481944113247505196614597758423017260680108252318047066564009824526641483708720208361560949851641068460203686065471120662968210437253267955863776876121740421691067071297307101099148979602222280777396721063313480067344984712965722597673717070270877520265496880481005091840848640996164255323008504624933686296224711823208626686332045607582327969113746026794330485250329359675321575659576119837206723623323772231447950963311568954059431802696092602297393479324796728817175230738893554727447689861770907946737161875855664563504166828765299855028703910685578396311669246247876913637501610520836645167367495041548229606705510448095987214293731272194809714482566172125536604636423356426573324091910511018531486239302561958211178524362152722092256179163960071000462228643750993888101198681296703078865673854848784764278523494811764629002310170068255357666830420675171890220967616547481455653445875347941719643238960138580557487209162645369346359129353427473148336196907375663672833996610659534345963963817191083268196988492428790861700145914316662859969738110865574776604300499181414142420554695827964833394692431048287159680965427853572722367526811742082102232538873804392933859203395054638327104880080087923342741909617144270395936988514832146887005834699754072520549931058816785054571081093262701542025338040769988799478608038450657579191421187694883283482010836638579608706720571023150345903230987542390421540404354671673048257884269802267537684650278801140396807566382475523029051039689151689017659531380976000498725875957278276071231921904640039477807903036428601177671506367900924906774305739314986178232105625935210785403543107958979394742296049016334871815763885144361998173142053098014344531921727388474482335078472596992252466814735886672833896952446783301957039754573054092773487582449027757198512859685562255503898267948431030666449999505119451941559159405029635949333010749139897299743468641921149476494412348085823597723868057880562496558993027635646708431212269831038083745712612258149322747989593535479167464201301794935227483096346154356390426112244734976958695318631535710614466236894405648894328414467174497924010854138965995595679885601019481946921333998500537794981502444794928462533637519139355905975295948607772099949440287897263617019851889759284616565752724761001656015200784963121296879286316581412310089413636427511506875590210485037112697928597979156780606326278810353144249192306387373305325930229039230045658039411101242617888326562036885476159093221440077351225119040853145069917743712453243804939336048264635203159068816175468364313631994496260490289159508019309279429951003407687088366160460225881764265607150704918039069273576707936254694059953946741874377653946317437430265120345509862641837604011536548338878816637083968208692491567159852369998400741942858738836097301389094007561099395476334769834103370275907780821269666830734418817902593065611817216761809897544015863047074755984796930496072136091115832872616911441161217031097041772685257156910996125808659358544494966797641573227665877806130736202236512275973256559873178215647121021635011587637649859058289593760609623261934862690250092133956222312810228661211856658123398343735714945579887377760236261565828282221747812552109751340582027584796222420581294469660811061105275957434278643130765891776716739923217483776073955546927563309281696481535296469684542769562871662533065871201120686919915427952885844954082636827457825844193103928984238150292018263802399568016260183179534171920500206391598057368317549907808991050443249759021936003197212810738795557177502940250710708984946583037270850297487072442470088222621798724248293475090904227560749960141940004155277918039694261483066137957933361278909577562650180200880544823810983954935972080385565858647245259230388173005451077836442543594853343781504881447410470879918965166729650303617643106410088419351800854087815134696255422408596934922155080929399048799974961651248925719167608393934831847162328259337272952027736572421175335397018644315893868159017431279223683275546422178728030506021593609978870957060753990097929490425698765238571351322291902810107625758129304458781380106114837345983976704267101752899078872383112316243971003470855310715697523580263310052899793091530368569126090600352525030834128800228631593705426562793450884377890764503481942538557011315421641665171109998830223932402525216057719316274205171484607756723857361215147673404627311230825167897783179005720421811070267723267321473013234667938051681286333397339058887204219907140436308012109838210381989292134630197050465182678959439031281601056989184283525376859903492277533588643417389102779009876176681132497954875047741715470394459829180750745796896672261256537755603681681205250439345466390076728890989912938286381213622582214569125459589528031438822556371305475145765691286043633402592320291522262798443405904297746412180521959137675347340025634506809148435887095855294138922878629234165941798212806831756808946449371947083696345144305714340643294682215392445122722267897978946667058569513008252422781374720900684438198846382083337118004941778123459664375253083716043751618312784685662327547765024228398157080459976037364732779183146907540662035251279820624761572448585730093090424892041928214833950745473530291918772300478318942288632560117909880258959567711024617580194780300600170501551187842711718654292222729456370822968138473437768990630061248497876223023997878645368987016044623625758574678146320511970227604007132325949331483587558078990874311618776050065925581380549980834506204616113077829382215478107410260438608081488435678842756643753292077999601447495763248118307884908198748194117639630323314942283857307086375529432523417921692339827867454407158970474425543425783380897456822030796702517343853390286169888288372070599275718293572629165243626135465061735249815218882550526468532221702893985134674168783832843319525953809335561669788048861883421996698056591212197643360037182956308957046665857508105940379252297496017055692534059863871406499083430045400962282056151168402838289140149774754294850864409769951923872644074570472925166546812261582409577455313216392289113867331360213569237340538011226721777050412111868021415944582898783352112124691232473705063345350811912613533499070105357961497134217564315669687763514828400187548824273514844663747973289660384072159990598733430749451826998994432368737520832440031253681592537846022459380457851330318078650188845762717493050502268640506535481469125422925134728982548044139398858944100254537763354269075087613662641120510548478104286566765934576140933648270313793303039182953175585100892253203921961706164670417896821255702062116456256736495375206532051107522481675787167004593015402422834612436765435560540985626068795549665497833587079953179775815623103409469354833903591668610741908611532480678655555778109267469299356171446743390831255649378484346104939011332129322398601627591313049972521652520885746645836448877733234226513345292342107863090644214978982007743604196324695408630335799625915922474979549066989169369142663719006796791557147339246406429484904590842819382908738591930347979163685836485807610850393751410996252444464341419938038246021724436625826649745170672936659796841157322877609700590545221439023987295528950555573815499016443185453914887968859266048080781504377958435494097223829879000565490473796406419897306223804770405591510724637939184612188035538835495119047668544089421980970014739740463936468596399649151050557700801140627960104296003141921616722650265149168209950421270893283263180401215926346614798892248334443888614314540393413163156007968635701139738555802524464999206922241884461027943235755209420875500615573155536153159701425986106082132300654847683212827437808562272612417863205276995901785943688978657310132884008570874159130276354506913050764422484767602189729786234591047728827642540039481195842677053269754110882016736496480119746495575284111289498190691073000532284525843819477628125666277844884739683311353569571853997281432824306331782288993398023205681527449100154340007855780986832459619393530011648777950859547189906895930767397856918808539940417725247699289237603556673300445715835521394318949893958368811916791507636979715442680292273833863208306401936142934447888100267832206693171268419682558237581413645089156846723729228478119442318382552740667484426745957545807983134948771584407089523700463832041369403964182872263471710058477030781374641806608645449485131404982948773707770930681576653118000887943849469845921999762246489430897703805590507824765062334491998497073468859852174765388349177649881385467409730859563189132530661993551853729446117581380670691625397651095238870565748433950673750635919618526997951541069315074241100858356872527059266491583581936397197814378534237658777657808423479913835510701543207116807524802102518371011013891123912868389939936089249324369923265070675292038982256351842603768813508236411101013912221606020172739514996855805270597361469838721136528542428120239730978141705467716662461628542539927142692428628466012087978318812165554912913280569478141817499636395473468283365654056476551961622298236987257470116543331572582333727102819188169135037935587081403883855680282863017177539739532133916022954302928200047160375643773651834450290201454392736836852506200658355824349618720504842178186433068531522259947256443975524259720994759828987651720754160085637449025098444780112995164399051330375334064501738854394334364038243600321806982178647011810080019148794578016063594367567715594602525970130046449212030822561208233533333189792701548341485747454566472539762987830998558168696888064866947222706793657282500049018641429180984872843833508535881363263220301097264541708177067841890505626595976154063337921294061759698029006863109331982391348075633376871847686445632380528287655644170027649999756587644528601182446558436560892943779142547664980873895466480819544551843376547116314240949828967330431192765383194765961389772910681536463994066773225024968738014534812530149750899493145336584852270126286423725504012668833683800492396663118589191026304879203887760362184173104589855940297729526514279965930117619722818795912190733393033738791976111279664306135307048362596113760212311520315626539415070211029542586820946009565238528470624752070245716291403106898611376490818607102531382117211026915132418625082794260524950265034820090289287346913304347919140557917860231502446259942516899831150804226389185758590830256567523334684177304817975367714482821970789298974829324892752587452727964809295931240799366225944938395195812837041506949938022432519034553469281424026911964603852450641518674435066349432412491957573483385721869693708321320008706029573559553881798819416809567842813502479974082597600432857720414546645466468656838027219774565440905098363112547513943306852969612565999190606783862706278945470492741246919798974662145740913971248674079125365882957137980973986036116429478968413881451817396866774234421478691674586294973621132879601770061113506386306431253855534560969769481638209313956665071412755139275355190325213276229910084112233357322591993857305618972802684408142657650867673108369950210617017535634149384403400434827425631031216525543529189021743874150056247129078630686409118072306234049605902257218535443770396149365304396606782382057335203425014325322548912506222666604356708659218393104949269998812320010332474200595567397370814040868597074541798505857921292151118913094023300753809052988141081150351016320718442194804726811517394236354444916698926758680790413316808607004602889248707462460318108221635800244785342983297469793516478108835884157884964525071598359031926509536576510499841565126808149965620275087100694986156410870054669536362081600556112883960536296682490848275937988465396705770428368455469548158969673714659422672199269310333613217141151419550550113824083570724251727562527436057957288582399321404747731404887151105702191761983643216333264508884935135630419716284810190829350549105105138864613519557113066576936225890524419567055206943633307231047684697263246860018132514310629892658959227077496482412720891397989567959030437198411682858748610973009980023392685473567056551195848017447447491164994032159413058550658065436197828817474584540601542287314877182992736769158826293262422730967919298986029581739552116864153427039439983864030279905392131524731197690127760783042449460696313385267937242490158027665116978553746126451741270796232402824219660684561360709703867766966752295570338210291493386307819859562940938060832415533325203437314318547757809136237253295417857583289608946514777627735804909257384668939983755310454745885487976793272138693468131711832316016754097781003603438460117459360438517070300399079137479735032462498893540355241540783714682569753309681427753240743532112210645264306727584853866783819289000500138224108021287239946288333611091510107256260653295567143022354834288901314678075996515629502333809294009229262147616827550598721648338531113513166447702416844670302369339422883114741256944288292843894334334715787495350870459901470640083462326699249619564409693246767358441432254568281600342027627484032734010006165570765291053112560814396780630402510658076648044697184746393975109695804570792533819928277177155129794812142903516740112180191986714634517987170034699570009242606592682664168377877192166406153537810042776969323211823012490771296971127365306680156023762550650130481407093942355009682840492765438939522577120934718786694273620848460128716442381626606295973467280177407259616853749288229079861569728845371225439716624400891494196293009449051473274308341738732161546999267721768814608200437536328322919778778108602475663405810322551537649427090520011990829351420656664036401806133944038116122501697102580131777299265310519695609647668027735955467866456170831363480044095273435980473699255832643451020455105861369245778669988537967888511060434868142839507868753520515591969754958331372759861783376861993451804892448335926445020268645979422952319373813991869198499184666276746614014784500335853061411456947222634061454715445561938179057647399867866705416658812782387123049078079639928489727299395018547241251459913265263395044591652089071616313577874557290473536829329226909412076589056279875476782373131962524364759255776109154442784831502544186242426976640718744226325925006382862717623175237905274240535489918788857709513609017898615127832805964252766042985712090324077211034333095638520226372357578171349632901215682639358069161793422785480729333592718749638282621057514847763837440664931721948910854127062095077449331251141697301395539689346688840107669652371432514700597696163941285895922760933906230802729493972172242151987152919908789663307097013707065599624157166207145651143629139896032503004971607145095246472883073379693620117704987873084895927895885456945368040446188639283395601925152855575814542394821849581185436228975340253634574963162217175792278477676156352486447776320351182384307344505973459894674588109049698351251853194319792800927160206799983488567513099327211805291426702331481254870651591799894504301998751652262682428042657305121334789831404882642688713068702777176433815767474018452429276380790136914467189251800130215039316634468735667464227959393194884277711539899334858722160831851641920658971653857718078957794850064760133116026734916243411363744711018576149535171017006203837076880310362558745019940646085677535619034001081914263790114116110365068477220578701984808047379315780926015982729777831192003714367522017079245928504217489972105672777707565875990283044482418472532700418285098705917921219797198421553461746768609649370361241766519005494030408761054828887373011037798918491959721677280706910484659493963968232110565982171211295902471591818568141092822248077946905284387513814240255082326002293328114401187653914215252081827930662656082145166457712524861460612320852033411092167996344302065948424742128405145480030435869463442646447681908142957859258576264359615234646209892606048976598746793305789386948167336637806488647778991044173537312364405428053562377101220774839936054884714482436936561218214852604109778903253346866265357318639748138799179617255118117771546785159287230895126740293268562441531763211344868264138588590221723873693750493807633480144364787518979307815439088113545115992621382504158643716076957351827643433610124628055241151064699215997824775081635258852293537056854524024756479751270088146028082562684330771302368777864311529333342543782371154513703409995258485490219306510850051964917383571311850632360826025176813484113568962034144638532795373778082754978762022539082248819726174839255447357025848975170408303111103102131662764735812574839911041386234214184078558785598305643526189310141626393153285782975308358338127937849974205496493908240241499724140526044140636203928264519107790967338318565501056655766426327558079836732023640782175304469658326369418978701399883195332619328440306097855562877046939081764473982139230700228149214430468334544767873866114471435535959374290572352734707171484258621153892283761210770549504006034009967388145120894421245602590776101896518021243908647722120521393651094186147602148967363119815558964081336356151463410540000545090624503134045677202451954799655668793460815542638600850586861804145852083809259148238820748543158166948705004928720116991823477564434321995230875577517580228715022633373744612277981582252358323234932662647247323690160985728478495474572661524550639591415427299329217635964111122338538639495345065554127920405491453655657367699102929880585057882946462487124426188609043206143067370552061818784367012466332554034547482624332613182583475954932328243284467301557830503880958584390404776611812382383107129816644528679296291341195082913358399279389350699365283406780270510272581317863924531441479161168587275343204334357904287987450883875457280600138629429635779390862173760666820177642268291585570747697193455644497679246324992175908093511492306708652443442690832744646014460262822652295464269940679329271909562165842999702215070665710265777423961243127869137739239262128404590869825980095190080843531713148070531804542418305551642473670344947158255438734429330279472069587246335173235546680525159464416393818464121609805857003844802444189606921218026582987276080937234648562438708791543661911651442216788998993540874702692343941813784321769523908975383886065674869287507433509923127063235629789305333589975668971454829910183684903067607362356816101307327794795828206177927504792790639132898417654818964135492820112413139152566833453122997083518915985570070631150426612063019126958707582651098754165721093167102064426981414019545709952303237632274729785256915243825659962291219012824185491961943204247704133224288646222498362940153441831521347677401342069723040144480861167927198069936841368189776025451335287996826642085134906517921322443719719613772422086008365527610177512368469093312155382949188388420016256338524031945164354634726602801820104705917152290296506903235366136959978300464890951984153968329897835225589745502923409211749137777533980823037326690232369337339552362368710101498462924871802039479827042329890253825698150422619181062033040412121085030585589850317751501855166651143042769015799922574481221689077976710131021187764810648220239137816674712974556721475399027797106970121061212709320658103362100615664824108354873055589624044944851114485748620322426224113898952976870852461882480087393814333119434566898036431016568684892291889016181900670921248554852043512669172058273057806003580665310388813408389561528026777185823874538893643357698380449008008524288847568158746956216771029163719708431068700248758149040389755773473465905304807075122210499040009870784715067997717909608120937115742620690061680461221199049351924645101531251534665987150984796577566522707322645059077335338978462761568179514334041538850204618626353376746019960892411543945286925404722867567405640801896090960978552447920020314618163382943552727279832724071873829018903233168205122778359395176438659737776756300901016298968562645279505292629539936953775740569945962882169071432080213071019789085355990180633493593215566330359501219171689086353782510063248060024594677935428245335714471506878335616854898504433775170023252537685970206889881601708065388784068435083499393864952726091049519497846022525804579745561358673883612409653249744780890725465183478454899169632612244560811529126528363014944285406765208037179537844917762162305462082048511972732277897253890430377641620883030061748016009783103184963652284167479463883610807846695557519837388734568639422570433900934353082773128712334938903054884910655681376950791868172062130913677348791543585712783600736356083443299538568926519031263691363851466751900299484311147741755511852029736855202661244863787265406112103941819335569724651339526352497740288642381961712337821757384243088533684801430100980723696644605685144635491029656586398658347491691321103596360414824755818620276524478096896605690571400942179035457109851082934317534524138323505873508528330765624384286776428268357109032931044670841106288091536184128534158156462565607490004582857106853322304288439270038245602369869605712636488325809627933301492013037341214554688492832390956904185982423167405928865452423862651017714532297202605746843150162582368017802894782134428500694001922626041576923070490172595127789867029006066182404298382693285092021795138882606263685865109125727699919550734335687820744423194259869105150870974205646496498844142661156546222384097527379405327441035898728792664441933768263786516707404234767222957534552287442707604970103867602746827088039616450322160814830756699385474650928172676184391791445469771006502073732725804409936532937357200957868334329397187481781590339283265730731228668504981646120126920734147760367857828912249501642417257089614515007081405558001703675688467788169798032309413720822359026969239757529769267027011662301261326925720506666755581856362868712305145029881763852660706765502754793666021810007624976018017972996153314245408282657802243596807580085156258821406090949624885086859646355047035589549052861718960746756596590428955136058205174361294716978450391271017768894209835621232462723682809773832307699084389145402711244816517930719934763848748291894218583369511083856322381046194405486366873198144571958936742440875732211042203881650371357504674068006731095662250498566135883658294859310481450044173954424850049798737203586724329399632059254066840980013391958048957483584945982308993769115700979681415277475470531033612898828756231537253733343793443668458809766314262878469178293825211572409742574509226115245411307641609315823888062689091914564360684864229019544237541660276163055668151641655995994715430607284098769765588586601884387053294892465911709512873903916123450452177125972921907352920899033256227753223564459694748442574021465408051386739595764889494093979174687023529077400731054640539491744264899568380333982117687148952233935543862868345618016608404194028176664307661951785797298593517853183611762672680623605003457660279579485644478739803423986972071499687534321963886239707220257451907964948479490111326662965610482580124167679695015113834266717145763371987389535175527956278311078319527193948724104171462005874584705055121786187224247860162195711245969550366317802752246606051628639793770456768000328109402330995527950256371049109076405671508141798367981387128871698201829451630110172886612057124172389362356377191895174380094427436057650864499351360643989313654012589073469689912527717753406515640613845207457482811296612132251578679141390495738230034211196358573516764194277563062985788045616784633272483631697599037815154118527496743053883199363069010675103102591619700754184080406766881300882790645633844011494930650919592510030512559450432520127443316119741247058616952984028034036741625623701103097859703373069866066488152783108998151228152848508316623221257397229359141834678407375019411772872735031489143434514888457965691352049967541113975337350889462533974717825231237079021970120793397783776760786522106031877297188581783370546633769266738098962266021716564024915786981298138184343762357453748012714736916070481472579938824779687514158615708685344611500120057971561109893922018511489952049317485227610513186128604726334464761092302523269005732556653018247510137072632196374103414274972615034230614068797796533804986775704867106592106903601857665466960347074160097640195953421963866884258547224504246827564849880269915586282620414599318474718762208605857429876408289590036128172802325873019994817333880585958346225019223320895035574069724295616006626043177229590064311391378386857209628062377819871557138354727660592353690344888348670780792106906605347627156926791850389516318458899682322566851402833104210209879522797844352808868582815488855651617037646760241354446507814112424461053451567273869634106603463488185595864827330917767037915489494964981286639218538927228654954117375235000501031018546317896499015509939816158187306849866762166232348844912125758173298944439275861754051570781159802712528324308908683555586166125639865415219657956753557910364773829211967917624361542119834243740775915954367207094811543483498185308340525624256151178120429597528222649662529653391054148380138829391580333220769760333396655460813309718500553636727340412359617607173005078080765687900522312522478511745992705760281736040922287086661597916724908179814511916191811833895493290036906385927262394183649114004533613098030982992425993732862886415938078846248671358026385683092582740340605500129691669148235343594403010438137650814469191049220332007619282861627742656219394670363444070760337640717079131201352699355053906742245878897963476057950284470196421386932660578280072861090769719002055798540260304149883409337940327102535555263088934170308671527450494307675598022720992001656691250297685799678305878055837680158768965195271244087990372313675352427051685475313964268009473768905805158619836752263893619881497391656512092579421393364208737526998688127331810208040102140257030896848373010012279069470724781985583028569704237227021418116602559773754625052448721880126339358323455067499090757442921452105823221749889323038480212349248651169062777398983522593766252137130893757866789339280461314799909587090952928919749442319248346263147544657879264949046451877639145271683809769733811821233383310446969047176819823473335912807632396323336547679264560280358034431508586419968044845773042742211235787388826074048054678153891648500468240155147573822671997158804058267858644449522380989566749488033812968255043722878048344942014334812964661772687923488810199937058802578786901093890387693605514853221674189232788312457078706663224954339983280542911835347900875684776114646757335740709139589871901178060776995125328725215807336015994506944369043580277506748114904214467089496953544959917878860926641980577049385096147749739384588670384809825097683219505068077131274236564601262349914345462897350740592131842693871566840842475139599393948296611023941346467774667549933547865408454859686440259732714169478884922730704918439081781879233407868399775445420713721685576641928194199981225495856210825543459193554377555843197329421890732701821117448030418007445736352807590659492820518489090312808245180352799621120063788104060259768891895960741672774581573831595805293298360680806497194521084635289773428803800669998958704523592206211682481455430873806889790317578896524841602385896833943432367500294091613240720333624801332120171684130892158234843361741600851656529588090098163685645966046116802963690973367092457022594247850148670884478689903878805128029811353006260675150678573461642060301960738330995244535260760698187423645478603645991204014951463767526680696774959259316422035815890369045189831932922454866291519143382606627957686756291240358819428838436928263723935218128981992639614463390192734041504474300434325627093041284195770431879209238452391055918333708391631549971336624993194041670383411046427934136558225673095320070846717480212396440113048686395403929302569214511829605797404826096675707318193885763327787303500856739623944493397931972303028962415070765771521553231266632519808988327165787155573796369914156659286289886975438287943754959775336804883728999410894158344515450479150217492007290968971644704390971207400084388433128693997693575235848009544206061959747411959621956133190350812049077986110141615268675114627107490357789755525342503315495402515201605649496986735798158307052022007607017889954813987231216783753360169364338616072958558531802621642463194351535541481933755851432123950747579164520072743802186054728509622233876764300736065080472919291363532648809962290562797514246279670546652199496723160566042531875326350760780317386493821456471036883626472363773070719127598597107690564061385607395104201377396700085114955192906205393307417666016421364079694783461890211142861619579564390617727657236777214326210664067146836458505811928651658848961909419358394176357560701831075161463922947232747791147666737274943519607810571536654476690136017041130530537685801924042124854398920555546243963669829730868164420655232425284440640454599149764537659960630938610826515196391952813988585570025430642605466731086586622616406832652878720482201799040965903007541746936982238305937749543348380788648896155323064050211079876501404473994669551030311123691746154774103208356999319657757677435986830492351086532784146524296710828114218283917172280597797836549364234489395070037334244205616135912900564391267865902499225689245458101207976131882990985345554125462518028621040747965117528654202375143733121990681001070922868709636036635975371257911632700065455712418342737382533602698786067602718615772080775446942139762832374743782712404954262669295813695464462659561040809633693251612241613392415833831895576588952269566694727266168754913238681564939161422940160468649174085597990288504115592857982138317857117379096311545992348029951248597705845069864067872155854762566921404142627299435013812693588946294468869549581151657131910663176869139468859188474351704678930220852707996344831460179390596783763647673480114123181018735066580052622826105876300141067441154465180015829069643544283894815426310062854971977722713526080570556517799182967164636557612208841890052307640441300650792389728198107350781279209839083123640484264148750459930885297339560524862192014704271011370820058252753137969479062701411343362941487807387170237545276453039455207153226020315735418722122055109616242174870573795192637532797941239000662404433902592829925372702738518183884572668694269603729539764267974502833666783305856971110864514320270148679221112449094860227224607432455146279588743686143227960554390563986899173206849548550775657099716125586853425158473406732289953964547440034909126219903394509141836376902703339420061476670016106242811675644423177531180741496320343794441845174214130820066321609927489471802977519545135881139616474732599015640236592585575317082457534188462360106934653986821098931751022506592169751103861295104301145801378205053896026016137440634371902886695048599502901550765072617261293904754681188143379748051535402592796322305414257781503641038036621820747388486689012795944857250760665594893606659169610432421395675557041651101152812011887851159556504115329640537603691613548611888893027326889419775723436409675130124463907567636410865200475206449110536649322247633841390574821600921366769718220818454028978357679090344609769278788753323579285348933693912156147388821694161610676759214674206089371302304134907690390466559138346183454951432320736278155747978832670759772026493359944340186680781389109557393172521726718156448964722992583187094858622273273697585987947146247476602459036761015521408843325348891063113763156475546728649195663177014083392974472321678855816257079244597314567411844332518363282599687215492363826618952441584011253600229478370819693526506151927445522872350967569222604539675752984522128489962276103349649449585336331128701871132169550122737018731692742035749760305507374523058207086261381166247649117518850219121038306941636767795247026303603757107605014603244532144205451934628750695443844279258173707510658172123307005006634054104863714620060620187371805158050829857988659791385027882709722342948903480533196841163507024650228756442809932910175258036081914897952987376225814300082989355322481167788602884527949670332407714795481901104629587295992664742736016040789923748268370393901661016289337182820955818921841189299984308280357029892083858651644750924342373162756200460851635058566621491330030952720053647302514726688430647907947979415200738244106114372650086439310994835989474992662695538040728654579504450166750370392900261542562872211172491844581394444978686521259058062491239329674758672018724413478653787048784760345044346357022569344461147301823687006852506062228977793230798572975785952125310135874258054717572825617238415186423231471242211987715978445355088019647064063486930540958051883123984648380025996509836400005011501493251649298782777221555340623806593138731924414504347797253204695943481997388289037675924926165239970225163558427746193091541454100950875923484643260675367574771577393004033030303902945098336701315941480466425899357288618828993484183716989158607292250683361810379528627904663024106596634365768452922669327896681424500850485911085031068028851518885878155657662133774563054205784682351170811923020267951860290854389929887026643718679439859215684267221168080219564302473837362769410167830630537129356593356458212756362242269893761768163281003417938320013828070489753798519264012957920816609217961628698577663413347636864723891320364293053301245262085378370276743167727072573337404923320319276747730735399964748283575878193113197611708647140282119086264181502280862173035858118715014740772918759246479766551865243230444267609951839548900909901083611669579949596068985122545591640754521386808776727205305785915154330963492260279811343872951841280966815858575373561466995300163968543227071911941264291149901345533653243886869873563493924527869979176412133837270348611487688196789945892446942443730467525516098224640119071786559131485388101126983983141648756615292532712442613449569700756739189549738505862835068664631768814362849014695683414905056732860362569112943201214300397793053470675369333125993756018516527143548478404814162325162858641883671413425550735872191101348625691457551352600018073805311181695900609591348299879081334373141282737662978244572975519456663881613479130973046445971747817341210539510458576507625865151999397186529430846536934868017221809091964090122076848569070495355026575167447902649385790711273727214761796048737881384777825012820503425692421898681549610588741741583596466850516150656033074667874804141163580570546215370613311210156280028852567015479743806799336810933810251973060367709524072017072899772300162975776971398716166139698173739367615209445512475497761356443262535236221855349528125187321522394615815040987716277603842714757234501262820247927479235401261470164564159395788330130508482259018411360616380086557661105792151040638044956599794848281246718267788741732904727233697451169941045887513282642919743209098633971054644664794147861788581421291154635316394860912239168499552641770359385348112526852303170337666890300481342492081762482354072965536616817257716389228637965556046742211838806354032492839883150334751981633845064793833700521228686265951014704669261877170275114141953000674808762393169861592782088382920061515853984079218731914014227977967032842236995636151473460472225221448186430444918334940363363218596649358312752711950198189924661531382158530623208798590316033010460163967081471568791852871799604094875609352210016603197060120563154223181067301994704897832389329551160259023073560072873256990020066261148626197301972760975345556450574392681239844679903279435133522753651009109315396367560233835046022178477460470954656378351237168355283986153762029186872459272299770016624773498429346621073327239419362333362114396563915280661279721273258727648107590276777572817365953128524716914897764885770781551199012516948068352903963088456363148876744072260957888242800020278064403085088915835462082457193420139290431529364782313034064617733703832539503687410828944292294851972317125814649720131185522537550959605226636864529314565376404752059406115515431743454128463032268979850889885124716565587891667800365244988408439802437000623493329733248998297891425218487117241900062806450606991912186764121290219858790941589759857065355598589690934906823847525141086197336312070864974550997420249753257944951480805491840703795436185587818658682111835799342812833687509733144734469376565667599799034418265827529027716138940363291979868798704466945571859428397742150914787720218660306369813248685761363794974641086795926038341784222857030675575483878301917983533307836743701883726030706511236201536312548552067910246088791395196736344083184207740329448450199844551925601243227090301338700122644951223636097681015732937507719436203045036313589815363880889618035487328704855744933599880808481758097235492166500366597936315788361377476500667798763864849316625547223206532183194975390490534903618092554905163832861167592315995213269933411561460943743510481452818915936726020451792657006513906350779941887781153349657038328124647141021784745129017607876857144497400272874331880628798155360685710762132110310147463334361488350524660044436072006259745476692102368761056629463785135193441117684266682334540371245011630254403854408122625458381320882751777930084501678023953420023244562517304734176194220556354014847990381320087187186147109533708534997553821736108435343632354180604451148994057491076196788325240176830871506205423114572482443003189070743363337466542826530367323086362644198700690509559311161425322243157629749320173715045698551627237832602523519074983084691772886078343503746264682449737387710726198254551942225817809831273460851486862274463445168762638929582037904893188359633042590066064635528486800231909619522512802657554780745141178903887371404286981868223050281967517778121064157524553877181266173627117754321394573540678163882069138520953469084829363474465022890851613132256438422660400123907011640285324717660511531688114443654541570713519282553202268741890964860209729353190211826442055623575158226569028091879210790712114064231907697346986301860545490009985805717545405303192495107165388084539802453695854570988391481442013506281564470456101282351237009000111300738193142913598304965989298299673747447804181105586905887772018150891707524798751921499495767407175535089544956373470725142338281137445062686978809748848487043413383761348265340508675070280777341310979305909341045346280231833060724043061271936629617087813927382978939387543645524537140335166582952853922136759586639838036991779899238018906671270197043584307145944762346892311179230625370778912036915088087942804145871509279277708968844193572748402076479802645219324478328328718113657125014294312123658420422933070389327942433508933004268714788428391559930420394086505329546652596522091511685419563722171101417824284744969770670397575994590333711570663258295523011981618075951699104549980278240305307760147724838928494178439791368215518073050970439920211105385359010748480889449694096418793400106323654158607288890899530885062981666408979090818315081059536218611211097324437127804768016380011190042652106563185193072329663641034212355868935687703907633308071833260384503519627878718426342782111927703144687156894040529873397464236482404358371552455501855312994287803411618920234439999686658799355917197707004505930780014842504392153962128555287619869298761073152720141260854364392747288879110258292315142335262576598374194026145726435445405883786383536035631445769012111359123966974121270517149269082304696284712640903876336696152852148490167552164726788557876503362777501838573977286491717627703478129781357543267276212699997447654455211798870632941307091565792818449806685626832554933838432190579244658578643753911065669397749342546514941852510707768654642698390787713172987353473034273568057622878840262418962142988143676150774204440476368308973291071824155285946887814771902524531350762368091126410595024785248325908398280629917960673442607656059597205363749238148695872191791594568317791639113790553455784244037245068952996625070077133623291491537572641936216429928092864886710983481091779577875202328267167793024735909502611220097453607500521540702193482268949322996650392590980624834054953814651712789321177467970453340091461883310139527066606749016410440182307649373194572924275359440179396133673167346154401604461046588799556445535123083935609871005151017869671196676037106360494261740928059247787257183777697494684965271465906124696822658112553099487560652350991894903191670598078466598012780146946150643026348424668799398893873523089797568454646309485348647102639541661064196700802016860031764177748719899670245432040280061900158204371439215514825903941327922016557806488972727366177170487017674113403101792069526461928696571442595965340864707999059342183215820336220305971461185699326701016377236819854568993261212933638925252650153256671413548167015511606286362293067344720285353194893202658481605157863293112418633015318313595543663429762019618593306654379975048421578484470406880701012656264507125164986794605290486876442405855913363473367516500735027811218775522854806995859278174053542362526278965464685768184249221779120381308017330755169925891081060290933388760428617547938005596362995890011815641324182827577042482600531686701498554875794735896061700039735382356692880194631811797443355907813053847304919358619160135988307227212648776979321680008871295926759319225783855107658719350240272307776756792150444878657108608018138207108944107705132307480309286531813918252639782108135737744334550273783461136256991322984305627036379880147425632675976284721648471420805980020567088219560746574823600956675278087252168700575787854855817635107722167959723513227980245172881563594729786406430480332953252874238028998942560604139556847133133378676253802773165433843624703553750002365613401801505735557116967839132244523370962851174313615687017508842802732150711968726018578990577954596319176829720045178091302382910376543034548254909824029190739075667388294133917039926473366492006775885851773693456985964659506050932035600358355840023051744115869411832753066952983869162064029891861173347898859102957454814068857545576391861447387196557539295945521118612978011391786511613984969056848328390131555810381158819747275569341375204864442583818993053400876837680914244749440185268551141334403348241962350526850236898464962567909615158455548078572620834333199927631168258852656294292579204714702534574081282539059054946914858688341858837438388516337519216347582163508044053210633769247519592026433026306331077967892383232809572771361884818761763044618363026503725084352736777265075210459694024407282683506604433417195413513520385795113424078118803279386390468023522279254801225032357138608827199528724039152460872824396483205266460939720625237836132843607684385182524291688215176356278845610278244404260994152693972046461791724567300676997592439973277873481075398800699949288235688408098140273312219101939840123874424638751337883628181140093447694618748667850155783968098277403210729157486731172004487559345887304361984030609102349649771672522099499838116275660476657631162909861008430527418637683560761851662457699794130042750833451901644314012104819350390329133148735169464378221359651684259666204423898338828312059418852699097535046666728317880472259490130974374273179602041379511938032970655452680426828857148034394276638781370236860763136192261879545713799252044104600282639810403185410685388387324499907326687144179538087792109724424892942804063177540356405296712852077485028927880349650527918186305498601030472773757533948520418165588535979357960883288836006832335696502664010005053614458643743189883864614890198222321557400521044988539866843709533420998695569358247996058755021310346827340497033472770972101487505905726459344494058558749799249710817605391734781509630353599839478593299264200757599291617848081353992060264761031907914385958509925904553139990428497435896496280638223780063450205396521151043748128999234616272951643803661959289340986595699416640573013269590664038515014254794405929298121585276107969640970956462794550095735053541068703155089010319788438548158215569583865599246689761972862718734299693131111561452060965115301738337238622233699387386805502862512149226333792790815991851023404414148701558666092144182960750316829028684185552407006947724332756590025858172594765454623215290583013509810043148245549037611411585740627114114271224130816249563489150113554410698150750598231347250291282866777110936010479423631579384790843120194291327295783157105374957199032799001817023580257707706966762983144727364167758221030802794102817692142189324552671065501833712170731905663502675182828489187715004223260923758069398924147868341177801745301907026438994041264195613185936609892175438501721798428936832211451335305451228889851608280842752252439807900445425608462326831501797232749030837329086995771706482190599058329897320006956291636464354886649423025488389569272089743777536019156753741104895614920140906597602385235441264525880272483437908309368278965730267250955142091440154365811542861242717938714578828201443464022741713809677199381731225611899672574500908246551464965580298699022303549114157494717358613002684158967044042601665830617378680550787578692648691938884626237033362064927172603118048035848705783220412175390101686649094196933431508923174193160210040207100525202897683575680458101996415008062025370951965356556852574396620422313760786470315180568625850684114360419272086813505892744809755532091630150881210783147808725686907352916679770289261977983817994668995732264582682005243724975699414363591350225096760616270821469008550959900882649192204789010789747162466326831868512071796877627197527950111922102422707495558269628968742577213186488868246473959422292882445254268311254971091986555451272469708027412579021304720733126126545579830477728941785460458546301086227724172493264967914755132237852275326060158629370268418388694369274453346376518209914673196328767043246190455094171638511870973860127503858849918282952992117131113313994586003125224543341883223291488931447076501693622305416352685631316216550954618364258064661321683426764051263260157165172798027514095895965353634168245475615502506404036094214639494583235562434475260381919423285590451792327307193094578997320789327468682388886320485021523582520197723203760093219214335000434685586827988422462868496413246875344540304034670128347942536610096092547349545647348282440541768995301261144768151721962135864635917224445195298048015732252293986217048453901395623935065983797554669925177867314908842835918591538449521954193862291488528705544873065800121123419804213860407876474153573762204409656992121953623795415785567020973385557354410925247807852431015705095239224148283581501255402544593269308720240069647630097690438892316840529971042047187442373502200015915181456517731555760947342142737215690404610517473661566838128340291837479712920526254774923192624650772735029807813251047738747902436881493887155644802603765561547653120879742457750864064251988087478264438272758273788949852254771157169070152030786871696519306893215230343564621539172095515582773943385590927064018710628915768766513713938481330736478225886352886862093929931162068044030276063370389810530964269766256159675201545229039677340007828617329187924090201409223863449565123941249059884286498266691567729603585488488621174665477518284582666923898201616263684146912939046330379934321612291457149575014362829384034373331708637402906013743716932010781447254479153501933481434887000298419565284395044389043752051866985520119890768182740936084936250259781423297722676516151763266574270854476394731364299830256146363660800072233328142295094751000116582630080978909502613100892381952270238736860889697760258046546353232952762876593341025152035660175190881964441137102403488864107191582609084487305995672489197097187654104679515381581053527655822017641952380005277251386864134473605598229701177181874788132172934851836715075674857879729655914317755605658568985734932031497223155077879508019905479519202829940045543066030208880586155241283855967453367934867787505515915469588541898919664247677968379016208038214248486011153636677208490002742145809407027073395289753181956068053370260924786738857950802004856356594390821286289787427423394912569006711924938967712758351961949339219616996350959769133646281590329996502739473620835454647748891833687658383142387618922503748321039158527215760476464240837976361997826692006457671851606647334638749820143871646213433764632795975307947014747921853520266752062852568493303309481279053001414789898936875429866606775033864763199690238004336144357291858381124069823872560774893209375889142236767509957364585526934604508882749018952108574303640086793265349809996523605864841976459070033828513344730922788704446898675625535943862414726771631183615786476729455543590053793711943526329095866311484806579564393915350660576404161616062008187459736420744492254932751986276515682830349760641551729971737549490245142107635046702023195835443979958531794270776788623013643339229127335903052445404986610800668044278430221442147787664304722553241384908888532958525210021830106424238465513602629614960685441138164341918091201866938975034363216281979565088739146979313888178801614783513744830107609895153992491901555068385729708839326540649258587633826171036358527929723411539069139602305926319607970860636221440197943827608451499956560851953444721895871355068547147207834904930843731037449342673093133539540722602954830638802487307926814094844089637946551090136365904170226669249425336465831539850141891002008416307021972339287660020335731849673706033478745447005226335922652919424408386492662617677883194137705242951160532406254505240722572890084688602467676914666720041314406224406297471512117970611163845069096327682933910902246484823919323930074958499687656456919398771658392694646050921558539500885239218367089829883093303994727895799727871751009432461002507072916786857824350666864937128795031138449029295120943884419965955146560578653739889013245560639790599186140625888916933530387939467397666479134744529262620194229213768957010794681171734530339938411900250619915656426493217774745116401106562632154758128925796294444329651965262389790683617227698782731350109364040139282574925112701120766722394853021788083732519606996778239046505528778257618571608367819617753450540914277286257461326131458499852465778978470391510669603818513113015076273212713345919402830399471087170247900393022828083412779189041354918429286327405713550119935715038371589428810277449455427275176869139148861662632595148586901467415135337481448216721121836897956137789398105033518759008238350552695978007152486001919052610132100250559249280278405364964234312666691814133022224835103960403883627775638327185376585089483725039274651960184459714429288842423205224926891181811934194680660897172366369630298093258182891551749476914806894692111516739781777047173024850808404415657438731907532336094196138872458474080464779263967786707583276301543642689771435477523834146600507366256614751171272858565281362183197585721639104801388448960409429436943893476190441952084153129623267304119068768236144865148965367252544090325617070124899813699255913735708561712414616796820576464129068385079813845392594750095047518495540304639312113463559698241128807958328813091856845584974418454451103383284347003559754085874456629625223949089146000413499596053878544358843506186543581697895102307709776191010519760231767627057537652086272924213973076039199996403447933303696938418529281113655601597805259492913812015043654163327510687988833433005871247903671215513808514889189995660380429659139534960091774570321991094344449880618712274903056479681232184254561640499946794252825641503639454690637522350131775964452707377138186604934978056307940600495686974111283545662564569691721605735912667875237619314397151813733850951529624014854098803061924933543021021884166269695880382118583445710352665284117673628753073263188226743316942186602269752196618967039864240266294887813474211436412547304651835569206011308455841898165640544855662440717571041533610870752593555369573841629735769844389962147693037158658657937560852680187433741586362904205812554126855017991189969678290009123155863613938247490150683580630200631900517718161839496872457699250631210546005193159954201064280591648593027569084134679091434779666143327757122176091449594810753399578866787040732070604897156355595133362066071803614938166766497816637049495254639185798687479075954102962779627782766678228254385133285494906843520064821963028004566493262977375142774640866249401520332644542921677120793336583836395646483014298174246139787247000796488783825880347272132983628363733610363734585080877554991396924037946975667976294321511704676686734597975404192002484751013268700915611641484252779863847182255500546535202603957617899054705073769123240269151832147151586980317423311026480078720833404567167305185831341465162979460350370671482982241945442711850926587223894851689706203693450762052951369704688838263376586892277724859036191153760456564684154507025025884667103149546258223316818820551226214286453440607511177334362833924554965756316101766756491619751303824176221846727517596098229493852373596226661199720222776918990599826713462296065590446055561588251691589328806451782145057665334178890006428376738174977741621356993587562878939069884478617100780726574815584303070249112705907822904207290144233461065504157040161632722928270296627873810618227864197622586444591404298237412911266759408546847140919285265696897627446671979219756277353094652502185220975888297774217143693336121731054313110673620920892480722072601530651147315680074387138366103952176656090100503368227090297127256984074383486735178204947580057013484335790237925382527059877111221795829381715744415967633545951293794544077661095300385444292806411810828821467069066456628803317302593233583707574421867820005748262337101117626411533077877554518503681530769771177035549276009367519410131167928265659131823756584581981315924203722899613304041034232898781565157669998699669234402240424439314415222957982913442994419687614340193161381132901680133240126927697700732829358015849802649235236174142730510159776347399997337948969731696048158671994767217085335716717593568829015812705857694553761621734895816496153539119050265483106408982093031482921342977673314548004785469872206427572994246926917782585355362352283291819023359468412348840266982007200587780506767971813524015902528774201059021606348190008854859047650440158904038344770439998586909594824950903893428075264048628864790579250629903690376340550976582569586407160889116640191624051245248327718521608575201008864379626288670228373207270748282876757768410144107378607430476061269475783243935420042925108631866198730310264794645727498502154798374667703437089280672721856757846379802995663142530041566024211555433032313931034340756501647279083897148615485750214678434854359560875161598790124444886640225408747639431316539657593115608556999487296268936911942000595357166648861952079296097210943931343466381867530137043128999640812883378221836561537365918477536002422886145963482909083627779852524325881039800975112539221657152511542086986968268518755184091649052764849789709334586241228031250832754979832996896253420566864165758736279636536862149435875104814718819602885481334689395019258057114348212581834588810874201044261663311975274057639506518236132305593772611347092084399660432370914374430431402501007564399876107605602975194310837187638416990889380519223398921003344285449996983189122370700535295061538820251033919057719632273403975534548066465875039485468328969854459043782375510898307634717083904499580324250378986787436566978263592206129413016158586127568354187855774458316827860970711852505889750529499082939247445657317455088141979556345389752068654862357557816757895146074954410406803502894882660926729847202371429591484449902299229936252164609628867546823441744987649617738460691402209810403872783936901580557168828802280467266803970573175431774909830126672472125890396052506586034772811825574930431021264630092946410554801797041363236100071035000749775274691243494138947592996270424401200709488473930777792893916653368046197048672860689372944511443753947295084367710961314449219017180762619007522300911825080416738990580465967279487890041342272620533451729532054614677320472819765440174400793175484515189529031752028494847792413313671607904030082846398596754445243647062129270190565014536737677677137240312658525347446443048436615030127974555859919430251920116016094937297353360667709745828102469504242945184723625998945317616221583839393210750390424912317743204633137506016479451055872563047304673334892222278966377653031783378166401209755942513188051518587607542892686976799754587549082334916229109898740014855949960205154306326373848577687469132686534836905112955915245752992387815576703641676376660553945029521432029796726542827579413323764372527870537262734888955467717470682291590095241092212903327207560599963640103794464432900129531610955147189880910290249114460965641912154600652182397800173808411904819149621892465410487722276855541099422883969985832992662494456673080504366927217695024165669975327618592755252562675112721585106728788776820209572342851282444045375349265152945301712426118292018337203172372494161967292490948834114830999931629006122172338935530117620733603720459755700144097088844732461769831603784046163992008627319371756488856936901911840518880920795671335580577368325935538847593667166521899412872546112076763049948323486094699499309545252839796614652352447590755183553462023055448347220887319034815834069248760174141295190909241151060260050729066265267531823587234417070371160833221310002350774603407064808501675445435997240023084788438406285119996998664660432053402586755710311315800121350063424982388960312298536827848657157793810378020028470398542807628515559275363800617628281334616851025259964289660528747425105987510787791471328265711757372513939914701774579509602186296994613570504478627494895266293214179635698174627204431808956698737748469392630257843104688934740229983295511268765542596031784069121105015017221689872441167739160645367921688420603767741907086198076374498085545342689354517479027471615235108735848214640080622299836593058309097265568348032920724340115192849424205227692770386907791458883442145345628519181195176118661983936204256273975775251041301706404956079539711659655090121806735266509480874480939693254305044402983658408462995726874700093889064945251360819256200963238373343601430779342821822947636815820482902901095437293950167318803828362413019394150086222013282863625403753527487774963190228836419670408413716097674168802164815870324122265933488104122514910530604057292465555747006470842072206476098932738536046563943031698443928928072196319641063428520344604919526274772107836318457809418125545884754735388600281599869212628323970859505379644740596561462122250815760667376469824225237174900860160841221774752403288540106786214794828617843306414803102550199489043521113216050768553060028668462234759139536082989897881434228418649454400003394429237709502965748127575295145773950426312214977792224959297896430450962603307976405661253771372449872984540785208586150361235292323162154596752413274799739587225681512739052118728352529562110314286267653575478631801938596171099039412482469675551691238211725432643277219912884333330935612598105385324648128407693558881551027642444866477511778973050258718515527003685836785460149629086607318820879984844639131669166767275383110703366656993275431809016259440404071576003843164596828133435710412439631219923151559719608455979400391629371368325615305453971096493602869112265462343539168326488841645134155568586599649548262663211002208523090591681564662943521163130214184114405578724888518920464472848927937716906611292254534938503193779168077188899655255239249363464492818239028482057064333358403061163778437539163316776391072678141588588966818717359637081802476262368519899179759086610448155997399476992089444378797259103696563162882251364684488941212524041314857354423121598679493104666452626063352848539200868784581373122481694192046956439989970379415709091507866666672558187708541353997322046643870781365521630420209591641957929676733754011960789657766775011297570552521980222009538377880600989853892294394327886296068341299954176432662762623309954889746323197031340360014404628375322395428956867363061321937033653360154562680211801404123005092227971982449757506295843291607613205564158185796032830803353430999350505125296987947608747846445912216252572423604663321239843744812010316400585190544703155293447486608515215888870923729888053006659705465125577654209038822475316518480483545017133205836132611026958087486450548303744133423520157099049769121332873577621129680509555067653778228854072440476821910247710420113480244747180135759069890238015047930798584556601447348038204512167901916616935269608369621961839343457328260140420856057720112074536079702373072219893145829576374889140467958426898092989284012805846853746943685832848627932127010174442882621751815959058293999359880610139597045992744250278654717661736475100526040155986533087653449015725019636311750591473031820699154662904395312518105392476806097573663879248841776489415230747563599581137433051430442514738280609212701746918828584284345347562691631660702138795553696807781422616133607945780720107331061568912540724809300039586891122925746382892279690200405784214759620191895382360859433041171415064843099403569024113950503126259910439636691158906501865453405580516691127169512344599992078796032156105433788274010482157830998966213458521035654632602256782953106063546478375564183616892171800897772266558104876124378697968176885590004854580163456660742550712817808392453481480927204124096472047066568872249322000832988334685782938067464805019835558195719302370673971704990804406965238373286195631097794373563315185968520782695875809205930371486111559453238677848815711715265089914295211062121723000970965788316312067848455006349682728521964723724257220531067392486697257812264543446260717274460574202027980010113566452729847890147047305937134158273199714395681480900824924114738369211225073280483488811268700435260677904222548133125743229476255489607067038803347921447892210137182070017546199829454072846720087012392073063324436566642577406685432488095511907630826670982404923870161253313389368528590504594748632396148216983550504002434276885882008950661243623157207645025311907118325303240266692918430420747684387224428731965769273999713802327330703769851281186835259635132603823289655088560500720533872869666029102706913159726353834943523753778489197042955829854939336500181058681645848592739718361069456555172325164087602705234650308683486106637208381512116556184678829162258484040124998403746411602778315798386113953776299889852101603897836213336200260706960728992251598769865820375292686409368140952210026833057170797844845515969537881082399531587033156764121216503580636993668018096037539169992400034668070950429971323392142383181927013579161250112884832045361189295134098299290382181154098910567826539947327291943590017416724077846623235179913358640788620937219177956913946282210782509923741637306751579358015993106868855621675355963006607106887188094153354696563260532473282217168518888012600929733579719543504681480963098542362615543862570189143260032386664378135920436673200980187208349065534181244568091730606650159035067596037942790993525608050225719393414908989910390799079047208765973807154474065190429209840571185306603386272740505584328753644512670417898575207081064590003590975086596818516874390250992906453189569951024270818532123761417773509132014013255494320943491595138629187432723664003058664120705608052970601268491445981209782594421444362803328883485100578426604661212431361645890062525624175609288842536142906639780006621965125097628189874252123639742969228790084914801003881931599296985825035803613529609083512506367342799572966168727469393230023140004130592033433782616243647906476924407032788306399654007967559640907163182164066884111691431942818006193104601094021869225017450261585083387366029502665007695808887411847451294951089112537960996573722676381725415935302466406613027131584877110546814328427547060835061808732628533287689239211168452409604629589280878766252414943909871837061209725813230328376942069936010495198374645446347315224301573398672921831630937641502890195191760053755168308788450321504222280421873550533652912230850675349490116495305328329644150476681754710048856592023184489809144622357016371139865235380151295457889891040184637157982283525338132445081539267394439359607004919390533329410129817182675616033236770264759399696760635120260147117993524488757130477287201896500877693441123726613174319700577410947254665071642762970688517821912898619383049813618645973217704412689230509331078943365878912420920886722879714373619176228656196844536901972148529942383217878908425245285665208442616007321493012720701403010607934639746525844520166783800326410046963819325888891097123216598471583432722233600103844397828948343032068892676824544373573549629806637053189279550388403810260860622956281937764178565839650463304291125842211442484699648857337612416388433075671418991545327731866157927164303431706231361398728419649787631806264900368743119697645320669102107991007864549219062396967524798941922646669029807518649989891766313290283992139628709773012972879595151030579854877544392687649687250035776339841066416892471242539659518747840879354345090624266040465210616263657979930975877924415389132955901015884666740318338428138653046807323954782786880114234239823224516398780847219457192850835273090798237715523603823581053769706784741376121806108053353939975142260593076673407119881845677298367135863094264621227953138688203036282339225243476148366049946444380447875384740513333651133292071222762394045391735664483489981037662414264312058347611910858557363751738932832811490740942382748611320165391666760721246524605025363865465283408149317897151279805296440965830865614813522639076867587185304983847559445244057024868420156524653067876231316364569466569860674543959416095053370961344367460760391523900216608184957901659027060781281104962021637958598838151112134251554863878451948248221987873089996832662760519617129221074389780991461915283451832309105773689063695040958569010755399182075411254088029821965188889500592424371824004805348372746024762299750868837764814840517501721092225651270444034328135025183448917868396964676976422212190962760660033124378568839365708938252964113591410774802988291221627346590222245045054350711831541895349548109378370322882434117814026291813666649141874833131900409676153565308075674552394716259422371919945699716997532325743994707300790447610669553784809232609858248978640886103778515847356345288190950914644271821328521983221644218305838846181921190322847901761034348975256421781754120558993838910113245985320529596157509541852332273332440033652020033685295789613921625065772012666020161022785674586868776743553482895878669663713904978645196372275139436736815578067798187796509619586138268256311569851263449867584107466763040619023918096050516362300727978050031305771367531607249853076614819550526660152771022152858823117717087477125123028329471008020475050974057725413720425334162766129153338342635926439006647106726157272574504023285049603883726203610755250189291591999457593039498855711106242977492742252632117354032791460893605375063544622989431113835171122427937496686916250922548920654635042678127362807226580235599980630528662236389668012763207220555149748473529184062431205795934764399639338586140875882852488677150786935963746390252119435728653897462194689328434118089502374661590284341381182225514572160594312051742247535340261806675905716283494791451839574391292726318461198883439255929912924664054221017928933901321603549990995642015776334812753250238896886511596841858281550751440315758552223404210287233519948650937319854237467977443833723777727196829942377975019508854747055739057482484729058463047371318607980385251525357798552711115010422181956994640503019544922932990526147628889091171232211011568547653202285475001209650148607891208226722065496212090263814148441175887086195862411153143210478634560514947806198987309207163450135769229467010847358312183013795399600457388951436584445115502392546403721310501866634521157427998629571504659235291152579706060547948201224120779001282362964062388034181965733531484252398566617517025917742520722357407034282251292220095965074841109111758530119319892206269766734268394478483271251294971126229202833811232685986771034408424406046441652837322432260797927104006341364134114899111756436749891736301638262637246527187360550934444408470918283380663210264217453256609396132694135089070885488156302460745864246307140067473806731784069261257676967377919383550351641665831959361283917576619992692433339179553600792890604995273835475328817553193501619616663542073083709595439957819379585745612386509158893195233507012933037904340264045093079402989462271018293004654540789305849216889691376986837820042584035805331137681962695430580389282296068275187407426381104089555161112373697878780598405583767037931052706474368608928882727408577241997111452307686092289886571974468597620530373920620503048391545913277956914463795862839333977470403471035543515925111200167123027362576599219784610145391932246210372758259880059034017060835275690774696417267020244564551764313028051971494262828768198304170041111719532388972905644351932653248116742823657473752682232964370137657154583274133017136191142012932044675827839454049779067354737484906960634326705349279335147991247940740510734359288218273717159326768604263047760048212024331621815666369752892731604846273461253062621882115060291417326302296708054395676972181740340005925834434345377487175981975335646751740988892099854089227678287562930016967345977775168436667912342611422641390641099608938932711020593862131533665142324483202996577422866325056773120997363010646303148645587336807545572221353289901703066272310235994227354679997158993509369307477358360390473055412364216305931931209765689146723106059373269748984410546078083672590467195253916051581908325978160033011932450427333303250042605495134122504400399923394269568489711094233278658826217566131689942311001367133068780780420901789827961291339321143301177638802813632023473024837338301854153800070229054222060965772374198526372538640334531928594546694737629305656064013397867466922811275167351562740283717094554139434522616978332603227276388237924270565193204042672654138136194251778611593936755435895820065408890532917864885565441212156315701844915013420169595472334761875361546944289669589119497769803163107625238435697186015916254951291984629935576371732727209079261501449638298795787567770172839020315799292774249946480558194730913395648790983705705200061616597587501486136954105330371890574173170436251502873879661207695590742095152544673993151217897618082317175581925249305335327114998423972622783509883833824849029736768929895245938572472158688575947887418316966481610374801082722800208391020223644220207218875455465566528348135252225194688138341243470408389761067430026440423593651713837609143549265475344127864745140199475846797718071600781702761865655288232375557816210358570089567102259388214781529447702117166763879302511242026299296652091472954387309535887450982442203972485917773533197821156914334267599237420643330562064489282053165662203294046593438699279973744614041002063475517332018945936865744926725312133578133186473408583208153598749526503087821872881463590342152683352464762800931278932385308272392740257087445629190574522623407683546930882888464049103106337918700341790025898674244175050018207655713603688304165841550433681046968425592718207493941996794930741165798403797256516023058683724888504026610264235027022694898112743979107549321774614442912581153472149076143724216341912415846412618623992824580511510968963969678859087316102449101910372878100051784868585544015397802033731705996171929241560628568474371855577231754777519164590624496887956964042395965179119860264367560791385113391322954092712827193900691379277343743165345276962430714582497865864279844845574946677862625489521986773212275809593716386126213630119170276349826324849501065463440639772907659916185658975751252669250337541178435921347466486015894598273498551692105740057209369284872748445348320539373477409192789632394550746248943046418346680717829002212159873323533063873854446835113914669729829981471001249116721041151651241335911745018404789231527892956707695703392399356898284444212895139497554562169591376629002692532715255708543136580595007773556688001150825782385601896940666322857363744533340375532752724622689932766213422176897850830621790284123798483023826249883720525247204285340407678152821147955673335654784962081045900020556435365574433330418019878758078039589114312466216726649426832009086443622264562515785777420977496439245546395685315565320711029461299065431112182614513771367364931270130515898142777740495164232037620283692297400052432161450252286550885659407829805586364032302893780966116594594988237502781703100285264925158505005572783030589386811930221564707214766545320781759790720376152967604464832136590140525587059401399613880434153576458938425670035765798634161307931780446354575986267386344173493886381308721378689292752348932152968620983939195268823513946121355736432312190710502518842665537053950353216750120287329339662336974110819686439733540995861580268713544913033064455704894686680756353099239127712278290575531220720430078877669435535518683170845398566020526138801996936101895205670202505315604595607299502433212651698840571345786549153636660054610177168497310396050858755606342969050762193310923203320332996139972352587498404306137935731801421309281426747265545094417722098374938979721564911466175623744424255987455211090070486580457027656545561768555799861703872161059029746482893778070433260608742349232527595290294901586280954778592748479586447079531800227921161774488112966426907863371782930065175741927861919995458183194990689595575217388172496103138011465525741853154346065216945066668975758646874029326892200679681536902817170747964885930390670696534128983634818248158605077196545132120713963194297873836642777625081755911440955750689872775569741696692970245895260474302327816179234956600719208143110988242289623529091773877117939484095207857102595815134810181814000308296514175704912499263058014973735297216013992030730746915148618982175705605899767874387728455203724097116514290314337546321265235640320473961225938620976008638029509776888229139669857611891847294467767361754687128983639737803668033016101976185836303728493405760359865215945433488684665398323422395591084422539427047815754989364265721129352935114652800330371934094517842275235177987389468110813435343477280629753246204236570461597729829438738642273807931728116122670559711150297415139388452406582498104254896537044310921370892137628188823899438590381079613868180430232318112612252035485044387279833026641459759248938205952272958503974563090652948103518731138425470196205030399043320036988057074439877564785320434615710176388949808669426065863289880237266970872941373637999859081880948779282781598217755328933985918862298600452359606754349699705108676578520862052703157418274851423103655149198790362292854533280192855830996114320411454831515830639729293203416368207183621626814635128797854768613155087637468023271933748782520682936540062626092378591774551644925139624689288916129043595570980575806063244188645781456018681781000698751124185829785256640952582469575901992735167873545991132190510032087479369874932685905480096190422304016588953065282028100659126057524207722164247093232859443857484952188831788190093206732107503017645833149709562446883303353306814981119578226451445154239824165275216706065062435673675990155191584223997653494615996436154192396973353959915419461952606196211347816629138531729348674745828396736110030339636754688395662699413622269320909500870252341574339532789403359343177100870770599329984879904978448432796775230176629936771443504690231893635874039152523386275209687632863519892969907022147324988579718322903823567378978052318265903771926269843190242094715042908922138734443812115410319625716979157126453954969449963833829625667381180675141469191154490620080176292315436033940045442697620951904508843117266913509067204540627483110943271191356494226945179019775123402036261926029816327298799701811922733793839643746802086150973989585825272871921965816750883901092713607012146436402108287500357975222607062957902215149650344204559465578507901402461248696041139066773352023456536663632450551543350868904688651068156152793176583245519402716263522161302081403636765708968728202451005347277258217421897762542843288469913457516850306669654436467518287414854496816742306525688187913616570977607519518746644630527840583452501182662012172257495253691419102666695960339397644982819877352410505690772276698362111332442865958859540876601912122587623395901908088091051655715827924912914567339652512984706052725764597375365557973699919746686387568939751568432402910576040784439648568127069185096967356949918619594010952264038125349992302532931299983356487524702149128152633545661686279433227747695201619000416237774747578549715700628660362340057849328828326433796306045482437825939873653431915982558074885471925397639409657556972924754874170088343538082297286018959280637529459445944185067143536113805075609727329499579776093591189421104595577004967590943095539361436067414697601374205575644597779415046993863612093114980835218952189177175198212392292702965860533621633640944861109039491675283098874788607604405923696066677278433203661743876742851144399492639770266801290495040210235366295389482120525096495375461710297866788601754741377554351753454571496811581675584064774321024739134394352123776541996856416818944345738558187621762450363519153794081374359676226426957993720876849312617393172999503710218166869893537229842130684093158880675555876091693969798043754917205084087079761011767553748431326384061743110282315181422343178065721837186345738223944448530422014410260570809462952750850835724373391798778065192962329931667383726098469810117249894477819948149824048248510167949313708392340041613437337751823689181734837599949072049044667600960245293725403888556401222434358763656395353357068165666184277012692259831243921207107816395145333643035473051049949743734281859358963413254541760632487876991830175982251427242429921328198221546008596034218438645257404766898980774504270433147258903994465138785822095979492777994436085140517954228606250002651508149461566373913436208509769975094160694590243125656508972543791451347973601449277205802609114023420206555322957812607145509809002803585994868888861076754517594035534006451930163824409322522268891160058524661200286095172079236651251516070327216180715816477091158790039097798025103492308213108064314508085941827975317119104636910714901959940398655526890966019829371428452516326102000161216192101968924069334781523119389125963403971671753957899074607060575437743880387440754092908054673952465677811421468228349896265696577268342859565927737148225980592199893607230447191467868272110130293448978555570369475816657209573067026983689488043619841241670843488350967518810062794703786091596512046052359854731388893233759945378831938265883056424280403393584507759049637456132463551011790535859659197551355314159358331356137250564219691763757347295756203850339265354046950421333877943954915433913447638840536895499711219382482305135635617014908202447521238827184858830613902930361557128017508811450990191439001149143735202612620653842971833641519613702155284119664978737635431807491468947175545911430654389265987520505232142162150609389226135496475109874634142869889060788143521528250668704438568225883205685579138238323888059197241681339529723635139390978184911507423950642398307623320617729892601881486840614860688576818807272794648391389476454097421562042109785774264058836373560124430049445248077221752573979302448491140223449012889303210026353538949757711299636889224301509423222422475844534424724721809676805981741382832953902628245097105155297070438547537291786636090377717310398296416918381763339605337794028498452466113789636470812834310892548195885901142844795550833068984632412861091115936597013373985554946814817973965037869839409127235456306149249915483699187844082472661181878220009227243627778447501306385765495638647659784632701689357177449844236365064932572609389639570792110267795837091938927809127679454233587397927742887964632339006918992965622336569421057295938900657355025475963671349158114111166047010299722016426707092609558079922474273131164511556856119325807658661181058922743046188756846584555809158433016417997802125860639400474308209122117388417111426254845613949350892557626030358362471071926968711748199383934628855161660086482462482484017188046834447482130270483997531092426940582785788453128838845409280366643870130429652339016355428665817316939988928808695838885150717796091934641525199582624882892384978374568067266168790336177951059336411784734177438891250540832741360961352844693709251093976378207808785775959555491711264872298726812339091838331375024282313831104580839386271510449967607193463912882191484426517669304424140478700468291635352040031195859233143490976317948187054863684838409974578106586274806177352593410926474450373340881815985197112637574989816193501889705006606615388541304206261106084099016358427201488558533633960088508310868097227326304552951888080992576643348614391932257755087886942299116907063417814385301005848002529069768435149540339213747765614528776689585740527283809808151723331792763078230290185003861762586400585578716142669910151989380529352341049320773348219631832074936265520010727815893544753903224751279867385489716061676772139839135161457357353571697244700498435380941461050625407073121259676612617639790911020179868446850254155931219556201094374494912676321979783197365370921734207116734372096713156800271093047633193900067820794267708363713904657479568856815660064846570392584112993994131060283417670450331363531200369357283077827410706905827883397393998845984048642623424079174794831223758220732863555178832938672378971004113136870449653752487308303750957936535104459233685194877702522410418074125496971944160602021896989489090573179140096551882264921188788537296152490820250955480895625941041643295965978808089335374002028091665708548032757747097324093678271382717225599305602304249348449394567579800491005344493146651199012112054898189101641263450356904923390101152085515926646958892160068063044690727086749953085345843837178954039669400947611984126748921767148972795082229473285829339199771438689782847439749487321966947852430573074930178204076417397264082970573710747160261232258152181828720518042134066592622245335636457667812364250232320084430086960643444732321880684809523732457533998130301924684386141483129846066483103136269929035805731810377411947710006870150259568953030149073504835517203910557352069734501112959249660759438078832147367556352640595507845338914959803105464061422253059861462723477852447812270151994882528681960063590907210834416719947521897664657950601465166433033495617574767458247242543046152537654792882510505890356010149124172295081939909078365459785949654545274733333071644642968771990864550912658049217233272799603038192663464848209051893916621126993204506810673899968859290391525578828936741440858833880933919024910640074892945559626702779744876778181895309505709424188058053742233605052235215837669798351360141321818995120089397446759876549984362702382412249671018383551013126874238232686122196956427285061280102287518402590507388602044512107924323001422497328706837246078719661415295828567119734052048712983248205335398131645841848866256512978747749540798577018611569407642216277185253856928034785805689376797765404142188062498772056739483749687927956229927426441862651917799697174047865672891160659836017658725683239795282964563802277117280537139381269685460287437212412610679511319150162063056155308402465147609339371475367643315032981211487288011705519435262527967109771603974226139008665722080686300846683330531209086883764446178755946520836709401865370448240599409728056820036568997652668007414567844048376212534631625132845847271370672471588846798537537675225870187646058492176831607407177871562987293194264541691015619803376535383557222326569389793148849464572033422110391556792074394183531370578869463832422233424195583724130683188940019671167342783212625925341067770348382420048374731272658707157027821504705184436811663796707504551206252547542185916291380136331562417491132413175306752736517491469539371250559228590501521664987592167005454686682807340397320668131163654201562088125460622325925151437171789259160582230752163307055623468422190304455634199753413786109540276425813394495231999932277761812915246613262331476178466709044613452707519552377919091889129326847215045814922152527552800263751316930780053914275956411427630230817378437869135015577850460340262001660007081555239376886721800659108810357704447769361511718479299252144394161739629954957655508038900704107128030566633178418016271909812025719511111071483634733838302017843122531298606324973181430870174675279835016850443211779125046746510251583631301619801583140493072152298466541222102617427297969603783065731085131400320414959058841776528004330084403460105908685769125030914869308057057930601811065411063047099552256388255737327576168300463943694578603062649793237643035749586298949656923980357978915547804636944972337772453958318050826010382825977251117490626519000098839804953886319518545587999104185108158813679594155022697339565775313444528250115932574272488878248765971068011095341888900745200228453555260778183585989630734082424769807558542675969886863659572753071028216602394470761410969506821995765822310071423496897598700453431356226624060253487937743502332849177399118455325265065270823841846099782685897519780171080010356776292609844532859263774359101038235093047053368583092147070591984126204339219660158598082103360658151233225840438661844269798036574026916922567768321783737219524299012541792367228600570987841981891058563129628375316838838015403037939507123476572541124930716067143459635738945779014614915022390867763596738190335591695597474105530574408393332709771327118820713907188277627027826375252503164255027410621107023391325763866130472030528662686153442175201830313026334094909910058512408173785508489825113010805836509661279024762481853532698469566747945516287049573776094910521651291480945716516049215907707873152292052015454516988984099495411971152132108903305810822686973269620682349630538545461573085189007196772793385307220844330614185499612244177443770806690208682972587820871256274312284017699786931418350950056790779363177079751195691956873716869894065064775286674724265916998406678979321707842896808489200380641147532977208751241472591779544083328278946765728332019501202326965790827276196268002362978270635776879969104370277036307694079128517716656189744398195460461577488086669806914239785669849103080083135131885322086694087823680631542479006641528011539200703396638936904687573551967061496006096127478740947456942642780562113402621097639639882631599806905788553920331933160072828969021894001844365058539309075482887681973453976302743750670435756230521481914334967806059813588171446232569678528596171266742180523327848286790304239904077968662323231672757918217433614337119301534756542259135175148252212580046069483218018340124399647640805720484170109060259249337076189048681293795804541594696439360388175693843759988564245774786519116019904736245397638807614431968585970424854558151849887822727008067229920984529407379588552305857594742735681461644215712629918963926405038185492962560164901757366898215200096109784988963706750511489311001305787806645742596988958195637616386984704898662924171925568600558863437362077620007411113365919717849199946022281228256802351842633165745673784808782919497787311141650251584426579176554655497852507063432326396009544490544723910173955660274669801853944970692095251196986870201591411805888831225476603930655027693940119108595511322458043231495635313642377973978400779946341673638483307004494677241191686277664185034261020920700486752790153869789011882551249855823679907470643845709060978927782157318185208972851509652317316043435536751107550354907784872624083937646546091847575405924907614479448042605293066637392035189001450586685069647734561160099390142150973196382165990427779040696376257925353707426037473705748526687635149742130825360839765057792739705138979219508881514142766410442413363560692291016319976765792890852078817312959529795386328413380181565195433423172965064518058287906284334438905678061276641985781068069927270930619106682963285834332209590247748314340909324754096362917547381283342896032658544059610214063897015398580353027219787076126752539637657112586308149442322302935237339080453453317571748156183084769954886076589452597388244007207111769345498289995058047482058392106714919737334813872634154075837898891430282637189719805983784974914506830349543727934523515418543863624392101617245173990243327271400622084946404326238071481673964302350637600057774762252696520860306394571030341113603484449129154622517825863166917506098699532690036040704955101019458343601900155449626875016985281708042654672565096267135193436930574640068304597147130635362629245197801266336800694609818014139354259530521431169739209379156819543348810208821485973726853319507655559747512499557546136255143267795183196833401349424416795685024961027948292438931457198612336845849678563186927238921249036505713332055050919505247789011795071933836376983761440068013568100669640020974844786291671605978751670447638678484306998159277058799959054228839205681480299091117415514107144833694782308491587882868640254604086214406085043825763824361932037590605379201995101627898876854999187075452550142990749752972877210715446855634364747278538829974027852467726600601134941936051419833142302729167563083955618269973792798149353322212443540757684132059455688069629318590359983102564880743348085486193861855014943151345927615255767920463896794415108333797208837165592900791718940242624363565300406545453799055981587733401712268620738450451634729839117756961868230382052607961258061149822924746121971074105284295912391964733021986107272511559974535870915986010863418683705466834340090238657554062037808987421475438855677829284052468010491580038424206676052123007150371069449091381189954225553463185370033451569730950210167876035670227536985597994634001944764006707484792279858242872715507796678612914332728223551760204591687447131905716009728081363909163062063315074947534586568029476403681745518810083846071845729538781607301710596297420633769961810595531154611023121380530020595459286627156965264413939035745624272238365372787235058366334518926670944227081696020523765605030785120757510540601773969078693916004376923568793132544562633049487916361265990452446486516088065046904886646387110551591716513137201792474531784653908478014919438694073777327906883429723478507488377190484166208130700166042116890031127123060179173744642399819200376797038858078187352432839721447680828771810713211801326715882803783207759350676360822451801035825711797608774813032750088529339566634156651945498532320968636353510360346381404725177954071533649907510131794316167612981937920136590887296541263099975496744830236905250064816472860249585798305502745887664074796835316221394718585877206120741034937757859910635386734856227595991224773208702801670495654300301261727502407718905061762429735613285006441985264559217082148439717168761015962320907450346619855031629201917869291650215772587006295060831922693717499946312554645588996300173947910235004451822802994928325709987322842959624230207288587584960280687116612661361896640718847781494847615322339651445855482027558531861750571948505669071000763997780320368039127327765526034061132136711803547817424741824891835867852761886374603783235261719269531720386908679831085098276126523485139707783744337204812600280304387896907664814227230192639145360948112574611968445632717706790556679473300111725326951098394057782876300547900138678521991466914380966131431579180800331587291529969470188301434934948660649162335671615773965957748271694169828394544868815067661324071702949032952499467888148549229841310184134954087251276794279652954688040329453787674187799610074984141182287409803486026026276142561585262701050973419664314012856767352116442491157999732792234303475494355147015078617271320956036423613564878706683801608734424542127610895000051012802708205727678485804036938997809852310311709639318946296527401286144384381828279351711489209672288719159660270357630297233385804311568420122632768282910176894463985294487507964027007706109272783180915553062496861033182443927918029139106631892956714163617225888502780278202753564524263286190350219648550990651252634277285274132141601648407654670508103271970090824946107614386096383562372052174946283264132652730650189545227246172833803226940150221995816804489854917833966321390206307753358214969678693804893929431063528532787834993814471839664932559300871818140654605549617478908171247874554358777713540173044799983879485050235854991560657565296784866618580352509117560402691424379398180029882750559375635309819356504750566451461613672381527619549040954577720380783689583971857746783623981086468456351696755328353385378073890618784138701011250515833529172547205924876816971131017542873109647726768938592561224264788132481406612732434324682415740757017665375180482827400605251692902949969596167212290978699786611258485634408044273157123104416349772486843209263974767124644706807028534749133155483773195761960490315781515069337961725001295668855734648831650219007540226322409272747666210681499416007497156646217127486808539900577259586620321493983149945622900216255387830819780960312445518540568899191467921721031690409421492139876345043428092348275696362748928079720472133238235583893726628323264162029780440887028356609680666702416221455423567629574400604920852912335209564085371565303414771914173966536938848758172111817838540761777791150610305607466391550249813665871168209881420144880373219861020690057347327893248061418817390777797735975439396411397520985955690578439641827205307218930759937995469863247428532195101378066685959055024250554489502941922021465334066793349419303674469656665470314213778527372503356549219588610316998248954786333225515874436013205110656530930301607222789949482691004996043407898789091635043376937958189412411077352669290647509963966265289093144486067728422572234304567369973585338531151817335795451657602288606228937405684784496050567668490150755991664819491445424788199570463439258194929183618538166895587975371523873786756777956541504011962549594237545859867241058096031959192511890598913671776388830623333501290256275157370368076083021159980164312266400308654047736017022786721890867668635426557927336781127369000981458479936134915444601132518845074421502925027680556478851387540944781054246180968738221299935791403848758707691820545026991398303347417007846392440006927442874267867087758869893378817316344328271614030358277660094975605434817946246481854532720366374062768531792978844850461009757730434980004504034952485035592034145781306485127621088561617116252955311481626163167283739515462345506677315215271182928472748989334994621031590744246455476097140783087944326442527714143262913892929280648039692610670957228258894697358843255994864851511885485543269795036710082155363925156333815435524710627628928639469640889104624594411326375062744648217516456700035512295302652921673666601618067076209072511284911009613775105672597334032647450609187724625327070349027135348409268429394206301579807311461693571724448133773724385473726571368782730395810361960510025838626887107039810802065449509011402619940248081553140627552845142156700184777810032110780939693402861743585338092424590523494732728077710825104229322161376679233371284655644429328351286516890491754076771715347344680727866812210262725471726917446060194160740230191152889197025497829353827928591865355192521882304942038437839542551759723209921976278337708645768639022197735633858976761899690504036401645154837207404618430667795920430865165676348259836813449931548600796466642475718485877407953618289584862669036035820410127117796286519742257520178507971892875363245945057921569804991354695238038608444742108048592469785241932608173623921824664709444013306956241663398772901039217162345903925708927593552493421009261073986078450926319897320251239733668551702154910075488242483226825971872465238753236277738509200787632138094109396714108137627033676292584410728491664512242693450408965412827295049469083022463337295857582189244731738053928403097085661352233355127939430667164999485378469527143677151665606552573004828766588242816780740820005205336036316442927403941968127367049612379845463091196176041609243555732881419595298614399195051309828809494056130190623565183326498638988755294079652310525615040196108980323093564135982805870004135492137302480726594064501098354078275828216366370501815833277478661443578761656430200721114881814691717595669400863896606519596955429331553399099450735637591331537357061709701198834158841302119722569129400648260031194175238109320423881944253486567079944512254531237789434811658451675592810947298162066983361396220367907344375538311993261694689440471719233436181131205062347557179863660249391046892733601299161216706656225971689074727912424493945464297340277592276680867383406474620409733584176870770293861412948749017937146851279499785504726393756341206114636303932174811897867674214667683543718555330927150685595008498545602323136585906480725383620084304930841335614702521315783812434062199008112644696385350134848951903328380609473746212337107920981659814827700792116773065703844744851573659587310073355153811337040507974191215977643562999430204926622576613679074925141701392924416361166326550967510520389320254306934539945919575968775467404829383603758141551368871942799510379398143610584888042226723134103942390171436254685606622629929363747151847174338275945818767152251762623253719256715553431110434576784827925512552403843967199716485454461577331843271658559252669073329355314441689480621033962701093991421531061143618744260007982344692209766120927902342976198837322659631176582466648591445414854798352784413797496031651534145128220662997494412182551846687771510718047133524363375740950065877011807080845583576835468574951288888496638318706931416777143678217177767004263768962382498330433354025063270175417811935573012014438177925602133395000354518843693016790358482436465539879320715384603083810798049966025510833651945048364758666732215046954818560374889640404945546159327759239409147440759582996956074394476248314778934075032448289761493875208720285213530288307700892698481644454155509912863792097809083990343140873561773798639335240047496223857088637672314409363226688174228100160495096527710789786905336929460673487072232467457630875330069607364166560253486537221531382443768889120120863472551303804214371877730386455826770672244945770383488598859975055633464690578435965121876956586051996276948678113857804752831535952009195176351608148427215752891783150362174864185485425175651097659753804783180229775784295887525352698802394395638989843368423163000346435952469378891395028839870883369693205392798951143961904235943967635636399342678067009151049576334714223004917650239245458757112675220451720580089440408200726242949408870684889481138941362950290280178434978722161264048079607059406733210208148099434259373359835999197073681560721185688599165590107981393091454848787557737372178235699664091162899737713003067423392035521912931568570984000368783895577877746579687074737020048770570225946619378030774060417498776526324169275501299385779397345758134370257409726866534251219021297175201956209087772032636378522613078643914148116458192887590326079772627776823646320001097631841000277697343959658270359640962532798537548065909753322713624686131889662550177000327877457837682588394154678327451077247997710424499809502488470245223456553622261947127046325675304941540067173929411735990693853803509289255017517717105988895546966629845467273381944517159290564518800258175437812041632503141570111761581755161875962384324024503584626736255076301327280182849653149448967615448846510152927710618314868655473576620867416297957168117254650998797062963814231916529117207586201768923397473311624265575577697409016108178016672072205769961917992063004571819234931843446564670599161612742030094220006645371539256302445361683249352807832773258004601071745402091769201042937814030104766429591481484823987520096786042525915410662641933717340253848982136434189434749034642127147799070415021250070909058889377678673240158896677581769003866625281016189397230473636164095943609856103042256971431616029500368242542427375436735119628366160116197032476003341492563263221377329717998224449455598834290642051664349292777330630622059223485155418802034356831395409174312168007706322750858648096156794214011592483022023280459976774581808290825391329828736349365417354812185509237710258652261131721861711194961080674387610978975886969149920205728056647376450250687135719734009886931548375442129716272030980862940464530953427146633236265268171086059762204698372365511192189988084719294652254789803917993768917209520664368429379398665322432125998532732132680223586717598330814673164599412805376079252591756100070107554113298574100977357311193259946580756558604617587862848849435635340600739856360963079996080382416521189003123749603660215187197176787785117684815360920174769952810853324417516272072798801032079215729615579334318797507081563513585188296829581115716330461227535978093947273431072773427670575745879005233219917161017965158183819211641675159756945237906065191168602604834270882126817893392682049767200773737560044323238206161310903855872725860336851465372261889297677966369862614311690139398432935909967583463305810735276830761172325159351425709924807854786494516679272420051054008748017098250209166989027165785116340714604471029235436227670226949392463121660132692034649780637329316374109287739397273885245502348346580375779411522737253127796238579144279442273567762202355921571949629955048855752319099548385173229234029546015101490287570934825206632005992324885544891867718355633500944221566957931485479466203127820915832568467872722208099404295654910693853555571950026827734610508472256592508619999591041255186834803808604723123968043951807191501097515685698340776495406751920153294997207209650362648847038701356718782291522907212676995687164293438395229177635371382501864374898036791120811233305822877305050167778463481937441621514688690310309932374198169274842941375755694945149140020587526745371476444570875540569996461776978822202331280529632236385281859601871493136084127293361486038531974115149449397926781767017445747120445573988830148828558337036527892642964358994407140182079951679029821717514535018748888883209220580713990460996530679243904364761816329564419222185501558905747090132482059899075216385495456242476255372904928857557400785599087836367803491604854627849341038491744653029211256241807815584374389949961556315925757591168511517570525816671435687964083029508598211099943414977715632117662113500018747791938673904049401547499118704001378223945269672352478323873547392229074873632083040932253021099970806930099204641054976611600171996209740306045697489573190787758010417750771831363270140200037022709166619655724583169871731083528661499981837239682513522638810851917711654742534977333385811317205431840323090684745690972432871432221233772402788352943395320038694948789382097212245157380429533439972053766179235275074081357243169568507540886427013239667078813899054885749017872974381089205230117047123699702663968986691139909937580981404319987193842001895111493444221608821349083837987498011155397242265614516615617340773228614019224543310270747203756937184177002641150270130889679047232673219424571593438225939695707448439892359085281304675971685313082820570980874458035343666443205481364634965510105651812718727603801845777191338118693524975822111990954051045962627465224473985205584109220641645296034142083502751292592550665779402640411468109095800850962396646094933970537469729528061213196537876152173761979580144606230583928647290737361074868486120160772826728094312140762250581801147242999139252677979455074409363076831168844105162108926448532905718601528715087645087879819883199598827528338259202852560064451389998814361520145520143990241755273888009420179222218139848602068404573716160681632497121656045402214677511191970176210136874789551609700770380844110393393659914739773646981791657033605677949061682471538236977912947118210347107225559497119784403422931574286847919458499148498738638320843279576535764132094308127029883816407781124994420971009827206677927971130661153427137198085830076871919055807949403270535949216525777993824231562294622698485924329049491722831772348725352550587382468303063055310193691863353969510031416046477135047423347512200583812193166666061656462148778099327198215872864883168289372460682609311506757557080658877628070324988475442329530794997382953479125257668110758579461356685743075168548665611421480169690270449534600046078619640781384705408806850250220010556795276018376370125040740277443622643083024706169389831488473208522512523261942821853386757719487787683504072731822437809415099340393018698421308888665301702773330251294601011429586361717247595764646650476836875299482636857503175462619715643672180530629899886123084515316696925567088295213480425852960803943001380714352858358374375525717270356686266552868866880092029437334174929350953444844632860303948673601605308385340822251982667689577315288372977938846201654630133490210057854686590971112380074052958672608425878053353074413389935014878181776716655851799007976039832830015204004753051966879657168453107568387913994931886848614377825397262519410322790536043503787850514424413860899739870699235913906084696025186595211757317292614617757392754477536474575728654137064568474063501670087565800018844120631697496961613029622317143790095314498982801097675437087958832903442559103297497594277479891508359279034575896452720577270697971189936287252406856460763091166497253454494893013496391960028480947681734121123770408724169014832108316459171362626390580001213575936969791414008895443407426738139008336062221982150318008727297816760149573742590722681821055568015248458288181828023122036686231765935313520428619576760888017629519542209857209920063875641506475091438716441554635444503489062236950711993949564658232807199776525145656845952146246695818087602531277746287320027388818530620056657592581092956898262931822122945341659926497240701189960013295818246372328819663228595714166858431591683407784324947328713733212038285045794921221572439195042251171032488421276646013843075959073283972662291714829826971764214389929719525650885947276892968381722378974709781785554191155693759209869519907353437143314247824248746702352020874116526148043839373391119516517769093159087311701700077060931072508419513824817419560918871573781401885464243606048165835538654968937863086040599284936098598043675049007783951153761530848664673555531004344038477032671943941122331542459081113880707989184963712351761811961351875150069898947947151253671579130076759759167424445461900791507416885912900167956125190912884369154987328625859406014623827275652446041654747344120376377081412576670997619841370748391884624917176180214117857618662747131250353768738677388903976654642542826571545878724473856126537834790517255734041789041519889137761906054323730223032110684797653018846318192992097344281938630804604143457328396072059510451855192301161206721013034369599531329868294438558895119093823417746764285845359479664017588009837840987631371423763199163815024055398232770300458038209895555240250630366370215657045472590220761352189126140572833538488483777262696908787031318579922198014283951244154250078814079117570877815858914285927932965715803868632566689117820099244464769952043469403199578664987857366839759339550089926530414028614274164817174586887149626080669605789323502484791819740465529097186922077940224471081096756713741086323095700126464584605215650679270939844436613051540160177278346328085803544986187057376244259099183736660789101754148882076567698482856453166827375741991752063326243871270190316985706234096465175994504050993054851920961302640046513988372222564364505484383557798774307911482954628252246788779874165356152096212492609336519399042695638523439429032006352331308875780302276188846643144407780421207952064434113253480929941124120605438055776070503218542469142722577045772440590252694657480273627958813244236881850144760050438246561798491775886736176177358162984752271186947868106312792431839217742460971145050395347994054333345517224244247317552340075517420905648208442836685047745658961202925535883610924342610345717246001466170549677553586782900622673198625805995863352530799735956116758289079268939187569569754115940369141751574926785523074841786166458839862002646977685018307298621113938942541417316254031096237358606214778146815630106989357599474795867702117597887119835555542005014870908755750747028736217041894964149096515410447976235309559858059477920252450084456185289590320954161834928599306443571417621096385130751773683528117041089398353131008698359469516586331279922246754382992586866487554801512193742030136083620216299615032435286283441197601168690396523217621604939123722091263252211221015503199629927475088518749776170636968056515210875249937867923644593250943440604504985341750353311340802371716769681156060260665953414761434698232754132407719863787232064944622312945034349510987456247555758277031570297688163505679252335646212034188653898799786624215167490364183152772640673405351742677426365124369932817274659285602198391219567287721194068760514772077654561590649737270093400179023752326279910257416056101415358329770321587763713484122090559297398674263327680037640439120809171465752627614672308854379671439524283684724797531788970728264448881194316071822488229610567242629443058224737481979602190023075491316648262360113262186111366679011246823869541483669598264089274327278654595784369293972830777909230205096387764764475568772725811661469512880038899301653324780345442025920625651528999010945257975181347011116194598454180634443879971016308835708154646159404371891167300261045828549183133973671650488044701517703691427010546278635805084350816367804487350768566881506294133622636706877559466397366400083543329847501199147899833618097847324866339964005609399837244110413062410582849013315996856310674446260126422264991317314509461811915184279634393325999812606125096028370090244802014531669723056849442622018681124582785572185708092669552952053989622893382781735780839194594744171653086144886775109532270247785956358694662521937374446966215574465959493288390002452683460823788352164336354463851427918206352520455089784894912767356757036180596093518264362531515648972149717253988327341154831436067245182844369218745458756879379996731712694325094682801161632815104221430851883012934541128955705796924286087705079037089409986307289453336045560025651804275658468867264385301755106995268201329942369432640679217366803095680304114347360325199605335807850419114476713214449750589659815821525626484055373563968047643154076724664788263229710366406408999089652146678571194740721537972656232328021847730255602272265106753245774460042589127025622649335569907076669871669942748965200575164608932572538879201205426319266989624255435919443371735312168696925285251608224053465575386174463853098410550234881139926984781307406310911041649933417784752151231450172507747404118151092373399342097043290741899349735009555690886823709105891229745164798157365113542717673946609125541833690985903850130451152807391115825073458717275465163787932822353053970569695247646350938863866225697214551947991816866083883076872907745862511463080707609169220476825196438028207184301103595498894946316753309466533426483578829360955740665361525981271207231205505971161120714642340959236758945488836757573843651657791408382675773800773225236346722678082006154500880096499166329269835964392919368271518800830750864302606842463078093349327865872538427657148953618379499899084785407498724219815785882464998724516815867805532942021364180207100051749439438218290260430215164917177422675395101907426329464838687918006599105144196937050124617836147569388359390356410658031972214756245571651414550298191635390703122696671644233712403628122684318331130031386446430732706279811459994635062134214950181869377333283554506354584954827601816845905968803225181486678598464449115865011578514741108236495769704286311854534497207176962192487624515601458557579764974861899311986796803174385406242483926583594555328691989090354286416012704305812773653477577574139450009546452961150631535756373045774316885926971957873187803206527957816235134887788027548236864379435848457014853325749569615895594663499424947630577684917262422608628855118403118472140256312994723486537423483643177109870626557718574985875008036533148965249566048076141225105050503649612168121536330248779191449744371797707232392729689919370675848024689205116548949052703459477705241347003337049388772820019745100421975914168953882385243521053402371161359962237589587578345982750048041529067693556699411281224781076288311417597818041958181092784806345874732812026945288906906760150833614068052264983871345697795012989724896247453105610685370544085245243937098465889522198134042423427965332252434722670642762223888985146147238276445816254615359382717437665445850236588429719204981585664154099077010823058825027172937328621410497397067960500345768001598787323275363469360278800766330820415604773225522200799350594102890915096111407971535630746121562336055955431572939618185960325091453422866628898218182694137645982626420331572628004949892265507605140940597156730981185765588640979396150993157833529295043372550993418542942406728312544381647858448276075812060521144838049767240994527459431601846667619826146404090153770333660666199946661857613360003359566274398700674502810732487417652311794336271325577958105550470339987224742403499277657644692594525818062719183520313240118041870351775668030703019184213830991969931242325145834663229731451195787238554510393709206013936055739660997870155299248953605255827382677062664757544990975165036107172738492323249329974698257151851600127731707521790745472426511250426854923225315948557311073822171301250917335755515566981283700903308713511598931597934168800057810680822421028605788444179671316849041660875609618759144521856562718895972122646271510935676920934017805704217354848186753975549546554035483971520722572324963101341884153391971817612615693997086193841265987610833018898349582730847510780463435028905754610099489299974408913962723226806008739647226773366339405049101960023794118997828065051957125086186583148645026679567094129660032416991482567432422003902738215364287406253905778638476735042687626783372704702868503931033160853777079705112076860303916176145691800664115918180158640148063394044900479917547598109804823988367198537693611391930878466598884563294588830340645651403897407980930835042666835277818255302587503324765233922036911234384151666122117176092755643420241591833044732702158710433403034700499732888850853135326367443975230973435954205640421264954826993037823765455164736228128604922426376467017076402971305801672198854323526020778361577875990000223702603281791537168074569912013312627574964972303480584753794611466542515842281121396477869238423698185788344008076936683643998900067814513248558882273284138242400368901633182852990597571670599407548729632638373948162149208940814782861324662280542402166931690076572025965291080851987490750170943498454162275936521459526594163782288904036501349690194785941870119206240160752351843120399499522709469076894715705413868298991334669452907685698490558802718830622284365639738716377643658176179619399145033618475510913495177539103512151006583188596587428211322102252136502566071008681402335024713942909217582833302181950921677981661948326679464419550172970101465344403321327643350240352943528222395583058246894598608657149231154922004693668992249690513062209227137982631848331993275447625442561643285663521956583657255585060423339673588525068393614851257018010278174564250605021323091746367477690254497370694670398468800743035026081169621375776939909321223000981286220677049270689172686860805975129504016973568926474443686313246902450010194493271558060082312707190997044558189680061502687301673540177440597252214085232926915556123156003782002666858055412050816740773657106950547519989849916685240284278933870865797454501692836645047820694181201713945501478149052763396084891670280213872764674870993671172524203694846754031847282947003156630630338604610282644784577582915681515696174644188105093694539167907418327423937116853089590607799426799254057197225612272288681866532578636450701219966369104680577937063460350706657183972557312364598735565799890721804036833161708782306536900048113690103317242292452220099862464211025963626406862844813656918896803542911266219067738004222519981929055406295628919085881105474513872044826082565708054351034298063055004282908546304202795990263951724826739189378448278910850115322887492305493647553109573839757953709661758827234256497034216574937874761539062312701226646275458941147559610049604901441619190182698777788788390805549645270712179987100220390512802651911144970378222180817431032304155798646729794721929302972774557948323911075677648368740064949442638846268904086938802553511826951078643761972124937535511338686032630762009545795542319000389333390355213092865489099109212690171737280332998770870875488462553524903093760117847136002529731521824902860189102921979829623804354006536053713572562578151883437846956604045556524983673199633435937136007407682403562073109562974244451147425102460019908552628931071063306778388790149104758799060638213381470938503012180122744811526852512644940128565595995094582389259050682256285557021424262572831851190254371623484994706880991600231728199618361048977788977912240417067058519186614470549270333655820764151413210393514019899595174778299267596984186208476175874243073618980804938379916926813580686140937488960997431036620074515607060988077533732939717845004362661592238284138516355849089747600314776197956418851807308209167956599525839272207990291049267312964576918072283022844808796301509376882316987922239110535532919190814882027026885144820055350847647754994723723874341702172627297276921585564446563424913576057249770951450475659285357389894030139770042244488948179839539457830824936408515600944134218322958674451452299837264321708397398014836909023262657069076101512825840554905869448664387236109431797060190213356006304630808487306248229369907081936747745875164384594878867775885008768769893737564341490080969684815981216504889986259730214704021279126987071167955333746573580983442305878028242623194975831716002440321790945229098720267427845507798505586281808316104743046776054194773402007980544528937915181274808353772801823861638117181669631914815082498550909853266652921525381850873370060206408438361517056113482115804245018294623635903361177414225741595382662872954109928592825694745100725324939942518387103543831912014889970077028486489209857955244513784142130479902818603329715396674513984488691634178104182457963988882076201360467995539806095646414066005320207270475549404450481182912710013704037735294347790243012517172176420390461027931071112289560995887902178844467593305807871314049134981097686069194147731946811781353041335948727744353570969319368558348741071371059687825511449839433614432157009517377605606062421335780065043112868991529534742842758385778130544698483047638276356131728596275556439639472681965741621481247571567969213895578129905820318692188253309815085405263171755693840130529006933790146529696753122529023631040749779582871099678406700418119196971781036573054315841947427765453958621935188209692293357108281992234395080340113182118574997399973313933798165481737252272698868151520665937143171554675017124774168105297143159201235093488322381030638379693565042609500058213349578960942595643369980015907056981996491438573443984656784064019549486430693293412644829640904920474582940967504411297456691468141695404425462678566518574249074922869623915959637990481435784340259530844143620307731511400131394925517237193048662849536300668771729578231480804970943983405083965111557029520912086539065209567584723998619488586619556401069738640619928553193995146992704450465050544230846671300419960957018202146627396854107088165168381564154279345342630186676977675954464319242650823805183770946508170859163292752868138617876003942402514048483705060901723240661265555727626791517021599284924768809233667976563274191532940801470780437380232687388321900171856434958662902418727871605444909805253166913704839277067297491580466634782332280997917020649758080951028059241304761928768381171949041582320946480028144947538275015499848678715803586711679016893450219866579576116199519581167351730280911112196694730614165344046073408559878358094344569643428046378807577251724592078127706328892439793792899411530367005004721882361886311573125312279036594418154189605487964501689770946240198060228461207899667158740880388523267161706138127054327043135922943265028332677585903636493170009348422014232433167687827741562284005712771636446176723470092696761714274152849137103947916858488383046924774743281914679065786612673677187292400395743644667094976951351622381009540013586778944694291852446578471183177515477625073166267423008736146213551637023976823890105350941543560326493611070503922660970886246142895574104086696775285963262881135193105590481210547322559959571317324725835915221297955948361625455488559909990340567983366872575456155750106814825099136951136027470324798730953350634401384507337026975197091735127103545971883860999685965582935409618482689165243643211219343634649625178989352260300639433111365341881113180855045003546928950852563727128147005513892579540254821013995246453118579929403632068658274271055432491600957241647304069806112800047916377529980007821774397885452756664474634970953401970533860622448943728490989024542960521862588981460145659019656351325705424342859622271138898428027799660569838720706537105127758447301280858850686587842522434992369058279507792279825665807120052311500139489233084516894958428172184695443998162008266252283783504463294084868913157451707275358314950197015310226691685103761886140310772205092873548184260734809103980380344281950775327232145293777580012725839052164776824577719146637553935262481269467224633484318005323238644938112419744759780082040582451253462168188798563908744463035954772805458491931222531271391720545133761273340618903483125742268483743458693900988264970877472155764008772490494407686556699886059825763588590174280535531453816537723336303799840134500071002685917728463861244320067001025254098923394611269289023342593670526542111496764840624287608297461830187234056104667854447915678574201423260905725327913197480038359623087802703990223446819257637840365193172435562855871983117359188976299215349611567339541397598715554300819011637609221838711591045989553907335938631057757985856383787146844781802459920829606377437081267174073111842387865046488875493621513884467189292237558344096562858059762030690117449992870713631478882620956294429481452500376289943190887228342561838678163753822277654583277437916759766782189283621015754410372902259183847578067447098750086842858969468954790196525331684049460974927033518166249111513989015550285433706208723582070159620832814471640602721653633702350237278106863424281178198468862438103011643717159967224127028521151380400137167683201107259588395107862738732132029457753050389918559024539141437744589129788697502946399821559533036013649022558185439775940299909633446851313828519307882024791552296082503227236958025948067145756518120891563633250686820254945030963032258268003231970183671894016832392746783734750688635860825157931569609520935697371222765753131094484139327244295963930480879555787683747911786572831811967404750133275667704148588044978368576091003157508179170335764291062664103162640714093890463056971167336192574405621488862278714307092825254203135488834150407591357828495577080489026120219545254982009095508583426885954869724885727455500895786265437387481107903631176401444904906315446899132746649164113367739343581480109535292662144121490716176105307788761517265779296828558095809422144354384287794931605232547270913412139863713736456878862559164105763236456744056641941448676395652328684011028552943148322742143182893231630236162392494620640635726651341363571812197996675407800204437971484933217170457207497780267395152993332531810711839880003633441473159513124565776084897312820237534037197408135886215042472081933496238232478378404880190244011863607979167154278288462259880337287099022956955127054656418612663241572995520947173778693312244455636927045608759250182985134716974746005168358393335389378654368657357032739763260892186491528753349867703781842219736754173101869715949945103806352419478020364851444573415212259651677925121461098967174241282780952850128246088744182748558988478464923811967140718775444768358938393926387637662255433276202629332394571079035993497405153830921402386793060493743968837029660520318909762836678955905636385245079205582666224583185605356187453038156135931587913726459631927710086514782349839576269285416898195877979270447552774303244517222025921762285833263456307783879883247170230373665568226202723359158222520975661484623822182366511161108713577869665672036792644865566078728870635054921571513748477895875039192837534957431614533552979618365344219995051952502185881920060788774617399021853708250875213698160950424797680337217522190647347127642956833834066819851396529203781115155195178204267102361630482110502416291583805574951179230100698017423488642355582558679503754966950835115919387298332098669231590364118596383193828082400749090351710287184442196386008412309876776713616519197611501779766452708305786365814361762738587485435984754560044475120072848424257328724029418949410069521721653197711798395579138417617606090600469380228254220294324526347422354828978867427330839292750660600066244354258515762418331749635387730066748974608012345061867318631536152953812133369005837235174925193881844996989885631633458151568724827585155535440666217842628929723237590940473875159209496956353140875662046951578166695007431140546140997847820240257879586748043237086050826861716726413325522819802099005701095257592513307620133786939601253153209563478110175924763985943540824566700557193091201806826147614024932322971606379705547969177236326884840731591753806246803759285361842666617369350331014474174200703653402267181125192648890456978377603679425436138929666844057325515540962245301557715683781405658221919615939242858999426939733928712415070302072831040506525505340121525214979228194492505522923830729502108587663236763152164965816623528126470055462657700219262584808717070712677257383819033686405280857135087277187813296797166339491706342628047430100568111813524218204815433230475666477446136303139082005890091768290065607474898097496889540504890436138562330271508407636275605841847036315218441934449318660552452000775371012905823105722654643317272374679287518347778026337394967554864435309101401822768850237024451847408360094328014301162004986323545099747699622144409326556458075377946203033614516350416125995533947134337831427362831957153212461104822525764156562047712726174610810598317314404840801389322183424020450711739173762587068320031868914583687110183275810219976592141228363269077081840733680674155642264933152063624038199264855602271704144587361567641841506187695840717269452909255576080818452969970347835858011411111498983225693199965569275006977332676469527186001005889035188229544897933422011693254192829387758625819784617704998421925898296251748486271396288429866633471145523712754655119925183025273678403219478877962279892820807063723288409123078915485152231778971368019731489793796021283663176519143076276879229157990416218533361612930995778390492462032077582081184187713203518321996374728715770153444640322475109795113587880177481316971046660401831540075616548443442286001560474188672191353860432681373411296974675887357047497484718335585972334585314116453687088307463473460031091544419789976342845415301122223380155811084003652597358975790206610558589461960602025240486048845765115875537177398597868341499526314075818574277764733899854947975603571613731652818321769565736321204185134227287312641208275016941615637467032360287445723464286814715235683918013545044861529699946256983619371193589564663969987936815992091523670237998373122913231161206124263329894465497823569528010368576640171146894066591285201349264684293841178183484042627851334996506735249978632563721167708883730087392235183667998653390926025260896544046226177729539871305088574792815576182212741809071980819238549558240449735870329463032091990332437335026666700026773009139346452435160781003947196879159909420573114705243191953825495496809024754176007264343332893765988566861649533857893801631490286150565928162995445400132364560830125595639293187339514283395485913472420111473947991517143788970110231577906081265898988311200358135673543404390493250409157031834714175931367387906949659918349464204687247337731595629939964268454696493583898592939533003938288238328019931522269940640329130580232219047208191887782749945165871744678856879635366641275951400105491443290137800124511960160950216218365851063662873969937641530326197415243282437611376621197439839080771716933418761402189453124006006912180829206905473677609305347524757683842586115574357588516634076003653685117204271799611302175009316589541752234590798091699381686575549358598498982388853694388608403683731916077420280529283632802361024019700939810456040196875000542823000451202632017615062636117034002451486247807916708603743803459167674879264356134987536408988572035934186382799354217699981344526389560076365543272567936298804186555650219398177932568845714057682653957932502685585583722287545569911767839308733610490419544474888956935506737110515139865055970995580170422056278484918239050375833204731790272695066109086096429814874309056672158391135382149686229834355762693233345587327320475806093421664055104656713322811868569196388529723405644350976233250849487253672645033299446206735079548197629041955232896214548100472071156519036506184225493254295229836022746068909811814276349934801153473933572232032898983761601045131176933574723517593823132536682022780101593235398735743357475933278019995243884555711999402424870312323317800417451366550466274346597925072704834485223104510674948903126405542988085443492662999016502377147680591763563429883113234371917570376929135847107737981405166571276837185294106571427409995724875658684358199065339545453135667228170848394208523702750542946484276007319703931465826970954991918680181710022749903572783977255659062604923544143374248292199551803995992542307696137712828390984990926152248890640738351476265236098887528475130676326083622367819938461204903658000155148772772649857759386893891628877314057556277640315000522027788926732353694827607553652361798191877887988409485988838287002416940235106453141620383532225116767345239752786927328499623174477133555371616841299124811657315602205778184663962594423079542050931097006152379362809403856279757523067179178869451174253663691003325411446005379518307630110523366829230518365846565997275552435376536190853418294751502130102303518868023890311008695221308041902170140705565877337550415325513846673844294145977603642343643566544698596033960265395795568977898649608001010242822023333651518907211097984499846151303463342902153474963574147385995953717587315873691793088851799429344109864010148563821934750734716346743471878442461266997505990181997907014576174206830269288282931722727305540614706361287012294060546796717206171896831988828821764470294347610793920579654187523778534388512848643396780681870236049456930699343948851010084218346288492619113573178222150123224233642662022719569680566602879364706658887513656174913038992342801306604225445903667090239803641421316147762783309829270894359286101837769135419814562498620842040978868742038017719902401449390537152796207519303089215531136958436375662379403429025100503452245574686717212330877098591370270760509675116805620927128198203957958606251688167832011920600995315264969105841754157766320722746588981391351530361225409585207979564294580774366503482908634677208497035564057389509496967264569086682029044163068875412566797939881367268196964583614468214385798032506459467476996870712485146698237222268281420181665864662501904418256382113173086550208296554293545997174889540260961841914139188315531974137149460027202756434484580278252219607203820112449756597065261436993192049334589940260058447875882651961281304172015392069348019838919460316182843861355005741023300878619128353752847768484960995903964786112197502153194832195520944786326910280787952956636779187121141317916180802060189848262864725683931808992948301398911274813281632180915240276427697461113605907431442277325972191063557749074736627238912030874557635946965888535081648904196445444530199422769275637919581057115174810226414355623709525015715808261534007159202158206054980088751093675452256242585627949073322206475350172382897193135068113238146396551615027445670431924137882267401652069766159062014651681548776801812355706554678245563213864502474265691371561845160100878788587600200601132286382624475651622173536174631030712825649951222984859294642012948982351696817750090206524291551268116095378225303941000545307764972296315076932071031900861431476558673351812189747560013889842714972508985876727625182507859278999578551190138020510093529583376903511032897123112618660330807924524598804863191055265231105354974928958920188663194536552469418165147896995531817806475914720729497777089198645985205657109722271455328976786030586132319928200083179824195674302259290072722642261754012831707728136847526473777066824633137868865360159230658057209315872379564584993337126673242693928626622928978935226748742558378034451775859479161923295012839637091424162754117250645088137957726514815235609074179813973229071450089984577786545531956300686545508873428982049072075805497720349342915285750188216684797926465188213065673398244477229797281399942234347431594032648435256751028872643185638101073810722277765058798005247000419775477965718430649551371591763746388654881568345860702589360929374584121470927838838959189103531532928612689837909091261641812073946781494386768815548430796584488632904604964485329816998864367769409634312058326147043656179783850808181869735382959245125294069855606394370766614425112676469080977076814164038339510543009795905808406567541866896845437834806087761569065088179305969949475340787184447556805251904375825196075790993497965681924702846117771409027479661951036196342837843039576866214265104348609710057822530864722391581206975822006780906307447908579502599504298080544762427716860213033850331776777809755705505741647223664741467279228869153541784465966994369120217441975700675396335089431777679374225120246013659541582829092560429896720739457440231402282660199958056732899478168542653962547308550946615803739439301656531073592830342770996256274028635924788121796912344346180233567914258074360859397938773395754001480465491048911325742699526933590008659658684036965726706195183918312532841489981874170412574226410641601447521626309114172213612661438680310641919355807180765524089641480561480591778726405136618372249712734823069175586285455517709865173281186575227557302120808864973098213996893025055791078287004094315663150332680363405398719065727505488242398087851723605138554721567406213214535242189825402753626972010337524804851634631242199995168367481449490926060246709791390498430511751631257717690918355801235309335421198162246826381093656828012358722913294393308483153676941493876459609106630560656593642164412970797087971641918854545268040532954526193958244666393459051579943389591051283261772688381765461582512818882599162477131756499190366445784252766652202549692422237497624928271624813734211699107172109349220655988710492531923441855026694765337382515168388342263915950293135803469777027423763898279642931811038650010912682328420282921421364622881688349409186304995834265236449495975646703175626118791572205779000107048318960937181998949079376471361721696550195857881773015906769427774579222544765016633868558390762735778584411968035427162747724440102993768889958118899786626486246818251586309803572582565280897778717410552768897004788854023312526790466256929902056223289273616724929486947724617521344680171639188201974823692225828085165340318913044687890720413738364665729927278575588055723094162653450832720621802524558467894205342853413506759276469368190915083321110042663005573539893243939040129233957747049777575454572429882757347765182454004162284098312895775119879496985680470572712206553014246382524740564176657441520293677701350061705818133702583893470647922402421130638693229743660599613466133752534236518541249529168497533440328121071596608536366904095312616805415614834689433707331809875131319362391160052699990179636401779916418996938541758709875409497412728811436582431179877083062040792247845810970022692019980303846085071645419441178782440036622667283318356105911592173935769871461978270102470365599274024650165562203440653437625074916616151234663119244170964115569013075010554338478035631424616236535804405503474585542115094019203317209108129615607171888199352737653883765424044712352930767050961318263126206680923665598315252922495770970148464943717618043002103106672394216953708619500356782041007291647175051966620899605683360626016770513733846734606419781691691018985722126770017808790159578505160069144146084009953898126582482037483906875060324781499512973513311045370856453129217274683966804156999909352802144666322949713590360366375596843800988974260477004062533086122461149138385965479893869008642959193554404561054582690198446097708451523187057149863275916264613977373903981941324780202331954104405649993187384227590988335244109506722327615618585661491866548743438057770306034337703442076643438473973788394259807049645778790762313232589886419715173936942504917484210069243058812754573305553063587409974360207567845298880808129594493344558814305510429199245622825396343001110267739332666638805811977606904459301864606958122240719347645663928328468679593147406229023275655163257413510268856558932985677924825055490954480088082001701982417470522146511784749751302127701004585278573757098367312460303373104441136067786614829567736784328706243147787154635912234900034165425417169418495852422821860485767876468018433679672309574710741674039105026821460343132875658160502097520538303340905913818907314587042856947149851966738825973523157485825768766196352162756386711913122428649042756413754098645075101453875878516850649957034114400480922093411388596805761739536854864248207703547755079792516315840572132999215356109373937761114324221482349070415286226510703190927882880976775517597669754523932718051994627579260097049085099265516404029630581445567407594417696240402420927447794911366511425986258762465080298250565628298027738094067329220660639419679239364360641357814105427868370782894784431280414574258111510345239111071977724000856066476148430742217180513985465519548179046436151109208520385972006430328855438823263464360461340917572329336551723829949236074447098457861906446713977562662938170751954785965127566426325101913315487173237921156376233317115236810292118943653346060113372286657596894409495421286684011809419952008179746726220326153265964280701039713560172560835723833005248526405470431358232737044619908151268312972604208489424440289847982575247477394319094771268409536785937009278459111164077603661887964255979720100834489460360532794097907765946120014247659629066143050338253644566620625884058713458546851415885640812594453610860918092810450987334586433208057316694068909982398545602930753694300280377995522125432226063147367194155363643605178620026717003372754639373361266527556493722727931489862271220219732641992025141427693147946306151944038125152760854764063944625836840405279909909395431015005635180638331296957516218881114207219371795013895345359937593428847709811346013618995393705012380879657689535380439193249803825568480871830259240388111279969741089546975202501954776705474852694729268444049398337163079796369419946758498440154072143445158514631729647527375694146338904060025797084419549940676009695293128741903266603155176713689009554054888385865063176614580325243991558865265426613467732009908867011044587098871663347995104529053368855658573324154113431357372482227598530215588536687016927933533863581561182968223929490863536429584042402266961623196724427702676667193977981633599592848398032912893723055642734821064029277071153325851337434630527786735146528948051152890655270455282571081328340250794734692170753618243772893221459124746155049848237678128895603552061572061561281625289309814572333441399861022909765019056351643068361528998719301882706052511387397978137808355495854074356049538419071765648055528666809073424726673950393023739226238408449961163178722015241011350672975808789838497538317266523174677717614648653812926079710808369263491582113485526261392954214087004045717267518301178122971008523370621623621693937299416601146538580261224298811477189024337816471850387001018273988182804052848977654154322205273516973861443017959672248414743000946228468129642729792268382941921622254807737483044802318645927286863664973219223087277642616289551274694889843569227420514740757913460106355089856338844979688491741462474288641305712061843759793279237847321787949493455407003569887857421554052366646063258780838691979617029876260233625610780711630099267584591606380358394678652558850438815184567517971165403280172065801949304327063674947062098860521548457947084458457744267952859801609643766393168822485721947843837664243210056655567979130804450860650355288712984892341290517446313638443498064576382845821421134540923467239947951684614851240329126617175124431212671007528773076250284607170787128577667659860590482395840376847107929313954791657806301305359857702859865885106891131222634596871055987415066013654659679032848525376081354894662931183375375702072269834915435046223189503376318755539744117290985179358312672910376697386459152305771386277287597589556399475872960465078821945762625301989015688310925042816954630548788110348875955555774114841232516488159468489036552580895938959403356912844119075454588505609150762280312696881381033744748488337851758185915439165000793839590147130880469011595892832832261919418388559177364425072896928774214478908642340836830672167122878284657062211914742376272256993978522861731573937242003281843847877000195159980892798369848816839458834549488182817063388994126620315505579366540756516844213561768750661965575544856583763080954965296745092116210745731891277659426115525122889043698819073446198771600009125160763238814844909182919721823731676058633711413728943714829716705061416206995317675342180376483444611385928157984312387276493170377362480771312727418622747391327167530003451041075652695667562125620789591009579104848627736919218641398335045105587146913507281561102027565630087221083227714565793552923255073762879812814416708908102201078646245034155614911521997063869990876907320652510911186548430926379110695166183453239330948775982437133835874184986572655473275986436266017012447781693904758042550403243142140125863160119898121488448321517621538926745986073317176989213204582354839859177788163580772625332824014422078298575920589873697183838737287267076857892187732712530097271509876699354953857972653156365047562729771432388777010644482478793022925407389728091914311355353938828087752630605709429846676437245758965559693745327282486986714726120443249352250843061340733649742701888716821067242358652341679602860342987439015376635328597780771379532292717167896810634427578971321876934155660226327749355664616889779751349054364443945937447053813488982931695072240320071014022952547698922252085594064028450500549055530977207449865805387179623041862064994123650473179143611703695162935505792928923135590134294373510518736970164333275900939354055005629889536701528653821941136216868033852675312973065628430432816435300438507293299908779117305748628640019256030552100855737302319703983719521486835646559529230565953604333419924296966239305490741957141045418141403810082603624460943982928007394091817338783368555603820870445316265128504457320509962318637853045881640501426688666472738643212623332529492628312154078383053112154624490812479131741881584721009320752981288948034454096103654615676810835834185281215414447343322266466565258991834746657955401859655732853132515494435296967220809477767329401789420139225432712056108120562036713852216304951877527974749424628577369721738054864269624184341421717535743680938825391554182673500427301111848138507778153239026962611405174394068872387362607183225837530652956368208548770571277853537811689293302170808969123986201172840115376913857277941435004852758447418434702025450566497933930244500037861293333618289869138988683549676950289324270304023999446293023779117874969601986243121988495339245300944438644220670158591455358072589067892838668862446279459722445602893306319101045699297137060476313374529178718793333624753869357997201545395899983141929569361317475335115203936439555864539598575350826475405477374746598765357881610366977481773423877313030902863541554506714343871816864312215439529725361370011831854077290536909853444694838708365954179429578137452008724630611370653458944529938162102542925472591310704276377994969311849771740187162456403535841745849569101742535938268634326374136037839541649523146527091855969702740207187808333944193289799482537526684505668629346833927029828445124764044139928574354494056026633025258175104655785060180533794849706497723322596162808897525366943748808848865997830124284229867814998498412461448883194711907225284246771193121475088820563269426955270176500537199622725822485516911947845363455055934213619254668938825708630942324455895683803090524993234343742295437801261649947150738488695499891028028506463889954637965058306231877380255333563780794456121574097822989438275632548283525312589495066918444163328424022316744059037453143167557254896751303532279311054252433064659241941900229516235136570414079702812275078121961205180884853953534136213686632695141152534294569411955456883913059361821848235458650144687604791946824127990432979318031227942563528351705370883933307409621077579406001082419218051313082724621059999999179248516454179418896763704572280346294089753254837790855975671289516626704244315142005428611716819054728857510205164109842810724180749866281718856425029975671897547250070710589429532768919815640009294916501328399314790800083320492349545240547597406792775419763170968165629092993567306815604897958241199892769252960813767001040600017610191692478563462026505713453824196146489684197226742442410210902750927097868833582750555067492037660494968506789793996115473192535466528952253277763975949451816547823529299911660892198703091038575366153618650790104899446100268721956432698938964766760304543795567969620417179365105214151922158302294065052643430997697791097011936931303042703992885671173990127927974119609615060186815524192855008319165508119189997467315937620725130933885579130325991389176564760547536015327714056735616385269923797346437098853649239175027582474995143845892576044328977683667794272490705908138001608242194535040489808010453617966971180327835888144494252401366087028431300424063228920756304235606735368712219524107624148180320186744823275873956628704545980298343338531775836192155900558023249985983631105677885972452305757531434988144876946251497727090764680272828507892241015115877376192724609786647644500140646128687265748915947568972854861383679644830810440064488603782440817527888661375921412785672613607151745284250776093938289648323991317436586561478721112340961015047989304834416311548342069052065432159039970052837840673425767254211759107454402041364898327626784479236954232718712903421562800563383121612486856871875905093944163213352384939610165821929404459008924356664061621759361577304448839279004003826244419865387352808293784928726366230395913709164574222918208103555245901962698959419741339480464516715301785145975345902101675571102605961611931230727813537059860613539162634105389302705550157058517535079536582945905288195711340861842805498989958541652035896741413345484492327312388191837426933892272965907171957311208323510880422341558988375281563984726479134694662375541537321723614937629981810053401268752945655583563921375964957418208765168924911323016688962525983855653739531020735177113148209704705652429869525387803401985869675687406718934439341678180352008450411383033878217395109320383247290925461049439372278425620611564070821235407965775698360686282963299083822515055514337550290562943513134841853531739907220267951158976248206771054275871017130139560449454161885803642107547516035899587741430479481927719479023027800356362761350998941629569192532013374464515992067319118648294393764294150246399834837645424303259690210854919851395063112313355713542987466063428509552500978433365776942069074116896880612782164220381590313092619035667024848921093825307899149836757474012576649497916293545539898531952530668627639881614849254731253320626895842420715682158758460614182515321823319393376167907538759385831044017079871748674306038857016315459672903079446618787279597238579479285907680587973524430206423368699064763880626936128670837287979840235120758511584328210608925066976722301731613199256110387895527030513299061416597945238806177234889744071945359232487445537202977907896284963403196150788275488299257244019590660342479953011432798094970520376321458075468141198167945231549059912707749943558578134488356038191191178497895955879163565622163490243291706432094816685353566477727580798604420857982308762775622442980925263662428621982921611821387152330044860944248950997160543489166064373555669355670341431809310665033759180482294781219514796353117298432620277763386056917410038217330919748190183705412766403167116620038765892269936157014966483601482976124675988448148220074188339669395984308155521654219979811065432727072968569952002960355650963465209502864234659308672081618641739372502939962144532216809179429922789506361679877602403013029331098497593257598084619955665306414688892489263538344179577722272994414956003827594340647685815980877993067715177391240731600747690814355552096764505071441926740000766943215300336145769516296633592487697925195967307521728614978570910523577676572313444648654095848656318883995774834474024124992280530822634957504457529913729448329060711730722433140043657692696556292737801266312745340397450759984113457925148018323976852841133464679736369869778779095112992404204092323848410338493322728735622626914244727165963595334407205804225216657116280451962140448187486600591310193507911835800414758610916610402775896584281029061841563530371268506687955971345335378062175502421916636504633783576844631231737524064832540179251116729606340423738520159777134516033176989049083056967105632501410390606304909897438939776821800886295087925965992416243982374480844821979508369661389017855313574214181087530526005582980347733596729895412750811452161291274832570933391808478699010521717592678562635615388120911831362976258337823472057682702227087760834566385458672013189907656276735871309964954042493793526586328557980955259896023658769036942104209743913376065294967692119901441139948805189566984647349031611287984804218116445462306229245853263900296329990762108252147675434371586201534774536579122743094984784232931769058164517187176371257428911982103473704480951170029883764377550428416206044286109470047249745161520451375225583142332516361200441409635602649438115017696751428713619147428279323170458102177946103231381139955809704377044832968533161896353033273284468415968372463498879639707699643488320274607917066113707003796599481792157533830512122323126106755447648209259174610654556503984955469306395999833408422317611226064038163828430832824833447984520620062918033732728269905250783093528865187346918690437763712629617376318650374763920833512971520342146976810032470286965290896275904536410900630038000077890799633818683335785946445096975406765517457506755343730784205110870762962064429049694866013014743581447516241466781198437817757377936505571894889029719290230358131881038116855966563452188725929877603350621650626301693469977934946824590587865401489903255116493671145772093717006723071541664247257855048156828838379119591176129350985247469582213450919248492047314339307129778233102252724211345446431455318909189684481394215708521131215112403014953103224046722441163226035233751032804652107178283704461101173292530190977653215955753260436763190764440926061081779335353356520870342384722729905828432449708630212213256910124272184037655023563721580500611987864246233680352105290473630083607931507349923590955510409108437174396179584550170183826020095648140927945092165741971514401137757905115668404789407229152202176666404054983251795029918130303534391721968657447950070864835342011595416235985118522976865981638680902633352051250987319875075058025888996929179494822136281682979210453587521037879918442851214913810366472827341444394437176020068604289452541887167711332184954938570333116482934987677490759693354684452629735274379580454143082267782734564053476504627595019170008105391877095289725520927429863832840411708299668360043459868068040775002574287635761783785084597962639815215617614387341560640398566021124966042593581187033343374299077317010571907840928435570988173424898958458729613529389481276624536215106587765442536077280861578668838722543221543605042698033779477524354234219560198086517999040174939524664220619595556491445471963935588273443640589211539840275938615418472894553352373249444628103672891302428235508449337797706230937744026282785955588401820781035423321230296170216204130330738933413628681458723643783185836556164823605689199147986444961653188973100000739143521352971204840804585831861919787918942425608947743520494611335900632518306461366084514955747147406881371755781630315803483267507565710304581593968066041171880075707023766425237699042090142538828414476373746610414669572940741959243577655192635709074461354046822228526861229936181830884650164102344843425300362352156558616102780662857324117639945938319333045544514661072680130577004988114747790421807932653602540052665962971749233661147174920569129338673784726878940540961939004420752382860453991127257708785797191786376321954224476969974962950841658233305990628661252881995785763090648279226845466931822436333475284167921330075671956267330942830095715605828103673734379852894365084773678121367890172630844340405396211551239132134206513967459010450321214338986079962189943953477257354164628272011228261953561602354091099845517721326531330781070126239758848264151272695135887875916072301405422804979180576566637267670051725814647270752583894491604746147746421278214866887118492412926512255988664958643023475123559028302460409294091518581969762578812018095482944109184124777200610434572761399287586871474991458287256791807624884207979845221316311089982363761305610061496567210034970227326817640751073829778445224077784753360451584740375374786471315390561946971607946900261543817321925172414184692727016528346978545587924831554532855905467583176280449777520927120490351549924778707523757857425233365992527305837474342348769006567208948509194153319323616318845558399531878906120754153552900992675177093134476453295396877575093535579601953582927790523173147986459654857065721159898954073574328214258185076081810206010148592890181910358511835711119497850413118233349433309875596235099776818409129489975651855153999213425063275513779590894210379837638052751201735004785277014412442838224717596869050902686321537243786012278799700960196713399091609802945562038660869754732982623207497118875989851108507127731472856752416788224102150082193211239002371052400061030884496611903644437271823869584653078355945560407581765520827575122127938391550819012037047669196605055821508010118393238963515040980664757696105777008971358759193380073077319016983919779356117300259668635733714676889895394466220984306137381649087155035056558524264436192484389054821806538161315214831994133102166576780994530026544613963377375589437277748687175228364225999576200213738014284481878227322889426915026035338822987910631807478648401808359028082382885147984480711244773604922532134997455418236162055598739033312110306938257850937132144901360511491463706476988825724808687151387116948854857646765105164570658726329969787168167168207683102445127112746517616609723712388820700435299784162429884575470586205299159833045739053270893245058863767014248961358213903322476257167192261287883200653421420815830686482233707861124356555080675021801724525377541198977845184278110312241782238181373818179015762421857171842262949739020241921969736411045778210082873452575716301366453995820563289242190451214640510781794225465540966383932264158956140273139471091731802430026631593789682242298487654421587347207075044649801694288663104637788416845707999418813539804900068868006263873303956855807166720451508808895186856867721032920149520476554572159659362911324472478200633376118707508099588104028698448026120459669076857798925802058491134936344334941896084726786804514116542544958295811315342030757365438860674518766766591420237371917901483956966530207044713881920590045322732770828625530457341176979220695421246183926459152538467965521966499430301237349299705187570420585293723710199837538960403140003649447694733375722866405091671983105789225921736325692640148731833182705519642459136324525002325908544743959421847322700662378491783193478455302335141110285206743991330898057716556597020831398133345551652480982956928622039650191960589803593229950271344143879701119755087868231989004771178461826532800158491583999578555592930106471807625161571076947765677336579016351429315497978892033089018155164696435284008389883898916633961804438396458644450043786870118146625419364665714813124982522109614135167092947056429468771817290985381880625669307670322375598994839549043936943559305518232556359740581835207107007592494958425175194379613025008175523066546825169185507113468951706505177984429605293576865807878279262991994648052247667866766418598445833062273062012880304060587447933987842271736084753567406233132035782255692110055414057743101244724899631955050530717611061097083127550314234591606026089133661261886327600952300666518152635983228595877139924876674449736234284318556107966215947726050673357631763377244121903798268951370318462728814190060031619755345665538205009323097079231306743865944874935139725612885333289799068632357051837957492601126463548838758005474638398908784430348934732723872698115420676085405122409539768590397548282273774304966423827510894852180320536243826175941708103104295924148331711906993055062905542511687640110733378818894601350274777528354961404384398825290580975298897570211790116011349581298924405747051640306305020926848574739214654604336790082143070421652101045203095708432261973603431828714436421642917285233619725352370797449227243673094722543070044761287383223811771681228002454062572149011108062420727925386463304100935591931965979610164473098650351220770642270775370356683264338235380491389846793396584851621870050558658211838947459927553385154041435422526616395092220465640195412245112869012835290169246473408097118468382702139319872789050309266642269787135653085285898047728952179856407643192778696372833026807688988394717507737884244040310617968609348884533005327404620193107753570759898960695024757369091377970916877121093268839384476385290918847420204156710538806527073663752041482545747975262730997062426727944811600899787243249338736928648975646479759260216317349895900835911694355107279503096910663603390845881367828851977797971061306012534896501879664154975834578316636729823657082914009463918477865824711899491834278757113390689557424301358451929924255022955117616412832577077365336070234086240692678775651485577334182942335760067360702594673991320715705569433338648266323727828907954223522368693453226798608705844247440578677762554301947588164410486793204060907393203769460030612047528902137487006827934863817768986573728332027506806447983500223053310885452541435460453168024572011013172702518864063093145939163345008236504102834208440391556748640323155682546336309628668527641039892080070683285754910855065022465806178801680570560703784281294039946944357370583658183259123699527910193170537634461022040703580731261755381394075796309439216442444464833524941742225247141040154072092370780585517220027886670708844016868382558551919380605858619203334317959216581921677904351183236169611665978943253054986050514315067904071656465679981208259181583946080580728497116522825815981130914344837930729530152387958701055768533551224222103092557681354521181966460691003923477629143178515988123476183584184341841659644503189262286025846320320040806173185633795179510162768380452237458485596485652393701666634080489433723387705815800092892347525744871002907349793977912483537921417185366998951244645232355677369703026884094461439603152922887260780197088174022040504769535121778649127032951854430664824301599137480870993805719426901407226188875366652874361051520181793393561978306790413628913576268821968960762157095064567000958676409848428511674152114118329866207952067014456745565720985180027727558537905791077327840509271953605652004362345497926802414427409891677505733625194219280297939231303463796566466124427381946819852951918663053042631667215252029290570882957666204745897586172472408850646059161085177756841974325896237065623064830596637600550296694448307052452474323135148329296794142541209398560233185252506174354528226752327995348328979953355424146713525211346676326491907337510233562492952980301200746029743578001228249565300203503466079537177380801192864124921534794445718386025623436686316145119413834168621036438794634587466998128899386267025475070310839761337630302025034253505056525760002013709621777156471708644736943839313397282316877822475459130192686992038956840174061894416397953095577449863196494767896545620681665602784044461544314831343020515350396995732349279907426816802201917090975238847030713074765704058640195741483458080663269827491142004617287695489613410264360060818016420691829601577939355773063141754816794218751220884485130938357093658229887277556537131076564780425116583969347491664720354422800485997310097376897406020943562963987079954632389752633595149794348676223560750082783453386825875931110034599891189269527183538926338983874134132085622860029288712301700467736747577555670870665590957763196921406699773154807457226182335678650965193593688177318311906759791936536069764764524622431707426060031129312345703427122579675186913825950795585473046855544715605109002665768137463893399544416159914739383940233786335022433397016850551212879950855099628553183675617113523450971134476483836269261551465199967122346953145456985650590407031031286436527648839603565909334982922744444876475116034131371922625627200262049908999373037231281093869248943042410667541541678444683852844572501675225769745144620398954161202296134139760188263911676079478900540347995993941988559321386264634094081931802571606268892459642821736645760617465427370676595683555713211889811307870077603828576557874467540999067950275191081079344302183082752254421884533895433689680852151353009998491410896315950104252825681705449520406501931004008010230508515965666862782431958310786222548876947154503007684931711123970925411380353673019962681354591928703518432849668298593451856681184794591191628734679454086769891202840051048458513553289087483494994598669258322901487599277777554755325859949404011227306864240180147468150699909731050926520710681146114735216126644134656340539223919797245243595288057346655944061872512320439908780674188375184861105637632057407236843163870524542820572079400988325827977121197886638941727750680700478995606669906593485001822681198473036717103106572412001343563355261822474242865149224674872466172570857053267534314383296858470914617039792756506816308202024925484800658210334356002322498493116376713263856100884603833095211616774792538757817747533185150275097658013352947744920210970123749895266756008571799830929238669026233909751682761868028544017067515596802588999450366735212102159068379174345702460791855663585475055180532006911543171763804654050655708261076086260994609808361415857489150035715222300157766154649697821744398415791962591980303409293479109518929960505633787198689545029495428657014965502521065299010251117336806815001485418932196251340421769563303070836250054618614563833375339412217085635703030648662140228155477588951250868199339964250229816904190237109583180834962023188242751351889519826595371204984207153309383368389581509472302603945865660315471576500196575404998774064281946869132722411683462526477721742001850912819517702945311508917651475026108985738102477048415941428589346414922552616498100997377728153311592167135329909472234727432993754275103461559040170664497529887553388073469315272913346271128580208379691036107469917749660479952357341543829127917704093680895426254024692859800794922625040316557543275660060307376870567350026243745216738190870337488039412132267862658046096295975901299552315921460797312386409030075968209498422104725289565167662647113011578328759232922129667251630396569444650725818834129553390529988546485971822381654073781586998143900461174470079661080136042387709134886746258473487975908722972813409806030793340613681871934194513136149342167135894962086046535387657080043248245949758513197148047921767751647274211142578213621699695202466433722064430314317792988681727043302247237705699138726551689315909957091181657217566651235720725524282207459362790058838821131536653507693171834086928848652891185909676613638658476352835674771029280984324636243246385965666408602356514181769607983029358519162398529438283723913619894321967583720644811859619123122266787396906263063068723787342050854175713449639167143643615974796108727028623838888428490644082671916340553548268212533125489582405974114665878213903691190405826061341186134124571128957852222486699233433447552100308875435960541729551349963228894640679092437261569536117186187633013285125585328351226630517277786216994066253035280341574012762785370853111570003809806898001688421627913756113627182639692496057551387385589935477190483275146375502193390979029520582373360014670809387304770138840343442402815989822731649655380056394149789232803313255250960632900902869392685395643350714456077346099006685066687109809241190569564419589874992087572022592742384481350519596482111702928913992114229980889694490833887174997327356326206834148515066935017303087661957413861138806925759363007786757679204475400168570625261163181267029732294602361413005799653326278833851018111648476359780043220014823287167678345443908179391211275145917364428769316647952028927363066941666423362193475352545833161915725541366107193363859108863827553047615641254043923258355756425547957007995851706894577696547702412184332133869902372761987911334096750706057020956748336825907325388086563460711482715824468228223575158908737775293942042462111223754223777913558208218810074687458914177692690768527878356585750206959521430436537126027034017659267029018536103685793149615834278896715035144788949795993871432965174226157701309602178557495406737898801827979033624134699969298056575929716268250520271899204660120741635380276070239496301935911812607986522563382474727760177274854791398017176013160597216893987143388262464140363248804837539670109047803277833129743166854909863626421413798960164568383793545436091389531026286434187562974649039023970744279273379140082121465863183427748228134234463525387522623498026512408108079610648502865124757717366391746603627220341798231272704133387264670575596676770233125531180572590300116119691736071354136231303854435801847256120123742277945667229831837559224984633060315588740706900143020932307258928522623073058988739577976149224285595899790493729402160583152582904547503786825832525232859599116110463573993302888952738315989628097618989700459706836070957081775262135551871965506252672630344732779236384262576031402878118756881156333672529342201355073648397868102423508468265988993991628424917457353455392831931511868765620170518940522300431077515185705797454641591941614541165775902557364211290831154165584399779990650645069900758668987371032419803705052326465124397853140597267912369687233040307804974196880848090830659591177744671871524378132004223259191690410629539318690796353881084810875230432813055814137130700157632160159266420289132481782018353530327168008721088680968978853416323565469175569035006387484226574545778841384594030542925259241510568206605569207180172303814149844310508082245137417057136189168487223685200111107336109001993358043695878141421132341684988653713075723973805642987233163890305541451876288698740414800684435415525313438947462019416984630897601404362157265121729280246517744053147878039530788669838943091702610761806498961398055343457264034139012517003682149165388576691203704514191271799222824054900594332652661897157425825254693375992941920584866692096318133937632064651066150215759405543629190898658812074456986452977846428895088657303244874990887078058866781529761075993504856664101619670835039008459152399271840859957057279340057481522967638098934350415173288620944595712592782728959268985831002249318641565326443760611270260763606018661261984070957583728189582340031139092239757753131729642058145398434983095268323677594932172469320708517901430945184159303651778898975810844649500140671679364418563740593844250042316740355164604386344354833932466335412244804020308850063176906899594798922659372372360964142425007782858364698398138703355768977445694799415891065376342919813252520623694016161902842852259355819959068160665851813346522805415808456815872070883275533208647376942590493083910146767558234179766341530786570673096190112245066573139378516961138593306840559852163308853111682915979477936969489421061136865847330751957945110298818292180462726100406803360391567509580029192721000340524072644057343498845443071537730581622413436013950932912671409628401230268062569889423657683425917456180485779788645928070880094190045348272960165291105830424655433279518818673969341942986049467667038840343552380048475274551778434622305748645565533885844835112293083506877468163100389115586930209947329513690815143919822333800239286503603202536826640049779773098656376297957387046208444582641142150615788559707149356076906157087958061487008596928555744271231539778583777656641478441452707847949768962744425524024281672836629691060627407816020539527236204358142325784304719752710298614502076637277340613826382237232731083739479862248920583276727012611805574547547556741642886265501998746989822359764830909008174475651918807182285479732479869656001725322829958268552690376599346666448849304310379414089405083701283934150041499592101097608321818099343419897307043798893479466370358952932315451431559000572881878641745247564393106145024579768318048571879707255616698868695028718584482832432024747506087088452607737247827418417188376068264392300153213536196908616891727652193634135992146982117396541761606084750807381086452939930700061482758480373968659709686689493717893005165989059039113011169830322772785891943307778283254540504852410897151420133881733509378392088610322041154952711606525543866072597659896801323631738449746891869195194700270089680670976121917020845476906142433768577633037747114685450547595476136598242221952855460981503262581548852349317376659868942803934976950895709979110325413995775001313873908158876914423035493541045328725931592961340128850396068205135835230793020110069981769795859205720386359219300224358585067643372428696564960346114346479105973090628131580636295853119826582209846134282563727156394165639082000410961460206210368081307579033068303814473645262029249197642843829811204156531090111970801097656456502307518740356921600219840459187215880020013790965380605643974374596374979671890494500768835518146582957793266475024579105251315017286713867993819493398214450170717580804827809778883117781747245829502532729601213445836060122498551411931953346196742563565447476611779415997075615549912017835630031351371295000594309328500159841210060373880720840407083378079227302120610490307444911756087995507144556394917566468748909354660357055937899032764657302707560556196524230345297557287635991662230367579495932971964492855320571809585872554607598636046253817587197989596937466213093733851452920946556867337110418154586915183177751749752847546215810006063172856407431423542284153650772531580730539543916441837268035672747865899811295127183544065402928464894150731239094636746824720440407006583808983154984406166056890137995425635891329171700209360102978381337498131569620319828926522906952972023431796262860717020654205296011443516913313571226110617590632606318323058438163488128633698839650971065801597752944758392447038464486598255048127639155559060400782839013911150418605862686509412710903973640137261159328235665019174976361091696395608162975462653079930286650865911529990739972865904704455902929067730171213921176364524146389279478691789948862742259134774980069431108504021609190460928523494155678041875069843097499888568455095657044796763494074164952475628604790088370237776634071355991921479029745240321678857428651602456493395531104711609224294980108500316335665501800467865173945806725922522200913107484541968627080481377441434391301905057691060252362831300218283700117741495548300820775917157210301906711642790193767296210973425760714070545909316099425554545464504297574421141328166818985083322980230588059447960453844003168498090178030482631661330088461859251910979820642799796193358399334457518028436651226349076400051007245077852291283121813456152487907761078494125471751912855021756021115984615522990673551033810486977595888002045616752295951587551341022213864407035183046565790568032702864051223685461792886913360358277011915583724558285646508099057517785770541464868099279514068771535372511433641420649448662904073606859317278021870459043622067263501842533071009233679411163140179891522343850170057016702517645031868178615488417130166501723418167048760018613606487419598198941514345972640923904030008773954394445776227817718214533262807865328846557621052273043185582908011663427241732154713497659849598184672245947880470176380988711012147680928029900191840607757284664309845647538327468703695031142765022195554161062569966295627743444888962743483348696743758404419041960025363171025754272050980058364299119755179750653194581383012058399978892436378081237121191101481353736050206534977597070641382029166659929041197795396139951449489376518460614972670615758213587622175146788527189353452162876898880724904407470440620568035348785048010738020637802712731985546265573885802731419260526948513505480379513703495147920093931895273300747141509929073526421634349260976962997292806464564619408231997602841819147795510931036156448040229852987416284575412519282535381496386123202132722444888876682688597916607634609725277930438383435821767052599277117450838018933540353964962969633421741289522312255222044451518167985165042380586488939864836986470839679479266377691634893967918485791726544503032312840013156269152089693546905288858343545010524031215921713294263257753263618747795560968359051244732619656854546038005874946103977288237537922987741026632143090869213973410726722162344928281483555053262007462948833420811821190333184328490856993564330670277826684467141870545131859060293820934824171147811799716052515789610033634105191491055796566493606168410668403196825497232222998942567506064887625838006200415274098973127311238481886167151489184931782629610312048699473159662070824991178444562541549935320327752823440679028907122825895080519509291766665536241808248803906876899093108795727102207999692369510410400236042260769441175179877369421106941022323966739893911761274735814031706945550967482747129661545133689952181071353351667731052450009683225595897195006786138475161107677773718656250343854858312661694538947738472272195959386170839406707621661364826793722823031488002044647557185159960487677606249406815379230991551741992167972311144597306478489497401453078618991127095508107126354996882475422534620110464602734839933114087236560074657420277682597379095560156299158779641564203143487056504842470843130120811004260212644659977056413210043163787898209250934590853025270675381396740856682578739914578834664001331628771506953911682581710826933883066243026282390816961812916642730371122130773141981134128629777695626269946729791312176517913848550516683651127860893812556870025168312825723715427271112158473538609297388382217069967008815922065990770392513805984609697971517309510915415252965212429707859328087271987094384255650880375147548516591657644606487884676923842667904037199233459387414791828539777788809407781714965414973305354029564206574609552400379670632288397034911409799694386615130734419562906253351930271996362815100833964727333682982494554051068970959151609661462486174709710729557945518609518009435559815535406062918627748200617627438663678255235783565783297483107171264728973714667323781596071266465056841418723822513301276538533627896595298637036937730098953156739619142116726007316836062574370010681998484266238863218663608302736782512913343605935499328283885827002402506732486140375080823544684456164189288274172175609292542777673346003994613230451047124194303948586086532857449846716641761974264719682507831409744391968003609886555947833790858183310680931478014548825865729249315161819847168093763560652191219349024816872223160203971905285578825970228593365899943098520464377371145256460324637097826500027017036858672402827423401595210695402844709690791422325938369072176565045074567218902524373210791999288612780805304724294416252470559134457737851735462004154118446420283793619424428435282539399610014112749375467070894548089984191150503601584850744919477821112747679856737228685048956800410536501762087669466415708786918694545141146439545384632303884343586433404583350254600114111060762327201637274817028731814519566763014420020587783131558890513252777768350144089843575872539338736806353268329199042424040054114032994157129181822969797811354487765353626498946042839228916709215145999139176361668752793323769634719892292697026627931770507718791532444789826991664840370225353330517015445964002948677828457411678125466339554022643985663832694970376164587752663922679592897866477018782577110023369855347780011541908093951001660374225892973429930397057959737986132760925972052215834917573657231554271431950776339690439056764972874050484443793129276102724384573811042030959472758111571802121462667576431956502956779907537427467821754719220021222879692714172538954307635983022663975190628799765664450104335966372587397132931529215202735740776600352883607495428367582530334014133770936390214008666598840213953019810646003556544395188335345836193350237637654432783978012118194301182952352319778700673654529345587775719599527404951480680411461849968416176363836515476501150280230095780199691976279869353014804302742122781764312285894233071566254523172971187938585704610687928740964571580094149326295286431547918533577521182967924092634489731351002852241929650974692510675325588778133687074024421947336198258447947693166629324167413376203915048229381210800637794256250259507665482685980529349255191522625045224091233203755811274928274178988555815222618541951130499163579249182770253708758617181451368334563969560428820239261842621587622435393527326680064163095122717328897181715505928908442733956699746806247824873105968382556883188385077620360583898777398268424254495712848829954171474045969381494592734650892960672657363414477769762960549576441068686496231109701386648571650912350500757954844391101286464585293493430902800988140241653051069566061638699433675948101019493876326783193725073672633266112510654345797880867946355165403527723027947162758254413996885553782284410394335246292932737258820157423481990391410566243414480519774738710819703318740227198924290837746931242697980494762991939892744648749334065921699659622455496525721244220235391045084648166666499899615040232002901434967487820161223919454222023106480246338942575378358530554072783043990852571284562467455194556662488833306342141735724406800780525678947234929799651358576354236727441212214959863611986094549807830806610609416556927010200954380289831522656567686273339605691701445403380556550178085038658479442405200105046089723420455952841517833275637885030907832042286034729406293372677522360490729635263036997949884273379895222729481113661519610384032589397121142256641804394721560923311707017680795003305519189736993053999475772902338573133985174182934635788601123374258200114576378769505204125668663554249237138946242370838246795755156801062770687515880064056071062473967016151469097353740719867592296235596710811458198276951634850083532524579834017942086901911942851401579181935638710337763405956527076962950933435782399237974547250187732764364660242988833907718813762192398507044221065619382709342499593716553510289901878930174885328115381898577760063176868993391780906506853811954878964357185652083177624311029018724077595579230527835681140628419626880065879652365394551167555062239559039493047409061545442716864196086405336508128797830060993273528980263257504005556704269836888960670876881299933899827656428298707705474519661983847564662244655360881060029307192378468530785748297900683351654272721470159640982765981284585482507875897061999039166007046763114225652599618197893761361262798932990667500313057650703719460249053251834594683896762596162116548204389785199900173575158653788480231276558951759456966803322849748314610635840810418637711460892631262738230330743086073409325107647892284487071890590605490873243502548929375841662741201703794189509677467233928868449608196414374228807095252392100805022267582604404007587225204380046830456767608493655809837391448425183198604912315770658498290855672753352226028877274500121655361395076671454321426001899860473434270946718906109471117362248250249743149727538505195625316647504994420341367502656593482839548605363485697705525935572516524102418865286096846850590976673971825470111885909920373736748610104854054615331339051404549519067221646825581188452180147738958385730769174086101255303267976344048311716631598758148339818474758036584318378432963567908651542497545835577702689860044091640746825344366703687639842136903792668615435909909958422476968676372515006972616674927675571887665082846141993688104086612927684112041158841689921333640823193079644028954273184894682120493845648064476423646432140781871538617636943561759605344205300523466981130688061663004347891487278223176617806715509779780860265675668339748945455958185569498481993462305432422249748861369785211401271287123173685889466631067936063991739791677778806304810917336230182174892145442072578820140817001296195406331076520656510952706399571195058611601615298908460649078621678206497260213122958586414230466911966700128099800923545260706403313931014372936307415169318690882976668677175839940953748719042010122217212835593775019431355641276840984181230376679016823317249255544869162907545589378616048331242292313074737449332235972838294394636647964939090481475839909509163539730961189900933795111775087373059802522318971873928003746269934067028164566589075376409951058401355018499012053408222129133269523740954638106089226152217491745746972979181357702964973296566325948903796211140704804004072015065719974865001865907933984129937906742973833137751452775128733079749812375397919933008251817521560600021263792291700449286649968026437642138294203287680250518479803720961397893866911130845807517179100241022710575360897970828984405710717820600922266539292207442348349178068483341246873832831859493164799478246865567956079837806229151963327157221724815200428098075140899348387961562582343165252945643569385464388073784242852140548667805031976485899894160081277273941096242475321066039190257422556464870317094468035986537409559200259030359722793234058461312206186604343874639434315202698457787752215953185197273340378964628336989871504690544388870911154253884672590560791202667590008981123252967164484189014725657379273911716138349778691193957600178589713724547876043552256485832153243162973395092791615418741736680712643485597269619908506280409635511663536457550717807607908577137300737182625925545376259548342164649346058145806722605230341646272000024598650171520468186528925434966418021343435144029981729566166340971815525035131288235522528764918241934033735128733253568974998281470781553564108177700479973079917250632642120384359975350948614556584657560210459867866971309950621462927991994297269287384195607543760780236820942542568800895672014671990321043902974198364706314397558760214268245237982595082919034031271269454949478472611329071401471437053040863725630775815531977433468681557717440607304094947598176010715656372172732982011957181459579871428348616606221048089784008228662564073746760678860608790892070132016037452915062357443651722810008426224508465613131906000550630290904289429890335362365227085528810165003066141592545229086544334045534726909345279422951123786620538540855497862252254308139670393975842243952575270235836602823301143525597601878595665074732041391145265652658922033841029438272233520616778771424606050800671800629211864383317039386061124488074695345041138672957139296787448390620665454430496787879889992303334107605229827326269049383898680001803380732580239255523110482275616987572504692535473274373088237365006821292547929146684736714486969786786619135409521893687440506791976549787342629621929951638704271648601955071063195410460613389615721264502219604270645939429311378126776142650781216690410126547811007605591160098274670387298452033559804413248078006713257058606025513663282013923486728768732658701117059531913190649760570627442965650546485550920153185838304146464560955596858182972515343684300458634970582350604831862269991071017499028426772110590585528819750680182209169550006828578159363878223593371872416475373808911379376406932211063081860586342321940839420654289837157964421700736672975802829370088918809942096082024144722236735912168096706709499921746550382590767333392954746311483324997678063700587444896656795847260404293581346784067726673560393995531721089802638761944109594088089896465592212341094426116509161062384956092126412843236509641788510916223978384161643457245357471113181394651818760733718220812669863894514090402244020913479708928689700890463024300218098355558561539210001126746338618549779025436064104351818002414015289749464142540327272720685968467828657783475274585343133413399352634265594255159201081953099098030556759965167042015994211176154783992571455958695877722888511456587155258129792707525256305724204320224823213962662761469423930102774017297819401428795086072140862268539560238956665084415318380582927492468945135087614383522224409342048917277030898096865514982524575495346678765758603507514307160111710336683015425793918090108635797232575834588861178048091234189753354205442480027721905523964352791969993382494475303901136784670405566684905066539511639242554122098386501708654838322655946022523051774029060133394669569665075362970371811627465018397420359282929593768150958394769334333826315349545517040943474601631652282128199693172328148026113789222247534282609152516212094495356818199374504049687830818302577080759082477747670261323329867402303386600348101268603096567524379931869644971271688951469207871164965068794116594638426341221023131623747161074351009697133223345319934242190072169563936433792840186348131295802181541829078264590552396522459905621439902204901360936341903381043543564807428127441977040759568802575520359393530414562755414319823676400884356567755395667221472000599693546962996217817703315258105998463855438825607441535423730369001545044778831703627035016979385876076111844576601332065461751040271864289881283607282164332807445504894543500699355747392844445076807019730288672671064848821800169337043084397628684244548416796112996168809817567419308055183621779590961339538247531853008377887335868848846116348753932475496966756705752639570028547895678599086048831446804507126304602128812852689955295334884217007773600264287277699813304551773464012601151732573937619216529945756060245506326855604252699137233991438476599568135658862063697162483908298318634683164778523730340897042470302713336377578912181782350997924142370770094775527951921665189731902697433057985469636808728113238387362489485276251805366445742907672888342443566431820375190636574262943596731749147610453429112958301311485684352183779144732119440705541063091986887590357747147290546988757677533517567691061361819881346131620815483582753853328394229081407278280623985228005252028508904011536781140946387234084560279010114459997162643194034843915060925904243967245274909069950354777824289973025606354452135657634770076165795300706701468288242779798793938239891098604002015317174646236192716175959858687801571935718293867419832492031587919118901847648086111587930777844998257844799050077341086123668286391344691833912229677345374271724439690414547809377679100826719111485577273245262862519681267161543030784157630495068270174800075673417167766847800515245866807702073534211162164704759466280709167069891807147613437609443711171779364744406510817670236723830533180813416509151923480447934067845562424284966619106782365412939801423204748279595060708426240945105366192952364137272093929019120190883622860103951609212239258418902955310936848706594337379847457998630234617692313243973228869430105514891702269191711356916357615678958045361409704620807677545002039814845856247960082111474155173674845450748473181557580836844031352660993790816451275602315048604934147595839740605488174674125820924271513189599767877324909232125881898956491760266964192684502221562506304605692035343299046619747923111014839737216389689073981479192592520146285575766638119505537009834522573016911728172045641431406678783923260482290765156847259662002013277781569368522229956422728038388941795140875270293875196097133148374377691314843464322790658933460746684402317511181381131652695543136355245787256455884144130657360480332375498077882975086547002003139599373891270093978581103847957814845297301469920520340109203632240255011508332430754967870377610979351662728668464808770571908488685451088884164993232957247329094918209750090817922604729306937714680675589853926153834830231202443288856673571453065510633949658629094249480040138940321227655438303723440305842087524031826516747361135434159386523913785327150605957269131240746921405588988326017444011631838703135150611795966439320343288355633982390989015292779545068730430898591082583143663398602474914298414521191557211795654809358044699780946672235921214646010554393087694233103632575530027869470405660468859857615884414375028962099439684926464171042658599783755427672068403591062543461881169879987460431491386580797580162338598498448609783293810935892793929993987820258148077000028471204662680010123306480203747712875925739210883922898831692084821213765717825316181256402498759442196036003772294264356848222159557865347418725437683139322242433349050465945430438978230014893908680600849648508716034408639658563688713507202931102463673317713928501959122004247977362741659809214134039753914646302694041107773908139986587226883411277146552184658300542336855982542633041074700839298952415510897557016107206197591140495442262833253164772513586518788204156333956862297978468570124930510791412933991523415905564465255532060195828123036023525760168652895592887357759759271047323275502861307578153300855875402722702812221769234969359428874917210268023074734473277379736116082552552646870991255292124972726267515435625574132969708993779347433338663018807496818024471568224734564218194623624888769356008148424106549898145673909755888373214228205150519163811724894198920274584924488551107500261078365164145550134510341358306921943562516298789325345474987939696674078416946907782298834179412837134819172091686060299259016521490002747298685827856562533506750548350811509486513940447878617739232400346038925162436501782240533428303231227154722870850681603517886750989928549079976326367894644716026569333661219527458618763199815341441124827171197670695505796120804784406783191740320708263489936993590855715439881981531419046486997445326653799853734428141649076871160601553391414744284323706345763653811247498374846871373233549033405398899853903598729015736402408421150610531652920145951462166277858932963584507754051115038097742161530876635341762580059717495688919089069110942782374277993209747512636459701925303419319709528113891630533083640849237785693667239810716092594280182674494665063873494104596460114457461434639818164339212488529698105135133598454046581742990517104496892378791177226727279799645878525812796096624570084874800919969380284582624712164208794526288867729788204964064918199957499869474818464806277787556303124362824224335982027192928488331191260514038063017020108021729021752424276716786821654043505759991409806532692870541180200395891468594422446989685919147444287952620644880877118907732510254415416344993570595817485269157984951029261146613401484347965117110733123998671508164332885348547776330614066372642176790062439606700009450169312842383519485177798585293346336584218330604215016993152655263901442814246176110097556045953165150905931023724664398938496992481154913041387996297840219433015044958683613865886571505349086767022516855445691536820566019096113027015862306591846159278332391523677879244378568196294184626790115636032822576804596404609763094976746471033476593944784059726514571954767419133937878882238125362083554426512353170968130498940237468830168499687176661557330148482450621966217414957626290405689954119350057073960455249178693865740730520401355475404727069636174432285710094454251289233459447240596840696823832669152015693347898047842775060658544908852205706372911269282653815378449889922732392472058659091195910294288232277958509435118766224260902697180699534957371358394011383062049821363112323393350458632249029456224840745898970587455984387436352754782026012537406093786846659804136201097469838701428568899279540484486970818521572249915225694420312155923915696602369737394923271823458815409730721804963902083648481157693068530680503449212873964149706134911645966985425793982532881859720285288910842184803567695137534603618514820618979009054338705694343025336415379353522744398767601253154801983262398603518545732660324603453287226191710899816883906706019223403419859641321369965257607502670435315439493648857561578794566529284763045488862901482084975371814309214654281441247465605370720459768211913133708873214899883641713487859505822012915977938352785508530229777024624356203767691720475665502551173610260766535432129909843553480284559249597562205983244552700169719391739660808039413522861929703481751291121007263093476939272386974312488031610494206520202107165879177345379322962742944217421316651237436798744176195913119365530717553203341582284808255085375184004619437780274747302756635237681219932650607348240949740756770308773393519399951732205561943596490729782529391282166297444360536109152430111575638728079496908760153549629479927214906731896340835738547096582646544366575251792698851133423216965118224514673198170784587349237184362181018323864723165311959493228320886224662470874696568445691255325177320852815215804383160797862214192819523749171518019712236774555277035197761909625525027194916853833897343725495542354417107335097887837208023709503819395038727415647584943139860555488308173597341439249966678941440378047900430526246829974918520733235193172546494485086231564911435234315745154563415796105854274673223006556519098409443678762459925835897214186978661401710643562780623721051805987937170224234955247097195125920368084265516281436856178242404359422957902455518221150610577211332821244777230531991245100376711194298565443444183168823127334492491662282728255875773594814363388309922001157519670041638637588126088657240936735184041812775737052710819549962553370502922648828516519568575442985960118947299122998466271714557468482785487297136429208370919420579243782822229636477592165284332611344324891214401056454023889239886046822964404660347187851178591753010612022025267087369601851099266037339773819099655018720818226814268799331852206266641103507459764994542934424643322127966671384027489666113651962729153927000376126893598062850779626604106814380873217327591823084745625780610241232940546013642979306948690702150023989713778787981277063049189955769543396966493441071341484699400846537302576157485032308221675323209717156688970071508859101713210748626357054533343343442694798119352675565868358348532131097177364379863714136824631606396154221646216423818988524109591036772524602893407297737206268371196652494412718058785422198376097712831327173172020816961821925388405578357267721315109281438390314251319964763527102567865377305043941169637369769158006873490157946662930518516600614107578211910200322613181689365199183546285808150812725284421280786150988426407620281009442947163333811677550324571002738124182611433982040432537417839093059917254771089936437693197516358890573805550464580471834054727016693085381993282922958034841980384051786854087698289738056375290078303312230880291557141161736056379764735563426833581698667065017398523708438287277295731077532755160254321379798965637791384515967791743895343530125369158435784596545990069796364396785014117755803589302594895279304762137799929033398036071994832697721613267132425501660982777201261705566985854827562194466207182539858049949663929769054968085175355840199928469693980009899930504034722639333075054207875685832262347652745143696937412243370437197124939394374337538388029466686658629689615336304918714139536217028616383970344682738220854861923303639105184539545592887573824609765458948242496306084020312648317347903146406457197052254477474199423722783915542931741837643635849295449652755571247447145171188373519062748468615287161812823316510090072268732025374611488064216230150365442184034102313583908068618001863657665918584917149008578648939923787553389129987889531678252187682258993818020225692508932780094776652839954788522433954325220093454434757777110456365164871448060664863502963449055862859302827323796920936411272983437178876326989821799249558507734102023361803900667359175448101487142066275658142205720467822476037732973628995766617520466507707161727544143978089386050850599156964061973822960489423825445472179525413076032456730799493500800128878066662619433460315541244106984546067093633321984191023780255729331881206801335391732296795630183830393244463748152702261052808247452372640634527620273608097667320918501191824585447642498717336340544581305082501661093686632909908746360344130283528133300370493168853704633050378457815850316920151323976861768872493074134354880238195111408724620650491343739452111379967357410583248664498682236381057611839097902854848310156758673647546383325060707619533889061619920528086562508039012328626662542475695420885795563826986318603444468154666938334255189672447481168878951557493464840744797189142286075524834667004939987588226161297478307967220454994771101265731754023238558352686389719746857793151186132904228410283155964459524102883073993482301615936996847288972984033649548352037461402720613039782706289487759845503798427411630440942523913428890246542245058065267085129976110292923151543506670578599507639813696519317036133404102788904213974251276633258804403576985627273046620858875215155723433368516079938861946765239362976834531183658372276953203190458624476417926332118549911690061538367140699922951648597256341083477352491950787497386337166495678960583534547589863666279062760080052372995565239225456450087009836643285157963070813210196008283106039022106270277320445466826537421516488762551181877071636523374992566555461361822761066154741213899145191671773749093781083167426043449568556712778624218597576804195559883991596556717577748289066214515277831841229625631524985330523057214721268952091888493991484113726472682532997558931321856080489738256014463920616690332881567119658125992680193010545225661671924725360752454365765341999148952618442781223718098048665404998156841065999153173948432873137720689582830007798645796457165156389198877641018022178674822771878977720399505571606852596147571415288681459965811720831352331436299482058372736618765164358067649034664930249474868272772504710469834932507302244807238527526316455559667547126340644534184399929585250416505137433382286726529005799024080733903684436654132940133448396170435579638160922845178088498917222338637162530688366488806329879331324272331025590251503392117966553543734861959418743550622829373646604231688314695409285106916623733238755308474701948722271880414320435629955675913788542286793730169633387715141374018984256508457654213582006600426704487320256010185645370660786078016625753287743967920038338824178873360924227982465935478369765468239289587771865920089852083237118785388121317960886324968487424667967546909982410428519116156515965881558630094031482716283109988941746762716384867107553788610868650954756075189210390354390148748088085764903988174385090548694484998332814271605574494949435266038581404390520117816547347545371658190864174849007812407037754250087170544043614951368292068430871475035892667428897369694497165126568889971224367289840715596698746837216900751833471701872793690336991287300371483745320988911119374884634649742594349983137767316263662539128468145282587361444460408394386325699337764333044258056353187943783182133897280679466375624849796009346512047626164316049013463039956004866934854057334420141634659000291586574842891484373562266581944177980758225565034848586547616570425719308114251897241445233456876025413833874761263266760619764107483024953772623428926252615823289395646227251823204681984946281172336323359961012721301865566160473328727068389399347256569747802756208128849488627197484290249231180081109039226675782801303793915405624071676073708852820523484055861996359522124144564622222500847265218572885564967757403366995462478492118027517098624031647940773407099808774549671131029288644525681589530950268582802287002045858923737030819767334523124215763782558440680736309023969573198442312203483696954323340008831986905836225096774466951058613849172051522580400637950086454236233727942367726363876798843047113354496756562127640550230125562233220353440727258589857333777070128494958988638399474188450881644305150870031169923419895738036264662636283625861157548562830117385028751005456452658956681894201698557375850689771372735728075495565713019039635178775914247869611156609312673241748469878010419172324242516164224094771533047143697541382389440278837384210887946326781506292391303974233015366005548130639179278973042145499936849490782749963681177443305814800950792923320690376788176355639107742898052844227346863441426879620519827581319623831768125450964224557422326477873750491873873033862101398782071587924796540131502544890813834557438380077404468128541489279631221987203569471280333517359645405085031321153409099901586199187198028907159346630594551002624351310011325633261863602132388096047585232402410545384808090923631012336151211886216909644562202790521597422453474352621384216171719204570767453580353446200444290794109112886882077670769650560964264206042992721937052142874810770005663508539224601762504518821334932254668564495282381597786133713029835848211464214646619106087636754739486516934315521180223197593746885525867288319356761037210601785031376437816920891171978901876209109243924343387922731814125391770483850143756718612834232058160801501092604279972761285562533697945018600704573419767982802767896338769333094921432671094748904988686965004075096882576774590886504815719418325815280871018404142088802809561208008913912262075356671846096849149678820583452655017440673908144700382041421180401463109171177352239807297540793840922908661397847835271757631055540212385464422502777897642735773993415927578289293429275590469275902225706908293562037138019932721033376917232479150795272028150437718643712046089728344972315110755995744695785350851463842188582800190219185761552792829954878639590864665894561464818821067055147804626440869442120567584008271017176221522736988569505679264696675747645199280957165693993632360109253471102440001081294643316392989779395410182098691583179537591068982373084521133805842709339787304628538123172922364041499802079017068372857380601480948726034212762662460323888702744800428554441183532970147020797574214235985866593835603853117143093855436974758514828942252731296082259099692187510141602540938996245306252563839511932328668166339856260200996872557678301440192860568692049150470387319311838758362395511942069404198010673158326944236544692358503216914248559386484334764583962629172451770502503202362413721590542841689251505743278916012257277864827638454628604314565800152669884192602823600637308811852266110789625676042036954818534783728167812546432202199319796655061692788603450678474139842673735151579950891133740784464542575337312571615752763041189451109312779362563790257740246801874886344288345051143791982915998780336136649440258007329709739155914342998789811647687321425594090162353706625779325495226980924264145298004148347757347361754924251016699808379670281877935675236557557757008966604812846124006936409086770936639709395015903801223690570059203196003833261362434358610778152447488878310145068334577766345013918635972977518891647473653630927473192963261342607634718266238323616082396195320594505759540370352730229014730207942225879058308637087644968666363922055144974830705362763525042998536459207446910119887691936195900960989027304112717553766918076143357711090378062085907815914783923821537302464315024982749444576329250926738261933634870428463413139489797835374620639939364724731003352503830351664432604364914856631898624220836750626530776910970276740066893553401060485526778380396184219287892911445454708903925459147250089308761570722044045712661722887470832309706124154482241442931919834257933104136201174058454998276520118074424471793700047319436282079813663871976593887831563877839614641491894803435279887175947599751738275070788609918574800668136269152001767621118244866152375908225670060422443372675449165606743167507694983795200375297249529734506051678270541983905093638201953212126305680262360243324535030993029687458105926223436196001135560003705545158618341539855771310723658280807397000180382410137799244673703560668787825038928534465203405926857193812260276127066192121771589470793052345114528945150708626921015815745303025795970270826421170471140953135687106811567395367736000826764968462942798977242452366997773426879203073632678468404781304249906607134153599379097367680279407146755023737946078112882048922844959555990114099224145642833144752180190550180928395556863227597548426207670780096634709868680765944519404188825856996443487309514013803765668326445250613521272406952695647685608553327990670703226426922510410174032853644489419009934101336260258540386115188259595833994700169851793354402665275171020356285477661978892743419615685430469321359371357163803263933062228389149968331968991697626644146243989681302227914908075488059774419531945174906370018441391940825703790021512938248006867978255944834990148751328744726614580143403550218864087663451090350746041762891902915430141736208599449152360454741787500192209031816725188829480146575039615095915491018186684078680817760239898493469253257960971931021885935673927389379878302142501602425341516755629761011178434428500631382005403757835802564813755375680416014406942992722774109717959103722659119523581693750105961006313799125830075326314111952929279113409951556144968053317757834051748842520549217040834503129612977470563578989493447782885301024717388748377316818779277880713102067697662725009671742329624312407680124475551444997405364942164774467857205947043332049597589709448289374172592358103478390220733820753585672876104946731626972280919668984922700786988244212329669779386806026717741260832237701122905802192327717937620400892414056264556471953791223785899746084996399333446835796721143114511156220452050694378889865243351231451036294647690652960482190407681900015249651393752247523847157936846364503549525484574602480862814674128428458941608646753387242801926551279501182377671645599732222161618295335896966607085661489355316327613344994527064855931601332151307089438485004649923725404300060467493026519988010098085565019142621267170837083841332675310627732684051309931415655997079307032735941966411112239151305706190405662493292541664054059290808703153719225208833028765910615532203227100980965775723411773182191664536071056411555665366925441800747500575955267127790333469089893521417937375650760383548585554515996275845703292127990136623839277355950086780655546323054896070099446256508879056473130018509125224126201559499764034675983784575450834350150624348052026789293782600107123961716369552061418390207541438952292618074356607357133014528488232882573830784608935022039391139269602879199288956782864898272897577468661928530536227151835571075046475088303446729924558399814356578054800768433040973882280873498331467117877902767405959226938876032318400405331116456900241413183385704882938237416216827174275126223341087066289678238981312502371434930010722249580828092062507074860776951623996540294209480937960688085583805902323487188119712777657359155648262023222002510579247896501492591082606150288497816336788788165138184240308207700282663891387366823441018210660882365283398379129882467688675207460346031910684781152505337482299308939167462656216505360447869677631817160875372606923903890127559628179245866978594815491578340702093538492835239904086195691878674910310786971445823307518620085531233672607338683913402796109518060930543597404808236091302943245559240427728686258971254135782393277197186241950586289401126988238070311041533002709277363864314806744293510127964629841149231842847807364789786243173768078484703238880682019495793677662793724402116167030045668508004988457511456157544716116898483871875574393510407493112442392661274155401559174280630423389825012257968318752427372012579655326191442686782502752440167901945487021615420511390631709550364442667606370727598766737701797379093123821337580283776444382828307219490791059128235862536807305486722008520194148059422118903702303664617319233110483364078045925635602729015586221923827701781474630746403071488733304719692593230587132140763864054690342479609334998346745488958115190062134627243032070311549148385833650445504790265018324912625575810617126200555779108001486135691181402637314003007885067946608500706917965823850357036937688619977472666337439886184076793939227075897207893561933863511733985860579753832974701785233905377952440672775842341534393120969679100162761501414503007993377024767333349995524390403441542868879499690117708188026009823257914149428931447737057763571134089666510968041915305294957772524524589189667654566603412447735388049054486803248671868636164145203836479181372475617342510767590603974448366943834306662190975858809326122329251619112299234046948640293438997039571702394913987204241825287487274830863888647768344676865878218366376141957033650386564241175972434448587603846218052858825959927837345280648440339532122683008905488182071214578597662462942281768421185859937986914598514705818498558498295151485370190375657801339906653925537748810739621356839009016947158276671140261748856945542692680003816202847287282550907604811267219857277553989067372498089247972244438725802741317030289031116107678181151933319284972628738247220610780021596109469599593217803189582184361863746223071574931657682802951819242746071763703070614212660983466149988595006605060696775087573040611262477465256804835670054772588274177200084293845944830609357989436352193190117768533877680534621900161567951200200376618812268176199395030249471675024428036073294433803535724493856150510651829974967019401097571566234736923630617174837442317742445320738887573856434371620238506721873968730182986696506398718472608696974949180023475472159115168252489604742273055762443443196069709149674013962813616459888829925471473458590564548423746509405971946282058179152385816331210739646524481848037843029494914046586508178733356262918507952189085341774777192118322499323006547492164606941370780657573811197894505882985672831626367971969148792451230767871666214689054152726008036953977492208115224785830566901232521380411945589083740882111253083611191679102426489143083362432799579429654684692481394086060118508239116113611515290752377379504333642279427024301592830664832561785780994302564501019181655592208064060762590696157620894025831295170016101637457461313448106860194639891658441239271606586053444411308850461319094398923150254043201201675154474652073987570685416908977417721155754808596916369046180645394081836767728410809376505547462815162210807538951271787574282646816566433236749968972444887923937856929569225640306715832259661106585476960478832356534481364261208574360128872444201784464778944176997494405400824482989932181089228402525659818106787389332352704881709962949444314999407848412492000399104235197459254152809611048894009861174660136249992196665642297707669316985919910664840146904058995979935225789048684557485898680248661335597484131996479730733069622973620575241988056911872018300718872250891469425852366897382720097503494533540520672834863864624114700819683953822753972000229282692465267178013368140579959178268830190007222992777991064022364173568504717296357736778235421044771155981206658313754001549334231107083150576335221640794263721808832215643218767585267892447452144546875193098791543459377708168193603079104397390084585616900035193868812325453421260273201205811237004651540554692493511357202655754839598357317591164224223894411425638743905209302179365834809491292137458973661298628709765585425792881174863314774187056669377320829906226319934259285278499116090382882120359567101467318546510929915927018680286704132560230811206207689534771581964839033827768349918908766978641655815575997591551370984878611796493789495987719437743261971571101610801434044515113046777611016515140262475942340205021947167162371194046295513074611063658349201694977824393048913050009333749663777144385972810932445248986106640626763436077947907969365271956836891746152446137229376534552422773465326179250612199471407181379923566926810734234890493898530678861205734781768965973099583437182207131662397795137087056899972937671205958653919915971340712467463482139560745567075277015940628311647830628114850998849708673375764587033629894250620393183154270946767186760235146916658805567965005352491509412057887413830412942321993957306022353358920131108972086939914026229751160183950613413007534106779085817146167639705962344199105746964074222558473192345501308640628848630969731033683256688861168316232552393270519893420242390906142514876187221457054884050616376381661422218421496077643581653448193502999953706642678772854675209949122169289952673729794618102982035694279049685830185063254637776201624217855095236983945090562434854978617056999681576279087089038016032055753313775597008202688604200864744702308652332963725175222983852803209131162165401709425086747234442107088969579721671414146523587365059357357797441427497483392200287716274819671621641625196597481756656316417291962125789112054564682632872531695358058424051352712465616833254648913012567223524727102868072729650337473597233678390489599455098085370183449434423195236747979281926712314419329615014743476000471514302711377914326094018305694221265581109256764738966262461946684036820279056739158970040977915170105185175253214444389399104232468467904654259109999185707594360998710615950286691937437621926004080477894613276264795823659124025654567436202030812268226983927886664339294925577917687556031827889503855350211045499698309756313508327396484621756560193896370054512818742287385529981936730922238487225827545033781817673501984872470457365212005106380062676951005049998857203830997137001043435923643085579933716190160087248586160936348622487192359455417046605252221157931119912263342226498732055431731352671693892189502665650959535081113718374444466558368319718464546716660836888903005301445218456444402241864738897144651236893483314682640894191144978405558098168191537145719787107008175284191009052246693108752723580108903961777451993122828709977618777837013522475271068623882271751932316287009441756879437015459600239474334469278946703976840584242128700885289583201745576521025901436798026523310130548572113991943309204456888880736431221111072905653207689442198876985026894055893988513824680210288306622629020455236077509793149038310166429180402329426780708583707549362813847231088807035747650845306084989590045792019555579192387925976786325535212507940319494767850747896277885379597075000639479363499501923457157798409808807439464739521888283351942649714221666732148428599186139801202768774705800133204823912852986071747632880748158240132037818295166328453953077965603351109629513032948720316243956798105544311520001069760322936940282844168279169509625030325774561641100156435975958292396035553066293302503696016476070816548742132650586645040616205221381420559583263089684205522578807212077872114520076102656792332418285653860990493498037280821045915850877782097226581283308675761050907230141464890883666988133042450024125561181086594574055865575701346555385371039434857606421388955600079390296852705667029196600630837555388730342392692933455215615893273123964170134350934571915708878289573439504318378730149277830874062403085074449581468390312560482938016105925560038396874123755858290445748133309979410154863894541601867305371587006536929705215073532188822707831266660680467761301132043554893384306374995249936422927093091168554091659092211401353099169399231396255401199172965380238719597609676995664093758347339316958871249552410433247124936865887552131577425427040277747746480081900896446440627714069008221457947035498483062133818721125309117639082545997548912551533552830284082509732104256220183705207866873882310448607644828636639952829591073351927136627390440229013389870808336653126753974377960112770732934655104436070920551436022566491209538561717409144158433167436133223494120844572564987326410155092878031825502641209452400351024315678429997295827770408615507356266580402558980935681608216615877350577693235887601662759651599153167496993088672612223763450736553237099682767869738009585312664405332080762130364604566945550533148463359485178733066602837321322800905400304742170621838854120096983744997664879237775093668968222084010219435220291540143713412631158964672318402205693151154005422341555970764713820372067857605895273631717883519100731549594225711569092919556174636406679975669853909829660948848852237834216323575020539477136718346614594707369005522017525133478773120567767661962895219328412642823947203890509538618637308152613650788503286191767295955320191920388063031422025164612545132741584466838662220164040080590328127296114740495800286579139537230634305437569007366577152076901056379792908865971636481208575628780328891112281576539614124993705051080579467081043106156631904081013133514684607252735813160308911377922441477994718294685122274940756405128438732695034749443694669529022050361911312054232993970335730667385197196259104040870166569072461802814668256927024571185221278906153938592843387160370855980695697742110438231166233661195343236826376641239488031430743095384936934014030571155077132973755351657093376024771659782379788173410831459732134809935042895573612253672732852246002486618170408860745333907448883381484613847171750938821114293232301517913676351615172574858692241403255114841880662046389212412016796369242998375497141385306724350978321900242806261037071876140231068631319459727800597193547234673591540323320228322213306703199342045343449918706366930654728900117836389104269999556716315605239439283498908649502532837839655896878713496055376280619769475559559458328874784928000241011996111372635717604097700197175826561221696744727230918052790411145121561936690888129888509974345250999450549558658211969936804734369087963346322403986136116688502655750497033815273463881671292753662696312163727305092692932926906909216617996461316387913850884350589717199026969738085175843658651991705064715634725653450498695102960446924971302128565972313566582809344206381660227156027500307272350233242874011659459488669697863478332302372788505473057149491688658541125543018244954321048815967100854680295481588325192021215373430677470057208631018609514572534764962364715594525640626848332759095795758923278204427112038877156972638660872313589445580989479567328050066310500655538520388692829031174857614368707224452105391575426758793947747233927849416517217065415311286504057882402549709304338265057007925905823097007840319863880522348350735555713165796864285592455198476560066243769145458001515130184071690036930286623740490022597893370631408216454784976363564893498229944286024197738056355430800334272938616640897457705864092100025536336691854759286784065979263474923849768938658373521971407923991685730904900725691644063684007923539802288595039665453504170954165428716735368926091437355924890812126955833634699252652348023228137982579300826719384722757904474291810436635786072136133459781974827427231261468016028440839916313681410366091218857349824268563480535920279146442440287286937619978203758779882236054857938273967235509822672711363698931099530964102216358165991123833226236764112621988872314714304391942750274498103972952576477870869491176708454941023248959797220009795641555369932260299731961657345993743713069712182005787044227781604001798470088793186965076283017761916876939154848602351311402308136183853119378620438464970314313173704325218918521576185135486775209229631104185087676577545389552447908741844772272602735884958582213444912896995198941611830705071982886151193184680390555620197099083033817607009063793673862217235708954058653838028960887521393588535230980258403471047170851103970735324420958400947131074586633955438113165067504799156336453365596478077720799316266684455323642221987517490953747421696455695607327515406077759788856866651402102485757595171449940413166020321707298575128171840640077940984265907024422146982676929816706251449373525962618649751396189692843202094960056284267054046941108600589009515477494771720320958532596863165074303199760731672325566444106020303053193648356974793048730171931750986275583434418899995022431703189467681169165651469083505806573032688725755299951716796830530133995587115343950365841300388709948197653937484368822258790430229007371471517763643112708949664508971291177329390236568138935612474040726816048254491387027120188052876436999129215335364607238126818192091419742539271402364370563444838589816561796199224452542755685012869091586710618977219690214137392828357004200260246403242164523001413909317487949811447068186042190525734823429831247526675557960237359459631978800946519947213396938840135341547320683969426959776869473655642396536923977136690964354126514874258558168692273142987105436906782920264617929847028892373324839205087677514025024839561602859376624762229427778672040749759476251873510008987496138061486564613817935956262957143960581982732654769475137586435601356183842558551061982742795866049528511352492744135207147133859197097839299118091479556714550158455437907713783409047515110362956667940570450257885687673892675522937347071670674661959600534060260687444151680961991844732996209177370237081631981212800121055025143323208464884569396555122564475128229060020649923948181116104957261569756220507457106720771270170602533547909030546683235702466833947112833979210282497023792044001192590296898617727159152841427169190547659467190707851567837117054839881180572685200921618378246671724081284707426913942151435915256735065242665456101299942003770725222011352359912860879737037893860447493293896341059397409748920409938765817198722243601657834670136950716056534743340846758541093266762787385148307052547140898066436443500587290795379696861855004596185178561197433610124973989521953213790849735983503791666641945273906055755910924151117603831094174922617299426475423628188192400607689190534937574491344788904626904628498905640449204093710884662056737681781234865829903317469670286915003374671727223670005945256015526801332531684673752823793999137955811223427343136534307962295273076572813108097901950976796184005449875933389478539100465352247990339989938687544742844169567074809010143091693848372501060608234003769320696967869439756272944281953388389824300648148278767702796022093679880697687921521593532820730099112599019318803211681551146165542335922268697228871441845391735315096514474891742044609328103485326549260536710701945664724465985743604114517128710775636672210936413781088841148112533230542964321101065280343691545406683763369190026252733506025635714244632790626255190820548529614337503486824770443205491599653480190870413517090018805281664894267134845447667173556742537583083091275884306643276904290345847848069951251826553365937581671622563551846076589115429685333601782132894222512418646501184661034086602514495518903393125664842168964385155072775667829626524327238475756719401571639684893896502842970497843791889410719440925435326210864682502629445879907878930729030604190282751029810781327444155605189980101133181272115327868551168514363309782309256433631739817241172569178151997536299311934172858093204029712367831647105304791084457569105715315255398048159526569055871641039708143849035162433506210088016713715917148388073506629216248409642786312279263580545730240019087428757873979258161795579539890811829071871233343499879269690833366109220162939468767462234325651025576520791848140784455466629866845202885435027628962172256165811566996511475160802943356602458657907188516596911783365357885531943152571793374822967302068398168222531914934030677776768805397878032091150812180688393413077803466840947239359877535914597891609887973115992763062914940914950468314493969876580756212694572758943506056972682106967232051002868713785133942314869911660322448062788461329539153478850761385144167399517192814452445666102585057953417485185324941925381178227636378057947973598484348112536690050139565652501796986425510019751771860066481096843739007371099485546451665043058346234508019550327070644216499080229687260546705490337860383460921349838125676133253145085455307307331337607345731154048263112995388474519373894146216204896062769003402401980880299156858813403633862140662479768742892931223723285714782976892751838114756955911552214899756643878184370786483944017899229536771519863704792656753890720401498213545233346588881987356447979136206679938189365819180929372348558993005134751681973819252392500692605443099933293177680807836516300694712223265169395766967338080404070439481210875774410329176385639883444439089786396822146893129002560584099174279128383856532154862462343550246973454057213790690935697182947685477671175990857827532723888840686216792473465191082505137647302991101294009883821554136426952164503183789875044232521729455967168212663777611192315100154202759115173051405968566404359309397685312192750556537027381122471254230025721904545348665457318395400022971795320584482362880045597019867198989532958624173572843076392653788574921446108675832457036268687560616643408009657768423525799359107457813862333074308354056223189241052069759714677864940269501342374097460086984944688196220345819986188147198677412162622662661784153572601572094802447043168543425344546424314649966356797903352513269088716339672099432567180603808775085204254013157257616005017530207891736574980538399716857848110530728047233739058689592360434478206996518334831277546016039695501013619286548419865538780439175524038804148043328355199693302585848659469963979860639960639980922014421351103637711462469089009508436223613079529657189325137065608610619621065770514285047817115667895100269152175851136350153692144430978080413048712053147327928873041619692981538673587849181309973338641257737372707148960231313098052840487970564191023127514595819924338041080374812880939194926932204456880299137568485162693003115763397615676597615247116071581973012356685524998198359355207186719504952491699235458287913272157168347355117723452648456813481347555590766858080465091656820247795173986283073742530255245711156076752975041114958178513559249681111776323900790039474668820359142125945779446480839438599916992829355783679122005155312242779692241828509624907414442941140635843572800800577129174533995601996898234753315021854554433682633347780059780882897991132875393854262562378618875490897567006106218363455615352121322065319316741056978878182656642355920733300001214689840628889570441262828969008095590235104338828376246607444226966722165704773218377143827004480144124495077638077222442073295376425927036497701224739265254345461203841452829711679707459624588310817422832200076931399413554435240020419223850280716187112683746191905779056855555150080300740774308518749483091320734905886911587161407554690795842757825936722169435132621440187777331817189721136877155734848193907836357303904519508798025485410790660637178785945962470521005970518115988808677007744148535358699147325773243827074107635344189736858735875756902296637558289327429156095006203815711132490436218677891730598590230821702904940223624015385625320940789044703620142546694801740945598067857367901214942438696126154470865557004046101479150798422826524575087869361164153947410404606612716315127538715481422913154921143300879851662944607487335509631086186878108264294850581247338315723249707196761431940466460740570882577350309277032536852984670685096778814352437658185903928470481898371141851939454220851826871577328237425058512457236255799135140673619686167760638929177308421071185949572491144703427162641157089369000891241834730666955560696085998277654548391573170889694251156772217211430596987492323230908493214354133446174282963517192196107292150839354130211824816003476618119440258688615153388196729925551105345876558588264507225621535536620044183490892237132854784129841075135800531006828914805215176099430536354698474402752670695265980009431273648500566428420668693793828106065533420820511454841855885273063623471063931815988327708035199471295930779822408071155009583803096878028220871134894074547896796343451988007822024653560790118337225578601680732983172849106019408118117081484987067259043646729930696348463770432107531117781817301258381153588760961661535628475684678998657767957217404280828012544229736576499717590823136189492693079630395883066884283653389187812690166647869704009809294873067579757842726665446590591419546764690858801805796643618799671948697569575170871969519676642291153114775093932590107645413407858420305845814067171110459734592612089500618603540039021326116943262227418659990016625683826580890187427175008175901868323839018351414810735087375126270674929308541015255626630848899118017268248442203434423997052594258684945084874213283046899506331601842134937790031498263903242914347654179708214317609187956938036244795799837116622861125098952052281415229665364486164675588304746354750645035844303967921399110648381205347120435220364544728275989239314603515980443880372569194746500964801793159703199334292548728865247909240502717263399751983794738480030939113507104999634141041889162234297780928320152080630827807329174987390355977229022168230410220845219949842783638785098139380063545461061137000209870520547282744500065310187505690217992314793607014183454791845922101355627593477426273816649711400875362352246678468653162949886908977743925724886540941629458643007469403020812678541189768658036501605475699641148054803520504541361850436733615030790268757137157645535824653051893002587540549893545757617567498907360982572109738828937694931542146230867584220087200587961886720985696613884798493839039958348331967693509043154034240406008701845519935383998013479621450525156292903097121675647869869318349866032849583399492069943987077138371265895742092882305906937308421378913629840454027110760886769035898895969932127594761285179387813299263231150909102763582699539559175171008087398613712672461953792940762338593505223034270519474221113284300168168966680808779768892114721928784805768830349825257463997288863431102151324133074929681503218763899090868484665783745661591644371190755297238958033788723914505393199276206582428444710133825422362774238816759030756207958965344062241884106158764260023111049576921285467179857767590758027211063957591542217930134710150020047709388281134072204528783710060210871496395684670631838930838134967046450478738392867668050274526894407956269276067599351069618785319753584152160748068953027195127506826019705493053053609238332819883375960854811831219269680162502938594607376847924769493983370438149920687560547760137640622385646068784170551220873965433876343329944692859041932561207875176951758556609132196473957911667013681252799120124521479755651155647669176808525525677855116143479206861241409836542079732109970665523879782347711760676376832230120949894496553500415130933444912267120908873702580687883241391249094737652618108961901374379283832366945301884492903964454862405118543093307338568258422113433478975836728592450496923358937830264543296462747696362556948464193126523107432123114801813866635838271983119996705159207707320193282078572293398236935114658771171130026049288038433599326448204665020412588444574981179972750009623088240385552024827769805251017854273215542851263957981979521450403533718281277803325160312601171071739668399442175155324712356657172754041753405777042826691399117528868438067854726820955335627637251689163067613468619658617983741529318721333624404724628309659857843527276893791203961843797059446514384039495130743562824679526337741340533001922154515287165096178776410512445927569721754218969482552830866025920629807722309304929743672704596656958316468234698814856377914894315766108516930971860733587433735447036726204936974339916580766494128150316517310298173443768212528659181711058523261406545435077812930555686747806737410846019110809441960916413672263120778422237988687844316246474573112392566227386290331931444704992597523750025717443747375814936808465120139174986427186921349436302503306077755534434700408534225732253607428331050463185979249464872893245727706472600163438356106934957411953497253315874415814133127745863331772095436586594614198008650363851780776018564007023688615473282715494988043716960933525599302514729180003137013812967776597636615065476526438276731722511073021301524428682402554304362453383967602441160047471824370972629538562598093869543594459210046102839803539703803822155159309594561600217548766030001407840710617847631733246064463236353558878963027886678780143106069399223690823660622296391285501113338136186540109649759318432612783904623450707507934142499918034034312900459435734058837989199359573367558966860251386913074415381369518998851447560115158133722886323392043411965605923840148605340536428497453069969055885566602454155462701197692465618639125958289147936501431788177531316516876021642704044507005791659124903433321449290455162624217963874890897846909682627618892350288652218808981672056845328673704160734485966836518603699364370931112929638094537990727192066556168003382220406986281314297891509944962279224829845022513766560238517945027175761663814580010178695478855429036114291648695219513042202405963357423181595271374001591474081465289504326489700792142437380217722980348330554283881069635831924742070719771714809458615069042316084701857351704529687168153598638268401279852499363667761730597209034362853684280730330177190658234130663929529045233924207243186842213736162254220419285840047060434631993457114349019891991817567045180362878566966715323773787672609161801761472723754707042026272270511787062383095090203480098537431108825454348401470438635948388683019577886154761672521931575524048477065274105473615765916505766437836377534318440915201172140135397421911015933293865738800090775915570093087573527120557958888001438797136232731863875373639794916212030018758056677733993480795287683466685498638981593813097919396336045607916819491364818403066942454841556983495735425986478620548159397055320716278256589264172267756965217148695647069658437001466755696868678805367156265102124374589987877038662900039446707682708104623207068126503970207502013335120236955582302338471509932625912321713600470306123064965392076287957826195206903153120934109605725475054883415446941897649669100258937362914299579511976804023758412651728605701631424537872942567276427550299237202126757526105489900758035230802204337837000346072553376110316460752409856980071932713100325011485738847940098647387522735922630414328809788277034561941998580968211053234306043634104372863823412141426263287478688635353814612003908712904653233115476990438543616000332524656188720887986832293264584134378025887698126559669951882044838352381193815882174213895921972712109407050427772328849685948264977271496238419519900278612682905893625506227484904875667801795608975977139362209024057814189064153941894959111777285534376198731949336113651703249481056619563047674117492021189800808511186696943752703981426766796176885651509904193608177607937233144998345555711016187098374083179897093563270787418189047315192168710251310600416406763316530606526401783520726204628861060246142097619364723119139973823705244862959969623204313278667823857578988853144407411651912863579236599202994151161817791999528544128241987160356046771641537170833543311652996480564556924187023671551042686007422194077432576676357572368196560696435175318666863645697883626514395245090963556278142289230875798712635145077243315898929241851926934419740180570633839576848385298015605219905790760760567061789451792267396607169620708876873936677192210371598010167087859734239372722069478241483775995482981857827718178748626148985001338404814983008695503510995061161254051920462019002729685976747756339766792340182714939527419910209781231884988710249500442944567568761302692527827177319541192017193174467704468382004079346373144015800018808721664866215295028700408284881216144458846494270390270042410374998900983272916646965200602461118004308115480230093226822334728326108512986339886499506051621519649414817403942120135880280179593237573221540457787512469715758732959311507300599143533468013450618392588191153169882268944603974290895125944102772046076494486480923778914600665838298253016994822205002064199757797031277463201536808442585067671671132052518036285789063972693971311454267334996477968885816268902813560121262887493507928121135607110145175699463448432486799250506143786996724882157961526870046955098862939391143791549579854123561603304936685548742684745132305260828296641204070591100449434987139652310556833310259143795429508189102720408361660293675838646322258738541234756678855348810508430901142327285958265564577560570050070542799356249031079972750619114810177135333663341980033510414930770261886588630000068458836506999915699428532953517999324615753959219535505843254554984743312989509280278341967843602233423849170105603757897948672061941676067383737961425403187677596803627953227332452565402676669030039377648014083518590053884436168874541514419282762071658726563339644420057733321779626804535056212817672713088471820531983127227389027195005357852607041212978490233324608182628210364245046692395791951640001586085043318031637732551465047959959166710097741275854521470916891593191207154068157906827267556434337003704678091307301265826163028191210560546296913710735047979604327895626895690262747553944207718868486481048853887681608764538248016147778840140042512679142885797313493231175209236648347259717661352604980259482593718250441400718723382891223580220748406039757786638188590532163691428230730077833624893469783342143849458383119764727663692414488156543201048808556090641574475154847232954070190501241715634141775932452179312930285444248085795966228983008444880108628772303835068521466862489259028140721664511896253941553553841988435435494188432805351281634822066160765981769412281946258819769261951824513175050084974886582837735396618763051767412882510216841892250654872471420651414701877363897685600157423227629215783878740883692394157218542099069732550162980423810389369198091076587552537931539174968310022803147960607954618621215712962672574254466555131661034257922302567436719289410329279313382643315316404189143260634788552936703789695950977776662014629790232497627293101149027011089392658862585549909905819086496579770627341771426202782311344517663842679960644231809751792398280132537133099140269960978206446727807513162196592201793512710804652110729536921694935120430703944451035218469510223205126811461103871767768569788376472225578290669710927722089713187329803960327719047254723746684584506762349546667511974842710522221315213852301680814820409735680272453832383516860121649976110501028670103012715450593696311284429742059267286263122771120282781554527842430734762797761143854920973839903581822481418238033301968708608465027696221721236700970551172467929480941298312504656713178805318920478481209766953120795865165845276081110702189468740220470115444100893938692786897910727035538196963814400276318991264299572606564655301814570119813769656136133698422377097645854082264534247794562084378877972638601913175201821123864719090509127942818585465484228598393588722070298274786538016496461139190711755964485265850952256447350888914637327808017433574977979362000068978642038315023122267054476448112858902342612006727578319658558814644164852599220304364952650538835512070334726760927013915564397522199302495176540468720526128489451104710136673990269436736127214802289322927823929540859628530858143355876327361931053345228033358555779028039371513498736317393186805458325351435650638989616256416579677241369594410063800854161659363094333330594190248819039033112054532088828062884015642268049880397408683700981122330071960365548772516059348157708895792557172473137569190085035355551178042145521844832793771616559752986634767674728764696938546076686462768316690039923116734122819655165237616538696248123984446732171629334740266389582277387207483212199321660997064854632298892491427813483683180735664298259086141960653419827505648312143034656230659299850960701115081279474918056778842525531228388529866745867175241195523767396198803393015364059917278690948232725912912609579534988674354492577284027905238461469012831019332664081920887976033904865351148972374280916308557947555941775502356288993681190006362315147210647484176288462804113335235533497190063479152985536663493112948897578452078985499875152949112648760964730943598606762239801862176425736672748622032455552675895606464949188728765751086185572344249281619559083917207838997637547721792398008146712328752975153775055277015203067446627648015638136479254533703458107358201668041775695432577267760997590128207695697819818695918336544751099741941785039203377607525629299999596434552903076117798871289741423552307421301391518744946893594880262684993827350306002216164807417344763585079142677607044534829279549836557552771762937925840741332344459589466250286791840000402533258316520448783628221909602701073967860461712810955260553602107560931666766115578915993181953272468198817086192094138142384146186239390032150226875222754508614646376572526802352794237174789520450371150132723802126140233095436626904688992310113201255151089438481221487889370989723982771290973948327433698129585136589313656324432362076251118317309946762256761823649585464961580542838970389365255406893002823508738678767391059248231969607659969019298359255280336839669496113593379341614616436120649000880223686674639088545618048739546726263005022753784663263504354721630300170665521430440505428308083484404747111325252126525668911904338044401138038884838962975024294560621346576143453014037079810313704295782600017546889070340938081770038257224907705940729482897789745076333765474051261833300408773347760492290228978953746931691736844115291195405145691538241515907505793574238587907955923299704976889407985099702319665065500256826028005490655927733244447923803988487480818765654441330680005313050404399835505672181786281181395339714805870267956201588105926012837631425095601920971843794266678774916253898495585888572470138300158955096655512338037709033994113197282236554822311159025936298496457229767325453065783518752944279506031065356337739062201420744463695661987711222273346469938510366448228362069290326045971355136079467855579547385780294994402307141722577157436119294527620223993713639820570689784700957523529588005436574876576213202461643342017713741323754684821143334176252263951885657986274827445082418403334001354393176758223241195658311983106204509596845125472550948389854964063755185195411579621519064730946078236323610718313060853312466468151991220009694275340243208770983103632661580191305190662977626658864368247492955789821123512189695606929851751961274643959502117463332630479891380401509404473089108323319944611312924164060891121538584274736312719566651533039994904045117763284154906851772998678529530716627594357002465046001746132960554614243183091449722033503308563324756378607696104103892707259661657317111972373588764545963906201582012313208288241002843228304995356113461048993305252571143347504082628481610007566407984545811820025862928844000783678893457570389514253264112717393639093299922271051051976588999808939762974433588510022532393831231803436383703206812742937123475507721589567546134577382997120280426854617762183011382524657520116349838831130352759647556977704391572768565386046630470137196099735635169366537863415564132878817440048192891054660895422669924038462048883857569344490033735705533324189828679229082795955090580242515965656922892675225658168505076152402826720309909288527263208824653532165921263875373975906306226239845515551215632412741525761591110645836377516522087046739588039447142873651608579239345867343861439380412200309552420797300495261227419427574583399401245600201562993490930255652979192618159608651202624179495887295014739089558161124688202269611327026677839189428784409341922655933227197061804633743564266171663645751160107850676051162694434320907905103756539459381155077341930320814156665377626871886759183404337391006416438637912194371578469092750477549443517046110531787562928392979155165568654363310569860117734142171153857704442528774754514738774726501311663564419278344058049740669426008668901122503769327437558359768687276620327033668399893101567151320085578068489734328638023319550429572388108214150898376593590568393589833388658262208756324620891500390745789604424152730427842478911203399149099587178923300758509431134521815881369664418112429056734150482831302138704655220445712525989947535248220407705993160336364736142975041614624670618784356925509163574415157144416019107948007443900969695481910489433158731317643319875370521431814423617546814735432210615973020308395117194300828620803641769772176285974714994555370237589615482212592591465305352729760644526849673302619583254319186131118407479022700602025333073249197895764428237914799163273342458150594527602842421720330303508018100547128931831814469496769765144450695505877060848735633855440071597011011193665109941788982647227394921283829168082781488096270982441059992700429214969864802042249781988004479408637258660779742494840909654531123824147225429643517488109319542614781321331022491746291278800733373040476226356803327601519398816944288674939712375048464871624241769611792536242003612483224266094341516479767924762560461182643632524757775548893738485421761981599212232381383411433432387500080063034048366935860208965950887121396385489783367256974011414674700959379367007610647781718478874055641878606371197968986771410900244810336399462710978066456943542964048928141614558746863151642473557006078327202474665642908639316330727979347921602665015175494210180809462871545418087588092532438834378129390005507637256536343052092080306333253559815246237949855061905768338436463520665354542304298949347395416677614040358584222839001435151648586272945505384664308750784494108554538899648593616142531383223818235168495607795687745169255263970546422954353465334638140533772959529938885434812039095876314247837978511632829670660247075539610244498288433360781056364411841818860940045773901143778152798061663016854113124539944663590392137849220835614563462813740383183446251399960671490552995099725604070376586519794249859024711438483414998469344696707334204102361129249752780132986747897284859250098455525982403601756957069989714336936084394411074597337894072879429177099841907473496810350972297076279231702832155147445481466713125927207475933436495995643627361051097854006473963507787973416207324396049887553163029922462177625122478045307260505434401498082118736240154023889975993927166689846517454478499911176982452654307536313136023643896417907444073799114369132664075597498870094888976584640506424288392821700083041943698459645343339685949670397988092786478801873865411969008350572767429591000253066567243044377419776464403049123617510203104881683347146216228116677812057851802976521853627150328546713137773553433129624881878390417224691825173642685234485803858371160557524011730902434954283016961061490916050403479356987113037447032141725836819490181277027469400707282028082094327528940496646463864314552541767034106825684172374448901336843599911201817453292911840498227689432730582353516583121488276580584036562005578206100714455219764396504204599720702687857217363168330118028770470739970862510211487125337300764055181580151628390086601835469152816427965313420829457050871061635988505191788100826780903511316443876604532442089696391258419168954062160627067148689536649015365929123709629509831652470320850643682330135247911442445125893921443361415874831763168907060393605031302503096157082202359080484421005706159255589906817647016960536314007862838433429588369877948505478605537577193366563301542673602242918755704420170337955995410748698805500836985702191714039290805134807749547685291584299946624369839024409311472475879926024895231160872011540568106331804790181387278108197810672476501811552511658508897611755699796664046329017509744214803087739616208624849344108884522629975237755045293172578761249426804968778581502725017946667758088352430725035906705752799405140836853542157914284706769197082023412185160325958498517608312182514948145699305789952088594060066266573560550649607126138310383067943994793262084023626243941127826827372069668251955149857090657761774214636929769108650453653646673953514264065478989125106362148647740791723687025633837044935447045417081301170160665020316770851421329681113796778377960317883298827495168851812228479807504883041136536531660980015041901154678108104459562977329588657467755081688409555696696756181679955474882787769610510803463931688555763983646152138109933244833302706171961624682346742417227054958418273663543734658649442722357350916887578106513995366038661581406628737952984878188416244915857438477177346957923773385549342825470696328345836194816377490243335972772121176775094360919591693192459435153243493402843040361606815970879804809126908201629780656170191634660052405543152753114522518223211803739332171128621354555279510891411173520679165528847124952359417447245310651071195661129409777331670732755044367739588442761366522685340041253487539902463724479367649828940961803950363520150275088743327537266265577033689476636434615390653983025802128502772406272140097335863170461253115352852681252145537290907069736644975256745514523621160308028892965126654038154976934820615512367545655559325696218315175257288744349814975213195314478296714659791618564268959034272991367463876203396007416797732003341384902756996524913597846205407178566662256584868660753503755091556640088806007440748481804264624969470059658441908307185344009729129259735832645336277260059183263829081589079411364407506400156650878434417171369097969555146855195889497908303817279972291911216819873101398116181129676820378856092298530765981175144465716472479174112032954657551465516985040466238699675028024229885336196848726373286176670323651661295127774459279888587355628890159795467836048898464450360224498035284942539666610180847914259103622577222256849153507790071258806618643899773312834593268861169932980822513711111601419680393702637652763582801107483629222074643546846221790410460889594500976627417317149775857356024244312629485905894639694487884499301069881969386735180367174107726846685106562897063476605476709546052416920424732354859476201632261153244904152278803562957939801906940983604001427849724575917791997836314058954103888762313219597299662824030572669835629107111334032084123583522609005400875825868579159200828495628191577292369721268622043883240197222608081090448108192983432465212964529261307942342594502803730801636977421966480089894529424624733908651683909508597372936666252017388174140230660050663991303249331601788169192308792892403659311760295657727482096375492089424472443603065492093120228759750852227909359421772877417044007531711021859042797876597119463759762240114418578206476273365710207649614949342524697880199362303557555120306411534107433457979775133284410081404353731283749653932356065640814234396116278114862463686331514821543887704367948698073863236700056267263821816740621560130278003813677801456422642877353091273378136387462024931798461670341988550878363445251799991794519891864259540481239801502799827763656038192197774602991133295936025247596897522387551355354974991974657043408593570206668012379757407737525910039068912055763343108831074941065513860646584138721333983615376734295735346166543596793438261842381405207637591737332859795079010445165477355697255854218767428452508649461523066589150127071016273229784318338123083133603663904023042700084031578054065428128664213265535005031823337440716095199000265252354404733343355953200953592814182925856847029235186155622252144683014496433236892267986453639769388852980671852442589079252969006011632266305408539412374035733301807480475644469941265551842023018991042785723731295642889866487920298935794371852967093631218567751635745873528163777605398486279486789089644549976018081454067434125567159195572926451346024128040952878377239174824542040410760273798882904816253362735906143916408162853411491384149945588431513561197384168604062793352809890795231419354293810194388563416820353588283185404719294223674025491803509063351929028169438454366535531337396197447241247789704115835992947084756516168894396322899365441511270318719696468540628486106417022306557188104179919429335843848980946946255259743391948630885502655713056745345020078098964509072327962636679219654494397390664233859417658586929548834754843526883113768868539205862376380031506046636607243407744359100604948393413559228484813960769611237714126100201209514160955749215025645445802748861818807387905454272703635521093823169970832012964374358874234342706485996362507837363928966600508341505746240580713328030643953720836194502366819711117453511332776742251656792022492035822125828002848262155448004954783326643476388169845294529164065197029051933895369039051946822713815213257216725134004176686824301205302470251663085593321311831956914928471245637755827601476368056172366672937598561665097866142927116612488096720973422995261092521030544477073732227746051547157531193056946315273495577605664756578652105578792020390206111365200847721756652894854029989500309581040149430244094667349335374607350754386545788085119099509180950413417913244834961176055448471586338035280149345493826832785305032725380272334824772967935306680331513973434981772222094592816124918531305783565491741200543982335369075314020278835234216535703478480474131063300732451719438251154825744952149560266485041093407514711483983342154787948425681432174306382588432720861161293228555003606698155615941482764931775359164873798760391890891318118629391278240411082199350573375872149991472256229473207363247629922910080851923856656329190285427387317397446216220077419969939636337908225450604026098649042637984637837166291913955043259296647681334270065721660399017932270198742314048712527996193289527801785579257835056890153639328137436623715897846226984426948419123886581400095677953581675185182478105630332326645357939602705149642306898542452494805079650095502818097359669671285652654474816882537098792767335490418638547592839614830003463920266507415102198370386429306526993102933171753604982627574526898809363278303379299847404325859424515636735571159328018233416378922644199428424365595068905430435150793784163916718167244883670053554589156248355613312601155242010644429739225596991628167575011909757507508952354735484170729774058313099617706803640288854828921552350542435005157655752965198267676019664981171194301913562305848577692096717799408692457118875207108216280430985293746216962011470764561273278938693692495280729853029568069832976760336105196122652008870582919090362766692459834925391970387065768474422121611608597505741633905638965169861770758105029818105395849437806974815934510883708899956341142711006223505596951476652171969074698302468194789158013933395130115169697593341466782159296092360558745051671061767126046265834957078627157440198258406855839464913392392892576932151520822213668885232799505753528200234414051656896436722352926394136416381644303922178649704491271693035551844411982687281852435769765920726896543575863673455685273205909161927378733752251785058491583282744919520408261303275342937929572761122189135559462914142192245515545328150710736903778321573229869473335795762473051673247486201033675554167284745301092892332408143844248140137332084561218359442952914653994278712943043485502452891123264030113412223130800724776525632866719839900126533494548610973197328313078219041930955929942397393824134829526318438419619162833612974961560061356913912969214331531838802241944598464798586739190774621229670387111566427819882467037384568112909465227911523363344871129966524688484176954392260783247047369642390155173421352303954431102634555744096408192492377434050846002884238037975000855357612067912970756710547368651236367799130199764171803320858711516235940840882251061276399702321725481008484696987591091494918548167210155871416393449043420980465939085509899381825062138228235616286192488233196951091307573234283386611295921195193812907672351146231962720389836703390699029060724766447340941417522678816113634688830501779232898433115911202341086941149541677001580956257399291663672464462100864932570397046670331964113301223837178752654971124839580006468028067673778008233792380888977462509270606850929127143333382019342315312955487779743730063250720225698742361587906174920549490902733944130713296007855942297461462551018073390338025042319222174557774820115995203677967204224279320989441229029707080971422555870147161140427869359210076005880934957578086572802058512217693001075446911021827747991891191744811428782864404217777135131676819998242225071375871002619862603227997498987025533059674816708829023964863130297318656753549934428921108760586825496539940881678593495324782354253110994782520949581917978143604750239383801435503516883196092063598414172168912657847330933484729686221720871764119865600532196933182101064575232112318475801480949176648505433191848003118283789310555402759297380372465648568535486682095289844702184611159163610706760150715460076022181088539528371046082703525401474699396746230900827835937567084546653485142140851141429190805261391520698273163981994646630473412145784206416045602311178096646662376820701492604690930711065995546953581910905345405505957686463287177919016412480968831946449645243306403536378430174327770505550288385301179795616587295574576058985208361837672777756629032716726318979273833287365101681797722164494316457266489796649446024280920899063162462647645780793201099138910824461195452705238943753769409173727860345050348964613285061018032537820396219643978830058569590063404928929821721878450431066197179361308935161952235887627843745471842517864661143065103963966429787062382790714689655770111292647357696195171805633812989083509456978685073595940934261087033639533459366100636537602379838893042297024950699440844648601979030780696863581668038455939204991455970433754168125744562684106027263436425152754274822932688237175628975077449001358552863245026037069679422292968381571093037866000124471025143386069160634678956961771654420391494089675783903466934134843057295037672217805192411872502763155538494425894951749355207446832065868495057557007041619879074430196453621031659899730357503044096218911417827497937132239021448585716351642195800189568730007604810347467956777811442056068415478620142222574622981899033084764352224211056640365768843272369581320451616193223934646193361214447064360554685998038081542049080000498526599713926691603146694791109493026258879316364966912592545657181505806814968849776770411023703607555175718359469154669224028249304073103983001876743813133530350488398266439553074060256281684112129866350308607500344492460395312929821967591332863585045418484227797801450220690260765933896357585787206449401114945621886291496705274494654353683139948536851246434215792616643614584241419574634108465945328473422247908496086632913034633426845423417872387805371470699599427740188490362293642513579988895038606867839346994183492468152180738542775050829075875275938157364544607760450274749676388225129597345803991333845486425740144907014970997129927274614447517878999737789855950034978404336847887105345071425757295151079741339747761259034868117302513241686726319399393430536413745076209592453681427463503300403375022294532731502471291929037464898482440054846437111465492975687690588290370023966575915200447485491336500716982300833481841676716314488403279709196927911336329996193596463861278187837712023590534229762317073611825802782887378148658288739677707416613289813033699260179719826189385129247937050717513367321156280913007841288362616542374043651616147278805991860548512997273230912366665042063314431232144402522693686373553452363396075000693274397025265650355540390303969085515952164330907620617288541070397094549510838018869946039117040726230931006435700243853349592743460392067810686598082988950763804146318371857437642057682312304060557870410537630117248197118584582183331092103624751832259528334810033816128974806775867270777054840991926095883991997790998835934654997189318091985605255735565503541302285658411840739438484477107763087332632586360528005913440045041363297873526139649126319648754241509082530234058141632102264495833566700725710122600268479667212464500300412152893181767190184902153595160712531887645420078053951955528951896915234136259212809298554437743409253375587772027979789281572848965222568499648527004787289979008057988080608168515429831509353172730076330680321905760171521101410523339361913265310432289415138642464462643563430826860568464049327779957721349077174727527469642578877436919882460720191074570310894744269899196508397439669272674780970355050732617315020956540711843268441428795453073093420633612254083334957995792508763395223268241675974913018134933763876390343356540877354209560824729054106687648863071942685751722595846562064365134655728199127500373159186409929054993971642993372159389748814672211799164742557778904126176765640697301267268462508325350639324671666732375132994219188659761409048991998753979094622557869729731541487255959064450184949347724449742040074966192149593120014779046201690934155024160625649248038076727968779349451321530716937704937349105837311989779208916503720940966538687209384281786779803250244648927138850359833562233091693139219051448389224899151531157971126294460129405950320351731407890647246387559756391456431948128551374046129382238600317116760112249097011320939325547602244275593163010214676626438674483188500036961384338850475575406623176767027007493103404714898191909097699939665100043116120764859735965347648183577441878264844689776696109113414183644390773188969159019770180842374805766263682713862597232054645968278125251890556847772356360730303194599992668898347719451828272666768220128047801998914742151121847994980217063697005310851795911733856666303218938097449281579129432397122957475743177967382837676197238620268127998295348312599810948479825440789499457378170186119635473338340096823769184860347559155736427695150914234861396005746999525462191621394978507433681621027735168463094989074514822339230920716003810641661999467525818979983414315848280048010048235788095455864615076710928565207603960933308584416889015644793101106972834695447065968583295169176511539816524343905354158681134731571207393977911598875934538406016375986063641916720812390783232991592402205562076421353625226181821563200231472460141437369468646455114766760555703886199893865596885407726186460027406980283833951808351272080719140309457856982092615253627478433944234524973079727117381456032596622272173045738799797724525338205843447752783889956704249731018772177050751373537248307429478459540183056559302417956168660531725406519715205925816201500267463351480172556475490128857753895735774290633907188925389521623243156382027376604966345660239308169076413766388738271646839731315703941768957508965469413533698732432333354716509574478288582714699035843911921533454679911911081294488145663572292940705529385771680308642789869554947075644280663031173020803679475446478377652024474592358017349075131416115195419924221840319758080264829355491974145709319005107603258039444498810142769841719103262091329645089928558569828106211315128512063307585799004202000247790669183548614118896016287889803185515373259491292373275587183500457454835775415587509393370247050616676634116787774252668277294575307901511380190697305373696766125830032400406714795147845007553993317753847920855914910957212524267475760545791756312836226888416629699894269905009055554304064942458341962114598655770642840665835327485505119951040699684442112541929811066003754231392494627690462986413382302072176878121987215801981329206641280884175597800288329342887201079519005100152315912726613281079128670677240001473301763144011418704311335889614205326086730172406880891444846124977058128654942305262261992550293669828714979825042723799825230803772806067374257959731285643434813436458411178375952005819466787785985015839823542342061571574316468061957791713804690751752000130270300466391655444514430741925617918643685000824471617539224398792542172476435906897265594788343901573118129050685482258151110238121197498907456460835366471983280649877697741760356687788839553539157554930553190641908103307707558801955854268321638403471415781983671825726304721107006446462259669440455873081171944664079930649817009830992822386273956197246552541277045488771329565356645532680347759328617177482952148203810402144408946026302287997018236958510693479233481265630754583149756719265374401110739799160842653363859563524343390022488226155878699462605587772086604142287288662073163993374386252775287763770940605341418880791280215233923767854439717445151892671543785356242418109318687045176166170522941563074770142122246069328880570377896434450376623029230307924732210130558558453581124219653882707413338632746853985212234109101370319022233440638098300230632244269477453803681578264985708416131211163670832478892115047649393802067541613253415890151823335281042964580614816627853947889899330519681360468658122229542912577650384386461301087635585738669426381210781972574211713945599761260219468995670530774103451939847891615751429583510074268846204569838715960764159804500078000116891052611790022289535889462535162284916548181212711938108653634721013510015194309392584252599544481984454724880730405288655629736739583694249985531001906064941388520986918518981551558057641188810959261960753916220779482669707249631356832032370863015273886946470064829973579234465324711420690946116200072803261979347658457539632411369124377692154748853851552319345258089041348053599841435605896926443609637920211037057757200049891920858237451151353752734043938272802602847566624446605640817912502381834619562231175372362186464888709304714869635090861401342512218795732700295460299380421190975249678626693968873901254315595069366545991700153164361641395202999152466544032318005556741165345717764530875140384748256109577892950003103792301296446730658707930201008811433271009368411857117430768206451246627400923669888857154807807263617441745777789511081875693639260492591711078445414862906261454564996957544884949646877280666514072540604147295584047526971607319502830615285799179285524972053835774725933972180441406442977517678349214690794696857265869260859698991404035344549821179850131302962859577966230672623617127313930045130004296240744404659295032571786231644031845955408101193671564284106685425927150651275903276816238605601806072048330543867787635800733914955925733434365078579632087917331174947731661407180351354328058500419007532885334688762887851124186733434134153222879727901661614098915671598573878095180451421436607856884476377428553948701125694369004928624978371433137975693931206370027976847619686278811684580709399585917472797581173331561056801506886371553785141243156867943488415538263872191068861750951555836930916449836853632162993704183872443562137932893004756994107996003351228110548371539697644671053127821828088009832946585479387696426343931240512755270125847146810190887245228729525859065663909826112704237034573989125027603688431860919278409644060007467385814921938138095020198405331166859081511941174051584283943374391065578359080290856197879477045707702058659906133194320829499443734130361617058745839329770803963821545234978295145754374698271054370288699872921415217091116036193481635400665950086471981921870998850367051550706153749219934898943624684501770338356825336486288266639229912061708131112705191989792608507889085212687604566142947164344261350749906235648989835822424906539345069727523930194680512205763185941355559506854554530613570063311401763685620997656822886311756677142882318258907322414753114624235053504059658490298305330208437295734751071123096921677064174549215106868446184088854756149031982453989952267012298448283205150746860482941814177070980738097249158315726830723464676276986182645658424953961508615483935920336308781369468810215305523402417339294892889789441700486108213784336927977302770554406976153872815856779444364107979581607793869619921461381965281862570909975598605832977064718665644465851190770993435422106178565718647625890828619684013985989987853212552691629035832816192767220988965564003445309970262808264578716420613133457332062512455393261125750824300706389259626607120643033449988025461477320812302483754166971681391968887677377590394617835921449154284048041197888881532089081172700456519329304032195600932310648564818681589189006496833451937802849451373027164398688844451793618348865390680538445389500600869637288584191044180917329763802485430453938062525329292741035327790407144922920265797743320560136535926795214902055506442696650584518799074442843958946369024864911462218247156332484258448808029514252914407191797846799860642453108095226525656906191963028568042444595357991947693576849758288725568198663714724420044086180020695824939236078892533905144070728068573514613015203312150853676450708466812515873396790493800759167922843085197276464455424833069403342353068331862073938984070623124796822328565143540316458145008902150132125513205063122838044463094456594181812916112488951450903147969518946451852731099669132876245996902760975521903456664075721273072625857904532103964432904041878685982558042393119764586663551203812086294308961684162342847157219396876717790458810238175609063521476364872590617912517113961093125244173153861925015908236448846312815304301488604670595662726353091015857836502982879046768791558286516961800011213031249867651819561159456195422144930874304534689422354432086080261065808445263310688280602440035445443132138166138542374933281396765856435154880193789074179394772998161153471009888298319748156185613235753281504571839185385608298116016941920186626307784729565308907414405184368830299683072731972328448422536301133676756262348401963762706742255852037525036332692692649204811926401688303564694050673158961840904065372228178033290044437674857964587014383673797850283170030610896390790841440281560960813808345880044262374194587679639582462796386401050795003216563692763146219892591198333298173788033344774687165008332048655056128512259350555328816369854225107802090100726279037421229572453103985909598682023905646088785725845835980242644776553961389215237109936535460976447871857269093569151809029173746359456889243764433662157771577607757643044551687852765457601643703101609931270963427521762487300007174289160709186601178099268855522963978685422293644312014205724089691213845774767495383396026726252449016081572867481894928360306705111044246287496053185578691713527233947526839941250968462937079982823844054552983480857265943591870298346896978011572665648700261348620449370448858784842435435868610327278569280663294412540274243673213425629459589691030603802383748549329571936969319290127775444179238346901625395872250097391179069750640781289216615339850295586237703911708775351649683859873317020438059911402221486467233643373874541164539281323252052479436539071945786803592962218008579892331513322958098830598148535878490689945345047620146224956087805558490528522186619086924064135196839501033975135870835880068060768747223379677590999021778653682142057331136003286100830876313924481707388705771442330340160817684504463709400747882048581091731327434860111826817738744726602738831375583621000942809410917001855838361053224620856328595735773378053375728000560926468861346542116665916018090671755532171950120483485212263985793675003142290350649346360498402520015229394852862364067454872719734705581933207402845529969942360088156883398294981439917685174373560300481612798574207992499561812227553582759274202085214435602077955067732043085993461851913659180154091365217429577941386162358375323312226509709786771477218400731102443805072771119411341391758663854612403502362717736677004574423716271105081082160096747596373829716737066356652404319180775323178752964689524622776492847794743401719989306135601907787992817969059279215898602616059958010973003129122877104841538626127132423505911165194580055816104649777127037804167305317421995234748307137973420816323762680032284357408477028669405980699825246528876910735177183395986709433330731196185575113184542656497046237666106478496866521478919572496061064636663173329436135571994720346209389463964362622350114515519848839339916624145493275244648632448187372905074417564715309404504656671935071165408026270656148894102207355644079026822617260633012617512020909825029977868343435236803474286806839706757441567088985688173235678013025768279961803295523529696758013165404438900663716103590137828383019978955600077654878665209061619555885430264996728701903726765204988920387297368068054604566602704970750352291033567269914244892349572248299409067766314251822302228796232927774278325770529656033992239209285565121714406641711952284955544605786286206270827671064719958534639305236731735272173993486774947730521269842131058255531120656615002103433772790611610897354916979580052082756268354914030602504985593287154914406171068995444922509824626099216026668043457567460755573285756573857610613535795407185896889767228346840157563692637689782419747819933690526347282705026047910421966559185964758218450413410084843014448512130876377258485455626710968486695482053073075367442647671768659839753389005108370130073839829674846070502981683744940975381377468828586200952474926972369556826642499708822931713164684296889338977236071437989385194499594565838532402628070945169659870403681939425247029384787426754040303441712405528514111688706558023565510485831209655199632263358098831263878359506196605293654606195698450580559560303631418075107428167654975273947427405058733161118971069085512309822890825356954540813633094787691849525654414913702208574650363825830931696820760592191024744426041841850549089505006403310185327314438008409296424691582574745549114175032063468150846180296628427642163859634499176624169438164712099987634768560790210856768593017767990810710097462456444665495693487641061118049574545849087306385890334609779780231587992781656923030138554780646534552831830529796516971050375320573309105454412095827511992008860556650554742179232698618824934567338836421907779077194210316124969401549150108907627711096808998758353068537974394077116232402683418374403223343582817234761591852085774018937713260701185020566782526385297826998267948804812460697844297630444766697969560145496821292465756265575303401094251573868485725663214718001548425456032750278520685484805135883582188830043960973109094880013973266079364007806000661638446364256525803616845679038026831170863367584116116890066558980992113403324374923697575831107396174112515762853711200655024123974211557558953594314920909882521110236793093785297001774563046964857697859260730157938404647767629319629335836500240318677823332427009545098955011303156115848490665079561860907407289714321152756343457530260964575012655994603406853173292648755684748175855229594558260447036325293769465690713449175986086952177664717166218255880324834879205378751054656640276754870945668384727122294929042103427802023778104669355053040348059655293269463003871800008316745082142303112106626889167391063078816225287294154510870638132309043238282577676682026384090587084186260223329167318690113824664564999998954294812816505248613680433161170824487610754457565171866690263064676693175105420564363441058392730742179229617787291841658465964570877677415823269012883134403798402915876405112184842556466100878781780654598478649734504179382105278202030099298013903182241236734294342072093796354974232917752692413280439635701971633939482263597607029495769768137140548550555519647071581136800795561873415897509290281906600769230944763122012271474506307367593006126199356598616061412168238889052313501570524071787810931841964215334483827278465477980970826547980988005599683112689100223529607035857814117365262885931679933508042714077932471741282479570087095914174706450743770436529990870608037130666223621603885028220281001644783859713384725417627140462621683207973455337473139379027680027103693042379569047457506436933504016312789940653854620446796286706154976116006462093509037108674961367228117913029342739583870397625221164227179229793714813631223710503917159526001027044032092034466732923105168334163140885003153851124593376864208421689117719167455161979796196348373694623620222840758618629794077517405990756314667696944598038425936017429520034793269716033730064146440642621788442006523973958187715474898504172905176122659360310493123246068723101343332850774490260418761909474187472877946672369572190795098832679802597376815213812471125961565282847680850232461316278325977229281022754262278446668988248712942803750489349015578584562161805678698200881789885283965940192657944777614675637048162716022418987516527191408947469412151458247805399093068882792232037506313940431387693607233532377996569724091957918557368671551659477425548905246233133269129103177040635193421560039318118055651266256897986331807140688824943592471214475211200388321822871218947119246405780854234631782708170736753012037531444050879331210041535345135041693264534842379467986379021988056330713070211565543337041058813898329106590441322941193362817790251634313957702455389759789554965402523258052458216565764139113152883398473633048816026719252206318757342710025572086325525711696706380876083210417213168860556688458050316047831660235734693991884700686172718693761347944625751856064697936115626633676939597679520100634014320388923836688579098032590016077176368230281622487094154645533295075862997092004601355958027775009020057025324171241661335101019654982009014137060373987095923594657824336925907106267122051526402024972451479464639223849752496364725141772223729628339380815087363253842540063646724394852658712505452394068180875031130055470306381541105412319233846821623080374758084026762190876521498657367787661836833504848086531343667402489148173086519974913113428677983688864827292162973894740704241024835099794282953395856734535606692988902276334776295528096983969650335663007895154188072025582036532055680362165474531471705099175347934059131617938213210964697167144522503081244535148115363831081743782201428648333735818358226553281740993318775051011389386496544132069189418984605795797450108647443941919817881404593485537783287596176062497711688653581352188613916823914301487120465186509337224955425462975366170113184833133390999891402396257302679428657155506341337752975944182204198205136082365097116381910833004220088533586630039657800163625071650225223786387708424358826554425885118833640977783056672719143320326658701597132688845496405339784077326643723670935403507381806135806549693445314471786775127030301937934807505997749054389077567407593709266696746907612180023617138511252618836754668608882103308766521042047587510674266132161234337448482461884833187565622794324211322764731144919269159802332619804772555011429008456681254671547690321952775698875227841813664817391536604659684973244200248035046304206276049178615451423965485319784478999039205619495111850137071528415893538162555525654027243395159442844560473377817391022229796439046556935037334345928375261192640000337969608685528465598762975020234127360827660529744775161641798396721544619852688449745971268609606529965967730689284345622940785537183915815634552498410483263372876274440807175951232508635909470904467459247027211334697154032403984771664738973275637752063211059730853211539329393271699665981903904796111579697817199911495570232903970028099892886818930556171796914586342421626874584547681949954901005372155861974227369463871698271421674311943715055408538522387646240855287464420872689529353942747675769962976806876172557765589377323763935459161601693852193293073288904055901491398814300038419450919725303225078444576758556345533569388836416652319510163577045773428157915000285308030655206401307072258518073710821801076959111223860059834350945813795163663965222393607421148206938550036240347682793923128599652347286431329553088471781694064215360416854997920274381336882504067993288424741222485073002487309902992110376591440262160129372012618408903816081169700855921678918120518564955699050310339047396765855502997593479270757445623834076092283263526837644335364213976738471711163468480114434029705018613204566575556470896150497324185916808375016458086257730362058116798963490967325913966386506549019531256445507191327840656507129996539337883875869723458062189749623900045731807433836883183705234310510357677725038888666324488634587752128407196275340972032916997692236792391463745204139404617232622130531241494132268828402068463295718157706641408833564022298864773655706527462044005542419639512760054081781097796141455350937678277758795407886861121353964207613651349397122666791137560753457144109995110698755242455857141432816161641141682027679290644287758923275606015925577613231690921050910132200153913774197062772240187837534296167318056963972255509420014074947311055768459406603583911897331128609828698770827418189903012103372032813553750347035384851385299199995373774683881833980960933813599441363218896325518654378442178202091055717137335705949657321107095492568685726470726185756666442219208573875617785319118606926382452052343948436880327378713386988651158069692613985911516637199577249952065083682941653413715431679466917413574004996340189878411147712931133101788430267647313298469369461396518708746606488793637780571204705960122196051703936167852205073499120888453657216042542566222470599033984505529519091536170289490268785017700432127711057415540244798570300071290034521648730810408419234653939025535048145237376409319761103465302025822745052555685326079999836072866630118681877559663705598206952198060977836899056055109232842599959063652805524530792767675593705154605563366879132595748223446114581052369919849997410941515377358281063950379445106337337571210073251580867767746248529155215538591275120998186559628412572554565600385373082769431033223375620358669384238097761993078678304339185244890075032797796412071416926633476528027723687558839546675069931684745191663048913364361804384225495338437617404131099214528760870493609189142241580799900092111673712553133778448860106440272278872481167112469240786300060465304317147389316865014225692373175671220423902255774061418888176597375520244226581085421825469678705105569372064627673579586145340376559105641494891047984216531774902005334238310783610456844474257801449986536370424198390584505688531798327350945108959374076094202166960288492160109060164161324707438125093281933105049729867484425507371689954347196479517869444010700535349172953773730660632945863388129878170063047874156176046043019727082358070651109284012292410032145262947743383514519292782424183866461025691894633567662371975547893105771065274988316072897179964517037287315605828991834414524610059776404405573579317950873028191528355117504600050800787458846035560608168464316522839813534979561609505969587456531983025975992961502121378460638524193250652739773869401069173385742609814270799381929288454009879064207885529728430257524246395512599123827196665687858234112668257770511297837115418478454038694239208978459605986145964984161987424152711105602411053500153668795074483046704030481263104094477151875155406902655489364813138363215948782729345894775217610101091194370071109192307729054256640359512664264672114320246336879584432805632423297391455051762707385304719555128883245267711722184864266797204310460764600425035194132536668921604912457888101520581304304370156584787893340411649135093537357084758939371049813252250710201232899314230485487502575098879483173363612127138344559621865154968756299933784833478071710467957338218648525947700091207134555124171206197866681874717553716632459608160055582684230745664223469477780447596874953960061722548061846243227756501546372938008855852823658116670107419794477197460616478673031073417569533672940246437108726181930540206234634882927118856491722362474261115817760984441265891520675442683913200085899400133433178326229035288220636020639778706725286786987700341696290712014454084691131818100157519801760142943916706894616657619591366325078408425943514989754188896280729000618457194553007016377356164443488480178818797619276862609050198921366469451037324639299613519848703987711451598300904817712245570514384091358146875897721982593454975775709392349274182327987837362079519089678737355434697697832292250258225009899254058292464214783104193651337416196700463934603309843322335312065931393783688535896629595529942182208286659587531126661247565136382487446792934922829368108811806689577496149268432073872405080656912127007118388045833020898911344268423310228342132544756635874667279562080321440936150850318164476829023438427787182716548166503874685091816631018588862832586491041483090372898929063469687913483151793476681423918903072296080785407881230132744817948068693776638598932673221925847598115711725437330787101307654483421617478704638922781172208541842956208014419467367923803579753092835701159141898676051030969393109893873331437591808414080916993702179521700590307676029288974447256770423110537327709472889649397273351695639705946450498757501323545986633700302199829188542071026563058470410057384628310727429858903291090817807537378769563002120635725299372562354790756702111491516305344758286128733571008655195834853757615611350216599172117863250947700419837678834126550608065228056976610724468555865934474365868003093035672006318542775080280862178931556833913521506350130411069962393428693209137528884966312717140715659990915865222641731032952205933045201167702194634825524523206301274078508587308467017487327604985902145273705163240220774933929533309313290275048808928619918701459469785581026434161042001374975825609148532659383453628971889287973433134622057299951226737026889407998994626794272966720570946064652881550156135488822773719992778291326421297017979467528436170768118578380297782110403722770160634564389205087764413937889448131602078832464876559334935086256417892147156227320037305160410342594204617746584092848581745119041404865140753790967078249753158985294882356394356074035169030096770478610311807183112178574437587320569825278085624670822320533791006011461018435917601510718965727426609661269683443001760902792002981341893395645077023960261826117919908844674852441930855156531448668545278834778006273852128074760143232172407869789281338461929610224265623299205651672074394842373552250054947178012062505480631004736969517391978514482756531228908660359336480488265852535775450193590648051910055563643708740625140651333219824606906739707973788214181884763589802471092139760804320137540862962477818062430634286666703979492779822828621703667189211619910929658667412440679807746021439692485502910244603189108912473051153960371824789546340012247273596898721863560147377516986476320249357380676672706772173488096500766397506178835943198210455816828073871887627760271269903857659857113918925441527810586990970811809304534272769919515133182934533487599311942198199298847807890193889580688677852429077129617550855782819509802243953984235119016886120966170135219702245461623679721261305150520193878757905875436653330891784467122750133475939017977535093399659356779228697386409047827807806435064576341275632707151246306724700472783736966665924573025149741133113001006082773546096807911427252196088427139001817534005223937502678132830151404329550056058131802882326252382533504251474730008276555896445145452334054885187128759637624406221893011932251827996828854939441157201875006847868283955705273931637304680261955805352049570124158907100586181451336799443342768102651249017519739922178364122618855136722877185497829388363240647879847498319348109604457512281625512820880582170898942659277054949838525486602004803525542821719038048005684187577599776286977049675218103988281854153671161765070776098523234750495173525589482343076479246975638147662483922010248979432027089209961532643573383598410674250734946777699106805899343957775939190292111197729057924507572973102171564948952979157960975449903289326444974291963841252695789134692082329738773976313768622087709692898380584789627025152582405121011305628465138934609228908996092804642423832935471162725846102615437845032508123761812865913975703217535396728961842148611488335512819061340342375300579037579837857667425366434208033066329733058388411535501117036426906095538599773935922328509692624113852495045452500433468254680351928141794247596621645354415055655104396780498697769799840680737028569361806643137733597130040839583340100785778662924476263314566181264504128510923856806762124003146450003589729733028907251089966669253037496763328690687922321572974234776500989028045202691314755017674255201202694087815112835586926008614953077492447542298083007113776962578313530539703469133365562779760495550694255277504816195612605332317694496713509904298141634675952589470517496633865639877953510991280614723771709332475542237393941993289236734160596560074771243195014267273388043569139736109541244133576780336127501661059801439235523622837585333925725154752742840505996550807765118883290037598559058835570479533099220389401068630740210733760550132931186526053913097546437588213130132602102837222499140802116810466597176250493223722889404338764727484552376235504671459862831049647862748432196073196623311055661926097115582101815409453529480014381555605211079356229736699473004378189497635232504869446988174991703387077157924826281678306343078009167870654064772538795375256164225821569819285920172982216000826209719311360276203540538947933332402461217490209655809420222711896034665395816157670103099684292239759388104191887659922769903456283536735258324673489990255365873513592228881501506768545828752180909001120370550692387987566959113780685677233074916735980302618769038639113733079477727607458128184322848808725217365830298411416376183309457550845168988128572556600056310634062574322486213249435183985903037074065839805854411560655515528911322086978914832930957391719843770834448338817233496228775703457296342926955642044103583159252786156988089158076469998839823638935703304470515907700240549440952496380398011027578803536783358790299666664118132720308408854559701312260009955188546679849262519785265254457851352055358270797680833922774481752084118265756026554353108775638939305689631626349340656558012351592463337336335899800211364708456427318381936566546594570646518667244579417140529502585378647324223337454332899327778294238849190780214794818055935695851238316208382136272376827908278546107726251611447345945524495697498879249543034586364626403109450589218196779203986852461024494340726127183253829019210450471551214475765184216620124160559839471844598085918993080501216559018758269361029726840337387509462252072822908552080649064354580083012108530918447298338495339126340876110861289631926811729278195393903452753170966576770239637629835514571962671884473301386209415038972189768989294225278040768761624454741666700036508146406298697013177489038168730956338457869101664213515371320904336074080511055381669204682513136885633850878377186195627824731280953089402167923946521194328601570952716127155786002171987947704155315565910925304749942534803570163837407284273031533656746740003375405659171254624607508299014863941166549904319360464025967003727542059504729384042516421239284212738518383961725042897018211745799479056237417499065920050050740017325809949627944101613656009576758527470450023480403050382871195763014089728513089333835079581660445697033301709532970193428343268760350004041513924163490601526441431664607452101035417660174090023514953810110718579243470777354045614961393458026850608570980720219217928871920257503515380999080443562244570821961401674006169758289518130784890769198814100882613851233583169957981200070840380771451047568672764995013075384691933138718319021634710515662669786593901009407293811929596201136431763810393156050546284856697415777781017138902256776875575374339943203925658840347974071394078109954923263332015415676675562431157905990894168072171417550653338965806822683753307787307102054070222997681481757206558852673726128055141572596966499694453776113086286210005599893521441019887279641067635660976173757316469167100044206346881011875132891717804542359036306401985664477565195720612580687480087442081979124565091933295434519083388837728153274376379504555692060129960471614947024438603911811672668848409555443843715751445710977724708939880557987451356421279787203599924261909358938412306533080952686753579952179876819606525288467540893137731528817564118400616356642061059322172210680464571346221717506802802515374466753178074804847888888289523563084446947593051457064087356810635535732589193795338046799623960228172406842063906559789154734608257690481031151496841072677376934661534784925771622466047700251914891019202714466297384981274594107025550095967435232599731404036891835017787353293354971968818347706004149116742544499816909775498798576543330970500577933497561296023531848943677107646880964298763015103237768338537673559047135135917622209315787000369520035808573868600230995872630655410518485639943722356156451555510759739029700800061562024007144856531715472817885194663418159498467807407206563367332981120151363673677512156268964474413424305361407335104794344535516470387348559214109450998109609143784067228649690827931213232374495067742302633826946964241181512576153846675391725806140376128045943889320639874921898525163521030274804814172556077664304285711981330928259395445286124087069419246344630046065660173914914180327948922858230198821606109495442003351115188857106837382208316771225908141095054322447560180927988047793415981309977190550371078106731950102558230400813387496453394084037796003944974965836477797910055527693565921778608883278246512335176657037936707748830762749814203134636682671650337253621696702362441152477486340422814364307106372943077258622273313360534853681541569963173205320918856225923118744094727152140641086702127687940129987386940612213419602326637905173828204755283830914010062257493274829513865304793109492247911174481121620108938285706813551354460635375294840590496515552222904935720271783195959721307922619769084538257737587963307026610933498711988247253739445795716651211541278801481951118943381197510828056842640508547863089475926098456767943512009572154338751729914248088907619906352322930298874776617044875254325841865466100993329890891571746566636700417651240917307733576792048169164085773070793395027420959355931557423733705524793346664989436403730852365632004993050396776409973987195887858451959827672937045820406001750918536656873142489493990485709174223585397458801995067123845582189740997492143457598069545002590898632278375436339440880294789286446822455192385124842938834878280700380623156917616489054848066616909051144093050406229584684583673280618321099971760870389714886129037592847119889409292903881293182157393392443862695571988804641556421514226665087003882330623519841409246367445886273779001600996785751472046057351096933918743983468217162641355400350179165451014989746290073822894246574609922638993057482235006184612958655731214507484600888301426193567139563738552869379338585961078712007455405937835309376680707330191987646772114492046979105310396056623991072139932936611075594041768843036552943523725076821428882322396864098626934406663567720713664681364575017453255937277889710396398230057528847047905568791388950697578518333597987829489077434917614727081021654619336181868254507468210171420558630779182398196208052072292073377648061778061718516488761302409223121212654746880898292332299349146255099805205798505411803037544593497617901919024733500349276328504320360216887222462476057244812021404171167494999534443171073707612516181559499861244458601269993981159490531031776661396967537704073617267397953439614648983889301820934469450856893399784251851642660702048431948202678980933141929705605392563588875454006222879633997140952981953466288685937977391429680813953735664521253763448355432270149948061976125380768131570837347808968293590957806001399572820030359575678939891573885704677405809915808201767605884588311328456609690781083784235920904561486598450354076269268280659683706726875127561254131759345240614315038381599099837466214776760639279689579892116295149998254423741905652371775131802775697071489527209809366430584373076102466035646337903521904613147422253395629679425270737409237379430358287004629994137592919649883813356020494920004345782252310743801010957718312699192758900855597572777088402389644168341766250845236055684406933506418218768105577815060340043683388883115928881940920118981536831444518638586221199333144495970752765516176612659252011192274674957162519127004801512993086986500842804270454162951758479403947545028691448581857894008058574264220476313317059123921968005998121295402074159391117854634908828271898422352472185158462867160367628105493729127145673089572819102074727752163323297984559152253765422508735333430964899957597013990018096784027380057726406895698870553702238933321084305769793721395697976337063262007836681586815661279410800269430121333561895464298572248991991129052490820966847699403558055908596094363695965590747062215431023721739194800496386060298757996236857581233815903925701137358979529056629731847047871076538822347834294079031789848649681272194160900708134268077884488720435506032802492575994453834851097645642273789762300359558184531817015804348717399241634287482542181886603362664828268613670778225558683032496303318981564520897787598751516991640595405610515744544440037843092597762553392639256610642841028083997279487098530467245373543356997005715019020578890948391253797604542111395501340055697023977039568594687308673617280852493924848516877335567602152209971228054982779981206624352493033516056119100889483974902518414439116334212105042973414693219672747978219016960858771716362055840759194705183489837788812112767711461035996153061405856974663636051762196376943554815230526311686237765744298270730192546206150324327491908950589175763543742159308839733630279543617128154275697465476342393232045322183144488689960480127154145827012726474517477184787307499713057018591361306720214949527573337339416991680281116778947679151505269972890322140219616487608812832013568363210585480802932890599047438889588186402506107847119844220741285491259703789032050415222316565548584489865763834639832709398284781494757261817275190556534227296880242132310449985322981539219406603807976780230919043816382927246133436317725385927939047639801501846969290426560201876480684523823776340316170120785955280500798144531813489036679967736594548866928476118350620450446637472810636292173082082105719136178577880692804646630715506393534350816513390750089377575349975662532273535055843330121194891390401546934234850253109307851285486326981988022821164546955494833087368771214543202079917269780643157181041120972515681167272205889567882956876469305838214304113342578176586480456744934586534757762859304525950036247876385726962239021076619170303435666015306482226762665782529686365399148172782630972926759494514623272111084288840858675230451218184324562609505621750014488382204648212662448971765918246288430934432805094889152075921532590678348976311526077965744454447051061593666894681672038792743223103078827395238779090918402363626278099856641014229220803934814544084763865002626948020043469461704137507686550829157911327938507159359127094531759733706626351019513874429021284377387181204059263079879108785181106119842199177279879973034057928637167075125817216019796507555045469727765363572799661414175301554202633724771884611663615165694479110204264561718152079654157889614487973241501756856445474583194908699097379968318153715431063082555176409777831597337462863147749906573132410122376042909294721038908230627233723187024485115871871724310050803870770291583090680320871231352853076360554125765534825830653896554835041005729570383866786671779308152727731405296759565216882673700497990631212691799648088825955572160120629053576940688103605599883752373884913903515164837306522247288177290430419906606040914783498649875945412447238228370916597861646874024644360184426196730840011636606498123472337714902248010202326326964095637338398650113827265850790494935797753497419716420842984879983792919558311551969488618113561077213634889569329054380217558864020471347572863828121408886443628526628450927665820990928168585386765194492512313937056174264596184146550555591674641239126821462214294092097155077255650394354316871901747568569699788074448442978482353474767376394246703344900782235043066151437931557509477997911554173644702657280805745913834868602129544484223300918649819593649738683330419011427502327036579132176067536029056460144909089290386382887710616347425351135292706754186684673080668596239794967052985319090241335151983095583639556223053415527960386124987586772807859561858747704070407868698656079875240611251431708244780310652905330077337294592428607759944326705567948587177414103017532354549624495470825456239233502292387396205719999733028725213449457734982470221997713443770334663297541383225079098719558145981808026144692883677505585848268183525822240805183551581418960342582105175408555886630522466697103178414633885863144508936563471177099882366376028953652924835307710742223026671723982936125038794573661776297124031906613679799832561293902489367819083360392777075601687738127063647314476480642586788155630704542466732227416214697377705499064489890623909735962185204400766156236774494242149561154937113158308643716516192566523688484355824206388648444084908047111658732069377229450453587054893974619082471426936075521643460341139582575168763561985079532754535254232669837050331396251465000547758609228902158231636056850102851699555559353889615025254059778623541914176079574211373975151133670935245623783539808108019321165217479319074650326274514266810081689773789908408499416564425779055443580492585281919729760863217660582009652444016480819134391300765613734237629721344062718016973142294306849613870368337010191508163770088998026108211988270250366933537344949531831696629073331093336108926883233108889595007079810300922215288071571430839561457630481747097822674342449752580844319629169361172689987803431243071539921246821149078739079440572805282912643369968554546271507275942744803603333266777334702793643973837939246880922698038676317495553223970315938531910463186217633511947115189876463097201695139657850913782928416242588173817314752355100949510316238943655457228834719734347824218182785617413851703956529304042094664029828931486800744006291729205587548687582627427610439145589922075761205609619765375536911199109720173110405152923654029532455656700913976073175761028203998010907340309312855002345660230225136051102972632793734121128694341742303224370335200085685666879723703861571340066431603462421732104126134389367893925938673255836244494712151701883938173307582899981190966267810175967908695315262730069263979766965987540268002481476822912152746002058814503817887763018178789127084482343249890439109774844134738022156555419233466363716833171438809000037076171752888043045553413022762200972418001674830742312870466306292965134582602707020204838769014575541385484313343684038953202260249235427400898215660348384408602561038538656126174940953854329877364663222097459909996148143240690707963001939010557926265195644262926876793695178353636437339536710453731124496731915751928770663139283665297715782471530201195632837476888605689757738576825292790285550301615323420306450169368039882463025385346253095110659253606733541157113199140462405535574687137715961039994429432921330840971702355609497485363174291865762117073418139628201896208358826763283413583470967838935815507285143867122717573941596832568706148735342220007283143495366158016625458864762355993556084482838097661173450421990928771706862736586282934645480236908423112519675907246510483599568735544112845014508800965685099972525655721516226418250265426411792308669101913890806958400856284791945617821202856093065630991315014646184322393813401210616065670385781474157871639043814253765900729579561334698741689892992536963183851965213226905089630118169826611079311630722435409831106147767475117134954470024852673516971728180127675073934552900597134499280812311881814320844549122729974389763501704196134434945997856634387940296582914026743052859584936761837693976958133830081504748937719148025041615654337266777107698919648904479328596908650930061471098905844292121904902905337796878759627554760933415864057959525662547564262511764637185891624239784122500410919133720738201160363347858111282241038321625336786170924233854564295118127048521416694929322567601221939712443301736403645097332045901927104970493031477994504867133525993050481813753037968014394445102667599467670842238840298973314879686029534372945640375195087327998920662137208359938027550773683890794932442136102531928393872150831908949118479597973043669952578951193978885816350050275259959042816835084185214947116635823758670827386987068606194942449920778608316443735632263711904474146883408320507142598873391520949821009553784325182968782300217555744072499837749996590931629198819889815014876813938858491816295971233058089691357887634033878788159050009556074120833675882703521954667572067531017845605209412215876318462576455105136057424070570921560473742429353586731489116799874904194277455371710935043517167985894440489878980307975895521714943089148872307665820942175263282649663919984705767988888156548329831471798111996191137335332458357210397764080164028986788386068113019303095900405609020196780670277293962465052785431884100338950900343665315948851159409335234253592477440433259832409777510946342739333679939981925865922965620106874542614952010010625084601597126405143178901989703947186079429842527528958816510695179475577129466175285178171507689771523645432326297217781349775039861628211192611699835422133292808211584182376241661469407534707530192610302829826080684270246277752221887616761545221162548565591053526951885095282865357847471364679825777953167633826592182605208801600938370836329294323113703068839966786193532508137433176634915959956624051479794138720934142800294801142535865626452695298524660451298820903693839399028123342038488928604901118225768920938424150685727204124644508355412533575764762311607196617438388740781251301857769299112911664188622584151553405539487464462940509949351050192257902530205462572223439697813719561595434572348924912150611511009771866756294191097131443942138212567741155033357084726328934306172175903057152248405675509961990919255438252146939718873441059556681756188486229919056446780212298579636448023624769337173036752493061385856663383792255019209851595349341636497198869118233631415148115186334851148356041214922840538260969580748461040904673841032486353525331257620135106971376635866456078250733650635838908687464196351403906098842445760613394661921567104101759153935310161804788702957183560479628276597036727900108760982883158047104860841623702032406752856841308373346467382821248799109756922146669448805046086021183852139971145550729331877663110064428217298102750943350926257582950720715525104244563762902405141649606445498990494318013046108695665927733043815132244406649223123586600783564019794592693998144524988240222284253353120543344764680173042302819022435425592524333802954918364126072902880178423693829859966321198070280829117051219910909125945496012618789301236694582381964738171049624452852848254043892126233466046016678566811763608663076090784076042145583012678732250101704640499691819055635407211447849761209171655947500254163321569189260364427836668533064071847045975678392304742777331665585962140728484283225487258116222825425341915937268547427823222326485244066530660694878902989265359526451332510973070210874788850549469432762022464143699539816044491201028925414258564266555797121899690463925855904640605482581553005822815583588692916339453176354140082465879574074976770767702881232124390589521747530842468751453400617663730674072740602110663630286696892237596213236292760027194750595160277498755525086835617653607840035508372173188079820718876037820217628275703198098634539254577988415266819837668245657331128577897547179438679544719989402921955853828593071270125339350244279268856248096532736189561926665690329145369783720032802885735760563362895833800304233577305097236098885791641188022622599537107321262668132059435081361886069836134369731123304158910107279577370054359152623200227531323833566406628004122487748511599040666312811435484177113000874376296044769005171446613283220406745360823325649987688324905087723370540752315528380618406272701654196685591562128240936317693014706845672457520740516682007778395433030208910885199878969162937406876047855843452713108203383252679123344861676734288677509469528829450029093718733466587915889262950415143716511185626204054009383991764129520837584459143236500034627802719703662133730751642167276271967539273454781686812773769483548969457172263860926991801595425671258827879020785449141396608983809349913262963932908710208808785199546425259955555196388581516445481179422029533890374370205042321083792152922049773772730604057554284334298170710764705381991954766998319577585344619604834314399714442554682556305325420476710620130506685125896600854392829279469895107582770388168661304691783797085790096263129617918171557379534689432583239790556884444577086697158447322250771688550363289666957995335118321784528209784675909108861528666035780401506339676578819228910128619603873848451434338989600145652504916121572597132250908339403661688463350651412534316469137563690761919916890697815362065771600265745534414644821833996778799572939459448229295118133559840777007904038992291150781516538303632166169341742896944766281575055420840033247763078226735754052072207952104669008974399966329184471277302751909804643659875958456111615598647352597889419227709643983677462947583453421309096968963426635662338123999816139544645393376918498003193334128193846079653779904536486681159227383967317012681728809459560736338218919995678756113332109781153122594623815463096973539217781007579058066910589361900706774038942677443077199570943806896430128339922482010674945990831822261727272441784209981097758071825644685709259643735259638862292734143572594009410039095446693458317902823246822328504234343350543422804825995109171130185490212127378356850071464265442071549572512480467922139123849772232254232125879005926568709565332144555091102116560340755225015248463284179402943746132562581876457886121810223457775131979427386719723115222079974157056931871992514847641182927108661888062511166457916028895458021322833410305596791434363703314202802613117868595869843650530571548545309881620810532304658383921995942468394130591623373566048647884962196879756303649025174794797283404264179512475209793624938637048252115392751361964370352716839366854306052700370308117397144148871985190753835637809007316968645417101572780496072340165353012393387650730712467044455734766823604533397544074034424242788389069404637318826005931125838514271684690758375326694439176831292474843310986940422638212722989183255904940176099985634011320279778942894317355972164083067699934342493722925279865300928339186678812142151967458326879354316417933417166681778834447444704935666136021256084336410864095349493398536636377879165166515918955332447036719518021411851007533393114045029620902690504582160833131419956232030939675943658894772108906965561733401820883021130959391673309411135665137552579245138835129804648110638374696653863237812531450713902798260830874937611952038715388369537740812254104456125869184019859059082281492173079456461484751424621646241875510339989393011994823239022201178070113932926028188401256817616624526678782881946092450672217815919351467828184327627681992713730006006066989925110847337007600442021528618730637753377906117584515652916841851424948269842892416755754452239935503291714686327492908514833094163825275881143436012133755869699535896749663928362537412759096599830639472610982583750588809132526913583328870377254218905575539984120254791930346932838258482618908398114581744082836382287908412688747921793272392431021961249997522973546066722833800406016864355550090328614371200756754701512099697501046703734386533664944434261285594281706289705868171340862952595873221108296723251733286675961960072229769951906409273829989105347138990066097741004393231946097411047763908362125978822357578165965857361743725847035148008716100004716762317404845038828665043463045829138005133645241044326966116096149087388878522237819195325457059895785423490471722836071197095323765796669567053215166140162127405371933883229933912147852975829188479841821413717002203923130365172706513625760687249376352717313944071017146755165688723350092155118495652793978267214374506231863713964852152922368269884939544565368424447876324797030508730791558341587062474870448315726543678781983646204078970834521201776345995130856382774659839684422387906754878281677607496771997570577610801158667665648244918847518655341756838682269385316068698405188290274463924045340196837968605894003277366950283469668936717451074677634064968408852057151858847753547048969051235136149888511416639048425251241579973414058792976921161061623354503053220336702501410741869604812281335295890157232676593577984785616703296227531545848960878667654720565295412107848000868613261772765704772871469364415471116808313026183265995877128359861680016932031676889402147222967954596081464102756614377607247186088536023458316311161467668100479902599556027292637723339187471412290018863892540759362054446649416626481159267805882885813010823271081742324526557370999809258903338441941013614436129762724980580588437941281383897435818972983427102591842296600861925790786092236226602061186254006500882970229054487697278169759456520246574145336472684537729627699340670590665302632246942776484055232563194574526804857839797968077655529405479845212355593506606152854361764476837431336119637536299401431637801287407914587598564039288190538001766476096710835418615748776696699557156140407797935887664925791554463765551297974027779424039623582245568195068476057178828066027491363702579592518793237097371053513999236495026108218835962610980034408867029407905475561780297730597112218324514006978825689323362940385207639887433847894167777623329872418832851465979782591768129722747983193640631771845879130273846242030231998946378832460579005147178083802649995629298330701908997026692353089528085169368288127140784682000407855125039257192844448173668057822762062113643291284070357765618317325121559548171820132035613834682275705292038759565149310863282130926466134200788749888215719071369520880589962532199788175073419305614554754588844435895304816585111476175878381124086423152451322989826375087314636643825857963582407280425621600019809826936782774097584409120828431765052106813819889167120858558654936644656225688930491193899774153461865621658888869583044508872497888420522361018063530937248213654409842652473903302926683859718406222111830264367594255631235649384728749176768589782368692319202171925620140105101856573027463762981591620833535500811950892467597750668843329931194679234468696359074813538548542402532170407748013929573487946767405487292220188682967652199437597738172595511583243017415841551882877302134302418711183976297465047184130989109201518183395968225494987910875977261933616439699749329774593834181013699253206906313323122298740769159507445648823425732294857913088350023867752668070217619958668579175782761098096496528648443059635973199986611547875617468361278993275110346639616466038331226467771253805149868724791227600370348609830864687371851715690034086022707841976010162567435292332856204334705437065941218565228562018266588052272820292484091316898886665815158677415335364544917018963820140881187841450834303615722846467874973369289203305753432363310066607432606417537814365728212794738817830838182367527783405034363389065659675403699191617992456731299514395980240663193610626145660147489599239994317221543826776951092021612327368577080449460172826450176473846032905322049501121949607670486775499918320254157938457565091802341212767301169375874729489897314855398170376375425215773290642842896061697479481692922292272058076933764901032064800344923299407315304069908459484046897809497059477570720989309493945334752686783664343595726460442956383941407033971723398843785279172233657540781024174708112805205549930370352574801867161275364647237678320658413433339668233939766916920864904967093273024799083878699584358196196335064875918554747921376280226862742095424416191305458854025983179620039567262965709928329926261183461589636714939448159735425156536048253520129380041979415768014373683696591100041206331877094406258777260742930495962966193370071272976161194974187744801610140785213276707508280697434732134829501873857378199100222948694441675579152869358475990764698947902470746596184675981335570437991140911559999332146022283365457484546684966459836574591340446158247277280131667207763749481402588955287696782663242126603978163866708742270103490375044457715116489329949296399736570999614291862487004788131750634885050294084271699332128279531357487951899201328576384532133729854985736816443960403903677978802676655706687645744895465060612803741208475228188027040956498545571166674489639069056094553147102538851647531747418175555930295768421953481313476558924673488285584176336050216299168624005847127303805532195654776622691222685784822682540477172868129160238427993731279295155469333844912892725565877745714718911257876111449450053182392792185186162654716912720857176490149661961298100343308979422808429097239900031444187595091347135619091472587765439344912687103159253422624458757382477673568148661705157499385904410716202140125018250728709428714258193113853081659020315748431670687346592153231539871271034358451499330156324594706926727307215279544957343922108420822399055686538655549587825751350786460252854823477290600126477154509321299813684396516279605679028508111115048302635905424185686903790638413416413798885214244335984387107805638829245468563771338734792048814604234584253284951263579153171432976844585754318662322904147124583254739019805472449030781748098143878291834982299040991959734872086016551456545391897048945864925880209450044297793508463176312569816229969437513696530789370593072401590076870352190805771186552745686132150742403567460757763875230963655779023755263772220208400700356153372767226032053821019724414723712807649414608866157504136180987254967850064385893831661553261639383095677529162964460031046402293829986978815121406976217932776471935292400174226827531511672042115057802741576053039256239034423680109565675492907250546005207882256045917560611519886987612656824778886561183989715266232950910299316136941640510464097841042091813141789429358272155011245345655003618670950469393720047213369071004071160558888168443218634293447908036736941718796321370820880531792304785766870818999702181734755349044708561131373177313294886788669926740508971087398383890441012553660496535911393150131096911438862582094179129667632500241663497367048299770718296075877186974195265919728322923364296464636907630535350436011908677414209895245671462300241283374559661972704375655086873270253696916651518609782917832443916755005342659534085734902055598533323692185255901481940360689911833051910676497433956384019668697122713291816589579021017365964947444609011545157130238923317051494735431935620322932778806504258758063781077846306385201778932238187398414099550667903134224716880248627940870949847874942531119487633516896646507039117474042980602845458763790315400042705233036213860152154374630010693988141761465649884026062871970652930104463253554268383889383741192428409794502899897657594561178421295685749782680281630949680574876356571190322738381653729967323172714301609669152804825558854366696139551764261779837905666827069088294840013194267005498894115654905620723382026678517394761453183145095785623275119182120912928736734315052088328640326033615447168311796378909632330835290600186261463227477369951148364642814805117502237502209131448161956240101664716877363819233269122756582251080542920829386353290879266692933766769864688372241064398808393548951674391506089410608393883583647534978344912560252077922837017355413425851378426092689094024739640432034014253690336648407095669821094542641370887175842334743470294076391673051846966234344775968253305965341415396139343231886132012195204957356536146487579303548257149633721696339318608543444443602014355142257543097714973687393300417396963829656473696857420213252187582636026791979365216197958273617608933502363310966676011919196950757563563355451685152833110811368903660986192948690827416370545428858733450925480754885603338665897406505018122577163627659120563937303688102538286047685723103871831753143432846251613603325004821664859842708242302804367406075187402345342385364115299879932132664760754078478565647965820001395282387611142861129277992649975658578041226521325726305216429142395458539684591949656507944554701608753995761797785809406674463670407149038369612655584000259490675008603033203479421756125273126261453216716949849696379649258437309488085022383023246893576691318830773052724567276962041432499968505744602395062924140676433996861637348705034099649566022692889606049899520713196969636549760134690418668298641651792583788580916060256442562420095245142730696491850754295204875151925602115016157453418111344270623635812077449911984041830229941021249281745329613556170546452341366196631890474870518786252085810948860164289696736205812055735948630885751306023932277451317076760563976342192114424240372590620093223414668474498139933378065664830576236232760639048756862614775948244422856393588201689576380234972610785034944441906228424435482004628243517462941032391611268445195345893823303367714868170222852118020805859876982098042034400935845716780405788665909422364257714391508519576522463040742741709221954093438026491847220519522926240519403207437342200216735460373111916325939935788367121765609238704503556822760866274895305050575601137347071007961032301225256425307372653608504921581554717056083653386948030928211499644533030323117284853264017853093717938213954530546820483223052213118308195437851238602671545010278800053623991679964279211722462704939691015390682974962954149019629127496232039231206062892498791731532859047377584158760852895451619095649754245729737562846146200289666511472878423836029326807845801607157130990433789848868396751063057542595231639233568855032390911809747090957127516702736643094760253926624142207199888548223443946051318346303759992525272054217182944516853550937561482757997235165129618527637797188335925015863321018160671990105706783529848036219096035713272714095710438368336820695007923440203984294911376530649980455825807773805339493416375750244300362945082468435234616711533407338062302365204042893580823589446421447549143038692237351883423362638962387262401958123550295618991806258427754403564671168721964874487338462789893888818698387725711834231658353630347268265815781239695981974810591452065860629698648126789417906330667115233255964893601907703759142929103821675284957680731248235569160092037954176116523558296920226417735479199912277030406273574379090642696398880833040990850900895344688678116109172742075786855075483754376271480879174586438625660761086463990923858621585129160530362881052338965870258630345894654942310976103206983070195301178645633051310791257514080334758190971036425464202709850362747953093858187747998314211583252956835494535647308051824177059395680386585716012550050333836530798396980374033191943973125473422941428919869849979198740344347851026748800117769513514850515496614108478609094298587442127384993564140698708754048206935974720476619299373482962782768994993570384882272127375422599820665750308315759573662566993741061232582203925559012626815437351252361722498131331581780587718124436658617442159346371182150642075609833500116158632282969614250702126473271521797143528081212620144255268639163622977754981634843157169182128976925226842202664487270442497433655720323077945859116263300006785000441815438442590534567933807986071452598998949097657775111014071874265534448378120104184429534189645374010369669085227088775627195095608061834894616807009921510943164617472219175541407243310966108146609552698760547213955494293903884661336574077354384687345295058684351068314592298549648564591998572944908894760387004545878713304809900733898382023103745198798349579932754986206057304481945078022628955646734032536245349110763860795702300500274339367449100286301365573570492909810973492937653840492241488529743465986603474630520998102074357274454966923560664952041739269851074260914770029321026215282257452826823812876079648841342927702482836636413474734735277656660213126181161246805239124761869119544976446482579111836798024689184058913613676151748851170157620381750355967559478691826262473946736160373829686322620278547270729359036954781133833333381074781330379694793817647983013081752360117801924101125454534340993812820835954113279630023130046479640576915532087290969340423251693307613301256693859792912627491021796137542581228904037919447135844133436456370922004251162182649684874597427732554670316716202818014100414829682362118349061859868158404919443163684710377132134406191210423917009921627851229294720338684658297602185094727014680474297652295662799116325063128406109244890403794565394452400729619790411287253715057819333021155035156995419260137319847270658705797131999706069288466065940823431865329321201648130443370173544644722300844183546493296746294900815411715865006327641987077266572641102068914893130172332501258616130545862695083833729197779011694652735765861478072516123017194705066799172326629493614920945417816585088920877455096309767357010903902289140249150904137623305878202159853186622033479651094643864472183729351275539157398634927962836316497752057745972418132786599016892879024899891137598394874320617382316711290916372754432331091548907334138130684302171230811121032355730187425580852013763420931239746382930774079023121661832812494300909833464114781961956523969767830548566598318195871153649069553153952118446015098974276621677018237597756080888574175938068863328301483997454262633055253013354708126849496264688885685419294382240815808276518569607423916033353869326887379155143378987714477774850190540379151974204368977783823892591779207508362888795274270041030928168213909369831267985960692350968896761411936377130454334222742374525864357086492841256752720256266404907621979080120005184967853816574991723082898648726221421356836756387115631960066869416562521130774464956418292950486522790069034805888020431154250706957723244886447052967146882581098079642596045862300905682844581974519433658845785407180143450092458681945953109890106991012880979831402585858289170995170406533948490548568194899931759666040519245153994118744974709566995902296345052205168604876387718472985081394355110112126562815209603191546140009868980086750096544121801493510171802750044067715164054938372071131851179605143212133130425064003976563596827084513074189313761539899342470781260207963420432416097374523441536098392742412655097135636667490551596530645040814988223102428802864335248817436735537946879790065437707626981440810349542763026381699081011063267151101012498455670236672883393043553520280131094524933177384291795910074614413463604794374253731217327589989628226242162422003356760688021005771875263098407078453408153965239473950601552298463285300429184671637934885819463936095706297832831777110065030364077781298629526451081616271257631844492898921914097347648533170702942142691752659722640706622416479795709241318216824026845880242082118915239119396752542962420049270454933537907237073963299834839231220387660249755011013085534125789611880595725717294307723563444061123713048424590562358793790059813177259508205568121156851788871848943150932517280089916491658554683140441175176865761728820009147949292644127737923511781797827080344661482200879302788610191422434729047000917961288073912243807904545500124342511353216014115437061581183244482490431896968428796701762842819490251718243394769061330555303028302203210552551441276517226770468510640349404612741907163240537724082220318191189050047519798291676176119924802095627218557820583443123095118535727944512014929035041514638357110236128491184017328132299880422661742853628903372022705350174386913035071904893262475910927380266339558530763103908313283204957467392904358803770590569078524892410407338590282670378451404785260010611867013590391659429808592927358414163440116441674505959858071572383686216291399707490654607264599286832653116086100502240082229720666236885448248265401416587977854811176587310925255196673249085267320930687696635465461924339498995806122263991814053331367051191195959393488960881078575505884666648453810011347485289681622060873876611231345067323219032779830961739851762454584806314773492907839609920313456518493390073082724117820209613621320483671166670573759956552124767319649377234229097045218930850152204522379903808524512603262580862707203334477922311319637598853751205520048727153321620642569865791970873145200867749009311387810218062821005468759985124370671473193828220817673623367618995347418025846004256033978154826958412258877199326151771543463132835356998854471591511072027415384955509704115236278765589345971270626240787524524251338614776093445369629424967803856666540682857132815546131326064603433762702973857793174761332877659274855600867428391447423492207743674831191220592624435881618168755012979056832303554465341120339622274539821019356132896570836728620998935825590171606929454491554082302223385516366340375063173167184707161012338709486039701587165640295447738547685756885828227982467624043025701011504071103559385592727480859226532614339400026795837790168729464827408651370688252385364307100159200243811329641592539321793611726057115782055039519031647029657201285519924336703148214025831248133523095868679387571834024373201252306318968913264672601695414898194141190752962480648570461263774416991682412533708473312617525595101858858516020032402507492128530173174310454784141217382889534719877903919451886074943592346545128256850132571148288429741734713747936673526997658270615067338742612623144732416908041162623876881547587036048089114456417930772359654362629884311130469461013297993560377486307748648522373227777771370539590204139684255438845054093780196506553878600443679243836557220386690437309510519718743440738167728222723354671502310065797910423499289187982601774111663495590119955593912638853284463725052501757761548511748399422111039538476146109737621332888713629580154404082482812988893697762820249954649855736373166748491097364514384269710749210740576905293707005536410194673235122158341058258032641372368915610430236410045153514814268028496761282244302744281057848463587438028309324093393491630095135132122361929405096224117904810288185657889536188368542950573038689537555317428366233785498602609376511991198917523359654503713690177430230976003665575411556162068931290242449946073588645461501491008062866100393801040195499939331092627814280092755389958148228792929582406882403506726614911294168420738572762232201706410755733425541170402348752484039585385029223449996690343525480154966265436486223191374785093743291582011158451335398891952130942319578778040713848177675422614020800061009920787007071014851590474513380664137467481051708091825610034913729848727076099270711035762700134422364361300716367233504675097837821542570372468122492692531208405953029486048690443670214557185808297201817711468092492733654249439454800696384611608512409366646735401276394168074448009638646871040682080443904189994555188487360690182589772105603263589100192738886613044263143699354521146464512976702937588139655308236607625318807376313100970413567845853045474494133946857197351480032871463316157264726659612017440317574678687793018154394758412184924054354014750543043372599891938295374365316455901212146427086250452990022921174055325360040555423503398399966300106818709109298328795536420835773846739251323247681493901536553216977193550142757759958058676489545996049407107365540633441028889823719359069809676079277908897486988359435518649999242523646616364892278011054412239409713954236026666800293519279845928097485144154842080740470042695879504465170945419983084980279303631558669249681442274923584703003306472908637884939515160951161824210380127010656492934446547260920338932548936712843343617663108820104858087301228976801421516864817074934530591237595546745524718892837742380243357571702548077090847950039471223303628302230943239772662177892448312690722105677109320811833542192449907890711040008453721313307253154712405372982264395834822058060282064132174064700166087349290467793626432575189731209550632520961544884089573674825445681284035340498413111764659483499669625990946823976249840420665302611503318148487178880173609295975923305170119559228908207937328117284820248181500430162809379429118940460117400656056180381709738796544427762561221114322228487829034056685252486786033523491348060868519376508557099346791715042468483208672849612764919195100190559021964410839404028328487425152942371081078259271523001564531967795920199135484750590101434154210257486553248305249519772340007108563532470853374618156462792783702260655938170207777809915159286122546295917005241930061742215275165727809774191568675867762436803810319628289845358798404313123907395378040254211961127380625494776478421235925606852631940321219853551172231595073625058364309134096511101612074702225728334274783185664790100189831487483587249326155525249068646910376473311791640606896485446397456753375662166119406239871732630389453478804743117320331430997819614435379379026901051533689285310755679841113723453240928067585451566519666734687807014790550285598806902343927747503824047037547411041301032886394854227662791393778406883621846249200035807841180161577409139427491568919636256697741517378742659140690608663633191742823282782162185189828937724653877359553380117353869314868161037465653479060265815485060670903961924889190464735109925232373325980441249095998114511707229817140546170155740747298133559014390123515654402886696609020696263308229340826377701101484605978511691251180868605098984863139896776429403343871734908825491030896121451657495160490814628211898496059060264460677668588298978235155179331212553185651160750747310040076185435794465894100035088713048137875491791303382619952823990969412281558591029976438210710236380641577329980054219950364692665811530732318234189882140912900931869090895655029568826660075754907465387066652417182608240447823979294904003592841142860552257594118361702983683762348163037923301770388220184636131033665769577373320113995744372255945324893385231897516949235521237134097669191549787552890788565227024557815099139372871624343938919971425687057810137633849934706209858259658693884110213443301077656859900484119147268091012965778254646624334768525522289507172429709773205426000673841823962566574379140246746589077546229073486220922204660206450384687858914492662027364150954233058237107098633381985343031409790516192246059913260439591517197613359138044887700901782792095468572880287349354588371263515220350176848726178846784855331334048857205373596297607377930178308693399328296478395366396403952859428027294124049123202411024361744102441736483136883048101798115640533887020312480320599419256239098624597964974035643001636229107461246506897982761697316359206388872542384520859120377293470558469212707692233250200619542675358385662307105226769732718949730358866871508107070474717367405282124719241662584114229239691076776175207819219389631298252269743705637049866241409499562204696305818404144269404568112315943725653235703442524211528896014489700571071212221437387711289475113784598560856609793619353564778695227820860013505082141846793052073349962769219450274987915271099556584030493152306623978180377984440815788237007071509958279841540145909662953468311487335381775517953175770780655142603793914281878978787569296514697419252612951709466189783275184836844829180960046121881416572725137083987286659638688872177240780035252775535286393545958810640770778499445700366640730345316154598491957383235137301687672885130592009808105321753455347495231120824677379553215741982569804543375473153147714564478415644452586978677133296297520223566561126523993545870446193193200000921399119899834959287505276395247740344639644042991044129237728640942423473972934447380269319097562844567640167131298945759179677834644478764373489125948313758474954328206359438740493226080612324576583367648055627889996098780904553277754348199244034911516413395613120808553422627310547681821899581439118136910434182946339876094106156421430677389062219568518438424346863662499095342471281505624463166448898453144985250467995667450754786085686363036477534245376752810485413928854142644028860561121531288818505016079921425061291384576391765078853691671730843197484939160304731477931829481811864215889209746305722152143138124852797539543547576352165043822436348690618070452905881082242780406753269994932045616489121847847672651817367966272923173606664282856836938662178759343455436497518005113849170621363089071225977418968305733507540481623411833449639858038598613762054825284744396398845485942076213205806367815983007161463458849875167222517245379283557816200890416288194907987859124806315762388653110978466218166955872330972734037945152952680899999365857595637347900198507450185888869267592934852449335599521666219027541159784263238800627932487250654296826169794634796812939466120368612339027583084715250770157809595656843315448816875613532161129070043772482409852934962995545986967245090382292890842877014440844902496086788615630906762466483922431531102378816906760372342463121495152554059738522371960671383259144010835715042823503166356355267044346439490946547106744397520740349796311039705524473615558839215365984979997751976982493609311119145284533088153143418820889051183400219801723582095361132142098209747289506893983815528876428740893582360825073204528846327199644727129631363065657759639003820572895643337063955935973218960676036006349747547231140193278473148437637529282056545284567229245045698026582989242719495826349220846058105585139584918062666927515914594584543194270607807593044380310678565572520717988062524421705693977856165954297567674508139856065414936080826985968790276363768599440207294036747498467535042602571928328302071242437823146789255267341933245295391734177324934786655950074307056139036946818984665947382424907610737172157114549564632547774989990351306757134551472723583190107775542592305652220394500999343095119829509528229614800194164747600118255467622146660996585752288868938223572862991470676560908087851124365238542920776236049902265515588905453339809553583425076731237331220514061869693738599215217791057446712937804198010218775790120596418803246832764213620066142363271421545035097715575256533152958816590226356721846774829397949305649945910917874311395904128136761490692701068409790129052064546022750011360181831384061076549202331354449598524441309355388215484942504176424250684524766888540695274033370625397403992663694153851448594361314224422351533577867146739141395910384457992185905544639387661759576749995432688552725046080420371440269819237116437318292642583888730398669804522507421997019454976998453080046044289408920819696994759557753368786115980962109822216654776900826067471423024979164938426078327626294889239123190705059469239085374514027914714887333998258862283569987822129075697860862779420020735765369951711111181514137666416486646465002651075954873922781223455954635075784947807342685223524955768815703995001578102541417012128315383643985740070105658202886062280193189672999095828873263563079330755887568688095180489076398894192600168489093388860744530922029122337553521388678025349197541832095862330598544094481432307918001749150333978742692191006160965927827456856354724685838004485735320576357401378827464140997825785414444006815434808099563776366610920209053063754521445699325625190681009333435982560605207947404059114639699575831040426507057287881962564025778233731192636021615717496414458567056476512884597741352623908741273921223176135749598857553119568937094811568684747705267525132759357271464925279636847636885043400558426545025275198340918017169018718693047326022459955306888659772092471435250912817916086642056402883867417392818842110992193626633258027385588025143878981401213735105002911662528580479915755802807498295342053746492473445397670545197388199476612667301290472486559823241927391782121599937832972522163020142047106204181400746869417030482681852530980925971725315205507344618285740636448763109785177235264047512584767012934202582993301865123838093892226974578235523784759417250732003856233955846647861236575101077737835185518334784007390837860012764018608205883117626794238280309299591432504987944370400541754469957066207435210821069153657856818728309378753209753261509127310594941727876648236176149094712303096975557979783884574643707841233249591558037178448687165709636125380654354806741691784474733774388580735720256864700285473238398556168827235537545450984371399652746845312324656380889182248583468686018593044947936907915671640598813213373090064500461997892025938818928855334667516294213150496282311928778251019131080363953695857569893015539795238482336886800622264529945344148151384046480840942858604885371517650477800583090914180825081021582406707564335470298116849172972486621748706021555952027095325252741398739073884972119316423791201356791548162090506222593991926820173533076810568464963972008730008389697882072800589913918517682843384257955223686169237323879493668853429063003677285416556671196373952848058825829300392572331194412612037906859277772292339115545406845435777632244666642901481765200371160347343594329852086480465562521803599121349078124953965889419757352215352213464416896080876715653147096938950461746528887247784175453936735420011852081568695520999255569251658337842459713998834506938370227687020671337197756950234192443874539499471437427747374041279887497887855792481045128947889497716451388849432064169453497027502656222413832843911260840051078196537468975514851678964982413730327336965517660884981610753679468193600412359457873989219202358003788365722291392186710170170119909652696588795797159459678574720638957206918122757117746899595274866435601231041993474765780787834104800632609731093838601277799236798595667928398142657618137636415424022006521462791628654271189162060470053356979209070139208236469717712218546273174724980950724353690346879686953015121344920007906722838148006048259474333287487140925138916217172293099889921369602035339806246466263070093610927885087379519544585758522164975835341940024984568255328221506222451517253599041985495723227719738269967632516938857865468128680900024151490630308630470937589360559947150641129953890285240053882773124538069764384182992891093445045338244718728407809877324357325072023504317063220626913397941584036619674550410401092717109183233725840758684697627038268594499094720173962831948862257691847732818428320251200974051125431691171147774450060622844389653340769109974863396875231849320927267124977778856685020236628618499956898227399323382479867566204557352775480806624847722797034304157135809011079555631471923459236861942295820821858381884556797415746675251361597167773752715914851494791785384295722727504605721530936463697696018017892599800488498774546777352531493625710999340579336002355402669817511686585826159111411930691309826506507446036861018111753059189828717707115543895983221475957780034780485766629754464627866010433200149842095964265462546683815456018108851436771853427014540564459458134975701926748949391006379772387685272861022143633417992501204004621266144079727767542767287268464471603398882649776101658431206844029312735183930765377353480136232901474210128025368379885500583515445540617239098743049955812319191334402500478896930329856548468001155415402141783690033999048822698461363132256044229737836057070263436028078549537002061607528660137077306185677838413184897102654724817227776834800020978826476557932959736634527484917107740335451448946615476634269075641408943895231325979909818806157805204401335731198094079751969062034149508728180648477186561954537949656712227622969009281483741334822405012251179551114550462000417844992878511235395261812127389345294544860028509286618633199397777649145603314426084743274693249367591422708462745152220260848105653779959606704707855327758140124586366792094888716865471466094783685788724818117966427758037618666393941026013819393472955864628101174901396325465681216796523451750424982697535988545304419866242856574776820969811125942616354538728620196476128683845409972018720904998317801950354581340529062060166182158690188351054088038613028965808139214888611743805802598305824578309044530935926351189869962912587530686194149105624511103598572185753272341448782524828902993974521659526355510291869671009676731655034738613147493903301308002199376775575406829968722368903169900802014964527734196447011368405711812488665278926817192884477473601021027141110274616148070696592126189684530301535607606666041917754173209711661185708321562593940040209064194977448199349773269602736741118495733474263327854621917060514608828410598354663463104832025768110212689948768695718919439466112195704442858698018888891158619386394131269706666860701661335364533777566573123837543958532003133794407772466468379169049844668918233521098285126090499702216583314061642684487738732404495606024635537694218119107516034265596012539135468888075068032560847363041662048821963408519040513598642613263651297356331001971777406276429783247952824162036921560082505548574936830841066304784988821665208687735487367098775168544693810657938638846749377424070835266418808199619887793497119206820757839980741313701207083331104842387673442660832904029424204784325077143352444516720469381047046239960756397321368205895950540589700408186110961132229191488991760142989809534505994684675891593884649492066954505503442139617356373167103277605964899488433694022685017248046554947034416459131534506527102943009904957433122509336317763112612738313850521003603127769290441968988907867064092800753795050993262287384759097829846338565943374643870114953048635064187481903400151566205547528299556630331859689266782926077758019394813291479791003852980298055020032592239503423431538338085392963922113680182563835208709408861415082730679912320595356367740949563013788367612013867616145246104066104776630675873605329312425836033278751980574483976133903158351415093068714805356041729319300411274761295896010913982912212306475245925818723081676985737304405727796410796752708205325520216833568757896388240633130940193670834925190336731277977181850679277790616119568256233023063766102705371552333217925782758031625060985996481204864288780425945039318126471354332110265464369260620053371152872666523575548248119014421721380759466379344612513761090320969886851738992242155717430188160980941151067353547407494106311082416930409579738380663411669147292807567056594023678630384556591757780409996364369256453375214153360966593814188039160613246619825073529670279501446541943135784558893216910498378241701323634635574103644851847603226675780491582358427173187945970518705352197005438710910099871516065687011753713178340117677939381960763975039223744620850836988253134153539826938597383169947497734204883509684852569957712723296450364504942958393504285690474057571749461881590048314016840530466052045754532077876767891951697559201721708737773136329609320762753130372984957979060145807887194471692473933662131765003254056316344001628811106120695111994855125103210506807181500821641631748349922310051204672036190206209587094955145236379795845477029210395517115300981636852178199891315769708527186103907942756824993996819946903757592729004519876656131244492558707765531378896958054279400154867186338328077337153600723714218300261812839214300677615941545153842712179854760318073868298677570834518852607032921236641290877384865139512355516877426740022314903955088132806286338044114911128779671439374896544881080880180374897131974155622140175452435796579758579056057675972590183029255759971730268738256834429344234443447852617625751830120011057744745145242850674569653515003776265873837507091711794995165540081613116868477820293000512597127064120468975713544526375287475471865757822099600317147875052463207908085325984245425779042764677718336662814049129815245073559985861665662280597400484732152981919152889547028626403758585821049360690113398539597566066370514009932420056278278095674376065516821026171177432204298214573797943928873345570531642834667848204720819104391229410762115551624373563482052632052283694740839888545803229702613867927844514437524843077120106324445823643120622321093555663465957349988626629198039932453787196354327804245987996113733735698958497032250493104272472874126208400572112352109945441522362335202699023539787301690743387070509933775031012068342330295615836647782039213708349648081661738438935156066128485510299498856975050252161085054046520674741278649613379635907897716335507247098194839616078675243864705280334757899666716084114829346499345900615869528646713298094311820362894757992424356561118766009017554621830510470366661541311439443216537155873831220358189885019158255897196671432216859465012700235319850919848797307780718812139746272726613713204204220951264500731273615645762837304978973328146804511729183459006231594250503344879491260693367206489499135862343255660524261155548549726063222416062096705381258169307774706242721678892813637589199403493811026548931144150475078889394446232663406743331037745682815344460742699663657140843395232251391608257489349699575342620547436526475511716462452496407645001306308870133360697833269857832677170117461314973281438159173397086215047325943831148515057347667205543035344588910146009535464983455701619370929066936556930260900862847372998845201536889619528472986249408809361575215388858581375505248882280811642954439942841769546600555999242973744544117068877445951679663818089328279586930748614301006747405330712338503731620046041318550589606646890220405329752531972222217513875261750300578892967638839434955504324463748526593024666680908028220032852091033996869847826112412459694599770418391440110722970633613213768646787504369934369569862781418287398227811150676052705244521077389602014505832332660634954656155620065347425519188667498121016894322013747041440568435916964570074324678897158034363283039228420422354870822386178073588533165284043805643294372933062012149780312070694147001530618762472151013625095446559188767841896886159071232189348710776154612942229215640301687211807018385194385017900806688858861806342971283797902730809790455489322974278672115832111458365048657385354076898087119180782939729252964450055656139066520683202572038451285965384268043736011403353487808507409450317933019326510115356861422826460669770714880080055530029036917306029417075899900242400245191681733062299656014807282585163948894021483125593605542426985514265337098775733005335329825792852666546006908990740019293536777054888091535090932590748610383526241016721823944308050687163625774318605221835888359873572948438363689334160809181342678624934880933249985022870333582533656742499099906865464538062700534248609932330577223203341021572960720666797613351842461693369938059113458810361129903539619767005607744420324742055993742132288819792630347450695913463272149553896391520888598058117876752395407288309420704018307025706151691560236418476481031604269996408243055455183709888372911491464308808699706506519640232001239492538277500611262501786732498379355317705741516514756903207414779404765706780109332551594185868573055695602032042028874986443705270326615886983842589994650156017272511195508860736790973913073909089924155086039142063753021899527552384094715198115256000007087197097314772313290240089088156536592118875367029588509892249235826518231378811426857940807086626337167707373643469375696397905072691559741796613899959036112566804848779032876465024361718187552471306686032496812401021756286628925406400216015021684061483383379265871008337530835748156496068697313264293751475957135500392985469247526008956141798405891676302318295448163226475125175132720103259764292082298876502788702081355482279480331731148184906748896903410524656343929595891762664071052153142258136236614193424296926263589358517348954798008380117523364631350925846404097799844676502759460292367790251576430859095340179170783474184711378190583757067794295448220011098316333832935867577763430213559051107897401597104620347366134922964507891935145553061953580442648249186910747288874119809004502740190903700405931083754592887255622979982422823458186400130959221182812601067850439139829414206871976659876957044352166668197842850793655779918875170575525474279193434946724268808479885098477682521475733501832065311514073659962086989585125537979811938608063162334695614671728324788147485212193315418891777483316538661938959597407928842153573654115443542067193231633674741685904919460734348114257442258657387119994879609672550739796845646913418354240915605697767332037949925580733539807547876341672399668903972226030617159507694678645357267912400651790916857599113757606990539217992978355534251147098213937591763203537642823876297412541114933974265386072108857244275298742262591733455101834643809391186260681396454657521830081018125654907599946915135819109260347133254299132316233975857083022803656576685896200277449890423337490452946306984447151072087069495144668762588695959296742086693104265876515903221852599630351064694150930411333840974659128938621432689763402802396994199010359550649393879981739079347731370327071632641604178404810921491099902799631416163062758388299979669852198615504769477255097586727188410327828117930329321629407828742275224177026099096351167376278619724939643333293475410957533556332193969370281159617874118056560795104408835281315807757815890945367728258419134078492277858092309673172852998024925307772841393300650602330435806824300573145112016512467319810179710188460668796817625159742126261539533753969119592318327167321260859725892333816515497309918441464129900240581951201915605514272531466579331395078672942294827177372235086522129869719415869979686740016379333124304170156984396541866790636489874166955660493834861631642810314429254996805746396069478383308282598216024870508882108577366495582054014376101925904603267050971689517974783432632105844254022211888010117180583228380871694861374385806827975846580886693213442291378764999082116418724570295892202775011796254684032402325187025559594595753181676321447707087442886171212409545481553595429129049757251002218785315604139081338839144235156063955136446628316404182038921146883104702887067725246308283205472410949259879262240023128153950087423124248548453205616149100334408583563712771905884408381983641196803352529110297521331872816120572954965508461226435021488332695409189579884302792379131963829006291009376925855297718578177857486167109246755197737428646083532378012971503709126649061668696368432091268518189593101169887897348107349547363960874832128612984990846803637039651457095013532085943926169215290414991817835796762801678189185510700063243053151128505062216153382893083537991711171736271685556985071398609481706149093701231085516356285226567201796134783783749320116797233681898216016500677977523501699219673806826469942295484916443552298697501221662009601740087436648073924937692680152876190149830159062606353136617375929403330049531082799811494261042229991186082740844357471953950444927852206678344585654244457756130098984575444319426336678659582589103444243748854236137019169486023242734837177709210057172578187268978680343853283493138314934552239370744895013929553957164381157471417676364507225301002533087770561145394258851112941967309865702154167127774371189806037053430134233489371300377239785918250309560393851506169491833695952513518239672273432469662438646959773426314684227632670981227098385398286179872925083091234647497293502013160746677952500803035145946095997949170887956007891846119790947636613098045176349164844094671492816776758353132280721568933914951830847772933749293318087868766812759264606093612890199351381949609336682297339258385587769215232738298333586411661477436019792231474281981232213886383563464379511460202287573336515257056868307784852907581559682268380819413314668189978446251652420622982854965102113746559406572635332392682242111784619856211161742593131054224031579078634862046292478823144554057759195178278032481030267608968986399316812456629718185631795651560809634157959743756573419021872105868524201621813581845505048430799727603904247774510809209621507209892265754779072381528426186198583421707692625213480733524050587217199239018658137734353919142532322415983732503870220608996515080936959957726155073135535344386023858083855775939028356384313535796739187087281840774783841922537204701493283633913715042450908274873727992351715136675626616185421381950919165466852038182504200925002098810975588444267553603672145682925604895886007140324597408534731920573703430466530545019380424458463222731938899846532555568385178088962284947308944940092679155645903342414534275491272706053649439426966070357332068974190931005988107284463283008422572257740314183483750532969979199782327593635156268139850377110061198778507337268873122624055107594616803965078129161858225004799151133247131835108832228856831249449179237842042233551032132990372406797758609021195649992535148961683905877145923894431513308999410137727509706998763003157764035313921810092182371476348534558629892369013911597451510103249229127483412786756803406893970751055936886431812746271855007304680829469057127787456836066251378886833136117106369635870731870028874500174139992690351351417529159792603491234475909612726723652492716207586208945143547018242971502308067701846190196704425277329296842033146593767323641957509006615464068881005132730041500049011774026463147249683386506898682694509514445014698006189319033754654684368970137317477748401749495652321578333935352824191278374033167374209369521324824034720900476328933046856436489075615144636451714327249334731398038657857801378129425373993454261839582255352002649324646556603371830906812846686596699678588222391686859337645601729005419144751680821677169454040010154292582582017911692163188698657122981813257765967641235402127768763648528895525978235479943676764531025873839345513271443406585406950378456605805358698788332087296586465235205882106960469694224677062156982230481805063881543536911104020514712229940928124470694523824862395957228913190347626209755946112767252080199885969151026843045438720042493839506673140389651886324240164737124892654164283001519193367916520471015656447016690499900427941153906217761736785817673584726305216201326807316906243956013127405997739889970400298154882758049911487606542803648748138086099942543073225471777643660456223830070228259806533897332241913667481773636544710517297166323504126277613309551558835692511204718793104623041966215234458122112685314430819943048431830893670058564175833993712862425289052162379214769507299085082780130979575612787970670507699326655426867696755289584990497891440197588391229237653832594976927150742335220495178227869885741783824748983093547661972851518675424429928618566757951465101075694595576167442699948106166209803218059392840570790483172260376339209400984171616258615044314947162257216422402410028898790394312943435334985594600753952046195613528742304990996618903556700122644106232573582692548506975124489267139579377172432006990498430708163809675068141288943137905609514092562065687336310932944016336714401015512549933510658590601154211719714106449205916571616774436336586869816932627590516536012427828462577713651778578835387960841189268903103594437050985967099217276562146073963781755202802396989076390310823269515818438074453914204033156937425480771162946203263771635012495778632147619736444151364996772295201348061900345675037659884200645692545661550869999206838106191034476706704210566422741793917863163435605932852093115781564293752529480365047434683747043409475463336295678316922465955354591214221610563106032637539234669994229213824972895522347819609609088427973247231120693822724325902116819881775730312102869163496136177519838692566081767191406049489845254778004986837471750540721056715212631578258822476252337882460449538889822213340281671693140422906305166276776730300283386211364049173735156893522880593654373309766231494797888587753659336453546157031162927751962173701199687132326343016653654176324285014397938738691751171549482747410794559406539633427420974177998350502536835424742600359653422779573100019380368148611356386631211367255776155892357220916078378549829547449624224562547860801025843414325979556244196738388851788099190891070911329067296395464276739662414207665628042048182465720101395146786248739422881569571762621696146425835574025471181864684441459388933703782682974082931680224971599470809957685032119695596033290122251808862617436868965918961518251601939810680399542447963967666099705668798427964314292322992367532629845755638849391119420100852939667735233563669692291008179787660321746512755767368081404883029474252219518558783147960327771501452214923208970989942964767551909020652053817897799577601661889425595939255768167759529098795423374287011110290370853459846339754657939681248680304901003541806192545100922415606544419130087227896427636986801343909818427436721196938603850497080384477385754418143798318082780496830297749162063323367726015168967363548215701037798333757347573153210549601255594734758662770018190237609515765526949066316380187629213551721699792494682635032450585060414841970971889324246582772238504319541846305457286177529092651914843513437751080945537250968689854106396882837216185262726424758761000648093926797577562909161972225828072839251003582237599058228449452678434684671943051990109493587711862726188446984577727592689504143128241165879723505598684872891520066236433147837725652158392309480673779479370039720282974172961386342020657160209859949386258016151991638627004008098949173137079989601096966328779137312244971943322199034092379934044728584679505690629882577449366757680136100380476309651371630296527283522759139581611209631129545447790817592646253495397542769182109377051721167443265304231934694773242965071484050112250701886490392791500691562924945195360969658568569342979021113070955763547103160810085841520980563757615266720199289488907063749234849146561902778239722242007837113205747835178517110892984169112428521870297739519614264234464953665116387028968461134048500358163348497066767385263024405197951358145117266654360465950516749583186839091098170882758549331256062224512305579311587078649568255943418118885455660620786721060316910973505662455236276217715717604219963418942684414870422476503333605545016711657145182526505612588920099206062334802200522735982687633037852416716028796063451082097558269200625508428127212885612212596021107962227544500368235555138008464821890177487246923349782490735100629620738083475863146298654217348793517177422846634021526889099925950498296602824116169912692302547523685700883975122756881400254827268919752412357633902003853356418643118894701041569542060561333436784216691075242708759882425110121886633425154477392808025861058343121678532717172323281918438748635279337654426534975032984608896871057865484693995143708452648120985365126349649775121674954994686624086760115327280704725575855085437491706352480845606433025768191266265135378169160641814575732642335333843741154095776092145636763551898613426856029290608495793825797259368196440049534922730283915447042724494083964328871724420813590984582034145620808307970944785819302227801165266777531949950850684884577735679778012216358256471803629136112932124484444745691899069682337123838121587912657115929951000705073809399710252528994926089825665127881084773350935829904329453685900074217284394988370520325660856752561987306410669284298600336774562305698009972901248173386058177009805218544230403182044121368553399957492237817708743374641459207578857179456149885362621568874152179733651851508685810479079173191724065696573458995675144174164635348880014464931578779161516662645375329683128681764737095267130998645303895558340491304914156103393938345665221550998603279295914569375931144123589499812146497365186845093720439030584832268719434609127652662149856192001498928774571962414311368613186318601025215408106312939857922627872760645102158902373913639582903021388108625865517496363416829972204771341431956929649877473647674917799345624435590611817170150860787662134111269870852773002797727071739614015355291534554231236998410594340627800316352046030651636651610152051025982004176565614719856469151486556315938493178537782189290947464493629643296306486821981213045275474561994059559409515719882894916389172686003536542733234013681513005940764306636365423980882136149950261334895829776501939195987076080458570768496482552577491090873885924350229804956260115238338094747145971691949705040105713867904261384586468510678362955599456737633176292408640219064349823848200344408699479419854447727715122573410537121104572005658323803759806016860962588546676813139003249415684038388155049965171049565330192299198965132684351013848138785689049030028344833169339893597988209323237897268634613673428656162080177626450633011917307122783916433446100215649129154442758672557815333685739220461841610882338014544443485983215983111937510536793176867275047823646989419467797245743959843200618854457520619530324635655818357967040405583523121958699112770659821573273283684232332407886749901561443524525347349199770213637114401744406820496320494584079824664974982279666716713911704368700675277432413066843751004309342466985749064071624828692634922688975681170619510150735117119513866114140272649977546887845297413189281766873921633360925701238497442654345352382697754016208842667818607138533065817759882638132184894143997335196545034267416830685343877361594834986498250832928789387727196863847901188985636718631497990644558976770341580896961615961619460326581949973163133773698088399756906447283987657549100457096424931888434853758333700262436366258815582782396777349368084326230919063313086553854141145020515631247213575753219433597201727433791715810350816064681036777430687581426351822609377014142804676914243626743927101115274212325600304856506410213125448274149680878048580362434432417294680295996775549657259264087826277742103307129125420120985033614133997639502402743585313063428927835066586516178578622865153462891338564746225758250047278652049970207761888345391000113318334456337877308568435830690375379168786438376271200432402649068096156478705324311098399340325953700979344267322322543656260084351463971644175634008720994519456528250976274037025274677786683951070036983809846837591144943070074326731350362150525758230077175158153765955583060830123558769823096470379023670821837966751571122561996863408619074106274661326279403819286549030247902433279092654530456836203391666940102578048790937876852596688629165501487496930523818367565188536842050403921915815778320626048067929599068526753803324242733877371415064333569358461715540009987223173840238842841799152477607697292755023308793262280515494947833746268226816652286807321914591167412129653144224261846085740415828047353688059667084530471480710802836124790128153760674960669120784016516872146813609037297903056716491593378089833481296250301791685655360851892240531014070286778879873059818692771422078500479171506196589109634981582345314635477640998164401726987174380432750286432121223292096610833392443819998176522812889072340902005565572529404125615809936676744136247707558149348907542970656571839920460160562220848751324350941758810257087637582651442212438453082916253105981218107110289073592755983273798746247940202901008736374696186841162078840773734939991698494591330064898756562357989382546476916083467422714033134877999101808426112871420475347946002463033970383315048630823735349155116950702202716726240964025652387983539839655582455305495201937860645982342329512633541922863072928614935316399082998872483246397939816420064577033066865207113181542945759509139045797646231027619017048370903546759345744967217461045311189839379935059252053644017840361196841064463703143306591149346456463866519203760743064959942097979520039706156525033633363487845618000634688672202712461199441522677981489177703436225331338621826207305220907045157466516389873379072498517315065354631545965055656796281243337992755545148356228671971016834715533034849887806684736932272269464479362407009994205392186668177568865708606340904746153720685585788791394024595557157475777052194229305161626720196708978310944626349907616103683603724248590605870071461124395127519355990660007899977920429169027920961699984556154100236668789997360198040379287019647825335397360221250841343165649732944970639445926556542109420098312559121453391508027741416300844143060968635771682221268702388270440897219079959926973899959018567012926540787848468406925799062454500951507369141932041919070713926475591148761399280603528492398450778988291781453948720289367083232739469808123690515266338305786467832294765547105252496750605987815111212413061136519354340362729586297165816907839073856013285849986576188979323555664947688646595102785697396351945472931744407910281811012676978188703849856053888780948772432103249043411782400632222561259054632854298334241506514467675349903347157845057507012574067814577467505385705077058681238058535290365120658712632769109941745162901722999738301314231417649685102229501655524676745711526142950579496922644412016377945175269303946407088381063441687073469416488611837365692232715480924711355987039200810918354985316428385326691767761398638201364791919284297842892452478654849071201613694706403183060936501857394168809205241814590294570758706663369737758735905608081180324956586656467512692669193559536666954060578484342843587969238631085754084261460056501122317043538418859115766837686172026800461507266906603535176740080671274880617740527198158428650767932664890138088231267294464777852899056369599663056107274240279090636520181320714446121745962056408226072441368250940374288011263588018349454983680781204486550690999453953512010813597815217637267592104792704998660094198381011391465994449807551792448912257666015791805589786365370004295635086072600307670164759462306541003251703804623983465257323423132586555598797838903285607853272701638216930744756025888275470332133635153756041415895797573424734029037798340934117807727559066251403273492751081642459717977427293615165912189606427303839231351339249220036339018784784136349949543186684626758312101471130295377931194082683141251192772712607735139828263853386717536263557730969295251048405166632902023656145980280494383531480518930496040630052396487518247758053647974415580038626564593802548165060804677140101031095890382203700405361545766800237713302967958358666556615420260322026038754989641551165005598399237177875212932058348349944802173467281441599075409927572749775143469345654306710616756165118240090899369159870105754074268196956023089624528559761619661997130798740971297221750654001238700562422420439870832010631419721301229509493846916567646663044559461451203813349819606390828050965983125054619691030778708874642807208052340098402857128367056657469936099809276661215390317561218724170194283070088497571590496927551530843459471907984019064186208003257688565260992444393708907895353466608451958740565783987951462268273664698010761664849231366265006267079741774950870380945977240910668698453223261043034688175410739327224814666584915445921071969494368503573216094610049844730263231237896882188628269375025748208602910139176762274026456658207705809832063651535999849261593862206568026665521925052221740496095211177559823917689335881891275481509202793427556835330751993383257373311225781689961455596563214340534658990714894235809492320902085341832875118466067579776411743026932363169408498913926246367553465199544248387787239421385098972255491943920308103175781010098069330267819823606088601970323116817240737785765025300188605713369036720151723601255154862853125419856824539233650083936207096604564474301036663322708992458985198209357547397576643369152993208135513262199829536331469354425351202695113355861651183131220403910350809207999304164367341924427152561753226324833712370765692908948497867321962849432727928644891787090314865810394671876030184313487505539990347909978593289775975117773716570946060567584455731710624818689499562080461591908301976450590961733908348052241880227051970417995901544714110697879623595782234559366010287274354195341572990099796044380699891135696927019034743110359038311068960214682109459934267753487537758086255871277335528058486561612486673013905798697807509425511758348582903491041420580848604166012203520140620919235071698122794632228170162265464434931348043226686234144439625156484322800465356243350114791578990420627116333008052178660024229117182314219322468939529839972507055573862139978720189150401551625702780966447697275279907664403412264809598542800656803621286249877012851747349103088712341544876598077108576207257787082643721962713635527837563245917296705839533309547232766865947529863922067771722994922909172642658723566805763290032969187515738985193870518850912480382339984962788323146903642397553234206964579501601553061879950575850819073921696220658245996106784988912085840310747872870026575758594141531614560912568506515025803442493659852117616979351279801060907931505057790907880026381904298667868958325387423380914093895302546415736553759615364858715750053011978897308102908102792586447803866357917352864066983393460892709354675467601350336875236213014451520419211884014219284432399420673920147052649000203485359746650051664707547146437705158516070342029397133721492142442992379241766558952295117104445777438050567644749752326303129913294092294255998339386702809693194771497726907319984920747900845573915252862252071180531117538137276823489841059974146535291777710423301822132256414593018373135604070447970144342586145706561345907687475615716911009535821940475604610391773296782100184353175669964820338884552744396257800039309936875620829612557119400435897705455849370275755416833484499480709283855168398773100650814520291496351596267348908309335454175601076301863241431830631720001135809209463559815272654919754666945411344421664823766386594598761960632663598624561831463329594738691683184309311655257852266776862964264239806412593034139250317435415061241179276971371839341088421280158743858567380721083994705354392071265213028530669534503864867749545549776566764374761226285500043155037610987168029307340921247540577438856021989376087078705796691978595069478692842420646350426388885344840658384345694858007579901044462167705318240592114177827000484537176095614629118204903005315340183806714083407251127527177176710481342015180753118951625797537977816766847991173543019110432455599325498167255748780291936493824077733412073847640964786349698637327676740585072911144594602162542574492056658657067235136763770754892259501981684088172941433316832649219210925468063185842574874631554384088710828503179986378026077743527357294107820943768151662183838291969258175956570321819475946121037043011251387078666792939378387853886198031105410375785384090619793046060061213178067661424663885908345710865851149996610994858355473836098837371817799846742643878859508954212874088947501085735020273617391292576316731845259370217764757501996406274926679652391061901391694183330611355053887704579350423616894958611411204648770432893016600840839389836080331816631120968431354287394820699539099338961751127951334332604932533176800169365221791214105795041477884303414407362259398950694766594150218559929043958126131441714048891505740555481658136938507633851450603695634798807985273951698600476575388449282341679645087637693241693081370972492655075123721903728259106968036264221914352544045540650131611503120144772823802725134014340799160597280950894426269582617595711024301394311243655769610535914949595836565970984886534705653365013220674914456478941906696222182132600511361125612359694941320952402048155284232072360854444609775368898219797707193841933050824533874854089272449782423881026395278117122835637633690483882391061615102581853060249496193711812533450356568311655906812679066096656257638480468288904749511137722959414213088355360514852483231034048647993339157396123820929856999847374366151519669839869683475023770640762021972956555942232959792312420825119398822598961484695959455719518879637686036560803592491948100530170890093353847742513703555615686736616521200964035568705771923598166284842871362940848193496069262563254518831779270039814702536793148378832280973146640792113148780761499096715344483873486321062481938288344112556025261899528709842024585695712374036326040819838866159491766790114101548152467181311429782668935454095907250865574976262644304981754155703874821223798211433485521098250941180565694183329574552211174092103199452858815109215677692221505155227437823144362087661171472651249654125607454467411794053227847847510806245870210562754643116707660096548967054931887220441738406956308718884635750668129097370090795903616199071780537153706552061875835811975511256049466527094948188749532828846049705985371613219136795628993206606393371601870285565793214618095759770000425317230974240251969580729543627767794525777623659269848151960854244621986471763444694880250765527681690926172166535877943851714917641868188208086586457512926010102527857870111777658451828405430541819131805581769913929324804311789652149996883275258778833067206644889059657718275773358035859120129503938420972570347727042728142557972586339621297055538251329758337685714742309204147622580290353004175965922800424478767127592072964742166835920363301768759871797715974994019636197124594123373850634370157902799758853320073063395915679410276170109214388849419380433033083085718188491551920933981815373474612758880486964031036793686799304336055086845646803389398192971044121897874922707779115581758832056582806595051203990581885902611660568309847467463694959171342573265954148780441306308143387655427121180360770458872620670394236845401465488853436264013317275147466756359318083988741425590740763975186217081227114097851371479576031508495669881762850645874049270605596392711429200303924948710769525956169012768854079113427317538708527078202829332167151757017271045596850240980907515143826263092209936811719637404452958582709779275239582721489783907286256636753195626658064809794691519252865758015935523326343745613962063542512821216583773378116549799898065741567999550057154924582616002233538603798899904462172747485014794536571725074411144904738890193065402021675927195402825004783415601568177565419434902725665027969568042124028646861077185339405668961547215723465077442108879000284493825020069632343426185734312786765713618695628213924271353270297727415666335615780280090187149794323788268054450090113269034852347202110482615711841190933924462472073053645711039704586286574984081523568693765890543187909363933301008259929158163336696626491003449436840174999180257630095469915123085457781136623835879870864100046647667227331625394654375126661551482791446605470959256233560478577134359222686527958464642247548518214815246146374626857081154913258294585701315029449893494913746619601964725567633957943118482241325990020025618599723927170187243459616783559055832467150398369969401479884043642974900324990457231900459753255158244282799331025596960878739525257314610474696135241344648353916869172862187101450298453779275862742150693539732026020058696712146524653290640219289476228966826657387934237295720266618694031791223357173806577371238296384409531203090798010764424924048686830413745978231326885156997113059687288757434170645622938882594192260891705483862435337602712702831147833414400026166261238306422373001421171631335534904195757721004558070318259203784273769667717858333258729580312608711685491797284389140719048768475609359411602829178295906867333460366909414078745664844521874770973806333967148440717800760924490449764120252085386910981139306222542582779986114750702183801124575862827919083717136497059069755081575141355336264534841426686302844557841234810513297357157072838282810741280876967218749740849042669162727081430620781792579967367002540786100867363632314947069637050835242977266273280234105689764450864367378942285047603597810602478203038244418863578716826136459863957336040699294375757227453394108797179141210680918865656077477580193119067580580911788268487921503428117747334861947486176246752960326115764141484363559286604656129381194270991347289234733594089433627378521320091830640207713137199069112105556552694416288329559477826930307106521097997539561727430188055128195311738712915754242363706382646462406512834912796843854541391534305121116967068292347769396631563604379311761531387564720642533692422235849291345014919250724666114908847741543984095781268276260424539927289599118174313115988981179671642480389447670476390358545829384967383599645825983287461049985947156301723654983245010885864772161588296792817081924838827554901308490404501223297092060260680907969601854623762948814864328713183763526444023924420129511138985753127705999941780689158980395046729450788503010828947771162766973388827107606507077264256966168580780112499502528901560242144353992763881687229632863784564231076118194200537318762005376018989084499459432482472565725201602796453627594757605644339436384560948867468574165982596844185716047128494576345655858632594278983370239240303737096026571142157220216179478746175991695222754501285940109251614388345982201299355805490096553677148606354306482142939978973124977605576525037965551424523877424531811675959801060939656391933293234607680690385263054404537894701126964411298058940362984257942812306546758489285936618745222722537474669946472325075222761799830366674675823613968803289018874236202104526665787487451342866107214482511642455862097285969581412746857390840731515396314787864144335145235672866396681338402253772279631365679276282308731582067008752509523500234061410478372749559117186153466776733200394939894786643571041019648629422002517006324480553707237812760750904858446360140748789597293327336963040458286675768284735849591104368860605736794160577846323544294185276068462542435136596176817918108042215457445828826799465737239692138970147771420366864418386698287357497148237551672478406250129476547150773923237456329701302634081101003901959986379628755028347312627724050654363746596908835527084337577628495330460132141507773156425293703823826020826639694320581565960747492693130222765428936646989123329690843603093129788062351234743470556981965287585981554152091256554621273058548722640659309540541525677483814268888416516215858053267039611180139014594765919673023279595156230258038503687485945065301574823733556020957794314476756414701854811546776736885345305049089954606102847197067520976855478630278775812467200343130668974139493134705518762580374348275519570922301691447435127015473663463151134300420356462652807107591947978112265207628086400131331011761693608594773245887008879085366761084570304041338722982497755480834048742253571437219720659236643055563146452249675531317115727653115735577666716411158836034667581162051442301122356639503891333582356991827499104847430209782079713412580560844558016590425535968128927278057017103194685810090764345143916637394385039163824326992704233549001360066722844756967353030404664598240542990231471598815839738524489564181069316058679452448442637004571060712480221070502651079353779509171662576975088170343589823147685941382154861554048227347858925576790817377250516272534708917989528972985077317596662180793547350163360507471871900967642798691016053476518723644282873838525681457016203096791874449340579159120497168648890462864123649577331088454860682292586660521222195881902944578818739018055981979224825651339663312083160841932294508819229296954272576148426395820803200006812440329948825208182526672553049847192514379583469940750586353539532531549168806419448192231004514824661837862919377604252622751192166077881655105069183196719044236998610574116018944077059066043844529601830710414687747369307667938469089395518265155104296191265656261518959916610160978906849826951477969027171979088868402008475037969069954290486787235698541399145609803705694776045203721913921343360956401124945347860057952267886537724356316764902350347709972564794295994624316455698520836672683379294038490158472224962948798911567061839852840808583277716318656861994308826142723403405043929530213782297843588217123861637541986801465925077825500447188237112418047753234059706800816267317626456072785834852484011290779519955512238961670837905443917472449620559103318087541206717608425054735576255549925506108805049524080784325812707747677789064728963124063106375658584239380380185340959044384687934097389285280420613893764856160919221600438972496379379093579061151352330332589143248728364469709522594653736352270054636472042060795460294444417925543607361061006138644170172718048625259535379827661266525374267501866260648591914677673226821863930866108622669913068905146930088136600117207145884602864245186534885697432484164471127257774787478678900313316571452799056679237975754731639982245223850097518879844161497278485080744454314864383193012568033236822953350059942991800853892246597410524957076092305385632261129795669775136399868277921312224776498207459420111660805157848098029160091501444482691535741290037292018026272444094774786314458846754442501248038266677458587633290385852314738179454176464901183647832690388531662884901803952634838527300711605462694710024659718111515233421355643358011685733291514916598702856486755149182657994372976771219297840211258947301750091725757535535071789808185115130696828119110181257955046136535238642412132264475904230143469972745948482697136469814640301471243072850699404547625883356036893870296814410165410737024688703338360292533522905247863600232648780496571590810181142812035260157792589230846320349747039127960104848596705255368024009761848916635454707965642327759108440972173648365588446675478320480071822186888000545807994920469406754728712083485527608093373318028753110049103887912297941415068130249344978229972588593959736050019438418992560967202226032641493395840794668482255334684152099256579393019803429082409249796880932306031260114378268720294039926469946397209222673291200859549191102950898101421558355532868102618331130309664950865053515645120685305067515087286335085165057022486333989346911154310112519125843822964180390088933140686096600569625592186874050250666415156491871268044960993480899226700524636853618937186029130368312859277755846362218276956748631132245420026902582079849072529485876550731555578149633782802517160826614879059619635848891423146038045549990327825119799258429280614797318019763479120782289409439641397082155805363181643058454173298311776644215395796069953370246293937690834684046019017541612343162923829743154149028791268390341008263412452809981945223548688619748932398155542999717073566495386894131286674123698809806929998705303476272058665935588892514725050272257078617837167721896342440789649893819231849588917948824518836762443575726176175946797661209924098254209291286718674941889977641568772967944482062816258922060604814053586882484639462143857833863557024363671665580239687165925074390188088083564128113709581608041104222789815861842781299030734590872162032965149479931365662988556154787092076908264478162073072280179451781986952120202503218234509373954013877978686881142897203522365202593450014145905543883545870938957753331162706155369628530393460655662778627637105853268890674860590406931722897918180710408569212302556003364853138432062281791156472799409019068826936867476414721364203852622474064466835208805815677679289855930363226021640437485281165484530501579229424780951502607683503535061017730957307700868159863183432998330646364446305559860807011327808666336863907807739371581870832497010415258079404072923379042102952068989640936861769212799864931279575837555916400770525556691197822124888575802229139222565628793486113143464696152717714994960946457434593260258405044121142706239343050973320333283143731188838473936831243663916498685032476473143827271088266866106898633426595900156765124212775150206715839770610791600741672367620060611925650985859951998308168267920987777233046877936187676954210246827535400709137030189424922242158257625099434557374552672361150506574033600019202651876913443920024879465765001315643154371186720087683325677441772278942709487388963614227700929281970940969780057639842855476573861583385770036784059041732244999078581986095187717564005505949085124303359892632614897690764707425868703425823754369615100279057355697480850399002530855423851926134814814595808472882453677262964755198035564912342928251890335188289168679157885294302742729930157085387804238265515195490537360574518974215015417011657473997794393934875757616918864587573633868672051814888682406338395945582069173685531356157391541084913802479909983911709236222231126041898338548796419636729262837750302392829337149910439067232462561828639712244975836326321452227400937556919414169516462199041445205229281948245029088385627846760831918358748584826968671367827511121896265587127489588132772428655719015803998802050650134796427676811789049001571202155607795214794926669848128107422813714667632604830363581595513005945650679002920081789267382607599938098467393308776880448600981974211054429212928768273537151288126457966405155989990819971791839241595124170165670554028055162627804149061531624546941772554124104361005254118586142028037855939581540688264639212384465549319500664193800837630495299551096472045466249770410110774308374034756497517178447081220543551029172844348750826661095371140310865538372630669249254265232286598911378636723952848560776742531548548968511761619127670828158852944785807075648570611529331311123339334691671138858224560088099437347622506978983447835331098226225647841625828727153475919454761947533965924215159555404887045889376252157634545353496654207110175756167120416571840592697830125182781499189935821199137750034537730966799287495404011049571589005915238445760797966423600888389340328039384798708140210105878505983690516377371234301448394366097912374027618908557231474302510884472443939664532411200498856693874054993396638967018433049261311535100793110184371232405333510106106553520576493606479161766214836425359839778225269883384345426758182227347873750262927565782463465989436963896790615861468727650545188270162729041074273163150985965898669666184671700152487111722390604659783889714395992875757897484935438920315514741497935423676642922298931783375349641297101842082862024437075395634602203443235716304696691094466053470113019688549198148075948795660055905364157862723178836706008194335710396058274754382965671713227732756020824086954947987332205360676946500455522382852133263770800054320852545929241030806292713516101255512057483388689700692447242993669986958056440370547675540679558170183504496156865656163295852341368362892402319631412229317736073445024572350125816945315302574420229160054943058193040302589384141860184035362201746034767250033938052862885369617442536285469883619296079765045141832607211698342144248046963618759548866003539587215394742163781082529384212105384424369081933460506206383509139122604004971893818416643575182402901384525071346026851513225956509850244941275638521094465939968042552354332588297590948231898973632291347131387030213155981037867043851289536938498080240979066886942141022362249215906230827696971949785464787310667530596598868059716271395783120959973420847408871550983884333592884779361952327243141769772373612033513007308663096427755050138101167734351746425933935873177245204402828540690000755615776087583874824985853732592076186137311202906353174154802431151164272696424035393931983822663473672928305699781399610119148116933620902792193527034528881643150832013745388810479600319685383189471805631850573858936271438544958288626340790351069528263171276745451855294957269581190747322920168453067399123038813107832901860982592070689252522050048274488910293181889362836900826558387273639722163771949990252124404695701888595097591586839078038245678180744050473535163167641379401761623554963046724870766433135001254045542074288288965535834110095250054932701346145315850733774797658791227233625413768489748886360687603455020256337364458589696437809724582520921748908588080247194497547534401342468612851104116944996694196776420216168939771111819679439749770271160117416056526299476639502511141476383896460356263660104703909767814732244498184914736069879682357381265435907650741564171348793021807399282299025150131268676533390275246915769616378021520953140601624759944362057503070508271380978183884619722963239915966150802381881380785613208673900428494866461953439880965015597889616888973295457726607898904276337187725251969668224274409002035087745387702754964519401474652114650090577887569648176156344170125344219253447982917208561449607693352341155904642083903848673242969668869493055032468726337430005501055169330373394368463537133599547495842539461455646410786601897273162463886863776361390355046138016540089532733348756782156176898774896582697284207195626837157090802914688861830008996677045739884142762037734635719664429782093932651851121019165861587222331482274904463837539608718842673444551084752185995309448487520228728608214069022456883957542449686992554386003464342125838462865054913330639784997802144422137359642035593081011357070395160832816781680217584958742093314458456599401893611635671298056958169762037318120952033848489251015850665248654871392366783496181909016411285528059099420490390623898538494541567487674968628035692307007816789293051213743690891674393804189348624242319491343095623687416812900493901502119197743998461835459229434210554794154997079033149684174029192440151686790274443564864996778912690833332149133655990164910925917705344702560893607767358856578621106002180145317378638830376406965140783371827856951288134848422150608980331905079941786438708703954436862499992002838552239875579175414269100715802894464237668759994512528605216266894640081036814866463672683675676451880570365811508191866580771395165113936977357905134395270132099533552017221155702463271880412042722909301367572126593410264985288826343671050169337522036098787973472355638037128937091136265402490677309986911896986161258853678339162106340403650481951789373791470395053795370188621281141299079481571517743293133580576844389289534716943026929993430248510643496771186713187704547559309948170735538703430299832870255903320343215132906687120761317787078351212712471901773602499527497074990864290661371237223151409928963745748427853536037386437988915835184050347727559821075482609500727717394303441756636974429610388219850840981977785969701964455145597466056020541217326869193033740058590377082121889247833705742648979337419944273594339765535494845092712094118671155069078274139409096210311019345035422004616960155454236979155179815920447446694634717395804866217328635219291613085014310284991401427683405812505859497013688852101898987093180202755117975093398528494707630747219236982987888304746603062210807581255718028082595535468405950316345196426877984255029644893303846455965116387385188086567040879944543114136835246252642104216641134536875553429991171275200313061408431680071495229225949221700254507574316389772651668028300840575649265232774210680851105782348633038961714307370950564107840536639738433020567368211529814402467330014913947681628116426198031328703865484374009863723435296990677204636515302347177708029948782089857706552252410286390221837160583646624825673702421043387340266245601979848762721398106623948348935493740040864612874855402825860100037366064672378651351158004399140100741568920831510709535085207629726385582740098553340481292307204797553193291456630513978736085825725865953105681226881394025224103996150733719194775245236291397982429096276316498551728044804125370929625815900232158845174156432256376851441877465986341408488773006462902964682217187188115165195464237875959475941062258971392276499875545754453952075365599116947812094532927733729972429630463981785378266716322102080465759261580934928222616723534370562953405356957799941247075809604579881604662870861027509899773484854203812677386783465919965381719811499591771883754321761853762831402426381189157197087455871266346662548624598575683314096543756100650886683896895252844649355029810589452117987564150393004906248920615941712174352181525322571626916405302600273337416019124493234160578529601946512370302472392877938069058288084139619931273079630624506316134474889049850080193593919884017517244194590167821622407691004789001965145198540243500554078566604608745323591280683039899878208279247645353533720648143000376641579304036188083407753768031559959968361575316381633228210315599411432725057035741396396453622097880574524630400994604300830554391470830771943931254718606497081232892246924863249584912936174454006011762599701290780705179436404654309801434675519979523767036982776250487630233942910409026704954781433470333409031304700659620677012627385862591694384750009583555063157353878931399498433739887009356370862486807589185981117312250435007598453813844051694969217620246353078149421826155613151275497621507474336559891037870889777187947333240668441737110009331272602641398208431665343697353137247952287954070114181501973159715973815423286658510874496754381903481543643833237671061680083054175881549619895527234569954106596224085865295468589426486452282733144316103061699128611238349991114618466950055992737699467703362506939339695161619256497057704749908094156974781901653117650798326978277671948383877180315725081072553344428959053828459808991918784015355694708990388587116607773638444711446470623942402879531981646070680052642626789216851875399304143659110787028224761206929825248720704145641936266382045503207380796060104188060800354097879786088393531043976316912057720511004755671826134789114848619096205971267225672713232310094601167662760764360444971984989321327727649128189993563002537018567671246957443419673854193120195735067425369973671599475003542899958644912405942179447326278462385937251216464021602412618740249267240614187929527455876025496953417047784213701483126414019376350997531411568653835061821467376375508332566849321972252266448893239543064982308533573965551202950242615916049841175508486665720537427247980408899713283818283392996060409415709385648830991757480760731520982140143034717880236824322912472571025079339901018873247985389261321819719376665299880298317963052332390912069722620471860855654413348059976406485336353699538442045768088446565009756263285104616071018512250737308193370577207423038599258750894616086507286548702671316398942372463499286941835161371554097002514340173252913468390700826204567565676173950252688134445216146215179942236053019175304847876173711590221021299485977670408297801577309103433325474320672525486336517218673611427791274265984461566021063941591188448769597290016302904133647441680081784335159560016858186408020288300375732414249617335988304214272049058633101782281424797630895806542187859259484515014491775129559428740130108889486007379213130362343190825290120725533164181908824637478377861333101559788994975121061836504594018291698017100834422318982731865043523788989397314910997816401277002029332233850196880731817516392247392752239376252423542273803639637744241463978725536469324496052636436316685413918559626970199072197788501832695097172589174815387568201794920296164939383323224599154746399990276668428754506776834127957646382716931261164978900460491471122318339831084742819615840282940225594637509586621592523702212419916240221588788958609800326310350462742790696135566887826758093880681033153482357185014262252642451476369352415772542594099516681968087915429877793622746152486617305666045776491677793457083803665855992306139454090503458345143013847959772019115895242052214790854366666285812393984383967753125902256273539893494268203724628835141190867841100955176618518801558056642524142177430708244442516491618714339972268107394863123449060197934927658519145441210861912738370134521421279139967316473439149726576724386655613686824278018556412725987775732917475966196761033555148230591684065785967306753831870162120326500589838335736074521526746316583734408868244377893471436082355416160214425204439798202599311070845932858407486139242946557630009084639285493979849614890509993390765196212415810729675703133137709352171137509037822067506961964471219145467244967192173807606752484889866530619239232310241440031399317333880758361069673902470051844357277938084617814240059973903061759269326204006770602001001278353303589610156935155593691274183627476192098204174344961816176741975929224078074290891938469011233251289753723750558252352633247330490834671206227746279212886389361307711514730107996781965100428377959638068246300141272730625535451638417903727723149059568511494344948241086633930992484044912006672037695340209745184341390664290173937149210752517791390157904491186753635150503544220142243654113371290029410777660441399245182479260684582942098971635107585421739980176493986952599926874182678681064412693766437004331381347639186335169403130971854602189843829896837508495316074013899548302850910946118450639178727542347340684054937582568492691340932739244529099120958502496984979546163150849227388461334813853182470809580452162726659638119465450953331512965783057600031741073012064003137910610341329261859491753819648632283918980623361499908365231807360095966224737107141624493175068935891808566790534755320732730146685272406407803702584255744024994004721632419811532359189658580040953466168146959239465185571568808451955870794940430197568612829410010173962352431747969754324963415393423466082161260293734837898024285204442364880581789426980739227249084088766448127676320920973150107044748791701024708027392600319096880908973328226690331616198883296333662300705606014541936251407950924687101547548165569120945522463577308143092837247981774259866171371712139798186635822438787329957150499530660491950748910930118335285865698991891417252358081106972245031640789635074230229428922756278075891390558061633947129645762019337087241543618848409014878086583395618550304113968558959993120785997494094196706726490807394333792247891105113320390408919621904277180981531965713164925491569453505314727530565360465330752300071193900559787441454279081338023906367852613883879869958555279575608708759550696128159737895602267908193016656513508970525151737587019663941037146151534535768704442477328147168276359015065697018312541934241053948993641025473803941213784307403167794724409900776910633792483031166378722016420384118748966087981317517191314633732564363374012401223956823572039472675951540322275498241669199709561398550116146973358520081351157008995358119307040230436764363530468723315367829818037024543670377070881029713895891026716742018113322386805973331731304793897695018330500319672447904901673202746881725972681797535706529050094092477343709601297558605182091169575725934468573351872508766852918504765639774770167184636691443449256457153264308854257837607988546497508662041681093089174617847243913632114075384150283369180078326342633758143104967213850177711353371751006941964847181667947844368701654757603434344945210991833478501934150564520344475858933644888668041545603631103162114183739393755415704431015964636677013577167049473050270282143378043477785209494401875881761561862302716215494027668821315912025709475618268262151822431843625595057515974361239765847228174541210726001048383631066850184114659461093894268747690394355417364597031580071488713740624249465361141733859380816675539865674836913335019894471994572887636118310425833730366797000443615916760416007127044656609251309030972883925964196350497930342291930033702925202237864571470290039426621434714241154296482634072299689742057081718348775878780997986279715684108106912970028424234098298265675412095067732808998836199582892370126788197853913443678501918501414364768301432521455270881481966607677909975790828651906943656522725675868636265408191237016617475936358491131037098150612134398715609947189254277538756125022571167927908524998935234679546669536427685071105050042077544983615518958413355837817340685851668654547597108672970087618881991668328478753123457047550219539850389876347591061000015410435246886662273260614543725404409554349660609952190847528869797832271434691892640843891170571141922313362657264803259658683959855487630553789154320145774621182949937009886932028628551963315885590552848809662507127908255414754836033655680573608250085816500869128904829059900712583965257031267270191126828197895785901058988803322833905396587307171928017727333672278222070134244023894694569750644543447628593959567523690699268235290157196170234389091931264547804029020699094130168501613170770470799907154020312250760294539011202500885940247501903162908056763307024802585696243084932032522431059032246205219378867408533588762601091793731304925003609968641786789811545128158637529940089304776087268200848448067416098357295711706860010159901921561408622521137750424254713530172094806021269240944154414321384850480295169430734372186166414533243261805937881930666150672243321653825915109500167428183602262470556905276134065580984605315113104966362981523714572413885017427098292456808981245858795849558305878956527405406916027975134574387853680338281363529711470009547726947583702263366362406619755796047422864957434553606417040593972849915338903075376121494685990789818510747766256336081009088953537030847874234215587888023164909561351856593084880944821799094589415061118656753807699205866065533779333416754138650990769959348707133833320905915988285517501609595483820544587543782475217621934128017065127417144563353056002058129638439753180305955725027038219916834265708333600333230327895168357414942393382863673377450425722443477523722087662954376970889963255571327280506146414752489207805418622355243139662756900717973849935309422265088544455127226171091656973376947690611093070031883950404275332966903776121168368446471428202459595046986708186823006993536357236379022622259333439507714425451422301314294292065188181618729853489778677039289511396066771605618216654373823578830031380156441500747028162290080519154230591992422843174548472530748073865846008659683024740042621436975484861779788312853767948407214139858210665085361270026547548921789615745657871042496790971423563254915479635876781300468821046421641966603595311639530784630686363906850652790430787653985339100720464542021129003219253378185554236307248338040935140729992837306340946088388162138995642219623509059945151218072825156846803925598927549934201385079956203627968369933895598092919626375928216890297587014416347366536102025056239832919154553965538785825514854091024115864172418186027238917181799128510879862608109825124776433416985611065316180588202103533661833653685621486442066222144494916362200153345788262248946981611890216710072910583050665973692015971708248199369960694665597636740032814694732673270419163780530207600204283583422491498900446851874076313214739137745349442131339691509445958938552762135239969598771920421824547668166106431883982176861812887653439682498504472706249553118190182416870380410067328320479020169233811478370847001850687967584384266097194849705452189307893420004046942476068014342994904367813139164826237550227629680177937365747068220146724013158860942759332937672643135479655043639759374098274275094549048511289423493211045665419360422138056005135318564183677926027738823795669815432534019731783150914330475908035821940436037654803501579167367608615516491789192417695643349061438848727438542970849456802904181522526775331861018492725741529363262933533370977025276054007749676866886934167015096745527685705469093547546509210537216244240908758654062375164892732513148066893483306606421097661822895291352285018401435406955171767792070808701151168533443135606249811276435860476639914797420880451248068418932156483726101689887365028589322763537807716191660113508028672366519266293395102288435714317041963105309394893031473297089887351666969037056877660221996327610042082266647133370493439087697289481453897859669102941642300969134600240650689772194223254307999962360194114351009509321677151277797916187122507853255499956313024404329326332799982780167488614735083572831372918815994573637275455801971889313288018765733928617873966508461531792923336332772673838552569604624616349675637234619029576958238327311973080216382055277141408872597300330952266733438629009985082915220550209932926284686632424691127457232445081684675195380637796693366094076099235015323225513835359568663687325172977898739816350486976284225360276570551152403097725013780486211440759717327327577357596270110323622045421963291635391609307840951538054130077280134900451001369210882973854549856850373333434919909897566637896013203605931459454673853801693450831790897008639954868629261212233190189806105374696112811387264878941512696801167709486345447160302182902058851150042163916661295189152295762280887520819332949446112046445523314035305559238076805445786953989468468306707545713001670973334188328079459998329327075675885587601691559191555166373663788282636268464216379121153577355568335250942390511008010063092204322589334286210564095842850418095941779098995257984216432809203986532806084285759284405655278146488797938778375022922627641456873305244495245133314719426986949055210601528374491762155775296072129982836224040068952160562951049643859881267386857966755563885083609994907097886527190342720155493120640665460107727516659013003175216629910780460704969326706694037777452586855641933809187432321049945208600311058502047252343519826602220800454511111986603348181040613726136351232076996130245714082704004828461254293485214513124719206783065002515425767011899189095964987061971024992865218733896420502261155064984551176547259585613611711007429154430508309198811458014177600112180502864000566079161555957983209883828867883990017853401736604538710912695711120023409290581749528522948693679038022233174349341271121296851912844813635140559875569336173031334226254928621877063536994963629809732879649730577034643379065797280335221782322576314531285133155019005178872391055465501688725694738223806912612169074519548251184275329822872484025953893963134439562711862337466438761916937631051091796232004119799987171182405904988629895191011046805176755886513289515909707896173888659380804254293219784403519586196705030018677573956049745230088895136392970599976116528442791252097990365407830867593693614005902420786486755771488902217584518693071262038986092331938583538926739869053341801904488570194443729866960978767757039337559798156027757844954861178631932693282930416050543472491470672446636655355923756763667693847897083104605327824502083017449218477258616756959776340720902801241803807589937021765578698594035923625161870442483767144233358109841410246352204332696985278268572673376344370688778153270333159037624833912369596155297861884776200607904147242189839642715324783622919073621792414647684463620643477427849588984950820469605221528844155527088454514034646970674626253941740582272922146807286830468295128624581354367208985689185394099363146478227940108236152881391460622462565683113439092137719844656231533404760511302355105651493957757806761291423118109163747745614578320259742278409925398300063085847501634329284108478478706634011218418976724339949685610868653488954164423799882838391845068942120079348792251652808750409348965694161316616637442592320481335462205026360802001144999026373129826748885127096971701354139697912397752411555710589109768228082839941473964406994358437287664358688981601246266016648454849673119007713833491983738174182791711551941712750682314365130832375021136964506155214227676640942418918645878811722432220153019181227481758473101947906846432942015114116568724801962382551712851630884130655453121486124206502463201731833305463141141908892663699062599579764507573494229691119623067819720946610762631069057786280500475879830309542811251909170647513868683886458228235230554680476164096927867374275431210302190702998141370528125981696705374191700516568083661677212043565301985364877114087336185254268736272020224595922488421373070017018381862096135339390106887263678955911084716217220322706347140951261777529895887585945091942565521796451271105406638513803236008797842342054594107501411525498743590600785914018706020148745648434162814451173298811307585625277126492838533362336781733692094989614267838318087104994076199544297630231877867951248831411790373179499646470257507208965456576806787119966442943064275752996470840092570276211586676184459675682545798839808245800935809596552504177811111870708526492368925362079409047221062350933104083782560968761398419178662203736252939706716398807819583253536778798652402997712519601333625584045047537164297544578597310832502414983991904327543451818246703968940698166780835020357133256527445951270118522598661026875434965553067038315837680520235714685402967055918944134007991543024871536315580216203689693823147580369093847976948130669446908497039221800419276337948716773738698268710458622016292356693211240767578956892915817423681535194447325927710999291714079482354823580491838561158295246379765597749304522056365968095642988664632034708607094314849720044530674077460942943501943407136115698446868321512676471839102705615585385901096102891194118383926765349926892256031351339225540023708809134892348430983642612248850730983000111358355299117325808180196099271337038663352513413977503082711697440952372705798273152478598767244891539631880660890793339987375402477754109768756272640383461731100299740163178806744374891961576771629350008184437110324427989924542846636765523438454927296281425352030286310095758949381063540765770940452793212411406456171781649981266089358123277945768630456570034898060925008923307602892879069649810722796164718036214741156544259894018620042190964577724896546892685899612530416890054478652802393940582735180098272637922723720704168504663551219964168346011315604785607166898176087063375245943609682820029474688960702395222344643118173916478677155378120330918253761660156468879919152440992971506247286276623990090244224072427654393104423055997613535383639216679829630180363763517347932224396191186007447419122105693492266104278556634314034392256946087876142460043080616670155228283747849735592682448534655754211927894821687162749081296105847626815966909938621905201475645676008740680675597580081015455263803029678036927203109893446024731218645979153438307708231865959817344467082227747590632081360753185309779271633641405731496548563167347237311508406546155374775724001702766054450751978228146029916650045259188590780551802766768443799706952818404530331934008805226104596471750676793759253541927909025870538579397195604171079595672685005834446448894961592267115990091805958936223222809579702838970796592138045271011512683750811703106634766843549195342744272068174406496144320792837524530264745550647263122912060025243129331227527814541962630756767791412441638287022699479616247110412219388156560595199456858138986122270344473932235245533095207804710088108027462249102638674201164893919746178399093915697866231542443773881738518113719763209121729233637268905913557436712946008836237758556148465050790460690266438906820479857278260569775477507109136393821809075589909198208733859376359826426286578189913030413811878353603038607244825130707520499178755280880209162682850458135509350975859937046014163748480197367070405226259555373080255436978329681241367802567924587277483122597598437247192832298624779735526184342566663155461868035168519774821746218402658434939199507066790001134848947287321297495181358942535117353894401492456591666903103415054487844453466254069647965523289956470380346967461647106145538669351359757501587095636920709016911453243408759308309910691609015877189861043427509617472414653421744670467145283307395613810819105300838464478819549796611029004398076349887666080926218656465481204939142902343328227046026124354476702484165124428218548500241382467935116383927942856734518841372949515061905090245082979734331737166930061745691131455044778573482208513769504749551313560900125469669508133663116814156342839889204417879032053273174399149766109443349469433605087270475303979403423944782936336636678973093628576530988823412485478980718332205331132591621153405014144144438855042470162530531591532573811043783520770257183481828908229549251249228628312143579713806994039350018402476508143984058713184372998294233259087742069132040803809305073721867677470244534980321836153068337870746065683019071942173454594887213065640315568668615803566266870913665742581892413736048775410852309062623689828293132615889814410242518910992273025032122220831217491588695801228290804398679235915544858609222282386818794127551167922664874986345855820568650381153289989714044132287334797204501454751223325974906437200623411696478679240218219209480368070334433934892896872382838002021843864119836698514045014183443199890393956990999344907702901957809224999895295515951154847388644925640141116205232937970645508439880532698292969718913319059089072528441671125853841050581453879731951726830653635922076958489058543839498825680748423805691433709913477500062305691980632566386961381925097691072670386242302303935936948650812937712623500206954319798099935451034466606652013656954530706694175385128892039140229785896378350492718865203624939916177201269710240783014294534365224252329200877632759288947273428403904469557904414965033125716289148250408185072877678367073604089653136380155070692539397343555300030792320347528852019937421267885044969682249673898674888239325946775948250360089006670696286221110086608735481472028714084825586092456944883137828923010518910431492247520997371563213162033759356334948542837348943698256932776690058939317641232636590690728469168915419251770504515608463857269131379634655332571099279869689588300160022601747149612428697617635052328620111860871793930833340636151674884143759857332833851011444398612809655846439844856089310017436660572124910683564593853294378196355412356024747983311072148161328646558381324719660013520170335846266039509723029084359717845859034601035415792146929195746332916438317865580758523622909721227576459876910934834167871402259688298552577188125610545741661513660592724020284888828184871020690521644151685039379724392824479791758193740245996278132444482666133180737163368209965822021305578536426875940963015592847717921909637338041497305202759832256295955747945265428223995999807177424184877291454775215638438527067932776734464850321511567710744687140895392375804009149051745741244614384615565021951041526859312582134880331493955687082616115770069694958259693927531247158082789216802788435740011249017821672028827572191391263368032892758764416841952451676722906930823962316218702788858791797600785485018415273795839226414000040016646899709948343994096602892512182149856872199023498725326878942812558937211596508046164364101716807457615657295866579275136204873950706116555306966505425835827542326012625830337361091656420453091544383730348900216916416404889780682351851911832837788548572602419411865567272774243727923665786412215035039994929735293950341234106978312298311045026773855287590163727791961179711742304154058373302103746626147580133270466991684285025432484916434065423635065569999798274615297593735578732668875247146284903615022891314897331655288322681893984872373110556859777673420168976813499600711058868749611026497861509050727695683755474091089797992746568224874070802255733757768982736344093447809963231482489874788058253886093005737737234934042283408203321559583286392844757050646862460523257026864943870152656085634522912441475556362676455912470925963602478314545670658336436987870345373535763168713600898140897907172666925300469705948509839189116046498872529018235250745445993577900956964734394884542563918492517516614935020154500635200858132765166072443884067891420538743829020980406406423262924409021458545503232633071708900769229386434268977239372453452105048361276848480841608818705958670248559586758557265694454873835098071500552044528180339132275832042393279078649520195548818150751042812105506260903664111326238312141529319058043465834797276011087544338229285382563402862692957464323112807677220205641075074638034931585681209961825937232559163138043609026914137043973965861795399316333957469370651421752955022090217836850985781022833121019948093747405439132751739080595019095756763236152644886409221121332133773503870909796924848143965501563924684998216392417014967558142633186391391471529961056935814058056154666419126684983134196331017787077879724918238815600330353059680649109183284449121004997890707596199649042699228736462778589314237502673538253616985203540849705299503275896649845868854504546315515608348948712294488590732185894216925274306658954261700924138981291765109389914400766556874440521157904423874977597533585971750066716764001632876415923398728580000534639256378866228326458334372355657763911826574964385310685604289854738939788183836162444251620541733817472896177815861840584686445256262469935150536063422080882979933792621469434755553709625716445094030578815924616063450023288405513156191972264017669480624627301221364927050040265293437232898580338216501021777549680751979437735183154184652026477267558194254131093945620194918039773987446173547842950303958226951599536501967651798737608218222010040788670720113302381546806497588174649017773687531023447760140190486627714559209748857710655683092863888732887096400291791997556372573479779216858165652566714508709281980124377207028951188288839583974155182072602902491421146779220482913059764277949788968998509705618899475840716265303674755834805563594432735466220433796876469673034432010252072139916499879231510618974556038918115427439037204749930892239970197407724638035360408630888957104258844283263335678234649954951549222307705049808972446321575454688243429525557596423137818304290100661685721198482672879940193850900634944326526837327945485864291396284483016550607641930585228973443804358623683412021767481325101213899932808692627286573124005081405125799943662318638624497051427624317783654355826487741015655447679540775973589331614854225081596911405638686670951521313501657290132352842561972682682476567303082787677502851562239341011595847494291617164650656328031976258068632295962518169588501938845433482960724050996114233716827746975317164517224493161964802331989902320984845877051978449284837029996011722154849023842562875523845071140037521428632606900048613611250221567694254520784115012574372090413472521911949689977898376817207443460425063840391773331790806038934166479729199824929565929478039757532801327185846149152463308874749891941548880868329767478480077519688352090304154948413998070118283682127904539500312992195992445115913682363661263698482875197502362421861008854017699974319867036429603681805825581048045659507528922542608976593504395380194145955605896695642165110333267409682210372009464514929966616477454643338861396301659475387790305000771676613076388056459348401108307331399276309499004122743743008897281696285288886436106637220149546392372811814149373242402701245493218337786269656504166764712921166362234428386814455279531117199483256329141091823338909675768196058557528439104711759159240815298474031856722331097232715978673365162003938180177788347016699642903680740140934698853909243967196087944962835537907665136108739863945917207004303568810613962383927759681863431742216330109371170735127428417757298449528399451001402646005443967627557379845740166650304899023256471850674797007567617296538031527918168822566508572835563679049862152665863696018221305741834113257336707887720298439155704461135332676678013980298997156166172418741482089545831707709467899314909272608119004854295076035916515745563374911306419488502554360525553255350200874767475006759590076689746596145499527970036419362155346666765259184783368766939793135821591468299952777014906760636606255575489740869481100924749484859221118711663901569509457057869813923248384795998245480471351470297558712441461482382837505388360287763706333925376308834860892051902355125783043995661005919802359049507368067694946241280322525591866051330526233948472472373661085613044555930283876047439097778833025395669173258614602216821704945854954768484454056281122442415449043885507218491195901427700518129525327098828735358991033445210226965585329893147266999696960599622199092876875354310834533209782888578164707502091125215068529465789146579054512080041728927312676794500422027585392370583230685586624595976199244266694930036948596560825548117484599850621426025277755700640939534946941024102330800460489803865400760196781510944924785562818665038605000385855763208706430557011246829781697055772184154622059413783709613798951131272046853682184642703291735771855422044070579770437247229520282364561040980043955911375952652221820051597096943679708445885880527434640221768855663788867860018170042989072103498432990231392710307162512005567436215480312188707028572613317931548507293650116651687276086734129558066628210666068264360841737452100522258422215720866607108212011624058666927430500938053414111838928502212111245880829414424893180511655389151722299814338257306951017986548508145477776641648543646446713034041799282396678902687442922820462972154578668159981333092698166609550059430155239761362753453556678796734306079891889260626914714161187746279477162230634310903226951240441446328859851803018004775308214221183269636375818615179172630750809653818416440016272364448161433155241046934337848525696947657681829524106533924820359050613486806210213317827403195749737384256955818722537453769908612635424992969074769969428108504892697740517425859699312055122993135491229897042548624621918367907158298033389155996443703522441342417885318269842426687801267147065974796722518924992488215098090210758304463630943126191878169711538503913977290867415451355345765317339976379979938156483827354833696311756206889699519985247033422986827711840563238203386054302210992869088580405816123214070766390125562984887264596762100392970084689716996457370825264481101597438984000517240467881349377174899600221129713159328249675141221371099644609051618730547342181146929803591774699504905255364069170703385232962578963676926200180167489857668646844887193745137359080703340085004195417239871985188120516930327056123581160068351121372026410970265713059822368451344179509557185205491344040531232929920402381165508145110274403739988418203052724572443243338494344707755869475420852040001730816585183078443162539926563978738431531910404791357267502199343871296462698025814695055362454035305679148768020216091793786936999969265001984426081213668718252752223189913255223865526257659123741139656045427418331610621425853899494099112808713591028876521335351986956816053169842271850082802570523355514714754956295020748036292215604019431499717671243137792455351170718630158892493697461273363274069976685069120304004756860808684155507383578615834440825158731357368375103171342622383660061398004994390888663818178573854498436235369879524533398313094689438491969290901484984293826248418684082312667269852727128274788256574147304392009059670997693155427067207410112334930901573153891172689891573515456287399643607721086870023138173528286979500693159659264840541759904933432824416527153844929067420146695169207997075462119994950483672939798679925278921809968769875604941733341931188391832379517375169238333463782703915798136692586563711406764130898066802653373137684946734989799190355719588847094687205371613849981171496023741893965499660078214328942177942941319377575218263433940418760421577617271751234787187564977781228456162021190161227878678333977266603058581529707225081561416976921112287467707034694177800103845530485800919164529873386134024107489350930402748380214527590136128996015603823609144173017318394512482827297468403034099137489931898644372560950671112381299321432584520765822904917909011546533168955449790120469577581775550703957563336158732941756391642119204034325509063392538025496532441072835704283130115050786869524463570320653288751684332768164678059105696478774695171433613697545621816508789843204069369289725611205491777655491646882765799721846960265043049829705613022252160199371949141485715826733980602134243174982431721585840980246052990632257704282471645475976991578939665911107243407862645864977905851113959444707265897443987823653947975210552632403984803788978561230124634246086401578422720017284658472848312802152352845868880041086548863631761980470221402147308618168720675084612009912002743455028937334757633855270900872816585974805870643927604432287720355783369819047308893512305181216401946083691294903461829528551186832620980572863771095745999506278073810779401791822921345428862831549053615657257369582713036034416196005233240629131188752035035443182811279521755076104737089245306738944013249030546819358281223537495238520780608453345162510304440230901114881933834748046568743976053752379224549777472773054748161229551156237358693106030939507996285664065015572413165166986867948481491311375431964379518775546896303687935372803380450618320035828328302016068258753967607448536275019496629015963669917953686453417204407232059599508742020201217552276988786529599941122941989835910957589301953827584520623246006066115604605508254119245522218727752260426342632766869194463855718070600988296095181078996554468418627654335782607209377618956293016827749428974770447001278708652623226038371832004157586122612669296097574734869222867490401480390264759595341515431818203665617326104972384905942121743836431680906071100869310193070118382003105559930961169768153655198335236272188112473341501509106302695455253773146819903015592752888591243017909365861020874145822970038177047623735646800729477126955987498891305742481831175872016935861594287824185945093490482018365808175084375636795662902426250120967885439509319987872334855907287542245102588474827030268639008222124048822928765563967979687971995646488638454429569169632970246997987173592891243681693133206082872645087894973202404090891328291249162521899156951984153161159201245548316522945250054228450075259708988751405308304408285733235424542515288448878560228347853901264155901083500178612800572181511419129804128115940087713294504220581879220483098864067663748307661451456780043217544360081648224635440982240267041244301451698133967500935885474910167471744859507830105346260562318867271205028472569995186322861394421802871444137694211258415796199173637034550892360964998976512579686055528695629048825647833880345738322020220669603862738925270240567940847461252251827412189741822895617841992838280842337636940288104712129150894051367044140042014471287814363796253226791741030125533787227188255016014825009516891197597990069844606900875632423980339021635510804475700563713136713110706405794167329389699784451035983355569172723897000751701050173535097152775340917870143513147387098760465039301026122962818277195262614080674301143591399568753890372223122213715376667648326472359327594053781677911691904083842031966880397957776190273594310012262579218696785456548841788909056821140413746656034677709070859360814696845797075425169406191181850135289887721628088716973752933576810472690311593840472524849959232913394237958604499647876282102776256051748206826508264761598995494270040765583332299437019374525267787696789342388319649331046885821405668491053910183804572217074486401898324093930833556419841199925614252266340200793372180683816466327824066181357975662797783723904012497513867241970497774433265821527744172342042601148385857699467514895857913693685381066111548828781402686381590911811816683611349779843225601346137554549936932566000488518486330748646503494344882825868270866876727190760970418116998125237935805759831333769093086172419476575376999380654335024721808979068706079541421965933593187698025406581470365829938529498183824550751993593412296980255744110992302393083672205016312993347351411881775553726213791247364157411173388988574512741237431478253947247389652550114513560739565138368821759587029094594732748358211968685412575967686408840398176862877275030689339614749549263216343872768429991511261735431706594806289538878137659889388460373899546047140709067292497692309916546941959457411261176434130255082081950172505492141340614131303277950163885796783166168956049749495810638940082523003283561701722544003134298004648533180527381629297917855414870072501416282953611602675365228312883028913862247292559967174628221375758101894102663191043510628457922789085817797084603816622961023675824629248888973781135435153293192383038679485230767887648721255871521539348150289394630389260344535628313907662155958394552212371237517388465953724268849584218253928225374905600288958503077199694236152508765261479180557476490906491443444897332210418500504849275406605223525708900259772212268106210212114316307589297383000165394100965736520866781594910993782436154965812886504715940151949096789075787635707236721438951087395059047946146666481786950017481059207168099355612567283506968766665639896078929141582127680621260427463783686196937533879314010368350985504103395460084831597747993415410605256189236666139502486713314760695092817718147421039130193337397565596366835346461283716128956738940326326307609058946888024149663804020002180048260657774150700655732755990081720130309682436604397426858631063668603956738298605628179157871309789427977113776054441953011666059617723285834037907784105441136030003597730145044870842660422411788274535298400319454806527403645282956821057268569747394391012360507980956928866481656342184849354045618929374923482565245450026469818076572852936643711290596286929038664988185390867120173782307909505805427806083214000895377320190612182823195354270170503185694983707042526630418751011068992285136158169132599292627038648975621578037966371756530408351268754895142922974323205926314358966161405277584421044035804256618311429372943717803839542504913058582414063639158878134524724367174016934840696500739719294920672765533250855000506127035935948782272580099483554664997196040100786353139330279902043318254315268476526294929238899381178682702244696042342293856056936702801362431879103691261141557477770259131962891742990705984117018796303324031206604767545933346732580253824298422107567283588288503191660569425375086069454546057969586323274741748212080260309568339603250358086468186068332843671385390232670545433177976759004115087377107337955886175219125255781077727252493825451415055603440939935312079255329350912807237112762296569521638624383442579060454837288453193834113189208358358057977118848969283816744862116188386783936991034222354059975780520011771721847987876685112679958122770422557473701955118269721748791712482889754363664897986633612872437524781212530721225033239074822958572148887457064888894428947235992172560517368783556619840993413029869467555600946722145355635104520213598781536251974231933370540669949078115984055927608163495617255846826698533760089302800986673083680758737034557022498398196329490853765110119315961399879964971739079241256754185399791098268362884830887300422092918125024905191372046557121024600815267800574507340882929430340597728389674185290199769127109299925787171513990679467970932072621539527351144828135908135792211665942286209376938634530412697500819394873876801146038710188399173635022268935672557007351392614078410183214792905918643893791410283586436052562433857232439073250198682048597574386239329860718417925152344538613350539026688269194024114923772186480359407282217704065165646826428169463754889807853571455432960146699139606842003553046753500565854854531408589824905361081642135486853001272349975190349767934163385421731960393016494152270789097482318278821782276416124549243866226233022519240811537700091913377131090389369164818024776180571708905309377696005779319801904516085623184224388514366503041980894975978766062366135372314669943611960601442103353329271773062508337210987936506075682431861503313880459266123129911908230079341743881854317956184153789732033948999016586032785720235455226453944377677923347914885216714055654167422750605912861266187581921030791685173251646234315655779476863392219126149669295370378122997385250447297831376601283084878040422599761208971666872695287225504911614414791009412297590303659455580364875847528075026559112665398851989353602853629516702098973957335531586456897431902525966643241390053727617531209469888662566548238249024123191674310134957456293452873943025200231447924836955378662050404946456617761166374933373028771677388794063542040973618664141950368871949456366950042978332036597151160589695574776505701299811119702120529157359868262297901595199287625399420957996301287822567163684499039877972131911649080806114958484059782997790212292661733717308487917314410786637513376537545725883834660688398019002561904989038817144447922160783178176935764895529666553852481403352056357175528515458803080135476588757455524259399698615478966611218350250855821417720721486737393052117137730667701992302575813822268434459666067153003289025041430553997020168617202243670908134783944726164616893484333279182821828020080269318866593264391528131213662129005480209157266468160934448029020018771590222430370080657853545318110799416227590361552573037989551484581609812503547265838727859625962638256044820019312641209387660988531493665254814278952549832905464165799769343568480628195228278584491844774826633537406409280870086129479651377205597267269044871867573145237230552650416560528708271388140531414298321627784298364044627570729126475735024389683022903938787225252763815266496439340242229925614110226297265201138106250205628690320956353159787340605075843977104712083737282591208271912778329408973653704128200898057305056599440186466833223544444916557203288404504749140546160448744390741824247059264378113220192510397233749083053894323774752049465239402982900457443303262966204729678404767952075174868519003820980297866170448761399755650875658667632952955968580643178169707526712646481663783167622205489081288945445834727707399196955747168833109726116910105440686966760874894495797211517453790324506041780650801035414887065744992060276726930584335115651079303113788569584935529846170449598081488335801623454752391860026305929796823789820134039833842126311176818313508835228758840551764298996254885631848966903720977606777517478587057525118695455932946289744947603834536366367902580022840490890092753497188620822491049747701419281902684023354427201881191208273272293006253744495869761259971629151513471716499545718718667766668639343368639138869051309491486483211713421629742108335116893754003624387405887047819365833639715186155826716449240606856487331528697466925322893181160054387494348046941377143281647338476747532382920618073821654156829841974209768586749592471783892521967096821262272787910508142769742443437421343917302917310973815606350151744067425661185921287317972880075510443644062648838839632455237420367205911090113241900749711234789299994989751634668921293599930707521224787576894970237281407077000409744503171681216602084427649037575618794356354770392680822300850821217603600624456497583242133861815799664281892737585052562992484284885685526621210653833402134997791692562861791415030648407379601926234600928425962779698245387580600927889114563070279243414343464027901973943974805038798911430673195695300893786731613926940890937383728301376486964616617293557098817781617642434568257470970922191144514062388121906537974810808898280371654409080971198143239696478679401067894544576857190807798494378611963688078945097681435984639405021106998695621175161987232699440609670154156846276293548699430213258572388708218535974941265794793855191978921264748243476574745354788191763740987129344937260785595316373926733852861987401599987996728728252661887052169424566994897215669845641611000257770661755575673629014439610758890655069652168194895122190230524116006155691563862539308426963116018298649443544056252485385366390793023652891041354075660438852007507813237714494916752108814086402221443430052938785053151580537534482674383354945883610938333954627443449927371222685811390314598900796699021837932165433529505273109408849661409964673679094985226306769005793891436784368656174945873386652305522902501392879125488456345807029187312550524662959856414192533254292324163095478652968170024246407922606671685589027432907316468599092088610331166789754147731133713099145249718007377633882647108098842780620859072158476796072198298524041651320762260421061452875052511652076954695497030886178567020394790387313915259541920944921375352664789990380917620548037486083786466704175946905483553197043403659204603872113358339860845258772047175454113124482228047012307275480286661580352640066157724567286523215781612501681170405946742009098583462030227250704138462497805780549308144656989848653426480891625745023788496992307431068816959771248535875286183121697369962088311885897313601504147976801971924517357319707374464612460622849543358356303979929680870033283784251998828414008734943228004472614903262577907406632067952324751719360376897013990693768711845938383577464627153968711120233479219363525987458817456346678292837031343043244723779776411353871249780363122925641294857761166843795952686977346236497461997020931342005882161945510021114371207230292077161627162135001684754463365192114634781364829278896239590655403732955587869431538555543496798456688825397525540820942952250840981289141208170197141594181957857489566421267637035621477582076791806299592531090591968554038955369817421786819267980021114023314800231737680825498018269435939155124117274669327735393916431745921173261581536144485457322157419648239451010549050654377653579621708617166627167662902800272228443313533703446563219629118382644072763500743467905587133064654840633049517225547975218806654857525452988109425348810713105215481760682015556214983909899602613619464721309469521368433409388165957235957413155381826424680980905766875034893452943324094613220666827737980828174892510647056586147806759768712326878408401588134358697766884373222488083400068074090147392031328705188276632368610516239754584999589911962547874154596111258378066497681352460615339571647940142762059945319039610917706961068109532618004200050654979801518834088086814511403228705230666069263367183652300740527335100178403744835238760508763847403788576126092745851750774915352350849991643739222068891016322232328570042148894053052921856589341263029672889767226526442341874952926097764172529911693244494599650953448074149943451458963047143810221826731737695859371611272268182232365881767974159443798360752623801952295775980556370542842145424813542312607332105166333832048698796434652870478008267002289954327229507243647518809624840494647543389505329489429043704024077114999025598624463174391288948473730121077860996594571685452866914552978329323454754116684487446829901643484611874418160935792465639225784666463950895908834408096145555503150454930102324172970734532557445637037147124730977693800236374938389523757714622108268666142512737311446535663753928723190922873305499360824467796976136282129515125683032953713717622931840192603176677181021131627666507153552445651953196857513471433924737745786106160075649993017769731512675489053126138675634477922210280517713694763137651797330526821784886510121634353441800736235586720890337338228646194159252806523520826170973391755960332548552826610448044836239003286258685181196387252849260188348440605509017495661159222002643500610336926275060014237606232451805865770896477333228157890783354017421033328277401817637582106109294598719393783313842561389080296169890863353898263227531992368564786614087307046587505062570291719842730002709787532625022544116351150989387744250902784927255931554487937451793283649451782375771991156097050595578480713376928899138964180739111967292602148070399015707064404704457796279338119320309069356484104131767737372307434857025297154944118639967749446934171845769386089461948777022406514012510631301395763320645094496105648806341974812280182893810644127588107317443204982088936923820381560834589280767963017990519308349299121405262641517942389129648388110590300747972421908794821640911854316344164996233958133509083553230198686715581011293033335400440477392852901039399557009762241124460500736940064520808141689830607670356813964306809633600273434499501667281348844326627224982405225465460114440916651091909717125323051573300670779644412023310252880111242793175454713263289744553206636774750198103975722755037773061794953227228273484217663884422952859546451424837734527850298963836839895035083896989049913942246002098221515789629465455779519598780243429453451735741800633436066091574645241426599378911906443775434629278049614518592385659679940521456720871961077827926124840219156183098372063097957296579885027016993738975901030395955384389206963039942943290101233845224293143138741674909232241119633883286025321468886437558875567440892620349933757680078026171105634659116487761598284756738235515921444385344318448587240038185630907358995655291934496345820845662048220105820489640124233329365593278336011824090716705656887325855732202513652538399305707984761867609717170678014391135264777686494079948653047630009314925271409095033275554324502801289693125163620766304507473523240657719249136233738033217740992805534229388070852060329431331677488828514060446408258040938616598504917157232485815627049293426822687791395485853122643507254437314558880389198895196047936630924540673621814287686866163475445061033884123187463462089281033283839270346233668357917427690290659525229455122826713833411046248223814642312735777093140381811516110280110350539937297560402726137380877118584478752931350447188580121142823018981869182762851681149454817893312192451903953469224629194902143230287648074160771862745046247520678461287577771055181894881994740124994202365933317849766332517925333522079892559637474458757256260671414951224587559946826448759251490932961478353253233120958332248110141482589125091380810801845917897870267681449256483687283931702080680373315223155094646285494308579487514712690906622873913064330442687546727794060519884827108774218024920326394225208569797086332255481940255512920739849398948771307090460696376389784068368398010852999401411492806148493988025683994216355055749730841575874746350903947567838819918379088436350307028561287825867354983897051948829716216054720235690123449289518370791052039335633787101876157310665475113269989889647804667386789960678453129730885319824980594937976873273897054124285687699038690786163934989329684128191801309662369482378816337799355406285693776638978796075142339066416200047432415840699560033981702482418390194357387352988880885794431473595198790969555007629317010262150790833218702549705899768675882431890731934308966502081588909711089600849388163111421601053758178415336963288596516186230420799844993690098657583829332627385331923237811561705039051469412188117125319355205919411448789504192626718769148749890113734069412714877929206398725364410216419097253509354878568355620633323109433937077913766855718522540632269084048407891838652939762969511215278874532566959913652125295349395689364703279081101859810921799227124863016337595272836580049088166051875522262986504326353808495700718034801955678482392570237486401976432704863182298257448352881112602127034867697571430396071859771389226016530468735045305817652967281900076953438604386587910445614054213374095937035259727064262119387395291226734187325915880013495801874503159114143056323864167053423766538945149560846624674099320709198840625970390895421312662981176367179898793112328889866754967214833784318422017253741892614577535640838934348839872630898030365375847846505325658741383612244749190275051507150824865915856045447975973612901301121054553745980250567565448144880277049412922144028181308742466967811656898087179610548181132205774237485950269955558650994709537071658022041362271153374777748563898654869488801860209783794660610996141156831401235357444601898337333672061756092939396339287925556687824460234785162617837834449964052977936288711965316373051377369320588667141512554256232946305005494029658643393324391236453700028844073109747029461085567992737089743601344693272392932840266518655326458825578670876324113507932649149364556764180025012493764722859469812475338869935329541267178952224658723151854538507153788949502008417269888055301257900560763669641003337188619229789818592717346542911885360369588799278161787533917262771823528821562558512554271447414658038316288825082216139377558290821941713301701236387716677138770717875826449635606348514442078464712642746958448087251856995687593945666405660102482563378953974897801400268650657237805237255210327940254260750970883339142074775403332002605790436859105205344005050104280160828020995822468838556185923906054576985550205068128692268642621821325548539321219751850886644280791303504244824682143691749050875311744306445069549677410698799422957185215202519089812764376092783986231522869745224084525278253412397006025710323402264772559314135732617103003737749631940325195631614776550979618382305309005648722974986990642369401894266118740582935492443098217370557729542421445051491960786484465711128322227837107946547750938954024343616987712838572482392309594041057168485261774490545264930258478213808387942926991184345148900550624622967118595390050137728472936883075121548819251836568808350698308857358609049756329733896676488741041042691299897566953532251782289097552577263876640205669790710535192715680167466798599700253355410014031723191240806318808650264220754662282785076400010995935203561844773979112399687365395949086955136629636732456992417674415899541799444748276078225804130030324284019056402905042516654230759446107327222041855221487686363796089551721272484223121463263835320657213769883560857943953199334004279651099584273492739997357552065277467486934950024685591535612860496890367551194761877836735566424860944527348778084046376313047202720267035447553568309889589909823433244502104939796879159196441632551506824114099047015193921055021643903875158639512335605446568817747387692983300877664070645599725816677926338042058960875504914625027781290157455264667663380585993294150003359735851721534521975767227951331703775662790041327122080093143512169831669093898352740795860748265234229572230613405201298619490331854603109372966025987041362309991382788900510874660857159768791910688958765387305151136692330891380721212793279399272848356532324547298301284411469709276306207139486583423384324350305591104240445270500744360185603469448853430516957216731139655276552650866422794333089511945769195131316019906323659080752527579254938608098799919791688182036516339613604027658825373100901173788820117937346111099932269141010046153911200655386608146926565129013838763513106861924815812096542871611182531983955806989620184378424676434925254621528501454409219804729107429416073349509734721080600687237257049860014847643765333329266344736382741233840589953641305774258422794481650994228222717841995043558266586013273749355673635878338288253359042942552069700470874549458113882570031500809053058838495379185332712366117086211020964843744108606378025195807972712584226917235341795503052017833597122760269590445032770152554430788126735468842916503296105318219725807843171582521957306512294742818593995130252869303751109335339362174689188318187842550632751139358610832001544815101606696606937600177078637328706967808648849971226081006014682969300527290651475973135502781405241191068132476557712737171689340098742907483005072508747055736060996130178523163436773022797742179282670905656726938512226457377839437745753211973895627555565647575769979336156889027466280805347151480940013754511446585493765640601348529636509823454091427945370174945764430372014164359083072986870226173733036843240553525548712552322279950661109045408518904626006679558051386115824969806936113675565621491813087460203620654770550974184480017421902404868484350448749020319219928507818663047919365341210470707851482647378885530579040533228067584425550500891345420594743131303855571252470380860217052839975898455865458477329496834556777183774219136917857342912374585874562978677794808598932334054437577671265963040991531154988464397178507391374521144776245641004712715471632668737324149809848375753046777718121075546993346732265935367872053944866086678186291045599731238419557561201643783553903207729575448627154407414986686066156638988850735125998070688115936388551903780944021785605280001282558236621594098271368599806854336945407456533634424894440600519848124239947238356723825091326921675644938879821537246555325720746578131613814978536339935681355634226985892045925594733885973555124187716640795319853577299594354415668654563444652572131060314487605093737910497085396337827049044712063218332170878778380024048455091992740007493932887192494247135289401791382150032969063660214572334716013420508685421377664888597424590541680320227350558789327209237566014760715954219214923007684997052466516346204869471468490602765942853708514202313605226159331741261723593483882468203515194420812436260130314258602275920061221937495869848178177488440122727090450522977871149225815790227215795246082704251260342130478946683994754736649653205807319546660318625067762363588125337655840675689235901479516175990500591522800074183574639157907295668210577342399617384349393443495006350999340871295499985326065776028228902154821479284773232378019429195894474635981146329172824157133088144616339817415820024679557948753456336474899986233718658332564017867063196455666169138265450638488342664436339195292120584628063379077485142432720597617421580473320214320203412222320825892493403119642201989305118167474424232366241979520507390264168389384315465444476513640298917667237807001354653418984291878987888933075515535755853058932951531300971777732007612305053887712046299867564429856530547421453701504398720335063606529959181720742442641143674318737076547111920423693258581605353415790961600689120105289890508755684087352656663411134094724135121412751001189083461632956186429821172831200178185777109883448811665860481614007174388493878214489849282044767286825253034938002754926630698013141108134507151432188117206660177420095974213908097056777951772440381073717840158949461422066363134608935354487316767049947968805733826398736991524008623379710934621329709703563451499167885822142412557753250897079019854662420427860012593512965479621928863189266267466149602181104281198084713435476843497895413556065656546425417809829418051626327437612712279100908875536646095525440804136690994092825845953908483093321263829938663410865351514774157714736464271655425567647145776191118980145127688363236925865180061092892101059698729500842091066461033353902488074202251122529428702943445953522557495708245073055261490066821971047857479478245265759199447014939249544891663119471960601513174020147321284111290952903724624565184292220914431641442688426932265232856817899175539527291183126627891519542195003125303241060686797638114684201322697844490210917591095730683501399528580924346509613759196556974547249452710775470730644516944027134875211560299335704965695805945571719765372859351366904878230115161647232885689920914201683471354088746925616704932309262096633661734029542504689939688978972358941358192330170135278835496221372395952024018880128966125174917778375330145739313106163410881218283422632161642763606770916261392888551427554141422170484041427168804853329358540531685770760503656548453892213110420589420129443495531775050285874584658360931222183734878757189868676250140139646545079162743148881938589497227062484898471778490099046518289548249381362893521800209839717849223519321668955061868160523689027811015419898182747244515948601873575447391775186895188693966667590551583997195752286232336102990152513495943312154665786442910719472169054837804726395582904059143767105333270039742008797588624669891206822986820745817284872361665755003762002262877896270021843355433112179272953538362986214560463060111963373306124463280111832044313410586065953543610110162065363054657497727499987548737040270611098765987603476072533262445678609742365729416708228930975305354839682528048026670485611698223550993264052743097366261973126247538264602996134771449089563013381874511880832909174161640023603799854608530055156356340861579801422618944387502346487105654056388041400869886620581338108059688713135390222095238950263666720814892160523575710135425243626176348137021110671018979470023359742074966290472587491724247943224750793147806244986940734375913813158532038308295114345514399965630899657711773303540149127075417047542662570153196181600351031073128852226959145808842941960613079486849015006502945867074044891655550392191758454649372546132988008703574882623384932276910177593269715977925375160834468416999770712860564475147472208765606241051531392566798824816112301748815572371910037914803488383164242812029935824802974846210231903703614993950587206071471176691796506291890165040169616652178046966008516218435406803905710361064851943611102921985507679951534611306428357079861356078322532723362748761830042578593898389131491679651076205464138428967705241643681805726287729900114100496624095821202534580825553244650424749986723088929577952338815469574498403724857124897878252533559768412094608152149058779526370753124262022741054522605116848934458322434902914595911071066357742887673536831976155760224255599841986300319216620553414702197777333044825940375914385246669069556023004932964841185468542663402509647132662940699290491794164084686115559480943109712350201675835203406374131483365716658953658457689645675946148049001785633764680597252890213709326102869401805364652951260485823730270028173891586757727571609030369925293995611553950437551412412546603520435597639407276126601770026641039549524390328795474866488254453161182942222219640425988041993061137368069869752541778902630099753723249451683020672495542444159256943540815144312385129682331524012501019388769882341083375797677820500057977846322976210046320493469175853257004211738479508570786337055873748547556630299872731294553649336510806040017661680204217078976165671158369540997669961533114104387084472847168906517407677715769661728372486543273393150588293967370518263045331976346914633965206110206287144059911537038664842070942500339400681791504657687012530329755066469065359027440395821280846641857243022582138987301698943146359049643688509983634506659659118560649903458320793001520099737262728150828635143916461424352030454538698799920952818778561489614960221675141232463732451282504216806951533300446577449240809796489456492046894074902358293692620747566729230528392889806330598214877996602271261664244806743425761168120028257168559454764757822356427946092028394270236908756824953340157201561307406534491991777555220235624645773155427637184639819796181451994972508406714489466115657994845223881638071224561985116406595860459103286347642345459224622309186254421308834490724543295418850406993298299529689163223793508895670331215725809110737120660233587008100975078543349091320322976311374047660265507519793343316104536738488182007978704055529476685845360246495329257103993092813557872052655993670588958704184506105781177643536437757302344678023038557497615484041154202955346899462194930458496286444182384921673120600942703504601481931025642078435707994040473177511738847081522545150488280351582709494675414098712452300019148128091167978313860994423156641805737528258014280724387788955919139518530627227949284913264022010777389591976828100511966824312917666349021739384138228940519854225740701036881907516185076378158289503615717406437147487519466496257775282859797403863880714019375292472988441929319090015795693179759650625623786642598319955823574922953900212218159193410650797555780785914596159575520895702479380231159508308163730080876958375102358234420199203888429693949369318373215658515982182851090812925956343279035081712026722503690271715377871121185217661844044787586587199544596565271925289214291465229495681556452903908307643544789810873529310598036188517321460117711423534620429330338480245837118936424430036844772994137010021925769596991767577144583736147087089379228228268549221588210451957929577203249731121593082821955252993918940680043895706478891652722555196758596038044418930203553533948439922992489771557182412221263758844828324102343565121176192557071248646226675615185646519117761784892257765975043583184139486269137519773658398511674222330913360204978072272268661626529269907356798577587421520652352320245506367773296160380568014600368605244222176192876175548873914091832955761142427604098316131993488126174641871906844924444817278108385652193536388300256049018605686554370668403454476145749159458667325434935805306358572319318396918276381593660475968247865956995962658414370678713381621674269329646474168094985987515973594391601276523263687239588371376055670862535229920467787074461346666851184424297956367287447578941924844114733291847063256085382766860973910968886407795731357374995513399685988941837966594705160703570319807740908724802934647746771114929831390137024583629203019235835641569435963927790389275030261675644525307024187270477769846245182367257861090863275434130812814367903710017816070629358337269639908884198233974215777873462111299478352469044752444836877774605219833665011816519018736570257704972450194533788213698200188749169809440185477676058525049731191012786000564453395147072207987958494853259608825532697995996907496859971147775097002827394958842548751837757030755294607030754333253507870823007930710301396440277571122351939304642823882163279954851873150154748755532460353255123458094249517401196416048428971095600813947016603526908138792521269094298995765692977728626780943545283630973370007090504367437618857675647438496904510811625012151030847033140535926131371850705395632606078024582918217611200207518017221074893163499725420765135036109007690366172176637167653226043824490349572558976165591752459799627975811384257140896873241858215502065208319109352965447324090649745346043356330201605494274486844312702847145041713489167126265855019181842257820713221553902478616994305764809342172550967390071654911314063234520355172898034802554621081653289991086416276049781090468452190511315374480505121354182325459721437196913484407457493943836334032204195023444184900760443666190551103566609872002038587349536887884853006845454224733718177518665539880913287910637310500138241490493315199876424237328443264328025040176402291030832566508753610587391057681616397449361500885722340337467212871600977708260155049661889194821921122716123238882522606409313893528263811949248043742535787435730427449088246526333218976545467629330226429026376806272375730010821597514526486985693580748346260348359364083273831964623193023275005839143349945267190619441493813921262457745138811004783740562373116278135324504258171097740904716955641310563501021132469280441343267329615271389870571947970263417131374336224000759815113496526027993598015072074866112565394356300905219349482988155168054253984066674087649097292034365229782613064304543826211631504994639643695250282183318996593805745829208542555623650719741134227927891145220849589581650151547131755426666839139749033305298626471428591806714217196567934225321593031204120764546347393962501963750963163913486020686544467449653091762881026012382781580683245891930147666369777043667063303851794094225968035908302808076436161248573357128185974738818385769256441606928183072116256152353251780089333718034787622535084386267120298377745297998343479273659054352351322679190015786035283403698625299395702595459648822106736652285594431333913203646406932915047107041984750626491481824030211392606411273747981884486921835059312642541051902125681195124259484869902580669759880858984499694010893903556437525719774491353024212878852744249508703912983213197466676833924017215835776708900672412620586426789589858044477916339268903395746644489542989157988607291446981816154731012237999227929582472086614060143177999788156171980544482936493548078499338426909222863997470728461778530118976827116619749182107552831244675867863472872775438543422939160323320214301545990849604162067937030688989036565260391997457610631667200132795027674284591332028393673902715960583214683092547629064931108247835187760141565920268614001297688326300674172231586958991948276905321294910132052242412579207302937615877182822313727299796704174523390160481212811689217668694367718864237804773009261006523427762119405462840520523212477796325956166907454114456029094463362355031852161960970655822671958852993972146893302707950611667211849637863132992370886623699979874658294032754366834214243551314237311924850136079529421237513222446115358113729783573201682577002137584095851071689321465545867895084047108606954359491463110754036106419560272488601717831523792494903701407626868025306967977289299980478097472989417763991474859734404037610686626091486256942674891475285138463838617934525397374087281962419804308612413071829945458758099762043952663333798518150807764694288132924427929530454297326455017283691111076255679370284758130221229689441961076387581746211980238450397550558362656389318730431638103026320557006918612691703550429773516289480779672129852144232433711870539404194319333074996845675078307875010189064239860484710275679313436586373974385368101871332538830044396046212867334546959588893330513572679053474181668812001954704261229377265905127233647732257238255263529641198509899054688159321273564666158557591561278298777401676181258259666067407927711569569730692021792163584455494458538991085837317627952185639323861695079779842818304895004890004336007436213623167286952411024616784982887671789954748220917153373695762304984479275132309976509821152322366273111740189292304743611333999179498063709989365795982734083565485392097006060129318367523388949206511702189468863994847439882590622061885403801589845309957956868115431926173000796932463702038889656126424696767832354243059429984422719266679702418881552306268697959282111743587444643574636319762743483623377717052687322440989652407571216285840585815026916785655857184679619491004802813307249458298206343310907294060996337326161855784068500378607932563909447017946919777114395014137632549947276184714892581670680824426828122485962011452420379007969849961125675023414902467362288155176657988152386900368114526809349183355398088092072025954814259530231535647422627511828676928074297570052941073102774978174988142310021409891154056227386255698101724204090714941229671016195504436784624041119087747773695435749963239370897169712164402919828493195882567140733517001639970504551508514656981740851407793214005229212365815831776574466093586812780904870725208057597016558449873179382233002532764958323039467614419153560039150906687909114637944915233107768107879754046884754249877238931347973090628377118674765550398944975996678296208510932467578318853475129418479526663993841145024914187510095785586502510062435921859187425411771161395832172869928819935004966890681213909487901988994753907703178602657555720946039528109112717647230819571164754345253224330136763927723915865551574278269169059801620328526833046888169774226920547020909550396091924055720350916415216132687804807484948601315646216245774078426930955039084712766382375459855486716104058076754865288636971569670587790736132934126244148693004871274450233735199374143307346504703585843183013967710089321413131391582702225408380581006924850312031132629784971963409593925280051852617062447850149526045336810262423356401829676357065785224691573276198517739687328526600004721351889302639792287034067875636644663766916840362606925863484684979571669064440702737395196575873924785492910650012281597329239055256360867725138436064590120448830262406634146451472704147556857330560208894001795721901381971824408818641261349190369362513116012628502061858489620772137565776937449993440169081302909482090042605538957295758532108627095131505724160342291979961737564234133914481664852277743276435701459097013344600143830366085157006697971079372103427554498587264258320682615291158560158025779999633020746485126050663928208720961232455782631184769353975260377991987388661989016501523911358153675045096332991113961765349109278496235681816863584312661792608770414300670518160800746259672053885665931646795801668096561314951438815023358026527389930987164272205970141070350807036489543393261382158271116071349201239418367626701303367766880828717166598159340859520774332584554187185596242150644567843594075180359981226087096824880622188229576362957589346970545945668307786914351228556728317626684168381191515911136095891647524468508718333318296447536896566088802979118480638083753087714494323493944003481310446866466977726817394705485166994378014369231090108382569066137201699093706397767950422754619203892913263914492906392088895447903198863954046748897219680596057671502031168472467489710983878070067906999497114874817049417712318906185024984546189199428667084235239392630948413434098245461569391365132829567931940769723925174068171410908354704675758092746031996717263839130682518381768601471867104512766443662114286958089682753399280538897686092564464202656591981088491428958805744610775194592204172014244092891927104783851895073696831951713876680989527535612670543265963798577323355121099357904752174542270981445555242682549308982523182842367542543292542261126497110635571110505594961712936915622851598542369663897928462247753177915004798076491021566953113412763597915599749625691356892223390709625139482139846150290279720195992362112089399369692745822750614887265752117580625739472772197814153090294298226777908895055358584713518283614528403936954298248368651011205457332533681822436318273517614501430540077482177373030862541423592592328867087049193252713971877573188357571484437525989249112128094051742448928259790801191741694623830633878083820427634859138812575770157761909718394212163855631174450816283963937591871438632498193065579845292244740738861160406495938727274346615459457359384507192933272398289422930895682157114591591596462641202882744215737013987884218836250807740403589758565084952952520092564348100134405054897278545340624332708774009195232617467149606044381458467081109780394279798630485539074912774619059331758554227843149710370317065036030497480330610459932885497965972881099399892408408319625808670670376236941250941034388595621917474937422149480149660593330603324899465599714924283922904877190947817686724435185198782170680419017847017975264377555051148871694004655676419665193568815943986954827993836304832862602455307333183993710798623705504985498050105144507348655157549434037465340259884495404643001078798874174098660780438295541922588833690875981804289101760223040962065979800708872001046754681033875551193554192584747176110844580957831554651919149958863556907677236819091123210941582878102644964126872359952211813166795377628160690094221503122049511381229428143096834525649628939994008300160770249768370622412163494035226267722041727271293567030678131352935527670685888079241343674791532110674135051876483887500197170880215688819753356466397163515222000523771568335695337563238565288644823607129259025326196651294699269050507012357374019634952117254797919924879513461679880023896750858256207957924754719691108551004037630904781699176667855400391118679543280492530552069103533409501068298814634981135748820867898848706453468246006682938653571972945556961944665277185795592939537526541300650062919464568240353276537914852273520952660737643730664423297786388215109480460388933525616179540447038528874190179472019959683904450101747270046668865018628940659687799745804865788582498959377986818189858883028200150657372440483912052133803767017833545549641215485256346751866770565274298342536733198127890068400187249008045484884087310961237274873407641740515367835175312867979466821880462493348601168584415973925205907972406494789746776119739755273532948706022449101152133371830977813659350643604428129605578753478507748672083419802878445734827931473824320857403178893269802610934443380583044800592950211353963568527172378403074382448285311740150919157692314880394807548286370896913540250105823906664611654283648588207323018409381852265779026191869632526072878766681862224231182987877114027916742095796775419252144331705615142817851037849519321496547723874420979331973597447990290772024989421941390873865357437061426444360789795003762590925893081782950454643598830757182234946683811170002465499359645757662419757601704843547386082384204786177603659610022130363680857753182845510954337068071135422096363637437473844321224697505152150424898435789072737128287053363807370059056399774508836630761779963383172695985428706561930304951248369468274469524097946225311805338797262432365895489946539180743364018964457599822888621948462490878022947175903260249686197264702023390291540141937049396602753466359664620200125815402768358039169543732710446423078178247033967539399423602228617883700693208770879089605682544173085785553591420738816053405118455706962502764022028647972724196180613327225587131900051111835148288848881664350297183834418482014435757449859399132341859323629492311786649663471913370154344084520256894730832965918012436735260606092630311234187457901113272292789546185164186269931751704271750517126297161561017416561288300345508239949951197599542331922789013123142949709767246426731991030666195560712181689085978378639046390114839074949128894556051324922384183018177954059965982795787612893184772790029147179903177454128386211495745590037185766368112808382990842188515675811984744575546248242178458943676240587884726862575997504058930329417432636090869696700165923746921171239760659289545106713661468491293170232502335022681026551089420771646938413140102772619444911720891754370365254030403598883834975256793974109918158233970052322682084527414251470207284153441090590030780560698756535807406239192747159142326469932542342702802403000713049382728983376744176027346815993540259544702865497808158731092446798393732787699859535747972248988081167128341301073784175443652313100749071377843966127941012493154536657431629247266159225636752487259482535921988319202343777261709029543063585385165317632790754081155421566271719724287276134673399912129869814255082574135486185228474500983341204051006089054002909603782101644466987727944089640356938055426845570734895007029309596423884223828230048619401583929759902381010424180152869233085331972906932051704865907796482518253260232973441614705578249281200180181670638924487196217127131848249441787722417901945966030640607213878218605445932574722195751947643100892482304737560439893831897281037023224118658554359922241721518636288847706452875226994442037412992557369804762319240247717932930580415568665431355734737042182616649563195448603105123408553808417923245276178310524978224039998352237964921100323919962601690850985702330564047682238779300225354232233804141755722345353133965874431558242609033356792988810438089603295226417019284618796691024300594231561211938719423277327850812737667388799327041123881057983420052015708430489543448347196157047480824686995090779817768415431816424281533211368913481907345660668883704002706280034928706706094463437458160323169886866833785292452175517776106407688994864471113701547324983148196865484822442669335415369329026105748016748332508387607720718109704384081858700886797057832559072840312519059061071556058317296839871679426546338145853916668779751050534003470911416158423698062633302547120738777409862055590530841737357401642299949614079260268115727535454266852864838979536681488944847284776534582460884926755706089440506905318207919363259196732644615504696914697031944966507807369909932901530178002526244487029102002968808567716925608919066043110568744879822816063688179775780363662463332356663913468098038134225683542196007374574673683210902970396925316457568059014836395570216192658631388405872722822149748656923128846851302300434008243385660245717492055745328738085146917482841237287066934683814178850486866813615826737276653327823153831397961406375826160187363336593298716621465506058376152125151487837500709478595101574038797316675770207700051169656158876382007626704617321552158337234116753508105269755078657026795733898635783293650832418410851919026236282778777385994520145008982338666636088772694878404598327968934028505878178143796192198307716116961149007804578498282621313826184913590975642509965309083206625682699926709501249219161031554967694809469919205508997356211861788510795655274338010519602128948600023076076341691313449069742964411649711316482856507848846601263666252534250689501836160519797384116879337853134022858170170326909432835687797986776495809478228789742251736709922997624634405137000420224841979292271083199445861979255954060720113219827947717993000277877167653329311578796015736779857415348711747834499795613904140519078498787826052866513827138785412026580258114743232852366935995106091938087236255846380152400981686472013892429174201356445422958091713599858727810187530065573335267822338782783098729134467944394193867356436624735481414133126097972076740493273077165549818419607731988745447666802032819118826231480833917147595055668600295935489099751212209688946274237182703188647843035795284735806514366836571211941885908071620692619996844261869694565029286953013138677651095129349865925917708872533638976336940041561945685273783766460550893115855526757675230218103173020248963925671918495066906265140075024035841356950233215103907044447132584779307143937645324930745174608432383170983350527527318925710391374995806987798680538678744180422310287247862931861324859930015730220264794347800845977821011179793145868754809088436060929307090404331272568541654640202103991722686638453554765241043212852190430312208465235569177978837251704807530373947171905158134213230390954844141623723384385932170609475152460837374991616876303244108488326026145670264320198261152099425883112152070837910197050691216446150715961379862961923730908755379679306318857352657348757382468065277093145130263857169860069886739041109733255485937066150989096922230127718017293683167972477521214248733790229180725591941682858006845660176933123271659243669978353876275654185379119679603105615554746312537259623786309274428154779384942929759767760176418293397835366990765245153727167902675269008847164545388905434136034252001324352633251350269463949644002402980497326291420147295897697596976499047594301618969436337903533082718568461622510766894206433671098436511528402361726745760974805693583095317023436709648184634503475927407584559327377339199714337511943459424044101001692608329450750692658202457889927893607709907717565426357198787913989757116678217877522184247652106847270056133172815264193892536594555815966850164235553573528839910927066461511912498989318650289804839929436371442136484409763203537478854054676636324153123056844705561221703499391081498648306635735983325258962478285241639487051934009257586290624983331216506992470533040472970669520470014639324983162464658303648485165981890052511950352930312970063947577095300483498219384116650870217565596669783106439264758967735411389848002564971033866842689956367797517626579526777220257495201593964244592689667925825595247040171906631925627828679400208558305551896446370203232488048524401252980600378102041806375546562342220212739287926636593687494520181662601200995334201125392471063696612658163267350974743185043676010798009801570531840278704309862153907538159597127441752282801163986892637994659817709930643946135611421792319544472163543786697420143757162443632415001079392745835801368800458446038567254593095383301857053015305290441737898974980500231960458727393639000137270523202247895069248122436453542312328952638641100613781050596444703463190346719144203245857566392750077702846074909094457231210573809177169702535013330062908967904519650859035760533662209278480066391476235976392571024763245562817959280193947223709046490266887413111483174995199173465280000224018504152056562609670518550302181717205873689089713123012589438983763573665874102532460892181774578166261947314994405258433354527597695275711021535469476780850355818682309476908001677682669618389535783920799230705670020872929775961586193512686137596786558923326118494216201984050796331857243899287864198349812085337323621266854193319382868463807030387132993239417150724079577915735170585762216988070328695526678193727248147863645430667381591357316324007688226010657830605919074517995656028639233603198173732315704324389786017808287960621233898713480225487336333466611847077091889320565928671694207431416091439509649678723826989352643937270156854756502951105877137421136507194848586744267815604392202578520388048526328353867551918786797602430386830096977032997953413684916141065691973985463341794276519056187065812229059778785170833666956260023914109408854451724491128559088200481864667531025082880724219542832934722910377811632281387876849048062105830331684806558587190653409291650116901933396532049723906891542418482206413586683623742998932615817111770064288163915203059557447059146020567477928680927164994434404484819875053666281567570889169168423043284301487038855033323366558836791651905974125003876806505518165685887275479949720839876295260759817776202309700759350570125503924552455977282768295699331115075523882809825603260306959504512826855394871297343579673704260636000028132422837739436548608060884603724542974526371095445094586852402527155287102346129993683274377772553534117110201534568331302804907814534212905419715688792152352046184235604551977944094405264274865902378670731732303632595240261965451279024144872686659550354064002180909532901908891657355786763278640447384640672517967803531578113233722366073489016151715417250260912999351358136495644472748611464851751501881728447155749997078469469545738306303379105016444870801649946204403430537206309990036492501755028118298333451417742807467866765228969134778140553867442809907188812011556499826485035299482058906438965322231074145273461615105514335696042088499042545367734103730433399612394742196977461357871939212569093047497334387708931948488319283342924732034382290441197432261647243521560411686922966338694126304963947145276042167994916662465635104235929167856544869204431353598132477114703393944480653854853787715069694263345218726590299622358200473816365699742882086465130376929796694464473674582176421700135333772818329208035260417247087296833357819765920225884226613761213716459578434317012013118634867741564280409117148206230837002025517853383158928741339053061179171395725709238578006823528622077844263770255383341172532101004429351138824231691566904618943044263341342356251187997794468440009828256216271941023062317730600190373899660452261694527511958834677253562739196884521531308485315484074065264018443556134281448159676858428031819839899919424415897848541700686246670664962200166927904057330944164479217996307219173342954349615630576056122530763858813289237863793920697921230128310437375221047204869068503533946823552575661714792891761933669829505172072302030071587067512886044797388774925331795698695064754344201489511410678683223702182025984141737254817221146706870082201828736555242937624410350985716639207924823828977375003415970953633168523622305905434672169761356204622925322880994202438035473637269200139294598474101384170397829906869457339503281769168670218991304080528098764176504691200382558497174321156643548136591006550820448966435975287213408207412428625726840821025847893030491344869621861079812986053666808236634835186943343600016419513532482208801125803891428792717060053753360101059489045461106948976632776697559837683199918184028110738249133211751510417555243990512315470512622834032425874256074734116113743818302292535065333536653919557034320188070572616122234762508804963731218537945322609518705752308331140141071424931783257658459881054200826139204587402487526004190822156496985202038354727385835799618866609393624137701175405759330786655058562204262759394795509772080424248550660070679839579369402430145803790734752380302168646792780046064273181154265323095423103445819841980462593795389096056395094162490032532372804843501983557493873520523940027040649410748619522562941697711035057919291540247868426768190255502486647384454270347259512688685211397559853473948294525053204635340025581591466745714192591584843042267315083080319958786348312428589938301741887388335001090248795598321922714867676271954444068649071095058659983218937475077413715046544942349316711413331552896184613907921384553227413554898264625874356264228975157226695049773371988789436298420734371815463599578742383397138794740137688682878585749615325834509518673252122627702684781419708683722680414862771444712429218889542623333621465359408875422825568075079427803962809116259788039355604273914423963518617503219102900693724971649314087985632782400216507486591335185346233300473989041997921584415748863356921274594830427272913365679970449621162088638626230344558062723651663355689602624590832723133976045989988055533970917395672869822242313965931642262806466144081829038718283364558002549001467463921830830463001392366214708330715035162768281337587300415465727091274591465508042643083818368869553385608117028911618595797510046539281494785144686565254281263831276948482062623350030543224429604879353003113598989112500818960227971533745116874332472356109563901363153788952278846326005729731271033892369470398075369699300764904336046767781963978589560893959490569429912257230103432628596903775556537554168295346166163255285573334869683691090952216838939416738044233995110095656488558675923443240882986532060496222560267159103679463458285630455755252668927598624968711135150729309713497758145265273669495935328866666795498744123501681774010568144974832388070546722008068191725593789111583730991776221069190071465411970096916145524342418375869059195439386901260500022994822923355955113505931796881096385832057599764373886276313860975931629628148797140311075709453104816121556372321746287588891686496138877694119536057361766718139161539291524095188074359669373351392576276756953516214202660104376344196897521116859082202524980323470888463486426922491356800178755345451336357894597960074914349267066670715536815183335942168713332921433258406107669819922055917589587321027940393558123586814846344111798114761396142496152482288593943687570686918168534807904990101096129462226935345393713762579729776862170699443484375657322371196951358412083875485067983255709533300561906796308090259692762359648473536692934521443768056180546788418023803268928869144991479654982744516670675457462853612327486736034871323305015843703409459034311236581351589851567234304608884807713464526644048597904967130156836752385193068714357702387462352779427431748150661204017715499225911057840115343579578465026565966389251494488064874632918710648534572299271392676723960768410299591752277204859297526451154979386847229469382585267168325329170789108826902481346178285253119785550923809206563680808762032411302237759801214365863309913952715457865680112705502715401993880869821719060215045177215721872770067662924809666898889708313850432328016264243565089749914340940831832478816806175175493536560887240919582110658601805543914900267572636796866666786777017026956616155544994829317925326755564774963998279030610330484646967756011323114145655834096046383769304120244530973104570922862456679438141409660533147515608584771689636925045411535997278871590452754596398833847486815811410534345245909266945158128240328716405013532347088762218048079933670766035733024449423795749055233857036313432717621520278756965686882028569277953303248574947390661150811753306517581336101852316562551091096311258621379561639056058258811619331920516626823995927002046842791485224038432758252324155545852375969629079876739313604994194819935409403882479675236475760369227044692063291626517640006095405626083814354433354224168166426867170803027053887708850763076533399016581407038708732499838474904368470774685413641881309716608534537429958285661970713091217192325396374488400389136600680750935158645563732056228834162308140976382432106554832893896946267440537275084491041678078994622489309450677887420139498781613426447816768904313750145623207823449682481604669902851566292771448429484453419301440311348266484756843496493328924665861434725369720123760236813503980216992899203349797587323103541675621417458193035052331815227293429805149543061609187081474232889874352411909673588578675108186007512294036914439832218691963039967532018688287411499375476575370734511748371909973501106843796540820635180228947184125814797672649320224329952712167600031206941904823649477443116181039034117683891240328635343968539713163595124860922230835881224439944863446852159932897258236330216270678469880747096724614404291455120681593002031841330865872775635207491899190773173466904440437634717240171120790981960650457662159023339014477743521039035983831902549991842599832246322192605385151905775107408219538689788778241088381767496710353358163243611097694594505312007006140049407849060060036887433642382217041920285925676987079463941158826375806779924191293388290056668855042911744842188886757533050055336721942813457395469339679427427574331481737910667532965177289136938181747368542913655088947704139716890655211057512667408319017942021862266512078842949692019839014553691388560728665683387379365711614068479179667750797189031769976952443869809161800188318977901357166591987275033324112286390503592134145444078405125053712657644956818863967512889423757662155806937404844617116465252179771480362836733691295087270557209627933465220551892817763891356314694622621694190950188627094785694470422301474878907039474293467346443807956187518307313493086394537915816341431602595746786667879580419871150766435650708199661041829795151744124949831071974434531871645124066470446958987436381057196374327248816381764421076559565813158058987453991916933495518447499277852763292836981408303068768825703500697347879675812630570500609365913141230531848907999502346859567073454054612508787511615760858278036569233616413700369414881112789308914492178479355910342573972138164683185079473640970261127850701679800178591895035768349906092823467537055137599158129117460967160083669350170381210526951171073104087745503198681793404291022811035351117923096436511968894143353346683362016746774877916113048686574660490692999723250908162278392263060947627450907769655457295593891006010145102208844695096502708587239171935437094023826112822184377609442676681212344923562210941475054207681141273812596238305854207371490480204232544180144130911387906728912291068202026321165305436001526707933120305559907673279640901490378050128822876718356872176180987775783931258438464500640616399912878236024135117038518017602015349096083037062251673371165044338344430766403733304808500103005249393845380205116578924891197980938959130503019893147465688789408781228932959545191523944228903677837236245066602085054333936333782939464726076201002342968790257712120611704942802925083534743406049154947666136656795372734420535258192309907237184761949393266900216026975770183351497639889206167285215676655546901418695979684900720183353691532840753504195106596714017303817101501232188884000456964694796087612765588561523736036039899011616234769809990591090182498299125084173183905935879490202466796377052945195165994478104744882360607469976492627705912330559655413268799958143712987668975598612492506606952512361822538779732489348922556367379461339453109386566921111621117290205866559788465784349261133862399525215530065904879789096403204832767811758561184869265176227152739921848632943804640649270795313452791602073198781255736350610151647274628127317402877928754636277818947489847477713378901460376909797504347687774660891319065475240027740402375908337496172709923900716884884113621957577680113444813081052840026369780524927373516168343349422174513057922890110821167665927264358593109328797393344226508254862358485655590431085291343631779669244510524011170352177768671323150264815830944884607257633550521412911813631970496675741624299628192979958514228393020841697442659496100258545486196842730913133858885750816472021926787539577542618767946374017192783653490219117755876231854691257594308119074579693950698553097393889112261857982847782129782219376820578261081485845836948001237982600989111922679200745295816774887056506835971944498919202728543443595764941926350308046263274677698920584823637347181057810196108212501231982054540964723971058967693405723121009729082659830687456568056842750705089143530011630751308305012451727826255493808958640990730094077375472820726424638649829280400026527346115072990364089441813641524456833383332858077876696973942322115920552235858173874544526110076276532863153366244405177471910199017018164865411364215428632943198256774116390925133381337328820889779231747411682429644093949013663997479171658332777547923084229720209735560883675053728543762940943292123719936396315568335368290727047982946737165526396220611173664868705081082481823463682392487381045070098342750639881955278245885900858352877642333162075617870223706288778638113131288074258418593413975186167968917943013317697429995689196715679605948876271787660181020650631498687542747980208000790713324514746495717855644726244410532496560873438974618338825688734430118576340062946996283417129755767800069199800547694446474733893730441704250770014194825417151433295995959621178025378640989718753834339706986630362494896861399090551486235424736540979561029658806194432527113420700873883560506504324942734993096248590587335328797876422785850619358732639863102132795174766908059077389109874936839793397968339920392991921674203812298556848870115551294160361715018433028575298703084728287719942065597590882650408704925933994732219397521483130533565800717152820680798669579520639317756903869814530835889237722553942245623065798061810817781965843596290908486517771783979505236725269369351463891960485497977788606902306433965750307842366985613364061608328154806386191019615999710681466597955037551323104997993676945799570827574947978818418463874239880278512329380785161602818730530962539998872386756636749592544798608962757879616622000763462926163077636321866214004789289333167562640036373500920246022263511948116506116587081627683376648632856392807630510245398525782634432925350496510442137983089045194341406160693355945263231352087778748691123622873885720335849088036201736501328539829858748621031765641104430916094220018947308020507868400576975989979259069903053130215598810527062213188483226619844379703596271922789808549717602450241331946204754219301789616715012444845863013160299915282386995424051482446544439972101072120708763547587895428962853716399227645613038265943715845077436610855834276292946455626263111048808345088343199352920291467644552822196456833419580492998609923714502647728494719625956295132229241701835901162499934859542720431969953701713920227284609951482896215750744498471068483989429804835914873361916154609300081625457923031760843999741833856567111101479654808740564759985991500377183307755996207850454604897678265326623516052048761415571780369326774696374950344629302225774432453011204088488069376610527595604592536474551157429462952040164414191781748024812728226657648602556742680321533037719637512091884507646168491294637028130465657580036780739307452792695236703454639328725579341343547332708685429946618639654500405217601527723099313209198955891362681478569015500093966173233128426628822126746026864362547780722791074592032061267266752284313459620454691866692354781605355986445133221588362512335965286589934295389635094714515801223576849424066811715693930478981130231429281465940703234658097425141354534777283223594207092948392472956091108214499941785842914317051288461945185295324668198402471538206011091622118320962592195902899885281183104706828106859765761342291860157110241889156440988134303190202491353250372675178816129776374184541855449822030762566085069690459503267455913608519105597400701100812031757661124535621188075085090435912132572736508850728004416532985676518193988597888281619442827594774977271311615339395358357150202284162324045024959674793030273897909830644094611836035601215393067428849894887374439849842947692767584108015253012882561477556926915527683661672218060026880853011004866662148928110492611177891443176065937827713188635888373509524494199733316596245099332625768196992423049643971882097161716271315525423810988886960748935900763318424516319586497404192671936428820687313371573725446977787643371666007941495409244708531042622712401592821600541850741221834166608675737867637682695605858592034299680645321828814526051271253631103609712066276259216296909955799678328517354615778607915423532424112457378268050874893079079179689751456882342569553256583345692801538896299498763353852453731407450998081880753058225285393827159394528358519562110013466755648823646513697238014957580192703032594467968185284237086430510698239708720731612605651893904474244630269543240130678943759667908354461852880517595672013313683499534744691861846649303349020118688820424328792300820718743666378124008889715464295167585281286283698213414664378869320305292133521060549707727274728837094168469479370544145442767540861071979809134921359169090471253290723348931873637528182038152435397271272408792469641459393749429117633383787604389364989593144921873043036796686626157670284813650018306828023229420166300763997198999092109954240689129889231886555733524443252037176451691564341910483613541460316157339819808841842652635163270206364384018009256977798844688176761057910311901424392221184099558141617071688246024974380742176228290256471505464472551665589698064576447347028293679222116565426568098812458173610448683497589840874697145463733220066693058994205365859469220044972098695301857716133047075656181920837901675912740258290984033820035208006156170421916406081582838250325012444362458446284855705752099681196908573420768850925741410019461765141199485870134695433086589703863531842853061490474163542593908751379631497792597562112534486648986224278213651385180509001321934043026640659531576050481689709221981437908454532011595297125335703902059784307590949642776224626233448332686099316182788088270492702617296181978557337608852418004807851865628952243804169609067672187184391681540340848116222746546550114508953572441507807868872110771533967495249344815794490948029211368036922416020325420732447666028337665467534166488253600979530782952324238658211858860891089515720313272189839286904118916985217368068621865322359893556112780459387838056836556858769340635171966478448023779358232094914471814735659698413299043420897152223242360069775933246429452902751004603214317741579463372694702626273090860927261804993765801801966494156968145142540535235388903990832181815832826029340845834418864137948129361460566917681776972526962760612128659057454300673118769497438852043083674238570155703676422977191782678855179736185916723025078269583737250540467747971735846586377651755613093388667134158142068219067128074291568062819021059489255831712867444935782009489505022688918182952213228398980993248590577445131475620170894707342528041151672864286120394645744142481695599910652570677739116870433777969743865925699788360249654381320292561637865805478223632983895767777735286259700115427262226131872772118292135088876016788616939768431502149764746547959761206600814498478042300722481835452231398449656720115175686031304162939866657206457519799081507444992682304681310364423353873889536122747277273910299203432841073644742553350491106865275561537181245826301612722364178446545070128788445137567074112975069047072487912832746311424161222756517208705666738486808594617002311317429355852284568616591623503250374793863973728472015207749515117815855735277678374291887337537241402275409455256527023842292215700426748602492018221682106353002259142297661577566484610697879133308574291484350753860726280001830727503356230741433242651458155283696309644655028427347694428694169669313465965953909664551726790235921232877294443723642100757929118836724731337347926810200082204644179404310867975190815813238797616802009407188807973890269633817518834927060863570108769890522010233022110527109895788860990838924064883403107001526793232578441455388346349115313223818569630465244421105295125729726780754699907357612278783859649363263239435368660745127316084999741947834571013028964373613471664324412997389135804663316027766253486134614375917229479236501310820214238754926324951588906151263770858979182393004299491179519127296256598252956329969607559280610933649042790830968235115830306173283333289339468439713863210580798364881114017226547097815695223160027305823462966445827979638532572745777571037345937222966294553479452230577259380762911494443495054719180319585455586495632267219706897518253815038108976946252164675151522943743294816589916777011697243804715253775521941485954753196431518132582964568627746007624076497750470787872462703620131664875343461225034163132478934330198239894382728603678607963052861679057515361154514625935558680815908150266611880460508963964347610033923716596287778098619693526116003515545483995327831548702817121873775069900179609607525830843752376037296127887392126767160203340039641130154843434323680236451558253903678094901233605620423441337388899634646178982859367456652250481064652567557894898947441080465892323929690028354702107232311289785175326181954084149957046832971410596815720027138342309673260466560516783874797686121676947873390211876714342754545463943741569358860452567619063945954846163278225254884593310612225337553416925031345068453023902544969782487743293186053725333871338479568228389807453949869008482629089377120204376381880372281489311232747855122923342624437462941955836891180749650864417266219924670179318652086588676341718986057119844678783606973746285333629762934348332688376164965371114229927254409197348212325105577707878060212917247316031116195951880744124625772076090124240992956609841954470111254273470421530961221655570887025811484691375514663938095914183117848730124475110444667733829399985374981863923445190372306534792953388155526330915744027442740711316755843089680100660653825838220190470654099384156053706110456285574057965710833011569318794636604486150359311842623655861980473621637826534008151557789112524339455865020220709195530104954476624179060069110634846461518676103121590764542734265474768405687786602760362934154044349218236907807430682998062942960893702241878814543156867676385690231719138531040062827924567079381034092359101232079614260586554870187948423581145749143637990886928116966817497594988897427684912220730709063969725354421332759491725579662582226127979927979646678107430902457314723155522920684293392926042123877051991221917375440430894921222629447886830090591469377680912291692564222319346474736521941475258632968884222155264798588589710601292525809670863149156338288342496454804506452886971446304264538033733132900615494100172360767231154107404799096558397129816395592475902753851741405766251546762253941369952250903753651926161481688846388736635270132218645284085484953038804547054356755686642105984172806767496218219837534763966684064360380375386910740487106232550730011088908917327915163388277287988121975029986717841187448256862361518734701169019551724309362054706302827772870731714914943317969464216362897280393942720352997452229645683198981893197245946293728997192109529525945011488976072860568669106770107982763633947848035266805071726531896776385345637344566497466142544438274024037744027152907869851199600430119689353990867580170177490884408400686417947235044672354869162391532369563346908504475108861658340654550966906396085873796905299817370999676207813923924726216436952904735604474566455387484167348666141422288245052984695107773519702993215421400541499702876581762208225867179580998875660746479274745390105195386759800630910205972285483413775914543762087672689698749585936532211116906230476738653380970243122968480619676434322249110461747259319222884521239446254345751214838000994457324852659492532359616372959861178074541881443848341303950440941363923930507416448718668538503939930580793828971294106270009104096992771849058382223478762625793167289355405327527870106818689864333875660077915442745027867882772509333932208750760910442423402883936398960772067042967693751663624725898064426268595500632032653753314957248517473029939744776541702852066124086258625693295253709294750533225470568962728350080601544937131222856816690024693963115638653903003101416355129129107013194183175952899788736440796025605641738351814667158622277734942593700586950932439484040844946719459048731260259067194071948652105321806695607695739812954510365499752062751123348427682532494189495829998763931644205113193184239384349369224171322994872678158956886170598398585268800066204968622833600588753072907664602037839593004091649581271906536118845498149457460878016523708846866869498172976003464148564535365501275469373563513660455495624466259863438621918992979642147853402109290412903548456061949118630803897671647582877895924145455248105406975970698712084883509729833292858785831856527603373985481196284230137545419337669826715470533495597652024408403701758914267953604222060306112329795135074720375834001667725991988470601655553338706154165169393681057749614318412453071385387124819711163840287738263647639613664740367051976536410688169631120667407681707873523052346038352678892378371213423878203747079879228757366445388496225307821829262639365785267968507606149758161087418240568154642455684222298213840229706559012846425567142768073146338491355093826585557569631576879993924293889580707515931346470731576274755087906014342694047359042556864117172700089859137247887183574233211360313690406448710891704769251720745906441606590841861202703287420825165615664818073388701024229941129831476017939665941968588719296270059287949981495333297424668576366896648460868642350249648827296713479382862374443703250571307960023517180789778337471391603923553041177095843640171258595905507074270934698330022341585010485805496435536358415567128489185144675509426339638675833700129966181296975794064245382675316279883487038689212569441579632277592069990151496507033983408365368558439230353141641383976655903366538564766817458560402908686577185379671825714533399935805847237158845756172488129473829473792071972889900736193532877811789842320110068833874827412064295829317467819434377734419873399385577643960977443812928801576542884265195133320433122054690142748020686378737317551047734039877602276753095272935197499275129297723291938063488484133179117642151729588163325377633153378355254820741223226028724793480599980707971306951360645253738723559097556543363346386297658968802084226829763751466325142034699584323429462301014283756497254979660201660475462351401608000954847209790909965637115700695024978711812899624244755491117606438353609376136184773883138649120858210220236493531724341370498397640092625665703546880288425389023990616779017990717368041771766495801848910809850311332717995131927472629713414514326068275769487694958945378495449674353275983911077041285609272551480176281958474664065008083978262843254831030870612581002157029746642458208696757149133710559326935866801859591792942072628863333493551400001409921745015929401292654036630720760639961724654125408895122650401962155650964789346436212673138978543843414745071787000541759516904785003714593138867190797446734931283230240441688456006504373599203854364931077847021258293664185503058049199530973906541272501726560358654841550073629267348214956450446001706719657290041714616913078885629244866772794032916607596019768889592866021265138787260721757987674378568535239722980529238256286569880034279316861606427182486500126791030545510197267837817501801663066885404414697063731069650413977673169222426041008550797275994343183238750988709854650729189340458333131046099859357796877953961135647894857742627564735733959663931437864509660297206398620666244728484590759555228273778009989679138473190981659073604507746340959629432391131907809347560529886704457400951340214104708361100647657952566831125436227516558028266075576612291785165881075939301308701424692020745373535341986875140972399031935304544973463193707913292226223342200304229707669969863114988782839663858972348570238782094738336760062122501954675769928263238342258508222038878423940644989256440612854358139241100932708817480553479311806071197588140954120145726112229780237239489692843304319713016311292676238488513729725070076738216156474257016451762356161178888135884118724950863070178245178546013139145892955341190768137184181258678686042721306546872918870333996390494257090987371525584803590902000254554664402673723110887420208998707641774024418786569350707439312805229376906514472526468992185224184928852689469685345721515720758680619810093055461384631244720862719110349447434777015447331517207392442526037975963815480006341181994827465320286726848632553186107912125468476977253664806351478307670071174297782647677903918940407372473062764249934076370877521711425361546123971390567990544348603948772296049504729532158491493745620864334023690241366716010851981847907968625389566637927478314937688594697348720446221755573249010590777518990340081469315971842395965215565249672856326433831096376594667626569890370489659310883051956508290913849615217410477794157620580319084447951725749417072216551593888744587765075894827581357278638366698889743584016832688356490733862084792330905866230872578920089524010030065959854719434118114198217645174881882997638536704244530433702595579771328802509628719996609657206778664133982087793870018636245871114705340399537534595788539111692138483769394839229856271586220307170781270959069570526246853597759211195095878289932195304126705874323268324403053338855110875386184543848372837374078792424956827064789611480808558037621010867823600693497055392048305275277742359338353118951677412935859981073709017715494237270443832634139769356053174875844642059415233200330371666981643521193003587450912751537831931338681239651254287572013034193279741563107286405317398346042397861548116788337161764287220526163340546042802482731044419257356919189151000199151144887445048835174830918073209179742606835340420272351662861903092364283081679660361410494154006884962028995866716235819194192730723360865595958042483646916260518685018184498586381512129128231554519392713590188565023887334285427404103503675007745428458198943625311798026333511236888884779148850974310728890936588749161299362111353251102157483329174294798867106926013330345818372785909961949440100849287209024849604080024352898024929473704785299792180801446343952664070014973332243202922278252410633846869695333393194816659876167023720544044958059359494033865903332308937087247291137185519791529592782322989462284101261635184325277727702679054795030399977618120861943805781340625524702697705242550749736229998625516237957390780786659956856319478593997637986003678511474901191508793432722247077116896220815050639827585138703466420169244828045794500333228603559461535700570931089281846531952801018476803876227650673011526360125596065883392267522651302500230078910366645962159792681273158812062247290466570619412886247787220353478614098694584012598215083794967225047127927911363667647848412709337347033865278512369835238282634253348269871819546538410473723852136453758952345665084705675103279447489911016453035097624794334902700309261759561333484088103121938262095835466472811228719791757083793099588303368216421524267811003340772809166552688350591688641044726262028345313419318807474789503179919395078590548403954526624844121493908445956085611920711654760548784391319024480018784831166974175272132987124605245922171199273930110018780236057546748198511060079293989545489427890090542174943635365686270565718090571543101739857370801394819960494522002283650109982098160770224853120718665597565293987901828910571401694956409066856612645062869401408402575525084071641503798411209657282978322371013296900634264022390799363163828804162230384039868933022050447524599887002481933649527630428034449033183033019644311182955580279194419811064293308704592347848536096490344481802035609048344081254749962755428977735251670812815831373042480936702716499614912769990268008661328784263731255152796971541000203762956341809262504783200230074557794433020343486075020441053658638599710701214052382104362476829888673245024545587722449707200995556184551544428043257089143666355901339064663040098856569291026627542402297731634679620210992181097885827418217902594456812481834142389487064306955236453588981721382738606370943924276514367440313514048858718165988609963087058347296701755448845602591648060043195828676606394412499088078859396581094601325723829117450458423170705779187376654034885090234807631548325304888748153179361125603761301613414357178541999489978090211076386768822274871986598801004107736659174603166209373491176537836053817091427377369473421085896267723840847012618175823944363159619666853433948649173714661927154969696159206636431900140172472158804861935709440540108974549712238335768143026608692207724412630565598553011395300434501076728171796725493672195312274341988033886814971286479315774992969087692948364212316904990801745126654659409644205325898595631134307207110509794301539906932076369747922564107634063551993567714244905082566984988030827282926861660413361570623514191959941541720708474210115452586516471262121070582619909689177074133657858588235913586791954444309973808952662779453937415040538911224312410901096054671080847001947728495441891435745569417293660840449019329613111004921820833572500693260790267074098318400042087498592469405170092843709086613011152263710408272405664717902300587686405447220452658340508936650530841431996961634026257551662642991786852224538268962552919025110402966228776547831684721218059342813983816781876247066444309398008494261622749345494641373933948537207775967633601562892758704773290680656461042810124689437039679311066330343308932751488847513818840548362032316059607953329981542814721502795819373166759551505900046398282686031837790614988501675891624966216750624839166316644589114730450410254452439431253227518809648434585575719651738956591249763473292605886215407452000753404004304032205760200051138086470306622123853123884334076491514934139065815793988366388192669248391754953940362962765986803843643988261221803977895161158838691003819733822671739929705879466228443443590483873569878065507648375861061168757095374323486905546865168148786855456426477722673912763805824881835169685495945507686312355311965662349589202286294993942875180229078403077715491957582566997609033945475641992804516671731725418421114316889501257207743846726232495479017622205660172669705296736958857270606241009251517544375189775337337702734126821714778876953774189471507952724329234726193351084225032675306496797520667258131904266176784062958741207980727373468130471023109451875758523302683433623892592518195308025515603419775833286291237614912990737319456884100124425193703244767590760282746873058360573652115142808126126754261070346142142841268279118006912438846512026274352076209421915923478161421383511322042888885148638401019977437695880308978445930375001107245970157212339106866243695269907462504693808686175868768994200640362097270175117298112366476037889975221721814050867388671227302435023622774722126452567650172778785048773518256219978421493065758058084564716541519110298180459367368368253365937845515524334224127522368753539237480604362701730788167042720885589076575973652312380312956226413293796825705105070605084994945290068671853088772087322080252466703068991754957080906365366587869900991879740057827763461288860091829550369630080727008318836914396489986736941983593372720277352791195218313408018015525304879825222573977681813349219738863943127132000138806999992855076587870322461549426589500520761664390268417426251909081339645141706166038506821643944792856415797490534620689108015352461904702787916724524930812917693985355109072197209491186749646097020237963361743289473542930643830800111129427148646445864485005702803851989070572535844536467462789890148484242424831920072150950298140371182594986818248280196851346119329324583603813584182295212925484085027815462602387023519039801002453567823217348928551858733465550647776069090135395826745990420445276256565828068681819566383528858364986556605183049092431048032682428280442858786866047747474894083843115477034730724966481890891941668082933795640171028855588408884245910135296877497463137236233453487431837587000318703597309069885173576069094627838368975698927872832204805194734305795672449021483592782097471147170514649050598212490453606728019065264632743981953513502824376649910350164286614396222379514699873904484830765740656225751906790601353226669738985869917514273495917393847569866806610874186014009421195220177553677640186832140948188307436525796068159967110401147054995256525761527758379853437772483437954726181319677155184034413326793432453765703198975249378341937429679481819896707645623718602084695461190174177767230582928973435926239700520227558767401064446029488476114576405956397076774034640976933799948228438663661658012541938291460027215989903256913752173542754780005190127729903078078805441829919820529710950581241462464309159207548037833248744968537504577841394085622649649613113940099889319224745083161843497151807593498451924110954590087394981504225218404287627775920538448407102752752523724392593486040616393855135457998064603371275735319231548037910795985902002644232288947480974557312218800165968535865228216452098747448581289787048895340287406213055312808797056513881407453218731654092203112953360725951060113977251663288465754645518941165814431379833666082214433776554159497665843956657217846938748275871591723596685911033990354564664591832716484976441413753831027322320985299482290403416635514144042453750725870185191540512721014343761215700353069197073882314779777630473298606634289750899233433553265554010267233077088292542986426558943969333843137945863638801942415820492755229134252992955952379768649917057104202887665438632254170786266082548138452796686700200426764638953360312807297648192315126736730123907558934650196137352938358080593826352405857795212020948755127130922976415191945671242794680904807816932183792809052843868909832565046743644395620320226704170814005419838609243652698797580607861220422930565972589819072747080532294413641238259622662427311438136086215943342106109748515541962779818381814997764250418154466631372961689823586787338190028781459341217313928083387670420885658613834532988674000122478617877323660243779703842913704834078892712858033372550947386558858682373581048741637195067518906948182446067522069725257334777237842968598710157336964297633865886520241379980992585309768448394023816122520190907772376931373622549212590348165750250505200344581394978129979982625156013736770538211970294726479501224100587175356270714558814961240842395292713965815373720977921956086294087027501134108034375391798151724731400119042356610359504923085374038000287325513680124612394249976565141035041331494985875871668195390589236255324275053323152413850745086714092313068131481674288343654619042596715383422990228987227325531282410338143620547956227970191940115625575537456930680388625797664969786752345957966584925358065577917565604390169626920917423781412615252699630805754831288196751108366326326208114612561267599609431690477190046776357497990531613952604332122931029910431747650328017918650729016252383376305131979427920042438322038514409120311397125582936649978202497157979176995434613061883057189877006952105886927390848149918258198021753001515090675466629315774886708473909543894617362315120321026086617694575287412151543010465747653689435716611203947199916608583759910269958812219835315857921705031247450248961797606895369119546272345811749734031237603431382328032418706441264237094892307212187712046986860381309943800893237613937443371696291650020077095626176446507933510068967982541249071033844386772836864274971787289147033695738647928359199384047127986541880504081050043882589755813059859294460763079603943224941919179593441567350021578145558362488736375826255559720647257897490021054277373296897899508189430301510925750517906665422922613060169009268968370159817503631254499375087213282054981133807985697290833739593222703403851318112755604046640020911050296336356366707792693327444746074518385273572959045826460000187467763613374116518018288877785798582281686404602436566489932388934623405229571884130264140577942881553457951342663678299642026622897723046123398786522763806116472482775823533145480830204402642455569058014087536952579616542800691233046325136737772490801324299530357060615614496455182132663786821170462987582221921508593580295065454578710416672214297685731857258679178935955377906125149911620961058574690624187166235602849348627375737604317873165549734638641834522166251599549625772848511548324027097459350810217361922271010311685193062078893005660340802920797438880802408275733590130306030403415150143328636322302547575621394438253545721190344133255707072877525297337759517301698565202535456755602075075214858775418442609668473901652146191269250750620656188073645294377442085463840632025276097256390292009176578092886828513421633205550244802736897829985303906946693806905269837599133237470571618416829205796667342570146523280337262768749992392769207738727435727261039140482858819580668632031869222905679028646411177961676865628331426004025214141976605741824283885204956227990253503505851826609567519915751064594759864937923834063590512872294479474055493460001726706029514971321539388271214400184665571141512558167734097392097869052236913145452024649040761764232768171266709426273969239914958793191770638388580443496465404168340399225797820121240635344065229436376178398069868149877592168484029401389770955349204718871075848139746064383985102587613524212176570246529345758359933487453128371543046878062249691629537001392293862108405670075791592262881057604045776782721562523548788321896053074003543009617395248884926253097298185267453901217031151717719315072533936318589919990863649088779153339744420314175525523509177459664545155058335031280738631179514930349138043474756731907885453589463269713132062815821790170085173988662776893916796924920227447016984628736201561585622723889713308893621162217974067795228076685656649651601983267734309256632801230192802729578954231677839925355959842200909023581583138376424590344938151514025245205795930840281716273219703187491424848387188715853735753363197387873471309897726010991270352493507792044006335590338238748766711762077631599972175666340265952928108303897633981087569208281889780169243522238058799293369543123517382918621800061783201323123692823699142609217015511360344683402391504056667180995699474049341518397495348149794775798028058422565070855568816272638260659857107387308478172477596206766750824366129023257975866983960988414152049995506565397158279672734409311036512970527863911905959150404059534125722382203942911004121462903990043318101616034066072195230156070773938228182158179082788591162205552754309478135544555384891029200792575175808405554478282505451378604308479200034112489681688358271170371647015224434937860190367086939225757365452204001346601442514798037958235626963201432715267148716590485609422953742193987379071334945004936718270892360191527642831685750764558725084667131994183853939791025162659649620433813704834284477766008269925419997621219534127145678604137020466289982407596980150272372042774764141582284228138309677547245210370934821567089792490291148495566405570702881106142373937140521890398515664814351963706966358023023182878674963303982673475652457533336898621760453987023024562495006127931029833013040697686211437268807254886010129570827818002062605801609122359340368318566950875154606708211507334920340315821352807499246739445280288733014834356351025050837814594890357414363664502234513355020702448799198863638562751829873028327378824260674293477868448904065234854059985962696927918296928681860059621832871049761167399024663067244749123894311273434700854456982841115998692621244545119621647978435367447381228684493829615924653270638392902622260601432815403972549874844645476131777600952080571525158084354528775832181889365447780447113328243949141927175687438097950192339545638235661839966610617436465457482282069973107226538617104790503946852134782969331179256553924392807378396807784475492639151590881332598957455780486711804936287352223794878594611684998703851062002173211424613246779086945282833069003078389373292552509288586262089487111851401616451910778975551619216116095931310839175035386510929175427798440788851621009171946029975392540878868860732862413553952059434358642603170261593857456827002940550040569160942583797853801200217682995245470042715281461875248700193122711381643636869223570633652258361447871048345842686964460267882220677134648480267531449049980685945732960281172316678205564398477335308194222692698699445404998733562750787629149823591235102458927868854051012595900691677667677890757836926876234977120098879613507065185465800625820765040176067239011297863554235599240534052511248721483132198759666709111688229526883367609682505018206738553344101548690862854192076414341783095063460655098884684164987024949697214618452336661401037406622489210423445651516316361345291749370300865986010298346792042253168039072139912769963398376347105028801272272711402607314399686838500948852452286958982029410860174483837763203847282225109818893235008650624389284413883640770672447595515194388679649257464375808377305185583050320821230482246543230506615084568903158081900569378866746645077929453612291468483793862530257261339674692013823626247844216814899166328887185710678296635038742424444055055267185317250730463234440765507470425139498867678235932015486447916139241051194223535758037749768357406911946659121162294343506414185947827521581559048258001855436238167073439878762338330299523913160398109763705769691076355226166078637832157018374241068897297590575435718767859973215844985589167218629608751733017721308971071780313958654601100552365963296817944291906129015213815703094363631482867522339614856414459434171627769770115714379223014522953114413285339044745915666095378300027245308359498176367595015687657385250586550101102872423087710584251904605055381321647856693551776780962618073333840922229707186339044817184787234135292611105085469736939796155448322076899688190181884619193533058572059858735518849361080292722163552959574666651599912041029875220981514241579722273322496132455115611838217516892787149412407590395800828548396145091489268186236433542827387278625681556104486939445093126353896337328798560678604449991721226469844076879994836365528874909891026231572977999950994514007861548086868044903172467866156649686969141894685946643754040853203236783182002820372548816350054008385053392011618487039772123075000854041914702588550065015553166621864436185882454695079844340713252108515480660033062275945752871672341405897261064644992881699268570103285097191250035426169854343911744525119424890239935536991151820635428267119020498371527918908541359432472405999164483226045617793405647068998049992295695159029197851979496643341683184524527753293052535700714988731965488603449322968306752909150220645932690756713983799441042889573947794145976897425642176921713920224138900846759116553305184275283279210140716365837579984053314849042590380525230446417774951020801300825762711973296692839276594177319520491413149646886894420590581873704408437365617325047660167423021190030351311933902494241007232602039968062597068041037494243834401010867598846066667323741599142890380942152688906804227123366683168653133812247511585795846468875664615039125975915677414018587431960298500441392313564241638574083492901288129884236273752045325912535681236885985405317257428033098369876702322650171822684400254669291510754534924048986619208614889421124681117272686026590351839751034197198246751805439757300974611216644726521899521510672227967884015457117641211673167183000640208949670699003913420563722442485376625051741726286688999034047120049436875145875721064926965491341458120564928214942991909919484965391240382576507977950957942673400278935421949262413388050804987583303623743796826843411563833762343827091139106414115550337653150805858325526099845908496136196956772109529329464677130057954370519570605132729587753637626299964218785499489122737904339072081581273644398290972064905641708178258670308191510432679749501943589825718169691650622524147359075737512377508003445380857748207686010762632551852729199861925997072011190100520350680816209659340962938875116383743751319452629556256160778095096512480934102973492135295112625422264304248993412379614896701068323615134453403572675729943537605704743412309592691015216642452739799002949364411196784627621909684335586190331814081018199414732893672261474261572325400330932782610014138048623200863301931160020339727666629693609151589950432211529771159017864608901302216046765537461985326160398126619005449656647503173241619676686248728605757746548205164365915405483357205277112054893085671825399781821581725524827354020852323229222199360261813933750752494252501382012548833308364615097380892995547646121326448875454035110482300291227676032490495423639180571195204310804868084972744396733172712559650140022015079376795713431344342180334012908132676774722669606088138130853622865702265774939622489244111929650487339288085944689175545862035975447576921369396342218991834444158790946329237936145578520621848702979119728382237318955338906596427621243507370647314118338701903786776634045130595787857636932176387390763393122776962090344857385229628219246838559521585264540524700834014282733081393458778558578435260600315412828357098350621394869446653145841050580317473981412845733786044416641607197253217093923987416361175507728691825098816641470119769136340266578452727886563737904505146821994248961431750012501379485816148560229151739147526305246381422222468289402162823823154085053935246364658081991439469198718901867506577967750862490474414162893045734057960237460221591321595856739723331074218261361485333268185418053765937130562943398390731915950355359572183835705733517341929867317932825354839802500512486100248849876634941717789180310155800035694272007148982778769656816572777106480182737720880216318658145150374015237165455904419511498976477022774797697972835331855853953166946535211782056195326242477668969217478953524606082471788006202565834648185622513246825059767555171523282085081629066070451931541162762551716675180862369717193659704085320460827042807790698170851326346815625350637992102213569722935544137397980339284054822817781273956141238393366278678705059819904542640289236275093525357237121313379914415208091055484550975221992475923036995571751497540399749655969932888628370650333820148292426512631104339334919187455275082114598997998575018763489961004701625748195583609035926221246713681959624208513605922589531960107295463498426913159769181903177094686206952391826152705749369577677042451476742077990965545608717761785934522052477086037043655154785323965867198976246567289331826613214860678757729270860851828646290849097177648833373005954934482232359091668041175895591412695401467376588638504587692648274190543134835676337166367339169842998028409134660975117196467097898122068255305310522938939399943887603819212525642456275015673228771195738577121726953143923221802447375693505532266840843841961876047576456496963492991517214128965450574535913420897280837915321543522713202977093701505966369859400196315883782188778166522190586608355500534283280459726585511780342332656133861294802934847004526740344061867643712991929688233510379041638549600144365794712801725228889784722910219885815224041665591636724986763259475610147014485644389204458643407825893652840232656561714638906431646502891925523374388669801844783652779910334587295239157075066568655546871081065129375924467736244022078606772011854529174529336986185441830805404760194018534344566849931764207117849537314759519549020414060051435771311383615786451192562304024511311031201695850303564361523860539711268807784279551693282619693522588983838744250590195179790012524437213109871906114674633751027760336716158648103030285124840002282297410599261974661941963470081342034769163712655835677551625750895192365293867837454829500582165041506310903323392587576945909384091107417672863794151974397444661780072743941906974319267271589706529347183879776309027100948357934338110018116673747413040791402840750648945111164931386416671643659263760881500572898450780530487349751874125820236392234120575579445177012957568809687086775537333604255184391004749904758712512414910073428858433994059850582117896822572581063968295210925108390778741676519519463252610794194310359764401338514759516483490946876930407439840964334178706568771972158018712045913431056215600784917269466335541911581565181867470760414705503530550712171454568405093903773846755762175186847004048634349743765740870425424648482547179813725067783418828830965609666787196080390524347055411241994149688433422023814246040650008458478999088176920469773733426526824238718446225514647277301500602528974702042523293688181340714069591997120552991437992893864747611282024379989990047430799800600047153795398397512106154974568260362993361097887898480082800074489967190379062660607704489533512447375900363594867749569569273059666973494606403720151085237050402296267232574374121507203118113664058164869046471470028192858744970602649978469293800719537605290257893955822828270160599422919664815552269800476443155580532691350675648407472100476184136276933277549095554553823794226728794654497581497278743907029888252250309876040431725034567545135103526473094330284115166084517283502075659518912996797817957096982683989097389516276880774522760859827844168066330818050533277506789786871035171316660973870527835956757906483126014704820815831442225294771384457200509078309016960533925189699253620560659471372275940753135367834596911898469892270467595048432567692909145810730366618144747894472762827255246267898868385484836194484369507009389854365068162342611564579900611355811177684357864270133111009053452087454197144359784413419138532046850687828722565248414506419246605776958771271248110281113247108675453488548887219792374965378068656529223863903149470508175252196217181552309977652184785502765997382113591989276847848807963427770882421520929295512999274169715649899025589249735372148515728448888247358928009775228376128495311004423467471099871422005261849194021985770481468385220449234574173796743504338812155348685979164190174635072294784405568126181059231660835352045273486069668664195666246438401075792835313390095624623958738176542681262063952832141497497626947769124822700324636574665854799103291387038646461548932029659149152661557325398084980159221634878837332002808409655267682817062862220118813155116308588887313835213826772517361249981120677562178660898723685837693900585708408165294685018185522793717429287758904192745546063967187301972287320592918246746788295348024607337322957491753315831757925597839565119394614598948810603428458660100661142840094275381562255477566310646245529164294903410267740621073386352457862442442236681652394821690493925362773003801988074546787225668597405210457042203675672086752463957357434975662745970449174949771826835476142098537029582810672313780945636003339168763677848019593107406447942755140516424973276431323168988430247415334513437153185346743259049160628965471222607666518070116859629147326983246735511300265548025542496183916694721015361574703396077693924216973952304629288830533982690986162526378205758005003465449576344275419333961346523124077461769979853731880805141249311253345377428989890307813899297970190111093972991728854229099016857401401557049854827991327973761488107793740644366618282894133825786675575242752629671297581692404022266360655757230493964521091090942568490909460275178763170553095301298796248760313214519748081157665359648888062493082699683474558292326274129608127996330156113202322266943599526651040622399638150201168740748775213453022713043248525284966973777797678129105028715344390737272320222022651857699255816524874902784696635125319869589183637797720883646415294189009889350742215819249370532134665129549018024549580566338653592535964882674410680762682272035762813738929613504622545121600610396343272301890768021859444270564143187556551260987642332871472062274670750497782523634897626217773961146630074922974564719971023409774979404373479972983594491048154501538467342584898413763310543990607654535700804392418354607203688161110458818602865870538473172912808567049495108586520042076801293014765191476154271229953444267924038724033592704579417965733387276028271865341911650294015260131347886013141467363171129764161517110147884146691664214261532629112520315468416013826510058428493216699916979738501200671527492044929237988361579725105089650026321214883687361959662700882427520677257923270181671673021315319462871062958971525358501850358835987126489322393817514400461603366328032584695259883093969030642635934117999553926940786965908744757104104379322311512596614212279201491421955300176538576241599875509341806766936042981502114234974756817884431873938476951666784934949178228650292821314375697728479528507821034458794472905700204340697136367004467246286872683777139194722919687744121738193834586967239659169609829003625624951513202293862348691636790291628005143354435934326700703123190018878460159929630955277593178607452440628003114817668946537169102004516380104335730858087336029776752444937292043232269153914012599931770151892048593630511125628837729575130059503771927667622374494809159652584584208090469675437770238064997846751847152454760796403939786428639366543919482611037917016319320284975508450059194799091302362831071932047110455525034120016363362331484469867275515530705090638489096730357123542249012448586286003887727581543684423690826826793992952370285031386196469128078784553042463365730609843755121583930430228966231357586566805663950837062067977129735965796991122546028787608942988112431936596140101478004193242208064497673673819506345288531132794620718233588204066662011792569916897399128205268862143254580412903808457487883347730366451664383292017427764540806980241944550350945082336447905315446423673582084758182403853845683488248687002683747657283451482234175914332640511269234247197453631896483086970949699976808319247483346043022171853653619188372637132824373808196760724254472194426863387741393329251800661209701526888127404812051060277285467686848483117961202108473916657439401757696207755349912240501802732101112260498146456969332220422234048517768701754492505486830620098883213352936147305222318957259328238103226226578735531916885803767276448115850200800347951251120018488691794513620069041083735464738448644043060907724207426263176465692273684682556273316840172407577787426576288684240260120526789120266512303171438523999443117318493545459325800463903137423562564430931239722459616967559269945638672559837725821391621610418260167377457154034500069079131632633318436025825665732965164074969709475085398891326408813204443174104010711939402431829624698907532621959680992728655259458004529889405646938167167470541112192411287883531587868403180595148230097317342191339285208570981071316938377941953288092598359367665214643895723444072440718743945961136019821908228491550007635679398279251700835243227808656607546387067671897256812377913193291725351360397314933538222282258936868245641279556309811169689518114755587143432207572619255272159283197796914764262731794893242062537158203665071680536363396063404684696800767884207042206889603046120988429540560397790130049722489334649213957568686900028077499262697930996155179905043872930166020206577373496781289026552399935812480643521842712702547177216968791425924396886939907993854914845564692904908634099234821853992740530546911439536167847537063145747655986325674028549871642920517033230603660142978546320112594431434919933084116271599723191508223205018516992400527653273480076271350344945431761287965346635325090767752371445279936569360535013115987391856880890321526318850457091777282935348589647877944918290322702217432676531758658840172898465667323927717749706816995445711377954810222385407285344884622519515755652291566023726652114702194947652656682699499103130153190416781128831038390751466387597520656356675445496915807577507201403561063640208171735901883260260342026357757366891712151039302127301884927459573840699767181612390534036948398563163385852478647758642471549458986321833930074961737421556106428447784801964667126620351109071708558466067726781603084893601675699201188153124704181913813249260958251729224469620439116500676362356790038034116106238025066239372666555803968593283664905334188483403943882048614726297834861493943147710230793025942648080437484681655156540108075838038175322422114360877075788956698232296361161822931106299151775595821739335462057925676794254751213757760896171766432841909320841076507098493145596701080187245238308331992328549228823677197548399453318381350050461400830474563524842880419965421513569214950976174600092161766313023085822764356575089404484425758722351671358542541379159065415543256797778287254851407726406471767100621812412117686620749222868682645330312923877832685587362353200455996414909286928732751965621855786259138707864038806007207431999200800669116346956124762302813652594001464182274434662350585787333864206847904603803397214880531535922210869698604849014938050619441405334101465693373850717308497025590623471954780008895826334924818138156515573898152373977742446404598274712873942137617365010620300932268204702428678333410406126980928048324021837463353717020198088625668078040379052370398630786750992531228058160884164475410689337890612088268715930753677199052439190625496945294873021836998829127850662422261515345797892215793445682738366098839999442583122456082074018149937632232679964308770689336212337615022219349936480536861204096440185709043773304433804428661617288463738195855305348658950753003371162914196134858537075032799229803112638950074268314082676614421026098777949851017235049706036592910965154168834913761311107125846764128684083947021202185995060644502966802328522719355107735189678288306257656405903945913384715232513986263917350523457664206612211072326827114000590208088064908395614088601109457580610438981903259144687184776954711182574050655961324251512382062167427517102810863163771182615849192444169077527256182257487955793582863602635024648606760317206933347539860657590811895461203151887796265998977855927006605832986409374966522619782222252646440101666537286527781846512537068644479874782369711463687433277552999400456997940775074811110918079679384789454463524238118775295758352497941427192023382239411050581431175170296447643190151442240688254565291672407291887396491907893873569129522175097855302735532074150687596416111557683952562165714586969232112357810569652805669737054579309632978963056674932359019097666373939380556874116452590521696920100568471634614243585248948374386764112402143574815701309732593775241675022083275045870102472170867369485010188430509403190575078864268144452527950191521304746540663967929102004207527743640823548908775116210700981846289466172384941965435902846815932540300008632898509504342359714080984651945012867291774330380389308432752358522367663181446713169169782789807293586803292371562386444631052326709370775406748297255937140497042513532127176857707746798678318157919025301740022957554936847431184286299477197139408262686315126676618238003868308813357914511486682552939930613970486806210810939692614592826718591511650783592192089817142358628380248897626116375482019551646596635699989110101321585388291565888004104485301928990685873722952652573155364705725838569637937636579610450593960477054630607630570213102241325864667683424904178454750701710170912864210711968143701542499359361129863234490025909357212861985335098238423480401391073696836730139644823272751562897248377552627332435243679612880094832551657432670553848464258851986828117441437133600971283081732520957019908246458993973115887086880400703212448604212888540438676209478270686189453386109089755936864046131408440076120846461333848281144963130794613078283000005098191247811306684753122673891799344177603317064295341553426279547174514392056495234610608614498369717741901319611443006682326137184359601171558622918451081771193257303505654627008086996373870906149517582895191920094714728413850024296632188089074610159575675504917717256753624815500859202460822058480554396854893696762180498133906844232839734843769287618193058041764612485499945878083668331687084212229822388360161477197559391259923611317261918000378928421425608890727970230261537873250932129333933491012144334797936469241512832223642967888832452567497873270097304562735876346601533719122306768890301588935436812319583496842717770694900551181570425571930729348578429064865056474617953528172651169185714668599684700607711164782944473801238226817455819918510369682545984208997305428745567948340965515304247485991746760791114457410721995735473009933184711794554506545275667064800419619831837058293397982283725387875813106114873210993250746600368951202832947198076988437557167355179231057560334847615192545245131658246209798200792423938764311331722255585090734140197476329282621822205693059820322400210665048853676978948151497680635548588423724141896178271075207388036621701649342908493221443548892853478744205137619714479822394795976661991906852739611798144631783345901843185295528633438832859216590534098743494204397838525660775853248778959224603183716354191762587358928299133983489301327173084741814537688881861715996535990069277877645788115025653664210027480580282588679843917374548207605399821818352168647490492895178321944703691498215465224652148553702960567233280199900574776120072667046807440852651143841964793726343477200480792871038707140467004825907408186851510396176535937010758082559574559796252875573764201101812500147413012743089640280558277562118724020879479209469080783221840583639110869731761155643799749619123661226059950478752484935066860597823001751635444066044926243080833070965280167075827223020542424167298813295964219703779837034329993709881104603073845445729561135310661426928585666430257475790575993051884329253701074351292782512124698808417470444322320624404454633129180176004687858844814072346451461214342718312611879094949804177475073512253407144248156687653556786791054410035091168491088755068116790476484489248215501219712475978715616384900824450489137342495097999765013123018264737111377703371857120463841093655989775812242852746658099747050489044472844270608010779384660937987205672697298531453596905724591277776202086036020373425025714963012407215371492871752771561044751883941265180379199001175691513763773145513326118332044069619475191164423252182376329376075418922584323912544053035534236550584254762181644497349493430283875965520876775991055912073078304354280572298728066029130156144829774784673247684141924686276798873848327292153656215588311377531282730227858564868347559373370533636835061812544994182076051661315178520529513861906669670831971400220815809259484916632224779751906252469817413535755705296785403611130406785955762563832989183116297733516821245333216662102996968741758795043148147938196238875795735378439196209216828652034586200432412849103371316069092617476846663273988362940743213460800514626016678598018506395109744519270880392203403931238997280924496400566552791387109862350490916662817815581441995195759600408543221869399981008348494020413886774064293189736847861547208067861456177586888194935966507920311477956727234007741528223704441175190142957009439622405991577173409229960607938978149995318860170981442192400556461940801046739491614020987399809668423904908766741141635960177119549214650788739993700471397238493295907470639929126833035160559529695393870492451071052231491635261663063888987189662612592237849634797959230895680259838123245553005046772151999334904298649993977852978792068120907383289044611818524403745617915995108477156098263297483793519337157561386993733747537604605723782312365632756264017865080972983573179563654083318560387793998273880047283236504861047719346097390424002031878575430227999619682528818084494662499275725004289188421625656917739491075087687319615879684220143551158659581981643411811531517874808256930179390089531907231666387862343707107686322152051946327946813374934303325213049818001474482081969264078954127534561586762453580663405721096861038930100283440980894725985726496285931886231586034985146630023188214539931780963423293256408023175984139920525790134928867540544009125461069543148816044658920232503718111246999596895616285285849020843684486012401187327451424596922037602314749656322200562325171214232676739967596616775896979720192813174407726857137163320898155090466674709856621128215750712109098985629163871551387108639958751787796068707874871362631531696696176171027405319118357700731016155460643351773672195648731711729784294706176120314944600923815044803867153172861461670813365682741517618254564323858960608792865733297840290959836872893121516510496318708669168346443976188688200313989111236801333391174138906309128031734455733659104506658443011433941687595762324512715633524350910578342993725854678517630933953426766096549015868923245507449581994148399287065589460811959417537554609766442198870459068684480252155695164974810176318935259933935204283091121005291627198593822280106704095346965967021782479995060608639065172256322008082150659030267895944093337598605933630392622317745216276244522435587956028371789392622949042244691978121304156304851452702965517931014044358110273488481909902939100508539178745784994416373853026764224751901467622532923254827383980276754751772067871138900329503416632846034009448924067401960936427647303846395587536562022830918623349442631530948412382732811674947762520379716426391073177738106898658372399746050533994871440879574874256664919720184734133917287575034500009171785018335506320326506564519675774042415917653671969735550447651402230367217368367669231047283213492397405215058085302183010994712410103231590085165278001464382694503098650623117665116249157626348781515018015100001254793290994617081578159770124469389894405576426872872248982919292244699101949644399189830586300513311699739129842604666077748395331300358748051049937789870950026526564209290335157831842780099946852471180468183542715983995630472700283393808104850921621731803819717342278225952494333557140009204799709096105243591493705953048830872227733167007524109200961767981910705017907001918285211045973966649150606700917127522498482783447449787726525795952881142374185548629921263930621203932502163256349944198009614717302045419823273813413403593950965190981009582920983567403016065540704673798350325608503950999565865170776604057711835998231300435767678507808984683572352192804785249418578481511601089598558298589251863518115407518770078379255496589088290816308928679370156000080098189044651685538378571383951102621252497376553326803245642489571609609502837753080643663346503250315429772988410603433192993033625479608222927383898042198267116115069351180493110013083334396271103116099852871753461834065320350856069345290651261140551475034629100392171337249865131132174509924101601344233720247915792585732581582550995758215867384763043282306411755211200753700378783088212484885122744347427849268846526651287643577212362227691002043115066213252086422341261651504952277481947289830669878602892783182445150409299173837556890605818680048451008917627163630706679018887915873894313229585592210880875637364978495734469922540130898131908970970058962245549311942945537373043735201954770742234550664373443051239082919451926702154566705012741210255043507719261975307900528155816051688399167240293971111379222505129055317127294946555877587228750496498653466341391516668000493766135399299431605192200264935316362356321827185545397309294044272495965799351112035148406381488376153118496525970349752383969099281462136319001941019954163581469814554750816534170081539305519294627687112010622453180782559396442800043272129338576712181879959732645727359960235169265285007595576583422982665216228012421329898841911495976531547118713119057670720265099191607020979648271807543166643962679912906482638279152890035587013638804754472547333598399712248859709293750959846501954161587192851989808032964029546806331560139357872974331467864224165671040443946005516868333619915410205958371287863837255224464756091187953318832868524951067953248703264428408165881732982149272131050218179218623440284810730060365028947527496319954359657257948619052201880285180173002000677328741824340596074409180757473891535507694220990786508455435161105685995693860781012326657662936694108867676851114264344810778845163285106482669629861013987190048160295529188348879040919116626621550376039361246733209311182764520321426229948523893790855148610053918606989058257974437911830171868227098874713487094298809092180908597748715133272849396452235746424221151495874577043720627422537736293256462646168493651936013234003298607239467215713999374925023553688797684055240378496821482829816733298925736083495877104585238452825448924553874147679994487428968783481031650252367568930686712381599329560740166890225462892453805859824641903490825722722086869855710600451468207547178300437953547920669326253602316989464780480493594415001803736764633501523430668177565763615899297495642571975276033931299804046499833501538320736141995815545881048895989363532980809516711965537560826377980135772498509488120096735570945897700372945239763996157006517020562123428863104088174767370930695381455725111934094677414355635541109973221755778745192710249797966668171487301167175867347337744142593110655101885914823020296800719409184522424230746041260476346585274698034126429434485990833696264242620975659222616271011530676962860442776028783016200485721978570844926856390765113873651294676495758226839448556087119344294098653358586789015410156639806153332769538876743577026395382711065748440306639887979114325627724719211508236944667143236505491609197825950407660899599156280159180222484007519252308552406654190799140593242636089229630523138442454578705636629188137463096063075668707798863623981578616800685310951788502913919841156550570368061208067721087837134344907034996752269292760233190436645195377137544905073493770578672159563004867927425657937878342764541803271495002397782764757849027249631499333229874601558782777398247396823406353712064996354243455554902493677598192361080673013343570315061513952645468171278411942204177690343573958965022824133701195859472455919501108282237858424834063668545454818802857497553754887030694576885375642166618087646470298569573867217404451590391465632720700181527582015882318394099538239815254181342002159656411322613014990947437764623287899946047650695119707258422193717159237042324581218106344952095301054421351393060948332219150117676230658257602663256920396368717558801245430071027622411155273173224498842525621255062695428753701318574587940705269836416205523561240100268180902247726692317638386988504620968740814392964145324569357742999936889944405083414662648210073333994257963252061003289532172403592263910224606505560837497416851144626620829511936818969566753135939395820953457514170681777612253741429875003158231546753068984498098247175959345074739556374872746254725874160003259054506784471735188609195598586386161335053316576317818749401119537745213412559159772236350183474351375907750285700498517786787458598751964595531157497878411942389672055769242396617773801457823761620624431562794071071423170808483122601871831834581889491114064864613857503185694252956816923092568644451121317124071649678887264266041682961390303559664794504076341121844272875827443894132006751296021220771361132318689392864648042738572972777579335880057729074493370670351593879563943783809657730711826932683226715507688728321578235083729429060832287934430670037722792629752056694408491112371564497669632529002464747768168642408471201139378278967589228071671763461682363673162606159193784068276355362381002389326577037430245255856046705863887049895178037302029034153483812519098339291881036525115457947151657568487996663827973434616769260145678360787496230775726556465905013475934496719541933047872699280149913800900151574766836086572310118304101246710553399110924405551997807591171650867932591581821265719019948823140087831130267250216101267336929814745470441987613372903312441665220105359407328144222324090217917639336016038041810232235320336110657412283641432564046533104145208980523039365343988155480208378921598254987367111122540700519619743713441559495063171486103895089118443926577053772146366238777981502235409936377638049436821941142030158791180085026162821670654839029513146989823038979977393809351487500746221084245809361923309557579417517909185302956185087780770838956911210191105460877323679568863077347489487076969482354684965241640820999196959523093022069175094841715128286948695286736506930409547529403288290320131696141794141971194516519434966656422698217021963726322420295828406708634294123102904264727684965775283850633721751521805016602989436993072806250946021439021307003265564140102015692621703721038290311255281627552674383351466928403756670847202307260787246692615334040497354573287699598369982740040735215926739653418412837381743695802581831902257860632932934839611616072503830474757422721213558812837742541398371469289786039119002305247150140194491424689812259250967848390951314367206350825816350009988414287887801138693730038318080676098905786597724299463509155086971084499427573203100208574783532622733037193356961006150699517090733515549656456896733030733287943226469313569315457396865033347271887560880519476643651968690145051974466486867380986784704948258557117118978397865088772660907502500309468862843789713165251785528911299089747211446825174782259724877969842504708021477379869589875764440984482451329792521108037314781093877268579224550635313046190619400207278971340351853679536102665392948984983573705711440263720010904193284275377331876143365276471728369974342295136481102326612087160562169319159666538116588684196997797461092301692943873200614230277760772909794044318940390192483079575291146689175632891921948410801786439099675782533522847234139869804861018426697419677424348851735441823908005352675119647548553438284615852997565150416744427654418661739275855986649132204468278761443052005352892033411128607566365519338630536301074641050518487559505388478461514245591352818417663896513574892777080538589393295137640080806723228235374468320493546532244159070598983712554142620046927374882687380697254287214174358138211747471119696817108195462554661255059804575990326030856126729586043010996406882826712997358202981006749530542922039616518355826097880434452920159788986044851034111735044542658052230197276084865016177326758667453459522386615934793795334092988863099569585026763576341558854270866778794344077945280516573164500225239780522416083833525962686293282253867372800481226837578835599256611049666608909168616797307641439449436338955533804968490944809514156187134844148216552734221893450010156349473101235987560582536616813241847461266061476166884048137608896876230594268967645354686530205875570545517055791229923459431998453553003339573809946666304698233112165205136216064020422431512659343482299678078059665593203723256986454058392354713541487418012578831901897441829114184771585760721584480829520859442274973198766564788227225814930157088782175123298837095044113255971649337415224745712141326951881845895898669468786653055138605605774130148573147906537157643974492889877260071165379888607396798847914395316237912674471783717159805296049703276372263187980407520467268794133271843001583464916908036844803208581242303493019629980839075020900804903037646301877598884611449831429551931739568474726882037685688824495258245638006503146134688267208449178208846827149732312061335402116082250245264076042005588916031344042231352721628474736075052364479997705092173444020243932960354429626924424818659267406169645247827655222453404649912118077014409831805098150677422129147272462512710983719213636820939363785640087397239626939217179258983326569519622738130582348579100019218906895851152266835125469780886003567586046764025840341265972457811756424598842303864012966545392302995986780395332406348416893600218266893548060163666384674921653244684691092619822230308419987221804248999214722936366574039855935729250229440568929143447584369931134262196936202252914189325061451596064683917767655494285272225992783861497218049377200413075849919456760501389571498931343950443935609469295514769051050733535981803968716617590205256412422200356887528055049443169792643431866927718061419895650748754849585756250009280621645208234816528528121074094254730500945475728240110383024817868652830763650087595394292751944535717711003333897353747298279410813450708501731282312607801181951409160095226028691609064490150446127518097676149392095785170043281505442617186938409256689795775776719835258967401416100709774444201902798014082990212235703113717159422844462071406032744293329665989681649577786241969458401174625542826652285786257789162598827872366990689417491097324053181526589719212988967349185303575789644903076362908566475909352590910821880797333414033831462497356057770598263746929430606995271211255710624083593390098800125565610994947375157479975060408703255763666076609050111436872586909557180463034425094854007035172613470329834265731862580612957925205159489283091693606536287633912863193006281564502084031648796233392579504365228176810687509554211217955243000995365020045977353475135171131381362846417425406367253500742285884190705578247155748926120164067235580414002968924610896099065916457155637018760935803950343337014558439370980124296245056660686309997192847862215871449991398296488259493078528796665041417850020087808043870384293974023190515123730916910183954737144931395967963848818387496816362261891733170664814483016310502855240195592753033387847746814829652426155671167941491732359136291848478919709619599034207951948593821698951855686202481014295034132107324553440814019999024093267155155612532122839161476109922030212222514977615707326263366142770116415288666904156073602773124441688443732493739684806503865567129629774204267217044581641614038547167708910058581141527050990248988595486881899582211646061476704447774748694079729041842148696973027691880215627974275087178542290501635978089953026581996433724734437414829659457044617882638777333172778806683799380208586916121451578737368368663906963572263847135601133146710196148004885058171494695587942212830029528248244026715740528521513053288873353828375697126028547236312080979058925595115892975717110113695142792925837302000977701568118884761042829962283945156130654241156174280724517769329184750227327078975728912611530371905716014444593104442710071912687286396082196631990161597382673834902555467638288053556010563640765308851310042001072875622938200184237867592092795028861617774019887859033480507644313410552072617876617175304221113834382033256778593394718276987109633629291797279909560220080105936109220261592241492914168165564705157948989258729599853536081020478442557492672242833473221585741621321856011446987770320516050787816358195438377322214761950160394940886540442861308294252775542313974734964639479743177510531558454186148874614410758671630452800186686413975808933423251572309051729645387528731971259877478271075485845211956046824290679318412595278646453466397422724923844394781084127308173106176831937897662266637028255813597254728474527364897418096558545542945228947873637368288157592212266328939086092553292486549229402394205899978147310302650329495064701731542334547930884322381327719895028584903953243772040753042819839580597511299950219596172157384830225204677601507672708942081415306262954083652457622603426413055476220264214288393716544636187653931123750484181604707698375923591516504100206313389903831802749419432742541964091867107280496676061678710111307871410922537463083474691782496371549918476929170676254305202065884420280581448319059620419412287031051187142550103364092733533660686804996142454852883272364844520239918609485661939147936206966322624070027167669002477214854264586417762757100516753732652762284395988804313542520044964149787216563030616263505881850963375040639891538096402749943087662090984905176762730325166990063838758332988365741444223244607261911041142584318601280521527182892036511768200715419823329259905000903290732768448764328220946637162381012677740379405300275698121914421751501274360821226142628827747330580142874049127891559417595567513249806970171685801406190685702881311313289507206594981703673581135085854567106919237170588318759741656020400796348003454690002341350888313588207728893283097718392569577344808522894550987881869778943224048229006282310068457329025604498431454258295685544046203352161302485065622010258782126060076873274925060911293928325920960667425976039292087670338542725717521558673328415327274493051276853745769321215266064909906751824697203524192073835793681300873614242483852693274235853908782196286262344121150035289778518489872441414258456628773945782748715852966954806170776352004441869199224826878443661131999103558190844712757542444131752868994046353528151778419868805531322064284841451504899036189112404999920048604516219046659894398196678425031520570778031513242586914708617462881852250106278390140190711715380611409098831913007123772756845741966684104553720154497968459046451642715919221401197485124992282441000097474007807338832237530483188532091292981005544895820097197498791322460141819612556122997240775835888607474690357110880248808530194464716189214824400689049266409534566610274227877382391394252935948303903997655595739107385001553664216038362267818764044597480979547830975859304553611378465101577910391910658758534358771734339772945759480829776356348874294294170571029721153682351865116246683251009318581727506050820007413668851664818392691409468097444198102885945065683417050608470146455676500442892271361752224763200325706915922264169873856765258668173118676721623802614210317243665249239398097849063397630477419977877380146592717123318343607500885976778043463695159449318652283806187137363665208181108490077669164662795677638462887624004423225186639204929600551768863662882901190431132052932549188057351570562506911742234628839288620124890745487230036165807985937992962218093732445904655203061159194426297167948318539715659313961399405548029827052013587738233018624562678279314592917934461054238702775712035012847836752199309024982875091951246484633081270819413377478334447505784429056949007879218828925061382868014979852096234458158511917021367534662068483999194371201130582826727890962460919192512269863615591599738633966613486758350100223043874562597808340269378025749029391212476208834715449273347938852933156013807739028008083570542548382105527783368789716101399728835008953522144209465660572264805351885287236765948043596546204913497053682105317361139427307673631282208979467312443610618182887699514212655527694833027432797458024334398699309375670857892565778625419152020721934935219964576400032433833849783493388147321102148245688392392849823564546559590665053097553357715739690049278275818570681459424420541249299165910642523697468573147670182315159566390307275954069022665184177576938627959700458202691087093514740862497644672599268214935008847152185743064877950616456803413724094281036254389560740217942227264731066364904852941917384202942006758967276942974648078593114046171363681474542563722169457807281093031951821279245510698004962851444839115129110944135957230703168121937431624129276234053779650266127542425262186004181251687291394049722259165510028646863983559642900839395991445725535843385730110726647061601575820546230977581275334896200768900186295684818970855156133936347098536496578455088837389811323824113029419399539673259860627638393890177676445660159985506710494830958579448769154687266047732241188631552530189608144342000154845297924164740472636391346996905904660042701393893281545317208749629444472494350251882563137633137359498299949957976399854136722423977391527698547044382289856218517862095260156364443453934750142456652189706854015078741493510923809310742985988960538984466390455740968517545810934531411672693551561327428794067072998055299863067804367832203370037734699922167663404281652324904962498193511461373301280203816496032401292939593784424501604910132908223488666889607116171214404722918474804042272952424582584266841737945200369019520633780593490471565494127098060905201158436155746774801844460991399855287048471926818855338576330794685438368379036491883123205884044280837620078707840295664708898313472736468761967860989835446108425736086757744173095034100459746691234729050437240275696725181274111781327709295499289009388261627438613520443415430497712916716957540717456426452376116306179673495707072428865009548872003843144860262291985935029863336452266499678590008122705808037936104534586880590104437920248388880096728360343960085069280871367367300659090510605493747197768720560056097159181185519964533718013754031651090538491514280025079479255330651160518866539497805489218860770054194052954022714207033065442500971674245771458655159960710296482403772040323583503954582089881202383999699868673595606839795691756424487964379405065074462335805225950680615949756177995119365226122947220223877715306955505776950134105924245226197609548016464508521211360105509590448602910563921440869840380442341047333175649185638009633473869781405421171684597372501062115844648027900248795485047612434682637320327579175155222509897142548495774279819794329366137418520042736164470242313444263166590245264612378274641741253760173559099873693444568294572152861083737782405265801502637514617735731081220197639384125567021017786453015555314203018830712252942116532293991034875511269337169521347097130903231753315145583784403085085875412714922277284833851639521720838009656697183377082921024796197671744042544961783845433112806942710099599990943226880050216279213863752656031820224579617167246508599028132810717914021815607434638901822295715230106620326415084155870766226391078428293510131781412397670903095517964774253184712158013345871969661792703859288264723568961626742247186736059070611359710706174240337769521055677624301260587044445674156026436860642824743624635295273730393335890320959521940021440945593465918489762692056997512802028207497669204740976335428901580586525428846790679492219102796773442366221984936979897112251535706538573160290401429069799407622880105140706713194689226206978112882605132885235889001793634307501197628886417430660361419703938443348342482391412773490671430296686540797696546364453007656195326955106523869383390780053586839383139719480488117997225273047495863464737758582766558318488497155122385642217863717538405295084121337976962549679298699394984891311426683094280889963976708062379869623253687840509550895027779667227438836709298546065308074877374618547996609693588925248115927575989888668965962999395717180996427527777422601177404287846029474384619035250077900344164197133956696365340670247238017965560167199888750263418221884381915093142170150011207716893463995941189220702706007682821502969016813542768985669536324875408279748920841458978608231321066205263776725234760061116046264850340131136024497226828507587370449909214068224876341151029916714318774845355170670851530204045750626746577119747881304206008545873580102451501889559503911093060413521288188827299774804260642889080598426451210685700432723667290467445020554907722005369507194821166909671470675953237918706777974922181208964281636626354293827895286077283385104159032141289788663751867233997195241996515434438576171589682419025737696040241841450038577225925702307745950184185239564444681377713308850797875821685062575966834718622991447923455960403486384075293921459756947593042687858117705273158017488869832675356065866372407848085710019531900023109221182959632733584044576496978587899859966601139937614670786783447725392676064710718764644314356825883465702714327746332582852176686655981222959569858628068518503627043454458214841875677315568189481566560245508921311279592179417806624364934820583019265023133453055088457140755313356309529172142088180043402944993299290071776171630533052145372693923810394303745158438681959013118175949155352432346461287494147325695955567976093261553394680531621128346306983097492763748194651238209976112528120239990380092173890428379773663613872700002938290379401751944045481951702941394058999722964770240451098078188694448979254960942844838313059054870472623039913722683586984264072873944375904579235237811882783319242686343760231872765634449614250771857458006833689970462999783797797478255067117230483741260594467312695455146602523648184318534591086039104506591966111249990770341475563905677038220389801213542104335362896229171394035396845739323248311267806503577166218904552839102294561487514923613431063317882076486430466009370730221261477297259557137299759739680035018390465215705956002455293313356935375491764518137330314114623485072189392915190859154471852860736179598189773985493137097193001687689037300330524755213559087391619621923335324199102402682372826142348103201792056984495634331451393113848957748496699564561902971366144280214137992008621377200486113468327261340819094125625587225710837733963148998311005725891127579685237581746816401601361243834544302461784803238060704395965580797272383466504891906028717734551463007894368331743581787829606456854130576060986150132588906307412959946165785875260756772817462717076511418251414028711889554398139980162077108563575409850917832712181531830045936701762088259734933346856493982463032412077809262634694902840757494828320182701100100463477939213344397435214824615780783289427631318517962077003356269496224627642185632519493746587263268072896554933537085795207827252478425649707757337848759930167267324316221371297169895387440121213854302767853022833140041391392334099921789553376063575109032311165664467379595533415774614520609623659996288552738023224185428374520233147116403728983108937486762758100961190297302290902443076409511637688910897885260122090301459207497879731135534064192125124679313099239270069951799652497836618194159247447043524465843558383708657899730795175486282511413957683309128235113116780017079207898415931378527835980334571295890185962648446479464538196508003000496249418217261000524118052689605636922583096105983019725023668692821095198954066103461586222768285380763389959566804118018104832205213730879403721354512116990072432055477852875451755774753351575113089697201784730782486372312527297032616571133481175219392235318764328030351261566681004293562631949111762649091341928940909889670893967497759011341632317212107246649280001809990729899947707759263149044899572828235376746063292761216947341970658501508946357978581101653192912435104668846990540911936655258741449176934525902785624142282079732530055485848859959342553160198269528991717033881160742150558587503532923975256211346052166215184436132325638142782549132995688239906212164080656728279256394676180583494143361677285072795165749445444772310642548284684299748622625858482153277842991557796627289013831122816076193136145419502196382935895589354726100782486615756737253819935688380048397444837386740822874453489075534856015516437747587971901134668582874241398740485665906102775334799947476430572293408779301968589563709707909708265948556285338798044993540460735769892049783872267488088292616805469926534104308117911242454532492549616223174300494344690097362542326800295270037463811257680605116172394487365703228618589956750449466508651378422116291865728886394252113828833192468188645721610732403084724392002735024838759587915521983374478577687355820047572879004609125670364977825426683306480635365101905604258623184168239888663948771225142868426320753174887056971797792336819301788169828838332369802684389391900916203368155501516092096578875363437908395033651374000904262922209234169167834385735070541117072875507861452830379191028194845240199866966592080006454869126441693403794265069203489486054722113519100488031209782404505944039424498252982514012116540117994262045838193182428724206464001828458462810142715729829546762869311361472283568793817878507368714600200013998611830666279881740131244492238288215842607368182635989308372812463176591403156267751376251102584472849102058753956489036286025725794934558140277660031721130412591530656239105482884756887905137901386689877422577240790470365406820078539138024915797435111834322795190299070275640823484529562907488653816619202894235734406869229219450848732766215759395250650511321840815988660561978686440608456887396654633367508759860574114161246216920213912369772399899439052208922120816170147515108831850104978216683727822690921504343538376485009407830877337149209063564564675794040660273172230213006220050761410368399429099495980677678059923316070488894132168817739496596838735289748380443303236307912015007540146737771937288707902769647383540950144579884828139418861716250837779209725983793374615817056853654932042900271602676848328534740427680544893519394573127659571749013560872670577874290709754189646187647641671535165281815621006767036977534517460372543495283760013744490225005927517507121881008713792910289507293650734143820030377452520644784410048217968158834012491485120374868310768569339220534061898527991776003606291801123713762918827518081338440431100944530766873173921297513285763696311181396113303216997809149171007042923411226130922553046214649846862149624842586502625637171118586478213444933240077717094363464303315642101828970087074989285382551176540178053267899528523331180408225799830110427570593855442773969852945585522601361625560911719231217954651349218278831185882462775554714660246319703278423006790220029668175020177376173872686914509330351691586539492927221928550133654104546140456218894346306504654898740423915746851380091961350836891744924890784559158567369678024568863925417918578939778973658690165037648115796219179350021922365000460043760577702567058283578402864195713202609038713753439549622868428770737273749274530676203108518579098913592752612906315687720763474146723059564802051867180532839820926307776495169045968520694937725191255951147890094886876427307651411252041735029681017477061167975811898981390820778242955837415775295531040956585846793788275710252164586128293640139145618303511048569292350476569605233904186720747485317914560409684116141536120263408176085245531454173363213834797684872406008176331767084982794471164376683594340643707755417856727659248454975742160751920608836634449153513231849560920601276779033544409424969108093067185287222187399921019566369320275133029314358283396114828018123695034699266125436722667022010689235034255574536965780394887892171114376987726803759645011087511038720876867791032847853548342753090266308544463151803447361629225009943757597724984110401468148838008516158137647267468018910353774564773553779239489878638190305542535490218219237839061975174274384073492796622469992353446633120237788162489027445348178921685424124207161954453793258963954638777889503782690189693146384830906296459161448256927789289416293814157131788784054580720359661058435902470651831503075309636680472808813940231335243364250816608762551424536201197462806534738492559331895008620675383715388533271044253574808884566652623431570088268722811789489210265324216346837331260845593610528273501503301304608778438307737530514589515346593043664643986937228308634652947927132241773308754045832108196878598884148469973467441065745547821056309010176293039957240344744615915696909772398194483867426263947258010096496465497449052469856137774115147117494096351722146895877298862221884831088104021750771247992936748697298560283065265688500960404820234632942127013129782494678097983003481398448363464049696908786273833971610851926572429369676251468227871556386182398638820290373723990607058875869730445921605573886642697423058913273760099817957767137689271066567784874835341835874586473778471175240282521521756057505422376112622377730081296924648992172961448431857464493318014255247096846836999627281292805896152762537140213572346300205050277327325569344585242246745216671600184221223986586953221739973068878756960548947116667945332132653040814657876635036916544401834309154120725116275669616930003559683360441834533934192703078345928222943997986465944380895257826034473655199042940983821313589322509117639709199468368215222269690859038376370320758884459907527673332886437201961602874972881816406426917654587081191596745183369041839861110993600061535668613035130937583628533124216498755724910494113053946047964988959935701338050222378148954851204960191202962189414342043811205860532241607336535505227697794334451659663776494091059685871743976217020987758142806970132588972405719801189835984325854932740139600839055762506678411227944313632005239728731342976689743736902103063214597749857504149035026567684737887121330998114897528348331397287093252619252000454289826146431402973703434771762715194396362468850145510173210118186663845617133167543431159525970176098057955107644083724331968565770449386980982483440171987762684846397249837962405152227765328446874483902546666537614850882178435403177266742797753685006597540967604297783288637248816170326876994366314344744201995117079244725829883297451490562162981333462203845406703455355572164804002388892232126075678748448134118363982602872122429744293030699121207064364432231102276578767202165784204010909923200850309169410948596075994964143959296889689349703958860700531985160522786590874135655344522000613682495675872262130696552235100548608108932692496601995850045390321116087633473440883879511024181601739909423108084273014009407220205803378226887250792760703856576094841806872975933087959096149010009261113449844792945134992511313940274906934456241573260656876847555658144108132711092799860410337509643735286650940300334135347214117051218985061038937921078147643215821359730751061946029612317165622107425172723670940523276421764895666165187150256494507462567660112487544198780282972056740675597122202514130906834166700181206053169230443533199865158850418208562526303117418060255305881262598349923377154317292467527943509560696955743123560622385084987024854106968173235771997407101298570164284558919882671140991803025731331110254969420645827512418374183691462465423848715426609413586171153609734346355873785680208625010105761209514955142897957567190576621055056078256372592042643334049369096481809377518797798565503973224420917455654377455096585072999220819649489685899922280394018655988869098858339839712235703813334660368124635275894012961435461208252775025518958355912266426168823896722255039569605304024501658453703804729344416515838796682159135807956970858156463529292930294103093873809274819568011752323760354891871437268347816459139415610528696258073743963395137809961716316203305004018728159137961563899922591100592270868087142641023254657922953933795681802310072341343628755727947968603609141392706969511877757487430588404763676831985951236571406103128849651838389639594812910230071774813150497400191529956448559921679688902868052345834945013222930810716690429944520941344787671861179665670052612749854975078267725521647822869121364001395954529617858084145969468625078794525638518202166646519493599259948446276794834228249687626653398774075347863657662239634032080321230939784341158739058596470965110770803640775785414606429553237393308925511931788189810265524769015822341788617708132183228176879015440490988815367322735159238852486681280407673779566504416681132912673443735114513495871580780507416186484924321081880779647541066841083109317055167308607402724101606087587901265482343141282788441468498111664602078586633958118869022969946216891096584498373481521513769326507167378148121521564464081191732879835187562480092607321072550090551224045262859866323848850891453766943911531450706504878204998294031897207572740708818266649719051983005465015835332335097518364021605995188608766138171004344859931066456188392934243853171843905359785445927236693960414936513259529487032675873960321178185641420225648244865688756768214629150882262069745705503689747544176543556924913530632102537910509951460928877051847956084742134885645463946511944751077489447761970041093215135456144066496985535838372435238774247934490458748651551785188133258349522948118390772126865172354585747091468993744561905736569159813080325976409234442293561668743794405520176253650818681355910942032013389031263278420363467729252410811955578531077501401031492141685342812902213704038273626777409345771768901130109329883305116825772091060794331709993244683977119598527625330720671574893077903902666564046667184722214206629840229809890775700918904936869636501808666494112140323999296566373224829923468603194636266713445807030875829608418775075961802163216722824668505295457558314732028132585605448825385125305075664838614970970728445747540676154842681350256182342643526120956639845974238175155802561838665463255247471378014556463942551591707181262938108126213148432363823064883262567562094149569583071113174905073186853749324127861380967100349100671322215024492328404635817875474222189839806207957156483952173647392431378306266860478424370434163121079980400435464359493056397112594673213775821572293136947983321297669525062807864940671919278971481728327972120326882048595096229775008875715127145950451857540650867993997556827359205454194203900109021854267015760489610510621424994094646482361640394901943592518597919242446820495969977499432064224315082122630675088697490793992426111016173793370363474807210193394648994795031707033601208960283711031318679201917390588087100281558126724434657795414192546368575586137297879497690584551652456136613986565835073578032142651308929750192802407499687265520476628983693439845632891978575397466236020484562053854339263280890803641920482532447797755693809191720505438482436045698748527537593003282711055431638425618948327438451427332949182910841554723194023993874523106375142427817239123058421680148812477047609337741500342215345314986994415585140643953856166510548286097808707613886489375874080030037165424450551883278042003321037455092822050378244985138873201086569942534675847666504112554263912933117653141684828065869051602677045965182985045791136886833099624695497316804933045608163024198312756074600029618934603348720189805423430196724104299733519854955256215366455970711060853535442058221314497103810185684554594338645841433747391653635333505604017283005613229975400496819357680555530172143907663902479317715521953877336023852215332132016358262486632597210311669307828070570487905905141884528138710129707492286988003717765390863260763589476770566681095103258579109590012481828785078208648704079628871230494615957608192879397968589428285753704586658614951575580163789029584862214669125928753129492444886502618802142694520034468233012260026818644373962827802501061335763295593340987462297527335171514591723118082086692927510006960787764448215111480649459094743414931640086461282290176063562481661742634375618214153172048153216450679254154378914738883463947291545841177862416794854563282638216327826000407303504592010403168404906414296628211241827074649912508808405508633871044679928377139441951124786884896243357311325447480094811985374582722662911432412631470215365516707954117635965398616261188328474852202719658183087684211743431484302107258215305875975465948602252288321452602928036998953264435560184760543009518092368255400263680367224070514657171787236096758966757318460754336937382336443263296359674438908070921240580754406958639596849479562109125426668642653332710348144584384052837166082570343086345168768620539543585371633543210167309154505387350079764944216408080062432763601140666157155354536473627255878857188491268141652749111945653166717789259818924250067030925945551807117998832939267467500061664986838749926762832012550678487399736324119464288019259893152925374692166660467078368836567287171180320439040291592103409150902745372490838719965909909532209662994177541021805751603269827600987499366565870212092185720188654832920576210977356873455475908845958143042041964829785918383111387225496321063088493889852791995603600500535600744299581678939381328731888098009287464610278769376803460023698155302957775629826007684238713146991683806304499606420952295269945811499706005868568871198128979195281636260109146546192641303625621063480863882423409528907913070388659029530897967802835658661714616087166865394419973502101450924452223323642389096372512871352583465246965859537106853944609528045103761604851694138165241891134269866284283521903525158728574431525603341221900973292450728837748230939485105229930082296671807855291713013767213380795962671959946052662275233086026389854077484549263139775757801498333553204027627347738764086720207393682232910867933098454694259116707671485567162523676442682594732195437592212135295158444577373452396423832635277183638042677466047319890148613002319229253650913761193598360254719068905677699594468837385063077152789759519374558494188445865809731845826339049772694259681697133732416917256309402171585839159111600075567223819342380423892605739022503574212272968342777761642207399733519221752255826155868323202713609353584169686293680976334475138531562985894410013205268239889977234362322655900438855822668710003708997280514125106907725304697178591970377673952898077442375147767764190209781356072156825927810224073095738783865371127230742408046041552514104757715452784705911811102852449975279355297465053106010786783447831583372499307031629651495618186587550230193159591152944596286908468343407559341633446927125316349569608522340502208336713972369361984574302414849639166208244419922654880903095839359380382317989398251994166807555949161040817885388204082749162748720248442404937645543600477082442799712645347886089681072804479756140977613953298102611936577300612205589589419686274351403310868521417173461203362056256244038073585117950067027616662910423069626877380625603223226847607249586753855347621894052800104128622966277000376086532799694112818120816616363240693073820981107310611046192243698242738377448470398948853456781235612812823069055214660951895964930613766127129096606939349240401635382079404053984542540053245789029030358091742167030322985222913167001339291751245483635623672157686710340216267896306448827059755104779233363283282561977953489080648732204023522929837451254721337958428141536766249208047433349524409712538686604809393783250614013077112612080776135211965851706842734661994198100603980768536050889015189448674488599456183346897354466136971077309710775255149520504718020059648037237336749971458803278630147127808113011027474559643985510484958098085612255044033806297853945700450575540562628143651832664276299559418712652321771113639465167425223283396623309307319845158567367488700793326141427989733767458989291907685814983002351375108909673122272160487916154663465950252956885784739687372099617117969045059028731319665816200323269842019074194870819518023407194461267418125516101980264830927121762623578561459953959906454660926336567952152977313020276569069445229578124040729330784731821982588801655617209246552737097208121209225872192896456754344345979713047493931492819172762157839817807625399787173830025946901462887953565183328820395835690171584635633454397216765528433804783460845122378997500078573226692706719655220555575072502092402732472490430332593769359694066608681589284129087611795649972160653916089043446861144880237613486548415402798632708874722961445694071684309577441258127833395184513433990503731636995652521404406194325901763239630856570704583376326143495502791948911144830330852525366118611027480483044278005928818972515454496794719252868532952951167444312037552088257111230162811145689294916529038557664396170976228004403284909798708324132546129086198637696311242594171541546731266479538402489885158779443729069432981518701597897398606275498266287197766699147013824898655635012601678227621972121978733658237883576070296864545722042389421036152056640769269799610035806408350681930722475481909529303422191550696988727216062454341694304350320999662878760557684443254455147502562766824765912304167973203170697629961076857527847211261549458441418278875494112552479741418241609191385765323947526834094808798101901498689379171626443626569496187749890844637764473314056619121815171696986415566400234161092050606261418314081989060606629415679411328319674984353714007290080779460511397373378390337706751397266615345017309188845166595540205051075811859557973261797305829013044435013290057007610951632014646209438682363124583044009455385671100678278864192198566291740860667542774959306690815126450711458320280056626386984920047771070747527437936175666106272806513189515941488574359628591547762454332953271286647305702537761166715694614745640274861100841209452251587385943610252585892551531176976998734745897532647395162764735948653586889550658694188605249502289278038114471998521112911269759203930714899025475399258990225385788972649002810258167593066531804746276336117869378265265213593281029833671167650478111476032398444989494761472091140690223117620877858779804762276126871509789574322422374650035465929679556071457649626674073465268629223621784123747613202391278741210940826260039557693114676852233990368548289310502009742908817434756767527086004355357593376618637509638544940739408366743790830435853394793931732460110083482830592837507363484268543755512462536261840934453574192725779287942213717764890419330896341809319457220976592259679978183194161749377818178807484173903984296394649247333439081693022141938147655742030998221034486115122724026759264543546534780843958776143586254366064441758415629035176445264307968490679554872512162592447139262362027882260764171095718112514427758817707374742452404265420032984871845603064778133833270016794883418376507697599942100499937000857466997262976168001825013865149218702536269647320936705391767596443659761644070474046490260348379493264425791396073576655778644899429662077281389261427743635180782039399477696572169902330206588735925427688433658441034196855966505111570051333430294433914331181559423366994148786605853277415699324199589829909295871981306925696769667557903076197384014059737107957980005989252413798279554919096619881744833816024364896848283743703421550750972799328808166775705304840101826207182736435565111562778635514361427333191635765970114551352353152381177735989551980842548773702689675178119241222181527996867088779070313139166768678969882233677507789555190132306100909572138062035649897262694761508586547322632133992418412763928303818419045613131291092704928654328700383658867996719107857643768916664967090415687950913545527806854329839745333273238684610783766474553298713900514030989894343146856278041976978184897276416655362326418690993564047117457960231403156711715585114047469381079648583639795761170872008570459460054741402615815298628740615209572247831624758090644600146244321833380351465666621378790073489390650523981294215214123141121457114595151044766969466674881618391004631877936183049439019713535890540503689763261991474443687721367785591049333926325100662468848053934755985388852191978055842358096237626688054787226836193788709216745454988116293840269552750298622900145473762014684086852880546686596814765414874648083680480822395840797516657610521756827506467813797124509804168405819703012537134947787378681759168735994844945172167858757720499238155447652657552476873013339543434725078519196508902739723136849361112840427184863376092618111349484413140865638581407721715014574028295024810805227207116401232032153813771585786269160707426131805470803854906473613953538938006826642739080413618336595085696023363105751312292405920555532909325937596070916363862929443486363169942606353495364624569007075109015598002284324134872656019844804876829582943641300400484813003200392973072431785043562435364518306721045646405069690779512952435347781945375200503159522380663056274468377565762144515720903360900501457918243664974016427099528325048728607462627014447224970701157470108213803962591630457460808401431523282917215709396090114842490237761795658703354890415306288426378740697478809678858076527394221982708743553433221033170164343571086614668831097374715875291895706447809642057352960197963224584210935330288495229929518559744105631242310519004232087354985121449758319056219585668915748555973811087309027451761841087734244142605015066355828647975330269839885992196373175099753943196088894064394332741551722099782756498527629093288546367704891466614773980091691069673125731268159344293186714228897869459910190860811691784892500806562696352337046269706768441570004988486025208315085738710897450305764432673023615444682789093264681370060976830688795214553388765441465059348388084039618784602406373010634634438638828377094732148069111771908991004690896203958483400775083292483630137298858748257795960073402430432667401615744470897114184559852443422154686788076541181923879645838242120809047204588362421684921156096470500900150842842493130658704008704778870895676845120381379240448555440001261529319397843484532958095119610454279918469109442984787849346359107440859754518062730697775583584036231994291192660982529024562293224049925204078308406859721115821489712308507513807713531248639177607590637275650086143366660155050976251729741007970123098097939457657988042181353857225382855249771570659577793593368670946761686769451131351535261149531365775580181408510023621990204223371354353592502954656885206373295844692713815825409935561464670430607273393801403360347545106878648893748564539576462023342441324563657462516364646498449508663093752455662767690717410092476074369184804867929342846248692594576373391560975363378691101364397342003294423007983767701534629319203160445980598720383065115841662231975770552149694431177312887664314320072771909909903226663473606819167712077810259256191705795030477381578170135731014182252518064782746768810024145973923609495816609899059260245190794492595098997456602803866545387810266066399297722608969278856870935004383042466015371073591767395964998168685904630397005319186239698354580828629708245830623828421028914602569707867505365749138585652459861031011724052705255833854327853411596852044180711307656245912787026070612859781416448962882505783394933085261359044061273038391600384978590957317660321354787132802967958285660810149968289921924950000831935466957549343707319126836853146766103345948132592801470004829643509817252071991772605919472172736160286485956620937057904173468925169780506136834588930207282512161784266460990552009348764251589040534013624408568894336742312726100213038871697594369528287418916730428968290046726630529384131108303750056646949007623843135791677430740788580764424622973187509583060777990152633139411898567133741601210545882830396050758704001328449830707996514508484712525238577590796000554016799206352161207921382718512809872233678310382286041618876955441932487499358776722755824368673589342190197052296434815656465369076035483984161789252891120391953559698719793521654708889613378974437845435055877858106961563480849011403795191224009944524712586878928971223315308100025507058769407193163863295659999052686088431093319755090034005351582682399405232501483448191368255885076549095414028414423205118208862929989143244520795468819827720370818161341510657844534472158366847087916242704103573134927017513348888120924565659566402245726107314737848689584334299640441039678151740501481863083146452329511382942643230857327728922660178720183447034666754000750020183175921349424993475671100239365392596937192194843914533142872570276584538652661976834344440302546654640598810545778957851670784295032153967014063256726201860021735389728104823324423607926376615360191905170539408853279277328893079997207892811593145898348047877440661793031360405060486384912444666708072661124686130545250223611902027411941500194744342739680740615382752376126225119685533917343037735632086085725252936546015673577856746169921143774727577485030495751760668317777178294604744883117276134264295828202206470173078396550118451123921550260409817959645555512666341169482445871373639773885391064407859097691182212801711706383379475305114657470730081599511450128048161472227926488759606587612249627090683376441013273933633182938483295020802853787906791147272994487610389700516804623701597776856708348468187471867929837063501948328869553139038501629186314646896192291350497813564504759629463398019999514876748681643858399258999086853128758620024266278165185322454006398114918730441515030600779836929254368028341235084778351897339304669608748009980993845720093087284901184177481403992025455608794666656870480795267744374443444165495577181490551430114922176312469980937383696092742024607066070382216820912897684926843060680062627876146402252484155498284191972441084021598315447421968350801765164739310071018121079107161781761790094860707222649314439910269812573807647986673638098596275000746378300911977519866359541064442242220609225301370805414812178599970503551135161363784529240055452306284867484392773511229259236028692994540035057390100737596705405313687024978284964879129625162847499280894958392670225375663841753684389451758650939720353531033349897013984027860569185649687826927766646362450570329250794157326413606577777279396778877670242597003973887993504603721107691642684150483529452889405721736541136852102421012715745083363850033529698598214596029746547677981612651331854354541991221201671159538476104420618866186065617521470820961483355241209751784818616890768877858788591128290543389284007378000986335878021623454540027914061073575495234371821620619547167596434071474587020533338297257381094171923410543995837295561432199829837084689475458485107795941186166435714545643219395956762451449756124685771592080289576449808872338039043999951723293696457437558755117906691473085256960441894936889453471537853238531084644254767392902687040637081698254235280801858841477647178477111419158001387956898830050243180128249235241700343508349249144920069969784088259011628358600880843181889655963857662668355155760232111737675673013477233974193907665107499697053985200356910315265715568463898283400035600804386558304198761596451125934609832083772260096273556140025745629735972319926639874115599704319414476842604477313534110990371319399740429376027211065592007646708926188926513990506134044920912146784001071957809856974964062387050597481205065992885705131185256270934106447517242397346824655905456020496552476347048110743958250536960733226058939278164979222221024765341090939127806439680543836073237354840563045664119666604611951344058305327605228585310940841920547539783329057292177866386461712397781835418048926560559480077698124086655226629522698172819542737406177841088322198839264219910506689557427413646696924854857118769908571809863638532164545846934937297873455842713773994682204679997385272265310460264610930006505693190561850115197685945945347829066384511575985210626731223799134563885435517034531192357613355763579801199567130325901861192822472628508253583037854953725829254620368854581400395220652428153093200200578567806780481170374016735122409876670359701483597778631195554959147285950594145517277054309208219775307237797603972865960083296599650100673000357213028478718401573034820190811241911345977484126518429097116115480650363925370421447937852119644375689278078245060536333621473045287561109110475552537468119063844480790627672373238834683040461202476246505523308708652631537132848996672354820931317244423433842761280597798836132756285378908797326926805895211238957330387012973611875482950210417309733520160631348701284658912184248498701656937466335129838868617536200664461268019292218325802307308741895767168367298267559539053289271856785915069837442669081230236609265961185563649208239173183987964177651096306042695482474928865112328560060664558290221835684045939692755780523659367159473203655186679840196733295450800236270775315799540739061896532699582374468297552804510000912541687211070659965253011328904145598013848013943713025772382113753132585686975966995754350273600302711278267917460515684527629870897485905247475206461176181594751371487437072944713488883347731912598391006957105426485199502515494345945361824823650272410960177849632007347523140564161827965741601927303013907502565576314830854004894384193342320465851691091438041950870541467538204753151163077256495583241382181242618323688858152120370982974385959637189153064628415328326460478245007840331114965387356601080956680819491037739521631093558584556365561591234726881133560500392221356176633421295686879883328826247626800901810480442401588310248225626626471516908525993091145176197499708114578354830210615295169338645243055357943670958079869285344506196120686126966660637269411151828797929734316545506177404230891025729299800057555480959903962078001370567535224682223351574695785535445417670804826362063271260178018532600528282396752214881075685980239953869715016346016905242739550388386154767749652958245317623861584153117758182552889319384264153237928258118461129617188764396408590011441523235408674296126280301352667020820468185706315535686714564602396330669404709770802213741770913046090865134666085915773603865357169684934513874681028680420782608363265828759808650389187901685245850388178402627728296327232164283132607079602048233607686179647437517274464711719242673422025339230798121421360714231607372616332116836861190077533772260110609225937873703020504379777462465734686330300072698170277149461404612744108821184484184655880885361048360434978658676970310020780385199379669381479295218082761341196307736937435310453570470963508116406409030548754455718736036368640845312293374882532477092508407275639712038500885045001018022147007341858754190640259706099713684960090280101775933751161498844343407740823198376928651350849180714907331808215699062964619777843774977148935216130003971763927448009554935138249787233790142904179556631370857351179565159145695488982523440721517308163077006784126105195815707661829122082428662736169830875354613015119819752499279969647136991751332314091138177264850050964053621636082017136007563268462099924278208122610078857982760853340903638896016189708309219485303196308363015451764968549188958464406474219420276008960484278186670654849978447766702872754185215445641510604546466066987460747776814111153309755080154546807102574457330654316329695788689967446028602843269385407681313208695238256472324367443438972347539877267815612135791518367561701513865961822982704700179184493514228727380806062243705844438591568335208079494788137606060664852401973703513989985017580425854061932255920407571439450063873055888148808736567131207942531352136710987484031509504937534026873359951870899735870220668548849565959666631731697207278471773885730518758821675673783136383582855271213877042040371478063525704303229305155484869881637831671144561282371214903020449376988360164747428591346666221906452527842584414771793223549190600181001152241042225765822991466618189317306694823002897715604272341999415826806891812085678184653534897547515957881723394386645944136108430816067205498869249879292184874803669554757656079004701739530155648749339361971781691854985178976500949274669605879087555734114000600752973293984825461267264608145327479576685386106381412377094737296850575550007520092338949430885407092109890863349108335457378853490406374324249753041951655034901128194923670718428051454125006544722616425920568748423086268912721475959019719845756815316679290713363718250868384910534031882123022540427037700315176198425557377026921059361975885379798546752263024835629170469310744838871843662597145069883369553082680858249967270036327203167563717949571259240185015764772704677001335525086970247893250063392995291779395726673038772146546516273268255231142923286160430322390339800727171594041778412083253554988473381793943957133884247028139148673950289864907288353417081302983436618502685820945580193963990001508165197657684884453809038060139300011807133111322885644154189273645367983083034917702131857694090961318388686333107585655284134182915072275095775997534201897264026107172015519870743120758578234199787049970960434964095841596623162210690665739720078542075808163720541092453236896906297652385846095986102591888018679374421916288272708698801025805276326838804233820345733969553876263182491692441306862126081788023255456026388583841571375971946395467153236595822732079497401181132902803370314025845414938855059548043760693404846797349032929276040698231976407420298177018569367119550057339707352301298488927851674551508568803806326366505677991927111797974746791904107406112335182058965154784444602840285737623867857026577616619586342122925510396505655307915287126269144421099613753090120742241337452084746375471078852156681165798540590001712306327579431788316359718154630419258488557638878564612549856566649125148410864290776261573139600551662954987348690870920750080663989731686271981263283490435400632226911560068090517369747751232059655279865680014410653693673014096628696161980198718414985975200134967667675695908339903080423050746580759291422174096451508135932320175774160470197159120586751001008325484642873721093512017967142745468796799596209877933767956380327461627110152233532472861666661601143333018717894344382033237518204361457386453535552155842400797218910394002430893965520819631938747954877131408000188309163353937128106113194250218388812148773971909236648072483453319948013588629211580254636554000831480908375772786922630702113313577187752923158157857736573942244410737589501493173770017063433166971476466109414536494559498538770090713912225420519228629891046482317066554348216452893273591995990587691996451477325307673529832200952901155155414179761135922944704634173316699398898438340829058241696773028923664778373593151830695641731450239169413240271660919293960734806695593506671703420029568688798478118634658192875268454766235476410023667441624905613400150974773741444607300451730862047630580557648282528068617086702456073528618887125465013441025229282814279826615601759524622108811005894708544743132653278248813766743775535422447673169899276107810532384685343414403880865457996692426205359368590134427639745815284144207311147075456915077528845861476756036480554524602238849942862390454729829555458642478832868971630485176984790297184754567861889673533342539451956212786169501480502876363206934888181997719229911905345144129383984778077943721390329609128471637342288012170997046971316552134522031003188778594711375722416565210851052447963517845356382861181641582863512893008476013740418529267771928307757035899578696510832551465744774014501061000707184385967103274233469167205100906633073720231489118562893163016819050292611392842590662951868838405765007489961212573790395961840565661818382962956561661282261512890598065577107184542192972352380455496065322128468692619479454605623871724333395024932696647967051009347550453896031775025061303137683903787347378095296360081515675707982663750798209930506751505462924049989163395700427885676362532201879924920862655288165316657206043901808144877571944550591115153601462775403455537709239054404529352654435494185445293971495923956820590511417119917313423512583113355548239753569642073589227375925847241697576882586568863681153350346372310235637195511335073759647250122407225309700414380133467261466772039300479307953642848878671716529918421966471664946762408020336887149865138351730467565065578180361665818327593751524402540941617777614977886329615716020109361878031472481176032968679172436368922450039524628511103372923526751680362589164902911355860060180513060812542265770705979109634376585192033743868783144357601583627761359780292259769684207507128796783964392421814908983038714394906499396216431141235053407603712645450254353210913061435495167561987202782966609915139989519787428202957232116442555247436309054685429884071522249499530377752983663239669597100340151111127684232295446955420210533429077496170490284929669689502965296104357384085329051716692733064940679009807477020253563197490099539766964867411614960258236207838570665368748428046277349418358544267434595580441520233793780426437455808648893905758600074530819771101004925921853636228358601028791225431041714636625966439866500375722141698442493365428776888710885634435768654943336377634760368766722016780669179209651563437753375019951483166028392901803153786501596485604183115975821041856938243134726767059107473649108985695377211830236285216987650269156932761917779436397142255958938081171433582196925465276448272621479405119899889628649498351412890257899915931671982757570651154562069862515984222574763672799802957269648506329343713132324372706180027655431158592943893526523598551323091821086530756811211949154181591933548592024580837834061774043819816545006333509799983918148785229366261914816778958595520360601165031814858783087205659943485762594504654327995486437205760736208150184853295560760525842297547877747710592101162167918339573509230320507237189102296584780715037737897225488926444307856130345632079703566795433454618152270252983963999205093606402638679707111925097166781530702927877805635587871500061689461207668136963658977121229479150508356239427852192895471498599015309638602374867616576282390299275364728186478782491550820073349534978219296564215018950300055940066986337711632569842022501736887378898226963022879471360740795792929724097186847887175899391687318378516541697270208514115714901817096192861058333118563141312918840314047207940489111365340367121348847645637928731045127792492941024395445851822156920749643800799569327270816739187145937815861716578106729118655604095006599985622910059377988181752273577057149165353999284506138115059524550525850864868758831183462184668320070062303543486415022425645715091325177048163936149906348005654882394671985827852901971162207253965261866439716726903174089205086329726017022572786732600198577770517698046890000233098384679754220408540168951813651107663667734990752714506739926274766716587494735104870429967934684213887244660648560503368176706762105652681062571582310234254893659838376913433949124331613660863307849245088395994693292879130205930646323904598179327043333805616978716158418815241141998011037990894695818444473272081017286138229066409752508926982436364599655480102411258482373580327098903285577704700635587707352183879904924437916890177347826222400363689667108296513640327323799411188467270849601432359752405526445809376446390567204350917963390822281825540417850907418333129424227776086035872034091049578846267950781895379147499816517566101277366360499311907969952522003944073694983107765736015865644061935303167031698821830928833967054792832014048444929408643798534018744157342145136473531798720898051223723200983539690562942496207924753166517655221909318305489374099364319233396096322085836557731657872983926969646791789343530395813598984263854996958505760689916424291762561153747859490494449181320094331538700951526539353225145204125796496938551496599245347691826428142648917897423592024619600343992977209905469005339052480661954262680244567002592065287101417757475541660865743635033496961599792416132623037898490518020978088313253064733195342695392892613876074252115247418351350465242439177288275309967137100610298442983921140486125614642777844934565413127650347883238870292804999827181716329890657153611576705571404509603902824339994271989374508325820284020246372705957357145343140965034979524944318204466613976272086584447720038138898373663047576201567129005311249002093984084952179166502607873316010575569487806070331399573741403343251177275222916714335495012017024207152922150272836133015750127965145632514611913324600048752871860003225158358644347965571568945260206030940783678406841713375142928700565051626534181418337553928231143757201765566669871668698216113685824467190288259760854612454347389948189862921334674951269323070269716492751132596144735038776955665342675142962838308108215718162954286423539289196682976792820910307432631986797839426415557158736055044570019789679746230847110808682333789418675363856751268493634637193058779636163707743913666053755155821171246098751276570724593959676683597480614866409926985072689860294417972755658976556750853004941549082587127387707952640719706070917100702841195476232877989895984207029916084923954357039230702194416359293336328891871518335985707371375157024155712189550672242568618213339771946464631252721325782098454876276771211833551327757681889518618024191779745183542193645971575211478773359270711963044033325590256871899961137273154683264792030621884496776520096198788433204903865887532365937056521455187300736330513195439237498112753187896704071270983018854199108059243998146050181133725325094961962434793360441717810646793326805300717361212941760453858087264834527953683036322921337735247120464563449245835515916504697358352157266477961558746525415331933756360269956260093934732295529994826268337864589748575705167754272955028731259005836199612722503629161633271852931416052451991885606579425627483858427777422160934561505506239160849204109201096783508844475159032245525354538801120692517212912611049600031048237187258316782403267039169289280816877088043611459838369224307091919367059883547909092293172554433920905931875661753949820998895026686737810052605255803304771213508145871493386375377870495150036973361071375609804320477364573370034203631896055760826427700716829575063844688882786856856109061502534167503805684126838714525610127492771138538019571327142697830138155200788622313728739701522437808056431214688642554623067865511190780949649278360357732017720635855009883720674421114926430334837170599351492241219752976286369199434249993327361018171818250424354302825127508706267897368148203195466275092915432648247934337162826350478689116419071030539569257361955076362863056700884072668249256057706532378564258269028025091450491835760440979295903261318916304480536076719248235507117846007712836363627957762955062678724736722533227239163523301938598472645819338098678387957405280249238438465554529720471795475672112646258018901529004307870755257484602034510829576979538702670557573680693304450187519710209061198859686303988701319097813240200135252967683633544201993931680601912897915215772202107800894979260314272965087076824896284389256346959767007586513645738067890471151544939862663931926276237904542069129615290764920571952459097442014478720106857254211613231552581688443035284315614785995379788765393877126099403157199656111495477312125775822710220028587334122198061329283132696136268991570420112026823821654310892878477826456545426058253219710543186069311923222159803912333052198729085897808389258913317516691689098207170477847820841491511179601771147915584679959217313729414921831189675505753368398081426800808697280951013195389040104197397160119678647746998023041784202018905891074280832626062043500203898331538830048253413791718696015537852827133805267065240797147570698552184021453804825828021654724368832176370565699745462628807376779034865375935320571714798457312350773825974873320456249763919426938431378834101806510162605772877925630421352994625710116136446902226643772312201674953344896630910701985790071487157533268993332123596420347737576382887381108491754992193338628805425189551112803295630843504219781854538666711619807123910307315881149586181193725962804658348709130956929826833177820678219383331424538139204526594802294729675747559493496884992139078696569283145458319811814304793465285405545709021032568353817256273289746869172168907346460476145385965334138965182043592321934651388195163640154654634491545990164007381027465150082009423221820616966411090711483969936344264796524548139176364722205491162300418889268678468412345985141286552932273730306987427338092192986904708550844220472831456485107129606608883750227625339224861827254481379344320775025877906172072296187689287597533417939493197824778079320598235719611691145365443385706900050255101899106179528891377345278579785629155610522932500580742828475922179374838088657284926460311079827203824988123183588598568241209239268489535783827954035216121705629778303861563680597155789654965411185416631178823677216182987385711714527711507059347943166151978461418656602323651982608766719825501866476627851020464601274818997659971006951019978060504966902206220651700377068769617311736894871459960225579329004207227488644607885033196287220490946263452520784908224883715196198659154917023316946888489829027599460244315625727612558036005566595560018438662346954606959326794153664234349966650171063887689398328197268589789852184997179941564380220331381373346692192891982553839914023544146844745853520603014860395416075536341031728830941492529999567957148608028562158680234411692867836039060297490584393381154461014038606931864244154645665872586075721893967701633001070149463635435407189558653477270699846432659178636216879858817403830671319384527637537137933604343930624760266318487499752904912938893235949455641659971697999336270573090567093463448922244863433574104578230292932441048105088634118957976218940405103482550332872957491598278333474081939073779159514571645366564298012386543769719694337821053873613390090741329639906087744930167422659171957530569608711971015000370378375652828149783545317254171920403753651179364735048870159433489383677508746717256727212551632150513566636323340264490432841543988076583675364983525737102665324413761244240892826996058186527285587416719211077825013866757399755557852073548885279903631843604038698647996461417979698846595944599343444293824474717276769504338041976279214591446686521585105067244232318824895765753496773572944934440470978661359345994041962555511883052913999630144692347722691090253159133161936519056199745299719244893044425865617434629938731321496191409720480672687242484884001914690346389301989076050722281049192192363831548081913662732366372142833247077249934573084908442046856329201952984504501214791904086769801886059530616951960241396916688901201002588960250015078327139662526083642539094396593447414065947880678328123887408761347110322759226331244832920323701800532237480395138306423752699784889582734405760944248083390598358772964385212197316096909491462111417827732116969903195851324493664649033387709599044203564029757633934993956074189542452118085305198215381993999503477541459785108153581900700772688700453263509877523332153797110419907162134275560840173919814136093390250842441206549783141698826159295906948233685539672939639714878023808079701090167826197576195749955885544775810693033098965510123688477709281722743367862382421551113303209655607101005350582964964636852873752871889231072724667613727070991019603282985714268614311193883589600613342742437061957624726285176967942641060453263608909302886106254471523165813707817008363934695231737006062201794258791616790816025394941565148947863405460997462979346445285227465427232341608055869341183034395590625388765159525806214598391390793422738038689786151999992632692591671608978759728422505608992433994792511695065399108072068444363343974673408100159127869984353146947434054679463584394927470596113579734715767137287336636520110131626541473742847481184786587342606872457013236402565282478754955115171820467619980036769011649446568924929963959132292392160248120166030345292910841181778568113221286661846625860644754051572015559585718451562814563077676382054763867900664301816549629456882293050341400576961476774695432637967891208935409213418017592314676263896429306658974006920825017069391526646244828988681679837352050529097608374886964333842851686411348851393555724809924369814950062840759794564756493211765195668613758175742490044643978479442139457312223745741410127766991577650550462937541362762663431042249981210389612055941309053236969108593473629403215227989326994533664154018610429678092262585981615417498844637750020890234005012460975609281095999144741598040702490057384025348055103010889053031957481257918472960530090428962007467650661519940439648985790961241993661604506688009846409228877412817778215496883654130901956986628372943010545308730643441907018429732038354898054222180592627332671745973773267043606424145203783519491484716149276968643845236265097285297349014692534242792193187913981200321388426604250795405717416730587436866748813404830921277034524043031235786089714970323378573053108133224142854162578221509168735851930212686265632832044905550619060141833525778139594290682538085928116009610261474591652379420007588563570245879826493005416413886619575881508808423370150225450932299311690198928086610406163461733749757398141529917332170214866994646369806401172861433031778903095869313858644983827890969750575446941748860543878896447508503143433320974686492471784774684414615376836640321434536435233985298829341091093365039109062319156878805432104180909998091483404091195123242046283942918994416063393212999626458028267173613036735955250118041136249498468441312397232200538969656113340834212423748950226665511836658457292499426183166976632366791869243515207111567279631788509521135764469197269476100473219433373107849495781483615816324409165859659091073247898998780077928936064567579623108507297240712341024202026679262380910980819298593089715330554396536761643871018173901367612247313706187727287978830839776930426883024565945299008761333391360085904516343303632971595711213152152886061671283404303488358671372000902421017816874210783168002775638129222652207128186569121929075016917241297054055812538728809152621772966542847583726316164997425502789577892500368436236822487610642439296582023967933492247501406810325235282876654857404030517498710777996476792479078126954385706554232689014040416817536563329713211933426244686017097514027339165189294505343786782365252584621933539828223273810480444332483126691310602250421137783134425687123791267712612890365980527642596541967662662296222523536985866312452047002780660589448124767095743394056676984180832352848620599012050673160121887989730000810172785395162610668414816112216925887326782517002315151362531185256658182897999355000536092666405906343483944550885356701971273466876977185939194308342266623630114752558563067346077868956491696339236039128899826863630981500543457615060511953581430821047878369633477011615883029026741771647993206396871190669348411442715110444847078610035203856367056659855667064572840659098775464184741784674122052833685388262010238232545395812394135949814391549689816528160790005715749429415507672967512315095543853854303375096412736950340494393409145433533960832969385931974953942462932867781018456196574424287461137788568044515888314242665276455558835737343270885366846958476365733891280657273613716425344543204975805180628482434994015308673536295218465714863145467582570853021437392129325758771050898318605196235760077744770689735201695585371883221126650954742343433052198275110816048719457320401956516744134645569767247497349240025004416955189299384302322062669160852571902943141332061991095422169220151044995121581521023157721525079119261002441747602776570138390446193595935329916030292864528232734712678461634825927647260806168029445694922690269082948049787346541730584866822393351272749227568929332276463150839256777570057978229681176566986195598763553165619934473969561768411193498523324807973678650248585673995052274228636391054512643548003768393298788067904691385473389619724634293418429465820841971900424560261372298297195940845324433652161171974761996360592513245847785510325846345874338658348692905095268981087298045841102189070490013862686135970254359392438289774374673101274521190893465935981796460953371844816821022698529805663379806036688128860176936488447481771956330892440052594932480097660272878575978758379699788174869580555851364100372364754285594074340702922424612639000101882185230629992349352059096019242520707186781813887942704507658713655146817821325630093439543115514756990261026933361220973592056479411382812515740870904534730781859497736107644315166203891433837519254202021127867185063621585830549778774528034624908489371620553104068840571352062570804383416323108107560013618081936252408047709895204849865158559161166168233363636585592963979671315376152648889446186566148990275414934524935239712475445588906126004352625705437309518036248105428173890002683521742594141599232710496968357058478418406271932252637519994389934255658198971348921982422806680480468794709610673767022689819775852854127904472283460274176093261759835495081772677743015631547848667151751538115442469642218354891913008080074668051983740056933079821915082348797896117441645728025105591469944898376644294996637387783544189571811365278339115690166315788007219023438084142529460689935693093823395331944381513030553284284328225938852657901418823804869935117339223339353057370870811611103859189103705341201238458635663421697194063488143342900563156250578684150214301945285026942062731679999890893797996194805920923235817060188060755778416725503947975469021245470738799368687154507614285240407966265462802850228174715660008315052504309123490402124586903205210548981062811096010589218551461135379497238829479692424022762928723148586580699412690904156050163118806278984803303469359779240622643482274926596389547048544242239635616183520500953091004880545287176411929176372172285845778094304482702500056025755519238497420130023186875748520569076739030407427052233713193523876459249123366668347292722614487740984182720646051360891329116221085536112083848842899501510346991438558914155928513019888563353355350913895300377391793477019562121738110066234205469867124699948110766464018898875410766117005376687824504132851890671311139004300895076497968763404214530557674742936651669298245388206635171237314412511448116078056503097013058640233182243899617206406510774978236710221180949952698708841011835438699913454990643989695710178942602912714023415044875881299734586462326936533324114348347214393978529984408113365007247513273074999209698141244905016031886737560119707894551497424052383259243231153093600748290703103724545206499987781120515685380163604972706548306836819567408226919241150016732044610319451263815039269232317405300667491969467058800284619722073427597373067727542185512344735193155152299273395006654951168941085448510485763672738796032081004553532972953198450900546736335866066138746709356038459093234534622063840195172463581907067666079170769414313396423982973316412921699810509268772174134661193323084727258753311322065006935369690324958267506060010235723998805840651999535254334162465190445424231012524770458560650648660437248344017873993190329755839206706057846277864392237443763111237157038834628060952461495534674180445394239644046523816664527587202410168742294098558695524481121760950355599889411299642899129234258282701551721735821699432483704510785141219043472913165942131823913776872217357906572524119076208639269834670814340466213784230130207933018801744943313137610537096190379392984832318342471451997066619587781192580736505567827500513384108810481021208730811565860645981569060359526411226778543578873743937915362804301579128684540307074302690529225146868630500402381370875398442173183757147327973169771825871468719595523527157454942132198926490144828876722242937047858328877030573782260666433411504775286564300414275128977053004945465623779087123573758047987865007021651425116186180596776488162109360278229864058337058883747027436897523435100243613794258216663793934525255819186471402243258231345638206522927331127423367215339767809920476838006008086800491060375137394964191098288145261439760481934371200243071698088984848761701224674961291352680564861639731000117979633044862191790056853223524778255276877209580217640517134448225397877952841083925732179399615903919691434798997844479226740747018301394634700407599320927047732433620531346851451715260271208912457545504637475852922158261207997804133815158100057206286191845095291315525607191981844032576692177073597626135851732752451898073979721945889048798478938034685502782765233597800690544360029663002710900117804201892077331056577679132348314153256522947833959357261373296478431477766407367539447198524341534674484991056459789620604133344812734883076560754960869705033045965826556223572654927835362012733963802348341398021469279340334543598146576398169881993277451175535454809119847719454423003241681851949956935440350498085968211527495074736757086143333210873722175013922001141365860305774426895415779733754613525045626869890596575468968307974849506339180552429640621400414681819530487695360101565374870448859944935248338512416240391087711157163637841246991378272496179740876930066156235983819484083499028206838646285496035577780433705470314027194189252924614902369666400191729786942621365429562685883139413000518726739034580072861308978870594261646048683429244355533965680552905911067829570010585676999424790094948974389619657934031142466224738187485210469504473246955775189301213627363705209195106708618651639560540935467600218328760996389754986723760787756925674887834570924847151129192956087444673392398487465554172410668137117000640094792798755155580175405961962041477346392875231945970235147596483898328986778986022385284338658594882187918846274640644577094887902728302424096524746919361969431193092607319218952885180169405821361222675778210013989705308790389591806104965239216783507936725772176890782763298680144221912021264594374076009819357136963443790512934021295855840874121429436525638730635769048649660348372443176258203352164672392496904126765944338490754306103659294718978289824010689855090862459281685518101756311254533413676535271290591368717735363513321241921631148837248445722710656977388225743967077471616364617079936141341726052455557707883206467569670783820529516359362406587129602075535998696082441594662771000545303250638467143644205404035967055990500806179582035658162275209630875051572594142840489250884166021229642493684991753055592830103132475642876271184522463905408697978739847067888572246258097417297627215976296909535955343320659781769660305207825266708496712641911182044205261876380373133742190908051773119787462232645503087992415532161217494069938077712475767730880855762480909705215414501989488886761269078393116815388228077269847675556712672079475910549493284277595196158497937600683172957007200519300972401365114074975593972464218883939241387161008758144804164946345679279817412815907932666706547648558975867082504343260110584381057553637166794171565306962430894456465178300811300027903239546783938277427688730638437736419223496285231224482559105361355693255877155327821952766784838665405306407880636458482980648290428470169622036330373463269492586247895474343932770098356107380346592861319379873805560506937986182870373316184199842629439219264255505876042025581550247888016066822401185828235392250696345285581141002606493700271027584317933045089958982653474076470467950042559968370455143246116912206579380561457282123482396138758506709775854261706165928288905028968455503657461384832723293289772427900320035502628393091800600389965405580051120343845246997311753497892753717900485733828677390719645585859771066169402220573193616082246293671236406701611422608831062070806883637667479293252391364954740955002818098166721758972406862450520900918851755524891149543821288250162608540422957319507760461667630613599003268620180958679932216293075777903888657254053707286427153132525917849295459810789542098152392174083894398555814809058808180290221779054722386049573989401174570308656159463659053490993394324097850408715047514672213099365024443231848419860828127639016411232574623949722323592709360005490852314852680066724604354251335200764798998890555945084133268597840711799312615383095359409482224865021577541898790135058244678499079665532153986482959879527148921945033294839180850454258037859718444430109637686406852869366898695156098049386867169007129036037165441687953856137855691663028551271174040835662056153584285898585026424614790143256647933268489530012808685451846159991083431222516130284008605610109453982142342187148970473195796184072726772463225420485236673045614331871185948059596587952781833788095213108779196259841768252912278184793404752363092850436401248218348182208760015791256921237927496982674086664853095179901331100965004240240186824462298760014226875121902102740353535493274381536200809494679849280632316885163100867209260882898336221366307570717041211585956156041075727606059626608762478036449180754061270852953329530616986165892538605255653360909782137599152049361759569229578020225319478621922959061863280529173010989869170134704866378928607905220543969466975819175532621658527416909700918549287680503112094350119662562677503742230418227944052078738658244296013900914916120119702138022680969339808916784599838040573276344869294984518514194874876883397457353362890636181387081813500184029323573827291826440355192062168450497380309060742765620508289993245228362787717760797392978571135836177394890350888040653321324419257760796967318872146461053495339116351078543748715131898918551594020102539740042998306150560517387109668518880582340921527672909154298191827230078879735812058647364933915797017246734096662161416591191799985017430116890829314839038304887468134715337240433887195044630331298184933322811582929765826999975904198949608829622779067851435287224388114195773132839034062596935899757554238618757741052597909541406422740880715579183228162719435843494629900616284785212218803192010430368944907262795922896046809211432519707435333516661735202043354661363883606488281728733601174413828632925926961945019526207843904486762738093955246701566253382854568433557209402058006848977818235895531724470246536987612837653214437221000710928628719415281485717347180274652963060709123847173810192697583653737653746480465179180804852004210709595256917268390650357803330421077404587851800086265309991564442322190021649063051924239728668377959609365058573307500403986003025887042402752426277387792670731574568092581771542941174384218930242695784054776901294164795470099619895731320116358072938232624787207459348136419310963289326756859783358801686281433186367257909758278593705326442392296128055615228234079192564290807716533261771299364192480183644872900423142350200942885276407048223359063054084955164698815967010537664951995714771548485072728160594185588139291045595791725471094200499959569842070293981985878581302866286974856226241113253296231634870835984161570081424860034486172355414023584083455743763082091890616252156776884249791477984787047154038332043718228927830402034836194276020259723805984832808410390643539058306088454679827516291055248816632668734743737361046757825595456278016236093602446462135876970596802264894685659137141122472614877400477223939818584813285063276710636130733575305273339202525794429997063490518206328772216513883469896129666602955701918221197565158101410562642761802339044133632316288983562739498930377466929035170899737417851484822754806821712962083740729135446988030480447089763013865522424864130062931575172686280046785197208246297971451134711546400788755311152101882914130072638244204429652260758320659823802601347304498472389571080548927224225429697202399525199299058304400993634035358821040352192115556053673945267322307593204551978964896343984312583802019965046588842832964340658323915433508831500847477572596932478847699192422431184559502645106404202018872995711684271929405831073737051209526041167891737011788179215570940058361911583244286733052183965063720947881476223338832484688830644009899210034521106591772207863591049460055175839082963389150728765672404779082444720543270799404898834758717194556685419087650924050165362761203143022309980205230897232769206780533609484083504190200287428985468845751932349632176944153682538517623478946734324698890345882898090684337389338587407500864941559103993213659741162941886084657856464256888983443128949514367527883194017671331522703771495723615719809038250698251716718889862819962690248511343345257505652919104474442576618594505647698637319053553018650670235189139013081615747676287331444135638588993099174081038077948958201129846349984924956728371463229954802722268598524122888095628823512003175657050978153247665489278399349861087910344438572170804356941456600463740771843962522151854950925087468512186386446450720046911626937746155247678403729498546992418956677396913737884678118080711070922266869623019052015065344234767502877126624855246640945171117117727817024681683669518639109534290664563293833071445667983658234441585743249852903036643942738713908200575051555716658534774367286102356276327838077600814934057134725364887870965381882103333140081293547787931472283516629046029820673236504612750709163002019754380887049238990821243705717077118626591292685127345854910746894616344198327713029098075077112890177456174652776474865037617985498470435701790425860222804555131925894107565737852532281531810238517541245841679298425458662965209673457747950499884861171414231429818063836644532950509212573153436676918556974073855483271634371041090104394138396989401380514955137911542590812179107238317459410941539776786005816030729352316975901320030078803849835350446489910261587207057398638169670206091253181388030091925490694376925994579698282634088161016337887908694748654297725808101163213599511316725635393934123538960705966677542192629566703626173117065141623902777852483583568528917827972684817764915648027650228312183837747956989774817144942619925699255765362254116505747344448558592954630822633028409885261091837634431627532074458964429635207016385560070327519587509842980385970243983851464990883799516534407475005695941120753469040552661240700863799701575411741590222544792965446288178172857506262165767547908863861819178352229782348129425778714684891979529053931559776551458346712113246167957643119279909402968821291852078318904081892189057938442009438856834996190217032337686627694831209040232683318586719662382684549815077397993235622852327046612473055900780779745988958740003432208253755298908240388304711903288582903204164495301032166308134623265694509064937904983721545036086734766722746847741013160180844129127284189310515738745812981792468086447937326582247410894358299739782515529543540809345205253527709318264681927692124771819144989240260468522617069473808557068865324821275906892594900017314250658319851517966927126582456557294449035560007593326979687668836123174765952907025714805953501493152029442148772398570002287115839918135254530898639303880006195457782903500069351764653238619364457954459309235827325771297091453240643317011162427361741981859440534035865688680303294744667791554989155739169065936407524097087196897113961737009856853872494520759233465693710112460170457231874660696356085828392298820829464054303953347088606022593810968932654615551991594932326072691926134696464560420102756934237559233163239777111640450539707381326590008344247082286696102262681892119704896364332181158967744403801149372059905797927941609530328966516430235217550872612309463909820399097435015102817801301324719001100341150550351788788567226496866287543170154123536032195387660894244510828214015332503843038440625745248161290922864525170188675748668753929604405272715226341025509120129954584729704282294409181813238389430427612219807472579949335680206157026123227409654794313141297224848094058684813504494160682656779349267178688456530960144533087091961503863868049103925753590182658005698007705827510645053947757092720239845078764500544272171378242315296411360357413213008757737471837197584708759915922894155911513035916292243446592080443191808252469042086456661298177059508953534152885337932622299735645774858111565508894413464016867187178289929368045412144021075126392599111744056278562149592164614692122761863921526089098454926195338872774781327670378971107097085424426677020425406744521247707856114929096204841111508721649160608769734451458996961539013886229224751495819339327914107714288843669285903025720877262876745741310828282208851186302898693771395097983534025039899511141452122336174665598594902950100690777575640755204095986975120981515426401265961260837287372375050296596711510702354631392642343191349593982441516756604704375709434579630911802020923101512939128182514350562143011539185592482173884853546475109642214454756490026395799299736370699882143856035038374611123116636747879344538828221066831798184765365750322833898122464309323544888206761671615203654425348086142417592513106304074472399499958633956820606992857737332571788085226670552733293933954799240069561830558228463645389632998726932177248443438698709071258877820477858139119932007089476842164925204745329030711296447265769445285481170517586941683681987221909471089344395343301539558483645719373918344090944212288477677415663512360988806352007880767085892657038959420212472591016083356603696630716917427062818661541741963512736329769215472913467537120909799201971761672936745856325173445650677351889585701728922538722089179422836318797909782885662149862763043292610285716191703451830855968007314396903284695031759473934259186439929441470948899486580266503371077126864482502496201239469317876644886347922898946455356458930721474563049262424512824252384431683959800049658577945734882433646485823474198858928235992809462824822383341313925272171062831756696500374241929752675472646865964440004226610792178431015546170257091886878721464927782386162577339913490265033768916403000226125915598479888734819845464366018438214199946713066019378591298913330029787619185691743901690842301788437072318849783389821153505729047001675196898252876891330595451460757834613669904085891692065790713938887883908304944559335605096425614485664383600154094269971618251528323717763040957279828799246478062399076693419911166169919846109100331416616598443492895678841229773698942211766189444480357100874357105098814632027831450352979387524539333964425558471486976994611278198996715910029282233320300541204283968664255208471745426651847388722160889679315826684288921451904646232407766857216441976550701755327763391159186117329409182345177888834606775392410995639097037439844691635257947019030157549421952315997858530033277858184857977701020603873525140215553825730961874439882068878590687232613108507995279731020602988272732342738622997171897802650289997975702040003164630039094798300245294640253077703583211474533852436394279680308380588472121546483605842078374229914331639625047096903456150337916364554393177190872440429304973346601128255462771875016852959546016130211565838003729169730224237750439266871104725744466030522190137873064424222471156781995741630683986582122192131037557059983452926894440906010065804292196776875561996589453213123746125481475224277394228925778962450855843939795675190726358846528219527984676010487544044392215551461920777914790903002501747045696377519132148105619232800945859918785436349868563932704531739650166472599789551464042126328842056009379948729340557835608546199205046102467541386785915900769178888621517320060929271955177050733595043218229882205646082404847839540762386220998406025062618874145002688929116908887099850902782446810503259800041721816032929989789219531233342152345220063728971186249622436951773238755891596851812842110430032999899851266630279752846249498878938188941352849880270880679835934818860152439957576885841690777123022459587481797003773553204957870154072899556938582705081828092866576868401194998547711614652577766349144292257445583298566128138480945645274089828978989826726724402384088330504315889790064062265330656344027049891988621907982448087478513789706568153206290851662040485506661834967952485723761177983667534771089308487359653433007669062346559483898238737186673566822134775077466551066987818687620429959255409966849479932753582729691839607586342577021953148204673177845903458263505373264182523721249084702847045485955894479894299919217803998705781176376136549430730453260571521385155954580095623851107524942135193522322217188518208077846888759440589194794615339738072909181233334316030056701826156768868804696297037892242720096953612879257027814528325923277816640322799250815300856962879068242145411939286939681862356668832621150610439838207112507083224733467165516570387169209630273951501640679420679485746269814339531444472555598657521630798505790448636004555502991653374455008361595691527011774314430723322326084495937197190339465309257201993349896871169043275138264685007326245854364462246025583622468202144465917727305931848536556085507725735293858583281081693609309903240171303671399997740609994254177494471939657482220054030928827415006902740400074848730555110858822238395931244431710438779967494651397846272960678722043170721826636311035149249592786854955071571037214827486280869046310516287592928550863581282636237579573869487076118204026788821223359166082754755345503703985678268973053027977667268137347562728937279968130507448308305959205556526319003134147433496315642126971971877364713661359064855148468957239906706518511670722015628365015222744269706111904591176097346259730343596033476073804199372892335712481818756761291032212834166019007843311229115168213876034582423025434240864522558971436809066426345169013615146115685576760572534184411892387165435920339283062017741140394023245318493699581734768509628602580818966167888189108501111178197197072352577155025962258893015924565046808508072515848665149730957523210440899525885700208776488759976714751861397067597614644846624818501071731487689550317083079295486247461372041728064369204084951452664561075686120763396622601763610387798926933546391308637514865140869122691298387328454663160745880980568367287482007958845423930580411122667476864958283488956638744308025496750778428662530579800770056961767374792026977842479929807212029828164665426281806975977997044800876755460168053675545252135205930431873201772651423093561250452830442014594281981787901767022678634113188051276277145168179483154100399353008485473697827279147501318099700747691621726157471858727681025033071212913603469756740445234517898521644648716422242351657998766540243831840438981550916947787939349414799914410765136197512126042186780764498844112399019039908765423400689679546059575957395771997620625494939938046455256584989298626835827534969168308876924745313157842853308423501160927067665553279200629952951228986892457975763231810086840890233767014655946889429196392982832169952160657042745391551517155749572410804170303319315892710099411734480265140102702673527285353341831920235171983122579742221717601298291863445804180241627008707455626673394253258963766703474674649629148043289033866706042202420133028089649334261352519921256564640659391235100333007140000214725127863539940144494174676651847710644562761493903729102766389699157215337093128606247924207522579889652078152545992966446959042725850353867775861415373381292934961020744201764368490211715317036318299896848053046725718756645745142021409798454403143964355740594347079308645573822382572045032447794113706696514971773614361138964466296973264171963847778040373260827145357735554527359052694507707966716630867465069337040643333327078565615862296997731808363443279345201623778921910370282596150884786958799461838625491350336797271011921975482022525201258126091086785069326281206550034856675414109916719165330869246777390845153636279001194343540478704375476647378704656245603639343371074586475946968971307125873138942521255185273310155272080712747303356383175326820454065316240694789650893430865871873675212169559921813247188053205705859581431386064544995277379711145258921428314453447459791705824384139687301829580314054672401069543795853077373350800139380270650711929136551062880890020815796628918208200388223803796541951942614147431291507239622483210406757894153422549549073574900248336944537196897359875121335861534370694137082577316507470455416669799798978366355201563453231646833459292397472339292937542799710054484998956749056794033960074031384694776210793672968275029956792103115440526309492910267533310850424960291593923345996820196352918274645470440386577211475918137837486836893256046578052783793163629679515891520413308447887856037641629976456735095031914409741245149685529209624193999425163308309799432208222295218765751750892777231256053902026374146754192547115588228771763064020754904463547376001011971709149025069891503658415194782589331304057371815383936371077305383653103548085026461776873813971320128654993360439565911264243032150336257884066711130237909599317319140786875003011633126688822925186720591348739041774242037948206220399316763784457836393527207414425749300069662634280421836422596754331524617829958825007172010815948080963043635499919661734389646635177142212778928211176157081777290999046603533896259149975525910681638588823667393247590098513262747659570152363810889740650215236561252142845257139271207822009589021685058988843325322265857459652167145230524632442846775602849655579598660844810927080236056781656881313200462704058044463424068553940063084886772097650966988449604539865850227868299923022973534038892547960033011447022980111465627515771427001496847299082614583342843222664092908675132095439659296298785981810176820814290889057186447506998026280386181755836632536999873173438204740477204709408186488441647419275342139051142222551909074428138113113805548278612899254945641542968452203536102865421521077532188048082465007001923013541960044377079330761118086062265139701541362152299032518869603046787336234369058964980615657877717295258780301268313696747649736406726855269287201057921625134441239185197700788453458472079927010869554780070401657030700321721638754376712812420842969518007524072058037806510944243708286155281090957808188750353773276137456540236206263340617169951422237018012827918852648492227813391981326675853665077317546912759987087621664151088213519037147076314388930375744090221436895151756041801080691158476188913884434710162344077930857519658598089354605111200448797827943630018650072650787039958006897519474820382857533315371857544058318168801779688245720929187508918888400595897582142125833079423056096956709128401946247677344979114214120746247394482811179350102577073525157766274777569868146575346881867510969022804828152541131528455810317611664107332068612388282399043850819997625629557516193855866185425586430467357968144295626628856269200094648247241497843498901675564583576835867918283290318623688034703707242315562697585061839030009655173731523662595601829387584268843257198048634653145923958723558289042926401332947451216958167300306127635234442691121983172773451189760364537082653017108597087917660746818792332513624268659392243666142152929805121634546170237112689048637578524595245369503449378599527183979959944123741619775107945429403588669024358995197930021166393663251438047585709298505485676913709236962986547813384246890234635462314845417312872365270739815856789698296022473798712056088185954965211335006969613260991064839545546765637705747349813349326884420840551936599062374743557042423847328730984582775261232847817006357735069729429947515579762886425143859832035630047350512581478745408879030095135985035811395792933981351923527646477019341599595559937441574935339303847270781143447997167929936129854957780909659795915079553891503795239045748213623693911206913449167829097322829530132300554991069918261598198377808091713822883195622155870109822069004393297247927267940061191676523651590304567144895686528979780658484732701798965930157890078475238680806227827872130030907984699901865208323832686724160928268624598789476853296529357142959743378735575147764827609890047740868771232315710379201879739801948901841138536533576995587813147395055620191233485073677480368390093275490513703602145717742911514695961858859440253698760619169425952881813520442502652612487719337849574570666893173027918297169602355374180734453645401391009259768355504506111075508196121096948386136094013945621486561360956287568177498750314403942727962215233128308465576582823985485745644731197161456255771083677312353153768018390120540934379475162583883651110406969137677016432585830955473269597229948268092438742031279108920719708595136646957820197779858596824257830831948502398011158007410724400517619595402127845323059052174761065293087197462576504171487533927419984245600010817835056587993088513723276186403983345603634584281029911147214845214771915529210436586230021774167231157381820904843587434116543270945565483083969408862624574064659034705624284689205531654465829419033825551771936436019472112316137400832324849479514315441961867895490853062458874580753932668075791357177379811460051848283925022379072011075568319026128096240325692781205947538062012738773391385864046706951344349760055050268470370661124313749459739496035195341910393813573491630182041187396556795613899908425834355897089377697198854035569821199952448445447754462224539276480292381618375359060012457766676691552675770225970489722805200668369101418295650828026862668780231732415997758238667800347680448964084323097956015842608283474534858935618430793496660049404241937675290436160492509994583803962411970950697965933718782388452552421316196446862514337715784788405493377689314445180441702881104935388729052411489480312066822599817554217684621506491927842168895145752573499789140733381691222588161169150644456709800425048192950275629210055101472116139100178422791753360394640529212287537932822558909527259270297672622952683151900761508758708793889911140434262014085529512979962707014267484937158829170462318600907056077182841451319864281304254132602076875910356734830274966674303801146316124362578320516564374794725517009840548396086716093805612980339072355727101045139897299627218835719373621243801060624570131061590432881022167909629984213760977704043372390108231758388663304203290419696132075079613249090904277148250598452769506053345249253786498234646625894797835622011373089231222150848999019991726960066825810176636983010281007445293558282569145511302967816013963238575084352115002783816824256969095622041354931345561331141991258338059118790841921586491264452878428989942606176191741359552737069061290734942884606511700913162980237344793987535673329079937802714617318489046759371457990850477126532785589579172995802246628677198972881867398446401403319388345992897502487481900172862954632933530872461070225942306613523995179983619637710595774712412591227501914010634750777056222983480970357749520015595338792347535646995517154070829163027280860714956396271972659347464122892843993178318981057664690858209228071186456852958619149010739554057204923029609266282733115489088536888477354383244227086651299439868072813851589160330175438246018874851743807686573509078165318490066462883527096622184663507562312398767570030920022416908112989164687130866499830162642746385826117937750204733794592267060531244796248088325644466478663366336356006934120451334409455896385953617818322696501456475473899369141184544472837053425864728626716924260030896437009315383548936892316721627528461418035548558848183594360025676489719997967995920832886399284311811153058697814507239531893260720575594904008596044854177402413797650715261761144625007782838743058875544755896599942754957966319624717069939719199931107161935640034286330944480233977186431232314822611641124953425545187225571221281483777049997143160189274386662068097603737743981402855695892367223557972437694902024147579411001468431114957888304293335798293702611542934541062646037769775339438054599967192026234165587562329727168129862196698221245734985784368571616402933856260737948395164231167637326499131867664283448924367518525107995636800047086402850575979997088474238269802666746691989145843436596449443007720414636361533149835161619841857922394772445449241970484060454948154919064489806158049091531303790745152631942838487051238525509802581424603134269192522039481390715177679553630814942994923923538887718040729821563483407570025121937383115616581667484521129698831403196026660123913205483699882497983675069159340235999356049759998225160956968469234750411493522088538397644784691580166245224853040019645902659691572441801367635271600076082330855394583971861680902546233394983476066650865212697110011003688683070435646931417477097488511369670458312461129442624073948070592717139101842672416988235707509867536828656574425387707732885977482574394070541293345376401354759996188414627237880308338341339150995427436483387819999508127230693511809267033506480379008232244207577451217671356813805391567471278272554484042381099872824206715897221422144801335600825843613917428086116464019150861210520855244031400444545005393396845283345708168033236656932449573055897487997824666613025897539178371484554363758639178248908859800253848550229601856530879446298410680400727371244761674615952035451279747479998326499832263122989421559831675114499494513379174341546261828430968898078395942159985112045131657040326043769757530803421438686623657438448812451424874535602040515347825646202384524322087825521162085743018099526165011455369801715449801048491962328085003551151744957280806828682711814597192081242088557797213316014566171994803981674215489509160716553864100796581321053452245394209819467795454484744678006302224177758831773158078726397216691858660747798954948468230478639765321296373641535741681119574118275659730726708440683952876155211121250032989154858152903764571297350894029947982190474112556331977414264654694304106226890724130734077684636511935776384177832605019277457362449078670619389446932692464855969788748885658919270939635427441948550993852443873191380026959614071707684746702483292116150038843841195271198830705417301143993372448766688365858959477648276456382346313356428701466297550751374952694627262397858365728859718801458554909311771051672114797448589962164839082621254249004902863615092532903891057520313935917292813593418987576511230688971026188273419990144662667109072802703825294314693686918828521474945534923017696383589831299374926854433112395289582122942270979739346056460409396407819425594844567115099794295858888579864338159188267349749467473718458380324257895470949231122564273744428047385697836442962010033535560930426304611379282771299596217793021510807468507667026449107676344762952727202130159850590092706069969249158182612206443108753804054584943902736956441849142793698875628326290755043206639194540141310009906945461931545244056914218723485046134554215560972039975905133511245595286735744740747975872470865281638585118248936180272491131021675495184403798589457523319445018225529395009178274555021396368280937462947914314025357544866934361503148539866319907366508366788484497422714489610754276136942234296245935798514254969262615436137391042986988161330882456530675782861493652364442676442428448997126498788107280898972708034149249611909358003338706482655008459429152003120337855421794354079430883071427273595194345280146354446632829972829797563353989894137997878340553687965859020197991786404315318131423922934260869720635766877413015734100427242358057343899883861866779762847310751162648504617700004916631848473826019487745446280115643835215940790582025923045645243548404423465863378212650136627969886587178254560547564628355435498975773692986447473894624097631712022112575990181909428643939840674262131430076166910450387366344742750901229435080683047347649183702408966596754882116842345383270035356432856982573071085188863371512305576968298231011858139641977688697954240539669896166213037543410158716172861958529637308507161342363574620727557715586867355658022076718073768924846860130331441719312036755942782409443547233203074326173030934762188667136644923024763637885476584871852741770337220221011229746716414485250151646569709383696478935584868435912347576816390074498580631127182614194336292397770760605457004243650153189219542184917867503336821258412876111053752915179760304446688687026365642617058745873705551618283456468197678868783742987445023983994446817579196980015329937305188479996638160836615674274533279160788845565120904408344870604654119378503315349649728088218899047178905647257570489506058792280275663305156854851015007569337460531862678901461714612082446681701253015441560867542272934606449433959986376639047661388169488456436149290391985723801704728764826650339549174851813279862864443892274394318311797396859143197310689155415291053594767117090642171184243911977847800077455685836030325683726092449343513082372455279585350675161684490467752908490124627566774345473295565422399111342782456344393183960301688781925878402490267873170920880374914895148570599286893618204443751763216674067720368762354119535129594229739580404265208740291058114217591983644542186988374702986319098949035466656836001381565927174329335396830376978691794126545154484673933713370654127243892661300581873477182917708563585584515856869262383445194178192553129773208699916654425323606555098334613932446245157822165807235629414249890404648892252397911374878709408321941989960560035393150132479530935932947892204625107253306903850732987448053889085727079917659955250790921633722473492624570831178857636030445815888745978824124072233591642237328344992685330661992954738284166790928246078280311425041366943021309174233755297872954263798599394635165009161197183862350973236674071850804057893305178438780795174003241754483118838426818329822017952148535431852470774036086858180841983162096496765791107578615277483191759545308413171607232890096396711022271364936405729074699412149729340830185886269649317638144325299177558784653118640683220114540714702140363258609956603485671747260368444671967827755982766142211872023004218226448896644951720485898837113428997750789157859227426265253155537569766697053849939138225492895302189202088765838939483180461188047928544801115193016302140943314262016034946233661705276081675056059372531114731132228251387992837100759029063522901195663663973336977146014558075043982512236812493020997512090644885111685001271138055798472465132879931568226848585993989156420188864160527886294870518062380417157285249689396925756199467248942669162714946552350085120855476373931236646971788406953071197062241735769818089086845042000670840447508430995375390255250158520287593321731090241481442277103855736306864722017195840840608710559200770084358478214903658104174119431828919468348828655641754147116777512381216653644258075373635424903458190419355718315502499261901802248013198432418120891625278338316587338061186679956147412434162355903797608778127442789116521851406927161393685014976204572680144065976806639831497335243545152245614326803276365658419080789022081634544887676569322872522616564284424828206939390656556235710590295243840342560327177112196192819870878615166315863099371072787248195740649170156741478048936167263039448250911215186318197956760886405203197861253479838472459451722992775743639169095208816243242375823142115568676935668735317445206298762116877804676925307291564027822319221530782083119736926990883235307190968442345127681178815031309725130140327027660567019118749148293530591669519227015640879970494867109240228156071883864053743108847944756531894685694106886383385854028611464562487694985926964391374599784905500541876282708723110645234436790166460685240626021218083391620070146754866694353058036409376625816829646333609394752879881549168000024881359123935757822209574498332656156973701746416617061926761123414793896682454814643685400533633140752492404854144395600771624744963690648494396173568493145819911105484009642219990491870480883040060418233477563305338040896465657870695529948540766835917959623016202592297346255781147106977453701104719188826170415873900286987692485204428106385572231079991053386522364812453024938161626647705118844173822726797020486493695217795434258400787444971591913171950925798346399917190236433177983549684392966527474831655356383220291661594569322944743199974328301599267937344492534765759673349116435912435747363621365481792266700135365236307164309236400811180272372697281362850894204171174357434848975040943516732655150732855331705246718765975112567321286032293112462612619777187321704050664615842791948232375768153345230677675605382155184481581239181775667503119738858168285090906512738056940110063678667069074418756335205653918556527247701467645757691382841465307177072103258566227287544938443184540145831318235513834559676988911046663070818366214350050928875538351736392649595587495261481951823275715026265274492917030872820088022226308888961017585119743415982335098286812144592725846821168488636655826517795368378726839585462201997314116863448534399267883590680360721805762788032961983351952993772736397390227789032061755556349332138521440315348251183003901904687566990155853099030164354322936447083003278893108096029436101668482520707029154032165237565972366820368627229961993760231670730384515941704057652244997083060217813701952678606300970087821359170236316838102809969546706573069498590744176023830663033990468444343588224716470497992499858572496165962036982364934596065717794682355404238524918443022627396091845888235143506750655419187925262055434617437512805845249769118376919558865434663816407224730929095765078884138524622179837385221190950119808459355808636711201236230163640551671911211905674721444774763296866466234077511667121585385534100169621657012990115545325517852514815627594128843484461003940929236484694238228802529456984497112194528926480865918305722263745737737425959437798364722338536533498616422794517319549200825686934752549491597342153740225893689959276683571559183962021684309375475660227719885239509060063883107364847145020533085031572919490803693684654733027307182168201649821760050027610089587309552971411658967031675206106062452163388705901413604146493812396463118800853699911981075305487656456568240664253740554912972101627591604771999195424098169284842969621393489647660823568818414756442935296678095285890717276408980046850418304548955508599037732972336787315921902068782315613386674048029569368259383745518859345414876104138915236581777618063165518241061569096465435022762641657809604542982929107160590677794387644976972829946111278798406753311843230267047715811561261759243478298699680395995102020770750276633255590831730921140956423815574338086307818193599249458968107193502415354520226575298903556198278392403101786636028898142531605056749289681140901720455557338226578776769429617666276138807327632443562459968377826574397571706502725295484894787179538052357344013756806023876147333932037657876935525465800221587364225676960633887443816358332984802830977342852980718294590425030500478065208766624281304218829932994639877507753262612180773330875364229769760578112414297955566029210197012630292540876325824093075989106748213431823276918671800228255402725135999607890691031804066762397196097393867114266039241861797737637854812171753053903772713495777621733312418941878151235174544874017751977338490168555913360152792227556344703541938221656498549834139500673097303089125624432082534198875647995309450563721782463525912627006572521751004417315693421091107587374183133115864629705425897002950310916285290979212891816662379420179440613949363210587552943182488787310390820432083889716905947233919345580650678844639244944262108069369173912679558849576548582060951666342829601488686941668594320770374812216237117108205353663302817454062250926906416181639019685430609965108685095524821085411096177852263860416362802456154081297521470209914431736539171291121510932986359182046793478382896025628806827250100691230043140738009892827289725192808936998988634741236399512041205843074853861852808169148061787963138769840698302269889655665773912130537307710064968562397178131241756010702995911908555084498490394475884982200416432367516360492608387631920238646003995874683002967266177599548605622761567562299536575676383892586798631854515950806317621616868140694312297803009567961632621014814602255635967394678363066239176286302379074032180035579010600974929638878258069762745772271800352508836368897673888383829896853651653864642286216164802390291851228017125945338405195999932651292137826760970565223306838058879890306955890682451990930682825538728637471360691000320883100934587167990959363063104451534628735023556746071145458198149776857511127578803318539544552425322270227321840514105431875097552648998971270758724271254332839385561500331076863549190963309811536375371679544094394540947412475476906529572906049502308338976057599111635188934900576615593337912398535462179074325570083253089278442980878517506898269227437216995608942722770832176456461781109259947013205435765687688305535126207156391639381893751740584572539053166606272647239244286052249227052598271667314867480861792016853145587502621042075015382728731596327519506350175949205533913975292044316103315494175506449212740342300118752176253256143250877573502504788530988728644758493875146068142789754946005356100085982887584699941792970482519384183887610456655158041587296987632132597617831221279928591568440601996290502385770870176823404549440208863023966804737952413618300743973477149799672931319912543759613982557924694421492262170818043135885222407036974267985034315827053902043748269002142867699892203218891233045687872406716212948828617207435168946025777374267836602403041048284934615468739037640608766382770743362285970042770196612520481257629578469832894452390159222943491380858224858037525800617012511295797351686967277979329740673156032629455053736723924055203370172493523606602205816509254564219536342615865783990643608152964686666453096849512671022165305772293434315476128324142547763946963526729193047280898152732143972133404960998851083795036356995940693607984895164139153921524387375410955329569674408838299960028643851766725208487111330009736463821932029197304979591851952330771316279163984617269855127524487738955212339217129252568280948901326327741896155821557162388025956327782162806488426853428443160678583469619652538637137527939964224110367807691541903070887567286915404628977077643048609302528935577559456681911709895823963363107776664724708502689695299298541210648261259321267662634012252743886671778933372171971256449478812122595970146805802736459937722001905442284703748542421544734505602199739385069217504266080082698293302993598481567146270890401409413999038244533800362341976731844871157258320969271442202584514702970127661435671002951871103845030133545055659403420755661345257662841688982694241947904761014215812462685840061786777152999533902972545524427908100550385911441894121418797798286609892753166369927590585900740021653209265503276865421952667635386112366502201914757014333059030865247693489316400818437214318367485647859911142332001473764161915046752899791421460007850544310266764752115878973955219730143070287224631654816015535031543264535324679046916094671656132275066402000957009922630375152041049731635786785284579883511487584274278307631109459033400278719867735445538299816749622075224445999438238249713330114617075702290060847893851139098750162662861715959082350709232182292868415174133041764166677446061157711913875043470927604037527095860724898026025904913088878397605677286343560872781268116893947328026059413836189658142531844543300719294368432341509386568358344594665729402812424942727667618365471890522011123267309430343231907623521536785766196231831712711133619382276957354451128220835237801566873514004205836978918781902005991820464392177993996516728029502042025121731546168831444695979711650638233321475410350612743924429800416346542106778263512820300520064370525829399038105637477545979295634502903735683595246575544740205521122572666383536351831922059712623106270198743974266504500364199983696717175628879893632400884443290768958888804539087243657509796339850493411400435829414968445656629561551354897170477869298474885680965064664622994828197264178043579758985672624323153749753233899926867237349021618480062875325562140747216487860178082416037857765041824087342915504870089303821894701999370222720415809726827666902123962735218222022686409307371644705353950272617433633007632156653768273976311670669555938670940737499604299304319138101727709479572417497709982008730123369662119680350952389951798319330531085856629186996447817676535406077391338592822334758757087467077221484132589289680471877157735298354191876187098320980819627057855375284061357597049521252661451090910054062381887682331409927177445030507269169103101588360365693718802922191144720900810029519203698534680336302793691966717037016433984799106301188328999612692938160294870493467808741658816135049716729793897033673956542585190548782630486401675280265422070277164490643729785218702712012189102130114570613884858364427853345085721718269862881787680929317698560616085735956523533431368699524553444978573977070750708680552962229716546023617231221365158815235816279129559669649161028019010096584647120305827487617048329225265923359291407305641986888542783395080619940735129605579939860944163494165587103727777714139778789314244094937798696511416543418646245829541508487659010569579602246059880226015172703400338058264022553358109959300687419361460358731878283838773528286979764606107490566807988917408966835351169011675529985102622977763047721375340472691305257456675591427643644497427040752173857148335288347079716388090574114944239467244519217787496367818566198899844593686684140670258333215735126684984553316574436188161326891629412612026704185684080972196671931808323934843923023859842038309706125773214599971786346185269154397235965850409783210027751450298684923385729093644630920472942489059007267074407293817336780933201947841900326809062921551907234899465224514544878231529530469176269534077927394256737228446070369425792570254200649241583023949876023864720333616981386016431598101105094782037006976423201539138607520300092585929379445155095572142344057342992138207739879139349421498606205618240983875375830467186633771939211633658033647033488183141687462723574345804671805149554509267015516774138247457229740886178874406596077563023463724386541448163985211131822434566477073958542244107555686343725810652402630020301106137073361706021147385346494254890687561906704022269690716226728113348758173806318975956555705220916059248791968721047663078753333948127355901856612442643112095245064172987887063307070265355106998112818904192409280013829336403747488307946050109526057835139575798161940167892492202214948433238678462511555433220531737625745847158258749424234728620461957014627616708642727056742285033085351434857148772979180031160284729536685166826835989539600215454218580517472728324162578211408072250187416040413779880558745856826133030065961513621611694268743638652236285255813870497515576907913246108488956702134210977024571370082385197518828646956958550009225060204841321270551704411659151722293837317766116511566663598476931424242754789112232708786452594676729438394278503377255166168922748086069721309444250466483619796097957206181066551054603057502777280395734073519966623874133628460468665431798741483594903823673467515801382590113522046193577892604583539316487785005370455662073739138481880064588910581285738747494567193102926200965609122238335405279000685233933754458918013201894642275494551995002334818535818151685942870688841558199087211380537343356926495980840500376514884355639721774582272712265473206117368342069186839460699114891352501822701110291943948490965536620081615387835707484071365881089178362428831935998704524181134897475771318274977508660902091336062778714995696848531396376809483861751627395269921283478576779539079692378224330797673484199385716728549406052538122123994329057131674487668463112395317294645146066122954939931811070001712779980973409870185311034050850765413789699309590004260605927512056033942137012422945482717768339127270025724797673113124630279011146289854330149802798325270966435773996005962259690045351506491297557553063227822781378761729612586571571369255942433310355674128095488312519756768216989520563251572628507381746334445523017769257585467191929901203243025139165743232101146959311435875518230531300375257184626483178094154694050201886280392599873005945576245423788482922635368683757716199333104927181835299229922479721364783225013866361499918200317061666476835122626586448940142386234528164105352479318101789921247114814883118822097966387938091687796167670700285216995189998462846418580003385630074090693551783622569804043263752770247054472224353043818326665622614407348549504158180172754323424432982082531344701901074294279302744913723296710801006912257507420156014719722571285289419732660258240557419061988611391207333863862857299121275452883467524276025637356333612765634201178715144795283319350570559381266014327965520740686609035656279598328989867901797591903793754145853813574088732740920826288151675400798824607597608730130168292997773175846405356307953892229264967649201796044876407304301167609454356368930854528398843174046182027929419637544861063302915373272197093669516704237047337374308064756470149447277167722134545126997357915598007160274782914914216657397275201704625647837640674123810513987627279995782773116098412604514524930845308851624213249198224845531614480465218058527462640593139073225895725706239057897944038297677423610882324154132647451137401952188874770724128539306780121852724028794562652859729522380475456404650383407063155296213310520168516905292391535007791023670425091276159270482076824237753693074765203458218619730000096033199905843910137142235122501913726084611933507542635342184925613532175272467254347199358954154396539402725986848042516621043375588975845072591819421023965334129247941203592476710661435999053166554402570063907834535379851158666506405503005105315510642082304993932861638956329331231462308383413392610353720907910357519085535692400055179317754698177370180088072916334145796565648069494607824197930833601006346277693095294750337802564751120529655587791889657325964653669052915013806605634524336396732176044551642235924105913810301597099022085967853986702722197879388208614963656132647169376716926793830206712916037008194454904136595781843593203751960786324732535257168668038234237092459526557389308855254204771444171940127317086616017027282492878588095114690342820945604867202621915748934141067112894259238796749741532532908452297975207088174013721221881896848203393788172274366062562709640582261079972414654807548137879037417835351251756280160377591287539939240097543183320837172752185493900302295890367470238799450349870539906105170940016170998610975287216109877915619077099487303190033578963035864481078721579386993089235247504089300949469896925606441802021417940055293145288913677184235146059837221975695600665147641407473013321644527731543865386700033560554220279680863131708750983748463844844402676459076253494062342077195672459521819209015836070827820894549942141420105788056327171719104388889534714744432322657118348961806177830794667850272273958645468343896913577932942404434339176786660813328788119241267584184708718895478388009762609221358807465616475350077656716980658153744647799224407559399959967017828961120966772586814958620711243923718152778921876307577671566378819928078107142899580169474786339609085668077318945496511336876417492805929972496092117237648743478515305703076811339330317915597601546916749085396260507387560325821736793757161650241042220549603354839825736977419400222876941439582243869334938018927625287520066372622610260227123443260010393098941040912480551986464534957000005353710125298845985212216253038310869057985048256374244459157211414717260235738236184366142339812319217350576524141572359975212768804074496212521322812258798510429858080608326020404054976382965549566091545502998876075318969056867337259548829948394556400955300220668657464434639074683273320902133072388655591991401453777031768565767856173348064124118408580699693210061716803712030953243242942655082041401774474443634850857615946902420569542886010123423235763563034557573964041798494207482977419662161483279298155580607264576978767676630606528806533970651473518510939876898474907134626568545246078107263634167054492481008557632482531482793575312374163025998527404034779145308955630880788480134730251463084830528528995020644185344805540606637773516038066252530536018463671797283923919153756696816430531100933705571886964215338522779457843968581905788741495134726716976758421815525638164101002885990504491052105238470527802745439413026627943619449380533737453929439350484115287413159515945108971804267841648491753038289670908828606273520022125935580524488333646826337899363582965479215561440385699379719007938775005384973246665578489998251227008449832118940830443050035186159224330977541290642621422677918933241218689493870891900337209081160934559393046194456753154691867846317178871169641162536540261014869780834613148194798961308046330586400783451907261650724128341418350725130150010565796992365821349091017111050725603286325158155940621755656842172137979029121457885981407691517465582627910446543385060490276199784780047684940590875271069837220935430664240177828686458699769287400519041932727297554453107787629208967943440777335268589886408140742621817056371496780009020411592667598816820211085268361365594156634737143601884627125689094419763748115952439737578558458897380089744163643695229267700516125351826325420606098915983854274693276889492303371558918176776677621506270209634157008199856226299755711129031580341407755533286800695183093859056285844310405800602542874996099361296698251293551652220601050121476553324094882988939756417519761538555635361404614044843272077005557809854814522797652703419601885743896663147336507162197882294399841325119515247644374998655517553068815677630924520847976591980315789131156810711665143217229001478450709931964588481892401116641339003813230352002217408841869654132337054237039408899566349934944918387036363225446632143264327111956646814313554512967898277023144744576934554763838198803321943753189890470456987513209991921008408477070603494361304754427860673565454621495886420036489023142918239791274640483792806854273223977066101246949029484527159049325786316243271076108356061013291818664042530564302591922504770086116684544273024667813527614009884658205399694794576125927150409617772085071428600680632740536485218581025595431375819052820592563258140276952674494695012856981947221871559694888837629843551828042068545021126611271404255937941067499640232628843242418239859651369408887788494659156152031643406537436108593993012748240702671726196115372594312643467003025738487994089133972095572943324542114993660186275483968860592654996550550543216118418584615370444882032009303428027161303561376366388329713088187059016471446544180370591839240814062664551874412267283038564763677379186148585516890465410673126412760549017360448889904172904119410213865316422234071633925518418171535951324345914849497548166281476738319652374746924037657780948811129776605633153496798049421725369565720501810689397260083440481722313391142043563986614328143134227328891024917047934145348037442790649241261800142606704065117047447060908182981936013894581343708906314917110287572453879876882198653006049170853845657448028087897324329597696577215076619486198787084892958624275519534250278891347564973805129445367148710078838567929803121492803559030625970095844008579764336429243427985241518629992319319952326297207720730217743458899190553302549764510366622416028938651480121097024415264128540256712533801618480577220840949907548129453235082662414059213260832820645847805509112206214301840661337233840966099661698657715615150508565053529245748245015639571450467096218614670234332398869731636311464775837704021616629490176093929475143496799646252929100693192848513739418003653311945555310813219309599119292653799896320306773460681341909926201530459104046191376017822366777743572253043975990476242304900852114277010408557303435143744099387332671700799812874452031705933991441013034942031358467093635713486282341834196007161075268581379823329174106876921654054029370477433564826754764057948705528746196378852809440244699736130500788851764112993246927920565093510052370293104665023875899691318623011641681278863607327756313773666949416054451081658810332657566863373059948850623822543287691686383120435584533805826483128352770566931767490228024334177538673821479855248403967195100560863236642735059915970069562721728492094695284507029498285533261317446733391914132547432594204539083209392957162544042814490636970763588439925298185230441672465240621527993926948101571870671469763901478387389982535578595418740355130922594157855941837610075372888254053947764660751175936187837984970387841837916210120570509815519844338809609598301207216519161608690552194889584211367784464616751001327336881880479164131614453735121736649606056044070426980596527494261165063262157229071679272175439343975055988631860184052346486993789971650451196742352979294176749679662848983621663898196178735615327192598707567845013186296570895702741729110395219789195423522089823120499557979064196412311914251579086668093484978999787224757683806547401708821781518008485199762447294655305276812434194507235281901931383879396994442252798617446576430188609217218287773482557586759461638043406117641609570403855600299560093864241841305143693781806143895191144739811684316376811355464914967074572362621653808617760916191609752345066073725594828140566432194913277153420802189884381442667495974197011456280397165604495808253168217139627708982586780048499456728206688165296246379665781602793769352140948857841704200887310009584058250038903396471539722072634577343090758386547561310192055863639206764656638668701613454805832496488784780173505255030043441059767391933484246193779243713350004875928384679374054197422586807349914544369594090632698291723365201954376173830719584871257324742927517602633271801316420695087326902625164140918209460366748775472356012349637930172410727297099416375499073625387916802127582560470234082814331505433123326637438410027336346436359698186118560735539758424984752773324020290001169204213936526579710566171410334557785246924593458332465770916177701401977843432750585995919317946898359305288088117809440453735696892859475084472769538793060231518183941678782720128126651474472250319918527096671275191236196557993805650529937963720326574887998038951282608620851176570925944765219427412076683300791911281175845829712903188245972761955054656778256482506826740839851658465561795415489228257039686894006144576554963029700573344383587851864967657826561060473176884237739398750107379982818960251922538473374458475785099421614846000921089976517556674369427688507240634807701162497043557452822954726716979925578508889856525977696352158861858916772819636501191375100007005415088776259780003605115392662566871292396661465333227876054697261530148550935291670965424155955457142932473984546138613232491834670526257132503071856117645371455076944612032926304123700370446720019445883170197737931040123722569723722419317936685346131331298094047026305420077226940646018377370610730509578125466977023413124207994111876896186838635631942611639918605665805916357424171792763648743018593406254086825292081704500774432030554970658517190021431629028177645685260173809697989757330028836708230069113711452191864123745010552336100289232064166612799752032642179736257220111092754763552593530304216910304909479103613407780477113326781245542332988911748786283123469494024704310309541713841212983278290287649482660179682568331514957496223053102740291409212428379268888801287797058535473973431092790842106731818221663163574973461078794384522014614871235457187034474354542735440153119294753029001184459200094927175798978276753737993864453167203144231650715394930694802194328369027276613977464514823280808903271909268344223150489740406076303714400496080588219858813271135856743388444914486444435785068752396639058471592487580706679350938916312147882488037565780129856064889136865582014094182756704636835523172607015263128196915731119996912429147237774199207258917340197939047064816084855847914466109706884326964064756943344125349919658009502951564680994232884191915000489853747566971464164094176120708061153774154819565458995747904554590129194369663570902494679346828246242157301451772996670313283456846565946024044013060129326265235787443092667223832343481046839274931109312000247255691465689037878269134385477705646101598742061959541310320019352075647328405528551183289981493215005372203800060795839557674550359441994878833471509902056875466869538017571013677669639217936004746421294467885741874916233987705076107242081913428513230363310824243329369274078942524358725047893733123762483110292052953076655114069287357859731040018557292653718710219192970740144743595216537937442140628469575205772620773073163989737924360420541536189808387684259606257202489040895855863328802345205107660094407868558080529300517057459924267455908582388408537181017337343504644694870533111416655435373983741671670680644220192521384585368940868947853326439598738615667548791987922174434087925803601022138807105609991522259596054556846521918315848609314792325725787584764239762462012036120669752200550723504094137139466945150984377557274683799606791216927788458007042658581752392123768155988927897569189461102773496582462860108164951875859299029858778265492639732712673289953148805999654412348706438409425734604996751379992830497463952843902244893156873209821793472679601251809268775381674214763463554767920255206399865124670368424571838792953781047517522528273048850628150087304408544786631461172843051124589326128718445528094292234375876294537961136871080092563400577842583297755385339292320606801469284955557196415326774790574830935840518522456279832550037614785336940264256380881369576121734863194893712863941894046761802580680824134355048799254776581313962675846603935147072853977449392074336810334365995977197370754652765970014628070592553359161873316349649279049844813006709460330238971020591068772824024014984241128138652986983950986201163622600548872814831638566342703537353637639076366806604798205606341536834779927265600166475598254806175980587671575788674421354659349825624356763085528733437483938337331219607655751655764133496703025123353336392304275791764777267302376581500775703672259087958392857017673778791844517133225418840390015986349459841299347027485080050998653639626239514145959708491243561140760915738097796482656522188405811315188961301791406886103025846898570780935967206825013089048434279759596108969050022579233354756554892343456902997586822290121482762843744110415770078188433601210156874976416253327206522255831199893753708618586654991936903447497944437971537439089711326388936656359573889060311550949096472772243709705306616057795465564498071304334489474436025831009515363971123425703520005702574630637376927531033879008032211354803870493962947750759719190867750517637249832453892505641220497795030544201237164800553148470261163357780456576382669043136748351123522578285247513653206771085627340536625277871288459601325118883651598137018686283764733609088627824426198011176362274641306378864922674760169949065358657635812875457409356843787772936731097254540723958293996863295456721000180157192171394619490008430884247451772026509865317245178482501669311920808907551441286503965110297610082329956250729803061169878573789667953794461810447996691245669192923834381812952124932304533208945038276997933288851398139747502045777552268687256831337855441092692197999561263757343634980132864284049457258861916942691493740992567488103333878479181495824997118178746482310645641721348186059647612788098982623813920767986790187903923118725242532790211721805869537817469258151416667267807375261240149220905472128986337781720098879046614407892812235518774234310347844540277458798159878798592542939175330522890792813574318491551646411043171048745923200112883295818190613343766134232388977697193339699233993921028673822784535197861829976096099765748331608145731574944560453405984807275126264741026198648831997023818814951989921154833508373492766183272385679406682181863327717061157933115878416072292111276319735974736657316674555082891170417229986431507308372216191621446935879963838700848368960492332453994266121325283447674133882137866348904538175698639497039850572258855518468374423809383346189832930835494870072937252483300575974845144872373985530658645188650624230211259104277123664738909626597644042489158722043163500004652960896350478096267865027606403525847724865462709394517564483854565286735686771117851143795828424390359233727895061233167606500390064581563696126402517478363182381039877305645086066120776521948273259300405179048748293709017103986944953707424143381711386761114448554136826208819797721604356776332894080659432150810499275589442756800119862671331073523132692532843196894150955471126729912650770080886020313074588214036244619865433601854111631417370188509224080864810744674984520087309006765188500446228278957754970917173724045653099198706178098004136848930394442764639820273922179214881564290585971600201898871917963308994996568580108742161855610939691566598705375790591200191456139515378736104021931013830859196357601636579454933026955516299650730807985508320176128043384285104788064527258465501201735878524044398097827235739948968063101481619410258269234834142099073642917690262533406172301244578388472317608600779228577231436475539726794527168894356698377641218788240947907376586926458381742933432956632596024393598471226679757984335950107288166105089129626554809824099308291810941517707424183453403174954046985903636227738731748403964643170420889486807957017785548617068788031690724884794000321093084451515136568610452176379115138043504530265384597617670739551097414666041780707908177306199020283848728333410347979872079219183123834161469586004457574602048173885398275377490679393637474533542768932822060472883817941792568365594480208496575332610543684616654679790827367746720796960675791042595849188954171834094696487526838607981849042801798488153267576952675923680804829653680130369880855931099103895397290111877299608889638332724905155371808303164518841083160515241919404666035148975710082349321320221575006033432623559955514114326460762449715418620081429063630695673271577573951108143122717220194052810309389437805649626196532537875370802753004629126126813215318332278446374269098032816429586605160010406948976025260495954579492322642831923801503567092588299770892021999304128981842445375461954834590388752400972897577667308724914360700211052757498041312374684511219734731095790706801331601233938413135158062160948898829578217545303392823918900623841687385753629286073018002728606469360212266110150546279434932813423134190250649750661165480475308047459170165639272936928951473566344201301845544701411437972199428639302832013359869828653556437393553706055757084101828762720429126174799571094079713555437524054101353357099338042406668846646610629997005003978594893840673576155013645627937822312900002462851139093464576058352306579627425712249651911075219515650892850710762682853235641287354609190109502358687309830918000130547426783117624242795967492969303381456017005603130743360746084668710096145782678964690290218298465750950749976546713924468478604937886754145956157688454989530819189303537204271691430031844084806263854403946670582409965130027891857846005798875795286641933753300405932823006392992074539681334676429298265273464252811471188691447865675202850797146507727315735507918713189942797804054664433399247521433067259094531546485098831078523607434975950446344601136332393660994703480475165371054934514632978333775132879818059042511784314657514158071827675034280040697529193322926167751299382555357402741684278020315968345678815353443428689910078220961544779172398610180903306403371149676064652269551314628721528130236585740610328651272600863316224996851249280077518187970441087516854301345016469927744731553426155651240717305239039530562380512964046952997903444399920328106716251849514559134620817930285083500589962522935003088739197813538197082347754448955313263235578373675858576523265262195164039052602946816549071304925041317417337197764651035988583640853694592494594487424140963442588357316278544365028667185284560041650495569024064062812689076266478725023465705635522407131671602104814748107515923318392524547571604200647125708833178547728923641216359151963300458955062087334879733825269036040382267114545424924336481859984887632057681199511953177840640429850705344650633937391330007579744592957375709109755695098039931090372183455838375155537997587856355954033401923929399671153952607335367939519645962800860229231114186235492338554188664517208646575395351654567033307415445943819789617854225771194473742600660014032868692616293945417417909155795920587166772140117859113919044005304450990520592014473758459892435005366185478486082867355925065082621455129152075501145794970265300466527808148847166398969739228402847417290912705946928082819327917650537646539345705219871180555672031227561554827680905405169476530300852167358490348593352596119750684242477332374184539829335807378494603405110921163050709377044165244280484326273488073449732324312477356154103178620862562750722949495257706446376242126003404284106099504496319923165982174253985114754598739877367626613993144294366661996447990198893812194936154636827298502817980039201983835201787718619891649159409704716130638705550096836411746038467815060630423565762449918087835861727226636252696157213183025023319411836850448406482230732248357870181813598833099590262141358337471830991737864128509313671507988285211217544209591327716225069868866413069132062703775699910218965814150305383179684350870938129645840305804276649256609352906103915199347920235320303777292964733004420732099031927673737445083170137962502937379940423064044066730441869150399408024114264594474867735416035578173121721027408812179448824546298217958818242943257812192883727370705237068243126999544778929214570218055434806394847397560788191489488140912755906723758919448239190101127832389395218472567067278249665883662867825573807509584149666766397302488266990164690229215709447438049489514285433729870234407869408375850148082543282672406864775687873832697746674874833625664989024673588349205341578805120948540852351632587769284401349309014921362722946252984529029783257388117848433840510909679004181315928783642171956118241760122066283961501517154788765848557525477323976093980814164147548488752972468351902378832270231814433998522057493419126007440787310436471535790804771225391827883262650087278992460003389897452834452343750669234393948488300196295016210859340127212043675770487785654957948514233696799238083282070013585247280185318383670641153076462221714599816007896695641678842392627288131685082525372932422124101057934145838617221576695673011891085403274952092445581204121961381801488827851495955025917781475118546035254025378763717775343471945982082523372902755931640489379346930858172340422559750607294493646524522830077618608582710101297150547048750101112882897415998654153069937112556967504283064419994378238778470744977317156316335500097674052552109359212461959273404443654119465831076191584267632394707598335562258837642098501247578120144245711329402444458873669211557420024855968267978878692247957458130325197663373601516129554738296776387561218635815854691848183042776448474493207054295936781755738956452668828690915798156132995989649359175353007462723780521964427375581251975076450724061612556632241763518416868688349442246223380130297707320975496603896513137459993265308392941547564468411812570658297313914437985948135328691116693510319102609997737015222885635956122293536816269273046603929794661429486682124237822221080955795881540279622557680321271409354904786451363432243608157977855401387714858569669587143841131333852651598057321042900122265064644131369170493194941076817398943403246363227860704216136453420431136113584789542131779487663637119531902617542249915769661673554156590132177279049902668808820005819192867695861704997758807683982637481762665942405369245892292435247168203347982889913012158935417290463231145482324600187720349716753888153001713659354592627045213033181979625971723900605037974011329636714875711156998983873249080011493354463401093860857510156029472263399751810523406593802094074811524599285551516787825685297449374809514612212446814972960139533353740663853687895934324582888156027097475137302873411338480365209609294068521882180136446392648662743224993359526649791142377205364192894849560732422631282899296033453860576507689117904479671353521141402516194949224944070042317537255797295210116969204004027096783551776605414230662651957548835382363091647031828084923760873689432016766238331782643267377223266322580541597897446535510950488439674908739396251499806365022828365278070839047170406324021724294673671047184389033343688141931254937838444070485581444293620648687933124471941390967891288904345662955839714556082677904167719397033585127072547741477927703268867786176978047747339492763979480288714895306073563925367288319722288239260079166715427648204970017548418502153171121678073319413420269982525848063231396467671754488355013550823177907991137150305811311868409166983468019411411306647563441817690753004607404308057699918990778638023832551364093482751229521059301569134628792002663807066644710976976703696532999892263598110220022224038442883044206360927963952994075133026121088230015528014649463015435473332451818496938401694990192056921116649484393909869844864951608894756672958464922941646422260426765064683874639211601172236120070295087702661790565759008082083436523626037791748752787857818291742433596715308394645522467928436428273266372215690915649841488810781110880987485403763009083133487689473572621179980129149528792680923647210773894661527633758550010100566151273603158869045493723449799892620390644073809260109036164964638168182836096728962300182877710576802604940714583734597604131074730258682433344459842416657568344194285843845687277663873713051240564019891407374117932830383662949393513979027271658156641342934317077968178150252392644780588632318727885897527778617106753755570200687591767578210561973823302130991554173694096770798287545610702183486789020566964541402143431566834341019322509842259932662344926785673823828178738915006664847005661219283650943677132700293506705139177376457609169482150179700099282119840842049405772973221011625822435729681444976201105522763248918007896395472491395546382947074545484949596907466671356843997862693628613645336173081129700430924365772479783896128365501986847961678770869234012356915752895687087868661991859445277633812036157338032694613737405776433963196734278426732320403813246445368361721949538923397866019862588493360542411312419943012728700390680613527817418014907841511758482339112390393860094757752013315182149799693382378151928659149626320957717365839017106822282730303595684379401188807983474145320680572257496825793790894936759876228810098450247699884287603954839076588791578998387971448102556850068981242343055642359358142200607546285408528880081975867200167695340858552642471010394374566555387327845884150375876578990453340885054606911549170386414400307810251550095541479107253923238162562291720688270436303833462169555319612747508438657598076231795032534190473146884246066858854077075975677428526607430040026937618165416549515655527878562572866819478061739409094461548831831530207158914464865214232033065935738378442350187471111342199002870258962183535001514585775553145559601979079528330177408667675612927331775662684600745579481422903804067856158244009989950843142931975857988713328942386682629548766359394742776151290966317879698909580509759481108676500977484904933724136070646645448073564669968191581382413479368118942956313983926717101895864858593280383169107374836921576456168046085275859965458278372337159406668525168745196832413215683901525409244088867499468504390415106985071122325892289160310478968399631172933709562610391777130469695518201788200779036496358326653889490217178254495741269840456724213473115329482866587020769230865616472574815234476104807353177641376162192828734460898221156176061003185550363813124948513474384518447626867770686747769108779181800299999392812894970353897576188063257248152810882327335095219783987880405110291659139989407759683675901872278858860188383077029832132018231697743416248695243661095815045017427863805670235631975499292334525254753529993149407572681102130323450652890758820308293527178512670494668451914169699996259323593208946819212546268117991632537263477034909932531996232820595349558845725389297767206657355699607274573247364658866644918557265600019345856287785382585318729485814714260053160669719311874650525346027355366572346750419312460543161466291831649171636596636844614010261060148205870718621436247051614300602298735196816946518328274306364266518469944150179156518288844002308911301529082630602215824809133091054228749702098348328087152724346170467613579086329879447994637359795951151357486354679887727919456004862591513883690388071840044524373082751172098696343414812622394799210179849870896461521097248172193827903564643630234351784349281720786807678683024923202105761813207292613126819937641033038925030529576640679058763470560801319026062404595125346258709338910343293355939734532266000294881590998693880350669864439273534344242470298241293392042812197143138587921700921088171879222385212052743748339302201253172134535129718045704493450928986451870469114815688225333055392448341770730133192443209011154843565083015541381665705986076051718171191799793117904652528169717808035175500837976814788497282110224590763556788583373952239645856378620968060995578040435759580264687716430644393362357907574324201528396776226907486221177603149014361721389500075069350839562736462671766940148473500028255204413013056472105422482868849005201997470732428920668505815993062065032786701496450401258117494924448537737930099589207655089067992613703759626214075849035399636204300834177655084627444349245043268242132628630347265682073114969340616201525578110913642454334956579821060401487770511799270323552989385129235497523695681782835603281299687178566963462923293918108381765354695713972007894607125112861212234145073695826489414312312251587084911062721597224483665466969870600366094837865278926608208814033872893805297065601652784928321705586409166840766344670039676963082035032290982163787829500848550025476212473953526196896467023446436675820914375342344191284355218698283915984364349368041245968022103526002680753953834791402402446821117902402046960070861437226150680323665547861446132202297871816368409035484118882587996890600223419409971709439297627471504806044935465966204891224632250449925142935888651420926701981241918147510182428125814067424451624392580155164483939369858048211050837848302561009120736413351325765741103549790855042731447325453066257625017881041129759992765526036042767324702253690950424421918642447173724520619481560354244382231297360492542803574925623843783770828538799304568634273259521947452582785099005773242022804986163522705373300129049405493643612654847511285760750819297212126768229245801638092792251324252952999532798575417308318769908208425863823524276228796436840603221569219358783800284159653641018035290285630036188901223978038044047949828643695746340015927922657138385771348421101100144176896591747338267040657626587017224269846730233417057125545074297047956388176881438736857677938135376435747010037508025807474581522679046980951352663666205249223069582908977700057157769490437421473667969911953054720114748655133166697409108397887761665259970796773036245753808140432371877690517445331276942358961098096538166430936809145989873458118207461645926485470074415194120900009597384477965354975384466655984458017925233379370309216483104665431491799903702072314092436211727104739133906914743869901644330817122063954157407948891143904230342427970066399224525825244236728026885031363261126195552201270712971942802600883100545709614890942278085380606104564123336677146272299384982386755889198152737780778544151670463819281128609102312572007389577715840206084322536201406615984230609457800876984052635691824076493556274588279981388039993243798099490157709185591243441619582612648547804242355359890125113319475544843181718846737808545591304803667238233230992940468163573291032052092216271243236582004355316845482711378861366929727165397232842883111522636080508874149793232603006348437836184035791259368331747889283924424851689180747597524482332876703467110842512272912083413219470495649557321504993980547405746402163872758912049217072057338026326553401281684748193623552675658214647688421769368710473081346562124325444439113173523197958969892753217168291182453023595047666750654726256293914900354294626638937345252673589521764511549699519430337916349973111008888147190141151590312670198808128253560117935160222441855452717177744462099705287132697531268913994662574576762288333590555256644578535078558653054469295822038915875004427134923936281113176528647459263582907781926498745830284130310525263859492757547048454456102478192187032650210000457528211162378207738396962689091907686084017050486741208381166801751123979493528210595177682003579108955258009946937202691995258534920026949787469358125126439976279166130397039687730365216719181683119155984436047814307511650674779609675066307633883216800715672318705850489978439305448087400077716386834206542154310335857179198395562043510962765169411394366697277185613625697226917660802137925146442788697421552403595829928774771703504211252560709280620731564506905949176928771650142071789696419372190885763989070696446728234511716303460429128118200571682105712733991483089006649341381867517759721221325399301387790830738463655842672991164903771970801906465185244195948045736216901852380195932877539441233318502253546958308061367686910217922929094558048609453457011790538275830010641386586450084460063864973346413855730398015030728586635739859167807818397203600928540707154173011259838632774918721706037787785643093912495506755271856943054773908845273337239914687382108645258923502159686044334819514000593324224660873509573115307141776224281610903020610575996608886191572732257980581491960768199091173918751135395566174808059217186464475653160777139209884346603537147380092468131697551012354362061964452748186182896453387492908103040119406165327208356120839585283097694525852488975923214280240627279421555994083196294403658334311472518495952214710297050198534614800951853823938745958528338431593120081810390143254463549263052671632614597022398702545129197874338425893515682775230506865601884251633619093716269269613556918392383398036020036929985387003522274451168148355475665500352640504511924213506146299943765053110127060861470204639454869309782652295230773559915692517161737919006481778844755031139495635310873359530055969523112599783674060119000467371913215387022373467278018678641355931638254790449921741232032224586692425855012900770555206136770533856910625828172478634868974811742444598472122914128330527472143034493405973489441890711911085395676292973842910347734796460956476455802466946496402929093754918382077996880649418141523512838772306939243862420655939654499139466434710107754062237844513661400634565617772894697705549214595304370769112656126213198451547813277288500430107628360467912778566024740304931304677073713623285381070765059965056174166810907145109581902745090365193201651844905908837553642219781833431468748977213339547465236622372147142066290426131720104188530911847246893082659756199545787056826344166016232965516446666517461672401398964463631899797893989386428150506458334352702171850363961763530766639626203459306111949834502339905968076877961910561312075425721814041793554147513669777182955347274572214791650253966287334169858879218790404397371807175084773818513444244652763760583564186813690050765745658108141143500214948294661386708810438665440257175562452571829696312322616372718165453697671974964626995223096174339632111495015132951085552894403429518243395349606703123356777181959634337059096361215169946153173561112141916884953812619133682423729943685387859761289363727481739264521399829655239954206799814119839664060630728495965994479459577722016569327392081133652051473740530959350059793632091302503023633871518278648952287726253843172796893450227486260824883897456530425840640989436885148469461518883729232814116079064185507357839127756298376180959137967263482789779159675135442197421151063360042453804316904443133122695326809141267776623965772694409298663847197122003805829080975416357962195672643706026144951005000168750400290902313495074688770693032507899168496068514871661364927815323601752148229562875355281486955952434583471077805669190990429662098383987728662518147781865936977029492995084929623791675041719182459458668763701295472030641241527249759689828045891791114641559641589101145825857368563157142350345915448785260881301957470332909272837444506312798909057580372738158469685261348760242976030190676898546981922949602911765157571454636527469210406931222626049202973760367946403946432311459197284237189933322699140497756648133353686066393252793390747071881037031160934083968850327098779006519394906632050931023453422431888297775192062007688172825296817958193710940652763902948457687841247685201043645756172904689385345509743067527410096780787579801128681709939038164277502892575431624064618641944288951120259111178134057246696213431556905778994425236370518075646857921337923301779715333392976752117901135869321775952845295588966993661026135067330137694093053819618028546885219366422614258608524931395591605257744221095712114364356920069774217176731031189973294017067550321710969965508675109844067885897962375918199871736346632040420067318773879314163438698402261575481537621533411547091470503007440340771306596266475834737664007513929683376218504200498637811976967254131148846937078048815924188243113054525953312961268032258008066610713474920043437426684884402016544886052606553012687888118256409976982340030114537642574392089006306245084516663264423125776388416460729627176962211050686715324461304040307359836240096362980877879107792276608353002643017941127769697577097012588932862993612960471350959638576923419170077265911426295358830195137384232458105794764244236479528421798439955582010433435102515935153149939269927408497621787643572578714371519551583797645429738117626247416802072161857435695639803470259186389670441873765167074513617073998034430952033695592603073303814592428743846460520078389410818113750634398633205814792716054747602327218749795699873109407758439944468089281178600233642248103187421964411826192564720120174878627691407820123465347627087156908258375140647568863790894493674927591464202152101916356144881395614632949988558415663216383817734706958663176120753779656005430179281433078493441704506089968445985433371530226250873579302561587600893292254597687090616151895770750308308937344846581265914658257786991510990989726857637265952170427847088750221578750674740996748871106794278281471039501549284619007792150942725153708741140515362601192777045275407258089856350568227555657300939343157045100323660420819758614969671536352893393789645670929071121426221149452646922830047219205702206123916621525940062936873598304699521890566515545625241493711429192780846684819686900471229361605572377461774354274956595828516992540004474168516804024905647971289090089090796025548057387306400515437760814408685116490845325840397411188734477123582675200709601244735723834767110715885762208361619796320246756635347503224237155054247470563872219277392557128847434481734208910612959022627425050011797084941689759973363780670009073966781934872758611366555434822327827403224845849810545219153198916640861120500823381608109070835512170832154377219437313665283394214479991652510254636448865402141165692523765675428577236496097335212643187321248244167800017928473103540381915110682285423037264810317900600891277033001199253610551669460736263779704124675663212625585724169464306563680280109994240893772421632226825827010924132349551267244200638558171614103448399570706919586579101507960595810872434199529034841730558322069929287493437799967777880962177934549072853847559315595399051122380093887181605817250951174846331411431990778032209268722293648564362458321780158117791124827874552952387794892733169367913425403727215407853527833143138489395979606730202839301299840397557002509441203229194514096943279680987276110307271406092724354592998521739441218999307206305837939707956713033807714561367876139323336015129330308382540965792403302832801912427131430413341524058235478733716836443246920877406770785480612035247492969396345172174091831827821988890083749691964488730248047501696193317476425277332018111077684299862436079660220639396481776333797790636355602090104986962738112593288615600052562512907084458000355750762544085193026708705429677784977437437167941874177749247124571033359867224273587390501660347091641943884506055803577801169670779466406187340014678448350716480550307976197499754550538588925334583923530706849834291353010553204881266210993289788804179988626139670425959044025916011286117860985502111101743693802620027281030711607806396269294078822165617340436930486153088897299386580130053563928356155726676811828067890056622972540680944349394027088486664300858496419782260357858095984230678853558884049799643661349560741366640806428467727678774664405990756101014838043347768820037814266796239157670001203129323906328866721449768366910961681353866384543134219507878852679602081549175877457106588229480909520910532518126805301745234314747550033329331388094838055898165939055453584705732687272847693657437912765064011645857938565780529447501833243081577689694076479790700956841102484053910702098277541811367036177393834395122057710439258381766648170024251849195727796014431855564249262061085534490035141722161715757210745927623614766713180673298078278240870227966580303738572265596906773435797655137458909643954021570525671792796683196026346388132994806309186040939411647988681495785887424560365815794820449806916582334058682720598346046667815558318436749247919948438182907199725609536176724042850284688268002983653324195044740269345222964476018524632884359146381143026951567289972498540355470259964007473092385215237927339407424208158705228097501200475536772674959206287753538047690058297654932019141698939296183117878041886439831834511412374072985795850970243315098076669087686084302710677352578173453449388600174293070365656913079993502210784338924992125038119450794664683744560132211716169351377820755800632829590093383992221435336430778233661817126104171036807588955203652960732593995486385074417542159395002884129240838390776525995812122522221461505723264950664623195826521125833712130826344402979488298794357499480613157729259107025919761837864850927276951248949058219213304464805643152752393970423356720725689308142475909948155472049852226063799611105218115240865498688281356640796695746996710528099670491684279104925005383765461263287617373530811654454208460064053983051961580859023022192169826335184493308730576830896722786677776767015018609224522417695746307035503143209377189521806667032538552520563273058446527919189967945619225339303037203379454188743105933892562452709098547591874308312644746660671942337908182105714234730211492615047829451236779404941441407510450005428481937213102254590953867887563675762634644025216581100742696644208415456220145688006653347802412700269996727563139028924201563924406602487662528465855682341007557929925945457794998958054819541329788868831803105110032504690987846786237610819469514842380231084295987625539185528265367088332099211225660246453896129062662537062440553435465014293540883493792749065569411273006825750443932664335162336667136135250423413175738866913219323802697662319430520750408555238987891847678080125195094825733058913033253390050294196831614715084659939120327477147871155059867346807098185413222769729520977748099774086143517399748526700988337706572083601938958708757663116040391816502147592727677047725368569075104495709584247376478335095427208873585108413822126750591950366377307380801363309239958203389640401137602434293045991964878755634680877894494656846318964258564455031324792757051725778966211158062536310055033209645092792839703463815419992653041778857486719782747359233137679761491214829030466528742368707933296346249376566844991447012578969025356531873053233603573158933883149605106300699890526004255437412012636183001618723171229592863215438472514140190634899138112574451440829142047096358809825334655754322808604348825796107372183762166077855421783953869451147724852697639956687849172715023782901430796737399945652524168987901045671820982805476247424564103032367360624509468309869679940008766625103187326047988653215805454813913307627715755920858649802180525934538617327483341885528465684590140211875954801666301087455298282983228566968290575137552883891127410895779473003267383529576425662544076309434006426913217691838127061244881771804882837426280434153857649438107574108601677132410400881256105487612317819882472182435768294651585884947685814060543793272939602187757428349261737221619281530330323010094990795631834855993266095559912437046206252319260488922555392891811307605619481765051015107842497090380349940224822511420201363352801901206746778645587745920358365016661563608017992112865898164597273676473323086975992979391076202624975655603863209044702684799800752568873664956658617250274325706871262104095695699729516473236875139803280766227083418091140710679116134184947392749108441678090850883228899132870335279040147588224050819810828195190016429588781329948741325017401760525309070571320653685012016302565060156319581558481102201357274784112155665816301829158892466764516013893830430922641659009205560842089439322857770041299282660631336016184642503982706472890054268098736421398984198639051440035803019551142987234898857756050877234491251863504032229877896464538774401965659181011591229439037166933306043961689556136645333933716340592800895346621578619031521132909450065440397929649752050659877394609318067280108212572457689220547978236244412653845640938553163030395589789774458485066829717377050930064169283097970233087702095957805884063005497516644938874412685668253393664901482436535046333338465721889253355488402194949611587628714560836526795443148247721457678911440303451609886894702200789795325394457217161757162165494647799697172998016789413950498037009670302547568307288139143756272173099279898983629653039271981237404862014851731208039241865826489016521157872528354057525039894105865679276581091515965970742556140005814055834215779999384913111678929260717859435476239863642138360565827365320875394512335523980940744255039116649630640787983911273303609181439690123625051093364254155712050081101382720141888586701055465375582849801798500269977692719077892348726233214852027009196319542047381988582808836794498154319081059259189656404519082534626138279579516593488785339732616529323948057160039163280548297432092627131866715693156355016671156543431256492533614789344897519819922658029104533903161353459130288891964796362434231899119635109998161708090565259420033891998804165813821881522357252152714092886552868895461220392032593159658285580288358501670808847123122988748915643554386355965643914661161700545860094070172861429875897104219603874219606850229822268540884023415805123808550429104129428358249230903939552419553485422654594967017146439025639935459361628819785073205374406112426462234120907864466435757016071929841913224929575090172513975090317042813010754998842230756046832126340283852784792462602053932772914800613327999298757668632362392824944119259434384161719538449848144146628282000962162855514076297510610210837801470849217708438386865499497089102469726035569607398950497732286475962203681826319810415272389739341627592966520031349600287466946916942089729078295978315029246875501574520484662022783475598475928720477377379982519556495100721943683051080145033970265292321182847377292551910264297062148085724219658689303162451871775337886690420114663786930194013955002902332172808725971909633436497373748153657659564302833811494521808176712708855548824158363950241638897012738659184412333605250021881213502373341565982001850490421012517235994973380805854255725142567344018970229215296728119178965174697818365410082206246660806121646067253918548193528145604122656100025034355575790211233186969767309793850415450268265566610615767503511536867889119877918802931366989378438459529966446607614862282181447569575123986444906927154451694595328378903207617208219136216310429081016453035257568240266800996234449582284473868931852859742868577207574201186724433442480224322204485885876642681829399934156800120060858605563851909192247932772170642673802553298144190806617487291122515696046578304440511401368548519263035261786620457527105554893067324077415218055858810018954250031501637061866418781260130874302909963177487931339547327128869159176243951301264024520286159834301868320567077293604878050442343200921224823795101738710003753977749809971445203570662950035038050135371293816243070593519034738624512462177437452537317714318327039299355015097500940935076624348562860378884178553808386079106145926864398994445046230878289451661324328176652746567060839354620828919981929752451223929089992062419367310116856820326562410751871158700526602296653917236717140299380069777349220967302504688924173400842246551350788904516577934878309923505321419858748950361327680480507765344132147479981652975782163709583338281314504079083634464662095527966137125232376124140861173203136567571660575022700010909055737956684564130439045250245898208230728316884656934604392568215726510837048862113611884503149257538196630162595575039370487688570603387169718555550220575585133994563907770934838497752103961240916473252370515428492392184853216930072033876200099395137038249592148717496104175047947198039177884744912280171397551780746936735979450917347438479379067602295550936007624597948194757911040657027430147070944487884726821130274684310733332249249641261546580578218345221716322009011683830986763527714548618432566405526616092760526477102911353265109213345013288360777689708439756177108373087070866180915498884380693459999025248213876174770695766684068244071693181084379038322385515235354292340781245851005116989951142510767487481093652954037659674224289733350870368365739803668438981124414297614157211517620535337634661367389942326787372552756475223696710598538433603631313026402002733394505120857416250640307177665184537976989351617223271045330222511094813999230061123653057017695097062856432166405631127306782265009738812254377602455811097198380088604041866376451812330767702235030943175661617609418855278289997002330032771142628775323045552362453666971340627576395949086366171612447683834580087523803965835765121164336972920239310244755522192346874452585548359365429663354322046897519164044401594200770993185228001249203867774949024471600753484835073203553151256836222600670897752475675756082668116192739480879063106781529894819365106374777320108050569416709992119109251555263350081347833320789272519631012220980067435845387250938979216236015346589198055961376744776093061326200351875955252675261800312674329989490746623450647703855920328232984427045329238605849137066416885441432206936695307540990123985745795853178815327762681988362752977096388519834345644685891014101443295603832676402688198080672337621592125391741468815505925410998598560847920664807875089279371711021546723643760202816245544062521753210802959502870601424229977812449709226852120718056695124019561275032460724869641239440006072754020577811479707468473838796924042520081008196886233394328532302580755713471782780428213975773890898287853365890858244513478145663362144620760472565443167376615487968217642102488455327995799295894106334054564025166230540739923197052919973216938051388628450497790404584343622709609073912493923577194319378433069058790760063757713764539850517113402201953435124118824044349607758370515708140868418254649787964274077904925215192718422972248786521529509431453978894345114055556078792115538699722531793518769262161575996038665660033901797547011201897814810802107283618803946542737140135899093854261872974593582686569973893892019700689471548912865420319566504412811631352791572913240188008170750859644611729730426507042916856378064106433305977477116334038343474490023822964311364019367031868204239800026685253993844142552106964746845451190082037169470203040925611064527409433788392058044155217262354563471025323283433408606793135307059303275452935352960713102223395015568611600302015470287217698871212607259267768005513118020096351079479065825157333150584534868392715718692600329197035188447925616741673924242138694558772488444016433934800000326356244889637697189120251132957160343737073597438274275506384767693337784488805667926790799526991464713946752479173140160734405897128698208694001430940936029426547603239192075159291058516471166324197823957470886167977291368026270852737113534444219466539395395327352926567552953251068797945221821165705915205463883817891613080765718794276783457676044278258663534164910014935542688241331031537690093275601441634666347777606711293352856727810054592855719416221461736220376230416313306004600581368084173242050087894182034230580910123328858496967747406332203160338708562744091623741134916528816118856277343840978470391357290168185759509594243889859028318771599837991018932267746329331738969028369678299337134448996032260689386481791864119297987668159703040280382710041287102421640252145267670835231687779718316927277141229196112437309829513450017929823325326249492274978170113111591614534257258141374853482685347146708755068160666829790580319467545876229338024738916522004410999133420547991341384443686856075940624991133970819774011851076642684631691977267733452034569099391356502220826872757753984166289459124477089338071656703277921344949281134325235969248973730329594502915460047822056146347243000978438423269644205895945810013430965793874965757115361070076308589605326258253213171164900650603760008905985232164046232028567577378125546389356318586179730547324157093850824100053934469305633861189316961437214270323362858272277377801580585565952504953188394083947043869559012779086082125608673919892190904693479052318634836182868112602859221808805536850090992755035290365031820277868280774854415849565589497764661910404489420584771096453266447291457190610490672826279528738598830062262867573026408279005431704848095023700820474702006233967854692150675343918649161956873639962906380117021272230747123619171484775385558517387959099293160878544827787499890072966918080184997914893575319033102685346195165094075136642691757411273102149888242715633160177253128409959862850358264309236691435188672024931633656526772146889403931825457180731577374409331931994781658582231236171146331397657604813176807610217294763684762989474614582395714095388710838663365065100198930049898386587228209155288546508022583379369350100198173838216776281486096072175764935467696661793925988450576921690739724091751759229522684487407290826546814476183154012528381450821246749862969177870589414276105272291090784997376876641045952522524126855527299818303057537110957577048130197096851169778393746462900059831390041964976826299606716156394444412239237210104946985912559413164218659876334500331859694929976901668652324195828737945891568951478991020123565392381845035014113372784434683823099486683920017805416427992146610136412998573752672329494383565308932409995581852560305002072103914446945996853645994146443736237247771951342655347967402967885310848158553618275681425863847462587416933451085107801737505292619662206766632592753001422065941616949731450224629018415684806246376761566762301071092257359908005373958726836972420782548431261276414111121939928168349994989843325361430064864640141909041733932440652587971550953181835158726885988504913665091219606537124312804879875409261118177260103352187018905153562015504386595262631932197009789234471904683161611477368707637449053633089301327567534312600868042682234673077366969058506117654755495674751962637059879032866558412133339237237681509739805793695769405244841232025746665892160128246125922404611401085545330560549635653766858179317990798324013920915434482276511768768701071398728208101291735650248093772299353280234595794125692566530444060619360453635690141252562952568707511282185121537550468300614994217664188356385410113783109422251547873547418029208257884803026251812944115740704117916866657292621413154054589675501852427264723543373071353386477584866024252250805015951033331303552760140434958437622754413945647048961251435388712359287816854177316551148177285743152028393779085257509316691958274144486809473683991427538842006810216680057633469075307016108942342946527561705192840970224504699186820503642476622055721229976866527269271579316681887844104520741515636919993146988842071707151842896282788363339303906564537569678661498057873686172063920293986265668619243162519626639957044421226285316527641026964850878766365307421899905268380398236925388653931672935673673491019503727207786782919312989612807612839050136358256709437566024006351979997491288298658522475454795743576338290028570248403069144263383437765460483585597501142437043593516267135493407456478746017076705845285555090607763069159526873829580300919253249184629755152314129155772805876178650440417451018634588943063813170327819871489203483163246183574677429097908168303984617801582275910784887913247813355636433283870467005264852382817677298102614227003510739033734635510170409398514873089931793763313845609898156752993928043816908882300383485453030655414483675079931810627798944879666602121520746985615002782626826679313456430491502982157163799269066417787671046686896326361141747029527291019508884627082515302959521760035909017503457078301776382916916968233510516146930173525134817791146884542576310130880153264268650094228382686236970701877981918397986452314230354763345036037940254920731134721273983892114870116905980615453866600004043809779648957254572928449307238191427627417290797918148095186458695511128147730161690883806004926216498624045248815936696355180552081633384911030256957686735503261630041146225995937380818261597465064109460359249803097752413303561173548692000517196282489646864158758404596948752136536460288143309013223459628533447618172041307606873915264935626646398357947605425279090705786817356673168789589700279597664780373279706287380938208351395832828933229153784481048343074116935231437225745235140276022581387519560451972376750153587288192389554965879139298725396100901036759440199174558528509716360897387468847971090763731111832911202676032689222679030520031444329771180760773343872942316537515358108646577055671617776669304728208398911221102861773948974372236359171096384884510967136529145151585208900184184844962357923125032876454737335309186358228837567859612001636786471693429404482556738824665067990288244839266481738788149335276709569766018291808241830736959033825772643779484565085584532437331879591232471972946768374153696395232911255650932521319673158223248421683959776465409081525301510227034974791594583594308784458766978817036915959937588262551289505420126687365373323117550787668152329965360577626484567823669359883601281982342012488344165932419395991983322916620113338992490870200536299217118010494340247878983173406589947293582513054604897947569825551899574799635288866574799165107740887622096651561208164002963016807383102025108238498606000218767085095867227643840540343412640599246965440092686879716951109318630960982572383132529267051439315814363239390722871132743632843224865053321883536722872591328998097436581917263774041988578689632662327173557766670677593604921638937104074522038104716009189233776329066822912294966569454375843964580015459792391663589910071748806522009463431570241967006014521098314232538105137259725014462956750630711950677697010815485411621912047626863641008453017392480122815790523354789809406439371449181991952046095188835535254653665388928057776933373164035198573176312430938133583144496647325386775351812304041110428906422327892268414315110949892847780775208817114987355037388910485795256664253418351236105157334191551998379657254378398885284310918360810764065482491064579050442101946691272272985458530266212394455818926554236813135828283135799770030707663105463567153202238216377657225835808739547805130077530738420581811521111216587518844811235578917683485865743023873326709318636988681444551860751645307952813483735504600341952308750217057923967771091453509066385433865055157804967786741192795763509622587922589469322672402382154879754787555422485363322757169709272053911391020202384162366769474383222078314832889371803298890445583054028582500278474013403599921309417779846299794098780690182666505838426099111258931342178983750215916019664839759981742901045643580067383457839849579671850070963250267596714517912325551713362117635485698795436432836282284668957906655018899042588136645449291136908702408508135230490042673243241294696224727593200265653992549580874991754129286354646057285416906002851192421099073608582529603198110414855189765503714894585437681913544160268066391941016068856867571286882398100196324343509976917706217246342064712766117671850309458573175772392151932091389692247675314484553108864982655209561358816064962729203631683258976288281463017845534187558479325926815037884189856989283380201009120670234470226709498870076275011685065605013209608012310095548783548276412720081761106984342024497855219733595197783037935673805791286545621843069529175713940445209964403791559267027890004727094901351174219761596364297943614616318013748528557660042574197700817958037557093103716343126699631364178473076520571860117871859278802224530194517202754761627475645381087215719373831243737377984508401877405155953141941076761788049866737084624112629348132554682354071487743518643255366469878930949215208791577741626073034863794280231498512966684486919017138272384765559547045409432636304707755914554332135590027407516633591986086417626062983587235361229247371255603514883399077528776903598685059011664060725192445458636198940637880535882141910494979407375513844996817821551918027730149413503041589461705551286512824247015279648337305699889728878638191156456247289984253099390926304881491147546589321305807295302581640598897806370651499774445266412808171609725721223400953938048734001575126347009137244769493124285219062281433557389320241791026709876281541338174744837549124469306619952932194930362996671813059485730998414627625921886977277583644382609925400478007728246984715573098921517589190902485468576295079947890267420549743712346747912896289529353692292182992135405678073135137014218167746265922758995177432291975826397134603841099991722112205923511863709923610986476199275330359183515864487425576528307350802326448458881108587948247981597101815936718966279135382900616536195197927041307300752719846411079529705334699856487378365763063258286029343617852889809152983005018983122830790083267536219647420815944210428293537673906167930284828585686502975909550152139375454255963259243842786183445564523899370595795903129854337584128495201435749154162770348168944690956114238150549931330574681969099285866234819907063461678983457323925884864402064999951784370517422689189080008850532479082400459648444581923842592394036001699092780701828966118425628939081771359916644594906975233253935482322016419359350727522204985613376607653385395584357612169398285417315550442007964846497417884571407434519910101397360884384537052746790638396985916583755028668743819987074786265225308728165188658938617744872829889079160731135041486471131382755700235438337711665581881680143199990834959907993851577194087869879764492982101475524428374228238098137911502178440780432463299485114129646393334452058589049092444964378818642610577573529806519475878909161788444539610630238477933967042639934185667527692311231375709480995694465245251298890208852833432328457354140035961904569999738224308470437429642449385263878864064335715909639197369371239968440109921876359754434038709080330081848098782566938877709682550443618135702915640982923672987855929708239211236499938491862497387702626707993757756600337421629519555919988229219435014806271868457173140329645974556539769598752573757563104787888640717308352053289455475146366373919601651336124413964567519593880583303128160580309843641065861084722717340089821610619618665920487618054713524973944398246726294559464694805515294138888209245885368537056314711144341109853174713884866494549808670297599776919691769825160104478120691428287123652962054383668852885658145546656165622329813404473533068138333975243904092592177974229380631203689222554911324628795447610363466105638732661330447205555530213008431993051011179660574747073191571369517774451962378129283045406931297794544283610293973271698615950468711644357354049825456502603198231818892783014669495700291282795918212418897820963281146621094083614054045122331052041923204567964010162049975014883391171342739305858318807143362536938165794335884514145427699272664523313312075485329336611144489518210760190629622209325897922442046137051115085545099616524696130040763338172126588517303354998077195440378713070471803934191064467298760807299145350683514594630717586169953493058918254448947232840232360201140402857128233091483374080381857847355650506433284495731681498106224417982166133033900953318108222150510789234473538288398110124273225945727625735603789361508447735798648066913472753866773207959138885716500481485843871840688946380842794758460703750477221118850289526277832579342058256190487969908352518387008411503593535706556313341001351480642235961926470609316418918046032170898943508424559250139014809384755153573117783312137581336087074861921599327616819296530497754691215807513405517689222159830982083785252390879546946864662462906157368302991289175004601204519829718137590990218940524308196229490369865757492069766548195122599971641939904838496479495098004534347528531475318768454189060015090095781897056885266603774789155857712366664416160948360495865885259631057009140582176627816290426233526930168166821143246529437154069499843130466570765744744877986228586564419844127122160163024499730097800114013411272800875670139417443814690918361110861361915994663960789487061359939826374247204720796540118797040946557281855099803100341839846607334762206864019195775803303249997944639470714619797366973640961664132052435744581607713301664580016290125024488001084404749309421135192206547025326823643445925424067235178149250089503386645454409311005961518601953014267151938787533829708109756598817564304820406389676555647176498148978998272433717567063152430003675079338724910342556778569708400932480207995130958673999313437537805181842011820747141852809591720669004133074403205661802699707879389016053016788289929565267455778222954468855598845103096251558348845152396379475876676830271944136083170002273789228354112201086603459050447475666758738002658969661425813871520251866800388766746756508779518046596019325334136422134837181993086318600816178220176254416274899830107749611485644151027362885697351509190217864478637181279473432605674767866995489975127202141344122901485548405699833590834266436708566920457080235236904546489869585800896444881702198262824092897268328941153583128503067256775451606936797233947469082940639978646220993899492213510897820039332900351070842417626101357497662786084103545873213510469400876533762063533567442533431655716217865770002615085097339408376703527117679262877964406845355646983321066130441230038052400725923152316977376968186565340161714689769016220257273802008534022173391140225018773192245599962468765601238420355867542372139849323029071998629232961151757945293054415764330566480435551411955708551441601017078740106959237515856390475857347325480857216761635270521105178036979639494397660993227125544475992560414952039744047674734689075975674444707793063410227745321654156577771623044052772047988336841873993863642556630301680120572823387645476047511167312603951302181936860199195721449482157423997868744128037460986746313471686377381275790800304493193550058639959469843548202690700551090503763922669733857399548976334657200164783481434332552235699274683561500051988295390346271877991005990689825782601491352025021416920497988655203883434496024786225643060791371551537858576057015975994015421811686070518393165662980152408678666841794512087349794649429360222382118415829196562306322234143097791579458315738747362763906055810031497016053815592234203409664716380629431149344278042219995708530273709311948375311706043997958614900816909157251336923370187330691807226429053075539614018881999897434435336873244776926525858400415935633175174397036912172198492057635622745231213947393947732829849909908804201799494907600736359793470343439203671741505905158773407006705379227444439398256968245519423453130870913769443957168241657005970825954405133461301181748536630527498262684737105287737163452194633510057308404224750578546450479042019090467814658165038340705831736590009230081415617503995846800334192885439231666954025945801949534309856905213985723530007233790313583942645538640020480797219856885674654087511477032640944262672714470284138163198852925829534795841643307998781024685111655557629356634069789944800663881869975247810330580281241822452284615221189888048486513619702212858559418569822677882668537118326763394328844046909467076895553254006603869931851380952719768417858690097510718915210286513631342145702518148663688386622723378373891210782537017117438374662878849226679979963517840263094527719398628064391767205745734143127403580231077630640566664709848395643481816351169243226080470029611054523735675132794053247730351980580227436465248477003933705741289657228501076454677965090490171256443317784496587540783164083966683583029299142708734056470666296332221419613494441841177254586377331504068770385784300227932664947274042833061115958278137788752838682943633127273354088920179726548461043341209206649612602531639390401386267594020128394837473516787799000039160179786527516903504897378061753641617570510896747694188714171012622677926984070180667870425819635505059635352906011010147721619443416781952018211356493468391127678804993849523176254513541060207672011940699094950795906157940567065972206136826870092389913771733565534217570628682775015250910782452610151981456690458769156858117506109565347355833017913071424911917054840148479911757503891364608130853648607229571593714802259718909127475387090919725318244371894611226402962206296397565574432812520486501154047845715176155579635353769320970870989836868896637667038411848846655024238593991845269982440911635435014232020458265327592265450703919426192786501953410030377585886929545394638259002301723707973626954694049502448235304054647902971980753137209738402224128042981799663871896391466774142450087413127458371263163213185594408106256113079297489262718179765413391795606730367343031086601021156768701702632817911332793752731193275350500929680194767743042906040170079419232055188066139500676442997285341220882826586679983920521728011404444604421011593314758136163766252929058180830688956740999763072320512657995034902191368631860577831341993545153169255391579305778772121168056800675438541411260505684351855017751888938732006856274778277611727752325508029470730212169928274765311565886422033871290186070373893984288032304510331357994892656356206326095129962548120294147390320845115154556479231538253055476155600265832929354429417294298718514759157903744846299906945715148481299887568713108385955529715979187595004333183828512432787312190876570656708810588226854684595256244070097706562650211545680401557182600249467232321842082802194155246700771292884042966612896686910225685824204765273182693443947165548265722658954031843526596321919982142570961017479751018411818154551162994092321196454262286953948058553686037400348373651088883719282287887569678267451704352031354329343316431729857330050954201223736908195217003046589593571478175552530477251847567983895995998316394127158398694860779662852016486027353819639446031434144440596072504127451281411022788748126721858336143447160543378397304433346088358321072673771274785554273720790836721772192843759270956769267219692031813657783045193248555108554456950107118711001275035889855109007475264780781003973226515559069493245291412576206058522873145704755868130900628660868493541912469201426239350978496274841618434042583473157846281836399421786238178304699585603170718340908784355172607626146921105348648000335338370403468969851398443154145848324499896863672997984640533726899363848205756160160592110870168916807086068359277470042022809516106230196003977827724866937447229286888945286340893933331650410945108898656275082814392166256645243109772483227362415357141158544372989413555686324778667067831285150721584185244490107655652818047587337894368204908936722408790837971773774552647476826123178855810735487226715187287421921136918637047432238849723695707935797918514180230213113642654382298530635803396551725239541801817008210063995791666826470964102931674114837138984490051444668465664823145313421252099156756958669987280462419014100200689875475500023676493104001132583389436319038075616015580067872965757800336081966104238359232461885896723882387534518603060509011204400078861403828064529672867240497764162265043040914518889624700515095822910681456873976727744779749202729223832688383412932045536907438654616032893323095569906242041276616934553836527445407721486907919916985564155902481423313705722493245407794851424955968308280777776746437143115835571397553499068700708041545994240166339960660318785879764129210552134598895102517389525108298835740501601669251786502658082351726393820586766166576167525588709301573370579775559983591507938843406768878006421338137299637458235488217925741884482343729404421270745830401611902030809981642878587211450964798780795584864639692036228942284332580962620622112767747593228548901426836881374540333898055213857250558280507441674565134128889093376258793282386243275087368449925777003877188120439172596983700043204755375565259676549626830569626822726852992741162075328289094331686241192594810316090988975104059445345486860403814017535900325961056317506633472182528471730021965553482542917509089225003382977782826743398812080239055312111323216399206300585609669092933898854138789637455126428572125637865078236868021913739592997694920413976749871431017403055337058238426378764593611043488025477066881576159331565449781392144056189228941582003150616752896323401167611033499352474145435407267279475268287729514318358819569737129305217852910817122731765082287674617357596885326946968978792473079396840038114245043939164501597701448825585223962745787140632970642251357373752665881219070984799669282059657025930778522408152638200359275829652904655459470252610402913349801885006939770195698450341856000870528859549309183070918213848047521055050004148998067371567135717039014240358355281720020531395760214540243385654746012047218316432233776147424300403170460647833166529445237508764082292311609112868284968222962161384820942748191341876744392141361584153928274475042279750783464658661701332987079785401667980176224202979050312472207290445022862487036720854328226759901260208271107611472777609915201812230895008621353527866346546834483349229961298460482280136590354651975503146290787121742440439805291548393329971253384435881751250479055244496116173131889903160098525971708714110575074286068042761795545652035321498020570822872870309589376865607841746836107695349349013722328295549374878996885351134794408991187823796854744633937118551478135571370280652309316581949279434553473752480865323754324125657875796259528357796832485685112273493244235721694331005316952711201878063451532052371636716387621983279274675036213390442724268103761628851246270358549501163015881271935675276959882471510095206187619982737977601399743326800435891443024515692580789219335901942393421685114566523709961944350411000192256439564651967223986609329584850857521201597651314521499181849262849583440357654132736119702865434968527187963748034338636579268594412779376601877474148159002765968933887424761041690321167824202741575724061128439320692556613493516840328983270165560378179935782678147117019501156400440577291577581687473070552642585361202134500882804365849169818426246594428643662560808226770291136456582747014264445033243707048671162208785598784747541134564827426768646446222792520418457827649464149638727111004965984385045228175290240961225552901945503892928974399849854668101422613444801535925257070322698411328839392459588943550593487186498341733999556075877296873845717837313670881117100684258095117657857900142721923634651695963932366948793008793862609096701639523543290095886423640097627852592182023288606753772944789679079813692029066340343509406521416864687338977071779363650195603159599738504923237521388375077800214276244145439701543097177569759225322962137129343898663619879776548130402464090332926777471647860123191377071648135393230327168586573805749268968845448401592267104327428419570814098979774332242197590412864005955407288633373754819173322720421194221352213089777055642223731001810418323410243620090660850373643398456822144969079322692445690408948275432589385098674270108753734331013458708813417747415903666963338798459529795367196023524877279663645852830872384583340870277840981454783096475791692108634780962667530396337997071170956574192975599211826345374011532503268909482647851522403377964490497685358133138784673317482127209639862194210989846278550042111398734809056142225782837627950581126796594984930051982054270735390901207774745328881278807820202243082124355366051922577749089373549018961598597528755929205414752791056783656619270854591764763629234481044533798102322290594309441968781978279599669091584617337232254170599864151329577299750939190405437807609621348551448850378491884789553512123908119447850538559027044751660267794272750045883140170298696154154752243681092364873108478323417729132177214369464756334611179302322063503197342421211013393213066777476026613811240486502609508865905117473378741913173924458639496364591436144000983639077724069476058366818574594575472109952052802740890729407158785867921068575476860177115328828366804601578395696039549843912972687635766953168534098662451152293622410282574117277216910511912449396612194235123916018683476104664449078042297983874819057315274371658864756446517656737663116838005159190580223751068927770528644333785374664247553197959584235045361166690344058398409731310536329172294799260337197699586164868938327012112600726534264913377753560959815035820547786932343088226807876291354886927993632758398225066940672098951418065901623106171176486884118733155163564190891878784999446415450963125484110954393365635311677020201854409838037225623194328536603379292117954780805799691243586054334655483123468742329721837062312837571952925083198481497598351841644096473088194793302148979128931779052607736533626406775784404613872112386589117842973825983865413774261855058926157224203884228577136588086921033426582643518760253640997757232724221176649186185520688340825706318286962335312894733963035920155885845919068008102320094452719833715789464372170685724356862570914349758542473691571488785123892709165976988392363503640739042674335852384655183195630981678682089872024448745444691743127041392706163969599296216312748285232545632436000862628441962339523812879761610359286235693146280858912104639300650438331592916108040316008921206844000246627925453588107998574118133225934537171614286513271883819463085328726353309969057307479626798295344477996529343639557423013980990561784129246611982025062199275498193241310603402414041114557792520839358351897292860455967208989182266294876548823163682339074197576117328108617900322744801718373846750296456173282958837912858972268999720928456700108296704327428936901472752737159154112458698828096849453432932144198396298763557438367051231220655229162019268448883465840110085321672492960834250267444211507199236351177557704540843112456165740455501836719828431198513296739778944819239335921163491362836599866144001189159630521470182292821672165263126542620891378255424105957569000390543787405044491865521529260033606048725390710847757528443721384376388873668854088192111777035020778386885529870231246842637167921353919601616057470237098381389842272778791379219788250575493283114937380867624145745830996895230419660567367902591708047253364700183761505479113581598723644824665162575304146227552774526075269446637850338626847224724520196244497690411429056732058186077914452076315514448229913861506592166410113886792021939786921715783778106802049462838405722534124090585583210063286374538058458203551189864572584841222025927923548774379734994239082507530153054875863799744846124195377516177333117805367804530944441656788455225809346736669226210401597287800199562807284169642731781011758559890562330177161400473269392017451598202853053253646161380718460095357097234031999476994062683376092844334790466490073280562867796478193859938659423455268173578383905813885576733918863421030057834268330107762792605271411263415842440227559168545225475546796181920444942767432401306155492110372501082420415394806324331406253831112772927065983476946334669542427527007466179042678587301288023906294034682854573410737004222626003162396536941837077499892764697459039354243175665749436967488783612766735867926700802321935038558831782062282238295724495450582899175045654886335968828162970342788029872268166114266988302777465474019313279534055530262598554767431972125124372321637927810629810839987599584908151580236611030498858599419794986924587081622859741662861096323107028342663711299360693229954080555966150595200801243020166076127970293523714148547856816484034243989593680202029936140165355425757573613030451716888293451443276157648711736889658213220329915300877002617596937486465216056853202506287638749635789023267379556710550835046909903377909825995717463819411932567014658187248172544891211092958799589016231720844950635393869447794378303673035426160653674073688727264445033431903664341015955129296732806940227214828545020832582586852288971199928282611648912578681285085408390562979846399531005352601168853437607520853638753992796874293155385741343972037071120347722122419974754119359705620629942139737273321277149291176256249527987535295628983484341829161519525226532807813899802132247556264397565972319701152366425638255322701580897628522615794850353617856972837440415415840843732048363064035538212176734287236695523031418771540173693094783850806548566238339553536770439710487182122303672315208966053595052100209992621844183080607599032281544113853052208134080587668852123683644688761859410387790670465059217878677253892887059912307964356668856971640723017879688916910702535453279545284618692643321003430542548887931597950766934828689946639308277677918336138916686936643140378317385136436658359662705663065238809975637582556719741496297459936145885900388372948520073135817572307334734786538294565850511569714225014194039386055133828636314789866707632638511312037716029474127967396891695212066470550406436780620362877890349924612350520047496232789599503955221761116345813479020050410910093926747459887742124662823751207837504115651072724377458324194156309650804280848633548899809366031482164008089587866175767867030145392055977485033832017944445232719462508319296153234760453979205799038473528313884268949915587025598906221944383423399423799773805268219860909470749766374070381386818029321156687564936196914289336344004217046107948913645639600879279699127516106273503577515783566270057668536875213352596902955973230531429651311665285789717716411318752833254973046887681827380762808703522208600300978366869653522433491810022960459689916570256617735195895368216060403432936523726349884901115592889032509986719299948753117917496142554430261197020277349761618211541213740318532225516565679811319312818319674313728815104626290186862671939070808514750495477934232773037876492184068093633170591908481055385039766312618318687604395038928679488134421291938539450370323255085785371708072156403172624650795196653821768441346064971435853445314532164251831085158358839208677716365143792650557294715808751525489746694226805382071754908309424206644405569426886320123182710147853151818000778181598451855495890759624697542085487605949333661630542498812261843005066038594829752047994962283889329196998467869730211527278067704215171862026587243797885387881766821709741470255994919770440038952667870698949942106071778430762412251251260118515385285272172418450481071642932010169459890530500412564291992267434888839606706381822581546164448682649877269271348205816942229680768441591169509328939632813589692705240235282683271730374677199390955293105435115982734549176956580055227533668800913023479396542501350440164462928248243826753919304265293899642902655651755100848573338640052886872987802026096983326841832468018433414813145748525768694834873778752040174135944408191014588795581362266214222325893260686981223177438080632065451366423959278639756210712202898105732984298530769898934551261265569513561595688938371576091463635551929597561021836989459417852697193206544041494652290424249420110819052785028080286264229207377473402502297692993186126494133448176011130332983426937025655298632199766329166096670898658365463980286310362665299473047221556595749579467403466216933214409229129577644169358457615223213554490369880011483773255706337931761247972352190337707095548600629104021618629134856712804917906866995436237517886172067474165444068802908246133404489368425324563914527620490543202776146251471334041947029876873229883939165553060629350342732043039858162386633218052521306976301303817035047812037067259342316765750682634085640037672076046599496764833521840239530755928693626058714443220923142265628304200885840353861774085393103312846002170557195167806762445790201960898221852257728094718559292343073129691818023708437062418955338128191807247464210752064616617296097237712218483932294853936644300772599294901520093463225952066899927926071290138661160978313313979172894265916925710843170911916010934311984639019676243651289589080182211824624502946690763404770166722087495707253616340744360545701007706351405747882537711980747367941118459003366320543144375190983402632319969499410878867371919982744072712121307200699652842527750266158719915834128633812764575655660985445764132309030041985105204881385223946933926220791552046677588581748252742639749383078061302867615560198831061585187819405983051028716539080371464778113853665382579794063139863566314013299081676970704798462837722777136761287534143430263866615616681947594235998244244191267157659314245831503054644476425353722148614506674905349861604459947845402289643052622141901462377580998203473604074096198740366803086933219610845248330025881398096833238812360283763488146686856572243038501445917633789367450973266304974723895676480232557438289226089985802826054232166916076926959585524599420205236635217320122759668807174186867083328884115326871475520720315173808872892129669361992279682997796945590857646361116245236155430069587145478366961237106669032834417588261218567990411353237105791366941317211375912220695799249772213350400154951280138687227311902964019704592055609274104557867109946174479397929497231198086725864100858912783842071333381495327638439554441589089826144726356717975346490307457045265966911438427378517370637342349805874245211237844988105305268981556639293246691946849881995511009333305659978688247489666346992707332822471010451011506669165484400396554046216424732183902647546423089002049644607678370018820183682095763283307456034972202129295357911344115529353381895778891756296686693195998701973411726228468403648642581325655962354261087527254231339715040079538879486238138365468879499553852723744397220917335231694048776938253039012500729877629390278933279038656984077180311803739384461521436282190165590693198982990684337980337376729485904618049579958661507720267516994074976307295304853179954614378581819097894038781259253773611513228460614385404237567767419484472242792684984939994832435075406156072167393879345609061081878628247225132955037894506094872886190864530748903097712978264649260650238060874798917270742793348341522520689341649030854737632926876797835900933744824681506698662530395085363796537043319616057830469452127006163537121824560888926885176310891935301050879792551579995451316982509735400950880178854857456014465765362055655376444429602066248439077356197597721469779148746455596496078025247468221942297731065718393331472270869610666392443208528639937211347457573040338222079262341942923163676515092048076027300896806834532780939714108899671059941756330314374246814297572161145485757822971417987220882429248335274176360413814640970214520462296915963034664960863429632111825807832803321537352753113187427732220707695449853268374304086512038534266094692500095555980381191820163975239416662459025701179489133574481286256103132665480835279645239104961734977698727246044402343746601316372338282435848877369039317383139777221647148868835980222585383113881046737496734633421108599689457095786708108215206099487803646964035373965999477084721151279369531483807869905180900693304702994508901017172503691883771202655171684180500743756101340947235721610576820970853360233611976219011913266397413451493293707887927572563518321172770971432571641464086987763773080423168461027630803709526350326051970335370633761797248038072929262996406917369581740161387928493824780819916531993813846793293917981118027860296213181293218902079451419909048810787347971870425221454896191542106162671028902329379091599855040631462045707649749152461388060408265029515041882674432753085537215768806803750520552888660832948904988716510452938280871601435817516825970397065478111391055957774590403487305655398138782287074020429526286194989050763658661586405332278613627625616135561225761491682524330530519985233540513130739951964062219616075696758998196430589169790882095704423045813302081982679452934103575525766524904397894384727098941912675816229132765311708761472747041999718833877053901401896962842019623618980930560418399373626339550185299354916501273802167843893042865550767218540552777773728655805205367741087919815447699481671516758036424481289627758277541511067657593199521289979313277558353130165066938493619180689402775192199034502031334714299408538252504460679109539113066498175106626678001739413057241010049704901108937598995523346504729362785329161502176603403591346290459667307646001239772436639502741006437457549353375582909446134671241055633745779744141993037501617948184338598586478198000964492055646442873223195868596237597656381367122622756782353774479526664266117175483342253960508071773147434500303497090773523634715981425431249546962778525160950040461446935001269262520163240210473954450022838924265494974563264739129158155285259646364835849007330146747545746886883482324075276318223272825362616914557787080058617566741811741137567025463792166035578328853567118620481816824570547146306289962565076671227739929478872938222534777122769448576958599791739231499137988027216413345736158856345882088664360271648118731114299683613794406516457409212331130636548879542477483205655669109160034335994571508444094789732379246112922068426272954614146388458694581684005813665013640562398864074977417155854648336985446502100246970086924173912815845512281914750674237691922914632931343384834761555389942832316763402578844150504696662394487348979214478202470255831765881675405390793519851019347442040944440084092536317664519437719516411153065172237020390515144623145528097923284825645582282633842218754038426439438511450991928712478967684075036811300969765826209563475952579107345177738654595647421405954466280853340242764230350993560800945986352832078651813397229565432101998558985544082983653224047816416422976956054879135775812929229639477388712137219015153342342286863979021823619202731024865654378536506137323675798006165592520080106043440842898561695270358083224852186298728562744369951732370356264838302306500862623346441000810507310293535890760325654706488419437697027111683025383779157077129937465169290839960988988219861130345521082071096037063418892627265982619216853884395113265578049156909094715843914554180929700066129573362243816124659613940018163584110137039469263824153362049193341237883581712025594977193814801961594879137131204541769383254863237648441512618194946642459075109216002420133339548569531452627372280593812732262504490841388423542656999728254929816087282401088656781424171196070016121351670947280658930896215094241948889105737614283254035354204431002230274728217246514908023042040690255119215966477596010884011025039536110004920363785033033514225753578377529975835840255684244357283741090646477467778383267919601240562840621671399284285300805633135632117081599496561759847898460291666585540207387541327168376566773392052141680269835489343090032072874618367646048862109784709812847152943382353296488346269096750339706046505162581194970962618888053680438521103442843960719144342690723348284826258315836787511447147191785280629536760995516221108962394872430985911348942406728554317675180750920510818878618582656995582840063748195256065224133461343942637493631823380884779343049542661850436481631302237804291636663623018551937840535078751576577578892619176616702919786733905935497925837274098205523072243970049855452324136953947679176015868694586702318006257254740547573707850760047160232542155411825177852299605780081810532950349841669250738871421684717529558037296938718376499889703326945097518332471611123644446055935067117731291318597067361091026559314791882599327326167119925293765379246787747116942546965342552937829591090402665508518080894842568464351570253673494089648759849975663649011669585056844450077890438880438576454185628664551799163571052315575719997082055233689201549858403557617388376676024605611021617221031063513464050935295008770070653109231852244551364435874820417993556525358785583268397034071095869459679134218428677381675237449713320777710700810874669079493192255298095241319790451207108996156069100562334664676884643407926149281412395522744689513486653709247878379790803653050376885341172631402928997751049103498936930209702656416923316327783542460797857858100916211326811344538031651079007402773002559612344707007170376426598633250252452226144407948590564312612831855578544495414237054103094677360791546020490508795897152348811192911837243485929699602373635925409961349546707857880802109547797774449900923812636780680509089078987522732977985591486618015740754547991251367570415325136878003266844372487439930384264303789679071588281950341827111673673664339090385004647983312722542589201579732142757883930296150452033150744332478701164675778269476029432057550160924955733937432412739509050250398794676263289529164280462474877671164211137583449065118802362731643444893639780004709066594145642511412649411527205004333845951165866684370468745843032543555619867333514823988541066807777447577176682718128192934060503583687669588685401654551972382921568216722136007319430035533026749901031608879655553966029031306108379937653562588679974846213327500839111570412912305748504521665905192281632528880680782290587343980967427104060803295277708418875908438024442861052733878341224149066728285104350011621760452094350758689952537476565579181562890635086001165345543713833958411380002303944632066668087101355967289627366634252919747493311903318595817511386546282913314422114602205068628023839081680625560256114855911823301062150082519691497496296781111576713935484326683059100740179123117102353482465343820365666229509514872727120081773348119326926349867077198274330902599577220547441023013863562618929480668923046864018645081136830989656636156358958412011303143313062984913255605841365768345270975840689816083716641734546029966448052976835520886076327943492418839834278862938588172366996160807985887025447630915275964108349727644471450367523282030485999202331321015948398541985513857172677688526445508539503341357356894405251658836233993266047673602242285546418488359225912037244265551984352185802597463673395676514091641916975071623653697971376226198090443569007688488810631686591303085265183263268431975632764350891287863095459559215021222459376172058375172020607698184211439955094787514942493911308618753934261779896549610622729985701856009717377141535150359286986723971949816647168726382062436034728220976459065659794961488329007168211580247638438841755707328909574556055408028361810677348419337592408032454067649350787110306775845520988965592320712294679331908598497562681952753019415910961768208921876517903863582268589274293437545255889794684709378867307431408311595123310255776734279985871951526253364779510214268114815517862249645283033781821001853563540815694983424525485872663550677110854279728342817779328470606507224098087383735628686326616119727060480507486393380851611373816379634318048896805886698180262289775278551306763677764559045772265326052823922148748721905802429707104015961912134192645731486935326312695497035916408381614348186328417156672103184368226124804626492165254500322998595961079212938244845290224861604910836708478964303285905226993802818222598975687875174234981372283917352830330345319511631641829073610642611907281737467230324087658053094607823574592804862924107137948063559333314747523270664119477556321565214192174831661340091283368835905521745876373555509120015992371343972290035152655434874440692926295844922276982583312822704858266259593186917124646722448871641234023384725993729874443954867863706319964109437805766898481233233499032486047946999652522983429334812806841176764798328737411759833960758473233746859943917758177509591721486360984944416058783544672263780888773256701318709940678987239469935414908222467814017848386429664462149373734717451688477908651373770067273002381011022784954314391413588240623479847229954101511564764455070469574807418917840362049972715417386565521010607178163638197764105080532415731347428281489815759231356969836652020756189164620457645732734118143151517446569237353943526727103753001065679713030630009782747653672043084616604033570152234446621794991903992607850946038222165437605960639398900022594221101922807452857321097376285483898160611790342302745623489490206127671108826469743067835934455295678260119289694062418223395825000579100272807134574247708405796000143343185325591533529636804044874120512533530388730113345213648013712742457834944951212000166471803443851884239656960282184737890516845293773879744674561595562402431251751455733459775289442429210399762686508645718887924474661956416798828216438091768454786692953807354312481993201643010012906544085387727108250322940779328220459698430615441154330790188818831612558965128640255055909862104644763602374951836676181267506237973699690732599712539722874897145937341730416218282028515329391466450820891553954143220145943780683796348114746919192637318493050359412531718326103188911448021441444612443421931838302029505835814683884786386200511398579887868050906628370194055194888789562880213662225333591920469441142752904020191423766839162343357525515039759251579262564125197298506955690391838003403928885150784800770320939540572225827052933548730811422389704980064339612031557519537138042933539838761652605408103066068223714210229097717909827822300911564375661970240289711069845754626098499519530088201667567966148051785804452809679497905837510737999969905949274706508858877611093198925505995708451919533205239758417156075040994203136433783566093722165310831191849834150399313524354623829335158589443364110689003400911714312296528068910176045461090335146890092302099559040112615292794278829473788159913062072972568588761486445936074569830945048421558350112191394656018386504772043178045829238714509249786827386454157348487948143514428994537465303482095288639644584144906749480627613988710119525259003819326881856942361562030512571227508174925263225660546906014947515277662895295319505989783772677818639212804931525496075478242965758582370634316177668478823026761922157494818184948505511619112941138687577453254827652961213059736451010818552869867910693174607419064495904960417837893403369406667786449424970991199085287924154326851927944594827757386485152093528908399077134552963278578050363570111159166458742196194878467581264311775167414708725948695652975905056619475938271551770103944191813418142582862713726102200885129929443898706826705384305374176777617901723132778779498517068809516325033784034933805746385802840995750078084953086600099426572354413947880421056076058003221429833746376375358692088856374496575877083982675665134082692390115586649795396115711185644990620970792484125521783572470541344928997301951895349516058241394721705456714654644378602154444492098359880436098906818210937483203046004423278761737329404106466401015444537140198796477910858539183028755736628058573899028235969616058793335264666306912171263853206883468281418525155569079681069685337137084216633940357593610225644492174622620903525804313377474101524819172638406601121934463461009769157137791117924860887809134557125244916221346017245542471878454690886025128099810435327016493189789071083031032738090985909456184941650594898573263676541821966899952970969326011281560982805971582135567411359736657618372120670961929072630294684909632589076402085347969667312488051060122423496062749548084150600878470597977719450601084385362557987696835694097611910111434884544609409871626401048737431574606549870061835192003119025690879262293112479196829002242084937435607795407029585577061704936561804600821798137871671651367607133166121219592915791868806862175911613363080927783780431110317087662971126117249664927343185320160009800661025810755983859409347370276638645317686901801489721610170504728392318171168318129237320119706183309238670167292959797843720893825007965101493499988871361663791086036582520716338553296083758925826958807465891757049399919270925863791227706514621206914012840095069364181100249485340477269701231416167075483961469159623657778712034432662469535910815466944975502862319520851231644727543661091380139629937272822571140986295773689437356290470789015838413709154850996167182606251027280952000411347900545862367173457359333049690088994745115841462355656980050446073311054232116176635282656889331031592000425771522305446474020236765309294438577348975653136770991774526359400696757097308852609466648044079486091914731609375112382029242264606962141543267032992286707985345998030410245379423749390867314555934813754482842719534777286192923525811926002030505701667220326881671288273092626419673617172153257813296178231514305903896864654969407354310237211686421168304300866545139891414482413806974800929885015338874895194976989658202395991964578717177190932956287420851111162983310569884010749557796109978915778369850522824459890497764147414041716529507780248405876454866768094752059840425538483942689627816982298640564109388033895138694628645119814745245325940786255809651758802624482744145836495614199174386566093880760150965388926901335004885535252115184400958090962289626721504822076997034947702701175117846143748481615455570450123266315584664068417871580395525469363662125226102755325066295047413709350582381560942238236523147475851372568027838192199606938975343181692823758489082705022341588649324810433330577585421933915690439066918032492973558728799882330801624170860000140437797454668870612109972711916222580888957302737090150634798648057138804961641943910525857258951005384501244354766635436396757321788620019880222861086705879226568491563602107489915981141242329211308012792133076748973978838547249514453989195248717412574857366405265149579696865866560628141259664529955862249268483555639075022789963260111406045818907455866542546541854983184421090126663276065746977633830264208246486881718874653531840616760202780487600078012270067720866291885956758948399638675800133666559706312633260518147974659092447927600535996612262374558781916525224809475216809328452340208548724730777794317229745829918530815898998028646245114503994051687289249123337653270871736759830190365563928024322694276258901335841442317106644440648747367972044879376684214134809593508310545903479815907934189078665467910268495311716388730884807201640574149610256372215541155799300854890627642981838009213260248067170481302640024107934577293284410262521822872687987491179295769236493650064559833664440844119123506132268313673407682630354849362845714206216513552240726740923567038218215021718044798673762631864726069012509079700999175434077349798568045480916599965795815030639326914511815940167743606452846762222502490307318825939802026764611350383135306823611206393009808280990438298472135547219556507832535447106003127539126324262851800617326113008152560878859960348812557903158896845687642082122678035399469464737559832311164488040465061211132649956687849162030138137345932700048263810736889186748202070406067192510629674085269209594548298280425576333871190155140869135256916089257124144401645879908558949002436961804461329703718901409954111574508509467478570659736969221260705742256541151647753780410680540280714422252177412286934778156704539431646802431209536286345647435794626921218825543468916316962029038624012620659377766068057787266757426605669284472840250221739025356444024351561196088248727001116813630271463995845043008905680468803411586036808949976464763042546183485564609423071700841797412997231043107514820726398758334572401548377643462421213207333880954018734326697892804314602905583657677213314878291563561134595796453529290161258760706200386320820931880007305318237462056934697922078395045191640118327331700658318628703321350677597104143156761631533339198338767010946659276223710444022095070794328597320448078175251264335752844034059538058737978506641609640680998091380939535729372230609668830380060613808582928639922314265566089947522293640007184816926823996099206529771576582989820971635155616427439684290508423719536177809963588622484604023163234807059172362578252780789216255299836205589265533083415625460625550801474446706518990283095168882363482139609664459222549896730128503571085366738657085804543584770104165310864369748042797730882641178031442378980620818348057888184683728032178601784365290401227894415559701736197241326307263373464234881444812048663453616930695363269409266545085685275257673029157837386952043765202140915710893147656264123476559373796487230766297659212313237976987757109312505772549665294943394007553973317823660519588856716883655497182965561851326354975858125117721293828533792260109212802981629857440414550436518886499299265321242764923762761532746675299892384641533282407641310751027821467486391063230747969274905025034078782057267101530905062319858257915352062299335641259233171912834796902180066664423897953950052348769201399868778016989561297788996527782673408905075774885881230595247230752779181668039684812841327440574157494048303990527920800120301379666899934621567413494929104796989496767307705523955092439522419318624521431595801740340725342497446613486956904898041890939992211859080659718320005590862033094302441182635143593103521494361819141567640361182639890515246127583386893264387984222898966796795738516133275993021398369359236155020145827927547730093959256091974794195414728938595944709113831803726396285031902049044286886571376640309012976168386717536466660469226808161308655492885766834352906305855394451729393768958273049654976807994201912414402111241706606117354194031001776623680987114955586577218900921754494682347309715360507247763028034262838648259010495864769424274819669754999508282253558532106741952344662245892235552452657353583032864046400345908329917296238566900103692453446843918004531634709097436842076594004711080220096387793261594792804871834791216925084061791641951273693437671188687870624507296423085408180144875837584482648365673636671543635619510852067925752581955727945232065293780597002488451756449902510846508643631209710146905477615852451861737756256509463698636818421404833412608022725436431601188084340219955660632681824622902159860466641555611147768634582650649189605390698493433430484548627169879646690062967113646645001267625527334056487269493468970731405743177133225641645672078272440407983722527661362690836304920360777261939678235825614170410849537383760711154333836239712858113730143415840308144425395069899363237345347887322118756328348782345846266066199341068580624356303738752607131218211518461348477732160167317284893297184815609102151812435339177484824104286543238683176408712676777734759084692063141119297879528151126965442425072233134050185530742249283144669361120719812072127529721731007637275816409888048507708033235110482428778021343204918765625907378768653507973078017378331876893952934145696886439037486815692749137458237352248763117909065097072547971958239471825283157225655875036259539723927020991580250751324436595186003345040945257570160973479397324165180482089494173376904978217816570151049068483771999535301741679893804678075420366689102052950036107770948493603938535802040995119659997602076487855325690418490922475783639402108751168642378490015583527814154366884185819176830325940905159223275899289218437922007189953121410544513495871661208932632992565648982689349738054631274385162309942882966710203717522087344304496485793799285254581805602709763560744793020530240807661553015315039850755002298714462199711679041470396329340418725302687459295421688844298082452344732333221577860468752987297848550415408652761706341963231701017840233381956435988965149837089232675436885643695919898856990431282890804200131914090775189314271821163635937371057503882880996231409677012280538336512998668041960042393520285387837681955387125444422161738175589401479387516332517284217567413426219944902782528688494598698184351689560266286291587747053245975501849201661270529817876366303274475120927930389438388130162255882488529684783368199499122818423617037396402162369578255346237731404986923437133522431642035704477019161181165810117914426125637129623160805459710227214969009376982725236961704503910867791127813255146356269291298915358742215711786571720982667272726640484971069615106112484722224523049686065169904260264247996680020639422385727275847065357877535051334305683306165894435307600357837822084726066384215417488265822104991188388187022529119070861107254776103356854762474373036883844532135377814755823463359351417942634919605236377919856084083763753416229386107830680377248656757772219698241737266027725999233959232441785123980354890475596686104311235947992020719347517122815052661018782040558803488113685745117471759193866888746147242851804469028882094993585272405951773371018661640785551190416590807048050552229879546065282932248727429127817654309098843538677627636689422170521513978166691166773778410079088504073798946638167903887536269149954367283122286439772092871719626212290469925988521235430939757946205318689005132470317842298202608570691005784030423546888608188519488645220804792135958903217206683110969818685868003515120973415130507634591465863586693514064807329922510930143118601608306470452292064136677491030754141204436548546475837901805364942459881933608774934573932376907750955483236488638414312154764762541392681386207395445436116460134770689441224920382061116987907380294205843124981670174662956402847634101770756894078576519782093299990952652898448139649411008649142721766976109142213117112116597566059984841609890243969796158106141165107437062905672949943709018751590238502305618648967564087391602659014381699121890791956649575453286436328201853222645755721035107451208117283053772063624650143359782534375220466785733753910364518185462534072617340962269455892940606322752975215529780848673297433959214065059676137599507676749642671403631342747589287974331677464491286509666586948586406694472407412146000512578666190203400350853480414784996090472331180490359327555103903827717065925054580135318316922874118144573576099050437564330703973436086228170611834618592116326878206882394898586958004197605244811912832188360988819339241639891053077504615368994806664963329161150323796380690760958201341599769369411769694041695654136727123650146369651585118766103220265648570747097603483980495859264856002569712253816600256248572775466930625526212422117370646501295637842470722413914923777117616385443977441291288042056996175500521224300410309823632714752638812328480367736675645538005231272071728137852291917522201393096592542724676406716225686676092127205247132537598397068383798513725829201930334924908756223188562545587517376751326471650940527531536282738509118215060863767831787157965466815479453993351973845521205507916681841615647280107154148198081209720654023254987647688119955908333623757160652392297976033984220165531109998662236994048144245344237074664961364590322403580481538282278280277795766831859666043936907988630296610367413914761011381200357570645804378958633732906810575433169978551975052821712768246413836029897589740614522582541981299462499474259842631543797320722322845201350270035461586617678342053450342345611009642512277604299269974614467329348245680463169835974161210533920956394562355869226160912588497630349707900588922083364422306387544995258753299454583062415961660427320381175219481795971955035358418738870676982678211716768630328864965273792227905349041634312744573957864398687016871255359988033634736060592497492490567414150310833581216758660667816821666797679875318595204037603808422445029432857419744728914409538667821193153689905992725834038418121888113242249913567704568319191712461403956775677346967972476755471023721087818123647084001650315803356559946738269205446798119400731649865158618719667228718995051204723718165990638265034214563741898363452277827800224813980973925719352025789702352835325432974990433754715164729289241990918240133426307239451942342831364238902277228196632805771391942875434853186567351413987982454018761649324968090592177191799025485040844881333617565678211806468832985342841317299997959098964520895102829436621606703975098798087989537368211648092213899801057910392536277674393562860711532407341832160161695527387761600910384822423293054935271911572967051402608114418354338417390816803581174723713465579953990440934857517650573799487443909843146257280523704166880488750942816085686541147901192077140477848055629481566373503951855583352333966328136696871582354220533213158614070745736050629306995066240352344804599098773854035219563523347194692506360825576059916050124620831538798505965530929528609320942896419704419799873978655782240897029387661676946378978640221541659528317505892637181316603268668940069162320434458584376568753847673303128848463589087585425927210040798580984324764492272440825081274672386669452976162158372420495347102226208831221851620186499109624636689191129816648708078547119627651538546759735330229169921454365485089951191582075334241724228091322147300815893429183743159064538161274299460900687683342436507984279647959987773111446564240231201082726406609953782897494977063885248917004533560159516452462909347617758195974378436616847862963825333435263458609481477214976042190073810166558355094503267122842445544106353127748322071178184502294363311367492476385739735173695544153467319399760282199371100744363972192665425906536168872170049643709392048798862358047753104076503068898660927032457510522975643446923457201433104535939171266227950407909071650330824171046885769970579607342889084272171493496491694767594464497026434913442063060918560303415077086286584820577682305174084974808426696275464115479623015727919784723014284566935966830484403862911798527123616802846533557995648688240261784989133757424423843965035791881547979765303180876742995144513334710492042035928214327115126154326112518261028743574390998543523155771989738591960996182175349626679289545330394985853185849958363851541873981679206396183737319284959374970100215871477202872858543601939847489288823675873305286972656965305011699555135600611197953820567881946365784052487964788421821742137355842254522621019685512893883997056939434087388629817844201046715418505567910390700421147697604467725381676444945900295302418310126744540103983680803892052321123703343391639343281106235438595721222596551421435964811767468204436067666977268390898762427182630333182168899516448997043108535742186765965385066638407513251387934625574664605274216934437230367180638963411568935073166134441574457842290721245102740783823251803040099117547792636079520013028292619547642739594969538461496334377443250401952958202532190550242961624955463703492740551888091395290105389629004610439055319213458353519097284070464614683867852716807500633632243303986599967448422890501676336457622220237030208273769617651366682749040841472170176004044084355685378017915560911548204728188717203856841417344604344651839783337556937106439950008464341724053024243588923788755602999882427882371696610808859439306171984128142076413602368453448968134460655737381001128635832743527624785339455994361415424294704558419295552072962705272274445208684639465321187476730783036975468065127347933013831028073474792610634026313073035598424615224937660807206149555062208154214235507496413457145708951928789219035245239989228344438954725579057578483247903887574641543159633925123619540560826472653140810816391559716157967485609029373571821557498566132624315912281210126768581715664503146801521086604531620829120493215655172244706058104868935139820921560869733103069303989069662931074007726054695623998208723262407563636757798672171750042628903339240614013441974199780974048049444691543978048919879542505868214216815616822258217797831247314654861053319571412496768025988707532343112298661313586239580316564769035694701110550279764478600586986800369527508050454127528955117515730943601574712991045083711272887693259368837428704756483725795160655204296766283982644437132314848066651566098605918427825155145844047577122081536820072782980104390630511361917344032580622065933207727247390913529652247226593591085143508408633081553878340270733725218246621424725342476215214283794798505551831132246575327452538157904049415053008714036844890554258997865042829003895360888664575384474178505952959455906322494901249036181589626084217588397272517077826418420763664207064985598325240462315791430929739063588476351976870128795872455952799452030026684541414286097726812943077837784058790683900575808159424774719888661867324453464718541387185603716375591783737921108556772638769045673525924810682719209871308967870092317344301801684373931636851760714145265100123571004008666025169451262720549621196558571949154335251353510850840841406774935820129258586090026436152363630308935525583818549956966184972723575900484609726512623358151755354465581305150801773945986453630922269307738840157660343196515500799292981740621730052578109312682588078145730705340995576169421042229611738494076652200400608227941183016409553265371417456069219816087647689679146500098355430001315886863192235882370774052838529043214450625283276929606269711364123633066887113452398531934870462708719335127702416634069857485272588458704686393914035738153871331453198693356409394089301392226888055505337267805055400459925466115296899276453528715094134882236158057285499556155533762890577286206372865531317252322335053120543467442179411879337141609578898849446885946158453463101607080717294761172153486135438931699638610398178198458124023297071960328279938173257263681713020728795213547493082674815711894018123892356216741964923142287414109193388697263292484008051256976957292004626345213390946707570624852085142516642897836401014235550166856934838981990234388164656764321795956968056494522787682841298240162458642667422950714757417798511383049548033573258381383863282443430811604930948208699192724894268056534342914113199953099634371469063963436998710379577769496434391391619162980507747247691268329559409798636108070537721845538209399897302604301510763800673164533223197665485264246821787679872738883365657969175278102487213482031019856630791596356754481789609733647211252787742688954036130305405561932924148537126281422724623897189197291348311244760075353678290771144508623611082194594447967547409497542913595792419263439557028393362669911828416293621681322991114237832912540274567379437537123109316491022708009176380678785282809262758918290095732195365671806966336424394157803254512883552430950681226378632014163117401611553445514274073364165481970718461079525517153850260174513742959478681083687591606637519200067409867302360749513069224541340386705886000342451468527510331360171481704718136278836338370885932489388699025269264595950680708492637952547905696120471869701381386591275199180894258845688020121957616576515068335825535537837381518517629032508035347315019892545872167962851736900512018890231244429525445865264069493507304819502350591944674910333018055763303335344584580472911492314570098388243017268889782371067432414354643952242483356968506112501126087046747091029979922438704780040664609833019849242330136929067713337757607079017514314687087432849273502917566296812054695654648993100466536632070584832049476152150182119202500763686575243692549038540395179754407562441330559381528170175746934889787282330845244715408205129666371762121613558557774920673075669050678477929510698171426505392961370842097940440270552004737540909696397809587531389745191804398427737687796608751110040777658879824029873986824829891966325879401853310767903484670301446886054239279648905668527142753000788392433693032154566585147058297527883040332111071996936856456165628106055806727874940922810886933443431492506993861140745188334442114644140954055738517962051119997519759435055644163409415544383076147398260854459104165229178319107545356384650147407841524254288727561370010903028486344434885849696853817691576068069439207243042445583800325735054052177049484168054931826507457143885220907047405382470156003641475567090442778055263574964993693329790533337644449341015561773441444061045000786009977457675157471575693430366575360802072511548752250972562758498367563140299220456790531080697311856739468027543957361267456721813647324358267727327562821393882310761120156105320070258942237320677214861911697080566368292949218109273636486869011561330545698526180256677125161678020168095686732438512964328625158178128843488172671903531316042500926205744541556531177882999471043957398300639543637940963512411260205057463956365419379981079492248451869643335783764556782310379703924510652255476239000005169931621857266440683434847626396042073920807958811960996199343434556770510259544988913388713481628643141776857314613623815629871841145022532524238105937914809929175493189806529369351676799500123670939276269316364352562481007056576867398896781623749939233527886055478493733078372114074341826878335286742295977916630349419363728575928138153949661170551360274520862522437575218113662292175430941610853967359138447414340097778934526472722099964003058076685321765812363366879467158416703342109109939063383447478333644372152595073010045515787487724886797904108063600438912614831275117619346109683292140626630015463625172016812640633662375136774790616470815486137046790079925648580036154389289932760025546756930630526538004438249382309228173216930814915675243917785360322548120867291760237088416776324185018701649611095792121029799717188296243871471072415603182031344715396532560222190267470447419038322923584314808931318976918571030818840555525355355637942199639823057020139719202622381262442645364408353560210055492203313085977460522658088029375270538630899574384609022386708706261699952304456930732805674393466413305067593993167625254692035646990285706922090324766582494903814580935089326653978835270972264305107342049837201005488243269266882083822815303294690295500205407125654852426838566892359381582657278621603158960498500208456987524130481860422089081878351750759623636246880759072629922276042215353087069418689118386872147076483358252188798793109736100427586456433020879377576440451845506704625357784650464734393529801087785832606092412708420358751801207888123046396389468673045196612854509638917074243011811389953850004847909508432566707402157954802377241255338196796643218665297241427923341220077528216133117119960968449898689486827021936113185783646413113361747689107626055366643455864577684342724785809527709815870944286261957936765823911551389877440816079022290192440155941978736889442086879293918666702945835519120297472476783006155234364868196299991313818312604533047707304673856566922390528296574233642444368377710891547826480231662152321772815046119572030117222832540906334473456454126054391718386294258214886090470695450207384168281363797837761912126652961184035426156402013093307744602180848383016881562929226084084376492054701908947932977357335137265581454252215246338886853914970033534223939948317881851641057299676627520136047065712590867877180191894398976927270626932224170678104884842740974078587469109673781991750553492121736800281521438157482787408454910070001993291699097337489937803132540383464282735117179978978368855149235603544188812497560108596330780110799309749652135452234729554145167756792539069014962214001254292293104192583719288365168565709997030537159479191457036566416370661730113622256668394203804759795342259120394985440126086300923910498796050194234624669338085657124530693477439372495953409923113460975799521286395039337221404034758143960122282757110124311106573778109252952562031440667078758692995546159854825271665266332895290410434388909781060961569023483465101640708510813165847294567840744474986649165483131010286487415061756884753261691156255127896765965608036858819866145437774606643866418451853890933720596981206495396160371376826379247290216506817657140824672733928209730649822574928263133033252593718313506380376152135830914407621682648119593140312169304386279975668218555660931526677582092261517943019036682606031222273760265133392235776645948551006820020285778462422602379119405818569834288812461352085726597058343998006549300249913350858277099513651733039860708268518506154447799005146583052714869259990713708877121376463336995068051451517278336451573419805020267909945088604370111902521031560212435867558775155823728609496262242345824153023821215034267165872575651591567941053712330369266661271517118236350803271263622863601986818638391150378204474936590796669024163858724983966096554912347329734627460807917944665057910240337421143517538129871281460437731615423447104582321745697434278272740110696104007641216013451112033993439121861307118942363847250571144806011370501077285636727470169066243311613012762097610068147735855654418037790133061093006365808632576867473213201429592036070795340376227522631743548530063467686667555407590202550654274322803886198298273657344705749896092917817941714168306977445944205853017461449028700619009292681900130430278931520130093315322307957940706568902825078433566817172775007712026287979688636331957431190966139562670652430158056029906193375636614496282422526186888910896163536485724619905154232694553198599588051831522054800622755936259192566472306184289786478905674934518669611440897327664330851390955715357960924695719282429268425097111456588578107811556651458949642259866648356891043385323605272933625991551420854727359184594334357885720479533841563688570478637808915436319969508598125764851106213147783382084071675898818334530055409360462937152312092985057767054934684194183139596692962474813568673644591638536257677559235173931697784242969901728182201649402842573604635421463970814956600599809373080195030725941103639293323368227997727087771380505209194571857522824174556408296992904470856752354662801524300033404691402201021051698963730387590881140533608255318288689291123642990114538123252413583552285788041539102290718123697283503510159593343422757528761902905032571917381426050035463238285022077672858922815789321982048325544524403040514753413698721520410775912951917639947468084384555842907536898963790255446296080005039782009439508021733987277867996830392393287584899627461285914544727644115647497955638298111941332895299201913304972024237247009045956391726530018389913826840525153358479065546902240027649590389798178639029985420458684240798134807526727467699712381139793799583337332002552294241683283535976640800454008062459529916037436044225750036080821709250761400129797579640060679482122139555453209283564874070521656729868222577729903874589919406228377934906504716675414635715520780937120589028453611225622600092042551165382814947314259531141196926620873312213160237145176132136919092488299025825191765483530054541685269540503495002929134926800779145991274333999981742912469946667995467293902063611778066695626398387504766898055527441506673688974766733777795199267922611310573818242229214463273701597119178654616373116734015292166898639158737849590971781677255090602308787704080986207876766401654663440307413535718176779605546682793740042568463019809390492382207013894368646425955460753564532155748947098775300020064627395300080657600530701400988702035986381282790136310053506530622155690333616083748775745355356154774861774469326293548780777271416831576168757088177348623107496853963869789000001124205690470141172270574454179140509979442889655847742204963165363832631663102198222791382328654881736972924971831247201924108551060519364427039330138984712249194827171597456337850297699696984179644846687018147534255203110375347081222094902158564547807184849372165815732042177427655236055945543346296974112951303804779274926929308628104575277047584557315143463487685609906611904068800390904011072412416696264653150409150058999019472175102715338990317284678985026347664746187025782018339637403300782210871411715756956555828535020234112131802372292598612488506210903363023286667605512401007340518677849790567353264729589486143722808345428202862653135925591357749650469002613813532203759041896776936069619078117779662857423014941286541874931610781620542050967543659509216514392623616079817157983288868600261932095332245952905915191857886947577725423922587958911838187459252771508580632180048403887084573238173591141756685682690196507030659921189223430555412623349284166292713999410227527887998520283058006287605120568306864358174365891931305972934108924140425817826787710995139008642000978581156203942557189303741831023632135599837413508807920423542305707344241086353511859472499961768099182040708780642729118695906477795232943682965506035026357110074546527268108928805708131631342883345960755948585681137398176543302823568115640967700370216342866241974530749531138799776553881975032314118400893335597557894160472358739016254429952721460249007340302106267650815586489650223505865665930184240044627065168523531979421676585433550605855055918286219217244895509184324139238343065592010954840170966296724977796420100217105450482246807290641069582108448263095798854208605472869567173367837106028063163299738686275071222019848932086195821070414561168141406702012728487337335414619172059042873631992398864965667016350568591262731569411041617362908919576114471228633250184279743880875866022499761103689901653821986128321275656879750022690612660603419125940948774611902967503797596105034728008466142391624842657448302624215552025016739053168477135487058001874727661205212008430607430524004149587649816413654103146018429035594183851548526529937307319351127304483528797744730428674020740251493400921502331836860434534651695356819077177130728697677493102716801217516974709528389623652658239615255302283963362292707651152991276200278361868651271590829772857389902226221822155136733878275299125007670009634835668322650292566306082151846551384346105907175618128669894089950770362323800678492953118179436479750764991578070577719415348381792538107549354966916448710167504617359641163989727217606921041599515086240027213952619590110378640693001380245504477258345564110986637846770099127633242406702048528904230264370851818537477624549251052289643029241903113586571513804615786226443194926216469472082227920807788055138557769176359511765288867013900483877409753603698716591953437594321874808234501197232688075852096898614798004595609232219893614081352875933618918426872321377859330729784650653443211676915757648408307548224616305377140166889785606253351657888677682142275144098046191791686970232413908515365705561262223048034776377020515059707108489182242221370747303732770498050083120325438933483283753851872801272497651358156290282019437249752203315899674319906332546549064033715610926570342503766402695953149709943800478503294986329907463693984585920785345966515857497439891905281964007978493599165671953886595727097173445641263612643307576026698237029149286167032834550220263166134738109341012794050339122788792113386977450559332504991488041647474998883639986286971332998108476796479183453629918675556158820470410877981620804289562507360786572007762738335270471073803664958006484862055404848781713117302269371977310582553178983788221717900747627652485351385680378927366601844774273693011437595469419230696493444003698408552211221587193738253678284400717576319175873533154405795641443287726124794598158871030312495187993391469390592041309138462450211158843391819227553712421239783492766260001666524695102366351396630065281370459109086753869894934317726021264112063847518584016937155220249037679171339669363748152594001262544867528744913360920998141253653733543210051066208671212779517674399326417827661737309302620436057787818858768252366682570193309053617766507181894357512861702231354280490963302957894579606604679704930243216652519744951394902335789187936885349896174773098846947064979870447146421832365845374418440556989613669795228047369986896181055963596135390803169507235777042745250209326535938669734621173008701010998857707140476606847672723929791901637447454732513010020594971463045933139719816043107251488414802833849989695306501578405800176299675219078855459829794917627583922153583705892774115173000101742597019966383906810993691658541567216775582328618972882692930185118210779326639040402392922024820082859907146610121648783109730836942967212030098280148980151775190449962910747361888487762641625808763606339175095086282010149326273747121320395403315143783478793510622527320569876778306978630692233403155347987401624984709170212699296381936901431794360860044101630205864862541814153728696489923352542907823164596053173345931965747189239338592637927904819829254160312934898369744067259886743883985877183144268610809307767071095389582633941499642803067207513726481170409723444729552204679209237583348795070605644724832401157626039705265225098750255083867919148585437278724243066126977421590061245871920557537463292487840676014094299440088333014032919167846771538946312075002639179899969439351437428498206980790693971417387849010746669463322202755352158439081632286179200407068296137709180776822850007197259068679028825855996842983357883994306899640371187315388354470482466039258075696119314264833351777085221260700543600277156342566524122376762079756791678272870666716205315461734810005639560792477000468497566832964551993906376931345782619682037974654507167766708118552089600768621274164083117599048246114445100853289967122957474007620349229533464346091079129654017913448829724212387400210938301827011005836693378673476315839972693369862210122225187996990516573485951062891669186640159906604761602388490949424085216878283752108073206894576896210129734685824474104461660977384329134310222556342719525243627874176977256240169107312349907941748982850928410115977774356970337720307840415660072105311493844551798804325930825332196796500226382949653763206513945534518648501532720809963489665635174716455648467922309925253878417623308752234491549987010330928335438442086757775195590401501153743885311140501216902767192720896872594556428786810271613263625530254007880028481895366275691952998310114456585741879450221747136482363531395610144600265227814049825849430736410416279076115563927563133364912501466095751814093842539207037244184745297057565359672566507068134068990927050241598702105346925155497379475454600000566728863653160458147820521446792249316473704179981627800598874267262469411436119250342625644733968971530925372460878631248678023074313036328718392800055790919077659633189097039928693763191176669023340380220057171913372321483592158753155845229020507682445698675028221470370584845383051427138108725970409549737828464104362876803549240475109877081654216038109704469590545018337257317702576717219535027227412440651412275026906382126955034270313119288188187046017269372335742361559802154272828194635570248049899664847547201691925805697363745144165826366302790907413072337012989703505213322932995955839397457454569796434987811192012316869379164377103277523843726762510374133826735771772059712233216538583049159875048190194144356969437227893803546722022365601738206864914880607686540233559472314369063345052630853934147198152990030494993736096189281469052198743872505904041518120347135437751827219658115274024878935615510421744429663692953211104361183620178628377803572611342427765960783290643385636725450360581371423772491616905556895469773881090556162901327011866359459774155864050232922081447665250387914586829698271705562399786623873781429162468470200879188307717350415367097322713710518406289269491175352896966071811208240635789511229412250973525263871478655234627009420683540376933252063575733478777642839548036575246236058922004563699492787270651448665284804090168811656095370512555008598562281339539594856944480414242426472944156884185090580986827962392704017284302583497692305067294730317274200127552026903471927683490118235340572291361346556151448908777119400377566097453689615542698094942206175489798752362130932400890849996284810378528469197160704063849231512291189462610353570023462768782503279704032828633737112306862331779271699561469364002033685978814616295867001380690328720309227900086403504405407856013152144390927342052860459888150632858138379260617945105691469430471948783272478597579439278996439478192461205846438895909604275344431607691128141849181421950483240753379020972262779975629513880891900156938790764483202048007719554760753764461962592809336610748276832528014810265168767871165178407138436471915519057966390812519722925918989103012747630758361471447405023011132378214293376919349337255354366491393442719376372585612406089556306519672889555943329212161487477364490811172372335300449596602215727811753795812796043016106330078444198296744759709257483328204824238645637557579534540846555243377053067227753515987690193446501812931466779681172169457302913237257562261158404725248819780196528461351099555096959928251640873790070757485193974682959224167195805357470782181502538769221212193928728665534800208119595918983371050398500527779312874292350364145955506338581840840040528851572139330534500846971325979829123945673334636763480929057975921234923182582057211621814266695711475721977962975836019446939467358074782441328111930670651112596222523065557354697989315786334242567691248961432647418570074342616904093097519560729184528997095011721031803708189869726158100030471327094104950446150956623882121370096071718357593407984726145107623532189337073966884667260415594962009056889452522893779101991087743761060860379651116716697336159009511400550098798830597431957880722247518268299514983485614836528349705738169778004885306655628884644501678134207633920967497832446066650768845935615549307204709554323025189366522810038778636266599965651608737309522234836013046695933647873605592391813880863071172831502882224615941193355561168418210555963419681894328228354208959655703006277590548627448872270041943162381980065070101757435875303007729061973354560908365902248289780972482530239769196741590409762341829730047553407016345305206434637670225292509621332501058003920685991586188504920276304958120974335110130424861760452155145016406646650479337361547589186290655776415241354712964307071122752680079885319009696615857949338030951232146493019060462189499222973859077958602025877588042178758778032252032306117332088285150520164000093204890806989536993752266438909956219181166161904893948828836228038769062095144093432920205038121334018092273768191842647307806634687182076598887354104940477782291601188057122513169450830059821409556114675325621965317162452866258148059392312139563700165656393931579414126197769779185881969623070457183446979209979535381719456837695071195009140015278799522555357991832925079686323922220767941738472287711657107107815818999724860974012641873179586804890694658734652901819710771623384226292074176921139790900401698293864842667443849691181108225411180334958188447545509775342919585542813165193932801242831477735451524535264652096099004160779372359716459894223235146101021495642965676973900841042545615053048996665903797070313964264060285203440616181359088871717376484463522512589621365203927000536818968677909437242538291019836809632378134685601435195244859129098162512440438789326369068249718845487502526988604161568833692081585195696681858667126901980948328329983263898537697704250993339165370135188916268156597241014050527251451518239267190622207055019390352309966986565984669379639158740576385918326849513528401502990760073286881028072904620398946812660428516054064943311973149141405619675732980128847548779530665685747708629733821126184247940417822600805188140179070297458812897051860963219108298746060660960913920557088170062393266557791273993774580743493513009136094309983166600423769199662446453991995611787639419848177333945636991574173951843489744089235593223542016670191027737840950043043591828934049713916738620969601352197808316262367718995012659719430755339243767536131488954853858667382445448009847443990189251504817760122836909532960539687841590377329477748798542850648487467452760054211241584107357440181460714428739124476731407213766418108638313498434454772113400970628025098256300661562647325731420873227814999697997320191945868476277097884825834533353031797748040490519209079253336970000335527753549808242090882288990110685675404901033980708430541835406462043269843683350781923052726783509273017722200309913346264048007247919481362063127273379398762689106511706750305302747819430548860537014741210104854707710145691803666655902295274294117312782040304193417759342165206632895101150447940495785337764745807992968244346018610893865150747672359510292337295500187347802241141583563823813610605263727632070205514757119656972706853703475407619407500234058839285960825996626870329267479618454015679572148491920284785671710105623148278524635591372629405120615244982986278858143646806021719529369294917623224587358644360232099286400213735533076213521910709013105891398862830265220005708977270335267735737070555486656780585196168222314047748215567474621146287676142325740632394145754047447982250892612120749061626724687876223110536195381247808622382532873129261344729678042770987944315849952381087550280400624887159825019054834723045071033484273964500967046962578066516680123948117740298965550918200488609666630546286039387916253617509655649100937031916889831787721532044509063627504459251405272257352446462448370708350424499742854279819082130951373171994184201063631458517955765504871807234781784205129445511588109399481124929268475252888991157871627564748670755074226480741614761238985869397340783637746908091276349055285644435292026843099990131037991361660114575848696468715597170093414283584502037594388690562961814464700805057910908301517061526030989860358304977459442500037609318184025465949781007580638868585640092412086167322823591187011906597707839506090682271844978652251999661326365879489000031330122641215402227580401354168699895835222471570999796634140423707953785500854474404971170601020007241018229016572470547941865921062398896444978641285246275089974006928241377102555117742749036220190841875185564596704120586830312776114809626823984434262539716553850011742200469876050198664605970559623162071915230212006341768335522591108615530986666193791001988638727464379611142307735423986216131605884456241495079670080394053898831159192193652274134664654501134706429883370397971366915556536057771263726056966311744753367803241926489625133156370377047883042544381834335401912678810563989464455514426633188748741585345210158912185152833984135956102675968619051806185651273846479036592434249792302275649267738071527645343262061562109242036457134954414948883342977710695324676712298302758156722135555851115389956140045329388061274834055313610969962835869716338412467432142674593944406811332491117430309113181697496743609482680986007349277544232480311904015022344648920337821847699191450563446346028994334537150147277341055180509127384844876395931562037062052116904958047299966900415246657902656585179998429660737929995487757326040008279987024257277875975764998900667305578235235358911981925185946237536889317112307307866924488136029717295932129692628950464263030551946173459179018104716033964304216418081518834136286145583115354666946071579448642175002687260175528936255962498495951398573629679010836098499085665350839130753083353168140516704860871180990536922564201452502861373906578075794760112407173543263748461544765045805253841490785665629160500809784347468380408243968404502360486706939519594687336241905990890708619551015955385183118847000820050329513140574195038360881550527556738905294452495751924204012163955462931178826672667387489331315977480549989560588005151747795527378676886657577241194627070513541716360648085092243842272218033268735595929720629713600942522851211764701617560328838006020653447133517568018147536480838396035123555848258168243088902772634046075099063050993915951045446975579029345604873359368737377980818302866266629502275776476779188369599835044698938878367014110675886954331116102027673577157417717855861805940304741096985253897493590299053415075120563624094873625276832333176199457011829541992334476452733903824203408132257060597429091067602040247539072243365319429202399361286272807962171040295769940964308176741523997452390855682136461915294517056522862881435396934995748121586478317446539562610960660511858002861927652347286609388119412890387825317397827270488352391395629859608665589852965554724523224966776780821511054846687257299797968155702047080063726057796073769355813190451620316613991364428661728970138187349844816942641228093977941369044397496405426787804145258488159882539595462762932138588566484794547132632911505040696652503407935563672382059624167678573081950538946856425454554628954410442716905377010899316495194613670670199419378112721034613616240911032123668129128998000598738643091228520785482339495409117368148737976805520299864176801134785894701661371344686931560509814755444121975558925357369547431298254602788716437960546681647455460060094054636805753986100345982640060914130654951237386535390883020210301597443190912221743915981944330710375911304219279101153254293698256635263954980134986188917783532852795412346560125199286691532395663431264996924731263330528456593943092196219865367569456566573351719150971954965046484723272303235765822953202941375934842748294326636475481196571097763347974875840909301232610353739832572328348422976421835707763649134283169119843234200671871836073559335781371702804785339566466897420149172420660976535704967320269037404948726457565749333575920878303134839586294420309261530361470032182048637808213909109492272314069964519144921656223005007800354506976708386898996994007601009125253424433342713396931271689835268467176708296435083868601059436808828094178712490422699026136278096239826211308034849389873307960874086988484490502690544527661871608270923280933913266061521878721693717757397674295638211286089752173419918660650579515745774849789182426868904287795745559617989338522933675190870797158003053200521904441623608299026132029725274683972441923617887685180395579744573348319131125147360549068661890739333432569344220047285978166474810497365164038609245468494121312650696907209197564201860391880189419266093996235976791814154013496117618739214041676071950976068639895671295495741567727048537615405462512359077982822371714034614042677915048379433451646160923947520824926002596661590045437130013572575104401136779205878152844535591613854065488168441797930285400372020507436869882201081741140648513235635144687219487637492126107730627735717021429715734923245987653226603333783597875598161125071545007955897877127130671854332819444387056786816474535776207925070381280922813422407711900703827433659693978099181804302724104503832723139428174762743869705041268517712082079512163764548428867527273672791782429126994760505615783567753529906819580474938495001860121021520943935469644907120966270018642748073421835475698443821621532862294750435420726291681844607811010679680958341570166570997601225261893575787537951655003051799039409958676964680103541800858330588849206839091260143203520127356716417069638792730734583734343920426952983858011109264430854433156569304623876372043011551331102613078709674082782861088702356431831247956358559176731254145205780216222292277246322432413938937253010761486279767198729162591464811794276582945239129467448638253159672283781392516929234578313921806662844812278329850001689038679643766740312955894232637880000853240080896643758236945869221890351528380663671381124933604771134166070914192729330371782406141415721121424776999615222636927191504652935854859149941547581464718894937025891322965892457173679633271795016185776423329492289708601886013475514784630955924603446407046441721604516242340291974725212681912199601263760571549268795966953299118915565521589211969359786823235021354723939362643071233543425357647745409029458769592017546099182643156955668729776352356668834484583799006302834009411750416246287416745056695105035399126780856976536699782929891118475487839462407934359122654164281832899411647239509191076857162404318128560858587648060869915409655356198750197265678968038719138391207295170294232044042442148529013666151424096861512409052618173842896011735382556746823386209922160940884336241496261542739616724979028967491726535111915619910527442805798279062610895686034909603323174509602768440251766290977987696789949942060635986012056547849596944897067656471051388536817096899259818146775272713721745327857113816783665288546878330287199915875127518447799436266570843229448646866090308184271078030668528361049929288621491144029155208060874914645644674300216975645319462087907989567770159971483626363669320397393690702632272094585501436246262291776502189035370225230843004549345622952145852274415581387746909624269523226839768030862810226338932603643845431788664145610392632000861707902437864393586480838892046724386765845932691426561864611920873967564089996381372475808729727542635201772215589740232013922007969561160615681723876684309190342341617044807916039474185803041695784098049990896977406442034233379650878985086361321608407940962545255528284153574105179417225066578218249540366609854327536428573159586123364369653831915160379936109900562378092431726896884328822023011201721004109472643136281750423367013430701660697138349062844291781119245368049841677507572148257146993589117023489636919276911604715854599146572221652573063124282127290137974857412585209889404000654064411521838595874405509149896292861701392509217939728600903358233258706283138460480703320727643902679795346510644928046631019974056400809170309178828499644905202666850725721249600904172995787630459429299733283720668268012396361343800386092370979145102621310655750833450489787974616253368397891890380908520687305105611437980412977345849258031678792930822066233671307359534236318564495534607525202989462434004391170111442977560871324050453293430011479574573059530253780265566764746141075160045665241891632727872329019781320706592848741743750605649102017937086149818805224752865597780688551886976962890555124437624597021400758705437279358751533528198713709971454570525837644518755347359358584760110158656091131776780042547110158389227376899939759371791537585481674557271570138889681833977273052418638319407279040416032069257438639030115656423737059672000853380597756723415415938788345706120728042054400039658785139041746921616787869430406489394538581268333535986901668791850006043804736184852585834967024463121235368899127479262736234278510007501114563227225176994418080339772742496480734597438251852926434947334161247349887522348136083232102206421688149629038753166742888882101448428969461279749831107943241938962952985109734062376433469184731209117808059164472363170821311925431586088619074493401084911255853793497339111959293845313290146945259802697593573918676031798941142413060821987163590430145593260293484890673357995573640694119987002430695913808987191677111443288403024037365468339054850365952500790601546167840542442682112550438340135125391331506767456265674360042535107043454803062967247246973493106277224110885335435462422842072104195950708329446638424296548326173075359142626834562593641547622886566584712893732284457095878699968932026229583404187651516556888272803699501315625278106040280983420924728591588027205432902812615310742659992900470842033348270572781166587421332360042724478473535140025823484809944532399163342348346533175028585202202219456520207235986477567724794007758607511360300787896293853534051071460475176147008305097294543857160804292368707785340949488124941307262271819184468285280947106710181423428818821717903567236405850896673088991791216159164103081976969010272077638392691773745907953650121049687779786733993740568766662539528168922642711348837056601550833427734784096547845332993741356248008292960552721653834157525378128061470378944244719417459935882907833269501095241233072555946803967141120070198631364407991821409031456076130162369716550624847654580188590282100728811112066994959314187776891926803498414265890028948862738126253335395486013033428911328311114739970670899263096238602081678801226265326392988879069817639212540688844603325099139395764703665215953263439811964629909702694772561685419070281405196795896783929852631043295179466395025964270837346888729777448892126124306430902981053908121012324517139574649266254376886385022405847038030633309377678171375337399954765294760932459926967315467192445603357603078169356741100252447235506658740282158929166939278029245306310783884576361235925665330321272774712055697306216575664152592944222660156962306849903690951566001858293659651022924532241492928070226846862107733510745586672229592840690538119269351882692664677990130179948910566613664874578232106347512202404867583045453395754915427359874171125172123903805450464953777457646730536916062136769761148848861176490273972864254047019173254086646320389713186561688892601960850750394180740187573702846016250528891053268485094607220829209220793104279808653235275178045401759056026602929281924528365898019589579411343870222804307876501993575464439662579629951723270470790704814517275436884013155094685649014767465868843055278529369233945925137149206835780921965173003750614534574444947330032616813002126966777790817978642770029271266752755485252323080228164793443264864060316405274563028572025342530148258253978773936986592311917950347853456222322649063089595570176142812759587949092769970756242065023992317312458678234499910486406319227769576021880772559705600710657214023617205436617052498445184586297937158573755601027093055488773813853829037552375324349539722934295134681220897449680281577364085077635691930620669431215599290088192485537144414750826740519233656865709969781626054571441366255584750603579536589249411203151427029895139213938500424405842844986552214572268475511208254743733849343956753642069227301074738192417188103964706968704418180170497147939230734661772287474001972384382582179030892616393072424472052188301351852354315994748838845572997643495285624406921968015411773522837022960935673822000636232567837031099838017273353111164800754584570320946087463181102295023389703542093449716824977054877688416052880348806491309497726936713996816016575825869139476731854926069224129174015954274393628202411751337642879033512091219116073716466908626365773730714606178358444803481071242048750790081821233292917494588710535973005686021829709674978561625000008428657409518660051442300750372647496873732530696534189944816233044208465303951779680755683841841634379733173799568384724183466594174162976389658758294324995928589640960686731119231027857832621044086873010692198429514042029490201177404835270514775003741502715866016714257617609502720094286909614865924923049761444998083340449809280472776745283257046019473389405151828822045044588931596403678469154952183374021273783836324521368722715139893277694148855944249032825468238211673478734487559523197309057895752238342667873981871601729629874177502788409709027564078891189942824199248178430901164037045655516863791774276178700945785597053924374656800161482257535626346320755168562560747196942036841586272169267488509310564283747196768330191556084803312823165577389666829593449498949291702225944449655830197289999836258488702365641255092268878832145573139916410335091059958069494897386595673092796407724841701289504994763260510971362299413757966929260058588639577494730722238904162257441839936515204331009373794487931617651885816485528851645977851699834863536938717412412937089947989923430450231881533593091731253496148825635869488026574888299097725204873980027409912491520268157625952935318169003712356523485152395478606334221514122327409747048925185599664692596395890704797718699666673872472221521613972956215223352085041887389469179288092877181117467568386491109909598860450010958806968604811186601223035992836992548098054133826087689529750381880599872210632890080516145852673307488665666073200563047926537485565792233741902829364765847166591744092289589523968936368135163471038935698491688275677602386093154584100095955358159927695742087172642181250179251333766324794240789186889919778749262609602772425394337418759445363587020923246863062349740963975066382827102151942092183705233094143605647244866534507345675432585719581706755586787817585118920012861599327574930124860956357957067361055111559985409590386951597162962176268145300089936463962240887924368631504915636789445957460032221358800230712677397310044288368348859324054928530519751673704247255138872799601439832169640683933045004703942719688756818777257133391520066778152709446198224806043511353655174726110721493406223607108819113876051383151532866364092348233482470107736999848872617839377651638214919509965214671263768499107618025271904319058660257495746861563042956911767323746489858550679248997821034028971173408337218357091872396107969004755109877691827951576935414362116608328234567743974649993248044320449813239922012386099531044866266679239373606443913493108863738448549204945572364239028482880681900588009409567091139120483139311639935474289670779279128869239640250408763930929648198614223216087522345177439408787081722906933172007927783347060857850688322180979637034155469516871584683274403046549185515598742407576617999944736686403090014581227231734175202697651943385473197775745353473732897998690996328110245690727624103527297804591778177792904894032118689713603834562289445283186731024106574257732511322078083887933725485009980810701215102878852612384253588552038257884814398781674305766412153817476432550115815203227966831916467368915175655278507827511138096636184319607126839465970496349787053091052519932626012599863438224414286395572249744848408077984417923603604666350661816770414467236702262661669691136161985524924010512752642253686584200993489971758457384548508687751888166977351628267321743002411727492487348797872185745050673617400250230236877999552052279580457693231998454860652922304596000105239156442321268896036669226445809375421679601973384769808873953787210874330733710761404227928364915218804429811342604673181451211710085308418675155374085342101218464292997103821888198068405176552944107888302901719819844165008198165720971390773518425495707622658163596201629657152393979013381337531322764306032545758045483321868305563591755080552384792942861073335170748579765531620436958525403104278553996412208413709575511752493433974292540680365830732804916110875875983331935310294098112115256821859678222109751196427232405932007050492838338273292835281520899736314369882802708835043401462335213548095477315056083826025998702766585722545302739531654879576839529574911977904474196359237173274362662914383973700228912041480624369309458888333732567508397978107110846096208861453517792040411603060353765340249482193380771284561678814864793236631248031493771698282039241539266064273306217933868990197223492367128458155199226388579399730805927314647088939807729402796770086683661687332696078568924612724508449876687414233296541331342455856235464681229352380156830437875629716527418814869399017341269789153339067582894698055515327257078000050552748135103148359758718392870643945803051235350487728125204332961216288284563599417508378685219268860607588693390042613044452701729856269677958466596807332311330198522776277202829698588244927131303485797408103562807288582087374631878618356079967317931798979617122528509251240102084898591253250415518933192065427790078594689077447549746472849955502351638963418477020886000711955624154150711024055054445532820443962609833754602418771777307480790009601423980719138885694965113033726650332629835267328707676431952796886462156821831126811698021852528053755948962690222135877828721738955254671672466575513945833453511108144640508312539598903610204938462696861538002178201746979843892709441387202399434515931843568843372906120844644174872079397432488114044146210502573348905590503759676436047431293013874784730132949844223253920095953132320358518084411872106642070876038942375502252867851445087406005455031721409233673109467205072286125595773898596375294442283089278446155992894063408207089572956891744759802888536430083319405067997463041662918563903018934925053623654918122304066648334300097951774146994411832125430786741178521732637800507708968530116092797147611342661393468974287868261856931649830718029258316064898303756786917084329437668507834922875829743962632800728398088158478884117124425535377059788685919156593218057558515210367810104177376143234098882919153525785288151861550767794969105510557785427440329914286434634373445742173629243049302652273847382892481825334389970479473720493346489276514989052498585330877356902467488314056930561623826608317478499122488754089133164526274236075285345155974915138880885054538456670499388925490957392448010545820579567447392173201406054891697569417481382889612889200448844520177828231864688994190908128306779811503749804266909772496770896431818708872395137045602187121161076705521945041335578277870906215286299237506223990702048778452420164316401806465447011782730344835088701519082386085107312294963954800915626381213298981062391368348029110447991675284178120135868006377090535646572897865808931460990525318887302509923473863066120413836378395256380124896799717420893443704349740231268328809458504485208729199702194682057372364599274286052912316591676805023648150897559397334334511437207024186308020179721027870381675303542904192979079434400962966478288915669295938531510746683112397608099099714653375742130505721827838717856348561566346302669398065527602071354825580934398622395443522922844199863229462937971927629560785701501068379525454033244773401175242220243135160820466000125310539558948558806540021882069557401870735797092870825244037656992218594036812372016524733886456063992538185988701408322911162721548711141462874839019183911524265409753653980331353760575243773824090297178964665061803674774737958687243556346161555276410254519954984145101842642269295257039810832997777829790524822697401461117792571525692409018282852390839594386127038316174336142364296484611861949883985282939223353946174712380298036078863683436784389343894809950943496116651984125251749586878522238453170863390431057385777737130647422900355601204554279468395203604091068366017644908768314012292621500611850309127864283977037280163393980957479527148586397325546280930135983274783676064438393027088240010988048319705897244370018070363420963707022220362032506302969389858123104761020888718065103169743912214982516220390606135747702495737082187614022598948162679794157932969704055588453141040723909194276369265883225559783031224629967117030802415061663428893696121285237216974534300928063255065724509839611874881875242412525866614236442379059004493895886975435861104316693732000767334659940971911773919070197279285862426803711029774480267374761151900021364484039743555666478999008772999116164925505034839860625618068127630206196872145024781286385651173788237449469393484059959041474381119447063110826533019235654139654207756219767225880182546368965294385161942840150312086931559589353643887089981575612597995601607137969904316109119546822048333270355340169322282159656993040096896938602612100009888284053983743276564664881695900727269494203242638969836022937288810445924323862578263224490395010095244094537080066633948621824954900891084788068257895243600674603016102418669274174181372857066939570195701142134634533766103793252501890131775353912974471657448309613817011785766222664499292562380905366744975607809205660680207732783532859679565104183495930709405189870997189541141778834163981890764686073952232498034336013351619920766103109559969863513356901919573623290564757825922824729437684974359804180837182174511590539015583466724080706353343418295163507858415098137219298997362384068042341889093733527544937871323593410598939322777325961284205951990565964978725052359379492808361510100871630773107147416606759362394015293920153883251389782827008747266735636464544066415737359691521239575665074818014919808227231854635475421420375012586063113674789503110616033564244727605292445449681445321159944352265141920888719857620564299990912287647014732275207571932904662874941894480985370236098155828681638903664872911055612094748434129579065966605613451484303167880939999215115023231620825264237325381388612992564137581120872934130864183816006151826279888401188300295071633464525513305927476217745051217411184298353453086873233665943041164903891458890457636654659988024888463750867848989033800699660109187881677646628843327707607949863594508486263331985819409240361331976487239676469831989974777106602766429689062412810056184876996986118763880458508489508393985370468249030991198348375348865469286684439326624384793870694502072483711563818119388381411459495318403728083062403959307692509649812514638113617489626175067951752801247630767887587422069389462594674137480830747981586476132069852419312939001880546813311702783204170650142733328605102811794882648069762550199931176149904854365984986020004452748545765455729329731080660607064451591335434341701834577287762835318534239283949291957932262017562994527943206479636283986896287947328096685771815041152248201603009662494416180944850174882566488732408218605725187930458108519476621726666105283351517602518720030899458746123666893115570889485161659815421249969016856726956299326606609367803975738709635570879712878025535419933867372382324291991060807668285838386546219161450768748850644422655972253894399434179281751445216921048571682249095003718904929819489568920978023474648902609179548656866290540380962395159537987799281742495153480785515555684170476939252396202576409170606643096330471443939129816298278193295101260182584628770797600561877563582709485244725189121932292841076489394572808384877035371340303913958416427172390484362804840372657429750657147403906554992256548478491318060879199975047797546109391614139475496604129928440344827205245240163727584416730992827087786417948650371473140693327097755176557306277607205594857098500179211131144315204662066716478226905725990294021166282143411830455557131250873471955809113073064194538646538861033764153163279065576256923172985049049847224921740427404781697294701266460239227185879548878853715615092377923221007166804542836497028808538802448242345326106063618953349079406817826811103769736215073224301127752942802369348128148510228103142596059559357595081174232443054404530317981393074826310361770021745743451619441459618858245372723410262390619802040262155361855454809580484585945772615452446995444834821040733708370268655737465211553730377011348874213491295505718176024222069850414634381851113645301638142581149447810408119087406979724155739320102760167346585328432056649524809600145394021452171308343071409704376438935898934026574562465958366830721744146939522575107169243891252150401804602155517248440677198712255204150618186821892650801899618174511930080403590086852798461690896691857008890963542071179289705898221162264320877606501809199605750045193414478059204745633550729477328997956958178596732932534285293382537831826225442053632576454789973222305481863767005837790593235993109458859120286944769848632844250573924913857294726640649225856012524116600386360990805371622855009898898281713573171358795897987328053806561760168175407168790365258415436904822527050748108239376058215831798035864255625322125610890297023702349363253217246257429576632339802676938513266257750504093454836346064320405003415897526433028219769755722923291307765229347771996201625995696151474878652521789493526780601441828179415118851399827847127376629139680945139397907540993341057590602920045442820115163041473004516953496068672441447498805371439547243317985729415516550189768799270506034204885437856852281651939175280987910025175320930017329517034452387777668400611112286727573966809819553308359288754424447146278790745340376038551133408508916067492565282129716866550739336663537776457726395848343711197041623678553616817370900705654865349914774618231758215412016039808554960895218310808933643471169538191884776278453052023578181944223428352669092970499058811428454489226243878284130829156525885090919307429379855746642766984004367885054466022423594835302071606141616562413712413852317560239555139224571309000052745100316130274541726233581683375497733811425323830697175250725029162111467746467551145602261604306492606232739136858229744461022245657989184387471332372744744312393119010897747517649180609503351037282058389124643110964378621230328630783256665072093013474730335656213332497450089396806006795231996055242064003429347913558723341438538155597637880338114702427303584228357740246199271105760969469877091845809329351334551201388952120392587132169189250936324530048999011721505927302868195222286831599706440779754816749675879846175264865831577451349295627659489944100084008798912413078620216247081325182250062832951755926658785812507418060910192940672788938657472854800160747440227788442107368335754190373061845988803640413497199665336577621329609764767016174316411105854413799624572289342726148315515449001096341611834629609716719567735759660365920835015355514271281389590404933430731618172955876881269035408466974833637734258052567801050147971696011234842882225117217515178355839011924713302077604849929475307162965438689079908130451801021659134104009802681678901301239185179967037185027411697254282882709232472786746703861810502306351492356710652736652360077477535477499549027312308023089031629553220448136919927533969922188903076826693352725513431901629759460336618123988097965428718342208169057448849107819769156919803394113025820261292072595488703640657780154014082893333460622654286783785980274872030852088541693620316573599165657759813499706256615471594303791712035126171629892102758607780073878774209891947927915826366235351477310344795400852488403405972500984686228693114526983168741887717436356718016247324990517219047400553125476464756453668976706663938785967088324308035966150822130277681961244901832292837380833869841258699207848339988639158062885484128474914897115321296892354467170435565777758858328639762033626119449184485966488948769781258903511774479326999567207591589201682800740604121643622862039501980961579869593322365005873420170307881553263889281250012114939080305394186600635307548439334733146362541788805952651602070162220853757738514245355426672045742788459886949019503661817644628498438439077114190774186962590947001994453086775773350777415878531750770372548031699510373826026166629906773728156823271676195903952691249787531231119437490771864720418392810825196652410995381425681343677279470540492584367656846328761072972230035157695538746532654026365012277789488827771822264720086601806820355945455638284645617316769766368036828801401512407127398686421487160770589403975798021938412364495065227330941741459435374274390175071436579725393095842457915978490605833738475245429274047584546021712251175997652082339605008711615378299618880030876703460482267088058256153997500294969141168393376052533326985134402221928265237996596605161485552960070236196533513793792044380611670893955211079511773854248747610462762102895781224493032049567875626492581085712942382953827248927865631548276698323918206347559785653992899613880055573613439404266838376328152618188645023423201488589279752156735682355897092014878659342431647150736602076692686682667390330012815191178544261007881019993639702989179751290643280649849016246212366994051758094884752281149833493913537762716260344991247035902765669054775910218414718566652668431334899860014932485468406390391344083570574086603603408925459612524590463320269368085610849982497376540492161634411575695765911823318051607828392934027340703107600641695483524053884631481503569604489286068203197310522092340769136943363589378993890650888683808465806846477621948380272236577905649438671232706691485022958473019278721198426474673541370600107954015870339093977599708309206052932082235520876693723707953588774765968012410205121675443962600488592123774385823434467221582126062342395880703552272059931912835933058582132671246470984939111603547494859681425849861014645841659190218010703721012602642998144570302495681777776694092551420664190047861025238515580127628241979524640042590843908783287341846133432237319291720709964530869632890228956829696665178730926962422251404127545367075531231372422970411549349240434985401798640992216513466003043069717500034661179989311879782988106866134528399425634317333804050145049629855413665160850179716699198509672805772027239660967085672836179275160748872964367931590502533643488561768253967665731296602454044171941941006047323317677463892875946448542975130245474253801952197352426897484607964227992282444373825397079305871164545607468284455538951162448605162793608243919032125560811308988128202275311976098498986795255618069674218311214124548906144263517900272596634796857589498396304093383375022946826662977825327624247286341377476814556481645574717190146770637914347475224671648014980559590312850613475628430498992883527281404528898207911290453168183912200475996889386727428450483556355973701064855286150373086732381116574322392087637030929991127799222562801149188547386499209817104244544265022971109768501114804982837711739743106006649377086760915661012971245490844347364791288639165348041101557632674367527602384584340884446175107660793805137995853098688621900090413996787901584299032567350562226651524459597921431142250916659009143025373773580241554894616120938200247496102887785525858551396144503855784474509484885586892633258446284187816335643558998550139326660482738865177498269405817756537424471312847106221131772985830927179654363317144710645035548161511287790927369951562649195634339811585161535449304036355614365407676850888056644776863174424707546503663682981161314926587539386921250854057488693326872947175934004979791171439381494028482645269423174718341044699741210850191549275408441470736401967832354182336307469685087803105806665309161610338760866487234981927409579147198298578864087854110482479413265101772328475916992527563016128329489517431076420747164289674417422496101347291468665438649645476680562138930051135874545092050484673128078866171580335432721313700847463280283155978844219145382167079123147365176669119413300499350791680380609956594786749209142029987662910465592025401168956415025433346971665227143841015154768928520364968998854483839147978415086790331842378254521757219387846851322111631179561427828195192158809202453437888183066379196301226848003698932010867959497493482809485028898744387672471786661750303237952052123890540989249970109783875725226104812434433188674995131853236552748757464587974504668649575968312183195656389767738018506871087264092384056717447946952259199143484582469943921971626533011655879423893051687073929935637686388600714081295645534798285961223130860522106027828583762738343175878958929502751580420650988286660302129643814173032305200160449552640429485928697788023808100670336420198032524224963704408159826272282448558280041417351197415985872795349065145061427897309534965674281543256365169635222242437697490744903171446002659606430032426625650521902298787152912743384665838954933746371940803964513135437629339518370070983751826891992997353103600262180558464898361081798499482617665500167759402481247797042224333516553231320500032571707300683250770253590383121821264915817951662385274351217173311505284192623088342707721335542853247514326425052531990120058989098393228457744847906726007526305779321653619664861317951947894449629247807189112176703355071160062265668528202745155035800187939030422188664177971535765858675360539018629220037914566154458089970193654276991223573394878807065516892718393395412829222168854390434554496644805771375374820794558905499080155711454596789807922626126272993747419154470892246026262681505216890858528890681345299131479940222650814743009686900377646898722566110616989771514919902211022167193652057514412310626264535793785076377866320784018887881342559644045089174857816640488317916987688031896738983757683905312387638728467080533598168969155376509880092195362470532675292908769518677277098993629226838002636473247873526081769143011890694534295554899455066204667939443707602481139280864258705190096907759380681976672392483625735835128049421942004091180519411068644391959322183989972010826196197578381140639681200389515420986744464138197149318919132313573771307035322759442557036463548683432237732397798995116572596521523768891507322587996640315265048670344723961662914342545730772896272052083731705316737201662649712243231753365488670280656517690707643218159669696135257537381456219078923129633812078244318276544593325239467021611446612612229087407523174768596876730218129859795361016034069688306014227466190864621277622035289034554403507666383230933498724395915862416645403887724099776941552839023821059025120412769788051106347489146235056024889083246768864996613215480129273542901926503268819844219700936315552443069937155763815312039337680925479488773395881999764103669688120275522651456663071731140737243575736394144716650018312339921032809560570239798299365834426565923093263766983202812864901952833695017214624063271586962874459833677565620190433388852649708263848743730017994950200721101602472532594445637097707536243386672902286093679505022022722764277836564179996939775202062469572969306884766387426982013121351104716885209737029852137983570495559268434437051167386216811096916538002715038235789343566526687856760577015528325130896806071583633157380542685552793104665045308416058709831924257283851495485153251684451328163704883026866720355624493913674784623555623649975039490076648191261920421465575881514587981815489962949363311980491694382368603041289186710341337517559368671889042187196406951147922301576337523460094732051374145041085240132156894255682781509092647115554696359712410476972538235481188640609879970229945627610018568291002376443882149251761324880316316798747419847122231270241844892317452244358957727870954232881367030344636622550560348975600507967274723980055149159866607754170251584675902674598146403792813546357856616454043630808599958762807068892855545018316350547558250744345289830435878599771866872020047813215429470442406609742051728702992466272810589078005894461436699491759933371527655279583692774239162023739014573161429157582606616835271800365658219447080495730057577742100038766790378583350178468550380989227922128326820722278167491769089466098602843896256323288788468050881640554773323960431357079736391544681554830036246077744380179420660693455258633939049894497098327756257785739997875090515725784346808712518774137829575872651838532704397725392513446531298940382412472189571886304455990773216652756407402088434621065906328467193726940304693787693340146445519059902097259709247013557078201933378083779710221792815184791925042739414664117659054209550350291758584946470710353555202582486960993141978920345010756239467802560838154050979556771277691133460741552950188372422980566541373731809493051482138032234397281583787980553098292459999539344112048844358769019207186140847517433267658941351595648153732305774621553480436074900910549077347528196999425925829106368443614230501352770879411565546240605234664744227600604369581784381104605113781407617550302307494171332905964229222606797643637681201462148405414452856229277806443029260365201553245320790170702478054907043222189287494393936692721061972178879769130343050917610357910390257743414877154467432362433689111294923980700934196013695540040108816988872659045888954666024715203030158662529438452629502618879243559205793219430526368230821925855001276842791531328445432716084455206220859582530350073850854095666604118361513890256581582500334260005364508581928739031254719120565633426895881080768004559856888384265077590152986821477051574320038542720924276424443068589209195627292425334683221776754205221328947324079657612653037767202455578821859740119773892527269050774179266723006706727898367206067411922450279226987866363737513936526113815064475584432899586234271253940215187290073422896921017305400323257663043536301160576842930782736320045876921068760973432363351485137739955465580021069897179635783524298641276102956917740935349023679931892138610823191780404942564271882622603915043900472842313791807159948004939925752145517212014544279106991879222883521413916156027025124047377342083166168620712184607695902538591577198702896880405890140953623729921806367190733098577602915887140475782328826298358083352364810472957185127515776236224204617445595572768572029550529560208569647040675065821966211921628640405254681960739610547860316693798207970981834695228044603443056339265529850929573355340694200878546689191640718176857274722745115367660600119530840005040955040038491117061730884988671727969083346986484889954286962283494826478073764669686896745937656716146663430928107345534027189771055918373821991524112855944789188370824229629324821012202764982967451073612933181966594102804414104637471208442216448295061682271418117222025706141298890749751962174430893702958487630654945070497940121030297844580968721076969726706696314993385996521909705497167377725837844539294951247572276523862458330860936079761322066086789562872864193564209793643140412580424895249812843286978068310843502966700469520158050411787708008635581806902925276525942292178837125776102469490336750646613885566105597577702861630284436473824321823021985391474645084120901613888144093404094781894217054721822996942092398801587514997611594946757978478674985752440252671629830004822368725108774446081812377949548143564390800334805139056656706136332502258535440701920055387067304685102296330258762723646527669602847422312990010202246682793103558906963775884626571441371322155573132871949539253530931860411647714475665938085107765369287870040748903943353258017835431607775632472303327504788685545822573732719540878037656787430561039678719394834307462953887999753738397582020890924689521549643858324143087440547903500001529683656839773444382485542895179105095049535977424956955850398295828569957393114252997318778806608470202332607242284205421299188731139663753974190919926086848102521445430484034898749857309591769754696778109053943973935667909564135590254078811001025659831937164565922907785126616029829056555482587355482595436182242022741672778287177089218751657486673456458526353742703460618453924160089578967105465736565163384984508971066660791145265451061701471883626936759724350714764339140328512104059805643832403802004109081406215486734624566590681085013642294769908667480708753290837960355480670687175876639708579352549435583888894569404504664819030026076236273732256815494295535459170121280973716484526831781985737916259859149024255004348166342990515743211132978029341739217325975733826678132574185121758669264031027848222543607859995762369922647283819500731396823936848892364754200598413608235094034356161864821694396229656607385072727257532964158823916127727781092469006999355264082938042133166951026111670586996547741523042104409543973033744621379451239861284740917437441026876466442407589765875341639042044168233724332171354260291305643097772225760695241718429037842423496162885807386690202555637643603067554378303907157533032972942389445247260807744537904979200624448166234992516804800635451824737130302769814450085360071879819613244047120041981388502381488010384647208974712412000241765295234463510517928930398955624978065075234368778903698931717446604233450601610597503128123391823099648353328319456621607514119388270054498406335257819465357696789397054895767116099669388385048784401590002138038874343225986450689202036044687200054717923806662039625835291445144547770649913822931907400317212897275593366305765299475594560833366212805401421319896953380224578567857532082401789482127499921100279501810745431286868729292774069526739350688055195734262498115648632831712562877626843630347092022574856530115251882525491311257595528703760563813297974054190601276747008455074686263873951567116937531150105306719514608140190660819528291666767543353658874403651005940790656162620656133470005948795632980228982357601916588438243214173483109840724589810596465392184663451532848539286074254543606194934371265782888825524359828947090762193146016472670832267679501108088446541904429601375819047401283915053234516075770218542733081871404022317780720740118651097387668490829368698240965581293596647004309277429669975063554397546434168351053349789624742794966916332463598828734731310856009401134983346596251291630957226345047536593957520008236762907436271759042580872427907015705561904952375367440256080329590330374137338750380359344082036543528361912794682825280023086638697163805387402930968596036161019269858580639749932056338181492042302831657488096889835540104831656924964955350929674478820781011931946631587603080149452617237669613989972138752673475868767067991855330078406819787866350884207284130307925745112719355705949123113015512310879495826345627846513445140954403537004276650233191016089664165953765921358199673054819800309826652288707224681331744760433058320485801094344121750063758220987650794427983076828266723024484512254300779139869120444385678393996091360664042266995258791034710468572694239971695311703782238344235604456757470751346738016392283556931708018829808657938533943221361045005831606467343959651964835631192445699423408127661717677506482940096040085319608448329651823767326007365402825246222818513118256718139743917242598978502188771721834889854971880889182494091658664139983074722743517498664876068198412216205576202429982052693206174684113268220006811143441920415787311565818443245886528944746165217225955497296001914237592166836324958906418926402748952240634068882925852783058557159340632900401469476905644071822381958556640695989038930899461396850284553505364295297338371399129043142934438543785500629709954510888111514263764650404971445552805271479109372674914163273880812509191098877273119842257724094184804085287977110473115985923338524096471030089206483308289433593561005740228416944932683202626870540105318806902422308239033966047116524202538024538135331398352215801222610826443416388745584097105367215351261175275926927845201780308617225843976174433026087327364706562236762732624066696455461924343773874818440870422224374187775275506664176786803578001238843146138153025103672003591830900624390397547826078617019522024081244027830903636467983326085823284518296006753229230951880363897422594790408291691647653535271239411141734942429860959849303508407472398298572313738584137170816476350531256391133066114479875832775332489723809138688256143867772365748738595280776316735754752454362867142969087092639466214689175529774684763853385697571866571964413730729217652596860080577570358631411722594475191213405189482425155420422588283964642915893279066391367704044268205412161609406951251728286420001377353985676224699263968016651029864958453225323012607088352329179063207508157952581595842794865699011093862495308847869608440679948644951763898424749874855461746461482880009944465472297115950471454045625825055234028637874598975894452948985847971859024223203825577389454535920514430862670400547253925245992649364019115162552877575484990672298575653242484558679253453993506112905121454709981412218597868390344223969476663857977062043567225381259261028770083081431625343784018562700062676793905190832408819975098089784440276688595524186733611986017781103371840402580751406792578846778012548978496577925862039964500575572650358860676669000023281653942871520733451659591830184301218088719871280656833204418436080544872390259762491622722849156454248216688178299767015308863961506064413911880887175140203540472662579220721135240230780198270753184908216684415392764829354815777434521348713182447202153465395629277161046768796867296652830377785796178679431591700200794668414035045818284506972529629148049088319195062083887176323410125091175517031245026145102293825736668783731564948864001826458078347366657417780614056499545830673180249505408992690011742753423770390727494444755941433022896909805270705896219244852530199302685602877692710184170779882521098208205096832293294940215208761429170991477088413114023158343066575603742225293679374848654645085877575533861167642357840771515208207267392016671177796250125839438005737888788301689645338277960342079947262440902213491814773783840581167058031384746122091053967717167099305528702430387501944740671155622084462582508143696182841192081637199826125309865223937060273884459524056298533830422662635204169306103653620839552449501015860594223576116541988292177690339542938088298935960777337045474672892246062772378078237817345993598706072713273584956580452799981499300888528094095889879456341464028739957109292703451055004277948178759693882504243944148957644710798379543536906471030236564215808241348301318226987983513645747163993726011033322007068671687648959579731638295789692573219210662288045456103632586255134344813639493301528837189071704987726244830835134041357781780594157874076628215629295278623290827521894792744595407666842805379315590936378065694429551062956035841563336100217542232252984505265325905068574583105249435434940214502273295367940192682696899281065458608931336423906624367520314830587336406521028752956842263623133945529577289680431708690281488895441239422130666521069901975892854282037011877336770238664502299975405443060737403289758215837382266724173497515350758563731573413015535664466325042758081728393018227618705678322824319789797638343327172455111133191860518996931552885449237488122205018583537285300065484872996613796399352936730514785819920720771087602047679259287359004423492555303925838225151262969618823101781344925147425784408311111544357931257313287430311255816213301089633712069891902173583323827744170524456482986569929623213061140232067109444515075912939270665851213648261803699980528264765408478384358685881330135391272758825317282432362310308883065883292668036780902875980858952279947500000188120176776004116350962015871338717043422324823430402229392152584541307741476232567459547532534373429216077193962245264951118390377032366252803369511160512559682941328971389767538327168287741702643847122617415892241765831189658176423063628000203215403566685637188809834152739736748384395825828803436126706406887163209234021509259473955840828835795402075935137609163485186417282831974041557140584891461230437924090830694642253351070848514260754907343815635817780043506988555554775837022423119003682067684551664464521683066646701594701707073109477140276917006637947676727018493544193967104626306280625098347973796241191430255793675587269272554000107211525709142810694918300272671993471174795353031860422728109458835760083745070388864196301550947323196512567020572877382381618675384351614856752666291534880632349385382935457954459254881255299011061070954018038541429644960242992521042821274231136525579974997109385469802569865200701772278071366782022346155008301222827486929802464128506040860521346314216884272750737435170919183582759855491221909362012983498445962030659793376900510120118729892404606542661387042537625112909182649223296369994345546662462597681791699355728261244155401033452684954879711086951519277554405027772365029192832035065787980106330068036066808934959426959176647637054591257610130203819236827680658870164055278727546479729543551717340463895122076561407434987572252229239545325911464258323549689462772599689930309672654351433047179555922588113534198200944248229349840191285071557526349727661294314326997536924725401978128737451996620555177322411209041769025944370893811758388315791992865573048422813519066426537506852947673111817757636836149111791959032390480058921133424567315550655745833478414123980377897665701968829437872798906041128867143704766393687388287022884957033066118676101090124800030077359802739521363761983876118937205011563996443481893940994797840158391727902280622214948073664508255299224469701147467350676386236776903559453504874318757953640492652964953580914392475752392069519270881301084790530794097945262564044269997516806462960746327273081901163745666624198538850713600679260928550631513364199766199886729947715579693591351238331558981337089183099721177762643373930453059442829256076755824524236559955405141120575432648291258694220471268570394642836711694279051380627454051106572929250751105684020677455439075165948298138940980054189301670865557324506910047513660367002056999253820284951729778602034724535729126238757682155061789075583950554422850677116042443504395751571856739546423559979738663599918156464159790227857365756493717832163936239056696813149122156491156922028173665869006879791573627621928002944161167553546126757080438965554141358391360837780555278857481834537328080422157315108057387510643396250391904312202787379227671225089545925159352426925557601793207506229725163821796584177303520339010936361114488254910661693989483297017772845712633867713717190041897143290233620956222251077348085601133629296864077382807473591621099133017018710627644562636096724232473179843895434473306899188463388177962740562353634950249325914053652973477392530288477168285184469326629287944655289657246414462257588362981559888960257592743300379952527392398436499975970889117202158835787554176147518259521349735007420681674952612625083504722209824828980864867130416222589424973721520540285108035331091799397950866730943360049192873694384008833556250415948150634896267885695290054300703954022418832505157211677508642390423145657149085773511920727548791644725446394336871401737801569022917889876560465335789611800907942239383286992218971244113221490440350460317939276742924467358067114177097294076221413976892514893622155710978237799069002725360570564922626124847539911607874349604916031239161346937458462665228365419857948919573418093551278930673319476336651901739522922736549687100922188354781162148929362304717624401139359029375315766600971053566392589764375416615331468219203771822888860829032254392717060083714204712520419540495526922438152138599237977365277355201660335765136243513190739947079593678279364942121192091130045740579715267085257233576278813885513210672184950486961106744281910628831043658092098543682557340383759010940970371805383334850006282086739263216904804664473450865096373807855785296805117666446211417604020221279346974877563611812329202639464475266948289528364368982352102714238000850875388037491486516072296976000145183697929744038288253882574121923562980295642820634449749892490114903980263796850233278243479086908953662414897627890636476084596946624730240961953600652067848124478647022628107055400066949017955067296372689095422365668567852058003066829326293071002325475159481453313662994533570431538987867274926072624185066285662905449398471532630493625092640885742702033949137849019576663384928210555559270460905230555892751349982179873518456548383145153918544218349561006297112799051200926800491135006681687216455306937313182269113085387845884564855946610981909655214766522570632399065092370245846668190383765761290664909494903240153853678612606062425680856855321550308519492919259958515796977203509265439632423038897870726608503889918498805281938712638412544400165869693380564894758877058033936292562385312841444297298009868241917346483740887040862060718301536256905618891442829340137204329919105884717658230953679794444652503253492385712650492739998297832212548862401251484321211077176762137557873054852855633547736803184377801484387759542298401549748457164603595627347775168241209746357821895958142684157660023199008178902407478168017866851150512348997797498828625837983551568360541929877537183592332657901053881193054807216277899804236616094181400496512167688728275721713141890339338544243889735346014726396293905645117596809388460340224121984262618381557690522461370655601490282589915723407148771743398549733388849423797529010997725588143840512884767070748668519927749653883202323074341558832215748737617039495998906025134731543259444737869946631712364830694558241610437318099704022761025845250734398809768250925631408492819490376588101332930780249598566106829284818586725349942645481781914696569249647597372515078090574048277648218368460831885331956138581240860651643841111248821785557614879025505335995274591902897597019269637043078094880910227698343877485631773257851692844691426332096382591476545273582360309509634388796578249110210177536105277054546347642705932037357756683209890559923854774971409626465856872395165798432500670868194212298496001668349597959775669745621406632903490228800163734073054540615235884332459402342390791044517193305093266615500857768660315009814933505331402924447780499903434220655657587781939091520046956553936874360796315719758827784586491169396890823763211495617319604603900324831953027002022835074186660618957400219147710575791895466268153632273062616412640387416751852372942671254092668055472170358954471867249383324930221085782366270380646639083009725950207290142097661307979845355143169590028378907755151974571537862899763980107967096254404235558214855738463751821180665635696596609276384835136670340612517976577647338680249888683845204723698648868139016697210404300625543303296547061565953099340735895811061482999837808219106057308421024190526945482640573899093755516455972770572747141257997794682851408644763021894867838015017327644174729091884183695842731965513217298064828420616068967465398373182978126493202249401955904598138565371652030801785070723980171263644978344770812272792706283476275885718417810973453529914873173408596939552902722796031945665462054555438820096817403330696790368859479227703331713061453912416241172618849559458590808471184569760563064327492026282663099127447742050851365791540597942076364273420041038124905631616147091318038301710372058409263687693370706287892404766883192132777789418701047930763221749330545234675079611551837907275103243459405899447392675522765994409728849991144312834152701778704384219957474114225851516944223782180650256984446925007160661639576792661322530327902805737653542011957329331920357120049998440299011841570453089260707707334832018826123303009417594411411297047622105844765977023142563800805175309348686167405167316837353202280644444031738665689125220868570175091599791515658418535189954828622548514274540694976983388118944728221305183238183356536564955684108184283190595812860540261456120581383199574587191632028885964393604096035972971900605039999434367716935399011679266377770766375917451390827762213359455359904571510803817048304379875724040514911610726199298216426880722446204146091541369155270975386189205997753291674517084304836868683062966184481354530273453939431028618045424933007850126476910098920716869107504314915649653542452440314311412044484073279924631308245047037769550947848794065850719873038390282614492138798278494510222372469763361539452692998212238062194532130431085226241593455446755379527230641412243215966738356608011594704983372013939040691396878185823649735202464152631430571756221894746434905757581229495948235997485632188188100497777220592274812044351173716434692125299630477488795418058490887161414962501753991337879083680679666022139054082416942235710577182627480194279377194425848381584438740439426813434436001193321727227526162976074233789641642994244035549825902947944438189867520875567470743965764999677396828242875141490687514167838251005495092310286710641848747509600926940212925275429180406479377628268512144063183915173644461439717908061922381856531081567646371838264272585928360528543612018211491564685203245920975780153474792779959998918435367181720276478432281990472230478456142820284586460596362188507111460250038964218863355816787738717196241847407576561177508815687918621121552000577662984258326676990162582512023882317077856154118892698705689123732272745347902901625660236936783726586886231827993436590505070290291926055570673935905196268831329847818752120716019505035762564133928102285711495388718617389318644180576065827298618471818598314605404311897632639257235908178447017863305868351272795595981520599014399248020378112504178995484927714799342079061526313806844410571485268000930688673238188041093161494716009582985333659738227130268104659328317890548811433114325232329951244510325558590861390631406434099802770154345944923910056265980949705025491454601723695961123784308042639201909788315145739011171297484975740953867258896435811772919613351558197931695028670869675372213265169679053832875166637040716697739350631729756756392464006366093626541940026093912699817061735586281464493498054016714685086577030246739850905707657158670469973103142767923016673915131250982487445690381870556005890491360539063514213131209323342086795921336713869615897589794376244014018440941194314068075825009687959496889172132060698744231948879698514203355238292163132691754469099090400982209474449510846661655624725585893166554724950184526822435025384703276183274913665859437124709979586423730106783117013501700759285796219107378729435587021341590047523562620384000849380364335702394904332765027633895633275028143990507295349981932611694273340996303825332882292731602434554212746352785429632104288222369912377669464339958942811310168940071384791112830746856340747899332961229700256597880376889156515002582614765245754434984985816426596206719772872746613884079810136483456028470380365216384997308354129147706655023384747379128466521903972449595115093364829544179654553622028020298819083071502630928688118052496860053600052130759453324540836117809425070014141077307606252651540212521388993562165138558509121530096159663571955015183347489656448165520664548977888059553709526446313019962756174774304718090604917689949955795731644229485762451491437349764656774893872502565298155863032640770870096797461151064938429135058962804434689189722074945435948249202953756615430083399700720344979021110587198427475017552332149559488126661882828824232647814924958502234193512767838243592257504415165990322643319071028879916840833730234082615223558109926382990428176177867107218262550039046824290230708523534976621013132877888841812624047103058527531362599561641616773708596280799594110206575434647755716194674071750753687386394094041523763626386486297299139923035807688479403212018924306729041688281278433008560655682347436363179458699121189698297937869268873873650507242515891832400525591396932543714519564758074695005050760950790028925704683355960696640075685594946801015053346185406925221793142704892158002811905346049014834303637812484189651824656833643153236549900966329090907405016962873099210149725783104263820520267527717038740901528033865727145130632280992755623149350560240614024390590426246142414179510668050724394108775531944995431765270023642769669065190099030420340906820201223042300158332830434806858316842792338069428658124545345904435623905975852637117452919230905773035272939185114340317411696900405479504155072453979007857481556463333414479875411739428600229736964971883295612679044294286686911413789643994825467188017398364138070720616879915873100701451760038169199538478908908413214867200574083699716736023681895326902011558109087884364014545376058801631981951942877543514482729874838364809255565181746579191241451259165217544250887200354129115499755163163027173264771131029553449447257104711995071330053905955337391303556139025337351173673530270866238708432644720460142993031115844178205176268583017112341964958782232537117152055556252516971186548663620446949013521244780554595722981990394266191291015160192943463548172070614402330689189913357674580254084266871718991397410116554419976624693507419691013435016280507675667661511228532291730999177033111037052786742793144434403510548800879290484653862217648968932222671957375929675281204978135802962090225072263655469971540390030289443351545588694690292321516256302250191459201412543442075329713940338304442404835493714285978192298990784172780892175853906585767033614030574894200954591169215051085327464816863299196435795888322458136175082997529055843075358093176309010546944640103547134801239087827728896719040372839468663816018442344914780114540591530079458940953410112776800118007923772962545676925353856700791683296939543727393052081764707650768788423767810146558674812708226448350263480343972357477905811638754589183436579036942691043032110253228351608520812212492705883701115014364152689438061774003431619132753367987131366047129028947647738532713183973292995082168400651892280109281713815518225954163618790785176293403737435717184118466695102497925635196297636288863854023770141146818485270152638445424774759844148747274887561301388014322084413480147711862202921835788759411322171527735106628216117655879272349421182689579031119561205072506689049746927748127807011042790887737463675066865452665149193151286361034184628064714577147876725404176710697217755513976619761391432859251593018486283884893985624238437051295229269322766460840593200858451820919404433796752760033819325092914032569985703897738355720702346022100890676036210647173396054059551549679377685236438049248153859674576921954674243362592680762334509914646314195528242608076956953888636928286650579704253887043153232642374436368239546678833899009931015389774743470038685553663421787259309866407251864071830792930265363729566097589487534086697128051138814587096464610904601387998832278559178636228717105450600932117138679472742575764344431437063102240945745770012875227852993914680955512278745992103161569457471278376621192381727473836552409600423101367247975125874139557262494955648150382699418583515110034768652895766265305121432345040388687431387592292977533608968793941032076078916053445703571216878465305654702122838902481561279904172836400657445437790545956574587805628071518102122354092344937122507329418050021043091464989650508274506447650222305416546417305526419442070586855695196551779593974553650870469420482499230176672140245130356651662430297745007326761343081619170635075249776060516498012129710568968999876193504186576445465647426139733556586861498990980116956098391344528222855756601638539171570156300028464369288298464946797354338690188135277125724303144890081030018451998417842706194875889208022381125896945705453036384158081636682250414648626748127587649724614399429590240285231439578140913784100251645344225605457281907436986053305547798504256172724051457634229401672125565385874860586264907996144621804949717455634164083580882479314733278835316480431780193618452065953676095592517970476188642918994657671622217791748309055984094571968121063467269514569408662253967020916102633557885121450278074225359675587524588112698758268919974514199924681090424261810598038037792627433985641760020378686725687795020771256892411017766433175348797451066518544764241185629947729992462510734047282490421208349808725018409767492398726508100052976131340694582894448747436210826448969738282031068890830760919313801764954474032743275715556981466847647305454865652290120052730385304071124048385440045908396300654725924035989983016556276299410004403915073721727744659716952955918041982582675797409542641354122401894032899271113625966576503905507777741519321828629085363542288414753982890825516565316012256103225813975298344976818160369291625313228828387277811939037481126850249859309018867524653197642181975614166710414989542372163653893566520694471341347021199893236717016253635676378681018851385219881245324781921626851346164013361310488529316136098588516217835100599037522836425337682736893677984991865775238633673773862966476462850872591142675606531221930009626021401131681592586857824923839813865858600212960209171312420358145007715666698247488948354089460085594062081732250817511518292464360770533940033166393525004068445963950225742693477238608332676996667452968906167963633444220632470442333783422889524639912615970603020844059709116370825082623717937052174635829586228967100796753041688202291920192081907701914953508606542774889892788403995281012594937187541165398745166115730657874202537639507205660994974250250642061350783272354312986207921775261588710044402507586269559444507927600133483752151478453819308018439674074039746892614365431190511608125600749977146056725944863461022876469830651589434487600264465693613322843948995182787560364963267668157355896892955883549983387010482021032964733769716996220151437694330593102741425073599257757002579220134508058812085894669363570002070119572295216811394240425744775366790742685303356116728009349696898489603746487316158986362293303847625061506844415107915038164451552828724039152909905159070225547656543958980663046708123701186262820332514980561210929718204311397383857677817062198490736936018294957958020466620697278294780128122476560989458731264646946871411456790642262334835344414589219909572444072685302219402277676980355003778701493443563111128997461354229018908843683738682612085368336909466928250236421441117306863400996046298340780923910821867905726769385681963934533542911980780137443607890222723138267660705874553751844873087290632263472189064267960507166039684270560448472597075680698018296697503167815565120935444449895605086792363509514444223310898283459543634127352133285356224652760973567951055054574433229064427394276989088516249094436952921453610947710109617346055165111346458227393514312976055332541893511848793965834701806285211555608931467747915127631422781524754654141455706985634949429802123289890099832625405090498177143829779051918674928000255983229282028906209882291137760787510914186947797248695789184496117181629888831154458032291382158979278682603455607559604694431495548110723172739948636015773733473137279703956889304830020439430051366265453017633837898666275456562836965182804963550813462805223640343572059194835066776231084028224026336108114052848091611195958063488826470327855093216417063973912789023835361750602958384963660166018183598622636175438821406060023402227866015165020482858555662891754193728205303153770264000855001332474166382981684507342865118810349468748192106111519130647554588447041799746672510567202883247578545317722164330923610146468059834039632127249338374643744032832412907598209508322002854697292188971618728396514681976760172721404693681969736634591727090645056898447371133698345622981814261262899891645865394704308446829285248274941960075601497598681291351164275270350057702365277589099356563766536177380455751960669723137971765258277891111404657756862910200125212396813403503979508562465233159187789178340403881397172479149158739014653751113442200400845921868290940204985773023234062900686243133833259047237711196485590765094546862900963507374289284625107120094107655766388996175354683313912472833041815022475968666720478563219936888933510917588032033369734247487633837136861549436837631343732771972201379905258589340132887508951870860397503441167165456605470747041981863213376406634341832427514104455175854854359195659167698908445225481961959330371425243154247546782019418801832187169776845201722734781493503163704727651183271354078342154894572174754146698036531414472314067867912756809398454593212381375745108473463190940619680216622790375341795688652644837374948982283328270289149837905724322779168005340906552741266729167366762631103412033225396943611069085311853135101795229883150732233196034173674918244361939862854036659957982038267372543569152418395719264023613809209489970721943093400532420151132699840701446501679659868949880753572454361956655692043646139176752890005115688839206616945720718984450230344749500775143025615655956982893637483358100849103879555949954032518121616152039517410822688024346437367022088374658332082788899663853781241019728283221141181815297620001473204183587227566600596664934957038983501090266356916706456796641574237786931596138690994029131553163894756211920289998827970648954941723581845733283876188811252683999440842803982941276641064802558873214021527147956250010496885052553284393879823947591442869307938710763517292285629573441917327375608932951380206675120766907405684282898295127869935848389466272699244211151013368156626911434985088108584284718612644626958948412029854726993461695459227291698738842253508812701507966760189416202030103458196253397169173947303907558716761760907851957461655237291105439644087024521255966850976998766463277134433460191103168062653128638970233191584782714826056866563552437419667365170610223535110204499070646246574074720350140841707241835391059307957022779405017218212732880645180179531612905890232287983765804113654094943560593892165889155644450600384301387434151657164008578013389054648835860679930158980041415783052627815447456475937143076637640866554413962900004568850951043001003853476718278606065321595534772898537813684087497657081580422046085310418714950818442701624444155700620271867468618854711674172670512542212118773976430219014174145196224471146362716603438860158905375463907122067886287920623450170566843941190795369004378934874263541070494202082082204766821288593287990537470162186614799516656190481710951279659979164929012156722975057221141414093233886436225595761054809422514229222937734353983210943078231433982781608720540937719117423725124636245500446536393077410672228297900672446076504978723952343332791916220812167689339421878328534386515231257354829005855427312560376178987272722672992364693369133409771465749719838474054306835892945382192339295709674457258684928112653982774707550292671590705002113443071164045530521593708689428334777488669302130648021214646191407943074878057126861553229995656646264343844046869347772751483336571855211028265399597869004048746799435520512422963682113537864242867221233441715458962326822887021912319280987627169350575942431863266208021107258100849322270832388091475602484179438785262881077022502921237240832453090872280600395015817668244909010170957385757880392598914601958314414103700882771340044728863114802189987491172723230050551398450549328533337046986507159791746371635258185801998031400163130411990020604297920837759081832289126639631503431395548052875933184765950661150211931749325726500643149528907714837045147250647392603903668376752540062327519488376282348605145749912051974696009195392077942242242514238443913011453778560380892594220090889937697455118895199045276910136082397049875756092288003284909481750106947487099021745381091213448919737106624533503349387242111953869037440802320653965017153130631387259152453268030614868809008481966177546425742219631654901282117407698184436101855629165980631367090513277297184270551787963185693287420258229760893166492426809867929117755945439749206431820296702017456776889792066024341580864814843030128125016818506868748167131825360937187905804846687945687621351722860068631215751330873374915431133086117518385268978449026952816857426832462991787964385928235695369182383952827086955019003444140732025834012647996048067388235581984749352353882273710177810373603311595785066824697587301214839759056647676503738508678803225783688742500359622271036852647490027874406751679072554297366878424844195853418493857097703000170546269044482340580428074596044783355082559813119954912443226806544739789897085032923872732630165960469590001665551460879009804553738976732977730886229696370403490065047405252318943098458916705961197117048273050639393564043916617419279030620568404189754460159198497467663453584916638579627342810154912997212800553004056634890482621828769995156081836407394506378252206111069330359389311897390333790278500733008807487336970826876730641667123844975116820056149705378978673312845582371463174866778198440674164290328405432561033441267792576597649983848622754210770674699638228223770539168118556356996085717271328474236853315295087983019150342465641731123775621949337444272990273227022691558580453423664296147049719288095578195833030453748098968376834615959045998913101031625026964171446684033309602247705189308824933668502748062961089701686491796210833344014980132691649672872779352844255174296418050706900635107310000790290538204252470369560298996545568914032433717037022629433091903859681454371707653928966181723526951537106071254330397850659310969752525271993122284084426556045273759699123381499977030825926098682491865938954241556258255379782198285335806397582572620070411891443661433886969716276440487666956355214585695260980167085854491079534036006502386102450135687041635738980975692747821801166111251113102296269037692257159253461683388656376492685355641926141083384555282816114384693701986328133134248065818535590453092407062290511397825055317818403604822921061326281603618801896935566364903756718086948625672090908849697893196249735388398370067665716186683713532837146557992795075239843257895098064268246890132399257435220685545156055201736872792356671591462320953455914329725394866005251098436525310973299703541106859694543309369266294949476974491534231611423212500180626896874583875836866483818328071511493504381563342845126063311356073459115588731093982226130406146496620240484711493451823440400078413651910969224778617306167856730844751028834592835530008949775777326933481694277264936068795105413138520588833812423666332020011988841250586731419260950684860966456137347215205969534552794153720873352817695682709451540738464949068797061851474121891351879344300195074109183977329135903373172650367111291528839067522929985605617282018811784298984109589307794499568752899578818804728746477521853319342777399455221305372595462532277946362889388584110781673704912953039367290358996368093893430328166487813907882098528223212570706592424656672993437362845666124816636164619397001341525369707439906060099430519514140425195526003100814449653771230488832798707542159647737428213135388318570711013633702491926176009672229200727558202013921919992211275573782223142094130409952383835277384012753770748040434861808423701659787425731091300326639816148574174756424591358024872453344669095026645364131218977165690294949737878116488548009232106944606005529406610371938658541681382877213048009249177007858730712826154361903901114454799913042621614355198607831168749684463085235521858773166571433282516564992013370957873213593537327536203006606407901241887447370808041269622542288579156163031743883252303386825025922673544716700475758107177780933498717868819709531912059608243132488882635098274182477002257725604449912725500817062428635641107800729536901977715324376771982838957240146365339074618584415644413012131980055100135080003911515258728984271989506162366852276777575557654560147647444384998007846317481988573014428811293328951445408082914161216544388158769116173197769500632804930504156836050299025804863581307947896317395203453356495483985055988255678893926459929992865171591676526774626813208754528035899706361908772688187420029389747539613951381108917998653066256049747617831518519681238981068296892738687128440487997118299685342626063272528454749766328753954660543759957595731216620396137790194013246576086073767692219153417887182942390525918167617341136848883018835624422997752970786401944411820521790101053961551664058692087395317718675136070899747021371544673837811470545437643131787300838612622618739378635523206281588169897568203140811599550562258966162492765844830039672709757478294603042199652870714800674296812631413394613120117709753456425239357879829382884149883206192767034111765618692821569425782420061638516729661645789561128169113387112042948621330060952258678694957741419399056902530862297708023028882812249217622570891042257766257585192881297243586837115179725368515626986216516010409687666325892617434081105208763252931815158798610448805628134545228157010117945209562461183956198146790490238868198805446693999900906572249989222990951024481345828060587240539415983122461408601093747152206212663959995402751036490090623784101819783937308226353825875910575153972565533281512500649596644094172118618695490144614534521043255805152875759394022489895295878560764609999375636063081166673100863753603401177963612335686703077108355656297114053233201476709255226272936650433330969407262219458094639018289691316476053498426552348267323272662265548572871841680103429282045542457887304756037194854606689796790248103292329452563538146471322380700228857089114524998729831797009657917970498663788804968522921190567001313138580309199937001679236781252580692807550505160423048308931190420875108720856100990049771774151447248957399070336290397315802816430296232851167127565358586932044269143966284305691701458186714402749883683196407963258722821965293041121188526924607105932298029243460394247113779648150724044995163277697861425885670852912911017865745592972789755768282389485143390139855586278373460521283433014459810173775729833295408313501559182686849298998196404160068175495698628623676251166388167406606933578479840034490689978275735152076179536705489291928739475581854620894981876177545688965913204151576919771309221838901390422653115504240015510660499317637147037463429000565362529544074763159587285792201112591644499595372709439242259195296762262580898076147154598540370220779694877651887843734918629578632420242212481913720295678280000342353602765751116111669927697690247736273803109640288116668991351318298358331268038723074016442084695582192811715111157740024491904239323775727791323518781429322596503404220004643297912794279668172905863925002211707796017706624511315102449195874267659142469332774453731305764268884613553303162276357173422840718564889779946211878105990366161558088224936879012632573342817968559610349410211741056763257313220643705884048216974075955009035517357852308881010578604356658170432956716531998699821900185654808138827190022244821859756557055485046328691913907358839611785303920526733273594067743087642165480402861033115639524912381056783042943097709653853265191814659875888268506106129750487901145998927120093162951082309802512838501688047423754960472458567861564990596359523749687443028117341154105512393954735382240961327850951648810382151150702595171647348454752148751938163799077724628219685565330400144271646612450693781122766440651794912824009337071014407847022295936559034793033024965403319125217268016143247396886417415961582928698155280734743921272194243159882385452028764341490276063921386070457302308292484070350230825723663199966570093195473310102983586491854477073437164600322669574583095168038741354746829519173486582753364250444995984521426103650451985054890347581620947662159268462293115452078146377203164594516935189890655099815591795890945732666644066393910324430902121637072528232170735710708389505570046416261407400485643788485576031232018167420064478368826203525236029221049651556453058737331614553224130345279529161287197463323519884747990135281458805417458392583822143585531505671223148191684345626094201202118451993278515691002190745091486427083101197801312618838150675463554754866406651526485262287800165984007038948302506538026201793768815455249671095104809344549554446538629026782219239930495860105188448717866823965810384958185696662950554454588187837977822356288857591628568445062687441929889478520372669265379531940878568967247257344478193984966200371191294437856614512933920038410945370344713792959931253117305800358398115149666884444717807605556867160073687535401170058503710867453821067737264848029412888939841403576934523758555582193402935386810499847626130069454150228746780990267548786644633307580602698475601013438541477896612578705760091162053871525055242888871356816269619704366782772416682404101292913817901374365322270405254371218901953414295177816916979460850531642798776487598769782279364338716470725507567276291633320197470430153547240788035901455204117015938102638901597522588899202262149141966778801301864303091504006193502054509955435887375453988291412189040903468985202108158212792477092916171877872987300886894892266990707333797777128347658495284502460992817381556882184372525093190856509113894482878227518499203628105006521298791120284340122655266401807338714296180919425811334492172314694854944622693780514805499643250687484596253660072032328286171269650803024875906469125839230470970490434352948002920575073233220838037965092603355053146677163816309331141730565803354962210097169948729813945436048024470225002625609909656666954171892807369780783401502949080011002647391146804950317446397716826073852243843995779102313887906364347940118494314426306366842458121335832597501828247678176602569200152174418014610221030848220087928491849778710247894036289684874278188822730710626248691835194495101004089463198297597111179480297437184393632508617910821159562925782401491818515251266127743291292111590251739058954622286386638443101874470315554031262363396578491733172511196740388081566328828948744595091475356312748435166462391924687339119179923694187714525283382540512845512550780691931198121995674797796892912962007536834634664436612156149347064508206452327088710765616259212856607125216308989406389532759028676749024423253360094995328605677504388912474025465558782340289808170722225046570985841018369744292259241988027988082872346600981925987306111478143572111758060834794195091492392488188817428001495561327887534760104568548894071508752272901653435837644188860218555854758435218452105304981518946402550436629725674912632775969092461895408214790721336984665668275922491006746404209245901454304065580414234887879320668484920071471518132335436064066478524568939814783653090315824814252907690259492380341020290174654653605053652536888363567118439745132028535028027685494274730473224955974798792471573166060515509911035632295327385077610415817348535862017838304590769788200248033517583419576692834112691238323302818876093063039984967121723308474038643594532553822679635610562748491775645266784285180618289546280429028101462293482633314267197591100965936128354515335115955758273388800977437409593444683792654871677250111752649268173090673079123027637302810121250203609616980579961974553107225886200855830545769442184521263866824630926470462248185457102680978651527847475521072475029219688414233238939094921582225612584159800621217848716200181463303737392860323688891009244831293408923970575127528385256634922477497116605466754229920770877508610907421102818391335437695619118309213145376740027436982206222288670455545362930454227805776136685044819987616350460549700520483116147238516103928721431331240525424395244856533040522715810981762558475687831596612093020567185153388123063917611313776581152159965385476932586822558152509893579331611060928869023302606187006439076589293140215730622118970181604206220792391088731431785320049023429100448799078013612092898311000409427783204158133481992119015339238067661722129728574820487408678399514447432151255424096616344940754553479096629663377033806651058826418402702455114134388982756323904595033088349640813571686317202457687639554026461113477738847997208223132822223273614188687642235806301872602025852754286764442626143169099097886481266694525397490936590024094358622417963455290489163525735965167235187578789888262281087014315693286276859585803901706810461746291509593560102389610446155662783274495516049655886743262168065049976891213201003170613891156544389675603723931626036947436195620680459434571317161998754828843119260782467813081869614245489301897036969725466970816151259779767156243811285842813796960674398789639400914929130294298298603498249993665788596889924608148596311324679897733691514850905553283617816118574640140464633323037012896803166908907686588873917160333851379815670637260745380038460031117012432420247971685360821602137295268707199965212658928437946003376755613465187730837672455199657082800517063403737587029058237549308342682935891728774992212754573354740336173844913520803363598257840695973918482820561365281792085258308189832296587003138723548757104489441710034477219323184325512094157219586238477030897124634379300088209353019243415177099070323873294089007709762087329118343613145478212580264219080207275420165031740190670444933907378150645215233177955509694584493924853351734799041365051118187545344353985076354417247182865122630982058879582913786399472943508450580014009987862326797420660331525813172360029679039171359150898725381044921766824228602553813506848346992051233036669615210459494244693248479623147252145997352885810795585127596153231326217092070561368336765277791147247515804261914055819592568200213580774122029816958357937659861657242262237591372344130311042565418246762290142682138645526472422979311608187554360539988542586571649831957332111670238689927780289563472640941032992763084883803530633637003582959816570373909368608793402792862377971979285745267351277658414562030914725671248117187805943241946801898904673646256106927126969759821013849949544624366831241541777658441481948824681414869134278686417372253512499704140849218623188605054132425061766609112904318269002649958613622614330916259568447914861771700263127379971444203675639453936250294908909683159731316253629094723572466677266744342526039667511103423932315572322140114855862177212729223644188124187615024437191502635323877717963897169865052322281466538047881511520157043390423002220753992452877220000161473545404871065243640111783625027192809169987671544804478134240754936079635527750799637161481642698419891746133009396254598850483615746808624682894264653627859434684831721401850224148607613458151876152706433490042853040527142227225937052126313335202970246877702292290130234464165152726732030282133603328332049064659204728883380704860585361569825452081588840712398849999899170823791611350529666479638304399831426072030257792256896401620446470459921838400953573785860536491038901825165516006236443079602528668690339978603400792199142348559135079337495179402084956384918540738949174807065206699852036381183806644726798538435598177374976137125627191442927410608324056908444997484736174547770582518510478318918958600279642942584197957370587759080733118838541071809715963215581955507251367420391131394989932708334391814389037872871168718762347469286895554767462489676553492166194679465306931609188439123429573522709377858410721676383182578231332662272106037139555263609320583332450140536482466765530172769227304334099787679035698813826435939308074921584634128424185746898571658917434131407536242504036277348323756981117567828390700738461488915388012895735817031185593208881484026934809457552429187363016739549327718570358945856157599323864084268375866022463067872074108335968086325027306098721749034759080713314360370925915701581127338069319288306336077972195757064916918840360122059414787325631138770555517492859114548894052480145354477509536025191357298254139751173124004265702203778839309568781023054871945862711777092817496065689513693799396239512613249920581265498627682214498915032947077413292139461846503047499129751186452165009236692982099902007251990764041050303088088500197871683877298529816293572967404953473460604013203585757049095797301117244549162340508558546729312881818583306650058958770334136485511443293172016758504554459343515550381006936316568432193057775043606361635404846095775196438284981088407128109878371335525667856219451425600722977203966126951813106097098033065247066915252693074443399415838435715393410792056440298787430151122919461090034098201771526430771162889108329946974081748360415511964746069149332043024466194091761821022009241653617043166939392690472592327677706220005861895540928610203871942635960444314590527480856656389040229814225518234973044459841188974856324540617343040047770264305186343531800136221043224394116749852592315566508739775681564205335444335245901193302251597926962500017838184120532932693591441455947253264445104873697723213862248898591594738213926637805156460755005408101371496196455802681711066810950027387690424647947417611860620005911506661694753513135940361528516018336870977923314384169877972194479743611151747288729985970355234974908457751463468128835104919009915094691155368032721894832609804610293560990466223105164291427606240769674190235535519477254863053828459027970615316690150882564181178721292020072830862174753878900833279825820880408119645026146051208947812071748844328997492535040281361216306079607052870696954721410878564159912332193391393697823687727726498153121014407747685467891647168005139357505846309193822838491513476222498673461608844774807617723198265696356775865155115939255208570181592918184012738574013452066699546443323188025933593740257299058046803138584592497098989478685754095951449710856061347789411787044277556793919348295887164793971537419068064914053813814403043997133290065722957838179645087001079992552431780441447820905593138352288849098958553532292699419563390234656884152856182100063911546188283119798164752508989121975018107139513419958418323725099725083060395001250955525741939137077433593286833567308165254051078749746657112900635479176640879118341218198151411795985588631975530585968559390520220312277802358216067181067531495251409736886910808059787407733504195538052697760775868997775698416720218084557178501311262801429256427640822965164110698104469049186736289506900589949463497172899716384970687923461058019350624778689005814339144347578658868134299489164404720162882554671273267999247214456752963107987915780313195607832834603386536677927263729863954239867005742638594714366188849558732427987005361048517111144184322016262655982740042326030755792656243154668587725227540788285765127435774262530968006768873215022344528923484019379117024321631568394062890190835215274486315284745551679038796594784850262635914858846439431414332358754167290650475635907459106603508411943483730788810733397795261766429376122688826630233582841755165049399377991333110882177952113234231723348103798387644269980452387388928747530163131263150031171138615718778697069251289480532906473158768863385610007761914846801683501204212204250770842004278444487367410781533975667471813800306984213113314644621620367930254183614929461221456356260696305116411684018200935432811114023597891881879676472712720518525769408934188044271488997727344969723801402171470176464950676558097108590439504404686838763839092370227508225256083096538245009186722724886764646732987805393945887551769985603756781833735074032701826516995059981094069065951312585706192443540825433277862327890061255271544744418965481906909840846537745961451241022921171628599138084944804409281398599089124310764814513789955110239359014416866021340861674703436734896548918454438826721348452476657008693033448323163869236221666974055168296537964264683358986884889918383799269314963237998991182673627658246845277542807492089687430167377395627541428764406624275015061841868683084075483459544475631587852285749476340591777124393322909119199712421729031126171939739931518928220967005023438376125261950115194233966632160409218204022013744489782926867368141376625011519408826816851397154157348431623911892246674694666661261504095517899283446580066583730096887728616832865892669316009528720319557706498662415530874801939535754026207177125326823791214344274350450319789487267483336605220580944345204157856572607417049652270806943495132423506925081644931364577868072166303760450926618918751856387137801703829583917368214531322714383373676856876098486582567548647460996705210035151085394634583687060228175242292288667078113555527036333377980871795790959729945423589056580946979586974693300324550194399969209654487070803809293391074083582974515511923220308165860588016874519882243889571107240998514204219537010578345223527081122558486151433650351052930453702307264220570713465792087018991286620197356172954099674651135865307008748925826206349957486574969038276450923971995224436510848703893654789955464043825391129113299020087109468505216896826653683588352881851869904540916954139749959799426411865188163903087576174787417676610688084725507352236248053322292598976071125334250387038256032101747055721263411375210425823937178025875830651693732367981824471871731410297425240199127216269784167896876944383768526532802476537056312627445972231920003490549447813444459351372269368135057370034933614841696053906094981543432454827587508080762905326487212921272148413995331964283990980795696955120122150838333930248469369785945319929908041091993250335484165158762050695070544848284798146416889387058007890489007492680831940643230659837874631369303758335471335316029620546284964618438579688625326333940609977878415306861619749307176924948980245224017342753302646803347533187779499685483570898331425379030973249436180723021592912629417265052299680370217232875028340213130025205333877406168721578483670001635118392229858170234351936033081611231887611235588787560874450554965913098612554780276735901005026529639071053727505831565619192967357766230378933994012390992121122235420152635545149095760275959024190310748553834371584857660962525767431509991768463039619650152070798500229868559407942079597818080146547525861000994773806208359571354317656433136922455069019476017692483372362866603515612062468577034003794387096164571230892281043845362190041320221671169150925455076656655598352608786314485166165355550878502324400449268747198741350835170034187369908243277624183215194683418074268428562766592826294109508579065079757377926312542305247924719409048635825129195447601221482869737423367641745473753715126276677973850090116047875636933824431499010843841490622162707223659717569468450324618898837264577180468798470066808506463800228707098198779087367926043070290413813912431505538739018853551775111712112121426036267862091475356013135709457550649893197668376159004116125733347557483532943135880724583956598143572263960879800214435371344952354965373537113801743755311410668951912033985117682513647006613789085283891976311583094994571857020763806304692565332565284369773572172121707784378953428711424804791676232855255226953582011461959119421889869076629970050682869897662380905790452474103965840270105650427803836908875221828927204006389259956442114497547295470011637944561607909052313098793514631475431486273162244149214230090948269024657919943166897641018300254335090609077050576661277239692922076519560646004059311819305806702600128596335069994296878063753406920269026862271962701758954052271197551530797285872231951903974494035849501449610681382008167712674780372667261443075290700148656998097632997250083793422154574901041350128202774216876256157884624702259067094979327921389000458505028083583193934722852351379893636260465507533660796366193952690652488126183065354667715935860222781890291826997527623024341206358990543233560436644253656707057097004961199355394151326035904550707561254386766727906504017424017866891420121478192275049906317824640243316007114594839969079005558061744813689248196926737313670794892597886443255943199413384398814715558523074284953566454173693483864613171406447573579823989143275648991402419723582539810277099871631452901539311026121514835696297984082125779456446712813917503882952739718500328206623354045396215298461945321944679543174364401498928106867462444429681260468340685278811947633471886863854435631704943551797072617217137970185126416291851672252678480418137827711190617967525668962133713155738317373475759117264908080182763895711584968310801541534893846127974252202971706192980139922954043659411460433693133994067961580458689421567939149951375817861389226862641481414318414804894576191518418450235775263654912939733060077517757902911320497075860698897521904755403788629303357078986338178939540509655920047630755423284806900862636710423338765004702605349192044346281211130634113250814462657816232715513803141676853476401786711808446131590834956096286686168577247831795525656720589912975715857280785588632853773485763168894311254515438075869975139187254817639656856841637388919610760274422073394706309688293229146700925019648053441860567804716244445102556106911768466809381641997866194576242102429959064063048511895610481422945622734377403792229931674257265714251122029519758298611579207584603301521018091096573323445833687090485635218368157339614506493534101842532863829185945173123209842529424115294836514257475072620325030813801185466513812329722226593453363893928036918631253925223323240642525490030346132341398005355214073949122452870850770548430896926273021706696092524154841585823678319681676527518052008265658057472641600820910834719602054747116310852719534244240862174649642601424689396155395286856072061267170838084518333435324835880961268318114475453298230408040884714840936104532579488168704267264706418612695780796512136384442131270628408725045665810073353344600456424284644857655419703838463941945462176766793636742232952984230717950235390850339699029765606009599031281727435122071570124217982861584118409568738518263875010822393918334513577547552978726387074903811867315397673836850476316647299840188965241834135574718468752621446494481359060700287217234724356327435664092501995859339773805986950246844878646204891468895923023970602516502472313561140094480322544016444695802334227817479816578986232920705265833783631919553358509279895118131695891328622045480326754195299297988095354869265923486942491135714282238962890279248736126990331624540623188015070922726979360590531166526281887539487601664485135391231053584450532372243448700606048541486321259278217582970632162296078562865884191725226632782796386573487506277756565547115755340427645178330111411218880700642463346445769363796979905812401867823773587974639268772248691828314411631500765395268922360187129063450773925013745779905299370518931198726002514284882990154714649870874916168383191490113221726028273307313588174314652744469485875959567271657864579423254633138673601385504402854075712136892625337487335128201679100710804216241786672774897305615235991190276231061963003254442998089015872436640587180900530797384189153034132691283351803055033542938183785533608957244493979290596442670408551324123907830620046249328077563938828327478262052288889943692523454435238758612013878702591812171147017969800281614556614945679194013244963133677349362850617993238998377001356506821997336866535445449515396181463808217946573443317495394984262561012771115871163534303293297347108435638723331289055790267511112093608765216749208125056514843154916078734159575963436637486182999234983170351060619157877306950522350255990429363688743494328493508781386679372630397341743336127293093494590812801390948715444029607123577141699137461793222898925058109980510634814178151940275531458670601811251773508966338903826721974833154051119876638277653158548800413765710369211781437304132700626646908233094206363570171215122320728778107805033340723923378394859971730479140519472044930508471404817117483589787179864576678513065726569897134367207141784420902136734025896567368923736369751207908514888518292061998176650794680135847465296796883128149017947132719303902504721984620857648199286394068653041108325664811911305140324545917173622898557100611170066059718754220244750736903067462895669174438938937330529414406612925394907121149019308801410534192054449441645285911711213483826538449748801156560132771170421077348155568460225484401511949698167261242403942421973055957148760218152906245030513480016788603830166286106857612225471709189670737152620129872865867939132194400101420643921813291115371357730158562909402590002550008870973123498530000455513130773524974431529153078959506001034240154850024921485603041817689410155442870088398061273761461531884422960965166335677711536986508696137287229566241328821145368372594976146280039397831027630021744962338947688208707926950025026168886807113920014341286282522641894156289229226652309476146972857723044182259327280651063182686024976196636534423176609111112825426079776455063292708307423675493775092737569419586749744657489031192982859269146165230355264770155133686228075715289682370946665025831739994113656894837017804909703694785507953044936797391494444198252346773786978776477847047766764667506784468540354869040236537163457135784975103279311417324344681547875413944391287475579712384170371391030615215499926874614974571796686285168361807274992240893204533501556100083134887514245917072646538478717762711735771040444708001735983593558601900646066000322794755755653467931989053048107732358480134197952494514969101232947447326451485768933375033235275617011448989924113720447019360778427414441154891445165073783022039865470893675510481064044559895468767510453690035763009333115966455737303219119577322279275061227817464791240597393864037853955765682107016080127927043476287822920331713612565256850115502411138826216067129768206125420457512269127380457381153194891088517570449560594662803199427470831078682759844100491281935059958133514466195386698595708733893602927600015913351082825537603011045755353284985923775589727430760871326194115597551076999375179629217896109197166827176383834783644177123327693318367412138456330084559047312393087799928583036315779475872384733124281446533215783352737300338299095398723771904878185050976751502943089096000558692675761903643690551991377670734728573826377142529231122379978289451173851931795454894225045809286969344614173748193427343355737184140175571861083376679186995739114479149568481275985754474892507655909063937197131844079708658241961788710810510359292545811074123616644691369763665849611486477934935379603502015905199449790708920789384757553467655663945615957634803852339048669069350353662003458685575161424658649470059295094208918166710718596097102530108341793889949973537701887332616042714613392781649243983204434707447894751394272737198485334567892895474449351775547173170296135531404354934316052369856155497353701164520721404791511135414725982462606673154692067603710273107879312009774021140179343146883584169150227102721804743125808377585174378653244553667584430415565301440828157110575801379679535142092989775787495573940035149027583410599038815539215752079449006996512461855564856749169542028415895717893187059688246508276975330964387963017440251494445903305985387828522540404730246184535790364260930332750771131535224180026241975359498982816072057107436184186796363329642407757331503460204338551126631153048730917969468608842180476289723467788127199171250034717037816251011663557820466351579161026471564480549500844665018886297999266811048517539767566447814402348956918248135496672083888375417374133301509903403645175212033040770614757092645065826234163879707249430909290444263592435585710978795946199795534282799678751453743684151317290896736385732493274164930064608333486001141438493523930932177837282620972141038544648243452906037081675699386784830076119560864176267246294020710257664429538331873913541677984393973148752323249492320531846303226108043382068445185155603617780807413501343175580685479681148466778545468085855950374976575891668345350469630473577015363332864136880309560550388143176679902633301987303655533669655270533827588416814788341281617208751174796337274805595680011643725347754078367898106622440374328132335538209764564680403214868348555647787001196618156773676782327263187566535728325737084118156383727497942423936896491477476501140073338018535168982699554979627921593031062437296599158153431474253928870739089303097207357906687054057402748807606142046574867291561865150967405168597980695495008052300841529095256587910126470725257816440501585382929760123963491709655311651410504031823325611199210521511639626071882736530467539152409774272642677751816942236911046951125892238931136253536519191815968792908250228849698053462012385591313087451221729240179689984549137125357125702353734597296551092416487315348244221394772890060755007954750710996363639045849149114596805216004287352707916936647815835031587539920057204134561991224531683763075525736407257642675787140494910396343030549905947462260688385743502338782336844118571004987655934476394943764179988227531857262149987613895964394867284070017617195753322170371467920132497287936536545180839613632973961723844313039566522048469442052589466842511207271126906903269039222302212124887859270218778790655931453812513099636545088131884857479294920255308524254945009477219587761085057983779248190527164679872608530549972431656087705057766530652571817606637544944377574839001633926909229463939557132778120265839774240756997718176448200097771454363340357781601347443203694363735848068144885984202112946019877783427763236903184773746308010208067145132961567940965292139775044439596644542299057421863168477100891504961606993627493893758300276987796141263676472055248050259604245581615896984475431532626686563238255285619486350929354946275298060716953944469620146174895502505361609049929910360737793060285223228436839487143317151722707257115487313850236255759888031121407163860969077469846943436201170380658769804996201705988875439138610355832177911173181002743312539681732866910329462489539751221579988033439775204229501468983852660715501760709510664472982188679404353499755388339231276784127058625896528676957489935917866254189379322933648265516715311743107617571969214554497519377325835553663193726334532676358143144792052190694256978338313731851668692629600031089659716484592649286635219226525500831213950188954310617115263067182568590277063554387052593945946664668824340975451635856484795734898177981482189085243843799033434238010621545684549908994676585448441920234687163673314212342490518833914020823802623439984974187894058351123344893583579141262898022750015547124284896887331452609733534397102971256841697594551046489685207827349355295932275454146781378948135642107965770152655767025840566560025956625980868986633849747265345798148369245588004972357604608158340606561148145383211019275665315302185294117159756704362693844423111189997527399170641863801366681260788324374967433515851642952890840483098761998825575599363391009888001876636732313947380425998851749386613885710910066506659227173882672253639542874752869266294480267364473929645512274299217985402602476916437285082862489022220711318795152830001427055254767607663252098567812422072025210139203496612479732083262235709662589619935187885020147833712850723514350324842339528175486349769015982361407078420960594449572743044381133637821470813477173690115810116964919308207470735133046598457906561175764256585515522345883187592615266819935976084052613411571038710061616897040663429996393030575158148074252445107603155640608104547155640886871945213500086715881068915595917719462817032230522210740948148593563271661082440884114213829666203307359635077943227990994661766446122134041471513730434107850228586182369021781014423119540945819746444563951293756059304632517406924908736928199802652502202311893111096775258536255876431153285876829105467783610009963544049031170222677771411914374370587649956555985347443052598690369947132060175396196978305755268580512499377657256127162219440590128905205224076579682687769933848476171192297103804602546894367268603965637747761708265367131672270750275278028382793281685153619301993474566764341302937337881128808208184079961111181835534056606540374393158584428563014042637357432452219022036098492741431013021314912305489082816631332605781152509312071280193877721913855627988520025460251659405056351223925339937276715304834676504209996916918306594280889871408303891837755065234283845415803747053313088015898020607416442799724421572045857324315769781885051013339589693498976975507486816711273480033390659357229034456457393820270396938278511117438744347402959370192582523265508107691379115432526976552392996891452425606197849609177281787009481338033969496121001180838382108163587639185120816975679749221762799668024124305210268318819093442713817123257999662348178300267526431484721789730456894308259945355165354893122998621115488263643472507609508406714699530003878569350118309586916620384709348077149156374078354388040226974708561575186898119772655311670655791771854040370495961065184577037843865300660783510577511616862556884840564547708785602109939423420774139815311391020771880638766696103521794127290806004194454215688524949720921155128225679130732521025304014708710120762923790956269079061751434094305945596157297729011101048799596667746180511233837653630017938416010808591709435785254939010293040171156830174283345950407967145454145637100506339936020434130563362273512379638609888307943860847865590205465184978795778813047813096458278361402092104854551843595360642866835985712843405627772730592791223803280954080380436739752412226124568124360411819111400903596478090372946725747450132350582074534324515815519502193453332988411074617188541897929928028693146393452066256269044564703433650473188983779562998402358218914143546562887675066457446797113710878816015104245255352751157353374397718479899055840777951120315437016743632554735776666824964301206264242174900468591721946302346421239199231655186297154868495005703993521191701206488874751847404790756187919270454600247684387717918091049947808200149837723894573067929676924645530680315153352707371479936997344659696414692064845056620291619432026838437642085110244074550976065971573530303218402363490094397864602994641465733772053426845949689819213440930576353553784415958911231672170963071610826300497940430045035538743737045861579637857159729168256042135853717230557126819729590521507320343694052794773493745798598936086529221338260009407668944089903549419172924207525268156732882181510263613579254720101200940687751969868518134217057273722369223117421245271271466490260050630724972912805130713379901168577051797483206589520977976979797726145597376778983885326690320416956795728661549269591253401858526957140245916450486635679325567955437151069043862752063983485263845435045871941628736081746568472505413593407558647205029550462536640373313541260877363188552456063855423155185735284053888795169269396516689652128715827027625234334244796318892675763010940638833686527414422705893764219335715892455019556094110317129030523722796900066586690019436151144666284140196500243206313155206162331951338385694321697329607540800562338771050723570917073145029150459448725060816302317229018278516425008038809645352952139143795294778677352468350981005154078489846001204578190543424431957442552114509831159813517072864662517767571116631291275250175651135821243561402290725996391194400816165882445108536822387268651989070217349554314532665532058873220461327122686017534126440926773429447272496044833827865168327269428908387098000487212305303509704299269477487218532374010245855537280457928689525854608325953804219506953717177965523166815908339855533542517254980924104543357232286562353088167249987435061143689089678357137593450669245561779722356982724636087926308173746135736310529773435439398655476406343685373259647037945787347818379931939230185229765323972756306827479138960472787812797213414218921309672991550036847186377470389710617304538249345584174296167244678480148515121471011514572193269530090414264649729969039316878736935024049004674799224343197091169884549840484061681416127929870593876635683030835993770517777215532030699428168812417316723493050319747088594607099755325559782044061754999607014874672584596466913991661096060826800614769414959423062229518860760326818760110475799296461474676747354437019359668726300002659385282238260775981904493622685540884230587221981235053170725943763155950676954130298299988756267077732392185641780506532207967958477396779758538643512634168126333933066606303386872990675559855088011673318330068196668615161950530719916186037906899498799293651918182098196751086366090324410060620889875690728481036502742378205906578659233183122156511394988506842676355560534790540422879596774630988254448635538515237615455139404365292198483013192062185762216393899008656810411033755320544352606887900793274965064587938326344414580878122310523805044511317835384327530707217489143825027502531244868895608605329439430519774988247874253159372825391920669527471682627123516429995461263740610560676435885219955730109872058163303673223993192473253897449944232022064951264129822396073802467774376132546372155112201935374833309295171871346752260031585236356198483541357506296491325025021369207126383449734640983700060866148169644322196291128745316620193734533806990795623862759280779784704907107920533997784940819119595180778188568359916728031712302903123601186727950119181128931644052630310979195908665601255214068820769255304443671999515717065372258557914930157467206609096153464046707810215330443546626109681275120475339920734970588812796416508830151878546754673033696407586383484810303228496924304976498031462873224018350203150139298714002426393201816591403633032397591070914638442678211469836680728098626418327367678553173988696873477840548228191938876827874151384441033961031184175251928338239494060345742441442387309950188512146222794382197058057989428433643372044845347538662757522722021486998701817523055297338809334725042807838608105445518733641254976229040095516207161890508987151569856402684938961767719751051061328952842266945402097183166531791610616193140819661593717139241049090686866334781319042050465344172618420315614092090066969070196252768831533685554989009295175221610752862369175738179686903783374659396490090678110511174219914806073410529917298136677973355344505922366259621669598456883455106153293571243246726663419460535121382095587326609931376329788570571127991927891033254263172527311181993558418387964433230381759115426679527682063386668255885931072751220134759355403154992955936592453477875542976778340706812984966007457949253521188134397175873491385204600102631880397931600670493931186070471735771238959894032395320103177092240906078992343079777832921607360687061935097624098350572752642175648381120404146385724981576607915934221276658269427386213958558372175519126426386633126825099203467238877511577830295577155974569672052778784113351619121217690545644785042110402908693106837789346308996708227719845154939280495894938061612327700711941886842942091422648288837387292872159096767275705859881416222934907568554265917497497555183788583884697641823815681916816999067991237346113305454094897105755004429971656586634012286643604493451081153514646524110819771073072560601188303617784929946064919267465966745588014170646162210829069266857398113750413392856725005887483845156107401762995029285942455894596739529874938526607967594003255816274314159842110512209205812684925601643913703446578253047263830838211199635734444846720659795820078869629204350655392700998884731204873558818580862491742593282191494689984961797539411407051080662151727094035450968151990494688417763026310466390764078655426296127525554661437764034912737291682408961256097693060217499605294621802047868125106745207587623156456740927975257132900276584935910501330572956535162809612245479366943386065988197162017102451438482203895933858031780543419893866188066919290611401654356451526443664858701566209194757036459584508946760131379999631163137311906722783852316756590899381452079519720337543355095493103383477905148223219674148992409705803158426456088385639814841260868982084000920092310336670090577120422178013900941564622834863412802146941023329250799457755612795182353413660572055278557613411595870260358055906875876468989527797568989297583837020585967453195698212755798231250170605201572192961128221878988445042654850605818116917975968194006143157911421313068072354182938221283177162589080781924616636326311783099453267024699109956499022199448836865053635227860952629388027882897712522334956466251328390844818199023857309164834667162444564208420074404885497217245079136038417264454637255338952612600961179532461898573330292192383254412811649935068509742703016760190548504432641264767597249185358452356211795107858517443478459590026048213504030921427611058813299590527821347455445431727107255107679667878689816527493849013740894745952958530580358662088298943013572561306238731021429001275245876529379347051125975015316888789378269211510349030069283948270461409720601414082081377607513326275796332198286596825351314156805866092923490976447831090645380949393341060467026327207893835062189703098128965232078982972834224288591019640050919791215088122720285193900626160171018855912511326759998066942031297476230660772444699512206322078099056757343894506164418338278618785361230229071869546944763438544555367465982012782900210946649051152508733189854033459277150655047825078985473999232388979430996234788176779460499702777384982433718654405753299108449059235163331409875393035143800157463848922232998591090897108553696760081474616665648967148219766441700681362987934490824539223402159514763932545980318063641503430478484908382989197049638618513498024583415111238177396544221750691230708948175217954966818739505906637146562144872754473803707688511241728667745807758307218128177055736363306140312430743129920030827842584115713417864635577628457580361988019855795139444228942377809596454360704047160143070147967599390974313512461083754211304364255077563140013797091254191213072892214548869217794351710771622543270531842721785371924761127354096169630420935357251956133868926710318676739684834845635558937419251564477691212311992220535703790693020735942612823969152723271655630144161405194337922129917333945092971484576743418497304355381671207981038683124599914556237963704525630474984232980430299128643858332551943136711936400492664066820556440051774916215835885768401931481074405150356080682205535471654398043235320357428680184629324910550357705220907804961487834306751257413084068102412329199183108426042544716570439284325751400784711578724573430941864011611527076784601941019212000748586878641859175375109116590956564012927686699423639012232760116140373845014210609633925083242795170967509625964373278123500195791368218575568967225359075520991076344719479158917800003893628147545112292843783990977390872072906265367796942994444608799177256443831463871439186132342556694129053207357814261369041923175223770102346025387809897930438950885680635003023056550021693434270211330950364101694495566181562214325147460243500897308248949042683876886009646959165839472296197318337301710078364515816417253586222927340000874846566159986287661249653174272067101650016809446398786730629290519585225279191455334952195411574981368330246798856448682618061883225450431171698637457939247270007321689991101105431240585717496122813383136019789702757473604149116437091632546311544565035559862802066317885437716140636283669202281810155795469923336337911259304429015722702375139843451689673429154805875356969022559483966418256945443765001532721354058335303839064039112247503118727231452222173765878370056606256161882240914978222674121493323506598410072018880793541400460619670720805844080114568928015951314274641024866435166237475989889229697403524168160684173346098094181592716123665928325475181575846057623770150021260980932757927757873848422679682473687328332720373863834826216278866382981436724219739423846758941892523211461984286442291529122285993563756504456836227144610494071963449799289455978019647927705886056718282668913834375249611691123216152136545803558304830374120998667342212235683530336763081839473374548041639907128241175963320378399028706699968768110941343932963062888723586313170521067295119757484355270365512499203452919846454662835021624534219027637663418344917769055853654364099574766431173453545986929027234821032392385540457640460995173060238228282162733148567663519012513133351204437814632840273637803855082662525244071211757096721933857223424073022761056072304266395838656093004514722074353069133024445271795281649810637305824545138914329283045719639542028568820007987367097593449943066207334305333826708911535997989441526515845028441642044178764096243716834353996293071599588495190779539181412340438169528279494245016699958062851429284836126644007470634072774380923413501839480673401934623116087423138534431159036708311853447450499428554885186943188920315902350186929866422990386818650436309654022156863973171903049764858241932396728018764614218488931445495383168962187512202517073930100355676823767094496737233554673240375448884957632993762174992727090766806350043017613765229031543687805656095648993820617636069860840757601225396648890323040273853778385966611105330569472967964544655491999432988406973917179175604827362224492901933514041292229724751300176103107965323824398315086952390744307628298566965127462989560861257363588578161071591447535711138011438542063370188981045259606126300823491189232908800602866114110756874361995046695863864283159810405660542688888653788530902533265388330395406007400755900047106883158242392735398571037555534538424542272359660281866193153000701164523297446554274560664850873664820038647146298364227463038785495609898004467696197796034436789965654427017549546146538961497108219051173310377658150894392454070436491769275562987248043137217809882896956739035166950713378687757909206753889371296795944793084104092724046189862434384028525224700751150621370538550977622941466503374209827566797552715899530172366473762388958716678716550903683484949977299869723048054837666762195347006444471626823488597507992324506651828473012693049336308944651914861172869770792221230490150138384745584371947873025001731927311046442051287703947420956279912762499974896369815967081611620375137851595229760620222201250285283025839725538895739606625006415416103795776982437129675357537933891744435010436909620098900787276312071076531515202542484087403383023918411107977264335349592318272176887067023948935166567829442251723313629788427465094577222648085541381400660230939887229901238792209290620765481403393773452815073304699570505598855702017965640149641010345175575161395491421635972316222824002467617756232938235378421913884010873942039201935643323793881216533510076629965769880885935040433495266877961777359982842017164409637435108166940729674125474674429663904708713413307549561759691252534301591896818311194132677005583455239011019041006507600591919236169114797028542875669961565390854947938516910411733651266569041129793069065724171177085216699171294964409045421710980305466718889513406460098619951142271150507677755585306807823796315439439101153667327623466344442326813872668016923310696889555302085829851534338534793561211318058234795109151398484150949764273650159907505727182443510420425869323802989590241900361119449545366481034268295304013154947047868219571435073076557234834351911605357411411217527703937512954344078734879394414023154376266880282610756868919030274673067718968300320601982579820049674948374227521973128681868391930639068880664450492971332436006751896859108574317038840846857261142616677376172522141109779892737160399655713072196639606306387964308382462347564372854292365734058654754747751100236703924512349707035599243450074543221299498713966036753224358787624838194358157925619982374774207394322090612150749567954004323440036692094728537132110482516182837197847178574460160109377699887849957476328878010836192448073020991610769960586136368681665665077296913608852840821906707674985390958474954104578086242455194216744996490753966970072394810983868777688508727207208702936239192919022748392721306546885494378699063831867168370100449573928458103405980307806463198157889443091961758901603052321010621504349450314644552260424535674874867861447740137189683096536137019940893137394264700796964556054233011648391048384420321895392169151820048417992778081710500995863509583049454508844956613693929314435268685737354125507638803071056158948641939672811040984959381888509536351327052422830260904238597866989249046789542104786851998585694288074788112098812203504789262522755117044801258968348985639974351238664196658637595839924593866767708828797302958173385978273187029253911137581544632472198313013809636491592303153680528149089663726814935860854058956084694262427043958857708146472855643776111274622820018390692307138096206948046511700356508913806703198428514224736629588991483577871221916889172187507814291439039143211122135713950562898401493016570737706648959551214033827427764212576455753433160766872655180256354362628392858883243483887839881409930999267219748819610090308371747315812168132021390003116967509035119683417751770093599082097994310126192260148312522962032170455679820875993316898537793419946253630139816159743625359936456432981165976222383831725431943627741566054922929876373046704048992563970378302793034100012137824589520024211726012274195433418531734103474112581961860219425366754659764191660286597421582909862981158059775931825473797396584521111797021411253195153142375602944027667558271999911816980569740828288140785084006020303466009800087075794878194369011913513642929154311586941975635334493332337234060923709266665847696359134624428648797794073909003479883558657574077409396437887648513323531285919152090677222699218836541249025641872629876094933345796632469184602713538390211347186159783151495456235578377581880421709876992250561733416753673262458548120030206110955307507781344410753583358555822244217891406277443559834761727255262217541487997496794256360810780566045641240787412143019017080901740975399552675145549796540036304535363308433706072443704054689614389573880444973600200110540021764710331183881540158241354659325190955687211039702896261380533859171937962281186042585338306036738413876066895133054305323952150410900451315381088763608723755726331028284257633605812829200520758255111141599209133118402335472041229685774222251855334399908333413718519722079565900790692444144329721247988397659674131299021782214007766705693900596127383329358042554145872623165702077075415282996424188904845945291367360007842978439757615071947459022340200366297836797391867726040922028239011436333525027820358732068929058120449271479396671313887347985852389916862437901838670074630035678162552063915458220667929395418584288245895091413273200286197777903066929284348793443935127199927725916102994754266350867001674241436708105986147113215901533740708696030919961717530704023128338109286584526336083046861661958844277962464488131502180274803743996914334168737761114474717501869111536632217178383516807586661718025053811088739398673381257945728996353872287865769203394077327308534195693141241565147772602187621477180455898065389780744282565352966703993749045790224748743579193564363920322704948792694281070857104065399027902682682913250003251138041716851370898928121149899209214188212205554179649846006770021502532721022722113302183542036731421920319025017271660934381651801036907859237318893547733026965278074580892663757615207697768263774124408208783878541909316339204150061266199663932027071419316390723328118721620025083764367563595142242516532801918991535941243309711220559800020333581221142171315778066306719070535124344040914552378366658162382965840506686137091787198575147004392718811786232515463454275868232837809107180330257353395136448677087526793718246827220367783344938449496939752737847373546366486802746869682623825235877028048625631116760814274967947493857889628613469046154250295853283372028409795152869839590468321040624032762721802675789385034767775241056832384941908182863770837269913834390062537463650852527553927498712766035677412714336197062542166868104247242853611301168536081858337846923691174927175220504480690257604383951381536369986675978239107971769300832301190216345582697592625372721692306125324559066650101749605955669627497745883742252293489596157181229574310379873711810963729129053384342031431961542484268923404711934307708268896696161459183608246188502188021844380800050681914088463745545192860916877040764077943378581177637201808475052482322783557937546511391670420001636922720653973713577273658046662718221655799198767157773963795961617393384654812839609830482758400900441860215387581064014107901589751172059885370609559863243985258118921468757453370024707996355521828449676820053701764929326347877071121871536618914360251531846797579075646499903038774906834595317134433001098039291581669046640831347530304775347335461302443441202520276324748770081684781931032650118103113846985005979492992170959368439461301477994341154251575667602036221656275109110373048845172929983589444489089549583331609547999837955853000299396586464146213965424066210977363648735006685950627080915564143686994286340654961331729887315158600262885703398779495596417946237324654758942998434574720538413559093446037209870948493604168045738629746010704074373397402021043457392955090252996851655295462239252991871312027198952033395177027717033326167266895388418313945841034669726234727355928844915691185405834226546235558387328715181363004098693619943313489082954699185316978316045072047948820512172352430137777035577343583299175391152105937922020998479246918481244908026531485635091495130617817056896838510878652998510746892702948295049783611876174535471472389019272640809658982883786859423749161538265721303343746362056560509781582510013429818738919657304449382103061222276929411184080909328905753336144121493627268608319549314973751293504609462361196294042327499459672844473898911715400689095995223452954508688792579455626670318926778594921391271997892104250900123210551018759862839981014801013486390692367169696342985262682931802214664384834418805794370287119182483353303118592083252757177732834116028480524119818022115301900430604016363756241577628061326185315542619849446324160707627715819285635252570896516444260362438589350806498581769934981291030724710153140582994303087271398422365741367298843518835991663449789815884206168972508254713742434323641907771628041832377857231558284013731396075976859443516007260339617567081159770062758655651917114060444422556422884546055925436191558690561585370831675493970668063611786367203010234498408092580453489081515891173603846473289578184154588174555992600447667143635613467065249860028898300940303237163584974330645191906092614051473359489803036392460495573498338896078528124193019179140215391124285684764402081490040461773375000340010895851953165386975061823085204770712847461129626347543872171036408087360183535552062614544849072635921856585351604958608600106933705411919368356106296605596402847611271088051420278286823401680315581613342622101689627716613581441788857374408607066980324184237970039802133975629094071711908209229273201704040725482091223665837498651998103650084273952737085194570764713561260966934018636018345884949955838436519962557884267105756901290558038582444042763005875385745757775639413189189273687479867816643238995890527827779847319105171217023141859293911419585885162374140273663562051309074585512422609781617484641415932314284593749209788328510942326827531422520040168376561796486531751217677552280949632667807507232322744901310555400864441279146105737773332519050149597082530343148213585247255249021306468645712552292964793979244352093607452396862144632011288110579617316752443419753839586261224069972364240350220711683067908569736505385969657579174086956860391716365374390451013151139941664290057937074769564690630554587609182737065064844976962196895173891822653534257905397015198183824390172559327088322731267900265965051800660118943054653638814723915892826023969106360345633091964896050356809140111492270038863856453020814788136299426355005561193155363252232545938081137978015004691683539449458140349352516934175936237006235980900318286040113404903539493909363470926099914161911492840452699264718462672967364668793961734390009134188291188094284614080384188841007872573790413904278580964794381975616564518080124618766493370553724983526677233034540256374595336574556479127897214382219965023080253519246467319816177763013121318086824427651012499855112452902245308063040061671956610576907786042979339092218583294695408890000339677035872736412008759079925254187732781495939514569626765474535818838633193742723825910402145304746215086018333204566921563260436001508739458516226710215476734662882174479865496836866017454676643360432731923819651809176151387392689961200069030373290312272477607977022224283686817660677608084317627706583766694437912382151516703892879988063195861884096747945150152649052125200860877880089928772010138122573706472413190257845985750908035630454102084993547668839145731396412217971446974635187535142979835205297356860106276930495193875076604136122417776874267933190792491945431167186639983328114163414744706430853403547645207149782639524733633772570868048698987812086003450330313973076984926596414281798928321525333809753801447596497945229547838841630178033440904425061949356915301096450024932717547197962698965842688732883377776982416117224481112638077347218433354797360167163430158985093831486617376414205783616025142840879864737521064998733449177159578613364278532952934496725485390232620810447169490218073880810306742617218817803718884463457674859214156081515295913182031831118549333636544322667230884087959671601135088507326661347906254816564723107577747234600327732726294979459843040911004783425699729240249913302306403626373823721399359600209564938857156036698597227181987843727951287301898521143423733924446693535469508106521452992509862319053613185085111779929672444062740379077417373910417476396047187473816331264734781742958008707457458725376179270414275774384527406019427437601202372986514684252238883865608256641923781603610513698872060297523566872630056322047783585375439997930631260345154015920996849687127064844645326734130074604396732163590600824689535907024597463531274315334126286350718331475356743419195794478857718972972191616934547171649534998024080734562595039150379608364643929366193726951563896705475431539738705184675232097237550457707701019501763084394560382870103856456109156285695815023148848080350386417972309675985179586457066482434801916084050397150589316012561170313587244514769045820924504356680960082018364621061905493131169227605530019220424135651030459296958324362208796081354561643020845909174370940932868029796306307640259849329770163770704787436044288793895887988049189170313512932853373747176290212360924160646771994111623528278158312538470165206532448319992569588950417385416123445028317556842066233764714420205183062887833905021791141388401992400398486516159753853064839932746706163501856341584009566645043322928124611407700576752496044576124774764120819102524461894535178441301238481371421817623346872385655543616932704082859387566437426072069228201573668495007430146217804569164390878851013012158899254779826330356691224208848147654491048422131887838903935789234606229634529084616575012569307594715577876220292917682613056964007740483652286802430599835437770400088952629069063313492079870778638051141912033544816995337224316293369727568569803789099444478727780403166413378051252089587746602659712660839572120912613595188874277539735257825353362491059218439502596592817189323541139970070526465544536545879524916742785411483570471792029419946342913527426519507388117468783600798176405194372910538241725529992264137508954630148038596675731942811587287836872794480347266234521738135209692743587444282717562919128523302068088648160547493754245411093261536754181325721727935542881678604361624291397783896425682560709373387975784600543257167522898008846927454392613154135096465496717179100329440296394126347730665783619322118962371335965389955629156064928480398008938181426230023152028317065723248153096023051732397734209260084464594423335091076499091610645182104918573509675070270064364288266530140080983853509274291948883564740361683563784934289155490214274440734329343254116025180676878786855841905965814640716044692787773093130120400991666628278268142480820654094148257720922210333209728619634592064100469865871670741109219265343435410410958850568227913607126061747140254950316740834971696637218640523603678413911025842910622687772024133821565208830733357321336702275892770155341044647427500292291026010864615774624965806012407917810626921573685971168209512677814385123249858208412265574276205577577791735886993905858630027518608927907452639341297032723239033779174851646852893177622872772157922643641441592801300040637334395167727670972247786592490637118627790878697824672201267050077505868129306069228808041381265045739562311436651504145455131724516541555739910577535623924880130641706904758980964890788941578026574365707558505954576750957640488808049935610425902982878109165890391320651423627666064038769343851067687507409859132259204470570585084360696289502405191944431229864623491129837490186036161260253872304592425201710388673220003296117001934211514736629768919799050798303504180577062696069304932737161663358946756615726626382771712485998446254422212458091410665320722296278013749615336792012811503919174605769029052906849013994352422099887370281671008930148428911395235239519571356524246283034605175043361899452504153574632827113409647745759919694102312304469108709084945334096611189362566566190120567627728598172835334521258415968500203522109989431781293902542864299058292170343707003701509111197512262164825505794953605690770486463404416384805768496571197552158374156004273986154592993513451426998224486880377864607768717963020719626745292216752612806054117679816599785833964353452900767274971893993961436237022051653709381497550550993224245909233502419027402088586794504325518325648925629567296947402088139726824771546044221304738378919030166203460152856109518052447204598031885009365262616447209361714275592073553701467944538094670675287054127395727096598598936551411534825048494292360991181507611743811821843769608066716522351221337533164709067023634212082315686396346596451929447719915060843868887008226223484202454763457319534083888367462687271764529362765657378474764768575197007607506148933830240509695111881521924567464214533853932657054313326000835107352230967721814306043821828498842752666744603383803715683267002739380378609516904702754246798480155976620696025112307965421063053773970749673819967532012435508320649740482622248958042359321034889124885877816019450942001406115197878735741918692878654946167370811215483299517931518357446002496422673446552618898130154014266591179865734080981592753321906005527298429014955329524613449814454937855256903869188919895480444010500869318624629120337785081702430055983362552887251324730299790967136470820370389909352370222013617147878845105508021357833321644836853723152462662362028290419112510583202512619363026331302373007679199582658817270696410827632186781599977417697852489176511953885539774588608905819002535965512844816915975125411740193951518584659186921069353628634015540585568232160677726045216796217612963629133494791331253869467155110021102172929000785125733149223352488370657607821248653582180383296806554782478878636316975966968504123358177515260977474754222707687534172255289970650263213024703660074233084363360912821235033238756290540598038272508582029986141478657983396856691665749823367713164445737675428675138248722275077963616019436739272718506506033846828419789830843162282014200951968859066381867507735263748901031289334951886834471996957106356177174831541553102212538065813182170402643451508022792250245418570321507742062856656729351262129331162945559213257608834663250258566935161894652097337773609656715497280806727744764568028312322057966779336320074479131131317879782482320627718437598946677987165433805780167394181189128778234800041107361090429798015722088035391204300712437562076956174554755840601959001763411688577393456591923011461390177854568447495229657044590149156640615310512714450929542324534231444156938878464811645561869313888189525999688360906366061906757365110018666092023854302606181321662218088894856994189441408802023586022566827110204273560084873132613509534212246867630419103230428791863828753408264304165316614770291768289130893320602268031081541247959285368443733961478215299883714573180071912220861854780972461103142927011381073936480069127681285740963426029439670132624217742730754237400908446741147788503639327325456276165066287655877568378433751853155179739221655042092841334200533985660068960855066383505031228328855415341368193487304697534594946265893695752099200874236635474867212360127854225634185483080756062324556399923436233160976998529939984982021251329803654727372554657184589530287586685868681173256609337949026326102233061700171128921551832851092881146061951598201206007933541144344582321961555031876567023605107107326750051912468247469302522236414584645041437658447241240880791157238517759920863309741535728235670074509182012331892733419968306923523346077109179573793352188364417992093135165019879058983779307752144221276060545163183868793668205495679375858633834659681751578874430574914268717806763380883563314018104437803377337936995018962635056467507647878150024636330367285016645790023170551432739684568907232133519438020091789599849888284082277006372230308548569004290621375322071295379319448499437862852754624241710491934430701635609568962027231492615808281508143733052402232606842847611802713504667532136165207546261199119986289911435260694322673838765330680633052401373655723322070489790641341680234490881698659160678933479244606934557539703440920777889386893256036745425437740298590121638883209579010108460287536720209054459688824460353994647985928877266926077177315578609500638805752391077248486786708418422405160251846272162873183439863604909994334452874366276821077106070941515001157688440022716229887051314890654048006021848087047049529852637343227194152166934654105324785286673644089987001103793607867107594182893243084965887528408571394199683349691252146806054720360856732430801992351755994233447942674953244063655327507545341991663009687061507958911466420098772612791837726727198318215521634093257638209813990189957858185703072742831342178284403842958036524628806126867493735236469893698130658346468892356618580292600264951595925768405257494286587456194527599876652519369658050016669196683615644301975618983682364831776258883969430528435370954560164618588741510698761874866196620977128448293661675018209237151367034655175545524135241398650484340326326794381264927628549163023991351683219726787931046269211387396725563857400286195832197813980803409485111028426050803206673222263937727972226138590996032664137019065591774910396316125826007778970506300573425509402158733015951104440203130186890094391734676082429971226167941998271270724054314073385015729921190413547273484154094065369038426187774608859216854094671324079738036436665988336923083433956273039849199985206229951735727666297387201674764490047905853081962558582673515222300704930115074121477926978458268280001584306450081796360990739523887772779390694584220638269921156902250289163484151251395151572178428572488831728079627968475239171465187778778421891812281192762389573629028429898750755882700108825025566949395672816671440192803781312601545679391207124880462753042134264678957527442458405731042311941971681511650668202399759097540135143215323790318533174448587663621013599965816190420005970022913310670256286798776381913713466184438632237370056843251601370971719200169512196185813180050447817516125295449701244446574665784739821725396670722187051171959446482469027231027524939288595176268029161278854516808799685196954890509566111952286864382445066352739424934633525267523280580000245351420127062008154701245037334007532153983724345478415807072933426847902859812521130881833796357468343951442919443516568892453236246808812955251063713543195833611267811046743556950945644754824220224407577257980104550389301583320855641858076027011472822722802555723603865924013277391884132728952430161958764600939415088217054030458020796022881361715654572041748104268870429769327849137064822781371151932960399377866736530058960435054970525211842763665579982027683147179565879471886240230672689999010116959991693829734921451845584150164497677757761837698763977358128510406394485545627507973890184193176401876068690225355732131239035514686765716244554063228613136648511570539950874490310439187849698658514965790930848801042723275932788053891315932190952749788005486413275134621667259134681475591357159282785685876386503233020027933181402348737253498584330426816152939072312712034625925755927419061437293558981930294664601683086824634676457456331792587567169587972710056359348412068129169898613043683350171363913403407496038364740065083486609972076982727012283936591269270444230157872221422259894564396878005771847321822215402417853673032370041159688745948776167402471859444018404704230804210144638088954699431983613467623441630095833824462044417917630541542107763764707965108457290973305539899159235011499989567236110372199251744793105773788357065509186920704244388891675332082583403132787234067438039170075229137053979711759098561883022734176654940397089604041671972203984125029545952187503862704733017450211006819865691168665860575561078541130569189591513114537911583419743608179503256651619958742858094448788799942264460704682583996123945302149971640430842091290354905267827103229910572435877792440873212050412396517233246291549953055549800723140356195038322049386390282070070850437684835740301130290793304608460298034605913845287966853616662666143716821256779075357588838797613338495653883188430987099127354306693927039994026219712792445801850071366952533959995315055431015939861345393935730303659723529597819001654221634967600867423865658062199823805221822771682323443421327326695712649179641023949739124095212978368906295741697955133449116017867837230221262570704860940326454937742631423125675358312661412847083297799301609415799576781516703560325619742596681714634635290777505964786932856593244879817263705367352838955536933830094826341969257005336013056706473319439713074187945212729487288414065248901315734031270953006000743368489950291367371339884647100700046996189216560642874370469617589391042882959643164395677420048588048922720474294717137327539963548025370845734432852820497373643189611172340792545513205037142460105844580668748150472705872579012450216136038685547903800034745478353065829025537149369817201948793816731295218850785364248653611681505980097313063119356674805676888226100472688493143709704497135141405092560892145367859251076397400236236753483114584577050225357519836406400091013316772453030296087851636973090340818686334819996488948384381527082666164806327479636562170331079927815032541900138837370386264991160298195705372651852391758714732949489161898447759478458847920032051451648625231740376840776430565529903111933905825360825283194442507519152170299458841239685491587845768052750793861756430688148364137401761007236209069870199960356596138539948724419977502084805015323720858077396696507537010100698137551915057730354668428113073881432318362041726117089602994499678751450669768981933806476220091083477924448014015687962303758186726850725007480725347106435548634741528574210625707523751251477399111498107348516166089612605425811413554525468805601538181458648816738279683192701106728330013718031645014896768665264199372457739980175421266876804035964208708290640790080162364473797824992423039514427123794857009517201409305395532971030135177798725536725977561904578968827182859956796995243842298834329931553691444018321505593893623726737479799979915512433049416877889327558778139854535507080899255010290069962732519966065837059559060763113301151964231267765698903821114392908597082842807576683523993018715976076163795025800833873371571711098029077377285477718360264829711456353116088501464795884891991642678355237384301184312120351022361622570127370623630253054600243387419850491162262777724822189809746555167285679397640536993998356349060768072028969944994930506449635635959329691501947879888184345258103225887390757510560313986157598613185444388602086417192714285860481672374994077369048186411184380156007391452372017837242589956156248461143462227041826664731804502411682881478829497156191532147768800499263298018890574351623871679246465096760113344880567963143712139350060808804890135416879789398602527024212352074692741052751145983906787496246428229978068568523196519041415909175075898860255569367585951768937483740034661519316029241276316839341699990430396924669462637800261044395508930392106195509188783133173829831567098799752247900525502018825062604890517377695155392140678086045234230411328239154006133487351071780795577108825568222194708171318670414115281840633518885375907828584126123200206029186049136024601662125324025990154062982149058227373059997448939482532860229342766621090653265594030280588535762850248499718394949260684323319503855621709860647832671085962778810101919553363873910533015411196276901544663838097779412043078436109023448267603324784177982417942702578063005898058208671407822814919039442173567787828512482845239069380685182126282915735463481975326695787880327007882897556441685973637022730770356841816262845481357739012106826459806803748135670529601230009135573586322505482290832797246131627475477120143796337259453901957532512995739100764983055837941883766975753352279178961312918109996612642057300736067542427874527208108802940989691517375637701854642520258653591894651066824280689019080556681922133819669730692368003065403589330254026875271650407260852667764551838448245633318388282137277891825021075544699789087814933293414475997518725990293863412374371646675474347876245024698975204952474434461296044463483937071582839413652524071358072981467855308833558551815189738473613418645291198737781353879560541510904804899313639728708887208223932936974030930898124480485458765131434183038855403301731402161748582619864196577450003506000821709654311185374699081964172898386482257244683747516249843791462946139914911489974889995263113224178855373171560129229677176636301914022963161309581560985781913988542980579683188253368212717288685577543813760296060799681739365910520572270126511224521827955909112618552769154932545623502134688016275893230145645885428167045765044253466109632558585097324149724112315908031636634518417028536685756097799738020427608101320070054168122671059944388126748345442447434329508544834898968065207267709678570518057916085311624030122821470890569036439288164154625894238075977308821387942990162519684385807414666426891609928088554617018005187100848651528519825541709174718262290819600419965327490572365732091471997808938635118946980647962736341306921402403878266757515593291436090901780612593525532483808333846302848541087870963168484514225407248961396039143177393359897409289855099589906138484295021139888509857354383348039700914974975671000569341533270410622852441249493620878510097287309080048524419590186583157678357880245898247504611680744016254004856904296220496053735913234694009085216420228120492698749699150746709514968071042067349254650906853992294988975387218438662487417686747717920058902180675250255294785252238204037405421849052076646568119702428170909498618864866279823955783955941383387887266462312713255375754007971595307650011692249121731239863445440274705315674740670625077687162034038837733851690381200038735657395438585002009458420902310633654531585860778211117738373045868705114970713820722278941574860368192453837987275204119446447184790904274643924297552561020500532483353108074129256830484205209924491278627129261841527274777333485793882582880070002231960914357645365099771126828214585354397321552486862230765925771526333046527338327647005235995195946422531340990072752733399127151432516380193711803728059387640529437484869834810881546298778068118489308724279552212080941056751751954244507939634978748061098959783630920691719683899100195529774185447852691348721073560478398867723944501697007925562611810016858037863621635911059026253386298548946075238511148992290513999282649478896435054237266168175606492775652653178095445848431522950537791489170588445281810485852839006403664554316874245558631365252564065654614360934919720355886361556341846421733661353328959970065773324939768933563168465023781305880455098545748269837196124302665568165471660738758806322074543970757331855179538444775494975712116700402751888027715746283540442049954319732678358827219955911712574182974979705413874988082640487098432037295790197745088756855551043904676590596988868641332812080005288436986362170588701469821531338899715356723587419189161532824333988643279435500034190558511936013424786047669064142104900649639925738974067956891685556095655293454413131986007843437159130676265352768331869948590386504766282363758168471755079393870303184789154485699884643728697364187272380587406928059391888844627562509581205131734102156239711234576585534649978509663844374266986004826515749288881744980293557730335085764501440943382350015190643434406159937291309224160901778823069970390287719806289437081031082628532696402649681944775909175990583709297144939546197886568378994854143613813750544309696932560657304628283844014595992568970449027045091617494533619928656847931949684675685863097302498678013377766476810599000508908050780912573416721746923208386715465109669283824141203729719917990377105857152640624211563042183456138062658837631132463629741927761335462721430426399047396456686672693447839088395387046919823874830514114545472632001841005112578091345530295985648459580332414189793760840958384946426713133767555977918251460421749349802184643081806208532529861720861649518668443202509736098796473183249381086180460080883862572469219334346546737494542087209114778892999992811112157520982847000394986305171360353400119818498584765208474922625119691066125094598695998347286004541619095615417328350133263606671454395894876046538985905061541881817943668758562214636623036584965862640311913682978025992003773479816380342268316143768257080884396445916982598597557255959516747530443638370162897949097476215884590694277030785801319430723236390313623770429063194496861699614603336949512416474609319945086852701121371233148696635927855450877454316627764311608437473532215196739603254164491598291722696687524782006525235992050429751110966382611072456019045274614739622858111616906759498464907568512960195227835994423625746418111194686168787710538810217161550803079134498704364141879932408994618263977967945470402436586989200655216862670878612870639817475603274182379240229485240588178843737126423432258371611597268675891001006426757736955465421191252016897085514536557830394177372460481071024382535362748476880461567924129425075445503153441537620108338090311601865480149529790788316786082075365060709865627581217177752913978435205780277365433270773012865685246794371129472643748792195906046719141058340202429600266298277291593843201187319110793887263215571258579449836508090429697917579095723203214673224405371667592134063981252003296132091810252656161460554191102180036756769940571961223316174595473444047700970928421747015957693777870138554626452910757910115578991242257198115705204994278741519026966710250470173911551784410709704123543729619140526418469269163800262334502770819187849984465749042459806525409948046015166754934707774669052287761282383652325938674401675650759607658078784035894227707910359720723033509955142094104170967888154655713840475778560863361667806911530652898442968883724584469347916806079249258543668970392212509874280704305229065919015455697857759707097714343273606045863498711710687644009059351927829219181073446780226030899519032436721959764164975217505690774744604776562847147161351313223617110249499211453635729430830601736360478242790411564604154171716600829283001480278286141202411156724748153482163670744838405591018430636512590443339586998355390753541581893061596140820261314084332447238075902658387395695197776964018884210572968471622682963752707525544825031865032502642867375686385604103919787607178941075860997338760179269245307465491556234186779022867150019332048538056225920226751425823097341115868157646501948332715557448394961219348730420441712898604543046100184207681460170220763465253135996150392879167405795994587644555498931413921796120643459172330154198107506012105983540893229490930996131186719736763208820848517699023292988959836465818987679081356297544957219978347684100003656363556358997299492725864072272292997086146219934481524510050690561042919510492804001565548170962184144937288307164532538123757748645574091462988809900748888668814981392804906538519550231832199926081614003681769573304264166114268378461229158808797199803116294085849203488463512669206663183282783928174679510770556783070679202439194630819137399988918343380043756424258325485299683623968293328890898770550849753308411215338745885848052056744467604719463994929472553219924252190220916679096397216855148387195035983645914484994503093927999887130825366087113832523586624638025133181036830446193687475537568452002151393462902424949842771422684661260588583065545779887625303654360929343905429049866739034465256457688067568147684908979822602891071484509572556570253613178253813005079957613186786383660602936199345199861046016170869778687284116094911366677256576666962534465410899654699648239206276064501811237018787501697820767151478481272139714399968108509707411710476577173202997951409666449875816392991037566848879468631416653036022775771975676534690585005358254450729115540950077374190633788955043712643169111241907339120954054523167550459222008001295049955762579579543462001791278662189530754160937371984841030153750495911638910695849232788986963581497667129102310089473408041156253085863191651523577308372135078040174412841506311401666991486061878592764535327066463755309783360867901172708218574308010092593137732714024941956693524765269951656456067014727741778419479265672573712177322607070840944099322218330133544425849672039169512030166524046969513714255698526385525718791733053706147667238758327034129499333130379360270003590240784164212795011365809384841802449482284114674094167547523723157774666664442972414023293042371325463963980488646123161456668176458767552238606934974196460267549640875670196046440090306937541024310703262580580467630671688288957875622000948893292282688741552876170264714953258957487670594963844390036317988896601708445999657803115090938534215343722625385855425546448320607029565999166571755233235192072896168216781901672969255358984351473640154441716808494054724365852582849912778834241544055764390053966142962665704741753729762248748810003199798832754542654434806510281541978005403033770242388292042143901768015073104119580558441488066913583948475748747726342012300392511695713126143960081967921651629785452195648801475916413843721348767072740614598040351574686760074939758164970491472139592407640888262776741440303667579192787774929803565957108407347383110832130753148463253261976814147259231237282493825314742661772739806081865489522062197843235407333697367105923107134994211908042968659231522704815005290216786436631163978290012010245828902322595973397774172699315811624488618491507039713774551697486043024526032747241891782808767943336610920218202574224517074974495674341007347171183203961285921703189290085697677214389993019194530596026938089520642688603626728454875727574469533629230075175956600101412643254735856235513816405542761527152177523565360301618396167375999799055448207312633502688419755129233432600587722054506664861354057447342027933821580393091582801955838285342095585743253232040476999310833222738780816477576616470679809341841475442246789462178917403302654942444155592779854084781253411380307628729724406742342922089245529503862155062279847412256805235334051879203905451320895426445106994392934943073172127932445224578258654582172226451431471161786832611050021931615312505954112148455477982402369299930458007050201868342140206525437468445782797296068718492126880163636984476824019148403287719122422072091604953872465027804207706484277027937505612861171574236453009106486097372061041984417327049437844396430135130354806158629920744899898167183779607052601099701225113380979566693899889492162683250152033573779725711740023040707026514714289509286281149008694841423355681422682975140009624829901227958608094767708196712791591940962871367089916828233821020033414321967093054063091882485090121218593267701150068798421128461688788376919174005071731426233853756652816176901120516184291857425224030941970685012738582278730222667761054162034785670463160875203340896086568410790827641304063572994526090772950679857474720395460755989952439287030056510066854794503712855895669134797051972403586862625696921847489099878175378242244950257784451031502040086840010940457678350346855227096275844527467786320026202795002839613594778781242002016986930963845766624469843145542878096747485223246010551133420430951106153774121659887374954973039181037212462516926842244488957473588980096320151667174661898908739001099319514027258456306575628474232901630255466319882587529209385015408665521760466788514803400641441189052809091502990397999720459696053864211793739929668231416790832285385599671466966104914055611410751855671225164643891464433995119734860500272527682484335345301777269749940895023586762994071747788950372385825214734613165616973721438773077274412919922334620735315600252098821085908288725941505449314434571059908579046035952181940405664498442139516381923447892052736828117994789821727870752591860221910856001815530877538820095151470666919902687507572719600286796887582887676990545351613216518651440361567560948305259916549325017655895626023428853288159360942390317618507385278831318515764005772299765679924515707011771991663503632305504540600396299658035420771403691401325616722680743758657160322073781568240825398913682615381655078032634105516302691372642730752225127032903678008705525550333381169994068857407778946239042002610796799692614139343715203286435967841213748797484869103950902052560968549107473494573663940425100107070009414543853579097417577048237805382095217002884160700058973817509282912533911742308651921372834713538104555444765095587853120741699724881433869110765689925466498326462733847167192405804475925358223364540097606696572578499257986654418967210922569097620642342031895482084628229466868557690359075744870118537422771793730337023417293561755760238920646581554769088905837032560084008697707414012640954832888314320548261430420368417069435612225428191218145750998104333289418491023286034137297170633611247294269642480279610905587491430029899055662377904170744318999686936735328585562509090811385139079466681666599218119212346230430483602218757068733147093152267676149625900629717267465262225507077444875955438555848230640848222449284371845909076586167660379004533093745657373320107161508607326877527709204523738124164633752398198118833228437952802019930105153669552558301110540785206167956099964756952363509009203937244477948446261704181871683752016884103998741545988949962001108200800715484137772408552983919036368157785898478144366290901014803645284873374763225009573392332054940044464851073066013349806458994562971586409954642149793659681040482375173424314167155355519866422355480959237072662054957814964142051247174523327105121645625174040663083434161365864650910427264008576200027576283591490030596080072856691042604439512611348560655665845708128187767018879325277313602709936376603655490928789907234573098677113186372966912909786583870688699174339114331182829690607265109739360532046441655233353595692746156220751357950679029478518104359136957116686657641384333081895585368738363917584308158994899938063449168653045332770719854788387463687889695046600325129108360241220655117315009371158017465032798709415609992839018283346142424105758729086052527409916109386688811759878918758423070476771166422695004630687621539298430284376888847724705440188878918953567290514975893599339127170482574490638192888341055898100373594772226658154118813251888282101781868144382070492279864142211826587115538894786911948920861164849019311456379468163455459653164083003664585528881254300233071643620138133991392588375831584425275769208368093561107090411469007486534495232075509240920048310255393524998507073103019521632169876710870005925678911895694937453450115476568623564892638019084719113639547115611340094891523937015753150131818548788458473308580561005091535025869679352062544603015553753850556640483153383983344810325023233229737337701960915438902255580043396596130242336890634379774638237862533085478465411719512213744344768141572165348566146376782169253149599338470033552211138190380447110895085864042464857750849777390444526794954312616697085304519030977028345181484529054731397994897275599701947978626569433827732887738788857269722941198806036348034985619643996959690153614010636902810370101625755845346230624576419394530878171106398415118789290080359452890812835380395556608556844470625840028318514476074471101643660336280501895423877319321800562639010354259022739678939571343650564358241776547177219233841561690726037457734620219468999865895660174443981090698275755694384604508454843918120179812828754132396028412230544027652123371204526838585404815125948937088772632859988226710255886034522074115706329890383870968185186433983082788278607195216055370404339453824028937306342364917500574067597935591903781733731400420487901935868157019585112418844256551398777547771294275426711684435303976590824243270746234490942654298437353473929312296545368234293619710820115446956674925865694556515903039095497413289281109086625271140767974262219376201102287629983787879402556822303290595903592599019087211297323230533337064828338658161076265945232075630216935264185961948118809270445065608987529553438549989146594738167002645505143103038961843047991190090193953200498860443409355074943426467032389923150326304093254369425932708085291498779744847441270722773922610511191892134302361894767099042200006281613405382786744002946443730200043719404801876891306384989175667613933508054041790848241014290511870818658748044757056906550662149772786694021177587687221638657965587976306347436773702164804111172735661158928891928034630118789367201225500704866307260590749927885827223956287604373164133869243640439308682641749051650974001614068570009721111639893166227249396395887026767591577643170201013822096865876479523368601033667932327405533499628810572837401094174548723574701126952752824922955055037595000471995920424616205493468657692788415865564887327439075082531688626063563316475626889218719469609381197612005146418059698022802812252642124954499579961796452804508836395426123559342433938785514549072580611708842643360423678419910036077032650942725879212193271354477383858635625231745112412813729958450009623898321638323306986251044065129121258866883456398312448697202691936873842608633351090541852407183630230591212027741978606639198702208610311505411627032947918353864003961865423012984706268957037430126140991072812901248052006233623305644939523828721768089858645701933513869662044127174573598082571831057816386506792449965408483237486532531049076872702272551541376031254256930579471400825493803374321328271876032956006264764024852038797613735435954518797428770183991730490794255319310615312501700226009135217171005652474662808242005287114804860518811303139578252344742632557383012365418554393193317709991256567889152017392076692727304506192762713888004761376073169972570295608868224146071944128579183325356403638208027589020821406398059373603248434678554856754053443565316560674614166415432132443717351580073976119034069794459633560031467565171049392924842034663282742642056724488920202032150516385951591977964652117503491813670170093038666576162903844695621797787223280311046912466352028876011239814651047066647390578222352311044506976404346215476515617130210179712131226227955753951480211399953109233843157989570825812868537140104548195888781870092559854205260667666291648471469048954484303934595565491025356395781713562852033849878672008869241833770374909694118678921054743141982359284240032535697750730716572647266849164735840483886255722604528404305430824880822981062930453939435315516674416357343583674908654618117154434693134470329472631059509103706657256352884610363750342771244905634264012521559165535958750931581929641818458668858658702131664444903702081984808056336661446278783442949617855278435072234796291398231273699921822438305105915333420408985122632115383362910922406836326302351747738977855822700455499476875782277132955930380382912707790889167596959364181720043526202146887542046199025171609408725387163461131648389608735065348442665865165230042126804777251158718998837771175266557528008068677575587489029378453990130245807342266335313629546809860886668304478708724729699019614946406036457511976339363401975786509511875254074424262714959932473410516985424697513233415271599097735214639101048443153323823822218160844280691049297451887034528873190214511008497693738372319295534187256163249241684840646553916083736521481091650247565778496709480618007369019614683787235797165933835291590041458246967719682992383773392750408741395186140033739772679304063006753417299890522885894131797670054690451613184599574183344415570290758277612040831415118881597445072557473048584388575970824833961917505030228654612320098666152982113965694659897135055827342112034532306913713107598506564082560906371134681255453877836743039845445386436847402170071081931612743739402519497854506959732974499827645508872548894303719649882373415351185418542403852587998394862029377438651252642180973365800149156483615226205106951884777424768151521170548319466685460538718618495433188463167945017465163607528870214461463583752884863509055318134862768144701367341504380540023482830891755475959987528569524171765326016984166160980046794848724071475236868712382004545377033168808202572257326752892938527250374500800121431564023802425147833931615179260108571088200561064520496390984948044707520210740183299493079394406413228372580961005010745922563591422931392966658005965650114387469752193614386797745126774948559945281823422539620274281709174314673642030791592698352699628573420770498402945016844456524914008505040427534179853266961557529174723202121103314109857016718480449466772638748773780942538346611435250977028806720726115819939972406909172017750324498576802272622150102814856373207802561115629491237727946678159415395569227611220298941857271402425822815565662731601399621477459644349885223368907279182639228204991203071245493171606849803815348860326784405258893192675807148825126153942712033466152902708540202599267778894147863826518255161121595961034005245810378125951374952975212085881542167982300465089663721895489319365105966961517899629721850193957601779649288775052213655270275096271944048770794589315729452194384651452087338265324063772360442976406772885131587355325370393826237409394785138619377923214996803353196471252822994838606362753704980479440610241591706007068073467199857043943851493960226360731140736509777744613306460342095490474980342155041450378082122807805640611149246523107635097156896361741558003636200550948016110925490070635015087519247266554271485750419454377418154964461688519318954482085329961083536665019463150670336016086219402490328786953584974144815710642860991899555528531324839093523829939969426315739012788031967129034294569160811409645622821453327710035662276757468121707921268916857981250462023227095118946787248114847764520866361214234995972938642119034760651244876926782639302258707254940147904578601090676938735645536072031914244072229376310754258722096910990401844038880423307681341135804816454811572344859641782055594361514802822022317651856060781685341647791390727952514027649071813051453537743131298858889541327767901772229756663093015756355868089307889812512105416231692704144201428129616763178023152737712666892290594132058933691361073173565326485240164958611962811749667083184697130245377603049619402989620584377553743088038301924635332446306855727357014561719777066916056286829410487726405532733736360256850304821105387739607718741250856247300258555102399736924637395475131752793221963639328144430641758818443466947419261225538237366672566785109834243901632794860091102109098667322571538938943294635818584163573864219906770469405244763282759139056779153451468843127694875914832033190161728977696162460860961669281472401231658934599549994122144776666739911903458688032373653675580395702124089329966013708283191372060057392831495511124375510202899981279185367480526202504838988545612986485770294612647625675831886593540003559652747994739853995613052979401703186209262709770240214683423974536319960501565789261858779253735679221341447605936457361824779460646823917480666054770272635265017087266551573207527485161372141228693864489199537397552990112569174826704513134724385125509555224267821994981497611066491489500410844800393446440794515826074056033880854164824716224620830574220788961378922621134866652427857177334129641266500232712703145417621724003292203575005026326409733674288154047066188511326928806807167879462986220894670246180522745456321742663498011805790501044957952720935024558751090500280622343054284878618754114809101423953362757443098504388771333094934828648517409934960585898623320997172420760182808462239242715987205069302851890234611511153290964377651505809240498300487331415885568059679363456282707550329044583854667316582117697470938509155789861669945100483630359980894825600387129566781756037528183316531754915902615650655909459363197540720695233944881382507619221334984347123446531102376090610052138476499136813599592832507587647329545287618352660479106539867628320459376667247978807784392026512361253023333284353353379986519744863692466579648912554499577196661836040566501939944516312336046154081170129177930057026582708719709289447293992826970206706132782906893198257587311981388133713961888976712052621151589168153208049147743723319413557959930624542629411963064655276059042355956746778503653800909681930328241696798715112590290269688423115532453928602710624227906418240441877976589768501977968168271050780188664814085464323437571772747909705720892272503483858751554367788414533669603747613783706875532988208180706540050015551149751913688402036586656439996817742634818761864275965131284512745857319829546547951294828706907564887245946662282302298711333456398945246660300453320265428302619005016075920478695736097019805128684156847864778282365646509484172229922706834151470388827259444008106536895768744093421989759629768000489293462005918632492984161659193709600831199165230244618079119112305908473149518929113436870334113027246184529021144387557862900963878836072501684470712287830034486043355897310392524960666751295460115782163438649489537251240540647785708194923981321235600662403359911228243627344397248952083019583343550085387917935808462762543995819911023421975552766046729383478775599077574351496284617303579989372786668861600531710127864581568551578408016534921870278490227263167371035222375690834786202562533891280157111650088046114530197517609525934769526445180550613451769156292204843531167407964490449308688598951577613807259925268005655572321317752473944932205242970696112929506384546971552539910278183354499133859157361608748892260976537036330081863597754825950256270929032890294547566225196417730607757481191289579349263078401621195446311932009316250525638811887643536834342242948793695437779921470981863281836766419629356732699830166669372107720726816228535206005630842557957669944289754202700455933458648956120755249876193216543912601671500728577888139939846141735560949533277135727770710688697912586309920308798080612027614951919739249083347276736800208748857183455561204296398667861083886507165482105466405581540600404550544305208356977795747301033187874840029297330842474821365592948928328209304105437300295438121179973035663857062387129161256785628258646143513424676099629890665943464073642200148513101824514288403195808790300706387236788917956057859115756475783007218016580940677183443651101269625761871414171721843065697835495506210656383529184308345765928577604970254413264682470530156722964157046207203238604872044278482462888640479803364396353619213897286168444659644533032272613620433795983233908129522480411171700564563257801443152154980671707328079854250020728514451976904559004609408649371053886234461361880111557319686074461741024454068575473787925435496004276506071723859619763510564984723837973665642577645982201845186011259854079339936768387660873577851383085530321654707060185039356673990491720268861188569002617017757511812359393116625834568999878405484196413649142305476019953810888674142154653807146074992249403908979991741175617179090805950407691517681040088415860991934822500809667357974417579446529333492061736347720806221612020964249286080409663699842136020739766828181926879742583327256434044677964682019264519821125970628844140945146440176208697803317629873794767714929359438647616722766947097821271305766155782620217542042977964914964976345783038423136370616730077941347589405884129500308013996716627179393543688505846444544836981667984877434613656591847687583504956157404915075002761600098409663957777050549001230623595843042841662861824685778746362345171981757833434899170681996337499626566071159262880271863053602854650564951803343546015730543407256406210120500211279829023067345523727179704340572709964293001287650100395142642081368363578885090956403143224281504770652045985161087032530022799678569248389523683129250822762282951800201300934837973150436568614539542859815714906430898675915384711839841451750367470470164466195362751797137013607958752347601633202614542439439751656786549678829171793834446934571584466866404696976760607761399322585287531138144888398191000513024168640020198587349056092598828771473730432419772148453075563377598937178725961935995735880098196367144364931839761211616219273307929764941994269946836569575313832786829307230538257972749074082671982493489070752240159145472258072410757967415903625123611031581280925908586115105160750931170093513069399718964295323046694708459416829521864870453082616120988089599029861601462450742291687202098068937490810878949923469626532260643649769500362472328873426875622441868684911239365006420629849088520569270190972467899453280103342906531917168040839751611538303943635951158869728786502918676040864902786707369294834875340240236653216033068490696298438705011453127759632891533888465594185089927916619397214881888450886420240267789868020923046000619949699203688113622974021186194378486792173493473892456880406012178235613124251791475298069558121517175410223501830763654142877225141469715993593990213860991308262646285376750149806930005140015397758409123225823485242472376867931299321208980800224731896612917764121638226898933108845178959401111810539042193282030806835016652780609117595002367181605620945419845410367081238210894485787620646925550152306242307289698601771710915388980762781857947771186638702894011950542546394122563621650173578895509194407709702494342896642279783346513625328623063407874900379491623120762239122877245459819464215755103470507170518293916802903020279928943340246214665561701028394472974329617523339605563357379874260990209785463506302530628810430133211432621862226983678597868909909802124121668518685087776045600100807296398131935123047171810071612512541339648164193130400633887949664562836246573216168174108020176698593709129467873608881645723055495315526123592964970129180203639799381210662778795819038206553720311358287152644131336640200535614713058346352196527064070805889599333997297546770452772996661011739901470041350346270061134943644754896206474651101928887124358063942963929649462686594060884645874090070206121482220039800164731647440425672544780205988068236146743000700272104283476497596593503290931199844668205300274917951381105868445035052908710206936938574132154260938454440978181988310317478803867229042471420080229938752125726093533077270281796178574154948589677470482088427950933820483748043203304784733645969743840029814728919976582544216063177704573820457308953912038525436908100963344812389927076465674604192666683801821505318821687752653564284035342615152774654804087280894003777120755519459614194326714643408098035109489798022280872925550091601008640124015463750724998934301992475856063382354864939592116891926449850709400549119342193338082933074758950654936735789212668141155787754639167113207211092704539520202944039503915277863399296448483903793587598201636554439678410236255503613339142948704014711959994807900876464850987451471660059723101621958476252393461971265167689168122824983377052905526772365021033425741225405315832343283121699710792885973428166019254315200789005640636721043546571299688016352608230880222483384469531051719671360174674087853263711967745174299447704576608909924749955943796971078667874938861519000932378474950100954680536014804504004432210486649897044941821202694870761145900070469877043477962797289480233041468172997562198496235218610526576583991345237806058341781449087981049033490301797746028058712309349373747202623299825410565851563466150579314566221718032252507210665668959365772967921019734721945666012274773129219263584520784361998334831719002437281089061764262903736609347625056783089154677519838509645432944638546658752927839552714484392315023178945423258960407460877739859162993153067958354838967217456844446021100571719358865504388644569211596004828946696596893692160327286236969755602319720932018281964694410003297414656617250519198470264713713932581820086212857031188973004112676281363087889928671482303052242544127314629758028521362717189521018462921302989408659175764849566263006694074663879020980765734633666768457951276238111901085008420103858939745174625356083741635111284834709130494498647111196341363759038193242076407166842309005329258367002836582854323796757709299400938691528662826578486687069780134448725637351550768371544808414171141851717309372715492218516521430751668006512434914617701316097559270267378501449094095849871956342417047965127072838622542683111943840295008213050921475043481242552040968283365767615100021970831576365012382994776654101375588299415171895857952677184729838133632247538624355584501752599021189052239343112626465917893860513801739992834519729302996609946036372108665777635736396743769151181934813993928847429903812239770672699812540664729253311021316722062941974265624855299267089554901577564806374173195544192851847893655346663954071686297636425706292737845074449872987231094586759969306359123598877841174499103645617334629393735913115427263461638889707152490564266189269000574598321832589027776452698748380748688304122492059587429001491665101422905278247217965126747272958285507151276427712624822972964653877890847822790346221375943736017869162651929290639611047318719082739566079569133229582732770749148258968021996092718015671138330796692170575966395878141327220677160967588453737901946440220826099370114041703565266620844479179703659280850613841988363602942878165843150734224291429972637100966151565011625225779235571684913112065786362587191541569800776555797902255406020031773198150718398301849531705551764184885013662055814802834297453557801756465827494760311074261667879962079585816892695322143014143753352891204515105082457536636814440464957990076241826854435498460395530237933371729600941565375582076982498350721765341894333608169647638421685069110930897284602234846578894085380452758081918739226756353230194658910961985183979863062466655866270191955849988497443990294552059769700428139307239298388035588898065859196679012527350149870228636871844960826232417056373973205513927341531188635710249263479902939226990152588315926519581291009590377921950624054375262562302043111405054877784559970029225571908276139884601642245730907748374433173160810370511320586699758483665928931031889593642032600846576742478930714509546669619867584542654006675982345251192295824738482319579779017532764691469206338311243287285199031229329769590010902384369466820279101261469664227620746528474040436073860115205792012804201209506048472925858910038627754978885685846287858204935307279530236790214764005514457851957237742379187730732820388072844107460942223407017217048628882394576088094551241664107476528384659724606054118770624022735255753961575083304508306150786782764848114814987129285755023883592304256054866749938524196825672878240896684730121368550478506980788563141962293532514537098844637515937474583057566010425575728021437685421986599966557949264435633724073098257814917831421016376946892013145689318199356772197905691244960946966339384063185608882112641371729695915628491735849113086384189960638176083009565522086598257781695831803948674799680922178964303700575999670201903360612255626608613855439257177627370065494876810706512409562697023856125264122928697661472102411961926292533001692226392119237395182158699400669579215557568627643806039282487242463654426680399651837467095083662642209243082433667455113143082008158981148761665038207027385319691451770375660014859242933917591326849563012617548016395688369889675156385126874726937276428849378148171265546706211556118630952597706099149102964835516417181017829646437088104549291367759557257430107151825476151033767900857464794026663999571654790637630691195372548279440685711818736366527980766209393626143427870822864973341960694421835329682282143010393550184912835882388227453629820151187712835486299534275135108070450299946841859617710779373364005636701646310045257029343761968357849347401653234114987497352077770676726883471248018458279592995601264534191957329143282260429206094336848525787834675969149449476848244084740743981669714336255503032385801353942314788849318066231188783782901828177962691997235177752480206350200523774905281057191181889744604395796251666894734633567991566413020664987400502109176997886540474723916991785412422396444276333952133651110191613239973457004226117644895372795354688961811239166534574139801746481065055986525908200661642689618595277116576134534036219342472549113478577651067167699951313799477339189366985672390524730552438084478795870168496772647493546407887459018440885814020845578440004753581293170451849294408579587815208885885269249445917212244722448617816616210983734998850151392312813018295291965311263373352303514257203437399149030060266626773713895740654121866909321627197606384903336424413582654330452447391375553394004142250460329695162896233926421734344298613174295321080725875145632723918210846218338838674628962140453598948436458032863554043878634006655660978644073350261296102585042494725740010756105109718431710131446411954069889453585465705985551186404020693047815011994146774606821936017005378789429395497101153811366697233146054849824459082610339060026605551665670342827198817655612188608438890910115358717495930177868241373702074538102938894397801351669763093852607615236541067591074955527801309220721969458118217317395480162279966033346439809392927991927048629211569556925788307047552917555181335426800227113155269729813559836780906920809807319850959042317422075028017078937690560459300391273428433197437497903470379299454602375854835542505397927023007626467789412188080592608748811791614256612825311060853864408407049331663451917495800157355875609887670486977380629996197109893282124986506199054235985587969512724920278607241041211962621697455123684563970737227731348512311850969312683059798655831067568858073394498175193090986418926334624518237789660412129967518631585339972749286549075023232864617346913330453985699338126601375730267637668899072167216913093295669960537418653954682600391908002132144273354026821074785868150080000395381051608381160952211055183376506769493999340901820584303928224798654577022061820398258889025519928640459100924097506187876393323840565588122174960139131807475929276931404720274691900742422848531899620199579369125871701725990760302554235732059979576743395521390987169384764444730047594399864828533663990298809002881224133672751177760856533929552244999009982435295366353445029534552923960237970115143846983892159996336890068654120850103089567866500766068230861604926253792226191933988702846475695279989374840064216470362963343097602329275033673813082243354453250964932454724589964228937495601580578776376913337460628085280407011812871452772662368315401976682102195340324837073754281413718854892862999113195274897034185997777070969781196028591361329601937633703215791914358362791489154950430663471145988079676703132885665413016807574128417253098561615190385781024162283964834736724159593951909584908445896580843489464936037362834650615418786657306877894651433697130425039515886486281932754102572485119000108126383876022200115066201037791918695202788200299322949166332357360208035326659947356197679776694829602583727843383949746756254859306898454617596430992876765685020561897896711089456131207225411816169002506046295233127112116158216114796158547431238973824315539512502585617788957061668836749518859174118273947945246116024516356474465607206670527395974602728986396471897356746795440604161054408888935101585340984352377548180880857419972291372635669104359260476154400537560586882338369795447385372502738710740994956940593735155636378365478278800624855711708342848136650729077618458731851485054044629980415356132450951973694690046514876623004097883481560879067320768042173554598119489460053309956517593000121294956990246217314205641834816767284788407234571315446864620658072936798680467350743970925522633090398489483695925023323999418650364489199779440211648690244463063147677264916438218343810897084320050564987572367184102419244865874812491303138547580907512071193892129340385942637570288866924415647079940311864037429702205512587086718472019320134153714650811893373987155576369520674950019984008070654400967542968778272063133792857169548840991951718080211379186071547527920123655485506346018152276415492085348765218049074104812279878959911700879968171988164851126079610684636123237043194293883181678058765811007698515538558142394258453432395472128197973690808678743511164172655516177885010920776878255602016987470217755210867185254320012834553770060849100195947685616698136501432755490036392981147252524793727976601529275716440582617516473811344241023480074807448632977009191588546864324544678413493380066754455270878134186470082835910119809687026603250022512391783419385304641199553548810179047582185720034092488347998565208132778735801591158549252710911357047617985892265098739603839907471056685514914581240610276053901206989070907785573035313150702489854240555716381025458775925185178863700892175838230877741568080288826292782435945590191841514321848417762599287092271468225948383707287225011189932165019834268417004932013863350604058758490945852163492467007924559773026379625410080619106534082800138169105510839211527486000617413947760030605067450706138927715888539116474726657099161796835743438855875269085795454383817840938540917532534543907941683436047839954394236414033386527570829376211162541523064892827195125853511442734449471779338040249330642423493941550935975639891522233723789354930573562368955230371595182562623353604129866931721127323347870107857918545560988873273691761101922530733054849931575947261869318433716343203308136571457355593727619756652246231399121836082886210118725314104332395779690140434298123081270456361614038399594149110382271661744538758441005908217143299752387315949610642241208494968706647734076910948022904034399460051900171495776773154258927069318862484965676035719576457920528721548972544222845010817719181249721191622006242223989016803717373221145331535636537721460009533325610412868205197744363386104975102245398003459886939056812288370247548535207887168774934297246139448446744996128963679238212980069572475962553327182621269962148214742099421339046930446884601746132365170492087638338637860257383967176201643394049792765419722793577291279437813290879368708069975739272524660986074546258698324736509058349573119114429406710277295341366282168341002093993166775751822736841573544010201050681479398265283703194785724611796199841080120856292769371093329844681184465377949350378857676339995377434322767680381052484528808753091918435858323855264995213380904907726590667274292593227337328659559294415964321951549280432509435160619293434226608756540488760306199865485512589753807605915679356371698696503981168348110390757061034967612722887204067327266009188522226539427753187195712713151403547474560007597524482433436569925605695750184990110155367950914546491580117858148794201150609282856906474114807668503669188899236327815458665069780759631226255699251987520596202955067838861890014596575905235381596782640296971577146622567701445242376753309491023928908690520418510768906083163161415923307198488943594403638847648972267036610460572468131482249338192140624675270464275915450021175593818995619073560609344811983017114523528403592794759236332829082961554737165542162535375566829155282750989408018784163959895377749701992652138253881807435947029118058563380143704467943536128057362972110116187807759842176742581964692936701478147893435087997310565690640897489670547712238531271606768665086514629028642392785593617948767795974975292583194030222902629079698189244814878663310839513496850528190945811045771187961899085767564386110740137133802174434528048322166840534287029903045887775683507208280606698657072089288560836636095851353091787547611780579568318015395108854753204354673758833361473639572333010901509411400100674399996229355222957333897023649043475168680395538998493994705266174025520632825907638188881301142177571924841158319208200960374810008468563857740218504830124537312073233535377545730817208515783341849611739849200775066749430563224291465593462785922708714905680829344711411019866802822690192382067328093146875009438159952138797933224794087977220937357932825413721990759449931056619007038700891377450604041595089770917485417304122456319713322302168574985780863614420698919287950700904248975702085375630430533779044734121910991391742192383662967690293335620728765210356498556893538224615104285105853732639703538329999104387431635867502273702455210902059177559439606056032504213778418773114904650745364326573467841292291289945550537078442049262413204613632010647343968454573363838188777353662511503115119624182197057643187817176592070993276750307325257603228035763641042497333082246248078669620897613032795716479853625476160197386625176612147508376259485055953148371962731066541104449025068581851918910259531894191213529094929352793871012207188290419490365106811093828042553780044046458989992269589432365530687703139359972519921466293425506811803394199302575642082972257919275093609886116385845523414929331325817375601269146310580306982478717253078893798138806693375823950472805594731799047302678240038688599199717515702290026497140083693960677184829855261249164745834360341470007640821195314269089845734553653085630993765304484582294116039958214825956174983456333604811652744409439545221165340698075725211521565394802631390762875486442266099093124282941400657693408813810201885094199399855155181108886914074534143506532877492155157066818512060909821479157668514420197184343604933197159866881747309560334628693912984648228399202594187110083282145605917681778804658793815505312141171509599662565401028058914630256877287417692366846810824263877451137243559366150340383761090989131599987424351879355716762345277392004957265778350194301491577257002058548792726844928330806806923686879290284925848458985993527679642634246046553163426228453009453897945270135480659878513890734400619654215942988247972748144414102715249061488269015916848058803558592550284979727861444043970314166251636434971144870459063334924730683726568218722490957718669703409672548654140188063255835089269039995649095549830580159192192186140562929903303741614725670474671346794081929870159808792107539110730748991013346356705060666241690608114817274260821656237039693243732206143862125944207697285334274554650840213072331562485202244087574650420720982601239082322273523412965847955076812770315088890862778486949088111971526225865437394134159568198524330274793261599034985420131584044181982775828752699698629331996661155935111177149957211757349807751007479251436075070487114156742345524126863569289027275712476562853676824298799787696335060755492601136279539078725350218471472012853569255955929982418099431424622559930647014135081381947897014309078119262336815384669556117937760311900152523471363296712801686158982335467577496256593131696330563014136265454308867187095058233689959434448915812297065937916915544464050146176051718689160110251788217582378175774188862999959765650267252326710587439270576747227066866900763000603366957196175491599901657365235487100062460658731887777204269812560967845841098546977826339919033951968315864288557161563071651637067155481672958835877517009820381786556970499726462022169365193464060658737836876622729479896665928508277966348820022649542958937060947955353564040891444133325390191126154873414092109162038858514291923782967194203936703304210247197138871759317440524633332258695947228304575470694308252936648882061673237124753490428758766174606363310406739683308407638825537917530522287381940544595048965244091380480961855372917185035749064271515869182120655247195330219150791926753225880503409177968260127636622798808201989730215768394367883296383017076239134085106887853464820000408946620627843471338895990108294349507181448882556278462395282555020329170613158727236460129475163049901754266953146919653361602081308857275685915643029205543049539664531246294888058272573633190518297436854350329285047882261825617318128588314022220325169770200226694686771885771115247366497459820938476486958576898106955588390960421308213008167646521380517154074303078353955060763901839026095468612014884653730705724513202158067287277635043398734073680961537667262721080772882294572424103517348321529326651781017985742714114558994813008545302958426954596107475396005168703743098260231773318767454299808030504964435749154265893066807920504630601911272271029000976036184850214628802741159749402178006026962648844137794281723329161343110918393329607897137173474003633070694775862700390688982354121312754158516002481727354550167891042093827949364801163545482434467413015340822123441716599939505269260287984029720579227789651939982706739630343912019112154139518622806496607878507930044167276908528811421590813393453987512803616974389773841651102448766843815076214721166751212452470970487283383533351961015301908899286910583474538032153621401851236049828938427183432085769868689717484947834163697799842415315213613376014273079915022610468078339709050894518297622704876103600846553648429105555983088997155338921327488907325919233784101634777014664752995749809511244677421452272700771592873194517944065236769669612618735017704399915083762677339926097970918031856987075953250012217689111172519553751121712192610569571337935006445796770271404211483222596367169612422576204908438905989120625636819126533009648788725955681510763589339959137771319304681231879438601966620383624112165114658743177482986725374324133916007430568416389851128770952015352858765424542773432023202487769679897670455698666240683772402647197980980282159832499241596928480997667111642857518363111824357373101985035386738495204012753572265866653157351753012889538740631262626674134106788093974658231787760984358695987778112273717429307877955173209218801373550543691238209506023378865797544455081856528310528131561550516734520751743296824582437648693011416332648300255283809744962299835075865532699840526157207480106565029486874761785529386411712325018924233734663173707541325566344507390681683148680909926126526705523413840796625416264794632952961439019783511006502808302215600943414235347844814543961800455844257597739863120491837761801851852218994582398686625837809477583400485190148650121769677524923488098761825008225696604123008755472828128947350556834065082009415885187901859985267823965739576182153959870496953804719123032491937475472328284983387561800076897908874481867573318220380335453868072048796045452109784481301563614300652595128092601221947056022748667514606537536981828441217636448034496301911059812620709393425729324497364030976307098255096040724374471154259426432330321946956818826145379110903762280505636432856286604417044550884367053423455126635209192222935357886670211580677859371007465393045982548601084321778939463646977052852360627666449029702159655277585051928082271813744657654134058119611904685530901485844426471045096268844367555847208724061966176224711662742715887712692610153672161783061802557293837709326809540695140740625838764730240771675174778312591514855906974094094032983274550165339571582017530003271019395159297711227416047336704856428397122546767789857244697834180092120476020388679133207008955707587852017167221020776027657125694297880465778093677079322738591893399972576337510147373872913868934689486597970931370818084612509220381436333132228594027193631894418436097803461873175212579177177227514459094829310245283175856156417308780359828833833205922948655221870476649368824494002604031272250663820544201040287585307931701322869270582240933366663580828448401482281018414547133712712207099303343229439656042569748251802862052088509938252716301226089926589505056288056864449763189014953175111000116626514553313734268208966403852595348296323690954398075879753782922788532045885458227631689844176244698981153712300875449842391279573646293722595892002759603685804365184819335659131882103693703956213370667411400948994504807007716077789177749413605147349304262585117760321197799540717542488789705385127035114699344990916635449994418625210367970219405849572966015235262824965637019657792470390348731265657236158262032603776844493036538701149553063673736945467892020311546920937759467844141469651988319765040323226391649622877643080223631085132750957848757166015951928320856948060520660185841261685823844400322202746155644141368839181020788072083099487038632298564456266318481885387504242523806532690255315345043999978568234831263767658633375142996568894752291633662026924784120532592995503737200052245350374841657173066711680221462257921955640688983351267711389232481718618305613732101611857469596745829029358731778369423692024710049596737234763700930293908323284682939516202797127182854511102247999445998762458776072473715421654167335117213545707269367656318595080427084592320969342377498622024877830471999849072573305311688437842715871682765167998573457073994585301991490556884909802222794921795311049135999842164653738712564107356485917743098113924742797582552859975088082475853077556544790795528407372427419319585000499493060387273820489311666631859780586129011027951093750992009453587715687720191824666691097978199552440793802452025209794351135340699045388387029727467508258178040272078243717385706706137492860322133867680134156923837901387165761619073010391669971399024484934318718329755991506683928968417890159394636150647784668364014670326252596222064938702625099037447826174616670719497324268514531871240486725421158362240826579654738712181386800079477301733223579950422813511354120795169315565118440963159874520251425273311547146624109354455959303854332904433342755680516848631989260300525512103181314771039030300745414542398100519621423756947548061203179947561741959680878437408600158385774768738286470282020060412847392574742223158789066494770840315320467450351184541425402286993750398170146293677344932669175714805690050648937345909724056607604308059987751139902353970529440932569438812762007713622803120768336304906866801163416351286123521712904487229298536165154798625446215932044805816784536214265219715708873179664016029360011140708694133059083240465797280276839844508656312514233176311395238275568624120261082795290518338324865499193965364217241234439476114848651551158106331191834071472061770473262577373477560463027528602271015516307241682560204738625325930672988851113125007485069576916020592923425520200358816606768589212978960912281969144762687926417831364033052329774306749180697447405378291376894958777398975000184574190719311368925483781364729230715397930157307653886986063803311866428258181003728422810481629198954434812404785203627801865804858834032994444858756228623376763164905702948562884665574371730078984680456736171819310850618832885403204789316586245141646482581947106009222957159771289135507113092478700399368597211291727598395271444560791899275732718492656446129377038816288746461790312769222925022345758232064187816301614360612286842553743485899143554004739489349372160521123942751306315025955552739592444725710890134007665716041527214199365160980054821370338806224570904504490103500579964108763270861962150232213304101642922610197530747889114492538309824738968582230932849585404507246372684329005672129297412474232834877268922492709368835882208163956762471138262631783651394502619044371777860905006679913076868935701202653903454912349849717621856320901953987980762433898313185510154106562301539413655087057201654933810441349401405961599164232344613167113985005228557684213722000030914746586622380279377940745665204146379609118373823719886651767853555060590756212784666583459800697745137554946418999420929683029590390512836398245995451503920654990694479723719480032742299876353827218035297992798589935374095037936024480453677000198369152231115454837793086339323187602600608752669911270769280248730543359197406669394100619860970825516629107738175876532549933765403587359951497175585172813430388752285951296423733877966096459386940822268437239725636464805831584533815076811632303456464799081381194063713251095060441254107308686997496475894278896430562982771656637922898622080593147853302966910080390719008892707817870216001108196696473841848655579081581132896681075936309095274831395582177182997555440535634619775229364181331535991774054543120717503824433588960040661437908582353014180717005807328605093017911003692598911593482708937067805592538607338161428903509698420336511532038026099440181651182637139702527218115466724394238565219697017801203862950136170224779957648175048166566192695257186114364366036870106101887322703399438576499315177009661924237260387748634685968918242402487200291024834483531126581384873065268714209915666500581155929608133034944984280414139346102976978973671445801133308238560083971387367267167555043564952801403567995242315035731867957212964333903563061929369326748402244028231933469586162116921118022674151407697103301457444161434903078420919313404912009847717888205847461880159803109173074102333417761748115927459245687273202745042258304502922595514471882731570155148732345049335049605105632360693226265727448421648556287104314516361467235020802535973358182011325711235273592892240412663596165799284071056842241127767143832742095752435693290623027252582849824715877111529217732759773944899706821210166948558900268681872068073788024933222464401367129952447178511138737138183000431585754252024560125425344240511538681177337522293845250450341075972771840293894776581435794097729026077599195791481395131203110635258100877066565325655908757782436332817965827057718890311317455093649342750685171471468976136346025540218161414755991589429211783098564539960150176187178893708109988431229779605762264807215371108329236503471374544757430601329514104878785335455073372073837690978679519159063751840611484688386194022121179022171757823652189647340438067461946759312462597610997062090342867080604724633142450266660267720043314485795166642313428401861353666908376631339648960498844454560300044307578910914289872002367722476145028957628943967461243261016233057726384406303787978127900203939084958176801510425310959442056315036685645541629001251859040952547687453399426053629833900033920745382776933886466252088672882536420361337307094968602542062393693279873031085438281851218559659939627025780703146412226985012981483608985108038004146589636373577253893136373859046169300303804819763967727480642359991433242074235056812091476494884015911066844558119402951870315624263327287726123198284666658976211417657877578386104421133006632714124295409704429456006673154002921164431021978464974469567450383408858915253048110372875016821019339289889021033818412186394048491533721264903164444850596647928018402736211644457924509350561314022002729399766614167335284817895315430497401843832415597204299072504464802611287868968142914482259931399947401513019329073609273955943015153945425281168043055344318754263789274359505617119124951582661510073304431069749628842332818714459614259136795000291989497632863539240412881140971527803242687334514340030148787186903021365820162703342019282002160408903667806332557454598759249771574818260705055295088318645604747064457698870560347619626141105025230048340255796854485436531265693798979987908943580370392476196575694970413267281889978218503372635513172888087657347860932752564948465777629308159533227990827173151082505403605908389357850972716861822773420049415418031619410689743514848617012516232156215655750382645835774521917089702231856166404898627938438402217260403892963505204058778778438759909250120698833046320914045524513255031248969186817207171243393785457437599066212420077717115906136400125107224748250135445560397418713469487670583337627970683441210583681600724899278153341893429139868987403938130269776870569242000285723608117574882128353756180614087013237226851668631381076364775427066518757530653874250961762362944973242587427029284208195658801405245496571032711889448364225687373741254579437113642615004899768811402980258715067673598731847357982121767851206986204456039188429810221536422475831843891367062095657911573970091638471284442704713875436185953616671067321430515351385210064737704767279747595454185968458370635560908187011478394958253738994033083123731604646485131698210674740226862376412522205528247157681449939328805464597117960856975276702103811066743158582811577536965385172443951350971005115877453200618400546487867253043359751618067470648062052646025944426836837909176769739596466710346652946218072975218810708722767317820425001282978418035099364482731996534504636914065424521857031220899235954805636547147393574830315086812503649840447727962389785468087298859501774382077717554300124440360793713364263847859247803190785784058628539895121006972262793244165544653015106823150616036224904380988859364423729681350534543190746243082743761960945124435953706448553272898818384364896293811799243056506168913986322557764355591895324655772303208566236191816284929659130013016399798356826693712796852952589312272590264548829985539701951940000107575895431013508123474837944543491266342143284682722944717743164630218632048246557172165247511378526049574526707678660394673472554418163523327317627491493668069429772585244067154381485202293545352407534462040240580474578074177164343794323947987559030033673795685870226999039964418184526840726911107627077033190069946542787232621452140585727202319817729372981702693456601483737998449277465488357621502560169124423627753247057575778367194446085965447164829289017976380495684375419177681673389989041479492538990894723883121493016794396035227004205337343425419999120979625137219747138462381929738929589193716250044668654470909261431530055369716138114930400264977041942648946506019899930239590724551735344637778659671131466837389840942138649700826295624825655077634895147133094096067307649406403338366100882274544879971972549115455353099029078745461842582656022453202127119649911796055202218623029386136169667415734995910977306715145933584657141142750397097438539068894617551554948813870060170563776417574558469702910771249951326486597454581098103420742655798089591758328757468219828765423698076460973129629274062529186383737341841967243262340263644287381009661360381229372016770152456781177325440251198499850697963280843062808556181440601076755540643080105373179842051171211139461510641773347052131710005503907333786755560041138153818939146627251935362826003134298883462289229629581974722177210981627580613767041275362902260820176993092139557169480043035693665289350602506268829847596448064073064999603524891287142093008815914237010077007533124224260640363865173646171752753427773628392736701172162617603706024705816520263254955075894931543239050982793020780200373026881006485122303821791876817546773845545842660614344500645323647955962212954796798487406388670933100043831689143892920623794536675666549943144994103168820724515210041597458698737528484125392070523881496580406140182814754933344635597967559019165341222148457115512112073408599547709400697312525591003744112581673990121979182477661271111387346449689289044793407080684607796339276862418565865933849251425639043511906068558036290652242639088739730154154003170141936966803580469368857462234313464916183403408271389673903776727328661811302035796942269515527876931329598032368137443248443538015072003958868858599691408071808394590935412024804574669336750568122000120291943643873525825010503521443845588141772011562447653459039464337943378581296750029554292253679597714921143945991816882585493655500111392596361985350841669032520544346657757665926995396501911423654017594182396145277990158840082775615081265144914987050840834691141723798314965439638818510580993036415975031316751155612648058890175760358028174146817755263757990384716573174779116390444082254851736349710379973000659058559764611454977744480620579131504344041948718502196666307000846376037113004254438474663724283744969781549255008836718071931448768588475732216061096215268845806590981262219175511293825311493789560503854813576956567732135189060064436088562621143481569389619796083202363903544088215816277465147058678203745026632447213489732383936983719687113467194255719981289505418206496836557714723672234038580593539091369413882890193735073946840991186662630079355264515112675817948466420610683218657578030856997864000027240759517646949461388766002449348965713969445909860214643636191392746992848485489454975917570667470256082427764505202470663677383238135799614264706506434065427631309589226230373420822122219377180437780449860914054765055442263988634507631385847383893126869011410219383785323808725050825864095721443972879567984530715196288059635640399389221201421316988301209623292215580008967539505866284821467708149184684830607666372102729207683591060503276737436671787578494964637054845312148350970661503933612375091375641153682591074788570534610918065433874834805498604320891733371438921239676491917929915265550032152492385704001597543185819989453297904301632334056103291569778931185145454378704310404563437424521534080981340828988897466957205542833821422608905455098767966693456168388789552453689408689038600813104490590622405691153639714544530068765095687450973484021833141488152076563164811848071697527288265078139804139838745486204443608305182455806336001350869314425676328605932122343152159171334520787126281426894181962257403165550490683889298406536995247217373222148458823386254878268992815755780783747126165699698697464118437016426981570736826458481651152051796973019270948373188915052822660206458612384852190596346183377202478518907145198891207103023101047643008619613880302843572308886353020345562344273349580506391642927723020201074568767213360410795833352669123970378027419140351808185714673129212828794847371098240822936491179295337447056654071735320005167978991571919827444344354907938137000615365364069868506702911456357764607257191261906819531236867343901786677502440534498257851044501325107418596176405160549900374359295694763994897531988638891224807001847320106325935976921565966399863478963613249460640779619781078161589570495890456452886108618098433794955555015979824188735070540134878277870288883166122414017572515982760591058969289176238169123634678082197306416921304997674053193805506698862512002407691647133121795161225269113252256323740656821887290619641683214840953091495133784392610271387579926682861955279716234529091046719799300716751257176739086510899781517972486111995782074300775690226216515583544346916456935343945568719852158190740755519656343027918892970840445004396960182661245667183804644352654967265108149889613283479037888608407630760707694883319409114856694380656813867617682731414772353413001891890613075444929037987181410552064122049158402494022077346614055256215287378646038521602466295712662432275950045710312803685252345302525411269262442732764036731152287343673467504013612658330287258952348214120581044647134030625322756049219281093343730273268216562840479761944067705704051608902425040628629512232982481694653841592085126271347643236547754178791675530458269116493494820672355029940302169837147284578707486224055621759397608590212785450116715589490913985447910431963380109238038507996854553714575262244520684113216603465038482415598462916135955204472705566515402104779394855239024193987630830478713638083295099005505964619199963658067498628135278768248792296768313383445280281648437196607118640856531628848331119290409896560593618095669087349326036976611087451429554165979157447318450604824545075264410667263437629681719165494449466702109607482988919953728647158987220736254059507086179790105219137619028831043586141372445043272092533458777469368082096869712738456128146009128268586207783981898752123681123515913772715922354273343970928476875279867648698313418511153496983336665632226956094345932389659946913476984887833046914619877073241328847625098575876425678026214693653798651484774483628563631547056884610223001805270430138379555843819600817833937850224826308896384594667446140822934623238739413251035471864746803573544755800389471481539168090397839576624045973536344004662095063848176266585215236376052396792112809318690708700686239106047340976899414535898641737191247292949569543392546373770912748964795412461450573781802452000270780532275078279023317895512346060095712970022369276038117582901339543193636549759676302915718766308959770550331369796953974984102522988325618223888914724255794365577127293792284017595859989047941658169300544652398015357638921193554176999510203885683041369131398097475099998446261685165029747087832425989085140905613637623906660798927243908023417691340670466984286253489744855652679206127951150111424883474966902464647452330209034319222043407173385491119526539279485577426550417612396173216289926293914818299948889277408799177348998332040626521249427180073298988084816298940605056463465604623810912266334399622198082010625115778855431764787168270268463812040191558170535728547562636703884836300940617311492655897942643733230468778501035446895648163061875711415753290214751736638015618322517974278130450538367820073074810259610148244627091337784183417037809486013834995548097826871263679416969844753185282021475110227911576805481417785716591585312031844808263130908566398672262112216556408576670063236702613087846698859563641628397564156665801453989100992154453397869909580599287573777903790022686477448806513066688837715210011621790406773584238699040564609328098591379452116025953277236803911182268768501777990815938045549579543676845163206186296559450039375669994610170033223191433991667309227172446959572992987620633522813005504045799457477736880170978057676488531276642133123716348974034779885278495072695675473964060151534880230511788055295447688183075620347113389851283857220781579784679088445101469212271081140124753058474258192717468482743489996785768899019373574284612499042731094931058618762736215135560438810219635316566833956722224458638537030510883510920653037682388803371498863016043914751773357999295252044508716234854555962719010232605943052145868203603409804368101048125272606535360190326233080026026086758809546150777632798400065973627900177005284479491394099305883305253304955485837470095519694326033523964515819114461665234909848801878870848758280588349860510339762165055214048059115867463161594739867780778474137708412355833073005236251076792204932039546913183305098889419768722226421569057126191889303188956383893500970582970261814735379520575277855858331411286158745669428744024328517114046188511748798533987446997691243728862205792498053604123778120270700956023341435690196754768716274496451288095473833699456771248874140921726419958073436435794373230447629765484636520467890117878890394786082755886817578537961068696241769989351498401024764254311540938637918050999218990102166276104472350096551654204569786536997487957947467734980407116505949198479496962872333524246855556117322153174891181767230972550598436129012364073910637383117400261349296642641930882635693442245705649311944001004954492009492232481005748089387358563454167040385373896651852498525951811348919598734290449977360719136182220120464227714994020644513424894915572755427038108869320619061026542348487928975529967371612241202836737656678187624556152341384919760705317385158162855981960652317138722944806723661905266475638662253657045701944416498790097124971478241233025106726645401487060747005822060150838115829605805326008733681538603471021273865929399662965343464721403303616063707840852954902428290422626204429190268850298169013766736233176992454313152155160180619325843214272686220716011758209775934445299954684758648702310038606667410487500125296438986404054320755354922205540993908534663309776054420998575908587336966767636149968965404153044795609981858855879539891897030189128588408293426207552822573202849951040410757411522378100332373226833301166285323726373949868629057995724085538285724084625116864641060292072650732990130036915168791673298581048030494886385286338543757857173632022805624639689972237831720674723766798738641737548898115105949896506091975701531950687051662401335329490936693068328588705882836194352733613017232480282041774244110764561478667630986715493634541859630873191158073366061717776019048817740027386694358734129696216328584053574285972062578989245322928647321402061509468066695909235469141670630136981605437269311240182966928271712879562498565985201586068208263213218131229820023274467336114173207849487360360407390923783168713335024171331081483464434764461621466725373170246796654883449883754436750078280340231942972120302100544543685828302717115643510473265149256464492560639389980970772944574323233878540148710721577766483145497458110328728389516387472361489733636207965865482880154140336332937626906260851352682209701404235455662794639411540850472089042032283060546734618691522261826999417401342559027906838854238494947880678882527234351003187058295718836422332611088878857155940528813742028009396897993178001443938439184441010782729369859596056046062929265039835462795170644168085356872147558781429932851421747345668227037659317849115826212197313028437303845664048707379023012294660799568266208179862619919805337223658104089986590515351472848652107947291273220066820027324894623203587637669776278020763120015591012853080699421761633285076503049141934525333282523857051136602607343027288470419595032414156143271723888698745846101471817495357202029540777343970840452967158150053529738515063058925662318437559076014099524279400551143092720480346141659850697226769177128119913531834435405900980698159846403781405423813389975156219924150656335776511763328298883669512563035422592769593119395877301486404190786198065758213743893854987166148728448181310390302484122827356976605831291387499961814151491317594877118687903054020348802771798397266750533299198958864066479706115226869593203616225832001068673578669700600318012940711462274296813083026305788132229733373132374996312670946233146189643598890862645812379859743434336475848241706774026764764204299806122139021654315286403930292528897499560064045025633348149133845644094110954724906344228741247407262096425571367259626575727359227239639235959907435071137499415558630343418403051022705409674123388198897452087834125661748926648517199307496867935033018705118495390193894177399748004744920877777173136520889723171924531724013895888854951296132684964046717551403963104998122216459970667159684351540573042395782519078335833812533964822446252580177495897067752640927718841573649288603632031097764151726869617290247218121473125696178021844010481920637745566759211108461976447007224505766318814910489984341478814047245535036550757021476443280519413663210264634136166821720081572891893952976127078977969885086442962979397267022806832294854849571742353664058337456611238866461042769135571237527976551733059619230336778146707229610898985503736663429950933169433246370411163058951730786406020966667541178506731128836365458228553989770789338344641501644848250701006001215550515173744060064631434384926705305403124765058423385334902917050717183517992939633180383915481609186384145439818493961435033120745697144642624165315361532922548313834255164166119815311047518655770559576688839006616629400531006568820275346420208788737846297338232396190527400224580876911019761277144012132629616714589279806412684757556571435212047448256593104359685140949229093971429436712526923049008459809277408287932380660669424788107511554786258273678512740331647786756635211831928655239023556370247758859805649450643870305695666734094918959691210961553967465203649084958269359364647415970966300810554337093827588491099840234249098684574072422135763980960186388998303905093389599654526364918111587449359294796334458329111261130733060838356163614180782739510208683660178498089073937796037473732595457614196388668343184295076214154045686694267360131742993098093264007978590844223175546501548078483447424909041362221472445627336067508502531054723796449510839977974291449881565090047001555613218588005105449173020415171073787453093130818670507314924156642536328452908015466388430580310920102672220011117834249246005211339899120076886120126099185241366806351928765181364778354978459922351717391357795052640363298473337143179996591650133118187663842268574767508506568106696136109352474241581384694662874102753931555899482362511186633560157476566133344018166239424770094087371565395728399605786597633613054156911821968790614068484761754421481292622278121799722500243053870010033857889546999445060220401533443274491160383426358656457755675806135504209893852722920830114988433841917479312374025237409151324976446479807469600210779279817275139131189498083320954676561780083950651603203915315118787532862985252984379916333984490866486319351078142180250354561316134950401471791065389622726671090489361395464585561586918686122982204640741367000964189434479042579494391431974492811112288044169116605134075898529312818254837743705166692046050659155415520694667984453971818883231575431924233410669356151207820835580943269052295177315469499619850516511566079781587119840434512721045750957164373811241810666194375464309315535187889958641180953101907813162993295169299511378305770309530531522214589154747368846555022654072731974548493446651250329516817676732449935966931536568257432238751041592442153154312118369951892307221565100351957564936163508813383727803304950539184252068812039308388246002174689446103106252003861356494846038292845639514982058923515658703982735852558128549062129276314316278442859553954301727591240582095422463410567514931775322545448386230867289776303416625717832038254412393982276747355916736142101835608286546127552434527611224199071115764846812195536183446359876628177222000931368097426816305699350145778358417185476466574794133903758735870386322196326813892753262244829901993979652943184887046594619806057164073175458327581214295109441919080464221019368321077112316242568054264545829771869208094624514690065757159446042765182142107647647175456241972604569211800650046476224793804716923766616911541058696161145258843258470003639034754695866403910109648269110001425275127815122645154332188145686530912423635558423405091793591087616973895781506310117732866471773428269607414019230171154974299638090999320350465618159141929668811622020208246179414722963068933131676578583248509992017611088131889906843072291801542490232247819761034998534446744840861840534873015016829167430569677709008088886524956622921410509279558370576074076757931306644995840248424866987074655666541125404218338887156806814579590560056164307981767439290867744944126964626522604151592848003965889129437139143333016331636134410960561585526815011969038134890188612169189492548639181512028599864889945400573736448438763751444551593984520109947431182477875053209182159149740169982711276474275356097781460891889219154439488051091709313956772842330881571697104462845150317350431031350098001562902582437344667296881506188732164720845777052034566609721295286068810911314913566710074648900220362464445051186671027984524135186993642799487984905343515194931941152477223115309760332352961676151007758764869055003738183551786254990996976787054980630568577975748586810376551865083649399709810680844278473825388756078533985658559814588669478112217871186442903115993200491866921654086897704770083350548181549591587296738315561425061294979625531983536779131934999426241347116925447759897450092765661237074045480934310798516514373991020349457541661201175621593975872768216874490651497883420158755438850707791427003583061347729205454924571410720255467639287382734007626316167402156580875396274319403209988880842382440033689670564563392185430902078543784676176775587529614022250206354148911097985819184226445870760469657092308982091109460515167187254374201840956472804241093988836046910865632827973710866768599336632878623037386933280877107632838225549910895639391198199034106084344776379667117958424185778075103946904440270208004094419041931905733851093168080279575095234793248324017724645473685704225113834546933604321656053947675113090272033409072520471106036877970735238346276101891782131464660926383778283655057908381357066619217070390312083650617546344145660164091072917138058742713895761440315261099752097881874544305329169140323619683247443607761616316712328328682549480507852857075225430256094584546659862764828848978346012731194757558695884638897365078278320636967848789348817325426482185097521803418550914413373934783754752468538668225069155347088738755534335670316948906238670323550960858318992532286824667616229434067236832072899509289648376329851977951127246148270893944616538641465391348914154630229411061960706573593950914348071366619352201806128006641576515097329809662165357001908209132478364779394354225764356667611657078217417739165152282935766040724163103791155282977311881450675885161428389651689943653865859079038928219406255592351284015203014377982229970104265154983810209422448096296237663836502834509950086638556716090609469595000316120287891733182843473785158691809558055268160657772169894441237604223244896817189567482294993856857774891064639938090238849599120679451053316444277274786090802160808880733868275493549644524257760485903409122579158991706175584617859324140055059297994567699547533290556789975326102899768639801251513285991424795205861752110544606391712394143358381568361992690781720218379537179204157673192919654417760943268595915914087919551695668516791309198924872246383451929724617017889400389362492001226738420225932830725369549640216098964350078259518690459383267800148731753510250659851764097090582599029942857410753222158946186669786619211474910951580685854213462461005394376354510045243084667208526640516266804960570981322983525366477346994314834923473056480687474903625496259279348561374965125667793667353956863776853371883079292196813448952274014654577155865956224043113614778857962992326697224671604707874476106001429283418440748334641936588510693642223220332977810664579445207945657835661468906641619378350467181124695810525646614259934161070850323575357417588975028631939355688465471140838204134704028458109147704984408559375538560548302020634393390184715772496734931343598652544206740676786350987534248728971317172817060563957867608372507428934248640669825984335377749939714668207062921703634923322148924464251508366623808764619925876883070331429221684078182163839930235851534629037078307892906575630529198220329159646376063920691458683124228873468822034167691215529750892495648773544747351153519607338351540087627772963966358329233053086903826262594157799638487132869450570903843750542605106014320355813236868553969077354870000434768300111780496084739327615125450965342654743182407294401780986534362774606919557524182476258938364189922799827951225282886601049901208782549889755497371551711115521858350227603263271114853035329673178419426927119521950612868297157906277501278461080157367020753224740613183440696136279909821133656061733500345874695970057000361011781766752919155688509401205887822285417471265813290476384650771879258851451500619003405011030925645189730532594221351279993717137812605352743931430440138989344154454186335260016534318981377797770258064902629103285284684566073619386269063239215305925088435486161298050476838263413687290058750729003677067133896003467834993547663674658632683590121318219394318691001525601059865307710251735288506636095756657755569283678797405842651575748317868287040886446439690383390321729794686907216840831128480848086149632195911098629420552557952975599121750070480367999668902877011201585613544370065893534061147245360623335173464070685445658167768828952531550219942015891411861065715921778522404147018648707873985008380081153861768659160007620548130078585101589804179228277316051893404934688888352243392467713363071098398931746631723888243962055550091425096757375365842500863143103762703890035262202207102263393362880049961282061738213844447369796331474253004805536745186273573251396296963571667175631487882757997758221213681503954898881168076811092841262412134106330963890480499123638020388830288276098965771877601485533001265166488277189350052618971929014694061949020423500030334497774663592753128461087525220583944283199869167301560424219860555932008839318136934389790053884572322106403227362747146281109237488194285728536579069342889471236744143541854200968331683582048860201031355023947325486529071127622053371701737874084559354810434664373846194449745134549893331761568947906414774338887198555904990754739602532736809157544296067071294964478186476414155402149253298296429119485007381795487706834815379016924602969651846313874795127147521639637363090505245522545025382352422709333925935990218849147748856941735883898699563782861157553762782906369257457872042475017184275119950936493212041458887200101257634347051762666273868272167350596061954809578337407152641922349408636103660857954938470053439596399348903162761140790690765549786907107559068968607411484131131755551096611733213668540954908228754726890554216895271055959316783098775196050682000983067619621546648575929009572781031432628646630315115019199107154651019507106506163082643516581338246583094836998011210989396260362590815738165781749075155794953620430094456811548604264221742131100866481782993480577063281395251669416755069263608240030859149827908678934513273159705929721562063296716727604687307591146180591101960203325092050162516108361575565481737215424820360012387759117390329693990921267383783045108176871690907360711143021150832657154698187044058469085305713504259696886710250556903152933870901796761450112359026012562100017181485418806613550026701456364179628716173191139488320004401386617054948739357521852566816123425155481890040448345649270792978253506999577689282704110906705503606017868100726838551329818579195213833876355606536838114189500927499053416363150692102022883537969099026920427746472615769727502742191802686557638298400690898117225222375472607638497731203998886976165882140944343887051694757669805804528461097347639424145610220121318383486771195039908049775778866599764233750878054668685131194058668802117100442943530458429264483491963350632297368967118208391393413328605367199514672514013789806645264691945699803957416441803354981362656045143462340804344066078334469606605181995776715617126046851301950613112210761075819553467701570881338319872985701250317031842686256914758385858593273379264671946123871996064350873993064141098839529551531132925822415185212421462999895497870528459481703918033048505597217668279026631017622337323808299227076241844616669445789157896377163094864445589009165357478145470210587774336376168525233497294440811918726149529364077756040560573950391994949075944741068781534403941522440001183083276188421147986128212043558949190429690758303502490139999439133715474862369989321425729223200928522395883822386879786209827616264031870854623748686990029969039531693719983051305571374336023855789352354311360043968652479711115030130934776028012621949734902800949876385722533773170249207195753204196292664494141828287359131786881682341155550019136279117402715009748787739566089179059235523876044123813924128158515228062072167808195789164377995176671989734946612223421779987764668608470519392364619867222475095998611139552220309037059491957943832423409611380153249958521707011957059971076766588057697566078416656558747852477764351311999837560091747508349640440445880226306920125457319498123292028886897291595626443239490958685257618184467052898484473332805121800995908887685708558943576172474275732830273417125656959281882138297309290266090808685472866686853261657725916169866300985169987437983279525453420634383380786293049390237526808460485655596337153777556609398184159042202173253028925403806493228163227498041896436728767756078102016785829888127041757777106650659355422538949631581948867063435377565496016344174749954244237502450477392336944887360362135794748546191120638352515408881797989359797432889036075886346065074868544209134454913294318313738977602085574001352545518590432481461985426763042919079804558281727510637555226275012377287675773213864248982925020634085044470156014470428189177759251033274466865951893792491496857313732932314619564989409540748196693109277011852962144652415241368367934913687812371928656439283770385890231257535646932775471216971535102328226608028153477967541139896843615937193366131718287985866202081179676504800108880925463060350462439849357209014516207154956372848921182589942261931154165351939976151067123800757990923604354883327783897070142654423542902896305604753122946486939388108584990170342893217395536902704240311936302680042562315263618605456883650414293139005109941797846209830032883142816158375117817820494424169590280824213248632760579930982106513019330167837595159944830624936601853312872886570293206375694484437966831351124199948912956026750673410012843179819837774120074386475652047826502966910505045063167648607926316090404735966390750592876359781488720681594148911466301600201004103995916692034203351834543615367386699624678299271447179065002257911589720487071479401571334728517042625711301613090131151048599671416129185342674551515499924853903308909666869592500595156578441957421440511714463402796147817020008845480266608642854867020129681758969723905541228185645425379300758858635084650757808589503087755780808573765213792201848575554587165042003240269915808375294773999879169578983884748682511153098040347974311609400161442004166198411186455439598919333844497331081592617562864881145468091335982414012682332014682756068409548254544822273291947795926020470481581458220655120919411234083382189531109442087838209472775737102190431057484247200772105556706210454439053585353027105931612212044617357288589172526042229294837388856554377002064793549948928804325147032446656348466030231292605679171305682220720302022552740370309036828587634561334617557382272714340186307109841338417226371438437978246408715539681318710972252717881850151666836510682783821146448791549485061804342416858365924331171676339701864363845167691289752775327558446200390776273173154272000813660781539732211931064882342465976913263099941085683310025744095771333122213565704709840088429950392136996906518646932228435539369031930063264525857146819109592435406926383503544319869891994256458000987641582030326338578281740803118508003618204775280486149347689196344393905233143935133401262058703194536185174965022867359831523892209653409523895576648028065549892166144664725754096557927428961492796651126501682219425489931490956246447333279373513515217440439395680139590714756229660554897929258217718606391279993036203253991651021300912412289246790209534291587583504527648669844604724220933092885399199130062461476934248050199440509700381203368699057028944763310608207860190708209885625882532588737805982873097101888611233600342669546760888506675636650001143502005116304998133387966193824130841956243098690488553002007015010547880433182611277286177421843719337589225849232245523267825746510712890883508729997668690025577628710633271333045735723316412873773252182301185208430464955852464275438681090852858879175568106923296578047558132748108358247918917606054951593445449482255004655995707522267783699749796769549181364611143337891978453329912795012518583179763851694514126052195950471872689181250200820016252955096472197235102520699604241860841055609355281483435616757014762821302587161288217131622075996683723707788607303602220828285990129944720284995053426500427537793540861800597757574779399117271019359852217686927620853829440403900044520688622211863042451394114194374550194224396457800271301884085593243191081977490347309774233527407597259654877226362365807555878224418512232724820887181946831757196456540928648570635726766026538790797989155732741480357306758258574697647960567518896523423633262183454431079347129285075629856495573199817956393334038226783647672770499309024361971804270992501855128153725051255665100072165893269576778796641259868636212247048873829154290352622558726622436119009156429978180451551916241798630571707249724273115432787680021782925297996645112691517404712891379136223395286149386974232803810953792914071558816877995273875913671602403697767427127691426637255658719415995829833411414898747033883579482106853479083438583909408432608565790776491147811633420518165730283263876086588456600056593228492817576146156972538351875044769580190049511873916070494321798195860251260409511887680649242703046869812770013146141568646190377243080272002511888035449321343188503720621809341306362178376931715479969817813878078483235848060180618510595275552970321680304035954739922109754997505754286141371614985240708239853660905458071451473148581702605540129490240623979075017219839099898468156919475309898379353249816307453915680466376151904575049560782290082953019793291428623355618916330054317615732279345203049777085423026456479887903893112758356365010607305366703598728262006414485239216443589487677051591265794638296836482378833829136428501930029335465779170765356569346166560704161552698460100257968853918057018650496313699346042887417047357650778632175799282147163504266963989555923350033374745299034338837664147155160959974260088747569457992274190561365958377143355191550216618704511599900146277491888100648027536259344243870795329295855290353991651002261500351886269359234580112656929134472769811706909517643617897643347298493257020090404089279304941390297934620688730119764687029633367347633058043987160901058290114390616606710282330307241212391301480873970444125889878806222426976648918382059432504908857672198502656484704616230677679382628213146264741554619705234989512625204176726239679117293174719175337399171171210520463824044422403535801102023888530488928416690351463148139048512169887495319616234095094448539274180372044921674121655820631747116275477817457655864393081784728763450097831743646013263679482604228477121669528414278976676490050309503962077172105831644635610272048219805093770198745686716638147079845572957549150083736639736822255939021571817469719455973716965898892402544274425144403762396511705682490983880643103496735919683045825041348911702105424128155332931629280234018418266758135488541479640051494168977376537030290172328960649439345586490220082092595943379100734972419346513503851426307568755062759244875502286133712163029973709685686006559740889532695084840562959523086784267817534865477830748683503023206994754711334736060286260151761849217977778767802292602563567644987308468306126436980904462234495948112515656964172651204277016303757292463634179666217621668689389130714238397362187776810680031073335049267799763037420598963855978354910167532297705414575662306368629621298113494180655044595001096082589288493168136433470741157687879278428445676207154843457659285737019429517851983532320972720914550447871056661933019609507548795977588567507535473047562325218667881101729220951435621685756895503150461731526918585465474945169269106641299889000202913569336602598695361239772127173706336010498028232874305086387487389537428412926449969219290243223146457598825425426617900302594274479773199895374382277134813112340483948253761906184641086991904357201772928921487426843849460500368980093081363218501899489065141381550250268534031958926126857974051026535595711537218807772446548981130013185123219812324269266819920536814553744482031422450030857661177312468801865182926847712766528909876206223740342618413960989525654527160792914574207243188676257836937203632118885065452361401677838337575509200373643272992124461134891408671569359348672197840156719885427767073062436976790392264268017390349648042259164432953626553740289698578008484604401659749987085089379067204800945262731813271036699609724213253093178830726756427895200377841487589626501317118977417651454241160219235828757336010492070568724713753447116330650443625905275875420492446515964563747178542153941554119569812310480509517047970275313093496672614969034174600862091422623760736797574302162609386033159183766477845912661013897754508972753353442697566188027981603962223415499192258059778592360946262013155938391651867194421790879008210493082729170361728547510487115246239012943088801283668728012164453749375761058125966335840575051499781933219135559982099759556941769574784533269973104199264913792653746579322283555820751751194325616110718088096976534454221166774870823389788478315435652916468796529885541180219072464797931718371933114086427953649410927853644842883135202998121788087935288165198567787765397335270646638914358068937378355588961528053114201555196356389172455539283500662036906060098069110722837658016986241212933607179383650587157426039699970659444486508925455400983559384539049053527494941027328855164751107421523904447328175102698465831056475739756501335095086445293166511263727875817017802950426083400911610979685589479611887576221984797995920316838365388985145212870218570993427594819432053174400748132533524508232319494064775605193702958371811069262709493874766428416912076348701131639167223165070343140939766277843889934454235198647264554640624870264165098499791308536405808691433083963316244491160125293221622225268713251001936697443651526659640386816411503820759851988796976532167882761640666821785793030632218597268604897916300762112030606643570938032824678668765051049384257238771184386225203333067357346508041086446225444446207436572466353412427788041059539753634514699555058063980288273214496840607006058099738952457559755840786991718968259531912219925252062332365706539072185628565411431164117392633473358567069227597789222036479654776271815376318118943649331845094812198143250425899359012344628126418910322608079908333296758095898032367529928605675097148637452820952362635703099008316905411050789054290531581814559604971841181735096099100618608674114143883120079290965698322194980880450510609802077428587833051514142548966528765152081256487892990497202502710992064557049355718617165618926856418000883084308558941632160257017293518131550488267793430423045244013007439719741052245484466855914463827661919776068450893733840813636197855539654990047314814070297117501573628813691772280915925462554896019061934474573008524891396236963063399520443020108947392347773954517799305786515821807265499843326604282836964169368168149002407558922788189282631749551775391857687208399900724886618811233929995490812126109991660898915892570813530882752097191888635119703803216124446051352370654885708707603137892246512252028850355161188430832468676712017322703049820539406678200042852560561735484191016591823930291766951329755599184557603009796747643286101204477760801832766647208856958199237932559635960138406479813405320653033986689816850055131197713242423841007810405153725785488924940247995555312751072193234321639471029918611799284373679802272367632136599812933238801660937312136942807378802530006083431782018418982210093535205102046717770752421656754182824898067986276169381557609880498159292118525834462949606899376785887218243967076897408600242149990644422589147632086516409766410310365171862501128702458862644976946610462270874583537036462528211735782397273530428893081402448114851272494033700308169440859316888680893982977873755004875898639602389299469320543556194109405008262652614489517358270291234972698353752444798858188360589979771143761689171285588626809519258891891425710936133173034306754343811457509528968027247449866785695499175238174589555156087678131875523626085516058330067117391947970701775732708770432806634100004936491060178456468619558770692722728538883769154259877138861981546000469957571424672509339721974096017415437245048853011613019857308545827274152901456876364558646995665192026777347825244946700461017117786286430740173814820387182622652857975605534109941139818583311892635167692081659076532129441359178591713308521211369410011762425028793574182522625830451546312628637423498192673443209507390827539184100541535215632778356442285222169021774910488033671129991616016576217438413281283273118320845680250355872300201790136713739086611005832033404227391586986952431800274518063831915262094704448141473882013643702947484166851569991206543659654718483588386910378392441160845211243984627742912438010972068614490741656622683192495958532003887751840118545315349787768299096719583169255012052624316914392007680291185733736876342548072564994771048243030709115908922923403352724357275644298151581913371556200496808389608837753283078626979622754325895882299591150036962314468918957177183164404002525196812401843470379660330973341042909306289876878085995365584775999198049075977345152602592167481355968562231630309494982064716966633628583040024881357510017212213142986745392888502927665757384623539475037977819871957229361335346002545819744733029466441688875531570946409603605425086890609567893479659380250568451066010191275914687732339125641885336402322834918282864735422230031385650234917325891921603514931828184393194520822372185478897614497080444830916376256217730668163624027996591127933065886666709443873524226523875700922233623660236476542380820627109488142082670835249361622068367409764175698874566598401140317225183664875422288310916528050783246547369824787727738445268865238835947710896504418849485924763227066440315946301532629405226396553531808439088546704735944155415907239327907062566079592010488619961554144266527397670294845943428747102375904050805597893103827544391596866404394016033280244554819492174696354715683251348597055861444290826584710878638876466015474842229457544908939797635391960941830355646333834607342972964495792157292190390262534606079351101217205515532124112239083637905785735158571883521526544140001830274092421947366073629845593477709102533372133612698205171138428822403096709277193062276575536663011288510414094857113788825328137394495669589802727851065259510427132332688806067851726658150980541224023738697767086372718768887938555129026083181377612369423160534999133871639353054893248778680607862167745183833413989648259373514758900047985940851001421036004080432492840749918054872515017353008715937845494593775010927342683256410598126616436325032685620043234000006882817039299245381368644097282155821900386790017165122677594882516597362122745640153647537327911982494396351952044710485375171639119595947637918826489407559356871163986935879118548566018540277065407953659900848014667944329903983716658116835797737121702151740918632655488203073029089514086514926240887289454267144172723763043675905826001885890446446356207702781219913016976045781032909751016377037289286671114064298484552657238500129376719225215052801728478799304489396666269866176886909915148881505248359622803033986827770861664513982958365431104094354115898435649579425011403569468607038991093237093481292035745058441164202833441139509416870078829726139597241594803598083995907767254019525961122361562696778568807906010907785129824990734265752152366719023916183680827832954432905611118903736714318971625860401573664260243587147749657421987363101417780222987718751472845167132960606921386425165344345618513584686258988469879057375910913618957290964603767297078389319524103994832823296452118822666943129288233541917330464552897979609482413452121306300116839984754107011605339935825806706368173893208211717146547663842052009813093878859503964730770614409151511501923106513829342114926148423420226965322481159656298023825417282213483359222279946797869762153022010144183378016990133450182381182327988106958609838270552839327889775080924033306930172465687824998809668127803216372447944162625616691913950900028314517158795976479255856941544082249643654252340430284153679916800137211897635621945468181366588728429442110758880007378655121181080094397621933507930139608600057405665087992423996785599870602735165036071808231488286947215508668399948827928408098366316826780848245864288766857111300660777624179237513829382338816621005862965100468854320092444872622397786502426844154272214920512009931724574213128755652269609934190469722765512398558631573636230162231918719207562510948703723097025559656745327400824971791591762169205191442306614499751602724777733254539777652636439780757285714145131369925347464788335747663670760815100480295002270176125225138267235909346867243681407163020061582346565535639146183199466703593909889229226056961756354686694474982491105586753051638703708719835435707947681627886756241048877524089681259953656701207469460935086414047696550435452219218051679390858761715357277603737078185346800434399774731612979138775896407565305177728312557121821351875432796500021903089655355523455560681939532322794550911299208269104065611527782593754757289144743452176573822965103133794464012445303882067051771223965537951638946095660473506586019577181913288109708095336130406324284222335236230436070897547303133471744662745093657141013731212396167239658916395478341808878500181577965274182080683595813100541452665821819124521191641444216113737031657489955629661580908257288885074884039979925336547921192321414121703476982571261690426913424611198148801841613280841231466033452535135994152578941214538879220962742347476069704525506115568974469197384853932647561807712783095231240660741124304911921720653256603089264204148661958811911821595775688478699973696135215667877384911635221739951590124390315835740088041153449787983511383118840705208847977057036657283728759009241115675076537839585986979212624801358129625481155473840257130790382489507645949198222925289696257416730385655627128606099338829070907583531015433116745044592962495164302010768651022446167782687749926686764317613064141294375510568676501644220600931536147610387385837282749137378964472627003412817823420842628494845572687076291129707262625454805953524234930821136560774029466815117552231156640329018044165571060108702752568250781950401564990754298025675326318990833265106928906499788481095236511495783808416609604426888436121598338991654331492722892669086142250017477472370631617575150368704682608812116111147418286928671727028787857997577766238672581691398167513524999300690668694267018900258881358375930863293798897748899714293076827788136968801684505475680659143967305021245430147895544875396627444970034890400677773374568682412798260625808855871361094284925051733558334955766723624745868170533332015431698650215205422411105354671038656914093785924171159286684486682496476241502127736818101368202853912880170289994082690827548280773095771436504454719028892814297328520568096996354131946882743873709480294237530759888165511395395665485473499751659497053885111136864063333083725134003135973851994751757398009772664285861449769167048683376931533298267662485535002341534977963753507977914833817313303577899401128238703884762118082704307351593715203025093494565176801393075163968577893425922109716576423558751382829674444380923399356621516000952215283372736224505248333291470721341699868721954850095996593612352463805047569555095471930479287395029659288511350598521880801324830104106127199437279538263798388346040930817502777685903093417615884751125378627312546563189623206995095336212454801197817488147615903068285462590759184985673253096985952512858388195821098967626156069849914540750202413492313079987208924243571807404377033781356223280707123385670978236503580401371053019117441778924569793964505169949028443157731109008523187289960760053455339025798531477199492155074312651559614370529779292232327434345087147872917834547876563781744478393479572049563130679981930870489755445328844710620460001503443739539267849583125746610372794482563011902086634312016413471409720981447910344797455400230933116445272089072615902476110071185823897114476865414768127547182571054280711310149706928722853781930650845740577432427666989989520760313661926948576026754376841723408103452428206014635230478410285011682562779459684417404621747954691045459265173439030724904203220904063859633329916266787354295451031828718689702924099810372973857886361901754557940624825331836026525178804164115538161136244521773885873771015763252531550566031993657853241594825910907408882851410126886914221628606625455697655066780328941233961154778524000490398033151914821121638794443205572014062830099540225645321611678132599886235943736022693378815261989056594599895879714772454043768312466560450276251730317391600462530248531492443511593054662482116921255292705062748948247819078748635142149669958380538840316434412508894508193090881721263604213691814397882059673910514941305015049099570840476593328383826232311539039018353754194571376806526986442792048521366548204682197693538234985313372114012959038429252435643553970280206594942757479668442809144380936671490643123889724992109487732188516509080263464560679164196429409182076088455765204017981181963225623996522857321711991804159015732149999301755055893116441226736925246465015273609066641057677813142100823748294086476171078425512166237755918538740391895202102218810127914451419801780731837006730010083546246486346970512086619241573458339731516480353682728784135253437451776978901989771694131894467545044240065946590509496053932420426605617053730246138827310969140994723877463925430110805110365443713855176318453700784069160780345941182793441459407149233829281941571796441598443161843724987313216390489838076794053492624970784212403702810232032373073305791515446438738614579138210145673971368530020934372540845108878768895162236997944606561841325808470167141824216644117894274881842621686143333250432282628397331604879427536909989934040945638079906383255987962940161552245251430809439430065802478483298715119001432029125416360369283784024430949674643457696823107300289803931309664831164090797321901180154774446564077789551423199824227928487257185816167270232758902468423473779749858397050856421983184312395454864531537861370275111358424803690116041377594777086092480835307472230758635631222617237902413936648357677400909066960448064338587797047913879705602029945475010175381696272588866890252122295350174823266475144572845071856288413537261635193762103281283104211724378691945960990320098978367902590375060506278416998957098751019446447431183405995549947874518828143931115822189967774832414364102181195791782061188189647148346254700167859060961593530509481513439431804747086586242523093797127455978066041968404852788954028557251895365474103823669681363677855137095581917808359790848657330730644985167073061360243546129267263899780785293667198281569579909668859870836693095453439751960060512302336714445913591078602673893231576472474964802301976367962195179146089373165481331337937302255057401182425343581744498359235314048630642262027869818140481259753407817583634934725456237733706676669233826022932726677038023498859773618911558200479099336856592726621106941598090470516903442280162783324413804577563448834071650608296034871144345139980186732330340827599650306110110428919215533540475280101983019433341342965682341616488475124347411091274763300241089066103903730436880031437706435406373103616516277517431303869614672391384751854058421683781690344384061130264949909403286231502947978969916943738297877853251780989300265085277369175625619399518594508620570735448768565122708008209711725412428253481364596876299619490067565486796600796033407296068247683097616314638163643127013085209422329062903620320180918586191109302189404213408590961055160282749818700527111838206350088728569820920682224476172775239647081262647180456898491075947244261800948489107963428020360637497857064644257591209679774230630939191544696541096570063245181490250104824830715290486053148573840506823411005018959606569869973162573560379740952940043589669716087235683659133938764752026175053355793612548997280399075593358544087292188832492926440656698851390435765552131819622628523033312359876477249644640874393158438274981553084929324039185379055770601864632263967397179295662787197008484322647393848530240063828193199113451574891296851904965827001442751600946782730370160064733522482595174940773467095276711546846487010213565050384551809248088144911330290448557759662753084354717976557816764917789062381690559152133790739608796365116760018164196824691617609532652571627870035037432310622065278931834698300772570527072197629489102765427002041043285864322589015740863450639133988585904538022024510240035613432759844537612233747352839075948573969009235591789433964784855179171660300110175041948069871409569697518685604807566213120748530455639278733947522541885109817433030076471220011283810857607270739034950201883156636257043189448737946443998768949969316770205936223150358903240331825951749966043333113644674970915957428968859740965389330237516937429662381222709075790170730804341723938456794097228399611775300254417182655486948862875958036673360245630665979445262029334645534940371054678713579625255487285682233210658605966429888627036983554789116479296282824172001593973841634377117997668355193217358775252695975415873835937928707139695375902010675845014599641361254379753664666953960552794235935407295770290350135067212786995977696639820400403039769602762531500704766519012789980103507182765387067054690554508250754494753357830569918375724918689417302807714443597046233435326096926653284453873850171051666630044024249575165604402256651916076631895222108705280720686738972387819302169430049296157536489818534302841371943464943704520103713372029936770157525043555383015590779482985866419198171705123732786117458151550117025801126230114232289334127150730422417146026475973732746482378949866628559802675183766022231739464087871381383776189736890221127543261044900198607729061056363879284365102898555813277960725635980757663498583087315760074962954577277038997636080431097654037599969805107568766772950133879587499352085835748065432914507594372806669961396695102088275363687635567452778010501133237813763167893293905490555060523679127081531732442045270840443954332254030054247043662858147822816523340396651231119461712718479081385200375255991904089190630692668046408288792718184620944193525993675137747452406612748329428274381339146945961156287297203222136900720528380130279462216363899057328066978006970624041908550632406359450620946248440843957769309585338660543932223859218201423083381852618614247837874543093535695832871568212881412101270583993348163583934758511369961197287153341521462963804660299582673289100192645439354538636187236586506326173198013742154089722796904375800307133318347177688238316177872367676983436156714775753951385721433805522226560104334201420279231367432093544101896162986430423368238286051571042289782362025065307497772669810137987246018024065387115083208518173840947586600911496948517611436486563479543850478501414567999837648284731059138769401010618909375896409123859948057502834518885277470159620466552863566659257866928978128833934871944978734682764858855248076984156413315907151208433412462274008634945185266268311145522007420928654150894595390596053685656976504146393973960611680793968450471715668751074761852828021521173084720259294036508825032796096683231862631742627031043091375533061437963128386233159811057142565420646582167703451512999814318816433550421995875931747083293390303111031136508553509675116142470833429913241253541528459029309873811986183266412143395104617645116574425430503629606391058585888274929802259361182257853545820480737251802045330936117054583274848489063448745356885194719444313781372743464685348696114537505045546455330160936093153601816437701495693755098308058605542945986558827730202113525419962322368027086801202935979397763232384797495500941542767198297875615906059085951751203157824405467554308693488450097308198123405744553656916172175196456100360944813540490545008547976039176933523900949032973012956229053889088692355407498220436472025016246308057351230131906273122582900508803729079055097049494813498750491863215777653776926217320988927429961580138217537620934586663365582334759729411029543861381239305507627696644021870487360856743646355224019608603303655146570166819216318450168964170472641426731179173006175460554142646055498729092094314257388233451595371832083605797743393259322882697191932528832736684763062395637093846819928525505462810137119322725896906785662561647832298669326737111542144377173434108989349621444642146077215164543744104347522684835568331565301181832685993941657220210445326912535467862339184312864828220139500439187650775599295631730255910178401970637544054122741533559343756584697032851098301613766372193246534578530355497293339093063527622695462815025041136535741103634009395186314462229306368443656322990447094238931043529155208338813738004820300556446967959370260828170612088831148839734678004709017288308071603758704456556266120725165649144834939186570343758173485849818177760540486736905743363365228124731370627001290438794022085735149050880071884110879286472167994477871264755238080222472941429725918794686101615807965746386649886287679737378041999184699540964645886942456376421413807941096389716726514733896770324586825624353599800931518361952373064355797024983754688019842173009036449179835884473753284716796570011972947331496335520740654227796173748876307181415204584838547449821982081942960208871272886857241874981857407680957174801790102624164213474678857706721133053580164163699791301680955701330878382942239171594945189741989766598929081195666788261267455474052056452423230438339758988580711755969832373875268631700159154059533991840266132873169993132280394748477577923394135733706758879289202155016075644263730767257024145671174404911703527894300634077795848245901849169216732033054651043409188394506160308402063267785012070561097509030974817789694720880314890329950273771398729982805796965738188732891949518181333266840696812337123384078050715044441270687744468735312738973125220676180987361390434063784408248213841992349875538099480754439742323571098322931659357448590389894590103012323327772474284429969175821756786321417577904201751872207834959664086475340154179599224852460208823919476007676830692191786474933562076214127965519527393137143885710748007895080673214426709614759819491790530018369884094687585783898753812287085439069448597065368563690527810823677637077067409408169210504582124913904646297989084761729762587015471139277409145094703196361103238184715435534806427545418595365217247807737951377836991671192766825827279261085744778158965062463884561476487276194598480814635679436213569572107102518168914658357315565469538648198891219954094793040350690754060260008340038030421193221826592528516283066930869751265723635628322144063994270327839707533990267866817454945410118561201841490908624504081645028142949151345610011407066304965403990581308763646053173399516956647145430770443705553417740985113937473805353132335283705639291317051401572515221194603409562860845268656469732222895008167499744339269150920782323680338137078018162821743796395081989922987529495361949962432153895212692253371660475610760279998761712631286442613710587675145703742791992402900054414226977996111960050895005243142341149134686839299141376792235232262184874148837849536316212764030724573732307142285339471205173847339988731761615262508621662676256458531324847758494991610169505257259363618885469567467045115899213114053862248513935558079190981045538603865647851224768403865291304630173629600222734798343430513798806755643396774525955262129109768336395118533485560125972267921814243987532501971259111446619754599816472278322647236895234063955197058274484205220782158145638874524290775528932787755511259583647700690466147028116484404118858066371053763115364867380123897142374102876072548992845393004111115515052105678652222698896583338237690169485058783951357012400035447832672993455550977148924407544448536267920881669235970378293674393294479136263920535599658126298608417010092472074085120876600243293521695899938442025382711859694402641039345085423057118632282364473652810701695567848518995161442861926149564433738967834757513734506543425644008419568897054893886888093088373730144700366619896651787755146535858812356287958556315980790208083441449734554101228164150362927449313516562779515026290738909669866007580977724896218067283062915962763661515791507972404117382787796045603979050839746962503632052309763129662670826259640800628783448324794180969629300030653870868722363188833088124813617474366026449538747723726011420079263928922084157788658120726295710186659320289310820817465287245496958096431239073286208937687900333069367148071595822764931265439283962279204818977447639126750830397989726195551861245612957769826075218755254556821413128832959541802210013251375463546041933734277835672902127643200473257564050437277108785148029120889217301175787982316176749086437221404867815504733983171922437502124466222445970059192139120120989132821967456146024732408926929084712300890256517769370131675738698724407927526545924151906626790428796469084189419776295950833494644706418819334482849731317929971027346520484647272392129658350800563372345954285859821666195809764007963701301515759181493606013160286739787190931697844795365178847440368723314395296378110503167287219682537196654245032398635315296995932779973139259919079521401722777299847974602747462425817878003528168012848407335230069392549112989189129845658140589876308766816301445306114186372979435121399769052464836517987665580495378531726888133881563294252549436754769988071277328905185321804591071234920934133949815364942588852864692802158949835836274031449021286933696202925561767842504572169647731391706811564506824988029519931550632395487804327399637719620271896904237717071019132510600215945215078387660425429799375511344005124523502653213835826835707461248628596175054199092463406205959871098421665838336968796995164230575422866846984602860285518715085997101678129753251572244342467926361873256787716305249547838807120636245413493631305604726504455006687896230142484205845396742860136368851877216933955303214056040694518358092834484729185812266711944947649762217978591426380507924551482859659398430589682088605815456188497633030634607764601363058523605159996351006309432736888686612605748318767767330387294779202779680388753023698047449750139078148083302337433877904915807434777423011639357526979810448321932241612060306139994519797559352397639167037824839804268061115615991706458639141485255966481153423792169166651538607481458108595909851670555871212600696618630247547887760573072116572151658071037244788723962420349859605043638632676891807166613077948169211437618121967758084357236245068678875806993564273899281915928651169351512656053083963259807040377970758370674381610844888767589250649103144036959314791955323219937309378240669941088058987672709884105260485448572341008301336723268128765856651050191663168571999821266824036615950017576187539188339039503087398770341780552444899789458946733197051494326302223435899787051088076914346293304221279155949887584406669881611826517361784703981719486283716615415147092240785046032752396898379337982298016642585488298645822402441852917798035505964440647232495882671229523279194560195537648446875278011969935879257908782394490833690690761778956455214117478461271854513119764890373872600874271668743406409823599245587552944676872545255943451481648584118609799623811009898200355716333327920808164391515972209812867793271188239190205530859548858176384508197185665408329322081438271224962821831314616492497478860151642142872548193819596162199110512137291098125730847238274628555237792276879246626319349544382404114784072054679735924148759150357703910457827145194219477530515076213506446514533761828849800522844263084923511336826804929986042772236628175921412231205124962226937421544943435041864225218198584945000147063087581632475612680577559256445466589523427766517660848934404764571147365654055995324601101318562742969020376943805659806719726252292570843092949641864605226602767508874855377565479290185379178110210671025839020150826676333120790145018900727544574224004468278636997050888271936852003321442066331263055730227189131316059092467657596030419957497960145117282469476392250888895704571138962523654614026113159918350212247052764400026567289576575914533325119038035990589257315183696084045344263463634738444466418127877727562432374213329828342235397213459970057747655684279811192142749747365016731234962420101867812767554957939583860865765276563897528614235383553026051814330857922365824394079378285482462429632693149314140424760222484425344948010241980295863478402120575900470544313894890284734379700384199998489901096545549963628110222832683877689238826315525689850943933129726932041176736625166757550247450679275528209604505110357217080631227205629666155335465644724457831703118052093716985005709416917338529521762585370694235506812714914380351492626874775618641025361944347821468863146515499303971094104871603863772592673701764520617186617383160203376828990880816260817234251113228854030316114850923957401507451644060112631550016714133309097481161286858997863527302245280328620025907801236347254665052135123904884699763089518288419490449266790270212746664244181828181742656408579158021672967194265813064067408805936599569468342312202200429786346871306715105469485767643661170481782496501630138646462434332607599691024840726877783631820592350431021474343424714973165470232143309688859777953333025513682953525305256948426664357656686737738983673778300374480903436656758741227413163277024792843856435992193671126811769914016702398876698812544118393413452285627021106389698555310948107869875795920063382480225541356347965740984776800669491663964045601768183006432381469087814290272676481442206092414777885964264902996699659476955890232573813558996915116744415784916260526218580998066254023818186119443281712559440572333966822355271798088667310590174546801930452186940525305365674970964176778881557316315775490607364953040798082731068453119117926089412678550155747817860021935274671684782113174744113559591446856199557564623393076174908755941153079055433426147532312185776769088397444922549782757518079012882206019103124490865589756532929307483002773123785460149095630267587829242549227974343335932323624895981497020026152922968644540951674673230455473780672494511936864215092569190797761718768877168219835726253693388587840587122571897235047999545751229880995534038867707582902501758901323995418819724437546802961396433552793339852505923894316437157365414916372824715642638733968562834811544137835404121321939597065101139532847298186029648504506671924297346056630160766864645084205527856855681092134636162356476007187524544360529069253945323806259312752284084025354440246993395580982814024885726829365767004314986271025490231063700313898047475029116052792059734607457726970085833911378367391980949888081421665114205414176291576836151035842208118162936239818025279384969144418309897254124573386384201901645670628697938602398995728952959052448320028388652163235081984268464241351787417748254533911375266371962627552823597958390514515137892570070071151836248459741042791922243626044021190633502303263036551732990917660154510418592250010868891726909089786669980187473182139950318195997349126239434079722924678949218618188753517971897182808250210747164898814829808113214745754066513373007239531845462040015227911180986670397727294445722790320113443677841123332116936265602136463821582677750461154684169408934397009454936791376629417452132572596952720196318253160208330363969568555917825783115371482468423225049347760168460380926283081453300653109690091071287046835763690827735556516357783276094276494749225307503070613306484462535888704117610577673129897130003160163801058152747948439305952764294579205693807167849598545532065509490182404144750754877628413756461047303007633813348661129008012091974577795459721442430011930035021145996782584794474805311868644168026228099911449398626474896751193595361424471845640240840792822112210993905839219134373472752635436401466176422683794942687481209166308773286867881008817897819695575016942045488281168040772854088566922773430742534002913960738718799127894386839422863446598536554929448425596312226180267119701619797550237626316965697088361712590844861924666192524780046744331308438013580959946135405986829008342268223068525667601460655582308791530316290303216119482788630838543304520890694161002290890024032397473055463886168920463016566757496858587531346375004602552266834339780574029352983172043052319586819153766068372749063503275902056096419607772771378172482015403385357231400072761455435850258519077413674891681486215020709367398877523931703452635944797706040352727128559423625461431607018096135103129893929524081679270136736006732302988638391138950482656089587130410613576291035410415212661453697879175431113770957228539563834806088741542912063995670554965013400800261763710161326156784319644936746779014102577975536023994267515180240640965636253804535633670750943437218107655113437357669105742299156942728122974062741741980633774048601256515040760034899084053666583534143347772489561740993886186847318359182406871934411366446932984584283485971308138235997062056307762108380173562063051149328215556115450515935425269696482069446394435622535809661380820456083549440396983158592243058997138002523724457472803398165898498386743750396994711417575797034639464292292239375455384874888561866777505377338570505853804627062285131061455063526664656184219476286493665222491764655832259428524338033299301414668714847238531324772956469805322465350800069718104753684556550509707559965648466216320527214544209573838850079268378882422588374498089164559876108465165562891132470249379964174069829591263100007399084435910864568566124260786191027576394310932064183527360969386877416798521560150107261640854764347156775002864374038071065836267738934409912552432112159200149434651024455385466995114134939750480577547683819100537677166949168507453690579384043165040770970679066060503580201128351101867116756391876705903827070524256539730757779314975923670910447133580245803911094729010299635093396057871633036393738645734317223665345586706081638722559812557491606194169210488180967905555747149433701118692127565265840480110130630515198567983982949909162149130288747116597044332461134914913595333033397015594737897791056370480742216907850331432374696858500433551693514195968331260385842684691421859371081799245151505908788766136257129327074065294141781715134283842584237399114137620271911572230518582607284458026038373926076553866205244731384564018848794752255524706685712938076843723725852080713570417818179284200377576645346190721563000746357959075673495655010708622043523396627986962800035000451475366934065058047548464963480116287465557413063664334166865457302436128716383152060002346537872320335816990541134502022042100553697857858231528618618626694223384353375086022300799536982230453303865363596081902206650555217628663160069785931216409079085878409132257223266871848472995472010526665788153893519143610480753910931775906017402778668728768365193176335175156015185132947286978713370339551527922430905378093647663049764806617306058467318220875155420414079617218149410134555965427615661100742624760776855866912854921605809022732448385970348892930658550788212818833396799282744078402071875280013202582102926828738639556496765198752574082931208238877218156829553424600007579228014823038194726137091841729284564802664684326413760266884398829265568847427284201708027290841780598067214114657583602625124856779744813420311848425751897366812071561553572932150982162838102575872065474886908394668139277574115156881920952491098064402465218797350456592349374380761209089099743148468785600582965041441161186742898414942076225765696083098703323577447751802228472389435457013530233922555714997632051925101439885033923541897517478344537579024050210121407116590470935373930435973438679161046041097327399219901447535260862238859672117814695107706383178280179782941447549713784864570256148993501067037342527180877247676518646897382323495681718151188168975355695238098488737293822561351540235042200661573829203863961173847169365779849104423575117537236177876954274926835863415500821856065460928498194716380757208837650382357793217460724859263615414110795829772219148879691644046571838993441228988354170316566386447003873526257371779334498596367331713052349967939712526633954082476312886132816971350773613898511599906785752745132592667006587798315917305181691162995332077788197183299903365901453341359165868167632838235476061819497611347355379715788357379213614709625563032012770951158054995025872581101402689793746920825023576536294629377323380191834765058066404855725305598893409025888673790683059488490205234857283679108096328668284657055041963831061984137511297943868778048923637207139084910012713244798981547199881015581133508782147126668957541200311221933038890767006764817618348398594784108632092673031095681269502561943035909684340517689424915351291976558328025437680279116088255880418401428591618690265221032056326054368373276948023489311994489571874845795483699315669587500541526160145928378719588916433280021805162001824982655235910120255596557619611436622597968989159967787258955650806212716266435842477271364763807429702642842893741274530269616988671414251600244813969591885056601216802844573923295861430962956131115659679642845959514274995101560670761461269942194441561108486484424683485387494023238287361527330088838656033836378035560138064438620015108988830618548785510526106813647216506669635234287499392226184234419351947807718915821560181806950211614936386753381062495429246795743183117959498174456227909415742825113679997473976432407517614752269715000471663511972828286344150188257815076280483610306274450269268319895870788214376761111966908463837633673448906798117065766356220593837828737911605596869022278295520657723295271804894901808139965679672913854400479772085234112487267899576681478738225168451747094631546714644578477450532190431941943828355652897984655324735925842232762975172162248774424388643752505730349496699162555041035045928976855480550537463914943563832412887715994269167071609833268190010986554772575716089092081421055039408367205053843578237106208688348688306094534284242790416793705997401051415210171430508116546416198030316236628278503805618936223420891122224435045188014886008571562265885165056798543351249820592438166472047375535536635859050885026670036267780796188469707568875320225450605230463433473561423024464960476990239819658818775319942838290236507023169480568226532339858403280239340293290025746163192427374505785402595338617353362112656137428418347779558565142401111446649472121588206687604039327931842892168330925768362963952765854144497239787496476937471122739496523816776383958197904297446710518368077526579879394159803843910678170535924282914147781125242900923464984582405464914923141464005567129945185994671988134539962200263537519201688511088974108471845473630335474283481815824229654538314522565404527523342862688255642309240035894197727952056619461891938467099604129156686586571366489373432154999813783976243677622969165138840549241535856416081989380241957635629345982878910574222973223595379608368171541521325248288328034169796410459105220278805511839209885512193424628137046795244342989816939682597383841941459966916022249803680479185094775719827019365907421526927759395155964188924528414167155538612079272405712399524253761983167415958983433672356859474536345525142364397411371678220482095339916008196047081052768595658788518813512890857878515725609176924781664763032503509595739923403841015901485770147953867320463260981666140425429052723024158609825329046119419381166354231136255681385584378878337669161307457092603215628444078110084573456383369922803504511920834949255342291475555499084928059315929432170741832572650274373744459118450476758867843154029808995363590491687269279897147234255390085639989297151388734159537778833826255600280091179359892428658633616266653807268569816198793361954310315154575815567638222241279066542524964498377529443711321048555519245876977297068367808133734449272397053623418390547650833521879328212336370112603847470950170108343473150420617678827423766697473009598396800478673445895800273096191021342420932051372719778876343017524125993467983986953100290686643819271962743850140536876682831810780605252547066719840672497744254115116587011396159497163867537227842003773232974219746539752234829608460642911033883289791098603517332912391753931620954628325461143638346947352537660474982686570832675403786832372934019695002578602902546282987236348897759644946815958305904292380002037079940312352755291975208756822325412780769745825939256797805955534629237318332820637620311477839794028592759617149801378452410350041199076218784999048335754921163526687928768247175129488925996079603105335118884000181661940393300900623126706297221675686754224071456378845526066184494038802725500197251210756561752716641315409316684764253504648148322729691587589575338279244826133348453251492064667284952467109047975551794573374353373383053117939216216445383821243164052086466427670104434240620250381150070364172740713311149343705440303415009610312495571891765516565267649531596197315116075112722921591965105903722023494047577266434768119292118112882547457308847042680778497898262646769506835708471863693903051830395771448812877386872546210360378054993875421294637796650828649816599438892272820960455909202205825765283558686146715139682017561554011141602588479408185789572606681880302425090449677151656882856467085504563226457987890375400183972416692261022292763520437858240213069000136177323597307203005667694886727641802058352135082247949744522690996625975382303344999135935641770615552079392917879328284621779684197585973412937596247804076257391945074881602551711085975609045839945442593235299982743224851863205875820823908411464213363712583531955700413182249687063401754794056110087604875382726856927685219170993933187912765898451378350426440867679142202080477294922157693821944420868894125933857774772909843599957143006568401503848540783548809355020602568735177406510176733868867995790980679105808136018229501996983959491679877021339571101323737526134777071034483153204468186216975185603073993914622663670720148402799670631922292790898792723823051812701764105614812189444546181646621612313960364993775182235326483356175506602241673242593213727899616295827662400896979811761568599711786961114144554072752957500016276625286614777269752632426955090198590642954152292401807316361797211885877294794287192950322312886548020180214556187669338335756505478482309366919507297810688415799294571380454342089693670448437544126754350978335488031028295513727233939433621053187762659541080907131536657580122351793400205472812413932451780766795822345765628916104822000396616517930702256959544203698249838409021112540224275366375275295299550882284054547239010797838498908278824523882668939157366787124763970147026077874249861633812389924797225151063771397204137183518137419555770499741334387258513185740274980641968723451899208550636085394096388045764085208770778058094473300871423740372243095844279558119918572128264611639371676804987345387842289318217234401398758063336563120127215624915006245391348415457718825326754293083512490723359272452842577007269068373400144614725827903063168209138917496918571195775603746046612873253817172104752876699935390216490946593510584386323400778491299404838701692828593414791075685923135866493547294780804106788942946276817840953671380197115987233901665002027656690543322304091231804227893741187620333830940414780446689639816974488082624179897762195768669139859426691661043681034511388605817178563558667946833900568391340355361546084398204209952912183390012037878717178729106972933454701385966381072769280824260923131360279992377466317682775146717888346140479121764853953982580380797105223793408506384137669068256071879132892703645945697050870336033143239085531726798786298460218538778720355236991342173125216816631393627340112243500679825016613773804434159641894306723271805923839451280974067317900570495508174884166153602458618384134055349925175011326956567445531774794597120149377286319960857869819980051419736312189152548357687555024298275011596286296219187766930876498859006542164352888999653674263503298924488911764344914698679090219884088657630041437297404710696251052547274009593170652819539947366703376448853275523312028643009485588109680235694287568397015540353868041227958052697748040317958797676410284580840195148541384115288982157062079252845459162664114572208892744914501315434933243240290698596043493637407069586695511180565771640569942957702771688680971358823816568223077651712500066405609996910778208200834445991952906958345308928820814593146926250256734731822721627792969918163987302187557320295826145021325477619864286251382444624566997781746909551380957618687665879351241919666393650383693145325748948551432181380506127665311578090879820441339599728111742283883811417076994138669339954742530600301964378245797093035809616389227915296893334444140690302286341561599725864172337445556361009648646053428798489041792616703295527001884968700705710959897740806720371533204113379800189497300588263920669419200208368551736251970291128431996075160963642451425086959350449677037235717292241673761210971936870228207839805354963269468068218643006025753865635784239185451548192938127244289845687746123405408376707866359483007273504715260351523719549186463013057757372521812696154034836515542286107253905181792263324756473006991321814496922629194799536351355057304551942806616721979244957533018802505541898847774916056025702389760035139549016962008339109185506661729016794755394762144699074497654964652788914976828696815048353778655898857814916039165235795180268510335793933967462684829264765613013553605037640887738240769214052267447599732745690834412048806427279618978381807147277942433698194307206053803503712011996514305616130223073348766257554525999310128961641721715141429671629939198554360498091656844934266011036177568819262988443581783083294752422482110685946355565563050054140502083318333299757863007456934534579719304222071795168983032488378637255889802621273383464337708056160795421000434012644279586482203097633892244811553316895055589922565507930327196889539094629049368805995806762164213295818840428595049252300066161597163723238783234493541808934391953789723279075507920509634758359568685681310535791350146161513023769558251874192666406342505630640740703976955748616271087336337647157592157046941418753949480593023594373455467499906693216796197269191769652606244340782693113074899600992155176429104684158570212702264322645818298670761819174787676336153070458449855837692827036149331312203941624562921510887131685369651513908652305989560155905490521846055136999199745015261166212756965733884400536168411539321472719436476291185314713968342145270582329345302939152026591371861644216858691582628181768897715127488666113183522576233596447178069231841497351805754290389108824212352341001007884119237082804115039368922666224919425481877959835105735514213294891055789482919735454195885135029093869659694563684569825818431645225192912753561070438961922123159696485993410136898029385708888982856036595051140093775265904749776913215138509958610356989508470116571415574040888202699166325278112572086257457838263142329962125791054428489854789172638283785615645882811964537818304736179839635401382916279597444871842451659332547094292262544237224976135315029109468191803086946724267251899828001875425862898719163579792152614827641632677988853338388510339583986576698482371396781283008177462815004257278883753259815344664627085558080551748027537425530223553528395144927900793880311477921087549304788337077701950326742291554180208139436354820469709489192003567665182651922852497509870241893367938125298045232266264374068949911930765928228537482353693596708639870543605887284625951850759835879846773044957689838937594991320543980625972953903239145675972987708026590016054585606541988542335690127004432000217316393672620163131377857115300329357230000560264357769887490901288788519845348302992888385485936324872625642869758282017786676326621802784160538170485030453418419701614404919401014666969447076096833737901493608608966820764199851757733271649720607252948568966019498742977374992439479401733854708960317024262129150449694430393115104594090299904749444752055387015753667174244876149744236845194725033193856498341212266868979360870947062655220184729766853751676512196561140401078558290495650512370739755338958556324815536588744980018587372482240418146070506874363623693137293895425495834743031689730111081976838126688205408234946355665221917689719049889360748920060929795972939764949851576827162340499419059506092252768175011675144339800681713548129854120468560291380422645727721382793650972891582327923489999270632713689373869268121493290979656429983427421516815821446379832406910070776154729895152693831332893514393469017339463425650530844453578828428731199220646575638478745286351503089132666827145366266215125910700496943141723300070963433096610368790695884878849599946017240739790560777204312392781576125554620637830678482823614404419878763803960746477728280003470001496478077428807177334636173143997419599247328916529919596248627593493826819085878354712209711628565192395749012468935470381165237008101994441334837740909579487448927061981680544732799747330426359307847560556357963797722758974788873518303551136648407510068573064728322564947412901090789814623819077443692867245510148818947957804920876561362106361710530570343735032210380214787181411966879865656136253616599168405591431880013605423274985676378059954581722857672238380403851528961269668190519333770150306068735805143614272338132975136812593489952614929098940680245988678806494415593306043204729201817764544071669978341890954090081277885295518711480094169539007896458010326430562362167901033971836003202350064391307927232199532053932758806439162275323930954243239132398920508048438409595408843268546676440818453868993679057324935001373596161497024619044650713674253218356138809932878114019490845281407230842981156326257812352547328187311297144262378942498781836526226356150751294506138039857539598775775537928883253557859711047752668574589661023633931738987433967465714902404980343310728857630977174753513877131655867903019829380397764779022267214227232680433989206488238229513197536972470858025512783194235348485682852088380059026256081417049291703006664096561035116941710669693881150071891031192040107240131936518382154234010032460472016977293684796235360824896080596413237850393848494408888242904230171282683951526392998097154169582553626936752314734465440304912500551382863877915181648146670375597463305980398518902138446248969897813699313162008530749747305222764129213987595591287830368390225443818668679630243687311024692388773611493934093659047094326059428069497422125756736897199307375855403286852590827680384157103845796262941381485494984399491935701916713480237022548076722417587764960892283513193897765352992990130282364889900988085875789568296608881186205465164109138615499962690233508160860510982970761360200761270228693167784471556502162731727999568601142907745097675197150865566418884523161401713680625349735748370349537399339106412541686189008249638036522446617584854604179021126564873420354917952962041201007590353235734548773238051021157819377385483793864003070151409241144879434796871108519349790610379108143825319135175367753633371580900294111860914376392657764659408470787083694362927126481047010754229411060011065137970659760517178063092342268075075944024128355595534166899709033298503204675258680736842563197996284645880240676836972124226341659028782562964679160124768612790775709218963234391421090199221450349003055497259382681351982655175373826041719393479648691020949771747071780411109428407973465382207727460544915542403424081379262025071108968078799079737342963324622556172841445322406555091168324130855651977570123572806426641179213306965438676889277506002521511314458332854702193763995322913662217794898371955993172504686906923201834631395562360962640383460875460371635739043951969300630638117377939634580393924738625441706848325613934004802600955564823448852925659672702761603994227624887855604243896072551048966580549910969890087824047398610943519653544858278198728862816683457857057352255614638747287034311964553217634655743653087397978036690913585452121749197118398778513219408437842586423538143080645227446773438886397201757988940617244843745324871069949074101623297997874690770444963669600810287945202450427995266411859804657013622576396508075954533605212547613177068795868003366541349743028979575094925895261333346337834825373247662721979849735051567774098827409223192272587482924324072713159021199513963285566002454850736891676617688692830606740487817249193980439776025836646928549226052517374930894227937064620865780850005136010591146140126557255334116155199558669931786379252289234716578551783824748865564641844744404727725279156486861159630159099288825143223488538830347832738714951632614052134832512713770097624710353873722698261613487353075932428422466725957670187966488251443507668819390817568049763251677457131182218889188900575646493568170575441552510774695907887805187788067395216247456979398131228693295493773276809527021647025492583816529842615139174233633592085652908887712631450688691641488616555557846722507792049307915162671536757650329544418498302031137552468008299128373309345815280007024472799644025671748521570144959440363517713402790808173422753263325727661347461264182177253637906914079461634954173707925847753938723072825390187557940777658215824014894328714410076875520351502171837366547962778672291602350272322129330878571445805218224911744617411672800509605097578184878309333530473394963204852116847974804860663404207055334050697651868425687685602510494157314463088439707273749419224329131720665864844462746081768968299418156603846381652360514566600073295213987356849277830103642108342396851319623437550329491774448849796857203395478834792565299415833299624683005605383273552608254087446652296988682226159382086676661366646552135344582183222122212996803161030802511334424138343253190699157300732113428695894263378944574743305159503988314421279820160764643273908937837640893141831386190895925084270830935803310982753271892446403573704431338367568521769063303911431803754095190802698760929242680841802659961212282505135903482109036518090488093904592066139512867043266731394745534412731526461576274888379160642339401497095303198469513563352839773105733428698611052600220049770094081112928729358121739685724712525776366234335990496242075569748802414110417086839507362209891588048489755508142522395375356677427421056183779149942784087628585310973209931639876978564699308795661070741113116317022977333158586932185205334643021321735246868858085423620629405297128682677090047230034092431201820988622433199533890447442444987501578414223582010847210949841181495253294670555586907873629374781730614009924351817748679091178697196206447866431405202395850460708574782605617934879046913236655742555066748533091361121931162818090669901007585546038447678572037463442152676481326928909952689041943453120851702073156772134553619689058187602407201344906664977067931333204554909409271823393650931325972472249823880066868273290741314915182921856350713948184352798297657696443855702946515764002867376897901025761168624379954618474844618972840663586718283786358328456515856277861375586906820663320691595520249291535588780639241872821468274788673558059697927088384029747764727194957318213197520857451615718000966455969003465473078165367279065662416431552675572406353889786536731531712357059287206546350419404290879564690431312710598475081262235307864160062303189409464084787098362265085605360419460509379846460874424053812828493571968256983091682963285381119253911488291685581250973988027090049442178564502454098023427263093974089747774212856632973996330584032950548788042157405475440137667051433667955535360032425021033245490674209632638992007889030100956331275722460884314519402453183426092483224241049391495389831613727757089031646002949744941595806661380889045255685096782579304453795088695741473963404351052220197823844985059340540731750384342595543448709771744027683231998080821911988540457216403079566149186837433058384977628168748034018315440521932057888482518814930665153336664726911926642195675156241098921766579175189954475596795585226747852090151558031063301543810984926734440207242918457652792813128536141638117732816960567097316348953465314949466144146692894629737594968785187103860323931591547767752748347211415501493557318049496526528402499889042581300086455648520873959173655532139285030110051878263754982924310193893649636776298785885131595325820636048031565810382873363217485098670559975608215766854790294734622134838605420477842691068552979382319063138464224078868767408083795527373808830552126616487239422342097523213666992106972977839021105287888906024121448249542775954491483848867700148926393968403085914053892676941031274866062722610193539358617541974086391846364864225267527889413412386059212440135575244692039118034049328795894175633417564672436913976667905201012820974206686600491593871381979084847716423096771573911526373236515639974183401571424002552132922782480884375832738567484409888415656182929153978644413627922172060085215353666709057505516818774603041556871484717213096959026988322707524623349826567299289338466968493292150194012306521757185191753652097522669733795461023738883651585394442551289965273537292709498973442638328985929994234853777981686060261503828213129379785258520336043233426016653982317448436671563841487876116355995171560235625906534438057711376665807823468414763193773050255571547308146976483128585624047176945978215691351044216542810881784069973535485107088334578113098299944896569426509437116123822043824377688587524366917074995814783116528208583077468356004661551704828153942843421678926817541003850360675285390483340847611583464934961977172648762327866693801607973741515918799534986318789694735834873447078436188597135798761038893442385029531246289568176556220322718241327617994801281287270400214640963426481924410526506603451533262995505856959068584126855514260101056079698652180356205490589270273118604224049323395794224029865846977261646645212290436810321518179432490733063775403038806293710126945330092171344829577206827008323132870093557678721032193913109564230793408075199343087919708002507769733804310552880387583700416607001937595248618402937444267281631972057105415607344017163230750626968418726214372077647783482919807646879771719806292649701845712496353949489815630034264369579352321892757680807668094950821596847120577196110837413690480697779862312886680152002909879239059991910972624743286746682431503671131761581053722527294668957823689518243473585236002831121235929481571952104189540553325886845813549090622786920844926038868320586526792366390600921960877833480364027643277684725852129058309329547811851459395062687418815165865786688533560213578965165086256312413326969858170831994661999190098043480889800213982343000536974346941519168018660028478581390226344732557025427920950246603125589839571315573228838445197374837439655779573085344238985595479477538347083794837435787997217083660771523959700683520714422206662876353466908611244936975930107851864134979409936134108685101850998118647888061302998840914154678231357194976658403816952032647208722599093959457774417715874488970646956342971608316589350442860768425776204912128889589199579358165943439326545264244613369675872196995412685677777621997837366349714213333899010650471623175226561040761705147918141209983654834629484209420849012132028702868003078132415046580414508128080605375777224417698429875646321368873236915164855020696441747723297973327362706794676455152037472564569510405245040287345729717245721940843902894403371777837882475216242447856498764148737324430907555492425788395010462537893735968016626717885317652460125134540031194304607305264056711829047246592548018366271200878149452653916491172602391662358820314332507343458125481262220316480489044693031151137286931541483803411535496150625872156850989877930808689686165711947052786903374342357758330899720271385654523745886886542072550604244354213878259213127330770110235846368954279505204452257966393439092330258513615296972110520393996150072272940118466507569059373041901859751353049605889460677418677886963598129580161482167517890337081166083474558601687446863234555139200017245409188348607901335323358402068493734695830177346697591626204616342305986005946573413173032762481398125686557838558887008039201717210259941495192232258524768826962761897853117332785832496383129229476947566823821635662900390346651923474937583361719246269450308280375291200303396966758786964134074900164288981228499295969243043327956192140819665372872604978728261350918643225443538469148961133122491767587179679405984046257305544040283362436224337948681580631940567056637619928588274105121081495212515891218335941964214097372077628726768571501131703017114713826564998830567280023109357985950383950962894423055153171193909000622714204041975007008889587172814506695207826629433925093441115244970852138601825542776093239150200689553135568738949309118137306204714575227822017453480690217499066061981826873981801200929333394565530852868294248512814956199117745894372706210135021504902637380469049182417668706631454882287073695904431258416681310034780044265459108741324245354273026685304648591119316566532143015805311049491075869613228034785036027872489041200652744243104992700874949471648537734405675294276040370788246699127319250897194900439938623768354167429419060974616745791389848102756118666370517503171207042176525789420059768453011498435478243137612390145023738075637214426971509132529011992947660444995223459795569534400721499034995847245758743851000442066038531369614014098783912634234212037006042652542364632236648583921558736423475933694925688131154735254182877733264397044104273854929268095992746281970493281155504490829030856040769508926109267446362055360760892149050475160529150624469573048373287429696956460369791937267606891704831014259579109131367604595682772726578150635114609610957277572337180831484965740637514495656019965691740555261066145806358395778045740433960861780166256652043224159081569580567665280167864647620882761142549930668885958592930171423888583163705796199946073225820964883050235442210018113129410462016518900711982231179082486165110188936685061663049253724975570635222573225693110743942621314907166206170897229733974301084274580542705699812488942577955882851169154457710653749037959868203030841212646526831703151704391396625834315491388700796251926979864495721398508887646527941500664759948036418057927334650898729297417888673197754818981305502544867979816738973214977977097923304408673702188249975801944918692682276223629270236485704488207383146932605130542370331497883935840438895748573917459520627079494583309595774156609670896754430273354132635247548384663187435559016661109761255654762508533278830451580418099324163333663259108605465525213741244628448737062385445592782890613952064563845605430881845740146173906775880685902624270482667843416547381626338064149759928344379170799897397884079307990533357283578175519550962093587138571921377328543848531351844285471003950643199155363064688083553750026998099321300786372798165702652334300618445871460225548362562796538360908491135567835554071732790033261364773476408870314389055514306198922961640317896671804892748828461847106758314841255074677680911941920889093884602534578051492564493023749903133786751002409934708257517039042130032126242794969383244552643870524070813376224825894924496214263375794710184056118411617335509120496475900758306853346473732047792852694692503233719826423552735922124660416825892034008917107133047396838696002520111928183930011719833639643524922459892672348898246140778772309004006885553942212387292824589422971677804605577691734208067468266959484043644057387695218037722978769747272890566867487175902092752124024533004741309211649140056459829251811006711900376508341572270092235236614207181870019032512920290344996234588776502790436965553172049811550410335422096759933032897430087992740889797625511533518522985952633955358453797409520823064172776723498870789429566190736559025033391125439696488378142189400935717932970565072347005002228963131937397507812018097167341036505264300056514877245854515945594989578029170557718381031188255016397005002641448524707243710127831639220292601959897898072831988961421698110200594088421605132656618164178040098379869093399944911257897240582414780503757391487247346288762198033117503002143232025177749560463590221356377555547586650850641255555188612756218522391528321315287848659189528101679900705258099303580766364247352182916572316645066471445341257317126624343834720012699827197909842958380200666217122977999253082245990509252409012727107463061486436516045976350656994097661835467667145781157121848651660711750776052169904188803370599298828149595818215449222826948280705020914296529021172496417011623894069734018654474247187651158083710720824199640281497415490573978629504606503958407747009971154259563231520285431862375059705282046711734376338790615689638048979996310199269058501045295048221498258031305267814957602987414205013831659030348792103797410516249178918102444446804819220460007005111595878700922608867065294390094883518694400581140048720426391582114225742743028816351712109454825455786944728474991189715017497065129617732858855995829803676826870414651679565393372520833246510307533048195943435764612211600342654100579288035888890868946184878121557075108522410890265354317857831461109936767777437092322080498438637816822635943872441054108254099289492151123927305980417746195043859204016477618974994628892106668625464375711508927655965953313316819761381954255956108907616496850997455683990684976043194676599150407862847462776544744518538863786157431136567204837237127927915925905800690209183736312394270889247311621993706230568220351200117890157483589132729232850733763186893940450465626797123061082474496212903377154938915210665666754584557639915253347369781681709570687073082175173231217119529356829703120971834933963933193408442191793408575640576953992975692731448773936855458240134720519025888982329709887014329154687686149668263496805937736654786662772792056655204992978652331096338581411477429374719383336818318307574017258526562330959558396477603081624943534750523485589900125106718575076458288900875200674986849047811390302552198644252086318128169740657050101488173874037474447621587848880191808836238709918564556276618595993870589498467482970781506648635747295514135705352668597290596128547128895869695647878867031227579729463299424581276820372870866565172210092458113267162849617610016446952383573297271260304575729863286470287774784410053843648357654668244677649404289611027759747875552360227452943991952801727664217508235809052216963264259815901654298419178795810029606907838374120966959669538538176648655473101982528618871849354903961737103901508682349166301453767821281160681210188388398301784797299831717014694946726671232581187852899838648484069539675825292599534671450482723860300398685191624056453529541858478118136318036373274147511859753628083843995072983059282516592559439328180530654289269819435126653175651491379626013499938707596168113690958628787059584143033497350100837864769799502075819419797576725043741223728189520605574761878544950690320513545548771301297843705423982403314190770145622914908200469480811292262550605554066296342202317879507652701244195184391855159614816010283823204413959376333889563393510435807680149168589005544987369528100224413965567427109089193260783113671145343528527936291848412995559153216285681865055472142894152673557177298607459764069278418582894956777619013671087941324958892006461688375648356153802338378713814213067994583370015285270401561690011994151014258245739402135417352565906761459286827061663084022109375838412848582652307977255376494892973681366995382512602759857039471529313577193617341276744099465996682683340143638567155827408842360849360766159358840245528950508776753147452152197214952307930914992162257476093119304906351507031514343454959890670297062056947133973787610796114309228446091505256163972953909265383918977167831895301035709505237453000645615171739062194131583714819853070367784234605496896998665307290344677705110440604238034022065782268328716066941644882284419677803201343391598174722592898986153639818934731272988238675942675099568998499450238172534291596004323232429559760197045081052743081637988877486140818446049206072590881749519679162033753509644495219399619112262991408655135918719071136338633121801353344862934042685451087709919328741017133156639285207409793368774313886202758547717948163872915492978875198071621908350703596177710521296410898677606872754695069738242564179523995122289405930548916467447392869182417161298589392810513205693916065921929486712165949304353310473510686181118676149644784955272477900577671542946570429350777740741483431658542871214942927049273299399216144221944085572274000048986039220538298352716323931583441947476823860356309766858378894261774315967638989764310230099562942915681382846599232433499467818019529840486230946292114420066975575044009773404397247308734617488432097845905051277024609952133705075291254803292247117025206233676576618108858219586113281732555917197129351963673498430119216865755308743875504992842296751641250620449947958276981018673341386056063774802287668266188966031731434895182054970361388926533072597318075974370120244327733946035825524878786069405875632896156204201500544263435809883159818183463165179939771740750328505632103227784668890021175834157668079819200798739261696864030012459884748486572023123084623475055224148720542688906180346004268405495551198918335004021805855722999217982631251601498401650629758816437887817909668957953367147768008940731837383983728646034504101457670215308932327753670737059481710619344348140712047084211200928874824627875077031721094801918020230263648330463327204911249948796640890370597706496383435854253490045519763173526122936683016858460849996998446378904548320563196427201013687751890524546161957675909944984607393984718527221803638755632319627589979768255986595383620361478452977099127998908493594362020509291630686519522307487531022102057470322092494455252540050229779853571634184050961166966223501921734091150941669936460668564162004732319029768000671993800064797107175334954800432736538987783558124520080305246424196137757388582821627851150108833779438523745772936615330172690632897893053231112816212790941670354367289665440686918538612450363620376417157950828098622798554439236212976486359162757138928662749568642080569379927882911604003550473106728681105708663720252967335226128659315443674363787613359104971999283794257736702874066819796122435082052115913943220432988339582617896055078570107897362006622399719488629492272978208577987439794163058458963070257902307041794693266399610707996274740703304404657068553340717732733862896772096147538922815301085114789859392472707565810080941632687961024418618647332357453396244457722996893891135055144161745218643183582650172636233566298383852452827074377479961820007830026362450908141278824378856051308188296260997042976145693188027608883248791300541479183429823494163155526915092059787332611350070157114983499766519735843138175264716029259965007134462965754602680094726812644177480643860149020051550311295471661705107366865802681959276416731238438544434114322981704576194156622698012251720081400850058390559405483445702756269113186703454625349382163196576662073208087390243273802212380290080892281176083987281025627593448218352167861160725117937602192983245235658492328114115319577488141183233045574815928344186362799519144477878395297435951099710042158649621629260871402707808689978118911922606547437203822794935761935248225555062313800966724406190610863122451775945517476504180822753485985415370526381142064751730579803528721881907063362244607245919993848522376643512666482502467936822015508948852150582816898579352722792028270664068504445613367042926929720472844138366257866437415879841247474995553757819705263394063960029932802383652000749613382555629026037614096609341454671496123258458933278238973030369668438381182592102406859763752870906014802849975098197638697849790580504248989167872417196368223384520703727220580171379346431706199261164855513772203669689296957019416295727395384295138396879987188404019915068916459959330798499714226740607445279206677631411616218605587241971389194399218450590386190371400777660700272999398371272907392368463925822619601949313241440183354366573218764727683775954104349465648410964159426833561812051669164549953577335958985181264468261126526201617115377813737730774993672071411497597250384705262754457441234874550961783763293414087429321269994066110209345530271655991609653369382759928157853130643725092879777235687068658027735204255916778680185837015476299229793666533603436634411109935979287408435870916662267481398217643180809448844356841489997167971781709115984489983974036192863145815077313953783097141075175113868211195249184394968378121226344171117113188219947068586433317417837992012765382209519924861936436120688149054507668042998946107573618880710102403928457482016683243666212965190803223699852198264752016451188063584033642194359133245195752462236308730270922542618990435742737473070823753766849983511903118586029118722029562383336938233761496537552820490593602121509972195307491290060945262845262077725326116797514022179111414307015753857796455336991405064839037520904973906113717666793853113874939954507300294474555230320795136791664180902274450705388397014410977672237906831444062323960314312597574378018453269664139359264665277515860491812586644952300149585602195781782179278587843933496783466955224284301850528407405116906127935383655223960448377472626805484236358640960414565484418897059525043003975758832869492956327196379384856372980792148243458472410296449776226795114005653501653014893720509425511271748231394526213212850380575997828835129409120704705372722288106135280795280251798399691965468496240927480192859178917723155246706413322134388289983900660788514443150461404186445772515037748363436972874254434297903078488640655364912283210936719591951907295181905956818787951782585487007271658771127303997996810477086994549257616794417392551434219463985793423121273788774775506008735355314729113601122795554652271251478328643124142322617153869163067012839012844219380838096982270594987838652764334656042526294766683862021676660646259082616997232575434044966035017147001113790591551056869112291106573135225835592829467604594894823177110985259175152252739288386656061433697713952390157006392424038294625495729212461958227087081464130819731687820616164255845590741275392612468486796799305905020886370791684097804084183181322620601703064792204165492182046345581294849896220943746413636865083687197112364584394866652935113624971573409171004082592184026539205178957241043754298374824606326583459444667361656202114115028582113817155832622556512207025949070486408801412901890151112482010551736960653343145242019867862438484789937675262630266233119494573745662365736886996880879525739521367846591546395937663692110430168577085149117731617275760389072083314905180812449796473281270079375394267128455910814454406926721118695713015041118573904034066161437327886296615176879957025199132005457750366030489261061322874584712510771066308139890140539292751001344645944116596392427705784074912754456128528182240556713786067723233955432708925304269796314547068696609623635243974666415462995611925925982544858633340874916196501047582364977488973871236475384048263301566409649961905066627907247693873614588940080087947670339227601201192557809328626990158334378176471281733359454427841217650926335155048202682952459826113246717214767787883595127929863927145543504843457755351330222407031318321097437384627133553806646742628922582195042626594399655575974582272802695295389666701554663713134427510576125042092741137045738941738522913624824863981178465226696081011872802678718438491737494063757330643101177951951171663578250752386781950777263899141724208105922050738963004627479079155806536960241082175339931807941775177533954080075731181214671867599572375584425080914315636510106654522256343351716716309878973229928958381603562755161635550481140216013666715641592415457157210535420738348633003779808435766834745807860853691097068781212984125112535242738457885087937614174894456728052628018936090725331699017396264235108404180638368609583118858760262306195596935864226511231734508855716778453605413433036499908724487675689087363229814567753826563760903869199800093330985993689471234795005270845978728606067245883456528264109755779755612784942212377934959951715901705412367831250700028230033157098085843264557273682807041990764069254337775703857050440317446411664219951653085608916870225276658985322563320754636896697861783292671171841396407954072800019590505173826339000411808446846232261912005841319366800349345243577802930447237751744808017571376503223934201400657271156994939233614483240869262661007709918625502987265545344327948600135808655514102156554075285334837376831809110271763008670511927037798570152643269661470284893013009507805202557801058039071757480140654714605134880969503886047657962732530591571481027365676464161084187267777415939713330002712570265789191934582654215139819564031575778413362181546329041185191089209890479063872881678182264829531091571752480389206480496784662668806961077936042765848579072201216372118577898759206820087062220612778570930863876953859320485037376980085487675096810873397706595081535930799975050187095483322785999635863895924122148477260898159572375701587354664520745753180687909563921464049914527521846679458290577972359397477491624778380751411302186069335425225476675281778769664341129818514650740648764667381582314257872213601072043839397551151698549536811836882086896576493208640614633646090916858817554118373769173669124354490219983481127730907406732711354881619817227406738931017806189499743680689304785993884470724209610189884864984763028192374416747343423376195296552973173152540085152395601222221631101215517650476094816490551968289864241766044086900130739304683789348589352909073192854816922178504555996933418843124634742725242481777866419526154436118304191711464850054730089596064110035392742829727920801260425606657013761525792897374780825995852962713119201609894509985239415786229991586855106557010486216261243044048194203159524100432904277331208631936936527703038520069239724689231563196693413062355264018408046967152956848234494710406833690291750478110615420226727524705080636432987130768937519786800807698100974681798870321625832129341864422482896596420374575389132417124135249426752596669145214281779777276261375561573319080400258907685494350990111559762832953076340947851985198510673441247550406707473980723788500367246913352848691515461836767824362088739794075433557541597887244061049116183236471563386225623558042526400546237444739557957636975691989622699510844114408891731473021625006126811486483895204083639065545390984513838541232352398801694284604964344060921289577793554682854394238590387416807237586144436857194349041222061762953718501663483455699736512423805333364997720168511161401155938243081020086841182180407287746578553837122883263980769402134681944328462976960431288671850949833566174315122865785314286471808018181902957642119549167004778798377704236887430227524337459635311912989012010465072837051627847373009307239806954202846345077586228660502336851482503552200047325496741447537209724985243957005819863740451725430928660351900331574333986791448249801057982756830185791069656852935111797071037348307439540701349853607204964039786519767148401197663091884182072373048476229487768926923275140892024836000942990535758888532684570431661741487572683473853204671458937368552566901687962837257699475659792938755135825468539119255621609562686770750729373559599900130713437268321021696003587338488203287348957273716879254456873299393979271468498216138303668439471639708573456303025227750519981899073143844924898804426951559555029215672317696989845102770669803271335936318824303182300041815225768344083415494945851548079592994136312452938857654626066919374271250106032424683401622504172998380913078183633924761132189947960957361162254066212327842750437959584986853521764523982886162307717300186184261567138987112751854257976762615719217664103402698987856341889686849788075541058731379785493130088838355707509512937656520215980785731691782720774101784198067332458890733529100539059017881864067004189876478595425151245722519501276730454734391292050142800837692587367002873038467521308373456244322013834383702165687686622115410551936151065166513198042907529963322836482613584842423065838827832960189329305015053698042422585480448533871370344618571972135121370542928471972224068805122090965948382727968550075895916321804832335991238157282440584921837991174866572618380583806162883312509639535917485084482653000122133103262029145295474578767423108002817770478093224317938716026459377949018256165863956767248060264702287401781843844549053018438906342319379407139608966303965226617359668712117639923940547386719498117399821368816410082616521130020110026451909380949311716112179414691912456579429694355192054801229327649350055924269134820191653191248065597940944918896175824853894143904988686518429207424831742884212382926466700641316628248012304318590568954352274274357026546303678806646692161680617055088369655119998856434367588129897361534828109939157798241695691899485224300324542202597261655154802353235034963413252270588034978399030622447872304695166829948059996620528594607490942074352647838133239449327193691596419376326938285102189274490981030562950434968323279020574736383250168575414944078780239486356726249672502640512717829552818428799199145807135154410732954489341737545595204415454891255039920262018860493929414073383581024083167179321633554708525564343627595182763596361426202148327574183416333453550816521483189233265585552211597735914215974168317174694208063394009731897063812268775542280487920231468607295953502721154823628613440777967873092306799274672152798432882711347239574251656329332517877208696052569798224172292042061349521984507735646575303475571254885252905308021140602679054649538890495304655958645564281830630248520192644755702953372523407429364321141529751183360792505119973398522252046006825854768726194921105937485905147144143100867082879191996524751847666876035248693226832797742873265722095782785862466340978642711137467479252433502150388331226748893754789709112222795023064215985364844314246530782724556848896249655267637902597286145205819041040589656655514311205224595093631600003254912552315502608801259742369824069708525412909692034942994698163008753640125800301276022632065317227806753780715472398335086174586577219915642258695390117754593006891078433094257411744684480826559205191112275341853417642303792108336141002424896044693171462555338010593333579515297049701296597226588614222754448675089192908404487079776543577322208056281265778069503438948449572885861342855961514570047537120155665229260428648190327703090355878416648322618074208824274699853449337487946647506360664452070538950124871202760837878675686796265092114236935507652331490474166920580233331471107239687240572743411655093763764207177403935249565480789159860841692539276863300412689649599714489484191184809752504294585518510725450713428813533119945020418487891025790283896632387338638453472947969389373192159755232422170310606271461291928132010079050487450876106022588857444297853127362835757990892048541446267383380178119346064423281311078314482586867994668044797806324958226027061372704909044044460725317096391540437927743364956286473299975187705734635932904802842171421790915680818340982628114180657624915344422065032424669619722274382801962787340321786306032455288279509362102216853583957297587516658658104124295463671812784522269857967128225644845745672150684829816533880811243716127363568854019325612894984249689286270307632917144990639851920953055927771834968589947544097003226158358559650917812903548552114273247589137477456691512138212875072282572148228713705094606379617330023753248371668257703937923086108066388193887647344023777515738317530071861993530688309432813826777163529641612252137019746750444407865308469236206981892804397674571674020750983824131896361554517958080045911161817775414091008224580413330731403214209873451147304042867723334282554167353853138873848366459779267453465671905782500833385573978421426853700078499664275009686992107199929191327226791233317449580206737378657305958408641229170870375433194284234701730006157508293089015434527634971065576963097187417480451008637007492300485719923359121423495805368740549270815199575196939055418285121885341308341164459389393148690207709587799558616521936015628392152435276399099714553474184362513095627664808845096349323845580933615353974933537594087036891205508284638021320352893393616347411056518482820205900126876767272838001363956257903232489189545602293276772882301123454652979071225863484016578307875745814088992304894286979985537640312921524791828409613135807288553767389383602335976554046897843356628411765560960665852105200435211933826562399245740762413772987612094912667930426096264824551118248127677733635017472575012111984515501362191980165866330298084531438691881740815922058834189974477579501324186752762683463680724605437248663189251680523765820518645921923549415690085072091152172350252064232637232578721435997791748216126094570647875951027137715788730430913502562865948009679884756247760200770784802168068376035312185824539416283098337999567610961312582370932541827938959672370229637470140487363667348817774470054266698884520205489100644953303723923771011491047815401993257136835999723722149843948896715227161169560680037121745872622786779958045051824526905850705482997365701855259811929468238583091384583274976453437437999606278216360786926353566442185138980456928615889189068924907446801680378387494160020723274914753118576085238948812859162984629074225621235346877924621850216652168556636972914195211540342126853916211103825180161822047986267023688967038067615989917487209224339665090322427308486106034274353921898960772182643674464040061256067435690340493509233567386029303094638428312431432145638749340738038289010033078801787873565159260337039431117631885083599487515904287968122535302683749653281495144329400096805676632938030592723617476292549642873399242110299268579727774465005911216711601884039072260552442470767148651835430932482950616038254930929366518081208388522570461521122327731890481683686728872638204832411759448100110284078262618962806370062303637501219996681200059279214491176920413704061931040002232240870010432920612196052744620736940944500849136215914964952240004851256572832734102059579494897816564999692093770947775375675646124403892155389606411695436560887905825374285446440466852897645136894183736590115326028671867430769939248120481484982491995975543860216580139574922215317356038467090881224222943196965960298193782623837902752456826898774700222865283742720830123780532045509222525899527412639198123702495947366767704470968299122246084263875043516543114049281143714691338424502835634215455078221353705186592736193688011329600085692594893538893752428809558969253964901278033594411282752004033015183598521539402254836002589668318886192055453749346043426622332779653939618207526170392491580814189805608527752954852521482197650554692854498813840898990331397072701932320242366420236472904468661684289532298311383274210396566336783061538471244478977377481095630640336642335738958292094244012470734850411389802172431120884660175981132096025474110375828353111323030828586840072972498808412431880011409151202847877509403187640306531946260577971973575299888084225122616454314463257649010770303255463474148384774923144776691695830650169182760365384879915531481337908485701740097351034807458152722520581698483039649580266256979856261741729391100857806497828012970158214769521007182238001427746126549797243040729870867554671410497216487846148944395084345417069006969026692900678591226106722586976944453299681464570980875044914055192071041307003414117991459439224050763221714904011663387519445589009709121902157988839174350737892380489465089833388305459588923991504103024859116842341028191377914211573960290761804445300205991936485928231853944142379487950686077770248513777672958666761866006785520478597390698600230920233810337821696266380336526794553316009144519505248902977443406148852749920009135335062388933852449472109450554244632542740262342555990264949728005817441545245132659913654008986011374433352822021848815508256867959936598600312519076724803524991930096998302986478376831703382845504995272035200574427536646828377882621103999455974666671253628622254577223097565660468202989850207944467629756749202707557590139419944380397661302922885864886803089882325025585271196534437026955570999014433351036102457827075554687809204861329380378265443007438602769944766800171069919379404787983539133762402379597845074944683698228440293772327331307930740280892019367736497725044171279280899076555615763579882046605809640790795075860382036123566363473429546328582081094415369447697694283545502422941656525321269901990508986797068647211958243487001170999337986529600208112637501650942282102142229299440012613186321578972882209559831988276970051917809152947137816319509639402694120595066505457742760805267273069481916599989279646469992683286530851724819886949703933009772425751905265326850623337897545954895116759110533473508401992888757451851315475856068990649441187017685476313098561260281178838996050978655854935379838892366192945606715693782782984452201698820098869374076792021118933923640016822979271858685144169525509212231703604174270340310187688091999266491786775888140313073082092871824995297256117453857083517987385287817725106957506058375474747915114987159173062851299570882294583645408231273253495875940198011160425566009980472875378561035512830782517574046841660680627968009516308217166241283482333974664446311434095585349457879175757693557927108963803845327414337801936827648005439052055064799882489895161261840556630072988048697265980730282034597317917816593513487630931798602022213290868996512129413283640132034688495494684223391482033117589193393951953042834285277353868269754594213251909219971718127463884323455704418782963981287990533963738287749481781613572882509871280635742392517709104593102275471609935803908559243982098745282858110901198369716481180712896942828736325689370372911685002744191389227643628937193323243649317323035121129795099446023259408852080394330201244632073283406617775628031494158575775826108371729636423082056373128575159358509947049951939562731104447382718443438744808479113083432008031684249201601988029524085946241433666152829359342603041373605853589712990076510320905465849790821042162346338701840330634522239340735270427070980987456252899592137803622370523637010610271031007364007065010086670371809178454948056827538734310019793988819756191674834561749069469492345053668065319964577280556819280007941835137162741800646558081543298015326543818907110520633474908044681205045241033648760113998395430374660482204525599561282614336163693596003201571221455444892429538256241410148276815132624849885129797186966652446449643461630781323719394902634566988913011727679849432079383967602718033968753453346572919983260948683310819254431621882210794731997461661255296327596716140906970158910852799597270139226523243013729802152545319791938284133433803077829781019869405231873754674414282604009595931917986008117476531094792525288964212725667618705007495949678331556997130578891128799110257358052271413087400285317830575584644500011527755327206416934540657971006880561099161506263119157447444556624817827465064419831386455234209013292013683368038093217169336745136671963941662975047989824557707024658234369676634661909438426585613890947044919478769530907674815590250923995767402487308684211707722816029840688990965765304018906316081212787453480429414292790730866113337775018436899453754587293801981045667397663293192094792376699551320304553400290681957650279247697619276982149739890344226963562803486346233859828662944018729982714530085132941724207752808058032895581187135019699387905521099466884578277854278059198519011916425776375491247084850955431081735731706330605217850879793840978416968106171757508673202527315289198335623118088746021054149999874128639589560655636400363762179507539108742699956157654430356139172964039820341817328598505784490114739947183913888304368343308934452839371230514560806746217724581876293230227153448897080723366780555490936991058041998088592032650178280625478720083506350350458230401968143843176564956526784055780841467725079061292478028928100474673201280647654446417269510388838969032471359550524057938290125647564760813335496076443765197119980835377045591913998719351055511868540303692893125896023370315515045326554912968687565496189511126009024872056336523171814731206312376864736866290705414381688494304723102212504822617098594447584458641706357575426193481224495429286140480329957903809368600528491750943562378306106821231623250585236033533117118613423248203110736563111680640649255751028441825555432789809198296051385440684082669850366096869816923882151314080884437815096285401956936053857486006785683736819216081536019065276605320724579553901042116808674514677258045953223894097894267358797597884730528711614447019715643886979008550832189526007796735731527521978132050761027891192241565499315888043422338125985314348668452500787408812454044629994141407622677579192012975351113016890208401105356585280166186018024509604604509209855847766055891704984458991938991759543296587727390406896545506460543166062188049319121477884736632351960691612772645712552505705041841876149424211459857539845770954566882817200197456555708106997343427905051292486749457027799010166362144862625593891832784948473151457449870723194157889463747060431602813842847394536242063966671927641859604403006952324153805747165713968000465773234791852423589685331643342596645762640015063205912509026959701997745654084964228121043023546286001121679773136692937204347717895601319442839284233152315588261529708936674237925080091564085702202957048418361782146014700769205247133195414258650371469335529806182742559149603862355369452663697263892020424587175306286769877690042214214082374589313327878732490058178638038519046539223033274672758923708693170932081974667490630333496031195891609020734991857554627322650927867944063685076545536724339531635601323798122358618283334440759186265354177448563992173178242163512290327743686547831409507420812478400987890920944562417048826437656167470429405587983498100130244864675403872857695973232968462833081527579293501451178341004042930523112942398800190912275866516562636822244553861789738046923535870226307218878088293769384988612312363586311931744127714177844552675568111240245877106298030899843215875975013770330442856728177778660240201687212088448431561488953614403820854418395885029735760895516806682676309723585921305718520621163397118365851552325765881963893400735972139637836422565741354029961945694378513948746337992066376088585539457414457275993399311603789662907557646919007488183102363492203053982229422518335945383985427049094644005249180057442681079050720411458142484309635203306923948616423244755298124300072029909433951967102261203168875649693065263861058966459870541727453306117918464406951957465925294833885144502739179706962058779780063428625157620055363035741359987770229782078268196264515208136370141980521715648769290067917043430187635987578213232899111032915737305793406408073186869713309209846935718901572643489833432642377237646202002304600131517210149927523177541852733238864752850805420665226375863577145280739991915985827731167488806695735381502020583145056152942919978802799051423026367017995322104092575964959610396675975791027498164650728318178013098155712423924401107378663885761228941010969977071048484534292964251563543760976691789688076689514209575903860421470120732484508958414763519045928058620244876807247141583249344483169498016752954181025587095577502606571154026690244205686710969969541914953261826510037025965672165401038644540713493261551424223873367531880461601164028930207025692373905905386395055251577384943810219099183173743044294440433594388719699113311866600384479848913492680257177686318552420795730156961673349704555427576959188913502593433573430408901061638806399063311596999555791335906496290203019514890856449082903164567469052852277316337961874628104426621822222782090061893413152600375289978896768832692361545035726742796045739351878097344916397424262492370120006269719012743557375489652728103607285305508079272169107662796514374827588210568956571790334391313683371692171887639843414466077323243890886059699022001159610274779988844460230512353029292774966197690116295963432451491007993461760736298668690485231297624666904892315457295742083349139820267348052250051842355551919163007137886812695611698244845429333502327973058336422780767137964178816189775487378429487855844795922495741498894826634267263389154715022380940657495603855714149182228351892377992213515781913694935587926793421809904210779004195661073366485196547832468555177110530681137881197379202137202458064050679801007724296800353390917690618851952759620095020027210924028316977372612524974608340919266383524254729733354455220153538381026518577895834885511896827192083169756921921224551714269308023464481148236247651180707034426909526119216473712784410327322121472463263127028770730997803402236759691223296758248833117727614041415281642243959579600835409317549393334720291705199950508132011997687752741471515366407810695827530698124148384670109249043350358490105180195362223461209380153815442787522837162657599396804366599721700196021045589765009100287618830898995731112575480514672294598354859896058049419723276149180234985646530165827898293310112350499239453405009324270923500800130993169124222203563222735138630446847971888079174155339432779572392322716521232269986167280796197817705044767615808822689484044322638212892090768113116456189673157188259494566403020332020427575898029490779739523480102546800943750051362647799831511787248008565479532205245647212489454766712272471470214023475318018916979589901602202010948962853898705524540150334076174492835321197878671570989109510277318404418876304532340802311094451510080975356953832816111629856964416674755151173726240158387893366839628387183636702983493893999416230762292388502890372453911423047763747409117895778427406721464548261234087330224721400755004880371501009347153228124378512764660444425959813298170084546867632304228456547041026281196697045705283896811055477885366859593117922152824867767321789168139943319537680413026085099172557811517731239377399967284048231345789300274099665009696008551159366470672521616917123336667064262790611984057701351899777931354772691582754556722013432361957252680351645129691379002360455282658803913449356574133676958370984813896062984681884735086374365221159458788308512967532779792945136559597812053636722476434160373726245081823254860010858340617793665285359767762489113197113195045840655446785224540452287714361486089042609380516298069651331479801788622045443127123008264934102112039303802602027866006815465695719630462838777353675122478965357025138756441105002152531619608227105074253343297754517288751794436971618922515400806671757381942015847361467943582589634763460874797462456984408079301292131271641677222577041666629922779458633188466554827895670823013026287448690023335170639150711178739931246341663402369573818500358850349220872544927176985676078143446571412414971457573303546185761176528536112717902971857524327317551887090290116533376604482076799352139532683403061905801713864724168330212260039298649575758767652046539531918293111053448022821465604080967627774885062232514791125476282020313571470746069842448137033561138763957348980318573567239635095968709728026664245499007086856246762237162495422873658142961869060779241766669198361802098320247825833738481377958944490482822245501629612183404973109811818260506114154944023446795751484353057747131595874617657619344809790418977256067373594240327257972473887123898929797681348824819872931518981762215846027492814688150265431125085703304307714500205630576366576779450117485506781530279027712782416880290978640178206270911219962327314435848460693796574330964406408644197272989549477883354729137971062059734309235578854456687863266971849640233987964403220379105097908946272131075538456252067561573505094698853975502929044341364132785519008993010789506070189204530178477534077694615503263831367222470710623322154929479885390493099913957757997139732426964250956265902984993189216760173094592733264418191616977892346803299741776833810680263635463184032483633812983571704071530180412541221152895091393839135357344899094322465235483180597485512857100183396218377945902580457034382382495000586314180165019234892412971929857353783833277311286643403743909782022262223827783513628006305136463533737123665222660328053396505267103275297409694422244238335871558660801329360874756656666888821345919411617320285409074540206849523845831185515108697336191208317895794207799156739717014940592286422747115783400465240144128092565183613488584172470579029337110152655810454004947766536727567788773516255377397453018084040799959737656351830223137255198400389182996814737181914192015811073519992948914487234678091017171572389328658820517054193111629871408638269878264639781027694445649212013177097631288784952727670263663439239655216126862097497672814791533504391210680366849819154061845600691180876013248531750104298515210074253063744578219277429431977531261951506707081145331510155638668258317968397128409710766927729948875060967440353122697297407454296337438137722848435734342936630267229390928292716496402777983385804956123782473681517423095837690058074956142698277422877779512513994011853667457387921457445793002949176543691293160606737121692061295772002151894303809378824233077758965192076306455528043204094707443056025721289207735931878985651168973649193166312374188943137997540634622863416045284487602952816413857369172998753211040268990372051138967675423862552407074303811466131248788733428496463673187524434152472202371829324144415433097606632109206706207459955464184179886483756653188771885575264055152429315182824970478420095017883587468462188485560713205826659228130591749150787689919266749699164992071654508672258809659890474481912656966058677901211863831148472515232394433095173771866769843044325444772963894739579754348209324672475258349921926204284228319790879287545339239915816786633623872218783381288205981408087446735772873982450257313765343035962284062155326561164974747725909719290604221418596981003203675982265084527044214203701456445681457974078596268416443499779411583460305298046967970595268631347070153906918300358690275664806298702276555138874708705791743252720119485795775020558142159322729105606265114142371186765372744600689607914813593558780956885136002277143640114175347961122676155171666590062195161198846348412638030094402755735028888609544331101439922676370529030575597563012333548540151491934160080801665478663720533640578526551223748171338158976339016279744490490153476832436509736220041118816084698785683817991606682755304625412390961600287418727411136435075889040200437955578680553501087967630239092263682297582496143039180880887058774772977227643535017325403891642926998579500759391455902632584771134722240115371996772387089540064350437431349674915133615230107575900372504973496687756170007276129357857442140858851163390824075710172000381524380280861525388387191329989724244402141248436259178090000056978878533887324269198699287927462791435483934376743908152754186835974963006799560656551930813154313403080172614324052946704489418896214947295578000597320423003617849320728832481113537196528134558866267021287281502914536667467262445089647917192402889010525024292712962148650323517459425738185226766054782703361272992075457144300727144994645158021733922055751342597560295957844628331714942836179222417984342362558717619848465762142323521468063695402462625809588779648418219750668593506286207680738865232750445996946613033681731096550769807848630590026957244056526639236788259240353424035942327190885818319545418148652875247633596394874923892403168481822730789859473245407114005241468371639545269847763488687775191434661359360727592944348425674413973884944560346079132003063774501396894313011561619753193350578078189671410322943224096227467444769905391180491409187039195411567619602041807750402688970195022609875960628969079393752606285873856792225117273969352641253188930427839444077325011442832526067515895856610072097730576186801281952606895653450450112980388190072610206786050622031963050289461380601927471461632321139797328673380023012642805604078663089222713892307880535356167939417105841708595568178317380193052643351823547645865304898830113309876975827187390727271117849349428350784670551266226849569703686739003033142988802958264068239090538427205441857426825914282879160165315166250727223224197632601255830187276572680352773478806112307420864148628176675282700336223998408194441382429227813452475212728508297679859318177484745914222630622503111559990936974002900647848350751715526249563088603498087259347110518452825533975728132965081316641994411628860486389985920426210724838876217438524459939501224472702914084145389023866043242523047888487168766340959140684807405560833354630912479739008737748221709982291814593805739923295064523580850103405730884434033911789675852024857998694630983985701147128164614600195709409726980450343757088661423000028157240045856129435797597070677009592469142026907674166841342894702084273382062003590041001174896430725147395479914741426854078786503947128004294815430228201974048035889391307625869186607557146266446325104235912179140725336750938839765182296591993682796949911455947197622216814664741594177686251537674157190567286016940167671823561376358319960450874168397658446161718450690699557626211731995659313376589824444566858085259127408916159705076784766447048467697432206997368007980545806825690235164722034505548431589138673620109839039031855928385505438901878288702315037983655592529890559414912650608228584655206958164458561674037205926781359579036233798106526757038669702411433311386991829683371771369843839958118102386558950260938646131183929943170348301309272741859304937285011083986715224083216698907850354261553977133493882597531987466752311422898737217452011534861974174161078886643234524726087155545351844136188855460914196022890575413029231736228633871073511402456542781413710214419768818387463080400980878259174913342714492617092272406247659385082049768349352262803965546859157867252375204069325020437161532098075917580786911182666430204363668615204806809823185985532739768575581764652156392209105657096501424170356745421294866688807842847042520468497361363762733354016155895838297550922043860462783566055844209320245439788646176483821957065102771915218139800087558730004178860376674056659586372560298209314046418413067447094382934089749964423874192699591019058139461666803543769543098306910738146004723054849404384456713384588946935321127057836386506418640287987378538635333233503692888251010696778900421184509684287131332291282728789115807887711313982293444846645971719485589159308723846550680648004201651718408030010765192236029249418146656328034809715575996073720854431087673201596211788973983160965805187408861373821034438169266363038328313862797324954902050811623417853678362437799976399358419778459434615701212282130592284074731836096241828626098124161858429812909943688606463873515142995141345815877621456577567675720838446003060262409961892222421352673525125091818287150903477144666633909220745108300329636130411073481499404952925877550119083952765409807585116414340976798828083055639890418038970411783175258445839731548386135461514427463304406905793745023934397802579168957620783831419016027012122352411274743866944269150865378436548583391644227717622052137794492328434868831533319091138135114888469676539730877649804297602571954922426564318740987988627122389489533042800682435281062067312474133539566965579923690834563178316650254937116618202023411472335706180890459450322316153660806818647402297398462347354428511719637291222093750243182597893278652749820242197789526087606901768089712638158690871894332605763421470138489543998375541760435247580082659282248678065205459112237415730881069382704667020147286250356473301456338230650029573649247064639197458424319633624187013513027672731397336266285884334869347550471734325658808463522778719187043234824905967876165687808294164545092151327560179343802499519990954021030556998544500096999005283180475367073291598284365731960248997857586551818903186989875800190122968583877838060563788188007474322072845166959421768747740607854320130657337533700043345105231092286140264266266025094595536556747194992869165270317801521014314071049947169932336415323051220301406114344842886137569794906125406601943336908116345817052654086541659278999028639801100083231240685344629963720216936790944506283751462022090067597056076989124778443371729104788573831176861748994564850361099355194446718147137409697396416487851667644806594218711684595895823877360044315071731862489843133317090280578423188507311199927648210457749403290686950773258691568847863153127193363837117456232861142248923691034586091018458017163588289592656100207103340565389226589054052519781079302455626756696481714810617637969725610984481458609769802060472535415704455732285516271604267752245542574338544523960890480550957010435770656139581256843133947781783287280728321381526527010181735472311272792720717930073464842032925236159476414013033989782302262971832281526998430973329474867042931742372695942826794552602918902437580886394256720443343444209910419453587555681152215322888465180122081937066753513572920947003545178706897723013472772147515794987393343696610172260825302640508577039819318207403787266372591924595647139993532186052661658452773704896302570390726291345294701140889635240557710323707902401206040964733777995260851739477082983770401206508155156365220115716533758011607150022675840321044200799197557906211383791486322708150200697049102336130353501649730099660974686450947796010757207604722371616956854598110531368911989997849015581593055819762276075027135993099277188079055131098465889435252139962383646045787774444899235854897600123369497375107155452708588054278509861442528201610809530676883339280268462363300500283017274984414442405862617705649997167352212458363609392764631456150087975738265423977236742080595826639069103762243886489606226635592627911888787987678544625072724257584037659819656000858731527194079153230360329479380383923301353985508458408336005089987085117843575738743793150389868667533396631049234652637624101866123109967924060880291832802842974833257579263611518520696032355745806646136127626681534867381922898368176604356557780912294153952860719772337071472231243842195981579102934977853184776062571438460073966498242572568612776236860798912882034190738687169859631952794890198797329218615182420872453863573191844089910513512622889504205071028195720238646905506540062809435534320637572583787720201968860390767513771616808055591138264909112099485303164109939431775381098734041971523671731569576851012683088315016989918134228542031045618112912425877063653659303948820161502977453605210945698935872460917774278874964694410049020906020892115428268180196937032991953663101191567797499394028268985751627754363193707753183790372589743693325976771400383588646829719474429054387407437758701271566005538546605326900489399441337511177873659314061937842062646174182906102084151367626992936596114125560534859133696465914351362051547472091337053378499477144047564135286866164946034090764713328253570274074896424122985115947015369351140501075535948715317263839193578244888345776471406525649622807119919725528578468089210955582691459087542995910844869989729255993889782751624316115410959234689022854433404093280761466972947029585978829036849760378950420493578722908772345994431129751360354008963183237141759322391065972055541798168202425700283128501980145591047447792236759289229563922283649538218713318948643697489092826110977608363358433297931607191284393263067295883912536452967639602277063222186630954014186967658267180869912149696744421762885145169683655110135209092189967484077364274153598814133648743639704365730602532092792589351776493276315465798242369681030747344898138448934209485909131091140710897648941691203590079803470423477472009777187644839899439278200392052385682771856001423218393677509811091236226601224814062965372651261422127605398469288687135225807703930929822410678742072288174934305891159294464003132059720347933712812904325550275317554967413171458177784662492589345906484916510787281037981252620610414653256051756791422582803571706479406405763155356758965797663431180105694250783854656138736900549991037298035285225624156203851105963403593950336880296275968157984661511247080582120953196445800094945080252523024850767394755578569066550268357629288567181997162021007723863498295919132755044355970043240733041297259622788136758524695315444658909191706064239888977005450288308991131343817608505273292855574963221371324767872393788557130713802913674797354965275474007187950587715684621526972085649370899319295101576977374045666694595916563027097802210388112494323630678508335790249671562146217624339411401209774145257801560080259988118565451803910735896250049742193699231478446846746351016832594002447663476451800750347240783658333295577844543083893138730503782656806824985181024175291665947274735378567983278546838938443578562663686176007526089889637629302689765059574346424145146001333625328807748568840839829722889650958663203236304773146460192378310163211596144294343929057883103161929978013169773388205955358637551954387792249389904762218817334561084582649448096072955882523136319126053215200990566299714868616299637272474300774466804629621039552567271775644386448660307141401133791185015419577860736986092670730493760511202778914216525135725201501255768149013418448994183338630588055852453504007378785366496366131640523884809976909370376006898277862115524677058420662953905211972552761311329390976583918112587357783398733495305979429982783471834758499102231486936919548159770381673644232968987668522731357125540731340012272788862301215278565601118421694508722572170949960583643732929636583231447135914012085188907430786600943561182830266031936648763530753687599131653383198392260633917262395085292787054369766804603355369158636705954947535220764079138466859125353617890303222247915452218042504931087999462383052028449479056597086627018402072953201992322013117993206226627689565827972464645529601888255791190900234481203061256695562154273635597704271716362112828681891734332981739007538726119002907208581425936289074076187756547548537829883268606006880502166955882574436361126692373276157194462144815896827543613407899584930240579771227656279152204922807683498875117228381323276019481403644910167770105631205268524033174530207813962299455625020474947201609122708865145578197044634971213674258701548145463806424665005375885066439109854778413005266560363499596683796975085886441279232857524944496968791485540516725382530945881579953583924619454108029549121918434158982344297307764368012797643866044153659329609848198851990657575200852380637001741399661953376887631773602980881356228572550769049002197750967742628380999950598898817371510585684677451784518747060314569904728247175058235476185616998186390965557202832388832533994012192542245048076279323385263171113429244838027588112354900410131726931289367919766603411003604447567183829846214560506267833725929615971405022820567782737026507294325942599946974139220680688655866169838538733470207191713141975807526878033700231430897738593942359305266164474086340688733999989044355621701053238430972077424050326425395334328294982868129748757133683281664836140048738788277905543073021873159608238561733882284861806736757917639629190525176281063541229580779074732164477683893145148965901470085180672071758367934317464649052346785984766663821648983092983865116520551624789859745432317510474525173888395180037404093008807658042838777939659000188354512134970635878991056524458796359659086275088618817114999928717539366763818633365995722640804979813896514053217529410219144238431237487171499206838414425143713623599062670510647436485581614793745849500140323302154967307283563979880876075064066724393856215495766452676147483742584316896686293993341756372833581172560298230677110042960605816615268039217258099917024543974400361246061822217434730342433135400046140456048344137510166206900656324446815632432042118466511814247514169654673597139548587794263133792303735590575890579838582734732094361391905240938731339043522845483417455333702086548647896511415907158387231241938732444397270547030161633685630629614883852780575774652590281573575494276536501847290608912008225914603224568079015495758122536902838930298672320519892162551658406671600884263486032556151681964651059134667642041417032977708223683583214822286234508442702188222960825472723623475580222360458832931439862741543599388648211301310789075475098464453583459200239985590937862373263788860368708901045415433735751586319277175182976670721689507799540231421376942134452323131017172322824975090297670864708909122299963773068653571883291108049956356498603562915002635322159026579999318700201421505731556611033435435119647654790070964215812528112671771578157446469289392503548416609861571560066157350775866972813239988671951877502480580077057296433198344556435623821027424951064475689403331420132346871843287761124099221492693999658950523660191284607991178719217444595898684369621660790459856975513342054754893073740396535186489353707496493341912200929654775181740104313190844227523553171341010322772204675282337443951865661740138592951043078857590691151117551609989441404395707782079643768685873794587472551498443035605964514184985829411870467380597765558575983566326468536702346430695136170116768957430464960790829359640432530405517986661941330746390734901644372499883319143268689787893923005840812196236928622441678472808762687073583853918484186371483444274540887673150971045569856829565774912835909430660186705669645339321915649257884589873803080875809599861151998140075876887592165452343335696899046936623098868873357659091804218599385684406542804620131903479996117553516223186401649773359370299548606046425435914797286689831488261480450372620269114074401554417952027870502754764891729620859619097170420788496415600163593501720455985417626360676225721405698094162969280012768288643063399762474104849200992292052279071068945681521631174658742484225652646192548546180316102766816610647086827056305375562010413133465314019075871117900159735520585103988866942919042487727560340977022198210710072198950750242404281178073941382285416756062921118974480664679997902697173677531184721382007598590773151957111636890606867218823120288483484101533228131608079466449859249121558641973983989410854822021189661525110822680639456890892670937865428929384204854661938383674650912498372198118173549417770620319095169561049400896587808734853672636903927739134449022461929042446511431884732653715613841180580983164365596292139731505386558392789676687135391274610563673879251212720669881412261028797837754050069873617863446510531190699094469365726016185196289350332579176205880990579922662448239024362044011626128409025655569493455257365052182645521811675936250703935810483888960868450507965351353949569420263473292807079244787686471565635324657915098977716038840176099244968000237222527676104020176241021337672721613715175145722709249171620608356437511415296048407441968719948675249580633870325875575032346230590617225165264428318966421525498567660676174214782929405202537553153776345540054330382022341836496343283055068652209192914201410995071224067074246486641815602588891942973262126200824716865417144685759006210464556003434429360173919562900931191763111996349304685709760757399191193114006783009031016314081341589407206957539406332994521500950366479441991206981950560192371077633810069569690296186032119560554932789014221745276140032717109032803008189596363547977352571052436345598414690684213711030706150349645108155202560475806060662387642496821166703785834404239754613679879334579514252786074208556274008937853710169960389146288157432179633360915229688131077395964376403366712418028907231424694152680637312481466115383414694069674685899461390118118906788149207932743145580832503721965449548321212409589015085439372346626028127007869118858995362518504447349890979094673793780067202150641845667717693933893683402312597009037175581372718648158610178182104271630547953399336037969879157183410306506595567432074736902183328240672775766045820279738087251655276927707025757275077064964054234676782723533734721686176646131671924899034536591239391784692460884226285436046945293643725376675840213091513054273011095580799975486763416325081370057836975220468569802101642643193325166548208037619587039137875072505487501240757215354349180086234808810924795616091004785525682033383845989312361069095445892210536518350214386237079092809280992292285707661538829756031185758097237699110821892131451987249529191767493155355163174344911365801297347114944444002636396277224503493251108362426962253180231329765894868431689470009173572511882286366648370825271330923041230792834288018511251171565877278145401142360903792468001551941173678852134648190628164026066836706355382541978037035679039605728078923971430394870132741895229266809065929067944179323593946102127580268778512393898741820110305528692858446887400425271287486496291540720532048125126191067945164209872536415933858190185070027563419122139478459065157533277994341827975890998925129121715480828143078312073906167340657499814659913965453691023539878225239340568225573213030101022799088962763934771144920586438554863448861654092338079507646813276033230262678469232700675529486116645153477715015890139901008359595937357940328458150619428091624749549629674339005986624396776230573539639337689747912578553778609581315922112131491082780233963584334070909885405809316364412913410476936697917828113819545642558716750061777088493858855232011438399615043521655699743124653426201494102744406442356616618816506210645847549304111772607711874497292988337465145876848862430673636910772394993276813768525097177943232640014641889197095504961968441367574039523667369272343347248136980317024737659764289144494890873975364954502862754633251502542293395369780085452281225555271489819774651953071120270030053759446321908357466822331216730125070736147450006879328552074909224229999686457479923967398153603449360671086194800089242810581707625406028601144687420995940205822265254498839642473181176694774220919728805937284419915075037286173016436110120743938075496690138320109150906623826689905432259663627028708120884639558466021557850252351982018253451917172797929395068381511952629769034806372596106267999470255163352604343829721503160593737238215258946174713747999966959773244354780668863586031028915152582676166882469247587418932336306802200522179573158486528503103629993477013082157807633528000983374227803983820572632965193252277035062976292095564947486498282970934481721780921428033181284151511698079335709113955568230739790182367845001909008481427347168360036598071120442542931729063767567459912497821829467432406657279565136165498776864066395564520140400330658706190071124230205866536753152750672759818322798840295019821830337075597358007208149130698266253220886621680013912696063591709755792635888582714532026315714314384824783482108979411108636817762469234999279194999995123451693544589486689425193349784735215550619460665861675663997466081133289728051992669410170539797852851214709217734531156068593820490608941439117263475585716230451031771366671554803604493111056583367829239826484574205176481856052822603484303057447551683710444170365642334378317091940557408705889234655764047501438415327698302833538697705672295963869719514306263440060279198461666248580478205856409484602853401496290070578618059257417294690660208392018278695899717068914420386847463832393819130724430796472900057285898663686303369192986098832575269929501027268944593284286818439911571938240575443142952107504254717240091325872594066361200589639326712190418810715619497650105026930432480835475630600335018407579463353518888329420610055539848920973171302953070185305343212240464058792474959948756996848694770437421761835786086290975742726523306104407716937279328399258746693975060715030855369370818333883037478132636737730574814469963880510997898194582745857199128273318845461579548564024674035611823595635382541814070676982046538908831816311770179819562899588863948283266412418791341525493286115738816891288349417980341776894670996425351465508157768624025525842704255577870686690740974541456568058462537850225910204365242621301005586531767777697309546316435285104139471759289360985582263826858592124241410302423784187397613876352768146592455382984267008032175816898860924947368103781678895377590977375912575403111546777126713559183898755787320443724757842350613316359840480892488856774676813339123737332453540478883542995504087271456336541520456403822763014122660592294340406136688587415502833396239465574168527337535028666033737826093625663406139285332725732350971370207565400224489422922029392932552188486008904552054350105373921644125210384242776719073317408630391550680172865663700053030097907062508355718643538656409158294333586229646993911152919379724211092495244234339722003914925576481495736227912245550653009379369772825077696519753368432560978513386528034226963918394390922272419530928881641644254144629929409812648362082786951254243163230207738216717296496924128644387971944325530252792235665268009979318958454358866078984729553615777403134759911218586530972307349005172365160056279082904826511713524368699577160793661284336833727299280438894539729184378478385547256102466596571920276804301085225815140613232351345548597776774645892957504330792682463038169541419736162676021358731989490864297045193697873020294121634681929024568987052059513699886724951313471863178638225140672126030363082002521621742550118068218806124398679655014613173416035908906586924374098582075990556437160243483890949059436611614284243096765161472837491305140436989053254980693914336636010129707401237393094790759793752419432687475860505817117913969033609481540958795575671517950424335290143093890153250804260774060568478627723706490885405149831801054835615065623390821335858154220195895913591884546799720097000003485923311285708954122726121370472591602739418221258369130788364511305729536815409091856631879603385516456532263725631968268133159819465600784471319809434295116943480422155511728283887255077773230835260637571598286443122117882404250381330397253011599903930898050969711935915231479728230239850294211890373203678269302867578266294769384314421295962013212928756315114200951156245813718800808259719173719026676084623519724219801908844229263720689497527480224999897946525567714128653790931155106640619474764830273658918681480874405841005179343736206868109681297132870091697842102797728463244413903769994615147232203431891235670565124481281839724978493400031383751425216674250703975165069718493118629172823477458564274852809098240405084217684327463682573050310149151490143388579628123868571733768935493578773781192176045232190950787680318513929749429356677054214053388703056207259571143871264572345883042292013986354394711370934499216006692165703747023339646874899186210209377505473555077943599820576602185097284862283071634887629634710246046745627135161623315453398235835566877925254604849173564112531388445555995132230291351041946645251223633101507858789415738511831738365683842018153367305681897059757102943902496959077479377910907285495624339285618928134090001806786689095129644009134732686006259857662891928640770718637137186279516209009875817207374931251679753142091808716998633919771366739804722972594791950883819869084615039051766285388350052001710449943567451054339795959998225146133469694130869907867247874044912991132073316013320389440314880586749315959188959193412497357890593876248134700975714698832717820835550417712172987886871323594924203889694766827466761159256170014953635175559526236597241043125061078009922468668264795761305408201003269773726750057443709535405871304616452643214158260715481491395235013585046225080772777646052739335023265965158950089079432401650726936227163432951581565918026191880080367020912111830988521845450369513352761339645175395088282338610607689095805649222715462297549088265304292508066705059560686853514816168399142095969428517563384756551318996214925423590919850531765046597464686572263589421397336369198455781912245204001761491268988340524195458732140382362393084025905414039252898146928600005136057328208056468384351602505407033513212143324119149445330931325278730275364955527460564783480185610605222156762865290794489918197322426816559247787046880821353173111757285255697610360561869219941507676973792133299796822803129292043353560433594749564969477987775561313453629683345213878658461986086777528456068587507343254263849531408574853763642053972306377746206855127956638886750931577653112636009649759615377220977051757617628337369333469791930091622800510667173932431297564464269002264603208988354139891401780780662389927747928945115431880583980425968700244181212969590260616022456728256844331256182533142561844034586646079333502662703016659886957968161550231567445897108541316592784733423462445519350926543829084317063697615651521121831126234249054013717374710636143155043170382525664688275089195239274459624848014015336695408637933688111435940152377160201584385879025941400654790847721801488878141223624101254087098948456410538193732656129430651585445432835173216479547087511448903343435216420198955857127185282492774596664402418776131184453103516844480189571663959175930159693015247793248946376152234984402656887815585818145194211955888194390780047002005925849056119664976525290513680563725335098654144298138902639229243146728933424306983009778484733018281591481892934306933607859909889009706249869718976319580350280084430009492269699431397671821606760677977429295046767959706348137383441429258008291437762396310042131050115562856173809861000377062012710906515464544127528395901030595962915418560658512118716979362011816479869081866259299632655461872211625349075691314762902100450011569258111209168162436233702165790880491890955204243759242550417508100116911920796785494088742438919482669047408899954081761818260578629628572783907344770825365377775095894456187410666500512933009701876668065673811562465591349653119049048978538829249123446424210243788472103830133422522772959314713940563024971928981497864845503758957425355485279368175344160887447798443818940532364648613969879984590527302493776344452687499097416579396703297923441576786156007456847554251186757171506960833020445142671341061926467526768914743941185688539920541515771437943311663041191641395438843694384870863806854567906139998269236979862633954172800584587111247335960330172426470018607810032359925484463552186186693408809775987896003413155302474913502410352927696947459706850940584542424760630386710424429620625129246523603269916329957476520226564635496158420381092797276990986884678940948633534865967541859485972465777918731284792615009982765883483172838616789782438977963316016665856637695810714624633914632436894134680794058336719624265964138731453210201037221347829720114497548718001336880376075647645060010224933568366051504713380682818396566846978292117602881673185421358342700890837511739576793939786635894756111183267825673079306131753646078957149076739832366719640125001834954231244992074631806068833618487473899738121040643911274223522465811149249345474398896616980797203649013446733537138126257477811500442901890621341913708600422610326411455064155493961579937117494310325717013918058049681113646026354614330382494058801644676855308839131010260323047287464563797881878259920310368069068362716821529167813495501131828302994828638403831183939671644036578531174202799735789955539632214381997744327892869208097405515323344285187202392217568617782419323631875080028360520471661995170664258426462886334630772118571125512508535212288569534647112483194498757402244402172599575055604554405845235743930821274069651639028517172463466646835438793430751669573279846838500925249857809124696249537648355444123495459726265277715285981914426738992745397340210261891407418036894535737031469805726792345041414997085771569936923991529395177110805754825059872165649483540648051586007381697885429612668576823845825973597791715909489772836404495847289597877700981975892699240602845639874995868203395199407611994575594255848799862348569743463904677733694044933650848796471745968485507217714975445676168637539855721763926207874749645963632792756832918393397668155107222507983633081427548949845368872540483186699679370523915368977637963230281724305757058387856147956850207700224418389760834917215650337937663180125351634458263218104527411652393721598295294272956016311739975274866536872148168132640586535123849264771247771814327532011264849290078063526054073809233042374937655755595377224533766698828009884163460395486753334690289980489158000166241946662891010879204179870069974579182446583238085968123650807736595780313328707487770863264778282026300358634475527412288808522414929895589104911639353174300649367485286891799852526156227955032281549906049682932535287687922348523113626853618358527330696789548280356131728030881693876675631615343737517662779204943513355928336931289299256440545187696321456712569661476869559829727802148518380665129931880807204176804362167212990067528129310972931634773366467946901334042152395065450148142553868469167783245977370734692455942713148700591250353654181804800755597491379344025743219706575375122987912289561155860355441283777614363751532230274400315186670743611221808640133555446593040875348175614581241010340241747216874649923510727346809722789995569905916375600404170404044707625834946588164881699374066475959613289103230424192198172354837679459672436439257960505115275812082098779008631944861004343144056926237969897996622100285880317464603174635717030859838081372116690603009874829759400134751166552350044001492829306464601293792217121108716601168319232482739487631242059418550141744982619548899343087315770784087201865512819340162343434361592329262565155251087241476131051249801178317038449529428037368205511121813196037698517782297672973128437775677016748561706192255375515003440065672049653990652042925431388153669568671858244049361310894539381165728661873301101187122065460663277142730505939439998281997147222355063658440180203399320540757644064585452125630220134731812530797153126212277320492307682372452361155261024496286111348445798318796958709225010041114591095809627942616627972339510073821181769736146567964445447219104931502049156002107386915547832517720207653265823293741102498554710408571028812084658167356796723861530362502120590543833537243112572332497973880170990790849620091638208707885867250715304222142286450837951590629192101358949752569469878487650868193566995032704596270376068036869732610057875064569612830266098602750111216911581738102809610258736476399820803798773413589414247594947197735359823243380592349438619759031843037747219393570713722898887686912811165409734148766334875685804702772237167353199334390551888001249983029493316990229009111133221314821199289525763583274618870518120264798132165593454081856347055148955695060660487447296273929148772878791468487052351591864632991508539639473282052319703581981497006028894975302176960054652173230248977821322183767445708673317863529883660108385780443946302370093572654478045629382658238869170098481986226669304028290644647801988083762040982445703857018769963529372972721481662206411055055438283818858661432988740993688426548171075325713794828758441596292399649843024407832065233485516623635400813889811497935437732632277569783693398674975099690732306705803598782394912209914031805704353849875781745968355389384619800220137032155979115066396460374427957809438165988797901213250177861593650843295893484164408825392824523324139525388827851492593080182727895406312802820220331781286004003307665556851878731595811105617308046272195622013632515955457417453800448370456816265503772158727566001798725189438425842989915831911886493814101049190970078644345985424947514966077608640171422773150253026397110725820599420151385396310519873209377731196718132408346463999087028938245163324166927096554695864650002030133193668306647709656972022767523844487958594015921386221030170477050777229418171414638195809346389559538081876434400030211702187798094144910939255709231779876247582886126770937998552655160187118933482318519086910837907058720322145785564763630426353238371110153486414384674788349389573217452838987156880600890915436186988134809710058104879800752893607790272048355356995519859848947585720134772053165663610871840999935577017782262959092710541109015754031694944213351444358117986194034935980016081955760201632403684515660373611155740886409587191951934561158232532463752809328571959791909461869926761018902721626511905496267158071505316905507690768059024881614334881150693347280242490904910262512681360774203806450566050168953554778856300125910689604983965355195497017193255973367165843116242559834356808144016055403088497555936158082141324358106778773635372957743931210438769145650552187635505172879986200116818346262391420150927768381276680655953833604428850616442882191344753710031118132296242453826910799197537674109775443342719359294463351805514278785903501385165128609728244417136889886690983146489425144517852745182990510230349413990175076806392789695551572934630421435152068402747718328846834382507699206291404534547153815431057698737053474954755001705706204628396235746333214447573531067292800613943781615491037131908584638782776470275010372830792171950996621005866107643145574134812428654558625410398979262521520757552250222025571087668279563334704887897118907362890321280939215136498369437993214195258460237563224030969321292648981564989165943281614353578495534674141506517319869890366755157298959117236993189911816253104542258133685099868010032987072800747595487145418879518832397269558674397818784002819310244212438156917092369627719127382922961666295565379308068605795144715391056426556961334462395882362220847264441642647313762443302414320872340874133353173235237201302470947290383903846581358465071411711375010715701932418073090824391592221232622600101448681329350283175460836688951333209072877284522670794088662856404490506820666091100876361123528002517689683418053384606085177529120905244212857241546892451851054255611928206906576130677836145115598205557762166325820246381457580887277924997667916090195327364931336497335532350960784466096397354194098748421935080727249310733641817694637704091059495822041340715936580587897040735636123083942309209370397663887323728135611370016870603676577224202692779856308778559768062872204334909439138869561741581239301241574866135679298011652444104425167377689104634165973813636237028650749554891035482716311902640788771301710401616926204583110237481863136642681106883131664133466604601971287135511439445148242183295725999105050404627826569391997271813034886863631476029930548306840208959087306049117922845370310307586112305230497040522154009716038725250472955235505276293881347742292044513802329749447299239711418597072918489960733397297288026563540852554989587309425344064652491226536492598837045366048906951835379120143891643856409657372262150740754742243857175395757210055189708835287436351872358263408148291375275328458798716196407915982083968194543535098651222036989802710912568298964930687268063244950070409744680439246599770586249361530622467905904125451040046406343802929706691149863081425509054509303497699893855175330069279214096681351908538207841191126256260480653607758200676562362468481846326431954555579836509470185994180737161208522603166909540635950430854382177473332275605600570200625637893093189343196628023326367775249165749716872995698750743610828560529793746320341076909911868369709948012660436169123561779984007226232891086701187727437613589862886399423231808650942902656683208539135308250641784729441185302629362068666238243945276143330151022315007301213216609567065844697245372506368202569176142910321130060903897739525482976992868175296498569298179606196733319991231461267605232116306646532128680559237327776204099211123464673925241785748311263058112181417847979139005550709449232799509294136357197175156204195089505565561074425518442359285035020122453176736564921187422598759618642030099668838599537942981210596910203785364036142596444850810734655393399097455374567089836127122227055971988103622272427197328132335653244328452906817645799024321245195670323540932123796599516236494990953652400997534293970486230379694739115967547656319426007682136729552775008650630579055185668095965364388640495440192917755643914541187807645488414749167018339917455281507265711671631425989851217433082637479589320296534232234924984876340444966760044893901807883351203726025062735947996462232051952287950284554011807129317830161134292305035596680813036454208257456553296341783899454313795947613387690948238948861976810465512472551131901927500342999638407372098731210469163761505846839458708113757105219581293491842184094952233594195937327966542141394716586777389995019994713805212836206908317871816251720023915494244257144007737674664149815723868971868682604902751601071536722802401309140754167912421127825422159500867177685168161579239080425356646618685586674540769211984954739348584747245790606086056292092281604498652866718418713623003215462036176646528988790713631087840057573722433707194066906824496488257308316544575310031508620588877054463116440329129049227471757253023232682533149234665479566108806000425108436285203275146072318154825781047719541585665427690769429688567565771291973599715830375152112091069361155210468256456292950354839222646682461119406874619784708185671929446075111532575666316025448378562959406413375705519195307908546954361826063853144843265176010242118458253508497817588629591607134299338897878436180418858389348145483411735451513465757057332073053217217088581081377001806695917213828664406383230013372539989803671831667551373265798611087579698249231697206439217734569982998056709572911002575039253930924681632557318810197531794361783288005357432497613253434786764165677923270538253688266912515179542937544561030376783109538893326198803556397126037969091615487074153590657854870501674701120972694879706090943307817369533095535402674748786469391758347410594630936378128641537645556818300652661515817967031421658649029476190965253522083375094017577358567458800828173311753541904733798772144244599428499852277763662312425956790883867260283690260890463803097672601319206565475921619587994341024305590906532457482284996646532628264827358778071027696198847661601740346486876343927424183483270644286707297946872256786147457649335307335935208502084813230020673824098681379724172345917013188439150883921461250466391975156203399649539283050055844417085850177135943867434634787690332232655181440649518480916418420263760787862683497988958327202797968637952459306849966546855694796357973387351149354341174390581272532881030491874879649392890820731961317072747018681563475597985064902955916420960906332135715003526897566180192659525788593771229593745568412393696598157736841987754995454354471950444902371584332158070644513054566517255387227850167426610237875059650342580004854224317618240540860736048621266209959123064922371832275140585630950596200632197661099178506713414707962046252696134896678967602895944294437235611690744805957890129063340717667390596727505897386562636223229235592887966863648726229508377137039678890560098621726727387198513653033126155572120189814025978778759475963781513658677107814466338924089771316181531981011414623052944231424164089671885400465329925711648484609235370575986278993903808364619447664512093250827997478547859994648379491053944045876404896483691487116213184430868893241377514250592709297411276791173959785801878378777227342817503801000333649032792533669741025300777407511076554405592371739389627627855928152437914056243080661946726312638303217585825710870585284055422630546976372869216173489757597656033813337360487504627669674638849664954094029727918298333906330219287801452878054242377999733437997166914755034352763086314319747089952849191100135238486830388360305421949743089052638335734648931308230695539922195979367627034667878715666544209502970156459092862031424041144294578603577061400352682526666757374103170080165896419302380533815275938515199457056402247594072106185190744013402132977204290079839845109387340282855707947095827599871132555413608249110194642421330931249293933776741714252235239224791028048837870309100849458987864003446076459987247412992640104569366099304398322134667047312142253539877438801523411735431773415345040102404220118500818847484630537143158130722844518820513685668456543797595237894947896872787712802875242137295990103131547644446317502560985876439800448855426009970149529314874551497986790407622515734197158936311682880486697173147630555152989860889940279572382960466678179504139736923326543405174792073213406718089787779674596028993780524110161472650535664343471620625731778618144522362292748588676903879219905100356461717558822602774821999074280382989288314528200312461825215637742474836351415437288655024434153950895776540843172094800646542740165412599698668522342365815569575443994662115819690926227482668843538961932012646588214746954946099446886027534355383424929248494986773166224780622872787914447305392738887696822244207103892551539522174098840141626955958312108193911580484449999328661953914035469904270566286447330306713351513924607143646440645273074128804540920412867962840631029348832661778846441201285189442538759266041485692498676359677680916007557000624793021161494286545295330465532594742091116760857483663914520491750157253080440937433529921780148667372243090548914867367426973315021361707172720382175580453223641887342555575106081205956793077737542353350872030717503147728083071687177125732302231688849542050323542671786248123713866898554414670495044199432748027590825627204078431061871422406350686682781727699057101681474232888929574265826824767976274761836455146577679678541625831928502533509171955657153889996059802985267817940404352153549431965664572598273339940075344456671864370914257458203398401549337158194248404801865446731495347279076266923616363178333865905300335015002932232730817784624744030216454727388151364828962110788570612737074899904194188020072655192737773956382165012197880270441034428612638899396705640905051336016415699684972397989748310522588158819051388564609073290595517055047011676817833474641429453820095419701811648246220969413774807907377411420215373000884164317240957855879900664150412672161720011727425209297561239227982827367608018085854133343754035091609152141467689886088268603155217479048210983848284432211670236282272927699578117127794671261683222959741648356765524589203899695112824205349172412859540152821718165015992518219047495515184172338711737355327509499172988148231130567051235175760954434440640080763695137872645204582032892557452720738478564016835548029326500095880664844532296964753534563463921200962863980927132771167067142237589990604674447978816248539195914831930668661784826000333096148833245445853702245560533500540680206512515640251547266456594880459201513867758435949181329121873238548153979303895036673402292819144981120391923461677417940195197387939520050298776548913017793854696963984762595508369702199494327713836689099291434357137289690493267517550546501138554482845999015809778471292385109318302050189296988758569538486207592454266663407198930929487956688348523274392044862709091445667553027490057249543060589487435106383115613596537028915322166451147745872476282747305055131147663093343846917066468070240676062197558800372649546995429132596533364809558466248526204527328263940121699767874408489447571539113936229693599077753435351455639851960671865103896915288819181001195873385339425082409634370447381581037636886918947152703545084563833455363323531738771254089782702793358344380892400321432767113601591644217764735218640248661283384647583647198764185768735137293321760924532129926842501025229797400195142513862671128140740230352663786578085774193619056109320990121826930923853282870042640036765646899423463051133698155463345163180990345461672755511636945640683355216976667912131568736820169173228011742428727908346982203730736560934751156630892660541020041720269048915898525522823029693417548882034025057290646919969874385357350322447657859400975431065612454302610045851198755579323666826693032955905394221713337811808767337373782997355137788069982919591437092868712059994728013104177772092646564235364319317126818861362454213574611340346999795105125198684577375359233607145825653443238155723345864821015173102502937032565184852373622362373240342135214978227685439334036186114665113585019844293362325232734321514189286857045853329273828530745356889099231903608643666232316826501631056667384740193217892395381863682314295577952872388623121777799133643427384069560115910979688161115026175567123306946403577823878126476076768741895507170287442043627645867841419469411593937527884950962537697099045661059668326110129787610911912491090608255048269046922683333064008880171359911417836196216772019945915795926075070642819144281910271976871195317179802614961957207588522306739585245307341919285807442987040349221342525629840370122347063162203715273167812826822805788106001279190321530535450942343072788151931479578480016082176547453135368032868644104710523430550479723993619265013728200318367567096187738239511150275578026020425385300009725895504467271366124125871751342011158518406272641510030670107120536602574100671298067637009944111148199870129128720510569072025701847195199671054659432448763936902641140442392310597835508644367281938649235461748544444657067123504410373821181867294312602551885132280118124770954808920686373014243539477588141423942242355218322899837330501478325878658050068308302015771160393741215906962072479770068256111225335853640832830332249265657940921082697937707884151148592431360185130604336735332212245722024046561974246067494471671381746613113425618818832618951017217059069130762934127010851512318174490532043800865932734931399222228149576493112196937460825929519080109378878919015414018591676614005753785929586184685435054130777761906525342907560897855000545522902416794575662197376656984115255340040889270174172527873447615779536549686290031286548247164147462138312044984845344780532456538000442116761458317068334525425428879926081779262937461308632695352629000933233637197578046285188410702166694436351300423994250859807689583931866415439838221573708096540885809284888588607447094065550104086061404497713045090659758305983100117320540538537723363756253501406541413343213631624068515753474429913416060205552365922145608747382480902710552004348445844469423057708935433920992487840771528233984267491257734142690567094419209678363870936160775841821157669311596756236170817772643089157334387967257462004439881225842592274339017959343906315796806484250419163675781500019314129302138710777339123741071655236222173287661355420438322877351838505312092583551406498250985992094713603158305394164584591909706095962264666449309973620476023729594210594363765112802812765287023874027204994779367209987232717818935894917838915048823607456900329516238734689360771136526294438484508564761142199994851335460234693263740862746373699042851699308555909464945352187139469438009717997776549780355746844466659930166746117319064641921853630474893520306625420211999528423531436695449610458941805255851913846102181663609130533020734969376729028268860199585683143465798402420127592182021561477097076413068611037001063906439758860468048088171677158023191509038062802070503360560059185907145892138923570682990889032568792300983944382477092144738958656223393948636356732958400010820947326261925049105764502718866646498582810645307511734025503906024635978345507275876660137031419096170875260921811705092331880806596463634551797881950562748319173938075558372099455860035186734288693340343201645605352678350721407104825644742827644139714557289640340861766558892037597295154013241786787452091434448073082084225922304238913563065210684629247458658080230460757300020123447213785367103994596666511929247980421955968586327861084604633399256146570541659049864711541172612169946069034958633976671880320690251459067128112343021152950736587319797652330827682734764522623094301411559259879845504541179899524551836609361435203589895830516172233271316372502607677069567321043866423024609944657748848858737119428407545332646050662380858641857539526288848275632714769074238713763809691233391603896911815876551464188072494360530025681792408740635328437072819990985850273160325303319563311903607323040484466419316419580526789023254863527274034510257606126032681100405932420281167734082746118171266144339215909322278394595217432563947265935004279823975830261311846081399364770285471006253554285419123142860220346454588714975213914435457898738152218320514078846862591130672771257984539723994153547822614223520665346451701196534470770711292764556420366433875896609643957450034782121922598863712370171765302869170883269672781586177647869714998643628855455575506006093072594916218171306303198966626058202593027223038629349460878854774565281041421122012359011399558831508980161217965623548901130196431094549077587806887989881840023362823515949335992107942029478513320715142855748525364218728893394201730097245004565848023155318920308151258645539636262379427768685380024664163620227815524424991154890948491135958304781704008525742755982657475519104250964201740371860598718341561261463287433176762484011557914965075768834421000622188268194751963815143036260705554256986238593686283317045515106494209737198619128159376922607608209888676357961188227593202860044334753420002592721290350169724226093077213019044866453167018943083824464197458883654680799363726491321850958249949385831682948053139733372579555271338289384402775765562511397388685080543294418978902198329304646247299209787171761458546328112877057878065173711502935873469940862792614097931711993618964393530172011543553095074798962917604364273802913547402304226098074925307933834141669858771601797929050740607661661464493608014534597420448200130369847070224181677133714131298895638534276282117213019504369020366980359145965418246747209706197221335329065608624112402368140629092625573507471885641872130036556134168865261257117262036643235260912597831793058446185765562770090086861925232268331334926708066816063227090986660499810173889987177394933683726671988665422134665132273253441815231527537059582732154953905088430403789573495372863109212556453297312849872304905184148963255805982953426614548126783505471984888675438484032953474709940409047555838969530250956679173421616970522433401053759229141831150723623547279953634527082255106818586784529488799279339981460073296815224141516354942344921291944745648859995856601831519808654032540179778798169083445100285844201878108882591062971207154825956367905383322311037310190724514348046574447662121132260657479973331477212062478353855057596880900147277105125400141382547013741943964442221183556394034266745551954079229681462226180008118373842332415868477577777766613646176625373500703792675790940718696673637174284640259245230812837763208822824988766508501184894109295605553708003779945370366045526187771104665806163319263859177261308232888618267317099303476712868346994530880377369801274276555577669289181078235445574223487836421027872529602277946337292774603305171725835222879461748950194730284520390901883108887923663046543533014901933303712874238922319101409009147447375551234131098541655413135102259171718879422531629548724485075538522368668142094221914658908409902167377261435515293452934964993012499262368813043843598789284162274528972280913145577285154535666864569401302814713055355748061579408139298275492790656322777225829526393349582951096885695222133028707424754208278404012785871205289747553623232317104567116886336058930266457558543948590408685474743727393068194066892370646463477842578249337846449421635996923097484737806917393566608158404891109606780203420154831668091595748729157508728480825907535424899195433562721987526568987307085782670035900241622545114441562803944369385084607608330137453956199487373296986028636433967911521730109355003961671917292794908198236407626461574339993445515559769264938942719797366057481235581955786505558967635346197126991198767313911549119647769845933799496034354299419624441449417463319100423882904940412568967900833438624906566241509054466538924929945074648669954158651474935499180956876001094081708492988022412623473467077201517275804507361906424606207254469584682754897858800571703752436058326405344208802123082781630016550708831039554783157454906139936557127953197242648612526574831464901300695629077032546926931247171629245576128937163304419161296954470911585045615186232516350022461404712897161450163252587625716272601155252963726840713925462606284779251074726453371338569564279529652985673957857698094084265351890435204285839303994024105005410881410618140086037772570581230650712848872369844403086513442196339263260467827990611995440424332583397912430261740616664649236452070924864304084528328491256305150729924485368299186196996824441273004966300833638306264944710958949623029975258092149681982720034202109576785836743384794680715489318839350661051318116207723025746225984623322211062231264882224480867470396171476024649875752612510132676730548598410075716816549636295567908855110748487345517128572799812250423129833531127058960263879963171331969019044371168548686016224454189830177889581790021275086159801374191974964122402917035230439712316353634442320417821686604751992711028471060132835521035975744836150271620355849287856036675171264048024396104858606568217607508697300379823355636719896642444146806974110375285575076502087085060582392503827250328230192897115169558458039160009004718804879088388562912102753722364355399484090158995315629526666808687329175728419560524877734710516925141833261020603481466636508696219271562125877814258165910004237088266365306498603337067800250241408583061014862627166588803131154716011931409228995394867910124345340931314598706174936315773503018316791272399028216771279288427138641435104586521934850231368976454124681107296280676388290324882000355095463879988261065822668269605306792898607664509624856033314714104327205921917149495164234129264035802077245763378049105222423739608614921633644594030922901385586875459580171549646877891466860822446054295930550187184985372773234524202820471277800198176313214622184535730422660483506324570753392270834846288604046637104648220966906556585161212912089373513551640880717392592973355209890587886851075893843156679422654640853772125894818945005437130665446915365624337520919859678821140087629905639176040404226363311337008575953629726313719035199927511866852674168422884097630316937290843477671460964172502209057848500928700985978322382122856666642174095880407255980535954494194832435683022599912853701500579001775030582097378074430202555925248127843911315166448696754037140114471118343429498757877738678720132191788071892965657471414340079489887902226086119903761059985170040301816831047175930422595705570201090499573834526411684155972324111788109721834275524877675611299454685550205520532221317079089327291820137069291313855922286693243095488660034095494706521277259806490542705929141149793585264847234905507386210469639758725650562629295818524421097385216410896879234635135230522356763956395257173974110508854016534057610249552174804765488620490213861780658667594275342392283586085563374900995425548569123418842480498431409393835915473368837720461025853403597520782928946270033950520435580601178848316832637638984213760135677944537029336238380616038142995124869271686427017510765239051144503224455312963272593953026149981803009036569354247122353392771504235501676177689887578829212852933246583170142931288836114932580368515760774496584270166898699330792565074263970573957964377699035087309963851530437752015403970569233340845000113519385794209783501383100422767826770497625622646135811245550207726278693575263011891242345562741720434568923128096433383241901977711071756047594982987103739340930199499698039678896644666009187573253818496448538226964151324171038919308353969844419920166710243414417991393917688488493683072552984035436676219310773544682047597506393351425160325623167563516366447463997444883042930417234956515545605017212412785911681832264031847715872000174768412802924243980555918855710859343328140281397829047488530737537600928002384154102178667591537200373692527117708280547006354762929703949716921656149475001952615572934832833579765639021974857657620193196520285920827961732224577850448012057857144641602897453650643795080278400794100092055003668966133403440419267460195222071882271738711228121346541622539686689812934168739328470936030038237222205894592881895168375689233519948498171774112426742440645118481786141444967739446404908591599093173453286023370157720047077360801748357776887301413606306559018534444858998100957123119765420609836003105378223678072946557596657758295590506573202094835712601306118489677091221243385316569694636466964880099235838046100765229387766326600634159726609009772843185088909210270354606299087479798310261304969339773638126922579300016127452579553905193057367384943879145407531106172881595252263169154398652835627867819187801514226525881205097804361750843075099825543236695564940514569694412818219400161956091133965250918691402741990683954871990724936876067323049714239558383024215334433192453426943924467656636641100540867440064870002248700047808535637055254044013237602454546966673361556956927727362082010809594934980435752268813461863815302182014959900671905252648746471979216756981482303875636661004562476399171587571208562859188236032011827251918253819413746195477258194467233496104877372145787224036412466925984968594980331543772257291657483612592068925170382330792561476303404296133000483673826420383153709547203762553488820551129309875080221101652645169004833492903796006815138217817615745415640377153128029698322511481899529349627371787141513834546422712644402920009775467492778849999220162377139500608411375618348963094069962861793915050068433128094437226948318652352754437416182089056613241395454273291653877718952950449943495386795515325752005800231566532232014003429970147498384408027980530559162225405124480848949358984090278998362602103909411928617720466839551149626684084904982688149792906615120994245293677467442517698455701571013681000655316373234825873980237933582604243271151216534814762755037496603659743880582088604418288049580964808122611649053837978120998852275222309712183765016432958726585716734648520155593541804614785859475440339477419060663109829879730462801684865229505263434438863218693406635306850269655162628025982936984307224532768950668381540190286857635937758042913002548285979715900822608710284248080134870107133035105273812106925017688180983029342333616314036087923981905903346980466834002992360432076474776654359212456639037601776980471493288958162585176111495711592232852365463996197981586748506455181420726041430064302604629405072727133237172798975466734016592630473085926033846533664798767530353942016923222293569048512410155482620313834286723784413259074295257686418631128415480138836444923158907957168727243960732648705403235154708686637732605884372788761933128282598625090236520329724709987677560845075853263360601401678910874269027252635933320601547121108485143299918439998944622126304130217137893646701725402502808303387902098784060275260161609992470023889771013576806147358774546807838084517691928301971247025622812602483084104657168975395885016255293467596748437488258994492486301634852104847391241282234513422086213053596503863537315581523385190854072158404997105122543989101059922217535549670093734923630804221736687215592173120348700305818997048353385011225559875509103934889590525646468808086721830615054843942571971255393196325219836564422172949846365439154499019137840352970797269400928411978898703281904183013440048572842918902995230293990654602197518069701643445499461369962258316720749376860937411476135901867773898009216053543471355593715954632729492667142733100837674539472638627345992863626058264548754310848358025745724146937389875161581393111054627411774911704056389842749959775627077893997746744478950031721888566451042966771559943948003510083857485451819726068529630235427376051757100575013195578966887415267112969363428839892144804920161367181262861588409782905122047445354072224125629093679881195538352260093981395988092004284739856597247917366538947307813251939975525461317979997529484967667855221404156737258323679533070560417775380289939508509485191979006007776923481337024958612743712022797887765450849557158383855874335595039271380251428815291186014158194821162683626303419397002970563347523730148661307381524805693382194969994738778070300852431868851001742342260984795963337114738020033179935575876892488462908062308247413729169841619722411323615258864500528848057815296433753656937760684754217851963858058488723981256268651350852286411140318575671015381252749672085454537953156493040853390582544634813173129987996768679527759853632626961873613443136702332860513082731666434616682919245797141674282629524882820083711889486052338278825492100976456258375437485479541205231894964356944711061027779958097338812183558163882148769296720023432536266619524898376291480207845668156424164387346490003525459826687336854277945683107099663601487788095173850129663937049837517199213551866546062552218965573503256630726416136964883390025836709571850566496427857390008368347646260087081298389753508812420758209616675299609795464955477163035192043865102797634633868856500304122687963928559565299927874754133993729393875307236851251590133325364499650803999548082880183232269601141962821802453130506791798747103420764535038394199696757891387737455933255884424127043530619237633234338784316103738354763010877448188138426837637630204246310376069208479040499904602566591289681269455236682969977585887088665702315326530556499348372928320945401166658913206748022187360905041889760124095213754337222140247195175425495155492592620876785081805092761153664805506647660979220558250879798219801241266540745172037649555795400010469142262623651898479361660088745869550525088213864759535784168838564509015304134269317508736751319822528196239276892262861941035378415012116436596396948344261457800050117406584005702357254330800993380919717998890871317334585611373994121052907697124774704559941671104731244028703290391194965334323125974226996775926958161327091400377436577140656162208897094084961116065949454121123860496845265831947779830050177476745835315125248995285032600320132259494962101099374725999837712597481040452201652052447507923616819927886507952116318991223748590186366809854482609965860970743938617623358783698969467722771581668867592786566748518322761461920293146446363837537396591005706531127370808293109175427014569847063842562731829583677424997123633891389720523872460264518384275145906121996815658086925188889153024381711139043692434053559759655330449007281921614647066232209777018042328260807605290998500523595708019780278806545020600922283394320898969458694344382799950502088090484812743392025237830934944889004013412601830304947436265283403726231790687257478525344643453663292577213509997421444297397029108392999917255571373186131436187123170688935430539519736678571355913391764122871583904016997622381732875463912324242078775827916936618504770383803923129075502785078474991023319490665376453583443599965370520232006584818143372058757301076168715278032901418182062949601299552244043526307388966605293961765263111974912174316861101074847449669209693558034996015326278340596861036180487366539565423594954931954281729731962607135874474965024740992964595145545186895232173691808044222382172694865507888877572287454211142505971440798494580707466976318251334973933207736595329909017655042123029577505404296918977371416573514753130589627432880626323329663165415245901576348523373756210027766877760514158909644694542658695366302986393755601615804625087158924464414744794526437250971962721914413256199014462010580385644218710700534658756177898099319079357391944557732812650714815103307816294150021332767512351517914240652623516042524639502881305623207105591808097466838266993995545769851556544562382710307002801498163646823511946965143484901423383893203364361518580662725409687536625195978590247613230270233217309208395565326471541764945265035675767989673851268230456803900816942649280591507711846788757713428424074693011914368177109752161687274323507712944994042720694313452541330914299327418473855211185399972611843965204527463232315396939357522810315608556485923491012107618620069094795905976451423225609671051064415822414351344640658108176168194607727777357754710203090557773645467330969613935205424953304783488561175351526555543234269747008060823406244603266498501994838572894542771197356921327665312232192511522230737638722812532805724806960805474859541717222193598730136346842839836591983976278985438062180875357410004816373748170670547836423708265983891173185345403477705188339298218447308478401750250385326279751128182687597117837667910959670706718871670799614608130777619912456784596232455411172809984166789732780543456928160952106268347692619939715434282824033565432126918046571041281392603491831144373418112438444109909075166027052737579175972699159918153767919240258994783246862555291768089455965550885311320245607236726537812502872464476115647566356720092205241726055399340733070698732692629608812696498423874171095237813960813356361855273018459855553870360386432386265175154782515331842072668528585214390720206642885913057780534807630853013864892682115381827304796350795974640867464528413518993072985525930002381986748540325310268551384689890877441217963815391750155874655221274721591010051351566046772048984227528684732992173126057089758367985470491206080181132284848788976609666551791811072506434624288894746003147576846378986275303096569614463765826818415819785169838999528206332664805830998536010787143987837270810113615444939334791545899352785966013897105717605674529613856107620350732550932506599475023625694566850411704283750472001284015269183829361450579816817252418995896869429783251221328501610619565502578925557592530549958758152948500403567008552064352937605046592927720470229031850680259944920105405032113412844145859545523749081663472141394213140552572682594480295659460236722357486855381420748544026851804419035152199077066397359069849649397304773580493730513042053383806287579195280398015535537180543041880182858962406026294103727179361867208821036265076163104829397441889390644631301699464615894255894176628425045486329553645170591752197841857113906730048947739033325227857520747604130446051623890693670583231017868179244817041772119061302368832701791024527134932751851688072859727179774231658801228818128224314641332422579875790556785973919316243438438724596304647242494556787330894212772131062609762684613811054901147021122983495475923872963014959491187349265279599472126156864974890083924935946058586040997230740000729658435872069765065967635373976182835104331988695564949847946292129139739265798039516314315056406025293197915538653656706215175608879126981271685622682129289852202981307920659635387049450937819360064297907191145564842886286567291236443533714315124781093297190696937903560612214176630725708104070230350318449686341914864508160694007507716116548758148232955604461803565714830464797712580293679836570142585628905515248215398226225190140750943789891262793407701883897721118313378022834992830607796158139420687019248949430928313050416714356595908116417534643298163662174661798242380558617569046766759976311752325627194951745237753797858631963815588191090044340413601449109648064473302493198708181522817187981624729972220653996284743874975737750633542086056217860586308979865474764314201669982961445622251217848284781373944195160194471965934049438334737946712735786913666537282384554357490101452113677365969732239819110824627638566661683410009749786442844307540357415665948910196178836787905969354228496978744726841502586399690707822983288490575042691490407533375032596426564249002983607155908338974792982901094676767381487801158116026549635870811803817202229813360142428706480680912511725500429002407068105546275637821407906762963465114463541554180187560239567475352609723462775942468521788390517359432398293353184249233129669482116871652958464790099667706618674660106941289312218664773495614163466166431202168882811480096663722295002992113094886527792010257636673840134938787250817038977479580378546007285636556898997715866587620169790393754434099981708275009482657486379159528680462684107788275003960241160174790043526300606254772105565880846562242607909082208809503363780764102815754854757689133744288428554371988770953998958966915993489309562742555450630725283971922347133647576733994039252319847156024197673660812896513291536611782845809004984110001723370006248010370627332756500148329627801545915632339623578764255879004849165009353762212290477988449539096245960130803110254070807111451177072940741852271368341545770007544899260729222894849088454804773528924509424364378209424472367319873741680835397464314484516347292278038496094078930170727580004769854943392194245267886603699482320913450437407292051102182983378172786179282338453262126657837782659143125228033969089560386645321858619088126293462618112593872525078526799296209405962039547865721803818113054155259157501272424331368436455907020649742717518180730226266062489861481398752259191844280734077244561816155794823913834470260879461212945900919294090412687978343152493526637625232131776145674932614836519607272212300895734823690831049215689280720236455485538147905187833924281565294326574107129012873500831699885804303629965366686803344519207215014729161895162254095492726907193342818133866527294844014272219509284605426482879117825311061333510263228849126685365296711857940651553502881596820510614896312062678922479305786369155096879511271513658117621151991430043405929963282001618016007576309906783196689127356620060225638627287226713258070782176148376351283465705440107149214119533372048201697042738892707303916382292888022223003472378133743864441209082540475173082443731949598470968466065109025872777348325337786703802565838316868187181452683419820435039895765733868260406513730291481427434241402475609799739148098340048209995051832661345042373068379070268600221570528015347237964426696653988537605956863198900022115892293004321624555086555488909120453864066932379174928035795929491595078117830719431931544363126944833354692399645827651672754807476699469099688000987101157816183588040722782589935759152000588940864309955050492612935983147208032407917543812523823798765278924898248236282945910040961728923975796551949113429348902894293150022817781543801371825023979653582880165815225436255196119378505275704430704541547321754622228563229390168121608591591149923591499070337222803124977540291320624538488474097161268623204575714894288420377402229599987044601182620367863478106098018591156246006132249482282480359532864332714245372331667156792973344335863348418144705404412271099931289220613962291279531274989164126785548802611875370428216403136162768568598985207769322695482268091060161625725780977054663525740595668772331084924994195624346573423905250113350919483349875330402493670806073144686944371843921976339407661850300909698153260113113809693465402947362892205851349578301945916133364786852319410123814528538678397018105272254367592689360979348054102488788596289741343271415077639500762270783262946447940835952210776579340566158049843930128931893606647441316171256066490560328423772846174850825787196167975102535202581117116614875216011928713569616863690758719460360075062901860513134560424013961589820390067995048455393902084666722559916781656954301497921778428148277993671679593608848723109707618062437363844682184689336334700858568550341883540152697621762707483603307140066452425841468408225938800769631850483170800831415447258293143603913163459488233534235478229193123443751618987377877956554871064673213026285753689827202120449765338867511963994682460335647430429641103746079385229154328774593222106454879831771534299867183798106412216665889799536294385710737473409649662494146802322284640430012180054253338164222399524511309578852588999274059196149534339056608439580824609275064589651519986641214047096326726578756520795540772821694975851196497809874641774417725472725305898915542024029585790237052603238081759816394622218938906940178619956554002072237364948120729493787902281727288019474473247449509086113145085497813531787418253355754197778328683643181094967689428630389899830096246659975033539154339524341266472946779837262236017761131810767296046418560836643611692413436945279710862698549740468841759926349359378904502895078876522375620983849190783767367703904855700962656128844305704237896742688933636732679220297691799368947761841121433177154450609532505436159990950771748320986609313931542805356326271329632430460126590365544444558257060532681952591497451210995524589005745127551353180578127670487268709648520985811029324021379328161055253586703296580840633837625569342361268598073776762478707336699886031892413613798427817944204302480737432719312820784547374187467753119119707263571161086392997124943849698747892390340208864460210116581919860649953656358404509710272201609745970203976516068945951378330831448119966335958988452681292845345138667032255990161552144768235585477142009783454133899963156704640414088315664389317508691645296964562348079624394555107634441702986294808176340726139180904009546568233114700780715480152585850426321625566393901820634210212932301729881964314986684903800851714077800218443024813897245155376311383817636543891635865331754100739302143205315695688271423922706533001410989212420596557129058795363710900332051245285458190756491778952297264622421962745119427366423891425565565543340143626149399196196171826833486844866719719382434614596270740302177234155305056242671001033635552009970336326646399188314345342090908697302384057627361393685152123178015562343779445131033675581177081511983078123431701812488411295619406065945632384371884661312901456133499350423576834272223083675430035443015027013331530453915172179956640795055379323467539432021687400047110647687586473068594784921194441555737101411808450349778554983676400850439167309259169346907350755771605388214843593345766086575026374633609627026602790112507551254847536349364268531785849904580048007342045587333952261919251739188727087573666945294587752081312143552798335771480676495858066848050939612217981266226493757006314833036470905473872892237003165768819688341651057718364374946588244093377125465950261978391587541572244594065614415446825892657390452379392421004038416798703831159089095104292959592829980602592962608599680008986149596150683880846075978126791209488366642612386044679350483680895999680375084096541388118280051707398079355631773184934155921823701147875213270495501270612684031003036872769139268179378676514625145773983862275138042788574292472260529291659208693737578028943060877883469600338101043634517813377310211374304125493970203725712522960921651055170603792705051421652778454698857048809380299254127175449596930834388648695569489389509995237501204738269119456936883354096835496329566479814356752610225289429633151767826576353303880829821796307386937016806385713620285011131305176721559072832410485458988811854518189008360913222345698888865408353260499523932021117711772015339514151290942195334093833678534639476200504192338010495154847569178331442342641299456021690451008654923314137118451229840257928165445716594409514247398239740214900932196750795033606386891192647539764138479202012106907474598696079626185237041552074857686965628071430683280195394427650818302100025418745454792117100730905241812225604841400108522324059041548236610471604362734706766362123501205715807693438414546226379271866664267504882444306031524486036407785164779915424929590800891404569997251662371122244436923755136513978671409539055064547885035529920409160628315910068269992358323766389818911919310077417981175946729400124818512072373281352904844473624529457867464273628190682084197832816062558923844158474333989999810706120892410903996858027594745101895151127117317651843363714810442085596071287341727025360998368895088263263550812751121760771570915953550575144597135507724458331698029179977149265236345669367954118318238699475684802011535030731485695830114423737741814760435821823108983926618571584624709422356458002030579743337076736474952795518610753967486610717889953793197955074763217344255521909957655978065969372138222882626525995872366535030499297242424827039503555911383608875573758571084401423986762974886647999633736902984033758135948825423754557209525428565734003701484557988920152733768592922893315945770594525685043990889900544588436024806731141639953993666196428744245934663871223023263664357717959698581709062880625012231942188132710419769505373559204192131067689450513705865774657457209308549463638108179037931417855821274079421084953313042552484930946997343665732700968742760260969965127342510890605993272690493499064825262794446618296011650556728992308291098834394545302138811753393977841853853356595303679563440615414181447066726005331695095696691930140737488467310988204994276545233919877007635446195811801763477816637076853197942688648556536737358313672176440462057742712093878873656109329868912057340482799297237922876669953839226063428917345469853817238801450563527232852218326110602940245674272417444126448173665918203212298159161772672601672458766780592161900425841737776387334882543690076332514427627657041325666222525025452400089334954060261746056775225002704982736562655714619093594613907332323135928552694568660240679365334741644892213656436045290352535642440272232460083281611620218209962530142782003328472468576634062799625457347219982884743340127271232048894504197389233625174858226796435686705980050945857133775533201924245300671232915553078682727004726536324805678218144863629324859680662249325554674832121037590068773009016914551773125388618301334084889526202779495953106047732251449675707858050707852217159296080904913349837786321123568733760231281938637149985421543033932881072631738848230253057346775461216699157159592874701556095579605153111525236273186012322036084086669061226756588105277611625522967854432228646876461146781575152283338640670936577245016124532374249173049969751526667387907947393977365254173134805579690779243431022463102961557370647196405609855990102176782103862800722240765275452403865968498666112619599354690638027217192415485057418223818975139354099138910936063223330238758328624384077680498049605730059788502433424116437747380557995259172706261960107232496923241525097611528810211906340274071591488530742852219894098479436355713056318567862354862345181490148473169482335940620515532950439188406440630664202278459768522457766257476405558805960523821223273242546162754921523062338369324564388605856963838102148782158220875336164366885468172399818836637302201520653153135882236916093871686302924260747664697431679130567278690891904662322653300163270367378680480261959405073439443225254754712911474844146973273084122079295948927322330407585248873019111875945753062944915416641611206947145335276758603015832611578305065103090264459727759428191209545448103661453254057757846991043805262273144458974262045983914203321446938464163618604112155121543985727157957442217359417492815499167686036502082228542638166373426744180010068280384972713916749248987025159315367934116121635167243356019111433755651771070053439802615675222300986018283444135663474932400698163388912341014285593728381776702699023323582127873737629072162678936543314785738084248947219822603338430241418354017151045059448712633829391820508634021943654747651333360866849269443034121855931488522060301890838233589053497557649185804477067708189854911795551941637934660006676267475253153703701072712951852958997174040173080297717894302890226454062215282204747510918457271227104615881893357574196928319469493068968942755243043202738899495278281137485516864417646717510709235270560689768586198336652596698820166227568157972415402266143102320438591212736912956516492232687317869877222686099229034877095960929383458411638267554123235084644179186702435747960263359369100138065742735804024369138607378656486675444455406435400929251585520596372777221666327389347847362338317315899323148468786434068598186550236850547701201498728268686866941020663109868074839073998689295375594152759433986044250901052399390957874052481555905631503195504168363318855394202750949658590258764711231459290937993715174473607328777822600449165544222349929444110159478269564414491725205054713307904650041350388511339251813652317205285396710845916583640545570817463621552070756671582254235606132074799233584064798029335239948607483318551191610957721860755447151857390063121131760699388330580122130152098796345665354333427353520687736283685386736555782704443685856563725347005858795741525448300213676027661093606183536062849658798503799679705246088109077445018157602316473950641709546928899228213654010642580192604310209426289330611639747899026980107423299232357438258320091112956118402648239532169183067303582468705773761200968349925062084671886681729153039221191769565069008631678554837321905955239481696300716600619179408382220239204215347779161044044621256773964005936144252425548796002796476477811961928384762559680273475110796069950623591135459503498113491163661854416368705208850900779141298543899629192599296696293876132224871881273537381600472233978533152625146985693760362777436144090173503958173717757274297113731791791409996146134193193516305151741043755105051494233824579402633575035088752508262145340152737019965084987746995996964820480187247438608224787335920833246003429746159980664445270056822132365565266004910028475657667394432538905596610177203915798287580577242403975544700012390385984626228756612356537491604674900447107316550937843830573667959313267996709281105812392424708447708261055934484867156011328266098086864930044756277246911463452372088987644441456619378883653954063394745649799721819383405272293587848239970692616850126107955462419680180069471141126852146315486833810015891487643494488384002974111282231292302254304706529719886398509994975663466030669783154118027093412483729215680828459076161553086598552037850313261626734932435463321673955622898451320502377987057387391697994935541603080262017989384509941915796460120049091864725084701525986580383337354267711112708751786488882834157243798296834226753305700281897348793595831283115160973941380566963601723743286378947252688328499763870834712373280456327598954776497138972684173316791014064866846103272783837650994542104681707079844518304578998479918899116695422771800710111357181745928173379187223937476897995736728537026301344858649876087643722102009835282330332222854082533244834970286183950407148906620029717686096028969306441182295801179751464082028745428181619803201276747052389086571070485309811577316028246870164734860642387414160464180152587619953795063569637341859348679922573332284455023510314871567686512002676761450629355442559443719885784727398540471712200551341493830265187556998325989436724834087819967947220156230370037326478226379941025111884260383996814015711157176970786000591095880245601437442566975344824010837677693512579855835443558366828947692017482803408172035825988779126962684732426824370616436103623308772823989931709674414717767000730385337534923938268041040079362522458410028888172582184350002539739536468533066950727841521571184921648895556207004806855576024701109716861720063917120159414552284098049172775111169152595676833739245912133060341253379692317271318841674877440891332226471319566648947890083814148690174553043468969982462679281456602783869384690435958643700074450333239848795019555747760012299918125912325372896722811169598580656457683127691551851122638493091439144117736787041516592011941292427210946007887736042276563345857397866963716278409851420265542354431378208343683111813393424504617434869060055200452588654159142307238367085121841926671166115996122585866355006385743538076996216600709123293554809963921579913122943903524939778217776104759324443703180678922265657573376721509100907313745452748091546865693116649234402014356903535594093714945816569280762572978720379648211670697960272092276493467946817695844735095496085828277143366443232547519459740295499537869851737359920149463489822852869814870627342770091755703230599554597265973079531171662366707680925237363043495055364724969219971416569961730238995109043989448180826909183941650874381611496167721066926996306620013676111227665792260030112362838520217843574206614048163524340122633202611813738132922191608124568093188183593131212208543086797775735192702895167251893037325121092063426870595496216139161603357825995736026508665978634794351848845019466707257555938651686716240177953616478697892703858406727134097818660704993852720409681368658098348562119179600209998568498936578534898773206441544610957454683119245071506769346831134246665674714927135909725088220722682597435960402729641893943854062763242612690001976876372333393023583724524333522935991064429734223287428838754763259977675654888029312053633598614293353964615144859574874880856468664250086759174714630963430111870632623797510432756435084412403877814926182890427828773376907465112660152621666799608882963863632704081648727193469952061948220412798096895049503647056467659880076954008110272725793155405260321928142274322648355782555981154158064768277325789359785813682746151301720409788998782566813538360779848102263653186165582454853474387274098468291936312524839217906456442717435519876200176903836167448802093958275925745140504289524279264009910483242489189640300051894123479739908426625856477362509530822687747766391400138581480467933735434380023885444451246816592954264745405208127088268189826708692184947597702901066398030770811859399941220687477216883646796590208419257987405763047287303529969970418420294009700147990688720405036833238790564931415042870046800396026878056513717689180669836279816874824849082177421027430314134799693475078161484128361620797491075138114935745066215891305621252766878897295440010602004140683912813479850670214659129745685402139530842923569633206903256379087054269565759582950218197675027553622343058892089177125042022679414777991659204675661083885122909818873118550108631635361628289338589449742175504496658277030751014944491361244031276607651231613407515019413353593219131920620449823840728275588407749546467348252638554112250678595129641185962392835315236346469995570601934620690717029130665283283025844587947854039521087001056063592990042068258152065431268548010132917632600389972874166543299600494149833613856373161988521504462194895328720839666262202215715265426255911867587155903384121407719646686931245548057841290485484475382317558914168132860796595705376804609848801019623054518094628343541477090244438572781177324354417435230898262582922914358212439088008671372225536819392889116128667421435944700323063297604349823140847658318076546599261644602367517473651435525785505935850476622671097066193833218749344016573030873772002799223541525267352548463117012306480782381303175616955241645275888629068577913712288607496093896380142851686918213050174516377732377777746461274021832366130059447154994372424591086343148333238723309547504123301470151701283514182534134931355605396266306866635230890178488442756833200350516685785035438796050046591411096245759523380919261122464531168498365843864800572714944324724758512814606231570643973077734685332768589840511605707812878557819607793527072145807889692333688497959538527781280334086229761036024582639226687030830869155078792436289054056000074785224751575072423092239385886694487162783911581236993804071421657700515559164365976601041514501578986375462466356538963324718262100252291053933257950170542534692673979272355569965629898078800876488111471427838599599552052853826421440517880695088148201464951430039308312615588308311840217723935762425663318060038204252612035574757077415360288500084320386698812314199015526699462507988618858599315901999064973583741866723321079110177756329329360572535446832116331292427904255400419041275284538165385284332571073078501116165242938664808130941586228714460780050500520951756588215186812990364389262242804777324342417676489195426638953174960214283557970682472940067381224559753591129773316124893033814459936362287384009045318645686963728301517610157278471911788640907056356564395833963704173878510173362748486311828195288211010629937190415150799598280993324294966633753530615511636568275691801275008372688446179512226812456209392551930459226539523839460214569489981019831637799558621560605351902304578453701897218904506264797751224882117102550835797241340812468576298569850306888723998913648018493179241668950937803187597673826211228205054401061001942523970506363002448356301320857043920244214620322426938090295852970228414176606829079499891212776719638497413875097081251190092646874854655883909576967435549762621804939108136676442330247756503689925825622447708407318413273286603698381780722419813012589935655176204705058638879852585952802773012674379890058700296034942851312833762367032843589744063928420070280990214062536805755659336716709664924446766833659324650074595316869672234264675763312967182261889387886409306972196923461260151251719103612532701203691995949779866658815807853131516098827093130373998767099660073347488236548637101042159182943818994852155633349516435065525937438885391772699809507569034690958950667814536529567244673611176748642018857868104980056952948352862528101108289617802978041294731652957658940442575569306849790951489510510359414037077320426534989396088559966501369250361669519008873415230893659574666175414693695179912242974455727860704604768608939642074042251010008169119096834500978011386593469981402341029543713963989011337451552157356282482468362021887092662073976845925001393206447699628715080767732646416544927498743550787129033788307069047707554404674922776381390777978601957461630464664012663853125157077078541222083286657338970313432309890511294346584369505549633006070278150437629535741420358737050636826397453066885292188398707572966544786256212203036047032971401322943838132000492728094798298950267200758433826889424199450026941605792749519476762100529404405842172326252134544839591519902811609169303545878062922278569594712074451438148577772354733926639526870299849567851369613376201115998241594685913622412975028082885602533356265694887477457556239447504646336114280964905424599615162119356470604917999590445623235012431964479158484355547591841159721756240789109991289679767452849729788211749079552610306281172636075198910031024668827314485552978389032582586364686442690771080330528583891332837219733029530682992788382622502295766854359433667787505948465093152441435986297440212170971718930468521781502180970755868212808844861153624918950033818798709257171326178004699634011360128711393860973593353126307555980372794588764365349381691077360790541210033578143753552059979209072246761891227577501466062613584922816803487695194393832388756376544558745984042739660824028171600734303027058005903070811826146100684937367900820709552278332630916499399863429147579914776039729868003058493461744010166053484002343257322767272125687091401875316163454354903549222777214114432202498262771689679693490881026581145729364966270903881476768861818244609423668109952751081854286116768799974786317363738264526569446030395813560267176548945303613124229269457106298886262789934970423370470898095273328297245194489710162082111199828110922542896060421978196433824251500196721219790962282584562763996053335351665055673024227590440769192386576027996030033044271956672108589102257899600395660535021147824044738690770714483987981629843253014469581988837922878777000393175297902860239130215280270957532145174619079234023465421261504876061478640229835283388150700789330663086277521949648452417440751137241168021076726566886651229134023119981690491665242303936275136312653069026493168272453523046005094748033257577758782798580380074334124339619907247987851008567576124509075398503763316290500419074760662302146490082367453388215299493284512665222949728772515154708100398206656426179155862506707540298348927776162987447501983348908235842135060742239263557534081831615703929436927176176923192424956711343366178908490206242322530199511409813090128404085686313210368163206305537818526822753042138577260082789972160352125678587352524254675855899861495335551477239789541408297419371517351388270707110464263605562201865444358295264897060040656888428191312182282791172474731186362368822902255244819104168794232852351820491073180585980451762719800326693753814613451779771396540909870588743611858864209365031612251460032754725594550447721864966426455092248320959201534639015576676923590150511784442121676421264306845560638634796435187245465202719574456851521122486314226805626277025411173362949353872933562727497701209795538368665238300036991608843015214753124075006942730797146111057563952911516034110433877131868315578192713201549143307809292237561691645931065315426360522384233387176831372519498498794773630459676511033236529817776193638214588417231977564363643087170932263461820348851430290125045360855912439840512692919771004798730092074738080324595774709916389316523127184235941447786670559531916774449212976611719126144299580886591856501380189784173895766504706233964154017409846143273673543052438314654834714072459928358062921245730127051043957922398343969468211396363538281086244253292578435964941945827651501112738727793945739503583575835680861824594289820107754170503357210107878465202103469667813567283934694433815910613135696626604902853184382483763370842784938320362778518907722832451897986790411018892078165038414909085710472517490596353811820940680601664081271325592726353961915287357158969441054983441719677471067465414516924827738077376400149586254022627163209509462916971202879864088984367233559319387457842982937837248881211836464739623381505085216160776509483929525476073337656557717763527435665667023186999156122838094978103748969188331885112774484844731359897282252871122497670644303372932017971939421357662310719291420814875291004769891122742438248216303786146314824693274065248366867122899128938189109283582648917200996998571216006088137504569702595592258514805000247502560376349463301556263763694120144053231975917336193394262393604252304052372821474988292032781283235946726617079189880693908424592012624496607089526059539201713150900358022821968765479356571839187473420137389246120954871054194982462145861826064557362923766327535454224041516518133717490401207796716550125547907023563103258181828798307586801843405629197661415734970190515487650175340605310992496952531333168607499899167529711215060532443768238317834215948141716998142523972634895702246264000858564692370145914869510572073249988860622847364902494942884574937923059984357351515542257535163337333571922178480954369777912876610594450124760150162194409183245848427125749258866560249253694860233946061199101761049629703162099361119852675942021688074666813699391076719459410902020908445606447900409703893009968873174135403518326584710667470012017678857609486803934548670157061578758559265851679339433429240827214287232236255233663140024828878017111372187783262116749289703745005025631416543950773330222180016741947832501999963582628199972771577886783131899639269266441330253708784886169703734310185773541410799215209632237745418303817797025631211424241931277598285114218927704614100460306901428731804772588720078782868904947862765557267120806057096991102189014798562599406135748164671632298614301490447589891599859166057393115987758726333282811842979791102527232552384225734544142511902525578918670649092842640142117724891692243030048873509753963303867698356679296164926187306718484287160406366628150614524853464890971166170303544700739670170839136357798304198617191204402836875921416559169318988851599187408103532606805197093012152968336822913870796377854985871701400651082339295205109593234399435529465202770834320012254006507838033327443315025144580837314596867889590745741851260878263284382195626184542130477433853383449378234340343744540478354117005202109426653420358398112110630076869135843214423015218155583118527168802035181784797290556842863134824026212895086606087470271312734715456660574772493175557437033913443590963475778854279689658207145905543314406031031544575730369423995724675021612566444132317270229837109895247331073036218408604260088597780794530929141284942609722718067330407726925757460893562841905522796076074137599139363748122692067450038930586260192970715050195163113531461612507401807504567869601510795693205536000162657676377034276214649534356386102597852661687464724482995649034128236368835871986353690790663334713871884423653823520150980083866017315368930564617060351980661039693769424542039091494167863046835628173542019607034111570222727196317252552879165252385650070831800570613505028246621182081801286459376558325715440858301654713190598470135855523305695373393953787905253336581794911252602543058618094693744026578381272593166197186721187679147570937219028207811243928997296930358914894700885932645398043221089544225835305003113285669503654321913041526144224426080396979007907228266677895958487242030563299881753205100547671983699828782225646765018033124696327189024210876602528120655050745880211720639869902669172230047183823589150051712379413204986715634680727938622679968778920366932637084174621121841551464929507834018463612377454432172376706342221491901810473574196430567511082060400446065502622572300279113379407919984755453646533195909309189764307779276804899514482739477217474542841933652427589327566787774663357709343813800735075570038252933738543450883857478619272269912340017677843181338071164510565356457517328096317548965921891019107830984411692897849323946636251164485253558508815216278517272178286225469072976647225993173013634074626864776313278405447671286140827488563357973781807232449187868180596308496551298857859195766846572589045037154428385295296653379238250485056827772187617749715222746127354494896876013624624945064232366391728267815357290604925219545912448534225678489094010425555417153656959891847635232274849301928654019291346975389841269822823735075401138582690440144129357643049243245521670524107512020321495118704266996365291390232136102545764957211570042091878237401797553237859730908383615643752606240962861939383244124854446835012486423364845820715953694980475168525303820776679113464151833566253592983283883131996375380073694033763285281082902207049816620099775387953748878500641704478288627539992199560023560815162998873718120696153628737333334026147662285514614262850591167623838981047230131743310562419058816942824268416996036472814722646128344945862598537886987766007917930274143759095079818100308798350278164317890020815318243583748544277559307074513836212868015789951486155386172716969843787731683098002586707230124818170480602616877163728953927161572524473057604206580086455373638304952072312984667039718294972849803834278363675875834701113159354892458068479609933254370369995554086469231615278430929769799350379357026917502313015946178248972516620483698570109500781218113700402865702360979489406494246391820297274302644752533039895749503829362854945210610840207936854076617057421291165817260605606776475411966859671158427038517858134557424456342468822123442505717881377026509847907488710847190119789452962183332609347485581612461704662194748741284920331151698159583564240072855646444642169012036470026031902852996127724229272586706752899011369149391497339695767992045337933156278431211605646544775728346141634069970207029842735947401811342010170092566472579786101708014970791766603147966818563382166190223609340469205720610887280331785143765009559904240647115619594948362862761323027010394317450770392094858369163307061720731974439032489964061890948671835993461306051976843376249755573529856835840053018807741305929498677267246562268766669096868654562666047566228387526731053031773479864789556868391391947317700354537279496962147842896039994191814531856293998831478720271550078651306591355995846437754366219066868410512530240712294995098554574144342891351439317888324125975602134839882626475281031897417980019672257893480248276690283890875437804602458924849223980360307566057955532073984184890216545569580336223825529792959349834222614883996993051805220295334033716581816075869105424528451291226489076963688456133500196286152157034825392832778831584807089340150022039571467102275261633303056053828326739583437155515570868754584818684688567037669883873912332116560142317925149703002360496368294420284600650787026058741846287511566576673171824871481821555979557959725536997114556564311444691762757455248538023507532524652620537920235920924226375122752530987288795075624354860593520476014159558050764772723306339713088003950253216402844429298825324867961860886905615685311167127870732585609974237088614992162874490586294087190253493129328084637233824798632681198767695591328186855187217194782688646587005008951304205786113857492283252966063062688338779896371007979500961283153599767577009928654940765136758941161197985173466022627136642600645144847453818237321286111121559057457709886866613123511296590228873058278816047143977802637418001101199654200937086044428844708986742681748046839976294459682862173550155926712803025701951285121326843388119844468684467210525889742499742391979392942179974760861315115030005278163613761772777166888453866234359826293381684266391660336169527263919579913825181456292473881232052207914296548210156079332782985041264335698104175774958568971620866552653863501805567820541255962759057877822907193914126027925887922506163123947976267676561263045259913376689587414882873034261929276923683797581409903189456860841695203566849793038345244566981933452932892245748267335686368307227284478482550842056746852974154106684853602859954854820079455191775136080336776560325983762164433426601030040587814436510766928027444674006519573138019837316256736752940875067448508822274355752567525246927136946523814003629840483300772657173121888927049972921369817543768203945622530194977351832154088452775820232795006660252973989969610250358479209714070572007415665928597785664608172777371031865831915954381580513232476899279824304788157995495076504083291665783111007758814299906253130067159916617220547986063654041360075828211501876725882729588902223212798908299755707413267014283426748745776861718914554763961240913408302488134556333617814894729565546492744267630023929514264372344669546580789682897394834963388650419064447465287001757227003766335825351910965519648625784528164914443310615839413988990441914780020482620374302045373510199744925854315599948637270316822205730788980324661723646903598646311708797109964912410818607990678527618810871770309968208304834829200568681040831617955405068427256335524440454057974420586413083239147838916033395024349271341439667424880114724319437959188447667804046184756207627691225402253394224073309366965022355583537943665353994230635296339280674278990018839595982932594050842375472762844825941020172108703898062530978434618097005509198929257632276024317844063283115054172264638091513388071981980479472256458565289707807301751764264085919158387699098248606968803330333477275871872813096835807312363338891713204061239830005294300867298214934584910535770199823620816127669688443315385337222279327856419773707931773954690720561067122259241618691419683449101919402205324688039738502912960488060176271241483071555271764894440091171523380973821672369427390258458908303951396822243845804947345166290504842623655258522829545792580210098311412716124451353204629893967476576319010259030340224675677508425809975001215848686759276240670320720322032278888758205712393952219817381740701034383918278926576037780649938934240916337959197814744384537152635731367207140094186102707517334044284023769866118693715601054065277030794384688230432148167905327690950689629354010294001530270626395303767240509311010637702408041782082945652854948292220463201786123125168146682680180798799875630972573435092086104218383688135054768009949279616533785296085188516389186068236444268723166271098263868350978853045086018118160799171060825633484405714000432588207402323564958604519063238148338152234446692453626021822236199104069264778061244019573526496956362448950056761204872410277976747752959699136983021299357781587437931723771086236877252362515368921740101851374521912793449573074687413488601994993775038518490414780367751676123007133525479235958025940146507254101107751011998651773464787798140923727723693014139609428978129308997805420562370897274076408688802212224718963834003507336612508493002156482574186239404919241574451083885630344929851877104988469305133899243701079236121689897460652770525702614841859089100624817442445838245546470073438695019881502911060822871140319403069731207596366285476913853822197355277873676349017159142040937064998644987781158103959503853272303421698170674337064148544542072742599245424609936173004683736010414379783641695806899179688591394792521724599819863668259001360573977473881456157414233560348458154308816527500022909766936446886290112606500116134174853848057702670816814611019294552433908415554531793880300051511955159585179392284715229235976600641492573351368629669150684281525052501745966072674201729914364377700865880105673396361233854545931468167198807627211845668546659453392258442820679444756293965561891665162083928001922384238224337176378473837045450865938706519939247323687189750320684371226972276639660278566585864897201867387431963857548169383741924931851346388152276574477908867619423375069365493407621547641185655222701036766880159319331247989799663277697079454750131342394057651308238280289856856346295611687310708633191024097243552459752723465962007243465885432086600888294911407364139964676807780170279018543097274863577316790785129918493627966499292488042378011865326164163623993949430422702104199535721981859944598766245296233770790678231378939509433366142239884306270303938952636130687105637971744488567390311784027713685484202750445277539183046714438169774557497923707681220742033427676218800667073780687010692241011331283281027939890039166766375950167610731948594321312679405941929856714539604901333407935458249343478863579574728755748379892090320120685161528517903829160368504937112647114813262432963933334679021197597258933663643889295840662138741628787191128991513593592636433993810447695325107166995455296349885043243978473781790298826120535074255275736519352565444602438861998522122056712883740592030216050983898322791672753361908874309602203903836309072731680355830022910161356357743792316186192243283775061157470802501400791102511306723730811080108564959236242504765069664576576144100095277011305651742384851825613744049265024126681288115602502733924490484821759457498287230657634389698370755024542058259224465262474625831355070614807367361617146304555513056083199440714820236134715157922844408338961100571133672156203672991129095514881342963733942691411300179813067377258901060012811828321234017685957846191398775592974062104734984375280562181374225048814507292476407474634246932355659788881097352559188106098475510440599518865443154189623928771408176267896684103453463141397930890217700479211115919379041656993741934314898702029294062952263859038896208225577473015812505651930709151641036023746775049914563284959540541225237599631376163765084837584040788643028037618259662224809458170586628268373176760119055496244525433702284348579027449492454451322560754286526255729407781025288667496208268333030054118043642913807268178918392427483086322041488611224143239442419816329401561303490899425752563993739241987658604160856608246164770032252066547044221517771394199309063586124111480760636553323979618843281498380594903355698119275059433019898659356472447073044533273758771750621553351775759633383262833031613940365606106070793433621484651075427758791008967248092645968493447237314769186993438687860798211844300251752001941601472039127833625791069080419647444313324381091882926009626789750263266489247704538494404199542483919439736153065607968643743386704432977463463179736419933054031961219939939474405778591348670719417440052921126845204124597941488704862644684939125126554567924002924600404357616100207072468219125001086985912081660357477677534383417298041855990719427957135959910959311292821146468445423024380526816442253657923077928827670917180817087186071611895294237734618901761778992212820257464713938138627375224534267133419569508422447911986187645322991274452199711206700541935896839405484082824408011597164800317788670953214189867440073991813124892079749813022811495046841695654165320742799517474345401492238903638739966710907696184732583964382068477727848394441667684284440036398769531211637595695719247904609315555060221876460940499365806219011240979386732491092682721199703572544826134182200989006601215757183611437543951581403481633257271691683918175789244980613097167569959300507558013218604473460851418997557861273083052323472262940524211194282002885684149546623360156428133576515695402708100893057573139503956180472409151133745903018765209572219292302275517575337094579974397883125321293500357779410080665256765196077221640550144595417994982282708208622655551947737058286428754547108192405950346012884272227760851095597081902751000429144110602241334039575230305589981803524397164520867528763830144201935306677798523798333800721144153938464767063933280089865461040668452665693516657108845088646144468841692494961596929801206544320809179027551962096322773635571636431432570744243249629439899523484096589082683874907493873734385008209777130734174925810356495426847021289005351255525550015234598240585339125695620835218878212450692005846103254445213022394889819183176946129193187459557645525671511630834076888385341249118570510251855002108612081754990649515874741653213887608100861178004714423434694675507191096676827279376074311942240855003662041800071101118990131171596098229377911661458300442475524840664010396669718424090501166410691430162610632080985207596016369014860048840169341244068085534775304709795274159864308972684997769343321203058680846920728237263906170794713683021850741593778548632018913784183268609578474577774495938214796624278786505468875470771535380921688061407854882971067181455988816134546561514892343576210932154716442819046673164770127420637238935298829701920245077260981828335059190919507700694829599421827010053304403466383493123769726888838531394434328311713467364567342395953811609227748081825851543834449343715968247045623260813061186290436855087379066389071517670977799729825324589269057267110017475102601219016581443977488432094448741158346813362059315854513370176950106735485634593322145260146040567357867817926327366368110529530579596733475640616753816709688281029448565421457747191190942974453645314907434484308327413268173983778059254925322787072224078237043744990133254715466096729628875418873054664779763563211113262702744321672768763737296838747857549683616245499798834118429015808370482602007264295872012945168428711241534250084868639356007656555906423012913320739924610087118360487973164131118060983291952272594649210683493120352756431857072223712611595334820425543725792012862025386290746410114796602551760714407634201184983696159822905504587716115923182734638427223038716056693206639250488041146509542623221506712236451146242796260107191613861938929244827521268934256713917720589015179921450593497539420791701328966345781149428996216176131006198369918725839455444705897731381006993343179488734168050435388929395629037247913887571530583654090317093681774940907927742479769591885551160557765857214497517508014515942919698409924346968623277747048495927784856455478687668475510014678621266539532470472483562769790891135048399869537119619033585755567508143876604859530579522558621266930458008111020771336745224997498607837577660510161676903193922939102931899680172324472445920679322471557533318250128121720848936623570005761543387611558676421195399183932468197002430792590298205693988324019043543789557733995635447329392903219129962297077436074584646770782822557793387930227672137093140007229938735760127026136176736573733847084285488854027774359364605794926283146082004261602921377694821846642153657939814268939111542895250177639134276433650862975798307777969454556958605084745748685976960639967186795460551285429752835799395222219591153083041149404260074942591177938287013617012258779754489983936161111340061455702103201394164411861472738255286522490673804563493731438831782711356426459953209510739534091168640150170879366550199952655445548294458137202313699803176376709699390456344601059336017417216416437680350920621034758167988125439620161020111690759335457343845071303872797633919376231947449568855049314360311238100793599666969581795846986598168424058554732959772394776326633732606365279845478540047580990295986197624658371670577920822101965224092658805526678880043081917801021121677180146384532914132616503899299107261757955538026960362003335786241455211433685248019163779890093950613212673894728915777866850343961421498635104825673026198849030765137892132589258787742657287537783931253879757390669066766863777281579144400680538843970708167877586851645392443177029049912733869820692707652879818239297022855529666205932078900864582617441915438790300643637251462113893681714124532722108121250625423394070701842485499796431065025864873697535319489197934806254786735951401177245624637920622755277241007103956944644260872163345808805650734732438976778074225044306463471900190128661193984334375595698052783547896892108415105609795421138356989515185408679070878814010541865407818634985765409702166167207364342371452505652839659667889724271855791462987770775853790153396346118106859925616887561157134752630388759088867355051844649876636657806352539609918897480198141291415081946264530705403950751433548227216479765488098648486674568377837901479627995868380061527185950697381427338080552202392108786347790586695263723135258917334527687367636624197412801814649245075144119193414967344418396615130911206737692459852664746232561781115995994773669153562877112176992310748183047256125282071180364963746811747680716930640563415925444427083564178811822721891448475933858447654133931332856143451171605644550775044672451699103277097766604782298558889529544474330199030598246392464027280086708102146224760915187894842835280162275631221247226695791049787626494797062108579085059792618685635681154980892958031069131920798959194656290100537932297585675960321784161889268347943255496155632815229306004610181180842665111110408045611931965407733088178443015326620236020861703418920925153988509298336748907146544189151073886424250139570524222184017272634409065911685480877800125942656993063510996993344512343619961683977166132553427218304489033815165301245242898812696623050094710808297533415868758994107258981963983491687258758096513314175113910923234532248681870903779358309450006478347310740697805149967761771590774791715762105220823243382306416743777698492043308219549625929013277921288695047910782306862287916167584223779990477996271563753637331991041906664161859345354238417677576454972257347698972083249724926501307199162444798991411222183842693578348788795299495255675444295044230875657316577310495239240823819617950160962034195156612203084256195871355069535569924711854199479176910107527399762250161552537610288297988874620183036996952078914633253420814977036969224966045527340648966085785518021950111241505455853343562433430649667312652566362284188251832664758313085961132381491254528165204755888982678621339191678326430751739858111771157450986237156523299266144962092524865401611516458760761019209706097146052233270380664293417303706981030152570445900804274099911580675401899124969731041670516685136424617006669585468107752922545793844732205003494710633471624883486356318636817094346615023213005645230976087899078434503207472701638313927755342664009328987962918853919525466448507002041330303470195808581414817639530467569137644479650055732999803655518836596130240941215749938758603815497588118768293105788259264822726143205880995307642568893637131752260685222094801665913170417934788748801183513056102986408002691305142778121995041744235508542985650839858196751892680231469191855601801087414034785133242969588033566740265465354972424346296675137577440572593757064115269217366105415036348555956499096625537694250166218938360582730989557305386347128996111482804553491646178452055589694286448581956873997333817723771489717658941538029066802883919683860803808418724101749721745184728623276788694056413406724824480288479474680551771144065005210651721333421326518511710998484961477351207341670163905468564471714134147194009334488680276543599441743220987615974442456718193408539474804545329907988035855485203610069801956158089800075695698918211158917561155643023118648394662042105272324993817443237696254238318728159871719935222375231021949323492630798613106417481793556590574780927856009501648002924860282627798458143693246706945325928859374721836426081725642771642249410294510285655703522257678173255165154670008084117538651921331395026751765730513554224606176684578291467849991668008827989930959752498780071730216889686393967026115223430423644571452421779563987358872430809371501437977498099914505153859536794377556306699098607211488993536868213364735073389253429986616317075114825929253267783813341014262470710753170781511276190021834503290884327650871106092256267263255612307829715479536787044778811959950041093651339559892723724477793362084526048115373537639707151649171489701353423292846572695993922355474757775315680948364936379591997646573423427669400047691952517244293212681009633427632079741622780331651846436282657879793604768732248653930606552623285938270903688469947695981634478023949800639768975162992293849279865938475967739197946775601413652956007949617223823614941288260192860892475223878733127952789759891579820891760319894603705587457039385036869597100350178235780801941600930717877874973436341566667040506511378096473128247344309326479316041703462249729091926176095704716495521632535942580080262628140364673317363719727542255878236188318593681022594510107627915935940005907392792980889111548580853847513991107079048924558554619192750147385996404476166780599124612058340979144428674038518635937047407556594142457717519660746289915286334046096581960818623560022288384850289882117099198594807513113313069575708523500153241109185101416747958745336515420771053521083694490437316291827312283053734397357836529676209062941538031241447831751826468109337457983185829356135651908020881532783959138431209999166403743859753266165654242963309100806761122132100468988400900496920277709168776490828882936665272026269905840100565904948273836376421006020613544819547044659303749155149936672990907169276531138993411934099298586598798895246841596970080622018872121203563824135401627379808021224980866446377313219182558105451039282519844534094077861111770273398150035890144962957494878169348996278921298646420888223803052354268287360354752730996718908659619685457104114195015178883408804334494322151709211137154322306354050732036676668925573018622809579523754818935872369878758469788343328481537518927885152242582824418906320562462111897335015120412479988633856360574763869138153300124328942443250657844549248731060933960255105844210055175882299799020445996009524258421921522980811882923804467437896617158311312161139170824615466492917548786474732902247326722902994006111475079011379463771197980710722924435362352429289098852809038455971850878711128068209414002240533281996151829044096405575824690397906989014528886220894989092175279489534253658683529704828110986570901120184654484558463792875474443547741649014486702884844924020887434256606014286420664997614725620685359845919688717688470855898308876665402391645866108061446895926433651625482627942580037290271543602500192900268343049032613192857388244132483563944695888680646268325546440326330724536408775811840110668384591240562481697696983233428320843026435939988247311098399096011856510370458444973665342576336115140229054006306194034125165696279706644003106974519439918581752297798106330700318862029778145259659057337734440072078295336577417258934907474482574337989564662345924017563409968748230182598633322239452901037078235979557620689185630860661918211044512430070188771975294341118712202413628788978401152295640248881038991754083227279938264664368111441196044971348483250574099554096909936326563768598301831286088961323054267021959025301614916121777231231459212739405815925334957120905409681953962228581790905678512926364944708633925564391271926601781706565138003534454577928040643901836234473179231600770708113710174381737716471140310677056406646305348461600131965213246035022743390648363826376919231629410901673805568142192965192089382609002425033810301609710379728625685278733028565023723052810193206948165721066154304928580934012761229764234223360135179818249953639495630531886461501896707638809629797976602759005411574539160771644449812680826296189021459984213663963520374329547931544243760653798174836834347748777446050374106014435612506773502945291947682852133542800636015131373712097882042603445854337756189845705600558029959326691589383288188938149562860144627932979217574903866160673797330869918305975304768333936426711897146050001242381975899689777346224294769415793527782113856416740942465208050168996981862878801109637875918491588992496646354731060992443586297951131247162741375680230266524500122876264807191617791397407645398914923875635728857552087764454545823861039364587049262782053166688452675703694641522638715845176738529932273375726318788118621279390058369905357667766729494540863177410526626533005074391233385136193912367425996004124438623239788810500257267922910183327264449021779766391183861642159747788981672739643891445026058038979696928594623192228913190748652936350620575545278162935601381466661484454933847328253664145696301953279110903902912328636342773486315422695018304511665967946381015729353431285918185518319919145475646765387776682652775008454472282183049055325755082869489345902060759772632164152375316286276772203690967799172108213536417304097007640813075986755095765186929848792783848894440964523632227983953023254473407554955568659739836871863945605638903439406586090233992968234997617709385801046723822496326272783741897140115828679747007880462658299032797400338247698655247447932357665694170658767308249442766146525122571585666572037331469479151790677039509827316337532127884487004852373467883003467926349176708765250987398079088123011972820218585857733323034118392231291927954159105321279372209866263031923789543595914528644586621497520472908935561299796098576754490872543823436136053862676056519952516009242472931566175146719399285684484856904170625849871882486555079802716648202462113063425552062286905441529246943415630222222483778851152411154686291484321034946057749112896874949217797015653400547252710531635079413495296240393145282668581871587505806315842394073514272418938698395687550876833063561844088917974391063080677833785098302597240612698251950961022062454538053714489831785148231054837695834340764054553632062333788113407822129438159381377385391345431504906169943812059790025168055952060088192508557706050029756539808406323598578234574914802433164938207619351239995505136217531915090687999973534265070713003563277603719936572664944139718259387406893018161634982417146562324343912248321936176053626641235467756836748339491354572337088119079939357459269029044014745167913975461644137514507328511591838613303554815475254041738347494468061049061990671031659499426645498328624490024137117265118507540972138719845568893994575340581126009010025807050523339293402246158685489793274710664919295663683468574610725107629177545315960908379557843493886811065587411035917064179599006575691306602624791263195322421264911095557465865615813885324976653581663570830181211067726784168508438165516723374790134176086396090150125146986397856407688146245488385685590622717030044639425097870144302087200944831952146097168254852434596640969062123535551855479707997956706818532037557336945274983831420224306700158597103889633032785239136690431369856169267603004069315960218700926411851419144194737326747301885417192537804440618455231620378230960653643645574475328786990935387978699593136008427720054046349395047068449974493068068587979617441900390762544497043351850793591172406207815408009466082276900578797546806648336178950973863491415990746261402076890386301830195591703173656272006746808521711029720745063801368724789260857947707274397348241621957140599161827304837431325302076750665124466872748870784589479558820902336455165302624276714752749503035826869510131886307884342846198489443860763139716979758567445664059382011154407469985570717475111017689093535221262836415305261131106952844958986476893067515285073588167337598730316730849940762402372025349044910444663840538695483699462960321283848496191710540581695807211444697954648211896333799859279297268310875433959964751309288916582538526624846706492727877969431688507526345759246595841920557855897563518252323216816355059314376683473787438539451844980995095046344590662825947730868830128043048727042025798496133417896780663882273394241917034712159715263746408214995097134705872471050617939255612885899786032460765068259409881765268714725035642538199013521465123229266316958908866698671719994094724657031402892165211747627758972789921777785493322612697290284166625838657369092622360039271156179270383575622729700540025664669297006104052059368581510737171906598519833134485548360824310661005539325609059041217522092270955851966824773265095600232627114225167939006944783526681166568118602304445771738605355025904613375335889501188009475093279635202836016130687636200280704103470526968925942512960936561872965860040118239185672227180027098056240077614059357414022548896408521552715647754634060589100023346789152311847460448619232459455795561880090024485244608735238176326252789266614775219799785527417076089034297689718902734719247987339006435978261401727732431299110812600003423446647018032906428780779161390396364000655703566365368310414478868381558460631930127202324524156035444756452037204495141630571698464752308912298103282403484370087934267859493116216734885159694051697851779271282306972981856689640617657513230843897694927240481550488786751540679222637375823647711312869334219831374305248856143777649179289784763894183223556954632614457729773822069879453778920124119916549077399324491745383515955977146925366038302896097204275711441934318505251589346434373854976309485157758537556606953353578395908578982194335659434762078467976333657602206361118193480344848291951573109573850066605024098545437763019627017438670957588114429182824043344283145608167830225567234932210842353994739516057182144537456582471076697964987983926269172716689980315191269624783733806245886259825752804038150900545472806130325020225067025274927302051954943328179935232082680828644835728585714389950797618076444547886016704241172521303026348315456559981116176269919823582287258948616268171670260482247120196330161290136814256442748463956623353625732627841577111177562704899805242982096802514505238368319570484371328505607756098437669456942243181028625986480898939720650253850449421266710721701922387067204822745753844987118240546104859581172348877045366870278899857053271134122753433050469898403828484052279867490445493740909206318320527470798684800034796957770449968392270476299532381012138791631082392818149942673182226573895052111316589054168292283703045289844294007162685598551145925179357081969965735208952741930222888360647647001651566712863243607272759011537667189730568473716211924572510194945373903841991798700254633919810366323486529214905119906510448253213168065999176064418005245373708732443966967255347683956923698296974288294888380548360134424226274719099946124081735961083955364391965893983878319273597987079473112812523790106511549970742101914757609531923734628220963998220270802584316590827459814256133533023372518863406424365895975157967557955909462720326357889021039275786506288640516065090161191257007687333816651084871648969418409379212317181728117733909376618768889200587677216834885814078619522850362344116067721810371065612840610776562878675797409733378574519833668440970965373263317108524132583585559512099595671803798108394620178870993178488546181259926160755963146265745740648133270014289967763100632691507512756266229332886798660773176935482567958589033998845742793454972053986589130172114700399568908405669709129850972616672685790596699594641718837603334288300770228101708572440502832609439997325494776961971718356919143283256706785920926582836950973115438821936205638502592619375954836283202165629680485943717512586675564322967464425700108020477743448336423318857552560519662418062419690316198274929848769463323208409150501664628366378000194200531145777895417754521710366374201778326121011078988340804583827616809305606055467516531694395120371300118643336302342274923977490897890474251835623613969569161257460934437430186109382471764191518306058004221167684930612378131390667220538635216985948508885343685852711858104331609289394048090693408435923175780373590565531461790706513598200128352526481431552806372457513503089680401988409531198112330212641914356231066233452473341307109967453804200881695689977858795505873600107084427714449672926047314438896659016588285195927989594498905478562357569282339245568646134323338785452178413321033518562602877365351180801813420324528094883624155366281788054025282197133331355858778294109831108568172431428595928327727923318883967126210731524972020394198757821712719952184181786570588061555667753009867460361558648660905268552946581645684422774545525868579243201282750234069500973974474436997966261446953100754587090506832834101410413922641903630316736548919290773380874817088139441362046554087759726776591291166705264534828338532138915666556407311343434716595818981177673981107171814479895997672027501606970851306529057302695324576114845207788848956978961194093223384594467656232494676206953601064990532242852573667136034284791055491489533843421224564878997367042356942798198993130432028193364182494928990811424681282822774985830807501152414431244808479983780161920266100509070366754277338280271318447965240556731586158978035634219056373994063064002511249041179889219650360969964576746205533050148630127728417910023438210515050778853164110608290918944544864794954386942218323329497336636217971240526276188163241442416160075130816668497431237614115423555203043389472275629490438554207870872015138422809927379520701131420979624969464692205379953758550547752202024730264221410175442157207461879000847769429536706450403182077429421935635186227288494006699703182784732484629313535592183819541674862007944586790651697307317910019442216779593610352326748870732462832467174145717320434533279785513445622551683301965413671345984037944309786525156104159336473231171307732484978465985830070901640634653784197645581080283429661809845290509255316865698195885734483490062501645469831462235081783465937889047159864955686618893248292316638590436269040373023338212855596685380851251221930527252117378620292899192608208831972540022089825721866248705302075776665507224161374775744268941654375484146680234065563341403182964994393781627662442437248865922840842315044596868440585200469513069714072671604841904782601224063150149591410860680817578439122677302046945618026901140600771376040173573485687546249725258459460077880574968512436380118666400702759090597258420137035960644366329887152528500195943522463067956301953257568670167536507213800050650263383315450168575067610944844425857146356986903100632460937954116446623038921599154440544296750274796345576716104979674613412166012854787225906905063912501263791541134906905849699597923675174763325479087532303633558652344724495451303071392188307452946881437503431829185312691785052306178845367403436849912126746455927399693135314955491686414433323755701112660402608626393824197007644024168392600753065735070848157078810602142671641686401936651270281771917575616458438146301964184376211132630538757289326897640992802970348950465158740209118700029030187462464693299507818463926335379483590445798115581728806856300052130399024398050627890804568611766365059568617695832600865495697194355914819114450024159817340858496976511084186707536314227564522308194532669010075225059155497234819802333802357832297835259148021143450245107224895893590892642043606010788451438511302292791125687016801553245177751507335812891730992016169832943559189892377402319913183095601674138877992325732930933796485892411336000948352115819911907941893726375203071032834192945758287914154877990436790640319840092751732819890167332699555836712426993216483093336444425870386058056143978693400936308642489054792339527827312769934604046991006198156712185273030258163939965394220219208469153064864415099481236616590512211439097522635600541321944777515883733921885890562261634004185645099211586190883201374041665766912107194764531719581762442024738678493972126692714383465395793958610022947801150928644606901747834663047434892233004475258300874998194599970740682999950010681878797799614896703071635718406953553685276739302979768376193369902304999713665559756937694684724496051390776713507621759524322237113457090728905243607582793822997558492718984920003931667082443598394922123637897208796181837319413789600291583163625065488997004709556752762619868229536679726561463534564043355061912633303384413359697490879125299480321093034576723183389883318796831597995796622218763786528139075519956018233188240494717443223177500068057189159443407495629130703796049589855511553443796820158276626868123737432920460717958238430481880037678854112463868485652415426585426486914884263185579677289017345890180941599872548592814653383239672585505768996509294772558580361346615836545580561169578916296514122454697401852024771020677953433832911758112456472440049448719170978996561866019604584025415741749399674996712667663832174331145452772900009156247418230754855953719602742964017053208378366451727013989568612286968026032232906643706910682391953651011683607500177146134921670869384172119564154360568501584660713559010047171196747618001711981277172851351596525725897281157542096582885809091320986976542792700915150431029748631023274241415338860249584666611059981574428931570133931232153132573025817307687423522295567420573590342077908026650464041951966936001039049240566390848059680171114035935585053270196396005187465939627478772846839244813951206589348530870531098538443293171896580750025208121405671150075671339453079570781066506287026351183566982085261685839124609593021982768155164641939880414908699965703632191999164185822425682081902390778600205460293668500345690829949735275332990004960008271638695869359621606273431336968222817574666310524175309160148912206432252512654117842360847107320606577418384968480683716161448268789409640759236724769122489820734626815857046513733743476434104845495546014063546693323435105520702183876267447315657593939558137098024149480788131392363256542426556899147743766122233970687463098644318831466522510618118960843481423687711837106557644831414319927929108620713651598065479752577934971895476723654886428258242617983408691114958513476123156469915759359162246894354070473067291221679987707113538576305891887351012729922115518158703191516062984328240687634543489041781462642274689107637501492480097669889052643542508180732427614906165879517800898811107139736795040968924865561563077588077590195332864278204071718170344669981052435093499843855375559399148029261700303389738674515975125072890272285344978184687119431526110106738908487618400768439013212905423439241600792728230679745536522833530373866555805864300682877326788627840804269919803938109732781664796937445200122725321686251993337838689898953299757345831744465960417117942758344244126914789607536894612635141607234558345209843939834901093692646225379060483189657048241670189429387948751424102221705606866394606814070044580784199207968388503769094850259216653812438388038359576521515588171214230301348459530349841816125930595681421142162283545472620690585876665847087973132917973437121464423730088850508954749174086813738518245364474708705674173884430590063086779194929940145797915856329815848986393189601430715890198737886231753572402370439277950691931309313323137419069463156515209555950049162203211302935772465410407479421154883956210795238623364292990211688391268892679294716751505672422666646303575499955227039965377105897436365855373682597934840755242596793787610126612664285945836769493331351017766595841664523110180328099123166748754192274135190397204830291621838906864584138088560286279994930203831879861647743906265780964671211797918511383493822499963343661613956460890342546670602142312399509988261934013400127180959494472860764871688070886348853254617853208247637369312842592942999109762773587578355683692340913477027484041913140054614316412206876358104994726535798437044361905448862623242954808537251543529195484406894817100382150839919961856924178259289509455558227671758295220417634150062240397248823084558069045035970678251459306749417556874552413546647467750595514902786356013086073893993576478823725002835819918541399394545014216915230656931431639273557223764681350781841201779173787085926228272250949208606938781734473946373659327338278887544895874893199243678018177689663026432876295750186295542149862918333089338482661998066977658673775289740990656692459385241925605935407002348802347069954597645985020906345587182738013050383718020369433148228019351372227615995768469097650081210086826462454034496636952441769564151355611660443995186679211624133303093963613188331997840359461221071932512731045752415513553157325435790243094480810559775022230425651939071992042754142519799045198621608193486715242609420642620747577881059414764203018197813049697844498547067441953206069517810730755048307046449369770505510369275743344655833437113988285827866765428981485877765628717994571632627939315375436707919670027436704979042367436026106986305212249418085123554745597920314214691914389065376198373153484336182557404100749375464579144428602179120310417987842245099473291565955249449722140128657878015325787597026012949951493328689487575197085063158093100986250712693466610958942253375526750175760985675412483886166937155003210756981711737218514707073096186722331876503790339359692173124085586801241973135930394989214386641141584460861254424924128613526785542129901093297766199539954878209077149803406582620912320466589110014182775747461412317754464894978112858247955944729892231398194339665906168619170931316417812275715969230483206189884524552855643375562049309906298833664805542778659694525236655484630447714362291545603627377690719554174916813540317103214140816461326568378586874328822389846841688953281677304192625414238797549368682359249759426041352724157571419787077222239474567513526658032632148023191003803580526141995761869099642634640137024075259737920988790379236964327833898346413671082093830187186739061753875690423802702717804312254228222819995398851519504212074602081075728501610655999595686275577375203446890745587111506667519112866379853955740010534156814688238242991334649710503368691113547133593688954842483106751252222837202401356205520688156218187913166932505799202924925372239015324627538003061419199811015134549178941512356193550626868434114927737345803328031386016512314889264120512961428122421166636909520255009726766535964591133287011919777982805357899658802317088650051960610679753510311375408320508301082016836235021253388885184713894321572259948464246209764114919874302559160637365696643837999407723950432929336545904162338335311107536019269774579025364915354471582036852778694503871021923386643786049940662680779684606065711915751678802905102586847829273655036430386847567216968362147656029739657785964165801370154617767045533588563425669679423235922843201539777067715374111007539037730941454829506021874022340525216972020192164348605005022895357698217162641507958862203340575684626421235021439446355379066029555969211292260001593729436794495228570414114943077271274323689758539407588319741568278408283305127881888007251846363903515450181003571411008300669584603346871949586762810088925806402367784472614268259614786521154402215797671877276576658557672655633990781472961454287284655936126513149266052410691201423175344234121538744100878645751132239420733421513963248381912172267071634231715541236204175666804561788051188513015512820206523524966603256597652602217164798998717653998379257936250418792816351144710246789600596936575307826996910437580793247319637713469806489452898795638849724253881482272781799367523629523807503116314393371864918393422360151523302154570088690565054832707225100802223830326696519852641291849016578249527755568235525716450860787626819071944351361144816987006793141726919442705110825978609493257941781652167418074925886286465180549693374042923519141414729845249037072754265095616965573069203233221997742446422944222399971186769153273121380929423648319874014640152965093905221890321606213941395982972146052976278871038666405936010237428168419480623858563738904916260809767601465300164059809823455230804781253980455746072078575592172297859846818394279577324432374377255804738506738347756833560053070219213791915781945876249772937958424341310333017891071966444926522529645854899894495377446925080797784679710077149660312290030986102163622056106051670883435407427766607279047396336139274344275374578813905542711619918615114599032869839547647692932647538150398034097433408393440051125421566678219026077618096713402520111905154592470354047761501448023954468869296792140086614157347952164678205458348732933545651000484898051880548096667733624020795454209930267662934223426875032395666123479515682735459246554029327871533790388112618130146041513179036778243529266006085437922373496184439520566828111509968243793324631018548890603047799838415162207215130949405921884628713173063374626462906566581932302065506911036447158578732469468369315384449281275639958278099463214117208568222222324333617761362365225226680013770444955594065779977318065300651653610557986436744561599043169540637569095463851319365976277422613148955892757115608752680158413391022820139347498671155434463457232301508846451141359962158303767029174714149796549841756875056161705909706814345118715939946631941305836092545341739477592320930672529856505821905907441281244986442728121675652121512348867269920206000252873228326861813457424746157031117009129658878185639357394159474441530594304261302398900564719790941114340629368449498647701139708904997228717268002555363783619229682035139641577487310668643535524988671112298775024931710922962744679366047945040502163650889957106316649821280598634656306698935593270119048300191095716537098433814117260082471310384436160336151807270259016883672257778527906882324032189264966223060050160373308086422915294823255431941097764697701990716888291143466003217317742115592630489954058881521033263732267121118001070754207784448135671095218633910093040452282554989414729132049858459358904492593550964602926687961949641119479932399299627856424646350511258891044072786523435539786276103859476411849899426516213180944705389863075738199269116162320217380983693381383940019928798129618473953255040997741036834228589238247470517225823481918131236001444588094038163186751981396899740558980874466649299201808511830203454956305443909673241486426390975889997684216837032311842114558073146028550344042536170900700588765905695999397998273252604226231425193254895381193179198847111092635687191858681153135239080858666622711130726395525140581975241545836741973247312974067103626649219653999032463859991886085031005152812035805468485916594020061509505405225898641384914574502657171090695681998782340414238401586106548716794779189476207141243776366530187270425769223947217900494347772037425186715370589624589720673782267772637156154201302302803353556195667969058712287012644178794405580367085070999241935336742613004952878963440703185181670164502675848839920947496956112611400091446876955568043273939421563580291243363106961797694612819424942182909895516008901105567967440944777579950085955661897445649104228510763495617636913006811654195903509248701075379995959255836998740158131617502933643768004207130272700705160971461491403889366397808719645840217006782557960093155056791161529103910501544713107050199623293280066505033387020319042254955701876577638776996246730863505954430893598758296654873772730926109456584683835648268711150740332266726746259823608818501530425279479677559474357953039012231146187285838137590325627779729506859578628428856767101110456153706721662878069439522653418880619616494048424836441087030283884132553704375195499618134486243762011709498056300271248832194864040520486824762179746709818205937213228601550728329717263289345945180972747649206364987554292585608753289766582414913817531637901957084109656602129014240726816197596598691711467797647891878801468135121877728295241035097014912572024136807098787205907045696344059173704905760099822223211645456089938801393891525379312496102560230285858225505859465767926092850510681025239179325980758973654908194137225259152632277076837037261264173179421987171666378706247744776469253693721071414964007422768299538139707826063911418189122972780046669756894872457920040443744528468790263183626238239024078082898398383494932572483987016494344031931822680872281213268770340271801811254898632276166440475907880792226030786017722524905357325210166079214944074433872567515801808941485590350981707101670772547223577363912341763763706701508174252112902730561883938401311980057076491923168306238566513358747983753787781311061473529809444085539529552690220271224758506056285089344317909246210198422901371540260263516413615437732744625014756259877138352029228394794639553765248103804650407998373023157441261210084498328104105112500447634636932093148163585148501651444410719549090665938147964579345973244815605064483374140622479676399327324028831087263175475317427844363733762760534139746076226725235239209025882780398860175426797347380015449801425427520241013366029747131297271292230702674223930623404249086953739299358702324481761630090457352738734925708538921115285352789867477972626188080570663472129731502770153898520340821631958997190212981558907853307560755096544158812566307110697800671212185159769737804388136870181409603518995316669176366647465821591840384493486394174846745162122952991463825884500296045468823777193484614926326500078781269291219153575668735067356487867320827004115025593813734356673088370001937814455014174167044937987093515575854940351524661589684887815060619418631974005696910653370144345609005245668063800411116652893446843198760865285911656710738879109477197065252119263066604629612927363309423439911847242456203489853358471140503142282716277951733072003723115786993860447949244581930461133444408207156914983574730577695546322812582059540122912001551110377376358942517500096860038074288588440680542478168122255044892512360376678214390056898950863698915297731454714542169020598893360092871966089048080571808393908188710429196932341936379575171142083336052525042991573690083483429078102154683769143803434799508661026925908049049362360879081017364905074801771370285482290448319035173932091993815477141191604505040652199206651543603362089887113386245069654181056341341750313635893544086319810311697665365451658561574670444976999478198979802684147083454343392931680268812458547420302390428248370555084784017889563905849289291295297198867787773485404312477454145580350284957721451373538236974514731861460550707793785117565758606674753325642562866471521423853202311713325298243961085358964782083606240393031798344947300479450776552733796413054892912747183203136468410555349233767686128752790670148741026183314624638094017868817412747701961491315519127500450125488401846476181866017535205318491951906338609478231974300630875034422373832182570227761257869503293884464668428041053224261415112482743873861547070061759945408244062058230682754263544313448619162711804293826252886140349422303486213120422208708424896234413079015421678255880740986638279752346958424026537412308609571183200997134350429911211097798307836163462712942745417853419059873165672691400021517922737980307185337642107212542058921269624360247866285301262362717786526285237419582649907203838712884114544584707108970580905306669079097048374545109212300263191830568706491772843843815042642936737928148950557205166692784859938255694645522258815688800272986146691535235373062979271667624678552344439353807935901742821492585268463073565746031341060850755889525355878814091558042113867160101057393247276164741116919758564140843989912443204903881767950644828935858969575932651358235626719950452552196845228612243734813320656322934123897889074533732147665245245713545799059325279290635635518369387638710682671612217589096394364313373368381549833242333073640210631164712754000258724046677718492232523804560933578938082215334328973289226652130220574459236667450289139759553016152486869905684385306779716876732722392393296883195394849883407817602845533115905889540142761214982317656961031146647752519288662336962740954144893605242601813349900828461750857332080101790028879708401906027389028059623427697752330726056289171860468555111408085361969444130755338824985245961020181763340710463554555940162746653877556439232140993391135081670863268101894081505520080557331453394678478213842684206597373979159235916076989139334720696899948424684689218337606281600391836791288497475948621031508153275704237312471874921958375870958998296675403961771812056322634264103927704561937535416218446032563093090553929485624976771957361370414847547009000283131808389555422946024009948922351797809043021111327187919263607184709185355464044546567263978581079527540270329381084128371172974795785601717732749097057983477071920390536040191071982497072355656408445001336086583326213360644724009438078121974081362692903747288803615857617881137569851228525921262805875112309470797959726685305562316984587200055927067930409514848246600859472096416639518928518268034011714325101752737889183662556041507795593616839813088417963189305457115578817358871589708007310831108111134532394431708471992461055903318697402237552400698618445432562383915944043830218867276621349314538660019650783358554681929841446838648067655684345323460646502556060242058091526109772925758690603268908258326669229244379758363238919472806124424281314410907198305344812993683519091829017887524341473497063425128266004038755155153937276196500456274872637993460902197118237402372387773649481399824795827960180894496033168455752644015278257029703825121958426997230831528014041921714468392192930403125953880130406734300651303294430425198440297694175840582581204411616479885962177704362279120157815163490225656231030794640164234618400688464708008170189663506466596231194425804192048826622446883262797056140370127313356367839180786591571919883393793418732703953561374223205484513753889125953504995386205004756482346269278696787489559298706057098963121060596652306944977754569765569344885719982537445161127887296411852400413498642643095132189744904614328270087777386601876303370402123917057199948230299353993160229550834326419527864650175099380973994786245760788823270942087733465234667239203193914035225186134180224996807537891617247112154907994350841979630036517335175262180541219174773296722249649374044459866326638582631718404199377541086760105171023518879180966102214234055341364299488460143013934301214076921320882192122752660384563609100834260861718672297624579248926410124955360177794610449791683774607235421954214950028353313612330862735681600256589934352709867962008658312609181267378152925692451103695874895062587477095128783649376739980411504931075464746632350623670186532104857639296307839593701386950777548988033528949526557810031843747921006735969946652386171535284431656221319402925255628747284384016340700629294452599650242807856269210009800940803125958326739894573005472252735040513410052767674136358609509052020189538935264209782712171727356245315204960943808199211236297647698872430734806488623458625546437823975265448101664026876013644374097322021058273570451235647115613922647157998246406856249994075769378313518563420000953587073250210746551523969047040062994376701106108852839290157812319906207432435100261771862969533072932785569057061863618044614617204127476989996106665826538376789753346694876422378050796114938028053256622713062032596427082521936015734135690930691035973562957333634984727153052232562010826266745576337259660316317110448513401156510661046135181340029160677372930552870398392161331087259691789474699411308863804789467032780204680553695590384462130383197602663799642616622572181307076698401493710769857362292612827159962422623697453022635060094463574409815136265963882489811552800530260663924133775280514679583821610246927511280136897877177810194526671066492365281188119052426185811216007859126331776763790960083930836303996945029189593804582550864741337741090730751388002255328596572058793629998189447224252278195270436497517025771440481420990823638698011822675146059779108271491014593117858857927535017741249053616503143204784359980547749828318982800061271955064551763111603390068617984774094316919930692688984652435293340147981384955418520046202568239295368261511186835610005474877316467130424576343297926045133817981725057837730258581165900410295613746949743052367509629490462448029850733714021332616016405476937073940398270845697203475875783837628524858021790376757236311012601605133850218862729467035102141088723651614516390096386610913018643244057974915425843165885182474374146938011297959379608853643725087454783809437439813346461142834050676956639039982520905292548380146683821896755178876480060645005101763239377696716441688817627810116020328927398673973088703610433145927434179845659286772229082763872172292724821950718652357223129324606189548985410531111031766277343477667589670634246966850208506317602928887937982133254955708507027605653148071719192514221316900676250875797108283913032994741534240027065173401357171699210395446676313876713532386429746846911695388715808622186824374630223302003875605275746819706844589171978681534520817823399202920195524540667242008981081396119001595923391725061370890790009882309455219059823027617437444399154581942641778829020138691297329544046840882337970704042479896437615613013066034803158757311480290143198566136965016578517999255019339924680299412143478978617257316469198549033154430793914398970097155237317377215862749049970992972384920360382638481762664918643777834372032891685185954682906170855723934077715197910011297338320618582374254519617357206035760721801747040387095853035941774665539238383719707814266330932848579997852484812333944911165098313410010192512567372914199006565443941463536427703944348851185540712923263581698675823955556445163526801723077612290507522548179957103469603798714711134249931802734903884688002148720825085858123912199486701342286603974680516134762402427625366492746937795117662158279218401101797965875510453222707425559449611745691687246148542274131777483878107161776015787872321130232448806657953567435143328299948258205228486103635253371369140434138149994541704307657201462255603171410611862872445268761740039901299544947568636618998000065353894928177651439447775425877356510032677887335504914567119759504030100999741749049430539715910015529458275876304121687027904672492452185490848362629923629872393225265741047915638900716956279642266511243698372828569632147464439434209889073876092906760419283608943005644627433469498168945770085590341618670372326567263989566490793116739159721452862807788266151248911711713447164580155450771471112333368495535333075448797897233153130757681265775876442550332331794385117340378482515111709702449730637182423855543424072121194219171073991303849264289015853888940955212511795240833612412213053069383037951289377679987684065442965957736222097119004323926011974771881763517567329830957998013366059139070629701212837390363880416702120226252073528181480026833593402682416496164478158131607753716195257124325559047372312952720457148521884442855646211337608347502483118552318551016266555343156753938721880684783982887224000215201703422447067313999470584171958551515134276591585191093101300554071136357522309215108944337546992205847057024338016199289695507138504124294036923980995061843728964669571932816838972493428408126105585202859673060162160855914555643815395596203176131408385050834560819918183534146657472029952843681873703502565521623192307203449771157579302570162906559487764765559947442238825860331268141526568956126957626061774530754348598777402152710386214981071487489065546494501230291581331377028730976292048465546573334815362984049126301059612510414587126412468244297020043434653213555036534399263918277985994389267556085265681110056997887244871839730102807225076044210416279126068534311857291048252753481229201414664963717396349474587185262825167608889962769571749394152634695495148474125050761969913788022675897295107627893562756846526660378328692922701086255083741577604972266988741428354790240803760827716258985264328984680997099396764203334470534030349714256535516888673018631172295079936561637065024152585912460098906322738133427960061495792588184176033815688825387658453173817919469542229939886953346430531149142451851085425376214651489090249904541073310200102607099726866027715064786576174628620440440283652013985461689977724322611591808295362555289714118512922495991408909727659193425213463906092296539485695136923538381425534039102590702731319069043247107648639621139183524677932038069075509777457277068352224798764258612799221553294976840077081108292068215822160568485619657415772608046853186583996341686690191224704070165877985283107047592603142521527402023406404367930443379191675030540393934009901060645767331131761796854608013398524229482894493189739606869741340359075641421003479753050769601861868486451191150979909310608410496286092721148741572811947593594292121318472687351002215887228807255146116228631326893819552862643079184743157084931281957216529260131576114176009468135849457080255942590485331366686130769685385946740144351262733225108049861909644799495178764593681986102702551908727064021327272017649686001108264093201289040039485095348284418411556717376999716310252577625356155143917497840232914025353355072479903973151159723278095314174260746374766069749364029051542026020940810986816879612434392446966048138850044529604749511626157483375642550821671848673943217527350950679266506762255058750342069569841368528676356644552017208805565249999345105215104678178966993400149963801949565399571998698077810609686530451441697401477909506595930333598766636882878199565400153516590652829308038318335433788222421459287655910119740735464806123941792073779239363699644977189334653348005165579254650820047213439017434498693507334658769374711452735414709654766352410284926129612582381591619653514089156282526799810689213903416097139557801010591744724437519008153079214901715641383079844158143565673087059515186432026765639762400259862324365801115793420156161733399784457994674411729378665747089546855865719518199964542788577122491519555897711490132571775813843835377245095415120659395505403216632944819218279431307107650776881129109042856286962932363217154312455953483002144851379178386260259250286260910846917984785934969956061783627617268204745788607840354855314037155384324716055488983946088201681590991912450224897971083733524592111278748468194246283752762540272233916892380308120341194552017212668281460927298358174343940712560454712220641084628413544161103048335987210807537797810009108450185655511445477092511515502245487412105040926211251278852783526135251712617590777877507679062947482413025923735937608545969666589390695674835724997824754105274759207715613230169274189815666495393842680006198043731761674607879312192779283607581083252598727771818920033277804441561206797996043022856851120296979822832458465811208391422487001938305283680035267335665806529823730867263552288041989764800814568894806556669342352048769502461561151818625663949271714754673981631295075855723655681164179879881216540513162115119028446154989571951115733436738366126880357787236346104532676064981162899897379703345421857974939220560507806746626498691148213577198643061830267881343620713550420002087927856012435426957004992674306712753442963053193517953252618016431475531416241466756736147175289505184584846519256794958822099620994658086730927988806733057790447046945516557456756763722248710904864155445891985870702549232331076355956038092158745066736576795654370096110826851047956537653016866357301321743312582951523818073535963891542332348503339043779575387428130341755344239661297171502455459811894366246770310290601706726556248046640772709241388219131722463143396963576183191988910600600882086958480540835319940314171416248530452304259175352010662557382016101887323084304516076569172576272207979751722638730882349354554199334678790033161953959509184511940501831477847065509483577189887559258527999554678031296877966473341128673573428293086737917153433291257701406545555155647157233273152206065427052799492671718728234043492608925407869005917624489060002718045423807769095558120822377510736887136522543166063823770231538874955541611610612874168394362859797263746038928646154614105563221262572329742336552372065307909334853017193671176857222161419797551560143068091199262471335515243914876532499146215050179218330381793006889770425732099521365308220718779357346874277731668059271586284712035106268976198058969297412953529156559920534771380949593007506988538847721233797473124154294235989378847111094351733776545997429687199304723263645158566077772314156085322893979674106367398547109717535439500276919720605452139747465145822546426781396306933195284837639537278414206043090133790441064411945784446641801221155363192795306598661293621709574202459212059688410237430561741066604123224724429848331471749132353570895783530923888949515102567831650902290883786496066238612158878239609764341813775705042151225240416665612720986883163866251088259101293316314055481805215991018510716621718185889959642071296710480793251712607639103964666067906288707665447324122539130764823253472478322599276619580602976689603487053101847552866627304296735637288751851149978247287291230828010005792023523333789118044083722356732675056653834271755582123128984602816167482111366586753675999186715159706716909549838178507450876801119078117804170591769147673873632516128597283730302883502485236769058658009647774031799068991703374496976938766625196260374797891091464689147225481005078148890669883024785644738816316066343881867007956432746037864108510621858004465055770487000669551518188873166107228702733927996072013559811550028465389618442971042196263603832010364435579948223200623784039456328396414543962390124379962841780108091216946354165470862861807247968977037031647351140863327981441488461717900115815085817268192902435977324583603836625814710138714603978962853199236926036644655615241154361038911380500311077781954524586647089403967439922471988681800837503815860510512619471998520421879132626293099880139734253270167326342424212804397970250899028094711030488058387064508603214412268860579494926518058407743685278189958612253258757927171568047931355180402259557756179645470995072563843032782615226696053947265597750676107345921142642326840169827833269756720822790827255612411538078213993502960505431511336184808676494113231760012853847483967649653177030543486614775358069063354885133645998635457848422720671373335736774258528576123165939820637927984151583147392442673488923103914801590210125294973822477853199840683535952851545690717829117205004465986554282959058343130868711860901832766587320797860846404119880071839305617738796621409454471708667361641202116582085442910971419360293487224723053934723472383600519919683438085070038938128903127053948272439918159042973951662848839537599471969489743216501347334626630966799466969228845817198115034949770182699538721605299190538110812793005870189783372853444595595320533570117626241595029915934484020464080424624353189858359876642243289760607963756517721382067192842190735057736686892454973993056416012023703412629976762449062007014775515214317349426859721089051725345407269412187006909354171877526608505604815074984123149754328095723039153203534527754849098970615874527946075708142008742791548226453616652952690402343389498031016405973711414222320063865210879027532653127613768279568703384060965167029762727180887216675830830989098110538918751161878367879417354087604709965655638189436689157713514777119170499235007291594632064227003084860061374075910900965284962009812086638516128371505673084115042111951754877684015163997437767340785560089114110819827940109861454503674153654090953983212239465218219853762762988972348169741096890400564420963634561878719581915574609928229130830321571295085640372631345189718704338487172463778971174203632254203656923386744438433761431761842765821217895046664833726321051631760699743740133723171282409225917542199476054253307831457718930568563935822597555020237000732380731075717383019589584032783306498279376715959070765907884803475646121494263304311767593128849998538872649664371386970872327972767673278736775918252753002188457510498399110489113790614715621619517004523892447386319772242844724313361597683398164507249628999655142581822341422878152712733741650018571185951182400893942284098765254082244397289463711045546915099645629068228710546147083950945198788690375129476651950175265448426387719625612144857133630110396694047896360024824343634167952962683252785835219438741157745098361422437299191021832786827022472409886899420101876963776506930389738003858501107845468484917865105364380934099269629377124709455315682261515697047899491134615734799369654140210084582587813668506841579130171439211583844930787383459054837875901575466391074142444551408388518338013415390114900194386817525133274736859817767486864944007853060762680612966240188954955706285796553955721914234937676333301327054525301202343085239109165757566276484960281735201784945083401942999172482824460305120978020943453693226065140715821945144897175076390015616921244801119247584193451788608203087485108228613881064929074885671839802146996172876087510975035395821637301961006477338167231286707627534964158533519991448351598677624291817534886654256898337173376473843224402465473843234966958958358754853433131130951762676772629704833441369355911250421121476277277921579602759719500438180542554786719982890527775893931634269441051169713253586066610093990915741597142332396712788324306056644213594148208014195332516084715372064950788290545857282013024144997080153453945288743034635065830013070967981200354325841533820941173274084923237732388463466221261371722209040278227078548041657101123302573697138129931572606095302032628959696859655969145987906436373441019207879360616841331570975254329776359516972194699699822077079447687159440638839470982392514630696535477164584884918353472752174265924601579357658966188719584709999394666285324484490194809436879763871059926327774837651440985021922270873830594054048551579436130445894407095778432061455457838771217886320659181994473716513790709495202234915705119463399947392833491731075928205216380246229702639837429473430190748058376204626375726599713359787432583344637322672028621392086783016988314817616638678805677055355847746421902797933662788289156520405376356692524003283850104423997644410722553664099731618352675798328090112527793595533209067222171848440237604178448694861981749393152888018724951552035914415111642120128047720987634346885194477240202079715816552918735638410636745539045918238564798205983222453689543224639788707102171221970301132547426471897482696135328390803404132977519062715912626870433625824813350461301425935627483538629446538963019898076998675398839261474784597638839805304372454645597340968758005080054944751182890690341505071891465064031515185797474055147954053963101499223562304801839784451489830526740738002875239601103526163416672071746194789232005816035972578021873779738604946125850348136679914285215285046187841068874300144798055259097981648312603445497773415204710264846235058920446928305733178950387296144277420120478711684282945840858558425643342325025839288342549860946636883228899594005178406158635182384963208222907809621134817945899384928738578390451045116434787260984020169207865795689815077033050423702391534687232649516790705399675824707594541877410102780374311130924889999087804905825955913668340583092308956339422268046197245695234238165468921979473736003333360948328691265884639429934491721616057516294762959731217674575188639270710215298752819008252844555833525008197234611275469706844601896673209248922836426348239693574457992611642267574786843741994968492304715826463510585184410301201892286588386030833001472544144247349750284171599047063427521137418002200493599059321394423468329102637008625812720173733808846637764643781864912920472905099912854999511863014601132377156520880383908380637826056324237455658259902499387139877196679761549174304184283283493950613475487897910868285836558847522541633110958135885895862511714068220493439992109031888756248408793800593011917127191813128870404247933803905464406926868122904546543222750156959671112479486541064091549274606072536029530725026479694131824911627735480437895169983460350776156163119530407039353925149213516611720363030297469441636984548937783713916913383739144955555007704890724659655672081376026261279362123693330937732694680850614094662568267756740270349757656912894070378287820548838260540872487518763586396167847989674946694399048620117713157877284692407147865937790251249388502445915189417288120801171834593219726543472586590708437446302173802227248067944800849291137958683690668999372514713935030583517414675364991036152717393510054724454530396432844486090415226993656296990025047324793919889861467752239206232530111876756969108640251869601550653044210838244057940848243696916791098535152079491517368770427447812453324722796029049748660922947810687294990895949042818893231669587534620741254055327280859216203679404029650199446512092284228558508666217865571022951531165447791386356341279418433681289420447620091115498780039454690411415557445055691943066232929181766337775032633152641563927597176815983886598819045262041835109769303427057300310383442710667450170724719495884436679910220802774810497045821575773015765483838714102833570656977763848445340250879541940129274291666599705993799996502598804585811764379805957137217525711650724196835780984188795825081027492929160554729498573441477646094857242257794333146632145752597135294983353378069931714775621568966143548454227974622404225111070288624450523906979959317245753464564654738228733957086312599999974511119622247962347489675891771026799210793487892134815280823492959494823852900366743079309822724371556391115490088159674724808315489584849340909436075988726080619303328450216489993235490453044970848308998126222944046469260914889041242074332703185046411059778860063886949402739678586647203245513634499228743215722166799892908465870051663343241046520718034527233737050058702699217136273494643435746400513633823891611759594260373891686528621139318473403396667462191285151346361231009570936340796617813814424677597995096316575021435417345526808254857019256138514256599436863458607640522572535074132299085733886189505436759943217031374443348884299179373590463177922969681444462837744764117601558691704321168211371641926571682017809043900007942899726663633043187532433239886149907910865177239394524817846243787080278713232231040639205803464083026714023931030443953046246813611411407321424315533200585311277055592150636237247846968892664127647713527472291426428701392868622838807667825418682978852589349020635023897459984154509700967498819016523903221042458602582479900897524667294359561022394229018728536003815678551655599556602703845347317238485124828999591051203006073018220690068918637063270081014799242239300959740361802939385076258837628495418694347362783905970430848819779573774963376845898865960454554093545176827834197824255264494025968965747076529252742792146702780650428020133386715233010642405024434193081842041031180471187016882536246746262082129280429614050814691086218566690404185796079010367059281109117387836370440463946824901638884128743845413047449644113299160664365074275136469033459320632555573105550191556629038965064508813175548403149300945103021812341348031962839695867269118378747239243740623733743789808876742908082743648642324527741014134465295206255041102812771866749550754213597249273858413770913826843583312829083807328509794863947655724372622686403271258862186453508564172873895389440909503243162858388856098737057261966630745639202120415697776339761209653596368613976134445248951018938945468308663059303072708989662389254240072834191514939138526470120848972667347516994120421500482740547878382834680102802337529966725281278487307570643338730308588976652112537202006646210923770909642313484488698530676779079833487147327362322494426516366699711563545921410821230286723409538531026463763097340370435356160101718465326764703967075902518794483764971281771007917328194135630598774723532732386593011617825690610777599082338549506575448078634688710608934334267168496946485468556509022486294879421114845297729503760012903063107389861295708777932524265924788684577045333492598968740215408107143885848631898268871965740099287282235660634839885415624455056497023984629088575776790804362983437607333308104805435167134104027107409030650600441823484605407229059044629795282973467129637890834348760719988781944239683571853118678905294140681452359915278650992924892546828557136918799568866322740164196924755660899595621309409343373313187732118399806730553355171077308634021112222135253580669553982623811147226225393196072976412105863959456799928950061698831273625229632654004583801528864043231824191666065112528954395501903110852863598846027599617559740420427676186124335357323555234833228231101825329937792964104654299513774696512927929351693674431883677250430958972085131227061121436891930129917416115980073478066493128610286829626156403576414200253273562103048886438786697224045714436172139896724335627395837356106408405961206118261272309726141154220143078544825935501278546295424925538089702144997927548084819529840758789292414916237603487023063028454524462820030643480554858787117034866550864411385854084171863399463067220677368855971417037341143887933643595440765174950104059382760259117693762271234329373428223486587475785753764476559212306469763599880245640929533684968254531465723525922857755753540141723930616883624539610430843709633798918625890215547773180374454258611723348488012523507114279331867709337281336619381464929301003462523247784111860551727496254108405982614450255644148075684105858490615869204725607287081946375700404678648264892669350843516630287343291968687368229857709755389841816126598640496263396983491897590427891728536241009497145644481567527311322547593814888064298133756876531720808533422953824151477464816595732364675399985084969444673132370190785665617076198002307997968102804494533329852169014765614947695726025666834777111906455199907100798249002796357283541693754206314616807193857185040633441542941874731482411047459776739541349240028503878510017828859899836815837188576228649697308314112022049990416526448158419362729240187562505000510543023158207882568847469977383402118942599966106210251165996545810563982106664756356803147091591820951757157978919712512735954569297124680164931703938489145791884661207585148195241207527554099096075489555553029968421107592064831031756932705913512929531021896057267336660867609533182733160874536654629573922672953607568155743570550987192224085455899830454360816483256704245729211379378255280314534690880693425998907267263196275203313684829532846770709499373913019504962652031113635492220478361144115910073977597546674780749429490153135980270982929982043398367951963763490742176882274884822524860553669170788865552487663607460108648126054874604389428526462267284595038063455903871115621842384432114468015299027490433692267996021931262848436642470185984469716384704560137105690755146339710063481147975175936588260558092555630169317564283995902662292513122483553040769205299489096557951702178703194198815764325156812787932923343617976549343255938269478498539830154852391930453896170980770620343432976867921979154993919967086851415388748824580154807508804126315473143009681497066208703986516131201046178157758886896521972192382374985718821660017497877699652513396191527049943557262309203245472728340538904133906587251152481826267282493370875563282678425413575716604515572648993159082220501415113660345499623071760089671793694200603464086403606773627829559035612845584419085372124940262013256298212966421433166791639570064508841351974142409823094764513604260998770504278704627261542894547851070318057934727828556104645627111893936381902117904147790428303100186837093986786207281197965041140382267377149651441596840855658029651496823860667795447103011528673005262642350017479699939916210248066651606402195807051758038144992747154616996408338533802147462841345577722738263116561604303882534671877339688615952547365773691867312460082830229510203931686129039666259986673868575319981996776592172673245107028885403753331089683571968996959692248878022097225410665973273131714382757363347221469208591676196617955815950585059300057756424214135124122951320977747271002462894518470351268237027148744754971847740795555838248791427542305847607076079032449704654842326302136102000646212133356925562964117045284338632217139220102495679137945981918059917298882203244660855623725478284473956272218276716434123608389971744296396982170369474834045156850849491327514218175789576014516857703349272850122598465639986754111735477475717013415655499489186949935074765132154531587627692569134266676674710150863589758237475431614710868084297374856554655904013245291163166247756939454138117082978465686006113524353368820957873775006437747944028489704212430163833124047103656149639997277734215327661357282968418909247428988158614857435863594379768742529673312577868491704322636042981035755844693874673973372846538936828882387911099208302543608161632539047455880625154814543152810050909116213971890230498922472086687297037637328028716829446898965465599644461488141636706161351416848699816933721826597395917510509030860227887435040917017140718857897261045022442136672346002944055894053681627856933548838879527245061113873845694025404807127462156004294818144300692384146061033795889144806646374199790642615622507272517546251417461713189924168226420318581278209747156546482391559770126679655969989896291649302956261533355670723183902544245865773909190486074983818019656982436254914602042491160405491435803888964799602316232544872893125341541092379031701765440930419663091840373470949915768756162073477586050936621924445247058442058439331700426220188589493727989485081364190148993815023808162528894305622523038352923675577836646353392075394556617070562088924947847875058763311536991433400090292559365316588707397129582399060198179581779580194407618014134942247374572902241738426050484515895055687602174318319228682775614056350409214210315387437976164203916289013545032836121475560205858972509336750705717513386105241393870095124770506164585603997902357431317501920664071842188145125352255140337288354296729302046107047774178060363621429616077751698499194971197595502506889478119543834360588655234607286623500013339868306207510660003842550280227330378833727305035098287652499531824844853634515065681722100015735626910374115918656236618643004421696917245034367566382983423656218408523329390893073721469452690838900423262519728784420177284712568271592074885122504394035012409551853462530835439403125391663286375291808719925158605650589923471656723951123885503408603394358650577642855366733058963626256171611562539388588820532938453674623509637156049378081970910513477898522695667976132458930771201350213504871739677014789190607477090949291435908659919513233583916346469983470963764511376028826894486140287189983139271046628331292644612870384000797761892482856397141659728659066624299760687543401572882461904410256135899471693424732775518467036966932195793507730316292129930957173003047381259194627666574159715625967506843023133580300642919330472458341693298202968302829742267913759182132720223475099693871897737216473706051914606476528587897057537265180187684994307282731314607605237553612810867842929551199625452668603235137899236690882853381409935254071803501465662312594613981081238268169228252859992663668529872183474299746551038039143687145269162942880308353275117288900210767434626435522385130095149153834673220983316868793606181442923024298931136226403299130519311781712645334078423469208023813114234328382911052110514337730436766114833958363538969677949907258095946517168772925065950227080022858304796586173515718764256396235484076778352025326153472569613701170604748206034801037982137711083228741489383481132487308674423261844700306471040470257927136554092331008522079533069350559863372043300700026355486523781107999419322370553530045869493820817647650318855098932134013484636382209325434795560726666275050603330727774335548538802988710874194882694256557609216186065706796835987689635019946177063522567897579244422074733399065943583655738468940167459888684607632787470601668716021666245514667163303096137750981427975830245410519748913124097150993222025767772302443228252046175123080755705179507728172398093351884574304476581274499893715353533171683951304636522979523371899368147204650241621653448495993461766113309205501287213975081622015203081730368124969539113284008748761715782774448018250318180612694610273385214678323087873119812911473675937253920359595070023647607155994113961286953142766066192658595764732308531455480237561839388925204320462833915759431627931004723700189340775669237122111631608982539552514427757843448077063539997901620676011694676680906402330250027115639171020047358674681489204017363603923465563389739101670773594260296005278503725228941199240783986564871700931930882590581269277862512253985230242735823913514752416969682773466100802178362993079765470556776993599220159508183928286067783171443627985729391374450412158015511149752971741633520299385805850255405327937169646534535426467093884602458058309737678866703367388663920184762836580629307922823934452073069258494981340589027038129416633041374689872031674999226438812250964598946580517703375310203665160045289293650929965760691050379349156357117825032166645511680918945223576024428758618751403651970052978622176027139033211665539041396779096138478267158480461731069791638288050610782685985466065779823214905754238754918598647965716678502902237113214626502208179442814573706916137559369269952977764854135248760331859565162147238668980233740734173347137874950266430413936095644210020670193633147944904873231839438108925607389998125207288367543528030201349641947285783384637563813632489326302175968429758011221469810779742505786651855226395208141609053893346047772558375878057485721303769775622226664375132862163924248561815642260029090019407054427395528123627803324987543691206513715405674664836171184781103553102619249148376157503255592775543267814203665350979797371606544344470942089998930300066504020446076673881487764984137271183096541079311374233780920053180571286436847433390255077151331018298222706973289379543749190682391924405651485107271930543150952114523067426044961165108387888863340757847896322954882385652993454630594537525298622157391546619195581008589818158910224905820014333182785176693027524870424499721475810995390945008802920863726884701560344976820345225780526180124756259936430802537806269316269351006973339772261520113103577751070958484510739630163498572981568197143208117523108505069406977792827783055036902712304416025688057891160547123589959514162994181410119665838295280759050497439035118549751131222496342644684585026474432566545830672017865947519507614518117690271500885052057400182418751445116094637228412065551407185533168635652248882726317728255793169508850560452716247439404928149671262596772180813533340164750633714126473101257121430322537124963960416474594907372008035079192060389555594626830653737737172840688389466987940969552237723651527531372496355906646071003161084070971294060214328961711826677855140996139679243548100810151294029563107004147486395508457529007122357978610312433762227663918169677718264070653978203542122787465519301807257727245875906587196330620074702866910983660793872870042002136989043567808295951006563006309894778769441011413728742020942924429120596730133898456007726815870166270156170934019134266071968673365099847972163816116600580730950112369338437346677932722185801232415442521080875792639781492194021312566416460374239389862184894363857976661723740601748720286551952483054304063762081527746765864346886147805039225672110464626167848650560434959625263418004808660155179366645987024505751585099452327968829574847032382135828910848593676875993000440983680385722762650374590864027365064441985832747618041479596082448037438495379150859349866415411238049000941961118231472164873489451634251133354057080478030999845820141682184359426383234160083938321554290021056915501527577992939736171439429543328172428712577676941979820429673198959963534862167066963493416059284879489147696372973146842332698564604361836035793119593075094729400678078712904796320370610257733094429661130064123148617078033237419739322438221973590546837894191781398324851760448214947899968063148096688416958901115280852187602508102127132758093433048213465220121571245871604277391991783172598759600056089810187474702025961291262604545586502147431040926846052532682474569302333822258807549482323913582903045370406396942485929521708558366123673221240322803177919857744957060902728264507691334581618442697172866364190336727144477839638187808027472669325625667150363674873548589038068592219190207789117490658173135386579984626836346693898679989880138694584013862485500873011507880467330498386203385167344033930139220547813317257199811296005303874857514187005507657908015589702200530041794478766582802580337981822918276218853686293384083167064923184446370311789336446324758200309403265412501250339852989222843662950615390050785453590404582767522537100267294965779811392115700395476614798493900022533715992177718987903121234691854125402169627199204318359324712095802248228909405113571248713204859461640680565262312009865550495576126229327352338485406079140926838196366259579494358547969571325915379164848057977779638994927952501270687008518676818084372010480952343344138029459313996971405568142985680189709968021954753450067152192191877426837069719124930317772498343081165274049381578382026876679343295230451956118989953981694756695723678770074920476558977408411974313906666426553744639615868912588253428875624654304675732434023786661254301102576988364550590784823053859234727764795600788984917584244862048868019816944207648570437158662799097827224043325745993041636013361363481415037501421796816828900361206603715930030214389663710055438312209809376822617816835263580343847431757292895871511442696444769325703307742510132242533730968798215513246142625522421502823783327980765838691458997338091377512519904906911934861082086190863399468801953888353818270080639386019111209868714685078846507370176487283810650209627746559987231594679620521472591107620360809454637399082170911181037252096868895664948028229503402784664872816459364944763061388065132451518326376211170368667266130256841661932577729035251143916602760736431736609386619732674827066314120010253467951375537671158139240780077312378630573495046980756898243521701615467714146088214639013536260325610718016223056581167159307953046230841608501588382960382333885227212837575648784713662189895940694288161032700493202989648557721500454053737885801479306071664274269088381175549073606444345530352053923402664273185332014745826894224119625144998426020963702138060184153307324855260364667002202964627958769520627774960088375790292038278834795952952333047319113353448461193953447438626891898339964696910210604291751110430110100943171369311409325399776166952315733673483571617881442894269523260217632434775230492584477715953975432389697861819106102390605746284967422440499621409419808985532078335545065232086846509255792112259547695240882843534394574283898594879263132058533528743399378064466660253250500190304981790290499636334275686148740206083532193616620896489025884173568435847423478070653112588825200755559459801124965033978538866413427072208709910396690574456980552188047329945715618816140436742465198998871791752856673142240710942208359092849181364791852428269428000252885738382086978931705265618449109050921507377078171780818206719489542898641842543375216970005164592147720392891443482852698865625898553644892472066745725813584930352870426385104767870528340445515502001062234438245213560792852894282204108197745489827533815775263715576504312682668273609985732755622276829242202842328682604352011582110480405140213440856757751758705798369687781017842554893322977264538105351152426964992065638310239216327735252020254139270384668016642446698375766965492118394664801041165964679133180804764799441197222809782163931676279947626402608888733952025220576745983162277503831309711698690207335073614960770045616510916227071024045408516863346691101637031354431446386362820679730957779819795641623704716264436203045858915832383693700195690801245816293682397799001674284612776864059592133152309963261248269511451973286167517270756851768583817408794697652332294577759168841729026946029250641644569778034648206801154511924072487148618646092841371655992492930036230893922410016733914713502779849410338819155914794349502230894543488808327252185684488247015949265296121916930435723645922708213025957420412839027716168157859937853323578918489052108070682689755825059709087413383872176911314527145092153576349526476299447098591253983655905701814443920155236540703779724998894332748517551378465044123902669587317530424341114646232748563285220445214742875955133202213819753956343321115069084524934346529316887357103933891421480693802196777757404731920121423190766783710518181320467713983089728448096256882771242076446315764187554377827646787329802809093334588614126321809777397110556581337618478754987804158339969599569731522854110609660263342540800388184159193660545278632572737763455318893425109138061170659056578072077725312318013030356234909446453386642503822665530401185091252283079596851138091732150096232023186362790180165684878644877909477429288126044540525219859752868807034576876637098883442919947440279710088684069099016313572453421156553227269152885347744247432647504283251849452451951187121988755030889591736107934729882906218650549347957504202413068621811402693974452877212095087443637800725959201998966031406807192523433210987643901754073179920237152505218254312956332872834949308537616585719475440702528208269943116522262919001538640929783790965380585359165558871575963982822751807666489993367640699968430100537616716766289929725800884697721314107738000109931261073649835192209286044839914153249278746136727159427315242125401067505496008461715119399921418563006183645422203486087705961641916990082470444147045365279071795472610518372617692767946865925749756423455491604231928909005360666368701521628630011257218857011431052888366978287749000071080891976622456806758554450110672817626386041137656135219070135422459344648125632520382734059705333678104388308545181752719182602244528678955662818288138635740304413675829549329592240935843334364150491559230532007614457802952502338256070231923364704213515952979428302392289085205745363819340171870090910923862684933149142659162609201537376052333212620506006762855378455930261061519221673488642967509368555757896205875048500502113038354483642897912726819754510027324159695929448562321474341985161618175192621448073915631576205170631042911340198986448472271973147855725825969994487837530637496356905135680098328704211644709654638721714982625893420476073570547116162785235054494495647457758577072978251108179235852026027800530601593932789390964950936107715199650149830323686539802796391124322252468256990782191260949847739274123728116203534316175731972944621207832282977956235528702615829163151444350023523018601778526492030603298099083886366712570002994969384031216952219592250129411600608275312268196666127200053614836353444464209844113214184113465138405771191669730702389896312033118955827097960499203052300544055455373547360758647896382637154925204903085735510481527414251520992575845108445815047090457000472645464843768851699462673940699748323780667562026531673978931980388359454083030687957607956944015062164427855772453116800138393434937194900661129885238832537564518802007269329295655054039149877215859966890847314170128443373472426987826923065356014905448226140160657247562968920501816968160562124028929547316452171038595178966414224458141460731021074657098053829665053631178689614225791949360747220121250924953801187916524408030723899808299993319445003021189229231866631692157398722182148694015933730750203371848194340631788610771344294411751468508159766445394735278381683605762095156406994909224365462698554079157879127982422524675005682151531093256280450675404123330144951419945302435189079993425660616509187056662774063617445007399980837504872779391186010843996563914745977461450108427094328713783926041831212207056715693678714680527390575240631230783735950763473799825980800150108213684471803721890914126535840167111652000456781178074125975972753145624723280743736800228866693498421787103605444139436839656790429433463971129054424423492565864765753741355629830950689126014911989484343670456001207381265617624625762041323663362475585423915208943522085719092790082786012866147979782661372989936793594792956240350821914262283621001641359199005106754998389155140285892993315790620318119034228300494290171451514604291744865471455041843794973832788881059519856932765277309192499780196619515781123113726139099522181020405976503428864738791380752400578148131709824219327676366186341271731122116677559077003175623562961623652831400947265335638494361703941413422233020422088759012611173350172065938881936002176422487092291901033778431563630478584751103432136532836245914943488254748518488053190170682663996399975450954966731846106040792306912571065601136903798033238028041446624009005889445675630739568416849166375666850893797705680954112783781624383284801387021075743997979633924932621680307807244793981492004846125838435948395333004300743390526001338815266781535641736176867545018998190503804388813886551117307213702573777094535155999923376366072217811686767194483737510993975083107165531785719178121118570833181603347319696148829805778459938859271987117260881257103765915817821908322231524460342278736840261194390348668733619991473401929693541458314051892545015400692703963682955482440626706685743774535814809876848912594748934570785570191772355287472611408879560531002431906903220575774154256690815259272454037608578039848005810290930102390729826511933767767628631930530885280089562387736448088855978992929169756184887159998556230332325076778850928406496666809757777109255262362242288961041252016197069985190116287868465864446448414526295704468991984557706231501091610978068639505898712585064073760874999215720830162402110774569944357742713758798657837761055665121179018685974991625964160155636232580189343378308696344054289587713834834120074255160886485872799780910661092739697154122116965295914482703925563966122671951320965419418541206360911851307382339349638574578063960192919482616996500566450768862077395241424092970713066238882711757259355162076149967876009050033858980750372392417956946526340404509687591309856060129215599656548081450179625561623956392765587310414268160495918962039552935809582063661433003445716959355813717682239287128121698012577231672175743911965105740882948378251218259407553237516253603247374670283582720656965327617497265940906517119558025987931088211714526682666962679305994041849754253594178354628498307106829606992216111582171229395927573491622521329358033168532772608801678130143552196973717739769063551020671687744115596373549353067980703755121995807536230282610638850466388463546578458315980056402805760095847747878989726622152579088434833185151253858868038647874536257583747983202388864859975469747413770601367881371116084607772292007393783518821144190867744804531413662760364213346023022203251692445679405209000025036531831979621426891336470455094713057262919262998860887575651728632016062397141105510929693630325545241371390967211227298223926014738747259241705048338255857539098173558825564026279986929489156308719242047086930952456210676443473490798065528845016720057473165328993595229399581460570955893976286273224395637461180580054885430966648475859607514765200838916223179336999244115266112723829626562217861760951609343117294276256374341276053068300140506496503198885049116621097988912738948804540384489825296901811949311344003277840496262851376454197660209624674008654978838501954240890639922296867935047207365781465520882852498077346710411241152197871220682611582976892126036983901878575945367458838720767068268169452157559835880269859180039143336112253439143253548528709000238907870277295811740557757469915868310915925931274045689172687964371476796508503781495178207865821213935271735244902669259325075197053179964288684523340756991634781568375832430965553114112805153076319483764111323685904414559511800011557644429383933999562866582539216096294243796160389934260979199063280501205941160309336881965572935827810729659311708476662912906775576594199304366176106663704752742743659157795711413699219545526306857029630326009975231051822346345957786102372667804162002741209098536812712310059287224590683169512899767660563702003958154668468932775767613783799226360069779911614616746050421389830104187485023894383278345979091918498806884816077684200895492707479483565330559837927895921893971149840533893667492246746870086280620380892259911918676503990598429475408188315967115759447515772377066134453041387576024667649307400878691285187481538468731546655633740654639069209753576156738530668000166287242793455904982670093766270184355014786986057612101592363442145585089205905449863484193785052144399148648723093711952378842859323601711324643636030276599574765834354100358602835260903246444631103899817950892370332815027239134973188016126092748722681775918668544475294645967213487447290251703947625072734595850371534593990552184853663602485353329261705881369703377865958543322106589139585484006538691162142791005170281982471854864139644032199669142924395500216173711527166191803359582643544883401006241551495656201088548706902518603671162784877374874525039857033630282528295840356782098401726180262794319986229088306999015316948986609125040084453136007161916588164075181793434167001699039717644818516727517935721310458103675246005684686440633470749796976029052512074476028072641765614598083562104792128224191746220688291569855795676980751925531582681634138577683126534856469590707052165060984545631983150713672644357005443068064735646100338639260159434614834263095424494491379436844089668818600953705429577205652511871877578041712212865496985189309743614259853022621769960571909731615558574946070496137906551975171228125067640280376869369537722457815630501570934205894492731336396437130513939029162159906933462981398288356356602746621114254328779207210990240080940455872211081725956331071733168084683576564506465866801756326195786650306388429172573754534419938914686280093830537538102642828011186106868804809017978270886538447026145778704736721459401479049260423147655318438003417011263687017658057998197452734360241973611441944433004334121773824449633458770929557874278193292638430713353487017898823702067222371111106930451148253444224606310664681013853579136060053200619352905247040306310075448811671865150647516328537714631267257001218491956248771118548885041244196125221336644903602662229374404903189184617297660220919202589299840758169488079273790159263043281053748926295803542899525681621201101941593125354822027057629472634833874255515491470455600000983632786174136900499525165889697788901578143713831271196125035507042156858471066129314947785636504162157070934922322229198012795460731302867462318528566110610581175459954733874703002083179209113371370082232154906618431506832183315702754153645208225204089370395923360695970197885936462762432466549092236474218274245292008489191537643492887408630381265832989230274873287789555026801492077110229688544523590528076363076585436314914762681366187076458574665320319392173496402478875063632541788194569498162381167278702887021675887278482746853581293691477737659160075141113941342531095376609512093144242355398067377718585521706018451519971102496929423222178260320453548154743042492057263598467891508998755084666619280957006052269030005575679280123280655555801225298142083914974341710239401329694691608246806603547134780624553218153809229111442556015870331076125508941446138125404152792670875783450502336762008181210521224744152920799632458019124342369603975790827092089939126865836493647296138285797208043359740368301267396163225125168653397148778292080603719554871245388765749718904177575724405011751337943996732349433727101870243311134584526691359979690990445887279026989600179194813685120389800986536216192990035506781447275130461665472445528046845414143152081939750341442298096758903700464766768541407288022398095330492145440502345883644965708802688282330132081325697055398474317764701642972347940590251721108874051548176556233827227370966996583123631877516035071473674095169668199255159843451782954004939301645474609019519826883746897417263277315232278283302320233403136167971218350745556387845226221270043286466420899869975333879413107816068257613741043269388716194906742801550313459114566181213814780218105874799431041954285017418189034974335942861513781866442044561613179243429441434807029069699685156687723570187916557331699546792240612430643649595485596741011554310650458406974946793322077231608680716600996909411946595235013993323555359933450797549620756086623630463361381774502846119216839940516731450188629371503013637717469539638713252739879120718111086975609687407388879902897423573447703193858739611029508809373279172152076523621116802213638010886883377863009364163505189766842091293738580183643422285305278680360132179151026922821462436560621126343185703743670493696001996724548895755977542036851061150742988526970617060406934872260614314046196181802460571493254001016560234574816930434319489376000073250204390843002381384626686645617870164429107273072050551936119247401284890895631549969243468735647833726479795641123450137581657281193439220633933866113819223849939786593039524511453946410833611657292084629669245249959605905318603687741132644063864535984933466026784760794533087906960204662099534383632723656452642901222910732268780452791642130204919633222826894891405363388754970166736841830865981932785843440229951076617168923547125881913299089489256090809718403213204335905510273785261109081008834162420059313858172399483760381063057530986098674678546139999160208693976835147245161472614830492699084975606113289344967849086888447910743487280871480588710796256750360488035098529197178378600077904757199909709554548899999501706904996681298783067144049865172954404049141659868767026141355969091578857964692919900029514729351949953029076059882342045404267896698678681283434932868956577092062022110381057336709342747467546132467378953451242509162540358613195525639217009979360011016735360486462177378769791347199400598794591008799836566230308087150085217575176009084363815357690353563620218716477623904860386935997932722452629567423466242555229092162467054516729870988091046755091619466356920796836324528313473837808752217505255146797702343646897298385086625680926535767598941383056648372663912019794564424438979004806577000497905573241098581243188273110314445900806042960998017233760195933472062194575427240040950450210209221498667999120929185386175403551821482725768172103835500387450076553872983985757901892696874612150787301180275236645317360562465403098408380481911760362230442872118150933037701510795706783155977822336643256759442220480547489264335686345429840673646652950188692040439895513241349098419180143047873988099540289633983409159526398355906814003676989123734416863813515237873163367969738459730772049472906750854275040180222219609646605616466955116439828069315336460763743368403251707883585730434356845826747287494574180985720973221135822865528301771807050594121410202223109919883877935098937890438352709430250805524951079945897511734180934004108801647459380436481013535114516248399833651119480568948239850552526581704322572881108604103648474086607367501561078127077397568507101171263387499074664730658379057634962804909857140326277161751542696133252422322716794525676854372869034081717307826135986465674440215034326868317221941883160408009836840598067373181227889888432266823850095658775450865984833732397129074129450154056136062607177479335235291885426036736031720281144472385417663061134837187359254715133448290669111248007958753645201985361527679831519442362138935857996965293876320059638338338965065226726090551843373862351351810989084892821033066688844334034686033258515053827070505663416970585442471535586873421314788390803874829324400132009871894532924567527180207426688223813278899770892554939882832416912389069285300601788611770864468264676403402346233861883333936312687987476655063665535061270347487788178498544941614422115936247344134595608458647052761066762013884250328936524085836230783173387336764181390496528609945454565723295496838477960236506656405219496300261328509920677720884940289826743193500535747613767826483154068363682615440610240541234371301712686296347481294695171061761193977813315694057947778019372568592442146318377107975804937726754930965362485929751832088130002617392990729119024384544563063861185958712539235663864286496650900622965684320278130735071566711835256538309090448581109054230181805297799497366134803135332822739110319049989539618404115322400448184449975736497257696695750077758203778833964470465180266023170501212925556785552793518962377170652049386902723421636972705687667902248135248966627104759935414015352453359274223825332291589588150530729476887947672433907052474070882210123162199082999812164868681837530115841305519609065486263862121025473423193282008772599771630271953104742641408114983511554221515137010830702009361572303217195244520103502213222605123929380898984474019901734468236220300100134288910408383419480611590803602192781507157571422912089294276966485641087953191057208635570453808244635213318694172333775484425375759497333506434587568280985959693902984413451097937896039558253264175434885972334048572446177957207134188338157029899312205860646718548641074561818964840632786831812857136639396363212400021521637142036159813161705725500814422111561738697733265656462803563976604491067445933566942240549711965317114623470367658096456021945610934752555824696457066669804264560477900615267094231723814685656319824248005971517795555959132643146410507593294490602882884827850357201490391716299455376180744777410209957966931015096189095710712807931903179718205754953968035565264613148863330699709606548532315388224296296766359598378625578439449002331661468294259400786755316441097036127006437065150064280235683014216855319017145695284902023373754251623858818612089686842571751148579096911810734958100106997488975731752619336116392026489014596589231447741231569928541984903197979382660393926936145094919715045474855871969990845684037755440278027982134404998092221149145525016786435727684121193987030391042885681176817031565259537237787971803345706695351744483275839855822881330780181820506104389990289589313538999966198740566863147206519705587016788445912352348959275026174330964629391025576219040433444527756628096494323125406284574426179503997175427256817954635944967161148540588098191697469724522237725268989114696682225351552188836240319476980495120581864336931269084872232192197870771405101015584989423324917293839269773305746015878986835134303366772726048524461308576600003658691932229153467217913871996132802823977147203507605729913189324008327897751864303886097717070177585299733084683040406529060610070705455093078470411147946199974056989472155718938741227220418970491267357331720307972038347707114171253249796065476731476645659947719431329943224599272938493582721081150860294953595455308833959781863912045015411005712088261597598175554935073866116827506032091990215103538007676883391916047261652422022479224857285182762391154052839994437622512438768345247260774880679511974988924636524448281426803733346327657797050757329387773012082527953609951729718690460047118404268718165659388925046275640015091855683177063756979131350303875371705310215002754670194644955289800075474208917569036170524211658748131143388134577933749881085976291520738343799792727121454367218854777694804423649883244302307164364074099525975671568870675260683760481852991699843439531387217056528478040544702258991655900805433053428889684392705617558794422840726447472035942265838165492856904395192449055444772747584191128081706209624734680281594985028382252253081904995347006800671438861177863321620068342645871141409704661788351760845280585460935475961207141749313407235766306835871055814508652654629161152775586231578996121121476956675005700785417072131811858961029607662557970674536580455440199601259830978839813436332124268664174826442750767603736906761112245859511773263123349372564068573524156475307707758808634660337993044096415222120158121760052176536199162944675716751247031967275017116306427465349088500580894110475259164301910861304067787406907124808062969661082994597756714433793509296410333846873725137579813626102756615355749063008379856446420951116391332433446827525330198356233475044541517860015954406948394946485085967066421621138805593372907715091904585121477435394861972022776333705006335109424875336684034661542462346102747484450909104126332263693654164447750883917807063361419023690598918221706862826184801393433387674434641181546734419304506021596146098697800117252566093933805242607261063958925076842188338025279010845975825809991355812026769165074971514875542501466995022301684688534654651469141947034887027934375530983079772287405537172523724363596186857679706499503875546588626321487852256611100270192062144074789164129162050726172195603353965700141327349216821695644902468989677387765227390251946886185372581414199485455396247317218923616656877158695612544075551157205572094316825309620681620064694883033316079681257122676942094785082915220213385087452046657960981144073145472219504645860206931264193881476332024567409831536255769616777428383371129250938123018244219540384524285366711996261028171516595398105419306280100340436771505328637125709304953485333196819960218591344299027589595342580422995282003774923208422141551170103907492418711515900027715626869201243462289333728618325100943969684676169637447139449106035074589904482703349090697970440136358561254953266430287803482783801102775246388197883489050696479973682495172295237632684712034145064487828981668784832323904488375829371610259622166598584903398238856432529576871151872357559066692726947851242361805712619246746538234525699982167893153700379281329637933542007143111449725586411115335517465139146634736240629156161407212651022733217811225831365658357675209044106128574169461708014249151594213972727255752938412018997776625892195293442482826767062929185110370651772243857331802905344075286964098167463243823957050283240691491967099627490021580867035199479962889386349438435302076033570584581348107821554589355924348421425975363117570625871499241704224316961824244939728819907863374370019027262125669368340763715144948565150677047205798280301299315593241709445622196364981052431914762589732990121090172612352465574990671868271090024502877241977182040508141090176970764180273945457318886359929278949376903966376730243682668537356775975995165984537870449687824660999966122179792452379020740615799671185410179127085161658865307960476960545078306026875807766906139940906671813582840364877659279382420953777580226969633068614957964439863006282754290123863868065290358102301032716159642015701836539718740472820520518754625623934583199914758910857940918280459855498130395489668253706251033630361426684874532393097693915318031651741527918699407851193145869827860124644564441711938272734146956446495573290205557399245592373567751531786825195694168064542234074765916021443588785038742781925306920794749077576139767791821467875222650679835122848279905468451160113401517737153556100660832021249841640662564230109961859157775815756650127688623498800239631573317869436304664306091589124616827731545401613836066148997183368064247498962434652920842086584222638435029089160536109469894262268450488902584422889014486777399305132001617178621408782753878101360333782017837705013621057366765967040569248753974910086933810774031244306144477846375971959831575799660394770656475968102335097912846468152698024250759442915929867726418616667562331233515319581129469921127007226226421572117289132345845020343264939261884639513737204293798872669804265870754170137318743153780632768560078416157931903519883240313249966761042492939557886363417947301887197141293078111242343273520195408497638973712148499213099603613033022554094890705314974034000461694129486320157437079240614210782094305547550650834777970299321124759698342879863045095349336375583862812773058736294758907354424615063781734759508655025948105485656053166546117996394770046583901870787948274725357015227726840210750692116815326272499350583429225992756142916519188206107827836831454824322224224059267405734464667936553594199593229543132188085770429113061332054566631167322892276967738685164941991824456948828892607367450505972584935814381336152873309184107171765263125921717932585640512839944565969675053536360086733509591180452893048107624609964116888611659558053602621305146327867654739271151452583697983214358351297582161167571851723303756578314759888051965212476935778439318512678869471994872280834317796091982274689660302510599635322688856562117533109643273836632048321074928170209521374775182247141610624994602055139303993078566269744965570643845368570779605043980491866630103325639882869793547314373325457443777676460679198890098292865674676844795618407241851527489764243413278209974010231671505642717193713408242660629468999510993121870551425730759020312929055549764729316198667119420884067004492563013318610414857977444532423276813108803632496073416788164993234020789981605744934368654427702455676626138522737713242158536793521020380331934520606689817916445424621270459086014555608615664714353691738501990843423686071984032893036160098463828453960288925061595217998478330804299367999830992172934755383338123999075737855354060300415663224381072898968550223045776443211749852481712549504244890485020925699706044522700307356245180488441509147708304208145707701668171698243503236375667218236350691653182729884943389896555771693111676678189353973004261978831681861738083113091151594465240443236670528864117072733711308096424120174622264943550539114125232842646876228690263700835438644106129607612138053710325198061301436052007890066282718212610901477847104179155431648243631630599898736816747826005996162420239532928433606350990556374699252119462470758334494864111699590520456978231366956845985088840331872731408707995877719190938516383651451508123914935345417086815395174827750729446588743658334070874438394175278421400532312147608762251408272742934104699152914302535905232955565161086543711468764072898901858949219816377666119328582117743993217547446161172109191468806130008459256839103203091847963104337436537549496043898206600339279036931941539667695176429906430629488050269963346578267337653787638950737241933230200589944327764682037139033318417263672068080973748301080634121934938697185531140902735506230389031032686004196642373589653094589523850685058766954650153495575483761884088401631511008432871784281094749755421705607214114251512239062030785320549594486120233909981363917909100381227227356041667789502220695933011220445838196206774694457934746517632410335728294006522532180814335558214030472131793983088399217609042611142343795445167565889026920202921071296952587289397209278532524392672059729975300905710501565546369712708690291568317301156889364503782995822801950712939311370499984787316719658842608103293035273039210978515624154541333005718009715834794544262611003979423372741196171830116918575194235913750449444550777044248011133020608748020990090845214553034893347260121880908041193739351699922220939585673692124294049186040146269296161099494563559802269283913136797060825619979234514247401052751972034582624881806787583177458430296178119994761452920486766602167129193780306432601742349403026274225158273190412374368570593347970030259510764242106098067691005099750741225203542470876403538279978081509290823348072845377917485927355235466478690071450611016355257790277426729921168757505349269632001460337775394479266146465970495914087309227790412224737655339251659743910871124195979124658702114948062843766430630322327206461889029974403492204399843962110504752709457855902156276069391582619064703512814022987690397691368811360936152220556643451945553094334829869272137254607556189453067116615017881506486573541212106063394823035019288414556376951067039121913426527251646445497474037503372876503659119431015016742972654023824613061900087736820197275101230563138100443482939648072423951432171610388065192224458675279229401622248521043933491827221481046490293372049711389345621261592766562880450822049408554210671355535635804797535566273872832392176002896408835574489114596757268643255037870024624382433276565025547026169984842125219876598665449297162072578851774159905641928976828919074364115179768947080656287332130154871469604789225757289642774914074628389007342717027009994659839796586239030854946025058690398127253397470616072172338867532015653668166812557717502458728391042033739330688884161568652421074749385171376700120674994851870331968641479383546006464885533506398403449904043680988892694948300314366910403419162637254814990456042503813371200802338347966597907549500773334213455477450186712038602998659378673153601827741418385133289266112821240723317006006727492180960540847266374491050002260609243870705015609637384750726249226292886987968759891993540236172851192233984926779214510924020856599273250333143034950063337952180523844224104587379707913339986730902138450922899131409467375980974726360891876391853716742975400464423108797471704875168494142165331169294715919765096285182780986151858608904470963660627625748191238348283927639930346996778169796159387411971892622077726345166091718225086077783568082909542083387619762213350338214796351151803506920920601557444187855950652429523422499068072312717763954388297900477075135152294012334001470257926283467716732258192509885952582080026859992041261065902452669211041918730246700901883986190310781703801167523239230186108337229934497076143123833309876475754777162896282155646283528209372663649565923493473693397245984676263829124250491962992407733729232402276130269799515057895306594080347395979083618137727209945557746660675964980845527568230094133271283029671278143782276155451241165781580221735586587995266844061544279075125001392402384377923003487252136513678448276935403465581854493573362291904291286098238695771117333558133262650862316963868172716340047113519144931627120004642000568812779165845138331714937322087641240200740555574311786867319401131819309471197740307746952087411781094281940087307603115839060998758203824506801266610043477111992204325592115847962141631186366488845431058522668924868448103356895856724972834772651732333437229026820226966670784515572358944976601674125308843981171885899943887905913642168536907185199549238546762057337890477238406419346343178878055302849854858150568157429189418769420289127667077745425702425154197818165371893151612515316903815032212495467622056853988948355732231933302664366407632201040770766520749138113102601956474779248477066988980754848915451912402741023176626597892032693895403546571556906042580651133684818567267140437724043622555376434875657009889784647297282711236151784408510540326767290252881549814011744468767321665139594558150777398517181043616453827795954640472391700431278521882047235038429464545988908640037388379617737138822326223689563154737953031068693542743049932147761222656955844348644600416297081981706069721963453317129722689820080646524520009343091149282209824594650426662861233248553694841112775127691553939248853244189625099538533815031314513767963976524419403737273464876079529636757121265268595194596278468007816491350232940998291853726672503632732851449879600391128864842485592910497132873673225459245725730198247495323161975985592305007735317235146244611286651642763510441606092209463111387082573431478864534527500210788625027815093300194926990975431631380591925747768454987907216120003001924464976444594819128203725516952368657934068174566078899106857574327088858648427054619509570786412104484767456082646131623864566646726399037391655791401178311647643617067187487997478345300891002294341457998380716027683509701742054960664918572765820364270281718720391375703205722044954981991278676404390778150337382248618987855701645077566210976522869016490362531023021633343155797892827406861364006407805532411553071998798822818958784854255787719943027474090945531573750389271138038563044451127557710076414698517645931524816103598874400075249600417947643744181593062208260176378513745341297811207388573121051926597845945295518041319829883363721414520487355162330358001306764008051166492853330722285362143720289920056152732359484380411815689266537629246706667674336953747754160013442234766343065347379459509741739821034110989921680685678577572715484275369579497935945623321570176007796974634147090394926111390778970637110518348226225140262319007108471394359627772970987497559948578645124105960429973108595431897103762259825361993387876438555865712764509974328208724390549266526906097151875223197001846392569210148579819930769345164935947722902425708492663232648352046100541732396360739228440009548813111909227131256345013840852924350476615395847307880170555377882392975862167504337497937145238488695510027009760691285999680960957634447792255386476683188420882275898021568146093000236969100912256886392191463367880803195475538530576577953924574325503678460720107090602882501313103968748770231206426013635123628737241449362198229220374570736882235490928954813109634899905717383549985794798523152733513478191359771953751427547861973073113210728252183243859922025869658685520362692904014060584415697639086273557232464721431557484345770645001289956475930818668538640672606986618122890815106630382855698418454523665162945368824476297585685817878502115939644351271461742033083361541903047363971900336997913994268504742005244330626723608715875813726600579941744708666338395428248136813603817080387025662062392453337358480277411875417333431789826906017478443644070089767595393939419504193132401985455238818795228950981987115262141821424548456059750322472242789949448144556600358042634804164771954267043727019209294893237335469739126983800198509888712386637703764094662001888478541047720375258357308237582571019982723637319988197554963853607879345949947622745669260528857234561223024839586778292003823256975667276966213366621324976403107622191014590595572486639806684830399823314224303262076119454250082744947944864182411978790946376303332620156042767324037735925081682756720802473495990700204577437711175658647368004262321108851508705171375127727017101394684592982682215361478191597716470012880130206595335716330393513039685913143235734485667579083655660225063100859760456113402312455297324981143295523710638583851178531588932084415205075607094739521883329178277697451522920078484581303099707333707959106173247448576679648541288503828288813055996377967770110907528902055542787281140230896315695384869259560685465796238874517911977093919261212506487809312542312921353833723526662081555179693229996332679394619811253595214693340038618146147867950803796469887429180896136691279944195929450423463464303188337081663489756953361891244741000320203062627840132322310095764061222957509081755972740979664887820398586559389296466948336723063437511562594698465115535697738098622570506649703640387682674807046823820858228801643615076505391973236666427931402526702881163619433327632643856429613312658192207373357356314097550544952771176656341116056146324711952154464697902026428216488240918841538821975698717162766840279769325133085048884722361808020673256294389812551126880590541157839349756401336683506464927642351460026975735846437357070072240684857432291723647255731680199386522083692028130828900921050382256165518354876304184952878029502850643148458572942572075513973708284424672085203254074675436635860986278261334976447396258176179454963042575841944456583098637010715996962749190194034072908587248113959679791917238973102187780588715717245659077153422859497195290853539680781404153583725291239414966134687473626206851869032678802268567868419829007898173936369774398680222344526476794104258578576325968302947030863400204902602548961436248393638482131054856199413788645379907972798516725118485944673930653854346235868924665436244073738377065220620668052094540012454510260143418751993952614360256899101962760792209887270403657728380801935372023910711188748153988570003727131835189762507367933240957819432187208372545350436576576090953595722471213990561898726280218250171430454453530175432322819048989274124504289274812258304245801449753337586308725729477905481386563105221494860867656857311808608939811123881579421598385270733852757421297691564203441958153701196426370908204859988381088496775937256927401788267490609372345789974778278235043726886852696515893774948180589844018824301354520074632490325134191086549015846276092126064983145614632705177307954668660692726145228423266047724508140261762136793469815626378505220790148579238857740378998647834155567959431965759552991267093188385395755791874663384898563971034831623635475083960147139505854899318841130079182096499311455882437912622680660886309632258626694796248022992819496936834666469506696172665719681297767633416422865767291616797648780629251934329169538782992150767383147778981936146694617158262646445791348515745478615180635676347561969668606005509810662862295298395725153779110444454055082234985084821591591549170280250321067254355504232568671791769017898467992363755257689975964264006425060387394224498859093661850905839111350908147232844485229134034710132872908678938099151230031066921074290798227531190188270759211098070658145557594783926149251304458328774230161504010655868780639378073917868605685938120848323464585527294559471118401527330298146698430030722299025925736743235953633468489458835204935809718106248074047691652741089478822217058431259270898617440209975442224310977716667400991404260474548733952040296323132703715327848401954196567132053309973041456858194909820715377055045407533254202270573069393740952349792532771674880905039635245699619331008263052794006669970243045579852456929965388833244479620080957837539142884981628177054715090414587531119421777656424363883485965739813899008971060095366956817787407780684928140245994426424655945133276159006833851969427427579868994510496061771209719815703463802407796938983876433722321788605321576339713630191311468911945609064893984435689037860471451315473116808903994818829618367512827056823479141585183834951337277222480457247877692731941145651335426031533392986541721482411957661205639169866960161304114329323433092815348772640773508249710277794297978527653201732102657861045111511802374117783082264187574691852212111639281746483747927595507921039707096182280458248327336567574626421095919839674475111692208779404559137251076044544703064638669738155898826035144188194871761390898073667627493101221354044383933132356250641893725575038600939350113330936538854216589382110037881433104130770464921251478016505002938672082039484114985992761909554722001153512230421070559758224706730792869378416317131334766338267101260349025976592832515280724565560944276798766868181214060120925660034874280780302012043447204338225675214343814384739015070003028056815944317544463682810256669184147680397827336889931958460865571234565104881967723192471880511544151435237796911831570904743522267209574530871263528077956466966731134096594884749648483216211153843012893670017412027740608868528042496299312202212457451476435205598243967158134731713703805090502203718022512839540101977670471539465896469509249530921423462592925740210899156346967339245877752655554868894335089306413026466694311945186286939732855627142972584420581847873317688557485175186454513033040411696276670536849027261925918922976603725474321216772412380023304300902883843117981861680653209861510823274868624941598526776419323979418800096048151879437730446664220209606645107455540757175479001875372877724252339135064117093743021666639424797307588021228695755376665769254311057216080190791150512316862097798296465520606115430621593524672963142612435884735501711470599320987647805489191015584751059647781964811882121274913703876695114601053586732241879749370272296156068690030872715473712861182228643538325279142779852095617322947427173779868744041115990227928819896757751401255339014632696937154827554337871394518865445877981494521564741194537763953044045679738905538069796990522767278381999302955139682546636323689145317400447747031790189349382548445366022408494781701207365362777487434125095593791278288744574463530740800294067283815662838264058989416156722983970916726298308461531731317815340358545371771308152212755080462485954134842835455710593563165740483298222891640072067053950757016697261178388911336256421010529855149238438186076020250490698681248079157652952574199396888886141343253792543388766310847850769230194839556325692891245943543513848538812043703175713486378897036568238774689754524748596475140548585659775907269300842286021424366011539521464620498676296230601707264647847103429175914517437296612669404131700217270940843598732490511631516389298670323207621059240709826439058472945622165522748904048040241238940728801048501733682736666615524944648313285309596835900327532465323037820135190670321079595900535406339589442270151781513225297798369422665099981383555947988911002293949348074466600807116781655556535614330213957831388050471015745155526562523770971247705772641553885934662186164410936122044139647084592528254422925723539150072152309723266669544240735657799322631416117977103098198601200060082025039788333523629178806668676427289953028028588937035807309795758505819926422852100503444123317143025392023694481330256644792211037465525707728075147303202492504727626426919081286895329451237922926207692354688090837707266830298279209393899998742812565219179364567589286390820006920733323885612173916292666760054295110348554389972027299197429836731000905940854265311559820937579737234554039754180032124590839256083610507905556001401611950009154861927952407994233681512799178445038552492837592078091608466789592107983859348938304148204013537876765160137160102335414976078876931923445225143675340044055397420802387368620064015011758081489974903636598124766460831080184490082400487158729157747826849090994070731964630753218330681109286722336760353633213889889656042289852508547281227428113759081492078257720856174346648947826237594143340746670563448136148978289855260864306662165327907337104419554905838742207516961385806808463756290650254094771518209065154458496031853947694457778367898181609974594496760665894948689604946802432353931464980372950053288601020895869969112844424707509457941684711904526513218321300677676106081186790624971362123697403914449564727764993975152174563069518790667637092796309507465770395484489025614004041818007517750495179343347099297971828186717385120881293247153376303616683961207966391648664990512298225399358700370885698626715079422031943832927618486582249851478192895079346321758747214235203463413241780952404272967039400244052952376973905459495180458982708618636599062484446387389923421461017057698069845966533300028378846227360686758138573585803623180576453342381565446653261971502994655656181926125134794006688483546643585116373460071591446006569381251829694779626291313963703404462611251136946895110025734768567593225766072929016009747225727279979424899197024109672615840534027431989890620258638351536007559306370778926711511640993375485693290828809437039794899042802080884031970393454640008843007299455386898975188228531333685127951221230985151935617998416428176724858433115267488227303736804835835098943555371254748255736118071516751367467803948431771326190592347109585947217568672115238862264868295553788572042876823871598853445682240830176640376789042674706233456308858665915986837199268556463192172682737011175005492239531912922225481024486257826211356755059078523374363282712525324092794881669057727460232115460257494333976999753652027276220249319579927443139924570498696609258888837269634510975013929203402515243098565060350165570286521139831829069493330160799282062663575060030541284590262984739268450944458405941168436883790437765230624815268837580013025108411706652869642682086984529317227793395804783944814435206798975482090692481678929146629133261082299778669416339311967675798147885126533533589521941259948952716443786956680528236703795916963223219370839987766834209474474121025676773946088334926352284599419050833959372139559015461716133293311867813550648468624736858514677946535534407455930594205562277545565492184105951463497587212993661181107229034144718516046510836912079400229424110039221189068177320972137667850011381511579571018089313627459998193171292517091685843069706986264429869984344880720453084082559881285166147489506990472045137452744133986126037088339976145575335149920512802034942229020158906027594492185654582579361150259611156729178305348938628489557230119603765581594025653371123466215053659602669769215657100211005326347663231510448714700445514548263137210714064988438171266976443037529768642718763268818657498457951131633680377145277327312746219060069649665160857432979268802257060976426933101820944998355602705785643017940957544882924486328338741923431519956083382159336688169101529144238256746938873736753244871831837061370944882784178789512634815829089654529713464777952380410232220881456417106715474669575974685641095259193477576183193593507606800045009433851354750646657147573678806266654996728933939437236122998560309422731993242758576091502686137440467402204007599834260870385581472131853589855478454798327853912166828050755830747323881973429740658390054887281629014764117365997371089406356595533918000611728279284852570672245083320781139243759281549721902511305824427783496882219406454739225111427925737774732557139873773727414725739709130907989021857522531925157978848266237240923900622785757153674432364888671831818678880829701521095049015308269571790691129538389941889194318555983784598005665804935440959648010848351492913872818139891629152776340976991766055868721014486316146687732935749332725523766318384412535201790963429284426790545835540738131120126970479004421306254943906604276559364991100611295900924616489887580648162395633314413178645401795635893862916709560634340901095928456689484534372878632194589035490808159046500241699419134802056967391855487638239573983211974095627237664199994275036727253613767733284621269692623418035296862241243652172072354212451476337041372427013689055720710206067213538226028870193986536379865011248846570548118256783579734482977976267652971723518666511758421371001348243951719271209838765370714966234947870705104056771688581901414916076256465082647919459027016051123506359385167921664233944448719708481545379459814987096488231482061360135073984503099163225706359581619833391310124907913468849998504550917611761042110386783650772785713128772310945097922659821763435608601766488088942765310823619328287658746210946934179616724866294752857925960239364844780435393919875938432117502955073084860038513842365431154869010532776256042969126954724212982447721370819808706705983559104232261200143037866541310622299689362493233320261432125963388646080561639290519194606396892100400008707638333844811241572822334125469236064585265611944639106577150560604941920501998618636924955798857665752755099763208961759844369253825857552292920277484647924103604879125246623844953000498655224216923854907495307362795034136608337483475609535390030974301392546215062389974849599565198021652836360236372312467857310642311235167458198225761261457312305751125460752388582931945548292565608973921884960957290585116694892972990920812597924460345887677940760602852772468849295700088764374865868543424516309988665048158259041787061805143165804361958947160232983488053290135285995268264484991379865080622172975135647065900043470930031227012651790705136089281039403191751706677531021751552340037285335550991597576024302826532192090775935195600475802412384158464207098600810366294804967420708263900840224930768234585218195418711291322816317295312707953478933166249449644542937695623826709985825959767869335520326186810826293309624311035336174833216961343046755250940805163931025040026903271841321493292880974660418299863634695827524239567656406518281985316081805457222378415183183691920909260450973050987297241284559437434959728835217748517350784761928520392737990402904329961870782002209500997186905854503100393373001117822600561582238126288518245726378440454532775115568376240053501016803781536725068348219668378642542877085048808865864496058152545270034770776044228800695496053888424950526127839017245669021468076661532093381226313948833237597917970557086736636716226104918520512648624446971677656549812065974234412654370711442283380559300614866510961290102874560597831527754988738006995468568233604229825012636788541017825450019164123627279070727943782061888843951215538243207063475375718418653195631566320046805845073805472806480608440902087450044301123655671958366092728439494267029175858773685167409214605597940107646565180923397296416195643396047839966943648959034228869119212991883077817629315020868722682480885775545937210643903181654934876648669310086447726308036619191714081704056957905317098449863003223547758239839128431593110620484785654217139444229614034958025707874959300865285844765902255688167295531936600015536605128884694500294601401685946568408126399857052927284199343348404937201726698143079373947366477733197010787697007346306086865659498134634065625830870740441939252576207956936393980513651734690469765641490632540586137552368924401610889329416177540103888628306252495430232786880571247498611967923143564550103273847382810782228106368148326733645298919094464379364664373805477181367401852804520646722414461584798223312622213865774923057199849630993500540234578772204360113019134295834459932839815921288143808444789182142604649332230667671683710860220235116708408273750679870182135910029442963761611228994975921649707750745508100169014284330711804833809797981778333036800493895785130023705261772987939834306210513124661570165192253123229951938548636881577281288000186301050645045812579207020194455625945659963509640549724013742431951401250375275100711719571950393281698488506823188613629615282915557173963292457790235320666817089718012778318318987442384741655172561611875096851660284240493504303248591712862687582379132893997753656144388823820844168958705510174916315828696972031560373545128092300442002195733875635049705519156035379874615841477610556853413266980592960206791417470859409220557605081227934735919563094276019185005189771027215810291351567066143487788361166207086855943525427173165649483025629634535932763880345686189365248517294065282949827629743048233402663035957784140691131753306987743325552669765085305836683433964811098484193980875113119650959232377089726261370537435411378484376555643622751893791915046082370231598140151504350836204590360039297899461123521220989046118599387506395633650675526828949802018698189558941271063707639711796656864414648827573292646507418072509126380654667426290704448277152896772825894820868961013906774201996940837788242235379462890362497304329483324333999857965500805194299677726971239172216423250335936253970790336180029740705931993323329659051486254835124242991471195029092916728320287665950227308396377353635781329290169029057235314126627352055610584414992707725381898813307402976893481575272871297434159933405857476957365233785718441719673791387059824926833084540528735145528299322569995235065055971775757418896026388442582295329807510094434035576405363007456033267800735344573289356464263854945214133019144464486307956866834369767867698462575489315583717306406282988259455380780133800203253135446746114517173651680759458069580152692270800229408344181978059540631393504039115931512574684703519367036257843459859755965140624796938027689442677813732092662387569141476893410963854868853280595816076517301252651081915733071569863855233815555666334473315750729636617424874449428402016287278654627053314851419863059964423086248580698678713592218183983128107172023962847156997246295803803835892483591275636128486230714914862415880481276680137241116715214955913459243204538202766149172101386582455542546310046854547963884772697584192228850498906942322523179374074967584220371867761850804759130367117554108178768348413047817482700316750206726169230389050239802497060528840659095023476717042413374448036875980752419880508985384857356555944812525061105303433881725396758865282260403772127156422106358524558033077695650471423931912683430283755026878522050931028636881748200666453510679720723266348963810588906384299913562440097056642160955721904604437352866005840451028855145371037538397180150424410874122046320404317001522343287152235225049753834054036026257833803354200714521955736847211096198106131107883418792618236007007029079638531783756212878731861177281142761971553895005603758675260760934154804442572652031596703515428459432924307713955195325164645851792727292579854799015934943439008346624351226241952058597351149052143267986574949744838794710835720863907294152277928369104738519742929551108747803638735551467988566745329263456351264987686904753671654312587752110793009614030865186453214830917298009269897159175546958995514294928372815459047821249984411133957807670613608986063360021285588646095673702033558496193691183277142803121545517543121679737787374446298622140006420392809207684342724543316341711993584766511568681041694988009749203340447137985691972221232369663583509603517109253617251671875286687885879450340699475892643639496844813765527145155116729462501108137971886753475589095602272597702867176395598260299547708808820754101210393380109652263324350126970743993815789961907799412162681727036538849265434868443941757533057105830492132134230244379799195754068834061491364632640794851004696605890945293588213534807974690428607572567739402874637217114620563886278089300498031600906253524175501661152526782794519860687397620079120059363366508164399025283254070419330770143687655409140822657001654844177140962617360334981455672929845812641770479029674514040582339777017282483132030655313284663775176432821003049206402012926967733177636704628590098635311830478253557226492259638571029921398122549153134086334593076530979084738577035733553427811775124262279694044326880886764454001699565029180238448812740467559087370143160407067815792176788128303800836901750377392356436610876642701921381104513898523481988195627296825215007026040712822462785351586915500932546624373994652569220753549703849326603400424421408314848429954280535835243069672555366936085407996251669541793426647506076401651178968612547247717142848659585602317784641553669063005604392016361356947538786774003275463616792743045285482215602743825758639622445993706134728332361746106067448155904078379372578786025343149754444756653632179768929641094775391494271290782056663393885496039725297027719225593515259973235703606050811247662535553960887388474948429390101773553402497985020751073526179692275736144862801135035085753513675783191862722928665288144332895570456643197660768211685377371407354513723843084467980125606697975623085351338783907707260354420181119392711942381522930613805497562832096930506581971843788030861449310631698307956986806501444325979525369672785548586120980069087391089397259075172647042463067818419203311302132421284561861881121516118247335760125018124097237465348680666256776170434048316519632605559447713926025126325707602505260909595555886353784954399475497924415937211093085488762632600507668399766153120544610295946821287928587708203386897634597983643379664104187166896886093305348304742038658461553924411927181628349171679263822435078477922355060404700746023542462862987295566706691800610990301713190059654568483295426249194455333184109673979271192583006929866250984346811994498449706784175145381749156331447231081721420264214379357651982541494988192716530873321090001210828288470904180906584323504953863892106164739240917910025932284285610536894352267331843647038544153616997121855701521122900554599119776757697194746498019100840690828704184065626708280306439549768336259841376626519704702389649734351967627955333640897066855286215262170283576249215921693516839875640767727226849569748338544184892649414911128215167412015669550670227045147030266693046894101272029523270972253726272753154464390449551595901438951102110803948748503405123334686838997338646904928696642980160186086130546664270674011858503852167005501437267934445922034286531063728755586474785335311502022145623389428087971008566695578016189447521377032021110432077025925094843432257115808320136220271010847631927224458425103176904525144732141125060815551424161858529882227696257596451959317610208815983790381093399404689456169302028426785869570897145908206619690559105877553760815131931030859050857465661795211259767355763041932073515177036880962130278690804198175971024533547325266390905552034130248777291973247786939927338680036454175920082877962788580347111734518142719218968363369447575952833188139455528311951144026970827801503338351449961948492320284232883130885055595125066986054724014207460201783513158996472884934535654128100545961084396779081228918265684216110282647995656649686384105573595946945241284517235629130248918723506976194255073772509078176515810144930689499808185277884789598641601863618217346385480340193320148680746155631139000385895427211343326607232496696691927337818036858837849548529373148423610516381762864119626309553066027057543669584495443508554742825446474718525821982765287224229736091561433467993233027943226934765105237320761119913450639914868704565059668820268677609848423312489842466553936935361955552985490366595790866911739966924659665210142592342645755703606806116325149913570004709146459712130833766929894173654408911242606523454594993276137015076341853171514700238926474231685049218032663633267650161203773075155475507797584274180282380821231957856540590439406892940815708619130522301513008613620191037388582393167613305449262934376455235250384312827663802496875558369199284436508312341861374412944958075162835131275780868983363287608067785007743217573181281126174154557240009482354249958738476712644771480180110340382675023821693392577646479489728040787206421498473673179866610180284072321130105885384884509704808782852009657819489359312475230070340826974882260082725385095402008230704801006814045970645159605696146133997971807290865699177671963431612547426546286165757887234504279901452428314556459877867219980309590360591587921037317782439206117801070308308607836454334975984604542661789390928322066002472780601293048975159403929258520451156309416223234673298963133359931831826885493271025114622247715279720916365156651457776373972858285047843976746305471836711592332644699017182038342036361832814033085525767921925879145007114661192147767561174275978977857637535949678116345208262596602561213195147551413359040929406023492812076693346931483615667977488803323987741497838299949270383365849979338050458047241458613642876135246677830890073140559453458391894077413975990558979127871242099886575658685748226078327993746310545024023247054734028382464262341329088923307111662524208722573664682153299139011958471025869399850571874841235226139490346120763365630889819707301255413756526689052660650220397720027245103365616908821041588585989936511253575656287928868689506669384856919698253295648333249795597046483004897162270951941308383809794000648017696296684175929459706893815552445877757269307918562484521131735233263142075464107628099275001157177678128970342608727024715666277024357161822204803374630945795733799708237592514286833260791675156101110930305308495422873546440573586660204258839404843831611629751772673890596990374156540390450601645691770432232714973020130675568440043946490574959843075221032856744690141710062182329319492317200125094538610771824517933667813877671402368014625734391703515492389386155743808654595274977813108978267939582525570625919748779071862821965953057914498109518734238706334154222179081123010615693068580529796320271246526476008960225328580756792834202130319604407237060165041128719358830061212281717599768811627076000687568066828989714352568434209389210729584310890165347757132593130628297413837520059437728040765163443851903501582403445178667234741627328912767910865407322000206196418369372337380373157951833733514751697851180417068543293403887815774500710535221093026739796221464765134123006769782905857131194060448591498329871502233148197691307764481624292859590352911346585537637246540047879013566926134008733160184908977645380650953686294010785879354348657462364836964596672075348760015323981908272197032772740951122945537284960285090286181924448323402409710667935551547432474046380125495375112532622535221336154017673913469870472117684329995308628242070318078836849365303505897885370731345745016215406646165027233722945836284981308134414119266678213963110451885006525754477901622155106328225308737625635900379433339004561427586544922888580547196465197547235617604628802030214392802268791308556182251290756162125181121607761031717898884599217358657471289789638923086121495290055406514010612700590959578352310594067852654267131846880432023398432311775497313844446013995186305451461710415995606707362606785226262737086914145354412391401561597306640942671265545314455188385383897037419975412524633998648131282571692482139040671147935560837090894465773597367655492619355362043409525475433147133171144298783030758569228651108865914300598906350876820030119340676981092045537860915653318366386797329242715425578931551406187744176662626090158440525598580050040478858709535312343581113608200907709351217698929102212280385211780362356049490605661114331592711639185468072297019014763768747868759752955076294852103626557956905262229543233179637250183787329034132558667989186489498222071280973043229092434821520946873895301084184131533978345531907960639828992870053365941363327374364177373379742078179350087468982793467472398168613698183021530852304019158700958803663854578709677258908234840195087708551873387333988396018208522217137339986360109883028622458979057080021817249196188796580190660236058357770545058441579938204939209021668540582428083112891888487240813538924793604160652443495204507373500303377580794576546978396561439710572940313459848517988296734125813298827363891042159739151247627398723677613185094418081784615759283892072757730348028130286161378918105332489282634631902616565452384328669910578580002853712758430648757947498882318917686015747615227063379133904713603931326158897362377912695782113638179405193120514905299550996786166381917654688465015542627699772094534666314078061025658582430476896452471772864764468939619120586583021048952287566099616223282896206096609801486633964880085890033181505312645088173083877953432022206914687239477475094482964221495761549998148157327840832097451271859318297038038642083635873021806066445680992739649956645295716460970860446304900490306646164552152539585819915327534390055339901735412286314854237239757182032179651554646410141703412970208780946255535086604810326890149170315497728003645418510817332998393179817891794390675828000927608646038672298212816126680185397953074297817437779077114303816579046282419194356452783943113465469331380442275105998682154264913820396836430768717725190664825677017483943906743274932542226911737084038218376904002982529159367254635980164631661832388718606080619711886094237027115807442826966270864746541247777977051360143739623492316756415048813345447593282970817276970214133105509293315639260760095338542535386456674861545729975713417031536064091998785645518995976240415557938282823712257297528446536309433018260243476897522540860763218992975897507818219974492956624287307120000749790805806730054534577302701106795341536338170491509197277005878239320968663895847431564846934248459228913059305793309330694746065467697667387353911776758225810543843897261951849352263664019158004843896662974820355580480890332929810496912796064813935363349418265380098767580221231837622655216777434376106910578034217472112261577537479297004788136231339362938931184562091727327597667901995204525260373651878714735481532355593692382211381209296637780552898332348519802370251447521465498830127121516051039817456580373444635537638651668143486659685537337239907489790329897690340469162547269804575030254707294631930490069281992948936572721038387563722655729312161848008587946937857428449606832938142628266223424654776729467952808386386117540972478469959268396611761232216006884241356126283944968344569420008618219844427910090001196669594912452008991858159402321846813122370681017783760969833808849029597946954144931623152513065748146286100152364685608543142435420522268974822846169288562815400178112459756177730791134875013175606396711724276996362290391645034203824428919105749883899330508316057580051893058320544069912852254297517607091465594325627771568558056922056674111052284720537184214167574216141606857311036552440196235080994851610810012566427274455353278826056821423061024363363261638783035710587907730507655701998694135744383000217422198069036566046800979889082367380686260434347429054047192776560115878136154343707151218551040178743305963709468086403566427353513064596389484607971582558386397954367807364897993099587475096258871660294784345554249507703644023695323419399811520174782694426489190018910386047971386400596209369935758860707504162114064246751794097212850882435047673059067803527510336259034681974792596073286791411112910822369955198337285770094430408408461901169703679550809343644733280902895424632916307031269467594146694514829420550449816172256653965451567042702105875565600238969789450727472822840710142791580810117750749673521938644036692267222007218085040329066911692791402919042824339654931590240483552356739223040376555953594316524638925534943861894823382547194488237866477905797890080349187819639280502933882667095108629571596871880974655844525107336464241380274821769564852155320371937461631464819882534200909613350036882262492970757332752389647146514792414495910610131580810109169439050717364917524856674704644559123618989183208158592382865326663335057834195653248978543482447043249404321565240920928399703109344358233291043618252714422851877355746432687160875478527605555151122664164937000371732311728725044442069982638930420981026757105176791890071978776776373197163677059967656828082861721322693248788711019223619687604085780023644423938266813316192017346580034362810872217837827023356472240231061361507724153585640475075851457194721964886035459555134825312028471254348930896344386983688758560631550677725932577695637646612963522753890437839384827108453462900523652821823745222398733648944247628834301865357444436008016602299010432528083707691751728502991088089554031492290774912452646583888457705366117466354203106604545496885626501022959287086210860331217743194987032576643396278702932616873805892980395766359881865943909127549084683212744694902571145366383310485303309779099958427197870380258175759096919059873347804572596689371705433937756361394783718950069637458875063494815935732157273271050021216291046455684885496868087231894883857652843173955537702125193715984996237324158543893048419794413661267352608994687396357521357647539706099792727349769012900287324068239715784702991932219405824729180140651128832178200367704491825310367975255872701899775428947228557486266172613724008609573077446119779945790182295364627640856675882295429118418660571356404930617566265199965506891181400800864767474293215692833079783303230231474511976684536840747092683483084362501395114135750326394814828196949605384567021743912496641182159753950088256812543385812096049305334305889474911943027795827423851948694159487616095920845059739762333668660132512746041629799853225542681801564255233269726249545312494477263912041562162648783781120536627141318571682957224908943618161443377185150195514140729719165665001838939407038318903487648924512570917207145111220320318190022220018265607917817012698270234629609303637892871132599390043858730550107201549713940722965357878768921522176989974287545571726435116359147457002831979739985106803951904742702542121574386993506326056175079478225343470259951320836135287184911379255996672341060549465749669382648459311073220493047248057053086988502362209797237361189761434326204061173406464063707454776726351141932730969673251216981290674675178934163610705171628561008154166533737035040835833204611067014224572213585315267790534883685364974141644773146115409300466468753383334682981364526481845459984286302722803558998520475350545902269014156255851519649682736990286707636045036712280263042867328841145029716456764179698477522837350239979202262284347959259030498066766044368588827308238185768485355754908275196139949440740864862555162399259583313269237365898867985103260421561708607340087402211424569007842183760016060905316853044114039653723726505347662298680726669150494654075649804684083377063154058177439213789368116891955135194380173795868712165347872957941113558253537223565509196326245445409829825985884381885978417546212886976167435287610478610503190937709293479277655423340540626833619743370637007498625188756652365486433838169641996671229654559228030726364208487807076879736443637187538149228615713772905092846894451913738894184610320950721909985190833295128880296904737360216492972108979555430660779310694198659254075908319414833100229016852207482413428757115274570430266596193975769364923406559108389651899371104099627943234864222031460434591945260684340081134099289193235656682436457269164578958839741424238187856986405535573267384175024542908648320619717825812483771178983923491615183131317664048826783197102247530253243509888012881561562102627090246671671163855172966273566948620867164924854062942740858229194721678470350602506329678160900728575330354526850865334740000477389585773475839484497515199833496446769520908887251771879506738521954987210357396420296748407250858382637566877996268854088256334043327068751782307870353766387403584002838188442570996577597849055871220835804165849575764880957637565242643000475949080320430090681559754696379787712570088955777205652621445248025538387035192596867799836079566902813735084695927877280526569917365537775964406476174849354297945877056480088998153284491716906815223639375159596300633343133886513866857198535476715298334607855743316419254608728515406411138151877346426590985257410902389655945138977574411166436505769024789448418647256539206630586622280603866895069127746828471279823994889412321953411866952217358651532699707699639835711285463414601490922429291103885443101823358118488827550372421554483646485854569542717459118082578809220072717386332109982646723142354976865930750777922609254328394382239913016646283557870827670251430766271830061335985384762154234764009960256050571575902938893116571082205575201831681521682215901627392224676021975323754119776120368378589873114913784638879225421656362821229732107830524624470097989547171159315498837893109128456701183282507519455628521679796029118483242019329278632481556280844598536335838842932208661082857860126475088798399000141033301620126048870027996814846034874261439057745410265856085413767980845359367440538887612776973709901575044720399328246477761667577760736781736325242909211960382859087133805851360124610003038652152426434643304028490432750116394921521322601051839962985222431962135978797789474618334587055521635777429950328078546868735145207475820072084622727509512910619942729487115271554944900426632708416505796258570868346127422076774527645598257917177394037583399877672013986401641883221983668698533053293515862657891706100092712289606018927364376937150246196278395560546441407192919881862848647780797061830386742951091463923457582039140443711267620338150665554249004615347910312389677219783329290912332736491661790117814148725481302528483721883819247077624768468005829986077765057646822429374036089666862127082282292957926215414232985512807468277027055996588617983123753345746011856798780845039690274445096130446632427723917758294157229058333822269732433123089294679823485258037411595785388753602356754524319988255125064470885887001677701167186896101188890920786335306211816563307420309309341656136350803349500521703417370058969510584286165354838701129452200486585728598299763751231210894168490006380691691033780514213924151469882755615077222694347473455772838807045241477439077312538551559891688282932506898098969791148292504923236431489351364040935670216741781861719631685584197649576598141835873837234371586855125167981887557971372516096839022488850985723417671813957811820775378207279560763417789259798051015620106738835645098948452073247977424754897038799094791112005468769995888545592206358201157159205333483962783727517114112425158377193973440687134902598119697420092920544549305345555130824396594725716701896865418812583097065473386400791062652936426087783197341586879131026190912956314026357228090510815491871051030215703193328698789250124139141477354082881189243986059717249908356329209817353480965643844394031139263133399716951421004929369494066329121966814538961293348602563457167306916814856975126064961641147161038571633222833249080943949558341203931520528743790737976073806493477867856032986264114424380333837776345910288935289953745274154039378623504558955605799919602157977208514849773801533438419668560875842780229238134111573258757140378338345617150967084441180498449236355127966409893782106889219513724572724261154445649820592010258645307194491166478459018986005065221764814415282208207683550792618054368631058793836338046135288562776389332133816921218165409922772150945835994844627268411147386990093192018008954293605881818435834460171413263842693681643262399332695685111348727562526415268135317661521180623482721758198512761702575663861516824310391087988951169191891430794359551149606301595332654554240503435855558852582800841391204872253737838550871287256096930040265825344339915244142335076635693444750295061134980501756834465816343382332112659723382413536348413281426927902888868306901391105367767507880628436959288779011484263035385693606948560821724459385458635976306336671576139358433690496208953999942822024093834163135655151780248946384010295792537412786157122115861586036762963616308469012301859858946390123685227955383969763838111034577956188047816862727196403852032401925812079194310179985799167497069737335581103388548138962644764495751612388944265568944935131700134749556769894327645643153867387680160336708136542103525154816572257897484404295211004916460138971279896552790248955247389651723399861345405227458365009124931307735912249216795695382132294329759229216690556969961904550323979117765269817094121920601095977376665223484877335386600379562653350061890827437860881424555177373625607946086508194651992303442720388022113130945380215720116218500050386668522471048653515322806964215844823957162893933297162571247319581384841960262799855537098663793958220199160039113310211194216700457745240435408845478370561400566248391190360659665485465518892527891786630587053391127789924736646676080386869253290467726809774067465116832970317301391294839930120675153058107788688120839316985223312857070234565588330755722713290741627595252727407897940893043879759946913671834336844268503096968346533461973708761134323539740715699052823139517048471793841505800049109855651677567900054437296595158865305724851541362049164330021826902097479878522062727346355917828559164826833886857118073922716764762988878237749460699116948642142458828188648987953203507109117854602931755880078589272687487743162119753463178131053683796636689942880667392711322559393126758460395919349374548322529554919133800965689905651143313092471409271006015282894211563900578714590106817525894126104042118544185381091640669328695551828873019344822092143730130516206599575182727569308490455010884946667006301714432903843732658091776640821873762818932217792694819944320174887599908498569380869812490232008927361549190054502881619172024985580676267657082335793384068626984773465959500638230265458835681228361769611151631529562741120702840563488096898164863915456510201715813403565690883441372712608381622321727174147567012434565549212616674030489253559623941832087221076205111466544266120119790853904475611580393467510323341593082428069337475399060622623383724193382309891368311008642216700754603943474781358211086442613278488978346353396457364371157434324785762040548257957055002971884800126032667317820445601477483385888764185129398193008531791462098118978593449797372155114218153090644486943845916714981157290369145500209773468286721989346101587629535258518926846808078231498257355092382842207285981834205780110671700953171725565996232147390732676288668783351915224277245573102018129525247823019447816082532194852147784205387936193302572894575789404661503176513838291225749544074800054630476956800819365711654565498921328759121879064278692594699191940564493762403045681807954888617997380141691481836777061974882299024576790240584963765183329280062983153505503618686789055244940094813444851035472824177571066862457697203519094991607393260970246615053258650050180010909857050250582191370660038264955480455254305357758642434957309292839209870598772265097737831189137436291359677003870909535830845502356742239820930502601865995354098856294675876664910675010960942568422196019446323655006874444222513803533199752341722378805675480905556404862740951809421155406773002208921550018362538323434026575003907272286290856320674179000995298584318454018721758256172877246246316977235955573748420990248895456519297311517455959468938695804172360996637030820616895071309397214803349660157847398359256195233335817911989284755744893016871648005693315409406477019005202762056417428550607301093504836381130028159794047040645520971227557104592540313129411664012473341120583911956509490201766629820732654657338175746547882165930046576936837413904617487799326584500710497954122457027910240075641419482850629579062086074264460042700732062782344377194279664171862507060687041751302895561466874941589300128083323051047051924794453138817413798259655703484899238767703798324650475166139388753043781460532217439289257324288668075693009695243893309206561889407890660832183716522383403737221611428968826216174818749795013056460587174189638441394855118622271994265071815608052314671633546621886305771868483893579765300633096471236332839392359390913998588198670788575028145642051620664112626257623740373687665128320740617657891955444997727491087537781012238798132589780307309851864174051791718340687956478631471935866683584601698530393869715308427644614431790861198511409260653932423624371685463482807107771271391216577320915635748416771716134224944805966707630904865703265402945148403354277653325674934782557864598078894719021614946517078577861976454834931625603311576711393529998559142265116458335523991669966194558974676582799074301129199479900435732876066964334862987435990425801535513775689316896683133420842063553037461772302212163744004175060859694648690679006442995201227139407273536236483168617162279482467228429532693854284389882607095928888841116140538816726447885221710748860942341863829557535356007239493840924496327640949928225537721168933613743380618924458956083086077249368531981927182265573585304646238604003191102519688039448743848340022910359972472207006076764364016622713657220602013495430265218199409007106123748920336370140258807044420330323621247598008322949437746654566441008843614600462874864875743204980167500243032547088477005632783687272819799089508876666576180278488186942271704428385466701893383287120772624823504683205554495115444968351409595808031505260573241538780537147570997107598676792664728417382326352630796813459058695157255350044617905329436826127381289881702187303091242130825336352405632027452402961717884720606925187852643864400379508115191363783261718606135015700534405126524584076509910193385256744697457556649017923023023309078609197268559422763522770621105349755914407399430289925326393154039727782609110207370093138703623441856877947115866173986239044357874576607368959924221879224693629993192410546279079357994448710177946822508597606587480521498391274185234849523252285391733390277607343802540084230702798897788644265828561619625546979777167790519050420366617298544279297077930557407704546670758672850578184196730317681290631118011843357705739242595176702858066456479317040932545395197187404055624498653389156161124875661535684879925247630040351726348766746429554957203742585792180195470117945763410025871100305839447180066214049941962831501201521767054551064885366461103601578353468161229982663243804832296469322570664079907042246865880065098764237521371285910621788950704495670535587467451083538981816919797344863599819252273906124919096746687815021961564936366151854239588983626222378132158562871826832408034417723489839704564017476322158540377382717721222881213166005818531955657019316844009175162736629085171519368400468414853036436158573523209892041122303835549819999818675826739318213939316929513116160893763290009088612064943583401205741359798004540929647488079793646502020309537079869578317427338617042325077662889188703689716661255020903566174810348346457005395878212737661623428553035882265190321933018969576828265532980057633848189073699152493282735512510245830636787026885642282136276934068866655982191469888168912986226356833478954296364321583650477901818382046575268880899657154744933727587953238673707544009368023395565734791494912985491197378631873123665803286840746112278195683182814061357801329518330180820643495023669943175748951494241000346036711666889389531494803743898854795862809980006777654676412913634659973523542940571651591338528591950437064214377216415267503613510798092661210865200182410958476814125546460073160785237019050844079414682209274785214136247540933123762250671430633356559690766754277412446069329744082720702884896957120425171723963810054359824455730707182806157332420061413381699540717137884785621852518125138744108138395449042086256390117555655671980213584263764302200848262149720624652309114155162129342315288129411979743691447756723143481031003524905470059639646482174322128888206278095936127439445185988272846946775356275028074010038049916997219732409916407552579555983128103520185923779602701119001542969235028395275279122497229798083441986120198956852860710036987864212923324684668960993682367991397772382910335802785229386360223528406578663759550160076212447761853625221289641497634047680305055266195139403775520163355918189226653110119590062326742766532002238614093319480772384125564568592860661405954061244359451825998763020415386782886536384462989718390492169748077326997299069897468165051677853426410917693791949471651364802546923006081942349335058961026016487118931267135516882979967774806841589953031446579160186182469589055263029831018583531165601654111804738676213635697341458756523137352094031000418950730429320670745066827765515408269789013309499988123030129845224242392048514803224875098628690788178642948625081682622830089328184842528674529831683648495876182794406423439740275198798184044904152110140059303576642363027276821453400068997074501588382947763254481293315515109062630886940079311633977276051719156983266980468782823129462983137891851751425307876253276413149681538990849847915951365658785052399321770031172966725896120767585499000600841907569005231090049228215744195678232566004937986152883000790468746089792598388210668533170028924150389941833182074112548832194770898131141226849030331658509399398539276732491137289113838664860489244391141267877897413750166125094827680373344119960634693374167957785422656145319362849031903608468898560801249225189945825410582010248386314531301270502744749309731446798259004258785742171174262150138038893036673369705948891075332905198044288116178348680416965702950754905705718929655424351710460818145903177693484424402517121864755120188742050831528023583952294220049665763704296099752941958693301317439796994623217883900328152624499638133543143450628074895881863261020080527632201176904888768073471698210761625400889857425587867957149614964653934838073859442415584873500121907368875344812270414656820503016367283269663899997256728740136325533617320110565444582816615444175207414299623509199150167117145937179295381475516550216740773905021713660573465138985507739798865058244963660420086017308516236473793477429333193160944477417400641755410380744979992406590319839047439170914756124424917386743892097724043772588642656010847814690238414553669044419014348677545603562416770938518688867566190243496396354630581498015169867822538999291843776422088823980280892077114604135402629697629875751765833426745585772687001154563744734706010689527879178746919773853377693966586683161498746168057173216303734850765815520997320156158300335545377867379134160996522679662440508138275156443783960330595829916904673938712193852646103614316623943976926494860349994439220059042721317267947482793632984733286116991068352549772118300656689527802047635883407056519209470843643382243506722513935397745646975501569124775183708749533326463761670926728765936495591675558061663500403473842667995096939033429788060753997262507191576852583145905697838896771452581386070823158353074134088033709698627829304394738273129532494213350544607823847735713675255415548182118301711490670437053173877318580596042079942506505208915086575967031251868120338442538401538587016262983802027779508248334068374840078793270855204384344014180225225349078479201253423757291176615290150975913528656551310263213244112062962511005504416479458291706467238869063261640668258615443457730442390068568405003412497963124399072479474076844772366607507363749943447602401778837651941139165636027992025848253118507742391712242504677592453192919788523122671138010208729567218434996107432260314526206401678127646434108330498337348021690966100301624674187719094442325191675765464615138865966115808737399579251236389980180257707527565014429649344826685102972333089099094636546614624407260244403549273701640345085539381619414613970259696030785193933609930434429794425296850949966648501490034433506409964276510497908879285055761047461634522204675856401492336925748657188592713200273470950243829810622523332157399300426612056018286202060234784140734435092438957388320370273963191024062674000209209455747573923617332546290782637044491929685975417240702710395708816245232452835594991899729182654667487031486528718810109423025515382968309432723366926546597117184983725427283899921928828369038910387286456402623560597740084782192511807146378495242924529703125163874478425493564197476129275609465984150795445504440861376793879675634718428054550531045994229985996129162875546268784838932480096387063733041705219094668841794085356217745682552427780385603109978583463276195673220707035500745843160801323834180249115308289723892725698432634872480000562792121968848857766488194182778211615131577501820808473745142629263033924261038350355484342630094280640564770434705362413028480094747906527436409024688597085106060833150374666500862462833624319301387930341007632335154417151913236664830727369321603329352173793051171371236774458081814964101965469718094695768812429162656589514470067473506816665780763941863177096217762574297847587476849591949296514368808527552894211238005893935669080273749856704144595830496157037406276558951648878825450725496635395567794026384208286973080977914399645062605256904797277430444181803508334409072898817848268867081515565274517400650726527095046784871964231063479132238752717307543792861791259184826742420027132112743969078568710904738951232228604812161719152543817158086130753433652037069356368011564628138359629115802682217153354739441605992289467200736145884777916637350496744654379802580421930576019351270041966623035619371944459674777124853090073206607981550445845228357946035452334386925962451120916340621902761607893119347076038966415772660607729523426247522427887204086177057205466685495022852972692308811153603981014819965263287811938193078915287951150249318373119210862454946645458756232067163286876236979613986262063522456904476181293043630850331274343904779123393582167455840161814883898382767755046149321728592439217240786792281925321581160939992278605157622477357091827037701516784580032893650326477169448942763939186705509424042440201495403641142428083742181084967213347893631589004469433528027173803323272351171063957916998755379485687690909865532415824200037553039326188569269856469565511894957171162550343807225382463398847204558778986798708163420130311585163910373238124500325792398366055601529360039642415677328373519825498854179109009213792219395296148124362624594946388774553065152990893214627343395964560095244347662365334732902883871864654473200457341799780213194994301933456412194423507933194888563234457470086361865691260771457187967379661423112369785729587562226694004770443066580429158236907592651112489140692841588967167981858888712240564318855563342852747663877813393990683632899974828829786385096839603340317164623724450595473580074877953051215272194440659184118793374695118945203812086253119720168336204376156518786892203878889769971707190416061519759350092723033155909899569949653235016729035275297883339903907444901857382146537835126847551566839354771115026666831906430112930874364005461970094369966127291475821145551465655950054295903893679258539287948602415723660619809824327158277075930328470105944076560016308661097935229941798008477960212126488139458742381935604024959397776460450961323899297186164255388962952721809602376928007895623148660516049478960387745968639328302748828419359415009660257837685598797451714579470471561427597808063816391401063498606049014243415450408639553187728499229037322915338244882876975601182774831759147147493270889398437978646245077411270909530516245479919780431276075085739913568700059036567422747157453637026921712475397370408450358888149283057127187990829590997789161715887134379934172017324123586940093161847477334188637228518429613474084966292368288206097009296059581726206302365704716216551355385659928464253439838267879473824519693291848690732384025081515785923329332207171598577760201110556100148429152398899210303393480688541652317632238480615791866224893973063001244228586891454028781734524050979727486925564527768066690670650813824910723894718295492767642218146824970064942315937391811473091164822372140747782398616038831258041046139129169136050726140668983175891043893330073198050903429940045932231363191579647284191473794833658376778314651865594835375026092909198134780302094572034368609827389571264415118724229443904498206130607024557505220029722584464027335238519208214285163040377581570242726713711773118763769935527019440810826341383337949968636413534235266496564818360102905874936570619469318835881634133118870505195357379922178893559121327450471375382261779398473007215894363683757604249566149465903832325666309471958419417006985025154350481833595629595381071793268149383955343502855926014459602751846927286344104039149295449837226415330096780742551512402963911883272732658083465109226879790191020936434816456879759209158656081618589606709048523376383326439654376507063710748795323197189516843674266261314767499055918618189360397897829243694498016035401574692022899723476007265421362334681167551290364213088400085445594806035875586170243325560098655091505960184320880765350984623842332460357770629616275428346018752401568603231152664677223022932100076093734574663776556563817353108466985313015950532138253849165597722324915128413801597701899998244167866646180593029370207200892336300535901435401413182196616808061351187229559475366660291677530506158150040414387399722125302598451959958384216968179563947539905411731654378543144522570514196251974583109943059578290007039965617882640629799220942094796552094614986211921665059942090288975929567237000740050799448915372839915348055620627970766309564510572044887941174956469652325023570071316887243077794471293859634961879684347178046579838299123314060256831792783286096926430236374712636082190107181887618271544807906264309338674881207726091917172456080423786697226110337303458990440843112190886405239789091515290573363318651199871987292320830864815365432112281098178719333934726937051997226341812383787040989958683512524601146477986163380049364827624723488191465940334534734150289035597125841768914285170512561466181312106405508224695540197993574871013822478514607041557625646941014842182127678835109270303016453653220253877687670479755521438094499285715119620100388480493644656297141479350187387081149037752055547844718610498980334157337868948791240966288076197286756597347223232388204196392282117606503227632065041289498034814083239125518561421274622374676605991196527833490579029561245153724394177851993402630584704188138771293078681848679596632279404691389802727390992676771546378262277246084026470842435843349054339606168031977901966993114048064226421690651300245792991797066314908988081997992279086258595555336085106965297019119369493052760854064123432042030626501128822047810990678561457190739557963475184600886995746818174249875309149530276310919669062329776157914244525906053893041604869643387224195011192319720430850570892058246915476174046460169057671008253615269400149295583446784205995333672839311825310581033113840538769593703280405212193955988899758765508357607524280986628321921164306466833160330408046674135897308227248231988830047631849412602185982446975183869658300963400967946693377724678422434528357882966850461718118075988389751661738088052327969497214348596961240452562843676761147461157356671069597836544167629336408370254172667396861169126999450956348072928876723532237787143381552700810931609516685873419189986072239508769069591576946930188381723357883871114672852027150633808589454861844920622968556905650504873790177017559201714975010258969063910730385593342286014638300966402829698430138987335444037788469213537622634776206515754648361908764427727000839425643504519781475729792532564294357708300063308023592247072827766107221979156505580721696604009138991376527482594964526876669823568723872608833521527249101534169345711389485348061333116437536843833373303968511088678098863884842655024770413250594830953119513480333588835960186834905184428676347061757211289791687009649748319667351561511136452660475392989000983304279941195397672433384001615176891156534639821888402000533123905897436670862951195849107301333640666996764748369964361755707926881368372484962896083206132593149610348818746239979955322688526967255679574655639093683446807085829802175254904608217553428153173187321175012111939960218899074729553660496558098596773425338269329338507995071399443097170245530637172527612982574243845931896587921076173193361756292145304459168777690474792531522321184016988577722172754628831868602391977231129408294160430523765779150944752964099435258528491285621994522770766864058191031155721065885368142624895966217759515702453252697944341565118721539616972711300504065216895461923837140512905276702396520712011596682754925634990189861878294840160118219436032063165543160514710581869411712729702073409727443347567704867743385362067513023366933515661038848769616277830072292938304554904788472542202582146712114686423784102089165048300610266708292441786090846209194227537258479248991092466843136195714267323243201586643478835609654893067804833151047816686261496598294544971843499239937253995232796512909489195269450176699310342834679721160767344157452259451969220053217363940917472911587339268081347745319516542256847539328698566181983412339092010340945291668641265155299391191994280876297149070639254331073769388222024724729808641171711090433502952121387153093031164345920196187132143417784073788546576827207390339094976023709359596758172771714522205687531497253074827248162815183791516541953016721817270641718571312634108666815496334643879849172072322133866911859664775667369982663255144320894029053676740764287260790759329597014010495533898572362481002889011257951471488729646484191236218031455251721222455126635667693301664323125237298943493407745678922737557336005876329790568897558728199888981825112505014696857528314664000217136405126002370804911228447577784502092351481276891288006405645791754772102620643045193892303519913996508563717733716012902632725506293379743699172371395243285777492047263301925056578817498777061362016937649573521850691409189227221476892733589388122654479714059800333787831839954508298122934620834109608417254032427192465964207243447489340615594122547544184546357465123750039708845294957395978988734996015223020151225767210418181557944216206633015425654445956964981134288964326848843623355711112679539056824642351082753013489737070460402320885466297745236284825085589829505399668680830962596137243571725071121697985751633697075307699536623268837480257582857033970817931221585228691317746625099571548032235195056639279022326866694131460011996887190584823203771998347123261200451679707678669618370908912239227694810752798531786837303869930005660456525644909350923695677604105110588131657120268300745083569316118150123443055564463638518016078967767029998945222406806964499119071777094902870091810085063326993507262352519031673430115461717111988917837555307542004296933626626872154970813619074565336224788963722267844565498323747568282737255601678887360972309612023488392695921910518911889824844966120816570921547873074605670698137801545898928558101002095644044773269678641354272355956817986957691929126649375554851202980264958876863533645113137325823482359969778696776222256453004709091429945655728874001413977799469553578383678881490019110037502738484944317611595336869889328358062736141670898793190226668000576110299270186008948036809211652832457521479786635293368707606025363181262912100798729079176472287909022433249705501716163818415885327208055429186157538221355270420523159487722830135272424720820992376292548967679581156564338446128428934985308190724841089832589079466355598937900542478079555889904246182877666587542501718483001188344080105373323631838132149320434125559673949702188269576186306153125467671277492359210813598634990508751403465655582817976631932678036440467055392029011258749363179678276147280671400336443358273074308381365054548660540207355832504756294188208168732989384522079029811183593134973996175800435769856317846505595287363927966687908196324806005562841806319511412923091374519767541540903667574723695027507250154210064720600440012335344385333683097520362861954362675209212039900831873093672933374254618415314880269611200716320543839618786602860677818892179632505341147890108970144306180855393468038221706346025193958948385302719350107633788846414526938805273391039953232875314922970687281594290543489051186651459836776275579955267942230096961045715834316871790112989951585117068815474108097210117679620966073216871479291543927140638118275218128363932703829162722492724323008524744136552180134068552845642153338669429501076214111166941348237200279271358245968328899139740138965581134668130781800452947818355174001576207331974566433623576010649218597448629975944834966101082553867628987082487970759111049008597582210592225084453726983370085567130446147499162204974629346107153150560190424567027558186974999068391122402446996253454654474418594719773151392534254302610215646206542996920098814852279304589016246815375657321608098906197477817232380142956377361856134943639888116902946080602070892273248482636530914487299720146854348921043284532748126839596368854193863467061076887940001446966273195376289663945405663091386357392326766990403494119863798593856410893146151757111058864682008246606739727785143192802421687590108629600290596723772706843994162834669504026074973597783272167824305437442698732544252587675578975553786002466881859050648315776569555370817151094367840410065668856559371470928078207621167293499151766617917320524282937344251547268778874331563913819794666982193004233234693188954835016675066528690334350296321504770771490357956022690193853909536173628167354315917964797405357985033710954444463960461525050130805626753995147940302396445106345425689864956650227522287750790909709247522654231190757127693313275882898129761515816397291270351422057228246690382392738338381360581663995639268641427355498460167135205941365964430023151379526422875253076169541236345607569216280100858505287607150690650101260843638394450584331522065531498048660841256424087723162928815550093186164740095014992382597610169992025660222877646169869215393006396654877986711699453326405694069762844356775497376864685038185565078206731498483463273929311122969830925664637496121440592636514180290211209670549525598227028209487378275153148643544050096322150936235979953675103247449544296963416359318043931784194800546515337130311479504976422688737403355580759935607699954111368661862158482377378256315384263094377815881188516653827346580689412445698218599034123412533164398690419750894690203765203145398135781088177703838457885206983247574590422385980586085282559452095521353017496885685967969716083226246226932688523610443453738121575342022975371861905131768695718934975144282158331901523068980046031110055313561994798464189278828081224345172695937464573490736031823380368512848239412907367420351977851929613191005006330245416420157545017955917562959771118922239739510285504598308657636333438304231132846227014421876569413826334740165193339478096439128102609880066008909722604288422220875006130635351183788883605496825123775536007388349999089840190077748278454190373269198532475480246738233273654546763747982872081249992863546357403416870220991962799086446680751869462001354041093594703673097719832088579238764370578239892306361173022775251827634933187220289643746780578811204695991417401330425018910316932376513506707670773947985758333843670046206595055001890744560605871870044047428853627099902748696101873532791699911943114406182003547958935650545655656183439544507492148482247468326658706853540348144357793932549934628075353360461678088654491611955681473752443915108780809393465606434296681927725904759428979233455469481679329973248288897651648917435277992448496317308089016173302593023265525791891434335057631526385610576928843363810585625614329736161857848850503030756269002402600289782195215541820601541820065666187983565563689282958403652418574241869977087006778108433288598171553345992073107546581148002789351885281919487803342429440907168316831755620799958384440986674661272989113410751104907233176615636471377197572047944576846338158653737384203543544023956452825893145678093220211551854842972642947995510001813540907056397217230362084549151551728235095456539707156972950585455631045507925189461422051945229084888615365601516476432924701335702640318162179080106590062752426507666701671039969620718688030337719444874661640786719176703917473034725967916053928303208747810913195078883234179426752439358260128415357500447474103547491858478503677408886361828514601952960251298112026729745696965013446830625894403184643324407004307676595618849578676745219757693437154820059041849048814421897474526166449612577654130489749380386249411501320065582670546372935448517453815623044164938329221901353475830735742564490430968858424967512347866898503495504938777784645901824219608993320704545950685659734276063737531577030641787003570389132332403908348127784360801387238569965333382302518695776557010211377170358477450578803405275818345466337251537487312453351272154927653490511973506132640364035995023378689641220295136131472259422109881200645814599047899507125304258450666451997238534438208832903856733323930931420961047945913715741884830381887279094288089993622929825739335786373772394352668677942234752674630555383580134963206835222533257270191840970964107475429845453437371226807477662489438767956492580102345242480081088155488766485988433386167422026593680616468726531986536979318165095614540359640332573150651483739542628961426454143948756898239640811232876213874088403051665764559707848194027886999600719282578636848174425197933097900715820371201154404545862701890607489970003318697107102410507029949084454395328255583644469606883883176519995906340997009562859515674471622189897141276219031277414031201429444805658246434506653220723848082693841285635964605291517237919966771472519993605770523293032397453710136726084837954383990995555953514748228632867630174900286806933527778087766172918250619468597418477687528810545644407613061647739838191269268197046655999640572653608929022535060203958871886437601690641578719202480111924313397757385565392918365313995294268269530675147754660847538149453893821069365998897985344672583504119411721596887000707014097901469406628394828328583574642610383888774965837276473383896205335885537995378123772499162811579417348339844087379145272884182367912303466692268771340420813517378134888182271151956268586841519726660212359276728442274155272317836339602706586983728887227240989742236599955176874138579201771990963663732620488342948231769527262911505244358276144315106397292742137683318212484129397129680844234909402716946236847285242506026090218045333310784854846861626939384999960177801096679986341165527191652029397014097715340716008062586208575239832926071321312614234803479160658390536497983698787307706443511847351579873542501138780111528657831984181760660343610659302288062050576131694296696742579627203981457351394478248996156048175771793881062522464572724987730039031805090811719042907897205362696202194652295166057104261565465047363914330403527492339462578127362421876510946634868530793464009052990962748579532505053417695026412703201687341984357734593916722393159995552943090134793609804022573341957099090579329951507130104928937574378496050044247172862022260552492614910269121044966667184115120439606704042797553390628162003174544924945176811125310835380005244425220386776165290888241851804742744803379588413591447353828855342169269330105437812680232368799820458532824534914537445575991563727383278346750068400772467059877070219111964698936319868022484867699443040833270771208312036275776765469162412784713420863443279659498834012540269732056584144169110444036231508847715623565502522547916731055628583069835441502206312139375442363568837615342815852456257542802773899456342724069572964628853751815028616594683988120982023927668459744000781743228191880479173930560522193729617165685170596492008719094334439104114242552589057564824117028827054476308603640554828761860661254721564829001837375054845532063515425838439168054335988748915153116891434999496487683383533508021097408071144303620937606110474334843073371664496028763083246820727772571991361000648993115649260468416974976767873561081402978403631934423609945603407401953772061504358363362156204350321110938213898552319853680738760255581692705602811307955662825842737184497811061533211703604783799174737809052545883757093493057652114008532910957552120585987836321682261742292393382541673452283572661339300667498615903495134678005764985392164518724896472767353277174092593791094773812675196063467595041750658812178202074430347289460055141605542159479529672550572922705556146699355504379540123975524013758324767309974288327195488412491699261630085310667939532906564502853111182881789586934314149804989195120310076245674019441925851927077339960026138999935975152721780890788054163091497269246351842325285463063786396970468777825633388476532972211606012396755925018878681251696847375711695415934996542462541845991003709856563240173214895383262220725884208384640143407451443699812704175943474404326975492415838534752338450712573781791146228744235982027582173402402105666953539529330556669145906180074690483481827389665873202831960829638486581311605405965264409014220714890008200864298686919785860809790146340559433660098511686825956790722995594574806121944344988232079156860627052047424059503477462752528773353067201032908766826800455108304116922300256521877564545693232347809499412815961157557374849334887344409484461322665908737699520068187814812032053905598275529971545960691087283866825951240689595865605864610312608501547053317457363802834277492013101712519307472432486244642689535025390132076495117705485519853078467205797883164752707451449947099134762493049245869332224697008461301761514677795072947297203493204632668748061554788480646951318348905107556334185963197450999103849339893808588767594356174319347985216163412456585715544866916929232178659852439744990928120236728146686789207699667088951445407332160045884049997601958614541697090116928705545748603675061226772044732542755584657382268196115622668061739690712725251266780071468100814357163862901887637332973277211617166531406939291296227020882498407356245574979314201163617720101064154159679776636370216003404668262273961950286535059268587661354046930006789974427162384986732929770720169211576404864666610602522562179698401912542879838260658936005459226487724751250142363780279678616224605575147626133423636533900379212997849643397395803870927193026484861385535544101493288022110783127024518506402299328283463361094927287530879694003627591286610892105206078513127243830512779116951498271557504395354664833792945888768666441983815776632466801234266196658225053310824831939010990893284975613559451512671206686502169212486651714904925235940437631731262534543777465052068816866382668771107752538582031415586226758322506350993116135575554919942170708053779902013749014480482936774008204918235199644771203768166394505373062791996539056003099121352723471990702193530701954962510503957976012313415295169091265321052795786641593467741532026933173340554154547041195847077305874604678602609872965591376021992413673354402219545213703735670404403279163778525112157084736154474444296006313826456290811921377522467368564198447970352280959981334360301893463189995393237768780689821998446712532011689285771548613771523746161067866758014679036690112301427589274238520067126473529890585854666750963310681280532678481207253335711979118578712237101585422277616120301428365728923250117380071766296770627221494172331794236161244628132719982035971661347829581909094689706333117585511318328225659655626085431247860485960333755044009346961923232341434089350101040474321869949883521513724228484538375794395639613117378983212202203100838847063398626215533490719692016619527184707657382487735409422132197756525272612629347804895583946151149629392975417815104272481452693268525028308127097663501339120870271958380873502951483526013303482918469844859743601366930792737843645995242872833711554063710160869644046623690362796817809871463997334513845902402385283776937085276697154472778251390377124829197849929253728171331631783908205716734116990908907796042402050658658868821335155177011352751681363780655040722957280843624978145199883227834642170914106121644858918526572309478484565182163142947861131130486896973496840138100596680894029011730672340943132623179669586507610282770834376035133528055145685881088415917773505343971104512717916746328398682493884566178278312788633084112382850673924323819507796835225342226464137611720858876335365956472010365436172924849383566728922592136356505186631999667481895985432268547663925504726156613922713937819126760099788125542753739211764184989150492627857067353836280549855298805836887236159224713170813003877864022042345583834143355292997574546959419215031793102997544072887171325315957314176343137026714373129924058045584218090942361977248939165966938668607426799960866740749335912454966229324423505787836886475645589707769555511767694601967946960579872703045843526445833712076678067143319249389230357735369421221403209678287723492688270407915629542706999097973170745976461322282944635458434590552233859112093504996220364419633598812887377690014452020409641373708438470860369161827952164974714963192027856077120708141471343351457014428506217313728537088854491125008643183455244385395228216435034365581182858943829967518591959619518095063743655174319543097358367477554894452127090136907311736097894064720970667640696488268171633468114832076927422270181447247106852690581392596614784800846800936060709126296935470874386121192510913665179554040623096023444567173127772295713510134314748429620495794603532642334748358068214510843677475155786666601368453009627425449676370783150708751029561904501010366392625393829991181040101618995095463524234415190177609966501280294469309237099898672786252114047910125339002282664421125334999889826984323156259473464109999722146910027541695161168746441996703021570723769534585338868056048194217197373873709996512209204774123612458210680629328604054055964483865859714343066618823129881416583203721801456326013421701958106654454732219918536670744667298960065900428457019871772539134883269241938350805758355079841838467904157701265331758674499443312312852319201311026628915077377903826451580491213602878689691284479038768067969273929697016047137124398586511115661633550456768380086187706218018309122108109361915037354966884797091796410897148863947359006300410248877344708380016514923098453425366512851589077711338875355368127744850658808050779592454830406413145405564949650616658307376585740554470000043857556339662485977740523298780793972438226535270764469287172870316323461055976313246957944231144758929400761861182458620548049617993309792473276120192474615134944034279240615183198580528286836354905290481813541474864002576219090277961529471214041124653499228307457970316062422672316380700793484720426006800041205893942729389931922743759296259956208939451539701896642737213520140112128914930489771518379043184844915325195499442023582763024148038004427974760795589935379308515066200175607136704196248379176520652485993490511863856139065329105059192302185963840274347299301835014039528117632460623483216812710632678660593565602655209897440326197124659598132785574211322542699176831673718456935021935645487461391084514677817772569994194875123690473156720519686082217287264638578691572417831676591296696480977348035266143779804901532832677385476440534121265891116386509434522662574651291269783743972362629439131578213103381687261901479083597103633251876215921780995493416409338125759574763077056328420493811165167531714157666692506136288677967149703790516533338157115574977122032978907691957270690651747472968666271111544173090612977225862784290393635419179309831389205834221086931867926179076686080242967759193892270263857355447514828369770853963155219491298334929346828896339086477038186024474510591082724192398794425836097506804958923051316653447018830515005242719502910319470446596101656730022006319218181482731967269905892195977438376109579776313548214706590155276305268315985971382297658641298219001154929998781964444798862469582797279338440958817330411327202333555399597441396201128938966399836466992051994938462722567510526765513309473271201901537185230979803826929754015514140050690839123532863447522458135161862605839533438908448208191201159078356535992430486527651525998884752938200876970041336123570976712992088981113861831963498138467323818680342043363020070203043608936836941287829026270157960918579037305113159818578943383395549290950331514598181590445364201556847278177461132195597128080368089636218762870354461025835618995038298759850501331984973853422547387094273626076782459706701933739988354831187441809183471966468428281667225112537165046776420234573947538529094313697128049344315173311788881462028997084909678665022759683872508728563983345059135284351455377343922644580997770913641112929099361687273453848060510936914542665410488576602350367065642606974400707733185118832226933751626259416535194435747289300892882737204993121830403739980742387367407743688605528053356299940098850857435328299930366195634787272893653183961011428329490666237563714268003774241665298438091145095205288069772269003401896194938676988211299635633914230022829841183882041298527390249749384193703795458014673028719265951590523713890309161404635158878863860372889729349311551560514703118602497343308701194746189805738268192851101808634897601987456394945242295451769625203048759412858238538083741717024557388666253345047797723524835520173056033103953551062279004568441858994628376368411989268758596038121603319873068114004261348743684261289059931308334164394341638829695830672309400021441662088814579842409533194718429201323080930921000254891973382452113793492466615246351745555868671195973626825680140775396065691553106751118491089327347554953862972244645531611264068415260413140851556942968273336647292477463931016661887380466120164377454352118073259775520661463035351267341470530235279296727388637361088415799967779368222674830057198683397519297963070010876774487331168073727272407073036363072211544644688399014953247914957925354568785148671295520177088239196064887399899251256990100086563917866067424166069576517219578922757484241583176591252450096238815468881776973482358288506138212407909007518340170655497147376818380187156149938563911382457412529660171573600391506123155067760983876328618129215661628774105641966595298624231566235971775351873318606324277833325719048344515463802621260672281099736668157971508505738488481647096599452375708549123494603705945217210458769333239861787508112850539097397960104950225565481440166314004866185994857019185405910808594336395083428464829810827143482232193934067864982282979936489309092590835013217941542376367204607722219932581634754339745581232791654097297485449925816634891264963499205564032439561941171057857874235118281717850051322457897495765416263917067555329539059401621770142820089622307113587080382157057535148794601499844870034700747615175944454895242980608808663671435965013181677192327056210553309762590380129153631515119651185570946744244771277752251508164231578374840548887037016108286327327190841224467774700208272856937876318054381404288230865046940858285557176600657220525543444916043959228998525893760343473932545523133218618824765942034347931091814325031643643578907267670628551978251824911153919296221476576994040427746484686238652289292521999972848718499388087136314910738639014867271691298433702085182305408484931282683693444441966613846615473268861731869207884553345363502133782040408341191363531508496064518553421267497622532344481841571707231293043583763129153494074335064783036650195092943349693784802594375188263914276636656402699996820163309952485484653351326449710098985772563144912210945921485006014463082980594725949211560871005753282198838486650812815145708101586147742291705607435574942152828496634363800666874738483649585243854960000737824013139377823798832864030100661946624218547823970413721784077221879190709138419374327052851790378604743674777796384101811746632230801921455164356015677553307076028896098599393767242553816292857614791304139698655195616253326074069981661417689029060247345983081268700193760462750061339966203816872025570426520182130576598764688996539995816164750739638666248400983501702457640909409342513976272507885406102487255841029974175172695420077604502133522152175988917423566901729862036053225503870537225946108103995940592521730420882518630142647126317558977229111814951824848901709727394856851555226589935940312153787180056714164733699053720583514889592667831318748767703670204824144747105958752813574313988125367813378185272137562047774424207662612096963118419633002093501737358672769844648016766398291762808789664756877225577686232847746509276026472470736924988317663942649000510519305216889169502380836020142504694524529337111790979539251449883657425222499713724434421450561899320169204376029919313602274145590468550017581682695485882251000287070196563565617031136711696352924337001632376668156564692584702898451328613266303164374482587935843112734395547561463714576882329708806102945054112006430875304417345678050444526853862708260148049954499004553472546587161798105949992785973739213343136098918383342238741654750780957790536628028724202213027929610771222053448072420385915234279152408560700696601995114413476834773257600427502412867676905534019357984539882726274879992546155338381705469764543824379846423261927673747326555179860739671351013033297513895879150957421297395648638295894560447844402722508200095164999232270555502754602328469437252160519417866693464917728645580943335822574603542357848652286982318161179920936645779534387155576979813219760192481353998538334392104552606489191483188062241674946753667937115343777404996991750174046811138843779815878603942906051724221444007898043879906990920150451445353666883082872014502517782332432930463736052282452785428099593408106336571841026885957717599445631072114927000486343361717688494071338381976827733209751863264119703028365593171074531171711907306709804405342982755133239648557683612205582229763425872334822870383151469111755518977261556312325087590656410483785926078008511063232372837755598070704312482399984424980114889896086816120957900997486173075523903071334042016376647593673636105573375734173219179767951474124286741897531560865437482401628683797883990709408419230830711891141559023968585606235107345490860819597716578904459335733749127756577339294272110865158051391371908269067890832956408047739488503158495537879499171897955378590635061929112124481812850228146047380652357323624592980780753238722412324261970107296451712635635667145444601157520998739858896566614510046809413324256727900794725606034163294050844382226671978834389363982510671091644869525410431101881969217610768532848335974500491215334097584200298576830310699477008058972791196941103380468298987663462515127112516484146488753235687465793109648318579473591373885274702352374515559875811941422152584691323934685949346535541125087525965183090687156508339657805730344773887812116183628301672957952935308671913319229206579382768010739621912103830828491652362283157900661896368662551304297975547062544914738706209196475240249864878967714047193914945166797780681095963608694457465141032186548970685749129644661448532369816373854892840565865288256189336794229958271026834789299027021110147422041762363837266464525968843699905319376938626336353797830548341930346279281134769022899346410930467576922761535590755674382410435432094247944244095427000137609013128127047552946594096349286557555476425694664044611051660588935980170643486627046813253017307897750695844969649648059684405273193988714233482478544063192269095915916167665149102599922317798840982605564144403181852992113268376188693745074209827351501249105539916356477018343552738857649706292898691239455315396671856206866654640136423616709937464164216429664060198700210823518493086361173521476507141574610089435842295594260038847411547198916975181468242161583093590897143597728696581018013597716373537447925729013726877278072731474400152237495194729976939389033097200868179910455862291780864964326039111640466588396992306171586691859162894153243131933391412322293249623083145283155638458143264986394173935733597360467960139031446387545284272078146557666698765694526310468165562726549420893452383461480027697204656399775645160337352826630708651758642784032234294343239175637780024819468470191037681972539975092749443224818132905875275478819592226950453945440032197267614130080988671502349420741865031889879312392292397806277800639178735989701170167584642378265185991544836431284573067876276950595171817495670648290117607220263912263984759187026634168189499853049179568069079413996106566248401232683854789983830114611915740281170775618893644196939923868282534991170643540567945244804376803470298889737182859926992926569261359517582543552764019934415459947926681643904030811432820334499788720364479494605985080963392440911286087651626106440671596805459293517395491587633990511989879526108547214334333352458618232177537037777312716540133720863317542705778961730771508033469155447042324173846240767744708907056880653355159984631481045949810451403980080068306754660699685508543486308606042311429116967674096396692693077443923570891888017982624295087999343454327514047537482131850075278903658141124316908555232739036481269768542703753327913473707320805278663477306669493877533020026533068873984891815014071179890801783739843302496682253041157389103491863960411812996886439779932302739646602956369388268222527085898229166951596187695203022427636562686106562842781862344742026462919669409878513225170646617772272713291802023153942876157958292309928426775132676368030440595477532299681015170639986259963819137910767311288824993298766516617648253672757832994790417560898799391096670864365592310956342280526943312153116191483068554277210922670117634951004111159483107182148753949158950310341193361012716789463620649350577149972456760428865158004703160239228696460301045865753509806803941159880809993168607128836075733969068694795663325136741687017541979812016046190624551818657100201517964915323158725540640099274586336114488961511991379469508723619481350276694650669205021062341397668099486981467573613691382938858020074429692986992032210632301542117734183486413901619706948814531941723073839720528141456431985294484261527134421882363569700490269163404008223064367507962408946104267180297477115317447579166132345138561827986066445594013319991786470929113811087930913891766886031901476275361441374005470668205899089533145616970653483540407355726552899618952621188864096087584396790644300714724109942950327468341094273828348734863245789395826615823391166102513726578367607447250965910869461695413910715220610697319358407316829101449104511379677052292018138016808455596891509736682657124861436516356079536614937431108056928393028962817243404254823723902134849229538027458852957411044934047324687909336476132277518905733492106558915754643611930967409926725085417806031457919522226616436691680381208974443794494594312200599109319009112713272004601413932706144588520723892201180826007124882247229619162061044527174342197333486421004836317586012494389461381055940967499384337011723650301968788058197553478014257386779563171423184472875198968159377024303817724958052933547759456333005132615758238124712924558279225847218968966463634971653685175277385253925021309132027610116261392349623303772185290579675259805785494459098032677599246741246140344294073834009586331185767546001318093498251154741970915290988317064982251040720507943918213159173627136928251348306279815669719180198266818356477530883984179083365185379786720522105449088208638394400333903239086699895529971415660602688210371419099254279542572261029347806804111559251353874210929457075157944365535928949817800149486558299307570036115781024945101605273798432464693343552411065627313777981959332667426443813212506744993098762560361760092442214125718850653521417224708765612132078477022771228401911882203454404789438244958855351355481631648646872916448412863291456314217353932405849755885897467035240736854956476424728861250339900838445490912567910977425789708626505584182221371841150683069133407398707606892954906407722349559252415005674419289926785899713782412184681545786638451644827161177562111713464693161714708442179982582543591050861716299787180670668441262795126280241110121962813345660092656410318353625877364221482514895924457687263312081390007122963756728308854130124673169123512218473329147245016817030786113703651717759359180880120357728326256887455289487107014504894578109717702992342032871147773885301773056929658731627001677226374787134166022185223036407110233558500135385336802388524380453258654408320642575855961716881487824146172915064100798957111562977283893293802344603183195472811942328789879598934388122966829456148009461561974829325538740672946697638203730447201994552887961708442348433918550948053334870054750546013793278223882216276573103782950046468894652183738827716151439481889133892378969503501986273333380080233365724416185150763055372904149383664804551404699856282674434989483123958406991759738970013431344848186066619171043870287936589839414715221504352581006919029311285870968692719739762075695643647121104571427944600806900659983706905713487949546661886356471232691909577963711737751046449845923267132047143781974484649324992233732483668488121847080164128586988564609878592328582119608151668189493845432009189968124499599155498415875548029761643025868218091798241456632478565002331832697111862016027473720772257706801248005328876265323134375398357529451537815677581290336277037303187490454084871043082742814191315237560772054112501770740806423954052984142044335966716326836313931087090856976934205001431811497708706634808015192915685832486249263806990087516607074327551305667512633959076649527324542925936973383849354525214572997391733763494110526544617533580169345331731330170856835732864283041787809269245943753126493602635044560047825543635655432096688066589312385433641421725161253392429457228434459836125739608275479468917460141686259756384817452296451811779440277076077995686965995037989965743734455966399710820018435487411016424727426364777179958657856770734529129558409789642784501667508451722202199618770807637881621059055070721311617228252580376583713559135038894503328435675865744689401056907316424293960925121669654531850517948372543412945943981404750134967581252494439733232694869780360251483382645164772809834263405941935076887832738610495874776901036031020849443833301384467184461356182406830272158024007507042647546523343664804138867369533812413534051662980898011481834606930684881927347098850983687210108989032560465475820470294245690088560453663011510535179870882502364704532628626982653417901580126631668641341805144553047554723550824440823805444495704362918550967072083513056067230497468833731709203203130077701157356910025591441649966643610995412733200764687923475677293380100020539799239871647503391439178704770621212867713455308649738353822230843515800269274784236027142940047535161048603530094382955136627526188319354045111220054799552259956399737083642689955226692636757360837965933089216123757183787417674295331907876724950654833407810128709289638414467040739560120703493073747284679374936419071632273473046291485934171607335119718841584158530442191796373278710026942723215747580972105684354633164435325466685507540200283918800002029052719050750771182057551566249615177396810315461484087000352376773099210549776048999563663472541385788632194648704169026259667758634603451564173325005485332965165869426790701192177344020517084578710219745958480683380452632089131823795351712733796753668292117077580571610979067739778001756305542882610390192286510698782833555887285058300553053745953173459241020602152595225793238151082343634736011001066431218220004932020602361122086536087023238308016659694033065642417546330492018994384006296440886995298557419453188467993724985875319331979870054118308392118258203609545721050796832490816938117690712136658434892653152427910144305783202882527141533173633796638955689447140663308515295543332568030619203570519958828905413852214656996227251729934347847702835715223888854993779490025819283621025550810602943455661161217698960043005137817107252787565034620125543302497189100269897720601029350639856947637374376951916212876332715322964515600329609326389588969784609377423805916447188609957606316704458075376762463753402579096154330388909393106054064384895725526633306910379715275331984161770638317982737291202367182383609742998205443365713787441553341606497543473132970989955723492371476792634182404484182241672725415138427790419054801076909688305655287308625473222040222183873089144743992042357860030378606951239738412481145401984989269914354367409071646600465354672770932548251194431085066843131954525761777735043317333444061611261055035062767156318694816546926879795180527531699814174575019971120457616617737784090356431236320833925384452336100865637235760118511455334613933312142035497853097920803482950627342900410078355979253881065671819428086723914429534498521034285898208631431488050782499717290601056100039779232189000045124806164647350221065644916805882783254542184078941835988005859510669083430469296750692903707285422033911970986325814144249043096132988312736649282176659000879426667459812919863782944507160138969273951901163275638112935830768697203265327623454681982485965578829660874860512832331476147576226636798699181866670259842748460172725832692996253768417481434369673991569832446979797494370999047321780076869761713150539144972811143671801301227949109121772342321232074764910481155517446087936572550580837872799108315561899961997945102638577271077101049563912176284594747563627415652587131158249287907585325440655621579505133806319284852078614823263846210068623222675194140232716423246493540186886129052534306851655258868843899058897566453919385208901245647845334029590889927341314617887756906535441979518773240513903083131699904898623952559270619724876682411238245655371913110484615907449211330526717868188923342290028162485166056942803351271019875863288898743661234344231570534344878339754028786428097404089704109544568151958942139992023152530845244881937084023074170279172183405810037478274343914887816533671753267489267563245575162151651030398933073853619219178950509972034451019820362730445020546648988242616287991505292573180377968861851549571247650534313074247945738155205981436571759225607600434369175283978423738972861802061851804054019935909819888222131632778446431619637664279516632579528503717124209547380211252550424189742507232105253550399287102895820479036045254727063928228562337254874751355225309316487721346518533957835688874620637129511687961929499964198654474952181790706482220097328130254464954223856827567894000650587349617525084516250643156128618633491485342352361470809086246626989059620066499711534204992637947877680585932746381480039609617539127037685774260434325075174993398236742762831354784773375738431307104271502281347441491901119379046651201052284952643985103985431173080486293048853794894115502292166955088486567498875179919313389004655814353869912683184025987240703589201734885706891561041812932127930536164067972411846384357808740411602697701084692384624308709604353795825185210759297237612158104552884172573492739710325021438149604055958864794695459216624737495644597063262165435268752476326655033891546392679505588790487640960302136373092274520292637886489186740562170334198662724310761048387492440794138296693165011671167719030945562534590258659392296940278689370468179869262151051789415615050204439311048028465895919233589136526214832293205288728259747245111789262129891976661663190342712873085924084514319208876161774141366447445540149789139975969148267688024301838052193670696800749961966242296573235215353966878334032794738000561350915362542589757301837852313368422460812914790558060562097522862428620269731104575285986329961867820195504865434612234833675002376868793276379820110398888769211133413024749223107085419840706435729533783613246057264057123102687693712425545877006691359293537525635986724184360815018943023992564919213709981340612354746656250140509167613006632307308439506754659256341987198273177213731522686902866089478495789526286944385822082483661925984337775637212389016035905226448193261580266244543038540658529518702030714196353031465695619231441349505305717558853953106436862601260193102144479446980613998749569934834501758841616933465702253860761821281396382374457062519081145174556238946184156863989928391457360571446551364485276293357942972029216621237520850532352310281160826648729166832190955649772796769337356383884585639858551002906612650829209427552547429707368710166230958837699830624203630605816579355918030848366506528530055110231831539735149033315286492867788958531004584078864942920256421755438807935787932520471416664177661017966915142761821113687239327862159311873890187536988705031862871015013167222393509584589558327111374119788985906583083110860769628199919775301064070602010059631460680701800940467365937091392043275875966409320304185198414019093256106620674289014104504413751329332085413062774510367342425758503643657977325421890275851744300620850977234319023550401847834541798510212746029379424260338016745904706512713182013274718315694828167974329394740055610822535259176139428343837994006809031909752907316933364274066472387434157883695479902911460778431415011888568829433175226815907582828294983713218698759791763943848242885148576275937095000958463444244856169780351420081511611569255367596953299173915429757512596820887921906936968047826650404399805566814858338924516541975078760910277555303260933143695557691560140824778411499670092988637411341090108547973357297474823946276587952690749949562284861761535645402430665102206072445279837286238128472790463150915223101088963563177399334283548725950640314615379327291718546700730428643890407932224929286279705051717541548958176190440078764251137265336375748581966459408105864071312373173288429382969258137606299892095176972675903617867357316265925962037669274571834131617753487076822724628754924836154200471990249429667250264507215458071151131838508136130271225320307035662606471957016572095945521316534284154733871219413183942334656089097479424996611610694164489033753723243836228189623410964165696190571469356542671163154927323541179401337879991422214811574292453932320589303450858911622482958213660370466464352573930539469649496818775712032284568095543479087242351896961027824594107072787345848530458358783825199779107183605220980898918814743151793535848594802291366401812778035040341461518136177617666367687050763373012533165191791769707641406822389479642450236604308713050061834437475815434817940535669741773234533258785717581464214660164899465250025285479639716542516333205049698574997398178174407281883465364326411894920443800304295642749972111259274914506285556292073427834348678401574416877292593200403228095694051589716317520203985774226811483648967314788102914890445235086904104426130206519521528313828389024298080691397319612856433483651333910976307300178444849508359021628714377173823422306425261938037578043778566962932847707360127294399218955060950853594315295503848446620868798607260402262724838077269026084531933594158506513751977211857199675526879295291913789696671769797122119942250826317049620713680201403143015910023963771684164883734089396991269354553035080093349388880169180824181252758520414873509277468895655623527519235158633339022814722079428688562125698102482047335177703560699550038072277850806958378467948523515525007137746581063947794793572139524740883852234625633820983957619866394901611786590636367582682847696012731074614848031022464260314542539137969763426888960131488088827093564374909134896317660147664511766552266238759610012657116973880549868943965068598102959556120420047735370714157686761145591442520252082626570129735790310250694105368356420767857988448702476407631972318232554681609009473023797421291118422340219858406954058659952382847703148371228405962157114491778412349917279161670187909861615930648901370432799887048032080922580685007219666424532278209901178250378821802858265402631611970299118964549824962575747542982334649458033746876595729382811085070153107946012793338187327451969414555401866630401692689141668644821423869738516929757578505635553551861643074790907781625292301966613606481851601732579814392469937514233737882651259638869246678994588850609026714540714195682102211205540455218401854311002032000377639430444495264725633159993515142809521499852891785482350219560096265610272375252960341071347394201524978507951758327593876914676308233274992650186528630914665019608209153248061304491244833684536675091074591267268326891353213667387455162764242691595822172495212194613141438007091110038962210763196548348781130934522638519756192367966935231107177100161789826716684248326390970149745747476353462251275842428731370396197265249554371108370254931791291474664077860902348983161800434928000726817655473994942746981841914314224007205608124602659728077661397261296548310247979577785558676768993815784176112015703836910463123431800828689234351955304723054566298575069755650088133898963878633269578000417399386721149987686496804883276245987613344199567924321608109320821399256925705571209526936121553957082191478588137807040331439839196613468904556376840226268847053634679691449627988252300640956367519128221521102301006143727473698129243239971114469695208563780906576346416123076331095185423761252363269958174994299285428438238484985220588424610862962099372492746069776040046694485825585299131363338380090571511050125457679123145089241981128432784567547941066235327132430419465941206091864065114819498140292298618769904875126935743537888387054160371485690206046955396263846173744972133181437933564389613652188393956660389924383508486692271638446035524177074376106402814703698988343895436380254817021562075467226008627515279287477687976304487482628266389187219746412001617908627071272386757290862555262810322935380656086260948173157974652888529708262722888308446376178230810611732530242234409382713528389454966367219824599118907668604493268346957974057296930013644256397341006622306204909688623044054064031067786547060121932582252065443306004962066782210242427097020394512160501124827608976870680217447555103854707158665578968387558053753827205262488980391941978188652399111839842818119647625329651385527844869180732597300963079078245040032826267305970811326336416872796359157875769427568820036746267597869593869748257903652423445116526560935126395722315511331937664936362882338103439770838965331882434464155479627916623436636866000306229469928059314681536626543961667558773781504518461495492155459297711072625697761152440760586453075157454206327903367553749556501221749367340425682811553024687965073556937798862553801875938013793836909234465895407262579624708710541207847911178369694952916009649084127025100372917160811106422687546159366921843053565107042199917073568265328768109115826624295501873330722608922801190429418406063014030435970594690693863208775490932353344603488446318047868532986867460460897305145343366824680439560170766716463404204787395049598727515074319785190854163776758990526917943670745639948181278725037990005343831638903157476628025780458232340248252748561783076342488792275511251991408993023978688720944764604801692007332149267514136671388716834633036566824323881441085697571700717154048849877785551854350623431410135427519138649432598001695111649053757811786081813218164921556827698311840380061564886961416603486267767217107174631440153133366447785471033824696950976679404271164127701946674848096452630240968207184624777873398189862284667814335138743920594432155888269067235173056370659431467622982367903844802157594804482821356336042307130285436847602729784143862511303802363972846011080969718209657888546168012862897346451005806484620558869435672518748788357469171360000071683652907919313559012310658636427586383113985060350970728988195769064331717025103892244533554182790946435349869748597165141491012950557453258028590597348211296028676515118474034631928455660013211944390422827974923548939789712794660207122488398223970686378761806642467354795502490469720391753150244829760774401102729387511854893578699857242970821444822716373508472834544568340258527430748186514387088811158707084157540305150653166017513624936392173023147467931442623538250335225032647688951547550758752981081047322878817012296904199753696919437791926351535400503632565342822745167163937044111250421110461149622513292507449921826292317905142981595926196538735256045481635657917644760199498442179263484460319547788387390525247085499534413685371309978672679686169415884716488319011057164248167220520061395119866831607800523065314660594443085679761763080613883769249407493363450194382791513529344514892157734318236027062745671160693247003000498575749017370166847488981926886331472666342195021472680278988256544665323447206621109347435808146822789671831296943768165702203795419133650729500319496890283388460277297934918633480099738050111328700471364647326230978237321717766129163471148953362832510617870149404629901683060011112366222477057805843865814681394896342270363737196325597434591879012561844104571043325499250204229346968958666250198190549105465123455097893125086597872041919122191212733506262009034431909179617935915794339854999434807752125383475829098689078298271486342929184364901963819595209227175958128621724443376486380344495155653893463279596927527778196011523622128524032810404367456939354325171194949154406503966068814638804865162457452862607512653915060180988354696860282478596040798282941778771038528257675873523410027839215090933649786851935004781335800249097593499224506626967403738387578463354345622804039334371482367805646038947052497050600298759131102845331289326995838124474903085503223951964023522479230954678198857571992632242142212616335930989893891554288142298200608024110297687580139439938245617882479189780614871560426503214640474119484061256356528346609623106934339960118714112642076560394118890488138844701511270730634487481273343391829826655651241281353797715750916700700298182277248455920707193008061696203801797030590975742180513426633988005859248835854773553420315104356824463579351334891074406966439813264257510231121373723106332550289090573909257318447582315195413626149864263529936586089399113770518523845936359586850071364776299179850360935978061163215486879565261632711859083983010888085000099660245548582102345265750375795727443003975440842380587096045192370240955196673304047998867403601003381663462243519378335142055821622120320829051418292060828789670715171393122634677996459601386089949130110484727149885867254338628987265557742719163815672445718672404302133577863438013214476501045358802838805734468143008810173154917810066136420034775941754882488986878916917530325469478261252982926879776899174520411298640188119970130952059207040885208883366878970376819929299835010091647886443087439836908507755688429260341493719675625451006609456632739936807191603365161767268273603365612635409392905978960388709065782092719155388264246600672783063601104748977935373537141071547853081933681714930007707334407430157428798105688987973994038847576798159090891984245788903863879634641125990621601737620248671004343609709201675761408157774046609592486862323887914527952733651136033688186565036700777358870177409802706153970395316768052912756419591424343253045317383213937158934057501251225773970452849391488676675072796133055217174312354846970143668501061212057012962777865659754772092648405763215275414904195270642314125522385467848232724868056144815165049539222516148145381971823984488454735138623684252840998594731910053430731019179429134734389450019573029091905437390716964811939387090273125119555672718229034976237127877781652899718594534617855506195255840880735326254814992450366788246031785647728091897068474681328902470838993703090238623674824470471428741377553951743904275818547745442063543669635436128470642118761693073821911452253636520754928943437337183580502868703918448613994934299262190931714386635510352173639677832835362705432537793403118731028019309973514792203182014185484871709871308275019950029439752769983618345136640775563070324350291381786459287718657990087621964996393142728395601713545085223030192723575248464514533856901816984806744180510026168776492499236213826102044135520252335632593666435084249600507323488891450192895385930275460888380789805641944682762875652397810013407281409346910616466114065955176001192404110901131023643351538204939986460117304469979488394722947410637530438502148084969308822352872076087059372387788494022975537277696130533891133172457177275327094211270527932468149607239376362588848158269077570976933571831508204202964418906055820295660624716385968579486538858842818010224963018985651481767151943857199134063701007808863583252498349121682906560384030650362388546796797620894798902926712721508366422273248505480510777257730614778579122714776960091417002539969280105788412351628037848965620933334891453649302072853513514924990109111540590308402344137142855727063648909093459616061183122026826855878366250045920344401579406704481363508169109875662193366249303062671812050312505676716356545356699199970925562755955451848919188507021852625570084531913939694429137506408809255612316937421800252098972675097255290613590805956144665057070954025945364808292115647950333688834560299316850891044511076554275471661021939409447217741902950295711619393182072762371247821448708763425044895787642466326019668367177299378341119316675360091131842729491282814194002761368852160274954516277117996331600256078970156960859570943634705215099493249780486128971045120843328802715428048485526346338558412496395632556852440607672244370350716848307260081567522642766747139628050083059478527884092059778971026869140922439320298286578069331539795459663505572427119692899587998250395280590881123718932466419460653756059976710557871031192116514122686280588784693453175603203516688108731540216677437697915313990678641222651731177919951533730718422434982500333412563997713627423027135191061622942902106382288338764970309515853156152842656796276771347047716166110723885760518249197923506533282160093741976475620541815232686522191368797314856926354456377028222496838305548602589832855887649851998985465300388412492304171280666708587777942295304748961521241169282588966911153101062275125739802997013859017071595805202930962375777518382821394382519022392833113283594836270400902662670958233855097894867666740081038163820614110641181779939047186667016373434566025379278129941952760312275649772190838896176929310153471867854171807571247714897401919982344063110427826165003553602343052291214425225239686553612501826595312922489646650156328583406056695376862100184957861205958781553638337025175658661409367957841127361031170647952707886000716042441771109859688595944953635888143666049846902755700395972710522701983575013121202979665302492219396126413034681853706646220564374005840900187113993593109023940639770103968878222634965545860892491910596806860962576331653602136339567618115420140096498060575953440977279729974220549083599629885364976033012838815166004817630049487418882665125215732681820723680454081779572909669451742034726421186605842509959150177040704437082475471272068962021760813852448672820757338291706584978289807797363098505994517956607194914149215967646944399001652578681526473474189791614429168972612891026832782555478641927851239253269099093992091876703086594170632780727191548692619165926861401906043514455715248126200587477064595595746794520810866024295712847538394175018585404666964654133687259655959378787283095144511027497784670891381115256312200206988504275914284184134820628923797179371600977380070069793986643167138854139247889142589488959835737220213175618076623488937445349695934394753454579174094563490878293446519295581822098817840375471672119129468470408685523235523416492761868214862687550307725958161420945900165029255823933445043339747570176577907745620590774632166423109103996603985531780274574390234951446447907759740258684916254468054764257170038361603783260708789061288829994462516579411702764645280482212510908446639851204596773999706974332723368120750955587328930675650250669085468819394044340264388046307964778612991430349546401341773953517812602388056739447402494685510074865057963125839729384909907487094443532241466590354772673486881875050272587801598830980696697994769184529303625736178178875328962976822308391590384759907764245010330116812954921965980840322621145721493425382915443237612319130781320978073516036471745250229123220328282956571306943913195854447670684878028585924085369021029199271384781744471494400137776354575065748618905010641602425162310436363102937679691167953181493089800807422092261752243027919052059511505773012117158449000121613917654574598796588838375020245016668552466656449591793593059536283460569462918990537326491229134448504567911416539419396335946850525309346931606165471023008453292925864892346443891730285827495173834140170001854715139828369227307263587291634836336392176214711161657937005292730819570948753092783640910723780470687437678456553319721466187297036889089128365902050026591076622651544908549453941704035328337792031124125454074038741637509155605546028762195027362031993506727074790411050102963323102557103505584968295697990901597676041682596945667825877896854615311411662992249281728585028923151610762862358050222083529515325364926866767142776231746923113118192033288698656290059400471227031723225757217642359845595022870940732171643545328212033030371615657363887043637547285311002385988078628451098818791969024257557009695423107954878478748717047344505254932699711222605758722892212519870972015803025337330467741641177448376142692750469686973243444950611650793601135022486190130407623787322654192658516700453350123237618855744611018910965517637409155988342658098587782193652671601116994752753510025092372738786895647292037567562962477155684567192370086768386553596337988188170408172195698786186168607924616127188189296818561219326205901076411181378623847173065370996500785866816148142512072666291483875008816575766871564715876022000977155296972026045948789418887168218001506087241494921237611090239127844579238481138574986969428332893249905762889668832071342297040234970787387633269739574681981127851085061324260729737332089473492005308068746431961008992424471427955350013728359705028302501580229086382432724288787209410045273801234312965169980573426410832595021122191306682137407704981714230501397477806461283446263820093102258327388687499876980269696131880800631927801342942869814124957328708190274503607221546635396841577411923044181793624987271339679592289638792677927726738099039236808446541453031564717891610594008465772729692797033494841291178496399805122479130853809464403718984950215233974524513194550546320832347025726138819929848980859474671682117906602687529498487302405320870195607980717159647057876438420269060120298930166095362789901070964484608053844438739579572387465475200964179083063085525310883723286178797272427003147777243204204527540929536372112555789286102733678962272774439720354856064046866167132436505914141871565363097434996271488535555785681834906760674785155290648642781381618707304214753046732770760975018883296379923236232772542546379152647279003088035665195343967667545733203039058350841707417054095742273497620259584614352548724236313506677032160834963644719666381001148084546653554194561890797246902327314353442801336544624751475704310912618817465671569729828041678406053756970634197198736784692671803599306989562741446856013586445696737248102468196920035778578545849259046807528653862451825071115673871415484971142262683893711064078762000967060798317970344520430779475652993470565449634916703608798420858933743140113404046036131230633463546149242446436062692342821246434776416904386963339068227703015691991693624378138496214446628674482593716004875968839541061320402479021739627769664025890865839717366933368569921719227628128426462425548582089664121353263169016911525980292846199806078955776481060487730832022953037365313910861828902071895514885244439120967370150505211540504435951829309908317683277500003305646893499654405520582896516844181278939872762003818348421778034727490442978930551950671623906137595880395109808652448049460105361489442241585219047007196174632497699185410822983005375367623672150918434233824261765323999743540109877933530566817521822359221457993894810169082811999508727774539312059132850128642553840629371084052939164532783880678771738394631487087752884498453892073363261328345608373663052907933561480252527391547037870364948190607440822787051733450995586310097378680865356229252743777770264676985307315622868769624264839630491231645528405788907729887382364103661017813869958676494192350584991299490956171716173306225318512111260296778891370237853099478815583700664772850213282456652480589293817039445769727624956173225874905721302854123917345115298982927494247102971806302796458040474820993837875376300732445623913959737252797420605772919626404486549096957702461459485806529317591650473181439457175743982942220075570268725834969408940108547341890374648308248134847888357719514181234715435325729835112822795609293392643078121480318964138044024255079856162202191274755634061661426960676730731099761410075135309118059701692225976865667646927337076979065125304695253023591735947588903466405457597904505410111297497487043518403162506858633060297970882409385609489324979319339669402444655454944692871667278047341439687888679363714896066644516671100712600461368280333704714398600669610105991783668105977895001694753274471161589628977666140187112134236087958325434315294556827529084579741205013173234059476136189605608825553640955797263274822588548266544752304153090204085458516445464505630972771384726096077956175019131593469630389701129034711602172878146272982242627778495223629083758069918108811042068431636332864656713791578655138127672325178135757774542722435300995524831767586794081349478565224448466032781141160952556118474483819280474530185049948415618305949698441704709863139156461145937314360392768685099956746809849364871168686014117649094645944696737559455458809424583312845413044872858807711189569491901474041265784686243712206944473242347382890805526475847974634457028356944241083612680641222367967713814986388346004583222715222958135963172142451147403780917837787941503812794530705995451778746849951596621588703481624622321690271823284608726942707970872501963463669252380433244512467366521757544074780758519067679401813000393970756568615653800468633343163914032653328969531634596620080639529580995605562928197434611883937320417075076510244445111000318676627073923377067356041266698787635457153644356350200677182812574256433731097840695412379023302727277610171936681401765152291564948786388903138443565683051716161825594756108658999733498024540440457638419996730851677102474975978923609468301200505466440048322027944504967680871734781733203719766377367948840145119818571697566650534031079694044173258849493683390152791110748031608819001692375685168522187919605486039030315705351145296947373834347381458049562307204333387028962549262208750344953470621900251729835942602376543380703610339607621804515795622028566676268496835786352391969084020432791263684429397753305398231090351394463920955817715262915384163973859060418321768958413512348357211869064054476879014425716746694198307949448785009651000577961724477370180100452158258981563684336627019352122276629466458769371288842672275043222242122807988431400139219907913761559063894399795135071618193055815278324556041124369231378572597181818328668515078292331712362906069219514265982064183267394456134435640807222672969622422637002824678944941737801483686504132761370765011219778940563221361127218851184229525244589946427116189056269611326023414953799223357592235899724370777440766750141247721998129145863203565669079633031503613614450300691559043329611709450242610547738527585848396665562996903559445535856593172803102995913640777096553418752098951300193807768155785677211616409875735199762721560305385621581049996862427638569810644150161271089300410490360866079212965867922570570553093096081536557700438683943462572374561703515760051505816899763880484272740452511834308222934463332119492396745573575823773265796959687099287319197063476315275191626930483177883464447315574326220425888581091301761024714513531185153523397277835106481061895781322577554789266949486608300294598790084785124113379378062677823184251287641725709456633207861861856499146444366123592546731547168723653264336947987258030770402155590602794982837767015508016646476929534151326597973030288950897145568162788259912136323060592891927824954006492228513661100303436675904680489538113096670061119277368628584113826577755471118362284554683889330875786447968122093021762658806267760547211073453963713291922578833051851989138001486440043301993329597859167668924362494447599760144436696127180881099504169928669170465675806306649075964347498260693887280287302230930908618754503254958469129760272028187417934704520791560578593280283519999761253820020644024299741876837916239441915482456669070515536813266888368391160835057596997232774286890154758628303007857246368027368916725634490213823138508964978417407389722332982265784499600334662392612637991446989310285157820840739253331126136626623158479301871728405358670873785068696431409760110476516764021987551349502935286867010547049973426749329567542249147392358383460637193731920303843075790555601111910984096855934699189917711388466839334403837430914061562503350886703771225501939113815740906317507993620244641226826834869892042278672961303921737229669417194988916724022962637775728096469515555373871775980327377869135693689041844323612052569024556960376391747274423537424346320919646380937825731116616684181249012195235533397206774592414767046418111716435757331419342681601469923540954776285876023374243305215056771731529771300059021258870405335091079304710517192887169989769598578444089599791211995263667731288770679737358731839070138164604096818206452432835910917389363559902734106707042294499869965094413497580063425933076434987031183777010569437010652993667839784252184591870263468160242143398275725288760705631393041768150582166223164018049841421339120087417378105216921787939472331201503291819997264814008381708441438715613589503058413119424671529674951887775383459975614001181503793055994335769536391273196240196070854172911498550047865844813052559545727156358845753521889528854947651989165167215836213169581324404220520364780038166215632256666173604664337119947478083293131439641735140638697500984261164608472955711890056523979756808140236926856560046561005029116144672604290284523431369963854672447095125196985501114735520979087229412209931184955949440493970337351967268183754122609680976130415947905112067956335260806582665129442219378294427268912850118112118188463313878125338496341477492992099789964779640817350811624457815386008170316104041715428186302159908841656916226839821129651936938338171702159677694011947483759007489370587429233586151105331359721557793466985522423056323441452379606259092641127614589493277944350554258111673253515209855186203158959223200383516013959548975416216833051159296933818567409557319108910537937329222197646493830070948276938973557411884537526792505789665701462453477192037188330902277954519199452156486038657837556705241903180472544477839299205177478871935491558662838856828181795417523424964301515797133628085510363663282255492366478816902323238913555554935923146191964199824307685176301979892216235704368966139867610516578671285255608571380576140480298714371024877562510365227788433222181930030495695052247442075148714766766058659554618960705757069719806134797425426122807216075813279618972184482175140250106182784946999657405456854102986430286797781918538662314743672012017919502561808400564491875762535583101046561653054420770500585046444377932127361092436469207691011906078478524881337086427714970084643007869206394504734626019634432867997979114802659770875816331150927116008335264357489689056549671610331271146979272231673610436952698422675809709335083712533456692904228329652911792160555515871514213900513964730508624442444054285938746764660081020873587415410760032575495304423580047119519601104672868999799814491889962951603718947651373290224012858521202792890826022643243501587467826798716202767499867303244813021734004154677481694136593769334227654108107889278729172087516712284831513209270894541275675603906135602378730571524134157311995545977561989810205333922115841490647202676841835476942026860099086873803974622156361094008246794848528013013245805759808698746461894171131032522367056388394810123193618965858086635793111745212845675933662947496411345590484541892495201725495478455520857988674362559468233881961597744126326136362200463542503371565764700615749076769555872761132386543497331561633947596232261214610348127812909748202879531088333017669220112355395700995923390210097453286169915183979424360733080559371726173766404188505291123427651118338860605071705473667694267165330226926787219135699335956808814520782653205591233815693143699272221398358269790170670597267623537013830090370080707513714067261960250348356955437203558248470020708070837173635639453195011412763153519089622372028789585369171750815913810440188630112903422544992898143160016364082037509379518164480810449300645319505758919778646559209485192447499534070086422859850946641572982121143628168818692866052847301784835192645492492087587211292953343355819359764922261965918774602703458220481176717653916925838627431443508323752972158287609268953925754935873736403053692475444104031982754720711965257192989056231258800993781539864259736921771041750959511469223136099934296597944881433443717968756963373559430202925564365016970978690724079082443842171630001220166336010816242762158789956649246846805733355798115473029136861915595501397359198645943763100653296240177997381891368480495230220163362085085693151725316836697195602338504609513651709673791309462579985370726458873491592797955280121741486926187517463235617344933807545297301266572180647706073408450416730863157337704829371059709521160819514217353944402410243523782166128241704294493133626541786063917856311002918762387469907939300712975876308657032963258832845846539425170319474988562402185587381034286408464690783275826972597418935530144409948256572351937699512720650801136252031492147310957794980631553176971259724801822763879892148477341568191260322498265824335725983154428645056655090401849730394191982614559868182580495662637040447307887813712240541522131863082388074829424995288708053286915713390385386550146250172291358921027044311912426000296643083714260456356340345035925580768330143123391873711340764742939315738083508150151398033237026928320615311878644600633943551852822881776614830098103297815943314137902434098488985984661136537849836415569490640826690105527913990211362951578526090066588349696703862585449841496922373152472046432382268784936925661203013389525355941083853497904846653369930662028764301686365885994514430594670165026201006442657103726527644042014478313368857483066102001704296594307982452339600116203166629624820474434454351162190928978017729907003498724789123327152051419717566540016545992037164720328560598213758434985874961517440490491499367561039280367520034897611346957862058307939935492901384812504537650877241886241918045619855294012905218478983995259270157233772212442246387843930110249483049465961382178710250026179056995369666190961299506251092772973493718705273381711138653688731903771387744284513694010878732791344426524189875540744693927454795790156567946341266513100532645577174478043349752039419810866553573019452750931751813144305137216567903351716851197169553014422952315307061131359340783182829413977197618570710339083340423371457288897450669520314833247814731788203905081219906233060372558430127901904874834854291534457684574489991448512102111924984030283581871340190282872097788208394614538386884717018856113467169656330682442259064003705473629033549744327454527901269815619177647020983323958134394495639845480371739358387262363797962765936070689633427274547662895808157408868664466240589010236783361409758460315277195599403631962830818502052018532287674761788204545253374384648239156246270170549640024441062599735737372723621975056595949115373413936543292992660446162869799022268890177690564064253261881190906170822501297097192237568417523395070575830099798497734213858098575219114950640604727816831744019544709946216183164327497264602585562450794786144752316409529895254802948031391158409559354317631280305958464816308148823490563732503503597407543210559498267484978357799833469451645098362060187447587095880941152138321181500711957733560795086091214498866955009980833724088593952491174222157522773372494330083365348449628197409563094135042005685857237008818715191876560317663356728654623156272560377086211558597777786850968368348515707343628306419656908378538217545004159833286290492368011569519054011872998135926698639716206645193900315108105820280454676849247172057901333202575128075676684716200507167195789289220747693829290467592543370898251383379598329869649906562203416617250600669910744158285289325677502181142206491101968603489275801236987332404081513836888165763535088463674304426002132203165765708829315822320279646978528354381090953807212467240565673308987879034652212400064430276528503945566279690033576365340160682866477658953794129081409325784983180305315916740103437354592475734585979454953961925974220775341427337823116239034885604109366419987086001729242070735935199357781605054639469530609514314542127271329076983512429049590032064196511861802028658022109160225218989791016961000051704834975275787070726768159734827255168559008191411198292389843874507973949758723770208788744324936431315423207015041044870188301627060243799527165211218411097676680965854039783131887879996016139024149924202228305011153016168371947775941344816910318035956820575581447007670481649335396383831006423428043216156821461183767214307500288501796111552097104669275901624563495268524987662484048944252428147082888476797269414651267709837531627445356905506804018798034662056341326958666334949732445916185401297755235836895423762458318219115828470612647377350529436040160616049157708272934301367579577519949626108198287085235764090685922666727272371339597026074123065350842313642768607994518641026606305128696969069404901807823503300383338291305885751321936981943863357873961627582495490022592451220782265275931718157557966379564958698469640423708434612647286969787661664994318760262874515222492663666688939123543735810124633510640320820684022256144340830173768593038353509989447467237853391631823208801834067975352013588351230531717200562910817850483131341995587568093468704513147512487810576054605146522507112808207942805131191398485800558511707700962535911267728461105689136734773405953893244050619454388796311640974938173324428135605145185427525187973538006454728336057015461461970775650042273590611463921006599048708932939926716497230695856641577338254835640936507581353048765190461531239502663637349231356923065666708125447603858859186344974028465380508259030761066083457798660238566190614026947000454485944493371624267692905948412877750474025150219501601194434489488880677943493221507408665462048406306255276152331168881806173133871994406181962766979400901200378833688265664406541161594523576833682281488604746604169939253839041916010155626552069793042858929793694315054599431821891157778080669007098232821469662363161296966058893887556614307084412159570334209664906666763405195141233562646761769615678038797406064272990955455832661550127988324185749259876057970612028557504575842106434883479945179455079187924815432111721325235728427496654689484521790321366517238487893088483198939682214233417220417073307011067473017075970848835091811464856119273466263875068644110843725005185814917708790387401422479646486502021949897765972947634258760654691871259082001718755106441506832183333444370207953258446242753245760369576181541276538168950178819324506152864370652217918125470272198139383040854496892722849659461151582188667346468804275672716718825319625189102908843774303397771127231742239323175183873927615852225123053248117716810573944253547244225283142916443156370516682465546106244461730872134703216375186192292195139382671322008469943795437683975941944217747124668132438801229578018901797948214182402737702330850963817336593130270065752057791800319199050859904971620417315398124207617785830268806064395032947674625967349799838868585563757695256742520708923147295907231536478564056766228229846096143475475160933592094312371735134275207711889888449993168546640465634419542672586862274767013612377211858484438571718219452527103562519664075180537855350099517532692434016072943449260207198951242351814634106152413802516424914539887285545837994127741868765412659658790773124934114696519973967084204205979882240324506630888792411838023226034055039177255242483735312324088379429276331663985774520823329748338858005799858371060816596835429112370985474797884569043603263296937838002523653851453870610133942312941993308646405479228313307528338606861057655038611583523132889690383832909599985010698752693276616631742714157261874142752826532055907072090774882237013094699883773416876218080211369308464194594829799382569998257699025791910944812418209246929632736578007941921548723689906555944888611458895009092943967791416190537165154355747306552830987757545610148568293469805038516571593063781231081087098930601348453660003246687681100049620197675347125034293621679265387949194580466053373935680491469519168404342910842563275890341316293352992157598781325345589812892523741127449876405926231264870182302347234272938725014265182849969429911613858485144379189310575391896576003758062548691602623690650138531477151671475946627104456488700691826520100173294554587647823877913389800108106744176403983403877120777941032962090881137349629851481751250987565026272459901525070458605276114312167434194104261278160228369831030780387141837814462062042795722773423609103499741012147785315796124711083313155767271437242865646749142132964437344382631579930371557551235910319441277281179620038966230021242381517763056171841829295556740751422676013543372904189924128867072310167908255495659251436895370626392321513427997168939675192193318607086755043044835649799891050247727132684664343582957431111207931487602884954830873440365486039951317666167938309060502194253662834963346742193370919541727371230970799944768518925123897458803449859587643113454123303770544931511224524726840892101964593429194887730964899696260039262215583513342927804092605409271846712573217954678594468296737616842999875295706924562715455600141671915447989757050888177894562635476470653011396920641048700838381464349721013170878227193252863427414869338394679981203161780603706589269283099213885709773810241419164156234849881063238120057746768969560916284330142234204013191627029637495913327724569754552549701972127135255041535187187428113393740223007662522161670356181895602917013077348216459435325385460397254310528118292308383858048907798262629964514033920396106742227946571320373379935222626184748732462868066044322760923456229639205059905518287860044003764412659235145725955952033466145096095779754267803245823720595499090679080666952979383720697805223291197625959509772032573615514458969783872432098147967450284483682677766830713312668324180106418377607272872702124038519834055876639254728492667930829517750141419516670947029310807098633603934938976216119330459958974586554062651021268105470334997740128750270351499466590819459764958789383657521917331930104721329493458751943301186863328990541927313242977037498369681643296820549700579579577725965213607915288733855112757907647574771397363131445063429774149006846134852544792926189009312990283300029417196580360445845316548969484816817300754392323060355975533170914721260711412065675825072474316783925272827194144332376885604118270202672202609010319011792607892901387618098770680924788845152595230754340963870075283494125506015510954837860649091356460732764503432940023363950938443304362120618766182349243176222198606858577054891064024820911869518530108307365627782041716849419359443893517691610867274761066461076008892076629546939616842805539353314981744012042215120044664028838314155457074434854671844073309907852990471627258700610478788476325336771293317662119871318168814856210302331505448638299301202761229974822767404222897473772559741333349851554974961815475832665088789983609019626844774717575294797753617581574506179011371408746316601873972467607854238154379085993680708028791292307362527822710200990437363514739469814413393788247134432098090604420709422449252842234863791911910857654239947919836788419164739023784819242301037860353553614398695589255738481876668751819268034499582071420387811566386947328015187049442119339308019381869946457765772502484044833556376080830130923581461696409248935762361030280906068759530035591059306896994971857594384527161367167597761480491605754120809873736238753255856971507908248354896077463433942024666354997986203254721138002116729339177668786110619594065187936242291990704662540735980422513184145501216742674972813947614483624901695776789769599479567409580365205223818149616986090218189328432560344378099776500835647933148079234752087717587799779803784508941221133342375925457093795942298511401089395759590678483409181724011611870817199145686957079984451803308616626019703490166072903768671989536111393068022091670296105141973504329582600679118441937766575332717101934282324482201394366501045854617599458428127649669170583518607553056526251274709274815031498501900291121448707349379141354734540313951452115180204131628756530196510347223721730716887034408893374314418315199293710228655817483993733062736608424388411485057848275851776244422982507364703226409798948510376817551412061298178659520070397765966952617972505906460826157374159537816391998475594393721283401092812843530572803430571994124121265746003693366415847854491638320969228579063992471273412146274345546318496168132468014627851225476520592500474336923413606044766334579376458372146489143541182175260163866372848419775229767494211490711385266139173797276601641945241861860137905572819045085170126853912342031040245794301926569628231258823917822825300327569767956965271701328894762446828036221079864905213855919206031452773705925527500616040843281612549663260656293970766027274591943003106775181991742143043488721195881273726522710981578192315126468499075371575495705152823772439348346985529818449961358711586958062950988045236611242930588999030927852694498091751738199707962921349361138879584528043315795845811420513456361111605140294496792339425145935745140135543393176654560959337865003657038143181555562721453015392848561407487758510857276132782879503818056993305415870112193423992600662775793021861089512293478121453165960143611161485429968727889896459480270781341422005385197817676634222359370002539990163625765898471653682191772229400496552274124476455560599270949589915042377139763343004198299131754640270234183307909659078594637289991492056552738797925479148956449390159593682328409382154864608344647551387647468957973375130759803948573390949412463036298850428284242671579420780781394313026664704493248020893027952527950505959857998980724826554754375541227490739543268330737964628065897236458996705738988486498068368315262580908093457364903941986368937680371510659998200732147867746464978685318748881437378813143914243758502289733300397296979158147238697028865936213787873333581226631139146864911630564884690932924702235378682559504037661006949895072880477615981290385484624404927903774948212160032932696421695672809270221844078270354936334175368846615168490387073337176446790935077638610668801382381509739886201814744744630496674022922272763156050814409808564083427110509088261563692880009362486762494125126993834786377009970056837182383963441035852834926028376952649877935395193431878617970416740409031160173002801513630368664062366171000665466719554600440010314253918087696083599511177991007789861499614640372773221413326363875714876493806710107551991839123134345386100546034003619941380168769371183375108041797121281214272511882910957240131180132670536374588828297675843719087425256793831777215920721189803658051176521711665913577383339665744317770549659144590362979149191772052531306613325294377782473823710221923498157617766481266281230339419604787901154990633783596752672091112579167686926991111661632619652414287738139631587278815282006241155491066654908797917185451142659847711030857109100192821199782187047263669932381798498969054167466061889959843266999225210894468530571504858506645529208944115721521713304224523153485693475834960661167274259984070875333247076259304638542813238825051116548873331158183790105473051311302718312370788868248206703562890210552539780572626185588244734337507142689148497747880913092707768198046873656795449797230570061873139774852032497459402198681789191064858228636197084384020568937626332953870183885409401621952125202660911685558708907777281348821750296797509730872146445824654416198113021972241154206217387978038778642229952975058442400687439528336493677742573629957111210167282594669927238709465474190534870691047630161124032746752707056937859468393075136758574522316070317746664188599285156697501401826132089259798986703929355031167584888484661389071731049151194780972785389840115366928639502028362024146161186488965651722521936740987150753511203466427882937552208544275389035234817086232431307616691311751211517748250479640315953375291584910314683569725471709386941297386447244858334725295453215037830491368614811718027543399878693951102477194261283087068324626276437004389220491284079580830157661028514403412969914167305801012381731011025246015701359690556861976274881908074248562707769066523695694927225301048034737298187351442259203432387484986702524342730998982927110180425278720209917653387973739822532562386861111447728894048699528837653179772199665772957228249233368325573266244261410173974598601317989823661453636225518517635852987858702577329140911766836671776425760008599941001719714180870275533354282317651758972515577437967584678671522626173843941712270213479466819618387009139435737970348913068958647849470369504829024236482981814668035033003650284004237356672198661248778208868216143632554772630268535373828413797171559974940536754897077036332717506198333087608750082240826099098201930975213061141257634387519294096720334519491911424822691153487065859174628511951147974111022798798894879728548511148523502795873597022092651047811086531670336319833744675241820175340232707684986699328926998483054706279741063902673467013727720489977748688585636495622539831307937021509565464368007586252093399166835667061580856308476149170872544481359552272684676719124528982226702885010535200159956370150114994104528500367386280418573783229342989509963840004538543491039433701935345864507100294422680206946865139391548137059770345817910083966571627645310679515902904057186570776267859237497922711501552983296650379767210472507857101213674340717245937521751474285619635315967186961830627834420036026676778635671442681340057926949329586329759909834204339750367622964300893615250357537084428050402119550671698973738510259735561867174924577917214145357328601562572180626708183232074380859570856449395623630875737182780215917108956576343916858012522142955478198794667477199118377155256179601593072394889564142864035179316578545057239262752481479924062769561179749026989762616837471425601454465796929501234297897021865701974104579780728049850955498613798582167225485171995375949535416223176268314277937011676161645971577676876357039843646278785783958947199945652611802826110361147788508341106813048407338954810647530466545210448662799491167984602078302142739165151032980183031981747670457664892425168943702375434265428765230848624802076903138382103743885835837819869481829037863331591264933985951822334204960047077517901340741349993869868571898619897793125639183860879615069426018738576572402055083374746882430583908937107892942819999472970321501874615182610430434058635381097498272312640928834339900023214304212868867129176151462827560606178417207826124057923342962290768441278194234098335125457982690910150063588567239764158704521761743803130348157655159693394553445185179043981060326486822607590660799899606294690342086273357744131267485864971371392758506023855851747149715294796597022609212245321988134481009596847977851677345798676009966860249117708738657342281181053199082477446335372110016325342730065598300096331866237487701896491379927433938072560481868920771840399311298584859208046759105559734593198322097839829072439382014605403729505334707851125688542465082081682640152144603017832732214443644237183015022144250602470074125359698395610356832423255244362957538613449719468465616520415029510740845569638055564043676906336675836982186514254302755954887330127875994572973554893306760619291211856364466696787779977686298601560229238899205816454087125359114607662471481230768495347983770907513711427100309603343003801235914171239100376992249229663643871470254035736253283416141932019339338096714918793321892951297839134322756018647980552576721801163063105306698232205713063186251166615997571852296571392774224849980585767915016991662705076713962420698004877795173487305934013666722442200196685418475458413003724955018908686101921352655378861343680885410860484145505732547750385731571777368340942062481921981041102414936123542582660854098767790133473726292572459253909695618377618104756980990440300890135234600507044747882096465120482217122074930615799178443626535485185177966608371093394221323465323160446556374846170617518778308795022533538655873567599724133044829210056561916258009015077528924555815382620088051147293763614722192671429647658821467228425990172316148046593833009172972125442314046001653239621465103899891578009589162515076222094260224540098895282645075197529427926404388662729095060251304903235700851183609092669316701884834594518178718566517351875812604486302285059768037870073739177253576724438074023472925124544984253225385174362726426439232754641243164783859828512286359157383362529447407516180498523613444171431024881441423451907603020345010103377680986226412358592966632107719681044422081218027975749755328669661207969047832535507518219586577932554358231716769605757492063772552402639858893301306181810284406292324739823265230356342049590020457526451873194297796492473345721191577398377232067730560456093971002390970169160344609820791235086170679083009864921668432319979543486950193759360405050743073700251422449405090350428335847985081997578357973578258402036932839242070487054434194026129370473468934069528520768621132661626234008172598057568137297418405498019735782237603567410925929406806068180553198447216597179485384134337878630928968793748905003123512810477773231015035635554815503322440829210043461725242227945576319984984165238864442519793687157417078421017429807712862169515410589465038634454614599500214413922893241465755694466621499464525129632495843103100200432578596308554360582098797305019916318852671683633729124034183605047512567994237081314029843669055448120433867724434872785896699850682386572274852846285146022930503242470047938168530724824080796867465929669989186337201003645107207833965121252651912270380168002729856012393552091664193107092053193899649108882146979731757258903886831238341641675970022930414670498518193322564122314522423415603158344492729548707627129789108979196715150411154350858158191439226692152444210387138674821975870907960313306321833653612534740573545011276346489283417304878949818464075688803547169920514677375934076087028619524378887945555026590742410339525203683427511967764807891703483387813397143372866248126029884205441664470205879108613728607491569707152262029214103991767232502881479433927296072947153000520456696736958034952990887941188111608874884471133413917229038191899003963639860517449431802094273477798846831612532087390718708898446254198007676138971635292476900321047267342887410287629610161777265620889459596989085984961628201409914523784005314616931009437541019058991740057600705292311677399683663586356948048221268790823526820348861719384890962437689644994599286333029798815780911518525949651640317182315785056140826654106283576532904024836226143653270162387402917527343569016822783770872634920957012127071619013154887094331709648786249642920095896314283634081564392275550637825202300130698205039426219763977062168704785290731417220277589336470127502982049832008689875877776342578645461909833396745309650935584908109637844654706693077048110309137081686695979736765800740425874034208955387425180077661644975800041220967288029541887501626003702944171822481506080479900280273713415391935515928715700830600814888113691321752852346551471150678705840967358900811126137018997531431926129950489844537938982679920998244515448431517393114975586949810747514824962252441628497582018601372133883549500756676014795910609602088074040750273600592210063385478166531978369036382549354683861716806503826898187152419516794577467167510816378099323054537013011337908107271087289704562949332812775740647703537661021542592922027793343116493365977281569471334666908634658573239807492740055225847577714998917897510086719166741478433769573963941317796243352629394365233130223021919837836957494561404302477499938691869187890373925304130217957128631700761353627640403014124030427754122590856250909301480059262146816981517638962873346667514176089790263578358692868815813489347234556996763796020360480937461304607063972149646625855863556638654579609539184665744216521734913530306203943308040610934126847013785812214965840596684720319764957460535339828892337630647529848783885590600236341125832330523013484052013233324612523493602436806189605216428660020857057940941489892200965916225200647601026264131324424608966741593174523314111599263468780142971121852098709535322571932846742018550014580509942227775256092514225563198084344117471177246026792945556153706784745192245211409759503619168921911714457262501982800025911357845617342928484390164538784548277785965139766428804370596044470902381984340578796428421657619077768954176609056976641304418460098858168627846240739383534778069490411411839368354759844027110382411041377299241992060230412578526134365494208090253569011255538662886436777044690701322397502052891331748863755588115452224803357150428976474731206740663612817537074089779274110421145120580463749475672318825983544883810299995791975953735294786594986689327905851180845693160032741541206977626744309659358357633113573187536278946441493753343204706115053448385433171498123155170629477247576048766267958210056441980579212581314258708119923742003921348514344304096276951642345838168442807307416717524618737531092451281603372407453105911640545312009851421695308341068467216922839858498221240409980452145792522587972656276848399858690495669141124057266138319059115049428589438611915598590078298120033751421161851294064424503312590238688231733177153603830917200370837655340176110739395801716091431450177550080436317443834013417140111047786473670502053352098185344628530018832914060609235275918989828080638329932603484633989144558383235014990348135117272787450530525099512558247921697745760299719644037752515334386863537314464076707437097414884722130415607637147428622487757802912697265173824881819807740828709071221578524021796905605717277012362927162720752230376930606794030663804858987378427287276143682242408977025953441223407988948149034794932547953833349826978942536267421764086415920943207769531599368788772976914151809862961835889560577945272418696555261146039372305667121738557444122530630364787900100335593895909475794965433720759154388343343677547465492640676737939207378864356105651620405839481932611599472552566000957774482670856680524955789530163371626972532972098846495580270883430706287614925595763465472591067457699739075940586375587171043373204705953758567838292946954787140176064312416410647909636555567535155895263037926597805771633164069276027238458498011030386644808216681199469730220263089555852425836699256620736429559461849047533323304818662055240271305731761507299477960017571547156412258876930794923462616183045078721856120456498924306921102501920560563907093045061190285557989941437848853421493592016949574432088790276014337917061588239138372907138766580713661248003014674185352706439121056096018724347754821332390559759942981086870504548186365324076052901038776371238199286280502420596529864973392622656494868770260334102061495950575034516639868703946995808710406766698036263185464263814093784519641232572572906440225413133213030289893780227123154863837249787577158736889927616405665281735875235414081837812432049856782220171890329957227599534054320067151986811691017018999428601803301429637719715647164836697575302626169393400218547388541448466081617046614201402031315472869031649900291563415947063083017810800099946298273833245482723294102630896645264718782989031619909780586868956519793932323776389228551507978500735525437557036202630540311987454853290665526194799694971011288295932667156612891372339874966428524166626343313188291564178349891500862650082067327730609619186405169386412846890822431583632054152764826564780042169431669778232123141231847261051526654049412136420767967655902148975580457378519464689948251830436235777200527871838697281017556125797440658829533753005326414293783485686156098168209377448859900960486323330667654243280709221511712703307797102072615383711638060092330791848438769923594528569172497789577911568626894462727108973986948960849247927683491428091909014813671289752448029207814957202936124435984932496544331016374651187369252332828031808773312460550601787139215521319424555819581945676758738803179806404539732683725415077717635630620979412997912880006192201258487750184383078298845491105629439814225306952160009847879960953670456954982954250633424854206344472247660798584978875131701901350070044456857930155889100476760403723157844109875363213940953047025270188286990186662424744740939345749831325213440295620033351112069050694136849450001388980212321662035067545792894112018289713072632061288613307246576219678769468209760752161013313453747174964035186190305780162075308322598282542714007246278310618658279995514899252357671603524555660521086749087929214628995037730830925886871512257345312933724211181711830248315279651673757670690388764224581576304578952292117916765443308875845059044895743486552491039708365523823412240550040843887069937377290915123226796801950167496921913571382507040901404561042278408289617543204934754448381313932649305193483958530447533265503793081724639891014038774403625571779390094538893794127522493528670263695453366045892279914023627064608315065505588096910608801094899052739411482207323083033542215008381013123794892029175837226615523519426367506094797442252865100864011128754145601262014766865383243318193712085923578106512753938948178478450246323905868150895551627240702237502318254572436152342240099760767064079344844151921079775690785023414696810491030191350394285542494317974655087217823644359617587385161160955361245736914644747344567574391557569965951853727551284167856543188996102078239681082841484000210391833034144974448012992969221641087433093532201759701471255141203608264597226152461626792180003319096562641966032328318057574568804649717844965109326557500081759521126499980745676149991565709625427811971430042424451724331378750606052017851145603601908242921610028924143276944656596444877220191872472295294767285851621218194762338486659171142446802185106136407561099504216239694581953846917911925632498346066435726867029799852144031601558368575903739343188284084816588713535143686354277209365926290502482669790405065513222351167164439572190408697999191279106140657750962379671184401769663304227519352359036229336677047881365119471950846618660730484938001841546774471308786842540376666601162772202335912617506735239310864916903309231091737263628714425937389808170084801333775497791277501658362717997995669771879567343149685098098989335588924605160916402081997783490603863630894801779757675515852640661981922160621653732085071475966334920093479757741237856567716489850977229752862207615064554233857900634672490377781897249288608583552094378479080723788795210919354850491576619791827307575414703577522162298415293655124197790836628639864783296217364465049559717118069680324621878176187793619542839658408607659543926508351720074980959714353786447163785689052583315723288660300261119574947085339782703480322175698887322912877712584311215683870685582947743392006733069571900121769710581296550856149541421199388700647304543065208790282153326496538337223301607405661355507291300572287024157313994406326964057320847093332588771177566910459110263542260154641923282186848323318424760399147362525776146061993757716315460519887983352674620208297398826700744968597478425930250946579542982077004819894313797981028574982977279393323646213326842578177113956868454715384065314122411234354354367422082495824389180090909330900811933725808588720916004425284207923655214979304414299934150594538563484446153960775518254298877719365981115580167642456080113777271764793368420246659604116301711797738523259957036860564502792203205060345038426517992826925914391991827332761382405492954272313355960783625548655843666381471849605038907219554976309968644380764438805045285321367828757122135771330309970398417606358462823306025587625541449994092846875060970357691535534965044047610412406571434281012897878800948647988625955991901933992660350212595903108790130024796504024397791478431936666735999358444107447771612888811007341998352515800540265321961386631550050338090119258965184489939449794559792569459916630997665938823065774169389487965619155043709779333632941140934244619921540625559921703638076161085024332439866413278641086322305182852208379396126790475690183887473008999363280764188935576374826950453806506652633733626826199243750504170824146877148662666302998826862611701461581483215603447895277725818416251757632372624432223288887991036289107216977826313361804834760616074777729189015739218634317403462896972400561110549733474149909705429714899991606403273167249663843683232441956807018526358706881623951690527156749323269615908094041777946456449917582288085535971074083684950354119560975106293810436400734355894233115482828595837133500647670292729777765165196380675238120548307949952656367419677595269164741245869660352236027522463003901116745875835900127041595600793349608428413019468146324672983259936251201101442342831345710380416316176589189709754903636596088232301248149393210150842587796635750911510027333371440123657023473410411045560460212939551236326024031148088520655149140502408645559470933569592481345802798621050128469248287450301312103038292078266258823794480479833607141171718565743023160673156382973803355747334505405987701983627302091606538408615639745962361305721448552970165112136602728288529971119884493587837359551243859547850924376266112352999923313249842039759467135161915224851392598446843486651565123329182972060973437504576142440409173654703670931089157896512366308308330377148322098419520009400970386176615008450148824844370861351397312556416376964923349694673545763379816399733010901105402982001575764998975780370923234211108590348166016634919849493017480743581372610059177516650329718591086690680566109194915052744377528499123632390931259543125800472784958317501163329173078148225611708520687738155217357172418944876303366823597705395850497658152131699448553220649086336674801054267553589312440105470752081537786272967904528777552704757855763630008242021873762811296024091519830859307776269162585152651442481762507107962600600084078396366084018560579847600189909247662885095971940505230871748909937047145499760553845041795538060749941995769060391748427521560490730479981348221680825579609163140970041769456564951073044727507865648678402082112462401087106332316890191576883663854394532206351923989860120722677261184954177446254729041536978422451107685786078866089347549737917290358496067934790858033961304314432418052211064157082899277293434668882550860650226326027241640512781305413886695315771233028405323122518378355061966101533969590127900637721749900229880690676198667514221890699664945286412962035515789141535012296412917805550827565748476420782727271753583444220175413227344135482867623402018885745284547777125761179275915318533674323490344780299381129105860179419364262157266499096377952412281682980110923083751788771150395507222589091329051976767508964540592689356798498209994159655771656493885854266432685885311428409954993408007239796860827475156634138185950926772826528603824480508969357761500515705323862617276691449936597121947621951350640780656681346702218438123325064881347335420963850351236299067934475897806506455824598818425647832098804793457690551825323726570533143846980622746284114700873788241213907626640169588170372358110428839312230455775217287510310933723744177016591023185606806200884196266033779451097371112653587097782397157659271563881678870616391527794689442243116575001940334162303602974010040230260675116573075952068473597303313749350285357934219246553727416884080926221215059746870484670652942876538928003697593525742625308685149220391756423498585285106418399571934128655476111430634968514361016407371646154569766340686680820675345832051531076503440869965756549977298840650314681265426159968604281048197542612938034374408140146934712579635833055724916718761145432570176522793298354754168830979048402002914055285148606785353178233994263531973528497203592236638009368044348094492327277845956907759951849134363008444781986235973166029410503345051376676543225968640685323396703598704535056666317437256636558868792055265880459162443197514662338888520280034272841495731678380819206481957971085918401158162029720000189103298969885064490238119257110309786025481303481864861892681702025693067065005513638432668659477651347810389550098803157634295744189881724997793702441697489549108820343326461703428675647247043699266701251028463130260200254589332237547491269882987416627551825925680293454434740048484289754818541982037113000064436960801093440673847779107080939947725565297394373232081900728002852427163040183694127743085600006791292341857176018541043497185778489545715406077147156321484626895223713577011474315516175579342475565229892847487724982586918378028981577447439505344733040282688007883867093920058018704805551602436900137757425777732840254097599151949269058909578249284155991986398864483686171832721494541016060926115517299390223791021868289576869958796028901483430309199003701838727350580392902163324338614932712340360335481388854153676090957048665207859419547876089450025195845314912515589634627531579116920553228901979749905555726281448125224859141758376306449476911062057160990300446458847018321428988579548920601757313841778533611475657670750086059290546133270889470959619905132187381214753136432816737318166637931331358805182277705382995760378260801657087189229134987074787609816176754220535711333813893899348792973558809881619696857695358056312886484269973767174713443151387048720337462907431632696849044088145410812357575180838731809658048351248677624894303360147207724278068089378920961148057408218974998705092890169657909647991926881504449005489356379200026443379251179844218063860384943811729743935853247088073867305002931167258534804946369874577873454479212717187514800675939654813574873623015769943965232966711058330750700121990000703076347653197010772394894879199516608014562563544369186776542296498765131165970093043043182259757448960591117897369086158010384157308521408418314023515578026271836814167955793432451208005001192123360234326190982957990217506828938394640094309722089542832210064406915033399232150297675959107160372074488192627224437671115850532102592083910172423665396705782402002388718861393056774768597447759675178407724638789200899147409388783024231910723612596660800609982055704423770240249270933599468352890015332329887537014809179680646004886126039684989412529526881171251662434805869203278965159045818848999297107928998243756787443029406679315962029251270064134619941728258733495608327248189228963276559257099026718528591831331876187193107045435018527835967481995940279290788543656034326975847915449990240632051410578324546987067890741100412861609803837667171957528425466905889172328802630824517616654859408983274591442554408178496534230500702415483719327576809051738891517381944605712195830832353408726407198836994738987489232394899601028873113569919695317782147269635978036868960082097674809193470992446001348671900034706006041255742838910081033324646412472669408139802683716612635808579077519752842033992536015811972780720646720099467190865710378968285789770757769887708217697632911055247666740071953239461490564416407300116746663595773408557398779912172467195253702333158107488880813624605848687428595691188666128741716362013647147592360959823763973759471439569284127284070782589153238766540160690040043326455242092645548481011230375803800568878051354680471168704936795070769321110251760151552511996143613995314296689934333848423767142977878662607473837820171446588808218948047133017561588864546690068281685336414330685588771661381987681427165330961922478538461012836693870996094323389193780566569373684711581625177422241667156091009359091812393942765173947727110074993370935880663350130607378035806023196875923673538501455627801006070584582472896464376009194297797081334457734756263882224953281024672114666513039075016439039966320196831313404794188038620265634251869191499149760401296328332378249401771810478346636096445955192358030937121602793884297870382157483589828599962577606854362352647808993027616092543522954140893937290318054046201529165358518523973973486088188775702451851903907347361304117594719701463028690943165000133699851635877551218976133255523961325327205409628798900657169547245471182035359399249301847019266032709625928242560887332774874267536294691103886739970132085909374473988124848055412758806242499744597696016996665040950077150596773460004148887084932386966513798277705694993379862118881968392342872868365687362765065971282899044804468038534643145075374031660982846566089791860464887130713543229896267766686915514114019008018479825691647363344177145892679790699548196067232889770035416949639889095715035898358746676898248788664914544654278125094292126468925436543439960969699303387252794113682450837403531045690686161010338703954847554188706332134267061901902858817514118054044047681142809120742297993540245887690100913716843283877743171952700797701399423918636356501508975456110311914945669435780856180249851484947588611735042870303873253097133129037811559763365170303415431572428831335829617365241702584448897505041798702034536460132002601416812730977559324220618944811069006753681223927286620507538630647238921568449480021148542728007882126512680239847098115638873205151109039009304898687625853277139789808023407092012248423254260480106546016126995617888787940604445086566407661681735870950279178435726849584420697570161160718993217169521168614650001720664284189866155850747861050021163036313041671922119349969853087338642627081411999267109755017218863706389378898892121179291456295167005192945207776565009361192068520165041147612120013354866116815604547011896108468643738176348539943482614422142603443213449026101323208749480561814078648655907590673658649278255460408437274955653930547332050886809495354527036463728251269260136568906043148031112232550341018577534633432109825449968372919440717354605623271089649914879064911748853031291702150932491989028371791352134988654525805341199144414413562934730236186751044969031616860213149393322034682202322395261263921016193692334405783765690952200478848376476147149958652549357641935282709008540673962274193860128332257765963372106578793130664795056512444987065039191103702731229565821233528475948736500930651909712858723248011808563832717935800354158614446767349624104393695352708391865670271957043697451937355621812481552145509639005986564162975413177979735464046781025558136677329216271365120028834505608720632133468721989625913040398904644898369088858885410677461675574128099481048468826551917940840281228613928790238501185905470635045709892431625420205810164602452530886023042137264615499511494833831254221723900503304954802667331451776761975754916907238971981214318576562167973888486228857426424240315122946842833110541324529254454301739432575163142718961524220889157315328472789878120817101787686759755679460144445262071378639452918622960686525042790864080662378390000346929736632864570226799673777704878495084863012806295027307229517183647149674528884279225636296795898643361364770272225608040795401766121153857308348529508923921378421044511982714768071939784172463790085323245726344328094068017055911374352590593943259937918372812362979561821704992197925709309687493363645456063522377861185650274095658149799450848542372121107294241212012177033768859202752309942435622256030740888567043656600916201514851072248096583713154163819454297178173241565587035150731755645084613417598541917929206176737447117137041244409224631963980554123569513557149026660356184033346664310009673001677403155167273953375476208814763838708002785256303458465299146273673806159133079946515495832743850705492815209064331649395913493230991498095162319308403706005821498438499354488945400322430917798578763477119779387202317840816886029302539802405652689076412423170844605472348815206110852985564044190598099790548773007726406419004892860681698911033467210085187076658862564699805857871976796509759349032950321577927441783169947608152507721617903855854908706759376252448564760988187684206902097812753493695433706494226284296625476529426315266057292646639952835621651197355372278116473476626830270026285607057297544047750661647974532749417653866287265922751076407331885898040983305715431764050324228429460931654029402556416970872161589218865888533721841479454526624179533588038872048044123314845911129158378753881473013327520410627370726793692116734475704519071869483277329407111006513201254543099411145993940143907282842185423999939515215644789573334040154735872553796673034813119843144490291459414951780355192108859929973936222562001818131488719372438665926977868537993067928497433859587383454954779315798416636822193084809115694482412353060228161220464123366794401775799423733454821629904621055538486993777455966310840892651554406805510097918261167564468155538326912479836321953348130326862273547029626179565001687092012379535984925443030587874002135520496639753325451376438689957622320696400063207033528918903539193954624425213330197101823693410518935117167800601858273672371487684576580387197486178822696919954418867259833263704142852154648417851670653305708993862966453248359742266369673391378840348032521285155454557836087988421646213636236911360253043212982374611869994060221488276422707031092641065272891572303968760637494943596964596833443223231596808859597993343820704559707629358070329907728654384312779145062626333423093117888530951525337386800884474114552006644703401885488299494295717566815464703892053765110648197316749826925712175909045350095495386606933421318874370732803262394793743694046795229645424272376312933149937070300453762080241326931592479488351505871277454876521458652540185430111805619913076309807660795909051113629237938948541237557902450743466121686336541486699799748125382023257785766933307707092458068826364673610806285958644437367361674783421573470449802809606722928258000093907225363553637414440656024263214471774708175704877987470557222262095006444311404773958593644049260968400475058483662821380215318865352649008336924197295375185130354676443375609710764422105136887853817011808145757285292451736014476988240387529978790608695907776638409183522430865309471610225242143375151525430013848336551758990401800394011310893479621221465440261347421670330155642498746730716253315993796042291009260868886092236079009985626622384093732715461176276632291235478920678375473980376264161833769935868992957509506300520826892962853049538492762445188320324884266399176602763939735915371808556221167305806683324078708152770660158767673429141811092081077929832745671891805203243784567772727891028003933646747711012317149100129027342296825171291367404617024315765834579909265245343754723815153154678840487992493411980874502486998886259136548349546554722849122730568443173283775321794742311473172064899197082673179738801406669273609887953897341189917149570375807222087464057686384630878680573756661280495372559816165268007595648160407882664105317511510867822106338989016109654076915195611429218391975720655491538046778617650125405913101686563143705055922094265231395729308421628408864246358834904796334568737730906623612323533314096478579893650657515026459460805191962112030946965496431949999171276182248647634952300890805138449179101543091008623743085912461221175571379872089469675938429806721014415748965048888751800458461435594048610291734070246844157569595944092855120879239174251190292218207377480238662592098699954108585040814090192524345641724460669791624677812407702197657703768791549425507400238640226625903742262314653782321375616975923904808293809865086293153798776327487238515405249797933713183954126333628274584315572796351608329069825535744606442007075109533665927449368529279378661888224293365564192017113338363944145797868528164385029642441372511033670556673344468555712879943663989417067281900798011626009509832704049067782587034251905519158889477860435473617949472325078507749266686368861991707719776495008899203911045092183306852299394034984150832287674249084950132892890864307976268452256634424126696642048979474899308225351626986963094267604697833626383761993558201736065777414987571176144233801740156419702595426154818399168655419573341357177894713400391359005883023695890433178538899635196910083927590124632601956014387114533619795788844802389446577684576806763546119925590850979313797493073945777479781524639173531618276189883785110310228828687239879353061849124787898094840447907089593028348591437606524188582471470252760612893197265100364739747628645629684263219174710432815111607961699888154995988773916641473735716724662880932208728930381955824209267673314867353565212944980946695063888123529174161221408238434241349791477401731903514351990029488911040921134517157966296190264517094818277575780502673785983395464826228348950930448498457706050461817228168797615863974297209735954550207308601508149436700727403045079396187133432462218694954508362967354626123277484537742479808020811713950887333092732857297956837454212210525506255791418425838834498473795219534904550617031762186895282314790449325228080299888510155550548114384690560841070805281793654125882824561742795182183965385529215396034483647369654963713334560879115389675273104087863892924200688747410391949904877931040717825506021578018092540717026860052570716168660243134305603631328187315215506730088240680561309818056801637523554055414740549868958529258781462961346298768539776515083706091750530982349515648712910526047856224765401589028027091729938706582480715963129662880549329147252780186132350337904697198190020621222387990615521855339052544386550105269227111944698047301032290485214435542728999521824344635902453037155640815513791342898555903301005918714046456898590988299952442212865168572060751871269595339760878895552381083669702523942979610737442537250262763561336006007183332442498322841037760220727492832209731509655939219791946577298707907076740144101634431384394813960926247003603673587633118433852988696520955252753432035917218657198246207915014547787818867646797170742690970855099508160204441115207423458635776676676508844239585683700071452244566165183078084252170606904516518989980550447695623256179522734758521616368365052588924911623408250742271378175314341194833479127347079541985555250755584707315547571495663439170681821215599798510924826487075368151336292720574181015770222296755876624863672928450274726509076327346722106900922852417723614028574661073903130093121022539337590406359246812897259014153751455085235729931569148750441274869966146453638859110223596560339072358119628709310174483999523611442084878852426314703948344001998669981647155571298356373012149303688320416826465700281014602780399296551364345790384322967159845070721809728350614756326476553461489452653696454950702658995662915514240692731090752123920367344492294196633269181991412589332422035497953575378378316803877101947618335643051514342249352144810164791210542499694411212832955213485873240093040380451191596820806779101557012028741072233463055572143948412136227900992534280107112264039437754042018493865267229758937217915417272358484236630570921056887422092145995425340337764970053789669183802831081743652774220780830294598453373017815112997663772853769342906457419582788647375836268080532717237821197761917249131026152329801330351978795727256766400286103565000505404719171366699466003175521448243235547238101605589361396758738046868365182088517749390360042962191803300118915289760201168727571774183011524147254344367632478561322277273224500955974610587976384556820962754134901337027772235420822159942398885702291639510500261284179252633606815348781800439638340487483548492044327963526505376506426528674352055328626129503995250553642663948131281590462026596077124448962946336828009174244833081665304067454325177002902438737622902674138911101238890943293751298763809156903580753363521581886435415984515189373276440970728419784867829201273071579667284628941485323701935943221278635445829644110184577940774553109268659668744446378470854333263122553505838755550372323270446746997389017180369743655379316903122527403788350644036127940653358606531302522766532569401643396099163536378242471175060252275267826585234058220219070935117155410904075847590303726308207285799468349857945205210505769996216452942079755416249614520600947375657512342067678954398477644605035542729512144120599412002484713735347797889416486512403715271061476388386182915503667810351630439930380849089992539722185911101898409148085566526196026439782636689395772468841955785939570701133244136932621920732424965367071386551157191961948535231033021157894327037661508177931513295841392795296485627735020479758855361390009004258405630496772865913704799509684094390879694465114685134055243211864763026978082752461854068192893068400372911190580126930781277396369083299568125603686616645983292338070169931287838679676435307187891065775321143572562905971670403051507448326483895136386165746861704231074754338428464317326441861820112631843855277502126311241027069938159892146414800709681480235823393940544484697578301548254998867746862477252323979204718263076410959237559912641774726988543949602362219354257150794710424920139516389121696681799153708756197643157957839032688648914424380876609917601799411423050800474681784242307837783272084904497714423074355402922394702564081306664495807546121177432452661613225175582412332373640888747425003654114192964226396775816244572425876107547165746488357571376565994186191886009584487914963921030578075692506035666736162585064050853304507007149069478519295346777437017604684355205205413169026625602921847204033308890453716973540244730251429781312384050491351067415294672050033702620402478576543320676790704682602789244372038255679339011542684705352822463444905757220542010505954722340815219249500166652767757004247610775578735200680706886838385518502769200368785663301214245437371145031413413603329007065977342062961843493709938723310672841554990422997257617674031649165603802580674411857594687376302278185876740044197289697493063781983994984432766897920391153467150109312811093918246553310861858584831183663880331620136292681119032816821075482657471705214336724845291755119461365884500707257797518192715352282844942147811984770745449101175670315427046570595976601960047078788421545491414044930702756847258264302474054230155632988521170645214220338338002777078427300209560952084131525182664110875448550764557391866361620303209555995512424770447780036170748480396369336247613294681704759773503821804423368712087341918667691252397995179679043870062862686033222348022714635047679848141428618036091311953539744251360546007975333688872693785934016044286877187335083109740414644354661324799097070100721748675667789332440286328366429164074197716533985891443151809109118860884560704717743172903067932828694849681366273047722068762483024333762897158107584237101447802653880670176442246857209566519911897599236713442302826499355753550177661849335832270455005690590961578988776640719654317886862725207446555972124339687494388379999313825721242638952356549447315711699288127472208816182095094895711772496193443216376628543759775527436113700762707698516548769066501746934238956995986678085552869371907812102076632962311508682796023354262450656138379803089478318124835330898201758812377227180633463647852703442178892970666451915347482152211864339640001187753633264362878371381828894476586869566420949278390479574527087944354764394274415903398067355851605454190653165482792711465696812695592520061669553066845402895468154186728182480044514139486296571409485823131107253868405761622944770474690151042707907396093841632007711533280655067218910776019860839941512069909629067185698588505991443202979872339413172054677741859015196758359703679376456353848835908781501431952807581521154889705592119615105848881220937139576844933483480022110216063797123616097797976316915176790046304823399931477295211001074518617333415657049425529032773967545230205463265159083971165966722839233568903720275103821327513540803973583628003511225066643829582668245524665907984959638817035288488341416092712521413576831743056439787438930790871844027965816564606986009340011652621754130585203028844528254253313894088104759642756942942724334490139810679228630180370831030114149360862245809780998213849646446408568415584326924116331318866527732873679696818571088104795972146338916245011359443398435391687923001749193743416551014620572027513899527157398053665662069166718289967019407128198747520351730011916361360828355530047103885915823611179540700248388590117093827457585538755267991108139352722251851520065958317797505420084328099662786431291893981964806255130385314434941421048825390841642184943690797101902592839998204601059705064117229294652654339404312489218517373017768354755400818342844365100224917823649979466133520584417347571024618174676770883261413154417779215880083114149899312083524257095573248704565359865888403841506554976039812087464895604826892832157188137847740679408380226917700214939920738034845531431368453104461171407497935913734780504196296178693551075906304297943185803204396957829164305385974802163106184967375702926353496638556911046486009576990278186282270345639254571404137551884592796725886773856224273649747849900038252999342706743887827147433613630541212454498184946232998191479926106714889259319846721614693519960687060727213307757647386326088216823209436549970452219345100577001782628780822930930381022175378006073642426996672921473118120559762450545350809857549207733348092041056377875314075940268628092951077105307170131170730235899417875367765286841873901207176110236473686222684203724149355461859320476213287188070614722572087208198289827291480147466043091021868901681540378822491377902388822845657808078569168272038032340921465882315199716691852484983387839240873569567258295821146208192572329176797038882011443143568772287363510689211279177142930457209187430137836015571024683853995475418233268267796028521406052919482942556301237068027482631728887246967457746654053577076513255237469299498796294087100290105569692159313718667483492422048407917548390869022513625016468596027156181380108748102231900283946950105871864950787900878612019422139462175938906530656193098004495608496488053508786036109181587633259737386347370550535064164354112056382944000700289844120225865978594323848252054039098262546603597072631635174279025269371093767771408359105977439949858808179350110032137112585670538523456813976295429240128225828675564523414320063116536054426674586160342191523969158184802253418648253130951125450921893662465992592243731812013319294072219377440865107867602013666621144053530187960621396760205336837001396075944608289376823554661758385455886302355415249442140512759163675153946199035539864372688223294672741696054548598194131634470810428375044321763023084016548495202530144557773406533772118783138675923592233203290106590666051523970265491790872393052346979780435831739054362109132925357390457572013033753162645554731391577770688433666774356205254746825725476755019684949520487522165026365564587057704699104925234580444710341701964436308845700838337453081048908455252033625277757029828886814840585979202455075766795219135944886075960760149177359852956539804098314688210347137929530050352102221814863980949179597321323604779706528725049174076142788739102256917582494739184211591649604311349000280619076051365549184918500570639428734450266295155136630112104839121476978942659427267071972732613671280185803344005434817535088060948786128936019958863754450442949798968459474585153214787289707433835768842670513109580421989998342991357847519260603796502184409332287578412303151539293452035298683046334919734474620126361708468920490283228561022072558280720325158127553705596823580169784044718729936984254374490224621740460573101733100342408019832870666459761415015269010235289791152431040982094515358503554576281029892060731817141872474194805807771738017254207964674079226711288743637103615451991246264488484248520518655627881075536234894272769187808289360435288813566317363207093413834007511209587401220743647839283299477254141706665566651893198625220986035329504474742854710656847369998400847434789294248120862193879737777730378176266745249019258435783992616394121152736423703420645503886094187144143183464149841832946478733358282948416553383065567210936698753098755776583182544124648495060333470287233960304387460673339631890249046069362272816197020628437321915355715318267991946729512662498442337957008902672992707929738974099781619022059122139038968999265706184335805504304306626395252497874807088472396576623556406682656488343913095510307915806316862101616728913794284245842104401125591689441345326291738206943065372642203779730176933674029338109597837548839434029998662851348229095537613654990297935572666090604196517021343432503322978271239948196002045043352320668759549307016771214998954004092357880464949187183763016756645168542619907481815576820691007878622863073471047409704842726799413584256133519351778475757872870481364832224354544890518920400104499191221270315208283934305767995879605363950979576294298194463418061960497282294459209392009656113576278346146406970582438921162473513372157877329564428104678759338086093553445588516756954171227599454203807284245918095750150578038007918110228555403529170260108140349380799786987165329123583356073606347918079418392102836011255222412586134917011173808241737086438289778481470317301707177053047431492954414857011390877195410918787409063439351181128464857805093540922785494550232532547943716155580963317768300406261356128277822757657491212905859694405356207138716195331387700674450501338614652294739863631308153733678075538639312663145329221660937082225237160964329130752318170428674571404550848545648481429132687252616155577097076019526544036312979597293383427894146807415355584240253525388896425958390423850246532322220169363836957467083492082433066143597190692153413272465897580278977174665891743004716587991076205938388204217281331366552896182598617350166053322139217352862639058964579062931751933517523735713034700758819191530515782611461986581156649620591465764968338047082586960528709528222566724036044154625493813111331632841791099235207448937158482880879847059344753707059566377950928648865563316518296025249551894169813061989390799138787711874676854873796939409263638511846910669653468762019812286941743261647443638482753871834060822160934720033814238488983540306470301618910781521277874969792827753962003003934897751083347378077372563096836242369153810448904000798059403550192263990703565107538353910157685971044083586100880637324251932029992531877520695308617609338689111226224251028654471526084366853266561295519243851804397119615648921964359239357216189827967130736570589406300221866578183693447950463651469404207406702847389147724312351021244091404567486514531404275397746496070289566266986628223210295389440455217069509572358535064485742347357925691213955772824843274711339305895903326041500297180894825946166353007563482610221029681597516598188373650399048005992129430096767185416311607930005110476556332311193491840609212909934014588835807129980601438375326035971066063053193792332711865440398014015453020949300711508176345126680626071706919230454576763200112249384951617559910973047023634286921257613153684133026878116125421295812598532212990324954146236105631390440294963930538803388941228769752043478477348855040644443633986363575883552406452544536176206392020209736295119353602965900450455060168773895897637365587329390477315735007125313589671125764843308843288212292543479399353919806991706654800009396797284799628131121846577314645756242788014459439028081312855675187170612236333223559626536292996222896069043972477707855797808699266310629057522139495577836361200019208499140129059653222635539753078201275819905889195222618668520620084044253775049071892221454126955572803488280679454479922201409324539158965276269760836038624792373233632967146412632600294198287624630661208594729831770057183252491661412836196055271356810069979062543622034997110579817969582436483016409180304530931927411855694442440773925343917274595736295254628794695494245614163132316111033891811708294763666364067318604423199541367798586043553558124627500043147893173036300937702828893237692163402066835118307038734036969051714848775100117409517791493532653708749326557409953043396820098909675644030426385738960289862752858149641454846690030206686816318493548674575078888036867828472713364250891433873691958658233803261986974515517889988789782190554075743127200963808802470469256293917941352845891394154903623358248244577892217911042151799111333113792652071586922683605295031127237889008262244911666030170451033543158992452831482835827730057955266269043196927974310754799775542065803927295156578741504416453776495518961682850658902646095130021019614822534955524110270751834440862504576417148089742230699444437688624925067968575857410813685962095900476054232045982501287570180170376413353726642355344896888459399606465310246315848084690479780936283490328407707657921769521159431281765645801061091860571258915212375481189215271972751838620644561713300147113300122707793176277100498914494016674637277158936703945978310337015787529217326553181922700803187023433358248013697125120989216945514897168787297217263859280755028851487751399499178217657727459801813558369122512483760903383175277142498202649353861997710400384614512865013189932784618223394848310987049900047317334945980365371319794325741438120252505508459592207219911516676022381144072152197935682869993046815631147765907554815014857192361062277808267473060762302374638035648715965943393667490873208491679226284342335385209095974301311046922485046611926211996015915321980676131281724567830418973024045480250660761454279420432661383199961432508337319667585202323998654521385675288391772071941193899390878654576413230715967120416007139093276183958428218333463233633419659401928741383988724435962940610981623212887647124025899657552304820297203312367233961325197036577495762993020047856872688435311196005684614778791536038679274894784078586188248148787505622263432751570987303065001054627612477005443895049725295793265367249312652088283947974789933501451160548729486905699653045977197936473206574547806893443544449124174156629954365329730519928253443665002258097746468903093168065596191391423258164297846579822897687958493753792415026404738019901797391493650173831925637382553949571989919249868537844515839663916772515064115944472668985636518969330779652304253293849411088468052545558048377170953856630614370338209002175524130597223236263188979889110732982890821158087888645514296626306944125769810122853993469466200751361833577533707391059769367547200066499950955324034371063725630528753356049089568271191042840598005699901284546862820844351667812795411341806486664064484862197746838212760827949135515828191179454022953345737226662560988735263294779814214246571304248593120034462450199476698125819147536904889402464365425176246607828322511677556415237294401350304667345349383753090628791934707536290345261596513545156849549020533089305533616251932934462262019295469017922309258775546890508803968576636047995679174450403961369718095419117384051418643656215331479903167598365876344673229392973887107649388940276185723388668444129394816072661819016473790031441595492336308102683213093261194844377222946606519299180628026046941155968327683822225792758502375852290617812772282901854391059527186256083028580897229014264285861674320047778496392464552285517046829314844302362696913624371316989717434925914118816698774005589066523448820461564983414058107906372372219490313544280137816084561364312384713974235287505886102127454317733839159544571435690732665641810430233955787467431094958132800306315075665677260306776984701711251843975681423390664366854592902567795331543706000004332908117999751217462484305462525647860445433755265162669152806111201496300965628901146268156461298575060142359453412392300229817886167759039738088298104347499085198102196863994577619208399673262677715022616922273927119697356681568444075949271447380938562393172419735040466724678418512773205703913305676582266073320151364037162778756785774239792918710232207215152263701772221368894147111942157419234065459644483243256656802061911497702888072356267466550710600306095860479094618529113467133906881801480366176448551566052012175594254772517897161468326177563681684938987725019454712186813695826827790729746317611958507892124296937518388335185282405415487295026426278949915358805950445750377829794990812980190355976910886460157734183996736733327208927653851260488683944006923232652031662812279557110503060016998607265505372834307060807041975555389800168803432838094770559161835352909652754902242190806687481592412195355585559723281846821507731233481755547497804775910158091189640237672392864627764849758206892440672372596017311023655095203783322715912489511551112220624470510173023054703365902738017456787308132271759306095082663897558146036196797659497214320589374765952530672559320919737852669225424666785168799769915442280501772827306295683187252652000968328127027207851529263797376770111951791046795629586418997286862828312332191439272136845428424305213861267428521305045621744379532976109660886043334648613686647758491134485913874721613894988813599889652511883134738237403278124980323651586919417180885902623676741343541126141366227196110259487477562503939609265485154522312730365335718009553712314518273546427268882884362683211202230548792581597908829504448855892726067651728455504962834007954585232220273287860337977410234168478098876182169791124322681964244797203747089547830128166994062716540724722691158111698701326894956462117548443025747653460378336402162076819146398882248811160610375025555678244994446252263943764805328154596820514806332153476733729778296752742782873008930347924230706098213444862449622454354561978740424487575390217564642752319186869802003963212133066490094973221999281463653977437796960863942606937238329031949647469309514392193478354696477675480173725631785525328609554030276518867258893924430242331996899395831875138147317881371573186260371717339705885915770808074699062282958955629596208904200145784921223695195020236606588881108605416822781684069025278075996700445991011629218387378521700458893205507864628284199379900462324292866678933606152000346988344284764796723047571716038899768401681517946463864614690034881124385798544968758605899365189180124373655820309327608829373751636479770158204108577927015783774708621286851756705037309971719383586307622465677844796688810191715395363984782942560339085812955499167653456703225080048983329849050970367949520991856898258255896292250497037684873768144177742939850911976380774189788460217114778560616863413493739308844706059756562446424680041551166463468750661254704703505722067533567990879324218318009364015101552604019674908100688032174663497885384723563331476863654673622280003303432161881586347959564687638101739855384649280361171650253546377010733736032079847274056850863789524880571542925345067300660552638424665738323861908229274871846687374547355227546359116265913880379939908423425793275807939747706774802230888271067908609497450728499137302795240570763420463136163276534390609226022986425076035031159723054785084160646929377197802560203069455219312491373513690116530629546809167434966640129705607603229133932397502561530836372106866015155832637624983101005794220429771909602629683091743147223979308323654802632262386811294804360461895206997524299777038773827530435517187502695232952914331855902091436086793289141858546280097684401618633147955889232483270481585503766857934715788187613318473017566357224251984125713032121041180194498394585941831931067026196875945909907402515979969751295320399890859254562977440178300921715737781283458916659968219694594701722148919713629095779025125828831519581295964320378702384734577611194608724375772571982050870269878080560766539272254126600828899885331585358885960746130200949314474934972091515822004472254018957371997913360207657478963311548215197595678330009523582208928936062530249077717119492140350835993506340755376382360032665677683232626557260981494441244716908593831022694837579597426060485388609868835158469584630388950003297061654902968296067040262525246897132851860511449323445242487676982642026425424209637106458735216051740568371486000481130115231146632039860735227672952519374570873014800343772803421370294239377972219776682615538984123604394872332217707121001208170717526661666817896520172580080986723401842543572818940643790021697732624682906321712029553909112058187097455468083686233686998543525985072571975667718960918373056468701353595022686556420221705000186852782309757093542213894093781505112993416457195690461817800744497523269762252211523204696767986472460139448134577724257967199854636444857044799276076391344410686342214970877248169397338890695013080806680376701256748112202719193031563743989448935854276770829362989006840507947346430584976355254806977933111448364038867731613822199482077184019976998055710453585697984840412964411852844098089994441763360501300536802329080385003763837511368980066992224756580714482977460604658469821224041046798033774456647709171097502767574268853222679326858995406799778741668106213231293510904731375825923999275014568991535925576434149384153390189694995045287247449550411291486794815078957193193800520028023064767206744974397568128036193630605758563498848544453214341546573180948048534590178946366486884332716877112968174423714868450219780731837775114832519208101449388296939213855749622386639171527494692399637204792317935565588770165314759572327850233951197427230234726722671142132864302888771597342130006842285279682546377756482909425810928813157356451855246543390534549963529130666816988979990658940830901255352886994032604926745755904478351996253577173759326698175423219069525571343377682619133909503855497527188242074133843911199597517553791905848025550690458457336974275324755594385036563225262743702020550041258095588131806872788982094426946692519819578054559343759695817922305060034809983859971280131544561842376891706646479112818387909657852988605978058517378723220880101794628803179358699967606362075986829541051516812641902722230028234299206992177335354311759158306003830857367998520517467238121468013346561037935087224702172927383785945719769881657035770814658188560088051543154395784803998643595506999674241241744487555004539410992929475153752964402763882286743103843243786227456328850739702819497885042206497796071828384209336220169800363002721656186408571015009012782539653991423866421404322544749752544669963122620173254893722154090570628192337291257136913287291263726668032881748960345723525731391520323339954976016481366280376054057114353643663255938715314400356975498052579281651816026274859293400066823494941286951722674995445567298881840585422068196657559944400203802392636722914293280046432262131694812443071433003977012814358587751459946974159421125896299592352280591816019248739305691130966766528818506748039311427413426148532402312161980441480384703754553032140580186269646167035727404657760802199721311184957202170148334813142201074987793924262241578062223760011389085882633379234781208282441307451555322318290796569898545598473746971624673518817367058527271004411435110173500360891080587778957265966565084145553271209176521140327539620657095996351932028798862771072909643946648814212460046529062204705176411955330592500475262339384656076273479125104727395129413629875385088079168157677108319080552247731251156365113526024886969611276295430452008674689338322823850096806572453578092099333544337477016374091534758752521160592162290390086526254308057214756426862025616296557434851707777979309525053223379021962821972396391143199622867055782744795449015087303556885350901200314989947110933602962130537546906566691439354420482891660052300848626287174517389695359920058323622624291634610141412869849538159594828062120152141360810173758067155566889991749593520153645458526557918450810249424355352580001733772343623915385700805725116753936885176036420173694554689610828739385047555027668352963334773187097306414917431254480794887663075763266689810435468937216717053190402413241851561751778238342155178404611456481590275354843191333007772394333569598897139805762451243976068256183618365274142481657595100134308061377704957086664207689765450945113031096623137997973938474605088647640600985552927188836210873063974683563382484178880379735653527758220115742010031269629425682081227276242680427437609581714196322973692022047906145890751416670586407551409531053646302696481988843888982281585739236226455524097254867664069674150469668358281588254400202858433301727309385953738829525689071390615282294698297282826133888076340163136864088971100088277213564629873608013903111217091020991251400184645264438150171924659615567927602209454743523523361541407136886132186562772554889170908278244056634921419312350684527394907386092206220423312800978324545445171957131584735535204849394383213273677325539830665813134752740122767194808175734924185098991730959941737524862479797671950768304512220486404466197878417211207772529316024540786316069295669943173947410530200068359708799275609648786212744826913661748850187593948830392735514641823223300718831619242164452400068430657016390468826765634465693363303869359268282942627318549487621297094906353655563913829695651107222807424881580195513281651567877713921449017693614395908828896380940841186533505478105816194960937314222374614976924119043714370516314104051962277696215047359160144109663194703543370263765040375532895496941062209546261123174910089700611378743296830000939678755993786975723650637644618494701410636127401917461736575882918380697188367320393781970214217998879281193702088617598806162579939409329738909739138682635942834373365315828222610849173414664002688569277029376101321626327851166859619006081707840404184290855180107268461270146012764539312774827338005797747885271342920447918892043139308560618452134570895401126823932108374679795984320863043167907852835222835344467318650104589735324383470675664822360668869369875572936536975893428822316771840990207538508869467492331029960081341608405168776909833112795997882683526909551130578035081224753462395568503363871061341020414610271199800590830816501500078757580919078210409121661326113741348280130557690086066828942568696982000636708308397552883204051930334133782795910537996655605641296310539031194935102928850841851989348713761029591136545482872004802495547273316499999399853830144631440306904195664873744157801268743505729729935355490557037442807275743258666927405268778289544463948393134841375896373579899001108455882865833758902072310637696227626944068333606129965609583977122441308535864481655488568262705896397020451791561173160156681499377140088057225118747276449164422577516189470297527187112370906306401206414203492822573203126741729470754996156455070457198477613064255686160649257180041098144789344353415003447752094002692939220621367453671914903042789210472831131902709983679161995906789909581030586640575518176917859920300542165365932462518432443910705960973841074434152250461878741157448965139078511224302345510634076715630651497476508634164307213879187344124686959783275987562486192761717378992739718564133578114511912449610412385292616905104453980669647763731196341994062140352439745072319224144946701157898812023166121841019664147082794687456446065684169525573403290408365457689440287591649365380795269003088703619127576514883503795466798092277583348800884051359916304742065908385072093745425621704629376272758790472359236984516221626223491548626059335720932228359512359869608682374484571246616610037136004545138046431910724463500180889010248315696717525191124571303210029386200147758394879296810560952734683716689790748501477971289145657558383364351583134206582040347284599361106829512949744973155255160596066383467082003128201864606695061062090647650272123618582366582383398028427075341037910880737829810831290238226336326166284088667695900374936929128584640954078177203673203893361995193452995150630330643941384662142674078644603663371562869254372410462891524314471596431054378979352848808148243710801536676496190305064074469974481754490215078729307159228941472633199782078973295713648966531341180703246720187383943491220820198809476081455021012843426680462553593952644990541497423929899068554112887729193279215327084076050927715929270855559154425514981950946000970070519655845044992206489184540250643919881033476292684063210404326965283433485074656556035349494560463557517737217888543154667525272582940740329732562623648016168332683361937940410646873987148228566679572047069726157685027974018251180333263348565997296859120285764946040078017082109112719488351087055229086710508992801809786604295992209224204839711290509147322372739426290369432535666086722729281202854183111677392703653941443337188074819879414936888342931515995412069726362603099633841344174794007748509409851589047947189156836186840366222031864531108644528500250464319341568744420886246011081641977506486208214819705736706115764953743850222285441877154642907500021503413021873595319821606950314666290717972448970565099942235792629751732503659372921884467570676854583929321193262014561442411665681314081238932349496774919193237272671819123034207322159020895706517691869779107070832133928307424603727043886220846588241232992105520727649345202968837037027487506544483625361341336383751463098021364617358639726525833203736749269408014043130570176177030138151535965656323817569986032593921893139979185024364738858139105568631025387203277040498355026782081592984618222717327424613814103028987774215269959954788531032431735824013775358809706178935919326319436122840219111182377572108808018284613747654685065829535784418056357249794977945308538009084846712949797397439169984097688279097906083497864863610888693083997210373249018426810607187095220030627574995969148747462452163294817710968384519236314372343421570579971752852445993729611602434358889001868748319641795599700399641889626163939411667751115196306182816897482482299951640777424210391055190786845324930115797623937178265853645910876498952434058172789188945178133180680555743473942026443684243415001432215987620710578996321414063128737371190919185863695300607248429723506699052766934018857767501739187254164144455970415964692844342070342080960162885665407352028224112849449283499606120402987841036677405206471749177966226243158358030927531763578174961787004523646416500877066667681859888597264080921342645650794867356785042237813771032305370663910906984175718496262220348522591802512566790866242897063176055597466098979237829046468288171325621425661869757868992102665717721392031774898939813799645741330892295886848771446806435290756096124686071981435193862385896665263935347296150550643763933541260692714943293813063825659966300071153171280086672139506628912498312813628636788238892116670554297402201094158059884880796568888918291968986714796348850584676544022851534631132912913656673319419007610131681999732918750783075497580218707335661311930852928303156799198723118696369901602177735384927173181991540707363781394064898672042315211459972506832579637889417042128906795817670835893674343799255916447385576399293886818301597803241106624404199976323331138738397906273943390263653137202274217236876245392658930640054206951197199610964091786347295467321251084927861002018058710613227180634361468410674439727782777266324141839844158807069679646032355390112616367264364485037653636436135182791954124245783202294663716407217502653569952371797229528986621876668301436802533596023975782545293625052165332706607534857236000716447025944735942138515533914827050417415024762213842471397585455856228664340061624404528709191209374803935357900906489722942358169971637012429077599575018960865626185866828030234946778797252626885665314443213583105993813526544753871523406782308707089281830463081896512985796962411144479972631800068558924875499352003779863320171211332449536918051061884612224224306376777057769112123290442420519214229144739101475772636740128975571877627613182941621591562514835251658330846247507048139947949766802133356400087276354569044127356064243354613182075727467980668384405151959437803294274280039324232422693583879104839828532060143299087404151930945510484999357748414746768870874275378185534965435124949463636173062002220878564475601477786031393643005790948026573325122625334746147493768020668436719886709063952887057907244919552376021668804647404903580663588734696318002622715391080934053016975941674147990330258868685875488585818965712630592306901719162599731637518042229834132808341434182065754272910194760483418188389536844613009823043549403133913894859988071025032376987211966794613878961666672812042281652561638428030466895032334595035974789069485051531076376694254063055936514026772072734565342625339374535912971088036254957162118213459997539314609135527203000511390501809716103905530968576383681434433426997655865221213967262911858834398949690616042532701541400789236044392770397100427198745347418619421177322118174536489247726596924962453668901669034882998107143730905298967200750061208753168006664399363359419668330996133978471738114130156915002227353963722141651634950443673669709834622175757458316801193312596560163085443478374161055578264978167181972550733220420244666973003575626668734604915539489228887385287112913259340997739260578222135264867573036664946972988166006713957052299897547450092387925019223390612510085190577370861645206489907202457406265396803736418342319624697132384522686163397249642521094800272685605091365029991066330920749536521360930775203286756694575026286175023603145304852266651935401988413963401024782624194885205124682429210995959679498239219522646258124974597069942253912526089547311240625210465031153139710701433547472043497981413571729411458700258659426861731080146931903517496855652561875823530699447447101739661600242582755573297934658016576870634685648756622343244068974767997770472028268943568680453584279237058292876023719192625111846576533940066927326089985475478753382402229490419130741670630332296879253787164563930172088629885806471998620555252087874167828971761040213662187218887041297105172145121612397997911227831334987834765470710399587409379815881267590809823829191722914273564732894681475259073251331343252005181505359159498333259220707335050566599047408750062361054443555891822198100571553593941171973807668307248174241487943089485396139994876239654570544845904133905241929274767289237838739209974455452413268656018783555108826299600802788865999621974952887450772568204402666511546377115361754337280032300135454591078607189373566336737350973142228717073341493084728739355823994936967245066019050946215703755252773924708553723041830169018843363919946097421751984492885525618993006655995981366327426194871199603324148710343229603606023899633517160242724546915126417494914735550241195314067846931120432832919869620856745306417450206209932955949387326426428554182457516830694206617225257501070256173191879591031920746117865877418747854860950535999713659019643246452523778064163064828645615955044208548496806732414342784700460220015766977014158756688553660615707531396260193027012075600799118434117717712728964354473097324307383009244804615455539161538287041499725699861727762077646720833853199445693279284095917719888278154175824083703167435586628718561094446016428067326587245946930762055997173200627938258928631987038043763573443428525618875062894092135065899722438669170408817790062531458313866344514408995877890711787283860596847857285006895408423957650818322005239146392458889676578284049416078219438696455334193041508810316231739571396763346522017991130731082556485854002131111480040133196335993455454131090733217718416100764324813611289425603783205210322425921726291257453221349616297868685277337334365749890584253578991815448544077966925055923990176733965039658015589746009137013061946099173427469169748121343831119365755157713855880080433744432557205113757655949573728300155146653123774231694669632654193484142808156371525864861653391991237577589849558764731494506263370339209453546061257643284508435301176660134097827155628796078018776236622479135869811921672007092666504193015802386365184730086655451264097140014474962316189040030844263715334687482995135613661336030036081674225062677555117910442788779632848628349165275057413717572696045311159707490199800428799238924720160325304940610719535712492891094913127107365103405453091252659876146659264946162164132479069030283442269118730328211467157397896541556031175519508890931001946028473976600297293872050010194564644117906263269512787381546867469269285893998138609180925096937864969725790914405017083522822020410955838267424867098446975221794516575519348027562787171361284291710092212003539698294017111993654457111886793468592180512546894923506954354667604474614878647615209185005742869246636744575296766379374089022422777192157794620692059863719907409796052174393760856634736238268634909040504281562077289305498780893408536466923708613909033661397142723210564532895097539498574758687946716375587741891374748168301309706930203901470260889877791445420714666573654663338582125959212069825329955612716469455730814135738872059659702217400567190089906808722235378016168343388897235692023402298375341691710147966730405942158579956639166711651829418560750922501615013528969840134718733101600806920886363909380015192338608369730342195527774876757677806837011313709460433689728514339724733075784876935319155701261744391897373527566598743006520325779921959547128774491837953157175846396877302660793841420233590870788210139554750891112986708219770016642133844384733379693163966104296230491867848074650655831339827921377391247152928215309744984725866885442269015973093699863122142722810458212540992111003010196292338390149990367256020972457751929800350522889413552038006689148189538568529460066302327552380294359902750132471843205708543780134492564785558534969752738254521298705819272001478241840482628338287709477055730231475195656260901399640689821516262679313516960662232169013586007471952138343020903615619095962246033067903645634737397337560683990396199089547549272451780542541672113497866008318105440925481802994016862258471523085012690289188941547149159974357329480007563389079561600437248695130639783281230840379099698557270944482425496252288674778113962997859937873600290332171680445380171758942700916841924626691808964145671990948466277252395424126303567926078290439737909722093474922275886414167528607249000387309173197728223911791067052824931597301821434776476681348361872976938338957029777778410923213834025392771296184859676029122777977474992509051146162084695467306189466204649790130957640271826855914522757349786833362277947749788648471140951898979908330042456340287282927843205858773060595562368592138375848175705953774486837243495209545106481148278161310682935541983885614141043282957173727075984238300697966278991051605614078508808020670588365157047997707297923145243323766436133032006611148080310526276778916619652806273680050416394082771074315000474588619315261210601839096095167132679569570236361828681863650192610170372494771254307279896571920187629396628336189512316503747615299348182236238756931950308088222238649252527793290747082110258347169184541292599259296876024612933714984454262629410755350025060288399943359756010701425100049056319554306724765017166281399692922899481656545212615793469394703241797154823219177495326887499940919727557079461060048892436107573400463515979317110428600492891679335617789696908510679949820653972956011812034347492380594984707686412160294696184750570014834228399434749321411941334152871307810826627607480834734606723221538069023125147909806253080528018079953312190913456227318598639148829528780569861988334223552707182422984161950971357846581987491437030909961482688131045449202686640932086457890499626888354849766296980010072504430318655637976488259974814705358265285726964787347226274686370784951543606006114974990873125744635947910073074739151852423795423093699288199100138038484361063357671277722765915998048100488203629458884379643384491648598514110689168948167448295059249280694738881918132041085120976905290238546767715673476865639060107756899953300909510815687166143314882940721251150910745290872861329130021256801531699160340808738129510505553600285523339106692103718161892556759547400002841788429799745123712426891198282218109374996359468582206357582897107441149008263431895965638812094884795483115846657451668334905942469961220723507583831289017450629055980965339987467721308924453565142663775374148351198832860632037963355797450324927654133015458149831078341740631896122199803606806241723233437242964493550716235810814304257585051241848888399980254441950009735481316300363659472417470073851148109806310999373552134386883499659941441379146903011501223943469337951978765969294341949296052265658303231735384481504298423570523165275338746228332319288948453127180400574816785418366569042050980518380225421425437338717949662193834302190968840000269184283954894153337640945010982943937107856946677997021638303922012834379310194573493799722388453829551932753297006486709658372232184018148157929403447733268983426832950757238579241864134903704680809213668323352285903876252131258932850808305706392865581949861599854968654970686774798150290555762161291903909391035477065204568524673805668306860595084391835709639825838006276215214968675030292401279902389404045682682296349644942190890871207002082807851621377636109923851985215757359976503404434831817938727304012326763124310857893008065809184066937784796268024980379657227209187740681813090031689512163831679680996799979318160156620309477997604040326168300655197844821965209664972494320266765496927879948036649445651746567949916580390350899901334510844998787561114861142660430951493340377856863696890213214276651620089413750977581212952831809340054891574351565929864331024548353541108197333330682428746323541272166507659669597835116375470178268343766037079556751851543988693172161089136981684434536410569960585397333129535137677698831188583923326817075916956151227388648235226446149599349902653766519659809146052909270059726958819250727548693839662954800957123884180561100462834037675420112749460643927737637566600397959106159973497212566910588092225965874738091586514749836990099129743738033581829532775417895289608443373711513337165627781965428169931396731285893029717875427664401571076479728356133787986523976328796322468060317040144924719910998270231223080547564914277087161603476332337471236604970957348002526827064259525612629444282011534026695829740590079557796688191145171139079375620469568402977923571719559971199842216626672287740566742102099483578396823419125214912351083586589638277672048592155219596826255597247950607378356887523242978063311433801045579196907914621431898658571039972288518231143140730685606108332122487575024289284978546706186653822899756437359150498441035453791908356746736253908219217051472749041068455160831674881285991299863620884927406011079785421845531773908024226266861792066500768227606092507090093012411864519947330599078268872725252386340412332715189306685627439736158460552393610988381130749145763175430501927867861566245426598903858795905368447811784435934593933567634637541019548337135496761670835308410793293699998810874995534485355101378342512520509000371439074060381902251282000564723597470499949723289622450267781997312124437604243122618531423951669944285051655118423512953642638952795529063105716039852071062838106590795094031380951756591799099217372804369292095403680471163560679761905256470030797154749475850672356886242766778664925444268625741155881065497625080951985955418409745044642906369201276961700245051385592655509244886512613504268127768686883588556452356698466738617907570274044158580569070443406194567998464427978109055335640701027108568959156142007654539076018499761398188767640995134527509726364203006014521166156401400836851835603336929702575205853832679643338380212798714413838594187087099941036994082710123455822965117452883390897487157964933557465223107102057474193381491559113238601411639280094639910391908057916894314447697485337069742829168066523432449050135159118227799460875150681347632450404447367791294465640121796412306350190133827564921847650830768038894181849349552878727578748447570746510028354705228009805192603818353809253739258567399632926049033538992589587090725361330656105021827480119826500305162502922251269579662431320265268385914054992617284317898019254525038626064803680837899352934596965619696896010017340043911207489733370766465336152926195632209227300021422911308605338024159827326747138424963162980089265059427806706967038711581900783221113264713223517261509784615913438296687317433219772559428378722544373158534235291888918608852156957184915908553049349556933349654731890709418133159212110359460141155080204630959153782521999995569844869623126547846801295597740117709583156485484267651658442296874981367814944622035786789327400674457711150644909747922248724348466384351443060030890094924023732916715082232510216798183322833120625346167425106736421075839127402109027851565073856370631406807188835348109279903671721406175474669239894993539573528604129175905567666890123751634802953705659470345986095290705035747845112743959476909481447958319834509632834642292910188447330610935291710957696704757739758779061124906239062314429386746322471688585019466074919053538636852935265798446438363695210376889127766247600540689358231561025722612434227295141833752121981806258107674714648157237736238206220007697797304884965010212737447124253772973864729075468148008891959949168607150337485597010783846903857774068028618235786263224254710100409726927157077297503519838816665298681308742391709395502864031388511094644433864026481679661340628863779639174483678392738171855283687326889780162042000242904338062941421957890662648696173624059373574309362340257773923881634849638476442246051883551559697969290909904841058337146178952638422579013606819358540254164021740703352729843764958810644521657729844197611114536905096846487331861521567943322639305240205628252832956335477353786537613469420176442613812945134261141332954364685452499389944436005808041602281391674493540255720422816998020668497393365998509334640689002493637673244233628825477835540059466202530538256559627001175674209923622840132344352308643810083872587409548791321979199987777241918458803217525518249597480891185238276626973403374016379519033723584683183434472490859211525361648150177245457355073718733198059587887223165248432294206874894712046339612366048740550767881936173616454295939204433475514101809375823984797543763490347553867936507476112976554002216106173318268659135046965264130904797499348626775809996038450936891799481374655787690780445470097267767524928390989800705693643902372546515038420136658314109841841059212150320725287993779562176096340381602934017932915658157427106899874947045000389641268594436517449889632321647684702613131329576876811070880990969483614670958414661307438461809967325547374673411931813773204261400867726184696057012170341546472077388637710232312325955534285059244748026656366840953846415574583091732574892335385100243971768497124169826228565508081741157088038665041188523284573421835374957944603226841926052361406266871424645007367245213079186978913328632473231928530694187103022246594027041710318251223193012547932094739900648919191452588668095112302485087354556804663749190704227332729947386492743480878519124741502176443903066435512407534206080912287759036688831500638822324156617466158749244428118494061679618823688575842481171072222495817484686674389828735267692081785685099354048846429573072834978724126459803572376262999121897958041172056609529208682515625522655542952371862515608740329679515930367571375577772899542821480752779292884933013747698275707861930489469184223256193612411772064728075883572056827083427196769891997636730065465963175529811712511062325038083929802152294162569463561620345243410977561651612901141342617654487637374949602201349060266823598863214432008286263066889568006003259553668340317499855169415498895956672893642527565977508059043833058070978472139038994287302852289850102618126802042978907363418344535730533185668261491831075892714316398881081293660808902604555174700691703418436676340358360483460620390532737950628994442272393172551942626563788703014253757402520851824797469310971804844816745881536271299631522299164396714435007644570463846394878306933396807575224677908536456388035930513922197665154672047975893936810316935557073465875679571883623472095258902112419976746075816363291275029785987271015462214756632058080153202551668836126608701047568225063205631532015054071381003500202736710691672507923957939600530563032076584068087192057745185424022930340932900086324147358273764824492779604684149571532713436041430085835036469743427740717455140409794192357085792974676864669088282856480517028186932360233563238640789929474124281549107572054049656698655041270035203897992774457952068561079363435856766234167232850468952186506927273034314645253549652887663754076375920544780192374285984180023338140054703396726320877913478681560217158667829596015336285770461299203470073032433512634134610267669613289131731430999129866716105168707439746664736437120035322533021439444502416758155893511951938188524096179046266083700472737281955355256020136092184115906087957781590896600276079733753777942401114635484680399970975899754173982028813449788048571362455450077387344709988528262259081972524786378185301339322486399831383402574433375237067394634026914338043155474960447990632414118277578763654050392362610942921078346436848682211428240849786714263207015226461738645541488320537066343407314849815032747648995188710840759295052311686186534146696433152723419770998268916364647604084681514597909268329798425932855941404811381578136155372084618594073046569157585129358840012302520758355326603909962307566477018074324117467535907201070802736710347672618167143508550007618514526462317223484169835307379713898268159686589704192519729824914940443566360932442643620654907094691810380831286507658480675636552360237118405878698726534239206780609937806672571446020609469265280379711065745289973856958242812985480099016646478632790460721213072776520458680121300931977963811204003055070244634174265667101017270294809374731896927461392592150974524368940247394101539923454334495012453524241622545116344138342313094280004668159382709710912269847729893045921896915967833958722309798275318682641970389105989295301013042266709389449715199366466824649703413103593838785429882706318980851505154786867307970876110004051098885731046694198420416544130902688762435724135664994005453880933601714706541699825884657378506587105664930815693838233519114127604989786553278311255907294950637703780485650926885404359093314272480479353829412378907704669432117408314594183996396694364234021966451708743919361126025068220564736183496083884773963127956206550507322664912102159470653562460144787797537282444747553001913672294452736347797406067982458316194190504472906471265771189977748374118615740976313961966616603954141483726797459085045506461708648785697104591900063394245621918647745511130312591574330393550962395970921746675616394447849882955971810789650161582293232874999548699980769693064403444402463759745283245029490474474644557200790265899550802244501595826722174043654597597299949609360665427217537165899373306980086595991135512679100663114341901264072175347031250459129425292332902237572220532010502575979154646267246665412743729649329005249953390591112624483535586302298214843979289367203171515312190091020016685562449521068097317593467879352978526174342230143550536916718380966617121752467147624990501596989901103320794069292319744763305463437249301019034997660310041702004576639867585016980807115866185500973137670898075386460161409373138508887502230645063426174913386134287428565176944970781296849300131097978437508276681934043148005919358456995322672281741555857803084958466886604825623392374229841229097559854723885104875680051020710473364758635099010190208561354685546969154627232171146160867084263251897505126403468867751860040040559820544731025390281680554809431733337039781873723944573177040813001830369829069192581268846763762824139679224281200448366011967529042171770056661571279603919865188317898888442327061490217225111647583370347064832830041115611999389627895406392297553575411780496915826684694107440874938051554629553867366221561953947981065067707973166092776316899279852183145268445362883776586546725050057947604895496670005459417496682688291501646138383496131746250152985591404155612766417684246386737874110719783057216926592784202440560865553594057034226703395657315320661765679705214665920040315289790802095505170581497617043632086797754661129159351643523366497858552706908571741494411564629661428939369548031119434521938575076036794303836170363592777600049515232692722817418139273882987647185181779686831423618484596957645242668941489971897326394010108635606836558179495973375347550894757354568921652525413976216314532865904885856029775376710335416338176807623936004015406305595883780478932735732129193568805364902682385839038232994860109142234929728754174801089693755869277540018182960533632370257065222654218817871095105188843564230829717933593150687965903147099737690617963664947636388106912891717176168484785806891224294753703622930693311396651417367513338285466216187961830960055384709369548327968124768084464869122519691105389184682960951418817515320794178100675761585728710580368849688727138722547932325269279916884348097190650892963794981880346437136957460346060713777642905534231115404770691458080207696880970781309341261466055481490979276318776152068347416756994091066733857675541232708799234671818815093976736230995362160967642368083724294628653854934152923591102110726668577500752874873157492855089510869918821448559139986375035294043351723804370940371166155495087783301485157125854662325595222533888501334572822765239317891543211278500805668746190114338351947450670953941310024449008682272247673053212703640171701008584203607378226081913159772648620137418099530230320821896206573706541170691324135493351619688112773204556100218485611288209183542882515790094012781020264277989131653638271080412032157315824884067919877397307517640645390368988203150040507494651529098112274747330452685760872193031691734789913911595368079874400128545355421026238198415403392833727120460697901174012724612182791564022252844067955648882785775557267813391768257889889742730302049380113469823314395392674537581147823976008395118650334094543264220652537388580101599945409779384602582605003245079016182805487604523293471440339878576831013892096240778999990866226936355700663583811081452270349916707399109546953209396001094609073772711305299944976219622768227530138643361703313567930158452955750259399523824883925453724584299340071639946109147075920660988741208037501490246861076800483109368554047377023866247456459340435634203720579771286282093105038993362269488696841353597302956692125367884447189189856159115174528680194347077372869828826962716375451247792886503720629808232449726225225545034865546542849432733486487395328132313490335462244697344261582385866640771007091542128928621283794934609483145046073907822145545323915827453802206595088770579898629513336101582028708587393504705818507778024764000994251801124845390887827553556192157542783689345762510045508250077070778257831080002127797592011592471365382279612081882556976889514954454885792767579519419589862233203666585766616643987140531788742661756257847389879271906683664489244779586591193506013568618415573513298442951633941710526136427591909924096398434490639128280693437409145130445034181400990093205640876485371317989326910407204289419046486739748258892795794908397066080860802347299785402101868291443857846332047911932090646250532032801923873432656122163158784799498022336227033737931475907287232971730873069529324742012151844923774271223602768177608527859213386837588706961525026077546715093187054326077601994206884394313136406398857629747453591724505568966772954181533721841466070304538695416547179726816396249711976675954197153821277753000366574383509484947355666908614202568683791893221625875765750102511892040115053686611430594175653917985683235660285424382246020474783587838142804965563063982835549229392380386423635717389830581201199846146367552589307073765072648101461137995624755024310198598191395441274755419405537174437409131172967662180905496466775381793367595180375514426865660950210145773157269283556650711482282440508476376307651946369228527041955021463586301016569117591993062219514103714585375730919778494958243948294815598612025280037991705988250520105549370264981075102985172070448223743228773274893405839515706185340731299110366756562296188721433068727904969670783740286908026108920137669959537718157672878490604571848955744332728406943611073168960165064334663273242093530102586369848078882405171007062198069076745525156407233686983872474029919571551465547667712235080779146875972430561015778629933845963491919860223273511121273139591017626983230677844290182935388394541328848333527585830325091196170725081897133704039904839753521062068171058046542623208440820932005130128629460252553466357320587594730010079671389068381113712907098499612522128420141382919877133399406013634708708171427335213343957168197101043902980039866325573907668183999863815061417218559217488730431127953800133418588415866000169255619723498295550076844821910573102429669513591311171935766146984769229369416822577928860178070417916893004262606691668047759317757027715958117922062773689414517756725323996834230025385032179734100106862945022071222942028796045687669765377608288579807281379185482360568074520286760304878415176949789970133748520300880772619225665875157912115333676588734428656425104042082250342566911612605122899455902498992203696364213623496289057802663018769207734992102868508522030916076499805289339476719597224618981491995739016552094222404040114844768596932996166094489330188923804418578639419887080841099788968869325026820867681772142340321010052920486832441226677852156942549866186385372174631036314068787809857741893777231468970425161486105682684521202714545723997226611008636971578437006552039464688713016308646211389393652580359235256055052660917078848212591986231855264598373138992114235820127518230672441532419922105112853370646535430980688635747759431455785364430658342236099220696813492913886002691528678592511018864067550425748195678810611210517235366433537411534238414813636310669597924557659045507019746551910999284046352075496266703207476434735243644601795060945486345820336677452734629420270342680678946040707459716121434279314888768176714601812379480647177521032355075593526581774262919547756497925210398445486059735150917655635398123004144791263065580915501956875101578322668343199444351408208979734063624815849452451659769640747732392880159682894044298781826949297035801372397101168556015471197697417540538388017229212950665872678527575558840606656893981452396664498912943178302696604700453274024682898983356910852578731635221313035265529169908180021122442217488880602856799306565180614559406519704873160661005769797103147759954784096817595222472681833180521020578205095087907516204445700670918250095657240107071858567598454911521041017128919145269546851601641270380087862765718120283927693404321204600617802604502755941477727957123950340925218904993828032436253122692972558061637184181479193406098546665872089817411594095490316467537524053110812986323807140808974959130053675205735156627168424820365485931690134042267307958981620284284112952987541651431976968675509799087739225674864963530215452780100255454855841091781551679805643522386016395408151771886909826976634736341376729747737327472263675126885547121085996552984613451995220595364909908366961538775277166366566820875215860167155277035682805634151285138891582262887961440632415466573814625225212046850103761898795320962571167167870561471428178909252185450839705694429031943853844206494805745658248079039038322447980147598711349208333155909590921813633695785849030423676935987611111253944370732377070471830562961523476391124886497177736554995353826390414451591675293648328459076302641224792451523223986740795920966072306055582301030828329424170923600878143529132854445268504730052920174335471213159007544841204529819379751239665928267795940448445339454741913307401812454693929489267077965074872358898202682745530309965222898541809657465554101559704113136474881767253903895548001429575633606485552546351153197116550651343517741552578885070770721988678735604670441602384247762951160897524084866025425006375692400765964215745300721693978639330834777424622375115646506695150445002378559805953106509811790851636327383470225451375157170657583044252553122936382488187333784288094988301242540440610688719910708575412697219129384680125638134440359640364859531992522435858687622358342653024100120966110440523263416512129854379142225713805433214569548750481353717423586413793337411281682938321334583871555713050043487999253640782626526384771735485601967130494261152882710346889767705567986591351469991174831342379803733417350364134659549227374283126049357080518983272471988126802033936428640748854064357908107130446137526899479351829608662270287834308417835134790447325985077505059800346129479625762532848275152881378434811807236400204294337220719411170115656390070029014957264367262732693668567057571319616954897273594805827612462692166328796016315296516044485690447670707284656859677463103881692591745918020115071346811597079239782118571490793132786483515032731145854159026538805276471021673840876293559456827675888978683773786152752256665786360301523825308870676641120977819574442571107609952038853052824907249896826058397054730017617628150557197657079965897225180576668613336748098316851257186499053196996206535107054582555088215944102160054065659931161685649232438462813278348789541860402694043011582057078224244525623090149807203122502427198477091219934062098951173185329026681778819759093254705262319296808755440450061727253079405736774742617219551675868347560177147128658697075411263790789435115280000364114966967938371311442931557446230387613551295739703138909552026648782321383462545363548975489860180658426464838914856971503283001478821653274137263709302560130722641699619000019316835826623497748097708982735499884707733232021970066682229340771970118899181405251568201475614307767053809065373317815204471973831274079219851104273065182026086414901529024718764955758222829325650084082794342568385931718548573799182524035051020838186365129527354648523012043889202216504794954556990301365531370951527708850416110672102134879394688712477791626178990260822555248820830484182927870375747260034774464672557430116471087668067380368276820501400369437833782172871023563871079340737605595293859282189653140947824587611085005668200296809743104725595043447137193743899076763336702860677230831087401845411577347594912473760263328530954381153800610771034347804431271937130151239967444912271914665397641512196987684861915219606264255864205538723771636404552284700623999225462076840219522976702348595083561603578640099149716921720440340128596847943480707527478175943817513620714303907803288639611840013921490326157731165435330719698422312748636213258277311674183131689658758372323095014483207375020308044722312225318674802680039360338444419491276985266999485331263314658916017117696597898113686637702839523069259671680747762088646040662325522409372839445763447598778613701427207726299451574640598633383066964526722054733573738921230137580355341802947707262398414336031208043755184128827367244711989310766085610095245988611322626734386264807104320181501667019798626813187044765706091947338566585468987123952847992150184102714245433873257507969274937899940657126060762757413094366753628685188212557147241319526612502235317201691823464043449262329402020629626450932874162478616942742658134203742280585452680106652081097307223818654356161494767398491492902846371602584360002831244946577098334687346423697458460467553966586655617477119788728549919378176023705117081583307422778122131481049103683043421160460438861891252766567190322778316199240115132510179593190521934137205021951229540166943853687265321144321857312559073660497769248780129149996997480227957899152242988889535300074012556338378007072371689965607177198704537995941701984504620026024681660216264179870179302551565010701114122415070134861118609329816520597765538529014731980878369705360906439164858497574280188814321867396911930225496259426900229065920875206605590373269851738707972039993693881075583731866252133403560078719306212243306781918627917293607325833950172005649803652568775706677128915251082802921564007658480541338662782535214079468093819328705318346266656434270614330280475026210407990938348763412176561555974744606860649330230452895323870468083512955179245942276667084457206640707772979122469111872124786027413247120971935256406863478404533877471261842712858080503701773876837873457976415697495364335885638833194620294567053794598004064027641452945860144934249030599516851060473241061372542812078673276343226163064672057634812434624744869999453451880981470805815325611415021786894647839858072157638999275340910393276146379359442561316807479650365221383650582258543212345842049116077277487565066674630309528997991386093347088070970400744617806405743444116596420743770462160396151724446608348021234865177197326763209233766366611367942342209453825596263894970147635803980076802421165249823442698307059414045575179686280301331343631355619467543760113787930372093541583597610389594218804554717328401428372453753729067702000161948988349550212308861924056602899561536873295240134801903774557702669112707903003743135048604941020467242697375918521145487709772893805402639149965506249517086046847702133212708586809874189421233536598532434023462338238557225441803629634076190204126111993682018807566174511621619882106386024947282528573889576666213512849015292357443516081630708487185555788507988644191285638903152044479423179811603385739168561734809880606565644422238701937409577490173405441023069359698017532356122016071812187218119318876407224847847500502087672565007861416723656935005051762926254177675970557744606987057139116779927695762846306641766404993761142767944883588877120830162434089553181148711310525903135372582877134504113120250826296821908433603454735120513340826197205447939019788352234661148129822205477014268703306998315400044916308233958646874412655733971885011115576436530230368954128766467244264032234893761401521426760226165772354407142320544516935866673949033358093972825862173256409356201657475758629171673097013277823772291846394678891328984649232303410268772381232904180389983506203704747881760226413257306863023017750829889898706405789086712131589094626592464496436889224812410500700161366847141068049107436120099679206207324841509865818434726458927133478833949726751064059816021828778008552901814567468156588622191566607522979143996735869281360526500873203308669957276710622279461475546704343745611504304532234725818311913784771225499546479490800701957643866351436604132594309694876830242008799099755766301204040437679487740750538523837151703353302797958263787462004108252367347956405237334670578156795791992885720545747019282998981791425336177263580542222345266336972989684154717631103168802056166864341846176135515773040002809606847028788098855657995762500702365803430639498434220738118233995133127268682748272268139741552590776043811127042457112555285639010050210182845678182762822966486122571773337437532973603300277990101312177811373200947012923883743209277792634654701589368299616747389570241271279123104507121138817557707364069931103895099612181788064281161624964197726702429186228695119675031879985632028475936571239134638685659810407282605509347123229154476330901353470361339606891521136304871826968307277298490192513093944629206829701153038856273368176136303502742059790751804531863437187867591217522940034683944760464371221953184270950082872284242684697753589357468084510766773729735432680265376510866092780332648308236778925788878472369139323602482317833277698596393623831522125258087681013934337785010881586809141990376381213096230345748248724865627128831130501169465589878996922995183862403124026338661066583628329539903405582928244410071786105583952172837656669819524414152029243629069915021520988900647370002905712303192423029937703721703808113743151970213451893911774642027970536775566369192813058288604246086533603287246884551801770591030066841480238187522415438639701471890939620593976334145757399058533111755960575376407395942248724561076498056189621794977234988267752757148184907902618453397331020545944704889259265799046203577861814543510584916225146441010262677108146141964317252984101123668308154857700555893965378995438552138651924291799169613869653747627431759813309158573164188254883604288272773656373356293686248992200848641032246768980401248634781764267843037036265325081327432586578896375408437161495594575145118446219073836915182055334311090539906913460355366324055269874875482223381948945533316923927805667400540206758056100550438475966813526167401304988933010544813889941544264246195918544283243938751042537267040699073172776621985189703975952046146182421843189270893920068419252112315480216793730702244839489630175674044455617187708370900224115720877885388517422088228344742896268324762838429562472248915510142198096322943539480772922689944932686377077995434818541513996638632673297657376653157886658242699281209651906664889816001578444004643076925667611264848978399378461947648500434976728478348994645197897228917292170297893648684252629345286291041079507462858216387112808708969442377566033564998453784500015353271803571443664890172696862033337610424987542339402248140179747917866364490235659454883161168190382380766401584835758843916892613736551800177640326211988010530188387367758876159167547712319876257881535915718696764759552538226518991646213718305162433973186634010031864630345599245979047079204163278140584200681791026748089515023682320114125724122724110395149417686892269502001605347852136021850565082329370900723463870174307559219818414587542301457250435474545163379602381275565452938519194589970600175029032676621026739225058059702852639598690939647225491959582304209054431287530373088034326464268333940247473185408819160467488084957900919579857091698992686317018731181595211824235880687193153885823852463233772486540878847404562138941912103497502955451174436086442222486413771870448170789973192046359376656891925568234232811317836997609051842670777392980736854146761550250117857497987822769893661404186799841315102045098498731199284800843279297588208311542939205928650151418952789254002936807456635307438234623700698300083354649054589568693965065066550645452884303404576214863951277539624746061080247177411910820640658593735134491437716031014825233153161692962333900814445010811286132597464619326983092037745023567877187712264596772475183172060391834583053583386789184227567074118951515638634413676711932807469601758720621460975836700387740046846183984805716259114626094203190949153425920190792923604779515896762281848993361285409534722868136880785488432934415177061829395156386575130434878296725972791618320352863679883390832749724143777947872713345708520227809327768813506870618188866607008953232724132159447956249278935305744466717227720127638008074936313219048699392809666153430274198817936353667749895486782061018723410627012079041672550006464316183240667767925947140411576192806185897075763215753812007393891683659961491681135509318728664732012736483609060387223691191737352156745270599333179710908232860204557669989026190777122761950346583115777670800562063208114727725194507235937764492124583358117239439881106467455589669324096128713127636311807352163943425830608789975176552440666735381423255511515405392541907052073318885015749132892095260501970584211200800724792789834675842669510262370756908380816315797150145042017777003513520076476423554772529576301057494174910338949526784072417515271967581225560890699830448456802341266166220433585349152851041664029539637774550543784458579870592089977210719544307818586577900871708879420157813872710938289160392902138964906066745745288285069559332079403795769481421774995477040745737892259263510619293296380102762870765608549368030077852587554395238752593844558404848703241005542081772109827778285976868226363709975228273737386472504530653238488679922715946403366267467621848098399649690500363075240115540134271838378557627753697031776342026819270904202010484518609785088425020790106252472144966202737130410047811286061816512382112172094880644494633086041781149300568796723904386399444155182216135786765619714880873051076607876042620008929113111118276907792117551301406358681786641322214880993568941645963600850405483500937281377945781013373069734025271285331568830410354008371241217092635035126666739021636077181628163590485044206088226798669541140266427389619318978303095410243630347236041736384998586720905420027863240762966772192439607814632359118017592096890866477401086277448684818194617477312064227534174580147632835994031941614879031495148706991455836829920667307560032287641724541400516338304287651365731034195348178219874838919893592786820441633316950046842557651039705070527428083877611270502740241210376112770272325942446002600087590923180329743957109600559434174420892496983620656301703486403600848862805968254904926123365068973768973432083280743529183961575662204104534825188859812448774213494877286776394795782997945541331534395121021874176430386888316744326592712049475538489891778709599765040289051776587517619616102601367997041221922761274441444114659345153653260680393708731167150909949398292264479428179364298665029784893236192457363065669679858147672017833750483368118812674981419055693807487304198456615781761398556028184435104456996498827261731803895037613644341110011864641977851506722261088778908963105010907671869654762681271743769054892454657439090377777747373961281928860338485326459953501722356465760099767490106239189534455963437335648772332022497479212657922117478981738209536614214206633139051499979232690145218900782641950981838380969067498440417690502067092394628501864061787880702996362703401813237494109865460568014912105293320276425926543965002675547673019634988096221731105784936517322437199392766691716359025753707930282315858930630095833722644543949175894009050662376710377448321606234382806234508172937250254690302622053700327229958463665754135873239531788393864902724400424388086858448288372109413957216886609803911730968233763334378120322126799764305949881647507138553509967577826817538572146872442659914503069758378438152577303295857715078578101606033715518424496917937250343459368738163977045738487163279407117476939675621432282102081918869137519402943740829370034349866896472170165264890129049441681664188344441965795463983558716540945531753067013046883167825674405342826202019460679404315316009886324022138415227833349505474122231638283714398796291653116845242400487570158929850167166948028849577384595903834727508982156199752269097510375793886204761664101052843738016983440765563637287232469103417868155161408654842716803725710618823826749872506072725345121972312696469759886814953337557572463691610073940249389525287780856589788784186267069593942842860645023964064450010636788726650096539039614898707516716291094954511799005394789820525647503691830737665707403207273285198047744576920613567670108423292385609970011529101867865824538935055675705750557489181232738555378424916884553411914320957635460544789317071724276859798326648552346029680186897506094895393588875310164484988191434644063199790580060340374639854380979102041183338915404846560710747873455207150484213740474402734133973427263021843563952098213952450147472240805519745642588781425956599029463477916764443443459274277673437538015746875400526166278487305293671092499133071806601216600319976445489276498536689891464978481235674852402444149631074785358795270031302199278933933890161218761970106977882042593664239211082615927150377493294935219973531342357006252076577933508735568190149467937790794981165167055267105842995009513734054942813046900214800695666602090194189760516748877003597005162486522791014864340375226920681689489452438971374277748511695655635470425102793176952647768687460041987276570226172108986184007545895242017811559770738078258144026020684354233200941214993984817276230258838919351424900916550597551155558410664868335186003604227692804273183130226419109649960312348312595637161166355833361394779090351935962887704586103612152167008178508682950643220793923537957578789876980792504359457795708768108967091927181478312300257565324379110143917193455172883073419196262502310593595785017949492866199012007036861299770175943140719289974019876419521476765437978537179476563136553176048598599936661547605873106217074029356795927797146289026263475314696886245993526794082825928604242765022047905912724023442517064804378828546150860150115924558043137218435721903542561429103402411209532593508702328168176120322733981436291291347381849652205206810329455239991672970336172361462402131242778939839462349172296219074117666789303933706988871432228087280487041210209529010535192647887353140755598431609949353376975509146264873802673178848532193107020693091380237480598509795654095065436271698230275241100714907081705011843405514915045409324333042157148537922759244644631691708599715448789135353293207571793646293815502883078532989272681292560375752651607666930203551413857097822709568937323866908312762035091147503211137241733121889120023705353104505934175804741790048999380150676407086881889605646129127210730849048569190627815371880149584423666398178119106020551108552868225670986751533311864434824121063819972347786134332557667222430839023957810042087384782096743902257190354103234724444422799467734920245092655468317701710709020497325966578728967703398863270282172453505025499157145526029963308171256681815020332165359693671628913846427723602983850578015719515344857118294727218169758952273476885343753059632999785049739804747207530414792390917710512360926110445639483656869218729010642202447213176573449937633139348485047939969781000940839949437385129252787551815801648590105346597056698119137609331097912812065552134852923737626125961209274207413427308325652614696231514595908715745653427893830896908173321688702561066830246308909134875010020422268970087922908177529136756832749303536896477929647326332514077710283078864339263195526025795927707817217855959836278120042642622734622009552657481671959619340169242553841250406780461096099816036094499477433787106721252821812784221029655943532991108802633523499538895427339931020207566791643966382457385488640151447447670233797633398244731963411451045293784660667064200539664301454558270417500719103493910800165897543126410524302453993021790862171587747244175460802114904338659564331772788917047629988114838928712611215429287719719673888668908583562609191491290643668724061967967114180449904896672780264122914235688686209941666925914319768773064698261354140734503690241550950036251786544792227490005389551892193571767798982953880569010954225197067269858209054486682926134213877795534500172864943384929643313109647481127039192332903516487572630186300182992059625123849688416356056539949953134716315892027798016817106071807916254302954171854904753716120004668682199445076106736654128422887431054892238036171018841336681572875751897604128655107792827653200679197975207694303604580457675238310612585487894744598639162010174936749670268114602714182467494818635361960294704852060269913385617961386102772953923534111359729736723690197106374125631653357622435405192319071643435434505595519462114197092970855760632569304380961453316811111747552250983379359701183330555976722428950621147887492506365251414558008459214137739702936240170556955213812192510742791924425253527083950171574998179851960637579828373838509174736000967233536200160430395091202671002910025328029384966778326850191956245180033165836414194837676048104140928661327210803105315475043617125265260551973750470517793725996838009889675321429212682772319394316188362795319438845590295793533654405602462075568113034812352515164535675622093230425269362889020515728757223009822039337796480506600302249129618272541579823169723132828591093429417741050657171315759870037061269631091651695521632321397832326266738292926250515415872922464576543707389626019156569113203463999054352368859778841518177695750048555701750433605545635789286061110792064711651776431079813369848406510683375924883748361166481858372217824951920751352677252595926992848084335209653313137674296285652681372396159492545833392731119526152042090274581914246644414304488605903972072317926129395071225038245530427580290981534969075400755705126616888729356855521552983686729629513731281760291067663607937738898372910537356380022421536368161011900263221183149101911220998517237242038849383918010387144368076258331583560486387172000302474677462408731620128177925890566945252553810203756377175924977990653120829677143219426944453234704494656033973427023649348257058545928292905884214266954825688446370306837247390010817413201043815898362771518846582583212539351287537389242275678010557016712472685263381995342813118369944919862301013203038794152873570432182415929392812977801489998484013642990549524762294304223308312457538289765877886114325918772031575942977153671314355804826141097933951900818249468640957801478721139437746663844342164101004732583638181717829269637505636693135011138193336895776731886484860196610494173790840072718042255765486677434733022721864877953121540647568775889271034816819896148095376321465018226420360851465704836735884014126683123438919988337516862194867926065114352107620481747151037800922052418152852798384343624619635289701590174054496028405946585411425872540868937292060375891189149992727185789462342670104170250190144428345403990749238094944655570524574225092975446114392496558543242935412076275877187689335342333513252793018261466368957758177068559235317623672873490821402195808797716208114564251727878962142670236593696802797566704935176913896294011968087023388238654752491984254745002791487485691840595502798065564265207595529058948989763758075155951387583075823405934703055147108816137330987073212514527188722991073879687399320662556417673980154858495987224716208013630132363945003471231276238430332145357962016853912061334883521242779580571928783958858891151700609923256794639093230646768195907291394359655028104647837718260499133282324534653970523769462382151131666455585200637554855839911026676889963769574110773841485004866889940482676619302655227814083859582531811822262095603560585243163118681200351564049121828087632970876072809869607071012018705872482828877743018539059814226413452305115552674048344022870303883134317748254661213155936902203758327536255897090331578157042954154314188917818714610784849233813464656837858485172018673694178896065939007695735560325813216933772603831558123464707242179708169731218449265529888485552358643017553758026019801089731146225660791972320303523636813709080023150574268107846834664240758699461037178973692490129036012155948908706390050449088831437768508950978428548595157557294667206412247462275085230525333677687167922248104853548408036356642792563411321179075552841531420894145243080566949661657142879957672909640574246349322718696209110413132740834437712032532493591815637747433135054064707575014034397480382398556713048968320105339783639976037644904911679105111494090508601195080542113274189300024701466500115742999894184721269118010627668121601453366857350319046912126431498429142857125368793937615104655393863118209250614209672661976844140640405296781009332651500140146809631170394474306895606819033766282142433557024437629871094259673448222910731761968287335638546133367658794500113561630056525450665280252751639461902328193129782033893107058359350695425540760943625612058306731289281736174725839175787028926784719962580182601662517455678969069273863848939289061103762215578835289775520214810455471642303120703535478987884436434903946298014788138036486203336768209552827822304203319008235646940986564817014618097621755660944900409413116473784436020894842032006685677110780625513640534683088233424364206680049675303925631448799250741525212328468817316705340202016603434339038916065391833039294685629123043493528340817217866025483886466053631616438074214449015029646898630745034885536575785397594999709636018524827180221794520393506953200293040370917922982604221301903828952619302774997877376568293605693487962981701228354446774510270585026669535914725421412459437544914216724770981818545911859206806474838780760799443576973572825769109319844034033930694108604832162892357006470212707680811022551689578678255147260103296655957258622327447581663964727247378420531545815940604250757337695612768567064723795921819132864033433606636533923217081281198347851778629871163472066761119600175220163560877683913473951620903028779447562883402733741960180491642442069236869195408532377502258536849705570948012066159152319556184545908301821270034151648577598245830464627650398567923550558331557414507918711899253557992197046087140271706669923174652129234730004920989262510741125373056417243698157941205525869370985197101925186544264008377785685752113253975213122697718129797735865193628060309785334683379816645611812549546121975915696379006850213706770164820567968600087346533191310041163540608296590099922728427956457749190042710551162394928522806652408216358842259497400425423515207572513057106184758429902100735603178318136060858462025489371271447703604813649389169344398645478317591661419743963153094240716421347995745642155052138459033704888219339779108914421186430010422359716612956446887730387961805455390963721024935116423913751821582983458640079252661560172855821713737908153063520380662695578287378049357939186696299030392201123282581392986720577191484340236740091377396534683033167014034761170522934736327074738685327455683261958773331990129408872509461553492717410101075810454022409945309230102140228567982948097570301838482943460187693635946126132167109121767474695292664224585563304505289408666775971127182851449666547528530854866419095157079021259610452790373252301224011093392537053973730579934671116648993764624254130087519698786830755259215389526182777631380216915379385537789750865463186398357653899300516519998480606922681500633936073912126097045904671306360494813574869919056572808153168479308854846123972361211209047891409986744767340405686588937084721836910816364752225553195940756930182792695257791938633400084883367198599606974556698511628410081518503307351251792325275471650633657896699311563369746178067883042231557173575554657509491498063769322016913800899291486038768302300506171444331550258284548727389561412120332378887260606563806324461561704015340512956645705958888794866459033097714100053783651558526982534082127475444275187979588267779066126245962179409993034708135063076316745373956565991602207810512470098098486016996529216509798333524934521512592898374498839009069845252766351789792847683076891287466149212736749387022651665561662156286562110176488739227458857169890410072267276198887579072195002542255504682793898550627801380974017935349289841789538389723014715034930388877935413157114574882628941580965198351230892182317058419884296316985375613324900900475797581320684000171477961592311487332982220299027467172824016774012667418136223381553785835562877100614675490253243154004989432795686938797395944069535479153581844967014605937522688268948776868346803293682012056598882671923446231972399235437225131028755814010538660884250169737387268237893902513571747223942335279639868170250688991645552066518460356229725933971360881237946483224690759714940407845525672209502649477963328763357034375127091544756587145702270129777009596009938696006746549460409111579929098899907453655818848572160406328255295790431873927921492439150629382300907479220663492649295751858959684051878499473056710987294432319274485923879507780303179536424175143115121946063807642811829682514274091800563492847623298571901073582332366899084446959802105941809966124462038623890062740124433284487845239656518327557155256377321537419319685265056033818188309776382741236732228793969772044214546053616995066856629017344632988284426011510706051431896273542415723434912489599940905331061831514792373107396936376325498305568070986859514384216368300545573333395533316949390632465452671825608407653513324827432163219485334029328937212174218752518453427726980461292758823563626625465290261497688854199799980618497555697364812044641254832855406234891562954082838929443228343300148642208099761241033404876573174602724922149694490342166703170080713431919619269930202015614572242967321713286311084105612329147676505731684509630740632938094720567430572697080315304816808716833249150943168321755387261040037943839201718778375299660283475901328873651890077088956728482510702838319339932576888956287724257535723012468309342227853363728519922264519803361627084896840975324031542575022093476470057511802164189835286447322878421968713167103987822864818780784014042706010122405813831617112806840281326291529447637412563081597365758550168752767060832430410292665220386210165177278412142900260606655022511004022115542256750090285736042521751647099699932777517015193569348130422646396969658036132959797299590591428594526300162188818727412535469334523858092093211459691574049373563146082862995729122650130155853190257431354540057559587688294280475729934805648586683370438824809189649502137306022303144868450956229278861280848929281960045606006679824747739269502663130529934688123957457735788971677487915421400632773321359598256148368867459815634009866024545822953146344929207081301866380850564015325562605151050204412316332144583001209232334946381757378181530916667012172569992158419531628384854613002291230574316084187281909499058034490356853601661511094767101885646335576620177911238530484515975119324501803462574878584917951327129637234634906653768234880133347267810184446528477405741900968959973055165587348412442938573527374825943837972452090562829820474001429196891072967682733849121583703946931554944894485680892385085764711833713132707997419321560821462028624377732848845149425029668315835586752972806981732064057986459873351109793390778745776874861606168707121028394140598284681049291932192032369459324266055216754269884662034103008445983590981584655351160965629112469897330070607444216517921895342554969539982148674263800465316587519448865269025254644277355665644516700023687929713642371714219419036642093588879967141782438274513926775781832310225889317153977791573317898863733562192110415250192497960185630591774735743266586785548354060051014205723547419509414320188371727573215535004295738086132399544908720935815592222683822881859071833547017256917454854581843545009904752953596113422618321046016108550554321826401266224374285543272965201148252213537877327804600014912841565186795177538548599689118752529347410478955660840499315426907227157931840640798828215371293052415659559821690714703684368817115744466325450027815208155840288835496370843565636976723234247771331042511456102706898784812504113422281635354592122628672118146972506682507057770057280595339528557510066322273688111099452736950693701154609038054068505920806001765227382287802825840900229700214741841989713325828368623553228370351776205387566213624889308210584849258640571753392353100901322785082887218501901685834728113442364909971574622514167090389943727331593651950680695474527261864646213714699248437280666964271577530350807778622784957442375596430873294721735321700564373203517692592837787583007116494223528664088273332395234564182687379868562186884483462951281380817118041392194284164640150840335178613279901702898474787218591002232678821564376777259737546825190229877647626530699975830519465625444957252956795362094342930502098808039808976548075717738757134562402162873364201220420243992866403113548348109156791075678129473087592381617392357085494771914172922400412797232896510207400997630278183557380775214288891497536122014208931824690721966105834878210515080452259377281235292589174144193950835858123319299987093411130946044652379536018736290133233474906011242505391505851242448255539073301089329042602556819898955886972716660367144548898284369610101258607315283290299188605526180582695000966196436825736406755437422161573635201429832108660696021021536208499849484698545342209679273605893343147295444775258207465007839720033510143205921098316489009061663302746944293654021989871490166317841538234025055802447094266830167279010411067280502195907452596810290490357429200623479057862311377557323502946016235480981166451867616548907379037910443268128394301372548643251075460354293876419089228367939311619368884634236925043013857593462323741280696592831375307218532166324055900759096538650566371571073319347129934738423890957812332425465958973859935377413958213411889562748634376067867051499018191989932494794657316572345779946461459642842618117304786353020475809762280746934562196134946056195017362988420042094789541017685299920491524407815061363178347098646396349343628814997679505757634867008859644274185517265141297357467137228525673516410046330070306775764918709897316335736184844424216588123298763242111926141150356118455238865007251675216627987719463585502050960127459639213971064564272682358558168703976016727278632725828889033148410600212172504711287677459833491436022109408088755792340119155642627310092827481862590308559814821243877222522500735722611693317624850525441813959213027243705372978684594388040349277821731658046416568758195809517568639700995453515084507904505512314860123986496342659838795065014766107252417755038125574903196380264726400308542879550416241368458855217008224252321004046871884622154279134295792772014791796673868124902331069809634316055816235149581220977465859901625685491021285034957276800702504895668003581349915078949615267839245294686263391640106501370041961978514796594698539681577292755968260678218741809589205218310284626824448210031430662498305167163516827075897583395477661790933930073129296977549174200977132736780071729490361124589528270231681037814321888575050497374032883919319168649400590131205388810319390620312137603791237309628414871590510359712439392622260124830650396164287641165755743162401519487159819473242517653673736933205358840540672499245694786794348813976767573581010847830382248850103732763688309131445383861580850628417563980428027419853356022193522699205653232076624839739525151188340885306389400365573858208035683248262719645222907192961752855743371503446884951110751043266890487562093883819850080492236863832483392578272958664095686030352391150366285456915725938253819738304875419938654690481000481939762439332686068321090694045767561044842092735079301987196179316706489270817704610406965736103267006149932698448533411968555851176995170483250571572825463165784111023779199082603911165646831715597960720160050074560550884400140400479806822386243843153640281988852500298811805714137096974302126052655510744122737885800450856055325175883917714840144644578860086554239043744433640521490438937904406271978810164012313252304208768687820931436941012427174917731012972841439645179821833104331248100752478178578056964822485187372100965288742056016378129858462376013181544281037828125909739086288070733654530273285413954395362208983994565170555188377786856544144766406656949075964406359800021100057456949505013089634756775770373982452618116793266942663919987892104100852642229255141836942398813865604319819502527973902288454044773377002536195599229282634308979646715833271903668988253872837998396723927921510777173434032081434662963687840729306684187456205865423805486000545412938335014371924192675320366697353098633427514767550419220135303401838052981298501801824202130043852683529478644411389396247593883082029201759043131416873339518074669584130911692846443114751188550659201428848513580872102395850974272868466433978043362654529568862733929385403931961139601287596605636181174586073619234746793042953581525789471332389640698965203601571210454186094967951173274433873114393879657926059026935527871655119777452821323064588166895140795194758453773287677208175060384237132262350615396471872200469634891138829938655708465564050256766875268952907569689608474810823167712629925214399087236236677404515450828776281429114572198159263016183666808333876909375846019220616038961460430322050624843552513281607162174469355134542534658087101629149656606952286351571219183929913800971541279617354659920539543433678709036654212439496016190598675663041765911598104077743348589761585150307846153250184634599015045351767761372447886167226805220417636689292540936649443211324641160148982029008755795873499678539748237777328833112806063843896890453091770448000687923726582281792976621953213352551416473494151157257380499995234101319146480641479050990411916157405177370758203571120382252359723105905302253238488882595828722150573374773653468792375619121613149728005509989650085260997065510564124353103356185970817850940755057506911710782677316127133241746254808688318262993554188509799972525613080615983935405272370968244437759114557032049231765735608593770663197964486156550795301834386546029548700272862538227463194944625439448189103225200928901890428944709935740224706823603538791916843466035180077689805067153304434540902903849666691582809691786202798665261170932164763106430612474210254363998870196985223200609266690806415274441159610901236394954911630490452515948463111349608265609094282751276457648347380352478074839593039243883424530450872250272475896311691257458340543885268650401304989219890180456172715905022083969875304173570439215291044463896500976039827782795523421803483293389868080934494556184451538891840659950656774556853886001056649210221043466661354475258579995470233661118549147614991384520528882760994326825535177697154757150744212103343036039281542054107817287198892526000218398188927122428989154236034682610131116005935144954482617719516383084587527227907779946836924033114458575459229149601220451094367891129762964532903889260888305540415827587364025097401203574830137653218956798581760632831340324411772322397517365376368530562762509824350856036812856513165891209506384029840826129033320218559590529270743341786879469026812741992985330930051351707348174586155662962253240622414079990798905116565282503439339246511076891439801890368164770486436848355830474178112214189511163450140064225734680033042331201794224038424316503257350298258789707436378952163856715040336723645151504281390480050068827858659526022934158915130315767306044824373315126603912353199833534502746546111593412758976452159505247653210186459375144508629693070900542785322080245079210537872417899194763843763232495635687461700572595690659744156885066880081998763290588485035426107794969679406555933373495301048748796429719030343477675596891982100052270746652807413493909192494055107629194450950716723397057667677419038866804063578989929163740908404738980156743255354565484955430667658703909355732939435681721760698938213606962138567046842085770084281671343329628848604266951152631048907490134036400772237331931223409775952979083978418486535030177063936617765056671292586256011712533977223306687445715630257764837583328809056123795574061920696434648594337483810099312177153851022263326282556344901411021697811126000591096447758317632265988197913119113274260629811211993057130415663045244453174584747281019626249068262247619234269961435079965654056484299710309760308289452841111396117279513626169034813088137342524732060595989108808596029763161484891351207088627242533186379260052476386147236274825411317354441773653697227903449779750834916210251489490690859650315734567040803197317203127752346540799121722765145256518314005691791857017727211683811188544211036373087700290500554682641670654462452808403130251647332251868303575328220083483436100121584046181435394083598517316035909098368311906312847932989434748222834582650681100998391560646619936313241204157508629734366035256374029880921576572668503590986643605632646285705422781621018816068068386529937353522467609719377031244644655378479431876932401478432962728580625859390041396588739738998525165861681865225965416972143968962512126646678880527014025419297147119665441338950575009033065275852205204030273827359629257980252513545849263500611549124992654639369836327564968005886117882791349497352235980852857558486465755255014604162828152308819490819401075700604712559870717079828457163440199623418204007098238461232537498591440974965555392842781057743668298581992012984891064923884720240164342073175233213249031979762928167349889653010207787543845507506873677701002148953987231625746238859809140940725174497193485720163621557738207272947485719394408791916978425826965980936882479376241681718231048485473598506722935388024926396997873650777260720077458749827798534030568331933089866775850726757815688435708809143929778792253794284532537217812304199061420525623580611533460788415819995927624828935076441931696367576386983953013006034910571397315050784802349894545042138528583440949283522062769963628626519294283911146161292025698752537367714126238286700399798995655608314385545312897725342695800744321667962203953852212741903289221967110999679142491034088655092362487496642092104026864727390209317090319358674950278494659711962203386885761270141951647863996520710170072932789281036917530393955055706864691641798451287912567605212206484581741880160894437852909109406702935451769065212592511113656308812984171135405735704585716662673997560569953714723875597528769679961943247867844472395425297384836729860887553972392888278139898341622855669282567041524057889210053251603098745183238511819889432485484575608612849091937680312201518213052934815296168461586312847117222199487498536977136496052159851412652881963134476557671959034864586792236092811294679645254127708334516266094150569050779363814776884610201603552569982308832896451082890277666204335373036964163034113009709174866897869703823721706093993954982540338012032719794165693920341246712603022237195810519939997031814923909723800055481360309981580808969227568636070373352249927710763076629907727870759279416146332981949653347484434423292511194712875470784567492626609397280377601476433441163845355906586147000274030800513538516312296952941771866273935575140050502955235723364055318927976334635151521010709789984713596536515108511288861391358590259456777156496519005257348986763056931322706897420360722454877877676476542539597891756191130928415360420240587785496762159742510918606907368942616163843206159708636856647386825679751445411197752003224856265858430535821279133875054528549216448061495745515319099616759292633123304278615198790309061741766120507888693441851595673826901522880650197977607240256760458301406747476624082008379302458973537884912410237099466425401457739855340608422670322974200385745733288770702693121601928924486341314868474803761338797310103434386523425517194852030599133320671288329924060265061629459886353736810400614611529033014525764379738020779041328551643898658280669673632542820995921206433854332099386056012693147131677735550701385686967569993485891769951022547872535390897780847889615811818651676795668968133988751122275179237730713433119572629901668005680169872206301923646599703739642447627129873137051720372971632460391141217076187198824510813351799585786596758422435668000678853046931058444644383324188119163835333547466427045801265572294795383172424159334076747500514095694960624108720799398349148744932644658661563699572246566874683598598234781555622629452637936454831984999903475430378338063329640002859524149510391305777855984178854820241946215720083151457605689204478479432901300932427710553642606869289792865899214438632241865360318867315462985894325434236563713043926285348986076804393180567320442925452030017934132017820160147253046995296164040890860251585078820847962656282083355966928504514961043037870956712676412733239404351947909352948393178666843188002148660776366381865812651078319709177225358349727436029086549853288119728958188007646096876974243834649444102701554566414030225213490113678511881112644802961843112540730300970071380509962212564886959919151515072140719500091358970696686227365883097886668741972585790154632601128944553710804383993515950314745530312100858903270738036369524290424216493459973451786046376977623772102156532514967559170146170727450016835602602489792260973514948360756599603852989778333630818345043157070618036016106221406565136438032077953330938299630737310304175240599192452636570381248696618259878046260632858250341788058710231050186314609164112375458129132464382985216693035177483887422557803601139368794950328121755577211963689556455022856984410398318131866815790754390212924712595862980518684624810552875853688126680428715510702186770906748758615269421073205103318176721319497963237257726442126738873693070721733641344169571610669203141973758057845837495748555312973669565500006450922976245488008350625836854382918172999754034258891249548949419777020719589404380809863440773473457367950862821801471228973009343699709050063832793958939140857685832353482165920301471890927018547429031905318937444233168679312960013736528525849888813455515886110575805726086277264622445466707054922911586582753104454731463984204421305669649701560795513003474803397877776251645535272442787061547376083419458584034490034564781960593406608925619326838751159210382350525550099205789985283074099752023127404026225045952852807207432284206868432112964266176203535878122471166809775355992625869386487151568846154674727048349092604827187104225722898331323209760041993347377215318156048764049883301894555063567004090142317391850800249989634417764102299965021045862746938762617365191371726637055503348878863109983690988080255527391259821531051998070563213128879918018863275093719330714443112770285209784767052203736634261236996557474771769262862093473200492578005893605646902581866779504553475712153503404208618188866640941985828988050795567650517914988398577561141770684874511268901362507225856010922739280502609150435127898539432983706024626269650191148741440828433766722203534578513939639291110040713209696604496624510460216880105445358095720812869392138402314888337384041587138887234754538521263526356925516100498707146944277750254624539469226041736655074427913352874157775049117395942057730351223947685031948993982093187069121184239165459223966500064460331377084177227350039729101696175647633701709322175231995164964152609621818399248027550312769586893321181060152644305722420739187906131470049052182135047255694743340554081952762789141576415341010740809658591878836401625508647508135314409629494060749068001837717387833567139976957330436832719497657930771565674236848293589528145958206664270935786568857291434491185446697249469554019801664957871596021265200940371791475172799978089174217159351886328723455127739676359193454526264674042804565012072370673501660213596273804123002033406447810338781320015524051331916851735209120575968522749260156257917522849087786403862876473149512389050842972067097412597199540177087959969976428487791177448979638248940159750818387402982018622349698646191102098924944373080728243393031159733822519225323066604559506311912688326556787218853265407347873848928865900907853811822860339924477322763227383655091630055711196271024243534553200223385852203970255343991788964352104361246573871009161552643837960463961927068447540940582438119908216238891130902060933203701854392293967578434710247537539530366466484139776707395997704553611169378633067352835687116806201891806717512493897273349885395206224423185237261383668177772158744302462499335188720940317119525868714478811107101167228597856050562678809608768771110308914382881527235623997702114548666041706265095927412121865745339516376873939586554529787733250253004620537181952962773989067388059029123762549877524032978047576261355594697258667423333846621620638617831711532933614375878279764119941082212369172394684440138910613734518823034331233512138679831221775801698204836657730081196047473535424264673000955767539853377691218053164760918517044403749531987731679113628401422104130477053174145580516482357177798306456942643655780027967930670340670569261658727733720258198342455105505968892023537447805546871345252451268389830357471564729232338204188447013393926442460324018744624930938221465127516458571354087409174235453171948462187969405384869897572349603149944329580632436533420438042884323989983387323642122261236353344315156741796278452386207322284318152859182904773867278966706238623191020677282897855320905288425053846863206378318045691084945772660900731085543468476690465523734935119022393493288176345018177832119663172018384119510232496329676003008380130557854733932192100444595710738117616705650502365219694818233333097172715660467154793998963795344577543777941071169707628891737524739218300826103283702560730157726036233347964939440282810588351281027128786164786704513084811947450701702197659305086336691639397240756114961837145322107901219236396123162151948854879475726038241057064557101914411394796557865221995786832977799420616158190421199804328779523803078923935238246014691469191985984097476737621925648512609497683394323814350353030528893862805917005014120702183193476885073383308484193222049486181542122012591967764576508058009908356039633421239640181001869819264183019490851986961023905504549802445436822474962843929948328858861029117336213311480069656279540589364663083028059360695616945112837142131668584588618999158563030915010656187447838758781662583753250331282483567290229124618314575907903306122260792106246866753488040111507293408785222733956893797131770191268339073414193623692257641817849473095550216758086613753933014268086921114689353415805821480605188620453540547018129137849465687994977111584919383874243415897861567458232372403472366451247242592245242566682057175377188385501587205721216556141059555130564128823850682289746215754325773170396461695612041408680879339675971618011546959737197636267885039612063272069665285701273699850248007017909032942304097754173880308162414378271046160617333794330042762267879633652609171806218176570776425124480306851815534894077226572665555784120289695180993340164471245350186351989859496912795319374523727128660241314229472785275427521238881798889260553673141806184915411426760486365089679406210244734442261591353011471290958976488496799217781710618692356570902404309327249180802605075439032147603679272930212318146572485954069249072509969071924600471801496021266001708208540185386979444061061874796956022519556111799502536069737887707504192540901460959766454095721506114330750725051256677110244056700787514931325943466905056784410215904464605003327425164161330798211695301305545226001520523226055412685013575578353283997562423475490273736228635304884923152431652714206377179432530559364414158277768705944582999890661741671287618201513193834412291352942027630066252878033901951411590252856648644064864494377252337098652166561023309997433917898214081460047841244415168358324133654566109054380355381836393132009066390609855998531470202456679483183821685679799273391739308463723273712755067379760258543652037861329541856132673262256090027350797718050617653666473659412337889376877341965612958770184114051016766532725903007040117387624743798040968241560900832873533829682207106495900382806666063183464489775659836402244161332522021320269818884981277545056686858272949723206880942646069108486955689636523796633416767618649130165797006258118935117019395168713318425501782864495972917688650326631406870549690318599268668264640149701140431677501848251661674368697594386225006884221921697351496774888445785396651639271672923581391740982304057511086258657605237940166430547722067274763874663487566237489199901454889032183142751091261968444914419433702088907512341537424028245969767504506415978094388446704462445484601518744389283909998105550534410874840378399180768461415844911707817170514284435550673467247671107104524549718843645581608109270637434730842904601709601617576809864504168678079172976941044948893091293706276289746994798208543008604895634386364646194676359428288242292990374367957953661483993788328704106699493760747064020119432801030809853960403287084145642606750947428798610422435274708836999669887121277771043424221861872178235503903036950931039676572839213254857587862607197275391572650258040826557387908835524073151359103878370504264425189206701389387832029484220764222162426504875285816538611198075698497764976893960158155870930509027115773857680172976464511575690351881455038515857040646910227196922568022891839108092230784573641207308161835456989580125823608979806547434427165718231898287973691275726279283514780636923175941442503548597540819446013811138153915515060685282017194893911751544959505648217313876974455297277449404188259759741644862102475347185228767854095559274615271976116902363628866518505802425506061118971586283681544400379201499105933912906841180704972152081636607428912853096629466492472457333117002765122343157703989829127103870410932141511217779984105983900276838014872966586688060035408795143516313640457841240639095054707047724526829169977937478728374650944675551955802521915304628483077546133425558771223891218807294103123921175419996855854170029895675713959982687514816457390187424941824843988054243234882118304302483897941214184368247574769696822668531906826240001994521069935896399003484690998668126611952975612591178130412069020778971528159271148907732429280048780870796886608635104509356824728215763923758827264490741470116480235097634144141935919814479641977275061566362529772160362925862422395512476637807818089746628445278288421823783894187136279481339878088884754085548701880666234368300836473439416698087498386708062849853995637858339124961822709581006399044402432131684158463984758579217662347382518045068986348582457089921714255156600101568271454344779500441694616214114295742699199887794404403437648431713628860616335466136134951784272485200499204552066927100442394957163257562318097798379174269713748782271883857723362840677043983108390370789624224801532820012564389545166193846967546289229426089114421969156461121307874222876121810800011870518153311169503362927422888824757073209920797329594301589017876656025063410067248340689171993011475619196424276216148507979230161488491085325279138211634612303001023211274150940951135504933029109938865407520001935490811894157469964636385685313338648614307235020684639890244605074420859041155766540524496917807254746781054707983132017470802066046668287476613386335310125044320802597558922636678621516537170425854253785917894769566477393493358445949383501437950802031063833716618665050123450267735661339110416889635407528753796942034393148452438621391997728741783428575981225431970812940717171439739454063778808529086342761152364398203709070548436622901587352062140575102995254666976829785821814173352242914803739892723271577929336961664941566118171813321570577095718678762512773208776849893916671888022772452738339518829188009061917986146118169293596185123336643944898022025325022586519014772977065163747592937170505161443152905619747218440774558105468283634508454987399027602337199120321325236763088811923589049314293282005541834780404560425630830472316063513728650666324453435718263936224817355161728498073113734920516613016553298820112203551593301280151938179425391254498154656110592878642527381294472821270012534326039167731406772749086379767231951253503867149532142577627049604934447478056176423364164149219703532506678691210396162423790182497071081158573199618946682783542700787575455349655596645396646276441147389564858942221948528710379503889716228623234518859462120179211148156569454016928287848338929975042011767645105333141672958215042404603412628544841299200739565566389880894240116888392758528019886874035950042391351550543708636380587737029418109613463472139660078984402690382367014278745088624872822035388009815689675260285929363287335631571429570679704750504702942899351063260717191302456869901703828974588935628487130039974915566825368196798620629822660372104694485273415718555027475693300645439028271556304189538688105062152219732035365900766340747042206032830459376814110228125344516712237843252408106182557703651082783774101852303893456274847556574949586637205334896771310913278447628105112393230843753127762513343568747558018558886658578805812670725419681557283635323445084996184670586431603620711183149720746314674601895260465996880594446627705447552673135468850570684964126687140820044806586969106748314090173376185360619494036419879598160438732885094095644647765102300837792231420424234019975968357612279799957774667413245567430610778393229491338029553996719573373923979036613342227488189381304596965685301665250091231763304630039692433196517111493354100861297693698035265860319783318484537417314751967801886234154953798744672083377769268255885680200732317263456970292707254250617425120082385758919239134878486641383506030517773226797352911246211172350685574471544570684591351985228662285238789956199561077050067514364124361681234972190997068568010426272574606570907296632609464018820297347010299879938649362724033475583416837340051032703577095673845681132865917729073012201890451492408825906188122457479141010522127894695219531830318511470258511337355195447247061264597730212977907624261164789051292998716321308907029849620108888375568440947934337573233437872043314320050245759049608297392206019263892461218865173637543572774769373811847316487660476110868998346704550508748563797253643692778667074925094615560574627522369292023352571744596704461177638230841112688276798343726720939030689806662709263019077335618270084024552299028889762622376380113437433495177964648418420960233693745313732553229875724921233318332409538546942916067668653306439411466364679418929756516607145542197576150924111552682085356895445491310377659523419711484417736668061738329111621722456636217718479611241423369582436071530536922717482392662029618641961647653517934533295719608291349915519530724355831805895575938365455567141507277758499402407056608539843875953718341344677605873925862398416170867807510111498845053850006370407698357386263114346908100591133333155152367549990182638922720415661186232654325062347342193181394666961727818741591717271648888864439903851676078437433631086016267078989015105691980846746749892619855960788827323442886199271090319033353219013246797568042565766453401479532082554184053465599199291747416140032127046879425240898433392851640103817449739058461825943870444029343544337787031056015776374384807738892509479668424230272068692829894343366447100536230971671253166681489417620173848619481754670568983955134032892997157570893264921788677714012456105976392391825326350165078077517935730852984284439592491808845955269564444672384010485480121684664165717932109834818074210202373766682529898835663631884094377363146478543940230487901745254000908663245096756467916608541377345509422730627466245099381700074901411485244888360550458779922647614058760448408637578157022396906391369196408155441783084334867022422579209192977972304031133747288455876714257442228759823468676188645327574586910334126661605948770848779786117524317453695295201224323612303115589262832766586816927900360999385284434902752955153913902084852338487248783680961514934215761922755118300911924917572606830152516485656038354750855419202532845774543265977486115917698456657270573427372233958992723727007444622538365509494503423551950102792375478774041327033155158822730459178394438046538094438591193259861440838853269223767972840657818735494508723235981340621533648434846985015165568355400569180489656772548322028198905116995577208759576575888147500768967304595070472842011263369371354022620363705460155894105815050057152144877411020943178564161073333374120917071075955041484175718335036573210579297778283132286981167500685589170661825161653265121510843297974703293627219569281010859212498685832720960272321815974301362518241409659433182612234725713548642443414518976011207419736493668250098449404017231974780287108144777798526614465679126788412849579151487653867677751466001248454867878235857110470607867417612735968355278583974208473329565898652621751452391799098774540809424282795816234767573745157802650005770358194665636836642737347627007292082231189709225791850790761786408963339428688004982134102401849279771776004648622105040379948134773673861588056713544992638951199599767282120887367249242126898146394124915808065696517094516093900377868593481339474247019363601338421900818209874079533631927066383593845250627266902946013604196054099908663028934396234705590857945388453198863660108155589481306044061929716801875495356904045391805088368392470697452048291943026559547468690702074985329852125754124755992436943424273000551344914279432813630000416881488858238431911296752210539448174302238941290738856519070395293370295131419277440675595009452634321539246768439241390330762460915701241921760473465203598932096040372375509050558082528442305923828380266865087094405279119140901157803211565817728181456963004265340038088196683035475669292594362511923197442641652486948996282861710911348206996330584385503614472670729539516558315076824281246391671225088079294582319110029825829559755343846928142846347117466777428054233073153764440926340248801309042855940871486302375739683213315266089828517079211061708661862257240617564428351177337004477889478058509556280862538244291864550788989496333349624929208808074778527317450672488736330741230001740532395123669121290810452584213917814699793272114436071267031524670965376147106203227608886800987392489666947807779083790649144309514630014001549103675325293142698591601489256198067288355060993559417817428369656338711728665902962429610714176054969739307801797903965357451238492225608721251187251945612522738561869769402602066948712230639389322182898644932067006049806095472799245457775365464264038421826487501665153105850039502146625433142469743266812894329554239455149214500302961297929258590348839767903202468574277138847719189367650642989974570162496829901769634208157094951678639442350612027167695294528627050500956307161078178881104010508907133577924004335447496641940769241884553903351592664172466580319995644677630385359536530781050800345655653465172507916876781759692937763080936423931420457364777538531821970666094921901966215012103115087341561133093999323898709038862595806130487508970874789367871713274676135004216897892814250259593705897369627660439058975497086912919579644248152435396652197112691807742778927612229631385933276328614628858661486026051344550171887538539870241272743692226518442785816383144899402667020366490264260898704843616696690194390256766940938029785069832955098644149715344056792758802883709393796957110692643648392912965361678710878519519129298474083654763517860406273348730774661306345302254282239602795833737399497487261028620710534481214808310912048236495657504620264192075001581931515689039623578970475868393410194150143617023482339941349961510573653440313416792049405647625877146991015151715805858652716564476913091509671843967522273526352109538837122843437951471636062643211142216833890201303104482228530645045336300311420928374396909669922803083263227721818440026703389206895986944319379299297545509020106391148592310685616510796787443893313554259016611406219913754840446860793048659737576964131501922581459071127375368164622735052263050886279305186461180012556764697357124907994220826518784402936976655556619348665417562083449443734496514373455703273436678799126991748680676069447628050098138191106712707931468659778583119675252128858086507378133350736159811688372607318943054021538344780599634526233138849981074197156465140743351793180629650919944588100314129744382501313733405723428521906273200437359734294871036120237135015060808649521074215738773870339807353039396794614141632328768934308653721208914222920241597781686131871878816905084607600213451198401756023014760052244715817260560750745130729110736744425940305705897023449228766553896152733861773859251176225018811059894552432133404822977617921994171632142010043209026702952631208846153886372167146041142246313685308338772898706616070336471417352981398825729642026229338557502028408333309119992651844143867038553022076967011909210773197444177333851228974294602268387712793954317953207069831812605991357106330522177211860654088375705316284607033297769978336382704638040541922879737720797699471168673224513003174560136391431263326931584658754245339856678427045657451158000138036894592690539189085272786126033062803270438652879392878127659752277027672319921819171205320880996774039045761762056053847862466722864255625733897295504560840308017629654767640147741841424128251397839590594560847865846928847421814455160014853045158823141687389297430333128613331863114884190642171711315749681607889668383859873835990869578314651589287967776060902632609900092860082220319558254586222439823479496284203483704582832025099026545696123834060448992961133872830220446405751627989436079016001624633309767711222041576777725335396978440906132223938184845807001439663453648272632614733113852717671957451114665162706731873171018208967999215975097684918910738536044429867104330551941987811283538468189601757893563014477306288377560686023702228682855751081899767471397688691841978227461771873775287616595819071117168037561162878301222100798494503642256153378896582982126483905735034607567335838884562831330803613526451894253059474810903484719254536923279514987539866968772422158025662595727197020734777815059866095222303062539550285024917120317225473117729835416019506651362507868290393732028625541221020821920531012440520950624650073873239084111478567566986415422263147048353861992462735429261900879348767423624901941304315297418297047807370893180220346898822704299401439470930961756401534111840912980567442354639670092665540220371876985196372444332177495641193769444814981815570683948055366180330000171916581605047561973038072305684250766987956098254586893648657518513999322208709882268066877887821586739252222318651848729591302041444558040580644520107103769672916645232341658602088433850603789357381017188137297730933966876790153017247724323516387564234559745326255556788293302963539960342012981720151499900379195921823102800186593857270490664420192916843376501599737881452673339023501465673012428498348060354973557523134734701951943162466890153499847209181243557780365301822796694902489778117937069965167098313255267042327885957389673450362037166278101951746163126300305975158125096410590822249663841638524166472975336940939552336973563822489378984744486373841733824474119457661665862247085308094728901308047554307712104936561935850259743290364385867659124931322441295693779401205014653502285121007265306925047506625263820858261431942639528748424188814271493771328081914651791096812410039217976776624688166556487704627230219105751558124537758611156576605932094806181476005400292968321096842789997800990527880338177253663545186778768932547068723365659124084882004935098960309286965886575863759095233595206530663975948753771320848894050071380178402012615072438845406748589573034879499808642501237019553364097890760474720313675639997711735501077897855133068783238058558287430010372522602076354524594657367491778486061349401852673303056743917224044775926472213581163896901304189996146387031334109879105047666018190931949190433645393095415994415847879643646077345269597297299159773942660244538014739396920832195061548500327925113416064105448517961784987868609308427461667898804845625717395571376343273123104695236043198509689309663514734482528200620805741590415287772304231583951104412192179781901937560961755599504686938835312731806397484432922774264756874265896460254283777325704332734688632447631306866827571379415512727833648176184797588468108967056091055925466263661247004340262673031396253475953332611542217291479986823944157757077483044108252186211462871868185135173841075273837009166558043130229241589543592144281673485360640516052526872886025026671930579523742057960182736764526049170750051331617980550961673846430336275667198275004023327516598896453537245797076302333535634642596364557865914864930718057114950579246490607676172418856018085346566039058697397903952542229879322128671673964718542070287547644424344750240905245464197036268443151104114724872189019387496094578559949693999678409639299708641390902203732514698636553079093599443438284835851113333964386933921502841954985493576498904686426699860330930762096748300028143142763888450156169931078918632270035413758945257715397013929484841929026147374014178632550173099155801946581563844574124350196371118437277805082292263816254377716802215627391121124104689881401874295712282976061248391098266589609173330755990625037495704987615752112936503805709374525406564401123145012271787828849819800142847387674818445206232071106647852657044387693982730219141511040976812303824221291317480056428997440836050990949251497014431724750043349640274790981362693513752621134495675399130277566450068445998527647283234500774776514373685719989014476812568591626511519072981248368618293417029545741092757446228522975127925625878788502440255309865094900714536812376375087521306085089194282376563555430159012090551987817167696870969102017061051255353950953465946310246359978863421717036286761444717819867487434120417146308412740930059575643513300705197282967373310598450792277513753569785026824762215619313316550292380123150197203105117046953816082267431423857334358542975129486329603630620908349741024188259543745519590444419036407549325385718430068659779752101895143701236611511277426153749656153417201292850687092993031070148947329733057187218163358048990377845187589674054299651995496090852832039365675790428059071343862809121168952420233090639363109006668416763534531238451676962501005726024304861048101433664978671449203441605994642058275125874119417657802949909702591057958857659814736565437099007711934726029379606211796078427627363565691737723911267458339605127635424014933073419215011711143728093099504756647065782827566132931206148647670327995013007739738009126480051265985540381201701507832919718946711564551864975212681173192918468437559806857298627173156339489530727514749914378953205744476296770086115088480858844502986399031365355979343821005137742802478802126237113121351617820193625323361081014333517112302248988890833394940319003391400621353844576536694880417006219281721300845146491154474234533486794085530040523607142904965112459060266678096834582956637823144744969790395452478468160852924701365996586152276053857372712858578721908556594748759230753295517233382088494348090337141396612923135781045220945144913186760734763990760188222728930796059197971970359630656636391515935702318960843040906405557994257126417782709180285986206901679094652270741296651918577468045295968901210435331826730678695652480735086490559945116034213004691759467818964254303019318011431004547072862341591390897843786899327690200403243204674018767002107629247525931161727383976151601777087198498111428610279909102488454766588707416066242717423822728747024451030948115453530940541957748413110904675983586427867288107629345023800543283858429401928009428914281639351518503979739319126327768906663215097246933382953464559493513686018318024954044329737377283435493796655877826424401883664488533986626505563453559468667958213302953130432781805531835876030469478783411569292953223856222859360582235249822295327079769952105135947785915230299734316420683367897212660793425783414642136135907167331729658935788066474487606984921398819407306397465835949812723356170489586066903669721768166023871135978903929768715555126724591911944604393528655514547260788111847087212407356595274658475529142932649012844403700797189778906175259304639895259242994870022400719134887288055923574284377151336712966896509060341263123371839675916348053706225569779954852428536033993128590828228175848423467967606404827599905116409989462734247142256058605124650415513156083509014906169558826112605600051978676192091008856702431527810563245196838499456357083633884078709626812211605170565246428218897164880286385864777078166811360176501381175378404090835759814839628491099234531815014450028644947646665200660599650242994014738143697185669380215620475205601655585220576774570346916165966341334619308546630949247108681128560701022428357055888396106733753625730744042354769102351917340234192780095524278788774725938814582239086371861845861973895769987014683367908596869984799173268295175414382085081748023858422264397210977339634073805357143391162516050043487806753665939945449573844499809542729235901953986338205167671895995154555111020115967064732528433764747741558590049184316118229183603104600915977810197242367358287184131202025169535540183854958063674899653656018790011129850657074099238868563294818656663944846730587159921156560124747311067605294439221717266347969694683964415088841899271662724477016349844709916127031185657912765419041357598955775019091083155370819717335817507249064367637164377277178618065399877807231518398020865348013608123733738364111528378342383445652321019292092571540052366566673536479881936336924117534068563594275906336876448231616600675810256884476824924217755664781207636430748403830317496898367082845965262562836789418988292146532851397519256373177619763431313723884251248248379203075813850266728912446213491407841896193940838359381198625664805774581606307148287772470767978187256568988054703248400219360597882144024012406227779465134584966534349816359605371791929269688346252419712770767816363814725037798065841575915170738804626992424398397681463078854160729889791572083026804115921897053550557551055176893283239233042961975606938920487745657747193515416059180215372889076925424464824798688567701728921763385083051023246333914846770063405583829583926385314029513924018482935968639548731963404837941296612716243091501989191634737755348714276987742097952566533013463224630717360464019112721016687113747319140880334633775977435206768416193178515200203785985433353933188187785963827173924671105165517921626075985136971224202051483182089199104594817765157560386030594503574840255837764430083254832291370781138605944422774408645045128624382551107255501207532235859204819351955284869628183264535376936446855715211995803550225932683123217003132217526815806576633528717553800924390735013807252745131453384552862029847702437723155262753490747991084800509018502080889891783529146506924486253076420002377856927455888665868407308713037867543803687235820896896392620506646773219655328386534662192531828954449568376613260472813699205251553883507474822041137834170160738367123821136584668790752504025283635495106427613700104487712681995763588229314506853353515181986260252401394050888443856837329598899919666042344523466036763497696364583714165738609472573739396851876390494844201592584961769416538188114627883772380258469251792226061126033327204089001344376264896178814324334489334241679755512713820882939766072984160303764895313706744697383090526470660616241761139394192507472670391813782544436123715119407897037471061748066034425701936209789721956432625055639906951240102221538932974807459549259715676902092261506099303884625833377748747828100827458074210597340184121845542561585270126655917999983059816463936307350218985899342329739734982856208343730335267091233228284074769960221574866834259256272329894869444127275901148954079095185554657124135950720323013880093864735797482704950912236855794893335944092931986462861512832624273947648957590003014366553270391466153748464266856953538513979441184386857561758073891214630382532149647894365688166085398174336021392361590955564242380321496849091476944793628098466817932296581332254651449764726930960145708694817445441455804076353180736039558447801613407798206570543279492847416152784217446942927023267260937540390953746629208241738510475064621341054855739483907999324349714151168450754536405464921261086330556410285592409617154980617535165634101774296308533512242524366429914762145891155962461906885936416922789156080478947260094417428891512368813161110250289773527174161498242276686453826176168253476118813579605061777964362043813670578550226367159399070144384863044551643266360044756101760491709684036192478204161495707530187249695992660903612846651426607564987182575987738582080220868733770870423548370837736983909510506999192492414431786388419791359470666064921573075014557109263869292016007946103124450865679420447007163209807963218107353002661611106332127243912580161711980944677656537152644042782129584452231543653918385389949304211027698215050613092263719212490283601096841679829585054025069735639269055726568479253629614590598160766771150179904681790366709724680509350739094171063032137283167782316017320689555842837822237573478281866643642598122033752768020112296244040503747959860842550796668627943450558534742350623153723723035240406976942400450464648567452220024073721586549287147611760941653537492678942272232304812902902745094196006245605133698080769116717045054306446121232607855463139891240464128531800582968508200266437391423086017479059350972864609211759988268651858867868642605981256305555134953859171872688884180478324240137880572037206250729080810177046510375953744038612467906947877263187797762002817904999663218093699239200810745183429107457672672148578889618671281184006737215683270491548568635756466743769423189549778489407936868018582371814862837469695460460175710154298366761023487675875421942636289719716728793380264494758983458272326651055613263128022921443856713983870491619377027947516339751196825211964421858751942011280620637525344319851215093654022989723107915172733887583431574569523247977435378296124051849726475462692299617595273051146599410848772756334438018554758176332108463857878614652236288031596085390666030486123685223559585941480892236621871713697461101713690060821587098036706393313168355232641757765176364434103924155281619884386605779148398406770929377000586042935830988268495452850130350784156419365987379552999170676876327387279869835743148101437437330692384245794822424237252465136722338747525105043981856176374460995994815517520666047949217699327183116128242687241554450772364912045483409553797140170033591967001201048079927813884464633142857223470375738379756639120267457279639181948337247557516896954747066518426010637835597688817150227653194069568035640416295403970223450812600002143012876828149533665706474170733755484620094283715307426825599644227260113485997100773389595615265160740395860773869647228253109301830854120496088597254057674696789975102553137173854292439470166695784602096855528162828876381803220967649280878257892704289748312753887625354526768524334598825886901570057858616841980916092977128886646700048548934129015230577842065594798989987830260391476891354337717210610583844030342796709152631573236466160213695356498876902671262643267757657611880609899651314170385916930636040156643031285940705558806042115390080401826623570805812282533296232366656979577827095740430066083220738497440632984535031500799887780995241351443957001213813694603304871749607694113287803491537241784926339231999876049030327440881803155156731418061936572437268422427887878287876171414265647456375981184144027849014384907252236571826643082686507226999616818533430504161075662441147983981505929898042501843126118824830160553526844407297280152183182813272316693472110903814419768002842935772922989879326830313731744611179238955215812762788800588036259795748548095953662212662131388443728213191325712154381968245814011563343450461448496133193731457378946209503136049436648736399128967736887143408059711143671423755721155956606069885532720016542543008933352855222042866518943701669301554318151912262088674012011905035958426443508425008931641003216819161867199800939015657489846225089348332620064879276157774823535652438380739993880660288059843335289936954717346891697341399089848786139165855184760509177170510701720610000865162666062662737596379431652585781627048115122776750957852275819283103926897111932993187375104058730979671987177969174150790209202732397933263400536206276497534015543088487910641915535475866007130458267266685658571283024102256186002585121950121437458835149282625202001705485158240593295920731525263322238470527996366662698575170068245050191486480546149157745435049633823801783741312092039743672948449238254496868158502145489792135299827869280787881193278499370291568097665842594079078104017304520945765261680853839402470774194229274057696383915056336828506544972564658481570312327241030127493720779160097643214904810459869772908971882049606560183284527851841191738530727571736993750361916593073088793237528526678044138323899885177864313973113943264012743149074554980394929135178048884129829118413130670502036835958153813977841753467558727193734775839584355239737878742040025771778286577342183777324024950052431583548662418084321550585889418604096971278708419714570045736078263117798918740107877465339897115102827276605301066025029094125971850152407674161837183301013206940256455023558389225130366987596844346186657304333289179839316641946292788244123848318356325356506033768661584452729108157817947387963808521759890529845736656035801007978106255083451116871973151164833167529614435674004386299533659485919537911921036789550608503065284894044509960461812605951641932903825969293581225291055237118126830786752677111833675440238290222108894154962931611679145111666358045397367505845756120379863166898412350952537711341999311088001389171117460343148828755410804177033531988112328733107160170859031815625384658851052070975007768683585706831464789247488048658411734934459282360746508731088202753930665775756694027223802624992897780151792522681192807822043298938203099010103163046592142044025459168170932030381551625935200902407645093165377936959601214275901455256429007402915807668315330610744284951023936408870325163158345509914699485490932609339592960345774270596372615929128397253216655193561269607397226661321247161937225868613312803391797986895910931967412519681985569373056648953917879712420901279753446583481508907615202843838422271985906929735526887009433826933603951254278867230231886674060296474028412610201822630920288812064743833145542499881760052561742941683096439341831123995965537416935747757644027071597513394527808049938753019934623191097263216477803489757050067990065010342266887114010468355592217796119700249783454197266208103891018315841353120912120067369040086445883766092951875500486566769074988209085671562588290213544394322686966203801024091930924299920282260173378140530343342281866388479036129799603262435351967641345588323068710002732840034523960075908400999297242098717978846778319628087104068860952709552636092041533132888494918793602031116667390911370133314458695849498043972698989883689278739340053940725804880801116070339755117886945617514570319119113792011453913806984111720162266313987780040853730735858325650802994457726277134355113673225583856358026265516967271989237773308819872283383546624382285204399073918642978307923719341771891440504377464341669855099068051955426949737853437036637600093795695010659501009184617162542664724046811015824712325101319231374421563280655259268038991365540487002821404213575403814215169262545465414241760477303363170986402983675776858734469649878910518823715535511084563240342514160583832740469873350953121747599166043997875162843448373824270520161203583630930150613152847354001577570087268250896610210181633575361023898010463703762686637533371764612572375959761325653368802854868024918552090892530502136529428475832562799997018197888853914268638545199525122896649117271862397398813470114079251337680005270598571179180692106406064057139352011239259782131902213080771167509436334854830231599262022715861680544080252514367318150253503785304231126134835677097285388082644175296194004021057843974433555578198173832813013404276085520364507953869169662424043399806960190461441292566661437219013639759430084684596394957812959277836139209227472066458644496196680894812414372291069968828465203017349707549393426887211821035520453446237090433703237498512105781635083562565462442265164433548393856058393469833966047143260962366091127530871015491072444639329122532091063926657173377237516731207291763222048878489532542884620470876263654184801735380990458219355631060340265509649520944788290882733720067514629737541621752121230299168525405074941438642337785845944316400823792752599259740617575089254416654353886048118891693624901282812209767079148901434341911206183491322952398802461774098394526735832794231314423701500472450555560555366738727729689453129785778775815889685864704739719344226309044946253318694701483931958730559763807012454995483300451108312921073502370632741184876659527250180735997638779339678447594531473889127612868449256186328920013784875355168791045617083112227660958021255503354155151509000040667624715790685345566326142537674080305992118039110145620831099749434047831729660963962657641131324257670969613621431733695368669288770843205438193636509609383938105825619716066736285977440321692676789609272936392853190686011833756599716485051690087600821687987798507310970277332398861838598032056013134195017596369100610677542950462677208752638787605715935414415671826400906214148257388523948633173683642095085398529745362690871273333758727435451950172419907725095550239841637699470147479153481767759160316534950792959190266660390724970895086290051050775332232485792325246761697277464564868989154622946692859412347021607049207777119641667562797979199008884196412208987169312062396005195682201786415783519492814458590023189009812810711415547458162300634708802948606159462580063088776274287775896149489345639205696739479573955501884518022483453881623736028108054770100120644157439528730318441082050471238285539209663753725565217982303005879561710528320478427500605121938813328341528440663199748614259080994921900403729076558270091972371476016220203513199944622116829852531337488912998878484296327639793026787702514853687796882345892357370426684920899858227266767359548472128776253876912882624217198683537796357836087051023197644565208216955400862056935053576737736374003360651886916640676556473509105442672761495735082717943549352609045132387071775525688665859870037359883069479025731473126552736736297985427603125272814888447038201519426803591565738414700364615960910094421425127061761699531100489302681510694835330416215735397816247156262272285193542770350925258890300227556383575556170736050744843773196483571560022489727609658770427131344567761368860956340451899031223587345675337671193756721858155613822536981650865471427737369454801832897201955331843914954055077581751992171880188856808259254456050903929441264248416335376573750315050892926394205430174740266746069158925620545118098999372049293643521984815480408758316653070463264999018927458265564250125759052903108137267736594485309117478487885582752783266734750413664407496766855638582400329833311397601975809308140758054701930090146847251474172555948843550529599573201925440919410641048877066258910900086654048635027091380677229488211408945417298201346160370859503185297932909779966217595689006467338643676667222858416057709200435947521985636713941026239206210030079409172286575401002983677166672267481849257109474526878739395427628056038189782284462909462956560323321878970777246372354714513281644567541112547500201362543465711514272722812466541490907207755995653635846985500815126011561318020534142485733497208455420428418128737201851773032782404490957035543886512418621023148425946885114393826773453173714714098220588168997309321993385311812499550755864255472767114748153848471920121340042303068634713012602797233214671922247904284273030864847412961256143840155441462191777711438882940128628862391741288683625651838918169636627209584774837804759800703757622328180196097745561278968486926046661870989163416913679572548268083813868831624711260638632356767706950124391061127484117127766955944745209496119567912718130042419603611915345602242170563912785267509080735857766408073085223988656866248171270138829557457541710253232810274921443746461980743993788282658208856989961009484845560118741332917716226456594329565960510445586221744128884541939967156933115891304480195251184958130430715140193491909206088716021705325140538228034686530898977310306740151272056443899210755244594238751866363957493122585367177414590334376286432247649920037635688974648729066433675818355848073942893362157463594216689729083758725101607973960772973131507980013360297639217610602328222669361826860505533966260574397125994751230567717637943515935298038288307687982314212436438017685729411403954821751121735234769847009040382908281208125884230396824958404959900159219922155281548951559218213538619948330402045706642993538350074873934309871635693972092821388380916687617303157547502555238242305003064792954387419184276786964969742828901052375042089708138472658696035224360694766076592821117108929380043869381915919279494932526626543860167615639974225834013635222169971107170579279825259669551460695629311749846805328179641088903759473897814794950597168565908317453162956293087800653161816544350629378553770475568412257102081067004609197131613069977763177516766425114473048636122059084892485102601937705904391082700748744888170845653888875391685048663159939082751042485691838812867849762714165963944101730272324547122621516203244323907555909664768667073266963035282970567464187661166149002518892324938986186111406286849791808444997224422182856016488802535387622839966879667881897488427981156336290974391463206300188856271481017974711021836082272081291969501879906639288284860391770474441783637415479038347737034592611698629575749748954492637392472474646416867509406317149837820165280455594164594597546020927331152828539821704429648035684947158920228726316231814229883676949718784635466009909305591432374010165787888996205054540432685602549640122283771037220109145175423735319035406893753133197131608455258133027616302012836223492856219404503131059321228439779653193183794396246885252036686756915407474342609862455052622708726425593105818689364065758411804031811677375860787103147122270710924470589940846045393130023383857082935597460585961334861312082543072345398978219072023255456779882443302799773456973588577483303552913893288101900599293878298398459370781303748136814884131107437289838673440442839826860858063204992174066547163088244633598627506285677212274269689578579472553578669288063282448694129837727944594052692168727535900233516326813748311575267997945942833489358283950260440128799307142634357890289763295592225423733335350401352325315558932983461928770590634715782928200578151969575173905017646359805282000279851963359812983742614557467863686390430434011459720281921054011621346710129759683754058064675268415119749729955213614621133792054352900786440920681563105143126313661437429465906724633001529206539543914864826034680480198227265822518582056713983935626442653543603135691287701561095530455460498335375924743013400093311472384044724413315149489384935794255211624192290973991564308869318171969983932380644272423011958436887673686760646974965255386369707800454414829787844301401740146772823227052550201044584218124588837368039014468034525306539097384525981339217636362892234735575695494625893294734837038067215699611925290985905595753419217314591540782855341288784191687117477367225774993287187640280353387439162059462061694378942396165292750439487179213146592905099764818478406904761423419611385079271588079636274410642203360379910365149644527720586102795467995505155043546741505400167740965703668401826101261149344688695883923833363633225855022315363421200750697466284977569546827957716577996217095697859301043799238372422647670910929369562631506026715417833614454775330718047065733319123922128765367890853418908412508353780429315840302932421606743989227873217408657560300212626591928620045646595212610135500429036361783204717869377717757084944634531815554091558774702468479305863230074617992392099061470626952189543957285206260159187004351437594391139916229608664589389233248541842713461568345228963311466901196005913935754434965362909887973885722591089095206607092184563200190321210109687349702481578209652247581151455598699332637558404350906170617390758056967203971165200844999498648765211817865739290755364969178687282346811888507670034356829472628224280509080607971297114618225836983582591274290123824028651834070347383702674525724761752851563931651418204537285885091999842188677511134236719622115384626024444065454804143981247290190013105813036901167284432477111985467670578644768423631030412878363497257336096465127857720655739330812313162984937790757793992124047686492751273428314975521087194715598743896969019436082054146841523917790855383020278639349494557305090403575987760778285534799650468234436306553996780345560312347722940221917927610409751468728569234989404887683085185988473510022356396904385268910179436288416219707318570739112940936581600142943144339808155278917394556597598330791198704803974705941317713705043199811474277054701297374429232662012189535760100254486441648891128652493831423931260467044692287238718959279500308235550395160946828885384959194235435954537073481581511318584122854611909289335304982532166599414989955338088235234144198321556969851087229940966221511878613738857932034930642818173492000224464443813690445874462143680343952132506128436184078498837909573296942219393546229952099082315251960206496901400016967382353179152502745810807457310592233592069386457454838993368629425912309641745877840824352242739268285227135995086755243607654733992462899420773331228468419219189160901740042930437623492060795606466448434911281903806454432093888130942792572144609425181574672119330312863371981091270918652645155002939467282575107915984839329227070891779916175040068954684272264830452356818097947111284984116475416941665654031019491996835064848455523541481220159954099124605698566149908000875435016966371305185109496477776273366741475101042253997134832680638071936558008918041733798454164838833742556309435588513498153521332546754206137526137894210994701482349519272295554883072532880663611913418382230753154044918073445121403844513456468778986689299004528133352265002382269797612118281450597227789411453024158478733288912842381029429847711431204595314427894819760175013966745642120313776472403728472440896351047771547051478105378340796134174935722074993793571244729608454603471001429708612319635193181364211604947741771318026944323230159316581588940614888149813979265371037422624651821807277472253171943725882524262983849391412694977519706615154393541295833625781393854881054682255362073948390156936638884555866439084975296995640581862239058514788975934424237956587436118756604750707768541000878426991616535950445361201755432918287146103036162595891623200004016816416255820138089166930484891215928258547473610017702641905155339367302775381450602657505922303749276641858322608087932546483654969694803250404719399787789134315091933544288472259015685377676360289127266099062633827463908388769505864446971646046707976955320959847102375213205433742148120711762746879702087189849309297835335098215671998938964036767645736622853291553920898893220263917178761516153996634901015022877935594362314906298878663814471630467273260006228524983702633891464457139103881986781458079579925577075931262891538264537454876277267194189970980552288723129578863047291930620302778624467795386613489284972919099173472912599452360926108499886297598764453741161376418454396164339167083309810407076681349851454304727183435347572243270334967675304391192007708888779277621853326112953653123687208098760327095539516152058197631714454088594686525852648413456161003149096662701814304249970779535425066231742317809218926734552817723104577921904339394299213470013752224895542821686582686372400944416749650222268669574744320003659056450851909201114654996522651903755518792512734020853489616508522270876744186819308491376295926773026901025262174832560206317316025690192496547840649198808743127500941096023130585290441697112599587931166436117237207198278949810302886575266165666902152345825419404227019456395853166082312861414321385599034440312509713009361049504779374100398865215053772457567018220028446915056234259132955340046073252229430853395687073800593862225334631242562965377123222130952198918420906022820580666254709629983222050689113197074948775143651740440955676151300239396657427588874867299866440978444661992258450985540037979038359545738095540282427035736844224290167122177405005238324596766943790217739899178277156926414498595920183749540363907290782157156676127826059186119987304338326205495134377942106757301672727034207932076028631196136315431861245864123659383373166482754767415167915108082709027775758143253861028570527996867126188341646140268776684460315051410784804205670900300980502101436005270304963215798705232219839277971763373230663792999456430433905757094747855314638412329590486325240938832095303038304243436487946007709878458974785267695827973411042559013846174769432674738693267780682179548867252494301636708642757676132847898290762219759175686867580208129340209773030795282081485540483504380133872633330112310954587623727706942760779820781227937870118275672883171659857628527765393711820170514796510850940946717801241498219863443699440564720625545345158163857762316284328527451768848194631680837573992313106009617289193343796969669178222096246749561472109227189563878669102075025340342942956568561528294312989110713253221237947582156620968455685484237778634309502108810029751161233898973916854273136355293696044379428661164191178666178434361459225169275132442676452776836383503417828318696226854625241331232842825712800491972429086019719164217363101055805790155279146799650162975220229458917078976613084426752971177851807034460152309327421207906474249644887548538343403059004354623923152588561793272998513358825731974033017240679124910828355750522401583439425218818920894324551690142998521987622795556476983751156521208744446810389811101827642581239978939407107014286541027085889220063478921904218829731232959848745973571506211084845860164888459860197867428564117113020713830982258987383806050034227022356422042201456375384728438815420463062880777412346554284157119774639953598400275846598318302336407725742799456616511444158583623802166937442425923116491394321551079100259308146893399076475677043796692884115396249078250251770796723009665969608377509077973951649407759432691835287561321220763379054115458426859010111134235359137434783602080917269604744012894366191719158099357661986188357107521652720446086632788377174693256430522418669194106699620186863990771069661310751057721860404046651000500182712839383355719339591461516381954228996666700637269804277694334113160192785337075777999655745109236248880053534399044884907687419178254456156610390556295600528906383774474393137013016487343153948479062297406874573462540988111637857316709798542703029631029759401454149851840194335607304040335956424621798153386399788705160280991452638986635377485051714769601985821757070544913778988539220139215462954046788569309996708420503976400910923987245903756648319591430555597279991946325479409301227834094389553411644623326784288086151535797926789991439078989632747960565581132189220069192319456819524822870254432212238482658464515867407871062298600149740138830100479301817429678522383792957835672503306939266345221627919310872734168722746102131685072857926692592227397170393872963739495991645990647694793710161131112508672602427563999680330294340770588838721960359914564123227100940095585256965514086037718622703516452913952748585394648558284977682985160449283570764361592325290265918962189428619109736952853416744622704113013675522671265549433750809461511061565929028237622448301019847130091496424315055565358339941500893765157462483118716105320540125929755483854654393348427312316951083109979180718653107312077351674462425825789203551579119479037136830874652761913737266725483315826280902638629068626647970120868869063637278363299285645500634192038340204273753600550861319064015164759229968590315125624976125932724810842632628786388214280813537438091333814136280087922166091636235175870757964585490899578468418100606355322527231757742355795284292791172498194711458552646129025446603591927699627983978842386255748094156073313668061657459916118490166547499029124363597505908774230923132401640061661989673261589508696814708976955799706746334254830714397845867308321994400570544472351160751577277037358186126678716596132198822023267623657683985964803537173619190785495970802667592255349192774786638416543577833336545397333308044077929197005928578569828674063803211966945057127482229486698683734538653406753655131881258999429324609074118896208908395209998834352339545653306414876371286167614944216842019943263909519870518692468004712693816664670544404970974303714380011028857507747542601195814483818880393095594284780961281789877772892448389928042433349708867883440797758729064098116465687167398632640980939365675256647589839047427860217763699173313297888341085037525795096503039874723156266435807882207046130112470111717468872821989259771261755011277751610342114057121729407530100709299308592678299089365772611982199190918952259649355384827684911274835664005323112654213340366922679754475887564485820223615497444717308043129612087929858842924175406971162967985855591104177050380910371649880197515289350536823058284933699595296557356320411934407093322011989538227663148330663286275266596610939161171175350063246753389415223889203504900692265615737149259929284353052556898666410387841224447030597411227369549288361060599336467965549669214630117164353158671090524038376332957744960498448839205119857880034588757155650820124470690306907261796501438211019091105759807492523160780342962296639897819477477378078697209452274675560649165750165483752277316231474473562887583813023670814823523958675467499948957169602827704502154529817266210810682237537265353539353558508992056483144476947163049423812932758227006164776874697576568450541196407941755594132989817676407404020318691839870101489499782883867800267813345048023214731674444902797286419403875004670570684106894474297134561335267284275497763905833593671306284732793303624454049305843727386473837330186111192534491194906668192858138508523386708689765810158654391691121530761573716406341418225519106920769647851372957326795054259855979762997554584319046550439814953330059047094260499692193522787022252588305963397407826841884990568166256996727909159376790838296201890834386097815265925451446930979487599335036509337785389807127922503573710777270308949291157201492310470481212030911400095984985992342862947222686411185158561296609101661592103989488838099140534774999561864798593816671434989225916543660563834446305090914978270839685183538621168776402503653053956850636634433732385543580087682090622356150999075376038208532014958749233286677617170310910314216874688774640511002864615590477404249868100038308034515241189458244033737995979343007775457333559667521463128319878100587339661714340684242087898036637890253596972582198324816031021157784457887204935243405427023360875096916162820339804846075889144732741602909693628373144735335876630214534850375089046870957102125344689942413955691196770582205642769448485990125744578180680296675612360281406188664822311369242720569683150429243000784808252390437796811532633731113433509342267212900208385891598210595938637498073771273101578715457092520040491080219680073143593829640058011645442367704572183744656132376397999499733830907246614469678673535958613633709368294904209121509122877644696988659469229248673767634367229926881114362611148194500252456647144394332230107578982037938137305846961802765558913823804154167595791385125840307451138391700837313720242952082463726100808040321323442816415372033536890559138101065222184248499290403438086738327716670272897340703777129981842835426512945264333870528341601246376016209529956194936346109181482819986961038431515276515883973575230315306634259691387455848609438431442770416748015995010545206211799572665835833376830287638793490060932058224538330655057256410968230494663438214874940296877358737074880579957286232752033127380607128232060234493235174611109657186928656029222555305956731246448700498490749127966199053702278866464460297120396995300848352847508148824606717416977746430581429430993163257714772554165154833170517493755779621573109321619095254971227874520429565905302455675049175370985036277226035619094951650448902381048978630135496935381519951605161847339877090182855547012991360871436831958253145304308960815515397292728902440040714715194345796545795028857353279380993318128871941789935639498771629915147758482849360125232521713482034888117453610251101998084988564902637770063991981289033953537072152575196729882243661772400933447810259925252288125613906126049123417259871159196051234833888637083900813092905592494011400241355299309006674732936329807270234889174950219247438376514981154836504672519091610269619974419370315141152102616148748186040347073281176266860424517354726888233526015942790105665388449565986742901173134211701760071375334279961249433075822129275760400585303104261882057385072773437200467515197321412148201629678546368030671620359633137290190999004170256761653440013093297553183219721205312689525823664449333694420386223085177806036343603471497750489424784397794258995091583660517834034172459897581947387884571758372171074972706152186130087894190178620260181398034186287976967475415555572259389202341248956165543459278878404336893943775227966841560729239290722313454490757581868223629143471454795520876118215938230673096760486758072985821556814083705130613004167459096647987372109546945946753300513267613827785031059613190087525216940936381668301690008873765648808033424974542688984700804172444145292835491069067127063732985279885075866065352164662684045216706287877070911643424236143971528893136278266073454558876738424619190012265178010929687216689393457935572407398643817398320329096925128366133569930555711346371024139819268097584973176097084065412794222665876091224774273308646503533109950425843203899281054540285207418992404118387967869571873257404310685377637305596320092959779693536618552312830390169130835766531968949302939135553363611153577650805737954521886550647513759481952243388534622309484383308815163208770340803773990344908048810012128618118097388705231358834906174460225028864588507434839798806129290736519534270144876063519452173059551361655180834143407290257768323717668644720803659437635537404804700055232266411344073070620728170071856318112114426271114016605786838292750908839023995901983267862504249272798746138749259833639913965213706290063467828941625440107159849279543265400898504139093580121316276654585726687372072661263621235986926294352715459410803680973085190456576420846617771683335420467510563200382272473075307971606247182601540315767590467955285360122440891416845352504406072074946580447460117793534675573568769222397660293951700103032019224605977923852219080930959149757416573092646115655484342090615269676377463603385117098105126308737753635531047841711036899694702997780432168395906112456918936111903497116000698262905124446640375542516357310142637719548508812918062241086506436539223670768366912542256011383553056540940691355320146307778268852593133054678138393625698670347087092336736168243656268145426986197254447944996022932973281761232715144276146236238655184925263656404532638548724970064580171743610838507001841589573570172164936526968325805139568258917749305604843412300005971995671798857146850871129183381243979975330856640157806707575968756511333087058590383259135730052079176179357059795072720898860596914632462045319520252183374419613551627265826720613785797507639353895654432400197086100850242735296165634049412564072444263751408722170424895704767417296687870758789812600919408560485471586024367374909853858060789007791026505605325902375501153084298870077787816110552864562737293032820525872840040465052029362856446170241185023967004169536666537704687840865147347397146453307163788841645676719257512544087547391164525454208786915115376582729704821614677598952313895932181681043464696996901690263888000149174805392554922545656323755504332447085799859932789874238594856061115725577305781281134533128323412683957486856025367495299727591596547599766930213167213601957211538953490486560574081448558523424417063414995861448529608608769404610843555384830348729476231799294104292699529646663202764473984258249131837604622067149933170180599283159861104704600857886367976914101550866182766028621105809152241202402128408736579674215208446233102666859289482010035905264886942658193827985641462316651391391728453655343573673160056321979784095921820974038282281976329380611891757605626051850350279576371578475298244467042669147878965603343104765908010651178765831168879825701751873461066549047200019685031071872496768010669747473244684027804913930090610449921540004813522193565694976363023304479818736943393420269909218190946865803751444708661959793055940457214608638883124022762265202324719479529004959094761612832788794290651449677262484964266705357275551223311234630969139251114370637775468857318857428432000441168108691839663941473368456756229599670591484655479520970288325872290785033788508147643239876263303955735025556974928523701192953931681768074141063964622060704667240887424485921549774175743917231577437525705398275507520934401618410842652795998497334626888081772379109420270824318645971775369413263755823680448273959502743535241258253478697841433883504975833754278925578610064719241960868710692649057786545513260950311458634733329955635528117852078225921309943574203678210350146857832805822487253951431173448963823278012536242315118612557191904645529364870341334096958259581914105356895052853354562719503599218798931464256913010175389947580703307767117734557407172033296008609913472931837433552807995664867844595165077049281373702887295909891819615325090377771396646420998675667230357889501074434916871557606503628427518509298278728597971841981528415828664889946259093481107540905070554888285688669912915159422077746853095574820802496570438591405128941612231349992018352274754140325459131510782112863419471379829125929035471024915667106839327644173672902360308162848219572202582023584296358418843159220378863108343796932382661185841682434279946063841938422730264716656953274191475989125590054131829956829423203187890643446456385799273127966778395863111001221059075585958213231509638786294095129247177413725171970383320304556201305791879302024671226838641049453147917720827794301710571289730641912552134868796042128257269820814954881583730787616865813674252403291853063522352966854444032481886196514257380455267554925630141495816498088125453094133453344062764822947306473158625596684514216866490775801536300989244841168909390641928153290165649612521323638293008047462577192817255272403340406202350606009470380245301780345920719949476617077303623148264638648373528538903583705870632927731677000563610568571685597572193003927466303181915566798567962665800354954434370535649972227190454987916713803598114401566237378800939261250450137784588509152147717674886927438122873242059592076975050533896742545862402211544938978435715218997418162082291917256900279207271063129447149107535666863447749372635982467818178360584667377657944379111194713881733381542834114336813550888056020059851665704287936548649202997906176604871022371719788659152002029374116789311374557494404350383332610953254222767811337411708435510853346515976282599347785450008987280495109441041988088702762967399543103795557535119847386206514911053425888796565958094357442487541155304990328583327411445386758910986964133098715751028506463805177259761917328791168910137422906926893629933482686421952078133107539530326561138941793851047187461259168987676643433693045170708203977559324016600843303855222481815634457629594852570028409989413755322577567983016550187041055397340205823668622041465299333563873125861672264369701777142695492590086982245570550001961022525205943655344001767107897634575951753035580090291070888615796776388108977543504122585920591140312675401770261951497581968439242294675607235449372521927747224865560523607937813671633011327029930956382349127029692988693693231558968234478259972054184933178307189779280412242216874874999616601591056445460615931212759889457274910953526728446524490001206240413182621275869269666951915681010341750097428177578611926105597828011634271358528339863636630479294332552652521354247358132590403844506605266846167750730974447003376599619417690029132769366050964014346980175807102514142433639761840485968186199758262329992379683357859300245552709621277641400820880241938116952482574001598109637014118514644106421635727919741201104161111459846586275758592314877114033531204845153372438592614243713172657577413000244556687927398306888880409748108665187007621629101893334094935840594951976786124438564378979937545837216361117932285143246887011758053042270481948289507269128048582175506502920685663147109631656322416670960233970129696877022602595776217301887476508778919484794014074619496630021214690038702952079854144358725615913561565017550852994963270510737758629893801203949013537705135688908166829788928842298410660061923093421396664274003548641867581461279691319570428290356899955826844163210040249094600495983115248037452314767036753082977891873679114417415622506858153711556169775655039305444600048199362624484251336726814652158874460716755879644441841922773471826792058496235430103039009398966862788886076312293167066159994315461900004848514455344373109099097176610530892776975809033715448075033158877535498310700359691588764786465489997152325429594810716717867111246302867853760090839848812580629392206458753759045496876335164491370890484585094967136086346919995143426631303902520995155754521483376222399940093404586666857765435585311184519491616563902068623222969283808383454172179060416398414342903258844906604319913474074519634793112620187416198966747525090211186266605415003011632090363208461812942552788306323752873597526280410626692124022328325742807395321042363027188475887336347196070067381522556882297922242232394337874283625581770340313642461547094384647285438233827083826041019240229498823112043441437278628553584523788578579708792698099484444897710233023765697285503983841159576080623568831252147610424140372041660006122125870169091189597601340303276253650896560802463299120280440757183224000785815897954805095002708450359005087995274373007247160243135567234898309710536155813583604278734234476264579784645756470085196878248132984314312616819005749999244307378382069310140012892357243065176220476729009757307787811534776686487997575755024247138701559159171372093272424425471693487402546175141285637209456440900717734969927425294609654477925975164072552249558636072499678520011039897839016813464406511552856855346114978341637980959635632769923251116565998289352470864687753408913906670756263041299225911105878313189160342643722141653981272141099612199340416014666975782558417454782221113458643442304461342994171681507508774219765726678759387073358623420811934384663666515490790959398033632898120566922884140357530887730595125510131386660431556853680920966594569252695896842817921670276777635519057375641324631659930910235815655106361213758717540824728701413214724638276723354754856524455922817425377753750923805076427248122548009538113378985096501626699568267117230776410446846209767628111459379785114549517492094393138889609231204015704948093624326246970795579498845442774040494454302075070567819369499218762301619800821563339758060428891237278968891294109018216273035074799560721402887644087496136191405827861443958353619560711364663348550083187773344359395897394555845236659353588377728076389631864438346282886179020089806750134143786175661752549241019378353636178191793474506283509106177421624193296549544423083870454330944332987974854641795870870676615899769171810995637525683731702943217719488236116945751704117145467083603978309770536329276490296850945742649546610117295864396663253501716294019380726174467525934052538956536607717347427686330610951757875460896631411263912039845844644958253707529309451790086857515177092434959972307887113666794475892867693254904511538652207278699056118331051054103541938652281812730248032468190944590294200203507466533540984524829789470241149760760097122577129565908319385830756005883317332254193535816317067816089437699847649727603064595838378262864407765469578793066637930907545083568610684263871794107956821767235883955167947393169105537306888443140990445579814172860460695764503725333396958894822359551671213751967075564976247253739562335486444399792407100393249035621073499091371056999984919361692574037074041126541613527477899509915955749655531376416693549889352935547539524507412536306088890555178148565920354070805225335141241285366683813149223540795760429080254588548260626917104877002112440183149562611662798539938797590869155051589635813088526459837613450434555367154920849001221941507488727075412121784728384396431705830402274344157007914735353572404583096595044079057596154757107397530037785731103800041107731640788471390830053105722146549601410266942545491455872834157583337301743008659810637126273630060375502111692474535369485214134905037834032309588283688513191738588455349153025155723619959924074043946084082765469073702948121260584064396173968200737990321599630415132268511325698864010651437816023117097960989264580329132257238953097169918343635716165769605540462241091970924480048752831804747320958752140675966779338616988727372010935557635473227102815184056593539365683470036883904132661803120267514013900452078114667763120497495313880650236165933575854025953952160939291537231036213353466745174081064568890665072715467917091735316935835645493406776980727127611375858045618013443061161122087252208848205791021926934501349181053764592214547290179353499206051424028608786857339707676261312108504363237853889644678093473221611032248129788655865171689078200412665135866583522682279559011155045781600859496953155055675519308195184165540422953519235013854286393605923185600173636269592330808939774222360444821345174957947715046279450137037645671282166095322930262987590722311474107969589517839121234697997644795439982645318718841664310335483759005219625913741308384557260107725895239262499732436491494640293108993291322515650387469610624988480069425076625192879735519945023435368067826659673100303967556701064898240440340685623635835077148076043643840231762862427574588550782178797201719489089690303920417042713784941072669785327430312812496408742330492170296942167910094731900856464358018678555734925493575040346491797025466591250036612118414655035739384309239495458219078211856782980209771792590481249008765769382305713398098487618143584680291309174261384302139577853366064931357128823679875594189932303332212974129571010244065618982654706230947259253231864677056035770714573438985922434520310114334117929680723199644368965675720044589496426959831932561286903089631042361625087746362245204038352112090128695076781163375497316436274437008640402601563682691060270832058094974293775072515425948745068806374772933981811934180653766610035368096807938333000129816704311118589762005808717344497271500210834523376259987363956983610909270448290890269610106862117188449858768760958916598011231293812017563301008809012228395043479315515676173700725143359779848300558386694185042630773715452934236185660335402046031437239953902071249154002511061253705682595286904371902895793400310754641847118887292966891281908251844485155921042670049219307680767911571317566383156567072273140848265863991095610409081606974267133992287218812108340447409629556313779299205664283503556647817387599596288472998261635819989392431013413184969866726443225939525775136556234628272656291766058077064793785152566471245467460264347926108362896044477810069834728021530601924185770489839629443230845526915303052156651452846119693867365176313662557262600179372961550482817526289253392758287093998059039704523089377821383158526449925326959860646161629070190813640885239781249528500835507275917693698114222121098993413395469219008873411557005851825622612005705564595018392567189595181986655498339388654736123668056241323520235699889064143196449238311729330458590990565079754811750593853872784239980500617399004220397212058135681999654566885711917796894908551864243686275962086738912978949407624189069109183336885746189269565944400019765237123773914403286622523076162550022156120252696051632320253100910712520380169316697995310077859734085767927537346910575124408385735217305347296989063547763409039343787139822956882370861451382887374100220935137254934333218274350691953186762334652892358828201313078389616671101127259636660833859118370009124296758287386273134120789876788486262957994397668620764291307670674132829623362548304620801357396494885886286563009052063232359600869916006106287560762006388780000133475839783057156643377483836292792967358023682570783253876137427320110063005311980253610480767803882136825213585604061520478515999612073949017058408741221087389207203833112895754465199177008848569055575690708214772854722624464916991626947870207054687769269876642022811709706410489270981945462902008417399959440762830267768062642188321863511073487154890857764565016815950624637176337507467340949170651147037380180687876565344436754763463010867498863087035966521650452748632784719984513666119793848083237403661109254582693390686212420564397282067718495810900702509661089988662640646940655159400836923795325364814851959202615276527509623461331208796067998504489853840272791390113073773346786819130594671673256164825130148729211748763822971906880187343221811361406363828106458013923429591829592727396253593689699983553708977007638458357857492090957198857020280514587758805295176535363014072255514133323161988377377101378565066229625339989455832583948643570652934881138265026269347204417930450640893430753183152099650054278653987831994467343000219604301035422261832180326084124446819238883244799393052120336760278378718554252683280845114374369845772613214833949816871552645309415331476794895235346771516165695594529011672476390260304983352222941751005849389639008209139068653702903590723956969837121620614989482021416134128239755179905660245554070601801592403008279194378014439872288054201707151864677340133918021500041507261099724327406798694482459884007211149281432128469580103626827722403995225985159909399024730847984182856312785694229944429891539325755692855506658687667908099304744083634479947575563528208748471016680855384076339863521963615865266326287028286313671772811697511372689160198857742792683049036360581744472596472390124562673976884454649662236493618902958083208285231715110100743911085090010392856981126699622655457909397336976738860433672197618727175018088120854497365027385160793487192006920712580537351095413239132086202551717082236028894896948468284551801263052893025735498409453386469028125688433058878158405705445148405049750849118527117865028238899653850215697391808663940799354263066276172969003361964133229616947013381628365489219408741558964517799051521790894442621746150783215423694408187480696309808684602594841303862427570123141826259174905514943944133139879177996037757647860608062023851707757733692297356546344945945114811313704105505121231439595894809128905378344488477774661184152099134794998947258363480439046696243997011847630932451092543280197911081257025586928399550550731999727124225123267461091395609282805174838080894521836026217512583470519283719685062674204625629865486120992562882778872859631687945916030405564240254232469416842643121206956069819398070119509351264908034056061524758903081041307821737029632658865130970326511423979593398630960828902498753079484898215517716569554011705948966683922943779046753769900903362876876635265025320776208907437144365990066887473234037383391639306560053122186725136415815357181168900180283679699989389267623411375998112006424463564476609137806447257368260160340060299297440313749536354385147315634684076733018398943976429333928860911273643330517577457739320875802081720515333033456358677673854037989986473435534233714110363322151386113572338092812408970660181062352565270001022545823152431306757480225949709754707703219179014670288806113802438236227888942372658338937881591107600855250746315386795251337082028302222030694475251788225011150036396743946210144958518148575945085205018074578108610053917282185803732716655273695612722620239830747005848177718160236679359000614123275862652377966979239646294999301203826503049682716010314622154438032032494611693335943583927912846862647834921551830441992433904517980940924950831862902990278075332412337678188878340532982257251285492883097538542756303957159325708551228586436318043948168797208390777142482150452337218334578726896742479070283670308732169786004852623228587402208240670345066727275678980295902335338507598588328720764951037691446269368424105231789744168970168677972219295974133947864166054157166627735566129255448532911335281359286952968382419909825446796765847292957210290703132060295915962490007970809193724442080340323871979330307384959453901966124923024818476811097682801034445648709564075351617784965726055864054472544265712947585557514332668984374243682970323684972461294679007086795411070479173563688203041045654533390861595803662062011901891147980869239411104142394131386642736940860307799937859286725852847281295339023081454081516686516739298897189739069776073063311728659601154532972781950777710433601326638934411831253796493191326720071647166460379443765941978295029559150270311606440744499827455410568519209627340765119250506094922184146211537044752180193139919387126767446313106041162081082129661047957768794572701927224744598267644592137584354427417563854385737869224104312952345230761496871649855889932700233114893837025957054089131315001953076932882533050917770930502984584450232987253391225425654562577946581792602237556870518815855311749400856915667119029211462909576940069265670257615214845424523130984055430901655951503367647162917203673661523136308071712459607901524564761747679951301303735640994037432964409046889145874324671003719688559388987483125326969557462655428976461511298160765038568495949054496379632705937116789396023077323915081347502776400946829944705504428170268266255767538437240384082858001859868596858009013429946573962122335228175525080490641877489894026816222803676928685112889460622022650039910140493565264712352901175859159523787638115800116779989847637073830716188382971085904945675264115221892850589342415401061781264860641522781000409550680063950120319378627490272774341891319739137466063997739735846208812058634212925882498036140285858562205412285030385143533615253380358142344853189989318565804380448719392874698793236054477156283958178521526219197998389972251580095548092594623212092515637566967274187915360869112626938890419494441319994315625157135323420050556891466118984927695335842973056136158128661456311576570502148758428639607812179003869643381640525395908868216320241543505492289181990572249527228456010742131248063175693708601107865442951757277600596171709987848022859931076402335508909930728270770808540302224139654674974477205244336001912093101464577235790948275930179643907713343469638290706130032736150978417584961447063380019835342500290016486375379367365797446246696192104374187385037048157190368242206186874859530384045020796913560431400038081973746083850419584063015873842155560981333635244962715809159066326486746235946702382015632287596563974220907519457580842917282453574537873164719784534941998840020118050803699379435525476559474338675397718211757181186749333091529611702262236315364864463469671852566740989163634469980690193357396245307646135284947573878228923604993632286795534102668580647550559339879540928175422341439124850483719457429671647167603663144416183240831626917448045817962679142318021370887058101667054167039047932879225409783035657156216414090772930538064066193578898052992461582262770030444287868596173658879791341934294514869103239553325386292093412116265780680258215695303522108529600755187103517684664093348835392386879974931127611868793483990458128813975968655896965513296163553875740636338664976264074288064471163559656106777879719768332186881224982791733764069323041662037577899225988078107644005854818542741541174575499002466074146946252293732585265374963342541970247024216303948425810478907286975864975965273716569041212842982388533815449151959165799362421066778940911972504304584884447110142161387095608734336460127289530553765603672079741917824978949428822121071338810382842834143249499169671817312287343633234270027032707364982018787916337467183187542549115523220650507860655020738445350445703473866119354027464298733514385086354619955766248340564635993730992345839804506453101543819152005331224265526912341943153161175144298965171860281245055930863353266437907311779976341734355528629891737478820450946832727297287042397556833955505163722670166730978659386395603536580931942090321532466466908800649795882948521423831101257444642887315437790205897006669871265961661960511831329515904689681234753039576987487996512685261213683806528502597920169367537810293248691365987348672185394558709951749264968706840166585590128460775639053976816665573075227025996424135334899910860785916742350567411813101373476133243710634347652357507472809601187345794110849632504712177546556188561750765872472622547110551835923382444007858282815242436288478630524574046903652628228118919236638059640517493622585805029020876545971533944520397216270685299716322126466746956179269230626244645511273859769033423025887166822216356669737794496428620482081123409616617700302728635065672937038766092508850553718586527528366937188109762257115665650974941999055283621123507111595376909482507927498307020000309583345199641126075601605200430055834549982044237128632431872286802055677933126699024005811832590959691561395412981397005794133596035133526616163129535551332408324976478127391089608473941909419895416476433439022931282614955827671548166239898112811150449326191575991210188513833938839842636538274112186619920588599691190790583243658703347434695008916523427200976824077147596381189271761044477156451241883416071418710833766436458607215291032813079908421976968810588948409121497017465834586242996442935875674690918137859638224438713796961248434349528528404594301998365960278793779715157344582805402674789258521395161696876785400655730778355958752826805337543693949004611635414658977940507791215766045836166052896221611404393695572907775834260945245671854152129569395467505993350298811506792283119352427456527782852298820626017393323904905392684672875334976764566500686607447854731257106289056692880549074496411242946979026007007120837850809706376527616863748813208915438085488017436260538875347933206653074266967587432317304090182593413048945248191979915360319900812938014490259431130566532512621189194168527890863929428571271881462530375172911310228110068602853854103780325044728352945276340220051449063191692972612715930928301594617915563738433219155133518382502830923249144153101547300568485426082725424344332053273138375455050534927823304908119643027254328503264557822372902646143404005869310780735399057555636815155301578306759034612387812171562848077931004407874867048729629505170927070736024683128197387614518134658529141197978253664110470842192009280617062314028714876902691017930914133093381014360358052617610827461062191018372662884659404011270808839586257661402829962868174473676445613732917476192844106431614099840750865725673913970921843630877407604765249413732214539834426351460667660317635431076542965466107447736152661535406137566669309686593804037244601561241547139006614590931005732920424912847119828893835601380559585047726885379317540490000729313061319004756606253946500490070890989049432823210234096811243483581841254596836337376850386011696650215403727925110449378703600941533229143388428346433945817277436267998506797005777165034650018652238262089990636251561881427205040792606079730310294760630097531915666137275159237557168252763923289893089455549004107666130324181375559510195349652948805749418888275758312564238244135520456529852102358282893108464057098703154300768079404909718051506786981095712548433291352328426593142606830796197194157324861849784192673692395453174712848976614751653620952759679328650902296031801553699990573548858282092552084288730226395258789182218438169618829598991301750290670514081680761375963461433996930961508861830868488897506561415197594525437772952789633786819051039255654195701874864973890319300347674508418717297886400742450168774453499008559388120446883850293620816720422537014886887287837384774429629624775289229692384368888174912968489877998310019897539022171989067690401795651110135043517665108774233654771175920876851922737800314319501361284857673290620377328712547236162345084150032479784819278645158547292479900157189869045630400586541720806265460344625136938168502202936373304788114157013666178632152532794629866701067140276539355956068689600237466078231219103297291765929978842993307156579471254547382786539355239720399730738466317772281690692697168863735184127948244373329026701946463246394739327335619096800937495972762817787075333332045894525863149597314109463457489147369119801887828506465849039553093198945812245019907524593976553012707596981288227030333476723758750260150396923155020561008094509177849929722932909054993006027876343620055111415149260556759428405350491840007827848865125751045761647620976921782516545726781410304883918364903001771566742847282408192162621745091157305554392573371924103650012614457170237961485781902393591098157708461151827065542212231576553339116444524487762931489194865269150334546336232024341799096118448783488851119741058936731775437607126549436756752261278344145135401370543303528451257540161919718331780969971603815637475605080506876629366294094489261074253152608082322899619513980207839087906106958886067495855431290748890159926987468508615016006297728043748448198592564032468561178111986324924496541757253893060101267529966468731136429190071721969513428268930171828311279323151344462562450530622331285427871645925379425635886350441162837035705350988587976559186889135596500200125699845483378126561808475734073734365095268929541934525503077174027842090519301571358385943931199425263748174896275452415984500455571297733047290983971349667797835330405016058000799649234905038468378157839188726185848815935243925221691846914548168300130799637711021677237688368016624187418264584951218525860574372168484987629103351556122082423123759835989714435240096860560512059540434052790500125601521601367239016143233549133857043762002406402223244112308511097684057183878222970813343622171936832383435770249968074257769330912569934930789244494478637712329639813575596690087732324704159207574188913556216102818352978959069371485579688715359212139245074081026619888292168059821683135698157948809026307791936495278086816274155186772803853556801796124088035089846029799501720696423530032246551857943669169712526567510742866601382398336020304595736235027494618514826829697601328612466912471610220662300867139295343564390443946380184850736874686345828200639860671776292392288537014234887844912604351360035325195802232659213032276474002588729856913473854649515872545880260436843239980925076778019756471569616012332730012212831914556589526505729141113827375892004716847390014963349603789635959744784575713358821642137191994477430200960573001080345296058506715380939911431713429124193490641107618223564917746393751205923930986117223912512420833681777760162569270120188298144212177522435258307458871787781478078254771651673289509565066679069528834892299348373705927689315838789810259124487389314568232540704774536729051737702732455072329319168972625746813825547987862864551980124004818072367590165829310226628329626371921974565137300656159334980176391078694226848854213578351691225590805637006302164709584048409727444980264663202264605615104591220802954027764759287954051379202263163158570509149429246908893559164570372751717483959152800398126514453206188420967489195482430373879921542084791144994925011682557826025265201602543693641709879343484237049851150090768367682704546591066571290043645862395251238293011479173388527209802659302005223657166275800902650859381238440536111498405490307085496005295681006980689393802717845339818187803260679329002292932987331297137071341275204529827239359252548592301551983923813579867677401186190015405321658728254503068670357098105338599088629523072590993927992717295452000392786608648512103250105725980915269230151661128082038346361925148943712831343343828533733924972298616100982355763549390934829946237251442053562674288774767494704853293257518995437912142195139144937362002060681053830110773922830898817341650284239855370134508563436210092039839675731414297815600899109316882088920579258498858195546182442269412294127123861704076419988718389704273520534474644333696650693813954792135550203850891094046111603502171048958216788674835738062145395952243004022822296047581868681021727847862367140127685683757207513775133028672249638176794691592253098611452345782866025660284713324660405104776984882429234882698074331830703377037417439746901220035022905354601336735129794931553160687430887851240781973403812501893302628556203988018300576909173027130964917781256255833473538926203328434795969348762559237863360889216698847586166288840312357276611024409427267143489037319921747749052975015474918945467083421106251893953235469407349683711092891778707621907208080480482729109142921385895852100739663030662545836875281567666506640926482851070894673198599529932408399259838707755679931448624281177510703286494918394283450084545410337028239292357576428014276021843319111023884325124942507255181111030147748394416186035412104570796072758305237482653720412698790467619253204492379616038780679465529160561273866937794767548745579455061532385401535176458916997212186679117134874723805397145886757712933417391070087921614392970564175415566264214717905390311401515076001184249246817921684848610278293253250325176489912123106323950066875599509508789146255366194358172737628248333181530784556361470614953184389480904418069427342967862886794501063013240116800690859146687552249841105658923039126769621566408004715545954458858053597972200074626706452901438168072755111904609872630959975328350906077987743318431493621835641755681202960419734632054327985678977035413525411604111238719088559666067303171323307736377802939393026972393253185634543343188855314219802210890226833117067963450159690195028410391744323513378637140571323480064587892257978968702911009290573866954959468305791996329657766510309108911432797084269368876457925544259585353295372645825220663191770018720255672375729934528654362101256898987889999966341134378987589617967360315757443867909385385547986964262972951386813438977820125094470472472862946823142650299305336768626271416966215677617219237105631904627466008658207872155231202253627305157187132578328791395395031836761094860380796395452886723834094669996485340769924561661187882254723714755792650258467267214184704597102438142382324871085767414577633524250477574083948622044955840178704247768551207889098245215140545477165478694341434814269215578551180910481644618285057941826899051678688818018322955319192718680641334046067360966923301792187180777265963023820259902300416883173908276708176076975081638522651181530996129414443227148316189929504578744374383528705028472560637601899217275110600138954830972480732494745428220758751730790895804838493827043652097906543454648399384431345182587215439239923213376014593091476787582532617044023408290549684656936797619651846248131569435691114055121395566559895252447709572800682276299285929788093236258902759033553963114643845814978553835323733624393588003021422591397344849906307141999717251177526539497705457355528246572477549764653029318259527849730104441870916173003196931940410797889993832116133545161640251440091761517011438245517868924273492807309726672757294210654536201313760153448955422154425120088620156430229604467142414571448314888754091171550406337436022904985692234555726434037603612252210573745794681461371849602930199290917531101417656078711177970323285315510020415772967174837772975009971121836609979902352696325493956667689091382331967535389394248667563554089263558855699268816557779383073593298852193940920405411233879214620960666012139404733130218899372844312493151477259079824668118514226809741220948864148983763484987158578770436946474995517907166527688149319742259357079437505036989363687918504793927554601554402860480031787097791651618476396591955559378125151153272311966639653979767076450017929356878209456549294016435402151229467100205407041058210659079518921659377799065182257231200458217955440478714777817235275159107070594365106140349775648292040546259026832747860522848795955447139143437764400761761054927709353241671745269327690271608363126463679441242039518937495533059991765345448146390516504896461717300468460364427190485078400492743041068130733591542724453791708231437362861702793212001250559463052095909399914358953636544775986539452439532979215797420249196245839762371787022877561966680279667915979765538828176483607061677993341745470139082586866077059139301839094307883644771916076311642649689191473097504705434459282845766131763460894915863050436382148584822296440874112319893626430982167656343625499757334470179415199697867170502545818017387213719926309484695583241461910184759150357540188640218602623745751922231985822223862420824761531635700992194134902056836450874220785600393107018004648967313077278725875675209379355917303174021385226861983694861409149767211004172793183204878683551442579858617243257483544154327463405178796247516429532643307765401778254505418441235149820842114573690039737285404406637386724130404554373355444159289800814876051432431480976994479950799339245256835318524657023598526567851128158916440823839866834383741666015495252895429641062688907207643548401915599169497614747571142114353433440604158365560260083806342308575155753243210143950960971738568817117456633467339627616927429919537327462205005888801772637336731857514128217589145703089684111284766303151438871802653384503768902810261336264531263152504572463409887043579891539377154844150397053539731955096247860214151322709956884053931782540672273312823646987444435488271136251963523595299972596225526657551483650682486307517936676125257386951316496063573086187837165567800557314853875814102284368403527248875898448777057997928612064958427784019509442266026944729394117326762848252209756903440168434744669489423919777326035116110924484060352445232534520726647619094065678431339986578285077492294419513799257342376486907044635614963699890511789452474385843892062055112992787968881484501834112605058631781086411437356308132982486885997909046378964723880162314749012031576609463550030842796803450772954072697425019138844397508849466975656029552495441173398777227093166662943822219930728392688900228989142858479088675625058886236642569510633276453255426855374163326469487257533214527055410047857239078838130594476348951970486302169220857678002699334469288805012746231920405018956820393269085811354362443721413703231338685315810209002851642171825668038021366079623646232745248844384968431698627904375258513299638810060100126532833306475243861012422420658081273971542142431931395158129454028209081466024468959962177502124460427008561919927592200199383140586335580121758329559459359621886533509265687496408380533237749341999838775489480317109117153313770674987751761918037690305260275236898062495304792834280680743347999967340731949554599688932121321328072104073998053546388714761121112085926378917408574633734698780828921740984908887086485019062291167404143107022207710186430771044467256162691798525540785060763670149765122010409313918795380398425360177077141238164536162374789595107715941878724177101990124354556153893610553447282564669322454192779731473624532641772146027332690457386816553519542344541456733407752824856029856910735346978443886271390195551342372333913198439441196453141373675605025149829612184185512577603544467515685840008425548538639707876170818563454264274210373867000093689362214839382021737236599799637644060752453425730279874953732556410451998199937049178887175501762661058273655144314564040132051093853388552054108418858680105853205739019019749212018156747915766528515005440619472460874358900102457929090285130305065311484911312651394803236704649951633998373362764500488217229330903526514061592654628564429801396601366984530715434820653272655479437054468728824237211858518464057708178912349697783388959615107560216604393469627400545373802188472465469700309319099299475874733365517589844916612013461277071959034616478462495561784721650681177522086806536005472609145122296104163695017196333314187138834466729192084992536999509270000484837430877593142051634946396328027204846854782722430941509076319637979136818544825206301214612948352276877633526804438187757837941864317652694425595418080864869592740546989894672716689844962779661748315465916093669929434028266669161126152573569789835117584547555123912889873078187655209826196099882259776709143447696240432830032500314639447582973539309609314422883310814603306910817994101216180707363401325679874040051964842612008563904511574797657270991517775037922167900936956326824631440530913325296574412486281999736379725042982093047312968971586114515455370742175123725874106872205047219868257704333960309470671976117534517331677881663154831635361710511252281913770523201740467772199734236183510721678462469204564963443745242430875607766131587179686716894095244304670715514243985362335220873489088559696040189820198871952604483132833120919742052203687757491938570073778555647827671622488867429800128150915752766215307540885965217777638794678446030385536516161641789065969295337756822568929678657341703939847591480594576703113645056251650508227460803186682591913329404764099274436981417826712745477695470010684489513517762408718696107898710353262784843285519773333190458150226229550849782520998422581164557629118962159219605885841576974070308876191318752003803983228491693838625961904652762182438774232663226411607203991165058595730312926668185484118512472001859333669725267896158126143601930254128537617656438304791456007378425488347534454607351916121149105551002976553570181558385591380647329543702701921131168850985723029748170860721900190132675936808160747505454231345639218068691115641563429680468701302602645769691619246484439667749790590443349493603670818435784705874801660570412310296640993826691017002413746628843842680907980127482343745305521307697565337784934070084995753585942879617776505524943229052883638154278753896754570921569566706882041690118006647575438437647233915452530020087601911151280426498447796032482995276790363997042015445557406456455443000077107961951735670629350912045011305810283977256276596064152187341433503475263822235475176744852806167721441826810571697927309574868866965180779933343953059858463215270544636651312892583894253957887700794586508360182606270059005358901933347720461170903875029078899293901014863050556459219638997019437958283552492384498525287515426378891771949669678821852358123827415243945850555027352705320992099329845140816682562584885677268453560941184405219184296334455640992331005859346714612552525303941148951789844631468657773875093731984074505789889686740444868005091237913910314744863764063134200236607364711348002084096246540079198420065287497598597376142528600746399102821951150728370484135504391273426884024330739631043605907591090153205799391830207768782909343098326127005267097464070496339234399810506088000841862729231147311764060924392581210538888003034267944917799013494941871946806665096606999437792870789808215725983030533584058993203289608552598654488862569588418891389632200398238712935772177011015879965167189252740389753424920064365974717909130239114690411335774248018054939312946152514658074308381006734121336736831703785990954161764687256986249306684295517982640060987369877618887175461092040798598735371062968633853279753502408750620174413010807139006378106993617089087820122052334427173199966345482318447699887214368175006905028756873828104911354473751397506506076804087754456539340705132069873938625710274766261333718878684898243702177878585409548059563514230309596601230830573298608211087297410901422481620778559189742539393246566804500982733225100916048167902084540970701200784529304638837012187902119725134547910843520419932226172302734578424340354721160129799155499405397462319615784461460516218909737776471392161291724725718907774430806515344141658516721091093433728120781479552502917273585113846916745950824412806964381227378703817602304185771429546803920308477196538263678771593205713050597904647669674225357744379142606671175832936518886069922558930313476823896811115827203975587987540591069836099012499521889611600557411396567011244329265439012137807967760799698311271424648863927289295313785270607259601863995026090113154680700861731893990318938524222218425197285796864399505625225172229891797298757484176099353881824604087846528121464352931200956330224827833422385816771785788723704401572334770526835869169605163723839001417845782635988782806357964226525205753679396747204569748121571672039758909079051489228636192229287846445026384942009728149893585197870352796834131184168602939787436727351878813390234966364757931163759181488713089851225249939772386312083775748147082053546376810832623189716405494473497554842262092249872535666428400302780309826622784270142751067695853549883741950889824003159062542181087231960056118114583518635056838940235310971304475811612320170715357413515010421344157703495808319073503662417771519307651695114643590984542114772735877677044446336248864312896782600812290537313909855040458117442530705929315112647602736116571762225818758103264321077924958015754529187572106559006817860955035625287711899974380583106849558068738814226238103123327486524399658638227610148227340353589093232541646277654119921803113577943936824178088368657921050440067864723511335574763460748787914043917794718750811848620575079609078968700841812602771326483881483667225165732894364720572151321559301920591185453208488109952730284008812548503368260432958319499713086489646583566350303855825281272512323923992867149604916943940691056324282472253974290925241418851411214768543808798386190038279306046370689150465830385657556066407707262489165998380837439581694399290268034836664692073180462071261580565721785635134867907517273061423288773145416650133366416128055691408377319711955863862867449740980678463030463230957149801361308258236989716108973888695620295387939139813056178712094548279724959592531203425397618189243638387533810952947256588728586758252380623349959012720977953574093153453446978071527162792312974070082734711139698039366318260517561635809705223629151142363731645052313296298338507807946410362317132799002490683413423324039428624941264815410175354372358068472513802914204074516948157758576431329661328646550566420531638513183359071781814896268725541953214582424366955824690128872423793658843798675718454790173030610726221439719336622336011439267823296211787998144121745347861119974997181760858106452880094804892332874718456117544820499154490795653048276936463771461882854830438921293421128175600051526135015897565195144117717589178728305801646567594899423037201413351563684371398587778631895506901553655347913707028127630790307894925101883888918552109135934360359152923354978099687586192599617896079413696976424631313134635987755126491289395634259907125473982014277003945310127648401371957387012114350651366060476448796854790662821973802169872643206721691888571119559103473304000518530007586078423196742996512077498579322365141395090563171153754848900868410062107491262726483097595596178519613914797993486858821872239644973096340519073140100564962571462603606816440102975532298368334757240562621050484082510555458424180738962099154014530100195491445521565470784806572503040369796101668542299530900287991765902170413699888036655089970136584550986764292388588457472773018309422843683183900336854185748588487796232781903919578562477144585122073156618417346029453310542833396753343329658299188798111252109234096374974132096695870800957773535003629521237099243739589579961449924868174301377952022634912561478923121134884246489312930316275635210346858563540654155472549580462126335448990153371598006341115097914931044169401271004088111334797182135732303801517914402732101121053869982277197736231261469548643159756325847753257810976566202976204166416409401793317058520589186129438552003784046206835873575936440664594015819133844643613252819192774602616804372837339436763911898769125005148511146327769843901293020415069370075141046623617179926519550550291282767578202142089202073966144368234681638701725964272053190153608571391319097418786810740072423706790758039831784841111402194158871084221629222520241325011117899954153110271837076844645889816504949062924507714942965112695651006452264698278234129335484020341699635499268048165827899200960181446821730840725107226450579415020513862078560354049074211786007794234988892057561783148038186988545802761032286274426849983269668528322133549007085175851540368939598752109199486447381844206117962865971012542818536864679765350968342508258610210758638110494197870013504771053646328941676846086527657004631487012344493086847211865623971005158651351460297788247543230467266188635737358333501338144571262181474437375882208762097801837807226147994079602921330511499625985186539135035507991409217582856736390274326906141832200558537931406637045705445474395566943790934974944177356185439287099869007522559323190749261931980994580443922694191894166460040421056100459916312465374508113973317715881496804778217509375982455406259925777784034251831486439604355839817771430222685461614884119499983223386134202211222949463279270664096678163436197141097046863623038630437300994350623054101031966469462179683492749633122008069697020715329088331370811815763622770664603460679487905260472839024854960449933305937393858705362220437688513277030433209849692528487617183611012752874028167338417411646893972640978427045014676494757714883972460694208537503432015581304697189742152688262412668354169221713560842966146848682692134571314576952918334397131106883803288907031515604209615488192184068484246080355946015142964688752907938098394017200306539130894388100950480789608767204695713198867698340303421588412728807677909218741680460365652184639728941078933105540554866493738644400685190648722261283660507016523737217261960918075279491452449507541988909307084060514035929021231939458383681633413514141759783536895432047281703916074415770593399621121770718311756480513225728318976450280538488248577657736071614063375957190597157198509269573094654821665398387879632401482449712467432221092551266439287311436183815977608951071677617179599719906524804299347787229469990806950374549929802296745208438604497875821867244625747095010533859802721802924258563115638742527873755359579284700664806524513369877978961895078904274155605699285642128073496708832574164080394410448550301645955372344410645378973118546592207388740872684987972289600751102653847190939905731972678512889948600729258247008369931093043532146484509024182613640756236207470982693576135776785975118508594117134467084932587475669295534488971791755607475751270706417715012123169172753966103249884780284962186020436781485677523395402295109430279723856231375951801113066166442460390542548432766367955163805057201718796818999777535877858630858766136960862293231684876564021348776242391610796395508656516426813750107898071638952378868427453050886879983362650374967195666996868576209987635407127237734727917970648353646931919805121836570731729578953329030862233681189553471654095655573210146376967868357277415802578111330904844292452370897382916462095688354787987963906749669087467438501248880639006431905976265982677065834329646157795876275019021962957012798592126443557620672053683232273750405581346008124664444932940848829724356835435113080275348907344290948527815062134401940695485358294600916102477559369298647187044550766095892530192662202320140527447298109639219843196611266465489232687699398711599682095330580663773058482970925318232119096910175813817547878507025097007869295292240816885765199457831912759538637142166230589776197900362362837297009107472347111069492196881449179998266725369490521655008703086109250676360626991110128016456945602932821869792182593860664985898405052289122048547895382122216230933117795699078453530988953592336193820589551036059115530654804123100105161404229876769710021887706796501424230366553689259360800078010445047435185997389661624351932023566129667900184424329398878696854680634149139071492334587457287902868987791987306349651097378046059121883591717524980482666085953978668212895548482483727134564031486848837857733691871743047149179103727319204566714137543943284157510199806174973425530247804997668255459739580933315529424709314263356750787369525589266925361031083736637131615489354237849800470073357513754396863607020850099121748128079524974179248784417760468917135934359635723899279882417479139209236058617410751539335104901150538884163875898250082798934653981312505658147617145377734097021495206684022320186536787913786902449714071095810387249922329044046365452084281717860474105333497910702729314304896702550236164621906431401242594118988813578622679188379442355364710977310552233908118198807717250627011879560818370907021126797472193459407068924133899553546752595070875584905850342751493403125768708192369152116614713055765407509247470528086408343011294719691354442044885554193505006045837204810842356584194178645942966980880083655855798715782471228120170115248798753800974570817092449603033562068044561633554824325227675976321789683644380032287285148723884793372615722767596583695147616901979889023372807364834176946551501331202166661040474994124047739780533804111449653032587244549707169021677815610848734464730648709581029172541523339162962103793798618661747094881915085443222248181863692519832177283568694048778594495567841925140814004125682028699694219947398889202809440871953067946838490369987304636092532737516158943626533511541482268431534725602315548984242595092391530914932014472810355333251557704739431739047233173200911982181569591508594794036726744714141357209061232454848471361335599073306701094097770954735122245726471600332868398378823637497505323885158393895595717541140632900693120553643247815183703074696680574691444019489595778843619503004624078843238636240486980956460766165427224838618661340809628871103568095763268453364925145045792668576992724014845378237327399338241997908047017202275231367829085374611761165029920185879235678305978818756551288827660470364856602884813114043159741206981869911353714711320925806121311164582403439169941482685656824629289013017629271766395480431276004311961231692478054507687609793234636660498433049720977612919243980394707656826399026562178885108854388413994194683413048838238254227479613011282383021488154878402372637154977978466474081230817475059848305968076501414815991715154579871118663208323923476825876905011071189846775471803783799567896939154362657107196633775405584231114605971809165194346094610990247427025342283662837642451347106468974897555172250696174896703375845846986094915748492450444092452986253550967242104541325438761982028626173077276165992576983196454659342917082689607865770502599066027898896423385720490872537554209676520087351571110334916341037445449817655750515788695305334564780423644622956448056246095605816292656748006563991172885720411845585866691346019154482994046772513951260550344506413375942967730578977930870528150543378305275396584249357167871873737105153834016725854277809907745765438315427126154454010848786228565898589096331559411521922520105845510338264351353326230276199862106768709770888222858067444874798792052500164459657090080260974441040954066059117825583677920002134794591794804881737000065102122613398640126378204364772959334834241399641833115461768290949539388251909619413292033644297492868250846133676711359316725973843091724799952848865752275293462687402734785725367825151475026220097390633265183147297389902329659390651436804676302053725141684307124880588096405500259045957545966335957982415972112677331160001377495129560712848324697790184227292085236906251249820766076363942101919999915164439088431697997115392297370192370544132350983205222685252902414954759725438592836304458630725520080979292864503386623313816992164291308350320968178414530318031440082456667568505132144706094126503159049249997675197347220354552044981812151340673564898456766388878014060096974368551191826807055509400386128830958895711227250914368496885628697002518556428239382249512266606429055658293511965989414455668211050244554861960523977970066100064294521695514440802774366616571725704531803839870718691086634980000880068276793458130902261677486861484237649612843535497579815833115345824513966881246220561413174681342767562350264371219207911996076516513846619279022565703593717100980065139859525609328092032900257191979079682777667938953187233877137209274033708515775830952870564616050909491946779682885583253179154739261088533043603331497120395332526583166444609655565399501922036570289189912454853058326245407358217144714406769295673106133017060933036395220865643675669547518897216788320685529640560944590232756718909183306577126926689965121948015431893488975637440696559850504616159531412039958062278288666032754367025906041010328051570656055141919985222190748103538335850798807073789116395421324968102171363587996780332692929566211258426114630940460943971679510616733352554355762405009951395782721491366501918493612522195606302587542235355365328506937486186374504785009386530118417385220668406117138107717964442180114168401530634648601071970176963043482877485099134934872350926518951010954595417296367077556648200588399693112675207721867921424288848861519570959014767846082361642067515975355966863496421540553378267818788285433744170680964751019229442963728615093440452948217368259434124447772286982310536634580848359725318068295643116308146461647901417532573997151444747445517143103013791282321093376668942074688713535747612732330213951202186213113556425091167415975677681449393411726597807429998877375142435299237231230340654320348612603064814772737761098427386460951953720787093152543785317083134036519358459216076741294955783704634574856129372509269821443079293801384076207869911584015652384153286402810853493328022759209029436623046637602486302315320915797181511377283044690307744065870587704266758093492169439283022834110992524095052641180640327498587795086497831969076444706139130015953707223058534070979195642376354474258400146302865495425995659836800093606485123967812406098351814844324882084546811648940885415631113947587755217570591434368322593499566261942461511548899037289882853418676554676421170201061764703547532448999092058267342646503680395188228163637002892597926878394977785384034278684886321249791301593007620813279103270047374728267048353107047668770840592181374679738684256731078752713757259529145821423634209662320453577857084336824384493228089748994287765728976344692671997904218005089660983177733449769121819610354756613237264974219932893684368562676345682877320787731245085223653157563262825364802387255287060946873648767560039187268853377402308636595374016769033712419511818302323580905899219047362925633490967742103623984162385456582714510756532225650747513989746231100529008134278579421238475334149006271351965272946735390929005315670048385195797661979919537361975465874218428422327606632665557722989890100795483093550981596087311405839757854655629818146154415012361926923108365830148677617648244165705917211519812276650009100781427176675707965486079141976200295325838767521682168833407888145442601328439441047797788265358804766429167384157523139314976681259640239289756276517310769589589665169062522171235802116813341127686367145051333408374850940961998842933520476529797031856018691663283395560182329777312400013871965324472757657000402973474223349808302561839574625797067706428484108082259969432265338537896847981215319835675055204201768224946788172114130376861739997339500525233382190835758639038361783745199214457147500772351715566604370861213145208466334954124247641369782018505204854339078796088182043865003608174015236917105773754785323562141184686966859971063746353045254514322456538125146137484736865015831877614535702348569832145836365145062428519321940480520342491501305650033178775692312624938208603973638022739858412918625600454398308973578758298640153497907172924186336553435468486425487521880283796892266873611923001143659088974089571824498629788210751072244738709832949245783850596540854264481504774300359773591383362308307987744546197704050763377676052152035957917639842570106143165565332938216944700688484856662976650583389709784883365580590116437968549499562913184070702698770903908176518932162299917453088484524196122855056707036435178472287283051671890476213637847905867386270484478235463842779157291407307610347368362669446848421773891504072692362285641793179205369011439729319435402562840484283787553144122743609343512320988147688279735174129727760435611102841960562563069750338426655843540619052619487927174488791181348592414728663678135155745684461358029886924400030793157738230055084655835431648119262839244047110345330496030197332782324713955086546727550194061105815447828163056666209115682904990820351008121911419394018241700040158978373666038934970270182200121648560763125669350598176468224520563839989110561481046138389355780902014548408255603851003908345790799432085114700307208471658837966936961250828551030346674571987538872614975049295734867094129467613947921130444988562181648953912145448096019700747788946903786731050028943004087007289516658079412638799210003308759187636502430770779529094672369790855625863559767244607923592726448881243838789044288453363009878197319411068721206849862889401373755153379903265349584156021280742709607340323195056263405204952789064505409051979073667767450892640336418041378199975177010588263790345633019390737901331468324426389258624622468572414487792911330290522398164868751322243755956345913677304200105172862728158711192839438203085816871333560063954986085238701752800881125632035418076828767334602859102289606781447184326345675190686631081592214768570080676093938808899765741361840402541677811142577449300747976166042409066232230266134591488691008484317995914993194782125525495537565257544564251255768947542057143482820725739968690080255299380001773904411607321025266250919655896984318485736187487314469400707318441966550010969888639117290872133342004925864182702439561159751589266209800886758467457658832916647955041370222812137839937404882014036059780404966581750821438445807653842261346981574054704616837332005137459660803918785306473304937689150087154777263081002095577636554923230319388169863853809435051050399593374174259988878043702216949617366097083571241108556675829553234811557523476829201514807349201032591321273539126860355731918889576842454813894311713391925312280334813032951651229671242339354902611109534399722737779090686761627440630039727617744632787198847792519792152427832277684930358024678827885404273208927103013057197269455982812085861165514099903855028916832771835227477816363580294374696828310383932810356297445574796798187940556265321292735490991862799995304753624709096701637628817291596803093900203219847227017486392218649820608843156270493002387213947847879458122452343466463511271151001812862748287887573369321176628987532735092704381913900979442711331588182949004663234569330531488527347161030590307655172365340668364943446360389734681954013983876559877242406669945741826242510871055758096438901235365288026276025146055949590433641278740316827604150536319506281704258164098549866071364179616709495900608291316877957963176389023917200219395497221978063318700016533261710529096574810536549878883616809526262853684607645753291100423216319931490748771973857796714434623305705854227753603167688543034782555785713502227039099118136606422722372839843763632480084766768483387815773663768965517694520343431590127210970170833209372809270732051678082917230669732862702905929557420319840315322451318632664761597547941214379005158691772509748007295255358914325628434023164669615009868612702569214027196487412717133680596248984545049784281245156895360154990084365618078888354718805348816267204325135639009094569446151126386089814302806341268507321434543645957579616717367764963110869170881752194580475243117254260375487016976329620124853622077104069655827721192779969269937965598771108826604335505318563795761487138329602995562106404076047997650329933923758302265598178480875721078013426054045416429105883288228094493458259205148704746650696912490941839860765218145065842218997975360237845744600159256863971662011341857172659310887320927667062318437632302001495385997721264597282991236111325509786982500356219292784801105933269738089573058936276117516946488004867463034291959608231798433602965978647271238529492521679125198368089318176693688141851368498029612738892254448633656541587742279076629613585976105285625002890965247892249891906741277087956296602934259946516800731570385719322925747234317976157204584769283854741833819357383864385319953271289976090426796482212755116094330589593959005265084411298796015715277569817164714235779266535354535351422691683101692300376822957198419626304115658212481911927557469150131396271132389475221682900416295207662626012444083347202880361329085287423247276476629385924919738764117360463969571892239257964607928362650817187224276608183190052905584422671374967896448814731405074977675964257820070942624957168970398522759283663255668963458215698522006207613544018707227788490729360739736897635673351376464119725221114933114666085105747527222066941296504609706109279346954932472676333084884611900315390748629239728799991947359407131830940764590882090272040204267260567271339539568720846093374202601314435916191789565360458884440623067440802693941327316102523505100366255399331166643169076831344731548880890690763348341884828427474114215015215402698904390820550112160085219199260308324718661233358110559341667743070196097607704606898799331945134695984752934412317680248979074425958832517703070481307007419616936196174777582419560273741518351058640509301783781457108713301841423482589719536670943320593261022538951948853354612912003153150787797062865175635619441577245718360220928906095263161963283168363649655402144383548078935546045645749969601385061347256919834783751871881729656715985246574026638688603567902488964771144323230721879445924592145334644093691269439851177745292346430682795026830900828793840723900572984827784980897720501226567005006469505402077183102528046460507926061935605641748010299475109643590665490962607848392073313183217675765654876386520672282959969999837984622677373664447843961877463648545119703861168443684202576731766533132887653258387569687554089424171473035969732206197234945606516592009876791821862439429014490963470267227527721490325351496287225446600144106802061523342524783727474735380115076084752551064720386402518052800895177943651620487985656829361174929695985192776853517063825823876100377747810656407357282600412683770169989236288473385964792504909744237359383225193632182812369739703292639691971300212626309792155175006408697732607656543126727715839489738441220698219283365258329825618670334687323121648106595668930037606913565402918585157124700847247135493215272221841178804183330727099000001434089180421671087858956825482332691872931271548071506008055458570360283639464753240725036452761015979365217894823210039242088965218932798743948519501378166619329679060878684585849952055575678170819012565360439964917935772105906269818129534083760836778576496630173501305265834980088369744548403854842183131706617067036113160575822219148574562278278432462720642939005396439327549844979445500840774580621808291152430111907180835053592966716879713119922485141240758053498242277193438725435640824786151797349427932635219459583192351123011655605600852818926185703782998839296191198838608513685732453358282523532440765516942930749373070176508391480995102382471860495435613800063306519660865548945057194290097930758040084267330353094643737845677716518224585985182508595176440036794066087675879555927883907543450023833743957099566965712462190714141371547833741170308709916618525666841861987239603599231454128372144329416487826077106302944573558829538929709535586444773916574908889432050697754672485292431498054578010008051877835270058108188386560082963011696835237060458147500526577245764848113161570450502246974010120321436471977894653915386834598136464092949434351689928626021332778025709585779135814174852648167269188452015984450205298455277257286416540750572399092581053535536791302855861945180797705760581595550718637207237472233733997926552127826830747403140582749758393151289144270752821015745145757094082788334040094236748942587254411820118185566539099353901016525428881651231662171487780345508261778740186169625245904715590158685676005649952378291539004156747910947383639319943529252670721577197033499523185457624501758023186441425481312007008384374159296190147545340113301939664309563952158483997143374604101640125544860401850159160244280798601405806686934490512024235500650599222926197574300805273201614610825823406081177345281750656092940630299125430252085999928462482798899114375663881457007354984284907407714678587192611639164510829477927606551557631632785299620560289780873055681930383381758624775282558816491498318266400728209060662483777980979797785572208802180771768368058081413835082985521294286743597480477181664398449950091463114348090861466811301498282751485597753342151373252774955480656679639120079608918532761931067494082660266842362850033394741704225318309258956608350611910352209929143796619811194213524142728231752511830148121613987592820604058638185110976591472187392569331956381573277366839137476359986294177736070946008627516176138041632574998945565099980086004055439602201249240725136475703555056121810212375300193305587428587744123206603305296135080339132970140948010056886597193485413102598019342397949169224916352610561343979619585717641895198556981089551573065224160123113609990144775817760784032059371444375793602058880315063934914786674331553072771720056715630936051936998080201303526599574380702237270439250664803101135504489951837857553853629285772022993798037526507423480146981885325600172277571404696459342217091582442636175042590466875480231345623052945884935080300976893515486964002841677611865714636745926394452679988715369581075628566832911622761562503338679946640839117560654078305557911811414063052314211952429751132012351690979230119451975283878825368578505825046461618801775138669169792881265623651238395176760740882205497693312334211828524833019400988713776681377073945510160351072243093870660160424264816165411501884549339048820560910003354318169743839247255156032519156895266543680285468534813081697849288931952203983942738915920892246465834694948721697405593692731726387554143315966794875657915883706298096734038812875534261681092579309677723583905386426862653105025138682715514513036775659305944426429523064933815600006334443240694978389727499817771130862656810958194200101613678946453963496769169771141829856078912379480363452770948378935100432998503871333551662442312587827638252785587642827239872795622471356311616064562891315927042236735930267980897277091501828559330615363170836182537496687847568634633346788853934100459456196186537134518112681546244000508633633398566146324585935440850734696263411662877950978472545623885759474413358318840433075069170039957936102473483723139359596531683471124535898158515663223099705672893169852973846724532969592316489312279549035352391582373153907586483492601102742445784339656635792101910463174165604933828405218227823997662235720589123093668411689299275069225226627392526774205596414620418985673254746871369479546343597626353635690572186599187785592103054988471805293490193249769136433729062307165601374634663337648626765087969710036572780271965498698777367307836040369594104672888332748439253591952500467175347399273293123573168134016863236752123785755201941272970226536918867355207933836513209559229903295539485914226006722922247062773096937482954893570472710780128064200952725032953026042661622847097643036287905927664816179597744466455589342204998653480092832128037258967259215549121862280411701201423992832355104682263716180631236157254472708316170922575263487503451893604419329360415811379038639335393772691314725670612779687380571127025647975960828812718662543598426451208236511027529645983694257105783804176703399289196243881038170862937503420954419083057646145906704621230694943856368202800395548400631444433618603891574113760462475802745415880500001852628127319034036678163140561808521180100335175308178698631390891886079934889878507630910899383062311172292385740763515402438152392621880790708829337001696963033099294013755136779485003656226647187464113736519243251223948120740485172777682444447580955061214407815826081415707215507577124712180575855985048771062252009283497153073568184637151927778490065050597332019263614939424162640538017874087451156358086811213968823758692096938039109925465058526040700904966413521191732641157973590162551268256700178975345982340190391463386639113405820118499236462333987350115158078064231731118224372019596533722349755089793144621282446114974626538004669831296174911074331220303477669339319542752501972510243135313695423098416170518985698393160241429463695586400511608265020632605431016694066276806009964799727777646636270825861794712681820261235942450446216092102529602059141468549527650689197112221439673022637036821140357058562347684980553620061788222193196229434144535050771278557264956376237252414912010276946133993761244373841925126540680550533119325092064673454920595461713177303176015523853888617900616512293536051622902608352176425881173712519034334160991980886970178394499407277576463918798857783607208912365621956692456335051460030060538702092249943519373876409150796042840452751105382054941539091851159124527405227363102834218586411504793365022229636571157395923879035610580076754861814140177352201923614876590572089996776970887691107156320466994657517042335745542549952832948247485311980452956853805583085280729159377244370374275758226157752480859939767680693900010785028814044941079445844145074000316739279341747637917651602288829990528778629500334848761995618211804483734184395379962113245615914187704285860919734314104695455324757182330645854733986818341970543383774347717911168321249312025893018315634333949538617631852124909659608454408559920718564766275423485985026294862786837653770234602922673001624732980940290223430990580105515601553295549733454219965097855892610253195838189726724615254633180093269554038625326538886540357305308955588495445146835843460578121926743748193951476785800965218661048827556633377230479722384927454628608672990385577010557833353793916667014683511327947032998646095043352035984406120970175590237263923858902167885057511856557434093037401586585005316965946021354897128293568736076562463333995150212894165788129883035625526878848881208473829592587437963958835298153059969452631631262406878592009771887666917329100973355571596738030551921003533338437154018869594849245412759792815768866407527088284348168230028869795189053654986821064874302036091115005810396196259564613843831254503502924331318793454960825261710687318068691197119595206335890042939750897351228350132463061566551274070062939443518960070989916071502031906035068501101348153240292018839307517747047377071870149443546742059270668741608161531321430894849753969288572003583552220197675962734037239854131008665447240189479630128674545498420413971183984767998531859296386424805699602189407627653126459814746617951682989614568193195117735593373980070287057425701074917969162645629209763148336905052468394891653549422181641304743607399591917432833832262104881705482252771504093738739374824372351638095676453933368297619328159692939732167092765628531691215308603085723162663433463930775466272730954000214327093796408324983849646850670170433818383849494095475971322097725442194064736609822063934405839873000561656164226429530480347078541712680297733537139823602270643810117053483281921870786318020251658331482287104783192231753268309222457890375595597406150754470245276540462304571369155985605485109530333459010684269710657381914190175324569268945244731404188814723828884255273750853018591870854315756940391243543298099736738150789681105613702450551327278261979255024023085138445433893754107701230861887028219342945962902345335642255731154995266869346734455645499942252377688543891527777249164128994504615267198831696180743774528211187094031812720345422666241668355495017669703307745536845797676756574211133317397614630265015345623573895928441178159708156733288830977799156215947551702960198636897017800252888551215962207197599771469429552416005848704124757150343921926800344949736159010241392696719334408439188971560901999960461444462607132790979037585573112564458007586089647442617499180456191789847745452987156090841170075306403885537580027517406874825036180953569496030769252358499152134102227875526983300389788475764410018139084798183103575151720451309770440228802400655845987615295324508056413887829668287492702795758309796083706539651244468669904671913910160633352770910827141089432468388231025219782375208762598343848854589449555436882575963568322939716173991419993084445560288332489695957039887767666696839110404070914611229021545647335950696077420597422347743189816295649826151074481273700371897760790760629058665448046297071578305851159453904490004627416560334554884286215042680959995322211878905081448213052173281082542705926903069050872502043154674513214203833857679734391008010295274033282263235933214825436476807331042904922760304535215969389007775401926631970225408638096567516323684822806835284345017134932532521160356281514025364260796969336410392702404502619254971465260590046858161835948346132912221029025567332539074438390524274600829699324570633436124464026392123245353548321251926834431800863494982200481233559514673633883927187612342217067860261340459013281194126774038980991762162261207043081364160554235330009828600972232117432046234721874057055471464319858944926521147545806686376388392669607904800355470942641557902812104706894192289271334770636362328129369595463263697579145597159781483187585030137023357938976297255222747326923021690041483118634594517488625225981363396914702961269016540034549668867981505665703887563669962090180220897053748642549660159541316695998425080880469711461049695608230060823779734741882535214516935795311355552532871215215583010200688414461083069377426697893669963882762467803626938616599741483064505985587114783397832471618893516436465021637142831266804784695210867020970474946080882073131021518413701992512974348900590357195520685828282264314405698019513149524683930102110790072763858487389053524006998631493564866989477427754174899104531217215509910006484223470463718176944968597657247239286912886392939535333342275861484847653750630651824142731207004780599252550418862867581394579641882649165867364314808051953853256214219236373788640823926013731571622104558534464280259582461912019820962932224747005413859386884067894246638583707444878849898376797150173350276174809244278089855396907516412138267428352434902506135243442607644405895165173461499403857200856031557611481602574273896974470884523752726481075405598045022755942382691739293227373316969269733476132196091305977084857889574492341132394182060849221002570977447863268232214960418244476468489060558042455639211246378274901085520996453305635438800860120421594739706395199949119544168395344469371258353466848144001210346243515163623974946821219661364556629582371361540361266033390213621091441381422136118537569237988117413228691926156379439040237200996976597401628417193429709184785616746475705638512879716647661037291516034056851952095918711512537641088238518894651127767360683860089152648976325838149688380940964552919139904211833679937700783392441894872757549050820403399545564431166376413209288212942642146433838655586927698346206463232561244836824997860303798751936453017409341989072895738158035880144045608275766330033581492104461042427204826034332111587890313198790912867041932929482810982973122865322598681933927361573392093882339118025851894331697826364502214932715126448620292987200103918066233241834029659956519358911914421827034200015649273759583679882067365044027418459346262602908291842153245607002658140111109468407620804965699123308174889608346395913300096577936208456915134158730729990619293896175801107844488672935836023702682008937510930690051827940696101710536080060214196695623822373244808604339305020773455315404447970515896550953385397843524000840939361819516861839042206110945083557120387589083461582269344462318576472344104419140253871195102686906554631612502136730194292548273906021471629599475627824295825469335112952520648109855883567382938962010355938530087341677158270235677167308224846650564497397092281737326499103944604729123494906667104112632514609258970602690260736705406193583649160443687683352997433398487767232819393395065802989500813528583488154755023621450672496468342655340303280102294661875713182842547578571867364852039970771113109844298380870595798009830070711033319074577629132344363132339119844460013892647187469275727841862157727088342936147617404761400501253042740077577334073322574223060291603639961165628919611332248490123860853650448840183022438628108671548181990054358880235064651944347946664754756186853403906048383022589464503413773565413231553530087882340673973168272111286873454068111432713027237934719276780021900271937865431998956078491920713356207538837241979504675875648894283866255015112691909144088572164972339345949510026449691193731216317249352096161770691803762901933022070974144590958159610324059062333269915737283633046162041604062385393142188771507122677633384711393646055360574712177485050598370323197672357780853803940705794033294037674138697963976386390436494270475964974049841196920216624418021912316813615950017817957471021145013374827215930772407230847018942862982329572624676360136142761515569237763779128694586046521776856437484619283614636257206415686924152911663983328129924179140473389666117924981024995700899054116418676768353252827920924801257950736488778269329554475378986475109728159220270048698498085458934186072534338401196735024825666675178404288698243138695446192244759750289264413365720376265343212987112968080025475803677817438935674533761960684502979076517084794301675336443693882033973613370051340162677660111307241183367847254210984362408573781635746220252179384306292480623672057561578202123603722632092651563932101212674763637738663292231486673946744858891070081759135782667225918128484474761595312018114875322940611436874653124283153937531999074027691995652159080268939732510216510567594050464363600475229330969092152423940739170907139252976152145773157913418863749588853426026506515114624221688061544745852230316115437720979029138143995607545509356858275266914940743892516799175172620610461685979490911332742986112579958440386475963941552053845836601764085335996700116003521766744130680306489257249793049775250622897498003287358336549688204245717694242859390233769264533717661435574675798394230203244929772994928042004206008926258050045879483799390795496102896456319260552357755511673137411700441815702080938093631500231108698983671700394118621868545264550308928435653600753456886279022457490918607005176159927860258371770022631899924723534513304282621789513008764528561531760827732243923777914888188997969784520582245276099815636417208244835866874901481464161364595037310168346601625287793875204101729181213069489105038433643555256524067274177453907262450152975142767138806152548447733635014410078442561962200331763104916685501137113110436868721660283575500477759518116672905490889384543201832885663158964741473382948393668245547628041471647131971799588203202813892577267653951149834537328008404141952547726545949856632574156740645834134573387527448289969422037696570612471359264693498418086008824532007298146853061705463489668064996712354365713094555831749516906017746004744400464388565607268585741231708693050259781394055727232678087350834692909519060614374141647603422312394021927439600977893929976300514352468353058671668222544059494856273974530577698245327477957649923156202882961745296819311298405483694466003124273894368446744348389115584343517350445395097466410069530544508274812462263995484232679317108113564959143560275725914140526818606769780545484179196138726118432525762340536272984632303406833164985013872330356559169478091500710267392212963257159721475805501468533702454008091488279878399904200256444168729420547487085537724781491828419617735712594654139008436014644778280187488206112862701592213403658220550991721837880743919660265638509716879873006948916297880650025051301446443736477750227897272521505299536375003178389818125485666385643230943573689408489003383685103831279283465270556804287765228147453827543515101726931635639414809150255691241981709611240071035150406739858008017198241973239096093255304403255422615937976658167840804313439191920993257805402580894134812701162789879154681858633523110220801950966995081934147975331137134513096613198773424559646576955026990885226566977026033964511042747696447329240982531560995617934832875411919672597048956016684421732441525525672272462471995559802610379162190714556077889720211422790950603867500099236070466876974537445666035812731682820554172045711544396520946433452561543577369512904168549304255687830303012294681730535771385303858766334389668195932636053901656778108740649548420768741838592662313667598448579783829576949622712574178659768830044863657347366476619110148548549115018960720554010852238712497772311198573152037432116277117505804286829705721813616862073988106200498230624256706344595422163145161829168394921816535381485304646029775103536772852724579777558179019377396756568363616960218760264991407417422341892431916793283336156708297029872240780893706786871457084504918390822429420089864341681773202916260599633010874115239472228521345128435023456625819654393005494142944033512256432022271372867397277121821222933504400893322021836435275706073639964362882414474121912419943563816419108054292937605529964998018273649620254816564476863585812597216307603191067839407093434023465305584861021708100846926193068337864496423997785346389284915623553733160741468244351228966341626303023425580303257476307862939249895373952337273345287460845480059958909647035132620079342188660009354038711039967164777172682701947317201012758935139230803831211429789298256376959958019671529727224447433288193261093483591226955824661112936843216596110747771160093241089592630305529188934445430214085749487904684267788154499476586906527008107651964066598140138372746745843977248277094822177663160452204810472613895062888925507667360101086262711098171112749095779492588686045548593176068633068102263873506369726846186901550471768639532631670603897188491990944578510048708520590261231239039489522073351689095888344302827090103358206708955747071987331652196643645503697248539462311567807362147699443529931344797157114590649175657851697679748954359683492505493828452360216819076448946604396287258543591755458554174592412672647430887032327848941768196535772716234444184025605671426187244633593965377506689400993940562367175017889856125872908948765555182345172156572354953325023811874446544923812142145027440929546218478773000236147057608009009330058298623760916832645127986429725625049650665254267792723496668963762221824491714656927936365498008337533000510801009728770700344415930662646122787709165982045898036104714796793444958032499537891880548784936407133209143860687234643797655870646602824970370335472055880606801258101256535551039905353638740827201225349406357454446424949751547488871308723526161732011828865853827050289449734031203119577076286541749642608638467896975070248235580374434648234739273313248654866123994472373952433097417382626702569634281587175511422659808765845388214673931206005664011809829511292349284734071105128899543618344613288222312770992296690329505599387217138309932001247379275029657985631907543088336570277819623782225692561888663117256037171714426891344591452688433648552498920477733339978753151113743357581043186457226150893867488653702187600711349255057437565756111460292868488769374782951874224777296779094880066747489531542132269287455973355950777734614290656239507320526207586778703656026984860453284777381186637260410963654164354971482383665953151069680654761912835192864486277988513881744675753322482345434888771130150057120283262297676223377838689984123506979337722134704014216765609672214644787956686468268145907706459998534891717280488374617894698184690748189139310529792955267993997168732190102585508507695530792973786344503100920948533760680613461927744578398139555137249356335182248837196298655145735427820146997750176698665676954894245210253403741917775475181264102191429345209661539404052286102925504100742403662088530178477633158543178599284905353761775213175668012350397629620572324064467750517681297512596162863256695825508130665555541695105931165647894513754209660468468570405727048734778009769657926083907517370437825663382108491140246030760738309013768484382672322437021424747559343248399725186654939249977526154680012747211487607033052810141312842584196847259484004099765429226872244277307799410148271985083168431460509467004329850401663503163941704745657790726672423761153642470773871573867341051677314235659035502881790006503521271756226828800644555311515856361654825943217314036856419449412832992236998496661326518263521977809962269996611810437172490260698527519499508216828945827002636752337052007304373918245401070940412697189825748161764425591931462459107733400444915530651525313474548498798531305172482117989321885244410984465422678609333787336796855181555756756290495068216750553005685878723894903073540393112321259046724690521209903710708331760435510862086154137473691935964516001969763201753290821373752682767262830274954285699677393811278215489968857465446705694953498261681187457641847487721615786727637829390236804264886595184290141238075302505600549580046292973490576168013223414781034665975344676023673601568549514787915687008859672960786047826158082417638664678380291009458296869212037608528910554905243123260580496400589601908943966162114033663051461422862618647201025547236077338646789751340933327333820888601459236918779229547105062165748944214198998064122153995815660273053480812083769704532953664080483532300544874652721919447647522720144124725979316913073113177864094994731677222844724192903211211269121694765807268728404063093989892826399991583770348213775555395820686195714989973734561166728333977278196767593363613906262781272246104858674713373523392875864289741538855554850231935110599947536110753738780867445320331144388048317512174134351574604765215177014486396023739910956495341338934081839250237892332917015404528531995831762885132897475030144759005382873605616052758652541346494858943496247829730241358586750426707538996206313314941493701301086998639031832697431576611895140471599243347099500425174868485991142582389593826238090634498186603135350724393204134276658080927323603821053472482524597905105588108045852814934186223467180887471043048524081860470570868742423120618644990883497542531319296380077071128822863581308000162863786840021670290341588758695536957891612247143797344448519572691136543712781264621083467591587931463722061417329990961369464048600287588719461114806305756216248575687377723336599613887070434320049663411494905548280242572658681601719755822244098564511861366082673343023217755440513683004642228135870833617053983879647708824858113611066640350087044750793256238542460480385444999879524793704909941047481080693179071295448543192102289943730801934246803701806738648717992022666323596205126703937241148086653049644988082842432213292595706676531424492224372701230466125139478116565666841578596042637085522651733198184373369058690913275874343969201677062899410714113396253789739931963300409076106091789749186260459796635639785728932232644181196688104568282717562243948671950498091940574281025559188587326370672970961825135201620047694012711103231459080789395917151313333786986409523711226624103152187900628942704182460028725884073122077965736970247122656349096655901255044095526341271753043669292694552715401556809837133663552436107293004912898282537464453375533467070331365944013016615454603874478926977623918078442290319883648954642481527066337490417509694026908980517333104638881938951255294022876564697218361102334215322035747785255301181022518848195423431891366295392806299839286747604425451578225619706073396084502025022651359471666237329956245992766095368254534654766533427236392644696467450071320285839701704876935943555981154117487359700856849016128023691523701555829963934397688288432235702805463800845653316772815275137231566800839730197839060263458519205603512427853816978987424979223541626610994228173631370318579228904851933428069093522504929292156443238835829382281546809743514925515291921431310208459417016788217525037325059898280430353690599150989056124806172910957173785510679988341865309248707037047103747516171972919085369997185606341122802052973903311595383566508477680042717887166211518797673349664857565138854257941343097392741747226929191661318681279465180469825213135096876629176927282068302413505395230773423711325831118105333608243058837830337087385513081290316724529966854704977060266205097432939568532518456118005112600824680795874832558583416482366711381079577954939930302414523529040740605646764116298100476836149274928595038490258466478782579449842509011059161801293185977896667515915324586960331476587107261649265150103372453271836284223208958598314419230931933185309523087279306180975592419974110828056089431346462886923089610183593859054886785278046213857683866379395945140042821114608035036230387160579651576999614512984332006541284957446530061011809723318841209510638274814426523102043495239401743412439408687674772797686988650014541504710216180422292188013713425066625015109620420840272072114636163209516733665864956059729780480038955883964826839429312722516479594836184471773141147538145419012131303294451980492427943924904651562380263298167502546855617051599833460521102309035477544840810477816079568628839667567554143883675755124329727659836388293293976237428734146211609660300150001856314900823508349463606537863753175145473676114853274708920646872716648100539600211537220459922495068942766700100954946228023432687173519121209956349579891350069672674288548353792505640290205774988273756709329065739840056706636337777151718656634498017984759922972347735077565414144753597393084693025794289585648066575223200497577723167520402474272851175077041431365541675769122759332588512105431209178094941526133592367228071520746587182479831578639129536204060236418883061216414668355231128478355658700363550516557558333973441949699800555801416410606740516621082998443654986346437310260128645693929977019562696039649612812863892048596179177814435335434005717403172454018328790967013002749745383827198285317292185435598618119078032338816473841917185572778541207863754971479567131125101940634953100185415274437463337189595410639852275272757477085953706521826600039751668493890404082587302298761581044371524317743435470606716515547969822370446718456580017024645505313950637214744973856055584264786940545485717241816675955596215047196431937403434276191890121578013064497321142022654066608381956439594324499205670971756200098838550688129014402620333892961177281748116495631289881444594644753449213790749380615303481282990771070038908760011152903397541466386156150144718144249256312274736345376782496066053799893763486708480800283982881537029052508979989954972994401529340090958885519402256625377046278932011564951364473641766137411826344521009466159990342892242378384671012335039143478386180338977062630001943667693110910082310577329866524567944451523300181785104734359836815297374564096922521992661345690119135991557597107466565536175738402977357601149660792911728082616117191559274071817683716036217645164043772166769525200151535037681844786668868317273096289632072536866944771762376829924384307863489047236268699000843186188238250253114837705021699879735934496742467862532080848430971101492454132869387572828831123793071413506650487526425521219087159134844399277302044327938320351047548616589765352940266151455039535379142246234588144364638743716149736359963530035251198327601761918152958549962536206896021798988647394724417761909038055564120179201037202728071370599907556385233907931413465761589189307369877572503572502842353895814317065806513632959284604467688626371746591783086955492597565284378756750380937588408232254037707255194716493157078829146026596068348141153699249843943941771142016871463618727941344255937039433113772811069932150141710364622990879584547189466014651834973339598986467534093017767130044287965325102969500024827639303303924729106073549465632972085472763251789241054714329242296862385995472292674718392976842590486584450917481515793119813759619215992301885746210581783882770268848371460201261212196220954985659745948780597389507960426933143470477554031889698869653552316451301062849576068062174665434731442424539666616411699295462857366585901870077120522749574012433467640112292566304941308156830839806161738682533112595968838627314631973717761955802602929707903342087823096652340230469164785639373591745954702837337124039130962026315471589706950989985978442397845110824621746492043278829745346963632865560724167799093691508269551082724472051247095288770562597613228424969681238452108947845780911036590910699793837652705068043003690407542842894862625585892590659724752188872297310246245082877363766566387590681645218820413414229904254509712315724807793582681903756488084835974503844138878689707351208117548307113709642165727155489029434176012038262683453267912216050830112895915905437710411778171731746944917467126105476959553397091593555968391648125674638547573362132604090233302151095889179132549883659102378175338938388000123708171429571803490996635707287309696912463288850472350499595331634622429272024117504712503954241412675913918881097736752645738762042210677477053455327155178769442393662305979462888648327775823865079041980659726322883891043836387237786686041398836472579289049369701732347061862378701418693424990875949867455571205333611633217763885923430456587227024874837170590177114756595354479297751154114289589791139612088922805338641787239086547926143557601602138490037642530787112950411219001552146113456745961711659404957293747793354753602547392202781144954308256161403035001561477370016628149385396808746495702131164028383866026239014622222554395964553740212888360379668753734761712296975482251191610088510010282637855882313237871998628931668107723020593433853347315760875769625701770076113565419488963446551045592567633465601164363333939455798422310640915013729176353340775894304833502038427961838962127615521990669505809603991912095970158551090024650784004806326338753546301543914992684389362442090967921595237804907088602748303891171415614963079350032891272050417405073942999617486454311379283871070688219136587896260340827429558740996121203354374162610382366613885199949810903735623404672694000947417221066245009982184557830170422589263076640437278448674003351626292104629611807595486075045792177287369477054752993494663963223995095094654376687771613981393733587344446426169804587151515245082093032624732222704486395503512396338519954452846740138095531640056605934778336842451402160578487176493376852875723112682263553182663353874454403022203735663827776127103633971367659916447569719289400258960258676183683740964159793779457192636313397405442383700264702889321799798490143642946858460128613165714537034202147758389341623284755644845923674005020039710562944826061871772884172607633759826612333217521405797504622376236110353743108716909698807236999425768707264642367153676535568999285223441941744046307749754923079022973971707422213940401879783816384438398033136298005284617917175913606538586221107825500558264205855262933825541074197251256662357459252383043258908975938189054294351189738702729455726068057909755120947138461852900542972892643029599977222562106940161807628599899354330058531978070008757784094335176907791442560838078331908902925618261273314165915515314282833238976338278746743474478681412171801918004618291434255033342365492781834034051916058113290892364409531700169042729677580126985644638890723962043233249483437347075758688206913296140403994610746810235695368852054880557313195855064746317630546304694290968447386292638305763469989193478014713612075868808391456437962626761946323833737687150353738581485027133276439368077083560793912562613707211283905132652658554702793365554485960917994013587864615178713404156562997016468894360598880939505147342658676003597854571240587418141556317780727953871406549459916521785192223917381591423628586811270531030112390539164932308824722306215140839291511464484748836856647570075423094171865938391598673918863915291064924898872093923774644984997231246593898191618483796512584560658285033113089770768549088084652452608764727297447932996941955092760004849814263230205735374191733663323800165871429955861941334118911889784173481329932456650116862922788100309680269874395721539321177067917616761449788290601940409036452948430544759327794708751328138685531584983710702439699919288289993575510943616609158525454928594069340151325224388201126334277934915800298021831874679507428554939571882195864232170858041844494515288605288254088513216533235911028580776138857200997339592844659419906095067141791136721149141657938244881083179952542396736691798661000094109684810365083389762176015009248630162023542574926669273729230428501347358884400618325673495517157149212830942219252842420826981096085422196410548292454615432405135626496707814956734720997741949761030816787140382014861567316628749276272712802453663803648220653639442615530449321598971565607372562785210950318637686257213950030142824206933037663568831945295743667682510425280081028189461445020239662042749824728683059024746027704251698106560602077033335106975852575286680571742791073320762158685301035156823417338756621967010501404112175432735559387725262271889505057640818362631666744259056062140156413327407418516549465138385097412892254601907666046320100273333448958105532149512392254029892631618612718364873289816401041636362895306642408890276694461838634546405144521930910388942175960996036949600655328507107469820456294805173482548774321920545436442360401593818226150547613451153442174897394561815298163001200793266063999178464170036275477442797806916502795259419766878137111895811728979039054807810111531516847992682240949124661812919703722459250295570431766100919714480775450886156370152850038695692804940699836162149103678981253140603919290869540755480739421688177449658368152454359817177410455302992919995876891155440068260696950021440880007071859113806329018983889328360416846899822266660006232755166494535756573825472339235081838383786424027286346500729032854303820785656712275836285818571399434346225794935190536035085806761436687780166934260648776160241394035424459681939054378049866342867058252250564147929053847981025112353011461963371348722058057336128064144549313277480450611549226508981650951937022169051937503196716246112373093134677771345454655318203726409621167750371860042449867949668885228814186347633410988959122397943808546881280887438811648655079663009312641929873649798008404500998093845245973808031567600393900592695205386314998598791966952099730047719844664217653231800637814301528860701991461943811344073921446358926382151915959767085070397230195025696358654675734504232948509580034729699532564179349803923748437725526111117897361693374890109731883592683836528417382028790377988064869179017419033178875386109892031105980893228613598536123935184630732657245596346420745905689164351776746871175329067701855237589821237777912436905505730419876876471295816384136625241148076769371307558229233464098314815919466111783995475108550446991851771209924936704708735121571894782005967181566226133428360872969875275127043654184249369483204896805825155841935156147733743773343366456680560848413444588914191125428302325598106537000673358681858424055821258416257483196946922562077587162999290520866823472033755876946479642395348467776256899891523331182801641328249107449134441752373074410387645819068105513213082078796471659146270056040628240460033448338436461523277819751829264774326518494718236714949199002415766087740691419366076642816972030130616297091888041439210422806187286651832602921382001192618176423753423847995987870376054045720466638133307415468412269611749716690909924683334053385660701887234274246090014273542487965232305910676399696350484881899783142919937992361780525599504753864536839578079498634287747504458871700970660795532682459346861327232003676709669710694565845281041621155751648094386955865915955607344158671424297894472879372465325099927435658628063128741974639775639401868563746801553769441210288039637222595322500021617980897694176141222202243581845686246154319917170106370956973857966116415234875239228813402030669139951963222280350635858263918647601899203378614000689776668122444479631998585351791065824029145269372804433422106950168936524033351507003062597920768498676499327072373361029755156398628769651789565968366790338186654530486587599711842163499788613352143905454241431530009413715627306193059716640808389262535619757101960356980325825821470382938520204298048123313608962630431098670724019846187930860836484738980513248737053487933364075228369057292187650581661818191727272602612004199671204204137788459182483616986431536800755918184797541131041524747393500861147397338404763303261069925802254301888094874200044972812876661355634743649795190726417380842304697525108845682673691044353704957786898381088842023633208516776152609011690811899429378550198411432819936863024262283040174352047867215991288992896604503982940565377298412540155907872763473943538092565523000672528364856287070629977641678253449149188458037388985245840905592166754231352876473756068998880463419594224575196452952844473717378598413691721188660052606945049149343393535805864576738438789720060126559199177011081771455371207600629185228221911744801061257871782704534045723683180384333694650301203707305031050648720120255214461072295784906390372344166184992970087556095156129016165307012342661396615916238447826948338989272519089220395842667505399182402255013449993160489497257648934462364218510113398874746782421060068093060044060412380670333333854896089580791366266798939022453424946137743246532760186240952711553792373636853443557325478556001718638106391346658567246165078405022787476561496547544395137644350537634080978241314115882824684351006829326741897306462481793080696135012218835602932591980760899672336942912860841146037261245842789837847805678587447453163891344933324582137619284741230502634448035267023792073856606097219677319151856323608589992990514809910719594897116740933249222070209064931883376305930899596557409748970617477817894973501666044672916660929754457446304773335138930896666246512551514208073275707478522362659788200028606747659478733587172883807719826483933645388635343836982523633512259910349968501765054933992201883213273404088706638884051668326835525633823693416486671185735088682672886087316738751549890431797093109682587713672300376818537097835299815346569205112561238415477618888451375179646814950327749247145407125423008774761147516909186774448936235998418862051054974516477359754127331296306136345603223282671129886745293685272295044922946263357876919014787053240357421805881158714839424155317477758254503292325859951345538350528020934801624521491274836009609064932707867691179480617480302280117132583965725128955874212510071685037368609654767810859766636527963093213260249295611530654168956872625973870568953631652586940856637244765007585856670947660026107673218677403313080622940568151799232961656492596378356755117036807333236623607266266687623072761703909370772604565656410375507610670904821154643475517502716664726666721445644142057451442278878178611979530128475620783032003653078591706879767466461093719441458789848737552239387465769713513894861608462057318760161080932414367340783450915045322208903815574574472444689077535774974467196407694095774325934699713406551330400737646006495028877892793806431906818036580965814929119992771935381011752719365939636507418815014680782798267951304580888665818538481069198824556349065995088212214518061447463634608480331110337427738594477399847987439228739691414928667680760441906730910244976437442996901106549798197351294563586742128952902831261591041421683270561499086341438073983422835119102756390830201984291012826362629329412911856174545460389912220420552904778581689273657820627975933794520085248728905454250681340190553825505740260750138460113601202792814298589731600883338605901585600819377691590198627693453913085722333285114042374853229160614449749468792021726547111266280099833908447678456718282985263811989294096868430094203948990921997683780471758606844240203477374579401071679978032435601450350062561723554729892286637166227570481920982777667256201938567118757183967598439756179513106595638444569802972011763908380106626440108406509760461036493169098715055775430280790795808329770060448350089630688493130862114915996396164260886830662264389747247698695449557881593714333873207198011166745178993943131952642185224347790748589352204904261861718867694863293785346653412242908484761947322277610879808732285487418801178341963844597117204955691102844386678950096449605772828616708894809611912683868371759710877587082505661861584158749809553991755145866723296855049478149836093074748535008005556723763943279218326443474249839721655713797873512342891480776964336169353690356930867630934708913507249268204955526101653664245212776123706219492208532017086683343903467842975163942677548955840563579859931729029136191919231810837429867144830460565944706185413786565695675642788559663946045197007684228242398928252173015278855464535026138890021693973919225466800779894373468378305251279645755802497224427073855072755609552512609742685040261516276322476030936160133392575368835719666963793436007465987720743170814867737384783808893318779974574439753956633642625315975743260663696497216563877588921983665657553514979899324590542720843290919406392638316092409321473749397643429544292376341944887034033965551196892208353388258031630334478762006474338426833307739177158208084932212059827807489287257031191362368267038238583015684924170262110843888873688752527251137919314322401475643633732248429469004928930473596995921137120387391359310321377570946727285898822453568460391416702933590458606438099542622625628442981744986460777062214052909688124462077353038652702864250680334396880021216644787188615173631678903793140116229820923931153222745999630224359761831564762433466052912340479902287824838247097311912322902238778899721212635321993745676884676393261084794315612709594109105292666634407945328062039271273165843594648637667100752651301746465193168308456106292722469332566865011987016486594412482339893622116819398936109908396735803104500791024597617877504762454608471793669092143845298601129141558391802740043197735888627442091655961247556562509945057211700834332515846610492725670972641131762107301876837155778365692762182428938355620748089349990611009320027069658585682371720509223949794370525386626137729458987375041433195490148618797427801653845860254213500055986348947013262965713447425647316523994243979308459675169531884513021404515046459904113491100825396459482772560606928728247306439098038165235431599258654431574369228034688320874279928326470180158424820593062930736886187225525853944169536004701024762790092894843586767506849229134205510476397283141954873482610561355949066394215886316713688974593666115721485790870796760284789918950386660320470404310428098792669948772419526707010738400276029427034224773253507563808724667135384715732050030143883286540271751597945393248539398384304847243612451357255723291340231173410942648665377556827449107230924841893491146286173837598094588964283839559345533320730680591416782012643482648487504184513809635163510475376479604310837365747823988870939350929896267743436803683298727209336572512642305671305243677101226244076822769733044894634907661846804622250447200063247809580681688198342924110365798908889247496889940672794173644445169006265908309730991448357375389407971174282472800831995074513637926984030391213162680495498540527233765126440518065421918240572686701229699519557957390760849128854103750271438549052839320653872474346471862143138459594056840896867275074598618818744980853553579756641107819295823073771104581962690318821239614225612788815422114493959623947033124300736264817816373178839570971835447256177229934425475631147273608984241049256969945154315783957318566529363320180272667673763355136310956056288362318240872584620556545230112317416333264090280433097447653985399456900463584736336754429112657271588558697532018845151532467591090519743112211343267521602021484276459620654805780004834614083506665851147062955079008000962995923107834878428632195297781396244364737676555992859656749369077873840799634256343197280878035330791616109140665639267137024404893265943595900322512013786591525244200710338778906801629786742627782321713311232502293838934616279683806348633583980172468816008713053679070884209924180129841749635146066962340973498741291791335555586763813951728743355891592955963504295867451801874518914834137634829892873619032190271996672166268202233318267106457506260049006729823767283960558371219404718319840874711345680622656168554311857014968762631243056618423437263452586681725555436069649349287668422767375562452566304439080231270228524901457050807888681707367390456748535175556692756562745978210079352477079219456953609956125477068706884539418655041797332210078197643935253968895133896953346699729457391152100355562100765563291381622228844028146734673690869057433797498450574307503861426299100164491602136408576017529735950487102092323531882517488817091313671499707733123866404600572947867132592045827063317944930120098656485125038053979403111443815093807943029099660588180449168180872316861594495153630196405359168699590463613490241084223214243239390615695797296689885431267793158537770027285104306410246559920273975560976652603349571986705260311445646992844946072335877044078326287498901275178684456688695503923880385913831124107592060535197668683904165417571755631060046497190668467168453940464510280972195826503608623432394052959631406570889040260485272328690327863797600726419533850303493912870752566464877500419305051638245361536625769183847420223808964184867356331945861832961920715969655761611265502973823961309943357368582336489490857739514302435761606907919464799727361497542350455775909459085838477544893744195264588795037449771944318877734417770238121219656036805167831387429679804820889493257978428377719928468535717358692549438397191389494344537133534361162704213165277651268168571946404289847513219616367984573834489109466698903245155575789985144458219798112268394293865820174780764587047082098903787208972463602663519592318305356330492251131609851692216196176927360693245914997224740668459436735941123047663459513934627181285351473343898119117632766248159983931068715741840917734371152374104323202314091100843177219298247863462198446240424811335292472808090844766382342000683553686698525790894469198941729155509414989030793811536718635478456171186850913031153934862489984475776144630343253953796645492069325238736623068260499163054774458739095586779795748574710414743425607288970832194708760229077959340050711827551497363979662645766687799224380715131337633698665274027764854502293474424102873805016273485377849502351945590951399380053198301701534503267864359854238074629755728476356662652891411379147225190876046885349861541257998826384312089421518903537138402145960209509537678864472505512162069189025258056473228978163670580077495557642776265603769002044878911429332061629512314379059790850547537924327709947742403638259173123484676549120014949260220145795993186381060833525258594429004291836196532531374792183498522845898255011982154946316830732779502449939494662948826306382557046182712659273377732153413442927595012273684346013872176412870567343827746869536658853188184831356283240771149815129300532794375634933431316264854009640780935846502029819431875274700399284817244881361091081184596428118602621282454752764486738428349376620123066173841213881345623714961256690843965941065035579521436519557309959102414824749201208656266248751153142850603114961823476522588698686343944355036349306364321027138044249054790190908821323312129378881043750125535926338008743683163453033813060806898568967864952927860482837877098811453149893316312171110014417474545596081061809571833191144192804017075170036876110816742263346261092443370625694866468091304947741433097647162577562116193531966346676163965713575804320636347755339533780698477259589898409389464442931260591214083667352219794952407493617386962814504975362875303867096999965797705505951511476765105805622764764696427417325048961606023271797254778357239988937290080146796350141215639215392997689015095160317930938264096073822676654511768508326164095064600251372454767145750695685442292434849553650977724851771079192805273150012760835264842652597991278691093531296542809458546783843723981677728238100737238892736451752456226813990062078655521432301966053633799826991195341528044271945342008228723515980369424186440417965774924547710061401243270906501747676126680412629206321967039359130604243274270701914438586012948755100833144146033945934117885932670742037684857511234728004668010705648317418956879382918037629536586581173366963864093028942122791176481929048873182793715017754067700422684836669845788827063898863033473865326409473161185869761503175075559583870900558224680654978705315878525338855573284998030884422283666732237688473136882114988655364163375205942266523151448748228854918272053373561178829399702854053729989157209728039228536810843418050470672943876860372166522020206423912343773487602533194507495707606148555283393138169203654872126478794975082555151062414607939094530638377437163637227624771258563607163944375004430974556725537974077705745455070352514560472908671722439603130151641859219636263198153708344415470954468121757215353024641844876584984330271935239199281207493049260449786377587668397805705221067219739773391085882743183212064540562344502745977240155053484282533011824148007113393904899973368272030749526001410195140214906988204339074827784621531750293498710618705864975781172053410340377160229301516510143989432543792234940861505826889230536651660397014054684006124993809901583361525636906677763414503201576548669999120889501155344051510265067940688487406205153021814046926850827123049958573549503199053580298855056241279962040739846256710327982956770454107897612000803060139614982708996345846764518323554565472098138472302974520290023756520288213984501176925334966409075436245498663648898442276282537899617361053950460451299436662291846686594743960927925341083818388532718476400450302282160369772790635341235268825449542632885387795370637150245609916436634237849625274260822085950454718589503360953484460163666947094358358572422653220444043178860855449652217914134062272221990844725552084397495212472275581952876514667910673851789839035413925576969908705323320596611517983868601881783779909323613928003608275896977098784602920089199123320583718654009028259995873380288836725665002043254080532932060874272260664415548983206929932394206539356610092533481937800388212533695976063731020115322144831867495122197709626774277416377830388520498986623222472274650481676706511940243431424548096825733378376175432686241389860426596314630530027942991106090291127735627313329546684532686089124165976192772744781621948704859606190040782776373428713086726716386464538956399139402038127304185350210173111968202856223879493277317601973801270487088313386206740213255109159477397387959183991536542121376726297348139058925121506558964469478137060222774912539603557554571192278680386788270862825781213637235854184346899771795186900273634860114945243673074291135840311865070445457070945983664089994857402637265815198986857522940405692459701115224678824355311004729052616004999147795957682666565705022235810076351651524925995642405823378882501563638998345110292978056304816065166533577101061244991638237292653783846866873689497461453390497415379212392140864194694217720150415212614014925963302485641271462148282679001819796154792003285880532218252471908007312587770558684954403835450059444400394281473084547949720213696109149571070887430138114398455503473093884462349037716746260204323675156898201855875640392317943270552134524658729167333190710048749286685060116273985377753448586706185837904467862954074400576359414388274326542998853233337462189598238090210755189566277092472910918815746843729583364158144772299073251158571885039628841665516290128244862048113545159489587669815190885555910078877882425738036623721635659477794319047256208039110435126548225918641837046807288708081009256598370008067191977872203103489022793984469643747788582410092856681084988788268519387495483495491026106999833934562815594296000341977648692845370452463377637325236585790154496989685872675438015434243358502580025566259043098637512070103859448535493614298475864744313637508777601336249637643480740314612768463961600307708864847506962748605878451887229054085018312504195449731044389800675226933057249009931707760021289091220392327203049994886367600674126497633831327853146148501874256136911964620482151843126065981915013009623167527249197319399208185372324339495872725826608117149891451164577040679804293020616019248788249886966101635296311209606785471416952454139546104810290227104654874153992066462486670984206625557960357108572244493539335193947864873384917351841126390955021171355569161847199953034077046343498358007058848684086100905584439522112682463115059782965702662021988555591351799610217392509488372096435752250684024280903403354106125264495881009707927062827433621432037975904165654501691783101343434367289865496988374598708200447208410003824484503944435777310297541283584043980447894331364948089054317433422912015312537731235364513387999153774549392443730385705194997831877671175650165960980201467624594042081135853745095757577497780759523508531935910422115224835979197671016865434928694616587327137450603889816824893096452785514002508324234374895943518003317157320496459834772958228487398226407630071805905574096276452737304236529610269791095134497316333427428547967727879173699051780269452413968838184821086483685457929624167443241200599196323165820509207245147313679602895719150953527867833145139054354123445283544681107027420350706738861872985418296188870363714444071476605441929250854909655855222119198456605491988591619942522778200394226045777575574487984855151371168109350187865833035717230633334412703583138216817467200360988883032619506881813928693220939339949830595756492150283534101928398518809120848882205313732915306846735088205073447328661513038309393114928746887552014028215398131216099393971669356477951001683064512414867769768499964297766672482657512062146305711883246387168008320517106564366988438543848419525941480457108428072472531257769080856722227871899030693878006268307719204448607278462079199198986386959379158772025384995113998091037528223237873694110480010706849461855847120075046319257199270656582874568535087045821186964368227431753817650792946854491259754792165238956440772531961681216913939179963809041095726548835571704390054172818559621634575942544974493036706562313066843243196938978412254685111206006360257176119574617949057937445245448363815105628183382390533878640037821020448411726850792490131967892876894004973681660228350290529488517975138121700679518562251837442894553737102413991514602345427860654386550948955470000384553103700064750034106843451757957322436635668961934030512953018647125342206657821887581445186584787398174620245158253225105498655602083749343370167273404897032948276844549652905728471644548749295475463745415090555189673570361440937955061698404626753446938532552391169704018923212564343399055635066819107106058456037212957242057802478951147116560449984916084956295337133868030812319590862008277596473639606113508956504981435506538373023886003535156320767941247005818926791693467345531921352832318155713400525064187317905893708936660693226833914942037415459381873075520402614964083696580074293608308390163712543104806876977259401446226082164508075494064794745923361793857043200745812388263489086286407306167989944614728315029639431215690110767698541170259365920857606246917900163480478368288338192248911072605165105460185861763300171562273169487793230353230800657344971916960209267937723590070739768801014647939648044117337005857793931641165678950456094737050223064921798487294492132583006232650394653138847740544102123872055818692713349319656766420625090155011244674629446005169242380455679839481837049455608119325516289281666461506852151220446868548818777773758013425146695149717745900290178575606740662242027886724649443355445487291019962759990506581349345290033433804923337482606966356949769752022997678501363029576260934739123166005575338637654234288706813329433958150882735595106490032224074471723841615960131970997022738135324571046334533423755953087033884791924505905170920429785752358123762136038333075467863414561833405702883818961232641741542153004440458787692150281449014580888900348593648236625801226551468394779583861942648532455839475272331579529556451434011855095341825565079898439232143208847595159706073971385177188159879239330098167680709307414085256881679824662992616073675799484136025540948115310288876693373842968158042345812334322150797081773202451770404098838984943564156851957958890216474614342432341791056016438201825303193302266045311076339660314954817362265700279342227826464187729397028913599609430551314769518227407202175839315248291271625279731855540395364823510711987283183327031867921404714291480265089988507408879422342518053292871367003272208987332965742330394175617248284150473703523090127507327259044242084027551215087895494855384283359819252389504432424259099903442423866463334322951232819646840761154686543620413626215007383347535739460024985842622633072457776420315875347528421471364122602602558605811974482980797378006906782625040670368219242830110778643402170422977296246454198779450637798856018727160010276307099533273144242610249107913085888731812440812547478939616897298517498871041075007259077622261612123755654854441856464689621085300200977080197906429222653242242812440887284616075175450008979562515004223634712495379201627946467482198126732460736559094390985224340441978729912950090970103671445949913627539486366211143850619877382517725718829933334997761739204438297078516309369528345336076061624196081055741592262011828578329941787764884132528000352165266512973413482044921969553702178515659142338011932899825099298778398639701138911402857168536503555300526062910525857591638028561350334927245504928884909600300504699020076514890827156649575154573611523133845280256202695282562223571184299414555743983534176036871226551119934250501621893484092541573561855716530364661687367975938294634715718804800432541940691740936373322746245874703067913610798878238965292242224192053860947269017547062048501105209344805868651231694619223528817289765431586168276642681776789565687461553421150054015245229335078295914665468858470697825744626486210447069639221882399700583524086941914982732564124421996362159298664184502149790101760422199461903166529401755126701970924758226893763176591639840852475527069142452803415003831374805733313261185661398825714678905455134511515102825188566102745648670066646657463914548058414446008013774213448778973983424052811665193598865064514302646265652342298163726444670914758428486001851576458299643221696137424292220070067333613969854319903676219227345749453260294884275871360118297956328239896875937432447007681088665208085114538361551880073135317124296420887969050035159315851464381513953426434861930076106035477940973295362736667301174293568998451227102987006039783317056214114057511378122334057008432544111971900121228267960471947935334835535770618299165152421529869288420475773526747103425800238407225172188452885033859406903409245652674385956471705533368699518625306812014633817304130151245596058740411340598926534094148464190582391160220986780738505731120067932529508907185095747731604575283739344809655671232556817706698484948060011381435581038905656315749433533628746527344114532016130968151031915273780133210116569426243021874745320020970299281351577662153477034931463620537519492590911302976161017506563911345759240311705007980299900996524163398410963457918126325403403032021512783014180510073269966326033109646984583183863503127495631392993612518122793345413807468302113151787665550481705531846449909045064979500002852364792924979303914495467100597401232618022192959217984638723182215478708250640248391866152007742169478526172371593479035944271221204628812435324297734035218840940523896821705590355902618759166264106346948023383373344706468730701315498919938342321791507418362226625353114556559085570126632882021510115988858925986662489114690138745461089810883827996683407028448099009271718803284307135025916461753997066636949285638576671326707325292726197511588541281970157875827084939663435596422562243628382322381176871431407136778866874179997065839513169464408249828542136650240495708364785509629754105758546088383538116390020342503527580401260344167306526562903564538118433425174887144420784355202860104918855724305364690156825690980586203336066450952157301234737090870459734555778247502213452193276126415528538593087373851957753364542191254922773325385369825159261093404954717163091663713765410213880324557847046616917249614516316871561108685419469368315043939357862601211591969877439179517186980078762780533281713229231768229933166538579608840527115482038905535265634400387242256702155657337376907269222674983013141197444880984244872622130030319140374065971726200683605767449924219432273624108008875554477481280790434200680065553296061675853242518808542745485042338065784435452342774843337827282506590025519254727203668221499427135922034622637620679197819655988983166138740455295772200716401737796019438730050151043678573888909278908383325059976836502649098555405679721399829383099541339435613209665374971630873594409531314336926030506437689614871949457765418530456146914214409313488613018891112536485755192732140441785820868943120427748105385254720397843465192560129282073112917769291962351276200691646828891192944143085263830640052673533106477484586780724513988058010870893432293802919064507101630204373350269129852827064225424759986303431950291510548319227921786212888894995725761402938667655930313982961076988573118673401032150478412106528105398831046791928621465124279918253160984616874415079960857000596101266667589996134153796282184879144477296698394760034295206529183447317580252023219190564657324673837623413211970220014837386147713891444656766232684635880900660908460578937376731842871418774093200585280679690264037610399111114019118295872975705682682913370211577236916234518081902101540426786274212678054387542787930715982624953007449037974413186761408419976621766046005975720379897297573217249221033417422725551370891571464932025344467793997226062714720411150814736415931123497091769903298927619220730583556074193107820657865762960448176190709409419371375541770877216266720103146825075068473261831353500923168394148294878909848672872604286433951282687576589521348329193190885323673448046931575143435773029675636970293998641005431056686295602974825243869472107604254023695953463704807183687221224026615994869824082896328526244610474717262789955928432476332109301084697782860807132656064280757809739557939824166151689497903151485321902802989687975300395314058871399505202411365251576852965422659908350367665380002379079649287590972421143914176587563502458158599789688345927462991592670312948228988806237941603164824080608669762277606685474711758340089877835509282829472000655529272069707046943582018212553926549198603729853110295714837800336138997580612252604417322981900112569086585810794347531851773246112137152317996130276945389654319209264953983601218554991488169449233854191830299262547789903296203013890433882071632153204756377865311353441987678474173537294136455235348276339388785428840082346442491799252407223437344162034175013224765824815013355573281639720080133410223842165958590423794276310263850653349836960322030666885894191567105918764473002085424385329186165914445463201452126320683658090320939853749432633197963746496345846875270356768023843287574226280623808538834609579521174919434352327534913962722162671071676025769831411775418259903340693964043707163150740953844812391596329723418705890252165886276483706209659721119855558714104729712211786342612462658362834492344169130664396347631192361026342566602849495715608445293631162672576760852737724288025163724133514919794102823951452802591463306293188757781589470861409462643692430920347507448713978750003999600382741642859080713641293805285846556711847050877065035391894050053053901295853032354638882025683025379291212776562280412806035065517984762229569296825042999117539105366092325917132493587857901739241446712796944900145613427276471508579132070786792506261603601560047235092660764500495096836057361286220607256537990098192119016892271744178187559189328442865761932505384575676530065582627828949297898640804083547103330891109666626654317440720714862579576820086319259251352427040761739042964624031771357783311437016038315199196779886105621713349077282945878576025236456556642410463746020548755889381897902924682338175383713431028235013132674086086092481806276211546298011279234898666380789259862360884205710237586636166518151579759638155666191276337157527237809212081173791400660797892462916173576025069168751897321000770740919614211591382596315345882143630738892976471098496571704816610481536755786237272224497188787642166191340907084548282480894674946706844044365755517327520258325559392182798867337899257232129308315825890636389778971269074706594635842897998900971836077408388528869410342161614771936046317859928113159807832007155376522335671192417663846829302074605963718999632452302397900676473291926727089347446252775703477300691328492775407524968779235400621473104717407444344767456063530197414495000599894790588881093395456938635372363820737096698103672688292228468584985002983052055948521527676656680321938629261834180756672284801255103273241105254731151823533236322580669771562312949898549270476490080408851589410401131512619726610277880655447817381329026131714142748176777308824301838691385705088549209191257895620985151559645702232864062420310176695626360504196740330360310452489483526039715338430773532814019956834041117517749792858946856275243909854294620198891984657025370536770396919539729789328531893753378676916070083592764797933529665049520051018883723488641059996146384837828684740647053274021810416923571611734568392459489325894310403163274025167043809602847760285154056928713807345089293588327956680583691435693301605670058275699791674466566880390827495177676909748531968596810015240968940235907891851515989691017419211822249107868874035125478007652790554749875084876277735699288394575650408790226910125972914161982781283298655843342241932383159486788757191187783537284248701602271490472722182377582504264822213553374838200295561509796638176116080281668446655164009599756444894446244882668617027831740086474157451170183286789410950563418020606560344559219587859579429811435453363389018441544869246512085808107882035226791000828391035158943289210293748104966694457121778515892677895017714723862846752289133253510144656120327866095925172115944391343997553819808876201229164497264681282879499326905945406723636144985796188722793912802720962095870707121868909275123480054546098921544029656755105060974921675248461342373067168410371551607074000529068424996679905555676250387815553792875107162702051446389712595360171834390836677090325573517026379897219970801103909958759947615148788869147357211689281360033339537087376848145987376502324522203255142156952794278746893047219028917898372847901678512580661788115347905483880835209576193090413363497194928303262207706449293309489606098474195866071806219194139886099325264713322889807101275667271149732682829648747229575666939544480860539299161666083962012340840719087771824049038109252811891609120907288310313598690446407326095107114367588514401110167742128885809874607274469993382262847408636527461174737079714938145066675378438414545936446627978775932539473621294141470095751026327893813449085804662312830654722658270890791011142163118236727545096195974422575983956351971413449284594652156703909918998441915634258846694767935252373925157554797246843871006790466051946376439643444426082441002056641888398787359417047945431048274259732901792042689091889449181654155749513292192477698175349561682020092477645119868194105668029622623665454758519584042355058606548760440259990709200885522026149464158337100444844158349400977432724893743173013588580961323634107507793272785623642077167496580852918837231492690973944289126770738821159811608968059944620727413642489722851600690333444767830716496981254237209700519361830543251376412872356923672557747132487189455010757910887475832905756471435530101484303986778699213917821571927161278678772602216307736497935554689497712957105567773526748747021006754396303454997930569244147860972895707747668831935464119457910159482864932188212933928489334953227672422631951094548813488870292058715145393154958803858200126890439754078321411721069388116006884080310481539873875413465215184702024252821853661090422680602691691662675775892811134897038593006348468134818298123950824776663548185466455825716778425263862769642784873392371494791647860943183722354524727921858629603136813347313858716653960899107940671703703126333098510674437288364957387964947977649373009534835565966795728001825312068209209291787400765193143934274730737672650324150924984427690527174561095069256672269583408604300969282760452507311038549368627334559220949503814052123042533771444037515092935673122309497996151443802771784915080738131144376800427022597626119398153987250294412944335283083525281088996639016001623825652961392439372406506807109375289338502078012310276281857358222858099513587902304096475418463341549912595791459970711829257119814112658733590100547194507591497330647801334862823665286009630197874471777497269422870405269707363871386942245665797014005099611608166371123077929697243496969827384572796745115997428526086327135464364358186547737484630356755218583705720189628993716655071231843871288741844289554459263648598958929382664693373032342914307261795414001321519865201566192490171387775502778943150872408741256166664708613024854330334765635592584148039725721057188109921325676273375066669300574744648122685217988931758268600197059904735080065601454157610019433831340101905799448434462376896646003978342999717275238794654006097796429787624056566505179922805846649731207300045189331096751117826548077318522920124603888305885080969533435550539901480290513571550079439851580058306439714405802212340536959516838170175587746481173956994914965437337866516761213243007952295374744646677667825190503711240935790316091057124345498204400715292831173295020696906086308724431262634541872163200059867318898051126795141857430182893104046325023074691883240412831763041667462684567687372840818218840427375817036097912101452953439382185028732065749122520755576719780750265332707846331189413987014228858622577125820016297814372033676731086515628398971266358620275413554545793875728809691596321041928415514237106739526087780594945303453099817032107681668107569820250614418550452937988645634397949053798610194522417102148480834121788312881400195731860574727724213746043439580702295490614608052891331377324998829572419518424917675951339986593689982421914436678451018048457699735841345412090710396256418944566017447815271325524474648994307563078371028332040727199746857189847267615553413480684669447335051930965798780896257832670216608611567349816981722296882432963651549056520071181222024879413359597547600674228400346163870205413013237111276790939323444752702965805370652324069614542624075920483140498880785520918101443513932791508912881375280829688411108752848502327253539352303466495592244287803827378520859735140051155390254469484957008807754738385524301723932550191347959483415892278837734463623173443961140921815321684393075894382504305274020741459411997712557207351454744242148407341830086512011306295922338155248440848780670174951338465256468396834434124546211269811761713383047010856057146882392088000942236791895668064758918490048797147529431398144025805039242250845937968437202455271339177901977715176259969264736668698879080290662524619925953361843912339590220462964170680319190958123503338969706993400461498562787040055074393779777480640817220203967647538091132248754160582515477235069392674655026947261565950056931238481207726992620799560500098034620072518662546209063001942237360086884269415410585536298009568890083340776810374148727365253608685616483176169078850774247088440519616792631504944879216757738592351824748638506994727161621119253246277757069245134799720089936704415323241821862235406974682808695824356250400282694683247245452095727126745251805041932613386723205912318286227834542079438368375447477792217022557974493193510557231268725696093625528035772894284078376330186190036122710051752513908676067978652180131719776134696690927919494039889093380317578130806226788769469766747597874914144469006549594840721656823824744394939298532510330125731510865601762072363712680870061659312838827234489443249574890283704032817335080312604096593606154017127153492671363094382027390148682434598931333235547788930460744334314812114171790723478845772467965549628884924325082971402508576587963181990470185637487050647863541293935352334209358609234112202587299611477048632041050952586506315896211599372574108105932837188483348936564432790231425108462435617881229516408878721502769015257473925022059292630746102603151786800479676204201487576259643023823450070895309596577500421340614300564311431699060552742757603763967578492708889632924455721525881701116781075749160594447639403724803343497935949981269990096076530438117800604690625159377611247770358913988177650695993170558403866735117585133244543629114966516268361770789373753818482809604124063572353097806033099147268580439884236618491555435897175032154206179179917563215837778843807545165290705136886469798829031779540075926977509866794915183572733990141235425668857320948832804947486599710377759612920753886395038542193038162999085911513819036038082370647043041041378598150656201036486141516489154045445770976070022258856328637907514780384975549523613463002426282137223851392982760827039391930056851440765625316953855447984097776771517848983439947840820101353084939342790094226439559063499865306794261153391903645530820483374141401789676460432306485521368276483085067342703529205897432562804974320370640277968051140421821313853715243979994350177302406730905852774268705391199788882174224369299299062813768115006874786341591529048219642143345157962277154066801257412143326640608116260639961703495484462841666055252827284242458823636131736049519539187222897580198120669552940072657679018611133699036274275750634295756345734010394228010656325870101512346064279158331126789830197217882385089994770347076864511400505423904860221175025192485090366010091202967384338530730304341966751373522169800649641792795398903109993448730692625166699660595358032052687198071335053555601569459579634180444993674080843907838859108533820991642926647647695178160464987328840973159468541985761744833907155768308573177531057594174991747575270996561029091443209558560220133531731927150613491472226027987579263497068993266389500641232056426692393165973325409334959370238901908410874786513223121703088401286528619564839706409498851496751496793660978330221371372579938739990304139139133311405875235521784315397684286583438103847392577646953085038892512131847481059499056300092612281178447207870585333355466772762560917759759680445772491787372865935951430418528590146613159830824952789002249809892838482646432603705749032126560306866571587921542791207186771893715496207491621963838183360161726105534943333202145459471094102366705812498163565142315797225050183528873179676345606962156224489170637607505212668222304024402273400643270604848430305223751692518155540546237062268409588083857547990238890560990244975670382682879334448674900918341304625833915526138802154972078971838243108570034171573380452470814718921101111469319837328607742376212416372644961361904033621724987372104876985020077896707340413387276130208046513949887012071565331683315780578671502212858518463755852851183729497155445492911193643771308108312611924361070686986222785336298341922485834492234182732561558962258247943513191713874629992743316494134723680581881002960249272754871760256051433525715800855443810026067421919252662530036972629934516800131568056372209600500227413628093638646588017624481521736825241483673152180980883521949099350390907864053567449150412869278198691067795208993507112846555845729934562183463956260853383982674256652756993110089884818902760986807292722042405920155901545904442576058603572104437608185623553394549719910484353078774964650351107326575183426070754987407338250691399911918399171383900122099687255223334751226574965545455091589333346840729619670330201355899938923975783735266721468779642943738540223628634693176546361602691023078521022169164713046289425137831854189332598826339162745760478875062112807565370887572233655664089488680441400491712075588343158213044017668861275295312524735191618932221191719654391508058518849825617255546420537514705006874023690746587902308558932480453830545013207467282709297114947953134360109182972370385167401850300211565219622188502845544466064880810258099089663877694552758114691711338346257689430998253031048197275423953221165196697026330544789459704169169998333541164521503769265155334425611405016752777726680289110551558921431498066671623119465247970141265152181030571306487321986643542207037941117220978250565786486410035463918518052539255214849747933798327911162242663773696490729348501708639024120120689797664082098183630356326955621121173649841829782853074223509227197815014934087130614101131290325101139300846617188785882864094032909363859289831947843248698888653246979270781307069291507892691013432350670222840807825166593664523708814421390039780524469319114955757869485385076712985356275487733614559030913990083087928513012039427262668569291173960646122547653139441399253618094734709335224398086999700240923240695229059329566930005660158701618728914577744087362193559507930931386374548896241807852839309373700816286307657661924636051839223303805497655929411705780552254583794149644229391005067007234001507707357380492406113229113116918094440382878541545954196452380721396282991843577678751006998222499493452575385203132405178636305972828092002600181085138642434351209344477232821037424491690439830275564281934703744580583066257686830294485060667412185910314371001790603766546149473903618092065024416008050801345221647368342158579571241775448037960804610422054423833341158812039144196300175266898505450656743339558387651187393013216372021191755548566526010503438683164018762853227139936538472441071432172631119149639660910963511364284261953561220213947627158257839709903456857692236424207855099148588540227872634157982718749250651669248456994529203327088046053740114534397696309360046569598592178731537431610400318377993646679508426924037946090349069956169108435371788272696792449968580353347952938090920438392171820228212346191593515415513283543485373711721022324545734194327816442354959691651790431767449656015984129441123440111596474766610101840339876505891534918038671621665205046719915588935306006112279021608751091026472154683905178443653226133710441090657132110072473902209465658949238094773964556714960922181639182845184055231493085195046259302939483091493859775854633738546931001208856744638486768588505970833709336759527330554692212811433410659260370316585869871378365011285695495932550659207697183485825987211927307012543015646624820726408500036832261952586946451045824184493335104587460868268622360992325637908929913678525043035660548213358747215851229399464025494451691129339841551304657558202260586441617410478523531187052408513278160233170622751871877851655365833343239963827742827239534506527674941175108081665837237353071346644754373168418587904891878921763144983776966486097802546097965496408773202528268870799145415977293167034993223323346841972268465336904362145165831792407789742722531461715944608490183462855854354735783378523313389449568674721858930444507793338158712173878649483780246152426667259414487741667163678598457931693870736923978687047465762514863310484492248352918160394629346995660306762690517804091663907978127001008334551315296173546917425110907981584736861300408326204092554743593245111955960642490562804358824400217615373138055114379310755502125715335734433440153675912556605299904176319670992773531323502035878210736643882730644343201974414165779745863959336771950526493714003223393928413804125218783898515012823026163377260780841757050322621655130346604702251094507683289465969428264259942119225022783038399523328786654894093419360839222169472292978188077423976910067714018888950787665710219188239783017587100092069119759939738389980863295530772594897406036449409310716016837942130374146161332011932335628852990691051868587297115945911740419514520619440667696329342882209925522265048099129966244628320093944001880085236973328114945380658879345942934813422516138468737306884254208313016009626191603141446241416482745025041297789996467775230691411217844419037122585327144715782410434770733779145086802881900266658133226331632105007872869750682823187211398948001510701284516259841282292275625836647405401184021891971806258844120389503478856915741932685050796539189237174203508329318223330132532915426477952620737306844238381095898889060596391471682156557219379684111618027514399999109713532581494429353188001740206916891139006312695942706157203361339163265747837586308046863657453747042187356270631063670605848825432782312476278223202187842906611086568068913381139746397448375524893901102723687528973683311414120120365016327896428084646437738026234324335445096070796923609775547769409033249568141385873254704151868230306857355809272697190806512168139777387993754978360884265643551644767571074873857990483508463685328975331969653573476645118904868389148475860424567732184242854279669901615039604699590330394384357474753713632022113335005068832555327424239018108562247286171317804832949475485816909954014003032341394718252784418107700339533762211138417911816643965772635724748839805533148272204035057365684837876046365158013472822220804073234899521876982594989321845048173393649949128212094275609882004607440698791091874296758612220046906652732962313617637616635390138367740825409184472970268397038708640788509815153324037104149799925510987767780553485339910029971617944672820086624483226613265213191272855277212376420829821434176136402015669274661312238508676409093685501297747342955889050182152220555536641617432067851544502192146547051847012048174779306116345836116241003047179223039219231644049710819178468858206391684917856065052225597453192633686725528235386470797835763402089616290291333353060128545585875427210666148045817441919255821515199653671897906836103450893197329133633975631121904722646330299317859460335890309260334537755811932508281459499061362412717124539242424923032181150287990671161252119564294084296857952678813609325558257270679536214245588165524927436715474363620313801575459734316085619464228657924011131328790913770832879448675114244720476455846141260351407694007502769393697917891910453476158725794328489533563936585959142599837817609714327321544907210682746458806807979689079574676680140777428442587549189082612372416897534503901946299919819084269942487042749803461088489879762265100623487483449662608759767197119442409090156885518425676860930566263363885908036614655464545664198516108727890690400135737793802313588346062120534412188981722818238169775989191679112987265546385797236766408119511007685434505938196617684373538853500156404935517964310693017373967485317794345040353391204140367720819565591123789703324426518650644387370185396923128537265161852187687034596169797446036023421682178818528612181055222086187752845775213355829376859169595317998170729192765525798554533001780535308233127756241534034263930665779343553976717079208976172105557693054392679748967465810468522742182911889334021713950805787272809105578882848358778560377349380143750369272460658604337201980854721076211428426169228529971607860858273149327639069399271198638076790964553777479365036480017648794086288858470617252563358902165887375813495287174922527388359278703090192528803628501149774765155008162017608500077823026518554231012999056899769517913286871435120682658158827034319671656781614490104188208749868554996536390045103416217228517388676502544230475152369984449906605848779521901008587424394478766431766383657470134293057121298822267209581878347420206277502664321091270789341006625832031258176640873685620034618596159654155443263549975207290903523306238511705315643236739482470897651181839805514750974615083377306040895045062782791150165995206826368931681614071542800705401770259976436907961464899995836620415004551231783293057973088198147044842691318679630147721361736303157384502095693349413398131711558220750905421919630234838435885099555660291783689528865202430036360945084859973302429548297931418874248631997308344953118558123423984729954474167045424248188523614891665000792867327388758846789224735673676901418645784986091995668638320812636330522242701670754806378704009272556258149913449460110050965443834501916261956984086995000522814094499279137777550601296484701851396943650465978302836488397352178564949450138666465634454540380102011053353353062703401210890392541043419799396246400626380503405229360557605284974840484163360203739865546422908056880003339260302748503584339592101968176214307218208507173935108948369530100185918055332486896422279590000406851416234234989663207547291115585294936195212973012736890511801343653642526129044139493967151153433080621849632579573664048324096183820731656444338505144401450880654162519721543763479360457406684375814868908239628554483422824801571770310478198764782766931093990215774462316476781740019833570135697997137119743022539430063939173106211094750158025892250330244282997713748827490583396669082182143757662663637946274768490179617889355743491737720152314656276523126011207833150916455249030464399401194638873510138661954756594483938820529298684752287183142306235683275858978662063701646111544072532765644035131307957607427271971417167089285147890972298597659174753484855458612638275062708710304160799081352265621806969955805641501054244204005891505832403067591338509134354275069019917275691514069856686155423285175941045164038015646030027242355784085552456976036790779510686652494101601178735761381053472813337947119805791285549863981931041845898039540764342081838936510339230759640562120467270060220044846935282843214344742526085920282954018020676770888616013742848006113487900293622761385062650127730589475487096178855006322853062684400211689059883266185870329276622327927242980396424800792958590210282111398827118136954825525864337035163422691175634021878123130413430570348355808864350211935383231930016195637045429730754306834027632065938389724190563800700487608297792897177774362503893289313834149492820860799384916729013967661621550617543354115612961601099460932430485327483435474654964428196562135015860261909961855138533901140159680784128667862394230656068034615077573184284719030375340335878524455690155171331139297857932502729777287764671393086127977473349033175854166107163190382240138440158277244276497513982576405447034074166949937190144778129840593978233604559045585371417898762169797208966578397579723765338212272081890121084623380562458603429602699472897428255297684160416710973673689319605742152118291309636237609194144673844235785819318842064266986804217984349048201833045148654241699689578289252224140669896232743998058777313465971093520528969455769395633817722527449706854592483829631810784627285600812804925189214529624035986758856373414328550922576465138503472709076428676727690330550001501175166099366552418843407438553765745152952408276615921679249926620325524865156227437579391314031702302982409262048935913086519727106074691242113048249964238831233322885437146848312841252289155925087015755924341925404068392976400418822461942292183499499997407807521496986992976169867234048542756304701931156825522431649114604273944245441172255262288961370852930937530087298533623972569264916870063292703366421557215424888590622624805294275733778497787385108123547620243896360176756526303116783908157991360390664806356637563242955047510359292682444166134879947005477357674708544246871119404992030093664641653083338399038620628195550239972680390942663787473992969548917830300166609374728455743252300027377588200162768811263833153826391677087446909356674959098567566518716831559918758222815248595385874750727939420970788617570403527137635466823815315531046275773537544423696578596151524119351174267105677563156999413429674445100854377251352478458376050067599038533235277293285025806555475259005670102712198587710289176568646836407614716225204594239684219221089823878637848194911624529041180018656145508070084680376044408674287871971551068569102590292320098260254157680212818765616303489584799913498380663352671321384224804416701163378905782312682184187150638054233267996059128964430705189516139497431599465676793948847035599200871554950860611835452946891660008788569256884336712668703740818645328977713377323255966542415801088827913474967210035670181274130150224374857705562468351283086623184612629095746262575180096895836268986337576667683948804937302207815385368976762181323901653015722495816651949051607141315650392532129340170000883231184245137783762953367176629903429916088312512523060116287980744672382954202354307359997632677441812616638836636386855307183639880740803016925327485600336387684361783834629480715580455759212488122680906267558854012149752135961359921258588798343581756674229268601518021724841180364201283506720318903793734084647994509032314399621192434087912423682374576428328824434944829382837467072133062187795101307229163690286455566980542716376531938769524728026851325730270052820199545561575493419295048497674245647867877829906864522943033182554948286276308424879490639751275789273705294766163373732911918177796319302997708578599687724243315754774798103963005049312700412523714043111387613498704182145413033600266501315236393207272812730130475882113458257245885053370117205183175825406524886921225757225997853382818094393453323466740126696006616779201837847367881806312852380583890316357744469860393613875645693098307343490525814217137680573162196750989961167640154343378378328557271182464605112181890651595801605797055468353802103367076293478481928410069273199206075158964654471444978016997023272360679144473944025837060989467962690810388556873260492425306341873948479011949123789970095573875161736286016247159333585780482572812964991197897047777888757601669953013831980259776977969389126554959566142186319787373932924238139186499309553486802202973723003002259032453251968471122809356529727353040048796251001202189928058544126258363678147216401616700848360714943504340624922720269361512431366143751024072940096609394151499170930491657899827681212797152643081889110059946389495520956588437099179222257243894398399999070662435236209175924228541626161979565697093010370863485562642388700836255418795620879060598598892002727352473569457874039063341538252771116414149116439884756253229032848668121419730298096680535724643504299516851171836623769950413370548469058582506030671531815474698381554210027690927966984632064093943469559965395741642224004953160846227165091683902346841435085047077610129244941310858538424472689422061351724046977187855486140077828835193693327938381868235321650860107978424498368118614893694025467969269694053730104221195407438627970344083554862529515979572045045241458977796742056224413512144542168420017916722269899699728120337278578685092251497354585929163853352334443548367095099939242054147953548341065219408330991046622683369499320738157004944032226534329061357949936786808894151139704028179494776384852092796304597549218782165035274907091099881790554630828072316146447873729459510110360590787029464342316601645387755800543350674222675531718388522590786970570827600080667499345268049918545207700941954432885818978200260530610593474785088682074116150529135867694749203906178125009325580003852225841906290412957451041810172173779751095053807813891537875634652377238162154437183083938652937861936067353542592674152917018174248285384619445387276388505282708497890182664341072845909191149866801891429679909926463063639908751504430264323891805054288086946711391507911574064704491614305707805665084705070150888897121778373913083062947477262780828392954913612118768715202513446979109089828859971608041946339206754695211691236754422964213893695206032669234664219494693711649568507244599437062603904235296305703981849511229782838491654063778717691915003999021734301100034651227463956192649877757838867383987356268154568101486096025560871339528930371994538063822956844214643752789118259550404711971716482198321146348539665964776850997005473309445396614113214331053121666454481947445420588163462340139397719440279720197219147054936954526395202525521535330653820815634365928663374301922785309006177562017208193535298765385313846064171443187463294115014037088799467405541926060042472647864791864125838357502261615818868884846820711116192772020633160518302877879761851492953228963687492631524595315107332793319572323719933745167229034120135018930670768158064244227887722290009420062903897615556265206287500874000804724054616218342211976637042777703629256206985645327015266196379003511462239184816632592981467496737906369398211839466107768281886923187759837458681327912729509522217577610189951238806348347320000177915658407719868283785867058222982163109461040726327938554038480994870832650416560437677744136091624564380599295967526215036502504619827911096797639644708485986185357089049622129233536761527014772082318128847073078278111773960677612859946243357462531603604601125063272342093113253368311231169680712320066576166560183178315647704246026497972782798569599361285989830834004890886981869120079031334293038684763567505923192722024667082365706113575283539923046697768543799875203898605437024791829715769812220105143030972130980350240007638805881841731926310304572825775809769235624028743965326267834865795132954896741402734247570526513452692572834973203163690339692754986282200196698259080896861035687708847229926749264868348196777398200665274769545933592276689936769065447613442535715626263923329039555948772381582695993572495184676595837098140431284077508947494502244681446364609670478076986821436504467791098147684472359865340319253379006393460394606498089900962983029741448913398777240003450597767740108576522850504022042996883974736938733992018823211260091571223077463809159567076203705157496501527165842896186423437583717267591195085653434198495744727206899925534055691893285263042291082498375925437348570904120933482728186479217093808022301301084145681821821285030583790844852924291083917705549108600682760137348943609965237624394067697157649561729942665386625470180356106464352930700363401663260663588161060394353218910812796184426045059036459422505290342958380351126322820024804371290282583762826069526768949379385856862943684494315826702316159731206236425208447581373286612477088502545889142001242077154533937707520949217211356456240617348916658347857472069360287169750400791435344391749431670604943217794670329530471724956418082019362623392946393205425779096691563061387895829338952515355656351157252012277605197213651545153048619806499034737447777550780044905334625984026505214891389698980244137452967176872631314924559463053517824259824313184039364166553245610811666227537074691017357502824330021197980730115694452171997158693044447979816719458446325941900571895614344321956501526640143164844487246298460544801343681708986007085345607442511769546732359464365534809166399296734137075620409611305510943896884461903318147230234730787823656116399977493663209366334291419134933752477370528242623093129209237530795788693909088732699359773827536579633390414580993231956482310380848842190052306761394401256431859478089748699079051486756983207713612147541279866019816435471235778736362229786010697179148871520701378965780526364915774456127251451196515353007059239142016062321382153735059346739290770700699181491832011921944332225810084421681345280614326421171974076481488471083699563411865633511837613037304387575579223480439122031336220740462632220526432079808172373653072526825447598214445135803073982288893379053314883426818417905801414975831586373544382214315389657788611509291351640668803383791231464300196132175274469042914600504534452131970411234734825393939946840023168821618422506796215218488118720494255573988878093112552102338060211526688169788381559671367626502425128711859761550061798917333738859438989594645707115821531661998233589233669474377802087075768901760343729550482763613055132511502909516322449338505178494746622623253675608627535912653979793302117077352918238465810498164135075137561126216364809214037862054476205920781065157077813652702432297121864592838589108618360564659991539746578175043281241640196660943565912173439633538852042920479037936773056218292724718439673256849499058180088696051865081504581366072657635989071467856557108748891805889725225021804222029356580904151329326982279882235229532677345673492877839005720537561963347259212653900307630676334275104677214278275201631350076689544173924556622716264448009768852108613305792644186503027242294474507467822966447484599490966770428216940787106094987753639575119993325814815136765841312447898976131198278854273636864553598541495031991186679483743994452112125554601745242150614425562102453480964734993744606416718825900126772711784603706055011888018717807856917739424108068203397371950386179153545541686282307744896671653080473708647226363255858443307666644689636760417242554835837340836475679330130104083677377752913596983446266051760381956438479544694375724281452907361568382936196227166642849140649308465904213015002210663312878448097700220429478119011637288224428984278659830885362404507549964033927019121064223308524738575744345610938576739981516604143520747230044725832513607046504296194582285759585805700169873833626553890788245777754675654913181617095048464940904112053564789049643921076457006580278540342961612732797600451178228701402837593910064301863954690295678309866457422790155498806978310024219169359259483817545293339447335168185626423473843485564688997095061487783485428007068644961963331587736151726517751251678704840961317844799816484320477841560883132515555458442412485925112371836214105233999952185391815214752837648001360662417057132512991214290566911614969476903003085178874982846138840617664745464468319838126718651361246115899421676464195355739056977355032232262650948728136357028123633653873419989395492569456945349018992892757548938357721476865333310605936351548911639143566465273450334195353666497966521422825602175405101916119540772156647474084160349730760332162772175942169437962174829303665895056398849992171652300265457335375504523551475740302252981509122683822029482264128340817341897548495884862436280758838508099945118049480053708700605185499455023136833089858720203940024974104610756976846239176704159555279211408895096223912959840389878840839187080764962676524258841372068139927237770338449512198609020375660036921028630027744958491145286357462976384528665568813032679170875335568245480159124132128886918571377361712344910398726512432057435645507243884594673870422430760344540348457168758872165963651673407861775895213852729707656163266024740631323172100587085090309226425911113296665871756488574329237324902349526633156511519209581297339812284035416633018142201316817186087864506765506293885304353091515408425982546673809113757771938337972470328154546599097978119739678629707625913264711891127160607769253757925600043555088090820739341832685191113618380810164065865204606766491058876467110441609185495032045482185917109018141300809523353231882116886142408937470203644954456400422103912398941363887523272256554575023323235924524603450333176153773258865164734480546535551965525503275095644278889415891123818791235397375134401763903297764538827881404114304206518701213987264924601958289747896395387395592474270602744122054548680106009514925171384914342555814439484553034809724658310512237139742324152295757414842810313491781595731926826199201943629465584795197233385683003218320150606179102051443990139561496234906819389797696828990585241464495244066313747627010359483392146075524305236993391652856477299088103086070923422879998020070767461095132782286163707299935542744466729245181314828525051502468605308056238182403993015353797631126039384960936113654815548602691541306024667324993598885341100643706726813001942455272141950894852576173364444982049959707148152744278931036166888746712499895185883256068561849253557186702740682327517990323574351501908518783174231765419252977659046282869301353544231132627359170595520835875154779613613896742962982222547059908916210933592404107613500378756354971471436384406308854062494437968269854812578112246650935830202570215426846095461302157300144599783438090178193785074458634081476617140973880533584091628979012906011072922743350707390076916386043395307063219638700412767508186398117098862906601244536601056898353223689392273253114313896463083041926289839560698707565027112114297931781397724712414153907778345348077753927431038696119064676280171645812556562295007831825298359925447639794134770998834562744159837941701026711412048250113030420347541552185454317484666375258994962401306273524512860030030982919565086734343659587855833995286465626882335138661535633550860496223285969244474540040616087498497425403955704671901426250581330451743032356478445941443459380508183348308906938302490422084765298899294016458220018519519274149719579485712507929363302193817878240854403682769213350516407439293226000510972087836027495661910363143418605011706898632351400887872939054576522760557661249403815998974171958862837639471845463985793559964852012306766292085650941143734144699089069910458653488300095319892502423109912151358608524973866476551992256842458083073025787512050627732199839529580111365291251557780355494147600612410381074211331791394930436088170421706565431000612949712731626861426893420896370658225479780190985005103081906329267808087842644101468132292448143244182131034557525848907737872512099729708237382259919943945207249420144630383603074533936592150528856852526667646684292652944818766784125832088254827527477183103168493512545614062980180604843353899742885402390841931838841645551329275396364145161406791928771620347366627588479279621627650592783743781667780319920812079171053507046160055535639425314631668271315347483140429712275322975621873055919684153328464577535865708707825780413601606982842751265439909050877840008633381227073889737916175771443629916374745432005156676493961993076072712902417782463326356594012863524841414786460438693233965022444398746129036280155332717055999565383029097354803042815695777174659830943640360953737147046473422221300965723225497552623789933233884152231849899181747248720325553175135461498067347321212741734044650936361763696973745170749860893551696911280399253140699455043157116640498438195010224244333602752590977920979707612846238343924736073488027520132655678848150712408086522649952767544815014336448311314446412937320447855176851464979214707447318640769461849842695657932962892606900612406117252425320736421654679598205597240307038353893275667615735101788488639001534502472486593543611555206306234911152452674215990373789163939417198923801938659542933939274000775499625213456647596462178909051686014182192985559289628845910827385134371223791529402962282105675418534391759088923163140350811059587872095803079425014892458816574171951107299180030328769828784597614624670514395288433388062826924201400640905093547366994552922143338925222111037332355887976830350496940111995121088562671948663124597580294109194504525432054001233073566468001388678920170290441255645629808723412988171893693865930939503695310928784966016317352887473758289012843426907495613283467444996467470158948560282771123661916077614067009198582246851126104953729848565687465519363544802478167997837709750279104856276023562864692709560362452904045130055980427237186302511054048889570602680770275011145636352248518953995211656510603338806974132552678512236874827788067513257216056337699823190780893020595881913087904740824550873552467289212673832115791139888141006030728441262034862643876625626986454442133665159597452288625085482707790523256300522930164297892699316370479371534938035250175218415718818001433351755242179320413369217845864786718045417375186893782111253884959960217932424784780123232653403662646376009430251587469077378265230931131312138674417702982901458730736428796785450880174705645458299646950198599506161836872222853097102017529735110324187342995349617292457787472741230228590352347355252932085426209969471931810172526440289067271933749690747431020464102612409452281117619304190218051692190372214785270988862205093594530736309472273493193878736597560452801733250291256500283296515407618208099627871229797653388772934961740496950571931158656002675278094349830510719159066733839226303423922899635583818693301114372462013532661264208257104401222942925724288650997810286111695685950383602044711744499772971116000258859086884588126640504796017990433545141915747579044315422970263331821448735529861788698060424478844917397091092185785098394584599520733309111834250567316175358276041660458990482983469052786809999609160151086371067858494617925441443805420782945598506101888423672546762749154460528825875863033629170112235200457600902958474847991227506184829921189469507271731885708573318996292293306425258143219078732339550303583599761666411419419344000159761078318021646113134755541858168698774745997586664834494936615093534762269233188052375772674580338705759136157933300430032340737039055904753601212048664038391730672550663692805623390301766984611145671091890730104354541353162148179844379441258591893001100111781423665014749734451365845661609360142159979943782783236998580345874961814378746105417349249341877947412500396509632488445248882531314576500242437740326846898039681588037408239525703405283017915136597227404211961723030084939580517724598042397774852075350480164095917973156092584213944246339078060039542235233881689269771985454678996323621771831149084944624305310582759427666939448028234163224233515101661450075488354703747858540262866224619783974742292545307468708419540557956821370758013603610492940915503623822638555952190458555890190735878384031044653074139260486035941267325841797340654935578707389835690428610454345668096335571927895234535952172211590753517089188449576300212688066321291287252552625539815693135959711310691096584431604439422875124003445613249595898559603583165334737788531551936766354858979846708857529130982132316356802224116021130456069040502784330015820267035611013591304099381557901360330481911014985269012380198892920674965803176241537951538345374672408613800330790481397674794362180435800926968735600936313167963498498002493286570047562483099181893208415482885088316838217865597486064849453043733892710297886139746456431427143159786398858387949919658158682524617134856544796053764385785064573581453730054977285997424386769242367179127032074929937177502558260434122886185811024685763646319517872151690879390050567560806652848822683748382089845435997002915379690853001651309507200171762435027595294484899731189266867517748558028036988403969716954322358635933666006466902996301906949985433580183067213688180492421107993049650858199741454897372146382001752515690346769483061605735893577924645499169398266749261264329616154611867398978565702682942475451256052266833241909645804927724209916238366399196841507720569980963796015760401196635266981876599280670318807354317213547227894595124255288784407117956842029903952175866032968072605176312019635518928993751488531328782210711345835088146816853896699448182044387671341867189100646517470824907808644820862910459410303549525095113436741330166322901515401728507699350111842124500381368187363949127481186127573761097410983651421161521568198159679105290376806337112435273422119393352893486913367065433510866085773186611344019297884563925934577593938887130146460837675443485816508211788058693560739988849221100875228494563141498498098084880906255904293312173464570369382595289567250369200041810967772809951879335502581476538398161072335596777782262896545336440793983382938669567660560058532783053828537722036447719593607963899475209757567950641230827920747584025363276267019515947574301919394753662114451831521508731204441272708918203815294973740483286901401706969408085197113618759832813116195538160014632458954799951635737716951240142164045762524059641911502798055245173697402345300261532793689462256798368514174721421505483547128287371591467383639145467065376965380654181179937853831382022963592910350362886993021731714504567706596769373481204994889210392228070142834098247187748276008008826486470139243100660304712842673955086197192316031237954169415270752077630928180600833732314531589629628213312858693816825126606902256177792764811707376483141758503954548704140544966347490353702347123275421725524887173785171714580966492328518241193144886858199000902369623022178900048751361800445579511900947217815909829964900804297060206521106037353062035848334599020203715100680956363568427654866691202692719280224657712176374875698803963738375327258090673170614017231005810714815703183966095341335791350672262576398966369293607996308066230886763022186482610055078473994363164234434493413738591826482667002468458909148504565609873612085617883600354189593629240934364560489780898352159353282589661414822779980428323053143388859154842493612572712203629581167267429709836477469723645574690367711403121844088482735635232485794128849294882535138757867900744777725716516963910684496308848464349151990308544719836879543301495638017076799058887641014602253794834382526988724429891448069668071569823058205073609501288405072089330229142633485608320760318689460913012071677597767996203925473790867468918249950638262572853271322977390790745770515956130998323532028434605019596071880041166311976492542825664475071098620387196325012207142664206245088714177664904252631536130180193283312134965744589552738620527875004569919575098382395952399733461835296434967750560511210220192872672588317585150644582226187866958493001947229020374032097815693624684293588522718159598969680256972666607509772644880628228642809868307542902258872161801023501588561007350374413041242438808703954116624415517029472959893785766623940139299205528908416406918147649976747352966018203686267542098707122713308522806637081534687339229283494153095406814878873283189627593803278266610832873414955211347914284599925865354636473114804716522970171493511245815306135585196126135007599064837489074029518438511505054322317196519722770858094553627498021630112218594553529641925186937916403837258463587182477837710905246907901242502977644571608384573478280816233398204703169837715575792404502936438528850134763777104581088894856379981402230028557632233581540306156475022593503131045359491985653127722163264536951403697913826564103350584403424476909623907588809270639998079214753996504624772540316482834131531552023988426861436362175456741393710242193500733390620347686268705786588783645003238942044741659857347863573708295803517637216309096477927663665376382640293719321473169559983928215165661817118571900419158489136624341840056347643025463710661088268169004000313284896053977823260887128350847405492780281093785472538423960839988261420308833999532736312335878382829137419475248801406451797629379774975997152343986627302312003931199576842630723847779819974220194673009321113662999949620880231502323354669265089472713295880773980056354822284738327532389413756582562302975541698462872326310288684193214525729836348520294209819520062932574255749254899953208907986394450617420731862367233607236641027015680889752371088942889372380167779809673450418285102779747471350283655819124320495715439023010701978914469633827431586655621179561534300845900154765824700662121051158875126713283273561546428290508836190954963214538601235999139216127641881543446147806384744101811601429925970302777688901168778825088771360581748086251375703472530106577809957251392270885230632043550949147107589437546605851863322176272607008751355652119070539000640757923062902391723549753434963577619574519610655525288843530831788105829654567061315719225847526017505949136143279147467063630110195740602015542200105735228514246474208034077076009398613111808438330087292053175664169485318743925283129245182390672505915276163235983155408215232920507351909443201213395070819295909628254184983629962603693293599501660322468084002201282421008986267613154434375588705603322583622112499589812664089394009176404977907138284375444907170242361770146570369634767870563504969043934181436837138478109719134186784380811728656374649376777729708044634285218884656742480671534238802341226528161262489490543879710174612898946606263489100572042194782221737691898902428459033826571180224514614002041834104181849399552205430912250692895033685898212714524302552289195211136771561823426822262408285962521544678953177415793248752481359446017832925163134949089490238442074714513023889587156043980524942104419677808306118427453624527672261131170381858594005565598806595290567717072458886436347603153252075100541059671577705125914894722423678586934160615314764529076406923060075337168391602169136023756771647339121770168932037979540305664215790790456162783964076662277074171920724849880665833344452874921873001303116984706479790336576305646750102862306947712150056788085911571594416523318603163648156787400012675822926057200269752946942482633028736467436738997123223426010203916582091341809113221869317118347525730451545681317022186608308455780571070343111768566765759274978719299620684833165104084836795410541715579917376012492370812640902104697836101561709817134141715400825388200011538327960384165928701422908049792107774304015758904527148234500974291892910513929627648025001424093867860378546423910321992350591633002650731029944156410407729412409159271250719991857669483766164322355480989628251110163083114700983577744892923550391673825879946220574741435467742012281672284473694909840448876643601872142482169017324577206842292611857708333400824467589841716138282008899901426983067519444090749838993031723896755582871553413391245241022194289341716269493421556161442050974238122275038413028494768083590825318351987075045572009886709239855522233054591596046077701498636699552231487864118747020193148027640188591815318355447020984362218145732588438179966867570919247062145562438498100944173100199490245917961166181117762275476685384046340513316248647241340202720871019109485302109229241081599461448007737050985968124484368248322240223578465383258421439912645587207400712545498337238506913262281505135221668642176785798399206961890183850754352277579695162736300425874096100150697082640701522018298660499590902833239375266924875362476061184509063372021866594590384692926073721654886189024166070124601421794962689460494125408145896023601661706675026619012153439332342469831486087212707080135398708760310048170324257324565839690666415941623708656954196429622762457089514908637859030423866916833457496460520399496067627674870761856467681438763885765836825323963833296893500763475755738722463956491643888096342367716800981727235165659034181062773465860526752764896563517474798912556765551661707028814889263677321522215876033849692856840255542496084883231985869667767267773902651199013786675423716180214829708795658068171110884460935047788080866774288449195367658278059468423626123053166472284604927561435553653538081290152002099900063438908686440922259263415910002845735066422761027039989664846316498449357721419783966748056672323779573090266281661133632468678459359297441114163843624709137276501809814943986366787640476265655757591175128328133363983309478642433567704193235673310025423882766421430570635889516547834256478461390275355593104805256717804355741205567422829966496858203721168043537125135475168680152969329408397610681317287605664705476208156327480755199797705465912853592017632641777269114420573236027838903432814844610717672244183939094256783219320417879321854313932421535390421570732448599942975724249072527831984652560039247149517390724963301616770189164143635679626025229613936938887692437315910725483546305033501851754755811743047251387292842885020748917082279022030856638901256522483128886565767585394203402817649504695410200967382158359370733394614563844143658664747381434125169687083574995349032936001239495527719996992355086713193708745513863270172129043955549297697393022452708138767780064502142713830431551971187242861337702984766681210261824143513953221985031136423688541397148705577641085755931758677682799854939737125031281627921016355354169399507048960098647259883353434776776242226653567135014855095216044454832146690122068215852780020354536002143281787452819730512367579201446185912539040926413294886712709992276919295189024437860775189823389811985625882757682089057541354235251434809010533673485296062835455024016099461771344434486791015241937307134349976042860184372621585126985926276885807762762012854771931332845854893374488487399197031908546415888809701645738085633165902589946831110181465967566812375133199195200857983357876439920173728893940201072042224599182889667416257425962382663589909108195969166628039613975989130434192542225596881651644241643097359747955804799979245426934803934142360247756977911592972376117576783876199417324178310640303847236228149063240839870893565622445747905764187982734487399270154518943845562109463157699244715234043584264668459446746873869720707065585318339120095843802995616455375259287328655884116868351823353936572796327830527225544640593277824916581858316400250176606864261794044793544727192919935243351099314233823263401791982533425265251706474347025874959089134749991141866076639000608597648184775480026055686996422964412557525216080184304218728466378936164389301157627823329666671390131622448839268158235975938440716725152056986969924260487859705834229419238983927302259911382218855743450414955034730622929385437130393497437897677087752472192437337407651865186216494013856834932664871912306777076364836597439798723951145007682835202206916137427859042768422927711907387962543569700136604553567880723968936520611532287152545359114099869969870938986378525508530781390092066744978521943281664917219709779488785040435045508139489127676772783429552102095056403498057177179116337246346070716961826162204830312829893850564844928723986931803655935444318723406642298395383737166323408251762360438302940479213059864424312053739269661799249933163670065130158095471723553443772130414948514224814042042811891867380880215304792507289319970975490700860267620713104582209221078519432623557645482589050485032506058409076528845488722373600518116415483259929701832231185566584576310808858528173274706509072330384718113164910823512686258036465361619692860036288618425000344469359247404460941848620571257746258327471904636808458791589017325709006384383688479080918305833552013998687577662381328283706876911975788162273122361998928602176016554833137340276784482065098810499532939112862296585952808191656265366882738921064353899587312416663937761822416562719672000805227973220631870633098613097586523490574618859957293846251173422572344457917441014570881425602299483883668303404444850370401410864692704474174808971081816429307292770706955772160761679404457807255742077785138727127908603827143840095514233772577422395630693638826945511142817430310574446689887963224103862269774729854870614012216835951806586168730323530542837467673123922911893449208666723702718565198291070159606267662367253378735879630363008696828682831336958443968513598727340285336428356565880496241919618391102646225907215592272106717855562789343343984771944227905902486394423270219339721575426333347585558101646998324928062292615115323783904531286402724222054540641173238625519677235055699399472022266551482338423948981726409971085147739751197661590126227653230479711432977256091609723153393123859759137247097292812832110019326632751863406145372519912924059976252806728185853988642894398695281905432355225070802135814736544414757979248624696175605349796761307781212536085098439039701631061941656179931454727618265102395834529184024752671302021717710472135524194712052203459777893758958533978661231231994889115030580805797492011548473237733754547507126048817443987087963156771841721666276888865700546456947010159916521279897797760588126072544502667763902070876862060520473217139824913193057864279268889430233602367688617385550054783851863226942776824306828879954740534342132329620809691832646993161984560216075526415847505014149373239574433066627873557848718862965755356327510462261794548888517758292797774720321715134630219194364890740908127075393409450803215638045398744882228347668314988192038236807217582204735857520440886951353826060232171041304067994152899939613042682985795055642021920266559782203140536859539377733539510385408067842224216687299324212470443163216521417628702063175402008444579081052759245465788206247344707857107607651464215006333991424011254377785986516991205787555751125019809892360858824126711289707939619953573370664891442371904508473911523195337544719534045848763944998675562834447287611215993042777636452400946571122627929899437847187614528316768264346328799804125872433163781863784471440432850445548157058755027826631314560872891942265391288753160738804528394492834586591930566168631143327624011745801334235921351285419362496685368228191339387786458288570523276201088726453913883865870299895192256655320543281176775911250238994402469115153457901475853184517560571925763594499965146637250867456583872775579218477102632628106438506189960208612878689935916534879597414440698792662826577678931902067146144325644404765864939140804490119987182971003987020810035053007376337445783375462578109403515212056702602425488382747713004163897777462877769459533735531184062029219505002941756016415177063678141623002082809454544740564883717413427492399667342061892347954041872819720438257997927802911035281652123256568293649984648828880530476560718743448407775775149411439202699999412573223765100318741149728065793332447526303653031601820463677771709256945647083845686378798413159358044812927118133348475762853232184991649396913213727544991447626089051192469016169054675936385522377553868137712431024100735215105069938310387905131649291674033338937747209799853653364248437828998861804670979990327358092929537971178689167705623888043055944410936120422359613968123460334482994514534028672474859032385838213574458991687413534850860839872416983204249723040013919187421483546374121856671945169882052662062058452263929122649355246453744515547295060152591763800870791667377523421854844788276787530264016203548152153190426352743333004733863370358825802810004721962778121985443713017845725354567644716290079921555854290605424539805420290243642413915521036624950991462976591605599533349793387940962252974154243444202043556021410829169962168758100631198099322200226027996208156721261128030192105715792132381549746513524672367397044338755736708717219973206488666262053588857648583447607155440781276286216064974261714380758589968452421150852123254286499509911941862184920467454043046689239945340930163357745467175655947518434846984891958334750245406526327261244804356360319506552616873375244275477497067500496458931934837095475970955273193889131218803927662597772238663569042846189514679501186190579580270395996593779106789752153263995820729891386910378534544503443382873443033316872972183592515860029176991262338507814517000758072132610945619755665968858334407490745599264186294283673802147745688684124497052140712161251865309040044009096147853486116510465851057461084602326129625916034080445229478950740944261572778104477506915044415244075404760791447730081611874772063498703054763225975261950069549660373725040854836624121841284173817629382723610229790791712735529928782159023922274685211658838157233187303847431923233035694024947724108840529705733348703540901801076495862874061994951118974869620037331480331669777518991732505243752499907241110753738800659641486201783729305299693565303907344921694854078040322900459985804654599271319643866388593984199037520800790543937504916496932642815139812632331838942739224087740079475339050441814155780074736471514925568501590108327966728619308738513232356053802713333173183903670348648659147385604949327699255698640207686137711098548540494084687078228189354649369951725330893581046887866001028407429135400434099482798743735932459244710687977783037602147099387461272948801693203845848709543965029325790740409902384809329385389835132110998235817109696520365947761161053938708109248935958911528679682062767797733878438607460378975146806117508011326507823315135673622559141810653663110206336624915642869663333285106394178007422969081176190823461814002645151340525572861496255943558327941102342411999250478529292692354205673679716634271283085466511580891550810208128365260667988346258442465621448811832649488638650761062134667325471585417022368033899215497429819925297925605531292614949233658903563573954582795307801482109535268782888917173743007603531828177991031300764516459300893787710199997553229996903538191338147561671788555450467626541791517826915572921336716224212583927352582512346037869360619515494311412555826567462074141134633185075226141393175338606595481103399208229542307468305398148346035421968812455668170720522750833985229298793567811599904219805177196361671028470029915006146502927845346015682920122105735680274402000628856085710175952362366473879916817061710905363503568652059005675196000800597269680123813290085481856847515488947581872822129060116669807652377074881303010006997081031320048608985123773327623596670790715234566811251992945400499919013087346547613576583692506748352121402414435154367402579566952164603456033466656223835005879069606371499356213750481379415321951912192598558637388231844003772448178281727119979476774873733795931053671747741609145044937140617657663197319703775288607595728856482161841354193702102363133373920871586334240398772286634765878451977036634903144853377025812903604059331519533279568173605101261851926811878491713129122256248735306633637264760239238802609832981523707097789593874187757985138489146633272708385047212558661083816226689063067261480145072496991703340060302451846017200297180121186670925195718989674778366275826329995008179404162881622751379638546345107278267845809522787409017842517941567932876170196801776709466186954059593615370031057818412905690320709031951323589429912027212275834064180587010617926192606089456165490628742564438666501185978873327670529693685241980644225954748458726094629348477488976829811990714946212045289441972791411195812198453934565075553568736964227536171546913232778224582355462503244618611915795649542852321874267509000024496637900075088342559599297503137468837918078885552007119299971327092686915987900854973876648826353470572000014063656936427266560605622441345367783626623168075137856318568826066079136817064264431922552388852596325771632807788531391657566344356938094265798445299573579024120993177814748452614055340511963540846246133748490213278993419288254530333603332959127043253624725572040740005058882424353196616440348760466552594211452805024774693690226800214024649788942889865493613243265528477131168302825337634413155360462351685844095046713893453891756323149697907325930107900229742671825301597981879952405094338439506511443195001937146121688300807974994333383231778418504906479226917850224223356159716994069369587852824528943649242864509044570508300757297616033894440975594989195312637036986445891161966154320355714808313783250231999940469336232298584422355706966672198646260889189013842686800922613551388012839581947890948009550892124389652020165985101176404362944247743423538459583604608258347468546228535479718147294518242360168004648959058463112827952855909118369642996753593394267497781847101440378692336756974125327637178389104914220134078960808963884005390129918519084695038310179179027798575553797761701771240106504646154682417500861945158616456802235718820604979547177304502958323153379784736078980340686328960236959998834495295795332226641541660784214849587072797405514428459198019871336271115030974414058161834734928568299048696358715523638630365112448326329553284001360058731965934831255794920679047890320744570626482474132796697462795496880780329057442461170173016814197538668018110688823852955038293840518486461187018238884742982380335159772439791270545276020967999290141550339515829186646680228276607594482744848226481301162194786143489449762588497879342620748297192635278594859074427831262826973334068254397801253311708485210636245248355008827677445471703542453678106571948660238331577003743421048139979340877011901858716902657243649214385586256479611910886232814626641758511802160972262106254201850053502538701554364343755384821558357298048827809205256313827423608848970353759777871377575967812746633830038909747764599275090248934407071604214520924965445281917847119575592590294882428214659310998622362744675756237171446762521608558744080826325311589448413141006940336573788863983093459175165641716865921143982827285624261052837539345299412714194650118951706262298630756861929426381369158421249355543091472207367055923972485478891244642541420261525166198834747122792805128088010959730074783758595194371946143160327183494472708850895809674003336250009712209443730720947569923968449106289817376040519742930822970569857580606526099209857679733375553626724080064835095436361484816894856705319087146892420230768111361691705985364400237487962400121988516051392786354003577337820090131062003022986184788085755525488153817732334795668452520291547989031058928088795592073352817878377537565316178100910756440464455874924487124232673863443699691533678565448038905859580786431848724216280904853832711959550706335463152586373906140455196383149712099890540641803272410913160248543970159550870197118960496488185825325687996141550517145629599917045589090728239901226887197557273138357167699296696496328603880470451284959896714933147629532907346481327748587193210188778403868916385773844106888634215856412823873616045208927635967787727729187161787929427039140817223899728621799071883826248971019651486809944979330322352761884043529794086773227742363131241606726538122301767820162986466896887956658871458450371959877874847794912722726435318170868401404411015274782451543571025792216109666671975021752716630938250333176599430115116088735020279218083400729207199942151468084186700484875189195347865906911653628796272337933871590097718932373947355001968595764385301160147001124548924787395437253359598719072588425263070351086791265441202938958889265230014993095446801660907706832613023513413181116157714704338821127496685004155441793472690241981467565096456114479836797241514836991948361103000798606989364947613095222657853587102090338836318472164063847228726827300329764576991834481128820567979023063738998087952414993576526389392893533015382044959822819263180112450784184138524493506803006553087343550904702894427816672442483538165286059900687433055072559646906350075825337647594448551817805776092404798473495426011235419733258762633297094828977046945806659254832175384561905286964598631167177974793972230543707204376789204903851361943449361678873323738302101318375157258877836349889529860115039596540896729385593485253487741964690220597904249610081586751775230270213670973598677628312624441558960506322777680507593754241359890798439308516495677547828369240652273710656923290038990591841760894065339071633839224780672530726215908160766122565823169641611698784162223980544265582717498862748263120433320425284885003541014799996376943394104837918537530027434240793239295511870050161186032841085101783495287607161823769867166026008708639655908024989243941730283525799701745171857725142609031120676972638117169274386457751491188864997095372622538152853432437002156664032213552473526930899490290034528967556175092285220926480551097017691672100291892239769576493071754370058411085134968423410732306938917563184173881163098587634988527801926938033267169140343916180863759596961105549925260792895290931928941696708761070885975672679003393657974631122440723354474422176391160093363775131866369845114824520085709554949332335448701181324333807001874790851531200181694704609469727815532071999325046157356441846370171320820956710231119537976903136049775570509501314132824665618154918315723178965469024878122563585345986885712439841068577469594895347847590220289056700492413600706038070747186642583817312156712055465690810564834917183192994291405991213165542731936939616433202369020942135459740357260430395852867169662627532836007975065815891380420312852308361322315803708405880591160722984693386044365823790610926629298914498045338086826666472233289358918297624215814952906079043895857393061453226502596223370821583984274295809187528984596403567903715169271645936403484491309704809744171378352180032164350040552898022822041515310431256741818661793686176565938572081267208437390460879182855601344861103868960951404681263182902025547569661037703057615798131791347779609963506073091479247592993889632751447479654632447295979044959885140440894361094862697501018213801916551322926428236385508179383226532889701028898557782635064761722373024331181068123272425944697497223706394941599165016703981930214039706253565164757586306821216555831773243407722421524669584295437683212367933802919634654633966761952673090697616057761730976515916045093348021835464224946062179959010341156482675893704053409343354695827682903659932452147166860785871344314915206804078993347266095246893993759053154714660194838760279102004633071563713660468317731645924219308862005631920449291813417647158080022485824945628148545132313366683448138692752729448003247151014951890099543595979482425149517831428871868233492581269926836521366084732644745517035052812770989327039104668528700594868475232346236295537756746737431666518012469986665824770456625619495810116792520888057302647364024427949229076076104655713613872719305844735502028362627734655064740787468095690857660982088310419138978812290063116889564749788892672579693682351625888621547688827962144849319725778424340895251701507791522465279838092301985621655241350860486354688436988751035167701064558280335286664301879866225564759157522996710435429550843196352521570273493876503126684813007543958530364235853527250591794557823875183433542341242617828632745317290141449228968147238714248918850514800175295967629067088955512220628672830214765857961829200795237821576841032538823014831241453098219509869401076752507195406785459402273249668071868655631040808819318455804417256644781505537763748668091145595575855069661659049299783247540253935373543765429295557115609389473811443419730286655978703335219056092258435893671724563604131940001115245943191939860540807683212813387173738225915794693562164636281059020084993282263415104788890118419166921464804542305596054042120693602851983933475686933248787471242516689001950676210550837388583363500813173726920407679063735478566355425367313148901709313210634177307316888517494618033188311452225900838931364284095234450170660052131652577248508876527466747715559741276095373869841776907715501504269689255147513577929862917989662305774928224879125980767259860482351828689720968941751004534376887276285437980833672353041005219485079797758109566891943810756697489445313165670364016587480058672768709737779873487101789540932156979888457844070503038994638718118713748180372005273757232651910105430649519749185368788297659738956347079658316901197777519785761358727113945094395088037206580009111506137119883257106190594386488881889896098573597616255730680381190808893769693038018758207491830424973121491858655803809078094541760565232714147769284559990589289303626333219985339990474445499720946160568927781052607309386539956136700405866041043451400557671295714561476135545545789584166493921585970194520359859977767320271518236946592225059005824669654015755278154840459487965341405259422441774544644953915926348297090933192193876026374476109957879878018251367524889553059081018024108393564386459395058383244403420476534715755880680434709428550896428050542458897741044893155466700640958951841553185722476924972670274404153181602106940176469853022628429307568515780369187952791653071260572049505479288078554902475747159674372055944207092112234195394518672958882705045887640620278528090453040587508236306467960546625940536225106448553683221211663324744998499994118087206110741667252522318450689189896734839843909208562681387670351888426096194203543069539415698824462823059538729766014874141682222954307258172019008674694426980505857756185157754804917030053049262756313094358460986471705993539494102313597286838665980394975631652819167044077658994914762450428607254172030447460430042963901351835922688807882558319343531243393594119988699326551928007863900109279912715634989846860031901870493955806160411046270665651501212179682221920947251038642918903843076615573034236933554494535918003491452754594998578559470970143774936302269953197664006409664152272895938191345810477935733929590299664259335801481184605466424016166155480521856807483560300961836041992368830374984525516622182508999982540793633603774511678348849672262105422053651940102000938065720751430523744627194338365296676363085800551696716813214204422961798789073228642620943248850573415171412270357155480625444593907161504901948678514579268453397830815763146409776535590262618764452419011495433949513633072155821004228292163191717330568637274985923247767863937816836131780633595146372626672109734774121559185040892511583917199178821335684160758400739414006361392342421526399401888913750620102927000755303928899067456485870312703078980587893918651158582377429857951203046179327116512570870827497619153800170678383240207061423950702955502552356388004105207378752012538380215392519717552082129539715021815619925747089354422746844005138383535479407688773450517484881341552444407590494219738982422544705308201725468600196893557063121747884328532576054151876602863299865309246050049240187643655477414385781731812911129242147333953902238888129198925520232240499736237576041227926069077280076911727689032952222236904141410428045902106173763885197770114692816561300822263327686435952321027732756765256926439632282586903574745373075610855318269470062579681062529365188673339562368590257117636660950135561343906458045696774425120896410408701379003016975296410351866813372472163355131293475498727502303292901066975028915217720254725347589450453185941268152157357949653067128944574864023978141139150027798118891156274396299293443344282773601231127782845031730282942132628498660302307771216932010173824863015298322135929755481948047920645298875535130909366163378715106427362503022539671024347145032832282496512759605959398751122322862591450221227652345177775190013679080330259841884146528009315943479033226551413226229158699734861762361663717115178523480662070955520634180509716848210606429100413276648356187630653681007112889092501108686341333639725393022144620168544304079682847788530236939765478834683094708819600128499052923128554015449156275875901171785578231011808791559766954211916278653759035922205856814171979612456569983852607293867566892398487507468766487934881795757911236915995438276381771181853241637471471514225302596923517376306778703633193497815405946033226669735633819280596448997286457814988384699878888241280369994771631494965741067995734820680563406868534700340699727007003610825259976233846610819848018692371511605876759951985162446232562238971159043979039759695113982385952720378731302013383974539934565458212407706904812582748640905563563001156875259184600074194523169932428992354775513411522833132810151870778506971332270361363724156699556737090144642580256002578138697727582659096614854797450957223010132130806565383531645508477812639703809384030687028202135352157120328811979273366239914451192986755026187460859276941486227863969302815690719377472472876226663919320279802639165808006168528810755261042230406422663144676622326557855286116343389727964475856687450794256018044240985945605338076947316465770888661011827047047921384828471633849740081777429153265756767218451613782394622163152035763370870317284309252475219168100105449406933862991213480267562567837839371992820098564314117036139934243108608500620359703780564512576521282850862114605026815303432623380163990880624117585014435363741648190849057273341505083734086517041354148072170028452068008137783943133741721562638907212511175889361340447276447262030008243180110870428496088296784724969259837289752095358710619981056293341992721360826298812133432758745899926998230342602391922180875288675146212899399586621540002740506132656174588502718754483150993369470900447337678403059250524492982605459852536432185190321604312776456036581202048910536235353465195649179217640987279666615465240880974628999167575051058696005924457433224466505405244514922139660845716994659019414350705490308911461536911669852830258679471636548498749168534263946898208386250663222640858182202645652910363141389622282426552849545594009126535283528105174977006500529915635309946158921172814607737852295622163458793307717159420957388813969310833927261289119271643262443328182510276972862859966050569836435765483015222933908172470509740506004965898849027683374296019222114471107792534759784775548844155030595539104450235749191499426098840999010338292448818008484441582853463623126306903011444479230064629686261683545257021961051423156864511266174440464596093878618039893164645921453990152268405678139196525408868379726778359698860066077589401652494941473313690550520827491638613356112007122098102854959952303178372779512738660318748963931874195040566557361201565681464832421229455413247283406221786360389521547931037396330144076799281608330907461585069530400062300149316408532191927508184546097130048632358115290799007140576048900149119204714218170484809261248466474574546994908666086351609739966759632271322262665602113332817300753705856781573721871626220523338196819814706196006353755111585606666510126711044390495461269297170814201620120245505958890217484444430700815319322984780568914356597488874337855306239056183599116159939886386548639675406160550732785201103238935800907913999461534222814234382149651878247569168884260997032964330459977678250519915873124081861066894055258985327499276937459126157268055612127285346562496270334035131634090018131688097046357437570032189539365776630591406182315758681761295179420599391004612663911448965808247200849454888298784372964501072085377059719744978134514566209428319852247729076669663675095506687643161286990787765318485584546499459705642200253964821981442003743303491101502541143492562474411787045282751264203805855470021091251682770315155444422500948831923787630309164362704546185877688109042632440303675584167697436179152576742292520722205256405725834005580210852174858792181236587827391225203712113399611942446153987344499272463860359177929237226406586497711805573189844371816147398719999427007962571235687820957157811406488362824149174318503336853592737007590522962707850738440667971191666613903142319299151481696970486423452855123613415241256224655988802479791822338155816661840476436024892494750339831111297911053947603542494339480424878725047934160538645851219303153399200185816010472143068351491866596164359903253243247969267726130612310969086093377530014019035824659928908554138616769728747704097048597086744962219215947863140098019330617506897403028467223110798480681679102221373673262016895950839221438995811900669258433831974528802554355475788575056794705213252277014225010906160790252676104729310278313028167525360984961229470382147688975326669694539947176691564389231658743016327519613024885200089915204940813190913453089726449438486118113855843512828420459182088914855836340483501293322733566484528105882148471216217523796823983697523960245477498316026710779942562394524508345731028239356014570968305809450798874229934110790533810312977507602135133818297237734834604076466032526706359097949456859983873330388470396350481058083447912237286552232442124992804642732093162613793559694324669326076798773759010405558994392143828171335381725053714121383330034561146433554469710039887260400394937442501338390155181445981296050902345242656400206265857360157570406355732911059322022620235018738975751428945868316770815727207470875753100231626139881791247326277659779997293610110833420255579880106819541823740836970883542180576776635929085604436436827484283139706169391146623687756786565890427029307306356663483589983742320321657970771370302878855851356718136745878439646521929899337807070867988396899061400647138159792924352326042417536090613349441436993455181121329948113256188361427173083189780403438223250997047066956476615181027425216812173008984549216955757193119195200521344738362108696125572566628007025805142378777056214091653904601283230677869305224922160017343022375321379043840128526458042541670611347320242956939735653316386519370667186194867730511026271041168101334761981990405427125404462018952533340882667178138093024422997572482546660147041559059912871770621191757801192729750012229693280320010798646980035009337694873857810438630802800511404196625103491884952221860609777407208976415329906637606665338027094986187624629489372666764808820635184586480165735416029200694451378535964693686086284552376435618628314747691771795625349408163009612230567225326299843062562538122762522431446843281382138810428579929263887393524600483607405664538206509204489644533800788214885231333082743732727675076451876597475432927982436605614064663564673882348046199547490636928034860664173477179408944033929188696836722245611357298482819322645084287031610340371695986490698652371752557446802607752316922408576936885260430510817616112509921871387010339882546617200986222251162972442681641706519194157782329080752011388029716489350951111622036182167113854610267423148848991979356060669320976954072578718911495011581568037697825256330151558800602073304315115113688799276219878638505202078830550937592906518201033467186614300862185152158111173512133511155898885232252629559312725565546059500356940908375463363826441949391546811515896171586381457305283633331506301911556676770976837826718657007390083254994269023040502702883749672335311219170445293977101507589164664329241983139379818724261061400362410688461652903800603081518684749876656196769060304226349386851305450241489710092022521763581545280888097328613378620114635162842812076509947528082260900297265124584643608341803278499902554937341233652306690781240555641589170973319440444455627163634093720959337681018605907800414661442281794873718462430381256760539922258413960074496396286819714464691084021767635228437760574247023313102682197379388082413013121453655436130110350731628714257193115952443806935267737188265319546707932765627295907478952183823081345396578871911353121187186550402943758664090852483334071632438907753203884638535513592231805980402155498118203129739253500632347329153198295393926285783515001147824114190725408982390979776743836931844694587667540173079850580168744555593779092814788321098609841151258284208429580039795181388758763095070600216167055100411965673869255914317879024817840273625449158730150064684791404927994259405140049792579588556267265334039292975032008112639466706847383386394835314221155217431940513967498820477202764100063155847646361428523947846748082521944556381131429342258399680333670502504329044692299177213440492006715694075382674394624257694615799116384947523880563753514678999849090322538394021551404605473681370341125767568718599188722197892906725008859972740204046274576222458144209863538913547174201088777374893921949993276793075396709045068338324529870191161410043480328964353984016424719925179238376169763382948268830545208082028304691002049188323847666260138554092649679473914864431085885914045899112049545912185491123581750873832775566618689365989009032686296001914328480368884333794634014781728615368636310279022369039814057792265237770958828107909965502711458516735915343731835595404533815313416219708869580897926814990299774229423199130761285556853963669512411193886689072636372187763052695466276662366878457613881532331832752672000028381210142120320862719768148338464889900811809018155896904597819006675397410929113096095838602680728590876568080134675760996048763918580438060627195131789883441435901126701763126724749817793731631386968328628630329651149276573603531808601899400056330021567217478416682271753795117718919817070615685517086131209440883799943926998646473921944384303854323777017635718658977536393500600859002337450077666000487657069212533537772697790185690407648716060784990924395724973037033579959662292222731784360194364056089166141491240129022457311514709579930691099382685348105392019935429046013213540185075994487222907248121654442837999956291492635460921601073298255965066515722648739930282423225047562574524546084128345248298799537704078463405958481411465963771219002631903138238365085386030693510314829776985577401065805797113801953123477695866204605385954119512393105528506598406144174191677420425124507076697632776346239210330864877018944643062146177714494551227402988577277818751518986602246603977101395211692063063132479401332780800548952718848900641198118802784828588783853804504913022390273597102369271884168581856611397888452361837957219809790576149206105363860559353729177421850278713635784129350530778753235295058855587774008255661540988904468561615685285026871109916050309617622877314547903209730711285794211381987976932833888644437551026464283355280339576366668257798065142319370410134232890705234093045527901659905741192230413711135563974603567365852250152561516246012647626084733260223883700913021839811520987378253115651848128900171825672404828614265860536445546271331709546666513685004803360537441163220397431301295742312025034675123813974385413997894871504162588181028584562353875238274834112788797575365729585128075077328614634693934188819083662129547251596508789737284698642992331029545099368745664137718903349270681745768834380841711224727181188442925020190422706571804335662214377565714013703049732822351846017635062131897731075530081521114741596784332520583395828383722352605979423411249560597782899583837200546879460224925678463519617395151084835817053786438419247439665816778329275647471745427440169925671426051652581758369040450756038085927616580492658900935990484986371177914578604899151360639873223340086736853239040437540971329200581425736307101746283142020868512039523732254622355001133886265550358388880301770534275216903324874906426309317475693422049635274536447185964377432367712554908900468499738149324144311456542546605324667353669094727266787038029790771248754500877861658247463265155949023673968408823082247086392751539815132661938474814889690799037813132356362045208988688799036508373099591811080565455056674421121367063577298938967186040046063702981481283129642515978183156513906345592928372729181265202698210142684256887055855281874323265024482207001679246077494595804423564619759833572047666999067047145749513130742085838454358405593333716002501476886227204492480142727029106418043680329492060620573794206216313775564751997241156699459074215836615598280800146154830705201516835863976514635937044376895250282459782999497476198859486145901546704017194387851769088055045021927388056586571914047595191747237941358174206860076140297589774944903627346118061394132738283534949528229685887425731342296121624221821646538742379647665163746135222225207438149408608106858344158076747647977486372838973134265453194035202285562651125604432449981026505554033244552871484878903084453875734130823815256397653487286204108325756940865088594248189512747450717259894004364988182400570466304247637021185010400113720876264372959853893074883172028301523011028376016316157091069057777665316488009217414231097042744567146957984274731600510129487783484599990360296931501220312213109232634555095889485970512451477365892022839517124464656987009506181860166674201862155048872257777870180306714482410260158068263582978297589679834578931548350097832363200028756678944206691434675892293745284806775441872859162974284989633684990799518399510295808965009846361819212862279034578758565895599849707801035951587089933701789166932055469385102695900436416370026790238221450081676993443279549070379468259259755217970005712889137554575193216259082944097697276786182939238261164009032844889406105765142069586701582471923799712131005578647127286864013383747251617315010867339912930568392394123698377907102762214225334201212826723729025683193671392426730538941763745211609094160460830579201734436729971036314009262013599629070439324593893358985947179819431739975425700031729855087305317525906131615796005414648171756748896567028752656461798425040232019049843421670284902068138459424352008230006968751175680018206765003598301643693374074490153086748940605314347707656047192124124136031468684270570895112529278836114435463998253841139189461435710288232331717916674924676188451587451439305210467944586864606707033670759505965421624245785370370349065499072530911080701756323567148978561365396594297681971747016874803746255433762190242866743921934484258437962980507397028806406451715105217548391878456545971088776822997329988725251285329439129665971769332838201752712199709478700942436489592868873585850509403914740807479792021035567495122139314775534858728540726986610498660964440620991870366053649087059521751507468906066145707334094240558411863113357742685656450779077656669223064274729063563610644865132031122607188308302712789427498825449479648023618277799252532721219935141910761095460868337869788687110371499353779343073866123238348546701958656366932981943661401831696799044186438549798348655062029307726425114783649101111347566346806419672560111781432883587700392723545649283871821761268591967149285304586468155119414204115621375184930813285921375879550481470594914264783237409906575319077158523953971732330466711500787012990248676897710585387892759672012824344649190644311919070200179039260848959128915563563563147699367289200648152837444454297262716829059441520424288395822343344559096070540432267071683994603219940631454234888777887474502241637726913328804088975629191054469475663958623507410420825268740698838146635182926217414689325503408609028177605391459892967455823438642771251021062988772073533202583784789870030370483529984187886531492952292999151490708602858130344637761071399089286565368570262142061380813363610420682251943396207201664931800759615333761833657580202521290206315606685072539129369098443386827325468492970358850807981322017503446906118843277399115059325091416260163202036743443071643187325497209141642264930494481855002954124394236099184694363075096600905664437419745932071337134049624506809034009238087497195345270085202860408422589935625207205729169444610176563304601932723777256015922497998144801653391651130750184869183299146706595517322545790415705607537555659538843951197505538936569024123813878213904010917113724490683673751487782784028757928300765514385198254220389571371447223559484610358337768874182362838114787627975954890867562255988633381125314236532445917972428259149675442607098323551086158237741887950690979423725439487011193725859685456187070398963627147170833592503263025645417924990232065615651925979877004852924011489452374512281222798563328032910398114843101829746707344368010988657911014792710212286836008653228386316116565912069712891591787408525486366671860124293592567341980012749122031077076715265921387530159954906260887515157089185744725004077805442693882006239523320119140097616355831284603698611291545776897281138600370850267885960860686864799572180385902794322477646325387245479200901518427568594898661776509092026985728523854715595851770687330788826756709096709883243374150817632501677706581671209568657984555259851102830731841285322683028518462707472596834437234095431046493835044586816399915371817223097441300426321771882330219579100766838037944119149476941377699119060001167896545707201859921853078500810716510085003519995271207818735576165441869203213368712746599493696907591314954181986963868623542403691289865523926077700137556104182662399981831227692282175059540754376942144159992594050012006971325080168365621383865184037029499731785362209295649875358176908670804007339241893227330785671486071415686552851150640894074330594582244240469589116634152632910395094407913094415591988777275812378696965535030811571408278486873415672662086429665564489897513554007772577101467013165094109366783799685149137945703698389458683758864295019620154191310404930583585988408926611179948274778212502514266985293038584380873082576316427639988718456268923464152675686838713376411107873677557198116988625077085478932731924990092851990311230867428895325267611983725208981410077170896280662101839046809327526931059953837974698258440259776516454361075896427932224374591547225662703746805077683647613619987941220644796222550441148704510972175531550824173759991784786876751020929817437849965761593079079816093372213837809153016678413789002331033773431793105047163635901645261762687975317421161901021375445547483303593741545675057436454840045794891037854331118953934782761602079782161310676494003011726688392593026639691926647858596594290940861862011018306505163448755412579057126896239712786834079801741907896846441582795042664291072589540798587455942602104626187712878968728716876826074683372081511157335823574127701563941020653470234634685713210238189690161283679591828416982245562982129473224797721941717019723520588288176582804924061154144236878795380829786092917946600912536146051385823840445394123863981363134135914678139035568758971533839614348378066743344736089569798074977463721996637553476050456506124025954681204350111797733157990470524096544330966085113931366649049224040712229047564078891384170026217543413013727152476777897132675561038110667656286306945670599632267491811597392859279214460738615499303466911539823233621855357018747955573282856197209573121962636404109651560452148541101563828745962724947074433971238012031240881452661518474788359845861507709499842425297530729723265004165294795044188212329562543567902065292073155469629038349963795723538669500520732810990647689843029685155605316771238004353415775383180939302898175699655122123086764379732752877179474924588362259261736450357931168308197002057765087440390787268997974289409265631749022569539815133615694545897834471141487514053036525186693340166066148594767050500554452295152810077887170326111484463633240056907878874373072992775776705973674493667235870285617265564311525585325333106802290280553058910658076063114740436581287342955012621248418896823297498657100812365545394419793642710302007019312382681877483962540681731414238588164000539663458592107185175540232544510784835655684483181979149730913737679030555539442071260201084827284987555315316701388347402568275838661209800732045152414141441148533253249461265225664144108821338806610150737688975355835013781832930216842727275022656965563030709895641572025363164058134219096727588837370609342809523503963110631282733021899109747801965028877845742225088426333151519337302697458295210849530307534328720068377971558791167711503326451282224353889340956997645478548391124403161616175229974680755047917628995237068185636988090559655618302188289721902317441293016413985647064800600787363653952496665512945497089752220032898214771051657480966607034466405423185347498876854592579081129202714562218011995409299193235499926975926847447268998065503140886843501992114667025767577814213343162593335763303107087597088877711508398689678782850748973747249412973514381205545843839692495367968339741865931392539976316510453428224728351184845355544883369871152118593084771106385914011698019882527970993087628836581145135563418454530608486273122054459425315101229832524923080783040685327759436748737997483733611943039103019734761575087405377923416439936389996509349406323428696624855414980512835846257562776400802823599370502518634561817776317595027031310626515083808955089503559318963764840845999786381489854439346357412551209488026822229999883432812019962413067022714337731268331802654042845642795739634922136645058702389856353970891750199889641218215470664452941433908452787864705997602345017773269406176061990858219361008879673098385017740632864308822263881973541872953719365441929779448224840600326460530399115295132487916581333940084404140745852944062038326133372353407500175437052194552524569916070381525938314722468308107443711337079401701144531065157907281475861763856098880559166531102255109850581198858162066073616714817792679491915959930349790286560322870922124664653431446988935014629973736848433032641013748711328641108573154211583144727655436035838832801636755966289766100096192556527732594504453996206810030794704283574529433881709450989649648318426572837466832504857565857863760848743032278848529954566252999047394297104371197536802671835023508369799481721300832642067497779884017161806674833063680726752035195470253307968882422950411645503663619442406670208971278333335305804770388192707913357307782786982368754646614609449417958941503014274086189893527221376193989464379891216063864408658741874835798127133523104641423703333010860717843352120660132381800432307485995124381484079858499171868200786620632980334565011791848986981403179790211589912398745691534889378154385452460948086211458258635594371763700038695580112252843939722153298667860242535554547164323749930534827619584378721737464823208808412902961226007712361485029019328594051854980032974308955803891807028838408715936562340052049778033252004997927769829522449142875386256102864246153396652615437879342646530832170259057437916911070073633508707138683345980017784837629219121728790750495042521040890999320258530903715829391014264774181934471881997328874272177970056892454457964652942552214435065254750669795657645489295825341041695274666383385171655948694239173280837360162561293299015025359806187392187574804543159586705341678852142284193242990880315453179460751543886973993806763370986468475286940345429847976739052251031414627405304155396688022709534492365823802273306663860059938767602091921224048569864899300285309789136865838958932855535056823439442833528903390182004958702685101638508289269208172269581649207615496134867341544923981968468116779537435979981028758465054649683528667387265223627904422703686681831341725559450694495445817397289878633634815703749807638689208443843086191502799776775099663456110073356205564258704948786292292085144035253328749555239728504121239434756444668783785356087384558359612852853548655873448207715120441548015459250427708475882110147596973863022941394146538461276647845227217777750430683933536702837771436953519980231833850640544376866531953480895092787462691385654788473663218814670599096005113767991871452876630969786663380777860254217250425574613116314802983582451199967902903101424133227798364354490873309654374678495620528499573769970942155202169301139802670113618607623219475277434250499124383211992313621469881777878826548825587682200847769620239693647436452402669731439906169807093719520082366613628434096701464907874045942920523745602503221244885820273283878473323734861044216286185469114715656295518993831917535724207861815468487954089860214236570181655784801338655524934984344762164286725632559068860907214967386930328543428446296082526255868349137838556760411559009750116451863553545904964016317489198762752463065778537293853097293042015075184261084261277378752171063493379852350588455430183384497835852705909949526373236333625830382989702567247995543683679951066244308564517412866422731999985357442949130965081463172120931937188966864982758489605479176599160109351245146558792594071470269292611847453106245638235914807904897585535120831472707856961590744235840576473851756495995240530914985539775540246781020589899761509436020181241796705044921546978605220428361388735011935391438657302042163445690563929747901764836377202435838838977673006192191017818949176613073883732737875539208066801708931275905248417666432267087233580877194674773998079541068260033941963742855585004750146296929717071704402468092385060228137416420079845808255329431572852461803080153833584797752051277314181554835401290828433510737168310593375884395264718800898656657851386488047215772764978002785846233728810287836303867293478200223340828835437886691995717927846404213054689716241760781000348031550789539213504546171225768012357413012672141073963578071104002480356597906775514615316692767598026328152129955183655816877698905956044711995375959560598178528356439114064663512200965001300090616326794399178731389434895573072332433106884792036455351288806054778193358988951842700097351376069373943154349704075105884470124605166528617597970726818532066470830969394040667696489222200970831690799695855803584515833426189219338660404238192022712962546415878905649779725021603576789215422569371027919543363246767740188150023193667772481800345309970170475628622772550659520152372808444079628339215346652697798551324735404769716191051472231212999037637064331851063275237753875508004513392036784856059952407567229390070594399178114424578502462201236846724463313779221281608227141558262122108867799079649003093040470815284932070337900681854970450011433279285715434469410937673163066934546151649564077222749432185590204277576168485610756142622835691400079042120118697430369979318823996173140850096561479564348631988071231690545128795452192825218741937625103736119960923562522970631204647616296560725993050895601283469320226280803902607613750762877400650551219313332940413554610652081105898620210485538985263115301792762797268741906553704971317530995692368260515693286365424339040736354134458009479783250338262353350980015423287774900180392246407293409093077511225297091961911728081661956040240006560157018684283243238886492345692499527940912080112268774276324513437767445113343258383216692248289594762845573400703712037663390921758112717955914477305290776342652486203934669624455007430485568945523592408162086413963453399102626965931310421865544698060107412946242869971885941622642747026953290909996755682505379658788850511264833384270113842187186588010322948115739130922069411630043110635912413605466917708078017059549180151115538670544502002447729296669767469467433416879421627821740926338702234875485530607142401536580893816039123086072489924427792176958949967178620862012604487243285965083003374200247010499444893242930401396222132386890008635908976083592707805915489365529498361868221694306507594468426087219015679731348914079872155724772911013308569155368771806533233844897092729587819337508466593098719570145412162934342233203447125472313196564930664323150396421844545018893343367048484573855015005930614681037305350445307448423896185463306186662547572129804464889174633511801525511176098503249513072445722316381569612681501887695112004171364833129161240305622223733436227534921341724528708493987764811034497419188927269216301178235642799446985757049390415894778290003207402683757195879557787955443361801419003290750200205527119912686693900388079549577230210326027102268568045621853251506336635670805589249928091893645935457488587995021505019879221429178380759965278615562257380820508118012935017194620859096922037278575504801763170308106062953981873450083553718246932291851789025710271613608930062521453534824529447626941400998560744260448581708901564866627673206020599606457548734872468691069741826691205173107422038010004889691942413362014711591456316345657394417686372256449395693108901621889044052458476208793998467849772884127846547941105136354966480378266942074118483177776856477627638790840532258775476217928523173092007982678244967575488217855284726778532294039407201049443867915156226543517284053916715817733365257067069964248481439957024255478736165778438774603757966047765013889272411264693260791526191683791734373437155183038509365310742002406554794900403386579631181404525890021455689554203853446869823362858014137031565853599468294893313043194083150958512399919841817593134711430280105034673158821343773162414379526580568854576760903389454425470637883341165285525439863083654015236705723561340168400724790436649726440266806263847009021478033647338971848111587230674504309117224572714313816517976480000089871424288964932475841243992699046691839806006134669764793881171087730425315002260138582358207846444060502512909964640766133537086952334768958891790414306589692522585268223475116768494011335851645882154441867528772166702799958039940433782490111013519012126197741930751106612505505903353420735475067895453916884351659009776308280440061968677506961583106090096622623536703125928004752053943541950939412201660115942667867759453430885140251228613944192366957445128173053271087080031878487002644282354925765280225901645702321751825076142112137318024702085171893991101209452557659102645230488373919018356718613372895106162092983986224653396178814287767986348875016375868679344988098568081439041065170237731089564032235338227833458859125073236131476459838219000511844044049263036987689585582160972809917309612037722596768780549057528146048985310931775183920631213940276815778779021941632255354639130103495242603843237768274402130202539339961554135701948941211730871786665687113048634179165256764581556445088837144974064158686130221203709776921902200860619532689649964954270275241277843696743422292996503130511887474909283705954194222848467617472105511739978576870301848384341017791337723851234010227571308628798452622567859242422437032169307194050096164468702173091553680191360842814389291482977154125467958163924530496512694355045000802344237755657538180675681106531905801826344247278726516520770057617907191364123477398020192130350284844710536127900861720504935260091491900091676403918999095648673595956589452723971650495788765129092519487628569777204649262630970225915922367983937247054482818747451931411468568433487043287586626693199835684525027913072716381660046003698618178914608117729265261084477294453777055815893115203951589369000556195592391382416439431616278414247224049956466771096381104085328246973707096890907318505201341940941886439734562541329639163085203663480105647957739913569951113191964344667049363138796485107064283215389176493747109787150900861089925713104904592652526926260278344284732318906052758186845972404476871878848617734326110524978116789755116699275717995147763608053167914135878192539900563967064210031061640733920969615470051238886819168633342835095642741434977126371737912839246215138929252041395903023510965782207591299917321992404862310184225300693212356118542667335842035901820394190654682955772363627601024662119125191387329169376827746636516075320959293074622191573555158005419074945986676853542369458031329520235467837824648404783500310126570531803388426119297772141472538312145677017739490662669254913907774200539853272179798683684646272313667621991948083681781840950227187392151578267327707615643209854176987995208074607457496669893460810394065508490363275390314634840489447461901020115892479411905034314035648170418738005717205786750888172028991943996144426092446475873941119741369430064970848967920999630166623319232545068131138289135556074271604171742183491590301549264642303439706641778746682033129912015526679338392462197130104010863750208813677547550437345408415346855721673072109707733113255508928706530104995583286559780763289869388187180716183114917209114166413003351014140961733223396177822851604460508318485252062659817992341179366484141140467900744926589179154197717752471625317106797267667523738746588465563648634632037448168208959901131731121909387871832812544007308999459863396064040408805889473107598258133583922101599669290487652688607214367766209794802692826516410328876999953868668111401271801647486931197916390378406743332018688012552705496141074449200012614923190188940538540954256705526560907020884675996236884229679829047360594319600005130366750960871400811756818025564027384044420222858654935350084201402362312046900342414678905891356929449757869705554228962431854718467095661336875507065763182026727445700343457525084099482299267936824511268085631071179696883135820825321831388034992387998028581505996393908660195299943624709952613244130242014134741290325576383446108922322564471955209267333976943873476439527235596231276270693415475544505902520934417233580905556089406757685199904031755255793253851184262145986066959825524523014498274212018519265409163522410440942809731637205622331431191577572686967776417317815940739339914866882664603965706593476967558078538411860595284258578843578088887161308031678206505145881516873238989121731364833760383527350092858034027660715472218149287282490083407919752866686882116777192749861828096679833825960119421798331477729507649357958851510383393985110706691896073255425203122346489274053398338600666648592246360368680869903498951188764842017194916478517629218497843518461031733860590042477423407886522718339806665655369254695589013087730917123439483921478645888012606403392225831880008378422228503014044007666928224864941811294256937827504219868299684682931267961101136493932408915906558485295327972672287742443370837052376662594427663638291357179000205228298616408575932382271271161211440239803547815141017525357030331117977182505716589437081318445888510824813641370566753591921033881855091340901407699634251686164200858775777157893158664634553933505258578551370709840961600443246148371610711099514664934524007548166619882122088810742524631739456571091435049087773384118723316609546381919909261572463046041723834171058435159288191340186418286186659156752107085201848729789582742537045609393769196717049437547952317904213232304604543565958816321969294594981312865846513471381621791171313381244459097357784688721879017728950606781858958218936116532552204841901190138214403150620043605550814339286982426930601024425241260223251468820786514124371537285409373767923248693226855132870000581346031955378935587536589443224887772745949982649710833974503769051976193127388382347709460962270056814433504306520782007795382065487925865799552496507182890132841835279029321016934668702885295156721209827754739728754152589287190557235568622881932799345104194877048310613595340621604736051957408807914265104831919493486161315569771929904627634069183653877780233797308855607147716035214353685541761847760270688612345122721250254046703425730063977645617806771000337296320949878509196759677002221041417494930432444744461797437673142092734725958994191514946655747179213541297272139862371054998603550128588771514348145525068177587176814908063461378061132579189552070626693706246297075644375221095835809478731347421840903813110161953243236832182283613104468638856591314517028809004293407107674397428817410898859079246883213370182979004948804669071279536335389952160922583081125927725310822645505454462771894819636647079099314455790643694396159474229097405995892183341094683317342482608335367991322892802770663250147166911121039497689285148551694525520861677819639792468994887371656322738939684507323758244388878964283845918356963529918911784170583606513188740587388753493713370524429294592044084530769508768624934568760469495736625270668564329361102865184506114712983352386976940846108307539573987914843168718527344592289925828471160333905889989497568223795826457542713547723957444118106675007098002475542653534872523277929103544975791634026965870964501360724121807209915736144567693817447414783788942612753681258116919021026879228421230706644575225031091203049109273915438365139296390917181761434108302884174915384020936735889662275327757133892343570269773650014185238173077274045098703201088340209217944894572326627033339500166874504168589270252086084780965705449893796089821440587799042725857901517863877520650884523638618423389509058807045400394977323813598313483487758363743686309736377171241771026386064070129020254947720311487489238222586370372572795749753468432464125271207572821679563007556417709170191966202923741234562326215474624026772496111636929276712736421203333254579524620623301022177057174700408762465032254619384258614533278926490848778176339447181208359860961295123135873815340627882228329247839539411084081067184626021420878628525563787347896878894183363219815868274589095315209725606026014734278921195146505750168893569881560997669111410565331402906704187320052470233007821381797093211812761826137819772184051842069093121497962333055735687786737975152325069753543753428081783487654090939871665541807932923227895746850445727279275604530751688162605379195479621611625816056249524750714959684527532211438125630323876303353318639084419452392302463847515933353520024036088143713166354571481840673099012400369043568073247573174709887403854800423997935658396632000264251727624599816908353474926228847665147212492943769361178478301439734294557724063602264613937257129730695648461595157590706066067154899071321378156867443930697312478360270621193930980656219673979069491031764699632521943553883972385304840351987630186844210988162783897377975320172668737987565978356782242434161131781938305649006070094079401759453991027852663298518992620175794764209633752661248976608148697485285784602164823572791485842718265957084607012175953588468859676668131016775374939821365561162474064954967914483333094127923763372527375684522400211951726289668033563732429700530825550414700662667371991167425365672738646199980876530541095295692635977195111808962200664715598301349199643998281030468748626321286477119787006222872637694783063127426895881947890325785825411939759262101881382177540212690748945359502215453579372135522835713765427809477962629112446873200844346521579474379429328874549734775783623368877231052966000939995083913718235832509525063813623779248363085871424631436166632294656652443749035663923500523687223940747148256762907952346745184274237023033868612566670927767736113303743534513232806942899143999576391542734135328535179079663539419656646560923105532116795490972494174902194912794535350451520345580816972033028537052802118948508227386846867639711816044794675748399486486452771124385204654020329656830349338520549884459086684608909994850140367916164582840253377443174435322666276281009964357554664291509651627938308758729637926680969124964200151539254774146613072548886247600615414961886899701128681587491794243618210185343449337288671439069552309534941786081688522705332859383207186302909820984948356265345010814460795953440266005746897884019738816115766289530615201190370888694712586555417659029659035444927217037556687453411190232090883939785560383430111386057317649852663725276920704234981600159829971807148728006028968391513221170869563972457635759753345732250513918810455042125753113041719639742311657566323935071315458613760666026378768615564798565969586971136893374306970294296403945183081900502939678408167789510185107651958581759958289248101570378821936870411573842795376575628914449833569572976656683955095748050411500950159217807787890322658526383046986958505245415560291456775585046338328633796651103591479829260942056025612821812274993581800631907003514996803743061140707515051532918155266187839633381604067411872818261051467686246111720583854655293227794159648119463171180939836422202341919400088183238511859599717650167166503933528528850715567448728849190155719612856909619992188164834728802228032258477643552470646068648687666596074777748498065995566531460857232580221347216426821021749029091965657345144290730007839126164460189428657187917775039246509931251139876935515856904194367576339949998416878727931692229574944959345303947789643729347203720081548172818363630169701385248947915440642356918899995118835252197871568376854573261326866722672351983512451086386634414292496603524918189308546251479672042941497976933018623080472740229702079234384749380240672585584331271725368681538283287189261074875405815216895323346314807454777219975773530788256870413408930145632519535504910798802847398343653799753504151083822413646698562774224199986976856666153441647517998731749317168329634955706615838114516171722652845061384294119766830052276195720685907619088285066869433171742787634756229825798480983316774149992121073103682730753940295622112384804715700215302055927874349058876138153315807688294547270215811059368536997719693758900169095924024259437434750679694040334896562539060866768438916704124201659767660581530493851557159291543545668572638533041023201918923961835748681601177475529986041890618479863292398118871549983665212515009390608880241211078115904586870560269022119371074960997093609932703413137693413625257705820013209702509388289521350291396140014389408083514926093514270497638178289964614132380465123414436132983421630210217919010270265425109966349191803604556177108426882829476548831202108873556493342925393706106311430996614212285653814909426540128206179745896072812287179123081882513119727222528446864304470183439995523310130299028103828270604433638753546706013178068884195336599088005272069349133017887538692125593900948415195197032587927261371412375755994217532390542910027069031982633208593882303339634073974674235652912155385585573572784147958952064566743902017086336587643817061225303736626003453939897111493696078707563599065706649397673779614532836451676822661028060166989295177292197557513640428553012029436598399919530897619740271888187955819268147086326290412531604993807306148654323221494034389401294498548136491733772185560765715223636383387654281738519820584322249849289116912874061668247740937182257305959397403653247953979004733370589717445620807250662144556085549008714301719333473527842920534271040666483028844387747857512868843564237064594852426964579108911229497152767150463888581210969837022421105968415870681564392898898261271423252426095295258057716260591116952657622856121828928318756498330056867777254008451304134150604285725076147793152846499910829445017913802396810910215986255490667489464786944182673077109709668104208022227056995909774707543364704988272446858839805829588374198537489323463442423571748839930449637608699619572530214396188320665439729144112912213943831063499754167713925683890124488548037876313417953015195289729411075791862336747249036373070510109889520734935208240183146779832291718904019641912957622608891349685182937571627231963200453677190181123475917045266232346626700748863733002201954619167148147139682745737196953027344855517021419258614653053174995029748928421603406035587297996214844981574133588345681555500175613973867164039156358800245249293609304151384214043462165697028092955880702793373439993208715255214050179434523573412311834869288788263475469556088434070691020518726896936912004240532668970224098706986853761635775050508344348752454451043513277047019523569909353368108230539144793438061281769765538578251706493752764128400102105842662175390730629895242986642889640515560596529468983988519748265506996838766379035063353395903381201872482822766939568830864336966020244520125454652250787575941199763117336116741621431985582454651860679812775124602127038449231056226368133224805450025052139279518527497063998298750890190990749511344698426507860801345119798626977149971137339616308492691916699436776201760660945395172221186097720099535795477462312036523132685353699804148112113642454893479603110586794215026106875849836329830374795761447588401966463871206164854109417738154366035078574229200271409578750775979040799675858944102260648738253420364686457253515504523037980887980866559899350659096456038347989365581887343273037185833548564809310364445639857433164170314742130185741522965466043604849912728474193929265303643139369707032563783475062311647910277501799817255846743841268678616261992153245938491537326691521019252155104499138634581679836586429406891765184183579492986297018053936498484712065456344276988616458357919143948374899887503658315433958591754070304149709733221678457314014733742626743333366803715749045711513150759899237971581892593670765981308765004608316492092425495430996635349014498902660670722691892656511312327750787251809739313118838245458069667828148283382086610150530202344405158333123146777127318869875604564713286256735093695818685122449640689430035756067388033373766717420342493498547211583897778527603240258916455845498879209820281649988157478348285418192636369870590697533887868631675147933627962979028947000980566148583410745850514787929910803068683891063918682025089917857989124909462361126026042917099402815073780143363500663289817026304250552993147769947815970874602726077129102356612598356433784606483749256479793681371001445826791485023968383975821092532430463136647292008872613201543620056757272077550832063573305115485193040262691767782644658562758194776345486811115542483697149183540850596262913199106123394130159019506081915232614232273024086391969564543674099588744348545532201380727030772943718397282072082888164833446430076553370698017003541325200856724297012860450156247569937696774453022375560764534093863288831549459237361891848341349373527126854762037147718820974808805760302990105520163450948075731881464450778752135631994207638902658357798519792753613807122963285017190683396219355743813267908341822756372277999795002000141764628703096114782695711967264318081473255275880533107433099453298707671311415439126270253317863821934114497566913600535104661299809528431333040620606878883893239496299589548884093171311126952504404779278152799922435870524874173962912480722168894273034100932326258688611556058314701541903366216079050498932094720627922388822294568733091788459897153540244835003954561175386659925381424267782398225599738778015070533761564064526955346937115077736328720655797229233608859144096027596898252783865220545428953258572977835079751509234875752334577206063855625014907840122798340648677115436827179795259791474147717189073282637057768802932722225986040922344326146573431934824607946862513174805441515396379363257860938073948133683794745540141130362661851123504997743657879624128105006935785393406933062714229734218013122309639864189246205726280741189174488686355571642782754090783231146326730058023621617174830665131171883459908790736011226153611844271131681777805281224866175630900266152973999830860173476522052755841186342218452533976155903044079748975152910515673657493498729144802249102308350090625486789771256161060044038127917926296707981364389967001815177651317490414483343764496229855914333949143861850901745710210555159921318666609340431357209245748472884057626601205222674625956845368654988918060071675066060135094294610853786762842099167925222564533798367481030929803733290091765144076797166338805561783146455408583481762031165332396193058575606147705350299310349883852487650698816624897754914442947343236712937207085977952536179394300227093194533088861203638733665884302403087391462149194959587694712068673412493927773783678913867292923299444119494587543450164852516853943799384439509481771306729222551835433311224889185533342968363294689443485862572184283798085073396810152277533505137524093110959375104783533660338955916031297234646999386481789540766697179768955553438099449552639707440489774612091234424971217220075971192437398778167638442488480832827989923337570837463733829999108506124062666598439174695468379309853706803281919622553826426115190680999473350164224250680659147003423258910160139284786597990624113337112996025998229757443790443960613384589675534369572548980839781129023004330617445172642347530424189624735310491894658765843319768628410885438815675182521303880626209759417226437409648510719521640477039326438255364667864880453369643151992326287441959511168577129788781780348549220955257586090485445489351912436303002199363887507538201343370934820735725208596591171947043529097789632662365663527622805296363291362980064643319014497805715932289284115583550673031331514910762610600066510523346214819555129013391185009948006941271316458242090971957753190815947107658721032369131494523571780640771671374801935271933239092335331619984683849697474205897325855171679388168110136829950936950920178834046051469640826007059859411116170320035990781836376024037843499878282674175093179238335480672139714417967087408435570405033126153107175353213434563882874073653340849760855693195989454134917644491324891254976981607277619405096086393363675409438747949616170417258373939525711996257875130920065034973401605487017722223777836578671697531491894025823043824111102796150127110209984709023419355693331145083092510354222702540029443929154535169573523347188247485732055846194540187280211838497568097674833446017513290757389911417828156945282678504774399025202473189374043104389062505912526658279221351163298989793221998132082432525420172299234028031825903607980249370142505738650726853796871747250746318114938500134680304793850406969037301858530658766772978965004868549452745823325349635427289156736977151612155390477260573770431940198916276136095694555691316190567199889942904062536802455915267877142536359436604170776280250726932146087041799975722950748802329756323745441532613559367482501560123927661251039146989702012985306688224937138847088528958009959648420050649518438551815071550896578502475231676245450076626631364904112070609457547169225885679489502304625408203051551093019438334650044342718730387869039484689968406887197722970435984340778221029694141541227908613840669471879297806313261331869601795679822623248609149744641216201571717888487018724391618939301951241397808828261768678942467363409329976256012480792926978813102448787120607326859610741843832028143183512584010375916029184755831415096609015191599177306300798752214661855057363379109052353523006684074988304508953351573484496009057522174438901550597630486212208284730436573318173489315712016757255642022715284059304740908158112949594634204645192624606818324143267089087096396395225727524079741295028333730565727872996723346341925762214066780802061535429563489598133793752828245639621990310976231017805601114432033250712111862516067087098161705611776850930239947053392896664029776775109429865654139323157909791295745636598673316994524839569589363022036991504412544405028996410819776226744937460422443577415105880516639980390801490105137581807687393286302115234614231835184606526513509662294647706407109715173787670870878267698703171002695120288944929702925313356287738441209271499876988606400108233172637379700504813758167521800403281897062187949955163643127056764527851927692721502995409567161136908159607216642559793084765924252959323506539639890462177100917639318539093175745130621039188847609568903614639228404334529208011050869716731934597681260797430519146281243903863744238483212596843968925315876615644476943442649081113099334719139613766209116605512477372099494974691595113113305380980287138275391691660544695470659443484390835039898156264324573075329556563790073537460771045915228843284021926324043050103868189366675581779000213808953178951103699248998070279109394505551510313237772919206084910174274931420719814384990484923988128450671091365946262398738079467747976349851619392013286137016643119199198432291095334179538307372032636106430412864407582679731517606551945863827681737390993384026659518506902043729622531502939022156835570535353149133400541636909075126142639371546792441127904203210495554698418383798545570015590770257368396561137140157970213655196912426326169092634071888216908127177256221660537820768570451519244272872498394928731310685194710959856828039542825591739865558519264247489391953402976950543749122286329377782306173389174868954142211030605717744718857659604360421013200283251115025204647931120019662953461125446928614204155423294491134386847548896513263521127117766962230473752263047076520747281864895986895334093449182801335774244227174345053114813631437610405861139812915948589823954527902374816491020029905557963395237556062644667059759446329125034984623778042826918060306747227900253027469632048341014360885939279082733776442538662863778768078539905207117910276830888521693465518641300037252718720563194262411886910702640859187202638265137243421543081513039028199204186469825011137156784805084228495899273406163118568577485883465621463641651577076685635115621123020144726271267400165132405631484339853715105593116589256926722720867471266506604502524292867443588352063637945017065579270400972059834490753655208873580868215705721996794496794587225483709248949301120599211250687521637701701431869002926559816335274572657579743528397839420702641314411453507583006449089512952919783889651049446717767737504068622947320392689712103425052835168063798501959677168913239592465264744733946613131497686913384524330935812085986956613243777999374465740339099545138811987411200160523688348454071909369727033717025086602833499527553740846621543022884042150299944899720567034771182345434516610796850834387071364978505782744244093355836795437156213411950769869876352053023705823031410080240795357430602237137981976152359629575344554126032033118292543373911745689959908276716018889010255578582196667602992136387612992578778481802018388183271314151570284456869582436977768541083359165075275596324593260469538172075554188101009672877397146830192920367872308531727800039829299774618721097029948396749264120368968802261370173670136278827697279297730784722658068653199660442622963854265657211838349896364453304383389650436988625174452057860966055387279620238113362362485080138062807790617735555029767078488783143845493846778863989454271857261637573958116062610045774330617601492556214832846554023002275971267149200144384652667575538478695569765485701414563462650812089970361587731309292564656678967792731125367152831894946293514532455545518728182350728218433528371138474092188203911761045435712463306156969458879805546741858688134817318935262986778769088294946907102989465340305620649688703765401874210941394630710376655974235945309795045613427664106148473832260279652648279037529697449781572207873461012644058901292813596686469068501987741467444208723784784804651349447925146479433812736629307213689898289188412225308718252277755974018142844057829230738667014830677864601446513720047952868484352260989381001925380043258306171507757248636006134902819640204584368884344618452876717353855341851344451749410875295534737395426430012918614549897129957244053640512439448113270201137283798690556090478933609124090020559237233508026317641388142509108321726176239244843811209208768454323704181269803048424815202226251930590096447932889368249218134143306753245593892719596201855080416320814504955538925874534570304598594925032713459377974985927508063306942832796824602065429683239599413658534547175860386539032665000270529723702719474173281665504566295729877176281597818505301628005228322669428822270158614378995616236272181441387996805151459284151621196825564513445634356024292095829183586781518528239692723998764132483911363034576505209340763759762923670630129846761571856742137161258083037013769882057104158672899758228407620137612872148393993413428031893404554796142489818055248513641881544005619211724571333796798186322965259312997420665527545735535416085830918696998990509362850444628796790462938185589120314907138228298613603854772664699917744614302717620491392507924687718187453549262157744543727356358597313689555950085684214486018593297193115113368369041876847694452520817857285309301231780632066708312706934932666692468379631209098615242713635393727743887024195339726498240005363761545459933382745371725072833773142191602754031052370836728747363779188962199154868619003864470577455778357459432431665155013677929001786724668698797117146072469696624441238641000630400361530398032301301678723922203536554658802522789511585171722788304694877430863669440097876410703326634112137324352264109683345415040247133701995169068144449453456197687155128827408743008133519141034782382073691478842478383608120709108256559050792320532135343835940565836739002641898190885547580222261640685515223293612637650185298954253453229153090172029767058012665418973682090054535303151816556432956383086030974006137703313565666518843989210741764418281595414379601229501240501077747655616423015699207581604829268179840202652642518812326830694676428041103496362514005472620657268890827025015050219421185738453711847748679320020763073093800023460059747335899762230556428692297820588771165577269686529414669176846209938142702241436946088641135285788433799996628624092928337754069870449587854219713627086358585195391333090169092408205669510644595781992821111869121253119871135010393167234591605038183850326008613052804896434939068617100182844721856974396248501208894584024267528055173221482762444916768694803059548233754365026234564213282457225418275220397267704961558539266900841144910989206523228128405347861849222630389143039119275453804011207275042743661804899973435416555603974173115715333507115540399096117669325280559773396725741843225572120769009088663385075165789529253776536978928843560266881927638732812448649103387463099799453360038520546089691529419811046599826426715919174379296942265225566876168013563843215163569172497750640058665221430839529067005062717989380372161090971594192229823033247205033292771365892565467279601883428702418831443653389107293849004471297551241760198046827178156453902898222520948426142747246838252686356488591782505351311307465427429000354448226793118682558618612682007422837977517160036467207245942921386737029698447549954500273031507733116593171745848902063032586227056977124462005808058399174637030532499468183956417311722973953272308628249267265176015453450597678063161847082489561428395845767259761752533316060204626594451712041574870834014806297398955300111539537239961190996844576816424301513240440687999547002843617129120471986810280776838341970412527054671051935980741901009242632952192991031760507786798224723533248991613718843682679792797029263625724102208066247608550244261970034690807382990595483956760297696866078835112075040123983206460641141455920620561586842554735097081169381479008668638665590068642890499137904151240155667026070445399648686348184241183829492076443362310233502861089454275531383574613842389682020730599343783288862864042550803682842927873257718121494191384166985850584765907900242091342350193032569337565572861816611257632174369273221286506092371816492008025422155457864006801805690489185621706201237842183437129320297057809327012770175834462396224748070077287219262356080898587587571640885262310976551828765813501403402899601106495029698302299008321709302727686546809146982773182680343271995262940960767834988058387279001848292604242308176373370698468632227054474249669260514371963765831896030234686822687817843706074725389075001264465241601818407495191211355820057931836693316313164340699622662577036831444165470337728162026440187311417329007009774662209600805897536088733507211658753935405034746984690668294663262778582522285852085633694146272863750770296256701916982269836072478991017511882852910657035219768496674416530602682424550017667970438506453380313817180840248689800029539887849499835533604720305904114237735552250413394255665048467402682995443272888215753300487603397163529017750419020926540798554692569276696258052812932518405506908229473862149744180494139049926992064093506296812615600613561296655832436063762855950616689327017952100452252268489284315091487965268037576320033629168017496474783363018215140608228862790818130721094580436114252984693983279295795919177688366294437415510661671275367057886126928984309315977556836076859304244947856895127614366177105659845358484219509299816571548332000790449491173546431290683348548260008889569439411062453634290748495835203305620655430256668496318561278560638477742407384204197395758952558834264837121487975823803452951888440314755886142638656590324831717052988153793993352159797231287704308151147606034425514147572050161329572684597258967494170636243167118739587289414153245554482800780753606619775447976946383070561979714573416091755899359641329038666659943645103367230097544771853099120323006287262858170980207258769997817045033718810000040794075880416582976334327383126633793100711977504427535268918382381537372890345726616049565044803645656988995777501853158057237705131449307283685872154784293688513635413658108400840191882618969659026408193727528271299114236033547205192963801018982765858295533858538105081711129282031342041297868048643145061850054540070457371018434923829401910783003631429601472220362097068179442989004659946139531587387914137593402372924201609251010098489978190517619136370747708191377231921213667494392103735896941681108307407054936491918979833935644476043897709043399123315108020247428425913757899366112984680927083683294883688864950082217672612289255397567817614451588182194019560784108954558699945406369793654599362361113834945310215509088160378241997068396858462919600332880431133538098125873523689121160304765171707919348828956820890762290454513663882211853756886242286173723015623129315563807971934088159025202497239911995189902242410414277044403033645864422834428110791812621983706466366280969425848643276869091777678562308027513530987748080438040836757808434425916220179753362023753140600054140559004366701714306299148816885200956981755264185795249749370489211567509547352447468972019221540856950231059793616397566934271165393387844109570556966141752582631206566630037118440625140503617907283409486867753474260018105122787657889015884535261577215862912244569019756652457347075321645147510718108093100286636228664926992337033066268071133934663748735051219940273486736739499262798452661150416866400780039330271839439833228395386187384640512369373907651919225669446774100320373657492213431807435130715937984420090488917852854192433504239085527910726890808478604142109980816442611083565762047112189444247264588364060529400918195031766864472230580071375348955970993148238179298381552848662690380862494593402088516569162106119135156852958360940189426484990042648202807353084086768493045279240203529209675568523394805443556045653803155720530134532637869071898829289714499317006072277937325481612296914777387680157495701553257459215413886275361346641074981027881031055632884158542922055306217271391391606673174611786852566369088764060218380271152949069558586839538245010469104842609864254887179661599494458653178489421968505108611166100568376833314530378959578697660173016478022284347030681655093565134528889970016527952205006860666634017858269005384454160416444490193166484145142326432742683160363124952740738438827791153794099994516551535787652739286249932211944325324361915975800952005526581253529847817923599785489001766897438090779250909625737253995727658338454125767137911255344548803645835594959255391648096416055120191974156822330549171616668861623489399225326770559073613982859598105362836834806276379149267814493179787022367452275058463515378250311121652374908630310241615903308790407857551735323485741807785931082082263099703397741433882577925951674985434037483775611778776902081774074669994818706825078670708316771776837208354662449286021637448352740948068202482987815518962938127584606260532086461792082454429847075002084505070675296871563761071941510496572782308323654505343853841130122059787403141908805120957997703610913793969650780820808184223559431448792528341801290574464576195704433478607190428708151467904854219312725886289162425356670484371874997767004809986065291315455778584826242327094561102113116612746956313351555772256731277637969745912742541510139295589315086868223258039065044542058825956831218912948976791165218241235192138775652931654774859869041575532545862922415104210435801391248380766373715558710521532480470777636483503876771902258219393464764207598214929269817685825968677598200288807195888208580995300034492812586873665472178857195094993602259259110644047062051497304098041161216655011506358479434913338545195272597530058393792672271399773717645468694834138293160861836120032188113665789780328059223602782796059017894362869627831992645637271967961095562921875549785409475364161828094774846001092401182888502935267272861040097341321266128604600271417804250968239627749126451390694832433023872992616646485842695101515391456260531009551383841394694668963358366775867680590042652647144316369572727858982877810880451332995095708433496859288701255156131868377492280599624807720104630633287993585261491823880981808484923174440627705917927875497411995604159467164838468199332860208037945256286034674614816122426716460211653571345152192355868177911058948076971788441914180022147605127822647666642272605542512775471571311202524772481381590714883011086091055432402256203775320432316110073787355886194149070354969127975378622330187547589840790954961782450489631380523129244493374809419742111874792453039505536859322956360062269948047264996144714616444022078333697484839212303478120744372354622469040420131130407984242121549925189246058774543791101669018208008468751579274412123360476815575190528414805570805630539232448120585890461913816889322589016620010112507642399933987792747620736087022180379086701658027843047123492183622379792740084975276371165272082694921055555525347831472592710584115079653184047167426877477207784579989750571217858899874109212244286978705922331176904671803499329632013504581179090032074930329568537560793253087254931208120118352050064203422382889028713873144242454844319583557433172684617124289053823645645592872841725806076785746130513906544684909780731540594798518233897667194652265780366710157352698998454863907918605261031331405749134760310194903990953767206850060851380933961856125802166950553636061131743535038384765703555668350871394226218846891984744356517726875964932973644537108237827784835381534661646848707094090527007682180608084313397646072978710957109023458289821656547568214857887043092818854168132334359697495656377168649698648849379151419831991992827458805506801080133126891414179052528901326281426682357366953874364153845722167838397055097067629629632116051522048461589675578407107118737194136509907762243759521390548033014184533489515327850223144329914128297552047167941023096189755794810133177217550025108625841521656042029528949784466049622400288991577617459856307531867972164081457915396787630096087842899450022050267918097113086410329647219859654137612815326376942997651005774597295955042119436861702273071308905091515036258279206378378434328981864648897435442660324252978832892273577898540418695547746149321168287778700995106455932742696875090496056909082747479935662931689926617563142508746025783989422736511484762603018575127691936109006721438082159975365459646436686190514380527816692011726354800703492173768919973198089657248723262696576488082202065188531700486869735731654598709931479832417169268109787065754201713650963411207443229239140959207651268598149842741462178682081829366920951386169364415322762376605531548211292324321190148800378559328211523961094704150866502505067015958190596479002861492460625269541920414802688002225199239922731578391762175526249590288665153519562071039507822518228652222837055291128094826787582985392952618219766987500352651444253792287407809747450665961897359142418757377137458772068249161433205768413797083207062355529428494791407618909312547413192166407500959776921392713641559204657920420026399341479627637882808627338120911913772814813300159056725295997856125971656226260650111718211406675959663233417908923968277761177489206342765657960876856645344501621720282900992686795959190343035569445929225111319580037778353224886003466434593287981602937460352290871881408752723567514458860773885374517255621217494038321941393781200421852621004159186126464906642343587837991590501025305544512233899780886669277016726528581262872915473810842095775871987987795669819609288937201132938871275098990634863523194513853075857201238252672289038343188492743349493248498350985577228402029876850070823884550990831324980503449808014663619457852271316076175569319394007198245611781198150860411322358071595845708562512729531801127689841793555958681537203041870170577571999335998066165022160950352009697994633526322286514656066288983588699900104592657137730120402435169495170161192717133766645646628769880116127627265337584403945877705545926980783015327684913439907693108230929345072829181305070836840286241014463252007984750376057007149221631937864859797456077644135490009094758616116014060544426629469371406854552336879411249955251561001969324326865174923828389811871713437901057283014885765560370930336894986543404677799406982014935165650360359017152519479517824846214432787665574015916419741701730000272274269003266594817337089022183491628575569918876375505816916187095434570078416888311854123954668100609434169160395779836140399676752595665424069179354997860741904099050169387601785187443044961361483674091056626775840852901094446960709904340614956642708637207832163621308653780039209885202001817647835262524163448469492031650327133411712767501441520526012007822086611535941332706871805458632020497390552761141257094302544389286136291623177235341925545106600620254564010683640626259530530009937320619970062223595413102214021037767560793889029589154096816795771420240828550309272002304360694045341143147308963643190688813680387348644912327976049929926774225678749216874561399539455406006115132907749507916848141814231240266499223317434041331738386078873212754346365312856499691242898718091309665269319744096660232624650431074498184854495691981952295356196056654203044838433824810986547904603499000875118254335641709065617859581727113760316786670484499703209475970802698570907696129641309105343539299754599258707059580533579179034093292759021871587275005928373897334250174210703397985413621508131957169047863117140714764390766855238583435934956573380998266745531303895195555328278138555956319979292370870074021482335201321428453023013903450093828384863569271447130698997746847254681804036852232087964920287111060957124005010981954358272477897066450404334356064059146969900288224577976300269482546393057179950587067765632242928780304615469059555376755874946424949405266239475931825811821064697833070791220278823366534179991327168755746967570017849121030037666659054288180416764576494782396947626862337437739585870886723977531482418576008676100622534574944613692331213686113636870562109513580442019458252007003744175525062029205014249629959290042819768252299567625998769162198951289065467903785918569717587729292740575934088851928459254198177363755416327837358273275644127345284272733732148483717842402619764902491356130956354836498513052726740216497973664214085958158044846089916554993597212276906670319828565400501137712738530601208403947909733887902137836169159103111483005406255145291782861265681034803645625650610737444611399197636057105326246214508631756402299995521032908469234772985888376859005929100472375542983438893919849035190673822798930353458779900002712489964898119759859742167335867886464171342682500344220046661963211832923678844530068448857199521478608352213219465361611165832038254265051504157569503273335659477536047026018701032244613564431636832707213013013086497217840684551108247311890007976796201439997700303468075100786296483444111414007433358205636397315026851486897524352756358742634796479776430157511912166616733802779621682339816536170874235634493054381845077026180016332787554801315018713006133077643838471383967685337459009913436438564648933841299601148359000160247293411006565134386065596234908334552670527867215262341958883619409851203886773846895527505428180118253561793770112325244494068108193670035634807155378838032292169230928907444414560597883080136682752951852122318580951033756099569471921153249830026527108961817241391475586714394582042271230176733911543634054680428483910434228442459795161809373763506216036701396010724046843002133206839532142629681222945432921875444172457026865542252268234568878887292075129138166255528159806486627823579894710859779001206344262656244127304782343934534944396856680684816594321868208596766476995273743677833524183743109987381473722257513454940378940733719118180315928187593459417940771941739039262449978136740912661944698225699458092212750910226639003890824559533058934918321278418920939549351265846229871461216310639169023006053593161703191919760218983670886957583069699665414088580006419589196298108444638263246631659019811930856708280368309568453974121406482569451528891334844384544321316890307860860484535266962258045847140263121395933500795275911925580178141372087324962173917644037622988846290213862964710299169885374844319059528995676946701357410184757238869997286475096078721097582502831409160062297961314192056266077749932333018843192527984266141887308880012042137871995153480660176377685217775069351856040030377241126578899322332527757909390294650204361751879100171536926601180933255494907969410522888414424772459829386469245699007683536787878014953611998822473663129554292271135353557308060526633044543342173244323087266112220438197430250241521295813064765630871583950476854145710245141653202313020332014550792310847593128660009731337832764384391589813387293749135941782067624659223058232462571293247593476961136245937380408767388191328325815858646063758993205714946140877122213340491692600901649412264368759507094338768473851872038064363222689348830232060297193941210755587886264919916704068056489417970180851707696020017793836363894769975386548594788307489246106541370511520848394058324844094169359529111639689818358145789876327049612316144414997057083194801462581151186751605801335024150927590942714378812856783482134724645733365528417336174380993865207881482058481639692957412258438222033464262934953595901726640298693167784176088889600004748045577053840087379515034942415957235920889119430531090695291748443889832883201823388150747946742235605541098777747799985701743858208728094980307360211103792544725216651801360504105574529111300760375336117546158353317792118932521366461950907134027270673395771514820900337803178474491656687520254093201761503811190065889867506574570657188803493542278273757373523145840226274161481646674339540256793533742293509492754527427572874350432916575561476050339757947025928205096529638423736229083611565875115173059453971978822755657033034434095107548402864579237999226769303759035458075845598747464884385806941987688192939452521405209062321590524413716431405983490468752771893166447376153503114735680562318679531033705050981790114262249961798953183473183881401373856186212309061178960190168167820328596570293713612578053704590732252727159424180313451685733474794275237531818737704037939874278522545348003951152990217796175397838118311067154011474211399893343976487043549631396848939902285273293150352907216151395019800489186972391206665362378158123723151644107284123521285455492870600661994489017488560475249635243947224674888253377024155290091438619290303810909774089246142993243550087511964772881736218197308564979175475335999985991107813082553609297667423809561623981736907407559392799451812761658451967131109760511597589869355168948884699383560250821174574717180712460210544787715619897104471398512750279047443676878508472183119929667607726426752826678440064867500740701207739095103463453856863241290641025044039866802810779425042323354043597653006439905520587001257153966088902782313454881603508678055367062639110276490583186893056155987305154893012794906653296858240450120334797551439230068054531053733575970325292203618728538043952398749733150027941955088643015019003374577823403699982975730680539012047050117604814465130078387488659393262315625660033674571625962974579236096270697571393950310296843872656615074155331386646448635815571734917404128931947760428375485930000298479775958520442509413213661865568063839308607568335657211812123019285108259801339551341080953768622019815742703962603147238484530726886509262359332830139673299797954958948754276781585660149173315903413675911743113726224493352172542217006573119933930804619478374169027951352057657069478596121046827285300720409724211834574233694294480939509661132499410883597662523417839558615486705017722328886832401154480712522640121848339215519960674955157573132094790226030287900030801526593154658699884681701130191136417760528085028332566659862935031058907429245096904781849646090635741797595071611727349205318723386521389692103410680815283810238274891851761505654097679385771759871039494137369176672309173586471547537271710002208769159629244576532003350767306586209919722041152071665758805704523734758548782217289918163290518550929497579322325065889425436603853220094692960539014939153644834664048401414089516639212054401816658316325712889697557046646489005163071814372581840879502491537132302683573084015226711949183585064766136631396756268653037449716976432702268212482522812582155086365109630868815282315876264391200341212267410036216202093497220329026144786389314113643096568950040912866353397075068708221673258782491131279441453621489827755324661985598614208741843738811562360014827782404810291598643394832436928017049532145911856431522562083567967975144841599709514694860630507296578061543190630897194455802047146345147131928541224441009968742322085609335888255509203189811953864355269471821330447367713514773954697775764690492750023162611689258486401906621431624620305613029708700299592153617127758704060321080500864037853130897273195690208535787282987509951856199800524374971738652100192725224492418566656921766780984704376031701398133683493143112174498826043407079735664145943647264454516094561039784426392927113885212616664216433849567508624023928413356253095740443032823999144656033535111287105499780076213058358659341158408884919948917205454703987264034993845132021385307654391476251441569214913631957666615510484834395611679707879690376501931741758875996685612578951038227685059543431269734885895086039718309603277265278217877962670658573331409832501217136260047027148287171469738268117780109390089181166338621918932423331281531078208944541024756170806460931052649314864656611458721297714937955785266946245180555022043770990326336863538537254260779800471078584886410583536743475778513166380675928843745694800286895851355063397830450532073246699501028562464522577337638683239971479718295688174970993522798426223510635963117242221898875777899862244953440748664566269422030539084290905177195061696423598819814104050103116956953471107936705293823638612480422505085972497039556502246265962278231696731479276524180885043832066911711535546951358564439197945675693087484118171271003979545083019639360597568397324211752067814559782236679856952681110958034217332549414440429388123448693784521452794315174548403694795358792692575304349548220335516188314818324403631453178758865373136402165196427622156536254651303258780509253259184287284801967924452492263908633844062918480153119054470690011245706982834816860577715842778564018161160916533013115043199615235671849172352259243583589287839349219195891500182060745636565001844989295072429428024951879012979321973599245321963440348402408451852912722572132138856225169214218555419361794067001792516294041225323884011811347506148714211655983719148246627412828987107513935364051992443796180235099055166846211155599353024070655863237040344137209801538822596363961235013858289975801340403419591499200246939476853322897377072160105931200758993192178793962009677163634557103759816983411770489504384596158072671368634189719617408208501760318254423406715887169744285741156158771378814888486793254453033017962285163864199778002118718494155855931092815902065932183502099137315920965748461278408654030624637648305815814602648653726122289140362454379426147661392646252918443444817375856846138066158045904217721483097487125876020715830602342923261549495342019898438614837425334371982976145585545148508940047351322228575169803260786310519306301882978671995244293915100481766845852383002085525019661016361942373790254475088008876493381621374920484743398846048258876995052992471878870247658413770537546649610638479451669337714461653614708509015352699431520246659698066492235437825491929840639826003683314059597316443362459654270275955303473119218296106540968771941034047382652332648539717636466998227764673984024654181518924601132861004647422459443618304638727924893838184964884994576202538599475788556744250628894066801667250336197861166529515723175890403556056941349036930268196510443598191654698366153019470101755961186958375130924974721664858874513036803717649530927021980150998900258695459595300108401719216943309695368107753231544890573254288639285350638418768993662090160456338255051966048739097725244274729614785290636034624955708631664198035081248139019981507382303439899507432702542714620550751924084182334527305382358563464944124249577739131158338174363221869205283021327707664461484111829617457554783497406424299973242502637439840858117560569478915695240906404132449956931262756284150099463197728298948996345110080758730478179464536025109205231018735666833643581194786120283390600737204716996593190320527625509365464267577793887711215815269249915009913654380467319196272757458584135492141659184788321272283107733508695545219411105395919664662651827566649542458273144666583883394473590219084939420390788528079343531224221728873954314471891415752288538911826737339125162333251561362427983083193314395428205435911632656918675056834815217217552491569639146596826401098763561960733179808988277716697849194010107381964399797188891818234277099210716698670901323443582651683799495592421262112278943563393988857567458751471128441781866058256818981444558685647652802335484877821291884468833651443510564125245886585368144234731702054600648661811761572459987764136346033578873625959630598970968727802437434794265864103871112421416918035049449850931400655732797140065725991831734605266737898241148305608957366443672746726531750345653904890717190574023127526238761250040118526990166584689049474219185084910227825498409414487159063087187438888648694179819049964057640127438475965847787134432722932995669121087855652260522843584190839182009028796335946756971247079940615136521095895144966949813888604492165738955027350540826590619660487885806503505166175849170227993418974134319896436988412420953888789877219930613285933365597558163931071614331058205916569185953665791223289226462751717587006303322877921382780377142459334164160715831588522552054761927772603726106131280123146115786973377208425771528265581085936523767403289416454922901037742796531193987446456848252931520949103979503905749763911501319601093022079742366406627738112852935093123257024899837387345381345386618989285408703018071517795748429411324743388946935665119340520206907307811003823442921907828293159917069208988532030830774666306692092036959426938910081027278743729816861348942130804385557472192383759298747584799470740928719790973027392961780952537216404298852026011376509050922827519509539225914335577420671976851391250810163817511712090603342263191822023120092396812470441471561097745152145817014431421284821504340328663936014573939571668716819124254874144402197124016750363555861837054726409397916770510746377718979068477528794256730493417306984762911499529520044425879918911951501266079542509636909842994562521077495640712665376890003244424082204528836083216535395501196003101673770099144933673672929034871570874080940783148405986947569916044019626335670868791764904465176688457770232435061418492434537005575972827565005399596343239518683927092267022801488499681945154832406525234451701845821951175446404084867052163820770215978128996614794386969686051399519863442907827735069525104505594810898473264024289744926095744613296552801973673478452090844664927853346408783500183563741961535667224696247363367202278820078622202867384240319295980993269959132018203665001331293985245942773655115726751914378140773462172449314154046369346191833785408562330360444870745061961509473809447138934386478500986647393260189042818843440928585103026372550546883198163205527395232667155346297192588435548016792954845652155054983297186118678146851225379029985820115410850627980486450310361025800975873558407254097954727724826164078714490590705263305946569012102115305423104551960508140145256535843732437755953401024278804662648968641957132613413989637400829520038280518929465828556398427170934854319972291816365025996138524710047334095123706249135401194021319440117411404504351518356021072828426624677904252979968295574958028353123893796638634053277708032146816771163148958756392428614427945998657348644534142914639315074260284660894303932436867316565017923623630844703186726778759247267291812483468637228499297439576219972477616030050387467986030446758979215562918404543398288302877284686501538888712049272834899871823064330318409850556190342482423570295127449544122315690360667277006161434023067331655299850768472629062005784238782574586045804720956486744030870391954749810356598018536335473333042736226892668465654130905034156667152535242619426431772791939403900652940484847061702277615423619235164522924228130471367050283943859385062235996717286283227030370028295137062389863013358052854382134591728858992460599444478267759486391488462107705324628599904311786367316641610624105224645020376310595167540464990682497593476681398522648824461074254121150080449643973312118388413396736583644489476941110002598448908534415181204306955583298135568205858188694587192597408891368741636697511658503851693319733133431520529273558948894850060202567129453796512584917978961356393274209505124724357375658383761452491389690260437301578848618028581792972789110348168202557284842917233999438451124004905619864754233210834538330102971658502828118919449332970365747044756749895743887755236260224206986251805258238837614453111646359427526502088925968824593507471534544566647199012009427234840402349128570521780167320640158416252465840604715226753932072827596652060920086433511699375771292938205338424453170697731903911484533806707151468232905136619723306518221752190797073569775080808549656089350362762120959320506488040099257945667929922404885958439647674571626430840963024890047156618201140531262076168559868588279784236076521040575981303964645762193449486529566527487774118221210327439838667212231622625423798716748170485467948249649849897273672783415332955149278355662936408507057832476146593393445380198798728799146319843937409857224203537786848763386002638573574050712245713144311922341865783153662522001343258591053528073664123473174815211604835675224265386615638291572750410784870791092757011719545614608903331639823352530229131145102336213900664143301055877569119396909358093908575834184027555415584086290518875431551217324935333820911584773437110106317038664634308570936570469751754196441667847819887050523699844201441280987614251673971153778027516062268333765778085839492670985813652378793093518190305779863650783556094170090532246785435848276079822846430526447124289494975169272007826593847964606301641246774456090312610719482936250500783399642653198728625266371735625736873874557087196916639543214097541883846288124351898420198454672142488378917085819589745206012369433577784802888415764018118687048031972172632146793958662797627949577664079097492583253725783339942927171510326579788133320420819536763944575665254089682912839719280573507020897075917072657746754185604216048973691204075406283168500422284135039243233928178542590930707757702126997267492185093242119077804120537233504149821799719702156510353908120625059890739929803295451105909364771573117386621168850565204078910281970845163061905861442033356723289976685064545654517796480143608171078604752194363031897379978793684359957380653810193483054368850846387636244017847260591875785855162994303344057004475331707402311518847003506883864811949916925041859204592213896939565584029063418422751479917888009031043466518398397842526796626207131237137276090214363243076848750042389571344872423218043790906818432946211376477752952482316859064133384718711107457562155958492585739453556602691547129944003725388367108403989563622512357487812171523689494523875564371173430268941854947529822222322753341863765980141035614042069633930965569757599176590059286747079733577031283857637836032344041681948846333568622574179895741995615241847231667725241896842355478618106696460076145152283750034803353612650277255515098159497853456563271837134158664567668639833371810076779616388474633419052795437928136613353272064251906162969167563177498876512124905992566509082845971900454823117590874401539298886687439472045666028176661361584521755473096201284012129948719463259530449929557606992024497946865587527530801853153335975471014702528678763226549332745956110521180222642251541291711665080578205118516721361811124596877224736564159924237385424994951967580417084540338259509641850693153930885497832822178621183200505880516444446650685698604872350815705702656003651803369619009776916269644371250569153130868398491147176611207895633950418496874531223528787274826542320206576061700030400977386025309431471972178356916510271156684369937671186465991894003329584850058522736584591086480454533160188782114758005904839361534750514891290513944762771317075254024152591337534380545094670731394451424346103740271441766700817319112395461069038984180125043825542864417562476083068884454954708413661651060835218286924627505552754443634556677993772272405069390664246100953804472677460482911558782267955585611865983776396126288355619932107251579048518036284264742489715261329523514057174453362764929824442301155295760745427869156437264953154080079383496361747420670828037931615998723136889382599443495769669568849672826895578234914458435330544318262717595107586193981004670025324129952516406393433603048901312778041923783423629908771805170544103923727323999314021014407235049132289877434753036909206436543309708120719253673511814951747807385017961841682351587361832595065251437027015743466168449308765550778449022896589887196054142494393907021362987861858511020720152359847771463536621781733393670048139056391064208084041908124323925420503117548155799443838337307723212968006906157785847675382460497120645426790703320448954085857390790352273394391611549229303450080031178318161920200318309326004627875156158961947610671725495293583628457421711439798664923261519905885907498333887134278367117754079558068032416317241049429665965806806146855149981696501521933731169262203814817473661312926759395161153626814010830718213779769853774641949433491798044734970516563152027462669349027086867592858493521704468132298677737640952034660236343235495191203022880005198788923358974553137553255197623129439569274526018671823288255976911334481195136070088915654043980656843433701817858720404791247036183775708878192203064299504201069089574553728783160150101530998799830878529220636858169375596819468579860855850394717876737188118992380599316605456298071353311853610888776888478878497189824920083952229785644196685241663288273287066747631559887677896834978013802225270219455370016943521322396559758995849838515593081841321566987877512517547483380130084484797659669659614751601515847684609036945311271796817952323480697264630018382617492713021077591138523201591895080625880566398213941213415271186086840708984338240452153746623293915517162539817769539680689668175346681037257985865552503224751253441976148278952954117886481760063121315189581808620811572731722433053756361613298594781031256933286838930179494383147956400434224536700006055530538119437995733443362361305951829232916692275440553804207302216638121304791159115020221220768031717899946457776445493676172384923810907207167636754770838196595232638775993354450410587586336006371850618681600078403704030275243810264087305002108600363844746026713010958716795822600452095924246208804487939450722448576930303239481647443000605843658413378960027486825312384507865028318566847902027146379148459346994654697182784902128754056477160909793260928364921462094458148148976731502299531728177047974326033968620406139985179541803382271255375171661349250958374848321423390011641602840526127780773683991452425210127651590912088433045051093608877618899232818406228710108657398929970228473652665071680700916918831311055990571211464609580152235153335190463291624851215513752979538561060434902005522053212879583411731993086575593353649070535024608049942361328488482762703629069005937795496889138135427975687324079012829303172866823493697416933541248593548496417346658732944372674022042475315319158676192739353552297942641726868394715938282440747716484866355943517353560721823090425227574088666196560278658282964835182689031952965772211951500666757594065870430488238303221872812583900083734199047916851212756735368087685543631958056616949151813737344769238122075040896313673680923435392993602139537439156773878074924278928197113096714801677799241430942353622900867883521267249025443336676300167210649880558495641627135010311097605871661873157897203455607202488252963026042959548547893845539788465946413841230961201259174418354342706800095309431711328100569634037444770278540687579914846340859934700323454147673868389329743160345305390930746072147701681394047423803455323077788920602698581101440851741385318970406775173536427713663210886469814789041949881012419390830141659423265352558277186564362386661539760435138156825368436756887279199582451616091095183944404599754073619718001399053684002505853045439822522854950940138776557388776271021283629546276457082411109961231901331736809127596391487621494570356028980327818467818084036488212902667209929037811934438046280965907246855058660688516533892659406653356068280027407821322531024262421671376927025400950100358811329521222510447638464485599016113231364063507973283899867915506083427031486431680422432645777182346648892817285154970336209274296652990243939462559695769598479170236581289202578813567165158121421820110629982024303408250544907032605165449940204059134670480403730493825049990630039951930467644643516016006728132811532706401877598977232843612280593133924758797816106364595767350450479438371984057823961086573471903569733719231519189003606841129548745816069713292614129891794801590589368171936001798171411536176765075851694488871658994602976972165109459687816999200844765794609998814345990453094221208478492507419118549446103082016052771095824625059083042565452321484758569457049850285038483826507087327890756128334339195963566247014743381959402308099646862112761776774528033781835805203860066895377237401711014035746693059034162798206610384723358525613538817398377382801217106285715643321500069284254205361359264124610540386109890706792364943271782337911592428602314083407744396443977598183698186136077413678330101908979062575048949806408865955626259450277354877260325096563358217429039741419003110160955549865381305176927070642946002700841176139706476134267586215310666987543602508514972486527151977707618303975763525296374478347698038320982097544008156148138845694932402491813273163002057046046284515042489586409253279481124240358783029816530221176805945361644922898444820973810574167616267230150134016385196230708171095690875331210567506568255292373648595136282212861496121829701128535725557040090472702924277050748450065540032634938809369319608706708084193699723148762643370814425191887260449859921133495299046632119576862589320836121668781581452401989286175047927733278648865687176336712679774900709630717382280647992289906249929855430796876230245949938250207900173167710497821646013371473338656999323843774904538416305173371367756539565723186447699719755140953068799781736017535945287641502860563075271710409394232405622272724034936196696348833863134320851023256601743532037343037714486361121773654746657830855178434879348254547959642501414962364748028165022686822555663223148725176440568238493312797389220768007156442620002633578674263257420414935526795981165371461819173716440198143850835284956913997517554197226944270896502666014849236229612714349313625469592311560161767459134861504229467802911826024304255540821937365815849503431885359592603911110047396254191804777800642324624081281161594870085730419010503322256050189079634935619240746838850786879788539051257181041387863720356348658068998979861983675298844505963789240356751940001252659768692800928438440047892602709819537375176687352295286510066697215548173872619319165895238479650899594354253654274392850712048667558927235311391292676273927412121183662229317008932143662178074397474941188816415662663657348124342978138703085996197693981929332192564833683826722601831737747514271862900738272491218220299265202730436513970836039562938785010773200379933742453576172687034738948143154204515651744471574091476786181022694148080347147374913025825100880887194638426625202597513096292580914776017269424404590602523883910576860657164449979686183387546396501226148428395795872495653650606550991799199548581773009644504691211628344215303025717156931107088750487505234161749817197618155624739689068372919249444800441917160535619242175890974661767761997816842599269331083316843303559881830303452239016886493169311349308357510177699517729305608768650114627778385509260627263492062918428090902419185063361515581955438837195989042247314015698366091693799232645175295859470693409967648848108542387729665553966704939994621704516193696405287003002184321809448363255251065300349282083207808175207768823591658737411862124130177832125483377846721307926438022948979935593986026990380986930565152380993993497036102693526510560268371336517379277941677726514009982377775226616521485635045917545657346503783002281235570346892028541304486364435618119419424706483500919465813828214110755425668347436194800503978467846129185155558855740370987669616775508445499534945174839708879017435685179047908211719038603616520487666841242803390547200163760969296891073865363809598737796870642129621360680899911727312002518881675064812674004534951416844488558210074224416307684962947760308762009390435180580276169011064642367357952356531043345604399140198360875949368524062974350758689433442234572439072628238217057822460274430618134501255415223056598995907827270511503211594873919290426942339320267749325822792495153878351854293701801898707390214175305717588466885018621677512841705876984208014859978360801639744033260749818460498661626755091393218440891666087386315266099198013400688920934002949094263553828881245795918351587075157362964453010978477202418440508904096509260375298734006903783089813330928484119772161944292047460064718196938910413105632073599887997778870136096919992288410580396656303269086472872358212568479919996028817455396385573179546386317551024354128844185178019578759696723540827888019239461390723695388161687271583810269987550956853381006035218452976176393811703448103887268797621908842095595173600881296038322585623455051741238212298634533835322363682736581495821737597835809092643108485468993229741256603131327693780777231433847258685384557360832079338162991664539365757031892549095134746476500963741270871845412229708953227534542387096094065040221423798729424789359615648383062459160420424222069187254349383993892677998384947000627590189761626984921589692760349123745138942103189264025249745601031934309112687371851548151157344741741035354337623901364395753102852647009810438863423500905091214884940071843232636684275800270217725794021689119223106727540773484660471981724212806775860103736210998371044013991346315637993204841719627504535085330146468722096701536421838395836238120064969670989746319145360787815665536674256266491921215841722850442714618431090631268116799997576902303482038118591656121101001018036308652684578606062680695303262989031570099317646271755335150930292370907256215207918509705983918969266297593612498042368054834966135351934597174029002054142066498280800264517571295564052173858704684250176129450608389420896149827045690786931239066849358685193323782908486273259686716158394138905851493208651581072595834077127774731273970623964484579974342725789594548733794042507928200677806052262687532023580242442573807298519271289238869001706305507493531280509558067026289982958532778841700028600690071771642753057038854231580812171236833426501535479825467034719787009193882532348101470917247767381174929968639172407796925966198369971702626115860668252208345394166222499446618156142968648605388197944553430062928288296389055619868195037436613975243150055434021517167031230879496688942060795461456706032182467546204010476824346074236870081030449984102460903198265545971367164159314485443473268745861335627498609094567395459565662201277690671009508167931250309678116518206990995883547216519234437760014607029743696873866860443135160509724874406959559869969887297563566241826916931240333916140217456069440507063930924696000335440045590418451276865411711071097327349560051324319098140571011070619871055596849207943265675847002361323553674238736887168869009620960711355379166592519755741664757583793446898040118688449361628030704186678845777958776771841561909763606496607301300888223038541778601975492744408619944885127124111099255146906320979401618593650488908295039152791179184999365386926105944143679139647792005106612302385793024457185834442941905591083071219072709486010696019715229661401187764176945810745512963274603768924073250444728084270346357324861448492018050448628253063650742998707324288374813718567345928616522850477960111350873278444074284145537695478501857779964468032334877013495397123780173103544598484387567591727798107855994583437657786014673972059258886829054296194214915572881627802750634633654849759466321304150021746114955214586107029229272836134860532055783589417396380148180026036901846547602924488145440368213784711370917901606253672898158278738595800970434373211938975398324721210774982968629622183342305417553975309907241222158006629012430744715197624085200632688214884929835058389688707772586547501478173821422497170317926019103340140922241216440837734784680239743514372135061429787328503294967195209053441119524338147552102195035467979912261426709312278235089879269334457807256573535481296232651791818383572666837759769837567846669225651748928253844163916158330859577841562040027360310291028309054505540876410254622137092618467274044281016615247590911149601649630329522963563531469450566465344392571338707043013153356084714420864850835057876414839038555387347721398119404893451767830085199741797849787671392701784396024141930208429324290579715979734477894133840005603360337289211113502165165272687647347228420897004766164291647229493698177109078924171494031272961641909910747404502770725854952381162501938967323618177222513259922160729496983922407535087178032364750355349002387491531758308789286674786865121234842348955064625144865620634324804073592562688601745027034681880676519547348663192787128740683086378846867456549383642942518943175232391580554849224494387930180362396843069022116109486575333537986127951830382289978589135791825688607482328257396367602533793098605553261290676259753615380477936334266941291520996253014371318770242319037829920545412632658353765304339187133807012399143246425426468702323392700002079005157531400665636179107017789892190850584907544569862437348726155523681968179908382324848139466421820763953429219355802431950425772252695181698071304428058558980203275488608609824706262842629343464948655186277279360726246135542653837062984131473961635789632205282329702275886834049294584442831573893615810703913078465286503330814297292270623973021903463499985327754048408636827294481419748034770480963106899947138435352171802101694062710030702636253626943413365114868857659389348659646371161317471292478838604833976288197991557488708785699890810959167832519487879794281875421997641110803436463842885963292407394000519675736160922317326906576757905175798746152594742934773356664598367395037606952308583982586543020987061315080273287488261102716356888898885585897558306127073094130558412678677226574210812252531531542877196567248802279839141556117596097145873421317875308724994166027263121662663656903750141972584700501684988075682851447000883740206628020112493099065386887676525409801308358099293036683059281999378848752814626988466523589278913003790269001790915158146065700631716447578589973251839647085912234048506820948840015411531479210841412436981868686184911790262913153506057239497381048096561681198152628222120014068505908180038445847572503052165281935753892918315601162455606388299711894191151705747330962290218992897502636526440741149078765260867371890968833206375936943647084744161729143849505033259917439045672894050593462885165517740593664990430293596514624598184080270444012314062180526881461671628367470523148377246693625138685319608287548309717290072475796440245898346074851857671461746561650057031707105473457936031224925465982355841330005282942053401502679504202789376737909478080776529713817293674320262392431559039822641096606227123010810893279866707768946940206299027596439788491470068788528235219298164436575927846800546839294381605516748720294631143713030504005341680268344819565155183098120340917006217355518039827923512573740161741503023462780262301408252110118785526791099003891841902884890228748951044522401657312309857009295661490002704920082880542412480668128679075173512338883625382662918010029292032041864345115797897290012614852558556435672541561798182193979649971407691322865030118506039806943155951272059652453149837995291128281652854412113641273411577179573190959325280311622554710479433258087850386703261799279722377233851267213729413090225610737121702413714597327189110730786258839338748143117548438158863188196596146133698828129796333324076202567258417703963911436975027135328007426869423665052359623864672357742180356388944429129251075669358668716337983762203407937057212788931490997979845907281845071838503022628719921411821258085393192706032903927284476610537896648682440000313685309409816960869258851449013677352113794890730496157484600931315339007763994280204388528738717159390502148503731167355379886894247960094822933801560296589531200824384514855837677254413533075989504973617299392423230747936130729711202040638969737926574972081227310518128384090604724014637047687033878217066534729789642632427266347475282806787591844263844002424818448518516066502790920430631251255298996659135399798063031760914550512094231756907702990828400882557084619970530447218807288920979084188971006122299530948994306354683504296583128428063395227814990912730452951712644972731137718390451547988619846811417235384521586049970446904496799056111682562705910283754345478788790491514906992100661202210685082364065457224649423622726572344655228949646290127243038688899420295250824041896257080779270263497172767151382801667852483463219051040556757609377763448012596512226254056205043629645494425654579677777658951518942085187796298840496915898927983176444623111194754957744543757487936349099409830373978034441673572206267544036707840323558592762214986057872937248214781524115144807796722223759320034416909922224331633733071625051461890013638063107108589271189648544329776971562808082934088012049249815008320490193502689881218491003917532655162314959060655740778426768644518976895131816625134093334742049635237954984590293546359439552995336863917503034995024455835036323660663120483454456339845131118119940408298559308357525568871831130727405123230766198330351497064317843284101281595572572182665725688290921488616226132431786167350873522272477695046937919381101871878378820209813968244788545314692358993845618318142993922042634373092311177904003227092349761035165187854376943196183284175024342073177024105778743032815183927152684278868862014836621477684188374414778240262202050642923076338455537252640753528053722621698088420971607080361194276789347898738717900565654080221759204041910922116276892887900153775070300295772428453356846458263687456309029673535231000319079544060641326711471070819597871985160665472577997821349321539902156275674873454244318718729983559203214616692253778546546490388944192683450656872176267365585330196848914649483607654564288525746604026704728077764936807470727795541240816534283799082290015896150822905409486913451968031027546956081540983551706193416016041821715418317155896898424032285873188820828404193319282312170260824461917346124494912735547979645785934965861796413041464520327576209826587165812831936845125299964201486501875779262345630483867048699679165661003304148780172930209609144504519530275871722431712193293828725999543201646676339949988485727386549870927738429967380162519918347365211016834628541117350880353158364810688617656768729168102779704520056688001217857139402419769777406322562578159852161945682149185701386050530647024604757207126151076713473442455346278948549573043539937623572479290979180466264029083053665985302613291887197754803001618120184073943883516535153399113270897707499978394887538870924137947287747775911535030530856108927337698456828741879760915813270807247852443700753900721123621770012641886547485830522328957599146625213941149732947548862390254416782722259013159031160102995051314585726722914744729855293215738279262572888119690657883456974394164704587455611052264172250435493196980566716147559318651258619361237821540346474342400002662046975753318000888908660889344897577633535368764508112088128388716691520979537247221720969122404882226446280133669345656177186734034294390839606466379176629453733476330611388442976104406899614216487651653142922707060130366824883937401790480808259149826426198955460300874672000683007662614326919070769043434049505194796736702410451474804467643560591120104883307181760501222646057551746939540796660338906509923490690252480248020807511183182011999440403346192175965785547379375191450850221847643340728237415448835388001447595525735568171419954597264289187886784816337027646377904348641698421178123497567868690712609147543103944967464511281446042636639634193779441983794648350332483560295998240153579914598023281545518231270416262810550690712593042829828127588346989257038833071137097429448247090608617861292284738295132855146601883017598131149303664211722049117893072282973193022971633382687802060031901239650478432298583811385964063049503541692585110665688459886212610525195253638295155670180087519759694585106728325892815859919910828547657981040184606972373879704127463716688591906956636477684535509006489254719931056690852206311774395754947103287879131852955398313987178364774349625091153175206943610646454214726995918860928732146876662543345529355068253385760557467565116468661596927594299213069889406419295485255183436373438724166925490495191101948689942618703233293503527558559252245435369993590156415690385004893979735530175574772024978046671658434327621812069761637518473911761906415761031601992254802413850298098711549802693483072460092776913287191199219610368317464230158106604365386374237779942074620357767330432274737560812726505948564503230172861948794665031620894170916406471279342863408934442416778209027256066687838022703834209775090434207492781759937109967077377283691010210780216566811966142024403512636441720998167310625988791297659649501470045663107723888739221880876069955274113485674926893684453508382177348060231627928832460717665918382234879901881974487030229057386589976572205518616795016922823307176942121255306191328985983198254101598516074666275999918622106716817926772034371523633767338337709325406151139762159404950023034801921068421564037140199705386838516381213225749458377097146276504922893590733210452736209422600436954844693913786874526427052962561515435664959227328995186522956804033990631189717633712309404156675983818333110796494389673359763939450903422657897783372050701214230198576051512180930161491383093458428901008284541891119237311905616010686597434423503769643341174107455794087721623243031700101821159371403624170020974828624684108571577829289942603071104426891943963177043612717747841848506741776048002867037622214632500559006015249187964523713417887567260209925503092435926533011930029325779378029305579990196035817842822942523723763098777094254917808766850935536842812404878566748296249496576508686342474766830076702554632187400798394783314154992570791441931896453204319699978770934762558481437223102517828145240558668211124369442248502049687417351222337167420991074279019067835938906038352845196273472283571281776264984465500603956977714527772554527602276230337949004986130536068650871627964692605681836241512638130672928432533818035334307947534153321498273506665702567908320204652219603289049908459914668901649622530665700867624501699147055392147341752324332598897847950063507036488894001708238489920009274236628956763612876932974230136035743915630708798652551184677925558911361036153900857627227027293089453050904338084078796134469982664196834970161103506580061010527675936036169051897176862452654875839149572754547352679534651647164773191758443613104124456847888850079710768511005657775597760633490656743444556836436334141140964242760447932227295306889996849499150917057788950784081157421849584506175978675517662566406632675708038853925946424233892394656207984652369006128486212442755637722963774209076727382718173750193372835807052416983563907662303689159832831865114749897109978568908043745630234217630844298539960903395046465532696373278321307927863394889468768938105269182991333950471731179367709794772180860931141775803086486814964880045887901504975926586822546810362927122855969127607012598073369590431144175338551807829110040379202460428158572814329578255569457737199306504815307433655541707568037873217509463756834975039593850036571668103492677396467410028266306808986360072336444857549404537220257232297965555524306891951271321763403402996756113148037510659608973743700524702654688228424832853317872036111205297675511301851786826028581145024328027760699908097547820828316911467509386907422319562693695669938746401420948840795031073062580887928617397486665052661556357376799392805419538312334457087713444773265609908217535867057522850376128215775725668374140687834216333974587565895921673373726709118289498974016234815869756256027861964193555719099438180776370431577494421688837139988883197973751521783781213114480184330961113481004824705903427773065928433719961606564592795959044239384995656461830487631736319953828757590344156015166438808601122952998383286648517014545736411547274017459322920692207213664772085375186392833432848720108176160966292840030853998525366597779628338729200667953223185973657332411634256635261887610592899344220328486108601670809094581492032717878744510273169401595287426032661566509023654853158485827754651105333113801042152873964829781878500401993357093713268057214787727602354322230545831457884496290240488154566650601941556069115449122910822924647274171597339230114503072974167673385550351142685920446427412525856173922239390319120010679051444722979557241702007487703495342281403713048997071949163903569977502341933134176546242405292130231827883248842895100264618392291868262026401660819338624214629319330490905624939070076559648178237218617180785639048686783497383254908846148643232967062882240909540811356087026831987157844782472683598828210396496560803232492481623581165465610104539599186637020962510463152659902012660895987475106175567089780762867036038471501474954331716770607845652489010827493057624338656896950297336912316332742637591741879811397265423198016793443077637032602311037956595478184524150265903450909268259323397598598931003856586697696051502352376244157638475946778241127597114632716218721336163126589717724648580008758609217503092217960981214547041987661745794518527799195172368938630614096631539689945211073102106248052649557330022938175320539435078606788680894328327923371361278882568978056876536004694901901776941697698962937066294340298785781754212745263974752054163128054870035210063722739985720525144040832541584525594610633206975877640367767269113583333869048126711936137121724953953968462747237178968635609731964210826603379420033423785758114991474005299835879988399358549115831329776574358142280591413399359698695372424344155838450637886848866175002107547906294749982055934911215939796761191847918331045568616113423769517903008073059127326198038497243020885115704536369026784292291378808086508341217582684065528420322566251492795344574117770203943062556597636005243510548417472048812870531780203072103779188606275422258791904346881890366718338530568783449224241459845502802686258322300642159412573938573111577354417885616849965867180975587713039517496516734825702505987046319872603693696113037405090415526220929489854803265511052643296075453855761977898874517227091524999542077832424991684672114276470979734371922905733563428158027958079266198647741515280204152635013212988380376015340369002993527578398713582409430474958273573961113866984295178879753904095361658613921709744198433046162898574612193289527116337671129041250690324867790062939010964162415286949096360097491852079067528480449441115232910135224011506087134249611330204674251779879752198833278458189475947033760023812905582514599204139587382920762141996497763541598734347327189516407072719351555198657209381721721885524512183617644537299707490310640960432759190367138579354567691964827738533877743082095720086350449703779542817420047147116869763408487106637880438974492593955908344476765996241887479180256528758670998805569207884522882801294096872820232059546339925359747293043314005871007447286437012168873375596698851577528042094062064931749545673382801049554591544046147679847778475271342947598977847126983536532380989758406303082474715985625516993855927853096347021230303349142575182121143997403490186687404435406968022756149111958066996265067192431228283503976215312913738768500083377103827820382714471582370350005941116732832253197770156452699761742077294143930967893393371873466004951922054285167419801641752275359116302303894219580060084776084592245218763400947125926379354349990323793716030260267542905905607613405483559245595774846360802090700412341823319166439991096496028284318756754163515425223847014113577352069694663986228158763586818726324764878229779073628972550953443537059891298099287069283490182068108608998642708116266133729309293072945476462126547508016294343847100894803428084607916821711582714413398501616743243453893600022486101248233243619194540149115109198701665907769195192900491740368920364565492960467747750546713101319593877432597706271922144942999672793249268557461545848705642612193094521527228991761022332086225752336847203951957456289045617103102059056229617119994112405033310333916906017203132893458405189096087840720925183062408390920988537796074118356288743720449665494731693371929222927531379837089259799681642194291742896180506054123458425137929224845697027756252873268744984255050377830649894646946635386454184494059138531609373605553005879835291078509739149880730313268858968760152275328110674243355950336971652168894491660408632898111546735540569481274051166620887275474627048526638569847674285602642227190027068186609653220314841275222811594313904483881441371656692370905030225168564700578367371451414242863731255043238371960354269010460224729179668344869017303219914347635206375825280035076845505767094937759362912499902658768722056093307768922140722773884445696769422542236608714519682453027307160270818255041635991446197767592969626960550615731992592979925361560388607755792441262928141890218852339571997971636581127029593225837840208251769720245232797747609014152757110631701784151461888976656141135438938450801749517884892505014728780661060646661576290493883775590953585887488997589758959121100805914561803031471642053389168981325018970919539591616823879403530260272383727353345715952351549674654569329861923412368553097544591990822567429940452633899532493772479712470452133407307119073321176040526729568286298910363550308890487592571734943455739149670485665259916725648395471497914219472083000293091340611116053660383299303723853795101668528416359343572303699756846891331601034083511485724236024710379470203374669529655223457503548747090045873061183424565821785295071135212578135545516936948532679279750715531592591191160248008070804908674902092616402030171256242050685756753427613765526709823836811515996535576600235974767596199674028940505566503420039005966076593416802261097716905046971774896621665100037920644757613208864706996451939017581767732444747078466095016168798258573982580445569630753827706774512772402324332348087138144839246473967877376396724117283984236675202124291914076556993107272830389773622308039786129705552031713658558120406325636227396175371661428425109034667489525682934906475593940549346215460945494309120752935372420216909861577737462677048457291280646172667577155019568618522093896170035471864419114394919402987861485238285781491967826130327100302293699220636720730826280138453396245200630533289694967665626495184168258393574692644906072017750465987380072883352750083671567595960667074382543808463147583722908774108814933095267979683336206735136115558325417483269671356568562572293190118131540978028302541849014829075508414182777333206653828398146335351165620157828656861495789188010807786580416861087289220563007633838252794633832608951688669861985681727105934738474091922187273595784649022714711164495222294199624350735106783089317079911096996322815293380468685077338722030031999105095003095765403742003102913699972300256599475623927940212544604175328243158970078766260187167638382104993692307766811779456894848991774701127271643120808343608359009364279446771760336617498014663308438548057800102198602451594688976284680129764466112416398882586103934742293460679305551320488858871927066447241921525629141807732301413031377616653515620500214080883305874783858641819545804053625560695391119005443986372584404229982003343658209349423541405977787196864766176103431149380394365929280675495333360499942182630609840245920467221562957301045214480920529395802990416436885981842570781675018661674105167027292590753743034766877297980470638097610854114335382764010945831668586083566854927262708361272153505249128974350973726001377386102571381861659689464958020387820025579182819548199044153825761317687627345126464479650411850729805949875848110148138406272876455718213574974303025098033816186307022477490259491116445249397921559114174933740792738043660054127665437379262334232034009342064682639983244955442235202045534861814062086406675506990908297290472563945076655957875233855532184060015937055281550347771121539736830906661511280650147133236907893772218734253519599309951647050535759450533817582710735900749884734899743211712367122732575329819466292785403352483392682893953244903040802225921851628421553660644030913257345614936051257631738790757193153454916991422775734607641217146309233931982402545178287439760612144445322446560286634827676715204305351204263610706204511131917170624741057882547741589606259730610272969478642063744257447515118147759926119164574187488752249439488857676658962846944680192224408712369839948755652968754967652025003329563732882231735731987977691795937540057657971449788339107357810796323086748540132463995167392221014765006276418734386235454292871221567708170900311121777753432532310281215189698071253844934422405350765170865869365673923767941132020384480222244848879111509413156165924558486008163087188104838530778002423315738782817394080841445432028095780276265173204947493673310748313029950720480431811446939298903266457835598306700737268912016299403853088955492841234087408664659217986884350604462478527300368876224225516784860794131067652319335799833360356343708807299625201012009317527748864205264144236872986191951705223075659002358456842953166999297498839601564078903899016017767447231644755500653048155452903541094640878342257414467740721183674773787720768059040666293569352750427615291609235396156548949165108099989255800576601663135170271607064980803887231193002183496353648790250413347627220622075819527292722638716261752793060526004159198399761219502006821421708168710274353052226183004691805526545221819921495715468250480917967673034837531561864063089410809855275268437753581401785189811828548896849661709780927383297712323809529451978920940321894638084456687244703222248177653203397761281109190123305669326205671679035199100453279995720939363759143716568238684551930188633791656418188662244157773773000295268970861874609437115592508857463412464526768356163525595984819298846649582872586330480995017412466071748831372594656905540680775485433173718092115669389314981317590235649010755229746469433401452498410806390035893813428440685637320043004526298762477167617481522145790350951197859179346733695944579767396734228122551645459562701560646146005906993744376365429995164021657553967416065925696205555017876545571988756924547815306378064160758637085107177651105042061780001258989766327034776635875138700562315126555527166156817661192456499021261329401512557557650238749527973299429007606392722548045009600616485550409133632360656240605646168226298810878662902856059452720426532905253389358310103432562395418023725959942676386161748258702620342732356102045384103095767706858936802734011623131928698319198055598906121453413564750908965027912583754575435271822386544846372006442867979721738290336274651317904820774043181002078574531814550995625899086009366978445415178363997504859994401851445666561485263698858665634634006732962894972016184800743482922466906393126730162441573343811807419685830193777544650444599258801156044569270374492618695051385314698281676280706601250931007857442175929076203041370718844222752909171070948711046469893789960906366018325808624230386213128092902684800547447001605202073602926142854879449490914936136434478943025439412015184390262511604369974689487354290265133672573949726151252597230939098370977358297495765025850666590879835259006795458295674783245747331877168500632141191624832296978852396808169852400068587957384992700183598658205732656949796009432959105290136602012572766781241758608426543251399264458083671824546640036079240786913855196333213532905380286567608271383088125021229576903625648716963891557300529117641855574197006663412418561881132826357669689084829476499529091074542004604571394412800084891847974274843932823341157262286024052640908888702663544776560269213823183613570664459534792047497580828728028189531540993932104833528202526469707558231053446232315746090079433644244678308117586974934701100627759040137666458803123483520232743384175316206638547820732441015997565045339869856494351757271665299343735826570374161678689010330679610527515727384953329823295875143019147425221685903661020395169768737128184796281938126974786466079149945868026877851055604302482363189979805811724680977498756406024886021335830802206242948892911817470843118071046785879215177067430334328564898465548891269044995604151761408184485639384193882611488732917978689992783183155754638266360789688005658813695463391366288178571122308246860511956589845778933781980841537249802718608632517394145029258256615415456159734862896545461378911405296139644253072497849055192376761447159329432320248571304454692441937609673761236912311433359441386269843120765689897801114724873015694843679053277284593484975565766977424114507569064948256415545165869651512232062837649089235334541922567277062939610028855028404730364005139165050909653566876773632648837770916687291803030660838065607025562508526720916755900490368713150668819687917483367391813234147181948404796253223381083639325094653651724206628411087690917499919975440295657045819852712656425350473395195291219121127075808895379616860334667671699984460700125667569966035390289643809246067272537330660709338973932677298774865382967859005525169671792146724884053934360529764535535842997977941145458490377694173896885700054908800466115914039207627452747951726069598095358860426187461650404510760218589133166177455924588205091279850146871849581747661438350004858513072147027802882908947161921999748968727812501939181789479392842442685382924691193135999457399040851145823591602885763854652442683073858602377956786000647337913650642767691760005826591241156974918137519417668977923043604687958203879400144422352914189314524892682412719614247710277576713471015092993492045149071124264277392997695458106096868535957910040047245323723518101989605518364159351349211600971988506461629795291122590354114742000550769319340256526682265304560699170182917069720574074015615284376010187253239577354950652178623707658512275640481176220888560920790607101913082801324936151731020458029798493933396801075647899929739716192768036167357554952823453474800745339615383140570430045890081136760946212815483302030732011194764615488309320835686787785830080004425251369575538068164329999490398570673829903855766119530946267270912859378649383737921210799450278477784470137544486848940937116221612276220437127878728791924318575917788414528548442057442560422020710067595542539285402529257591503165503849656135427488361715312782603857700349126086484715680060765887197306906106140939337932461864444002353384798032373578518685078407025271797223477501242601466961023103772457265484690626689118305966223096093218738211046421651851349125769788540663899348324689907218793096765522290600498688060442724733036123755049111266351617808711488369880110458455025774990873842573707365580178349566409167027411076014958741551926520548121739257745850082054074262122097833293746554204541953052754012140920152070877803324389668848701810943277842161208815910099500212244919240318213716044311260954638480114778231860747102787566498181568636729772803497117257432906720273124678774561078160021820396451382241558364347302328932938482669231324993900059611646779391146597651294068988877153933252460966845067144807698828625724566388237344007502705145220767022288630398528358751092691327678945102614418964362239757800343539778507218425951512350059387399626812157661852471025397808158766075601688997662311640963995501798347224116648976888413154850324410914709684923898035692427797974752952150797714474297861291828840222749964509464501859352060635308899364339617461819145156690146818350547524139201473214861441634177429065829076049982033817368658578819140773413611461462791146034157990082070250373016029234069190269467659943384417443876887584896582374393370644337252180862800639933448704836511063953553675036810838143087692486526904411590385302584452728311308866353808419959779183264068693162013056931417098232792532061178494271721387544578060056293535711365314388234869692230552988133282705326317684131117616387580970153659845024757585355295557626708835918209670418112177863473784505421912025406375231833757318171985149093215689209284390806109075124100605050930997347740017351698394632683723797883714853356992461559159593509228490147896522764192219497709832128682998742195453226240348582726725376341233742450961858188147482958060782346573371927232256747517887455643062912651135101870366754212905566410528387421585503606600136535994248455284234252564898833480139489290838227345766306585760528886523223885078649921021546291580022015661924096911529677930672945632250333660034052188913257020305120807041930821310953580372062948812691185457782012383725457438543210561292435897057136409400466185541127536517895582726391012113876645066841691449965414130890371671740810812715635097931549800118936317058813400648103955160910683625561605879596412197308017971393857998567344894235091821480026305429534331543951157659319440564079495573816844623920322933751530918257077537576595076650561756607062536907517833492614439751575895651896870362165296135676037120241738645805587073891062313656040578011124785873609445460135144361098466847797298920484499481367597554109816241885860251138089362199607228950112740087528455563310040550328475507647326749970097264779424319729901375985524278108800752253962250839898931100636958429792683412732454631374497182680059300776033522167344690719812375454267256573954885704399581161887006175932802405710860155835417509871123321022845299155678993180516994196107458865334935213128893351567889527484984349537276867609304465138114496990543951394812681615975297199614982752335328128723538953069671467582062147164598366574814674780627312003960694019211030960820531505473252715922709635586724029638364592595739082479360044050808457810707881502059140300437054810966086492815013114637164728804086998343945263859295242533873545423153862448179035842749398598801553519618859785257582536933456482555428487389530624562992477612045431402570475487705373935092618169173110124568185071187884609290396753046575288591379636846220351091284363611156851568136960723492981137620811052579595072875013521616948756365834809349437895935186313844370411649935803055644303738051388735184639012004129920603164966511940485836266645477794143239701117282806376835459704123094903821291239983526784650543462736319155256048805211160342625581015212133463590144264715920500361459258351393813696571307831745334033468942179228054523608476261082318106655886259091973876291009288981233482308843566844707624094712028604242061867855804918350593941193466059065962812970098344354618606497396521308611366048634519524415297020543065502898281794807191911151414645503896266672855952595231493677421818987851445297107257641979946034796915979831386088198669129969727846734481729528391850135807684437416212390700362465993013870581671832426904359422905365204556418406517065018569305154840175336514228723558552943447743845171384443377356241369355134992149708792098844572484576129164667034134502882360399896888364184588391987503928475481648330306164817802540479675843652463572485577178348330505893069307176443202072328953955633824110209655858826034365893122591237708083386048073209197453075639175780054069820282412622142161623156338560851158577757513006610800361211337925355864319422094959556797991326003098004648431170678590715382547293928169545268406302666210640900140096328577548496719313821329927860714545392821854191019808848211637904485510243922350812419218090026171654479981227838611496331436096084848995473520996550535997285645299208355234571339642249503914635862064205123651686663368330391658253411823729927773385061985788408144489526934123471470444153096370823303351147887254598320083938395456300760082832960739126827965474710186786663749217458466684984909614702853503317405766411690992540566662910831548784178931790353330676716980994452352493694603379552899134220692104086745968972851007600890862825568129541580195542219430825639332663066653665863260904478249149766054737456724318555515464007763110775980107625351422173604387772826878769912961905252158683729195966749589877410751499105632413411308108574556751459177305201438750150795598545797987889648882941553964972587855959549950446088194653155282509713782945252359434215022228628121680595755982340207344194352646036476046425497494434614041544117465405990772498422891350768495724544849460662899599694970062493986141673310773855245560133714404068412785102535458923931961600952698014707737547692820053143985630535098791816477991497208774580732585061664138347554451080902853093311886738170261821388505664728201072397659673217393234427011371141090617876364113591782971983998447313019267236319854823387149752675111332289163694921191406397854301659613826512966676909694452854968296119315281535747365054569138628501359837456266521484856968205343640362482152607317088242384354547235180822677090981900995433435206173082927304548535336782957299972271070172136895266557079308731914572109521561864802424456904800446408380859919204818684181967697111721199760105427473512042944382277956987307886723298345871095626207822727375099657479679106334299850785631405317447943580010127187829964643637825948119021001290914625792181475172123889277027438698851942671442854618752211551429582864808129190157517131548565164624052293235521415758399993301954741707134873755839603877804792174094227399640199433113004933677631956418287288031408050372363813493030623719377484281597999060533599687630140649158248428252290548334951927380024411834642918010353426612285357978058561665179684204135268097519656783826512225257669524882746974020396859068410785935690766049786788309336993597632643060816450658159657594241008364505009584527811415035716453035926848789938819451571848374526358989099112946688578535903140392995534894915217111331329119851847558135534289765443004462189327614962015044187120677413174443740809816969412582964341392045474252353396515057898036884241522203369853061666294477069456709158086292697351977927922003765986418229390434453077570158814037409616411289039327502032187003974542545793296706707993154551307910552679755578030915151985524600249586099348011398897833088525645386338402296697530263201238161792152322132710856972048950058336708198491353465546095133016916977841246944740403639566921850095762762955512330820931008871102444778567609252751152131971913239783265394515485299550205164938921161559142326528878477366301824175541997459478703697348632990867352729972210035002945580666634750392438351245447891473181635248610458693417873030630569551913059231916195204114129770010318074260897197785978936284015505280355099269136658671013189812272622669446424569054424860772274015600656757544836266414821870352263298664665078751363437761637150305508769595575463274988461293344957640965499797486162913246870673536428619391531847317977188148249632086871479015093065553613297688211356761268908368905150206532989962662784580109192405620288424988943957931451320266355640061105682926261418157353557671143780108099537817500141820790450815261398428753037622191709651187505186232211992421888790196510417329925325936824001651441181881565242679555587725148129726172309929634153099585183758389237401764760913233543443829736556293256597901991959738171236364470496069414073127044289762430480374269779466562396504097322062416412975723303257128056196804444112250089700463508116736540669686006926744408337032159284656353247789571515528060835752328613097816016728090756689666396087045277469572315032630138492645836856081170533759928642361804830932893637479887357263903847517411759900347151921383606235721460764026386513806251830739276700083908036194029390188018924052045840586890284074491986437398080694123617701881998165166035603366438180870282813162640234539864152024415561058748428502058996023811673340235640902939954136209885255547126770570724634765370138303958543943639398489376645333484505000566505342496745857374140523478620134063746724389444335999977938942797265473314857131070681220782012966785723000969223907523661628347138615664651336357805543634148924607050085663711574245809944470773158360180716604252956196613762627478113279630616325389920109670093893925387966585833873826379073796760871040484709016308568190323311505584937066889341155304217630348630084332014705451388643219700710419456105104042521124744130855643293752156672710258729855469789228630837441932661764336626094352117756864355233332728570372829459156316528096453365245966801213621521921743499896210227597465288327332944788037203286294527925769844218370591833405629811537696337090355861911000122493449034329270466571291430430282574150851406439009618205013867567637978443974364525798445542671011525224855865337233591299003403800408148958186971418098583241972306170712600180940481795463788409413274110479664719149019820980905769144708469859775111361421512294812501032665300142864405815646332134980245133922170577548512083190043485782788864094221291420335210636413745344752515946256158254101216987449944923446574493715242498936915913032182128195754520698393062356460020334408637714045779120253026522441656440909988078184718350099564474818736128918620517890545892856830589474953262880966297008970465974310233138545896337178735080584430759246892598629227688493134958157839110318349306611407986566516301094266568597031922078643569359958671589314923117783931580773701995862674843365267999922552720196992165189145612561350525216765911658999713466768912925150954865833130083069746016094532947630363699163379204562038036638707115565369436127347393073918377024116470259282564725210837857485646945862019535464759969276908625034733076152647374597649912867736266804163896786248007874674505406043604719488413372822522967332222500640384785280323000914318829533365484243566713383464825482970077752036823198188472496622182524738255171677005036743890835262717022750641154591822642641912851918846261045259593294696429894196982751611857810355059148489274733981375148293749272876744619360431642775912267566587308505540030537503928946544031720842458154052490471430462732528927819269860966297331312991652668643959702260623595189745066870483159205756252211638912410732157224494731916753919827618255265431842467933010556929162262968293313110872387222897894120678853746670624762169429649164301711686623575751225219389402894075865213294080078775051186468229847036601555336575895668555154051126612405699081221275839555749119682020475250465172585247464295544269372568450048612364450517959028448105924697327056639784057062228362810856378420059271799278416955022682877559212559646610358201857897710967862565443938730785563927520879798209531407767294589306258499010550444504833547274789106002360648411631343865529414786126395350291532085701894155385566981742807305009738121383996731555361895208961207131328685952428354675328136290377899469568858617271743043224922590519097634182792047957610450220872159319019901379232715404166674203212633955434259055999099800460007827900738642341748659580425865537596961748201965726472126119223494078130755894187252138252108459751745173664993305610187488970464495485181795307691536959578439818251365615927793619678082856536825272373976715213260603715849073360540338895660687267106057985548261362541677077963132735810833625924537027841957338635027165241687874503383624516202255712533012875322813960051873030049272873534371978087193131000921594494409023420719765842256981140011099208250651171233116073252032084829904319336244230297362179742243894388828102330994292674238437632618767472748937262706580692285142116316143518185426220505777223567494501098949309156461377724106832098636352879525324356064276611292667661357216162153297291268667579455507470393970199708589018984812320094479641106402799252313641476637398838876947479386778919117386550307420818901287911370104185468318110479850169452525925564948676866410710294610474142606377377534682906909029644383524364773653483036382340246941899789993405202644252829865440107938706711141581778864532276828301983417928602520246849284888159073916275252879509594802885430642749823617744947676442686567000776962426240919782087314106716270770589058017494830934730798811622459151725548730538372881275276929120848760659649415145879885645455284298408059134115696248083176615796098404177574896950493852178425122737172142890507804202941687092804681557775032407249275063659924670659633488884336125249684543394994111048864920325486551060323628771958134134926846071163498072406234578534608641322562482937599812764231993608402409027745444889093418205615239839698216561963155090035724191337392043037013515423482964119537355803226443414887177573884629006112865153592235143605412853331771157511837085298316870052808553662472583145009784663058365682470946767677212670826329140045186844565180708606813776256886110551196903241531341166528644317542345112151242839483559607848250759233754434779506496770313246259350975719515645348260781267643300019039803437243234155471984781840191078230400222134343164999508489139912626872991117965959370946329531939608929375487516891635298758645334079924038360470385834614365971906976159462251637639658615097424053628413147470062407629632772317684274922096309745456398115872968913595003848209495288841222538210895431480490426762645206368542825322086598711392514527060085134755593543773913859725128747583679152344417913879876354171182456887707070312814734508700273755511342070620887931304074328901533858550526427554440857060651031525020334335587015774881306645214617411134671625065179124253517637369972719348451156372371552820831849223685355722951140710580777797108889030526724618731730005500536331952880389123020345444915470508246962721425714119467516453687968374545915593229972942267717312212084993513065408244020782446363447773550604253801106101944497342565721547212542105422560955407800086103198011094054006953447263471450319719219711885294532550762343232571159223579673238328933304916970415579188924630333270866884291751610188068988555183558076959505051446113632229997666112582266835097686677178761484061046241958433795873911908549272817756804825578961806223499251395236824121979802932136303505698627022883175949983903639453042445365772253861986116531839195200365330597221939218031483864681057930693644468742602743285136037770124736173988762461536905199649864805978077054734324504399482324298641257551018525212424544787390692052552159058898802119275837426908655585526594452779240324593087452868898599742657547058583837717236993524602764071191964331262272625933027275386462995721656316298245999955628397113239567397620551547645543721294673827402273376128240657047005638518790196893058181484885415957079867054814448336207000437768976043485679047041982277471334029813496575610231456048043387116003628966692273289897695936500020581230682395510995998871094892536964042658870545044425790361173061469888707352574848548579823077917255746363557806413894003789341635643879257981203201323732268610172485641020705622732510299315648170965238022599045260577726492826911595030645581524030519634101838297740625847201036321730043523981131689906980979514883302875983580995187201780470646058012136090205836849225883016908381044474305160207029842875274783127848597292774578825818955374219174688010214395952468481982486289715428486460990165017841132925536503243444558536564260237576810034068608269046120553388249669578218911640343414784662144788239180613536452395677685399644755042976150965572429896409327574818359145545631704214586132128661477740657736544236019732139780361021270288875462126902244665169041103175418361568813574046659301080681880641839959248443310204701418090112260366998631523216473349557571329941920526016352572706731836682091091929392140288178047849171806612926278832348607139481901841523120418449119387675943864336331497487019475383446799502363867832174945346507637724293546330603304691054189037190310158937628488825351078246523243706275297039637372483351993178388785040349845748881639252931251857773127619137100056306662544029033271543929234327994373678326976540121273370266734674966713334901351904106078314452711598211850936875035846008517894787683752945510072395043491697170555177602207839516491509563754609105433787722956240234529683440972601886275232683324623020364061911648956061065471141472087698840403833416435022334863650362124136894872695785755594778869259844459857876184357994302745557579938488403981197782015565423396048458359439179462709671476284275270386403737910636508747122522096837174745333629551820960718168949582760741979324915660460932655827725065986852283056295042173160891825720686953198672150025079551875699075774700247395932581984985033806095323709150636536422429367248942265875982107588149051281468634216478405933823539455230616340622255604824416078165665363195767669421397004227974470557724676682506740548288237980107349840523743937171708295108983961548762329455727726439441146562921420618345331183384662828935376490607027601698203023759197009561619376138918111715467792726523046355098743061749632613476241993124938014957387158310298572196870069770265554114624870485545304790160956752208834612867015766931154122752607046433520145807252774954037807004881623970345983755239511202202111285548039180761617754994582892944938502107472239668895385273542945892389713214669337940200377768625676991872498652825432402869731940116008926728216807444401593315502747480944481656381103263232390857120161495608883803882507463717416512895713988989880435486156545976714183195321860445136995060016642288761895705047276084662769368366449109349986097193773878085547769733269163237335580185486256944096089405404395125970479666064747837957914867385221888368129127413117805702143992382922772049094072543035604157625517464073353664224316658822808031133496103577598552475023773386221616151581910950571636150473568345382691805916056574229397454291908613055502640762526450820393341973207683294707615460875655680024700165114487201005206715342864310579932347379340902732307580322365547576433572186969187569192987007958356742543068808590543700784211989456131968804451189872368439047710037896526509780814942243518559085703476155375778106461854484643920574592710227350526099071873091635662722370406835777138772260383905385078116255603137400627294538431389949193623163726187465887157930286077136401663795525870832159959029283097878187606294652609943265103114081310350056363033976733602027170447303728409207370918027709756393189701670677205410449245112680721074260541844357552198284282441703480261695426346937602680144828445110657727101150297500253484944856181342395637066741612896916843929359506540866102243823313224683994485233759228761386031814369698352652799117332133276832875730453241217143325909314040184370248447926257624143670083762757034505150374152176075806269534306436492243646251366033211588789093395634179055879337123459520276247000676395995563141449896881250858927724242799241403384167874843431523058526538653724118735561917529156427388960504117798394440855499534584838706258314258720977764059669330030495064685460632793826893437435071310615735499919150076912776138666211331737220278771422160931643315051933983101698200458513431597988788227435834850660291361767674437025451748675309310329913425274298658916389589821118972861126760290477678691248997056254509248685106657433048713893432367262258301912321299782398507487236857195679298546750927600823613332475108608821864877137043084092336664079831997343893642264416569474713698648223370237905742634338267015562632971481499172392469362153891323057117829874873139796367035674094068259655972628832814803670525844324538082647821365677188557050975870117631519042637328552643841306968285659083855660398575742303360055490596408848639136574936225135481515219387742006093604113723951940754542449644597606598601938176164488701122997237648267537744490487948964522234924281340561601696318135219331261345983451384117926742024905819340778071030427810782802406319292536324396255830235671511816234544916690514532369771700485565604892027271977077144871404789255973044216806141426102134782952234794822455855818796735440431578787977997696971880621682176773045480201290611509572614704481125123857279033762951204881951597063294735795439765207791173220354016196208684892190878795020433714566860638394281607300136912151685494839202399165165264707395644124512205848368182259303133069300329458090115650900048373333502033085621270022381919517896471226619579821115566331831224054868332038414179006140114460016839860383576407967766079912038652299597440259011048613263098170738882880637474091701345982186304891193916930589541188039885711520717222979395751205818558357831860598425953241113565581677820103525430174960389815624652738197203742530474542550293310154827989072797159523537513071136561700385892001839331247051810481325910413126758845145752551150268631280015197205326578905811918258991382657847081110748581193387027628996217306630571286559784185429131678483501226522378444087649131054912231818048761955875999465925977037483087976903457219800511712913380302700235279318460524226708282728460250005125708255039937451233942501153330948040791501535658747432544790732641740810506123323850225749319971267363944851236722536044382084385201580883372716202284015319576573599641680239617591234901878211783773513100515142432089498911871952480562945072162598059720410949050647998963426647801001148493874595220898428261650726071838232528992791410375631681464025616517470587567586370339526301667881859385241516632767486921591659706625562368634018397973956844308736986197704310349662191442252916185681799386635022215543803839253663347525243208268084053568121676045526564129388574790405713269234475911173340056665984056470909568462031489351709734427756565243014916072915725219558048821142773538962562925691669528317837882567247237482390180628347777274371328853886495111210746701878608051956703505621819934877772598110816098803478240092290606699721557534171595275574507362132343629811654385776504799750399385373461139183841645171955187095153838810002879736289655179160601636532995832894417463545860642444336558029937356245558290259948969163311910047020210411940112334049713453124775409379958047664207851246373756071470115400969958055619416013694796255907921996205443840221191515987344668289646911751194706125760914762761737632646014123809083865167850340982258303565118790204658117249343411846634029957816465871980358253572774990690969737887351421466709510364141070943522689975804106647813603223524460437697255690075851047515436952620649509964070270590354487303349638947667942255789909356239609297836265954161858114307767227897070731932497085411412308731359483906456755380650112594126225381060655748391250953689970242236100769907174279502287464757383868418141526135873000157470022775672144049403628776506540537769937021824801257900039117315669278111606975036805609330983660750099842917934106636905454206849127821935930749587841068531744921574786093685737713092271006958364446935439937464479907395309302165185458788925899819031045291889519353991930988093518942887945439875356435975833847391279902263320373837306304481376726387831278361072199140678568808616509439350785410656217016604875197523197183176632757003624969635194684937628323724590293968416791948552914334861615702918317328686141101745286447133667355041355621708108820333669740666842592384811063143026910982988826144602920588953720424083044750124049578496647283518598722199117551401083840019536374558362822802761303524511559012918482039288645886409304005649245367575773945366551696464556862014667852287306867035653129437270671394986130922066081225418614397692928585318304498025221355359848509706340327393625864816842640256893215656506677474682056165100907877369956933365471486681461086589393100058029184063335757112485793554641574711602943879137386190942275596070238392587200071352847290982173182640017679358201572737561069211269711697381902469715721990804506365814790891413589140634815767196574686088590634254660455864935514778566155429301801911791633054969230288403272261314747963239168222242912415835080580217347915786412502546268200461918546669402001906967339005153839139234469284245039100858677461817480817222995109740606858131785648249425317047464641370128497517100075162565158575483980009355940632083615252718970084600575140618988903418080079066081987510364112250654741085668443570470843941035763901893472400107368058000176295559747902078883550015595451969230173636725344020608205890654475026911889118734134436381329968732543401206417804726902381347610198957952930648712972151055170461483601592515873588022142785594342050129807862635127104486674545721851006380371740350416895072696955393640689774994402438216211842702926798948239795884627450251178347327772836594128025474138142982522650948030061400719376515679735175433837956974914519878850933574614760119650293331866502134741867884134086039359476343973533454468480415624487054719072402640628036107092553510851505920298894966155060110766243253475056674663208383008657201722424488384963122474037396613924203759135672388992539313724144301820023652997690410715763440231791323247211858674307537389890825445291675421172679978445177127968736335753149494356787248520839838832826488981743270514898659001535202893664879025307133196493748803476465535916637884298252482736831357746278024549186586437226614708732941980146912909868639005635734880743629914297831309932053120900310982790157488559654103922229384127865121353272417985561904933497138419981948123977644027269616719339336924866034487676752109805280840666624956692931153701952484890559721089228738240242998777414317096426354089845890344257781730820527767977189772274311573512277019913277032388265145206997010976959923114090867217528356413262137441655759591775138344248206479847164038909568012602752820747897790384025760936266301289311226243165160779412363189203406620423923850522044096668330213981057568198429897491609250355584333283799201995295760492101978730813501158664513637601043347116886514803287551221002836186187575812894024217320762203606595482158401310331472198550902018514031646914177142743043584296776223090692268965809101795014390117793629706930423100861390093483721479744726113690706719219909801341862371728055076286841700456926408427614331745907798549620299499618188588476460562361586656724761777185754945147896485539536604280105909969014930303439333004755221772883780628261190030926001387556542542560468044878800491747300396893579779378315979912598049397627819326565525551497373967144421151951162099215390589948928327600072758975243745945887431936537908449393123938621334833457371818525959869737813545585955212291518751440231402288032833260814709839166618035522467461368731222444955530999116729274324450342420111816808158759370832781546252616445353969970378085247410107447129916802600681068251504945772663335984643270800322987167062041886505795419947650839367404455716255424527378666618919441628820013738656571963774084829282436714957093594636660157869599730696117890647818454177853464349055393867712804199824851648576657965267553118793915925944175046820544427730601840196570002989581361221112342272298373962309928518482590519839373784045597496996927864087637393334026194540321378158954448340108992991278170444990757936296518296024111407016105966147913961723167563478674886574614332819255523424711714047133480634342988357615504345124613550770651326323806548423890539342972824419133403917526117060553776232661522219714100314637813547030110343105897912188298063086074426073304805589246120245168916847710822052054504235898605803284046580705913922136248810650619590512857943525677084841420662352024970589526804153121240220568215287992466876326671182569230670289272026548191540061387862027987133670386035676623081168617295817855636941671458235229156950469176352083319663770516347580515601860219610963057863125634653811269805955733132500572021763985461516433890838901402972025458471677667259226107934223051362388169964989174864621759602586284666860070001917386721842484021379118455383766478664801996721361078479096174902786638585877151892850914996778356685239783605157175286522665730251735204256844220871895868286588417456283811344888589728543946627237516012267139785943867802740414523541024830440777427313248385123463048838005425239844360422868860626839228774227041878341672203769286611283788975110738301176612855815034012483725498669681422564763399440483086920698472044434666912401439423657648112733129583333014405746100517767718452586954031723930007662748341259843975351926115098359249300548887003415697636571928716837093963235602686223791711430804728112169573882936414471337895051946161044882124961605011626843134818903108201043658207752487076618858942287974422550307737586220074222413320653148996361362733638181656186039534086390870501955936602028445639003368537355467578781695226699740482174578911411362966443143513954981030948731677730468051584020157172902474872263080862433396414006032819432734378094745882182780552807730512417662136212735258866970362747112805341886229951695056395752776722339567849336640163817777070255107307926836214640708070720088660561489412059730587569505098550652694008815173198022390630469477303095132832211022139656874897108237215781600572633521493724992246032720287658047682609683934625702976972194151601224306585326355853531382704893863682198085713334627692327664292485672647704046591414122863038327998018040528989819515270123279061367829523245676888607281073804029825447772784122814145454767538089785896727378505183306814647890638351602403221761819131693806912401063338689714622293070878826491797166992889756630572499542818935235178053689953044790650745526507927673993102239962774187003514438121506926979548903428552086396265133584827684826726585057714566950759293736838080370621329564866374218011680709448087567267808541979817181642134401893806870829127561429955848402473577575061024569141227621142933280158016342066108756569634200194410045818485960779479425585098245611567396274072233052299186447993475585791733421811566320869944534574047521033121440306420408970519750407897258692618733293360696971978123596996014497383322127725517164791196786845923292517657305805519037724552289888005861607516444536238320471781348028668154127346762929402895129487626945066191225765221778787726444252172848652463322718826133523934888051062047039611029382704925967668261843162760682414066744134776680312250397271466917332228040901146811647318609416110080665129419906691226189016992120849440512068556206661060154673631363123726294351367392789350250932095248664389542569296540738225310952512907281165945088265451144519869391240632075978011458205908560521426194942704358692391309372349209152888862214571197062234490335356022995400788851665734352310408473667667019949982667159592952552476384458894352787003349584011032487622033800496888808091268530453276888794841505362518676908540477272315566888689362848434377365832265196382210903705182833649188907387667413455636129886265105801319793425516415091632261546922368679568454833805137369326888097553296346563229001560809875245445201308899105878769483436000071889738981846321771244630617633533469174683912006566831078804998799870300656758410443425296710851209455461464863660521708161002136233071125457246600795273231563652745910507434489909385947826533303130592075268351306863193617043391148384980603644558360051081090202230612150779564990771555100706567318656236354490533435868990080504932578395073597105317999832526756520101497659972037300734138364558898626681003113783918953952317107895558178868804392140142531770408188612402206260366802629691217055262321914087019426433607009179701762471913523684950901127055027164385194237215954427055289440201978934663967277271556715904608353778114741190408530829388453216598534039845616845530870197470940788174461840787179142579829556275697580022873171673137667000562053253051040866464114318030835027679767782339241023196882681422892081665636278587715999165850742502850699329409091639658370000107735764110851882746519018783636842245310572487735882582366381008299893418036330131266983765133544763634344053890559164988390694581682258960557403404613257855377831221476373935092409059203316901895714218265646353353264876587941029932382079881300512475692886572177995795607547245122699834718670073645567272813726137949424379131278106328850359264992751285677940749298425990061016471337299018478141332801298839084922936726340805561506462502850738182918287670643228000894719284710517122484532255056891328742192889680124603001373320697463111891386004831396869271265699977950368492650687181892975138981445508477415476857598649941905987993912147920848261831102481806770026807522643572266757340464094965404889831043936160099049307028053502902931311320370854099097068339402760769724103559912130228565211808177025078501621103078603614577640469972109676187784300063118299928290607120086441476939842625244449872308681022074861733434290267695725725254401448576609128296638324417326713634098028324408617737408365998997870906428947964512536887452460777202662005019087108551786334794732533942266167081620499181702924377657063097895110625838188820872017139666878512811514325299373338165563284182478768159108390456443988558357179472031494899136768259270469493547240141242121817204555975274938691862831688461961711432738088307327919893097053791761744379352479328733191916414027582302661844238723569511763883524111853809863074390141559426478784385433898188111710117701812601852846869798530190234700062182127352263241535621547186109117894375228861239529256146434714969964757296641677592779357948144778294501157243112299546644205406916499658599871585824278174258707046482639700565821125898804031635308784481888527099719761217161651464414959138429256741866208055925743749592325776974929396793059498513397340335291613070459995384943079098357583825601572219090330981351084036235571502517555304477064043807609813838732359376562252392823645291411723833005229200736723447187163425618909509013033892091994293070511148640882938963351603283293027286734951054797852011876566889347158505228723156936065281080798877921745891598470675969053979788763148067633099405836860305072738086944595499132852455876704069325054262680449686444010906718531950499324629849267164816257605907216368528078771744801438851165007270684544438129624438381556358550843316552664245269190109748497820098514114251605878084591676489690456491941428114246616284473217695441111788209122788963263235295559534629651514215971685006409551642632935739314494397047333112565000868862670598852679111957883627070290597944323175699191644017969370813204843723229908482164828527012722105260996755246752980685115016947345592244018144832099040456273799912047109312283011773576207243215404205055364848258669197226458176639794661854024163337117403371621876875131816773450694832519734567115894619648227233845312860356814692791744462502068473015117379791732381531171071826644830173048714118914399100800550787718156840574875685370081369457764388070809387428973455005190650347004695551536554249431482201972942454279188733360748450552236800460258395845189970179505869329444098839800472417931145379837882732340073828431944663605290759863475245897867141084251453056706933998273341586731624109638427665070764974870509855173818061788604417836296712846012864270453807784388737537469169163091421650473135120201180942660802188067069588734183414818602744295669349382327745897700989284897498514786513194833633254520110669629597350070775275449213882188648924752936263392286948617767765826277494231644097390242893084779370589447493994867027787661475143587196857679345892485774224321952761809727269263302856881145442826545175637175743831419074900949089381817055168778734143116338969166983830113494891665736279692714833042396037926112853138738928980313643529997172536762644569114563593424237992442862696051934009127588917980044950392942528387635619581210808888053353181669301175622711636568818668471874904772055212803061901451438101329703823973385657484091664005451470989267370779979736815647224993356165767633227180053741646997121021710117620801712748426107669412792808996017463268447317643340782998234435296462205676204826876530385845131053328924128299465720857374340507833771192486869792230785012932462935474669661823627918876732291668738445377220115618530017395075316323939754149787323586684179101747577580681205679905765622911968030780025855936711130520648520070553596979984160658614896475816629926508014563379455996592584865231298823368641406656452586663757368549386883065082430692020459099594569613607285183259789158308855208353800319415609907206370952953356359468130747000867392560811777388750990700769535468806021345510061378131567889595644690897751209144032406379805245013366963325625260607523315115610512956892394245634102367047272214440995645208996337607173434771465378643085845625228970231736847336947320869897652989264687697162740681606806295025638893705016836345939289398214897577876964512334986386150007262538616152062520447170961067826098104111874735763957944074763772173958661130104002037795221246948044419057375873722444086745350767295536563806002488867486503260144880355174738416989992331629762224317698082807439735544560195479891464983690945923790697926164300746826153759627075852071411620796487831651641454824647568749396729702318566107063867933468233164766935503239007964485066091096870573863055178796988581952104935029375916194965091015909665716657217392392167803402510178390134426305380217560895840121129348799553532212121693771216659654977276032718415076919900513529464994342521948601353376563444661743278814378462567853420430592321444838026322088155029234460273707294380526527200420244616674159012666584332275213143477896876399154936756272754715374236711130551435875619556973008790402117398676629356617712763207328922697587403108566281051141299892081849257308183803816820223980059564430843552412121348787967817301342155772618279272652113741237777453084802769389948098377341871226440958120439473050758474426315089035940574476326354322966399185214998255620807716177440408785095835080839534121666840008155691372861336121771871446902825324664122120522122236984878397768845040278488728827760834551128242062113420841080332457709024757891816107936590834743087041123103550007660666871093864493863996273202683709441468812947972827177840152488948174729924896882861885648249319238409488391430912308181300507953638742684647083757506523267334834325080057919961776852191419741714267681442159884028738616349446694480395495782950547737909896958364190352984824714015983387021069853842306281756248248901897189216784619152388589960061688445540014441157482630777889944401111299191297375345548240044072927054531906797043531170056945136677931048832726479944803281060257328615991110391723806446509615635854308774056087398577067130089929559656488495413688740928549757492679427816407948799870242340832574802356715430092691570986634112454365896124300407600337115709855859269861021745065259650366565481945887119705211043342167879355517973795697451117428624773772504028227104888657734361138987017780953460147798483071202162578571391714562468625169747423636898644395280773200093720645226796962537100324935570558528275935930682433550320060754749992137875748260909546289823812545835745352052013922237673194477713835360519340014436663766649465148031729027410908213371784089745047133221910486581797010900404242652484481922196759651751379270550622407278366746448192681545030448915118225852069957559907272668723377445809083525294723299672329893454087130875339326883765566730162982479891500627534655630611071365132663347050329057210310863328207540050537181511793755687141422987235013812014370481590931699668453847918795519173104637401212402845479212027851081249499649620946773330275840956218393465659629528308674841069542706684294778519243863117835132690846799265010522171744615000961015832917529049224675268336588040761674052960734234985335222638473609297537051951839751661258268974605898422719896573415510162479744809294686449442343680558471774116617957263950910058936214040476738827289013943226173376920033791061628860835891583453059895879735146279552058838810396401264139855141999677472545555919542544800497924398409267250224345818589044385594030277541222815538349684102843706406484518918002837111706189789832720089606183125685754432855660672259937662883436019919645009116215773173677555274772519001960055284954847597555406196068285069249203986415635313404869294614075475688086739875863985712382486782474873353591292682789646748407618916910457350246226462297805926308170523911567329810565822698656909973892424374036486234164991348920649926294116925249913647453121857563126840266977016098647962391644689657111738851117526852265164909672863914004696301139968440698852652972752293128255255663618378560924979511086880019128886961951351127839680087786507380753474225361772105153909749418149060004393142547469068323960227799976424770780676035772155166073893274309004951068434711489696592286325948952067118726418954276257186704618214988499944966294802443199371395692888303904137061307464734867107256936457124047738219714741073259582096299542324078745130657898827560491059292280605784216738498000962154870433072085836741073693933084673615156136607470152660439011327686535667156164274595260119225363756578507682551060390465613423832442481600930877969058752144030007565895962778994824030406207710671692042808873250229867191436857848391258185087415447299815843036703484262693653628711613253436346323313492362325088181781551123251775930836017745200929789410314155581088989556447804696427310672142363727038815575187734166818792088289930927257734287668691812545608751336295866570714697106752070377609525384432188076268887744618538832323449590558190119296843768354470223637853023064232216514650767627357477074684779493226173573768624532186702619014686690107074470432548776243781241209238984290719592831206679644720211530376991262599318628216070499502965044831723100278735074170602307740778813153447767721063148602300414096523230824018872338632431426034260867150287681316610163427626126764828981093430205137623956098049283602839503133533903198591801841733363703602959566491318138337026573112214057804225375655108393212359419841347515791373431702457419678711700538780858383723526681629543021329678924322215378570650275213547192257496702255781818340334345198099321667925832527610271684274865996768823999538792047376579219790312649489406839056770822378184278952486074914337093371017020837438087137108675835341971447167611187965861599494811171724760645687364101698433833987461030189507934403868554306630357762747449179298978086696799785026093490672650758819222127211568434582162843916193229487464035353254014050841370624561554573827042087884903737304058185027438656478615548119100206375436464624463015837001613580113238221150921781331899847859578117398385167730347460145158561241737493301099366768212200458511506391452168224623999720814840987588948280513616441545353655386436652465334041827642451365479847498240564641371929463763335824424418352878444798277889717611155477698154504010353846388201460253083907961408684904139806067833025687532783667637272781132991515662548229678153487854415697193402814871092529435048975992141803394014254666187409610754546712596371448104983566726354107380349290212328635836823847575477170897658406084179712641984607554694122534246482308324844133189990553796878794150115987016020745089088193528313811702794537009680037441860859605014373896326469623872190802554012135531437829068910513590226099739361015481486420408579299165686214459717042669183287643706813789860002851379848452725605218832573650792614384908333553113556891261488417934578394595495252577883648654329463965865006987792292828026258750675859439452802426332405249048211643698804917275615674897517276339816377272277369948674030561252653818303850331049247791820869379683674944240203061452754842142334169560686078971619484268356229532779027728373903380640887915500965682660064354529404740559469277427012320429758227660394178714435372426306611002585859153946718620892105297113895833907530327180579175926573912169373790363729459385338738057148453941941934237114336441407771866951895737610183811902209368329876505639539359509806143723587740512332445497852519071196070755081197782991895559414336658610691909898772477333949878106890073778789652234541433724215128549948541910159556344299726327398553569399467635563926768350296999462793437883240978372424598363650728092358013960162946624160828813115833542552436369295305166016163538647759765095833832259484065023632358963244353459247425119430485702669777150121688459522835849103509432924478366971123732097502049309226821787854819016573932199723986519647350701861773138898258460515595277691884448861729624488141288017349433723510034991121669236795246628350521434746062595228718902888576073800726541360273477216712555634928692312809346414792506677688834466873840935984679691069226183382749417074352133081142377724758285633942457453639617196160220994619397317476076234497854363046779836160278553993019529056540553452064254016938069066041315099336818635886425195431323073693124811278985551575194465326908560617409005119916655211007056409691119509418459548201749003936763822194386973849501389677260759311493180818747517871618789529724886698924436605992426336558133823221797751333296064025910617626512751241920331458233813492261325238249101644797636812632943388039497846006639354450965012792198809544834924471928915069443853373965581645926483134699333575393717458361752454624481909263574094280069107266793740081070777155887501394899025464268047843839447325645110294925959332765946921844471406969317749977671729451016765019146309157963742937784114937653254701317791577078418912179589527923138299473452319301130214227592042261431880041694959054391060306812532029484223803797075968090678757870883166648353211954735942034663973908753919517405857362106598969033080991090870436819154141160449207665393059009051075891067307784334715387074072254972682892117493211009270195441861567337365780975192592741615505567864291256480526558013137900674829557283186044306940898504944054481074708402976616273208471942682921106256199928720403766629997367429982452966112374682596475500418821087013550786129378013876198465970114497514183764039365628774670200509049877041007239101635724689175152564245287789749545333156162024401837024734114708484363631420268990544896890169957981319867712083413736283462396113729823140859177572787629796130707971577987963536806299503291000316368437907373291441283568751454881624441595676062641241367046263653186789894229677284297372453781347752244849425213948830170022190433145688092130380637696091929077893259475911523104607476208358584046175691804776820571117632087922174828566475530649607364110714993503458109927288053939928490272837815438294539312887735439160503926336460809462811553559472498857929751663054402900440941400064174178432281499706519284117364028860900554671644089108343245345389469513834894118885247605171886284340577950832662696163537493341151090928309521116005280558568859633556626551632059659771496378225806668019149205652853557220619022448760560010793677711282967742125009955708647440719109931525365064744475799297523775290966038845476891757726929798593085527711014852166701594471897372245099153138937378971904132270700336618395847717765451742180664074360818469906050596575397072043579201977503091819309709760872929887475202320741221751549321878521457538518521127613880353434708414014794889929616212692030523134304685374039922452225529526891506995760833698368039012868369267980651571609844747375407177858334614650281480796037045239335166895009333610162844829323589676357616299802069741372721020450845342408761557046781297933520617204518098794651386450719115724451661402342126414664737556763399872637692832123877027390546269640693196080826091680982974082547324151007957729584807465666159918708224076915079604947044770883429313605250909392442560347912733338598614693920577787846195150925360472644868836650410840451177292189024804476764619010364357382108197883282049921989584713998148745615113197970791628013222099517506830782178812303605376336534935886467170163099746197725133486939240901816878736619467115985113551199046286455572751230335635594332526569226169365015590795699561085132492822195539897182705697184631538495764268857597243368733079759357948847014959895580294989235352475912967095864671682009894889800031612592030270675398931023206551754607997633094201784141039238959607934231986890627496405167705540161949034390859006416781435094085279705857864835215259195179816215057328356801226764269643778175299959849325782969242166352591828934261711977836036389412599156344799140865722902054988438523494840024078506391956406431805283618378560808971202508247434813571297062390453341272673088649662884695590101452686208010136781821827174094180145942801443278768757554230942870979914641405644425064376330960348870706113415855201755678950302185208704777577468128888497266729434005131691628997679005961415468294478406938224722910031087169455664379006369853413515372166353023951744085180526177786331080013948738551063058258391336488039799067649242180078483291613011565568400910217610586309269206802988001364526096585743617063992959964993031382882189146450834039627662137391152641440992558505685432263348214623579414682200209947678861126162990085396798381532749874514746712317182682827513912678782842571473243256257499328770857067771057189084380680272238818189575078122813279361789050000837842893247736334439946051402425344072231683845388989331854963079087502152227193283202269767213378289102378012367358572675314608295863670651032610535859053562700276280302959921052602700090392812759177494387927552458803705716179008249210855386238519182882400769826615356403225999051380550941106629788072641840459263729757122578474488912384289214566704875527670223190649750935022582370769676188546097215067745148175206252910022884321991501812894449302336960211813346789938479043768098556315556268859995314362375059421255703938572206203670156177143050153155230518473276509112184895983982373568911482955134730948290250412552316338586639570603739415640168275875862050238398946976225806043341784431695283357843675201743721895361104559126771184096842712398570950290576277916201129407020635153017772314172051302846015133288701071764299095747494031862575299007192367229969618375327829663520605756021431438554647863341122708111137870038202761179429442832730538609226737956060586848404731745643876482455136534689357953724147929016158678720542185429554570665738238980266446419162016944260616744113994662702296379906261468716789583000784256507991384482266967276065246157506396837830928971986662985578070795113430678493999322528509026179794972966711951332477106931616872491955626851664791633494798350369729684210034765198248913325837200974594428997999809521414931516172937947108833575449123819153528299521575160097458617811878111784725862899310967240758032494451045348556701651673719942655578787411699581673352346635698294844165210874732847554189739140098199302612930125467507808299959468996198835022618203666200557908497350744652195693892589620193922126674133583158425754409533206433321229649879739861797132683220801102472202054515372581616644469839241184993170279308166354060367735537682606995530397202616874013873363958523176411289230738395032451176254380731473368894355302621417828766732071599281929970755242806529831845460438313223534108532856527157958951721049343940642800980991033286964158045964655086809974901622861184335024462326326319020173998894220799529801839471314820143359875022424113553499316854906855953487149493978363833812764114884473324851262204257050420133407358412866295892440561285127895630364682963587344163440200500540287260925424592093144228265882340774979648883189195232986996900833144450396193188311369303242973871119318814118233576320621078697461752914284900941649450125387063695625129774528943993984175426092829452670603622680607779859958425604960991987595657526324067762090597078806348040274804423287380575253865329621347357116059982740625376083543066900980250683724340300991285041413932929387958410114030822618154152065029413749036679595076620066149414314406002700827406137233584790545007867389805815454076495361223057265954230125979517344228725414958947508877655626764237407679222132063015896967914029893620380576772596279525661878037135791673986931557540752093059534493604691633891667193852237407030396746087385927388499689054095271632692487804552881759458540858953467539867511765032609109688193766761131826564951700233422505290968414317329549991192063528731244168429215789871777197218294877310975086322461514710989039409232904708334675878288192602706160432916609208352395545809635778027599184009555013096353666834749387777145703657572778993063183035101976113818675163116073948440092866056277148941842739614938918426232133521658209084939382114857363725739533971810762394135142740865107586532755372448060352204932579564701702756842527458343585759310804640815464948698221684886848558707350370614908175099427850767777552245988077496573372543760793713177964026719948207355908081073497308457133520017712833960636829049706308626567808776412166809718796548503230752046833354017112647541916189212009000300150107869462219167583004710743172887354164961090847869710092373645586484102719302772552505654324786035847653996699794093367012617881496375589025118835249833328577780455919331736431585172656199161848123622197993926716040518348925344926171136187393926825075261080056300794083378570765913014157783158966473507178044331232716104064244204172457211650831446904052827804204803285839808463289566338227097255790607753270116593391471683927702400614733768636807805095660514858960709911103887503944716146905810931196274621016950615843937675288880141364410398942968284337307388396644740812451419529427882826651524206515593184702432284372978160979553231277625362731349009591692823172641642581019448487717047770784945944478936303316274146632370014926192112459229383768234615767788144854481866023988194321887440986797101263925623599233834085758556795095345596830767288061520289964592615453079978808469009332841448713878023743025700350701495268810050004904438309970720962167585371675918017335171940936962816118922438873725840190365088655214242500356253397645033965390157958974419187416227327471402358814402451307651521006634132224242694429641921288556747623069935268267869426007220438884661617311234454611070161233378727932325170395306039557095870850230593068557167947432475940808162831295057839978209990694883043925076019180559372700272530729682917086194890689992345205721767603067908466882453359924701517867152311839291481180354624355361833400243563154721790557980424744635529709165730701574476509867855256918943143793917715798476927834173020969764809187648124655562032589767355970102965142501574699629720855678331347083337118895240626001484729296161387335669894719934721648711357131882580246015793742097823684977404286958175411434688072298390685196598106005679957978430630463921471635589123002238976617506000426127762580692106694201536200774598791283517650501473299756180261951607036963373237732089811300892535817778054180313336474336858120652717500228974116227399146243484192832128535118496411142740953079666847276163779335123884853290941503353568457065929499412607406684044521725698848495987405098794518801921922345541643712932783764007803335807750060580444620806588887190403274596592928660316866669423171693589845749310182671809512153359397829951676742961061842518276232917002646078904027636802021712261713204057010551739964012816480793006712775094670532005059635708245980262574303597064081770533847716692229414846267303470487964279915152824708699697942192781613948049267763189573162768298973713207713324698507665596167427798814124481530301824846350360455005345222766608887937407489473981636477502487094539035028536261552653401609159882335229936561715954874543237460995080510369424987919234820143731733823945521175120471337821012801227990904612933449925056722605866999009518237198498899245546488095455904188211937517438115258478826041720371504457252523730993909219738115998074021473531680800827883572327891804562647448685804672037898886385016467042758068195642033359472611492692753095359687918730639718363041421723787853956460818253385274355748502042674388886505556957344273626006785201480355518796941681917977801945259314505133343093378719289504728684758576158496962940899197865988301599081953077410154396975429559657548569793195520724610510426516697823491654889654925809931543194207222163702798143655823554837078491080956043784439160393764540834459774100087406352548316902496808051136844636729709682427589455458739714197747557848928631447576090327432044448030968140624263214775121782275996791155344255390207532569474659790605001751027061184486404526810452942477650336110407411773225156722112960594762668682381410159582764016317664151950981101223343558049572679428987693464841806259554398566563601717597875803960241433918102032704138214957370653299904748802784170799716589015229674334073470061227686499024133655271856966082391057797606859965689678301539172194887086519716881020824134919485686082445348814768778911420948060030528950628082296072720399434421772882406929094040250324494115508222125233345013986900197846748119318101405375255920811255554382911480193180494283966479166354229460276880739320981786514781816127115697895707023686247596381910100856505061176513675979623370837110892904184559379471348133104796268820543152202899548297683276917967955594734647751058031384943505919715238180526605707791765683386674276352555569469867409947397576967897848010688697350826932471891323131634519187490332371319397100540469676743007843920349315743356932144258999968764252919555866224297220158680303189509675906626769354140948104195400804840013709848058734418060014045129655014992172960090211395442503898535643238127757463345001011217012447066667919630714085915054877676830134053646001528559652946740505138573773037475196605344286993346692548197952637962581452835431845324338224025038157546714709248917948206185333987924116538302822306835149811809302160468405671793538931158386177279559795243680256898393652174222902766648559156180633690597080189877574395827165734510385864254756113567524392929811920822420827174290895097131167246213893995339963459742898565227923710247688500184087828322730783443334041561245185912449687049282909683995675616974253920549779739824862156729672577913971677876354582437113251979640280812461617293923686437509067389677906832881282753936538873964250023517585358794653388761293801610155908399129476278855854831003081834972230824491696430770348122580252643388111349534180178134471785173455202658338430164718119800919817716557444331724370155357791220973363124384545208185800715121748505452308423638270900882628109340084797340564158017743575473460427800455679960752594229057509272024296114453896528772053863378746515655290019557332461979831738667145762086519121180578424608027337462297653778456294964989805716650908068017590449547820287628228484735695262510400480079827953762050104080272126986959825048165602060431275087432423880970985346085529747684862595604416440366987780330828669396515454924763225771112053865926072004604407959395244009585077345531966473397615842483104891726186245256550203670448029200372965443685598866279662518320878315398032252926671063475650999418743112058172922886625335907707343687789364178514209329085336677886780615995706237398180428530348880627951708569476957942611284019114246784712468296941836916568195615104564299527955417550233830612164229122537316320548403165779261393055049993333941010486122179381895857971662920927308811830448703715268299538752743540893199938816129376513698756185949452021697134920456375014704297347044889261525436335945008397974835865973390764284243162306802436540753740974760915304956975852351331790410323776953781603132740086395182259651293475801737930273757551830830784443303315378473369006100020840307095518883004255120328466955887346027497349562150825399863610341745531322127477249206961522758418876542074859735508137062839430187461408346612870778559964158155075822659761331759205570467404863278192266685924018336991568719080627943125395713464854304663403606772808616835570428781574539510902543146843468416472388666799847217511312077139734264390112104254907625132471169886738313005424283169408175263628785423232204068573104828082177869601506849825861352025174169707643902250470797420927200643009204172211734425986448611294395120571943813512398788260907897952414564159082542895814145084854279247281095498717217060388207521124115250467169472001911049009293875582084677445035114969101536573544191072796713401709741994908695303449700830523237089323322408192903464288028788339307818843635579989789115649457775219140198544759462383415472381894248863863488322728285744614020167370678213373378649319396982080363959825305992810003519062919274582959280562075943499307078796411958389780567395293178915081708400211013932806240256233223405152629141253133484094263528509918121649474331725228917716336041960914446783315140037511860302613309317103801646958534839119052327087059601643829569530059818612884091886262626069371125091005277486521124726547813760773774002604853083615939280600488463179509219594742285595440548638817829400632292687322862282257726703007773578468517949872589474842765345891441139257863514371759817838020662780663571597492358719931604554002935111857538522888024447408620974212960302896148058210464613064278259725823228120655212613974912754158907879982102695231310480403088604366624581282627043032573851376876961536609198007239220794150134352033110342777316259898197064919407397390503944289768018308244315856068007001376547487119258370031940449921609978155178129426014607728727556730972950029185460536265514896863306220727224925246206607730189063310442553814160330454504409006176360221494434643686726131376722999421803837207715318417116158386784703363853811639882586398367226481128944868873100759067472643416409619051427581108852259461675724294933745510844444361481038601419001459311609125564156182980740108001150496913217511290436943116147196749969540742652152085742525288680047929401077918922882189953875780665969015582182333825960829242405213908613332190703039939352990947690673870936883471102838814033373488746604161620876548555978947517072755399632646983789031268155108212468669792699178562733227077210931962377431324162899150483626718992357289751986297706142554063036222895699310029534693788386313454355835339472658993588954888069580275602035738890979712766581980923994927603449103812878477106973474972427502589018426350619113812788783445625562548213166687990615053103411862471342014133575953535865690623248352833749210274626365189772287968167833360700923796028174134286730410415417764532672588598873528012261131077561250922459126178960217544716126450225029753134361075212883146819256252056853534063629317641295654942176744059197270880006076091561334893030867388014786598888797654357397943515719870443405290379290354593500435233904279208597361850479779402515217339596681966623958743237687495205987196631055222667818150440531368060399196359444786162758371972921288732176138911748328105961815975604545475060295502311669303642881932568608285031599133142726077093853584366270369826628700645871004197391175310584804015684219798450212864584340105548422288187252225780974814506749186509769006904906143784751409277425130379348383851174337122605106834862828411647038207323540496414290470315063743581707020280687553828553016251905946593690334433138604303977818742914449895878598427895281837572859616444175697904759835440406187853177144237735954508026203335659229991620461651403385490158313196494547365762714564408192842561642797476856185566612083072850533574376529762000969603786902464231841619248952955152445039587203333341202924896571682584182676187383005103474964722996876350645650464734495773716192248759415875504902039770201495839691556628368496402195524918492474178858876447102676330907977573070167275495458215141109337389400388663470055471240260680578106861840326670770716657485554559161832338764372276588554883495564107455884476619080969184683232090797126764335667276068972491190502625608318329286814172387661554671705578052406416086664329686066894236771355082912916253939225149454763365253176103216563072865085076954603527118860840173225344956618290256542373784560163834730890763401733599176024558139781693960200670539136756211705079121634813395325977461986619512518906373967300514108472987333181619526548756736568884663158548577592034699054171581309896630218226341173478079175214665156036766307900401489139279522170008155069405972966536640457354826783791336350309845068993945371539954510927781371879385094063852296663325580252002922568379006501852517652330270607277926259027126059405998665620838746850381280234029254494615621354424749819599699422854488859406723129173896824062980152438580348236071510663112712058220299210546527844706347659932187217271423000382774043611165418639311685159050432591345074730750734354538383678821466651440564254202564532018253842172490266111845370545306906380157773808615263008835008368380833760894030950177961155565316338420883944580994078077217623485875997166350614967205203301048521254338497004814409164751833840869074190190861825237549787247423739726540339323426376309036766287510313824005555253978248677652669297273965365736741052701053033522795109935863797635028732764718677043774311061917088298643357602965947431476716509528711223215600731006115324682760536256904325647129851271583546783434187742050478336086227242207580652451529361263534059612969669383754700226753278734057830474161615236974672454921438032642807011662333981792643515612084582864043491114976669546437912562508796574398651330932676394721048521461902759021845391605175807094550212954487833642329525713259090185526627616823942589385545513635343032476067617424241860402812973558593740797791060313232766326941431886506633881716369470813551990994278917898328353059491971141742536684626881785907825961421505309456279101169269051556697025832758411944857122637393375476953862803460889648498456708359442495044595949029231306876244288252486491052058129808969346627896347613990603064927766486233732365275885075145209335971951551844271371119967517934123483327653031944521590614675578795395257187704425113370193280804397598426161635271829835460014328911230154716467270178893585036542262591202708680320914067128545395809703530207238918766640726299528564010250345481290403236032433789643205371560510722904908954172745904523263082265251299966834533547778377502506344241702428838450020033055997287950612982850536539211840528197145675707175397105752786899033655376674473977412676203050751160735457570889589339676780400622192453654567996405714726717904199168435414605943534400583077481778355926962044278486972465803941398479399075827612629178918598431624955659898621401728339880717243593277464417461965740102570379950429857429111699526008608695487710061954871407230217802159285959748487585107547574330740097647244094599580036645862384770739955119385033207892775712270927335178962084970655979610301820265255896324702439677458316337712432489981323626465974200431243676083424049708927527453059908948123711662615231206627303599482734662555559511180094679534449554786445357976658189013069034342169579789259126830205112978307160727597338556261479081332243960133213386838592224889964574442317710592763398718335419957708583710365258359748366135307060813813308575079966369911286835147677620677926436720777656896006211991398435525654459217517863293921753090301345144198898799173671249376997103823099859046121303884965496101331578442272724678522240746588847720678377809104182833697779846646694304839855961709872990384782641860063775046925017593082121163895830499725723829009770448196443387646198667697691602858381613754894548845515478233116860882414929799450016402598166694780803171140042803666728872024992890866776074769795684547596782317169148527104741686353187231957399985356705431896516571930903191873343940846365588069297791207770049577297762963848285969856662128555692046652868312361284371932867008147047070798113041590708999310044586812484034834802677928437997929899593584402112291443128205724837236106433863820862333170953351431963714348200618497821935903860473578327140254909480428919191207176050123145497269036478429305333903794398358615465500531050827324317633842273175181166485996924609271618715114095225776236613539468395672665073310130558195794512349286677157259648045146066554637709102519190173687568359324855890523930403888871693256053542240417323051990274931870656367961666009529206825547354586417883953350293197385801931749977462554570216760123523237846718670796056421932162145217708117875077849107931959723447669724840917883585812866043565776557485189275018792427099344500875473064130750479143700079006486861967196776862808445731505654932339361065209435788739837447981656855042664259082600153213790162961749707832683990934666113490916215259947792286891743688454024634519948893427690630601876589824778042096435379945321278490320446975368191238546777257160395709101206314253876910660467174167839627230617078587235685874287527980323411644040693845736458206112237194334975297141710658057772872304678891830456219874614995265458240151882086174781764435230160899284181911420567103296212028839769865077823145318783422833567733510546411686470350625820626337803195120040109801027910603258199746946955148904390287065082559435862096488750934908109496392109814110902872145942052640437269843194861987970352364591336812858483207992709021240813990033262838144308065788586140917425357660208172659450619358344558733595909371280430640286422932915087449977876954438832545585326695488055135799286743318404969515733608243877667604719427364827881930040196371961099767885751367151698636101126395651866246824746622334893857342164971699293120723628921645870979766298422489501505733734187116324332453861062634676820133454053600957763259970650354899031561752303821552461069779370375381364186947591681483791472754831227236335356572412389216323772056365610451597907132897192966915726427669666566403759134569938922468920157918375120050727686302105462373683040766185141516626152343237098342948284912826766352254704480509108153589955172657043994823567841204031553996343831509316958236626341936847185884746515965440657340523743142212302574250824393485025043452060262323855862331024661253872105962379109429397665737355591015292302226553377774774737932949733825100131257190733377711455281418602435931221655360208499102382012575673687810576905962648067216060624828153250603776445698617339848621163282998936709291200110929644524755188814456395865521564412882455468849591842726608430685853466597930909439887667801292337631957407614818380177093121392292407831548772544393433723335955494834177710192156589584151301622166312506793771414576732365442273073183611679070253213509817521329528568817022618664856919913483743590960748797855457723072827579514846159309975507033747800885467826239909258475732866636062894903446816230622791014512790594377139382111185877097086206224313935108805901652710372078390355403833091650113136495180746735266441939701478290515596460802214287647613800424838192925823071405846652930276697324114574552266819841092907200643970004707706995572180539670494005805206097571944875085854810034452305062600153374988619404430933428147640814184583721210520818640146378787293161515295137257663225064848771515635792551515467313853659165878911200557280211780062510010786669670512667291313090546742605331191828397626131125289628692764285921345842951466529944754363250385709251128543239706251879150616698524983694054448996509314330795288245329327001898582890502702596753685148248133430202140076968545274731498281585614912733111622295320659892583670421038298622039139289489410086816912723777665116406333595014271285789584827752064496486082520660680755136297060629720066739094818525714340611417805462919502050611796586596240618424762845880804152309032902653658050798793841984179360797988158657805039625974010862850366190164705341935919026146867686909336785324676162019676736903391971107375488794758542123359346767204838336685816875957232546967353087889100775233173362219967137512944348234225266523771454434506970143686034479158593945983463927461281840964375991598942362790031977540209425531379055082095431875582399024449991324046944830567192631764106496396835905570550281516722932382347827405476797684535230564870816889817849412195684678108894125854972963264617038490227979745223740738127098452790874986668641403502998539179027044060203407428625149261529657738324125292096991228820005160180225843542062659062060219650827432863320308404224205624461914285085536617444122887718647139681386946499362009761929920002433252770097678037162256632895088578433709342787117240546593932371323050034493371636364577710377603902621077581926300341978695355027468870138405809578831839008730975841081259817997670390080073041574504481529909185405520701765088204752976877764985402125290705304834246195183590261497306886736986830740512690606639397674479319344535328015302738801789123233833823192583382083191915016320849144810243253241167810569075876640393419321023618074488475174028766499498630707538432108255279665111591803258037861064295365895307760879532684745060816528459083193109894930191332713826987369639077814302336744152565599155900793411967300009861234748551102604000261854315374919256656203012788009608439194135271087178048562182122662190674777927538945340632518528841666184270232472744104973643323827477686688706323031785321597049054103186405000241813125148350752768387380359840644038347203476052328822744184254714747542088929021025465918289853534981604951498729103630611169867841491322006839219213962392692256404667495377983579313645281058640649289337388543318406712951060905312858690478489702729690841669211074950462126167083702394471907367762582410195235290520866938074513617661219679773000468343747050589955855006237440230949450384363347693054815827933323105762411946038755376200030201972753226813422421175356704149785560197234516493215955566822666549997582235984301646278305211612087538061859307573123191309116317209194262957775006609656125568062447333855971475903890443715488298171192862017545907689185091189291827257926497194609520891187639050346680929009321325187636215689527282811223309120470415210912139360238843569767556497091584073067465858402318122316087346672566333038101968676289668421065732089108240134176533683358342787739737072389044358419040316472827582793740075478006412076449101833770179317055758641158171755000228661563087134101500484587794885309709497854801315218642644566787804228832182712877176174264057068530487229067655599829550109869108995663953472059104488544206580349297398468624703711779010694181953212611002689476193223156544745273141124279225381111829858667235401902331625859871564388549924037141441111335823718834263135286929077518194638945304792900063082535463910281813486617207409050472213559556511720158849142479529457109199283708333110591513850830890095748163269131514418241947405095101170670832222714311856257568374667588895288736991687832392419397196856674533216801144337708338507582364305831681331111748364971684083292629623228557091247909540509689724244423187981322665061548851040444878288075097882764568347388654299286916286194504521881434499862691694191246943945855350497589335468086797055801183202705903418811536140290444202955149488699166820510035652328848603665224973420824238451376525061611170647559698890162577990257091219065226443684339690383702170767002877289191678086130689587131294534036962183680217484296454977256085427369461763524795358672510674985119743567270008297860831889439716217368108653837318818873699843680293384752895571167325561716187341419778562373849714941870263606726998654129634204649418926369099367876022759328824366820345393976608196340072761907567465842493508004451005997505334903375119683382023977936505175007168617557169169356345975350070260813236331499120809038037705286483641715169074478586272891507011358051598045894038502100122283242055279967739847396649668753666286726434069092950583583975607864858948854965859386970853646768750094688829553188631739956280890597970859658080653307045091394407100653152876982185214278942149772339304780068688329514130709810855980818968197241105204345675826577951285794043243600162707711105009701502511436320841622383469047235878772635896293422902733444336943977434585030228750506104947890747597378971581590760572366678723909088928330096033645887988579078696322872149325599265221000717764924878022810967496074980130804965316060622470467555719022156849657875087143343599968978540922745955210515598050517540262825990981640809564071201181001168933674436960644170980405554382956781188422290152624385998226814732436583282807159425476493276737962840210148016508368029931769920596672322601611003551500787274854781757809079956511315736394431234287296111114323830991313965812407008288366547960564929592128840742420872004256656533478922483530701957589788083143124146149450812029817748383494612266547670862409468659824609228801908960382924701006855717791504135499874473676407845417651491919057530351400870736721493949502227022359909626882310308065413746482262077898423689622144135345359100532520854417269477535310829121747343888943736018574946286781815827536723618339516938740385588068464165437607167989645895546294860241260981238735977610723180855150901947208015898567544483052384294454406191145523210595591729960001988662843359222973598725000564924754833419883262678233003910923466465579185365102503186816971347303021195022052432147746980335263029780936523008358565472585496253330954887653130061898762512163502340411814296022141348019388000909103795591040136821125731830385521828315876959814102637136108132842906590448679590703215095713312133409577376564089801211134424537461291801291122064211098978782891718515854766650920226182990325504560140751826888485582883033376867876466147605952125002620854370238718718417299849008565261547867581389719819078744134721513919415057213969734706874332710863358549751538024413615946459051894165822242428265588324084567389209779646395097401982203348077914503127193431537454821635147758540441747784730313907368802431958480567869951192235129224061698122058048022571654362631730127638314520087000495077583986704658750217224203432681584930570057206587731785594692313829018189085164750350919137791773312881228011971720550291494934026521649118829637760516287951693199743466929765883441323186709692224664597946056937798003627583879248887120214595013397982057340804227003311953182247969948758205332302822089392624800707665879968457584507548076174538100977340165574588296180157918437777500726690412967938947673964437973084758490421611189183258895114878934569347898242465573611658970286079700787068950281993158043888269808899744026409972928131294813342384870414297739559421495310970263310368278877174014955789653713951837755216694475893825985872741023061379955791288098153189157657353351822960468601934359281342484428051544044671190739239272844689842444467899230735871635435167627418775041409028181021686193458877258143929345715570892473696674708268587710070971301807903025117310505024411867408254575466667796134467255649575332840819435236336313170668156692581889377827374510039370592467333637144906363010220727614530424713705383313979583410365839335289305662803828818501541498432837178673294979622428800356053880707740132765834662731333187354973739222052049496713557955320703573402516945192504161335619721193266802802360882555577261073609424109378666248751056794719774531418789857352968728582472907939206236427505124928573414712028678114601566511455736608775869723607071095169989177000066786863561197236725518588410392989899923987301548903055986885094190500607613366743094162686021125439549885583236218047104866334662035512844094578972346122261787442344274371171840229027173245543387019511419516961136438065421406128900226676127072926559708833990315856511864344703513718270216969156349353371499565956990774134421267254833609421125203420877515185205936696615699728169009064729263600106745489931366584211970103716476545163703976887741629270632039371931403453701416506432051555988667786603442277865368951755516112884730286682544846316384712061755908241258038859812758449359310606357112585689776053315448351683080633439597990731019952174664950649592918401834629752439809455198063443795817980947125360810657023105146245421048675870887194327931374534118441037488337306808498625756728384592684372728139569834421624397142180430385831409664645224696387556469015377592335552682722774767255038797175137846164827387344956545627105176992698354072936833615233032671154399857870650070361586436412995495732976986246526591964158559856810287510964909851069719247872292828093751520945165818877236358157019579430679586862285639273183500070265852363681009918067701305823557918595719488994823636948963306726132843940963041702926482960721510113784816270121816739936562950301772878813883312874939820587102574375658934258046063334624867305162985392563100951006682469055376649659316263511454380212476503866282818453769204886334477889809865107401806355569248503602687699033417095520342677437895787935073186368713821571796648628014865511544842784440671701718203964234525566127331422457043643867825819691487191227218410153723652881412949568432404132798785529994876527024377820594877884817329606794626570314675315909845556771428029991204646295877225439961860059091598200366062861645591417834801294669721007337889229708317731094962858226061152689788950922077231808007826486451153528516274148741665651389960695915521527584921424163924734651076087442308426993320814174309331983727359811994306936911232309714618783375357066399626761604562574715196460829407591255953771274833484244641782922972720010712343759110945047184734409624854277018856438351672343369424196572155491306819888415242862116229164870944117177443097770948115086079278196213322654555933480038255013606553272180184252598365518073503403361187812090909395587074807577001901525762543354503139524703756033716951149685650608902043455206551215611722683149196666344405475489320424726283557846074367129009623092999694283228788246479338130300666099713703849677923142701704890574364751536536130575625702485814923621873233296330623977067685596928765311788388438618509528808872302042444614269999297104234265641084207894524720418545816699555386483135199906758627645838759610251060805705605066916483694752986594424563354901000481324738523672454020356826822849980664429219151910302380921085774999250315144762007928185920853043312822307755495943881863069825626455230974258854947043857231404305947518617829000704514138012346349063515109398740262530044533007116497497354148958523606659008379933308003538216582164197505649151316616052479197375485989034372390688293744329709092391986705491485324365359262337778099256124853710968002419939699168257743060784360589385369838263054138825845072548726076211666988174948207955917047908001218294585000752998806958645009802579312669947371137263735316275969140966417245913923243410933714614881741444448569244143920957391148488875182574858959551094768853093356474884708424386398543370769981001305336779381394225857936646313459638798975974839999066763368585321910181576310850883474512625035780667021836510796016242793923026706009765121403370251831054631039721780508775195516650219633232538163457053548520745085934565998483616284236028064756797964591233878061018406821339206648935441817785452468646132569646983226150902316474190775459620109228660448660577034508341717020631394379558782571686261902613910796506745889996267336092430415291470475023738689818101148507737110002669854999732269121619194391971355104827603449325959916872050141716481025372901344068867993643907360583604153573954544208336304301287117236355803134958350211706510239333070817705967423908693854211119296108597792366316645082023924883650242458050420256958424665956875526311347798635173555960183423466325360155185327110669127892858342919440618054674715176295170135102075828307870389772160283768469413305085734595753476188608287797758205352526933042175598067416832033104720074219319890929136851320361420574221996571005634679251207829710312935012794796096132132429197776785462985493324672970686156835935043508562430571723356887191306822017056290195884920598662737104913603893187328677598240127149900034403469374197016568642087928021102078924818224991441354040286747656385960789559145317446098159216094468328009072686772122232589920384332289659144165513741677273548942015682960104712146282350511250739241848614763779080700882406620056311105234657885648398303126737063208622867124745547607404702823502459377340651985725431366759107310362176725113035325238399410302689845599650668662149449250480291711508586297844190666525767054286882953842516833964671695749299875611574770487816104593020531684877107287484271623957800695563220489737698991952802091433633785607970078394111766094904932422158014183547529035998916071415295564368695924567023028520663081411570937028990319408388472541329198246627532853605615948222702396120983758757538090596687193822148785267933957664381081719868082623014359307348753349685679063192154321437350566849635809234398052283826833771684006067852089954937269048769530859786310472775126355663766682709659097698138219243873687702787059276860620486375883021218985766397114328730393101718780951922674957095936759955446233658500850349056008169735158217802396955998664922616509224478440884848546178851097053847738327722979694590343350161409078880560028049674454455492077152017426785545554151439440752269847208502608363201342048088923597300596839457513197264154697708215194665533917518472772720607154277834220476252683821183722047835713766809834451590331130973202713727956669241863936565855765256342112465595546353291148446341388022050258466662324509435547471829534634946002804133467119559528581956504664553576751873035361580906465046847955244750077427726631158277422354466156134997857625590281274137385179343250088367103704026700820163629068309496647733991652787865483290783299716007443940474970532711131113732876754210329147693548384061483704934470596175741569744161806595121159412272545862422007512086718777446671851769909653521229381486106028295046681271797490624986083569020165677480674141072831772013996618303899209960388697100066457478035270010481353756594694267155499468155589038433927664556321932974172905382030647265473992764488801115617877405134840370199908583117494253383585796355065715043387456236760698411671063381233623030347760162581087120578628324144235081597845054579298521272312104764108462540669323198275236536328248818910875318274016482862929740988614523313809684205791772142702120234238512337825419437786192595111099079373104749450860495404226365761463636734149935321787970484935287703446947406406633787029548108500411175593563322747100277445941744319475588573777817941261720006751426899410436550912602457728952399156752870755331187798519093809004069844262086020815474130487857585842118344383942507437718782649579493624505235367416303139024512710961026518512782131871947550438821494871676041662943580187650390455830350786862933055221463736910295983073957454897738064508665267305778846154951117558117313813476944676720932085211900119747219840265804943489021575284542272344837847322045462156899073785309299107981338276028042618905879905986140916919033457737168706238003654413630561130298236988800821082736571115824196753039771504927057520450398457598083364215259733892543455329399092934722652903348136666862782055926495007194971134302930330018999825158185242803558544279404380537677357149084495930675335166320387932732785567028733010646058995776318483185142096627570518906051935541903630574066346896490648198769341215856973408095640778871156740293114434403111525349560969451806797605704631503412997169764164895665496007631859581470681625273193667964960305942641920565108376104042160068919156708811397269822328585179858419873319362358509000432673692135534161023079828069376159621127472644373744346448447150209501623139493322950850792359311530957503130521623990171659116162015801038537853351622438896571175116145429095045088346373322330792699260391049891602663817372969404615806952668636379993279199712104058081397486704571168034265644696523775348838694638525347395331846456875610179664526654526922286139333686293649045651608143248707700018311361371788095364632265529145252078357773256125230749463785593907191840604063050142675907029173030992459914570087642577296765589588215327288694479576192887002455111932696750383506525592453521900597721485349869209317085992310393216274733767616925629655509922863443740406554607018610066972825431206121601502970729024119178646621066350123300376053105307691599248256120055920181721039526102565865783334432444043961851442381872492266852620015993391981454508839607142057409729090825094470617910476458629481791474341723114025491032285526867182761247349834976660469463717711732850259144286247446904390825459390844032215200180434285926308491310279788226556883782208015091568417125097455175330494157881945146309029836075971878675001296820386144931207656573114359139163925048065895725648735005309791407625033860248122770396476277944888643686060331073445643513846965523775377728631787214142055178568420802286957063320248601287599204898718882175145524909144724967096595426356188783359715793515723576462643482973563478612178373971448659440530105401047501092621238091448254754642324274749540030693967815250617664776263254281023481438384996865872795165471013900145748799144745058763791072305909672560837683406081884154665702178572871699929378454883680679647367975649279928457669040409411982515447866123216970335630931327734993788149759896180176604312780228361461667348769462979554226141032339368474838573207154598141859104946682042219519837945867336442632463075239456265339284702917562401707491269361198888896745122429046869236207005810835315934763647770792843972332335000555350013321959874023127650306818474441739319805006300499802309717461532935690232248496823843503329123211800619582864444666889471028078015283979742589902018870244520331661145086859251122087253850014711751001392664130384620457247440455720725025179132397608346180336292015618268050158213280988806985335953368160687204198098525536096419753479444649222517704461481027741103508861754733956590523606436630769653709685088815883980085645564582524098867972759605311403734930336065313522963662005139156559629156053085093984147493036638228964954943622376682822118249141139313679783794330477874898209411888245482561916979291140525329851998921093982765167155926153294360806142307555271810095018886224830176651396843585647391696518722478572987961252987194328078690013902186619611141858596824475014744317719498910503601845922334268509433710202001399182798097550422208177947153953812395680855162140935447278267518235542369945928717112260843713750277041397515216893707450571291569700236840513036474669327353048390538462910995114363784498541276211858849309555618689790143879131545184098773926958956582320116694171419098529950905923287336635424710389629447902329499035601643464509366904478947892259056340649338240968165391931042286625375400681123746169960311554509070046910023938645153817777672296439835657693391395140969633234911806778080045548671291085975172106812706125792791347904018157537700052582157802731132088327974330585520287775372764338962618060494000459984412836823453494263306270521062956513051579640321853243846741244834248840600476290440626686429695945752459724661154780676404582886520647855345125922706325384834348332931252485228744955761005976926063388231056268785098896317614582358967167064912944731391649392412729936013029908042042939352238650218112050257302740055063895462591838732506131095735495524463582482480878459508296477153245731099643677741667678330592401333692971441328088418040096045013591518392975789669816397700108502098931251036364127435802508412244008607878204295948561792027029675529006534522153454523145982024625903850699716427613110657422709928694766154909756107730197218615781616633514140325469646215100644328754942947752560060288343187473317418157426666073710983147149797210718886175075416149245127396135026863937667950491713080606582292864489934944995058446900078418545743494614135844161166071802346639422435700666293647653485823050610591181657014073460860352718095670367757039293657417473968710841447228636975377150008073627168456048743195135931364523015890423968558629277886191797013756962418918583249895638030778579737091112075203075595173472261374041993260403524156193574479522174030666746547846737195059854707442766263256088448558330401430362967092120882749062351109208629406220000149179270681968672639107428542037310159594348417198052014217294401083834063693201237866675604516148535193146057915472935379594766281136542660669010265254398084789494434292139032212660684461771463098722854159432931126933184174620200771209414184999935818264070368608026556204818021688389779917467579841829046320029511418535988154358658748112430279719715206804127464292113782786747572695126363901047412175524133441930900389232957883530922450220112254360853889185930188850497941355071690735084080646230384571391213704010305307103147733963721880203747761718795918265686841690727963422488755244026835082062379458874187981683311853193928212634099539555098588425982022873442101214646754454626840330035122256881939878960447309167202328659695389230849484037093755193456635222062085575922844989284168231447281687301419090295786001284110972199531461596621577108707391401295547498780458581084026980869898457199203036685875038427956563135052151912911852405619640524482276856955216886161060505372806213706516375484522716778131473856236380567510223225441022850955422837828731861509104128317208054510907670375810428298015797517127735806425448221240074959386436731077792593793093469725946551025408978507869921297864102682537048525782346034936369055154330178332815177325106040250321496018794815174341836998500504156775961499054761729434690044397185751429809616607404760114480348492653205773357402998312936278918477652109085674334949336858426122242934808996024297909306084291811815369935329196629324119261727689607823678251525686773367104748324809999370310998458649413818351017864374863885371425571623934336172355887946162161188616618192538715136177585442209666907764726397689381183490509776241319461898872913604346587660174279760994482519296505127121486976257060754873280169346913075757563610318336549660823092573494714133750044429358411311439145335122889660857259898441579895294654073868299639949995117335496023655073110999054674673950221161876566624293655969472404712822946383097605415738556530148085551849856900561665190335070908807898137548983789191505848086316222424647931319278213787618373812849787994963836396544313491258970786918630837071117971695668693040200045161855108288411977454106421403339003468922177172652796327194731852250042155711722202620317512651995879234237172308280168982197928028045029479377579463761990743677458906814623532581455868583033084914579457187521938247416393481751262959892073455771160244427851420647204519013485070918222290387985113948859701037477801468397980090202755806711626798333549071911255734043949930059114731091618559842133793655036846342607149217388733368891520735017782692217365683270266047337819058926165166365392428095043661122613274438699265488890165589372920729786156341175689506584370550020607819031858390993300736997827691179924260817191394430430591903710612626561376454477735341830962740168657297043763308292056415292427192087084120767266125627039677577966643113868325905676669613546430099670094055663028729883377582705328077889604258416823504671990494875765681038223667601952204020680176692428190259041506511473018948077115354054740083846872551320956182690892974190978495394369844737287025381224873626081977319903498644768941577785582192796967748444851316877752415906365652439497102905980342468311635452844474347640949379923200091961214645344939019114309398857222959217687499658025564500583111328201669374550467641023835503846375226901931101103641666173273056863200235807470290811266715597647876386604015334761220600992264776316315389990964922184056799791923985228770591128452332782662848609424758200658071237511532869787200003395876497906389748528815884398169981684167661497297876512879715645677239703994959294792087410475510015850387644903053532820400929292383891678677361238190531208807231503691614040081519998633849188707048542108973519123667024045644962718931703420054030501411692021325210677333329026241486605380728561445694879803305711657876914340824606149972202577196321591242817056035827117542476625761391452839459518491942024786156355757139675675075009816178349604026667344633049536236681816931915347283204149827747219698326115696376676117039722439832878844030681782628056095248384675894734344643543223261443463494609501780250670777946988407629728230247193723020554205740378395268534929147772357861892191449070708150552590338068719767575598692054436316530695176778656289695291111194708495774333335042120219118217264777895628287336033112946949651006227529848300757980405484295339536300419975514689975425343567361813227270570212884549719258637687979051375072675583087991544975332711086276604146810267755206763010544745429924740046577980421033041092076669996728739105050078890599106881358067159287490398672375621143322125007382337416656300420588621587183693454464117325666419041514482127812819553650610298157543705908137358496564241244121368870910902613957170661710622167165599376594622520982494316421582634192727060225620484196191648211814348356392264953595953733815985055362229811794690587617043715323928541859429823431578211235834924445989838538205242827818840411719683462412187403211301330109665208470680815063196652943831189236843939377977436758265961689234822088863033592841556185804715287895701366943034839409165889472232778042877638771365542008446715515852612103027200578075806906102459103884458736159309366380231315443704440854775649703126547684949446580512741042174063372328914707267504257025024342278928762062708659736676157926949901414690723603266282846122932544811404569219662541014372659082095820307155603783091654815329462288311150663861842274787726339547496999767042835141494979658506705559954118855524122605613803907175803535225735815158444825734693432260001812719133024270056963696549409481750134750482463763184279333859119639368881790720798010262061047190363535884562039630260995466431305059761326066341226955816416131139402313700236267005037062045052851155400694811659923216910400011695040520353934707841383299046371196172135770174988948122825497560307529647221821960762989073242542487800339948210285267857291591955971711564145116484477965433928276216426337348804879440651150579071495990952657571685079676968656654451938839815659569783384733813164715137342516154912982282184187677695314423918851733672709918135127747382357452496244358547001257746315866704209958650305896399818316403993398342050948952001061880855849529511336726876337224268845551919504474030307950452532083759084302379261483509956039320294112445598497087728913647352838992644844101705409127600845841347284812211913507539242608235076421036385020148188833204083362469285910131172690053344944770004567899964537850634374833060698452312272842364488455163635315647817523245643290682953512501527509816889017283682060340111808328696602315547756934467067404267496832931939617665832035724062426820990955807328901160149561256299899383367237187370701293045315678557144632578673542602912595637975753382520492059349411501207079983915645926365216404209355626451301701763810154038709009965761095159903704631956588995967715949849882385607889367541393700989972465345323832449439157466232514803348638149983654342345070876672842513784283978917447297627663948730185552538982726448730307569406853978407551947628105128632168402866470974212123029179663275044472102670189353254897751778048557110693592904368774138502154687633064389312626580646198625090034216667103095938765100201255831301837390111184031774276997326447442909975503497622912357147699707660638094426725900057580699366133972295619127620359452356075002349860947865124345092108116286282474108131337712881452814709458219691402238628026380974578308083027015499302737824569549309952471929900602893305432946534458050366938321807595694383068327763698817623945892186227166211631830698310680455682590920823401536142651229004234572411916496311844375860151932593790198641765725781143941562550338350336676287822425098856618474033428681951017211869385399798231676620053629604156508354292956103039637879571418449995859006843347735069653768775429275872904094011818594100919309248137011248229237632326943878801525840619632985391182194393621392839496280622004364755345070545128932441788304180548728037166372631042320745265907948391065529468320322052523920230521681895846856378872875267136801475013363715467756559548281176306179094571101494595254410503926109427969710493035455035056593517101992778990326051835536842342493356443865325875479082028876533561483799607966649745192354423501112757021859724077002608766825624579417060739659805136595256196277985568445068500403255963963929444615859291899782716788757215191419799599466912883882523595349217551034457612963887329395094470773727299350633753541586365225811927955319194908524400620835681675352471398670106371662882200934187337533363104338572362365125562282941023872013644521579159660419442149744842484493948987750176503528164894612800346544259943648782553728247817095394779453416942090315098282847170550362311225923540392621807961013598551844456183009458391745742482913608138464600616967623849720335389930657716458843573338114039425074949388471116338582123156045973285716619206060565177241458790006684148122404636275703726461784812766084513881501572499368707580321767339987293875399692823234126953725982759281151963117647598008263689381468935213770335753629378304101932627318723381516715863452438599340497846832395866914047663269989599743889100400382197749587148949267124595802379812177170188283956491384924499821447667282722544383465049054849426639156331351978852708139029531462643373942680051473062511054122868516425467490810030979583799012423977532419454273208946335434636520735155781019154796300983813581716991960593295300107303775626569673255363753615000203550113051998037495922752630863324147955914814550444499782362412642851881818339807158440161418701134662142352561708497836507417831085068344793547304294096416032345103062625970617993971621295217413899971774310839995833990111792478645212658518629501424435671334021121677757243763888135399048189601370338731942835772441084606818547467647580367660225841994997566857183994248345650612747483423001368461179651174204980990028606014931391266128206310899834075139033321565417248785676967989826825913281674154399145082040239213833735663470187261129700353425838187357355781024195495956780117940232454666250754199898120452203745573501753951894763558405462158037556460194287793517103009366370337026281510718556499894065960185587530882767373326105252501257230880365565736524263116943235220273835184809893889873269836638953876108804579058420715954599289013362843153509004144369968649389514528314244510335807915495861861817754250270045632407345181208637788252758927661833007426031153422299170447705622481713282833626836528238436459409322186487630151242658353644014646144449570558559579451863240139189085482870507991903551308058635896002820094121033323063036457329004279779651044666400055181706202263701964926602131797036471173834857839213074380952956721573811816781866682355349047016702467170048461629046579113341533116901491155891186319099881005558801085830614397200759406384207333901994950688005896206766756594343480842690609364596458733892407988443482931286025471026625307045447478140438447721940899949150300162227324300031001623760586990154921896093955660824920204487342653789894297575675932521951660300165431482847451271413092007049193136028118172221482185250186113524826932427125515483649950904904808815379412194696581194192391294257571500453770044672566773300666928879375598805814317978492371520488172549736926398879127580454346734119398905866872731726271439936784415531464714633552030697384162147224958925695333215423361792549525775797481921607108347733787271256656947410522714409631421086554595243592164336357488366678217242549617011347755284765471377867053411723165339384873317942573888366948210326484363389826249457814774714146910627261692676839397078800836388263331438425666974350281834005079826948576599931129066192992169079006427910618355384601887067450240886557117986007595344530826419494278258933763463978175999831495934644010840434935618472783254292298626356032273729189118922797752978749124213189646620409559174052075704892271866356859115263602203064697560991949658531802291101865825227893237080308014092957617103908328989736359932501459143748961370330834264864396351233326158284516629959307672702193496538790489605596387867709238350327371056589664828006102151907890268953072372576302790112087941282090809694837719801036165872485702904929437578126780476284266230769808332399829699977890376590169622543635591275016243285559112151979164980865319247951964210315663420589529923152940890234354166735340694397368073012941112657049254804234022761409577191954603026468850762059865839927611112163161031856483061724091921364555989634724141202625560466167800988607697120125103989698451856167508656864016584043348988670028512056215529057263396036047116327999203560622463744466973537515095972913495667909572974252406547209916980198108256230098706223616004335367969132079060451088566449048643487181360473725342498901225958683350200221233231907358612825261932397899157306359891969075428610125552622219895370660531587168689653231069028055853306393451687341895562622125057717621009085579348664146632119134208632509506249463554336818384288752936768796969438211155572567654479054872575239690847725779381044732810550726089740698215267128593293491878381848977906038568300567879101352747758817589303463169247147683179799756115173667242122212532418534511201135119859155199801745101247609500818958038590813518179639850373877560075054599226546909657387642604616910760320910790583206194143345312852051641800965788014223463731738090833431599648054013222265931806160047579854644703622304393283251701734341037539426808732498232526507938880564257221092741238240952821883867836068541353490064232968299241977948573635654651143881505923624863807904543515069851648860026622197710497922754464278328098721992254140582374246687074710278280883374740514555377709839064317270295172886912595603372029706180321383459197615661003628349265266367980025706185337478955001933716288120917138141189595418016857704816341456624255327037374687683741755303194681570640173906483777967184549993369034968633421853463098969402337901532631649744569852636162091727677654755063535632964781123325027261388158620314278253056726413881187138999896739383945837264240973767604244043672836741555878885603846477118459621536884845406801099199215895092534242971542907529106824899682257032007859303598672156675972387266612749591850465993452093872282449656777078590708345329036359033496822247227423145596511747477823704301696012452246389783332066198903628775186529096010553323341557224515723090597815504070572009494969532367710376306429161737993882741475394503428304183665545705618904868409966698589305248715350098165879395411207593757446660744280185568440145632934508089936776219832771685994881032535368009941244800233901272434433739849958674759834485487258288204616941547101243509586821467154584940641227639346014193525110092878576258112109495719439213852711260942115192578605464630849153504593583750995152841858246958976986858125425739205112236861989806833776751440783806404267481892734227268363140825281165846862402795259068452623715127914651416754395674826436456209588544954220785550127207000435991103673009233216007617009948405147869653393756538044285353072881722213000703676913845951344826491533993912720745082063175440060616699088678533617506288483183357830097125822364187513768909326726676811660872721306506706887777874631640568047002516969564668420141378319609490400757879225809549922280088243864686468809527241342724880309352479561252653524880722574920004933761296276042794958955478895416621729148130131541604385700598350351095489057821079496207735797017670024797841042672571585848818692493730935505358080133827188897516479040463590557931099536357448941013701663687765626984804926973931418928029567244594457998277822261055660676126666730230056395269148724507052488185129373304284081189816250184245863213183569120626458726941941811955636166318533419653746800941084856207711723623268934533352861438618730500031065932759771445180162195912204660209679825027228369321551393061607405526540023757199010643588807541800269443233643731570086719530130910551206616590721961881921035754855433910595968418619783411940594124018475358005233904047456540679834066310374866402931674036409525982491289723972652306505041441679960972169708297505373890999243303531225362474932071150882387768795615961475930905618301182023741243556336654587230544030423874207900498628076840426793726020319144271563603231497038440712227452888957390736139472576580834782924603775940707290945800941443103536270804411569528898896953082335582447963926256982275119015104980506893282144695282033701862873852647755363342761254095842501530958117524688259122200783051374100719961102573106170146205312451821596080513173099869243169632572443284848322055220115268377621961452932018335462177624649635361625609311757855876525666440416500962286756566933380090027693053005101577402669378690655217072700637969391457541670447498885459223463511024135521784515799366482126416509408831018935712310596307816239731927126315269687556939345522884203179313324260470821194575186196607948494827254491821867696286778249892584436537646479538582882874704058469770461506095914388481502184723907274475955453001060850749467565436797060793184875386898259557538210887905440791040133695345074783876675434264864089599807235705641377030424466113872396816333136091110017252090627253619215871685660695220943745413759434461009959981049397994552374923164956560141070551322615146841819680952557325582264410184433682082779796447199128848744138467609589115696877876296000459471326630805619469066816810679560829985077912212789005723789394932867325853222567046301431654988931271553334809235315820226840940973298673282283597356250632050628781149729779092238804271828528358530745941208941396128480494305300251429033654280804127695956726047522403330919134504875058898287624091816063139869062661547069408031456181518789414006294645380581952693383801771730705894969901176139296182993176775993235846661039819486228495413646414692947130247516315656067378841542050315318254462713117923209781551771003663375574393698414331001927994833611676503319342217586790493271381321273662209982606100138025451162597974898985477986724553910939104921839645551717823251609119426528817455046350104860576935090972516379393673390119416479625755670176037346059381884793775138970311274208831470260276957498570767844640384582649009659190875258756184875698303031736757866478936306224799604231459410691776811274485766868352790750325960185037695342200118999214475139550613659929056171962323602518252642437442326916692152207651370877318109463130753811311682618688366285043272293374793244573689485120476030079356500792379536655263881190881000466539511054950715935213024950464347851235571208011020328770133083778535818651673473268203851560541316832009122844952850822452683297437649927443124867287052088221786174316679212981908115134861533205069293836594711329108534461829913198970893593273619476382202619855567498016876219471380454983489924256517651407011086716830750295241416900067685413886605284326756888085018382781373721743034976552119236533429853912330327251366628506629559904297753131872761528682922341618250410077853033240749828734960602965304424140935319297163469913689550348899416159152445623864302509143904626968479212619449910386469338136869716044549914466594344712749202081309098824919802910675060532261417838132542681617667747365635458588049365438312762859804993462921128996911973996249302586638283597858088174740270756812213550944629668865638023122529429714157554032989096406432436534668394164921731842022325141245814022311376994883795232845799165091599022041234600047331561222326626414238742857113526397847681613466228929226213482192906116681200431893451100453652715026109306641065388117321358142568019463680952814992478008319656795777152456746708674932493108668949070141842828243226992614073120304589901110467939985794492122101128523611048513382485967481568526898336703736476379461111619396898646274513021521735007179493666816316073939548149263320440800145304822862520444160255602436854711231671655285844152339428466990255577043767348635255033605100750597015667522121358041284565737959598291813556290509837963957167081387852107224759336894126762898493822413801318671065193132355612555107851676038003167208720628941064285205626879846261024685884819342789487944175465738126269645980276572282691233272338896053817532964072473144294306339532682670202392097827169109758201516003202841202103831231713134994833367690571912350612514267967847489734729043627325315440528609641006345075563197651219574395268967944233966116960204113911687274847701825602316980863030479911344535688408492655411665278119031417549719936304583502615157903174855418307053359972981104753872259471878557529640849752378929088426962488838621171269125078557711696074427498075259164911294002481321952806072547776606870042526772493118071596618275193099353360389669458196024221283940920044165218205915685194629612003651144658622675669141946552041997746296699518350152668379603430597285548568420883448898640758082128165161987646732101552552838864226747575695844583833662822602107791651767777091102736987658386186292422279865784302767248218462023513237090577334232503986906720636185588523056133014056146815924946769482464173251192967557591036451838628364704575662519145403399734025941707044732040608829064590845069044540406237646579165040497889383614477433788370625874623904819691727611365277584871633651057964158991261184995066206075349122311134176921356116625764274475567280163173062290737768808525543688076180364915558453471267421768127377479726963055265695133623985617967231468805217727337835225063727318268493119116096300570527851775878059242074448699359905935695089407462681613929458860079802238973764582921135856644638039106472191375860319840077668708422508496665813510531257726022514255580158087388317869565117816859331928429707768675338029904923407189835761567269343800806021303539980918255704478174433620093297236939719731293200647230458960930880930049074355405709277569100846213071718104065095797257330457422115955702725044542157396326049489812799872053811365344252640052605697443166813905861398681344462131003869935446435288197180937408423507888368236752177743267962854442152017534682406721116777091979827818725570106423391301728635133991555473940140317428842220474225119307438953353154588791312476595159038999089428688807679712129141857348232369196516342323167713975889893077172106232336700275412367167665207643056255646663579024681727641619851278659197639473050652147875869010854320114359678720667391655106201095886221202929990786758813103916008537958462357540067920573087781911249214616359502316434639462102635504453092039399963224176258891517604667719795100285667851559942901469537749836298367353126882137750760617352211016302036326502757137401963431035763934845891763851710128525336991043368376759678558984687911753566086330792008242067494818070912570813897849463343675694259254624919784097903860599622182014311956923511468976212209239008268655076974978110416910476412846174210626960193607135629657039529729525095923685508279708315271717172817034106769126251801967445492777435983091169318937380909443476692996104674540649962038773425783810950816814647522609608359080526011981648818472618453541154253616984794788492202414381148334656185021117382650974539990796025541241792730822145705039189991739114947704928317387816164101516344246745673218924013639469838254601519249383059818164796731269691516443150715641948083181366787180033267264025580150830570975749220755589816928618055002037675509846300897911204998311309871719879185947621142402488341668747218528521622440939310553299297295174936612767429788708937457840974051440604431781290948240493062904250217653725156293588891025966674761213081161372446177227007310852412938566345151556151971324241868378225730267316997449407047148612358142051341221337089745522713077254941777313166564552714265670163906121684806666041636918755030685345480918337656228637089258278857729664479087153516243314936099437844428305827298138475305156238257587780032510971183539989478613671879246666825544572110118170983815855371423186670343695946818574643405649746636381661165589263623602837718033659133474648865988730885213844443597996692827157053955317528241549364368987418252013299972863041130509122490975205786773059582300064274214713425291287330733552277444249806382669924814811322492011285299898919689223015524656885315041195243651696224672752753254630154825186091327629373200754952038912199830898331789375325763751251669306603799043001409129810875015936100623656245534789026771659975306888029217456095518840601653907311433210644550113053361744832129221847803294740173215143156385947683382597113094928521480621928031077481289016996234566728062494326249497695312840959001181666719476361362682701760534046362433303304342155388061390512134159074684952830686139071219694701384564169597182660281494070831477290756477183766133507876624296588068319479801278529898899240069017415131258467307156608354721410048006310124469436412865676892670157544536315162436651276355355843480717166062887166747364664682388391091923466436272450978028537516913616740655442931602824923024829713417791191165022932537595838092781566942861813187285408295874430575001797780987095045756734997466320762245635331083255821360449059567445012976984422652335369622671674249903271527695877586711356406511622380852407818099948684221702733114731047940935545793719144008152028015221270278627588529103687593636944132833109472602381979594409962065725840726875886884532705091988396962071718823166245056349386910579756799759568632563516612524977351596067131549733859021997261235584008733561648835590623380678698792880034739320887221968271818678238023660927455116890583243822565211392448975383937385902500142389748341475995984321629212744523441608855341947929951640485871590192809307276413293248382694544110036510032708262129398560555991762798214827502138874604987190672191270628243441467822958369456390644748217764080323427537250379345480721136827959827240598101191018703277433769260363907615888202180077842420445879748883145703351452981588057809175595633069354303253513480644378744201041163942708107909805405942568567554442756779813390139771033400352497099933217613471551675769801292356848025944355504864900101863297926782703427869021052662649119668039808449241553378923817561162694526235273728610376601346447553036461614431224435054140975732091665920807113233450956538316614147461755075976859932136475046930910498151645568451229548859536747536067818898822140789344281930756513747416082781721546166803796260483856739610906203774889356945358294884553830589258895334623710765493582614186688343064529928302475604034461564093653867607521053555129776991850290650385310406680828923384042324550799232387731368235663248168580682643623384924647787267411812102363303361718826693006597446108481959048399928069036904486355635847839448773454279099385178473674990732067604645186577551507652945682178902111306325294017758599709699150098466630886423579462789341035500127864947636433611213930522229162175661348850068967233362966331280046795811051290300763507647776570877762409441449680706592834728299684734914052870897729449798668837708979591401811140653783944756604799029767793056208909669103140795687567439696185001789741599284894541131872868395118708202224543902157496790587921060820664150696534959864180850982050902626671439082491639716787787572792830078445778525571247295188626167393054028403250788701114059373660746163097668228231838721887125470115621871433284458620513134923695268622508276893260180158514001245228765165852700837489079327806539773115598783040484904112980528159666687664058568934519699089421581165797024080410909531505361137941959758540768932253794517427019965060460862374074140148512874998381375692527627899827807562074556862111896543559190994657622294736570592522526502576558163758400538636620732100073473140463740988593979434271454375936089184570871666954116233451026058059254821512338342561627236339738389318984889862718940328751488922576421261543733765936550306731100594190314557261204929502854370629456899924549594634733380140244131654337191986847709607244989043060670662197082531200592198064693359765339884205301038338735882707420081767285461390733111570238368658917070358847367392284561271991718537286981654410093704841963160775916719479768628749902411146600272968743791587725165491582467577563540698143980602554757075860922274344781351870228562907482998131170008060593421762222576723712354996013750772044696119652984008865523111001010971934814766222861607090100461235849256112501542807991319165355394685114490120588633389636903141254982105091765153992447305690738747043705627335660872784283034446945231706265907273532270313060380322050712004488913540368088285534691865833727315437474308421041419397376227715410040672066230709584522264469002978615719125722206080044542488632976926806124107343013389016134111926634354009775668619580902981050119278301473736355019936034108648359402947517476113027595906788618172025092276892578681882332039750969755557787305553300876227305918823503354758121907518641757129352385227117878356148606956872355442506588258439791198517869015652088123710373407920008808354926610371596051142204847185618858336561839324862360624808957150048228403739839786554935978639835086746101403576302211922842126410576901033163776907311583975640767897657660190766285650224232833107737304947474982058168709722102898401553398424948841221996738887914758168191827507937701540669032530242264345826970917081702289297726752179913401743916263564813154962186581018740601841353576813358272004688607870208606704233523164971702262304897255348908618022899127572015492032543170579786003270636354357811190276428284468670256272135560036558083694294802008385080318944587456395667868187993495258757826321768981468019309691226329436405902926158237684481867593368506638850073585065500681368077741687144429337931467012994162467376315928562709826839371100474655040727868622663333736873604907252920315145662397975654399193368636907585287134213062956367523686940582948917697895761374705910368478419655605270900776615113840402597715052745067251927995265961400830106033945791153340584691313765247552432804068304047283171034545351519614275271042494302642414881282102475207160736429153191166674456545643078963076729193370382555795362525454181073118880954315915804181718768970300036382960640350191335044572196542292464025950261386742305935135525098003756085252908911066783952795018401251461649429621690146801855516754891341106567746644164694076601509972458779975037330849422053312910810116009448156442165228135789726421512046490794021936018706181434784258619835102849465089986285720465460286564937069935599423500789638673746472351622950293962317861323169985616395505256072515647851125251006163003585030364485857478699555773531341813962994344993842530389366384705060284586475153706343742660100442856124806063885112235009297302172651199190743444951352004190987956319027130197686072397924517048795225908751322911942583577865470853652581634598940391929287668592486272757791759378406139702980913971499059017894050020164230308539400723666629781371797907064797666596787250218792077436486122522183722013305000321367264859147124746423487770808167062092835953376916167896259635670666702162237001274027889287111533719786511751902527161667407612164180204929130065046227970665770980336971438755067576723538388850404186530740204891343759276159715561601265212417727574649783883529846071351000794609914200839845599713654222047818894177825006953632911604176409939890071722613470761145012664980566795000589186344773220393966687867331902861157105096584782466208649163440547455206570675568203844542852050869872412235755266770302435057506558717537045697038166840127705752799840001096181914320965381012698559768649715479691800898288163367780319521569635517350523746634605518839144730864212531913790363506025468996193635944220327005822648825501643577061712425267726110642411842257450098919486637995212655514905282988118289451347722062949226682825392775152364430875931470726470062026038985682617569658753123974716353157439100489173657174338402176937987185518241379840801813792421508413631124309956873305116238995811425561444861938065913831661501200885196362077576831756623614829647449803311034456562048055422769006971787640096209540952657807582491929120198675430813473627728539266122670107135892119856410705826658241170837130078606320628165276948211474266195868428310258083931196586304218696691431023429427908577052023299164986830100902439508839785630646004815129787509242416814338066815039654462800429248693918994729644395132380635996226735631505638020687920171392256749014430836402079815465700388016525748445376102719382927246722311765761916018458223097936979668746333377989695623592940249153322298069826519214570780156678152159973233056454640450974125079406094591154968759110543906117693116142143608948739567843520811390849045189831605182392691355396186616850066285488389830304467795744671316476661289502125788855079180685905574435643837073377856070970322843683520619888372272817089075320578733687893805565503794370715267561788181969868685524545603126709676171268420757077027564272897090572822561772500364819480543453736363090327204901938230842483342596484495431847717846644083782626233472791238899490684222355595639841330665771114366359110054065907065529987404843468819042374421116416261653152727997644038930802827250175251318563318568442931821023757872489226607233747021845360553565565681759838651645169047563687474079278853430305081093748773436375515908100299831744680845361107026115827251962331296977102718638120491703929121153505528672002098272072930481313007400271880889331154848761883002880629942029383347498759074738453200954435291958312569020006906170532639916920697170049504310601728090578402922301042270797676980764850748582208452722092587160485729980897096051608235162473489564487449282819886173374864088340344995889659025420632505196102951007232162259138722447308818010658543293882366345276213042383206104580000264480070681015213988272051422838713007650218768007789884307176177900424398257674133079691951517199474761080307042373801208903576573892263162621058077764502891413119233108796437718467584094719310561838061277727628372278320518566154890933302084268056498700479866192172195755787624891460877741748866068717311297930574137758352139284323606148052112426338871349741955286635960993140116416890879821902675506694197867892818753340497059427909265442585216075121862598757652053478596582060039081257933325702453020126006422835436271578577793216165691724814845686504316351438292026122858851711871519718954758222153008014369867793381056123630788620682421773632546721357322411501655066004881051705683072157063862437344728607752644520948335481790666314269336119362990704895816393045947411099787613265604604628022871618301139071885962667992106654611290977361238970948433342270470710947838077130506615039895753497812511928694631733807414471942636299388700498951971552296841213658659170464578104294345311276114421719270126776987553876868486395762522664564981365700566149764137613777413684722186127575968221152115497605381389810839849896725695886714403192911745333759340071868867086968375713359813467894151297035820181837760018883795197373028296841796509728451184971866361095904664163234221319656653664731014482742781582885647951472619925025252196921134994762628458466108525397566394748958985429790817187156245006071173380175183386744967131043046232925213181533012844904264616328808610277380691335806832303763756616537935168142093819114849089045933542328580183522685589234941679494543548691829703399942833140551328762421538531745116191884120278942849063926204628136247243658753756621592266142482350036539098916643800497890253335290372773708691636179633420862196602088851187981262259063971188692094812438473199886155976097720892496565500329840700397145305896967493510940581843341504145165044246826777070893073318473375461577027615535870432090183069414586483730965023201807399132329403927253943599048772559154185063873022120392039433021663503441747857374101913109222652157827964670351693817067876409739306558410382585318509487260166955491672189183663455742836129033869349777044613424881518507642072131046627640980737527810347188982052340148215799675992027254330853519734497534851806780728377352838189600993880894939551098083520080889830035068673990308602420043207288170753931305494622254371415983501530962423859934370245468018029968091639110704282339034931849071285875372921596205886899564190046244543379439299496125445521398842804418888136534675937212983605943040291913842953895340892089463003634793358215057788038824856940749300737120440080739583984930306372458646630826469368239443065877434334222616513271173508359178453154275340114014248555939228035754069381424026638083879532296080167482445836057450524506873017825513332063605904141882833745696972279058866063265465234714259959786531579708017798151725641521567156571908018495777802470043701862037756553795313016107127274148816417409789385011860402939751592889490999499919327247544335268947502865894279274637059381081011901808214273390893553513309375109906290120861200368976863971532538792620302553096522706926258796966730294678719616692791613655431712350337341606743761390164899171841733952328121893624734231100673018743888952663789746354490828879171164591818019757189264673209982169141408714283397764562480049919033805629355171794822688125933458845642374047426237045992799761626887880209829049894346311370262410640433517695602636517292491154777245242712532337565083115890562962433835985100259668153192101148263446433115304839711313019350677799078941389234005761520248156163625872274550486055636183652732592995903829628231539632907866140043764388478550262243511198928935201257783776248414078825744330647259463258396545296387550863628593943902208126734317227914174329193541486234862074892226714627272363958030694013188119441137503736334575225560142397420757700876089640490694665822933394724933568683526014735701443599985677131919754514199021373581902873833657698685333490588977865277660111623721332815644267272807356955359265583066896383471491039808483300118757852976180424715530561261537264632166153987801022048072122708967031165848484729757462362373900609333915564988902587686866086126270923811309238521441472885803813524053667083735006284561504975073414760702805723250491082199521453074474073366798720011748853287509651036424027042569675042907738315549901246603614356191660629077800450812312942413860608061895945275791771379418977412636723514256050594108145452877652020770628020227962050083666649009131716227536085682703438701558160706546625829565179575120921285497935461364571304193392388650716848748127490405381606595019498136971586670203475837559397759527260595710111604498203474508556018460203060923826843940659909661945586040750263345311968221082831229895789998381079807159971667031437567588152524631970712171385366692832279328445554734881990313509982865048592872702535403667802226352022358392565694609794335280073381422691796119574576838174458892334045040798164356750534167361553968772084110293648991959932718034514618979234389594986104064537407840469672558965809153893526703906587634555342378905717829408215275577676033575165698091012376050589766939839985201318872502714709450054129962668756856286114522434475647629962346870065890899887828845485317368971780172141392029214073367642365228321777586976072377586439123116987518102531252091039535642354804118746509701189305494080537611565249813895743718633372069658050083089621260295085985993830170292400430544289872362330077740328847888211475178856176366120810434351333331713032134154771425261682579753935938579728763211983528187505281634626776492106452201724551953419044421886525857572601389181317660068898804318080048374230382160426476092843159290100904709136394651311586983141808935197045034568207544793749196080350330962915336668650477600747505902628458270526840550344768115285322175477846361589598039125647721029221097341190588996666010518782401955969091914003508279812627313555465883145001711008112120321970479897712129942575378778113825167079169235978498842236529611307281454557044454868766542011271875974359269828551032616376186730660392340396043496113451126275684844262697675819893177557020030438608963882485029591883382527257475976161808299828695322127544954663450505681775540360808128905854620978066220748118375459866053460851322965317865257704378792047606851180543751594065403684338645828766363682610982381019371404212702313424907057364799560908625514243621392167019906000720310861895555536279886067699403620940218935835933735277113221854771817760241739646543897181862318243950612703265630349708746317813445302520588329881218958575218786886785079475798938170521305148177154071896256671681830579646736396178238666914096800877530219504769395099732215780746752145621204703113080723041949551191400545168200486099026899605211986785460174122390923237654345208125595178220379001651862130944658315771519946657382563744587954637497193771875516027216098085658588540004525749780680942265013237460151676450842160008668365253844143322500953425059557479392860054136664894671780395496028244492288146207922885134228082499836062685874397592937281556438883843414869645075773321724475733153667481690476483256524267840962191028846042234561598610490094266034953748970772926963470397011164098193791292703015158949063008981902281919257765466056355535966386806808380370480837786949871770098066218284644493887977803534588723674228750670388451262225823248232044350689674612411437784030111968628449525551296787408293178128962324696662462221090854887154935772555249790930877135401067496503133908021343035008718564026940789829064780723765735545018048362353767240992024228429699592442577299630900216113847451009170963956234833374114722145710950082081229075140476469139824509115607079674226553921181809796942566895197343876478490539059969549458703272166935627841019201078675521347462821616848478386913028230577298103038519978105642480247770363970132570686579602951466632997394502164485388757243295425362771924842674347598979678398658159564965244307298853739307215290050735434694015583250127727651828529589191012593726264785502223868406895190785432808447276290345466069414388994196041931482906426838177103445226295271535044516053356289354099236124228546399859993318640840468521274467274351573434230160836548658177982919071101980554271612132082524925992150753553765940804083997582039306492571113124396471523173137555586509412057856215058604237013329039017879196306235889886644833217888029190524700815886657380300919033085092727957749978194314754505774314421436816732631328980290041704419624413473008838968274666527141569937353030899869060769130021576733047862453947549825901762729316832595595561857139481639183357352969731926153425461309661146710066483250552154728845402100084946877859860674636082526420119048757207103007669613920828076583360034935186777101484860927750998857272498127066045120126469912207342168479750343603343999839548021502790906890592109790147283014946686849307337650526426671991339635824878323134218706812234866667199007980577160074580807653886049317017615564119325311912634907328333909013958422220785336227743382464817770542304029426914815756042107567510624208993032511353122887243976567526787494619351088754985122582346939578975752804762737471430016050458722677347078193573152495367722271782897588375188764567416623443355529819627772174556419107350603852677790741655824299754583723797903688213752784579295947494780052671410447966015063218148124862722954447681217547980886386008169771878128924484376365935043096033640579372988053511531647700005269382372313350317035490410188626908709280788411311110061006536799183573102912600258618928395317305142536401597153116930123961237049424892987788459515766259321540465704050981314862384386333858090107181476021791688533012467721405425792080368752240360728287667259394443217554244637781413369225301578762681415587456233748785183614999421842403608715330164299808236975191332456359331521377860313088826510303431959601540670484192215306213295757402170179737479240943557311197520209539479050734112353981965161822440562040066656484053523989533156573106419517184827842222924898302987143749752136891638838359363889542138715495934738154481467343953518013908793676256680569114598333040872679095339294010333941535331925491171540311315274350853215786320757513834509912155893728805325164003532333671642212895455273309639711589689401244271964732334436255670446883471212582986978001123543017153925985692469049256554640700738873040129538872012506772047435219304304918986137247407573655052017678529535551130589538738857375546418217443057918977873161908100853760647347590416533005040743219175668565274976667909365659943281271552010049833613800827127631197556804322334981221024236630983568293615155819060950763617352800864656110564857340955008370474271478507403524973211398739362520572360865756268586032897183670265767649003708684749719389595404400089326573885328753464129986289728215212404289167670759145964345999412083509001480266822778821316109817198511957862381489430332752131458369324755686980596174326963815470541613907010759969560477006940197353452073933460358526272229208864561332439952162459708038335024103873996126447384729005565609298300833659321938757235819192093304316875704357407453943011761681623323871934653417245540355892832217506666282339739584648455638596416566238252483745997741906782197483885778136966226479538578248083602481074958586704945276653391549953209620007620999427118835191905592330434212432715956040218042079226082999629967214302673198851207277377190672791340274586097165876388978855436420898136228165650967608954726564653549935104506252532785663594555320611664493618443555814457968811192518559345516429327630413977832866398649431325028385513713268438458725999115236733205226057405073312641982606330600248136343358296209098678638066410103480132838901227552922199222212775878386768402304259346151917601256569033981788510726047336476448964942842164206180374723321940326945768837241053095354840180896721330026922345924512229849110768626936179865482402732327153000178578086378304023100794390738885628216893156631240638759205463669246883577075217697348576432193237830438861908004202145164239190355398351675978814514928354057310315833056334474943640001718834522627616599239119880494663887001877646149055059015799290658240460286440509953544929287832787317859381668771032538894353153589827646421490144767615098782255544939804572684727114517807185864426070183203166889755965468110840000098880784547867170367261133893498136039509072752313356508550324078430874336440815141982729457224860187531700279084288302200584573021127444771198456720185581526148763400250755017868037113309604316003509736416569722812821806235028025187073291933557734404826787764450867619860425183264365290242728427409812576734500976917772044114664849582316099152374625648651118302725505187099438863365465490741120345325017478846763810862585765096050458252127043626345350869748093533473998669486534058446513116577170352259481844935811078485639361885007086060148460259088312871992646341628943425494681237154358542232831784050645347696061084475178174924224812205501628147830115185134179283716065366529719835548613769126164976831884357338404841020895113157278422411287929379434241703414635802327836344614462482160656008062357762290269326077060969667308156282464033694735001150981910539153731583315788042552231869933029993770330768710844160344189669169585676985496952254111161631830583478007865705533654424218001662030521168202856732722446449716990880321666550935514120595080160017243941559104007283183163554290223678666255194475317525785984618075616707138920618458964428450410191206498351901029918842748458319514775938390185945493932366131121446948278544973277640076960458330418739549459312099193559779493488414682651486345480625424374568520587110863662022993141361240631327077685384911929809916772914248893474824009370132676594909855064116425845628136601736195278579110536590655976607087070382746185436251233167225158071420691037902193823069835713959907733597844115198173003528788944194623147649890238468921551228863613391183363764372104397751977936007187286019387202649154309346315196218500749712942995960678242010117658287619329295907445688876330056036978257043098224799918864340814298711095425828817230671305806105831382503574641996636894898161584560841581814950651085842912685885328882370552811388956087885781511499255415816948890696337604497220775937724784967156895615439117850933606952773091278052393514906335531325130867538116511624130090847214942628724066238064911068032006950778773449965570241510547118075975284197097789523366279615519825117754974132259956467495067769765582251398835957996022334171147830267893096716239191411348372729372443257077185958516380469120137612790462796645705862395111774504427148861419604199119838149673632196641341518303182764083867599039587576761496168055158233405829266432177689668791742871475075150132376129313889214567964225783591892912613718746343532785394734285432816469052573409715933550617461526768536654652920148648872926050234407881012412287868875721006399164974775084202167709043247508571354714352052661465392337232825517682687598927944501698484219250459425753428394586534374114185047036910310236472430048948217606233928074388648303492562368437136908912349274820163478214843770329808593453090624638735900948699828817791774710061488412456575787950359893920286954138032767605181943796864812494665673774147992666241310671631886574084569504675169185079060386916817765810314806635280356389732754226342084160831604115552426228894421952179474066661073058761367851629170258368646747814784999986417161614939388151871022249103706281041333563407847342436574984035394963760747377529998324217404760047782516896034253083039252069380909302526682667186822305627314441198874682358954853691288078874229640466414365267168703457580046700428076454206452208543662428242182720846933917615018290705866658327417493268552147058064490948093509733320162120246917653436723623159681801543637233415390645392486326627942256615754273275401068998296871657063729294431460999039906856551882685680847031136845855687195906846626491473247693923487436059667537645319353453193265725497656059617523584145180220014049692870978798827174713222795684500986347687091353595154781049932752368677312866580728780811409481778883883489735823774252040960228924349072033594341625733204226826277646387696026556425719841430499640373266296037120686864427214244899578411736448020270079408117079826720177643315835377592310755936376988000257093929378443775826526566946619214704249667530987054998380133191013810132460763106943899117976221769208499292558181104630278725121817255655590214931023636765361466189760078022487859684688113810945840902013014432814790583067147721816257794514071353684364626939487907839983439202289950444333376134050879407354817060612864069775416474141301506217139466707260831877791760482903308628900365075855850203088496920334220224984387050336467154342192950766906493552421302859614395220576679497463974164387141787121868955860112552793027724510802851539826793365871482654528690407247552629787142497202419132079170548654881652588579965493869464219962736604631799747679493004585774041248960967923775625814529601334609434437367781498188205963751523614316020921645092478642317884768401082875278978415602722593829999078331510376552255339352757379070723321763896335555744895695424251861812321175901763872295943246827544415085626938695361327213043198631290172951728275126159584865154107669916966456232824783591048127161052928433002133603908227853633035842180140777748636423469357032095924895836741812965028773941877461235977138403448195398769736169641798451577353714836698854814590951783846649847895977345813868424589717542929080830541621525786961940354345028995025111852678174905362238581475745240539750371858905099718085767232738390009848155854006856748703712775436755432302188803536890646993172870274449427441450843408837175489719815400305936749959237069192882884907455985455613280166005299778661593578854100995399896935052471465204015484081171159460743388728120110671723255482787305223935665841329410746974092893487031919676482607171237313612243528718824194286121246617125736261899763996761266610415655863236357832529367527879060057372840759968819615024811728337471890815935737860571972051146491670437844858703759414806367059262583334907574411450887139134957500044447610535913106368871582483232313650072042071082189621412676984425126860881529551433869991101790335893035665781676930149877780141313621145173467214587990804642093376070441512708361714961209321814291232410783862010469804083192249100487574006522101418966442880392194442756416546850390427562584538820303662173846919869011462651212679886751329945283756331207099999739767309933666518830810375434132691261480661272936167094595589281234605718353783349618388997483347999314961396271600849482728272104977433825574720977195017265947302459459687079448803790143762385040264886250747518896543903434769464072561095243852781922748312125822462460749522872463747131292506272685126039299511197429393956905891205273272896517610400143465057045298469557153782168482147051847933194002647118685483322174156212664634694993004427492005759873648820375529948828125860315375615891433575562157248097031234723112219633410571156139097210298415853455155286865581780243818639657594526626992623636875814285151392408183308000999204600582658336710430310667911123163616774364099409605815340903492457200562882572362284760639136757365033947538661967519478122926773601370855904517095936168580144905891924019002702842312205232917037316177623808622975975511841570173321807780493353149360641308516278931689798322352115245776248507398154677054554958487385762402835767291340357984360233369843865999451172063085015753432962942930266393212476476397577270955583701536292838657861841318345369644485290627193164993995025126704743573973570708583741459648319429088416443297015377879010952861149718375772873144699946813902752909017450295615758129261002209889916976498404803201087165038082172789096493990059156169326282679570108055060945104201954719844764808171364302793155418830407613179935069130347600912313680759650698150940646246108116085970005991573551193055876266100808508011194020818936641200884129968434734231196212148396406031401357836018124835665959654420942449475538813651544132896223617695354148049028758340049901925684106324309555648743601321010068032761562833014188625382112546093035083628469595002965937881341648218889953003535683095662184242835705673042062037669260844980192209113683582357244625757278832545728961266305496537552500061393016561533283760873961844546095170861210519462625002685830168882538063572104784181161588118756318048528324803667107522168189761481972015399707353683888634599227442807148966997174756124746780432692542933025798293516155787008222486074446771669009935975472579871121567961182241439218154342266128468126328659233036187442928627755668061424298079079349244204201288958587922073286653911059478263876668922146321779108367007787006055461991522506177093802477232653891254284406781219278999788136885957062299355928105851746246946929600563138300193391418001149167058669910086403100113787041704554290478082436393345223028974649608800876314005985800793068509556878064448566695492342117694378441447539950547389325923110118051597579378385733266224030742826957938390055779447718038181336949727987456014078698159844782476084758352607647623946847641427798963956518687477967996986294902873778547778455056242665761871607012120117297654617089419042360902742035503841497509433446305332439048955586993902344086729892625640012018650882663434590009326253882739457267242926807831021950935304988347810157123420020612863897271369381750914609378071727910150364752354617406833023298079881298388390479538586056241861583470554090174254676459116026685238163953553586265394521344643665127460753070129999513369442818331179143903165848253309817132082151146288618748850972839498552188939692640234330325323208991026935302359724407002374127085314067415162921318562703253048548904210870761388289448923198513039269058015445855072640971061118614828645251476717718479692493372789384945077045703622358916938347171647671016729824429139166768980030213900890529292900041741316603013620911888172571718114306517330265805353552494197331349170467881011766975884212797909058951131578702592435450968450657421828171086978726637035364207913204412061930804524493832555067393493795988129046809673232829625890691966330281110063438446386862802850547911740133236992673847890265778367587397633080840043666432757517429078372119503667410695916540726122531747535463199300444389091943669023327339533256730253165714095265456975139778228386514133124249274040674069675104310749084948994604354768869255272190288658407184012160983051823707539487129178721010003794799121107384723628730074730075527629154714030776328474579595771959661938623576562142751972951371053224463999386348934185692521558369736582947706405772737635269321939410416891987045222352350119516981160314894382539717977421870500709212015243580150372135165486833171161498085367419566149518107958767571209283666849677490092020343451472284791576940096487408201559382181448568924956755437014826032048805550201628986641759320560792069464558138669680677121172159894840373166160197529592726599320611011633829316676532674928061884449069649281107875909285928747912693277542366377537792534783843927863543955007936804292601008268592682880421300185244909601630777705944118153590041563932557090241264694057194642370088167927394601583880701617261892398872668244514776637916878486788532132518168090118245199481238378685925640971326152628240256642886330019525332171312216995900973709118481001676667949700494391567280666781856001825786742411348457981918484512995231692248535961512989739193258711160752389616342608493123365915937291307485482244044946100257007654818288724988049966410892711479103096467621372611300730902571313360251261676033196803959758040017943732669486743572306110137467252934144538046878628665751858015035345144851189633681136008160304888859596777448494129314817364049890102775323826220303400486238598960920623158633720038017129084428052060176529545359483288508040375207589089998932020145365244762016677039778756605348266160928744179366669814504513323817256526421216627401476088567696136860363598030776051177079615044115872237368217029186301009523000511145113410436449340190331631329120771844537752819649202315576893022905698128489077249371825727238504209252128356675391383292069563727346945415148102335570893064747165706942281765064503429024080745534592392066464749177429978865050682837534354103541826034806263106722155464888555717852049713247165676828805456488925489570517544704329016479656301762328546277305291134810294874050079468838166592509676890438897884738008311152564884958847726982640991672975055472598395330678652707079846607894546789365969460609166754730377863629144699052512036768689174275966675277923262111953401964177060246828223961075838853124895802954538443313822145416402562742946938831489704071302875097810410313228547783516395403291097824555145462490801552687465525615377046636923852502857105020418202335013352395009224386633499387673861955964683711945231630937456839529084478732203632749818054038184062167840367700149770169629452305328759356428704604272204992914540086336598042342037918547234312852254440358478926270842837947187101249798014613283044239251565560711507913012977409624829572071537014983178442256836058913813795570249984041264611105578454715788759137753961254816359753587817942572915712594454984678161265247291207104460693942859668000758736829715030681019378906321760604814681303452919107973340553330965341218312337383509120825781851811320836865706551141447436649733335334517562769432024950483618327855376296321724000030838992034227523086505258086377170350067175900432492832576278831667960950946477592742315325774331235761997754898473197606766268234184985367931857515196464908754686349546410264507230661443864760719397864758025424526124758487399775656566037347362642990908582177465804487063775999761728560483456272640928771895354845357416097728944146009462034695177587706681092962229005246010758434528944382969705242469296324320516277379202886160446715193637900084363362388142798271079221823123542462509664554264480694253132221535735662210991644440358489842997363423027417875784492515804568580932558858070857067757717154329648923676615112392975184122532918271731435717702166754729567371828716265822413565022614966514547417904994110055793145475099235033182431824534221114022967109849823995314136605054029600632897602127933254281086703612966914616671707275160744795651299162347666118103976024721564863697615849610815187241607336939637391626258245481229325640939634361369443810272523828375241548839097389831174733719917923613092395740606370834942435970241757551747251376592667642123986139071526573575879674944214610204618192772991650134671823524970482700160982522807649645365663883260445260648878232063337424157107284350311652941067918483391705568229132933510663657035259664407651082367230163880239581449895578249020110745156380887083811113048751930945454901730555998906343798661479531433911943739297604421196308858172121503918529589351534954418398843250323516686157208998306679370672520016173928896497711518469802164510501406821593795786211435151489598774224231022340575082187999540818447186573335560271545320130625799697464755487513536841198514896545636985356285749242774319444606424542640981407939075702975918836749130797808795577892052096847025508387630250071805707205344526803451665769316505643953290646041623637141205853648568978439587889620306313627877973711480746557028344528098010369884346848158717473747890163039580961127798760446292936880369804662046789803774981820938788570090433728150445887723606534571701838301038241996567227984253507954658577967673104423975278942549209888868344643395387669405966504482105269384444117296311183136245520354432072883637860141224434148927697639060395154670136017721921113299700514251504728004135014562681111533830118013794518989520084186908377923172692063322375218637312973838100410523070891458576782867361300212579921425613793990824023637121191419877288282732505048540273817396767937553691009297750239341637925917111273033010454909407309664231599210441070188651683034378201900029059859092909049674599360786457908465260275356754332509183829259242586036406716279444556679404085987093950150287221319430459188231721571186615517774769119050659050032232527303919977379458208852145857179802733057420944765846501593543991525484430898449691110060550131529973990633448680507385709522698972258445918480998935607685329834502825447284921708567330403237047899275020670263155683358638118086670356962508757871727712935841621287599530404876690322051982875548768171711567268083991139286651984973696994949783743650305098993498335472123709488140384303906782180681783853020452673217196312841902239195184328838902926251636561757004634939560464718745670468892868470088726557391795587718567481896872433085110135746081026814254538503277697208917840292368800129505831227624202626271263872824826452303689042566432851960751162731812607383326231151122662709286666773121057407647151481993186563526018187592167813044957246629502633689409731811575527293075402392552818901954047924174728879802364217448070154748628202374550698533226649361596602594615000136638237783894540543073748162435317973904479838845549925971234239140362976735651886946673573734330416466742242178293732701405375931807420969872585636085256356495047325129652647946595524016495696011091325406629412725816789800949023718290418814387504510662099691464196210973077114658991049992279839205574204036993951337239316485105186511488780682569029338143357863641095530953473901100574290105609334546966246820131542499946460774715966962000552391562019593213847542496876615703826701021854678627015139282781679229530382311756292321020925632332577886064456162567958957256375865537657240287968219997872733318336809968776397563197839006365130749064471618559607444313363164553236383344556732726752432742697757676008854372256408029866984502347694022486805625124755948882200699644560274017676109592259892010476964973547361746830029836523222984281034306477848546087175739446505706765927002123389377089036441758462083249906770315298620641187298006851861245699811177945580395302465054890967687886282175791833482569696768414744607053775297623030661275679765633824445729020719332032104812180739700980151831687168786186721488554227363586542993896847523776166899555980408829376259029868472755740782294403894085602053467681740848417354666373214316789279250774129063453187840697653124806187163358485972554323438907789940900942387165707214131064515657810547670348042442408040922766383464443153436330961851153683065509185837826005100576085996334751423469413373010527778523275096475352001946615177418587427307227224674392003154537130210022292513979742173482589295332400247700186196511365000468279059699906402045741603764564174300029873935040564251181330354846088154450494888895246725368844579484057213003329552718259871939544627465660632981649608374895347416333349986841266476437191700220694534435782939292927507491075026494581196378029089658056498823679518601998174312146850712577669474846912980031494272409050020682256912218741581660295999749057839356321958909887510147058177330102811264021070468090517041805191591824240615310734374271133512562393801384502324790140611153550007516835063183952086320555349087130615849993563438025674747679131752650277251661226168221644567921308843256491455305024795701718674155648976666622843307967300656898189750198877313808195581125879720847209979171028230294237319359446274091531610600165776245507368056663882717427704980648800435838720999133875586659228956740880974147350367433214253599599212395829029279209882813583773939035629038718972940986821974323234114458384150405524668668413015860950065114650558025360793636230651113838975333429677229781714426671597508448186482271674653107406958587621601268259936618989512080266558039720908058798131536555636077459334535915486701138450316377374082360387156337561210836208149248666268012403043479086380102050759437621750115242969086912021586710434082190120499566130467433519776066889424909393602491632860013321601247927427272017694482297373116573412099681189817346762376265130374052497401992870725614104716573309670938707851203743269961840362579113208422752637274862594829703800070262259618997374640428433179041950692686062753752645969974878154919726180702435619905977594717581518671211363178337273940690427212256605919602686307197288416783231596678494663166140947119339996230088773444672934380074059952527298904870293324387576936167252302763217503708079586813201331955552716120271562021344666156131476332208260862284114661209140344019746960834760147990739579219237691733949132888718858220881988365627845894556519132349928806123477050006990952173282950326629576926055899936555439228019637768643355641725665140662494983798359067962628856167604896917426904992799632108259301106636999343735151974124166528561910153196384104592856636174437512106357827521893229411381817162274535487838791822288712068848432205738919798831191507048978729956739804907085703500974974809362383105904669838761214647405045653399093739645476382243958462668935970562532403589599554935680915736570510999763823693030300325492595952702833258957044146089019075816233702944068249855370140084156413237466565442800132071911649132497024850323590205671841920964352077137926665574501130561024499692765426100974156181646354642314887051625793794190924707955624885281476075110937082187600056957860735334584279463253495984871222052287489206212177744320484557859930066127035550940634804442924497554314058757151886648480882885177292054472935751969047814379933888278031998003640358149198572034973109388253522553916369552248695664376870641620891411930099361484162509335269762835884122476200440367566346121561630253664126352496779784434571998690831849627714458751699416101884238152243522784689443155863961715084448969399162566807968616430216105277704878949460250625527758815763683482587604713669473416661775512420584634633030622914972882749157691246484882298625450116410650475540520593237194153454713288416340241017356548557861660446593327657732859240695294077369889464507227149329322818786994975526463927860058014381969107649152710957897807404194899417601624568519034681438555669381552838207505201378156368749308150027735818826553204611549993886860793847971541450772957512874543793143132975966217855235178632953376014710419973273198083176949020914012447566032810229481058905394659975634128530082640161853826534424227254414887356752720846236803776226978973838158395174859140166105169376312322573374559439493656327271734250867520536095425160358306511520137549682020981126844989897310572278549381460452984009942592138827671092384300924938883418837176474253194084885174323437831831198520390207730219196626318066769902667724286527415842454663937755879932991119098800504759742585689869861882122055988106567856603850417285372649568653005205914213915470526430649345257586752730065823162938803777753166532252549181945385880309941990029862597465074683925137747872015760974973211260485575412640815994398623561248325710980794226890479262511633986247299073025618479151891483565633728425706922443463929748896592710040715206144833252948182037463982464757947052802837836234458110791048627349991068143693183219493996671661958474056405278283481057837124888840578606528191140948426316055349468761398106640233099281307932661603516592853063057158068331008355628429539289855289159105953190211242523467685459157583083655436075937610097417547975778395353137213239514151224954157270117099172375978307998453735633139886570415795118898630052166624413255475848249969738348140490347903687430199859878800813904435979720801374673422650021289366165632726450494618061097211002385787478443791466125857961693780236492171243468568890457383426236393290605606106261301386195432549869572138992837737123939075306743105027983403308365471707515521513877456230804598966534477672147974626906338166458702857496216774850906563907080848388985833924086398516788759681316737698366319791136690255978460323830308191426948282111520810054688206847227586504289693161191298143799449707998778818481607001682588144131537213250971775426315812060389472180097167510841864893066914714368577021539419442211498075062866966719161555784758624288706750199643010474804598222998994475414858195353892602960696963599699630164897556807331749307467626748337892916357426372360012135411038780484398636160228595861163483422281641349665674174941065687890234945242363200448446779531199934348499097114988601606624898033354895453080025266355547635233977795611695861707747151650505445431519501807700179832721500464108309826248130407014557757252007359490638231152542756789186561405932649734514625619976561850860027557421489459846628967586688493537332422380102504496054284601674831926058088581757080747556618862547522122359021153704830715711903053081648418932087924521383221881947416048350463862851181291689202222510599922068640454312100573684764809766755662349122054973145515549969321854942028983645439724481960489896537706732676267906407720836928704594667301613889165920414540753785338987767580765068924136803949111671640764363097989815213984422250335506037960067044814349507508240258482603381261246438269580869422989197985538322015246579385549719977365258152631801015065507417743577627488221457709174584661436875752732310743074897993411239580710692145272372396331280005787702401924558969323202738311805977221486387080905313657039537600076020500217983403926746353658861214522078272656932989342635438715617177678580005558456076486522240177098629882774519867211857928337836552704943687168400688803011248529495902880140414194751754408567558806448844460857366519880538314962837215311125731955064048435387572776784254087884886936776625538458800367604147336818376466493245750257897739589752563857951069048529781681655012186355411349331145225070661489094057817563411394814812199355178532363046889666109635321570191298125963506899657070446576264720652933155370338898166969195827870657029187667799935762617089012884359188982547921979715586984613121575207080035180925468696208728110164250122586461751652370880496283038303955631211671073369649956666276714742322395963959157428743615093084502412071315279263467454887627586398602073302938955901128488987816895789310202089491141521019709214049369257529946438565479510278841880267956805386603384259110691576141564028285633725101015094194138030587519073277785224328567228048825898289523674599379189082082066892449498883770146975587145599124521130310616472693759152635780473922143121196630852808947388725714932275905160182798681600415048774407305452447299345205384240171662780272272734562171315988535594849045946359337285237818065427820273094016663638612230904695229598531703032446376388677438000417332929669500353486786284601852506011673023937300097578515808084392549091337480922644733292719435392262759245828566715124918191852691838496488504347573045834257133577048247555343382310321346720217329179158738399285549975481266493369072506050572230747426252729858603336772488842612185093880813539719930493192085654160894440220802892747664607213520250955414512445844254550516854855869863417863974226343716876452872040395028808688957808900152241026315915138606029617437584804295436846434232790800189823305053612999787959285623663774896673012945517783682563341622543158646956468231312094997742502043990194482321522992674647308886847842874159718052890173582220549943667567908058567154442963294840271065888271015580615097442008043393100980979004064103415015156961706491597993970408214023931315416967579938799604054593147560160427512484846674423612960179166401838907240195348169480440407867880491201150027736706682110382875669774129328055912823381327050985353279214919134676595198239987968967695302476738828047285552065522628178535125461555052979254535851570184568637171815558169741550670381507375585870266906604267485290337850973522861649713895322998776854819373107961359586985379656649993673397725673977796505746322553508500633621227684019243543083650620924217686190757566917000560140948824843311653143902670520883270110599203420585413780174354158490518585167687903060848279092503271995938113020587197801956226029686271757383284678759423020383468022454263642234441155916095251575641273306570760474578310939066672242005665462470160193379151811370313843052841704510209380446280866212237810046246551367488240529681606877240199721541473503184100747749439847072739815465279348108195191682576743711835588782976680458039662887898830787207758584384543893439353512683173069402035904081103801727089148707154325093121543427968716673003891526058267594968076421837171380158583218920578720571278312302792414585135956084716757709076238080642022746807808477216636585008372519883282331485267669660567817120575479491084652986986707153615744783403866743337541613754796264581760128091095967259584719251371410067291107300871213676577271156777013564683319493790290412658455214947432673589580592040073848366073321909646499873250200655364516299773095986328370958490971245423624307396032314463882346407082539164450762735966257585830138803003838844462850092737306454823477837739404435094670194218071030617226813417284133641869828087919102848361647914337090079116572614209419406065101297004676706199212266052570882633918349309795483364515531333924072326822754477071727564598441528290077961094881926842849739494415027692860047324635539741001084921956183674960863150046626320233187461977862625122094910515006434302227544915948793406414129957850842736636686809468055430514484284059234692053797868616183415872561337596043124428746790090238941584158575379630848179912499539321633748944272002789681581356815564994733341444522522364790895389609950439623713013187371426272390692047543285749932851310560744433157619541403134507949443807237588092199772332214314364178517002692053768904021593897105400618651850155065394309888423818031326158607687970345743020637415611492327862709525924178881148732698819970854321975601151429346494127356999194437999677868110347796412417663187434001564318568028401145112793562133574661401478153267167161619856511164777948792356928366720230336326685670743616439883335611911197704200189783797042731196422558629320438112713724820642675043376328611398969136810199251201904122856508922232709287978538630933664380097629848619745838236669109071659157985020121301267770075909860644876892506908807901472013992987235237306086605752082642382395893040836669056959804592853433564672851737992186042758319508608977411076716265582300802449320965957218866984531607372261248385615893561898299252113452447312724183506608385587306419553718113110199385558185681618024943795503517624705325458381516993279191130972670101199223466145302108072888476722143912877446818929335057870843733452874711802444465329488733055117523477260831644050141541532144839023294402468780014895339317809306426870564885009897118496082641945763615778105290399786330755645975873986658615344930607417208473064204564152443175987716064227831499314002516658097730328504538109629877971616544172606254079837828581137669585450918149860090748584487917150135551340119853051308954277714779342980172832413829659534962242063132154840662592793628669625574004089351377616105117410312124729580574068596525883896821054157315809802161966643965030175058812195797956895431489429173142727251221752567492018878834049805411762877986879746354604530049183559655456031085885040478273720402971418385505764480008478509998800038903829834692732253941513553098305780652858440865314588086609301003041059302578068677856609566167742796128372065865666200632782137344023330266110620552148015312785959833445377325792048063967849968425083106033188594904161135632811874092136719951266825149994981190839896095182899734044192854878790220801127166649903563444598045530676765909449504141696445631083414014100495156230392413587133673857639933044075461590653862106654734953952394541951825586719046881534713427184720225381734842953339551454129507162873270350513763463900985157335666324977351145314754016551084712291806778705337664781669093817044947728085935875459621802130261955762319930782333950598226693143351276289512957961932011021539070102538938287080467407949783778384291844851570359401828372322190969919584524814513518915536895136288431557655416876220319577297885124942854338254982514488783633449319570152755207657510367364246978919456702187969999494562255896422532100535995394545225024417226474671839478219659036751799183996650525321763059426341539063518664178158686811409337083837622070799866823035741779676475269696264835085756483177356251345363030133037880621606792852656988903589857211361341755788542752633946545388202800137230669659914575633517206892392149430609986225156403555539646757160533722544189944215803103112004662596464835783112671894284120981431536945520551002808396705243272282390898327459501776166090022710117518423434127757858235234760337586784304300265083084462117003635741596215426265451472210757414132473063609622417435726834990030118849931843083835966937084744296797088801419027037671848659031536782221671149196498696137678808080461358988980305175202661713903078944044161080251220443209178410425301427742244932412473363344747417058165102286678825030024417819776860035876837708809340178312511617982463238310629339080381238780022050091816924683667962518813977519305253417785800957153370682090026849515232045041253991373848021676143432724564696025518780878018392081478127153946757947984926919975080422865361570071130309336106866841184263449410066957149760241479810503347728830333967269295323716071573458871359026852597075865334348067449317815840325355836532622256266431978511879988054288382693794597989764511205438124671299149493405946822933756519148696837964785741880987567800672000451814554245189552779399629412089032293158605177774265674995917712242958948307537409058251503538293765735143038019670671918020715117129162907268774969598577705497215432916508123033705263559598281838946659681909055858265617303774263071511273834099084376013722413842903293112514937927584455070014388596809707224493629256424851175816235065712655840352539662195892797009656129938992717337543832363530542530742443940718807653384447120468111850618624057711570248200319897162166530619525505231125297844740493141630542026086913187709553323612424957709291913528379004172542562847092776751211413237620859416576801431754623338801016958710951697324513583614937568616715309662375487016542386612022817450680579856427725239736639285378115121178371316183631910046809692649522146919992161894101792629186057379128116075374250711793509308022389429504819164475163457239187475451760014922693795659196299251417561430388445679485994116766097947473305938657135344876666156237261453901693036896793731423668437609191830980293494424327253052928261774795574021417113379856104021074066509110204630453901344361927839168053020007368597719777264658238534409074529500965854117855363895654037410907118254530662972614343291509165261049942453834012992869225480349202355612839580324093093616137303478381303746556342351371379071711225877518421337797166353249250937601542994641048941624277267068057706396205727686681023157026813321649574232228197770326867260490082380858210029315249533616178664099757997159936343060756755894962278698747400355170678637529873246140144893659844281599851961193604775256604502676675960168870090627165779972327399293805319370214453220999331863482203000116395268703297744976862846359699351547787397529130060779351628487618808986583303740043950324341491727210055455435884626414580984103035199598563016501571939167929904654909378121068960496940385940515941866299523284123093934994150652261717824067163891418708874828968701974653541979283597999619661241967645301098835036985287717943179404878322275973118690391227850156081332238344428075858080238755536520545055542944205274475257332419506894154606696238176838735972665858708773269687053605307691521690935885902970944127415837230456792354795363234086827755175653286871318426592810103247655394632357768418274668572373146236228045211974029903916834828700841774956039923153521944641605026831188999805600924921212289069584031632221500436080486169945287444115979704569198658999060444270590908683822470209486825587251819032573561652994405199994695158084415037727115479989808966541232134696417572901127056401232648965837501270765075135016164633657109226622812280780102723634164523044431601925080234773992489535331614244544409180830328274584062352025660307754757195057814960648836862334849420631170631354455227106393129476026089913174069243231659065747314288913728058433249263955694138971080310467442906748001793827895054150624708127182686608929822495470922461488617676979044921302288178875279501641113803732368902722566136626090554152532318600897139501496159299050935618844203906420546886895306072724338820466069244192117775911065310594058088370544096813313688262644616337910039063673048508774113057000898533068043469005033941424607916891137380693990508536262486000850149275815608925581621996257427138845641488161092340525098028477183554467524079855201867726055079255953929106048048131789657861137312367364772647625384964863159844109352658264616187904383834679431193592758689600006836944042463964126792093671890165887280240993987725222116676778201389773221657904500090462499562841106376574952381566233701769007598655749181999339852007053430691464183873792640457465705816088443236726005385747120307174135157908239608931109377605712269095615661584441464141401318310282370007091499703727890904947657759390417629051820809980066016674145945672390364214725620067087927378309201676257002604286915728943089676292678089841659443571120738259413512996805502183580847788683955252063152178217096915669943372092532840037181293733984070965620870227956578746912638110119687334696162831447848783237544098361956606022070835369419534161360539151340655478140103540001028703567050635052892720731687206713992436469240904664149044065935596828040213851203858250090734935410961033227548026938910122594715925431316636925821887277804326163283110630278145563587705916994881464354292258252369989882108176886309004985393607317052746602551388399115907812213505703039393823105603415376202460176837615800948719514623574793378645780867724921084496129901023236182493174340951856119730227055280501266910520284360143372264818482485104332253712706939587698716494213823424363379383175287011856659015361443888795941829439727274103586856239459808864091110266224888263692814315058484748212536614159332910623875189525718258151973331198326102441437425635162505185528830015578674353943625960952653685801157883268805412408199635396689933054217449660243767636747548396510506357439544714064941927281601113268737113582109626187753292107956661867462011450993139412457309383047470598490974620041723036660692101413027670015601031794549950763988176398395719590469785129966464250992319069179048292638554379358429051782160235698484683534052971826311408442501554506796758122269405519164285673645033814649546303938208310516517102467357907259083089290623103869911476786545454474260953479719709676656831513697582704374504090354258173150758973352697984089207566131223979865663804800009881380418522957198667906387631879168267546748624078157826002083180263591310027733949403664107504874254452622364029805032617261251483079478843234353775036657579524259917816151408952923413930574019399085084123102736528395428184334893778262205816814673844136774140830287042374422561107552963774354536467887627718699681268831494221923979676097569554710869527528075659056429409700495915548687995879636312988154001803460934817870510161240323844914981959548691794132563262235494946759782466055511146221136765889526044672364356454780443229825188845850807978816953037535720497072851333158587256841983706646503260966326143993219152795822042233792754858005786697784508372757577235463934507060689074830618598136192361843300393444754808769143972095342148705914170785633099182176675676002245183324861336576494081576678847076021819842424416294328564183681497230629509722374990015319529752719664469147707522331522496458745472324500861019307133022992064884436261910163467421973776628985282889656070068312307276205841476449711654711439438454600548421989108082776613862569526334835221373232592179550480273602237206331026776930518958656055631091630485199442094305057435197038067116159611955187016761120599347914385815500629497040478098611495284420217602105041703429327886422763010875141685977597803807080919608312740006875020863232690324180487175021077100355826944974519224544396765796752480574451204382699191719666085918547686740648554087483410580725997379942138321249932977631494054625767755897408917479750885110767812184143432175602269116050169910221820780325456750608104038240800750258620787973612695957543625898175921581024643992615508205423333793896677938702153052484408627411189024780117766164051910654013162221837217114044910865034135681259590874810165064113244839697435175200019937208879335081573190338122898869060161791797573119194021627050681869472030447855590068144735949197912804477545108200589281752543003847454682123051381548771413123737166783446842010233380614095579719094692296673767402738865106360463727932253086347388694625288751372851679835940979867252915044769662149818168458956595827385890188067772955629750917660119821316744766738911486623290370773035656990012327411832145626265034744724919948642873110270174820852587842205964164868009357626350976179843531666147397606759040084673805260382016752422423279037704097086219182618163120515856119157468008449565734998027828147375945319424361991218993948406196571289872498560722526364982550452566648879329487327821651569842775626282876796076322610993145739879995100066246012211636338843048083042303046338545911235736743549945213844204354429034353799820686543264456189208582410214056268928060914625887937959149162137160415003253010807498730602244658051113696424991412396303781725910852254869884979689824251470985342196694426158543096332303635206465816581737948887967239379474434765062399704929469054742753230262760678801913782187940528062073761391948719043276640942566499292097057742319206267552914053360012237136234693158857182344099723479521712981007261376217411762454652761021155137636714713493896946665665781871527127385016850522578611046754310044583457562272558952800685400652916257349320519816289525369678332504426005324368153306693881404699927671254477452046991277181391219772594810828116788669917712593237262159457469227502346720917440388670674450359315810875970293360120878946029206420231612521828693634885039432201332865331192746736254781687368643957502792131032383983116012873279683647218693385948723621107086424586761884333331207977115398684436931874725550814772699616713579316308589174777747034124640927010822769879366337828772438164642609500667940643612442428077509793265216048057601272124954148263835942676851472423301598653432913260794873262393686756501992006622111036101098358567429195345349066057967131328377506543595438805519925150771743436906501719951426797195185039705232879258005586276877754465021006864937716991346626184770269589012504749242471412740284059690952520777617937966418161138012665546674257224922300386702272485720096693555483322210260293890879908863060079066622647139721088851274281965859899454701037758620156405383449010647034117347037448236427424398861044967916630577741941386690182984910485811865804666891169852539170304765358556427760636956171226495315254505747237334975690720875436552279678044015577642016249464808366726209917591526668807662172981342222628129674805352897029887864999265143995127707373113173359299859581064610632853618102745897177473936621880294708948923583300319240506548731457181862171570515880107793369994863881776591281288324921386022923847572852128036700925943696886634426021941972538269660645780793921200213880467438460948753628320423847919253092032606460580362440564322212478206491537487313912759976012472949196579066270024260295085179071348699050345870983078223089124414976907953438028730436381913930002954212884468221278745333127643830866664150496019957959650601815805136454094008891336774515655832910789981311214955244118356121815985231048868527951435694694059008070260750611602002615523135428232165834886386927587089328634583509644125975769050455664288912223979276093711249092069542953860086226939458193260733306188574833097752165481076280149889008250201120676703810827177617140943053008696183363673261276353229538845613362538375802609371025396383060910417892339193394452855596123819117815656083249362512614984890736928034065318413800715784087058820205549798857256473026068080240566872358929088524304053076830101245284219664989219296060686641268795417310220209429768826996997636565976426934412984871379412299622098795605645715280118292694150382072723119479578728950959619741253843386867135277655342439876301319572106361963860347094282954258586801329183845533682272931903289785313217515170778740344436267070416598067290101632163922512181313396586613407638617069246780950266433082583898736838968129821589163718301935966290987708063260763902287633371874147212431111696121704672085508887930092442236080172406021328159145613518308918149440021008349815456960827490940180121547042785461432736058677270674055962850334067652270582737358524359606341530810207167735795428724779016659358076289695558733488560983206397307128048840880916542605037099301531314007483496777817973352451627885248186952837954663939226716969497407699805745655046014511463388757323654976115247290146655525701557040742981760845518528419508146670174321429301905258892102793475760842639538749310672132550185051208442294120683166122063955046538482146687733430542702901655245149550476650964932951465302629135071623197637435269602320351440157106066363344912511542501030346320783507027594182819461857037344383406976397399132502878886305003034665636219927602273360143018068729316049990846904334877735175969580736361668268857466421957645532929195781305111174240469444455949211225986016296849233084264537581957937824703854404107525038168239207735902418007032940271402939477911937732470508602873042938872182077797437208430848145719273502665961964625921970770347550325804997878724735742748077782580990022089017833951659768827948624642612112176032076684740126508542186545479029776037034311482957917092610798641195005306918395323214808818570247569880604280693644412225965532454288012110400592830880812460947922356414071165214107733215308949927140355222929814733077169873447379135951126337882710071981216425280025792536668934340853834611831429532453492026842377755462274165572280087234862444221428212702961153629529739394217658367102572044884330423584521885351247277773815251417218669124053525280785439882908439358395144153522028685019787185743538532410745012245029252469136188263862723640874146459361958120264927107061986696793536704364136825061870433589031067940841407744668802080493131506313560615500075965794093888711524422482325542389312575533225819233980430969232792642366646181948365979971799304482811819512947180663518998525607575478202870660825656894351348583090185286024364371798449811531812807011227891259952641826533872591639177274515563456955521705427874477411096629975536137077931218010038615575089956580921492001649339334399520628793614378901278168163440628962724178945762539527024125965007064804683512944865409665924101785796388891523461994433257190126534044852523757749677038267119260799351043587424751022184106732687623630075202312161934507700709907913857905806762399002138579098515291892604594832063517529097542812470948938005887792767873574655085955158603298496577688571047564957464444971254921130642184609117645602571945361084488715258369382088756995643217342908294165402013057177882115189458402690404676372523874321999460052041068301170722455677645613767083220202833707436563567674009991505725222760829987195134893862814059176152947193590415386082089872749714376854024674728554947547463537809125926911171147706831972810809658254821333957239336837332825207699864373911149082108861469406864347896338887317857524893006969975803849019092652591927870273403120665997901486038572778861312149379225047527759480181283932600532131816860470401601365241568193156023889865282657717607793617528744990287926425913993172360917933044727548472786535088668049216713013809515715025855641962216212045061097182212462649032262316257816290111168674689038455149910849736332239999641175754241421738582633122099789182445189222604713920495378858737220273978281304951537639848248382411010365001471009595134899875471444990401835305928094900023011718716184153858756517734568141927588282874850613465992360478374435616586622934579248595451179136137702666838301548727613407927933908747980385256890545019306537480456854673386802068470488454075171741330927245572722229366523382463851662109769206963532539686007814944708537325072015947746895430789217292465508424113955160322976006894988166124123548043583158530015133559793745002589879921956382559706373199738433626137449507253194251331282614867830561785448932268322284944108262237195542639143873752696725288092264862716189299175430870420444739722746495528302165912219235432399076711797751627899584504918996763163074357503326218327999197191266337550485284900870416590125997636503881733391736767971097568259768564117887188897281800414666500705431619526658175523374450110013596090119364929126739408033199552057308420075812260480604168538611621866464554816458084545629922738035792509107834862119436192141312707148381812088976506844908941047249619188548888861496429236632475075482847629414779235725244579241704711633045551745703913750099301311476858891693085708305677292954616433133199394045988781348068753761190954811318517525454934060680462334428893936279985695179066674260143443971972942295922018002784604750509482706604835253118887613340958329867510023541839954704991516789969341007403645004317720695729113523810632320312114186806706801482594837931056579474347298851618253135723340391697054011026260780945073147289423246849863744905448046574382424293865865192890025455146642249132924843014806471913815780742728809267632073954221653930855456291275285847408939420354639968098619641298493844608632863140187831013958415099154040925888771636725343635746169942235791698813765562191581848109756743088868539930772080948510034320575162090288425507375646310761456043210081072206924374738855533471134033361750108081354930564390940528980492268157247110741897625993090673389916817913987669982556457820334891036611245745923699315105675980697296566182862094437622492179951745621674212655729714154109011258535835905424409848213086131427687660757407702759312984579858599795374262703579112522887760875750115083853943674835717929968193668677868608528194027465501439713102532493491114259348402204849248215013263308939786498824983622268295815750424523102872958883638771042992111609845956187757456350168991026335495938090539793256451869067771043647084201019540131753276638115639537188826513535708032384901308302032607715085432584688177417358040079467736976005909747091098485249847370931023766471283713605665796660653591881315175909814918575017413065586102677560258939218973313615421703102179359450686044790798831120898655641907655477151476694006942687600750214339441496867204440263747853911847081623308281502201841425442435918104146852629096622712936039563311970615926454276839413258742466645129659647007909314980609146554029698272115874507407485129224338104344715089040316163054548825672814696690144785416637058762371603107165470557606241778804331449844474177393709193635566526607843688266819820127658450205025178326452302434011660442539563677833942852088890085105145798352140270022399343136912562790162661918992148303510957037402385705625683287532379752194532419801603128247540674760750942167693900353840964937539140797557211456595505933388366032030496340262771596481326363487460253380714642369934574617720765167123601922257690780011948660570429682636074605742392086179409725279449358040709861590706800257334559436798046562506098545446098008188716271475215178937118410425400927292256235908005898731994609489081122672602987793214454733426848224748502055739242527501724141494917379823592989402365990780265214010239401930314754251761379515142554819846191524137783896167763133810058159129367036389722079307791832154844134146417903164404244813792918572642226591011635684310845627965259192893435374491520886209960910422611912216367248636191811665769249299788131573144811274033856992746418478178341683846097677166763003583158199414704146295087522872179151861638080542719002945518697439370852142301434022080824911327929362303079193113907150621799573900027492896315150674986412204689202107742428073095969367780881047676499098094493374649143538209616890496844910184540610356923570687275845159298550572944779923309241316974076630801879285115175181345028714963039670752978795064816909120641911503743927823808853750902675855078254756763943039392771209558077106525481622809002336691689833564320048520034887116610747489023023010328590128545137398095622604930019462580319924605905674532515325130855239997027547392399381816932268737897809916960784081514276892649262211777237605422701191067717968106204252574283291841942486805526971839558900328218777599347658830436263757994018666187887727421617627759141937272616936802460161275948127435672809924579106978664481597277465632640252848461114984330712948162305381647748636994931652418485324395487399856079792818308161167956997753540267585769550270258347499595513412261090272066190510468306961737211404527745832770701773405014252912332489931860817295433602364922104760625664394125505246992277127185587090869016308515258550648745615035571039366952793489259482282218962168294395411338337012873171465008938943235321798713190927769676468126368195614448916657115398539307248376751737876056743451823834922456045506039571102812139891408904629795709889493001916577725559663534810756671830820605513539449270800995803902044369556333237921631908406349193696876245341531329444717470066778847561897694606053425842257355400450917251910778210140737786795180838321029944352049283673513044915652091799568224271885003608049114113347247012275814759559606975575042176019986697407042908666835367181837776990108943560032619242968304509130215607654263332077688812606422413906351501711903456138995640094793540150693796364704530167055362127641844274294332337094554443082735611154008022541345706074103126268486447022919239223464740540381790202168633324886105312752052974495364909111093728084778360950932802645922232565870826860450237455988464571344513353643709512966672394591639590700233426562672798713180274202520014617393397749531805619338428134697436076253006844624891716829720734893464507837500085539415101675278865083777383780779553465637048481809113145284218796767407652737011293125390168218166191915020720463170594987635799856274078960613082098523312704124549483338922173919333099116033010020300895566461808937787708401109445487919255899268535061401869135282080356599627386814931707527927513679546806515458320079779935104121777516489510863710574392427730498967881614491160093276073841188731194810219895737830858445292225274948278346573344287435600112126074238750464595241806407828567039366297520694693403392633900973177191065319816996427282788004770047169764484111550573193386070216079376882530609971199543331989543676828154369179240292796343905445705514272805828585729079238691190406392650106695743598550869200657099146382754887317182441362029980975885009156288755373890248255407763949867595224925769457130412731788376736152145482929305529500756122008176489889786958384864948195588212703518215308744613522141398266866157782191695898069646002007839487950199058099625597959446107834714044279708874360573977497950770572312944012320356438094677407638018789203009189388879534359838917536889544231400386353548943550137766985590705200968578135071756990264324533704714942016116135779073527642526380012408657452883515858042544753349403069219179568643371044308546484807430778939726408052128002028184295202145518971935923006215583981901841153368440682418330808096233403842301022427697416109080788229775553370165871954870386473977701326585481842958123415389123667394608317898227521279565748497421289201434613170188832852013067924839287309727494166467448152407774164311548218440888851315709781641817810761507779958581984356143065200464354336979623754981720345372579222468925681647308564513044062070887738882186398150916577295778448991037735011933135429550194969503336476569069288083001448693568369396445636292263463164049387118447475039645188906161637778029133080895269785874811653216829047705888934760216329892196409806194268226044248109230009350271837594423387584764926685126409985508968031704244769923216330276341442412759099530303769090012190085917104289419289632077023592571629849670891772157364982654922859077190180853761620715714966793397578537306499100484998277534735496451409602490193847622190490707445040564958605413420182887482836089140384628148520089746085134832914968980131748068544775700364570344901170260935149468504492327140973894901267949895356780072728715932642898543158949371922901208715153358617505646476792428134531449809317145895740450934512290862239163832003741797913024028425257621101207112922725518844845754020799942941296388864993857702179046836481405802947965634492813521012732767280316353272807617300896518553958376722295529213184652743249002156924738604878272656890404631912079256511628576188321603575372141674580997026573502411279455663246523641458906383530931785696034123032721327801453568592080972863957235499836797345427800723319983599102841048329926298722005857282384812514339425939110474017068919436111961113495937950304253713329423617050893222706140276306531530420999120789632451665863549429047861541693470301407100609101303591008436991145611021147261290547241084764689663801180230959048033310190473798002626420678639083447117043976263824829277484394381467468399197335425824172232522825511760872290171508175374685219112274793685486339792301881771387612579645993816139184436730860027343968957133032772931035556010020452060995863453588189776293151565854735607437680277761154788326119539251897067176915663699657966217691504029272973142260748466913256287181994091243298595524879213747655727755868790450626987884031374756455770836110036462543906148013127773457885762282351279410277466234681105227231304099015511376597054598299973985664629900720760460849913316628177372547345552589183321623947108473858615030782274498829848773065654376531665339546560700978907817627577629676284727581477009290454601693018079020086717043814981308417536065237846775078516881686253706047277702782951665314756228030522432609827438520026272812688344023797017070740982024362210067304479009796741751887251455446451506233982167002869053302139430117831361553214430345437500084378756017296863467176446625380792209799486586455913236152682971005749947888723635080070191939879921015103467517767868783912850797698978172258764274760967886600343942336466243069277287935794740410001645355619149205672271600761592812057432309891261474186886988411136277057979628368538800261503140814484943564252450933570811197197214896014308095885123322464382724360668181122442274212905355554405924850770718981931768996647127252185610951728914883652211408723791820105265265848749480950736887747532050295737572810006853426560963085469747566788208793623736931015855620522387191941014637267701010663174802700137317593162266657791000564696984337989701138777880758994691863639207330115506648305579123698868083074239793374565741237409611593196702581164017496232194539039771773660562299370537714991062584905592160934604627942955400903210223948055673808381049352236465780865830634627685259017124319201795888761375248212349970440703910543372486835069372332772767346945118252262078747809176627596638669119645444000948814910852739679478649806161526042998538230975963126107293025284650601681859015801971962767069262179531450155478263118084673952774765549585589037372334217619078502595871542523396722078684336134302257338123152841703045545098554923306910950886938837155894607640176019623191250365972158856344613109137665027153844378048169867953220144654169164674822149525717853870480879004632046079824647319757095177403162563972996057270697640795554735221362596701831749214041113801827030597898714504961843873947346796237108327596106963566480893684523947809336135883621210956214164912266351478198713932092410034013909068211200882602268042091242570319532627159754521586591878869688895677947280564842219895427963047712411852301929186271106094887459145584584086219847522178762710466396847539937290073249732211141408567458747651463622548328129889453740498531037433391057708072032851721636424516713050017627846519315222161544844635369462895580737259498735778569789720639274597170178343077060748600151705692253339417788198107853557426629650489200781902248673772499805543426952793305867311178360996529073026192807550287939005288847246638133238107568508443215299334740697753777768283088740972469081017476248709228841954475033872266099103237515136232900294817927446201624795662781236267724900681377705719041498263442167482421523995714779666675177213379443165668642525383423430276334067330147696322501841514973405701883855928159769758335099831057907479324713366770868452961064983358345710523699034491413054171958909556586425128057132855085191615914471618313398271861089877856247944885897260537710503741233216562532273776969589143910112448323314823728700280668845080267965538384425300756925079144122838075629803958076039125775642946158659467196812161413059086038256179475254719744570201971748935677348755907244946447106212605001110439012047324316238575898209117301879426779857324742749855291200413356817178742896661659396370269757915105532591002955068187102386107728830252454961194734179118967026569102295118199195346662689913894297818213777069468508352850436393703293405427741132295968808684581508714525318613885712151880803058194447790850289436692439078092731796136370008311316119776045716880206639519839677951335489930427774082547329601255876291545056131731932019143780424116097246519162242671646512644335936981928690985653365753346123250107043821914717368359249234289421373671666662336156145692718990600312218449210003752969956086468386873384160153069478836550466848581483382243996710539406065423352306277276735199626463930967214317256551163675316755459053982922662053546927361216902533868916880808665236893772716547751330304795162695785412843070934793387918783129155694997669242794602215075534644161096054918544508875875654108359661293276771693922585852271025286571896577007479248015676734819054102576317536332851281704898994817351205746690281281025730710150820208733349093891032054605040845496466106837617263359032460551945678570144949955337278614376360628198958919191144258554931355107478878323697025317241166954243418193899825614370249838355080968749063643142914204814906120054260969360195147429104930743558517686957137601254936728562275307365639577220813597560381250335768172692448719611398576124309945100934799014917757419090073885362621891999405097227189589609058247224348562716334189833268706481948105553169399674599494935044837891845013510383998257649599446384241832761673861220408297338526693893370456426282769551952051068796811000784981314687901977280028600489268220911782545397795021710203445740712738114579957354669535192683919226998348751456697900543698865884608042171157653554738607019717603153216760967095833372586473334627963690061872096108382259254845938629962280230342849740402683078713075871663125462936151886956005893404680551057920970807875111741468219474616274153322649303645200470938666240397452866584593246796999075944517910057669722981125169029398706684513611042645600414086609240222374178343850563087620181710492542753825369292231825538449489525096649361313767489960167912678681030458359983393723653494581702205748405749404791560922590351714513383229537435024548969114299330208476412055945936164199865800092411931379306842016095887117367468531917060844993842919339817147879752460933783007196583855995017396694608608410352849517186210020376008123929001874001572065245014573320513945445108754562359504412884441563946937099038036675270270557577084680598301505194389275337831580671202864522881229571055235951508193328664794349918542714641321944280128200064933428222390450726116416257909551967303327414001181782181728672009775882086333315287198800150921646717844017197282349890777808048870661570494167823749218185096063485922070550994795779452800827046029820509121457180788993827503180557619682418224307365879421519024553408040979293520362792204711323643467748289915652526137386535869374969452785954420320097272297814887137924924958561487181519479072553815828516125072486365925318058236338744431815434424056664052703363352989960751197441388511278970423738527462875469593668412547528103574230928876144839439583238800908988809332956832179472918371886902040971706406163140574549792469142535752529391675828031620532733622928836260806531471413195340670013263914979073790235640101924679394489531312066712257048046296773915338661711703759682331978221651149728990255838567176024772841775054007073124106710397486912075967598215713615492241909416121097177608838801037856644415407581436727631846871149751254042661308362388451070591798929459384374129436480246966642748910449790216464450766941438642148880538378608791631742102194326613499476215127598296361695689831356034565165641384419393334571865549977868640574633173001344565277723879020237043916865463140584661730096936393926317214563110303120414671431026252339686261200390811918369234153861517145012170993609610271779467999856148220504182622064039204148003308834894326455460115533536110719289728093591527398885114882659515133306769770814615147089145516991723746154695853859373491889411333251431425486413922152765621399499151962078241548712957761495696187076710065611603236723240402381529745377241024889383030749080692575306049457480134306099277762854038227059635451960282844755967581983447302947847185147562346600608830326862268033454901832200440467610997998836807738341885466541781763399165019937153648126620094239149346991264330821117038973401015402214481585335778486593864548802804309354081776850684602792179834885137004432437536058052988398923505865857550397633597587886625320464804256598363868540073316499793355344090572102329158828368684674545602417515649791560862270796879263280288569239835128246940312899282538388999732295140088400777983862228927447054727890672022946470946818399763272799156967235732719431360407805654081178874831343394490602967376206612736558133861029663458851812238967329018207468737315818114909828426369208850984093669305499087949976893650406415891898478985648102844443767385302545775834636571190548273001168733716328828477989204260784310674418548188717025362404885520122904737933376935910471343020142005811018026374375132732142853014840362582252185576856436487352819179054395788668096765066123824142493864235333248359584996986635008852918082362778987730648934530600926176897592524985774083399415061102223910355823214977119511286652101294119729431546876155472926906200816677680458360909249159784922141301156439411571594824736135964376883832796369900666430787307449148450598440071719106591431465043710907340156959100666196800623365868217046663440717946000858510774559056708180987595550935000898819802605955060914269791719634533476482131663434767564060989914560057168604448244565874132270676183379196271640837363907409495757226315097597598692220722666665585248866634834982584730438481490895559987473607853009293519943003624320017170713273821389613432654610467889336257730229246167681923393132213234028828394795766102547767700321635213401443156169762155890644695824753571789552700260063859214503977856740856703655722540321349703166221763198591753701123350317543849857010515281122888303179434993197871849700961637501446607706295183811119235074087036479790101384328643903033892858020777362624471005224692839129892017338086485716524508521489059356176723851813640328526334548350810378510258022563074013923058946608064768348912877906677436512268465626278249307294381518115423804035948974399865792420051216334872011982617228278501401145384655393968319926145238639078049349338934762133459995682405847140659005830330834166133790153715935092272044526488593674912035468344013585859648221217959686610130872291505063007473135124152697608617423031267074131072256100879030912338486656777572182880369322849534822211239020472982380105317415022526348442801076527369175188862561740330953253322660429149958696862468889045891133549128831157056170270660747285263579983527733123800148391720451626814695940353588238070461162713478584578368487322092943782853694000607760205304955619865768426930795740400702475792775441787136042870830172366866413625116065647834837618265950473032386432282380904661108309919746614906061900733246019164154566708417294744349816030868662368278039757533555207350151610165219683615482087955094622535839867615669326203582734546441499283175767701651762325534616097981852627827044703514438270284714176319877789208201533046959035695523142997576729747886685298417055598454763846982325664964394098925331228628510761762246732326301427594269301752883498080977947555801195869596690946997359248194322734970613148611322816182622890012873169426174804347658854943524918190403653583398596805373090977005454113466174737465365494450283494462384844208439958818601510870866996098712799193030308227788463491284357256239956788676625849977715148507345243737263680831125082409953287094210724853823673846593209283920337478871776432118214982667937323375577728920433178622618371432525760937823153219802072176166805445838682850507723244674019820530948322613592169597521199059219927616979761340191483335001708969049867927770898887005521076056441803908450912921705092612668563976271427418533215753154069970821382245339798997992889316494708540611156861172660678128606542343513906740097901146665362790116373186744765816051095858075265969328990862227823171737348710966090269175189042845865572511579147759323365747148090064350511357699428315864826426815772189592595233170511300407067236678811344683787372585412009546021716632080985264400137041306115860236769820927426490733532410299789648202077462327514520227313185709772489758397508432867735502969300543195734653378388834500768850750607782357746961836760137715541671673390970621600462519231354104167740949687983539387204399692652942607039203870891293405745727319421482616165688059227242965466187428690408795291925402319308466635406665697067670800160628229009389951963287848380813169235857405383876286199607525879981969268910362466934407629144196568125800045131712681061902306866060175134525818152188502027714242931572507517703135406294179073797556592761206477150900281143680489171296988007960110038225084391983837818873462313682123966400092404776004368327615367188770318872861062504974914879139366411142799841947738035399223885425827691858157440164446034674915616644548521202720284756325122736342608271726906116692433441279440017900965923310644126917265022032086122917177538434549966025392102507728162040559060443313486348131329127526231533222882770383885402216023797769627481866610132945710375793998183562635563240695080439239502896045512201909975127667003096545112824066119750521560570445668159403533837110973928676132885399633466366228093972610941796142581849926526583731095128610658707536352472744518064883979020989108798907674787363827246572438071226269252223673728475652434242393949304940463587599953550614666234931083286651975318358547244064689357481071402911367084367450614803542167077081022368937042650588474316009215233717725985754278801696235902785325194169826505648669795893128905106552103567306569115945148999308341564291452003242895727540880859475477603524000016164139092054168602287979433664277208246177743637628900797435832324171700941960997335048125103754970797603694535831073124133305024264731142073389409994162667997333507458521856747904703823653755325079588846190360526248405786368939895252018128420299766321399400433299873604122360234474494976232251737671396102100230630909390788056807263666998824462794537620057890372677115665666821324544763204895599555393917422206001155504776630995243295187009805040198448268388635019948750734853284482229516398788611021640157235697437251030905986160376302547021461108777193097721823336128245164615995278843591856050205682931049673977569507453838724314427153112303226992274985472691711701487710219649425009856656398175984598018809526941970756622811019405569803214828746872671280986442252924973659217539889673555732721293719796644317375184775740760987037198437143684763312485479697460930126120651819806627941263080754029091539420628933508081479621472904084427138506759315689175898620033138912283469280045411568058158893135550090490644057505313466945584981709322342182813092884226417065367170407737123365659196173340915424954714743822656766366442865375894310619625461119452457874062537654279949249401616107200497807388530401278083260345255734148190865213119407956346061494677524391047155360675953476804444024220938033030374893306299555859105709423503000934994982555134091376857060445341599317425470867815693737396089435507249020010244588156899270162930177136901800439919839701809368011308676383982878953781506257149922112759598943582298705747839920142004927713844890345526739564042401788816069709540324569581766652993848721350869229287406480164802818279213526308134405526377731706340136257977984133625324249089324257442744677300884934061610191650836625972216224536263545302440687060265396366499579545104652067855033271875407870903024447477262866859336959247482204273392863604615863672778471567663558539167045328723142164910371061461554129472575466635811305855709129426441140326227012310332342545230922930578652617611797902580629588103353554949396321582780238608714490012677969530068055671481916532629274493174379631661008880940899805416225323132539227204776057919220158126515410786454042793203651634981829670803543422509324771380341149116545830285366595733017981078878049560136769977915282518724139480539001594199903806565753301373620098521709362494569452263820797247792112717186100903588478421361405088061646207819650345568962183403244193262707457221621275335229976730074670709182492820051152294901363464873289898613506069026648356909257515178847940050776587442878351602555641304070088991353097309271809529951004419792805186629235673492873838346782937878247933543963915331079217622503876208331749957146817115853524694318525454139610844178970805196573696836219223404371127285413848635108385402879065411833781992537527649050904618215504480170803366212772096009953602065115951146877090815609079481622509244288078812504603983205440207684466989541643357233915168262355653058512563978613196260645960879571113004280901026436023930902490295469096418103675067335733633490801057465756774540584401571779831908680490125400973532814026354731340731291065292598009452472845788560733650843492186306460546152570401962665501458117374874748584764738746712441140694357014874463007301011371618566458767862451095508314623451627233684946146254148019342257888728742073824842965869712138089591170694159381649788647427009383561230573789516239411094239730119436219580542480095561130265309156251901773856953093843839362123253952918683101349672778133341389584041979869277538738551615917320413028269939420577661430339470204262846920012412510896735794081576561266850233459606128138613556611018911952306437478408521147672377184214283236960840957047498753987813801058595428909508108728354628184837093445159934987905046147066366585776437212095136211377371699406646775798945364383496212529296471787602878417113932340192225400299817560730133971023777662648469245922029429792369196156484279004581232610466530131951124919945176955844539870621402435931970360927802923946135615827722337543588428016883272360468770578178662741291165465588388207437140526248705219330544169854395889055767607121228377516116719465327157701756804793260327709261766782202879638467235751488381573127167133639683200192520428038149177839686282663099305933579824816081752833301821656094364851429633048925048021678410147004149533529117816434945157969331855994858772927160679383455366919497181270562439159447404654349782817835092574169337299488068277282928803046352737427723283194054752031005170069288990377301316741568063188516366215526533711249710793530289451746590215772754584865197425079397742986941105267570781963768512061769372099582129903961452903741134559137360942486437963582159287143162795823799863786636670624562633011361503439057799897130827612238314751324115986353820429433759692409155206795610388949116707643364030882560035951468658303074769009555005255962587756145265581124218631833388406875548618271378736820337046371445008373199783062433012369021973360443553784113755908327677071935378215204893433102000133784676773115171090314661640988677853583744471660080698626209990396750942585295937809815106332128049998058609138750091655254086201021146895333598093677063061206146802210722225854351712510134822676081275396534269070300354083474737898008282824185521583613410145120752515563540619330229692218032954969894097549868210077100070835778671918321603283566594437250932075557488873825752301856148636131943984082256091706050601174836814820297170088081528237640702270422264800346768150280097225975947255464893861400003359995900050386688220702016659481040858930734524432380595353185060542827021679723493378856095118762401563853848658187615937162507381904451929464951772536992402394260795890962007461519308149538151194704183084198385043673483453154911165292251173261296744534937302846382102447624664562973298774374843504519645606740958106150050176981526976837772941777897918082362076621481749083152069218165843999519208182051445844036256539511438608135111953855844279341461746947321922993009492812241089471796892402138488147710383032552356632791410627400038144663387203456483449193274803924319441992033633696084506770727164292259932002472837993561597799771665848121190073505174219069422146638335788456967914341758828608331767484798452852195403280927419351627747878865914222360237796082409831573994541949819136965432825839955949659097186636062685386747362461725011385920588689529396675232032881904449111631323177318058214966231168823039397804751640426603963184308909564888780696653120254534067022028429267406066638331122275923842276873355526353230496154171567874979865427695826461429095438408788367671930434653348857896564923215270725592150727206332426222394660169373622751887747059434146106758487448800909060839162350369379173699758891541399883528017060578787938610148393643103396033345840506276168025441686746518829405550795451795588458909928702897340859635470012050985296488112120640465293348325593051773564779018426368556547026601317039858926425731115515094710421145785249238867870150926487713689170734825819940620232546213738594248435139392468564334401416891781335469469490761405602002699251981523224871716278476576429069761526931092354282980102592266186037866265964243410720940789200029260854506783603238896776786759618156573037763370573048102258612450083002048850147007400261548973425538574964268334910256986465072587045583636073554826521345306312428493183234162321430609464433775299587485722940194330868368852548379345485230930387669775764757306514092125768370280129154632950834751038987169790445487900618489128492901624241701288282647157708163982788839730149974301732696760669502094265211960911354134839837069777229471648206398276872152765319315942649676630417325547672858233425206906567398467973158983961595016816464366614249480879161501151080617660299891502090972515782804986295075294064642957846777320810349965837560434424106948502584534897066603584659366773797567929490315729863082291665285510309239395758012099406022147908649661512982975624749344332650020731258327319846170006685134584410900158298751389815896584729395420211720167395744426979947782761805287439853232944459160038127839878174837777976035635324831910819325347777849707626896781143152282320771603749603446984149093758952834311825319325540145015284241697237909395362943300935964770139181514257788660738050853913782672304846986658120339112842946634479534518785208942581289304992834343767809215059926016802276902430322822046955123738855261838832371701002011627421197028981196172259454683680506620985287753602327747572372961980314322996941563963360213419069881903602512239865146349192346222620736930180765507350698956742721113873410009542352417143075344393914598761994874751848534792294315935226521699073528218515272939780691948322461279623160754605944929985197234816393992573358284256250737877217012782698423312074550752619820579012024195761178970567288618974826844180490368131916227718731845794899009297440279413622129776008848784871477490397846950841280587918994266445548107983353260564158175915547495266408536038851414797918463677525324656335861271338801821043443115940202729600775727007116305608022754576070634198059640525247962441245705050001373803213929449529573771041204995660047088116433007672310285722321253675589280525009922595431664287251902242304117765441677428408405756501207901110453061173187033036327121676080211121981611437171263488238237266522832781017602940019411343639631365260739667268586747284660440659323226277137422455010095723303863268668038792536355213000973297142522442501869179479197661208489625112845662099935944813427174467525214658707368991909800459433287964174986229749156709766704670513388792626999099155362529878109751505146338524012198894314330611151979868897737958402260529340092251398473883662350426386007108085361852608977446804219092124673413396635091988865845273820902114226344429946495586674189933035404630534733798018713706751706645692742885697137984476488914674327816916507134799480107068743533712269708653736420567776920457153809405200776891702059431022525265844968505756998931523290978039181393907854539735546060036109814129437462732702408086211117008185256166865979069549528172243467748608295353805441146463469021398354578100620285075265658059080893567770418743640444195927321833195204467766189298613097124894029721619901320387311234104272657709557656914570281734478994554744089505787975450409937235978178359725714317660266475160228278388848435059144478388739967097535975709570914103388772754692237303663689789885117556916697982908628492755451784663210579715388379070772772135109125542615507089430126546983473702984138118440500459274441876063130214209531573365990195850663436936854840730151113004989380200162933226716588037207040180740605023989847785425948953671211309794556400962508111975414559474085590553804012280369089549636458535589266087600469399170569098933366872744389927594517849629618518721194223076483643059899995377916935882106947511012404949647279009951887217054951117276064723284942105313547258011106172170482733591598775021258877533354537974905245625374236049195222245772064256705107519084562676962589264558439316692510280094933178869964824334495903389781298739860044659317039216195894199428380818302864038967549890951183775101908459912752865789709334243198492132368462384199319851614244091474920874146950858987371121589070001258714998250321523733442556085268183546478481135102200285586506773961240082018185918470474316281350225881788180514028640034932131614127634642320890053006893387325150242751781803636990237483297738506861413057190418006259344745541317618430796708447103305347016390886133300244252188737514092039332332741197560211707662462555049240737601040589907387391660899793845310309225915965936645848525975055760081044209119423624522656585872727204843205454953518388747426342065500801371932096143812116549745274668371008662921150607557829824761359498012490845505493881452428848129931888994947433486042098614215144049263354832570194530379341291017184244314349772201697306497373512803730528871053812419442726988489035916285550517155494843302498509645016668240926025250489449042883934280404658140735074770703116421612056266090759052824246335776503319543941017498613353275505930821214299240038463179325795027249743882087184307125024337754340262220043693335089136445567691288263939275344398267240339320945588117182591178275565733034331923388792186592379380859823374376811335699146601303427341401782829385949707380313742665812040864767917066160266389386483290579280202458801000194287028459357142364596981787788695070159912775735657975086258197950055223398036674845338155456395548204351349643992907550687632522817410974388318209558109988196884687883341235520169919159039877091279907812971886232967270518597780433636988389927130193478831505903845041345887208932899447378566213425667910257132192723459916116200288928657852885809759011791593526503858270333811143664920270382738878175173223569732146013405057612235148853178983159510971023204635558420535039362957305806635281203555111306099275072421790016313162662832561106164830764484415612263749374932619249574042753055423140811143206195462424045162868858158206427827811391971218913111941584256856115119759411156256150434947205643005931521348601877066099865808323502971493570253078705212687058637621845102303111565495408094988917234081412329513248664662162925650580864022802679514723360888563475830384042291830749424619322809257634552760141407120355177472561515206291053635410676659308652092154110188817941494880513242650967591853763973658400888509934687532761895733778215079665049866506024146301019154034742900805701681773797899081632220809978835809537085137774408589388791852702156438531464864539824790102244698223062554888020177036942078242053981869760023627332361724789141422162047147273241790299272015456496942233463006825499031450092586424891702844179373151483811634861808441445064369927481065671804242196572816896445686608501461235983209310124062893880660472048427135495790032907517659410335308124307817893790812373053116765747473461329091402355046029601948054396112448234218836099464574056207347565209173650640129837745885993063075646303894207595247556116998519714986561222854156374540085942464462310767523486458108379401869837879106249288893527033679950808663653480114515808323298181563820386596103569191553826624474668666784410771403449526013999697366027998041613966354618625042330765841760249695961189165519300713379567751810722718428599341486498774262121930618912893053387858525128884023735094829646540001736116639129896498920835617432048532478308659601418464514743159135339025403028288012099684879112744131847751436527375766954883756545505452197867737173303675391201179444723031322316997579964015802842618533549487116008363631216439815051794846481365688397772172554952594438378437341797255862191936495959007331431560277392462265980900074924660304413196579297099690071770564322713453369647258712994326875876710852267752228771248268758211306665773148981314739884570047376564691903922204333265675146535040754926637538001296286033903665829504821669195652119472680642598410390666090333007243732652714737277921785547063718522845142803660991196167106234320049405439634684409088543714302868309584464267563368873122475905512550593424539293721971988809486895477146781989809014888876339326424544609461238322624965710998306234405537346467564232491469022517014503445962480166178227354509119813414831489153892913330944189981876534085498395631368432676308345866153720072833739090442066197187042393466562792463306997379884038941849293798887183442848909929175445092681509976158070734555284433275936033090046414956370775366844259591884060463828006945886266838785745719894877525484805876316496157733738895954531831764714934677129162245359323903444120348751102409809977103681061323165079014587891017216652133567777319750502648876312005785852849462806266718511659424364583056624028177575788928607759035696280922074056632293146450701593560052788376328435795152255089893579376200857548842983383044311115527977021703354851933173458636383928442937851559372668965751064046901562964952531674496385146997741227926055766056913587082220004084939730540553593241464879826815062577672587341712704153087868391491918126221843776533936733882448624956650620509786656580110545892243778768078463348272182290320213398149088714787617836960740481866070825642098287030432002561658163352902265108302234115691490562999961082208991275341096663453545529214615060361914451362872650912629838842385064738148764168686987378665542525136064860505086441705550624516564826507444154989139522825059286354925748538871178774618253699878174505633982763604814529706225042964554358937889386271253438153096843877353788462106821678537827413119200016109212209048221535166113508850387390738971192166106849114513599631779211890429792674356137582598471136904454878583126735915390405228559012100075473069990794429633765805033987868573134674254853965745121766646678519387281911707967239367345361465997926340014279773111332974191121205984466415359549954148234025418055964142908276887516314275058781244470027657257679796398399415186362206126940029214249083883854846184612299299876634147925572278424219494120879810182002055901175509320074036699735361831478851038451222356979395631121928122145588896457867899631879366628634449157308207587578329594676288882548032510364636641905125253665647440748842364326702484965903895953897589397917087523410951073813794172315046635506243266837799294904092048324660298283277033944690137554355080170296428094312316071281822037963500450476107801047683563506341523811775666439581407921082550491133508018111406845983887610068706032188787885048787672817124230150330329513946411784761202650788474606846841002053464535771279164926204730078305472698639827263008342436049696651088133537325586500589438935045638217723708404368476579063159161251141022392515955802318342429847482452081286006367162359081756969826246047445407015985051653412272770649099450328880169567583972491095788558879618611310327705345516125127840740060624636138947048061428941840830276007901871729844589147361849265872386119734043877845619286517045222467871249154356455277502791464670224849359018281886665418586267182821807162009589090486269141566302572848880538968315907627918612659294520135072262139403031123287594517665571864186464049300704514502651613910598008222371245133590760114955770706870238558267631562421131511897161619753717751269073314387339318398055808214582695788869250434525600449794764351768467178029147373521152221762440236852774433780236649642173175173422400589726757841382275897633407957853378568175897053943249167372152912811829383613555315188785000948728641888811294462444652735373358067364841925034146090283243667643222509772156125915470774607679680787093237938361084615673161370522885815846639630176489151621942254334606728061908536071311845992052325644544350937634163449468903549713667345832932117239261409503212417576889335028222916417994978529948788910315372087063209074529717283010252923076152811868559509515934795070742905754414824912278854203397241299019766379550510428833237638746281817219709870220869002199395776951657025500830791176011181927214922712868678016666498171427253693716639875276621242384989055712436627361732546031995141591852524561985405198596259280393295258277573420844856229481462990476281058670591229063984673028571597737246923120863161066927962220249043217549642412579130656133495314621945369917317473169019633672784185307145222570254223132166054594317172488066838280182299036559445821921246733221435527496969800301181587881980479022595562002029329551116039126739978221399218616386769480716960088677740507008080153605952824977304469658067949636251557391289069498972747320946878601126456691835796310745332385396428125143359278174474100831946877503315009866212001749627415697356674566154323327571469192306594805704532610082474074955413883304101738246069509769482179195169708669382475617958528961655446729659692173474612948332870758357498427727768437875660518580973468003625457806467655349054972738514090760081756434073117420252799698573328089204919194369964776730780760204196620981259238396725290815516145912184239861047494746252875113455835074512090811073161331554533763196756506558875712406289685299999378293931904585778071423175164832821007061079908735470795982300575357944630407791146004046179691171826391360351701770151740425355275001969187641541835388575938961967678541630451740812803452436800933764861577217380209245427747102412827598371000022286143777805373460419940496070552393913949413343880140700310208355070660460068667445063155261639396852285494890037362497358194705190803263961238548638303034023166608591191445005959623287019025753677419991352219410776875632535509958138576526309064041211019217353838739904894383149767903117045035485511995151307070495071145936517455868996424617112410442602033926292108414633806651634059212538653130310553972678319752686885167020258327652122810794254398817300133553761173905015043880600809985995273912084608571990475275505048003680428118910071807653856572308267197257968065331933739884765698363250727093014157441721320712048780234424416091141018190825058243614320344820194403117962830532540369894775880016416388107052140487308763392058827289817792535363042052548643641948013426789612491219422630203501085043221422744617558794107314883810409654397220762555662391498614425448957447530342039869755540603954690740093930100866088200609397342799887930177896450343774421729707346278519900329801807354666745808129689554663540005280033868063650968706066747728191326314454046733339139245469321032523864786866193535525863211024782086765796335089743817850249442709532561735967503505519336152439520744715399707118424686259405242757247221415411865159209397984791872140387771981512769077278511664152924925468925966474925570820250207494728168808550399374821592169744435461885868601528365286938225231588759806626769211887014199776011754299082564792395724631271655680881265829260426260745852765620588151485901058548986185584166808375245894214337577797505544042675607757588932023772780063107054666765854334260191873840325880414384093888354724041837638676622805499824047252587284154658377239706527757567199005721386627549712847117638822527524549266045753686766146642077786946979723076160673412986353687935738766187077788162895453786405016895065924355679117472705781594843295464131698402183372460136244127857287928378393071666137591503205630821665078380106438187232122844091346279785709001590960034955010377172182651978181689060173123849720764989255905671042947685200929810669373613989822420839876346146178134331330947815788051987676679592234925664802824728471167134239333213111083424522666579066444356018789663678831274182926327888554087835053474204317308237258521981134705447371483846096644527103531865190613059816958404853538350607373373182595743002239094038319151298451954231434806582913694954711240995069071943882722351037283007429873483687817078721136783451582237175362861340614294985443016616313309918403392933153385855574685362093931749118892434096431603548790187227208270131743122637120969159875652983267414084088504689941150149831499287747426970549964925160267479998467940248640023989313801019812581842693535069489318103600430782599337458900692239402660277025678615396431277256968739806562635886704978680487393294505846937319290832048909976710314493118857789722936408555334152892656724428541067858779599002921656632313136851331225931832614175589661863970664390528096352261575145591000545939686307988636516174787922116247748905185128329370521487227722156415098123329085904132962536744581630227978093652809908756723033772780791822144244468542764278892996568417883664893374222283252875348993200774825069075714906966232215915714988404594117352031307038362304646018788761249634633994542109344298400912192177878871308283413448454225856657532508565884629755291139388196931463612522153844510637515765256035560530817936130656599705500910492012076531757001430793869575603906887651933121181560367762241442808821308531376966310165893507685979026958888600240540788136684456194095868224046477432058680065471617192610658577064278666903513695196360360171127639586935073816320765351118066036966810419242166448744938439199135952201005289196077809941526184444201925399618948242616414469620326148564827080733967451962047870824865483817101874756134268202974154236224208106026413574483722099575816633123531576441665293840854193659051962058817564729711773981870348637195426208774735126162823760904180289787389051906393704136482468694737118355644733788460912336253169818690658820888102000626100161792570610292202613245250553224550360104587990588752077799683156844366680500197952004257557210725147078889629444013039791897602416212136602497141256890286022213921150336111610844722240708093008149280609527036420660871232865840537331829073465943619603794117695700913345114893337786401150753410299368455867724731434785175648963893208005172977562780665915886006812245216374863841538978127019523158668691741819032057232595506213582517295946053447726928220987528258538808490640832779394467764604037062482085931672917911146442737369676789145661302691430214413859384014265763617350357459000869880494341567095976251608833861556486739009087447730141862614775596013311706938962640716027275929008282494219040410752851370632549930321132720694842126456000948033004925439151768203521245242542353869179295676418931479445732630910331501780402274694629852214257675073205488926331662139007337037818578672378683579248500262907415319610000360198608160081405630684536262899756024192408733828013594553254618879214768021127043948079930158761326957590601185511329283909450714790154665076974993983768933457465990526074366011736951180229249789054016223597730948639915896514222146510192858864450456884421278873577089120958899435806769092901986245098926764087011523564687696704174995274597691629331568167881759312534971145347651205607217674028964147492009768006965417775541378006299120256485655196195254839534883747765885801701124972404282671267529507921980971009412013362868585051235188316583431393289698438769046700636651049955504876645519582364682657526614276345039171380216619458872054895284113148066449141744892277650258384836075827870059787038338075934716030913959519473291658255563650308589358127842204575068399799244781668761362974571727250299050980337976995835757606586919766850258750272523980770660871871842131470391554115539944063456600658191958012248039761169658151349144785410070473445892051213771481708760393330812438526082002812809394463542398133848805795283570991324623893480535830118300490378355211221203198894651672892845640931192446103384757919355612490761957306617792014423805464122659051553112222006400124973484114816844190449471341660639700525634587880109630601065242674718545149422254201990890486827203289269978956695103283116920420757427548068135852732076898524302538641810418764277472776765569091382623175201379664324485890926334488712207925347994756264499870765998522285253408833603316871735435288954650102400286162119823521536428958435218697959442001914495121642843816928412850922352588196216312411991295724289728939828127717921076722523496166952721411802246117601500462184088979355143613538615564493990538891114613819835833144839634040167937072910857297770425420879378117061686249012098518829550608104208696544233148653321968736426451336383126182886509475834948349977127063828501532173792269219912635165348121140102380264672567992490258474437406441908472570357009990664572545648261193003494599957924815332562991907774502823628228083935981723799306363195964734137422997200914987596484039945178015154085214105998690086315844753437256588703041849379118409551447117292793365450500863967079542621400866318079795370350465652665278002251700668130550319746574463546690834986944046493372764090820024427034277308396576125557759090793715159735784593306918670763317239140505708945002493905248398071704558898250062695520060360244882257867339500125160672268062194046428182446105468001478766488709173816113034733886550029993173807511863467565998221012593923224106907439508009137564479796373447180797364803780721510150689457114404879534828409941985978400604728131724688107192616582310168808130426544893966681846550751250826205284127181262421974140571424487433652259293326804995992919813576914226752154685121057641194471007960429150920157965097777625903970814637793682634070649378096320975921639492415148893143379182130200728858749900520234310583964287483525294759276709055297724448073332424322173176616364313193013281680794936978958055225839130527113539114955443194702426293453005633419463895016932106405674752463234619957590696305600661011300682650656957481409418875239253895092809159868503735910461601022736258785419396464563494821581578040649363300795200000239687921167255687317450243993679060717514929227101112223479174327295007545163339919086435358422338715327870758074672276892431905046426695667421586850137945251987818715438433365145886641458927602278247380814281300637999343491859018313537466456816494848634692907082028672903540266163519096274201730729454685065825908460220009486042902180718676223243615613795852650506243817665545237761615767524901956641542302858801063254824172778345879327910786746977329294407190817336429891087306615645909991391742338813811481903112754171652762605748157094143441205942823440727603337871713710588948735941268932309090604983469334717011091683632521391610098624560486331522536091412829573852760175720389790478739052035543037483982927105136511610817703997696301911720281085073492311462597253092192044292678389351943129285510095444385394893025596581770273480676322637552002752573760239901944675202694952707619045514426680646826858406712492851232949376332265287809500675847524482307004058949999141131983532533042181286828637749409356433276212408818012650166990243418441506078455024640693490217445117446248432362812621669149955698462719394190593785123074022453012723757863597360677846146968518194896171130963940121840816534183030737042419216572282601560726340069693114514862511813173336333462382308323524531965427699627825400087593856190392495036298090958117804067409186695538424004311696197336749666943043383066828181091273534173605793964444082386041412774417968316305352877612100816654726522880288650662789712239114398450371277773110539637017493188209422006697585494727474711864536256820401588857468169893945016290483681645696033399929399254137502610665701700252892478825999164750153197889365291982215859677557991563993812738564166670856168116274090343267517715129319258496713982740528085943258785137071178252894357235024502019543363579061433454269925237801392138045266410144907123716137528444748973781431663634875412581238708066878779161819406179622490238680091306109543897812194777050650878488942882043671616448948350384084589423762464120315792232415741596061185998532491818844699737910146630312709739897071663335798764517878356227329152864897198822759639701194332249373440739556710142716802847934738243823107716149701079412411794999543652670036427102272464683853969115423473647023734081852480387027037716915612531898105501114681795880337722969468547609590476255953357416959851690616831341945977937626409113950522739171223299658983954035519762856642362543440548383566851356109544385924822544290742974774247986204958253555795426792296247799670714075692190027474673318982397792790739534908111883167878437866703589823956139227444691060656802250339840436245286587039916345891492994913011845529121479168845546774028827012724239172595464669593547256035677562785292295586861311200254920936588814677150450320265728366691046368808335028428524226591665228113540609451508574828114386344443995898434504639713241402897572786158711208625994373879541657827869973442996221960168546618486514217661488424117429143013519831068426715035710693832644435693571199039949893770345489364744131946600446824676159027616714197691285385226391796984128204188742469047649487397589302359993092360926673742943826678768717875950031168018335388434512542555645251574195045982717744271292266820846595896657491928813031011334915861071246074352205147211291642013494196538039298414030619569150172916803803432571452964562274096217174179778941233382831785391073123393861279380521178971619352802413978182192694501667176711591759765850853099089938164402583432201318206006911175323111846064073201773864399508382072583399887586430985059449387759715249306714637697849919222849636235130779884007499077903280324341775508326825549769005260179634438418357586521861344993017441906644388716698378398772809588340577131681717604066858094419966244434523250695192032075915526392985280861277022595043826951044811916373669997410166318314021336831356000920615519060138689757119129341542290278926686099794348541391627738612256884909358793524095034024329377742143223589527806168181451045963228300966451137949419800183990188558671829028102974575854012655339112872265897188464761101747319458602874511485656175115384017687192025370707817587762490707315365954996467643064566030183333683687874518620645555092892202622930226630124465821691698046527255598815808458871340113675690963358841298755191921123316214746197965165617895485095392126718053104828424945960540422472502166187638790727078240322136470933401279022046070192027733528086559881414434973720491472858726733703238541263124120040398238721419488841833443461096724234963508546221443687568231354461387267754105489836354385630754443491579275544338548137349405700379228513437435797257412615839612613776882924836536817554074081636084948312637620098019807657141695698268504482314272897661689288104475132690361343000684819880167324214044848551278476620495930664112866724735965492060963034840363843633577974014785208028779829600710007289222986375162586305920476177675110198744731720248458899789565614108378008420863913251124973302143298102753374374216001441928084595426442503634050332136947471619172687502188981274003308524325211500063318926836726846176865367528141048829976190318018584791952736921612568711111910975341645683152866434821496286170251468578156158178771475030901471125734652136658526912585717737786841253955036544255840852366484600300578838051437867681678800644884369827689857015627578049183742256519080155550527051536311764857043690094798267808575988774334365584281471403822276334465897208947913273452295871748914255768816326858106433826478009946158841466132698375753511911605060317790750385772229576510088227531746042246829951307251918391067535806249601549909149829245130977823342082882760127603829714895333738096167220394667189422048093717436850897501333216436318142215535554459922790058572431720363116116144766034610244036578182871092022421665283334087356448958305787137900682051205842281596007005436252843434377015997401752242124807501999149628246945793633349707360732249222706633151359690825496834622393226076627653807244605335700675851109901147493939821557637906721653070168163788814482976866699567992282924822791034162415450080693923036128988444525838459226014549103430048146434110215694248585360392899714873567796997688920876378517238923388719643226571137256912325358969260914477165637850237811104792751278908406756311514793123595651813069859517746608891978491685495815869528213753306266606965169124656955149179240326600840500431949428911319675773232796860916671544719233436380187089878411561019496395967963011248571812523639840131246006263085445735614226483575471523495109827469969250593365897705428989086926993004354399402394303799641532036299861274048036637690907417691183691323912470923026134439522071054558693629334633173432664443725074322784979538613715070726579649884500398859927849247109286289812039291797251203202462666745181797766047267544518763822771801419619831011840376920505751670892113152872846741890997551174688403385749332785683107637154195529018119379482307459154611475737607619261006938132770352573940703222407501419934338933776843299646451814844332118182240330939047830997227364590816309618173998277972260804460440673508126213885700225329276322566702354416984202261109959158801503847164846430785663476514172880226269461379199619277651576967194494304814567497233556802804029399462835134793889285479145682189294756424697991615306422982981303339539884307102612762739100588356956434888648039590839735040042666126394639909579058522537654237183491089830455786365206291519890705805426716172672861488407156388771267435038286252625599233458631764359871480114632362933968630868848775447362578314618912471691235768805305531346708383170453846046965528443796927981282092710312184646077875975261243152339992941057261506896772022329579067823005851628047892060401292566881495502965116425316891372980338314540075281752548471295249113417185666298107350907930573220790397700855622540131296132282418607289623650329965044964690694600882494680259090332734996551147840204152053702854153708004249933313121656852314416223612823769251212312118708648054977663916297342981370999024433025018804307387003651777999720830735470761530297498214384898125844977981777763658127547828049967733227397350712015532305701375951918002551964665759723923344931072875430164088679085062065520875847687481028773574590369591368690269228107845991484937664358280383257098187632053397522724817690343356978783155920407763184487194430483146781167385141984448319564861604716623657499919338656090170997799492277443100939085988166035494470149759673214079407762145976334575081520830069875182176007615549002726835206736879305621979982712526134823933091639414623240066253375538088739304278274255529220183984403299796946241659325489030182855558723879033633331871877547255211549925533860116539101071445358187896069969798033660052018919161653296067325110177566921745586574394059146767308118794327158944544939861776872947700930304317875898944511400308964878495135523484775644890321157486075017741160250128886206063185800677578048978419296911055783957295968982902914538855705597470050017599852573755747094650313464213151248144912277085299687172457040571943827368097824404416304798269303387931132993567533832549525246227563935886370668042217808717166206757740420938265684130529327555146763411838220639941944410112681668394216766532429854555029469895628488895190458878681356431591083166537965225291255893277940360990362808225727915566646753699047239015066558356356799166025722055776474374318480957301045042724820529205651081520704737894867543910053910358787748180340820524681472559751025708078951676744404129923780022466849001954011771594596172157457306868528116046221139786326717453668499183312104832324691371477958385142809027752128557664234940674729487542110956102011967046008151338316580132824050546230813818512284935721222835270355288530400299339043631590063252032552949535751529100705825963800213301393870765216522294708797540301202114169858038331866274285896821364024223798770854125303091741606968438468528783392538515165822194221879785523555715418556374425584848652198460391864886188038009670009835287041377863707348626550773496584078129112940454690621173048694062523346155373260588635474014087173902175538522519587656225510711183112772195449339116341557818206049137597793405433523719616610915489322762566881393793163807043370574028564654145634706053739769118206173600125793562375548428571362986441350540171532979629519625974540142130298700035490971990775900490501495992237618675846296795568323962746789079209503774424108835213243623752902234082447521920327759359120991919891999503306272646064573365839357263224676036968260328295287201493367389179471685225622813162206571145573941194158213777798068068252496898560842364281117051053929817377974908147090257556512799105088258681930420123088657485200670091684337804786648098626629135044082552739083138570349567398128542750117437288119866610205807375788663182476922901264085866340460017625899138032506440980296252953350261356592366066122984216444410984588628509755363229631117092660552001644025164778397764261274303363442566923221630035915038293188266397090854185907758869555876771772601144100335146948877570249583252616966792221095947023226014485316088378384844601432714093543157849322804560720645631902829279084971587896751336951031617609194187714956376469503881164563904125078144226948140844304680061318933588158097293554351245836830755511132599198303690052165694586157307601027950158021267205452959972360498912364961378580161325081599307971231050961172833718770201402966999290889296426450305330346098200018290153648654554007725457869017709530177362095019410790664301217003994409127016203923370503857603523487623804796487847148916024925545768914889450416743500590873545618455091570179251128111980274709823195108972120576627910322957154072018281542632586448326661046998420888620873705558444556070017216769457338711270830233524198799878428166557700511902475195385396255226500391402490696978299152634573213512373456950071045289303614813775213451812098257954645322317464495422539910068305353744765127762063239877487574018353438803091144278086291698626591691085396720527989282998180247972014997355232062070259443316571186305699095929367728217365318066442128580838870570530681327890828097724596239060935443634706210309304199381131449732866243837119825356631671119674429284911503917772337123099515366781482784570759371709846673524983634136352483213028451581422498337445287015042476826734911439606720359980786453962497035799493408906536918271658283496466414959994654403799125007508702660873458545802272042529010775856831047675109712850910109128839392102947884132503579414239941233376396522038668918170908173341437849993364258154615760500646761183055759537104403875505238641364290698901769383119622510932786862552641126957765499126082782517865467957364567785154306443254131853996445848426000134457413533138368913335039200149823822715627773379539185251386818001524204633556167341238583149442683556377887166373949552918022509971612828941559944968970395424097166170266454154936157051497920232328788256010519447390150403129906410903327378426903950968972273698829055830502006553446778306237668970941649970193412481651482188442353517531142141004816808496729232613146807984169143248238503780766621302989493957277025909713407797149533773373317409169145036142456857740537369912331988340721966407518588322340778918102210211714511042523845397416984591292670093114475351123318925390045487749399543698442963777339188414681500787465965149842131746588646802717850084737500281031121704562907675420284836498777322395859837687395463718390976057367801892801575847391633671331253678192061852063743434862221101944920042568007759943468930929819829216126653629160377811824027744546031563950529170825178548450172046110745550356008749282401327145769639680751533683519625264710515959426426362391917590502748299133503534545188717582420405267926434131518759089690783795393076232755066253905840057643477728824552285737391747366313484024499524739024608437883391221098920744027609675185192930615980346786013624909159978428472198642343270789825527543628459227959671474584088461057295895242871934688727574235850900677190137357206788440430475382568005990214664658925353412799998297619624368957193053656360183921338067603283864531628326116762498819622871932507191608637611406398968444292845196801737219323915211872909096774791794947479749655612434360351589795340422617401685338896935349721902008641050017286381742721571759146328564368490946576593048593051024990347037583974155319567311828898278488953426871189644067264445477605650485313204875283813929738398781004124921604802221377094566067308913028120803976671797048100877008623089474484013637857683086153107126516994271655733392226373082098581575734383655424207273394550550135543580590082247143204983970207760878666802701970483352077369629859207519682350665919833730956500156102070339964598606293809452583574458290277137192344837143469081845275687205103018194119038914805380412488058556577159946482647332537275675158808381480691390161971844827822168180982191950656947371404912380601787175622086915885916252021631491214174737953626160118924878354025438801969420786614652876777749142598937484751225714504507667662568743903474273501969846576902632138185812155627547382753932005887872075212822961745079815677944941561977130745257591211870354199429886187969885557076959150731652529370847671994452599368630478070139984286615097736844423478394549338326542860533416429022590423401195613678298252851986236340818262967024754852732879535066758823844571892015792558919456403107895062264534209376360398094951592894387267637360498925622221822011886553031537604845955023852435336442248764951945648155164100390060536089794875935058553116428706103087992398662924292699183665179197915536474181660580145144692759312973112104823797101266058938029438472813729996459108119425925733034358017065041761602203611768310532505388075124057257446354109989698395292352073970382185643311440372531343519227924602901174632080917952004041933799689797240693660669510668012460405746979969723429436470330080304725377807053407824557766016347116028103138097418437917478992779639930703383365846386663530617047283897288125774223914554711521312421423611752793914143709718184007126578501137629994318498982234138914473117300935986176110435720220506726435488731901689859666691395640318130406524442224164655688776213343117485735808116318432586627050332796413621365961437022946986695367143715921332468213382141486598671487485600720796963915527436987972881020623343037339175181660062375702940880574213517239081689228212614772571020163415194755727626853478715351070674936975463655468067109144876577241138302202452305881826422994689082010465575945628504654115463611329230237362785933175694638088330492915547311753538572288814319316556212435548261701454574922196312988851219323732346337022295797504307392708370757684739808928958969373537154731335311734398984405577901144665063348421621834330832053466129766952269272237930771081102226043283722531671643254433563132198892961483615142133254568995202229796200556260160717745344364859746039653487792322020928382713907651209075304653446936948028394419775820355974181602940230609895460770005331252817944814612557775128528229822173769188724951008240438526767320007513437872278792498116026078064591910860739814206814981363348411597052204180312982049307555321628516037886962374057081296218700226814286839944398660607796216962051735021728411973822761613768451838678427620929054638939816735658383359913919739852292042099684319200015742150973878746163888196307550754023001127700980954625017437621260975102724951383191974843001983695733653920242022662077668288143720029234279672746128407479807079909926348777677758697758431298802710980995569220223209355917915634618529072642831087921036794808609400981613422373921447108075091399924623180203945016089105408658503428937192673053012908790478939467258784567636777945188409454480851945532437718277008846021821260644041613421131544197666089959276032250538999282487875102372797979284993423228527712978016416232098502571418225040268880923752752601794167466633105559288021442965292823362467720111156033678900957460187620405416202214899748853841458590226127680102770070526141400533664952532334308332866798454276705055210219678146713009096548961787465881206945243375458002133983179164145371030909275113677362144594211564136662068974870125273790576312466609850187994377830139525366506134312027847384896911655450355610877260822489447946704429180015072862027893916136018896124053571131226404937495389281737265392921593454416957441731636007604604594712023391882821122011548222062847764766290164556419254029181508162557527247501299499709498706549053977411761164874073645063142485174855042919415157766956703994769898871081911713727795197966013594732464382949409392633844696377078273401270420231537168722957581392025593291889652910390674403384974150011463574262700587396412075620597636689371205486515466924908069484512255494137057692893510412117682278599853118587391438411212634261361885193312564595935874975104617729322212548512234387612614806919811411561475754356947176339982265597256333089217123040840990511237818998129333319742465871995530885441029022943136657706289434967033030112045287097814234760329936237468577537280488384610318692089613884714271174940921244823401021466414422017191457384701055027355909726715243493346061789767667438508347405030660547872815219311279436756872491914647393787866262379606234610367501729693373623783974367891769267206918855118225860171266293753340777774036327996274735965621140917892757112743262843158074210963736868284567930028995872030252481584881616975749357160050626945672564131455968373323049723865918417948250327820557465903067598132728067941255954690526199234098431341780430887868547467850695958668229993835639796394426188300585089176232566102984007904490656304880780459236594164006944546099086684850458538292639347559086441917249927600877810258790612960136741822842077519852524492376907773963491148458373336111443543021525754856929064960675643880844613637550130632742577697180387869252421458830494350326279735552609630687310002741209492954224310980251727567740595870611897966576564024959540000784069342289747755420553288837621581285667449585247133673547756698887253992043934292256124079072076073287306476413484498839310650037758076894181599046315023252244174611714792702280148055452317884151803240073192678432098161395010122402777561893672053689446507126946123197941776733524867256964239931358029166468035160335189982684149918030873195132395582420101112022725681239411688956024065638807610976130043991604993225585948003834735263126204430014844957037809676317261941447541655273736399647472464266933129032137399550872402697957113804650075533997430215673453981641110353730146555159179893266670536821988887500302176001396763413963586796168361901601514249942706935458272276609425888602183711060078478064546263779427929554702996510052188120421179705709951923568579185621503672171714043666189180258185417114383858102293012243156636343675862431768099043479492139715994710864194499785416689913119888846325184869165903961644217668291478273111588688289378642634171633438431341302719845052089797993616396451363634592873812719624208949599121294414434104092169848018160736447827149096116573883394253321842668171844116592964206717544465013356811445534434319503910089024673664026240633275950223631951113456318047777714320816385496503419808760009640923307193752230014855621537913686811335664719038087281255868676726375907655062252190400844270056325033410737598419628337642680507632632666954835812163275125844631400365315497736142882580089148712967340767110329248758011917315120846375805000136608208473183879384992984152701632909939604846129525098212849613674386133079879644096026798721079563128107735405599763481990810057972007840079258959472878318479050564539189925378007226192310267992609372278122985228958711603668888853653685035399745367803883179235117120710460138943008658539967254718908736443435157644909286468551482758296620241692945411832277409091326586354282729432469860800621889961964475410131300394634463313420637623928955831449646939269787609647099670719224617741615168758231124124150598288367390622491032306052947931219668187973760060891802142573161797429182209376540968429691279352977899476191738084621205461943429569681015384678168757884994407605753178013987300443434764709968835780799932828985025411839339783248506145746720516879521775547743416138562118833487294908798231992153762325952217885265538968861729654044095224313754331131181750423004410433188098813613486712664093811424659898964103545925728883205728236965751948432043295880230405624085488347676916472430382327161557941437375594909489870217425464552125703088805257467232601264609043153979976601074364309411060157321241068579428430708668108847203370576563252773657445110742480234563766819782601179906853701444490307976886348473843495470435740138072270310427825019425306176851289579764540725567986530664432559323492406718656800744502770307001414797621909885324653450213856721069908449104218253100459028933439311735602679443229275496150580465155479277833519508296415445063775472587324727981816913086199794096767763816589149541045413924561730763349932662155338393624663048234582001908791739967154704327014636350695506393232092873520482852175714695998343171410727264574502098366890387615545623928456532880556253961508612861044654963545726850590337147451676986287505493101313517796888503231732193993922671913848935536659752565248445407604417631880248704569232798203052002113981077161115093894466822508231258763816588766636269433534616210726007645473846955118232564340323044515990896768644954378346180874853868136539189415109329345696157367491341796185176584274178767032393618921666708871590994470371464109220059001496658197373931655572247259586141112095577158732622658495642126004495418892272315558722581132156501845095004657048367443760641575978429958077694510008450095658975520419087552426966934181730738713851450398846210201104221292618207152203080741368223440791181885838193629374407115596528541167216088283644140751527011219084191127938224117897398844973995573375720142453249818472185474360817342788656162637104697325001052566547062470988376281535293161584299787879909004890848968685060318372760135617612168672047898511162209799190527946862672856939287662744015018220731266641482746663120445125562114527664910476980304537104873154183127247452976426010171400603158126899311788671486033360070074313586413482710177094781789450134943587024498541100101720980299065252714061454039202576112347448259530618522306174002794831016881528574979567420394676489155454617093611286677327479373459803672222418516045266628845558700018639566976255680988564941491719502157794600807520753729010144510836314940207373209913873224332202296608356979472843476010547109218568459413076065176107027178045831499849007890762459818540423666591928518964396633026846785175327686335279779371994347771827864972168929440609151201601862429179258955486656681521216711695423737796083213880890329025038653606866095737938902926111521692614289100501071244902196499712945914555252512105945679954097035730971600409673246161901043391086859829214369039642148914650702938418493314729428955120633513172826376231246542516742786594095487449710357948049256443285744226828131996263106788615322870784982119873222745050963909717230616585684636897583212464995104595475485521978498346659949616430174868169682428098576410196273349448424433493424959379803498322297261050024975158152644233086433356408827943754881037690706829024803707729540215036543226529334385004460801929113701298254524849338602655398710904618152780327368812908354496194524544696564673471601296498374450016638977754663389033380466141148139031798939265378032201783492833348519002555176849869326120624535130254890551910951051946814302958924671206234409753208897184335769938930042862899029612008889887204447049157787160999210611583302444527000677084274180784744875904108219064298352516424076538862593425644372051868513311121765496081796493663861801903898952785801249274372624551289420690630273946571314368149013784883116228623601461832866922672630398115242549325765452788250564700729690271235084768205562563468192624024164306500338489437077709979670257060600515064867525612169998268500615957073926776006796150095776456298031753010052630885926777064066645339591694007587633832709636966392159965808651610710576736972779349135065136541065044292908637028393523317703615289254449086531776082102302756185922104511753593411180127544139716598710781108490965489498048847586680622696215732794386102590683054460675161412522898393446559430654317265891891806010740246880578119216845940651160050787671016045621162634161605057279520893522629285960911879442331762352958762349355726910179641731101340226485698682481973975338067443570692328360224482246451639122490496388754374283185127503695214076238574643369389751696573656768553144789924207871371296016153287773455325237586667905869528277206045493277341971949263578777834854514594499945787328527515778428386583076807915642425927450044814327444161557605345551011281924316256633087655231024739955294933679341937240802298962994783845461934973576591436975134402919598609152732721470443735855011632278958484154794965966682634381585394609529142270788066726549464029429835824597737698905538370219494943641456740315853590165952134423489819160551994978644474211630261145191342232704181171304203506425806802992676915253133915571618363576688173558567722685584023374410063699867261011481737193492006731811689985297385684885954818273056824066455135747131767166048114291440201263231900890106383905022439745605005959624107497481713145264914541199692813033772126355639990162510081440777505941537013167805486422041828687698898494656799602620243307615396284765597993869067862613334252537598145508502213640682947459364475506666790952821147896777141539351830100999661166659270273373521457567098483490097115706065160203823601713796603212611187524133488716290771628600792765084147510641874547092144615006272847647214695949436835453141310637808565751409279852565447992369455786779709270851149516742114362345762006609591192514023286362593963190375980652570178326435891197618510263648878404415117440608923032927533719904577654392533220105831232678425044501064188687082316373751312433122500891315793233976977800068346029491673250930730154187550985306221737901085303427265814959806896637679911008065986889199444341926692762743627533038615506004829694899192290251842197239957322990655592707288258000747204480577251628322536963891832403513276432891885763569318046371458064164505175202100810631841877220390455248876529938386750089377167007793908513369476777338202726029878559101798279023841582168965119807945161874435757521671438256664805217660889672914444024798745569396661885158501582786295144108571186634160492040460323693372654127700528764949113330433716529926152358673228308444428881673604958474941295194310575391442766940011381185606555234238021906398150799186732090677408247664072217196154835613139711875231910887006228077009171256755463434899050395055475185525703158083866505601696663456094547723819164154841826053060476102033593620511962692463374684036752962073568040956131860783516524650122043444619795064007451997778837698408292465392792923111651255072636496935379354093103572272990304837785280937132005755216041374500676435820037379717899763505623864116688312582464944645213586752494837587051683376449061458952101104915457222277360555875151577964736599259673028846760951341806709605957096296370801649597755177390732404543302589128960935822598170290104053104405808376436530490557518842410030545069461071021848562226837553947030339997774189249501691966366087159711997169368791627664049536747727826023195080458354383104442364783330470994915442971641040954166818635016124981979685811160443728709382339738632970993439274182074161740654124054860359959490567689621483126537106997230837950898399992051471867022241390905229731176015282014382090196347763276383767694619939274972720613809563320286603332756808120265968202277217770439920141884270809059814253031947475184427302497525720001508738084577306217072199104148670988908776438435941126227549319886219379738951507433336528382050964107978168153902163682307108436531740253913756492022789455474095490076938341973914669824262491381234194738921838623710063316470042425796415046862509927639183288643743926000947736961525934451957128743281850969918491418715230556857388556301464363683545975154901433040166345803406528367402586209392675639430429636024973549774357784030606859341694279837360337401094890586825361497542394595024034772090019566975589209139211861782840389724912556581385901289981563542422330549425904919349948594352992115471772456277143135309589976108817996661361336702808918054392990452257419795546887927818130317613463691236169840615151229641821679061832163034078669357148484802168553437846091479944304967289773837650777347304945538980795441067852120904000882011897337840853200092204392276945324389954344142119866537008009326059089539479219717514265367576719464484001474680569720246243832490436593050079532326753615593800541485055583891043199657486903250308138976030880256833573599765596985646782826631366548492047020044487747709069926825475949208247577704864537370618588104627542336972525852985472727260692599991008757783017632277205528737961665880561803633688503919556695514736959901981738652163250140648056533755698032949819647380984253125200660524725103545476871755203713532997914980831834209222778168423289009896677506102210011431049064094399150237318481890822969114422395367196602858826806013559135651107681677079728852461520938719305375903822288849157351979865471090030139955850999962455949722653648149422472252864223440105087881615814496804690064502460613586486162088278736309599643752855745293836124152743762252328758278899606067314360576071423756634609955983555823501106948907675964193049244792211257449558511673324809968444727744572094456661927547573196080926032032663547087453963679790653977480880680647363752909507598258349851754403759000335268896475537754954601220315193575304809743829320284882477851464723441681334712057590644636523814409147152286920150918568181130129201200476031231488854903429238578562562941360385794942209277971985136823257814989253743325914567332060053208116630836226150229763294525500578530465055201247234359666143623583087637950327598337108283554167896717249498842786576192281943826511651420754552011516936075280218996298181169930795539720234903139459230039711890729633483703227761148204262719723687262006439950666111522934857471580044270601571204803545263291062672734821837351126541491644672875057861605888983532115746903169291672244371053140507831155948750729807727535226978442348311990984260275310974876669352172121787643407434569324354660124749691778278275841399506674408357834298154692178029256760697110770204482692945513301418548030211686120949759416871548789722019611961671739184369835891580693339862682632563982614238816883063099651238999646699610396512657510018967576619216987590517408670392648933472059847272333676131769780728889967424366353852784386978062272943103575052456492654413517186921624801985912413815006225751999804000035945980398970976260751581232637385342818324483321130680400577528999521228709278749102025878919117450523234432909678693892500751155501979320715813132157201400533627111216105827846594409044842995694917872018194097983661335916013458721155643060323928040455378575693505625573954471506959883519099904975053758879415236957635193295202641537446442687232896351685643816159010854966443447197464417201419351207926389334515727930530560412026418386431203638560439512997571371598338009267219379020455320028846549331653928191801898845391891452106300194795324616273260207276642765102861749261820555184840117367638718903349292301249713773740594113285899099421644052470027445789008390177923707393005511608392587003727223528998545785424813951766009232923945019027747035234910046371806573169741929818409112476608309637786101319250119036060984527513369997939459711368693043275201762649027896424067391854357851796192433293064349658644222519775565334306120440643197566788569551530055012357832606748682418567865106082867057688102230949821928586992784703826027393632002621291636114496297312451213257770571212692950576255107646607836971030481094858667239863770527702009820614095870381330526344865298463137441452904263711868797421597819209846214944779284020927431387736844793715897480335033096652268367467523491607124272402042730703922700201220313794274348243939042198336169209926675219875862527816973207036084991941243296772938000202447794074355059059837357841281111492590000273252348617365952798799319934446881144646929798998931426822736426438216776229229785756347880166883353957273022157979854916499243510353605278820400860639144954798488781302325675733473158061420043553299835808488912755233782149803267643488904165348957995605610761210580711615395518971237914728982621775897235580199646479240478761888941673538852611476472078620433394218959597887363674328577096589137912388463751649448762829700089705214522499732314720281929303568294315777456247620637475900836509948701659979881150354384280170448466815580749201839612566108299484047019332168377044224565238343521317999164302910459475501616386894850291762329596173323505076138210044119437342320500193220702377497330183922900819286430671555239212519450500499428612155369749420204801147168297430310553204455231289099406688593807126981222821343775405391186704560206153803417983062145843051546974972177914179785754815368898062715908957772321196036879167495327726470167707370796420824500425870327891433768468592686631894543310230156856887956564099851551597370453171997421044362307004086731458759402915781532059748471113895591731708886345452065362628791475024011295471938535198539319942319302174941761949098858056932748019920323595180003405035541237432581614062576519127515991105829599801914765810825641013754583962519262650037382979869207182400504158129471391310397037796514542199120389197010537868741061018552448587803703068606243130786352595549761225817385364794644535590772953218997862649882101911547888520416290829077441734717921609522455653080001481082529946420061499353719486533490443417719634758944466173832860737256260704306435689623799006927891563388588802774938337247378555092510911692156736622563907681822538949924966260509878663756777788009740889856246802403862635209317607313735379528683872497220827377344030966573786268547783208964742526887952803103119695581469903970157301977284397539425488653736436839035662631594244158483290251888491346069757367116698572272132753357802256599345762502838803892071078466153783441502008620940268450960277728940588953959305111436495171077133355576385348463001021918493021489365923925971837345572609737940671650812207147757317599197157080930657643459019306173758519794205182780314947841043732121726167659738256621638951474323365048640213070067326248390846357379972493709580018829908425237356844167784707462600665270078458053520206749146875745215952458815079498994174287241769998675605018341279651053230764743351025319167202080299613411984360494692694476116001351709279818146240631563728550925005502755797064931789648932780177323308031559278125562203453916420676111271680687568012868694591355532626091933067299429380097465054083637270572201949609453000104815449894944894123666362234037342243813115617465165211368807037388643449699629524112001440344800072399607656923185208759460414396200618193683595682417440822450721002672531007049541264690972411423698683299929870341607673277702572169751554658297214180904446671838256763759546512410254081020812559781415750043354584980576302018490876768755042430835422103887693258533230362309376812623310122496849178133903134925973816634727789915609990362605969409961942036760789567940919501716953717198254560468570016985872296315931810141595735143602017319854065599911535906486479000474581547783867712643123016985606303779710310768191922932492010293698646138768066754001005617219357566096751160934341511032721913509656794652361623764285141976219806210693611024489483259436280987847871074070800080704017813542219956332709535543464277952061615637239613301093260621546345969713452587188947256931563449607274227031640377614649862109402969668576320400346444787178462547682468431904384330365551288039875658125840953875884155513798126086034117992431103442077193006399973244646714703658542699203184031408729651402751392332313606822361562743351891504942411733278951740396052607725518610456958384744768885730792301969851222287073832787411212951196287671678190391086486662635768610414718481120089839313647693308162677040139023119436543879463902752270126454588379636407041108897828472000541899201718870187054722809231175985781468354669006637947997727857848890440757397101473818984769756954087069630846667846741430580374887930667876384588601811602112701880606762598658786521901808384988846211024673399746016413782411012948736104696485062559671588484362006423804860662726029574596485939284220061315175980598915880889554765240344005612191760088257425642267637194276293477448907555714921917950680406948456105998576606400994788274968188133973583247260878343516658634890244205243888031396743573969616171739375983398737729576873498648800717475783071404971580306576972970165465162577940807810166467509804946378908878966529000052357299945531340245924528909871411966050638905038866733005440451013659620986811685888352181873818045632308443846257675631410414050401439149032233635391016153192107625812529585120100217527890458007179593227333226910354769384281769050142065864871706766025766286292423459834103191377898026700601396620739924174436857905168408458710008623233418276400457765255931778911341487521153539795660329766003139088240155084543078526302043134406922910083793829410209086594461950954109806604301015813940308632703117453219380882368329516337770649301202263262998305437186217936619538843059955271982614056320153133621310149616402818143799712442167052252852013699025998903230584634067968509881769109381600769712576194072007337911775724302998510892358399289244108088553134449761070621342474877578559317741091314419735089957838508234490565578887190579995847485292741655307301454689256847041059009963758609360411301678209067361519362946308772574847275298553351202631541800013079289719002874886624757160060799674234610709202480521596978763289464775024522256099698798093044989869535639182880626587063081658125618444064739179931854555724572737904706552312748702123641340885286001747486112823621748362617522192332259455017401847792351280915286339412695885934950846610388501332265846592389380713286445008183252364689282780729143257423552905337490951795892627298752159163063364329265081086280585127280823331927233930835860547796645402981973591573585406675369867773660656045397919849935880105409048835112955992599755472312617405018778007635735605395235839303736760843513088655433175626730106258760156376647159265589892213694953129555962050741609356602507460238876149567266128479531769567486813898292613671437897057105204838844469227188571453220424574576366684617963431793858586375747742886329665920100449604004490680623719570619500233236666844437026552484533259593264965108575752909254552401971668805841478730752077693833731597376191347337716826614114259895855188295267961562634617623438244040725414134550470284431374338031465496283568141893832896803389937818693315344167376471319274421823812607136050537951592571908430347480869043610417570536763467409903854150410830416837558785360238781059464729812768003319836759427749649793913723975194393787027115804944183418992031079426339090329469012532513685845772722855168946958825383392110269704631584629958142553881148026100108109656215616493529389453503134446103329185990016230835124437170961735914904905048726172315539022880920151855759920054783307828236960881723387002055313971119167738490372538238124012194366141020602524761889684029966882231159443551211775078254106433485056976212596668211997672540733736928081868608669304855146803954928248786713078504330781204271198437409249762575671264828197247030874452099176002505282312056820634330446644462437450951872213042178504239118036782042997957434877778047802026421382679994752943612243711656203339887459890968970994960344177990393385799221339471523069235218567063051628034584710954030149971252551272626739920646705343380954658784419395550477469702173469244385468398076206894238526036952238939325814845122887954710096198423843198913617307734976913879980074859947563203529790936940142922572926738751633772996317600004663842739844023057628100504323520601400417138631063096779721509302255426215823979672958013864324863521138745620241617221505878929323861772793397550633806328255733183064562151362783246538734375198458899312436363407966012692643069938513856328551328796711596222810068681114766756147527065825583057410063276150045076520274033473596584003302089772509251497608022165924722179672292253560973408722384143781557382094839422571097346007639332138587918427628765852795417853865586899304794823132769633032125911735660580373363567201259561832259486319640194359516378215304082425059593767233538695831251719313034062264383139546680667959566079505365325230682583292198719817410307632058598071041514246443306512415433640661237353749797555129152849008408876668136968783348868049946618649884839920375571136150013144457541502640096445472933821766918719590655089973230275383988450891972633358245202972487657957124929521252479407338034115580895396617287971502611987859679788616124205602224720315836094250509685442340581139774422544434407681083932254709179299993504724381438719518440275766987143845389435627665177661429889448844015918141983309188865327869011206555883793220661165747317572602055270110021569667186644686418454007506735454787479527800313232952664179362847563426044160806998850139586988284376952477872617022643934937364548754315264097775426813398938047846652783618343563992347570126477025717546957410872643477270206196433274781077470300196471513019471270486419465668828364249669787499587241026370440154120486161489124758360090742664486070246202587051968816221809471481435634958281432302281692202324200010935795797459743642125392960406232463537978111502870351544177724825655201968235644790664238666609205060205904100301319178358486883135349197900920478615353270498945260038879696879899211385591355806783680389813970594716845152854902060263270890932654215592324091457186685367218883254551028050677782382858193027562271131694501488413596655932177045957634619321143934342879101844269359533515585275713159516469341730600839055200334841957357724578426152879400568859165576203149203929780400776208781602566582915942276562687456302563267640120906175846250276663177416068863165462947386825894037706418305832112625104941421930950720431004133387574109758975013225913313504335047361526607450389652395019170258328852099665355806836570903222311197896993031716553066161090756715076513206490289722141787142167016037755173302315617334595432022783586154419145481331714275496361117517734558684492080666633654707813956826093401934086364198054124853783985174444063725911140280220702850293884897164661431516222192566905026252599628876690206256949465988946143645338582664334282632726233591390629320907680186361377839475602378378298963653621248031294728761862707469655060017225330156933477318424844102008083184863708191305161184932903785981650268773764467671668565510193939132374480052763689536117868001304807412684640121992908390887851121586284527832123057634998271150091517120172216964537701807100647391701809512467022539499784623368414552742618918267072048354620196341682298162018398618109374707010463203247815807834421998514662002006037061031758116510500529926858937445231167096327791688716501983699285184060836744200955099127004597201532195940501714380077371915878000454914837651673044360048347244246790906256007468479188034930995712359139536687637799488538116411199109483685274288000580543428078119531617049470046666700174065420375165296796153748108097856915185132924978881842741991276636902988588663333737394272621610749769579914289854342182142613125041887558339649336109699512215514563900573090086244593515873616261946232182880939515970636380958134613093703199187658559680894186108514100645010328579526570813385532727569581104444767781317318333934905083077081578102101053937180052718111573759997341096984658305589844298066969519802507066765440091236972685983148274393080120072816392239012935234689970552800599693125661974213620561870064596025686373738099545622271653285008650100330695524891898453703749445370841849126647129491699580301068011527192320101817743934145970505791071190505149844814499512247873032184140265370883970919321189591823929278511513852597129488200888884206596009528998829354554512382355251534486416363718505661069318232402790829141877332381252338189128679647956290403598184513165734698194945576008309846442658120327951070038493939528685648152974916182994084040673222471972255039482484707950557433029395943298902959869547717788738101033287439302684782174054877633421108303828399310824542979065031418094172230155447851087291788668158247503112686206224149025405843881735683140888474713117488637819564160314806137864712039583115593622761316119306267322800258326121347353396501917476792458727840011181416409853232153341029339648234204541600745263911141187310257323122201747672748506509588816386294251938225373171733579484423522106358765803140560786849978433134996437906947516425788078816627719717214260134999365318949756787443078008434101720928491466141837057525918713425033145990398815608162093195321250890452258107102789048574842039947970050308352641606048764982111216903360406967465877467756006912364123797797775625186558582534164987863765572387550148277049991682868151566308697022555029595898145598841260961688075579100543609590161935143801339900652531948238107769028726914202619018063620945324913636816159006565775634479861105631013497241225950541461864923053959196944715154935222579990855996681938339898792565568609202250331567095894950016020473945096930416636364379358960471361130312000256588289174700814040071528528113128667804677419083966210007788020507624485665719069005123507187177747242600076419535207623769705390145810787428926612017489891957177588853257410095881739624283915529373803580053138526432229213789266840353640494209265795049390487251305935967237305375991761845384284787806254455485126306543394367396488151018386555841383725486791348218828191343167161574828690772921645576854940744484304337564168710180520616181746360379306685793510402429685846828266164930443743950264980746650671379034914740937677748538534174739113568858168519698627651919590546608973650916266455615841565229810499588779772215246311062948742124911203826042985350777341734673254637023928135268598746064004702838595956528662708350351690410755466691124744894708349174109660387748524111563050820459889665961699735455542910911883585065162402248853136499745085250827421724585566976522266126575507143718367453575367229928850342241127278448387114430861790249969095014179932593494231449527862975897676656539152553996799381760624377805994071385658148741135922873611692751559494602288068587226192986225923853755047448038519006853419967681263134221682938350083621432057300196656016838879972033812408551403751566542087283179042648745065087837245137674558115990560154318659600627839394865517691866216292443894535676949658713997136070787463675512601558247511217071165667219165928790965530235530795045058575031843390296342669356424480843110321780641977155799006026926490990612801601330482247446736168368576483239992985496388431546232333476507743907553460094505032695948743806192528148920260314886665431383046898940837478390250036476000258537192368117315809484400871424840907982538950739350002927658784790132749973653129195166051814803467232664101597695529859352873892883470590517160915970092252411403969636948700994387519272187538453484189032339326365597568529624279217567866074245392781288098492402927269030185221259723489264401126598760036562673596766576979763702485714074613274464421497489646460860575697515053064959558901322907478537797742534687006502702286009185564229835739855066706305433457416010939923330526812115589592719733207374893919968489457213180025950412994910488448332560452192451019256260769993610427009482200064904174357923080834679206460057151802630103328570144952123845740192553986469560648898882068935986171464442937453429371285820860677489199297651043039579046492649278001333633592303644105499664641590541151060554594469592871182317309116162633972552567243925682930368237452339938850841509448371891970014532983722285874031269748794621319160526795192281151586739286412188011468072123410848515079286522168046741289293630224111439449733392285218546876293851777048985509405187513194626314878307514837329887491852598425521848990526820249692913185855768229313438359019785035213490616706333166044202290431847420105798171000644031150112377283798450228114924538664479883787825677024278008851866126603986162008643729706617553506682507117350535174042627147475264491530113803630980281622794837550237368599516376935586045620433322923301741686177390008408246285629061058781658425698617391968008988480429630477718644363949225022268089294347213170792430562425378771338499991924162686921283460446625739036068655100495885270036641361025255358272210368365773422599479451219426387939888565548450354250725119300073797066782059228793698067183765809097441836668489714395345885217670312804041077234647029157273678503598806010409387335887587095782419658722614299568164533606416991100940037374702343968559462288305391719188705695943021078978465207261012080508763548013931485209385955206843942935918517979167513392091138464306391181978167485922474511952026784301596207433137468907768191310715146022248737979796886688666418575934752708824334111129373075426084285310763478401506944429199529005082795278206708557966359338578912185867049009896951683277226070110035425730980277567570126165500034657777395158978317309815799565042067904027227602310971590955912816952690455925753060069048625883624156662089776819795737233765810045890062605647557842243763709460971490376876086292038284293369823387431684951399639261730736467051722332535733244506839893147505863933771108793699275909844499892578211432267518390117186506410126949208209626519755964674654765495797422910158698626437609193439936447309548604911246983732405498854118192898220820907365498334217302360676988216357368661166074780921583834258895695875695417048423689316627775354436733479278865110527400432297089310444719707159106940344581959721926696674675130725873498274417423927593063295810430433054526778928712993765320896094580017407542019757809657947733166377594395049216391454923258890337802147992408376534153886167016374168340052017167023668599464615108984721382156930172433856752928382023637327044274922062486118346622361220268356007777000462742984786455816881839453619267765462074925455302189584688036689407658263912657626116625728169496367676263271372380580533039535276715798216920350085432535782519126920537577189067047293583915716884934980940804106208550407692458940351924824509190864143669102353795794386024855744539065092129921722275125749638682582688335218052378726291264937566909542574705265512524638713002338564658007681731226391332390892404868494928921544666574762747654535384145269442996698279366168317968493946235279469089702880086385177503989810119340398423136601693699630933959290520900923829353339496418238238118426762539879039325283534626228675513553950540253952771994690147281976595398349382738292577950763659444042722001585007016614285814264748678597057845659004112171016109508130228308476160987243499878144792007254500789232498209433104151437180756580044078843310128603114530810219471026709701125111707055106200010048381606353168906488754405045675254650437206042661640355087606173739139241377078384202737430611617787047264790391353272981604686434462740509296724381868650697702652681401903356357124617617752950122914414910790778857108898442110964378631266636228763843835478203700193437529491183774417872027978634743743011424079213247131847221787978851570117022819481853743949422343212110345190895612925646330719127774751374972638375584885043326237388586999995516342233150943521248196616211564134880151765101676435493719579630382316062776550402323390797620648292418357555329675073542802494091866106255542500381906916507546891815523496718763339725660499342330606437817895534440850254177480912321803490566539281815325225459025161355153746140040905600240097606374609781749681270806747378462548698452226328274841364197514667299834914300655149937220880838655252391093874193277987933093747147209187427762938923701948648618791629914035721056575950547288293298376070695614172652898502548587953432948217638264801472803714280776275975389903072076878510459017823028592528447993471015956636556808637073603306043228845681338808064409642551909120995789366664001607630506245258688405653176872373980985540758716627863828075683390006797496432151128564309916834631996201994219968525789860239632499021054785848861062242650730263874049129560599438553644827117017007950321708987090287557094168021952230721982053141595871805748383975120736406145568068110634097704833101182348036288066084016957479192956385333317042106052237948932268972685806232215376117854609619099743059195269580999392736231558982693093702383930682816151855070275914071964718190202122416900436381247114003938789893885469035730876870263734579531995142043168127165691804590198542988119598662201941660635228636977327452850051638013576750610025984863758530931518913114074187219522661344033424184750081490100457220092781476253564633604632981001787961103777503515009914068480879208747960038178233560929436732612122671382287300207241432579384774702544620801740469606845915792241526287095664889995394728693538539494756025492552526018628730746752824866460289923383707571535073119730748163882966362452587024262320605317916433008608220286359578955542169075994957564474125946846680089412514775598923208662340911614962046347809336713227026830873324042213180821534965194088243393954793527549425529925974238636332216780165798101013084691820676412950142278396645497248202573436200131303258522259086340093633309135677584747210388877944613033626201799593640543290366493384129732252461805447191107597442581953780547388842835633951673391668799305432728308933038226725385961145033328045647728635015134023069931661259343717417043868936389268350805226584152335641554305066937041350337223279154509777286291906790227133182846839172433672804827909235995380897746232471995890853833542842611784031070736593070887915148462323624279814845895392763943272303841360654420575792512307195288928360904195276271920347831521531730685238989922077212632511399877854059500949503218680257134825259979174315825189610151093495618219928865200443120223166571271533599797288039124305612974373302397905565609030338201465823053443694727358465528834107533514687154759083868689605159625000383049241040850689858067738512541833687328155083554788928539196063615750156217934783651068330115485043423562944536911416766666723004190494120908228994834735609720118551489725497010288153627653822319721896275576545570368162494186990625293887988335839178877800025313381549090483301149325273066731159270797884501748312536509867106108327104533913486058974536940658099229159569809788995858544325460336483840774207888164015345131146187793445037538918457435642888094181020921757886501274132651518602442571866900860599454450855605166905346113272011644944425864861823147864908296281922743030895920337345028029652182329482333776277347302955167891590325670830824484849521667568766975779766790770082621511523662746225485873695368121406062822549890457815699546725810214642725508591154998487086578128876661391297315510929355833457587034083360367572101795449509869968504239778200916342783073049510081619792774920081061454833733728103846520408737206735321434950513936130987846341733216682734777693841159414801473371567633159864296006980531854328572228612117619543107732942164962418402324951492821947058962455762924398724412616840781177832184029886930546833741041031866061582943150565207970960392819948931706582197624432286459181456619042872328787566908189482365556926223217963687085224711818714939717249412253345473061398180795718546907752418390825722407041366737762874610041880591920264605481777538189132152535450787756731704375464727586442907709429619131104000905781974939459472621828440657702204407050791329866438264004352212906054358310180668619769188597332759092651622438863285901490426609585734001447434060514150459916709309790527256172294353036386053695705632653832476800832213348648305400208246017236894355820908570984576941458752795277270461387239346027800111305032133314314713266525213645494882804920721598546674601161710890512183854741799925737862323351574459821017748982756617387785679063128184961372037793347703288151956399798015066195608774350049368137543413333934607817559163667411578063685516429916004766536207887006708283535170467214495937130480068491337181159582345934320983994656249339910895501662426171331278050522767093175257963961167565899537253589101548905310214893175826570278689860478061196878893236066845348122814332492632506520175211882122528811188786509611867304742751437457706043943567317809070860360409257485299044332799325098725880748313746802082088207025903863939345720033552541734982013921979990749212704608594228958373063295832234192354982770598335731270313682906595633309659297245168666381512534864991587768888393281508124542432534993630826719761145631067964839003256449697537523061352202468477826316563161726651549624680286672399512086325076374995711229974968744640565717410310438579921967632123435299453813446538330161558808695063224136304265806824520001342827120052900049743694588438509081147122903557268914103815004586509615027556261080371927508104478216843238726979808388067665384928635099742175220913122007501176231964006690558673777732004555923294588880140482857633915739278788788018427613242164746388623556916944183540481382958671639470942729078021122403527727390404058630858191141791269946528060636682342244177083666612025431095841905605526594928620193578601890564369409633923429677939975542053968018157269345313865681649257219331927552657408413593738654833203428085081008367062654367883362276856940667296088488476577826109247814818761332837262506175841809048863543993103522648330735214461630134735139349920617059874501962777282806414462579216432544348643598015996851566876981092547586051019722721353396418460820123654321132473083245638639978850374977294265462600648012258259577600870963204140421851200638615206952252967420013157769306217488517338106716908281765524139735637914038795053512540134932335072479251220055094504542787794414277566294156648819652752950158255166656017341261349027416432012446356281161581174707535977285357933702287440197196390239558497794288324925988758809271048677640609892762038507691398102321288403325867287689570099844750326132536909812199371478513015294115284402498202016309748080247339109582101774660651854366686735386172825936403821296181128972018095748722468139272839544561468440144545887313162304601691499465057253895296597366424381461210823610299574568072808107183629058021329897822316465087116280309249730145830139731014446350651343811794523691644311490529373760485988064852853415015580130784900232127907529397875383947386317191422571652124773644776146684585460139226168774089605726062881402882010798038746471912024541034738604927860342660614081543312919216935211870530366741924535298375574863373486386683642186718688512751454186684626726176450297776045211407253113482399633253930786567274925202879138872801027659815612969893423257665890450883449271126149756509635433150212969381418288602107755999369870114353886848074422605552925833600289088446196821837580866903947638705361309637282333622931415547847118295937301715621840709744034874682070999225545568592212580029975647595165693016430716112529040748487623693902790791998882162805948671535588108590568565468967576634461174500301974793627774974952098961295902922830515376208664190154019267815909321261200766992673321491579540129431345705392296020240913812207546025204838100011535942513800621704067170321114490081614383648753140048979975759085845393786917254678508416377742995348315287886141561282568428501030993888485343560248356167618320513537822596828192869939067464094670255756395091634158241736365612305762461159881014336446710859370612499742816760130375301961089075829177130866799279676507854155779502459226730123238869673058203443321397210902395864412968575314244198010263350019954923756527787816355632819820719789365660306766785612465037046345621571324819496179571836870010712590246876783102876547642493468089151079779381593253031110296529400150850420514175152948715085050717169843184067904036099686155403732303090158353268779658526743465140329587060183331220548043708286418895944481086358650925292806529453179200386886708536433514594788733252354732799094629452131421084243908066747362469870470965673737780304139873911042244088424392836276896611891988721643309570797121104153159592537304038425689133423749435937170476381501043198012648133014628396647623267062566951736429845601812527133611534339189932208707567848094971737908311596136385125693464497259650220244964223897272735033198509295121776435094201463592836022315797548244916951162177811179741548602315356778952326281014541458411134989551204680365453553910222284346596803183268813122675839654382907428017072160162439522826965503378579408103297528305517989452209555899845250363320749884110159129245998768256230326078906735186512954728828036788114758497162279536854494769847295051350228813382921574921137543445898834712289105678444465569729973196303943464641053779082462658734077472350767190153178662688565618949649793966260743425576680655289645765726827572486489678247219392524925807305297581335634977030961775194971756671745904147874064495386433275016886881722546273478312232283799379546361565075142288987049805354979434687378300478812337537906485297672365170019626875553599666199001696720650605258683479095445261556612848625212460492396974083211126147615428473989214451248813154580988002519213162026502300709466946757325140614992221972460828101479178227739438948874756698092425491400911525429708696693186846619728945251803133442748531066896415063635297512178459274543034404658011199706780986901573846668832177996054043279484243585579305159898585630156048108501124720501669857538505411232941616133043055322748829081734999008952511772250534786439135948441082306024720703501629442520010935384065055325849540542597030348061625503237274149035819628862005433650896841483221592900768700244329666136559972334684110041362989692903058441618760756882831516313600815718081900647942749530282121406490305610930623074694248352017976891713678448425411943609939502907779687956034502641416917464372342709607869830423044890443042775101907006792515266912288189391567224002559943144970299316795407209937539887571753477381513427376985872515912208056793049163533411384321427725856283843881782575760456873492692883200130313266599531867460168708342560884138663308412639536370453709285313996560673389952639014048939082134797339333896246735458517553000744534338476711402743989103693438931993077127457493478393357535640767644665553926669232867620227671800005143553215565775117950202179488933275023195754317186765349431994778089529091902338101584539450846833089962850993740869881430117501892407705072377695951731417961076717920687864894986774364673049973555062415355524968723144827832540134560994701795685603650447854614521569695200543280137556054359551153004955406512374156561626726828343184622369825267711136792634939189408091884307947242781854040234219571391244695666045558334763733472270359064387024511112301657436488655766615871296136798782391173448350635094726426324746175931156775613983943155603515507261875260469860109280606055575090488564305843883612532598713069848000291638121290739128890098838354256352508776766253541300198380577717167110800817282879502083593586624889359925411861312628501346295976519719318092330787307525959691673024282967821566895089659659249528670969037017733202538407296882057115146578717463834562842021647528154376992471100720768331159711838347189549921954627195324337607891362926070487257883109340212553415633338696365874857769295458059916261531491895519033816956705182876247568072167494825751259512247294849432040327898455105971544307184633747223208242155684555584569681690938700650945638778595530441539731783301777431063029037004949896663580940832842668354200784118305776375961983735448279931961412623126480053548111158112537433740136186442249968420962914474781701353638493225708284205204792182005261622979216244417901190105899852120484618597792058895541295886015556739987119957641404299942129307013820647590173760141987493789238439613382354612969031406988971837632913580620372831647110976045526499208791548839416310256704088885668240594783655245399085362818967355651683475957393168562252975800719583405881519686108145262566854516869621402662279890478950598749351097439201091142341397036892738486232976446607980987125580281553027164317611065564682088920334163772138408671669503466877365375575206509840777503401658172600241421802538621340749219250932050714390298781379388212797931822874184850565339310400905536538939776222095797560243943963538744868295666670769828358940384888595115318531648860330157148262538802053664632966417150117743301757793955460917075002318090936468963719258756763385057284454407357274165146319774323513438262203595148557935651444373087924313498047612088171718496198731953491626388356791682961597555815277188447994839099186692611549596984068346117433658389504711200534061824416766351555193069470615999848020608293630461375532716022926754690072711002703854228117903394358143061357883606588804924732056245121474147967393629702157662903537510344861816146839417455893527401159407488198965787613675497385050678687410798313487261888194951960089562142770357361618028303440226336360285143136380996361968072579737083124478588602720944182594278524006306465354557509399709623603148770196384633690858900653794135791899576301526610267709555878919852701805787143054764322137957767682383096928152472513122889071097822573948472774939715368440147780006713581682053485947341830296638012784568675273852054464302051967764705780558848328744121165121038381252892056738519594719225142947102510998622394173941543880038465631227674830001220083213467355879243040626673332760234703380195452391221331423041671327212364764231082643049186909787137771553739186335868369851795269324510940202353676151416355418243816910428454838584649795864910775366957508183090695578690791516852879913450988065756971430834131548314712783640142952314449630306434276699282669248620360081336674478485919244121796240207179178873987785814667199452210015483388849915341844277692894405606372128950324596164844286417666569121453892114164174387222782597741604818731789162256194603316790325610116088677451988663417300337127294027362302856099623921445184414034103257688483371244757433472768178687139530005007280399925123667705511511994729661662027816895307599736144200870393340862456767562795561598812150020269623754817718061374246650237295756342094233383968802143965822654515161915037710584604774024127920770116687865917770779712421657157524706793778145611916752428379587823584297200216461303433707982455492938525138721313490307516640876314888674133040487229392906425062177019479943447769328409225060164940873410669089421760013220419439794616803900869991535047072299214322551172702781294260231195386878530869701015278064185131075442378239638186269150441228698578325896282075271187680731928360571952028116960558129702630210674913247056291943300433718659813800823859213229335307740313977709334404469215329360256877542564699828277622233175612620830924026574361147540436280253671856951948609037568029138503335543838394819667315134260471314183646189490988961624020234916974011267727031211932785441126564011746889329829079310655867468356249327952571884268890458882323188141109440826799095030256714998417331883547749127770295874546575444071317837939773956824706405987198426014457224555583538070722641274375205437965856839449345339133884326175738725290977907107472620326417989586740078728891411656828799202838996371811310428105295465201967951416808319186495172246502701789465130534577413150904583767125771179417602208710019221368742476373094503071342234293473684799230540396028311973309200653373584376912316147761634787421663839364293788879541791091010542442208580924672156078398676652920057795133783306685534286089439603396675621463925349107711420648947018772579603089246549416322116847117402317424269996821064397058471088510343608469731709521487592430338287961573972041393795092123989861474099375965230536489206628044724090560055640962981296904685256653271175782967964059857170125985251868401191877540471882922019373188135398871702161381775145087410436841128581594475361170645165599836309056228927333243776142049673084840794074991186459727678188032060831288180443175778217649374529733071791127430683906761125823116253352055954577768839942323745865216265582742936869844090709007997820539200210451195466346741300251335051885385545396173870200418961581559023362861183088715169477674499996317967850014084813218763739208807962114077575122982232437899664287391254806223493820225717466937719035466538327192449359490619338199998819777300899041795889978441608613440009112121534598429242873084228883918198327686626058174249321582881003019768308008242616194864700901986981588622632771071855906359259749137795533331237129459398116597336007140211720645510986366194953297001135795828420836070267941456349089056443335912403585023238059078891091701324689857892749030992208457284838100010656755776078161658941816104061085522755865009876969872893412077060376067576985852283806400705272135430435699143377215150573082254791288845579773061372471413990217743368224664628007916228615130803398444201742215908913735355857236667812667174997870757288388840619209182244824023520827270463522548003926572907829176307845710359900971284377849800165824697153093019972355388431883202896649865183027629711684498262341024338150161163109338329748343486224352992492504351256534874209323510103263855119586095151549236320070280353080708069013124346684578408665842639881578206409957358804809468425304250918192971569020896989514918292057968084750380612678345218849629503567396478705473902986710763001090661602269989099494569497234172209792554362395780139380992483950655732849852545759900740196882232761731366112984059134059664487134846460599334154651862781373644957894434319613168587642146087425597794085682264276973640686920214887694115034445471635665045266020124957662751045857909564717421091289281344031192829093870644341037042694308753947006510081003287713498970772278757022618971573153580630271454406792348379815837511114879960393982342596095925338654773255280766929404965688571202714136680438442061417707769844029725840153690025710717764211036834181926551240107049065456798305013511544697627993128160281566455462423381039431299210210083639350286212905203731181094925175372635003354375414632496734651293986497409019032378887801129457056054811717582968209725448138543683705651776120439120503044899352981891051479622175204509695192071086798056707019049566589812294692528827867421177325808617498685525121241474580701075561847746889819647473763434570579220827009520608735657090713762315838068955878926973633527096758268007120924817111283215458280717195851428119919761092956562017409367840352674893498213387795446770634143682721364006724795802291611630572557098995668661808862228118715110411200424154586761403522036467495592979644272053808547703995957023404563195657414885904491033384805073460702421475954676679647776613992718177633632308819546279626895696083948065154780028439341121825402122978185186093855060980117893068070564505276165055015575226563799892277335444332158169841041525302266093792191380675784822122653503756804284779996129710781713735950126224080354549112734765303272220609978802329593564809661236301511644560548835857788083575493853639006524093343739846186789595095939012431248495247312484295036544352595437239789225425156853950684423674606456302540928866191366791187017106041580197945750686554266621386809820343028248304677296911072260163455223668699017470019487313520980402228816034761162975567915620393384634350750386202732242421849617029488606422374641970002855022636720878910427921793485532787277815382293087622691766619380220176469478890930468192622168782102778617491615479981479254649275783760880703448195639562497628342457162920765091621146203641183184689370305195299047900253671576238879630600542118341446425877627820420154271680729745005314288843049880924468657449318124088565981953152353556219677644779267473476888586078787799259060470257661974588727921106190777507406766970402825194517793202298623118455862377785945048120444425876634153011924594922374877174109105518665288626067129943955223276071956517538758172379804538781710895866778222829733004972827886073598440172844525218588794297346174121858951630933058049747233568548420474460923693635011816100585844914306771529313234583838375989733248492132596189894663308511777558437896478679992294309937420167709059377529511049366916807735104441746745983405975934915895563254573225342041791402785615829522950824252906599702022925715552592747395404338749719836556972845173297497522720402280491635056362281278454525143614804029836087457744379855428849177367978741845328817899290936042711788728068370741778589646501481184089795290299778567401398870982612929113017156274107094961034519148231009865385079585269387407678621501911951691378774817342462623941004884208110836716469479882121046732914432692411651001909825936602144438808048608532105748125850066830590434817553919558137233416722816745472870068504372233838426010461125210139956223106126835900879214942327040302678166748678625920720420746541986213517451248324583593644871524115539383166117283823837657197266660996086349558082001768726654517028884856783332555289385089139177238436186045449785637049510275388675893448836431377528516758351635288891770019699367298935762008395785064097316322674317332642607075882821875093329766621401084263491710775036046891064846805819847133907763866031961604436613246207542736873478038316436659274245963859066121573111127615426660451544210192270941795580779602117300141931412945891239964132643264469280627538519508793800157854032674683683089355338713759813512850059575356693684859947841535803763607272124066766516748008517586430321037543099016099028864267930514140584777974426094601415787653286030761766430268468671344109760434154227694670127362868168189383565151789293033135330379701760829772186959679363754864594145338118163537833174031247746873151949797279441045838154867605140497007060570817491270781318458512458419294120186837597691594854843789866451340169871116813140382066681425440727163365580327278955008165075106584374756817202851057023700623651093766391059101124918344156764729895355274209382213771324438798563862126695476353927820187766213090694912896105099472092847819918925974627647327018674725853257494708657063433641467598939028127217367341773507310424379946938707021067869639650083584305737944743608259152705084243072320368991228560575564496990782432452461369950989251617261131089509063456515394634151810839855840151924960963405318094697178107002834959301694533019634438536726526871344382850803682478667028522592469936603446265415864798929679458079048805892785867560172122686455163813511530676286845652130023560347837729595072886303588524690663710709176031815811508710414255399714409023410628484133235916662926855692239699689139163563842862257120459372465280812752844168798628946520258066342002713464544155865072520381581352610749542225599641685513016766592688825345248700278049335880219367807103729890668143069266092740075666541479454962920127351256365815585604828857039273152167316864899240320336206297425285810566662463831932319430786693016170363368249877878182586116989139684764093322625008327215156086277355457013980778466259854736745884183388887904992928123694703332124120554966338885240275709844532861186570727072914996448543857231086222030739632630592727013384530057046480618630095635975531034115164734249749178032497953962479988869490357577127402506890121520643851308837521904770445211999302251587464392466026271892683838428827465044422345327373355774291859919335462969179561945809471326156734643153640230103063555802975667967956970270512303929353008289494398155418748171464591016137376652219654322534378133237925090604229179991925654507068203630259732473781844916916849975171605694087093157371287653204292356235939012713454112683586350861299334048510500117255774856726179511670014974977757783850485900957189117443266319456978991837770616403713968899285685084626064599006590843410880468481642726699707188396226905131030894574829908942119761415103026274641804980344810638155316729892749804245036612883213287083160116804005666747694192094093093973102807681234065683320538583514243809187813657214764755809943539476772026755533316283535803564662990166275523948172615543170017075793062118986271954021287153289990485239584249187282374870483736194158706377644875078537488685553800024895259599787414951950719192602775056230322408201192418621579624773709092754660253659296089926234597725290786013956248879190600399086768945515701967353294482368229939745762768211630921119763489784191653262130059983318878035074108026869522692929547540777459736084595246708265987655894677165123353196844778939176414144505461441157725010793058201897746836059330582194533516713881622782911383588316118158901839785444741088556091306286350100270071196065141794529002350560977841017799963362580449152279993177071406851944386802657225922474113988217205740402467751555909960580333420402572966232614849950112177137941583669437974966633435442400467351896752685557724678080815654367549673734067428011864560470074736007607440959539419644922901867454575338735413245653574385545134936400524755859291749869636366626454245423902530480688837171191731355276503418055823920712179993866162505244320896268266135626403299745140733411217889659682356708853219047135035129342846686020963700148059048284551799181947536949299798161464676063616133715563005557174309201686466409900059460182015350895023355741042433401172224149942158447155429080809259418442946439761749167485168552633711620440595141415358131764686873774754599453942335725375453364121683223872905497764519000858968325574428375359333961498815331715434128691582819973907512057770499905289777447629909468370855774146961379212835525775907908722660509580244058873025527692191921911427096021260092477144436244546812251474879312350065120474800028001984160654291358819679610591889775856988807133998574312500762029539539996742276928074110618002299293159505490311623383282792130416391344506991726850622710142670033199273996339927970213526454706963488122881718036863890725254704927467548435042470492085618094049622904610196350254273794017202567073872384043892252945858925694804830182413531954599982402068028677269512835646283058111359039136543986841536353738252262817744620943964705877230203556387418337561517054134008760121085104876804891729123427089443806404320500866757758127480072975570619280379247200761305611380089747521167354186310592373292026655972012878001289991841169591917622918214976036205779071279979007180815553759513014679384072952026793366734685786837951700651001297969442733923867837008921829852717972952108898996962997016061618370595617753188972714455409522373708189991216990389810759922130329468047450176758643728069945973737398300729643746297802262186029867871341820008698382253079257235791970807974640579398343171301211118116766330625521055231014380044491583616211266907902603037890833332358347914539262870650731355743388540596589306562305624884433065437309395732600873600084908906957773863279746168281671858100960270086116698577828704752155086876976721023331096712159565115979654222825512947433620920284879541487082717402935264413062925652352227110445561005455877681064929742954705793256916228915942459351414871695527771369156750113650994150015698037318751725789515415700755364596611311360708273971931377582446987885914969871887057637632019774069148152276404564313777213372270882719155229205945503733490852388940928907341022366980504714548859460375033428224683603190635677416857207685475898275263735364997011984221544622895937687986338212626411729666468014989952785453648626297617724403075832297150001870179434687765226883484249136089824414581604223043957276766374501871610460873702207541499231317826683786777278648237382249317685735062862186244109833747150286644521978265519187463169404579150307545734961818786186539248649693649139757583209854291204390006763939023585028038452062005970856226362717967642044594879973956472514849365620474658842676516748767730206048468942234696032241010868161077744372557469690482907412999626033673807587367198476941177880806932984713441134839716218503961065098360421513969179065937125033765426996958849346842648497833166244953655029228527217195772268077898961676405882419691150741209541263282391331206303007251311338896795858797129472905995274101926497062739457997237735983794957045528076154695845883380564071907463696916048068136426084280509506944156298879670729961964742230722064781607347769092063330250597832825500436890991730301097276397709734858764580374863230444994768838641124154238925931791327499840115599777131648471585361694372079217154818190005128179080969254954901308374563383273441334251638523497293854518281287006031826361953418050934956612680936002630066997360651668987059931064022391420305332638660224074266680410794382513566990604030239291314795694168122033316452169223541832472529838315177936885166894207479793462025494749021131709437346170243770808670203793307176312099538204733527323072812083128748727304915639304437221916877765986350585072469549767317068006272188115770715108505755786420245111556960940599251099200313073375445120299115178396231673609461995800754654201741218817059230911050439239754093699365878285879684779593586217571743457488776140974457416712976054419553856631257638351865066983122338380400550953449127216357416887926713214296826648973210365337556591736723317251255651951617598375107526079662068492434860646181140532031557027822334839564491104299790035577240336050421712760982524925782113881871090179113253175501885740084156533504319993497343929521968364152989308182628114610405143636829392394290719240738871893046749665596937158010910997981375858408686970477413152256425962260785504452120131680811641092485684208098808582458631285292838007825812254051451011549681804826837745374027135121490260266887350004974549644926930679104695128209483001070360922658394966148939069830993925240649801828939299201291726773599050293841495190093012570410733537570583107023092308779833291389552608672859152670100385604214466275167306180423312277573863254777357524273484803112107415595656404276187784074683258035242332455245820603496164998728529464452374595599259759343110340298457316026453026563112150955624733299760471030686103294834385174462706633194409446080566705017457296144219786247761378158280950507658355400280562631009545321004930209633296481543187193381367068636559270334113055354199793469472789038083516152156817438601508084471456927832226345010444034615157707947063699227744948404601411717273930845128559102387258591709584100802079191624853244403001874663784834547094386508713982484211796719583874331581577793492745728519997925197810781769358762998124813029736707729655904176982114138840508492893013743725082511197370831359984771273283009092104608744228267769728034348960235197629969782463956467321187955797743681469295845117487604271542197747359921957111372821029301233134521392915173700234144769556133440556610005052379613823046691483921374830739302927947022723215084478379372899652116534440780806297047494649319577743397102499080449981499107084160598507724745612076576133406829072788842423621395019132453055107577720765529037102789871288975885653397161392559440813476849216568082041042489881913259696775397969870629246249664151392549467268212159491942679642794484838746239529948752260405411205283305945310122955850355133231702297487676435373260663294810966923099593254747929550502819368553500941652150141358073096960500319913277082933485089386337443984636610003970539246684132129787618839642681462459041893744798595097393220218953398314745492846635467305582628669737747036015823386753096214274540379211589185144133009488957827581218572033963018202771635238989693245917335798349208550620151064232387162390246263196543747213238487028740955317101000879870561210290970219592106541338535117510835681871418329010687538962016518136654851029168041137311196759305996884182631758071496884164631368113931281597338836572895063843256231231921234154044184036905000133511153804987056297801302441133175496627355746965282338291216756793516068707880619909866354811783918746071285850237840388979677952250690121691236601907980469220787994635924037041999330957711434925401172307100544469570720708524039359441909520218211170682143934688350132945966563022171896125108067274972215655435704939764759972837965946158441151992311631795175500623784319626951639365971090943854061891638358733890052133135590763841977088741699802396740815722712271278009547499283464766924552752938470046791946648816793045515973330171859714654328326571821111197438361606931881631046645820222142985185117557397823512106960017787986422593243176659185456223996388309336169847582678157690171107837880899555839703530992773360382452736612128578625154779319119830786408122563061494238487953614972102327140869174971563169957789567275905584628489397786686499947289692016562825638988296306472474751786425897907308406333194769441151722777447682068983209488787962301555410179678698722778456996292614157974791519246746114586499376414157242440194708951004839814355317437233701786945637942891948659711670436016576156845688448144465392124059111825903099616128487800982831391189031369296609800434857341193757227786648960979624439484746147583713642956602898738241675907286846084632227320164381829971566928941956185724676566792977796990210709116756990930962407065834373701193610100317649066828711028516012395677818798693292509772030382569169413390156792890761648771537550005520589802046190694541178905096834865672642716578890012789010990614252906239166211035189830747073237271627217078154224878231359086777089649126421963230934054309478293064688938338219108619182533148609086396711762788045978935037126002427293077893440300862683862696139829122317335047408343546698447297926182100743279353956115005355269748144592396828333682090100693700809741505813295123268076665286722664058093313319515710911373556467139147722922280860037540734552116258399986510508230085361179668644385958872185109802395484817909419430305026646573491439558848096860823718701406357972341669123303084547216301826721683782770386707000490491608983929948948281861135016446801223064556264122757556151163744667106994388971971280173749434781047190574428295196677405283436641272871189588413861084912047107216304376969739946444769843624114435600618615110851324010685438067987448946862407916507588073541120447523817774940557814153285927736246177846788949463221537816658354886241408442290045151847784411271591424101053851075740434888244323482551449532753003876383606363379841872549474173292867952225170203208242168957527536682997398474696287850348819622596905279048025138275320342833269472762811634757260561796180573975991234887672156096156592073135866105095158728582033525576019567506434157848280314569500478950822902787732378162036918931258143149986845219041028272968048688127022553186581117972981953299519437231829908743220796157912077688798313708804981417721604563278294500022416098311755276867482868344318073221486591033766670895283048661580681735126441389983323287191051594049325114162151356760327454187693364547662038115386866408538088048984578056580940248057205586935643874352019923147979142380418955603061484772846508518101671619266000028206985950162079596715164629154284311541295731452326045183534710397560456524768409867665836877382160002105590457358450505762554641784125926250445626162285197884627112902930057774567273398075123698473201546845450198950346213596959403965854488034994805925981117022905668788132416308070748967135219118746092965826793987599429099695574451994897451579626832796765020737161576944147100589125558862226964535886390093016511570807738911707645052628859747059210588706076805620586011633081234326884711866566068437928257806757893968860807827727332043121688281255534671802616274913472898956279533875608432769626459854019360699055270602376790127062575107856498857513981327625109499989040912182777792147716239899096908518836230242250598184456139314431287286678224021357367464020849330502156464553685027433158937643362860288434105023018750212652289965971649023368656322236112971363739963906511669173176802468826050564003409389490474274528271768867971803590626823435506788705829125801615128880806921925756872272768945548269911286299997820710172610626788524850844008805154820072602564187201327093514697920868646881179175887445184068319716877678237332274309300665747996563142319185217111269065417339646073644801318549418228958940142240443262328138239456824068337159028318033985888454881069233522225803744270523077915604422632010606062397485503980955626121189072100022394904610531675401850172738613391742349395173358649860686313869367455672335738211260886290647843058505894338412351235196225771932311165517919685941511012843707470169697611513712414173407430901681425973727185666489568240375445549042510658759467756355216275078027353922384892478392176525624848259015692363009211039021624334530304569172436461856970630790305692370017339297086888780643868123774705532574079439520994135290063606487640841615262634760027148729477586081897283567983816028299783014381188430306957617219189829019287818120772199889479210064859610265283543831435271741529648059952561233423935383238598746729574404984455054411783997096685608967461194809799889503124950701012060131320680485781238960060512934491404955886674373608859077985083648127794267255123099175492914612998769386052932872354867846788632776962907897982378968204178543333558331720827510739549443707568418828434254667218755698031998223700701182559606844260895161059045414518074337425766816348190652653283977084953203969123334708074367025808306974440955693651161474304939944762959240629770751446698514866576845698978099542047287945990969039387246023400255123245738760497789464799029042511312064810771022489896967464399540483364932225213662764354379075990167635215275485912990872825617176467625817670986061948127274075961767088331205377699529961236880246662814575889503878192555897412421166661625364093218136266649857492323622767960085815209769698523705708693836219397987236841243592032219915768222208637729425561643254181459020586204072902552241877842183472894938361818696255585305673287843799689508886055015852219511825637691020474272352872346476761475143823839815818562255825002967512361385577041351262765369540801810526868598385643939773089406553445318398720079862627534030605651829863712025918109489609465583423848304199310912605711780214000258652023318308807740104440607358349447416749105417321100088675727962244718726774453062788163771382686018325741381529172720505350129024442914771156399304797909296109269125794953146890069836055617806003238012225471387150337003748945074898971169164354708723787167419906154051715101962353348293360895197236783342059942329356369726458671911005986326341850231414989273284525349539356191492492142230900786881475843459042779234765067972067858287324396431220306255425818331474061784579239433705589936005785767649193898528973502219705536686689884310101144648729940297360230832261424281164403219766043480874032393980051813713200922401098766286893884011809049084452226760731659950552835770982615550304435894117612331540735469376275764145250745584915403068166643609294625578722512835757441350345356394474436023477032594359846523159696058723200895574623297385843983066166666785024875169429077194049388263432681849340859382501742514512623449992883922165396876786187473552630898360378483594074902727180289821408862436667486214518290510901647138329512129922067273509580809973187705304033407064345763761527268724063376793063074832827725798889423008566505872041724026150604271183830003688960816089761013769425152952655304990737306118510302331937374130171661213304544469122819371510036007495654556276860075629308176346445300191927462034642972045536975860826131567550072059251244376637573659096482030646586907338500728316055227557266570524631138809023801215079426456148994857889081513527914054398780197633450412450196093481001768155882492282639748549256372907089742317920711613964978286492231744725876688910237980309626108589471478024358428998022094821132207815128290770271653681490107320590921988859106121750871144460446588045631339567636851752608660175579849657515118023898736085667031238436169007812694231433631997995180446829607980172430054837641774078229434715132097240793787203337247359658705297680579275761108852358481885923343465168763940305392624028185983162851563243891593003679958576121678199090194808826756954915996078792220810760571318698851858212482907124510002406182360386145704515625561867860951220500572834254603591280383968366922567401050607949855535564410529966749458859563627619849375788837589087392613231848695003779377771261098661271634414109292847672413792047398063140890198913801313611780500624211650712360152556200792742107197070156300815567627535356443340392788528383280283240965593360972811095734642861257099002311706488639878416086286732400844576068816846940241140472427919184161556629000850119073281687704716531885916486865711217522652830171399628539308496830745052923826653945747022945972782408645611988005204508012240057605202898446228613211627193364546163111102000143728583902922791667605708945171849082795140754151248088721271072730187393209652769392990121117806539478285497520977011750683100779543347739970503335384119505450002363302376178073531409343714043289007094263185983953008444363623760306689874722404221972773476507933103835688099578620345156026112896334850049683180318532594529386957786985967778639338597296091518271176656348228169089536813573451726512412664987955307244340630677339487314626759297995900143101110280452833392786745090109758681526710137303930216942133964093207067984060015417979224034011512141646365860308457250282933999819233613198847349541661814735019764989984622821055319793289728517726840017240159830977029588569613910425693588143849594552306211435094745480070608026235380060001816086714127245685245282890892957156518681242499316928051316906583878974410734885820482177660600441274072167013207620411925916664299458062773758309063302673141574420058879806702152512684829021045593447631119803544212764539706693393622941385126826797710038248186721287912373336076460554189290907906523806284707138562579407190628662235240780872277987849907246366402540560416937946956235033818475446116543307930152536104731612244253345696030187015688759083304528579379686768280905726844471419442167130333203582230170138880564469920989926039911691286472268639221054054802731317049085551343978627751272985692239220170595833824111557328417468712564830966934496295969215584416218298775671096716535549453055744751173962739293820791046262586382527458011189026875990318762257954326488474550655799238408375574123306306332665538675525554551706471481501162867464464962662321098168114454644159150511389446221226325667175941829706222224388166842730093086632789286365468747438234402022548085525641783329844755061561061363566457984217176457946251786963409760014880256258505919568120526380463285748790772231239690119576050223249366364879397460770128701264245730381959405726285977473935587873294630896110091344293863776734744142537419550205649609089372158013241519024231630084305242573179478407249949829042817589877161533112567569698836084444300440658053897109331554568428549625727291665536496668993261701793552430424551593781034430763864953200773199971368815868115221922219793917476363211417009706348520659490096750739118903464994092009678695281620902607495655048401090170945005005766940853280199174607149501830873519640201263397085795358621165593682703977760125917313672973959494906783707643484873152720714585244455561845223034004119317072789549412889230544836655750124432725882444891434196544830260434456905355509750689303508377536358187223476132659982877426869743955320997738201244872545705499485617941187436523753816629689772444279538285406519245218945608149277568797720914455008246664898405412963393279657403079322717711622303383457433630319309151768278595056078816634260147713044277061126965177357111575799631676230783608893336316989750521633838663401301056771861473143013898376377742623741234306837884213505524618945732884560543632396206932645458374898547805781460907462740045679455922177450641668067064565813046784566745127308971863864906060194820409808485799161351135454130887884086617420069859105370231191729408481001818893124283353832127410264440168996429245971122094156206460584491731938597510629207234768158120506140272359094419175754745294726769316801572967001580706209851617914393503610440488532767969707601338585747037765049329417534546087318797898544568337246082840750784503782880922100363751986571696466893232261507836220237781194154665984301902712045527858811638119589353607341316495229369987076949082017797048152412251871454633966528843260889575195364883881368800059714327817687450169837113996041604999673697257035737054974578974459259076475491441716541511239988869491890867301196783695355801545258234846605390536855138517663505400960538344322218167316737169451929990694031675702927255156610265643069967493001848575036229680322309385040058320648645977167470923068079996334157132690650927587576527574743601926240176270413466877550474322846780327120041308907879977191783552524102736124639203565656039775805870080782134666842771658096614622812862901454350130294962324948687686248624007984335684910917555602256900654092042276846383502885983308240240408209852310288390317527468767289042833771289039625126401709377267031497292783274550538459893584460372631833936438347566689811858875401051479592555990437184476581048723532832159552399668313895667386008641672312117438715317364375454329550527488721988035500748464286933653409884617571445226567915930391185221506593028442043046426213806946969050048177258911827417383426197602344462420415703806455479379073486022458244627676236563861736022236991523664682360691770965752528928777373587809026284440854747344633882401312905051196510659995139624342325576417913444022700864594652107721219386159458423226370837919049001517957118539822115858211950233054573435933026741594739255298282551747283216968881914244352717690709493315411838213217955622993735551096618221631316756077908091945796100532306197717263738567853567863761847696157042891788763778730495996310118410053013362480146379434021399963077155091710888741636289235474769790875694903620587055654766541235582218334015810989253379328210786598611777835499978131030767550133523028792207630098473013484719425218925432090646376314779501881731767066373702217307295574690239563843355308819978144451787241706354373418857054075795796253359998892882480215483585321162600192856291008144234381566728930641605888107637495260583324387550971018625275547241863536778293902588135446639697020797024004642624605052013235973054092555313893567851712703217406412463998188791672539224215184131234980936156719340275485026639818919913949006588630430889090203515993285927840878944734088929288065959936288203449683895359629446644162088423766382434836419439138846609969831043599882351808248955697013867397389546021503786433308580467559568277434022486192731423888236213331635911625423509042034127379057039557205054668972698802346756511937290883081974265709912581041088607294526981160970196706011129435204668483828132503089977808294183162240717777072793275719660943482134219220032816077864227499059752656704955951629018034671839934615922586473239530837579748912075230299069843250859989149990866232653091495928325403113572977771496679384103357243558357014443126726624499116240268919096280275644450509264245106220161171326800470375750103001349776742179346299936879054727215837530784409000315024384577400502623373633457931026197522312638881288451502761268620303544028009168648794641294598551463266822651691864218924732173324124077319405548467199930076367007538905731661355379757943873790729508844296686241531144914240613472329257834839820482328597881285831372384463058509207565713576520391691690605392228362075336975272177641505672190761771341123591441903257290342936279208269878887040177369967385408521463678916284889753480212984117725177432907000697768004615470165927038581293856924073298116216222603537984228760343399948841531393562003837544261526128492240060573372729365842380569935237972494904289324789710061590025168663611015585914282241228302303007691858249124809733079617515925774129385617139718101353699257621029630862111372365516225815621116023295879147708022809143198225963302696268746996804256111866471020209433183315287728475141218172711056052867867295004782404060700115467110932444091985026214280468444455581629564768937007079183011398302298774443525884419717618176774826726118899640165119002298803554003176686925995196132757178060327969501650398317389006856577668137520540772570205505327073270747642543588852396013005896697967269375672171519980499877358676266221749996889020357160888891010397002548987773597095247338556125666390649625236490259809144342209479580089899467706092941268674305804856659578352641624366535974811420023408996809483682624512803367981427355562698153660457090084761630177737006180065663400995870038094677654189541136006246366183659204142197786788856290542341734742250789959977870396224850345112090258713662172189873324940581232832250609080693136069087153606808332225121076079068992676318742190611868144722105133355633220121302716647624136538975618831672333799610916172395241359146529494940539770216584856797503928260969138639019455858500181656284658026200739511857848361837218593445837602085857891215222465289457349728801655669366073323243913857033195875217720064856369465812076390032982937596441458789244525179446824557601499315642055750874061376873919114389872005216188805834438414152433715656027871780440062462257451802515824369849778745324263234802161694236088102265829943500317095414181988612017531941635943024741547569676342464920304030580414266374986642290192983657655049367235783510232553873521007831906015363842149836035850539007758367389174318470605474566561197127274798645421622250932287467227679807311529625618318889917363434431728876954686519113531512959248206535305692972921683726392452324232093070117692941142381092826120072649076541599785439461655766388825087851889276904725082377855896620231237534921654135072648639070822164754317909409070730983196067727678978270096404317388779374152394496756239830173186446545485098917555925986883660348665413526649720601213248270728501409804311982563780883608802083665090949807820181325670754047812952669293421349201713412073329436453477637749741699890079775833129967731403614303424934185804391598606865491999543903090173731299371186220144542728501713774957728112658356574365870553329581899056212646372666420576486884173405618679142760957091806216206055329013561416385937844274261852409372879530010159735520033102646729151757799804096083196117545884735928696789563781139717533085079290161842083751092532613243670602749357272712057220037103489971105584908950046068954512067224910982730392519366629862793313441096213107240901277061398870211021208443144364011889679684862209054502364216026992142595263631631213196920743065757426972185832216630557539145752614240041014094940958503625374404235409822588931660707546185866391765021209148810056886974520829068202724975817316428838785267747833290017339366897753286956819523817596706785469034616131618404262827462742457430452913872374901007437381245587210811515040899609716681016142142032257476447492619280042325304597152734171731061364409416493992119498281300718023927672683378499686055565995622203594437976808687815158763976098991905996939765815925276795024264588024775309346263073847885693866583700939597477751943883981401838189456471361888722548388163667363218990760428642875145815902597434398596006357597151679149708339645908259769874000179370937441853812410288898412905609088496947458207103230358132723414190611475163997312624689984775144462214107150062889922807403695322734036207818387656375030147917479716449153546753273116880531065507335357143561204199792026376008080159214348938462301522541649587144216480922872020429267725866856851090442491939453375331017859287163105103737197058781431080361028445292483488810374491986237689751794518582332506449331428775870509283847583430744271641243602704577017588619641482745407949015773366541249784127000191257079833357140521877630056427412679059434089388758148627182314497444098382014448847176088174548258883726365852616174707101559710156785474789650279161925347159923223044837585121601130157517837366585846448461156467356168645263396873831320392968155849660555806892747017835146413741544643786387555665601624083952677584180379463777252900301978174494297515545251686517374365259153468113739303663481006978060850699883189445648785546247469157595182857177807616611232096991677388106667529539411527586130620519013203639056301290269751855894911569075083942575216580624542444948625043496758414840193661088686109008770806769435541029573124726094094664362485065100286935998931156810702702803071772885369270100450831831569317128384292394935073152696734497529901888494178411848594593227943331778011839084593208062677053494463890352363309918345754173541670476898283630720874395453633344960109059253517277576254327651066499590557299664008921562431055930338591897914251359787183666039330449322765007041738594877315145483421005475461131474000302440990331623301557477490229041315195644542254962870233988142272190486735445180098703065174391921108356614324154143598215438766966953335040480885425080820629614622430523963404071993592431168807387150177691341774180959726875955801720180844261440563745066142768377188990778707352173165936482997414842321603414535248686827507415537510236536876675461972767158309444195985931624901738523721428542323019489325742309685773865225528372907949522821653407552517393412607745577111710367112271034291482466584207955358329525712703283790165897339236895348839806172855656199351960916475102278531361582106535473320853279907851652609385240508453205456258817486163272588958968732318643964746903974014637222625545579864862531263889695998433614669837699266285387439363028114615606040023726269210181121271533151462244853645462795232356888091027427475865510426816180713589226805216655691869712586181733781338255715482677272850097322510639803386319786656574838329815073322262335645292719062947306577997621612856427686681041916519699436052235868142270053216312079123131421596260581194361967304334434955058249993294876842636915643612418350754141314103566369890573052471715950693442272938662209159234043149816495897415083492829986474921340493821891049064834429298644624179534039192736564926609593349883492779695097407036631470242416578624450579193160305311649042376814675362195127453880166710810503190505630373928806454771733455843431000684917922423827513918959098972009424071860035496434542067370427910261632339578984946879120308889050250801204941918235455394786455324747267002671019006772658295265110342331326554050205348143603773066571207956181872738858912976906574079398968230216129378934492981803193325316757699935763946740357662028594935990447324667219446736998593189234706024194910187944600081589318698793718912784223565980462442775155903885734699366941097096329244348945939667919860436082508951835254672746952957023917268760599298050629331836547512631185846755710984015762187811607831437042808285791058346122932329584703609066457890723457998969027681360164103309855397442879635305475254599605167401709470703511139850806447483289304927704779277828427402035745976983696987168469363996937149370577054177712922319978009263138607324775474276199397558338582226491273273341363424366973494891440459828634380850303589149934307161319143733061278037803304596993961068474167557460569007939313321032804588360066623113807620807590334542177008398834028124662905454149904180962426206890687233261249415549329863401756451946656798216106598928927069023184738471419922969344872579493670654786284437380513150553602355318381309396396743645594569007478934874123383813436486180797494921888445195830287397794426896399700481670638128580665333962036214479487282271408274150888849210924001131374125091725914232346296908597589305008042434327631380858956991126592457595853407848561688570250120638247484727367377898283409262346934574977113274996762158782639767547715860455860771911233883423141355651895290078742513206400230780097273097577976869661263362797431425531117983549776729105117652994730771271060470902075627436509964494982262849597579934895938855083131476061984584131555977154887691314115465171433011715067046448120174513821453777628590607289235922903768413982886412190035237284952032696893896034865070801300419936229249999704426938833816757896466854802003844277228614570172982324883393816474146329109499775474119275647431484839082790911456757685754291070369293666675166895795419361079768160953137224354959185003699421618286718745517695396785693775952205813356389298696119270706223195465119089793311774398751789440005479995090843395025355604408019970570131624501522763403540405306708935987806940609880463526503233835701231172628488573153806845202326343294996639873023352950082715207479439758025159328725167285704501676146392726452172773575212896236752169877087340365608487382837929091674079886809825880394181974363993750522556967639281500557722943936735132765620692871293468233451438437469304410994888800063524108216100885635151665857223503528434213395711332835774777611912731890550612955858857593032968082988424436289430080590557717570540699032274865381454618713068961576109362575962241690625547688586523530512497178071296983633923489147035398149528170814755003400808445071577769339748711800268557846977156621718055844723470296100952081365310156594859748752627708178693299620122984002949118746544460313052838566433505669870427251751775195057446782241878499925147143938447461345628630439428455438610007140609917003993421055948295084229375343662911770593372538734096778587479140994105721466904214857784403161838272194199358725492689290323364565963618899585969143014643159766261141478814355878016423631801618255383347056638650020935450965754585250419100923924551087884601853829039379949232738810942622168739773111144398914915439162893929134847002288142707060673160193456056539573662023648021079558773965271183382799966940394728143000390940669142608086102040577566673664006068236132563378275846269073858812900341434297771956776938449537690068869663678246762168137131656276626335187822416041469010924421251200054654764357336769840608135433738694402966524033031617216481848895427293468140042693371678067394510300752465441831514315587597718895014493068754623984458424886489191917294263063348898622910466607468314863450254731862999034836805087082240543858924537956198418533418229890162574224515247672739372100736487586975843130157198355151242470684169042442361662801523893357683973040190742207261264208246625413248595421707558985041059340324853671608436614592886193180930503552310234403803834050363312853438275653751490808161282222106618569584669094325456505104550142589747679917247798899467263839118876651161737034192803938357494917292260276862799267498888594513774159984588173013456316225770994396973104531966082795526222105441326631071062727587614872303170955124766405839986263436977495367790955315041679326970164779762637337015936155098742950863463856935793446027231281224353580307489184681281771613091559473334940613236044964435608274303449853152355486889744088501566669626143807331434101808541370231543935819039003329025743057364102522957858663906857248679733529188888012829728856921460151024898212049976198933502455208486037212732834754605710324788555052755759521375675700798472569763214610926672406144619250783985072969170857480137499966204584525865660005997766346087123167572363816872039664163425696683705759112199185164947313608761436622144314521077224033544248604354344498441055199128629116635467273949668380243115388323610211906352865990498198139201388523776254010303551436463574040187132523290902889858911516065319637043732966153226977372237050793565373920246886871696868791187306563168095145963319251075953149162881586443270722877832654922986666160276604125677968204699766291053373135056386655552125150718958088216706782000314328763139847815452784183088699270677282911404386313440887908630986562619246314257338874911026939017189164410968647866989446449719643669169336384990530510151913071709877804428688315899734114959117025652490377894675338537024778125174791760282381831062290127424146692220687202472063370917277499993359674224794600735183468067668724690877183714487810367268961442895634217514790459356225100703295120497181173482975187499633597888381134396547961796447352776522791990681355887222238331568293996094851731037952445706823707254221705236740351752342079920027472762974556565679901250375343763773287207760441849917207934553971566421043858799480855216498437069639720675491657140485567993429209214116830683861774233703666282878332694730799043789500708671631449378282491891122992215075502931445802867262303429001368444217502487637871806022063125634671363966958675952384754431734845200534069005944886002856603916152356403967468810796425325166514296441999572685535581238872816833974734158085789078846859196099552749737960520525263710124325606180859057559507569651959850871388707685879347529787087351208981927096083781356900454883926633267775174535293219642165786395661879305682877130120419884909456726238532944563597723655213339003106889687089854402689097458974015288154542116882613541724044236085666508226453014422291208716791145126540707946112320980305393347970462728984463268019025987864312455736830663135205597308217202867566082565563906422935916816536523334131872196240497171413625703840389285398143294579354205167728937825862057225275670561959604123196296514643341963241401367142632450344755713936241249621829683700231975157534563066951598411151773321578121544495043642255275204372668500306302440951396020864824110204562289584149024084192280592845525403044036744479564509548979910168372413455403979818008616154912938036669508082473465387178441868902542640531821567188015130555319617147847247907583314350101274726827987713290826064696790972135529090161796351988303623872680487467142374725867681394544753766778675561314075735950546341765883314548208214580394354360344270319131056844481033290183250316001432816067500229080745181484318779706725987182643381129446912370357858646777126871512441976474975569836044314985078427222145467968861985787751385946507922230593255395731543365904016867739062031490117504850293909256814366283506541570630848729359091842773572157398650583377529611906883223634679781107558075161399442646860393394768091977639303174776724072477321179652066955988485389321166470832798593389545425458190838566068404236766207893114471411615405495310940503347948324244021091713373576259524384618565525248168306520577951875967263647935558323341783939559726167382106030335209484356766209303038584540499989644013085676311944792400918881781592133953371799304468455181298986365494597994084449961850640202246260725964646131410323496405069909364558984579834049029474391100669526860881920048621083853269904834429257070014142882179233845619116740687445554784713308076183785066669510078811356821307231431003754789525211057500877077803882440546614350280788324945985111017666888014331613451012680710586936094197469914505460786699878345903304604999180100638973856888445088910722858182238108014251588905068603017976585119192948507104326548769330948324944573477197033628810399207803153071328998711913707779914126169078613646633944137182627982916479123500937612553687479976222630720382758683114296681789932420227105409742127336425719282861476675817455272054386492137997119440944800014050853552380968725843254410614610190808169530872074861293264836306860930555289746694213131949839480195187272101216933301938632334521625597651162419810782500930450543370924430702860775816949608783393216307423061168059067040242993901370523414235009334287123585034553323438540887338597803617429747629862023158698616024386962705677434624899486433538938000948182935495161074540759882966198348751693084872618487789341546629773508955806198196200676040850697293813140165940215921658123046688406828736083185842208785692210602186151172171000667006078749776994758092089847425356505208631208621864600328163900433039270988510031692032495737443090804667400936958363321051102383136897566319026518780750368205267967020488732073377777623605135818739965373387784990942555426460856901899884666179113822801251248999857740392537406136589438483418304190109931739010733021161037734700998653461681701372541201560342661352637991619535397441802504525088911126651892688508842043872369898912213850293275895418823088358247431893451832724170263405925240439944756834759643619958144472252944613118499776624363897184594886913248682367447038960271111606057358508619956809139655224560944413241115335511548762625682048107837137985804241755880300493239339052911953618049310484088670676467310328487483189242023914518070479973613494332325654210709834291027685622536461588943066238294447395986238082095205659346894129170197944671155756617752191619513282927324577125675577743346180380033384936152215843910155820320369955475229764949783743305809640147365781789939565110573833299412661081795632307331638118992012621682558494341752866521842576394457122589675535073951182282976631980812155885454270852396291738988901413533748647235276772750811157979624599662715265515118996936609019975981035748398448748596032350048543706880301799393419793000323304711410582236852442827867000317547693774328237193656302611688327387303032280603521770144747118670571363402113568533610756941801548972642115817869215168280051626587386592119771506187265166765502884665638198106433657936810132754880286240962031587667799969522537745703498100446122327865374766345689786914096795150991643179376496076481763828344211471492660584348255427268778649445827761143769514793429121558186054106868417387968322438755531158460626319940792894475738553136912539905641528484177391222734232012006269746524547746111288778057987612667324119054084420029979530827921784410140799601139531786641785647411919639205606129321889426412099935105291477986396383258801819278618454805865247949658724119353921148345923576542177563779197075537537947183478540792829553015144786865163670976222499951918416665793471513382638348352440105465344836526552549781468246314857366415033610364663914024766590007523331256592329047597279184608089358924940298217748922339710342160192243627531768144696281768833569967869943865460774241427535317327261538795499197006468076408722084581279123834679782494221403862232999560055657225992600143427528957961126277288679888048549812458174407435709553225161486755478707552045223849077219427914502151948003314394387534821223119922862133195697170438464902029778437689776716861488198943470768639140942180901325822289162036655757349726897626890939030721000922702909333918552506650249739190709373944606811341494273551785887501872446523476246610347528393341823470261490178460381420073200046271773723445429555398589982667213517477884259420421091447995121393065652270843703885313057567379114816002129317791259707929693456492290490175002369137846523664730057191684260742467197959683036615436577878962285584932872603731276900258592110208361873882879768016490675831743004772858172581605397450119445478778534242099344556479443192808954836778634451809548558037401019407418179054024946538776980592576691963256963030152095196523464279827367734399720451431394924071210107013856632100880129756730177547825278802454873147416115561992865457877155971024506906742400530160801309942717810796099923605759105445572755725997916123991565366757087205653960761495030003046948598428310869563460381604981308826252800273703960859030748322300464018792157892490223458456344104736763750103929942175657624061926946541985117167961777240756634557912421278888979065105399605483283797606908599394189937830351863241734270817426254743555881799139727223530493835098368815757506211505033581250272896284644457737594702065461142717284062666817933523414981325732166306095700063659034643447948760896490337005500309403136833692925435715433511324500257330674107970397905570058649447304641402250739083408452491822529356289553716662680849127436785699549408839006909637746200562454149586392840978939996171208268976631993869141684307198894592363893342096815680808829879318569489664124233661018783249581727970057465695621141238943271845528408652401986245674430041871072972284587560974623478692372690531949193000210605473643231706559410207389962502539928857991596228376421832018729924089918554015893944089592391459929194529093137595465121696171796363084566250602316830618164567921479907669577609659485053337025651483727210281486300425322490564769808341828487615780583635511281921817071342981624255997830520940447942287371527023238505432289687926665043396359477540056932887922652010641685886180301508706339955082239298426709909999032944990748706888262861879296957759867737829201210087118188490450580039788793978556377531798579527507552307468727845223021594816821572745991569582490837334457992028628958676367503225849487099252154124759484185431021585579322895350841382711422541668557568139062073096528873258549264252350738535692531501820451386988431255191702355436018413551284140886524010217685483399699243099647765381619832125083281282228958786353756058127384198619559613302599181830662709683872619815138083184470984799249538140873418869767767532567303372765904242443819219244191447313129497681617205685831809666504730000026747132123863227573651517644136533827291342728159460775810608643353789908806605957798953055665690272843422173586881309012076464178306117518879535834628000398332188854189112361690213596333967004285379071954268884723846662233494399011021294501592479010134530437266678409188085619021486713605531078631800088066601370480810875191633191399470341531204394877865460916715227392522015230078670896229650204936587269971291909840348571573816220336922648910131535707445565219617028603119914466649220695955008613138339660406079290287226914130583188253206206358204841048728473930401581512967031163121670975796372063953860965007974383598771985191496089074335235541298867176818185380289815838900332791290153206613059447161139643157854167219838099945477083698010727474613709501647723335221014566802140030531623281978414250416441848165695535068120294701133480877257197201551708925582644267073228291839353517312946529004935517359182872590475267036979346912390958548500842830022742473149001341567728039225003824963666432847954468625766453095194975921899112231259953526980798874519858484875910623431416068394289848596480250315097664142540625481849166849397344344974212065693479909578416665298921566775573447041689880615447342326838432177209654715927412217154807020454050036731863758792478832208345592082064022070624104467717376678267096923095170478114545855636973574822393465944732727257002198494592401352110716485822835105621263686192630159077979663994659109079115518614613036600425970886569977107260658644541086573665917286973546994941476467007748140110991254263977158999169475480686664915677115670313524463602541963728470362628072296928207094499923969703934421985904203627925288295132838259137926514616567468111893241286186917966458648804617502123536862599926495733076487472540722640558987439523732799520223103050892463344735057042876976312457329921594926983805321073949050291535812084661500776579781476167097887150127056383479974364051027915572323036134015343569986012224222376393114346280497259145369968065145884839853368597891730274300380474326512748106873443667097854187285661662479360391801251307029480513091822190311282615824135291166663908602394986288769687624322243041689617896612068439195410556842532778738162166610431912604172005805249540452748195156035515783341815229728186470700592533536684397838309966074971960071770366898936592645507821608354822429847169825224132522446422579156639987040075771426062981985020553635525619610552544726052243427099434990907024533299405791146487355373628153908439733625509975566115074126516835001282453233204615895026220780202585501454339706448608196942463634600019994062332243758003552147983849120987356625802436525229949690950807240846909455593988823520711934549049654629326912710336368014737434594555787058322251551098089074441597776716092273849266674997005055244165260841919625617899321839094265297499790963572568057288421897520208980008072980792974014689936313807658990764136850793005782690279817090627456251989072845613023951099240888677058767705553380153419240183894391667669275924975332625966276703583790917202747478612051766434496704134622421791043153863995061595832779765480932272874274957547478119012460117603260747709954327804131065848180668564715532145236043177487722676406774662131356625757947550287944382751364733871650935186377107144749427807299001193957233365044529807251397563621146541493454043355117689861961051082724921767427197996993659459140906440492068931653559603378303631368448725076647776633491391821853989807676437745855785801459115320453574843263057913804419930154755975547625231792394021363228312610661008836830530188914531944826612571412251047738553528795040108866829078552800121628098113124155184120759879839489785844285135012642569744135271442561536587840704684003683376714951175725495926604189034414502737695394190772189089701617465975527947549645234403621180841346213748367005659949056925652666604696533199739817578130554040050584736994577659811187711448072569834921111393405013197262728299482073489360550769816175644622794624045170016522162409573609280378466440175663910167021173459565117884058943829817404315469035868929947576531255667103345431147457310480436382939409257757089971314680535669140339542524765938319819707030541794083343816197815905852655592243880325369210737500590977652110174588918433160255654725281646686203602976136081081156979895635971799000221121600625104724883486105565705268970738172082465989017096244218433164530193697295720717549534995316755440622035696313559804361127074740765082592307836235067360591643355041213348439784672806538787328180185893190101806627378491088473187629478639847877677665250359394084996431467903649165068587791636722165125811017816877984548386679703390784708851686964320881012885328765683070681343534446422148483248414578250482461230837668472444176915825966703146483958665049954681426311683674171923991692328168544129095338347499643836568047445080621616970317478066208726404240392560384481847053776541649614496392043250758882663405284100695846016807133713737730948372457981102238154460943665949136303683639778020787581034168941532030470483701002907274651868898841885456925402958313726746494568299393795346730957696182132174996958031945883364724309007727124307834281748638574057215217406002153598450682392551229035273302669402189037316138173784460626044053445763168380674445320843846195131445530839267263730374983174849339469427186908973117107442185224860708625243508165125049675344061442650591861498006933006605787211664160274670741785406493841801440811561070577560857535129635899542377243009916230682958916346014990688210486693027613674729853993393717708848896362302779592296664433775800300808332798236330966243963588304074552494089930263636479551052463836624496804764314562299939169981565601406649703445478992621812932776420178777415904428132274489205391375782253047298173731274831527344551734068206206101245058217585117974794783365186259501975821277761068562145506935141543262879636117958335267683482784156650335460156776755412990368282451694422394943970652632369218984452935513556680279860826378729959742535878746645318690594486841383431545184550913034878534499013107166648861883260177856557371934625061013358295311732202380937655797128603669771704624475460653113627457680970241227245814641772829192207229382635822604551487579563751805671292894945781372405399692923250443096613721327968731175444952302964528545244295355709138226876326378697148186256916474599752235313626178946823263356612577861652497326119422970629954686861661139417608251343869372872748839306072985613349352562823207147387272050284599091520635263766803011798875337443684436216261527442723765218796039630158396873804116721051751894021427148158752170562968654091463254530863409583209234964904557759375715087619930268940424504855292071332434344264896542548180878245119452587355746537568195234744676209017618023271827187567386305353236124576193344435384840449312620823062293903501077384532826959907045615585011464256683199250962161994035973642823658137152469663927386825641823091601350659760010991172496348342387672320228475342589217107814160163687466291264455561945656962046318672148137493027196301201415457891297899458631645869299479616402709632079171708892433990547446476930044485328932779598164825276184189360455154229636138478950491368537126192373146499582328958650247017697661662823340299032485742535026404593835230674519244134971596290761489294215817764210865805440828030237713454406510551677054191019040694895151953618740262198701871195069517655025870686414765213809245016897658488849728361163190440357771937429467957900279562228892290857768782289720929059675584710216310327253507513826856754107217275795017361940040579941609576112581248666080565501200559443614665271214204661316883858622967324104781523177716474273819998447426244170466578155803332511414918892081811999520567376559082331891456340375931629579921339958487936601860911370651221364356518972988594739610399661935177197430778702677685911600888642454118666872945809284492089352995243669566374820211413062499417674564945378089876456505984051274538288228259042434481119919050115995450741633243190180052097080697605617928945167642346260964007591554508661641026894442081875991671582775022073503557448047509091593138712042584038510991694393803229183532920088024401911476263620398307103011733159445089461245158774945261605992093741133363111262422666335239662987019029572469530544162096499705716230549845313200643527591191599602063585000388236158329244275023821812449266313467933807499482985674564859257016113808420266677226473981197039285553068086920042909572035381364665050939667068879138763741980254344624924180007069188862511031503554368959605808222950097982268540967501893224199034963094015012612850065003240791421968802453546017391725776273074828130840405043486885036376910237998750218743531478668796060081061760606960509659726595286499662179041299582702261254632224470724397884341952933324280108299279233801536143890522823921310151391959809600709940091431154731170247157869968504627528625339661829847062243122528025945887779847965074525616016559406112382657096161699607752377657232948731680834408405600070403247377079713721824380057406567175946466955075795277818775270847477355565899708097689888161093865001773629354385768082124671025114705182329613683438076076450193717136604370334142334721121101536617534052084513103496795615642592797276460500072604996577218094276128922140216339241052394782952924880118338312343635584592306701586637550194240702296223310852571151076343131219731147163306386777805229077385107411649168600193670637012773540381832017340201348622306282125220461218841475286597094459631166535053740748512444389935275022831800256729224352223496682860934905230262923946629183650689001709646244022887256258949772930631329295957863861074855134765349024446134257557291230080403408325976830009452705246360184692595354139750078721684027732203581170571007719579742005791374943106899925566389584844834781456534825366292219103217527071706420251729474172992776324177643397289231455735652548344447887489004084159134736835857962633303956967997521509777736691881938859625528922152600344812439165787424215575324442345553262052094426049490092190169452914371107133103323679729151017044072615744615534522957957524850913457496294524943650726126276567753364126772071727363569160250089177775755841175335616196151974457770673910213247934890721742214554748221920395681356326780703478357080909096215792882171172638296629020114248992100796926381110128726564008239951240992285529461391633025103008630265857362850129306135134448985794746286531175944961083953389539295907710210385652556964788207787062244604982033711095987750771677056612647148166233471332891804776728231627189581542941372205712642621230245405496444184160145136474558690991820188692258321644934783701391098853357530820884834170328764538446311730227760943049103889881752848298175125336995945347853260857014554629986346835497707129851749831148317890338278902157226793088564265054547411644924672495942688676181062335397304884264846181524551365077466802986197156995110442969715132441126952230882531533837194241013707999575897757548385666788993526999883695429723114529675933256457756441889164310122466601354455763026759002113089827739299503705162458073562987245771123356870973413381045019560347193802562127851183912545651370077638772439600960982295773756871050352532112449919225437649827647563090406826695644363509455311855517447277745422042469991347241230242488324698351634793009305265066392421350795279305835304540955827153861287024025041142008589153439015930600392238764772982430941250620186989260413418224999606278331212508839423114661907003366669659607442912639828067256626117832152997738184683844974248099740868594827569910563513463850482335516215422989438749516986468226231473742529033112365748646281234475582303466762699291470162723271825815984125601694328972059645247122110541473042828353447830178475749694812707985596703098875247593207086662559833551230290851353331388445670303956153729716390873306912299637595788869012605776364580706230837574572211546711221129621620250980803138092974702765637290205204578266188666623969796904158953112827858852634257744480194022030633057965230440098152219280954199838382075512470877305214817264124301346089426224925322325816474969830758321688610307896951249503281431209656415369641467440395223227655196508584771082697800545271028482322404064482335430186727570998521335844637391696889862610291256198877870274124927103046246160087963503236160607961233148730170110437785513368898293815375402889908596984054273989511138885033319832871353387711941143983475242529223316390144417218875555256429379046689003653520316904197174752258594750088730155171288127921758899330432127457982904143783975229437828489338079772477698736811586551867366292124497507501204958687783890718221900212091931748991479001104759303934453367174410794603919231647629107510665147653433951773350806160222988659244303578442561049761922240404427291877354605557665094328593496892475868775044506670398031713289232384348097806708382302651423119120613960762460403720635942130479304893194140320992216522855503944691411416156838480462392882170001222808914043616239216594912339033559013869600765377298347889132543503859867010112759108467623660799704472798745916106053231938019875100926277060170180065944590476614900672192451553776154644602944349397234097827353283155375981685088506723637033929092506844735327485846822293708841279624564947679537440136350517933962257667884911743706853808083858033783740727528111267164333874616951405602371938665983129720786568106819979408013792491694237631809667321001781601934329453944995061408323148089227739682468429703530083403593491530342170700061153873656180474038830619100288548360567840708088941283049987676798983046230768844622981348402903864820335770869018015487902511590959810487604242651500029811435836626770723545896995305769431404048787903256146024751934688863523150182942909003984726552431790656652042392101771758777885603893680648377649024192633077962222408853651223327211346718253458288507300270633549810664694205726604698350047011436608267710299291515867099206317662314898974818967952721763206226263055914144885151433479644055686553857855083523618048544356726338768422528055067067634116237292784014705589696095899722107978268856681295635916060157995416629231584838553155223980568816473090272676175131572191687121226243519293530962732741207981921365401594995586046349647688534552906662307960336791142447227638419166501095854548891705008071921286133153159610991186274853891719699655848104579125445440304793755671681130244880641664852684296744551728171696803174809828467773553496270947711188721420007288382222697584802159481476897366496057327472200124596142037764718679475894333398932540541051588713870830495216681733076270559642756448800271297417154559942226745550952991713982313380124663104935141306128849715619953785249629699532986930916451546299824681489553747902619315327168457793389365691270469746332869393477935755246216731744673318078068882228658929618708643263374398381405329287049597955048119546526309465539170168425351953249880548662366983515165847046342070958437817607158469890313695221827622175717626342427356742306165116861596759799376556338287041483949127455757386248152457144955475949981306098401002811975064670410310697423125359775883693047022035787273991554326991057155362196946612804389440803701036481569743667696337360427788917648466031531765422537334219226001432337621207357846328099791848801973414823626157196164638176857028957508646836412231949159381449080901558892722201421515722712291039729034334786051502855599797781254939267753272065607221082597373785886684522136162777892374962407521438896736749067921547392438743503071317069388621878823805218307603633603868405113903779142194803066372577531915156453413720666629315415838947982616170685740835314861115480566373113270522342397708361950790988279585280783290609155963202004015993125292824697084462640233258436485308218851339129690917910836308306267051793770573113252056675215722223972891346392789106856140058083795828155498552162296201374110871387336275713033781843305073656965420527346090271930630768452029522394273059611425092909390624080617547186099675475872211374711543170427657492123881735211488797556534413963776435551826103806877271389983221788071678745293666344486211424218743745167379242823516802884309422250919987618921167750128905950856971973114885397264241427424070530741582029571041076995103281735860626287424704413697236499278019252552129005945187175794335067656916538309638009396101014265894120095798673230046031116121162300631470503481791944889834484104574629973476741456092801734401679517829089140061277535027728734934433729132104658163664367350107806067059593292656246205712015082970279569866073690445051400060102809033898732958226389095625052743613830511155103209754403656561639613504499733896204699386199916602470220784013226315423969015921768845469810790524311351776149738231234261147172040105546868063259457664803252478353165777280136191249238174066624463562970096058960921950537361388342061423800643197781379500112751362232141918018915628263928828274416181334537948422733373606300926875804146531151171731898010989088983237927537900656970558200426279366508861054112490637803714216042476417294356963111420900626910714728671606155155436899833245571014499427999209025014117569675775648852719227552787726173223241979871128251926243273033052589607801430047634123544040368606754724916468390991417586315670819104148469108215639470484055762724192607317730583487328776948652260722977910074738149980711591656451732004188996117423528192572576211770911153760684432604863298150393607446127217263855179838619121409897615124649697165171177936503144911194358540168009828709167283340666656310261100240063428640212758662261193712841796775568050034302429329259248293343659476752973913943227339436625978835670574701532007486107376645279978387777696246041707056031369590315070260050542949945565854473009333957300637112240289449157151769073930333403347054610235851746728604516459183512593123724934973573807407755276906975938324099897469054634073090358837375636496462517582989079533884122959430566072113089886234791224343194048243196614381849554464671137023760360840520608516831958861699929849050467028192810864625215283049431755003635486600322445067104445487143778144966681411131685068496634121900164899149489688175526262622574407989692749239311566264596306297779419297807863641091818869191252514184586168016790955988881893067233340526662874658158548358650834312016629926173617093388157806948062613289797160513861283218802486479727745963166722970227608916104153991720258448768436284607140615483047396173714585364227275702643891503480809882508215055030182860087861129886467953211972391712305126423597889241934875527000873941364271809264508037789328735663998246723836294929117138764870482665540251410665927391326441555511897152285781548420428358254875277051913364564201704931483157383573793851888715868856861884526814497674413256565717308104666270886839223591178967669848690826247391009704931821886677166669645036850190496950667502913620261232518673667242189596975320860231759015903107310037856439650373476730152090289405954388445968732636402892996539622877923831339013710133640177802621826573986005419764366623174611641501712800831687655905642858231880061165248393886152262671826000292963091099371317429152004342203886673487338243592007241008605110875896264757219780213941764455478211772670994101758820174967425692472892545184380071944237472655807158539400308344304218710361386684211907106747987611263289973150719405664409400041179581127576858067182484708684497654463573517207047178726177083194575222689695830180027582146971495660203758870125310314556727364096785030858906716926845600200477460155663012003326921124957005310223411985463682636038379809666406413213339490655751547695962373089724941724847053447817499126151812793099622932038439926305536632991912016653881208791873078077107352874095096188970287082631330900621724580480575151603398519916125202136629722626747519426988383368714923924696113344174171452476889791305151124259454219635481453666835158960642925336297884601932110556990199616060786064830560353701090836640756532097783366538981891713605956405592749073713065359609669228936640068242353468844444577368054037494029405607907805847107583253162726312285039996501912199510778975719787969090245226459979831661606837402700106541418242849093670680751334944432513446229418743981719685990608395576203700369939479234918029826080174543968078897134430073114958619532780898069143066991476537131905296997353894226562313388196247375258116670367181996421138667989665787886177551267447849304835260805891998835672414828139656786507585980078369881663577210029336058917186920896241734779576340579558559738673860570665659154429006214867069900320067264443099611401635560141172446049780919394639640474106091133665201126937227532242057147678152646191945779820174085647272130288889515804219837414140720285600838676305578373770106015850701061325843881955848514088888159305868764698794653937535671470681764400630465557117102468889746419633570708473805142421681947286297630742117559581679422433442887567708878204077240428403319239211410675033009577394611919994639012996327881684160805423180948546239129605214040834591802662003268723587025909017364516642702843242412288379314471816969165814051812653828117766289147872479114294535782701171728189833022166836491070568924741649584470195082640987385363645374426940084896764784000444515509836236712733818243547558385035046899600258037234881106751416085082907178702329462682607103691640918618126253861622181293836998346292746406441565314820837199054058765340825234697978014881867834447165916552514824258444950153234390854403249262771313462782836838689065108798506722857827938166793586435233936756382154788026086745508375515190009926283644270503238679418020345514230582230696292749527424845555681859094956621553504630003884237425445882710265716630883602257135858347762090519818885041628028880995131739832715862526090736088898207212534930680060479383595441866366868051859989573805833069360875374558619044651080800924867068385383478094461623075818300979034121502301936578485964983482231198232589885047343368838764882606424641112304044414631073505345852627412276531633683479414434893044368261126086086953100627910445624004682399619232190934799002990599700754704954039453983580231363042597415758293650070242647875922716984850501134837022164946945626598544707055922608649407611455918509957742022640853155204853578955818901630144875653204651997792981053061382009300408162644281865707273454758105735196656727081598436875695914309672592908630724307830775108168011806598629073908456056867334278812704218992528191870111295894403752956588924440652433534395264516665018403690687789384881326851307905088085642427948897386135640914032457740451001349286042205813789170725270056495544814283284813272668456946979613834733572191933965071410227590189905996888443339340222586394767251376503155747157505098124317684948531412409958224323924058179835608006890864949774190006338016045901838869736317313064796910985086679602587740228930151128833427529323366797835571983938044103401734316008180120140994780201562209212244274206017434708441161769093526143169625804474285162884476243342418576072249345200372303591019610609106368790518985353033868092132937106319958403050881658670376117418330277520666525711501390301065500474911109586441680720554954275934176816844961989699613813556486353953392490299134738277176158090823254336872738522218976628825860506368895403014158552954724930585689414905142753311426425736926651369582899787012179222335443921997981002525823221772275528300859663938370433478781667336336979681671190798756648269660196941380824090453559340481751864130877768568229907575153040918637085385733481691106654860271696045735585846702821475944568151955079780481920261405343076579723371681649726948941856367257071264801402395605468665599217514608724243264312423210193944754439449236439154504523011236005030608065630547705356137445348355212148132153419596000601129403555997904747686113392784758468657043712658186302931467015490958977679709610999948614895408307115404388521706709386796776923640618632760492724998481451170475210249304456489200322604720191474469697307146693372816983728844172307368775692374314110929109283178154546955378829364710238099941590248733059149088807103239928045342570580087948964186532718778158898047260834532765932712313246671110180662834884961343627359645219906174155408401385764664656995529319456873634098490125491722242264076608764825208055599050234767707094092779494238843139758762379070869003278569301095655283668574825982164079546800608013002795142201772995352730715242813828012060036430881173771882425271395732704342763063327292123724894308110061685026840677901005528355973693574823252641173050122710872424249435732054504606370642918188731807139188991349330702725600171835346373118285506592825923560490505079734846271988209660605035352399968591505667053183153424218684996873716461628907314113733417190693808726629420755607556449406053054216030454593919903966259864731877770687270816757395649894339449788441115737965121464251567686721574187106356449622204910127910942400394615118994807446490936276981163890768448683383404334730453162524617277267839449656170098554908288558772829039207852503204563961845622770224606497050335448762936740178459024365464841240480267886792657432622260374373428685878116322881799113998022484033817328420515427778378131807841865535501479162442754092451135761308460996305149018509353805133706788132986953178760702363469174673488063805033531367804080821096394842095717709427919872649861937083939493652918083266703721672922896047520355765461783027977060827304415332322124783729366206607929362619696088121347371259372255580480682499495531853360107260606122311008725172991331409319787537185846558850101742014169140674206207485928994743400177472221256909150368773252704763235370869440890697336368373921743194339816500277017426449860942015800166462668322557021190535447220342850288407148465212571650987257916922047070275228281380219664846792380230763173720829697529690966757041952388446483033166404997653434496323282668287699873367728745068227020312864060996910603814753149375386105676389796166894591909927757245038799560385654637790616138631601471011443711345224366217631364996227834736678869993886653573967970255098276167149894648554517773028478630898489726696226790120073476762450101976182848251415575370729919241069216855613198771367210931279661369163134905883312005029206485731036135671353599481108287158340437264897812120104683205512802558703870381447136303392300925047505892639587098249854649098131235490096741980740057039813460456811189318876292169503570347346953990257809744557353431491340567604102759032370732831285096675759015152110148091273685928203294100862836243896741692950459602057306555774473857109279728279055097574220379194603788242694126706694166340368673620088699274930842069674414341814366423490538050270160281130439898302603983643639395925222255492099047714871695719013179894593139817594615333806994287462394624853621703299778438254618111206813453711806307170346454000898590132274696434857185350644312024171155631134309967248577288664773154933142552036001934875403627219886708742181651681706062088704404516486651123993428926214178136477619795486278353611559445174500837354872204503850585911164228672445316116189574690348418708537407098247437071444818470896539237069253285919143217683874649809674244774895983859200561668071996226893038146172563377650203971321306252778499768311556656352176429987417020762524834013771617630715582463676917457058532254101397804897030773191622298197689756100711366475283821486256929192870578126153643142365071924521133199525613446447945618589109727716431358955345945839961152955191204634108692595195176431855511502703995021102986969423831366825246446494774759920191782671731106098819082578974476398434097862164967108594586702023279373915033304133004453363488414260434490513517128369116273556007885967185822009060259254049568916541910925413746415445773043091677569314360640245497449841681302535498823595866177590421466053780365973497616799845242917089448774416277321166361826745944986169330401998574171599185787521734903182406009995948028891019105284151754145926033299817981074790751303199143764179417459596595602736477835722347133481599885745152331031595624438328855510285729168641216103688396825113479633372613910084537886229334909117057101802972892179052494341521344372536239721489266297440977089375704766139236956761175555846737267865438528228502780598590125425010690748121812914913463013248957235981022385931706310371914072476697795844972825108411186738538771075757516378646701292349285243966122126565953197830601571508116000658678996403679463882539667134210923707920293532253125921712510494485715503547874108487256133384371152001771695663919867502222398392399800684087095681875011221088186649276056610906206978128639282262695235650067954959989004824403616626263236716500818854986594011670787267247123208209509415526085137247359918935647267355808503611839614188233848305219164294786394498416310959941410267298347435535479335147994716511059602787643671334717846433788393399591028789458760862353748110172174104011687265212856859333334129083229645466504638014442281497480277342735558816348051352667280595320385966986824237174487810359432586544338928612729931704499824133166056235650146130977938896923778383279312705358404236485849099144491396282855332471079109077338196548733893213262752717784646583244964968109404729531465638809173073653469732190973721568183603713986182651722115141733823151346122088090920097568372099419749017801061422434737152656942762781568119964046775665599300294696212805570104209417199784324268395536637819179940760805546029601053447764427005834548895994690436733646361309440452376312088912794016351088557892733096481621094141092705157640481908728094056415194588590813647565265812668555289847652646594979214384196331263575703601376533141810351524639240832579155490349423851789734233269734432831851645464890642026155946913395225355004823139924981972871878758023550462468424917963468670115441664819302190433866267911934348248840070362170775159734747936481938884251720072775579177087218992907744348078104406203935490898030652932161004569245061254662694572856493778243479632284818662789882755847731698418088833878926319747990633709186648244348760362480441119548698136851255540571843346845977859627390167696120720174778874931435327556461040323144297348696600065766069143682587300424017526848445722547933937142622060751387969001522547485702151089896112665691147685730798046377244938806478625409896375721583292190303201097254282800053778699781236195793701730119828807348526317761727395578408747255675853496750421299461704297027925669227695206599412977678892810146701773323795720325449560364715217047339380802465583298510764752829626790971668313938570152088277725028071332705269962870832884962829505284732596797779159665358185567680450747365680766015887520755301784010264633369101004308062645644509470874636750121737774849022305207119370606929706755365753634993816759970983268427615574424342142952613544926436146458044111356181667258473504453453332942939765284952415655517484392612713382907298293657345659095987377024956830779697835020445595924316618091266914382593147737054192578546116408056473881467556146116804722803551437761152737871911665377767651480745016745126294881094286254946241356468969068117842731936083490573964732058679527431111264291771717138346529177773289155874955756749163453443679595507432796998608219473790032339656810853633651307952618196794566655080961821302856856622215176847848653861368917152478490372723861980949588001636372961785831762145972430514784229118053481643378305414005009078701124039408792041915677113799206274525254840588984647456970307068876445051251892266061220715408838195159193800418478731183045729596843386517221360356216611956525433127068741558993418681112177640810046687087409565680803424582295010792820255827165306568813873833988412887912084748995291570331022207929933433353720177459115905971511289321709624099519930874801890476422362530324039665576413544286889507343782856334191425390708172732985956923665742611662843309716490200074897427814029270338654592322601262848589109955253206843651389127288748657565220541181708414691893707786766826362606857801715038132980997623914624780506365877958527014493233493403924015634706897784069029644817098673868231697936283166569841830119180380016153878736723913039534268655072300880716862419216813567601896758122856299476686801333754838867698433854169186853989400480566202701308461810220401073517707599691237547240427678258590272080458278454453020331055524187801937414558487745610134203958163270934041634297231208376412387255085959792405908818699059479923989969457988699616709297946347165598306852236546686003437308722749121728437037227936666962386974013998989603532233006261817573665908669748902756746587433377359717795827942748855926301801660246737598350315053697585925001060593556944596093930046787130856110260674657344047739018339402949373462149358427953529806138141492321428955862440922468194926288742285995612692492133800918855268129085742602441076492446484493786490427239977722978212518270266881458363270746670617498739454187311935962190488950917893292459016871311718311260416520704537288036905415048150297190413971726491737682339245048767472714035824154454580058246402094641756750218972513981330033976610865746895096274767937378898961976897855494248257997771761931595765119175711467579763774531252083820711686688783874126825283510294007679840488221240603801900670532286774428614656021599813672012858596739525850670229406841471628026385103957573065381720400897760918484597437195511316379209252340744857373923865308230456184839248031767223075621503612084037635405471028260071033116858685760509656175947688862055755651239425389959779363617216668173969168679448626881273284093919852702664840127630614864041554055555821396808351275921930209523531239808298908219967625549505028384705717445043894555703909596382046912328445235766413643898077138804465545796702018134753724059910713243428764245735928358023775704585656180616215598622533551607422195623037298620861912367320146156212832008206447015693340102053980984313312026735523560021189404684380910508935192655728686906952650235177028536718232902729657024990363979709674849798775908995896048408672625279226214114252171578751945725306460486201324638214080036277911675885232236272133512667421859943648243349422010739881677982686385360828060733151200625443963469355427355195665555045499727851274732061425352691530865919616467613642369007261826936990160069880746817092103937045671478189171912317210107474728981346221559991484919711085000199330675542789446065260562491346704319376252436960665070976698328362826081377353658019360067185162519758633075431143998588670639452757900992880249121746354255459958838497576300420940047689448643810984039834900164566118718478027406011134275413384503456952905004810652661817137519877677948614729676217055962287773622114709775178039870429922968794815191821900750712362629091153916156043788287513387119430502910248076887360955454494993655010791403562672661711912636382405334391341031947882089781187255690227921864575875020011841856719988517105872612133957561086416216457019647245314220165464731103718378175279828008159884141990937593735790247682395747688541063774239414569471680686831384318620344211033628858737281667540750835290661651544663692670659424679308731254408282493615776819824708865690814908981323565027389929738723216681014211765968008399754478038251245131491652706877204273098685943506675014749811845278410446217275029617150969965307110801156702161304249913160291601366618734907935654743914428390792972800053782594965613745238259118947958206429974373081684479793306286563159875135918644148022679540698326727158712716740167667696049930009523750945488835104453115171929441020207348637825660749624246882816217748563991535518849245519282842827248476605226495951504425797514034550288600271661935556282246782065058542138874663090583037041846520660590940500644924352578764796698518414983482123929534401532099758740910982252453372831245063954395250136536552989722665727261730376261204769456601048373238555076714343133616051095589724357416978512117360477009519824746720774984129045250551292965256806025215873310902270914630310581834679714636228970653817912606094627390654470792889693049603687631007949494142775693003725657645025597082382372638366635896664447504007722218978337297803466552344093451684446673651360050080971846491387696390712452876993864137730764504305187932665757117180286939005240420145747270418508950530238546307075136403848870149191694650688865918434948213588749200482247673750027159844012026604451529435685131404107388531722730643022859877338040370207942420731038417762469244754567340834948562676702298431656782278013929181980339748229338471879040710198189268982634927470120636207747493557951129715773158239529923952639337354662364800284094707393697650249677244546378900342280966927860648211988957466940329894974300572147662778174687432451819198235627258593870122295252470624823502969506836942489797953445263481713902043395291136020965145832963644835908915530621774925171336485823315571936699329544762513678881994692752062833630836325754189768884013885904730679356015001513688446130304836383776720265763580315850807375132044932013172342775365969327842037590689278518631859458162446959691146080170106009444956187301160644017925522927367190503971361811048746795310756701777896914021310158958312201893810708238895831025722529936623960690440195196567785175579288324917593837093340643405177494913769963337324902465230026949823433113464657755795453027794150506349990238490228761172119864027673503504856497434718919062461058000133076274484414533843719088881331590727916814727254649339891598393439171178255659057398237328110075239177095223873988625228599768256186405930188231163187427443164288494303522331837574722364951174438480045869548959370566922714872162523427398094909784533478407573391782666312769790777383768640409049202036491070098536472679489908671761026733910938805024226852739965241379506387106305226118998796611174061574020241823613126116639746531861519581359680277810765214471671378857186642284945051417647264193621726704675229425389326199227611976960246587855373221825416882592991768323195451051567678625440970768070367599738400907841923263829497818139530552997270501647249298859471215997499133501319440329808595549776605869068031243429761385735202577169302443754634667702663325971826545759116779801802419258470373954093337251448319402730658838223370635586503347568815985167166115104689103170066278396121715661463605011169720155598340495276574536842384042349537520026831066685685206898765685813555604697599309721751027248170718274220878389018459577480629508760733229564953385129254694403218011471304371583838602409110920982115366335800780132053243371401797046459906631178805102531893555989445229706149848442989966995400379592728777318071378785333015405660979697078700686908202971106432769875999783653487296850886811920722934498819994745509451477063245642255778890411875856580156616139194859266422362263126166628025333636013650159813384719471295442528123851344486540056403873070834466060341627812526927465976069429976271002711238745280518254721526247340196002551293443945170326217131570775886479539270706251063091650562800449551365982327200767731082037020715866128620820910301665404574295125995476077714976587148126528874792999308559473574368912082042828024862168912421435251323342102229851285377060782038753403776236892961978114427487749438321210073530961003781149153119810026727979347474718803825930239962195754865604883962741136096477668482316367744620049549793611232485966402702204304586709503296573244615987484679284355702279689209722394654244705066771595268784380705348085594176601583398230624303185661070932794683683818243558150751713714140470074019149585661428151430865138769978534120088854157830802419460937580749363970983567963831305767150513433328412965599273465745565094688590923222578936941513482109901346562672334032937461779317297000402818743118102186564188128303658353674092593481802148208809043879772492397392786394811569414258000796490832733375534910531615020297273355886942574718298988137055072208550080524041073298462711374177755371673488245996620319989676696263560698634578268816235225703947724247085073881734157668572992712490157378341452135134369727563862136441836703875841303423763402561213870390573115609129665787681918238740202046622828105090110750135606992074584663147307334117791757841401016546729164675473928431473308537277779062180888808178474087354595179109907886317728441490708725737813114011277953910547543183674658384431611851188617539501740166941196336678682566615335431334063616928873006341345454998428428688939536413414685195309919540726299610094709704238044190070988364130254518454811752790496173659052528915596211131896971338172106640434559400547462247706653299974774365242480507052805066395579335575131758929351122440986368727013015738582288657458002929935701410851028371029437536033845862986652370061123274087201040013075818682132647841111781335274823610835508365695559624653727808004346637058695112551943160225414801569542448754661975097007898755238557099613656122622023023511507936748365430134602056863062796967326349745887669629525840689259381815633464871157577397387715538166258295113641686456503320642502939052073655961207180247273939414380035696642130526884666207170615726489328093605767519181233348081925215561653601348945777092505587783469620757785364805609323269525355321378982478616364980939880328821870475280693085972798790879286607064205544894633961543171632633142651060846410830734162427462704726275185693707558213104076854241960940116264917385131514357853867915188963861300944789556111753789244230373303902722844592285557616633656593258490393443758094780914071001285716040378858668638900789639647208861531777074639284182616879552853223969063419001090667123015729741526261312584251629723167731895112277780674781294568835218587712672836933510931469472608233278624498397661370863874755683202739376032741289301304692061877753935544135054422192899207395690397987940961901958658145336263407234608221708820450185346544235527412263013699907708917315588040466786830146660331147839330443677859421498006299690696190904602457487140061242162483237451795184165780908654238675169579042850724714051191283694285372225570748018956339650039993591490552275225668371882604800066353592038153372537608839348287224959237697285159776123491792473840893554152457967953317792564001358544310139444330023596231875313267741106870172054782684263335436214872262027033015606236119222130157825492971537127374562026174679384997505971207063669030655613964104491663380865276191431276695456872804074615636396372036401105520845905679249743742377129220757977664239597893783898997601623009124843612323362180974654192481278708427039033407033443673973268979262764505434577679489386819167161182501798086573803403795620537446455340977891578102238234775012030289620644979043471371805719673033920659454560935153779932017519445385517568245703531024651227911713142703331594432086780245222720097965811047694328651956838259855179621177602824422721300546910210145957817961402323988849314425839840580742835187737544496326820895870275915676401169877099602003770156744867437936348743613257137547995443577318362684288516748729871917530608415228338783577587585460201919867239855940126812214194229026832440306496003206345175744134538213310972117195943734431749853362045899743748839389298386557808939165043378361398267372681769049569466494326235620902811741169874537285631829877728891321813636247208889830757376247439672884198197681020723973811400217784510226318194518571782868807890246146518825340509466622774752355318199000113429325425560798231416380170241113330813789488753045550289365621789343666855156867289463414596046195364217517761580513608679708704733313827614898127276959450743551586785215209013670420009027527027673712164324594728115945610946073563577229642871582117337820991127860622082546015652750086088029572525522716615669794686151026236538176121384526967144361832843020719831008828978142971293620434978921906845963903391146117633049165449065880171721766621826872182440634461447208283781301367433937449086739253427995850248683295485927047900899535413184655000453455708763416723405226273543849073230133178628318087080073609442971403700332465345154232960502009022029520368185474122900569241906372544248862971458388934595451209099866772889086564680068433860821846664089843639063200286250333079889669741575966788842796888149200318008566630056540708694205530109074331257626766702804544109011572276128728896056881949338248640868831812560271557257067163626632419353022775790766291426952497495393574145337539481840057818131289526649792684022378937202600513269081617790628004708344019517232977841643712264420754733612771407785211007726843945771951561206414532649985212360478133973281404590691557254497971191763629756038216186441148989990912616406418457369247799707910773432152591688367772885100345821824866873381718330408701328225586707339933607409031152610501190741880714799606340505105202192304137992213008943064054355633876300608115774498960830883036200320381059500596544084957464786800535542406248545994374111192836603507219607217650753561537667814827132348083309500209824122033071723853861362184437161179719019833037879975605865883109949928810035599385393694688638504287936860189665845056836825438025356294047448517469332327346165896514942881666223842092680499068275171173697438572693963533495422740857583766021035795287572647364816296296749005211694678142312231758180097115837581070054817903635529811840764262917244365370185674435149254419725214086098576889084895653693230718920636164758231230317201724301796948695618916884912547709595283180389703281345803422177073010164194049395060517725716581278768138899946423734733366182013015575984477799804007318976866960239917650070209031471184412430928352340012612819348354480092589168149264083571848491991427450886275387297835276415080932938114667465777405656306430792329035822866530354754424814432122848815705752570437404018801050343026266810904225596703746126468129503505550358781386418269989273264307413401524228613679618966131739975048318876425534965622163900008772882540852177979264814015927474380480768573025316627659678267981694416289293884373398626497903693652971149052823847273309483450532366433276480141384408629714897778456279665492026324080250154061478955654363897097593094693025326405517920912963267988928826008425049486454927544707205435014373045773193753150211756452230202705938986657320973334119158421083131813362069605751804591279107871500712191875006325637936614813448170601897696006648661473407941371050459573411116287419939036901563933279730399312019198869744489567624956332152408308815383076991592828313094950819391088215524641438483109040809209377733693143465500513325304539685203939609699259624350457704363590809726091017868833640405129195333653302220097414554735587236110936484355346363957065413699455272726462100304262559146514929667651992996204351251238116059976873676507452428945545251682953191087876250036320873420605339280246096766534052469771619741845740723193379113606622263363299024010359443078104992811072270064943353741379380832208073210285793362954177805047009737232804592137098140879654136435112633295802448593989840027115716903569682901330178702732066687906457771966152068135356800145877589705167773842534897935407518948575716793219338941935146341302785447408550973249298362275070809826622808885514853068849358482443531486276419703792876962956237005978746561172832410978359005680976170471400735103428951397965672083671382498190985661085686287546007026390736105012649105327581543530456697973552001133400746057082029926701969357676941349762287308019504166780342354165734207686636570489867728564264522512127793908721282986578296010410671029412489186028149097009459522491938961507690647590531791702328605757753530374201742478040336373176498855306462795296710506086052667964125312149440837384243489056397397126145256488052527032567533170737755964739865639061567040125016867590937181590215834261038172042343845326251697956801853780484899302935942397634027761336002698681780835806777029005611015293036265151757209559963378007618585559974122000303011448890739301465973304927249182221125864414558181961824543919881937376629641837870550041206036269741617009820166787502408852985936953597160051967251804197104183386127052720329237979053623297210625059813362334228987966934994939448272341263586681386962802848560314960430341451348366314620308601900527758622852289331109011236674638117433816040423889679724463566683831001224436122105290889583637997922039199832151727663022987789201658297481274286529914094712083160584129393922494774545874770923534660060405947072902369141442458042555664730948435794603509184734839465938640976163619259310885962297200939794688856033431819243736106620056074456129815399797649277186216328255412873233287425704968104713587067311921482935549058737369124118703086393473687654634846332183796410122174632458788695831795499740781948893972555264550470407410249533922130623154107510528051496027064546729534999768923309740876075098939596956244867944232431790210576400121533790632339192636820613678913962891443269927228481612363396294954650729674463090347849054158720229741877729556487405793384421663608597302887256121059665558448088338058965088273742028859843062078121497011148191556564431311297912266347631684977492063507986612125495222729279557378048599559765038155649533099908991223846640873358999673615898744987029352711375157907417643963303031134194292903129705643232307455691770913047102083834218395347040643749351692787032061711929724528654042748107288303467273231957849754718813155346153672458148092536496902341187114550395016219206981833292049387434769652601723337015366514670576090184529421282683156379907816626878308744043647853853121539718719466295130447727385030707324142217831427668232295607682862169245478855812133246066218046466671583234172372422270544909345052683396379735894211829237630658669378587736944990532356710268225082361528491980105765307277477812373777632757772363399706115844245552751420716805424612224049902561392672456234550662812632891652016688328789633803459034125485704471748327736751655429548922347994385681775181999343160893518180913756763176826416983388569534719277530439855764525237901846508060552188444426183371668779856092122292910405877371611605814673965231240005161902850142000400482003760617254800706233429557888500184397586793996051054197141511399864931528913933759868150984769460169854788007687638059504044367752279590274548412351196446585370205998694417380917115021368632395714025312068070175668106251332244530292979894334783284946179052846059224580686930671946719911092456584936410824402567535419752915609283648126758884966877695808186316394190459073509990540935540119854670907202558342685644793030698662984153433949755554923458982571466916618732829024085879416175398275140159819456009465445642153217806303358442359628701849024996293902131769798733523063546688824596481753326374226065714780007974937991291534092454124366386750792936111032486724492242226956237168529153003589752677992629504774687011350929957060928617372925781821117172907639002359485932755703708433888161730681949232270957401143818520082267874201019496307816446410155227180094475819454572822374436046987061917652164049596730833695638251850710223487113436204109480667822156412304641790463634832343683479289279284248616805131724474532177711223350688532715136753438495420913924599487904211002130978580844993516355002710520312941346391290485936658157888702704675024714223694179174292494289661889499928731365689114541932054874305045875872151236302683823546115818480728921109965560607992805074425194328214173884853224640148206087028037545668688905963309510558902412046692877990115637416928268168317372008696006490564317669927939600214539453095951242478886766890052174180968371154614714283289878418486910083990985024401992549656985889567081889152237124030935668335613234638929373964685749517885274132956239900017675670637178626326877095689398247273381874134125898553349484681708671555005100901162216270664905479543635148286745655154868302391474012890783639986344332583194259919681230176222235189567771782292981859065623354351321396723731786436720972047253756668703241988711608192054418839274654298644342219296357036259119372617743087294935667712949596412675992671051678416538876558448091859015567595524726391891744083755947215797117011940367200761294184042088361814258261159680233174504201047494695448217918161828853316682591830711706662986373696379548944364044418766647802518397798733223416873784830464599042061811089697427045077772117323663066408248738031659569176800521661326437388949541269896023057671370575157429912124739031410687022207823765704256183125629239168727116494968755741686284312422670537472424660921455808013882705998239279145583958039594219164277832439735224363161230294084273776139721226841731266533037002792420646182606757040645655399115137662437736187120114102777314961305621733556568000634164401814975495347802884537324574843288576512782556745971128223963401802604160374595062642052894477833026057859363294739517592791824225296765311594144565247662310820125199221012960133041820515204238830054527077446369514791556114663485860617848389214628086350170766072430356449286892476056353754790746948522842722393000350616479785107497966503978541116848950195255721906820596667528809573120274918734145851889342560114463867451632335722482370439277984044151330566345064702958890608925710884530951651438155418545330269834339458932014887924358495197037124824968395478110294947295779046520614936387822018266848793314592079023728740762134338366582772709088254204086361153176981189888740983491632522261413269642611327594554534870412881064660448805982081218893270487615726731746197184449058926014397070250749431949130407698422834289469084844993722330056812000101668829601106402619206983208265275367716652100752634410007749143930708425586404336562721737463803182787510253384094871548635315387364830995689232097884937573891990543450226272376647362947391195584682289009382360434376640794883241078282334505451845816354289521522319635640415952709791094919098722659958990117285297061958941369239955436051106131897842237394020267407385937464937975192188005525024893063964824140423906027406396611214779192769129817598385090659769279141294474085335470150767273881933481538822534573406795814423560392776999813118381526650261965563121618187222631409460039117626490633902313403358544017548069817682771079551004570163192529185220221175241152922167627055461010477477793704105479408521238867443497933324835820949633453840046225157375755673674000743508373984623572239472267192875430720843517255041344606553397460265089229100280982512628196338981796615872963169644024606492677910454735601391257880482528361962142220966260854874774750593000196270163994471995607828674008614669440174744811794995837868823771443697044262955840905261918783998701629499212099792130174454546433717483859264900944986307494314764480791979642463279892825375283518661843109101807241720670834515692796995428507352990273877405925915685466193553481197253257238344046365075608623459189211721482042630436626484057271947158821201664137371370305582149498793386545949041781555946006610463484008059908480887616722614725346134184281907771076744475481042036583581965834885219713090179570414018992722344937817745777639721619670543816119000449020602461678845022524509443900403592293955754598413082856626917475837823496642721568225814118038492285017874012965792395037317188411734598243624639452246781136549021084024860875517126971427018038266923281095474484009020167916181218008285427508410530155353106502710998379633030592083966449068375834965273993606337142585709037603430450997437847012503385186570618337087591799208506299876111378449479362989994453859231288894726597052436920118823708119819681803522630567485323443053143899094201498902320951270200359328454482071030336722145174939367827988339138441897651508264392148872770197973282014573306324951894891931594699301482004698546916771687405071543281067483105766625791002932391207944365617276468492847079520119665593638264028893802829171299228546120839610855488809758822156074773120498342071675874894785969453311756451475378752113873961249996557511853925702303677610022729586283398677910443000156939293925073569669625976355327436215136616110659728361907585629667225215149486617149627691991890522181390986660447110044201784387781537698374686484989425872567428470127356627582043051131843173832466376943437166013429075065678044468259787661853001191182136616463246045420757753798109507576108252383568693257931030584337121495667020371980995917692870884232012989376841899154309279378573590453433710112710179667393866819718683583168632086666360426890061012107368743524733384061361946644283794731830037230751729967532541309544010865011201390142397581163135634797718099974285229337056106384462457969409227201505510006285995267332202886930561387477263508436493482150400218883441853538836595689305477855014433566989329823526427748063020181252827166947209941768245457352458292341113096900362838911501782233184354320387736378120469709117233777415673682281390072460751854960583793882101665724753866213056084034182406532399447239636392815702122952574238927620840821904306525568056762434554076978836258715510086850019826648401509393913537245806666514503235115093717013187975418868292184598301024343053633448261274435520036078126423160942463301651474694629906110680777286495544632223504857796682255651471687599171334544008686103638995163248547417095357535412579806572520217018479753007565680134055416526781375935461773428685807949183596622630890671190433433856222304772455471034858103991009383473696158904989559679191779883633235757437649608595084354987845441657487665700694185796269633244922394311348451762579021704542154408319708077442185005818285743579644745653812986317191155049416074447010802196311602366699605932297326977167053443798700541550952632687336140958580030966465980736676988112816114707512484544755542461902928100407216479872730939140603604990212450603480252630486233320611710163703091246882227304715174851791386373454736001653661786545646199691838047069332605945044763710056126844270748218554804539151968061913745484270719436698433134820679977871137245628646401196293481660094380745244895002992077608291137995234674384397416450920714458195484637756300372560114653175370819323995125285912584914062311241697346941849438579648215996747577382838633867738177082452777148432440612807288150777464863682732307322924412138568555212456005722073011082103703330460443937482587938317913988731485140890088435320421405834992048888402465090960863233053150952308038299289039244538475148361926547156157272066229578051085670605193567855309870592893776446206498456324643700757705593913475315246296383293915321055215433512231039836040025412856378523523389286998342364113324788813106898640980894393672564077162806444456159351891667807956492355919607688539337265435169491451907914246701998617206046601330084757561368087627861657018059033763163013061696293138226223685646221748756715188839960307872828923127990002046576368129411256766595393097045802468413151433026563264065896253060920979262223414498519337433852481352503032975612981045842805976462730349951087774304982509692601005510106588418821928459922094730872728374807669093017262869647725415102079289343029575774065241010041538187095357317579661749167556927512378459004489527599693817527767648642448990569016927478552115024673947983463784302644960193234988764079804135246926345560411571728706592470202099965295775811021397568745907849862171185419505963282927487757820833583634505070993341381380512314173349570158473120531218231813271831440372344668013967411408242326506478253977623699475671859961284063684470327863149174232702911209855710906348834866986072974231120188671756061833151186749986818884248037602836254430906883019964035986011044532715933545746781470364578926531283661470388471497523529743124161598619642899880328691957277677504300491310810746732160240183692083142121481310311243236976877634647306568960861238214352270287057513496269742574598287627519450538317917178580994124171647847417099857362231878892136870225046638977644201335854224738397359253796562708767055105813771219103269359193520489322047231342552783294705873208502182890059886691801397222385642618561279320393312190866276714278645583297103696247106389876222296845608454762465281362754876175459853395767128814188293601455940371223701267101190718944716108889405778018100354489124004475310325391314219433277129067285856133496995852612835513314667911232495439935135562721260035876887119542691681086014297910083316505035250609338911797058453857043769994928586729632658789243719829833331873653356312938134074982148241627396319715313355372885182275277704599231925422648762074713012542833034712946983075758525752258036338016172120294535344483974074895959428998274637915599800723061668845079921377829807704979864167971099351965530715167474275482208504133191445890277304967818698657249258069530450056585494243700437496931062445437230918825347090917765375956596790216486964254672501931558528514274406251191650475111210511165608888960225832436234458063251004177609939928950368762790693659200493614207640615797262652874282267360902284802723365514001830658133798281446109913261609294752523322683170805206246565334344963096161346093776968183317203876728108659672813200823500876439556845361241713518959783898450317472817831410637789863006980928227915923060867922670014253565085428054140095441215442520726211743619915378565160304847727807889416741851718756138133740114671927854039295057739231412266818484753552009473607304248750961831790227752029892749952054365682195793194762289795481283417814473376178385922368239188100913651709595347603972092339145447958996108724864949419354236271526788920445975074740288820420962399462744854419070191481119117356877336525268932218125987781194883078126607083941221104371626053088989547837924044651453803152665134130836807038271991244372100003429327033154542971740928175948884453895444539428417428197140210001688575136685551862096223614467318074978863849616262493782205507758380201802477711044359226837001049588592157280927420369462907540602145347553374320597899423991415103229193273944978641087285059014413207270210846040723787858269763618558203718995776864663413055232639944069764218084419232932293009750418937588447850108015782380046942142404138598806454443600662072022448666556402189393932224788525130367285378978004946985350879863521191300158951711280329777670687800378225430070414215551623142935686022076233884495744695359405514266345723406203446283926578969605286218780534135964177433152165898091212699066847611612733505572744262769719207356939076005639791655530910316138768289608375265547419856083254181282158114987071487819898636966457616219967288467825946046013567713715072115142173328457997084047341065046240890135459879534049505837068030495801832404777072775511300009287973524834767905573207176362645065316395122327179026641988255464830084617317624504634117672330408530179982743507253310727699081064563720255053786245693147556453867293769146032376528787861973886218529652839402769303650954824385802928742042715333159042766788099366180278350607063416266934313032214058572903308987653183249079938844512820738614503726560350219713960420577413004850014519175958658514183388115121148527116486025161840701525623036056249340533627869645584832802734802750003047733616975446268430860179350014497819818973107070728192024120879767241851512880188265947744385700143769273642334340170311666906300156491747382354078734508904853347486383910457108588481345392597913787531456269335839191928314536999938466742722400853013381854670353274638860016690040027249977304652404513251565634636211839668228338813661893255171907389670145600817825912328748486257416127033978465146735166918862033656287293334265433006480046210928852539353604242542482651652724120003811896247867764847079049265890125339959324807655776594601215502591725886678328516116619008784915790804444592712231362946846821308648937134106796773872880086182375728873285069653364419045033168759554817415512508094457004979496196482445253951869441655275573436479985796613236682534848997121255622627730346409051825965658981547508907753320542106520787483453657343764666649152251403284625827176871879202657992369497298028019542474404918356393075762916332165129818858805582682944001149800028791363804768809095257499938474714172515310024382482449314939937640555660968743196846354309365120867861126226955573879158726801120757263753374921648561817270697402085542234065518857868328726258230381790715370431491656861320747119619518047053127690590909353730831330381957024170527247544398545609507042757243496962386952240453637318280685594494737892058188109287277087062522111811200187151625621399508934924741491909002934049230578249904828365189343775836290838591771245268524693642809949591531091211584979012049880306296089917421677106197164736358367031140120606993329951516166379255092341015613311907292616764540962724860126653354295805228057538296435083878897339263226977457525841191677302511816440020911941194736311216731460992646091639155812541779514092637090818862899451259147547097267243553405056647172025994530331996260827935603287082465433011352838652683336276912567047744589697868512538192419918708065568730933362522320381549023907825095360004287067114955602854066535821698709860033227510406792935355241915544312773835806930030196663079554593451247714402425200737322993672464945746609337493886006381771197979959422533979350743798327225312162302961813715924608668639336479027647146543461301235878963749849253997268283958230817742558253290831082668027536157133165604151615604973170819300690719286840390956099311959945880508791113330020345118168270575984195503704487049932988040551105449166295648332303387166430378077845749246804447272808436299785996353258242559156329047317169206133975591080100594975607023611797358385920619188896887930361079650481502042465509280845155096125318487058052271324305539923731374749175687028517578279977741743579959590841233106637334749800786606915433045529598858779226163808180670337162952024631448871496693948140427158657744716841867634440527381263119627008684078991112834440958620086444571474168784851408098049535780589699922948308487017936933539703369858718405234807477932151748475086149025422177527986022339668140563049501174308652326046660922895652151857517506238929741145266168048231440820096714821925691042349123247197515010397052002428045778174847251970011549070978284678874380637820858777213896176742181576474792907045518603258419615100292447880808091518844404931385420046674757415189825177689023752269496111266080757294129857735033234168959129143371327507095423566620114655441613119671238433824957699495125078213757260011917019385373225919045952312013312063897836184533596498292471414301905461986875436824512054033038098817026067272033266522977408924620077707484728352461767144886476919776021923680471772930313688584535533949229352100569983332916260563403572051692063245227548268306207945832500305846218285052569814296415125738403819241572669776642044474407524341475933970922981235597255682824801290168577775528896258908794282484104413900186515273347135532191696428064735181806778988786574816057346595255907021905808086427134472618559279741738658849561387822852369285951263644320315179694039486631493640289422212739720408520390219130008746556393907703700045021203556076775507655843311653865616312803740289760953260406042122564174847709962548394489162835621635138310462684926791502272091033469818530388589491583575164615699929348143157025016510098007364184402520644312309766182455899743715114396782688089732435656354235596069184597720302086552416091823695217256958130918972806844554960750052366289500980204380389761888715942936606533077844207037313179620827549065471381903421560039087121742605693984505035253399276920447985805062265208072920041012585055304518736837505475751480388518903739329427469756118838678257872376160282787453932459151692923896072065843825355690156799788913502614688274172230236637575473428086641655279835238954849775612509775500791156898013773334215147769351109858989475987565094463665678917125705420469812820217748855792126401247481114887268288234457382170315981258839178555304315070634669242996383917879537371226212811172316185507564120433981247310939450452557241121647202141203290861303248855260180931372504944799621243600315532047733804835066308799967601424322254917584502194010958433142124562867159392680406809544498749806790859407594742954670522352720649449121539992967156439330526430355603056376123135856478025282940830374995993212888602370425586560564932766412250142755322067783641510352646775190586165854490930642466695586952704796361468141924707177385260752570290675734471348135666241653615753471555745560804198073939208544673890704073859321675763654985342495106506954604401731085277312508352911981734540260460254617622570826731555370852767258392914754940407962780628990327663863946570637544772336260604528368595642578738807936269505336797246794531750365875155487807670396862196416714799210892712141877272682162678453154605763892069104651347359804038164741753665284860898638821872484194593124199472912170453590404826927900975507705896839403228241162274225907645130003783467638675990325585463281352134158568809455376552881785366527410648338997363401163291686255820680004756192294378915445893848573049333779809681442261826578229188906854562460912642792513095048140885432311461052129527216910076341115793355323582610373166796598337662924150331375066158959048994325900606865932989175898734275980216346710915434100851830660829326666335398772317299506917162305944948738312583350515213321620013410900512883801505749666876728780593856566327288914622400326737865860648799131802059195811985145127166415535840247619816849864209361397655432723922773020064971200318042714557887204205880786984004560469705009201104167498850789885255655970430086351926912133889006959323940681335621817378265130426064630640072272093202849201861522342905109408479643484032231040818324571024498788648885022877672551988873074683261499671498891539590927178397300160949618713317962338067556642127668876225633579645965949679053803815121173671546376743571189969924435011800382836727957080673981891251362220771612377545810184300377365842328269114140068988143513837040481141902698960075895489786138346113788710812697329232560053919317972523201794668451474364397946815516811217626733633165326285352557261506513575753235401337229897807841968124588500413945915857814674364625816046210179820529927155398969056935039313594615501292238845257003188078014940143799253966658305802862841935053379698332796435213212048805067373536131724709032145174494862824008199839029622688814881846229585323907636298104791520696281003674240222526372712987355946799183391771684713805668351463784291312070472621117020528591075303772120308879429229879612552015993756833130255543240965293657317529985553503705074048729684148222802864886616554793345627170320199312656778955957183412080533046172473266947960765264900290173555317299269237262523054906703321755605375086110030578458057267412645696575233083328923687230675633451336429110763646422446468387302875641401054238277412586964198740847141984899635959221381303294625468175085995854863079999060896591495465216177585187056712451434883946661082437263696407163255932487685457894424157293769840611364823581288104646614869752364506818766141952756955047302454474809190837171781422838087974218650680813257013565961093094203145635208633282819629947269803032799482658775592097116846608554204416564139887904346260366707344463154639932701244162880957695625482655313092202925108011252056455711662430127758224482145955373616156505104023923590676144418189299168398979571542584326620274232167484103465862032933664376428077994592905481804036679990916782265802574035164458468110902029590378759009843898224432822171708312431499557883987050487346298066428813214650521024341744176889050887961352461423077457601856202064798297447295177819352040296130617230638005200513683752340130863086408535969714326538919503745390889071118522160361653425109841721051874015089621725226618347821652986785173885785691728571171099073910219595122244526082253187905635240282562563711706641620499957042527551980374321906493911172964443293998122624786679906898391994297288144549469579915353913200005692225532610637588253923793123006737304352640801398447100801921325815183793808279382091236696961546709917447684259706510188513358117463189376036986389116095102634863358711988485715082517526554860456359908751389109002896344461155568454153377713609891283306857647358151081193401156570293983605767645556082099641636887029909892676396252588936431079681259652670206975966265591916165620663522778338559584381343423305709486092129078432783744453929707635988749470966575924902182557435091110512424940018968297205645482112595957226323602782456819269531173724557390659098797502111442300034532401155586787598515542649732150305321583309044849500878864452857636014235889337276609592933531059102571996052945976392829982326290228035531119809612626495778911477281723388641455756610205564823183930681595072158502651436614689198969081499647912184125451759772788435806255264841058674997267810608527156356296926022997048109276383752595059949786064518822739861609927532402094111703841254425901458994483059153490684704669316551240233389971574394201020634640326841054147842122480229571532985812299958292754535597866044824831997975971025221728815893713590108095227031164294929218652370746316967239676284480978496682273799826331485954305138437390508827202981256369789495809500648742751983660512125310647569105546528159783688221443125734495825056518928574027775229439674548194123023783661025120038914524466960958961969718914566082793909370832743114467457649484366283824123254984030242663306032793035889610902292631113994110292672305288719333781891234747762794716615719882558955890452888586534329195292538224291481167830631005911251826629976389791084522773354689426653907874317076776717072518338133398656462067664432629208659073013024468570686013998808769086956393715067268758784618475754247315581936178900343036855230501593712220751530062142876678352384215715464543059682719700054503811598446274142751528073522040515688065075897603455173184345922183262320286167587782535918489133573431739728171218188778213105337007115458329245204653559727448274345823443680723922618888282287153201955730364610897925865450584175979924026869190596746431182921964841714327661693277117863054326012793312610292528009874793684134610337043524716272662693805977180927368594800420595170808038427985606263048929570600564546783383690788716203356405030291143122656121909857547468970244556539992912895936967249065409163173659915517520144382274662488201657542369515418716948201814158595422913232035449321324740327816697873786364194484976637481563176624240932723972959354991073644541216434970293585032195769333163475952109464846365228404988154200798410338951973662328949068418544767344598295220338459989342891519988429618367785091061244080481108938449429387118557505886396826671702922958253253651510291682532877092322427527257447329549351911527321386877004376940369993098608061227327900736680722722206944498220126804661951076653332916763294832962686932547771785163073089244465591214564004869993389590472033819260377691490955348402221916476198591846188432216190644933920724744320161578498856431504969221225048820723426801227016205352349011109743330422923768829548195111106765343984209324704572301839608440627032168966490561331383658443601501515109437717404779682534594645338012902494257809196451463756724347553893539129017323386979473984046641230363520991446006360781890242458135661328405153740344380735369052534123792648970262710965899192407189951752123745386341236559874764610380208693381995511737286378097545485234561175722091533988790849696006885277011431359770962391760240101572735126897318272179379725033037614433047178839119693699971103706386195927638182821108480061197997935886223511973129335529588566374009935521710462863158787125828649701966197056346973657827991098136095593402574688422051775595284511168484877435790883708132118380208393594890797486275439719836200647274864909485253098355665018567809755527913287219356118125242218555562961241388845607814726655080535836062521947833500162014956508625176551941167411311293252963686123798301730788529084578116342267734405449270735103933814144681179597141627759375826076024737449486159237098554099292988216856392891819890014004163019795819968958017824893949004914921598213804838877753847965984018748293512577134644268079410725386281088877406699280224555834096272822292383486327176348658722875459033290853606932049732841106720161282357196766815259534486679923627029100277159074533079775589163772094814001915457576814393342346588134229652012356556272805905086168829962867632882075284053915944785722021009543779904832077607516228750905853787227219548120060736822264531376694373384557361214196449516228333193702751046539929540267123845323153724975543928116514795395560527414395573929153565866360717268292318036462167729554543083182070007406292974710824923676902508742735718042617776402672674646174029735735720927678443877879636524421962741739446684531189629039375346715426964793886269154747444054870545152269789858129764257125637266315907969071272407540221043128875695504005525548672479218195250085628370332036826482486341542510828487693194526972985683390572274144818697909441111254647105081207712022184774058181611646695660063209221690628568270637673559302891409890510395832184610552290797473568786452651811495045381649082650828698331746338356965585178941882679137103610722796319764801507374558316427834241686606150559932412549159462967614118386103989027183600927520246078868024760684652763731518856386255704689364855185021085816289824400966310275810807446176257767962492728958728869089298261667650351590469473285201656211442953322174241357747333087783345317185831188035094464866360575687742750826252557126290016896429999827782765914832600379659615605678779620001563488180332695772314393223385916910707189813084127768725125266423982882588812076938183842407904871096012345754913473386387949467537319651354996418844887246239805067140394333590266586446174104931482448536899218881768726724054073652820842488564351648831780069626042083212464056417052890220982670119049051134885908105565857118238945943362278227685074921950914853839614712715381853560904560647067749980338853862566520755964210374003487142187397753539989056016102192663400367260624460434397544041239066092084463780393259150596137420455227294387505571243985077965737549684903157500631797288560709418308581428362261450001808240106900731837179458752604707849395641173916775752332473634710144215108791448393109293489144923164476339680422346754426847073181909960547566606731489593362167713703064111601650684069875926026360361842905853577818830405669856547195138678639725258724132584325311234110297288919588832273771343169128972416078915748558833441164790903827000770569657898665361817963751321886239975399933623558849101702493390938449277427280960234165249445327181052448795276814863882612070176297882694015840182144793430490271287968713294203689851351548941966375480181456158124924889369270121541015311135030967356962453816897368597748353928739564927878681962641195437487305627439083232264106289101282861459519647664497091437025827028065148566659415357025278867671735615260700688139661694041130952465597932517932194285545765160902699653467199830642710975315382140442822697694042184774469473358965096465079447091531842903515938660979540398037231958011374310134584932303616578963640243169095992353458163646528766572027941672382649716745953511245169857011325004102958748362050714998632166670449969153049780454407792013876669708871010867754444996936914643098669682504867627951846559331541984465486325062552231378822551250487467883676802458562443157563440394739175874794538084050732991752935981394692119445371960541469661162681885111386842416322062223546694296011732223120023350907483749691805258286069926673882781381444420880100648003928792705031499646442164016890928234229815449124664262052081081108703891559351488589201471794358736563462196834375447931621126475477284635626104184032077447522412384790734298524455365676992789182035421491015956282733893364146451962850080791768488926472792651051091682648383847650672774653239034706331589699953689879088055200047937534228512199830122103777208423584264147208384579744727527237209246620210462393650185947671165177076678065139496680210016394894008049387163910811012209580510918330047874007123639254475750217713161829416392570159204517295458201349652439041479673410801348968139202455504257137853598767679518875822668541462573629893425404482272565649491097471561954726060279097953187462929261185921626135657606498881210735541292558572228756872430573936471702101283940040391833296859012250322587221224773048297154185641821014621656450820146906761979152590243699654452865665953361692149491019620638420386925568076805348746054158255677268099976057847951821915310048716264819152439742405781087950787597202660264330073697083337414396660131431077342947559268491615906407999109118539488434889720901433465893519408485032341040442558267552763021033029805423915661302209669837379871048702852623421481828708536775491247869406531331384690200719461121457421775885040689661463377519624296631316690252519735477255485829071682435430569226910507714155171191708926550993541811618028188544707083283854388075938947786496322756143517571879683819688696501372410952191999070716488248917549079078584056034087854671114168626161364325179446835545116925030886109130044281793442922896371501789165003711016940800459262709185948447005655847633346765469928708998566330717482336854762994714098964927810173307977479346498345548069710151791837613255056692650696177721775813894142604906705814471462802561856863645363421140793592380772102451176420141086333861231494684019996878472730232851586024284104921896977212336162740745911694440819548443505184319436859470067713596999100065239552438734501798179133824620117960576093315466959823760526089345112496805464792607332187031009115768383301595186568360138265702914322420788594718363657039231742182882310743890172624353497152324184627023957875719630212975806511515094802629241414192760053794737841971486595298977492214293978983837278781150581399766022349498092940016967859544269245343618048194185489530023935304719241077435182021015369844103843114172750595991768630738552654872788487260454122494860184581931137355966360369305816573557480718642307989716672695392532979027722038718434443349519506737019281955611146195046775013706810750557893824467539895532386568484107027585251306143310165145353696766716440101785195580113972943568217582554296949980650294358450265824623621081315493313078572579045823578867735468036192563019739546009716595253281146524872864846090206367391590617151605955935854805217707647462948227127521042544778148037588343622906012958171287622094016978315394283410145748656001844091437378354159846056576097426471815251204302996383548839323257860545580091990131714206214937635920829018085850596954642246488151939463746420440527296496069831746146467817525883834231748600129398342178766864970504234590994707211617701236107463324973990969791084889510450341844088089190039562079430373477052355885122105795827140895656141904950118201291646556718522447865672371195626366116156770843888739030200819205077830678920038776481804257140685854411612795709789778557347272394586969469089851171344312804906942569412883655235572049589634013708373342517107403070751827067011339098730135753923656467675968957179979106978159122905907558315959729557718307777802302962042328010006940063562657077851022975639117974289305122344330232981959020616353499675064717776919530086941212037184053770589283793374697146519095450027561464366519934763497139142777182011915484332314807200837149810589843769955618740957771563166690981665389459676064897888017215074914837699749618725518288499081439306074153036587664852534596277547718226002341534330713286071476916506052907912689141281313092951609593620763589581736554331495399264035370385563130246192066756841377102848071050000533962206558641719963037968776203322341748486594884680620347820991029346750902697864970938517015659911906366395691665648622236574863690325464374067027421455347557605993220469777458027800339629126186734874639923972866068659775961503225533140293353755819655274728661386483891341808533541542976514978165878757580917855374418074541518366756307227382706087343157809559095065071621185059901567486772447461780557895154735058172212112201355574701593425508071415105468526627539182483816507811336526021823637652693245152028975663749691694265832395351923054114852560254775226107115951726088638142121884593853896461957009353374725337843613984436334606655898819101873663693902853308651828270121274994408827511799917321112092336436950646765649810187155207268864236715244366899072188172707858263576015953244397537580495102817847766388304641796411785515460552093687749692311097425153129726208345915836238004314195180685887090648880026708536667701476453949403044804753656400689957199450138808707381111709491928006447894661443665532811845767326086552862254584463452784140490081726169791571184152203526213591539616981826309416102225876117156463304158447526757008714573517236494178161450166306069208737762863563228062405082617393554356767816202975358529962849914996078628737862316160763873649656419862111651370232917248132456197245418834786350026594961782473914129272951862685495729932890665404780590753456478002610954115032032257735450173137567597768021941145136927059316330226159236691820592150849185087298494966942658985121946893236615442146556919864350631210155351793557266776482827290401659145778452035952042923565027721650683027630594343363446647618524729026870621891573992914229724982700043281374124704755682479160832824212363444225229707994267898964134988745892415448584495757491773065272051400465819902341100893037400563788377893901918726077006098191933698730642525341084134270189412229118787871849074880274212949504244607468129663378704309768602087564550695205150853606415248753504023253903656481261955685727170977977806046981946202564347196831870725633463516783188605984309438235215531830392821837533619702138010173748011826741817530732633459950364703711089662982331263123865341989288402966532379241093749894842022808268529938960235316810113599085319967483533839552998986588241577125144431879993840932584130143228567863503704493550059623805485874059003466388936563988571596236451313741206671869230569713340792239011869391051248731884176083768399738970445333128136519823862153365596101122767199944995209610154699365207817047102235775138237825014053155307952385094620547168174092403804537748634383398643946784300716359506316883696875817258713716485207063683922592762087396193766642340363076547240798276215347025932851842058843510868643345650633169115422431304733442114576694497521939211278777841446764004145377483186193839957102268896267869277539289991570918446114951454695682994841297338047843492205853994829134770698829207262126891958867696849149693953022345630491859662131880672955133768271345357863658651712020543656649054903045884118442799952711935194390760048366832667522156665044757596512279044830881799168095750151771157929969594516015690545512115346329104132041169427194503967288730210984268281245885165323198930347707462593821158573143264309797125626138714978177338918983308232086092201684870906472674705536480504482056788487964317672407389492113200626350597703173153213478088958659460390733560175833946078875053034790857303727121811679860946297911081658406355526781227386804129522417844116722120563882354143353638132149644297768995944643976330934982329667908321278960645745085287972503353715022194033557913074692950402605401120735057143303989292590659872935622331926849983395732055853219735834043769107958021027019976182289232938330226501597571791327523263581588770737627121428025169898279502843018997867851637052646455108081360031504665187220797368655682586988606239459448388774142085426774107953896600332832744904568409086790457127163558661249903734190642507944721897950382124195582495239902781771092592807610420781061375131824284682842212187535701707941148476801836367897365923790178407286310180994855397310254905465161149996965438750725472124907533881222350119849768463974004506093248332114066669106825585588047497285862363898278760932068837760136905679049518722420977027215359522724252044086341691752212884927918625631745999874654852933725582485627384804472717880975252921930901636568790301075597541276162844794949727312280646695759362293217906429863793486447650011297260256379689832540158919351882882055634999437804017408724032567681756437272160506033868708048627277375257144938334345542207444636414468081342003117148867538451623017002391178675465930417746738563577897956811938017457786312617080940138551059545310404828741339044813461532094294726816603686360987886719422776343846111163967230330593582973708687593343565885815819382137402905579584864681279988651080571646105410623081935731349235066370927338170041791296725105244641079627326437406894792607851322603437211191912189320425836261898605849435005570079082000160146919288023676557525379836382718500069800439174180803900739184877561650625490183316481443376370998028266217255336368779714288205264684429293137364812609174239499875412844725316113719809694710631568427133033745919905402592203904909752343170671782984799535555407172423622360574134707916765060629249648453295335639112116743346375044575064732226074070957667140081499934159628152582212681481770546256060045030174867354803561242722301833083317753934902022107289729072908837195907459451003779935895664484933472117002052548097339380467639491811697958317390179253041155309289215423764940773286475894133938484321737371379797645746918365366051715998383790782840746359311830494425738210385374277820561126704095634862757973452972673804428462777674016317328922775111572938365916340466743148902690845143026425187761955513445350133597980833966425484861295052759459711279038824662349526694357341732006821025934965926197759196197555119291002274200069791695257600422067454452834247701390522184871631916329182587947324561928380555145852520641786623664150086072555622333357250140101622293085067945609037867067765666794075193299028854498588411112982352223842212991180975715932990477700634982252132506340331705305797615719900640918086512528332123403388925631324209914446308911346696165640710886848995099787709052773755465240800641395069785741631732391134414096377239123200292400472236574996476703602782121124431172079898915534774642791805999968801877523623666359762194911043754250520778021897037113638405352198260158948127297956173648573858915667865611531555840052230120814320713723346235608136356301804686914783514920924137764870878803796033916755276730167629164837460634606352655805889766321077092087893803371447515944446347511811718134982514280678046555723425031575722287269621251246676919339494883385899123602974952461660817237783313484895863075551628815584976888034393124723402674942295241113517800733201776035981047153006110648491011938171935587162027961429826510261336287632163160772294817093441628608952902616601231607931377933826209419648318742792655982983738567662291546748425487119518459152101716401994477117391433836975176151147143059204938281647999569231377252705386699012924125812748722899384168424938550834182379468757194259886633799412245787161704532184415680867903370317155167948093719431579036723676128496091949446542413711703817061114512261588859532175016110508876160722641863767140786666232884618567963105104197672617248533740766125374173622220599982621541196102888734235679938395735253903417355638636554231584035984954549958312961789994564503740522570072252435433792954871823378662743185061829962483398633271032875382366572206801105565037000413924760697612225650280537372722009336740241306441912795492230543180746183692345722103178755856576483814123035536202777375779454143620513124521032834575040879424544229887604508416843841506740569719627245573766831610902214345554588261297379406536834173459609971750158509579242505565820600268811825094551005979657516551125213462540513374671022160149764793615884547896513413884056912536462075909291187160682390362000760292253830875234643401932737420293307531935941865696558582626783014762786752099144875369295430975643814957654053274827688682262943929788900598655057478667128757039436223691304872205069607584652929457026419120903405380365848172338670493074816615573010519068571023894084120575293645186772789472147458146485542775840659013271969064940928614664764403012457689776085237612587975453123337582105702064688485943921406516797829035961273027379467587534428265442853223043843687808366616145863021194777875926065700182072043271203518963651319053074878222872324173727563261577038436267971284707758306708033468205534855746343470884536408359740739157546078782891086575874176113697814802710771086948456573102698638517118026487762822647816762332829442231163394790023688744095791622977561099600808391137347397587696772937468506278730534734530473559072908818890372198213901089710571400825172860749243896068757822059494321470990511614633764756664994731947765621894249637051710718534198510030325883761292809638493651260805228345474943758643112104735081540899329445349963498222432869953587850568885329515158412860262987675715744775992273002112859234692444713467351361317780244992044213635290027314430070215447937349111223170888821603829463823099746342189476212139398000922255293216631269859517237321799313356545568108442706838993791507404257728136329740482728923819221502203060134793475662693137014975130335456738052486422642456056912911174722360436914049765188236664994786798921987511834926732711958641537554910274941150006592150294778226051592267205104372824060318034580463742299578371047851731153588463811379584569847912490147183400992592617650847564650473391754835075179470010319265482543017641808657035891180412361210275976021011337280334185097529469389403031780240129019040481027478381541359988594114390312141062400895642520034903546866157895321643670076270710491231492325644368123125593188916680071476749029845339688484746254713583238655170836844585440206734588055325501995751276855481046130775104249569374958205265506595534257407751590276092985651324139632913400966035251718563810173832143804604618699636772168549144977099569445382081933391629240080580999783692270041127916985045348023161028686168938992434622802253480104277540185688839644465008914993227923431470585080740624981108157919080491199942458845455378829869558667394971667584331828237740321591525847033756916181873225656289483168328872602904437247582229879855283373649828375169135229831945459321447205884331050408137270822308950239370365404387367747104825220025248982115419498871058780071418954601573196056055216726306157734923762814257363153324297707890141280399788505998154531137024015851955097622059961297305662403212150842282432182173955218614013982078993329320832994570950222401255855481576895582443229226538835439885738223893623433379276143945367089088972857692146418641629602978134849745496215529090711585434708055134975282654380792592591835517074123212463129867726995123392506201304228809126844048216927873384834117036227470315347473637956384866843337680672923765904256919464099572705542160823821362142754300161251362011770977263713685947799003314173818243435808719533293135730187436104850767393107289010863264019556491234691987059056808828879704201986125802749048421000607793669079386298603884539927192898427370304405183546481452355391468287239514657107761202898034913709454723878292721816219444967207354173047542979141389170773903444673440403726191897309981370233416198447870031744528082044950381813801678034636869531821609151087408657981788691323397793231684235701617833628126488548744319802037800080657169551725148172010994864993472940188130827083413678151698135436202930924799008869018439159881162571450331655463818863922673737725931882023517080194103423196790974044357779441310162318405178717590071761619197811666971367462247835812251975048756746536378363039328552130857415706840678578816241111825427496502445503733352737494814041496962779260061046775315632617498551332881739812060212272364307428939079479722789229857907737385941492339595158352400576438973753023717581758041682865271633253779726274867963602386322989484049564348067613141565066808747983669489479804572100682941542716926837059892301326483649769470093492278364101309114073161151711836341264891098830866483040414847811016778991412031386607374119266330097814466250491184946902538206791511204520391497741623143388652401812525153488283495994819459388302327617743522754521788511262913171470530327967078189165951596835927185261417248992128093559868403680057447251510511256464932406338255244172272443738127487399083446408288917689991740119106979850654984141897948524393562897797839036350040183844042119829941084482527974483707581034000062384143557962713401248204675607893999388079096727950153843323951884391158754571386666507054106573507313211409918285700682592207384976158619630281402902406425337900152182288018666121467076033011913885317660022812102636483656088679290564968675736002269089086100392220987602628532648952291037296672540096688015319452664470449513666357105503912673474418703046979406339727726617911355141462747781393962523808783093929830507250088546451930763083505406206970064141589574087270544196378199209036966612341288942519019124094893672869244568053738385331500851153933733470209948803933997070371432379529439318671904744391397462597999004917445537442290259352774118926677455729021216241142247794012347166571906440494924062520255912622144957506607152749869305195089464408948173336904389646689337969643488078956233954029901878048917745467451163699291190159404871592902506940793835259471547563989049426391352615553274827748423351344561457601423014818896137456237188441808382783978204941601879140222901669784625977445357132079929974230749661151337938499668171713307602096766832544295382744749860688806051880632956943389415159018631592220287339257914967802723887686339852994246986654964019197598953142088685041021283872966852570005152645336023513096782658623821095939177146050315285282479023533751561423184277670274072047439204326308524238983271741561329776266945263994600192467720936022459150713170866353401210042240285525403773529945188221213495104786631541941417982664731648789216734503048303122515273145684215383646474889309276960326690143823590512771261780757101569049292906582636158825284221532568253513433241006659431644929722242845241300139031797152778898706267974423143770517932824766618285158608490108341565927821167226187153771122057380666086394774805798977305688267019492109697307697367536720270562559339678545269495142309882148835820754242853108517017736109879913163272124262859248039919372367179076944971021113184595922529000561073301270887831372673985278114242490762133013959262125492962218003874781957070852073868720116037769431524413315393685913299209569418937956674630135615937241340305824517475647764545204874032237851966672704887721406715060976565665884089526100702565590851007899592551012444992579517289830660518263595460624912201551181282847484260658990073990824807722024047276770465385262849219224965262844641487996564395257908521703946549706152182797760742430883700579762142015433016836576541796388042173330524528176639642632903501303054039216450835132524048605477048521766564517419642208156553023118058342727755098006642272754754167025223757272909604173686687562015293651638512014716985406699537610735782665467800876473618238879487584923909727190222666981449471393533580371952468815400411377693573328953471588180975271199844079355164185912677276886197877100017884806367159345649008070037950018850870978223551894699470360798671773337306768590114064313018601897332441776195479390110440913579201724454865375920451136614390561968984096853878620420870843190527008550752895501720338564340819887219879343671453777327654652019634527858513478659524779149936577001834465647704337672836303860404273075280842184508267180125906203059771421357935988218718214525758487825262419408048102535875392343739878306368612900132148997498628573720089550742980161080130321357175405887497647635695468273053700207758202259791308292666718559471541175892432585278194772499983455779765373681093393311284741327363239759800154268712099968958754553701247000683428650761840393958121483979522562694686575270841300930333787976132316119822435888450821202674455984931891885676911100843886320144538744187530099746877906045925620708180510401435962228501112477694150023069002352001480320266266292809629568643435582974639806770052540319876789796671547527817435054739073811742525096199773560139953000563983111984501382808151065905665179416199838957748857341804694696540336788643844806295343236552104589774183879408959789134035886896060066330107418973737940707991135312152017506716865725722081613050772509124021217106583112920612623068452662146712143431798374555302798314957621691440933099096177414135451686695314790213913755390398010455566974852098819571884728921493827696498716257629071518009795080673515727601734821969520020198354036034023538052385737068618555748736215497995917445788795837247566776729991808380365170119591133261876020342488941519346600871931669301562612325105485918276641289727761623360132293052029769310491941451899040528831779761417351794547544389019330433048994851914703840771023051041016145816342265528332445582899620470116079502660948552396543217902646277993470892887787937034855971281775375961319982582283614518831544682479757067649194750612852531319094710798080391675421163175115254988660597223485316896060474164605669359914477909623606180534830994109256650908464334059823497985894136259146595765894007411784608202108573877492835207586194888944497298941166482751814276653510429863895174391119798494111213466112575795488938018333966879663351767860026622325507055526140085837670280278067467382647935696560699526365212854783643236252154459747332235539999856163888589643880157508176982994421891654845003429527685576963621452713056359631205887388109908429386061359021331270605209279987171553009759299717710052574571314509219304113683754851755547087923757687717714872665598445740355699829883608033718800920405077909293640862694074153952592794480463439999695586843958697231137321510548911943332262935967897538158577701408286796534310502830848791224729217743497385933410159372405355753737968773899978072371566092220422859139081827871092808799732055710086431668263735307547160789700032793748288297370388862357576199954943073134898014492219952823958974208189786291243490333251700681267645338978535246586092992521730576633153879519804531551758970248574381609296296237655578266169354998989997281949254898216898683512920062502837102026547213486518767249365143704651831601710423087423636349732569180657827588245609824737570454691420209149986141765298132485313695754083797880146767518581158732440530016332911760643892202748686554969556394660817721501858984636515356316974160454900347131374905853954756180039965668761248375217628011927320702113266685408066247853658719082287120358506859188801536761129291637701792353691551039107533185129373883423611951129403635721126358685669564989178639359777526223101580060857762507649460880103731849969303393231721328876681500127211913715198318521061854251579568330901266365003994803918115083188332208442056519628679536150006328820413087453818103182635491188753678682301891006313484115546550252963038307506963068168554325312941582742131023904480514007275413570839784046673997814203149845715415715273390140631862298638325053874592429273199514316503859887013669760883117695377987788120206419125217142492741619474246585586811318416345024367696594514324038852030371161622842778945931845199773226685102058215403949635810459310759317776586589922175922421687635268613254358942402464568446083207571399006762894882930755229774909539852349175633486862244279735925258612694577546687599346594486372037038014602093647060658038615284376364466420909815328316783513038713505592040427985201417807797707094816285077551491394550178689798651479837278665356436860960830973422979156091061030920100297257653120292083976088357679077840181156238405340973785141383694019509416166280213893656956482279469158776117184429719945775189716805322605977874112956115078013469818464739140457239717849732894533812605937298068382197215397004870334355954494362811624229025470822613484512145256283955341385619993086244673174481958704731559195380054468450524824945869372112129186412533778795217267068245486406561627914358954323919233561872569286018621645881827620552044175234681185867862089614469174013020174056706241148932322815540431716834128916982237115816584354898237033098240249845061015437916358303914742182192025469102877817525983977532768502208358052870608762414754041710936190912206685387979904822901471883016673899284275416120400776774211041532361730961766314015371209187886663290957266869673084321672797755708051910223860715306177750023488810603463415685328045587257036567001039662975843201654453784207279055244162058195317519301944122239454419008339294949161881931369218008130097638537104987877818631767226697674977365415983211953939190497429664139410183732938537009165246890059096793776613719485351198393608489943974119200825914102170396591245859388389731105570674572431060714031465014326860432612093538759574018518675335006038556923123867071370684951798979869156116096613576403820548712238260131530728911099707415689999314555021173799224050052126951707648036442951175973133008446471301780499494742160630226726170437955820548722724262204848087692045333254299829983357855964410087004402577033260351741117639107948658927805941878930192738200983104578938939672981005864381562738526739799495103530626524885000088261192523715128473058768408870663553912416862557756678580734574954943700683152619636811468683263396899097064628101292832878365637784490535478136223393540157421366791495974915669580564713480733299095519131650650635109598383986096824399280896469827456078671677718243463325257510758851196974849822871239210930456044986741987852100660590908478462743142828910819628959088257682349133039301681002291631472944413458116698436627543143789708794568452233095187373234158164226020677322843780928327185510567174325151725710428538976616110347092472743600123883941286339824434093032729612215507337631161868014834475801851953569655069138177594898635328159132564349497312190853632421531153826651254731095729097468409054332727892493923730892314712382488401985688896090559460445296951519454926046966746922225302041629240579352257106536159228658543451795533216001293905910438619748406976853588962700628880652207173924739452336532411794547711455111970108322709361056234738633900364774822390425043028458705319590798652771223904274886056456930240262994333673858045006523046678067089470990998238157377250110861291205099040877233005950868893508070714696188998059680088934623263605019318539430525302124749630842212569795069852987100416360274580935251718664419374931706650145495291421760037001742171772642833241538104390358485758900346250334946559634128569134685604660443138249369838838570620315141208735622870726403522930646590592520382944510849039802849410487248014704840301736291286196567220612983785118877038548903639004226956761520730625640648594435864280374665227712559802568614408916157903897928803943489994459592327115639416730910112497904022854087601730857952967270459457918264825581581849129534138519836949308227881097158186410121694975175083751785256055133454528624590296874494265737702641325520945595537180406745314804773911078255153457656145834076636285982664459175676944110037719845307822669336961475073244194070040372476887341913775433436071806319766596983346011692670241580557220511909589343983220566165377871153866121614754954312321085423473506448976729466297558517165575902783858801295693124473404267612130225026809890547696348306836669652521335111796444677276046925277087936557472521819807048322952818232994006906512776926433950327134365068010120583407984329635947291744029930980757797180955137780125921949151940207160950167893239564417164000623289464008138088814138302141285352236454901463331077444914461594926859810729766155404567979069501662653890354526962956347515237201863838147372013000034743811600960739222113339282233091020405695313070942599977430511589246749954633904295228219736087056734238886713815738865877711730081205254761162314479465394845514203093890394332802024196318679402876152329126964342641468597012456542696672059867470485375891340332478971301306311485894312564210745126288779825245224419814058601161140583023858538862466178866782937966818446072832182244386243738191613027825309634417200919456882382838158243578147330359214643186596311113461379358783864968098285108037769599107117459120983250149028770606041940399147843643758229927979007946578491010644876633698062718912673808275734709128911973777308718739039844144837832537317348238414695623768893812161889454388831038508863935599511342896337903971626714874890335813563531222543830301548036187785695336226420445196835715926316993378381561388418846539322442333595985456770792530359339780312207582441793528560370078380485748874339938149103672396480500378853037090607340911436075238212770882952685701538518568773694064018950682377558165824309268018924809330689652614622266797546390071927684911633070175829910135853308876659459959964163087143763197770501119959789797162273441745974378622005521848418848554216612979118608854156719811996841024142994515337856172122236764076088607634653729631408039218886342027829289889614334150669397207947849708181997183115123621435460745914875759713501280206732562954071635284251563348299447872225877201609321787224544024284282934830742158445887486611909775295704335129494256863859616714384638078048192733141282456704174181275053936296558401055855303042935998604852459356330959857452760274873758428254955434814056379408059126680456012949706166989442268937068299161626499950734601582827372075024830792302172683602849245449944849917815723227300231217429131439565457674684564787201866539359457739983209593583891734029428831255218900626019841621154994263818974193524513056691099952333799806196372635548112776185067237131273451741530985788553452120328117532935125425437198237625264593955157149268542137092860563706998037287672672086563977986211324175618879945689678064719317290750448976405759453983653522891104468377785082510225558968704532730814888367936484593565146875502033833257090661383153187472248707049488911898110445724628061510050185566119456466656719833074240813595270766415655463389753644581266971617556930214970946035060850938639613046600717295498773093749881851872700861885400752375011362182331404984094123684748780249621975828236278194282500577750108798244222588300092468115964746289363153589140375716965650079233665261990490493009943482120238565439109524842958272087413484397924765465338860093586027852049570595955198007117558208163760528339390006801117819988923457085303312504356998825250438041603036797311270221226077599152311179036262036467014354295433896589103725352570713907350106212978740430166001865252652439160255797971315463197352125429649397144719294476252244846366773944539038343026320205316765172517446773056339718217193288058850207400560971515079377753477472689263252585450889833101754908081069940323199871572299842679506159246766290923628162330173272333320344398460687902131777774512068546826783964451721526425133094889344152401971994862770171412056818752415262261645525837798160863250999267310020401222061981381289734723396010624747337312807606861911981926176858253697447043363366264371591283209679812254483547000623793280816695030296791671391118729572941897043740015831717317035152551490000424609059244763824363899941829750394462686714324652002612594153256222202676031745264843267680109641038442618300866501620767096993351197186336544069114600061430529720906461669966476755246835604924957689275452117287691211335299541533782991619733681496708604101455823984194963354230629790650189759853782386448140508975174734409754453160350680740674015160546193898123408823961958529102733211269301555689596377154795366835310636462203831958713291592583728170827549624822915687472792796800395300438568894762927725863136478951259487010107669572454433416665919440354924349740959656757217554335034686454075798689598436960116376474530460314167189073740593048345619128499196352121998045115499091853467669511204432571288327353278984606612695408476600042177014282576856687030016822357209500060044196026930287357051451118469088343502675575580547251552886220529510605329605187668901512034792116240517588076009150679679644678203891584015691084559275691705899898845282553142347559268392390199795941961559610092027376703557612786297018551851672452149185060104942774841244926486196919037441397090378114963058338782408001722839413858895709797662226558237904800013178884705686560340355503302413900510924660444688778632860241408034122815883373509934869152880249200905491176102446556090651029172213715663752244503423900759314820682890298512749852090444724226002446577583086756879241732467500496670364667612730249679200556458206879646204962700269340486573825223052567460140080190937346742076891928097057255748674366841842231008902244802257301283114429529132360865009787296309247623770259584246482938104843880611135155509578355843535696033206705236188696653886404979657809267151647658141203705588494025942030926634393028361047054376448105478517234115996665629378035943975761192424601809049001442595454097223754871641453105634216757004317597371165900297225602191639601402684041222859370683045533787608820796459850126764807434838453514139806078141449244763417006954020238009120747336622859807896070523391164640085460686301412619965272084609208327300322791340984049063777023676156211039118336616200796427082834902979438195403409241970564982588661968370169642969744515922978851672384014776884917362959916730803731871532011101982632970934979352422254685995853382623412465283309721147523563295419614148851134004192830647203298067146525417314145373598216093111768063916571365816021304921844845904025651260151428113539504539174118530582150875958797282203909246292388660001031437008353026438575574373725603976347311744422705958802943462125167972205920473802443006702436826186969708066938057009113361468286910325429386676179838158229582431406856411680632102348421522478594813528586041953911355208964234006634384634744391645523623968070163769447659012910873763830744782243270562045350552531389969888532944565589054183704128031687354857979036884059144890697261330359820714727594386472169590077853375350476157008275026066023025829243285048803918392861070313959723903689522289922076093753528599808966899550591003348107483813872088419435802939546067553002183862534997173077596871098744299260013177066747252313510606772148724393116712079890344057901562848399673655723523396301195027941307874899651508539578822555251476960316606659521466863769533580261170812659470973322178936116010799934425001669458709882319421003390213181723208634219149569632401541609629627829453167499443348322832040494496538272826551911475550509745729996116093613520354947924518194789369964739200298149796807159877534922514617226541872148847820171184410235285140267590270405032539387514482953760943188606883935426108472114722704300234340800120761356320480172831291319542557119099352969492178165282146733037734359437556021525511212666700550619694729580189229475523160007387959850796001627821628579496723347113979612007604108833529185998876401123229550025202461310845142436601492652671209395112198607710744080426901113347881509526992840866531080979244995838012607369755986024032608527210551796182445850573225350980038497432743020034380779255450600365295057562298645488018460896366852317182408350880360402365341123992422552492923679198512987641830578867555800968313950164270673187751293923924351269594804554609586049948544109325383307653874371241657446454047170293474298588812057472629318407034344248894376450152092200405991623369812697581422698602019344866377302508927109257513452612487604349624028717375097705962395946706695604811410726974119274168035268654051372934466601548403749870354524003901010142336879593701431217044126448185319404190356258895867211211310006731745312849835146433108176627924663349616101672670725707313981137038933998631948317509120030655058859819931982017827061752404253053261314778818246614163364691420288456336659710047709813842031670656437203687840487256634380344060058438368356961228970898463803283982435481664718469095665622736124656918686667272026886925877559982506100935488795745732276728597754047516701976878576753886835517533701980823722529337953525359925896895721331414962761742395955457559402707452343330987665120560986162306346303524948369671468086493927654243426805696897825187389631077694293885120116245709175428477967812456120777270294164470245718254221030962866125001273700762581495718897376857608964406288998404300937006882915403573425980568059606034815091024314677080837309309899331324806488796881222694435556373955649896932153798633170530611831506081817881499884333259889230637502938059445656700079846886292152640183400075879188965463791788342026357498931707376112667395883606263517891626966765327156919079465237104803103402847010479651197152738799410146017186237627281731008671872817356314650118000177846243454226982709300080151061321205476757777593285009442160188367358450659217852659563392586569162389718078151090302356391607591931591009196092268704910532398396414418459856253190239389823567992540255092794298903167851311112834167494534295465797033103087454425448048883465933481546561773291243125504913729911630781928725401248045295731221672619447007490663114098372817262564890062747364685867660549203704082027419904910424401016997234597047374248333401853378851890100760522715812748475223573613373125759075828506999824854853764560467049215158162231924123302804041747936350694383205785543038081355818352633040269954392622713421259242557706510124497920383631026014768695558900123651506436054148874369422226564672732541874898155418923485803747287646206439848709238165845809385524188015024008639228066768664492993077340788527056698168657388842072085634700953163771045637296376297082438446263347837936735228767489388199924658806028637988802065776387935215791299241334443624431697979680125456455111847429914948456231090054629748670543100017602580754128220021801164716988025293866111716365872814855644354688036725653563664362511388344913576801627759914581689565559956072290278781399379296211725174014191280648317499710416502083219184953796154278673801882890513643879325954237045745426946881049469070897536066777599248824447605412695638594824588325278845604099719907951684958691221632422237845817398146333730128878897817962960674503637852467790655695279296205595926836159431730249497241645871641217854761574877505800302982202564050517494299817048737798534681062400918178683587952130768099884057964416307632117270382047081114490832044325140838648568847700741589694406167335356440638037609643693678715282205682574362052017824704856362811530531554021148854459553140501410661992535157706401665929576569521741735732058913521343222676022442128835101659801279531626392914245986658332431760879066808336756925219914679664428312980216426264494437996475284866224935746114033072820731960271330666963891098602878727672973082290673980921761185998334388918321298649849760746187804247275928649255389527179385491545452886263498979734452853133459290093409785538526385645305980168454062269793293852648068786260032750238712494946946997647715106527031737789671116402027773385817931115446178393289752989803975270284716552177561957892110823649059936726899801929085688595914484173718935555248191545804497673649219580353547043954592251363797949964002106888437563008665484597287300683600088481265265671806874555979588791539485935289998785870503159525457894234332011076577532392229769225223701887489772146256247205543352764307750634725560488214255513098661700971587893342427673952050947979869080500613455477785895235288620714407708899263635621051122228353540407375449888883279738048829726546975886915221061428381935971223333285326054795333650924201145865308507808857858289192655161091161464909107729228432404724005936072014956389763345851378923805828636145557685906230200415478307600263454133472174056526852233853416730883879809262538011289032448649090379065975034826330991730128383024038773121664403212407963957758817134403388658413923973613978822293847530215829292374530649447642718469708922031826076060794436717780286815447686026377973139942150889595845167605580626294455534325502151030992269160301432323881184654651554994477637617249815636673913257506609934133901322182605652173124835062487544100252909039639359502149424168234431018297658063833011181300799287467039864285545834093484779248792506505780147516782830650536134162563900463101306729306227549199089870077939671821270999878406031479225730693449167116573373644627579680503251672150030207967011870542770653236589674412325068840483566198078990870722435630803371247526391422551653197432183855596255238335287341311624721858047365638586168920218840376691360066308057274138631822568506464736598905654950506489737775176141857187552530226467662387083755372671930097717661839882825442594598568441530528657047166579980540794610918149217191410478284014451202693074876822989173537382194977327962722492958195893603371171969874119322725692169103924258889396154930647124278357984030024450090598801148646760815909211741404133950222633584886245616770160454205917700053338695170667902904013442264477214810297649573199735327150514880916918618196530771879456486952670174378023769106285482450120887495743968124567198548317769150322074184504720787354205734792173900486254659843959861840858409531289012011336386459771625063313166491609336278793559175387394827121961135161431648163359108869360403107368323012649472732816519928458363350490303978127258153051081661479360477055945786849211060107649614684029790433362854937048316657020467659234303955337769253870571846757306471328407030836471465248941793302702205003181556719444006742137289581516666437261192954516158261758704648634356475960007938629085458079878368102124262176001473850470442299895169813187070998836189619467057324969852212461839387799999506328008650198946430943466018495886312094303482590202922623411314743178343304801389425856356626929625361114296375528279489971879346251379282436908899879334106957632720114364867896043803543677187288794765842153379973882026608424084971258066228486241325046618832297157155375050595997505561060991726672800562991240508676911497871110366326780430969085765546675269659580319983169825279506234222291833070411120678612582997792975635343116884365331394864514262638962027660575132152591506866129830436686306727919973274923661438791488770350935683058654047537693888632209086764092298776954019627974976710037743677473767967543403442968908955142318181558255566394595028921913948322855788157813412466252711147820452941493186222628817427318765169620551080500765330867506988473402123524119424238354130084718725845987827696918299528139843370198068684704354310116672177766751883208317707168473939033375519265008697389479127411503953818205751388627107309053224811350522877566121379960002702900800089456146882166561616564178211183449095747116998518225536657731654712671567802129092027417131157043252505880125865558111861467359190945313881288034354014688597201055735308629102814727653565988541212074019671548956814286231896876849725665614761508812307438269800907349867282250512131071314686565226657941901509524547658418234023904146658371009039371158408861766774377578459034585059562446566828394124539926564044821675212049657172803064511400368808390691288444728078318344788398332825755091160933674150222703876826582274263890776643412541273010258942431644708010529120097902143895323260098708782263447255574872100838821751951966956554306697753495715121251280866352959199477968486373453463049873775613272498717450871426508452711194355753747434160670575819396101550705019082815989062894885094527124411549021968172151395073497846819090012556430585296329067324225681093161217302312063255780175525529334201727860977166079083919398330013505306363036540594574376133697686526324903549253097827926676905228610264198395023660417277255528090503897639591266043973597724635128541171517818149268248176816890110464753660199350169248139648171990682751310267727346399344106855494483298824240289977606596012457932799991981004570304599433220728231373794052023607294272926526304224133388105654176475562154912508435589965004602818790574980178400433040806464153104868781981926248930568069503061965992220753047447250466889010548546061490053974949449252124416498577465127661692401075720408234551714813863745044161571613053734624392975069450595126184730897569063724962953156121706684159301893589175506508008893506435491963298863232697649757831476863159149445439726275977154130000824415936150513469218666744950115107573151118945509452609438678274765345329977622041660244423795515263444038316705954704206455771765111392851557430637730228140534959241216949257747562547863028527596458503854358814975240493663011841533392837447189025443235031485233968231618865137768380005153046751696444195172299058521376914538931197309431266442746445280586368988968676501744204271100137175945653501992713811375930680938149872138088069904409276585085514894568608304313130070306065558766500313070051465393221856287501528482542447628116961828644706834140591004879502639722558348068828191174094351021318415309023832606576567503205079100379906703336019702180850498754685177037742583686132404936862124817698376338713843481763689741277989729688709830646875847992761591426731763247927467835872968392681165651042825402519229469217913183727584395729451024400427252067350067287955096759184482603839208640117451270341188508917587802960534454171019435916740948800794391941100968483303695692486355815006357711957465964453951035052375542535395229858774291880789295687172138430280853307518313870116372560013596635370162492816773283014494367327473038207962383147383497372167192397691785230918484572039198376840122493331391936593335287573962688473331256586956629934129981797034991373991452561391029671510790056374501387950482277050262661192227458163978774174003891179316116806455032679435442080007500332196112231041802898464120948021569055694906425581091101466401027089123096735713151567315184810124715232863028755966043789960892027491282336813157896409790440119792600276974960438710824234943910986539890943107761240480981673994701977588306376964719725146376248870869662923197626806004072141247412641783052045806001255392761813429708546794742985276246105416727303280069232465706904825044786405563751774821176624915979408991661145141150765504071740057017012692474578089671297363695456097096641165377976716261100080400565515113990928386366701588620846137060648657917156439904096531786996038703960784667205495432947282432817012723064358307016469102432897470459100490737691180328203843211706997053368786607058999071482124928957223901289253026844961697765189817336980831257498110438048910152119954758506762409321886476969673332360505212956071204790884532271584078395305692524272173657989745289386288819853427184251360245721924942971785811731129014231501353012542131019639184025404769152930886076512660210123906272640787041562194054438840741890899040291990545140765440116775884806256375104901912553413957272932591177006029497468282966376967177780231050971538292308954116226011433952178745020342047052415649535287771524944493446286389507945533341262500908845843496192509237856855198287593788396117102543615692587900932278996893257977110109854844366187942630890215075440327887955617175875231100812117861070576326952111631294386146133861103309848617270529110446947147722384413760477021119827583705846156746498966922304379830426161413099702375735332531497728842381770064692824394742092305885206070800368543901190372012388918778932630194576904019099510824048782857183239967253607590144285007884712375558169084127997188131976236310068419432407285104240163672487560020895097813298922098295771865389669036775465446736611186385075250727024890020671069158463072973187624375337520578979013699384030308309089873433918798770861098528593649611546509951773335625475996336878660318089341633620694263725508734315462400903042229753367856298222751138841716873457469034145090902639469385648527429964921257706399678855076766894306346130459398420588491828326300414702226092041337561315106688054792682315797188719148682884383221861288155145391274452288990580973348397243838801890612348348267361511401940611991322860912693509039253843193843129207207062904320983422625320948670306386509033288772148347700093320571115084319680629729002441082757594534530360916921715434150883869352187037059464664511209843798522091421731099281067868131254831681375614520036311021584718280480819824222154258439824533517919413064868549474872527948008868670219933347043384283429477939714612900238251812429105470007509885051766558420969638410495707244138953207023103316984957818398786566736686021969463111171765606698451088917140389813948689433171849766416850447745656269419741527334528294770841218054685852560654859969104385643056597428393006449201864250355430950701700351547613761933690282188200622360917338263228195988052460565180633286902031855868429259151050222878473783143731653045057024589635734420919245879325526295710399879492553464239837999265592153710983773101077675545255709999103830799550571772647050904545422561865383813432019748308448809346352672512297050762040256639745042872262358968927841665909867445546471237386419895948383186649150283121154044287420088398929833198559352826629670130983572769270943775021157553513165876729410318012709355510569334253095429507763126361742592519834211324002305348419476040357536276886508604446120015383577144017334291744694804426701647072501140231135265183881978393284545952245673966694653928205982082295337392278839139922374852771751312184304717674684052129261796165283683119161564775497035218785370745098589992570903908548464795406029309631794103238266217741456812430080382804798998234379988946024222219772876110264697450582932042528381748053445912516092821628376368195563052970095010077381767287612303786968792618424840302320986995859758654523604747286738345923869943788940652051187900276290143066936439449309150119282161973799223392379172538697811874352121789491556214162168972318461671196353506444027042059254026784626107227919924149818249563224606368926833442287126223001779671400970469460574240642528060045951438435575506227840354110648069171274969760502378192935821895149146307892998004521792536770579061726872818683891672385293496707412035493847733242062102743097942654663550056619971659906946802853421290419240760292766160438086893269507271042868792483399989067555491645739223642464232672859905900740230998863439959689704839979139815481565772919410465480617083300771220319455421174201431470767597542821359748372777139992547737394711799308963045239041510696852892120659144804766900258374769081158289066377549799311890654833423333891363817280131211129406257704492273684308150966931869408036711132636752422457095889747595845138291518426856506901913097037065393216072149017920529616776291393850838239462129003865955869117222335164979770205841296932952457413576806906479466183780586619735356197795390706809798006669136797310388544030619087421834523392943564059788256093048893777367167317464190639885608706242024211918134906151916054682996159902933661752848810702414421120343321622676104176609486859126808864779814819234881362671697127611325534238931314689401978144634297124957248327912683401730071550327021583469046028857375892161253202353906003559971327368902798167444569902238909512212026119566171272402140234190375998622422474349207165090670889359684940586142242725631728800126483359009882289528845928447008836578976227044226707844920424453780006619909716190231330885909573454522584921191832305771988294292450798979523232334429737821087222863956324208185473954414363557461331719599123944267921828580283128070553501805050049391975915163002907986129440126947852874687087243723200218784552639886272258513021828641654539813269671251858878666694049457395447168424938951981475247268583671430109712282908982211634014861722682893743037177203176832331978193046101924644032294936855850563536232678161465385450965680664686015063745082360082342915435150781156392502324277928911231448027556966536054899289935783659217928443913554199165390330880266596455956675635790591868862107357243362114538169925370402276270073507294500063939587538721312024838661010254443758672007713004804449369035524590296590200412690835632444472682006459177153470984851300028101325603941222650031560014427397008352133222148336371618298080228716212194825014657041636492371274662089611009756602188212477683071012482290091053397672540941219419971976925573227413076761850140426871904996247887890836093536348101170704817113841019671868888103016440946203318184387603231470821828147889404151271828430418452340256788576403712156360238505511052485839047120638257582783842931645179778257353741453552880566955251840130553181978543694560159485750642666119814038166916355379327965176198023635546986936248805069608606343534641618321973186711290528899619804048177170000613252175681821765931647480336764900946769782304741410863534612530087789878279897005237870135865499985740979069326325246264141235551508321371347032527646880321807173636402357993695233579352404155254926748774006097794772437846059619818626070757371493668813808468654349564782893607942460674576618433869048757370224047012059323599902470875174997550591630596275378829870764118099192547310996747512368773631387797552764843786153076426348054425001421071628022251647588778719793874793268053843107905219647578783709849805597261289900886972524475503521310747429813110542157316717581422863010908277959238061204055043717112707009460612694931427941152863413155152906486361905906356537263638249040458179115240625898887822486706549723827184668662795707864805789024281614025246175502316866854086062290831482729218566596956145718626273429130710863536553604622265272894686174677344563775713546265581106465776799083819418308079501894621811799737234421823146625200282046384452508661194428116901175518132483554104931174326665365308987655273635843830127886491314142476467408166055970047377759498382602967891267269113327090800232700394009746965783746061975670487934353684578638462760446025253623089019871931151272222655763145213567654884214613091548193049550747085117624207573903175933516249793541748393937921260000351896036530896682673725697212659255594968239655789981015372641377758279155454750257274648877643111391630751024571114545098646127198431470844021189543277070202139421030142035113715637142729750867464506483770986322480031400352990019933441110752984199157354366491186021900083919334783692529362100364041656052908527900901086708443264568912045882550204776367163457242711457207453741986948433355232645848373398617440195281408513111742976835235908529131055901646337357050098470008600771546380010655612200436844598245893920502758979502761194125937119137510931774727561000622227745873181999000085500728141956212737469970099671965756814862200102004040800602630312868766542149889104534599465013281689378645690497954475823757524677566475253403050214184837965579917414479549292232369683567251908168651930608964059847717641545566898747579365302658903911091043255995741592578195307256560895085833771671950266181004057644706312774421668258451106742139231509506310611077025642451689560564846619004047003755007828915284736965008005569299818741631149655627385502925378637707050636078765801634122077078451448690935989856079471369512311531750832151988833916715591182022856985416993432423187679181763737516149332483298593884422737196657888417516833423535543202821918402508153505382142110992419876476069890455619550938603756443321163468887630812551799299033075434971302758583728500814383554574406554635123361919127919250652465431335919244943260273578170070723245987163628845115456053323180778396751422560193598785970666858081478079371995966889322736523461933072789874135810794152900699666194035448667359555121048396091175313369468730068491013047174956986484249681874653080083688432638333796108273790397497917932548584786512505109378169906704459553976988009899180604299921168264222866730963408094417843076710841534970312477676268377874510493436323414775085825522261491540344689054559555719197384011228613917277727716667892504799210681465749086215008282653592739669747910307703099041471570024599092076947753072127669784558403974435954160043711808602528613542882226729950396636175644551060289857714300083206564902609128595938393829658854612026194058296963871588058326947351863243605100777771137979699232942178784107330479027317672257512634366701297677680869806070575815491670987762815805447169029317541821828477224057676880109132195997011383679443183572913499544505608553058543854118809420894114111369768981442706971427566752797181354297013973625638857665630848878614741005995870331357575533017343542281964826532018062609235736358882068074410618637106663307911666143367086197157666334335582237748874534445356894190889011445224578646212102400512418087962798893826265605248330422541341244060953535430004111259266850134571892504489610115054721820139015014672217663794221986433915156483609410297500334189487293981959953694071866537536785877057637538069569243025857184991571905468014074376745328564091684653530737809729099546684793527719129606131327758414723288761588142895998805682736234619654009268933306253994636024925672956424613301054833150887419174205882898469268042299460353823746064555658191268884828013122846054008473253319360137292807297946678013427640821157558737275817118025401222118141381974495950391580075859880061353963536594101312644426211242860412652079888239336269390140317914293173608927111857722086407226703629978720544825653009511655242341602028285447776104170826050777743645395619011438509841815369855255015121273388018242968877704458102098160199180233780956018498776745427484316586669091956418373312703346264989975239569551015302416212055750355459652599618194564010899899362271507610343490768918998182985480567599037111228716457986400257422404821442334737662941473098625161990691538701261833216653492201725528734375389423210374937596395728466960211007869104846139401006826604191580209600511730423549143302224680570563670722678941785791456484323691015399438122191007281834750330832691905210354049945266328362758201923124595383022968639546722104079643501329041665139000627096787704104412473331632934302696887807308833198521232775006984694248161014282321962827542500967079207786801476469747245638241503063995855763900722472255000891363766318241105400105615455313145394061450298125286989671342164927185493704795877093829846741462420389802518150226116640277111073605924773221155284118807692990125603547398441194145337156180873998090849679395377407212518372208423231261078222874305296229952100642980405634479989527577300858719485538028977283028037955947844388705580169013596130127054032013700231167035440980325182140242494068775591557618808908087480905133196992711594803859802327527667300134069937882160495302665878805384730053403987112538036745317215572473597680580405912377756618159469487988006797535548661634667820247593226313613881704902072105577652313232802282189104282615629979792501869933782193549717857725582900716648893150539703626206414894936481165275914633119744955355564834581089973596899621124888850589121008275652146687957832930902161036468448658316914680814316767175095390966847547842870345822240769867715090625946745419620196950437737712941837765591032543300734802368641374425265886867024300642615113593072588288374487404346167170009402199805450167069666446395012578961847109270090012004368089799251656991851155263017716260160694359549450461018712884868637801850822180871530435206247764252098965363092932437825587963609662699205048423597812574568737620959324436914601827869023988672878685389271040853933631869546845157837269356534784232615954983449402670414657085774782015821988849553899052212213373728089533571228940830326665273718886479367538610225306103046037069805981701738363213198636269178576609631381158351148869180692299339432833600770252940402585379572424265475086568143335436723558920006291749518713505902062024235775433314171021857808719933648445523496493579363232205762951565914452337776974229527835175184007029955371246358183096890338088729405383471616927180200375125115275728127581765756782172691987632083723679637549941368626958603027269870012028891680000446508394235809050502020982675742260992116431530737798274577999314787664338774675346106286544212568900115997180854256630628269495212484865333434676944627686593564282521696338006667332409190252539960565324439153815265599773269520114578225293404217657532366289639043540667123742329691572260070212668472421370803038010935841941613113241184073449768998350623665771918148556165434011871581761987935201527640576002581549179609321230258685491173113155091412114549840087842391100501140016844146489010183828356395680693565847544693064895175081340714683525107020288012433074317660852560637888097221788093512683521235070467682743024955815326561484276055007666076238790232233016296476517597768109770525517841886056061567484336164722210895855490305599166315679473558281847604569163168584928806642379108400742777171660401704495441152998508307504613156630768840192892366837703606134525064783562125609105775571273443090522174750235514521628089519310256443010714495016190500032624911150045177670235320268637282327920688196577479114547567537814933936676271806942975638786076964346800816111880133580253416348858480445001426821823555345371218619442167993560566854849095232691008013637146962712913043671710775308548913146856274495273414830288576376166153258473008098818615646424383649387900303903525182522299179315808222287124018897397472947069952094242762341911315692090393669492960763138028110823773201446020952745498890907204000449539741342965147733348037547650318492852436689803368015232432168633872067530986279330591475018898862601889067404993212448092823765929145969100684135327120788374533727597194480619285900991635699397799002501058726286187346376088031201937667022673575980437769270533336368724449146419972048022434887275527294765091289052410107036631751060681522843900075579342176286990547799560992754796031935475681596274781542217204049931133635974057171169169009648171978301729024143805925000100147876020172988165124226138343403004792363788713856929471530184994286594416269815271379767090741468749836998934752035003956577929095637138057834186846539012847948361133629337752365188540065672963284185957748201802921889103573006145920766147028294939449168291718613811899913874603658222352198183717280779075727375766646501927331901179877486463489283577833898973353212529501232098434247231506042791152758482602101422187595915843017732331016490737071981525408442393300884652942167429979949641707275828775170029698036494728582250144247266729972589519536116427284663604993958051603625432033567103740531279292549591304542482932150098432627569684041808575102017561292814703868426752819187321399657044505107564147827746504570123936161186167695909548072680721517858441598109083858875263396569917800796377716097076228498697536796625126819269674467391505913093142564192506021719442626189275913442170847842619868226678535290702453870778625870397346385891691529658669547462486873666030465051965433249876601028215949534748096356895419735594958386516040885006205763892456932924975501571330275756662991863883139530881836470097304342697505484818035571800019757390808612429047765645490538334350688556812213403560793067658199770143792882144124479603653513382113198312105432828664963151242334360986332966792187853927079626981744364929301758279422619283164836506929649211377993861201336762166215460023933356220297413660869270200600883318716517751358896072163852195859018016336488623671084826779297236016022106225414757148054838762597763525179283707172060863278181839906347371480451218636035710572512889967503748483114357184797344900461843277634490876248717911105125114902994250775633923689939298002103642573457157759043715839893992318614556334636957709787093254116945799068552439326717517306977800830687015942337576597746110320597128120707552705627200018898487971851492033005483077028897474380488952516666578665276637262979246151219451375165615757948102874734708544607065222373974139464168071998463515728944423600140479402634698453613017261922693127716763187020481058945211912995718821797669535327418181467145817516580278124127683324178040634800138481711947344517752436382696304434210501547292888523146733590807404674504827285189942299062261794907810582518527557418421295793550727670704761750082233813846881397338658987212731546749711535269239390154504107602765452593887770533392742539173673858285703172050490203337962000751076084949668365182333576719548661025256616663659729135705933043693841079014386955809610560439760109767972726518689410488373747535454975962941473975085072561516562462376620468165928152956656696476465152619240336457740929813543242750366920070751542324557808321478937038285315148707457617412670333507034786672291624938423869477205831383087793784229119070040911222234859260691413098930230499277415726306548489477576610601066101838774492056832402301454205021573031327276686597874144030296272966091120610296749511660907863181685465306539806367054710553830733522552453368195204407018691234162127613104716227640524973275001492763455236429553960113129743987386284415705119682576721232978673205775015249717873824204555497681283247124138884647613290315233206147268647908600323550711463140333142411442642142107326583985031859846831345971183316878531069441844455688240223486902460287757865942785088663039804008726823695980850453379439608078006792878027485793325974249127648895516598956922475220856793136455209489118487681744896902696164195843500135367512266994252076920613544477835392948352201492685147029236198462238040252940857028495546064875545304832703436654256710945633377148049693520848715097801532223655332661206599586175251213387610217780213730895672005172125750857353423877362425482783226693476041000372390323711253831504034542004356427502714415818089953960427507594320297896017225154280199752669375249930136733548252309971307240707372006961701587636070925355367351873826329332343002297503106269572972810411672094161093328589335044711147365477859454763078212714793924435951345545419408790579098457120509468061645903041544322889729845760588685335455809158360450428811000646158377497690060273413464763223991354906036347047727948987850918161777173627226489403954111782801094603254128096284661881876526635855977920574238005684364493094043451846791861493043335094176843737558059083667274883544359210280126565339264265718858245421119835597512691443310865754768630373265973287258352695912870191731968595196366919761771225327853310398973707257216846999386285432922925053115408284546878613542371341148342051378171232692614975061461254274775527560117850654390661927997240569246872571274586743945729196658432704706726066756757343582308849402659605275021347155684285868138452719503085654733493740018999238360627579856274039995750347709882231511534262340088914310992691939179272081320358692633809586525595465233794971289509004650208400878512110882625542564974783536921724938805874340485039445961101452900929294159311670833048866905646247237103704960165569362814748555803536597908650179040836786133760411842871459781730111292024517253142128854829344223889543864369042900146398080316584995767754714939314191558546238826072930947374414345098137874065655787575977986520156639763845541440764385194267276278379699642798347997441621304703700112343151142283151867747400022180142498377590996532032145936218819628699020501186594601164306341315852926080220761517663419443154762614180712848736105014749815904293867516294467539814024906498730599966716417800110765613074824286798402506955839313218977655597452104383450545508260105946718857784413549815123410369377358291217915864314405297264386800316793330452068597625870925391141636549251755902014475711722648540900212020529030427084596723967425338162659859494747562592079821849255294891633920233840471253828267947516135697601714013273120370312779308380566748402769844019760940355639738922271247021873238082895054189438255934165377165026556395391613628538938978121149709501459729718350751854290995223349057348711227734700883966688704413033894562608156703093106310217978235923651988157363456878735996096232497860483772706871905910992692285171997759736062605558907025882963118670533612446112867258462531392377297317733291557301484956956953586130942932952740446146372367058666003993803151381476978211353571522158682287272732166568580722081001880054828386194343058075972732608152900282574536818623224941008556591283294620873936936752633854060877329965920463320408841270276252352993521353100967817292464768092883318175700956077388208524324648360926520554537822659752495206456190950980738622066426573764533829205927256413965187581456030665983609174705113891948535662697546115891879191670564445680317623579948646295240742686589787358936452977853968488738175198164592674232045945326492325358929422976169544244394649322113185193388447884914782881195874518420988195791052404612973312332613162240077055327012456850579643608669891736735541271250601649012104616769370825917580553364147544278986704708682634872920083493951008639180250120575326364711302550596261896827377192131837297463660329217797793780416904485268241196702897751290963901237628416408442041848447852647943879171110727614348532288536606748518986069715912501243717090183090294705360613188771553188826697414267110851491177898309406769754394005654509244542717791751781357479318346589054625693842848083505333429229475584290068383178541003320249190603813848030076067646073249905363537005480207822075419983330667662893246042222516668422234549508197459645709151310279326153409830715600050508479665508648851041131800633534641281614015314346643732554958642272128688896565134201876518222176286220009515062562562288474888651726707911353821587523929041473777824826074403129685925290008194742411047929916308960830629236332460409511196365671923561212531728093190522770735756457366937449600931059847897139040142179451899444471939200527046257212624467267676456168007103617713963952831567660918866520824391719255930970391981612516463732569349636873169812869564514630670605975660261626249394426404152398357141602256264552126895198060876295268636171343030134371782960521876842991953301358277412997865702725552834233753860846200558371573140926799488431238027124161839519405520578159955923649807383566006669870412054370207951751572170998083069088279118373858628102408489534968342866136523723362276021033369322305875199624127579233810127185073083814321923997493220451824454437291993768534384667110482299394151024982954964978067636477854480421685328464683816482606457398806002813240572702706003510882102009677014432068208858907195262170773212503154490252481015710346028394339961930868068716628691508834869746839233139130879434002473615638739831709385476902374594945778711598342384471332718004298510510106583094813600610507078194890202430849828498710447862244156914960162025228788067341551905747639322748818153750014965839664535261701190080447281247019605882987068359539153249698181672983328854551007265193649736590010321135745729756777677425817346137229989054483135433940576408861344235664779229050283265826005731000054777531137041601798673791322624927873160268817406016832183288518653693433179019044100901153745919727510654851952356920423909898980457033852397806960743318574092586355535377072645975083187222966359919007492347095744117276967914702996642276454615713113997533256899515845448483770943940212175872537296115514993496083050346037513451758212208277802252670480398924347055750414984195117676480672947546498149753489398474812267948843530194288807995297312585644578087736333669610679219336894641061596043765369683438491400931647946696583442673371212267693612592925506345136724668867730509485410625171559007157539082130475272417954224844711307629487901027463290256244173995707310335822446777016958365632304459558096056126954263604442042517679564937393001468533312256399945238503505440078338412478806208071145056599013432019185536561623173310730547154223096331990904409484462512328095361564303083577580536814553105896867780919007555534847336310966497517077969131534928662489663631986371270439335867258484283663988491046324211002275268462273449930507917054104081427887648944019750546915560200869761501999040773833409329667985836976267769028993286841255933468968148255491344064257418818266976650288406482975325847203648364045475990030616660016106255063030274611693524572474193050829737432692683452382333996810394828785701136591502358162336630908641093406099211582043934969686544691403699722253525721971084293931350321080688388732000254031861093481380641718336491586616703119924391144964539157966132163872121768575592417045399951453894482110106319165059463194814491920270136829096893909332140824602376759467246137211343795881395807730067984715788624352702013595231218279948150442121057132330372676697576513898080433553083267154171243737802849186370772081045527212227060209208760806664859666980195662586863807527132375343375318380478499579283040403758812198622270077436823343130468504443372563463615247531747910116658999202169291500918431640201837912571092321953896941463129391446243761466980160466846715863583358990372021271809987088001716377038488260126742886237057444683269799338755181373799975826359493816362135743430558724817640421664290004696656411216660153089671874489563928190874645729362625186361433830828051768198208989979614240956353618937715905184168451622298420576267147800090814061970240955770531538085109491106389879735576933961054939048665324920493518266844764728615198118084873112285420442670333452918099492359587935405785855520995299419536123257975728371305840896396791923425778413442122807012495901362342996549424679157396919424317886661434738367904056758354945864800379062764834612371585463690545497390507902688290079813270747498332673009007801272692956488266239456032161344500242365576624757889652696795718839475590746670406980458245193139487525263349277128008155540687681543805037777157716231545380094124762994628523539377334177283282555908278553318710411041021288751824294472942326670993080458045644313543390959620641602738325074483708958414804635032920293138218763448592892654987276412280447640442023778437116814152689296943434328159952023531746173508788459012200782956081614984108032145282302964785626662899178640795888245213963118211166261463707681458609012632492039006334442552795806100437282760971435078312757730196068328210077937696662829776441166790474740972390814582499637186883210468757602655345308291703299344714203364859661440315752440218344397187857769316727708006200803482423853043714729508808576885042580638167372692331825972433254446784564547040147799668122906593417326671160011859293522221458203844156439540400922512685324004934014587183680079798229005531591227454060261005803990932959071806570149407414670143502812752384406977145756091210682606585690054947614110129605675342981705957070621701577813171364006572440864203241665925609445568079899178769794707780483346838444910884064774515507645422228819683557806503298977775016411852575682341477599793299563142557454111856690155511001633472766721893923085100228029978610521174044183561113748260037112670822081826346187124877533250747995963216882425242881634341579781264156157627154779260009997127908457603587979783373793300552271006281993117166070140525997041425147180150605810376468552468271186919552697205966278693159026610220709545268149544559433098383779313107561601833891746913920407492158080932851575084369675814148172211133176707074849094030471163031929032972518008977443591996423047102538144508849802763665477146289737462287913579917413723393613571489068659222256553987936254431494357510772897033930129798771859148603859401675765544955068478553144956714232888551751545038176375393726197059688345295614489620038770545884873479155683443625226603228276380441377044472688938710081803745682569846042133352144308207641996963388576591709512603471940872939003933622124419831359447806243510399632004893239477413281406907827598220452960078770546531407112189752638644944460404745837311684146456873520182192210130129797926831802669864151993608686528748907987066504077261735261401535409146792982437530421890206067451068694864634921156548175168825868276297140116372413074469586736724702191268667674840901234774608840611344605656512441507486040909063256040282542150593084577891384780559361445939294058743193599398836743268420874779155706651841337612713802364538002981849789267125776748979457495513159580959392473344733883882850306586769872847060420049912898128763087803658009787898172481627608108354465371616426457875243217627146549563293284969027674909617289545186853042585649878209107068947867609763129689309857709047708145873791378628801622602361199807690249110209404435409030016864782398629578210751596540077343834499665591981575921727572644969901003439301627113487464592043161366915852930216642332869503941375785058314464109633630589577893905847507483664722493120627978658900611833363810829850438693476548919034488937260615818890308812841677868804852113517228265400385573462746113809292847039418329407796112152982598151498348336966265670417082250349995396219230256123174092761136471622629473570019926860903623586051653518255354051008813112468642426900840519179792175909183889304598007180550019008913508116465678174053743450539188392257148559961058930955062834936240313265328356115900164373712812091928986154814310622433056392107334950936882316841287337223846562177438485800396869551052273569982927814925166133472755069277763415884050030345113084908576322394865146158513581517901934213191952276250687109259079976422283582644151584449924521573319928257029869107733629589925636511081261928632120712742786578988107222513375950805013779346915286137966396881897082723481939424523928404825802316529610676262128485762848737166122360663358523545886900455111372118907048970624916753188643210185908609275462189059865490794781192435955334690144964305085170090914634209123379334935813528308971337051856981777452935267192596486043678146741132825528945145202301437424697502241269807458675964963473866342264874232619457037526077755151504190526342208574711876977453356247289520056071560165292159496268783167365232584608894093137629476847427401563460116120998112578683835146389599481723739118534329824287402249126354302657201931574735420813051966506578968409546299842014295154113639573991558025213698779071100075540113047897349148443246514977011055487000859596330468584575016021427628909991752285898425592826721202956689988130664654162781678287032985113368195910853998555725919703783352527949606790912393117742548538514085052513429339998545230100091282114806043698623350227149781491776463028528554800846362116903545087873437893822364953834850777438538828807338434802910048230446769891365964731859041481764916660972108169225533917897918994284350018484191388125633024080106979534565301652516415857541064061531774111023185461768606000239801619162326181887198579228893267438331678464187975995431901455400777263804908237433133934908537911507549517529816248927335516987633432607701993766452072686120334448126841660389444966631561934511855649951316908666439534795738675201007650476817347840362825734167651707097553860685034668350659179705714888294461574115106349664746738804965276877610232078725489383053319516873743629664573317876293418653265806622787205737112153500733067078936302954482116056588008935946816602241730274128201122806949048431273288081037115722736430114167533288021722054607583559789860354010359555906373223400412522458892913266713892120174130606657501156279887407373436658871966813877391758718590269342673103596370759442355890003663500094676441083717002085981657831453924235211333955893513451972194739413830637612561710044002769931686636247807060059100964462016444718193836024643445913020450962224495250080247006505157292174119910503648116345339326834154977468719510621129750768150201486273587842218907938363802893951184095409544830090613006615758418915460872998963984520856562564216127723816897665526679430773600416792264914866975497334356956748322401583102369555428679984717515505177450351890305656261514094571913971641443383602560196457293410166738203442764359934081629714138280486327149809005374278348159189394561090302874779503350756101925884925687658281690078451335309521077874341368063450839746362215030325909594459244607253595285204778604833188995026538985731181113684936176967598710054830533511446852935245685912668276177389746982567093530909038756543039692417103240226068158792241039643654942044244963802941882868974993580880459951499018960243805143005625670804913695128405019438722476688228178606029773600023311415459659655981561418055301102577156324280755875032012574266485708812445133227097078008175257463201840478110893355333710596981851077082337370557586541984423693326961444699121837133278742295455948016966794490673941678400743966555097224980276974662814710037175205969053256864928705302886356152252960640842758385117922579698068636192195162135387937258357249208800452661828470484194546924774658653646778366074836150567587204114603120055313826679668206711894100424325156799914625038219328134747941872083971031506838726217468907115180528033393509711284039573472830227553823579407300137904606020286476758674391697499433558795812051355112408238824052235901593211565245487512431027224576842533728494462381832971131834606232367824272983632027334654421689517944412979152450912801039371044039021511653155751595451050460763805024388238779381206390655202495509150099764885058394981292062499894389089338272046662674213216753644682047814724439692070203171077494182781500813813441756849149152427191181126369732081734236760378142495732315038746983639265833271100965601180742962545272742480293030151221875754404704840984562121927705687951579301254132319409890646806805762256135430390156749205058976580945639268231070545372146629325593556428113800078336643348978350315388511838236074887445337606179851865012443910756767894990383440127963073910625940824125331187999723942033410063008676546200620361203582272548093701625498610319340007900249078082159235418108864044073933921818110591389018621485642957168134477195501220027262317336097548220362744335804424998191823829998380474457749568046542645217935939421898115409515553051849511845551711389248533178475980116307068712053784140472483722320712242894269458565900520571072915890595121439198553353465013991263131652685874424212477159051109713157691238879675511146500708195943214309412625535107530009619547656236435830042540196953986079771253063399337993429006370666083037576438280858113165748980448312582771087741990305721125710903296338560891742532065909077180219515866091189716326692206402885889664538147426620009076631752785027253679594649484091578993113400813729726304076432394627197320352274211233945399235714374239707631278027690976793465331053473412427953962163363454621321920979664363411668989223418045081238260598226012121245623214493131668966578554008163698177048421490800534239750282212369315548879092777574194816430003240271806163946794927269207654721092187785237793914569791563602426397589836848099991656020401828715237631048451171045324522487011937232781623134120901637009846451846859178518944778177704939777763560411222409578687946442541768403038702400372126065971185256334892740983331717733542250877148307850813013588017009747590570340515599237996542161810513093394680553324205879770910258396864613017156370395097697765449005954660354808460140939921484267374500883481230781709223217725977385563371526833475198189193357370592214654911104648979885580357141116253705323981739297775842329871084069233272575841053517701454440180985518338223269656489875342867228695048958137040661272025626918931595685879556471370154854784284252967548871230043420038926506009624201457550203118604438005357612140394174023257127458855503655138050164612856849510049742487840193951046356564634307673059728779350120664942512033453704766859744133878085993492276166422869449236135261083356697737867491300003504585465616595092235531335128406997665905788404418818751388235792864913238584397323445529818489121058022876726196227971219646749441259066519528413194591066116259192772924950220767897069032407002018959524063442637754274427544709206789477769547286731600284090888563821353062403298390529482537605278124360517576082390905697138862449360763649150568605479009826228321000054138866937864928568961885031213431368081009685242837610586331054259044771104651860934256273089568927953599006526938805591860355693348881693947677624712348381797548254834724398076686311911912925823607089407100439268585613164310826829272725218559443002948201137771654091052646025423629788350262060167921001314061390797332032829310674036914183962002087065791733350449746059903426258288789825617927581583424802405789085301398871197488315759638761596778017697063071492907586853424762469764199529061996470536506652035815362029875778079511354831319363783016085236044328882084657818830762470210268450049841453582893729168352545968731258610575158893803520368053808070271317203427537223708292382681546754738379557948590711092044806136514536542304173349195180080608185907793042604798694426604248714799290784839486616069353315388681282201055638310201563607247806842880520849213514859903905468917613747215637015975059577519371764689230732901735849799255632795478596929242317687139202451495403059671340327184518997158155361210525219020347916880779430032106045158969572569298795425192203448723069717518162244401291440942347146717071703287637906451529225160357838268600672937350397565502472130446658064034357183018333728692575994164386065933489526277504543457928387057444813337590679491758865785190122833834225650578641300680767096430820074027425908253936081331588158099359059350632589571428281492249647837884903262044921208963755322507614027743794566833860870201091501324565521907294318908665550949249153537765669749995235909303958975422741137195950392242030777319367658354301123685586406650109470911542450976211924987239791563556387712765255460298247153179500457230692471124332606792881868006005060067986707864926284878821053666959176310442985474595544897140735531136474712167440306644154732389652153745606791946581839701187501483194576716741250166120205927828854411741831612904134109887112428482798271998127953698209733445812399098497273513678622559116684633076503106550468579489849255895022192004059828232977956582722349515265734842273205371147432106225897177003749582485361123785980836096070380453639474063976341095801530732801976688251124580491386633523998018842088197612790245469318951888615732209306574316029300627949052621671262389349700942256984884470624795433948598322962115474940387510216534995009265302804598208614405214393286419206132843689431849508127660517280348559199405407638329588815678735757393742652030072668503032304317602211278944653039743926043897093933365127639633605579823023193177088116209060029282717038526186450749737634050243614141445048694112128365741438814239058956631683352373080208004816329607058742808390134233867945920372948941537618263005198042092383265043348917365044837118466120026381326264433841651000253533168875307036688746487218809275858856128904537485348805027683217063592483658988709563959824292702119802054146884816659127153544903446818491768688107039864544142505065565612165168444429938221086668946600267398418829431347089312293528554895194025200940058496545409617584109688145132879538745152162946205528883094887119337049899485481080820160862441001279577924772852487380090098645023072753326588626886269328938299651472745712642834005538772966489546395778249526298725135219944153979496668187787609884693365639040580030136296572314348066005967543973220996860284632044742062474405540543076801883043465854369056745701982891660271827299501715793268971350354847770971090447652266025683989313607976680650437273650316937102078834706282703575538851216050876205009228636390433502183586893855651169012707902902153819594027203218850990182346938776046301508094096883872032234111297454604697596232163906976340419975804849386602250509567315765319625815744789279689343303989777255771499541558016731834694353679775665619074300086617826921086505571377014586411039456001442014951355356880501783633879662924432110434901225758840131472969869580062372454371343613812045848014695004216124818576269588512946030471266074097232091883997039629701152021785403737478027559605924125439041537643795230259989908548625771049722788731975137838336818796984449139442531815791716840933919516780528872874890539759896142410878364823417566606972210004958467257466602591074536595477675028837384231217610111520843860651829614242952822392955652138951480193799785923386828430818225638414328790883140681268539752658685683363371262863893628700660471655016414927051058696654041641697198175191840385124453763237220621260345899459517945241795140035987005430455492975932592492299649247959961620283194985267595034036218533337831052513057769591573924745455356214962547903901581627717925182802630111344764547315279579973272586819726192539240356560238939309766110327133480732307519468207373686098883042431258115597428705937529463714054560619388762524554204404714680784163818685005410097115678841074000451716947900977307926744175363675836452950787192204018728236529533312833656038117118031371228749366383566931072184822981331755097164835404271898419268413363804280563393398276449123879633835755663756076467506022342840198589722960947131363216616423626846909090458646170041759251739770608475188467513753495530246264863515608012535075875443182824600969012953504805794747190644002813057956417621648440365642432341268996043788543833430651708126278716577336696418957643166239925070925366679700950782346943348971407897172795841753933888228548965785076545402587203903847338321444580423046873777111453815116465764528293750879554020781039735531961051039073948442926712520800921877489500335284083293070404987307967369182236827707242962717725418903989859206056110641513586792771111446622554942005343403459063318146971693335759089999926045552755981103378388684746700684048555913638775833169942837615964723129534055619235622662717328092401032421202164222272204223422108169604525934847720932621116336139136291029165970316159974732607333038414172544355532888161469832111810223467667563804104438057746103286693227554361672572972388180596315898858808335380809257942198688368329523917357009088308449531235227609766528357945372435823915650131730156401021021770936180289883505092579547471102907822529664369603923022854278903774794284917863018706095961444877903420482817136753194687136827121299783809359839343094461137356440572468139708150793013022464211717960663655205069575284235809636277332107307449722313233654545011360441654771465010462826401477450221782383876682054783474289198215976357306124575679902074058437557208628002432960780824773568627216423115714159500572604589922781256857765205320601536344526389645284471082511750890204469892880021874559986700984429120292250034426882206286644559347987183505132932264847801222114296575946827416024786097017170599887295192425558808958190343712566725663534151496951854873300392069788080239660148815695475389190247105426378874683466427653617293682575183999098065637064375090680673106615231618540603865171303509980200934770530810686079362257969260603825838889838206120697226879666134513443864177945160593742326637478694919569961157113399058241417347536923392963763320081518361402721595114052575414287324918835655956089036676381284046676433939802345850883434819794637534345408894297988599616372488359653654744959476656042346991098063367345298867041065911925945616907198644109346734711691819936769837097816665712770498407238105130151764748969080874701995271938688649323906879129064961176131102625965278283652360704214926873436210270826651668908467079011765375835834030792332093767802857382422685928942184138119506878930776855585784701900768134475404269582351434054276357811026537579708441353614282567424909900886891873579244843120934343074460809425258176050090603359940267712434035431314074903607734283256155352309520992336738758921031212398402585635044210234168643929968594412439581519079795069517905438132314892306615868849252058427627925741461688324592088116730389230153287032781889755279474013646248392911652465887177226711456617281249129325984672389548224219512703982365374372376455631605129433056926337181489084136332484585317159070100896311774338770560070752979455441246635270532893578257030392276315017333779692202239805973906130670800790650816565017286191816356260474559668466461435466034905863318098492399634248969077923442887746581773155116090367255229253586029788262943454585016381097931770142904093390991072925294478319565435713250856694003291396304734602144753927516882439865219295426015749295223737445100848755700131257295992319293771858376979639204028562869076416123644927317307821517980053516729168516350930480520963489260560683050941450164070703969251000917349857319315730025073819602372845919516466237352886112784857560567204290551395404825773557468726689837698151734972246632311931513203018923498207229438154861770714491961572750199224152898664567970276557682212732723150167179606910178785271441447275906777204472274388840738225928757121519042988356595496429182899567887874851072687095956371630166151732818508838942445758466188127889751960838365223075282175737555700912642571161054031111838743634426670951036324636924218204680041219983751868260808493298403776618723353522038666224106044242807175885990366447077122204611729982576746770814729337088740719049612291597783452318697341802239181072736792519034607574041316840781333149209847846572659618262987929897556038482339968197697366739294510862254101623217267131989985511845276660478877166167865481913946252724583171695732634063895954531647531617789417251298315673612645142584178752127865280061865269703905361158068550219537914676167005671795946948038120780916111180429609075493378800627728488754596698172454971298658633796194007089242806779269207538653787082670593453205540677624386036864057727717474971824115706547759893422387160759444544864318660122236985388052530216566827188779117546952618462043537920520869150560256534027640976434478541382372543348866088472629823605691528451393067606154248686406598101146826175529716334047442635605404846957074191909606655712219342820066142064110756778588798426328149911603162782048398125251243408287383594977360820321667543350289784451708851715845126646735227835929355560897283780220047875184399006071891478219748487373308322285971705860865088972996750261479081222077510890840676957512092455445272891777831849647573257500600569364164188645249673408380498469052085359641662165776700936689434679438503245908636290450748481765616252086503044333937453372139968585850702934892186174881036191228744572004115861627725936134508901481803144062659081392715602770437423241022608551082007598377138128153106788453435739874486785239530767959723651338716346877547086586260964041156125421829064866624732847177435657308671491234791624046494529427414462552207142741579782627807453763345982320403278387801887299998447093838447326142407491846399508288760961509700832526257399835471374561383076335280109229011700156256110882019722765145353259237434799231349156553924672929299142113614333741358130893898182149579715430013043313525059266919635516379478256336096371401498756844064060725857154918692317593925488942915104269049870545281418366136765666157464929484953563448301590766580558442007938913929154060868408009318280843668341349914212146833161346286497337510475807842758806757273603260284002881429419860185660223189419140106663374192512881743774110088290736197040494135024397161579897652830976820157374559374417523597098811731651721668794788818435943285435938755035039433400582658701478322026190288656975274471904120750997375343366453085259790068068032067662553541756936975850052901987400992272161576901796182384463508776721710670144783067451561865882737839315710522057949548085294947858779637915971044800727757092270859050696366871941886846344154610971911252852614378993770477964089451469811157421614055385607327742947713646049517076131151941531489685170938265357027714803977444548667951569407470330091757866260554018764974169179320166796707175753252378661212185171468175853432788770521231776294620788385782307547369613047406131779950653722577345279618771975978357869412403377918750173751412459294348631449586209858714261904221022567746531023909293365374279812218041524973261501924924614666921892727292171877853038925576761596886942864806261797994513779034501670694507951287680502355142947904839649801669979939938763959899692288410345416114190298692486277337863926419842983004919120883535011866381690956452883528694665951182127974939018243291996096712965528345131005170843725889824141128589522674874263625772338479356305519773135156778090256185054254123550111310350644948187226826451206787918055792663369057683166428458215998489637218099033695190277664664245678840064533086605780733893555975902208677711027173364306362400816553735770696855816410189274158383126696521853468196545711458009270392268783397484025880672085584500637116727775647789257994595083684845138939771732924206717222711704972057561422593291121837642556527538212902878467842911968384038543653660566567379074741990480494624749169950600001163323421339495994755932602828413685118205153858664104401491075122712279574747599322969398681016982338494374474736191962256161709107176073617385542893269658432763233260459634093041256254366104143522800922235431498989201533015626585045056851274839246653910787144312279705638425643885264927457213383218229610958507718410920513840229335098293884963170858376205486028156962140373530004957609210844149308785999469587563654869133829809122609550316677575142585606982884865702899942063884360288247292681318151439543814452172089493333328950263098044714163225457327246795380690279693085415984803438205979138649951722896094188559854170650609069859609741004977492231279630843243077316256406641777845931747616059417398367761450923524538019963016080588202220344187834689378556938800797517728357937644133227496667480984658404095638769215257613904959144504598034476285141910548266258703464945794569043429386316744731509719149975169080544251733595398541317661907000340234505405720315447311299650063733474858150223650492046246671104999606783001691085749499957945854433730985284768892300141835989582461386910965866845954812609658440339073182362363696905153344060933729897842323842463590171698117089908528605071375429038814642625628316911206024521939933090565206228594004834755910125005031697734895393877048438951221124165186204382288117435513118220380495254804136815868180355893193817898285706575166131427562515662928279095420106011097442585906600006856310399614698665340025614425093402624659283391721560333827810914095516302491023795109132916083868330979851468884846653279032097898736967841244614316367786296844026193898972702540416879121517974796801809341593719155727418250807607515430338572313180192112553524831115999760429118427913200960494320444902821581436358619748110677072582477488600894518200880061304825229772906274395914587313011702730821443256947360657959430060730306449676099102549280492178705112300388091216528905109584221649329051451980775334478874850702469640015271169573286730857239061543553572736627187188923954520642759795901003063156701702435642245764015506857062175243859481708193902873813234489813529589402713428964471612740860050603544688242203486499928700785329002986447734574115158483477201659587324217448973543936167025553869953862530201710730900443180669150087580902810716499247783450612188844650698545442556633032003523175091592598037498429945758222939266851510370292483907000128463202137175347703378035201014256528754795043573705127930534943817562330616073512734451580185599737463002789020457796475356153099276443304168219182312630292472780068098930135623543832829964511904917359981366210167413256916600497975581856138370821769616577829222915556766616029362553039266036263489679529050278290192725783524355369207845959479136361450101537212687511246227827572982190308169011722482329108724879496716727340847984379480352289229612222731558388211899774297867089912046206021876343491570065216255797196853861522663273397458404814079974327950985373008315972275506497130757128452690726589185997270232387715025987922414921942508145833574738780812258290287686569826784805034529286672485981433838856404300123561697442118272126184697441443789865638033523185552404064161713608521101924869586299096135021565505168055402195608026609893037839017578399399196498054432561084709051826527287789017664098990588421668280941715925799665170190531506307579512095066357166574725500729874744886902772099556545786938878266910527057274298434111944772052229429015877211899082369372701070390334883815810264478307308014950926564155047250396705879240340688950753273648961636263555507633268750489937548279242652454914563085905273151630549685451729518895260873912234088201777004219759300530375857793248642033856989185479626111230891886290600295611923328299053722316935441828077370596944864122433535620977863657732571204835262721072950306899480757202614409955547568782259761409581624402437109751866299187683153034684520552663035753233830063849313102017769666406399017423652583976988759029404123004130031973938889263096512588847324505901158189270745030384600344622291712761785667504383223262500985708839877519425684774517013058459209656790497396849858571810252265228109234453418542604389407382071021792394990771109997647949567514017404322182353706506724665216711791070754037015905635523287584617392807093013117087321212250759213801300526799986048107418284809901779339258152839249957669041751570041303191860630154655010057550377850718681450034580850378965990068506211317941004902683293123538924773601795953687057887106618272256396718132630917422446830788988441922242333262984259577376865021023949145306223612804944931689460325542267631976292075646642084614597575952991865562601736493598107332641298331167033432192388215952244480654400975222651863801467674298107564130771869192278504397430585803553149508809782300652582851601132110729000225440317110698494217644430367552970553409809519400205907071020873778081339043410390928599479728242369897391128025282864590369223012340621826103931960813557012230122167896589461276478814092534678932221269097133608086183573111170558151022581685741425659409884578355138318868967864705587305661223536783638758288851677931070077760217204879646277764688547193184340989658848059554435170917291601417166263093247590361057469130335422333189126430872846457252541827491904888799203295727825056322587895287674732846762142390948384082430622365004458594873849025876351866570245116860210270493887404696432142439003382756738202485969867106020186343735383414987689256282458520115503465354999939646942141212767721115104446447987666996601568179684845283699831515590842384050567549308494046228798351330930089149698928050391531039138257089448884288383553924203960815900112788735877982761306425365957288284326757523498399051998459566429918238754302445693498118219670104781874115522671491416395124920342168930976809962654958842269153976799864661976866505826444190004677960913927107915533931941672978566125174410426666682993933822115897160995280930769220460185049914199701923447827884745087128122407249771556672263804697306763412343415168985753641827101733568820568670849832146642088086095858180259237966443932818564093956976258052983140949098719347594185635338554912509476769148214211244931398363534095308180876097163532048741595672737288399313902710230210536383250024000353273786088049453387905705800678559580014322892705476754879175104837665876539833988520647404231531951652107833483956133585923987650347446174317799622318304081651856938828473917066062299930358181530540752490944867315456972210782804810472994603572243734549523699144184713024458211900911380478575668305339038372417413454479283558840792303501098773315525890300235251158439789379211931271100304202800072189672915367657572630783417566487076649338898682852916165367823966428940053157679623605204808924547832993390559627791620952949855895768588564403762774168448236101490705900716973327022247528999352583221314356639373737085402898366782543150448589396558925847186830514555619107835887732467592655893454882188276231738523067771410342237616150221404195576935036323925622945661506874147649366970004468017986415515818831734624550972726301579398200212625969198175904852197061150723366197863632079339985447070020457144477989598978773020089421622953025765332637509784798546427902410814431403677529277747154630870385001122080516049728921956868269733020599494344339006169046588384261188088411991547982327327580485456684772725308183661895105486614022247154658406285839029197660049059845071914579346677620190275625641427644479361644953111468524862414588086091070536432447633085294371161918567548232194541027072002459511417933397055738040581600218648630405960197167762353507667657796982120167852432631150461941131949323669503818994377817441952946601346617676976305487815294487757421663445063393351867027846914353026305999855445615067441889320497506276726221260622225156157618122540676969342167174912350308976484357756461952020803559200102101008143081704359919232613287686507409519144761356769173515048495693315576123610413393446114937890684739967777846309474771235183680068168280851875574094661651427275106191198841569133523948156655565192700489434507778235421243583705062235977268963330639691898756225112264084106938730973069627285246690871716529848465768574059974850725728462018664358982175085341769002346459652320964162559148816630668503361407176962308951839120901643318564944070413273566437619959896940173857556584088258315000255992331755858582658688428710798614715100723122191873351140107070023098406727171862908046119090809917038440441125673078499552645450367738484483906171481169634720515670221080431528415251962250185261855341600308410561929422421415303976687244592364641788470793143346587017634611302122909044318227842754998757229695123707782526880061721616587659526962369407290239871986352775999623737822312520430431698610094260978233784549207999018408184484572455115075752931597542525683394209781943701287360595240538876955546324750754702731838700944260489501133763056195077928008707608571258442233597481438417775591738786919360942953500781529403611120613500086177106353074593462416249332388536766869199140121820835881108510613808861273106519368456656587066942071307705860256243793111668891719436714170270394794661281846518118124798494998584593086848282640797263178110045077085538007019810841720955630314353885183335138861792392355610868550174706822447803538331154484134139540139661490208973179829895905045366476905958928357687411056229802268637371819863166999126507210262241543706983882666732325685355085146595892264672952374010296947317205988306716726811260671397734612174478427859223547500060289613537133753653971358697382117594437021622352835519373839077998664954893484533023145276220436401728439764615152916298301224248441987199820361695773072619599457881745506526471501061334308744741382922672829139080535765294467421633042529098173411523306225116482371882956543592955864570909523023205960736389548766383319297150393931688675087599435719071434163866749088323417894634235116180884983082249968033404856104689283066451627641679623424538365767870323781111502102695051821104575086965317914204206662960393436441752887222774309628655813479115584309342484747207548860034841086331743874116177656199936528278592211745214964462049083422799398460952205913086989452296146893535176700346137353230291439050912516505402399774798936010713821664376647763752623870934485852635194396473433732399657130962013404717369675359559134808213576906966083699671870189033804787823587566657766135815561572849534599394897678216620394389917375861184365738566648182423600712235506060667280317318423916370715326695189585553749090231943131198657998142753129757174097546454077906067109995589274498414020398258536242113360190713177609247434622242507906306730527995965595203653364673639863665269320903833711934343159153096713669105227248727997476169139869879262410668210558310977324259567092756080718500935460200302925960925131924500905753156064090868578440799482134398986664474656115386076978675324981461973088115562331771477050672911389433843131509616907118715387355668396000489409777833891465472122842275793443073664721254538448606677318221993771020857615669087352030832277743411320210331255859396588467924563564735320873794619539441649737844841965512972391234426693932499097645872360757786230159341171709013883474445789207014590138059329121123100141232223689583929661751729746170359472771468800693837990145596769398541154319589767210045726887959403807842448691248824314643510585438717652657762680774758527713866597015410833563273430342956755397199161046762828930607675424827759580557691109013971792663907891344444764730415166878738611010927782602446439955765424564046372438444275344496082308270146624794979492516608377710287855310478443603121804874595426357498390349072441388541801030519597059527246192322683773247556668210637769191986869189768631766101947677616018095800196928603632575456211749464180973977585169547494357848351996824314710833838613436734638187394038189276122587481971458395600191467947665405829583486343978808831904075328500618451506227269512340132138112100281048376747783305165929539645137971246436525399257524328978777582849566941694046622071495563676108025691885306591038570853993775006448109724815075826505733657447444507034334006710929623207624425137714559330047821883529321394883096274463731405622497963416453024854069344486649864138563441179644433538527789987277318489552288034801189141341107265492633891586696499998084893165366410872105125205252679052310120696198948280422376737144461173667043758862720885058372365716783712058186590478730552870302070297583161571750435216368834098980136821056346693918506511866343240851159140923991437216192302626367971599215958618383607587447735526406897468544795177190407337125916915966635427193210913200328275076809531595854936155647235140088014278984869560343691683476771959285441842218562704716887949014909115304740592551553928277959712920955254863294167070615283707481010210249391986740531954703736945419550681682039843644054408623440851873669292821014607294140735920213256405215637061319965497386718628223294595650746183061655244259865327607879863048156315643897024353765622123724770138929058226958332645815503626809142221491430597177811774933264769379632905846226855294144146457247283186347934644892477584864903807107481089038091272010073232223070331026639813330103522271236934871570758368477348103491974742690898133854388123015428766883604459930395709781046658068603770230240370274170709154243575670867825289173327926577381197464961824129579051823652579109310189729153256052429790461525811645449023688080241990159952209558916889037774045462187616694530544327630185793980524525443958186720545882800995903263494036233594908521176274229926515727891553506685292189745468194463061867207123504107892911079103551824819821226549613585836391177411788009935379906770185326432208625620343442058557800428159783861208847680356335018088027876515896315572863157839313469055797847128020580770357854477837178602387927892964389886215682055118930578589703604757591785921288658325050889893917033556841660459660199060443776635612467426177544448162989888800343230046824381306704810966268509213265098349781604264990172943894274173739018598953064884270305770214574651094516831233842869864291373390366606579838384042143865156797867491428389263358416391380047088231580783541353496513515195412814588668161632160240921440193466921866839873687066704714563904598412541798848886908710355757791496297223577199922347918064450534473942785565910160075738681020137439927378939147613674748614671121895708915145261562893369177904606506067334370809489619940141158499478890854607890245316240627749351064707001345038752182482983092318505649829560563711330412299573309366131296866360424076081571209353877097398161805822607615234421103873201905216688479697973892690625237475786645451752509122250095548014793408064602174939923069342849250740925917960824009031713768073250365908810504752216455079115373451370277803558316655073896478096506587009433105779182763482039520206163719265918317702022365332429695470533820217464807727919800442415653314556923295466475740105474114251531122041936030427557966935426349606109069992396626014985696656058777808067677111395304791472848643564235842742952035243965603123503303539319256405827683347643165486740017340695266660336283584843949968447743105048113412478863437618001364562555759346498833595031735209518987751581730243337320032507885170519704220488425116519963815306219392321873093522048429449770627681007448815310761207076448906528421288145848920358029247913465711352203416888882655947378360301636996293815635387492784376856880072694957639135920447005011236962125769842886138795825973630887347790044086829086067111233970677942222937079117236719827592276776362729351423808697291157487195067553583145356821752544808695008722367257806160169422191093907805694464610559377572081176913399419893911955970359969689178116585755113648719822575420129098193402065268242430011307859661782566070714434475260492338846687943148104573493333871527630803102511454588162266965160993474174050386251581594785335826018419721340833695777500341287877722416743061235428293379029702126085111565050974596536397886183633006481840878435311543150403311028114506116077676174966867763568742275332712334999771191104509475229359068048551833744838049090150341374698363070641565014062391574182629082058484439335810776224011499003580352120545694693274972503014312919853324734962809670930757685265568069473990239543419060139321037599528749649339812449076062485985557139457780988709752920687010913313578621095434504008340770193933659667846879864185293532391332741142573066882418258067932623656611091948608289185531353018996768479511188726640285858092616589587538283029327398690314572993240271627391845916950094757764744728558256586196117577731073560753077966856714662193618560460762734374443316094660855020135568547955783240201924851499718590390526515382125512814006887409583067311111944092614399484765973848454687937736183923686391231330828878904420549450998912502891758875832640971091133379654372099553262254520988306859745336418511329902693790256760107502719874160473726164735952297747729389241481136059250059572750667489158798919885987023725453321230041277138019312279398436044532685102899142923802139375537879743842825031138100437857713897305521001994041844083327444939614894107723698034210471340954974644142342408151738822589996481019154323921118970222050659387842434372640153666190807815114751622801498412522566719506389171517497361383690090084186989661176990196166688517228855729628019112178439312147716067889122018273773256006949701064730639822501167915443676110478691834180786006757238744345270849201285123045057425571608771055578988203837580520652253895831023473046380144685548145756022460088490635568972832743819454351240297747485545507798269319196774721259764246549584230280567297177544858978007572857206122902173652495981580988262111377232062992606153286660123263746255529653852759929585171598391628473038070462740337092751449401665791791471970510898999798788082172579246335709976936357224979994370501136043923799676585501172371236375949894837075874771483650300762515534202117863843807323476850947798839650555776139233266462276210121721496509599788377510839885755565742413119311890714660135870691256005137381928319554715184714803984353825223230657922966081543291243132139806899841996741411463395856393846466799692717996143193479807316058583262563213493098551081762180799563901913366037633664858941956644251979457976871662578448934182639639153946973373090351813561654946755209517268920194996133955957279714923464479743798121681655093596351078971693022268033289289384465279528565334507543416850399035931229842327478356930525489529217106319586871827106640208488084765879030709450994282426340146791258196648882814574914450847222007444525908790886655257732637032017598446398243082206698184722174504369480708641478227521226186041407900927497662642824514427205294320851517024146198913976093535724906802861490343598334009940204169862604237116991043945553112112755928657574818395951344377719796005022928705323101347031237645292374142741703741783662615042127721407389028259683790283826491825183407742219437953101529027203776490080505673724702639943974669283934967256909378945950493529556100922487707189109520025326869242742041021631092455537311844134932507641280437170646829938524340884398862076548270791718732773379558830599030635485427201435977395410408224918343879051493158567603296753850134591286895988241567160554029450272597582635463310965135807423816066624957937172783389101603629955649280314689352921508610746625980755996350247184309387564197523398797196893155358703071403054300529446789643192282093328706573231713940806725870915558400010230355970221317375059108535429724303146205271677860289510983704540985662085012224794926702404064088988145651529827985852096014323599923340243621173596527795911068932013812722376452078077170179681410439250603047676684130197474091775615455587959631374617675360487890652330766585404629177413820512092338070842613090750094299832087720891828702393437542344709931225897672517115444809288950024390343403319653739273299877233389246572202142683380954888060450105891325386936945507601199328382071666701765275204777537888557611159404736599041381029413333877902187895593750460509377594089024087701058488447828464040640274970215038367623872208459650972913153163404151432677841796018449057507526779641727560210315411211768645238356043037768894948449719541402298793554849970254352484994800460663811147232228527334960044484417400725715821160722235272154206593360985331180949402826242873281903019151310381447614930347885743502778629429586341277938549991128538434225502298285624407678455753634375893216022530412070331869251660304314365998586338596173298058365470970857535026725954215326768527004530952076451102316558799769707774596445607471413600085912184438074601351179092398237695163588490880304533947692339474446958681559957476427367528807676873683008414013401101483644341443825828260022524238921875429629167866092045257180272563396797168889171154890191434141865507867550445918713737652316498109532083033977286001389359271715651236721449585211525083084380195249850457619425421682839199701653502861159816916398520521178439329834045572325832127943429827918600150018190735209295377112144537982591825752953314301122831003342318464744950320994378917248928274351621545378811611349197844760222206333102979010952719708530377628529780868089741105317981447196241531114341217670745267429488331604899989727850620600190436334762727938579973718611729466042288779873351477985748916314959293903702597702103293715887474649207460727518310920625798408957124051041635452820956236894023359746274507936599139938636967963515719464040213049383061503400552611128993452006198293580511657886685710755767494231738642083108464004150445108891959979173746113858971052536785193565411913163531258523716973283222562389040415771338890427547732722350138332078286330148805401082130947717357017169553990394122738536438930329331717526191317926920406108571066792648732303937551440784015507699770238561833912889194949610116778830282121690706511657249228560068704168900097113184800102815611634135281615638367315468398024638489056435886419269965095145135965742212042669313319561313167396405253606003859487110545638387008724062806770910151814892949140563106451947510139871865255692451757708930696457814845708084528949422495424434511800180746047909932439219380982903309509208251100752363505629748716613980043240324925564610611744574062403803089596281673756331465257452524757993820036407293923271821872325319174392793894063897378257744419721055384798943362998181445393146485022947129885834755160172300546894492806175143443040850484738742576885614125639637913481728230521821947186715515551082194072766241223935719667202109195912529372797244607536214407645713109691395527284748185755358058278654632743334796469034964257901803035952703928990770420189152568819243583399281572090754222741044226879832886120033891286250157808421916613828445795525201310751738235239564789773385021330892913079383338359041043300046133592392515105630703262473641189581360320396337455056432126133977083359651493588615401930377745580970742735339775586875802746481978524158093002383466417063835861996641393313318691501579916181668636907967742209081085143215729559862385177270853742230374366748471926423506942590363354449684653687206186588733317097367993078871356872146812705306763615023212085198723308999672729062662322882581494684836647928156459772558710918557262902774027474287161810654219029707194974660315064825956990356747626396049760894814059548823457313712481553999099332569808238153055480405494349746039683241965637169504000603689940867347117198546735326893190111143734217405821323119917276070610377453561111532013133227788895704276433114978830037032656955983575907582488957752767749585185414404398059011462379268451029371502129247873139988531033815602533005803472923547775710590970899190866272401402252010116780032535072910837412803000798999494379184480845363259488596554872779713174326937888705384713432414621742398881160085525609679129988763926027090090151486650831254551635135001480163838251642717471309553515187972872836405770024446870720967884603380924730236591208109696834214377458839542567175185519523603587668867804104311707627861789187492243638023518113541386807863938661897056050622930884760879798210046315256625412239501811615031192663752333513575683490909981508440595289904604225997462288743185884232162374411838799531034308603721061082073074696915159476888622125025682122090193936322637204642704773366355926780174619752305813436373366695075990358464042781304018623483146696470358514224950020071591153617787978530603341223601707151295538324460119883767662583430087184360822235623929358940693302045985300782154446530741721305619067020313445314984074661833962318636066539303459190041315828952121099679286514104731947314127890984878585639628467970069156510078111688062505068588666560863158469239203959207830079217064641984169469911945374875871241909756577040961848778924205946410854085224092174460418818975041464447637881959190342348512435609875331997967489386575027546342715055875942841069788483167024887509570646712902955814916434093383524652995287506640810495185337632396239070966918225997804603493430423015874113683789456482072979522209482909652745282625263107968812654481279959086098141704860409092773293244346313908814896653568911847456951485293186299578063218124003881641648769900342449185053288132133993161311843625399259185355847814231689985505036745224200411652506999279106830589467852689654289812394520633957886917966020778724930852174267440638604958918126818937302787276040521688319511333014916388291477730277505360991854236179884092370031896724910687422748464302723651623512835605632488245291136452030748780934710000379229225707725217935921549258470746979663798197629477713070738312122620790242824697179398056099769425053830388645210708380112701554130550928120471288417530052991886822161105312795592240855265786482625194200526540968578948733333680673813488741258856351083982128911758219010906065113736691412857873514213179470454395585995127305482364662495645994055485737741241043365115779837705290794667191799880022893105521894020010512863448753967877427060635696428540667296211343313150265579977205602457732703027731241423375186865810910406683886442992946967928234772237611351253642565345800792861622153855917682329435208994211478468256102239194766379071107220740157853470574958409262837921524972297997257952689759616185756534044486579552089531198373709862682005452104212247985176389770096832148232394503136625324719677279513593681570251876253600678341634437872866450925607021650164603599403216494111923471474678813706296266870205599469284863818413111613469654368284579571438134424960806468097613367633346974767799218999440460926748945939783339005735205788053353506610549685098644931348012950397027090560605158528018031877219681404616906371878592571439120789457743251697532695265631938163750544115821246206443915051698083682664692744581154610377391098624843221295306080443017005974640859359528762472535149169280725343769708686422890464206070129096679219730676734660098060389426183292532083676628878158445136168071865332142144263222231982409038747256078468655462177828897329923638244821003079850554658010072434137394158422714896139913834708214499288913266539001649903137734456425983113626775536021034643609484689048268726946330312209349009615140975348518622309926638188045269160066665164846048470550740741145668231982103876010056450155366586904020559965538773356235901293784859060116496651005855642683598686436350379332318859025796686513928428988946203350809911745581867394666220018664698320979366179152163279641616675196920187461390177666304806421115739016591531766729061227784518854013921389431615015443237164696978239141213931996866770389420372917316932222957663565213542173635808816858860339048459182263270012035936851049730625626211162426223638515847954295538094712189914721092355891405121964865446595166354801758208492825963180749370661516336329191938469849223781486849128818774891081434684482575488978190976915028203619867503205710874094964131463989728486298849925856996697878721104923480579236925859340586178692410675075929290656240793423267592939699019106099418079326410593874863460007364096603959763806296470548578492502191213491551749717914298001178677020225662700759318627925026075332934004421471888206970780172390712134762483745745458671172032726971817023460626608787393264548522147950892220081565765242829001073658308086645516840725408282609449789273746531065122504915298797648528384117243324466658524784724316043670218592492668788216570660699233665824861857541112193434714752587999125028941862047174184889929026743056532862976710111665389090233682844447323857588748400304979885288679062703629895993656490394895555266778043214142181831796510815164792349620058133307637359242514170873009065315445704096505168915875423904589551624454964930387605095358420986250072749291915162413744191503480525092968916931373995589016067649279091684913209710233581859043721231911681704163919222846493346721786925701040478519908429059016231539272308678935309717848439659292276076889893237225818825076876273461841004302319220385688115275353694444212577261526504363874110282349584089679077875933642328840797587155106486453448813113801728259624599302225542162447738148359254182999808590872751592463388290010063384144226621756731093275991546626120571127066687847329138082772815098114732396465059118050681438522295746185017564311807114797078255477269182362885434424653533417860186105292093297341035808908643957545246388210197450003773897319227561865798039003542983451616597781518782518916639696642461846797546990421233607135624881031913560356630361613255754571849205355659158912589926903546980212963716261472434716637138898060881323779415019776713212309192737291132770031414272496278995990906441436056319540498858930115766583418673153796687912488785711266601235882010792497369583165275028635631453868495089332867646058179610201060497943393500492697975723016252654484168838360468924509046449845926955256111374905875900647930082585069458565187277866625662596570058509177192240944597515715968025368486993658979500284694705136568605825422099275568526773875568525930236615019750933483866880497902546881843260087762642933685585063349944175201309434651182790418979664103889987339534432933165352248445521771527083435621651675998810766680861265784548278257354656507343316377898681604968283027869245295208268734978550326077459714795910711926765376179273237159761588337708903845596564277898612881806850371774026599818816712635508570307111911275143276825901473068344082058263906058782125928835701960212953403425194044469744361769706984721859567786093991842486104970670241866109111398857667774262416470393658938097478958336342491971352813741944064566635036928002554426031458023060095134444780714530147296967386041965707002198838673754359337684821226586215626497052423760735645351965416138342120785758926086231995830182355238498242242374177218046461778650743226505796538761788629990453404298255443697335063672180991777919473760009553169447672843308992062840124310574164857942795749084978226132306553442009338694632481580684552648731513985337961918623095084909692323887469452349818062375664933274134890483893671987324578032361866682978183590602216225182840986185057261706488355529532870345149209925158587203305973881503315444144845568244305373631124861068779515824326206382782302314819302734907210655493118988740645737314118752058027177908398178211132699007002252897807560731486276921542462165946664177117634904767385507436244263690004545152238583763348194633919084014003611186489727381668926144000463648907576655638086358960225361803045782426709807201918085125830506602054427597339791311361458993896182618328249233953754409695973432425942688253889790943581160664256801041602370533565666388564991469144607972338191093470338584410151559532410277148776132146502860017181151593460431576992296318742688964127964839283029624367857664056203305356773507782287426661862930122052680252435549181399636356949452268477077700037329899011124746559749395447411914571719463366334028838009670695194450700058896788376087801574900827801000427753537519774365953665696525044638038265523520485164766269808041806737229147443836190998421781134850945831650898858757110689875545968400640245556477447637851581067686669543625811659202068504383630271852236316709892652300404332208998334659237491323894676427488293824299931226017673440890090609309954464990886608583149950020684954532998452532363172958515450454490049933185876388925947864983223743113694328095618552552089018484807393393342771997962959272231042353361148371025362230404891392459112205067150148786139351093691868678352400205673560994112908501112836376163302356557515554882324906347012213651228642732968154061694673248024463066817270224439106936821482268548934705544712278150700590893993139076645791333535870691764414911581298603758127138436367426790830249962058330808553750708355910935121152178547712253432175342288567421694450742430304026043816436011290439210951646656439256101250374429789072110585656384150459752528758022455356687690112569882494656615597438360199340147491007381294206057831175951614983195686358246589663740529827119760624280582982179252122479508408519156810937489995287366112650497356063277210829706040198430124179016973703878571330514906752780342301191817576888733505549587383555946456810653289438902686889655355383580536345358350572085810660391985914178176524316158819361899124461259801152821545560566885965870134439361173004258279936634194275425112634290410582000181622842250949496869495704011002577314068375352778711821330555301856296072849033146663476456968381809963719095759297951334608437762716645830147437751895735558777680025370196700605440860756291935040898509824060177776356493287918545937114254812215731748010789312668453038127401058443591641452548329444781987565869386488985273983906440525164372722962075422947477849336304049658009390679730705797999395225609834225926273654266651351835775849583154211266460414997762822210201098505520391106492266269303462436944480919447229031159886069117419509965333005823106696758805894099207619672462856922793916355942496816114991005936589504409531945179521845514160645259490471917176041349435927955379770705069432872789326266915384754334193550303641067752898572699065406038520684272222432241800316957504766199774395218401749798865112349413707695256344177089652033163345559272787553151782863442690981730674357807271185249851989531567949004855962792228560812284642147438324363359703995498552081385272619552446962231235977403608466064102118399418379906372939378030086606623478103527537120491812109800404130122763546519241164093756846356311524447332600004920246648663117270510696373367861562604715810694437639388012180921260585776253828810231908376979703557829983802284233682618312117816918347157689079525811123754284440903629039190827868846649204590409334517351434386020505828563453340411955777912527530353839173729741326723116789214560174351825548374151038429998230909559983820349571210090752861194709855731983902391668004970508666927699856469524851170241966449409416000205329869553736416210985536589599660070468703110989752022028549231929060492174022936935640803500721124910081164822733508970320857120135550084692050082431620131342034240250990557554048747983719319244136116599197532131078497351460020672172658134949070368779489958858312751780890459961921757172910452572430890822970716001488157337690672011576554007475902609588420659862104868246101950352088500111494803070493089153120774556732447205996157606414816601458570649883109573391252078258683465103468990158023904686768631153827379779199177673879224807668534626716223692578596847741236175027123614548124363934888030363585135851196727308039890692313103184002769679840554562383310670036334118667465354456115580691994676555138893388006702620925756762083675989678813387748417804519495013167837009821245741143701533828576673880155606760159351983576304692196812970203395944837373897352815602744053502258232057406959970106602530330760269353314785222864069164823875455799985815113477495072408417756696361338250800671955107090781127032250486999701721071501819423061476694394322772111844264840293848103800281920499471618867402706808866409952970548349856236937771282772734678724186114950728684774773215770859913444379247035753478908103917134251207660187274479967146049782624850756047471236270322114100853079897900882235730633063538953019880976538286166649357550904188879025002476330826377594008566469642393811520287663229829261512680975097694787271402624790869451051734917716923068333044843295638842758562089043310853965271139145034305585207922043275250989492640203210888841619404827400791815340150654682413615972044947039491646086928763511893827042643052363648902759229688199150024212926624078397872570215669165629689643156147082137682402204194160463653872405978314134013188706695385743917593255756424152157330519636631244480978383222655071356732467372820736038072595091376620129481785601315537507753024911118711627163254341159472130247940744665010779263080585063365803794425415923132276245014539752711910958238677754795826784027388669481382322549952700360017111134646091094017497851080442656505974738416035758127280154893090722895715813198598824297427307770022077780275333990803757464500193297543786906946208864054745170755004069391852736463160495670800906484736952535744779546131864045253868850805569048496704975605116362687828214654047143874578446628915836451480498677282344052539629641971991004543559178088775202018378472305278838809091922357737812486594444178397505327512036207347749697836454702053765808976056673419224595404300273636085365780541796798475177612164987838078337062248787037264925094744314061060820681622226343531524674485645928726746625843760231001929764243890811665825350766991954779153234359251691113107080732728884719094896864352669895925417111117535728329234847987510239236831221043143371971291477489639924134698281601925312769374929786618927288068316798916121615083455862572716637307040841014999505877602513575985473288720915113946756332001560964844241722967466079401380669981952226715826380751468726221377030773125594337843009128671606815694639749406066076280744289809945499525915361130763649167204337177161499240719429097509825962369815787100614894312729371105032836303394787652732335513993147206171437968121271879136629229613663419974987630324855805555824027632762935817442643942273810136547723984569895363789358826881643829523154373195890060342902165821762938891556336804203580494356615625796056431426102540010951036124785452992454363785419870992335188955672919622121966421507814027335330481743434092319843896917345486415225539076309386027060511626222635255625220550715357918293946376860091962273219679321790592948467160016370511184903326506156139628371971141325343052936839004943721679680718934398749424741811051571437973202179433393770967378125933655233225470480003752431505666684316599544094118273465424776398091486907283682497277453657315991044413472781355560105696459049782285713646397410332058841958993865877505131357249652268552849842125684550793489542291326021767757381569928995789995284326477114924712291646299486842183849997367810582715154535385834880939637716243374926532692532626766221187962988603751342639204349846224030763276061381063513280872265630329537301140175687990894654516243365537364807191076415931710919473117399086229349104868313809705899629738568224779781717633489138669940998935368605926779481431996224546420836207959251977579204964767283548992836811800136992948291441928916772968916942756626851011618238943268176184114134688576393791186137940285862320930000453412387576761111290605550760732896495062235219801462272008405209640422689850006701460214319709505735603278203796572404023640573657046134372245872470788198322411102102910870619865600203002798446572813325835390651672625115065469636432576212432225716018352600787571848551494111392100810530810283498947367327655265052743327591762311559347454526634604517469697363885770391950582389893504488970137728494956640762059583208569763845778842435171590707904027309991582590421668480074203723986374165627909666223702206333929282231424653137034772997524961102120181018075604028221634116174585785803799306527475371893434408005305518712150482442503019663529317580158576139027053005912531944312176483606806436307909222882565693628382231354631503972529963637433870378508697403645477136561508835001689691090861035738251359194838620340839733423629348658496789794940035612077713831932192189976427388993024167077603789847029249992398545053186751524027018684685466458818875341419017836971484872047932688997488389048344715235332370016629084793424010017396841881649486741888685102814257035493186169118452894957293096479735154672858119327579652064531682077580354180350752686229276972667803854418357558108594756327971911266291187249955272066032035446489888399902716182644493329657311879051528202215344229215699531393943638761024849266567984170393804410274035011064104073544300468699855223183954351003765606815353528349385198853921162994796523630068677669977954384262818687260752999179107074321497243991513313582689278556271219181079243000095467678447043181952361630881652914884145185484675162786170067167251151645483493286805153992677948482438732260280925487822385209718575241987961199283677531836260834502616943981831476128373916430348257251620505144708735750099270503086215652957785857845635452330751990493920289199686919951993354667132663276307107657253926159919264982366425325627424904367089212844223148482522394259138380712202975597527046256922936018396973299242033972369618944466675725170271914970828982847757751817722037788692255331762160829688190804613123597279766701393963754990178269509008273813095291923031838158864568917743492314579368324025956210009293825646475144796810862089443166445614595495857178071318524252175183300713693082174273084946247511296852398231562565477101451845809708465672907720158818470644399330140948416537713326095644932416223125402185496141936988612624766603622205021612818799809381614219043490727805358041351002488302363404825590193565470748898336645159433120542363308883404158212136496977313776535658921853490616674511075398944079768145756247930499805837648956352319870147502962929369321504232687325671796597728836608677779312094456560499058227377453363565478217109996327312341711176632045657961192857010220044810419457307018450918735513566499752851781214730181571490064004958495240562388606257560529733140298685543397867145092493594089933965138856906051297011995540338887063623254176991379973529852845480185096848349377890740720088173489700205567225535349116743120604224818064089708377488323132075214957286926409968804548593980120189287744902832567286313598529557059966729686012410090304175969833066481964942331019791083158741291474187596317516327355599700971120578260468802198035258631752840175287667654263440069917482748069880953577883289957344511795304874365967963930442156126599952514708425254564658093492265607918029988713459374828160005886175043939693828554354512710846546374900662407372944027928127175935301109245088487252551657080460715126091280357967370824027302668962318990709046449359514864692822019050713777428793653447987673764465492657997340496659389625312587819784472285584630719372325463361620765609798376106357762029093529798655725123836478747737500434749644093871514430303432489663058719581113496476072980206562580201824636473669935672748686275628181493946622002206913391788409812724299534870395427358778769885582997024616446225015275769808844767911000696099384028570702814328418316692510678227563717790166940138960757193771792316610889185557340167184053477309018740890691852922368424943824592737557816978620815843430262290459429086685015294712389067960154239930671919986556267366376678099267745739736206410862222071820642130286117798262682151965750935500060756742601162882210845155246977013676249753861831004243581017827423020465542226593615484242492599392999412260887891414821303138548606682200541174196615414650078943459698874935131748563748635974919326897731805318239618315968077604845473824806622112312982960217454617571576898652393610085044374139065735062069397207704452038229835351576587557584254225090942325410601015648590138527812542872057770700220698251549073329614006630782578598891234120061722688512089626469849801384224061380251497460694364169086587563477381388183268861010165865281774464173620152406436262240594665255452261382287183003970643288327079027272545093875880193160416401976625406585667634560024523401072366216272003354218022230871929662368059444794674699759008722765361657013219448612194700932216760833346123736957143591509460728200961330874021756848098706690876362645614255919402361038748460008937384509472438343315450638337619734195127859339721139493611075337805446547951809871968635250933244447927228412669913272869277908014399239806481826832771706500628417138213850097527605639210267812071144616101966708419129360287313727317363110547509440126336428402235478966606099452813360164797983302045665773792051384114772803123772433881520928194506304310653862572744032104325977720753628565190785135716701069216364503256942983613554728727716027329067043701333112080520750039068505088981465461180801343968442349478548571326397029668799368723387154262076077347862988827371750711234003899865107188496584992746904693110345068505822234698175959741435886085262089800499907502859544848694720266396092797914793559865926947033943516737365603224021963885409931064355950653589303346412881515800486872694533628628160232550749197264865333290777128876665644939474033186897648161649978251199522939053581051074502637476066674365896681749639399976425178272973113112108597082006641077259435591302450008952864006333220114161212075419795584122881233899726705002197214541759946757336482918629790582629937993969945105329392847589860084838530197289157426431707418082956162341428655235377647862728148130364296980629615970421546403170312387889941667180698587568529077164565857134021662221999472800665034595628955473649208325201075378802305629240534276734259464428946725015158489276149732717349188436481031305160384997326179478846818096676997896594148748602955076384418395924744738379876257782030529567117740125297252174505148259788386014659601013399519270760808330505820510514780537262344229612640954734907431847224056924582590580601805438746560027662433958838928960496344828069964484103821310753831336287612927933324948369760040699872784022386740030863483257666371843147335389221248035125500622281384996327670689162470552836947202416421450266946556767657320178476002802885125922262719033467189362333986154176617463821398349562589639551070528991874188440006637292216027669007921829877053404373409039742195100859769910074529115380400714579823906944552244722090871468084139961304716595343889499796651218023977263615289038388797322805000903769080683930229897732506726441433474583610815988755313080615883476053214543737580751736045339919549103437517874638024891051808952437878677611705843263840947211006546393329472804707816223194857595113956071539008894679062237550313906857671033657252919554743018588938513673017268333223143292608034746345155156833041384800225706361565431946080706488059310356219582062187320019451555207804863158848721938185605532272344633329997960382023960316082307021404264200792902917704016825805262363171842031404041461127777706770207069101447532644107426756911123992280471180095789822735435403490772382156142363160181035798643340206462105398837955215518982394405277583867179894475103503006191730700868015611932093538393207862738246196379178991371122953432920022100185463332523684118371765255606183832523435273275747792495737582633817529307756871439234621750713768245198537796522802038546164139738824729856527541485195624951157803529800467987650694227349301124858245579338555050419145666761510091861721494757303892359412376470804600036534111002153515787359563761145172762362777783997851597805437892007817850173274328120803538204108319813605784752302893573867751865088305588286452288419553914820592508231830095925363945666646637612558519730656420237010181848612382914075300146842828170230113687491093652396333216687646095203695209147101693893713857986052390128337600082100010879914536430085671073213702607642745290890559635717769597896472113891753048532000156920951975411104159056867410485204512703667160077702473617969185882346085731825296303148843734322298727427405998588549306486655101895226884937193862127711773907136536036715886835054864265725554020809293157403847077425683592136951173445985482633467270531146312494870340237453939151001408380710810134516132075184639579946616595372134263958658841410644526159526936747211711413495811253334253016498108169096174053156458704407409570528021805769960663897811088560533661155368052916297482790932450107281401125691188469828290970971718114322144451870332124586858293497061336641616914898908959301705267398060817822757531618357076466615006613116500305634971419493063380843508403325929120339445720087779841950727941442505069100300499481034757149943668460666685598615168869742911118935974365256826118137624648173588623821293380555653028177958268288317611764034097096203553922826388579050269487858591332663906830266068851017387659807447986130326579935473537500258273896601947396345396619545110624589143786975110984603579267399504739217829081538200912595946967224571468572667698739271305269008627829729620296822363321474871645901745658959267192613160312123466506471421911172566547673830545989361355922572134644062827484295236630450464301836209240820806045876344645453631076994168284912686219709703801146755527693842472821368717675457713703507985353278733467748863872099936395681906863061291542414874913953112587666748821088046915685680885843316031348928462598237685787000027558954841930966276188610219566415924807979721153016917751818676769705972517295219376783419890714037366910682894672626094934329872107256064082953754713481401057082284326366176678447972976032406941002836514781615879717828939511602866470792088524572542145594700637666780497930968575742487087100304568174222726526881907976171299135298417189928578430977719254564551284741635758149209279576052208438308411509656990033554835819221894594720577243525781668435161499822949646151771473732530128423921737837875344394301816880896749852503006564566889043661957160184876839823684617036382560691965551915260976641639439213703509397823276414971092387492237687454109216570118449860064200318826439438065333540496397149060609481867754163133902416267292623794952628101535281143440307953143546339850561596661325589238125373601406734374606511208000133145040459585429537464375422961229642518765364455034763581809712305684391209552200084784066176364963608577903710417066665848300646579187712813433370524232358825155843957711313073338866250342531862016120908296281329518070393928071441180272059206136678243883293126509363604769099869673138780742481486812831399367978148849936519301180638891252767140426737428834078036490856329587791363639142297405704674150677439578800277602846829233303734554691542325560011294049031906165158963790179470981010155342243293641702086838757843970209051055173574763466808896960197052494112327618505065179780002115832265308215182131354539189584423818289748784851957580490230041388774646076964838020099586932339605757313347890452362498695257092222590113707106651825945107267554270357801196255432725279286786258744654284013604588370926512795119026022356678655423595714475939059568871738946583939098678884780513852168036260284168422233186085405263043652047508200806817588758159387247693372370979730617064593198465785373510131224611755660399405103356418404180867546137731742180125290378890157373271579299777316625457728994119144217579149141203220953801530271496987579310469232984925833612613046110568043156267969634694284089816931714498582332682244614315246555845255740234643501615340012228010007628294434320911021574952436070244042190685099393857233712995198971970548432902760289707645586190982380966090942989428302539195039434069716132505043447073480067932798886478156266324057951042512837366702902016442753532084748616315671356155037506592114828884095039985264350063010215226527251030007555907083714938907229673749123992728838295375658953288066403031779016418480227794683843341961126309026121984764348237699850202426643260148841094777627400837289163349723988986329427309843719695845721648201871770775612760005932344174331965750600673108597044436484193647116219897737032779834095673267447800104458633849495931387057124575964073048868026183659808421620587269670382628696355108265338854856472461475364361296237175481373263194091792008816005683841304284824241430138267589568145338163123430494635444328306660340852105621257226678924997093207602114024269637088909094841693121684252925831630854190100840587103245144387934155916731560909335834340637245650093630223602007561930138218904226254246529931009579784413946031228361369188750018037938817054912251629076445801736957768597084366130445515583723191552681565273679301734273927359547413382814868838544081207088344416610705658382839952767851065857725002928414722182702421119583026399084914828538770663833405453866773296208130820569906550153938247344089562217542891143939055717204039713644723278488052191887276977825089436498898693865295836591107369430208616460497488847931748446381437805239180214832573783060850740663242072433049178126090141693549402016464418025796559734432773505379253867292724193535467826355491293872823797347416270506905587812017939963126770841324815640846885061966926008930146000596232171159067142244786983430464805898972408155920992415012961805300236806186365331969446652793325614495910343368862330638065911613825404997715406509078113738274770261368807716342262441783524995725996322570689368474856399603831922272240110300443317715903328744218359086922004075157328244116965400431705682952046326197164323477000867685608956111252187964247152401245074950757979348658225833598921094462454238345671685761370536969637984318029150283504921969360577244766424023334702635208818831615923043323254736097791288867242334625535207222499758038255663413212022819288297154615640572369044530710324413665401039808440659479844624188919931108610237417092982789857089868351394027472364653800882820431451869900495594350473199871373457695047231382811920540738679088916327088028544059401451746941456918249329183679690256155587148562261079750295374407852346395177381822089293344691229809733316355703866007916440871103578657100866363016477623126292598241629961230040271659823537213962358256837353524344889572583783588038515789730921095968428841591711656561486453690467906988862948825108593409822716875497170815536951169535096516615288382417916358460639519451722412003619249892561130548733198261918140480254398624075410907335179244195076842062458721980091445567820450972664749921951124513861974731781979832060410023354770867091968976900168992275598011078198937868583397524719527702404913022077974929341317049221502895574379096072860690179703153181128089079450004376936552179878112530687953983578069137423529079035129145866825415585532680542010685554515282447322551862033099633452597814949142310485064575465937445938071517841027533412962822914984485643425243972670756368093102948593614099327841941753389391267341208284996311506812553182530254552266842523432458122039345477286320116092918523804373741448726453244399656933788501187793654440735377002686165642139189624426042344268661025879719515941115727681604763879612291066215712551267367456614927698536195811980031790775957507264930306649996840950710467339722860769196667936984475950947644780652720476518495897217992874203343332048688762238361467086711137185618121230634110293904970994348479471867736738291888275677552804661857002707601763651845024035037215181784166590589344820910728022982353348175602097022031276916676331631685373892034118043700893298555137344679427206336912634978435176552227490727030763136258127378748815977426907177387924235919288591421350111689874575237716044970140562509052892847610037566533414431737891326735702205373575350537182117559500941286278867042987580786016764943475107509359936118579277075510350882371126171203981022177067527343603665682072790444687590519837961567237786184035692059750775947601171450982496428923468256315796538831614448704170783298475259944551210269318264282797474061766058792330211657462967634907070853935147694471762948744826276302013828062020491819555681366974364305508431478989356817564706590033624163798522414980014307643076852673521097782505560958510673889887277286105221831062287656891922662804417046061424102953782051284525574106799383871493953713822692880422164331235966334872975185009519798066504491045143263126206959176298753285251454395423435167004864243942977475087868487372465410427644904211598589413391701295546292814225743290410741672557441429151451122980236363770841617976626117922632318642371548578856172988345476432445387769555643524647457284338858022182763952493096347118447584080738600428419209590329230444522832245617842729622027387704949672445942695740716393759495418478793086215677562557641497241051464422320731562034953616223717269052888826451616625861153590533883693892580624662862354445845014076551739857399269977802897605763820484723927497017463260989361480795700100775758228990681106909804559881480791309390594129339076762169960467722061600298766671613501142966364874782085519915038152964583184285659071147640198949352346712935914282284076763702359205770494071101294661649646343680437536828429984346070624241744261030863240992421467686421526842982212582032660933781253252496844761679352894981942017331838230130966662698685554400218089906094839999694683241957245857909649896905990582396515298501643020579600442015772598882197490679904836008590979799913335289788077883134201776327190591179036173582058295826393091597850215682688959810817048441198106281446821992157919735287663963472304127545262750048883429702461898198105838568046825115629034601175123515829771038307235912315245221443218107753159077904296624348957961388906322095714565106060854210429468685730977921342385539205650111759178553512134692463871556975268397641762828377100170926264611566629102498633761598376645863869436673556777582333317204898901179920442586708962940845184050140546302367329925683409332537608174192662770649038601083824399494595158988178898493189880335265341068348057288560517706407600062499947409372652987685434104500291658278190827630556684628519944353479782934392960728681961736128502788254135965055297169027505443978365541061799871892694603696749226238966018167961464630053092502161688399099173137619774506295900050116064975044226247565324241442339736258555910998091746348579724444973187862322803849340665871464025245039776522636421789734483040893176518035754717931212455472179094965203502659949895119316839624679783259977455086961519538176018772106019159875603696365391871513572129143298242972454060054747790848202889712589960523180418077153679449680180727747283315069179587870497727807397779927243989635394109833576653491525334346414871359728757607227005431814118887672333385914378610767579251291065390994869849939238757605207107449447405487624785412070466230429197203729677914143695406066271204131570334319461586667738896861690615190665992708862253483441225124103874806049325558879740356633495704298188125164732007207833225952964746611030139484336913277234330200401370295711675906839657645725102842701892453646312317700887335423269789753382754756731937115801648055539076184422439218868502587553247968264602152470313856677888277147067462774430679966979388316270882638787453600658073782189906557118353902825089599729194196445461232596945242160316929403347500645079344630804175618225642244121432129301065595185790199387375190896695011779739246252371982418860644820682989174916147730526330348914397851492253369567790002689518987384071306444873334605523016984762025670221307888889636181825961493404153893618802997175679659368433364585958141935993380515459315869721434775866549565313452960106185182228510361929374971617278969708280673748882187547570583519496418541889791644206300152271239082842488936698017192654665369764207868728386132900032721267230893021020391936494354518484390962041673686217603666376189421913811405631749817926029008545118816206632660037025825632200430131796986801846051188473446460584258545562557818699942762242338056401577690912985648803374167644575092225472493784620424879053423606926010711504027274420362423894829927848316553845096765995514524507822872941196002497551729895731351236201471057160142592386675941597593884260733515939002324915736055702233346769851241114678736656081232677637365768765901537213644360138747632754805290609942860757108415836567424403498013268112026459402353565375343505035484922321126755524353458945028303099918268261243913661134489319672874323725745088032909101544283708661223580288738987154338880284560251887369927373156214833325169649248932912444458297824389497294567043488585463104909173156077923494946938207540107723751251467873270548519072314076567311264370550028309974232721923086931223277401373639192419422339163300504423519462229660472725565712072068260765386837905369930599543012640747687606614410560174677402461549194602158029224987998862663539444283094568196607754263821850759045771755489286184293523683958221242027255476559739715451484207712242303693245363445862805797417796314720119468850160509466944995835328560450023223794496055139207517725816494216725818685394969038076677028787909068926259782289452119029443235760078163569709586096612714351603705433296696833393117030957929505432525717600968031375401480632473440495425113053327326920460980946296497000057578891428111858551087486938822064073613144713128383032524662473349630845620388063764666362833392375702528931888604115195238530361622158518918267507005036416051742419942091887681079621965897726182290306898001538359750581662093148970469140576664892325483005955901020034608117662779286094201300852749038652739406901344479139460256118243741783816411379842023095094979311014432388569958039385398632072270516864345359657831604906288630606933550561557824693985293772089561320218432746185901155468770790616825190703925071305215737858043636006140781469389559662307547051141650410252223944191800519776115256304630392576429878337900342751150852422834337536127027635140974383825933218364976029869878036986596572698710392444598992047827952205567141775769113432087921708790148385534556312470441882554194952377509758836636311865037672303406959736825109671842573080959996149169056880588864944354222148954949830500695941813343184832707853745700122342448785290138723342981059756430993050152579465843857010230504090991868572358463584803957052110322500964060318034815653464383292827136516425639887649349890901724635886993219895799889904989843865271312608807898083186413314706934987922066193408337282407672272244525809370233460264497096581118466516173186158478765917640159944508730851734258739121692906281355999625100562179081998248036621618330648565437098847330724447286774573279509408612934250187414032306456092970880308263403555926339675068843314429800078291634909599848751090150979509974508598630995667497941015345105666790294861289027505683685945475210356656105061689994900346100105061725207363202123871075481118741398867630868311695597391126032632474765215819174786785029997840318073822222165518333847470011130068584667088592421716375618516104019526995335891224537855687374398223581626351948225036688644818866121149837981095243188438766417217114290357577060596048028014251808134787917223249096808704541231153784563255935211940840168085210964176558504685631345777410794022509355823515881681788650791152532466338370044733051602511275164453757122471472735155332911027237733819484670246182540792104655278356778883111632988237463553503865975207652166433992136065596100581279686628419792797751620251593727536517731932271031010374622376981113118719987236790289691121678747213225046341284862437919075809667762609096631729759519281999687191951577859608650861151663921085984590009958980221273008416366998538175619166586109998818766549358244781310892312974738851190633780269537975841825138616457124844180787227095442845545544883274372503731374727876204787741736147081781793620187965367600898557913161257987084304469409932496066499659126852870833743996546107020312431195868737578821209008247136401414186359015612329062450043711489041339140111560769760950196978627928497376763466325191484803687435532199195587366505941587872724670362250633134452179512111141655933609558490211799047618143694378673997098914010377198114350861094222706989768163825242026013247851458036739435451490261336005103298547040296645342229255113158625526535624176749335156638254517299630616284468273696167715524693901024211957577579939302898349954502588963145012921333344439152634668007345621249169653221802690630878908487363500178048091797954760726305917276272214567714602575708405771571104203840882026041825412406846534499672376079707797841680933461862087940440530476511799958399547875686048230887516903809114078009946344580311338719103502389227185660809941198843565816342675311233617662622192119963122368240777606574718813425345947787016093730231023697321585011374421631521967191590943443843432256820344155538903271914372822126937465376473549013389870631358656061218674025968860574633908686328506875792290222242402885775801521439093071776261089687787729369528252398661680063695381920995727762357092067814673645008395035677006735683925504993176208389228758655497971318064750821473143214266432157070674102332713080584547185140437552561889674998260055302694064601841583367806798841209519077798165121941279650686511736176664332678949662413447898217824766066775024969119555532046864906544963542298096775630177574653258847822285837562050848665417722368733566465086648244016278932344618361733426334896871813381330452284854765373183344562097426450404694193194816828605883810007630297818299230234735364777845605247476164619875147856128047882778903187057124909368254161482642134993840580953861623973912921277426763389667074640878506693166409817556180201219483318876872119978637381470000774863697332807202065877892626296664486909821474961152088310844741473760277810870720298565046828301161021536961549963963269304839231628998669052250007933582407037239738575120361707656101301068328932965245699915176769253946845551077095849765273688310935407796246741177858474048455295664748118227297496121154708567886498433493135970617539481834336925227476556285233351725021869007696207992197671225605070686035023745333316439708707979753978003453480872679314102911352763838075210943834976229789321579960544641265193586844346849086555819989619784865679439032075859061115146906524753858263921040957360135461546264632789984433615906694311687581824224685484763279867313020907814739174569735937137270411833243063470996375167768216311720447169621080870102335555194991408515054985675798730714525947064599555330136149510540124865266775161704110213072572677937405931532471080297459085058840017358610719644752980734861033822707055330638175303147282615157271903034291758088644248779323918944449339037591074744967393509617742060991782107951229738814435873589835159418116710594887202447572600318728868963242151907374018753758927772710094852218937863243772667027712617970733309996728995194898325660506765754223693129303952190023249965565130439959508301855032784410519887943302332615865189463395356287192117805396427550457591576855364263466863631993347651225375985443736826524604692495623172389128998394011776491915986805606207068837515347240957113858921281807670459666586904115651254265945426172574708919284022184348365508574691729728698734217940841448716861128956488955705025763099890063460630754251786574952526659782932020848093014988560385059068203162329949966118866718727506077559916679365539252139045928718271811299342455794391023159870081500904471241874403041464693340122010830731334655674917180167762276253080605634591898223717271336336071391964178290555056312821555122878707322163136742241117555284151769717659578338171781477317221712895899560733789723590789750464589976653392149131034707678152589596681991909390066669202619292149659021048016559098212928032807767452428167400779987711448265076774120974116859527391710635938005805155521178346542637488304367309432068969103003173793381618055176116627981092426893419012066963371641766634608569924974124857463958694850119178987418712589681466659878038445567676887557808724457763685714477944591785347627272556318799616744445898712967398837335321716952592415047856526946083426106404415005532083858528929396675003026548242177233860866548792676679450511549895220956317849344422408642395296037029675409118648213012114159123112029004736186157238240737327379203589767315374203471482446501456685450188599464539215800757284153030460275859425193291917031495664473142069875971871075270443625018237876746525772930180022583404592238324291043726031215837588509227719712512151093981276143098021165725383700207732851792421465816528780766855400643033999588343758021866872691118264924710576048657182268349583993975193861525418999073609712016318326424303333096140637920572829516305252592902130999950515832753563022327032112244683574524812721179253454337098964414175444920179350359802833533438613128871776692373260730458722112970423133415863825797344693118325692612024970535449690229378256654693908518570473778284346694155525813918922625718760030265492510764127146027520971545521748511341750674286950153338871322123127301101598593384531054271701993487874500939743937570066914940337266766566824397131405341745788145228667028688440014462874961303951361250299204517303432292118051505985442759069873374376821034802448749099275071746367732086051620469562480075569206267959198781308322502201290116844782520854465547049384152189929316304579978173729001113908483037109230430706106907001526456804940989498301689911356579881774857986354343774160337773501693563325937457747714162331003812449336689252012222133809116561358755895391607658134079172104258933739044792439067405058363233690500136020819555127348191771284153228788998205522855494474909934774772559149125666575514950623017793183623232938527027209124434904562353137463452364228921187340508073954334082601669414613619209461700376201112408333342457801008659004515054011828363418818930318941632282866535985527195913690602832317199433741793229664398874134698970184370238418868571643683341994696669257308962349037040768681344525923347260350920608065211478931123528395762979869530180355375031684307392016854646853447723977974706934687563476511223446798918497897929453820276487575168079473159819029899896061050662091291766858902521593974346735615468401243211770341489873538305073374860893740823303616531122254614534844531997296350673259384962314394301917759537490810647804867643224494526863412807495699615251424857869085168752493005464995982461580603476720407600596947360208574603302186680224547474297883184474463256514138098430561888634055121124161812927247725540501853957120665581824447388102204221236751698547907321931228835597380123201587711139092352683092725974009299148925085916628615715245054725267158647754929033918846067354111390684884724211054007393249053161133950455469723788946690564300245839083189208080735435245122848135728019894749382323661494644807598359280257057385942844857730619866374254533172456624187236318234799577276812322125903503675375789261431153470408316828320003677513097808241366145801180723829975374896095240473278271788862942411752006654916926218518409607378143602868811197017570673240203128318080418253857792273508394476894593663131196063550563416303027753028833606783538676386819742723554756465466834156826051185990511663382652145178253873490227192143787915648482272537953410330158592108219785759897303450218357493175696046140589993564687675217062884432200477690810713773319033005469919421413611461541699620866747686504500625869369209339548386666597572104156465646494595435266417306056719736762404379277638148233613023900982696197438882776686013366658783884345864481024390809311259179542164861121857746680504893175964523341462649248650698046221456475955515023236403137563718089633948924055379131757706975965345679117608822765526016901454060544032956943507893981291537275478705760662331157740375489523801463849294511941179048742255594105225592395828517528953053324915827770064011477090224253127798201733234521938680078051504313668828484304323315611990210368508133585244627850308010078632933797360899191011469903357379519184065362219864345270800600054156437201043708118248364780026216552478399408346026300078569053248066825015964130202442849766233308107017114507617747323148296319858654899061358901405209793434388365981292779944312918686163003261513070120624532680599189272399158678528158072641277711542494840897959862432223980879455939196293675988369670946094240543478707648563605759209395777842907582513378308431750528495353632314188067905439291141165114138517313114931977795448835365494869569197438386987400832905336418340559442295252478448775688449506294091268036266081036613582238570542473327100509614505314824298588036626496677626847686625860640677132209709545531746980700985663211547350247712319929188699728636357093090149300260119762436153410549944826468085037196732421415650936762551931878319138490744629901401422316351066822771112801111552737531846403903015361577835762178968826036492823570116487395265515481601290977481768071289961195393541887167444007780880034171520063079164963373333245559125797398098156861944285246867106031332215832483791487241597626786255406204483082869539487124345969327593186946512457449512898273174091527151429572328206821506868358306868199427105502983806229604005069400571779670196907489197127954340695544019920733209924596590504695345775670587915042063684196121273145927315910880887617320972565812442624180013709035204074532368077010352472007402189953379644589567741697242696757055106873732655118504630653065494509338668474652837371892316420253477892260325788926750696970865440864884316788388053000953600025488448274600433692211871850542133118970665862456837356170863249105254944444070681624603608616705499186754650656294254031159622268644991655233233298269126114846341657611475909645519595202327824618237303057474162413272993784663678409595917748814694249818470299040803956132901201533369258980577189501595364331782374425941196215154347839123807884852835940838548328867166716088143086487557619701793196333683575032259935918702491657353764488410080797851608875154194683709924019487039517762913164588939021732415932428106778049785223123679745619025382822337353249065773129218855706465690938008880865538896703096455104705832377887341010885564355883963258325447053034754967039991787440037203302792308719950020123683922672843900976711144596220113948114218203105805324167707860060093290286510659776253992046900734962867107200257146505857048691885547566605159778217949850180117024163855527071824254962326232946067344900913757662482198147203045071764002359724344308714115620752071578048943066095157022262852612648563172329831394369980355807980479562435619045563990979538092330246531423976440045138719857445297595260189392775919532365635658729336552930420675681418414819777318455573549208835278185834733206433126542551516721397205727445370926813604570497289537236742510492804276372356689234991055151791175212193248860648989139206610493283103439127024140168521547787377191590526553570724912988835654461664245429360488027797092159513889659141339055952391374691498362663570958164143905346181781622945144088009673359986161714390991479856517099730311792584742996195057966807396270139016900768454664713824481957888077424173982229943047095551628018547593744738770075825568117061252663742820457433079032490305168783577370412162792212965418195017596226067357124692744396532310045206356117094705388901237706143127733350779672433870070957516379517807662243698203356401566868086576438316266975048953005108379791970269515443320443033871606884719604837930295482016293247037807808906237412720421856528268909164168794522256318221427930771075711193883500689806204492899594520406559548781223408802772448094201109574098707141928304110267752629546799410755906797517897527820279536421436521502757404562657070488886064187900821324802901172319816183119732957282429557903915536053535497718623793696319071164757067870091119973726900543218079462009811119958931772336260496874289451300814198474380148712258752133094622302596348593485796574737687391397711255636260609093505641385351270632825403204446200912642898342413084653256784079379820733016078343683678290021548525791926890214062527141491606642648413197453877483541967548392759806996123360789051532814354754908772703929512754422420775650880894566384952910398218922327971828197977584622718610158828470579246229316219743517793502394258831275815812322787413092260211513007341687268216022254878588935160823878292811018728751409070598024707375010328080760039678098458428142953924390201660981610986534510348294852036748470202766757950537419089359159363798249322075014085866265850279455841970318143739449249173769072119758138793569192538151307481422813748288296525617178256871938019126831526625171479320962536639436479249842539808157942594476079102110356957110324376072989453897296455268810504913268326504793515727592221212825463568203338366775047498669812713184277796922865277012217835634499102635063942415319650559434260765093010376647711113827810210661152507214095657436832739472399542238897596320864888142203954248008622201119596453805161724332347905481960498937129230034568598820009390884953900221541922828393126375644432690746124551168028290632753827499068898696466551607412641880019512963557681928901709535295776052837728941692227382399079489163864056251698214049364409389682074478724820996862228216643727654127471855241699424478921443767839968850409694930732766779141942483395739502471746675740311607260498172552975993070632769990239884852036178104793127986447716326855937315044666257669290735627755407751813392363266539054823392883216802019110677752802850605046155566742117016050800634756778724639142573052061108034912419813183737793826753095156425434605637914075214976090652483189651494411733042235995157178934403769644289855250344127287349656788415827198539800963631897953833995379770539918807331895506508748542408544483646617015639446889103468465531438955052709246532803802501878934697960288433034954848499757309913169371825724422961115283799287993407393249600076914248989458640238088205346602008792343139975658986929527975085302424247441493855465789245966499489142967595045911543364983945928093836928603138182189454499635433284636675918742493713258614197220750622136685942132751838662763717213947584570229561341955090579269225774193984979055661889683400712600562657765907425339041453759814445950249154245280505355469141389605290349589744795888323770847526066681689216619389962946034109850577918685082744782337414807180415182356173024778726668846405600230020537788383115760454589055513861771929685091527652339990056263040444173571855528069639834878494483432732631392951410250226257642771072981810628242389255094952735528717786193676096835889323130069685726381697279725166211985221772229685475325250842616133063253432271934396143667572233449691269373220259269855976713294668066031127565982991796475589394329237401189064859652593409617353102927308769414633655226681999595685528850820320504700142362415012386247254134126471088963872637225016483953075097282919684612837144615366130785443083336972432933268215168398499301684163898230996398920375237894000345935665025888100628190197132724293874209596321717111541274333865704891942378652130654623916203269268115944565151687590412046991542586850579270134366369354521500239085805588973096910259941778751428685966256549443758918917257287808240415107754516519871536133154951856404941039518640957523409114585487194760265857351917500764016901657511353920348586971163320724351729895100447394589644178326580050084147035065216970815978889413022991439669472286668302998978534408177191397611934475311979410298252979836942924248290330843012922499447426965663168463381032650774697250521722406885394760018802676577899918745654277481533817490964917280775312704818625185740297922045510363552302123350251440289164742247543784912651623322476913323607809481912321598102524362453934814789938800623542198704394239727060032378709046155128883252827985639077797361394071263165485796622153307587988077410499558702965484689646109557176097517803842730278905725699172656076294575443862594599194637028790344473786802626004455992348118891331979871656926688888123544274377196827713837977932228722236780238419300034119237670678963323890638273471987510189258185745310502742091636040361978125124424003886246273906639097463092300755127758455708027143597499233593420563875285197137718359029583787432907454986930814178973555738167194805209551361329083151998072971419198874932949325179008715493160088682205929317358365485500989082909847777795829644474652974488669672114136738503269453371848969040186275606148039970810867064002921739361167031651329362945336375061055695207942282134142824601579728627254682072046240356976857718289355724557206672228273717414958188366039643758993879283026519816250222262885152354928285225249569536357444133219897003756898347746683680989744824263806427893914985951256409534570602283512937630542734732396195370516169698634579456476899977193778082069061695468717601923141117414224173637986403714215991760974785207376358382155169574973972234067569425458361234257821403116118088117084304880626900076735469334543068815469822431486322830502223825679837306839251001140883079386278744082326613767358607936636774007737558015116857505660319024927865344557620248382840541557756556469305125647014463339843381489287243931939089556834979325765082525162153637925738804288395350043376192501074669193309983773631015403507231364171097386470461225850062492619215258572222453480549610770051477604781389690198890900116403611831429556302598240736314329496461020603419248539063791771361723078620327698467446966563267113375071451508310337914684617821877854227331861554092205765739848864027685915820217258140108328107774254227842805130974678083325247623507351888421718839187946804364455630669247113872493842211124659251095018775797622237665957216430768858399993955199198275195940905814641863730376617699343793800493458293247430868944641506333023612517151934266401943750250619270967543763315182637160121444999097014340873358152909787545196275662673956303932645318768275691321238808631542018326728556714073277833094451101324891842476252334164123904970982497328495205057148314141304576711399578760615955719629843911161994273353843035629978719857070312278085412976921662341859962088034872576203949277488058015239342886322277482289479085102266445251024850996849861296684722554565816242058232014383565946390900325052866713326466357567159483264041202128856506940328910780622827624260143324533169935911972398998154037401576306404366508092492509254518441602472848058750057888140586421634232332615827063295838473661697696661128336995150023802504021605286070973804447392791561307539330946619329728954488167251648147646378973199448145355370196321366265789753061675699088604168817582706603874539158061351341095028337675144851097515610875534178906077297755341369909604463931808756481474816089333326867740071727337026055440113245917201295028415718871078277910507085650910880068373171716987583156242010676331706363536645121069318595572859637310865844971119497984253744112597078898269965535379417466543404831077430556556182316109755262868527922764462146546204793448856210853974894760942110705034444621682990472367038880422434089540994046852373937756787701280214161857287443064541769024343201354180965839341723771680179522198035844051466311575568827272582695310553876295650559124927992724298253693420669383008212079006220494146440389421337252172429548597061321434178570330573330599832442458088929726507546439802044381180910331550835850218970110602667100533992813105011549045136464236095674080816621263474034080561519051985514654587313253328057657938239286706483448223327580820519105652237062882642048043004782702236547741759503281789771310463266341634771575349259081352389880968162937562348907668979642734157204078159327131202869695054978469588129446307787411852810419117906103352816535052505640153165645273841623990435111217477236446447771424122697304451402966986975850911738791657605117464473102604253919192795110575164640178486845601701738450911083742294502861710337411123426062110811590681206631782355298151112481717281758808642212979196478449642933850781384986820132618832504010559353361113719524039369103036203169973459902958615005184351162664146427505337933694262983280627822177171890854023908865061072412663231268165851684574571853169923831553878445943642843502746395530865227815177731739949029171567709485431601552726501132112329281864926709382272817193395990290305769248269157069690665955242517500146287903150135323915315801296811661006785420192363855269611598162691573030423367940144075443801885497031616792372422087843455336487707575486336172142882359891838046086331076281250886417797881061690456856308704530704792213119954607311790280769996012285918342297838461813454247836477764949317601917784006587691856629343654616658526165827722385958078500437697728254952740036877505372820295818534557238218718802552382990470020268506535547375486176832160326921354580311925249118178132450888793704457674531550253843152822790811290321017833840887449666051211049249252898925127259706178063575895481323608152377655810459490844994125200417329459552151121277191801941161911819233793227081594255625765879512966018820413739483134326357742496422117377116151064243016694515508229777479030202132303013318328133419069987818841905386182633073284738029130372666862602444571236299098133050795622687690492357827981704133014345432280188086249383189993229476892117781510375978158767531169870897890762723814520996935985388142935913631195604453658312470066596396133767384646815465305329446106287405375429298110580537851047715454685627919443307167155520383433679309928803258407945367724424924009333314063129057410876879260372454496908949547312199521361344049860686340733610863110977604930615937412458677975400614665946482385429046417624627024257420363535369276609520383302381063237848604745608141401896460784395327049746482475016681463775611621477886686092442154716283569733724719716732722901596441159537268822865716492457727805807048848450082291713264237886208196671679179296433482718927093901355909353556892569361211808134778482998628571494010345588957611296281193335038147308708248272199225791162106838862612423191439754908094241086820647885020417866918470103785823286343646629665441882491467899524600938820963936255064985703566732280554816995807757678138119391744348303873887079505743295905592704205288634153530058251869791306380688670303873365702017460955205112357706239277937050032914675224724074678105224043674080450283567368296430454069022484602743853402273724180339516449764924896386215571537275642724411249675588897071744571232068720601796051248344443051621848036318721350653362466294552140962543341695969030255746902617199395724587903878233561485877483484283657766552319358746261035854407468641650936264257757678496171229120356852167480411971781461037603125378794059903386881228239379450743325697430925916772470590373125300838917782968516027160415916825771848048803702109078592446752437475010110945377503637101867666806308787396035265067696279028567599425007812787283909847807146742151839792143504215398034128359165022740223823103324829718528028354944003012894961916681496271546303997989734065669697718437251459814737358276693178999715771568460266390894039730045377866787497277401155108347062181564584177902938551751850085391425846097829616677660215424738855256081030798589448214313025983536305048260631749230362047875483774204859190031831756473681042351900930797447141772452213513248228933919407576234754600230132968029886554180938849410305292024905194094274766594461313846487966038508256661757732515079878378320829661145796940964217184672537130529305260793370502750040982767732124599209978831774226759419545662534339909792256435467484370987934769042310559364026522342993489414891268671910738724598221961964363975674852491288324401002805681332615259583012972051984016300390824417736635867393647773267764722545951535169517107137426927015451447940516348678258523680412339437055382117888453125703756714194571402493313754629300971048627922699778670061178886981737201459910095862286050141657261424756024275143521560979176419847853515728006202727456114532579998823849979976234791556233806641144533379024821397190024726349123591637633725070105067582977451477952977900549400900917613091771584249547108165656100047011743181594324468813514499244566587489341656700975003878384262069418595450021083836388012319602955251825848794798087918469614418060737216972980779903830378278989161557017985452620348140698875398947463429180674826619665627918010635603180409815053505887581057032553638747151783241164549425956217389371738939957615288072070947244669147615566647975987221145290322662059987960302387541407027582934843470501164582360557486860603845744187979487780829860337910388702398918389207055770427796338430564296850590013648777892063735728585678687943574086161511556572724270766135410330143812045507883034928375992256087402930690044016447750884982106395428632055229282566422609694394174760592345158117016413634533915634427324640469659370778193845833824428223989496251294603371679202946235521723338651716315325627858467902290653957981835258846426976711694646107016634672034762881415888636218705552347212358853415277038287250159898233833428997230539791032680962366176720890854250703690810062059746107914713242262254017935495444737491916819995459091839315830037377884902151345725215623769933844143665550488541988956694445630310822659992604366052407815631870139165218169072285022017745935985080581312717365120622828658869137597940692443437810011881365797964549585997500362672108210240679293502823190609883119490738374844317933062824914757889021923108437068639729280426050612312827698423773610010876123399658688319315127518638395477632857842317051324093185322937797491672671344487088402949393190352996183310540211250327683564472238137847434258166015397579065854789404224743851593378423908050372486389872154779732864482182711853641585721075691616125283031558333319095733347153446261550327679207407319576892751130514134713130882772266637545441319709935654448592153308787850707058771157540352268067654230102895894544927798542081112945700157678591971360476437889822872302540278519961045675497991221084636039675321859417554162881233691704344683052895456661274809627404053885475526627087689924666432155279734463092270588287000011769308978647120173742301228200143986817008267812111750054273256621480020129466819275440264211957864246160624209223578357745227893907393934867835538124036082959444798306577358866621402623228964746078294133689508549754567917088848103301978838687554731431578184843266734676365082981209819810845369151088287976980720649240057291370227880258344333324935700728898024012997534079353849552816421400884592952364423855109143811454907692490258554894024989164830268508245744418578226349527472835334361820958106655957440465043845825001973966376718496365464577743493227463293288675693268542116094223875337237856285396527681380312896331026618216752164759463192914302708884445354597740998677096645701896202003950188098843538270281802684300766592369154515934699332775087824515131666023523238540481753317596772974739702318062490314336747985099637901897085384471360415589702264131910825518420319426258751760148306868548652062907505929614342594898676164253001071463054249406290657050746734277613090809676781766531367202334052695346156554955675259310291780239024067915335410120761742888909946433953739897731082748254739792290044259036654681986080736528986709690349126579146647792684746309527384124351923636329119872494592417377300059670266790497074672905477541977991906885324758227570708076087049760334812646264113171248838090022792998960980058201072102335469854878646643950024563955986746563922143830323534657243521109539566455606687943200438954211984192777386193698927258815814921267585319712565748797339003142334206219215703453702868165122512688817189903742943092838459323995446225031373507817932114347442215634310464917329849896630355600632752984856257275659005419990638941633594562828344875232999319162225574763210412432192377427171311005110235092625884032595173594084009092708124182935642761178894251386915350457071935807837496625959512791514249208988192602048417465390606005814959842849592414981742397286170872387740068844717134743990646338063310852474615639438777420989822146356774082556326360798267478802215488948254376883430442852441451403508123544426260150731565529787033440838930886511895483430309888483827900621316775383068618172577489158046597475969787836364993014187659663527704504278325898123544796562993124662437025362193440613147016120327300188490997173317562075462726442740375070818967049639561007386878283548361344483551711642614452901914705711832817360061571066579480116928098883904863848660759212514258612543027608020761218629640629544153942217273469913814999103071329951673559522930897346919340949831487912601551257719717144388083919592993145710248730246412701138312603730114408862218192564443947416573949830578809852600425106267826511396769877102761553869413588497717230943008339819846599936930012691762643528883479624302817380622096488695050214990496685100384072546165624047438064797847184952703350510483359255423003434458219546001562211869504434489549224516008288590938050921053208396224188499999283715209896587936352115746492085083537061741457387840781769731027575867724513609068929542953089835268273693701235648968899365977180849350924291748274297519704403171263085337093605845199095833093577457175109911554487640396913772335591599609642863034087052395435029514614285080526370521246302233363502983151503816546176579629305538830574102276665983876890019365949473672191379223710548907895302952179988456252179431301347730246591860233322032872447594780933458863163378958131932959688711240011596981270205782693904520853636925367279913415130184184974085182036575615111223556981707563593914964020565054921877305121140822158210630312278835303670269025672219266548685892250071261985875012721068429694101595431877378360549906239107221761984847368252498561014623514473025683280987939302049248003864176708697465476477012867674119988326285239595527749804483215832533288883320392180434843589684896783518692508018994062222001564443989311304508889514116527723334992062428698558132771616407992667421478235375689309046471667806549900497603993689586847803949740909371049975373401560849621953181541843683392003536556639080305340507326658557525008650856734626155911602719188799281901048848856402400697409363962241383681978618058727114770859756162356445557391448574179305684809580442907323400995917806956917132039647821210066103203626058525347594576170957396782906412517195005227809568154624686549059721855950247028136113601774887731499716282889831377316946684488835408714509949907240302008086770708789188626713927589178565801428659692214435179382853712795015259327378306722571334209817826976783702063311717643149489079068492614134773585389475462861915710576672823200325983833844375765480330503269147865705740887187591957942552451261647469382692423704286687508201135527887728984421434250640337156103972412729675208951339303383524465786115244695598338957669207592404094559168717672728120661123916065471630322806188819591815649801004072647935468607658943449814684502021103778252784825644738479482496548986682555040523948220845183659219159100036092014603551895302158690857561167658841097935478179218663681894590437316620951630849306765758644335498126912451290091732307843935768782860993334188277813037728244068646079275944268845347587700591231610158994233992473019822399787188976859951318188678521755886999578092433967872515482472795209305278947008326564799703688188573768591865755723897244652616388129941349803777397384677157046608839981505052217443500027252048969750329322741610741896765951170898199746467829336792894613699792797033357387393911489660714996364398799608205460019661983907078466076225986096456129319966847516207215774377467601480238405762560666513289763233027068874602899913510600090014714228512690990009992726368091315647583567942981331525119939833976630898504558445365873882652151589588591159968185492604668954029068769985979349478261837561863235437603483613003087401300796097825310496957768021916095053734303097769181962555226730945957045474882147386012376029066759099591717374601986978944695300691254531886168271973288272749126710010937868745604555538844719364621312276641787844698278031000077971860041783309069258643744285867445995064044871625444582871048139705007892936258467423691158888186729064654580077689457689112934419924868316076665107911647154376921921321348980195060815961415655794986494844318481306543293986598009461356555547388558493212383662010645449111328780406272539941581082442544527075917383587638285067239740241461356498597604504287178138951018356472960925857360783022749471613929065699214079683207498684533927633354677550015678878267410942077999950370876178832041128820349959430206619496785231427154988788339894101620544475577993440074323323240510325223734165792416920636640411075879444161163930283191341455143285819052047297576219983762556253461966850621379345495834278859735505456036643610977249599063559415469109820486153739432978979631712408196442922227020821014547259250759558107120337068557144633746635600493739098691403824940917118429906397822596525935229296460713921086350179894987511788888138897154897124374681649427349620082315388218293072653902990161143223663831862731534870460937331724207027924128108844727977625078846434201897651920599788081595087071037478994608388430160648011656364743043373966839181104184044442592634379955041042146400489262004126366272854070720970870402332792714822645175089061415492540101867220092999652857221673484746985194656504265792702570653738219977712905568067216505340409352148669189887622212750244794385708551723750260687446336976417860208791716665612912170142000723073172873776030142210942267865906949052543108004164639377835035661771278838751655120098232505435009596079262032453225276803572325440376166485670603840966672441559930724548812161812874630902715780008110139153545186993354727250254668789666717134641480319436385976403840951420627533646510112583900397617759512099608321669472045812829852965653170763710815029122256376619008912862085786046487715813761084820648576581612719631243210453323269015820888689961881955219820774858959939149642030165272772513414753070669693181739113751803006227094773786325880951903522273990367646599676588151796969423929917357271672358070249921412544685332196963618810192511365671767903567923047203831887529327963136824016402142344036442846674414758030832070783639740200488612591228276201551459254510070875921139871495895133555590805253203970967767072355428142110480225355673605940874056039234841573313835055992436278675642131917225180188504258178256069295465936641508307062832722691656259760123258650145018788752842179901465423844699438514989959497699005232368462442111010212490194373285345461152722854765264488185415327641949878122000305723483135998585119928157693830740163529548309286790473508432543436754744373631459782403975007069230527815552627432148143924065521248291397155882672369923133924942498073615283534634442674167382082560930143667193138071254916398766462252888770038397902022393038556722642735003505614022647392142309545170240939550722086414810556061113454763372991145737542951668386933706924782173644252336236589772203701101528512231162311179407704575845763769476584069018881165781930076421393913502611113773347686232296558442368613122942359192162073045332075607032002346377691186656522037274348928088526627158631302785424224029952895890091858136525395216358075319353037423010616991857265316298215033860476454645549745899658388346062100475884744170741480367365849311819013013414122046588244156459033771326986736182673747554747564632049902652321035691210511134275394853743123065936505878983716452844659391256190590863905713219813513114072830878519196205216738847897317359951416564349837497373996964195979965270813528734142396140510491389110861267598959856449642326023361734998954242019229573386919756260417028844048385816382053069616715746865946553227542593632346954775353312291535202694231369570085627794532479242496760151113700331776009179994285874110257548083560434953547756876953801869776089925239249441397894069958822558190055320245512964955512807387441625783174095746539885981334373524397806425968981373194618930335486961913083492350345271099250232651291811600987853857723350887765594900807133718944056027848960781789193992210336194823289834388231664163157711550086656819754561233545126151630151125978397968823696344633302358837820704091046248150356787818849274776507215057531650913211277035006552423505600187846188907150778944309100709197421755813179574413524765261573820084722052240377492468804177508079339227298882727549827530643314084355803212054059132792457000471222077023013693629642879733428013202521307066154291744573848006561829175295921468263340631642966695704678537184149850207486475887263457105220184968600599287669616657726505763401188371101343935032238309816354467957772688344863091468586945512441614381379256057925998255549562039094665984776125484033351354403253479305016069704755422890688282690866259279898175944904524049137080068769552511889139763086691881815350385685129908390022372236446248392512213077145824867639404716600300403640756229838130726940692596245112707023230488300604603473815763825606652452739725795783030024905836613684623784104802411825319196348056925059223497455273764341519673014393310574176232312869063292033526598817249877755543214717809581719872502522403632898368791527694929616246638523342994463130485927245697001831616649988419910056104135703649924730287080151262540302140087670657986021198009338715360566199525004725385009082201598479741989080945000634912430133354101000404957488971103490468330753733465208287298168319001465221453439801404936422235710977254524427894939686858029596094293271383052037678086644924522710951813649566535955558849426475467120968236236345226817388551989361987701416296913448424080144350063091772927648099869825264138964554871361373354796899542812830406517778605467461849520948191506647815160420652524890971625805815369512939958689950448530539585419033318047946303141440878998245401578370766467904828866053513729992701856218969743497250585529177142765509899669941148749109463833063130051827808421436045115966369898879120381671291625298002188574794493296763823973370603527854315988690974062744674136958913606094828409802702335814913018315502073282185824635706527942707660582819724331553826220455103482058359234852348185036467642266795759117233274855966417906842847880326296223492194335959760775152199692575028479646602882811021865757613672237027649956166525653056555810734860630256150171594580283675613753750524722875315180239211511589872541969389911753729955686984966960450189163775822757236834925188799116056116693572889095323000748851592900568389138207205187828284183558819957105647058592809159405303331494156751163658022737297690618078627339217442302986821109574705719833543416499300386622761133204789734951598008161537916752238731965464539298481916889743896474604864389014110099063008941124264769117212909291698379551249937257743210568271233097801406528624300306705357881199191343700247203495444594738675232250960210620318691393562682682233260429247459729018722607748755194884746922019918941506635831686410559471168288626577609434111658823296219745861951280551343160865608199292734247382671360948070939340206366051300266001488156021150609367626330284312807253985835525391724486669256901508111875542856776601432534917136580255984435875551356775928800352566728214478783617121957401747124562906401099167177135194641800104736123440419051096855755529718003648231365800971220915034304872048173527897523609970524828265858974085223197877633834272583447019392382081637651972903390410361808115091750999459188925531491579780792858467597769461309660838483772663638450509829808473604735865435653888921417147537335718419590271561632992536615573457062470636905930519788331221387975693049398091566403700272081540053436927144971951348296192351311425092844306518068572125471939718054710407162888903599964009465611250549023959405515765020963163035005375248026841469236988693490884805292102322069568521407194842750360559401241558759877353578766332637433044595496666603216197160615708717490653697064919210204144933176543209228177102459957878006434780190709596783630308422590967326376712770581234744919033185167953251669160419464435326909717474276001922854781393751171649725405386130531873194199429146446084851754303195271040142832337223842386065601250783499834438185169319661144142493569206912455451403099020618198442540258034369158675080674218698972608580438949016575299480376213095575257633863356344838092778405999943377113186265449926241779791258938894794195592881220192393229804973265274873541987863485028207188520177766627808897830039116100191796396864344979894656928468509712896021167928690210376631310303786982272181612593367607698538174962864104212620591974432238927919259608162610284882792637885986232566110527228619940981442885014143117712566369267090741276345276483575407772394843754585286772569645907356037575504410377876083238341616929215911774105694131557958329160046180891062919342362141721805819708126221601854448351385589686480425866836611791510471886188330132703038991797362340763918684520266686576566800452889497959972701155957353722286759595626715492876319233842496552601487604051715427115154804435236676684038715609657390444727326233327870984081136379551391653570247187542097152484537571191686002907634172492070904672920060574888734986583818354684917587446982146135628087543972737841019690722577799464280215384003393647269102517765627881497058973841784575934510211378260866159101605652037103372960120885436291646675142753194199741455091132139962787505832964939334882176684901355089542110979559680000173842512027636373534143829112529344069516227640198889924546638214567435983684630155583112599312422728652153219508307833988865233393096968733459301269207137292569629944833267848068173133086893631728968903041864272463761426181238349403110542237002740561684518545911051931078847430721222761414858512194632087053622997420239611755739637605591475667767244962940033875483197985491209201172817942242703450011306735993529733591529291870901661019398850591168092841387133196510401166751815032259499451148674018900177277910160465321796599633311991914140455637338734940897684006690503893580605661521689822191810119161270871561032898899988869534576421511953656703535150585332341884763638665489584473851479840319464000612141405610390306533399131369229108103322437219720234222059757817735543101485735377389862380103797265287804613667664289762311625239494619391470231761514795271093727612147588733173932432639997823641231452328708026624224335365376502278007878617263565068391074948027569681717697202266407039909438841819109314497161553745411880006321032249133998566985593585254233533307403084527767190456804492223949677248047017736699409745036421151470998772203834285009899542862969836131500647843734708748357942762195672091469651761488570614850815439405782942787668224753961110440127402559623660425897438809565164991362491052701905356124462121907785756928152605425501280891012598558460501919956001722618636777859263079706808660818761245500190062014062038980058991307804549459839447913412112427322325439443390653307812670472353101243757547267684186354018969230290703266475495964733806542324573337515958428055697408053232570683843130354759792045976474864798120141581387837055665824099987202675410317861132755172755042706968710124615072627785433389654357326598229162696988238776685616734358108066529610822605111875016769337240356941929977917402391953604883324759348930402860616317142885072230972743353466568866454498697726885543507182633704801379371243289762846051974844604101125424243915575057159254778007455506839031157002979889512060440106290643222051428483299477895790447437381889649127921807023041639935872119985781485124048723984311657267648894962808688140989702650941579787397565982579495510440207029071997161082850201201214830019564421012699281797414677775897432800239888778086178936289601893178876792462621770516342020661940283984954296456200927970941007027970040029782707158000502119770533277569276648066207081008983855864359525420258079972197341589383351910603843533017881347282464794157557243823857931639743388433378188151779010770955009384312201898563974503338094778230497273202598103555295131997208808500849369064890034356097914222316313404571306322984849429985106880173954548720670868172593809578115148838891374688356300545344061289339772102438213983977667724276413491100556894474105523316755908370242631265451047335804243533657903561845677585144557869080087636457491262038988672902141164795701026804809553693672975613494617363836479805035153898278156179666898368680400143672843925300949953346418287912596008944983790434078230533828925728460957992988304856669060732355002422974399274938756419365905128206542330017880952353844243296553885435973158464756900607905212450967344881830287251652403735599924036144047251494276967726868595328342018234224205186928743255311032742384658285717220949981897658242141277340491506090707891115949562522983803043379587618248137174861072876062347702463457165738447866879607599638960130819070889986997015171265826722377403230218354955259295252593118732825772823469688685920934276328059768682863422877348618645998021373042308340842160659282347697283157558367895817744516935959023049302887485421777772324358721428045526591271766229113167394400208560394285528294138996487786060998283693497411698375610003488640703466882147959365874585661333831560352582964419500920679873828073513241631733055110490897118411046486817738334376755899566134084537682506147022634968602400932717329634500253033566603110634724847593166941883454276734176431325026658633725022272613919662117266809011529432756233354022707294952660912201576171275671500868674443838188723639027027860861960763659140651476968116494537016663343642164089345029007906984783085671149304895489133756558880559238362640550972367650217133238999426365951490847674366231536203764370058413792816000699186452876705246901525162499543135428450209517634994511970982777725234437271687280781636301547876437678099332218330780151472336804807231892402047275127843571166758324399829203338497715089931872426429913669750829362658737287216028775629090313717771333438634882276080672153456607410627619646709745128351475082847965862735369382061065330254070039476198996550861293648038546866475048220827587534570251023540266313367182690292459420954216365040456312592454943833828088325205745927207588585292815625966937013380967384373783686810802527170742987706774075367570688396264125089986182435531085734255949905442934389503318193875592049433059870830396519877808128598027884686198319608405175048286797584865489811550831374258909073651622815949811708371413006956480272130925553075245364475300888631374649707794409599648423409167817201794417970849039904117096359878232335562961894455155569090283933325006617413638035011993119231970614022817538976262193396526756223278786856446238290271736688682393800228966685206436287666309539493960039688235579049677516557120046264264317026924838014417174679689776764492953292569259872131473968445889372838534156467641426687533423488226634396192761019883776947296601757988131538457135784568144805061653003221396529001825497430751829221052056710632070613106372843470950810134190849497646123360952783842840809319127492700381085487490503473461167155057999187958902810135130692272799245638432078328367548143885658639565147197078275662619296495265978573068598023875050690621449880163414708801191890734841971744178437909024155857406296597756200628281357711721893148660052487546904129590088705487679878121497884441470599530911380750540236565978780160885114835146552795525948909131291878723021554732914936827665800600269360756446023920930120068717365152183514616105809376031832935006664836619383396879019626335383346929745990287444450492547989461877851220549652571916494356733013774217675970492032275105974696505874649954432716638833570832739717663471415294679990494453371229041041065022153108682428792245260047726311504471688299040685584014022796537898790608048569903740211092152950138779867191832558993803623156641328844116640588507139688361813187854642892399697941841995993231050157157264007469331443347372819986719598368540964145183940658392790678158863299046277329553341765146649035773057366853907130261135012660116666364963617390301491616897934689414177166225410048813227813107066780534619366317630846593656797474717103653638942276057852298619324715622865493691145604039838683150020244604145395803842307095100564216453281075613492317211846205313658573435303539838957806953753710002863364803152658860408000132301082843592541556036202164833095922422652306505486375171639032802122121481503587086979233679695694844645974079730391024137614689052840213261376884744411365168630259516250524115014169690652409509947812378140688004211891301953703904785759492898375728198571043761018307805646896163561777497324936658871000735319857757360613546368816832740582764607284814918382124549688977716111569148233135497641114872055519753517425376456815084049439431685224100388409835260557213646640728853670473814350121805383645504993779878346183683571826836222566438802295766896130283045734151445750058416943030602347807038890806489086120601575108090583333050767671027218387247537720826695517908031019665186003772830244099138750376405166726742199302979882324438176425795359462583255744722454494219645437517017562181174415025750223605733828484134262808318935491617034654264804874061597079764109564987603602297992423032731891963687964334757645987326867356673670836972186895786977386839816508120646839900693372816972075342681115362818504630490170896009170373871658934967955759485998391788793449940435510510049607707867596872411549281419418271130257026775369271353233113532629979972492959124076129269852002173431577676146952266887523819702605884432152198998915190797612755548723197821748109657179991546489721755524335223826902931061609386631305314726099272527593869310751497035057033183643032540355505108686424838471898720426577320461269542919687231001664402147026499860256281279116066296831631970641812200402368543002630524229458329522015730466870261988086085636133603469935380534635214605156443123409663726515447243701549673095051817490119978648059894840228258820201856020311722975136786105211512639522798551934639150633176481326754360706523114774760032243643607387166132367251882083508987970016648103555189471462072315172962917141517458495211652859359958296706837314698952141580107358127560114973424664490819720976067033915694778441878378534243551538681897167429504456953044553215705600120270695896595387127047988652639491110096793198094090460867658264787007823511250830013774844148433407343809503571303679149874726304352576505852996301610628430047378842575808533775829939137860867467603049687419631806846067566667497887749270089856329896430687970731003894514787093417568432203629479610776329788162320824083920023577430231081728173245351633419039501990463878392296096336858307089814570332272783602249700995479526229623114392598400601274731785802953792069647475284787591492279693714914360978759360577998531221168375372400931255271964775089770487894283474240121825912914305589920011714806418650769574175219304129458985006480127737157978102219499931245668453709331882652136840733679336516711656808481359872773082020407381845521984335237820899754684213709268296427305868979799783595603678616140752330798685837499565577658592785558705345671299402274210954052244791589266720326093291737762746600875270925462694140165607201836975297109465459504828520806322314967384026565332655384549743446192950361916167251510481089317650674900159930447990199425316932165215372674015729030511935133519525892207942747263981164237405745962401306945331312328566433781194325073616725959098846113866442465282751797509782141533649550614877594997158404201876450717149830753414523719128130898699953072384137855100512329310269793206117092621215905830771658492130777748258252953818164460463998701977320443692203580370388644853600593541953113826155006135516186268598866627724235879915914355423750490928059111762980090572290602575895066661768156369364695792611127290066749233374004749759697483035687187293885574248142781722913796448259735527775320075634244586538854130335195468093633921749410326757422022394428770323999288602668209238028019828939845820123731777387844279105216065509903172513835296404497157000949338558284111876105486915325971643206118163992030443365337932686398868968924567768667357955364622606749897061170265756046933612607764881895194478833751837499768038728600690388661757001666715176238404686885580702857620626512503354178510772686642285121187492444690149150828052249986944462526538916745455263564880772153574793946816351740434464239729243840064018338514264146788054223155043873956272681579497620163198812825872032641208075083033837413348011840132978824192630300544184910534370394007971623867463836825384410832613083960367518770388849962436353672978314586719755505725645330397715347065080661399703958691106997741558394624149999220081401878878253807474385450018401248152397844152921607146674509541120853008167534057893493155118968001058282142012411184106675818418040321801853779367513983911047083273537004700620599861717629240856177339289686582102870088842137937327715345376725386360962759145961222033000783630183558471559218653069345621269137511456352826369622014709097404851328757155093310094338795440680769002342413745918370617635559406548501842964165055383110110422542269935440043484430117396294745960291315385057743844355650912208410665084537291765988467269144867064653994316477534070979557059340820428006553964599363422038455999029068008361133625150961147079751722293522698889845663352841278617101609412084526228862012783684430212666099221197132145090456330814711635607157376991972662705812989734246004121760642153536415063622968392404738821013023804478298461102076017594326832707792482815400963920248771577259743779899258965373398927129634782432369793627352898042495556383642066875729972662714907681305762190418738890647989509779094579602157081323460108754237095941638548908125815314911975772839235574761303704207205398676642890966409293280749754839995160648444127384303981307678700780133040916559669312682600647138209942560282394412754732872121240855303135599657839183173697658677368337442253916143252788697220198427039345479168989088902187903780417838827858011674999250658745725510226453019707925872259089333052685932062036553959879833283899489733569956549713334838937239429871608278212054836013662387286205560640828028653881967194103682246631789139769621916603586263141796216531304475198518222632016966556413136919409242420764048779684626856573041367586505267973072787943186650192167782245588297194197247355107286762563915059848334264708958352329387926533908053176411939014560754581993765458858928875660468443267306323337842295216575524208650645108094647489781286340513149829124553975601819366764132611170618082785750456907763503083902623601062018131538584596902872327903920904336140290085090097080866608148437340823046149973994969460246523698224237686593391956409363878172148061455513191140909074941860532902265629670496638024442980481395327571316394117254356419237219091007062189765471652302984757059815596128591366430166279730340164584282571219284472952116918299499869406984932808612562698929806133271057148653960247595098877734700545650738475346231809018813657734088679821879562668787831963760078149061983809358548507144484373500760471851360492351410544843349965723055915708060218143705563548933661114582247245218957633955769580063150939412729068439530529665483955352951386205262803268260025015000777484940196794354141853161430812503909921791030247756722303576030493039668976585365450074456449720465614605167281210387346977429856402269171855206191698869941946939434353286698866064874699060292090762337194042627837183642794738018951653462042907340990742160506051155496025905734150855787607767563710848455504202400260325326474296368056955613082234645636777984820494922762072594186929159218781346671675541847444309636814629920933040788023327258010931680849985924039590527760057490295460117646661032492264395163086907823411967915709009874863987001240780849252998482302099104166328336776057945926822168453821356576778463256388556896753686134760046337607768211137476532875770823062183963438186037430656119966780094512120330451859409223806409856246167926617082348149870035946859181465955654388319226722450437059793153664178450347293553021682503278235143035731298399541920816293127808243494077621931627567708886157346163347004107877108451394416842653098726821510090397872502675510218591223830350105254305873676381186984417543891685724028123963456477396783135624969657972678083774777461008066276078192286472728462749615722554235894991257539850668651319761466268394799088792770870987805733054997043520007778961374858415686615070975880867654109815969500619394775902359305580612645413579692808233374710636595958824024593560089024316440897984587092728479605934634963322045458400264539451646843492986648846944224208606871209573463413872799439865300859301754766235307232479538980917586831807696634024545985917084498775761254428935497016993848290857422063940080628190972069121059226915862830023516957276263736258356034866536123569593873471463801135741632700752297808512856446243884551493949445450930958458298055835354811738378861580470186167173582873688856835905532197221213856891852960789872948228026575012452699259514273527663668913177209038330032678960054213773510105921305643509628830139225147142068482750741091267203369641630038794378883713363329668863425256352024626520782484233817588993605696840135532111834786865013692408067262536472739995474155693196521462401379598679603285032813850946524545210347801708671580071033619968943178073425952737524660992456482632940851787101092316626638126562900341796908813840773365486990032041706723602225499296164528329209960838847422100023070920912654564115261856627052664327872580002989618908180813632667680815285264995170332054280394209786306412585125180888741567309260817838253940079801707700907849366165185109107557010267680794771045774149165299773499876437609927311348102913747678178669931480150357515406120648429854817910605187647288681423582116128775417492924174434837569861582712666260207961812186105634013736766220662317801780489081435476045821320559958990579897497217575432175025055082828228727588929397929746168491782269615888865006360869309543197949790936918938356811772398710507071239061126530596196258749599894897400378627093702515064335006961424311891236788226147466848405986854867528615853653376470726481275486530420703480045190426714685451118687893242846307786933608755472552304799818789459401852518631271355305859993070276965939953801480650642029787194332698810699270045399225476215311475274127145833114084399772405004243574911912109724481582690328344015568250798651818007627670669287207588106390881317664676716099733431715539440489060900558308176162900576153300691398912473227129839309131124632880319244034875761537382236728292274791863418720100428570368677036797908425296387519400147011816631591817965535365170435213534605464400669076339507513383012562612762787762583920731285739121726116056063819635599866086487360004370840306963523145365901066864221106019331838962372853970912072858667080836611722442747614969828282139292274930132252977297891740883931403304551865762218879811643806342501349586963786243293944392892412552320918234055467842033332276146988272341173368988837404951185723955550469810386235096028030012464101986021663025429677467419678649367239336742823433636317828784461248951836993311468903888720122570892943083117825185606573375068480234397083450982145867165631111369952843423108704497463715699558351889805012857039645789654406569356947078731112518886141879832243588805585820316625621310747700724755934034814114471044284512279702360010774143050241218469032417149320662437775381405726120189234141130468634055831347911069496026681095304091327745390158941561527776128019303123000743002681572886426317434619895735394376889089070287782093604173857983220798458599593831731639939643110429701523376291723977609526726086210821543738151848572703996489758727320547172550372885819614588651047471002720641852387577259064043598621879899406119848690277911329491994827974416293687824767766256419860930493460307314048434383001456747910316876711346781522077557513988789288703361160200460983429542724957138764569437705243973665029536929563871285114207767914491282931401187518631180627482052155828982939120382581805967038688333910503810215116415265982888740032218707905651274650956513900429723397653088598147483504024012412137482589722694789461527232915525423459086629610043972397256549414861561252435905222278112140707175777413389631415874939108529181387973444541382948000573723831892192736199965613177504963715006660796454133848633535765745453673575115637362619531298388101049427256682524426713596903703265654464046722888327850005997089823903169841973757109865193977624590394731118432853354260555042072729345337941083997872761738370778020943894500993095276136212869958994360630338862575964522232966968056286393929820220041918287067173764332859515945565606220746109041875407417126310364947150158366509370372675812771229968500451463415209000963031225721515647852069155160848056059264983086278924402425411854888928233212992135670431052611408897651921943432677023669697861842823204053010496147697422968291874126410092421737448774238451864679311522578257688215025203167757335971154629364305525745863598883338493321298063510215890659805223898800774182444043770217751134249443392659130052529202543965193592205303937501470577166662675299512147852422839055152232360568708802269982439494306552375032782514607827751198533151939881630360522623262457148483229378769259295489398189469197932085143659847551389546586291689013976525014512331262073400527257281706099678922172493082633406054081191696411902884701687290081910016492013787206992862410433833736772857365898808024360346150919882804081978402028055753823771317868808947158135331099029112579531800612500303729297865148604208413144653359478902089101202425503069703159510724243917408207834576066958562745200223019481753777168029859205155046275996917503319869524761847326812842471070088876315015542289978260601386014156490506939430039385246846398706960194386410819398950298355952885146074671937908395744864514618388893258153930014891199955805332314905702809156193011521182028622325175828820247705329726550236698169980396299348647331584478279611281502893893238417987552094346424256884340183013373126849892961529313536533438991676445022650565205428578181825992010348440575101623713433726794645394090355889654014580584713796461112964938395316833359875234179561429790535562980656604648139437619471684301340716491355365820746021742458240270893280516948962874587029432861829573652841593818158260122845575708453956139029254737015119192921071355427610191105731182967255357959152458306765709237173779096311790811653946469215865639846412739490082800735422553764371417563478635339832521596583215094145357573269761265259729395094519292100230948164473554718130977774580700223961932629256534150500194394061846079263889947767477239580962143287647252582424951644535839309077602846189145962181237149040867527136648504237451106777958315029824521705556461188019212980635313008225956199607980476744567025935383152416124057860734881386881412567129573327431076774389996437757956633828212438712357421598066759585110418610776868842822560273047827240595075760111410264596122716218751460485228938138365175294787150357729614984079309088958156178314405964259577566501978555006502686596793967329519520084507224120066351533513681712737450140426857281791558772639341470846529424466703985397807186697497726979762056130517438492125633705671464202874697802146551742151874243995815647431066198942349753033847902208955641071406719966936656602915353374556813501459477414826223326589713463120912496910744062901937444260539097079832888418188278993036529594899156144358505999957582034769745918988950794674366656773918001908783703905710773616864690509380120985314739313960551848141353232466340975300878518947622567684031518621151082303471930316646167554022290921672695033262179906316054552855213105776375423864525904367731452666125806155800617282593631049577557444435117581804079623133993150490496144770906079243846797740970360955400666518614299464213303294026679706001106040780398308643746927886572112990937305633573632612476166795588750989454742241740016954386256029525993998891389838757062470799485560829068904015692697897193608988451166741628607624064751917875395075469883205723518881362171629065126365279898862861265529787958664350430501747703188757700323014229152322078708725245224268238001009460596288241964135778251311922745140570396817932381905461259352749920100806923052418409416787874519212627954809287559336260407592539550397811755403539680253312299959072811501301595293171728342597778556690012970891396485135435238359608256100799337551426676515039989195775085012869987679414015738527642147816187186628727432860645589071941937234788342857642145267443813369938604099300468051358122636220003524721004208308224086103656154017390955401205582549948785707552262088880293122034063255794062439234439689035774783899753143130932769494773050090537842788098579041973359030275273544845627692880046661034149961350667240246106360241317129452697522779465462049809708850462763505604560014670745074317608599591151833235827011913510195042956133623427991051694895816028623848976330285783608793190562908866919995043831304830632236962463103017054689342015567653576205231864761611725784632120860863972864936611288576750613384448729481012508529543868351623461612977176273025878424981252828972187507684778325586880163496701341363877260403348378156865056597491008687698196637516358758738911711611421069697618693789450145526037581754671297915006476837307149841873833569967546918209086757672142583313872344746088469565218560757190373328331126707773461915339320209785271770053386538053755204431810282312725981814726766282472096930319842305307358400470123555893020800421923755047724481388527434620892082852338778794823507161569958423211754315481230715435564033872696266671204326180968992026410412222317828441162140313611918887735608082775877932272634895338497768877058024493711332060906687262561663126027915920814278519675094798233729869776707892310899350746672366336705439061903381803051097805517555271545203729943112918640172302328860408865844896841926470233385437556051184499691623715007848745618140601983635362688157785708756616677392473141189910328659594622971268386844972153055061569877717668848925719122918880284023713638488805516589217951933896349200916564079300075413160292100837236646758702960392350586691742467158802159772637726821044648685323428763052229724867469144007889916157717759536342552710891229828875910127850363623450473863679385829050523382341525237512338660652072440053576508546208955390892887249547735421951423668576686853054919081130568610673119432515615636928588765431556386923180115487846499357002170047583607866883984827246681804668007826011826924179619229143182372343994071893293108536644992066036045012533703165992315399679392400208713471545347973169815738454109401862696409827785922018431894290983107083753447502769106156521058831978832037541792332240638656244621059623224636370881588626012530397779292404634524350151810811779919099776439829701881492162995298218806516528239819441244456090047269713611215543703144089484523569384748496319453228448726397571616046143455849233987433925940101397748389619530781573837363800181775803185540892356439952772147328281894576141429266597653649501459956376343757714708855759253330222176079721046036776784782165948093233761860369031086849543194946778807667133559618183946489647258721023839409500328208397859916546883522741076762032419003867406465028605089278071375376602866870418567874260323290579173142544175167924015623108747262708170034838142367227376580605527551593840380934888621529943928752284608188140777377244927352567917818504740587823511730334514749401259588686806468684491708604093634188079555690324533312014908971594771410436205480204166938100835285714921156362132942998895029529471500638473685404162642905293021203856050049676910577114413057024772145718415450367027588775031807628038112959183191489122990698918491953417327336899522183124845137509914734013394764295310325854781926147188088661108198794073542659003287311982270501588249053884785423168449016108214348710810020546080605920966271664131410951471860425271198369101635914877789286350324901910968962972443209731900418837261690191029971324296529030760664484408272076617990106632566699916694938785476803500537289005386610911278198257665143479227321156102038226265514986311476535469926267344261325954729198494856464941873069648467142713574896811170789491278742151023651741666098714057751782058577996568453862775598327965579777424051536229967376371844884937969287166420250710090184414881255758768553113979613284226981638746777220759882273541122481705914826931220964971145376605814390537178094535611909101778693553684304274656157483446546438763665041595469987905205873223312085432961907973472718075278772757651378794514728658729190991823165299265548327558539137300630049213994802541552159500901406004903353203439859970676329272755400933754821509152789883873327438862844561989913009192529234384020758150216132313757813208955726263926148285323413813320168872749339869953317157801494603788320024284639285682910152292117382751059384281621870049944761220434638803399317520550806935435292713368350984499643036666522598028165376932408189649348938787251453617176081478282589185071163024203031515079139343754642533879803748001831486628704627647440136405179772066568381116093977507489720094087276821547312344229341935492872354797010961509858819120410571089055250048945336434321384191145614429803317320293772829251560759866203376088323377216382254867614036372105793926637429664181650948341570410870692997489464367641459120530170983476144018932536655270488709992515069701735473096905933282487243906862601279470010454440132124597583677254506761578367747022483478989900673467505274554570462894564086685401162018274151052083449426495193098784414464149672727816513026992870582763250276116842648434100599594526494873962774993088298203714450495522042914922685689568197442197399245021526890156736997175969736227143529918451223248964703750534321828818386688038188574740914116727836326580288834682614550829022493359048029573640366670073150756853031731263941426931682551741268108086922327196931572552853893105684242785166573434067165661467585415616357852932881527768640689036644095958005936189836087158311184835419774086674250071085526605142603778715060547388435045139884877671475903746833172777945769066603756955995913335206906934254824084114305730959053203979315357439616384329468692927984555812976317267276264250693235035671768482164622267925920811051332283775016865723013971906978339671257056491873411528703958047315680039982209850165365657261512378908554222781442918445357264352953997802294886657799312228050384684065342445887543614183628583394448632314016906544708571784299433668116173111473984296754823808665267654048862819846238248593649105202373791251918423649988741841387097371619315243675954516330437524465648490378682331091700444473368054498511078880910712628956412158274050095145755931400987640306221737033040641243682911957615196043304107384944780262123899792930925030769193143247927775517725650890075597841547700721983193246758588702474804814275683818944010092757303717181763149301660391579123750590529753812283817028478295285551738628281900950998034100294040750234241983248766888216325543714683962933097200457566920768893689814223987155469051651939531945678689240910529848613139988825908926398598493220546899708500609862703177518898056271873909563889219343178878509382121604386971180998325154481476344154596914478938941575511297024616537670690348733339534017294724132163905097861913089678299710686651289318332169705184499678321959135992121866612524327853923131210180317714921748872150799556487287285345064530553980758986857592679754149285901585829384911810528362645004458635590556799041172896995360794896411229129872584526820099618712910742081888513698200752419391515130028829309741699344062088155566194834430850683929252662157498071867131753141001077145895529059328188725764651667249566011900642626225074440351090937836808839074121006602140509083282349215108923664526294266699214492225713760187061897037464211626265446048752769039515848701033225128441541182295792725395113226965781642467295487441661128196272430270112250907223189439441297820561998754462176652185634431269857447497270168624757410176716916975343374988760066316643109645859160060434935124634998573876396818963443250634371777310052197591704461177167693364383356919811115350003508915309643622694668450797394946087147418606029838333889538139867950363555837887002055206446552515473478284673331382801069975281459729102604303144788082210340226291715498511099602276807696730863058482491594506707849885441004190948337779988837383481119610909421449919807361636924815964413713694405914978155445563713708202163326617671518117071362450309627763616328963301575895034634847382881390246680021233226204226440201699646220732525449206139218229669042525475461908139055868973388165686883415959622674679986232079328629799968348282782068987235259718953010800202639172543035484824536680184298926048868281569491414775555033805108343922739328740307642054336114036962260748230822871246823267092348259139808197562217812093524117451899275985483074154573784570315580478038552288028664157182682303446888037471737265378056916951561505672875619673621940156146378872247013590576414445412844665555887758933361736359375866245742253612173236556792963048985691795146035688078411801470195686973134792807110729414680683679351572202383358699741715101335352817112004465584729021258708708447833530651179014761477213070450479125417502291327809794359181275381329385733431259333674159901051910373438240934884313000157272765239928866820409487440642779490163664023257860444291519344414820815812414213228533435520293928671424046852191704976672490122195408170076777693737336790726460523735599602794596264839501354770952330572259710219845157341099211127511078784734501102842198285458665310382310166867847358563106607820383205950662442497872614753371496688314086249666044082549077812035975942261328075484710866173951288838108611321286866261686907155071990244397401548721576034353538397444859832567844650626114201143871981788847393431163070907711646548583505322075319033974207118777748816101400556209142964228556473973434279973197358297895106607206022540672516447285534077048810938291458929141344676180234353651530882744239224656445154829376446608926642947165270477273180956578767136824081593441383815469077991138237399402725863607253563274643168295451183322599087806671641875398328954931820823296793283380906252215381057677008946830088865773967596427077476731717338571704945075628170914630099263610435981470700904087768953511598494567860782982859006027657367123353843508889132106558218960603457262189097646834838342982436650259608391953284391704368453972905329977020871840163627247546693552324941822006309443892406128873263792507213577620498408275276884279581751231297697191574552083453333059527927246251420652220971266314937041831705965796199024403247021705589314737330786357493170587955131461936804846627691354083061953512933962060172518018518993477475239329400583135197872705042984329424067512126696278221501115518312577389337200473450195906963048673695245444124807670824911924614507303576522904111676762758343473411212653052650070132387321193504076405896730651672819548152322632782510170800426751813263123248613104957989566408135228550206953237876170947933484486886414969933995662136388122125964593807020020964768424158169409521632277172775221305518164207238146789084579890173992859519085659183453470821630547043065583191273855172126039904648538750122416666126461655872778297584518170184383016810184404007612358993450063592210113586248027057112686011590601923527168434302320464225837008871164050715655718263292227484041917501880172259432718616879929293901324862961828153260269420811130341300188118189849651502258229468660954624109864473402818494842969044422511959388793269774765531013307780683783132013390745018640596637422707835575392087253955873411072199612055558078432781331343121254351138948011468998197016000477281575015681132912516018705250424011777518025458209962757937105309864196421060558797082541058204844853199176264011663834584375322092618282889750764667307590559969160596397600007104861527919097848447934740125963626786528783086058290190907452065492970780790173417264626915234410359008464618671466043910916311037690583941251209440017699179796560073720115991376975492293831171661831356491532024555400978452006403725500408920416548536239622353553039843794040953162754760610175707283628115470557365373856704512517773171216447359093530708425017754645805247559275931404062843357709277391143819436329507003641479956767567565250886210692565208475520976895228947846453354293768528135248025825885065386099637963863667328153155838373772974460344772076717498083569690746545498783418904131311198250058779799078914479452653686995095017302193047678792229898608312246426951811416855272280250701424250339807454801078907702361422937977877006221078481900546556616394836003132784042146832035848798885558852351421319092794139206291598434081580508149143067601839886261695881262719861387824532522404910517543338973697762279969801642400440892903985549603618792660894913252012065693771121831494025287453820129377505246033641790850574369152954665342411833631750455845641776320438029353081459052987796584582479265578865941699209702130169651026807711166053664906598006527400420043539920257350679378674804588804839090551662458590639417466868903521564395130886617955796333361085278965255013939383578220157842117605426781484615004745730302595256682329844660452352376064103275057590086669595991140251637539791581239611098298014919122072974688829534362635553547501283895646076665156893173111517886896196944210422356095885773367961718607375791031830508437895014718913174622286882047949684781915127057284440122601769071137071415464248898719793765249552293220365115654209242376775590826597071824345303366269821919791058056592146865701276333071184266683722030732350205317039911872988529921291293927419773292447457445073210917084018893971511259046549242562384623859889424203460990454464787390805205952188048504534642409148101197375295294348008178529257290554593966537031420383405759093127746180076102435645222743980366952186973803398445831931481749720079481143263699989298563546360294280929402765197246824807442040513779642525219440117070799145000868304054010754509494186033576794647140043341021128636714034120434152468439554481640597962603819397592266114617475242022786983179158363602238737036948212517771675892696015891691506177060262900466346548610953876287499723197988847586495663014084371700577086113610297602745014168513726458226871154588639401494200570944511725532422216507144458455894107706786533173221966609137882298202979978393022583218314146261639981753629359850105803987873490014173810818828902279151091496628194918377232119715566975516747674793216545908375197664777258885120521827406186770174499342269404688031069747210142508929674558479206661125546891922804199362188844268330795039588582878241827939314856819172272625000405195221742116924959030197465583500773786206810593286554159912317664863857099173352902411817704071345599900728200142807903666336078924512828465772943531773950479525057949838113293575263633097567855997750295632224109046084979862300881421897899730277087536004616395697899978682932183570964999430864870548224500523713358159411579612508367140043455714259356931988807558696478610835315661742471717138584940876750161130305229818204535604193246340803372516640747382099976496378749158813192752552230593869967592359631601774195259479827249153602466700651207672676520150444336924349183659108008799896837985228254868431990838337846195069383410749342433165161684051055544417870091562765420227005009470158921940961736210700170826553403619034673981166449841250414893832175837442041586179740197197377669103895608341591253414609282913957067177680107412344809590936984468540120053399003789799686738462291779316905923973634424836853258437846619126221994193873038013624204073791148702902166056454057382644005931025477877363595043661880956365614851265726320855495674110741064183388768138816620286324505200750122370267982534730920575922390393865480992269825545062495261403499657689767099556842873075648165763346767040707878677914608169063860067968796998456274678481708489419964735437486663218920866953246226659296495672958914362591860975704992837367242023493016875927089705759247485464404385316161055184411007234697788907681556466167551140863156481271392492907389386911574312380066794607318705825189714945115090108860645636530835707463593605499773253408160262351286780270927510324622372859431168411943135972280409398147729607045374362967125302681094631509871728013632826293323030137400699092793395566260952443845834312153863943837829399782396143176913554942639969288295795765656103868755694405148440614035252052644169652171022550807592627166293591298264514960989817922162427715957652370001127382264381477983301311704381028575979245698570117770325053277517611640044878877443129587543206234249137143500697891075033344061663587536003139318698404338567480503141990055583972530646579930447303987269981353123279608481267018637329872250836734017326496828488995623848498757608496639362760861796789007818131027579664299197702365716718459776769632700538098594119413061696547582185866848761051969384962727630631681343574593610732831669192162553154750941964759694122064651578142007119364999838111952377640567838973946955727830749680719371121734524465023847859883473554104221780282899464725839181602815958479642132017908345080735144367543541532656722750511000794829560467026533131690765826365700361129804501818082778436365506030311988809792396567872110484070285370282739727821388198988881613234105267965377649413580746849637921825525648778273637198280719603763181376304332462464626971406813546877367564263381371902041332546793539350204374588085377099925597873654703009025148502048900679249902594273287379850803344263435321358061249017983842853847567695427631311350468768583435226827690595980134251547813463798995089305621465301027182112996796430684560805640991295579854344629828157377964205475140140572316012422915659515173745106500756158584619616853073393663552356288590002441023466445252738326557294185101789859132415097564871433344251769189814075089852142335799617789007132788475629085177161312738566262435362539972260475371783524614797955117919341346127711053650690027212406484620310229719194528859425640922335390798792282800495990530877662894677246757182614394009510643965815377450539465290769249760409489081196687540050232252621803030706225143035847221923753248712233169708923663378131577507429118821360771677235143090448507681365813967662214603387329871764932968852982705752140924916772133400454406810052623257461089645477068329283063996511482294979634149192170942278434779760838864642604045580336176511855610117724072128456002232633989162641079892639005448678752205335464227080212217038598602344603967308315718855321826536660138042769076184730456578001088565995935134961286578009972394200568605512938447100323719143655447229983956979704878384232726194591175295734603939336383936970751663598957700761976862223709865281021835371184765217251265714588433200724579722563853162282084476668528279786825549501439057976473007683646456306703386408454988764968739138717963755799383518211549177955033162575035065919765497361979520974258578840654917488924555380885288603354022091695396645317456914908962889787858822761197911238543163729906783796384599862913697543039930879678225088515372917654046233828520599680766267532833121391408829509551081818740597324960000623911885000477033622492410958555803183007112204722852394380128012906195997075324207849128142700136570902641038817312613615844967005121003342631362563100509044350196913032088704234990781385772570211096260640845010409105053608183497385470860988241241342492615350477428173178391459561395933103096780878821911592830901399159840109912865309643854194618475738499928978085403106886100275328237985046061955470267251413922821067983322106309312072336650014898934889802474542087275532088914485803642650074609478897516559635793380942602925298272779672514732411203283202056175528630368617941165971141976990828829153055013165403444160710454782155007805471210454733683926468703877026930139657358828595389238043688965527005062613778255796536928427842210854035356824987121392940062284151398528366819583328267223483222328785759616637934725995436301098457089837653241478444247250087550948402350158746346966366485592552550069788130408655205305369662349881053495921445857656685526644081241192453062379352172212442005824258366830061722412647266909768587948957204030134507864858078933322644965246786108533127738254639284567300745963007146026169822707397935352826762829442406212455488024185052151508944873374720848969468524658875459969928519178583248067041262879929078829907654219309554622421947753299945016828874088114969458404634916170642514362267232558649822151433627971643664622524865375576864629968220699197499532414027905372574545882439851306215051257660588541364177484851557621611001361001962172974122435902562822032499683348574739567991271513472390235590338601566400545221403849570723039628259087151197108180433215115080949557762362785711102430428546072268994965491024751501508266265993481403049189072792029245882289173183645380179911533125859089133725795824644606800653905345199092165408500249322095393773350880698792967957902187033130814871833929758445193002039410201036819622631132674762596296201535625238042587201985370911253849088876812352872717606599288186083287166228464325871396167808361142554537119865170738885055916570982301846913654225420668181559698602027425263828350759129455528949384456830955899686949991157533067612609569747633251138280554180037348402428490568847711168363514910364070539260144531653121396680086545947568003364068712223524540269170659022380227425157659339268813248457529215712187534631219637164141944486128070988482260345207321190123967607586615072184272488139225050202887924400468312828292112003821575794495362582307721807281885028249011156851579871620432825515950450189680514736196082691522667318481134258241733160029942064353243423585512146143406867025491785231470806954992528547269560196655069709914577438666333206219880305278371029287558583085854971511977979419498110794872706105114506722654903099542388004391636016145218744279558332655680350274874633145014661573963383446620499935261522314057346199671261485198357071319330090596259698009342487352925012259540481288998821761315924635832255047709584851829571948249206679847728572703206162508430004058314722661298682511020145139693673622784275393474190977835100333135245269412737250849247568034770033961288226736344612386807440089953106842076978765965548961996516781756159671452491865587839300617390726120148512174252276481913753813326873208310403973955023688256771918920001404258573815771067981457799032450305365146097151848571892160050385666980903275594298232251479952310982980686603451848747317552503084107746020443286011983561833304209326608357652899308212196709982761813582185460109395431997251456294273281294830342786965922901231412513490904568009694864391534945485400977830715078386363442386347964792277861428410427351093469856444155865672826293269824164266775305907573386946183398294990966967559640802265617368206905791598796719258543593927800676391477927924710197309830351926301525126962220542684685558323845476597131529583063281233880204262590528974257922386156238487845705249004305246124927442467567698205343151942569004294444600261218359293770145637932285009282494667029664881309757266338087773148879190400710549078297101182029141461121642579632535504157423906306811636907725292873586682874979814467316063892421677114739423306862134303141926987590898560662817769467827361530014304836411145134499719143420034967265757027084224466166479468492107082390228659814397520861394357867546371541992232582911198724482943309702631027426463982267598337853872633209880324099011051587921549359678383575689904477022219227137956484774030801256202662362904756523545122136434808016722082426631355683640516347744074128781423739424541233269553489677445931526509776104774544595426592684535728640948575592983787730458524154751689846713558256848806362086753877005609670910786909779687680876525925902057691108808298789229082916624382648798447267768959118172509252608133675126129407139483089523185870855486992142284195963849713393603079410520274993178280434396091149581046502344211919193467206944353100382415610644938094264020375051601488279773656307564858977423979618697411689452087540438961372835987927973502088095230933479637511630308087667184685686274662519675624059139750130580587542023298504217686492255095334351413546759909876033914411141522265413040099532809357964588402817605298612898595730366430835020097768799198767199205483148333037803114074053443308786867592108894327593943401709597368325971300718109050287749420913847116275870954319309541233059741906841030754369437203660575500656886969318268087245536016586491783268783737119161549114448009950805597529364685852846075212371973924009222793922825349926787731873601316140700442297351589769379500520060053169990858945380097792430698390828256419917129380745642429891030492845992447239046219889280697146781856159420953136046458701549421922230347821410287484525385815780575755889608780496972347198903742361767020682033144577779773242261006344620883218345316792313708460411000083134666343985732206059731046011235882701552731537900547473046854617929857752994886068042006179583457703948588618061629228884040506171286773451979081914230022538413727798256482703757290040667580997899077195920833361616752500164377085864509413857685696708876731978225861504015630433707297772231906347035548833682278398139545558351968745273178975127665573267450414205340391225229126576534402163245405799372312673694081955057018942643325441072246826503153116281210330493336788515464374906244591343590008418413519187263714738087969684984460210015382149738979643826476295643729675357986392355338114376397622136351533751620175264349483223575229228973406332815153425723893946107055760759237538400881508440763564979542204937779801429134720212722094817771213574831813477897410535142179860951478745816724710294203258498841556771268733414697797145156533001153980849792361968804174834386309990131712442469642241309053688400513069749645416993348676959730598154795224486708833255084464230241345290829821328612528758368913759291120515660657083184561400812392897931172095178858480934750971164900483987622758996742435935322416882199338697816184820756829692052391248517072158281140072886591572320779758703453310942751770953909513898678128412998368429212755230496740618247829644598684343160819948687712865670567101833371634482741838122717420287053428250844047669247531446869017535384126048162466472596794057701876033592942883152517297227554472379621069716637419194045486289930738000464705750969904965718254779268242696250491165675837388338153324002418665267777406899903113542610245129664978101558793889084694827485580823822616402070714406198858967403984831045965556838368440072769224137494469839856345408530386507571319284335747362744365558759909449236689269074875347597639701101322444959088674750404745924296217318316360404437601774252809065742611372511184691777377571159398663329963722308077390725844076977131259154127183079723923504120006608023265565166486821072725636652047152583094275604982758033951214333263694655160940698372617205013131834708042001980710897727847785683158508230536147202013590764658205416764034246401875689334756576629509615115505978795264179293781780414273332654351096659754832208697712186239399309000811245917317110295232655636210200901843680363009436901188195545533563893190567349601002192270587343325407022977132427714833652588066584544587285765153945314742051236600470216516246375128344011181830939955505243612917333385162041896799156338598474391317199621968921472400115709711363916649429645922631098591712491938606803687135613436172848735335580873540678500639327883934029071075626565211852019923567074952178227909514997719036288157223453151071714687152884536738242531090843658969209346426733663672946334681565438003788421075903389886871159087100314844793928292927688682003149401982501989440436966608668462265972964399831107957202824075153999595247979825415932125805552629532851891536484156896926131808425683160902082151955406586328910894285170863118857830567754950950816205036924956334925859671514758307661472699913392195942698428225258741508666536985031309062947396467074565034808051977466781134482982984492000588613466649388679468345838098357525602925109126233104151421990881683239715733191878380340572922897664843230339360889717457983593688399869889311652005978976627853776347228990647420305339424461906503139507473712911656489172038265920408702779096452205426848242207522222345929042190904816547677068191358522564830058704797884969617265694969740580904906107865646549829488313472246604130787126979888065861477754448569075349347616112775957567034308412423841348092627060571152865137413560908090613543258588840197677032680059743834739585001442640099311894170045570687608934051960708721421499590299210515967960140768089914584859531180173719926779836491319380905141034270740597701475130454062270809521784829505187915331960149587401847373844299851065188368320249734553257412482391636475262612268013412559289820388932185279841589697368837578090644097007821541426616848920757392711726354184817351304718183070091036679420939312544474021384479047522953776330401135305555562268909666773910954109497122962121912699061190109510732788781487334593782020107273647999405707501391490099976067136517810901668095464427228226967450335176327905088025999794897784671583897423748267808555680536795337142267065692559725718234309449792113266836100857001371239431228202219422671020892138272088305218375791147859382225417978493119618390607926156576411145973808510408790561716241998099305044727346988654741168914427489433397277962020498485283043388861827722340053115665806454841929206605625297543979476496883339545265084366166447175976071543967265142531011723196338206332661095925368258753350790991777648919831528923041443496390030130461740553883799102663373545445772794925715179607773267261775011534519069162750069598677711080905888225778617553022469999386546159341594970830069562017233028241607276087270729275598166813594837046382872005229231282634174818778140870754535260285802379194823997207195930921803119709128613548445368706953093110596418521280520956175935562142573209901028800746487546203081509789507532284605893917903529526565815690598926669174901510236393042531020200813694034116339090521573493203191929421213251832629937220013423453400242715887697090233318231595910193442122883432143563852733534744374929002800714860424101438350084336854239972778156812855074034226108351233701802772310579035404088005612487504964221203460679589594495598929300457713019016375416558971960520083354879559727035278761004320444846248859476676810916467636059892896750994119363851864303242081306992607710862201313890690917816135546702965694217455966778345407874509305968130246925302765214783792659444148330432316111711950747935149214006361421737685477571870232176330497771997174121885795755798065485740760862563929538412479572463467595814264593825446172671974996126566839879290809394269658779411522433439514421972737343752296124298139479472489505778805031495786092684550864000663979790004094866434887375376360528238400057980237688785013822327929528473773424066108625761321308362215322938617575521847366962250948567580008500629917940734680056592892494078321847551513687830563826032916656563957192734583153346452407972137993421996340131403077156672314735856501618414634215006107342580042242771217538870780807786160196339533914106411385991486088536857668354763026367978773938443511553357859269796750842865232012083376135586190980691792306927883143113666294137358474539919113641742384403512313931847474301550287994294257879700976996216440485160857475211910220076404242121745877005905843391538184624347511572351724020342520969529373712058932676847860083755286104217118954020122196760592891339726462569380744582425792637331861475593055527559065377470389658569573314190784619969400091048916305882260808746301903028260953292545966617260815964760607680724568727157061059259323669078175234029804045594216232433664659201966383942909406796323683276144647845297385551156870274154685588992878510647465808495292082791663002960253892420745651015611120381062247326785881831478743693440181108005821630214185881256223549902159894271975223505135062983986429517918243364779812650014227658265590175600584227651566698892715622450041517353541939881686176100650525996947398276806009705118824950516233999201816850637596110795803966276332691929555433083185501523236147614502727039459638385718632085339197565260776403305250711017339417274699481066280605360698534186811813837440176258818983615677798532973744955217321420059560316678059162150598025470577931829897002104225906444810178071377770559228966096345315525472283644035902910411680086183391313443635469839599762970777232137336518468163104098483780294054811749487638558555444207369589080668625236431580567025073344161438784215602613330681804493707291131938954071050556565950094680211930115398530358941008895581200829775452603757909287000581788519050928948438741351318794202383321123174301351487068166750419378549066200177251908658178820142486891670328427605686973808015159009771415458892632051373529451886190698422568619313422218528192897074641258824504045814919868776069969435297878566765898082583282897172392617672210390053116626224019502137333320292981671394351386801817220200561615787589275768759928677600408683947717017732832429908655500305707966889347760662547974969420551930431586149848563490132203209049244403580001896785719488719957576737302788377657677295532577180327592406850600706565895369138890435396553236536815335148943348227137977925897591356100757748683659894322258095182693745684923616213775994826827152926078618067571724950540236948724141490201794918620202576542020968754627097919319047199906730601363950507519559425881026128800881262615020658733150687752346584552377901316198014003509160706278565037498375959675689408768136150297292755038750485771983797467062209337067155984439689605092160335551287077642076991806199908155413824652570386487359652470981123027798448926664626692310466780583028280767236967332216225186935545356524032529398510555996701448830627971506789278884541365324415860401664667170284238056731729670666293598217064189054297077162563472436657440502740897284091727422042258636574764077259014187412662186013927440058611572246728494194879572601998768541308073723151324973539497873928067848125414124670739171972671750187795735265550729576377115215224477230113910934843105101814822330389290243451371657296764541764218856291273972604563168674779705185316643696977401528083223627268473287485879265564703765241965031740358864594216012598387917511862520224747787144418444325896979391118216843033089417249927143677769217750999450958563748417659764362589459586976705081059042020280177012397724372759554929169809499149275002567139729539054937456004762905103620547099444096500308352287172086629672138008535050637302673765630427717002507859985435873769745640523036314170640256082409703340223115046685247324643731500104628365051019949501928261271286595988465319724563325187371277439272741837291981574431850349630551342236201544217333829647025073266955541007895342164387200120567698844944421472411270679950023727453996840372203054871661543997554313154258816117953533543685900296243778470284606598229215899303734653651228500442638611493611677720689993139326259385191712782799816181445397483601488770961270049240808862602753737760059398918270908519074128355128463162625916620228590668917604728858845582926187109870761761028769605422068951308138258393783305535703233103699220411586043839375961947537359555660343563672598008022651495528855825691713368508264001984945961919084218384921830159634003463248032404269678469198330044069701420537298288038078134971723848559026044066549585947341538494660537530862477650650138084465916111980008200472431260186279581889815309371123806186087238773991658879652168988640988481472144546964997316713914795069346355382109830820431214559921862801739256488209136004704537210529469226744354845278638783736514232056212274674757244094149740655606458473595495483298517379636053066213898126160111641475003852122675659224253357260842364535823931779639319382301405056536323182213346404778987103051512827227652549209876456191382448955661770323901145803188123332752693457807020345480063328748258157508985461418825518280605886385462931739978889753384874871690524335979933953784502282908823441365577961761162590946474654465370911301717318988429964828500351543572569067288708685586161507031927947176168122117982952140459591275882076383908695974667741879118276552405749941032570373980727681662322183354526093504841733187271992599088295436597994340617760933668991244265668626267305415178176127337415077518847383913112703614778424222579345912627891704540494020624756291478708414240521979138246243770445548175680422701489567251806238469666814740774212447856604589875670043218354498771347628848783524659047958081657386008032519991424216191171469619295992751861836620293864727631349645671687512242459699025437643907301149410084475021617706451196733866881769401104523115122528254364968623955207008553574418835504114283415794572470717268931530731266583907385401661664046354901515074856522098785901918460852104492424296548867281583895064808042286152714807658897551462735873557526707702527175193561843014357773337536221257928511612411234424605989025235599035909568806369317180564097672219939688305335697060866225098694699316698171076566111961521351027833083621829494386435957194179368456172922417221392073835906704024090667979055519642097905511937896817490119818603962602502278255566393649547328853767884641045654675491302927560520973698424042011471851193449094152732334528449304892378142996273930915570715782306062113335951320751175822551993315431614853518881947033449724825797040728255199541356358478262424740681568154466742209511122936849609528697543686444189494931059812874863147887896716554221466826983701916867574840060459201962194179497646045301629828741894370952436401690465107548069943616463812656379228565164868229211482144643018776608499149844569317949406267180894381770048491151267611772724401548919608183105833907366488106260102200050095829716657913062854566296937996795601708991204556333199492499016037869894370258259831874050482971257917786526631032737810848937614550661183132443838135350948653875545028976920203497454794437095639305680548409365528456822256519342391569483270295830178960759889998297455545314986180684055281628364607556991370243593564388031200088723309941904940870478660406937214623059771442878892961356860737135858251972583754603635398624947966979898005524597301978024827316385485879635723691173013481327385176282020983997499365598934233467090497192621351690876653979808893367419890043995467557064223963873624867065143832959498730633000139093640078133929343369875682222697754011526910023954236884442648694348577951204621421191414854217668666545506194742469540409981723444753829111397189512106738917904653681446971971373121517129692888530699385262117704829945487819105314846915602542966088195473448749850780815600917486397337086224099384703843049272431694152955756333358547754804081369200059779380989431303385207841813831617090450012235537416869744074329492416665729732163465316804448355340604420753398447139405415884194666790301268041914255576941919443580382756680412671975661569951248661697598577598345384163822786139298425507857528639394744077149303181458750557894772513265596172502110419409577859301101112811969520870222837519981281798204670483065767717453192611987532229472826557526586187249237926436199186025250008296308838977906900237346567287117659754296334106106748304452993239289518451776740581266313050720122570134116105334282719662492463771924337655871639028258424880113524787629706408242696498948871316500863927591775688825885654459352606210936110264892984473743206781382722234743348857945131930356301170329453439389233585644635710293864306938440633239274647513281069467822486696908552617263537121843862930741146431673827766540215254120047080732241648503274158622696133589394727263126546807741098877067018624748238165511800143656583406204604583157648391687008479847266197498507215827967890850977895230051239048103117557610227061977878279902721325595840864848418466584471136072502854583988004955222423761160428205278873089316857918455339579813696701258447930569684902635763310999586475751937626420069681953950636305065842052807640778598615276825755769863863715251999414863096047120837550486523799524124907486666947494637983216115027005723416952710844970239868744958519926645138454006453496866343128853316938961878321964606582197708559916054251627535798829415114523426467568655034357259163773004100297707544902488410406992518843237199229856024305819217487735616575068719014394225915689905359216494736365520515684202893926236046168372400324262914074814887737832010937157631287085654720993856854048704680241330056624739263477243347402733657680745121725117126872917286446851655015282643385441662286799803403590206037176393701222265446892818124646787904106515291323072783959590075380287008099710454681731501816756645396140788217815160464585602617508001147668884903003720995351398023508277447792755502524118381303348670912935347516860078843519309456102948201652380348892925364785037260955012821599520790131767532697611663494187233792182050762233874434177777001017283652538293002253435013417291964783002603614644920292247726076160007441496621305730227572965812950441113771506899240281982181432199400160508574959805370789139600150297807728430630146798784826481666116838692743429954132657295039307138367350741123091984601988982864364105665443420543583545162013883159065222037680679578115262541794108568456187595940427795761516612332213777824216389489121474347864733727065203509685495221431314668730309691362685291557800230023728181498203607079793400698304070656368610636146498511939931062510997112872789557376729999506574922510578070830909337094754284800354843015640327744577768890224105128287668084900988868215649001848957729263372404278070019878682095090240293231406453173843597743639393376124931751927939100613913215507004870899187466046039427000400142834472040908756375984960485467789192898291730137334449580448248214856095970343633279642650929366201035929470794385366903812441548674226469032172356209288636285098871280435469715420303454788761005821407053069442476820959806024510423957117416375936035686977407500172611451535997977475377894130879771759900206762625389848296628938610436347244769322304620344476883936528846973033079339886373187272699236733539841535915779237149266094743061235732573316741226572838863266131791216207515166799972115193669544660976043303570345690900178889650597169929048068157010363131565265415789423275221262463981773312933739925673712951506413515126972207712549939003308402093460245384191118983102568805561875971978015956110806960210266015711594825676957402709389032386101627702050586591746477972185568586554462707303922455576286365224329447575878032042946335434653264659682118177775771311149518682375394837211365892351722303908013614727843803351893284270686913061532417706985643389760521109191065785580129046884903843393469112928305962317871610138584693150178708603452643146065230156126454375450681523779239253007294682674402456978056703506525693537269141340863191463081912248706581766197649043839346334108621933076034139239388679023451175214195495552326117565747971195878104125644168406979323672310298322631304969829907728833668291160632472162574145676085847833694288584075133624921928396782856968194213745834321195693076771092422753540657624211751032507990981457583273237819092713257284492476274618228101295774726099488821397776239658871604511109851972276470135388964810179970464394407636419971951874804597627978913671922318412644966520700804802191462854231674524383526366009647235762559207441887417451042969239956207823064133224078069997353731538916934547629996392516559405376608507318985766691498163721673918502407962013418272837751265411060306985932182634833504665149386145701719251176702581581618999578074246262173130503984189771570185049253577867813616807504089101945420718217440048516927877121227229626571148338171722616539985230759610914317340014993299883004890143334014807919103371127293144775082600832197772159226741331262042296750520891529187548153097353710217660079138113306207287131850878994351613480724862163940684994737844335488094057432848044610011815812788263503930451792474394664184515625783409208658811051075904967016256215491719604702276971932157680197889516844537826342586377589261484572341457777853306181981150488725442648104314620265280791669214899790036174080386949373481064353317463805637884853602240935001367421514279299262212549403804769278895282876056597749319120365712100473529433693742810359036958171834262296106983804949188491580060461645417141372480306265066118047117177346966251519567243351081972011427264492459265833833227435943811248620913317234034762842552152738578600980815504681347542091945731756875062766773789870509039053369662011849440039256681224174455902234292057330865826433050689256229816503293266694982010333098772663505673308929539647238800748872404079624891909380634374306064542064151493384296149824825965847338785718329921130689694474753713548139415585317517594059758465563982679080236539815863174522642840989784523537202115086122994459240923730231627488732496597678982451332102485131826210172161103501605145369174365869256084545646288280077122624424944312471193029834325188493749402381840773817090433758627552790045907852352801860814943869085758951396342656654789629213967221140339547393015301867474395700407014682598708052558575714847920989600725601311989573993945651440500493249058267811594602298340413387187229471489986797361437930624748878220925111957946369333513106451750653298748474650455679773081541651906097880071387837263908479467054233939899227613602423072832851885785333084740483832455777029188594951984632874249248023802719362463222387508823619368954663281666887471422719005650210574312253417321267737197850159624788425149941674502687203867026493598069961217417942706248840093146576290702050337176387098537656558666086506212899041101057985489470408214265716366598467858102016987449915205346566779387598546355443648104116812830329360643339181808951246881310789558826578763317576530831324542406891126537148609332239960903129808305319962968848010747582957450220825682163408436603831425641585767745068279182663970919909194631922605863646613000892281951035021057232370279772924228441331637039943011677056496816010413471635593243045996233610222773843658953143495007453224130091507384165629205901953981182966973916416217469961632779327658327801650094679058771224041197549770364861087070342306138555446228561402417270703441645844113895975282409476846598082602259532574152930491826508687427309039609480081309890862854775253762507241475125235243009145102665674295810405932231439369008039297473788025292595002055480191111062280616542754403797887725961176922319364619238836214630691673372726589012932329968232408668960611664617407363269472002785990458783653570865056956145601808852564209417621462447955041021498177762540069123474687310264522390317466943106444763919137740335943158851075713043298557624395112653186368323938303177075673095382390605927497678552518199157810147354173956880539059030953576898925560957351486131411911317506793525881555838539094925505019349799397308427263774143170859289923179421482673633832124565376068825118181717318525557761884537162213165025132701789528671761682455891752310062918618370752999104449168587085243260977235988872472430012916130668255177158487548254647589665200226436817712167754470615866628406111719016371567578462619158184043263394168822745108663129236517816818089145252823643643853541419840097043972464839833441319659608443560182661447889739757504917326160490263005221946221581985553978049618694024694771871899170723023747740226944582692009887002335474708997179377528988557520520462207233856111519082407429123218787632345176477557507022635694064896839290254623526207597562000886991483325076718208430857589820237558238789326784911096288027077826154573510494148032550185318260700827914660680858542609354795274687020065501775760165148217209294051592871364638145055050021265884224829928882973632043238324920225646475059091702773016940438618838635427775598295458066694885619701520268667478585002252241805498620862262384094141597120763806583714623507721812010124670571341242201569676670294124190181990293084533381894021063002631508666977275053409571069850174333015884292695145881574200819177387004304074871861142479785683880872436714168345620146566283145386153911006048215841387171003809803592649530333093191810318824668777675918243860341836216177134947265053948131986968923390562540139609281090433444261832145050879573372416088115673766349014514838336439629234881807015828115083366531447994669688141841542545580648419685320464893138680577717289786157622558215900158584104022908751355573454122203336583290142182794073054365781609315973207793153538894655183463999578931496962176280791387858095019261450622398810192374984875353636030779181952544701415039627724127811378863339949937129381161802107868217780441193744109354510667621845399519432159624148866288386005078144291302446590825224689637100409216685583289091141168988728897632494505338745862322775914351557631195059869008898492169243574765687237141263641501607874351810223001416425900470336749155957268051874817693731779965504873256964223517904322789391504617089482712390865833775246330053752250517002888391350302981279757859507460055663409450354260137224147414398447872369380708374392964206795460950621579537886521294820797172467841131104946072582307071142692440536224549790433430242473831428485787712552654006906386825922444670839555193409565405567779172096719580369695429954609509293531307151506153955388330711438045334232910829971860955840276552735202264587229343426970556038976390192086718332935806567436968846157471544726751411960918214459438845092206734711156499899515365876398567539219194380186305365870088534217123207848718184109412933069813259960423373450362778943624961769375713134288889205031349283256820431939193635989990236028827385462210737643178334953139744503567691534069306131930867319658614594652203188797820058051399617821917515477555855222461910152312857146331445555572617774733445634390528772399895279943681237156379594777702527120286267969970816241462769406161098576982911216692880908935881822050472518880241872264852295230275556560155773261063855545617287709430618047198012133365408417051116766984776460238907712164100191468416900079415798054786823831907084354162210202466680761448547639800290388456277900501039978258361066518655840383772525228775962349318280792653206586732062791186406291956122941221765371094258724574964620523096968708539002850975093599686438368533027170330173461834411230093601235993180644064566458690655748315083321771224028800195882940615859620669789429689743960913299067197729149616139986442025856807133528819894772751578342140454600530832928483271455573457203951389536585136103293255460442196141002005167263485104296227819138293645042604017349066215526739735786265758391052759975582157903475659918263776103507672351388950235959658332208067626997570501515194879002710467194251923038782258264404259218818111481114837390814692762288510562427264085079737647830202358279845425085298296289148031657873596541182973546766813747548246642880534726241732132333911560155519345834892444593802489073798159772813540796009576739839292524675896132376144312022262620260318633268895220461281743180447419723267237574626684693055136814979213473184784841949059300913421641029573568080487268707081895697168830244426978274270369182938101719877839837392125837130421611432505398700020171107256043423516039842021064581865457008125674666829022995681499638064711587941798147581684388753042991731447181086154886991278520510128276912943830829613033104988930964966418511403265259995516373498890023585534891815108138608718952317638545366199279613588088186989317985649110986394821255388089299893492371900215608801348292711881364423396364076181061021799488141961991528957141814458830584762513408762664108361610386443094397230478298327127420201643041741095204994644214460459287380295777454952790358569502612545427641942758388451335100712617473764316213976400851639939686119646516043679097380881586923943288889168049419528859839442687082743030607672162378188074141375569665359673024189825062398703959423264503493174953842145868867899470352169811821636033219695917179321088171196897727217113383903640873831291055087207470586291397370045139620961635706399461167230951563074888627905940744635216563856081675638588681791835754430521881230487634752681913830037482998700212506243109195915162658416021859315828742955047720525661693656417563145770453514681427737027467864966607052979141854993158856600315687346166505511563939699018007260153357452214684004498204958996517351090172199621849785353876241615065757177026506854653698116462785132379786172724980945300187266622136209330530867434730218325197737314610837943523207885627354462557084368362213216084346106600712929416449269873321424249214890503634320143639159552208688770738918198514302342050735955087356381375764590125864204743499564230924997017474049944378818024055317409825375298132361023397133626266084403502019405055133685763531194877995964617820585280474970366222281108784350027063992973585619372114949769499663103645238506166939966677250973780277983795627782175463324065341159068010626360978053767721119353930090753051843149563457290265402122094979617303350286940128964147628869423811462179184668222809543730748715263059792935048954541651359619101546049199624487008259189797568413580997683072460626301008972456542960795990377719797426514245120807924270583782586101753430811298258936006236834680338457276158530642546976287230866226074981669170319069790474788989284060292431004909520911423539233313217921708506512095028061863017179659865512382222343766878014979119086709942764914154989555032636040538392103619710154002797167249019312809938184870416440402567321480755346906407937311248144052679136167129557931448376907092535996087261333374485969607289974109142730743968160774828166223183014338164738559663085969072132743811752429922537691307441191794792980231617562780955959349467583669131598519687532680147099398850949598177517781153576459060623334613639079022307025659890556651953709397741221000540157315397780707485119519877192919116853260740718344366889149357406216416623467115317515964925624721397960317447438217930477663904225488812625810729704849919034561324572161325741618004559985719403432102818734874299430723163984450918032228071275195012854794067376764516519668866367019383460313197344099187797830203797138049658301169486834483248403732041324689136479051938453253902831180269206518404838913143294925576296632019902258515541073624317253812799804916768266725696689071022174420469085557502622413751247653417125705553081651965533312494299411549664942639123807009980465158625073809009835249320397595727398191599720724797135125330716396869712435272678586345036772625500018430626501534852309842012375822976706621992125260363161396674328576304281378131400311120990620942968322749632686397403980358475684145858866588826288326175810076610777887493767475155203260561718249161780442351822902692225450292883312265378694385728199756854673636081715120579584377131162347434968055210749726890192040163211058034636511369189007812299481832004826841913024644729188690132205950450513676852984852487405755245163120786140809499291585671856591961165784415795498022252149165872764009998382201026475695869723457696041610634790225584245048453795200918401959733615084848089598763343271215224517868739660295574324929134774525906249232613925165160066847743409268554083386154828168830712356556388491818866994652241695506239579585824898430030380586790858170127322322963873579763882903524705953161150686335670917038556011095212627532918106293587709210711322296395584173390663305493534197247069999237264613783553269196523534527102489094753390718727751446895195850528393213545044986848850306205680987104005627338071334020645715513691398551988268195065136511857715206567524538013350895481984991251128168418133334107810072926368807116118920313552598160849951156034752011162487608683923135812265931840930870653441249188497140028503166589870120233044038310739915229556377342453482497790550067293607319493601950766233419145643476805458219501329625200968407406926018354348132240477406125795173145837389057892555220959722025897750617167808408603390675487428610000671160173217597360288094956157553375981907760569367632333280915711293524414420218741280663263568959078205651021029592839920495246878475080671994787279518213473498056856472812112239467925684799187292199129366830464464856631426228586333442430805512923588878945684362819574206251270939690668863762658689755621758048945922709489259483390021213885614350158836492904490352556760255034664387309638730238986463673243297911931206004860476434563358743297369943425203160049009093726465407776199169052329921871493324629729694849593037568711042882076941829682072528184641848590278283007378704113869647271010299593297427723610279159483399856063999741068865979151472149051797684720799190189893664130029563697627495184797676773042354055170998455039298941330753117636194300743596660799219834511843907052607048829782749803839015966898236671645336241873990167556899146652032603084418043354845473120682916249303714486939104905343549770616094826260631772266202330221763897122666201541903582892218579299115054003580664018372711486989184344419684010259073855005798832377820708416006390189581954491788845370678304226485401112920116935660711911612881376136735096327226526631727866508351500236713683527974310653591414529162824546007622725596266737005209471515823643690215845920589303445227840620882715778008531368282189348147637729085496765165664698651632770252686609792149041241987390321194262024434812573432290051550437869809115736062797945287787851984077843729871187426977820004133527758251860823213334070363094556726813844684876982658641589390748733823915460388612211351337107604430589140250055795605782145532114618933818296839422948244300259414835115021779355745271511802742441911735523139997668172411664802361583667976057091779385220335604408177204883577832043052816484820620321773661743115971610597773428814996987857720550104016486988289589473121438019887002845712211357508916182000701217209742842399541398490220908465965520435233125097501325800695387038896987829724205315118422707852059023156968574790357719883062760280686929089000773252152290985099970154345287571674920249640373043142526349357673354680841457077875622632374854155258614122676137081073837822579494942994293115067425309924386567442611592505831204334855952532154837341959490726322795420705208097665476523529247958949613967417788005764449566070819548207301375293769188310334952376870047443951670747755700329039044735728811683418104891515982385389884549497855316276222992727225282053009757933652666086669336495633019296249765233410774901319549246899043070880314917232771143906498514034083847000665342306673058759036460088454708909910230754611528662935577797561754156232746388753642302876515671543884257592459253111313107339819911152024910854023338089610536761831836359346386852941261615511137916428886260794380391943380346463462458499610723251294106474340169399021879038549958025610235095358945287743765461783016261713168237342289633266881848534452107646168278746876287541290050770042891662795444683578827397985848471158964731977576277328906202863740237279765839386110650428753473395164676134069963214444612924704512994117080867833750780397764776411316322323119735191244978031810514279182445321441687148415995031459829301449210351097695012562265582260834990051081921400873444721361961408920069544716811640610512006709042098620425063857071516030818371218859782477971408407842894431703146286913220875365666073990139864582360384588492306690888669401008869532590659806242509437538293489868192497822160774578032492779780263460831445124678913932547888632759928848425955909686640082717118542629764412987830976909969942275624956899589377251042389136262082275810139566138898953342220636281090074786654574240439774691633280454925527167065268689472149565364362362627240944587644505493283279789045109521211920778470319303626163924742829073544284430034925888061450526110023532749829970553483768411130304566738928022666918654398969397253626341923031825264632380654918057259020106391167993595353626477338353846112522242777836448681111643679470591329806884312108380491960341231747978649627860467715808080983986711277601368928830709609528680066148830208706395819346410727327035649599852104079825528575794207115723150911230482287420714260453676652952541521510238202654170927946647897027398152098415350065042949725760225791139791390321474263114058296342886749539888381288192733958735864984711388991385859595039790196424635675231562581774727055752580610958578288405649987503843681538372200132720515736178281090874375103045369530250705913330017643915163590747243915486847839864764554741330232199852120919391058102898032976168359906934488719900546427940824001854006217431758064685818963138288729755907881106684487602910418116116403726685152737198432059551665944298537764151591816193902866878222818645688965471175049892782329560591121043904555375778885984734266265875611933969459391615174704122941436386916085436857292341721201179874504657569902079886812444267727703315954144004120602035509418237807148571642937198529466497261120836462547491269430863657662812491657077665049370440724042959472189964210329699887664276659113217893612258675212220297564588296066903895607705820022580195958169381558780170049951209734853132322742642453552444902953396996032828062923847949990513022750209963823391920302503354748630664164617504598085590989277535950893761947939107382243980732223414953838181672439511137667206108178137273465151002087611483536897826160750875172524653739944312701069640428825265468174459294612191416663564980962925104212520696005981421614941581549689691260559614311973845082396531197844373215979974470486350492598490142299573811125310222062598944073362140781041110931370160402706520893411738586125109527595405453823070281245363427462327955093566104632800129278780344120955663748735789819013589289113456764240787757502492164464467477505645879001396735277340590531043160647126827054209115955270580362097445187325133380960981495565641859374949404768430307764805252148323739320898083848797802235253951183523277059040877129429372714291485010493404652277042094273539833709982589726980481387766907849221508874461378235385639117180051434593482204740487580834643724560360690827621585647826718666781017219180419463590329248537300991736531791366464920656132819552847474108354098552503718529259967710807561469843205878245693301559835460007065314417592593681628196318661464848572953157036954728423797820366704998250635295766723254628433811455652059329868699482109070595692062115464784485592358189795039739200021170950200534949170901229582775203907785398965049676275927307421701529284543713479701309365288694030309056006798776444144299252080323077457126439654135005968774811868642611078529149667430940363545164298947943103619432168870229599131781903005933653837171294837734705424888147984416796457263022716978336645475953934738258284442331485930630961845001504920794652633329462451265882670751456761338624075798950496588478235647554512955013089107601841924737371879495995311192111320650642740899872600973061695788959848874958908783272200068110106017052960976478326116841895597259987422912975741991576843344738411189625825291506285888584889541474649627589958710269231883377114915440700348403866318880351674717180007448075887862271036007368399223204456872663426279559780664592452102574963427390440284567633729800019058642631857057572313719601203751388921845340415314469644569666885544575529342549289245112824587766496637276119350163271554722869922058700552433859149727705401087110726777269648551972959669701187219154117237953287684340516883415463410494530327487686218455375071359447960980451940526867367405730865605992128523120117999657514663223418659863800133406947140709866037960584374087334658351433789593152011355092035275215570997341695067768319937579638450627899189754736534022228806074765520597440394929367282440189627191387865102832869374839958539152844982829972677851386477588376442404457437334614407778919797750922206836360100113709704033549271450823638212014795627157862555098791722155613860413718571779035764921926656017175102756515202334908174804635980632352534287385169819217908977461759461914237217980639964839279341173714150057153220251719557711719305878185603810967498769479776689179444720530915831371470829820372767340464568829881050053127880742473064138149088182559288588535391893133860737425894486235676818594680310525269795002861317751681436309476402868537290550103349351185507609515984370126249552549807761565772742582565650342401402420100169746193553769238300485538931326140461448298318656493609037292373303782153464141660343778451333145631189569181442746363580778431584267830446535555974195336551464590390345413023141808353345245835786454545521986586098484269942192634548302252277326757084460643617909640937305935079359592690997320125585672084358856540551141118449855715014298931109316385522258284739898119064952290616499599162197497149666668618291592180276021666331843447083304973604583640566753723119098819775669270514028720829779251999837408778545894915090404778096957221950185709645659010545087154473000886547256658065251077207794069768799302966198713524216720800404342348727845538470706805855572332967936612802945817145562904652690579987936193776545232352343633232912403089792584983427123647609874145360496116926561050465622090244979045669515708387193902357300133664927865824221437984874751624958103914345190528231965831171727086602663215786717176739272598995220932223596802583799730262741711359837319948452399776632254765119418798481908686326791658714627689552315161266459283998269357214401918601353015237690306016267424338538486770998629797605621643202535261355690582421276389710029814147944150084491680141956789388258558761991212797441046717851841321998307187500439271966683450459183585074438721697785499248319494443585998530772601227356120600604241103936604196542289227707127178919990383181030273508981687404456220135141618815365561056220243898210370657580029280310999303658796744654783514263027718281437663094167300246631427072857364526274225693439829010205225125988775693976795198858866974045871735542106402086293041584914149225230215941419603175198057282757442217276844397718174675510076928247762186848005803687948455616256656556009595872159318354871453707516311360841968579450529531884498310791460598570981530892003252072482392428359053676664545449141626454383577739856776129015211556762437254823296069927327702210268442995542599850029699472061622819748974739239828929435249484851596395095636225809398364934336388296711778684337185315037026709698405564910190327855192462764588195180861432510530848516712851668168463093549946646353056045662918060736433694464546797719189112359558857169036788376086137104906196831599039550278368509296470431794241086574730704436695081768667352780781264773071839854266563130888835202257116612215450277139087295283436967186968508279879991835180460376683316582679053800807964496361879916525562641985708567743647697624825266442691468344288777813659791949089947594416101579849347460275337734340259126509254475351231873494570767446847782032072355048242652372136477940986563042181890441629572351079789313368652909829418651683031665733486334927274257324433405117364237804451812086644426121847476609118686342519533609187561637287775076851866005357828347090550603410283367962653404947634849481858189299122101791762425954157472306920551215907307796009658424659059438270335971541510695935345340987592252391677144345075560065596842641988431717466451960488452879877648344526619084541009073361430278437501581376420586717811302454459913559084538063321461942486615179698871636060373655665479235195416474047652254922536685429477715661250176166330938197249810547828828448942472907729139445041878266454746210405861413194592925326486211855646478469218962084820841875500954388194561623077524482077371064038865551767765785249385048952011686307988671652366729705508152613993709179671484254699237037334992089967721249177825388714349046061729831632032025620801058312794219264445872122616239323705626086894297587126676222862592905913368354397108116575200750208147991142291484095485920715076816137339933208987696734960682332951179443651372349012625196401130147321565703804009337627404300840576466482128865262304133538077200934911234876645821645827115100009534905748794312935816361097308597960898342321549338901515214837467529971466824119478321322358003220636526176711205524062523330274618592894383366772108372435414791618550969839231207359661621183049346700312048188743667362142351057715625046880839020647422348489761953761218764905049855295428210242995210978342569733962575290447529935602196036025320728644892941156880038629986509914656480466067222205619521146836257117104427812088565515912467063786851285303712697402538944570342360170094997722013606276261702128602296723859293988439259014123623707446927324698107250257689460843825162639208401232114248693725719534365964066299015632388447316019355250809248041381644029321865468044758551885223462130514475168786339316407655699980181492133628483946708269867417305813429535111013185867455681071408783072723213938814334899932493597409363701960943033049603210762377734333373687152482445858261417256684922498843680526307925472627011385576827805984872072443325672448947112400797997879178455304908914020533000066049598907691958919399772756215747635607101855160732022662842195980891725574841893962196182704408443054008510641455904036862567185298769602315020048244499219302473050042043895317117509829916669350702360609435925338210018213069273565139090454504952687116753371090292315973501993152484481969605055282119697884983689264053206004432207441238894518147039595975954480057189394403969673071607895094285395746719709639258716177017277193714135152965831518349305631308005111215805894972522081453428703966374599275586171173738832301857883984462404343012028405399738600272771361986087196426195240884068273306324348413258378865968405706061096485011304694645135292178222062613845248814117295692826728146526048294020093776345445314015093797275983405777662244359891003377267146653036706746914952234391819652325649721332344618390428292648609504893300598373324816668576877203384938575585397985920751155394000083597101692892402889347009904638063036792531972299733895571344100980436514215412433517593094591786324883674881250478625425777883874990654844715531610769421109919762572618297057765884473504076641692791323601591707108349473366920749863749061416229960891317008765164607495958664266245468516892559255541548156999040582416421429213215341679490945076416552295977982894381197941688920880632553250062520715812525764400655005937960390041713031028293400559373792179411891159515089772759746052230537924863104338232668824960327126073841646413284571773766070568338933878537625713843460927664345626762103896721936676548431479904242520571585911671871992349399403694244633889653981169876092414933528546950863833731558091046423266685187400327973855963243070127735844297098714012043117693511634172010714101064487319758872123253183908911196393669885973029743308842328178781027703177796955772206633336739782721328006928579672648227372570257943479853487164761782265950638340317548955952134969516765006918396786788662823216388016704272193946416395784417016102459716760416669417220658079290788968952127680608500374506733203668162975179586661397086530324826789275973983226928158160147876217168348606174399362086287213514546028467929320478584067745529806980515764125593340867237012288469323089051309315087695811646399654244775249873811128749451777916927987034451378861895688436746933047393217440281467445225893966746736551818754927222413749779750388225263112397340546034971332338221604281618682549210706702436643824011813633033921823988558923544250654941046780964397213405430637927872999685765418818808860416137657861828508138452057623664612249505501769036734681324399258336774781407050895862110465962175269325301609078368088808671461940742676353019568687633037142277073179382088725923945022346816668847979787907375603315016290270970154859122106672817339403531082855954208214791963468729350431138791553708381131365961670363031552275381208849266736591487220508278868435781805588904187625457786890086925603257666144111525687444543328777262299594533388557314970349715202653097376387043169155227315749315705413340574637064561076715833351299491917095227659792173745582967701800487974580593809476906086926637531492156509537511400975901478053053311260172712745002582753557024283841211666960265337850144105296748152909840580303832765133320036984964332216466197068291326618675069390530442580074838455694817104087886515736846567654864154633662685609227709135846160663206826577586120485210140180161637087672936132844495644290707789454000419625854478163998867010277585677269989496587765945523935101009957259589427744468009680875629458344544390039181166440651624624323072565661437113777032773414849524626873877987580048398987172565841455234399638538602082190162926752686074051391340662330775460241160134805566264805434213273667652891029961750461583859214076035131219337653285777066916318733718022429704288890808696606971059535160164627583037007614933610013866965221685404158150141526084693205474352156752957289314718474137216107393036657650099025235547172373091985854816353004877138665739853595262294379550003094942881265047446268846451597949015426834382644381639170506167508570990208930737382459323948009810539163608190479509290089613498567860097936194497330255681610869223509614548398592941825030502659335797940214169550380047977620820337297085756702687530459002164859347212108196825319736351392943620874100664753449329744462956615542340241903491204125855856008834410756354889310224383252186584268370598095123617358353999968216218691850151023162584379367273980141504705688743246922006684978227593099427535838324567878527036352837038029438361529889676076034830553729037546795170105809040069800427095041458899088055453290999963309310177833995892846479468831497567982184525189358735345116970599674937299941470157721313473005740675080533184479012884567649375272592868250845740441013647519564420780012845004095378267293482048358823582797239891057849822117777804375629178137229329147299626887268563128070968459994272279257057812126195330241119236842522301455725578641470689533830281289406469177326514958649946673765832039832603078730984371977764378104668967814523653225451219483100630142129627688299575672998204487358423668336068704105208662682738051535117378829902140020908150275281576818097343526832153688653015870563185088693090587768168449914843393582479524315678341085734007783517195856249183149028391735740233074460537867017280114199338278114479748862728793583961241978316976713176934119965119808518613128746004430925359392744264957124258791735694090392610153199308845979806516525682257528606185688559601909741049597284285302142531185982707106561047358317850714209130428039086894033441768515190082761543208574356363338494043693019855290598580997714267778887730459792820435077682105918881956118101258103544080207584280303182674042108216333887107179882854015440870690219538972538781353905994821956677630661253635155100496394027096400045858893533715155542756130386343801560038577968616761178869322235770039152147504749782958286580741494846833988737458592488703866030205602976399202603472680175966687802843767899965011189921440334894694267875350953546606619748710694385758461432623351083919134406705260523547893377750460707336362465889434833418662856232952867810393848027575187264544296541374919807834489244774288066864069791229326935288428743082480230019559067034977227389776078089777240198728342516005376242715628252990856759204387221169873166591842491900167985279620497260358415371861400803132598456618234031417000747736824701021146895286319538197850757394272338600913578217341560620266087073116085995974507507592384905768357865768348865799857499402145025317318879509501418633741930570946611960457854690034644304581384529116345198620699657904721988799868976156975268579109675936174194840871774548775905889354947314371902393568963079743128350752167847454440179938824922148662910949723972200788681274906275977837290279397628654096139154503407496772859742506707291487913334192676912723219627539394131799932991765670245126871266593909083567023477358261514226368340116972065601736488621200605790247349278742034385879773705405499090300598170339483128426308307921421125425329241428283507926435781409056215913018517128811240533545252629403301798880645742313425219782997074967240279379597350050197022188909673368844728458189615497540751012820798945763965939868425948721150084035532943065469865368665248632948520021083947493748806062566134051610614207134142214669978029429407005083298230743394196952428885448870562755072727053174983760690736973565679597264048574220792226912106152246610453458164517508166136590085383845455899777960086949360503112088831149607669013788297258165314263084285869317448879786450913639120131498558628143299048328411424743672289076284520931132941414946341808594691242110977695587460551634056913345456934177162406507687736528398391335168935582726125410693942499045068341797233023544095006334828651199075467356033186145817210105323644753950725363340336618678707532216113215744033625654781002783654054976857324415692690894234289830335014794471761495149669137472305218063145339125755588578109625320614340806182397342037518760061335131607803725244172766616202830111537865831662629882829422171350292035731937002194482198719511290470988849100282965336105764897393355436150545594695511553259006427896299850606004305771819460668227465743950835960645691385066995965690523066587005422748769756195296463184203433826264866352262217723814177897979850849617478246827056648334217287553894826066257647531871068068381352287397223375188794645017756506806719997394322681884262626329804655844783643299590355337461701699483264800774460383846124612543072220979844842425313422356900710772623119672873750665303608974847173964486668704526728684669836995862869610692902024620906705447255197159877189783675083258836229983713180648111194535471226037495363768174930291050207413311122418634753127815082760983195357576211961979284738780957639742921886277619006044819329068632431021229809090467174487655431167057514421581191201281810616337185938732259359865580015449760314258659363857667867238053681930308167930909845765420910475936877454400444940163393958403716958663175735344909500944305374108228324844416305914086797131545665061759934183522984379581241230230349266049245955492647917844392132689581991282251149257731043587974353069956614643049236691478666196356688075981635907083337875724865004181957757536042526387327439773354142034426706036254763952462610784130737577863477435108209805155916197921388381535127167456652683551207539332519641492479362980330565343276962853793031435866016327460956512394524100653838645579427408723689510161364060624451260580219507172228627434337822223645453431530906805118290201102981894670566368128846638865083475943979793665239415881525102252367328590148769531242657016981272166294356693015857518652747912427541000428204858128179617799716914887794927872225082452445508997853985798541796008521286708058938914510988093099919616302175773235191046630238113669652714561120025271440693414550927548980912732474146203948665043603248497611855938320232913207799499354184713125093933030383680112277608461277851977671164728674051049812561013299342146149242748239936359002967727325606214935734131846835268610099126419853153074899083006023005154085082862577478155470170349819051958613295291340515833787707966614147021089248702605389599237270612363151729420198512858652031412995584756248149070536174378551026005482261683809114390994616373872737521484466664286491543388182838824094227471785304631392490540582106217793099643703652608408855802921275691479209343380260880724859249392077442266786486487860066116744631443999314666790382496121798648070321464018073616193881954839585752590394324934021988655617208862714894689625069585025497507765077900717117029997150595761999484061013417783666047897616382645427612699515049403536766606481166879811043207217578836832830367979295785461225656782010599179902818415879844936877167014080289629773009679184218968060200630072846455334551059224130813248077667583816662852556539627799297860083426321857679266863250808582098542081310512714200628993565456484245909957800264242316623471142827326787800723821266601323584750962010972148467762234449719717252809508127060769226629613716244446444403709865525171883933456525667082397948660935988709971667074773287433992728117319359968717921052025763640450950946807762188986280319288280578183717342543339698804697387750339532533108989610165129746068159705635821086041539655228870234722493349620305792392277951025260473868434623091876981545211998553769497177751966749606897348545897376899704919519517591935270217588993007641848032299662751527625431478197518029677297883099246460462722131134443357719755277424378021235377111355781996057164009418067090560181316141489350771857383829606104625738251314879499330655211693311041542346386018410005408790610321059601080893664029685583470803563784303316342526742313104014512878135754391852208021098276624791465479746214248408085969674310647956814582530649525398900359213437753148018160446544966264727140849723821551704457899264379685604194319653758223781179571133669423343918367590506181967803151553262858281648202841913950828495717689019115470668743038730350375192481981973977249361821922254538430919869737928629461423249676717550487116875288377998877391833078350854218605952877847061507231083001753605154994806346437721236022192899319516648892429271028836573792965868970570258022768301316743593186733696726676515771392746445761814517481134855574364821777216509225211468508830675612359043201917807709642541829793422299605207488459222240749026822344138651565441355934280358459359664836672013582475572945399390121713390428661239494016743397946840776764327798742664991049287748856319976330575787442369040106487354016353963313874938429166624429374974378399061557761708767518777390122799323678870154293835815745128424924958138157035064555939958653636498245080683962754074120708979170706586454041909774245490549844311870091814810508033696295198245207384363659152887586610396164053675593997787506424188244657482772263004669830363736334601009761566740605802337623065962861637327781340562132131735936252354396115573352990916321826056647079928879018991114363623710115596060181749238767133444189821754372459901119308733590657129171913382279572826693055765807824196659080945619992368492911453963515462360971684271256927812129134504599578232961712856776545251881614802492753321633792800301554055184479406037631597886633982457354075756485879114111882297058864958295319418682611525865029030375304317417409895771373756359746948836112166376701596356238051576867059372178804671738100582550068318467831332342417527241422832708166963967358330767491065185849057641583294851576968090132359191736177403651121597212432212466467597599324453593187667182645222449466049924292453127510769553297219023879994921247804761125771475007956147014836438820502683061060451853334616417231759310943941727731725710137534604816764090851719527549173092552591250926094328290288210768628301755733857959503635599916471043062658130735196920494865456879240561391460780503242265949603859416282419897660854814758166459119859232427516009867084519073060963031145166339448040299768366485882568803493350586225588488209071183523547513288636652022157760710620531597695255870686371668284087656975781380395481381176988299518590170344700402860459741131377834040812837642375645610814363070925774402444057760870324031706141732045400982926959747613502026060568542656997797262521821600030011985067705901286843377135615216760974608743020695734317975749832974807166228538892659517304897284149985640495474024563251083921405500151154332946349768799284578657719070183522018305697732406433433031143053937887057964409020682379558486440252177442521705600492046355036102198273336674603277321631732518320413182816625041100527492994454857370142684254671348703173622002443388670121303721015015996447353990805773483929958173221837380886591207691943802231403251270516489097558362521993380714485376631064454614655137026576360747491157003674778576507257158903685785771939112165752277636087792679573645891612085310564779877792749407382235327129818524123920654029958271932978635642024689909434821333996911980070148727229294627865881602119375756680469961356019917391211929214508798284359390007016890858424780812554106215876334746043755054510942109162480773224025206470634650008083029347067165859564489878207764574930066559913525251771463066413561895033794285010702238977839171913070107586293052485602152283318508678971013272275562837447586367460973506359256355461985980806431699486769165573751434519150334023124682067835030123602068836610404324360704486999285907272897562004903735165977575581020641876365465104119371821148930586765406892689033236391882477800800519912937383242701911182463678901894898075289297972335257493871689076064404838982619507738719364185657111337792444829959159644012710566302680913518726410596856696704317199209887524054598484022248443028663260039420161066291846008800796694235626324578974537383699555456876633736235750618779432562259537062622954362057013397683628170926059286594136971696896659581718524707910952292269645998664614177211023448556600338127176580359824401686687601310906568070614334403241945843994596114549005138606780703469981276391938667628528726578106188374371911144646891637548130269733729316509619404949116762272555301020182987376967868452644968468212835042168596736126481771899062896427171101698662240949763822754569905168846553023568585115548046943362113892510412875602377623381776389699733035656664883616266689116004457648498025763653786989906684441387338953375186555166445461694897443259513570324775650940229579062831851008939735537629600778420083815773401370750413827947222457798805581508438725541336310082200334062364254836277523224484010941599557779190027399759346867466781968618906761766776198233247603508137034003475521362750597843811807315285629351766247238234565342926706066393112259473777904634397397222118187633066490250147515540622123907424984031756956420407646600629807944251693338678932157368841435556806534257722767459573617377112744841462307589549626321226708613373643946074459394312353806669593105739765984146713242678009494047868388240109727513651744480039985256190152891901004391770850284484229564673457564651652797905315711000355865224846373850275802732580714830290128749214696026127737325174756522973003510018731927308606037452665974418798505186527371585097255533973340581202404013572760355752487279719500158228694975854477690808107204625367732266769943536242430105139733172614452318247076167101551328300071743443272001591739985129568542764230337814099665033228377790416750891364044783057777423125929971590211954057656085079468187770518785432747170364494271794380409877874932128789326650864746576295131138793403709163328300022351906105145321955288427593404641658907266486213938868267627044881919798932656559798973481014449421246735920043961559659759097298567333953190545798821212640187213658091179439299171221632569024897265245175748427201938722904835758106968020418250441367435890138612735517423670718959862812414736723178315161635944868135270765572692061537174330129573695328838648855529015353181273360538643965930597057680893577312579623376251491688121730437614398352218844008969394917514955583605925860158267875109202631264742748252510019234102840777609091918718405322531153146377725553632880226929735814507525323300138780627242486323868262283390958831421201959871601069442802103976907088208402679830999311052654123210737734670405158549124041666321747643803210036815394042669295930492065919313606238619466719351883513913467949075863601885994280968923031169437115678526151934772096771637892517288823448804663475695233121781889232289347737023424673412481409662601013463744542127759825171233175409308905454968449286002246783875208002565680069482466436281013905726486510993066425909034509580916480539095389396971315811819995397290614883231334005563285289534531672885386074999903060213947379914131183848849912055854214643977024103806715820746320080566513418875340398100812060966864036624925596482470235736239078344917960017974427208933363112183745273016918519318572288903596482714854448711178586338302875150900109955987108209023418246125833940206375539097206136074151694883419047211519726085659656647087624086194536757776748715411793387596284241008311638140119384423050651019812835963931990455761154206766734070785368445791243029314450579396267060198967833325597166748834210187902633328596194676553527056032421344315126029853341159878467835803082102648860866651877914082991114194474847906293037702875433413676109349409583980179556209225693392393558543581616269943421188888653021290117544873475139843210760150800970641049374424539981202565652124383404467827874658135571499875867694717925818722935821612397759057206959457327093773634681637094010047420680833377205203819387380668563978298838415071961645720406225724548173504734228566797729112881054037818494202193840324707000689298910880940072095673908810599247984880840117240784361698998290165083598399825387031522225571947980924024572990961965882839938508808618394323100628317242594658108292315954040275329387026431968610657679276427641936642815288092092840208131225767367663517854096452988465541873212107602486807753849865282496125666788396005048032939577314781010829934611218290713101300832007812991287834490550839919407093613465005619693121345578842407308347665446447772033720386406351346438511619765835204989619588927798481160016164129599253867201024728238600964504812362009733258249428922670674708819495725466484644210372824115790959245207442737606134517767638153828279219527263617624220854283729608088178128311516169163379047297989174270950778696547941511929549016446546066783638094948308941757584940299248233216225791622576201018275575655366823718994068036760285063339599103334943611232337818018705194592952189756401011909374298024609719181744909808569805970728597133775808927954967608785911736742582045206122101936395424278319659110804676026025963951978246796274764758404467359513157865787886878924728182476893528623898440173727173030416048652947665719323519759755780723890908595296447560656042721787624460892659047267484898682390737225394060581710213279534689070863864469860650023137545217810806052004937161605688321839525407208893271452594332241844498125459160509709371097233777723474569445306834170402468214745268128907970522127377149657895257502170349274125822371926800402675562325773899401081603354250693769249257282034899228721380328728855973447460165018445396191914063039859872458816029910978661454042459815751455244244628161202913893915246700931026347359203821033046755039380674182153581222401690851974825306740330623582647759981834940365117952398186429673804064988540782498851441271582328476269714115472777776376892394422068171681188950745328116368040281292162857240375684647148211506773771487704362163017555205147228941472382144104743934330281041069636339511561777767184683758390109529959906729081795615479764655968703682330443099486167788906954693261988511669406135219541989416096893446411851925426064209534966720659662416318686131326523484199104081123370825213169176366609877755157550811100396376855935061469301611630429433666655688037618115173673473621556076363192535281163327953295018525220003151357951394087265484091596665399267534214741919677835260668051351543045194319121462678440405138728777362945463101967370249526941863708299568284328564861631903783848158277868334197055705546295764999684910430618243129996236239077488808554911706932014409825533118251180091202282834383308646911879835858265026929967909387316024254112824978156463844923775038454909297749498118392266308702398848343885441659688316506064582918897292790945203826924514758697932168532508460785610804977249666579900553679658393315484166605088368868717101973832483918945694595207069989247181063920048626096544809329162919772498313632318924667474167556928172300711383279212168266606879576922494164684734887715187666042227428217131244645684039162412495277991157561763875102158824252561896728997021199153219434100594846824588095037043244799063865733346559687137043369591833231852562198541502164745221990465426275024970623997626016823528659599929551366468914038585098999145014897362511454396171712804181595283987531917945547205718295045172159424961002457793287166358741588287624558319621876792308037925210313244629706978531956903215755676904410133965298873186145980026443130491990943969509308403657049430530937145765896418549056000106028879334982802438254216165890523837053097428417138085579117221239161822869658579224250366813124229561040893516824859418020522053764819219643801439421483609175893485774164962840351104036332455026149183548692131329024959465340365809151706906618483940263772927471293944376205130709061059950543142369027504405536424881965217246189347808262188503836163602673687528953072696693025774760552117199320202361090135853457739894783314082081788448705637922623704532982462577921376311451490135444923107583699249319869714640076602257806539687174041885476912920772075953365672139035212672527126117694499090267810705774371089116976347608615099846394981557827547119087255113880268790348237602167030799795612947203627464495108358798501223001889521850567868801916441078275691228827622725788667763599196959892416530427535530773083622932676869448893370884638426948973247858279771039623225853739247539160643547677592524620265181186332458025259068735965746746308706709796198901574874535101547152032897962166411416115630451035095939240503076322473795398668729917799039514692986629730950340939585676900656193763937867934187018518469695583991769548117856728245457162483011638895434151104475938211679868971712592118831998110700077268847019733993601829174014646662598942817471274014550336633674150787601932304243008561792844609731230157552776282246261103432694964165279757359147689596136349904944727093928092167853151399669419479042511044051992793255026996101131050215682703327378952884468860950879453586497344284775435979490136266743883818938074850538625325463274504826458704280955493508717961485883166389146228544369731589075941044338327146657226891442585159226329055694176634799109647323896526429149283421435333746818662210098116413366145327271410159211230636789139089905590380051607423429986758422663459819575782247624221312164543985198344282048993120617934559316812843714825021809101273620014108889161132798926265078256194920500029243490017417108318282705581446328909927746882661516354187073282137125777074015420328638075983500061419344178127982695777897892604521508889914254189404644302735489011244885224480952242172545377804011430591113349836929639922159577379315481355882281825927481199405898834461268200359671627475115848523705676467878992035164767451989571775741494799266829154304154271851890840109990191488922027590128194433931904498260004608103083558171665184850633306411552236208179286956576669944188646137694040888715382624741523065915198820405266897890428717754199575757553605454325378994442706636706435216000017338670090530171273383545738545303608284339153494535141680533726765983633881885576905265506604285047239347641472750948989971335568284015428918153297714740163071172155383174893620732954440439189578063707754160087101335121400264614935362082730413904391254536644634621347147551692479113306804977636042674796568898288412932947525364299347372405319175378853474083522116772344092694310111350632534994483532690208528272029037897267445803751140758951483367884974807853088127351477675165282355821025791933186454167059613646845406311999291705884620889683074394734526470787308680729764112961241575344704061638872618688240133586143870143646851705272601694017082039785796465028641247817000495816017038901928741935242028700679006559918749366475512341120335934919914815397553101140730387840724616727732362071019867966265575794348452916628790224928690655844310598789931162807422864681417920922994865179777255443557189876882750953471393526355364745456081092974184962798900075339738036307369523876130209145044749289737647808028216996232689984548447617309750076755001392103349135250055404952499240805399458639037767615196978373591249104637043847569869117909284823222143992563834067153084279834482279832981070490169120253486644351062809720947257542103970802876689414018603507529810580553428243841389533488850560192576354403698186844866946418961585724226422808427451142684654642126005847171333300740665954217856123909950995357731959558113362058107148579104277068963269006769116470280875369638165700195244176066345915456922911393334804480441784746519522725324191004614173447001741500462004578777459484811276680976146764004980444926712562206503830754591452076910774598348348638284425535577709807809885544400328989954818686302758933124613341678805467887506687554280502285047588910457752767760931666119832437108462234712403777899002123322020202471283136098602837823665510187975968590752995057775716485722923124426255317131964527327334908566453849463850620428879040191893217360656869150714564414197072117347097273163784921122342188492088175343576571377598974099983475248086479708635919720752019436166693978135987607705583983579569922762766215916581789838522062918638532983683942428608852529809836380908661168531651513819200803400408461314755794262282150672726591016842168336385377835636294869598987069479803986787549226897033679515426141821162143301558267985641784153695885477173192298794303816723794895899027969846343286739776171715694578156880854844666824633738561365435636264115465068186789152231123385340055366338112899233351773644313541870235260167879093442463194639267086661604916671180603397382017176151794644388552632014501550445087920581487024912879605445437179125842178567047823556536374498593511669110452910612728465337324343778276217754152491364092300285341121334582443229874377508246556733693375941625664081912267974368214821236578318097553122566036546984393686679697181880654725914991699458577782340651070605225905531504972468584063729448111111300825505535888889275326822325072043437658230631598503698778776039042440900848581962228524934928019464844693432608957580170058177648302804710046940436145355709428409085609195573466744518611667795475387875420484824343701744327092634221664663393697480668768472025905085691340709042323429854150289061130971966649524028356477225363934357118806556046313608532717391198899019536740074449543999318272030535870903087810459983980431636419172813896304762113738671024309839711201820544772588186215422647580004982427400578191845830091518846424025103612214569328612728900644466259748240476300188562027055581409656302625115517747761830633968773452155587806316173424847586839987738690430941819619579033495676025213058637074323404343578283218628937977610443436128323171844283243580102309611362231490558365206844252332444389809068559552192678747884935994322723137505171662797720744968614340502797186501856814385158252680838235862305348950416536823334329009266096383791463810031938693210972198330187843643589108159437247048597096752031801171906356221159033896092780616450326240561967667089160106535141778839598471479627472240522725007685640513774372952626035460718610736057134354072365020578522046156356070895432079316978227838748248396484122178073074566116233838880877870581549015216907297122401148310734349620638159916702896433865413029470079433385754024709380905243684092911789671463182563985205128720974061413800372319123091561017553599035398151047323988165718754727410128947281998259675130488156687403571212283305586817735734767871805608213565406572100289607063234336402197440333663525493854341085165789910965693168077903315538232180270416532054793223008283788104641822500133881721436084606371007538831588250479557047619730261955001203336576322386218795511666698712781069006191972180928828085002660385040985165155613590716300891305942521337573281840005071324565623292262227313792367733001840123732416282609048420807524629357470794818872839617731942242635656815322424548928579295442610142119602878711838686804622162800162255693921698923061797655915007097370334627008533743890494176537366179598832823231875617991029732334680671474818009097894289654991097144315802617735908038426854642383305076451443892075603716804266157176407487313971416077652393459178369220549676574226568111054576729811589541017717002228833045697649052517472005819548286009217384147940729946166536135613153781864559476727990733867567140671453013722142839070081613202985625151456453193040912614925625977890071222157469915167539756535112211251351497415406864879241754064294209074244703264864490710491395170769660447275215361915617973515464559414967317881344884612174226235002948697590142388058005813351274750555057840296784172064831860982413072995771104497354336168175790651714715023918086119314065686170385234020592020252383202046607757262972569732815127563002682959025880959631216740666960852554399142636909087981414964518971879179896184452304495120696450651661168157918643868592587612040246647062395817940713169451918026256498256637307221088068781209765359756087307455073212002369159298189242001585327833250838915382394683160883537410299050527579108964276276503524968583558520398705395100271084580759531004131598215038036981717860879822709480549963169564132873228824353204192695196951814256571408824722286915238099564130959939906174287635925729935026293080839268537620200175444262015956526020981174054232680375068298257266642023192744675502489953192573576153340102819332907994812859884568608704002884916177963887868056679217907623451234777511113902580609411969693690658516815700712702960777218499157722708045514027092852630906915757759575672459046565056752024303809796214791516505428478400412769716938370459817366565440266628441985187022703285833893364183272273587263601969358998496888771010694626883166864686562911568872500114508903262215836434644724822100901892298136328049467713920185117177520408673030640910756826607231931389797890899271624579927462220015470890318957925199077395221861038005406883448193737760393915440421661941175979635565066011428978693618085118939175102721165698605027166121336196010610459351909109475149898405504213912571000182431400971560910227313670685920905825546038427422226740142941212838724960153035952804018620633932521123893856867094483638200990188793766382777488740198291583436833560246514693230197471697314348538950686110762661191570295313821930819797938801979242461959932225204318305547330758139244111847385804558893891241094704058314460893603489548461268645091147715875766943206371432582577730070732614487690544763130821103982275880215792242915096493313984307169002640394359482637366215404218199757745762862063578472227751069722902717156681244197961455186184207242027282981637453460897150198129658476392040099497036495952065451327984074122251736557912252250619877320617799886894849450633265391539651000065166905878787634176614797374533551368612594179278623600562732821269548703541078498027931655832622817608096788921404641671723904890341173431968465858366329041732511422976188990823661566247612055994920869646480629279644077074919989296431732530922963089013916948557429965766348094770051012608645860893553258433720082090952435675344374008580610010320791633771726440613361925859433972994942395052741263907553156993224027462033882418242047558963698570879016194397554294510246589016234215669034229658599090960214363541593583774761527914060575476683180808335001189430518807456835296126649492819616987304435908044871779942972138527589407764298381800012894100879555240683745349894765418743495046871170370430467910625055898879091058864168962244870965016485228025822690491550662849859515970997683807706598178696167900725056790568410166680967837530066514489418600189386236736887706154040647022667015786988987078700814305114478467514175057168637255846776709753175375673473611032509082401553759944989323262284075270216507570934295251507343192312437320444390120249476117067933536088748420822749473480930709308758517794627700000311832187670005026549583485282691160438074188416203301488617933209087027128218053019070356004346438586002403497638574447975039550819744142164384177206687560724924899692187947924974989633516880644098453787707419343603750556280652257715159134638658758751681152906985497052991894334488216807534859182049160851594952704324797350458673244885608808572158772781033688864746133580912678961896141432798116526306424975032985411766611721656237249141708893021703455567656460965808242218073718212532084707952411212753095821556916703464317628749466833485872456615542584782733043873702382380572032171765110306115107747108931522353214853879401545365817531015927890718913215938742654312742546848363638685788089098944138718412111849634742120265209367828530084721984954423330577189904834763118089801549458742134646546929460138099323539262013083134820157650368930950345127805728886485281209365145443530849411048370652708217547771873270100072894264941570467151319508448624262575737484283796565710565506214415415739587754091662355509127728028679437966122871888096248330550009412975770412546589708240574697271481820443180718681988243050182946357513171353530015405472484414757480970520944785446133538701763659095825113870587420292382446882095311555679845127915480280165785221395676398642511234303813619254565767331801596217837394723102569048564555770703699048830554982996269330431596517499679441634777448735296723461424314944979500993905738165528403594519361371744187722280668124846136244641034274645164950112917437508391985240235434117971961400761121333014994144802673118660478625583680622742260289359284841113861334596655528909501995114495603214706238386040620751381383755931623504312842952417975779744379663282922740537021144008414747417626190760548124890816888384599200256667511719203722566755798019482699645394651309484622770287056933197059858202711429739648782050976296129818083452619991606600817461983663448343620531813178080328873529700610065604547930750083020133538606682127468396890730245657379849863825246316923004072164475496601335339656386787496386793749865465240928603987635691674514659848469946144861355803576268433400099876537431866214313973322228442125762601314639932889928804705192835679877463213141459068776738328184508186374430174940590305373164173345499391489361653435981145355874516006916888180557153719118087788827929037917304082085710037587256791695556871871063591975323167271602193709637425520463697588936603593968996291061374207932596332112963778462818404879004650573811229300355135851309403240652407572841252115586603497791430876148792370913970513075847200889778697614902749719934680660269926223087826991227897862656610455912315841706481092410960334203105738860358277321975433682405784705105408189492769751537163586053815145186309368180036364853490621158934228486347856835948506457101191452745126442143670617766997490253033925388865141088549799138435210634057912454431860411305969567543562401642519603515829025016014887094419833833304190867869729958217982971628458273416432249711744421792853136955712394466010630167506971759095510962166325176782988206851128731617720454426032432802114872401013840363399884709286754035509036924765622414674592581017406616233998772990649758904360848842044214634205014741468529759235150776381183651943321745553494846452243609946676140336820877444793701437492672393611228897242457030091932483141364214061541410057249433205912406689443853887111410031341499534422229097654486375600630833239494326867229624377148623531334823224400730338952794934418616472763793506294696342003865109081370245444108981628599354383894648542085990278221753294334046589518586181122908321794206280371655228657963534118592146687986795657557977894579591553778248201701803506775688022918386293940164884943146375584952106956597166947491629310542205805948465837531149238302263686898166424401309039793544530744887134111373455349375958259127196310602096377984766102868605587090135098819956060790875740647232812554478678777402811042759155878689654933774043318967149007745461545117665394473534012076075665782474660693878148137848553986349109149739020307909786880658329895077910170333450705342178855075746823221836647514917908790112478903846501130281690260781471955514773236635021156365266461549092493979120284599262900454453645351177659123169168720439916105738239732956404141214853141665041996020439388531633846020529614478564730856973792456396222529190266844896919860147316256003722585957459839325968021716327316172970823071628418916018883304215443026495724996159381384909418707032049953054789099753642476675768766386004836344148321828743339131414005736203338425777552779402815320999562770637141340850987174317183678442698191880582801646186932969294305066360196539133244679953937375192398057294261769172476875148390578254671660735495383315065670990211995429832081063594018740750402471144928919607840470840437396159525728303122153307792214966831892643593104434903029839943258107065543563955044908353749674881432202079909936067166602267606200870011820593104683089688434470616979767287442696197283611058818533140975066848994648215867454241522593257969264750965435293796416369397635438174140719018803026295485983129570407565065655065198497159643199929546079621221270443850903278589258733008750147467781160894868911495491082120230423356156010246741307226297039087464522507289445488046997656046869775111376913071528809181768998371791192892612224534068981840753655331636417752424717082649021721114204600404431524486654467705334687374310942024705716873503530413528663675696296753103313483722091196269878549680500261162537877741005372684478415777050287099249390374277899151415908257316955062450070793253490691767545504280746289899031516899519142677730141857560342631219503498140627768488557773020851185190462463054774050780337533400093701107913052727718949699608781402342624975206344484320646488862998704531386272167782066703209435785082104400601539349289002283207515870614365326132985743185249464690290197703561083065484206899606119034054999729016394712767037279737732029811323759642807338518973388295108244298760907003200903004796564842275487576976014535996259431609532043933130313270659417583667014941155848363800444305671304225286384490091319163159759867171557597059621727237671831171059198887796619456287563284794790152938083244953348781865105804534127568267320495955656293882025688869602619205681730406159736945839551787341695827364376380174523653342353705363695358433488412259894714714830652272559918540887318367888267397171286475765507828925295973946852823521135536707234809141778263822777005806571277980226977633395538646285532803387065428579286315444762872858130834142124704362686311492537812625024207314759019500884798415746261001046998353141121804249374727748766018808862800884751719800813740283529881536756300034527863752616469396104489638145175868967018722830337446035390675504426676824710172356548386912160886104993743286429800942803716894678756760757406190259842978149293509111059534554274518168385642876995822067692440593769331935953206802597852478666942961591536563235697033414165999991400117297151684822136551251078850683576979562808151557748118094948166776737778603288981662845549550245190659776692818865124185892123278161992709653517069692191132319895920851339930873900913289347283502187214324269847372079012374978696878948400755932366210432327246902898271780341824830986701684449399900232119452637482357467805677140037797258585371354874180009909965525278762330691948506483849524352294156045009419761155212969134291612970835501638287326057955517142217916128848607133191907105640206963962218238934326051254374863811715252335527968036854975903592418236499518122634422025599035142713601375901304010246660645960177993123120417779180187289947434193581906134907707969376159284283358903446824854155550080258178167929768298268160886990083479367713686246326979368511752081597253517374517592764661287294697827348261206602105843287274718195554037211371687524450726302764795086081674893208646080033190229464299087955190180414367399255621455969464616760496733873739005126782241991323534003099787473850716172737608373489704103389772617870346060850344346331749097896020126269696010360010331268536436117704136373943620061628169409077230732526636335559302023431606375477617437838297629767943515293611522955652703873999563623777584344823906297293801740311334563355663285938937721573261713496437159004128149234521528071967043007997093710800227462330217700844875497319225919220346052980703213303468211492887587974263317460032168136935188662910084148608643386665282119787323916186108426549895537233013911547394846144862553463192253705823394544692812978389649278904389746874050003307022971241483942150005465178266751785573920534301026648133264034130781468555710432629303273793604834252809188508391315456491688771085807506070536632098892714837324950164495019645292483693699863443500464405284415547522249235896799035483601554041065737903726958902406385063317053289306790232841303552167728298610528851376154006180557545419266254942854347017958209050810439468077776677147231838841178935333369749287421548806496660485167505133096903888288538165436032286286870312885640106953555005149312839103463022899119448077802467791495602721170904540073770127485266837018818859269390724432992890323017231369681465285812543266371839549184868642230296444155235878792999782137388466839367381342948478353656940112672715793356756849304495568076804319092093718519258859786939033319494717869455833142271643086954819489524458613988471529909506677258610346645706585200274065120132155062861427070272971752492117705344812436763921258178831471303306739355223126197748480945816294909512877690335066664050381174920017359346860733986291338820432010071641848392023890110599462741309225292388185024814619136634338909330283201948969041181058763794381524422475629826088934165914908158963861099968023149862555118705678512186986967123529207701600648782780775898171440150376796643210074018524876451316873601548133309009726664299589048073058129685595476126232200754366125993847536606207842627436818444706396146597281777145200654195981777507272377411995617165270222626216581086286371691857659364549278638560079410168981788370490279519219411394098873307420098175404802419886230849820475012804342264489581519598741991076246671028621940597108677325745805553261939645840936610246632078770516966493355074810890702043576475786023158196649214394339463161467998138629688102123888742377953836334360284031005948462517910191962378663029139012709943581304446287982128878691636479511351368558803977572307273600910869456717198152812224986101896934666084264741414799945238159722600981776532493609396313858111266852297561879801559296823617444433131668031787383605033057070263033536206336452681358825820424223685036362035800807029960801595749829618140322355138463363590809922444470040691896167974061805861592492334682851591173459388842194818544470398950251169438536791853787581723138324625052753945834099953368440420310292971730036141171866136241263834006232135224000236319208153170222603968550532104740791704414406662741545051488242794491176991172126526551471947526708327584777011807086990901171923296804427786709598301944639603227882671715125803598887511406783247130584919974128586255519931467450683160491868340885138766453849463775601171093742499858403327226380815452774225398857312826313048542073262420402279533769513886804828751843177483157042764982361220105723368266777832147994541008615495753911536022908991830615401591407444965919193255855434421509481422534513131046935505574330575420109354294640725337692395145503123745054289589449604553348285417469072136229606105656123164652214835320309862359141391061954949962119927939388563348243258071162352913996642651764866230743306339241754043124267007586753791898577509712971225618710775652992858219471522508632456854621769848600666910845883558856782914417382670946423136870172239379429261734782326526255159884774746796006488594030377514321475062227717413889006913413720730271673901737106380831556271185382999136107829606425519899051111678356480525359517024702053369177362409284429203379945120814145390558549041320654894568519888698915868224189516608349248911076729067927881272508277275588663740066980344633436548970255822365411532390792373672332571923149143266733648389716437015421227290940813189503761667812609475995229737833239701291659988223613080731540015532603391751195017372166710138049469823399249452769735026359023997771534727146018847784877768335542177056280131756787234041991147266966673220462833477547314021260222153147173269857184378445039631148744859905237287531099584706614721279866220919367303147200337024992268828022617939360045555085075697722242165706400877212228152232530701420834613302335169857941095339145068059278527810706752273856549964174709457968464460165254736133340945767357960733323073949349210816349123062502047323520953428656179171098021271974984618308853463290970488444833018665500577874468051159501707736080651851450087128226519798367369141818722393402227548573946400795882453106012889719222880904510381923012421256533157848410100723978541113807527042935040872941608610743380716747887623269622307382790839987987116190636156105961402866388106757816028236334378498598855289605915679721162536891311799422883504285753812711904948139504818647077269632184381101944965624010501026672413127038793594346577944182914089811700438605046193219540371661322038238704758552351768091142208964508867354122125974535610986049743531959344123785299886282450554772510373392516359818524665500154246808250804277316055532037964093462065571840746966484092443281014208487932620001477570159201307669817386040844770922318426981218850638213964425277516946732392700445512796664403043283471215857566412128773511788666922596908572346185775013200814840256134415051615607619349258487837246045057883420869653931754611389120925790951974880061575414224100512628264127486687752050851117501886878771035138154545219197603391186621762743158240939462709489155203207814904254496992361386834379156664782017963713211383500925679497526883701251871730117527115971789428086386513830101308707067808339520971082989169157404641661738123872057933806448574420658200989698484764755162248548677414972609018647648795208549551170117213656551938449844993553239769705999461506238822854958081850908170260122454874762519835689996133438599262032027817739934329924495324982791505274139767085564769072460856367883848088465844063902333064307607247157804407628784355470513946317210776773404076367473097087670560276136493058630574027162420508958976201197595741750874978296002736515131248143396394013242615512675385488077450682690427529502540790002232300652231421451269503898067891323018176294409196565580462474357134955443308291514210339678658580678118219475814355403093951429232319152870963182538433772746854378181588681650229037832240323391980302895471176202831515522629061548618901540970846865909589365888502788616158594576950368090348147977838984263945296734531556921310804967950805205680169329563603005193331624417207324452571313230677197686257737196153655084716518305429657476556977256287973939942123344508659729762526730544868113368841789005135697795173371339163020859523113380264431097874824414179718137084686879915218887961268978117118204247958922865582309602910382413937174589195762760600426389735062271596979261408707793033463756517947112209107858821223032868060289127274917386750275398255262243730928424684830324437976726019392086359000137359856104667296794619300394534605463536120139101389655477344945767783417932675349092409077744702887248170545318632775686776499230312580177273719460953696235048834203189246778272650551372457788639490499237548421257488489591943930115012102781217852034459213104664486563862736240567589335235687320269005062073979180214902723513925672358076290163288679375058956006809890723587509047272940809945038565223337766112483752680734283038487389230745679265074388409844798637996373331129766505821419208151295097448989884703994792931154098346506138804000611372760507571671305882166358762675241017478541742725185436186276688253500888517182903908670712418131712835253437598628795920353283891696108568083979316259987891598379130366705897103892582013946273126171907037856009778218123296199399423941539790924182637724565056130021612138216603205711159384389836756001878854120597222509013366456193892898708910407890634371510956784002899420578917053247697983777870242228527554591903211147575273175857877438941949993978340737606658261354305112585120290703949476858681680392501756496795759350042031167883971414818285691906084231420945160011313662053285905234479730160266729183579131185623390442243977035303947679426945806861489424099756701280928464225140485128223511949038887030019514359192306421540876529018538836060939213027404135545516034306222855685092939022878846582355485192907061931707106752561450954571610135542807419299606508262292666743477671228223524840919736681515047272595554305146407048987507577929676278862790317955493101721420453089094280832633116180975350908927757860585172240710912929502135870302895105218956225999967760705389195243148817241542058916947089172393269695165542979095932725530718906779869236879035777858584605274986001262004716309533307229220040425063149674564573017192763672969720593492743881615426016770847289618039833577355926155454822494308173557061145451829634632852958925445430134901519383907901407138550467726906582589289794994141263108454502207247949006951263261472472403749034998362658289583625350902568453301663363604952658213124109113549384892412230432565287439601232947814308071228732653507242187778313741877657566874829333655627963788402955258516148426608325645595783210656871591418253749588715884488696741688619678872900351028773366004333198302741220827078093664154304132561905016562706886613431419701677710554744331999922862028125260891280749809928329505470142269936897856012908526692373643957842437477743377973103824076076009224139924506453815785253580684849222447105947063428346194891480816858103785244402487883228230534577222056791272022103172908760894884507634781930210015738027750709281080835130641560708859504713942733533172441562394083695323717241672438918977047594781434881566052402051317949446723973738810854745656145355747642766452947463371006555397387838936745158883950285978910971718792213700125481712159463870700538186886590951541014387620608642422053661796789447674412314537173645582685759795287538969639615934863670292787025469611641918350754277856711458092401964679116225156827139727243178555540145979012389069259365659539101923180150328358284111602374939630186560312211375817573341254536928315626929381653578998712066019965651156324265218292991051312233530522437076374943409106717665818228847294164923395812302691286027630506475280277287074588141640351316082168638945241693838428203164434544574444210654537001294818451500209825961667092345266890021342002151131556199336590046557588683774062839049433397041989248436013150677252249552780298993321231817512121190386242954885939027913297838290210336305072415932077600552789341115174314312409727854978001978849129545823206061674382404027691305537615083081329117341447097478737273606477869227350022137315699974178946161136226774829162600550396341817880150952681482964655082093218743566368928285829071685031942353538435988785171880335921254827347084524281995499358967302606649953348212072128637663686565963812028397111979527631785093333424212067357082271465455065419566295972768961214835932963797948859961248467693307422382953702358836912728032984413424040912431197123293329775618262343065367978799860489484265776858679860265844609462467628906658696876024443911452653240000962247595644690423015905909865703642221171632860437526984807436981743780027766171797719518144287718478625333843772841711845682222012555291865319525150321460540559668842325791716374038284107998872154664751114580614345005108476514076470774043637485893729936702744319832509124550037525077133284530357264248606624079487590685546959909944265621456257600365545595779501634702348290242246505231162371921181130490229123533687597521651307445336699219124493633043333996970586444342316607446157433678527417447303283472484512917169767502667656777871353391784043664289088062624239039093854755860626030563564095749232536329333084962965729677602721482171456419075407242900881086138615612825585264203266198433500101725160463750792841546531395666224652732286379724733803475680089731812059295904845476255790658049454158792427957432841021391668415713035692720269975073584833760332396763931861660659393697705559528242264682419279856520205461853553922761030372310885102607559416506574057333073858470405539690663066477322396280964025413266646854103640516949229285123255800235502070561579877851642878655572088401065969147091603053746217191402761106494369471085235703626378049370195513169226342158411363698916471027715378590872010039540938344965019584564475178730213840316737274982061186131202787602342055037468525862963812278894117124005710122102399626472369254938563691049881027790109716551663056667419659477648562491301440752919877021763293426925567858948983983443279454217104157418729672745917788616987065737444202941163551075894992634411514736390124048740832856485545486724956562694138297186451236979594620337031806964801315592627981801618071139448848290122783534281967459277171822536608711191097359825365852680277214547073977946230594841369675497974552635377432172565108253973106370458482499139460669587774166784205913662544636725694888832402960699001915897209051716822562701486430746572971387815599110790817855434803286645124241605948644303540214154581057624538309999412079251339897573513557925639906352984040849961919841349486819042086070694812918891548255210561533878778067833823237283017037157799537751788023091063717127869878335032253325432995688721020092081117393006086905715881013007200414903599866895621157132092475959202113444465103647033902411471643599018232845242410471574126286061922688910439964138140044334723474064463369971573648989163952470127560362120188518307108991989924300175232823211296362419098741331130517438071344716890431063504977377454725168939327062287506000505546623230771151532544778009035227372515581140016585088311448496922098918709995322822036888298859291198157022872964916442137854613779295719429097683920466624512086519179197573253223465294820500264574770464368499457969564144817652912644585413029504111448906228880422005441953149075593346130740496860578965083279680502536874855799404670252930683799583593163475076560521953329602849048712644463977987086953293800151808700138339103114091341827906044366263703204109775707145344213871345858038840005362968169187077973508368962945221214843285619896460930155850745469993240967908038654439839827701749246699829301759838716539733911997146265306575860791869188233406570338319348149703890113282191684284565660543417764416336001207721616713740303133918445869649348180474408945173295074192164912695298159837532317241039628692380029180626605824896303209934869622000771233617962605207077810564199413782232996120255792853508612232750102499589223663917109771988689619985145513856543278880141596063261453317850776406828775520608317963570768378775197209419082971400096243294724162734996495622101818812049421987875326720598361946443386836904945581769953785579103337020272711947670436972942751158919761283050872341168216008990478581185681733377036714228356272981255928646461190886467982340128399355782088566389938109347374298928515882970297839612780983461649192668926652843741302270756540153452109519816307353505153635597982843034508458656931214490569589743858825745790965233758903327137153422389176459886566136751853570470503646828112549477259517084295932510089285830701244631349765667724911847260622078977687035412199526035164035851151895485259634706018746831817956500819086095311123840773519169970492763257631799795183879320187629961793040270383797616314231650271073724769546409513279229949894123175216585972660491306249804902596567813166139878775479651529021742309973062358743462648807535872205435790579279816766019190781657337446709543067131425615926567810593312076482817088130192301199483649852451772968868267783284030290428305742835386756023567647315678838658070899077705941866355363363764939788076167515886222514784688322379727440439926868408169723969404690445750979644408745926888947963318027147474926617747486367931632640090913925542623925934259494776978544063849927259431666474032234351026572409985828972194478458003641907901856328669158696313666964583954966296292773597825182118338263180776968991096619269072240280401402109312974164897532652919379886369003669736595164070205325478317768976418648274676264933937268694572364103707491687195865585759874962330491505444720017339187394949317399782554958780188074290413063338727594593153698397902548454706744934791419531101967956330490994876604965805575103023757572859962642360586370768451626668558410735487058584961676795991581178432576776146652736250298731250990573001591293628776249052455156165882935315508113628903210970266735245971772621114103402276736718779580229387897715517621326954317958832803212139255598904602650222328440353462515162194528758665684616104801038075892859224213817179509018700908239510843927844529938935830349724837695204262896033844894314390342629186189785732363505950470773274014883643518619694712767877326549681932718310985685606457704347347741841504249393556771313843671848414480534561728912138137536757971345903908493760908289189226773731028330523225364736003921374144028400568374760617374924891703243807706339887753223531224562993753854144134232381927876530274644622078071993387092523980588631452060960218301805212140817065949516404965704025147211524598699509008289682691868342384888011341821734794715365060234840811677912923049939560853120383883405547023869876700074377977555074465289310592501013994977503241488591090228421856354837457266885319464843413200266025361268212834870946230899123202034570175398590723239390332800762026659292268946953793844557199344347850494961942068517959467808341042975479650172435031323320852919489004122676894008807232464998857550135176415733889886730601482481876801280149058010888908512619761129812536687578812924477749697083197656528847314410321712033778054007906025696387547711174744212753095495479725424674777340343001977139342659367693356293086865133769612824759653773537706313449218415940801967246644014435187689858898986293286256600550192771920908257806995495978115360729628527328497571467770504156840294504622739141896990297193431905459584775972756621511378971504882980275702522133112368787743354134882467521263801686176236285588737502365185596172398060916729701354376648943103947617218406176049837309052860675585044758458833462018543187542514124572506722427741510118664157849035237813643566715204810502087355744263144714537525587984181681508325015326129637849320333156516528141942327128584990200825607731694448454028659216153113585902178922902555732692501109404387383306623431654561453969825017075956217616532603078570657036586278455374788827287079928663708017771216216867776297134267464599833648382067808326955694936541274840963864680787456053652293757257968077327553500664068855409340545560519534070482000919354313228773461229889120997625239988806199272126943761881712106368997457288040421039765007035905492749745577443582044577192199869742442637680772781850183947757678192167225590182791788103176553535537518426558827085462844696977635016163079387534144538957852465490649215222334627198993808863214292777004592668432399171123283237533047468798418411553767228060594853509097666260296116501999715428351738757233654274444075323670148400812806905676846461438801703654429978686716135368765643852714919939933101114165572620114649337986857190102720099778314891350797177435032225336793021440108520187489554962552165961056007080305885500375942719914515298710305215753921582252316984703258073055436742900236645908891720902383203950298986955028686152818345128482043492297742030515810317626103422476087937757047595647394877126856057791388363831570486253047638104520000661622316049183307707623860573445668826637950095451129824281272225926724969724605509275813014522105703635695321754254955316956085047330179180093150711152408136104869548796741786098733667676651659466581818205007599656446484172983847544107971782866256753092452013148812367613770733718750776457498708952760317938521962112659783203002211990730556423933090031876081526773319973166874755266394842062012833813314469047607269510841394477088406561463540958048348639745212358165316854085588612051604154779926676714477839886103684879478695246980887419925202132020682330876948552803342743098568348889826418313103657899702064281825981454443435710175698221819949479287633657497462660787253040336907782769722196346094797407952182841748199914594649533131983121347757384093013761771905944337384962689680036786761161805335099879055204923424682928492381035893945079904970015418395538056241408848794595005998338687143722089548944722688355924125118103264343726957288844067457099653012025771333391952528313740568104276134884612411671246048554753724557935671557708775941467339049409314168454015351289426255546812074197164111135286366307440432342572103076005442278796961853787167194020531847164521148293505224183400956126968205181707384488699954088782104185398164660320910899297611059621502242098141704592688282839665626746843443214598572794225235608910028573677072307243365245361970607719288041384670557390015415564667360649414584158231201060138359395198578920669531270788496877931687346002392085444361725179262897484453949159885924383354977689703307042445574931460114662380622141464561164259828471719431561656902040300739384047893238071022016127170036217659268647527228499775505381007556759718984938744696769637832108784023945257262828406797278952579645169545559900769616118437651250927347819212077378098306355853519292074176713398089763737237878981797929185666785304268255451015096702691490574768890360406284239681368386900669968529927724321717911697516574966138533468621153218216411114863376668512994556654938764208881864628491300664346476608507615981829030189172746111855242105122819880416734853702162934811893091826767658471634190472926292798090321325048190674615725451226421837214689659507871210586179550261599462857761767899187441077193353089797908661690790418256939132965323931199732230173276076382860168878398057544502964627168431029149050636822921134602464413524339631070017321592389730435859809170687256471327050053075114554322736563571597963587176255043315066714662042212723508380734651991763037376702414317387360766147375512887613622926836109237757000069155617236677336357565364511251643062068306524608305909012204187396731478457124139536762397645246071797677961761429098845370681540551476842696229421673216080769614483276861555150986953560067645218886743424688749181466158764826348488632119292235662827385744064278065116968555829299280196402374050702698008706856272574694417682792683346398125714047399344135835459475933432829317621257524828308810775122814075666021695412483497105875586792852120933722459298395727609070339293452555001309630022875519592279421500067010864323370794224119184870548857594537116616058157035359462274746020935662386582668495389190571158530389053836333772746792953968420295786727960286695841435692561924665863390084962739975502966434865855588191347344054167081484383148611894649631741307700107555466184570654927761581746407171996970382806313692428774977048878663956848878451477830955933762501840997150066763155711375919980540181145306714893808986978882198991244310111229738996877262054591245723908765089025514069913466486039355674555329588182506326615989832978000273993231298646240436623506636284195390937381770030559232829288396962026563086438537750515346935622708758559572219322325864266460521358092659288951305383986115464782733042143980502283405413181441437219270610538373198522227627671492590675107518480523917277152861494410300654274726030236921171638954654601884454734746761687123559361803342148938426029705810871933066929433552681297258419428639649307672100540443356837509056287949609045405051528871392070212065041063892381951464178337230470213557046711060468911110727051745631683460036309171138973102059114685432018684830686694803402287277100953720546396328111585609815359505547633971040391266324808055805484218906220997272122480263551142451293157985232076229954095065839923420895224089276741861166685038375924434853406181535558762848708228379907305068987145439829785938814501334554665403441724628693481077882096740676004764625027358355853702642381976042694251205699498997481147429374172730115321651497319895582444468081123516001697682578397726454517873573512373034656242115813024535296140102019680543574371491337804335567907924072316132889516857227637331514749652221018233478917689140962573731251606996744233547654607629217501171512488623948168612841720462585314553383842316982678531980012376095914563594904783640155819566155060660571537557744986102764142147002921982709911627768864313902395598633495837074472813863022664882032658066783370074447613055511332234232197456662676473943796722904113033241147415669833749065284574108309396457809321656697207867625617062017586112982344715591418990307774796022815267989208958383448908677858126930799517273473010790781138040226229124565623098158775183111518147964269416739252112184047310064234482189739030755997674035812527734548868491196450434245572775118274710677694242207765562593372383907392334906358502438855518138139082033725834745441354671384229069505043065910310739957019608678724848288173815140544833779763574563369703963724610269436477102512737231209460955679511230551132044351620522168808132888003094897463705885285988438570656601893226830157428548217249418227319347210089998618302882434663861986927763869091049315770882878871334620965902794368625409168377901085752189434482867758174946862076989249014800254603613867645451910244040588197443030617963367759642542394567425083684633069231998516621851701887863451709801836482745596877165907741433269872705331261996245923847620539446813316466866744519415189602799871897518525898307161231783861053061258010506057406643971355067381355047318024028131063658457607789934931211126533777360177486802328121128311107514127756264809469975452709394996656178071191310769659260830539544390620585101245497973410293642211026969109718963136752240683822144254235333339861241605730831713093900533768733094031490718100316369660361697146999116645108817391959356596467406789048858306860662343767565991760399123533546319585277533959552731527264747579541296991322048956059208751908367296468992458012875945392771788092544583572107611868006489979036671017602297444807201171780492050548449161272207353529979269607023579437006241773608458638072962952207840168294445881522537539102194660573804482962636787185330228059471707457386746849459598076934014543319899932976864717105485657710432594328629444114447235079778960707281370746272528452985830700148622150527652443317409938323331902381711980014401753271852647953316110796714733244997501870733152419978193674263643212042926562202550076239502613356689297673898612702661664613488881831852262420937971248369966774570916022668591174792796565310894279608902079879077301860519984529506624328070725758884423149628114945299136309540809725527466638858037605150942624437145078160244561125573415681463623555227613807414560666132728485340120906233128852296995066013986467784946527550246950582786031036149871965282143409800011583180641733089324481478024098265683846840624092336802738909763845915251642344401740380772845206286008550287252856099312422072381110073744907466665694039264030110335713459796910002911275874681272322829347181498895827115993403812654669549730983364898084177665916275082965860356162539009986631226318738374663614290055222960698190189343163821329872785753478761291447719377002718636103864260842187182984598947547720195959522039711559126013903761553673017257125468441048778492626806314576128316108585410819766655974865669774127955597341852343414466064342500518112236144288751872217975599561722954894962802160136494802526214345128873396506967668250227800776586133324665851878066338263710333539629909896455020014093482355083423473489802597179128836524996354501554599581263734587848762830824121694331860399184016811756425258078085850539371759125043162585220315979411515240247657831696749024293421456032223401296341598111546283824995312022118049929244484737334999217458883991321365513382043160721999386063552757363412979872111904759802434585575828780978392281221727098351627822257826515889927590158628658274613171714985874070234744643630945291967700444091355030482066829838041604224168832568637312558538326423539561843131737515047173719564253712724261860093869469527569956723724286580338508223962842193769224691956964167880389193590463506051750277451600717442257608251848582180366291672235192656370977213566075292151965043965580664621754470387594341060730310042836345637667457167379301063943302111557418172000232036748163107445693393425014586228384937301436885237432139085670374180094685516099523641841340694813632245649197122315010954443296096667342640674508208516824070657461064151714097212384791214353074731081311881435740664556008476762545122676417397279776636841167228706711169488048894350616508469913050221183042727109953639164336570283287566138803311110149610277770248079552831060957437452797958690714571389788278957753879565419519638168390897934646695901787300957518522293161326203672182585859783480320217456523377542378797806538697254272599753110046175880725253624998892506054402956167155845148211962351401682499230421816172822121029255411076847086853339751286818521223449394414938885396987303623543465317723276411510388359290003411209450157404293905433646757990653289799451679389667294333106100953111432366287612078533651573628858046379903407322217316339829156149759727353019615454125551086032097030638990923010872256292501048355214895363750190140958960745018165812822155134379537482284695949500613611009472724035833764257965426919600821631448111008873469610889408812017799550880499778833724794271960718082154546170689447853958119756324729740210541009363265529619060073890468837787649077465090422721202575450343395660913891025871275367080164314912411954312947842160290840303019812069643260751448245966563800775081602024595552317978311492632827540264611479167010235867240161476064869317219117225469239516558129597966565923997181306825134524132822713185523747532879474901986536397551166938471635528907153122557993280693540461474595502152397905447812019995514283377972480675582095998680195539881480256027424910812489021218843962093748240964566031907551420710930555902332351361731893483483348823536658286141038966647368008851938458473024540442348226144901620441047610310369771501930766387299246843347353114863953309368780777893183198219681971833253271509982307441734346157880603523121993796652995819496457741263573675018428177183142234931998246480798641175114681118057589466899916569923626750676693339907001248305229343671862591087369738423187896496334567282649396177363837101779883574163070717187262068887000645664463374881139896019843748408521405848880966941907384228006830596743854702740448160295416470975943000096669761503786241402404008609092513137191220880880981320990638202904433313668298675756288840306444892916856489737114918665182209903958258161640196021894320491664867109160311720515038845616684333624807913820993223850976628009868008035557431556263599241925881049293668570929269642951408285580935613204582946434714579764018624307615695596085710459635322507553368485842110480415394670493860017459690008506241432011526418806562217025299509401589090029248126573077623968162741680114993497814971648724400718784317013192986991996043638023678351771467036573913950901665724762957322333400003362179299840455484271242623911175537404479354091843310051417500245975849940839208296435582747714697858689284515948669646508710730539248905436967139104935927803528382555011224904745603288683039195176345940316262084237437002325632720140352544215796898201979616923724580403302366740639045871556901785519799601496327992334122892329026077679097460166296223332978337039660364834537080295414976902035590116854043846221427360054589851613713341296432689783298904211604005061681787450905188193051905678841859368759298046447100041260387716722910400336796672111961305809298702666857774363455109595876952882465230224852327990190014229014344644283991407211563146398079102639752889991080368523122611867843517852353079717156676415276405131611984360171399291441159090617079820996455680704734230765694526166895846587906411604246931056339722791679186448552262570785187014274723333706843681169064805995583847667557474302609214482703934782024628173147052032490955705564748199947767800094094679514752835873291317969123115974763213653684426704095408913918529151858087617558008122547428135666325227470030275156361652878218501182664997986673422906360981742596495232524384871602035880219216577120782899163198730369309221616634893758832970818154590838689941115233035857965512020703205163202895760275295204723231506201668623589038484035213823457122595094549729362752006389180260311181913789291894541081220047712389269406342751769038958266805016288912891125950816749059508301727468617217747959807635716631151097274660469751246430574831970976657806127214818553201076433726195345138356230449383870678644314031312848640321908911645699222954852204889178073266786629617148562424636400162123315069650793610207936209394570349537311705629660654839151144404479662362169349989830962243203251143543475113015424454501014694300605046693545947537884077702185182505950547392419752877115526043188340390892074930379755227727218501517196830998393044397227975722277465228694174682601724345477219898917834975613930486411899156362356010950970834506839266479163283160141179762944078561705189749033912137033610507032988581531221345303627637089932893665285422497416752322308571129854883304138537173128628750964041195335829867964832978531836034395481788155871035022901237677017361969773119356706005476225257355673025045332974450072981087474894379701729306952350399660673319496386109915066970395272342142520392647087387340915286179360598022103071710881893715974021842970050348154844318914448944829028125886626966839037988649893471736617789411293295361178469569247196315626809218433320961263216639770713092119861259817856496648449541677902463350863219107811930733752277349458081228770439628122207182409101468872527647738541366370393990247861664839862436749082965245891281236841672784922825507583914814487088932636592174813951489905003524285193233896850715307249147574596519182708557657507343897535824414656573462236362112856760253621591423039710608945801176087403175991634838898270209447810992545860548919384985397095565810083037426904833814627948453994823744574453284892948092082028487837615657090878334903429079069870979834020227418544334891855864346305445688320375230129768873922328741017626147594154354524019939592540481543009977313408785349681083702554113820177127912108901253457175797938073538769512423757179848609629717440677128020718889696017700533594803188126058161835282959118914534464328106348340764374375829739297124762230561840861308238098249694977703937887592581231187773880889367730105208216022012209599145263697662236852549848693053944839123150109873360057384738928377875130478132556679620958343684492233250356635344740773752870295816825697766160514592594956660328753624878971166977879273041297739259182008578098347302445352851019728332629595112891185471098603965841192360861682253559123668587533872387318627016027987847829934697337325370561171404729088131707842060853714511888281365968406142230025087593372313109668174146462396380094911269084718198574460323892006730998398544501110040907378939930677454316471784688941911150737169332679307950814201689353692665112606165754294782331557913930727558769200980914050193501628543211707037507492868687331671212107805650637184853623904822196764578415302302521514683992479889053175024960356740476925253226169144622775357098148205500630943537925768323739472690255664201003693098210839497363871260325260677296400314560830302097756678178319854718122991236238502392030285739973132227087895900187345671545052381775822905102456782859965218689117231958884214321560371680958638824601507665194003650723678830847595577814574755046795709346447967430011892572105639726774092236985355939150367837594092494426232737042954457427978505470900882212805499776332700785663839558816697858109197501115547834565292840436557292357067844173934228326251615195632486928369883653798631059190166164362465340601062153042254685532266189654987685439102218072847836016285681213881818245439654184125460649685762970770422693005256384721818414561275599261439286954906740349780448972327650548186557309364052533271886748501713959435137261470970671821386635939634770098836927038120849273372774773867668191663095809475040648097261736952459652952898080287793474843972585850672790926668453880620127290293335670312774378465088038343546604157331366707886853908686627850318116545558913683521365402843049309707410952076767381301696194836568291022976053586900107312130452258726239065866259039503133662389732341890483599211847535912873384031590802801651290233225396018269224210256109822363282754012183215174518014357206789045516466178437220352851196923884848576231409608861483448392998723775346738613245573353519279330422120615098410918339607103335720134566210834760367088615209957871969740314084413855046437803535485248216361908456289762202555044128457499882486309110024940960914866182939366988267650714491694327562663861419809688815169595263306541862405198857773509879555571028482954794648905035119916255685416885851474564007754563277247883243412720373032716770666507156274600888129135664883241100194074275210807583148972429370772917504320842632778185035474466142377098571623674643185311996843721958236966319059769967390332833909045528614386781943206971694122063796411596142029204622083015318162138314583282839189484255143720929588376902628599609453093133200061819879118708418604688185863267352034055921463849945853299556839689159833521921228162194920213061730904712702516344565205536545821916452725076550954825103676086426502629287061855808716828181739807821781604087188112359560526289776062733835728611118690728109995715802325220656637536628530841311490681306424626877860613753511817427414473061411543970976769049942072118996232175774598961377123603331240750515009051580548674739748240066652656433992841952043128287945464239870237831105266325401719652781167575580023068381375483597944209269939428131201706936537132176534747920471389642380847587402362844813210908758071088094507724632092732293803783541588786433714757950412346333682695658402436286599445327801536220827953554195946416782179539326357229625654918949416187246956717604297183915859355267937054731823522265733313138708573045873372418483737374521550829520614067783147102007451503126481502708555733281766340602780104112247213420779950451946492124284278835666007469106412073304506892885521407745879021910374615349238123225659596132324429774053485161666293534269510093439279934325662087030422353857430782834801600676679924696544182149759549197109528114212015730240995725068274868266366536128565257480974971511198714628844655945953821437846086185490849040515686118491972460341833248361919496744116276790354588938708469758805357347952118543386960874867566559862975989771535355074032197227424070686038087548124744746865096603554878278184051101213560345805140309460448453531659190573464805533453034225114526646783175267346344587508782245996082738898320067869071580231975830983014271842762424029694492204485121818459831548022599607526734775001605494666001668917818548614448886656368078271224475029997805366829050719307710223956098088985966634425743552238270158748358937026089292851149844258071192550351993236354683108049745908686420595426682501674246955291317156453534685695555190966565606429774702486747956130795495612574190749850072100976475686288383442636568396738150998190614048016066987819189751360315725689147707270022140582014651141618893196597460019744397432653219998349535163124449320048250862415417944434364073150754517085325585126556238897433796129537278864212944217824406642737612620338565290234746891454240617201947002639113051445539273698931360182191916441982610214851540172357913430355730006446941488202555658117746082868477441723787874877118550234363285882046048205991714335032827632194748001346963093989272341087924351836058386581630831284589781354149416336521655806272820540187160801464394859018592273128543172810966674145809747570200578368044730312472988220053325718039780511568064437270990451605955130516864259693909107603783730995447712718421796643431023961200682903334253250654244233694227016576734681056734348415419028000247553090778179922646984940703200990675168598160667975924157802828312241537093929094257228404959538574726105475040057693757706993979685429410837097536657671834827290289706719315158034895593598007527280632717066869128986046316237294316792091070053042586123249093096492750225793825878509176743664159316743257791725618467672461201567671409520728377649223928096686238804698082051089713609627619784174915600894792883260009503323181201278038720519877204272592082964453488990709485117300888040784682828874346035835812588230051123028634645478597815285630254240704903135658094080117893709782581655789686679315872096233157288268489896192077231671188943626602381544379496788144160169240209718099488543271100013261191043289027498688191399321157421627217730315314041323994901720127924402909357497967759214997761503956988767157200487941034109329941135945670427649271559844760096664420224583338297726699451045660931079881742940465228802931170797445879927555519285495123295262774956751886383575177180054436250623749904765628949749315673677926285062456577415622614573309218318542440332692743426546529728937433302512023600859644731357666896425910672360344511259890440589858552098843328953361901696731307613094549457148571786779202388533466956391967464909539267240585976041237789842947760093033819832310456084975213988064863521786166551121265558831841898839691018359866260284171084110115347895154941925918692272888694527255729889997049533721829683124550530813171518324416280119668972455693775641657056951800599479496236296707296951258384965617948768997040784448013243914797311359512762096940217085673806195442331885418273246838249069045046181986094015658932152817807649565366074421182784237917372977123928230089455951651157120620818734720899904081460764755973183228572980876164561510661133053665140912415474482508009014460890407038277879789082242310612643431193533829775050028544068400114717819618073042927099604743608524296096252093064585296018215549331959134754963195299207798335435212868834040317464199521822586691098261451600650782764058241370854604163701006291345115493246079953390260387840107032774174130969969748156010280250614042286561200264823113582018941516990804963449502401817357696183284962622951208031161619561931045303285059824157938926196692796704544944490728278166537655133646606722756990542535427576156386005970096548100157521227133450335502967753439991771596160817170509641032672860526603447902733647499470752557138644469426353677253262168465546255955761587378342004162883583527862516440470389557116548060685149245684158307635429520392834638607900933884339881660096497067032387624835136651082879183151357052668421255426591437975346942800349097326700625772641807662855088559635214236214338418704613420306916091719079639695620357693330082161469459440024060016215525819634219406405704497391914062625276991614246113444455488376545197624015325286127426981711398266613747787120385800150518384096499444450685306225484748354195347275220844733564369156515229999633940230218241506360092029423052483290721000911309027167551965362287508968900150403715094889936161040815602576830098229634794213787233848374787736622540334377000604831983162613775538551044384312686717682011529758629768619705963623354587192648957595637071927553560694316420092433875235530900776238410419431728836370482718631555635636366210277343243373634099121093479284522634149678065801909628666908808349709608554993446145333129686287626272590661873739329633656444664606299859591809434676781785184998304003558045593796061209625572670304604988459634156336920364078937273096894342423592108347937912801409590094829372405540442134717835289672258338631126357434316630379847474675680359126763949185886650189776625017921944563283341695123277718865415650134025507542507320187441826047393785333185110392309602332553197458757101294715702257086645757984975404540719034671531961204556677498991384752584920276847382756561606681448947980206702286701919479292501039483026267394113087621847664832235618133148876294338750139246391488652697367448054699029341434659888891418656297285681587234508562139055120935431444322291232172613492906013427242160142616086880547683201350940569665794835196273031438299979687478222956223467833391686763200745441541801299232297704907923948143559212891575612986802836123593106392238689321688532165576350489120892907015505304054927610206543203678787297069622318705019905875868212549403993395877057264430262066328950400564996825442196398473524844857032895055093673442641073479110715246570647458805935531669332306717128836583128626343664842581444380274678512321204121272859057013594534675979902460671615297853572274538070340383951867863797990265550850822480014936053523507438997482626965826400095664455392985791108854083712022543582657280210645113529736972076952223243495685454259810376859635741720329879671127854742011621261760808508458355306074487499189305023527921974883807879648805742204111507350757696447897359109329822933532529698010503080038597042970313977481699819050010427700448947100071977864987929886598192466825697836829036702692018962496355509938375496436609803228904043787987309394331234109335169342499499091072821633046274752225909591318193922509306936240504725142464533629441400336972159992544997500282360802748978304694272127672996201790004133406997096276204926667654648125160205001791793141365384597195394832664791648838851740068017427263692955487067158787600440038913558816490416182487392078947900116049631580374305995295927624142978041696064716203534714787731422127314181435134905201134034185762660351022626803799813036291611155436068757370117113486105596485550863912268708663927587568993401508881183395881093171083702346700690182942480618305114967072510889402396679304652377663919325407300428238667008523788898895770098658427179760152024132723554412907085979742444269030198949727778810150937691952074708276307930660668929514757962065154732157647613581895585092100274615911811192231605567148719759785452764971083758894080708013972647438208046204293168522267605946619204895228537272757176879205835535602016183758484126006248200170013397096520759831618684314099241796578838862244646230640902015919750569011905588097246854956506251237188092596062890907151998371368790263837483647588709331789919139674687001046815132030134325510283591380305642368784371368603358006506879174307273592508237723108757207957268960512603087280681584186031634497110665250718327719861286842148048559342025410804647661447178374620046947709087726813682753975094791457077220141539861419932217523583847214632018986254751073989672481762106829764161904528764175205400338060642734450296142431130863703044969873248666329854873995318385445415448152376206441092901349971406976927975330828958791823344197470703830359001727998110691174759468269718131971642802283922011552511062659666331995761915149606992421780414239525009879222781805663566326873966181454224953080441852950373508501081431263396520076322186785676835813294216350850005018045231730762918815424994477883810980083674234397904805709604030077566517632468706256301728295978940864230490440498821020450515149671480478964132375771457134434571783530568485521747350113477473938026523000556451873552239955399131303875694612762519186932629680680830368607510815074056479372114140694380348602909735060532657713026792185350575988986326041921975023637627082018957543353926041459746405355078084094318478228844512441293925046468848571583820646675636469185832215035283076538619567229292312556572824459816424000924756091120538156613702493619981900078416372451072586922560971887451479617647745060946683092844547676024286048136037420859087383993461404760962143910489978831729695224138934271251034236813740323460636601721311234456391929802783367733676180231500713756353620554282162787583674729458306765688647857719150076432429099299449380528322313420746402441893115305006461745366025899097816999889286829557726577414518854888980102769926689562009514025956605033026445126925523827380731571995300215964421215482170190590614424213482264943750920227223118706360204870529949524008622619941880086269169105045643843383795147142721792399061570901785222256243849235433790561790931760945463997018089439402940314334342175770237335955278000614908727935255613123761579995837692549543979935218619421251209567297598988164185733303087080844064992088589122992590523959096318576135164307937960796187373962641588646248591817439784743007133948874036667916010343719482852232640571019185460640477711651147525385616084981633975847786224195618702766993786453664224310762146328485168565563492634984601869817308380573787556953446041258574003890977242253069363720023896947824600962173947687939897597978556533218196034808311197114131817045613136329369624615173273926768632265855829458507427035350051817446538775904314362559048912486726952859147786371306151088152931668434756933633554677357816126534354305201388155532841271265374087241380645392397653544306725570900001456973288019335126829167671489721774548221689997888992400786695033310700019446063208879153174103717222487159848414474765179953478695808085204784304131153189969909847541423775036919277886403149050294657848873894326146597983904881600712157986687637204216225161940407075681137491824296366749669173117952509343845749046397094225245782969029990923572764243861161944336165740258570010272359451925584089321154324664656145971854699270348031079782739090993893951832322639972791520159012430070340083522688799647882466511883320075842510789433939168834950736034741329819371669832096448192250180900349324633601676877990330683175329100583762085606223358413649756519556058047254216441723011393133938823901308067338678612088252797074184857573730222733140346095089048221741254043797584308907693214762824732159741197072678345557990738935757126023994432791600580181046185464367543339256917268655221135669486791028402476339353269685645640924269886955678769809330697273003838278378754558914431964952481842770629836134411658232809907215011551781783524398660300984916296791852415373789265888667812475743312768543578202502162144952191213296338667234627498066754646285290300752789753753617515122381380509074836119722847219052718103678761508374916624161674088745989751640997528079229201179541712518458902590700375595114658904191622517892231804208277995171833037524288909216476739268648784281836242160021850680001980300741351192484456338759696410730760825390954738701204702684216407208968829420592418445491762046842138453529197964541019770563012583767359060009515236862612777167977591265129685175190821099972444606926863488345749929320547140026383154758152808292498949645588723167197108661199803659652239725365691369840380401398492348896175094071528473258990620105594175512188614703172025804311493418689967767516063665022807027631620835196450427061451201266813304145718376529659119163086846679382283622119912519837314533130708571982609623196001930774573505022498809725762242375419900494197005013975830593032155775230803327959547793835354780915973342971705516177831352414184439038394275833641342981227791572388549950610624493739156216426294959813932062553312075191002300937242890609559235660403491262604946627958529733883576609101007811303683737302480682794462291679502243887129141765111398538620319213626431822176766973453412485234628131852797878484636972884500854328610966704285436380819762650703650526735618637565825965470278384672669063306496000601105121474677942126184222990018787215932906156245208020426216430050916116833759120373927504760476916967566106426051409103930755408301192924939798225330847007755299696853888804656834061185740115761170055542514240669728488259704151486827291345504511917170659625965600928147071695118336217982691518908515770549528427310108627746918074154733331166471411593642785517560890902282692585174297194604446151519079422769008329814867812175813514992528827810740268145162654535966913640076780222610150487615976346093118461802411113301668188014222180577830382331144980019053035390808940691885340517457680849897102208639666440495323090743603337425170392311832034629094093079912960525759562422823386564815716893509327434279502938585310605869125455337850204965740890243496217745624279017554011264278557186108429456597908023568744252396330649358571641232372039154420956932378316750854788618116038684268193468517725596579747427211705263360419128201735373396709428155810150849920558950446256179401342822537931130884001680575365999785835690822167353633539230760708083256335791805952289363696644795735032320935577892099747547991648634856635709318972082273553562621401399431353838308792389835774916248523076334922429415072867496923946101292722448561550282543942661358905118676620020505899971988033063290031767514486377979781208792615588538376580460339228327001242017755997468813584146463942334955430235715923440642237716726896870217853163524993368887630088901357449723126260166233236856989016512355946851721390032935622126369533923001574380914810455778110289247655387731057295435844137069153767810629798725559342187287418463785714850143129108179107169198885749771098333610202371050198193112902260299205833934542082138624077850073940228246193407484954635589829973052931711829361108819308704501535666029195889625139707079211813861620500160133434854302082927924105963393511619755694214243360585210872784493668689607777319779274210294594066517940145971409241805809519482754769031230147897162009825325706525576986865190199729694675248348954285717120237644556439550828445354710776577551620213556879357272533161332198613696537186494823012086509678653282464725509159475037134614861096107185244087783581696462620385959570974424484403919193625370507906224112078363646931045322583706175030577237939871137351124145627924803010012799814621184286914185587799784661857330258601734662750208469581697714911889832896304558819539842422183447551255763138843292981235084115710971946290449634394507380649673089997997818563407220770537835644161083614246278757553728457201264201725940188925659269173658889341603547202786036263422653396231803091244008574212931993121172563455327036379666952395479885948545651838350271042901172262681212637058340322751656057569207567718297804886247763308908460388393252301430644541758715402860782817651787103978449013604064380786110360014744525782370959420040521408968602494123394783465348612856143345806190802267012630174816051525914387405010494372765105454395182004537132988561825609341582171775722248167734410633408624440941499804179714869364432152666458939406942633177706187830860735590944373515599996788573577507061407322248907276431307154410424654109125511356445394530631378169426360644542020016616386767305190552782069042519981409270532642819062894928372867519271816251923299992935959468612461179480947815393899265231820204974520882822864210032547924017617477042511103042037903648174862724421506937702264445434111880884498099805940497694217795703129226695826207973669538097968135352889233304755277968644729319809311881952544691793194739000420440601227675597653991213836957523592980119790418720149595102397147946829196738765585166108558437464545005534705372424641930839047165157006233501167998610541654838961517529791486839734127919960707547315757142004168597002266927301756345260220143160940899585715084930207486318425866629520682897675033939904377423838389789919556151333119849652739544215695160507255017996076030545931654671215238880888301054461944986844346801463491988838693079535733843542148268252584361573712364145236540732503147293002098884494354040230304898983526579122054253588330849627403176825936253666817730551626604708114772840181448291829661964184954331460056298055769017457637683915663215565698191059722884008210645915377361772318692779735295936350468052204295952467299518236552507516713106746806093499936528405535354452396174346817379669950594934449039984731353109659921390938731861791547353851077342385962181212347509487028100199483184094543781738084700050242074467116505160407303856847642516270190754357303483174781250596664081511432465686436338986501190577831680308384036148684464589658170424045541163321972026911975213531725355863988190923646882791156748528512641279000795062611957632326779121230916469954753405939086021739849426979582217711922391308447702995771037529636145824795247855703631962131264064609553992518763878563997812650755024965928123980757030002922556684573807159735387890743762418245600006704444114336706974823155695060033415614748768516968715719794529185321089921162217570590972570201283225385406923069105202143087552167043647415080842872103311568648325815938549089526660158034575981041000099684172050340822507726537713529016646982513900838507514914742156068817679910451926818456989261121917129831805457727580094607760373115060703290076344634542516316785269318297061851045833344070915294984033016308322564560665689541142921887420108927525604968593999095849284653116403272070843700725485526856034661343937172426595726287395963060266340796639807740102642936223114532361646422180762181324129434555425291006443332256956590578031798515361459928695626321641534961017067006181386916387164492495885551791647394291295112891226916868484821948865585676532302208258210912747857554561986266804910762056504375689415584324392180480466902025550585282004818938595465133779019546145541079982606251964726010709942878663442232037839101796839518855255216051485355075708389166491481558750338186175603893536839452656591329305621867903926001276925601883043678960748971622242607358766450657522954902545120561219470104465539440291819101537380476454430876065229261202557398621810567103191778464167140349760383677552499559378288575351267170524308189190620723347789681967982457369862902429577651876284216027997969968812177374929014483292930320909775800108933557041563880928489656165160855217886368453092977219489263800856594635240374923474366770811659321298938859588250060751395798062106483582569874776184866480272096784977459217530554090643580229672925241240586550842505313444969004765977766245582952025930494314407498405477558587893359588188815266012970067350490823921905150465205793150051638721923160234659143710271570276350618559892462297933538634942985311020794404728917831287779290772635215296585285610905408622952385644725657401619934111454748375425310293018991297136665829657560280137229574048844399506378866322072729695062419598823718005735327197106618165220288090709660960813941673887279629954252055762995029290966369880514008926764279888538677395663062565781014722330539636504745635630969385789497762133285535103681869667814734333510716117840803854750452452487274558939008186918696380298385887131764685848384264844380859503538090284194075887976715741211236427335254393361768612815178894170742300579214510194849904814121092229828253593267852321556243323139284925031570499882125076775964473156479770158561741229306792115788817883673232190374849050802973834897869787024001762813600716838972794474062816574308874610542843366018937762171700284696564512710723430596412537927999060162607568461554270605769704556720264140554300772702379667659932511284693564248629895870921783950032428610358398659383002130669734082962760862399783666396190396795542010622685122194408592882201239024029375825918909623724237640471560313731938515703442544906860312342157548388603568390635182768861185567878218875878518457613689707972152880407035103199854333493760840781076559430082554377161986108903210227311047790769204202645559068302540780655995844065156443999231585744390662004132171238402204829075178789405898826144236150481109995106909931175077643207016387809676482369230196733918806407424315560171855313947879303943391550480346232724592443817693917461222192938904593481623374514476214627470234514779978760584660449254109078601741823549920667110863461265972566943851043660178614411990464827094934568773926338744619498796086759198767327181734448192433481064218394240960935918160307167472152509749604222233412105766836110221964724374790437868916207122327971581939481073668299767936643775512703997195850557773473207151512499661250253390270521092719023671508604396408724696809298671008303117729357337613548286695060119267311684918861899976881473214335818787744379436068246981160701733287460816856477266559265258418370665577081270050671133366339902164550092963923435831590178407640219011445898914694248383139640827007903440258708900697548664268367037812014275803460040946854200281603989601128262999470398958597448480346226324354958257256590336510688010467939174837203838741304020067367052185802381961789521450475823405920299469485411574076419780160138031013541863107579577201236336581709886648595181409437146364314546039042837778325706035456984105449175114715947039846831109310575312701314531887765140675679863308875298194140897072770103263981812244300278875785388618239720816125483827540728835956684150904810704260028084872519901438654430801162569809306897591804211636387654438450477201800341368395810878302937354199534996232001655858139885689875359188516494003033251702164851658107499879615947142797709839530730764779699763120266371934494268229988120833885631178816335388840463945925433814323425953409324150625541966500848399070582636775686325346397846005626710192689612173934898913229339706322603368330334441630923549772877944298186304678708651125990027869716292431860890547274360515015805655071269897797820447206213903721804307445029740779969183039705906576713607119376088196207953698672495064979541323130837795997302523530940292022327522132895176489731366029861586107976403872890323050423042331785245664955196705002647236014905750251203398850113966824622138394371011960121208055367748313698190394980224189415241189640641957765495988217279732511629355463735182988105232815434762737984315390111725413336006297481010690751910283427922654931750153253683096933021590157474499409299802841047243467193892075647736187456812824744264383732643422304025167606240111536651181048955112313360301636930470326392554890254168456227276383526901865770650413580358812431621441475314015951693279438476992838935967093781760859058921262878935119130924504266238265949471977343147848370645128554505205025874561664267266974403569273926879548962202707005621837800063690265932484647762082241399790346060895344923446175672429566260100628190532752456021729881067241804853304328809359951753857094960569452064745977334795224896685790611490897358670188094698496351332149319465065989798747745916727178289396959282356571045009704742063372972110171517125089034989565977303801990827594594758212376197406327545105910079161389354369374682920233514671205928065881171510893964802037245314640225106537181255278912085763696308095682306886158335558349641464786668294018829450269612523095507114731455335206377913236158104237588968078001816438930559122526767559884306599725119235674113771813858775322035703189674156984237005828499677544580955076302902491420310905441747244174948239340659562907815978400970707751601608636905935420404360085022091437824988668580909429600278819629625676831883717191021352602982110273461028889049735862049821720297345967334754055836028770724787803475892230372954517130760975531320428549380678856317057340140204515183808282593560639545557264814065775016469245857275026098959611890493141943458925760475484291962105936561810345771184022311776072034835042032093379610373422122317515588138077639876005100835958332133732932835420749991995687406471278295734667658221965927968107066216930887308206125661475276316062934813497129784672537960874879930523892368565206594385670174389053081291990451851406498779540286060129425613107965118598388614470146139949608185680553526984816173957092825687363446708219325532094390084760936143509493697532607960648203492574883899804486031819688002816558047891221652566679655380967339992653906664137145627315475962238974784367662359057029703073169230974049256518608867735670324015361514221786810210513970353626086973184236765359581069219351132464822174007982798645660112310806923700421941616420847777230110304491038824242964036130341980799747127750473459243226619364024573139520539812375148336740310832881886081435518589785493878973578859123543926144681445115767198026016613343948777249982698784836252575227795511951767819579238933048461222663847348625170801481981661118343633711173788767450006150424859872450773839091573285216268524731895058228672870423625581865119211918388825264762589121666881176887388969227746173041075206836108400321331577319587976791486430466492600276902376029759171115601642998159225420939066195264702800529007698802719465312038781017921775692560224380359651579703209306657275847572167927980993338187228292636820096419467679721472264286389119141053313089343720059866039964265714075904677178631163766821925464379363577981635343760106995607135655537128184646231979042428205727430264183209043931748548567038014723533059663362237984391701575233442771187267671597562485810380736185689835864864295695774193395976186850961723703058288718220685080527536632678672131528379606678003925877000174465165963325897818283820143263304784797099651904909265950393825567242977223497162269479176501408039257026653499899689543171533830438713573665748579677068895413984190953694080971234545159468750273484070778406029823179228511137049293626758262900339493697327601382883943047740910465143472166270173548639541505243729045653576993024816198720176362031574584157643516402313221598480148039899961716113028406865793615286075183930598386009116434356230004339959990573238895912405523969919240844838737307491711999809431696863979398458595474869081261525019757399692427987534127883674650685070181499573315727134712082216121142117419459459147923714235086909331955143055640521267339261130970468733019708157241019689009361564439509125210028257484151194457728702753622051190557138783853771438068971056664742290328855953668411894511992185894148221486716896231043360360433669896909029758002902024955057071862502489608705192207566177459644505766685925887750087496997233590631002660595369057941625005099938948586927996985096935640419994919363655140441526433839600754294147490987249483229383149446164249979765255611442757017397264110719171525178941116808927367646462245720004150098639146538205329438909543766684964588070650739289107246829346642604198168258165383447781401254953808831230730374516975843136601112717619591358565818402980726672269001689644228954027993938662029353302304242996814579708114974126167036108105947518593336765234568893734483717105000864037799379589763069146898744068252153548619031357476303376139369942470148430880469500379882928872246463578877495381320620384309857711958605644340149149929532950464232361817685867454280753403150641785875985768165965382757927146041422360696874327057664368870615209030551975281768739031576536183416790771268633027615513090335277162237056080174365880967841573242736561255155083932581256250489732867470451998189041349137315367114148439961514948226190464930585867563300468008849325433377218752229456774280354331537719132690703907301079879361059443258399900628896219302031224989759924317378613604001555673049526290712064947651028847441031994040977209453469157755482887280999398377880510934206094095968588456521384821979430002930850252986267130907953903441250468746714688343055724011094477776926526925795443527792935325085218670928928595491062400126728842652016081741238947928230160012460265023885776817632578386474774508509885768782732221192824684719205106411061225499926620015492271928324947027346529840446941360682755979215926142664678919508118329707330350642990388882983035443993554676241495357942909852613495560030817114438825950029413573143703507034068359476598096569543386825326370449232977912602222880177768866528897094905165029600458920701500926139674920141755069442876154335481848983674394873129649692904586117204411815443034917643825572957016086619406803200521167865735761453942124138183284546845025873814125930303389378242152726173224085938829770590368024531422345228965161955168735451709851667798420517115542546979565988518398088485484725511031529897580917681504568683931937038496254127145835161928061693336783126550972752037251425746889386081536527915793177734701972275016584315498214100867807237774281639805483982799397454929598562937953172354204491415838562789715683071793269689547401049248725689617051857518932047745342031630201963890945153367881489139705439354072337356772080104151685502742647262307254164221088199030401931829166753250479337365862514079517133322353894881153643250809825131158319700421984220476098038734090197821209588664913015658739380666753266034907789073597462698610530513137692830828611006098469966252482384869985411262136010297370349970975967225035971932334857023121492426360554312571005534183908897440668614817149713548235306937956921417133154716722209369630600854835153177175799119638235156885600075643121626858844414642600592137725966012078770504431366950863590922604274233987996818884856429499571614670910188194745248305550231154212680568688477384851225903444122708374996336495882371978696007589356410814539385380013551022335986221662386478117665581849187145330782489290632372104410737148211286632357566059640902295526143966964054077516598299978844686052973189735098122955236664347725120790659595645744335226952178974773854086236455281750363429565161215439695664988279622581862472416657231869215997042581412335446333799598110161456815685425801104718452100453071627346011277454261122448330285800684017353806081977213999880546348085425385859268768607292147658317306204155873822331263729001001287656464987764962163885538688470284338065515888827603722156877152337302505095193683520216160143158844166440853377735086069180882715131174960364473844532114495094913600710067403312521680759455114417400635639703121246710713297807999039568385149874992570576136188059393521725356250595959189587499305166199256181754874465440620602898972464042858859501498972650030496198880598502987345492871591188291921829380508504383724198504474306585437002626088050102979099443914243259703969939887920964615440999357513782548796898754095455700257342956413920346022942313031929827622175294359316372726306943115439147699692483132460455436704029080995814993901283621429659909044497849822618451921182360037779237706765319337957542926198155927557385312164693395364211429066449559431514420817720407645277770239003524442895880658081610953124852223755842930438665898991524652796927778465481603856205875140512732116398004094029838528839671534954709834700195308889151586196328015527258287900598325891740915487883841376937593784110502186283764308387311720099816485257471099242453227654310944803942272858217653268595881145834265860825396587466644558901770998725229191412168151383160230465822088188693135999563349881602634304315696021779798259376590534487909073057197359640742497115702304974609000223191334283963125952626613835252525067485199186974009626898811699386010139040455458213613593776319586978044775601054403184302399063590527592027141632155578702242675614618514710891961005295120860001598860052928386293226415763581138510640485326644657279950681805474330289540363338753009548443967349478417682500583570169036744966318317756588219478026351985860587876379927277497445743211976977747797387992043772011404780901272764056986658787307040097447781690291198589775543395411310228861262760764153416905098300449861660880384335438202166083621842153517823577921550270839703459211276859567927072291685260764879846501761802356357473178457207065201720074117665896950690649845441522397762423975354983618433724055366162440173780706567824211000495962048763870982250220567226812063495816948531933381501009310755635824131555372266778500586802063089104988698164200837547708392043700338333483123532256087816036187811816200205269555039048730978457278816043288807839933332731997053387149188772770678138887490820655822150856907742893594737216763333762748348205518553894428138112468372212703530642640646102092049742171747824772686134346649187586011942472846432352634146812170005826404745589507702521067001795693294107253113635094612809704398776705440042891016310867305431668370170133216473024753431129551767918300237539842587641961492935988601207453550901777860264070666527610256477121241161863690315668477978828216770205901073799502021959099653043623120635794545090871735061940073314351395288103998027900032550436723823013430699107282362062995197593598485629604722341261127483093343741664535657309582747763552911525129087265497929871826660442680546783348793600858452212642498847340465847677911236410427670080016405367900423137856517590419403956369071470815721213313898626109766655708112504476086899599671270901905209634273679547074293045468980455951388866267472696548673900114113909558985979939337617362709311903861905610129008020087294034023066948666777449763466445156590695090584555392816572837357526978259708534999043845811041008483471255864802111961758637048420132683723162932528140223739949771229493039507580210043120997159934549458381371449409424314140936717110400545659591876326475436437038628616148585728519661505810592685685072155024662457750209336078239539541713358354299598480847098346310396924897305062207518960248660152458127780495554051852911085540297162691202973911880695008757111828374982483900572779079149237982352728572492126826594021891555481332969861456226672888568310850015022786516785584795745586990413614186137593947009135012444192033515336883469217145626485643024547205562055877542162418935153133603401506431233228518893606819801150194019048330073652199512102864955954176066671874526938305627228940542388813389795856246327008114516512345653301905050564483001621153320249371295596252787655520151132799284516081946707835320390122082189605073904192959894912999306407760063699831944271480685849796884937302489337139451377869546706074707720959712063835738834134124806415541811179675323602688693590869683751993789834499372842441730270111683734065057409993319801778105879722331374796514895727301573929478548163224944225310203121161654047491180935907597554485967212403162752415842979374281545479238930614128198500643631000330089733279976077267860670672065119332563886450417003982321103980165693350323832707878344886023150023335656493659611497508607616119803043821672395060220673111272778560694011346124003052104922156381945209406223662416284069096587420592019763773966552462938406073068405089993199908513002214683585758403864022393995007928602199702978216762600262793282874115724322952362032144673011044299195164526026192087460667929030250252326134456264528367147802351806117378585275352140348195180333366992232590273427820649726340312140502098050681116691301589106320889567508051792197937869359248991245489602189518309398363886192390155231775228893724139420718266318344347832346477163068664878034811973663409831064171628172301592326282017617705234294672596793775461514654366684930249964608148348032996229619109199403204497913994815673671362466227193232816981075580072171685400641312647200163103035663417175548603108347727106287791123324895661841379474780907920698356438281935173684556836016905551943087281061276402696185847358210083342441654612498370542379820375247506703273216311951906295308676913226572204949315021172427422080462369812275548011278122955051330527013105772934582818075865228156932789604715930829067449895124279010279199694659636106529881147423112238965101088536800412263505410342791689538518094631324861923469732736804069753909039437571692628655841981812551933827236544158521752946044498754391936960661993221276032991007731207696971972371067364311065257149814270308831958721440608069673160756039992017628158340594751429828695290236867241614821308784744072893475349964311612898445945372573182389592656061915625666478659756651195898103563464227894171433081142876426049536841269965244011762232804057779162743903900811350881882753365965935164683863271713284901566778476937163326607647374524181766260875235124399547576194546517941016552600121022512490572804809270687776564001948271049025534562872196295625149586402176173589328657387428425017716174761627212422289862325032504889393068636927288631047590643446643207439969103159306821209603054820773595256130472064560662523769566336281833518093815333336625127049530489254248562252312181039582539019770535084831549831914974777064138085265608809165048628681537038055844441394964186134196886295842679833800777463252472755497081651675876119324722922502495704370259051744758250478104286942097692373720856940203461971368435696976019416194554336253834229276853807493071765401271676966381543274908245132872458350661330432074619794837509186695691441203519410938273421291619240458704071829994105002191557088563552072541979512157011069962963294757648815582507930877688591459584209020311794132637509740863294952751858323242769963413427751778331208049006408594438621936527211465712128525174757168704871984770394878546615522888738573457582435068404050950078115921866193607365481808945403041125841606513510946089582254379709298535385366964427393177933211783402240991248514224032436112566994394669215669790100442757774207589365273980539146535984346155473532990326375595129641667025342120426824453276927001560681863429342366425019845643915944213268768680828531975443952166435587015777162810356551118869631458598281481715310852935746126837975353249017655930220651695071410328019314312130376407072805536830237253427000787772967213596543322484992128043219377423050172305473325461447346697434885427500908430745361600689291542514303128524222823539844877958059742233544721826714355884412633703727408334638577502899204896300255651047386409116801705517313010668307512315960075188930620078306662243303162990193395965577244753538647787615663907400661537949402981895001877297406271457224558841633706493801897469460415881514945695107391047238389097519045073037868928281732286352333047403132236387366613978488830435409481483624405202110225572728807909096593653027896719682176583791930241186990990606914843194066860885923567069256611735190704577244331923773575796274850118481617535438803855075379033859931653832707571181738808270752017891439944895033821501402494020110645276207621664368830275189484170630664428678230671238655319062477149052451390632360513622969409231411190544861224713093792979555538489528529939561579696997949375195943475363591685429853478346698009847917028796983710766257211629423172999059327932487562333118400496469633988276342768525239385844479244913787992978314888979444999591244734955150162258880464788059909658041767987384094742186900082645419269942300805249761461538500456937753996497808984059930785105642029600124645782976195022106012455551314770087760958935952511061404154024106752437014629706656282802553527550042201204997778607361468362635325508047402298623883865120851920649264483951384131980047065258397900902610052038656967245922725443238089548497510350443905596977431478361825310681891946227931871115663697422307964818020520656909278228832091757896266046961538949633238975473158322044255139481483381349449813569639353165964943978478607209091475866537766825691627842954370512385471300129588538681083792936039939784859468978085805817749678640274086485808640221379500558534999011455582882439356046446912440763603300051971724161601511754727824675729473756718777642422500586692959439060311296643274863737382755423447673859622730813606677942192472642691306524908359478065980270811346674305311945697179074226113021724996450493319292121672233631527891648160367866988283556804376117801700605199882955872063715312570124353701175433538369977332046990110028198182312835704219636806725286315373224892032797692025690615325256027320279366174758314348605289981197806352147899853602686231898894353672781761135160159306170011000221992691433776022420413299758927572143825507459895303106160589454201644037487395236668842113306239605122732682158547097344454804100284026941219327515922232422828486960325046895795462912332927961748397542332230598178575431216236281967763830737498226689046327166253798446488264807082953930085802978152609113305540179272760269991983748002330108114574038071313734082733068849793899600213843242464220383276061774555406627169196179037406602660351826913877504329457238375792211096766284500342518907012590706026430185840656808828032788213238674430050820797245092042668420317238613973383448982462698320986112601393948026388031707817595461588723586643460370640924971660322280326147711824790662970498868401635207216654846530224620279212659852448922778399111232687587000954703220318360023927110542802076473636833848677536371662457941142197239939819741266896900212250407294141876282374452163344370067539974300521347362358175855821331922496433318751292746554257775189751073151777610483634900977277266772858022406186446883028835704225993845709150050003762961671672880875576961336382529553293338792245408248321285666321508523622115920027562415838964839143766481654214534759518704683343856852576740203831766309040172371003315151995335880078877547176890024213334076527887674543323191925385923526216655852039498526290862897377123134849204518412832671077201132133331625296749121293509274866250072816453482669499711193666536042560078755443162437478835948677993948040724401528624335821144591447719585007728406445461833141282709254020956294428050364521346563058856460215632874850346989537973670526874952544715945119661760508537908343854455984795846456243507692592997723170710744896895414375171836343085918133945630384492084766769629913938624807529570442908115036118665611777172966157130892806728902966912616139187664067486078556090635461935314714362093635945887521079403795103636564888641876201845968215430189696054700871449717164279944448776147468326279542065799863732033378353828571527039122847375898680207578389919938259324886664247137620895316807342845003970141647144699890886653956310835501705751945251811006158303030254039206703754667620694866611973521691045956997185255863930385696199578831476250415713075407496519269875809205075877957787408596838597355535886347206825159676005185874499066396101441851616165599551738492120162013680119515543263730989361306555574606878182252835131958801946906308481692199097652675149081769237660085486755939224247964230012700560434892195846454249738833771001191238759051885541400150745229804543285548164527009518665017269325902810943592463312881124394264553501881329697113651349212106961550328546075133584930482613442399740718207503918052980661968742196764494197883121847853990038389555636112358568244207708757751680655141501657074328125216841676544514849129843410685796458387569383226728713249693456098121503535638907619559255409187989162014886726007251297665817197182720324568932498175132633552065195254903432640068291119783252442833778889291835485079422825264172652950902312060378022187520012197256293924335572506481346363476767854805812643817912356252006433443894574351965397365914809209015436092108786525925936840814830984550202103431052908988117125989520218497940268548517058079884432429391246784050020025088445412686483498357409422347491514633005685066817902343521267128905412131458294257415223750386317822116869430348284109356853108207291650533646472910313052183943547281205126024204242623570282901393013116179061895998798218491360423461216655768980676616107566458765877455246491342752657784185840282017633139977736765686567823141704802956650444247203160527062890317625434924570270558437866385141471198131926302973638870559280409035615147874973838244409538272179939798732124750792121197333287517656725244011097605669152590068156012955371786277908218102115964717449032829130489341239654565651757783503473978998811714571951922429938448081365227164046785552027652349304595112761351716373227377841822061345863266964052186725986927005442945630983310166745034626849772544073531994019009920207367826475218872634640755377194870743307756609684364588045376595781899205072559947218775511946577446688196693643950069834244553144900707025297400119955445748782164900548551302713491580909695130288181900793477385959402718387893913777974660595572923025536586694961665571284392120936933257219250394480230399849621541019362467179544011456584377601935243208253181923836406146903840215157584971795736857941540064909410788165909433653220183170077928251859541865543475403029425877575360755967289673175191993802416330513288557949433193354975860950623581498226391549760844921899604629441579047714257398863543822981414440099833484002930894652623992355565444669523428372486939039549553201333096062444592633006957090919550040705628719014000045008056966147916329244159274012111672888137713075250104775881722033124730627150455949679147495373301840282417609992108427668926029867669171948853197365750652387975686472403071388362255394577202445224793841877977019807343179810955776268093654385913176202701291139487799375642653893990368370431576165571587599845290080901108587561881693573422427582336154506187160865051684193077336408971258907733501526042643378051742683898151938486488067958807668062641008532015194548137546098348323061422952945810933146030841017853143412962459809093869338299648953662225799278021819748604724547114649990400775818349908570093760649283874417555606987202256726785677929894638633484758929474989956839722646855367001623321444956350687833024520693868989005173341793145242336801987582787001757353551372938950061671999714496989961882926160293012757256950416612640309129349743419003521528056611092899587515372851266571454245593758704769106621217714539663687148849176962013089988962539249752214596538762851970696391998096026752142991819111163258489901643062959197138564378302727223700037564617381725443052689287864036911486995248645236937148548917545325591672790256595040210998445314916558849843403648836207061331666206233170431017999598383856046441996705585769710536769074058923185936654710436606794380739283195443288103732581601207714646580372245544062072428655755918231426181509406039678381565105213000532304850647755688006005370900820038752807954912859857715188940392115873120098458385183835672248690244896533641920188875335577253292922930438031911992257810532359707043999536149043565018844813900629127426454501075671646036481169721751077034560636581047914370893643426310773243808479616083265347375431568570994139234453102241560093468177239450858011481793024814723659125157353115322619537416511336327578177059639459380832482756549046329860883250472649203078756601702311951332400843717958805518909902098480070993129842208981428966826809639427259339959002890344934187624086614647793897188485568662261265681561637020080013904608436032412651540181270781561869951605710636882883344674598606208574099851538676427729272690221280665624635311754573497449764733313721641452948629393362183825346794882292035440580159260362032158815045076529475936053732633170976868908270049025884425773473409566048841986721303918127145613691781207418376211949800133151225535364787504528801079961865024928665041654847125495174939906478631832826745869552635533130257422101600470396132611018529293773849813463487324957242635026588876135257906743780093303405565640871826304406152442820128095249132129726140523397784683346300777451477940330801575241705640422474821758914431017140014176598682806192761947340270133105074164277657049104305097728802712665056760258002869020328291450881158558034581848920389465156942933554617259848428437298152354229874650179458818277974349169814444468858735681981744376840804472411293919542190983196101167610687326425445966688147317063228088478939110852367738051692384668629456679288371809567825285901349127233649379050441912296779832382846312288615220121621258475647275338672740234094293168199033592356322174016442981902970775517287979982558311847071277433020400171943945630294145409395344356143823429578305238724205411691132734090389318368088980971871420217109677745133523828928954704715275137324764967400555317774834862508552992072432127017497779661617258009592038760972732529198130508660503886079616938119651333319722588041513516967054039208650952786714283590246187676616121808586298809619669876245980953516673906547536418070591713313568717630414146000881671927004549834608049739156766328595594476196531785147765042147577857898155355168690151747121718133629150400357529844977541194325166198571704944231266562640455195209984723054627151754953269394376551922851647431743960708647612356047605259039763150914518145799769883768176410755457334687198118415832348321102953748456273194738487267827216315789589023205099403972625382153469062751998945296502182088612446128586821657327395162005653161073534329638403252086380194305164001042511539543367838919067475459937408889552670217435899077250889371328501232822411664835817558519666639095659662437444244910604946068439167102959077662976337080573389882099185350532830549883488109853600314872498892981281703033993242801678386171721115686016675797218402889932080005599679712020723938767052852519666278162261938898760082579678275408017000496525728866731513585445313754885245249816777659996647755670401376900432607199830903926463111776991498783649886575873955219644200705051425175557573763954492360335222872291569864210158705029120585146294290503669582372986870244375533920119101359601886518394258365934113091646377265263635021346025746821748972827622425165229048435984524456845699681163073802218870124149387401384812070077989018637503607443028094523413620248171906122346538452249045683171488302049026772761006423203887615924318635071173869236872092517455024037726039160831165341630438468548075568120147730566432879004700024149471261551669346415790954761714797725224322352442722943207011256344946780742312162944132268010401799504762316220519324726615065702286639562513634875978093264843702432185399027733384757298486268659938977410712862458976453574460577263068394359722694926779998136062085859883560089955870432313711423640304192209052874966030837766001433539877791076446480020996816850149402468312226894979356798940636401641127931537490247747384709356501287737324151382081193172720341893568329731677795240276590483286997027617480843928216559102312922586153810729818278074788508628300784254609561962185615524254448174555311718143832994170279961814828670579786616244509339126069919509975564275680929493681914157179809137555527684326096246529601303550042274424562114073059397940882721828904981949898728775277100056304600421519067671649371378289293390185088879115690403714172453656558539903914459578422770953236257775223046017613000404154348369767482214253272073703714225443098118269655507545504937679109468673533272897586817076356148037500364864265687770314552046207297066711772110857266734611451249549405207815315253528871113009414623882887746069375979890467424161289502713203053193170535602609837981277379256047899428785089433243945128312057940254278817303652682582990416336309013705757251551442132477782279076760329548839878103359962391361266872208339907335180514916857565913576659502543835330572454821774107604726563959187170156990539991543804915551278168046041425198151259463409572486999275234795222207574386771126221395713993741237221370736552727331774518452139107772714352340580746020139878166987556735342152708857439867638356182533414793581821408830309308270462815194605987512547120903260066743786705001755528433180186066443442939440863630500095478747015259406291325867074403126467790261242234378990038987724862541701303505957871168677529908622297310869674073532275102046138771843198656649966650925942388486466781812661538482002911983621037138885601869800754676205398232126866256044193093533402319887770813246375688778318978868991970553501500936969752175033280327680482469927345124989556894397238216936545838995067821165086491789237845377109234606033182831345804402901293194244383085311013528152348800153815308732896159606523263330034019895089301478915058710803243284993663052971953795063236271065903114327456048105378114914144078050621774473720438469197524897561213598934798064215128992687888377509596126058810562331301380982194373040787892273977324706369346709912976066050481533427712896778780025740715789139746655671332468889759074264481717944780272640650173029244736021250778931132633330391641155595348746775286107785235815470956519206652045300800753190196991282385869597422519828620284091845199885811396685841899629673827934753257575242304442253652190398810168306257144408970109871570454493504545949947445942517269196031362075055253307135468248878017532833869584352409639338717645856138978035992221323695692243882828555251012670808470262748863715028719699535898680269130159153018882702465620888816125184866679299284253051320487659283338381683343730036060763065229599281124137514728245632191799681304054875667623295511180259793224683336271538069440345326531060297847434845528114449755899250569875611294943517814235165623164741361032114134159326032082380831343709174460829048517841066300302342760074529844145264499906029827658108417030427722190007603183569309025104769840935405926372656337570989317319780586007385204117723100642240543649478918776732849234846472875124197304004035505890616268419545974788106626077830203242642358765232675152732759297912419671941876668595438787415878708147569659511745596078667071466211684168708019628258962463470571732164345482990542856045029600301981118551929835146280411081486439411578894278202270147588153143336037287397627148493317093311586100294301715289344015139800875402485214888873704570208648340329254319222044263477262820976115709391672202778369113365573221827671678197390997531076285027549646850548861978900646228518293542986098602193523110648469561380962368817171444609801524071831999461431492387137926719620992870027302481606915008070773070065270191948787366160695959768819697794786821453781869728158573106070544403606943168201573013775607607352723256195434583017720207987518192708362559858835669793530346708705066112582473325803191075776558227746248299585982135070734161255455931651587260386563654971331310271216282453193675178908580647505039645834754743538118652790884022550333821389351155429569546571852954245596886560163391140744918457565964339175410452135518405088450700300960833711762948970773405079355308560048514356363465430239409240272512269296775519912752000904227541178445751306605354079242306196694906052792682924512873913627919165501631675936160849849274233168081075711598624221363312554082094540245109059661634268146171051601136449121160141703131244252875382882751091210600321832966596054853938654271080994559148084690572792482065261568335952302356692680239549790720054127438881645243321346513932094558547466904684833589378988175572687563471378388992667539996617934297628721627416426559741546279225658547400903689148954345240279047019740697602353421969157708320075191438294297373716884391866545859158482737434422210785687120381077531439966722397316211183396664825420266829777468693762803342694717474070374763391613551297426993168185860979032234221825223687552480029116623337516150760028105697723546415650746633178941239462211751711961878813323497468928112009967799860271548524988200418381855442898100329380544507692086955012248142315816989361166141697512763479899980507483261719929607157881744852110624869959166733440185884440549147435557746072387494277453149823493521841083751375957732290254715991318205471931021575794673761239328303149356356550708008476452973380053483272033998020773707361827959983159175326517306695599060481500668147410499727707751414087743163700320935265284967195161581479601457779839048670884577994238811052407832797956143968989575372887340705683366171426286147734375056623288947579111497382846600927392451341195456304794071384775899928405775567670047612296032510822161897476129677885969562707204618783486867109009000317274832260971348158207791723298099692837221311201229467818559735594837174589951658093053746027276633498904481182725180321179229660709703338741536557484753021573866539084352194112768355546092389942411535383725165108516727959804647562897637942266742991280092232938245404298198277407677975820258601068998217567281405790118163848023055526592037925118700554698431357340629015853979892654460703683579835672193954675870810425319401501569339656463881145222076844114097301572099431680113230287545383078089623604854435061781397695173479118857836506364646742553562223064193226798873366725922254345780509787273562950871623820394507667338476156226710485344783183155708543704023931181373701551817936230562661907663169752753945801918371529763856516368172261651143277936515400884558374374910334632919285051957641431456197943643836026322031519795906977118967300234298631770320898787582046586036512727217450542941655139328149754665919779437749426724516829460576256115027178423128005070784714442931068045459046047986860661727313247730674885719523248699839078135522545445671783416866193278201780122877139514710126748515501807950149020922774509464572183131480708360199201984012768656635470377309064186621075218122182534306976099777398237027126743726104332009429134918146622695846437745526057167639062139030158583697863461591940411412891935448015131524106444219937159116744395495429929812919151263403575449203827180154682179586122117683477103496626605927545736685545948428880770608733665019668497185776385207746826580861879218569278428465745118620775259322012821155498620688909763754558108145827071719256300458778854225157566903912265064679065841076451510210574342527828204148082396935631887334881872007867935094400422930354751830533707482331661007718059157821118563702613459521926684027823458116356328330944562454596251306474717534258157023376194339557999876022534369316625890661562359721249514378620237512413293349860705959031927932082131561948605298915749486899761794820066555013560244263612961539292600522413518147886025757426311859931006081996360141183121094362998628172037653126536111454180667758893203645564184176147510874900951385261556321483222459164750758134715227010675891950344952382380310236871026523314120793193237281220140252775742993895983407355493707294011295695215687857206898053320591221499486226172805718855468409850598639962423316976377380119861531477303672641822627592636800499977654034731131844337284575142005164546908511167519889308991146874577319197208388527264354275965512397677365807470062812601395378249399505793170585435773126664688848485243843373533743216745416661589150755980633390488574067163388633511276745923361298595853831706179126126634586621351247511892463288708281293071921278046295711084165578716765693748686640985165451093219242954593873651036464376525065616055870177981312614569013900692328627188781219765003846184732839590047147338374647592771023166295681278945416857526912868990840167548431066983000875702089543923246905269442649724942256776490495323782015522592595497684135869135962160298498417767103473463051107162772294104764487248633222258287598329793122353666221598031945800273388533637714018535553132388722848606701199575723998911307382127998780395881962512067883983298418928673623751897473962578416957857632276407847870109565221138736503624517213404365653681763526000328459805348352306712718871473046284192989402825680989277200838945390326326310373885390372995630798615560893050574693870140837996440261321836070411666145578087962329284431734542792399802696155356820742437381392134075204917251961077540737244312949772344655830324078520226272302238516163245001896170929356324024782114893654272457836605149445728965723647984691951451490202796935805893214143518069381907768466763468421842095280960007276253757822541130097031951031281023415569875463841525625423482958967603381894680111875955969899457032189977002360162229832362991910553155146349034495014472108748799755124626435831870386975457518962045500861723509205447426852311795566878415582399243743407997589346695511831699024015737212490950740080487810696318821700957075238562696025355646866101904101573976858648770676492387786397564207923872796100117379812568883287343638326083687360417781855953056359276788062338542877767990294092338423853530323865538936939705150274919066885390225132439011113132738996759902459804069090279972011095029918167539421675870145918316850413333691619820006163263711460998442033449804883251935826095632604908690255638788669250035011435649189280981534025653122071040869263731583684522587925661819166981459426859653463676727308707248457123848716943605078684060360119011373553005746983158291017747391349154964047664457665826557543273378088141279707150244720255670972925241111098419055457083952409053899080431760491535829586110256864381903967106724668240085633325498450271008583910319799101674454901852554324012687559842911140470442174217772610783310856623219955657496361416729775447397193186371489345778916910228591924316583724335496370996368917555502095925037607288189226219043581957325074799010988566279743956189601424486524744011824760491178329727094424969971286032298927926251798408475566734136494476942677808352118162371723924087227814221628358851325829546513007553396428020202820889857490266880438843119990479520419678476157372334238359717064347823248792932078686193583826728016718493963454031696017827913508708361680734580820170183053023911369297114317661134711057905891168080474506350128641120464613583983212991822123687727646525114687372796231149136087302590152683916855068132617624820608202498739863271654585156598908478081269708590098562467576109909040519376579824998229542152945686871232721949449955568041309657332008159892959431376501458893547575748915752308797741866101249350971158587530086631414193132744926616037013515254147335027843648239870925812490838900816229878792533573011799072880611414891299220698453260999639031903157832971868502611668759424708170398932255549319781070263323012447579223732948059047768208523966170871076113127473034625272351990430215176560355292602405811483584105429303946076340827322127606897727086393266446418706132139335732695887087853093014792911989454026294851956371712431022263973548600679462693998314239780017487538769571750065372988874887973623692969468957632637116504189642703582350101653719729979308869395562849323699033092733800736380097755665409322215693684242359615231129887623782150196351244165222230731005978545125114765272200836756838149603951509109774101181323347975707759609467607848319448411248330198301183843064350200541490814356784436828902133629806035590900537659243986315012746710264382370271225600169695365290415792315884383096159039013433128105178727180338304197916210625758230376818214582481651868142339922079105398965850074013554145035086225007533386286432374373630280676987366714560897391984546246868120301983816148816060609681649353503089853805979719790102742422668633732019946953702316912565261734138623371482126906285338934326429073614286182639335083206642885128328747060924848820791690858608800155170977593893783642964431073393527779883346889860479880423973565395772256185802239270317725661585374380294790586500790155138628573087047992669436689558457114431320259424475745389375939343756966442715057792134857178506791787659069238509060649394337363882691405082822603504562532332361286330417424005367031883221998405670258430756467346604396948621118851477373506529860774332984151452496577009293486302902649182834208972472402547554305431036672826580501405693339908239888530749312252028100407948358016763634661720252000782561472033347886334771603176353876003070934299217142930267753720835409595337357483846091754592747913649329862601401079958115961619674404252366422665724789391560548876249360049821844088786739275542988160953962714667989631074630915158520170099541549098806631456248401876587170898428348507567314714240211393199052122287214469685506158344189421367338063691904722048215225409395933630285195084905748405702434754480242055615872146555949213512900159441394471345808838568054240640829083264579738095069766723728683995887374528461467185416575090143828023353972912593451727705932410995190774319210150155553271282187545333004950925180096882363751094960574204086874423942813754031186065805232254549456735936477433570931857442014520380114108196017642996528339011265712632540735888161234250900418528902493748703227049545155434955837484277204196739740261324032767083614639910613290554496805040110371039191755756070775580156203160019789498334198778077774240361900474369859779512549182751262706875374134945819855184106538475711502148937481074103763204483772699717533662062077205593534947274659330119669895101577976426359493501223029101991290728151643176437704845081946986346415390350206720295066640618197436555095133956951147696356022631787626904640411867029744527117549386376455581545760757826859571271072232100379670041678688683614486191792231537252070766954301504937201642773478337076143076616992003260678777765404558005412232985637936926711793875574219733399107222024310601299817752834967203493096117663337672788393167007424809466161117551453702339070691334205756936004349640184615178735056206071151344339160873820358297436968999578665861620061927901274820717571387797573767148933378570494217435148572208477904546042145570116859569071513684078195462061811888860004241226460603657751422943593332690613516034722699810815701904239182146814047821218447823022540923380156470007083452756334093708763993451855550188113563692493974926028794791740766075439888657067844717154132344968981635522357832983357042648501348831622002519686536029812993836568941097382878268423430224722192061464254002751565048349304483027255802440934730435494007051850484572303890484228591534451552439043754175787231516330721425000246964849369195080377030791472115472755796065496369604787436003446134201428325228525418081379455019683305970603052116196880688766103167333241651422814807314203828676436666167729354581767719369989764845806059844097540901833230399643356073322643820570310587910065429932483427271940334939831882146701817549162953958945943556911708546807580829904565476363193184783411518799112753097284981170137826513235217007062687449368905827600262160031501765741611065483021240317159058134877302386422182301254626637707921960524219058722604740140284421263693325262080440666945942890454025892273523769771061986124595107449230049282850257627168389181981228477270554919228182684168884210758950584663750298971571994196251260558151439028848933088826178963009866065148133091491410685027103639446718248387317481660796039328353141523660208374925094566671884671367701776346608461300076223428428119621131322612245641968271934532099582715743571410353917032207798911349972642406492345678225285717086847434244787287187620733792495448103416850123619779046781754362954086370265122628116499349011199834226226390338976824618853320606710136314477519501365712010293499478986505393648821622526786250064510580792551807448534736772178293082043340689917879074871013941448200348269698480829253464995013904288799193345172751524747575789622624241085956116528669092644596747454498597075229450804613871728024004468048121720079387664260014883953360561899723768194486863770993898507507021111604787211415577947562073213654937044252900386234146922016019787878889185945692183746935851803994674487130467650906792230070197367334186739828830083216387195340370800954391022485718982706602543142058438490767981914032821030842445767487327534904263253237458979364822452646303337539082165955213987954941183426990711678621838973523636877096230158183871014769530409590258873580760294636016023569157102765496146868077413444324803674569181493905347101730597441744598738926409158858444530574867252591980824650433429410635310702808441138038821302673364259609482448481429589052061956767110212393060999168589284238578859543066253450518322428800767961430314869559696170763231964855230842190909484188575574360369689614910508860225989556925685168641570217547505325022451311418880619255684802459608049744160051560510783030567912612471184811224081088509955028565854640400127110190243206292734689368228801337770425206457764112103169447753359217154179463424138785702487552651189992615168631653787439978057817770291555360375709667976500274462374193344415051871022594733647021959373149384745719613674831711535526700867229373635062567678345582487472095832003770176725226957534752311555134311668166897861677493407184596628733568048878602083525056982986127200924935480263756065130311713463514555256154933671752831999169711913840197880970786697631126471567977016797837715283292917300154702418974576407079141428203388230643775510681167788611019465839671948676571045686894460264724669045901354155599577019696446949857453491566118887057735012200119677026115976058809057128562011283765691302674543700175991671324113967528176423870299668184366743739037797290294138057309379193112045327844375373159459476052864456875525685477929770007524450659663266676440487423935462769441680999384076171477478526122253575115742490953099740693536978112649638848852658164690549660736198643888498986195686415875952781651888217915056342265221561861143420175876222449858975995021515387349699382396711291067202678834665259554618715752553828472012789085169360146026103832752201452254828101276641989397964150064306278883886460479136139245794975915524232596757572461616226451962460826041873593959304699285249261172152559200808470912372341394993720116496913496843318151651679790371035931400007247234635058349366143735511691181060479074399753952521938479298879012090282506933669188891062850395031455791945530381062776328336946710306185206255144535191148419721748768955547546478905159171042600621493656455692116841410423906318893061729335930140709639576442471764264773922084330969326683714996519888509756331855092961147783170065337462650619769975144065720231469854118706561323323963773763880134775382427989604426503750751294573588311894824566444814514033668647018754690158445377792069526175255333215198510048857659146350894048648108646730059199528504719572736929670816027032245229209445189575025959233391686009278888774609763396345942547369566818181947627192267657399001406528114307547775835378829715176648211874318947527950965163907294651428607598849521494528532399490139421880570108911603248904891884039659582244324306974746853668029686956219225433157020565944571894006220759670786162248485277909438207318630124835393531958640569255989498900125613313076281494868305625694074754354453394538761065963733510213034902401355145961613531770059261445108925318122659997362491593197199906733923989829686175368773930618147345073417484473939423425093585884166653771697183374582046360542601607065774850141355187099014987985517491370323338091774644779539214522551549222602991862906248327548884215603359032114126770449054534968241783488321654346756076270760298201617924746476193765570149939875001983605988101931025246388443433892895568237047687431925747123949135474850988747221689496427652265931964191439643349285443061832849178961504398101644197456252598758995961207148386872420638098612090972104788453194553852679689339556928897047909494596807579956751527659558008231781317004683185964689710529498069662514210142711053096316382861137190960197663090115302364331246481531700187594261784723444149634970566386943362288418564172710043474888130368951023442190177276703599591398875669841192133518862225509257326124773104341754122679089932910788507165477827462641866513675699937787805377328076764616948277451191603903775943796569813417512869534418802152394740044418024923523124283422563496165734960414306880902127082089904205645920914755178763632664755772152143659726128775492680472577598639728822988990186476658778951265655405001003149625659827659624394559918573464386334386427060741639305033047308907689523481542380285546072568779718865765674685938750483482899284679031952604924452113910543516098743000451730104440337734589444495046567194289540097426018313130880184334138011230796080963925671202548745931528430215729183894577222546992984566313081585868505618097129826614063896514373098896655361464134021874833200213315520004270743704604321828757281871590058523500628435412483639495267102227486948670355489858846025868082477581788827694254526177940012047440265310541171070499473905978649677717572484279305352226014782223274832477600579135073886553687363805710880373037414156141954253911530781922760442059644353131395756885194171518424811726375075614919664167904166486328574745528949896287120691565024900335269624497665896258849082903205502558025900823848628025956162063853452676581001053154826457002006807279603770453135148555156153733389566839801060191635876542624507479480248523415858454447915085823514860171511730327654729875780542157581123611407547576866227902558694127182560023844034038895497408899468087696974256809666079900953689260548066063130975942688120215525413058712589123030584811736538689002710506333889697432780361913203799299700378204186939972100427480591680108723358717158190773972064236528617958310676012852079886045269223591509699362953368987427391182093774460497021447337244527428987892842785487607094556935941249109336236132364188577834697812364558683254523403594721310141699604213777603673986809118211825369288490765424080670064130032452224784651793113670473857418094843040638004700800286896820646415392603253837143717548169180258302807388207011964828329707654771945314994350663596951934205923736586954368187105311391658008597789575041781634098205726984024971405484698561325241603324258149047571715097924785872227613341089567123087666074953926345765557337297245680268358595051262017115778097566390774957181753939810870576370252885372072282268134754576380409165270025237825864765419462691192449740308361665640222480553894010108774397870144082355943815955023815335254871232391444537877300716770324579575315571266118085948284163428945041304206174455095006839272754468086802336851333141243692615198615450096190584418341034737171676394321720800993356175621265034292775368033952399946264379774705153495305435171734679605880498939922803896882520881925126791329440713162903405052297402699792228939280111340924407193391239716304520368492632247873588739440792526259009836372326674534857573617181775396052353058480884603083120125477480953535727791281216253430449740059736928127265282894442289582981027675683132991465513982178535595091339121870799807588196913353100052715003473759414995948706742964489256497266372841684376316936245446464868733106004638316942391023627808914291993575805822299574270106273248680254562935436588532627506830747772963878346144202463434833195451675381317323962705738982347343029138431463952583622867589351092728828663948011742823986969345971502812120936614605475653869827589992116007754607729725313069166337406408141882661386955680261350092347370786467418297763983968081965107575841041203153793541552334154652311036037266120727326440945938646999660479980128511556334549332928915642715776606266575782918032068931831424369240894742567550909894615882898600897066302205720773406561485615551640665120336445711610200790238430070672152096890708937573937977614590446838686297157295107013161229652636110225911429681330597720598618769533032957938499044655235776593535298955932957340025147566649458613121516185353217352571514477205933485051866531447263095610242849910027863645148752199743121521362611684667973678924661082017496497949701618208696184482261299229872163104414701854376063976380931796247380005104502477493224839936801173329532475855172517510181614615776509881854171100294889402626730391383087949617905087630567319532958828238659638808643230945504186523233982621024532946092782384314343379563502781956871424489625654506321339990227169589679179710110958329241414977696617332420114274121558816226092601053324021681828625527728183757010815736507727148472510302361497750611891503220698663648827994978315863451023845601104302777126701667629847562345059600729844282986373046758856019803857460993788659347587135466182904641575360784379009162242010733236836854206807866980959850118322077952436294847572333735108665345426771686567907129333313816913564321813852230485227171356485010324748563328316832772531111322589911705427623139481303922964114947786120097554425092416402753499559470084557490370167043632675396480743275841840111824639625901866819505244722358490395042928723957814276164002056849372132441836894858856622649583762679968802408725471378508900799872927247151135389037675954821047463553123445426223371601544762076810782241410625061809267721596750268397591361766417091122108014191351325733746401296494868410399867196865293040562779516918959533231413142905694243812037325346573842907244359872970617394685286975274746605278186242978758677645884055738179270142862023499191622858362775797296154824457506944208734971820182340538424752616017473629390564326510071975913894733912009637385401859568511290648499504255682619731485994294801935019553074238921517050784230991886484916128110861739011689444554258827390099962048177792717532975511971858684064654175295329630428045584964305126202635981508727328918276254242725679926968873868699516266901188029550667332085175536326084331835953040995228763539475268961449440955306334937320282270516410001581702594642253330163781491449036944409268759641010109901918427381515693094768863054270643131070643702061182687324233888538526522296461959890110171477465114117094461381833769921524990954357151072953110651444133948768125173868862880195707584039155911340916375515331948101710369872928458833233401119174969909055974879739790143940865486483915382476618106422946644715624372803726884891882097467440098432381262106342260108632453821976755440393534574553109921189998970670515194388559704857868583434347443888155627525018682733097018900685220180853540791155808594741485162958322901452413283264094443305789698464787528823222055231004664775511590496929682365167645320142502747413187741011489909426502050391762260164744680150812785404674896066495873802417772386142038571908113466847854758168527978487054855731781913122614544674859793151830274951426234869103277955601411931260307800089884128430868931220171117463052257688327495597046158238979781834271380027318486269595498209436193675436573430161762591870285164165687547502513425595030397515919874269525869569074082190344103367121837420510325537188797038365977167839527651604463510630461698744356940918977146504232732950659343944202359995540601703511698830544402379360667535854550746287768397797610092688815897376764217302571237685651542377265160511623513130297750016462330782993674967903946169246195685292055347007745899948463659452749418627696808792269503948022531435113996009933571614218719137160670443266359107604849230490291569068889036488515189441965886654023420745199115508676691827894280512883530802992902666994095542875027526364516359491782921285548849307650200814553666043093160692295952984234211260856536829985302373496201262928869431371035766634561841916683204221778903000312003127773932187352250339640373627695426860230030616747915358561903021914710256587458946728920455528696116044171719233891724283698522237521122741134981673940931050116130182569335095714672962351879492730100148983903341104356448581500191178510438213615940189514271455719293886904805421116964279577467868442193503709196442012687788611079076458092551210255156320779413709812606310717948879726738801166342944314487124362194153489551682702493839231640331665698440264327693133808202705454386367791913905718666186421248415723927170858736981403602885782514387582819194942149800342356699069122922107718078241860993084664520558655092950424509964066174287743021370782289674610270286683837978261707239632688583436208310856330995242076777880345755865250360899914404559337127171410593187288377604952002210912493056883067312191604770890128711264512102081887007392537164722668066957546522255486358162800398860794191381282969310787433811437703914466305963839724180816140596609627726972708914141745146811007182965410049035047593035662076430310820554850916091165347469988232150008688325328677504353286547381036249931755618564426099526654559630782688519314654348090009329001570106839096700066028909441899929555650006921207994047714622655967751956968548472604653983561060342212205897598559632319602960792406346456921638737573502336765353837131684318017807644025295137120230053477005848846640656190806184075256394315187229676521217061126747540072253046144253972058737761860494118258069877985800876205063858597835451097095832379965282359818165819893695944935921684797617434380210990217326051077334006045070089939170449475925136624166267520979222695294283490126673218666646774845941628920113857168804537850661479850371509103999076166809692561758638843065197549237225887233792982078093689141848285941617190372766130727896017318713606353113083672008735431616129089985237471476645447461201955167543731956230666745981294969283705603382086691482206828379213272227881390778459613306840307618136267895919247247084758577553212329767093958093210606320338327867544182394041765495773284326812051338448049420665507625091701407738726657328247020641738228628673109960150934418818112997879932887108557918118268205290500150956187994430340264980211011746379039167295390950301982887038600368086213984118859677532705451118009959872791764580525199700317049750500460783749615508815068440761526014257276058623897607097827194400703970468330861220518587579830582939227109712094102229659420689325925174139856615241730286369255084774036810936762371266325782945241629172042259876228313976078711569248846073317545418154607494776069204484089602563617363835486582639803484753459882689026742411097696260555799999177210768727977025305198085905082269061502406638853674516225337674652005304435589930457867823200098382767740170908234832854363618706575763814963222708393390482198136237868557394290904283026314505437105609311924659724903114623946014887496942318085081655795766947574752759547693102479420922925701793873609227007320004858753405992279452082504682396409981518993174593029598324780197021848460329096690381129818356363869809360195402545101022045434355109758896601923880960788903641205706528388372719883346059116783779048582230417014590367095224094142862556110681777895463093905275847801865499578126503218963105419755444805198943824108567860804288293048973115487383283355748949307640135836592421596470574535697144478278168082216319238157657646573337003419546918093884899666147986913218896464208502899030422068910744867506318233359867893541231732675746097739623386428463210167993904301473654906109819499120187710069530328891236635619714525303127041904387028036428997076369114198354575362935781136763917122864995086305288338931388203564381847844633223007419882331908370808376087594260408960690744610312122791048136121257033484479163552159968824515011967896679353575699172731151014824185384269324574220305678813690865097473929247263972834567680307794825629718644134406849163117189213733300970534862192735678328400596273917832578286556137550956873292691778289841251767589282935511794770784444711746368729377078497027470943083794012122290333066480161766767638442664380452751130583000634495216647181392184106752875341767188759149954617267454649622670704680034761957318458867959218921160849311944838603601553801831439214315454816575477358979805053682558907940219833320146461367633995262188868770243534211920870258447513179315649802002922882520538702847515126933990992424920728219925191765937160748331421835948160819296085633741354682528667500858444035059237381454162633846543961733587906357076222691762622591846530667347502810537290467060721135983294679420061278259635602412494508732745967454326661005287516389601427090869688741222933895066613002568077023760374322787277046918744512520957831905624521143389659126562831447539520788148179769021575127875288248849593830891692273488104551302715828068696710070164962876503634096578151584380454766482268681270279609747753196907823306271042163623884334481391629497492607273178861477509272971143122358686706915713330436253854391415683061918671544892576066294771665879102046233371536085973609898124378245065137085333376211912109633797301700903605324626968996602027429404475647085481041588627388505767529092548427407633861477143761461072328509124427226145780010673464283007155781626227782655091505696061099230883676694115706357150528608309069291828103451704770167615010636729609624677570340192923998170225711354578383693535711349021435240667900257579246444650835849312970254957293665197636113204889362861549676683638685438700191729643772830015203625452125115859906893732027836409848447739700833483321134865247860470037052497593936650608421001458165314118492364729044483892475420006297701826522574097635747595929084719728299932314381724264017158584987252174138487249810816297098615902899871110432419487978560703717609939827470552862225461072792425391883896058894549016446815208354378908106833799194952125358675182851362923147462632088520962299128410296654761068871560264812021944150862343452789318153063530937853144524025774169710212300813482536160718406848428444444804326202284191751855390725311388894068661910420763128298456545377727804428208085767078734482452735282181029517441231341105541701346312167404158818270238501143425313200313834674999390908268787460819226155191315066788429197178296765044855319347421774617128819203489061475500620901702846742845785798771712657524430845435050105041473060626017819009619069365031061029950225707328424972443102607958588420372022087738476132302482627884234168367725842145344909524564250260149815156330204060209882359839576036669213536345551959461597753875166113911988619346148418161025050632166555624624675119534420225740036881264552581434037015030557602628570720731846091479607250591828447041587683409248612014640346897647350575745106524187928506898294323280046434766954893346584460438279620784159775523437939759463016102319792939479202780348750568662635021925923978431799514945194354162105682655329550853913431077069504205998770772518840406846557763631271329599591615252328028480163478618426149024992168016888947029525915157253510717818062514409040778506961985272482379352423568305316014634236128930912047893400050161535862514392298917960500176201650354471468211397752745062500926777109037520532260133647537903582716506095145555839289090703300172500925540997418251978837015275455999081658875838259323752711103873409775636245301288508801595283529516841422171991946375701109700289555145635956363893562706024898378348636339362910890761262727312921391304099404474078770638111175172872376544763512700610430985073126959455230572553655405726087977943063291927122862942208200895588380710296825435554555964969129954991702992068957644421944250197280452260422548174855591998954442707056769283008297051766476623047400378689351954701076013249139705895317363506996930637524521427350101590033106167106715729397342357951966848321623392863083271230052820166742096101982218695302415277906821723331876587829178107795933384918157145520701044666417419772006346289722916123322904246127234773049569358425147312777949811874105623055774075140665543956424705981472455258578786442318613532141189806887409852014916916791238638048091994205836073265587974954214679085000801587764546435367823934143394739032597559905727328750179086545198167243693434798010350848782787877922775844014854722869169642151453151362664888473172244545064169417577170244023111255902733248893642811283599238599155966006419114044873845274487395519361931600197093500547270276003737184418188811306195449116931706739825471399716796976132313089920303617327382108698361064284855847800276762278295512485025440578369840442202798113137960105229828310571170338225067524146334500746280397021182030262135342236077452415028179163701809268505281837143754979279573307333051975117453046196759335292294702195661953046401409955183575377991318178586808715348189595796280191377370464302759877128338577895549553653535220304019690189857006645685977003380212469056172769026641158875197830284165251806464467553605150417893207096246151975759588934614235923011818272019712417369654185066760047360761549293720044943329595372508272300635307395291032840155620936355274110934428118066119294204976946981477370743141977286420079447353058588485749929150606304563006201690428358192293873388698216439355775288187944204671782070307003343995083158932736376194583875062897333259173029672091066224613091082160213976203417938353995460863115970528689041007138342653404167061963067284400939629849188127654819309009184975424560862293084768024512389995473921968233143360151587175592584352413006627290352689929308971446005243629658323032402905092141724914307328541152430563918874562327126673553463672713355695238902899584390136047001769085723908175344232960152085283378650756221142783864258009072454246093797967901256292216545702184882459234022052819823506811621011771011790357099079661305634780259764700371938611892080966452172264963041614418722941915763921613343936406601206214611796597661630154527994203132645197902840362637219617433986448793527988357091516348654247608006769241180898386008890801296797240360628962770601857479357480353285662247482945953710855133503163591037904110540996456238969494359767844229066925177757846047659963150702096798246505866364034159015199804724481912303278372895236318056129741997036490014799816342379625515712907209462786811619025437806607864279639593330416187713257540301881052872835371219052133483555046632991154074083445073914016982121030888201655541801316442790539400728911473883232251770977356009743406380183732579280853692422401415380995409152595223231745681593127322300960034035388167513486142043902956777812241653695508525781836291650839217431612003701224358393829234704123817048791367521722826901611230495648040435625947057918238343889627844543387812536753611451385808106027851432440860826556262561158793497892646137198764636304734002063174502829186775242034553445978683620019931686794341587539227507167450477489483352745265717608417785623465640368630860454801448028216775400868102843322137284793173989547744748813329402471258405930147296114561152055494739314364414154559091877859539300104487618868501838342151739463933711497334761206701264656994320892870922233166026579143349944100148956073107754904500297703566486773565569900003085104822693625669268199084336432788048848711123210100357445054404078927633667354358668111763443675229308754194490708357257032781310334864856526466504728974409336719229597372853914238696764624543669088542560031433642830032896029204148948567032897123507649337180235889791453173481978612913847758322609371512737680306439908479882124667672982770810970879337205177107780535128748530642515323294127660523631673707702967849474061125063800666318793290127402526457029796988666216764581022045335933901910093760735048368561159225737618228580915532487815239613916051948083599720310027425569393845445855632849455392654733232860431640877688549371861027685404848695819953955355167935426175919195778643109321523432239816693503617255831068609623147835670641542078070780551661267379560858040028584835916051804343908689491345866068542840897819919716383090227946898989382508009818279124800716394992683141960364041207155628051578077126239657947748072109605826223028062440584030840030340031595609517029666062185797534538804621158495326404514336647369653693720297404748055441759013985249313483289196353049660840047805140917986612216277365357271266672746048811002283605200439818464004834855818058983476975640914130363365511214750423310862967478744918268670026770560241386590197139343946759580654558438892823763413631104801611377949051875745304422256522629395824010163218262812855128724630737179276219994407288311109997728482057751481182242621077910163742468942159406986552373212509332004268696951241038783489255360314979746732212886171585630479445788311424474273838759297034344593016026385554363586587547413731387232732108012213074245074115957444272243770048446778863235903862974245607926215393867907696201229967437079426803889442129976188617017003425734838665214120833031460589610848968056296591727008565588281700994041906918712563047969950086883259603641648684467199612798787527804505136037570290346647824741309959882095805929611617425264892016748200901425842753111636796978349174922820624406718144074061916281272575349714622664926376167136686279921650094194912007831465857423535633923933810365652847248620254080668527292910565731926469243099810750141263811024637371786036459629306238107190924521765185113820003429738838600987761841736080746627128422074222554400969083087328260117538913449313614489675259575877908899345768769414188584217293231272652117822811820198626915657193982416202477926872798390063672712032436427363545025574744803337574453501648744354115663364112337074520526521338282960129742394999546286387633228798390020992006697692626511795210460288560692026352166714728249320163099237828819049071901467727797180082312364020998737781891214200680251109187665733560559948178906540569900378535861660619312738387604245989198035194542424422171388012312278604689303499722089773868678243077316523645741120773752784353929322243132669374341426453233668501845268672593497471598295705287501577274118014851825291911565540389617121797762248407245392616711600474113543647397464093840163414500548835913607989427041024031063125453044750718030469637679182855133243279481097638270126587213539436361273714481723205763268149381976987751022187043399563998691068017039816761292304401592152077534062681178000584425464512127993679091879244250446626764317392509873571914174400903777209951176563081059103187529539313490487888778595653835942903939350305290395597059678814014562551696184247338592352301716761238079758873955199106058325247497545663841258860016224440194224677997585553046573970503750589856964356865012376751429783205820160387446791547837782905228310424201954557975431614835089023364711099607146022857182306115412366161953287293953361268584600590039010444479398888394820600414483790478275558556253369132278385473580082129035447624419909576158850799324895640214820592092324290946305693483029032443015202098329445204308319624567125089504105681353321893559358828589537054991504838334638822343704816236714974834548164908313339487318447323231082681302891125515019228707494447117000754207066460679173380136139763397732746356552166921750790212639982397062698899079690726136849605794053607584867645204575861953981117343523295020706530661475258642880663499014077731230382255961639462102593975979887797391919855664974588542738822205119198669423737818786352022021530872721503295796903207477829035841273503229857050212085312629389477844792198685622879334943890951072181112601610084858296972326083305014642472037625535116773609296234675542030082623630937795378279965530994379321441373224842922185014817394675737513717994384085654756242844194568050824974243105346276783949950857861513388677007315590233455234645692890604635658736137915233516761814819772233160775816542420448707453152892258793571298145661245839518255582220160611563531702449448061439805273240492371235466544869506643465348323984271025673557650700011984633509099822356401570669441854064735814623086946777667464809470172450732176208158309572074747647296604983798065141441307844204882453608050893482673565494234211956947605515403531164649642660165479946615479145955202245479638772665592514670698133577407957098091569725690646968810926142130752787866369393274385461637170759024498932881374230927506172685324604315309299790985334266585773080603298463702076270312391107435687243982594191420908163464727638346701494342092687805461889824520614655719930740399089356502709522514755386212339881038053315737767137473207603380891751469389520135250944682631744483547587668296152039907530658108049709474231109017889148525091599212559453829413008181039722806495225364256461443405810676376678517133409960087196494904264242611910048603780241748864451286892916042608027305487332444918764613556298891907684410338445265618958347308759834437011468107712619136816009872060193055370287540845429280088348164826287346167533983432573324736950632311959488683602015506100201174042174423170887892316946546844793967653131465779983047858400111722502924060549629959349569075312082843411652246373225566819255652108695566086694403240043131167570219454479137186549101354632985555521100363823587245499644808393701491754430742052089390112511194217380231977412845670093300867590325281697812230425557775867012181209853246239752232025548206364215736780648269726567392164308480331097550193043830656040064625073612507847080126634107848692642100790629180934722342921816900426558285668242000916882243044513856014797300097878024970352761992318489089974533860285129314747821616100692306638460929029767018771060861878775682710807189584354330904592283954653893822029976464572584957854463991507805017416619426067274826330535694014227428274565176233081687672466067555330112633235057216918473039027153365274733248505307533074998978809723719538301844027373526780675590741466821829836032721717386943259746349974023772396555417274865456124586714037266184889954110441001767132569133337530508775031109899489945700645991530481529331252320306679444163535939861205858742048237531277094457459594003196084039903433088609121388799436328704250957954458133606055368262634529627455064330642019282563532758165373456631185123085117234900833707964457157458477759867030919903438087410705422817691866325606096126379219322139117256319301098157391192227564133204227007755279984551895932421249359444957879354027367397301467661378076353464994838704627457602699257651396583807949896848023473593634366374639856536715437296087760414244111306973451926591309330011568219021515367397458341588019253567582099020070849479937108973550627869174897979409642780339351121734130036177867284025392878600843896213143614164111457603048997139028344603833089653996781031822431491524743567124107836985003340734181393934396179024460278149028940117479877451245778578005762444841712714044426415601596805621815442902112798355306989821857168487301327260574320127067696967508925251311048213003583116121020753195768474769769453473148154863661548655499067383268301847842601633108366918185357116837203124778013548437219160508978736939963355050168007453345239108809135827812670008951653585765815898243843274384213005770812873774913726651648435249425075325086597216128161141553233704398275653648648722177772647990020267726839673694381522754751357784954174952974032960237466864266939755212179004906144139677243554262759961098170229725322438492496393320920441310167163586247540554006519526922176395327159611467024194838371787733862949007564989777168529626631881559214688257297046677410568872340957251598766221828765123636485533109497607790416483233124843048982344166103729104832826079010363478686916915460952073106612982469112467158043632426233879876491865857481706816405777260565797603427890069415028071142519242959795282559199499432458648289151877085232146133656791574357626808192548928573260435721506726904080118292696310101970833773564844387136738290234775069329901614727427105969769817048933834735045105781411517070681408197220249883751171103375238820285379086547146063335241817311955417812569603846596211507645322621219331201207762926795468000494154616104793448451670007603467782649947657565120930178767943630980681592073226091866622208131108412082900592746957021128689467532176669447829554898994306901577384559286225431521253697439090444010726290072536064388220310707626644839604275149962170077579578895014142684369241611595396570437370318337150869789022948036804074420536167568886675106653287819799875461983068821435133087848418140149790464784822468484425304394145609087377415812746686302061891422339192041658273713138017957034300312690221383887911497709483312896726217160126968405756331540652932655132903231860267868939693329424397889917594966260435026511188963551308867348489433082739978852347992581047837523855064999831419898806187091034693687966064283562661683011006808730951344345683827785940258781845306842875731004128039013702655373514268236419702732581698401366442904479922882537017926944324774070544676168409604773648413425165698045593760996129953914997390123566481099085360804470883717816042745898417240504728914163842674850628821876748401930635962234708866936067036840045041546982412162649083555516689333502267098643225539339122063946072153320438616078376731861504715592680803633927997383823655951186639500048168443064430198996930713301775687120485182620044278669534227389235032080000157334974857286958838375489779958578789731088007093302448139816151046815160332716836353810388236473920584574893414429500119782603389478035370283804761682614736939969373314146886588704356390728269373660626445460165499218176271062779938410400836693237178743805061474347962521121040026019395590176231956929780832824958596079867188636051643714409211425682285179750915578630217274238292474389160456889945802187527716187175460648268677792691871762842819024496915204313616108643375572294080425524526115112143945381417035422987326749979257232310800980536469225485815842587330405979866476196539583152875948901016747166375849094577722874024627609698001420647326777351314169634407195849609615824011779943100984837077148076418249900584990370926946863139671633675793260875816658401615041113677528783378489319226911824359028416976017124724851725949817393681870985956620454438877211103712371463846921606326643165264112229518834563501530946465288111564186834627955935229678938155317859334428556569970238884370828886716969118227291506998587693675855262738787292034893833554298660061492877262111425167560424420241536202186741000348231662251811274259634672613474730915344662979711107270004156428134463190327572726838920593950300597563518929711135269649082824840422106259565113192900862402023038545946424186401845847199124968488064814166375681083751821060160157024887297800594091870421441065185327615274704931891928913444816624082778787975770401676700365291633234447471498832241784798746114270139355246949238896632461839050297321214336968952656971423328998883957124816397791848934905689224774317997556632075562885562947827312978913859801807166824063159828573612108499743947100021975323134402780307793586788002483623820519015260372407444699979292731076977446662145506999278082390777562522930665368941076932718635777023205057337133113402872242212581829857815209941782021517963638409660596266997827597065879459295591783487198204610133266068674169275319410973591868542855245875560968267874378429598946602209742139698348114628511050751967690058522660288781157145935546736704441482787072395823691628252039956217468255813253565127853716349000589931891133211597654444196636133119514322181449192020166897167988925924667529482311913884723972482958605761777115779939563347919954525916116942870615296452318063380526330867781654008195732888028539747878200277753245146498653055910131358276764365332717677139001788368180244935066365482981915770935988089458256310213363273937668932057204067623450649535994690113022799230097326667388799131327565236879996825974454979621866860886168410295577764327031403671055634762856734338375698069126761130764861574489585283529510281146917314457630558303151986322387950465306311453752490331144133805257691942734339687198498351644812158017226087283530110142369244196325525564336788873415486268494308021303131659961057043853718981027391864453062426232202496243773426528847877014117449018790285372525748652464522550567499719128720126061420589743821458697687709745770036664801215778069809059920982764099591837802296427068353501635944910993273994219246437791990357979056140062190369818252167302057089313377821257683817563588938993205007935939140542925774187099512978148147995426964407974076429969532914751882999591344124782577395600897023825156678495128202616527884757198784129473555623729113600268050864561934575505792014858302343565332999786722277132353214647439546263994462420089173341950911283151717388516469080877449166204253414161649859833403193359000717437596741987366589852224317931766163646083560671615447430773832520385468991604166593261977343564619572295696634581634628573107941109797684247638910076971852825623266505953584217655706879534261683583639536169804546560343470166319198837529010716033814301227249355530487695015641974498048337922799838215021183860433067882374610944805750879017667690985021205011016288110009776516718193881976860847109067284184586231969024148717350900839737006941274226118673229269693482500039935912772322216330967398567130555446208690941666676241115746962369674934106876601891068592931717253229232330580927481475826099419221450979727081715145970785622475022921186095025256489718341122866204159324055593317263648387269093642344356614834685708890305387734260060146760870244534028687288080549345171939630970890063910312299035827114698367162409785123292567346720598053063429098075436080684552118807259544615996297418313016795897915036928077344606950601581713267736483507518495194722119025123703303555610162726765990702981434526330144442405655976165213027943643149372402914592589557363368486962230403673665196041581350875343437938459318497232328981575161027715849050170927053270624716533441989241438500488471963712256571395668064553147851095879343479550743861132584736042631877552793032281447413966849614030606969553485412013096398329207728190633444075940300658549443442246613982415629192413244517512834338644349123190782747259650903130814848560034615919452774959328687989303003138490691002277079942893605703745878877375124965423389530274957997012774984592796502912499027553072976704500283891494247605782524137220517209265054266982240985216064839483124222328153596300031833312152571962209366076624321727710773091713996065888076674978442195266077670218572185749935153050231059091385693150769286116586757212944615658334849437512579274336222978204492553885977636288672868844997934805320252033491590624205853363807076554500289060710653956364913379165904550338224397132026799359601566091400232842114666605039036761105144519808152031034919542610101630535459476649177352037414748529157019915083737793375452246098430734897821601829592931214413519158324920390913730164051013924562208148871626660037037084328324993959672714908686107826022224142063046642408815040355145571367152020300427468869096137329238298902970117994811671072248351780607563224159383429208378680713645039388767733046258029359102517004239871828256362595038474415721069943968110679370058621041230912137746506269532165204240345506629720086981424746797832378433375415340401951610092053839880801657324187944412980626890453505582886356876201118854281182933652484268174348649934567965787899835089440584362589458421088770298214387069093810476526302062121874502596171229458612668288534276758489373224000630496170938494004695397762925694419679601938260253516374737282606404576714256301327684191689042563528979354023518337921184529700601423617240161374777293582999995232786559414607515555013966826880556546600634225272466848211948489410805851710007822465063966007645694430766909170344662488438838176827646981468746655035317705674273549689244240469339338777570209942973501594302433489928260727628546567017982995557597986613707054767900894128459934791979632558888825735893412664853370791605388761031774966185370930267763594045964992885963775115838344307350987153160759796014259451214421478073973125760556420257501948306311796460750497562667199160004546148581057068937068468728304124704708845000746252414964576849163715980974642078060248704450064148749484220981205634040375813503588980091687960107063242921057579717644472640536248640882513244268069554285422161910339530062313318816362424751394810932761531531068295336416875078846109010235810823278253395687106479196529534195523459844170717344559672055848366987538199069316632868174484383133310995243431100839875890070830053378936750415955456014800905600994834883217595103311214429710252273262175830447882741812468648183602900422528562387706198438503854440633035572198510368469875087982590122813555019686127804102095794304718084011006839410095137558812038608971740296351589020661250421351807269056340300120676576924335363577438949551296249520739318133127686000523489550322429625939315155849610960459879893069785605913304869072841692866241619990790376245881754560181812941878797687070377527030678738204321221117844493944219723215960602649806587779378466579776988087420772960904686647412810568646780513864980245824620823463436551115734198098761284349236469492327070025217999415918841314613652412376879399036088797044431054711416018352475496148490150662617406380362587443265363260054504881895198515466868099485176222278035475204882277658604356228359417311929278972381091748690333722486701869450624564289330818986164175540564612618360389481973189585384724203378410730591640871313853298341998870344318397514743695461980890466998308767487765141677445692974293442855941668380416883224506266148752701690162418132069974889463704669609624253805177445979215208377750142815054490913529875496908628116980062414116060674849555348025211967342715105199279688192706199854046954891812469889153679558084697109381278256578377246830345562337308127265214720850027649572548810652662068839837104225758214527491711107734573759380678413123806729924025488702892790020737106812808462729951040576422308910160997124013578114355562358777037809545494055850788957653660229971281889112236600309448707630445177335878605206500961840341279073924859616648172804781421248701258433244378919003327903503617397237036676727899055232844206817716533981942554370640028635683557768705119444044582778316415585223684960396071046970218854067105088235004736126997952023731356052694951260552404436403699756523058501989972776902983818387753807562536433342784735694110057714018729270915878116388506247233806492551344536002815850061110999930664931530826549007198454647472370386211949143682351729819932353698829056031077286686733958341321663293178878535231006305748104190150657230650956882425200220313908699946776612025381151491203769015052481852933247118698332696093895685749717649586046245939491567682925506223763291916579196783552806393111728826876454984504389964273822952128339480492035401335316223143713174006747012059791945588585277032920627705666731437497469489360035188900410077065497788179555967936035782771060031966901644543660087927659770661687560808892514600337109064658016889272727524029419537074901203720613560453328363783500674428016810890905754213750878967601691877975352621282768677826335406820156535015866553953763840573786651165158151597936298307490338626933666805530438741165986310766401391964792411481397380009912200662462993532012552697443560437210105814056820737020383735678529567440236596614225555589125137299569260426577965686869297934575120894758184693433052531739148321500458690154376466853840800324688041768789311238595335764221235493300119168064346743233776906535361972839583816912270249426964160423993056897554313850019536794556514603920429630728723790750423680639469526476637372679536148872020930384730096151237903012527521534328389461386400379209656416781152231734490380734502099695749637079989571602693070264903910102841468271140449571664364692725624763066644286021032222246331832432909081966502673121512092872375478492881438449669535254910953809694445554267561997807694646371502882445085787403918703985934853236201164293991038061902833036871165148263027505065870251182623193899023334899416817269794321548415018774274678663702927799897741946246471561671500251039593216825247449518329168246735480052693070748634722463424929207302608138033981561919934299833466997248074417748480748214752315370195144986360873758382889786725168880643325299508266581647201093233950415314971027753402636157499855539320440866394480984355617997832355887668624309238616445045077792777957640360067138659507664410409314487370037373024993260125096687261392249832545555625776770457949708044828091202398517963116567830437024690662158139364649052462399879636641589642839767784219949256753314600653972826002655400508963571397646968720270784964399040213444290915852292015321691783551371445136343039639943828810963077743027337357253595547861335964780597926407844870264865691698856922907722491919000304712198586211934815284211122728926206189814337676873977762117631779637905405171719228284488918071378462968960818236176431627093964674861331993114045402648791720294580983597321926388460946308089276599569259347955053533254352812623718959890703524296013884318739686613121077509472260409570932877921545642604163199201740719893953202714448749639098816884162826303700354827946420427034983217055735347852506934326137685870459550296633986554191370910852952333871043454431389071867953475786784652292520833002913010392736102825729437378541231292894214354357466569998073215529878413713290463714643662980571927512221440536927353128825498193605614602496046554691356997634149154294806476298654129160871754731719089212958451201537440954792887407276283541415466398598042919078939979112074653058490925803841415254830970425903780436235442209458579273314483104382322386965235641603714064880227473197089037620831089715169929116597422166760518863182802918582341070076345589990636206544580023330805654792483926530182919442823565060582115421056914287853324766785011921509580014821410424008250790456250775193143142173734989244203097178447750743971387778962809691914079346095802758565033199114118901099807408069050693931977156504538326737345923228045075787759619379368353567710261275246372468074335256069043460821897997469015775442167013031993443089176928303349245473883807301841675230108066768234925453235364810927069451988291344654282529740627350861364593073703942663723142688288503681594358521144050138633060684005311531483403400896324466808125169712310263113108285977528550104341601898004687216621730724481788185104348648083815655185964676928643812067297163393188872634015516229214333703816897964109635346739934202706306448656427627843899589455977134373222310766738955149212301498184001940196964337976139934335569344503708663637315802279269143251622736956723544496548056387831007237248772754194999926368803186146480009305248600530645787295268837676012274911243446452188317386098783889751865503707087189787541772985827170861504900063617716881810836838630011584746621760091909535066780271992774513432747599166142854566629720964807326337209301189924219868562445134374669422542287597843805695747458104314071818284638145854339559606324932423711743893361408324300869913279327145512149112272417845900831478995056355560129981082540617765755426432392158425681588080723847591352416340718668609113143720555721044164519962214069430794032915975407108105963054889397357149425697441897609609078775842221004687548339730549962300313363584216090558970069326306696627313922592103494206119947838856631308243781084605853838191189321042150271149483349149277876489428609043871531896254301767040976980421456876465648039897278238119843397861686744851187651666718111110329936511172039426701563893851800097421082880938952534951543537008910998684139688696493200443216503728014717617177787736062922096118981124877682967616904809380929288903820064959571511017130399951433382054331124874979926250435563460592366415098589316214343272255593943229807935942345555582788031696855620850089185034185106648388976732284824844328870027094166148098809652758611856902037880265019922448600135387148190629824713979487478350741082778226799797831993194963091301885073833013523405405033014247754835450011904283104710184789315990304425461438632963050316594212203071725383696648607681025939151130946258197379360340587242457520535332438449845102364150911065081448740221507157646177976968145884680197377194092347744854457227369413330183587722793458059645754912735090483112994053803467810029574089779742602983201554482930636219065611656569097400366213266399913046532017776985089265534553424269000881680662237010267902161535970351731413902522026103559680018434788643622332542139626173608801273680672705499397737504441009052683778114514818522892845233398673234372918410355972119621279709636097422904480778701840947292078022417810828136732913644455368614366981102598368820436033935530647819646617418786717664643547011049294805452893375647572354670181493265820894561903135385236405084433826259447682852893162993963708099009930347185332921296133912842287341049777056850280570549404001426693866600743128760628352366754155203545929862202878104668445863442848364492927504373385484903257203875093570745135624928534061166816042455703660001593977910336917471390693092711896478490876916212714299989707717564631358104662577375929001719815605058962033763335055397725682091026886254747980954129262032572579587759057410215488910464178058096779739780020703425554366999830347736999182595727453918633100185327563893355519789535983307238732367668379003173246915806481882159891459791536351112526088351381907626264266246815564500299686502874046946689675996088986606496320269982438979543811912282542704922190925777920644403341784667235694479876742548782932967476544623346577821019358014213901149589941549496192034496721286690205122255037163223717513200821349708477430401461039012636967648947370547256914710345085207186447005372956790856501408916167649354973943351090331661179104269435579459793348290731996192615711488812621472310820952622592850198194137031114338595615148542939661014221104853150033496212630176582729079444807067178887144353896943594588752559608122735014135525550224568488615339256552733833428096105497356246530203891123513921211207984327878374326327734264065838995081228430983860053593796600715458845045066744596021741894726365452056291408606640691931866691107208839092656059670935594075537530279880781057359918373736763113363474636057184736148172650163703707827209163856764666570425430295482868322359756448513539919490580005025357575965718237218165010737077438300007149662353961497407310202903689475620999040564471051639044940576819983182467303238549628555520490961673786083851269862031651766411890599956680109964358272841877978522497846647080372977758109199129113185896692353566518695593886827454682314639578140286317497501012507885728666690268832950472389331745116780297480887424661839279406692019642907462405817326885916255338344421197024381308846759624635923296031744612008728895183954952752326126760697912581802144000927092534836276041915062583648210501037477774299392955001170128603261793329116622257282518569301781365246589744032132113844566944693515184911014569930782738989509049834912998841872393273627197674960200222218194508704241485717101283185849676262893259080711136009017629651094855106645047560419232697099581634549944283104302626886791722605077599095709671536739067091458063750462587679858002367582496730116011833669108996715073259599554435810082867142508852991582449040801234991357002115843429723412285554845258933855282166737714506534898727971265242040399441552661363520335571533584333785200395323364578850375608676807931686849108521385083205962756990896870651773193874559125070603599297372770003657046974711384426527814377917374293830538821816152698795017531548382574713262095010015242770590289792910540270526987984014304173853840544361729800935861082254765397438586425889518153277223160036401687016466301132410773503928294790020085632264550014783922244165805392543550892084942663426830980054047724209682279647232488184738660165032568710319583552612849120017547739251223245836245296071507643786310727466678148463245882817566833021660587573216559348271752317226180937154929540297004230785920631608399442685676691574770834017881143074030478114327074087431948999062566590211659251725634418542129675339908032469329325174075141792340874478107107717152687359187769172741705335481447472738096187817478780329536763908116428818880588905756460086526089437888686334034857156652185980110593534968456047538329723995903344487351933076476194181576409435487087038744068452859644779969904609654461267463864873234383723340584352610866170632722464777238409910335445417093987697181095947539011706480446681149374221482526246843710574468120164803162613269284589297996615749818267633516646070091229292634830306812217188507597862866702253644144216104584059118061658055470156595151103286890319398197127366448410444496027868184949262643345658413909355557868150524130815086042252162757055086802013229528486233615013847903709792131662240073660381451806494592836855873697035129228777917908967674259714043685583984993335128111371345085576577819448256466159172378276432894223987511543564523748515528535415953280654033670063975889174973491183967270358962816599888962348529849200988093626068027222012690423804494777099588973111849442872335690220008251850636595571189126248238090384373591757365574217452791855888587635692506077139976747871373117184989561753697509553989170881126186663320068916949741667270640491367418007312452762149954233803062498900321136869420369567390527780762643406087233142133180791082034297365602945626492607375841607623465294709126585777056354416884708735438513055235188234931466234703083416054194390508771426808803033692273004367157538851932967304142468976915779714751307403528532689169228264659020364229426141554215050103276247831395465989054506090548651985036837237493470147999138020736133395938463480428613579438548062498355489604428335215756781410190102007137843330516281896647874830552472394648476305397872839556301144476704691013836832584071460511622273606281737484906165801810941717959150838191874281468829028146945179109971553660153006816569109408756100775696564739892560230020266641772635686114451508854604809074607729555425834589801041423829623483052312000166331698542139517400452800222839645145150255269200580513231208183237238179271286704529041482754032127469584511566866790564505261174914087376221526379622336404341267329188607457783204859610483341970521614556334009423951362229191327321428286996302919933917716739109365553592185085448132547823753047044212170433441901331815642276257307385805359038744465555973754392074953096088379576011885013757743147756927560469571422358356439363421835038133641682683699261355562116537651438701235051405999001564235347395522039340535328221194087044621154338388589085506807291679305293720540752612713538355510693799180819394765551522216781596795447243565699500649681707158907493718286966782657886944360779067059534572649099230671506073511411588141275062420330395027527129555484294859734293440608630431380254053524165292751083306617630227730314523308162979909722643814540884646572791886010296988645813061346854662493529713003235686654095232955566303962085036241120162102097387693171896942610263446325310568582626298126020599237847040475847527188595413270645908641583195676833834454406035961954730299884359580455361860911363710557192427626032173888286993323299599566361596213094475994550629048551216290935337133330214457665316845793400707308014235753470244610687839573552634658154005956645426552221207171387447137615802962819117429134229913132167084041107172150622851818177807092080949588502746708335498694185865913436445587503762501571343070638784875764184770339512263923933562041554158708863701679289479930520684993982542762566976183027326243583086671824173887719040440991417268682320840232197036451386543092264556914612429043258801054907085808642354645406554674996816218277558326354472011216546720311678350165720576683303438984331821180333221580539010179481665481267466127274410917439389133711642692496805560924813824517066391647531287338712644873709444021240630012867944983620007076060890236707104749575424815172361423114770047199902040970894146675457782517075270077666563607194737439669701087144747214112937296072893843996132707124118909284376291385478775645101038027888263685295846495737954382343978050060616699581730626471703706698930725115370966729505720078448547803370281287526059058742388257094835221305496014863573039974285689278990948031463540342487656588070326115948339060159516824287537576235445745919103267760711342862089746865181758120242132770228409304394477434632003594556933890080379764818166456665270908981913654679851620617286694466076002363573775919274574159112843940389527789531752980273836085949974756770557487087998900452035059900631473676135458033237095150264655146704755070821691932739091755019677318158939948275172168171977104957994920343103017905114353104534770829730692004538125037656151150007534529049054012428753865450529239030731979529753353981695594642180970479756382039701146538345316135763579683239754748310872803091808300962419731203825832338518443910413479988750183310140802076532579725401150080206613276913547471506694891243857058022173756136338518971158744882906868763630867677382856264690952325870690605576994021970524544595948071205933965173738788451815348403674657840278299445384335847709609333755532449796157409414318691171466550071451514444362865883441369344671582981179998173089664330463469289095990009846457340601526842050640308651191322436842086648698813432529197606720442050173342270285420595334172834066799029480799361072768951582148062320855445308726608954424907231281325078616566857913225956534967914659511381542543193575063246919491636095586883525829482794980122503019803502662451831507061521626348381798811760241150176583718667213436220270074772376014703370071131149393012614614866644875044507789164834055123442868212995706536078084174155878938576414743752337781076629865746696542977325679912106665486995397215899768344450523584232476377331586678624720692718964142683227010347375569380678363193690042616318632726498668215953433442286912903192559445754450805005019863597394743541472415602348227328101253207778972849514637976834178995036573724353901537867126348030852153563532794009012415225584732044229087444121414266999038175401327575679285976989989823546246377036256702120430513417226478972685942897337656888859243099215896753611516399676919133349666500021689680283451956210685424235741222325582725077373200745197967540328989699401560336748064992059485276695566460768324953257116560982378544650701077589130229346303210198121060910409318098970210272999014867013373325501056164407109077571754386527817995014688944143814341244321689323206310173184933788494449933303374405934610886898270381614569500613445305446896981393990367440658741170906521259939819418775308870473054484759217801418368091237246455890629803994101737229751154045970564898176020323640965428805681358988640428017664272198690073714318291561192275079120469564391671858560449542737112696464792358146025723769089453249519636062086494845346448335597201518540624864825589433720741093285241607680286110431672767532132789291471093713795969932555481598466089902972735654379982233702721179756954143738179616358220304923303675485731547096841246554106590779137161229218319517198765161197437105322094437683179531243203525897282455755747476297751003061558681693815055307302756035757713981266665384327433226125358986731518384621155213623336883316493952645553397607725366050478939133232165185534993498865103870016315598068116965599316822711468658762272044336417689147799207758908255688505199820512695916614567526103677320190785551199736970961681218771221592726927981516546646087420684611237888097762549052433161882995112907675448661544259836606325398921244196396378478956262382996330537013416317192412033470120530605374362147986961856711651737084678697013602164660733547884809512133088226730302749568098339919209881553492861427457168788457332763046429222727955759491636685612139887470019562389496732403346925878646874204871976962607206919774164608689362570855719876498792716769182161304568102154618840586020075045556349820264483853736691638129881636656638675035889372749521836485163638883175362388018196697578574656640773958375102829980886677803164407424458104213270654218429545977726887650974864909907567457797455787044810404720619472727259896486710984892501184686709771202594583125974395075276407247579172017403259477421528591005038939633798217525956006824895624060686640164231104892948200831989579131870912051780977797093228671869831044458068196106669572457108591055244381690263901348811547856131447537962336998822962879298137151703618823696638792112286575811994347633734804713173067004166753567393071393279282913801530990862375750601770786085628897734997693661085315521366231809982127632618690867582977193655311612265088557872190124894278088490757269619623146171559318105277706297381648409389773186309782805142651739395358530567829766540901575628671930223610091980527188389771258854964027345277687052524010819565337662478227505457235109417113023683181147808908000618097618576208284812752119007934827926504142867892127097455637408223007732067854818259130789575673391945107709518751782968936578361047633238926435084107016021276865055083103604619429374720790026822559282152633791754693828471168675999102577617531988553587440617064990103795976084760641990773682057521981242063606798705177590084553570762627235860678906800019073084005900234213119809970608708375080505894922540013932024818485823501178617820098840569477024839639492696197012772872020042338417887572646721647817222397334660788880710005541337223874773903413806027203802087375200147929198908610123206306377675585132442782291050004066829678611080827689692960048427257603730464118213347484717977539995014123499261631416842808774503573062081345452739228928416233732804503897565877000733141005969513027281589168617177568165354448911816564261753955521034475326282490734379989078798501488405460468812956318440703810969632541133058438272835787895659873376948512199706389415254551418334681278039791422283906400358760338558435904215164431535176400780221403187015540312220038652695545429229821680983854840445396080549909807199527795284140534964304741622212468774299473695832527053352846293202169631909912071235415886818335994636115755510487407786025415459249077106758073472643395499978961726048484781971540238052417854963725028946241488883287655049177245195151979027557759918479119806202262292213054202151223657044279336520175570324172824639074027476906691387733177827788964061478898887872280956251479414013153724048754871110336688044638207125052079711895352838097149167678599062446950109298754583283561369641561578008661470845779849750988900481167483163749466621967875175176604353155592746694294198736628139059367020377796196791800193601332300071497311867246438959287133181350675452836531957392673429063582851234536200972038938523785390735995610456442400276811962157891243989436394272572397782625272463160658664347533077331052760086390658415493146284861309996665986404395420538074883675300902046900909431530625942491602275131089277261997599298796783566093759436188654218424414245665414564364343761035834024159830941439373933633936996505255427791594470830469102864878626537727866023831336047698444984947114686184805992675928488936137935836279630726615726692247206456943082150681415132630566171427227257185219896766191034847167759388597200362583101451932619233934357543570908362803616562282363874084798089660466386186588581868487878073928038856197021723698854801030382171257939917337063948426447569211653513571255552908501682695542683071266001461045453321022475672227323612182368643804215752516419899595931151451005857092661339845862454226761293136818236614458153416232658815024884236541579467744659705231261494637283831549305854699379662983653422823722695398230062355536203760216410913312873491479861968604362961452180854269877326491969714891494971792713317546103551691359047572529160144847425026727788114109826919264565841204172730987899548203669433426208399252850225244853242648337408393589404397041351230290593812035492579634075796855941909009802262804817249911489459637930048660384963691076036361435562246289420277929850025413746274884858075008377866653863212260695481849471036908309645421753066668820446097644529801883077565357626519156371036269163898182734751206894765439943991440569675576646097851109178558547412094316202209268331512206462954721789692847002775693996764670040162403947282384295423755481836320937731025750018536187536911462257818054181853295501270862934010319702612801070165968403437598817927854827514531867835341827784635162313946351884324125007685897103582238288906088194182503802867571966616289670091943736470068722809542674197197598060558541944696463016162923455093712215535725204337950088995091443328698242566112239688168664483146966140471540141057326049545062103876931434852373016785164779798369838111300657577673205542319840195459686801195388520830817667863646810488695514819660108263034205068686552013058078914471157339719314236679848889389998203762141185550003916589481484026276027143737605560421168294547937099314145935237991212520268593942698194913944678176478954833465461373690821405908229405363352837820582644306291010228792737819904661867423325495467792437819514367340786410926903086865887443527926709335322023003292089586406464677435921883759143488310715550632005355614885470397862178456363252505340136131457785829681147664547412147664630606729617325864530205493156511696832477759819189278729264765212102656614216060511283569594099080908949345545920608077399708490838251845077949546012833102442848884641169231825792146338660068281486842682487780227457678352904857196891985181276024690479073421559103978630353790328704900495068861264192078069319948316386824975627645759167464661869280650892314797500918696530481429923649175746336051542081766107243550320436122488049880494984571368566691447092449174181794936251656380452651686751938132085833130520078136337766942065263062257072352999313578764756941103006990220915816333582564940867313586829104611980018060040585597973471056672155412360809481858128972254109980278340467892283322555215057653507837508548475902159151182338498492556141664533415193959981424241028666732568296379000748037426830230241912657872382055010499646902952628102417081243202799373391369351968040022120205550926346906293222275114850811061966472348873408545604285026757566032375345024601236296169371200476380329457079597411529577281854249492091873654586917722029654533036765800405708368881899162349743187477288246356253423646792701409488545737111454566367479471687664454158362888141585831868737763379786985171363407172167867009255654858598689991108936032985270879521608398716067445738324746253935335897583219149371171058808842125032653136186541435805359830495775989829460777369948429438534187271341054693307614101413768535783377715182019723095379877646504586696917175419253200087540225987187615075382949303565173232384875101518614420898194616515871901482813411263048542569648764975403668243767692778673985540513089344954673304383436914265278439977138913381225269874970329579700897149324147538544980171802890100549069539239772430182132984411397662493980863368115911083610744213872667939877673145125974733532858293095819020289404741977830588611330795002698098050808964370865784895785219361753725051946495101295951157224266310676414694852524871358538814296097660329420865654315860523713546534888275086692208176518400417876197214435801442089303099005200225261687895952029352284901052144510303450304389850139249959772785046752566030837594501230247317505563990951106971227336987422452490757923248525590311680146867364303661641554547813773620383340261595922491492039927609706664155715791514800715949179247606833731362836029076914007279951311118229631517589399816840957488341210246920019905909546286014212846988071591950040187097458000400276508407982567031214272229977987710454312135583942660671351142141120209719773513071370553519893701493626418823871120143200808811310349986285906815103286486934483048592908152017566613892816305267890525308909240554586013221521015625907484011958629909125962277882360108679502863697333230662753574554594763437248330144530316477525827640549372573903100797600468158235930977054512937319679355674945105443038838657357207918214831926067867418816937845262044005878378338422086766659780454024063871597325690488447201461470814620974366313849234832355527210746269260231599600444604743211955143745793307135504684239845158429961748739687643904599273371590356067325423964174933077480024672942755436920350991187605286175985367023078182188636314216138420819157200072101727803130115482655003026715209466381279697510065637109631904909605812853484184246302923253298470724197783553200768440815866492431707631709372694459396991404322727024298223913128804896555989772664750311365873772058817505800721952915452495143319712326498578752907236840641798206142985072648049202761294482549959948736669866577847683206858639030261774851412798440764690749076702334428020830725265203566749439222148193956135300792136347824863224310834961263059097505708845797383211159065607717028385756721528729884584680564871799664363985709928060267789276480463242830710381162101120796731638983685751579300199977864396511289699854790594124258935114899656127969868348989831187562019389084039068045226229916785818348767415635860670489863784501142736333947373627182160070382893516833717308559765134493349368394517059521280667923070492221509706238990027588599887115761247826961317619968394394789799904518794767266634654644636983744708191555118482669952497043594886904312986120264144069027405180937658253368596543671301367531762209565214545117208198902340605820287445247617653828123231810513827809612594276886017117551544726207438310033638345116948826585478518790913349853366136836395361180735408629480531743592972197227987466024503946679657327616486839276261516144950277207960541670710124681814980576160026948159943831344312566178053154757625309541828295074347748969146457553699493126746178262682991960493136947364926851152927183783097644561001239855387013004482545996023351557841359176359573798999668542988103353592805148288411048820037280588861696407372062065642170532271709582191263785061412687934114877313204684325043841293341197464595668882413709449498682615740992000141274068336523683453840800929880903240989938650001740740108194176531450250581678407944522223890561720016308940207506347817102953048428140854241375310466562062845713638455500801051233070168284930742251772201003293250677651861735069898881431594986877959810625557492210011703899751233300483318127185475403901825651793012998463822042264981342427442878483816883494835354946896180321493964379355886273252452090430076204369252499737205554990777933044667414919571119096413985275058105866361446596902987561543903105226741465087112089285358646641490355022841836315116921681173716731992707902734953150189165485726189990362162819012036106024479718349684890965010976500731563592312142467306586092717074253755196411451481224337248321763393820761868408782869085808758544172312078016297540622954012203782481638612330865336572613813811587517199935909520912547869307893820315321855989128313396086870572540955608422743235922384194653447552451161530720624514335011229774554386656497366728291361387785148478723155897917400261616030359978445432360950830145697637598345729014800671628512572239356208316587624761952455925677818517925326588317994550264865630319545695177461905791934001233284251493236815112857066078082471225708006524913911504692853437381134497594741095472411193733471121086046012477620835462656284976865499809777824180440143127297292677228174025061305456189560781074375751861463365388620281948668101607071132937676423098373644582117244719666422638069399494864000485025094095415855469823426965988190076078602044055618969418458456984160118189187770935456534511204207885619169943669163565312906696088161947446717464612287342170960645077964667100227255143142282685914451340240786591951550172240550296334348623344734016938931709291321701249559045045884049756042095488254351452402014083991204492774569858584788190830320011844150824196608946064947367794359699916570119292344445056369037508875546411214631476116757590109826282328029953531848657049099149760174195186833261696219818413850675146951341685096686513077221395591092829828572729630217483371825954958356731814643332814793707152693935334223514430626765962324804789231355356155573272280928738319134467348964878332744246714352669254895373754668659749284167358563468356623662635990481325630989548765877594168056001475725096408897368071463589194562978620249995932211961222104664962821055377917558113601380867146544004344234543481946519591102336990299375829475360521709859594859102856484272235266598690086620337799029329302929052255513009038553320706018948983426628325037546350398202229417876629790409432185043380582257228395674920585254277097326290354747828182030356402021764685191990003582539348851901912057190450042830177317908888155704953324802927369882735365957531209163713659061108469538962335041307530107744768100186148047985436173539452406867319123835495051385733107338514166702904686403643535768306621686702638383673105100813716559397332906204825553711022053842204785303265900071972417075997853318270732071412273784853135555764809496496348271489664663764515356269104976675719058658074927106779733883008433286503059180585820472491932491429465367920478201949030363160649012695796649954707142759924692818773089960646281441652137657030646940707615579431943826964086148378359963553976954412349117246497662130227022677435789153445997456676217415131079220816061913178228458583237532765933457846975336734953652075153753289384100628755866260797773188632378399720313583194951316757828840607283555434395558622884132094412425243166477364801716816055513036585124562957770335952230609454498592760642189800460601796532183840316839581276304505840016140695205265903038106072795787611983810547603474883646145164205239506682214914927649088292532522801137128683801426323974406647590195308811283688966584496539117098189951413371416302973375044872370023532581862458479694308794054316928694810783724006086407093240692996644678797998947160877307352281114723207129735181277218465487393628585114920948895464144106569238195295306188009690097387738995140251253137352461670680135047903613544727005658876339714402881309660729514892839692975328653072715620499414975402783767213960630166006807305569969798926244497312808529751690387088232425971687055436446058518189494902059610767566163856627718961048961625421895378360823841290020369241460785727908587760397566081454952450830294275232659872843755927031362167280605690546941201293048912174415088139817136739771598681130249096836471324924906333746271901828368792354218945212841516692836651318886233890670285517333851376523155997327565984652877030777760556553882190910010114211473666350296365545863095321570174559429395637271109418090792841234230306042979530049992972807114786519470790667844511122055892963742513049230106890001004444578825717530241550371836872264288975808003965824598367955390645417874967219638227231685833504658303357629765390975236366434509519192716175888506598325013227535254655817347724023939754962483574415643005790990351814286057470399216994498477245558788795183941007169015496707026814106952930137043402964365152540131156884063468931269331941894746676109650976406051130612277860906042192369924402295418158881006614353258604295963186735206137077196566274063749779566717685838196937520992081728794089197283139082090888249227464464384808379260551549543285397943240984068802891299712994635248222287780635844496502007753224558607438110185689226482845986185436039133112401345737252219853059788062414382430467792764850201023097989389486485547424574128983350195938398949459695034478620121321826670709848926568662078722062876120642328114547283744729168781662036440010049543418421306144162131846258535699530804632227302645574074142040120861174500830316672087600235721910584802245899355591053487314878691619246127738092839122235472490858068382363032374965824987289974108597022222974483403263399737195489912434452255501066698860147730488379882254582562968419852507508636897139780869947166913313502217669456853399236664866553791280252366160270692764178622970053964259756300474707130265550882936094697529327618782933857207054248101126460701949481509688876315780569077078079266896312700463953717956034444066295307022997963440129762846725222061623370094960139851204624451113337954628956526864313853930066431787673546816077612172382869998864343217678329022762532629298820385462108475809696909676588828977918917569320005721848585246469479170445854202460846169899398907335671824932773748261058719133324650655125825967082453701447588913419753134254938154880924971433675427136389998755834005567204343631495858909571240157790818875221350074065045511453218844996688437902622663035755142268579339498943584152107295592950913228465293124398275076261506992262030015744128972937242824584061260997677902188328380035111858477550393315741130436961269079385750951272848188993006740429111526351989867262955827314134415264879284402544079231865430655591794732505770133916430666497712588589794561799838851542545292372106701816988610548263701012030710741108268789107572636435919814752736955306939676924820638210733754664060112241988550932715594450117367568683384693612064071576969277631439972219172478203923890967357209550168575326458304744121031503385849464548728445523581252343739835678678400391157463664739640457300223883681280155684490784272953020569375583434224114333846217823029428265683148987951276986232879995044189717940168353890572597859027272819378391619966029638900642270168445851656928683142786614025019651662367931828453597447218692887291964969920012257921562048888368911236271524322850857916081913076611517240506547101488772694672470079607462034274634072700043203819088685022269221865463633662290282124612296202358155626729151540151023091352571357620402352759091635004774528387891494514370547055761593147133300568054310728727680977283181464740054559074974373357082000106783202281671294271749935050597920271033690281089643164148172183600600128659325924490622637146170206074107695271998927577362099867650421997849166774876054716229962754318398439679140272514672606654405333529083226247980927759920948835206270383858571707460908888773319837805310131070241219427474251008307392559110350502090873721678448220535696324851855826567534153108194500485598506828915588845456846105966987038278951818902258639589039987921488123357126007965930573070858113882157455101270574493210627989504470057954870061343813203929947418863865741448110233430224821116269848621214308158425646833716185958038261281960444650663696881195307910254118654609971580775767546632726508161900348210172427648441791645879035274726400719102086251781721383771562278390631529985059031026056167571442295091381966882945636876607732381140992077736428694936081909146138533274038136648912276556647969136778021685988924169556770597015365678987750868538077353060403783280406861846312259030236852676418079757888283706118044013305290680417314400960408606821045466964203733534684238633938325234908988513401649127229060244474824203424608100485604951784671121739920949372501490999542586567315523461923769464080747259407425435206310579851885375809420414024723730404124230286456611043110536756322791247019401465612465452775589759460995053895128076817124854461249223957448254757757822076666342611438588281962844181721604687147736019439216419822786966336670534687860676832236251792711344045792617307884555951640292311852487158926432400799107458966236954151666451324743630625881103481407606381588286274926190565386555470784468591340733317130629135213664962852844872620112584675540378845272860785084378759216399683936005082469614451832781583981304253974290930561864258790735343458250062880474593799081248541746261361132126685143239920811499491842391412400784574262451033521703570536677835238204314188475908635565228702605871346196612848355104175499339585238936960065578832743574954033282776955063318467053948327371101393761717342483415293104682656854298722025046829805669877947843658575421243885774320361780181652131013280632180424993947459555634566802591320557234433523169910399039949834306475644328708013230399803983103154935616022337467247039771739378087380420391354035257467472330552765330820484394123114683084269672146464876047198332767546415366320701154695901169510818806841214201370044447425656245933754930448003552572524911591515679541486777996418308308507936368467804833061413792371249114361938760799533931530336923179709970144508395266266672233504317277390675047530039569616158509663346137877764843181701385113240666455758638199403564159322636781558125371096918103372776838241702759697692979822043485828620734900557172035436469153054588502865647025559325769203466304834746158557304422061826745236619117656313883039918371902261876909839771622840828114227879976885794990661072706001732509051257196668979987594372840778250591799670452013409433389882480704260493836837250586073307324058919244338277526805394173777681269266913642190374601412025359488622323541044110547072243141141853311341615083574163750719196315525571642671158640025206191083816852507643013465010989876437205673016171514702308751339040282682411135855532865966093710074032226843117975492185866732788709077718708880754076622542818159902997080879025766131236090074554544447072058211396309736623263990006559503072028852225892337258701840235288005695953465250786764531909034253580331171451694795548054029346714326977040221143239698608058113377926026364614395215842233018924190950079262668714755477160111491674406349477832041855823227984592803857213379841887806546773158150017422660104967748851604415716248157585280021832802094427360514406906872600553649713272415509737407152156847072354354733080863623213046714515046051897456802446332500165703892509622270794211786270073523613284118972114642668137157508030645242109204884047403338986275523057253735440133603288100244923156477541945790865743931164704948429143038390428675941187942479373985971785794069899303798862217597075668298672415867331054701143282311493242151281615083866868581027388572539779818297262344968262972104613219531771545085516168798417925530902917503220094203204915207213310917357236484482954618171170506567199316653883616321028415734963697270735622870216591779053408793996630221905973871418109160727271921811522440758772328864817215264399200005765557511782718602458414719521549648486703408210268971117624677244253760461158406577477230768134625575631136154648538972191688520810185403183159769583754723860737765986270792199007067307096378019236091187770227792114570403460162698441217061135207162394308282658337676118803288164940378301338361802792828870562492476995812572810327247183660778923305949543692063616497842306853003857303233538665908774520789188476356972071785932459195147708814630089041832553064634488899126681078016907454039047908377844640064824558701290258894256371466334380904698886932496668599827205870117211607257771879424136657179338874721301092476948809356148383581902669475294956175433924286736528325787100623803990583198991552783570786710920333791733217889467594042170292561587211309948776049180638862578432981403564091128392866901483036861347968340948102043588753755324370926817160645909048097393505819822415964365541445000005163799011599664513424248274059080352958085010782855036585158495725306938749527149119652340648649461496315471848576283835271618662987092335987373149125865165421247488306053841114644165634537966001664016842965122184233783261220070301034064073888908536217984355284893330748041942718369464931257315032053712508711135491783828873010792917028709967168690759622164046786829274504386591058755024097348905638227300995269850889319424396844367274393475234527997025789367882376067065991892708935319031997622109230178286078940258970829858528302645327723030680975036108854937211172760448789127980126541011698958623846864681991849329324344180563657622992327029796080917006086887919011339602702531069889920629265129183916548774104584083288478246035464448148330716430752140705165178009884148743020000288617473543891388079204929322000231513925771819759585429237279799975175991421988965938009765006550604510462983754137217747197222512388251234550773794739303729349859536243803502498361294233709899602352981327110298871971195714178614272071986908679107064053336920763268969893138267382070961802523538971682104125738685120008065626793497324115364271392848297030486933129153563922807536791329371980273182474875434707425733665413622571299871973903206859998971701505454747756103426327148468065378384876229232938571986218623363162559262465865576159981420847335462029217956186696216637895487904287306274767517365474798015644248623094685324664570845240149075904836830423502234532510287125795782975134993803786254494579486563388580407993654472153500211743906426169142037670149926168241250515631271284373387627588585504434228312230156146356307188653847882624599153489978244627267732484068924081506246243575265346225179077113087600515215874025575577537732192338141006327082351590854533727484970614229175423033409236132794073456265482500318736872155590487781204370080984866775955055104761241979624088150116702428803114254245040926294043051393764125913985284936979903392020803893138520131068379149981750329097115777671531368192862016708980048386224884854627162195504249605266778501239803060067169611262834165962397339671524489322246126172456170185361478608331758850124509467605204657695404084757274699041380878741119540573485913739568441417556861302064584565728596572865222671806476534927324357684887941077258561905517503186969611997570946598938573641852390783225965740704685632543801246731103106003408467548228151343889398795363411207169032851307577382280946190301030929037629371436109985140054914465794619778369467434149557912517238111699912480954812296258350145185557646987784595175824852631037245687630510159490048317756917247183092730692396927990050073327318094439615441962050466475428793905472518320881778085300038102169120745944215028811981826208661960619373292979242639144878366057527128489643166946395025708320007479363200809930107924087667626068071546730421610337452117543237447137089214110260295404724594455029335145178778480459087956349979131090155359174302597200076265848087793140989725220432642765820226529028267380256855811107662395269011214584327157600560373320239388913449749372150923731556233273374214925768793360077974846461979100252855064951612440508159220209760247004449653595462830705866452671562775918192609933292632962095813955522997114643879274505148732514809806624160086239664687549377282210685191960262994958980403664027020248454246521647465246750058244818015488165592387949585073397029016764374038450262332941159021865097606679349625208182055611131974511047051607195253233341341762890518200737081648409885431366674589444946371767065820437815780928874171082126574560495117305297658843855760111298061764712419507259405256134614031619395177234201410932973702848610514080495628324037498060206079116040993278237562824033645184895256416343885566090815776066860878625257316214006430937646093805202236526620760857026368973235133159567505044577984364704023104644689942461789099418473369551526755258649106899167807339170252747776932795091699810028896867672411461583703858983359944724420731711114538341779970105472243997226275348441955513809492906368621482878954921892592835357863186619879594191022517121439578989593401587853680116762276898158057135674094438892466120989287404371025810511427552330947930910445104807272775297377450107989526078113442323569699811854269484247016399141872176084268924867154966090789071300615669539394547186928346941142775232773620444385139984167477189370518865792182376027262914519609152449731881291917722716980470886949736813541256860333064567338869177630991004971973482516068513388512516405801296762007629382404293017622456358758655575882544770142418021361637706274722101998028936992758391248494775703609965051624014588030603069132673033153614125442733466052472365741272265470143728887358631989177469973641144948464636301981948927738936523867129662985667422667312131871258529762406662833588394910536921587273827304646106148472397820072097911615495609747265478026897301463526483663974739841041357212030510580524073970671968261095437185063155495044391456444411665803788571512310899282740043837917199278553526667486866566940555224313267951013635540870261854548332764199833244481203845709288409919396337359467664526621327872226915639831725748870660451176649520171861966684939259267111072288987838909090168709408026161058645750882682297231719013380519699908205243763484962601849945286877759115391255275386284096341451755863203002489088624275738643421014779809171768115096386639867231983659483129022722997039588625254207098854819621246695552159323943703013650875013461146295146417087951241851485937567223395584866223452832154188666656280835754220250222815614597864323797614866924680211658787123864913788413406867534404091779085571347953102707296452349686853527566434589577071245926056970294274027726227100243494712336769222563191705513229848036303987793808581749649597478337179598920102267221109267852413135227044055474398294531687262012126476465408276013216032600105541022656752403134624917849904565372517878334396523711484733807176080220529505414012600593089138888825153416457185059856700496973048081727296944215773751831860688698270828918985109579757524938325322819933880857658818893097654245388979146492898333440704793918523375605479745499696672007348892717537551289218374182565945522090653915927126430196742735451564884130618191633862083160874460689233194384831545815192168351379266417234555333885283229454247468496051955253163842379208497601437760902081262485816322126219527067263246323273192953164287503685406218209650885424623489860433802509972094764622186109848284486502246443920624251173152189003395211810588113578644058581518072541357170293679421056608706653113125071938142531636235709415744993200079710229295741181742500577726315515291508337171988926318305396917672795873481323417424487454080670654619646031271818232696086812969556774644250508825648358237396080629147746321126959119073336475356965633021449880382127876086998299067386111366629423544097401918747238227042907939459976463254346801133755851729780886342966664737250584633895268728497061146861860826609215223341460100437321390483215340680479640709192183772114615303245217766044369528271601861248114238936444830754363091577095041962574330752756226279565315346353105434376752513440468684349016571083222061722803199625594648879325514113149711397697450438825040618160629602257094209848280686857904910242124652174125899375886465082245020625452919574862281477447901559776420180428272608646629498449046045592639392074874307377967433894087892692403115070170186826131032112032866158085100847773158307966514578064594673309857830271291715154113152455735583668757856963382461263655792332654701503705881660301271431721878455540069068293449262254608417609489482172329932205787204242700297998689003148232919398016312159742583506811140996905917590826937681500279855722273262897179937038472154618773544930593103407523668526183506996256133499139697454313229489729423074508509988536969686607567566848452246284016592029944247099623986691883028424906616172823784344142600719946560983635675389434912693943947961234103610786618499480756409561839604629444025439692473057215437923358574306184759935995729833837062505797837002728084723324875369161818296198205760786374738662626937176831683469900466473802400990358759229003970288639750702370754316887042754535719761234370339157064215761598812517179654163042968446689000780711826158753591374335310827047799321822151619874127434269578770193979539610454176468727096100277033026806553673762929626471692300500065839903579168635427582397096341764858386015124703587698112148064759776673857738881480975103877609234104133364672714918157715627501944154088732166677320387054408875658789163435869439236835331546622024011951075404495362320521470391616347825905203300408816426853263735872923295341662709173249097152705389729549028560002279527120426087693997904969399675610918325971196125497742805505822409870850497104579319998138966668288884033045623037558475023097781728693289100180710542934860340537129450507332841124855815375608512838168874542992161891513038398564553372143923051388829949123990712154295131138205436894943014650582834003451904095571739343833974540174113167420260739848501067105887233374509215648342930406004002085424114323581958140467069940375808221236946831543644559272842743327181428752319198760437728422503231037366142514692039881999450460248910779251693908845630659885345282914603359394763876665029048654360014061725051562418615019150105437028637279188889317980102704969197605772132325563750612623955823654868164561382728998921142819855006240223452534725450279679268347688018742440362391373915277283480313083622033201130298166643282699412648085396510324829430449554664881902029927883547287208878607343206765165347688000927869694746163900894933266762334066125311651929542257253596779044625082952497045661865874513932055154653623212942105780442300259351436000396821974063623058287815995759391651229184167404567003854158836753110215767491551160433212624309345649908852146303459380330687833586432237654982889356986891982554144898553873719433489031618238209803420575549686499677718744399324300909364095912494833832771181678366497648602404774030823697925322179522149948343797358220045388812372348644117761610557760119969401461307949479187639357456868891050823611850004671124306782350243447075011341998332484789689093091717847087243922657606490489904334490787025627873048942924036143124272068091116967435782119243748864913561059815565615578025491799909063149989537411159607384191660384301197590274254477058354014968714995640065024043105331414291202278826146450275282632933434987261311729295042365186140874025360323945687645195101915515061197587962148460569639596945580799437031485004428125974023479290250138985458245238527506763362073447584813110467855860006535518875241429146221138309493094461618585876567166890550085674449131830654479732959408019323290585737804439248903034681005720825143559499704862810741249005818412030255428809921604723043154043005800798416912871540438363655949712577383713373015900275369161144350962898748446710286617435021872580143187976100398125247686541530691345266395384742579426789068256246434007568600957956215991124732152475979024205472826898617273563222207677538433645521709723930477190701330105591397466853798826923413315123903823306548368733968850565327927525924919091416327788652562566604808286915643197351486947403372152685051564633361545081428590534678501573459218538633357969329928817095606794336072149509979392652750258357074618390046074473471426530534992798031484959000990247399211419987274641300830648439416134276085288978831887545084615353248590272634279104249945897158585198128889194254038977048041817558172052085400914346754218005571636703153297794581926409403264610632985849981002622933158648692854789211720536497854915415693152582666085089344387593697224504902597637656820232919523829037722019567790195771227612933608284672154481962439389380603821270840021951498726568817849401116100524981291577485121156812501146314234094344996604246729208153255763876771057048154449587445367309569343305372598865346999517058841456733644217919849829546053779568817607055563800221190977189899792421316696953531341723965805018137762079139337549687023980874907266047843405075657171480577573953858624792774221785445066505422376267402789489621688591755425879065568187189085718010193378968830525677784297337125726561557753092124160406461933735635217350726214537314875722825960813814105147251518422145288021317593093149143911567720597502281247482271988830985039572860379825843950503865108106430903074198420801326679375105182380698846390576733825634036683212379666708451439596695441753734982546776119824221053356205770337772889392400651569374244664018493121121144798836861944383403220870526855869840619868843725895215377600937324168634882830926837841627199662541627555428492241643834241564443203545969038665170797353589541634149524040352807854415048019887542184215120185648132920814214265630785405014436231412001282607105650272801836149091406189933791133645604464375153501836942311280960223170163225876115768008662290884654027186484155361057393729944344972352952936408217821245516361034964093586982214409089350985067437856181687241663278669170321117850666618234493027318383603253947716101045862929277235712090406669139015476293844321096877822980439068288363164842777439543672641950018108530697870307919549704893058488490164704359473108002785082621142150112059913206134968504480744490396340491010813785592807789485939919315540264665235369955357496529987558475628884236583752061208949222703018637962499718785989828478337734642596185218946552491717766109606970062130318122858360095037894224442723284866715253097223999398027370961491399268581961319301200960411975391080284787442932687337046471032601538427767444052223945530703016458507486052399193334293321576264997813348331864961375707702894356545936674508092161384202720353306631200193747926227145261915344111563919945090859282407064479343906512661760049743091833900289835676237264606176794289077787634598658798549148687064152563940665435069346819442870520779689160632715093139145517089795383378419201275522528746541816928741695595825374845389261853950170716244608830610444427211621954444960385667845607556945438452036275902516645536946055636152661491072521585917045517398309057414220843111964649883819324760112125219689442508231004052793075912305542881428645621796773982963935741765048203642066447189755094369693758259956401208629290887730986294753974596803583659420170316828239673489661097432223160930319515148706171967686319145663401472911990576366040615985649988590646764343563636797943037397428523128362349356331473714264838047801162279497592925886924073095357240093024795529402496961774869727086680488384003606681553396313530595791464479830213876962086050041868631436342636362989911345902818320725075803023184056813949369065075160131579183313638458030984762012726427934405168634057890478649594849607759909259355808444738576025672881825352092600596746520683338086888432627291900069825294912387994293180388262782702882818574558974147867908761447142706427204965080191005370932610532934400118693962762895396019535727498657108512604400968463866172260606995727539328259998738924917791133165448529587382757379934725622868893608608855806597796209755365282453782862901820066276012974461039279015871576838473059002846154855299511764798129449157573514346017739510010386754645578464678779815708183966594870875374511488749754071487440340538887688866465547280052583535227048750178435810629444318967220048695320531070799579391984070812751175173418828501182117825577693511220298291451630453693156301926588814635585633671525468579513949360363105943508011842516571812230452486479555761330957799467580721169724715756878117456310153475252194603331943314576762157269218585238047499033016299207903256352301972170872565637046857410870353274854869857323613808962504787789239055576093851660077670158899642816602534665322479915069635219637549554493428184470226843429339183894535421538054915114481833100640739195066588643282603044273031513277437081422798072130973646483807343438802805295589120510776401250226017044865296088515039301862885220339153323472689999037107649526620349657707868533132367518171634718006669797279815540229885106550727835603781291181578222199551273791988408016204168076436023540701747772129149901375942340450015307139179469533402978235120709780179497995266037746060876353037005330654873368827666643656208370886102455446946209772814854512675061423003191042150516966530462572170319560831023018997922048134194790149248772694863976569383151121934238636548020071546440502112013288176750304047666869866110002417404202118188933406333848743929503542696438522908768106329353371829496392050556111620536528781340337322578785421406999723205880839262305542803841785026377123322544093156363198603808350783646914459764384992491571828959114444941710105816588593179166159944504423796382791215875874593149799539834642395884137754408975595471905702874404788932131735332796254442933752106737043071428081676264540010328542789082001467791166113420606823227354289161521017512120322730374160121668510297049648253276610466241132911249163699659001746969327851062184475680301272972212479497864559728632260669664529087711964034507384669238288198003148503522607956554725630732777565547597785450203713586071196144111755564006951865953320012489322405162147814162835172116668396198823450705356320708809815881210615127120022260940629716959564325686089439188189920750647233593363258092928340878017699464862713335469481105635134134330947004894813538908692372494294520318634899841863567483650127420604185610060214983962335773642533357731425908931958543716463769994747008632682088923245817191636070650776963309859910212371102263449716264992067800115707284120460929964759188395791458008314223770716201446960440801465607096508718488804363646047214130002000743969430629793825335805850415351530429036783855657612863641468449467563460158741554914463445333526113367022413813111926935884708050423193521289911062468830982104016324683467430861764976467674556551808066133056098737166037072782349222514731655005706941494327241143653284290546110878207545829813366061865933958564795403825637154723003670382184705157018125993566142259752191328764504587416117548461599865132629863673121307676735781701310155514590553165504080023518628665085070416776653843475983330611390194835473481605718942922814469814525491596309972019750661309207357661675421481957623662787640960095449754942262387580915308841255660030908768727575135695621531944236182480250313719688846175295105206362242425720171981785170888958513732468945571572689471531136269189550357030569795783633261812104177605189438602732263389682972527316850752717845701785117946580962080452937504873897929685309837418015917808587881519190050254232649140538107959123879627286737543632246442818059802666277917707014008708304154090408076862587451669184394827894985331701230746660860258669829925309371528253667018755573405294082706829969438520009950846562553278892542157717750978949824828990088977240071181230501074137600848916349642392640393642561121885229387388203188960614905328121079308710121310499824904434898203487782373583079486620779899143526596381906015113339341336708746767738277201955112987328482387815713840041211912749843549572246633222375353418211576763851013804997486265441850597719186716955525944373839542424522005025643076767495225953345090810432044293184149351039800449875526292498582379167981486737460736527084328037417414156764428909702637063779877566753456198975768410902030319980554513707347717349904505080056564085753887373044573297645043675896426640154114335827489395827328584150645509525570295363685996686542206410140804849145709230486359216339118814002257749890654627587440217734030328033404320429973194701537109153783075238619767704346414195844617644265074464733273976105110621244664664724507750051850637077452726494657741704195800268822972144817949903490762461320716499678965814189796130491041841964029892668382089378571116676432596587291206681562545123418367910053448935140128547444560099427564129527538505018877779815633843692207350537044011901730576345407773797522050178210952145150534060686946722299558289867891620895597390541016192058394132639007643673707839801688259959647867344361898489112083021668790002813055175490972230906334669044975443270664870574610519450094621928560998027341889725031406144440535708298875136907340846471202267297530749940883872151638810101882051301150380531772376262448672531239160772969952102621236048603402585072634169561766536318457905297161230638269502936241524789497909841539565959116267107886362747687335450682961911871424027071290757818842736196850575824726904198063096626452830252104319696672449029486137394187552173548622658051280544585389091988030071774094745452102449038634150912743750794035060944380340076839861812020672076331687384715644639894729450714953618869252427883410497823504863796974160267915588797780193676741700504412931200356393885551610562650550038628577025855907512506782229214907690947213340776136750380374485854355682024006605675382976671875681830183025347067633060824385873443762468240993739625247010350148902948157040850354402420943383158458395956978543283817682786841982027705585055846406518736736971166135177582860189625077029812787977232011774655504627540023428051506535425378206237435595204668827194061192964739841255163337793155338219407508576122966071159642746623909169365765744511864374223139600176366763200678542247060067574482384749827986065664989674869926369956344270949943042749079535980546227761861950740968752141902024410654039309673707584311411908022954508315811231658501810440536051989568751277620165531637175095502446421022589218288493189599207015245718816646410243912581054156848506053838577134365108001519084801080033900503552671651707056808219909051605709686459315870863914285778774503375197842998853910308731870333082312363835527256418434522456909402370385482440407056083715960623095285089895836853881639655674937778572817574087201412000209812337557118115198556636744622009499711661824703776594916736007228741709265586587436708176697992356725140640213599296987851522930808940460262528895149777211486572898692449298240060777422563525174146455488165595809606215687532487738038246504680307125935256320958070380929063237201634223766216890056856709504140484699441806107782561865462747043340064710552718973314266928168299756284249383750691728306478962332055706689147467653313048786323865572421870448624484594674975248327712595138358464683363127967082656473815370151093714980592494636160132753111362915525368190772926306943155917433725195326255874452328611176274369897402860287854546818967683375792138798923693019264364891874748297150510246837493102816774624504631031680732798395842246151555811694611028683333018113861927775252476534334565216966603512236049198916378101823664257623899888167636962707510414795222670371221060631728294773246616007646293672242403253790077967491976764056576791949200237596572879241036042129260973667378007962011326883878026835913148244433785603961808072010421232179227457746475312723829126762940320602642069314995721202393995882920040322698688098574946463782147302882102752239808304382402832267376285841838241733223754534925768131761650090100578224386401976630375036512511382461538718138317107065090610806142459971991856431753697883404180567014558094623520045170685221042035724382769947971792613399550569935962493131291250742312412082589768855368883785275759178069655909321806587654771069859962919822394561856732799358239579551592153782477593795942679546029631619918037125292274398978737853715331250802165668898507596539181494901666754439958376079123087622551967758252411875989295130593886238505033901491138610909085930144461251308572509018019337404225610712180231786345435701974799733459177880489082662897571836657109400969289113938070228833677797878171684310498858461112955865108275742845593647909620896037756708199746275257304821805065338541509865429267713927100253216928312649560779841563046837913536711055506536772132106547612818770462017729792627166318612576129700387758723261646889289670407279884272032103504678808398369437183511319046722751145178876394937391052494822169688404752811014297523452449497531301399626635713624003925432390958026855444830718250234342595930294545722609984807854329890733272772566245535497818683303247279124824165965527512464801897033263480167267220697647113968010829834811011812856013321377021727009311346220431790721451333029179375269122218221326487381195056782610205956276062679023334957766418887789314286200411524145730789025373031448223125633324223435249764965048885637131770974365321590673750283053001969177181536289827939377996181870919859200097233320057677246680263532639398457690544091843437766575387020564404132945846198493171518204352024461936006409798122373496670294999947872552946769783995324108986068587817122864905795838539754153030057973876410898459637442084597880037482330642033882425496764517746258151025854411013396765336167394900029850010812938480606439093474333716545656360496406727644417018085966943193843766058429858368558313084483870897972843093882961496253734792551773818958499310354006616525567172222985843039884804293671577846568337182775391020640169763225055165483516300028168511700024020911897126990511661532068822772685960325556031569170550363393514854848967503311608460095158848396673125468642633105299731194101306429560852689630375215752642223550557374699547154547559670440649783990456119240155042315635977705043981806288751757186270450389090730770671372832556367644060306992529617733938223361784381754994900265696090120658125557660541990934831707196541193884691036037597895060317302812685421885760511902867544430051184383027045619414118535631407031863599248912227863449380891477111452963714120798469304972122915779232250686052703087234001956176311139184076521078115779597067449009954686731998122283283259303645771520032311232830555145115059886628477724281806246978020519284882716963675204733410880837148881354638701910832141806985094294769685874020957173977943665168824299716277935539972704839924374386090286256586198068076189384220432363562476318457667312188888426708557953151204592767812133088084666307199423586989235519446566249106689421443400929296091021474776599712549198713726061563617648854714592386265060203623810452813411882205384293378205323637117096491369079139841886867468476111478629983438590004449373956272801168195976126880333063696092311729968000817544233895042988001137224113107000080905264562368515742206742560474029178958865699579091799787744691834797930516444196159416631317537742181347643776315652188415048577317574580521894804116342102212498276965533593743955177695552190599840044911516819799749423982676579674978839131636699202485122818989744546920267230083475052443926265189124427380057297479984063136755048034671503183644221232758594337576692711731005773873780166770394339687539841576266776799162686441451779880994554198355840592124632677165156666927809967464452184571321268668799229357648872642774850083226627454425803410792016043456466802057960886333634822486218024873381819786906953844960862786685800619164745576995728181856578583225889490263264410880754524293939467249582054341901387723711383313359347126003022507887196276052613702346374264967858139967192478521441208985660134517922824858787481378366454171099766179833532729178715982745021423913777728999309305436129920232575856173120666841841898770506003299626473937462041530461388054343765562281728689637925038930450516228801788547772107961954902913362540319835100218512429442213346684456587932811862378231150342306317919032053419604739811079806492368379100975147042071962303413297891832912095948919463687854778663485298527088339387333539790930891781865086062385457817572893821804523612026730442963764518768281927723319626287967612903102282413036656956329234596437763826979428251225065707060582249799134908164969219951806428773909063696564114257133074779986565255929777566922088865278501651561005772165195295302924157316494798074624463286482847457813851792394568361670247311619252092358041416736137744578339757779937595418592279450514402663261195131882540159468269734448996071735416517516957725047321146865991771941430495212007468189786867223208276556477692256327063967428819358597025802141703845522294495160896300109295900403843673661470138587833723825502648119906914394821697185332592221113632208291188082192477015634640945028527226636295938707838829976260174016478490600399542259746662189889279862449349233222823598385938696512931288703106531134381166781639236760084674212531209468680353148686785522542665672146451044879765772878994246354596959320876067009203725181504927687067108497820910558937444223309531396648099740101780205341464309083513571701303365255383916251097257117418936898555856250670738040438455616715915738143243226177230270775270995073937513796076808778541123708654243464508001377645472606008796755024065355085392486818299331806041057869857719276463505988589279880744492839971362017128119555939982849845513737645812940332389105396217011167564470744892851284487812024730201189813827974733843163461583462001738223230545273336152181599572772779306460780974160518651336140137700401237474366208933129605624757765452857122678357854812955936840510930266234331268753121917321294912440391321684082827296674860157560412781798685494817650413155006447076584648804976115486881770390989397370128744648013659692713072720830536842839437735314988501076112673861944339065869310863450780182321988425465965535527502675602405261813730499827491999945447835030165601716259547620668171490396249687698130415295879142063354265184973500036658738010851476380852054515769139937609381330366278382686976102288365989667951618537184159735200031575651318504217287256725854652297239647479176724711734820129214748236974174712247803994873754989680201910252071195795592065060193083344928806053427085868285636874482558183956003363451319776673110770315357689117502061676093249575999981080918292212155582732201648507006595388200512031796708040677343508638474530691716971679944732890240098524099563329845752169420753904502081349237128026266318559431133775625081657870240582139013947251184355399320032254542383264018522166538308855139176358508216352738729979966707244822070828555269000878961953494269767196246517631007419800025401053600466686618449122881040989065514271728486844607876219709935833036543106885202900936012906441307776840665194550539206114197469301810940651458951034576465905606477078945502397680531213875207256713932085638935236469498347071945563561411124499042567963691823693611225857944688461296636548990674636741227731610069553093321024895092369609326481909029588331249626966622318512895364720264226758419775629561465818175861973027225660375251401092577032217030846980147886452494692665967978312755594853535866243757456475526263120293285669910734116289942901883817843457922244256068673752569064046980231577371053131092611179488190437680263043490194928531225031175473618047809958484345325745548491943868835424194958194489917336308367178337016701730248555138271046880663522309467931368108549123863331596893318480032657459455494132934900521774808919029232315805890442464352548665437205656042367008272259689890982470400913243231689143710711961578810799255308369275521091530169252355046236160962710362647372591142076998623845706332927973003927871570271040449505632075503830091012809123490928257553316813008654650826591938354983631553540582054573394932528725703556528430618212334212174198371192309801177039243801684984033430721292384629453006472272493335623398503746906947113731192967059278946762766199061186549649303335039944129028390803677660445561170310565585526959565823020330351102055935510943937814836276838625528367697035063436110097816490936580073843837912664106492166121952120813918544863727866638751806804109157746119191532899359440916088883167770467603606669104726833591719359157714965630399967079008006679053369956530571587902247835722887783904260428950391101695521052535528215478054231550045539735986226889131790327694979383827103998469712692832608511523067443990048795972993871786772242583664407821934842439388675305752723229629779446196031622240663869114107599900294640175766902709057951524977981389769726913255595816394191250434854369793811939069182685302781705317598209611383746272021469226244857695841146547656423067909825629702114583036284500307563857784574495964295181718193711725459280716004845895137912587078369040123665766898918663994038741608192925188382901562214676368340040505873056706212093717626744908013130484091381509520813893434396606028714570983857612553331930591977580820206333720173160845079228629634467168673395250431797169296109652249075680130272278482769834020551329192809602322312981319825079797566018635145118810381263555528736352917063078504683317861875426031399344848612802495330981103848594151138475609820349889629730015578764001887055284700081065260871865737062390840734806452961392370529619793544252009754674469970558731409518476443247483330104790263167565578949386795693364854491005454656469660537017719860541260143821321871939521471088637896646616988759928183017305680526055729553401724422546628473281642192630765744158580195758221424370572195473357887808552498893802311837925752453050436380043679401180250736532494135534061214307109907308921598759995560867201116473893820927616777696891933214714468347163658133953129505608990478311433941250720764362394797586809510702771903306462396562773279195710674455101419766745230770728330030940022927711451419423375300483863915595044389003146680921390668482919155552430222508282858448697796047760529150724787990449070674880395033309082187704559446443573654575600681934292604701064516812888847841226615834304174418097473119786649084407657311203442693869791077552346864348589093196613564446964571351886049053945063990398780656085318681110887195297510620923578884934253124153033887970398686403244051115056298638424613858084947155721415502163639815577308044590568311159649406251412986573672309884334394111306124733328329018371984303834071037233548313889055535950954943988950909894600930051166619903191419139135467777526428154473880657352424388326972646359885613854711766381523270865629463908278511350483747909877815148139646873673588449482940410113411867252400813720977530079563560092501584467929456745663246009365306681251617282950028520994847852782443622548445077362145420370055728544588958917070206785872027375228949022838379180184157496927842239105336296097155791309603725640305058542164685930059749130924145698916166575869000479212814141765512940049963126785661827690227638425689606498661069796823857626489798183801094795687357520875790780209032071286300439068238214235780804702417187129833713074264440514146423117046989275490640132521163742432836986695911432751604175041930853237371396671925119461782740876424906301223581576926075895017185286099211352287178684327377662509861337911072224487060165794094221196800239632207899738529804923431654995644308196043457594372858048149870021936203115962784177383691718198829323487300828405436464954128364684303722270679244709885171277165914449630352493688558446735728217672969686451701266541788416262710273663322756379844093737371233337535138524570562070647271516645754066365679435655279954933835094356996108787267304133745376079826269616660097576638977722110150935972617555832055402369819698018257244213420120756735981613827393471035952157631895042340647909691270950113692802150398368866081176121836864603690521270557908801008414004860200583382040707279453106503590030152568175911652094210388868539572498036061841822808773125030158466625516673923989411742019726327227541973700476716615680888535660703249443642397088078292644916044956850897296988446227449172758111466052614766459748154515917866608252300903644601079487573025749997743654513495645602322017897006004196829984104050074069375112328545657332065658671485048156717187425060290489638241849831972967790790463157910385452993871638049141345635421068220365464359939760052431087855390167789818390816749382949935301180566994034930119625467372005435484299373385179070533555773670267315076190161802875088174926301958156167378165352685482435575461575147099747986250773481873082376812929530079208803019589979965575441380805291963060647852301592617165858209440430311553365519346257256859762464143781105368462010328308046588641386971023958178771332256491196062615163248198553180796794888284849590261941451559399340206719900963372557463120757454978683022930546534145446809772355537358876053011940707638024381424443497424646676971109966209613812490417359366912305801880256813760370588788935712767475514832133923086283620115485211030063935355917341665594635136593645385760316881075173803326746077449744718607540698618314023441296293525168856970581174743379902958268255976936833325662320701349948826539047705811079503275779981119771535684870738408492645659056684514264029807448807183714097891230213850688509714332163066726491889670424483872347675555126949562455912898244871314715675192251000781173115467240930690450281017926122401185377090893066448103229816734034747150639862847721979290664273548541281841914568515628468041736128693729369076098227676299771560887424309490110034375984714620067375148951629077965571718170768832560080720927097944980422293942551696471970884397775428428460622472269409119278582027041983498449642339275210706284524896149026263845442719135049354131069977565159340403948366657589401232422655700073915507931644884884083644779344465181188223755802396416110171195271793809572511869374009913700963994071438505905112226872855028118132768739608932801134694529412484241349310081714249441710958989765624424745937933343148514348546891791701880624341403064018038522448703795692552804816731374102428521602864931992466172973800013339208185744224993497844556254196652017247142040910507157683811517807131148596939971157968538872499933726127285836243800137647620424937317689920035005696134378213010739825571353398677462959266641476460732455330277246377875026952603946824714979634895009657313723839779496349360574555673544608715349586241287435631017614227012633720736101639041702361917886836627519503582752934763302715252867953495794999822546071909933702460691421539473214754380018588878773059649510265730937172630490270933837604721019078053187738947712092974018213686794806402641739958742626498151751667916443011109126456843701186000166953096090275535860815202646961368437052216577734903949422492626034493522671227886234318118947427929049999174248920412600571844627935325715719170416283071239554657132105355569800831541515555349891466552370383321556070222158164240535762347999610707777388666579019710035061554336678344310634555268788224874718637814281961745274005998608743240741708200476526305703186764882246634499262322862493806070733319102359147270091759517801282917499815004305682609633579897070829463622529313107392780595521615520146983050609425552925045124295871393986134381836991495626987690921879873150148168552334997503746746020893361833631295951806755875186389306913333386648824621220606556301025451658656038645415386264347207386408701682527803964275409267092640091468873956209698660030682137985134036176341398577862286178333500044180045456846405196209357826760281903794162936465227677151488479889890900772289357451001850828839798784311404959037684657710860656389498943175789537644747688886287000958232685376991710066132296467743445264096831164256183724580784213445341204610847440797179848038156003982885621237943338472250563870738440432381892522350962466068133397320398553923943534191021610773809480654830044585189782011863863095526059385929695870254937219085721124648212554999915492763646385654126001503751786782783512014528445368483430756880120929002867548202545593239295559042089571834708593899649055313165044017091338797446017692076030489505456366056373588659976334062738560077158577065870374829091455570478640491141675840598563754334991755694259266415028716731877541302190706339277992285114132635711928343697119215818413114967528577807590603340101665606630634027370939043012972857143584512887882353647468004751641734173045677381579512646469303383906506967246127130370969807020781304743364211820934664739386976777541182652713101483397360565814837430269930225526341972133142471655999564419704741236784576242154484534005349119169003857718897960952995399810490945598822132531916069427356454309162066351276557680241099742343911733854551452326740947924321948079597235862489402487581969598225414624433805138377812700079968017064365384649304705254847452412544119621137267539303830316307469382807013087511084009458705687958513206900779324945441761707750880830132800148387824658142775978633860349112489004163656152937465609034200317493563881871622837401341170972715889325680466902307311454642891932694969684384382038628670835579129624280277454938904440940494244240360118755144094257069604044924356722164997783960638770286093227691868703314223871040427295520981803239349789890519905429069080615195025462423931388771437953123730473800559795592018083367081301362391858718241299063425669645937662477227730961720692763119319382806778940729640281244291329757748430655034057326152878926453352895785488603321491409558651320130885434244506019001648965982178595322438039743703523576363018362968794890391388479628916242924838259619790674158250532943384816382064922338239016873552823721184298656115924580598782270226899795562760470347636834265913834741302909501692508523251810679502233157475585891185061167263714345280957725059565960426723216552731959375628800812083902804183753464479569041868572424435361611000101099457467022489573665147512082747849671172172821820860719370963884011468109078579726303336307118593433060791299913634677962254965717018604187149228805117585787404346765010455628598442416796415777028710030984364818590973298071933774196372712573187852878524558065108892387810894960489390234101239882815982104803260279460808109330105719436330716519066810725547366448758964633486980156273168906850910563931542496034448960778874219715912999818142777432264410052614282197013142419750716928286297425483148760232915100740269551261420601013868211269853542297268130163848292545978002757496192335340734833052084714635638881124615035019135822155146744275629627946920841902539963912024983735606440992442859092822753813913141366225486619804158712623285964916416167058440798105720973234464499607805781720022627162723086315061833352878465032176647513785273323504419033825647581102072885861375415901832103891391072455010881804049372984254608373010499743729488882911472421505669746972173121468164742318871889247068162973933551691144790891925416690361019455458708188424970787948578198675202417184038129583538823612132649852772282895188360753944679375100366762343397082978912589746057667131574413855099807941892961590161738642980396982614545341826848323289966045898649937844676325902228470839264554666186364622018796471305904654818382563533179006428891760440184607564249632485365522233014219887092580108132984249213341228040819754728707830818250528109347209348265437080736657405962332542297006084215985666233422320757856744071663020707289700664380853997279278692662694033324908167161119862408642469405635825909840021376228004649360271677010944081884413854326460002583334284181126086194465664424306644669803098974745929541377982597367231664846558960177084592587533154934146584964838050545829654544055920655844331306582645577040461528433152833792431792910317461203660536497236127868496200460424741466841006034708415500555092762395262989292532782786544949118032819875270471690050764976819885904441743430599223074379990031705510833197792279153759879753235075601898626440563372006026046864754453508276858727301832804754000758894581878289270180455422862702482971323783536299629581775349840798389950508244972761654425513017964104871777920723694257041623488627161175368370068073388836974473177393941689258114668511317825143198671726159752086012647067342970271013622135689248844494564010696982477156059666598512774301400899462801190053288241540964123914191779456109103886775592280760373531703739760007323464801749176877538652163588076182221097481106722686082606957083069069436190803107350808023354407890405779687844887042861430255984382618376451157640971089320553972292261786714810173660582231071837339568254531610835724806021185201036371026348248137617892490839255453495526593533627752489028064678866597862822961929155252531019656642558464889849521792936968426971618773203781695280708090042670117061216711032296695785636385306325330740776839850219786295142959258557321032327041470417204375013227472584080465052319786850425864096041511160824578872843739784175918364335247840133916799743143879553606042587012456221813537375845920202640087779411300461623531925095763116468001499007537388946131251889122448961967018491325387738982227202323916237370166605443849500121932100973447142086678037479566101430200738101426692481202804246676015685682616252387380052802154874112544508569613599634181236871653744390884535529083480881498681212900251418218293554409443847870256942594411157632356393448370212651718740719174968623928557371469892901593860036141677329890457655427883414257821669804315769304693580033298811721967449695937966732777546062384681432988453781741160790958360239113904852851037660571339837203395245626068242438940481320961098242725906302513778122420179049195647968407031879591701775887126089587323819444291541643377688560788170734994242698033916023844061709161659585169531033717601431667726758838500555914297975281867426466530694834021828643800313189768078183740188964838636736455027569284052884480891217316466058515974432575326534576503124349890212177254042437377837818730612886131340181015631778499972687011262769629464311742770112870701761276069586554442490793353092994406525503527826899569842301088023935502493741615870542793619012236348827350438995354679326241138198825596041151527827296385432153529221341478597742120376385165270169417232750273855427722993349086729818880949757192206563349371540028745551034919069154230492555693313167877171038477261173484004926513680367490901690433939189202893329126537928794873417802078826303193524369289244975561544674936155637556998992538067644820643651261862018006983082033438310248375876153029982102059901447766521638516365559412961469792127604468214288527483383294246939279328411577738265541906966157006669567205122714133501875604351565474613008976243965419674080490907915572816247892382582274985352026808224910195331676571579727645582302737825150022980213873195634760342940533448851197687786322062434384566172914546219715977526768668910206462284045286382800951671870816418916926131546273732116336759662525078180223397723097505072885566406972607796228379335395654620851971673721097683896756859037835359957509949073953647047621963768611465117365981334426858556037620467276181311881277380713923256256176709894257603946998727554615268278806648932540112121960817049323572274504065766386041136871837868906042615338609622120540818202266730497478995895994272876598841297119078630650925840594053712179975175081759773151384376692629658163943919856951487269832874595399653308304767676364808796443369715026791868158983605680613805980238053081025848403994437095079014740553268323626417190598523750864532427911158400450638371561979850542157159230680841775137012208371935903701347198951714840591695708198316027361260791216941785162949080498909523817126175076686402171227827681159444734842088448962775583251216576684519167920147023855288379368877721878156779336267651350988924306027487393704491392135640859203405547343543522941117067261664119241113533308486447302699074512110612745692484202763454719736176731935363032311980172782144345036763531639950065662360275456670379632860224467782677780198059901756796427528879510733545451224417673474047312045134354852469489515428774087925763934052601380922903998441572009483090574055530317291682426555113618709593321944950058133706214921270705513908362879284285855411165271309963314441924056623303558283447664807481377698501075280293302338688232000896060854292928733933214486750947385842553401892758458884826555155384964410417197306252420777117261666812876224817485570159551207965244805758411143490193506317895723633009125043632724811633255667729667327697987909215874385909903821706997221457981926224317236668153203427229692779515525142798008492266979143040595819273004767880416662489328225604711962511175468365136785948727053027572611997157420194716886028167367088074115019397517939923974367519977694339696790678651659329635539047814727121094745295233622231719235444852134639055184608347889379064626914552478654597870445382391146388523813764481660896326887337923762743768115599741701518762001909954364880850514984246013547104457185700426778825771237370752160082529679398767190006247985657001703274732558853795770807455140065868232883014440592646829988201914716745629082676836992723295860868645021952338586124728254186345612672179971215547935711595199192570390730202970601179221106027094036568547988328879286231030613086214357416595404368803616007185546862566553009109468827485264833320111205943160897326184789312224196871539800874845789713651625191637769808462469170614325592940803293006816190765420159672130238973484896531561113333089652709698312297641966874582207525403571656432989465292583006178921808261181697637143736753707281434263843845030938619655868327278875465760925323969327678544640275169662604217045052199197096737012013359734694309678723139051971239858672901524703694041478218543288756141983669940020530621187098234066947082450476972605067478004692655921578615213021945453979486945661393383290126449835463487956413153990692317965197143193836286474734392977464213435792810535895691735857124290086740005138488802598820479977977109230304291542495876978595359816768595837583083661060044104423913350405763563193300150711232513562087321340805271420623761504222566427882295219138840736305022026438845220957390059627227725328349092269020349052040803496480217716442452920247680236750052688126952915958605415367890859145745125090888650635881386995308870500499606351195661915128316957108225426210454087350182345046334164092732721979083175584283755514180338073767481340519470333492151567290141539435496562162123819803318198930096687495281046535747429311149486621969032664995636810538262705952708110790545239310002057429768278658081472627369034502195417305554954275769578085712907417045059801769834228880457763932073895563921729087594999855876193946356365130342292666466838000055339563687095035275657514658952617418399921776017974399431763985832759605082138953194453324142530268378681759742563670744999653352906219203294522950490601903326245018804135598480978378085426902477333603944430285334727482130790763013436276299273050875835914372909786771745839551908594783246055085581169828298106104419467268374954207925711427114603773611604395490830636995615513645321765411954635119885457451396846944810349275682177745224889939891953139901488837320748033953109022023344197673466894071327281232414519129202334224796156396093423209106555680493029705909375498704983696650135351269714680809887317595341450003842548229814514235533769434863039812141577873143725799692431504687352889993509385584063184129780734814267850686211179159612732473987590348080429126415962050875070504535165281199797301772400533109631565242519989052920727862016391441104940869974554477622858948226497245084481319447760919312123067515525714046205346939468677280943219884605718018563114363573192577783367608113509773440261474926320670393276801685587304002171013726588034440470828840253330041477289735897789478881045817231678110591911650862003074135804431052880282466296757588903567484685278855590406349708054007313134501994671732112008547473842666680534749530430549922724924755678865951674509854734420840076403998890207460566682779036258440512885106465367751156019679588719029858271278816204010721288342375541136905429386817832510588836369203913676659641871097258230149316363392345276560692303237094074099070332955068264661708332610396923300660108563309329491147529184963516253631728217503070006577038472303791515727524067945586874725006746359309563366552654106646385066808607598186508760455816659566777598185677619545573787774140529632389541458238520744635361105734788086852065498434668603363807186973411544782933520755205586732876214473415473759616613677401241872563035604270484722755786577503888631246633839336089292738317399786521962878502909972524737712702913999467648995074696323276553777790827851468427853467439331003652988871914060198134569567669072331017919759219258386889976080550070689064100984228765301267597418787536195350187776936064798598381079493853833300562920929144811479261908655842662571654027557261251213738837833907956982153016900463281639405116990847566245642842905652889948670888665393181160682055864580645685197610439643617286469896281475356870862034435425061876965933883073531818267922736315444717231959072522593988058418161060349997605940815074654972028503349892010671587312531722355483532714665929709428888740784677939084469276262515908917168791071922916986570072761162924562797701727205129439042683964683550801004166372230423696573783633941737416773645052102859553525460148491864310232132591019433952733437173614212437516320495486968157264428288687400291417485582521156271624279842241821875725014361170072772158649302301452669697708955650348663614404528676894015270048308804553605720964163552668484707053572529276054369129821526234217937853628537590062838012964963153060993217014854651339757431674447798513900777589414922942305176933682045829332933486944664274568350429175547114622322920339469386155177836345680160662673325364808899500959748476153994321309034012508472145441258698196256421968087920920373187221002555772126084555764021885506954224038194754692253584320116475593182813984734432118826224608295727309940839813494442200905734768883282696952831805386413114756580955913702107099183209841291049519473408087684588381802976696309822168132880070079880156928245242174704143662649339535855979199694908872138161220963145534615596400611950170132630739714026619008892388514675871241528124722528161647324812060652322301047571840100964897735212198421315239967009307779312833441836063144422673070621107489539956956551754272679646530847010429466738042365601263316367789246634719915430814678493750145152481075942596592559637214037171776288368081040815773872691026572517859477543026588833365657532079299282803839448825836718954113853724823624671603877953414417829276774001403896147089504876541538471603398783674901685442558626094675541478090000489018348897253467371902320403257001808306758916299462110612799121591774068016819308088512546026082640169527055259804975726985691746298066983421844102334082157096780132755260990852909804371480232544209875707802687003151738479911236214547299515147484229947241483450047747009475151484943461509095583589235856533779514554709892635712465971063819693128529483122432791416075754944007006282690724665825865638204893532199746921396613286492850439842412400253010172287145221951606719366100200752557567380993957731311302192414549310587662773231828293630149585414120571669207330981331709896246816278374373087765652576539656901748452305610593164026467469034553889101178832970963103859470471842975225325911379199870144125061207109442839700308854302272671166610486895270167589270678130524816553372342725524567111704982558144251842682266263610268660169854861158633472962084227350832711797686336541846534055346753531485834606734717188819929153416513844571016407863439656071535266536525478182200078987948525272088081884614567657417078379138790088083249905691348279002478397907318086895925638161291311604442534009913274356447451915753822853641547141851857646143286698075713873467739336088570958996191843156814241710621857462043357300959221547073103091340782125735549245446932155666398958072540546661128471889625327733204237110651212806695643099865843104996473116206164503789440160962032905893624315514443425398704073088786340692747752578490179654023978967216834756939118904922454932358464096056569824672078227162608173265157963902991319105508800488106435864815229867410872329115039746577778846293114151855286061276300954138962864706855658323273455657249152098929240559873302580695369732837073707243793298753411782172038437190626281097931300982371346936372932464122649402811316132961778942013328949318670739824327041349284217254425955699951068419745833660079470319461893492555257990648205652260298678837129488122202433064260296718111005553160144070842881285713650842574657029119894100873844572942671409501296110539228620826938513769606699752491777244257272512080150291925989095351480328784241374694190947021515145299242069879445011201069852861406273291689586109728093541375394275497904912329322026314407551753166612365858885170967179361876058430889469821568911983288004858259447741732637485289126826203122613502138138843488327242312811170930377759609591965097849336705180258304777242064461806215983457167165030981910277257511394686880290951189183434240893585759497768023088339242859231525227912400182133841885484823065951055031518530845656935304355171663357243952879466721427205926757308411813164348855366217369777154628968807422633669399299181424784142153967901645964633098206872977817987187735903045144011444573958863125792593969237188065188762568840639680667788640716153653692735096891323667616427158903775295172672589745387402346702353742053408249045067264661365621087166426820436418378911496971871184903584150445595522837065333161543856747343983349101142524033163182940279838128807221589555505875504076281647796617192323928521785791051230592679265655204250731991567596221552460960199460488783794215328720740456554894326722482952046587177988000700352048272848714877307079797294953205241502595087641029539734407654772829627660594327669356752036743027507610115558323004162445745877750718271897358017716661582461824050451629109812188059701540218000358424468637684206671771797756624112045513159861641693405376727323106408367065853476794585595114641520909856310130224821271452007874806463396199020988184668305160846324322866513910101527686439992202892680264132231423624114322950314910545550570919399303349933039979715551734230736745318846762040964131682209012140962317651613709780383262815084474738834671958622119572746471250472147636659368085923279260223406669273947155597587092858831639261887702826070362874372964881282848728550005724530347039854567911289471531082797493599548900787056821754062723420736839487973109940536550688745118361584173166528349139412499596915908509279833235930173848219354684018092361901057623772892874213718825537085651706190091213644791410180458231689406911900727329331391619517991065944426127780393581161778594438295286591968771663236445010932712453637695758203551509060312734430635868669768688500303191199953862827612426683298197937925923883611258437163207709557924392123455672635137341631079101984087795381396402501631899701978674567524548104141781023047725083865321579695583071654875886323837749266524089374634911862583797390615071738764772997625412474123569181722034741354632002705503101045441926951190240203596778659540715117892005830845697854283397596728492908820759066706219238834882089182483762803341984361109158533841877520964262570622765408929591814111757280587010871044886896820073709363333006812675840141193056220406014129519152387368154038325547566634542324307065106724604669263537281359910755622732915653053334515304599267142443026441485915820520334334125806672296997801339061613217498272357328853846587446756368337422591667007490170053629005549842946922744661645444349682050127168053576771636434271491806861992683224827695515594477427921686716065452533504362170853935050371450697502734238734541264219450756013026487162493731401929681581794570490128612791501810632638424114347616205972752761633048867213524892190057047681423944483052951068646574880533884386567469704676160380503562478955578553220645385796186497783404752860819743981988333553794536082222670945671386745048094532624144922986819508176981266741970468331022840618162999673629878289377718459636907997376684759893993761660983302612503492956564330885633946426957285881090492166525651648649176874673781466478326199413738534552375142516481343445221577303879515978361502588897595414762737407321756574873363928283959646143110482450325994059473407421032522552570087158342225347891934284217772493010196050621524719114156453960398362981711967570284021819510603807114795335306314386150023369771864308164475514604305163000666795501029951319149373037837826929145374580492086908219800644731090165019575918661809231331130036582911581465736138251004967674740784721229280642157793078192860457897617355935564071968398062090556693801700427125234214660238014558616275257533716608536472786854979347450079730635355509002663407085420354858637949706605303148619611926649012634545048100559222619363096173670573517628458348963562105351388433246585037899206337506742680835956356874370146810962972175571648610656881000756276122191761394642834727707901474303631553169221269653870354720852510033123459388534632622788877812991640446736680792599033403530881675089726517223064645830880623943100368597256689265958595560909565771149421436988544082213154708256035088262863376547764873557309733876309689776236044868529084315815807069366845177486878854246533195163855175573620639286429977252525490930708691513870914418214926310624943375429782840134931355339325636930946134389926335375115233814590737466524546337135313765667692843340138080955328189187917390550001319616097658276579042254749595054936302821967042354236672419468371963524633351061418543591053618749057751915814501363373524659958908803201223562389854981003492452356918368623163213633236456143181262971392695946903269750648327823903597752877529503888025713139104322176392294891117066684772192142691393542508081979867295567939960451532498928897716223459778304209771523753667818122381292629005168562477319745707544497648815125335216873800954554069711909616160367438165308004712975405784947844553143898803110788550231109507862038048605989457595469446224991987603735600690185309042326957207103435583448562252852079474216123440822874841194536239719300822843279318157789007075951987802279773426878097793665583333521782225202931953858232070280597919325267474770778791585987011068661248781088395276454232305329527427199200572449639761725310922803329897876453851270674296583548334349168824942818775839242811173589907154100002488480171574137668888348545542366604566786697127880605643370036196192971474578056358680901027117571101032426742335373510445566794719738238878331571146930110011318379742487057172100339459332744644268666734295363134227326806566149682716897601409534926654700199774269952999286464974101774681408909263258659537029966065872012982879977843808593782704239487349732680902982837398854560851330879481834421505326339038244479553850268730141251792557832442117748311246403719236708743234422088480706182609990670299643091091845225337305975207094983006480095376043117147667601042873194442284747589476995364459034230414224686598313154818646236059861037258144689977420617316258882116486730927507700842864359067286290710177741142674276016541398375647243525826304846134646695412306071132468193419726036038197533629333941729920808841060501665069970259334882252924507556291915919777883316566760367039831193688522568384496136706574424782868025058890731397577382000510608420289454999761132022699332704974762508467859322899692351271195807540543731449366831808509029508662301370947962992584294973705989673859219098356266904673966372342977907386479474893566944743999263003247605732054349080274199262234609036783749659542571828819473123975133606995786567341360702938379410976624994600683580226919324924873285509461623186094240739339753541844510787945285889059987177725096403957241715819293871310635639737678539440604816484292873856566177178076633387791010354902265030691657617917385433135472638651146920764776148873286119201065624410979409223396687259170452098153660821826834267686951282126975501285037091525117818671238343897475065417197384933691109326088081713962285031775916752177630119343742324753060879352842588907335762823786278867679434555185613839072855329165365565069848854295220932976213109351511427433264027574459908850784992663843483066537776030089037879788844441967684684292347006352171407821464537907554264976638407231112141301352687837780960724060407166915199922905850005674312901817551412164629458967600895075808152493015597548672626248900859856994424375287046519773740903979989177387194480540931749882719572363741853071846936074006379143398591578956721518278189004692374040969106960359370280788284696769412247682267454183247980694108254717265211996122786350861513403308650767304759069607454808138803517573017000518014592138176930364611663047765656836698090137403582257774170655458224899227380830472433328601129138483176700404102185777565483143907776924147564854670728871958381051049146422763735558691882932990918862201312049582784649308593340724819296830851577642792756217844163157721950995059927322391614524475467137672648596077553898725542247261596015221466432251647605684080692265374875293441316927513343045994860994533782384770292353938663855349158057865052911082355053048679159455442989402118633562573246643845928875435424962583462995714119306706265029871150153633045276492721566694782554682196379026827659657907931648815633406428794795764663545945803134712716813859326941257105572982463162608654882574198159761737169834537063512315688823763440736347310660034423830525228623716400040594408534608471166997344001570204472049784723689879417958467037018683828191842402002922533010132017770378572083914621593226524829063312589499788284030673643734928083449110217746389962797038901950314204163643275963016589443027803859110862614776040432277729409610563508427590488744642396514919585798044246968471689740683003196503666998524612724664311167535870769898189812093323068519553037362121866642676334416303331081829312751083670150800697110364952491261814006927632401848956873908776813699671225082728268148770219689316387718027312135684295218872690349182589320270452924133551961096068911236544900546285125947192150206752595806983519594808691238804903356379676204456871328216984513317486543541834913442750334181617943230619949959083319622904595076796137187666041778454839593983745283349746660020572555609951621779565671173152220107374489934868812916873719914441610553720721697608002440885581367540438141065817846805090811989196529127296554147730417550712281853524852525413829638903498060756095835677627121662438487371176086484318827716384434157887183159236736265275655871885281838990352341442451667695986682636565965366397460227672881837167466285699239725769975086940851537954690385371963430444191511076469332727596697524560368614854007625324373415623058883952173840294032807619315258138204525847125186961103063509781492506381185876938424244566055968605186822995427504002435975978588627538709141373407154590085755938360434469981546624599761483742806993128292679261053558799042017685817606663969021151250388306727354676949900863455086036986599707989985260872284165856352615210700048355913585047296743514241924204304699846370463919305112777381236992554323011295322457382231764180838974007096200225995073010264555718999433667671253414147433645201160002610821797183792368613914303103518306426634985410341455548408590290351616922756560478260413666160503668690443927760935007227611719122308007937155331997818139121164272959210426606834214217076696010565946235665832396688051466319391146066617494514238795048027683370145877592367907149175694953850047527687250799744265564698630168773102764923711869233790585406111426047656659146474364304132441803032310923177083295713040227336163801428571588100571173805323104943604910781964350902312045208972514509127039517729765306916618953604647816305696811481873988623981617159340796797829970021607467258950380223053382819450975591303327691351845180245210564917530607486914453733832067305253468681738382205660870761552302963706677560104433791719331834277263895469693999373568979784794928356663016228337608743154426791286250012645777893576663724208483763071851930049638118376502282514684127319878168308058139164594601369283806089847695508445848044141964384666630252613962837436691622608602041056777339901443229858354839360553118938264068545912937750833633490864329066544188560525557407853833277010773270760130643254414368274986111270317525643045073024985178141664937632027562012404673059126687672336340914943355931510952496864851079777779669938938018590739179673366037831955081476297543031743753541492798535336992877565776758492521892046229106100341433132650343010223303222587837565471896506493453967407222188494818986504222292261875288326442910800591819089248529493175933738511791335836243418477943007198375072727721710740305223224038862350728804461180464299460086877108130378693689484674166724774415991655100490335002356483559286658908135111201046680751316039869773090868065627404898111681483708584030370719275038148807005137222554232748317885191908398868213776593729011378815072904187392640375644310936207953550182913485537730179604826449072619839408555024277397362179929600746187191123533133113380223513174988043080438394606814254070309665577178491529183330405094096309143886690605314164539425766414496970947727539706965887910577622506849122895993607050706333244104948668535174192660919556439738604586161187917499755028722776080113786821304893505418921776275107759380666730370737729945299989972469254539682746871775264716648352719998913786730447634006469837706293235098667393810364784741005695246048579568147078253761463129134154554689943766945913974979207974066453930838043648396436489236626820808414847280865130854245923668141903282211290324976496959512326102798458615716531127911019457378195647619797097838562808687532084995428749290682538141526701550826856141842677467533885037581295921974705269164737503919389780897263409349578603381275319241013518102058980486327671658948099750397861845202240243668690008435468326330252340215225403846249748694797296996446184422792841268386174853769847864796431901756980935432096710216154083983578348012474994912490841421795784550070976164310431272536026182583710095717281422027191129372371598528186516944717426666955301261760498918756134163455392628102160338528268617357421272625456102072877983957941697005690854950128404380804155507155363005961144587772332405055820771075254496845407598100987855308097118354534617322956269852341180681498465162974891641087794741480638158438101264846475735431377526300269936505219683129526567327456597965371351615906669377924295117214806155143461489082567756849698386875820710287203411078843050728651036740586704207562880362464211004001070890364548547801031144995278201340492945535878835228406463052262092495765609393591864801446112610588259730686594118711021110164602558379149130040722288365271921615994425939028598990434423670225858622079807632895606661221432554359171204245071650734480364310162975795767976485475979050337437594775618975165267807640790235395705251477920593465328821215442671082165821780552536030426491124195151082539778254193372909669171058521046622902600960818190878887371437971765662833053469992931462388828319063692519778069809277641735410945849547084731858985293291418097691015315107770143110976237842180325190536714725520017085132820886613402369953036152773318903619751373018031730934261614062040424887970261771748987491179587111184575527369753663321332580160150208707726074698077584321415924710935550249483279898554003293710544294442660651818337376734426749987528662215729122890527591181098309710749757360963355750870345040999284430447459052292686792196804434671340940153327247617440398907814078204569781490158767322809120074817450825832957943852759830586372354134659577773499061660990242931630268162376748505486381564689723704724781741318598995529386420695617967018617836498302128842555031921462003699921337793178328608675722832293454520135218511107446227304496158933272730847588668207750022312846260095505873537805605104619231517048930577953563785693453071805101363630546971625023989053208958963068902479142306531863391758749085826896961012244292210638078414355488510076200785611662187807186670949782050731872106248054202853980145548579524874131902065962952933837091061305369002296412783657006108013079601178924196860207050803882154611422293614402561234488966513885593215846934428389277664683356732884214916946838167820866797535603650723261292734922578538361417888105883650488397913403267799327411438361735020472225779730958845353596590244189560922557925520275749351929482420923953433147621116973082760546685565045247451535648914751284651895445800377944593786926934666386795320951496888893621389055767388128492906027032534561447700466687915235481638875911601000766925510253611706080388476053170270814001927869886370624541873459846335685394729388738524961346285651828311774812581367577338437814550037492367523245715830912918468430313662168704833554544090864591072823890964145800027695063803451078298319943886530743548933279508673449230011086014947107079044719275341985047743712020215715015764969100490478544878792709432994646257464456294678909597561895016797421756071333790290980806091492941430644345834312985391640072111211654131508298992217279154674214546881702712866924075318914356332918746253812275268036781070242548015890536743268490672565262227361303875394485229088451620802419134413023410986071693009230332302571049439210920135909999133964145281664462026811336947427654183948124969631583911878754726076708110881247754549994486172176484355203714582479378151156837226757686814723003674218555511672302819003921636536193051868323193486945982729016983878594414592349875159249354428305619864243255680145129416590220724449571884033305775651756600055659403832331490499344332586580204183331916538827990755705057134219128281406470547491759410425010267181280235805796197016062365427357000994519279548110868894246160301501604042735379092817941133480494955648086705372550436878087005864628961569821169874181798226186635158321595437575492625790036523063481546805650687385623609998181154333174238647331640204327649625526718241090666496551779111124538648735774530781129820810167085497862138328346330677271926863158095159792288530256941148166218342287163609550430265920449092393429734921468493574075468742099818339913533194602457618037699293805653583289531732089051705102366297534106392168193007292001708859519830392734136462983556983837874354401644835265814887105917532234118986090853156918897819330591054313288294766504065833544181741968978173533485109991477622385993287636993320168072180369573593593796807347483773394688602855362190185625549911666824514409132864938839610631168280171595225133576657180309003430903114573988446386413326474650209918543328135282875448602288504737828938622281978834518462297865473050547544216065570609023087017558134248434070036733418918550863423401180707697999263697876949225523799495157511047241212402770870622646060348715984936684421260878353656389520549016588391638785616213716216772457769922040245124227640997875999597375836414571374270047165253558952893096048531368934826383710177058763171351595398805998807219152617835330742454667182813917063828057514620407903427787976930223027502060890324289688191707496292525558954957617923730840759265882309838291608827273068526025197974830615961356917781003980863373769682932227354667402240432035546042767168255899506902467039326397254787886342774526138007757020550512039301481751261222751409760866537959297709488094370162455524707596055958970673496617589255755268853288243561641961217431604318139821694233015055630686099345666369119459792377940971140162757775100275942598968973756370399461316172778869753896671906672167073700920505726793846952714224127460682206702567606123565561404402450620680291990855623303461161083482144400377425236350195731771612634466137838833498758158192414154908270957731101564651162833178879051320180877509175467979647395434258705745145433349735583253291318776577432432283053457492517933720854012322539379859556301037293986717978736243692057378242963105908943764348210265337680047448397309614179752667233448733231647401036074709682298873292925761833099632060666561400254728640010108772180555639668134740810326760513852736012803460048718068944330969655489094875603312998159434981324186046912906205760431193878532143525469919160902651962107910566632552382554095389954787003338061764201934050911254522742125283184501176132589102592015946915653263537163093784313042412929414511737985856638982288642756800396659573403287859795296009443405951121796133676187154896283563528501738943463407297904576523081496847715275401439187780742034160568004270410252153791894516041381558318293649584944133174318743357166965034472043607786410225553086270025438064095746230353874243549044592443980116699932269797836699023814697811539763040995029734981598254089744774880219584590443363885171501819088999839530693414233369607846130674422374986820092820436581052072437354217192840193853638211206633312867245073013284756220418542845187157906555230864070389830231569143901151970604476039053514546339279942133019556984293156285196145672285825387778492742064563954779766168432918120555603173090495350278637104515535664943926773272332727072873157742975342564962996328926618578488361605223994205477045718316362892718083878772670922103637137475830753237174295622109396077178343615143524362317116268281057825830625122499377710627124776888234946215070402926058684609931131125209492386645033683145834789708336180629182311624724053373495349869362820930561201185874095046083755132486903523484582054366242098027884245823752464150560308321800945282967682707452832120881289939861835937192995204127878298707786163872840894036370042024465808258732856693104383846195154975773004140346426176465067336670917261888397254375250200039349145147407053980467119189599921122335294120750892126240981871845154515765940364683175371114100446738509216929587670663638476443451685402763494004032471134147606794329177554537462141354894653164664804019546903530871010250034554364608507038367605719282620954390361879236227597279614329390964008006600317098144000480916442101966684672147755793274088171663273115651472015588206843695128961645186199217036220132885014678662086070630473027654521730273124061922913833188043776454584581371167581686297150918299474624284614445850987293463382076125127975865854421459618695074899693704403908309337866922866300281055279163328015731828468586574294519803512057866297342966563533605992514808078753300855355315706423743025826854179802822254779299055052896954229367472348744842371713111219977456405738699091167998258561701144881529118511157746899867835108134792436478563186510750126591438431830221922139601000609341192424922724255002594767666296627566666635235975480608110177220744629182556152096077514539939543881975321731462189186629238910543668993906729033604506730064073476928350561512842116546917687936775695733869184447020123928771175418843028069130665428813562484512620486694897766417570643943222188908634648213836303909476777028151612340569802040430070757443914016527933011080293784572443262064125182257554917520086032974331292311960662610936387218298137445231765957696438415701912267497035653896633619596523566786978940140674475654887828695845169779293086909225581609092605331954416297946631574113359634827737831225932344720224005253191414614223839662425387747190591649114412544149549000519493806718555373207513263952096278027865699337838841989062989029693467239674430302775646458755162612178141510910685469977000074564306689383932153464103527669307095728548972461597859098053918891402385963497407846817475013817860810381254259888751285709650797948398409737596259685167443682561476676068416668158813218300692944014655439532254379456623513150537526381301028635504111853367827129017329149604707936750659574849352321045046328695713868056650760022719064312990266308449359105410999395514532534685988403177701871546152180967839784118585187970310502240867305506146785767028410246412666627382398436004484931217057081010064451068022351471610928345064360385956978289643358136341624310294678647984109779047196317838066184023060073207429291946204943881505591360318774635010104483615445444204349750184374670641561967183417745251933603717141272188027975404866636994399689590992402708829865416767530100572048885518583270872263529046828239415032701428442276104880222639272900888484395443194785389429195639636801336073716353895513637095238739284043346945715587068146116726615570298733156341191285510290752643118843306501597464396332093036336687507308916516405151138467836882797988635091201124012564755397087789838334465401146276041878255682834767115992332606354670819128548887339581329128907091814463524933636356900593530949227591389997712898334644931507405057019982571141815890578197382574444414990127551885154495942899783445049646213357739250575754182161987995606219954568753151333435420092453143670298726948989673539643553942083873805621086541027188062687419754451370410792100572858787489803681090473552457375964291637361483728048925536525485890178245780137462102040701664042507286829558611204106500788583016158111736280562332843710187384200321479531574963544086249481369618699979649343670128655314139113943998714459771704870312152437326660135654457519736287556612966253370246369136789416553526965832350431908119490063483797988570333985596611330559245942345431167147378155094451787814388412639860526948302788580580089034820430780385965824363608852949991758673826653518939134641198685779407027529317681591494916052231745519905382072280142254800985141808733607616832688048685339556340401454693466930267328848094817419774449049005579111408557722037501120893191875948439983534916142774789198427156736029816875863316068658295477058478065727714083670187576727158135461102456487625832997450416289749766666285916714395619635051643102493477902683732640978686364231463387859509390339602469439683833770585430421781405621822097176845571055358350465820895196502809068645665271177236445616968026325361900406028361907343969866019031771188271702551712819980481197865105691418848421954253719240348423092667801607615355427251331710826472900987942711115179651689204748387192207053869542802450739105619255178476001112985252862371945855602673350224582272006367473876395665012735573760462368856548234633182613861372722606482307513883166517776926833020254908689596740084120550773285749456014594144236360163981552192147068676057853178910140231979508823484504628709525929255514499419336455391255609382558899603078461266248896846357836484978186969178557348983248418725066914116037025799822847146619451412323100166588368591113636699322665708517239156006372713753231153160635710930801560096275648292340252240245793471199171021587419975184876193573010761976011536448712408175499270792740547533782043157546047593421739778940285156416482616507089271303803388762543807202718272795265572538523802298110511474073459666473433349975072098403834020950664324576910009527149608620998710273661542615040496164008942821729454123299636218968135823083236531385589010785749053581621185598705501413731762399911607076590420817413693574991521114797596596351705235964052596727506330961634302622986542479527193522401178432597163417575060899661790466238535399528256289412550983215621336317770610821949151838080396117754479065884331954214751133352709477250191070198404070748357678771780610320191360843315799906867815199104266713292049200053583883932613033913186982806010011255470015579410909239030584772354296708952252994244277740950266998690745821499070426362662434124447188764329907291801555741346992255518350762197759875024329065466602498302554155595061814185626015562083134288274723139252170420322913314418946161886551812523358182901255007386462396948533095917307100934838772311585940707683600214108303034884144877269043590034079419366153567965199920963712541890950233087537461691792076960338675054012300249515623726178713446890013213560111191893334662585460577296699592179705420557861770672457934559885949239997333927890735176341506490658627691784701069958143411350435347664152580336529021751628792990889910752575482131396307892614467816084733362230091910923018507039589324636650985151635620107099247669479327577878217978438173559308586003218069709515864180144679331909493380686041857929412891282728875710770731306031118164604273806681023974535037544955207950253462354394422713158890158385801885050991228869707539697096948786521768884842435653648523119005930653000575121513343296358794749652096795716272061852569936984668273818099342885381143438525834100368698465603579693817675874092514407678912738754065608093771656476372651097085456269537718774973806702388860952934622023672408010331292943464923557913173906665385772830584109339797414335469132793912456211320225413135367102843822630000012363951671584273290762881281837447574471046459209719575406028453096114574969247641873565323379010035777220494765057783870238729824253008060301080534265894847950249504000968071058812557948514276544838514729678159627238952952208283897421104338072485631558655366566906761599522702662186557673802344099939304137597810989335756058578042495501132658562612471710147129817317830378277063263979479317647390518743585752236645171887710936596317146468008345053484725660809693375715135678006379961412729644970984903108622087270403612588610534885037965143299955851472331878761791616616254589596251169693022040280468422915086378438502819270452199068113914377010635011467116908609925959666035425601584750105378285003762164750487734073825339072071420733867547497253772889022322687055036873752262697336164853252906965059572155793673102806278248179457220984018488876506835577296423343044421474785944521718993678041009756260390781269857901769492979673567029146211577037650213577110737401197290329635754186156264978806937417289596721532490609324220561532601982079027940082051643715531587135786137139646020498537653042615408954185329644671096522875385469796482139447519830252593004618601327699697471486961355883007224325975532020661756412118694795140171645300666422425035065347612412694747913064961077640318943351555623856167319930955513114931635630018299623866122845224995764948661516690375893424232256530392117442744266008000774941219171989007029249164947698162884217952819438494826175686412264758949854456533361070816587977772735744983076688704809525685913400766442078272078873930149531318115781063562409790559386346499220739357998618384028246532953565411398995662972139550413937819650865366382340066674786548313270923453118550658149441164371194152235651271578767208751303576619526569533312883896354404440183248237694428581275475214909949892664769164477130227005204871306641645145535681855132058619494333797702997859324715724222157066720699453649407675617685065778292179142417973670066176232292246908539844449200529674319363952039780885058065949201553348702097176627563519721420694055791301768317146241696269967395179372039574314954847196065698478136847807677067858280986280528672279209226470196202653436793373971981441311358691027031409411473588304542952356438695327739725666715802362315831720117407469930062302696077547219083944608155568479068260065162979491128028143240998724022705812353512920653363760969004041323157264315081804445846271719393745447815977900001646532208861756894201741081607666004816989009120332504820229206617843467238660337026778325720609110971206780305086353312243814807588891694415232442603628676704565188636306503046384807227648657574063480676178693696689239130895911316690048403768288530993619998157859367313200142752274627815745348797087910113820327091194561695169350935354077535923374095682423993474667212499392704812646547601178461828797730174411587711292037512866160231965971451310564195804685998893549764712651932048774323029674245034231527751083199294316165761151529293664338262977968923144267548999230589452415523028002021032980003054813325473196285686230912488827451443084248729508077967455914616294423956274348158466170451539672834348954402393204475599634328284230679417435780313126537974750457775300586443025702931933577147344433828555036123070531166516015126390180706347331211008279937903945890161847588363152912664698534732189088499078940486148061131086680109144401723214906879769028074069312454699355098324674128650990458801824512391288661157507389122167777091421429764274048852873845002091581681389219058855444192694697057116660058134507795348027949371417484226341674971812207991877224588563783329406896827035113762160963696170811333810989741514024076711473981759535938218933667735733741974006152425454057124962959065844112795552274425428411813026922286089262268382322173327416710812339483957687384415761641993001408021177177265761577407834400773007429136150015346727309120317194899445881160326794524741258978825764865533192017363936132539754393100737302664225795960917168435985492360781302993296116224211539942114404576599742929657962524592629760316931276891757010204756549603307608097524909827492663494976229808305559670400557675357639333501334203825366250755734585622990033554017714074853504915055586811772965787693462435968860293972145322021234971236145827652225531085693670633531560095344371741442669546261088921715696042288250094641537754936486235975446055686029240655428191678894127405099532921531317797917627975150684876365605463566841545832057090368355052856028066051560335294928557072520302509829667862137695202471313365195353832969575540335456542020888071734731306454303830656364572931036970164942441598386066347209303758945991024087364040798956597815032542085538167189607730902483527569287536653744285511889749932707423659437661971866412437415773424101434115980782252288545065664191858657053414225643398175394707030409077964121430746758641668507727835138359957368011170344319664352755579595937004449290147382341807013051041062163916960533455760893974285298725484731329054495085498209972118490747828551405374671829525712239484286795867399712568534912330644909098756744281576579536925421373980682876753393463124223166448806285689849952098159024313693965636587664088818516788863997964783353644035202710932388386092771562166193209770605056699226272369574869660459152370159816100620527207478761322185638742539004574369122061794900483438036744634815429825438369193402459481708711682521404374119851344980557456324621892983244618949521767269194600487991343528370407484697087298569817290742903213048201552539893816175000111244894587849776132198916643897363465393375688430719455416036885538066262851462305244988906365471002904309857199950670611488696480095199909122322307647708950479123241563758209149604226764442256405558337504321506785596410902128803020906860281406057267960316006065160682359400298931096909352552040569031254421828158773788571630875124427714652058163654683775964420243420203359473518717913854229379109875650606051974216539017917198101534418235823219949569152390484613890183926077334873285294981007646025291465036173861125946500347941850860806023034899057496219182761132484595272516004893025582823509799059607833428595540964386893495920392124524566125594166830696741021135480500666086204242111277833698464609724119290288769895055366877455420863921768427702149295847386066999451111935363593878424059163604395617654171488853995852972281209457476144873180106220220832087309894878387324486723850296980985624923614402746876796057174513469812043894229529888072840241670633324942418130447429769130700326053457936307877421300797688276180027084708879123778410917910608101445277186319558921231088813291666540374398992956323505272734379894243152943049349726197052115408304648257124310395122435921071755650726652893488464183464664740460673982669333821559513773217517034276206069430855471763421117160387637920669959232376816081972502908517117039772767466963850715362772370390779280594358233964308452477989509204081283174723128532977484694736663033747004905510198604964064776812443518174432175253388150577863026893640977431263139940785962129990565396670723593090874723093412447885206761543922362121100112090863005155391438084006576486671578143726027173945661396122890605462369840100811241734527184368901752614142693227198361539116873970252893692865109001921852875875904061896989874155624062448606796473209606948853514576005649955881919106181966491838061263298567286361548227794092089522421571327756964894797130327290564113121825188044934925123170192150174890018992838495833393542703700252631734766406416666860486812967548099485813231563401907988018101914437427360996310006616845118535104090042588215685158490839769338056361617033121742732461130324978853273995993596771308709634049544467934959066008191195768665767484335169602645668509678905237008310027192501632145772777953395286292656606771320401074476450747843416444925837701948774239757401307654686190004624083663423055979248289041380036645535401056881427858755928950767201627935880440576856021993101165634259417452828928656086725758050317258911274332612454154655127655301409224504743387669020545988375156934063218995922049415510816037706371923875216929383758995165289431366745118825969580181878838100339293740014819738001314429684573294603982241272790837744801860797373973747451916893202202941718054154743333324596190437867690419154237158918902677414832207091986136251589154665779478096309590898420402321986704531528135111763191003766851786276713901755708230990780942560990945577840308681307589370376408277478424349214564597625298609125561196563432088915884709259993858932103846112853930869101779194374093472181299454408964349965206480005146630306901536942903858415851321756837184598966044221747599901387572336456183648541282896736001335788880165659031095057375181793757493626111177202998100862494868071359857992802816464662199239265452120974463637615189066521697749270854574250414377141632424327411976289871204596958838149481249778092011309767080778991838685172895051530802575441320994462698346525685746547135088127567903258599823083852212775371974514298216975275348933979710011848394150307927485828134412264113451478671773923408347095624559848853300676087855644040185099933569487774775351829933777856367122003043678803339190897778285915976637175583637030920827746855889225752491655726082612670428801052525623251852940752280514902637515637618258728210392945789879850510295664329482531089296383023893047119323066523910948577171534683691923386934996982916417019776738812515164047559875322712856806400926317340867026425361052638588259318281701931412613517703955107883396394210890813209488095519439336303052571121604835572938068290302824733829691582202683089470859456984388766750326319785301678753785173807224718077334467221401312107781095649815672543547443322386609133969726589378832515752575899585852997642497107911955291577182684877323558917318092416208545508121959816342432224234307227194390993655284823264124920723158353226803890093024147379606882258470916513397087274804535346570989740647280460655323036940761860512871465449233976897034124856646741954467267419258357165656724885165631477755275817129296807471800684862454010858732425866093711363553561747350687378355561555910454923334075736320892033836001575807495841902973516741046674706716767420468639501748353916542173664900068057521360982128405041178493396480345735977953971917240603600899615833734145461365294893650582676323152761799879782589661805560791240061459154291367546513008131897326762102756718803405290869245602186317274414593149274818646835278960931590777413553047261571747774053467013562328747893988335304141623100137165695358794731039204497119244323891582672657669044222350848122113175064931554631488024992478191581814103586245331775403411589969627823243682463200082126542188044600873737543749592392584772029895559410222569444340762023218441674932414960170172560105906406825169241694505932388256854516219059845510309859361044963162286384411122067773991854640152759667159252905181132662594516367693942329122593838358933151786366607598655675134325357596481842905166238627926609707106409527552219761081337180186572697541272978825592770200617300981095923894484259101118342599409832290290445040619817238562048693369961752727830883404105229909114204992688654530170935738232966336490648695234625033345893044672407165151971366523996651855547182108080421667427146715943290590406584434197476967467754283876699304347951378816397523268914538482840709654434707916075360676967267788045178562680799558960156510476890329998235911896829907264326454073562632814117693590621603837670948686343850688291187626377989309254517019826635934808506074639066992833265054265231886172032201795948005647264788157587198372992355855536271432121264688609903188996292552609795911507130310113820133041517762273461916093355650524195166615200663992027486223801925236861816725170449823023447079130195446471291312496081514871393026855725217364170013571838931694096091908838826452605315969028248034577620419453356258835801173933437582087955125335086812879777620135707858570687419915760936038550139709727734009800239395215755222902172356107842173710550769040875911771022063139602641543149773148558207466622558756944529245935768309543665383677516469129876526918085820089741768865431921673482040032396715729618109401291708773416133782157010375200408293308021323600585087895840865739597509252131556841271982485123527918203332895795671064752892707658583822321320631241173434850307404716842217054232051979412228772420238257211923068113891972312927826880845436538451782715503125315841466422171057172402228367456048701352394503175712310373000576871089858810261437105432440029599870164579830873283104801356676051094991482579692375405133090846832096106222409248759982033313272749273629711525409949088623500021792505612694265837971867864054963126648660967017430801189154688403010620211197428981553216461492951481720284694593882601691030330839076699136446397100502289566184739396366472607564774715481363989007190324833116012337914121299504100265372822795699006861261672685385722580567404165817329027470254919621246821584990115736444073598341443519489802967683198522650542318324745902395983171354370149746068364036816705178818347261321438785499212310894005905889055484610054352822717296375002176434804253846061845386762795558271495941606343401085592529529253684246352732612981928506487631118217859599451028149154824937825010528125376452585757601595022008772552636514299367261298466092688845446814484611994838243527904908827025963462117735452623991987141504556715032916962151439924912383334404407692894749389238695932067221165072456427104846570163425336066068139376582530619489484800422883035694235543111495930037319826352075959115927206680606813147754094136182317096444264928838583317017062915183591668748637668547375058976893854549131435914485164105911348230524918343053489001562980579167181249402740559657342652018464379387734437323697703460455235885481934131564634905991865113674448434102686129703137814202755700226086238240499595451547647748594459148321408376452240135265376467712463682704610669325086062171062038562447593114732729592682441313166626757443844615677878267540223798645130076827352696305054603982218230125438190935906391002903184619100296571959732637060684652002105258592396396488660967281253791919088873792585845199897868267804145705036761873696187674504137027206420810121721946757515054168185089809334122700342008077856439816915903008563687111270523554694179774457763560010982125167034350462929337909053956585987342574318663641167448553058277937822441529045548095832080569255951925147779264333160540306424484701540323360970634708858362946577956737358401776249066637567771942191037602244018706594238139316037507933838690344657086323181150241040947837175290920330816638503357237079300904122500327111719856320874713745288927204758181705344024060776439340930908969750001082202341812598207941666316292464256692764551210022236960540632718945354036870500584206746580447888345965948232974357402118131494338788036470210546245237965137430504779795695385787389522710372007233344622545948951219585753755479783648988401067275015016933550380658104261821035646538195713276639601066874222818800169640494520141582429471807351225387540160719502697362254433524187249047620529244880056589812216630470094788859931971552792685634519029914394506986130571830699988856240681538685422333554778786341211225873578948789304146192573231099046074405689227393332017159205836785341787304959000628581139939926155747654552768223653472266533377491835934012913704676745204378974217803435838583324107282711346625261930879782871373623252923926588027658425672538397431492864371071294389835814617285355646393900847057962788255450838060340115638570885072653961428459475068046671483299743213571213528656197503149622748089429859542447211059756734771191799085243358560974056023424593624283611881380394458196662438951337258445299578695700516462145286327931904971989825090707690839745825672333462766687840487265464568646613350886098082176992400185111033766039496891750561588632183345280265131444734766541947961600378470652729331562917905023431861612581342061619245911053467373860619894244922344839585380379973804815567273609603035681808508051913832010168481753047827362176104129665165518371343832899339390154249734691388674225786441218036774055610386657548880014196409716585895876414376078230706815023257030967150655179601184146149463347691281630261860976703984780426321977203457769834211167661341011112423891364557836502709187818397287296953114580931287750846686808002221603679019849760544060784480272756821209895822745758726396757419237296778823206028221386226498883916169956166670685851099016020440044396587203006776400793521502498088718906566546289926158350031144413971835462066847349523886816084375897741049615933480649080996211915330860153401843908634244717587968544405141710195955546344646013954634982998628825933171737033604348078557596176798233904673132994693368645227740615324556240608053841155217630673757338410776351929583380178156746354153309690371416656262255552818360119711617813912556231819643060648924879410962324151802647104361679814570474133690872231104245926204909467628302395158221253858453570509579035477525168198556590342665727082563322081211585855987821392522302044078649598612015828616026442834443593926173360299556872157965810352026810421230456693500980524250643161713619094149286980707016515983000885493237996662600736670454847429288629497926147836536103670935944894050172038522905545089558330636735389262824686527839980119904457128821425436708911961919871143381962260722449475971976533681544040163579117200671091797773008613324497835852326396223183672360375646979256817768737904695205995798272202776439547485036153321129172506530499694927122344367764942833132683593938855368385062413357517382764184475241043729906798825286106801677982475495973149515957596969688194974949217363493424276403450007380946057963263601106025766767230111079517758370996871387443214297128035658517200356228116670811855728446719529435064025040495149398106813985973494289351051949891470810865822962205513892107063934068254951880007887432092610782613182637512770299785135649420403155318852041408910700335521089964304744452457365494860411792142688183981127818293010642806725990407904988343619514102690828219492724630061819525557053604061821803791350203623444435506619496482504284625643698992020913600198685629686286445650082168685762241910545603552280710531427354045672189741400260623289057834868084815056989113276218197176715308144186303673878542964721708271640427106215293552917151149027434767606064905987548945592500641289286204376314639593018076137435243540463018610761923072230544481171527196903010785118916507747737294278140936699975563401068015995693646020378941996225423863522302240749565276823700279870351683571313880198089208707603735879213328456376714450636684291103361609906827609544829465462348403436083860767127032831739517490776639150458810361836320239806609556066949652486194917263210941098918019313635001170125887860871514250369962850740890578371449933787468063760608076084883017113298849555126750799960852290872363660142607327571994465081398195508344969773627555625902036325168282848239368135307051831138202612850553471070024973997245513104875390539087930283263065930382431983126890599641261713854285280529239024093080657560034437993120687513860366642945395723335741613718877607783777713922935948248518214971612982328957423161193333746789918737800320937629050257300813047830902681473962817418545818488033231207107233558843886052102058189526211281467539856282785416896452758475831488166624806653106701704399087100402028279340344563531438558720088289486558254656071910689203742884891523149520442776661540464395994566044754712129554054750211564867802356813212730011765247459972909396433506600474433488488684335728013203060478848036491284047083756180928982385543070504855822677942465775667561496872316244745961288516479449718972525797061664361330666780599004645687885582241078683833372722415868607609787861317032246149669190006195701641440617392792815669683198117325857394997130837236984875356479611185582037730857942823268527996633489124797858958525131834445365328775862141040106639480773576577610993126350284718542312456897853742241488166587897028413740652245137458581263268981739068454730289323257111840443622262634993890437840389666470960648992942018763088662571290870251524851006658598735686730143881268116410989624921846604948415085000483046842576729235151935863975285556833697667808209013150139132945113118351700447913744549304593729894201357721366023073381700244937946257986004667518876757097554518888656847367063423154931883169128753958986110229001043744580028933478476062918082931307451328830654771364392425102791136384563348551302083442741546744416904920236890444297764192843020933164124298295059855253133364341205160605064743124983971324025221955112061175502395145703134951455026333462816274793527941744441825815786019445310228204552180785877648853226148677729947124023425017313358035435268307041472472546170255604713496825634927655806344236887412625456320343934483347748504134978782265079732797968913281149114043488377711635433064391327921353058646289301249313168300936721402123403916822262963270658457926724714924253916906727623285691542280773584054648645177648660718524785694169344126575044481211668475083921834754242193528979516296736705992619018780135786345087364314494580661039435558839324513070381703083944288764206055711153530212473612298733542049546690225633831683004933321813772293208795638087706993905220083014567529974935596732284014908764486378645658106750519773396990718303356287655539764205831656298908128682869831018529673053762148538616142961684775435734574813712040619714551275473130419580009712871544380925098578104528009075479546587528068037571246049806900144236513378501118079744312790104040865218210227870508296225358908581599256000926126542604350527985623244304961770728053710593512220657247208840956486120279759165877591646317349106949278377300877237609406853596727542440125231826163410700361006351744589127144309226049521989827068238069629482595587202405428504070135357332043883373594670949501913206302258058749550609789002490207298042830590931604143593326665492294856652263470566416637529000425228424079871645762762892752084080646941986720593036639821867609905823921352658607175238664822497282315305042426790921136459775042219766882008829478604645047654259003304617346594519500752864616759574753141348286800165442101161021539115733233725897924034305858398153493481270455313554955634334525915226670942251552062650611428207617575042303515935803529824119754832216445318364865474761106169162494329445379759908654644717225092116501351292573808870210096680374036381589529382357411185012624917008183171153684813017000405906448531533958765976181732478438963790808214302097947764683107135533517550771140226414910773134003421658239852964501778003535618914107632728150683653802161642931394089013607264211455543340409646224851092781293249266633867336999970881047236519144971546132404142472718269214887857303042067675668787547754530366298498394456708201169060156111146159234501663138039359243825304346428781956831181286369087649986203723490222038023373668586533827368073138331141700208899371901611904092979385032819529327991648012320428705865627706615192984187753592632272511761980152251186592976317025033379285065818349348155963281317172411090652816164807182011940979627097820578316387891267941087031922959431230393409273147263806903610893196000511371348192154066991928046615527063642710656185420373220829934962836070692667029735429776805663088871652383092115926092290844791533089344755448265316225422612296904170897412315483983270553551627677918161287136243246011260433794787227748250405660554987577127704912670937458715683956457845393780490169467152864194623541014117390442531844411797761954774076214117851894431280444961005421817705794880405907025995713473534589301261628616079421651578434717699568094970929062756501358854407169751018506312790900091613339370196002199460209846996680592295725070853454094134323138917239512250271360377157513737720320189587441124056833323569480444219049362428719445214167198570909454259640264607856189280495270164076879422646832763213709290454763740942376565732200894603329094859852626503982957639162061725460652837850018012381875385773419510460117125935546078437263941022815059727027704567679135706291160065248072483126764203554454394421557474159434232233001807463812280654271084185062875881147467473715444522087513971365754404950232490011159617896175703016684074835086443939369855656049339233714697034393582979221873882139282025798183817123946099906694223311806773109343847320893801699830468282796980884135625200217301569951585819065032942485430792480589616116792854057210910676442333819564480851012702957693545400022555508838304466133081405819676771168439713680289394420070768469545128425771459779524692869623268046893727647635913289766488895674292756295738021528756507737176427477983677553001598218542406791783130939833557876179991897466539798927032980375522764442134042587810004884702886036991176248418085610811330173967296158650609788557370775721002150201470653972128194995901380775634018564460370809939880063658403456374853895401479188020181414747985891375686161449879634910228898029486859296021749006372920551946489401521500447985800855252573557066912163499543329988794031820966528770996626373884276655953730127875055380125082282113784740292609983132110612549412979983476705906659821585409011753174517300035516622221981998872635632964780560135869961376935949913872721407991743488078285324119481144726661311049712748520043618802333777738384086029232163465039197518635092111298609861318557678842580260499538799681591177140089962171130767681593309929978746493665932854827709051687102804720412788842550543444983152291717502707692099489560607284502931568286622566524357883768925754731087696069153971831069723455134092908396275221400832102961895873505779240934762901518119747014142146051738849810176061388890496117410699879469147834568691736777496753417184082865596523988915117663653692680353544409611906273123755976955019778196414650917127681038306159105256442839336156800022829996190165183697488457817262477551866026169602479187928818590756362120929087045819040933113198491440470760111501159924268869918114968007675605957377512295944116880796197238843961229780928545167419810400090093620441096252801335040629606248674839374252346095832408107196594738923328731750115433450805608901646828344173588008754316138473882615110144815780638920360755112426220755959171385976894737285532881338192717494967945628654722730675715424130660329627168478641520625690922285698976450812710712203412998533369241132833405934623947423194226746759220792326527878193488072652193320615718828528420270752096968284287557483164872717887953360920536097780198130908293177470999299899226578580302381951366917135494420600255498778870416802204530040637563856081994204734094791181144493403276043114174097748148870277249096859591733071097857132240671853886432278501295552068684850040058697699229006269973098068251343835846233107713926839783668999220702529485151343910404680197137014025186816849037462702704630137071310550957918639982835692090327366613936809691604311130451087748162406294559507242160300604138675860755022641720655228883952304379769034937871935054195848722756424186896253277481230743402610910195604727832759895430941023539268468546304073841703709483441055490855976704284861541003329020623419008874412502320405805656011694800802574937917880433188888636659682292001070440020161060834626984745695121016736837008028213204094373918749087841816326670077545106872681849229184114056398370756745384804720541522851710328122887861138983313375242412599432331739488304588785906767992890140782189912171264246069890425259139629529091015543877651670280889461923536769084299233313614706875910686296725556067536429801074257714935260075271248314631833553478492185978516612906037885360315803734406630644245459572360281799093065769565622691088741121843982969112704687341240948361406916750742657228063130421227723808995551440509275332432054710490254209202613474112310403294150142769738808979070436337255341468357094666507082046168160706269260133555016583503384261276349570346327294142106608698252452737491635932987877224923684232686262350714061295731772549399423880983185928379857825902049157805517371530968754639980546182965799830968332816047331319807417495599137460010778675512890729599101475535476031575417676020577301929675511412439648359575309080290397172113627805615780340208752997190400930945110235479208026088266959487143107866232087898928003560971071166655198341995387946654354392613823540161788665701694937721333095082713719743609403803437829405718926043233353812286657826655352295208814043319507213933418824882671052099725696142797204738583699500975382167031012140939726469280413837342867000516009327678852151006745544720024953543496837686364689730013990371515404159329739093684875685345572905167019053615255597498760904443424455080353718585829727899470831263313358342715379386411421920261634920679668683115283174017509365254079019209731483459459429007419677180873444914682763710547167798292036674319837344400548706611279102336180300149201160861111524685801166198491362826913598034760742032452464272617757845937406650121932604388792278075843243848033119021670439475676197304006018889757863355800545194216122017962446975261460705733753268117116387986579935449240132128129888134572518809289803352586907662991939512598199060937095479282216074445967414082128192097852426238228750405484317571373847554910176988503105145066960939769852457044535560699578312177435672388401212637720240665784600118950212005339587884540941365642638223647387423388181372667230886014575487047220784663433636978836137214081681919767510699929876946938021611723197985462258345535203083987777147421277792423281810012714563808314185067978333606154167511594877893830938003833014317271417680353531802406388336722819355538672367611906424950530392600556093550379226418379890820467059360690223265748083258163628640309750885011194499914842585684066330207783884222565513271696663219716072876125922661730500258822389360470748444274854977593380629331091667153822098059996522910657256873369457970428044749650802241739629616392495361902604447996938291245542625466136451467145134110073985172191913604076403919453344797950121847828571792446956024115952759562260760994419206059118802698415486050161904936559719049643593366872283525794181214557474275023495535186879598916028480613978318832264621342290084700345691169606352301729627982342444224249771717445695033480691713499455493179952063617980420100197879223696745663841424808652154254313497676100930861715591578128846470692564259660075881617075733327144423995674422486785730817622053787687343873023959330187708095000437200657782008912227410107583182099656609177216468411535107599971333927628062298136598241706977348960743563379446780397164775479513229290791145114740865508636481452770179178049010127756589733767069176257268896293665297383666575291033755508567247532398805352349795471917836143808149502013237988265771232737478692329280386856195004412805033615799505972545313119076013075467914861927816683682999044846421014862739673977508786553066324330709661221165665186010161315403099300156136755563670094210819617804473673129047139631693722305422027575640643246829800174199553890159725508038100138136528333324172984614605974879487545984055995082771726022151024309515597617811063653780611922076282808824881034808973681002204710800538627279677662235373537912172897094216546454617360034552042934670033253870972555848221614743750164242934335394965471053149384431427770942127026079730290722605740713872180752403088754241498219921380967986620157721094172648795627395309693563856195770815660750581487869803120661408656765620428265615384465354293041279941972122867245448453661786998355423251189055776855679763889187037273940825867361082526205705399070427460742705433320501768786052156960503347535625459379345752649601158790937897935259877755262395874320125431271161017999647030689321724729067490748026638515989667804952457218230632998289963098320146773080861980542883688998608543466807430650175232913594390314624734134658721622469432210956455864755887559929073155903738644138094961588354769984184776056158557426285331651473303242813352981290617049300996035195844816752243284650595975970394990507538891099418482493553603283382255854478311745677108116503557818908460400781079222041990519293232717821480384918121229922017736756193545431006438145276211176183118058600119633303586929886876866432000554462923270635982750618383254646315642027853309797923580076875638682536023514057676836149640267315472733225182370991077696913553577368070100687938444969815197883509323972794994121591553525696994860968012639969999492059753249503848303927039548569381002380803661307801824044218860619493236634373535812729268353758672844969914559042509392940605641068690619220028620295627759870326957219655538681654199257211480641763187215182210319340312505416992892484264826567327365406081167483250100298815972136429708439211887914543147636642906102373488206600309632822631256295025092569690554641909001678257088996668644243652414867110499075986713360971994409785962077563504341915622468155637982564957760942559474031265576414900834812856950281497253489838474796411100700409581110853139215991804276439825545304725119869584026061932039873136190871608515909303775085837432927135259410468779703308841202420038235514468077745363097867980470849545182766625358373847230330543549218381908376800146679340677858988421651004804888820260632657011749988224112395404533230553214709611915394388041826584140288757374878014567252953727383848872367459711259748497757183605589684421445520433616038281628966868136733421790426350244201020173172798444534140252001149305723673359755494558181179776690102306555287376509544789508567322961542349150814379198368657778000822950257748758364388147294235316858465295881117767374915115081806433281755320012984782759561509368317219885977726152932988074870052661211962606624111941083161993817067809220327938801120516159185255287977285221193085567229449529920443050142382490149961490775028433384996955214950306921895444824349898775430949758636426025953196978366299958284381686071938846887298925462758441711071442178740860613896097070786381605936085850413091357133064352114243738313346654090646093024675028711799425420025471042173462018571437853635630101372867024871605755140729453591975522235423462178601303786624877087126458588360831318705174928113204614809310043524208628439988809014097882025731027064902628616730304548554076546126288402907146606776506040822453073093873071510491893303492320726038820575174456014743969428496111063470512426797671942358638971151639428016870627624877286105336645439229957674450227133046703590032045037450404652896430638818092137856331799381880401414945039358035033054278918159223060869989899565096576793195014367112141655199544015127013330271641423091561264365245389051903293119593158020800735223314441477869245773736491244883764028220840883418334060137601851027200620861157417343354090939900575388792462111047050217161831859258702316759942116120467624521220480149046306156538566992561474505306306975929084348275941759142699918195482245832114499190772031143411673073018568619287829757531680417842352254915473528253758694861144176278751911456620098825000133301924043444196268364230652826683919544421998229089721227114249559593177297783580006350360440109726049959078376760795422860245322988785061378046880924720241154058036609255860259524047889166703884235095990699927824543816668528246487495827531540254434517519416000747111858250815617812895804332941147396384334176875620482935746769690164644101456269079718447231163241666221008195808669826305410317838519224404804483176984961285732977781437572447692710990554852729680853071415669962405213174916911184828583571249188607914902088904434423849327040452209705995208817490921452552989606229765894751460827581829480183222646983962376953752786302201978872153510510013324409240701877860638261889510365679908049124838032498182689419847313443380182574396600825021939878784195669617946089290549027627119468270965969038638102391563083201941624230424549996229650231507860421564204462103087685909133131462015456607501867193509702369431684459996687629221890848146625634210741640829488853666056181493743510525476493451727031861524132828478521746867829886434070319337158560254240079199930329427458733039144077814330963176232116402967401640649347449595809101897411755795846059731236038466267536379942108535619691675377590730342647240464840281786868985318835349865762088783372003198385893600152789931750185929389427319513150275867511461614301275751323076730313386306992518144192062838213048240150885414973309550940661926310730759309261548939231209106937536742706775923255018052667299499680753662939770592447742326560011760291295772287594121645810834082775431094853819535404372418793371456162355271237443821793664391570648068059866088666549058808709415833109010221402712970134483177000817779010953536924888592342927261129232740234590615086359197912595751343314605621717319918023316495427061135954377848265055467257283376195923431963918965088311561981573629396613375643312077625827984318380185558571608752444753377277035363464823493945032882624029444973354414494571421456416460058071244275141244894630276674277754548015511989997252210816157203173284877017322517440911747874185469467309919151403322755320345479687083524561482170546159120675368170125831821699735416886470919110707915138070661579577533732644357092821995997234693084513626973773194648810686026894261360245503346440060157123443649995875703509298566114217183148547859102169800042887108841065190512841158983062527333878953421471418682490771229969782305378290108666040536843446542246581222962815016238914806227469537319691236529332940527278569895312377939134018384150782495595400431172742740826142148924366022619161517214837415857371363144127360290580780019133382506415249551685087226442818953979203571952098468085125160695119302412387634676799619159014119253872225730015716465903208572424348945752578770760744163049986684287881499176350635211687095938772423628997384845463859761102099089273545408472293288551473492040293533297208230848188715794308077102312198464715297811838575217483502127952220607753262113698505706493673807005192074771863244919899642600660316710825810775026959732182300771608670444638522347043389746968785569779050608674655571868956508269300937231361077024548352604285003877448718177693829448634344315705215183245237877632600144083241146153025935340596615942040113658155759911602401769632670181090674029529240959137887483906086202504598272331589312604339281178994538907498000230617033607091456744744183022887610038094192550449333571412736278391962817903381576303024016110284139675307896163290056107072418421769115393692942233599861564955933846368099431040746992828280154265123921518861945378199864050990923603088850830408118591914524987149447824260996654727413936143199911434581494541466626845345173433834260770255017354713863638781752308932462675356859576510519986766678132434969674432670620090314117228574718307904957440042595641418868585775011251646690860607416766117825307228764363302108538708909950440847446053623508581102059397493524747868502844872215190029939502737913613340720942044100959642280317733935455000639771598906983802873071713692903776784819111763542762862157103314554173291895509312009586817072617305916548980030593049424041277896951498678917680669789674591160202079313651165217375370725695690659986312252785528741704413029721072952568747524631386409089144605547310793511232509202509245608311050942320348842665468213187336909447695227439975242604571668990587159595332488611338654539432624972349564535270897550018480662227879356402505360816804406349651203246863853980018440232581769841381219757768569006186538422079171616178706213719470646765359827633374753845383294999205887631714869146690267230827167050231643584628317588238148684088605482755093843907824705328410763256950229744421483911439902342591061983362967007218480205557740776778650652791754337358288902092840761248221992511849910390146929154234020219130041015341771897039745221449102029339424262838310077176989464628965591263497511765444744574861398755643046923975736759258772611914212193729455481502344954788100085230773653771097753242217686253452239302561013055958698523631218611020511532682103958720339779302335208434955343546251346808448169540588158795633442578419027122484004244750234157546225623541440344649221112356342240405555134526798038924411179159281830246911059214696695353512941114792503409193366841437272014957454863006147557365296527957155948164621864632155950810280742750326288688001477127746574961903668496022533290287698324976035716491087492025002585593850436428503306263417730125246385991572011675429094841908426179949165885987307866599476090246693939217843336755121150540573645160645156206419006096544564501906186669112961699093957203995284112420990464619329132071644731424544531569069741505454110130878944560161914993872392252042342223827147487316809729534411620383186002857918492648813435803386469272573016802154095915710465845671872116881715286002516506831616216020275361905056978138985499448264793359144359275263244770145945418084179713897339371307953658468162501765335307920165438171205775817158494335134173192819354043709137685624290501354226301285574829421654845875995041722538348684044934048931973255960586492006266074202441879305581107847966155797147940125155180256880621306787496242738047720570102095528954439500496155444271424962067726262472943669524350749523938388734382387876182571930023257413672311013480196633425787804851983830201301362787324100653968351965678042674493958220275933745258408364956238618614794767310198325475346360763468649826088871082701852093993585725851063098264390252427529832830585952360663858624608347572221447650627454748491514440415717263593696014075124165531191981245202883186831401356697444314662767764361476096155022500068630426289360752979231300983011092231275499758785221962505318147764947887530164815892446189018711515144607499330855327821071837863010668603630359944167190975999796449070587631909654496042408935799733281256287452526296972020402678783753335114592400121839124250653739022027096885690639170895329889452010024724666410887611222064476892549196538536728573914631674240795496375114301954579216711419254743232241649420002320282555311732133581494295043654568032565494205597961502081950142663501453224220264274927181216209830343965570288754094359323285826749652278392659234638307461679780760164460787093404154206071000383973705068936463903024841677953378305535610504332656561149919936928153274458633145451625734910596710200562023601503175478947489933201270889111249396679163897087967504685151041523604782442506848477388364469346704427746568371300379445318092665785489056167113654673354548963767485402514061520250589776385207673180541433165930092226633435365933373585013244167956336939227972630073161444824828837970799393120482096613038537708147728539270591716007017095139181548868105325540675296887630349973108616732245915604255965895992487681192015828590731783701970545489275275189123759438546224983941814971429568525532773170195487789071889849977514235224570284370466491899234258125737158613879134325473687989770925506702707069083622958361188288606637109001434524857582667707640219501104826800074660796056634777660686306039679757731267354881084740908543984938666091003952044300528873284690031071594749302897511648662249890997429578178620792680430380245547610125436848365211271074161351277364616081640644155359750797166979085799666718017504538612677260749028844827800794182803400996107095473645596868948386693113610296115941896037831857572397115026209597815181388482819520249518656268745575508135218590549128876675986691806261868541673856392960231867479295444969948252663482711286322691974669780151048550163854917748958289325118098951209128441448380585549432645711598601183312931944148300133396811286948743153305791055012488151063074520202019364740389196524985363163798037615115652146401634555955635071025422017306219126448591670358017447090326695983334263643816563317154658601270832172611952179020097468825037281332329949590919265287522156582539266074571417490127046158869530250225854800333653213475357007293354922063364497475689882782969424536426321260819487115782347765429513285087368499933963917531284427981365157367388153567790116023498481952393061978751838405573887758938707062805772254157843917556784237334078985830961924243190965820544619884275097195143710967163421968492295932324975365502756604111422913945354314528256039471424101529999781017479715266358145133915587305554515799188198214801022143680208909574960770967162702490047775315279928939125204220802566271841490046053548188608958158224578346427716205943621613008967226533295552979850821492220124980300692663113841783433195292255451247463049820708044724444991158481805019038979013490845973378849027153408522409224298517849882517551117352525295986405111496499148989811767213576236992234663802760872063362814718551796026966865894298141981271444127199965839985477506580251035297858204192914847093273769739040562271798235695131509455135212008306874166394862080486720451505477655582542653683108764561156581477840831053335122042964957451917352621424679266354551243479091466536020715484256142700123301005740008672491000962413695809940238426402687412808725139007016368997213598835979546483855530110680543659046146017344471094873951970829280813385437906965673007262084394805369814247611282612940233431544164116490714653304086645166767723783720525014408350330260140740784613171444814853125852215077269631824196244805329376196121867103749292962374189048640683541504923460412922015804345673988434091728518184495149195375531599754444500072851827243263750194764590018084062282553443386753797703753743076733517862368198000025326581911656569330175173420493364271113867130251685114356762616703323453536774992980111433153611656387320677277759333597696535991255997414259187218818040601696817754252389351167199202002668290613756978076442990153476059900272447229722692865428714641230448897194197103280739281805343366715485082449081256920632541836967818180200722669418772730703308252630428011083771577804701484673201261427532453556027391195943412779733572293632942912268459869811315984709791532344311831969005336146944134071610836818932801086336083491664166262743112836765177035443024784160824249901058227924237245677991711859529812603080414458834953416908225168105500290343323695057629342020489568012563322010659036489213870437942381719455505254443697056049791314397278933746515401670027941198896845372161567774422307764335437023255624321842749069516590204683972133467951835294871130945087714206429130946368074448151238104777682970993167785182814162546759391169662013470759616396246532731118931471576462324856367910239716226217534240870799183769197341194009133084593252215946272121858847125516187981319025510734568904342336848154885845200565570942576936939162456796157608662639383218850668308201320069653741662444996216478217526456542298046968573016038598899477544031289669413006100984726796063083092614345349425557537523952104523091451376208601033075488194974276516439588663263959241823903827653780933010162189169066961430770716442778537594928864239917195359367493655162783622425599650508462121322209819922333815421850741143974060371648369697943293509218614276546318586552492859049962890032985874289354331366742351167199226303167390380291461437150448333487938996981763677950950094746393087822920517661686941676180902224703148780773275505555294532883614266318079851736655119344394002396976979839858704522498293331058994699234908677198499653997444676553486331901588884735984333086383197568621597119812253426349859291386551574169314251968883766162271243730727026940744066012978548030307978412751999465957104685851823283082289458379572894784879421585107083646791630318076490253878606002076511859615050612385441662612547969213731843036496185172255351679191531431371770339153606498502627427853239364847205708604551506639410206435925005468610847880786608890283466298146854676924835957931988433552522872392434487887834740081927061803180736782788229162595996332993477039721684023808439922141901689738852188569589427364390413328598459446060072365903269071177896989726426345810665145786836344263478290637702103346790858419195451818156610163461866537138991011221632011917480723888273202173032027462462073561953591538107425461837139996240094386995821189489270567451328564286390219382964452517299271779461437693357196325394334556006332347395130404073509439397410773796827840755023671534014302364692635044575100694723708245086086958351562008465568531957005157008369535501245822677064139266364494738635939430697221109499866942238471059056275154884059421531914639642269415414314983737332133156033911602647111194104993217652962899046897252011623452620068663562030280930029001842874215396646854884622932632794334776898244516117509859034276847984508966265563171803676054986195273182937318813455258650891144889863566098822962997627383943950371297735426197498198876639267777762434088390466935437857408679475329272691698781806622878772829722167894229738949283067203205240477541334993196819487751552807476109035520337027653416097481772664251383431133254235746454899144104390713933080074167025928375665845158055199520493986308791761612286042272014632506149367557035777568332801965733007170794619321242216856515748524995344174004234500237329558627363701497208406997376630939114244555670033889519492967404422306552672568682815521676188076648530120529457801582049976390934353091383732394663761682409739973477458335941758005751269821890045849752588059634991716841899722604946760432000911113590823596029803649704406466528325265562091392997286219294236266150747239467171432577742861731923185109469655247573570663006920579214904052974556421960296579740225751905269305711305398611734513882867844441619553738390377942062204578621791317472702307433071923264537961459286787460615320540593491687819920703666671309242147770924633420478823528081752913330016751011785260494077965757962140557266039979729230716241384118208601135676747455270672383418971545837854553174601544738125287476340210031450910354917481932454770285037071086170287927197097412199716448772391609235899758724282375077949617704744397295411191856631287175625820932526709870763491091507302091512835016704088787758189767360656799318200820401060045461572668387461259231429193854845307318361178719471888728757997300476362516765333461142739261714349312565704203544442571430990583816234790729400571138850874320555278397597195471830640115978636327330921710601450815279157819282547756927233438568937983904784349206736539299321761546697778363954703831798306905501383029047443847049682660695230527204690276263857571828909321770807926722057260338073848882609463539255506333838069746577671218649870348241123125857137571293521704839974203601471371537460795010992897122646939300580262743126737302474397761080074081377512889362785607770016763522287192828947989323075809951244227676849050442261371378519077998244935380857366384668692010309319621126791474049694954108061009436111308626013630571619134457610612310421036357608859402401235988317143258547665202514226683781834035107983146374679007069386402094512725937962787032915457090161924722957510749519435993956277022992888360676382740030464976942119288351032739239147298355099832100346428805012501864264119109565253869273537998102320675371306831114570321569406243788683141813413595354335618107605795580690473389202234271485696497358013406035748121524285306613919661038098740020723222227661013887361339745825167281845531156806745591316955012158262880318909560249088737546581522431504235115463311267338770112570285466483253454774181940776217244482481576521878821833816848379969714630463555111442946669396754942829118081429765340706680053626937978299097128842150786287016835621487160081914972018800913067530916296913046224967965660779487623606858032684255447302650972004087357202224319733585401910715448791945756319567285539969384627678619016552288472103751902059565288846288456919885334946024180822938029622110574722627403157341974530293914869627582399278142950888582369483339962433150258259375139106187919480056067365109104798951989056395698677389086325260790572864866153073197354953336368963660510882064651284717606572203876303008644767830443169447358374642418300494076217811336587032759723862242089848240056296873120303421083661783362500586130212584416313557046824987818301754841143734688984602391320632612050200156263860251996370311432574551801342783118922728592231945921811248119544019756519023097037837345648488317392660568041568395114987618762378199420747092419292477552658330850469882133138505448327244338641602986445956227451735989406805204981185465066679553322238650092309550428326709054896388351288208943868707912447289009854214049039809709141768739328605587736094452267945600934147675548421521308852469308973177341852255604811423512289056696889505278678350606046622886950251583178963968275519838830900083704739522596014586495917428171398331072889011734000522666903439319460809893946656983455418670829357298704248485314337859979269825639913456495908349257154652145221270584805078295537801036091652015986582758949452243564245643919780372282572685251969801416617129287281499568705310880586277533762589972169960628209620979991919086855821723341140853629899256532417601903578437508983073249532712055065413390133171635185536157503270903012019180451253545410120302202555839658346956565313370681979008781331252296753584118855724289287429094096331160004921188085431389938500126469060122447163372899294310512146355196615650986050752181774417528067769521993248963720290123767675968165277425381384971268667691229194493879223095940838020458694002179553112196903382044576342827239424107525801152937130575204221321179497702492027418569332386878356685532324784264985790756224626246242508602396715304375534330399505995996446253276949041905668743589357831637086426459459517639538139989606202487635737996532333939043455010763021729060864927061332510554406511378625568723660505518990012034154652986658660920207638428150931348746727247655519941281904223842067547795062408830107343654464928350801146647253668267993622019023312819846147909468082870431517260755957244502161469381472373232661799489053967814759529298131402128962111200181303862507033874214065906044349986191434554069768590934570651005528825131929497006062575157674384218013846549093800971957866788130240223929483511332150220018200983489752764135709451020003994742732199974113779496873720911512732441911460986222829585091609579337129687314410448054263804369345542941215585998470898855333871274288306637874005608307080055507668314876069583372365861308988249513100662519214077212902605042307947938877020187256116582668847347924536805752069462336249433218295839107421557936405048572362927412935795213463299402402635547384288226023356596134278427228993788559703143655161679527876983686479187401660101755064056960958028135453349193128986815335248358094930943458178851596953017661733928326397552854712493860137761798454146678877789669081977024540143207907169380273325586321099866284447696749509579983774160013877730529808086072544046111249316581361175346762582535138032905442554382745640772246489975724860815986832434435439942234081106995382403652964783165083310699485097084013629269711511590078691140938844275950566116404076929668352910527794986799167958889326055159839219259588020484590621347447933171817201856844381079533884043009859505843205934195172398105363402403802015149420016338409980513274087748178775907671601082347547060029222741936024020346548071973588962391530594188453229260025077519793986418514799438828793203659119494258974252182477673620416432089136218200586843614647897392610565256174241478363201092900443044281598724090251722699060936946197241227437076869464952250249614693598317400708173986491955452806712651665384354690130806383493534817283149682579695293846712948310884896910696502397100504471012920976427334179090872253733089502139310722027371543971311987762106872688708791509028330301615317252723858594683869351790885529199711569996089495685295699924625923285793294940005319518871549363645133395425940621340049912102134681824023272197588448135540132055744452665693767939071775266498495250121929828597441900298816792239632939527976693217076443878902107340482013228967131199924420226338480696577553731420971551315934653385312155467791494901935466142179139432394513090476350063271608267518580312295473210117240851259094883882587232047280968915085123264955539844702598398356606007786756085430906362280335386798266438952908885427333594719121595171179580583311006584617077916752066698330063345576917303720416112976538412033657011067238728382097221862986225596332041692211452346119125351875236938895410226860020101622652632020557008061053139793344278350301191289479654509769502426569031988375188325836684225266354662909107198255462070887137777325245113948729626375712208546238386869093912345872456418306481483523702428419033214279008335153258337546530892929749217630400331792652867547876796225907388144429670463832088125994750379946507134517689614423462922218582981896481653610859529327857803151361396257179279552407970311509205176905238870651832627826857554047681289982397105036230033699705714594291402658388435072570567669255808559215005340202653190250950279063812384518337665359928495132137234508547683995278554841422338797655498032937585639292843096422832705133189695116606498373326723210047301938659507548781737673612451372351652508773557090972089741434125186670169637256987169999215015988116469562621475493112460472206735214402508678649723088766253380012776009687808156461174246701804900209299799831756787954927805644091189900376635787762803100000252025079194900000118138560861666358033663505984464821293640986520181195613895850591892920581790867966163204979213802752666823136271442750936712437734383863142658192028054273728835516524947849213041243233919527763123973939273068103364172618662081800658938543534294921405764252647350655904687256984254493465305745725279740383049605357523520841884881369630595764316852430785174523449578193022431418198901299467541930304120448920005288360174135135144640835387441933908091035293276762807704760965327685581808704525701157060262874038784415593748170462133476370612874641607434874753968750313666934605116789193680560965653542917290959936403063395299317003943833751329824829393136905239889638779557436141079370761738502410829637641781237769604954106513249589545242005681064233199057452496932769883382506194459075475728483186120390074893619412452574809176393156088781404678268654684114168183159704510533695583143839291880308434033214656324869379872313144008291947292234979429210603566019710896094102435992598936038699658398015555229168995046601687292994973369355502206379078915973332025727930284660146066473317039044808873469515167279073768706458666018992079879912384111646225069236753903779007174674165238309660127141620081343042473584798305020182263870229329628476546175906988731573488870949106767655981275853829316393480710429009585943041742964039298438490619216565498602716982602848572608049136510460341337103997109546590087989115072764066423586732352954951375189563510079175274903900157335280635330908249422833227367993787033985907074424053613400136704849851033894187186111575408071957736221394475288842124691088157990083624834737239180206996501483464768127032990135490474495808645161258440534447615934058200769057403998035992514597834109437353301886599456730194222966260663461942592373283972980925442825773083119218145023085455979719569861565118604987567778430310704824229665461524345909781631345156268994816336109932393542902256746561208986664728257079300636051309714689059249071793747704787976164338504634882204128149873514925968705733528504521110717077017942944377840360789070705399175727025848059152398666743515658594485824293481194436071270479147234332245149143873380770339941538806510892841497261078446867884462816709467056121231117711927941466955089110168966841846680197854715662815815422712029020719048543863695429752257729920815724146752137506612806515809267019823302394190168378851289199601354712823032573059335811601298582591162111982681350607356576985114551207385059284987949201865152043382079465463148021110632319728777687461553255016621204309572010864389388542812121972702254658331890052483660045553916027761856238971044125456398152455311047859238700923208081539120431643167983096425717541634192298743830213386488941486789612216226960573831884450323056408360685093160283849571206180538894189196360768563465492227919396593457508041578159239453187092264636790396429635734188823421693440735753134319582361229762956564476720392353740824905126807289125510478666215756755992616025241762968968700287329412618739278430562363616180722430816060632493662576337721296221458956017330591464092457374319039713379334811309058308804315408964863998535365691664398447278707207739711054999178016415922373449600245055356965212168225013684517160329639634424738223162183105248858809314094030925071073653610456802758895559914129416118784823251792814554890943205555916839558393380510759481320473992921226979379856762353037673868538158634425352268329619603254397042243725633841296822739427438633210950102047484831385423908266396583924927125746850544005182771022641656276938470261946298805578537049807696861515887094220683670753574137841730378140346880181568222481338795064741170790130763131873467154646495875821354372917555812611557521497432308540831173628090086129344912645152884538853708647480924647783876353851341628064333257762964096550769952395523973216444936239291059910601337360644041809500182160345245147702087314165160500749378282885399918246744268000265051577515682165439019258986142419990557591781756961010059484915486847505710316278336458285439958811468647949685237837828829224843551758269914159443424541012496657670397595822364598510970126854853157830998637836625147343665222673257484662306720809386042308631370737875726333750389881840834715557234392895971970355282796259993366725645250161712586814728284474054228470991558278272092779011027498250665954024793052791326495759414961725954894686116936312982587117122402537421219692667543210120215940951034422136804277993815367986563189916855686357425569131136691579543983070459438633906485303133468903765433890046086573583056187189255766102137936209899312761146288535927880300646158223753170155102953414022399708570196702666947253450422172942602426903261338672614739573447616288536231944371396111740705578449173642011757228013472945441034541772192721272003571932787557509066674279037993769104139377232522396367110755218238187010993284182000508396104833856308646200108853660566671239714155816179915884705175771560832085411508935656133038948943229018860944522637672645778250609339109009826738570727136322824772041556222634971928462650768301174694289579632693549755712648165429378225438535336856849517300691927030757082140648521155302702377125835850725952914405268328093573632420866920401749577122311443142434774850016912139092406131659946132014677199441282479663990870267314947693557065906166163976739968723906081078424933715099553660002195575164140002563824294838994021846558908158486803157916388622963704254007426568973566108841633594343826765959509791178192448498706304486251046885257771729436663678242738715059211614446219514055878366424690853657925148444929800574095939024460467646677711550931512005048779642266135241534314469506852404546897314744938445227431901952847805001571107670452421866397331522508289686869834274273156475460454173720834076559061672520943447927184645718568247397051013715228873604672102647667380702433687774677667941906223490646124986583780191642820747026835562881540414909524526805385537547053603033053814442729363861591541010451109911911475268939961851214208028028096128662426850702904879912493158002195613099211450101505220931790529225945114694908811655302770265680125596555218885281467445138242452987638088745265467565518908745123096400623006132960415234866514897901478190733483651057040146649562139157269218240550127113389511803535913740995257811631489310076777330938873762486731967277429083311739908076560102396211416103404223029912869491742410168856988226006320576315037691745752715082631565429426159486846686789107227580180157195954161700148086383391528878538268008812952901754507069061176194358452939261452755583484722902309374060664477876358646266282680486755838118351902310052838912743416636078230410069162600282661085327177606841509583473032278513794661316694763853833501104491091651810860251217696192312933568409669142475953146268827247208632470537983215172669453276541689477763952329639759570468650705610967322031519354271051402420113289586578410566750836722726477498873584606574781424089986456148732104132168395251711263660642155821471961456195813300646759713066255969152762714222378724487518010479101243716270518440961079172536812654945038829260843146305275280185970142635794500987275719939780651903211740407984329057050980443733442389976949349129486527751250921404715419972630644417627928123183148113690583076892031682184571411411923108887723568517748430184320122352236190503414838874727767331747788791182931123348594635953371920985931141562633239859342978848035614271468077468095195996257635636491604205402753333965448148307112648348346045613723176178310062246532267374171294400983802731403196820201822236395161810140908238619277294333399492343841623664129633042108449121729451353768427442595193682432573027508932684538498128796042743849037197498837874617115294478570112666648016955517525779913179661023548002632800094566674532984431266206146785667050510277107858307196051107208622667004893982168419314731515132105566576543208802611490372718293056369904587803371583865957858447702833634423141857971833366482046480848199203839342323560826673686439032327504123181473846085140809315212255308211379195110379963844324666920189546315792157753914339490877875052637765955940371134002315348728558612582742310404670845031730833199443785463356392221102503315569732787100280159978171221624984071537022588139092723526305400869368954081919213587857465806232436562416466339154743054826573276996138687242670198030348287227034379772692514721969171413492294058846193108997200832110417158010378068156802704483080985991747492441658642959174757695301753855927205555114893617188873079185976930592556414390199066674146434071503532460146542264236601354433613531466376693714618228322100716748652501124170208989861033374486433917252759605170234942908472464336882653337486565617474696240153424459825464941662746316113227309214422421828823740561432569241376582023516119203101467588209534189110238486052109542953004493012705131444397321634797593118080516126237097666852330629302623246006370561109909336709694952483609452487647353256620416510934147293270480879969729848497446032486976465351439198078796978827463999863578654131488191462182274647570501202847627336578730241159580159340839904009906344331595019891425370034403673651908275097504215301825108237404529689627080039741426820866540048509708552452329432825213258385430294908028581224651648167044290549438873000426924508529467707551486114749902801936630090675451677070149657394077905583760433299955761762276885573990819935518819071439408387141651159723257576272200466336811892979409473851444524732359921524541647091303381275495297835102358532341567094485781836451506700315126226634668709027631597999475350002057702174837770741971329398880061308572770170625250706303311059795565946057549506639761251803728421640087891675328066518580644488824225071525178660310445848868298289278095414754072666812382240716274813057577855836119981590327360284663763363482418182483635449168703314910528805069214171316180706870659544283557703033856691635772619023986479648263394657817878539107611166374041356505066306915183319553221968794767038375179718691075170301154561143670151220943225044763173433551703108568621602041837173570038494360249603849493124999824794505094716421274376903681532420692761010584233595275428468771725259314784930881126362967846531385514401715427824276393013715220654014745586372093492554584932309574831190259157816805327198907008804749464977864078765855412869202635035918628352171444466899100814255496396168659303371671012491222553297085304153931913362644063374978296346751935581345019550647153891565636209520551909063640079725685543079822397333442583742733661669379002625375043227401365543128169334590758467823623152768166763775267316408985085381562814955791020120446768679942473890289492118183694194257691625206202379614076963605573657648489070481191294512485417522036596424636353640095372840904263668548034697037519219220990480573805274445088947830770675748437935423829680766030412179456606504145577107257020931080956861603597103945251158437188081696488577276020252600775988031055768081969078629171090350622290872353639167405043308983035336457033489953743286318129858385564020431407917143182156706060270505272539127835211307338797665726915445144704503903507505558014584778649027278410741891190502579212147679811466685470155361176236814360693423372669219256757657075841375031350699451276635997818854061542973645790464955172829402799648983411812525984244401997945105424750921246068059648471847757124063335969902641410390284804866905807766329212310671199366478025706376779062942676470946956331581485189613306293504557913022103336893335214278426591917558240904794346905005280114388114600517754801222848625208601050439999023586317135385868243917549282859184872318947652589724897785965014814330443157178210485004817660184932231578675918748061308030438693501231482254038716475774061726570221198432455228995382271625065343688180014280849335126302290136028004385558225721956362429107635805506593886040511664384792686030865450400119559987556385858482962462315852620033723272330912679055950668688789301725745440292168728756830127806551536412043449565457093272105892512442581106895634725580039822450825307390321012040702419944691277298697223418494985487133953391860629535957896501303430741543625812880011427554449180074345885219610040402665327093231786906237229092628651266386062230616415537886494910047670922653643529474593708678822661993188183475791376682476341701650619080175547957369640339918197379055673786804584704052109418323658210514894723563046231594248644445593922041687585430834012869031539661590550647345118487359741789300169112074567500622387289078044394722343428961602639240688304309151128656691434495153517483836789544928996354722267369422058015516986305501270082811102406299703089903175515625812692887978199924502689772838871023884802754268393329155518427986465059607517207060574744538945142810430606153274873451733446408364879493975711279864097332017043868394053112001952006451903423590721703659524876698188110037171452740004184881794240754566147155221863686183620603525556096765439861596322275921994521813660324761243109610790749376042367680220427419602777968321034935453127426560095489149179243272134261424466141307662985266291240222696033793259931183697489755422864596282760898928198745453103006149088736108265280320535999614321469304671463664243553504458822321361982226359842720406178742884533326681109736447413764561124650829702658380446867261023854238724246648481419149201549770588630038726514033356325778027834967440249368283858303124378286228138408971374517210607831400087822999753342156115662221655607010129536009950226904229726809622648769755512272040201542032898054912019359435851064472986318011965386520941281911325259806844333291034285664818669509499106186375245796732194914960924078636672384536292855115985858466799176790315721012679574097854273845381288859494739810043866490725234340169812717829362808191540934273780554409840537135473654632788808126809590320759178398972611486222822162885353381900891898523745536591871039832470387039476839355018649421044061067869115993826980640975047348039292105369757192015214194388882586068768005076980903391463261411026204420092331171221418889246842958154751551274239469965126690867041127100523803069197767511182164586705199149683351851210289078966664261964217407563344061245072590405871446792837864185787794147104540601812099721685736407517545730573713821471529488584713982358179620140728272657945826623452335280121874383519952889376513499000987449347249890545978376566530882946952486854800950906354948029126422697674604426615214691501959550719946600869394898395844266885305326899101874161228362818453459321059224953205479886712989927049319616695032095710179770586224989180328695582217419485443600671969517376089376647023225258016473548313282396004048358169996336895155833666247986985910960984320300017753816470345790008107500529194258996952019479982184417953851192142695638646178605569904825551791951053258834747379849448359054774902985625253062981013458078977413714165235503178743327275104134476215555482018127899040713526234374827816590882004920392773143967835611463253020305478869868408954251902009843888431532876989066270249705898378157662403241893900302755357989608192648816035818336397105148327684625545746283332539800798946580248358554509168496800319740906680429227089764322259666257222612762552423026359327669137592484190378287862921627244051478090617488482453045473224018211831315524995645685177302819802072763387522437274594510547903941086007699540377198908127710410846909858467581396079215502772052618354426497255840567609912560682913838706612567094098055475855292120265010998900213962911515118921590136403033637085293678393528459042545426493526177959004984094001017225152607863088939846465171387865844620126513244633852040500944713274383581642674161406032137597789262786017611736508212484926852232569144154964899750785359881043432196531172821466410162969840529207765147161583735137729470426230076691815956528515857586345591684681869011138625821316462030523123386696854633340597651428762379749554888739034302878077683132661337970518033036792288683818945547091310207772202166051031171541952068738344888922651425573705183479685182171407601588311585493847043984161533471948268798370608306888775395190517862589977835402094609903274137974867596945170400727113192049379817652144846735242219325862450127378994160144404901022815959387939396565011459487239717212352208293814451567419628380843475851683789757273386412987506334893640483960621975335011093676550485858529718991558055309038306826456278935564991636457795167792685709358950422120641600785040359472245391598399068614067246002425647500734073594755392144308616948769985382311110604492330994255851406704510816221753943928207594774128602794547927851144092029058233378539215963870584666857329620972957174181409360402372619502625669032744643525258740883789160144404892974198076027638953742362373736295082138868693387064634141529158748610808582392363446545273342545294973668907967819183064557923591910679388178791553854899731012904574634140606961466215877156952910341704518453737574869241641216224093443063619295696861250360379363430573023017999789142819235996741263731172540359124646870114613200273044422970038516027603782630606807290746520710027235925911473393516042271848306791897693065106272043856856625314573253436262124759166536167462014675313768820668894328158318024461321212371582707972248409273893776731953484578947658094478122624089309298393742256747023069791479760317879930923539547321066787486985334617861711523657982268578337568555957091324581781735604648296802661765152135373815311435979504667992650810750306168819746715746464108837409034309892495598891182937209423321868491123862991596807119403502505373541919460132173683745883971558639114022387845722788428636761416650204550385641415187071684928749518531533518032880930460919922010392353807086504473876329029092368718530564916766419679120303568414408954078435996612190111308622753342021917415539646593949345532271422112393512145475037272452838252030668461153115656652892768977094176377783341526389319937029306628841301208906173197522932919718209812399307807117675839719968612280342054337396631357615537083152444518172759006724608836387405136817109956280584385338957029468038585984537834148097804292598904706330851623788648874781117947640055750203053684586784745894160925089014233296325321796984031068032272418782139739196640196685124938863357459544599905467661141889820018815284950810253225855579583555835035123059366559528014668596717359245068726911127435325274619233566845720284804509188943063322759585702414740161464935182144880535569053107273491763245112220308252447952601461800844264741618610382895412756374040556568460672657987580580134430175515438115843060447759112700483214095710886391023712289188178425065438310160705098341467050736722189264770370874654721345434348452972502359662990765713901210055508257912907653316331513731113823067595299936395168187207273674558750029206902725556104056096665414579456737006827448690703898739434831282498083144411815975543194070411422769634308134307069652686451108909889654555976110522243164813944897418010920330242060617203665408492344189384579299035189787108740061368595890895960163940954214660391490876337350975483923825385843736650380384538910522946921899652212370744714794597568699912448833507459811314439853203476800666743322741719539534928977266704899784632322667332692398621055234491677467684363695023574100341644661336245257547911075409690033810461610178487434980198511566851789563453200632344634677600404637240719115254976866180644154014752498598642791684905944881646885959819821414004568866271777941794235928661307146528793942619746754189702437337675430397585379190828624451759143045916177702732499388044318761779867315986986464794677870092195016256862927518413821011010840368562765158041132000563603895344252451423453084853177142066015573638568870055001343480582407150534683691112733756068927051342716347274277003346901834612454322337266857616300789681469765547265777676431356655025386923101016542558830462350690043078164215128216144602423543764803777129996828691166940783376771018055258458324995911092808391540932411061486419929857293074932348329208881970805818728504303926910884455413688495891241472833685001252334970113275165900495581063645255592564646267639260765914090764692635315760040456584194414437071657746382583459372819779190645846149637969692278082631955548271417046325093783122263207145518603036533167258812666847480115373777609474065499932969444823840455126242890253835657602210616424412607184937907697254070274608583729463148665237510930448012123894013539398633101269362671358464773564084635627587983911282442399057039617730730128469881051336076910069278744349532238472426006047803497081797829570084969694320965250142807049632461681180662329858319708034004609867274791287898229650711834994680586907438963955952549379762880589440015383522928648981074176256672570877673833219387202099389242438006920646365278348608080913845767306054589906013024189468699878117291574847583240066757285946232731138628315730586523710599487941741550477193685825295228502661470985393748578832899619938594275751451773757574349201603129944354394465196873012597463578585664957523672092177591754554581467268017860680534041336159203205343825890532242260794255991279059198582400459459256803489307116670138655092969280196862477923017019857149999231104626302576819396941766720198764492963402400162625799842797017758555146870677239419278985032016101228462841491686995697751380086457936344102857646386226484427564562371570473158637900280347526917814267256771681643736788936887521451548865058947986203352767812805336941450348496901368956282048702032784772476266602030646927919255411951635585944896435718303950608578744053527464696585753333759844925183406357534301850561186592282324209468500031703010945277188967267598043805138607727310769093078215659134343158137905023509149440421646312061228638370079576089938046133842394873624905728874778085257170550878378647833053948651184315148195405370037777816211768459978662314681729378100359432387271569362120078557137158318611694946818196203509468004647121282081698508263672995656955016810935975609619838914002761502122953509261005993574967303714074978168134297256925549405235918628082576243478926602182036855790585569305465268409690032215190506369738443514579177875419324346618526057316634857741974175120263827559637750082838746637620883168794703288946666801294602717577730129589775419721166229369128627607840166077787240694493176909829054825728883311661248981622267424544744033030023496906997963886399482008942688090853029602858278191004539080587678533812076307375948712604098680812685958351852679801065705912073927979327302238823983801509081822413565625865839228160470633347630191801070137893960352697588418426328404790453392436266577345437834818483206287820408619370123642765257050529746589653287552059180776633681864672897477702529474687351429104424300505258623811153441556178014453026492690053617501240420608387974282603396365914200190646661058009420783541812820948897838382834793840474414940667542099495047530095747460205161261039407948696663934547740206620516181386837701787724623444769889718405059107830456768358531268525534155642855325751998021091836750290655262394695178081927539168041090282510549885861174440910337003899299838485675957021000133572721642248614798009414088327730192884275677988369894328821952608737067094147891983413930970199158012012968670113639846488367655283240826140051378035143846146834129854403053967629457168181090094712107678775229884829247152138012952171392442943818188816719088884194035065354964113663793125427144511991231182714459787041989814887700691086968692414248781294906776388281567521458835118960465522553780425685039062032086829685499845404357633498424334793169977845257430516682596323283041199015594970807637382904277641472519482544622798659877274045836198493709726268886917847350203197894534339416793270646183514785890821560710809254404034185425825774578266432427352059099901563323818528224462042350373015924270870328801056074858063659050893924739342226436999624225939888111162556811416105897136161692032770830218949073273837099626097345417252917915347928743491486716908022392666671153696335077385026209952039961126838022840012040485722778692230571514175343550419921382886896029800664013801629169011611375801157938091854904699262900983880527347005533019634368219702867610785072571543234070057455390135588633962502838102189015911247353576603764903453927151495551069610333997086238054139109212699019414968176236100558483751871108917976139530151291541246028737813495180490842604061388777095669984807735252675141211184151141914332683656844518925949931695671801513702595324764662524149610256845043231415260876151026164676173846544095458895611969619370406182790186043247070711231664775190030279921814637012656449876953012235012372075296134537049899992183317169023272002800084631190603492458851198937257541867137804666839768176631492351221386656144432666422285803644345917032281638604962205822288443523532935554882663683982732612408539028433051868923818905240230133513648685884130762567093757601466428016115593168316081869259511291674600867906841831427090267795360649827662076988212505310407148172371982861405579049712827879069719565027632951001476907188455431728439412434932887354059445835416584458653816565829419876732400993098577086552898925705759850469268772165827917375729850679066357746804746479205836687069029610591671190409608693080019528273805170392409682133317899895518839482050115282830631994177927945762470556071792699978295305850343245497650798540742316665834508067003111317801468765638094434523582608148370091593158345597471347346990494786465169603032463168783545518295184360105815395092656077348145368140683152854046399226543593002121221675686280715687361039658414157129931212343151552270500368112554657101406438874682246247630696197305393364434867449188357608787309121774900559298003113282490321887795348935356566475671128076777607899996742366459499969502788140531557932204483268717274207434806729989111583132032328369514259482371950314715697843994746526721450245077436755286580309392249523000792805108394873177130933456168722117770121896126381032807944834808462933142792877692988680828767800514568340611506517625568001819810586017998103239571039792770488621919917734751563397777919588430438236331076707636954492588566472802184957491644865740181187173402436659497573768248649767455541661670110037411232292062736203089248394117649103671756746547793920485899918927357609728619168026287650445878871310683229114972593572913415021355274184092020344707234178773246286916670299887756039979445224396119083409492379796194998600675079900785284466125404341042984563771760673686086775615369251790961430765877610352816877303831821570437616533076457444484415627719052451492377505748969112214542235593706244257933838878369038689730622277396436658675819852373426303633546862791947605972070458503157148345789046854267246411788059186830331178927876667645305070970187665911389577864502259059303489419293756554138373849709975911174706675412468964771040381322910553303679001375140407477894359141222833814863095240607680814923494798785478190817050157964347672069279860405014734060334861039842837544964653644453760720004789349817766235515444626147926460240466395527620128656921876046152885153919280100081429088642220159219728255797984256153824438464588968480677307803037197782959969001836530408921929629428466754747870078948851575539856877601706931999288809989119366894843846127477104670335202072686027604498718519566277308569227196572768678706146681359951599944923358949802623991677157582579520140854360358964647278150407377648373221251401243811030797433468806864506006983058076063545367832870889053261276799626574177118623151614941689507860825708343704436247968520323510434245863271914894261451059168950978752347767259932946556129204103693876138484943526970185001132787661387065990836885460729696056999768056968261901804237120472013210459077701994970563402333135528574450896465434941080417319040799200180122978592990498972992175994839029719738602594481687181703431384934823560335959872979056686447723844062613006478154084351081120285469970926230890536683612579105624556428452302539837003539822640495952559633589591304020728706964576621733175975277743179344726671410532518990770749618886770369850134691811116157669084238504689638345850984841824359093714513488325879583231720894009881935142068541218954856761074177662816927086521534882384787521864243760614707928527596971473038268220074322773620202361938379889444116434896654032782889344204630089656982372626597299265615754308026032943001958449540580440682513335423998497990054567226959046341985224962757964926340575000908888340564042330460555801326122062048174305057706555969320568859697473048145818986621620206374655263994555171298863711225905181124367587101112952343522888672001171328905512230454499391581303316021910400009175781845182538192832823558309080382063331347100752535976386361927039676576520213641508160387218960150506485696950635733489084108512054884599125686883252634518991980500312856923037706443738610721175967430611454705198800175828487256681207836163945778103635673125479178218113301681464451929988070425158133827471482407121164769303927942090214926210557523269074976786637532675359704437888895608285840109633707760453754464363854997884741359123801498731969767599203275521749228647474449191176174608320005643849839946967367009790383947807545450905199824922907588165643219161414846444467841861511822212835970727290290266716725480081285273096817100721575134659914050056720815445968645826310627353298099505113916943841261850340157663171041962442944475339992964951664512936804091174264559741598742255096444536190464371508084799989960597202775933285916534597917950249586343805983266261936899334924385388720117653266123267844419374384431564821397492621234489190016139336443693655825447544273718050536575817375406852014722010099024007690233704262861053600162618610071132081796409210850287887729253542325805089717946273580054213522688730525001262853636134624135675384028099194494374746124148715749588473354477939720807162259553523371955187635520558199327407320981720040562489434796514229021259456916920622778502385491892337721287929271116715495932291582257813690993058248281367698670701435650388802967935955831434871734852649933194468630424341924312990105339950670103569408117733232201890937851385363302500641492886807497168908066522271576550374731262565096176819211715247285653856913658464363364534408500897070620338155291777125571941495962122013845380460478325841038418706134259444506558498716914913747903249847588111456620824323695592790060758296888114639183047385175655521056689217523941184039216051778448624786822185004662713605323909553552218434440459280657768343771713829028612758905058439265130663858993364290082265110163098346568075096218160568914525045159995661086302126660828078204578805310278803185745604138087042497106549755051501999572730440649529354900617531401434166980058722846123068895121802243991349775622170851380706657543291858046007012266476407652829462218812011699318768033834918732308585711653457704862856055057997115373572763674861477997757810516918929130889233752477171703886321960415263176254309834094730618785866888117330386741367075690082412033076763350491426743441975115064072665652389381190291499803879583519178199016294761011616125362913468824733663114048771821577968223901195323303627009793212221213625328822536615034697538294453044506797681940972822908234700071774520655140826257748943597072393481821762336376806809237006147124208540033517072497953156473717771110157736363375415752766362183450887793180882538056704851892815714287491747271007442273287348740708906852217010510614400283845190644444698374068249863686290945876116984321021107630298875658689360483567824357558318030769818595485622000500232774746353180623423416432286387860982434988927944417915210331970488762619308284320391051310038090905591488639998829923359181349862966322110368078714161457428272317544071273935219198341917539966931071175731816595004197090404295816386808429862238394084784824442639738055628540756573079156518855954385105142843768889927072046259403177039342650710557726042331869144259952505544769630144150091439104393191468899731230786353618767282120048912371477914706609089647625798766179588608367989500452419845705784538266487512760913341048612418744195144082879884746434718832859880608540307427476289599019539326624955179423540318368293516524554792469722050146018039535916798759246695186455492854234026373410611680944698484307971271543140899822995591073571319687066929394019866989954583769427322163963759904005418782401499865426480403201594383515783698723340794605263721509512935735319146935986194452875395298899417833077174735941557932496120639212787264661197105861422210068890969505670757144147160651772488601033896767230632004348954884966409951199620292333715850177882537058696287026135081284470666309461793030742190925263965214317010609189688224768766764633424753138794637521088724867733035234672193747815883835219717051286954303257333652583733573644053625828691710505013159377115797601561022852399314200526609255035183391046793219776365381369917541218587123589263209063627871527484230123423499470888852446835322360393884991377052486565705686908649776962499023198617463913731034323271092110038048438694010629757517606397554880542408011500455927300822759734217882299912472674345398229184103785245201968043227697115172367399954144743280338391849148543657707579625763726413346638484135149930551464681713404948563032226697378157778764294013470225308793295609318893222772396312840975705354268460156036326807529564463876572351603787263177540193906512719636220621380065955048911017166164327823406226252380218994264136495078425319837902407712986581482582579318597809128587679081692123243883517520937489821142142815635616038095550697245963852294990337355758062592561271501776267738064957763859428623562467334321313638668673024727674592974465545275514178105345379152272158576185080364560668681954455944310354825648005289532726470876024346004967829255653263357676187422988068178770102048565644511910712253121577220285324847510222705726786996095855463437997874602028177644045338027289051902727454523516963376929532636479826238897446101127866164993645665910690639489888599531538870227524044760543933195674422220748584026009427845822816049721911737500520508382576808671658568914876642188945342881732686980635519950484759870937133926564797409477212977461442115765650878392773798752086548155022977736962392364302647543900755751274550463622138081116289377115935025050012104024173808982861792307944849937140197878865238476343387598907628166459710868546324263607689056633968593438884320937862185552380802335181418073266580651624684960205177865164696181545223437084403445902069547380142860392597188193739247402446908640715168155215592043337195410670414947418032476732340207876590609301845300636541418340226467639314183392018603541612288789297443311030751890435206658486278194447009643941161960323201460795353341572931620426052360249133856448135013780104655711996322958756856699945658733245077332278538983339715985557181386481835396650740794897050355902776276864813035834967772059100216236774631599237822425662430494703874652274150232826479070645418108002900197737944431067079340789998578270938517144809849892042091554698940145347057895067296450574744515749562146675610808439330827327665659795927573254312921062340031523495326558685132398446754309625294266110570283806752773788587789643866951577474637616986102570573837353828420603562860353580559805939176994246767284602909591289412780672663851982955495323919720283836778072284631349101682911553449229019663374637896451740515579990882798746979790748722032701911343192726341272207579579901196325797340389140063175067642423982508088382862461106501420762101241871743073961075307513188962881081566647930068200584820746711025379771811893654996365037798974622686181366744371430297202566977731537524638046511496269901372081445896400760306302800207918280480323825208371811854861607626015202719122588329034650736284895324626566337360241358516200869176973853656787645905234553996911434694802368263197581523719337580256754007117000920367515049936205315733973766181908846784517847239303616855124142359538539015476387949711021845840657813874373666296300453197327519857646898619872167346945120370723008576711158597259636245360594615506043750297546450284620054647315432724137039932522063504135307650146798148262926036096835144649808417865263679917788712019573171985564521760992961857317313065711662637632495546085996762492863263216344399819558630270268819165017739534803457632469168691320991923582130112068162931157221686346705075687294778192215751077641267725404507453389635195620316013291766612923638631229328817362868666341473997624808634372487004228113894607841658228947168021929470128283837822698972687538838388608870551944887352559722403027097385349251092048647684946210104604760193104688350827794662616899458971024370994797635782953687249341701202135332393935619538546114535959585401876979197925433547212211181242839728027391382992223896542702688519255286280395532246772309171377307766996772707114399739078806036205454079064963406406904179060332921046987799764978540119274093144096321474557269849501929872408876951337877435514067135215573587288210623556658379143910614881573684917525626411440194714369900177670393310883165572980874013258296621601516150972850519776354067228607407390357637684345214140018325543782587648444798051640006476186777192424242326521716678470058225196276182915453032016354001214724810357850183148323650234896579205488877437807058631677581600237405870730961684840400582965292564527372127018182735653350833317085937783607477367828956287867447449551337574165095856956748997361624729158420921214753523510340327098254024912605915266580975064862748600930886468047434669876183093502039640837601184179204287066525651846793234916723173139550525600472382899486090554528171919476606285322840415367910529818911803626007201004348372223571358143806781688560225456046793785774047137992808043984871975120238526190079556508736408153081640920990601671842141858170457787367496990545129227449501757170308126004700877080157777547135249442513923194749348029998706499830133791264245353759694090446273347788860572144794173882543467933872662388234614901583911499397083296007529025894432209156494073185134513677179569492877474093515180463874545101654661532425905462555650743141191760526844134521667747477654876600852267624366330517848030113509915184776405476732459158399212121901133042589593375343654128872097348049144732909576135646380908789571565586091275219963103873000269967190084894393251010685055091114725061212577266939287619144515499682672880746346331952415494231869432349782174642760323031937723678757020627261153833115600233421090774596768559704480786686552478163629890191076753373591305465505184601087419701993705943224695613907636725415577205837896679878248680904781605287851568783302872138474350396410747650240846596732950234799059297746057281804726578790378030182603738129208149268552635359675924879668601774279226759419092705310131009889845591962473883221383999444453135057226889198103891163099925717543886667364555009856139081976841688071512412308727588495694458864543395536915467789846616040336651393401368596829748452453394927079683032326277457624215996948412690970423439893908000046841875302060952254722884328490519319084819765116543895945037214602054339561474978715507057674318404110303822074534137532471874746833810351987023711346871703345330838226961707221527387552190346796717471214079595793839761228178360534963617977936637807221920662733742312050035558036991402539988112081878346902614957320709425887098917843051781787621025614014103883859745910622238425270277165977511908678746447572651960430103679735367428816505560211437442687519853679049883336695004121734685949792698073901738261338084197021512619352970853133979031383878334637083154451827993558198607631161567095622018204154835731514126034185489234221035622911114614138111597312930648613013677134798727413588431397823853611083280926488801571712372435523122074306622979371409282275134064844556434096199882650868824407459845400232602593498085468654831865138733328237708311385864936062667980926001106224258021273235078817625133119300378179529409642406721017471354160186633309796739902629015017757444896945905640829573288821048603002921922055318755275402730396341763124801292785696063440166277939297267777731522143823808610241126223281068660822552539434168696089034029395578779685102705328755557142122080724997659447957889962657472361797365584370835491632621093262733983172619986147626817787058656015096893482698573746649373385812898087539656704540182941618415123241923588483760381897044041315617358350758931601177659053633045323877054595710999929548696777786466815024880274258560063194976757299941230113963032614163067835111117407144670649690335536948327396107385179618279531537328678824041903436819689288491717664421645532750626055412927399503418467658395600615111717860490727465240479479857800190482119711986512104109589908039523794190076009226118741599816260688789847632752524637024312590429342025764849530683352238788384431264657001298885420768857385259593071373454398182882631648898228535596230168984321657364104771077221539597140886811651938378754329783496742020331827088239378472888365557922150386721311348119077766006064911037776753504475841619373083401998299837569069911503316484734943497930371589409832817625163155482410420584616212629969633947718494017294911871227852121146684183561667097985161969466932400223333881815194889869798864043949939305218903508058113806279688416282722854958072384103971578072194304399534714683377082739539664678519856134724867814584237163397382740394443143927898614861801273467706203090204515481170162273972071121043504992994655446906536126259987539304235249663618938341861934795455885206155569887608270012516149994812149867764987330996581011034387693029007171048392990199850568440044870153327719576261445045386194938114670433341674665280807212801088649290317312825223283919988062415585670205420615229234404312283257748093911283787139645982489752921921559134199439369760718601854083645453248983495494150786949889760376033719653862774812768206146770418042700974386557967656822272924921069322864976664969067707312261965458852809256657553228937180268910520813083720111868930345192623588870560535764849142544334483232538257826040244324716229818661906387407217763320656355056481370347774371550350562848846451777527501801060444465930283875933373699323171355330592770595106616705849824406682666858684228467614978912985029359073042843948949287209271262437827192889946010300234600619930515736809859199201031969274269395347579726475158686906852445214377778416607738574872558864487137764530000496369964797596655929387536712559865794323387724207361935783160854482681309614643042499528162830328281755870003824362518149413943425944950669143741010617573169004325509295640303510243673069630002916860432956928104473069323295271170123682695070322207759173735438984320455477106545820806138302537482202067686994125883859489775800270937721341909068395959462491059433360108216402619404022581461783991594946125353056653123484839864979698446037173985249442916683298091806441066270104353226955789054865133546069136199737392030803630486304480763558686294472087741167456943791176978410919628187745439783563027033958162858623715749610785140216939622247785169546185587685155233342372421996851927085605826712116042610233571487068353819232752013162281497396190318065980451935458752506137521031229827980268149138915858636362580684885510465491975023134563329280852274459270028810874167487830640319122614200647028050228642579909567358565254025445423595362199704967833692206189066030854693667356119772302397420730661168679565009937068089362076185161028723048240699445689984998942286779000536632014462844416772039607291035914719127795487080036104554730048473492721237913258673032017711715630625714151840150898491634414379765235365401493677823533007040994766437399512187305097247919105133939685342804663916049408057916500904212686191358551709371337754648171669035415585228893525411211324084331756636745685538959770992170904878995892867185013338097653805453555252529236926270182127126123525542484055101041055664926108146528636790005947020114968557720038428740235747216546173178618201577148977262611628006044747378141160927548074956922963224196856014816324394060918643744494577312263924263025723700814890070863246164025339941488860054675410529708201539557897266754370309584595816050043744272537066518477434029948752195777456973433248733027715401759787279853348452804217815485652557676436487772071583801537381866193242828237016794791251190979323268474807825124553838129850983796614370209625061540409935159714789195131568742940686254029275516304151793590128358865538981391271887918264104869541455236862940719250246262448599968405237377731386695197026326244681127096614759845627625463127046623404424980743740797295627469328687472532197829951742289355063509467462366264488082395563252244635075470169854270768824128512825590057885578898855827716848036107635691948304444718105759759479985442804940051325718878791368040063732034748873472471494786513074197304094996840449703010188522626551445333633914528343931773966021420016632651411664064435795056892150584272873143353731144527590020721078482638721817011169787221508767913840659929839996713950835167575753373995397265964378812007524636723236458253047270007627417827322989245153792310330588140742372630397335614085994404421935020922547181819801710232570266739404278318613743589294627386454642196961129684670026512480520645806828469598071670551157805483603181541295527865124480953423356437775438334326350715529973851064628431114051611023726147338771062382990279460451817778005932673445396244429356558016526359755762908606297951431110706262897891875290544910688052744759505478420942486137342113404019206966985288524235342363167552695905206612989593846500129008202600282630136736705296744728609770949082061350168764442766185549342486503910838557958580969781906014616342877875691361848366116455964730453509915820713554450292739217273164154344945284102855212479131309103890795539700381362800097519323692336598461651310004347007860805047816363601339577896808128714447905346824734005256264885492725728121978077980642382106201289144010352672677381267111718645992674403278711309677301003863116233553154642618008032912180312607501064382249684428433197017077689094525522349857770162524246189104697289771169787969572372741097882009055558851671102392652036015969192811507963905018487781236204115547470546282524674918404721948309924523547212040377099700513223220832751461493545490558638502225190614391623959102466059970734971266429652550501242975213587196461249060131901249969483812544280502375948096923344392578095336758234762635017833477128956099204931082925102932839806944795680992979330278820152270548805313572260177957219468464276517686205137821693283303657675699439620170399561335890058964437487830930141526760727570469531262486092695747650657011561937774729192916861703837767759488062504690848090091892331346757637534017336908701914247001983944930076043508527401134955342523893387518554341480455785504616005040291271032454952395282204709782394198998519582502292363742016494098584324559781082924589063626386927217391199648145387604356522417859138359076220142137200380771781109062082875647143891463760002109544834060410373241386888458010901011955283290296247474115549223938955813321310015619205161070465525368875203754614685050992583378828612886658342213308664784493237303727393092479179254953349456957427112968563653496323657693382759886355721318718131374071234716642887005971931993853789884302030870323262826328898011642172313917170083790829021251654614616265801053884445501081056138113311496565920973228043641613591422222079893744640430155342509763720505425882974745298796101131107686669913156465821257209555149928134851918160495686490672206698278928638006137808674038181932414852042985069364074248686268522609731193305307296513593671011964126617285730497266442662096207286766338883126532590326417642363239803568937653486972617875145312842209508919026825982806971339107251179703093286710903640452528041453538884322637224979480330499176418952531866016001349342653096727202158304542610751899768700968937268395500005798955213560081103379265072160774323039628920283632586821204038606948972540315756789125118575639906646639414280083413303781318807643107453993572348290355718438905178892078487256777824670989002896991252569896552975282743385954120606883139744002233117319006249966894715045646108616196521853522041868644685409790097414699497625279823299683274900308507096254539405068005304725669509671362652292871910408397220730972189610566963634829115371360721467310876201576496014006171592939387315140878132147332602645713516968473567061607719303211303523773144538630065745516798510678774703401703745581488195645893127339901929165163672410012168901797747224301495464153841039983108780900107250670597220088408220651875341759195361464003852905800034770068776323452982584357854972033939774131534795733981026556944215755866663138098377923193549383636865286848615814952584709266653814745284076495246932354961719763433343781317551261633897154774496612423557160215866278791998423193769382406832260414999402669017756952398985213670875529513940734400476443713081795790022123828351296755989158619162638089420838204201015315772443502726988170198715086672622502239687750531518318968965603130995090660345594370353600707063910218390404961350950586526623249881926650761755973661709581895493799365089834800104761706507650716442698488667170977829411419961224198890143873793494024072356465481757989487665444080559813693419682601813789412301486086859438590135519155204683066635393364441545664263112910183257480072109640399569847271533173493325684475167614478438676925710027219157536973409989611818325092548547935019927320268612862802630226445381354369039812993054253231979992932249498498897442832987161307427046549682219995209720925606915356965463092824314783820597993322831291355976714570017102498348811531576008051010653681323247150765780596837963538766644381223156922571720648840762692665585381182952138293418536747699775845575509895665593160619284258787688224089690370493131273468249343462766734077220406348960020765700848581433991687704607744321337535820129875903090799280357682237780043873614795903512015281376735221693191651438595548639400166089633471776572149072119133144494977137306520066425291185767656462521491448366166282826818500385438375190511373100589180814408976159204041378554807628717962801121143767777911559317942575164675547647252611952964886042354505109841879595132571469144337210775983109357924205377247766918087020657938078305349563977358617506340326308353837684648604852715464076873217881721964900197884817304403780964604368920000176419904454105434977544642872186844624225875833660690239724422207067122192210062972834867750031978940082471985561032245998559894125438319764937798961777499647478839268930265476765743304380752891173743909200804078849178313172071904947563234704151039526776013187361281872832417350154167554533902762747884323036880222045085922832637245873613428249944115477446827752496873178196129623709985007774061070727256375344513716520777607590969493599864568486064983529430916961963834841998433830843533664249468326514588154827058241773018300349885647013542778602587819717612357070782124305506499995245009663833993461620511820129519536644103549971150629205439645395916964746896377566006103665724685510551396267511143197172232933555880547892550212781055373628749900989280934524646702592400217459129987098399227915570244631681047488430845500503317820452947103236359778846245495150863475148105714709584689483562766800334133142764827850348679411308317111719713719649429270682175348601112713569691619009484444769904075678014656880164111643655079073212186894946972015942614402222989323372037380604586891545098650995288412289006432254306282372393066662620796714891975575621556021262907012272382812369188879235388164869922984928123507222460150708058091957285989241514782503245404318290981782267066773970374033265262916924759945206525591418116630009106805379926562126408698380137453146980461498997864063994793014577524776952734030082270511633821347078210357012582016496217776477005201854457896586790498543116479943784451930358378104262749163842743323356617795524387827378826241869682281286894617001020522871458890316938027670772621919618650781334313613337530408169209715020670048827015137660471932277971475301821174531001761140066686508735301270878254679029893045982096719279580846473018460846202833812295061234922333853445906459820450151162550199897573083556458927867103522199522818234851572028682976699679129730221278549269186354814738625590191211049135095604012901976492915321545879904900741700408477052587057248824749207578403256639100530470284110563518803344199314847713701852407531664992003057765907992130076270682605937154325473043296265482484856009033926745190674681990856737801899279545882140013061664268933428409892398950675590495360302179781276256049655081738319592343202316927194930344865366851270354968870708597313096368284631782526952867782039024332706712006956261158886993398703340978120651050650159459588311598523371732416405043849978859841268257123575646530073720088047347816711418006438344548888788420880026798748975118398558527324359216594877404819158410377726812123184481668226827194547497627829799605925726052376160238533195190763246641103249295704711327964649671582481000741184830790273631300621905058238540975057518644225247872943791206912668523861307155183975694791399501093060644704466532044281921263908558427350227291463020979311668776017045327276657166798422845016035303727286096762254025321185116712237895591258085491060561024049618078469131796260682211959651429712293927540233047571469317097009475042958166335028967395909709523083518902917968491425867262709696681136936372414359135983860251442431711074256222119368171040932050285812276552161751075356808391682615309002798061406759846034520766908310102136243186732703910078848487237214322958242999279079058057492696089278899212382927640055173142482838879549101116781510553862286288342367474446803834333139156605161173015667317831166841648100566660274939617758976701365905239138707851313318980473707653093684149511475710446930190260161317202471458434789413659414819361210799310362690987536589184811795875846453850598167886803047334699093641479152061559250146240278287838554267374995522581281208007332108276951039554910939952026819660563860482983199393615620515065670804893856261469804538552211817731924658943418245186461900138205677187283415613881388128896054014610125881689814212159786102829559140216434473918033039187818101255985322867702586045802736397436373004602410820956013069294626443954638936208619396891830284919403805500484601225140416758198638230027984063448530137354253355801841251746588887668136095515725629680355920733680061900100947964182773957227527264689927415738696078462665912249594914669770089670838910315115797515427433761530617075202503991830369245311921786166842404746753178577129805087995577070522661775045454359575571797519900306767733376746086344803402996300325240637254674933395058255071417469417873219881758227784230527863703237333214348140111249814502072659087631976322214280132760986597434332585430128952696050676035411158841692255298589507116809137224783123650285341011648876643353178701096619836795276407176674194991049607041958357695150270294095059283384415757826437208007240060585466733972661826721890570168423763959698066251924492749190676217421982464953304056711751744678707946235527163845365933846385424412343113093565447286442064356394223290372907485568376849067763962912784127343554862021999044288295271987239446385126311733860824401268442649391450960105507862056921320365350345837722637214452762944075649348949735475601764426320110933779216396766392496314634779032531327000793887315949404686298029711436962726143162757559383965793384897351500823989031831299136765656683098122060311977194259322528162982127312345139717883024311082707556531225085634597304690590664824752968118614696339458731628859344496317950608755146264875589876044257984590603137435029332546619862374223043281675530822070088246028090887757111286098145321848049374997748060866876972616523264348633760497145658196917392882535087270125211323040620500076012185530619502815741133127488554314366225531347676956668291466213742282582957626315979716837916955974082919398983356739691095516043416196352491287285507485662034624529931611224331830737043462999631580395589151348522724330301912697559213256707357905575723367495334249130253011277769323984778239054488316916365717595853521513771830591412650290003892945672560423207058704175920691039855476508806169130489027359950016682679865416813629614363992675823448022998284523274483470679118494297776290372559516929356608571173813834430642523409374867324857010230448158956804565882998538994106259360598429161044236002447766299788087318042506516809802159817583912824945201832579249606997258083047673808213532063290142230766017038431807436761945220334636270008319408259191652945679165653125627903513774140876794829662533397098347353013675545829834100617700564688774760805512780665651244826297418400821821803065466881317796086947394564352315828292972463114214494856439593897788922482401477691779328877561275328125530817321994837788305600357337478762651869257765280443635541553346653167779515199370366930742354852229785487097651078477199228561986044691828569464974930187545603676231012769036047237353615101455056660073119954054707340468717950667341490892767475296736183296437788698036797695256821527813897234898730261466294231445103896510971635224769620262045209042762918681150488019956328987818049844895529903286943821636177092744975621210352439087317109935384513132125851542285886535499188789986282615754123269569085734599115692395424960882552179481201783269234987727506190874503596534136273244197205503670458410204018396843306745710292215050830506064238606054784476588354920492505770112857524133696130052962813042086596802296401694402768765346163396977777728140063459191847481330830918810326942225028722337407563300520630452634783754476783749973565127136723477374851168617094250687685948647320192098447821280686907430418066345983021196649254054285210730063367889636999787909256669001086878047861727454814932340594763912337648787236269244954527539316371912480968519613080116535505227849470190988731531746795505721587803839909964179424961241051661952726592081540361189037001060544305714530654194404188832244773090200657410536728283840981268516420626423447407265037160488935878431171116956715832038549790273513769196516858271611637867480058806609989876265559298367434848089533176165058906331591353643088428236799515043983630904885137770458049548480404929999700261353973438101718596074172458368393648277419080418308355498768319089599897911502660641323228444054573314433270313697556918114619957316759615217764011250645175523089743069475568831118343351189459403885462181388680745026451747884353327891324581154944667676066567756234936664085013249101278346054281380473958478309048443563114734399719765179323412684308089985748202854946997403356700523050498549907433350482406792442850241303189250285140167745890144083464721075821952163019282326364153245099640617626348669503277894951917123794278434719011303705297195886119781025447681818665965488805081242129952765545555437586542204479324483913240859011589284371369820382783174539596331052363563463272073780289619646765930687586684050910388887339167271431749687184561600574657316459873548139785886235738679184480603032321858135835732690509567835018265105930578847447897262882318376851545028304581439205492733547993488699909460175722748644288841615859313935920146224691124975825597532838761382367658320120500321719047649454766140227233711105182754689546623990128177959831056353084773494758715035588473285612624988201903016291572686290931219284576659763228877348790189086514028474850616948170606303046993991369214631803743745514529806262869385303339162029716773886140261240325221605709803067892173013079672835269304234174162826528496483994990497924700483720994088591129970263011498549437906379884742164443236533035862037792203416148873525815526709190081772739374439884861830279190029200376061302251946775072298415972220612462442811205671431322896215848257338039287642476468511590506531317188465429055885169979695292101812816844017181878610613655321710200906975188341491965590724067299091003394186124015435219449731853681739597069292931218618503197195356040741887888038385724997200324644965559138223742921126890830309503828510128289515428854372238048832584382952769781053757143461836381000021100842243909384103063574438581245266119535852565418130550645821973204714278481401004972163682962880695986447093200920408069263391601661575428222829242292999455705209385112314228506894421979987145691952731647300838933035171787598040665185131090323855265842300200048087175347363615270114555408264111526076641331035008030487986028684602802375495298062433623389681373950080371758069196249384736655149440412879746418695533704021854152024143378030103262153040924121893712046796015097802503616171355149076124148540469011200490485854884706155718045474733924454950756628566211065226183207657939539536039163252829457835462408708231497758846567224593614141438249490839157332079238659342731246404682073840021738636500296981326788054414918758873039974790710873073339145569866926952119857147603965092781751168189284462827725733630044191781058940602659528146445801679460460157021528170684622736193423690881075013418906130499513513003003952965336729266055939474846578783361323196063194956889612920148664470990148245153454405636110661761950771809757717155861941822636060031758069520926736943062986392236434834315539680626643182228463276289556479562830647906922401903066814598599420922777612236284904244453850829108272981036669037951686452922075106207798693398753358683349389379046673639240210249078840641056124115224395864725167163123351093094728042194894901126006913625762635565302432086175651304735174131638544239151212881586108659087038074433209861593763541792074684311753983103635034457077955380344486562603822667092899279881515564171330088667534287416707173634174793453598523022291297914789796956823148559007860118557576540235020490556016293425224559188565830071149678311371958271105422808571959747089347846550372954396956757902466407517213019772670177905086215528460902453200563269136604750070706257730697753465001388648011954722976347732395123148264233212417644665352072530153594554048511745799237629270605050072093433901513803157099982433978324077194385604550463468944980788698609973666704585151390182797203911979845996818624453265206357412643539337573800666951979029452032961664648031035712425043899354863762138581823389649869732800995922458616684901294193281566476804386175801796863614345153481277240689444716378006216858209524529469617023930232934377423834181223785537365558597288093372182214838304014645198747471559520609356677194909419618214097664139758760235690891395017332958039694512517248847769326892425519083540596324889188880050427778291037217751754559780410166014224285293475184665968222570736923143695755657491960985969472226975191044145779452115179318434599880146943353052236875061860769192986628969989650655339576355498569227842384752213342317772810602794899775540775186022418408437891596549027571977260759087628339409183133468911714078289126474243861236802879282116234812926801486937499601088127905564136513084498675476209178343520031692319690483730738054484914295640488455593086087889084778921076622572956360920939403984042331906456518078011398929688267081128217791462773036073998373428980986927031721494762458675947555104479948054243470357837562127072545996189127310041080853965404252922735485338442780350882286324656319165307337941797048915598741399610350490844715782030345900982178498466628149251755312740169087300945895115302418885626473550887898635047210563549276645582143517251173273081350454982234387989259380820230459308020276760006720181043437050187123011883613632946869763331319572923933051860282484373832037881147593053325912352851076575220658175617577948784471391685705064205020771001907047171739756943047741355141843365121658966945404905142960400817081859753132940317897768114436404781480212601558858916290314649958288909702913642349631776043036580354556931568796989591478753723633010514872327063986878543576260627875595859063023126783996309945346985355342740755180828987507108629588163320519057533483315995685000540133102830031464428819446950956736368186747456122582008405942441226134491588403223602168634398604620760680871125206908167532728592307123087050195293656807313949737162039068977683956644577819371158505692332426704522638167370657456840178065590589034404560222541627963214894885847796886971967422406701718083098395756459482777474551461722714253542011405392918287864753328148157824917439319780508938809873494008617652049212714176999528857450629082406721239912649207391426496099276885560654839236416591998484316251196493609432941463952408015000459822442597183913344060739959225407275767792296817260555087500955854793466772040087151103626378880105436682712828164232755664049958574985477886662062890122056042477033217511602990208378697469166334178261777802730728255289391736656028801138111701797853293614811450148155956730109440278039652579697982548339626769081373122245324767486917520120365473880681518385420150175306412119257679524624411213148576039205466900759900041785510331420864330133927453225827321505846888213346791138138481920115535512247762843533278852805180657497669692995208967258300124164151873770762260910132463511773974573255696078352055067983018183740134240160675961196499880113387824630525960872436738692915986286671641842828558545180131942188353499985328009882750335085050689583190515856653243048997980562543307063662011542978622156050217446539658488828283067023280094843125597362301536433969342929120910427904937814296269241935053172705372771013019927306046366493278743315051946499809972703585503223442850523270882633861597617992140874010633801237656657947458685046887987254333994961478141160921583297106021738319487960230757770565157789005024447215423745868516638318116575034559170797411954825608350424075582565880517813998741058693414287937847196857481458607638342069512273879866345453390786080479153879413647193287597957261765715951464343898248929567304438673030975212947953930027846298449215629007534828658916781851571603312236646219978112765611976896066891344700209981965739878329264350503409274016926150647922867876208603085681291747754612181848623280536975095003376548182305438523049229661295936608206478973094989865018941943416369201837194688015994098120476436987204743556272213430808195651441783078095187632378630126481301501007235125259367023700555025549433515034382590744828399917602559438213333797068372844025432075028241168884407075772507223865553600087969022667830953783042623891552691269493657044186306055955261619255530350022586726691269093041139570119672623629349871457388332989731526883234073669320556707061902384140497075000357870030848763655217582066153697799698211227627409457034782260584051159003577365061422884687498981443053123437031156212573911146527076526511479922748794043452036493370221762958798630461940999903166138808825098978541163047386565934647767675182733655560920252530725964013649405530399214012776416423534630272278861087785365782092286470316340725236335908861792688487346685539149051736563338937280282919590474047872890220494780328173676104378969030372566560947699419003152407919570142935040394285891755230136639426946291579800915697078435150182081377542040648320490135629748397777557086463860783956052852453861017024273829171579637901909881478930352477313461567063852400336621949687090916275743926635731250559643685838004905171050456104618709947118186714657044946479458250836427139605662761590552846781004834345822286342564341478526170126745085224366188070931929499612986479215365970910207954132232207832135476929418391197769432249411082757995160796717314559608174435614282529970877835518443157321301597105817307426473747579046349695114383659549554915972118776925026431676429449634154975505492562015664627075535106064943867916601262716334953850247517931348003185440595991560502013716772206280328357651403476529319088720163551813714687579781844357899692146896627295785405458436094594514031410117396909565958083293901937144912994143122828110760236633929106594335008981971409789660702017682437691244330469333109454815409023534066355223611027767565497711508453205647388737554604757436077072810461119218797336055691333645060875000289900264053618224645181795323228453135925716664661152619324474706807614019534134681852565728802204672986824794683226938737765672851725031292322484294220769619805564365584277393965911298655490351578231070607582874395545201540841275130720637559610355735179531089409642356114521238251843745870613984707271131997237174365903614509834959877116261461450877713454895643495217775487731708723005222782575297213039480220359030584293155203115532768092730540534133001703473098767770305944543010757402780594996540513213860966284849771842051044151847083694901290963966771522635477657782326160342914237800779127374272472311286297665324455836558041482897358072603818917452657574041871480079526217152747443155456371563052010116546896731017806613367140546875878781591028570837700088075104980744106802614563879584656480160028860619082508635717981396481216999078895706585478660001669448558642767786590904032531402272704965388408378610060873652982550444813661075594827967930433467730066374502077961618992442351553807073271181322643567331189803378188923697331140915471106237303695858173978060298783807364862138558647749533241825257799968427040252605720379120914271024504291443341598000141971345882796438960022234722646379495269059651334200885752550146900787027068943321771208497515888526703688491900723230535216778850446546073965288523251565098858443211595184693759189303312872762824554834469529055422851755946906202487666591647058315249003473711649399580334026808893371016358435625431337580513942862539314740552770783963466367006578024134811350066252801967773547949759464522506625390157779358995757753150220779710678699110862765689815242409449552891480406265261212597736886814341837884501378341994347573768844102209051744119113126872401176497117869929127328212826540203318855737396698855067953018765865469097444148561359541970902243111887605915653634898999221175657804289544824773191375348488996919639709599565816714568552253890761861742991917587027698169391243030860647215841400583551934566230181562524622725387815042855494659081499759148579742116721420905831484015094676806234167543892926620508482080368314479826194327636032079560701227507155595923605358360039098002895921523017079808298501599331764146332043786385185566597647673200348519202073418667224921954158818925723012662334830536192342447567875717472873655474035069616990951625574748385397475077907068658594899457969137368319464498400621914995683615721443652115607679598314895852563149615120203088757063760187833503302073708010010244255793132642215485366744469463932017607111744733327006964418517952913421977826222471645399500183179460645050524002176309774964391131762005224065767761867744438159713577823908901255357210035898015802143762328308108757965536038362975122061946592324984644577633504045308705942688592654875281233081407107280865864878825748233922508165140331963099104836055223182438622602988068709382973212589417571291140165840934963965468355870399391881943198801011943774389581202893329937632481701326665870292886518169254431234104855018778918873645583990855788670035178705820894005746755929312445635915716803714869769300273955196060731968961139387958132139160525783554734426684977331208828658708708811022636087477746943984926858900940366594793561782372869426350561650397325430740165020353668564367585319149676754777065745751799917129359706555216444862842880377801864493020065718792714315107879332450141129056891169311071693585716836722061469728687263492047824392546478486108476822153050123229413226542581214630646501522681845779806881860577180111080665513622519681884983801477712098527639320399087505592579608953362140302310039540028658591436042222197784452939579788732604221549815333024339314825619974930864803201764351599269828102412296127473297264311152193289577338981947324697450013922604398137213732734654991637948143653551431910242390101623834942250686494406789400588195747786888364399027103719525082321095296119640957098753694400107195439996412156756574778065831277685829280906220543571373911396960558655175843087035161467354764644138793944756387169378896718353663118053308441897647690498263179863022333186559934074716503241659156446341224216356995200785183595466639098312633981494868316332608487009063780400524113134319615052017225199776799675670010851842642043045817007110948729263113669969795380394347820801553071139571298530540385022923372848448565279968876044006459716641384317629308522075751987505821167719120304985843717598436491792438895651047159832810560001705478255264550280775403500266080455630633713279785312356850219457305292275979593732733253166024424936465209048758315055842339614822354510978913112100689326760723161944222612588089010544953472134590831201381483657023028635726511654624293612531345483911122401516144073216977307584563806412765800707782089046001722451858478461048625792066349666041356129328709608498276514443758161985465335966970240324296894878250117733788825630500650093940597583321391513737511225321014402388869461372350699652799410862525773899070361955423209626514488289908005198696552754760183984734859947510293855900004682687264140570756290096973936764197602533994197654752630456714815597294027774248074933726307224471424628674458620213140220311499881004767804343797738767027805510409883326045491428093972576515647899530310279721443122273616910187213422293933385820261560890534594032004001412852470856444702291530411520061435198665612309567840249717563624238437947377468629390282618460233450741105665789783539872671528355343778263266452423323948171494548074058649698531636403737837115503587551615252275892895579008883789989000160937626005020757750492112832724620039877158442512641291829701237760091867494647684329786621541394371717336247540516326406475414266427361549012193060523249209816942834020798070421793703869761093842907979881250548999072367928121272487144182561767846818624331852069295507018471838985082027990006728673541093566454171542159955945893222594457244355115271108377050223162692307605446871116623095534925780764588428566227103690346479738253199280367161759845873181315821421455076807696804642022184580946974057341713951778244791746481924321637977542607881132766958505001794168424249712626974213523215221908423239928240798668563505254494869793738324934011883555849167205198448109698445750983438611401877777216809698705388910079697182611070988417994460869904008292222160985598269701061472156582957324279368356804474870699726691418252472939151582267235985229525979329177962409893649068236825262510588818039202579283909319241643561737920626491123985359172634177948805901388772651215018975925886387785358702596847836982057340886939485407930571006523822599165167027544271483168517507376808977653622465677380181309356062067680284128566706132544174081871894374120418228203006563010454934627444778790093899295612688086110552951529957909516986481158768805547908238438258689358445874376026712930161920351405673619518689727987536902987619223856987314216962521286956888763030148513107489764201683852326065953738152469932411265068889765176444793788793648807893360588133260053218761356853994495869778242809541640004987536219747405438387494957722901166974714334013075405652227848539634806282709799627101755458773659715762836254124331552846953201743091530473887904292169591717534394630803320283783162248202748596814554193038718199622140513347458997395524976271600485618589342715402032811440246580304995977845480597158727325320961787359033516838881966980035610192415809194669222184517143250645238933137161429212799390681147327122648625187680374138353595370428175283453737138257514702657116941582062174580301580776693630258255268533894461668515558212286567197644504770979256852864098867348920759431473990919747284918851344259917471922227892174476900553801739960062619968016962977282798817581917357621481611049567078319783755817295956800611600496816613192292038427144709954633703769773987659634734635489043616455616778819827523332051865442862207585329277305128579416454286450751168042116376859583091422837433862211896202594894137553034736240163660182624497026726096918981317171273294539575064152431718590322651681722327664966713893656177274623382713760319434840090238426894659136419501949961127547836836511808682955651766649584456758727965200278786279580679983942864682994868108955990721109018433193396947764130897158217129987533918354190684776687417459301622583249574109379781042391313152303400711553098929468296852514494535210069782412458319765959759384300023031998129219857923377992983583107709479249455845329820929779840322492043367346283706984996271260984700511210944819357803012245064362778957442498626838618409951712996014583596605130706507439449770703367820730011224225083573158728323602528039393874181441485417747438576129294687089338436469608051287344007486026672317800847421136744024041659983660830820188473803225938682854049931626189559763611348646384523582799195270285457637605557927119680457211202026990693117623827390588093384443677200288462923636943819893717844789888526595483339225003247508716998787147348714079911748068425927528623653111226315175736732597384499381864624104140879172709971606034555682263168420021924914967543139683057963248003882235256998667012958579182599520959655340797243422797101612678671129159455434882978112115804196071752214624869728295153838313841498615830057676830886265355496917411999570519910245218161650874509877786148396985192272735536987817916216594068836255025001045228655791498522029069999302497990243436559901744149308951894542129843167390240987054949787892192200985959610485947317046492836872485174035283660669600133973605525419033499294900388157278007808977533452196379394133390714267843036085422668589082103793954816628714516858601587876857559894653711754872279689409990278917618600687586509760018633237974443928306895839660317480184791726101344029122193375339137881059478807061456180434089174236910376831264323158490017477413148857412805622273057424046480926312185079041667393375659850764138854151568131321191047140547432976425767994648434471600989256126363825563328629213070822959199534640107266419792516362194838826260259655864830418465969009412544108858440927641684348640446117482490954315247969882887001586467402142729924353268407414523530626563577526381278338080265689995774937475697301350180327806531614032977232347518716701675517737880386329474984190165237086919155837150214884186647233539055675295617261772544765169255216218653603196231021058138871493327464010817906247265665186340161728444704622251907310756086684724939296817229101064173289572496178251092694615398766961487845135809695042437887489140706944366427179787060056283126608231405460010015014163612072333461254800136090739948096836326666036882514489310933514597307490655459806569018284657726904264055962303793637769271613430113617972361158471675740516712412836620822660839546266097994609878526925361244801880739405297139057523888932031489349722006293097098432052986131365274964144570968014826070995712387337055892969955724572166165115291069051452808613658296854119223572387463037722082910940477152358546804888742033621146124483820801486099246014407603241392963920135990424962611572639824413738971301043357522104731272990116296730492443499316063600118632158092936574938145982419678959079661547963682370039290544433122242556102052610416787141592568964181926449279946657951134503352774107133548161375800235004765719892037979614074610781628781533173669060852461300363757255353570881123588073076300524055614417035184341889995800569612421079275502595894083456853496165870823214628498123524295457720131118080002542723245209398501895750240155493188046062293421751140609713650601249069417923263435790339312578995680837236002778250573386091444425516477321761007376858635538306133625596692867751968171907851060352252198439262389287346689611018802569396440670854621415354180559257855007743215103687876406919108918449231356353869381944778848047554343587187229311258848717756699560869635585156322555453562950383833552012353694340853984427732351815414125153945214384288256659167787399073639531968744892105175592126701618228680159708674829667141245962313056157574443870342552169776659053773151431270989026339479634109386442681490373474807316321986467769657950179022970752444204903534546479785405185234147391684183078080248307538502607610994624225091171877062088669191120564405863579875148037147811238247300512002690848584283834425953155719719063038444805475911367636685366269138824842739615660736017091916669503873193745969924614342222886551544022279193483556401162731888465410683776094285590545040961488491046438772659187253799338248477996963003597788188879630393106356856418453466318271815870699302629926890038095385644263861125472227611475279424815833588398907526517460342526111971636017509623401151240891406288352667322657934404427110791983921523672121160659515471728291265835286479142548832438507184692760694100765300757235037553839222514195480046601124485812317153962074604896297236905376090055570502882095518876709664780854180610132340346481304882884006422105542975629727098382573808669609303939677514877454025245583491235501491422190155073748839165821230697203250792405919910413909834266206266036738673028751085664956643849982872952355949084493192605474120531050494025471493298704564035604814785010437365352051818666188752958789239586121592951800564418613489522832985214151822252182197842134666367787011324191822190846755189558358110788622179695137964182822103248737064956288305757620950692855411082339430061498640378312821362016555608354405738853978379775925895021840154256962175030456201944053357386274373687488940549951657243850037219806194759925837323919537998789918818710047796505053389305769816951090844023692739000535262632032571047971671674195170294603362243270914468085766913085332764440166369892137152136974806952120020300514140197767586834877081986417364588001232218136966944880921749502680953387362771150279353524142021989446854255583519283591594032866775863109327530723258972955405905136345626945791497627470019659196210464234540199669666257512850976537209387211764821140039452032852943511612998015730087948717385753777777808727113335871022981934763112813187349681265657479772155100827044087297230121719218695388364054547089915720307084002744839837847473843691676824660806427519555070836437604025393173345647872510918686657367176845012255527351890239064717288244619939378313227930490814005429034698537266052975257538815947673188265126290490797898606365186524123639969859657412619153939896136278587632796260623843314808665305022986288981599913274236015963855886886204040564965427948984851164688947518802165637261932409145874536483961499380487243031206922443911550496214726858509592882299711958908523800967589391609682104991690199919052547153892147604787257617489748548066372744701411700783830254183307337516569562707582410880983739470039708376841583956931982803207606383120539900100921424938492683204319375250066414423106048133335801799108260484178618772826593162819227633811383297569129394984395818631930511295950776389518704940339686994225880724179666575095353111187763548522294160406974402250694991270131375762595806567141960487177544745991392943156780418637634498455432618561585953807541215155763818431079135486515553586186655964326179505752510092029127189292525726769215565178948083800304785852380979088779068581240648699649443655733530478741530385666296875026299810869368905783189921614587167227219808077317682649292046208633898653072055989986569636575260576198899040927347413603676591204619290200086309216347168411128764014388524595615330758257429592426832946208773734867513420022828001316372326330782516848493081320990181023487515218264230141982585689386213902210877974414980463331364473794282352814469726791303342980536671710025019796402568325534499280830786070465837204053323696696845920889561234728815046066346239496486149620642316163242974731425621104915999259091875377891151674952109542427264204459240959833573819831297146776955362614246647933482022275604016387676607771753140617256135924460029848068194112412296092523953428207425788125274832692414362743248211318501863326277802905219533506721546177593201762940954392677707071579485328617398271395967308199794133728767444798950217825331323113686780400618885031082112474434079988743084636873707218275423871644465771680242201466340062383345230033841523812687352761670834336311245626146305583829656864163561831546945145465346149661936916859951424504829833465331580872367433265232381835429263581142689775988115231636800501120707556214837285464772084370647854229841026032188209710459686896752398737298289989531555451992798357044534815326337227316242062426604131063343232108573023941707412243942804825519708001259827390450573168597220714639365405411156459265972181963857604622496821699454811926205937950143513990523846880279630564102288978342339017427621785254008722591004190905135615503849678765323625695908836838843299164211294060427928733342530649857498991902353394512053403509811762276249143050741983312809992251907725803758054039633985510264158507467938294772116517742174043594684698444415045212247798438543647997680929009440609249409079149043795385471919389310352796790970614795178056608917611783508305987965237126073860597913577865564750423323209250332707898612087511684284210582151836392106572437713137975367028737171717032744723130137891703345379573919278055504663365482330730357236560965562371075967087990302231358117738653592668095716598624330785032722626043293269923518612892858495842698541697590221944216559966152106512416497717853796725234410813828871000214133911399033453602770340451754941141667244965379053193866602500161106932170464662855338842238674939795387052264560446016437519715039309822245388238541894043103283804352482129547921634037972652560790084910603265791144386435863155738873532612553036506569680812800092126033504684385259380623536032416433607033278119020961958385815494239781458547103232468427065738268886484319618299347977539366117921818074507434622509016597000996624887045200697278794863458870553946574778066315418056262325848813885312161414772625478823035346520375589988732976180382324123878968901833621351686048019542662833503318203759335533781211264643986037003809998496228062504871470561112571517572248095746331046988511426919295099691954727274716021696370552650458661456673167527021357419192170780568017856077423307533871424466755870851748896121059914389318593294163284592615629662461259562457314629612447176971804729160444391447368787268933548868496436251912163037571924453831066561846356524947721984659286769867381627725047821554793333200106648690881158605252950005798602252339107534158437908839360060253024558980132264550817052208616077576544290014557943561699771293453328067289845780269919511571665672550064348058575459794119044195925035916958969295335328300195751202533661706997385772593438541455369016157083585472432547297046515649435000084667954907083895455386404078556987468909243772821692440965241045328698254705649790992568575124676445422716029776074184441311297585271393505834919233609964436442540349576427633588248303858528990030757273288245635961027751338120853241879330023528321157972203946389246387898325154197042440837448736317459745209276219181965251580654314283736124051575903771546625548016034638923545337844416421387501111808754280774452930951493895982239088723119152156597661400490396196106836334753704441409527018576568710890956946289197532638159602833302672017383357648303983321740425276301316512730223919273501714801233327148814945727489614085422295231382520368166461112589818917654644352001939220463595453396766487444873055928330968953736824699944169615499660500030489973483570746937788306167836366932130290384069642614289078855610176249427772879205064845020264827098821583746704611955731304780127251980079691568344536351993952716262107689815114607867264687936376058379669957114854411220755229916377930657841705416885810929761774193883683453033649478720687040492778276716947937845704944779959845043494011087119982158088917707560535732792888734053121638670795887696980328028728991476291211801307992043193855497797544692616854266326376926940855828704769802187919408633034354941482460675962649572396412203735192340784390580489048162626730211071476789506045648061509882725554019369589033496738066443320522617996184541915471225763905172867240609411373778233807143503087705019205738488968716411784402840769293323104040568471454592161998935071117743965182546333401911051902614316356942563379926474813409193231422071574672139444481316613520583923216336994946472990825051227938690006248632487377168370421643195900314332962871907069403307991581129905825813285709262639664854527338115121222353742920976565566969422631447560536819782715458858056076638777293046481305030170743760666656493297760549500329112158335175437392024280454381541907897665727907393714127320761235786779206663073251975761034604761316463755080171385984668283697674610957923937156491565874974054539544817721810122337204150698175223598019872827596100208700035856522682864930554844557650135306362999494286458997369175434510866944757560327369819778622480725924597084801420205966602594503081619918965577435314185040235209703674144920196988279048618403134830483645189344992362968466957946465292478445579128897423506646196865980358955473032526895542656822707665750461783829345320073615272027657817045662807982434578990189494514883642871690982412656524027685691605120854543961612306448265677587982978722325738773482554260036908072966333373985055418110962328427306308952579856307929066008140660013711368370699964424911283472742459723658356342769732598541112137038614703284740600818850744137733966540651279173177176383394840536508541157469312152019848817428074419936565381949361796163185199827097928673322759053591969362559596054592635738761940938398058165897955608730190598381942553564482423967845995730834934883779728307134380441895856046883825093125741057921302032871829921066955786393961752846877425776976718468321068167905746690763371406326945345334033695067744425454057610339142548404002691623887747762033966013848365745917228924329142023865473963054135054639340900712681392312389310839428179934024632477244540449829289075720291023703306105430861209289789932629186931182092721120922415981579539389956583500568505131771245806076487642204145257954463888799786757132529830724315957533942005435036151849261682199532606877632674875554695586228298152658177005099937572915260280462801726883758097427289449585723287463955813027915269989780602194563897469481466819276069325095369282550741024763416958449350816307855355138374903648631043747049561123371247542425383954793019775606711351053312860839525637900740037293314919401787433416886913655567679953512678406210837600900741236728988002933178428681538578367434803789438911511096551878797616777566403912357214947345937817527205031238775483196699473352837850835951510869261888226902769404874423558360237814616561120166756101308180854488960825499959247348307862607981446344380042608380461793530533883033672687680869048097851583935973395156144449565450109474463369270697033018157964029525422546355507131970740175185638642264611191074384968395708307464078203300320841009025897285972841882924296655301267228593114979453163127736663805863243989526335917713265281873236752977802582271840295465012981749259006460738910293073110034953834881595478770148216971237038311487603340691101980031973457963458342604994773216145156838136781881362739383486564950429667234902311091843026785384263320735609993633914212730499499801807827924414915436314333567900341210744016969186605431488495050642424782042684387280645254411613015466197814328385193412109342738416398752614278993963263550945490552475823949820181623098691106587290739470807013686835275159736602863740021998597727647543930041024607042500808878185314582022421235825372189307833498645953908102280085435852418306142508438046636739201045932155452755953299158348017940064186391617536890771191069820124121926445807509724673589967612825163250131257391509140346365535863609683249798839545727844421050221689957357163294849273110457234440556616539306284649613251592347076390980509350082863459563097741513884609026836776939363819639993754803246327480888373563388653665817353548499327412707867419113242495989627715858715190569728772622516540004312743391252652400678166652781407980902684051510091847509180448593122454795393188879033457981000778242819990378838054349828341377619062090674658427597384799967186269551579758467806042491044706904627240374243609098905841472782925114845224285219555484364949992777673682294499812603005502375215536771002851075631813146043262337123468771992422205000857298244289140153710365017160324167689520850713793017081605319487237447858859005232317274448642473275621987651575879712118680200264385736596603876720996755611944747859358324516106736738711977015511834531548898705907243755515819314981846163995559996492987828663327191250526654936496053642946002964415401320093607288304306228441795994482924991861798696362341999688185843541172839540229248818670084702560443787275966344633920913870581443060268400131691579623973479403918937937867314780599643174028681617863475810986187092559796223413853786668523078887130928935481438863243345266672205841169586529119169610369793642889554643420326528359554154247760625031022620232832308580961811538715600222713933685321204638313414128775860446018535325224256747918471513640605700243232535091991249864777019074342539200444555132358845838981813655107650119342180641699824435228464046259849605965724639944935569928925874803878640238237003701544450766158589572929129400183798587604887358469465347256882041117966140706620862041876047711643806830075139187433066560614365474827934646213072771790100106580692391387404130780954707264852204243817223914181200068373745268833217082009989377954913986320831726329618065399043473813309515189312836317761347056071836013223218367694903511730226298612026597338775629100652208655460918269500428350572075667772729358400428765318998566049390069947765556621649510975637100101800518769077505881243638172544323119166593045615938242320557272878569897744356118804214383687063457067100121831910639212397361351604148262383213834195940469988561663203821270985518817056044397353020146433751451876997160824534313084563596739607429395270647291554978915156858332269115673566186859409233778873242835082044356294573314258930596662520734816253578747569427714115449530595695135041074762460089089844676504039572215552783234649623963198894560717213395382155059938321709190575277558541620218827395015825367754170451615669875250584140851716591265983634154831663565420694964465899852222968397617274523909998413997966484157402646006671153858327390017253674616616438877316083068480302092716036713048536226574769224224635310216477406598563228128640206252031184215799223332284866302867658114154363903784441255037076077331685316223586456766265466293255976220678776477869464962344505584880826412599338276245620194295443079514740671963392973880429931568053408470298035298856260277193248348639341053609471065950529004040644313418020291959168765429679824579379181844545003560238874496419705195640623973332718718882890150704253882411202068525823426439062735837107781349311438900495722803248162958358149585691762261294767514318480381002668923387193008981972242732411298504184132793223971213126206647546839155749608677648679830404963839256551010074733242058878018339425978949603675669128170936653870963620366930277977212254907488301268406818957363785405065040853339446315409767159819673072205337333028336570519292475100621836816881845634241920251216953675888236073684540756172224083642449249372895881974703135856960992071077425632737925775299473458306171382605504055926609576824020489982175232473049407852368687233774830871715604573563799366698349091736947208771785027295597653187970202951851915825895837378965687760123649000407776509312473987680863273769512261099049800250775090021713951943158970299208221346539516112452768568467167651580315035393465109586870967438630656444332313940063992299316780195455569469167038019315683340438010511700174855801159360102444333842993149856655962084287854934878040548377995876247938125068198236952813398895800378736144152329501447794215638924215961367472666566241926344221855257934400980322024799044204182350497592934097278033172324761114268535240792464584730423760421831062447765332914396585784594593838287775873422373779309578441532175342766901024138823240423187188757646786168011331391584759147399622790294752679429247283158024117421332094014946403357971051622474987008970179647727284911783949544252336516987231825383373297104323295869764689855392299006566047583200548976922746992302878572003074715603811991100832471586556367592553043690184407756394895620725031101970708211137144109841849753595283862952150999030277798311164582719406161207260450407150620000270541838026906980441834128687859170102688088968270549750237208941569468904771557453481521701632229516833915432494045506355702256745291115645153254948548698655677657447052799365156705680235734560427986663220244061264584124479556356341443528448358370986702226085544171844443439332328373149101636361280089905508604379553001952627668382996950455576531758019306627854914696429894019490188047183615930525088411797242912775345524201369068796504380170664313849088554905072550109838412097929354663973233352965741340036935324675837512123482777900680215261858191819960673434470399443508846372199206129482381934982087499409405206456194477099869847437518401186800531749693917358080233761147680890722073536835694882737227933794749744905371586181406991491372140824746080997130697953684350789054023400804590630088142071973142903356259445357303491135547755590636121049427717954807302906069147067703798473328627667784701505482009430997216170749512132111526391784405075464574742593460338657817934225637951808596224130123310718886368547520708376825661731663021308875064834361787693726944591005256831219260636210888575388608608281293086505514076978346306924500313251823142436500158247568439287221718709872167860141125822347717043324569913093889760660440621094400588886109255027572695979625438857517464075569457960082641125455605218755371581049779952275526790995668960421464952414877931970250001034124714489781761485019285035350972869427414246255572086166739631130197297656854527502187436431653365127995375542160767185071730146258318004848120427184408348829877456683247244774222277889623272951478394151418606603571319242338095263331258748097586144185298930010915338569357536699235564075098577663760449302827480453732921262502370403057119465443065557909887214763971310830927604967339100074208454409318671384169574512516202451484175625051381989850356545103941179027379304044654282650547062875047357908299770262143072763150328076546626273920256443325426834005417568032438593945248574238274639135650039407966576508571607682185130241677958323407615344297775562935164987285073217336603225339600497436161468293694332528619136167998787392569284027520719860862317232052091149911029864842662975493210921017889114669172902936976808579639520988725072022647423956505163616459568765057745657401979128556095012912121337360659879637263800485714084102335564842410056980691750767025402966972054906713540208446045548195149109452866189166967423206273383276801441104772546441681581311105552446351900540799272247930650284880961667646106982774783881654363788678736534688486745790764546547172284576893639625486224940769480776614276342044034257332496241155273441370567143159633652883612285005647375695754468355626895525453925419203112300936415462101456103663746123784063781304244059690834045108532998573057580712783636134574911539827651864605603284717703598300336302388715533173010210552240706164822576045182041463346839249406390507890428563443938307219923318725871383203738469377881973588612874917196004321390219956010848893373958049361225418591913587698364296715088957704158155654900372133203208381340255724483932648388142656978119849544326184738698013687265965704836062277574102080844818168348614456606535334063645666909967363142696584749098787820051114441338901480432870166866733771687147707972929750748528391815558285347152226305174174683294220520416170995224164668440721180741837991055184957428916698875877449570717063299837635878232852473622327128695560865369879753331421089681974458444089249975362293999584272423885238447070447592495336606748509742946521171666900523933044828699598441977108534174303032530652733410466440936893605148419112264769726388248878303689404879952267296832990260169650018890104627458885166316692706808848594233298317923151142598060983514442230761442392745459732361903759614969957724365324441920765048405778003715148776270869873691486994742380934004242836779498435953816818033662371523079097137794949611335183433167657883801925839823743745741812961223388379043123924577096638352914340041496842047458599030419403902446433808563964985544417132134538972061967952029454231960807468444500954739727659345088909291605732376726639705464883882802537138024542959200138777433703883601238203804716854518507145395869736732182479399814854462231038398712194414737816008391032370070068270117868467269579719580416399144763114464520820860454485215998782011092185340199237815217376315197078144927995917048414555981374962445533773628846681126389120728545774855961438829249440412092938235241662272175382887306447242358489110024580147268872812077471396547613663376783590285364762042648538920738636268419805459092444569753304329919266998988508759636851017713077834205806267819661207056815195596519397319908906221142989932703836016266536087147928301916019676185488144054778548713146585212643866701694392889795016370630992665529739272182920156373558041131313956530835403518837536456016389527396532194741387327986290335837860225772451147529383841692006563446663859116299507977991765389178922113232129803766559351403693142583960360525980604230275013456226030686121613806809607394828014852436401530854762282349018999369221240693901971021781468103748826223849636141597500619830467032197142527109684391827032869291828798769371809590904805603152965582924903889110827150571518056529528654708122531669996625876517034091908503722849232778591614231616532213916566731274791069172558240613364199642357238099006282217197761391766862535932807772263431271052937448702419094369664624435396818621044098342131179935565064049661085691680450841581470482559843622564532811547416408847136794992237515424364728352122337162620633704771333526768451288239331504214760178571914440388212476407020506448169947087008783409626368449781097169123761063963448215422752959480744410725267454860978526634061027424343541583357417787591866819722080168879217666270331717173915111281430470352557065079283528189251516916627570497663035811427327665301845777613789334217412845070475659601093789744593997849008954461936627465455882230578338643334297334338370324858782020045393888229902811120732336560346346323352415491798058447832022805297329802745302200749845407168070955490240457194803106508974291904512615964734715018894503000666360561724313009616095109677859134855934692940152119572926905425121714901887738801043677509439264858189797289603563741899672398406426784005559096425132940863403001152160487011403297669315559329790254965407796455473537515733539626794020864835846159598322700025718904399041512894484714427939371953702231152867399828027330483892990022390902600988721207638903326344466183282336971945312394553008252691006546826871690896474923242945385616205507483914195934586015590419022333480603756628022050150046057993501748056213215279774563923686981987684271926755338119634572467938126287703086041157267384132437519493526966695453526956036468877840791774592979780323764782975934467647474469736216706789069340673853418727893467109910417644982089101301749354888689268297692208109563148721460156830844905442158704506049111917346460478226882808968970192430727084245789081279424046123906130737209966395248936802404792720163188174746055123336322530102427087335102211895080147269872504401480530489728213004674011595555636336880052933190514221484180962317802721532224212621513786867940803088203570408415427038920537901194859119023183259134078109616786189526483847557137853330894580758523788270714600012636623969334487389751278738252133902293194953180677424108955146456551898982961826510906777536580142814330602239332320535393553322224842956870990109819549668529241444170971170762098275054125086451068105504832863375194091482404291819433110173852014391908582453507905242790647259206474742389381754114098545312372867118642772510624850811165029441790608379865011206841564650924535120051137984373729809586864867893851145892951453274926006218504733563464733486772541608075245789982368150271124960019512901686256476644093717503667882253364059771510551166532621607009697671831706140057891368365999490996654351111929308580894662190043712646769783679655125801489064622034224800273830485662302869810935042774726326073458412642707083683562137590854229805360505683555719627308492944710220201335070018392996806680438699302883874144966516236477779865547834418716706145328429323778084770119141253840965986406533343892714654145377421558227825397109379393362387233656527529603405043118112267085428778000916681835718620896455135169469163060070265970915123819059264511424766816196963250427883002420136910935457903962602902893747161995800616245259162267405259949716107667396007318245902806321291127261894123186490345789277434954789607565382942942874467655894120609264753479055604964643231081557734217536027805667646173108513906209014085472914638341161161456111879060103594291785639632250721366759694435240994037524887892429286320557155279484323477412613814024444929682419291950930372287076525221075968913775579654489793300502300568178358985827589979555480570538758433528262693568954852465018550385310698168710016610301490364949889275901457805971595765056211532917862111346046581296588073911248634317572605163610154241043921667636341454862479339164088796947819304491054350426279660581750487680838499389604755111759094898283431466426908259849173031913363151408021838563979334323282252762486110504137895341132163383545702530733393544964727722152768378438738674502690862562159047486747148630132688719571439497515332473493215807249112744865736391857660392852494588951413711568671793189568628755214138819056323700486889633667105857458159347841181067683789346138254813329760532932130288532258353068875472829690644825090818122067415755579701249155354672864488384295412215883115093124964164122707152771529327299633957791090366136199137734919473011906401885178838850266593909736739430621043359463376730637190740183238331759203059025726688516462830422600315760188303834908301428031488670925870049889299651277417051306613594984585806216669183747714072378043083366797469087653133022184755690006617573957354343370644593268757092763934207845214549473106983166223371667899406128840091750371968711844934450501959249808663748900445281628583882584660815417986636396901832977757828709607881397814995487121368273146985870799645563657521593934874068721735882467008645816040951974728461525955466483141006080129492237451929115127044600101455487929470293605368555032062622156043189717740847809689678503345126370550804937261994588581796837922885670613676976010694436112830038794683713644525282082942688105673471942698102936465141487187354605026095101448112285761664907938890072922351600232787622704179532546130269933683859879265199531616209033586113163014875554456769282819101169589486213685589592820183042135410028861980539322625910659710098290361423931643935687587457926831005726702609799616678751424892826413582451990179941381178507136148853308248991090307490028637195179081687637509374655174445328321211545182649768084888464231720895591543663344789528780527668419831689725672064216208759021278379912380312507881064977225418975556503899018175889418823219731912142024401736857664420694161205976871569877689181547232482735880688947971764544042793668350126735853559235253475611347459103090425570026400168723672405970490954752413296904877669533568277048975813241278763480064887596136249266235578213321828219500557430305953314733273622453982384933782296247911510473927982877459850253578438552797032153083528434555136528584661009515462394636316916153766435889666441432442200032923871756815629650005784029616178773155693243476716098845395166733272481032082938377948561841754814691960737191988091233090743132229946265425826247813956209679568491435464589824049676808036413712849353828415210132319817993961302102647390422586890322813933466582523897848682225706659643502179221633761962765491690179908054057046896257639901293996491063745860587375664835141018651424919764193870163044887273597872673020013958277741161664272086843788998538768226364441387823144621964008766134717132913941177576848144631646918620249984139478770408419806652798862761703648931435666486318370616897790395938972600382116558188263526238254951028108438011727559613196435526039207315720378219577775552287541751823853460649900187296099341691246082686329961109827226189082049189881265033155158208579712733567680562942046168057068089803139924509480442097115595632728849189966711436320005990324197461072493600604236599363539214858154345155466439555508904772278616483429182683140675147033624099662997750643621919003224017664569871646217625720078229300703894946834779475098787140148417698815025670570778102269941616011575933644059932963983300400578785349147453769212152944066592991153150889932479002935488924929582430496727750161218028081316267216277227717722170687213454392152226506963485651177949474130999424777298486709200022233325208957264681918426221651233894412311927352248573084268274860052933838089052486064136311270378561617946722349573924938179997714597988998347352394176606117606135049217137858802663397038399734874395300788042048349222253157848727320163731490845163523683359758587288870917942443663561551563562669350250731107555334672440781912151868453216622290681504618970226886116647935102110500765496587316220002492461379866127855371669660317053162463905683960840109880742395519028989272047954455338149327596795709681666047311131906359593864945316799744340470644118375938999792283170927106688010752281984753986996612769700108413474865117284134214370483323812558954797513664570845779657268437011057015736873264100841719008960413242504222455699904713215589644875398864295381391253090042594879033514727110533673947513021995184231272520889619238644545723389259871236571002519853238718627725709040312940663421399544916195856026123063272956274535486829861855437361857830787117239042914317154830485454311793854730778704035375458063682473526889754073336451108197010164317782653410792545176068803470659002206308915297612044767548477987850725631041225921767648440997734607413439789021526499441938868540020166164565163421596115112505120760999744771743118510434934107095253169062189669460778818306415965755641337481387619044616703966168878116579783174870892813164870258365205435866727740840901649691293776015714386591683663082933331723954470740140237647233597015391851318311125832482552533654941412510274515641665037717870348079534427399121448985810418454603805357718600681232568880421799517873707677755389031976564459069294068999128670096908111229156158845457320590741580405623308476558755812171358621539847943672865733286455304594719832432575126699612055535956429792378257929314827780719166316743953141608334326420071429836336773788699145533457475120434610032399671747602511360535568018588701761082727035826466822447491081641644588708378767350482421775401901824093662823983262238579258788301627004956063046439395798707496531747237788097487696687700947349146572250468733660609593277425287022858085978822568898613096043715708108013347161518404613457904310226690480504799966941719086046461604999265762975382982601751803226352894721017553629401335907732059393807266217412086796752452308025554336612964647192491642712300211372118149972299079846506126710781955162705313996407966776904552304587288441598295655663040281502064632758968194660574921682397514667252737355162656736830423287706202984249783432347361822510775453306646228435851898069460881136221327060158551230500202851142516520021602328852430030966470333686954527072805766957967343018433582547633697795891605108088721522814229960540690663497966427617990242779686970579996711140628725132589050063425204074257530978750731957375444567651417185922811203278325641015205018996403820483785498319831067987140420196269550367518818984861173104650602124682489919817303536019859527380585659836477540003238036234619097718124596266555860444720049555819816548304689992462663289319828046580552603666121927447643716680913208354373299746061984302463779925877824942711099295429109215503843257150933483217818939786818195308270999881627534306245587255715355506499348972662903296436907674889730899388947187378553257418446014831293712619568129463832956232257819375692868016061171157724929141614682994435080738982745088941814174698879271277932962811222013058795474753035903436607996318742797840464878131123290136405840988052967443378039808691980035280487691811924024769371930149785063461654285246509434101118390593516019468568606682475181658894615579989327672330454985532584738593909962680518279646540771140103277247757862339347445536248002036815708600959474831571875370740532361336704079582298177476529154154467645099706161012451618311690490189125959538711212424545491017308682347053501946285083542839181952067810158614930636049709418701454597279629423090870439182879774092381338260534064061543911495575357991462800199738812009526572380331771906457870583868882251776428191282667890669734280238484673209872825973998494439088155666925896670735665691045958621608293477734616552499264772659789786799174993618688530199038344706820773879699707813912620345325831204509993837437579845637698868555405380166512010479351741932292890575236418050621294809853985372567726357054269242497030143098770210612487110708774315438063092182423318611701720060744082766761720948290416524840605666159573438143842362440303801880027485120294699438710303151757388663974766088657160751871690052650015360938181493548641810802366615043417732812791866459207742277030226504572747258650227854919264327208438727634957859893441515610082456816730903490929192626826584693263971272601751274568405698864914950240182377827648524615379265385374902067219627124100488697949502500973993263540953618689646654428053673596713224948588861949635848843332978307235570963286628034088919125152767880879021098475188460901522329412950812718665212097715348107552839293739972984802010088856525179284244510270323143744771883264152600911998674629557039432518389468755884408533431635593021364255280457131918307454945755005379373884797052441817717039641731858874452485708831645422106473872734483108191392670028815080513388701027770095310493032781416300436330114157159119651464797926680660094069133474839153482689843088431444107879521815878071878818493836281718908095445878765426672627886844205531526348534571416331080827503405645459330148906528736026572199177166155819768844859957101606913223666895035280598036906702074076509824290682620502497009948911796496534077104914780824847637113690195228759906006508768850766776364675056950970992328673915713840664364239069703926199285713196907634255777849790535189464159222835113456955100458907575376631217855868089179531509913125338164712646484396320774582351669294303862683695405130466072806724812502709147809758010399419501230552091057381941127216062484637263404536241421078594210935063941889077240633602247289547905444141267148721238204637200002478400528183861680680336433646598729800948318355568381604311638565836363554502622047855083302240179531195838840346453675166418404966606220416132609012611362809943248960708729426975318372927926075489637314093309542773349762368977248328567990044828983384723955293274028469069809122744662939943501407005867887653283196190375430325488899862932754193398107417354182278324332266854635772489041398101414109815619148198648065015577469175756317869737740795901175924101295824333433161897349957549052299462502830752605554671096577850204168006539090328961952128438262316849306650677990507837145481808450555568500939453756246732335461484316203708772574917202861875340069529771920694046291164135447370814578166908193806900474568399874580831108818974042360339050309845013364248620843933944717236192575982142738220723908760151162769795829234083382673504490285237979769137029677918898134945208550222086125624564600230435214226130907669669436001863434867496364431386678367780907073704396849324019068345907281278030742733088289247193238684290637469645452081367572619947846965416229086095223480781950351383907878581545767346619189116562970834322722655579094180824600550114413651671802053308284603524735690466554542432846845278720161925603122773559558068001005550611787038077542101069317842857927973923231221837525988563312027304032352046447973002753889682308861496240224180814447114292990884175643412438778140085412543854068022324984477238081869880927722850962524268490051032195798489943364006845194033177969281069640294795183004096128213962358270031265818604382379384804747559564684090209095872171516451074577529291831784859876327538574501745630033992577044299112047638485597953495278804143595167291168751152354366522197083134789051297929351585728675307434803324607779797415831189114181307276601867462771230751737594156217736112969349128144800542215760674647716977666794712021246155420186901292234801067478584123198155078300457147434974709042767845344879716551048737477322979829815302888930326809971583929356914299957076874991079031974863761735263922454881056186758494729153470926251642803123482477190801010168375991016805286415202420130173571603511743301324183586349411194970373358753797333249312878309667872021118076216592377833971732500412716098012240303220703777413148172844748551497469686479158686362996503742801064502310299309060501846284607880149296304971939224909250473055571688153138319514584660814163301694808294922150834102252493503076966485141005219777470485024938950198829038832800522952497251724989666130610904344440308212127797207042234899547579972142407069320060305288400059276220387849316825479936736479066903401787546342289467268515054846440316701104382387539003471365449500325288057661982745015499877447926494591552684711329831719857698515241426594473667188573505729736540924561432921845463822072770415275239865518953629864667129611227788630295002767166682471094625985048578328277959885460359567374258763453268407976995383969907615102001136117710460282259684410582356168781120815416790686029519527178533117365904754916241880680872093870034652565712118166283745419049147628465651033832254889553270458855980393328547269533381833821184895196282595067259984308042381326669715574577506228543447335012448613978503626424864102469403284888559408770553621711785749693453593371746829857010743069465664847748012997915715643803550415687820901335991991925613335940011660960671680454263993298238895414572612030955091116444252830402625604900607939147797009366565800845088272947722788756042045259338750986202177587842280638995965399491660220101316415949065812668796187183476146064020473332924803096206397550431763426361008820531837306705645422255015553068222341884692055473321241983397402672367929759211046236928287869671720937892440356209582529491389931372834883840364423444512908696914761917599282601133894828942212012764891821075053925479039589772993819995973969383749313110727860139211553914615730556985624204621616101905089688760058383868392818375206775495040864563683194882003211040224081401195926074914188170259591661272923174328700647280385192732652573442472377202333557272784684345825371824539083738260591879062332271811449982930145638141413324901742668974128997415402755589559865672727146011815414719375035521955057309828806202607441103307486809932596307133729109811691719704841484485088458514004479900099207777479306081850777052404987277408212225916300756307044868690187260361336365876955059003378144453669254745943232606669562243130760946564769323382236760667852313910172670089200292875310610802765764787349507883288040457869136533165210296615108291090722641468584214976786251225664801634675620592714103335685191315381445418083970451449835655658572926150226523967839994881196402128411347332139971121731951106187713589120692915882381821004822522096744725521214015530980253442773693502925273843006347504251393484666205367025731898598857200628660824450555169552065637556589917034909980235930203884760406955254452107948262277607981267693257136932304178087694666975255526111704798207010689517257688472715714813922982218388937641779592411373923195900875399122879697842542220285743231293972737372683255787613511667255829111906810451253911559226992948777728026997846876248013856685138083028572798983018632098146763004435270540152200248437685779749907277196272601167207367235594840908944469185455818545789211865444940533638014811218887770772619050527653491097142423192222434179661410363839735218033110485506906343934464010926509072373456610195073699953609478510277655527378851723674339802632124066237533940538126281431944196517564296891412110699910406916458225711911197605783603669971428090446515118915420588031684806405347959856561981538930949920940859660296064065968746044387862849511072400819088239658799975901165710876941176432414175928430481419186977425454308215342997546847144139403579804519994678784395698703495065381423587041729510045672648230151052986008645361846919317583131536873349112765377924301097364104659846591368878158369646603078748912275764188186539006529011228493892952079505763663503711698238393437067073101559774318401109973147024765704098354505087397561073412016165346807799665770227890858261378156951447466070098132981099295647549663563634525115441630774105869527722718829045644261111580659043598570729053490905074520786427061729263357407827357215087983822267259505655675560911852965320638323312403492497667410289692414082236689108371499267097162962107557816435736549895121813210175425757335657673807422519788572441781400963487663549777678297583936295511892645021127145822895202876615814263896190166228946537107913214718913928598505183029590780220857224728783775185361754825919384646201192600893073632863925125669485267842488698300724396589180802776377855639699461319904218807478786505279366266269314619340980017736749813708966512498099969905455718662007816927074113789572703698995868760821865728500315592901236972664087519465525370029796692631389177833280752600514582155602015142363604808788106785238117295526788070745751773306368443234310427786906871579539631119659925371406405420585767208525180494367039589400210599791828557041107987828824290743063478227507556435691989976621644001907191923908605320465525562510320674728592042435370504381231321646451738380785750583372295105271656139563168618023996067665361385310136777509689823963963516067238752736718802884428081246751789921466169079927569165280812607550497782513752481133416046484603305258818184432187914100154379502424453547785381261486762597720977225395482787989140989085063858291787858282524547397343946065544156275068281840458725689221649307592329077117200114055666948564970109155811833331317679420848599775818307543853855907784443334968798704693410370995615332950553544692080561752566674998268985422539885578535925791022513795515991875537189041716734151429791133538813960936001046562106124538805366468566012782335511241796051326824862675740881320524471270343901392728709498453062698478279148956542147952261081926500265681841967502853165074386763731946625019336933690594758547849184920427714591157512959412176036618666811835738109651357338380804625984811288924039082240398075671783338062261846126917902092975962329242594658027618967651819577040846385422527597527666033637164076646817468210648966217713339532742268473159289893897069288192817125431870870893999908220872793221504731584851428886181552643000407928178973466523427729236188650282825503659484238733897582346040886149983633546150825586153401756656741994071650975838928047855256697278736221856063356556037385985946364769876022126049825335511736625537121299947969924251664898718634408604656957740635040486070091120211503517559269556604609575840425812968523212630395471151654172114955471102113016087175422717048382455837163938030805814193840459274061759340196771339949148522708113157966592814923477280428473536772245484975031087236750483593801266056802430537403953888869927218058529347165275386037777865386740594161652326461788718780008792561089842054794649165078680363752251823043179083642868963678971284626341815461235485789569978900949476325913471807694522546925015885397131443302388067986078273019585179682503813236489143461939500223538351058862261907822133315056997080180317757714429713083346287587108628577168540676452947138776683867867853100031257003518426326796453697316496617280991660754931975829090717683035341396403979720102201104439219901231353168845654254652399364512679196977748690280836361775800474621474029810964767251375990531687465000868409485312611722851161535040328335416135295920517084539411777470728803623861379745753296660879357740537826446954831731394801728415555875744282991267143844951651533482900804824313177034965305427194499771107292529786801647263863477005896707903814604790870412691022514273207459613217073164008629972659107190656222048720561729463330039821108023046317636856157876873066363413530033725023721495702569780804267451058843064965576713579748887866585722744935715984680460818868593362187205048137846479459868448115564212585032229952970168443104905181991127863745314126610630650074504505768224969553814356144190512680648593044150425595067541009634941671055835266421512484015883331878421889318806728081328540498153032571113279867436609127230399516283173020755564586600725139241037821158708141610938606730940837245553572983575060102883163614672688679208800790670687971571884976684771878864174064214842872015500985202507373426763550551580332288144188067272465450529267120998892054786375840977885872456774485175655544246260175537961668708566819553162551817485568989985846232812444225503939688557308100084594378389990868462108983550712832645763528231253689214681584034908116546419700898462632478477644908955616369269437051053377399794199882484700735283755884153958999340521882260676612086658554179856243043703450068555922341708213018984820390095319024083569950855561074396223341879080306704371051213357301049055459426551370972707556738672433633197967382507802219029164579168012574229922106365467637131312173370968471553982363220763797692626266045227103749313593288917760724982904279938916321939873237230079570474977483325324700869058778136249934830055733496635303181420543289137485101675453686736679908278516383853025534726721199942691962055256780398793461057318312000009568073328012503055530011151981045747585668059743266529995799049693118587985714460805072645022389064438502077996864392849230336657695878728866925627733081982770507630077770226132802497411618765138140698246511944748537251620755833656667333293713000686394327295112827953018390038060050779120298297850028957586127694733028783337038249642698029923664480491519774004848282235327908344905303887991637433708497350910218609045691645583906517659240030091895705796855243790469600623260633122781632447397903110795553313605769452529486935582415375817554873800340637082440263557200847248750380624751807001351022979332084292174713403457999891120384762240738620363060410616245133485683303954165710079318068575874764986021644057243832270121009810780806919551833311418950662146084546232788633105124561127849415730986629247664903615646616129714445739114245553633580452456905182236135577363474910065793358952583438166735390756327874318778124257819693868665731425575151001762941621551723523052652059985237380876146413895163634403100104983280524043758199802753906278373330372101888198095912278126569257888003960203160968565030434749688815122994629861233733392070739794720021456327776337803740030782059287452672054368614823867877583210071603108234010316307234775568850723520640239378973843506252971548460232248000395158960807691087598834054823730820761753220752690688882765042191002167276219828906454472239770618268471433590873940432957832596450426336440010510804363485643118592268815244572100990132487957805245560837318095028287838934987114946116136877927415677971066758839375036601010289430813597720781838737403780348414076134195226998876853117523527664135683732168617547097015526628610748459511214877589208533696275115816896537977437621730084489831164586821432859463013566992231922390172186656030401187717636092586686520148621036061876010896706278554751733517298746030034406541211150320916797078435855454426011763450739925835899082959178962239551118429980919556542028782509172095764968814349234885581539311301219571766810765886317674228492302079451499230809161332552286501741930821905063673597898542057225064821541574730639314892099594615523651125289758132413669873928303738361909396958332866013712628388541044692679618387380642171327799513287475424672427313083425241118900177373865568253612552259722719430171175615014586644513307324000522632857234671513522174091996815910330915012274441627314168449657786348737473116864156086277859033926800440260473498676290190470680280501491577113382479661670747233820259835997204451076763867447939985842906285154159763276201949365313317914127896860237040563881852819253685201186356858290163302899926714890458663839443664672894443641066755175656670781138289029663970435483010771576773328867000007153926132774745182192940056609794614464270849863727349940364610393296402610085716433184868219849046169335658417177708514511133082877382369698037915523794480225301742412619695207587341958925869336804505975669309927861322807871830550886155267770334146886578918432538923066042059551820810149556333995170134005168320286030300760766939204209399461949793213958098454296671754826674622776185284379764204776071792395347677070736477060948325801680647005629268618199016570656408406728193086370248708069771473914695053869142957168099183750027988841201772472114637800808900709519272992958247465247623866918234928366057871314300727948607137200773903895049545381517477657621871397510218037969260041316120738028449905290194659172670161847088845440124780632745571888183067524379960792845784205756552648779021167281603936296540246550309489006590568218859835371399049203627650697641400016730943943414109196548028626214643371919795955852824821098526504985102789483942706990097126224000418130007233734392339082343466518014010759406465844166727885253312943383091310184461657417767934397877854347807366619505864608296410260313346172534140040612802600154617451474403376144383455448405670521819389548376568181432650114906835195979181308372984580875051497945099194945425396099681235435216903154628584357276740848835752178213295553324759810647604121103172549485624451770363496561846680235434124753579189105235825339112104068028871708164900487300655452526584228471063560082575651991117647049909470510935063930903751091733276822223848481571724562295222488037820655453769771415681894323188322091310289143259215806460258777841916049860388984971569432019973681212266738837658676678410266870260022671791894886613683998960632777513193145706069267437911611098740677517423606668397405588957375772818704268866228259206459799335056804515871487832937253372911352732479554222196124698030660505052631161978268701566818128909557646342549518415920621400049217279828381802626016770090795739248457549145635147091834006076039878809757182563314318855241435753622961244001488428725357919113034100560332075852367278537171693574836918543511604413696406425935168648255346944541785556197392656988951038288497412571293004014398107063294436702466250207097717950394552922029905438791447805185111245774754403378825620431828050393531676564304495101719915569458216177074956518307784982378195619279522468802270663484734336083126302691631542003548365377511208875947258670629378897294751878502748865246212080338212958902565008814190693323902306577735881319970419483473488086639748217020180588597230626921870380892713832686533590734647363546363031028488377155003359414991829820402313920855519434548237849774185255251613385175805559522535975977991811784377366232619331596013191489187860554467660037026811674153783419972603292871867744165082226386373537475373883886944692011756851852276365526821030108545640081380701420407913626945213172346695302670171172922570891856704268158929642055703446214542891474305299286520474972631270521690234647387135612735068559911669117688916854360620012528620644763090645249071895159079792889852862828013282685543679467411350326653581109041460905994588407769869095569638022040379782007344724937779602661994956724347250353342321117965862968366179586214827335031978932412430400980178519828896722003300556625446493859973676567769889141409837644197809553914776213219861720671343979783851481602233221654887958634220874489739700944692623912501916259413184024866590345108812074965981095119846838167040394348582850380856787956469603926941688233978424459423819856326148069182971902389137114387446683278513514879071942013200252029488802123614198225760417391270038774522925819607567142581272382341527826456625788281734217607728808082860496872086425562057462481637271937663482560805419807608698563319257654366126536650398665577247779685838122249810375096086688488389992336552005101261627758547051015777740969749248414204166914341227954113096607956998599162161873409611369870765807759855407645289937398040263877310306060625135354389223574849318155280854455748563069256737586738268631880358699855973027216537462065658534931724481757897770633981695714652830767992319083316974235435464178544051802386801435022680518135976490052327050308378830385108228907103588581786995197226754923723574815326627692131556807949989075996535519869776367060398974634581003569269601291685474994051598159235787987442796524186960770534307965980630224286583884033212907225993041890817207769534603119017969092101632598370993985084330073660731245353534240501266047328600488885340518165316072819211233463595783281961228371631035255217059518852690089859591512085126604479753079990786663662337986892880090047384803199678095686118916123642820525459661424616352173756744313873533119821363986421951771391061691875883220249812336606346383503877070254216718105877818008180743512541121922407008824492873368259671748031756239516453705180779560856578595391099622435559921743816233576213184871309288956418341403722217433703704469469843261694879781098881666514356651492395440619854815646648709352504293308103040493869938326608799070780149413197938593663313835077591889921732105328118439256782582717357554171015264175062236833008354542047140197037171104940354481571621178041498869979763451396913935183650786622523189961298155029384211070209095390450054485275100574145457749008287574947014852217464931279728056544577993015720887813885087238895159028952631213836494386844193690348019860539169962926465881009468370730540794271829692011509218112143911231745756735137345855894275985754541071245205980954035618573091280643008045428205788057849658703707606683296559311389819460528801357582695188825788502084252483135925348012400519655859005599895516753972228644650646267895321293187824691669333993916125184301908741232334552069219558644809205074534298511589757012887943631681109512527427663176070692401530721560146672922976794771483889506573073610804265780967275237069086834004807902847237419100404347019846471795657435379637455093352098828085727794749951831222986250685970918101935685798746413825149866966854199085236090298637028670820957810909416865537564785404541525561458608881415981561597822129359968335717137015434404225354649096759994738387417827767716870569725035763810904746419031165080278310057444310377731804770697667126881941810692599331727401625715974832461126933459121322345876817029143429156903411228654347046901392824255663374995604174332199658542974091291449821248212162716935994617377270450027558815057542934951769741954554176695228521544638085633387272183176075923270239987287537760011702837787869132756866525881680237578579938364197578789950209772262837380366552267398028192950298769592603310629094767811938155460756594302038715707693688732544743371728176495123902177643689537661595995473657666456443552792734174264910358738406430531500729109247684176965045180126840220742279700476361579943416489817406579336381215487835695469652648989254738319255450928478779166132056855428907733366902609500243171820538502124021831328655557943557013231818348119861806520411121819665114176232544746338777670912295105921677126912871905443572886214077007818693719927428090352914884790504029179193851455164389450692198274653836337080629702403451378084208813793236088579165306080253313378136883822695458817410653147683277115488548532358050441281100291795828415350368918222341902985252888143708109651282700092011272255132235967937971602744328058609073905484736762437803115060211238200230555066653159336363039156099271406677383344716392535146654945850146481974103186806435542893041339528128895563212738287602349543433486416543328295425791867335182252708007678010980073444587103245838146863201119800945725902917586850051562831904830803100053196924181602464948223666264148617783852431483892093746880222335709011878600792541050857315570646257982723207470753459627947593382473914124145414745279236140382005705261838089369371911826849503074497993906687973929666408559830045043590546777655629253843749509790067622886498030937522617303029857330443003488197078818013656631323591204313644238661125671384140525651879606985291280389703059893144298515732179908617784246539902068141007467456979607771532540630008725057879408145510793992846096495327768964308458709363335565672855786762715004214755695905219749572250644546749215754958122378830046033372079178041829502141997889152034296826888711842613044396674609670990137118565987278413023745903389701060611680706029840260711032448339220101858837157204003286276009652905249921986255309777204810901071171641219937085280187556368052122592448342350935505859883041811974453831927803812532310823327100663288889453737052064923693263236406858401966438921918141574074718101522499967263239746653704509536055423778798579781657469607576395125397771078362869986531619303010657543643246148022455850644556695912306358070739635646205843737661618289596904642060384183657879744756385803390230639382686446821129571664364498144384226038747300066234823263198544128213569963175452057069830173982956814567604543776300683652800440909423046653571859734038165813761809778667155822483142334652124700276364359119516885842754209446257688161941911948818730384153525273407035668485518296092681879255638592046111301011028141531222100465816630023184736477556407936143452277771838917629787577224043996379362977867072155916501075810327175666144563007179000686372875022211991364333945259196913023438525994751304334675343001804879985725134012405931615439628549604710906789475440132267472522578523456920278403552679032295467072030107775528035900636519353744166450917994105490208313702719385485890328759999898312556712880283089782286312824476568424971111780713402303900956633827347036012132058975505557777441223999577489341444752434809818874136103627122849907416531945282382584449062786157710756073337110783199139581430049089207606004867517025382744825438701531452590069356098445876469593341570789281378875712768003398070404552383104954424937962480304901429199688574816262313971055252842418429500400492558107145516033425297594044637862332518544365509715908519842869039730398086639030226246525061187710295985773806387358757742726015718165713638305765564112871905928050161984085989854954795964694361270526419120006669789067313095155188785531636929254546885856203013671674517350646023657129078281004858462948010892280930025487071272321704565520874673451085579113127686283572937149056127246892797666519022150532934066261485391527431147672266284250006481237635318309607557508533830470236754964966309126863053863633748852202574961318707312566851389335186750339178041877187804310411292123910859398626441826532718483187233735479288414733822192515279702278498391833013543532376210983536462674237878716346599762463351561898987329898519694355786885058801414637830470363230806229419373036393098288370472102171821535789785406143533410231290789217968366902185177087864902136349872439742421879823498094168809257932339826303020127998192962788995163829974051640796291767848536299533806311718671792892909469312805351258577473361215045805295960768948178802020259291458845772681262855696082846674368598415455730642740241735781150747376486903833338955512833502943800362140513035356940525404055841074737923779041874318874363130414663515365232522926822862340967157163094202641018042928550768786747191792126208771206270474138769703207330968764762174968579496433674242795607112992466181163588285268266334564390384912776191903602178186880698741843883558525607173899630297011913374570628527717635990983405728418087806917541512914341820966234821578561895207296099381301354454319524445080675784219239032428683191741493851091136774899365670752047663417260538429640747993012269421454321285377236688866440059613339980935748360334950402717742426423457814563322713654544234468741557987177771217776039197956282201858293588520956500337681504311635740873751121703164624033933635905076930981090542307944980127976754020287321045507542076369263657648629067019609125880455758669723804985717238889742051304872406153994361312924396190351619523012855194264396165273283106287525473153554644579937457140151151827838892898434439109228929711008433215730012698998747657152126456142857695408723391475391245537639972844522189352758414559302705910569746402454502467109383355127657794722813659499815684910765589028109011443255336803887699449723505380708914197769120619649983924892448097383809203804459498179020622134046888894675252252950786335012130994993748115603416565816309108080140906213836973993253242289681916506012537442129651841195496099677192513659702218932891544627365313458826649701910845359784876189509560594571704003316622475301996757993424963587766089030098719531597421838296899617050161515807147254511465153086514376521805528674320503198353024904623659501860017476003021379686052108639927304215769570983220261863192557165994992955753843626018592317753086559164568573458840269797778237778511517523076873492379410326862760025620428368145182020020995770752801342864556588158216474918809193532008708667991212827731952367106228508408671315054863886337125277149266920954055002398771687579032106561131696140120469589350215225325808847458681300941169321332576225810262052458938026707224301435740295173829117973491969120415089579693090770573191480029554427168446932940943944952089424310221995190985144822461802678189569068043712477229601685294151704130809116260301296867870403432152258421515560994467507644058509913284129866862555621912581579964233479068909885228939826984977305347832541962413485829530561895850320152800546557203740570012088147771234837677622022614675551317003387939052023803772557687893355769082084823513441009570883276287455151659404660804029771457644222235677934754440148576966763702487197487894381677157978356000632329773977018302886748399351742978776686486702236394376980517900323299812341752265919735548568763354722556430661244305489408933188481467208714163760320025828064704237700332501346804196398945272173946210718394964774821568792545707264278897851549772143820769775871586849029280195599309857920228065628947349196177575539798105905398502633245878243856248459931866460107213766873049273423321392847671087776037516431830712095404175999968307690341441392804080177041406266027054867652994259859318361111067057275185225191502610426292955013943112927878971328480105696027752040264940903152263933659817580701616481094652639773448555962728367727615587015378008875866056093128185868202623637774115594635407028413823239120723040406407359795387625514268987122367723709989770576590364143764639687162282449037131581587896133192105619879528071293655206621524851961861355424048695338706565899420054490290225987898620580614092952568628377614168727036303598236571600740063365185475353855176165888070931705954825006750583327981835529878924626809542411671549169357180597604520392882289644665974795033380425558893158426107315848005051463283752387263717534436168181771973499085175729804532587792333624256350502555154179054140776154304774196480303392355099168091583100176909069504609344237606013963261239129042064631823852069791973235486620236408283382609991148857978487588361204994379110086008784533236890591034226169131868875870413782458442292326412111294906203609738123873259113215606904308264992509112306732985012672410236798297012455067957835527313716163779780768902864991771350631875060983723289398061986240677351982973027422610499607586935669853856220210226844473729942735801967562888833746184542984279682356199063323089246081930149532149423384642061472931389210224909981035839160812177746757277635739199166471817343018074665022930504984977070826289682072313582292711048116075127646542451285214743831887407518084798003250542533488998503275891966954747264083692108551007564571399114614193497430922719507132934038384105282541866000362596828472918055328712953525379643347418634155230719466428769439301272406747685814355374043229334737200053315038146723221793308393458940188395168227292268318258338883042788760980081090856798478707706564144055682818206832669585367566149701713270806827858499133216501726553736897557266526146083207666725786705810059639080837209424916480386117425804873236224427226637197049071189020062145168363063573312916164534546455690969455978182193741044799135488981332583427132597325940794723917776685330861379972138336055922655941663612674261575850497919940003521830597691714285483134808733581416520390183450268547952311250663219163798443656194756727980998580139335253429279480100237768572649136243802698905133603469054619412607494579337324519761922796973938909596092658297526117829047527325535121763194075495753520980435385167782111918147781081731235697928391349030503912857018109964151621943877201904521322122880212149406279837230071823712676251857573574671834830946162443948402701790773644413328473169563462635958185588592476622395813139228317702587801355648863621950903744458168717071538317809798876679300454914093600374389349939231373038776569432805381786421546160554885317843392013736706976014367381033038218357296595136031336684708433523143597556022320764519763759837761228583682757191014182803785446208307324281422718851386693384810907640154415934121212497383060098913595244652474821216819118697642697180538224589728756951100053123254215617722594942355775094701065709901437452849221235602631532258659279567860322252242875629188563363951852145738593647557267066632257853784223890255867849139093519575920030035995234373740428167730535008705683236112652737560151495965627042189656976996279489451035051412248006021858232269006807759896006091565823473190733753990219348092742593243978164841395823777712978418428521768249476498068791440831453790360030259160463995944926886549965850924789284699328632866627204873832764494369504211782067154403865165737962546747589984120952383713366101119572146849257282158758921765234220382890082150812635142594662367913988242833253790257378342305086560240444781540967966684006249018902352884294176535957213118774764170561418106265298524750802290017951881137198966620382190674243772152979319151321816134829107661458218016736072805601400388304252135592871072257463961126348304362065023478236010591618121074103737494124073449241306352488103309484075257194953152828260772992097282953217643910343971013966523393435252197394552044667642630380943913113670347048404958106639721067257883521147698810574971239374883418431501216157398045819712723615139123876426424648217478355901678406640911778856951668389138070936063100110973325258367947043019655568405735020788099062220648113447814816061976323278998323027120820076036836368256949192307979076079695319075783620195906646663611447713677030650336623856876654826040794498596514811334812376359834991259851175279761381457252153658056573326231125753660537192876036505044178617680026061216111053343521725579089053194324800917034637879671332485376301782821342932140249573958233898290277886022240555855620313827475614879111384542382620712796540060358755914853516356585408453836633473397754768339406527048978848758176276800357433865040439147968382809302602886406272669973507556125206216995019188936857858691308039557845739281814094408151102793723929313136923392048649707644821497792121825220530690253639993149481878317060151647074650159356501022562841940706356520989343195652252815562851768034351409958016985945718834079108632312927994324713638571909185606299535120252792786491206453539219444646910317491926559821700921095055167657274730819192921383806132820216239294115679510609144010526167844951632923065964646605779564713544951480154298768477793877081623241644070110773100028654724524566216464640907192904469364190125609753771042286440021272077692193558266991542757543576407666570781356115986051889509357715786000325884418484303455134586636539721033672227292949015606958313128676689985543021808906707819486311803064995992185117136086016809560481835164399263040275886572858016865571215470948193259534520672677706794602692363098798574311520193489614018167651996545662058041449205274221368553557506163121951772663559832226948942108609524203034394892342092190616747805259347455225338419634172094058427828938038461886997564852441117609115299929536150516411265595653032059350635660631713801700876728298961395219047987366004123110133746395160926238440646348502378044354970740189280661352397536312963842275201273143906674971911841699297883106433531253115850996440102256062554132209329024697595891036249626703569503971556175975092927354578351746930772580688126241377535456587287437309024879265492172355596836136425930757477416205388521273928290468039548097195830078267122347651458502215971105754003656559365177531536623332356790045720488335880801527695129617471487425116050420680190135109259348616746758289785234599387307377236775754739617100017255211411523561300730789054592747945996125941489900034593136396619503498295035358637955473416701481781858460723028848703379939737077172346324598446140937338841039859609207611440086056840753009791606457255239735143626790746217627988333339954327531815677914224789715259766098595393040845784697172034337017909909159285811046373426731576060256629501120703491474681126429570695747098723064797035065952791485267919276448490747781577649092541822814424837262280522051384142510210395565113360303684727398739638969357640665956962573137261543720291314551386834816478753198407194245791147367099267811098034495640453652851861868305265133444029091095881818000008326610192287021520108383204561679747120210541690298088796676883606425389653752593853527439895850007160706852458499226879762227589939545771964813097325973917000520647637921879669262701636951296621045020209020737638125951202309147584971438501781004094041644465409064621815204097989809003616537253617719862046641177602701040828740281750629380100191431421556222561778038668500677692462011376026288569951678498478030612255092373656971486263602360616746197780548720547979231479417540095143722373566165496279316304871707750858192981990286038802940912170762485730501283885005287225642073076468840703820944368027935499295773205776877975843695492353212777149177200789248598425800166944558895197477329439865463800262800687813149796337372107611349095845223233374911886430194365020012660120963402955636070558564965774391245315680197581827258822301003676634234281396633081727692806879016954585023206815980338572913740841405135228759433991536104554702468140138521604474162439178548883994556624418088124635936171124270129649828357593025816689736521282155343311347788928513642977520605131658685519668897897578864939459666056570706420053884583785892932303845497027088477371040615539728479442947642236415290874969163786952043487011228776624678362221497488093858521377437516934507834403851052963337783044874331928186874727969030349233392936701048481801559487094407296529604843013024594959018564587026916838548146891627080814209596726806356921098586364547676023349705285609005181772810436283700766610363157760146259094359940280032890281019390408499062329918407039931930809556158930789716231034420534044317371642295028231124503149186402940655470867742060156437383417477836419495942729325543142331564298718609400673858071136007069430232916515446980322448644354317601434908739994141911188013028430759975238006924446548274319209309056871965998789400720558268668893239658590784915012966462190026693248899193479267576907584575579594547108556517163638109781262933231040797458788538876899840600572329686009069825149486661929951680327190816912731478489223113268613546071753169307331259425728557532784475151522048166567594519846638413996698593520372169575788855920285385240390421553231675721718738837539737653509612237431407303235086871346466863524785477796896325537620474140962651122053515407252862585035885098773898382118264726277921340362459241482221506081045559728279372360349257881918455523507829431663169777875764253645261857505686203216773011690562124062784875412072543488184946126991630688925658670526588447543900804684728411606071815666608134011883277597681500603278235936918603254560392824922684732351716016122440569394052987459962858723534732216537999517199858575167668191025929523328065530559302225257162381100132512069125133021175751054517891906533913186949732048639475663782136083515967971995893838959483052861343043301324943637096989940758899263911238356010527957508323768991364492923984466673139787282600245520007802697872492501017654958482278429067559638728089977639098431322149906652732834397532491538022069953209174442383759681751047630985619394099919750349675533003284442741766159725943426850586179698337538224373987189890734841141692761021905371076377796748531314203754097131866481724517714859114237427314662580726206759105565173988223218000752557109252800727644089541599006356423511525776845236745785038285215721269261062927697070510349527399780285972714889548525542839220610737189710868600101018491981431339623877295430868156795036029355301237266488288051153269262946918117145963605496670283000656532159258126722049849670420332444754781056932160899978973146779116621281639442461323313347981191534775539648671390297515959430362243033507737032754197498206306896861050189338107469632701817244322003571878856146453896233762907814357790577976783331740157981901779655874114786968158440345174476591519949346157059440815011323653746823924045086209897764018077331647376363729458920105666925407982032486263043111247937702454795605982965021534199679765686508679326425081523594213345344046768921925857607879507316113712175208342716399415602441850042251738582990172951263905991089232811702048105637409917670385535185298696116394723010301588245653547830715132306276500980431194290295199599880367821923202152733876977779888117999321966067087983854639318157028542467767998206299314322723885707889730430025924150010209463866296720587912963498016603692404573247504580038799137994123841474379012805623022257089927443568804136854463203958753301321339863680482166883799501779560894782186822196588044735471637143325661549292937741259070467454348593075728093060766045812269366013429890538491416468767869900869824915894447318165178391274805591091866793597157730109799328048021609749480056097456815273244752452747473668011176468314225266436888848698591200893851802687619134028235733535083741891809641670308859975357648696218572388853193094204028026759418896364796079548149547177819746694528418846418858538976328149638101575319947846911627957688077304024606268223661840785905014036448508279338950679778243244259525502636334891644099738170049739306579194610942857313247629108186056543835777290933663622456854511671155030799503994192958983382224766576919189762488990984077939592712955749669588278481581487429125421516790954996553365299214311160432582878209001414800049429762784566496628442575159466910820256482528294293371048999826424754505840182890964694921668472013098756853783910482518727658154590272709891497407016795686891299959980963965282123036878025392781201076051030143212061125575505909897072220513959742892426745933147895209471332292245113705110641886019713418220449054382187588105453765927985309922982095826011872637223407098739958144581200189832400392032100024993692030518285274610604722132605927154253520794706370116955206253951271768707855451534441394147393325422519173348242798089792853401870652305872865332253490713238604353061124067563815790683629414029197671472065491276625692352228752552860573252646679499980009962604747740102974719715905278395093008437390405759910158194364359153386336984035233806396460764434026485589898155940286279491802252899489171050037739133094904704724280005782929248400055943930163523104930071371099953474298721762919131709238405202064561722732881494180062950465400188974332254838092902411863831251026209680708832039376978006174610264347387718993513549542713402734832472944458202434917182972755695517105031012220452588519907353879938128930290500746849757666465530511367407492275368528107867521256325294630294183864406243993673482494950321392403240583063121151694413859389234672627877959375986375510183625782637018850229359856113798394264931700677823725002883792976972678681796675367836918058173955500166637748936025542035612796927236212811253679881516983646988112118120260612567042098015374114681330119533110578489529237399665369235166582097395063528636640089796333530085291655005799681677408742523455126952270254918945992546538444968764606865599863973043856691441840055413451623736187723160807192349070710336413846911579503591107226392273896561732417289714356926323979893443557553784084494606157276954399010375420827607643793732520053679505243735090504941922836909944686141442882513814657223499648384809322232671711436229977223323733754600963960277098143251311480660930141259427060137730070678062881440832746794100399705134697914349554605109382809677451960683833912040269906597112526091302787083246511397639162845109767408038094283254727954018056844125758595473567569582453220176447975939002976397624406953834402296282555643018602843120659968208740297383155038149420852038429436256168056902786823670999569629745326867771568989047727059530161822228606419955149628886280945930156894222193047661435362907070888444488541202491810303103270610607466038922127148912573306266779000801701659997237971661127597571672887236185994903532006578819078740967950931126895939907988021634678089185878893385870141116504763222706114268276292270403229811229300626126196771517854608872315975837478197485911355204806949451653649084883741763238349920431405593836403965980091785896543763183588876929714595305430300661383041312614286633966541481599802496131274254408424354980663536434136227068836278892606905716385805508595916176454007055157312489053932984234585109938723803556602756919608004086545539809073208010469156592966364360940174766843302319434894067909949927920427409004716800967450279074339157283633396343091068962203599752979434014297102766867477603885842893796043473792614138077051302167383261539600700998906205845933337457109301968961281376417340431595784468277819614249660696251473988240933625516768976592660033214925904320644234576991846009915055876584253516417980974366710334713773217500049256487610168413870210889564701438749369986420710579160707317191849941896949674415829729948683505486999441579527052377494000669981086997961562094884284691666624314922028858486789190398876424336888077947065304983993607457713556248004777246994680590184559026715973963481729080584180004567402791071808794978009180691644541714573970268586797890228057999412821028528397548632690898583057463523686376974994015705179122622051140116701293325787412251764612372133847047313361551046438553213895610488737654508261660923256936974646749761183908991398108585181350029033074695836761961506190263610278724439864502937423640581483195280728785113833093933322760564950883372732468592819303570462648371831273640806537235719100876714828515918474574560363243910094622937803562754979813194422898747314191924369791359760973788936448992040915164921898521693618210670409481232073794515074818237756202749408738223915002124906066033436365163224679944254591278747622588761492921193908170059284542733331232031863406852360788960931938544346559140229117306778838951386587338691979114769197791947540278318586124636928585118082467003252641156363300804142761032061352683920030852704483817336507174542170161076142596344486660902094646604660769372102673011741140815135325863489840024752440246772395055133453911605164074311507779615335753288602573365401227457750905652493835608226259142913225624513688029117063278844670678032724580612681816993169133814450048121246481632035492812070812432229939541166488706083301515221317446976562181416055323076340680542182995987201718928544780958641846148932345317021941468539198972672368196326259879016688439531933310243837367575736979961911383063659141876552647493955147155927362825704396942277952181897928406651489638329804471282456767921800969909004214014488618594251175727736841677102072425865649905436201989182743674216793588545502005354812355834869402155001630433388343614858812885791995322587063864668346885053212422839232945450564865545646481310224900887499306074090196291604461864222668534493748665356907899522767241365611128977391546757366602785844142225968889080050192540362709650793315491296430067527386661037400272118536382558905000393091063033114120082143827816949379389181208598981720868913525205771138027124892363903822910690645460678217055764570244935896398932473675975580561203980713533156247577293577529926941352707095040816737628153254245349729266441829244283201032311751740002654246295366234865196589121542259051736209241791340817103325409012405182240465763614024635406004217012742214377421002661709125955562537960992509917358896367106630726923210090089365671651737551527947514783991826736403110069660845727940836513234663129472258451442529184721375322235132782931450504322732370832982590577351895472682048160109957905939806582697140192131983923644902732327067887664854663426745099475161035469121344481727070346935042994051731118608351624542453608684475531783156850037617590940646796148237741721930670815987304449086084623525266030935281536399305622878577294507861143443709960383403789625450649404636029404476402546709966959381426812283804125657671881816191177782484058186208386197816942405048693749665445245031092711545302890910914464725229526299933988327402081893029607869525421631839680653248791145508128065981232928673366179391859377239451914097784551307332554543599211213208285956155626087396529646261592876933544941944071870274783041802229126112958560813569160166069675057704404677140628168618982501633945606777041757083629866832267966854946202960097446136269571837957529948611883437027895548041384875560941538296917740521648078643418215504961439015484237642884238098523934534643454210601118449972880754779679058794821239198730300223915200702623579715414526400425570841406059926824757097797672653944520736260454971009850676887316017939156338797984887969869397718986248295111769831107915487392653549738818986826915587613509195546197867676520491166168315664908976080796580271288908185259322362920829923211926080746136995024729859434531025907712352840645782798130399846581509804994697930941040227023480031907644153645053324908424090953845852757191574957697470514895321094040807817963003987229098827990899089798713844899080495199341376412459194415888027080199951355942751036102526289294099165266334075148365127920057894800519017451656248928921600602492151253565101576942974035846288515202248389069623326865015222819646732277933572432434811506272957213720101530032027918831669358793464723969916524347433857478042663328510856385085189991834714229576177809576498954320656432854072853968452601357176077897856225195299350634085548200028664368856374684985419305053313771004282418729968669437158120768517330319179035196544275637666827989215475148079395159488061322995886793771641822421848276309251541230612586438571978727473038074932445617225232635740392753111121240904749606888902670073751987701769200522177338348443713016754823771934938896454983466992966425083995740898833970686239403607537538633266645190317240111716344826798234217754518852766535577991766382618501902758768714821439988711826722699504652291997445772054599229855285205665886077485759730828563156572996547219487091780147032593401362368831201389362987458492951458179313940532218724110226342074548285192478806839451063073075493168944291307106180914299822825870820406276072045007044745417321103712076148673790756895463051059432630372371177775266302151011685461149192741712856672090657251851999242728195895748817744820200431074824028924029322804852874954354983126885208813392434012540123183754405395974143173973777031096960564397227157780254205341935188187380203724119764432504145930758107306694475875220815363946977906271922807683250720203455663037998360082439473484793751277752606846233788290101749462270714071482062601239824341861164369893627053926829288755738762814568846884194532983106598525831109033589851003441708582689586419728941643292807965020389189876147457372547911291272924038985036888289887565973033013868329628916381616443796874626862249612146389575167099631993016205342626499338558132623453394306002281388601336152365449860423552326282331213631828586807158527978591315776648519260096555510693406651038691842070082510761537766617791686948506178433961799320432517551775278516924227375856601169743531066170749800426437296889110621159722005900779550924741438476920507779023478429678906426222528210792227202475360818913733040057548217554996639535404801262463221090108766701921579019693705718960124498327282773441828498212464305382181587789319258797709385935962263188789089519738777597260617101149316745163704280626286010593137526701311218532865659625625605701308330504453628211998477262778273190749395695830005535429665380434408250932826347254280574097233356382598815476399227528700621505411018371246585760054691320018959723925245932228054273434398660410432146402555963457297343678468791814431778346485836729201134283557546538549410842679473404759072687115607607327367615045806222269088941178887113097580660846134012655803346343611757203543689256211571045120065492991962046154394943691859541085140239713223679073897887400015369181813964581850683466194098392988661181960069738507437478888267455308216252560014607922397312557178348326366812587020973495931090612217604456015567978666631848347621251491337928383992492134919110071092228725468312610477294899710039306331439272589198875770381089119654814696066610399717504879538931462717318023068028159140452853274114971278796654150952316933357870125380512030002879797014805413347282214097883508298743400054272385625058256381869261349492500328560838817565012610946823068472204488737572827531198518247526226958992431899862233103423699929028208166351136473354688467849944450051021133768864268772634061684769734862730948375481074171303677647114629031685482362516749958310045408484230756034688077056128755691362091211017874641669273717476431959180186936494937156128225544759461729012853294422764975194694341476018971287554358413629472959011210104396404954969951595257277368301397258605128607840345526850470729768503871421153128249013911579610620692095566906415055562676512830401632171300377012178444071448564119261538309068809642846026863500904199068563228157691610735225673508994067792670091169190138526266650217549914441482939961596024200888686333631870251742318192249798436768278647619467925590936418496735330972882321424353586644084923595848457405119014547732695253870833870117721518661962149493947165317145681398389700071838335184539197286327404196292877075366306798042388496464432356459985548681745825700556275832519938026362326025601845403865988119234988748172873413254189129423898058721833333471968891049367145990441326636859422166748014939765536492981632236172551514158780236674353808464366143943245858394313373891421041846902821515014515436706010629526990486741225451743474303947569777523007318449044751066368079492395804427638082107976141037781831574104244362714618265875994329775409803317114498622764295599085826489869230265320120852307989631513369858698402946915992959335987905897647516818076917338323993662940967860527381100929843232493211397429055197369409486803846364187325064605085940847332022518193489867310612258287130951622989719435824613912085306116035860974849056179791359805485976990742748610648884384310768450609143702711582320131084822185189229003190466485799704320883177571737987939941279772856501423080830406652662456242548280127957876628852157675879245356313253204273308477348579130699933623250863322095187545252084725625306196173129658840853932036486630730594390558421990965863020037257744842014532897899206937501630423048606205552973541875733543498859800119879750775843943127763376668235071008064277776146020238699555705027639171442708035979049425548363652593282554839865909784229642498523398818937311808671218874073991748812546941799383362900067582166578530693184122953611864820446196041538005410337481910119335198390212772892143040370764123488050136925707110530254614706846757997162641711197742311158972385834935968572056505486668649947802570497277873383937139287149904873729322435768373737553712777547850434624826579043983510687834519204829193961025137499570827426148637413292871892745659829202469878640720529364086593339360982946506321164136738011853187025449795930296904179699931151820821356338269297424195476589539170743045720350584898041681539367780426329054970574328240803790183757056508575629966219897445145082396930584230094331284306592381548240432615116863244846631124404379354638529463168897443016876280800747710893138571856805328533288186066747617792666084448017338704659807695630811295153896359061162995517735271398009570528402610551973534492688405311253897562740762460206558480354261955300030327827472766678158874034594017277875691516475841422995290966866645217920145508762287411786852137747708210740730460999156241359298240913307202435308698818793878189129544296050716953891822472591212104288689163549103806513150508600510433695104315733118711508937574334018820489075808199868909757093921283494362062750452190120563808229992297751621202168274259678687820661988020178150137002635178372672141314383230209677862362783336919431994153159499344495536970932366570084448944816311822894577614267506148452103290882015455308609311388405600841467167648253880348722265836294514778488934202099780317668562054603190188558193079025810671601821130572819292822487167975541232981305326378705922347581863558839150526780249636078677233874155089997646547617380351486537969929372341954353234994970999518958019595855646455532460720092213789179456871141215502722016527083393132164311924903482652574249900565400940980570722243596159788222699829276701377207524759123125753241555154092028847721526544513749544337856533932933829287958784323212725636809485419195507823469756039618564298287616725033605220831681710295188175367138304520261851093372816895816476363522591426240286417280635849641328723844925241362078120178750603268835003355982887520184391946673222558700278607626982662057472637038119006777131653131603733555219177478727695800144722651549042986597251792897557822936148353949231239898414127830713854018726640643160227734805334927061829139617486807506582475444859997592148738888295364842121419776190583632690125922849364107049634653016567412306041084618125867087781950822555224104404185893424820194654051360672682705463796254320254107612232580840396064443010592295491701377605213880273767055353122200459344957175230802288822966661796895690418658221900660784844195745768598080662755344486985093978551938311271015120253811137255072262761703582578362928776730467266827244066498645633424166348520546649926676537963864687411923276652427277008283535803290671613172041110045721922799445206245496485891019167002251394915556494272736546674386874091779643277893000685846196894023386781434482068782833067093000674250378223316957875002110068910764357192241728086350893241723672608128623498363220602247237179098648845029295464224541310992865448000060936963122896389435409322522400796093857436233714586633470346810932249428300242084462973704792901344304085650931311036316864733759924326594673980896348698103205681279878899817837267174205468488064087194297000995239095446694230674080820334375797964589552968137384007112193110938317369458014100898594595358582138800880776251514395089266879721492177098596328190004845237156751130952551031291201565529814432917347598188185526402585191172164741805207543730150235122192833570689456936390133137393753729320613253835168466708058453356656661431403635312664914043436859754763628004122941063761456535147230026368733860664622058677595094434101758910380715081121368729415484724154854446803013568817139938340112235769093717663597200653001549596064802604439260057093671203283238612218134683771641534737826575059981628998281608283282396500493950554171605692624510278899510093335954199649818681829374808723272183556360744730679090654905792680927082986983308638087196390098678332605594161491948587394746808042803543974125943947890684309807376058567097827074459580435165219497511741566908553934262987818984311994149327446801449454686265912071259616247473199969826818723965174204068541761782411888984038060563269465323079751062100281065954476233820432405687551583955967963062552099658699787982330063922782091064048247787792054028888511075663042344065077308990982529139689231453442597290005484217189714966845479864560497324931171420134139707419829055485917809010874785924816674929726289857759716649916515994489932788630322601658922955139860938068626718767371421817474936019261032362545907642612029363724363810205434007048751358302386272731890199191561230774899848376932751261267572219271967477285938021099895997007244005574436271766773190743960986201145059344828121369764574653231502196256289028439032756171272105474685491425436499497482191941417383631703376077908155043418971288557260723351491214783585823002241015261336916558911054066980543202455084142777787458796509948278367078900963302130092863774796363895319451360991070948397367171331773331115903160373161900145841838249971197565016691186507258166401190801905155375394170563186558064998096244541788316075396067731556331801200654007687087765932042447590219698902666270240310056867752247045593368604401934465130050449899081634980343298649682063644043057525264069807250878065683437934503597130538059918726533937758894567521678963197408721450878815511235588184546466107666700517441355430072740716369479963389752769973613436375859281469793099858712975831496171598333348927409244309936443532004545019923629550455400188867386019750826260630679494289443327696997160767078669704392963139980489459792743941521117949741076332269735458904814477444110935552346697532839746691965227008094155061181764008343088046428816207691035085408901677638479422860548188472947779386323639144331690564109926509971768030490222551683674139174907327589744087010611997144132464262795630968309687823912327318130846083512228770209897454630434098883054402540686847475887654281815812285070846395246629722531938856278552158603640675095765058519044608480590486455864073623074106065432298617365617704121093525653633712626537739491904620328602441211514126738969669608035903243080667833330922955146711486599948106266765595384162884332033318873202741073009596168194052856763649630178896194522454658839586756208223809395037611964622940766182293418284227287175198162924558641040687395339066317530967110863194191081637098607009891366196697552587721356985002157150887396340026494896611142316948797116908249244624280627254333208058738098553827254125106890772913191045133883418649118298295455927690855206091272995844633232746534104861328118197980655364737135097358183931151906473479257308237489100123737580459244024417073264330561434317968878657336710597800922614583827988390563548806374855090841918688098002805079618180061997321307397900059219988225555010248204867281587249252342461317501230082019974059971755086925239409928450396227083001319449422398850362097761342429427671812352373221337687094296410764445608125074857446253301586208244628457220601221933701008243975680540304366529396058320573964441045064293102427072121526469195508978978599375166047893679648165596823576529037667789167834124106273350389321182529386231475700079342240703398556707211397118429838949317025327226618592207692556071263175151399310591033435739478396370155342447037220660914304636166992243622066810280867635815846555357763574791397124007175711713450962178263108967586976544145121323324501371171460171857829580066403445549222409413093212012065435063655860545214267205777476874234983561069871826958796847345758180524454347443322505540185161558242562428683668846557249982254288345038316934204004915617132433387050345558923468728585467260686904533634452087042823699272437033868078446017821258352846020677634226914532933830851367352130387649616387008030053206275591933503755003155847226377153871963131362662681461871233577209279898782816372120621892918557121846652674665304188332872798949406970543625958391166322793121898279130387421405866027960194739789538455560437731522633588025436677971210580702589561799867727214251949336181219522817415570898382841844892359911295999828505199657775520807696652158404067928953621468067456086457605125247393079563445229467157348809763158234596881587032603141844812005236855535525769666180138072842020173299333277807621042434293113798552974500959329626786618255152287542563278494251962862587549486581203482484993643109671408705594621412270853618575466949036573896239988891805800600050243731703772622405232132067374412729338991761944638709177384126123622045602954128029525756014727562206171364134963410099873828008304064187334757334117037657093353614077535383730809624400489061900802101969213713458470552607811731658879765994589176133267988553600843996570198070842889010153290443616559415361194001090968065906802815471681019599470454169818785736209169639624515121708628003991891201895278905199443191146414763315102236655028346017659905221004917816106624457435368517721925183307671805954354605721331097565211271069659780833857374855623228577351216210237420700296501216866732162780650594200702539704122656896093755947355245919750808729090200768642129651368692875482244320817850006907252650766980622289562894553463979446208931571067905110016794966509262761688718873645825298184963023581400991146606972759720511605898353486807116230611734240866634247755492626700643537336181340499150403450220399008981409609747362014352082428270357307511204056322914111326254287077248833457202250668680933010192456039434508671767559918634225343736060097265665062168068572337549512234221701920505944998003424236497955230016129885813974292096010085303135406703548601108601198628063704891404135265554784997851932589242934923342638153577123869368212962600816428063555644085246498748524337608087879070951517269829134140352103120951006273361886553247656244098857426247379305734074888275508845172234620674917525123500302952903835488554956076561368614347770921074327009665470148164972263371365496985866962694774232799247749433181617428381899982926977364385853463487672966831651949982836506894022363447992354309260185364059897793591704090348751952348531580418115879041147606575080959466251951983150306524052234694725985503167801450157829681501399275174699108553659098624021425279086676717719567820334394892189736149413860299555867975960662021018507516244031882019131878597467839272933516717561929761267499272273063290978747613186710950317697879976332029390761556475685410066362570726332985348596275281424422313210161331329182121133630927133692189378473340663464754827578582928456434100059408336704629608307137745590914958971174874893761679408095708745029171574039832125478952914205924640413125349407367061251742814866673657809714927966873443572789748338189613092464906332330039267569158335110411851577687680597409663734248027278127711067198666240629872378621366132091192225665248346348496115782688289361588641705184216203445429779932564012672117599355569171781253022645403674574316758949778117068969149685263443001193896116662401789256209394571344149919219579564445438534027076857811789482351846438928293082034251763983602485414649083740998742689287397596660152900405749538054681296930895069393974496696347805841796988088221579654250599131842293462781361710881733744990930578010580395700213441777414548813788078335787518077945239784309697672580276834622185619184213541735479208480944272469103418664963657478160536662697394829578224992749464632727265984196288789204731716163345958077983037762237028019366317614926753336901155793561459337020109670076039108592065475591006136722269093261472029424067856323012678130545220751744705442958837353506034838075960684136620442791557339753595010875947804587520485961078159491317474112056699271116036831365385291773281179153403765990330067979498869538236137011108411447584266228272420656580338130864250968690318373310037874379461846070504298188890367567031436840481495007318312230631256497710092816248485078619290503232555022855254601070946587857022123588741787080268686102132873115820917768037819393069917922723052341934066772361037386237091758633808765217398777371643338649824624867587817881212988408273235537669914472933835662564009137208067317804595248666737176233159554184058111084036038697137316824257339381561928475773195013045892873959562369462625463536599788086506238716172884806887052042149926941816764537635604671386562017889284723962920726345050314575480714985862662447040451196445678883100323836162053647951817293464338714907419397648646619932796302997173275495470280340802434926119381849908305694524055426482380451448747479095051798791653371389029187010876180736830396352459604188464087018522393775995295282091264290050714529521545329083741045841891849268413053235772752179921102689690594020982613750893959232980102455458438427722038417428273119134641760149536686320019099765130578958091555249195928342336727961675154855214300121062195859274807813412531147398244617720254308386435409348989654926278012777463345433266821928221205411466233480770652748629210889121497135306016586014646170526458415177512388906134955037491802031106149805854304159436990608627975296501458349679220102010284705545796429833954049228385004060279866380834686258385844603526190913090354074751824267403875983339280730332172201343724234922529732171656477744197497698701391411031389366456957280046075180358327797166379021038121933414387636954826985987179133562036639928672286802452900209114121867913067168604254957829039090786613612259948291179007731197056288037092906550289433210725041492804686604003491443240550182263927615836166866014718792194719747461792452039725550035819122408149512224233458838380495019052824110352535805664771989810647908021330736035041741954336766728982494046070763898996972916231024653012633999401402643213744552628222372422651801747533059654079973343555062726416399739207283426700230725838905339596077885791780050843612314116669418415793174121201249090621200539780949631655841697531000685253337924547428762174728215885472441686224181044565893291567444735235568742816110471821479566237701928019217363726750502016682412125139677708265936821728689073696078308850533011964443430451697757971201932906635460065814282752168500997775077258796946796590964470659199906630011029068427059773440148665777526253429263871929724149131643012106701791795396830218853995193268923699769957497958970450081212560548553822141544041430172954366320994273039354469428284887574201118659164169975812473213653763538522966287466226527654122891124251602625740595494511744475735013605371946735532535173316651179792741360634342363183689143185570837061075613505146499633303550041245579538347889217859682469630659833237343052825740556397197667258950838685609625476569708719502512001666823360520778158237994417759368667656183272722954138777057738683493549476407573632872717371241099956181667382513049477614121998731317836211648905467036928151002797635928925633264532401928427971335819437909354178682533327043024293451362304384290825409233908111273370184283635153056215064384557211924669034157939517824394572482073774471345220823040274596443174473061634166646678318510894663058728476257828617248256043841109966969693890517436787663070405624808399838886809699535242551284883548827983653517721684472999509209496217088287537977316543068571137309797269682955606554958424997740378740288786224377830956555344100276383827789127583780268760690416270756870749748633807853412651335627080250691000548043651139868475139973041169331795500746720714579836095287049911193132536979835232222554989851314745974180813652929841931222720143137999977429815692780314510975831634154602629752373551973928060169400311414097966274260279686715355994884623830580918295050912453244893169064625339704643339695379116893288484334797981606962243726266916603032825640915972090153814298129277695399169467751322745317271291339809702093928543167834112869711597774646749636954846464279409498905307896161332228551192577901914532777752965149794279441565701585805438255875168278493345788117665047143862790391374993134634156358192319049841556752562921534476824603593300618568492829627544708475518949919648870082928027011841908413373226947119157289435887514150699660782364816555142969054079171695685284766185030517819590882431835740860800761570273595976596361496437574905211092235043930891705039475475552613565243298252890219309134555643670557486413617747003418518734118210214493086269940283165142010598345565681039695870828745284536248239290865562788129590268195828570665974694856045970673144344009005343903349557323839939807595656383301436238854912838980184553605015630598916230620353518116791627287769611084472041830077110789499615466905424419574206126224714649974388748126159430154102676100185118293221786708671396223003094448401413724397590636299966951986604770762129789545363072516512812278507809540386418393775447748221288755046433979201675343787813950388293273733489985220912748873060001881165431240313728162071941434788964233483043475365632238857819411922235782210369975323714617524888477211624623807913377590304644110801828348302372304662408644544953445330799704334833627042687105119987079057191161956751390398192237847789119219623170790947480232179468145483226235232905845260713415795998085631039697503052555545354242729422787700344932586429507952237638281184998190667914454992855641343679642847341017484970593061153868463788175627215485839418041472863764220509018452434275138797146422621176281128711956560652297305351652180933198285633810553623601528188615229534226078255080048745466214870715196549991079355855111069977578885098107189376317682824785460774499564588276632901117973734215902857829275360987811120100401268935884968810096395217840367129795467107539652429875074184863713379721451248178263919904398462526471761640502414656983541046344499544769287178138746240901885859932450056133218250650240104495234936113998156274256446607447795621748288207319438921601056092715887530241500301321092202382658465797258274126922564048018870529466572883745599953857419146565463582588558117185517761947194612678305100721691758822942712601235551321083506218964801667643461711506504057999789151003589748466907563593613816209027343572506362443057733034513865703927888237013159625023028730336248368835356114535777101595146200983233161752940420555614705796809362914036548308777049198297156753978823735932266247759940088640985923099039237603976492610925219399772178769112934656753172733155764671252942009791494078520463476999062201942639213643001932624440243255142314306137839622490054750191793612815402023120272324586515515392713063440458625646014665790487541299216857197103374965488203347918185751381122582537764639342770209502863194529684489726574761727909717427510326656132690002492388642636971027602270299587342243837686150235602174222789717809875115643273634433953190868381333408901890081181072034835435487444244146305070984821609878642623293219696165721486693873188203163548625521355600682985653016935303888573145639266589970153646345192113394195889034800499892420530528040707200314089632452948989625420879954870896326072077252613430787523969329118513354897108033889479070672518863593133549909537589022705506358410211328210983611576717565788023458202799558583100414010609769808744161496018139054283021063418534912589821464076199493850035710114336658015549489920598171614318447947131051593655524812069675289017045276867472949023981489854793877604061494666117409668158968281923684063258628592790451207625851542759463199857670763767782258390641110291048821319318894172235694444255648803744700673013361799592745271297043297082205679448072725769398675836485472503206719910297099362013528088044209460144442975784173083871551972451232188514876494766132537618518973131963961693759948204902990618862245834441788549106443541018500111656530819196487323747629445736277567964809270556652593250888714364305119070225467812854879635433500469516109618752304513086804909642956820437053759068971735062424889123620568054888619591639841074539625127047396572069812318081066082562333435847914891848140432776362267121507017739627360214622719440807563866164370092202448332595494833019614922017149111614805397814799634740325705932085690699960213253911233813740872322277376701418557286850117320952791532996554389434105134500358419279817274951406999678738270686131274933442744891531437078965174362247267265594036310913033204105693627392007201189146450963543473599421275550365570707193740392951145581250853572298264364074514257503166092047792943924403787316272708728330129941205797196781972398584361624565656331053089682484662329660188116603511222055943315841572141832572134690552805700523472936953036118424982344212959984257161248324542111776704331843774169345507887578393025961540967767835911273311324181653220861372550173924334664173664748276619741329564632736118655076534380310806986571063873618518077753339065952487266082488561778027991918641498001119317356736600489618364644972301648029111336619099847789966208219136649082840166589384938542900139435484920468543464860772436546534910223947341055326672378940787740024380373665990475228887521400989865190520145681198312708656807703814536205109608761557167208287924855030046798060598528872832738024177172906277606304963032386108170434742300491280279646808650170857066522699760150385781514217422162495983517208431807220930533494078009635786574921250632062442167474781859065089059090372791898559476706082889128446378856109971287855787584141077000284731423793224269485917407379163772701592066117330858043222757490660958529606781060501932461616146948059414730350385271675332783277399946492205198118122010379937783930457289969132128365051310497733272621323883486785215932648816216127577565870220230788729805881733487672817217190265476662821602169833334669038362761364897758945189081882488930557972039832755891410999724547047053752111903025687539596828088112717749649976628568015468399728721729633588804149904821349065560890433969115591459799237861498184480903161740642579180714124214620074079543945354874944558047594031689338921256567196348004617689780657401293893935285992263546827016234904422056227659483105126119771438359968099935734268563320150622718760413409185107920986431007303499430698949887710030507476621648067426340172824520447226246516865728056456808477668079038053212028456806435059496455425384823888570245414166458006575083595622235895429085895693471269218448229373126941062236163993597742913004973804892689438417761117980690216300034259335954703681446700096133525061736768609006945594411918772381360088504736813503764613307380651185996375027345270818485767494460767310778685602355842845312535781253583467415746457566367490369205833159168403550060475391426347595244894156683661262083105107212264735661663565948104552072757376139543285900179998894483071953249287438362192860957690550817075594048375864084421789208106593748620507705914527909393621141624621024102150221072391492014748588476724509121458833280712025614552882091295881615172058667974238389224417361914785439194056135032838523675147550216525320496250194890171283978070179225458319723863537343952074710728008385449931235365976133429291043340305788201754759980407102801655625868380227079152123938228310893598362351429562724138666732504779933444543709700752891232789374984845932923293382586301708009199854744164414394379031967283042680266904261536430447413752910661472732373616281923612296999084451708085208874712241220609887098456259146397457557749384983792111383712755959651071748186651416085869481445886539159781387867418756897458650287574788723589896736713635990777309003107733488638482985229802544521340005758273062058915363380135621041617483011322491060235187164918747521890580669748245970008833561016857321429785294367971393653079095342597918899309338075530320182605114591605662850051675034067150771748674776987159159833666171242900242245810096678730092551151399270451884980478970293420921806859342425773177599717187766555656292753385540089256323339583275060929659659822965170294989072895667575743416024353121493797931935555217215033626192066676938664985415853808406994345127084773647855553795748958432540752285654059341487447751523866675802079021760494593875537072822761202277309657308209096931104606400779392355167734751792963849164051752728432737688722392136577841093862123112903723264900671849072790709254821973178215993055213870318204739413971137764235873505874465521328515847637720724746654360409448977041680647701325513693028822628157327246787369282355635536938706087677189107461330126517743426747384948640128114317591317389956065373720112330749251099378897832440392159366812744970262899254422705617055927138242971142152426090023967078967388696143737103013592774541249650427576496523618517704657450429501264719791147810946300958584186496214940023719155497004699528727865684248226410865114604617429815878405090791214439331017765366032539752404482555245030149216068511213893974602641548105727369541111018220645857290012513417328758111862723443083612084571471051890881444517341872303977409040537005698752921342389992203101349788340874276152206793258029277231994149086518913175421764967026499639688398251247607993229282463874780436114849768395189858148873504225239454611967766399946895942734829129639305117326116174882286392938937086754927441791497382796777630485152012918004930007216440854553548545901875145091101879380142920940257177120947639053587172867024168639916963244385278826997199934111250522263964249097100439984683679968157117088553864527116519975825620247396078860683275048541473976765539166571604138644799754281701581763899756885693322441942129591927629616461849920148006866330797442496328485851538160013924552335358342678275710574186072666961714175998510696872921307588555005267397844124986447717760267569377329833662200384179500980672188161333307920055348870254082456279747150006816568515893281325764340317528461354758658824350474520404562413550637410713800937418006074661034073507961951714622635776621825504628552769064520981959800727489905928755501455608973562501172691670255454044639891497924693387176892609566383004620831275986129979049791258657270250573935828114902593130440738729609498409852096288735787482900939938822829395191262862356256280633694927439860171575908075216259755402297449218345371980834404595438609139539865890341665388319641341293728074603194860596519861028023225761720614334413667850297470731961008216906227541565446579033957237520866081808048064632852470930701550358771717528231860075185842946848986160852228952421034129159135285507354402703098303733229830157578760716304236438011784953529911420641648164288494799712758035195735660389655329412174225225933730755108251433158217678916177835054587505989427095073124939349724805523262973288430460827588733383767138531318760645018746219065796162139327195893133081896546437969968586492399967241959145370331211727862119751080247068184063880932957418260237033548329535860215070053425086982751584272040404219458770173402949378192397141613469712292775265506839561139637487590127554205197025352888071897597547798257397141546711143881956427327915417820471377903154827042329556475244261355742516903555046957647899802063206151710756682229014577593138471388983344253375432247986842228112324609755124437115586447041375732964757110393741765274692969983900971816441681698577520503757538480206734043076137935514937764957201402177119332098845844889447658524622219604516308512426393863251049228597044881718345842564110714761099149706827821701197639265333164434967272569698473047670570901586584390797543847992810244590626533741381721004323756102475753385579114935051076863143191029797932370189225643986768935662298859052003680688734444083021264378682704144751231172488657795186732744411230874395311980246988168136987649568821329664293883413887363398664210388891797280608951633254886080948856472120226806334602720807059195164282800409300680946177930737501635537581070234818252948624676400145734710827096923354491704653697112717633817312778143465538312903047466596700692283673496346393916188763242422483802348272662069322438964159373992556242455919848505845817012234406247810903815024407302207444003831343920280886784235364518078955887087806310733853493638606454596346525901762159543668026802101262033175017768750330334660009821332120421115314950229965325070553827378434942994229577972911356141301441208117705977660098908977202410798328972227900386157658507034760975831484761982958271888346207288466833834364736769936602310471515943440363466350743333178182827288200429017866218858593545595991120984535208322300290951269924827860265764053426004816930455297610324751563931074347318724437161283285623957627880426771078222672236177957170844310907501228835476685836578776010470704969000541640814745503590153792036239027998244514761631973678236770281165696468934693788031182760974668839734122711791479360322384209373889677441461771259195354816149988325354588253837520920912897770264590336330979809183391120688049030346171588193852188957344778704521318620568321484777971157303609075424937612861134785576182787569617255991772587219745877171567284176063359145967522584775790990861052021447122656778392838616236212843820838019496684393026156598995966835117062299367122743647712590660031218628010424774933394134771348681490687393992066053596950919253796066198300736364576476247124304359533464796151588419962353302347738522543796622149543351499283380691555523309829683902227871938494485647442384650268509526521188516898935161355930239612653401469314047989460440970671259565997222284635578744332829765977912607351556927626113366517688555048663492105579318530875115638786480010319307876644589212720429820118509676945322545833540371502396063124087008174889483399299685249220430139136881440310404258803442139479797667756488732889269998220171150486985059748387983492895891599022111518958840306392465545569406617900238400656701635564630197881871840834312059447608667544644247370784491787431957542953794174113468418746103636268485011223705753811330010307324895355836166763998985429339133982510697942859666330879525115211991355802014821544990532749987744327356816746211952570488155464851816668141816958010974974682200721112760771563604419085288881380579355292760252763513037138739043932936833914833105610974278937369635316103762667056681241797916632763500431710483023171135504445911922188196190948117325266135261162762713797594991700180140869513511662511783947571315364969592233338196180596262783414653843601652761000325928786845937556801670072471923594955247962705421317264536418541487623583677548559605400214208816883115844359888037075757131759796048999311651771269814847909077282532403792943202254571548724741650033958163934738774118164318053077195107564064362736293266597891893035959045500750158544815800110048010064047185180754824156376326797016309502245675976466916957917836997426716700497981378726189773976388690007551102971309558748064117810157368643379144142245599712551761736268482099943032509804110275610893768209399787421746145378044820913920089246649317512263851863446820841565929712052861545035696902960510198551117902156439950152016814476693362238186976035336991821730208186951445813999714683002167280927888217185264574341353596258412958955328165728012562314978959395566395443043105789104414692479302409769287975874795279860005773974087673112262838001080356577076221790885700148173076275643877099583916618809762786809356805431651572604813787494544455364574324592876428738332423319159429606012039874240575005253804749012625576835353680574243078420620180979632001346435841299233685413562594904981098609672477720161429725851830647900489678583793868152369821834130595911806497325467918085209658804595875092020320899219270337983413109601817213393757482035637644868762474951013057616085421412918425328629450362073213113921744929666847412360190093465531726476031358501102821704120718666316794819744990588925096330739355123571531227599510012317016073285375327047179721656357617539811481991870300239604594533995606229653681374164926002505067007573937864075057742656472638636685768519272706977458093414787086938331000975556064577162988347245852564372511279951633401669877997460237138676423712743127893379947974835275737411285464300413743122214025923080584556783503926614140471106656437491790358252428172848169565120204124188386048224204375849343749084915741771234052948387716912570205719373426283513818502850443310575310556955446075882803313870979472383875302526599952893589458946774369041071882565997400772374391019842223997880302729571011182846964803455560272054696286192941883050053026442929045207824450179939042765471731700710678553030598369940488545830332500639514668155739852173917467774785500100000484796696265896211204284820326207064092749087852809698873701701282690025539157102068334990521202969181476316082145823005303853559328998646547776743072911251013762289611091929793357119897935076447809308467442277846769368827183761908988036413590094370262905411582318033910914140352305086058162866739928940957451298189438907672215677927781776942162501905257522608512586967608819853369522058591314900572031278899500819416580732577692906776507903390078161690866631491706351860728137514335888985888930615590905238722567275692196518653518943872765906870578574549440588213344018403288451514947911776096504966037901164402900222341752836787250458731349931724449112219361553295619794422292962342708549918935614574892659848298208366827952947480419271552249065435450145850772021832407636541322726581477866533913253126521415160990527253405918713990506885652326064231823762298619647453268407446337877844325891808030148320899180883515217219647678101400313971302741824024019320641780735046387720005472591204173729901638516662772757151047206229533818993734874443194608180973930447126538724804299784406900752133306754071445126806824599421175707803752037843543366632580634812382475742795237794553771617611531977366204196214116424326203151312247095534049211534940679738425078370419041599078376057433823238339485128677343525006847354317124659131475636261095179549729847700395589308588488778169868054833293680313046740549660417751039068711799374091457398500089946987308776958425043675694949933853472156683148927899564403838669051285103478583769730466751017814461558825833907421023979803685328657911567834873442631755117562568169547990486513218913792261631328348822484387290692661948039497883911255824193031177845712876949592063833257461685868043304189484710462002439974620473396719724775357382160022802199794200865302882139404691993291133126407715645506588853662595160635737322360775474270875729324695499350273737156153287974127285104371707078037873092991327301561781842112865496250686907064069281128647683711082972282908830831148731525900816969298654661231262134313115629978677828376310191399186660227564246567713371874837521779927731648260226638273775607007729686321147110112211911015661175660308817850362182727896222339547154742371159714970092552236308146720148407382045369080949762193499823217138703696437474300474348910411491783060183517073121545667790482882384273088220780987813272978281717347395301338422341070587562630902688848470434735565460986381547072685882707575598073986702608374264737688755109079816582912800201179549473001393528577401316155704347405954450974745946562866019357638680033904773090715103623545223307201532801305125294850967469772977712188639211148360141579821636520297780818227963338430385349256578167933532986805311759509606046001057052263299335807657850516997434800358452531835998579295932680154115530171918655128034634217832923278323083891253397660660573901405894801284792600580041119687862623202194743865902033317107824262436899328233225856473849874911702139944542536558527476407939909993005004197991057969325535669670443637131424064825615190025133622820099585349353391622669248193078931027313894212546229880077389183037445911292250675110854584337535223753924778233967002215552628496487062873390962880282369224302652035967327059186577197666384545198666740743719980119756737875871498188361716250208162181277820232243517937501784745084976485061621705270942820566680726371287372146809390108168966781447471548310524950595400977459448213322535970475679792380214704465097140082527535981429604092326911601306720980325824520431215092526759330437613408708156570433055645025253773724243640811104515826736560773812806828695805096049759661478013844244311916105289629394847156860599189277383365367961992143147072172034343971957248577642427147494898883030766640858991054000487327997684924481573265710192750568379907114726778670039606911350480502746562286322652422482920888108839923671936156327967780384481391727208009632708479974714438002708169899848317319685767143023819928297571897752357472073762468775544573872456068338440507835494767700624929488079125557956038096278066039434000938715967947167560750404326206636519452453840270192885301389546964609225269855398343503500253729382658399442969053127303530499210925215073731475437512385995229492662637720812255853231802881415735556952825038228316757976296944712896360417756421331017811982113319028360485041229989594527519610267759161169772337243693135374137443865203385259609996268514189475582635216775248517110034467851730745591809005427531647453047291672690039493833735771432205159430881270812755891623779919709193062226475428304557450786189167306326117144980488734383697545296150677779402482710204231798138895565194976851596370590412239899340185798853403381689561469076336103959011658754608431067380552458251023722712161230429332877978376889103930802851628227208118106838973695763816610820410025220079115018605860303165919233876855752230557845789190254879340029134837236536699307474605557164340425443385283111094104023450811728955651163352562139367830238552403352295469101438737571221510512584053569325862046087201472854989726780755679390616689445080184606839842083501659569313638302870948843134145316982875466297472734233639866090988564179301521663825737033687336967655970019905565630563838538399049658211017271590561846459224419872429124873410303882961947989810113178630553930228645231045909679590886435301436839732440157107864011710313723277273066514793799024160693773819003127287667043618373243472978644006703223494060851823723867881721077396175821591831174961192701067655280011540196538407211315913420545702311646861179061020847318386030463505293389801425250162445654174070391710362756633868172202114894230058325550386558161634671902883491441005721080026718965188147328310473134406793556146651083628344163958143126190723873213133353284338846538699177509404444876350128037188935091782357689811899405845442798054907317508845304111083258441163127980778749430083453909932171368374019254702391419481607581647697474212959871351455955896432490403037665886469352022800581871965536992288970301969103577225496793064425566283101705487679160387293791563817890735807463009900957595808049485273029626256876005936186274681549330148538700024588946258863454196727217526599676018850936771772601806208100193083607271853736514698977136365835127746614124088192047440664802414176446949018118677265144555631127552064842210172999268389950855324199756534362073659935661894128326979524512333930734838684784021064172337067398770371251060932446899957484694188409192186372641127637659624423726996796202369893980321450495454926602433479989250036018963854145048718744043756853738217715661410802175099024890167540995702094725651376929539173097358834408661287037358360765630979701326338164489442862722780162749565229150956306550409179493449882052891020283155897733036885379375301833726000749256987174358434989369393106715658328093770080264256073877312052834872847321957857825369460099832472354311777465787406867283641081199881036366251618538218670906119124495494772883828764468593530869321878442825376380929599359093357092533390489552677401684433626697030979164224974865150817678516413807947657955096130506170041874437721996751223035352994318398886223481160964477148733259916620927615644608720997920658094389567983323524860186675756609859510129298592815501388062411520533316389271733087839693119779138143028656165418703693433468670045578417921649851925389715757628217830202008406855508906194788562008703481193367083421239600121754784467341983342975553787715893233491781422777759962189165239431713394034405032465651468299254364051723485674531890620331842336119930612727182004984668697247916925610045425743271864885577092386789809554266823241484266660464591819144932403678317315936209311303628074221427170529496056123462854895354665887657031750022519078522465085882406820033075122126580770290199815254434359503787131693260159930982894254024938243262119261835682200990641543481152101995384789632202848219930501136779274150223913404706493902274960327889916986618330053447685040493993926498085046026470900248262494675353911148216865353384217217936620956108453727212257309933777171376239585404508020725981931141342393190701589177013876944523561951127375719278450071016067087213406432189758578176160886550550423951333944968486184694725182998508466215068752089966856817216939432407279469687654820696884638024209201405692017663109282390389778028622725657737336906834796511251787918750112389474917968822446763980469019085701127646612999335427530807788893969403380389945186049871049365299415474678084484161147039658256117684371409768494008167875948746945022165163107867648567539129247260662833635603755232484674933429466117637122601911069449121145448039622802775028285369541592145484501415771518925729652831140647453120588093128624758483110968995911198358663264270287439484036187714390862950955460582176159050644316989747170156695256857269695654508370469245623351216880005403641135138328211995335008710094859527221605932419817274508543592040670572010741120411508644004612784775272010558473299252781819551973210998641414188283972154171763264196664416222342052242234074443563325568905795026889422978643584642583177428579134710805136588838425900157117403640162390418905917998827516496801244768003523970940672208666268055140492599166480848773869264445190027614723662887437473351873730365450364451579935339533589573321627017765756115275245215539993386924274772087721073842091225620699085966124544200412993643278805871089869274480923591747190228802809410388645531292604937630267606326879964116988897260114122290255677668324832556566936171310524565186244993540019132845631509897503438124383078308591224337146670805016130851617328277178486632627457064779764912174054731878326708118684731263774166263781747269392482308313670128815110621120778971740673945566444106997565827747184413776178485495619165324674022032330675746104348211411492995712350210734584648964207893534094997159294975650016944150100879122258961446419069659504063507009660284368684768265496739023076473224471698414212035361216709073110948790662720554926837331856806578718865763078905378438438053145459462280143928671446908540743224061542532171683016149682960390578690800117547107750272496227349473907198709323247818669628584270244964343888563326284991576577509291495992200331233917627142825133416158281161118962140969146388600832637319368488891822921484311602239456820674989332815924679955705538132768332686674433430149215289366404408269612755611075814104363037316563829657837986375917695194779281881422950837214456414196469554426531398585671190426086919767426251987156530171039374193907468709134849080973918595840568004949183546159970509451386467752506401044437434400287678800046920316001007816116607593233081138925260931949000610133729226508491504782263441270081090592607626992172776478821509908561753520348327013467936384372687890724012130259504516465949061594492918477785415568445124554611610957352309662237430224391655469206837392720732170601788437245076035125214498956992896893478688141047202331642728033518451664897109391843917668122266803597171862686014097686759300589544759609103692692233328606049357601203201946549462990042100855986257588102636019309266302911608525926535119148876670881901623567506470848745076520985990114209387977862832406285383467664071504769936581256336267139065590459320538416796523901218221257865982589013362329633274161402658387744410024213637963538346152796547187762094319752187689868559543133305101766367965676596227076524299707746367718683503450343459144428913352209014593550772551283909566579885803739179830243513231693368807068562568904535949872332158185027692666650022407377261652499665553869953621755484402335932754331885329964368054874907861680314788879865190720333845937993165946996343731883836708464307994711343513361668327078545959499719851729688761509887986167687981846485355143973955810983762921173303096365423780387810421962045957359607627285630515751475229698047660174354607304486945784029428791156552251973111580911973700227207910625962648320820391939196219929664592206777534797201927611243375654149055838034311307810851853865538815076960327849140341230940895099917659183918982967387100642232410616753281651501511194422084113271857952940773249132368605232534518938477875678329864807886370590843758195722888790031101692755003828628876031681515243971216796218526097512682865149876119636778651716497922143211461138731609902836043265054899868445174525907150168643432577816434167260919107958174216262435808306665935611195462608224515124970700328308336403413272536000974569412646871769737912833892082981162448806615199049868023365391119380430998619344302313676042332526552085894157150208986713109028232685513747047718442364855035630164195501172921799622148309247811336646707431155602062063612887188387049184342389222276945566848524988259693343630483670619011214299324492030049969342883943974437911614006933577394608375937439417086042774085269801337058650511658839152833063581231420889123243476724094575782748783874532213923211738213610410466854975873453186810942977064659029036244513046507877370754677944762932181018149048222879145839132611162639256026307725482339491756421645777290482686648032500184955650630417230349053866300100614851803397551582810202263731368320413177266640368859169622182642370215052993315917937962466434917628979735014399462241861269506141179128027147187708773260683222696395466533201992335497945944829406236097623386132914260622095047927768958234958079729423055765209401780676578796744844112329881095490506010469205302470229259982690189947973952733366583871709528977503317320274322849276694502801569602765739060931158897474214220409087426175566740028934505672236884094433861543041419760423323677454795398638651071999809516543018527743137062206152364742204720175748961667868319024935996384366191306166049860286839047035754754941698135729833676390800837567896438771169007181770107612296566814098940840587333684676342114915654011305900506393342818210060054018606249087855293550181107893022895994360999588181802995225979452374987171404285284408147572881115096732360804389350456413064298816519203706498474348436427035426279060327194886631357738316904697089743413128166791055862990019007345746286737239509588009735496708536090002938798282598967135984435837169731627047115923405965383620185873906428311631177277741641408566489999851849134004824260934178136518809289858057938745924056523258969963335184327434043116098981774610986818399816004415732800537304091420207703078252421356885746269684749745043515944335883749033368995512949430960270709786186700293394986835490027262752946221837677618182628233589072351022461051876913665251108265920557492440769785281673963979170617862477553286593472863206317978156747820441150317141827446802513601405572699388584495057900872817908068980009936360915563032271925420111939108557378624061778342449251194501786939574518921057261212020808758656477743658109275778071204343329515873350945982356171099100214527548526495890835546154087947484763465848941005106367541872907948696919824226627235268728430104818668786113805073182373735733856017363151449639379630037153772004257618293178872289841496254933001439171371259340955402762974260568031298296667572927606160034047181583794577996132929611524965704708227981030566748497430654141634761716133378674720171904488875821780990623695309014613260693288059923971148927488153269763060420768660333511335973822029555231560040177082200093119424484946306401186470908473283386384514814862748826920519068179271506652842523615377292015266221349690490636570198860644325501400330716382836727976158651633573910020285152213356614033856485899020761182347312491610281802685790884815788031400833409103693906628937635316281142184650844432051201599130238505861308977301164875801751471085438533609044395759983763322589644691887409480051579525893846827102576830280059399461665163651315778341418969069865628992265988722940339160314976389735479501188271545180245845244115860213424690870609895569555493005436195478721224868141316602245387932087086537379082852057806600068123587043504207226997942255725990322808476971214288484898876615646384945277666533334732916521515208560189206859968323493710109605267105150866801272184954498104807693208926638055828133631780776352197957111041059370895740365399750800570361991994973640510016394542459745645762401526068974115009932587161769555514619096694218373907335356607678928282659149886916148089158706171676913721813014147907964370762486049063854521945741969021777879561099207454454044477010379805236382553898707073495677106833939661149736375380603362425581316487086078006197585243149607921489225183100627139451332682744938651695455937548974593379027181027927685955104153571297915823334699584290170879540549566014674351591798099665115652620671748542295300491524056763083397903035278959835532905649624981952530099005575168301487189557341127495266560142131826563255922450197866826890572208612464613478148111939016562051233699508400459215462563764946178676991838485907967529139720269458882890615868416636212452401719593516463766823060627708213347120289450131078935371957785839999548196115868055843903914668868384410672060282779888371027840642091684771877182698265684310723412874266413086370774860489148881089148706932035426870697080272419718260029345648002930194832271120318132667114003506984069122574536558472102878859128815427944358774340970674455526585350100038526739810213404646524674793359267585133188297156848718894719629961328587315300700338646561528420218565979677611229365109343354321859330767446046074683128721487891480466404373064522360148713721717923268243460183797633867193001439486656388411007085929443163492782637006390248186137935626670252500664343256790065389152538370194188944664408818654680975770548987568506330150213669698440160231253110998232852022852974173462604831095356545611278429269127449737712203858433476312580729144272519960901825809505313066359441438082109600876162379922636818505691963067544550827078376551925301185796901877900147494009852452903248733821154846992423293523390196579418935985614513839213940941103552234037838673353988117393374365831399364837175886526972726019789447519860279068859181979100572710360285309166188991045245879416368368711171120094486921315444439113127137836691590206560624673205953440665496326884020365310971474116999854158541540346848509716962670209989943076122961672075987745518397911431307225970142122266793227345954177370157956977234806731658391982371957525533413983237143213396490764015254772996421280116765918439363586692927114563361779034788458454475420757669169461153172562960768969029097526453827417217865993721627561383910951959663736963786372346235552798999800422057430759317679912757320696445107192757319664318005114676938386796215451973114950586207169927473786010136790631091916804247040934562374074046318507069395394102721693997593134468880356380034892326662458709931935936968175307056347141433045214805482584821965985125368719084013849259261176226971729217353415952055452329384582543070985672980163136632521436128124428697745814578020709232608206196355776180829312476240278010103074110214188264296958961375901168413946282669706971274469620362427170670497841392893875856523984878594026884082724603985847385113437563611726838456201611174599780169109336550140376235093657783925883492324629644518483498545371621855722389721733095081147170200133467007703125451361049848272192161935745723676660420753897998190850478915537474532195013158217643435258506746203985187983014610517995792131727006209344051934372158275365342824963177576485713753455115426184941863264151341613614108456346112489699909143140990423273964455326146996802333179305008628398997848506590565560158520958021377565753984009674768502344943016544001663945845632347166930625608753909371248533024076763927044244742257872376356404425586684772730994213150036075733341029521006931705044739081479864592720548463365404392968686597910225861414206886462278666487023478025064874454104631799303346189931400400520116721320757806346798947579710758983955589931755470205324945630397799112507125319326983284501207038928563841621852123483292080899844137312544526063672177719648708609650141348715693491595738941148236985083385148421434379301922209638988551624478264391589236983983314379312942897088259627130504692354991297866616618243058867302079146129761789799889053148221706026035347847563640788886855270549317880190624999419723058537254811729371301431454757888261492256890069374631483535363927605358435355796852230681007415246444297532265799149545944219460275457912543973298003656424989027879546319046146931103471817067480751755681862633304406348944144351809849676334702482676426308348860813408428804564669463972182704492432044057501647931762864393930009908963490181497303801933048774698808422034590690268645225055639470354128917224233201672476375160484815905793861979964754647993799837038610176146727709423899702947700956660721999921902990309073780281809444456512300470017580560531902179890303406039214055445806332312465684456657409860945872430853404328844710815380099802094693440629641662207662730001387207958844721523571114733431539063784645769480488912493813755288831311192889217093483835889614987732098657885933344844894152232136173254826623145914359232167793396027829417471659563834946591230191499342790657324071292989595296153450308361936129513384069249472138428315411539612159824696567596373410259576100990053572163431954199721197955614370804578581257622268950998692726682157450757266346802975997992294325976294101523933756754358109661062108585277216747678513032365752033690939623238553433355664219489991016766823972779682848217430361059545063283606115318525508986546741956176081943795502937233063627909668418563799197822009167244063948897686622362880053859438955332399519247314294295677199301092687966351287921108989595377200930336401478160452490556914484381855357822995539783494285531522924492355437418899230892594761725584290674774791313108956147217543177938094941659252847716793944232532698813473464543474066113449632837462605179341425758356404987742439072722392614931362890347261238090251954984267240499446168221486346934620224228461793380832323798544299750863179787118974614881923842794435088320486023838995177755403473737507942223162459230630511962174190155555096382646342440228236627426581721813718963764129837991244280409654796695022394035946852466330327898185148784102119975330623090750139481651370318202641780877458454648154168708315647706055837637674975106389514224233596367364153788772739759455207101744628395716407334081198451284893749665840035280982904559966748980613463871249951359771553502150995046581973156479011658633418319667161855507164380098124705226878585883879861453952158835036472344024059298126861145047366111177332622624230332855262379666307250352605618307012730065163615134123196621512350217479867380834862704434990622301476802864075629627375638912757709393341781652126188044678783219842141949944500207657168800885049044015976035779165773438320386843914489678919898841567333370989023831338452800015280150651197613018480485648659630627351532576028754837216449694937118101379311326439756053317240003203957385967528170509909280494113329810716176454598242837295728487163372052320327668907910156672877200737385226973318713930404431519642127193509238755034599944586777152041879760880112320131537619333402398052061849523750088387145672575774399240343768759757919855126390622254178410601735212430951427115505822593058023097949056228694028583627701847375207109087686216829630305178700614067201651147999830818775532665483177578172374122777790708101675538772030711746621709942772166095397554755471039944715058862128125887973291831190235117109860356810805399784463170175429281710868032167821303805157184605250223554129007869523883521563926003567779638696055237569031902809116510575783206852786035909705521242167174103319033890380826434587779852419344587414853690889934752751915923541623932606898448707073382045031810003643344039827892684203153992326191367954648390692938037959487136818479320903740182486124734746763965519049804137204301428021536773242586460650973769599192560942173743582786606046524220251565754169261348178334014339526126235679341222230652921648833715516679432800596769659865868247006663749506885472409700861668833467498748474874338408897917482944387760167270215766747173592097663315554169281991961098909322462409279249486656871274648369760232414463121242552587730000204638546993047629947755475768204251580478055550490015719214421212484282368307769244519023975203327286300191679316459896090183295048979976265447108566709573178874241589813080204308493246963563188028035504472368423318596210887821542668179899057004902043037499722571239500976308247100188296443242167753531478522680743065879707452012817535855050341808552805452304464096823780090279197185933597888525156668901809699163309726242516244195813190007425858782751738654963608789786555878036110954948733299335218345575185559853976397896544319368030510165822611838466652600836566199755002846917770009314497111364324521447202967603869964074437375529182081885460909338811547990585441046769073900361207171231151931483966732061150560705911401905975658967631966408210368585993573308966864405496076871733456276930329117794773595081533281562493953195853519172440683110574642868683297809869571765474145184097928662754113099749706237251883503765780400914149379039898109979443970786007219394607673777445698630897019318330568477728158683991977117877247311832610687914797352353547711802238487512572319716339994336438780295610353708603667728999412683676103737313389916956061516027362941484992099447789753429000909785857824316552571817054856636490065005438716042148975652976116690428186072581923554854661152202390625158777327009018680582705776847329778789563713830609223287641520930646249119148414486002334895881480496349127175896430012600062622428318653448850111915388484759270899247247179147878320647474306765516702122324672539677871448360622071384484195061220518925854837542501862284196383587422292807865475024037283325038379650563194986827020661585421897813845574329375043143434955568789405755374113735453058828591333330621390753499297903490734721103408856037064148824948703267222615503616864174836797259055707823852398661138090677735794925703309835658527207352364597047175655539184376669474292596882430995583455888880852241688435943462350656685375504273839914350121453577682775324614116876929284157919446325790169437275157670466834404441713398657142989899190065996292604210143146898042455721508144801665240047268466933286703345703075066247366736461003770270146517674401894998578137234079483861009253478731077186356493529300726466035269722214543548814597340695399586576561445014799290153609190705169901942535037884304536494730855190984643134112501801928180257242547882905093186718384185232981432718654675440783178835961696020584236946862810444835944945279559723400141849016253766387588311471541099766298391222191693913877838729400742886137015908635744865815310899315817827244798724303165269916743616385107962526192068610615922825752184726868120543651808513220573826551352717570711188648752392429328561829140666981803203046467208081047303711324682920660159038796356301892839924088126578491197508754190658984888290815831677711457607018681939455718726208059420259220264017010534433258065928862334603422954388417007134733946959352743066112955582176104767908314248047273557455436929776877239678810065116104040210648046484500469915381105191826794328984623604526781633953775673380432525448913130248343974337272286438317636371017844252467213324296252248781552389013846753589263171738621468258621640820070088152380184855098651475693583059001437291651915374251570804522404992723607592503993156711486409160409500079646875350831774396122301413751539599345870227619394776580914943024412909555275455966668359231513720596261906088908888741970339353571558581424532178829346151762973535286275276829081428143941826462187410350914355115920672461993400292780259159205229012771655159955893329063421218814991872355934892991453798638527628176458586115906225749782007229945798136343212006590882409922567351471134230737551363097699429058573777333524698566859144927461830291630394334169794543248736015258540855715399235041050573953141946349225620226444683047603844972645801455526974984175923614435395332604797606048983319828712103106873668027361328559726271394344881597372640382755720820919004367773177349633532410713646592973777375836667612252950426070535161555428050382761133375542488050915186134622185753713069427933748097246414899001377731201381233813162126094987334898876256666782710625572444251538020470453006827213005994760733858927978655513616354775976229031349469555309357104778559107494662204454500768041912380481194102810754825882703566686406917690816195471025509173805758118267880299538448051454120889519521737660576687521627909883991888964079259724747403252896140636910433263759888019807395051575514773806019178630625899936996733837666880303730363293396111722640368720120501107145990497368921917708733744753119115591711584456682219711133662532315024596568330969530527381489696766597005599247797318324821703950742674894255277856282074059225528797587803159215653926482319960839922445793040413720209368304803297883909578338028566818094417228029810211523344863039003446472929191283591042190831962555959269614981717110961500254941707521282066513079725710444426985150490164030211026499537398860606408470230032574549130494332741355931731603865425060587258024043028624001019871563717103501772858060665435748887762307527364929599777113765214930963155656702918891668558147841414096060930499273074252152732884976023237685683852905855507915820595807061253695143776076761321167560116829759280026721975254212409548270624723499483821700944916901138651856379550813637155556169353276548114553623189970032941195242091094621593364016869149329012055002400053467469901490457315723581166330971789894609200383945915606879257883772957235857349017174999355350217901419105649284514139004898869636082844076620565201744649064181330128078850486306831741309630501625233563987828723666923110663508631127637090464273140340214123741198322303576882311088508820497837463129635050609101801686054773393823101929264828194920811746429030679706826876516579594985882844725028145229309189325668123117938312233820277310691335502915725704541722894197668769643566982274591442697627716546379175752339078964891358464660704308064038506117520565276982268344570586938531616448946176573118075007503601000565833307256419981660269747995683927909458258014432575649554783387060470176858201785687472672505997309296665137491723291083613598097930844458765956085697346892611992330030207450114236088787495955915328970956853850109407725719186321504490169879224018180138290451357600320655137266372983916172820759074132726582088121294701563571500806804215156742037041932228864454313938586020506542835589720712085682483585196557779491550854847971843825210170982779871546000804040313012629725393723499870330458784156570608582364523950443995251684192332929627151458931234308909732222178662062339052738226879549452902716685805362071549533363156746842447001995274514003640002832008165050905005599911784538760634325525208750412773508385797432763544507572865936161856633617101120358035123210041484767945814989345386140671568798798544678509083784440220810283943057378770921963927040912883694869450444905562101037730170282895182712977716830127851842293761923751448686184149984878504834739690651088751549451741942567941677357870095230762422779006961565711263899659692607333619243775544249968403746936544972052663272129964891260457776666546388841656299237605268998848218593285159621084429851045076048711109574089286488002830713189637705101763906381555913653609907144854050919283694199672817671167538968004362910507081993409649965750225043252784683276410413784030297094855658919524154071713237302711088360749359911720609740212597241807924536759015894045982021697953412661567544180641231967906847031663238281538506657159711527307740005491745527693493173264157883180514351646758847322548438324493154373593636981404172732747234288917806996200026584111847477157908086385874983220960541026740771450287188889891733339308316024459136361439543661350915926209063948468015609052007929539749979208394126925482309327902737752812040804201952994400721465824706888584536216300914620283767728727355970848731419699183654293332851337760596721196651744352884543909253472292904489783265076806307536930541912125694306083209599133327791635257100330789204494116276239924265502645963045539424781506464666558749775546167514747802574993110559967497805279333151818330060545924356164411204662061732408973819647699261293464259173515451497758510289814971400334798513635080703411583474882494491353658749593051685954023006293587396275901587739358597305356768120401017890177007057629638135146462457660038104160129092316576781245673207084101581634376153158300360057321918385078765274102402016255538116183531338547272908732736618318033737097198391283727252748520935100802581872283738691394245221877411079273423880348437908108123876856235674178883564072067296434464854633832490606835228924284353625753588947540332442069053645205305395159295029748667247595827563782688713882393465091278760916244903144075251315001945745110131005079694055172326684601100424920122742787300025176343210047537591096226670323695531577433390118072617418606411772235116817874987852474965460941316296614770708411227458329312219029157151171228286872869230948376013848210772423640334960702584634931683490465600169314264691553664722134701303249302992244518587504564987154188437631241235733366427902351968022533408043999635421105355596186873196328846551317343449046145040522955472365172753505272380738618185645008662987201901466680045103510780363486771513165710789814602099960343245472765862092727933920274738173941826414036555514256012312999226398827317853381758602895454429870924609316748997508922325898571716049706983528951726342927510010378767925765665563060397613756677265038583890067300715440663163385356374678794144957582411523734480651924681970327332322076903272518551641256738338037747682960934828248584521971276934168660087462732829620689898176575186121557053288338705634488067042528691320251655281207690746071820684854906751479206343011530765179462474145069997290159972893620187024791271780860879136151520257011343104492627039347909704733632484690487091014461218278978797088807058369242029030289910390205930253136873142778954071788497161112822134264563005380333263482981027862576202792183372959879843125860538539846659819112754331377609392496251672086578046253803772773864400391611459743046811087089965476542843881845070188025379288496880921624670428039502159277252811714333477125599213924155322200703262378701891099803658515442320929465076258855789774878238328983847568331760276204826251583233028874427263519128974862926801501705064262073017763241494441283999576514512296214097714905617747969110746189996417544378778424330228296426933910662403576168363463617015433965854083583793443263132376030971975530475842698020091160713833317349566156483473007920909231703455436219564019998987704723072976886843116327666991701255187178808296607726536215753541772343203843116031484610828391680759431122424285355004823594695717399029683386422518743746607115664750391924100066697810578203388765820940869479616638511337340483835627298994575131594372791936269627434559612115849890636528088975760942550163361197551328593926960910915755787335597765267655674570144303100068403299100820457960806004512510597097359891712730366478824914488980282871451978871395027767708144602314360877384370600155785451409297520998344115952080247582658009832237846422833668163898615211283698335711806872879685892238064579748197863246040862757714715093950659472586426285494292356105733458386366025611657889061636470522715796438746231512333318835003472897954150270561535441117120464086243380822020566344145688021026310248019902808606402606387307631691254361514251439998767191577701646092971157734309392365433160649491995507612882636515610191268661693087732293315578191056533962382673959923945091589757862770983240241954886764260002443948614213426894519089119446394475974699447191096036805322802630835293948221694563332354088931305377827325425302724987789410482840399469429438559906020307412895330145096813856948377905588485497922216488290673575004293884633749246872007475564149690525206027200910937359044399233251991955073145995009102117266503709694810211964294197567882228387164818890096469495584022160216465257925096067592494652625835929387959068812293090438562925154661524130180614819602888578258200975175051752120722330589993054436992271512859413535245738017848326302176052850287470906839344197499112138371490255478562808707304602731986447198247978525050661752283700367485236018599724915898287867034279712228709076549044159429118321288021204199282322000299366078928353448721407261506861255145985793595198916061655249484733599969366752516175594317678747031509869695031089275221264885833747577738288958330661498246449087795987471988159951808648215805520876029252931676388898277696588134639698911190182762310990578686522567541858075210346477168565719735825156032774583569953206153627840412488650714844314906633018704404287845181373179036500292472189783986753447102462979007060430110245313027258401991453271181466275559033752179482551668868464301508790972880108117058635320303554424342009484695041615516212288072798067297480106607620624132956067104081523622477222848505102704590581086040597969736000453814193586727076300849852878567114422255004000941404332645004663134224468519395552122098505381444040483289674890821142578130155654624393018227164361391964562256864405443817046187180989064718770644347910336996415118020208409944347374829281197364175359332492281508151938843552160101551864361487941334312242299655015556367875982245502858230754686466504815479782353760661163054260273909166419975323524809621323623013350693654034546477386041047986045916379785498156738094551057932705760580021320139813874543939912942152899890211238024731239981456936599348938934174549576796185078155418833154260191419881446470193597363375183754982479978735127392001589936497375971648052125864242490939991713079204848840562522954307270712585760958913344673038234142602977408281560902112629689431770124210706812148428023694690137985124928670495080967918690472457231730326034903940268386159896326407327851035678907449935143148296817664334082673244133170797119235417694618938441828083168293859227865426176122079064609218252935928310256227804526632616939361378983548352159668652555628123962221975213782933803075560587634254643447353960747395554295251236286534948197137381358434054548776761644280398720924819501771222515341100321461976041990381657249346701461150367239395681245728759749453411661963076955755141092785681839464318980926327448738419412415397398485063693524332712065160184542223424975320517706776494565284752483378195734367075233808489207521237591094621802639758769705074982176873663073572883624339272533187261625785715119530722725738599425549789095965209103520609191719609676905559258439486284926513319235861306652741402842111945613946229513775158882841329960325776872425444669092800539106680239327478555679559463194093899271250879531619911628800569648189189636352267138688649707398225274781728261745568056325000756339260534230970769103308363126530488291712406512556682081347936982871012192760536230209901137986259496814494263945276437334755877632198095269649782626820615060469817569566757669520035847030404014675370846859659180071997811562051665094687749841701096744106840105555656735114045732969322721512413994823143634707377125778062033835415845762914163045522675565862854482125544737596491980045939928154424564905689259131597314255854796174643250099953213254591826176527808278545828823360261772920258747798427741620134855530631904133092413556342349800227839412525024085979524460641794760172500711725862091744077113757967137392753885155456887085794871160060463600654378033215891663763499281136083826279151100208380727336521691156888192210975274556865062324749388631752128520341684429542823324136561293672169898150449512689015430486503970363892999785746094913181209254345288380840224269121573621643193675898650807819788189938590874765455043283179813910386931339005284537448745766077301214655571879907148654624625321980528305512603491432103992637466006020031457761181560443043018972290841206715612780471171333349867447926671584804450514691234168469397856553000253848150294206703756683463342311328642360444969088423142438366674888725738185928675747649152973244603033240353639202401483646095932724660463616761092648840117566093053936251037826918505925300065745356895817164687815386377539700449852614360909909508747582068460849584291552810928163889859036873896202763705953968403689424495520180437158264399716951878639375004523468997945770732433450306881999527076239035305153488218952636731028260078152838523856918154009282556923073866842100722656638257807148217326327686452470663064416538760280889788574326059050961877577706964426364455168599168086893260221697317066405952158237499878055316311971440900899980304216785220348102556465793376717085629777379360221870001511529380189887949930758461425900107212245582440181977202085824824515897655668211880373170181953324279079626311558606563011919012644751078528467534538849141480037941529307339368798340592360761802312767974337781119571714998124658242479620101421956884753567961121112996375566774063494368068247243574732955573599401995452713227742999733757940177567432265820870809392323170280830044412159313639251919685149792475977788566894421364292589086834539994913087550618822287470026995597984492921630072510669899522353237620221438106911254440772767688730314232865756993912927701966713425165677647683029399193724408967108855662001270776695101968588635866551018990084578137339610504503642384615852659848425988676618534946186620497114771515707216454974931886115156224306811827503197422165579353157582669657627715921345969414464921233606599735733902479614080430359829702271395952305687779146501845650216744712417529417733645864582408693080932797296201560186554409739386035832332574047910799013961267805613982539360209264654362544635270627061116223262094278922065635772898880174707375937946054170702644881561869432372361068212080902433569821392930912877457638477975152863723676334898564824023948594710540284784126652877534156510195946217393508775627489399086429807394760707014381877430020230355002574571708942886568908140846785152868979747145726510939288133255282079169107308126716374301814570702728172457368975547587836938105631228124589891132830703357198550617469605030891741681399138927470729705317775652210661475362514472856002345522912217874001836360570838034539822484836528078635488163729362909801068074543222796171915298366768941108736864056367116307023568309434358135469343244014336193655656632443168182138756283613384455245020910935276094895607997931858708552930009269609407179422761065668367074907328716459226876595597323196648063997379132381884990176135022160631618640519779294926009786712342720738183768586546900265387360473146757170047095815602266419177523758924369441257376521022289953766979953984484005815258312209560535062328890001018215340015382818677469523400417634091249210473811361015249238154585531275494723660658304055766539031772762552266607856895883449197637464533053317122068914631174892147523155466523176019027284247981500515041444601811973422462160131906697924028150077524438222799652380383848213220833928951055452664470888308867206478096768953868342474473631225110062313746217675417812089257137387529006441349509025240285661243688500598808954038410043900574298576629552129346048728004186993042315980920532100957476837330810833906002869921556887656627612392211741467484284976499321612552806061127813368481208209237316171586748419684898683249541229659665253453612073874281357638437367085717884092016227885244735533119605025811994792630546592320592616061268342901079801929007109108720994979387105606501383583296730697725713670448143095665379058231186375162352408137874776760134653820416618417840771142969623823634829807133652538857493523382522343756836324813948304214498345636533572680016412450930685415214968938349535934554674718740094551174248852228610912128423258442018231947190106208112487551803905106725955853764433695884206165634890715143869782427631900338426116259431472856254174945514395223804579086020230761474228788814099243763562205353335474038365275699373782209325985067886658059668904883767713712230462336755202940323736538261281324911104658808010334708082585202713648241256176222089174331085707629012102171629839671118952003791271112435187765201817480612433660300509683596767064735409067164043564164882616325896093392936024658435833975744614328942786529087682873102472226970633244427720216440258669656749868764005621399022441584327839855842877424788130764800781593620526948328837661236995429078905788031352497214293872186540585786738248590044288838684644611460584792155507528714702950336647801827106655188321879310253791222289469841417579232507657092168094470976047759846317570335081845684010387178848631144953230545214758690645864211603515000175623123157626231361544946755896784906406159130437929410544350973840622122541302264523091362017828014826262051476694643874352723953120388141045271727422155437047901780167274887203244625783376103663776337225785297324728033230434764753692816274142616005164722764003629946211212806496811040870562634016475766065201720776757605724086141394275735196437032824449630233240053040650530104673596503828000197544207118412604049958377767690595133855815657001424602096309160058197852148847300577235033569751275421397980488155437746138504278294201663684207939060692512440891962231794355926212710882820018518511900671808826412865282434306029654127176725286609320639779712771773306550077768407596656917379781827256965067459881818184238730367845536569826296674833470954472551021233230530649002493842133916110367465640712512713998622386823872141003941965942639551122754686949678195639328647738114971236236714011999527320465641689962392929345707021895213952204342261666748216780814721424408133443842661424632794524377137001096300521560121842752679034748022333979155492925949398752201930053276493763377219181389677372938915233557999493440231917340505320503456516708843040364634009297218724536663769538078727741575430418774938793601565225707170083996730883335167297931156355955144762109564099499572702251909298709439553118492709078444746138597553582151687545638221288983623893470440646612474766114058281033256089263813765163799147643145294580227558330988760547756525797310004224013740710188604067982716084865401208053549920779696596658568214263206561277200404093213590735568785122920754544366127197533107856131875387267224558300787816242390152367110905701585544707257935555770624523123517150969605482933948885817101732782374821349067402303790058655289885885594705495921889154013766518383038969466012635804881591622204903665415882997273897614574855922268627538110730544220960235737695453732810558838586510983421948428490747803890587359531018474626038672777625959681547928840292592771631462498263290636485052462384396680814508471638025597985929735028210173453031545614594410004022461042794512498891146770252952985071084831215027791360336156076881672753383447998109555251946239162653398723630083795963398248334670118229230610305907489697346533157495193738215566448498504316414324607244863836054504617386060664558241136391856577785715146471645586086246719531430237223248157553326687677310390624736144939163760985134396216944048772618148725570537670148431391406951866778570377774091883976314584245024404941973076561474144818922966682697380796512184188251959490388444962603137130951194328235467946183592448355309808806445211135114576893797526220031869519104834017928801051288084059606909124336647657093038378714887750638021794677937531689796661375630669436934612150926281072469871092620735992972663757459826880942033623435654683854692115083432194836182676806514449788498506895038497218041887014051108274564795622547380779483710724045581715400508955404643866307564976300825376614694744516461680966260376341055980460660683093254934010741377124802689039058878040173339650508458548891568507155351650787363661848318023242853308049333230478293518664790195273178774819584002946188066102044751020142845197981578289376227185579465418393051878508280064212439911649560624225208704080557901591853438242470020476717911964767610274247660976932322527502048910915844168884989679482919348706616296521426724292867164126077466121339688555648602082674815677205147739454276884872920994287849481131364428962872947254052432284351411023203385437802105305404056739670228285439186927745996799449975892128557672675567552441226392801636209395178884868037397471306095297443769500579320794967292886359591359084349783873871769013586038291295337953310425190560394233713861907719947448638541390133082605275021734783462736898161645367582195447462131445643297897101563335799631557557122969415998187795619152462897445543933960454981108334578801051076532744190811115628536071127018838926567620723685809185517748722833302397384394967702641768513713814866217979479210922116181017623155139478637472265902130715576020124406098004538070778130227708015175853270205851749439309521347594284943525559672092371615442433372123705030888538348088542580415530527655416696321722225533083040499963021819663267640615749877463562774032419224750404970197375543567656803830690349657360935376589035241936484476776144959447892461351616039925484053801076962149841685853733879766050170020163611659177977114499309595713654822487948694805606680423941643723342950539664609453313309097568147340480409864524126158057228760613934878392424130872789603280046724908296797682617610641247540859733202335153443837261104203181300299589893186218560518421636022407499912960402069343547476628606166373395588491008206821473934048635079224602125085007146570067447118158000569841530602542767812824519137848801244553444069214433576119782073488970542287137033312458201279870293291067538991497280575450989795776089616467485314272476601154218626188661143702234557960028912451605452648740393725752369400773460894962755494431855669163533908608533152946817065154995802004191323375612888775163345982212552357384304032147747034397079376152104745126304337232939693242224682151587166672020845479915278792469667779150475407191941244321767092757664130593014852252433407225377806165448841442815421327652127008311903706451792701665117732092130032156663148165255954693942839111724512171975052711698081788772656245386021021999884253979810523346461672446634007228870804936606211970620296855910300726321279088504577811487325952932891077070267180147134728429466175139000299123200998499364412826118352949945949251403042758058557304503791192609071981599146931954646258983613002998171372755989130330924278601406290299662602516584850105393143916873444736711499799382883838167432072861060974367843700572533925268692441372947449937912603889397449686055631580543882358132958609119696468039350709537867290943070889150115685617281455710512433224416636617296911579086232393335676188767882439467822507150600461418420636255207326075997296798612819183321591170101693673166589347447826529851802866993375667466473420569393508461769325008265933164256959309002482785380145030145387497628336729661332265912245866509306403094792929220586586744947477237928496239532222562494610861533019366312093390318558542340814638092052650298125318958459494421425761251688613890345108373600834085283106617605387231539376320524666404207035578106263811228840653686592917687120618328853473069514455299598373536359517248552044767589078877391247002667918985252346980716069141439398598379716701491272855765020539174923641763168825627258078345514408357977311545894703774236228165468919492481050153115975616594120946518973603142984691236014596367668820246351433899493400963181149870604375480014972568711979644023753636991923319159230927612722009553774341473278823644136552571616752143917879266223767074890446944796304506925329938082803144905318152289453826568736315689680862481791677453381891880173757075494718962818935415414780389462486521637737693167660326474333137051445383715987014272553040061492437129697531231646897217698665482402771223367803303066762879443537880914235565096140291712850728996035403057136176463322770869681768320252094040685163027430256820450279544787853983085203474083675573780321301769099955263895973588199675402690355041754917310432923705867148020146005082922628530051464776308095983783164852998060019108501528927846124257524458975594456814525590830452674377618406723114024846552766224305487375335289927718688264720380102671679100771912674073431449937573547943606230655464507601208069843423442066333282503705739370581372714827990712150762963500144174564226511159676043804736762734885061614104542424234071986606919394370202957049712546177960785600751500288376452085893519118543611987722655679212020548802821935477956586700786510671530476543580535856774058445803272280130741956275695694717567633167890325211742987599180430070046385087379529783006833742225968739225408878896972401668564694884657704126699026534068538904536951245233357483161526048953653435175408604072573210574279432350005851282914047114580929691151271555813685104789891349435773992175252654618802536865801832628082933238810329000271599457815868286445865005373354600856807343659834682760214926413929377056097224866124627454848064851738442970550586286451993016661900309944037154622069433627128807386389592640053693440102146619018277553734895637393910977110615531445338840396035122869772677170953412692539803813511852624956902000865232574869821393557020805033925983862315922472973241742277735001820269193018339499154780392108486627203762668402722281489318446172258729608033636222710698082277489727272160156112120507804127274509965899820017873880550515371459344991580717940044963009817376716136252417873056916913396578495342220168632982619819334043095183103532573927211802026968750862159541814851039617183896412298496472190929300002381225964193100680550115755881515829901563525826189881746588991755428433696527633741915131456778524464516937551564898942952512580882334912973982513345163689890263212191674229850267622492117641448697927007848951755972598455917479179278723204657407608038180689771007691418428195836199227616113085548427854497545772801086597641450495460264222440553394942690679438202855463806905632924334123203883254564657657848785008468864255640960120692076259101256654987042698531868174231663087705108633058708171521721418393992597119530661500562790664868063208220207821211609998804903484154614547978525563637088425182533565806769784563499698071896990006025018555243488199990850702769441989467209923185440244920187170212131320971812437805023071778011297512586903098118936934660771774599508151613905451537430698981788694687694165478687155301597057078846883345438611231175059983726802229709336183062668414943897922933418439682699485376543709842619028390918021817495681551792523152135806510441397640338088726285296473131392398087086572583624689082196681867960801051910959287464731701362765210760578199507160164522100070198600839391232261613028544163343198827419811540008823592680210340902175817022087625345476993351759841982890894486169106656087766446067619011735861345777046061241425151613490998742444393673036089987365482642688769315041116893431009955522704607164907873215771596416873171997544916958692543581343314668762405821041529974308023824085743568592230024715025699157250720026454731183833988491133672342267389169587115706344406045660814491375281133720561050486373625899408643735172572371267373044747919293370831616006071111875955494914022161026181064782526112749737687799175527363694003464062616481016072995042279088676612940004880105164730568290961827482921231179942205809298174378953244214605405101249590262184601983717663927667964394948359982669017428214408192382930686650346719648451800123814221496096660463385770915593758485437458833687635559140914997187764860860880309430146161006599098499195746092879511932194092402264651850797311600185127501018886440002790963075962186385222453779814275248199688684676904182201769637630473257132022761579653357831986021194656528699074868925741245013743702361588676664264541274153307224536920988932005774367650999791561469523748925948370257403545564668521882545571663618383945004094666416309631806943353160757562689915142772216043590880276515551131629800419158094309725880804665196964163051770532281641345984487725639319862681407026702583178039648542274494627341001645987971471911984079890082929325487473723221339070748315281265833085384694950525103941740984455139355629698220612381211803071804025564223374609401847337451099745996684379326059982966963337314440838902248499878170388014445529730350142085854828157885251924925893892062021219771771014349289000019772500503817917753601094407522349493127517819109726960768752314862744444654230467542085526908652256587767621869971858699024948987520704275273080277642648700371050730960941322466832338637859790221115628528483042297830000902416803574521345960727293946507315205909620120397957987878823205340138920275064733074857218187845284227926060966270348976920465329081624199717061205642591897056703759703393580531504709883897274980177388263945435205595414455758218492630119462444900234906095538772130185741099535380847939222116629424624097224625682506382066332380477369183515637851940988850690276144183772969938561581282883071732081918425819700394319254051014615040518968441131438008178212607967340937618298769432836995604254318804734110058643787484238279943263872353749811033486631852402649543493457454881881558743800781624225999970001623016466324870720467932518484771762039374997044612087822691275373510302295425232184407637802722163621561589783619108252011607029189692975890813490575117101460802448401865815199238819832284686822339634990800387583763242925466266891765246304719084946103083718170636760628079721997163993967200158590848513017539434687939840756620399680668309844584486496067535918387198592555731416615742287737965541198271700770847913878328196851085129618858629640531520084976195801987127626920371831915790581515492755829083805165185163011787263294140440548696603705582932739399219446315523586074501826477599872673911209043246890041188599151808677588100194573926152391198149027969674941063395379331350498493062923948014397155839746218531168538046269427335153738110523194123272093363716923429348385014279474002589594439702013082699527719831948780635330287281981302954585656183333762938432785414548098576181610015892648190497723944380831890076847855112981664137185358728608809928573984552709265878935467567671082308020690580095709311077586627518134813157837176550926764688231456212074681186104049695910679059580824483191135212989099304657791815941209145292462461949000242288578880194571125844999221577713342875265190917621823390088341359405187336528580112231953944045753999018322651017349396196771505007667171026297269237018797201241983658416943445333391780425474559931630208599939542128625630218899214780814295438501596490791775208422035056920882887811148881220897842335819285936519101405093255252907488610260273039886917525852386144631197284412609953939211015593084739880676619297660270078457919824304807787704337793912907011982823518542300753945156401126416343572153680791491884062396607766709486247500152574250572157919183364369182327331802829052535961742228425072848679480262712279817166908045084858360087995504256934203894518454402075828369935987634449608743259400975558272921596859015708761216585869277473868339119652364171509716054617161570732910480094169828020528746366156496229678973081938754356580050445238169779248785545988730615614244846730679336281657251961551083521642349593452981733337685350896763470893872871798174545466961987131951977322657283392379667094265763168491875275187498995975632079343523511770989201705579216532908751307029497381526108272684746226866680970108502891293501812646429578938649093391350444374336338652670574467447805388702388305930572326768868469496600350583986707275468370695808076055429870456201863432248171950910695128128397916847564675965062811350910485576466088649672198546082394513829752140347546305926487520423801752259234110865147772771009288967758659372521985643064550688093608097130664691051176260469537102387270530101632956354841905219279082025358358800651418194855999884743938622132725054368329157134649758710362993067566937949173063435085276687361409569521481232679108558821026701647389712782961430474527848671477439581861832880891368605394457236999822564810823109214076689873435621609434954494778062609890860222428520602419767750262668954802170808633382464173482212448265491298175248049297437587768516401736959945406299254865198136234537061605547310075120978552212424769524775518334483651821371173625348706161500279274957676145841989232731534630826854563098244129342024522495498448944617859893701285820518861398435180979504537305293406669924013356090140381722340730559491107371775710380796924809681307570208960148491445409661304069496506261737400135886752023557955171805696092821108735845318335105319090151169836912604253700928932185651429291243103817529315069951631665192453156987462540474324388931554399143552253328871215457310227989182612913123483499768370261901417508202846160044854694426758752668052413449746984294691036433902316337613318709999783846921839192983405744868121746285363846813020641938426015219019926551437254765635323453838439887355279518356887190832063753793003347893662203752283378637241906574187494292159362930374035696169416100100224067327472788786432390904554208927185934504663073391709819029250179410444713556819714302828622357121421614040815186600495085353765712129804099733290268427839314301719553749753033319721696428216828504312257101120215638840687826853294319562997717441422159239916245875245844609676355485044156400251085390051693451761365715741646661356675238817968762891558655364528210968142789258827780118082090075434340965691428366545147359819667921998511212785638248412318858579623455228155962250353759532038507333793968835758188374702762802869173057105797572670671165363336245763611432533116771671463453814771399196926060838260970215774318549055805622240590181764891234595730844066072629436241104069098042440795434154888957055309660178927739626266626116216141444017387467822169772390193752288164790731254353596018521819629497491078920404233575095787276765493092865650741856125466471760350639076922783619508107707408789438978399842634424847678036419224192153124387852539291009050788138863199123225472450897418328782910685051770203510233124872745338664248107653852816930168149791054728981804021889011619323084992465968933909056763064223005428823896678893800454536087327534133324933009094384180435613254713396812414727413832847621543266810639427123136418566344018978152543908856611283366934381832825816406174588826097838731081456338685835618768205102326944509345352772827352753484994975339737927782255675397637917805882610171447235982964327990292716057588176371149098617186205848966270243731910455771696848338704756167546784654306476179375927128957803479085737777423430538016720766335954844537352732293905547481401696696105550781911858024511416414835497600006005325157840821903528737477582974486182164462969719311841499984812697673373739277496253756994218323228381976551446666900429785403706455120070314133808227052895674170131099773308916227024043402787430136852502276081928241226569641184537908192442671277390853425434755786933435046583452332151127625975132669516242254839409612441145699457031597614121810171790566604468097442817972318763100421994961608754484293345874781260507292744180881616692358900662174707521330991815421600506767229900880862130366015688887943143739014100860637888786400790393947728217086708704225531202445134141465094463676841211215249442608793201578545015297168752799028437942258222446223930191638196334629213418044149865415951168750347933342651651087880637996419247997580118101849442906333000803138712395395603822678066606321579200178868903182628438744462751918251520731798036411589522729832426061211861140813341593963198624752191761226559717186965509777571156687143903851218430175739367820690691070736358704924497559405299176996296916911372307384915735950696718752948398593623754971465175740560329066651992676282860656174283769922772425327043916543972120156575309962261529859710185558293208611097113256021023148681198582305914532347095359430127742796227348955953746020741984787637554166393179357291075804646816069289819181977664784402233120770610318645295674951307961013043563024324692697916409864588122356324292044779431072690027007871839527260584250837221262263046209002888221763945126135971773668936856668139117833152353025902339048323882945680595599562493775633304734291054396741255437817637843250690966179453440127896144808483394197219911700220550049111873955570432121652908696298102368254637194853158330779667727217428223500163198739367991187194811626279586010867545951622171291548021170135556461929662633755623147860410724034914928165311916242381076134388679722334868536366198003936303064549449971868837785587935287536032366147978567907957689303348713560110336046597175783581528012008702759208557803628427464458352497613328671837067918326854372763925857504239460686062700655962449515963964482372137504538734084129429151886319867023370641952026157938396853035091560353512514609402529179105730341392399563637211296502120636907939495028033647203813212924669593470128993430120313446646902434780164621515697155685901027899952706608041016208888312488211157072976082247601842964162539604890284085377783754546196592035852784044792569747661445021846213418125436897480145191932351538698611910851823065648558378843722657820773273377362361132618559581334292534465247887559428374306704269761358763554490353100929301310611562147561686712533892345860929231220580413746654074630857559294134593556608074783428048483670631472622082412664497149386085533475673354458334758905523333119910809852692162256784664322238505846815715513569703922032358444258206157477183515879190124198332948461295246618002829551918190273784703306109092499411518352241735988666890811578113431636573665388139534075184351460421579108016058388426346808016229002357603849087441001680414615415424738551460580378840798734295428792847306434997107959936519323268888820408161960189014874664464801862611892981597433751293386265289328463816520131897558931883090658264942177416686822986315014089494734344632394484222001389555272438169865596898041185962137306480846979536612073660540557238074005615901083284868106612945711153258452753545190585619151265545943626659002931840807424583547044382026760062541556195025851690514826042662450566517349552592756623391175072094264248614079278731430235273962438240523462630745685110294105885887348101861110178932302371223031815860319382613575342852874432821908505730661255879107514746158165733037514703266825099585080631208983909204396657236572344015386223705658129948006546031799797644944888044227454614095937503312769528214678761160033467025475310460980510602825184366855604422836157366149648822567288908029063937953705266944797285258518744154832330358039997976983041507110678701940494478529713310831497734285926636501211790008915934478708003214117693011789128377411799611744181589626013024839473805889068038272823220558023769956255191593971954328104069194661133847471950218355252461986555409734440933634279345778146041224494973986216849233328671135655527939439265336315569034549131156536688947014155763751111942229205176330832330714511628672072464251971653099751551249518303991254547201397811007376458200445695220231414693781737320153471247008648647897982626102016937967938690502413982914445881872267749898342510781352950295532329942963927568771033447945100432843480224208070683268819653830224383218814634519868844594484043236119394575461334644957535902272226041009961703761706608237697563493171130001288370902412295375202329059479799287939527876859739842819019551147583671342301396009760641699499863008533760426320293422608649971214163849209666830923565280825668932695866026456879424026795370672556772494854482010939075961070990210179554548025598263239135994649645292291855429618992321549795487456996691175724042368657541649747508031222819211842898547816069034238423344580808818286847294040109999765042112422483123652053453184563705059065068900001451493248536238242698141719818128832305834784534259863015842698344983171049642078995246692623551693060932409220890153365186005104670090157164579083183826325228117746202406361941879736549807207074317461343100009167778987191805345473777870835427119064000572200246222100652858591982138557589882542095245928332188688046541349647881514728003272750407465933455168359225185069619562191190447062995945980533251340921163919150958824512049791409718095367117454063106273032332188212684216228200687979403101926062574187901476542633165423558775730360096799461163476124177825260659480320486881688097929692652340277388422836504596641577694355021219046616124990277809410839584081758036581046742667375318946542507582391429807235159176779361338284055854814735036956250811250114588951186477814892693655977041877356047648595578485960365814337062299900614776750438394201658987579986074890117813266203456912936578930239551336147391632444945810704104052800653531266420902546419551813883629125576870405294505759759819183548054283647751063743991901364389987143431447203388423343199650934967009961003278990021889893735504571887868804692385067660297510187937009481346421110194964393834205755920743662378031248252349758188625457304286242460670842058690528473867529275349197875305637401567254769280739538405649676811541224015453621104450835281264605266731808677323843093930539005904553063318129935998645856527674923957120218803627445327135871384118479353714633870968390972138587755423263560695052752339040611826159617481772510937577657222800358570973363581655684671395359210109416616080692312659940986811180438829813103526808550294448449799981883852669146937339597147902994300724785139548377485713049684057515827159483537712482282200011274759417099177939081621370435592860834441640330368971823486488772276226329672118742761070498774631223926897320628603644772728747841232416794353488323344627053658270125989298896310437796277128970430855490382921464243832774662614216516198562032553086114709419215315777581236587774118273700566837831401787367796396768338371372697920168605218413206673799333758134992285766541665417742107034342424043568364811503415504662556288005556602669015863674528711190587476506717226305549266734317808419430774518651828640773201586238536746147369779810212072454861465006753809704398769075411734814285904908550267306602693222458064482729372385750687168667825875564270393303711766603820165927232065821558652973842825277154037194170348011789486624619278423895204614400195561263655434647931103108560326187304128901105079923405739917027229698937477152284912098664974761223772106569654565633289837495488176907560936836647138399880521694426832650202429045994204847525514624739767065817539028211199000067265894467301751160385386278855253267379545589120749921269782869364229827950144845746671869090903960251993300452854486078535694676907826477226328261397055969453069832534377977449081192611281080276172659551054236120744164369556092383080018474514651063829030632721507902770309147212431086315342297303663944943599440510144303480026730129631592156987929302915748439709970711534171940557942299194841908925422512483980990539982872143223412511743497632330754892164812332467242698495056866089562854507664026436120269291700121157791920378000897146950693825226728960539803713366690399265475950928997750723716046448318301445247359341830387466265579351947910256851782490429676821980050902582864180543421156328764314481323453414518101435050804058764705020732956890698973630236442865871767264461403846857955672413833051242296862965703849216734315569957070493305599645949671063272288016877206424254784769413086902454740249725423664901984405196000641813743389395408957072915159441969294982079868208438139867381230290642007133828113956997095095233580024942907175825052128332110664447704625388611301949622838927679751252692104387131996504315152896118997279147200423963867518032113836200095009065069264992137604209540523271275482072841940703102809007512906485761171364803644481806951003968080430448332655920131302124282655530724689976596872504831941301003949609422817249607112574056552639458042121361128632794266146384800002150562345547980123958171528627013258943549729757255390035714324913806658505427369558661164676448441098036314113441332776644855073295913933391209467306256925164593601272524151903924457298335980924499396163159711444525225974343566576099262764186503640970006682391983229329364592130334489561599203136057556258141113826923763370092245856436998624640979001668433349240911165465345758740160007214802961281777414619219866060160252873598095815903476382032373982159921496947685329818374655005688879281197405386921664525664575817804754515416288504401777251787156128788389001609812470538359039374529132478113136446516010076593879053404466870932469962024485123504903445583651440897700303370654681904780067321997762723028364105346506564280177647649980250023383393376960508563703157760129640530270312811242688288037100714662016180474231684371111945963900936296998645139190495443343439251248707698326103667960049156194930494252273145071203828586852157955560685673373783731846850588242949103602096359699793360056489984567090622767488987778698094772472632281877762920763889152104756130295485364360496830431902647771930616347538571365217440672702900260894492447038088493844382050465098490531681990176728562422831339450310200011075370076681034034157627497277529563297610766335779343444630453952402997659783555701765119315957950165314589325735768086227468980720791652349323681677919477970454824403484470918422984411770141257593714965387332504052587983561394094253996346115404079113258552193785904617847518337790281959923997885816204634012946295173028278056985207935764358063989189507125624251171596113051913978681345334075879732218295785539583294301744022899646152275344750999581017413976431865444207508046149382987552927204000210842440382327909212138809481110522036622970408175606864083951609795691354315786574110400701326666759911964408775902134085508365529535074908441650600299669351421549685729713210492668794149134868055802974640530328696356867261360997995342537072886107704466581520030857182170999196050489658387544721072707115194701826813335909615994342260595297860328725458678871059287564425205814271804390141831144557364933681174853774167266556892728413463097445777916593514226342612154492694529104326526732888437505549070717353701538561750547222646778540610237346309413125312716332948896857389874495952235942027324202565331623300712972118383260216358286019892316902486049037635818194146218409362845019645416094368319780605061369730985804980208601164240497059818706316982737877442509053798912706196017716895132311579974661374064789258096994036532986695555120864143337915265230530898302325993760419987360341236959168066910091880124032242311255484876896135149294373805597103123015480815338133605404480046218714903835551590869952805495690999488208287907283697334834790345819342337363556399236305014235252886465231928995158151643171446797067932137134518302388571722465742348709193929872880005671829050850854033998044031975156149162922189073225631757457293801294958507985775256771355762262837915028829631856027109226928717602108901727036363545431527309853314668775481692395288543048269720725384131016354068906539488923536696828531070879424791249616608656413711496434558300359364153803009731488322955784891846656619563186684339486437893473641923599876901727092538041790146204681366999957787788786350540369855918822487295963898582721191741053209904638196084417659346275257206544827687005718558726467268913702328980894127139450795471454686488456993958903824704162796356031118280922731227844040839664409679512486900829002102596167974949445371163643818035000413914635964677053566578043938904839224689447855936177932400669739725907374348326043800942096146451726761179768336005318868124294675971021119606192808320871872098606372962418447043265348373737042061414556913908426632338500115023856665882683334119794131348959288473541054764530911301276108575088785676839899955132885153846745549851926679495674974985560500419561351751996452081200330290735811315165761382295446276823875085781882803688891348607566194873783935830707703990807327661812954648854677825620794811311785341586721743720969499070030613260089901350258370778777751818941651061663596107286144863574324936888789902777904091477869246269211101272598092822708817527923506847877364434437600092956584847637237429301129256870533969640930250021267822330441042755153559962597115887123139707072560157594784965082310421517353996169717719634153474464011551933733052751680664960649318954425828510233016695997651607012797810739671897426704260545584232654339801634011445221901439232429741548203063478570347627450336707888904166513269069523815093477589317010727745078604800616319962808997266405993533805222727511681655497089638947593737716984653550106289070911910063004930710511645704373918284531461700630437652187025849583211212026852735236708002504907455826461473054776785229273068477277171711857888971427332521933315921521030399115017930665717714027892423520039745394372109483262273203012215513176551201275781565526895488391333333643356771437805055866385388991866198871992595116517901908764928936567091348678267558460683947828145590597126604316582750496405190157286731515372180722205678924641355700305208660646217329641541769158229116585595708908114456857685796830317182399110677858322961754125349025958551575264299598338996396418928741289739020848228668605442459550751735104689397263095488813935700081979961578157431891604815215921152748600316112388060293294733078847741783569170190886065685516636075394043134492313323029714828072856549532130993671094137005242527924782520526308541475759974778249080444627423732564055457009935555119058608682932007262605379003361162778827806749498464914784730857104705551720738631054748774958718765460498576294162758736192239587823802711358234629185939809075965486735154209599472513172774687523105828902480306162708151021045546338917165990497015965521740134069543998209014142029083172464814400691165006260543242725825224313451032191226972512699698112540682297419788962208521754678584618907363770648100941304878809192587375513871914622616946234490498975534027333990914971280362347024345000756780993401223650059541302230404481250472738214076331562676235749688749032515439168631823168973933975774773327410973613163645975861250279425200485509573594793892066896974247609414000851617993957297219369782764437087971076374466360943956404530184351756164441655907884040154151928790036320477350565589939521644863309345643439420343627993962091629149515511303754224680840532302125610480765888162541511510243842797408254209720394699847900075905132083569210126263347205760982581762326317481366395470481123106512435984660694446234948428801738434229753221611702146036218162987540513456870985297458954873574583229280416832206557128702782837564873002514541403700152919175230552625883901769774237891704457139357691185988136044686157094889652525189551281868471844105791159276954915961071896276564181404513339091166653591835890985765990530890921835912651458848809683676047614608252998352507205421314882439124495337827125544717568447280486426689853088486898433785689438985409276090213252419888891443708177746261042318797668014122226854063729874287167817726431342554195424021666969606604742299878766984406359051441668458358555703883975719572260503112999681155645586792353482492810520248907094096025968851223819454899105588273523798856835696133044774538783340461880200277448440780759998664421146760761319276004645834841437765999134193006061856385395544492800257691912734849422655536700236692234988628494669548455439597591976410859576868504836764156894310957817004653945428242437064756003770340051572172351090889085846172261454800840378725462250037629010039531491662476461250870816732819243991792663000751025737278323305314681309867246876559800970841687033920043130405368877970205839276563236697003069016907012065902284905215301480942195133067207783570331853574925203582605074701581920599693831128480402169866390293002235332447351544973629378981668080579364118130782772420776582411672232897000106379793372864343077719159784424084427415198183866619400633340013447906898207175140832598101708303274624634101892397117341997388729271989622332652761482846131472143144351934144875514683032932240705569136551986116294979242625111527526943417922359738403055494731657761961596960422009761263705655624084982205085067898854329148340616072883256481867566786867273166068089880659820416278899601614340391312290859947870253576258656626847259531481923405844864271339423375027544808887620143758175596491920468028175912119064903477826544143775408904332464692064330336981836135265131863135213724940412871804112837295973469718197326887897676256664263908613843711301415463164236287763293175127072265514637674076247774783346539330345773382507014014726014486427764067625492462561795297272482896483900606349267078487964015963989871096627100194284038494758769230534623924661993926831473866677424501835120646509140932009974278688969628354995624156032746319333120202332326189141742099929140725805657546467139765904694302312386165209771039448208512512501740511649127499595086234941121457529189097694842733706149085662456111052148286512759318541001133571746212871635703856733447871659807099175637878892883183638574318412161108743799802159077353874367133700488763799148600512144822228851783548171004011698299581032031915053969594440696390937713267656359422651184231484861629309908218793963661954988373597047969220613080224221412327452748383258563489123190228572598351204156524529185187209093941107602454467473826507280568802510180639306414743188819080265414643476427913077709415300859199472927158690343073760278574884071979122614242065872619595093808664187971695057640052856276212975832414160930957401256767851258092006857813722602886420451786541662470425931410493224910459902089725842326947026735102902799439342876807610770500355398322754956786057446735059441765154288404505439266167043837946249910326788336357053899263630902363935969761896699799808420910845996901885065001439826603883833085833577244562587909022679847526577951531301234213389527174297880692324001446186744651999753395752698376009343766367494764582524951430672801071151783159835280109936180835211843333279906493267719380123858398385638583520527880019586139421842104586792380257565530330883645430910119083370842392799255720903405359592394323906691126319451199305898345979410073079492537969918068210889443224238270151793250278936605813788630084952085859973079417658715000025230069996881478808517243992468556967751996900586526505998267340967683898931764878337331910927611959900219551897063860044810319556108013734522034002198433783789719747488102313159797639619272846313134079413928712624737210792297057401743006195096136718532905432591080037115068401010562293933228215276357736502662973789150875383932270749527612174178395119342981031219843448454380424956412644026732839026699896745760705691150685189440429521428139384381166291859521078116768637137766050321940282560167682616408974730058828165060828488609864829368405894816596495440939017188397175150070197929462291013469872449290045153468542025733627755891104769755457955675216474928109409010132692486503576032525669628897155182415695153766658773509358477083961977262679523754948156937352540038650695616562034543679620928250009221330890419756229825123510342047496078753379193029207406603294079881302392353694957837479806583099086292184304352770422558384848660968741539830646945168075769641398780544190560542626301714511603413101832655283320526180645894338691866227687618387218100338312888117341123302526837297296951504168724055304446210949612703465356488423289532928755009798432225089521137853995025747946774350207598014876954898776815583412202405730953459389086171191861964306551142020341943062961358394827780445966411250240279279550304238892436482622744766030768997247443300484517815975191322531851896455084826245504026816763834067234086559116623164285988332020482482146062596491368381885531578035110526179181382741123721009547941368876545441590460693991898851693989914408517590784194304048118635454852584852836451772950670180499288901293204288523684909440453690846887125378100048000634124652003555256340175699779177417332185682807457053090298542735240751844521621020564850443587317856299611547482659049138795643006566696143776272273248500533610428239772643173685083152537529596240131001963393598648045859593731099985108261879283907778873625183803838164320835039735242101598406827276076131286405066703747843892367091495565215097726917651826656683577548069632397979311932497822904496062445570732119529401774671871218811716680162550567870026722399404752706204671502285126626375729839497513215113370866588978032905359213471887838005082710007960559316070509825464207767972250447811747872222201356922630690974323790846948063717834293343273888301457497934298065705910251045999935543562039750705794613702899118538242769786853584660443100654429191333707426767739383676706199084875214412629108880370214582478007832430344341312844600919525271673983810302739119697295454017678546238293919435853552262139361891758902619181478352232934710501685310498095450267570686362438345707784692382543167519829097829313399281511825000631443003611370606547186545459464599590966420782155602757028546368134367689718054148638221116085117963737784420929485881914305412704381145341483665422857042481290973896535655911204782901571698533957922894321774515962309478166526228991321490316400877556995868688479161568013151017254183125208310304652171391638993126397440526948544784929903772620710406217605195284163638834059745578607105726240138286923881309489309152208772908268803944417371497202653576185310446736694862370738373337979634883028190947932397952618145986870630504432687246881200972381771144215095300193452520361438497148855197820668686834697100269776892409939662226690954766352177014365084149714606579417939584028544276091531947903614518681881213143587678483022454863117036844885290988795821993090534368849779249576664718820995152978055130700850560002390497125594922073437762241623280973588704098805354853020648532028146765381435943975146860463546999459368984119254654417267294844068559773603479138907236709988094073034147513563431878011459206814241046068851216788536630893026265749822932095967674746811861820335451848244624019777577879785537139144571750025826887329982844830831221071696557776593037168764975625762369773334279075901779253677845427913060524597159735810539709293507923926523937385997739222300166114553898206405623598289313905392895653052416393826139598780706772427861512298659190149163202370420303369755778821187566593629655406124713692241586682293826551093127478199332624664350880956065715533574970808548895170060233604556202958309540782493348664376149632551685920880549164383228906619085649279149099822196588158726551186588680004751855509969848564912563120458536833258046105779600870336202026778302033811478392092079146863582397912416572592583879946426864170199926368508784494516747616650165255426047016425875340501893258675214191781162809177365045972328350808027873616033462824058003853558415529235750921917919660407681579674603960387496254967558514362678094098173429400938194358933304119937400904150185613313305222863059317740456735451886549916423652912413056563912241291177241139814768060323692635190391127544709946958472682171819606545800386936109604916670774078489343485558636404314717339434640625717673574293135915506096140831069235339382312247774655189308917695097252950695568413774008243111299494597226054880409350362707452706330294522875408743768607074832304723096062103779441457454728584157904163168151892920044349035878459703256371125230213378352319787428622652734149868519648574537336407297644326674716524806489763427557202208590514286301871114817480390713398969084842250598028019089892324999166221538601453419678487474789395890607219553512525869398209470132426768820918571626055176461839175139478434502799583657756814609978447630496479170316793870924619544619730249093103844653645564067201917258415073500454323366948857140565968108666893619456313945234666141790956346082713966072463926671737017057264401424059034827423699940655810477044951541588403215461245951159982474019778333148786152876438541856023881058073716661748745024013984470850034549840547944813043025963946562190173144541345874216480418828705121295231288489509967470386089252543110225271617972546894138970853700080003515239769530845889923409365634949136067732568186276068986993981412872640804012306453116833838000345211446218783733361657115122086639747074167269980317636413548600360474532601504319091332408844430399915899914484136922952053338527889225918437194789286226147167570557615738986834590438860758108275847397554102052656679835539323106733315295057446783016409671208208298996407365285863152779295204959207393014371434672342662495848082468348191023689002441799957304373824306381168101086122958119362358434785096162231611483253172984343345332552196009583514219847041257521117277238940895191527146860172949049151355410758565835330362251229679154484471487965317645791538802315670077995824155445811541991195147217969406463048782605217161373159631080005608131157711369508877370393420541042532601969217595920180076517453371802852144676502002102781483926335405018870311848153600608903379748664930030850476004159030544719348496873780391837637494981181006409468306592381343625150508498005156175834537174143867960394577682148600829485218191265844876832957118789752615218625256212698670532641275971913249404892158806794669243335505320640177193095683304014039686370722401407294668829108952135480526174256747328530460556750431707773684172224333374764118813564054916611450786068077485377287969956449576105490690695060041509461796533339395011112555632748209397759573479826778403956001422743614938459812056894607967538806510551079004641950743482200377751543845006041867842772960841860831916653074155259054795278637454229969223104695938120859142269307179541704390414885294815992214598869414392471041876060497068093158911139190007784224670061134088186420266864631189800423034087480859858689774537893405023072965599988292873729574981077653122683925233689237234570831203053840850484083287191996220426774015026141890953377185794264377162796962019675328863479555106097997015926869432284376694874083821433195178707609075307781180536298387217222164648374744743261337289834787351746800281431087382267415084167409233885692466582235016772573518240912610451801132306792621578349451349202221977434737245776186389731707845720837839664868175268408216864145164576277816838237458411261741636837626869922240405830820869684751263626757527441532809671025123782489763425091663031486899824710599652395041010447343320782515138280725381360599396291707142490615134865304403128096860507029999910811585830869222108129257287320347619107365043101153148230853004018589987047732025228942642329132611480273689391003172966623567978080091741136516487018304786731276377138078902127429291999841111464306125781261516865094601626896780686711596403170179351074416272644053302075404539572450883656029105822853838604515784082379504221776746851608515746813228433538376038405529556350112695979100216012254544244907501436464295988147485043874301173812336599810754324697363699324001327750142991155910387323805264976420150717819019086755866931951994229459763565403394834979916326649087830977662971795973284115670283194873674183367252520735847971511757084643872745164418590200068427289324340669366656146525854241784191822476054850329875649098679362030048675063765969624477320288896690207720881956464398732184940516193008938297629307969057745272215066851389506440673221790713631055032213774395097330260087189292468769583902116250814676551445495422301870131989410787081658194685277863610338126931550937611019332916022640927891299146650236720149872477048534182997493903306334774804033565900913021939511799885979960875729133513804117444185762484170279703740739898787201016023836922531691395664193557309218686233997883523478259981072391684945919664172460551620753101061080962152895156031613986769822686389082413915715255864060035798539030676900517999305133338683624877040058064866047248565793559907080259419303452317443356428802408648051101089179301433892404160919168823415729685406446907039423556741569611320159668464312614521103104432628062975609646670407293425269672764145976401685418516095504750209623536307191113207204965109952974375369221659095368069548477270183867716968599470166629912205898445047634481876319181166142936338596254208811104618199508122143104417760445223956800251574041066935962285796093941898888199531393173354275899209000930728274439570266478351301500216467444905987397796877990515240851478321085341361568714194046911286627276320989153971810084062059888982962636967375466225638966851861310737346759355324224263802759659927727008661259244639083551891395051093346658940572637772327283396734799668241155026286027456186842139587087170122006984924099932008600066615414699145237383197291544055946865204791896367051675339534131229606971084272731641432747458740412423904277248971934405718589262070204565019768904269749850842136199769239078922112462321038852658852011334702187853799108000638431572191090400161059934270465363790765541383262648072660753460924226037421532037400130600245011680770000418448534485707657328165068440419680095149207005803676140080656146917587953041592617485285544789556910496814437099475792455352449770508855805714889143126601700028204674701251909859321071971943807832240894147176372297032817472020585525151785795929768560897987050435651482995099275790955797730216762164566049324406486686182659488850964229671168237182869689916263940997550618103414193069860526537703151141300310510509250478497032494286813520819907852411376321677916554004229236797872155130048456922502334695828389038483922732069057622395905542933303152720193104702448874074787895285642448863549629738889736828013823141804993917503198758724936164557796362829952543870914950835278961356454513738470258284905983369090447296392283048165367288625200580218047059120578697587113788252827282669979147213133956058575853951368205683103677869499069232163861259690610471435771321226345006700335826455466704470254089860300330245810145459791563394474552013368979540777170150845535394038793472855886980157784838522987342482638774206127299252686427829104199043210105274271858448296937413259627339344125334411648516086559947094406867231712828719573249865345728557791118275920880388385943282838391396547310524331756792089090441612747879224544133844789612506571906709998917654875495358055436653029720880159296161886563973740690173534342673111308484687789046503119393122484112113904779514019549884331521750797292199420065898865453185924470085661944064873015452934936319250515656700226383779633032568007201421233027805801184751738343574794109645985070327840345769278562731457462335126683363724859839462020322604388405304346778902697540647746846531015999002026438830025469213961416936063822934523226195811734871904699527367295472384943372168638113799891632153245740544444063851773274988874642018074455459735715290040209321376704764259365818729941453432013084277786466134748442027116369685321990453344946096750465590019575643935091137869059411987640486884289671821372518908457523308095273741638919744442413514967341136794466267821741290694734174621267033619308958130390259634756041309243592141767641787445603698566180051187107532392887537812854583674523335083647628548531517745517885040105972842527959781041330783143076674813928905582920952847082115959628019809922604551580174177329136066513537114989286724485365189392108128887235654402410034967926808679677538693002137218084006934213065062349195460867777964953611706915967415009165716254442414339464729427087646084965254921741260746676389650778491177298280879430606082057062539233288314428990711416099666927785070233261589441298944495922602293520267478925657326934269079974902182726516686495425309912101375132682536109664887165322318784760712252922496349772449626898921283736622736889517044751285719159425776397368437623601182997888620094443981327076225776065450630453461986803938609621379537140092737361257174687381378341284985484105642264396578907772937063105643198196897493592442028588173132179736965442673472526333924227602687763788850412426355408611047396888752213219797173698890110811181656705057332008532329395750999045422241985586067920379541046707414488524748956410546065597820874198908375102235024794135462303665724314084689314364314592899565665264235754857845349603742009526734534365241822522655388350994187404146993621398486427935268128304829027706962501790234367784267712909734532114595034568207351306795494828981908307695377456501671651277898119030942170904161897506861403948769912592122594823962220842557140879171644051726666409714772651754057016810201164367456667805976193132429906709452782726031485095821931440368551271068168665720693093131213594262756774303977440501370470804838064144929184346618433734488114022413618537529383071477515528298628345598108088003865008088623890201137041663810925797432898391015413441610195404718715660786551423667582072269543602981103265234029283874597556978229762949614173152562335283524352213327638708160794774638930002681952996157726990055884815760688763178386371264986250109829397768790597275914032642745834830590074004546338756481512124750683426883444207009164131085253524695407355820914522925995877193109846676449837464498306722462413683870291459235834803199724009249516351774250962698694672799217850237390535658369611134212136057220367082527506715553428890954550242593358388554558610611369366104106549829271195847121066662414449813337230544847019063023099876821569834498151638287090946462396364429016057863821788705920699996075746716484362634928363303192524035204880741020637791893135366957975396958219861422363892834272712687820058927488901244746661800076530174346337427266403791245974682744918574108663898738947848054886179128920487927651898747834022201210741643647533872747886559898481534236154948898844089950633797263167767027483800507301337218868437023053885004090735467773912737030268880641474690249362288054691914412240087268027514128818742011699264018218938944731410794032026563577433741901908448924601073429519074769707161436856375140481533783188687758389649620151281544323200148839462558794435662845485013406080425274411945711712906033823601389703725139142641860423400187236940028951084363309947110681513377314442812983237433091873628916427327146948950727859347580069990110944930233278015369168508281713546373634814232689825528979171528348418791582042114454160215798878652079457164667110833193634206042378354368066985015206269911433785507582363498329173386731136800647333890949651588358381404361614695695047333847834748336092128634446484236357770512996217783892915514502043425385989704948009772924989374403147934580714347261129510334006953540477249139603734405076211601028297241591510616555666471259398717590625209348452697181773482277722788580956107206485502680561708733017534215329803637132654868416664303234617932706494999925566949054598158811664020895746245763477251571532251189782824427215393644925344231450737475563816327805041174481205105238945151451202543902043482241996930004493725957187255621093727020215199998934799606326661532684272638733197831830781034605387118153271883222481819435284233106668170830321166736799082885343074324053230322903880093016397633545207029005374404113825854574492121147037376825122323739899827162621490915883082633849404853703096152648181103103527245771509952748755023896770937167773932257262814412032364525081869432928477755730600852264309420585227360899514696635919060307525754773639803735575968451268948726837993526048362634566960707535451496066303174038925875670540125373112552179654681383703258229533224554915784960066084214415528015645196335901745311517836009092520652513471264149448955938615575229548173827517908333048695764677833711881678453858955122061963951764618051367350327086358022690057455326572981351912790402786460107607841258678300951793355129129547740167792133099216253627498754607803252252344693653153900474922998936629480788131875801963583166100165853661070460135367182161369711999311595082900925219795351820117148165699740426145693447537365371115914833498643187975589368700225490850524343736921592590053575836068077222251373861206694547684257464965595034588241657185344800135201690854673538108727961679153431666298997483762722466728009454138138798160738907363232996769182476462770345309899616407610636027778303409541064832327699377674387155483901931274079514412233558044680860534350619668471444897057305491564365102325089895684807088612392680038343442871834517035562438884257485137808942546753920747851743272386997027379028788540474557781667969051371507756357122275299809019580131299624913010516052445057708773130570409723787672136817775567485081790357059550310793447108329015602298092053908964466227836239800209830394899562153541108106909991702521825793794079933539104989244435792440359362102608253549184545119018798662217560423035285782352335588095647664358347463526577930165565585138422254599862392981632063003093121056699123191942011718610758918577228981488404359760910852476302321834657133542465234359333562863678598872341894123154869837284724573871194912785712823618520711125280383424185062602146444284540661620403279841954806403948784665600538617119798090696779211988520996357957788075813554369097276356525378433476334544237544104405965334497264862066442952749605838606642256657330752696186563715039935513727247354769207379854886269962488525977214768274907457054911925227437092077373690453951688145050773994498640110791205579069211064977239831186246439398083139957513905707840146670161275196932995098746091963929350112774961322472265643492509959751541636581850101612672335300911967850882873792178505748264971448690335682603625547414573266433839256127135980787000774527650403109746838063223446846418474556818529197661864685355658148604155689247453364272389452537390375241137947098595712173687092364798238141917777113026824397619841785982353652819443938336118382795642296301776742671042817795019915234305235843904928950691369651566130446810648863022460332761887052348222985512575677097216037864692683631971498621524282620882604009745246383960431766381345349926052692267097516506817126982384896232603352346301862193627129883423343668348177766794354076859270892710226111200080702533427440150847609942659479836496395713881486501708043811004823381268317437538051557992299901340382588055269418463297025027070370040054911269701448539706298932335766238190567940439320354541656100853692747256538534121008290909225189538311176189804556689236036393355214160284479426706167301717987116774172966242768562713249405874314354909474026753093575888563034542994382185436226359180300835551763439161349611556399680142233399411631511775783082750203851567546737778783300732422963463389721629574345206067459713862534332588818507116944284104789182576735803798489785193320633089194399858623551604233940302932889130852464845853126183960165995534442849187002533336841646278042765853123299408319130641449456508746102341261147060798321574832332338559308737703880505880042592076514576222056447677476248501805969448719413686855161760507600471442483072490102511233168079808421055563609541273212014341856724919186957862906307587124607056833368144581715710226072188075196304038908208088026211521563937255074867788484652499773639955512849731855321393701057789149048089348252878101808076403164389533067561192997502446870528151644748336288418074978478234806741018728242834322388297286733685234825138094622676288726319492475067110318659662933284584825837496440718017289681325002401107329214440569986011090617255786396888063174839899618916146412775687147546275773904676987708710267443155818145366398871963091450437142646087045471856367446462371829878536566859197748374286038617149878889895619231760962426648609864301848981677697168969892335491398424837028378936050933706038667012098552248620179731116645253159828246495769997635874220842749353368896029492139977096852107428756043317153827963665767430179472004773726690709130428468542642538579787122127976605689113329952688721255327518802279063207895968769216878205958196634556066077598691190682146815606613347846727009065973315970834137358773665801106220260580243572591101433172169206821395802967061153228122496910571465091619722620010956864569036694253031338278669502931081858801778798585609470182315238268400906326573596080403918805261854078830037189548241587229642918353270469368359802932450958139692995065167829265537200799245714783986532374767373833400927927896741198819874241451836416676472090239915561110369311804811591779392519019063429575755432293722696249219945947996048924979567654205146609596127369446544413697244524056351483157713346940602104670546719203870596784854004193980804422485754161962226172995071102073993846940655187740542587643926993092820217627021851027662523363407572865803878917536038131280309386977918298117803794879271102074008908306262414782180911527626432205636749752402570476411613704954984297404687776043941968405270666239936697339377302134997266183907816619786128344091184798855632359475602557995483590045347048507214233105107484763990609192895589566946381027052991637241456342033217159357842324174584374673344008767944116175534463092344839475875819807689056992918414182172517565660507898330299307875043420422590512431602956811708341387866989847924783501778663672591533079099756274856765616961895138257891279299105819317437622466454858759257328560961318302558956897160517220703662450512515621064523448625436506950856022559456611277040851133536227809071020861940205253420913564637682198097937464735192182545269011931163425694065946771413595831183169857393076056982200307211067579186502573253729950997612033214500585296034732279029371073142095211701805063582958953169047736669936105029677264769790358078246561294803823242135271016395812361130704705710253627318149521729561804547378982142185441468645766972148378381639035653961096838438953654151921741038872977675845551606270212601832805077585177049361112210735670530093267043817386705900633124231700239655833405108764861865313532194390331671740513894456121305105660436146318362598671675827905799362302916332821656732416046519332063124796405893996354369140328148716553308532011886273578638766891009890425304027913525326869269623297049579189724481046942995718331932182907312621662872567060584416999951773775720419392754420219372730530340815160938738107629602667118580877105888678258205669722824982424270149994328142370871164532458992230779154550571709884671807788456378322186798195245108474098193332524947166102575323343967319573064869188213562679921967662719330274687348625903506628579812948194188055692630648447449205934901428905211478409369863916003793412158215337822188190394507063785441773868571443656930348813562170148236986147587650660082712865762091601238722806754723903173958510890069511554138961365476319425758916347244728768918181123620813564179251039359583023795072229900105482809162999729780564566230397451926554033920648358235262464206459488547516883327322511864225784929236926039699151910308925303210624789259499289438043908373615663922396240603012291555613182068320157692098216491548423286160364125342444595563114074466546532576337982018163960954937813021579368223298614346750929071842344059055961044014753410840727777125480680375435587791455342923231192167629422438485041593020646087347148400150812139631645356637652093313032083178209148288953930180875914534694532342027634981333356789676378732239331210693721048327581650642902605497290422702115723021703854091700535223579533779438558356532844807457746020868772286844008516794151420723116369258822152610462915188799850106132807540061314735114250845204377344835821313541296295093239863832617661057746374874702043914321273258065606246791389319119418049330823827512126409076342105086757368329351325790839363018950624199643345722814054587796816426291195183768357710677366421289811023491886884140689068228308031339381878317931211486572807011717029649808521431173090131213705760072223781620574528122036687285865787450711899476322449182771195361196600381615902286944820421985678450122800568791953533703215358255691977271996713792011646172264821975494506771459726277474198614752209623935038799698583216764389426071060060832466892257835254321509647810862534516073531092212849170799502340209181168681282981160414070501660361278310263123418871462334604580047771198961829469525399977035881395909549225012234775870166683875444287118735519391080713857754982250915623209498996584729785049514156809919026545734593238376950813858029751946284734748621537494055947383381700267908018513196029958664882264301776999840910097530665410647037258177603426684304584548801661965100024228975007109285216184261615051743721074248827317909599015891490345484581509881410723468023453015242212045079343095863399913630780419047015306077800789405841129872889603128164795961663184668602695904800900765152569358539147252258501695837774382925996205178326947071200347425724801864781353506916448598138516926271103156479174905130230588108788568706684175118419154769133766643438211768523862846650003181745033054886731392890669842798770599100877884228473902496789916235452373566278095408386044681697232573072074910260255704557165469895389411177422906319097080095470788429538135586653703743542173828111275406402281653713453516769161477181100365523039580377815868174859322156497651984548469778263953246490270966921254019555231977034079196091995913313543379563547990235646593005461987036485007059778077362926398751527846846516823956503557049348250317075294278652683816879639906340078259084693293080550264948245934965004044630194371801956723945647566986847136897170531445738466746506189418751932103053514314237505485801856216818382869386822454078839639064310066098398614242302706023900843760928006111166182984656582284423309351777624543132438951697079876448596432887854043217449090442329296145559608911701347126573838544017714422743902482711826568692317058385153772899069448199823850284766216130566971909131644786638584653015220790947530361888433760120798314788781250419573483962837734893502904957935545817782130063242898115245624253406324433906275290210819423368365364402021628004206854856118133410639167906820266894124957583050689166042200260270862108406647048657450754559413886573844127460901644035934008724943323285475612862766703533494343364835817153745484938617214888479780745528938885647385219067801268581094833596354612548066295003632496665274612438501921777755031652889410056163964871162667319353285503452085555691971175099406597545142612943295151552728090528194414818024683814026824970320058968575041631978697208099102013684436272414402702440897916723352834871026148350862007777954157129128597555835356945097104927039053173545046701004594830372080105297010864535572678579457540592946509995366012313359059231520230289633595637356352838376214258801620663789423295902966612870809546911697288751177156959759205188932476495208378316721971762181377815907815889202034099780659965666030831666618057709579272178235530605249626794607116197127198815309543208558796623595993825710962530100678211300260779178064694213385841336067375400597606223390562041906505179559649423266259122965740084670516913705841480268539632355603500279081910122823610241489846638799670112942152194898015392160890865751213010562709278789139013812046577004815947587839364432805324374844064868079825242640862467392348638179310357203314794452408068825159996388996220458034668042042300907940403395234523583119882198356375828289981804677482054308451272121338624934564080832741650445033811859160758502495073434979218606339723224104955348441840693508384550354076208374672918442952772322110911372165529174079713540006065503539436435450711779447890170827149914872877219016420287198460221684685779152434649093349560559374555308363720667141202342004674615495657603918302736038185186943183541046907308651278508426021820007812340783860214691995843824944908985460368280674580381972874894259786332486511136942886732925665992694684356685454252840893055560980505571841729517846939656478813534112086241526087402382090678068217269919107534212472180689760840897072842693866700062317386574158615490113411492216458317777968822831399389139094355726089046520222639588094912462660251553266661286821312933242747772197659114889467369234473768396183483035306491438846922995158692205527682564296852502265024486441280717918365062789850340565216886005516025710980874283425755008857815559192781917361485211120178702062888175633295708205853842399771824841688849695658048631546049643764895377146417444232886150477081093963096008053790624748724713229780916582840995274726459736818807257385331348357985956633422915354936268836674943369969056858514287450312369837124237602076251104996783265659942885717807729382651255247102445109481719300436415339421852755921647152332461861655108181459704977659599161884322511838392150958444371553567297294402821867542423333896749451333703125352968887677777058848298904212433268567480984632669986354404222992779726047953726085914789858317774026018970366753164929129100520222915289481616141543603851442468530071289004802264414784304095491351153990709317223832733669947051673284897007121499681289554811953553581777791105744682062156701676370704568398639395940966723363891767904094538871221791762860537391683398725915598132782463287417026191129489234812729457171188866388789550835512037864505333617603907337601678670488766234127790821540013012871092978314843599592479801657426301375833421125597379022034637540994739178977068901475011339297108412675767968951404651084319847734201286147595939200542173670470972345377836856136233491729539394176873174999988641481206522121100169526440355949275025740569409096257938304758185739531753763135817654665249055851021791159558789633276590468865036914086680087464231234265456815837459437005292029040909950988135508285942607351169515563902817852231539297282749949459552363558551323313633821070996835143182595189877138892674329565275593362335676603443781051210564882388514381432845127972343643553131984429637669707465418624341520698505406858083589642238208335684131235004395998540380665894554880395518640970050131458463714709355910948880382335129402071729698651362642394912113470168332628351635093237137643532793286758244844386848471126319688858328360647386282437185341205906321491938411584064998824313274685126661458630657448743770386518775430425349968229178143635926841506269939957933951816540945842609481520368505564093368784586818187898865566227798719701962486810499417969526993495528735634044707003227212969875063829359299142336496079402581076279104136187164322047446338110684706184328662404848083158800601131911409958002871307654981524344032860016237200986542931813400271487714676240120373203358904525197746106831171769610102105651773410967666717479196012622251488128492510685069980832966453238186929017027793955564861717417033007031117308632187323570654393987689239946995552127172336827174445335965040930705387630039233224594149599856690441737849601452749109946614377765591631270749107050377928050665806647657389692640300768894861990382308811626084527042053746046357484920394776359597265833627131542969783294284918063189925055620443343571470435217170001892320672928238289845138595886318508573073620776332116613050108405948734205380205378764105916197210842181108705922218947275324065601992925408451263155903537849325113836545800358256024953015951721311696443975076431339230715851614643001600323588887729139022393286703346659395298807122601526250532010900276068824859082839772657699797643900896608426155179748178214149552278494877237381155351666200678096265838316850235007885316500824234527025774986549979345797125023065845783428367746097172039825381316504158303342426442644897380562946309663886713032590435505083398083275747661625925845850201591062553516252727998479832010222230364112260958061730229239382417103572469370956149732810709912143009474934758871854094518185796963577229839471660900255107632401893389226283910146678685581291350481237683637351026360041672644948595806268587865130737924870555057276587223928682203590053626067395337195800574122163297328854318991416506974686048356677911993838694869824334820462948518644237664649347674455236267982021238834052702117853583244976695217414076522946451558129679469796375945794672080397457734238974137000914894733874075242626758814605278214307736678781138566227525146232640527501519792487254555943480694722636240214695714281406984202186102386953805610678112073459226860920527958450336955594219793736980076102600774196331896355143226238504890413930345766697539536917706009414250430005320034919442234703088288339887758710168240659271730482896389091014165281233989238000171516550201580147205245482931401116193114512182747172274826519026382322069541024790260624268918442889101711506049593189821040480973785635376114889060959257750180695160119513199886218633308520622873726987829180656562459789629479229640317966975747467510113400018613583299157072175246047697235305771138700802763303692599516115765900810770045864838519842367442827290648841601389263812062964479871413067131125257221850154060479527751823119424550619043462856209954681810439040881231341828165919165300677902033184797016608474706648222089743002397646542408034232106570532409103368255980420390392008407674170349558627463203535512833250000243545814032166067001280042451672182241057523213355450577785655189331950797204429009706748406514036823849602472466326156268513264220754918067223321023178491474400185620031039591744504943080263633363426093314134024643127766212990985251917985266057136023847444213150691943325531703355826255357661639650068659289556423790003912668861950229848967386175087389895862060191696104743994064814032769673871949683157867969386879629397773946899284632529244426220998535414286761656026979566690444642513747833204842893369592940158278507908265653738608233756870480184654648980298592972571550820191112218163203692417110798628257212125384697068493108817542972525063806755539692303945778862476256524004620679232264194766625309963100467100327888734574721864001088561297241360009538677967518219734809806948777759773473209350221546771843637464301005704410413290585686382315383189540245881882382884691160852746743573808565777463680367118678348124091050270416659086581835333030737101741394649286206684607945098935432571003134131780007180297830292400889362374328932817971529936021928915687353488282051912985077998843729503094317868220456166743221884422353211946683873922810422122326901763438001102148307208256601656043757267954033583181241294231666355983989445332046917126638510835451916780051565230579707114453601024886180752995393773022029158292399680536700453138258976852525607971810557567346946428336372849994678752261009598733782347348061940883039848187516642804801192449026533147148316038806358835230792105902799594469529938322823085467238090779145544808051246826465586790876697078948950077242181032644454616161959048471347846797816304135914041704471736157525532176658492808963859432031753368005084849329368151916938300463695886366710063250117074376420277463957152509967333387949706002785888400159243177285262497235546891916053307390037563963599744571922499517389866344742686679903910437810498660281627719835026249940721921536389099817598388379671748369981876215518227213268915996966156473976808237975319101836512508322004338034072343879043213140000002914745471640680773826665687763296463987915152085621012937675083262103452842077849817773878494432987973760447735669656689972199901861973782351834940972193076767706602757535240457292251343536896967201282998776943926477696084398247130281117750899646858496323655756749831427399567478277430800069304013660844925164011018761318347434622473511028698124358753668251501642023163652845693115557971400408965021817301008501547473940173767432664248918557268933257934883464574502357758499072721971902080088099234002826667183568458452176797653758510611407437217813408011277676786685538127352605860593714831075725914918860243053763943019272214713620078741928824962321933932444317577460199462661822974250434186397190782286920464980908444749832184560610977578426799893202629188332932225953415612197039973191739436101999446366144572499196971698985195009855303365480865628873289047772783128476030739497341696727627171727221958859457720358881918087991052012018098261915918331349900808532593223554960878522676759324364646262372082606529190763495821794090927371590565538019249696524005839213583576160468844786701548501722060050988617674624601474882677236795911608372145876452525782232285709398173021175192132035928513414382625252319570291447754099590307444246073555099785623714809802836840712566316446043586663001843539978057662675591422742803750789317258941186614580125521855393349052147160773473851644509014040472540677774155875663420928101481344794034659017927327592922192945459731238002043496842618321326896724266005905306112701247022949756276417837356026461127660030948363530334334244853162109953655667921914189845908376128228430942201645960989328477204287927229380542232412794916657529598064089304210630737305208048147332219679847211497292176028288186804619143515728773856279957788027288175440312470289510254769190666627811678827279326042706714295268913536388393075178482074975608863445808471132418252902753383221010348941959102058190026597504226677865578065740440440188070292006308747178493032718286540893906610997209016511131578631781274754837670649425889386319026205520458954160679410606158916002134594816317725881147413504087063099154857563866076371104969695297236587587705185238049629866876791916706936213025512308837716468389974433218974772561489752627279418006653818695923953930694199547270908883110376887466688360491823633183700560238661468037181817683709619285337444674237284742175671454504546377752288650830526381930580693545474989241142819070751564691479661610407070586435799207370033536115952991441707187048524606137484926252508769216474026390480544804165545451829092089696902027068731559917356986556133736451657073958043995741500053224797161402405871000827964445439444071293936610771678824218763088702677276534182757887322186172605636316831630477647621328656458699014211937038907851830551878746502696419168416352040560182838738456717657947949060580654796903013607287528596778249427494961750944906731012533491409968581549539332985250991628371596548441900694942875432354697837300212880649141312148005329954703484779179242503536654953605613284147782003649057189880625565796684611626588894568292235484568346609941133074799920769845382546067222913081915376418361034097309947848173455249960494989805754561339460349634542562904088686354440326469529226855901650687073983105785639325281521636532614485461941007128133968180626822680390699749428762326235256959518428961116534404380277593999364636212558163904720309678444428216835023913982729723785151673434211558172416252674580060718347879797499914488376764697128264409996414048897555678692432000574713529972157045566012653381557882926192124156208693017414378882290733988553132442007517390360784566668919352919101792655890660564759818406098804762245106842827774988066444334127384874838868509889780966689772625079677163016049785651177693797177315943491346262369088635880575623540603318523963636520764317570471259092847218014792642437963068769655910602842881541167088811174681853026317562963099093134141647122790750824424404749107457935919992453129839878577351956480242657018723719883209465692188974255421042323268268710691485351567551228246844689869074770917296349235894695058654809182262199452287827784627332200646683471587209610695709517359791976146484636013274691189302254612053576327113685675894719723034115443615917330661281958637568596657194969580250689990389390710721702514945966239931680359838655852076430111113047646258304713526916539450719259225788026771087426209388229484882213887336258987661582194608441801816917426604741320279246947818735317087080106545076277743707125680510923921830116045949689270602271891902170726789672550576255702702210186152619768534493067938612921861769338111147032703087165673012322657616653149612965955233177846596148455490932748299291016184107696074350900340982280162253180551458332020262163709378285797894062822944306685860512352082109752016931541883931936257360119451475271274248536596542680820092695622756749377073338148306388522708184540000530217202484142752209423651218162393267932525066131777626016839250027277665468034718576632088456870444019555475934558217621713770572611061294336111933726610069687531726162667306332069397498878001145085188880663823561111315160582192342874350053404287524542437431361209700676620865851759831121101892216039527954750455860021893397200222729531364495894894653113290743614029308108280893409920610159567195334013903341435157731404180868851349313571839019398226956790010615521028358628039328458499008395413702357162562365440117606581586734855686969452403055135899845061199854492441046405319456467912562719536705543497007705926513689521308126753761423166505517251514041164564935199930714631005511670653891585896396069392844680862810440551089750246759254196810590270839370484410059969035635300566093595588684394074826859598479976601293299394614178726386286731010547027774215120452584063501913548336100944673021202177495848326400821378239717473843832552825929746453011463154449114732376441527838908528729198435127302745808011976482169941557652786225587559564203324043988870647144304036221308200696648849381664502749961137605118992509443946827684942197907639937784242536830783291338514003902463102325167387224695419349737463523592753795967734673061113523185096544399562279878453870933786074632226034203962202845390272829972641968227791488515828200308458984769596318949750012858257947476646985960610851322487201862399854691480918279992333713511892912850238914284810141463878298778869601627983640282264340730380467557098610359353548422082275180247869715508394048713551066303893640153496066161368334242603406510320897893374070111154245251894275557937980274354791910717708652134158707444879612414888625174268747723858453828471238410140009297594883631375605144971044996407019055414663655885741789969507678438526874204385112183370127394264761661428405610597930814090710887902865383714350092065378093533565694221277747480707418232042781099775190824972642000803534429832701641143630042499151739838152362517484924096651707227685086374148337809138825125174222068646169067577003208082903166783295175841001141949442779861360435404783561502964252051396137155214242321879754290622124479806965014829619925960237256172065695933815843375987735723611887946831057490352627805526598994395032939245889757784106908602596579878218872278489808634772007662184828614732102841776721199779700040567816609778251926634389124694443439228603747461954906354607785499055005267502364020305356704722518088909131678292791801726201895611469900217825599819927209278496941376952887689747025834701667908389563654382573101618866235926599873529495387140008293355612781971365090653382945550087919813599600086938627774471083385063950042963870560202364725433714096998875273211724912338021029037799651623992577296195445529974867934430163492219246999810355816059165933225482853776448704277125488227105709053656945926053468076363501320578599668357404153100392969161014536838175700222631561543716326657021553462826220527900258507699073324341673788060780857421898052203619316998482535593222830666119044139588099475456690465949748293658432424122503410382879375570126613052257768545312891131146249973068769786318296735315348368953876862461250470410501756108978233468776608286985557046185949691279040035980448575421508650724901280629053196476367213450964396801592984044923019040405632856172484787571570877039828651174307206910953536462919340677195918415086511500382341246613971389397531187479252954300942951441565332408686003286676571831779210577380675433819654656381443141133974662981813234118981330383293366823997758218771202395549002599587857012069376636644050252552963203036247598828273427814418005008501852328850669189977941563497963762720483186416492358898467575464156818746105681033532788340671065934116526161428837214459692658114685011754919929877498914470147264622292500599637234241496133688088210284549751116761453518486685658000073834349092159832028063361022845749801944180325208346036583372489438116895189578203181057809974877060867886244081034707822337925876508201816710648403805772646769411100388781350960720332619125119603505249045065150523228813682309787598509450520061635073416722608989133457346687755642595068271758784411320747445157603113201360712227260244289102519353863624408512102305109829784329907766111054956352341173050753260367998674459820781559380391086009152251977646443739300981721611431050040740585822214386145148106713002365592172335182749799384517866357696531069598827115211931409576837021931460541503573848054592977874584423681058983237250170236006791056124872570979361533222532549773962526883461824167809177387214043175662596839801481334175021262950366976064910136694148502862543876126702476370743121148657090653432387788616735371118230359153550921214158861608782300056919985325938731215870067115743133335247924197513090445996190541513503523131126108601626911097574125999804809011346690277725720546343597304602219998963935159479442415691573175011659028147388463767745062677393912781671245752297841216682889274423600539532296348338474702701536541038659476431054429587125470839600410659942622727180302017448644063659793064421723731245462674645486404217431178306027669550477101346050307788491886125184736043389324146685132412928981270295414206026025566131129743856180019100673303168054849935348067867056644491946064807971630065135098068564597543466461728229774512663936517631213178034359280535239745941925652384191915847955627282772834776611053657689134662196513804690500833756586608342637200269449474142249932202602369838006066744938240460172199611559247081350536542097625392910588009628837355230552375737111219586156340826654670806538133642387847257289496192631388606839071193927451994545668527762263950353584531923813353650867150030512013301812085870456483594380757700920809222943491844126296370187044591178014302806076093382949644857693449133999640655363189466575773266281207969092025625010902601023578147622510133715387968314548669927385165475288659063481007380078968308831323215318542212527617090298877825451848283123826818629317754227439048680210445768544379728101265958637678744256870328726792047005050181046914845033955247739176025237463917978557329039470262367841870631689193199033333148050830147217130174761412379688758501377113928943654322614954771712734248403940424343413659019108357914066977613604383015942346000108036258786382252307554242912750933305812998633302294981660778326621388872237424610808020261312937928817698185947206599059538709725454028021378749328455226410252397793328702067955932193003203787242256779042409691546222708819368387982883266398326751126473828538659033450142115825373499397676223384356114177728691019942539584340086509442251944876600375714378110505990046499169684497130530016542690824925580575275021075267523951049516778102865546302391001979344972143259093132597036506269536313991635460054052210875547519946277365765955404411012391113256284077501817822336613989360387921815256813776085412836659370839406333030035537843472736235972660633321339277793200225133734174998249933176762727711036088327638156292828918927441614621159270652946179481492413771936627739874395749722458724143568042277957292397198455345073553581869320406864498968140768495309692745197075597466957416483452314710068699098551146265778095584090582428625238627177757803488554748298626753154611737268537997368065589959093511411973358111106042184524534482719870300848229714690741870092741359245502861104083179547026842117235180486130360006510683978877398276184159235170032967010170010933158317811476978714156304009578638448226756418792533853529663677647897095419245734518145161435172731413001667129070992751187215315153819415606140842411271638867243964897521869943745829682973946611393512741249986022914716002675580833602961382668590286278953583079000594132124856776260356957047877193374004546609507257330588981043100120161554795515319053089449592375852355539741113099230517936767577987917400463283709779407157588824560101107945167264697100668718391275279350378576692479682224661810691165136774267066463525094671373687576886638768466051906731975102796718994065054248861515199909157737713481632332972118730534824334876948947499861438041906998657618931579040277573225558643561043867944737576738498942511091898203024978235829330009324413484958678604070231954463835508171584005039600567542538792728707702140703860519096560606045559143176927778476218805558110438331254770426100840573216798192196852306140780594884130108890284735953517212297015896373766660505942752511755519468769539184319501474467988670378514031599553058309449207993385562284509745963958955548524157441993667455352482819963956096437174703889396817770836985675571073473152301224462816124136817434772110010370598975458655522585600714656650591037552396013836275312315293180976527127234944290615460290742291642305782808600099787430204795802386772244690199839287028956650056171327294622693115259624301393543086398881896423289894932354355048998289314986662676125636154303783939933958907651738553032783637265417126066936737651474373652477056435322129018300050776681091411010824734718495573950818889477708917982741921564037727586666587468354407183550661350932995887190943909038653438263968181476466423448256182160691728378886416814026050864933037965508346558276863307238873880659419324940104964417153349008884949408563979074281648926723066777988696777950268269277086194068171892418584173126185202003628645546232847303944506217246081781442025671913591412585355911197869334993883128976696291899433267825748741392366305357348736968471427565142489421258411179256088866951789773326368388991563850732204843490879516153158493968892273084359170371885561676898536081918016060356218149415475814339450685488973897634404347020532591516444799325078560144665402800782808787266503576927449496649178562775359135825010421074104250089954210491295033621571369168657886149812247304047878113165888741200441525954603284718016768674193558135795049965759796661876345928480190184009108541857914802282999840767019719920342137225775552579312147855267390524738335696922106319793684985907214646707597744231083950570208163117652298417917004125163549768888814999603161276313068772362964084200436770138611080467374280322814195767509812376369838926112241700361084667978290192197648385126672770912175537527845842515539589524560490368781474773961205836897208925757030458045476133048391455335418332311040566227402288333479815698123715081288614652107523475457487797502243109695320896948528134612840040547490322425397970996008176604823964033840575703033174093774952844832363418320179560832225721365333712586880703874851746438635764883420325042682937479791832816680530101639428678974165341299665705180716725253966333803601577495475732516210690239283154209244535032774400670256176175143018296023835183728065454832973896893191788743461091450943286224411738597348223084683086727111950809207371911619319916792083804854824778827516772050227174440785299091199913706853861974208457017845135723457500132662471528789396737331538825227308738133326980222088612034239136905802959701102054378300025369730721087315698829601049176158908276239776556448789708046044782145397278533272767884052562412127641283474090429035175886020265553224211761013706107417839862579128336792690916556914049733277915165173051689287115309850013803036897383993050902606457304365572904949928989261858875441524340536793915883904969050805909938947200832194218100768824952508511283629052344125622584832863329681054561264979070696514978293820687553582322249081066855760879401727106939035477969637698389664063479411751601775187709094429667530956926385432792295795635049008320402567422101708282453511052979267412845743421228164401948948094054083574013215365434068532268705164240252738976495460418274645452111058653988618415108384093414278229439840267101633373189935636372852605854547021236789657266957420960045759570064693429645746287778235382915945591030563319632902018011394313670122120168217802036495322932995328179731511166220419799731187410054696943448219853382971363408444451158406159411156632337233857089662301858630463788925495834894990756326908896237573787432044753557540631525380268432455760349393842379751193753134955189489043794259037188888188781888618003421639614611583599727053568366799128765783676789347633734887465921655650839531755614022800266464252236299234875738758681033157165293425855985317909000405243214168525493665416535519082148221499115254835736082789453319693208255253235858604436185107442024093824060788879679772079418797535685867269064150832393085627448457976815769902444338883604192557945260697945672432604633007555158261315220463863084826748293328478231512183078371077310942572200974788447415612230652440451273074232869613483703261638183420645811755048260186401819912422753951792566346566121334618950963714383135922111359701644187561111165910698188654039618801703785146806187296019785149025953517708836605691017913108645313775416132022098275052742654547862680244990353728232077773720540094706052660664711380068298015385801848482842945298766091809960769847091610597923880378575701529068756310337793201087167033464920471137695983722514047153984445826237978201192356877865057179457748314266540609498746902979036097292605751889642517100540388088479793459969024802888100162850533763193854047776565638775453910190717156828743031137746706997454958687581669194804093421701292706932661124126814937775816629645547232107255827423220754349595363425212725703121845396812679439613949863287202136075158380287260517572976813435690477930063012884738382017659005147422747388561558086028094240432973001199419729006200499877072107876407465633001544836234044664180098010548472416742093420785010829005977997754727652385817101502538751626661249551490302291406922090709518652324889185332066232787523957796029639311760674069507670397282584324109115962173201297620924570084556099309354531014359416987578186232060422531213291813566016136566581269635238758488267100889444148853214418240096190653786621740558648103961322200022995407141429165626539132392059729277935908377106355705227413443591009600599307269302927659280226325069572793890487399677156915712295842939171255338990668587489781912379773889180727937877792834333590992814225206167575944866372974765606323483268692590636407284045269449958592098117472506003966384827076939477441517279322665722047114474358645447204640728130932761988217944783876733237579608200289757363921989197751985452332657914058846812193069298954185518137269445402448172194945356373622465613487747459018310145742381441333676755057105672179004971755660881974540193834425664671713093254566358895151566982938586589424599601997557099326518449810259032899952810195062390812750978832696626365974346795268155100512772509945158250021159753017381739941216671065298503343702115133719941049582569837894453471972902066459412354299348944727114811132719256563351890976427280119059129305871147947202462454293446571970579313413410828363384019446761918319528554819381107327563081699667461359251644931984110759299290949241113677154911693785645417151603292084242803211299455874884448018417289812891594607645910016833939682449583422725119215163689880210899799335287430780836330714511350092034500903520900982586955212105038266788981587577845062600676348674594125850293511735039842020057771987866549157576785410977702520197318366050661535031511912152326865313394875827272140446896598049508794907762027427390483506372956825941780515572363143121211681124409836154760573293912937178083870310023690355674407857617134489951542590682122024754629784265476633721300726699480765545956561552667504096085240395378861567247308414571232330859676534765659664706155038504569225437504118090244457799562907931545531155124308204274343279934276478168150189289243131575341070875227917036875453162198378733904961131220770583013333420017987193031028088389858112337241988552110806041378669109911135460989611732083006407536529571699836956563703969976723673239615377777605280017920669664785196711220123703047038930637828372008169263059016965916310119097071425455798085873372528810991946174675714559375010773817912742606849548065284181227450705255023950100028470116235464588402303815141579647251672258929434353321673785190614839050050947293800500003856716631911874460420998432317831003595106517974547548229432352538476918570320125947854763535930513748791594907717270824389931698958513263587913744583892798490101503116819866181191870062868806890099142150982857423948906142325490578738166766429895373383360180761185696811114630307440116609589636248923350816032421886891521759647965340764109154068599461774429850598763639955958966139086426830307273273154084926063973975610640670032798615270741459030388462343523346614634062745512722761994850768416529668296084437114885306793280144781560584062723672619319965090264937300983135064109856839307326460892394293435574904482584841716225281854844000454514708540713467260972069430216114445091812600981163639748957720609918770087999373867580433429157638271739622069400633552209006446227232807206910369709565241843847780058864693678753152698633690234382160661888193853025689635861494320364919029015596185643476589978948862514365476337615305251893484258592226972168051346742317551008163607535542963673825332927124910865237458947207703259433177627523190135363709590888029433838435230101760522773803626191031703274918641287771019045042071201496605624618640180110415453917446881429636481156317545782915500324959659512137135638053117893101677684125341967335608828666862727733331968299525241451612219372306301021217124605877985409554312009879268472634011524850828159814703502625345943799848341900276954646897480391329225432149319902479719719420076834333148701640120113964491067143275868457988015701432931274655486500937411823146307138248590748060787748826360264263586776783870636778312156713055956216758860505098363616400473500513508506683629306571365226498754658027478988371853123465345547356653807246311003225729874284268890127290927472384140618398797037128019461604280164187957055535786684960282732986690482308622968225362994340239183255190867807625009168741574231779190211495805621564817946922716681689872001776104300591176518162618648862213054809693631801816911402154163998941032478622004714006911642537344468032776224763412548542503317396077361500131569659061349943425006573734312053518313246903088089779918534264088276607003567893037741462287707172262249445876539641824798344127570953753271595687611051006883845428463911730287105974340910547292793874400085597713608804988581410914410374536451934279399481276015706504765638580406772849168455813169823991919111607851518369688473965717454982449279365290814237199409981019140789423055681605771999020855159477603827206868344564242046187225436649155820879056338099532662491524056481938907420068097515623977614081783035980859857218285552867975882602269101441811033473904768570805839122114251874509073992902971534707586941201934209613946538923350421071221856430470057249551667883667268473539666492113895208897144450325287713238702684867626170638495283903886911817886209473319174444444693741096855886201392857071023919338912688513586714325538551913580851367172195030067642314301128879100793990358058188097122937074789928820674660645968742869962075754048222631604894823038502895567302556564747575229770815418555849688728267400163913461174444556544835103898782008604206444052390627787188471670211589030750197986998695917680096975063042913292848768025133951429341391413240134118145421288696639427401142718174383099922063448192236515209056151375882463368889383723210188463847875066329175163936340418209408104059158986975740568680877458820390369287927020205684315084765147458596580852564415942488852708273277125213827290756143690779018932325067353332713525227546294074942660213406287986773626571559562546905257353063565045707648339866940345618053215363509072023364709071319381607024174567738141574528356814723767030463405516031158136080649978776777202621504603744796020485593484060328634530260003911754395928702362142839920047805099128434924075670609941983997295927683775791785795184866141180675381165466237837084934494812150177229576803228951416343459699906354102227999253145218458118505191400850464446948879981487348430140000759564234175894411931907318139810421054588941165846154005847714791178766660161231761355840265756693921879556909388588879117545298385692904644734973876469713665659385600810291678479631419130780140755060507949903583957809618280174189182551915454006639086204601161476173994155563063099026166482980890441738845845238513289041618235226246611463608695629257591073800191771795506429362239281897355147940006657971201992025873677738422513905140564945075325007754243163528762794501299773173654674493683294337729269671830871407602114141019878708891725941648282864172849624984310446775268614762540709958546650261910623848895561037142478282233298386800410025789359812324059934131922263224151877298824684250417661360770644151730131572125289122598567607061274899687050323244159514163892731497937743282906295330094453497399472772032043346557474743461138239377547112856051537984606970364428392728406587857852351530523645208928336997652305203667397478165188660360681869467983055991425905918145742815138988754539363741441427426361819649268342913669143380949258421809046648552038628253561966640522571764420435066089734900234803536723950564295284875357115804906619163507035768206957981624071807586639782874600559216263879104522424094471638513971293896245615460502645040584255324377218422295359515166946044561609164000965381688853982159337790928611545043549134285738600884999988994722386918772504931062778564994967160575353468479635197812461347350219321454488984134730270206998731733895028741163065876241071029233755381098991024249967278439790803647814642963617282263379840101658578711794950186041830845514828277038013616734520907991528988957298840867815691663425552000938022631212311583679225359605675812060029057493231014540910783979284540545605214334085040268526684254124458581047345247023978300666313367177525448506042822954341127616180228232675566981066915176399386646513388539460070941483155644647316897480241458351614664073200852227024342644041626206880801030999487008298251902242442716951585095941003475310250131027887808124586039890938982224895390441220670801433692600649988436243207062173421462602616620230910567833976051887633438385246440880977698524671936672066060040256678430322922802789248545415232340076132284783008645069877513929409332536112245911445564576802901915492419937247596366095446168416908274740761554839123797629181168096739364283647587064793389853351973663980020963115262341950759764516547703430246086732171810283740082482286039205810813853066758768283527459050059010830140992473346596060121589360079921923965796863359722848695893347342630842684115076283630060439056746442232995984735554496347506844306471458884854635470628642613140712687347806266152781277205613955866956154148272122010603348616558941737618296018389546558709832131732931477755052965309575526964638572508771986572165421743886344875592351572805577243808428003978863901338985704549958714468769600329194076704712724558436883654724458321071464022845896121945418596169992714119400423459104790393698373531644142986510213612077871889187996009242051678697502909743774492191108316990547675651956491609608392549498078256930385662801557299371564504220793357015658203668047526723178321886144325879983869037582120110431454271586419496167583820764687632472550959532754426503811413679326153019665389229042494233527322710554679462070105673259394484224165018173702930304939107064611211859251990500088733976498309711354200550315057116329631344302414177175722166899393742296423019914775503305054944068907944236750541700311228476611265396986413250711022893643257285254173669304599990283273992237019032880029527934639597051065279774818369228641625675571164024149054792173058163802479385167588843967115450735807159797588944622574532712615514371481577500646583107397450643700265552543681546589335888988444559287515187680882167718354601891326189205162245157698530259963310661084005417113590960765789863331025798482242314483602295992666576384377548592053223326956274822108783415759533423251580735541541623822648638516235819321115241913937526645591379078920122644835828518264487413944342087195801643645270798140180525902505024281535005778935489913903130683987459066695896484816923374674056686016753651402596940267231399934252371277531479888380620455490222096780030878815491695221545475387373376114316400856075473571006354635064962050874637768594229975746357086768607099164031138171033289840689308508650420385866309532094450541426970074512118353973515123551087330249515738505131179835001570119578197771482335974647670698410729490433200456859262182236981411099692512287168390259823166479534012416283286318259077241117896205870787068634272342783529263458579938183096443451351498894439279777091484114711954311233673195767963394311839866833077071027203340798879177379769064197357252419221839021484530246965923756585174257647921950277206272665563024509516937756870170753357069828330497694909944146374547478152558726583184403388844366533212042625921532385460686322387866041283229578954965031207740465089188470337543339424110956613708057739572382818030038128173125850722859831159283880624013466923904679557589176133273884955735111876089671131369432038607822478061055286567651817309160292442812187515610619537298501147352467167368849488515443939357363563367462840773002628436731458153401289492895058014051655611079466489871586796977672966543953725007235735493499739912343149405263772334379465420265337290105470606746330562767058169363169456501493863877295111876832506699984956270725480943731703443255748617751900782627840023145358151326601424835892514349603265098158244684621693714643603724913597051268263434149622982780865419744285308569162900457434914963376335962266000035622114125226655631630472263985670593511838451042914797640097529856283586163902173693857702561533977336820379593017521545889887581532020673320236280043954159087396287890190710487426384863600708913667052872830747738522841036001981281709828378026839779645618321038525138221028228627260868924465847045978144529820937951251805673608495673407939046423778576784127160838525812691674207623578804851731918930257074424053244370061465378641708379844933175189212494169334077957441833045413069288986591351121100154833930976646014591860518934978045518001661764102499370791262767886737122263493082478761742882278887607863277122380538581634213898070560725930290633795054997921667382498375014516669372555948200564209118200060051713838511576081710923360595750312839711192097194021279126359401480198893375205716531371944940748754289941483541637519365748128248200913575332625232698960419086119499320611214268172320359571167721907513056770931122761265469807994135780415585057714262561196962740647908515040328935294294339459766777679776102521964975906869315435850924926031503609420327356840860556599460395385436356839032314544196720393554017942075795111285754699795459583595204394460407752545067089878109736345372414418655033411090619135539784854832998243621771038143564484155275025996284950427353949127691187271697376493534094544396647300408401869430099730609421704207645394430307819852066012962859320933868599696645430035863246268427907315650622522908925806192511581635617002058108991493973289131552770042447962310491417633808909762109940251443525052614129978603304033422648978779935409842352134429455373278794653672716002943337928429193505474073462024541525302929418122152612944464413935376697277827058946986074928260951398026053673184680752888305004755302714656631985740215900133482539481454892766010125494404616455258451026311291541815117682499024143748536907313960002348174286714606691313321706943601455859302480541576182378336321990699491439751476713786627838608513997155546757381011278147762744024347730084610377974041624066275835057508139283364988137233494623351825568649864545995347465362201462221432618739263562959979475569771079240728337325867768389632906466479671269643101508815407840003862859267359819859641456648142000871464611458465210426536011967010399764632424736936668438024592507432683552910547066825434892726560824740377993046485383516232750091908771789322521079989883797938499234767984839965091842724607591291574925080465729091249194854348392963271049373651896981932284431549676626550888608997736745912018051868392389024593061957978916926509161500003328215726778475287429490020000950587421038524965877274371850183386367253545605924188218742082381469340384360263204763104229168799640387643329956741626406389540704814362355015665759406090632750079403397199835524531290905930766878412543453658649786650782390716619346926452404786429661485355174505608379202536681373344818244387597570981102107069004322087831051253311874489641488260467959307268116876412473336551103765538295407784587551870428076705784529362393899047196633648572673034581336656019176580452122753885898999421529820648921728083800716155832521687209991427556248529660287582643210420063873358507308720029564737897049222110828979823238694184651189053410663795802972850697271877572129083295997977935383033162250711093138021334483723629777777159232497129416675933698444245621607935055880243287583582318964388485179598090893589321489027650813845522889891433786112718035441525110347998086852860511341633315895649939270568042703311063398986159947499618419491466222076985930189801338022076078011778962043497405787911992145570882092396617691244897220111643217368614890573670763265846114447098692086629346288868811408363737963004142800661055975764774458567686403511274599841807987058155380692551495129465540104908200515533056020767430855419172983744563192605387640805599904354511428029697153238255304944110287150312912560108230020257816956175979515426980932239197600214543122801850108844353432188698773047344275582471233531625089240948564804008236611860291107512874878544452985890696306163769794785407502548796965588070807669691876686792106989279009714686624621018827258471968648570504455395103066125559027310448483947419761887622740094498584152697282442715955166523823046870272121170136512697111400933423780280493006901614640292134567000022145508395381212896260940065248298222461503077195200051355610850286572699900519213386540984150943587467994396297311645765047277947571810728053715482803422761673812670306998676654986880173024992896362128271773722336210500514934399311278467436335106873180399124137222361587867639985861618920529324139790495737118638510817801881281186149291411720300753220584302659077371990648296437214699627441169711067688373101074317669374750467545416565107020464320033107866716020388893230723482508483210605080403855671244318038907159623834081995834023698014329433587624234730096351237890669869526614999968323357685112303764476283871474869922382942107335904608725605733452489466363656662400849062357466890457027690096950599014005494822902182552550760670950726584869760328930458539859151316318136435410795700905952435823485271089619349463238249146061228804618293655946634351153401861542405028413677186273826851578900928183435572223601947529283602604034009151866669888243510472411529742610920509952308031207658550002936695419082799889363249751000770228283900292924150709968240528142548137287499150158679563075344183366332234364160611254177047330328135555804991424228171901294578208306477702379299539563105017455144514970542322334810066815324142808132498301573891863097045604516036087706449144230846303235907399323570476626468671004308434071860977893451815105568841979803432221752718138386083618418222481566391169518556225624505996825708095423245809964126696695362833791246459207138045176699330746058752207119014219897852885532666145523117450525735083526526387325895936738159023264887887137941727075713319599788397042226942062506813496159096525363602431811542998443541644642251363731056553517411466473255684192190050460688504432875522322703849475335648470522008763983836426130521736274778231400428713418927405794614417449239736073180576775725857019019853873990571708912168681847731303053223424439117045713465959945743155838000447833072513352390972665754383693119969549590172348778493519927884110696667621544936589367240271716527355075479053382144358879413408170250156842138260190374870548591443456711980449159121420147964016089845863183283382557947209273268481965633024237812124203593319237357636242104960748122307477634412297809706604467881269964118328270414274923468590437228761705093712190127166305596466339402009291092410584320014098054883689812113494605449118691371117076478752159096986293029967525908509830862084201037392161879602521657633838565683429068639056345563538407455889783581992146251266199581872190898072855049708777685247816091120757185976038155422643186758565842682899980179028999993352384865527895499137542473292578694647377856921526470956536554152174135420299102109331208290568591086195207920184924901843805815732241425737220605985671734212171916640908790686007092653662470922533272849524534441259152692939434555141598469205492386631633599602571036112948770953486773537320824632541582997654460438383536089031392012082479455214353522041660178187289498436304424970819630825379004285036999329795899560345540153914750870626468424144713496112467500740948088917491556660008358611202725485329342931312231343293484290356267337674155781745996380148748266122416133159261812056971986082617786809363915856471217603764789711776582997456734032396448165559212406902755504960024062126561572014119733598778870056517495615568282252642768701476860849787352282411509166944145089823664945186122442165043490843939570230222167135441008196345881350552289257927689298594761921753790284635598118560905445010130428943814030173058368572241183695241424839151693378147846502808514777111055693294256442508956452171538353055979112781896639297955526813920305320632498006995569217921765208863472605332267376729755532374034829412662709943709828283752731353612194453921783258544676113414055175427645821650682000883909506126336822273143508672230350644540692133825545373663728692315785542688795167452373280695281058944308311040623339101617099678625046305443464434390849626341406824726640588168414834059036187430241186204087619021838097048488337145443408915041969180595930311747923126155182409421035553320558988517429963094854289824623016797825390680674220677589463583058913033987666838117671209064305087736879883337264673236892247671040128048934905026215971268114447865698083680982938298634327140968492223306360710895603865233030590661694279814667866638659535488653485353891076340113000356300910899904186519141215611405598872092308291631080811104429215268442912397778337235015364611708830761948601229990462465564680433116029288096401595341613492614045535979249843465140054197197100998735867841296390602252125506354714859846417719447682936564558193165142591328827721564059501176155614394551484228631308800693858937664292727780517387233862379555186514331582745686882414994071636557965702199756173981550757424871946404995528947066524971274736596995256776551217125096806243287247108903237931694779654993692553789243837096039524853614938284298120791948030568949413760901994463793405829534910508555790392035803834515099827193890048029543267477537795992874971072777234297918354977394511067915802470254754558193934686542702085735036491553552674856183236372673762870009332909510136908509624126151896335951604083244659578986575649531414428485226870082314253526653389010445612566548694825561855864806563224973177248375471215146764436573159085410573967399807765546946164074709378086628282781941460703135795300602133302411123099458739696185021253278343120695607657811386151597864202604881845944128371684527742712564192928135154894604655726630173897423783418825930242447197629272949144730475828815642875315364036697066700082876603532327987955497737335284996281731821584781182386261584831488717947525043826825660029233526856067050810926438080385203859108441855883368081077420968655254331835239808525150648691503623129383407577830235019598069586667201944056100328857464265116988740818253855887835613905808839036833566401115950473962730849238694004533812186337572238431137981858773869234440988290720533395301601985701682200851320763675489141696011343363858741582500195242436816854824312387832786009232350900878533246761633078093132824370372210378715365307115107876161178175124346351810620791574149334808835820178780633661530084223005438855937547371724316628322293575167473478440799903512386259822344469790177498197482552649947971597281118944245525609470545734157806363226574552256448143873281054748164516036549380034641582182731810516407746397049351335470854404836368570904716131176261315159732251477009522182461114716359717739940251155228335370867685857079814001349520691094609412375587917306096997914907185226984422640848072573252250771605466831373431802999623278589122866793474099612834234618537560840243962833637163019850361185475054906198244042680943816564682343334791645078204809236104696662498155569110783112364024323771969155034048475791438368022615393067948408970517521709067360360533901312843408035292424197245027817527431879674010146535159884190813253994370115943428384531645800376256686427600629981546209207727086812631779500952775069552747488064592995720994998943671931170553415772107688365233822489794362565497063925593087797348284100845554972944747600787332156801645927137076199073103218199369559866885466974789297329978908132457790890471692274245507110679881112657652961238640588425756831835526325560859761181785185338930055725125303726855678127319283111376326026985993298604389823436386159405187860807467015839024032855440796241534873714596612483652259411051933426803747674800315538211480699917055917525685638912285399524655349813968635050577761005557254443630608511238367266061684058359468912217809008659988709691780025621883108320272402177100694763119615330592436573816408499587030763166917981518490500399960986750759223356029463934026909782881029436463265175423263055416872589527249670904910514704059241393840651146084912513401211864598669750038232361568280109490863378787913908620700869030439906559411937545659958752398442499573131972478453995539544381068709637248856563959429187268979465527292391588679718606052221814795465010128563650162551909624029265032964876110833118005426995473143485772586133833548602779993887750605051230967305357709006872901146537774774290107249123320325081987337933275263404237608660239954352985892060199623788139865906459077478026450866015452359433376267250264788745933901317635203420596455220552824713104553953597646480074729007859412473719155163959366785138248693791463501786988435966245908769550205065882012065575419778108901324317596043323995920291921818107562987225190434386753032713279518600403517547336943633756082918698755199573773490018793606351730931295234133871226133487877925007363474303670927837988279907362188516794464794443874423003866525854737862106098774521877304932416675255828234703431682403598967217086117669688909603831177545276245035036227416242732343506842515696187539880459396767571550786152479535634278344473819588933034315898852864441202970361014825414956719651919619358362442378411632725730646738724203449044687078239432535710708143989018561253307478084261214277588919731669261420428451581569292751808061837206908994403051658310752056720528004677708097512335050693810818117166882724963141808213148397416307165669706032160910660334918271888600598703213549409089787328551962786383249161964958191292448856483021933274605692470563703849935618299770936079250589908864832516015130026024943832380836964700073678614290785946136901503061966535709339042673891165026354429801304847201127226995935306726514703677001564684913002808994274707881977954189800716553251850315321676957918099737043759018018427550201284024964489263391712005606043046472068405788645308336916563600457997654168051782595131909054646454452501972368617120939653893526845954246905196837474198461340019760949581368033372017856237964672019664149815774137613839532418642484604038219364308785207553819758157563041374560466469727432978105479041438563532681478740068928402946797047042264351097967994061126745891681075338430982683163211989934398290788803822922040294435636402618710155103916700484929103859786700905387710663742877604977657625475082258674568766617718969935936273892993864026541933942704998098130937126472447619363508057265049444845780995195465077259869858906820065497911019514892449603008397365897591726640600141748646263942870852988097542307168443766735618734835245704725777016470230645963941242313148852067548236160833335026384051935494302427920596325963936175360698857367330561412255243117723704757011627198585554209952883408405982975203045396984122935369368686471492690065877521624394535817792138968258301972495422302834777928080259254487905122054831900233841260192779010122707201436979190003249034575253058605864533479312598329420379662563423755229595895137761215839046185090348035856987396874111575574146280651861703673087219075385008832020940236868638713811664445265730816502674932791496376992921688930124743194017048754976218344064503108201626037931922534388815695946806824599070673990196826576643269789954873534036073008593234997828607380642707490088603783505554359222288739431216124374623630735156726076292496137082304575816413783929497368861273718550148622482514447389036936089584208405162253011943094521778666637383815447127932139804940846333114410488493801344554008409704628570528649496200886942350167320615490452797218079003816907484904630666364142149053640947462057874576106230345040023727541295601741999215124932136936149524973521158337666550523667984932838978953373782714325450524581986623574758139821554393357303561280167916415608086959948284859708648553686447359021790717295417523426393565340391600982129739578140136764894651065076087525526104522918468622251052144688770669695996626534663844582030115172681696089682563138717270966011786035694363294325437705678607022702840896582324834452899954708822511112250546697256093376182290780497437656668224391274179171127880400169766782117193638114587325661300242064829778921168855043616018333884234438241572619184458739364378675129935097350113333699522293782194056900453252972111127208252457914594295188418346805813527108861595158192305943851726819314182918221435900192011493275724743799280441748352298287937951631821853221414001054929298017243092418066014843316286329545015899506576644666857009521685260597426079502200384530172174898445268891471528555128266980795431736722457574933952627298067068363373063916644492284666251336300775196416311594517806983083816477035878376104537184299511389750468731463368223862885122651933059843113346345672161111797587122952684336580565988344965865121641992963051265099167544724740558353628406128013903790367774807944679845791561274568649368037383642526611105306974472801378998212195945765957873474343989055852378042885284835813955745115104751156982376482987644428888423064945026513696166050749873956575289779945752059451710253189691167352616992340947624197144211408485143459121345098173262524971202915739914399435536474966017285356277379427589017188290957941802099960811778285849202533992363424836960359520289949277597615766777477071298477241849781920730300872681158226942716223639543458694975058038585687726542635723120487824947843972864431283507876665683365165890748243848811794024063017014601526363347482373736337476554790843293662413721107285721894502318517423001732318001317989968306149925308477053117214023125912596786292170529580324519486812077998672432289584919400401822039390340479067179143889486762379108778972462200458642958634224000251465545248882145368677792019939036852354516339956172614585889810503822925414179376490711464059123114717625712388076210129193756804765679724179961886939035466464489198795011135913182871800103744555550099791857286568641612490904625084600710185240319708723579273519019666771962244454432428326560760664112370125226784785570884538094002562737465290885611333682793590797213949751956985021702635420376093853591285627582356968503135890291524141885446473290135440025110653741903565291002927129728562764885082870962301114198015220336007394214924417214730323838461355936189501361854393367389750105583164903128377084469159428270171556713839210399294270492366444552661411696672133075425646367199982011790573165503748476528544563937316437514653833546892193455354190107613889768882553153596277532438310995549071464847088321288040176998149024010627808970384773205877646032567781903637243498195663309191261554587274357079486935511635724475218737059982441043513114816719344834852146342115063761582402731695104659261694246600808299809798256221719945094371988373477780223843440841444220220213907598398702951195594754827035594229694209863950233128736706093539789420731825271711334075110310063364691024004766997569772336762911494489684356094226466090604986865072688322190194182047160617755179145198762731683216766334502267456855132090162893077657888074832466303878980424257454337613515889754492706016930157549269259931271207899408137154691335337676608189402115676610135662810831742301456694131761989196061317611114939560505392247634296775106435884627589267403200750524329625222474508657812815516118801511352856985545652293609184529823540378279947416811965181663778200338226320600065425642420697161743433574487598290244702166089491193837725330238143876298992316806276290458389968529048911582808604292999993723207669179942382888162056533699093254187180777707909635601682749904421293730449097016598253555189457739710781380289178928003222466784483877872757610534148823992704719660246360920073552452206592684524557519790385247063391667272725294105345540242821705764176261294734649139121958394700900528086851793903351995379678298043039734465336155091367912196981282427935045175529020227333830892041625188392373570622376300390455530103529508528153155406320521559380944922910310418296922110581306758113534426689450926091482150804070534944922103137547732575161451083953017488514137868494731110504013203303174873596145462534260924435040411518737445163916683319761517035585061690610459572394356524658888245008782168082907397124241475117138046697393823927386767124385719953717788764284499410156160449610025804839184879462342783159493988678019537483720957503299565171878733023284224899568383190960443371073754868110925378172247005243515272967930813472102308213950353322671718875285458290299856729745205096867033598691149040489907232802324013514078829955212847472762925585773410766588707239771500581777192191448584711913043578628160104661310205040025817467266458850327107542875641028768606222553786166893740850701893372754114027126772366194562314429954185974640328719247219728669604140556346547964172228262252821445089091097240908989048937788028311055770472459814821756066364885375648574167669515690053036210607067099987773520477895049031227278456757947322984423891100021332026259401279545624316007689360850939580150619951962630432737211910023298250977833385748608349214421888955691175789505148999288629738871447149492008525370069847134691890336622028598500289316511660280228614792638030146351103042897153126158323547347875588232250838770355664221593331883387801460405588178852237014284014693960171247067801444576908103680545202751581095874221702389587805761825958223334747712909549876996808072880647686779114081339671400755232174149606069378938511656185513301430403055462472595094353124930716522612153142233117337628052394726269833286746172579849281745159759950395756417842576830315252565694673838351250741255491564147978473653964606103869745639258113931410674881179155376475612853871304981445677637438601389359717481819643005377436513482665943903693057930912365342017854475471847853900295604280825866077097881758454160168948864153282294962380908101207075629600274304622403590497790164496489254924162350708174495195940415623937379835028150650841239619736101445267792088583568729218147495330744672535099881300578895211834879855176140550333407386448270415971218525317630574955036264883692648937929163897942660949621632986431635090173137628592356523324768936541476004656995172386366222603400445707079376263587721849985215924792095515492548206549018193916341754342888656961665704851761094632630530517682950990895741645419565698606736040173071794772895766415586452734336066414260058500265939697998672265148103400101269833552414636236251182041067797388345918438636613915715531966293235697191623496517722670468780516285230676585612040745158123356585582149169378475476122319472291119563075503446023965535264189201219875927726106617998038479568511859495736145732558636162566277906495446465191515658611359425855341699959700771813114881571007802085382307067852061367011463935473323044925769315892821815551921392597098174382600851874207626810710373239560707304597152669546698951399269835380690800069943327285958747343496947451831758878117732401756840739967856925065418632875651543914764316649485089262511909397499756867636372782160728726359692432706837904015024382558544636167543790318145185167662864354024769243765369667616824866994234552224533083627190632973713808459282649460515310487690409013807464069171850209817874554793805849267597518403045172029690682968569462243931602904617341225324815610459768673061502001262394555783252032669782899806372898067620961746749679250041552338836494748878513119865094850566513367303283078180130841105150279823999475407503748517641619103417668702008003416221241767469279179495299867161005875222947072399490263696600936796837917488009044930654769349906518459462932145351119706927054552226627210964020114471122667107746192981518232053110606846198209356604483932526928043869647076255431634625464162652103307173837593955519732352333802406240167419753452544016394776095920726985323494719678896507283028225826446823936642315112694857652460238535019463135269582514578565119935883118518179901198740371188938777794841624336567706171361421816767187126215677511967216084065534289991973087310205810348761752098617823145167754668234108423007240365732105062064247109254600660590221763873432126932909887809788049842085081798372668710952325427065396765910612173976611266008920923691774221721768965703509393210466370234799985072983464788460055262413500464906476250462734434608848359699403004315281149007144565836417228144018794427585691944480811265777285633015618889275096950876792467159780980128319493447440363539527772586113607404743984641780373528314682882629797972166639581111353878981147735795405783080261212764906187713699191166096749696011751316965537758560755683134386717960940149622192838563759563931402863337426068516641485102009191272264795305276672004549826094444991466330735870980366980627521209433026920236319623846735975255226682138738692174693667723468609244671444832112837576445236929278512680073070023088944219044565860809308947404151066451853101769362567079082965441869914345327571796678174482490424354169844859336830506133773115383696280270861946702897412374740668193730443162023273493621893941915774974415071963497062726383241934757248030076231659694005250621045788959883944671709043251642923532037461668272803622639325637944290374166396906993995431642349969723345831440037158621554599029006288601996109428991291323558840810332835919782312804547279436550828184839206672420198442793889217086371248269792709340733216069127482203825380489481110879776403197645793642510204509135131951834425791860350147348847815305329549942498896751103104843119235043480038360601377323998170876224607484556245149218462166271384793338589583259735088129660424127287125925035230089947575097644504523986220767238471617961246757359116666966265143671031441005513566573070386223332656759258232606152062194933744464453420226095870265094930880447058205039707216425294465771564465080577626230463610018087727561775640844954704655707736409576034655739185440445602406400165625365983121872698176981116862678356805947402359390296357305654725471406922796107489315820274415102028041915568544850896746809910756734461579034133214035302069131220165122734051041436705786865543155050955943174485219879441909696373244274883725260955972362386950085274400098038767490245430871095485453454790624143298321705236311288545879456198888286417676869800246463525741542391759025578877165129997503885649227789460123163043704659839797411916628108239516263486682835761571065786135046151235108519968515193194453810530663156183271945339495010355801335811397612221223849153463743656983814384300776249977744801723567650436509631673935724188333374104413593031965334904946649190516844777672444247495013140929748354858751556212588593023635404497418473862625723502543632752725785314099501985511954701729601800054717424230845816468901110659947475986786861649006287178201303143425274141875205324866745557648507158568962979630207709539321223261248796096700701688015174627845876367829087012827836335321079019651057979954533582990350060805806763346629341876135736980272151869063587206397835348972315929245414128967687997776287901071121718049089742365993835273046551577078645627437141354029966266296406052630726880911465557190508883569368038785207475627969993335213168819149472313836499037748982168314611483492141101868075045968508336174598416778343447353673639951570746828978639899075854366451298022317699417340716979002934539730440524697941779302871647870843109475265353231519251767216546143462422969887267280145379247109641483284769664017016451213625218255840424684511553205868903653261699879581394741186556422868658001177504888557065354557184512286124326935840005355726237103997024338460174523108081938026831969424320278555374597205876529953077231213395681649199583169232641649948658827209543366178045783704682693825481960994971971990311521115380614489159397784343221858363219417884345072726893186253860546441072827035566249237094008458446033586446414989241339390201078728685746383246069563457534667377692230464228440749124165385685208786040784945964520475039097260901005639456626261731408804971056757864999461686756261615011931786620549117533086422735882192299783648034062914692446277675287961280707623401005683651697995641420234437333061025123005199040392035370335742253747693860152825563430239968458872345834885653724868880956183448741128943661254203198631082347391446461870206934935377941172737191852792164660270302538634098929988891131658057456483191839474265701135900274591727339306598278564369371244817067641047165730158880941928112974746104320961229438784686369935930341376412998641743024116928446577371550942392324861400472089979399061613142028179517065482554373564568010590967185529355470059170124765344664985015358997701522133577437578097152782945432921826246631871413511496869938437131978412178914676343700924252487931989081210530372252108224383839271504017096907758181463489343658302088547371703264593865430526045099211123454327050527778206538079823046824559508709295998639206002137965147482803852303588455574821792174457900028894932667017197886297064961049641536171396534744856882500090660856483235333573018314597116644759586444441523011738422291872192358528225310274188520080878166824343041772684116845296648336765360550896476343212930899653989338221715672656450048981964032148825127537868872878375181755770059823876083699388725435851367884502379517869710726238066960651024312187353836986200732953704146089490837076240969923728869168790659147512595336204005285288543706607123869975463386637167994880651979678339562398565663521022742114400762446929289688985530618001751299867123462753652967639266971518162804848899784621982801868068038695189398105053138189376626965461393656304394571211173660344782415172615189774802015056856193519246337169037016319939130076215949390361723564675506659427997313753429432238909073782421746429502028155116386260931418150162653250053134703981119633592426218724349265630693162604732707756363403827576175324788547970699934236722272499007537083505883119435689206932347211501766733879441250751147730632526155893182553284116940476409286798159283458164055577064317172315649605664333414843531972372475331229298264956937115608571142632854972127792183083995030518234793454005981806041288830433542234337985850051429570277322458164016318345595723599564602733256100767861013733510956310198372407513569915300564728577140815534116643241350267081819117418627158544181964824014664530124959624504272001091963417050915746279023424835326177303733009729827773700855580953296429837243426872429936862727379637230028023610967626251571757660066939809533197910408187251027485443204501934844214080685856669146496636137797928886978427868902599061552961735704021510569585279804056090120445394968416912568962898753047662953660557345530440333921746262239885404977686582947718885766837264883716251834308118365835720834526668695646764862172352618479800617102831727827908143484057076115386397284741108835830418988694137379129305582787212787718778610071376839030819332802540313921190181892531534694950837181414335843089847913468928989553809544712147002040475816361463129646549562944076952197985003302561601831806578451133212671861915276241005945659396411691661504318415906671077097507144598823137679627418502849425440284707388368313107485599141236931378257473468823011462633941815918513716251982517443398405831266677893939020257498162220676873206988941066027354736620376756576847349015985405572113142433953044045988053301188587236502856124230975893359824091600924719233478003555507755726758277078862777807488385362209889033083141672328286142830628237720296574093538765830878830728852966659375264600674430394154406080879331831809249457096870847952111845650966250213819722264779626519189130274750954369981573297573011217268537675000721822812291909378805663964932962919565936790001901693817790552076463990350274023014445058274574992839491620814711810009337193313368963185310494848278437552642915418343995113031326087323545683430660190848691658883322846389263732341336256983911777148388312675492079155460662606591780803687058080390657433306534767945901715215834810306679136538299069461211818160617647165187374704722889434179074956460398588540969995576238725467223036933870560805900187020586270642521152159896497529778777085879926621613864437263476543054690941280405073866896858325075970353401665369056122359742347262655717310275213614260397659449136574357927177932422143993621776951846559532146328596813263305014366494593865170227312061737788152211910323123304335066014312174843420381180399681806247061543698812441568534755345700289826496908024823962694293117488685193982446077924280887654389992813157889716876158051214912906442403503655368600824712350224863623037572838432711884811268436811188144609147366293113678935650436918508319861538120348613485207549558976588030486030504418117856133203044797889488021689332402431989560644667786751605899934782729865724941131799977039970261389772403140688286365991347372960301234975431008174222585476441866153995439169468289800975307094004400412058301113251196771850777227193609172173233238348605337659308634595770502235637465348660171597130922785111457226925834888870317141662182135663161751153260048224165265825429924137752388751852122021247975898160287295025699659783118780841494304476994713016991317854725162049280323321726396035140194715862925680700972634152800491353734080197246461339731712711262780895450607287146252528315118098916248496822065958273488927858476252121240858057020689931025901098315988341246601653268386157599425186872114253921385327229579834065078123360531139093805762963612926349751833420416970387098395480196850386290244437340767713407590041255533896772130480881089810535792163422956515157649457533557739089081153965361692003136202048772800895919467867123547351859357432355501261048466110890907721862087753289458466124565960053306197854026547331485267144986304213531534762193382284362724261215051563506692846274552369752495018911334594190446561233922569442992260309180214406352377905743851336203327967779521358741689037592287546357298448746686634899662879856721075322502322349461011656079744466613784747079219467116275491848292134524310778903447001344923703270403535557375255958160928930134895471913795733522450731676465894243466726198436902284324009305209318190772041178466906515755634245058811105933601006199921332750695490071010897518167441354674420370335857595910630021864687789653420550499834988561666475997554259105253644653523856229299828602688807092936264659647199018343412245455783468092394160872308114247374287363672937196289138673312793724469236532541126656232292797550419627853961258225882489186238090128378165777694698031202245231883428106106751439201759941418582728377327980906957039307605435341427449125423852824711584174270020352731588583381885744944008049266733681693760890503295678491748736517406517969686992021720580249296618282682573007929196368315243593589166802305269495984441640070815626099455015063653058140747547770727591763247203038465382184313975097490347057588791902992439179572828314976559843434646483210407630405888460327652474457886363770807461300152260391320998397208898773410314346953993973450835759921254280921051644589197528648299974735662331107651245152974889100722964308668603618638020656901608552576308979108493762397431225720550175617058503253292189238043101454563254616406375706671237740637561566944812008248785469306793528435696672347131729890427411090239730864017871614605148001969843040032370575628265588607602362169247212873585042979934447730894397078292280485429224270685427883430737719781052948965952053365660692657466662877143475995065037773959334159873017676321216668143014239268011052803108482418177329271774222855846086848488450028881309755438799317809061778248986243121044199023077269157989189342971296930806761762813567006028457902585318747071770054518023135933601571223909794445158380707186766428086111957035409587731081879130939674084286541643412352640517620471040837302088817645032859902469788173381773930952775343422903309527233364710271937487786442601581882163633405739697556424989831037337215600943078659232642453681660008356010065486470202001522637281456302006377054723536791680826329941794276862217325836957288580688726990059982601968490876981177069656661262303031435472417520105529445610596116599489453346631552361078268629212010418464466451038739004080609037078564772884076148939032890954591411448082005833673024883490802320178450798711241709904597661287586458851161141581079034671765736751778778208083771929184081248674866295214546326917285788189454427153039556857701650462234207919576445918120610217575224609281503694558508105587667891197221377485673819004068788542459394923012673087432109572325771180434242786408073358370645519787674331167113948390591155185416967964306111543808622975852535739087547499913151349467859790991095237407923308869372900882676905700532361041514872477479571291670242847810423822306830612542037969458940728468743325238016181029236793914527839509897474720061393992887942578593953573263227700936370868252866411301435901297357945816276201274990266278751810415775677520388438479897365523655454024587488001309340378684352945436293535795730186919721825869195208222500709770333896087670368953910469728055125734196476530999958006763794208051494247819349305626025727393769001566055016493422120126310436429407387167033787503496427493478231196555148091365514380609996850047393053764187157134714538458352459714629678165107616844198913412958701077567256020567320343152525397519143321706213499324546610973981317151874815693007034657246392793114555609075682074339133923650977400828352465524604454746514875862838783607822912921514462570647882446032170416769163165314432435572624823031433321593216462606932992297519341085771089975353463490237353273541195501957945740094926236493838118210097352719426053046273814488088345856753494360326983828881484759664775240853315628830282879288986145908523978643444391949128375589397308908944943599478604969928184676917258056440140472010736134023914978374688591994601645154702444326234121845180537525363208809358737503217796896277448381853805003726658036472330825051633491875347983053365077197135435263494995132196819517508365286764993810728563516779849394433039364660148652845289395981100655087990717268388895498961898422595707255647728114165522127392413081540312526166472224346063164315201852741177730323858703237038541413598340371760304891394695362157127486965411875954973692814413481719084935412374685819769958117296991474620813904084161841091816443143006411955310372664650853595507243208751719491322326215746399155927239307174229389376673935505653606877376768501271487125613858971178485103428813004053789907045700269784125365526628294483260864061440555702613955084178815927339988692026456959541753269351367613233565631741026797263918992315537407542600197922643177203895338303840854515618134760621463086602952622686074122011196366582881919207731171132264463405843704794312426799489805501550817010080424374615444734698955334156434213829138247743710625910230168499291344644700975502698715522879461126505310624653322791056064956816939417910229786826913264160216062999841040453583217887424949922235901504102612456029350160239580280248947469109008759772408979811680605775021307748963533897190971466289200071034932669843201121463748219252098011842590210145437056249466786334725054822713821284181228876835171021039150284496157260873239757484929484978045797692518375873230641379002476960849067413807294698578683862019944308503678228996448657914470769580533768025321077223994119234189253449077669578896927659051543015438361701310260051246994795066161836805703904199782585702871805702642799606764247506826267566839992580185699140436703049570469017310733235152978065852006107964487025525924911805539355521776541420735520230474439120298984522680722863351950370394324049884779393965366647553059709622012957068261873193380315913887528615929078121492721540613584740047618705961289186404980470456707521930401017388778293812204794657892286249457299194944695654392564301143200994568609579887159144514671574681039482724513149187010013622284328885839595269085686606984974245819206686352784904985055218266331600621829409653806479675277770442183698941532466894114327267197801134308410972901111802592608677349685718705555781552916223053786051335732929028299906607382347219309626834281062301584596565606054172922567951419651423134622372845206661733826690529570627446347688487810071818523525716500638880996547004274465430714165625681325813515922593659848583015209457352196082780595111283295158819557175465699366341794192299954763749867343712980751455845896377125690727630353460494379621717278285289854893563670500097282081552538802167803371650171434413757128493905326970520118552794385923011482979080418090258778714442874485887061848326283948417327055227278258317230784652719693621081407096880541909231800956446759222526677616051654538860845616108502920350040962686456580050872182123579425317433505437028742875763725429728642102582575262941406489213888598052481230115732393377415920840435703917042789247733248896647605847831608573043348595909373264477796992841293578228963077577230170281076470338977039897925283831910214203056286427276052130774701111332311710021179596468711895670891326853601516482630621066379845292900221546093635465173416032509090532496481182971744147979839351252595508916300316703203083214595906281370861113968395016870465724617895159327858290697667687121992613584365941865597641426303683276520431819176173362005409131102161823728151341986046585594185945766073228763847536300446797957068199701911718645765476992099043078800511743138502122074626268597872991522649009801785277713763477256777629414768872112383852841481907120664711666185570834662322799036767221861086590267998099603231017425816698192209459042459876582120769517097716859703012645490995449963397779611527613741254957048443275416751396466193761547577771714518107921437003039176020939235380597203436422817569050407742334246381363573832151955302693662879430387315280368253858361080956436895683996170359906621914780752108501238703195742274766917888144517217093466080012264562968559043758820597451956632235121250920763801923154525450292437338304930818359525854495396753828609929309511023413589715572417876542801211648200996358251012560570656797292708634227566769167959519512494893478423860601390601616232553245797706107971238492175509521006367782988653293235650582589965897467113056265689906539094682839066839486601939122439753569904788316037545007663955061995406691176958877512470339712152776012870244012464960683982251676684126860797001088861459250441401395360657289813847009619417976153762363826422912921838861617009078206599897121125698281445233431609293875575941875650022258039624875305522882714619393968087020809252815890345520247561081302142087026381345549995630809265695471797222727520220555375920528679802057582010358419052794998104999580183434590079197407273037903177633245901492161510314282644954147530431179347042904148339844824132884431662222505445184145758907600558122222761158563004910400303071385350848483168634482956252838355799245745538415832612603305486132168091782157123577389814958658676255043531830256631840392002486246411930612372032855454043188739630347731363376195222616679678421998755349663764484531373118241354129426553775670239567604485819453046267258111935599591692334195924767016317807674740257361346941921818441528944573375993541363192594893873969587178480509259752842072501026287664754916349370912584019576780350499374439349797801262277261534494903437077177061538013996817975655405235291976804108845516360601355565448726235386960603810556093784356303304461771553123835306989281503749920800333245932986664241098107770253318835261358289879826570334746631919879740477489145191091768169692683133104459954655545746091200915453186068974325789294851568205353675490577160532204359258329928768244713311643183927640009776912963221470591599861512453048094354885644642388173869268932620136807131697945495528603936704700149459182282406009316459070702372732845694617676437037545775768290261323639373977219227884335960442363303251389583455326942483547766004725620745996241603788334555679773177156599806010468106542011110379181417464670423051043973643182235316865151855101843563161622178845043231288528845981546643441125333370306120474160426432929225373670364847325426513187390879898299297944874074026325800459920275420229436946428230081317704101760681215895847478909003552597957508797312289610747873322206136469520303990029065323462205813082769814955715912681026049179695183871043123567898961619777472403452276862593218467562637357659113649422416782442558968700838423614974535118507253709438818911485023716692930246521892637360855648278444935149101509560655825193613439588051791873149024172738236985417012320872189361620497520771047776786278374539365250025448814543441075333214610553435246668285308194329658448749799281744369597915113240043628983938617455784114739642172174682097672766609009649198771432089863124182424544977557565976115737368363408867552408937189685557155928397397269078560661220399630215709569244439574125491817016021160280575517618229390628505598645593634719908577585860614164590118440067945828179154263878860721865167300110297591090808434810908845982524493269258056572344542758886662618103167470861244004232472362511228543689574681247622127220248751495540982899142207779707635142705127884374556336837529813927778047937709724590557483821025644239401126435775082855224322898185841281864140969394692352755768994883616896760243173184181996566866134065440414844137506064523986693715147098755476339054934711298151410682409145934867402268806624408340288244552629204151810450229230902772702015374802369308560204113784776500537942641055002221314633425098883623141701234096571688542165981782901010735529834858875809594394025230946287183636217405644089206663527728837172072104864458536770404276773850309865341910291056000645154889412939512120540888280921878779850582852239388310155819865559924343962814565820668207714271092173740520129468065828240583281058888293789279401375973330738645541928794035184427810519912604244971186031132064562070349897962632733667415190371205016679709199707162818318402795819117686448372489186087471898460801282297217701096495841707800277250796665405242732295316579277926823054624197024468061188797175796709449713489718656627641471280987547208763083105768995300865275078921105798377053837900820769680982193692693363164790365301270355345996932092876224687196540104931743068987222043576247006746581556606002255039390970372762895848207673826229760693778372905068086189817895574443036829922733369950285250819990177391776790716433282589503089831976241617785146898128174983914438486950166081375685146109879839207977066944573954258961880870634055773441070784295421084724203260076843454231854075354432374239383105357240462466296105934592921318791657823803231460289368879003712850504277376548959940440633147472032622802859072586414963061765788061281868198450733903006746125666524707510962126295616187282858329179708025040384072724632813127108101504565612761483732602892995059253764715971820333918301014102065868306551540675282947836860090776547647919722774080872150481870899302369969958554603993465955611258056420764853121434234996512902406000693670912453257807180100170339224489945260475726796060363239130002190671976760511175947800086822442897990997566175325954563298193900529297198715729880614018904910418611700111489403803027782877519271061657424837603811915286290903053057598508575507180337217280304932266996429493686629160141405190056933079996003750159657521443278953339929187483162030615265857178895876428901014955265466138534285029313644095946688926528436646750494769367309625027320628296004108980703362997354187741303730696134770158436142288803502623142657593751291122534142254628876223161740885434261502646164524221185553120941572201247392847014866689912380288767343577368942355317872864736451293568683407813519483805007966614423019904711384954503466461040816433740901662351077656081322033341551498516269110569175553036498671782378388911741645395121418170999480198746210347932003259411623424528652368662896510569796177986726046102971047916837988899488016727985220046416561094701496030973941747150448394763883037428116124999008388162453436776667547385231718897963810126165806781147718250374909534420465553584839332879090058166389657367662310611323004853867686268190117349103089291686637696203160212652591609406452245801952394009199334336480992459139451976537106879288870175926162417705783268371731803766586667592557825608850557395111081811417504326855278712117291047008305805747201806751632125936043049774599219944801028469269299015773120901584600954122707088519211346715744702522326248359993948444964329336110748874544276990184748374774810352317736237854498897447319301361287649375295161032940202546155747175564425554218788577362083712647117973687614228877710857426731164525744704813712277370067363662709604155437265454748303576740320216454845689318200951137874607528363825773205756788904298465813684380828611868698116808917977150721860232791677778238926232600106579395554379598225161604067298785766925742953744558306473208747001000505616085754542708921748246781770107429754061928793175769455735593916757078736652835597073891283449820528849408356044533155757037907533761166896223737904672662187035057818010941779655856731474418209370941824298458795211693652476200101593305561428554265121343896801108213789080151307057730291646787306904454100930708034795094986476111189316361441698499649750110950630085745964123740016901091042100591050850842053500031653078617061562847572330930508172390292905695583994458071421736766395236107668714978488876595924133320357670567835279139195158578531795706839595813184358315301507115819510004019117698154880691387755513870946038980385569039640846935636176189329390311030406464940566342761277782764301507121645936095146924018932029512519583291623838441921041299843335945552331208161663199738342603140128569522214136448081855679208579089974001940112248415200991675675177810724597868015247921122016346060867734787907042027243081113247283648534597054061862683105127534322384785089941685294007408280977817091773740692374138637031665669241966760750029344276064052859043097922422532075440335976264986541599377986258918400189429499202627326452709007925415700457352080252489982694139078295368000750296243155520757050752557107338828314624298538813263343877989475177772751502849434536617239457404847749822916192738044836195942781546974641106595376851694943719255563289160875079483130787555384882104125203760609789177953987647043185751103005625467427043304580515997456524985139734146647283223035827001712662418022565051132626586875579321696844599954501936512440030200568396011924747304548438630487258384174571759781801947817950883135695446275447668834315277082081613720452886723847629969979476215771819155143653020777120978244498722519539447488575328897503915263142125377865347933504978877833985727139743634677933852092420412614582976121680645181152754277783426913674583831303076450040205637668582550360869567084900518971402374814482730983035445212802006205399897294783461944048274889976540819347882637193081421454260433894428324081446463634543400911050406682477213152512148517488375878609035499656757943599265460152198069074842060199043092365559057245043835243132656583353616043479741873838641632374297110799537908090737507462332732815608147963608661279556725071017699668912050229585790383376093805547245364979984443186719746572274066220889502310063362053705587667162072277282536226317517147807313621553712454902518795928972495452343365818892584059913611429101739447202696845285288410112842754729567464631598674711615848105440137052833891672750032430553008146396617681239087295780377427372076215116177919387779253297104686811863881758769546798386878491615506835594083862415408965532641815742791315210291701700303472367804056474560390594346874391579005924752960953615976213331031155659006035794371128678515158682099699362682182491116353867484344750935647903388595823908087644080543152317888698563250238132461877688728594361074635798866294636497410539268262312768697340377875783677270925355738821110242052172789195864343548585481087881376351419262011307692603148596042982230079854305646308816597984237388581006430800920302172725152443690537163529943811803377630341999180800897071857615069152990935271375293929896119528563498615663207258292875522443079146194376541736976923876982663134492633971342940774576678267454444657194055648941189445799002446604428704407327545878465946887799693090046989192718995104341656776941129247723117020685923584478032282095529454950973627599236494553080934419688778398704011467092050178618362437144424118577072367148992214640979498182262464915496871196360915787454386736307724497908944880550904962591618812511780322186491893409761130873299029181187037648686276159501075928848369685337204219331638446692783487181449688458860357708884392060511987619291201748199671277261759917226375231731126059473750774256685751703261435724272200044875856706165314120678289482550459383531554641215311400810611133549060709786929992040307992534651486783237811371749861336233915588828182851727894650605611664273390287479225655190639098232390167913507293132694405531196873277308730464615119553651993750346329534790737911819300664073157654744531398414692310473701657064113262224110147523617135620106543531898994897978344342868453612698933551550611265663486672998512555940273051323895265229266324949411083084860656936754783924363218334675271167907380299566561558439916795382807916639282043939701118825570683200222983866979125447052063290334590719089311873215687394803381686358871981757728441312521961834624470610486101167286320299745854273811431103965502891696159272332469569561581954337159637237493336790459013730967810838714269298138694055176286266582719603449935931133045202948859018334306762808901905025031375772349538475643110625337832246858091685182144911196293035717899980710248900842189212878941132174552060472885065687220364968107776145601023848172893884002405983940028605349638307881735080345362607538632190239623565608096468420403178724196243187241527840621014370030852037274165197817430643496718765557767973692745616420295732863697199127449626363374380685133897374476994086009313280159100560247152131461234732674651541694618241239762431373900755644575592222852648019381418366129335174447261863278336424142849718114689003620553634790730003819001144246790866450670771529559310452240802644425891214144473797243158205706749731596344745080599060647385564860550129935784043242617250874384744194024414915525883691210143388641391298347701969761081886636624689020257844636971734160531932474638189758382442475624364691342726686308639165906374397356578675733250964604978737985516296851493939568135741829781869893461164290925152322624141930585501570972471092163469829501460637639327452126939588259809450931332538838591782380144860353526318604348145147445142766992497531892391525462063952097568922388236579513262771563926880781271769617614462560204358917765137296202876181627969233836025954455465602882775356761166359093038478307737461280185686494406829876375533754023042623707039238202911873847020966326024768379826300763636859877326150622862386666400532974301089377718453131617177037209715923569524955393936634474595485861671249526682637369649620363078401879290028328330739941017874173385851646841440338166504575440670228641411383940261785792202015217961600252361151651255188605403426790945175679003064137401540801603936540691800461945063205845581263847091502726554174735285391097931169138447116757853025742054181060573365595681635412510261849881727871955652844485962871848228852091650085375377923575202791379112688603868641212337587375725669911715586110892259107952872139013120405036028168869445524902874389843201385052208220194208946913757870989905415596245723796639910136151521843784137856570875574434964729076776416309995080602203950671828781588546831691278566833253568331494564555394669530752390374192253970300888702360903904275218567166076127700527853053960502428206020692827708683195490366932804021177006306996211285043938578905568330190784202855400811053299288788648886639487001521280098811245272715199904610096957850296141372292666987142848074529145980522778348039509800755002424114234468540235131987786926436855934367728273913665680183360874970438710673382865771132319261034957104128270643774848783046522502679388459448282551506944528255692295742883614445233633478556366852571759988142868205709524578243821207571350966058223938810374857394633477566408037166448250561912262163845283428221996215344154070573928614685140871919062809521019202856220344873121562205473143173596063073678282218468486321347886594274265687329543233872954408490823231703463796139109181609904858995524564542885045647339772769623374886505854157029545067733652118112635287257913299193554673111798800887824157139186025059636482120902757797351749864421331721175832414208564892064601629138461108173401597604632939645755563562801729402947482226177075083328335225524299238053933453042498265030930702585360556928410468357386091838422011759543179056006925166667019857506419509892867440071910112944694477409189785235769815371883926486045314510650653449135742102130153179219803527255161589001364514410259786507502974762743626901193809910826046898166607596204643572639447731400663224435871356696129100633686871372166934387848310533998331253138311678239800082370609097869441866065286861568567193420084199900010822967900087227521830062807000539302954173732109404283381503726534446966429483703113643928683913577586877749750458736265896997113431121345815641573862126930817982184276389522540220321261156231644152574488123516972228749667021210356544518539637396780979990876583793884995391688005332933785267610926249716136535923551990166347056587871294358950641933296759965197400384274273123238040025326608106444555551770211339631111358471583747844859508324400451223769979649833662589003075443552894063043749040203691162364723225362759614624319167269214140763440601143502608418603646370387319720799454738857226648242353543694359652992520304691828197969348871541491605277068305618233856177565516140684494686014704343119887691581422072798200468069475301067566677414118517388220393179709145278557908195453595687668347390778863507008941043131028157783808857567650054574025988260376241777766413559461896483659086085984688040743949777166830791667596645203580980401618219131933761628400641112842837069675808003418945180433566663170451319720505246826279868260198871116647111555681423390784741069138052000470510684885392844786926331801975416563136114932950638621701677202424569270994948302313491435498650049706994705514068713700926541082527763781866360726265659451830483860968527178760003363294386898337105363491256098077723223894285730801586837142286791929332531327119020235974371405040904774359335626261775742227645593255815876434295409254548964242129026382570543163698844401748173208410751704444375056617067452107535523820269753741376752661012282854220570482164811244565702780522107556756416350834198843748512554493176181366531596571002263651784553997150614565835537401313492652615882140151691759758914578244940621572058007205773766897246239504035384547541094327200603670040969768238019554635557107179003782991649513549472137464705477214969754618457333552558399833084763662577170693218453189804765547059293036426790692505489937998935670693556704649076905007846573768302125881835434527142284331191349702447085074782018781168758201414899748740985175065512702808042763602984086177403038792715836103612341878316138749003649330155629308989228748179143177488373036045575957878899189823923086140428957541239617298433541613376593246955298307543902331097554048716489667665261791344411651052066948614138126054048997625236224389547833718919517357157847113130319401015499932129583062504207818529721157233538258830154804525831833604389221449396021342904555404359202048337034878711828985215751642341072356922138240191727811550480995955029046621997002856111615057959358966248965691785543833997085419817900580889888348668577074139227176307556285097902409872582519376909375228964846909002234500293716768148110067151534050815705390862502162371837249103231260750452212682811765761621298818081599676704831772303637759421772548070492984276658261171266619292457470505142890510140399488967070227106142486745554358854641936829913212614462873615018439729288099140261382242307541602137707793193018163129874805754856223816336757738649884229704773928914512741601894657032837848064134060719756589657950906032530120721114037627580512612271344214888604224242694259042195828326796936033075353196637239601878239019494623597402134435402167414746218594178427089689296760600156453210850467139125556795971740266919770292029949692200426979037928517555785854320400805981306367364963282170944663365626139641031704261536311483690124042440419116805158209928839825343876520012013795490445919786301515157813302964598302411475590455964043194398207917960592269857178733074379252111055254486677255531203430745167846632030205804232984108848930195579712019651469673059381106008926816087327750821465793034664142603016934651742670111848831297376142409028264992239110571542288750133468666982152813886955129349086357075483402770414523103936763344697082414364679868866188040685746038373770409752365333242881554065737774892386362661941358178028958651719851865364926501489598650142366401475455016522154389496128581098987010216934012042438548587464170131212142656473387345273315801105807526034520872183640609994448104607283105864886945738467301013406621164421058669890167147608152107568314074283639326817596996716248797812436246568270864372855509008425833820776115961988917452325696386758885774132823017224540818453253924280157025271859389739880247203759886270553137293231318186340949517007553895735970950010992241900591761022838023381887494758463412438324109460016412751688315204358809514234582371713744596573509867418573261241607474673374537816134349037019534362051925340456863138648235766616476674967903569849509420886637945374246041686579245043352197332063692180915044632183198749626362562896795335578378054084524680227432313675582247391994587793623283801459534285025754213309648820012067157814228782811534744360667994112875027686504588021457858623088482854721727511322023598620482334968593709804469433462698939644970289436823895806873332995051326426295591914245237638629753575527712550600676714357697051663060026838605016703584761168630226543939951434068919509812896373597797303411625327267072224578104376226361264604922168106789782856521246062508979571422778123427801644000681779770773233416444052496368531784190361298130435199275705566385357695060071823527446658164014988357609563148411457338234523831329291494377138970912645357793540406844913914679472631615331540682171134432444156361661694264146862747124777974107252516357161280816566406419777774605938313004464056703705221100320599417780587060085914982471995451283946992963315142111386082602322205401642094437026669567713674244157728229063885263599914289219432303678795332803610950697325290996255712202670291343449192052252379068910300611565406804426963688871156054510967315181171403274304852537262327783136825783394358295733514058550399150624462345518061211699157741367051442206359985637157995192832158653205307017725911812857743306942935268126931713920212297305509579581999064038888237352245241641221305180580908717875602216438567927709683829623688362510851945653800901617425804055208426156179671187476888512314057165261719101607329539601798362701427634048725450691385528522267001467969005985449088183959997780126566470989199191047033887240682964857622683223122288964303549784468422551500829438738035036845670047102415669526280156794909182830550607975145451748441206412288386083769958572751947470876355564564802085117912165768810768970235237117375792835876478680222552669288857011082836172074372917024351409037256407754254531887554836927145448849168221228422153904402348722169925797588679049093318437383574625126823438478919669877841585633105176684829108521770488382346734567636773897865190205728488215513189809187994296027294798010987732249861383896671501062731178777091311855531553958706482689297405517084187629281574146284375642342343013055353521849563561240277502767443477422298890717956568215625744371962369765318528308775739988549894145793497083626253742721024780279676682460715724471274982307452419224507290265574483422285382617403212319402146884492474814096499513530106926620606330055538222479025980709335027345362452173003778245441554462549921068062837794365736327101240165477266329335171510211226289043371840773911835252049651637501296235588787874540254800995376754594049950203397490841650348073693967245696750347177363155096699993257633789329861523644612414547047487466464421639969269234204502855812688585814140704979982468270439122231379301552329065075307402001830367253914491809522051780060985435598230741368724244304696386473059543724129280096283444308660011827073131471578611784361716971093167350607855937798589524916298210504165792120210328377494641877483440761508796220908138265025434619624421781607630503705560220023821468914650519292129336125415707591765322144950008974876255292249970306335043303993899274696878928554333406533089621703215637273199324004152430965805440094490675731469940963395623297583024079206240713904040680717051091591786202697440554860508367157666513636213191973294285500429389917834322684358790713459265834052155739922519531837915097186075440796038924030261527217301732870870670022346400693409323936744788960033645474384749038520907932564596850530432864157679516449120583463574702164770966639098928085846704799320790655158533128601564141180710661631052252831451403079017601075275973055079311861476798522780776995958842467213525817245405573672857554127794449943892604298020071641459443319438893200456956693907888262720740790018326421220366975838195376304252685795576197449526573305963900227238119523680762024333522224177128441980842551050740818380620402726456764678354061530012624115805833611159984230042337769256458916045841597192460827321423441890341548583235928260411771306936201430525597387112097226755637432297796110902361850840446386323197200595674211025322537839606845477257433275761623147512109291100737355152270777839358455791654689103123024630616207362190676251374575898778512049555893633154418196673227331931540462190517305588025352523724940339403695565522986972570051139601435228120057100184311014873055734533269975742139951034987297766019707736336595697745233674189182641115947149054441377679729848987764385681375734281881235005808195822192179110969113841749964612612471374791082741961475972414004145912078434761899080123819036314638295907294680096666588882399702327147852587452321072719365518545425110738351460589177817272837501674066071231100338473692183439315873700962352255859343955975864532203044424029162534664534856696711459050923046164361486754200525438095726372387781818484488899928645059107867559335696504274657493137398417202918021946599515252412303951046425497683261776153864101426471292340339912093644532212878319258528226286518066330635738083783092016719235399707800555783667638345957317907426565672178745543233852684954067784051080722636184309187212345295388813378210311730111976418014259853279863869657129436765359483677161429404862357490731635841970467925796372820535561086553473304780028323705747431926432901404769696689847915048600984166034885996495575742622389562424253442651107459327482083305435520242411478085104458393976900439664308110994062141853284426615903396374308213527718693061896382416160023853117459526329358501211609951989697451340661473245532758316008573762090105912919025309855836121808682379351072728734962946617418441225873446069971460044997553794432754266700491053415417286815192546688363688209323929704218196295858651841961791135090929208764934284354563151622339703209273507683780251734454045456649604963615586654035964472908810212484055445378775385291052428955576449252452421401351986227467995819491323737708839369440991842417406947831937231211788224613665673973923459345481298618239768733538644617464968300938179317104413406129751890669475930906004773838499185491782047547311780394185007625883504235618544316866319772348822726307862348123164352401829690602271483520365944534600227462479159390038463593027603398780585464673084164295836380577669320056354356917381252475991431251850763688496191144461298726137061900170823834169904033854395741889421320773485019801104532943851655372771729175592878909908543259381720748168739691739080987500751952340310626899202472033439227944914051705493961362031984174427479247980308932176961394696462263028440635897752344347906309867362405433634649310099318204798770101295181620642516456543761511036358151184030369894908035738730847809231422498292331878027957721419767422448892561454482748578601523828606273328050317863552512190462347025120713297673477259152266130174012300867685414036115378178824092792515597988697433091218901437365987410420879468099334601049499564071512181622483122086652018447096450812031317705768603900998900631679242626698045979099558408289452836056035981924210340050303728725836419976763964790024548043421383998009105123893689856030596241940002407350252075411990437761377124021558738623380159564279002909630388970506290334314899548140321070281684764940198339313268572648917022440631489949900050642675101901871244766123044077095712066411071468622371213068368694999612839629656803487351915973591879430620678935872488618204689607065094843575844657667594748653962082683667411817133414113426530189887853394684084423209182139414508790466751575392327363794969595393627590459743878924976189517162591487611228226016683460404499916047259515016771096454089242049864044252029109776098669595232700169614894661428742520882824215221968073628472952476184801977143569219940285163339280459805806427442921105107621976437789641222838629216016005726663695992298691949270617953210052116605301185000051568793921679622495358773146362855607712198431130036273708755998102698196260572498766733077464176816952461229553786679968817850929320295895136034023400849740385986056137709617433680845992702550902687520148906100068684995657953639779334211218119208985332812635235956450330314133698922275925428564858327532736533268784914242148246634760558965446204405550015641596718018150197461551801469010009183475650914309954277082227131492497045753201086780682991310297624177491554663189147683224072711406000632536313795426280925647347658972886077098669325656207466447842818529166188584318463411771588749817643261908205733864190115154503366124705899174002455611160236227555581461184467785380207094226673799911938485297244739716689834165614199972508063277010622997154097056230558042179951684722265615134320342903106758508171066141079136540317252423365407909317122784594968632558418516097591812333360230397143551419911764900594889538976060148177273409354778569100121644968584748886449247388618541805223347632501558327803748482612188507051175516647188155039588772223404351334067745243547436813519779139591338480490132539551369480022254630309692113643960160974452857539519303989432441163882716164711618373479215890492227453698938864672515180017288811062788922432342676581908342392015336828842604313439464169534943001383253251336676514957692020290196632913490838073875229317737680295114630147838826847671781114789274903497081423414974432125967515119577527016771996809054213296373552125057203079008954068921418957139680391429726585026888306590168869381042727442679703729266437077319923339100930660789705871872870803837540538255874243960399467217116504471210413385204618565255726613488396691165393793650502368926674782159576883576953431049670795802291951309034386443797457603975814001472674611628564080992793049781660044075604722406145192404851010750032973577069996182722436929932675011943837605055547989958372475502304590547666530186291660687673931598003672268755525988549555888451348468096991677953596652219902060293714457135523870955143844521687920451275020678082622123202957542357831653640504410297067105287961517419586812248425395296967827027634126119249867415385410160702027429414700003106254199917846260141661794759832203712918596710464826813795936346704645038965788331468630479447072569153173961857880002101062033509034300553278995935157736630561123342759906580846517849669734288653858696377496112263684455165100786784875331139577254656015359709336916904843341254592560104561852226965532190425695337962274791634106811229425539591216347038974224422765958684879229256988682509485333329223006576338151240275635727222504907266960497600936276705632188005240309493845847752479257601468750356291872476765704827444564692281937853143515027912347865986909098096396627332853769533718358339085805855471383737405550391346466367509485130996335742274235350395990347699848027141544450354709430366657997024351902976567799396994383203191123167397484109220511347816349235385105543269115155548908944219215493723561486108463199354640886228370524425888802123735864032219956156626094328062811853833089621702592628925677112607097390993710940400127839013847379327481978800270007711355768824617851601030903372406049802713717104197613712427500793933176971784772112648498670576769714581991296548059016783986661158898107093898005513346592901933776873600804097692472955850745665147726000198611249656321025155796510634840440137780554765751167130275418510517414867504698846570208198237191651891411133945449246362390664302147824740511385678484983710666353767436136646711196888931331173696118639265951400176281938681102945462909119698143056945786842882216760703644500793831419456291651522823233017053164180577042827406916745024648844939853756422730020042975434977541644188753409321517440775508381105519574193766740609643861050893549786640378551351329725037863004189227727363915241218674493085946052123216254976447529963910620425517611448879908403551093337835506926120858693024566203470193969444455234483676347468678735401661312888441389195341403061723485572375719225700570867625420314580971078197209413068632934526311186300484123485987055345083677783898945529314067547383128573296523748406960579409422323805362918509895074371884455338015930358034073677322255965725648813067426752994093045506261853477223764484052004488407125771922201405275785839932904705943791980683326929283374973264269015612300214907533142818160492334644139479149858095154935592837900304990917052101645402559769780986269577551192194234914687839850976648832169038531133016935782130865350062224857573325835778591796874568791640798091505529975286785435509812313891734183862396700828719135703463059366936941136318046239993560580760455173788017279395470447099415250401662687822072711828073132635989543833876047226687401893270215482844576043296871287135882086500914494736590662153394196312982331618647142013940343583099247738907033223859007884262617663545224741785837111515717887980726829420576432465750616599072955288081233683019627581788788431890112864845575105436565448503094943226729253406499445785089888060171772133709901151555408923721803429279363486409897197805248916081824450424067310306798816861596417784237660571613572364087668213069210269518148089654243396671976875099913311116303307819961922882880185159372144452979714723330948052353401180741185295213419577234469784513933649249256069605048736610484945578825176925421186052838638527031351832175074404472940601407973738234043839765035243287047018049076484796308760147537568061947743998565316419419195592428029373645409622070986783212235930436312847756056438970171845125262964954155592143014133074547077391199350643611694069983362739500482247723440362225715754128894971647028788542454044434957252341303296116697628995477396814990755021760205342267839551059023419684103748550700643210255757945855120678029812227678823511788822667903991686872819670652306215353542297619511696810620530806144054937304519586269296078290734877956528365829968838133781879034538010893933740646965529510301918154082877096232128798431991788778158732980815249376700246042522961260801927096437150268494209681538592786989142106933366481801381841919107586136395948122078192538294439539898753555411802751403971210510225546984675719492474192599569355983728421423296818669503989703326776104910040481029926246212492062141452708469347372462379610422963343930852145100893879626770953484602547016812734567203502919280540403825258876065490590765896757721795651560329583169536473908134062785012838074246001115794420675067791107338433731123405314906863217162368737442888811789660911945852522778381799139424143245008335651191469545112511873770392018049456448406159263016627038047599126856642041946833171621038966032517234209427241673686401218689372711690574291226526699202634822663222418518463678065663387321026840269136394520610298588265427686440737206326474723982501718947509376181037761646298433676723079678590329773668483129652451035905584934837393387412636073427421701958658481808668886026233598357439329262004268381946504399454007635015708267742619825037144140599632370495409073384422133864108685206098161173614452108035088258357796384024143894545132351140501042573452358731277946129587907646424419463774592203335394420526834509998434995224274348690616391103136122591454864853939326251988789442129617425550207040689944974887641091782896308512542221099544681501898607882799813081494430947458142372861097375567631911723936567542622421900870541390928938918669620661339067805775339088822697560025806821203529365178969888728770895808231071956381326093825268783808192152190851547154782754402072674715492413943712658336659244324525798641659058157009348942779089877330667426480076062229854488406797691769801744162921297364003548624006416002311242397645110074449575249235300632007680158906572429788635996176750522526436701039547342185155283498173552219968724659169262738695051887010952074230210020574413450585840400577419931448595541763376835855565296788072815856352641352132040634145938842556190686493389057739452423788742215653846151819913302528811026689015528334004221943496233415710292938483797648424665441161192118267730769870969997479049076834826831453007434857829840065358691602710378689935591265992678973492325628511772858410990527744327671776623862953439407788397938225061042767064577228705087726924707171783585559830431015112080435971501357732375590964750373905381581106998166664915536172895358471670485300662795360794122876656595569990406407924207544601265913778309459016054732322714440892211208979234575434876386636861397639565365812655185904753018214843793306007553651716287157934497075272872896033342095187013606758347299148734753462909837341265108144134574063348938726476549820558638187857838935337158861161501138555420365843120752414230270611463227790396024935708930174553341392868109359495473213417846897643089351441224305723820180854480497209374078953959633116767815730120131012398027511267882764851312111589540647910330778613097346751202986896043655305502267885657383534110919437207266534579690952785127373629064593073027955515973092621055895506574846345003557483780030423048370137902905102220101023559165858405246367601432704469583755832939887902491822178714686202685581820033881615081214331991172763402624407497516297262733131829155110923401915301294230885291639962632007757999724286382090061695618298819882191619232644906400446922382677404562174032207678078293751462785352424988631825719545144763054649349829907621881280386291067906145298493191991799032457641004664762587942857781017718371900942491960645505305978426252059405378328566581473618755455878274973161179211246883872619081106072963736736876319479953938855395122918863795047335173678575672596469284265423452184500512330899742247403604022697945343709734195838866562062780519560603142401661801026205860722162710060008296093734311451642283233960904300276082179888172171419049253396991597726679214478853239946236717763546089659479591717298511355674560342435449388299433557334650128296330668783744014648615607428834693222534452532121395558268737790231877516147483016402129852396809582874309981020177057888798652000234535913340656165649722940860260141713669786643147001896112398795416505626767176418208853198926420505330093472886442622402728993806041818842175926354734165644494914631748326218989967662412950655368618188128930919334264927571818042329843807997765017484085191355329358391377223184637699165982945568313985623683937974100274976301906384115882907018946741832201148646682437322557424469080815744202160237482295365170853455526318080437847849544776633377734354103230202726731981587302136253694270900912671998433312847599234778868030287165637122852415182274660572760819797581179816194770753244928733398406398431435431743971245837343444131474060138741894189869356648919551801348367595291151218695521828423029164912597017626050326333868277440484411740495597099048951869331642921814478416937185290236544568026426774082266222947126301456706935853799727276662642887833059414315448585379426245728403114899012430164455312376194767761827317694494005693594043730325009170688822479980144204836430626240415816911155584649902603258052789302158011042350624819051939882991830519744998698800404475648517052179782250546969636591241902834013901619534698818908596691790768154250138836724748504880137489821661548325289358517995364336935771491139332311010223378235060715112767260025232276719200566837540184613117711580822543429329215983166530558785268592622762477794992746145802957660022971289087952193154453533531208710944867730288981819679821918223676884231276386468319736605744110643750366812532739954948415410835184535336257425533811750754742081929153785064119395895424499811529943839791289615906532123421479172340495156499918951004467348532807598458624173359538319222086294264279001671405858397595874516835098602848262942167278038383416041900513759158072338949868639768551352393435145084130122937013371224454956367137078683064625261351264183550968195906137805603930092315582916470296160708176778996097797746097189688837106929263721020073596897540564815194015036015669475230010292541632354578836244633054303913054124886169951575749165389445871866496283889832834224684336359475506464992611366806133872707115627315236066272221634670134566975528474800343848647453778703468892798837353127267564843801872753178605796239605407090100021969126816515961538019221613876133706700912044525169662979046766899032848882376634187609983175207664011925172104543753896835568899362494502614796057847249493690016313950031606474473034523552338041672377448582811701392240426885343210161448291774774194082154643589439993556564521354468218203450327327190135824475057312100119843564726803312481510782703528290374518540566544299886816319577322752815024054454534703707323330990380093929324436294528797364103028477489476511121082650738870566679807814164607850176640189242498989858640668117685929369948074848122977953838617353595113737709967270672995275091446895541754765550352897901673689653502307275777422037396523219310397199678794965708949985557770373344603074539647600607960987272453528425071342560348238130911671152525069684754858452504791414852854978107992224848921748277778978724090677203368831286831346190393656589524896525790224295762717075564474987807072278556640112574843419361768590292839342823551586409901276869733526425991733923526772428035061897283793004898470466060264098333978554184092689620204152482247428288290294629704670305146367460637687527837839011886043742943526490711482571950230489557427945320273033589704396327191146832995233776110151254906664591286863729298832583408891827435361176962466976032389739089271818822720431947217158146569443712310690994646333985828792026688306883211892940351419093938220390607052281934792886156382656965923371187373836387531071031120780211649939890469808591626135675828181079343344068237541477715745622150658933251975473515281532007389930522301412303505422031033718856631743890233692600390210889929278129594679517272464393294404475389354974321268698169975318663112559541507102201856340575216183260034603949936982305555556706877917151818372789284264211596653032092230940603399687690772886968656223336984431117058289770863569669960943556369858350202179103889714166639169151573137849121897995432659596164834659123252967791642083190641228297926164228931614592010126440256032855917938761180383343338214327689891008339852045632902685003043982611246185878826144719479282209283737915873363989184484740489331709383638084097608098689087929162971011667867158711657900574383511182668784115464153114751391341612054695407530557087794957455155270932708302863378150844761488688788042197502307759819565481532689327806413119391156235780117080029175760843002938247830123420163552753079457751634220202293221038024639167771496742832507585035760812446504479286443821446478063579414931094050208821861059482597263023149345223820448218831007677080456117303595912209422686020170015934707548859458003896559738107040830409524175348204550105867847413614460724117582926115708745128203087265788699984479973888563893947832106835278793171648799976916151563917669220507889334400101684251911931425937686269270708144044321599245541412228775175445481623125996691429532632877315824264326539977017469763214248307539452177541488298231493168678332829431062683261704705760009809427790446207649600372752016470543801669375378298945857341194067865547775240678876413422815423892251172724615353493596203637631551792361500873624499870364065879178575137656755995010299144889134617287696373367693746747736707304681502397624878222022222773511550945759788260814812487134292182601046198810743723337153522960065780686531289484371939680347664609209715285492644830002654981220450566356332195545303357174837902358431545592966410991357108467632807298541405734865537393135119241468436019777281203876356855639993130090920232058459050205160357646389934385445029835062283050419895487489981404627537752062586358869357382064648233747649962462316226141684574483229129264999740894570729000681864707616650114783164231553506605742755395247486703934753894775861744251685644552538669094330135252870641091084742384938381953165569599359894408469366523844297557555011073073887212323700382760564194563381171008023025573880660690010277405352821257465719177612694364748641164636322079147083753891092434169297094963025704931970360291928924430581829286800796140277852506948376103703834956357175131932536080582686437333334474487916331944757789855562351208188844481502021252653475755660584771157634943663446112116182328057998104237907601961919520530907734995555740643360964051065216190787731526257457225755175524557187544896130006796298625238978081042465125028693871201885357113014982559703511934412187963186511057008482112151400886195356423972173630296822335039797586345149604190542556363020883084372757856776391422277887871360742965485600497430661585332921699256159974523704697874304775291187566178189298053611411352004975055701430978288700023452514233060856668430528281094256691931310602875829209083658819848030672127473243331769234135805266550860506130952470153208670214600741767626303831674267998147501594892822029713158287997641627820230339592894296434729538512519704031917364275600400186057999179465629590925341609149207991389559783735928949336677124512575992315834420266192310709698354705955568398412712801345361854586047033556463491125024695887680799329487608021877104799579337932852839103910917549376103164978502483721969423282327909312523930429362253197244340559799798065278517020883415006128241828570434860658504921943232912433258019589572459247856650555458629332143831338520524406886101801794737995553107739052476753878466041410338718021511733609488127995528443988085773598458585015684004380713082469408969853470228762837590298539791446657361036625650249772376930389104411102105501840958231825410501863464346361668599786244796366545640303683894377724852318187759435142007908661542156804706258851143005661025562191055836781564569101430723906967537843784922253817084078156435349979587698684737512088003113122484901647095178260305041638764412146836413050465445952572048554938290105335445724050970787087210330272116132737747071547848578697141319291934236885651384791541204797857687655261796971953740145973750652226524323339632409262709632011998464183265028883706715272433316302933950044362328660467772868449715764688565713066108246089371412979988446814741202813379283672616788366849691797879996561256924900955060343628059510681947940925755549730144575500644938736360642366640000765736827510134640224772519543708065333277858943947172568009477403882606419105188927975035211563337551771450076995378023657524364922472400783194465489514369605363440499733549092839449510481724839774605001178663824382406039145722112965721627210762157656927476368460508155791898031352615024711863937178650985962096471072264152619245000727726731528235759630135487078569801802438478296460021036700126452156886749505801593165193162929361183729082427065471836570231284359482928359282220731250722135540774236806256825780494218065233629915830545276313045280857462439607719498990888451989646908130334675282659875282169105958263954686198572238734649402074117025147645442951506515486664462268492044923057579451062173317661754391734134148285393700380452072849879911830768352299623366648995543042301594911926427148474552403371032635694075878904815438023352399913699717304507997928840277536137772424670013851937375812218055381584386676009015714042752044547266879721187679619454921261338943000484956983127064475624478510202952057620113248689029019972682451795053306610639574754374064717058120148986971187683176024220137171475381808837855869596507040488145007041740535810824169900414551411323614629594479128967014907039136991269218085345181811814289398283620604951509870598382912075233544607197564095912190636362333968955966807207952335042113123087800033553845060926083195668011854804417742483574991167525049522146860746398175212976672836329272957604443973248124034381884552819321766993733319930956008807179509194583673704523491451385855511767212153755667042264250081567005992590315782200622086710804165501855562592676262492958182074851984899691305214906754748081752213117613457134694933793329624672764137244429152766604846444302433651777111358054380140277638438990600025622959215829657193996665321306617299038136848290432572029642038889436066390833666452484854518017767503048942452096469774814082693891562577507483918108908017097545569329999346893718355655178735827240718661519966624482271987494646192202881161190811573693736566914114883455549593142051064753503093774175474774507630435644066723635085358128693039543434650232567052019833911263267820631828577322637088763895049578690186157663696620904081749119385904144903949366445887795865556718804410012196684537586202223815516975683075237361613224047346519847291172396822955759767624131103261957044761733174575386593519863615020552651246462795611253648478673477621660403895611790204661712350379301940548319238020459613407744707003763475841768530384964365861494626240458130297478785672737396144746719719359388945812401820879843697021270772135318432127596650330912596894075303245092572458883616351641400270578594330545921620138590181004893577477404497180950392224931726789344815646334271946404770643382230101959587661017982950333087058669214059870383984284325406295279113804695384960966499244637288892543730474370707559366359267767828772154786808530102580277121881654491675093920708601277831525979175285871953409353298085671419505639083550400917743323757247889065416813742917848754879808246864246479471231200257590352662727461629704766072324576731766479771605737456994031332163261468150571939372858669045969511455765374971552509351882730209303287038694490043378302187731395775719614902183740243716762916434622244598627051582797478595358992596561435500153211839273375470217081875479273121298635265280199207763932002724285340148385099133192948545527894646321332731682578416331269714361049738287257466610257988304488144401135722333453878593095631602563927952505862490799004346034512438551060778021798628295671876362618161105858762399216110171063078284645480174420495257948217728924160984018702660376634837191921689217845425311676900083511793896041121847907689195081809428500868288988922935663816408574263940768259189850866984900226448975183966065083133334147953261980346034339798700707961912099931911578891331517374899433302450354347380753076610279649054533094685380259000978709339028148617737465608858498423478548935420301019218600749765997737830766054032792805353279295253094035707881799371522815628261733263951201549724728055808774841652540327953801621835247529229679337902716247510531833688168993789094868538951511232377668175916788525333955379804405593415832560729953096752756650527406843380129789693494260372300894609699603343853478019235311627094990698734701842363604129067719386936527803214399649501625072762287646485938323685720258094152988118475711637246060225458388628526001947204803280800321694569410582806650025672210310538183857380975863285915710534419910259756988527662270790462520630398399653146676528100300641745039070929212683250074291417886407221841355160787307024593866904877463009907820454020842327017535832778245853392455430826833269278301951186054528568333759060324221101338862899977870080124409233147268760501906622798226758253489994688141547200646815489545072664082927447538497623640402623530197166387264342757813073493869920083719745989686551695950918281965053626411818404325915498939547296153712342035879305126318539712686972532536906226398690346338165152325802110943459856679996904696889462337441495616472036902593996290461610850284077245097189188638747915548206348636147399882270456985832479033764563069165495972184565936698909364012493716242852001325148430770686212965587579647722710923763098383125592239933652027424284479634195372816045653540324251698881965182481643208385381771464056929779643117618888450589236260894487565934072265481097842254935964422173473762235670565514898573351786769657642923420747843517517915168767494045768409572650216548885885698522796201764994198129679867123199712936886373656263685610578550160895492364245941613080847018919064005191887724168130278496029244836644704875730254001353761163113581190244757697447116216745457653018897185768194619879944390538451712561396166948653995077127919490473581309647412604997742722170518010836711530539630812622686447162945820816514555952340166151507391900660674266259976800878878968742829219934764807619880022964646349266909240594549873218860822038793911845377807013677095138681200521103473232654512050412875025316322399585913801499151216194808211752530224915386105306340672232589131526170637006104823265015415254484961016262865296758099349885278681689171951018929376941047240229246266575400804058524736284811082066328137033079057130344238165288926454136998882798454470438788862927568962719740948639028747496679895981152795633793721055850384868580942214576769086144312194213008830421803065786116966586540230967022469536248745629085744635078920153668285485389819399498554041879184199323492449714804624366388876704124211495374612636736412141860124705038422299793178453445840963517987063991615624828190511111303684512287975968654533554298788904419199741014689617541496162800282545331830977044050554718933193427230690573699421772422448099206299476470519412755279873141215663944351203862909101006577967926118158222990468543763587660922093509118118290711723656640385173571217103582439892506654286990213632298313278617026831843126109536853687168151366134345507962717598548986250036182925266913975011251657514131744178443882554199935683270110957435881591727299630973311307741414239690584527010492816680986289831074621287825748558419573850124285687662016397049961894567696742827362121927193141352103796273173627964831317950268047902530097221856134357997005445933196628457608851562269357506338134003622568628330263742634147288339414395844262170678682343337263786183914837075422159241144702150978295252423462232625846754725692634376684992241074211233599898547279053485035194265498095074379763508557140908040761112500273786102699676120299702475031389590788759144899825827192881273018042596242713561287502217045578580919429602204710823638485340893942884549077298792589439550986993904641218846223950995260349151848031824231287984891467120629369490491581015667132484056171527569571548070578503204444475610770543920314073523464990927354744252667975452857530277140131817588676675775620104529091000839502593128262540107172933135270491454910243611523267277660815893371124026657000398210351476291763230884743287442625407768444659209300893177584999055322690838386303354780879817306828347303262711256183582048296984070054972585060763201606256766723950739678571629338175434148859574141600889102927084323339841396372903986967450092982469115094930810073211667400414710178339109244372157445615862568272862514044442699056434319901183881539476618050406624398343243559352995896797174789636503252157590097817640441826629475401010227177850570836482234645163697971860430211650520803766028398242101824879443108483157988298038502665394989519176362777760991058731345697071036981605899107262649037695896474492109652776772726679106155040967852930374575756056682905773087161194653668589586554373666228285501555540333068929990705319518828713049807984708455463783500813946963084793752440341307132416426820793080836008839531418468286258162855031462344811267199313791187117629652580502982486771685619699263068197900061653082519510613759532778253177430649535652437691455789430182762363529396341806045338498758633208691300817974068132107964351161652323644475019615494027895788638378457745209442945307261428440256037716287677730159041225502675739535996306190551300776150632914334409678521737419276874576666704047293140720169332966930166531956452003023323534798226507544846997060749023386544332578395189224368856207892200681404179688345101467953584907163657003461605467211243929186431845793391199918410967061827348765296348583110691250833681457553567674225469138145200758030338007928073023312503706400999974760728618287146594865829471577569024882132061737418498205467494205577872677841988773435795935184776053613447366092620368858689242450551537912388819592277145541904408913711033877533519872251613507701570639306059784159934524027955305489652764664614830743115928222941329501926763904564115677829387638832000451606935516967283347445402787912309243135742645827151008434491945869931188708939167180027703087264046740309987331118346569365092508262559410058904849500967699398446015549406567450069349936293333019003236992173320008201129395134885275829374478429484728665923665583595861534771391078911064027584290871864026078519991297697037489903930426257641116953157646132069891818081927392756058547946748864909835020415324090960303750456970013973371977133294149203382036355012677402299091459798140580695346320451495140379369120768506117253539020327578743593983341280987037196050998825182720469537703936844194178670154950997193589376802036135007070906658368997864676731816064501335641046976758330273092250732342932850483076397651458496033128886415887715980630224330206288304193192666373560575744139444667999646712609921668542585822007019022336618966219285954453690533733775350959012134566795109515894812605948941334479320819449468625943794374207750518925283106676538752712343524174520263601297427653660334167853111947728668634054874311944731452681679495275013625198892079029374901753880819469223880409565904669597604837947967352887847822730883981358767984776734332987366544471643213486836800054373193906406779130854536336593005120546601409163064343656698890681280471972303890473245959380002777527289435633477850744382793053825033883010362771502941274118844281147657109638610804267088387040413870371783016694654538845792862482193983022827220829560435296864906186979755723025547413086230333944934954585692378515822994608143348855490487064442419021838761584734222594002575228129986007756232459477580413899872303015135461826291105346901184452643783861988371185425127808027138598483410928629572345187980130187749134910397081639470447670708436014164216886091952817047196866272986849917965641536828384204291216425992667594800199453089582528113798552449293122056743367407563806808359647702225244707670598642410204631339516501682018390966394189150785564466297158037934856286946410679660335727607833636229519125816819738227108978766937925697901346119789860575381339933736685733907717151277043055921599968712200770689319773388534078587804480511411991932397213292889712037381479149632344876590864771726014556498716331738091340559264346154787346610761053521203116662887607769423096194044665179005758270534290726856835851664755393453423492493588317104750549094471090022547264578352296914337739809253878388305406602401905563037791130095629518198791399584327239081999092863950714523741805645434108282611672509632989427172633708235351426353917181021544725979065698697502434896998712097570446151558445802628815822731421832696578297527704227714142219890221079422736008600670794129557403157393099006995082479309613197444272191507983298737084246543013495740927673597918735736634650366104747232800075077465783091258693862072363242281703824395841550752528481325792415220582229057651027400507684371942971203005566952970662802316615063525173214297554171435478212532129971170457178332641774786726350587582555041968430318889807004699691631723606389701459624691790142661041520438398605020619784734445223732950673768275069172945938002951568007779761953987316603088275992890640252401049032485297282127804791503452851105553941008218496466756679189549824158004794203119608181542685492310618311862651381867887734190346375382145746664061134586154409648275877935558920860985813241111780018530756328316598770299375948723186906163638038696487547694089322943293840596593668183444987927314357563862388532112834640710487765956279439900081260030911544729148392941324277816436163503765379196844187252994056652396177161207755481724893237583564992718521857884564317583446409607089304694860839533132058998985427096557906522447467901513168679200183797455799461544072681163882500094443832745358012504588371640598336094004509009040816183594561813125953814582632936724989261872572392978511693001499364007404988247065639447298667167856246326982562335555385179131163250069867418132895328646847944875868456943474645604054619853731341640596852581626356401370130336981611136311381758868080427794730852426000539682755236027973555564003149278067286107446632794765555117023393277672807640607251802588941132475327108580052039990670313187554486876773820735872390530494196775615656812474232699099233441775628796987561010494940437479403341818759779503785081247423828177878668111709860863578851604608583472586656662914285806268346159419369786867342505790654699385001047572700130853510530969538233446923591273503954411815534039333026066969347362075036966490163528766250930573443967959358041244635220328132160794612091987639470576760502112746588489588489008122479599759654436936883902028485309818911828734205000653449601516337302768790507908374304393388896866474802431291496064417284162045930232524472909386506381907111980932582925865942611833607828285850025086357181459778628167831631639180942263996151030966986362051328792000993957594217622104531316640057545279278633836285729517379396881088180741879372417647820093563940551534662059192110472990741165497339287909492227767619847371665716027117482526333294923912123587173354361441041261225619911551391733030598814840009889283312918117761950613132268096582456432119235748271709413676837079265459005343860386775888049094439884526815151899787290576401820833570029560228842041756868253480396305595324429569397023682866772345818660098334980001344011764687268799015072100836164069148782306087512128375106231955979250691489098996837296055337680934225198623525937929897238402979043841703252514698113469909450478180383648121215363667706710598851918231918964062624578841568015920918337803741869187185074068169207860935351883485121515365085378521328419552646130665599266264862904413202510689630590726081104827217679069657546098067876879852506423131927148383513822128998947010585671871883008275676180508705124155670424596672680561701244394261296321082529485606810352508394720406450859022091151035796474397149801432945051682519197955808693125247016504318870825389672086450273336318989100269886255300507290180768540723400926831911562130238137042175277468501489098566443753933879462723320463514395610779368872310417509275032736362305717514581484859803469484523020320897611379535371991335195445628795411491850264687712460828389982757361603521089575988515355647411854987051445343423593021173797054355040429746770501903541664706670473206602658947627109231341203035277734175791960189722490812771544305588071967922414247953940855809316935592888237454113583498941506308464237723175712370956968169410609925936681180596548878687501311857619073114008437275558338565936834593918924907530420752823764722580036138101470873273494012861182410121283130320186125085625623023677214635420546721715580436196557511884565487216375811997487007114438489933367491594926055242892816837840982020621270359704851131341293212184469723700557259220554035990791583654998687906195297548873080049934772870031935856026937528816210380714968021682604013687810681035720502672921935078076550637191947123547050426837926109445403772126846473341583025537691121292781457549625150541507995668180800882366317869363210507546769961188268050399690974321480601179126054655548133614999923997125763825762011353457054998707889706986564084144259365339364774293613417102526426302405048891133841238516886613326965052825261653387320499642276017489505992104821524713801869861732167759573972110441321433567367937134673302641473077408442419761215100639793532427412117162810685320250221807376488127969603068378375495124521722582460146863698269709269484102929862286595342157209181896051311072534595313948177418407811622341260914871492970795082724669457039653177192800328257254751422893965375671278029645255234378128393942329632096539877556964872158392205382283659663443661130440625386350796921918946659981582664101994099320153810453617778433434982974305325773533724603661608156302054665827509980093514695651699103690558308172247197857583883297805578349201724991545227499883935953770852751533005016509331689100463874196720647232492080974962203120264335990733103450631381636490630590488605391723441338421520586621019525954754306891563508254692158747133273823451610869832780137632202893592708006880760912650656466739092391527215185796520719608086305321475258923061779572524143781009066699348625391835983396888178915971954709835202392113958688253662824462630978403197679448074477798655192148871617361002881345462150440758942040698701899788262715210430311727267486554186289813052807496288534637157283602137439417735290702396264790255121936777892268389019588088687680896773686414477715280058512115580473132629451421253050574756367091867709518352284729887067792699396329564648836411338141154341060060580815817949536568218111270293372110958410769369923330788572350695315336227984008531570581715923873138184752264565040360017519950126310180971310724087210554648072879461760358229304666454544459503077887564622229703084880008590000654930373928145075747116261777058293055205795734492376510116867966232766643269096224557220166497230142765017951563153972113864378788354577492439450018620934285880792069457824756402594585035028847459361905982502362245180095301857936085021553752928557829936873489913564850838116297880610224913977291059479759510600031397369925085027355959459719629281957229816518642471500333589482400128571484329159080907695386085776173412896364029096208056280212650687014833234127559893821614294401160485844156203235878001903844950332898550787269694910176323029694820270330454267740519284265219275548258320775831228618005479187462170406583661572905509515099315816100445489847233182858400660816163711094675893355392088513177634922549630741950823910913519494232199120168780756632476450979000483492606461948200412410746888933865188696834803915503549014664196570857348176011808637451798755737398935045620300479085257508620363268340215280608833834183287887396084657387588557249989286612529520226318901199202645475380136464776725283098399445335940562334598718771882464347144278780119774810902752771488950804588292205489752125421415955598989489742158345152549398321770348409167834685569774466741916736277208306376067315913413569838247728594735160530188100526307874219790721741470545501219003354358198032339067793248544988267796676246488660830162993354938412596823124397612099578566273948759791216884879308554526786541889004764588532795275512900366609503193689356483590250556290405616485060016057085379643169830352677795600306554267086339378496294869068354080257109616040895822030142067371318598142193197412731297246186444901313625019883978276943734500211356571954788074405892824345135138277665011431346013049677719971309256892053489364558506354465701692010456091063568083253985227255268975256051938219972356861775035599578427554146101133533073143096218903186960413804098853761962742247011147594685627199598814374752017163276147283011914797619728555118716865287973160745030676581006452244685288995938004958316042286895308636800698302055005556649208748381630299264589411348962358485236000340922448623123186122382182969584769770368368652658615423871071254515831222970375742710203984229693018233869215872580512844388119556613803566009495963872880115313080014969658938669695743412233560117700879151326415769592920511620225398429775434779853684076261343668169269316016459893346986895113300066765261198962256365602551428453395802771559315044853881462103834148843280817668976687932510722665179303278692963509098250497899552358597220761984085872396252518124847102752623758824256956634366702255726204005009542182034736789282190207171758119144130454856091025797103193003507068348149274213026151053691884633715968667782565523364348161837085721958446054280063410333104923423188127147164198520961269590953414558761058768386895707817395526071408404289902794472201534514036985162991423567300308870837359240960080463339385260054154653581317619036148748630799328520111003402960209643639046615981701279810102009669151348146187710572866917665524926252659198197086704834978286429222805232856791159458319795666804279400411674182713478879146189650136686848505747824308021415421751536638555488900025858813613655811510923034505183183195627040231131061328649511317745374648388255174180541854086295028824997693540403643130370862273752595545550879468854015154029675272660215209080639107584665452980371383022290140321382906371015932903132973886222908609118396529205677237705282016869602898825477880359347063865730723331962429637427231476903482229262349053247318930046094436142440075404102341785641697979253693107418920476631553191771921579566523820260729748410066449416450769920534017645785170452931533606172718780413884266261723957838492282203255855302364053364418119647575959888840212343250465392783729126860267807188302125220375768541867297762542765485751681191096502717832754652545611541456260954468815231166914526102220970516883720312850028105473578303311379359661043947952587370345804190646501308806531977677158672919047208294879883170677417053497088603143699016935651147996289196304819062656505935047491383068572271750177578193941387712721901810901434355888286552101696597867066079162641580194231574126634273284357891371302885423447298915702355475776906113703547016157465787362788340532728130278722604591082364607032408763447414739300445459230351384255143970562987189104846596785145248950200266252818888411674141939831051901958619999930713266427704193203775589044538717737725264020003463878168730639787195101162932637387837884669955842075905866123695549509970517113313621208471091326237480729719703793934051570999051657492535553209992582134992639220505907130107665631161118826254887232949214946457330585421216307211306093713661053182010403223291299204985077751567442276493590751284762690400398898133917055257128579231631434932864797474408774681345058013399758994473671619988765303107686446467395415034463749816624982302997470999152320332138843167814657936192986472850006663888736979652644808130484167137420187496686107943536074535259270783373068296802605565544715067137843517585641284786615913602721228010862199764775870525499543207396996198258773386592280891551481081916536222061147238623647234636534667144072443536961522447979550674147574092184172207841606610381619914909221532182307479823703274267669015653526519208509667434038428184997320933441015256131021092075931008041048540149465346217823912146930026787509262071182790478362407743792335699615865261649507911272922098046174215246333901061421153564017155962322759841613722119577647963457875784315042643063782525163380876216692581217506206297319058723392382760310689015703736393257811271588192913024640953220721343864241727389883073758736061299797869257758168332695716168389414035892363612062306517173750237017849413936224618160558921675147074727309412850982950146149725316664471092137083788008207344091940118285284379537552228428293114056324053530648068439516585333935113680650070590907274176183730068358125163538313139723684418178572881424503471274317959311156911452078578404872194460266364242713492632190240508662437334243932465250343547973855277347553298113598493132131277008870419783424325931437543070636916465774286974512417419220898030047919344762123859591305892845245528221821536614170672355915500877632168811983614840453266435298467991994145886856035786813422335891681325215210074793654924145850790846652256760142578713743111698646136215464463132564401222555560694635779049520901550026557381227944243198348598429052229223064050701659998730967095138409408602826164670482689179761112027026533515347418808878151209655409945938485897165713594114295097064381826132784401289882848230184465544383539983178248245246762366568967238135542032206563554460953806559776840568233944186598501550584436278232849207840069250846274551594526567574056426035471449231104531867332462872119811570277501163303994523869392859703455446993347173341013812394357905281714815038051373932850859096635047993036830192665527361418102252411332662076859635390599781531304132702049926671476213847225777100611843345061353263617593184060393964577354724404624280826200359890529656538868184068475063429354996427445195383848459429148369450557143220779757772562229847683083889802241671609276690970964495453823416951379132935049016550377295381964457319314223727506301263288170810413738999933420539962551171147425507306829404367433518587993098262764715503612974082411744709524737005622534140275321811702412591272740794065751945723455466909753073300215850663074298836233924747484939328474231836196649406031273498290370366710228355349275459942062571018089064322697464027137259763234257691322581557696126534454271118502416013918588881670676434031294574822912516033692852546758681026129375798391479315373886576476176402574973723026547344466140113483377101749268567919273327642347992568479818102456822268242208229474186673286712892886125094344514232665626893828017649741445928065509197152736874422533824368140449928549671793335350471238898589403324845461605282201042315602636121346402750433918866652935327906060324726255527098563244233082256530415115517392155854434152078664513405474291565987264567107808059936902355220928657630637231729021671592815481598787865882220672832690038764073335983408276266336506931291897570346246885360855257173174765706475381528708388811978398277847736463245957539057100252387474859131819927109531321029719953530737086617654301982729634902767096807885610794474791834789867071232761108168184049009965861619614923969067235692915313672982126364560123853804628776312559735965728949967381407306656352896216031285663751190833194995035395673330559018455898225977773336095110865942553791079649917750653931371008222587961932361355488684514347087174078626084236168159385889042525195367734455904929231495619356942596475619050554364199999539555065360654442361737077211049669771738583063620236447960221191886502171826262999833667833264609057728054701931428748786897319183617814062260807989015511138432711032267414005762553793446875247872335999765622856815412197763102627489471055304306271367343824604730030094969397502965695247925861377749100922495764935552667263443843269318880724429739208147752864879941507115091549755632226132147268138032585197036720438724940267581258199322225066255837087408417095049052435350050415885131516258875079782885484426084071725250929131854165539822224371541466113590013409033997042123898869747426657179223752592279045691948546906506140385433065545430875528579896243536465687776753403358255511055702363897151735440333485065558785052642550942102658384014122737583292824685681867941783591094018839536486833564677646570785589644422452682321814424708275959845793044312472810801931827990870768309073344124854018252473517463101438560549937795934773845651083042739194287050328196330189047310597649288097748487555817467086488604355713480140306486377373056012969712666166295327627030745132026829504700668946394267051902789970730260971450365135870191493325876775746094506461498915629340209209228939161737755420875826262433271205131387536803424172782436744999506586148557572732283049088255281077653583849214778407319687828824269760979832121772074779848155732371370865273966856028869871245280985680427129231798952136923572289684800010692848377300074421014258198140062379927405273955583202368734570572544150079077326499907887723904181064413181899134183496124261841652948200279868786420987582891332230562433386168434337396214203303210508808533322799241548351703870784446639928094355122595663716032921271856663586861175163334669004565789147597543773795237231096868078158285140338579673297346819974683795890011985351750575433134360163308630813578365283221848200116332208453503020370404562016283037574514995639294580841483538324458815711907399855658722899666468205290898004114085677478084121986722842088111569833942789214827824431899385931914492075388384742197463492104659803165112541120938701938685916424775603420443691311468728739994290358230883411679073099901116402997807742785090987366173226867632038123777938591263100121096035795100287497577677076192538169362032583065739624218331047486232120312607261494329763313748921784391781157011340738804787806053763309961109730224452677050916854546905166590530149804151265826377090660951318972512634828423277133399061417908233360587852077753850986216804335717630291786161946392902491960193433246413054293066306941708347309222511206044294255897522276085276972453624235372103881640021952713731707608907249664340442239815276770467705440034566242163618477057753681589312898921906250225806067083797313946628637322399916451461117485138799414364393552924903367396705594333653410203531136098543767165983596905143329427452870382850035292582949162083106157487451231245368399219003696438118615990210929433280116389246578432195675788447705933181397362051755033491190378733980997556455555005674471006893768027783717028791056954511024027533226727776071616978052955652687102366800621875594917933421662551296076749078339816996968140959591904468724323863685809531463402021186767778812008628068788484707118541621181281450221717941464481119871063948020365708201109877382879903499123014258675807986875266568404450161357276882534167793702812483830895216785704484904767710590424105609837060861924151491430791078868086349186548870281474186157765483915488266050963620377900013929891589976193615757702414191119219584104564756153309914232104033150361572426708614871745937072744942348338362731549766274927078513113304403983444888009651279344195735913534133831871384173333000351268519848813412972159410299079501857617418956761717172179950588696080521252134353720245456469766831659211850922162067448783203874384633339151511986437038158804811535999279553123408786194970782219593076989345790609161074100667896480733263304221104313451570366893377451265283557145285355002932244550043184503100856913217846583141294600406230213650786485864017729891752687223026131017610621317588537141854380122741182037335010543102857177500399669273173177537356753671020820630825529136358867717353169124542806084419362421101007571953846768640788373020882975509598115810559085129525149767468437255810042325199475046196081279485886753110263519741640760149481252587238226124429948357861326204975050399499600423145349953595109280994228651169020403189588625232235599351366065374494368757772437566865170788647810672877042334710141278377115087359161687716441687577391569640726537681336700624554156470646219209225864923167090409408867875883684328899006778864347092239377232182635421419377817080333466034084032392925892389374462183325772738892567888788483805059973887893066964429812557430166715596391193727089724187631678481651627231532888781578885013265889383399268981752457441016165054811996580103174516098966317361596167193115676694503822793784488323793970156411703972710955015969907337872072216305434863943514481007613043598913040369875299751851099697499437274193885970329345826894875463021115315506198831104121094027695340753197437637806036938713647400723933696263986078411481032826142675347999082108351634382527866683078543449827844347546561539092130871400381074495675874458927207119996367727476517787773192513722395659968644679711089278795013583252125296123081518268487537645308113719063930916322659536359778492125044647812468606422600455217961403496781878128086483439449222306490771256773355146405070529398531133669725446785726651041367304012636283154036612288495155481431209382408858373005263593541040408201010472920463951167313157776579865751128187920365250944493853115101398791436516964856858438760596036824043232041225078126900052577301177194944091065295442433327239094657803308738414161283599421565424799165347658383354100812624202624807507691840672303643310974531509306559780028168760152568018189718679284715975108985216587870226321782342624320530879773732200187300846247448906096059765189654923685630347185488364599413620353653978481804581244198862735819072905283976558322431468930811751205242768108533781104208920355730165538253049102113359578547210197015378291259959005950768020418146774405946953475757472756968554684158481886368582165874979534229616018420594181510390214962089383565368815757639855600294986908667312294945659339700093799507271290944308895957735732745524670423502118816550883615519993273806253230435506736166414358993487490403915248871488862298358332914387398081884319599992691057410868109417303500693821026194555303881536452774201445407098664598978618589079699171824041204946705076306888988316793745056719089538859268052815103867179833523153245956178395412234015946381529453465418230170847787764504367446884539098178499580999928811611167616991820520851642534737133128215767062036523859834619792632521746294756465754838490867394667474061775061469284400850181184738468793187744567990734358000693492771315609842790623348275389606957965764367856244602552112733253954677216427808696720623984205313207245721603537011218151676547724927324495034356035112598940332500182683222072762012746810735048373585361998506846250812406111529930325680429968013691179838554518970070243332542094280861823553616480055792607357004563302603698548525253809387616875158576277637720794255540377550184005560591556369320573680339209744189833099963630152556578930967418335592466095052951979140597296668967169518829933531654888122058145752276557574123069191134396030299156463901765405703292367434492316272758407373755065819572578972649037798585201089952736053464529952234273033472541106012134243776966525637386165978118473501749796859710826346711353004819699678397997473985422224317962730844909665667051669006178556483789239244987514179725120195888465993379660040795391863877104986266101031647456817121043843755642457634558430551561201295530284709046355400039766021361990646639371756798903668123033511249393909620038943823936909801972237881495067194445466746923975880907396404206698683260787695241414818256448737721655263769423054393002531474944677220607868874682819147065785515421866487352918773484608640830131615115053490359544331367440475724265409031135541980845543152632638464854302039472883918319942035898811057531602787509000879403152268322373035842747704967721707988983997933540919272287026694276590076564134011558936587302635780942971507998452103649256843683692289244150824814310551356822527438841897076686248594777669613508201658394386093862549916353452350806768461664488184348839802541784100477866949359288094835968245781439766834108158549265059514653217137155252768329765997097830829399887416765840271990867544232263456016392600411286149432567108572501165765160447027231525284079173084598850888637238872669485458321531768796585443381002627163521116485890824424608943991418209562981536876923839031132184838426097223440940750577072219832723255741172979225255036757612848157892188774705879760794272327193917485825960464364204715052952338042811057314846292404976712215867621677110105131148385659152101889562779032923880441381050566122117480386832186776461346042191485745123713277844422705659256450935852161479631519431584348216987312033488688224678658883508125672257150506050385705129157168081105105042202963226821310410468273390050259085550195535154555989613364226056147794261468139316155344128391380393583901445262295895338326675657703234042993363606071150918709685110803001871706210211296510403234312439883427981041640008597436186285630895591800726896924379997914357255085941373899623802290644495756749436712324887903087898299734209757608879973354841475014851520732711860206900382587216708577230377177660203141851976005204260548654372732008179588213794642047036702372309558637563145592483709949433749914172568589040170433905844873156953146675908994661915991502660779806959374986360001091201887776770111720834870852077168472977787670140067670436670366482486021258244638869035930887863191771967933799759375828847188725416109995960657249940825988578796028698084148831819490193730862649620262433155568250844036188954587824976159820805679579166168797287071249772100454992172565538502046984686843332997216805986869270184982848131291439356528975965536778826461063559944175365516157262926540409297797576579103028192452361862809224064285531054702246275470300306147805117770503742388323880710982691599867461277694128028883324447925703034789777499218533652279568230250805662149518609441933135156441812324911352306060627974882671680476659448500548963650168549292155315164124481884480663388327913845735384055957745003344202845272697260618016275946359229933699080318025424668431994476820537103449447432396910210814926686924963955536744767360164328947964201429638539400140942887112593616016395772377501378872886402724691748123401604993458062527199997253375958206596244794699314197634341127632464947108577614939662262964361698464950634966191387680390319049477839876691431352874481797032709392754666300703776198642688186228425501347094303364043681404058335823761722490112973106496564771880272745509866513191604719956558301996911939870289451377057562372152259070381570289795302689491164268651618501842621421859873409013454229851585630317847971520552073493560017451876374411761944083925164203760792931359945398737314048646503187137232133624904334389606785604919357266042475098354516412534229508615388127862110668494934027199606501493337312230680510298210739638534806649808653632098592383192863383003091079349771772383140591464814407443956089233653258873880593633631685255037472785588204022269674348369119684528724658113442918621603549770496072660257222379647419335990807307223621359762003441791017209399335024462826863172631635924271128902313694548963531923633241097614267568556991524102377599210721058894334309369938809038161794602763119697239633796303387942760299576400844554051262650306374072084145957249771766388710108640001479954840118719515354463092770032013358351581223695393126203770512831744687776369335919490569055215350401898831202792001534453688115733394665129081156921560836846042160546174677841724008620747118133641365796095277457881824339163886440645138903864160389767209134076285790937266816159757871597074850242624136892352218603805525750758069831961613003152738438367635307962676095775048779708051805965172958306657668538964639546003799281056108576708226498798177218120260889516476546192877513827026962572346272986737861508040309736513833964297984994354420229429493885315900629939996717723746098500426519527446203212470757023469618482480960945378622976609817195140865532154354468705274332113779427312140202767554440077990224310694970837827985512854061619095795993686159087045289057130851530682154623451248256878158720611917857848070602948354114488502755383470928623705629869955024206422367299134355823594484181549763210851657885496099315454878341722552937507513058860238352041384517643233115738554975507757485318707770585135307689378768953317875317458609589679859862218286001474846032823809272012349955842050911059953541041225397077140174729251955723188006874650827108582813631423928950167446156316297271500559572552916806255755602870373275943769952800898349483857555145464620970028089145477128911905158353446090460836993420038932039647232901993225768013898487301192279012690606450985386932324046424043595405646265412851650968806974730680356363888950528123649467337361001872056263544243127292470206069543673302684215025567631414107274085450722339339267580030007389885909832002214013430008629194793068813133913822822906824039470663591097521173809784323753768220060475896893152569238746472725100363476948877646108493440198817894869783592583799762433030736713682133464372046773147744960425479654947815078570449216174273145847314358906494101544975442270064058453010742202799767028558966937357953999300904815295469591869966315664326336921181992255166974779440016992332494764594686708031463541575885118215276981430304207953020912580850025801417404094265111343247133925060124301780956344337185607496596248617138173969024024806550189092448898529334716553297117060669169524935658816497249060968476947236444621906344182892934406686330305594953571088647265018745231653155818370969938338305577280648252636002726029405841079859307620421492709080590616249241358777284273792957498668026693468850363147217368836920434548679931748823989394712924868116384690507009859647224398579958048446056618428346614913215347486430191038384910020325950001836367034280885039909450296259071147274717104609708938848103097803049093634814685925966655062913329379069469234611100941502755553344411982604594699543718594399986848201156978640041577880101875476609301316279485723164538543939812271444981870579587718997039427040880802871039098933169473583422307632480858549942900063580802562775497390596750820736240533357007314469503219095344467617690860735915344304114689810998932638944855050075113243216193010792799777766772203019460792467190333455119263176792956907322481417939056328796156257091171896243108231801965660094101564143169778765640259240570969483147970880098625673667004888522155642126892331448001044274938528378690019447271556500816100350236995588915475589997416482563470931689867874009143400330538824217070688565960173453123404295371611133177656479524815555884063805751105918029077497601592011643327822384323626195278322963094072576026066165423050695833373441746616454757970715287935503474535714372061531360197178264389775980517955720762212504667136732885808780658185349839985160149204684225571911960875086034421872392998065826625819237193670909734255492184894716743677419138585315847865175059397759904159763319098387961819212940515320612214758462902523308656049780879880418315365246215439896224431911674395212854879659977294829638646215327235143793905853662115762936317331647507555104397818877231709635658294120785045727270130732403445435699565072587166518601265420551569356745572038980716427005573243116617116827456080384608689361016566312492767014845285170739322265710254505396296444465972305769871506327271599636762060218719128797549268945716707520971770367954924279431342770747312881243187915828175772962423024418636915021768941494943766143658302437136794434239829884437419976768320690432188849266163871066569115128527191222185124833335496369898121590652881871365088909700212181894311749808546307952179278099669917898650255937245570757585491213686351441257551287885471954447000949124671841951780559454426535267334025215350338050491732055390896986624770352968748360669663529962309643008252383032345226153188939305147258541576847818318615065822467029456998334059905279738509951590396529696143064427007387299729894456087847134742334540344109686508080171551674974896199117686776558235104868923725059263263912770593802639180414085166476161936636251815123070131914819615092505169192432599596145185708482812344317170632328009845017561246735439840422759031969495850966718974937917977062604155455099479382398172536226549503740037659231496429208875328511589025853189138299525942639908264803110644328969270379430942177365719977821226646679636507709973261389766910656387489046065249679365764334998309290594824125266211154894324124509398496148555385662983808580393670429636636908148162049198014490754971028479345532807603665748100318497230838995777707516908799581753955424504859471928140856419882023317197387826898281215715155611609398237279193330930081549337279254081012240012375072391998466981067388442789356256681336184209013184963212225302246748257979072191728828293105893908725754454130207485378038982871645527611331868447922577391771762185907931073784425453276963536867608095295468146218477085127208325700546191179226297647315694672004687643832906483012866430851792747330235698872399643289032161195871999149449629789231557040723164438520357622585865438578580000715028418864525746626745300590492028054677018811742876123722119937540062117309698342433414761858120640954539231919455818824584298417090642706049685399469649635101766708122267040731109186189364605313446863901536200857548710724908105998069219093232565070555357721315393400663929800582573355095999294157694701069215902443721230975079242346514724881461011191057812277378312400845654753277359744074022205306135188249594784169468162757659907551583113502614077504475499272623466142755179531091390335237858131263373364882006846351036194281544129799340284857408873139977845472166909604264971721623614687168372406583263371664277139700290461942434557134016238462168131555993131283247882140825176433014489676799556844635562452512512091714759259179097906771850490263168840613002523697220389398740217725584108865940642598077959744986630071034182064969503817243581275058727326321683374116244050658608232836780281684738617073210066626928472899525797067586377753455858046401211209372490139032205612288559523107943486156576581218559087908797189903739173307418221061055186550164072567708230614216983180829249429171272864730265766253700401573240917808650338090880964886697995415129762937482301659850388785506593601628091286778508591400911258957973583673739996650506320073480662716703628824433584426669454265594367369775636762065645286777383948019201547716522634185190555079292158648200282536430625817398941005938463050394261462315320521642364114993944128074720601014872051123969372740876038600804677505669898341323270837326759723810170123794234651823082316530518524364174799717707517468540585528362754714022686817250967888387726263111418106484148826227772557489618465899428575790154283354358243325704479838772886952014552476258524495887210755669045299445512763687229999376300255389901431168200723901191811209852054417907716381444627332787938400626339177542050724516921147787402710614069836511996947604499804085607097180099101211928637130086432198568989711661474207777432020951677753326941402273597918621798468778719908523368478921533010919986184739378436011402552891372219998806536214749778657380667250019958581080104684118717562968312043463551244361915064347430019628268347727038490617694403850748150224931712361562644327918705440009702688623921516381273940642233927797873450578725106781977117827128909410257123799970211110701505485507861371389783578058932346706439883155846951501826986391946116391400695402086570440325041895129894379161336719421781288615177124911697473501574560418380946433974652297085474691872554140625318419763907188693085526168149369878749784575305713056997387029269804491586718411441602155281875948172696976409595584580244647595516073403137378265490736039906044745192912581001188170387355479579323730441971819417908156996321133546262102186012429501462310593996216456006108574340529180090059564079330261221264622961312152533471725377372602808831048459420059135944252881991527594652133756828765536004636379578531795594641314913103721543163839250665966975529661215048687051756619995113574221093099425810141068874560936582062381359116872176444917604671350863396659058352601848439327097727412062970733988853401258901911185368138977909730638465838820868915057863931480796559216784302233092513014121699339476395640202627402985094079133343252238023644838500947700831966499968853273522446040188513411750053338994343746477628136028388184555431878815023596242804262361088210079267702119978000041657826564918980236426007245413357294580745690566074235700364342167458448606176293772969390406626411225691749486218335447897401277131562309537573441534587888896342812027052232555475316914412368376359392420557538228243757922091807040448528004656671333559198020129999639286233998490585953530121704813321118671488919471181022346722620090949774237706073044396993039799637886580802477502239786974109285850290367850416686274533307419837111639827560194910892726733142514657973210598890658171570334386440428624348833481805414819621137505771708271141798380757178574086566178707622121716980451464027860647969393463383906093784505861089187836106739996538368823313881118108504945208442808414804833956318981298791889920224516349945716762460120621425746429629833484558687705068836225294932125280966802278866971753886344740636241379238375970905735491808122176277541460057594372327298861432294600182569374030313354733572533843965275345773053000534661561566054687031687021846057539122661989012352116894440142673591648256965484139245733130190318650746066353458734800250737940055222082068661715117254372309635120963521914699078197120294279144746792256475552166132758393637629518890398021233485476533482477961366557875596030363188485192822288325152073156064682694344512663522939660143676414192052841827963406829430840423101137772005424688409449051975113472251831311795221562032435549995891738060223592539651026610068895600575004599312403449583640456821717120671364192188385030250821342545361763915119212796786284381380086376510327106042551923402804568814734334793257501021608936629414522189420940881670009056849891917333411188321006627695529655525586292345599005595480214517372810448559534971877836512158782630295513309576989989436606540252083704312395827571781168081360559698318460876332541941949224265289930028338449275493561094902209774164728502936287451031606999323811158255442219730353119533546583050493496414626003538436667369885691258552240723027507320875188211927768442007450900627498875291370665761063190536027744107934127842668774702814279415588842449300617593196444574096404737491682885928235156027562074707937168105534573184896468853358807141063930689258873691707738572444323643150810706618715595415286187607398737252095534296419737210529824324175186159729385366966752762552999721746475158552947561602958433746064488954298937944178780487525102702821380927853038165425633079540164212705774146427075652145077282946234137185925547161700084600368261999652392545569962927016853904665138530015959444092257066992995547425279536286007083262578944657222866300226227535336726914651600513029007733566208901065291345849403056261584103405887961013799912080268599116770834396515318921992833443545601611201229797675063955794868012295796095923413307068466487709574877218599048023923212924333015655291401445474416228901489415268092236464733665331703140658213907844473309303672887729008214584365506712432276508310299162832896903836341197401085715605073753645153141149351080862902958220040087177783558380182824675245994119889144578681832280789118464726229049393970991614915561445707883323091331836776231344498325825757378284414790603296070838589124545793526700107686294657110211493182072052459907582723135857700457074166873838173905005323586050858606326413897425421484979224913763993288942440025472051737349559252706624662488719080033876306862616855687327806229506766414339700633441102348229390834640704821254154550627007449127205453622106321823633647902895437083096638308695973341652084684033553903602744859355703377420365996261281757458458908098242419808013341827286079990224083985705904117420432384115423257850848078057597024627581284025522659633748820990251194830993475072113677359300001347552138543132901463566716746437490933478797893062737336002701090923918025911690155372516972638345897403101875859472390795548370018213648682710673111766624997471752440897456948451414370482639417043117362698141541565166839060220048476928601024295910530195775927871117403357843772940299854052916834994900197642693400220873562548914683203541422688918385134591318593068455619032481617327028897870067086365176568060965466111367351174844070977727709045311474926794237509157197908328388194802697670285339298048039187653884800415221624266861724013247670402363956021210437709527283378319004050774583725483837099613677859327014275255156355563496010378550410114289048335718986416821873656885193588093529366382100096055552328062476740082274030403343778507471303282235583151482163245499324311641075364679897742463713586417682641397184091319816850619765217335605676017085192287291377962695284568626629687512841929970547378713765335177135061756644043231062979706476840500532384793473258412659520101227252682614624959202773840044065857381622595702468285706592445851258365683635688759547726298028446742667084294814636771549979719984726915403132046016455100430690405242829374381965490271611560143082837667666823902968585198992580973476325934190531688858617954370394587543120249597220979432574987564896449730000393609062532089940016399657372560043836038836699042593045730165496567403354746897640110879215445946825710640795902388587131411092771444241500710180260089208980374151523708400977358086734227488323555523399352559522229765203724207832497721608393799474149595864831296562749301735967068556171252462599781433383403183606383967679766158513293705921543738792237956257917849077157012116392575774879873282223315368850054596968237219713396740831824192540891455758984002483961143536426767689260886912786655641551402449832236930147275149095603131339254749050280634942095825604342872743638451650838055574030314588195968983016082652501783649295669904288046331541163598513451585813809433143407483060187766888452510716023605335697187998021496174523132821233287113623640084472347258143509611825249657865356002550761224573919923539263235423533603589077002341988921440476230441445855264354102799224828310045774488926064403071719867638509304327973920635347300440635255219882979268256922964777915506508969510181188258684154542161551865101842538188711294319719174904896063488095747661950531765530651608023567055604633202305803588554838598509589576425687574636310333420005541975300556401199016541723242955329919754903370265220025112025450380418018000944736426160707866307025576848966078511986708623526182520400596865956396074079923742664736615769112951878486093185922727851800202917196383386670402535801215108087616336041378342782453204362817181561803631618173879875656706866014269173978945221979696462793934762369244274296349305084488612105458039826305813117459764253307865415008705910468944446417019104276567488330072392998973318094016470720437384070536765785523938195077964344899148909152535211582921087859317749269197712887491969007464978112126823959720143969530128903369080783092865177309806259699946898302984050762603005053070562475497898981283920185492004994058638183966626829911295395493264997244223023356006275361748434199750910922359299666420898383212756530722473389689360299472914362650900837855561592901486982905973779130057195552158839737538166579583278569124360966990577047051061084692066836735838333017206902433684784057788488044874145326682525800237636832149061850190173797401274832248686555496745643815373992327400384810326052863959489409807728747145945608903077727255709660959201412582341354929822033156425081847074757893447991759489444821663813312970678370971777422081821198457905754175919927984046915115123657861314514615242797759030292039549109563326080038301658003651004243104345522177553613527055625328693675197542407621569521253541586900948785987825012654580069085040615478013586577598056223911875640531789523317842712609819888648553240805437935644229122067390201598838304549591365558223209404844865587164453869702462382742584697638400820142818512804089386126374019338831188194239967363407715276408799903977266990429790089090757157880706633374930427638382670038204270861089017704067613453089493821550451242340270263622767483198239488803056413156437902126315249648142250333627013190698682089754508558014021873298533937183544846578184716214532990698169027675986882849568962601692746181060611829416335247194011393976658362430160192715261219374961126240992099838910540456868754313458908675258506832779975566432554435747573403832111187346265324917264436672740123036840373929250831669221443744190312378624192906122892399656692050445569773046728971358743675786107176281863450486658320311440650247588106986135637995176401196331562587012218018163922926391108306766243748294593734686317691515891935957505225651780971825797748963397393865280057547887290199247960344935274700947987838258029450536527695364350807283007156119108595622211977392138870691969445145929014030080038614440837619557624894828158850826163745566353413819234066313496227580576449733963683851069475379759008155349646960629858114704027093442190327000353097279047186540689094412369831384143774609544769246178989591798193611231935374412659185372710589123617984034893571982304459436311365179333434026305581946565542801051615731873859070562367223615955716456539569125467007385335484201418336963343234099383062072279179262402323072348562125453206508021351152745488893031922561306457828491854649121011559058962050166053634388111640805861970748294983805394927828594065159386464735892709186251076294526750047473489107280060906588060341738406441421120348314487953808159528571303794028577361196134324767954992606113809557739518775097980301081113473087588852562772101682563991163190146114635996281300319395273037494961812079019273120323556796991018388358509478185196964881955160718616047252458744696600748270529037867707716750004199070661382628659648218427369676889816504844959429637310174117778948969890622563937349617305127871030271901344341011825533705533590929801943121261830334391730605319557621900518641511996659427320399952256670954258460847117132512873987783499745095885912589092283244681392509368430646662346583518547091069122518287032468620936576721752603864696607648309053232581863175842200641407927656668286567555700039304645404666172104026256336556242077513186745589662461826851574250119686466495772620425865739292487849766580919982955982818299964295924265493515358268973121707474721560433033562672782884164703621982182786671111033852964098418468372163600517870319939494155022996063693659352347203553750448740062881240500938281003741968639522832210632181484950112965609530149068828124524183278286647616940268751356611842964443193149951922632824256208877569690067912398558802439610352553877446487672132508844422743986167746711345759656420173627202206805471697913323692872240246300254673483093499354341022016318301041552891523208639235879547613778301648340027354292772175522428141307970081267810390346523013458237792228736326287421547152271036047653143543074390094640286793130561717195411570250236126492191523582873075763419486641439907980502132198327032330036745419498398819320922060658198075592344843607211717784018124942741349069234417165162112630146591501828194653453702787972066487140913636915376755085742522379166561191002919080216369667149119575846026162391589510306293718859362419775286615779192415280505469435497696391147688826908099949877865107343547816616007492156540782446260183711582090971917116948087969408226522085891758504321417593028323235988058775520845504418502821702243784360191584183502116401605656951207891638612757140124937384696620021135847585284402240217758194443857274987130001866639908723856222722325513437007880058636922767034079953153345214415754388557063884069686736019763913801142851569564227235486788588729807213590240122635063974651677909080728017467352070160065013461148301896284090463956225498194372279648166707616636851744123865758328416967174182224845732381519670624885327675429642428925682569277354835586595014310279078635627998549611240370021295301762767574303281738256528165696567109070833373039348512225974760500311594776454402483349035790379277522927478956183834808419917090433783751351481196325990539893519296137058628092815108708009951611195201526595211956081463245718468553805038960870352067086174567979128715902852421104262689546101167601139691080580825780412452981107172677778633767985702316768699293480901548946841152802104756952423731712956425610191463596779762038288949951399833051947088291519821072355201986847780893881168889030552812377723485292747935479698470003124185387481915521428347128563757733898741418023941479879066285046298830782718429174226757775430380195281489594084408992149766241455717773581066022975591725010065786374473280681958052211194278531560484554117323698445928568079410511691059653205808264398932640077755702072829878532019510102916078883927185348118936031789284573855877427849253225690830674980441462597956159015754558628572693670995595507585885486378237973228671644891651434803067798983392676172991025683578415908131883379212174974840792290026018890479511252314380359848862550548982449948035923101097924553327693258521605200982194118229953856439247707598258303536795009000797213595909590985795190178254600784293649995114174696615396511546559845542278929730131542883801494272046340950172696484657442346391088011162775698407825911983935245383436205162585130375429303526141559932404038005838048305762082400125149008158460883354031499650424628927122100315732435768222721484998364351009303812247187381307309261869655832030105588073107244828610046144790235251107153741912841520506578271549387218075517005194173815936033901823770804429699271526204502508566386278917776334242750753090539984842358957477033606842880679055179776417212841798703530183260431577448276088306702766235930029188957872017091038694183736588556098161432323916049913313008115576794712993570243969359256228174499587175133869738751612651549563553199230141941195620997847417002707615651970910094065841066218434041086735400904845013187685279545572302928210643700364579768355257063860404033495138150172157912493399559794040821551806869834335913803667016632962047659968270078653174517602253503703393548353866736140206263881237382471192806600073881113478196544512367966094436620339475330998222049144670875958840899237227094297588508542492809566403224623693389262079121412152192759523139311388511830429053640132129948471452351465873190182210766934088677507911528746987066353757474525663024696579927221845383013396630047509799062098138362168942267825773617570451733537359887332767250033097586840849631269782624672986862906741407041219265797871636678510538961898650132907485959567209470179078436296217204542640215437178335422585823938459412489995298839814057497363205055780856979420991790556013190321085390307071225686348524216784952194410920122123128290509562271392043822760382752317646533257096484354846569020075506098539385583386609181190724923594512341161325878676410722555290604536363127774309692420847331405307032262510298983030022764580092226960413668529880366289658601110304350138045114023002409197164460916669351540508416512980036691387085725318684051804593418807866331933828808547374611691141209529918873400038496697060977574446329400129687033931385784882459045182204893625626530715230343686306721527787443839902312115781868018868101497845779907617321355776836896926989704001460730266384057222151463426380435322040000100675639360032010978700290173815814542835156507226901083289116908326761000192856605314358631538738669386759746267443697017106163746596876480377925538497099440788056359718138647288276337448088110438655508299917325847255713957970466909422622112073469093790298075906297480688122293175596056056804824388170288611759834569887239273940245542806746587599220819336992386251195592881128691791838618498640525241095674496781910866731006907032509148136858102126560264375968349147770041332224963840431653146243093584396704700691626720001243191245360869947332703268408601734326942711963604177142694881582618820378380093007448235974418230996477897867801948187497594969010174995054738249294050424817812171351469967334709511775338283989474893015199575516290843243819523650051050620688540626967998090964704948298598640727645409651738980116643728378889022166506834320115553321983977773734102055190850958338446411026750498899796896004167731528862751572254570253120419963239925458607423873715503048833294498787792834223638904847644172365679943133443334743676540713107979914764762935956846157807046806668696384902749445541080015323287390136434321920007528516075674475940496968174939721113483414457913106686822842212634030256940668740671881848270031333136299938982905158003558116867094184353929778368153644750978743884763206520157511548578062817411713121219701494447918158531680479762765208710024040788945503132353717704159593096839704833282175445318105692217738184789426574409468356242435543033850040903415407735313030279067970946860723861171660836504722207138891800979047553537470252890143281112706513490119798957362943914960252370243231410207058731659048801299120567700246365746090934186746880871567757145122625012443994272090757340422016347469087465473897247110552111920408412021738007815769805240682551170891205871027151128890520275449154354869510371600439552285761708046186076487600879724421821474327760059665237054779799695334776336439206644513986778042220484704776282471459873182675824793672317869116658733861793130872665761188934310252403602703254702026467363202980152462852905824892146740001801055065951643940265950256235521065319297419663684986745800774951552303177261070751497009422798371099303600108679026586464690975544286751452968515120064272774775209081689106819803252867788582604276053582874062244401076770585854105210074264125409776010660889300946152945695971658118453339855156194888987280825095978624887665548498869653215165808267191239757670993747785005962967884609185176122631723396582801335946079504398630459574312171597651974596445382962847934449837597980331688964301730507462084656776194075303120274773574632195984056371972220510779671005652794289344005174172520576881226477327708597306216366455421387313690373283626943987254460892732681197306183093524880554474705121501798866275575321517758274965480658807865737634503234626363583251625023534083316438922823342532136275634230805837983827320612820302198676392085221263651020498489545745430115216978865365810521703421097600130293969654405563821768481945554760841102855642595455503798026030137705481008734450328935784256875756972080672225791798823677913177156411499571095352255540972996063549912743077748388349470237207542276907121032466676363080211505685197702486914907829295036796940889696805018851804012372857672152773675531826970967847209948240936950211895823377427378458032132354131697105054867321316950550258061640839947642522935357861820830575678627775205950777182226494625061577849543477234019558284279731411103392615921789757322586702906969751339314017782952031504878173436610367295179771365630537142042385851543135565657758434531717915330135260675353245933044347317341602683779534034089950144334008553260860314368148242672259148283480216871308959078113138034742332229680116240637551969415295019786639406646299349069080784188250047851008712326381266261011767162384166536730283705142898089197394652322848999449719158202153278715884120358864929479320781279748820276253301900800246590222803901458650558786150384939433412309963509749397898887206040129708880008884386252317473204337833106710308816605976951006057851728391522989105731821402965094619274315041297890758701937080225946975149287491044989794698410484769311311820617202124181242348621833257304822486419094826343815709124125210483064620954400008546946023291163345601056699356557126157145192845992552477353414885779378828599492352277184367921638586413521551960447743734453664775092043969813822681505999167638649914234674608400239598116066610961560014572171919786852313087095906926251104624887533270598045671311626490380533904687338148730057425286614148485599670921705487064778976118329900013146930290702902877630607937419140774070633179400122761400341985344182332842466087918198177999053075555134359477814846465213546212239452157228299665470981430120887702429581364009517836600940589436308750393203983710971141702968207342156276403624842841743221121097758256644289189230129474131159737272806024150389523427255040643936563856391345522338540198571999885666292308326113208330352072842696042011946088274172687392972774677372088752663392619764443275610443588459179602502400302547629311674604796531752931203074704890871468502982913249308520561696116265058062208818669087884552438875170046530037362036284457147810039279485450184227456417817277588554323550510842420613507891609777774954561822869206392591899350034408046852949457682524427921487091183847236160871609998481893145885364955980633910336829098224074081086249279752118815507448704526616018851333695882350807062017167943692391977260682028403461495084306758834534222106985449308599245826388276805957497365727552751643909517735821242979825262436153381159886684651712950348609970581901921573127690007583705990307581770231163316778520419872339555844215347517051478431343156106555288456976757262021665370545992030360406964357147580005504849683638649058893476646110290026761201231473921881895579598907571492284659356686019079422550890335499568073913481852650892001145557854739367323043836222232652646840010254006555233838322661069717489540967102850742464735776645335878514433491831699050115684332028687320764294481123856047213335676105768400554592146532723366274759297727271099440852879388545874268585893581611433945259699700016036863409759345713965267979012902046994164451103792427006360804503359276090720860925669830680745870955855906553448746776737884981841950518955148353600671673510792351028982701644842037202978981900758337657688886311792403468692363281344589970363086831474024407237759622264956727461488763339292090298012133394783568742910833123199751846648182473477558969413999838916673739562814706232898185935463058639496678547315468003513153229128701339716602030687144675958222536081795870513886583671828834376888532275433298479626958669927257126502141147097029762604211549938746332073402764178977269602664199925496137453511153632122642435580358877079032138682697322548896695545985890895241817297684677262685416362079478974649243722229071704814331229039860897817718297968141490759057497106130052467504038723968699967722479825105864279843378969196036017118086513781475976307793137978323655439733309535690048543198223992964496542069883744489819739039753413478274857583627712152623825997980852891902664881147071548434806115944653590712048632127344441589241856068311907409609398329006973140156320708948707424263589691160663026220321855617244803164036405380648066897753494110899954549493504427611909039260239866755121318674388506754893748701950815191523363178390999531856564351814197661307865124425641081438283113096043707595603807221830635012833785785235638834385637997857819858514985804130092560828034083845341238780366089457659208028801915012059960915366716936058539732864149088909920743668714023359805739747958858016555780972887117206537889519601358121742783357432543410204087670145101548045612708007526454903186961788991875233740471042470750209201029920078618821934329191938049599841553703675966711951968057680059866688043911375194356551256316619413283941292577418657003112378589502737707732287768309556446803734128296975878282642981851015981071961830087384233380392892653448200762474139547335050760129712067150538157629158920170731893013132001800640671494575858620418364975334265450021179457039648505573734164247421021656036111928528370436793557122270983527237226905759973170040652214014389842327160887787398669633563719873662056558178243919966291424549249965472332264312113066310409184151623483472106805222052011164137623703180991883395461876211653728880009526302851652418565644430965781672766904656511135255377453510365507815300819142833689133553660067354909778255681558149292076218588726692116130963429085639423986516638271877632180745981753456661263200081269163839460461598486238356718721387537397127402943845409584627928938422616433329377239462990404997930437607924201248203495041393082072470186513242421545861981590300183888288447349584588305240478008901680148988393213331152154520460179628209583817347345827079529337129734782089189122872742992011406769643154902608987194375905289799381066794675086655299010418960262937102053572695869243332286448390177177375655839636631731412184086233176585193820511028275175010868264134516738457715217743167000782378720906829767668994381791475053940720551911151463094578421317622055215591506008685022930639313288220700539690121573398201847050839058451109507331581212591808139410924683388679194689497221125551960268062754292169548772972059484013395312354869289579687054604222085569374230893270081684866910097345952079986405629564013826360820735083616262629196962158300165273148341519812500744773768152248448589930834906534332893824972514613585715567391511868639638627914869476149958402035300828373846826557386843897997287687182759172991905816449254197051538901422063497601913930590746918281141456197066840053147102013074434912297817662584900997355534763743780409879476367930761129043317892513835102511994407338119824247630194276810061351045163229564820038329295118365609827030741002417152610774886754457672452436577367683682066802326106658146079104734570111393423342097013325978895827449216853769454074131292359821944269710570643674430252501117392375240842845222738266843516423033846057232368802731016379533191821221456479176688237576854860048444407035796141745173103373864403944884456348496497626648746760275134635393190782199872655347864470810991037050379076323006036199563711035009178211481193320723035912316508324439213622704972232648983990456798649982607384515040913511585082395518768007255415079823753144921214430721009234843474424513832839488223347885643259116507020596565545726290374683870658900366420657801899009638744133482783799598123793489272273504103218397415171155700182516482459745942482126151817632115731640741785818970945181971438343578009737280960878105145203826711251505365511042356104254096388621380574439070678368905522367500649843562204918510606115851071930101452090653393787288837076893567938435879955290832843776481554685990040302507134315379380747855838170382170644954693496948466132963082624361427880108243240571407032967460918303052723753102849891751103641751686417175162503582340393098754951445227259151836841858671614755916121210584819949834426728838549629378929615959455003507401598455160551007191625092487519586386337959593345695577222049911615356146803216982763817081708522674280462278788334559989173804032552587207901387133393002439850322728396366758199249464536166748060419729982363418392580679028856552742989793055661369426082047808333757391626758130850475996074071102341774537009340049694603015318154280187448533816082449639183428619916677203448460849485368714550691765907479296777981393023793960576049224286529644373347599497306738572278882227436606446282780859794093963375622381008681409158169079374132051062197086396575221660549759965749921739812788226643651479129498463903210231547235828502713813095902439033173952940312441313557974111611121125870091722794719230352662442267075999557381631869896133764230320315555744735450952746558193444533097426249770169853495359439610649574805791320798557566016944088686034859777598820615326603431361187504964805568223523363216344890710073832436355746045421632415748500403731504456053369733639871406147315317507252282513704475209287559546060619039135605772970101749810833350217521885140551378654975159796393615665657567463898405301593074340998435049980272618776599705775650144327236996091477247662941430928646759493692354176343189295685799069787281121414794658765483414086478689823900664985185251371933020926945195120711312664241082759370609732981288252105347938333887218063925356750652768177658374611787072862410602186114933931538391929449543264174580970997685210673405369018779523104008827155646270601259506595837038672229703841886546982010351577042619938286260940724459939108721822296270915930195474486817290958896242784839832735801524286828180221384583296463268224393755444049345056340981213765699763481457317355472521420135555957105431506302585487994227285808137900197289917481625047675502608091862206095980808914252864508235206497732417259612309330094610153681790451069774710103306806462332452306342527413611046393034745408053662227591952332498013700054145409648357690308881921037959221482124099445522605110515312651360353473314156877876660240745992978574777693740579033610111884403719871413350482041897852580841378286988534614647101853407089469831030422458926823025433526369225265388843708431353397799653654467813361113949358162019297462346605631773922933675892494224848990082627378574715786874966546025157409452205235699288165842572732699667615126007182359036456779339647151665997261647790579937346933183526835314544713057329563674718848582363654113487373150246440678090471805452910206255914795682207033922728214174980424760507251932389674782638903332151708362994063308173953518890581717829359724339908991104794545409037843021582602877322631674397250633142416065066273231210518039780091568853509752753570975365427463685795374886566950347995076481982601714542289958777217272369943709382813919071011562811672130996585527105036617616630708024377360347700185317451548016456436182845519388481934698099250970931946786280035639586820845324137201157026917039240768066959239036464093020822762378926946579242017318250610027444292551558386598244604552472381494167627011359195027145229225803017582576160835849137702761080140326318454788567095217961113559792684089908178569645439991126506655997136523412608769478147233593225319401979739641818676486957987017549896099260615313220425354863988343226426367983984561920469655356039278705242996774447398240392186163517407881785066480614139844328617004771666571504986864426996375592128093997368694983015832296138125076676233047971151336571751602638459748409254734707974936707649069904189639005899794158354703214699805523428369985997149969468765578880267199669167131211421914118470524266654610580183868398187989819573366302042318789365797655219699766261060642513946318685335150100835681776556010933145743454584431164691762577490073047332568503399415017426430036715744216754252300297673393828748848016844913167621565817687310726981155008754374835872261278560319694260314800908616963814439962692496549064240413281663143834590292716688277674205924404929824439547511113490179661637976935708446945160481509960265409659345348354301160691033867513827061831332030486145942298343655160111485424144456780641183435825488209485548039239074131331423083495592153020065589633011004674468861325209600873972426478149664635669336857474009249255379444511788523294391367680899451000729494083426842929690138215246002523687662302817667476464329738468712618693547440437898776002363181103623906830354632406719214584856116776065588056553994463708927413993231377827562158440787129415231796467288850461640199969088532354690847730107339776837276418969104532569655235090736239427540652871517280524957044039753288884337105060053942620145442812635129832062756214805572414949687892332652956962431328452309697336749209191907487632284296096390614406907691625249273640527526211054053054047300513941067535860821000560695848673081563730741829471640577605439864161001096500110943917451190143608478301073423618529204593696676020792176566429982676281071858150563564703767283607902401401996089900514360830202354016945429432913619700747706163742448985935073152380792291488187122598909004633406193776763853210875218684565485610967557851788650787223473079059216489664984599955490213839338618512238112883142520634918573294697052680895438710689912301220541122279552634682583941001369688341222775485512873671446687117233253434100393118209553685051934480194346456351843279015924676005480146745370266722325675026103662520749030705134166797099571035780355003479999754489863024483363796755826986395591799597488809959630132869708577393370537231024702484562026206943557214499952026460688278198133368838815093567767446904317337078660419291694662372939987460097831937844955897237078735749424281423853528451714379888982000244122304772657898772930520143353298655166659914775258075157992196776173451300603322702571426860703183088799117427235592497535795650334600863193049381549819838642219446500119097576541752509406729448470939602779300443812152382765181785785854305198563861068812355610801849175754926545854865554378583825598531570004344205246673992284876558360356141575663176671556247574716849685409610466347062598430457063275718583053130771807388891600828297969860040714214104774626973028486454853211894908051146523472686310034447571215836402242588934232876510730983960154972099096256678227269042211249128355879401288994096748640382152125973415733642228407812929937232304658565276514224121310144571045177755633982029283169476360366982747661501680281241095738092526756437195859173497607871334604306169805134639352402486100895531508258789036486818062006946334271322340180749454679259551644639209312327198996485440110142583318463427591807292070268094277380469975199122904646421977634640591324991673928455273514872645379799052120605793570508899436027879149050864359134914577020510806837243083714442462138481348650750304623963994911837947261321947160361849230372692426906042859778030856800496997479787047436115436516924534167390573598619254741732153435222263473407124378971255627830632310314509233934448904683351249089399737968965231173029601104689624909334308462670547210021453320454048449859696452476264292858070616075205730435335158526666098918430774401577925015645264977291510113880733033950562194104339837145664117247025665825495491342764212197231460312697884233867211387378349109304973531863891414180850929584044560935102332984995560066088593908296016659728196939964707545646474335932897696957979044396129267035686875018316484854041290306808951471010427082502628375040526920883207370257713340264790437071636136618219437335936144708277795671493115168920753353805858382070247714372973059615762844827568081874355761632087771668118283636273941177364992426732426642493772806553290132591451290309655371640762958473520323723800754186027614976159388315228074173357512363051907375129030376345378684493667166175493391146271698565915882702652300237434367863769059516764074814839835681372146745099656844380806217704439754394283259610549787113219000829569269798424959266869187252464233079527059627055078934401203711368627324693169914453847830175777455908832476939831424127741338295212482934569980811058928164843894085711740602486399740766182494495015282011090700830752521201109551438719049626889186958297645880032397977599458470772188475318045233038432330623408958698355696387009177472134964022668054759527725300009854319699089105606966707473966865129021883946411286789776236543918717799686798278020974394590538104347439737348745669339227764728721217404349525908015235893059188681477321737753764773122108827848238517582809786157718981042853621650061060047323995663962137640833674521968379476370831469351804897246421241782316240501175652977208924961361494375199943444516401010064708403839788041607444812361056758300048958380629615903004950573172038704556944049074187200804326540107781859239811798170364931388398395675729994662018999393071004666237662651812362295881860265198979925495337241130457223405413197566399788821282963362870004092859651810435799951188765568140807656040532138386057800769720060864181896968766715823619783999238671158786464263562758247953630876162624630941457190229373610663279101420129750644782441423319453546233999987468024749347150721579026863339941741371203037615311655904941005491591818143548135120242069254906207459632301891875536838994649551384125614099011135753585588695109937169080019721094849402273853099994820729216974752669638324613063182011404575372910395466354413614922581439566816366838462637385862203395556125299250368114696014040421962767389493940178781114998809832412884818600421710635514275944117318811809419285000912224867303642676941494334504398798538281532169801788013203735313602640883223879200474156439032699388814521859408252075444957259109525517560044416499751468527630027402949604090780004221209673510630487149493539926787399287764684341425344773070379373940872313995030081344664008246968092843722192619412113379394830998334296902340677857268847538774118220441069566514633990058189466044578149461281261433840711339730199057646821331555894295987928956423597538926947932096444207543590990307374939996002317189322968025108634830293327372916129119542329688399148479278136458257194852942794573937915987917193478520198188920041235009688764527968925429834063784505242957977362357020230453558936295292259014969196028894384543552917676031604328820898181403085828067243795435783667489003931890770305964758596358503998129499633088772297616649294171757298572679145957109243331151253696544001642044409568579455027047882012409987973431127078463831313487008906616299485223715438990777187001788230696219648965012054452771107762760266623958507333070000444945451247748835208715722093424455509225643946852371588218403520211105745696724626811651552384735249309853497640260099567689700138283689169220682957648224377548146375324125728153832194767913952152423769011319228323651701928821319017687547737998317023012878609371236297370737072330748062363652514617962446679157778384910688256210493333638897172427818661661362331268728374791031355059466541696547411115422645932731560020703604569235992240033548747731891636655127665708095640484116910090871865699274140284549422572388650431423761462740689382741778672421620209192837928706878909247879100049994574669635811105022649633026577760223337281219514872357589680894858909246387809196411542064421446412352457380573247242545289256813257588043508672099856296326880310267538487190061989674412511049244774767289045740094363734487297542310423592984971143161875334960157779828104919290834485877169752591457407921865813867334001917426912463360294371057708319719296677281280367955937279622308230942237615137821499450303562377713635525115825252698431026622508683128744928593567602106116343532198669013549597346551289808057286462301339273781464914640003860824768929572814063242810229301869987829097405615105113616781592652088568536491221683125501643669000993624083241500186684167026677884864051241028967598027116246246207191177000473671404870695436117709640725179792030585441802757342267787605437361404806568055605283909958526770355924607953302872853152529253129167265964798562975470788550224020187907082345360434870222165457083089764419107539507203345883903692613806684444525543083898471667312110991200049325913463004584420703280501937280886032320264803180962152219104369361561053772972866615677632335794572480963303824731579848883318586744211681086669555325169069090188203338508519903772832244077455073363604532483758140607520723573738270201069917430658258703742260732907754116054234939375154782620711755610119376350292247316647441253215746063989979818642901933250919352998354883165200557634198286993983209862865160358759921333327061736588110908610346095662952627694313921779183415588334625590244597442247042666328215100326394881596707832473280925845179545293670362661603883553286641486709482525849696708344972640684146270884766356633786342828497230858470570111249882880338870957523673319546152164384498294047092813337879283300712386946640895416278236633581544868923777225980913923610810536080400904197740582390889079474062004330376330597506927819257289577383041187410846188351872928257836018776530357325092054029052018988623129863349706697942619031121380664074456548780304394132807171245092283683746216139443727122829221653918814764600388477656860110281273145793435607498293201166140003127491377986482809309909187208413026783993450890275953306072722406378333766109700987989694256546151290109157010590377564702371991833818494915745797591804882855871215075007380173085471703404533153200245554897548935060810392161600194347743800632054623927935618438080606562595857194695790149082001040354253485988317056135654296362063878022152162421458252895748066632086861911218850251359022916150520067999139388724262960792763642664908223022387733209675182859950341242558650081007160230751798594326540979509567738936198147580071266915199720489475668816184008682861350134718193984171019680156687898662751336693294704881539754972502731600696164514247500985539772252119914167987013781744207909896964626558651878945312756590408572286701260893790921419917156561406776148177398214041004261178317482669457790984229118678672988549143789492333513624163476266963953300332448329753573823029359293079506338982975428194729800977678217794977248305675339168833414335207219220566625965285542420782792052216161655805685132812941317938521344132128030211649762031137102685779940199185155233761177231768649419909745698007108156870535893966810377700441766391965554493697733045738568794661282830494651390630113251691622909469032862911567478439624940356398719953860788474536647340321282531200217699959762251003952221048359923709254288610628063017200225649444292538364638307266404197753792678557889959366118378887923361946987378069974117105037834488743554417159525998718014089176290314643389962787241641042692730901157779234457962807192221995561768037139658707796029271531703917813777234765142575338356763614134408828739676988806855918984787724965161246246774645848474108579326225242530606622613773246857960329252896293639925459200174763430081650161775456305434784363608180733422028408669531123707835669387520869264621399482640387802288318509773054730059879843699880401779794414518177894255956888485794037045956813641647846308879494796878675892464624725803209397791352879242296441348891851468389454686546809685818078914546931128525813679782925907696009086287734796709082810718091721541728264526002558587063388476006866192934617450041146015849806189675613717618628627660616264974324073270101878490396739481632752219047225894970619050101196491070616393458720390284403701690833804251726412020731521986931238686832962333078005219533538866636217565948348169836467634790579987966439660479150472569083364986233835136371742527410981296299621381955861393353670628585538569172021657665378219600215103709003806198045553217014139937002859368900606606661498258315313957679776410299460010533342936262557935010375788804540369369442243679778545203263161748582008842373713538644442974594999830808818625447749641177306909641005514844799981119756342275362818001852538098203708074422409493395362171592368718911142312066815264854954515857345556590719618946781703176381075698746401502147579372352101904407572404102562082922563166079560157384575010164036916250594516791692053127730465698482351202277973904351867077367151792007231953723589213700101555553909079010052322617337464871591090494654770540310572140972194212597048973005994746974621947885308838007368696635899171853796493650604880296583192152775634464699127204205832504012183234191688010864038250208245460581364725510606290720225775212597348990263596885562876538373574821931584330079569909128913873802296167560746729046704705515015103047969046127488292632024356358301300403939267565497936806364166856906987259321396777224896041884025536878874073770364986197360801681255124741363635864991506154920698985468068874262689802938159182631682477209750302935738109425188923156300589264150147665940722386912282225612457832659738134262005738440043142929776495919838411466918898811375717389738287952867883244428366728262504098221068857338561780321563024489240445248176826115738783433822724469385388294940872209040576386770173725361140425541214720213444317412184710855362215110173982844045365543230126654587619787100918684477264015699354702006747614334656464263386929038410050393461145675782125206551728339606335420558989265183651124885109992358629678303677425064168741084093448739467677866761590921949539578527893917666170655522474439396107401524049810118115741457562947870780587556180063775906365601652864194784709970840144570142032550605263079906205797555085208182357514750826382906396642345248300559432388223315311889272352457945024762274469414081261828972012564633580252378131776432192685861214754216424191025419718524029392114452001525920687466570457042679737656033203749526727988972111068352669575420224337097009990382721126248488605562129593670775898231525462073983123995991681038491505473555465287907001588984775006181038120823119289017387129336158683214862566142905174325043179194692715416690621292195393046569836871382627928412221566621630644008480964822273761774170862481457784340873510025811790644347130179692269024260952510843135984453049505429234272392903701793179609622153579573140620169466086906477805801471490463569345092684197621719873338623675032632928420764280762327549072429746618061219880883052530605984204474742966694056781989402226282266607762203106493422493188328784464458393989881847284438966839172858107996488421285616613391597747187176477163910184631744621430821143277623632602780049156705685758289000792121222774194687754077814308406461366762808221592347795492693117650386975787857111126444599722509860664419567063684661202892862937770767601596557046016213807736141570412529925209791725110786275576755255773917154574881530634896349436099958178621934309535477439486736631229272834370330261092073489672421477433413309472455835987314479257920972979865102750851459812125178205321662182162553095287936605918403213682673415373205896233535313739748460770108495347302214063038895727621813177903670854117570100035040533275976181764918788684393680146995212329617216408456597560456794158922956661318889232747179622089508218779922179640611487726877034290589549699476531985684270068945782624444908325870607894611400484492272215350769981882016896568729716254289296182506421714280780890351399689903022731540235977815079009397550445105003761675644564689401939997854729056639404453363282594141127460625745839410062446290820347524635642051923906651307016687780931432623192629391564697115727320146292446248432904863520050551550271728767822019444112752709031785450252705055038245987660762017116042903069435241152304275167774377687081574679831612291286719611203784123464042365042133968990704073839790415928140131476133156612957597577326400251342943935881290826882168296100688608650603759686609211794989540570829599980253704317382987886862978785248258366321217281440569111314512198793807374328337278307851177762020268211831512771986020482848593237681553042381444472847176896295653759571404502346356424516204408613409053412230005551519337521410217225243795812852033935316400247595940335660563013924708739001972858077157735010255532735111982600268625596367085690892315244222160002189361130740229736436055015065600771777476700674625568007975535436554147768588592205927525908906475442549466222940160361770742994566398401134551211956939235092934130724505938755076766642599617891136018470509629545871005198741420412861799482155327522943991411954752586262120465335834454139706628748238733696652848084443440967035763091028578168014871991851362776494274751882393602407046053478494991207075545845058491889965647716456787394503662578883945072780364194787947264989647157570291020813401651150653819643509880934561501898346081176185807391189806124299085145990715960982485195038299214775868177348190673444927912514395869563884832401631614814621875438088429822268144322606079817644956800463263739781903500120562823387153234434825209191634804280256994659658080767699891680696568901703218606770119742388378272927095722571413135221491123496830148395215610230715104845142839952628679113048814272652348339573397149069095045533092732472759273481520396873772853442080631375113736418532433731593961393588621386493569904895696999800613198345462387455230331120484768436569757507299826652031976513302219358634626469752009792879114898694468926370720632954727695917682210453380246872296499924842388889744307249334942973017874441403043364443952563617274640903671758458938638684158731817745321673688075709236387524880158102627810830220236436989024427255930141277864248129359198870155943908921176934625832271039628530773818723978615837343505356341330329926097169482327854988242104485232799176417625363935509251899908458903050037328096647036740718357082699315722230605862601516797098261928478405321967867954051884464216966842552974525106664648872890599245494580210230970924033183170961325048376692324681881223518373944809783632845968942832294393133590621441686143912888190638438131024238638426889007364937822364150660182978368162238512792994432576039347583488010726711156348509024268699900383079083472367385064201128943809187687889394990841742226560313638131854782028823026398444977929886439591710598149501936450281879870108580241281512903053300892480861344252447830128041551050150261333953289967323790363520409861685972657684533125133798572353197841751668969229708220299296549665012663799716174541581245255217940057782086017368685093798272706529124668285380344520504839567496327228879008999245024787490101244058274836199167604310652749264712711501123254833373506398763281494596732702162104329460647249637275403868742560959127929398777074813458837418788160929581975191305179613530522108629429386987909097124947085145820885809271366148383115617432568827406433711402725663999787155320802901144373707342463762317647331131451876344639860568817463103654596174433060759923291459700813371189882514129613024021232109482201651008285397158620368931180049977412697544655139684141074655070222380969577888420300753627485248132486096819184486172549874137185271126231877545380717591818409048286377580308432533983855923699795552925942020103754748122938331635151977583591424504906059211298530801498503888862864233086909795265948252696793669109566061162481989081589161931831654228853476859746825680420294607839281331935629059843991825669157329773387951934669850216756063175756393408703769557564465729528060057962544340449712085732320868975573130653275369545955887577878436183975816766721217128896822748606208830351770558183289283959064586478495169520234074560920387313537182348142373707773636251403005413240339907770490194099192210969975828946485403539004118939559360578443007857375051244893663233508507284898709279803620571191726724199614683087963927081105842651406468815439618191882219262726562969902413594856746433416358935466689323065052971814831208683679055417039462850898818796834593061702620576340806206089187701607794194646784872244731748362194084633446564810251189469871521098874593772350035108111439777009332295018716650061857364541362770269329035703988343418727341159284574066910943671179155364725060437074844447153705336270903380402286098270817613177740818623550419906548545473728679373759572917850957524743675659860219376772142239055749015849466277286730116055516147222981645311398761454182398874956962031463548065782126299481087544396379853028668134078215618104814014159375402808634190143244000319302086514448196400034784389238852343169156796886181414463482519843621697319656492105677271017405260363272169038470587032213582366598981158579634115248870827056722279427441634661158287395881612840052890440084445927313424836725632101297726935273792125712410550428903480103524694787242473374973655846686563352692528861375548418464281644907475435631817797465976293011992342968272374643579652371993654427918596579054164591617993861514344451441791875809641805490106553571291487535295286848869885656392642195459763522435158651036254208849508463007785326233556008770320543202171224567961578331082677184686420565306569132492263280549842905643561309916494559281442139525700578622679439689463038335414858166761465717059545265717944788578888794279362432441645160926036411543801688536435856090926153146305656288079721493750640493624024211949884769968021041166953427059510703793498414849274362512857969026799370685487536196001498779292799799115629555238963276183827124693602070257000860234217048091293342855964154079210398469029122655756787807116952257117932350653968521423345853198802161231260607807717469589776680867565909285522450427007200920579404375774086464982614915485026546558799399453746034693972136895014834077333413695959386102406347217182612953563372583492846919441206292723815550291902111542503866114081691419829290839275564854134817806652824212349863735184726943064900493209406845152084443962427204411703926141343289129922446676586110996272067900792734354133899287565344466526433969409673616342720159042313790255111403058805303961753636928427730893929568464358766385616669257541399766675252551333517937261398459519707440735531096119103885253280144213873550788302139103561115379303399888401635220904639534597006236726804258723974063673309546112735643544072683429838077515974125715098812135751392012903536954508953051353661468796149732813234630575999531279059941098868188324819746839277080889417200284432134705113579529744605156999629091945211969611142024762374959135292590251008174738302637712520069264967632662838055898066430210874726686930562729378435360774249711796457518327468731890980759255168724127848801927950754994320150550452860543275328050512132122272169762376526427761770985566888995855639435867090968640488493184275668811275474330103207198063286126998220535067949709722076450077853737514789397025068475852015718600273919193889615865293439887353306889732350659695638286748719816554854771890437793334287848042476438739297463305012815027899417371854820663839076457179823886429102383154880145787517106066093953696262061977703309170869462794070288473610971122542511532646889501276353246271928691819813422025152384901217531090534992243180091300399937846107891490289625754311111038596288504266555925854841742744152290229159828772013663049258477179580589604147694219726173413184937149433939488383653648543445285333652767298031038329546141896207359650885947003544499614027157302900011389492177916293353548553737469733265243580459900777815153795600226932049008873586828398533009243213805977033085475193989314377066827705923847329002936364879416776493210511242651230140581323897930695230104492532048837441189813596689471781324789391963047457918600002118234981471631312089925019518048132972977024729366724614854115821798594397965009577967985131596136269358788751731611361345043487396381933610916415531920210215889383199892551750171933202177447452789139778061349281412926146027255062684462507974270178002111951440314186312879234338371306904187391820882934901236075335449723649443287488027914006904401584350656671124467681765045208998246545624724301514717871249987085586243375363098582853550204494763568987913380971993013940499733292353935862234129171108169424245150187600000467023543493404679996651768629624927212805602813346653048260785014203653210794391315090940066100191638155448356338522395129130652264366847194190167583203836990652620091336502907648944191733909118799393791047445837667456185201238985967904521388026460768714977678824896894153610558807518070910008426427742047100724202483780575422232231353769490810960353172156494207228912031685729897515323436345858894040064399314419207682154410511967402564026819780405038312471406173259432047454211139333244204458439422655260813975119028417546266339012021683228954453573397873403824326278227322753453462806691825974339749314661362565552749257994429248736391602719550561405174577834388254358123487963802799096608533346957493539349066850614792818554447449932496981067213479213126381389821021671359122835560897230965422613979070476924531548347226672026906466706406675553228763728938765561171508750067120339878765174048723565027270074927608079242055920779057136117942528425706162293038599556158433415950225090271409075556293695449642873543299215296234158208501824718056914047520839108853756039252726849100121977207028763099733533811123351802949307321873207629934456991662250707685161602387529217725490819737582226521048494786187136094809619454262352253028502324250940266854668770917854715089337235012394329700003758825360644129094474248594320942347803902928133122982198413043788104506698649965241382825190159628127328975707025798455017647455372247272591888654164952100121653713231312319531128923877006001369835527521612136105762519999699432584629747911776024660483042664495551707695808025044855870225144717030160882388343080737384237069617839064154122396273312549037308244454696834165407763361078839915591533472426021191531643194045221507782810801594495870537492898117358455539869097781275796620658442291114664734841272480509494245582514752640534166752003284315524038975483144863376238887936476610442760348851449589449913331262667852313589743815535872718878631593389958781827831744372210957473265997761322475651070702695602177339435876808777966986407240716888080984535834539635756908190005169153490323531768493231682659442143195165434263873048440290043391934007067375891083618846542530503246706528627983714773176351519045941070268882108062907358606407698580647504678457908200484694561021152492250580669709636454806473270319566502922097550825088647369302596808600907850491826051934625457011904304550886656821791387362710264874252115817426477175105358157719200928438595102123304246422198402668265128633960016347913270670573798472237177735030965452088027663275417115582077924310129925144169137826438629128277022383389996914546408325094812405784701185543604876201724821925430066834903961499352858119741830072826540545139428475369917595001588500657764088672852159960158549433213777280579153807778352137442995594591967325043127680725192491597150269016831771370375882286417830674262002489600092153230165695356682105453753889930914731872485783028204086143819146632668137925879459471731913257013241894414693867184584676878707718455747415899323164835721385677561429854759602591208096998449304865978504219656425482549877949566107816872917107153889639938579381651041427124496746851320827646712433224502902988799590380931224090043579132106524687994393042346739032877722911336003355361963585615408059277135741925135318002357350336813359013937634474727823565714765573158613935209022486814824821997034389658364580592307028694642701100480444149976767726778182304757389699121964178185446197195362837443271009318645568811142133746556169484256034045168080345418814276719630245293870259176469690351450388011946372086289937592531486414689406448450646150261197583540083116040440464472528217681196864275127291846027203521565199983173060594368938247961051928391233620015550124122955669232807604029064892706552198586863913807966332655288765084192870914222082628317650805562385378322028475254306524352441126014549769972251308102479280131900261815804438344391656122812472195789621747298150177093958603218982014303625283535283057588391966828470636120598779321606849337977940290565620370924466873876360771326462044978790037928287799602672425660151320878694579526962821469319786283802958314741398194841040908364406211317844227014111268106458728607622774335454369385988803677085694980689693738355157858515821585154783596395538364199912561437509534043055844240797744482079513152315663065839879736680716801918146955559676514895096363762837474197913458850913243778765641085082174007685054665088332256706981926164017616138534530847680933539763901161805823449156662614997875615702545066676279406376324577862004939079446920141195748157695962224972787635780456602589470919561110596734943784391068867710209194521493684994402064954696221539837203506212117300021947857787307576283318452777569324115172984447191665917086926470063357207399195761347260929167930301033001572087830158141585932569897575123127274712907880165055963670812285529608385351023450451193579408081574224142302623584330362027318545073994595081674168478768507008390584798251979235176377201201728192244353516121514818933668262998607884477029420563073256295008337763387825387887409878530074107648900051480217572553073108582483938377103601272160123375177637647898933863218663827280060458891538124912220393820393927200225701422557229846624710596812436977413354374892334002130643552619649043071188741019248564198385193422812553138391272308156687986923660797449825687621196154955987111268712158823711844599802205184775135878188685484402006036323849801165030652883612598003592251349755836617270596097314440862034895024393071681674495853639261708034194884116267977623894460842717464008443774918459632562528096705649477821847339593816290356432593875268697235511482743342858364034541508308215292149315787059561839291886855499283810632834705481943695080100494893670880919782673341431673625094622844190209838967942275355148904051503399878464235909848680818918511800564172510239743990021835217523558510159349253913145556547732092479759899171899345127489426845604831235198793276353053330163694417473906679949720115454042888741221707241045227727251267388636183629565205876308397837521725541291454054449070855526772745295911983451550235333968052992719249378079695122364763865589940467108070443720949023395401225097165405740803876552885962098750477456031051019714626440082084071426092756897332903946979167162540207778445485577574899656569433406371401993244501636627596654464989421118351290592907814487578997873749507712905702559315250790307488073262644140298393351775677775999062096157767723825005566521950222929736867472313235251110170093880172846872031595906207387367014763592697561220711798612769345654111131451921492193199385777450713752858747716067343096120422036012214195950242072365811259900259068210968430503349048683106292530098909012324481618796764716006190655280843130132206029405596821130905880116366105164845506119809636060800563664769675813855291683993499727575625322839917454727812317669815122379196288040150569061485316726008235260996238027668814334823293655550909276919404621691668315454738515657070004270152103774827051601258423739914326372982639345828932129491713653145978214287046304035428006382779587234904508245079281887427976952762189896233625403570470773863755522140299941690987757249495534899703313772765462330724795173215830892266990024377542918150893731689311351073539581429137977573763983792056935758827569628414941060933902181828281040759382956950338381424226996255550710004404627148339799348317821459798741175416384161137718367919287591631337888069120613346765830977999675142180313314395982226374745598109643809934114559686188380956703455263185142950935278504940723232137659591103818470081958736109041910453180970722784665240940090045597244888616237793955227204215633924470595419678283035970915279535987356109854407231680505690390313129764537456647599168127744360680387398683718196848130644450650635817691912431877019847294714502225738856074700316258409955305113166273722244352167223108838376968619945300338573001340258424334054234064681709936233049422486884086934251138087817864646943885558835250553835401698247172737572394346145458514075460138354184398440303577558248242800390404944440074658256480586529113656640397430306161858286494491013293824050142725466901571213926374830193567661447421667157714811893431398852081290841006204415312295468176809863775195457138522935841122936163271274878328533147566378003433552940223039616556352138129399499484016373389507763603635379695333413290049209496259263886703232208489506801629818667992881365956952760062876606747994400634504728127752869611475395268716579822143379653669016926583776560114202644549576420598276779640258773421386248559967699668641176257153718145954265566600414593606230962099218952183228422142383398914275664209012895536051883851339598015493363531082391390915929202988569067649742508767534960359069030942721079589097523718292409160944486369604985541308437894741983208134686125750344647403928434915622749034258108535477908359418025225297251116741732456978188184870807688718773162533395459749134007362823925802674148154255676666058170361319192880601343474333258600546834322560327582832757327140352873965285413210247603560186216339056393163907563623395119076277725943435327535287749459136586343609109863658573132791666964935911871255447614661660079694014341580106731633848264823706629743151259685047265728784257128671240787211094200910149998110200441380076171611168538324091557351805340119716009487446112469188552770376373555223787930251811556744831939817850208282570786379330237864649143998231327437382020132759412514878557215368093240322203573143079092637764499654158901071138175299172255343746380757258275510206564929877879966478306480408832898987577044940077129235302760464952851367925658854981754207657711873025436420465561483726091632038503125709226291059700427350649438933922830395654190142024088017939209832351176723481409354199333637549692633166386645163200840842330436500077569197196157561994121025565181814535203369632625555279823720520405752920102961112401335119938688382015907177968549780930703879376157513181392288726969042566033373601941362029404025094475394386096520904138446472523435328528085359758449023746267184171126378561712346925179911375700860942107379613962771661148990347100581507455929394386881549627386195503466953265901526031468171847538263179607139135538989000203377508862206328784109930674784494911214168234361843049774578488233538460755278133029250256555049037948592676301837228249492341496423059825684140096772197693339365452607847214168970662890777597606207358067509523648419461800148548384199137430760370450605961180013193283792207946635632247917540753896639726880617907372144599148350466946836115497704116524382720173299954877500233413942647934555729777626353616863362930028323381220467054285863439870355723541697146447039948254351742472453480169400487655928449710253534468921303619697616887912349013097772143487868781780686241668189886324491265514204906625948969242209587904265522796240659719725435242118265935809500071997054191344874446294067315393535037186722113225596665384005809036752638146265179001108811217312441538810778234244436580847766754854133483091155757347393374423082227558756521404816446561138394028322027708927861855576522589899239675495725104177752074179648441171610629760532060905731786616738392203731503069628534039774801063114034298143694111002522761695000626305130456198788109469221885057557529323408314418641047507219442794245966944233786510685323076245235725723524251541559507283987522002697004180662781144080283835242552922556018201522570416121351988357408056028033114270082276772074931220958592025006404054050063175993994039096282789961206541452650761648468339931741474231877310880003230104767559592897415093577486380335650971805542937721489366578390777525338161251339661724608530375833630816645098016695704997337171408405659439545099970891665667449289329670302095130098654522804950805114068820092216975777923439294455106543228824067385484745531919189781730768530868349981665874655767234245482896296622519649502324651413923070275778652040143068308290722280143811250366770469985749349633781506939008823358737674632636047786857756735698265828495994394977647902234795831145636168222941698138795906454664978323179146233152840857838498075790575308341835090443015476390510728076514145997250089254336943494087670113941755933669063948909001394569062589889256687912773237788219383578723692065057661261310789195131664529479526742249801506405340716724661585823514704699932940989147499122120681495899883681232635122202791163065698863849628165948974794713739559192415847702145935019632827287478145827565966068131041130802495170939017237547137608934195862089060430771549734614248115731991257342852725033416018553487598829753316595733533145664175937109224019769301189264081988964252738234567612041712321833402288752824878070931296360429704370714342227004603294650546280337850115636808673963089469132408802783920606515255954500523924117072277533363270107380100280788335713278955214654773121515263792840730927478587215732289190349958114185508091560162965789922476862896681381647774110764130214475229310846943652302384918466280859115016484103613405075400760991274051497540994061277556839740361932538291923270459178182446355407137605644740240872285679719394560608714324486015544121029854691424427092712940485626362642527735560654332826753521738602834035458975361890623375209111456682943349901699560279766539320075573495370913063467292367530667545336241962474822206642539695748504899707033245085162425749607390984893827550818350493877948008028204068821532432650222764394026568917577176842735874687015074283980440515063522240317908507385521736094447526800852169603767768993418892340887197027410551943680309337953188919012740440496675406261658952857220227998797320577331605878551655463244791840889755244649303571953964123334325666606989443627920633851980085891304752917339741602914852294738449113859204774163511398841789325335230690917905859843478287298271929522143267273437311302766559339784064718386356743693605870783898410241817464242730357074921646406350209557420781170160494336037397492780272200349204144404439012442877925922158687120361837910374299168978072855223732836760950216948578154855410252754879109714254959663080935183069859755827861819940922018236963142643915185010780452678084905401908356662954721091240452528887610118940176148559690735415065989223905948006415884368100648119058149761964696970272286745352687534787687222116672385977436840959043824173332812199183762638026500028737630114915931527432410337898061314831503856609242472953427218470179864887645797203130243722167170639019156558967753852733107318467128182848299631121013421056302726508468907910210249762438606622480604459731194501642576096224986425797234085263790058840048394219699194764379122741032852091748348102409740273584602273164367149814237310351355599377328532078176706874164390046447934021122174739864330623624397298563555356610913416154498074240189174628159584116187937075160970283077953244584882068323185844695588248474037542880501529899631931519750218201231601455980154636294726858829803688739870648518766407494700871755583010283476179446507925985128253997998631567702287069471615074882576657063310938735715087860616568173315224725055530181601759164697979616119098771542724929554972185638355602706126033614300564438946776632107884248091066651567139976512168712070176321367847363430525133315730307501219204817576743452098252682997878507804532738646419432633630114721681711676792003728762370968079517976120689391383209877135574849944343063494077644674672994852193546171671496274317621255566819710790975373315088206533735442783496298396914630615808052643603153751093604443442340608628285764673200508075254761316927237481295312656619938795016346068486080471883010023586491369512910026623196361276606680808693655596753927188647951569516936405296785521976002922370920421599165156546419256185049285945954946725491754368599643932148148532932665330061214475689156703092638547479523655086272712663933876747804332302956544001107913916429471460553329126324085059574431940173901316384207130896294879221226947113187617343371981863697720961606562192291040841277311105061758088738500559909601509369253217381767859837979318664906054832619082874857222424297130207428360050962149624604670930091740321800796846074887785269369838520495486650326754513474972337014559464087104009601648394559880923871482858666876024134167712444317218877328743017788541634456913293608010243778583423755716953134155211540818825068091736225353381423186008241818981338599898062953375009829385367049295532961519185352327802677776798229493394948180493960521165769290400354845239931011266733316526564373828066241858239433164836135738804725101435666791350858017326842007750037130158779176501569873189727924324160416321892660701117630508118472259895981448495020252310490227328404525286684498930474386110441392894976786625365355414819304259209556297147237959435032310098700791137653167962503679927002674757066383253165653822139334231897542238359077300585835470246351622558099742012141590794195105248147725926830512872219998100364608736877493275698381889441391899513004902642041234826027955467754379368454383950428329331841226407287999525365365121013574263283166045022363459732467524628321994325706453417689473836186941547115222963493061474574949499634588716523291711886746749199354445969867462794585915555366620807379998182312293214874497060308373933981535041009623849678261552769517830351040912354786693624681657279457610145024904609771573970287551598765701971731495023877633493152340226410417437040821794662770880421320542861763084013769839006444780384231755099345977794014657755567626014876249740605257546165696186570128411750886481492816107255659973071054163873128261431642962146614321464492563898389421728395116922802487442997270513070608041949511185385806580866277273414858391284773508143365968053626952367905231558639665138884413852089785636902841194129861533807160797048030750098624439705108022266797438341874256996026712067943637057107153152613479090936677991925582715958774757131102931916274210575114975344008819310214803966655938376388608637012462785120170815485620506705445619488561653074690579774220482495698037462771896713101341892856234274982101520825716634147144624167240814188676394676515280666224980385811382469498726872249824716916049733443109147237001388917020699574436918945571251105273819203248266208442663809480208045320727759960636132154001535660140975866741197340695369466102506306255318343777082754895670626262186876088730627755630295346880417746410203631861937632676984727519014675832119225939902720576479226394609328399453609116274005788920264296644207696985746553861206639089940314862687053698318366745778524960467605360104464664983577420948537702017627436150817174093246964947144783265381529314081327555049612671960883206728097272029892969061638905909506708646705434950182347038046594766827320315708731801941841950429264992171735903579412302643556166663174531268304584102739320645299201012397043154689666407633873630515072266530711989046495672311990080377187865979866111199364794789162889465216039974224268666638933537138841755875864678575410317076059886127265705795604417853555093289964597501670928022166981944566582641003166318621607349477156648659095780634893566681461512323277736939289788513006045926194612152507506324787913933870432017338013673561285964354348620874590077905369873026047999462716303127885540719377289944115403331498427833901683138746111186875142858031625927804961355675156647359205149527771467047671254691740079925519980399331612420073263662043463947509890517189217947701022819842397774909459194126189536427477275146857592227471810564743016108508785851726380305434240453326956142528162851782837002576931129309696507166752952494124225154048804396192261568890632788464037417460779684255883246684127504239525947898510493217050819870777033468717870239911022067592942461275603032766623585171984071403207191687780200464351823218668416674262142065315953219290656609103791691006217251016091236885653445580847445224363882746060506544051716103345617269222413947988782323118645957542943666374172382555573840803569417566906316997772185857257141189446469534466243228973782178386337725063540496223080797981143289443218709381087340997567841746878535409910250001034875454798738677564134323075468571253826493401979381226065400006738990674849058549173790471849250039343707417786042890632262198264039791284669433589064200796441152210591013120274942366617138591090682145144520263755607671656143854316846946760516237984123115406414017264018777164260275681481285560010838076129642037258195310947998842561812532851630419513800130139973354197275325806107548109666186716158879790365364920537902957594367122426465427012194104193733375425455387009846744439158689991472984724353604706674157796358412656387950317691474403669450738916774999018945797092803967312855516160196640305948232915836630371989150140198447422614288195203175280362123234389861979603071923462012981507226398497044402991032258808196962885354541028076191877974031066270049625938095932399345311492554098652004099328023809337941273816616378748200261139669411179358900942265378454403581599610498286225487304996482070985723246876914382280019725604447190004922634060582684423736771095107367846071885231129245527847319461247973318496200473930799119048106827474338631414859905595272682841160502660007293108930239336570573700665666569563683761656855947691239942780068226414713791095324286923121861704458660016509885387774696681134619793755604762491662234273329624629694819946102858522334155412818982503678521163774193605811278508518580473086828459069013189519954859613552930869751728307270247994562895743459226163575758446963147311150048999172924914955147025368383056484106085919742357030638007168294197562988420560423075322446232681746015298297455428087271108313316362643037408668412931568636559847214271556085804287275617778074734748403525870630170335697161825453178373698335724083167510395876823993329528733077824303076392959206714820030057961884421337101627374440052728903104365179968510762218873787039871482330825939047389455763383841272273947482106485607221645215554748724212829454298340040770841897152972345369424095267715864956276529203149765092360867502408637332080556569183688621988230342436999583595011699367045285729973997624001675120499749379418796946120452461061378946739265427457523876558665133176481917103328204705489980824215406822081570385252048110658348709415270195872176752181263251276356464588073526505841400420815183393851232164049734362926920618272008319850254497869069727990840850477908366656541806396906187676596107410136994300184407298100549189163887531774720359867397449785928503822645375685548132573907052267198342219306132551064661602086995399618106439671784425054108508574265140119930284086934945062436073248919364924032027837150738449392287320459373706225824605430686192525835831927471003633014310976247562428437676576563022262458150238025355429850796925074314221241034489450763767875126854387825641683478776473448171522326580052354798298271970984153111324297015687720597134475166473654915373335747502048958828033549041395576429459826773417089527897344231330848072345659139069543876869030443307270914278079240744255210768877085206801783400192425777597193533630311961354635506860665718642959922911580824221527894803231221027390845111850108758877136068013825785616143308115211784221903887739349840121433882183684328765560784070247054968837988102229765082382981533294809663755537989498668365627465291230974151540260940577870439570203310968351438124783588967550862914476657306645544167490679942388362040105497844090723939199106353563983335600258836631364481119560637567806093761857778851903722588955915790271803520151388249349093350334516318747085200924698836735555517177653730686788140126312097616139687265125245385929388806779396259089969658144918690092540814140652539054521687481575974319535478684604000383916563690520425559151290041823802591355455917120118044406151132032036872910307883067300008588816786469424105602169391583481983096563616628533863188241496708205097085951180900493586410426058832277009890036768118877712936284569521422380408153821996109814476189998044492753036944195501543771430740927829732579091245719420134371146729746407402897908709276176275911073581253963633289778874495987904954763485824176789100451726623382435928923541920569855706888884663496856952218292253324762241822236823284690722659764461981972899479359692539376890810204531736763883011948201593452278975749166792814411148553088469223143266300266726530260045102314167945975514867161033423767912042125547069221865908878181163809149399828924216941901479633591862711351988002830072617773249646460495902113464328112698802048064352430649219285388485475991003643673767079279032989264827484661989831008061768216859866646538194212746483123252972562812088323456368523881211585743397536643436288260617584796718338160234057763395190915407293407191215719327866282710901745314286062196811429373797019124193538808068571068389811718546028655944058698878660690853630298430581312977319455659657080070737184474131459634676307765568411100351606099610555555207443031214142047938990642984669653849890669413562537510714396744828936854563526813963347662281725452918617997267998815567112529524659096775229653121414193428258762837938232623982494896243839625557819215048160506797618396194626822114522884524448198054670444947151934098828968647276045546740162770165125432316803521384470050188446952171632547479629745974523281259847704889954044344491554833485061653531317198128636556480133867712304424005890331807935805411632162785408228444206495454008128862189954841702186261195156605592781607440155071853036784897828396906598801853539169627775964657684172677699403856200599164149615612548171182888390035088300028175239394759630000930282020275996897289709313969579217353201416030191427596548922064893569759791779408888561417617539910162908853447668624912014599558316737429926549367449446758451019111402050988672797932500085757166187242862997296557643597054253629433881598152104229279348426101813584570560581357358623774218847888139190797357097983948835570378991793136947889396923248487547096203283739598236401522550328672272139328139072373859583589644410966183263130082130059166192066351368430843838651320020656270541844458503353738071955962021515899109814788221988695568628695845207781859265204708285817000614510916892440116552517582604938895455940404912556663566959827675309915193628295778206073844566120618489009594733350924251632295679562473652033506121093926296553625005933484837265166438093972543356119706901854708996714502202949620899705992172190239256628694669958035943474248039538499699295285635600312550391296906411146715575725400127813665943682345009715202487386507685128341207034531851154810116761710978004818599741611577339884592659305531132325009273632404979501375944760708687335653609874642372219017119056876011061643550912977696242681201631423880091835479955129946247546425059092205644182783870768542125633164941666895358219957153179057271753301668671278619901757470855760405377429159038073223784654028662586124567284063814911581062763178055735777573383621535234123960323416414981580916455634553566203420853309197956122399733146144244005967939417781319454766803405276448207659249111591527070483200926514725166185897514129673505781822840951639207409437201955938651381129568772596033399417250586610191266940605793877928439246022625628683390166716034346812883870910622210291845539102154635034405239305944709018985228227228203868334535045573945913500978479202271726810451741965570582525892639355843481093910817429939531995854911271406096947963542648268013082165318429787371927927372148049474139285010499357835468260985950509830191205043857685884638776415064634873808219524617933333908000177647481141730270434690481800152323060782034157033545901332213596204919578934532276271839833128671343194753736817048191177133992527813055208369383919579499694677072135749021309232849738160590033559560498232160851155038299296621525591933898988337610365164147948334530043248335451101945521467971717571885198179087618321097609080191410950685132315150403413903894221120169701714717634749551708430021696312311149614019446391350957997412183117038646574289534273168960021161068382088499944690618609311202621946207108792920485410201006751787540767610381115711180014401293371056505405839993751673240563777447641994324919683753377127610376283129039958183645702831231359162533706278119238159084071704393716017649727921623998285877533416429837287661073840671722239808413285198379918168945470557934477538723827995725341604908712060956171024444346713894734630362359514819740223736092533247292880156469296526479149215154145247528696282589074651399146580374649167257007709092120213071542542429899139412403824233164748550267027228531587399837867537347619591751034388504118161239265956040382159498348538388770863784419233115022123054587357033804784803845353935521973905144212382011999319209900158329997876449955093136598289107199270058484284970527264037127458253403415501631258242582515712488404953575461348371730483995859934522756833924753420395935180018572574200016746908748919453041614721964490447340457341264702547044164822422948484951413960978295922993860484632013165074858131978368063674553899177856383181185102841486559748454255101623698324496208529620875316039667791409487865904032416640495884567787877131603007862370441875523798788425716030564775271950088266508770133566789077829165370250968617611958718352695939896789078466221559271372648586126397166641111474673355581169577926096375356455558221510496197369215461079164721441280217046070433252514144962082248583283204933252992561732615938223270413530670692732195824453049368254947434005390924375890601819830016622484395421514821350014512589168805869722759411859707849549174486650340540540946494427928949596828476761632446077736721951638911909685636632762901871914859258989261070946344869035326837981841349231777636342669479369510122353932207137585585867856768388006022030841538001417183060321755258447809398450198353650392919376993195315249153244473827560573586818017953250344350042784096934982568661346267429746506890706240613269264488924272535630258398432951769411047382755248731958833269625626295513444339117650298265660932435573770985507225084349696531421872491679839654725609558588894808597731605083028021886974104308075917568642044297119467977160505623419992628356083240547733379930284287308134580292295573333521890432109743178507975862523032777436945949034990552840525924920190603401536773970571916183151506349627373627139999883819515381493570619712144924020056438289000096631775116776588748411169851498452709732687597436262185225721580602600337677721929234735908043363677725644478915898853844053362507277877345591201406128959484478694637456066698470317020939987255402234572507426167847922087173480020249202987797314518264649850568570738783178260205483143585812868654851651801328388407152000185553521117475790967190182793884482086691048813837996265207020138945156558954903297577645921823569119773818032897964288485669687446418070343407809234703023510249793018493529337706183752391286030964929840183496478133820905604527280230227362810964975838640035210915414656858983735944866869268895579066143780847569550874612267052145091291477709995851393228988465692612949440907222158470869577038031555531567660773020386383078782079331827500460377469226465525503365106061859188077507577445545991914789335211418873840711627757946214907368136580686389363399186080315198773267752222143802774001383376506524094065324293202909783700720209873185644015101312369783306850530588840289849319275917899912449562448396010496353360341995078065746292692296859328158840942487093422230444821490302966349811758684253664641050145725936677369914396977788198034513143363193785363799408948916073593020961727097696464907693881026757111414021221788419038132372395379377163025916268947803739143744059544322478911754722688547797439163497312717388617170964258753460091259479719783985173008723463867731427860930003032154040432503555207338387252747982491038224767779439353701595290619643174574113949703350865815565510699575764458050879093998489616376674201327566332279218383787444152806925917403362931284332436332005364900779826494806835265118246376339530656822120218136814878936807878769255302645063157674799291399308028723065415077482261314404094487141266142886137272477390582622234254942675341209243204210803919783721879266287909565341161721616791346913086956100999410344746639414348283353961335867370279427085862566332962504322531488516048934989773490434781811499816376541931686006387290624526339248791370659491799702440616673495222253922136565427707182813891664633816705974152917718432598941233477167441076078858586783546706110136267319643778802045263836563614778703702799840818744684298808760849070594302719818845365862375782675562666928243241239659420484484636051814682122697726151038364703614436526012992596220995262652073530304887074871650285076947406837358036068081887538768133156263438338036723838009088066740924719302736381502346757465847968646420252743377097312831961943351421801750574537788088817142382861352337578818807254221593273398995010993403112282291711830247001182948744927880946838065007008313177523253722282779911476538055825657302802064927722096951836514811063626288213202534561059203125368621765051658316652482809862193282326567523330226995187118769521648942487466750668571433448124389082772577185421785168198872499093355348281672920439870797433045942016398862604648678839160842748608738638612939804175993300051115392985383487425867688766287767904180426423455729727544302436048531427460934354040760834009375320906630193745142154214787778789110071156267164603254727586351931211288790086346853692862609975346315071231652223400251993991456249336743308174962654072669570135839084511718320723011630462392835144534788061424315219457465447908065634109310794828186475898875539081400932778153885494993578209165675746608861626321135142432565663542431109677914571790340507029037272894833883439708333608080572232601690133803647479920911981800106414564524314775088286308334559507686442913868247245186326000705792008847330339783865025653258151397452576260819041294306509688232980079285173704374317534207142823282555788480426535795180842827612588141974666756636204364524084706607059552883681211101436291279766525250992904098174654538939267197209775757789983630278343498637221494166378111917898740832858628482546714000240665516188596877966931667492223536837562070120486515620250957743734112947333924239787765920732654281099425230209007725317261917688000068543591379639430408366914328197063537441967555644753107431819626211917059960162910854944323394783152957918662668841703653287854627869644280549920774707595179033957940866322801043309993392653827314006940694398733455496408473936167842221540856426387624828912837604117098965366730698506992812527600228057081026963524521957141358057916208394782114201220444014942435537780248327044090974909347854698810498905579734627630857427265386985966349847865270682976452473623897133192230677713590080360109641651068922380970472530042197287315657095170103048942188926386177339729297497343037043883790140614816795390287715292660008362527056963307675104232363122037383394117955568897209355809515024660208917149689506274769665073401645098332753494387099593758056075777138163152407935693489486966600638040819412682468598696051940967520409898176010951927265532216852703969423249101296340741118884427744019421049055464883095903946959573069975276132577960469985802813009494256044574681768471319391561731720307096663834749373889103090356287694046575195668826197395212733920400595546419613312701416650402312013185815121602485188699891433501551140742011451125759946482262360164439438912243181740945638753993796109657192290490560840145023936857566746074418033104904349245500972678002953481762151844572566945756072335530674726426115524990674108800302490845451882002342485798539420302063782209229897918452300581034843927599335896294888972237544713720076661624584577738480108741675217217109590870725768408533267772997314989986255224174843961418591351222356752740309593984949579105772654115838798881329133048079713036344523128067029806364721930349137537843180623596472473859452113922603701886071850097375653439889993656627844740595382677158146332834133842775749258189576653554881565602885271102181212605536457304388509027958112703174777976940932386575099534098124143704923859942759929593674876379035658905599263146671591861315727888054706322761217844992139024113648365499157155009489351518499846640826855273815685345644175415838803721324011730311948622332610445670409963953168715964518570263741077634805566012436807205936328361969637999961766611312206870511935334986324203203405785892435823657452137003839377393131434249951792442407156022591095288658687430849357229447116218245982799729978911839255101565184324345315968506944251279835216339442911593644276970121523800151967244068837961264288326626442066421701650225696783369468781193875257723359169999331915626822229907229454356166331641262763536967119499391017407144739685877269691984468328320801605156868986119780123431801481430524381888494253206520948699147075542078471870777719809296924957345410445790233241477082338240856392591381394186413592035003655275664378502546876701731548543634648532307133021499513500206148687714398566966079566224729887607045995532274262501929908238290768535262454990218597524195927926274186567533213914107810869512804553246728791789185099623704762302541884338244357188214557476311113772830754191264368317051974421897571022804785001883610114459519554910286570942286513225931254858618853825283887614133121809588272198669132846817407966253646277447318233470230800171454542732722212129322542517728694160936055254387161107801150054103154956389422133455320915769222686952758270259949746710443441379097565083898325647733371743616941531650538184413078154670808581535401787915681645936311249247509605817026568806264354877871666614414342766823423134143748539535524151416761494195408287086911039012023237000918617689658975161113591422239419583388916818816640663802173652291653094689555427550860390392505583323641846906944706646908545032209625383026668535395770849701222335585666877197895857344567560859883228515456366394939696905184229065452105796847521500886101388232438584320475835093147449123937731452313897763848237861940558715105890459243215235646617391554101064249464891834044592235838963497781032614861656557669940541614676111670655160871162289575439290656778951127990884622139411174357236069226422226401622306741489540360549319020561621840377872261231547489009843732927290010794733683713257944073236031865024243717042548917222810541889073652663543289535153066641974838914345707361379461409947767368339938524280313419681316793322952901557916361176078303796359395805708661897376826982279957500956410907483435561809476092051886132096790408540994330513328176905068539475807364297826259023429028172072209095493331370443331222700403927874281199616617702258653834258438362284846799518794025008565378896890658226203519910211756870805539421568074960155788005863026613924840958195773706856397876768019654754687763380734239420471949064112536242144678306213035485536910041727480613437512529118905067377721011785355670027224840239524375464433147084696186599730819425761843171560091100050020418574159516079859346116103629165285962474702513665161351643020158386396071679583831100250444183012157174022500969658876201026695392117606852400694274086338169446402934012100944799261882437013219815586624600583408620907245817371354922606191141102991275214513067178865055883675902966824467059773312629809071972636087664400778784589560118433703232939216186640426139614307689036152496144547786792319153749670099057455497435249439465656824294559083854300860688692624962247363544029483581152592293219149837782280192200382567268881274955939152891769146955189255298889631219105893528644228965473840249002466020833873970214738931936864044543950821391693917926109505720519652734405548690271861137808650307941413977483737031356126571391596851470213910792219974940631321739612697818519121662986061698656790407142479094955162355336922594149541316250262328694945369525751191227904237430381771638294271328085706829943061033827750022930200491769599180149291541414538448093094864550771924499255771602278176171083389232716992201909860859090020381116283940722249343384717716422669810566076137449923949933351141557448073349013914189874905411430909108460449942911255562806327588082470488525729549505061099241671472320566230075253913962666421766208394707324925549822328693677224683283096818450197313132369781866928868366906072370095997671957352111767289843308649319488111450679143534602460164390335173651909538266960533769095186661036245749744609456925923410323010967707660474588102703150576508621213561812777343865854325471075570090666163409746855353429713767676158476706996419146624543385282551795785370994779346418284929537284181541165602787498477383764663934973737302475884166480851705748711124048190945236171165745269907577914467665349162118654757495595948718144141038102365832544128471061051737225364931874452231807453687343430093104717330884085645797975863359367062368216305004259551077397389493631034853767478398254815099433198638975609173805426026875378065480654735955119426327525377516715424007950931224331531569030450424861199272913488379623533718340597653420816142886528238774207245938980053128450005038045210038155363323069100924766717585786096583690504453649580245882999338779136627661032969145009734352735281555139176297063618041709281302975814014534843078100792371388412746711694559749696676956367981487928572940123247542289888651532845197813724826274012673509936181796125936729896786218731082616017446367467098964318930411740022765771607219889893678287273444827657003817174169583321692652503169682574547109983558844505650862891612332386986639171073499808091296687148021111332747975861343986101184211741101006581796743173852550304151767723541933486385815343018617849528081293302058789310845067336815518991065274698085230586969149638022871550087841465889923699383860891025365854170976230269416932831747067612346817170524453001807241370059118094897930080566187434492813114697874183191250152118304841081006899926176562496132961776135110165719387714688761993099966187697656181684161825459750098958527175115861915636906835123761468895978096484129659554546711440745772115154342200207008587690531536594747328995693130776367981610443290934274793182343394452649884383790528738646601553395779072451259147496446090962150888210381914279958669515104608229476711221954329341779048924857301295557307884506019946133786912547804741056946947166615999191393157711797542347031781375474854553387095841748169515852105940447175490390195855167894138700214546105411157044937428447413734692548632473534148874442040343713095924140695369780123813089411860294237168873379345621035781126394696591039759726122386884537825092231175751463786566171391610735798839314140117156927017045490714430266364575389664259907794246695952182386587291774074585304808354640354406057703283222491892525114456159552302571615133335397528642840302750284701497784695229417456990412651460390234327732607527550236038790858811658830049379789503349281692917552565770549530130631420774482784504233003766632719465061387369703772092316227755781031438003327626892958065098710214143743434093466040947888672098482978636120654095364714162139768521612217011797941220976421704389774686567651732365514562974680473371966727984129825588087364844385866616566254243844166885120539034562110308365858840083160219710733919591336630269738186880582816223652222937439804220657369395126467148995789644316359837201083939693319387695242490721994775988262691804640336028218617962286779201582731178582490600786114842746535717224400824759276725944745904747129826348076626030544127830512095295052362433727770931313043191199804805817054559420147720313542176119505714024709970034837887712005633276181087755816688625570478948214418796813802190976207053184635173371338716178426110873304070250655130859792167291484420573400454759973434901183226376404251041288018645936956277395299465589220573933988703762290654687451490139762614082075622785750723026262699590365392039697686627173724416335436721784904468864362278341017592944749109304249513261918698195123443923412014567858117666870861805996061504636914277670790986203886712094041755054450548924826749966008929486784129618427691798513308433253095292472054708234475893065058433946160967522029273995620640944293370413686678991814750950173255780752436514486807316702797973806436627066275993086233117718684927686268611129357849148493936271265571409179801114846873127564691089873777950747289520894693441601874770523654318255821585197811412386212140845676355898173270327874029843383389909522734554505495582313394907429764626547218898291675081778960349868019086566615422370676502108696961375800406033514917280512915188919249973081333390087199767456268323115767423596287909953629426315904557584799876809647092062002833934543023561100036018802156915609628169599934891121742904568401657103501638586120586334973135197822292645106168614160429526287427568415362102608583024247773892678537563787058617217975358946663488028561118497022938444462488793266879385061687837364092148040306557057150923951222502680671686509680874742550826731660236005971906959144853944765263440717325010460419276394839045690858406433567699396069439036591171599063613432133905795178863120746289401458381324078379945787117454069518508133217667416806668315602259303862187194652079170071803242063465956277375558538543814584847722518490182481187177706988862409552170898180863789056689087737410982051870720956373912684976067184470259224638053357472601102207650176187867247577215603982047883753452965350628845056530192285576204659869098606008115115354000014255668925345852801647921609000932336754968488560923428761139189896249382237981655643130784669565790360614111192258328651461896401159751523003297091280842736638564803274087518990960509061072582376571275945166402893169837515279422172543816821919816418272587507242668774049347799394837910007146984487070061105652992730821123490284195380680361402459350242246217025966452669857765843293058865332542975363592625493847484348430495383076145337225644696033928448429516627335550302219665637054032346751190797149549117537137730970919787854102363781460665747265213823237630468823231588335038755620385885788882753464650830011952183640828221171956016470630982137092164452816781464393825965813565710675068714004448083794002448229962878875138910740749666747683433561896949680398451461957085571311687034327577087448063675869601508444448786844259375530857152065760492106223732393895283888373520256396238374615462308683423087291588601070324017383793088488522695097181502859777406519922796487791352553106620065207422894288643589333275617547134458925256101029355416447989188585507671276867372745578474532431120121217054851066958914219708774054073863496255705321541241276670558115825972022772377985534522699921559056617285197859515246028560813819316130034676974322568014490806526386764846789314858580898565374120436944961194702664193463263890283920659935754102320071584498070139249588419715197368765738463672743850207790326765286233722942099731954722809558043035319571714343476028717379244654324962007933754858900784530886299636955949990043945515092979073469559723220853939441151936630303368157390811621407148048139455328774769682720970007241271256742713259554741596244090316510881857241532795086759636072822297498685263609817691450372447727249956673699642394144752594025828718907889173286683382833209939714334804726144915001051204965012894548488717085296900019458565954382580504609954209111773609888337743555307117492256373408334668074419078567839797888735735059059548525850615253412452734611098998339952923004528828802532063673606431652743788303944220503887395551781746367140218235412106039513863867566844043855711412485543637642176485593721065264466189471293743417354790917078780307231575253830935058700869983945697953724495852552621288474475867389489124849760688330873657182530459075815340635386804241680453902086789593543533626178095601631129574187391582085631762983206100350580715109250585473726882898252078468385144644797079431688129324155532464651470299816337938223830436915534735176559606979607340368143362334352073310364222434217842133145492071989964470982120751063468856482244806648025465194555267352150220716394390873025562446529435675577324265458827446825229385366328590301142454454897155873491177762710429192068378008576895905849073821765060018857811113247407104559623128369525584183185508999911722577116760971684648957887023921483622722621460217343769979812614564418688624814791940956625352082604656705081028351399825865067898602969986419034208084892717474253499403113671190834302302609651388812768443458622873717141846549024491591058445692147462245301849292743895299239452823605910346731543732493405041399946626817754259091432675085980390370605713388569134964435364115811999258415639668472130625901617466896709955437572406442415712436759099324502750948776525952688268887735866669195347207379910798581849420462188377474346230131129886946375675531393180249653078597386341220483727575579760996158957993097771781626392159365494526139133535080306809964927859460646098301697380654071315004153383697985925393686380725109276911040152613407404508982434613278899419093945066238050932871206831910950357185669947637835701284542921054704482843815628301913227241170701546150300669196194909968279649745482532075047299433980715798646434467903502662546372675680790399572838255506320764867488420046047721382347725051928941982748002603239373001198638061122428882917709708372630102729387215720458923330235356921842672096003360820834100586632851228426308740875873604847128927270977100123523616084693939893196099567252470976583120638299297880152388898502492891884027725739238711826966574733338011703463501228246766319657611983503551310021284272352472632348875396245307201959922326275252003725946343543641939835794839739200508237293149222386836379968328816229064891227961585666336723891366228080651433962976690431946633393911036756681796488770123829528712556099090127545948372611454204564135291988026044358562062165302855331401530201895591322515500991877303553403949749711994923856187445048887740684094743779386631279799499178504186187891951493556142395867281863007738236866122954430096054430752915908567975378564509418146008435202802035725424799504348684911346720411317173903799614955804717142663193634766963082284045094731463849949456382037362706041551082705595543232135882041952731510618855853029592457572586614681197042888119491068789430291866716340348305366619927588689537234574855277840575590632114866274472950543001919389389708956838938397987590423374985116260225437076586103744717524200407056864848333673544611848334348320010302756283679604447834228019576907008762097640916606501907502188671623757344157041505899019965675016296981836679013587352059904454881608067518900421418440098834241927151661282538210502825536389587103711162958900592034666141966477577609941221640784272717011341439471357815884208270965131138599261503349227203866191885528146166497240680641539363140710870924031725002002103750952023770340023126165359544437205816725580518347282926266756597702434141496565676061985833197916757481519443959339666327435879367850760024821429760542147529799859431307345280048392480104056479803891624185475631140370792761839417904068177193509408153352564663052012249638434546658063291106749918066101440242790338558148064504638751469125390284630181355889157524406659880243947217061945322692943378900770261908123063784562159653228530117250834621713498751903155522844602064347872389675724611613334947625792930472383085221689948221995977246868056883144941694242866741796470388681053252486680757751462435623550693755305474853352709463105898205213204499115854761727160272197219813697597115919386764018058504948860851783138553950442369538412252837221511001281107873166981096341483630082168658269504166231458925255588475689288368856600711808680653432445158568951734311931124702036486327628045459347183212409870403384781631520926975029400953764450490670518592239701686169157151599946989171014576806624241764598750758624651784500732384173691659220995140494015783767326888490756596654364792061301494876092309297447100505384815684941424500772550436966978918829335225279339677740042405172643297225722924926074408751347360001489835507360489145167248862210811373707591434646952346980754408850077890366806802138163735661157047553091404524610615908590332260396126712191110997214876956785230467147899208106357165236584180281819480475200222278821579978664116107981558809827513155828689172538756805890988579190823471170688571680809970821116231872505600126629594505621965993958908977909628982546760862471329001299649008697524097754277157788908586720235767206462960825992765664636668722330070276384641608078534901773802810443549140237831695818289996390063348674175404666318425660470455396094305006102992050374752774019525305081599084920933428186422423327388488744257161207031985175546587160465043213602095623451241779875341625691422541392506969453360534080725861578149676087976194659593034281516022981821380298007654647828560335897858283971123584002258897466569403643024189893392295963349501033393766851742365678080079763154482927111841407899123912186824994721251485840798909443781045586005309110644896151773095593271236858257260714073317409272650159521347548897823268459865983323627010174781097342472898505159187003707308852954290023614670601473805873241421073566248404722046161664920578726542331110027370870132502099643009971847731707933417613294746314373200884737653850643875300234287908759344193604337253080015684300574708237292510203668103012030975124021952435106174223936200763641451969366375150194438289943607450125411068837733173555243433886805879339622217943984811688904461855889379115179128524505448622296432441138799523504958252159859545464315408079735451372484705692445733816432436258492798659969761692834459743332345824439181852678938112050159753491952719170270010215080975726745733118583182349111904532214571210045694384001185432826839526647067935766831383737146880221724536638078548127534649315522447713118483377390431494297930213083144811577306290540410192805001524775720973412145314769894050598883871855892210076695433846622064580491759892493917329465850946083454398341378139244853462966133667468571677886866195987559170720021534705990204146063635492745566366315711893655188648352187726092425103330223150211888396061597213687327479185335178778527910839310300242780804080569112843160526825749356439849012774319903021922499584799882446495776340819620758429660996108099787736370357380100439966280875011393511835290527903125652220135306799810053052135793990278102183293180301350041731132984198248567231163076822476685071607166505669252395508664260984374385429202401625563605781204649066147658353613366312949984841523350982486434869811602096372650574570078193826971970937130238617898535138145516105110052195844026052628987695543412235616016142587022535635816180874675484891880558019923667668304464108666427742787449270914478087634042314870724269404942269176966186494159504966340843781405640748862800264241703385571016249413913945966984941996096188593734345246085387735370984114998788300232409311407956967310674948420364045932770677555184863032361077716156157429280549069735951014503008372648962782773636847463727004935459617500420324037491559855119993504117600572418805881066439467107700062824007842927453007607734877833543925376455216671274637181662456003777870430018747466981475237849948998467064883662298077816156006716781913281382592419229169483398337710022164861856250615224404717914683979605983317313320339281191558233682671611387710766984379726662612424575480663242728091177284145834814806617077983751163868215957993323280972109667703541289978218772312272774293797037206894942560337061488736829909111963919384363936363942305298843369235355582138653131828643325692876617916810410848066430173737187250363118467343482136295865709007389358954176995390750405501680732478918452892512681490058036500746779870520841891221052683912413753105637631689413699710631552315691985154968536301864301988587496732751371136120635204617336629812896877921135352473737512373798756868755097964933768281103801620000602303383534781552975511298249771454885590180063102242311263948433151659186134199709259220827573848192776325542942838147459866784918428866282199362820839204416698907125101916571620263771827279636637996265645079832753395186563122256828013925912783131173372695850282939269137560571542394360740802385298140571962652123413233995906515249707284998872219056821505247873995839574900738228406396670825856782460439793341695579249912625845222311430735342673189886967361644082420945882860942829536068080158607287927219945118123879332227862489846405545954173842055546831909115829407481312317491505162664450381227233430534879245144586697974075601472639435775284065818028657142534995881711265944644013439987464974194611519011986570138474779999146569201832313701731250472365811690308238097106816390478387907669177439209232340248326542404197258835238869994326152430973917324677941242852203723500515228800171596648052242004888088873709609966525219250068124513270793843743649393684315423070540692633035944242722790531060006233352243037965786282395140984918259387290365140413503028040514303657861195568577143230779448658416790549910638374964579695718411916240675630854097798207616976261156889483919521215153126737266184941050616584169443593751722365693332237332958801102195376133744948820117758441857048018463029530080709512965366329087984175720906128290671522566975278939667129165482306652207730206043500059235974982151231586268738070251633835952270541051497553027171428413282266839973176123207897401194750767364704785405739443545388574237124210551973049316705826398927963970682397593909615394162289704991301829037051699050897775038694223937154725900735024495603729142199563601287341254394009519294220309900934723859777480286753174268484536481661660488366932979994485124562822947298470606069320067478925756339707280100931533740336918143452890441889270629935915004811327040803004850013282621527527082758437476114221732551032392632509654843224512151236056049117791307788174824859742451198056980601163196743348954460569233283779233833227624780464024072470324847301667557112887424505586393197168847436309443285034513238212340406780747510715742598645973560249389355601963020264848193848418077455573372923018640716205658390747265445374367309286013348693257938528036321032955248126070277264669261370614615922326398775666070308220481106474103685963999544135338363271047377793263618388056133879406965022058730512969035980477932239720407115812042458914847253389465828636635292755124969295444164056619976606114548785931950356981609971714376917783073938520681120466896438475333487721574856044013472263442204176781501944043467036254337297336497179333864557289240144138336148183523689117435056351169124178262313759029554450614608535350300855168057493313574988664800176849475415454929333695411246727308338205376424400687477937447130883286847257418340618697583736429256568206341172525153022329439645476966604833714435742654000693439415571149997783906637780970378790521715496835857805042410608985006695268232733300418048188203570353731941059857672805820136828418043228183744441065540035857125958879566208171248484765900110930711226059112816070712341261052302746165900844660664789823462564063023429439692592288543858179624917806375917621098782028346380383513825952273820268502256695390866153280606398606846134943419770742692568778123955067761238839675362659355807605598136473312432813873401307575868455629542054464123587318415716586171611313052262476394755123425369790375343007009713084491357079058104206802938367675268797395606771595617923358026598492099737841968232994484930032472149762303825699136955708888652007616802812934476844064912423357754644949631279286176463607281937838834240262845593126704052932061146288558756248420648068328463580962378558135483686311709249302208582971276226349931808379985658679081193243958870253005348151200033043199081984208149931331660574436643709899539360619792262079266817082263996995361215423244246638567125467571993769139976109912859854620527816510415053858332114804685006189939468048752849531856362744400179342704869887605844191482531833893725616060435666774259689634107173756625883122600009006692044380164886608108921701553128491966210825553300721636404968171163857243732819798634847163578564638129911738279682613249603699826902326147339948171703854478891249444978247633704402972027953286591462660447087081306638388483468841288236266824561792676123414920008878256556795386474211973203888533902179739018379294868801166001005420157427975909644291394327518449838439519319314020764456938631572418189005456843658541960878037952635570124771373346897812603164146374693548056514859539136279864820064366603172305161074364811046112183384991331139714553773714854892363920691977949286597693151391365520673007961392427444483972603281897018737210076684700915237858534516578948267178836519995823822062969354426306523746282576556036500033149164124458116089363129051020554136217354232712984139035282563215223839778458048296934653985643644790393974109667441014568718260663773250353912431653405188922466143585536196000374045975549911627539040434982732225860292726700536081295134609293176231296505994446651305023909003600547928387359899131964927013901901354461551865190630183555100564093002112443505368760219876758648085409280590349366668055917086522460373152019526738525340047595069346821397030283145847511766710867194977507016564942363692727490272587669406302560736531236611275958786346673931350538187941724371815142750844191419071502985554001391170951125856133814912817295314902137365737434632840225622827419729472993436706955308253034818928399301097694722164945773519771778944880331611302117867898445552084516630434015930589952081400044734734438461536414053327636551589948552019423353850540947158449220679443120507522923113328366887634507629658685874588952611900329921900730094353277494719948064167857172689908300103134208715518593286611305490737946148521330060415166071279353826685735928818056273142896049372911482119846902856887416630627114632594836458307887336121561089355436839453164013758282690628650829281262612916493584925406707581974686245480054483801817671157078431591437635648633518317771023292074557867665795242056754458873499911242429860972479696457281535359006658791672746636422821371491130175397163702386672364034822734049349093674293081225182517755421840956667535448409503500230593904656756878128108196584033186620919167600803715387748027155536883088035743027104751685215460804013345959827909438920918383968848355360993717516382115242413136735517732767847555736321644063778799813491384777021113750630808059826972141671872019113028892736585673884990309699790997388685907195782499931095734922548411992582169169176409170560527907180609076835011035327272799952428379025761024278547498513159382727479483651845136603131377731882856610349283223156508287652335029978197502220754292916983163463465883789838185419112453807947593210629835352821590820753304997162003421844780892553241332968088622765701087319628296058644861919375034836397973567936205078197506443649976314113622385470143350233033243535898626830963769003237733159979544646193361120357498990470104261392250077633933820741758799976300410492203212396787007872565348079371604852896710281509541228615165945515255135945332653885506134407205977672174161784706910273874528767544524410255980380246786499677774192317831274206618761417980766504522027540012735072378016659352033615923960949577385625368066831373794875712316808619827445259748252641028463290696676269132561395917022270024640068434147816486251154684743407814832276721081994436773863743714608162989230182220382808712639203100973149199758569283286652302617397147935085642257094397074035463499092492240663328298086130366460844426671861192966055578201345538618697225116814113346656615839843995939936105313565222602129427352212769810542739570293369612481597075884559498769239184137803471821838617592983964412469360714196832643138567438263540368049037281678176692121738482882530943615778007408253347418462255270864818998092308592296777172045133722535585701688944233413800875370749766051937390621717376759044519239070708374155299408311631206523581793007499891567740352724254085746581738499561420101782086396735587680356566902348353940662796428552232734376982420347385645456873020128510241288698440211036041841408800047885413077396633163781690833631163431665527550764907132355818675009925588285169901197850569175638445368581390732932079385739512929791706760903675444266190368016246752235774293237996128941728044708949589665251547472581517748285215274247009454859057271358854936827496283808593666466737843747367192738935535579971818667693950786879979843283847981532295650540394119489847504856727945089715897713550380901726388359344670860758837177622183266226485430994477489612311046915912084247726622827969829349301634455536243674997212358851267421103949315056895233419754792891915702858791980930444454662259723045310057310641439083424015189375161805625055085743442786315184133838246256117934105054934228615143678862222080869793245940022724100123768305200703512447472490868424806596196164147278565415994886678866709058066202822319743388178113877151389212284304863200176936215299834656213755261847832799498765580321425067189109059095850532936971485016136307932465214141289801726536471200460746217056806506886490584735703254905941192825366191671834837022857729493878968490325064623955341132474773124560199209192677075705262995517596006966880634427149705207407933339443688384929448501347368390376968942480928233110331293777596122860643235751767942331163560286532988012947296673113355296773429308614976074930361302691114159764747776388567264773326078734341774196683677388023204002164205754774736036439416106928480547290453823763973382688291601281386181522971816405527566448972821416343268994359329155100799272205242026229142420118810698740353427067674034082299991227052603151192441776587077396864516203439795802088457703521182732664700180179867442678950921260963350267527472999687831809950699572189145160186863150786234375556511540819830637057957277707537009995655498177511908579970386306828186982556173921238864756595375470374572321343930496149464500710209890538510425565020740635051272322117459243735399498387192911638964460543626144485985237778668227140779406354319437231289967056554557787131648488810018567163578308227911957641117428561578029305586831676174451705105790960411308593730358807889168299596679137298582657701536515855126670612383347802528319921072685985719120729299416171066542139441629192098680267636288062283531547386898472144921460416388861835151238405120968112612750172132064423593744162469795310389298285072911499466775138326938591430223995549927895015720210731460486280299301161479431207807872809798367393707797806139397206110153591108706116269479065730321011728572574072381093836833018510586615392533245267642156113617900503626241407039229207921607569479266032963254602555650763316761317041639366047859284947283105204730589104018860913327910590364384545523233044225766295865804205812958863951029493008426923687017380583025614547613204010512743396643790381586876960450591623929580281013597391582034440671709910697119141749927499015171028115297015937748229252292568855705920566145637022379506713632184158680182097114311252049197834879703057992278653464555546269811792898065974823088126824833228028943744024372844412361065474374278033024055816649053497505441779398792813251227029893980032969184757830834571515483335800962535789080840803925175094402572939531343573506072665798675713548113279573424359598203719746881947593442720169717311861574268067174766659966236583154157022338264141867711154763060571798150949986820450889517695028041101710083318948762666776644503571929524712815730820164048649149374512106989601639162061544158809072401449482146009732251966332550774876004009610876953838124997020834645776045623932336682541550250840622496944343240975135276798118662553374948714077703186753258578446387236719210134859224023058667467761291507137675802456579441246403567870310679550972749135186100698788652124837744878455884918595397236139441492461669721433993816212789700017405475075942044262832381522023800370228712374894969223355033660196623489817069390894138063284505941949071071702570462418206399523892084266628401432365296405684679865989649406315553113751448894939145188725695782070640905359182470711850061295566530390400848762212650909125196531476178349943726506859412341630281611665033277478008304797499032042529030203085923690053704395154367068200108932179584467491509174577573784055814505574895215418780188722426536778415919691235721954697042665445215915607797725709551115632917523426371892710144437501599533937040668940603928284124322977733385410312648034665199448228474664417798826839932008173225514760983051982286518610284729256907144564180894491731556454287030008932927916485011279706300567312064684152987005220689869917659119767929130625763513756956879975129385318546370058866994230357171821961860821533275430648209719382077997750210977206553824155097218256768012541620864081157642169489552115905606365950924508735038001931756127058375524299285996942906702693173936346787331295300337800100859977340411980479528619054513605600625418633779881254740921578642110984159206453799291629009412064470222363847451693358727040857050323704654731939653947613221980040162969641507606430314487897559186551943463532773866514281300888955890506686154815305985845972579469636645727041364231678567543509776735939616834105289546544268132305612082999942394927878106985101735525849986032398617819112218625522637470365484524023398557096845658445020104754509552398218969331936926151554307414599916556454703424452129551383612291443116126550626058533517158004473174758637711962359336341273240002599408125037932866020585113590407299093107880647043794105663075969091770443315761921616592420603656959383373587843999685653753476365509295612920167882603304490473395379119752733151938556811246411350065550413659670057922178843637154828758834224968328352006056359407725095722049100779455243927722696928281789191089702837874369786573758623470634146944082488355967435576991876772309079995391361316216386413967218864123106616064676181130131122455988536574755256649572882813098226799369652882563797407995965351872118535616919901365954963495857332075456717301935504356457437010266662611363515154487166097719158871714532631518437131223019686428957464862501963423048167207945993221534830124674307982703063812131670820135048426650765715834321509455291368281282537885539392195961018679389861087368715720466499935993232594453749055192868569513574608756562671424156870113732546866153356065769723660718064282900645514389365725791119203083499427464297119164908753300761369456579822432297512122588436585244485944089778981966819651667356826069623376717505492387216602934116542072127047486842680579860707018731589245724062179131676302994961989390237808405209066122226913164475575579917677758526312312542773746962411705481835104421985277571025276768925196287671085980822572774980402425545009371988775088234107232947408292487579233352215058655539945745504349000180968082745025893533483426499099481949519527505167733053893217132979429977825601566679695179578179502691408682529272666008826090807245974608766741650667560249079810967768523955197200798039868413686546911239880946306120586699648816430980601593393719692923945239377210838096365949909645935453341166722119455157512363131196359663872688095199700362523223747005180341675743185457670926920495168296828197402752941987563901954625938762842152996157109360804952691905156452502326787453913576781398162687995173268199189322381535126106609349351871716009001551629691879955948402823759527804652364607294711987680126836853332844526529974579012678067600505380674270411085736918425929042442795275957647417914815513406557435854766206140039045463479232286150844213349629156041676495294775769030306806873769209957112094434819571915136522013867817719884293478413436735406897966650447094215200853224640680558274825176725481007867156988768185755894937881154607978712788264472195653959746600696590378541615133708549894806384324725592548261155391465545376168267018387333020823324021648617184997388517703562559324295224767200003533838100967421048268845300197803235855451246799975123607457626001301269913249051199708318287641624884763519970671586644991642322055488254198901846905366172517596312127951097147932728366813374148542046964906853932098503999507444035875336995674886101483908594565009669314222127192944723572002964526206807261117096619135329434804969064619203160348785399614543511415885152654063488146128902245516722214898756612914491687042877437215624512804087805608352451199397131776936317826187201971711883813801877891553330387073390464190810927739006670920768884936494399520713734837742550188592390739976925598924883975038519797081467555115193173204084398923212074608396347291866521093947141947971998576346797852125858779800102990746877203157231306965247882074189170308142926476768844104466078722980233815817373217994557240510393320243099054454895216115022250055498623799727193870005593583079495117641641364460724830740607117179688711609250753750154070982703027530311029318124843129544355647738775529906419519678907492794579256758101180320746321762649386622946633990981074876087737595652417482774387741058903648627830201968139832000574910827336405063422215906147810369511501327766991476519245539696565239443327730086204352689274451705818864704051454753177461097393639640262002064177449519238355918276968605885698259337749555387557439218278019373412737333859486741942715953651013157994962462808043723256510045041961961614808478451920921982703026898306281878106424978338565627662302303549847316415591009448351138553354046700229050590674676631977157170609388589757799544566995359396630709620296096243297434753904321905217047665744047823681742858672054912119869022014688452314865830936102275521225484926390886991672604456916287042511457476551642264248767119536933738809763516258526240233750133741264883970012441768031863569525404513669083975709183190465412039545939420364003925841820351004513231993382542226056623152903530468161687693208806304972059117801090841981024562419502554914836685635540820171388499230540413529047038565479676869958909676677158644115944233161723425618728520452740842917927012606583964389417723499440579347885371397165772038477896364596606924595828587068713620124115239179586172336437890004256426293167383124985925473586821550934296646562980408974067024816267502783962713068211975582083665771086262065104954995650296318256909609491130630335009581059443164787049450073167388832111641329372907384580390361314846336891096211220063305322122626816502336146994828040649009021880444903730367234505205542510073089105737900391913494199127074160546941253558866474147941664772768273861303957206263242641309506029593027808156978161930142527826519744504124006305337742332050307305227462240403499718173876241465075209450452922646792737384591466573300473208830412375898795454058598852721725649516652393871203263455160752026262516863070490643689214411535164222725674282585265537861463180214907465251194967855443790542245162602864734541864325872857701459038510465507152223640597653748460393922736324244397170833907555968360339428690148626757359803976802057453492331637240072809070796069601731849735533736824058599510632573023803292850510090879450296411773666768585049544287629530475100694229056506782535490663265103785705512926295600452406311778367304809786549259240743655734152321512919483364707302091389953448972951200705857874975228130078047757653961285594260955610335426228163640682288763071711272267159964938967196997515910672948089004058217024283814542640352959613667337421893019446152735891746699493335094785770110079569597532752480591007005094817430045078367393826841686662092603292027868105876767831912589209976881951068594875292657928889798070313592455587951931779175258832227438532520067229241882464898570558131473378153210823274325664126732643239807248002322814337443379709052273448527514116506191734612291988021916543654685527295798541940650514364215744224866372879767733475404323902775735795990853962111277500929082349723896622589842752520040921306196547480527476010817087463181853802206838021214764772682569913641820443004701440702688498039494961542548173974881175884064115022538702620199977777313081570959608147112232390592637093901704360966443823204470549123891585450614164469894664038880817932853580871346402308727177706723850301431351631223356370937077503889105703815997507246601030691237538748507730300655388670456017848999765476168555866380582444438297171179099659875200275025582927264890464447177458233462179325481295076496248229914762285936068333022616458305596178836861982071342811887158428186548406137595823376300462994465573865501400373207321609455999357752762149577648354448724578034627118874214648162003800880512826251763982499305069074092840699962323287810285128028163010479768633677031640242368176398999508746514073682547893505616094215755927943035864694089437261811638951109824363221338538633296735066075607561906931860124123638852807657099677929878237129916582493274261774133806595497066861794180820435279670741951509489173577698666057428576582252722180748078724700152190649486465622740382808766658013991948072131565524585083861454273988849076574318031798599799492136652406576074101108135408389347452194041046461355475603277927720859121807844439622505456892790638471283795067931813440413014482420391770981568541181943959814929019965310363121991722348623663073296119595817255763111506826332258633521116096019527443980333270661356621050627314142088070394218388813766505521087114166631907931316734889311047232783547758604884217068681537707232294873996031620574799592333224438081691289965868960626717967061200709546846523386254074449069745785002233435843040867290551736165364563807324773250869213935023831252078426406130435019777668689701080652286948701175531540874896901600987515414867701776246405113339354507224558492257924149321439459719778263201916413558541222671424971634681415826925815583929118333759990791100759575086733186585083567909392842378042877901197107871802511095285403004618523439330738115877877341056344746560180248977468857816726410032093763353922640548349758904051620971823785019731285043056734623642241146553614556328194181052904846664707593928322205455536168993170719866702664085098288042322995825155389850967944933730143539276994555196159823656161251491196068372127444703731295392741262580068661338469141094239043490265581746756258928734356414672771284249332638470488216442280355586906794967287547613340777195825360125946671271091422618840135200658422192169973800203371046876184211546204987578585912868262659976061768968883533140154364428125176929926735570980305790904703198068936908647163190506675897630196674052124901709048171214091319617815698213048529282071210522379531686785545833265710814622601443399756498090169339783929624080354542593733207845189325552045445322227698346386754039125802240407807065624608037759858036398204014792366028112394829885014114657608785271914649642341959308934653710245009848728277167420879197605820132334370532099573560027477694842171282568525477867693117871093961995923473929301076220998153487369792864198261007594987941992412187349208257152865628936378105311774749844757162237438593737108057240396230078895846305443003452583279876988272279566679484674210580915680352788605576630126561939833914998352154676542412692836268797326531295815260958641222778782816482056303946982165488406462315274811553791362907184341358759557859528820679741158856940919012532205690144230373900924999014981251011856414862311485708145476843881198352264132173698041104170419695121356884488279857031935278353638456278748753652538891572263880371391619177864117151141548501124978223661125571045976798801745410118326357038749948675449452462431061389396855748728510619677519785192194370999812527490274116039751317639802543207437666287996606540597999311465675167868680574459711654962842905437953824538900973567021331348697173733820370559168800374722635305506133434797574826780671211100418210483473719341243770138800998268011140431322572732154345645637326750562640552866642375810826537600342628050635861277254674217566663103945580023664839767200254744779299112769566601605241571161492987992022819121989999983928193053981134561992848707363998257115555700009888150332675837765656553894443756963284296984827883996517603197995370669771175639116506275134669464068097509541412252995857897391269036385356815599152075789989483481274703159123607778493216569142033489258929434569405057202139803473922500442414670323378299092179466980793825658373651673295582758315893852282366268684989629259836891050170856977727572885168108605427891556292194077716957393094204441049994897006478845483332329729590898822596579860558470367963769880864458773655342480866157480672743750888762335863688574483252808950265399438559427481027790645788588527932759165961159945617303141359356066519158402805518705573875121044271135054077705652118526308972894209899822154312200242948552426392297618359271312764539731816910808125023737157976340621848516749200810246912490038753460663217173864955857444453218776590805715527729949479485326297174633174254832785449634391270035415570521782792717876236277458808073994802431662670683370693432395558034633288935262475200142022355632166861417372642524754843596076181475094997438834786592273472706282065778800120762570103303872633244918833082977028910513874810169496146879352629909996672586242588174400870695026267930928968195195709715704386077789516679835075796319621292743939644059337746802523775422535505446976937886477082287395895726440235354639546920548697669029463216455958842753580687669368918257335131053021951017262643938313140459122683700342812156945328415388292447132079965179341019933325555611688755224185515809486101891197231382352919001786684064697831962550745027216623915569536764953912236905983120664709115801634965559545617077312120473371711719557418181575127649456365047540334666465389865733718501422791112100545794378134337128103688724613214752724881268982785737549833937103128973133444516924428156524627287387735393391750735082431489883448300444527138647545632575103931496588936483810981697113946205312521381324338271502387758925760533010933718765089511923381685977917919930694928883086646345927206632831425726749750267087576809565940914478525364242050942313663832230476736865846633675597385942951331772091315458705863663602259079483741486021881807452841802028757040844987592484236890723044560087676056561703089162232692574271760659675699026255781559491911911412716690359831429368278941097442279995682059326276205277783633153676319242463373303307240297420782313532138665606051335601649434587900253909977295504986673754947500436315979542388798825736448931075708367218315268712566495254532850073286578787350862199595306192965313873766708812155699673603239762658167858166815868467728179004006320294625990623475239226378680662722332412407807007245966141782457477523127387828212283645665579640364792263732313490692047413676289540831462579075521355992305106489174620282290837710849253896288748033819180386383915700391374972813484997945190226464628476643565152972113830098724785763760852054080087041700762429745768231995866451404892181426723754182604379394813190210323168631692691321738653282989020854373658511736992889957993190130294563983580961315536668748243944910074100790693096004590587405025522562131873988152678529284841485467997673787806193408952848344756842340535565877930282591573714110716398838332290753384098965012988576460454654220909171215466487913541871626560363671736945394383954067476291541704917254458212996946261846289251642055529142028590087622544683191857887002478896257633820375597962505379590148469379149764491021929546874567541972923089586571344235194355208953995093425471371765161361749045518265012446477762281352974502240412589618612877847139081427357364246303198377626372526321787710600838954862786797673549896231641315205799327859046699652673421224479457391045501952233128335028158687463781343201532905575082428581537208973574813376705622473077918412510063788386052070046809846214792174734671307484636751783852442511446324056810550818601986360330743463740190533004480541958721774189237219845394891574551739937760049514289349092264423309466089312956004189006330519602251847720316759661116931291733309637675258330968167796184402609538632273680094089356930669459388438982426819868511958213601379876239138016987242582753450424560906972416976268896893385518814409851194678863275957022144269662150102736870742442030676123595075131992399883182085502045238515444735212147343769585097821325248538220373957554342546725752947848707008952002425764708487444492690524556939660086350723283456487920183603644056688875903057151694059506435732974075358171063258236957901816985513340381250790745495217478797653871400684798545351446872923127869805920513097588684598965779597391864684979119657900948665416135993979418271777130108240797936798179054550971276938226073530244265315793502912812483263327153053019322849651434226194124774724201184762622768653644386032486435983625482039320336616792197775504771935096544423236137328772699285811621221084010261095061190038342798117115079825729408988781594094043250641128498027700947152643068619830646352831980242443736773457077461351481383878472820181855287855127856578833477614141252175357265780297118120932166189328592194033477747885786431920409175276222991979764699022237270638072488107491524097708259599412298499762964472422069807841618507326195068299965566457469198009429803770075900231684866269543482993141152158883270709842383076425578431016944864718157385285771407658411602330826166283095098846611898250043647100005845978335777737946670802482640256326032713111086476749376263960640089823543301860372278694799373201588200359692891282283708970787864877012787974620657356319198398676983533604000810462859504403496423352915889256757834174153956675611985469814818039052350639829005222389834463026363038498294328351154634761491834651400438283215340388861715655850889312927810931792579499115928499291379304505897212053232334669466963152018450998359149115438124109672309336090573883215963537149783851666011998700248052467607159454941536599396264161473431600461149927173987341663586592067967754627901130909575200878857013388852176762788907829704629487607791744672164507244644646694430713931041041755401386641540733140713944850192184106659912173292813744835605415928725083564948383963635625438352952920132966320112023278268611888746399476273206609924900499260493048731986020646383546607879738543481300473310110808037082355297711287016269840806548662452357821909972675357812228248450900171228905816558186453091697876277793452396293799412456980004624564800539975881857634506887197635344289449885353664897255587484364290808462025465261175749544167205241883148534168254626205610670825800050810329584357367731724296628158255487565046562595102847970153182894542096864303308867414200698511297302089505039407136613370701685416498690268771330474242841607259354608079341109067395161508656409892630850691994349589583006748801881386245108689385361773766134190275185847425054745080422330623779505714913514265005677260862734902313940001850100291038152763844449705223112894113161854139849285255938437468324153817924866754609356661976098339843469630702148283578170626458830610929597774731102559259148319207258388001849441024966702700949237791998901709458561777873128637163145157453431709551709172911781861200501372153140202229889427215044544285175922081980087685614815719233539646373206076598044709054264065260079638005295445729768293377558206877342136171826096404540929044107857485889723197794288770384319584942453411483570600505414720635070657949369046575951837962003096043311562541954113308969435175491745413996040652439164808473745832273347991142086775084420307894679903072952366920044157105162712853776001959012885143322005461329190417591585390038461122943473247242119649137933296063173740236226912867492374233018429656932943111560937570156363579505787567838855663422408630474976119214612621082483387712522891390272328709924851240222089083766390682982595103829182128769945773556570139398671763693572622761814781943768478450217106370854490281903425611064579294877720869979406291430456382107735774224951462200034457288647223594986647468204449205759143559605854486244179547626367349434330202528466323094014488630035084508755703714260642258019485664363247162784205126746967744844079238304348163808122200901507161361961558592302464877130082822746652217288318366980492367098218030335835984091226053889126665532510520395527053438992870409410021798140010968721783473877102938940459291076550235679834745040420810510010366092278133804835414546279106713181658259529515726910477211829665815214764556610179016030479532719234828622483569366690310566791342720148441066106722179425601606987296957136416549789728821796809901830009350321618580751079771712071107240637678846523868686307604162789661968719158783031947439595992407318024943318727939716420084204043587069815980295837697786542401747216417573554508385119219298452198717466146764307815013017752170476956969217937244207439944066305701798432808272653693652969204399847864698525102523196621929570672676309009792167075736358754972577502419838103875909169936723295888787737138916882824224551439009303846071182491521647976877951819997945487548819017968340241747630697696942031254654782372205555344880515250891241812066263596344668882113478132917512032673820926959918317943790764391587684543345871509980880081283046199361423394981113515831579189976669437415393080972757547948956192542613939877441528410902478441835183700060573475691767215987352309529066622881402442250328950911606853142591391639615522329323039645226825909159258716111649901795032249760200966276085391131230056176276432517467551472197310287755207602661818069719253823363793502509085989864891502194611350282876089444048656759454075575617870229531069343787876648159862594905006321333661270333608893501329334758050006882881990682772054721037559891695504288069915487153133480683906661531163987838558002096848756909125787581671242459094067725427730560674318503609969082148876404705126451043174815844442857256931785911099567547867556195936558538198576885860087854990331922391995873588624140364563116605131137951537417744899772861145351232860323035849839513207453936265326129151540871509407816495181763489512475832499470344460957979644415660660984954524280840319111726239680368596802612416967291295301274407404975519702710868074134041627302839456790495577262259998603921348805933685029508041319641444675497979693239356170640887063087255522239550177070436644975303359814195253208526495450770197161255959191896006267102397401999436083983250796383776900943635603973049314051518699055632309629110487045829243044362188560818279859840834907176078200569764626380466740068861057974887462937177707928925503600013987696101217383343404841645166538743158936475668997051696519852652750563700685501698752879864725962836457274100647389277521552410365448100226154574360468890156229159043174692964480167168872363537082619108730435248726581834890115528450751438252767478360155043165500506377274568606481797817365095861686050311290869387514696389501122732353148427830806184953425772255137750473930785527784035203754417233662546234198546707135941828426197491886521876274544521576282289428771698553164800012567400320674785179521216621209808358526785104821645199545071471008504292553505692121569881766632870347665485944035511917289342221928600378570628905200331249832650943734884469375326400999541755915650363953159828023859394433795680505677243076899054067093179102463909937803775967493503840069445147226503685598839316495621527390456993477420000587282434123687433074189010115353967597849794994126372696943476534378756278032091902607309177901221981396661365878413927758473530530618777905026892791769699047522543907030113954691680797197740502529866056512996401121326551284275111876018826252411608521805755635143372402421092613432995730223426039153756421887011317913737107711379780255460762959120305941530434539757377541945615471752455777762399388421510037779321867446852467428076829900653397868281626315710636637635398619777579059568508993249730427134566053849546290924414357268550722335966587610168621648048910700953295756605416685304242824922200973783371200822544479997277392145684309240338098724171465338663544406389365231654795613343749567178381720987442402138218578309848654171369859471043775321312689513819111908744474382753421720594167696996051520161734687709548039535870307814112723001289435516981596655032227398462186050648918768748719358288241583138176711136232065378684955835055340787781715154785091445892946074598893330404257965786498911318908326740643062171884202788665904797081939974598106369554993911058544096831550152746270823312189990076459593251674274663861145549267146327863067903226383748231305403673218540467934396714083801130994867133381401000703781690386999140522696810957655760492962632080282779726741635076485033400333522565102194602558818749821864300747648245037709475761406336529527037015262998906312572144608986717357557306278448594069010075886852488965415339539381808375565589197139531027189351864334261674439139789849756313461917542390228811215878513675925218183733869167852870947424725088031468373031836889733154848990813668272813782163778388518802536172732522693380932551387610819190341951933289272538305953247474362299201277068352299693283656848174045059403756074641525555609739566810523348522884375636269180137227224944680352813389100544483461929344380727906473916889504541450155555213798431266426718187170076522607415602196888489592988240767793036243378203677274472760744601036144290511709839359260076299274267458611779272060011490728092784357960756782439381915501241792822162149632007838472887558100863402184474886154743362741767160284074002360039181153511608286546255279453613481237845643191901867926468968816873068583785131768877217592057410648360693838312944594259487030479739805501718273825548994554851613949674134961532626836974237704163746660329672486995047031834643884636133430294100997906415159684755256813913359423644600199345676155267201107600905176530281958866190085614792344410880326141859563444861991740454840569112630296686286072198713697985439451431582952520957081302406023580163895748168396991906296910550095725659971526471432110860475552096206549514454009542221586118056171458446354337344028311751342397557977347582281756637731559825046926521153495511237286920848296605798800456693339172550379653916758149095987586668783661964673306624107343543339881721914330636640517377883174079874991532611161382927382544186801877232644630200086579534041424971156787636789250439829765758270922610053777584155215041666253956768298105044799105110143733497452811647763884295768990488965172329008436862107875735338488932436976928258529704755008064380902930893270917185839496396117235796485120336078275121341581087238215773422452037716101535220176811394663042405580965478678168753701442583772159268102958540572407051322464154402130505142763298467419645543811439063118328643816170153644158289691674629764822377098555109627999786225896216067827580302546853974952888172054752676328441489683126521521901172651650228997852292258204971679757184149217371394587913818921783344512805461740968796976449013860335764386717677446791751556016908893145081515780156097495949643178799639051479579034019788488275697320382552048826569436981987951248692876829571056402106543970268794643757578666877876356984022442967737363574483660545455944358938262370892333336875864983705490274075362691329116928789788237030463145340630001571778989191490688827061362378492831031812834992903737853269541052473999954659456266117373364605072064239445767421639183098279460212350901121461056714689050410554151571028879413606964914249621818413558604070380562100825421062512829557218151826001964926172135721363097352811818656151948224133975096668390239368660274553941575259650869009104931638008171169325771679866500686816086442960950786473405574097495855055177641200275313168367714320786298031737647642844917783759500870023817233712398709248920520527059177421774326708061910593480344198150120218961924548449741876479636426867715124778752865301133490657805954005418058273907501166496736015056796026407503779616125438804715026964298413333813515363663684661210174816321954508764878399125324317064935119842338292013718359378821509040770902908432587883327168429012063202953180665586795092732364068315098640606462141741022779461905388781250642996475191434838168561227828849440220000381458039376304271931696143757302315667759151537687583723768151402947322473121860983104809964952157354405731004346306882641453148946622920419841668691918920968469427237256977930560987633169328744620392917335987343633445263326555631488987022537539419674848776964753819756083912165510564849643919354166272944714254971548707785271219869057655542881547166458659049547275644259870955238871509849996076075767205559024369661829449691811205522575982487847720255587029035203127886060084567351531060580159794419998323370449634903258549343586423622370578781000228046352432678619488787001038961473738779412593510428959063229088462636074388625023384471719938854181198942647707679770391104452478664895429014116380832515745700461405118206560258965574726442147957360366209930441639943362735706768093214941872541735226201778213314015427511544016819691417245584097775319052256534171960447355691823977514153339139598768410384457526097736246361933927602577809022438454229446860855847315535419938622861410220387996509421761266155411592137180417208455075303189490267701872138218846088817697977745081496991608982823888257398400164007332215267778946511049388718617721197211809681730509617913060067466265096867205336962782866782171153354266502847481351989410026085731682049511831536545310922972042995272604593852689864947634008822398959326476108266936747879569162794864933102070437183639409459938658822802845351870947645322351743373635043337787397710888526942122813646003999605838978354513508868636752883853767574617284976713848304009687944951682767941185116326332391885763619420162821634384812712364082476423325714149809533562271311470379541010635738308312537086215215581628643099515739010528378275653960216291896730046930367180925006633043550300670470714533769109389369586611414288425052629876655507886389226942227388926215796963983920136367492484463071591490069741155788511586760427673308365160956652305439653392089045842287666930643111142590878481204043799435773687233220927948453828264272550526797282610658432646374051884662846313357521746898230306733977036844926975842678604076003955492705762300285795214992420523681979062887058271385744485184268522671888927502939478308976070716842174869489403236884232726469689408090907217883623079948921487967936355892818016438796592573777991249682173105687390237188381970955021318022433092840800242302403320715366355444512895425850169498218737974765499782979453030424576481562152926865215721361388116937889372030512931941655882945572588606286795288907725890974255864479573167286153076086919857432648599733711769093882374641311313159705726804285901223901184935245098173939013355710867654417826717764148754620428140801541294969313189703602265623944230269151511957522377967873498878687814072958872025213286083105710887563778731748725743225316330469801047324641093374273758145198005182775565203015002014450223318842347009121601785923047500088138452119071338486336900307532041247180862650508970580468033039129805117875769329498977177977977814470569365730345990887634126914727932369973964912512638565688437203162329766423448173525206933904784749515143807352792923661589836931737051122162761863347435097662477835829598523837771094086957964064306425193155057358138646012011910444456502417110192859827034077094023788043710141965015910983583380730069551350069935678633111087450601222999145867619829379166421276809138232390698293619324765465830029234541537304161282771625927460574590178295175608149480926949469619657125510396256631245491667085713070218355927817800914645667030624527862665514310805137083396900496298530844395797698957757200802129987607421233712529303190057167724102616501678865932776281644110107383894610560006884584702173575434880617530359803295688503299503740385978031754423814573255434252299689028747819118796382980650652276430822224564799811203235990276787546066194199463715598719482914632766739705841598675760066831578025920837042141664497759572832581230633920693604881400872971271450391729396417990659785760387516531103745156795919047676829503227992713900653873600103260590071729323903061926164093621801238392867025743391635623246775750202094632261338503685654664069740202617682893471686819701191111501986389596074466721401628648094660432386233629399531899600042934207331032966921965624658793542088024148466073398387456986035942449826422632827335513126658739504657191391512595904640026681883021126701000786442488672471917305388177461561736115508138558374804721477085368059736293214690775046476874553354835128155482786644801565198063189461350864043934634990062475305306017164340445071875365430061714718153498794341283466651909846966968427786652260661540139041520031976287368807440892590908084973228525690242916708588419071246870886362952736164744407672302755705390719564964548362760566131413100340761047679756783067120665599916195974320072420275905864471194047552490966446190078322794718973469140458221161933039615649735408836644690414259309537840919140700410396501320156748804179665238375664970133265498231700518920682972257595502760485889595592996849953177358794862048389437299170688823298090198977111458233628388519677131718974184086994485808298203084560360999163650104743194080711416692306611979675500158177433312831875955720784691179288929008905491700917101604286446966122763830788686038976837567094025123957667497077027806035357219727120864968293256582393714318126538882798075860364019079234940695003542278080673057131949486114510743694348242370726944342943010663151121219737239808602297720368892542510290916630731150758861989186024575341107738311759129375284914251332047617870969799134595345766718100918033572446658114523172611519659622324844214209962644890633218126745790783639096352845404477202955045250070073076666165242812504123048667383975611619329323060186924482363489812748679864545789192347301630651815397358697786237028526572247155796333873164379267797756848029100642362386106010312192216730422558710369662532945383166545928422941719065580644314889274833038981933454511604355312474667294813189445629104419489985324861169393060299917339894267688984653852197764151645193143967940887576924215134323655297682394930591306156078155233005732101078829259603562138734670318519208243335594710216378725607614036455807578548698779083234654294659462409547505133401708297582265627857165357368936640423890928819153092444968511319689125523313430927622630607399477020928188503577286275949402729185951294949955732629957720742032898688013384491034446069611080385062302252443655908561661298542191623355595219051718340768061086311175459702115368144778653613908511757361500190372923465109738052844592018502429855052905607460283585695331429956052707179698636802314890094944140063806035422794754770336394205726501740229387299798681765462533257330142480849238917204771132692372770399154918121396203782127733009950015417062095567671194974700009081928599092830619848103822826312963728020223144536200944693475323351344481844202777864380280480239570315413916654217691199109589086951508482979880090839317992467040621074269991059863652218065205603495289653552162218175167194388593441040604566045813436243316511219825613439149959750913540505240750179711997322860489606989162187974841925548775916840934994061354733065079216525810885428869161426733109444805224259374317865187566181940921763892825152217546868372566703815582633580250529152431076191428309470494306835781717529867626689926652383645349235042224543848581405527017065902346613886737917755885609599599699272185162701078475369098567237372912344381486016562616533075224083036956835744654570895287682959319487015894444512135946311618118704326004562310845192773743533441084195296129443946644410589175813911392503402875665646369833325111224834081947088068193780773767074039999136548716283546270079842225928761083369925593243293035725593278393062275898626480133818528477787866205174771203560316531378974619595751280394253313996848956705526372371917634132577358206368812915065807511015961020100757896758939283786854909856891106792257716353132719829908691897710475983244579737890452180936228260319903884896576826090970549090623691657104529698318032294531642278366749088656489948777379570392387391934106864108749944916395210653553695992399474809770459499716704829394775330439850973639697494660244755488609508068439781241205956718624816622995313065807413545542239688153175783278440514778598236854065015387986893745094701853247104317518228101081728094214816180498947332152613777885473728605953607235953835765224983352499641740038004889742996219436747258936807948710055956106623780888625479132012670964556882958353847538630433859786694757787126959392567028847501126418864232037985192395783863435194524922477488825051126572883218036167723749820377108230375047875365424119625113263940780778459102529520324561003223102738580991816692778368148996875502707120905782316270630069847433685916810189674591680455083953414509924857452237273945038484875420890617215672240279601648297260548230525549631159857527010128381272747006453978299526302149269278947593136283474212171253062176772191987873859127510457737488971959854692192572815865010908713941535260230191203666044124878903685194484414204084705793574543781771719993640874792610862972955021189880526698374107461200876474293545986250064864921629291949373432643522359692345990354030001213631356778017045436865545933379443740939276354833106641023556129619341094592625683377973084002601837435218377149873988923659888616263273238524382870398816433493021317972096006178831852081555919594904846839322819299979328287603978798320649026781892287482578490335615311842606835000445537706331813401749388347064662278397976372154919368508965394711324582599711829243890283294505146264001015301402584931790573584589881267290544600866389484579240178976912787592164542992237517807200809392849981004294787636587932062925383746290729724233997858353215735613358730766250677527652151356505631657106735128209790361136024263292162220425280405593862198980632438388473995061973869346583313022217514354157957346628488558612107615115857501497745758863786895213632675563027321430914897436883372198215105381568422215530482017249887385297611673714025395008704991675768018505136348568105467971742104311066209262929141710682871896413825188200309305045018885325374928368494672070178686135258186874565608042104431868928980865842008489792405862115592645530292415090085660041635972383351502458378606837295880806266514426530165923888581594117462919407203510552841435602086654202440167468133553841628061307720725538407105744984659823553040157702631237636503682859727478570112692818787346030618143565362239805673637138647182261899894536858356026966024755273685436746402617972000626709900386050372923577679423630092287997292672105183308960209700333289632521681599503315143790013977117406661148806618915369789278084978264131625863604397302567373116213834860256323000386010581870480484898928740885900328705417498439109954419136460095150454838636300375369627029136223202699774521330837757335419484840688674015931586236664410363376587121332306684772691571082426516798837243018615047943001356617396557581036363524854216089804237882463802497411734039774352924943178266039530106165316759906061988185487405125048183986135018356037874610230405199812723326025248041589480759826459678712157998066328373331843952783232761173190450873412168451082093884629418311574909012060065320647263024521800994905997152605835750206236795746194851232278190459147151394807876588641409944139350899549187861020639509771219734077580330297426629261241335213562321223631722367620066516527894384707458555758012262903424955797514479041944738919350111856442764881069044611730275671439132435213463481451280694416323976091537793734080742890917354894127140785488147505916845374222042372941944961552379613161983755603449333143646630099479461390206688313150308456088534685750442461552836193163075895698255247139396365565369381209429584640276246030758012723727155861100382554589427150750634845570434947081829658180176488850889182204844669124743043266928465504553731402151421143509710393124870447411069675468795274100500358082878428632071473239578149918549259040910813497690876367702838575494654162216970456954508297924838791955466080220151155353116687153265777892520528437810340422951751543128222878415613295110451014077815079321720244467492980611416923335687704922789141239306158539029168382748639226537930684371402269458991802784469741669660397995008059176809656383165203230819218239549283903638850920379030703330377637461367946420908139643051400302757469289412778985356829873369664654443982116104564530695696734224782422289416132851604833535259348831605273831412894209143592094056580000168307204740760949423227626699724841163500424363295536100535687696060852348729038600691609593219891762038270492813916243774213076567527988681749467676280860983243421600727641836486126742394005669270905915175958620605960086914988258679554055583031714794339109472933662260808877255767388675738591459881148622117214106299744316227199233469282336539146387101361682256275201917722416363905033610637066750362219690202840058428781038126925117076398876734237198014372827246976556305119893028853774930935133002910442089061307989175729011512681201177551086220232051057806067332204944903372045598012242800788992897522954555352673301254481102791457533951867942037226058099856028709577102371106362368449200007784998168447912543016813904732050045073679740055248318111059679251294091112556158931510879683558716095256464381759760039510890503189702989400380755355375433548174618775468133375526175472293143307973199419351855948504812674395706306936928139346280796467645711057312584699935851249581513099421844822224539584442503865468222822682518439002868563097388931566055191789135395756222312367105480583716597967508756242077553261652786271083081190044278407110670191911160754944912684562853781950214813923528298517703617112882157702560627538395357473039144087012574401519452734497344367800447721735308528227508197893356937453129819923689506341079485549714947829528615539879137567511864320261789404471860596077454844788546293692542033455832912607895628622470730353135431897891568516766984389490492657339524474615918246968691994949880313528078644014739096640249005138802962389564462423755435938757280536543712975569097722961498410551591122768959330044094338172838258016291157358533540405815367334079662611033302708085089009458731453736764168689792158274776297386748636724303928768928767185729859610882089797782976864149846598467341310442459282155643824027674989515231432094839465212370568474997604291773144694388737265208974056480957979375747088884246831484132591503037267066969686185970346743053607215777543444497609261067324673140583002223565431038699548596693589281768014977196044815470755822039699024377613832131844727911925091226416244635400952546053714630077273049191553518073697812817069614790765514079601812210480796724111326308281609058783977143404107787715393297903390175387139293578734168609676553614594503160147892313319319059330720089685320041279609914702185721633120130888101964326005951924203852774834950525536375457402489638163175776862800642890080289829893849775853149822829439900371334738562624600906964112859836886257341233971592623156163803029776454890866600783795402677218814823778202928073973737028778985266603563987936680115730034490010836298101420337655702122290221107114249592258205507996975620019432397163355373388693369778883613597198412029542937192967516393591010640961450900208945257372668192531536832033735875823391891137041307394585975419452475360607136431305942408167014568907366958348504699411769388144088988792213845733262488632506659964698424199219009844494565793735889178523294201921548030880185343961798597697415208215526409862280555899311628566917429715633600738584199290144082453115004261028176332514712119664824297411232973254436013415515589322547425443050051402756821173667741515412089656590000696122260419051537691324208472326783819443168261881468342339137393512867896987491500105221476490716903460804821661418189214034019508988643956203974411414046253940427624565756604892109659418814247320231817694833804644823475161706903440564749011891989351990422122633671417077377865671283591265507715818894726412685454705585871799645513105493258973163087985163799333605231664018635832734951289266716730825714944207642219618053461780113453680163664443772304547920393249310624218439898844035242680315887247772214058253107065184364587209069495813433189068606521941159482163345492504149945944366441681347702098012086613642978549962879149884928547740539448674483209203750127421239096448697224765941093799800709315209362603754929774146980308923656910687281221870019820835600783061110272603158433644725743956280452055292585051295371470927676476156480300586821201685754526659600200459742256665539284265344508867274774438693953309012121545416031962678853484825732700878061261813669944872323201271194480757957290047599128992836308317661678997239121514274571755204114841310696442784905866137062713128352077443580037928936446276356001774288541632880744217448150943754387331401821095625056734125917291440302970305621637475292224075572596913155166682697878513995623797963106160474619915744685131289606594256859329910678980853166589332551424135258871716410576353794151248484539345401420268732006047825742001974553411794401844254758068759488681935636072443205781555342070188160264952396927863881774789059467348166661004453802263709224751252404777478976954826389909941552324660582291582998500820037242011111196005606923837070735104466859364220834049146541446451394239598481030410872846000672945828140144315137480702180469465812413077062223423199953196643398877107432222580963977225114213248623098163748937359014033937665063673635086189960356346584517084628343225343330403852297708991758512473958932017613667641939249778908487699852427907085404179155147263998453914476994832681251928915941397505686542021773188555510062011873052585169720592085862479552055450493027676032417864363742153537078857337354936532661375238871926462462231678338297586451674024491932050077764865974390156682062750033599648392338298480114895785472852161800841547045091632722069591528583009853239049460760792579836286744019659667243806597789570765741524846239135867820640931190814150154394423188928503630601713023593299380962821522103379569684653531163001273825836751926216463967411159979933502300510535457108586401412470047289429506285703658644516151354561913439759927454106093296866230703154791512479754808855967811622063207825501850568477032012017558169618969011661226381330695264646367581560202826871781708839041338725526313315629312254466339350806671081770762234188820528851578182632118846099195788110832562534256271539393947188309747477661809432169364047681443587510991730002980869048978866379936271362728442365822388459899679238277569827073346582833749038857913195999957274228288940210097289862198638609930107071143349754603248159840623067228199638263225822636369159074928536399001069516321121993099586900688781923632296128171498840747004514624448659870607428656063536260719859086103307110929695997820710461322492207751346663238510080697915158392417794683662818850496522436738886361427579689858666682262037354804802015197627543048179163271177178304692848949934134874192256361755439278793665963905920733210505106939024161243796431704010269462292709574635305523883592239468842606570695630262992355173675532627033573359739537800343794442388295506634914425515928028149015893141768312870721878196526012926345408671535006852839937825309670696545590632152208635438552636665773323654841384292310465826600839214024945473991234673636760103075378778166164993453418574080408284798174810973572484451165697726828773788331553563875460551952695407432552690376558182896071332096522901933322832839571555739014226616076069187009800066467638657144643840564717893785283858592125848967278199331678232369393260055226322726811208802644838895165101463402466777216604876846160332944414855739798173860210520626025138891014013696813562022917612540581341542159446773816203148452509972596182648736786772666400066529031701136734638288040426553400694491789434965881111925915709334777320422299556885357763083365655608830385320036827963849519662440092252715925498556594293352510640772860694592529954907282191800370077123668606266591210286002879352199609190561812772370280478359708234344374395395345550894154046328425312568945680423235253536978299853203618491711949342315662882704489337738844280076424492949071955514734303816632187453379978677917524831125422908370640422681684648714661377423098828326482020076021976738961466401139999165054401997072333912221327906944190259472337007996401017961713071573992440524552580689171086607092741802871059689925952691517356479659713198719636558010456238821270955892638949868866154425687450966665721686384588234885123156614486073404859529962628669252531425753540443396847899843073422291872290845306914043881710392907400522582530980521405339813569410198782363627094183234411514917262525024862504853999239247354989394228494637912192443181586993899370495200653677895806492725265754675314180352381868305877757963356378228617304199356474616631035936877434593004205093516573231442188074908067218857686135131885423231982771771617251359540917944187908517439930520413893290815433080956916991286805735138413730518374509232016153365712685126982976871462809699006337098219754834542516186372333574944367980516689041415267360450779400736491852466291545961069103612219724190730066430578294637173910663280076592483833094252952341392989318280236257554471964172993970665751815228801187169534158781534594587978163674191504592644534000930102450834041127270637751268432236103386891795791839497093381130457921664096562772541839444037442105549734138541255720200598261654288524789467463594615930065717623827288840621555172432159689148606959753479328352640431875617569955532286476775035363642254576902044891335313192719520838974289139763996904244777965340417770571217837290068512383956103645472088495826570667438407684150369108389752403591468525846684508372357574344026360239092177808724563868077186450570811726667903093687648276094442011895964282626360139710725830597558644826256533281955812369217291722969894716809769185878904752813966434796311428040225555782693123442452180135020255631503667607290479994711810562035964713982906227404804723926930590922619631117265115748238436660064645525915909245343837670738612659689124345327134827314000912623990468717138789547159568216012879177638527712360417453979359703737558344028676821372699486200966649645040446879378962830007807122142472831232597144869851564436361131719489304929110938084898244720809377811635615651497061139273056042150550738732962516248409147109958097108861290350172408095418973414225152048441571682488202726857751051242472221731964413794528059808598864807614861614464563700512328496494047489657100390926818307156474585045988077809201389605678304526529220502361104921230538824968866677001394850818011943846690384693687974078793690223098919899044000000436609069252980616710417760903757895531180703237680953732840183323809388915839411512788163599849600332456998782339094984657377903376806278899306791283212528246846628139813518275183966978210916623139869641899215266767331811457990326577621927378498602831032334635887184588197614974125876885908129330497230537271578472833109107589815263789971732526105599320836277952115150489234913059858312769181283049647759436987219112958118169067958244500896013269670509734613605965665815505153338893606671189290836255743683050216310324568573902052010441696543179828212475867807311494508229571243045851789188597752233854341973810582785491416731467112047451326878754450555206274281221195993239391272601760022323411579180501519946719649963755633893242981988030396563657526341577539599442274608409546274294219645200121389421967246394010276531077174480361369062563869486531785060121503360801886576607414488774262458447066399794960863622972087597041531074245508482884455031445510674401293694866909405887284687380202197415081012998079723818892860969352647071194268018610008746729299558753514026237479651750792154241517943047524292786496016299216997614643109207995322441888469814053898721592417132102867092949108444355349044777733413140084658938988872040339098180971624623389317270526960984576452622011062106677144429731301645543875823529602771937768688842607538752303276084340051010676371838737073643324574168487322340470531288974481666650098034994550771859346543827874631993792933630684257762013236423562390043422669726342874402622478836331378266709630555384810113472442943994750428873619410597874591908628552422038943981626732432571920842775801693723837057512688737558894579914499062108181963153458553669188904680616994938654562365038502241523559897330640053464364215392148937297550490304038836895428098716050335527247413759441209061445294438727635647969430273813021524540986205423293009977425403268212901127606974278906267844149050563384316812538890174992171783508122172800025405289315217498101465890995689668288095316137482919696072103798001471627384626618323858936009318548170098894487507430438704394219750402163852347932591118195532578060771712849954126473155904879487662434607440143531867467207862987967897222113780446051310946731370689904445382480180904024015038935029242011330308215346633860048822109523265520998721252770051286611115065806774449830577267886754281641283776748856131312090270069264707154220238498606301095994086527942072468399120489303685662424285680077830076521115133347230307903833378956326215908352667615814441576590501691152129621236461744239985051962260315052653283297647366751575689595471035709978831926180470433330850424486787473805901011027242514464003405351295285267882547080305305166958823695061475950044169883668211994787480514308823280167528442171279703282212065776621765737572629704458661878184506387729030746315611926321776578475998042963550316434296260407434497536974110164711564563035508595290106208355802879293332647086884047477069578327333610337038134557038045258492745622084026480881368803150653974733949983284409517319809505130043201101067681868189219791612970563699260102405701161294559058913728415853261951960059535752350381098750276459741907043641247607875056249580880184693871353326066153046744713274453049944691557459040835014739625894444173275429224139625861884322283207660478498580017578815731663303686207423446934999093446935893840784216673654193892651996190210937666200281895398482260382787709958482777517573600757560640537109191668161260866425855385362777076164820945177759347102312591095495924090657583323662471432288134723476403504874800670542056530074450096904356318104824497618498525138487554730183476408640928163590549973887141280806888555711895234297613242621587987890450869516492142648068630418326061615307780600259580277705935260885094181605567798563732454051642579280584737077894653085403463478815556889941576132004396463822075086081865815304611049297792284374810301039793532758937446005605676358533406359809765770395096609876066176650355059672014561091426395006775701088126200833234983860777763098523886629502684619008767098539941212161134478688396704855178385832758307024030061410608458509673753408975316911188955910002843274362386181856969111962174290404860973295907281751529811953068016892195575343920454912402761846941058905169313854580221179151828710936530708900079807598482498889149916018065885174301144125360567319860318191834841162904560053502236005825434660953286311326733487273196699190149944973329480121377638920893967795864743324226022950287422321701931034912470105647736706288497170771762862673928598656718787477637486887213640541766435868550547812105327773224306222476247869043855864179065434277653286638848904921353294700015684533376236494168910883684356470856293750759308172942990204304418957580134474093721743555059921800790795830500227339752805810026626775899991369310877026875613610758903666787177319343860643388948630479903081510968196181709716264897949020252941041806734827164597660427496996838079058050457432873506834052849297131346677321824676828158772997631088723462054564852931382906069852935117044844541718708037555648225510922787451526224821446324949050033894585346413749056631542269359830397041037102498709375687368944177551920965449154873798282781734159117001412196356208690192143354410173179327844967831779524698903446260274742183166653943906245937647550008149559531873106734859341709504004919728339591887035229155867272050732562003645428627481246701610224826613452676084941746497036986820075737004929358371799175077348726281225493561666683430480089107632520332395531125355551823625433230804928430243532050716819561309121824529010922295517968195579595044481764483710517351186461996950212464045938582601790440580183355832710482694491155985371985233504052254515103603046833627028760040150495135084087231528642421187279842490235393112056395189056075068274151839016356136349475333037457126340596901869611334857365241602655463438914772277299251552655225718281717272603106839902047776913539741741055356918544830472953423726945118847838894580276445543613290495176350613264815888810539939607454617974883040579840414413381601012272077154227403465212635864283058579429370827684646378138359894486196456811500931223798119143013145939062179914891586592532520627431784625528207672820771598963989922040748410352722917867005389486973702337759780278381376103258932358571650450335169863923026874299648093555940768813419800060360229645879043760969724021415735057950191381228226521773555268230157222030492397080661402610908927914877252405976937864461620232324841565674466112692446163823282494100062112410932641885273304437615406103009299428818026045996477589387468864919538082430281759175718496407986232535360372000334784170303362722447432294942666678900757352045230632316755832086632099986159969573399249926724545678576540203114088897209972172016875109298923521120833726343131684869074177129884700719242265644339201889858361191841783120926159649987309517682925708430902733738614795680371103201865057193841506489311557103748763447242793267812408018077025452151175483162075570333147878474873001773752038254892020969760780267275250880188690450374231802934166872586994954679935691355855717714717392084117083708305612673515265707931563506138837135834651228611640245981110952739063190762190017790511972165589973055749650205793757881224732479785396332297183603628154074545247531256584929991446416462428759050594421165574214991031568749029636266541422359086282226997799155162453353264701986686274895320822942902162933873567799562200422246687076447161644003182662877793251043239152831540696004331831626544732515419868501079061620028196829522471095720722983959612433153908673770718954840134140116389267071351875365510294932571304365464854378508526587978307856259583606911283417170335216004663709630039093841619980914107306813170225492659151953775550903601771981164673122969045139360475542211630599909121928140762079969831580799315903448435361437998564290990516961204981710033189405283777479889888321948632316125723395267475673780160017542892955412584344019043287237576970348084476831353169530914382991576376025383886828788230501940475173229347251036143098216604133174064171583647764835388019181199113891753858791404712990231950453558432602107031258425504432980668690643184611226301593362187503143465122582871694607902171871254282049502448527410595973750279872778153628815476291650398527180636381060648568242308234520510570382156193423430839473274557758646562401585173696351968541436686885104392085993672740816142288106111292118515325384437566193248141212492446057885046725681694840170754236242978886619926330342327619792874724139741910052476890635129355802389826359245935595714356247916875781965780174119031321014992495520917011634024858628986172000740174254384179786221921114810335533079761192007256346603234660293713711051294610293288459810276920474190759876946447184979569820353381434402529817931502681988068653344164273982827237566867181825823954513454805716261899232605042760296047531678872776767136966844113685352114547830054226303325345457478132895216713690772034806273636684805825860149555190757294964331436643244279230735021859885036047808670703006202962463180759169132608409578915373884084759193244387209222482953043239261394661405963814100470904771965069909623447674635412155708606769149441942110330112337476119119156181039463267102859117716823625367652839606146728130973101298017997445368929367972029733974025233619042919974597785188706834434736969953889703833966089558007625260907741362627979641705157718672178281135562012672026866949997196418323775975095464720633052407373097797782265547410784912983681007508401868001474312556139736378927288559993807971110880025264949268371344244580748638141147546722654556343471083191447769773063234738940461180150005938738373754251159345446707648749185501458523294907076939322710702980674609866102915154403400008194624398880909618809601265649503192742432581895328902661059471693616227995693198827949571016180430041101195906916953553387892072138986431636912601156940345732518848856830049090906140442646111755154899334801191471029929539922062493508359998312226528934030092208368127593685395723170991368426695941912081984962730625498548029765445726434953346330760803281257632714083609156491503801432649506273541601635610038831090197915204586428513715451707915632893706907809689289511024490960289497619359851361314722190138989558149381956357771648135379510231516640485025609343780661646298433424435778218641518172804441462058889114234523758131304079229302938752390092127906434104417281140294923511187207716927497586160959851694901926818503920412063922160842982908847187436415469525067675516744386953972188204009652791619360937236689539255187766516497940583786971349170120321738989897985099213798846792919644576670908350572150467388983435050950618247009307006729946894816918639359895161720686112898260494456073946240525740011815236301451159454708488635379131722823173578490949769030890175643291754875532675784529225915578703280223593508675523596903617412104341184389131412647678452426415828789559080538307229819719436658473222047100163097915255989447876137039700474330183573593057314010414908796834947536143576168938452141144779872864319039830552388535861788663610070294552112729278610373882898080285461946284671714200571452206138410587948055526040562367055300331013781277397075122883772083626855716015035935261075889862835255557714430255366248891694930906541037383674175768734261372010686662206903060790362513430294245587387503237706062495635079979990879925966628264513725913926911676737931855589429756870998360368847849789277900667392846404997652031447260033062665883129042793956121023743575938564106528079516477463969688434191949300943253057069530527920372896734455888341608353827501483107463875436644379916306823482236506357652098902724648217859506563073828768644944149966828119411429918297069788715935055704003112751646064130540818397038622325833850012563679780499060509944724037486942522944285956458161515203062667487433836157738738059400419232626140638851888572247477395333319870304407468355413961699737940736743700081267446790385384461333760602291710039157859312655449647309935101856801375446639294690523385416896523738394884722109036743072301587800702119841146544821125882511735466492197628330656717926588318547369462273119863751374857785213893201617678658641425736875528524520230949408699812939835492624426302293269853498548633296328106448731112810822694342925013924400283017565711680133010713903881192608307048079180577712724838493745708563831795206190956411731651665130374694014438308276334728455543088665970361656933500705404358072366665640030331367239115619054253311709798954894808680721053207971360439812410924829898477520592666790208625312539844534478829179303910299161696686118952848254041310369710942788722803429271159774982182321795829128442084117884517399228392208915432977342296486054634069982478186035816579398846686529786266841400130071596448017333066151523649653102887891567112720555995386989593863759598664228672465037997049436700251758942450335848316314316019489521861951949038691843004760809279165642506195292186984022461111864412512799669280607905794248759976328613308129159620442990226452919406093140124258653682831371594642737722643518501080214161079523107744304619302714977056119037408181664467580235037580339305233080239667899975744792653091792500689899699716922751649280121362241914202918792120753549886137487900707969717310199579232288399575050411358052745291622201619567649904975841943278245436872066033454907686590764328278341576258249457977572766237940866770148907322454316210521639738003058656800865194794623585798365941430202773468220911029081753697625296862348872500747348420143931081416798974083282238890803301762236704529705675475273033489778116993236577938337893867158905773682951139193856807836993594847681652734171834933067577267049092781129586906345002287283996982452757997840775922327001791007093312203042273897512633054769058170165810686782778123230921808940206416676864170081330291604747262457767037205770545934686233581618761918183891804897993005207903431303098111335447766663592237479738702424370276136150754559772241772443885321875355712902007192029244588166421370343957756145730892988938834253464469323491250780662592079060174584833082409452126923081147160600792122332034681965074263417264490692693163984144048436654552779145062467053032104925642197818837331594929615973030995270954897465012633254194153160835770464359979387939105493220628516899798322540839874430980268440989381241501380304328162547673472737270216892666953797766956413743193387251700393747663339083793735393830498840247401012111449920636786160906843616641025605898626381892296689347525703427065022078712249205330664365975733391683066679362711133971393270287834804829343572767416795535925416171150016740276430246208388107218978061644721518699574005311330979344205797699755510710552517408807351790026715232004914805614199261924983783833549422014217652510691730680149494400555297181600200989419839383210592479126156113118055367767604862444501297706583621446629247870522958602507483756872165010261507837593592008624635183063501755945648889392962935481811928229708715090075437661310241482426324214255773121891162891740245397754685440616438154518269088270603443197937426836174369232568405443080389486757822850015094697881670882332857275241535994648233682484908302381136894531677706692072292985840648162372070003567825393799346014033330233874182777959012774709203103387863147693446868113327036456066032344935464143391440448494545692391805265826331662652377042854810703992883364191868085190726403733627024570901940920455443006400376900869859695572589928286456602558513143251048074646680000222774229979042209707709723827080076530342334671735032690085894611826609327879539545275524591726495152032267639320741591106431614767886073591677018474303153641218734860652575741733348438145392571781130941645608831895045137254248863751829759238927082463575100105434105917465991964123629489158192956303135806415529384923360188645604484645527100151607603707009552224208992606877048622524744729154307131889032947527543294971893393656719972402132816569800637940959551153651854802059897473588112651386850207916744341612444614499466327588429504215624058117011116332649121141339122224581745437247165650844362071377514760994021584848510466093719949535740651198919291885581750928254082604376515412777827434627372771190082651465245716336716283792713626162193739367873140928816245405977248291748179125376794441565352377072273281048047406944966257664812345462672588082275672562719064200799885404583485708246836310694065916216614796608688909780984153493582523880698891478502787647362994961932089077631935847829360498038063483300752732871325830695188432566409026985352096195172843974237708213567856197132627441424035837757972271893559438027384142879600202052550954996082190148878368591693610021315608984295936147559678818522874610084039526397132264650071301263213442584899797727965928277869517012539466774565719166856146594507579808167806134679158088350005377502465613742829496047159339541091607574634485330699732669348825589130741268027383086323112243183073762058474421946147720060150633932111092150217314371836724364676959906951807268399253336484744597543330723452581962190319390540437310137541688582230089833956545738823346964950233710071277478680215077578040283329210524601671067965370644190168159580543687793942629931740461109351376325275622676163525607270566013440488711170271032544710777056791041098036795610844435393262378445549554225446917790813126459603372257321329232379867136208623206619941537708863195466446400124015351740155928098383849859278236407713586592352926673706283215822328566988846490746710684487902991930905336461117922263205628895099486788866026996071556438926449764497716327913961232559748415049879039019821922561142908992525083709636248934920193771668166426718342272586408308061253846126541652219445660960170623664901658406390855306167544865705301918282708645943312224700355229827919483475284435618118621153043859373818966897170708040183922907384785003714195316914577273261645197401552376871889717578729126293085488853650644881337761924828809485292497966917150303474138883719196817466555570485037601183499163027880024661477005451836230721237057692471554234581944109477379578832494414737955690469460855204218895547158003470973109740866918639885294287040958155610443548782378413292795189895093430601616324439055195648985369031278174632240053158104382263614223061454910636396752418713917391564899131449947102323786810106115262486915311349384601199666463136818479993167851262757574740835981824146811425744204380608019256418964502535606728369870961780026074239589142747783212620276490047721625955498284228914186970283031498949441830382894429549793949656274469191279724119943070624668907097369008237048031433722253741560308112184739884114432959388923315268686156721796301816984708256982009799902128991132999390164515596376795961962291246204702790657669816331932699161997952010385238114896212036627680284905072645432256526637409804223355539755416892634364582750355890910709388707769787655497728984377308892497283097637961650633243220268731089338641697770873478009791337059016759177623806215184347637720206677758420957282191720587504555290930953644301695986891857350242828119417326686350058008481035275290497300411041197356873454118622761702617488829817873762628719995424577711322801642081609790353495384403467212712244586742354510473374249851310448115028181740518201331770751182538856054233486352311419488145198142917969256482002579119032960989475548498984536240208338532044139356947157597522994883204546238902011367461632177093633696009521270937066165295562467003014417856439796562282896140399569166469240573416757622380388131611251726233481740308423160546663899710942558235757790865302576303012995166973053779647713593883872998856535679546622282185282398385532536654568861334290535529864482067341717877377916986219332121877646376451318377362268438739323684369542476199137288037625742308227020114056315745566243771414668300951680444694513412089751971545373555472192284710559651829898871053355899991752769496984825321387245737778260084472862995743553787716571543637821434753561026637644396491429561535376721533817541315651028906793916845901153753339378893889905377271386905498903416854418126306706662391813467917755885173503161697236475474384121650501174367794862239064861745665669440028401183006943812271524345367794679717179197745860059255888386370144619852506961651386828678921137976887665278086417032437089084979515634554094215356050944581192539592550045868531927592146996705699141400026738847611817642532761703193812478788340864872470892092539517928560859405047678267138603837894121276226696018852038214581077989479031856201190773934288838792603731567907098340618214839760680226943126710845111519957812140353159694395602227767418816174444481761579197127046982796391867984743602643990672033084132068736050623050441727115239273893478713100677965423472480783385207702682647703272876152979812404653464174298488230782695838752362419869867357340849210733125083125072641351702674256247464686589140842626720943093756029910144330262936744034625869095236591989116992357985865677516561352421236116796898869417688019348475873165576335531378926500788747060961579017881459505498706310509652085575757742834263941751146481555893184462026989623381357075404484003089028947464041343532723779806877685791170862030210963400783708409593791136847029825815676820904762619724225344973254041903490514320862228290270284285075376444729044000598824485129036542414935129245156135193815073500260832723563231551042235507000635800178676433248919738504559682173762797392682517107190126489292286996625387044926701669295311352162779849542284513353979019681270473474969828344384707352409058146538102982739069834402701925704939648447704085231809549180411339150418135529683697522475326077348624473704811226899566697822908656059027590366014852015488161571232280686850134997232364713052941715502078613895975253040907462809827073312655661793941915717971138860641350435965172463054402737634448546994848540006302405118562597879814379704238037036792014871769436391967736449786939311632157394067762720171897872460715651079856932452652088244070148855324370886637068119314176395023990041535331246985607504982825352123217409718299202689745052802545264931530209598655840627361774062558682466490126874602074408084035811089418660107529468843275261501320428384940901872566929540056751446275700763589632330443862542965279911020588841602383680787220883258022274484921255710805282178245392059965242747237970181700831866862485701478577772550557904092221332929274563933198718851392191295977347742177281382964164824089170216293258199484802995168830737160922585098381804873149104584272076382173579387758298975819397463953476283794915280514326058028638472269946010046572484495964942611548872742582534306770070500109011141681300543917095170998087372521504559081496550801721590541129841993204889634066392609584780918866581979159703118840346441465051413787805647147339345583171847036011458080640297522306756076422088187111191413632162366905682766920350006187140760530645408135238079751240688151846678586556385046853175697637327860802769645821668003725038871145181170024487894438185037848264028746086905854186277788936618132863857650483264776154653256483327352869753479018907854710672682698195345429249353691524566154284107356434171165683321008900419320738009491567727020690936587254867652093268955558935724372893886468331581298938566831052110475091745149097753538892433963278580694372257141154281348244712506963412331718642657764297861884094135455724198446876398591055428662493203694420258872844330146719434442002494076434049003202376630790647287453199245881357983755547150927429383427898681764799887718624151121140341947903864989426939468412275101959382162746836370785878286068790131629295510653847074793917414468288749899462222599894482774920711016732942402940781027890471949859433136094602782400419065948383927874384514622344361509168617460193793135893630109891237495372745312454701679132088895032896742144838178601438083796101762752376213936175490576870293413295534585239258336086697361795322896661047030692439274147013796575596192575446883348268371361499181546976864796426239985762912968870417930075921042084686702255065190776754528562281997000710939775529265624560426455647572341388781509011806562668270021166820597085581002175274317891349279325847437900152895084686782716314404651440565824344804695233555355615972754550938202701598586928808953238310746027805502384344084203962385867980367255233718054870449003857365888462956709029463242795787496845131734300172177784922792028554709619523186080989093724656799502032476738130070631575638601251197820959828663180620395351739363599532283592895371903730441837624269107444552459606696101680364643884010490792220823568505628204359524364533875557438647838942219314005686711693911899952009414211877849408148454719444603132070415536123364488213428989209833048546809639998421331400551627376821965762071955103069697814236203619262722468040437259691539465143627733644720674954629370620248654672332405487352235760141368497929280542138832099071185498460456800482637073911113784263578796468432570074235648706318552223309823945705799525216775284328485982224955949853897281759648758955271599620044610725230042134200825261687445705199777946654036959427853346245621207494315492778755878274317748360042887164402663782457567477364428814407961822098571042508574857455241178183127835139270971617724444184323555825464094001392466737482081995164131942437484017986260219414228039154548678425488443914309495658028351529187201143609891789041041872101515342272223416719962601212565231806335622056627335503127374713947003708261584000955670441783195656747906341798360424889390279896106545777967646047051473339223581347766101011558034621729389323552367074718508325726767985037604882326893733795872891105616573351328871791241532679881852831457384270765188338793077134624078762892573496686025634019136345136947854287511648932663872281438533689376069761237542922710409963446078082257028045151490783513761401667197042879420793987754485679326972605787173617336794694965124887541020898808530772358293328869425888096880178286372938865359619257626453015236134622375790938696274575007977452233974949729246852969628134722568795878339750123196471640905344007577995819882000636326522295751228141296751044139703268641092902975589395512464990425636974849941222846721995346548162564652296092467454566147728469454896190405018542983436065032255833309454380946369657674336314374363871846602737230750703657465366691775352827956924622861758732809379588656631848226066388967059598343386563980919760092804103411062005257643477018885294934634939068383153873254384502837375190071850152837226866983859116146757299646496950600959179418967615055935724851296746213766423538092403273433706997559882485722543007243913225029169049858254395717141652510733161011561479809065403712492856853606937388711124458079031560062579676869785211936881990574374556872814979483672096043664602721503043153269204292220283087728274161753426559299527470149202687874288075175863404508258137714705695451195935513190435250917648639257993519757764075019563396798238029894913930055802661761413803693572389517219650880995017416140060075647603681812271965449419920050439071673919329246495236940370214281621750694002115200496150596035145948318630174748554198359980488547537887304289539222800201277278074100079321540860672054252806052264164302017145103384742754124760091308854789106654725428312493110264015472154242029150137809535856879705028287489206121250772178221084465344465984083371801075957129810257631154676321280507580177791842263674809261564085290098909037487908887200010629725407707872065639076080472095342405567631740150601916264812567617077943695603073474720805879656148560983554663822297177737445622901952700161663349154500169642898214099960916016534737238570010500797926844316554448423201034565747839981196685229467529848057708687762512585566719957341554406816063625455802399021204044607323103564769286209173967512837820575932002133205824798989068170914009845507431987948110106639022811604037165495171999492779262794312426906083670627541784541550218893064186074597682954179517772093457022284108352025144863890786295628254226469350291792976091936388796071167047837626965668111978915376355002166573101948623970358019296168713704914424053457368841938666171996958200617179365401483878662020421691419423001039856664335003172649499303733641862953602086339831775262120268364856693267666328080444937916732740356542261921270222541708686460188471246407259323853668605066961457697008378200195967779440190295371608225049942503084580565048174739723147285604752090326214601806326548226355815164484898871953969373355312246690066252338805511494453735399452993007924679929372834233915149642728309998109438713242344798519808281967674162699358579229717649939912978570816692761153154025174065933306032847513306998757981409919942050383383754232400965829137212607760703396360998482550875900665735510682164645877351360159763450344550652255501713921294521606734283789492877471077275327045440113930126221993598413655977991418782634447512647911860354534854961578868563240863660509080484579615164482565662100806300257733094430126035246238248245243211074457947104457942165214858877142269250718842593784861892880644881889087173482558256895063149756954900603148767244974291079124234560626645446036258440313026630368751441433722435299391025389219352808516450403756391037950318379623289305342798983177197691639839916818769215803088180017357998817218551763231147037525309211886489408825454114999254759204010592664673170278751465502808857527795099622486669977478373297688500208553574798149148643533764935680929422437604836630841422805809399644831379627993300831832397321376782307402268454288364820853274447617999118757093247621961026477710067281028643093130804406713829360499354997215298773684133129590103030257098390750399187756189920155039059116544510722297759542992525363476297603089493578500822933736498169640576643043638743985537512915232169683209199034015432216733196079666009379963961762725062621366645834461013126355721165671634305301385481937004386483050170300167748774476238201196403802322270194320970238732473345787531644456387859917230505264747326068853155018856966154889673786161680760308606639255945150042739371339382007642297102072287611558781131002673223146492948379863365779364891295269479885551704977739316610567815699877858521646856459429629874319210764598193253186062985746841643177846628011944804370371676707176056603821044375922796385991891269310026303919305247579868415258296569841818051240949653984284697779824043792076661013712818622277846487540455742402018606662377575878807638355533560648648759230855319594839457920287270038689560855396924235932706572457687289408547731396146723431863730901957472204327489756519889384801069649931334070425264686764117826094941314804547521976686818596762507625084461847042883341491611310634754540029015791301943464387233847180165971212150753848223081873812712156845981207582607824164136201424717911942259833118041629057753663850658361787634628205993517187795188736533601655221129257308475987658224304396141633757213778201297100926573881813078681380749219483421159070640080820822810988235354755442520506891542518107369823379484437177560726700055170960759312322097020812121492659372013977267108066171845772080571410873819001443546135885254615714816244508278085568468809334821485891091928785277048893602049500145286975897244573902829291950573169725278034116745979295481225335432325931355245406425239077347452309573138260663033656227845455172909189259819769162270346599154489735225166135055414705521464397336758532363115179896735201480514183422745524682704609859370492774819167360605289240384802332440760378945727363967426865955400193552667142496994128858151277375626305756410613635475608169747182819574414676018475399482948500055793032277495453563716422550594223175697107144562871758739646662366653891622203766260634540773745610873435922008614237364471669057956118419236497106719063558095072957510208406978131651345959825518321704013631451020188638754687189766254553524196985173003443496986819739307615883858979958647488098419002656719966947509907680066524716772418993799129761876243830877273012768030327680550514320146747284312227455257175640545274585542237478843071157461533190555908762226108878905657438542758050060129106691494729007738517197345641852744293885342365141422853072625510789709816916987443771471175170600415638113753981052843258363841519437966347237214683940126754755611128966280407548715726961096220680501099560345405548347103446639050621262112145516732235880435623588107198208656541356095407321180579650161262663550968032449528075609300834153802722484948445393726515113427724523953322037149682058932145301263111603856796277062247591897006056272765418505901784471073312236017999310682136707950645875271299506751104085345941798083266767727641758799358990256384564353728226750792212858921643122690573479440901470818613362683354602805886953604077111840395302944882616521090012800945395777997868394763019785833573559206830516994063172971860094742824810466910741872768886530820852436743605319514277043546590497140186241412904214764170215318568290234736031609885577737750830761594648240686285829764032223814721118875700580589651777759874463067074291285628052297519493138795983085976305366764531930406944751675305818561299520057537171875239106732460633627440704995446351568948332347159893789373857815584134876304887801201657044246872574800617390599776613870335520354952622708063826766776916690415580115679281086099137369207145974362743608230119623969550407255726207124964340861032113765548870105761610801321386954940793246721885686030540553444865409742804306531430095569090959184844440751616467660988278684616352829776138417480203703751841108210364939371503657750769509029624392372423600414827158499947658168559027779792053350881281260029219335249868424838639926349486816531877877376011452148453173432711028404412054718502830592492258663388144295223076483640177328647862061922496654010201612221267594107135625182647592122417454689535350437724942992594234274706989071512756851602085840825385013141762290900801282597011031726527750737210577421676181516623669240220831215962305099984345508966197396732622594544152579587922831851941711104991914487618499282327453689002723493587653529738981207954254658699162680194957623554319056767450835317709097986555612988068603953002216685797504274632751136084277243891405606553361969735599367913108160954541117315793806737860034793324013910930089701226079579441776367731865489930594689555414258036041962819494471924736680211818608435613370904169725192700399896608900162129938547377855508523400028098813438540611661472124860277010745465900664135517918341510998810640545704759689349799852425886055677521148169000932350253058630919490418220794143856786099476979281903767234183116383337046042105468895499819257872704374625288627782410985324830015760196313163539113472741855323543362767532472821513538088562296725808893111900941541381198519211220268341509948691297877946747056745034375522659958083723745564843573240981233356876342561881273682221709301574091625994638122439566704334504004216284509825341930967596351472347329880554565539104255251843721512232983588068558780340694509399934444993002060342008510220396015747361162138574306308562149372805171794444509598300920371045164886865498200561492674877217729537494532748500322176293320458009270721000133456167472278248018836429546866410226036379691102043886342836652957435505943561236054349572872168843165097642316177673874969098610285341360247281805890992855406925060736845081529356504344279432704527995971918622743072683742003247576833656371487557800563405734452985344554861032427753227855350237705522817887670559461042892507390736546153410897694040661227864962011239722915230698390405952898960472784651680106972426912854891951438991150204780588837798301447596488757779856366780018346205330501933834327794862218150099862437563850097016489601629235890301136707885884773456417445001420962312560380028186060108299942634352089333364976646647068804178817983597269776879651463224570802729164105805189910785548345762402174434834207413330202577888439297035849573273109796941751650441814321952311667505126871504768455860846599348965966892931554584750370255378854046670546064192820004462198541537595581010305257829087630795752629362248107491311982266300000128691369392449647287846520162611359651111578257506392371796932718284060211685939732743496875056319861191273946878516788228568843738698879280446874276021884479393536351893140675367642409787408113318163299054773399660369956138489110267493682133668974655090816455048404912499759564805307045017933828925451242720839680761955119458903440310251846786528878079110135845886937728587319191153215917856718726894486318679639052382006231878629039054439298530108737183968793341317431159105128163709437162998771422861407789617605968482947369575877675687090343539024020036474614873615247825996491632563950144665317386617003867869937437460111696844469106128467652793934063420746445882357508307639279662193683248955253148082741220724105925861574270170505910155112524509809694969746368385929688462022797084055975278028000901765013857915178960297731670381601277758660903073071543146572925006782355970589999908170889399967963335669505825035895457145658309258799229663559997786683818138648159733058621906026931037549074536632299239778501557817110777998733004715260975696355715727568379584333793972756994638177921610958317744897908360405721267175915529255124184211669118234199236311358691836022461772797119709123407314709111486951835136051493254554730308608222711549490640655505452902971665011335149680893647788128098492856991765523985427728406437122221044885728516855638047713738603279222431285374194899180600551007427671689139938871449858576953335987418378227230485162625386587077343604846794303679255610097219709113147491483591350028675108571284457602727645929354788747299979752144999291159849395553467351075968533761330536670508926582567058920750573812276028034801707985379892433164458798566634064044531077495596204191177741685534605727793240358236264006620637471641972119446279636365549554545584699361065939961156904646828859283194208242396484158823838300331788302235064035329116988255541841840851748787706849486660844138533980695597650059445307843254346923428013848887866341689579984044073657314074664072887073652847694104454045088852004858761256156654875963959192818379779334004202174136111694581162680050813849064750228085226055618338738907676869521135473475479171541570774708496289283403971822783850001871370573818147590381919776562307274582101372536149355546219657249337294087712813858155771084734003058998337637433917556099837158569222897112817531050859522478872053787596299231768531932580887361449758431526912140726795925471467576385493976520759079735473044673414060893942906922898912881672752227011063890827663831564989895008691833563981409584496761553924475028569279739058762789012385325386647533642743412055548557566527603857242935650241096252721822659738472971276546750241549867791386891340024693943262092628414268281271381684572995346311685432254256690576475510562073614023480400246826298266411728334772719594737882482697400012445678030808567794551499558408533038776393681598133414090015008818727654331814054025932777945830960665536079860975929219590382025705892406675332294583205004215933500325576925781835351687446687128098221625193980610376311154008699816938035979686184686804562334059474958357523982380377477614682085105603378894959155792151003222245000878503567290564823075238339405211701757892385542432902940155761916335312790833378898091604587295249834728076983142915241817938359911185435275577973227281793460677001331813225232852346935722064570588694708141779804332168056898213816136527567509448975455858674426222225039755065422865329218984467721469084743621447901391183653667145190545896920881228431862733724077018841414350480725396182184460747533081739184495324926237270310375365485598546241766769693955338266257165804679390747942524172082274278616644833963970015242808243485710454630176131395291085952542989963483097543673993218009936789012619990046203057191041233182416357858906161378952979323702059016605448628356760092860415697642752285853622449925441670072387741211306554491211621931527892425644002115803761209360694140008214397417983884613658325745843880696911331887296638376135295325476836081490395515564341794840448273173910241432823832473041764899311831776471905867044975050241776452975308995425365378257350640225857931763832882754731604435779118667151302037546963848133782078865944269594185802534158819229506026547934870956392853287763293428610556968161164709431384230667339603113320321581805667691138652688982253123320288089706084799600788045315904511492079577988357689033139889309112616118898121856230120261498454615342377063946489770616411979048164698496226108716228762749901257864552150985863757486775494771673968533485348593588686321219979442677976562294160346424858824300882099340360858878925124882582915176027510451691056809912662783171416981919727555850713116260945766798248341854533777073973632635481563476385649101085964586261138710291453707304444742055556813488747154706064419003285949286045837164490271480881265064538707317373625863519010959350178834759654495191891860589688846111529457280640151065009523354595758507972298526454187667605589849357877326181539382853798604311906292352063901605037946617506502727544822095903656213073794677610291511728662261945270023623104820134043162138998844151333318907375957966101426385845941661161600063298675932811393544896088518083320954734715754993566691478027922993259474052170531166093256416666443899296263437401145917669995805170949699597725305093189214201350628843259836386850730517668874466969836574640601028271701632505857524488159640659008743672235186998977874468807338853021081618453859304539610692150245124204928019955952693874610630385711379077266099659796224088981183882380851265934424736549501926974639565570591119566575042084354013498391138489658293666485243730312971913583567039733712231312558086975037530086198457502053446941671221254114396748985827542757616760438548577207611726520672921861858915618317941710007489216931539750090453759813957699371823014104507228695241706239156574076282982151578156012070628565162605078503511533737853678948849939795526128610264185597973777469112537497432715337174775446561797829058420166659331250861055692035081538149892661291012868517929510104440124885269679208666136634660427494948569001237092439637648703789321427313783028022753704847764221560101484946756090441927320207692250765632492561151491070184395015546782814453794850091078441437010036582119652277297159430530160352703147080393831544500205976483739193819397222914838599829190404536334184708719014500356183623970958951940182473771361283801547098288951262099357497723349071072796560556219921696565423648565929549122803165725075135403304923824913155842740477858506069708404607874657370470419450784949908945017545142016643603609807909023040177578232541222613418004754083562629266154823821340635671975104919822028060006321832366053543569854296093388520514669069081488601452577551753345607679608286563186599547171324107727997344945710184739615870355850996823470755179092543722926507116763047075324056246711100623516662607469812493175039853205051462186788498572294607771435227304487728175588136954445543773717560416245973344525597142593465092631146822286493909436201261268944328052885411177757180712904554105849883550347976312947255433667773090171948933300238847697422983882224152831328527096542729113865949521764275437112907675758469091409166495958074242595604912293625762580228636068689295393536395586524432637437440739814794992507396504201927219990538660902381663749453891167539752063268127375483963182757489549625289764193732844917807441721578806539871687901828361068881088896471060400328881787212931550011996684461760539024956386830012249401335030504029028301733278220575166381434450474635579595363931747552347154127599460858387751553313125357791177574641933036354327201639584597610283095187309373557985308209766330425055135858483367273361160192546713104956147124750883745523182717301643306259331781059151376847866415159659929846812229177473268076540219452595540323262242418177264596050419105771966335601914465085298989263872155984666880313035876614301176461887803198037100447888651056148054910740614860169881631501766125341582072989376961168399124442977462061429392567109986772605091054841088978458841435381758941569479757043984466944450660735665997984702355089141335092731373145053336863152809846366480648654588982717178083550287028373715230371645871060143870798733079843225509247666255566661785592518709829390003688211928301787806045122473787159167181650463685776780662692084451101034384260161184411095805585899444772384889165669978945291554046067630192635528342037178306098252990227571131336626784026196006932802409648902250648889663375063852072592092244579903065904415811833974210802059821999053606633800967446900440491187558990438616415151923568319576694722957308403103290848162048489122789870939495441637326520160574833387384663676228805259176109501973132236850777202607142018411093678050504512815022672270374448514075895430892497573271368347203987616213114976552698076666813162797754118736162162583630793627978274959827790645316507062793203891223145661748822999581355757204550895260923171699676685307014755406675889389586836994456123526868955829635989360881881855574176649720118795305516757199682119383111803120546688185153297202285549341551230865290624551500854605048424602724618489650097668515336127744840250433458702774457977356263201548290336244906568276914817932515257557536366448324477110452049267834258129319902940244843847951238835291447510876503264538244375690515724982511243801598896549864911098647409227236393849368021352981758573924896925036292168618764342310938021352417963139492479314547530287622371942457587653938720344919690384852798988488386374618273033053332266268939558549961121001738750348485549925976905784909187956743567164045584516089208240945396424485224252439785311099343147837580847221615116517583022536126996870940076276511861538887218759759950226851213442202602595798566647381916762884718732297317875778714474372812332073375654094827480101912886462901477979527297801484086964125062797344624080796512522710799760937338380961936449862469636709487999564257278817463082142971936578901585539652101717408753559994657513761455821777977760557840842312930537100353913952145210958771888304558607844039507928056370850050574514366033943676227335484980271689618887121300668902679482485231095488199015031245331847562571159801126960873583873076176616983895393237873432739307430995090637432058144164465544197961312299129542867737782516122548717713894720353495202746585143775997638381800728907352132295247940241234240378478759364508009479794874412566006606730889400387895985223452329546643098288457441342479059217211876085827642928763321823628918622435620800746375770638226125353389139356936668979050810985089673291990410563935711531534462886887787358231447480828073645464528166496316223010925633916035785472780064465130976043028253221767837755059160712128572829987426220010328681422896106282901082944480662921718439635051637178078534228722191873557376705952004159656437862855529218266355803762468907298113596330617971399124625763124681205582675443404449373613157256029808954664889535535421511614986505236899860407050329356062808022972015250786714479561740424860287227816240589057076087786452332607013050188844530545466692523634968918587491061216548186632113278878214100550301465858738308373893789896887799512112478244951139815274908953267326823965357422585113710683644183139110766187261210485113543769689497122308802115386151219043638406288930002775175355787141169067405605018944863339472968095726809317808588092553158588732951429660117367163114027967793108726300810014403266688795181880216163139664028970312669795755943243756150646194138519296721725888512910712427773456402352412891718438886603408522445170410818841498383128374257186209995738742314409124741677018748870027907776923453396295675702055915704242665103965244083668599828047905007247884134776654529604514040745446629031565056027576284423232610832700347961141848706990320256073751316830959428505288267681494422582316825225700563392075344982629809144063786553766991581179411630290673420906442362873447294822155950899049223839006940370546692966912994681866950994160080845117974090699431861982468421621418684920953437248152982438504672168698390431842103636757861687807604604457706262336611463445603646164198714578063239235100761840575994214375691161343046568766312332459250905355637391613685008093529478525164431048721380023302293847149770234558954303566063334322430817566300153060250127634242578273076775014473646945524438785114701118601263238715695366719522623342914703481467148892766958224443375375327793241160730636982544202122373854823102748140294881383924895835972943564446387438272489283067355401670301791690369646731082269994943945077933765131925510008719542997553709133817806304707607931327059788446528604726789013546654515076271376662949797370154830663626027717269517881500917797163288677506287118707050285208828761298363082181106500673235681211036453070596121426312277660189567847501972525194906255980634851486384147222314393564546415039398592732854015385687775367136769111446561557089103824848960824680482476262936993110821756183930929087903770256835358881294964041297858042701046093546870882934508202463821797121586612439700540213738300881117312046068422988789105505504531738614036827939710077620602276360099107780239374318781668540151550643060849503333504030855169554958317412708112450080872344753469182175166665101053654161918205877531837852151085823857393565279902695498121576512690448055243605847388342808154640738834553938009772694272164288883803343734240902504852825849134730385835862699528555122703820743368700737989353775905458469891817074827841070556308132429906516200644278889201202832281616542341331892625130173891000587675389320966335263245207687432361152949926460143631895315767052110559205713370116179980664769137939286283745000750743466690834717669970518793593073533449930543905332258062280831777258963703197612499765929470568167478708684776083396521632405260319088331422163271804186746547353864112292847598344945712906876190066547402995094899287018095535110728370740438480951427553066509650506946619663122258582783023125431223574143279538789766825082433053905172586982539036898961811809790570509308696814648948391624754635575978178465566969243955348446065137505871151293559287987007084828045650068850420032122058855061085589442961328555299822655244569900156498465470634703217975893805164096909480589340248517032086266017816322492635304369794034788547213946820784919239526431578416589491841433253028740802310805004315363379166761789942506587414994764673015701838646736677877523022051222385512576502382926546621424621579834126684310144431080998075120757352940411655032227040286463541091770300286261389597023492379997526448279557887585727550199773979354656244201041254182818190187067034976591917653472405003256453531038112765652185901268199003004240054235581221392655141843947761744977408053732280087739839926602711604121731579103736853074634114386943601548879529206760264053143412337868807451137615755995497786791682577343618843939071672949036761271694156521235889866152349834148264149718524143685410399941151250468853492366135719647247329224726006268872912285078286379291875504359135026968960873189574131550674980563376204706394985791134155767262954610986997320911985917576953366443239508152660722903686320964826389075434078784233831214062764389530247812089282448302801233982764379552867443174535743622022682348151301158675234511902505792172294037653025431020326911209411897550240146828959909594581072057083039839134772383226931189217679618367778321097984971767087894674355589950052070821220630642615910086065598722416550244832170945106817172859634974254624257343205302635610286889937552658981866719581394822648927631002977440206198000411921196884101973771775104160442036629985739639107124569646850277450323360174333565892621493038150456585380930098339731091648632247244495657706872792730032978956279500668869570844467226586306483255982077868654791992298780922693011117005293941576857293149606588999106660180264646980754538955982793802466625773523589059458955478464047296998059792285228982453895870285288479698629334173766810052230374383672756669631243665376101093080968916789242211881288043434461292508814847403946697529640788275856490345312121248875723764335260736804752329851857788700280266941191593933478382238160584136206311553090128859466764259414352613512690965188444160349774379947558067060112410753723674183434171966421135557133705470415441313982358972837498309378295348307612709480059421381430374857323854850348133882427988195657072370230340091271676365032301147503639334437449930704624106006519361392704659846682035439704649325798111315277314055771631903200349911509548027458140174894390017357087607354662378128001865005278011811249678747816241945615306743181005755668623860441582719980465706504255920959635463365380017047283167637141250181621045111892050858027122611697512361812616482965514050918237520153327772623849768133690803451395287953534888819055639768134137419410094802237655883139736848021907901396128455785362234061304181778360149241228161021109620796609469872795086127967402533854028823695474482374063957467969596770537331150323997142198890599793624267546362520992841320902414442316873276693515013877906469618479616584970613789957865016052266219241099922075956226871442989472057079431043492468758497585472545188672527389491030078648534895920211177172194301836335874950577718301059503957133860082532538622359673727261951439720486110193979599869232702662579883483884146979758513174173800341180339799603678160248555117425035336160901161282625834185129107231841907123497203307668448607248796598894034993797631956589608958947767567180984084217934256442887934161528788799852599133713502948592783452895624306184857286835169141298768459061509300298019216744267485656317181383421292093000249836935180578954107832595859880801493698290952868555715472356720427191524408159689302318771604126688796930049936374109335659749012461410719710942029490153681037124503005793092581818473796847402208911525714053192366842302461252559480602212357716488480108808078818742688134657073724718779820237955769151602225149596782387096699053840781900374439552721711635945566234089858271656424296472220596256833635674322698283314309109355760608954738130560310286939281464287631879380251464338428857661645428028421774534721849727317992422040889292656448657170831586042869521053836625996322094892226130258704714137200280231908236775864267045886591784712634401065880996062123779932061636681076024735688505323756713453332942305852596739037026007290264085842562986123014677662064173397062588231403432397813722961425820418497062929628360161663642474009989346354942267305573348247456870458791379696514517508838247958789598905374823283699492337575975030794528402516605599039790367188239303230485649707909503102869543236783014363174967745416397186629657205650706559946055644298637561710674724167916729139153228063917138833626603992246515772422787748454943944909860501107209956844477950511665846744938525289116564377819610091689877994564248783960961487520112526656217373791735787871551561119342098598187015049771382502625255608390885309462276493753105519243754411193467220246719132217178775807079840062788850959752283240651731010883998259758583209458394068575859181913265220848535426737505031823944802955614434608068932735233429071580450655806166908149628943841560564962163598307217814955031995171415390441767410919524147855188975340589846637786572898909731013801945699340520669555309114781221293061650175782028792644655099188589961370645474671892124989282607978515780868473621954477840066491717136925913109815859867272494411397074059919448496635616386548552628494864761045575237507790632695187227863136713140697929091973888513807790389827419302745414416257414562073690589784090224915661434288308237215759089624687990444156856631586443023415220284366461353016694438405724013692246034093481974182980236504049788079383870979302120214450140238646785962071253842671337364461697603880351365102098745513918780154071304531599526356306907347641139302054963115514762794581130352694620603500773645798819071187497996707579134842802756425808380519217982770517543466060541921192588254800750587827417284278944961148939911780472811908675076397717408122196876446975144513303016233086873797677601623464720944671147976415965802237322212953015603833011248003332604332133463163485820270002507525834745414820216514868510081122420570460677496130828122216615628997339455459663465888112817263924732141330959270157486195313408691744678408564539220361501190566200380703421649667214544115915134561920648821656374921430037933251862404138394905799522535639514662228344036373464474197040268529024589846795418647953042950245037464197411601343220522752570256686921338553275116467066162515541377982613106655073777681694263272580177454791370518581215718316184801228894335303036560334026407240609274719278322567418866006955667710254542154924996388612828694279574412149256836252984720586366415216764408650059668058459326311449379796409777991626464124694279626536325171815309706584249483376901916290405917980384764493094558529055414806877765884774310790906334005902726596423903726377839950776163343583243220448374208294071076518272783319130814411439177462613866005096801263146274822783938751711369897469963097088324571379264113039981557613831148758212322714670853187034690238599782801439929078956018883186461170741829077652719684980425481818723704134352177943966634807650878880163661988539105652100830204620167137179168516884068541878071753671182164635831637162960510816989391870760527404731934582268344923912001741251398978996336032159763027617170127104110985087154699950854075774520328536900390931878497639934989558342318176454172975751766014813174904990538105248105040302158573271539569987164169221802724248106420854213487530028739770642512014722513890007533321270449790156079856737435806139090704345606423968556021388498557912059369508400163631515450779948361190627000279216504959782064289393314438964760437140042571339669119202723372943852845207171443598778771086750957095941032949003191651008325802616514989163428444399119868516648242990250239272779621887862955788929030423622054446207293508370186131872809054396958215102577954968127114896277796836722075666436959745358766174553421010843644926336679798233961121758489019358405729195288956594474645290122731005459483345139373268852978973031752941632151695754665950724118029952599785487544243771359944513118147375346269581100744210859989372058911793779745495054827564711200129431464780573496649986317387652036004441413963425083170356567543843643689365001421849442020178180799859377578800024869129885004788582871475579911843272388750474640974326620654564278889541985817039216645085215410755873032269520173747928662480088764696676149218381620459328210881105082733871809766319292233172553685202555919861157402816769664672318401659194543757374162965219408049183635508840924605881956259227319097646611265824013605071722773216811330064678683747755300291566658156275716783969665791023067804063206651034760031512384242352593931292941289280195727907678391114536859750853893127646544494075854834709976588565032201044096738215987341325564291855882977233691314494228414110123346634201356762648646133801968875821901508671701807553899132258871237564238970615881789195299302589827647282585940281288817647641934277607852874121724036893571909109638458555689817975473143324992308727122762429061049743845751469736266468924652005884049934639778763054418347104994306564514314028809828641502568046748780542820847046386940926747971250019251169684719012888878447293297558640186723941725837266404956862660875719073075316675380554150917305662856383049497806432129355060266188029073066367182567024267327008454227361742352357910094819028839287682019345894821855364509918344950122151864106041811667641827349644798956849245699148811376072433361478309423368249930986192557396406022190765717788028455332584831036604367225920651992190301307849306133988238895810730818466577715613431568139099537043821527354884464383193980226251147119758198513152085532223572887280868901800550633352030613607165267354774684760331027602488944345863823575786100063094899851561043902514414573185061509781034822320566101345130772756850591131770995287658098473462318463756415948950638921330589194877914137576821371012157633682189084011739445867432525933648198121722381030359363207513036714825672986642379047123201428433503557372475717244501960451359128323145265020914719540085184093583313819983760331034299347235819521936481910746957377206152038631449825547284128792090268437907091491175887442581676145017859055357811305545532241413693751871962174438947561694703345849342248666506195990876832999341571660352799053972352196515922951257165952698706674511091514807337358771965611835990600516073377008414981405124065530555534876490556247796503042611301427210482788053178042894400628181004926126378591618007842965093490484045503281818260050444697018523855044856134191561821250264963481937522445955676560538214095177380963807481861223725046419310450840142290229508741952975988699592763934494702971993859299243767719246138435713881774916175353437213344999135861721018880883324556059794290840928719801688931909843706546773087696487839376507352089746142938439834799069001240930606555051011527740244807672145412398339562885422497756376085329950355013313828583059750111007141729726615990767278347257254021493660115475914535701915569907565822924118673149325885321151426465851168791299292067472056146957022139668359818104254153703646837314149307072496626906173686043233128506329352213068915463490957558498578379471220368791224769573352171565316924438710762434800099864126966757137728941197934563597736637175559325761725703198792542477423162877126847401836473803980001165281146296564094183663067468908132925211042662223562025399922986248362853530952045861741343547964401756203267410891843430218248754591067818379456908558998334504216167156958890273667028244523337902460526963360467284081273959595616667655774101736128099424452776714727457529189993148164104695850693788934475685412641732811596143878338247128596602197245053335268870613286939283166559075202773753077500219428765218316729179481219455893745449319655063732204206664900050804611315931940582077108529848456640691973571063207868991486004370129505097444126210743800703118761288790064112103855829386080831738481354445778367728113781850341790993048360434412482192814171475559953434826829238006750497022134227662424344649710845783030003048599524589613678135097289356600682386679417638411387794886981808194741096432420711028295278793108833376817517590729638268432189121395265039316090361039237613931770424677899088726077075307640217551781940256749038581581704777938874463635535696867682860820571175925096852710042473720779340290403730659744515114581494730576167632329326506348783173291021694076874575064926542491080404047558302092214871267169922205801853550750195882204142219950714961879786090413010330999183577710298199996637369470636200993650401279790786909321569888486351114424757165095226748230510859377074986852004500232732352304342660446024911013487246868921978724259814630700570948720127358648190180611368391821732220740644522527557714200543934193820080721409369908155197798356244736262332342979995543655574923509870841407999254866205533384074906599040614353480908480627632663819433109805111195797526832601656250316179711161460631046950563821054212775230625759558090055800077378991278062956612884206364835028832420104827704715718839937645879993389443996065902891333198345838407169089988003590583056847268187178632222348766146927825648364474809725379635284511250262877361533813198043404356173837109963792363254560933683761287964029134284802687733149539443537240215972617707430691595943214646072588777993961469280093080321984864403626194366172716750360182092607129178983328661607835393394361558243774137722874157142893054678964914173908546693574039670771659360289256090515974514619369185497152859702271450297540860028519338449725479199802051424415049468418913196484466348181324122755654885029813791479125650003370941298073349873067740638129600522480854434021298478424949520125653799054833304030867119474581201128803798443148713684148693260467617167150398266331545359524053299961681225161999090126297966204649523933182632388659628580939317915050358916554867457671612037360020648101363436516226509916053243940211666418369991747436466133267149676615605815525667255950511338542956647390654343438770195955362539473538451737795625377197157685950550561351307358921433933254262857264404817382387624565752997633949492959887510762517833178646669269035881412827245850020809627054029159557666798518160421474489881255999039366114195293769499871794485594231254570951424676035965899744817352740478524000825548908733847838091828446258306384772846607594610689760589817813971693412960223060014353953964347318483928327768887354688925900850329236012232963121511560382475174897435801275415908008767233323457989625541594856068935006603965137087548789555430148389983912772704720390799347179438377889942269982267739953999883414840858114449101934329158361384895735499212309057002339389058852247734769446342034572822122742913853949152964466190206949776998730002706028779645664768855645717429864910824611022609502388836721600621693943265424140495915025206030807213461247291628696464205840514250888488901610785849638058421018817466488135244008509358929488681602787973176142789689377315418723548788751934679109110724258074815138551808281918769873414294940172651539990937810234481036976953885869495220862701253171189822417218738620221045625076889572574060774941788659099589168882941019391533200007095848921841773092976335596130842387414474182543070419112293335525686713363125763671331720326165841915176941622348929186256082237260994775776110148206717616248078224599242620713984997127353472150025839848831622928674967978814318134629861741109140990527445049573824886750288997596096589838619468375894466066490602454472943094188952993819763195444358329165066808535295556524334792567250840076655075319076685225671501135811242493895614789210649518050674235488478455604587628480036859783510407430364837387532824511497441987030289849815641168826826024150935942397511038365010524395022261989453412127613468692716893455689140119104651217757705752936331826793562315954678702077170103955071105085313811329707179707369630494578568069445938926599993664815636553761784731982181746803253025694706405536574369769486797491757069064483038745554077582095014004796172071443582291465697054505275564604365385007857955036056615582551079992019399449518394993281930750618385308059075371261764290829131186126413180481848971913645969201392298483513736369582276443765240008016758294299187066164134850176687514451563056463752616271988459832585128735208316669545985618542316227111788705469386488239334766514564916506241161885319507542471653905633138101723260870021378307078416095179968538722230397362436744766160344259228018484800329542073868388901184949023019925614632517213861610620204477993921910585303698812290892716577334232501082855209897406899342051049210533182105581911146004791031514299411038865831465952065463996359737762311747091159332032648881725533251341869893564694986185998705841436314457554860152986673074311013941528707663523418690157451043883737737696644551907222359842165317796141039908706295382057497058723431003130245304302479943197041310336330632203760422496760894928772121212887794149312323635576021066635877800056611459529323570126860444640202193069950996830330671457529918670805061686341831277593397011922241525242240846170265093968936985509571240567595427916586107335808701468100944175795345489274343892759854588690299548035294221223109877941507413479752218674309198435599068993353289122220377613937277943507478943536456968048234963963839375392557795131112281000546368225841719600381445576033927637386517811302434897717575711721848413687101258779381462832798966715843810145849405026607048258662577008611791812796484882727825807337720372532596678243530578429879755507105229593314944001732777890096259904273239802865083480548985839728838557172987287292035975874693065562622211069842411003058366057319172250673226261229068196265361592912956883937883384342265392404640456982961938097079427680591534387057651677897259487091507573431562754970197912366828451683608583591009333653300413093715585815319660814399898202477658450367706306416008920741911276175430422460852240917217607182580322831706596182016254474092551915751954215901761341392766057815008921552817960941820437906479525469208167209409745685887059250525640436704278574946784495291696663486372598184297745306126110130465058852819477875507799760285295498457292367815369477538331411200117970076252205379300833663926284295279799137085086059207931860194391126413433376933541222548585635573153909109071782121920596426182599055786180184179694570729190489577000614864096962622926652866819178249718859926594278117871562840454477753368017019770377493676834046670703434889433800154314589569516044151802871689330147813690355351038717121823056359824171393934846348426903988938218423434530469324125484651746428871388312714447396380378180152159226943074504064020505369090592673153552752603762747386695425371594663754570694354569516093085848301620923751503937994320006486390871971745549231960685263089581626423068590541646827764695532248247238901800008566989785214820941380602520471058166366406837227289482134515977656219255304014199712799668129152641477103639951648449682281996972759275192834194641305710321332539493735300881670926966261774444572862286633440678529138365217053947697976104492660198808693836712804406119282404487790281137216660109053311085892715047234670735979787790035287476276374930553154794717530611727286644640192632417921262606302473638625284595387838993661358355775610948331516086474172657749385137315343064939171073888059179146462293057218356736880419844780291269020527549289559895318219919299573346380909407025560143865024435107947517463628783162406216680480970327579835921834016070629783748675252579549185742904755391041330551226524131316456731815433340620008509434558657715452877940219639675370527844568129843072086586500758548908883976765370489138121290711469642929847449171708125270285984551306908444227140759506929842534812623925555707074787637383720808842059041736699708170986100434136367834802991382607727458736333408910628488648372571716858987812880026569562407764332560698633989121006313554454325123079448878896660331763763139055097304027808862815174358676639922546113835721469510841715061981642801085429223857540940714213980314384518493474581062701630686253771089745516250738560118765870465577373874574338338965398587520698066994386241774140959058045975986513311543096404058615868611231329819875237738166069644479431755806164094593621614613344378564117899369319013424421836114164572224360031953057412580524976121454277279702911407552565800127547517729912318326186521069801451697033654514562168226549881425889252791638510572249129818892052016973985433620748308390038779188448113202270997747414895441615929761831440305448601617030075490176007765217095692240224826323437574356340926933460554700431613873313718829427351522477123906298712855474049555351517643674147280578977036130975466181050013849359951457713919957147432311547010806270022777462422104393216135820291155390437764375342584807163580312513606093966996916956530812220939691627787220355080898871033563645424600195824736927074184519964800472257417294464434448419664293310686621566457714055787657399675218931244856683402102195228433690013307283688159618300727799141453110852743245436995417884979212687256813296548801309620940807502348203930409749016892154583589976950918554586124309922801625040412451718219541960838107644709709483289835786088366254226824483404899402384734850187082391695074590316279423578561874899375280352638084878579113011082997976946677526625256358473754152684127069263940774717281417730763548279883182855842814291287190651800083086790487857321584435990068686914333969552193181423293701757108739878091679100820898894266733164059347643038852915519854770536254154766151780982587358498973894990884548019075975963540841724376819403549993016554933881639557112717317999579928770567510909840422171233882610888009390048210071529390979738447335013398414351632682987968627202682380284129907680438696102553386178337742377289014787300357787972512063424070268429096937358351910017788536131055309469958473882340440084118180824538202963076283815610451853283052230028368454674301415899520724229407391098234825485207369361629397078526646091215341308943564640860990580732760725688688327575498721375954477380749919707078746369301370953692605185844638712869470088957702739225701870941599769590839590514032061355808994461575416535175687865954627859020239517720810527963953441878539670539754312052268659620378816767524829297717603876443571037942730544683450197963709906222681670259295011795297784697486119009609022576447192946511224687897057246032810993796224049003303674663403951238389143706922159580028377198936706173741213676683262617759500006668239977107040549491963042956318187865831059542997783233350121586768838506237305500120892942432352077562119875029800246440760280341718765249669086706253215641509791810920829458923100156834578900337044520500060699223201238019655741200542011647379257094004686129276049372812485152483494728484134388046091859610611022533314557921192530473599525131520126721359693419297042007289837564555028667337060904583327488908616161630557517341961614167555827997833029803453113483910745864525810961999641209439044938640874248324158686569419850444638056045485370883371149335686087969758794581709478124511123725580718453056210663718670055988141841472460829873765002898551645406491871382771047758910389361829712860674748482321811174703249326360243925140836145834506169135438326748022590785660670089198893412189074260121348221069152656501018378439164674939668138163720979270646258231604509274494207104997995255385479905685548535568349082841026461405809075197294696784839129459892458523575372046702724476662385737836720959564071729246994086664233620611815682961477599611621932073327596038613590243610237778613495164837149815286629659126760179500920309308999456698058590584729393633138684321470618718143437759116116278832023657198435140018928224016217894453803450185163835839766484142688818972827242587271033836814003883052361530361906467264793332157657314098534426937513314607557358815043256273991609906274501958519290244220236521052374780113203409952884930649024378480510156840899653238820054480474864417305847617964221525819345441912280012653052675392347909506635417561815818077427016148743573744692657387759793985828232280454683251236563394437058514501852092244360314569142291728845273143231629850092861534075052061435285205781913693581742921487783951072558684562147520255117328492903905025033427937976235202092668767080835169427497876952405709696794690023485541300397911012149033445322097354224319824745716642436981691516216257037108292588829645432119767844076104071486043833405165648547244171315550504131915345762061241926998165467008381168797564700812771341179393111323713619244066984182850898125607765434627851668240590132177295042394722678656231894535307460386519786478029107905534873210250696930790912789785808999603196493491525646950295233183744557003810945916259758087743220371478075730173539107643467078704220645982195040241005454958397850044026422853935130436264129468482558889888115793776169023232828777127788672071667364920324361995017739898871433419052221660229170141460438204526888091292509995517362810307896589223740170358770993322594227630168065650419482952206387749694507783214421540393708007140632373613607324430965838393543246776874508564884715044943768539792633127596850192324781454260804218607186677511779794629809788454555964831655267156945024163224844615778430184539677210658534680742511212125972534146119980221924531418083393803460883962158467360470229507259866811718692577847202922000829444666935509203668648176471630791876370351181936663155618616428633720132877002659864439605377544559492194376029509170751532474962393799895208525691271662850711551850331978311731014862578133109249543276503707310079541324670854365535463421239569111922933871720607796386422935874703888503564153130063799998075205761737254709864217993441253439835466956633283354670210073965498344185550607458713216173032879384377008879181918900742267713762911444017437715308134367988853280225988251521008094660282748482240793867228663323415185855303077574097107140732414828867555124683224742153368853558238117491895376280188517841837136828112781550253185981313766412233885572996459227035776518933902525424654225677054477161539895149729366696170645801221056512078714279419835272917946775201806549384590614586602802299080787383693526834976641338513139022454730200108247642657451313271515652563062393289011711776136785582683455235338229841547269818430953605523488303886029894582450870950521640680989373008684390991676916857480775219770227260004080360442308493024407162537146036252763673933954575771674177686950067542396680845859451514059848310899476966303431435251193883104791382513492145497124703362208902870552471673841076259653733747426360882511550219920432013224064282331639605414628174096427870770910626421523017468520059881838319348936654593746834025840936973566891718412896926362619320102506679565444049840020195226475401158850017142609287166478026911796245930844301662526504616577780906566450403242117756294118500899363819876057797110572828732275572840486649114354241944596810010334506204845044964383822235706930114321946462749553258276564139569206457431209592482367179218801406996671048189310032630567728197568687444591379490417175509916250781753004119668820463756960679160205520108058348046650333292052240833908135439378987719204556629784501455566490285462351339371341182664249513080586201829123655886444491598054307275624856318356022054395955120119162189330643058741869261133159958549532193786169885220550065745098842765267391694847765956823678807430158205500829595184528698070445725752306834955895312723712830287622023525471471484154257226064060961714162236064144185450475638744920295999381921936517914234316603260194215314644668132272007224911129719706740321708957882313819458079191375631592377636533875451849246169367552817289788043595744359095070996833288667976842665813267328970965715046662684187445417613395390759723269848088393843739511579786674054883767948663811055943778345247413411166336040949763261397412795363626070647575153719604612411187561338737898762621997837120944669732933554312772286010896502458078744208471876136224347407105280532315390888196384264274678844764752647448895699522469108832817135415011530036252489340114007669568024894968626038551061888602345269910595450657364297629983163793424100652385859771790900777596169025051218007190782502334904586679356597587994710964906899543847262494471697937396344398208107280835181234275763994152772241468705282544733491446095210202176674956563984037783207879528223292207359936129881177528280443603993007842461338389036190279299323426967794659728017971531531666377258037605466247021723832318027626824069179749516247209553293181192646194588362309999854962332444621795895732981783206633349941573672318536320778539145324524618589624955131460976356921022669586381879378830548590886628397758261833705181878981182278698467051492087129978603182982537413984001327366118638163361412813195354542872164088381231986172037116083462464623633047751700797961657456959764607611099872038846860035419364570157214281878970392072333452634686051949774148520546723042362661371500906729523055029227937486522563402755738983330906774033651820690197197705310107483090548211742789072318167477524213809367072867421769814018830102084571857908324110148733402545218541548240012103510575292465833397279992629771930845822849636591814649218176782946960493887748928854566865907070106929352537131902967627324795773581143888204719455581242196527508565814077220043157565341599919994900914749890973423130564188734049809199498730044834855285546966767298169200256473243905724556094411073744318214532003848181393050289107427705941061730009958146446364251045216560455563792524861586139665380716943480462830797290936288468072807065223630180224792746327816629525768235930948888833601840855141947045522485474199066947819428908677544301138240894674546040259345408167421977192369606024561244053729902194862317281384185574860415207275665666321487041919632093029285286899941277157670816521419124931227085449023098203139976785676304900068414623703359309593997625726393523475078672039554662507700420333242686649948135204088090396632602639098135804713448418606762533547309888115474077192226551920423570513796851276601164186009416844299397101945608345112506220160407782007313068476221353224564710667489797240243011902734223745156561907370049167899063463162983638967875489751720963441352356308255613441217253877046670070626749069257542742079836058236740936667060681591401984711270288046539046568983138165736979208343566688397635688503053737993691250991708220530515287966936163479531787853576466524219009044862870975275053859081791140821516043935309144517218445545608437381039650455181358034557150497657091717770750885112403923890418408396954488478436441908322575513956406164254693188181689716286570344467764669235292472487704877415770329554608591037644440015691822651895826936910754738262732704513123869204581980045526590840035790027527429173924262695201472531016466453106643842930927475607014108879861783311195428183294775604804189987444759857950169585835782030623236086513789899106138646107586343229261438554320072218580498952802393877003183269586486121068802511548750927259198308836667227093003164208435501299302919257081600977859617256257172397407563773338173060297881267139270592988293775933793263079159590572416352755551816812361914916019437029327500339681178616233093591513254652792820352135241899380020308406081237222264449921587112381756621496426427504811829978879456095422603189399752314639984814140141264948321285792993144321968405530130048236764644319272020870150157052913911429357318564699104497814172037680833519250103803161924473299250094601429033468823062818810841074108092794644093539479457328119578974093356690946252256139629743997861241337696898513760498646728676082214202577557699805837278202328061715377723563223400260433004368742172330844052259616728047896535280261393828467018150787771427777939237469385852809625204912774139687379459057217353547207701963761492141359852548993983603980243672836982846754343589347727180643322512293401305868016176396251048269247286352500697529446894347148439501427128126517669287090074126683284054887629168941821211227239448232231642052914456359821076727490070005032259952811630824590906973382722924440751955348306816269193475724913963208778208415542007105575461602697767832337946631624679843225453141925049403157359028382212026991189976302540968671625345751177134149062193936765503218143862087144927824964955216445319359185340458580091326305248345980471102798212924268645720206557049120014577216314862448762489033720953758985809207247951605525045460334539520554001571643051579540635789156789850403839842783793846041012136405212406122728871933230266568282256363740849476840096700482881469019806843275491124854846263712935535379711014522324743357163803264153166817740911844815747517247202669334904491128548492199235181357192291303641011293571168383506715236664410662481328289185433916302155729508750007546615635103929880354502870080126265892827344887136424072542191321042164338675945038421314223277746870291197969156490865441890587627939871157362298210919963563129944891300978301476356869591396248615839081423747657482703864413789465488371742478952974061546754529246694810896122875284699633171960985459935712724924662742486195263873779736674815042975576251424118172490851634383755104194887150075444454055523161089574460866372767935134142165899510543010265529678335744897116745808665508292441253631044549058498097240321933097357864154317744656556079802614766536080661487964028877471655727966052004783873388301065614199655586505143087473236892012551677740785844749473540273108630812126104722963801000184172000960365950922590931879821687913686655128522615126592760261811895873803834935286165774136650026918328477589552966224288742772861645281712303914452412638990106521874824793120213443391403882391806606612807452545280614964960941077371163814403185227638266436770403802457442250569261741916761951206163306583776478428739329051599167907165007673380861365906240875636496060200493378434290127912158838732187401052956011952110495254083428472141010088989982658943627204048399937445739363271471945676130991910399711093839519142718567110443102957168001589038016202646838912317355567160220139954057326995419537080111781439180413192334822244231555718416609029326028467214722373292084189358227635920524685342766329776390515597527103825165464857011313959948563465988421947542172310482109790536875700180272098793583877431909459841639932409434210948735352231252284512743262706342603588672795987187708130610845861561749568968620116825672904444303665147257431967159037815359851228308134478580318427600258447935699906833776289572340195455410972378887687878623165770565664457389636369569355014767977673077649421165816697424401281295146745208569819075669789664312500683646118552113749003567284644290581099277833830426287390473027494128226514776869745334261028144683644951821295590950980711458880672633193350516476280937421877147528133766466521411702492099776771683125538520011556073487037213725441229706859807556188460230206522987622431990135888173783209303792329308126488292031944095986067042288977565932701597449839624077881211978034444853540158474309243852923729708615202870313722420972053562509725691253654055549563592217507377322081409813454218189760886208818258925806701741689211180540834928452757522295817864570272860343739968132724750835269056846292586939753418931035283144540247243306395558335182907926897610920089191201179979980940545568797791294674827815576349274675073152139384452408356478537703538179576582932139727417678162774133694387005062736106182832792668648404260536218032063919536186152377386085038482199251111153241126754239122674823031177492073752943700367900315299736316509300481270733948504145364284731394032584419823359837341773751315562548114551096598925544872456945459309033178266479556788095486145299113716235961674216940802492467208878733135325178563199710859760201896055276523837804696090848179869589980663500497028592210826097789429325974013486672564269994020781243748214864463514232576113742552628005584134144369096114000464283449144302534297500773929778670878355735978707526670488492778181275732377745381996465265098614907801853381263641353087933730013844319571695055479404332074912265234521244611583832627749808256798195815502750778800884863392397729412775026796877819552172045257636011131490900076279602973434594859664462882887030336317799104967877941921162759202938080884236039669068958691435157410405295517176406861524343171061519986592660380175719105596660125576412490854974040303789963871475850356312416430779837093071164279841670494619161286508013589322325350598400496037835836537825633489043058850860060631587879437464630138110396486762536610110036898892179743243940517484733848402462122572638952152054437059376098134282461650368929525030897461204340825809742012272384570624371713220831099404064387259347484509145744294912920480931812002777486901784883301181246994948257014478648062164457865992026846452193712875944713244569909753522559765120658559209871119900596936793342178588882463009986836980922143751017234974303049978612389994288144606501426582396348873603158320104054527975473795167321273663210100347629031342363795756381118266037421488983571551822011484308814719039180568048673035015503380758028829970785572064002144863535311936709854919888814360597729712806394815241803173162892816436628025868102825170751727425152587549699494555843852786021623831865779695759222040915408392625065824822694968276982418779289310745145921885426224175610018384366679095359847069127526840753123705580835309389857601678895472231821885649958828410520287182910047732376533469256808287921189998763799035739621792904248942090920891383922402576900432561131978958441136405355436019382356889002553083564031585685161309231347454098872876437987200443810704354271342633205792744856210550414830929047599876522199614879958761133929706090540177984419479279893895163539946100151266464275983555829675078271406011034703743376050588044186890269459026345587665475167524642795626689958299194405560275111362381508326444814286436718003901638281775459481067698230199006806140312167485765324139925407909962899875503684496684311786761265799242228280271411143113070627444598510257892605439086415620371480699673682990332895032583728707634744896168878973560292864517730151848657795465794922109884469556423842676710459786631761214109897848207519944174748984518888421709054590997424654232143465612700635512405267009515654079940450630090562045040149605111817390540948847411402218646241022969156062930397221355592608502393022213358735089290092673871104108136697952401767900372163795704866447639216170113879850187317767240106275656716809329227976868843971972389386352751782452452100611390371725408650951986817957979324291574797393788329225224041618035501229186265968061010172039660675633690578211171757532126438037656680312136979814432579716981024937897610867558396783785164152347335160041287267259583361581616204348852508076224570716618043783699205959869098280214615115077988112325652706509019125171478214969011500868882960831573102151885046321371535954711852476108454139763326266217654701172085976903289580789703771582871221414120476095269759673332966083450850779934070541402578864068321812224404978662135895581899828798365493709887046911991000623271225414307469189337365975298183459371622546416780186676857773405236953152033532163962914863523219435122100372487189269211449910251221266487436638924745615982546541327718093050932581973279020059829901507959853570761825288002725378233939353749429353548454381577320217396303518200015942294488016249380083778131664710130669688185461407823417042763432973649158500203149891241208607933869335675961649843174270363774556395205105221339209852765538811466579447301140265267886278051260658054668970207749885336633583696942487183524740220651428743907968985304709690643780179943098115695283344664052805522953749929875820275945813532657065137306825174654570472593383703370332453547085354492354313805766207494140233422778684638324442348698965078993699633251713395808537663054947937740976568111453979444748072985591696659892227763944606070231407344153761951034108093323847843836019011751694778996918433150781808502658376306902680748928634627865294456825042764884760029094824337394023434712390385455696538535734515854853991482737717365537515442429189885268289737456287312169117850111038489071829943455450275058875641281557965283779070919415259638483493423924854303373360810584216144842972583347799852745015739708900044488358328946683273461675172269978015862812171362102466636237635197671196337699903799276630133871182497657632927007430449739949874848157984776789211083316786798169630467091689752573383224317582853600776765405842198981118729797171684857435008538199735120469653269937604702386719029561602538112791254292026157720272444033793631291982878345090975268424544158351815235928786724566118874334139829172019528291065447287853444255167706472564224855732759650275389257401220860048117008398026356407203067956570803894322092851659900270733735818592045061738503948617332873612933979402417864420488783483798456173649772783819994606184652278877618226275986932103961791093376224154148068127973813456809075945580145370722446598973484725059584702381403201543736798667300641635688088825247275452963616978341122037530291366808028244195814192519251219942982232564181557916097992133466667113725854157191893729980447011068943137683949600497023778818846509524375579893578902542258489633724520197942137067439910790696759542305830828856088806911416983024436736540938224973158955090857329628506771069122436932654005247921442545233795603182758009580867337978213048827726250784584763826638626501547741056835200118598059595803606592947506395490506769887300617195140329984547448636924089333262764299834119096933400218311546006258358031513532677372655505750871773019059822412102876974413600939141380645221626279830833390933232804862298614716796952681154365643293389460687559272976408481277915826233476250075420952798177888467180533945635482172843389317810410943596439659127388494000886653126720015934227363739283798043956721214294084919544730870247072460716165998323832923645116631238538259151836220729002451984598203933018029484938770578900652966283261771773514796810786554591893307222971737625284113377374100154371937921733488703870505784661576344655006710773639154801871983518997373182717284174378052552328364588214303633868354337604797864048335255095543013731838376322587437215090419558228399306148720052740013871753140313899331212004051905368065783445238159636794204895783746992022485270158408728325173478804651597308383487244796551071292910248201958590247302157643052897343215684252167882231298416267788798359654395523639488976174865166672000331989904697742020309423230305778994821064076633047425633193270154837004962878668076301910444368319628592050627934121707500275728144681295901904358468868430211958485886760651412722536867353845772207498172462895577321891361562387042494924530595962631018057316469251736223504763963000978616984038102168971773773782036289791011192690372940165278918730412745366051341142258770297309984736719778813434295621682793065326621897894236877418742581956616104760536023284851272799225154518217280422716567629598532903452386171537632116508421304568197435609338428920694597057540374519109678995619710865771846987351477253156304823040413938217626087407025570658371777030846060313621249547585850047762600879359026606212324852997019056710524569757471797677530072271166985681256229756364227390615259115527544845186871531085201946500585492585903240413601342244971766599391359159562636999361255663672629833595755753630738217616822201533423463957125468833409411682748336228332484273731205853304209377607048994192409928289725374385347450015336896884899732384087071058527119627729197440377017824986071634061525539617578100853010571763616023724232547597258291547073297030545075736125861873501387809318144008272681671886486183803506041715106070111748974067500323600145800000451750954577327206643558231900731547742782809467662393923480580950937196245461184814339239931058542297842777016400043844917895388425622779351787761942893772636235008687348111404440995251897076673294192215006295338765402293136380889538215758975335879768661911043505293074388754527780659589506337966147546023320771239337902838810829475843243787627949861899669577810951154013526207049505269753784081352099443113590408881346681397325690486237060078628197302315106664012935283059054010509125128660043872840764622710491175391872226719121032214533551588170124923507105868251816378088458984184073910308156686678786214723934618034231754438623195012627662201547320035381694794018721256797860448382783779604106815025530103167015022506775997433869404727776107220306256935433507597096269732398109828722056395481201933201507588953245019361425600415402373473169761362095756317406392469893453626466498560887724795193738543276347771619303533381990308575023086919937008834128615062545444105316946962293496293684869802454290484569925109073620456122175997431498254612982394814139669086866755892968360704482820242200060034137335324536325285894815610621429811139820026189768601756766738364224814454869918771858686312020955372326966896219044393652075817858367281980202114080580100673785573169626564943817766989817489488320742477851818364717724610645997261017970549449715405359764816035824274832928003667612316786857378298402006868688831364876159068537081701622240520790787987117574773528089258100705317539833654795901358858588556843437498960053540293747869195788346114220716092268680334902046727295121002767636116107545153740611778558283471127375305620736050561969618044413287407713915927904296361406709573161342793006469261742829760960603792516092178905435414430714645519218664979424018931026305065843653648787668907102339582067057248977247774079872233962374393517513488361030469943672586460290585556378967088751556969825406606918140727497496918774383427038886758075399665803540239293090522012240263189500997740890871557070441991801487214566621642008515819066408198977750058113996826493222992466396145956484669344249332189137788539714200725736118892448807081865008088436463470622141968061282964057075704763939071935657809151564777766924598127073298981002866234327435153122284228477789026898916712346061335261642015103326321532099894528964935497399030743487855481025565590781200197039793489130932009323609573807513812261374052916010417946143383037418446264222458024528199270310745658226354075862790282031982351554991222216729961758116011400146107906607320214620798204638816462570876381361210251984691690933467790525468214503375346507391472574773069902954639633791618169838119011915294654955312173394897019231534626607220553239474308964172657639660783445093482352326378228742048193847433261004976696694296585339240337448423709326365804578654957254302389613280923108243030731545772628441023686348786255326620304606255186267566617813182806352821501233009030452208476271171089403910816328196232595529335766541174398632516432668136732225085769682450052211956524285231329551353369884792563115552585875830641325065176139274650914747289610960083638119256382803956773522630582685261187690474301610260345352994468445693449924808274777393343760020870786464912189622045104723671237014904902501379911361150431820691082896630486162052641322180960031007625200587473214524365611265576797077436794129829943917174291698240931850662425521428372191004844719901917381041861125779326832694407066629651918001205184125699764221396186941146667925127636517703030731155372992142209634006526627631122240669262368832980010105611208906979706289651777408476587017047321676329837951953669360015690666704230923813428553598446065343334325354549221486177066937934152919925900987611656683870534827642574787666583418126649444779735809213744086164999416463200962537923913886874981202859862806429885456696028327243153192415926393802490089930553225810467136379864924087237666147065011679339035078318076859419522528785484517375076584746251144798620738621907099540027500508746716904658406430492583149294295363118936341614163414286769494468307139062659356468819597801803985423062579386911659265761326768921720200412772341566408970678363270317245156907917140888172641601594477476988734982258775544424540351023204090635295310415437946064547296001060997657804991733481083130708261103217512838047535954531863511267986042092372090311653861632929218824393916260956495974345084869295502617870911242576619893591469479121205162813786797356191813365853371393207157825726543947278264271985735545157866642128388095335578533761687840727968402069677750535999556473935042313297677459622269859786842993724950869418086022570627695046203900081317619622170119631418351597705561111288700913390415321679498295754873353920509247904162588394140954829622527466010453068475066924928860440541469388045687590368552994901631187950269677941740967896932801026462344898015812417394804948951281450949219459746536100111979105502633926035692606098175815679963512654858370423533688232306653534400624089004096341437156739817012744478158700822611178285806064694692484304718460305860606665288966223444700893718356368573747577726154100229073544295293992832101489387391366768541155394379003677928988239541589355162866286057457459581032436787496083060871217789257129328292592205986424360897514122402711731932268300738249090000284568056885739105290784162039630427601649781516827412921139301841602064378521742544745044426328735740898308130969983197073092713706627649424032967308709843701844033110818812459229526650227469120867552325701931612902956357733301009027293730989007632525664256679939262170018430427454381402867483462494963395574345094051527456791643527055523927043614504521065498200519783970382228465267938624300543889506586859064538734287215657218752805478317676658088552555523163589719050154342576325366653488898910630768432794538487424374139641833277356197369236488357114176887596629522998495670109130970439332497899995025311739783922645489376419848991784006276966316890883606256170306429088033793247159383596471570997742581629249050327504093021997351317729588565251834029645314270129675505521671544956058578717507378065332330773381390294598543713037775188148402386982065984921525777389984516705697905705423684177124944176997191176550753239926460084305674924849462407640938253406475608376060855117117671308311679425040949619534531751924048815155778274192621043307729383212491936267046490005906723663817910473555709117472684856371302404600020041512580229982301547515587393864910437146179389038756428359448965473883662778961486588964045475662255936216929142668316001801429802133570107277978951717305106147336329301521318089975523488932182921035312312604851108183804212759714592411791519530395634746511991674753574433356589715282270508335195730037071433139670795011097463883425664780819839573933733059438598120899013150583729670633829537007077743658931755680454234927528226946183127258377411185300088577808673164086581919893151706176467490490196759782271291372998492648493934688617577993166011671446824950761041642900034353702141558006137721695796283110488603456572897834966168039580009151484718905493823472493337784832983120114153418422107334305960250105793274465447074909943399721186317677731864621741922268443260153813017971416402394347435811386387259945675516766521145099162783055549775927561713290611507318288738085600036146285161665563049515231071753529669901000834549408632859626462187769234347016917055125244205248695172729738287885701878181331425724583918261324758873766298878298095825681531738220050826031170653775915066309196064988267088966304756738492887710375640338885243840392342557636780509362080706586630325180695114599252947778631417045422130841746370281804622654443943922519843897669505989600372406374470176369599174671090898828600037531993125146800402281792206973185666231355006358904141797817335430724783405026655297621848705399925703043969698010154725101840720340257363076987843292177413050306877767418393805798077054639003650593730417723679043215649262090282349115831185440197459103525381441927554538691260839489871220735524465479648742481041901524517537810166562674944588375067747231538645184284699942381626737205319852671045997060959600763737591236233843495682458467702449561770778225446925035724783634770419456599134944792065639215191838340059884890916793645883089573005450017393311984661071530736527701651086488725924998763989215866658419006232843107443080978658315628496221148854257415479751426317582870730342007177322009849450083311494763890963902697952676944965984246070525942878082850258159539034074250006305975145576448060392751881593564827948209136048429707789915216594338369759460421095747838079003524517662460452137976028286612199506596554406819681089792650286261588227946291933778295946200093018092278246794980077764341584893799873003636704549957924838867245068065752166262401931599112874373753547555251179619423498418649551804828701392673446210953022528845772320062868475377004847289447642514431603476512750025249473713664246889954349003940445902443107766269136243308589397253420069588909780098351561360113703006440397277846394235817657542234046448333347772265635497719521316789169000140246884659672227344939124522338880363752428523227574041233983495729939000704553610906318457844488520076971436805915141163207378861738801173465844427680989175109699483003789717598552935357962343052481814558678251827462112392398792217234328337246870830834868127565908573268372863920004990925761292773840206063049383150998682888033300692474607928301481856407778217733028126433107730729381911916450204766599329780904914410771997329120756294993188738704113185351626608287332974460027112270269206888639961914050888524361738852463996485795578115223547701759293895015009744530277311808200755437406674344896326948777855556435176407793776009436139035859921935165807412845998705823280545379451692584570923690855659356707165164165173900261452168176599378896315065915885611876779256594439339853467320163532775403345808096085704563067625438125235506467981089411933273914728046013400549668383698585779846072392174136881185850839626304609854014721742023024363166755624284454748002482075282458140978930521477869339326683620598670486723570818054815653109608796335682094209114884934203446027438285806640811949785389047205810922409791512345210613800501171643476003029519624088255299166399298332210022775857253216588377994470109524895994584071780720130926350702970001980905510336787886883110100952173241480903052412241952951437251131502055884308877413757105748644124655249451654275297794335347254310525772079994613611865557490572684224385313188883520357060682280732657481252611460793875332981877063426218627128929276842139180645307198314076287687440949599723992793665741847752034252833692920538095674848092257038937790328576961969968652970433992392793172457962977974712612484561456884913104575283559064191458377129755218687709750274256913726249028409889684174333155725118820212878860013704256902863725962769547409932566013681531371994020455767102488212704557396495286851396365169226541790459288207861424146152640742962259734309206818865286003686566080205096604130766749022123562114509221509617230129514930784457025010757720027685662831562183948675444562063578088508799624387229672647454771962997889159641797309365725534040505781364270477157310093195413281310336999302100634219513717913407005940964817053723336856616620156153760154902118534168135656551249317369005352938097723881640717212614935449523170920365378891200618775290573087568790223392181340052739262235228018967541937239269560365625013075697780764352199690285847329068753908754086330393177271729761781050631352149387742127284876960014593449768050289607883321426651413711877999541378212912214399180648157571155997032288991678115823187372481553780051565643929178572488896950776178627318473724285834768704218065383381782095334472113811871293415541379761292892626660447376010333111917387635544778195788898420593334256934600010732280725617693114206491685267109155660262283215820011592756848764271312045517832221243444804472786337636892784213162632490485385404408027048700964413939645833561876271257169294507413508527182085550722887723725210981085958970709137724943755251424470168872285264010264243707903443362950831876085066296476451805793557705081229724777488638329222964433670111574861804012986610886929534390495896973385591937055983788749412285317758690467153840781092661952785554553564380788131634638243316662148484724899101142125004128920412260204920737848730898151683935403662244971973964294613817111843014894176666120712088049816363541647546168043164981641535248047929468486821599826280817884239939226303417713388006593617483048461303538406145836994158755925273782452353380640559315790857088752130794057966267649298017668313369378758016232742088065787058380477632006898235815047790300557144851868078061820310751739674492733873678195057636667712301590736216136470345505310113248858090392381231686514727531714766763266963494743539850245403663201862932596247612179969834666839306856747461185140629878481053297348804509716346084592486244058521463899745370474589410779598925374317447091156873355637746611598478430497042409161478946691565969924877388959609864611122058831341645682953041758744115373043429794383035592753030665493641169061160196636233626177190765760377424005791863511943353615581603956864119363361289490774947971100219571113963590508547309493724540021313878372647737731974601761799133203117331667845268974583515169785307437182890130587715917559923792886750048014594300728001672220244472722799221541615436323333875349056367975104666585747659474316377359677498456080852584936564594302944923411282871825382642135772297846489231873173483236609390271631423246174873214709865597423931554060481001523215951326237914950674443558843167313396166586789355589436706871429732680385694250884500095776795051475072980375583743292404653319660995478084278640708053511252086522757631239518056056365968799430201563318514428900628200844242743339176759774233896795506818253077202778329618373118247893737933236157538613915045054456762444761073752895060177543518289104870058202675817763582315944506129103582708468345035786141148698484940427070813230351858288559844513737101996820314964431673140980854948359551863805217659632841979344034447087977118070498552187554088412513000061997077209136355836883619486735926238673460752011024997344953961852473793060475936279681054367953096355601550295169745823368735212478743184917028376556805394143392752041820414948216860168830497251735926549867555169947523140295033578510348320777323840847314782898318245111174351677718642077033642657564599415102497384529859504565495514604487352557053146119583343428843886148637612503867268129433195239331438578203314931890641690973451489144363100462962798770223151497225505617444515571479393249967185253305771844095129800656137412884581132819569109354071734179286608198399274492052448533224326444109524271314548740327155878280161126583118877335863558628827931313760934957789250099410464158639928896550961229875299321506148375150599995098900269048665870959463644437423814560469576063824581479613398418234886336310653813440565313188956969183062175168665249087548315861956708565292424153038453327530169399519647396182246645788141557959413533893740117451170016484342668819381812240037378974470605089381504480441077070716668029017304863705982695626836162745108981120705888821761525526203675731816020118221226800806873268424377488500807172646664387860940278308575584081576637203163194242375990062795532348577651382602325346161755198822168667146800421257444227584221774849917440271593650870211596202905465252942861287995473495105024608127542963792669445338403080150239697724313235525208958400512258103815267830175630283966126627615803381141193802134562511375514315996488941165791766611470147757920433347361231736908514967296388114515277089053124027195385850795904954331427632228706624661371770779469618754600361433794619392608080040432384322101602504032063156199224319462632034488107029246165442359779483046797653893222116787014327331943689707848110792651652955030183579935615989135444692175764578659739138080898248415690837333706733635197273331638580860590713179989989570006263334187709933096622877998522976202459759762041197316429626577484851264273707358125150811327585343938880504314642239907317470205419590646738555089418908518365547843137220882089237569884038605903358594908441929381446173408563772875407705568025901722061917441238172819308912009172071645568199003706504824037468267219992282422081553710236268013410642246440823449165302358842476517871323621253539210906664654135379884301564022399674311172465158297281172263138891246818231468660065626796939421599181322577207111603145164439812403208491067314805284310565289132991845830531395165265940675849880213103130883544048784792366370087333039657302685384256524060124656546366191750258770817855278006098986219406240533155450482359247939420049280019452726266078811146429239980612306829787943447401964718536263216009535325126146011666712459274037348420512380442552845455745238240715100004243332518403701844947965076002162726788712178772083840761623427138857950013247997034418322222355649141013356966977642960453850674452138452491469096084121953695471591599673333059424012876615474493323760189978187899104644450527054761446720272611448829918432934345793829275531652784179102606469759710976730485117319443696674951586446060395442529998369553012342703963779745730056298464708600884127511711094705203427578093083800620366992821529199618013939934295936261634328767160938041527832891164149681736448777424359782505711628391850388159285765625269085987394416412829497462857353339734187926490810753509019648232704766745416952781134929603826759380820605907478235547748631179117583397438541739793388502454191638782897178580076095442609167633293073143045596112451616110217303475395057044186461830930847544166892672386805257964213714093851147551432251781636386266204255256028802187119200426574307054021098001814131964870045467086717473219715276877834133907908911889976022192925693412466317020266874424881740916019132664507889045307921240369032877356367527642912432027949330343092551998692810299644168632102806906059412914476338287531884816944472990047619164400137089734179683176853449958220612820709656247404216961735750999321141008435711587313776786282156237024448049842714367124581204515168704505398331013660536206737472829900037081595282993025992714863577336367259980357788216757786068172864342826968249523023801697700501821921458145083165614078804873015448735420918469500697182657369656027701158193660355145807663251770906462188243191496694048967034119326896608696114111135852142855021843278249910287553913560259000470455248683637838362094626570596331622787184426370895716714850842935407562077024912495959507248060033208133168238872044572732690924163762432822374090952450348581954507904903344933726877312111491249155489562968735218077183104562498728413127219555825527686429914013844192962871728232810292922426397824555412311135097574241930535807617249148406215990115233562293178595669910884661729748330292526714722893422604093436959334233981021091902264742354666441736703832476939093418572567863546799448283765995509320632789883973274150935670671381838211697170491947968708153032638365085306460737078348254717238270291765689545331766767969478826692391023494854634887133467503624473603596879834661286210672425277423798210348769821812966909052755602081825341107206773767162647360494503387533187899777212461465035923777189434316695987596398849209447732286853331566871901398115154468560797448457679095627045271541087167148293928665688128940073990223268539362078439082637202797315104268994576848010290913646819614646878101245482458216723763911368935643091651648343029353636344973728000698959227680279512116912790945442049646103561090862830511346520431307298171738800666075051861870672459722497992503868304951247111386559392965329665491742906072777733882170540417559435497552132615904296545447220375965730708771533358393861909076614248408925055493985217049250934366483423764369699399764249608598768478135954203212388294925960593396218514213016486033594827196297440162186782638145257879324298473165519349875217722123748728500019121029849923104247172566218776910924705920888700305771979617711470277005443744279891653544053751608777889797167018178475569711062389374345193123706773644747943595084088680702099296408527440423739227767387712494960419600025302488140450877563309064983688009237531587515217928186827841568451248211783114652166212398446010158218139478629392121688643825571602713194283637209083634662386114400255934508133329107639307288335369210490679550538562805830116798531978138993433670912789040573093410736514724908844853849436565640430655425544203908058362760477429076782300792692640139262514130942835013329637316299708790220842238302500025586931368088086917172550052227054128599841255076773574784592946218888467136171317224745872483295214710545851611939359745929644769167215960502946128073391961346410871544806402327861717570084014645026290016911458395527197191511654846325099869090094026521283224276759709880214012354203163565489982062124135402418362269601676754555255958389449630481412397219868804497459726934291385298910434643390968520571837182215592533978486127804730253549893767252463269461513310851922599892305488805068774131225313069797232321801180166567874054275788507726139622791788898860467342571434205723600929458868272636229483273023036484396421430391143006498233075653179195073157704379398461733595636908490798786316573563171905425965233148239968513762139930920268895906658612067254480531785893780755477350553160558531048475285912852740927115985563446704444196849624769757030824168104773388525387892633139641735595364616770642836447838896755329403337037820974022589571683961152399660253606348510203228279206080754365611304562249610889436802769893499166265955982763245407212319380359208224468051307828015356128575627474683510341790493813414423390711580728264195571875316356642441352683467578509971513091336429359529014248844286950240234011335235396003438460566058259963512921110453646641419686603818187042415513011906809513907426694878577336580831049730901311550287510958314537581915288011279787589813639369882342964023990421511902571209874323632585979221015145528962260536894475767368560563327865009234015644718592309182447210515215335300508287776307960540574907094200624667352190102374598614707721964485633593226006053278442116159360379386524795325388684462476991401545315744282725305974534416481634668016503782874941014979060022279455313641819871035979171378759352556348575596178300143832586178732624429103178196207001452190875275058989482119855509535026599007867272061490421670426539993799116418848119642973352640138057549514748085784590656155237756025903178012973585797907223138935127650365216465482605291723373412646000358444708193924503659726956749957012543826714225891507943347542937729110837982111050896225042652912673454522799267931327418143465952098197015414178423733231825564568046479313184376024989299476296499182678114367404526956348674586903041741136941519611401973725060529517360513424252495989843123544888062348655391317400379814116248358313020930799036929753595985842247738683326995712554858311559996722379384895050230368939865901984563546033480405385082616896616319625040460987598007709639590687615868673074542322070319165740425944264041096638372434649025012240745263010263568949420064157307144218798557188636844806539626700092224494324626282065758584168900552661499355729614829008758193707578164316417826054865179829821906446282509921623494540349740407123489636396561177797320343549711431504722760442910769429187665470806592014138530101013820510873180924126960223386073031462585602732370568887117973914427809148049222469350187099238373850165833226691915726570522845480566763434538806096948540266972214544068963672443460089408420106522077178397045290906098041856199875608918510912693405796087773911082835861681050341958917920749320172573643221224887744266294485198223810932850148101666032258746947860209063367347688214993158149134366159027833034484441784994793538282044023462901772856174480528019063029078861542307676005542436525424150657861730152015026427936340370125373806708660867278917427350710014458716016536934644887511236760823477297819719371192626760572658000510247173929133907178672781302057707381939449234395828737174258681713363724909287834497131763301354152940746741184583642861996582749693633679817602952910982685644567942941229883537764492476084368670963332265465875064394948258340454551809036382158910764953040738722191400498003351150846954525111319070494919376230594236826320300075609708570519956330619472812862326615197720155704792980554245042088695116439851734887811846129687362574688749013470328192772322641139476803283893140366653838258327430971539962971649722254691338947414161800586381301343441379902923340176238251729167922756911569359242333072175867101563237691669775233443406870947116658242208539108614471356432522367674048018293610758370576047857531560629900242942016990949324722914120274859962240813029576724352609540342216145992552984035918198115250342954003310683317092770620425837577633307535618313486818101116055162374954240630475557543672771396909847481024478111916396943985896829131742929886141504232715940642387672863420810342299613420369988651094984143643351721764569102448458111656457651027126758425667237384414845137606978984668281114300224774010928272932924697383473265357121085632568221233468159736407703763414087502736143456315318304916752885830560368270165983961773943909571528809067838467539110444935402898095597183028516089787304591563000931596002759001599949826794436255454375320906366349664968979286593820154179984446896424613695942111358673864661007619465518808144092901205173335008174900377340929943778883629750871425773943540504343993193274280739082974986571522658117053267292773879662407034594203202655102963335029263613388515839000516260724367262129285500234181115940709992316256597954065347735744125315510672485956752865429863129691642634634533818367569567046184849061052235465638653502761089156127737468089061487241479909961766076342660600435908599059174313748373497232014179343203382456027097450106236343054115105643783962817444486812992139843005244867331130795455224880197048427273443390284228414258995585359945863776011980014761557946852850241068774338470946053828026091346692066164960411838344468946301375624363298462391447651336675625308203813881375576646740950109461817283741922886247085737909020531183292793816204933105691560781371772844858143095535001933675862175812056443934281776694248034025667624654984917384581202463577646998981659698092548285458485392998195692768939805113184984131355926400931570420785551788056334617795493705191655752838796390909247427237054228348816309391221765545468670849773427972372015824512709837033689421142715911612798815382769287994375309763815856294785668138542721020711181341588997047940550034562767282872393240986211617502386533850229384676506186513829548640310110430827224845506905479372190096466297587128640575298229730286284721494360690762661069720400008726489082645113708330406004909353688201682859589203834233010305647122538945224301165157096070856573379431078246939296445486321870961220544337797769947219676172472630464512510937037398367586465625469450427720728551842457137633586913751835112367917231267153310429330487000261802918547126487306730597988592569255060543169659821465796547018573530630998385254843376527335987997813929506822789473185393324749416545939557307180601145836584296744571622239889822208853010877480755318642766026037194832553023416154587320344271309593643054603697108510911060812660160405547388184984351816810105946310840288910796319850055338864628426376632123166882399512923977439252761805308119966407028538529995174788717146976253196197733362722671869395430505715314747977947913142902785023328914982631034366504911175445539909001474646693779729829647263183893626182592731384336833328235991916495446797288218958160150488123134802347692270616004457095511410644916048430226780229118215818702731266923588324693976423460089300673141706082210777055247487314980818001513745507452322287437686261627585618669478510711119558571838920570664890148372505600906895649838808180724473989439324791976353682981855921772659395691797482837579262725149850733274883965514580824424900122268053125239510831098625197750946151037237569443207114783934147974861315034409880584573478964240260335743517605487708607793495038998453294433900844471555618714350054849466278686348321359998000223514043982992246309565775553374757796347433894721640031543698103999561864324212063168230391822200904137243033745572921854728368598664219031578351932440943858139528310203126933156693832427255625580665343219916250818232167485832569266554478894426795912217227417966815796838689359589372172438872687904013960869815685375030765980295127281050609043679797221211095895313104461534667116510961914274486564036732233006121975230649282766428755432561433325705783629780187317029180473956228911761794265384827955752681423323231203175233514546423960002808455042727140269233165632361735253717923687373279250336165586845579680450098510963716816583669232291622774429527088169836706135797858454759452967820261356721974435948660249575929829137793124789115500965774123502986020113831792814277227990144610608189135545155037374564032372816078054826515120620738389793473893909252197497156281351505235415322419867983229567187280318899023957683649578423843326616896273579495858667336018858143459006543366232271236161373618402993254641996505556122883447158395657011747383580986539903703645270217272421577065584822462488115407288084933059992217994704868767520930886867072866726045148064132404198519964082125698613447300197617682905556625686721311683098126195792791032166725756014597632130768710036093234629094594034895831677946753581344055322978215836010464818915682256630409869899064286309492084410122917704243966824491158142826914641110629141036510186946172545351654812698662681355417656034642275964137247304549640340647296072967116982124736347680869690456226465858374027660530443911642161762327741851146886614061351232171955914762534594015887462806884951705930507799753055406776209639500201188807907719359051890247375032158810000155287413392263034522124588208101158814597405612016142158951634944710917813025476924673381759385005358390489376241388071060247215814410076537259307261347455943630786563452922182754679471649798571961665849311230374251152113948392434384920506837653801277469933431846395127581572347174893684211727725350257433783449894119955902848229599124809645766590504623870349656187701191250172110873969574218629621166383723327927026546916270293897367839579250013054537477169161076855773579698600939600538483616513653056504962044111386221162008544366123270379145495356981544894605297663274331688166145318412133845660363115838700506858812851524645482313530606208488895442873921815173257524088572029343142307138260868297058030123357746842655070040800375752477943893880792930933560828115829505580007596016791169855180720092612516965141473338150856144328301409352821984776003670573601200016002941477382260702424375029641918056829605519284093611145824912791175698749047676675810489640445569242057366609780813619670280789832501656150936304289504265873375589664646464162692331912735689351071724558726908906443330075701039566942611086816116192873088016396601720681192634427309652949808361057789404208058876737926336692054096387598637759681722529993024646356593757205051262514381355385791339611843339662259771668837636650496653202585580836763867958089972197721207474371660533459120018911596382909394324390336673792768571516463578503634521865670412471403915986087386733274332891158449757432444537233960611070084684309182512152650428995308715968746733517964016486540308372433459049085029686353916020340953301438125206607996761027952271658425775772567255937092252289504631654327847965535216119757788953544227819718988896989593687509536834280024575692243916108469359719355308417615441833057995279421861595594035838787297599800582422896920848830993641329878963501181743820207853376150532179375451068154557380678426048078906688537983688281571180041344763700438546993029729484910452154324497377569006432839669548889453891203764730604624530060217728469755643889768549718321858609877558399994380961355805027491901312587350832140439532059181452043482818957764803318668122716774313453035304883472586654174252548009991210529553663538188931134310629426556519991120214167225730732686400311492290225992022951979478588251490683523506461624694228908114950867970762229727866988175264810656711280803119915783769223069080318861287357663994354675528317420501168558384416510147980091724889460944705754910318071696761297899453804547788482182465815947811267924634947253655270890094079980758607845446444301316750651399938893419376072700932744544365020773427824539834699716304878263795223403995091095251812552014621679905234727242399754716584340606493497573241416342414674292229100136881955038662469310128929168316158938300821006331461657840732448600743640975738976663181935167109342602896953283396962221017795514458292559112004562083537710056365453666589430374806946629408596950593707596696384352209032501267594709078236914551367935609966871791223917912832026547918896877859089849813997188014550254407987042818178239483579523068074576077465485667291761278140356912584110775962884173648306567046182429748999201307476772451691461889019922319171257560494239750119893799601318747663383944192906219222296689427445595960532662325490950220483400055600219486861002560230960477660128917996603605760526815093892205431887878310715120103955737745231533309567442020657786375315829967311052355380139348665091031830646537332088621133542319698795213165680192732085065537707662920055367406057480404475984614938412040402529317172252360362109271843888526818749819944979557059750359689995467393808087831553782493630791596501634190387793069349946044696307808018484727763031385360347696230433437225447859666248235192257971809364345221903886524833169534327841495389309608070772930386024643446728090869580371792941330325414843750483829839066939023070053893732878089304880504883905190731298755564750615890202502131007220636292406375501655830828851216621673411951802093360032210931346222632449169380298182802429321065422886094868419867941266994997516725122847006090292204128623981617896931859918340805981876236945264655163501323393781361883143106257615359380515290881105014239668014992890673046606977037145118777405534268352027279761342113037025888544097968301472189962683029396825296051847897027037714399823256546840166177975994448410874522108563937160310993477537563934390856678600061311435725552433142777197955274370622532696282156870356083159431477855586485245022968974022478358116868813178156852477714715126634396444161857093042289238005694111193872463986666190490603981386577631935141907563278941858580222069969742320962895099238353865987872096307701666983701840120157531579244378993749410311302293944511602690061714983519166884967627229173202809897399371670328437157761005196238023952622080560548006147145393872976216462765519844120096582595242225515512115366106531156692115302387057351091121427656773904168155218376515168696034850200240637652107705119506216691228813577182425991709885375564744900783059907214824655543827182670662538543825967738929388756254326530018184921010982181481891410903995658275538437391642752740750052070755406442221546446360772482192800527360587147925974082749287424565666060520451331455761422609517060420118385754712778874701097590032191722782355524826063231143904963734739024168180384929501333675662196745129824042250053055002654644958584825403511595466132817238818873261389277842165877659110571641165464172855068537381003135189072382832511747407266708649995774929390113771006338469091457865557044901609946861944585726904325760912030862510921571612713299680439097657249665503668124669815949717840150843292192266038596493221063775619964628181675995371998213907455423691329267148491896747205280482022017209479820273603476409490241907460183168145061204868724505530799855367439191926867393655417567836202978932134345527486204071332635181811327796673631180968107039914967152986677058762023696039846606741112334157136250565347059909806080532592001078076904441231727508404589727954018336460450892149854225281344274531384933334239692993218905369606742744562755089049822052825464277430517783344664524928833980218323802398829086359852429775273399928618680259005575806580308737737272963627635253976457738821278685977250331526981893847148019361260285774333664870683796885305950216826666441613981598063115319967587223274410730406640018071837077879537150847901788286183804138351785345972420983951106086247578086068564463709979132800923589709439245418218544316537682022153440325473064992388029017140967894501466571472366138584530030314297162899629475678632363250887747246752400082666395783326932636234783574508442981362252069265449812215102812804124758509998632886201152881064816797286286523723726040297610463506845308798521664949976764215229301573307752194005239350656656032244323292695793099106322273393737409878741962241932191961000510522879396234891300848798901117441228957073201601064835946945648429964214247608663704497268237167716916240144978282590162945881905554655870662846623092383143424385949905081109791230098234214746464902496667998232938488386927147695745392957759524492367594881255254820468031194119170908231389753115292233722660053140450940068864906204633065600068935933531393546768153897364046845631634501012713483189907263035868897520932796067679849535424220572746425771137932125016884857069511324795751134636752502389235968257253422067927179360008175924401949112209289749358854779272239741065932217189757544483828704895653018838005124340302712711256654362769969314425679138550141017568749445171345528868824329344166518952335633550592510565455677338916170472415293827343155876598778009111544647884733559155142917821803178313805283563910797947215768019901140586035014578814797555763773958496918591138940166601471799064963770516408770004121952249170979007364133496118645206999767051386825578510327182141242064386036192330883897893514813827826420718152534249214775534483746814519725217989650097792156493076983661322414889342624831593544873453203004367591346360865420569003182032503709488643363239102876308721816134076376424576584379914555630345524196117731166997555255614573307034736761222199019276732321208446821555934994029101477680468386257275489791560156262968276723302990707473777850318023946051103161930355868855784810971802726681238556398189027033640605019282891637288927793019146669806692348293217887876892236776328387511398724443323800777820046008540106452825133628730161651365508249359622642680537718309239252084134289069494389809178441664127488394417807734718676448117131360255396038219507371545480516628071849225285843839163300035180904331448148664735478508561731598749321323626424953068832849883256789403775604232430310256203664957082325666439200602240310783727184867782097068755974582301214941670985761523943043369104923077032328127945955646924327637785498510855181927854186695223707194974416408158927689698886924366916044192804301259587104600824302534242393907866682771021598974995321953211979498791183523572620231907409959975823580393951803310810324384251088801895333084120196968625396899359859431006452320224856684121680677977659963577043172882174219529272522971551584621869339226479505387457559516836089729947505178117294926111609907749265085155092974185204494157670308745915358563193818683373886612609568129560999280406045065916751682296035903535914627119386672040473522346221755158211668584081895465232689878250047620967825935765377634356889993481231252662568023637066530527499323776503236730238731273074281280128104443226619934891654127248017367665454492408431079410906712726301008361943824411101729542149496836436871097497050234213768654220071990759778714967531516645495441637381494678228567417830921831035960063962447951405650603699736786069273835456943070495343223165923365773093053695206196388310668450880712695396623640313842152937334220791296451960213163256067727815563228545292827078385296363978294558356473005259783641487985628323006695048195571389648746247390186304056942812429565992024264126796001703047250327694779108454860614238369896533590644191901184223331440043645416395994001146938518232722074798595212868904192466926760603249532249794334955847714260354323227013332958357369077441334604908521557842232150818376922005363871091971651061798967529021096440487853480077729450532722802423681111820295767477265419772830649664928613419400669769428289020656677387029800145298146344532855015336329190921733731203471789483129387558363436687016325346705183707986542279381158999035922341307188841505875595231921761795897466618375550957225290178901238131316831616443346341762319549127843036941882730987102263391609004773292736597466078827247976537957636392424641580678170483068065772936024550858699270671067736196882153332322412144864315416790258383986239490776071377155091662509858545214187637882938137503348202918766132210997783060343582155618037466552620915617816874623999975607241804833215876846718069740563863837546300272402146728482173060071580872712405354509947851775822464969929784245202316920555934250105702103330752674631511767727528024590916868082518840728489801083873873099310920843412608823174105549487507222569459873967924420440984011726284890931315987099834091995299030045018504524092507723462700034724750594631184694090142656436150134066125471382047587948108386477317243904104885871483892185487991335357381686215189831285077532233819625948569088275808052227195263270345097758850805059529899436951608641270026614552242751189815801796958557481074973429996212775165156346342128469546295631557105365825374354689401869955388596979149887366547299386066262055331938760569109327991069430579139424483894698234746773546945057449798469032755581454569892688188503071454827853448718593010123162156725137409498214087717604015673796415044579373384865600024328764697143240227012297605401444854075629259890371783383563888675140660145268848111297382086156468163109439586926005993595080086717508457412125822405213745869060831319102926154869005463143966192267084030721368515829059561904671113961453212149184561659622201233224600350051543058788972721299657698803132038041448533210727155303451769264858540080103326035597593188101936250802096204428543690224171011628506969996327005024904262803347443733386477592565185976404208107304904924987668662928022194817086523328179510130187613346578944716683474907209480988238801431434654857628042368085374493953400170937758440701977874246930804766342999614923859730233967234329227780872753562812919729888084439409324262739484539538645896526947089416728120613505234096646908676167703937194841329887543222831277164113306032338731543717872789835312423533589538075858393633974620075362851450865653956650785558740970876973496536841920722721985877050815181941089915264110600810257701086575696446235703435493136971019890077727213330438632734116297598361949425904987675592269370484306259162605938632751327179971439887693515947527940511329423227883941831686067676323320846125686355642573382512117457777401001549353949725813415917259590765227721467153784670334067138897588347524568224263219058124914245247864110599774507889274987281972650605270634390862469145810068452026599902915368783305761105770881823630893549612180144013261603235513038451933203215613509714562854424177445918526439238228757740857493746771402095353491461161188425287466876763190276988250223687702689660228909604608494746803107680200959372044397589939299261111264940823677611572862511067796011436293908051159836615559716906448486294337881392799978558386605272328799472270484207299041906311994812673179945566544460617251578758988898685509190891520347151068595460992893545675935405230506607525546822063503235107081907096070004879161402889988201975133421025627342771881323232134630529510284310071750503069349297170121447915520371328163419201493857093057998441928315930132501344260934412175250313441694041747208288878568636858880944498420325503257285595343338108715266138750927737809716641501812038887879187225484848649841783694862951383532595759193115993996316318289099778887432429203479358684982188429058880553738178142118076232789947594711379361956663804532286336870955998658171431580856863725372974327011860587944832982035708524221156316339507564070506012305131975308776089731757350786432757964779255890425847436866450066364540836151737191686955475476766932591659053897199591450991183736984465106448802986978281093207789293266212315408451804162815658845855733815688125716389012363559078893053599125280240734787621188829634333395637186235434292253239213224390386266181547698452089235219154379386234637721920349091664365654054040475303657799696679802290167367688526497223303197744499323047051680765071799787039713695694876931424423924273211851515525850192335525399545957405974956335565970782565172613785873014240952755975130623191459643967900147180974780579852717751065161718889810692097975147848663535388932255511471220456609318332361152268871409687886406530031915589176899196138465879220508718873535514157936419415616657261248455632083306924756271510407513478284127845099974596230562855902542833683781677271336617482938207776404757489371342784483589880929254186985035617308506946147844587418932375338905723967877370730356456945479240679766780281600923211066262199520806148625671222967658745062084341950320729413420877986318110550667440573369092875624758295557780439297484740218584186567805483314801290552812661121952888449970573079064446334788167940020340170006693193753778596687088179822913397656159613356543397917848089459721000078818615174243040414763745150727430960896296671880732248674672929375927194723346818000042749070623838808119404323273623672301720340293072011091548749636413668820555986106513472257525272119766310429448926959523911729796557633989873065160193086500048542778280480397824626407770472960491076867038003298090928259400161300496080609526450796474710203441636786937257191882886768128229580949141288983989512808321168548065752589082683207693365366310632543207105495162162317037029981199268698778099223509306863503655163339200736097076967303927821581260010894729678158641028292292444069318706961744642758108040563555696918724993246875135874348357594202973151555951318633903867548643252666824263165482136166960686322692816761715842742805568448394725584870348010086763773195866626714160989961241308382991881083916604651966731597773128038121667450451089401801440157822304130927140881260121983876653945552435339390340216029678426794004423028661643517655495526863989834091634689966627207735957279007222582405119684588957166779635674989452095099833059168327366722711474041752392682180135525074144628569093456390011574187946806338085849664815366441255701670075142383949919124164040203053125228930081285375617286266467383983280117617403679593116440015035569109634124961200891264498863067221409267994277671501851242930099612013631928515197638764100842509440045955904304378554663566164456374536860240540631465064434298193516606866370031463812233427403370190519436134914313830277497891471520838879644544558505735458096914106219698129028268442528651253917843703639298495708512662813547336801232887335205715088186615178017917584804154986375449783093961021763810623558527835457532385761223601730300280018689843043481101599921077024981948262805495731417932926994526243017183820174960171805238732830207222448794743768798024596855860177512093695043506535695039434370054596857502717266209383682021936320491018077199467752059733615593284218013719712337756215330271186172621556473998441454833299956126899982876072643653393487006977512067895094761229202863553919716535053014776246466678965803183983813252904570679602975203036437839489294569098009409775430490731561431230565469091627568795029185322038328769774206709006059948104051062875679304043256885977342319021249781104356337263179860600727721080450583874288824438024532556965208789714870038113881940626888581169280086630341570248596387352786515619943324938885494095382948307914768778290080476469785995735392768370638450842561070528940778286724109056374572470701178512751434162335687081236348622356234654991571541487091221561272784696273646095363674698207879084067216744122541776765273744420244016344642519131557284925491225775952927498330323208473315793152870899259601070491879685194962863255777106754270604416598997370585307573229218634069882129463029272642734245167055123709798282202808441594731993721672516672502752249212182134131163606855249643986275612751346120487763776904720166280672287375031748534627123861957703013521327320997944655015849761831036035205412201606224836360413795966536400733728416985944878725227202633781521577680302366077485055090287660844076385380337715090993942450385232928321131080947044362720949981311222312660032488767821251440168846294821857003058640772369721928945911208012312888780185681572573129830817543300365570563211521452833688034672395368169931035584850008655307389755143117331068544319730816846912735458433309706536487626384726429562037191529885662400781888490417388922103498076392044219242582823741107086287444650988353177190133088567970926601887968912208929791147802282314724931831012325839624603907514650617614923285292289547469676473812296974023467799352248630124279216061240077544261995943564281393712246853476018568862119087552169485761096631851603364809236307012101186899317031931129167498284489256701867007778842962301985852774100218567200359439789993884460299967813680987259486876794673380331092183579814655262458345749614481705081219022363190075075029555528820305476994192456486042733113795527687858256038833563096733310756253449163947220462903203137418206355737744796541278760233075447837541108051115128093185045533738489728966881657481498845240414840972465588179818739270344064654510770776370248798590777073672413102166245293086134284909684236200772154121089848115513415679779130987500213438010061494564778799305807737501931741435096435360729412513538965551938936527306626876424074862252319953212591304189101490513647845197315423191088634164585359528093166972842786091392991705582389825920334204119884036697969510061658059648442314733851529927017928798052793503351469082737874472455044207723799726510824262287835163782719506339347949809071877684772145650362767942057809124647369456935393613157155875395643687055218745185271451124306701242474136022610670884985541292815227445069617971855670323138611633072215473811420874406750026597586157723591959626748792903000250133204513556662335481902751987216711400278117983523144199955812930784634397768454372265161952052652198506960120224923150760506678277929293899470830680363892699856544740981162487970826032043185228394926811970523982456509904186619849347284302514695643833714783814526868876812835721651795066544282832310571313094653379697800591827162726359526693849010944581294528673941230238831098738661126587804821659487390113699165029226869857003604415636025543992093688633912894101936951937131955850067705400027755296017407261763304932253234140028336005611046188858862551080214216053526337882420392235577071807621786307842894357855986255912146075645249397188056667293707779105341352029097512231710682328698929951778786714129209844818478573126378355265840954136935219909620969190530677609223852239556848988362938003119155375882894577990739296444528123827982163037056091461379895646175026385427467389349316560870395823099231707468849286910379319919339766446716714444541027480141909408197277479832672906878478261671459340410573887282664931732848775965715070536431803646233702949913131726996002918459656868456276955448366855701731096630265288795908811516823556813806688959774312055543108542769490414708296032430614381624529252213031881703839369409763083642627461260861451741397379036007375136800661749673290369545511535977032983730379803854084009101838566704993546047988476194560851100495048564199324234753968085130560487042561565795699257323007021708176658450807344995800278487672803398767129940935606847816500045799342298858597497255717351039810419328891544274971478643388406890691038905864434321405487938791933657627813664325335207987206864460513275877225994895041863158301764224260398738525369052846927767199612681348153171362929736344034768190807938217994849008936935631394579930181694857170110289891985521353435122749495615950043993801242721215191700866821774975721997312939230442565639258969141630916862322893090815030170626732205036921845920991033950974053263499003179441950871181108991132077772579316623337831006717178994345178433700097984564537269020770027786015520900309631309019120599033188739186321765529150013199455722002598019161329780224711881577386276432681930371620897954773074765514065040787544010364516459316535030454359743398264939536841032523501154653423691826915731910348145477106014227389715465296545852478525041791799847451515378604890262854715013424746220286325194757804015955888431808959159754677303605228038474556464535122482737535191178296621477993047591083957731087032179962965000973611509503541296496080694454091699153481497376726807716132913120080082577263495217301766074169696583852153858673699331453248399746756547906914212641591967149643027775563125688648895572144578935058602500435706484906293270826035003700506598714284110136333196819346509609006373266783690912561590999545989910795762454227734233370154960041329304165697361554722462919766712340171024978123379192480645336563874089674083946351670551667911585497470103034926773850378130622560019007293763464971215257566149270122657348749141058610298124665490135581991044206656646885046574147822506901560269356576881860322798457666449132953058169000455688914429088435587151321384326020400007352452568398431597144163991208011048649589354185547511374612999259887411356695596009395772477211869594433432360059424686889237059537938339870682423536251923251005438248054391009064173374479716671136209345469041090932194467663327084248080179763489824923137346938520922174125085638293840890019908879178111656092997915296596189034969247229977739238781508330590528632921787633991431155021314073253961404449195952301695069824361502485817451177556817932876214502484207116401447264988577430091723380543187203159385002895463595194369944196556707620234142213918129810445938357187653392050414168612970912981243650561396060573176410243140106378938609821991504583173443778933899914095959402116019337354478867027974041288723227226164438819389208457583603902109426820498891855612172436148484218138200132507074563369458723372698692426953938999149000797949467266374537821830873986204833655170069727235553679676512745904396882487497672114086635734538378193335245279431388826530291106469054810370646941885770965571476884621480209477339312355068665032394656407054860849577731010346122592845602158265672994866298765609788086300894272607690506068317545591997658544725507109058666025754143324809948584444968608991191817352721616461011505581773768688195702521976597228235416119019133594599887238756894877058253484805073582430158934500477451101885653141777189493840462855635737614597097924822837785301644893242345612583695718220741276049960884994149427362120185182299950861139756787763085459689677394576281645628989328130704656409900154696467610834990353429271221002447368829993521314705711163168297500010638739910909822276666878724314759354076242919641748435455471880702361764607760870835019256990606319523146232129525677246374114662876670448097781483928264361546324791435455626624009001271379406746125565131465419551251758363712879457986376820795313944072936868698742741300389077807260211156406817746421173949391304417070257408925874862949646121924055865317145305314609511523084487166800832512227675568848796402431784247555309759186422306317910664253415260385331746700729399995153192039054414205781863400510719085737910375560611964102080771703311894802842747785652721772153680994568331565006941547663390321206990063143839050764247357481988448535753137998344855971504983166214526513303802305866859258344838765975835533939853125852413181134317005256851663781038615064117890786967016477322620095716497705174468593753492708074427105734899540041801795785197697513777108818556128797213678059338805068856234877772999601654440933779994110105837604031742617167527974040834740441059472602573800037153054574094332106796036088222466332515158770129775398329754923221673023895604315108416530782932657536590376394956756826614770357965604046906935538133773265847162738283346269918594874414583026810126795680532252962501772137236877345133576592746588541347788334345210703123747700755118282136909154926403988908762921285453253136778220649908233739084627750081304044497927756003460440340710820113757159263948412325393107072479166468271486811332417400902792943893307068950745672472112744857373430033232483122469315923677546930435656433812677616790268040858329280827833264554852384733922291567548400341271048976757229809946922382382132056156548288505153765563968261731506609993181523560430949058584232006526344772775544044045553266545891921910907928358231209679126870016426828214806112562336739028406638662131517067963140294550895336516424890368106997367728737185206793698638087064619621353115754481528981284487355081057030882086566978880548192702458959804469358303208289485042210060966381280830804319028352406249900042627689583260601517637780178841205776291018549803754840606438880056900841393307429547261071080687302125319100064106913950607379087201623919810979552022264512812915143154025480337250220611061162455763830351299916584316967573030633524963176031261131463254170463881046979715949907792073447262794673046813631353669886014906836124503662117298646256491177758548715748817245390811511663276925972310867199419906592505606723326468021483995560948592617425478197372150060845085570254085634886348850415009533585031762712399681506086438494131103168348297049551909211231764024240353672884027898953375335570751766252991071265178828882346120518811776563753182452367265990289412069545997565079990366297465184494389959966608779915931392876844106891084014539347815320392583568515823726791039719001584835733254755850277299919575576745221764187216591004840778630198215402737733551380023778482592980669331799945340495057383059440141190770157658610192734311809178189652160120531040422876444267476595485203391695267279655751106245276067291813784231343008450654504051299995848098629087980210304111791508131423128904380851428890039160319628474355606064125056755816334104821376483495391103221586707887302399688013299537614350537599842851833699331295815526717016368170724842588973952172413052796377783135143797300260634890304543157568864143181554437753811447378243112734119678816395334222451520467683728955623503031949665265804737903586737176803668777341587850726414134861400861540818498899124583472856417037398874068913634926361157929970179931172759379229370368184563015372541183550523722226346049744712326462859112654426269516652550449658300065980795375636141214658502461071885659115241140568037075596828458501374080155283338164622577495172888785083445397197520042780504055522100858029619536390744197091712853896510434909365225360513586792673499569111179256069728777857618209376127488676928248725782781571679618026756880469227430330026157080709841479921979501756732951145115898096590669256838741652745692761927751872911976216951666266587021935142571158689156376031574833400032094827648104296430534739426739058517044282832637143639308992981170368476443843114389506561889891740974989767525115056674371572311099064143027075431953988854248205679982866811690395760294688828826797285712607201059453052711571114607474398161300635553304334654739302076816453741037696409116445713983037064440399924654391153881281707164108710189838736514808730771031216818989353387515172384612960688922896407013152864368289848238964109070122782622541594818573740442670606184215783608256583820826858552327940400164309342829362294514757353886281496682626783959084970136681942091869526247575783851755900656456279165668558952566926329554043580059769373139268529598264947402654188311367196585511466075574441204159076675351452596276597045754711233617555825788612746570661376884670566120329745656897618826569936786020379562780684876094826579568838149710369424267135456587870219913639716433130484658462410257373720197791594353565245930518046543596923954749083547399201897120745406887930193296226689368100281417333303697765818564226349832880393687562335652737889266614741146028646548390157616970663995681931847482551394508281763730738158912376438847034992069479345152033353128237624865504086688086208771783843113865208004405605445381942072710334883180091070464847164243746790333055098176772908632359026586711700915239080668644565644647315656197019653416266692313218997573615733066894367675618253779046193720264758132036789584489988176154492241391985629140663445894919059063506943990293127754435991724428672060287997754475448165297228726070445020167304265442639823084121366730405886266159946186050099385918147583641499539980808337872304831192705439594150692401086217385614606700787549223811624010433620130323163197353413219685373537345379727480478404648927643220951475872740039902870563631021052875538764839764408144851414387963991175133260052546155741021866446308492333547834225399953343545978224704563871624534633050968233535125808943516628595121687955116484925133115499251568648656871645672274554599500396109021477362239976531332931372694991007556565773938066479313631599169629782226856440298914210710808525854201083639420668840301243906893284539612587607504774241761204460039489241145805414267364615461313167697882368898860028536197858798293383843412683333345713958463584926490084759826517889555182589231506381798450303996218756749998852156499100128259156763698122546676766178137002112832282866833297747727806777640125325597447982730711672793125422210797472892112237996015784783030470247449052525393803870959201904535341377872112418827404501845197522694321453162816981880141394106683173742783888261826566634604081248352684043047861277011854998162214417371792225421901266911428105715357181173630516381085635895796221293353325028292596292854641619963437636853965903487481175257517111442297111387030570481071334107306263833254561383805264386872335845795380357083306007767207556764923226208623507054429844124406657281208638112880385490388064207904615108280278768849372926797114912760016044353777717275779348805355559285297810805068742826190445629941577869318028817707040560998386920440673681241571798305845685319264717378695259505109459521486717489832989020834155421075527678036485065022968004226587378977121560108747806370853735385054164375232634316870300803539757502454745013120613968681800297501602622238994786969803417092624239616371265588424548375381607035737289381822762686717921927402423628960056800010528514826683098355291144827312172549825582080103264466320735652821350903515994454313584236150810493152644139143798616076953288977501934930728152417302441788078191282870366857460450862140010625911027676458874370333612774658027684349369149713357450021198523366820781246836472651180619453288783206613481701391588028436971273561194192977243637509566184363709087585383338188941562519639570651523938431604984318907696758699562651848312210717109918914601751413997474428953987168122248780506039195756768217569607844756830533241681178792764459892747271575759390495945671078882096885992822605520955870307725114668534236777392511021419870206658920385489684028340412014972450476328612143422695552495853086322399201317068412672571411435689423960431443116559602424865969829698739544111330594987802994481605657495021061006066843568648517714576562542898266204527942845125432089954032750078750021672477785461738318011787968768730275630560545369594748359385099361887208004290050682080397102039642923545423593992143273635180134553122696936986409191817213842428084142387461333268932368287744765256488065371422179914482227653999396520997701754804380225634266562134326779873780358181807343259896280748026650829338444609900931450574382753114419638953711643103559791170082065675920061779788819516378683550754688769810974714075003517141191709692153685055837869169880627593228447359060921944955547585510521633777205137399803022060269279181505341745692281982883974779383474670688699742819712056404889555501630329744381343481614323119573738113237019806352981893597966156124636191301938455871733160463918891731810604992784621276725831910337939994986858244973054275431178648929199871747080970119997823053074169993340236639161155705799496825252043932234520434255701625456911334011351914733214259442677855766403513806453772416011765578064493106948180282994920085789292902891380417835348668953008195532982118894179950812361329444815426881881026266559359662630904935380909017636825820033867890417671239490195669492473395777968859730153897987926536508753858405409091316049472461868696047844741559406606236413693203411653943205193769229580153454634653733206582931868217498867587980666001014840138786980997830120645089286288515032988960280558816169412666173972962508441659967840986335779866024496163330784527606727928313413189898630251184173768055341260483696744349379082649906789672357223743139050307357077098742718121415530022227113763894843718236269308235021222344139342188152456141133067077451495812713669863396217652483053487634402505555895959784181588822429419674438848860991841022530881576833653286286841362033623404113860939022280762779372388349403191531269378561916988761738419178075826062772902819309127983023098917975967342489152719281928373032029659507142256659201607422727347544780059690939856629780806020866954678595047700231627862151553258910770361183700092390620310019890637028572463629918320472703994626993240080585330741862975783006023347045594651861427238809728470043845837851171662237776468094813002327598970150775330894902660043815525979561127473575860497197667932148211832966833405775997632684885359325414221697115089046769051375498402111498445891993183202501679119611945752634249966709423286275374957714748967078942001539529502788201896590479499540506183009543411281150067640010991070300901970245407697389633890691193845167262155907519760179245698643754048502327768640540652607594241047269864823294693273315223362377347160890314193151346774291151255737655951338129058668964988905430452392612536839040282585362438461388401874700188307896159609610140218814558714186609796279213396882209632605278692436988922946137188018100520066217500749937689325977048706058663964424090957978590554870757329069456516947033423967018674724574591709854002805310050181358231127003574840938767091804098167175215560749120707236272684313909637750346495125368831150594065986556591889409522248950479725547140780923401845107537877644249533496700522041938038395749992210967092295342217224842479394208250804222298298648813526413582826332293647865153348811440076708588524914502972446492782064661574003997979755608241527406150167202384477273403361804244847972926229975882196761646913307623699439242317484869623250249913190681603316065684071283962252232651552644226913481521873562269586570962930639886106845794247996575009450798081221919744544685061151688530615362742589103412267616533318790313822904228355733624503817799980492489189926017104405033409022686886858677449009603960480425593694077076026584412914807062644510869609045984727031476240840585536594928086690803119942684657882488883412843704815149794510244461285475519472044002635688089575684594675823562727717884155593354804534536755170973264041968832361224690545210915036637991840460682210891663541666132649610627198555268040186784533855470802360340636553439300071241846442767655485627102190440986312367783392213277887935928166065724286178289716062130438696202740138964346721708289180216943733277834540776474964294993193908322189252215398894761186266644363857714678476406737401215269549643855669020548845889471447462501913169213492936476373689206737511980237290876729194117037046404084533697854739181121396771507851090228382964344570784776404886525467916335255423819241013795027049280531439111795129537866913504325056052663303265007770769791089506703798882714269855000790646766168674800683217821677840959278262706461101396697497654712450617418088542285363337877269049586081064176947900957276147859720483028741790942107813472918661590535246249521854165219734573242409870160381575071286881871318898418129386163572432303086522826548619176889457854439003293478659161436905370577468551471601863553825905761101723173631918668404409123431338974753530995038430696167094531147876135175039451074663218715809137021989721969562246138542207824258368368367358705177268913542135877925152130901562185413524978914974477580372502711949186056915300555944019077266201221884747039225593484997809558487418485417197152726415046519329313112527893455658822197118232665310151876653451973841996704308440342381812016527187934327833701149873775620009050441111577436425599764474856717929953177241645153902415249255137599570695737667762176283377331819655673111820768403405116827485526798903353129275614845191986976659237536593343493569717064082621041159500857264568765168575142274640178135339801309846063790026819062848749118686840763628458416809701134086743778531181184483542518679356371741492504880589462205330885684619144485641152000858422878921408684304840535697312944380041054870635486436598126962331007834668501724003962505763250359611879318148990533974955399278608052316076516796865458355016840735769119881228884766788389749791791756146265582164539723057128084333886730394425933045743188153962007147135075424693639790441032367498580128588957273203680048528678158465402339460156479801032940492336572226060517194866371783567572650352711314011613485046428208776095727255265695557731413910184109502610307742938158128899170579154866527680535373551295832880011144589855405470378296801398213207117524167245479891246591009671689903828318278868342895664530875473075219808423173617958145578829800913352208782663004449154947978419307254971460209147263404740855402973225154473438141238549932098690911417240255921323674256748642935454855301930660487915550158887890882980034605790286396656138361988407087922129659843441667687852337910131047979642971123124749102627448152220193087798408078088636559719578303836588755547205391358480412115161792251722574825459996338366365681027090328362827213803335179588958722079073083379741272303156303414817401133327917465211423128864153193926536310715989087175229805663390557407303464230028527209564001218533661489243434515188984758360429929102784649765515827407691249803274825911912208794433521717099070019286994624109644589434976547000001661507036999049019954931142766995382521575024088314305591806804230355118357028281590622257562896118721513457926773077506092631303375352127818993397528953423009265932563092053763701094537354244049575782112952694508104628625468774754423735006885496970081993652119885372490093027445136815283287359312171812801880782546133010368656640133334416004676837944401806036729769201276385166254226279019977045886739395448652174167780800164865060791248393634649491335605135080080507617792845125241327871177367246396942452726260052994604744949330667799433793426387944283064350306456681688443107459830541360588935571252076409693549450160685861373621853633595169541884869716259490906036026289884088568109304637448060231696692623861091007820623371319557653021810602858992314316578014853253368853439201971495413698848485848495610581441096235916773933804018576420522953632478764563184342402542889303904858592385598832256117463279155258534117046509110642105930440827703804448122418699683583113089174178669962494625739200311830766139398546036716349861862277619861865324038369011222787754254331686382151522168152411280107320043373671818205839963835208940772135677032610922529532858178978052615646055187964621824473515667993697905411458699882395581812865910738713804929552877835447067332985308501456994418969931999180376588481641324800587356301886750210355386257986556335900279927157287214863515770761197416792320174472152303174524997852132726087876826281749491597723068369170877168433160909630656627117364072158631307338713290659060273638396954789318803554472857479753604505439731919335443527753397786727049070344975225991857159147048151264283871139057027312980745570590488437709868776871181516578609761840416150789518028378390325086238072476655901766559689184155079670654856642132109550468132250856087707850792401028347757862635470143511407318661183747719495977952203010494854198323787071848130754278256298580528277929136687123484959481788253648483771151605498070051182771813199448646006274688427921970531088891775478736552446731935377457233086796969396918040012070879453556598237888590424390039575962658592594213508802804527958578077285615947984716518227640233062188792247085589997360253634468777766515412170748188932540194788989852651066516268163703885885535861678868742535952167246819796471880511345098333385498679009636701469519395047055264956744309316737891142938020283363251888066219376442956917503970201027663046460430193005104951484643186233287381791908437729685468983841195896417369549454520943799529732778420201615516047227307253778764272680780197984315886230631321066760992461022542476180794996842697330469856410453841120288766561291303715522472329268036167636638704192898992520191989499631019718232960044996127465627197445270335706984303682239960844124058532306448185296302959184308221976938854730946971517770793300747841146190978508847267465253235785202848603371047972739666097947640746506133368866975021867878951262544958258567386518611941970715081929237149523124062901909344887858756006937938857405489656310240340733593162810755243451265095602055395675524729853490309103484764856069731752258548061296409946018659293153281229285355504023101764784721380379986012475753072558242448048911214070700104484513282756914584455620706161981758230367030287678608401586033872382453812869739240688657991110216547133647025201508823299274895696435343694155457267561095065824990074019602365138038740834791749251511364240859409203344810762445099141470585930463447394460631735771757087132428807879576666132343789737381175662744838919296659797415755833297004373803443787693653114509082303334427195087084940647642644351696021549526757222500392034321506228599793134743821187798551331752555924056768909211984920280398262282664276268273125040892512993149575495755363803150894957980434892810926217553959361825250735559493633575937343884997400437939612505154729465877920931660059386203257018300449035913087845578898572150356097865879302933383529416961905340235378461256360738615778648214243309164717944241286950526925425662797374960262519014947101448656175426564838976550238442859937196548955152083109156472314704074229684700987927043142459957510178916887401288779767545394976480922280983922805437087854359598162363749171761492356231044259875887445478987760810353905657862929218134086164223334291509801841617780118162802987929829997717917537877700703037215464419182580659741898951405966283806997285899614904854613282904844304666494105637607248959088628288865588180929433260994938617090771970582555289718068087725726635767156684844583166421566232313747707058490921867246942197402579591889626182945164378873037257859913402022249963209634753143511225849111661714504516523642701693832619587105655467998050301777381454047353834159917680182638048669777437884716979850569445860629121156634077513132619400740623868945131113802419989375822281594675941627799660599016393985114946837337023132725939177928272063853942791554014665761189591400578674272360066081150489283038744031145419424450898656718104051067956882696307156104521097029244076139719350135615114786704310021373231457029733107811472678918873070049330809466468339657788625159816629445025788560045758593633625874323829901873748085371109301733456582664018697255668952254868584796084723306906596450769225556938026876380754515317410068954983334211925960246169343642700930245801732468961522828755630239436174766970606726209106119562867858439385305133413938395131511228459128725695442515203923037500842490532744626948512946964216294455653858167175083447455817465799653950155685996188690999014054269066602361796888036480871802688634213847560559939542901219567994836242292933076819039782958900171312217987778632473755277785340542719328509553822344494761471812659360636948439775808150968722753669397822090222690388465743336539852665932716993519197276241629776240124140295404586954733277556128142395875363376840967643497939878225872304189787495399479630071785033454812926222775672883863477517793179104971525063197765545794843229852756066766164846573340273412389327751842494291692385567911384047630573884273303331377319012024206400213373770290768246358088197044173199631340773581924027033863512547829740172237245081835601344863963984454725536013431299276652725560810676701574826172458046751120273756597409083468662642168664573570476810781428296451815248576014875225695065310174216400881399456143624108807575414307639359767117078397036024234662257511750476118076751024168090928389276259828804239781982760841892525698857090292559446599670421207726865647224883280999965058695549837412692467973353985660958195498581049683968523415671131389410937927673568668853903567310648201893930827992347380428947430493839314464765043279061696750145581035428509120861215127627465823778444415202156098052091613850577908520113828525008340747735837305411379524417502880559754366066293958578369421740044404466240345533224375871248251591850846789144805590775738167972232896664023103100538636031580300515349684909191488412303216410183359806856420323832668094564303925198268694108219340834044234398709490318326063143321948404319955028779319777321525399071343119795761765832664796372784411362387523294505446563837009538391080881163304689660123760624767108689598897507713019442557176975729997387442818236740645443270828431505421803472232846879664633981066957947059003453006096497191665942680986097426985102359999304404360951510698481286237839565500575804907276002708730136800397547108583987072148601937169926135643084695716030190785028902233653940459887904626995535366009289565281819701505400860169973096372856034192214019518528993662288146484390432394426483596093924644000495062964512517957948901872958628625946211612410065138741776673944301919615200787497475611919929114300963914816812232269994036133736445463948870958243561269444783883709521095735652781687615279823160150725781893348166096149450621236440248800592952606323535276992224523263091519890486328857573078717679975078166938867679692598894360984456821936415113921384183487799253195882163148461070140809926241439073762935623969355945085150208431156036354784178344676042104119413744796075975147278105855665856398822425629161168761716709122005908990250058180648318851999782729617292119812671073766644511531433480068897151159701402748836535966807620566478089180211016684211705462086214318039996891294290670354039704508189518710631527053970017474811921106979319285579047921220476632611059201061728878616619853587049252542838559223920042993166138403367512292973605099210376941013562350539234402832772872376138343076742000763144883295294345846979326068382772507223945850767607192032834376474861009528472415088802106897581915872154507476476524321951901028766047920955917239653346722139871682219283879866514829976716812582421537383805548481213466632454670497653138824344241778162764991740029101084069444635070116980370284706912589339439787419244952799738730682202862123088682765143664450743320984050253914156214777705874350573669437989300448905623845068608998553053303811235646472985150360679174074579784075890898703807187457226181705659642507432577919388661207724608743279423248689322761698954279662061271761964869367726510241879175276769560119011891929363082607962552034309925825570193035524862820151179423942097621831997441706145581644460443687565225517977789066891962059701318559098723012057702755522770181255158497315088230300526294603859206378223355182986200689865606109344961448428389837716114510162614050381497862843878274540740830943526920471237329021212842957190220357454568863828237041294651363408593256009071021804272053074804594948883545343516165473737268465446562595276440135342131019040847633922116305434342202711469429352339467623555566500855989301203889979373401230153125508537100346788671771651551678096151462002394973606637534299007871364534595258331565806323899556550510245652799651295335241760243134306226437652017346333727538741155875822711111247133056439287969420491670958575134595369978783595428248149415915872646627280340483473528903795415890778103413122154767565008884225780026951680672435007141348094533870210354789288509400720200341957417468475141158228608372804107549005626813144652985263118809855936297150260234034959928774170938854396116914738956512010517750342503654768560119551370984396132842716434806819091048809668615858220283493676013898345726301347012558375559896010439635848338868899391529402348428475877909099089250334011472874425206699023739750552288737696264693238601204043601243745710552539303019183359515201953147803697632595727069086955494623300583615750695881499657863236079988923321240143072098501068337274331318971279174768568304805854402983295955044153381968245221463921747721400393828043976032760373960388875841415126009975167775246851967473604416197080610807120460460976210542866264828675892002861413967821576758754537715178227359890232276273377927720456758922833800803301177256662883242257638591295841559191268718494898742398210690597429642930730253691683042703141732898051145450309263066271247261933556530492116416378913265126055939990192975780798977004333240310925868236174471880797763406668388856392504092906651403626292899623396272329496371477834867210582698157963739216109208917059599419554465323341293908912780299393599429882177834439225131531904253334852287325937799280262689820715524143636343334196414487685976909093173593534407968609793141780586423734291394225056264659828875636703294099917725752964400050094411814453868304355712127426063991916273819367540384641137051511545683716394010434135138013038657021816207150814412796982181499821017023359369463640605625172560866624681224948289359910653439119693755002814013253940358392300540610183780950373412961945384617560652110291177255918033372177209426337295201565372558832130674490131972599307955798250667701563070476890872888350799849462418247575270638864877705405595544545640807387146691082814591431190773535101488605277489421895232904632179602387059336321565949251767386609894299887879287650984347018234533310723362913689786256420401225562260422344184070838853245840014964446882268477205051223786060508528183730650745361244769901091319858983783232648567475739421819834275658424746422811628195221562319714949795315988551711493500437485812256876160330665128476122157441733248180107001659249169501159289563886901702154518836376862309365409187819964447479428998931842171752536848273591510407834166431667162869265032441941804304488109523692338488690060470857716326041484183832196033628040073492814575289881454194385092805985153645631182328947536351604454895776916685885712148480961121271377122173107049164998768488242670598133093302941947760445140768535811778992939460935619565581267737752856654417736045568220580286844814404124508556236577168863101337506579978903083697852635145121772152500208490124863049221206467545537398596146689871370578008553520926601890834864567211109400904748831024823835327849318471415437458798212142474670083905836822857634065498566980906463971623241042099278532017869887880596010759279407886097619617489502577834631476046562947960602721154726382842771471478636889081701043645489448681410942188981552030294378067808554243115099104272958075053502449133262326289643376345793300646654897967810236433196522894227039128709994901027956192715761627874548735269992371291275869470431582484575672090169948472598680273414455661593136627045501158601992636664851175801196242866343296187161586728096824579433426385384929192673911204382017420532337584218413338464440257403341748694482965178919162494063718880476785395924737912557863456550452153214881649476680018442851519564413826116160380402926976786553499351356555619709661415272683350420691250223281604618696846524110582217287099355799662827424776250507340573036025823086016505408464133880539030110412205187393077950375465762953726401657851371094232419589672910919382563408683648888960126142159153532711668978334948801734823030065737829481556808386651129630400514934649053076517116954764922500193460107263134946668636966737425556058131465785124456266424803913978843339051754152141512642468009733462699157025087673012304071632191718787372525915445552888049863146953645901061971461133031738460843577312307649378837279252724186339600484037550732063847358976147881232849195061309653228940744798572786712410998338361730642342284825497573571198486791958797355852769809411603962991874929018426856106611362483780575308285396965640547060267895838841117521104439862022740201873766626958691825797684129531827386476710594109238874138526590258608403771875168906077015384393275495152402035266637726912076355587791529759562625120541979580191157399339718331639027308602404475987638756037097574252714356036632847304861036168403848153312025144251829701590539527930143500983110400390698245666001147539304339633939427062171325410597419865536456835362002078201867781648787985372291706524152777158347266785951358070828888469791945813244980457829857958023824434333567687945387869508417990750449350948400975396030305397991147744560619659554605654207253819493306170803437676119079482427723938729181488758187083488209651505221836043749522140204129951536521166941903080567492507416668809719629858650820980825433956896330177160737615071549873400033999934015220803462723265121144911164363053451262258418573782317414675845121504527447322452349325941332965889465561626642206964933061502140045708618000325930281379446471266383521241476240090562842720333849361819574273933721624245613436053845927009025573194558665148958368462861940307295050931501689525436965575763287518435301634789093504495391120935918878551265479403651581990219600843123796261223162491645536487235485501281721401728186703071300075965244415703611687608848663500106052266906359198971679214106823418064346588179386998305230320630082015041663471603384478800607779116076547993086347095565357833050999523615228428539964377924948527322214912923547883888192862366346950328026624979247994636194616617374035898217114834895351800491203143692857740569051437843360510120331805282827332617370796239221750243129439169825429787482424481157837922169193756339137048159730536637869234273031940756403672221123246531878495877061953570172327234770097868238029133793599734301426676966724883104917734378053178721728182024546143847104370680071570181403709328169687704367721013693385336353896344718714884883294479877682753366013096609334979170893437741656453891497578274886609588539326761627496626964881322506339603384085218732110064272153166319996865163762408481548206728947859314369615939337412639048347478300981432425453399307690704855419646136162537761160854731766896060673621932132682354299349406694704811979438299318057533407163024581504807197010543487666111732247180239847531835272513243780664448518336969629807116698494799389528967118613335967800262090572458448541980150642550062056727144496816199171953952891444038923484093231221423707817341447432532448509709100064407419115324515828556777003819657493245657375403490923259322061500341373410718424989152714713210089965870137862591037090792445777307166447049828549949367340309167815533271304978169261074029157635782679548630799846754227560002939756952038933601291163496089148278144164200414096516526314460896830716019288794806423257622872199138929722726132152251225353232239092682878729397744824530709722616916956530604313393026284403393132146856619526036158306346338750891604141568822627476243329374603499799401923409921028408042862137035279803552118128922326080137008228440343269003642499439203847129968308123988194391137615256283375552713719174524067055206926019461911584605541645549218528861899257059528330217776982774226317067119740979542665623735692789701930186217839633468077834583147407436676024971851064879221304546444356403564911206209504919230914507517929435356693501688278289679524399543614209750893509563082899181830520450511156163119749579399989698993674464012218969800562585842607329609001732304764012443185984990480856460131679868839968289631825320158013805387360762158357805289207392951345034185553840672368137766165584456783180115871248515436996874135770469374987273652049751104996503263076046372505970776621555534639349025845783094956508451277802215052400524247304130100737568870558581431020194866789502495396713876708149604671204831239839471210967991085925403630341435450553419119549627878419726431755311062987370834565324229815893285196357023301668575833416443276472707218498804202356069031485566048297538019435307244797068862206760260956459747846075727313048508190328743623763661507260748059270675568614930386776060506123286780117644338541627042363922134094928163641875727754670412090906352923511307525580753641362500004431123266734777379184961179068655746148529653470348916730613439018164170642754568450820561984329202728842414755649789117830234046263562925841498419220389250349200889918852864015799070229079705048166213060731515899968453686219445196325963109330217799061291052199823973320087335645651658973637401745244268604938089418166635512632007571655518003976248964595697382738000224205945427016782788801526235939890141118973602642472872901873426442596034846586413173145657587199022560580510581323948723221320327629451975460083014367942258554876743219558469125840818341677877780297935836656965089166117262296161334665277078150023156879830037503328371960023132716438824118367683811255573332446499998839535447051689201624280005329011987749954447611245282237145075049517570538300365404419453129059632971794881256002623856122169405783267669576070328352927377287823195928549838505975945562271043111910076115913988223404314324368380241958066416246998690031622855840979646542432198510699187214469718946437028201051737336137606481187056051267627959453411994235084667079943176244725727761712629818001641980670650339876218303365636495197339903199472226768188278839637639526210176164268350493271769240935683419979147254001874378850241449039002125185838503318578611415213951614855844649839005049515980024580407892818057283085840028041419622776859076979822797294525381513710430942982188113606700892936780748601287957676446245865343239598537221740863102627493486219695234358784200107098211223436941083504320452058682860737022559749923841208211181002107085926333004946374726826058316820579095787742479936830534416156057049957548554063187157565001012427695480157375997293855322056309322646943241824571552369806128866495425517457651019568259631547282600535209897082710797092308952899665229136856452477461990361789191995803347643674933272004061060159243424341354627137826459359428900387154847835838137024026767331797521055463970262106594171626628584450473429133809377361969591628722812565186490537571025571243421844751551225715297729709547331451744497354556349483625237158456036684237770578964362152941679972112230125608616623975295088953136741269335408159979141681160700168747141512844827369768032541796489400764489257901604205778793199721897851547859200948628124980613822586386189524360399251476580068269804840556686939619647106505045670357262503290410693344741178000450635305180557860090791796365655181602391389534463943289568118104991535120421075414194479822897884033925883654565068147230700276485014152101054256080813702085918220559584924379268386876484787220908306123574359659710350576552370632145342865524407426873605968577651891045764336064767425817191729360904337369494351847266195312879347732913788774829986261234267142832863583934971803326092876805349732341867456400155164541245605583682636946067220841869010439094279175974865790636674026387210523009795912166065157543249451483000993270982558951521935632767639785221920003830780899923797869410805756671011525003644051262268502864777770529604762869450183716739279324264675213023340160742142170802353758377696583874190233007804798956704437553084065996950239643483066008903985588241733587049998341037383903119565984393313830908674702823792243335651456709497165435268799833331723555649276993087308823285164157142756351984794153011884859531863675216913725826768704910611714429911447096120096205688753291405878314123051891909915079854532335456091358099968687862244820379171776803993316388730229543073839873114346365140312224069411905885000298311127772022475537976718756990211444237011253789316645778275865640766951212034658183585481489555268318339504208105006990440562869671040224240918383780558846459272916953715055445152739994396573938987366947922484826752327053753095437741653027062921445619964629962220312246166959921434225534192235346397890241164625491988254510753005014459999381219592140196978222459144716081926950318980285575831907629259838255619779926337397311293434394566626322168770391496270429797899104230192943671094048950841582526447962488854309566886405831292750294442135782205767790181389995201936312794415697079455147444565630241642491398938787672736342023376551758392212097896886448496027675685104448564486599981890172625087762501648640132498806431417524949163082478559949080650226694500948326543518691513573483431063916475870423712908811772882248490336476762177016160219019154660844178247864129620043164498107769742087898726506733019851584565618988045728932489248488681965492142746762455249124201197718812561630679897146374585250118788696577037511238616507959507408792134057593890691306320539169877559667172731915979191854602730265120030710362216140023681818331375132617944099344351484478567737768654437214099615685034758292447018240180722730879788950268583505630429551261998158932904820248441581549427313222739415054631018470063241297891453929564095816075792962996506433866110326105030980258355532167862447802214465593592320344602409100151284865684189656624735326746626417140992345278981722014601701854089914506158612212140581027532323523674989395946137424746738503494414388464083658343614914275355975131908380752653425862474969630531748188487726412812097478333043168362064266465214027906704600359178630557977528234935822646571780447373685292696582368499718943733322212344163922438286283854895921620457828124358526723705438333102479463354325827693958444353891551018874765575245843006726201299814247043824909570919141133861106972083967111514132781131706038108368069043986984734673951111381514095006046029567383954537016248736324425665407493072332938632750541026271423561568698142093748384513990595684983403324660145865899067557827992456257088975219186221525422028292180831938875023959197112068289596746631302112675463697602905941381400083676897378744623241593138788443929556819111086557316330480575439823673608292721289382231313621944527164699497424536962633898268248529368321772913198527516117406019386462639616214154130114719773286107744100477534207811619513851044900229482135260718412419622013539938998198065219450021344419820888680375097364932880875252081644195665780233346727927802224283562600900847482353375831511782560830842469681517466516840660594223738760244777977472133186868616142912176450710542549530736806419552976818588512590538348835722549812778656361964632069709784539774176943013610240709709866633809711895282531085413057494105032407403030040797145569934062134314817965400832440291766926129413187016351018944705706624021541122928635510700714451258226498327170849637580828157197863311318138989027501259130046748815355875403515180825036592941247087252689156894597245765606110980391751438232900535873183095159066798925416546946079734840352188548910741313376520701324018669544671044869998650398486659531393838650283713790074667407887958908368928245192269539416393346910361061990130775516035049871653125389357770734263311552824538283720444139343909362841271147052453533992791592720311074642170187366688875968069049142115254012904192659907332630925296424055965631050769487093952263159341687281911204869750461367915692665594114199703931042602519416805940653797058182767571026537411862967896138057041672759413772918905898833831435008055567123074847042405623111873133131473274177273443382173990165959551244911472709507757496358747997732958783691195375817020760003740882478609526885025609956384722219752856152103836718427336862545200548493820470007850014668419396658502128730209384038549896958555028857479094027180250172060938791593122083529057146667082323077762973545621458265660769829951954928331446111540046987622460691207152459399362830981676635629579067133360461444005745420141608602553385640843440769678784927787887680152380619688607830186813812436453575974279608937436546551746774294365404017425745873245677839392534330074251208013148485878389822992149734130400817017439666930627670861254624599296614753936299308130726365918226298278441541421345423815971830878237212932412756964495181209363672160020289459057107908445662109060711465873353062615266579937790295848596121429749820451153583595544044208912204186010367009314270351591972758798535723734478995083522421071166234729286790604890041031277061883216903506162848659694107893442222968959649172246824080826089076060885244955400656975540611693558091665101483751903794341823502803909999104197302594098307691393959441262817672578571260729535309713301725338191470998251864184669394300430894693679706708468481210433962329790103272204340604116165955690564778339554293036722915405377560000222307054299911162203623709612671602100179011816668001094207613515024873909473290438838879228978148519262645163307415020838358385144079448727912107932130845870747825391461226935676369024640018966863478376470396123383802625880513948457097683403520207002521396552677057541701510968427609568179954241171015916562127387308720668148601729342535322978686151950311458673913242749837008310701162156878321782115709039588411172021978048176963429079684893343887613112229246101326871209493365366046148239035218314606008894674280253918113984318802635067749639519740357231333028698553873453558605392161087946060287367386117521841667877083170237219355455247179882124427870357798890912605724802866972716529523501773998439732117863436621739084495551554376391988532613227784398212894399388010179797995873191401964681107816065998948517627526641905308196897955678738055128172723081312325734209481138541527923509681217215741917996381549473843791613896780787016740673153374221051001122947756142949333302970114007960740227561112365405777521219978740971363318120440151163574476874762302871646263106634488656683086197473140838972185475393950533780612803966620210071752787922048483242601492408854094415587917107299438886692112261049934738590381453804698884539791454494476363216586032771500070766886928043253262003799267617240777939137256396303455457319036777510523587620635922151022210646784359174917786825408932083857821703575045433440208504295011580840554815126311817042611511556806408321499742005516190061256310257865980127420060527406344103868431106766641486445613279432340654124349460556928152748671565419701078898738299194367883766634212073791761690183104848381542638153598506810275312506608853350567725637526734245916353480668135135822027332460991630353667545446778065563057118206015903742959635716746172819202320264645894359032322113189966331614274828116324984012147828822606243467787526831437232298702223508547573003704033863570913488867083588388418698751038295679603073362986279479088174960107717775328103706943293770483141848293180289144274130500641598856273875110433756918275627431613109559123701299539613447164074553620345188472802535553132376146184416705502904961596464737441336130609461260894093301032532289895486270420424250111767551459406303205059863033525800133452937775450937745340752150758644656869900502490866855862096300653194658588474552710921885729586268246495574717795251247522167730760744727402719764757266044669786752858517769991803762369368086849071586351299065781168366143215040715033816863805906081292769434901343030603601978300780327775061096586345310910906624783855399571824255513829441766738758955774382167274310423571217551690499052050627498725470651909531072596604354080658960937857434228290628885454583538226854156422344471143546741271025622711632153742775141719784279730241679531017418717183556426324249851450588446385190734277188472275010937150551283155152345859675863796171418659093302912845828994712519812218944366652247818762378961206390139281951186697066614745235190616174511725266723470714786473584024970484014146348003577125367068087966648779117852856790631073628166561689566580989786244329383386249308986441744146385754417536658572486503549216766579553520175434192224030357826749457895590493744437790390734495621151224941794357159264103107016783132799628792139620373692606623731500549991593726190248156857055621017112723059106204630496573661759535736136965607805610350396147900204152923433662849728568229594214778759337985965641384367459551254485888575957104029662562674470069659678384479930919824063922031471676300107015249720508539983929824527039499309277933952950339543819501802442512725510654012407643531513658894460499720723798392911497980296153719484383297739831654731485759280005693288577554544557560372062636840668119123595976139018853008043439228817406899750704330764397268708276156883136932761509463237487954783990377994393276360879196868501502800025840334939017672830353115657235026716005494662937775067629044869069834184993844551818225428253007008068830153089903314685551496853577295020058863233400927540906063896719254987469536035902499243125921354753752204808332598826094004882361099539341004562030533202399130890372160601937026615818654813960251028097630575742590960369361708607815838235446820126249844442173715944072700967147218277706220951771358384932867379275314902500909768060404135630188043843052276754975747457855939764632343108653334115776522673139977992881247175528877934213817052886512599159191781830157244830499757176464517891760360867939488551041703437586664992756479957105663960454386715887302145599310621953705301283317352193170639842701969757248758915088983481057298128659852758027009462253025741854547846223903040582799114269126257903127662084569058262078177424514880394612143268660845417499185170010410335757769658867076192891185005507419780862619196323341877527103279338967616789702627979951151253550541324362023262198602692936488316165369237752918134931142461877246606009126485745451348178051777358314363132723410369084539760357411680838075765702786156086472916915046774527560756880322352389443945914811911129022441089185639382809285415020627895119312606520401392289801487826135606092188562291928669036355801094888254321390209319104166749693596530367027198268407253153849766206931937436512138311154327064061103101379273667637098957397991815891062166518662678844892613874057255358497041315954057786385722757150947800985749507137678459957584003161276445443596431868368817981013533440675382663291178568573805732413174000983067279599394249390763671145249419136465289409761453971911903108407662785133260314386099588774228862457481002377130514860108579731026570021102271800223177798246800650243085238673766135478664251633391073653594951838165480952354592707293657048370652827793569475485428205438332801483444379971139226100957721915787217388151174087217337112108368925850573811131002133171326084382684066475913522570078673369603607018043632169633438522276065283141904658331429826962131260654824457781447661549009718332617161852803149691915303775034164579622134256682696125407641078722198572592124088152948577116557428653790801413296409767619664008627751055233478002722803167250137796875443733641524359166378488797246750877170073177164128268183131560059387295313245458643114466041181218386334413831591794219749845351506985480020429379707076467230505475517428914416627235964977706907845254427470785168438202564005107154572519253023403002799738031967873364460432815055779215524786500412815326987872064438665827577843522046623981034553210663643658481384278567032636323547768455446222692505449219490225712235931811716820100113283024162999873037187931967633139951504868663849159943273322623337619250157242912209722577255449962537527612941404301028483519462894226056632907898924870952106142199408752681867730973039699964705515782913784812489721359295313316370513316589337684292257431115642342519437765791997413294487307149180124310308746704324989287566972721908608088778117938874455698795481837827757243309543281756329025857101099921925926861410584927048836429219627386264165521129514734017207661978933129281517071858935656233691451693970389741882496070466111247471107333652054013882835316689032908660396310353667092496902468666458019976592831361539883540101814710821924500913046118925771180639650289927085157559135279363863173575465257030516228333513905206708957010713142334118251501154576327147532300255125186962375461001545952925779639498161748841062143980263023887843252937285589544552280454867672226023341608466414975437604917684092688662941590373274069386484770575284055889102194503746747423650251916771512511256505604380359694786493891726558279317709893444326776505347600110247974613999553649590514267235537960534940749637792722641045842907646080953423697037790156163338383193029476241815244126628058793311937822992060807169328595530980015392002067902664711201256092612553777084997719467510959234670118482026165333736407699626588464725301378822197329189502675555061241410505136060758809550972206993889031858255061351820852155506939732376752103373332595267830631362609190336022868375171951583299562474662513790085361542678973600959570887561147937995494741732024906256137778527365726188385635922398050235483980801992418070308268563303560418500292647522339005314387395513251880050497211264991623482099978086396120314843976535619343332566750196325542702237256416662271553827572897101218620904297551148769223996086585688653979511675534156628928154622341785007058653808867815489920332578590554304214183370725526418512871013014953804727082668480176049316198166425646291136142147942024695237664392727491260684500484348123533221575163686661951536198848444555833490992675268351358867862833423645359248861509956173363842154847736686353864995393142285281972054139709778976070250996330279282721516969059821753453195984572185335680805387939180268736317094755696134268767766121521861963816031916087465949839441873358416744291769527734515171672690414745858665566119725758025447379182779987793930621138374391577779028190052864231103736845974566246760343155309228517881668091256243946283530118929149291307325092480997498123654277953376585708945541276225418750517831065276184799178768929182431509810290295714579709592287573083542142530932889716692669968826311912370380909915772231796845962730033668129169981160910043560943961033762802159679264410215604731383233305354145263065401915971212392046443231421000618763105331708403615709689352561984223027291826756145061958702522896012661674478219667128355105251066336040294688069282190539694032988508151934658836108363151700003261494883155273723356375953157571601613937791642021436574951164143587158916928707855102364622048843169147490729087715490448968690109202203140266440195077996809572092587637592668622251822707204714632401431284877831976233976462954223947257806321676081862291383079074885998530020394016083765274676248418492710251795337513289458507173472598282140272730782069816151282220379405365334317483866387366029797679216533923863901208878755982661176254144207349550402357687612178713347737417531490222027278963994863230675697540063087601469424424289692374782320729553362811539488686574692985623576170883232549699379428837975422004181480730016411840932405397018832456869984121150499856671372726146467044603157241282231115287963587117878631680268930095531485447108638955339287377203039036555764957999365887867302934532564169357272522092866557154386151367270007578992028889147376912245245779000318505770854708071846886420234597199520520757218470296289039181603548757354842365665042440593673975327540859364527976467524364534414515836573735268137191464978055156292500706182315370798539510442477493590683439096262860685727540474321031678505984222033786234899782189786496955258183368645885712600911002064916543451262401605357396107314175592852376966763619719490124292222827964706729573523701768160963238282405058806506515738939946608012660266238132323450313326862960240476087009358768713303551272733732068569343063385780135543504290624883639937118776367541815099530654829875919880675808910538993239892270802206519054978413063663089346239125884822283764369539548949633062828550979919133958425007715585192763884152721106531016526865487460120758023014096025816930066904113787641617155865894162892735718573780460695005934492614026846900968233715063961263193803156999164714281615881173850238559190360983615003640151397180964171817008005802660469782696569542178096834951510708318463707317306210520484383153779636866519235204765571400292559332520624292210789338166077188019216302970717360864530599839049366107581839446901431992706620096125225459515607358852364067348589140082045202154210773506146001931843725104883817674068614851790330889124787578913532897794901398479422021556665149233720351127683126986315039491634762796722723180215030661629441494503643246280898705663202372852939081249691812531953931214440951981148665668218665658821822815528024067052931913347708365333891961546780381957694767618134155232190910255584524348027800817960725590460960099439765322007514225041500871408810645665177682973237451823631477674056288257512997836377347955378066748181444482704101037538932853665378196770248103382720781818748615717169375481499343342869874663085022163595825998712381822064699175032315587667685056800753458336027411520365866445373532403552882610204807898109377052937986490862064086214986017346554414440280912906147861855146702213636261765841792812290715987650773121353229615779016534816173962167520266415588844119775527159621315358169858033497766025125721734320962141808613094325164343177402813715594691329664967767479991267388310568928341273107549022098788576747747985173639027278648638574221435915907193378804968324152541687640287079546271819981257528815759043378194312894347795236995143067960317634467129906633410798212998766460200677032670091569345995829660378051195089146215505932717803266754957696530573457600162303041455320996563851928491548621750263551746485521147159576130863568017266897996409172154760208315616699240489403371702532551700018754413384627662442588535968913227686932002682253652879566623660082346186261198889280591321860393157431808518784647914817151365011721806077172795843616038409357740766349097587915848402067493234265852200586699221321944687033881315042131939552715443335974501162649771671638391188476212645790993812556860146971011598942585044450653690006200519009750764352692866892871023709988327825155545277758907484592048700759102279361588107704335745366200647192116224057600404935406912479720860207305111455683680536959380458577893960353289887011435498622496431388719696718962011492976874690737962731601784878504938469044893861465336846866492078396387188402308487209122529369911257992277970804214523431255318327053720080272937580395409857601377588494387049390091562373616666085255105960501589954781449539743395207169279995744519400526042693554979123854157232264747689305937352957193691199511151282530501427455285383463751865359851576396968921202159010328110331850759563653698756112551935828407796944980096039356910627319611703496734262664378278505989279591719487712515416712932315196426165906851800619244660954399529638595960367846598809275336030483822786427465534471914318768948787467492532912357538666539645515594243932750808470819102814033537481820952713383717202954719436600669562008905774515313887447581502114091174579837861771553363719375929558637314372806783042763412759051460470587051347161620971133349518987208377709973128449581076047532226837668971504232010783295119525255558408624835458680055657770035247323964856793541794728640421548418828411863682508921264070005175824290490926863500461100600402601141252247424655065141951322751396583670019517499910410874516869957130735914114587913497537563234588135241165657487468625622664029586206408323885832105465713207474782204204962472211711594667031893206962186345633228538257969440670197804463674702013121670135351156550273979788339279768018335549782804840677059470656576251265799044802802822732872739992812533350681085540743474500856362740644002769100421086964463638794640262855392865947281053751830760100445974641897985080253412704848814070284554195949410358723544560882831280215669866977487996289687633547877029141896641088723232527463470992792815266404904597274602243668706896783825966281425385894410083492892033503922877532419886362429878433607732619516514117787990279549484479865176165189806066814518728024225181218410211333767661069079052485788038581040108288159707936489493639290321340084242283774481160795599203739032237967668560190265286007987178915603360975077596530183578584348617655526168699479432300920251254454960633884742717680156822982762629150860060748492741764719857133387911108767199610901651165003985149917890798633261144329608576369047776156720534879311407781977229810515706905992334813530974113441681028292597471607509827339430960741046289935519578870839030095370844084880463289767321891137955325172985558206942821796706264963669194054108483808198148950208400648103789654403020016991895870146822106169484795328845793497315821156259339094414701875731394892666798131926779795780881888167010595840726104155232061679381217445618932606284805924958278502382052475192189629935823355735198391260189712705113166455621879921111662786134509022048783043968177686800610870596650985416362502536901089255086608967336250756705618003394331138748757325598012163494986065617659800367184852813384103343081336794533944715552632272723114817897365503098950851502049165981552393432666179538520217971850957771964930595891633911800410901146517701483830686609698381283856459393033592892437344581168848559982295685768139956348589911634412529143562631775656554770487796754710223877751179103168448719644617487235730793224364733584654208055162176186218167374595022440368039392982439938283913788314133654494225008584596154655590297347851092962707514221513515890616092096745838280267075904872699539212019366816962633379990523620616704117649899377242195227726796607178401478886931038131603041639995292132388560669734490206944869318784139340113576824014194228015021143652947123820675289019012595433564795186896785282179561749686455259372141197853348822582772250903109329104033307501395973994840597520885231389062765211939751325283265180508238598976402269802043259520554912427019471623240372027805204172266414888545544999560923481409801224648873158682372405996164654707221704540881427189411775189815382813111425929297159012758048301025166107833611208737354017114967395627899784066895058546457997580982888986087878504644308229306266033085081890834546373949234475781073728946648501513973220106185686654403021135154360883270889989364035184532985245549159491154599919442766246579456456930392770165000558877440974731390194589567563862253392293114680506077628013581376749373356250853041243570772613180653347576030252767857191549676994100642421202113404573150221829800957713363013539520988774503473497073218129820919655579993141042417596547722507599308185428618057937188526930523140673661864436494534861738513784382000005861515776551970602636612960159226972618206631412480348728167641270804034516627020482225281727293112479563053634175924555648669357137681603637665159091494463143251702694993723568729831791657856920773227090409514306218198444001899827055858925729592982504572958294477712974852208999355358658283857456998529368274620009190706767096631485199667341468924194746652177841700768136663544776568236636669178008847055446388808729424634358288596291777269102611133869522474338458788044896708179648886428715267289932302983991929508566863384796908625307583906169167533268056975572416837593053494999462870549950894799210141851821415600304615793186442443753781321205729214697740575560644980202586223006519681982984492370303680013749619065944097111266167853561724013663698711859625448929637037430035159883625296322113964916292588958620132016769614853228713595055240804334919621114195002558347692566897418753454333823885306702686223975931796636432193473064074668177921805858863987825743206022169690039613832243971566979072942779535232272664553316592146151756139898440463816220454933050187089919344551152283919303574282017057465084891567887332823844323857288687139469906561283129115098436880101324266102890211755372721270693462991509381093768489421193523655252291733367518177623273269512687407800022137325253650735650712301251496909902896409337035401942104695670869227681940004994693333920109075980810025910328242773185333502136405211075674254130261802535318465052580063433746952673687844274827841759340720125519665959053376101968105525425967994527509273117686854813853258112623024630581646442558392159419394253432391002175922491495546051928035364385007282684368833422858694352189387912718046623105464073274647669740292579601900388213411872405071766497824003061776780470992427072706707794297433043116600126271394398724086744139863819711058472087965066575556383791079012894570244164762627629914131731684514757712206267059904119240404826173595639028350077983213690484850274041585246745267145504200320892550576036091411594737003529940176738464777863657545945274746418245013244783312763959116738967510436446208027210434236988190228562323447646029324512621331254995831427843336944022430348943381074033447024507142642580992741822059692985932245602674320581638355891008478634108890667025974795051111005061229152557682667771117879927529943025332133938723540784558840241679532591872961018910965619933939816571667168185500513019808340247509960777679225098458135697248894157498910401830888414710419809017445066272788332293053301431617778727908442371421400108573727161058202240148102431184439343416139479797078285548910658711237836062332275340744239452419375607213886778431311527004612601558233051532050038272893717862475090237042428638098783943778125755444426370464253645247155633467904221630413830694052877995750239390515902934315585030876477663327792115288433098935268691009491132145763244452864581586396294604828165859991143336106915684993430572445254993158172033566178181362067190483673644751677437116336306686449797454058980365215759252163422855349918642745776617045001658512096632214933008595652912492525366938548237845194719054487067665758192294937752839610249606676133836737192583239574458396115895705831078429547844662372888634150543166152586535339434376150675427323156958298375280852027019423379967298814659518214595097193819434234524795138902454371031039697047670267073155520195069810078666124433223166849109753791806043241617835691491769774489446941211582555350016610272775473694618486150071798471275438083768001366274354029899240474207487340430623909284102230702321182553649382573175604192698426384923836536692747321134474581947061429535361456252764825652171925293132377021978034209105656525252353519863949403561232526962077734552029478387339536372760678672771701424075377896401284243700632724556141496606574360116393056882518673551151414153273272862178613693343396404618070845691224427841801708326816267238100098459124858060758519218715293216462743506827481481999387464700488055852675668367501943518783919494035398770449387575006011204067279546296025297394027957418490854498632367676724567777091755773095361688975382499279177876269634668435610979846812458769966844513058365023349875500891281766353327962289468866403472113016567751617756724860506432351594165189246108510033820861835476819146289080431988225443484246647514625924101642916171483668649466388002731072101568170492598201317316315025622430635042272096924420700385169168318646994201145235090465814322954171891961722545429548789348324245624230064015106937114831503750240948106856478465701170925954190159800614713442282604135654141771528897466767957525147311315411061102221851665107535178116457334056834565905372608127563351954773611144380115588412663162595328180895259765111755776844120672208836353202417210522154265776116998928590835645646804667678222065486996091779858605584964645967072986049017306366148596958537685852978096092168902202850975516798913520792749920422032099513120437728350348681623917628604523226346733922135681336824477333862596229273704657614581769276574657938630116465441744045593678307082118314846983322529690144365894014101376158456865094376188249530679200308523203260257880869786422996665215786163023729114774683975030583755116553267668932233736891000355090251423821836751994843673043867309699621389926212015780885837206045132139300068432693221004743386324971595329271089886919255115726470713256522278687933211242022644849921850420549523353373249689633122801237710370760019314818677481144285110472914319459418691932546710235154719833138811541981676742294977388705630945828589926541026976208804198272321743377230327079765130374631325095556340404329364044688590211314047424757076661146835562082113048534357309662583800117927071762205850195093584358781919191720939233625667753333279063067211346445343120383711246601733192069967044203068645938692560578746434096983076526397545515961601809876616698303957479349817011065067280243023671700709172117436456450037506980112425538599513543320394225134360227915304531647433915860673869829481166885341072610216142345697129267792641265385367933955295592842235721343572902628448607508260359835166193378688780971737717876248547979182206380866446182129790260527477893941612669359290805657883896177413337437089701040767013843044322833717052201722511413382198748511752429467865868447237574366439405325557683256682069006953256335169191066082532359083985674783691682024152257411817602861685991797493364843804531670875175965222249404299036290171646660403116804955024031230652231298323105956472534033043719709652294919920081849653596391833856187321633065962424106851512488319727263093265433495632023624310528119219033123677894053972321772730765164553369244145897968182992451246530065783485972413611789860857231252342426756921493780993697064454961936055056291254929388749054319326998704568805895205594693625671885734381288487177692410497342733071649381410364940470221020997849251389182359989731814493000287378436625703272999354201056948471345756580499292941138279728010255957616502107490002561882027235152152285019266391319479032650225972668260880437125008511502572177734072205892561617485939959735556692294875007489013181067902650187141593604031475312966520807752846554648720630278947832288730373116023677246169457035529617789261744490295123726874990978327558578679846053476315184900147896147524410409278770140547708408786335455157843680454543053255086355258480145310746366749707130920378708100153241003207231192807293536021212947321915962726992538175037142779984365682897178339421301412365067606036119242080073429974987097646611947792148099939767147228720461357829261711385097093475456532555034021756437693090297526426479447475095154211391559519996912841663223902466610119333830245603464002297737535437179456209824153435249761731252221266858295343655530796413568406252013668920105496358213619478176966947189107715476665346375730449450709702639453897001585094020682246600010680686088264122639451182617145377261024375384028541697275631179338177277870085194040654597245161614456782303753241879330838562365966600315752096690836791261932485760837697807131013914573824196210909001196839225359365597076311521320104386586244289433354161679433767277950132472410222641212692097339753824778552680060427868124896221625577570990099460529779122656901955008161513222273301625704807775473918256178663726270780454778576643361096485511853875335221091235481762881768937988625747628438558964543116731850517668172841711872102207286222925107243837113408453354847122530103328209635153514951961024681222997683316487166405320248928902570114413151312298966897710841614937019598497795449136487671175406117667774073744603064400191927690100356433535048735793696182331732828035825631215753515349653853778197075325018801413727346058772565149426806356516681038781676010615184804793155618169184910182104601219364116614832749172528977779229350994492308050288947889124787852115872279151438005851660622587834502333898338069491891481261929003917992600351774948029873525387357258713776901587914028297752788228907158301869773438793200607539234513237730166741601709290129395415023354532319230044974555836574031033965744308244208490661093806701798578451013871159868367229920876529910113266317909844037916167364499694195667155147587558767072953166441235605156543708573622474376885784702011859916848891263641053206989866959734406481870791837630799727038207201102447324465209063261234692211230787781200943624471871917019715072965190490103388184447200746351458488491209434419921368142652212146748032294104980373416944266078042993247202872459356921021790890706313848341928343733857516227875185052967193404137768438775465745145644056429479273099976246336340914757104764853289590541851256992053848520253647654196211070553857671077270850964688193459977331566475779468433703955210037729946665080616752429304678237561511106844604213558179808301045293058736600627642874583560940330300957976712856551157909892310456400624181745542029949850072273828456910364817056806771666507752971024186937463000581623390066470237589397941690166244777235646378844413986747108877403171038383181008550516624765290790631609128363010079801598169000327975143887761505671447382657066093920017696014097154068631455435055825861504610492021706916180820694794503289600016847573455018650425029014329774473014557202975982559499504853638039614409445875638808531182725169751177292093180772757505526496375598749191897974744844965908220303213292514899351095854015208835000212971677739409334735439074517335256730111569005154462546952759600086544322780608022792344146970885386281191050294595057838598109503238281830610179872578263838503311137766047582430652246245490025563342067732646257532843010279428018637937943268238464839805834941563353100079653324877672387087577578984942011183956631189500417082678530004265932468216815217343507786768548458170390657129123337255867190895570908998617622218249746420854847899397984566340902566913564902814536901627310754254706425942991770388682651319422665160033396060104988705712652358185458262632923933873224621420095871423794704529070378649073823823822907764415857721270659262406656038681730789349430545730507618815835462169996073159147718119024364365795609646896238558942709000067103585192626333552471628688599634346840713159619233915935172707705319029605837022094043652071707338175353689271400171096735729497962745664229728851274778898987516459350451944451221030123669474304042086331440938802028159379327827564654611909078130731714810622255909579375128580676659127897292167584625430262430138901419906027527476050967554839125638870496154949483332054500097604105027864663202288116911690136530202232589119661706601975135600888785541188248917722873844771191367454078102972266343057935672493893119713030882518986560019949912546323985616224974186708418991609458376666174419192392672153240249544578416624587988648266691409169507541803431969571581094023541963474737375083484790574822159217070182065570956050669684898121291065192680840849271890971623144611400557116723089389760517578489805774719484258531299501235609526640377876638965561244207304976138028663510986145664535775365856168429494140141632387542147881337376327813536343804165419509774483820093907518379215033267935056216794044607871584379882241944784754670377629084008299730794987050715874094408362398221658208606118637743687677814204944095787780203832319515970606381737847848669987284309370030936453061628878634620162136615933726999418455395702171660108603501088238530547584724748552327294875474899281193369925696011123187206516964731245563657730222911276163024964875000118594807218002554870031601169526636592966449211480195565276633121126935881258730982288320309375417470777010462867240115855807404793838773048823588291452495343935290149565737483686249947150613898459993890241497573514482035142393612429894865566454498681607968817647867769623410759766698655178685877020449769905137490331039534594845319893239382894083556449309061346114682564788646891472275909013600877087869721668006334549083173507553445698872321762672978318846179781253592387203128696727486350034658127842736236313475592622577312014307029610580664603240290121211075058719161320001108622518009313797194571808771441089211266845478547771226547164453342128673769230184214472345795440910993669913252614504495114242649905718196703193794741692366106431981044861154351845859917416026407065125544612502173809257272882508139480672666802674169282617964951074199646146611226593955521669722017879276889310868835117566930688601675525872871249445433223754568420088344296825779805061874637639259427513797492988552198382977677415213886392344876214510463317866933656133960433378879301732030951188226626535741880529531111967569476909157384417636778635225751002915303531213977192983427094732175652736281438988721972955228624629740168938716325870349471578433405277322431555607156300769620777355325942413740428862514460347789853243712184435437863879231772876443658928031141237752135909949535491002961290841301248470296359289085519801116568459891974959599845564365382072953841681456270888715680735284550986472358129056302872905571014155612711694739175637869560321800137995978943674294644361539597536724061860445342638171575866551473705277532962668483885926079477220296225923734342725518225364908402795491558539551454212596695256190382783061176259642975674888693567949978686829346432562303511736311745313616373668404911879848575452445352902258831574025804264441109748382903260256640693744254153161118183352588543810583792128049973677287386697945377142835806299062160620552675138988147648859888531918408685361351584061691207857451581160715312562184205858786503556872393647873437167891853166594543473758511721162851832112462770432073148601800214006006598604657706769951873364075182442513230149985225555108429980369038987793824023778167572339606419068381640301402040568875235255239655283335464411433342486834161850540837130250716738948301358485920903430046470030118957420584484113713000587475894925206417564918831094363155358918916492602473061779958637811480184389847337633843970820232618943332949478704975697562722782264069237042783849175900653128025063767534609005791463471576604752683991159021017362495032102711362055271735660471802761941133394156109987598087800416606973469663700159452744866191854941234427066696189976771050678451319588764703268906489800771586284593270261535331679517656138124952588731589164435975989990744643626448183302530327809222914993233670071714100936421124992642977975057853977565015369730191591933874991417170813044360203131565542204842262008179753504260744316391255348829358708932561714632286960387030023447759581896346778932301188132759264026373436315199102254235859714002548828488894931870644207259519099979128834399755258021232253586259123812539676897155514206827490915182870089185960758049650121259989398918333440371342936997875969649977568805451811402423080638720925238352385908608149632866726472436420239680386479441967446506869572203016323697397457596226795812551949705663342543833552461106679636556556185243574054447865629164338097981507314540847144268710239799239027887847229970022960615355606697128415621037608785730824424338317264930509091747203881839130611837543515070996337306257283909096376040685760409837638542486999748699648031412588096992610743517918333130329261857933515525480875287219699180281636342966946492072514022497888048131301219950018919069896832013560480755222351119444357118804776523464388401908759332804887328453086320773121628804614585952200739429254869094961250875823689079841215441532139070516946708268445934005566884131677892926949113583197154047648176868037442572344459489806405157537546173611659604834948944300681384927627080120184342574279684392001232590270466190293842130069627159634790780242687531205217201147023485236022305284030954068815079810189119480765019096654041596646226395881469478512887808871361040500232237433180070784941419595644647477149928368805933368548413824096674533423895021578732773231458773279161323539138333177114353767743615875968459817280750569044826085731703836102817290420093291339637186381220277346401074700897153089565502420492198313271221954339468668978281283975660074321901751574054709394391944757675962551174969219654619241769107883670446897345754554138966185552408274643244536136975560141834274573744692321841234915766556338347936218991225184893708754558565239546395726420249482823548746839876902797493440284508965392866050264824587439628316867067749452486662453499997530855192395238109960093532288548071378825434988168087835380334162455217074552447521404775467745558166983473957272692411962965722309030822333609386160474487585338412967302867634330472200234472071100649862723846190091443593953749655037039393793490239340389249712430896083257950680478647867869594518336166000370945161173032923371912492547333685361632123671761828629165217145753114287037089884021602542877039599373666577519870013512866702602599799008571150143312291867868827519501737877410538709349257760343797961202223615702236884330633307060255724159278962904349537955629566680596218910383976504074791440417517464880939971318165628127062073655487453191030787244792229060319429417527824084932756119644215247368039068991536392783793025335228328756116931930525456599195837884634916807375350941392425373837732265626911922405633846957925783632278815412310601234177045993737719039404271748958357233946711811305155837547023593940664438668272417964976209146846342582274199885228942679008997961803286546847842124665828099719296780870404788290724541849542257097777950188369265899649077971847276969385723141513845192049201040416206750139249207868393892052314691311654384973384390720859075991438613557184815932980994854795389244053977316007235060440552337750495622233058982719296667982465488240656200853470445747274957950443725520322761797735535047272926260628246629626634172688608427123255056017876051146911951629200462825028460410183380113561248743074312792086144143584922352537334356467683085800231189754811755574001254317234637320677732240146716145974459982226513790781566498914357121354896189328161984423110752097252453163494348823058421976653491703287099323970214370935279498481494321697380916830000539789742756677744488877594313566869517699415498310236704035610611393003206935563700163453833470875254324938454136215779120985918331078230387832101997504943522256606455564396298524861579206314967568914050364276880004229361161265571913688488788291426769046787252887526569228707786424191939321895205926195047355345436707128280691772584796785713570047581748828262579487502951097928869764210413574752457531445038414809565960346048509677726308236117965634845249949399777789385866343498113789279781452727541222112302799271938773853067044003882069791867336559812334678259731948673481045610415819108196206399373103934275496137329183429858097433113221131727793567734140418950801989634317945343094577605535965285594367082896746657928575097205517371115819208249633319479998448562275767708750724180343152753342258240739557325789650252424931245368104764927927754805390778051769974351904050022310212593639857321525581945378464098079505116392424314849606070708111276792025388122263218784499651860315013339281491856024040358094346383655523232905969647440397238123516892868426288079414140429007265698673026365230726844204320069130226928838296305017733913156014466128942516415873820183909423648535101929215638060201867835229640615339411779407858375417592918401664705332660130200537960155886709452163926081144267996657383074430981662665601802430018455245292186508478244586567886639042671641996533203056421041286173680654110294445418464536990025998866347821682188719682536098276657322644483947238229404289784003451041808807852652150110034900243918771868100551105659934070954498230949914225235173131606845866665096387629259814776422509844746408626287259154716374997663124635528141540313829931851329765886804667896100086816570549740263181091261398912343499202661190261823257733547181490966607303172742062551938095912771116413858406743156829970995606486447820739134713606158608011150485381910440939186020192759350755659501066568554150752640196624377524554831851198312148432929047506486189910169716379828728255920166238360795221277205416810026649915762165667367949430574184962469158667575987564198858244995010939751757270820614761569375842166068958724895252339793354569821977786709908708243257871797963103566698143991832847874942736073544233011894509533948985208156769756848708505699171997356281358950191498156149086937993665196545742048905868004639888696735252556508715573953756710782310491604120445524971073359493637986220620595329561227685930237762526330407140163495778750998014234794633695795726353453306583011569264674691165281799503571079525657493248376112055422500743426088860593442017200035832410705956834961205221615169499507460447711653951123183802769339076710498485232999017551660024800120385079231207805712652011077758674127162820157857796957095890925676541426386270630184328797873959866627670810856774581664616416772926608411198778513719221071488269576827425785055702654195306366843586997699906554877734352421603645851612450631461557851172256755793951826618342077669722792569561339905702531171668927814122890330116181999872299526907494564354707261550420749089287104872911812663564786490621985126419612302916102005096124990003919445450668086298031195697432475065322371858508645961572948562483472340304611459133627154875951304421714598188871638067014377240993398357954475187476350569575871636747936233512813040378140163239269384024856889809702683873699010055810214685990541512266552229723148791080826828671497593981877756904208759004974325461958835543523205430305710656670103170246485297764980190006619499744309996291255653923698610279354896424711010802408818589730531150913229626963144418475425548104903999164314276949738911946917816371935396132892261849171778746731161341310071391487004873622451011429687375911295300215850532252932112654786414281703506404863550336141976603993917588942805255804832498073330629678630362740966338838978725017851932566316522165837786576049565852287857439256798585959702413572587307721013423188277678221152768572922185921304528519302982356582008104665156487415348074012860396156940503525208358954015647942209848274069350728945995579473351409089808999038419242130709084237767660576201206178811386214764262304104995102379865360191734925337749132720450282335046147444196043494922174980176504744278195498789540719968453870533438552036178454530876591540890491886577187826465398330788761140962065846652972440767711118352699246111425605779311192423086970417263216428737014367682087104734380886679964408944491151143670564948022526312303192777861718566467706003895467467481078423131348918816182179286655233043479701849572743042569657959316985192846431946328531227855548951587582954441036458529600125017976135843078336080271506000682200327875938178289936029690785923015931912222231591929623657065899342772051129007136988718009781335008313719313954545524207384362596329095775024817954142636324645344426706987517037138956612659061932160127687389445703002437765497003657920552868682222028435450872789907080170730923284692456576891868755075028259817484134068370908223728906398509535362656910486124118134790783297156779197379841302894345346396592390901072811114664175426850885765526309469970111130527774763467228420837001740609877310730432237856502848265997240009746968586778628240630924671477312160215775838602529487630288256055720435998112496250682906171596352694099916767987609360686599685671086832234158577691836715699648595103812721721541555774668293317328042716803181457014908120528281919130037037566710148098227661806455110413218182399734364303981886795323927870509430275653100849420708980807298783007733779819399271997894832751402199379710558727248719639531034836639318401859380863646676067198960864994130348691670285408526145726963190472074784944521465781623225568478186051421154212200156239694011191535595116118153328834858540762156005715950350238894319909400056561887766814837275680754366799104645295654138314995376614162870572422828300852785934049901329101328925172487923520319426588520141007924852904358322785493275779416058861275929055424241888464151001261418898236149732961326102273934320087783148158608605234771321929933255430075765117411980169289751066827386440288575874553439359458032640345161828281419904484128885740951605620649134947191237124023397542558780650044934597934866114209213046882685026390279551005097930868043341248993521366856279026035200513326108821087004067086132484039035134740058161805574226736638873605386853080995749285750499206202020593295522274326277564452821563651727135792043100438036863140380698282073207331430546458108425299854964871366687358374227165235506281465603768720133166219836660553645811777963684530877451349193469179726711041042721001262037241628585877497084973971238863836446839545668571117016538852232940447766576113039778666107668217796308273395365464928802522696556042647985153630431181087745419113063155728401950285369350936317979099545335122463367224694122528282620719693732279954068937913620986314401546517569701147219904080534271572591684640582061464942658382085521793033940829618416781530936837064835441645950750489019256028261794985610672389326720752965264720461908750567472804615176481593874731057804126354652468991250822132935808930698325183304599521585742573096438643365109854181783485005203001012996401840894365181716935201643007164875439257076924674829711171464564851854995171637615087123664831704161475568795183904445390545933937953909850427649380748626544721204845960604920342517489405685528251663036317566158871138098237067783403655875688055324863804299092928458536071100485975352277356545709080993140271759272548330673036845741884058346205469888387532172252177448578901721991945312915585010049659813102095169691034980276681407115157793531876440929656129617408171211498081199645167165098808515586848545344899821849787984197871269634991281533784764978449757376347930492448880675411261364675999439602510426397595366319042894011908755312242269854991538081996278362998544921408011701730283113308844066868589311219407368168392104360262936314602604041046645366469276602237741605537852712838496072027413540783488503784578469829216025855529826969505330924290118882579372515785517198296788683165203220794689256487707592155311580327849000198887542244830415839036741198759824881085091917002570693446792234248422983140812791185369017163953828370850003976691073862388986053921525368210482647061509127443562584843333197449688268744629104915494976478747436651033832369096242735452326428917777598918037392282915647070854123905969161662025419133783328964739347114206364918450314702308840958300331640284740758130617702349882767382335123282070308626018857697538700824727118842940375755084436942133402137595529138485291648947356049487061429399833608010829742954340200265126187340608629392722395863073605453916488920542204053814088781010964275435263371473655636940926950199471913644692857157507071829072386133462389102892204616087731667551672629597266103271754440269888641581764688086585179690334467731447706283197583144915379120495410266891557654845435352099579785338099025776240728785042103460385708753214786908811652145157511328876607388290200428521496183723801977800360848597336873379357549608078914799409426510549393111237055601139205864781717440269786604576547134363120310398961266336784441437351768342425728955340590317148386321731460191088263140469918174293001332137573613790155827557047758305966827429304124553762079065644871290055580737658356581302352772725398884825538593135778872449978056731400041674039782660136499579815961895011339378510738147076974434046790781734408699651897189229377192756794041620829964657054974681456486142560875020135326085951226956327981392063155210945187642938830038782157350390317055806700550666567199452084060366454012457552992522863047570380518731560623892746055875474644744379860397198250887154312975470330401081106646301138460021137533245328292346055881803238468104629903066266159119482723929288828098952404265099210325539456877111605484048017245909403343932270864565563362150200115014276553334597308409854313648952042178011652443272003029358522916501779410686485215821322178821463012992565957882694809832672832123242583548671002197089054205985693199199311724350611847885799680146126430992510894285027372217309725939447986045002984280660087078050546887900754835206604250479047414555372620844984568460428418029423406431929684525561372108936377401003144304530510869384859995313657548631711491645824142281788102836924176959440210651720162883569935153604276457889520369678987016164875794267984766140902259423179179900625989002658436861288798214133933163703988304130153959530413057575122044641340919693948092321893833966819176693163100429542782395824524484474601855893411176390524142712548913825171319093708418407153208862091281905188823315339745295800401989310521748444083276484188485195674840072956433421503002091075727276013456535597472144555840951778284926779689733633784845817980486816169637920710627531178195650208263071443775355151914243638603662262958833859851178470676002899778416055430875174094667414105680001527756710484548525437786526641155541019324597597752908862651469374629779727048920803963648227240208590316120066927414586588840456741250772919322527260465303816789023695408551580506183228985971887394177089535135770509154708667950076288819842060890913397327698383562320923785013371141508387926850878621346375577122324511976004113019113647529696274885718762356864890613977163935252060280432034923865926101235614405155064994215020795715503897502608955023274981090743315620182569274140121945491688602538375238311822535664598550919940405331343005430467178978424344310762984837861986284868597726068185033649821720946555895320378881343276306864145775586309696676839150413934949693905158096197237253710497446310991070141061898951747411858211517634004436749873140220743706806247871903621980482739322510897182972236696686577059432668456975911827515548371161184393707612183444363404632579766099687972896497843186451072903533545049044484455099552991578709978085597670447112122788531019560765559485677235414525415382140046983237528765872103424181226039601581396435224038548288080919423018048104631032522262411849627004267161221701161172634740506827893158584091116574416534749528556151706367588338596391146324621244651333517198494543836873622116262744210393339343379925418366048267403745563521069691922148030912671497694433555836312755079604520451832941050605273049086168404068184570943922681799761717947673405590262840049187286126147741418103827508001922700880575760304572916132614269185307168688692620854310901519803945556386310429698932325720771336205112212725272501534145448817807755000537130388826076813029802512572996605652798133665137373154217719684651876857190698376393425936865004973893981097404839469249165488165148741088944859710916929730859576142048856537871753897539989298936012417655050554367876873302318289645412929331456783783233879259302368788687235881564922476802241297872558439154748868990143273627554922956541856517594922230806417117293783722692823749984787055469303341864853648003249350309680223196064192202656160403746079827430031204435638395069150315792644171700943921400783328504102552767086569220788485588277871409352930098323479585895513388964567174810207792706829115461223520834264214538725303531120461782890958275057332308563231049516502375741909942092483888733531560273521204457009442088630267384183720826516716066103205442629903949335165041506287153731918849110380579267326572523151067202163361200407933168337426644056410118610681209157913919428351641941938430160461405934822507808009894372281705764001112127433355032349694732384476236639222757649906338882628517295065619122589745173540702534042261961693768772106596430049448784227288322015705695986805781303970591114450668426426803040039007021739656672262151332414932787502873974834693875498064597615455757449970226217088815797069259047122355095892333674774188639864723721707041651682267636000716175857235512440294453767245109695011933840358612498200253684058600233637617776129048160385470406806689589430020740580522459462036197076324179774990498764339165790593076798542768614152136500159902429593776331261900619494122670494794871216718202990027336794547638642444434887628115176254018108542654408983184205272898379693006681289688669232588039287730770047381860884350115921517996433025582304608367758527532514632750168174106227327646959626479569209217428471303777618834069724541401513986483173323821285289359586025214558292423114456724617887599110439625401290665553063269796109564003092249154471134938390355107072757547673088568089607108295362270594907397895842028841232121226865797638283692777803529649859835655005085993223061672140822473336582781751143153172306522231087180973759036251537577440281793197928018195175518681213639410048538173618471378065015692964777745108407070611522480948934016671420228112236949857437093158685616734254136338659818095831231925147264001442864509534887741632126846442827864447121751032115801160221537012660462962251300900149318094100013663022812429582437351778417528727664456811077100903167126418777544717437572222082784446651618057718525501041924493114489873175331586722059473643418614006134028025719191093669900838812727752372962686637680401187277428149940373780078874417196364730967206640488696208058879847408096454684490367238423144519793863449795588553627947391317608397494086824752965051539233767104104182847498918211365891959986061696385157044416243219835155439890471921193583501951285536363084081167221439444484120989470054692047471216418571835627542266508829920933407847079452245662516509308067893538294780969773004440226535845694823308352800496789367313290815475399718943792254724966273366749664339918799748840539337878716565759570029489660152049891837869302360964000073844722337833625953867130760471035936026091689421559988100464519139081485107418222866985595260263770845343225521036176537425800691367073437889271837855828652793090199677519818336419488845229617493710825395925406254968097181291854180805988877483215870606160233918531269630124218403620005189565304346128403687533277968179966027922708033846754849296900385351531349747155807202584294043188922173499778379224725069267840989944131985211156774859116383929249015132262396127982506476325624532824471924224143858365091008894698077054665434754221848481050964691130253368798138217071412937191349411554164224503635503590151077543206631062728408136664653716037149711388014795427235748483003010958361628421993065687927232486098654708974634053041470980210423927679240339026521465104757435761796109104863279074123494144276654763761735881077692636279114152242479224253577808925109747212956100211931508119336352557895570177488243857552406044284834213503188868348172243571296573170552903011485974387130535269787653830843981482626626512094195595516376667708835791068656290683036547883829139874998213407330868700293766001373759446981112856280056296285643463931316730411990681012653522841674668359810590220149812738313701866675934425891692856813042338392864492890538690160645063777307629123220284946749181294774335804917840959480771757450426829621842941529701532381513358000098341492844210389712305102271672493361305214363676573362936828185249078100001782171908895076652727627905332455120666870158739545513155157353038976287083670047006377222025213084131127467038864578940597856095982302010694233226651373541827772984631685219204863569831388539041129700480636271589274665929030746036891883223285938604690609372820807061576527508289690894813281788213831142971649264683388278141119373616294940130821386603369687180925726981305165712873161717990565214866946358827568438487120927101466980609413409836972332499129405310556045254554628097661290215993610606663182923957253632643551584651794374390834847186789792327808639440115992337599270890625991592477827040997383377579381664319222623613847120884417157503856691028071401018533069222544072380292203430236419711361847019231761604695529912438274884848032623167998455852698933113857617839295097258428421975940039651278051303252251520568111654847428285851468584538059176406460502166697567220790171812037657409961567157440069498545908261107373281895885648683330333266299145582499514890513285788975586800583250223037444733702536754460186842146530810945250424205835462021307018526706136948711587539267316246244913168759617809655804261094425767475969025734251561099959732254401573071377852961635389018143313368287819897682419374658332102500600861157018428905792900041848939141064810996877782078959747648333811295653962193033656410363214212339603997398127288316237108552260396053428688314805820313656337573530821693831802482490650160257112947487135778832635916649252350837545859159816690347532574378878205556725403683830839900360754174153717526820901453131351187977830718808511826944898810821546436198286070390817549876291324538072234082799583304018986256220490107931105339257699550948430992496802358773992463952895815226165592385929220239636814106891407173715287406149588405761636566225393649322861861069618005687152761781855619140967514974258618589813294000374690964583180898389175440238558257554414434018129901491678963834146254323692506628282548284792130779125190329552838818905468652372668287499381970838568571275481064177251632145545867663087191023484823661958286457668913193761900437773380291003530827025953152600857458278216933076792561585901716240950888234202018427790713180797767492791378692604557999925569570413303630280653680389269300263599145984656265611678426358104596696261324058032116717589519459143340026741207354283686462301027392174021069059372181686316260084328859733006745994302903732779813518492035217519950703352519090238395383510778474046087881672919217455981554386257161638182200667435477094616079008796050901293927117631065770366709965102920152119596723767191722082521533585141461788029727126351798125644714419775836293109594546478661640921702946542115532150031271602204313619829317893494163821925113266851541069042984227394896521577249844844700810593422590570106740858150788053560526109421637687970030947110675659785488029509370689773177068073911875720161901158339713920390227377310152024775615709597664865559249515791344633557745852322562349303795325574339837191534809725132680565896667068497741342293994800661049923069779736725282351998079611044173377003657297078047597717407473682186107684008246837705121616428538494252771419823158952052962626614634493589969077975837664250361796059370688795670875107762206014007094154294033127127505687660000832102625570936898802386019071492014020084184255846848944693969443920483250647907016475512386432017606655938118236555629182177394966543311038437293305852061020918918206453649033990438239255567962316651818015262844289303707375052344422674246426418512686187586102773662321322089403011395580876820482465844938797630934672287349748905529583950982720007017755962646618490280847208765518164155182383038344865373622011788798436058945287093999804752660642306659408246858670426574212750087604237140606470460399847067673016916984728907166049163024768100757690533353396861554408627998443895568524400430833035393444646407482674751484277499559060828337983662062516349304903226719151101634537879586279709882402388254215449324662609357131775381828770522474678145503886265369103998771542589760919816647468299188225785130893251900522719351389210810917707409227736637785930615567555404599071518803802847854478815524219683433079861248786766639029128111331425440703470423728157870716840739051437748447485749572136099357482874423378030893933811273666537288476813443451899540699083238522340036074359848173560500427360894266606016658768994218943996360431491317655078490054605028083950461716065542492068915735360290825226769763771868094291988032218682176692654229291535938446018226706600386479313539319524223564320476662353808833125233989021910850272998604662985528174843496562641678770189681615435247084148610738831069324199049546958827534335538416279880793984285225678750996272851823350832796584611933859927125777725327041429312472718038120552593834713018007203832324541689631276776867404777239244890748175087693601440530509994346485139927864391382465356502222899582653544157773109547579188373584547362053454342135800975070601341807867515617479373206598473086118958920794500118673923827846338979806284049161234167397923040114212146971923808937092861067797245325723126822160229031675859905130151117196515190368554463472535308157525982785274843659930047316009354439026502266762953027154744356280054861950400689024708572961368227034647429601605562624371826111805391289806807918512305023451225428679637357708539289024127782370590184770999365197930133527292942454186906893867149204399142440204996774106373758971421297799838736610786638729871323383075933479318019677217003674123392740362035002538414965698774897338145857068763386930058608582048182346931607314624191328933255699980785272761087820121326994495500642974360398968914886591679742395435114275845691141244082552243177614017544693964331431176869379535923902924486585931471665569334351174799064724346277302248876262556914861786514776703336905712451818825673103728722821009247751488627594217693521588060681219191489897804773579863585062474741314778966035643002358169626556891539609832617980140429384336568134168646676504330005167711649902451476390600797468623516976693435652129375425850429512803154166123753646271975616625939528618575804322100229335736121052596727905247397771886175291863435627135488749702977108473023099273284086056261356648965889528791662158438863343300425530212237657313348257059099727122013342664496588698136443287423513250706470490540691669950427610482036173929813963403363472423100440722496786588795112126924545846997937112680313399982264579983961017273916817414551080839981805364276962263928163835101491708416750685253522567329591990048665966651791411115661962410050753978520477730107307950243437407169227767437481792970118709927186575262891738433314902192687997431773831155742715068856779224267071270235385766544430892568356365139358161510505950181272886765359096427877550343438759972865695908365943565703701456009432293382804958966626548773699093863004992150285282803583310028293730504251961376647945352364168445479264129287460389441816154454046490506447615786227388448837122621515180917952588484798250593629764802272084617384772308794685575334615544369122937008287703564499957255136138566739756597737004804667087274558350777867113286990622763930470933092258407982379417299008033749459549411326064416212999770678664708321585360217681869140194361100544217860935083847789226224390197909046014793358768310592572670058128365995086666969090301709734364391899366719170615901273843027705579031638297654586075120035965182500722417969454333277929175851122396817531397306096428216492570130266778672371771185093423759569259023240672944548281154140758761879936627400993749225104637194328243259449432952369186153019903781102693203398398783325777142170553099418675288705567371437989621097455012267460317464992038267665346150598084841472433207803087976576474912830698255653983701274773018065708845586270045123407405033643316851554467083220121898597206980330371908126419378135815868072464669723537017377046459846342386489313145207586584435674418818288484862524559557150628765358002341295353053573244949491726825737939644365663472213645457122245828367594278218162538537878556101668874777282265765614505363833866111790842127034657325488201833571456496391894082826589913505647313993880407922655709822424470870670262681014740915295291423614983781278158305402291628735700295804284832140445650016199273221529199443697823202618150298660986525385058061864141322495508046908038798429762196969258940575391642759886037902871995085229241465274491277165393042076195283969701414775371551098012659054936364545203681597405997802015351989184131207512015552949087546755535903390165767145130619493015271038783450793315727305080199497923957158862782479307398012265375200858973734066097321517825018042304483137558048147451376826249180469877910833581818943615529682926901700995884648608281918091061167116077032895242258276561674311937743224322643713869971613088627882954553847547947649357618698493258902815378711561631452611545250146622444569649372946200779591492318698343922697989972665016443243045584812464578132380862878975039555585711986157481959062379507217360543609937523765387438901475504910457146666564876865044062285764256330286028812338556552021053292574998290261182989618572637366748475266591761006561883120400791803984011551069081685494009380559981357074180581782152639570091336490024466715720636825538808798492198553478715522787512091820954355576580051018347702487265363948737445204905032184401291056297337615283157414839538389886468701191568156550799794390923399976018530795432995660698953404558114722536416676512568111836309277003689198736920794602929011105346298826747182171075569714466458267943799783756445460979122182184084898001848294690176098968748049490337419703763683166891536540997873065759193852617658828489567259214820039372769069306194630654160502413648598963973405529134914370760812240218114290742910952328857696042328868381963391191688172968958140031163016393513563924924221734738362440077136411679987433842674945371544895649755069963731471433888921138192501594211946812438808482085481678613571135942862633270760969215739462365216232511258915183209291873461704787102304188249462772633699437548189975624919360935087674400107705877101608007075295647358747107947833458557626529434667963603543415772063294719336077079541327687087541045353138134669767075370257230928372793510769226510906015102559010290884878594564306494696860734603270448446417530533245761855541406405970294254670948365919330401795110017469780250718459526489997829946093508008913223104619292654882304087925137855971465184912863142915925926032003252902856442611484417749013710282534562932859149527288392202828349084775275853798657574849232067532283482856848807114475767450446147244743475072353558244593205043945379423082442128259509746796677213548647868464387192336461240893942074723224367056710961202605954435363540335083050002132030530522565701162347058797880260109644589552535580055162342486715519879779457272211497343437256766046163276323757850123917665798784076758376575772672557903170196366457810343759924750563669735580923403377869202743311467066454836346674230347847744727253892134643859531320036196262415276547908558051611685390869472026593243060341728371591612911813790164506775512518356836977515774982522031468107619648354957264971669499607062803399535452531396486264569320843188016149433478148116029774954334813797886534696769709087406759353696623185784153064981586265232899549899241279743185300634211124092956884355426404147423680527394743922827819420316692768124835020477226817482100712420101491801053587212891015506707077565233752470726202540233150281565993880207971175432931357743796132261826356256873155294535336936657475714374607813162496666873948974548657118054622097896333594935578592589579960466049924416138119852682605679672229578457786699974435089448130433438600322731801687168197125975849093298321249823164130517671261229809840073712803507631011755843511606627730517424933402857928202092449467488229151925658901124634418373478337586814631213625103480707614882130047083059392407880341008022632738796399975971864785777695236207980242726858178448112305310081647222807519653606965232625394434695277026962977520095246233017757007820905365601979454765606204197570725768747873243753818378304491689577842076498714942271841630630224725380607062889738661654802306836650888665516584401017752449232640882202100646019103523293652421769498176988660412991883600363650411524590352485736681107015169965192435034718191434797502450902323066182663673091503430428835739282585326020683034294282123723727629730495380277244621464551618464559441037669693894726112006342886483256919231998953474913084286170588616307734879538414166731169848970432222077692354331050735217234634205949187796996894005766200404569591621614178103288586155359713963715894142127146988865727527685887946168081813655706821921582243800963888253200190476998267873849046365561001291458446345007491468172048246094623998673940600879613083019257767254332941316858054711864505122376263380329736565478337945181408726043906186401495990665572271942949498912511581242336988024950590885792170439475152551972112578078429473656848589797102824829379798288267914553114515375114164640801049778038041155976341860574821248389392967375885549932802552476190555528223298787100193244149335383275308934997385401448403884712339444803484395944228151357002630190009854358375958086359818366571302692918633502965084774149203149428859857340217518021404227893690804922965473723362282904095972137844459669095957617226635238203466844689377039022167786069430632624519183803518372292405038705327242401382077285026579863623297284209816016955429367315738687462290713102367558311896851205979978586478822247345086518250358607589910898725863148536500291697132547049003590199611549941624176263992759135777185150724788398573743038870665769939495253587134245393790220213215955807593905852414994510034701221576030286040150041738321324085646231886510888524374474878565860597543393240873543258481044359987731587330097535620239315104462241549475199881692166755956681154753183090187128963783540501460897263064390653810911931996363831474643268447708281029716565726745337610073157290197386832806773799330835103453430384002251274763354431481586129709439183595330905188702529730613579830617092573508677267697509298129297695784481488871287349121866656208164106671156189556859287336990311649103146098989348376392608835159008445786650948435117017723610654831187347576982623768885105416273886588972745402278242820121056171654503148118399816798017167591760696556259738053416537920068038736757098493198179090637050066216552491673045348503139868062709085652943749746181667132136758589715367456017090588312556579997885617386348258544192182197979556236427090037916123684292289592804423202631512098624107773140270544771821742176337790701609858243780160307778509890571795034939640026243293419103906403061897730376372037940156127291748960792972659730667197641085056697506387623922199822882757347766087984824712472109317729285325738747699505285957959039061259908808844143383596613438000129237566676964889307109365781073717153704021937977782579043543964795969440009861301341355076560084157091843665031529704996797670485900968129517221117608062597194713109552055575804032903241658982266892229918799828463572428890506880071123402016962222569980226344414604160031862919064229735408255570565499484395806104345300677611393085400640830891021612527165853055860835099437821053283667478498101595016877995965562213183789046299748748231520344820292053830733672091707505504639199147043891517000028364311065962847179624069802687444150006442032807326941172026100720382241604961301927861897522029805022347959548214668816864154902530305708617662681320423460594313996358030655661491652793097933375953578387761044424683249654602607564168735907832016704803550660112530375902380721137279145613393439944868447009783407654706493822303627976426400360787751317869691238495626363386065362251242666707317813876221521212883774921658951788356846598840838276473079287295938888039484084113166127360565253589153813347912891652414428911476599171000551756593555150260503159112170441438729269081880023959147450260029377120782793251694830374373703721001668370008826510194309908551562978519534156669437841859611851339350310887210327810266419519672905921535949075596926689539271041309609842783480209400173246650810996800803434585086023140125206187182507225954587767814569660669227522225893765179486297307949162308000321113109046394039585058909590254643252201257085312735156352790600860740422475326106927712931523094064929331445115267495832718350079510954427471159911768380237104026364823723019434046211228129216919212381010666636271322756707300188542034443757176530139453937082436707976362591197354777291378473955113415556872848221646110663986612071509597843368958874026204682981614855724698494101161221614279096468148204559039631444797617570796312352480801261550969475052122840552468398434937057506696965234558097225298376440640225824872233321386168031339348906561312975760206710813286756709840568966614148251526393055476615783834143610415662692688728186528185384391510786268538043325161524941133181176194307214375800830895702823922161451720427953521705705908665630606476925669511316589289209230734896594193583023801829048510910506351720522257831571213018294347844016335586811930403770140517714164462748292984736546691329530780340301946502382548350243778471625147257122146372441765897959238438483617159849059189893059813370014021582177748420462636973894548287527415928734521342997191476404997296025213569593675743377353059788644662089652272362621213636972061339129929658680495657102442070792862034173976330603703709476413868058524271592447864176791076765344304258721165088930076827804471900471044156534342139723083029421456824408155262696985755086743243480561153981672879399286325348001271341255522730218121341862773478624983180167985591450965178855298284379570705349541038872381238714194321743660233693094451180022565092412678814511072714704216963743344335319505543048518999552073582144695265049190858276577088620314521633164164791829533607985671223578991665748145177412405521815417065345431362446724964765417788161432682290868982374037422641967424429790533344611383417555972819980128049698763934095638191554697505946412176478411765030439691565702293183425935382386673373166317025540065014428850405936371030034585075833754632084955244239005292613127625051545433494744627825013711493821128104023561255747263981054207716381798143127103771671056524289508923118657567838473401835044800054858410313196809874666827733736331329104735289036591281312130513898413221591587970928121990046431460568404825454341400913184877092934550523505439604341527095703337788387939953773821457455122915875241632741652071712008400734911105630622081977314022044844227042261328161500575227330139511255991586496819529181378484400853233106027001310224480197613841209040854784191494575485774004092231696691896183070741413517757670556474079743038774235337147301157040641267249726941427804858571774404161492011945014704728787917320696590643442474229323573091518314369911021164442252394958342088445024728700124958586594830097240153664958875476084214570518294205672299301435256584521844149138680437845098050348732885913335006664431065115715172929319186139145073982026151067760367534358834486968571696309003991054157979143121523255021422683693039024323307216737605529605592927841155135064303313277396239996709536763152106081778519654269087862891503695895497310505429375375501971855946882827394282747178703107479946681735627509134435698094324720653404440955686801789210711008374567431477982108939668291523955296796890269972407827705201126273652949304472323282459251006556968463231436446828656656888457817175319821190563104699275850057340759391665207222120637858055498253458228994044342267582629623302509424205936080436060364060098679123313749358982480745432842278982086374124220594903916935531304145879844413830418897808230273659383276365569052737006676428720115116621414179720490339119533171440347555359169306350210147178626509900182711414255911929006674311623895598918687276186417145479006412416016795906649894094556543697950034152053582540363726232083619214681236338916621619559004543168018790893797233105403029139801351316462572674687385013273100231296222757554718331042506778301574469358353891554788490859162448485835836583101438973321802593306024201655809723488050771226325932077659705629017732903200127353635061085202521607848283909153582889507243741565808882675924931000324553596358097070044944485476853291755416125157653230104878045422475425765994248763774088044896519131101575738302500469040122975089294323428638507635314158748249582591361369677071709273216221714553511863984621605893790802801096210947051247182620996831210219368401080537746856315801454688545332006472124905033336850266235251794313022875851902672326874461168292343338571994800946890848716661174802519093495983149903048275527312832307058575384699014589251506120238809298020527011654011808574624644420712950687931360687484719342240839424723947371992190559301800943412283253130832196368675761316496054895466176538303792639666770119649479496459848957390540511102592831202764966308728796353060833426590968459494085354800517013318828402830739209996238738733542936268080143938765935231066487341698329826657886301133591118113970441828326451980972924908756931098990294048754089608021503655623950484000674949299288434833632061415729534973658061564700729350620364952380298493474236362872100249964949504408237278989663204984745504237150947422074270046345903001647217625457101097082889351021475881171464467406549237763972613298812086828148332429468748609486798366686406078931569053019695886566568261933558704931256096312691825714163785596790499124053242798973186238966823073615837924800565882470155942340898404767526111858876844993748325137917225927583663914841028854803443140205748391932170671364419777010239258105467467004432429215954849332258533120222702410210638169229935620937867774086152037571796529503534215142189846214543793372999653383001513321943519161657374929587715795315603511104941743860300418660987349276993557354677664193893191560504984900771811511466140128315067302614159128290990917081128351633916322367273659061984503895446748740281707930541366398513540883207383172729478529487115310772087480976232598266611019599530577618256122917821050261746204375376182466304142611495650246729560322692922627154598618974283693178763513398361815277672675057785653604037256428957384866733520150257603429258969834671648202779220791854986749898292511328832219738766227416087604445378428078896965652082402245567936011089234265120877770191639009103098670531421298385859949428675497848481755082747265634196819943275085117544574882490167193953959662717214695673370793176659169736112896610740460356714941236562239218887674232774138423734931778649665083582628005243678477722745351825728864879429465883548103561355385845485565764174001997536440611349613712649610024856069045744818553382741299263474427666577113889189662261347636658919904103587558334110602559640510623027270950039913853768949778847998643077693872641374561626931677324516692015854426299849256376024954975799630692056108438770265732069349488283713730506855923599262960181623961737327027805768255831057418498064705558909344753954107564314405168971971972847623875206096856325513482434780660625015040609028834924850759538911264643531624864893351608065606489553834654163361485163421540918901719902344626235543853487484273009345476615646156153713911843885306785047235515043210174926694065641784596712480772349080553077574956012040881589175831419856001855121800551482943813414046555620973098931634651339025247548845610687946242238125451202619132243297691163834434998052615028514253951029600566892812337862127194382936710789664452887184373715789938326491279137531410922554109230484399399438169025470247407441362491823886732959530331889622835425945134152012266695449430996161183088726028152169516003215074403261614343737044658079812588396239275407698858206584101561740115478378484366653900673493577559405456491283251741451694822312523135369392059111075127462673196366650117774012973593423671671066577727945028328206997794000366229916693289896804955044228678735637163795571181920480244608135379390777394176491843724751678136572193114456670767214982233957434586974934167177628717026566544164052677902252505018748803013935415907270205926649991171859154211449281432403961227278049680795059182123390096562530214780407273286892519074129452837239922344970815828241389287952646286613718964763628262061966920449108111647664806434940957934222702100710942051063713015082936025605686767235255137842740137833688699907935302541347673796384852152068378141094213353509761504895298970363076032222717702119058753915986244442360481624954652942617355569426943701305561142292937262805292712512473851966708577196011650738491221641957633636157162901039801104750509983152991195710063594622428803283947209173499901613787703864921016302234413316930111483058765520140381081327464554501946511387777035765722133154135366746518169133407847327233164456137083437341163524063013543992816008117579643781640681526146687438865865296772200080774438038321404853937761330546664985894368538216644969197314966906316896320595392550366982113127483328053930863657430693616980676794061977184556867288523123633063798021853468117673388151140218812623254772912118980097367828204849417898654211593516820275344852172920539026633426830971497181987656708635629807253740037895814698606732107020917478440989220857206106780349170408537549472513650625549542867404920631619339894471175243891352355241331014941348631464340358738421853022522581242551115617712100220533597367074673706029636695714056462045960538490980608304235128752182939292322539633661103519534076818405578767568024783571222433839136004514630968717237913631574401567454813104345417726223368820275648127323316808397708777496836437007640439369343564551519805631045907930790411641693520577407732503634055636089952126129557830837276097191018399965900999407207232008220339339411419142071562504312195248047554829423639452080092446810862305106266112934000175329643554141351563715431349515843181689876022539571511722210958370315448894170084726524612186703885540518925634778973105321020600478042783084550756420915466953403360806823765926143831534489002209453343345235287345041871240594326207586633955145235506687846038538007559638210026638655283956938820766308007234227447486621546613210881902598835100229361606298661342307746015654139959843372723363365128460800807530471766641250977128349809799404479948908068091130195543475012956550269557409947150668783937826543550383232010579533768271798664514345275314621130946475613966488649075590868849844528493580776817939056028342231502301444944845448785120435737777506918752944611929913844680412473404685614466059937704077377270157419558113149362088304569864109665617653079690825090389898040348431177249198072626078384700173114818477569001262821000137965099983115597885363480865030353956912405362167468299381637426797281381235615275485438543652264737341664830007922850113010812586237473486634337732483031819724931857600774270643378268895190624019254498692543447557385721565552556428635416992700939799214828302415360984455730920244281331152839151290544309478333004228377167676638695008566120247770300649518556966941957987275681164633455494898274730866803912134160811186965077760720673253155949693901626264059231453403189225340534058390339184457479203504481016320707238863236464351131525678257934576441704886533608398056719073130231746950075519540052151710508154396546827661670634392769295779972108459259890900172278009663550591352033797284315382141016946984879539483300480706659799013236411124678618661376614077253483068677192970195346716475877045382209389596297443400927036536410028129804561277891375225095512572679597796357751745160708589481727810107804102980993454579010412659012493472482238372137899835829317792351075450373184184527682168361526062126865217951560736719121927666530149460565028320683340378382704210692835241894644454815504039487301194855229132158325397797972538878769004131597179467642406293812549254307029704257899852566582289595638599771317548216091453973837834581929628551901651919709763082099829619216817111356701175855945527232998985752683318576365736100151354204997707168005614285426501384151278860916587680980674148911118663556840018058882280943090209310558816282031817152452649459602853791954597587134065067077100440410213785728175512512584731836393820327341186889555651735457194444036848599213311572021967350118300133752407019822969427568791343677559676312831075850595516178799439538074061240517293068465371999065599555758434011443086547879540388846327043577007744641533924873328284428807705135554557076654021943342505374206485385701444306235173379708085307932480118446518724294540519341062446359154035525000278477141553100335545935199858727505056437080796231484017463184422637077173090011305928965114819652957186913922062621970969738317913087276855131479431781316862497856581391437024031795669863165845035444905841595092546044253164058633581260361343525001481605152268618891065528650504467069670980989206333946452532538707523702072819677334143801187004332121974823728675667274026803584682422225844529962000383559029864045340360816304010543752527604645658128351782181744073280866068523443155984913777340827713169158309746731514713646623533791422480319127812006437860951556012701032112248379025619197728066751022469087726274582229259609641533289567225236186289899746274539845185499277795329941982208330095501878902663712035237153608601679437612469815783517899888105814578696212897663437887882490508174598728321548372026002172335866456534344958996657702121210301209684451400669033714325591481326130700191701068910139411549788460008858697477093200362249017105071624224248814097747749948325914002553719006385431940365987232255202645044437076841347504715265571136964031513054823109579670774598345974613159954704783151408280634671051793914748221722659867113060112325653729361952970597450558916676270032051496817086003515383385656775807781198034217184814952542538713607256942122977550911269825896660540222848366915894308990744712959919704949783459787617387027452024652247482593633366048569962772648155154162564405828338909096540230389170939713640223348061788737598689832204246452656541358699707674010650739572095719619403578843153589615566083274462796059272987493220397416311249799265273436770790955412416884708030343138083229278245208016338911827819566254982929287659607490525806013417533448681399295641426536637560468915163889879609669825465954037011952091380063399945191148545464816773498544734512375581906889300468059841633975008090991998967147309437480457787102314555824358878319301769128831238971734124859984303265215442267463129281595715897183763067944794739114258910598416806837649731116739358146156659022373262805062795620264836093308832577205741119965215696388415187561222518168520248131913060012760092615878582750117975628775353367909732497705765687366583782590035276029089735038711557102415504596879512906260922474437378182663924824211500049437551478267442814604736666699611335782544149014576494607083593594511047274165254387403077754319049453011267675172720701484015724547696275205712250026233890532987840648684376009131453148051400362993283545176311076169143475869395393375097577878817712522888789828247780083054821682612378383182919258880340544647326869556446818087633081842590471139879654594577837434351395786672002659559822658597641768298003518338681410411628611483217408572078200521176236877605623785921548342365406766655655980954635085988061092285001806410870248808299606173327012942082453351260128915461210944416503560782190005674830862970472892401039512125692650728021555511926440695889149918511278585550211829382465560516865165618926706541677510610283161434285397738451855141811428501910964548184934484943648654312976984704780033516159074282248584058500992065686606652047452843942302829934211110131902996756946578433712569105013945577928270602797895097225053340395853839585756533716537995419772766469075735700721226853427807742384406623182193384673554176778483088601157531370929807501976718618816301600339282288330362808183987746161998835383368307493736465137345931443367095665983682126267961925945243541192267397338408139275853481979506811068363021885653876626874709611754016613545777232914686290802702359116997514014144220303589952878144183700490729924173989401627564995860211920641778606010206934587341768170589276490034537772468671125063149946772306985423234372102904516583764810236470378763354103953116141595016574174554332776407989104699989331184208074114162025418044960458435886124907529303406021244766745294568669051358224448678587737511359032207882038816778171942684325300891555328854048180482218365486575920644817315060013927639280055265252665122231972118226816874585608855022558144094637050650887667503608075452836444782547015969984522972136020471887438169000991279241870177778691967122349736989681773700041940399186330899250794231894535860516109060950185544278423043956547231850519947279447473904181030171303460022415424992803094087275827266025600497999794818623836321676101122841232479650839754045150447102506474147978945454758820727274452092782900910186165211543534586173831387425215412988366942020743883982343686673973124243005630479184357778574705661293851654268676568728930616299639642833115345227716844896639156705464115226112087230564387611799814903991792121896577769423876654321618753817616604125172675236871368923825120946746617558769928981176248426398388237155306179262332453159567455758526682300822049841687854061392655016379138608225204407975594975906009856286274969963523563906861228080262757762450751774190658994645992971562019079541797997483601855263122264557922923323144925541766681776314135398979759082476349526556375957571140015817455838515878540664364326675346636416233857537343963525699171272620245235779061311035122388652680662429319131043650883817372306417876443442375666017376679539828955335428801372529576095575446432314413385998684709585901954285643296457511909117091673155136392975903455925204649746576636368683302967338619149038854305594467111128395558053797440076661497483246782718946222506671988616732152232342497786544506801359129485319751836501789769494429463821809701730290689846487082523573894988262833869619811332617513870111174444799415707924479218261152870640027323897209389446944346196239051934055086909199946728950540050711163183085251032429052838167894909669643988454037263931869761412040830402375080473218831414165940432915319592918193615727192405289785610525497184250735515490721834716280678129623565674175631775255818733925599952878993351083873490744287334190380814166411140330692074290552911644815236576814252489915686765730625560708023979916453433117850918164581074667211684883182058136351016752549311389238753181170324756809789378541210890237839903358772200436219726770989362280041798685973645463025931660411710374420794913598057723775642881770573132593110530333692747438655757149368636108800558323654804885061357636824783809435147903706007925328029140760937315091954410068976812666906806154664346380874250600767545161207289668326327841240229344463112736883763759822675848370445918468467676268030392345327833627254432679469776207430259100800853193152363907969766037897250784703916277533830333416042708957192176636314463428335045182946934787274994698278933554088578547218577718959197872933079099836391635728873028801927025187928233173747558993256880324798175268171434241578038621230011612289412008965504762591222940752945999421368733620283311441692222914627746412598871580629534464135313449312770523358861046566885426555314347202729753699009913185356235457198069830938173461527528530332056963234104960001032000261852128293451567163255523168773583606920207010834796108558688724610266887432275803266048208797402831894444212647484340644058805593560342825764140813081018562206383843713910133754050542095153106873485893864403210964323592609910686906143009343935546359899145152606349604531890310308712366907563831842074471874170744300472590937332702151717340338000670880282799283195571590637074480744667296004983175761832975071437285444407977831633029306321052140013315296234120250180704225562734281727857353342488636947332024226091210495248254250389652366616283624818564664450412718028786923991810373293434384181386187601494143163807712693486388586093231865190382518178367555542918183641995044206061604893781036572911671299470812795755618938706639493665010436106241471376651131498898786785988221102045416005906293432196328797140428672531355780605989953403743209133390963433395456910102833609421227090593004734776025053650861449686326230621049601473482191637980580285342926255845472412221215356968794275759278628660803664016020620423880685059468975431582909774241867692843898538264312635211217988610580341934596818511869775024654752553251317135164596190842917811308975213820690504279941455360410369000774488177280840089407730083457840787368850508838090517880064839505425107925609695747861254061518787144634693201604457835085627889554235248366419102396959663312039655482672115752096022298857009278297260663885123432459858944182482589373675446580127955975850978177374870407007023065849117511167700640700494711720821738483605162796533985316158127106085666381766252906180253486164683527947982337530237498903547004582893947195939913226901854410633179500005927056131851903909310435246162994287811276199499203682710894735144193327201893224195205044719729535048980235918392572434831190204511829475397733371205174415949932168750432057204407768970470159127250233098316301691613660779109563832935438515444707146721459519475629499590606009711657002902344234199459183435013479768402667110911784683902980530800093597295353757433418245158913706179940746331742834535556666924257663093865097110799684559585600575136767158841851752630395888908645797077428879885866115201105772163656619214630143996184248881566210581301897042486126330284728964390894166067842825089197958011231707520664610725762566542400529409186206639823584366323034323771568097679977459254038660847347613820672329774220885138574754779766373570741269822782378056480659915874973721426442791433854993247889286041988040326896625819477745057741253256113805727354305302769455871735552710603032412212481727466546941578522293682018682159687792534890915911541097745947567554209037147299026626310640038046977009234591418965632375395202773735250495005021534436710351511505925437892314877014201214647554443933768431846450421828185444050267822989939400016577786402669456855278455102952429592527979291320277194866860026517647177999465200404382759295061196432264897671801574838439908291010493751881382258810732078324815580020369950958887333874745985135123831556607338451248449949648061994303172121716140844535207663374051656668768578863931826505753324042319268054939931737290150207955389981214269534555668767781664307322996027215095525097023518639051508046613670994482152379832565719574454265962077065553781342982937842524239256482328764960123712913104832217297603267416903097856313292626532296078221529493157843121291788097464622169671460544926698402452980642382480240324447447636231357726880041605531621400240845606861707861162558892554933173091767421488357199818648724331729588977690664421799653311121914513911472419266040286645899100402612774508039877694319332325953281023924829937921655538019871185685008192284108838624562432184197788656005818180198926805911325593685343845128991133594660651434852973131295851820145482153211571475218473126695673258308612623158032834910352429628733430672545929747203180872911280210869905712107910150483724632755153939421755964580282728493074822790441607807482600179532939220492844904020535928710855706025917912377909355614099496612849321319898205687708639700563343612332864895655545493737343726928665338355584818800944245552448964079482517084568031910118951558951499060224037385226600802634753284277754672499227187855998143792121851885310058479959118147973893076481896957513426188682325796343491878335908988471334621961989536843430287039574595319522478679745980102702920359838006403300322057918677268123260063581410186811111647169197811510934980183290899450135791840657376614301769572320110859363450999633665679965894390139711669495291517582110715884102721367258702042800737338589799497804252603358955999096265881259948721795819148367111578495669632086760306544695979164390486296153757226366179998956749585418782116740136993299320540227446422544590139524851349737735561234490469356184330701098916123930045694756536951313579665736673399367092550458287944891279289646175980927060376163134145695254369499492121595233218624774034089384494803183806836885015150845887140463597553726801566138878058052414107406768553917038782650511065834170585848073499692690376430790730063408628188644409411621625708299436710301054335248407999255781688239165196339471107553565741528519260175501128234393740092593726250937922207007488390405025148900159145647584286729200622783365337038223862100210414753441601033817276445624148264474556016750182567995686573807774127444716352651816133197398842301195042078810310134369549577418541110905904564849519397455158094624420514439267348016610043419171894715459561459106784065751247420386191070485635727995279760054704734117720196589355675060195109957984468677625263199531250840066051607427939976782810578924217634152504418174975656257955072318381635075431657369380046334408656913996205226241924918988721038129851868009486531820356225417556647107161698077504890637354213590470154195526961860584382154675204951759155417292325138296063288184152267688647254166808663830019195212220619772881089721497741439216435421189563887977364994849787331321859539248940935102176135235043207981850814607941141094652334002732047325522913617178927028722031345949985551783048261761722882187339078236753325291904521741094900128386385851955765650352437251006345632953809089294758251161346672283270624046562912425145748985770282402363849965840737595696281947125294563379652160596246840605796008903349128600333197678570824941913626519235169414277021389188425443822869133836821799538366042428757228496051241548270129678977778428852277771702397696643227838664989339788213013854721602779326100806920360377062777878550582810685926156204584692528127519047028932047628760490298606080296935991999482920237131913145861104925432577014655405097256997366507456545392175793626506358618044256276390083245102260214751640089070606470733194115851848163633496428631546231329026238397931627060944958970479659758879085124982377946322449684772704172450911666459454215261635955162479383154512434419742966914488519601808156612913232426455803325260481155730908678136503605998793240225519447648808748191130867225941613702015016252519978180125979234101446329993711623290869705813141176467528356788366717015317665806989788337361884189880592782250489307106343816166489935474192728296887099951115708520811480426209655698728961400400584813408409951685514241313755478385935212106319547751863391160063736726692219128308950287741733193968129628791235731369832911112536112085499525745573252572815927093576068393294517008352024691433104353694664527842999223415201251904443893615814372086537250541756126197531609239998274072837607814218923740235440764398020576034035406251416658403143347489095595643477188733205128536375652114237657090895598479565698355442825999532281931445707886240151610307269407008985939526655743658688939108596707643593620932400536481650332533656743940976262659790815214582703542375710927308567580622388224196806398691949739310467746768506417255673292152492554471028552708687750933354982156888296893208598139710505682950405427053630097933839090258330770176146698024041371272563466719976895240393099359455454001602037869825134311172696406779124435161767882998597695377908215923626375586973663205618001957529133851620501349712906738688213809915121688027941889638631998722422928377087428451586316613742067219663056152180815930230772734750779639560074511872239966268785026256210772309699675069584467557990959364432178433888474931210233308980408218311495205809086457985359768566777051288223058679264708427852642647702354815994259274402120269144867797226398295406345856593399678232997104324497130530517805429754453447689828000743430923408776161658517559903355730315595200531349700492952210251491450532368712960984763446694183852679262766552380107645160011220170084296809499825104532217391763229538151060268333148371571971100149636878142025618333373328564987896046302191512924693516144679758965899267207852073797778286572063038996279586561984315141368552969285875247039642130133471489155523379619393615976870558774861595375291833662629209740539611804012689203942386444946952796978862331564153231039678951410917591105114901780856999583238719590481234685665270103328205499267735362051368895432483188888200345443212434090559889592183951101042395651087709023161682744944599387865391143619177700148865664266625103752257235426551242176612367480083425457820440173093210556393469392476952366870176048114572822797058650332319183360011333413753292612228182601730053076579416407527342334740423871117587946306161185089668209369274242814369224705693226781854302868119177687393205265894081632818410957894829449182725493687957678267541550906304323285440820566851089399090157607786062436932398747885088164085717264350002122697645220412109538314207917777642569012290277603946436553403001779646604067975571574643758176035993182385822202016755639006727724965910112929379949592316296985908344070663694063423406719573356095333069633289193909190466461252094740676288753003662736687509840223760257348418099006530382538266813671640718483401387562679057333063525889549359944608707762079963039844230046429300370334015019360454693762140068849143262124069756708402847320804645794774506130909218732336416548754095802159672715926730193113705685598203990168515955904081919582165600739643130059424151120500282852039424826422375596495804507781457199389571012666876789556250844324188614884916778120199107911781724786381758141247068359540996065400359418659106656346730970679102469838681129604273658514607218932231716803188760617791636328858492053943595779213849154162993057027012915311795324189524042209244161400664857311984647642875995579302862082595758893362087852544138888147634335559122217331473600066148231080986570181979741305158861399629741639162813415182984158684527115929790027891300096618522470463414482379697272514834052964758085174389500511450244017074166923023986768077392196556253783097421167367994033924306278660427507296227429127898008398859970557076005988014229538952637532609761831088884550259836617234666254447636984944766479857202943264192647803686662502057395958974971608860365157953199648637292190722565531159826614702739145806319594422569062097543759336595283898121776000970139051795810920023076008823431471413430400267078793708687840476526554137644118310350944602054483875763750573487154399465257170592869562903380568499653891328625359463748127083984306817873304157136291210127786997509482381340862412115302211050921157473843004067633251773389837649930978143447600469686032707711742508454934098653433479068809155129503814925443464387515382567068814723424886554710104899502968322599897772796583571977001200419229542840087311829359262943828457223178756958584212518147470811947425435578887233655270826426013954832357135627128947147919249984174118820361023070666828650176613276681244330300345820151534510302080150799297695555020392816472899435631369385731721619990982977031281243041040228756234534850704105175623611219665454248885048801309610386992893058201120964321831277560672187769978709811286319936311206402920725475677509588758658022777228154766046362039696745895466299480046367963991234742207435953122533680764329422200156416995430837618786516350358108063770585860871969127907013133968718475339503076789491153413304984858880995361157444272611514114515739441550997179314963445522922645295709213371263664510436555861610297148275636664911053617137324792998929768496283531698677449944899643289270275816080664837119908849907644654549727759562096508696892249187662905688467657508168752325320180122962637206075082727409090595851323131652866837361635952697254688941315189136612531539809945034316146143898938888228903333113166601904624213798130395450399117833886858709023443164900869132293011846003280862079700601004765455081357599185830595058641819564499342537865037542244762859070555102836227958242729575741082872550483756253075023668146620577917177135598155406534417766088676330553387990914744914143801540795301890481080964939232710547709811830747906884276828563529405188698310639939755885613172123981707860130566076471687851039916340130808807260157266977105073014758492236926524067179085458117132666720159226577779458846626675604928452913024801294577084844555937598723357480940687492850177831615730227108649457546710703074608861530757449951214504433979516345609350318054304639034925558224341213645271548380017186645729074553901146037883621350796591243886394680574342646291516723450739866180052560291014371732459900739867552844717502039184613931660825015269918957784016656682843045154484327916603609128702039186929555233671375465442768758273792725217195359137471403528520113966748110543514368488961305209743634491970483569143021086797209409062893509131255342144262955746278941191871985831832189060193186745545080785391813900865504200803810594472870667373811901000560930604921625729114793915123373732911548111013781012645495872945780887163131381193634556727159802189947817259392605003192479926472385202021507340009304601290147370428275029595236051084164093123382425726248644662214474210669877616518627866833683952486610528778912166540825091879726128855163277135378077289139090688739552494684355731981822106567992984108649945985282780015344446926391218797236267149548527348751926615403464802646130308785359130938105011434149089470527757923365897377092353291354301811219060842199942865183323681911194479421956562737739789445287323932059850016973236527729355703880402659937574438454912456405354107186633542938081104183401447413492215296770976212760219082367544878118715262708071272331501797550143304946342715379951729698696480588154476917960266571814533776627420417526113105294998225952357449982965350280059270491397643538695959879859135847467625329688686082675976409796781006501177759791209935987185075419421275608556261274309875946164478906439417173050680078667243874310316411693986632744958827188756749300047049239644530107043614970563577929380989308387531088056983887211331448426504313093074622385522851571785812676087337903200829165701739304750721374696596823666874966946333807309656083012100205116325140929775654178335070500119390135607796006682454560802167762205368177878822898102697299061106916385681656644232064356012764580405751955539232199463533526160557638720648797678517566630902690223515165853372038367734312362359778014620827950763301881913046125112129957186706726162245097821643289220794893648466470096050582346124877888620635574309602782636155137064919979430725659276176510309718647920878884997162121052298968188528057644211713520475000419771031352627340416332615929051108463418527473383717443356436297706820060301004659457791086577713978515544765127886564379593573436674431837793345116300475656638572410194627468295706682282751622268932740538464863863343382056819974989433119592852056699259849242641823475471580641229429432396953865488719889298221009642068670783148811982235339670505806397846070800736935713515361525978413614862929017607676359506504181680137624051397772458723988549931971140578893427812852187569872656854454309845497097591742029157898402124003442398444235715528695777509923735250832644266436542493246296650873488302218064024245922831402668620859035045957784993746114901808639997689814548608411499898511773001703838127127406757400393560332715762170159265095551659538824889828729942156609601254571226350160696740911157141923640475488451017422011008423176091598427859700400874642142059183800296286698266070607085188435299351445614205487085134041656758297148345018987386167901182806030411601489482356461509228778117828472200551041766836601648342749928293418083355991000798368798840360335809191848723791448577847634723162758755267337939185901004587716743365361263130868073879083125568956845993397523496740623752939805673138277194612074337145695913658925365448165486839988290297270857409135500600971938814322879301615402471024586193551576804936546061012857787223768982565206959623923033204113750672230577928363236904631053545365114219304788180451072561317313207019771113740794677224442847493782652306997037077975529285149264387895867140581904275229539726953458960175677157655256785724347240579130045696887872654928861722412744856091360981173640598341306031078755082260070072991805938691084017382138681364342133684273278306439950638247001631968959686601824733836804058755645789382383297498211343153684025857931896473496608590980044335579405288329183678802048071379234092195384951796002426088277103035052895121242213301142135060926272396918625234395160971132565918883359439631456302603769860604844528859453234897880541760012173075265090203975109431894355078956559284246468703935649542541950620244236124741309886316899350435269930982394495313242165690076028999265397306275867981841068545922284278915462886486017269172976111475745570935367587379937347830317498561989056161795032745120701231070164294333628434240794983564373594705750620256846133138027738763959656182026323674534645256380320095014863372843285225492532933814062700410256089723048013258641852096602966410082402332057137801969376563227736873838620910279112132960933172174162855046690404633912359646693325232957704892961227995715141890561016068008202859431732751911662586769834801209657635435334499216560182388184839305014051677243197711554736809750362654245465599619575911371482314389896045576111246996011083295790727318625540298823654820168354028936411371584019446129349785918378657160352708503261499886058401890064358863422190712880451183630253106207700073950085132364922908672085981357433635943730865863741817347664935184020887382312930635708421709765175863062891364224312229887827564564620003782062144795063552888439973851782363297024793712428200529609987701364708380352692991040082652792694123338323615538820811448468618759684908219927388174059102998383118628972138614914113726712663622543382565196537059264657419659484071128074047284883029805323532302253702931317900593877769379155340314675175313831244272464334803542186422232182317874741959850830478898498950838454302851835763124227162161232492523211754042918444963325039867901789916040207156918978286703721060747197986610015905222359509961921012359444783147640738443924841745072818195562333054770630397821406711063507615661368152577875378217711344688555721672305422810529297930383375706553478555844050529153869700149938033590018557755295273810276898355584659657634179083684989678893935073805322244814107652487444858706808574236904298912331364396871659401418385526463657979245877082450753625521829081097355329852268922771290501605333846727107282684587690154277029992015348017394798369392031200734553494046666428220247118883236178399421627708785409550859518052748134953355260396309256255622336754072961840459438150221504769003373498926430903478377991864874337982833510895989719761031421163196622005633133926113402005026678907232716008005762132776348263721374059571820942997358561059835253600684043387622563829858487184988697191629116694802008962481562261339040108543353758677694027162381574569997341505745354060482480254331959348924575709970854656785114224930981526354121085563366026129705469410062660065553114484844758989452151783280050243432931856119082311220287003464621562033254513449447265904895678791758193741749972439086513834982716011650802203261370382466015004277335873746934338513354009631841289270312920921181050381242878484621182597331993161570149194506975157857868000380038965237112389576158875032802518006983534213641058088947476494491260165055171539936637574033258605118816326609324204782912090089927445217020921671443937132689708320885229817056893182260031957909883042826072624593669907871449028032863445638925090815199333623366761927339606665565321895605343820483155227668432163025558590375422110882890933902701060302255757510355777321728271468929178589447946608615027737614202397185292951361344394447135142404851231419800815591965786310800866304067727933056410682122844377860378629109380724114967443994029049285681156941060265149890682448325287976799217658135409899987330885505221832173413188556056565432083656589662280549180512152458582277499882299857370536621156290731553197871075272333450992469382195901653612145555531349425445063548930518786964840974510289614170401511246706840810361066092104282843481042837629166216035870908501468479303193949839528326440591605458268032094131244281726875724262147188754234550953580486201083017475001515144138324567140211513161192048630260794063205627941401891690481912198310452910889794641317388177098587637406501313900061624116691841110143200190160927033164434403568953975047077598623931722943703580711418298029013259489787510050959773906686415312845835164847875226584036587581746745164141179970669174471766538909995616495368715207404591708856983303257267720970831391107486921844946888919454953996777323190882288399063165182849105687820773183299852413608698058221867153530198399312929531932683236057449532113503176849591287024754969671818053394181494162921113340148002938871204224876058471482343935736664797827022911141729456039030261951738729337800202583925831370281877358103480755483667465864943881534384198963169793752653062728099616597468463434968114039387329452610567354766973474164646151461408275708817533064527903361559006567468609351500707572670813652858016398539534417540848124201558603011879217393498911173100125061154222442200012590823489755769753602485882652590406745359027045582436896066668847159381078302757747925855589027963291478906904694388516563937061824459373261951486015281064094283530124030423164258226796808829364421484619123572974132239414659260426853441438084327709203302290393613514724555241037736558813481352417280944300079060555963609154525009114846556526251707857102109092821287399151320883400961130213729816442817328486734987580126797071216267568638436866321974502108280727909729321978702246900476762293844893538471587931092669008745194827231221640793569246328715274064839339079199781430103965602070975550123154060316772446992603447800031100026949320944485225315551315318308433890993388406333239510387279256046420638389329257103512577173134517326121966561850239305895431657719307875985531444980461480905072438536049620512756914012783847056337874385900218346438447266062183629208741121892994375591790912203831067473721536928122341297727875583623554212962719236418875148902032607449711519098587102328969055226655496431990771468100515873094398665766861015759843563627987217956409944026560691391176609349080212497828249686900473890909443937796463458308578774127204994561182000313637395926270639720271506676700618622611685581436156547130966514341892801206517055889178716167568877364830590834189411961905316777147029286307196041395472092565497443538476247843286251643449986728218287337092767149852015785070517274144765137271069184684194534122575418734506228182428750456806577869553006188241416433844164454957422675975202166262124512407028953260277915569048914011942304873455373939103828696355907769428979994206870323897705101924297900040905586558275589896526241301682905835057575828338320327722874760992497532656344664194391719095404448378645356010195655113775386094106533503402199182674278999163219950718821478287186556954210826997794112817793813061139730858683048819384782720492688458927329447896575858037644454152679487109795211193887917231674615424023215991502115919643710314934256820068275699302014319504032627748347769497441625985598246399888104492359522523471595254310009432211551976823654674246534258126581597892206109368464881610975045806734078209366042325965918640747498510072023495017616537246085661624012709749315726447588495484663367035868065832206529625518684618250189560876408818228435550924777792302411677680535097518263398308981169355316633676745860835949069019936475083606870736144481252301545733281834265590690416404898738522622679228507574878188198462745348294474816980607388852182477190281424602469750750614094316056017728771716617590096434717625819008548543871524721842727319345651707886678177837875685264739683647873790606866206257559544197806526983624766562662832219335232430412351399730633321087202447544580555593001968838000023890517725621462688508733606130836128268669463377611509548923899528244282700164024551368794857619521485022178947289051881303286578917082487280854409559947218950434307356183865332906467472121726448116295328068849878912420623703707286658535458497845574995462980935961045739574803031019718906171141412163283171757809429887833179849654516046587724736589074981466967486589806584024508245908230521922639963184373915699995607628049141674362770652327496153013588326630302785641349306923445550593721505212972087268211432752242566847358403304356246012579991307763464447453096542048785830031679611618010370409154468322452196197600224439464499725409915517391145984555004288245388574422908624722116167982486708626959875145080824748811762650383472955396042170363706434271352515879260056052552200702722098031790073653693849165674133384083805456464915295028478441410189476034552755178863942109430886471695128286621998591426374625843512534353601876565991534118715434935840680364552410017499339684210511264313957916531698883062062600858394611464455273546084558986705356378505065753430971435079219835442611722283975428084464610493555057423088350627865364240266537845616053475770284376572483179925273304285380602942731784154669244320763751273573953774231357373361025457756851690997440327847583022303053728453484625122573384346554252622044515108017744017002218245024068230843643930099785791723093014978355819666437806582469376243509539344591447835418629080295921582783720951822640835978878818450838632718313268495017341256313268221917186750060189189560534352782356523422019936147770907476171184726113591306521254676471860033794337740849071150911107139207626779876399847824403861430978492696989752819968125099112197936461358282287629153120695021623951815537376274456412739962000525042878569306099714213948215810614761768528228446799416403730659990163743522729903047209587620114770904839136418664662963294256748700363515171469661687414465244288343727904170527671140405627726672028176907537960780317930280057610740999392055832366389369556331484655001989663669862088332102700381409274190528294450885328538167183632037425869975943894524506445919213610788267313882714573824626495074835032604734761909216924477902293428740466107226286219464449783757468278177704108705033853427429142311733090218605975360832776173971548051833217357170213480022268009756134954439426416080319953921422133895626590837748266471984290365638292043491388614849222422566133057947668955558681570266391392146931471408953252751468799599447805916413991407366146483052596375430767964266474644440374995890477025546141955497867456073020517374326185579410925516461873804694653606424143342281430190782548272938190659697902045349599548056248472455793158950304928486256884800392814598718898636703508138608364351300864729087738080516779862079373036657555744864351538370724172264434250921041238394841110310658850796172519750063882054871802000851819907655685040445785532660823959997327739116050859697744714680726103487360187359918568711062837717234209342298025233874734699699195578523737856224803799570831306747305900175716924676459138660183211877684448234344378193963403566501654838803960727278593632639194643357733376812706123869109772204477186883844354532742874057772313886692793813695781165343469523245270343728203854443212231767258331734978601379074092195785237500431476321310043683778822708137056177031066305998575676077825135667210776062043935192642870662287472808812025707698962985761157938608048494788999271555707213168233248667617662938073116105102676858732486895490737136887505547293045008375974823067624707470646658261053748735878512856495689007537004386598988575696945810899503534330895548699454517059619816335986986827754476498514727490432031862940722637698925341586196239019413781849250591576944318403989322878394297912828191604846049372110017341934946036793691456189268964717917769046635881761030797944957101770997383434330156344924501287133420595995067720921206442920376967560508158149685419665606762743776114601902221094157265460614969522513296329107180757404013202325653871605326545186683685276229592806090203092965915989481208221593932338081542971569039282658699040923819876155503321143518455217860841043761905038310447854958961093760360281646797235754695657002842218335913806286232568683634169824531180860440592571638573387959992319188775255346872499943200463922451932784397832171423077485080137110542371711242465627869487098988525655078614827237623694164811984300695758363143515074249300434409614291062770830903602154468275214186224217533600608867007727209274670737053557968810748255885619287420760380093370263965212028763797869525769049359105794274390839038696854504764735142314392346305376163562003386673611158543714842744361053505963859184072784699683832572715318729558039314650872785931646422500398701166385583104131071132720061266899327681281432963232357607814623369471704417778151512450236071054171129925251977389956968767325918819013579658155986346604162130858322426068722989631639499654757441484802203981738176356796720244964606770298100552217865936224534052975207161451087631984053936083371021756999304996202732438335121175318887996906357446134862212616391054305580775116071534833950478626619233978878645140476238644154711515944779122295323324723691054288192635714577064474097179394224028669950118367045534216604777204574467883542799069586519548083243659575114535607676276924172772417794426138326421822048551834946929261813180722902184874598605272092530156646808612123494450300371650349165393062747460547372024362711067454556436546526436531321592063054942405846689827745576315650680334879273571937936470035026115005111599383305148188247292461293504454148214649613276388336436341151221535284706569321363907564321119650677796855021456775707974272177331681158973628961722936784211863737537017806391882496011654699469342182098301498194233775779214707527542285571375352209424531720095521133321117537583253745266278631297809195552530955206729361958402827928082779336370817345883651199331568696541307780714027465525342048190141438368107193397757875460589881556836142166630478022511616839003181508275355158835337278358295982406399034464464496563174020057958343524896770751424479488654666079635113031878854457930528571325391555599677357253899002345702106553172911271432479448602584402219132449803714511604153513288619733057938475069219085287464329692815480679954011654723457599693952812220565432169700632294725846977621562036034909101284220712390386551930072337061260059098301640867616847235666441071030953864065532432642034559073852800475565626453696625853208557386274392634431594553990661281807956373969675386004764313505804872804366171617451999963249994686411416748985180603502554145385004393060369447674883511448356467806580717900109355136723430556601895875878252890169012102851729899537567407293804973019598312209928135381692479777966302592602235955119095369029125942206028967248528922068834811643529845557622240407130624259072591973655739560226858705858028377072717915110184207940830503887762308358807210656406362227331781889508306588734913239690875146604835365348584751745223611424444937811311232260490869095062438609045060532270850812527147018463255973532328708511774693091543394888929939387987841989350562123275906185893105350939375545935297052574859714814371493387838606777458401353198363956331226786725179715639758241593646785470083144762790897172000503532191542181739526646762267921522893198672856593647157737075526953262996746150248648689252103198619411405847278796905451373821088268814918667137229918702944578162438927687637729910547085556889082203369695616924296146753937331870733391407488624975237759817506508983877901935678810983562989505201207376910874451044610217752390639135186008610619238197881470370982426935579158845659893119853131669747101111634579618377981633111566886975689357809471502770511200773453120081112536037586456411862541237045234879552418291802896318113085495000665048339372689855003190511590006278563493992354459633457130471970807966203340429115110440759003269200127344552584561670959024872281037928917617490151925533804635155370223173085472192514930934382837877334886614975297517610255494913338820852181279200261181761591458851226055945407517053996190490839113843547283307505909114116088677036686005316707751298618771165537028840864592362208621008076682743702913656144585201430664453055682805567967510970971992535735421217345422433562835345586540739915007757845787918129501467912239491128183563989848855872200203798249671379757243244236810832231122588682982806131219181945399160379650777587280467760658758368718478396104213187106516790888029741022301397256592065689830720932930474885771797061002721266154633026186312993886483009199824659894733927130163971480806396479815351436062157520334777937371939515331281642722807062088285995488003551406919105571793228481776590089238868033566761560670708504862934224084833334460576843328429307234676037922304763177334974135107750750979734318968550358631578150254524746823616696442741419012688069442009468668718212309067415959365979586609365902097253254123147411607033487827581864271042603143584440752220451500209763420119979487810657728144493388600138763808956689453448558382609074983280796497601630004275388768993448089415007783862322710129335876844629353090759105374473777816031416583907702820064828730375940357825401458920911423663755644943382063802054775612575623157943016962812616699206222874636640326288522765405784819122932372343338282984994227889529192296695182087308107308513070966751936678989164141870256654751209459504426622080173253049948233007925767360021778293122167538719671001138888099188233409848171829713880024930205784692852656375267539718232413469890487874562211005895732483944787230002566113768460432728467632549573225852643108167259998439128289906010893960309178818262817480686280625507400686274093135463547500036911418095006741552474712472683679494438311788355312043659019268746813206769547902777147598125447864159351117074494157784499595672400046592361388782456986836966061762109987956894762672973652745165235948258002376762327560692470207659997254141951997392492400058426140882751658486646741634662370105126755381467779641460544599649147049316444031967216835197269310171510241604667456521075511707922845999059814767113714857819588298703690851546898893670004202923301285715606351019027121795267038235039189157701626400541208399849804904952788295201071227607874372988782138705577617464863112939895726150633427723189735613012845142472839063987474380189362893735479136904700564209342356342261220089602380787705607326912243775715101086272377264589962319806609668469514431219309309849391617956590099033369214244677609241236566605585522140718198552195277483597653640353698202629398306721454478288533530504528987189911986888343011154006363015951741967496276820407017345286499666968444933871927552937870943687621529733742193331600549135572787404785636262543842389761948239961459376912538783784633219676954179177306228924498554990352706833540878893404395127023080254922850679434434894211735394933187529975436776002397145728873470064705820201072271254315937204368196051261871804534702791559129953725135851973822018895888440652093813224339960339737789063282794469817360991525224906551155289438897898255821213175481146043843859994179601111901075333697515154348207496556246529705101584978151113949602971287643611700567391155493857392431149453300777467447348522515182121747258804393343828642518277964622108070012435250600286243656520493593801789226838348767684120751240112481749498831445398328649686928323630710577305525518371110781960181876032467653431511459230622296008606018905167370556403506873943638645687447940336911254943143385222404850838780560413283739032852631746836823984041438311863085776515916624872212027457236979412714578903032813155808359786411589717130209637514695457078913923110314547070243105116358211210951700353558790277135492250444039291434581393944552511274069148394491345717282582151191255806990172866445710252509834325414535675222658156411562073334555203532356736708378747615126913869059333819972621840510891252035545011350981782897530876252828299401987116258776181140903054699122712466589160499654496263193394070233915397891290293345425727575994814504365414638096440114749905559147527562308864708108851369897261745805014963764119052281086900571792567482020348107429221841969618292083950935956368331064676285819862223965701128641053014369204113205273950037506843710751201463759545938139993997489654358679350098892641695929240242186568515332202265074085354700037936114316695370605904325957019490917142862904819981083536717813216391472816143685582057342077506753969476787302572268629312018435442984268295865626323043543449788996590732039425895402888373090783884463042697631872435305731340130326790897147835890718750477143173189275873905169997728926654178939330476664143594122147690766557684004805011931212063167679797149947634412555369377337994540087305898397767392021983240418688671707616280948636388596896302732370116029721678025188048921474190215242461114773135270182803215648926420472700489161081826317084057523131151087809917668205141978379287404519795287516644079917961067162317461614739589026233712527356762228287876945680005060036876138218538866821117662949466524162218817287043337541001482608102898575871987195505234969428940847997192387822714410124716095229628876928426180387738163898478952534012979150178657666711917423020510736457289496763177043111355493569242702920224721131174563142546128167856671446849446296555752832285459330873999067773016447525178473850296788471920371892875568984817797255875823179625910221905052157229881878667681685464957753484604906886186175512097785631001073675066472480986440867851027510190510357505691643932248716138958936709651317495281813520305997959885311461460606225775903056939769104314171441445254823938057378370714681027209216083213238934067209682767744428999909503578051827920768055336350190239023850349412337503825907411942142983136968254909429921500467637094990394419028758092199211505884232547104961409493424752776175731468962408587097029228493706446121357859396153823724580106152234876163706449628611045297340960551220969024184695150312207648878125570443086031338944835149048617392912345545405698880250947307459158842957657543153125126324330269197106160825975344894937063725975911736090732802221748501178220657754330478454792553223116525488074803622199201565694055960419848732071474101341587232648135521230513077066612510170328601512471564670089819104223345534718318600302753837737208050484824699599982767174907384731389519891892590749150314254492057326719211581180662979715071029980307359657887399613287915314491459987469211544285372838396822022340649830098975519172314397749496877777387624706125004863328389473924667458806079145428010237510054201294077054737769462327180773445182617716035335476520663983658583929583168656828684127131567265746727655836767882806081955214785699398458616011622796487597647965418226202350146442510546519474458413032164819030873858958028577407912977553915867952604376643371608961037177086683709463494522700167185960964880355351716276325610286082375303517140492751551645576888774257129417599364956491029101319419546770248089803126821927352948178676414983618994203470070267596334239223088952124101490863592039501653241133332107215620717208138354602111594767370101076913926426327562832624668944332149016455444665021911093867042306979236975377849650523507402721473244696593508836924144334891549267276831749364581118140429690850334314417719202416929087255356764666518474359443371340614793107074820350486411228053317604120140342120387273378612168176862103100738619119813990885317901346073464954372223011775946965589532390905895309447055851476587275851091605563466612681929623448125800934891179003768283564582434524151523929300757341525532971239757406724235338476787401805593094110348595565275274486482547075838716726086840935566037308477930485466505023798799118456358081858933894324502432996664627163349402519973685191613757143051037920487789176474260539294351602250689144785949799463801705188873283515765362972277477556659435041705136474092586127577376532760931762563051824231627191001815125989669243347933905011628750001898606247515252562546447470244637126814459652071158832646271388154698070959595865055016819128741189192302092666083129082507599341524030635943550176225661694450372807668520672646811228499292643630552652670107719987145949922986835435247868708920968891723579254376994384310752218214128452600993276391073783010044552161300283740501389402498703872626004018154409892016701672863797346696172296790783297030679442959174850070508442859661307808587828433652467822597134528442685467413592266939183597587935492854105326945779098024668274341023493480317991071951236800922043983787450914347337758655011401039578510278117971203006181028587694367842138277312614082595971151804307625177442052482981749524349654790509082852930702242199752124492808481188256656572972879179304170705555818670116043195533167635388198126454652415625344799534869581790892245507326644354176287710581018137106383285574261746555968830728010770246370532143907731123179577121170274884728665598856242823059543958963542273866250368142265169736129697930951233864712694349423357443202781843122589944334172965053775753614368973332471731685079523442534545042391682982891566150157471796474573748346552217648515830549633237232555059793679447159581925919535098186531293971797365243032947751642854708597311047213595965942928179188321472619134268251375452009842716394787958385621738294872711927287332938448940615362993724851519124298354926112168398143876169280983655082169316309155583398660156953260092790226417535156002539798972461003025469790043660665166906955009682917874785635920266440757508047633237283399060581655837106940805778695802844718316677026603903776452682421866502086876446082102827791350173512979610904121632811621464558877840706602066252486277154030043330591474062903299329929058671281136877982403019480296757224751436180064466940747353974150851546104394925698615563255414112241327689682495020681936664213158907618012801950918102731844264372612251369776337972162238396499738646865249486997000816730995909510573593545842634190800978256321420107581549312741878925600943901885548975099405708684878916900300287552824621060392371522454037752842695302155350425361369780069827901724671028254666592352410094225756718013977376955405603691253216641091214379866264584350135554289266382223671537896877940727855598219070700418926906249746720339305226765710154003364228846536831624634851383397157304785467982416776314961117614955206687108235573501806364763036704817960822148134197378824741903167876190104227691466672419230401601036075875047700726662351121294036461721004370912759710472711608163755740488366265961584198855911103651230196093774856546605521661990862292760597116729660634444483178772856608730180550660266794591753513451958500991164943746625612881062480849771268908568034661875725767587562391236468777122552859689345460444779267718166709057783453412980409309417684938640572014704703013232314385111266833657842609833413958985637597882893205707846682703080986599062783956713272752339134364429638460715028164940476245625229710234883442864089515728124217144356420449196020851010976609382589911648195984601750843038288755618012142010623218972753141410314322243338455409639077805136472268223649417797563558772426068020426054569360864388034277729315375785120451700855760664776609233689303539412223174032660567857094794960568809146565903053582153345631735915272641854970988659307763151531205388712079788032974968283686667988489085459845201390535076679716764775618882506605304468029801977011546807980565247157599800089860268000465373579052767114121283896953932720169734385259294922457448956811590382977011475058285564731435108275130444715115583764797251817604341033656604214844348043872110252164110926348237425541441599432991492005435761669369826665144965779392970140296280701297854020136591439310856972252491523667127109488301636621351855045115986442155023644199646956581240884363819084102867566296113442447387234648831924010691972043735234132594298203703356109654961967905868440353064509117340964114287893203001146854217719832912629111340673927085125297076835513939262613199348641287776232593441182607923160000804322121798734885743097703586253069658434111817616228332593752936543374587907568129084564358218461686503757835469901828270572746227389934308089403496870131835027346115311227056620260550025204328773588158566134927095917340076332584825157279442401871600098291821012213890087680155988897765658604972086314565085164461208657261596524568482267229034482110220102253157256325113274570219079472654333449908210401389378767015935774136147134635654784226262936566282477064572638795599795947042498317060236852741627930411328446947466868281602584799674036828251634010299280921976481451471071368825623413896722789348967302486431089083957900890979390115954013649474801594056772246096479099139117849383678406352517630470172027157375455469963034552387777203904493220307962145947708351620958124060446754065979180762777351382074466771815187825571000968018866778701795746769939506804654929382236131941341362253401557564427204245028240782800896192277129918773590497982831096025824567727161051536144166809863244300732218469646489220180489386997795459293195102749947234978085450476566043664149014903496054914670748376904389692090921898350082923360659407725548294264137486135093127026876090956693626544050869951169058327409923168337530486357074289549175620685870289045240242163696854699344940585561396014464447568996537629574480097869609986339240574308907654725274098239952306566003985196645408129826288806617088459969455415761762759637306422515845706488517860225197930219022512695351399986623433188179094069171080111819447138778269274388461992904701252679421946723938457213197050846264975039989402458497869270729132581867300587072143732089541557304807044849687657817836621746674346731614894530407826564988240735413143931262950919000961367304105071582402353410117970492528228763295703158729567998810319230355392111904258167722093679384049708578334610401380487214455225026316724743366450105798493976267366437497193374929557238695616961557851897344018345617211384717374034468205610737948905489065276791362174586492513896085035995977509417156694309334976657971756065828770002376232350678772365360121542077673487362417950386418468434365895544677171810378577282682518331810981478817399070293456611066065767703236558712528576236284725135907641388209967952441453835844221854996743013947563209121819785878395710093070837220149078797373741681747724991905068160769722389176860030185740277177106121695648464667983477308472126577321983947109387518927304486180144072496383663411132332451908614494458658241322555094053261312480498163856018986180430618984739298809734779888788626085645978123504628295712037903060373049307722475775781149162787714325505283456891861792444456397814279417477829130379589755311843634449667120689690169979723511842636199036142404160349275682005199875631203254238480706257111663743185836347411694884519583021077075072534344936408550297496879392152377608081689009055759385625278507996082593952732406120571348720918641002737020490780566214461463924809548275022883914367589452330602089343756980458105548213577853173923476114292211365058663718054166479284640193968313996286489169745645576131695088779649810685524988379334598260399965340340550706970221959599350761806098894992057177183481116164016038707959845638576492833805778197010975369809268181898776547391614546797578436201221649889724841400290309218049499622325889926987723096746978331831280177398713726657456910525108740070736902797452898507896100128016708772195831618461803668967110758475345712784775296349907690388375107322893440556934037658195495274093420086888713215030256772379927876254234534559784258117300648280300212506404306061588568837345825044717041970355201522657713480793820808773240195118100444118283705727438090124549854348410619978553167521497391034416369332330264089661978880848845466790824528001827383133266676864391053550212093495313471276827329619137595171462634434131457716563424258274584509186754988877219893565301008926273411271713002092821727001127375924133807741224336434618394921489968218620412968803540756191185598774713187663262165203315077567276483480862320951936134448418759494151336794889334120264620491453762159819853292291459002218165201417803730733120916456646302069315000492529888414743022645951076023344552930094448759710478248917520878701104172935454813390609140577035698380108258485141707239546720946888385583112253728795789800859131233763288272933167962921346189936231917895881322248406250996399437348311370583471678431676059608293450988736767770679105731082690412221538640530499057439511416974509074177398997983423483599253600397394271895937233625716179274323237728254801454721729117537662013122747742048041794195466020790435574011205619380219045951796992960055253925148707532056625299937041045843146246545519341468936210374229230196788884391373082705107951361881067809848427002198839889722742647234293148282057953663081324536510887095548831002715354679240608115435669377410468357800171996542083963227355372563626529536527609138887149627329622532304920265366383123434312137753974814801605847245986436146773061148386348848413102546665600076823201690935594791769796621658178718899854037453621181902506375693977658899326533124923278447363850993039030344240489977803758313650431792490750463288230374610706424878007242497635865344150730796561027652002402316470438470471206788730958128556206399298801741957918438981617658658745209534794062020299873671278328847799017514871149713778791413765018668771188192949524278476574726284618701644657788067347128650203358935086750060551988815770319362585369103669694787126585062263767515894543131063188221614817231586702502168370631403269035026573479958056094344513707485486998622912554435779885058382951541780608915069122065007581612536017697119515056812538656623620916135588374307803045460459725814098955805225608176103010210033585597581234381777821618009665441910802806135206248679256539588191136111716058822040845729300620254622633631719144401871018164898593335649828910334405514610675872058506121937331739759631581220051181513451990155673814827817311147076621005809579939675928880075302311768897292465952755883652995288347277852428228058853161671109164440539373453055518753351246538032576397128506733816134651585349543325435718267496658804804037722433583788636468716812983368873879539490495561169709073332741437834930968836060565678824838824719369600565088726841928287775923514070639639608330927186476656401805396577880747165596907919080024389766260656315693820477879075467080712150371083416590277616963542518648306461317061581271531085713756406869466090744522992789305763039485975680483235718888870388276874047104784267892563506038494091806140627742911535995669337918727130199447472126128172944094797019193817113398450565807375184450350982229085929669785482097147444343384825705579650690604710599374487904049342860092858450082469177984646513043014463515702596426368850427552669954859285736062008343060281506789330589283607169415753426436886605986245121162215447151574487550707959631021496885020305511033332209872349122707039557287094304836222262195672454907204662164033323711411720793439340082325241330284607010566893307155719898101195509916800139653413346430443953244890153613224241133986423460712306484655841257150604096269325205226785824418544957809972359765828871207603411111556543595144906378159865901509017526451414488276986776297441498879618132117249565864508610467322195046500260038973979584038273264126539407780961402883665207233304098884760136816174428615247232960424537546145957020859489145707147158390572830236712353773028882198847442390756134659654219257810566357638128844176531963822532413400172634288302031668642941333484810234645780464918166866976250942962113469299195730126161065561324960809193099186914562148156917549613352890772229375481827782621157982846177099828915655455079606848232649350918010685617719636947722192360082703258247433756546237740528028132754653660899605810458833509263882360349913894748593182996929729555871598224024131794952305604431331721002517508033384635313921148925455754116876462957610458678345427026554850374735569675999190623925860954934355338541587449215979931625508075359833395314129684769228638970098325832707075755568289403056474009123619736868818774983873310864935776507937121396071486325114633534846487836627359708938189321631280935000399251108978495878311278647867280128337266406594114581033160429001717133051899678337621744435106259840520567364986947018131976665141797805497650609885461570383038016833080913738085805259170701281678074144359893015067224725027885746525902774258390339413595683052507009937646219203873138697931857966126857020736359694523238357639681938171496161055108827690338012445397658636701285224292421188199421206381588523935249001675843350472919380027999332784374184350405272302766073407914914046371050212666495591725754001117361974891174709156045034725733032800793814843826812514474549843345618536769803902681195322168805863519069270362426773560045618470908953716376644480968547094273749644751850507358401224938956679253912068733089482708783028646941206166483127227216344330058998225443199390924400579645970346936018666217121470657420069641302729091429797816589558260155051880107606323206711116590741246233836344666324086713400166084618297570949610012618337055553385625622968388244965289968309197620822284036382778078936966383701189567252591746686434261372114817304642801080893748222705332032721424003549697486457254795851129289087583874863466420746758185921616157430910724524777570293560266696647907597805467619016660323353919887117313309540892770168041873016631163910032356209094269347064311199620764802911993792837777693078544025297465660065696660693638564638396600563268786434514856054308117898385067793892411702813804365408334140385638879202338974211897717626698923414465056176424987771024371556232623549796796752415058795373838526451022980380626445019086450073694959221783516106992513711550791333846438218608731126623217551937005282258139204999795641678842682271895085109204819668444759529981226402317149032990638625088088938792903055605044344826765453599624357007148000437081438726433537669745291742709252081350508118807441822941730299198250630432439046386549566031844275168415407330615691954982151066557562320718106490761997433004643253970185841480497909066119177360061314905709809535356158012852582673064739942172704646440955225754717078685014727091858408517741477971930503483130500786407033809548404725325739390845228394716681570734305724621036636809569280704237909258606187034128097698853632125858638396535603161971917760535619403474665698988990664133415177322993908482452229158393272385564738113422928900273083242276575514872449962752327707162960056825574748584076878713303419148478707534829094274581353161878892530695906352191756086147131291906591279309211874096014404656022333391500085737544936334569466289419519980946673202349404329826348481776883368877777527320488382509861121835323697804161862136956317838948940794409956705528123563750539359298140181072241885272531544521503661598111174425416245918612687167638798222406293230390707075681102520747307545083276461525519645415069676304789554607429136583955673509362384431668985051272836185059393365497109251205082313276903568114056926176190423575646552460215888679646865018900956779593952107102820593353088776098445601248802946783201877354222479815165876996307470556226903827260456165360876178992988017250433674181513471061783738336766194040655585852969290982109937134414253500411003475901032288541662912671431626885867582792772532492818321560878170368685814870823262311303644390068978959874389323381384730859614394595193796922989375861226277220015755566129622041629278946071266918229251866625475768156680541960999130587636964498350822528698192805633038613636963604086765434190308675155471531061473173377443994980539676958730592163637627550090607374307032930579228666153549449583256853212427876114663394482179328500306905838982657776478589569131350415913392793675493944463228164440611212149296231867762680523953602482185357930970427728097134645767875343641660555790866386456121181959941573577627921022765456015240482354282693677120044552995099073034474709816815091337438510901998508537357958733430888518563635429690808955175953150177215911103885649536899341820194416647560606096667517929994696580325855074207085608215326772979387384337000681615041770971369054338911432071427520812411254210519342817436915312755492591998995653434198026318403490315159333445098650412901776295109961045215487029284491829592489361203358474048220999692574059072670713981476032197421740670940137297328686731141863037265708143330663820419764342674617055289094677853911943602281955011816141308615158218421044791910133388138956618660136124278644435793519526957544758937794381509059834545314265355563808778870024534090653119740948879164278740118138800551183183264087262478676813117323022739177025236641555682209326831068657925960096577900670509417105782430204925895204835680306309120130753001572478216591083065895817530298654899664336712758111009545333094420082152403085210167087567805514319392455955724134743658016277505618148107615356653491374950802965133313178176024207950524578951704350463783410341319007974392375147345094275147343550352255711075486779244684835880353307493800672592504782559773212884882164580304055482969169219235015018879285562157490334967715288785690942430823684192551961517635079826210491402139403615772207303333922333692332725853379268341634537880497739724768634461515820452674710439691207752129009538339854151549734169158765406589212246852449290372955124361666219020953388921527130544854009116039454336511960202555907746415333128777894128575626826564069682223683278708458383880135556608833327012316964004585447223901133837424780509730135460280950016523297479326742587802514050672633687936982855379570742292963064474082284033110531609301924700950566403905188238385719459204821220384965369044003798284665988421206623692442775478565400090082038557771160877996416967647183964120175118677651663667878238203825400962135957356455433804259605901497382839575020467438787292932049458665331095412944800583273531876780685712022603549282667663875713448165138583813924441675580172182718147007887942715563928875775932511566341860672793711503629832758586302805012858420490687387749757882091916316213740514184502635160163172812047373158407648706470615756998363642023930989692099098748384638646400128413444888674506187740777191309034514132457094399009237048058312594521176901027265864164959643423612693327483390950669032621019680473858088118266227024393218135075460617155250737982327061592835453875449475130844599571184373623341415340154892294108284024084386512587513968714990253149109929002753058341361960025430740509735475606151409833289361335645177291163540200966483503552864198478112257551846318996318787204396426235489642681909650657013822719670340922498524131948084906751650614468127375102462113635345445067867321700819383635336238202909837221070971825416293309258939566252852739256190561736950584477833264393892132865702407058425703273383084093530211150673144165488168827689408236481551527689001849908365348043634723993989045798890962668223792671241232323067547895236540745380743797786252800439268545809366986779888054637014267546964226661978532502817768110417636548664084328427008963340831539028392892809446341041977832192264124320217821888833733057252676173548716061752968581699857800386728886346773969916520503885174733905127416765780666761043424028446637054180498521163278799251636930031432992449628069840894295380626939870126127161384721256867861844673028321917040257303068665419611208929781997684989103820682834656297886979128853077614705208356481974403358862259489746484971846447644719786317287548937881554575945342306480429654950005292372445616564476737830723248520805506900733936914390252805355740663431223962550947456672595063904425490222131762119884399951055552959136732863731652614770540297627987820853269585758782961683778251595175526150484239289603938278980965937944774850234528153069249135354513216768638033973202327453199811749227721723789618272402785666833698764949036492905685505553783061697818326779902244920911805323626676045092424926163459193038587949474371954904675523906110504164465657277339887264136149422357598674192765013697640477102964076345645052860956826790809834587296301075724699620434681583272435164987106668600349198130865947570728318929822397975879785717786982856559452829420803153299991734378685898913301401402083570192731546977595082613865947545581880192615767173688485493088538376771064131102017803735643546655492423620610061080410305099500352184717203513917994124210564060022010792483886169396134853825088826822104720372849306768843778952422434342370925773250074234844390614474198912218766096664873642208778924532734985474073385227532792480321954025526382149091435785083521596722579593167914223724630029375886047609872422665204956521191832174265838610868793839561532632989351375736374935501384370799227105571097196660045684893991655298070088516139346276994367663906242803380713040711426292005839299172275801515593996936046048819338755192570771388955411551082330359090278683500593286416307793161512210391946049290241242813698078012737842222407561463629857555809125507641139640373138990228958939633468370481257247017649372169004512093288176303239069329007151361498249669382471132754759647010203826334639585853573826641498989493948147598949386108787280138261206074271721700802184537171517852752643657108243388097404479035080862090502983826525532289727450052512409870689270366850163815281832803676081959040637726424615535292758873501787427781447287339355651391095448100945130665882429565639834388762903763109320715975537961380599585280300428163238239512918721934821941753262634325747255681559724760959919052858596321719639188224553848381800001570754975826664963668205281472430031817589901856065660882425468836994879081829168075172820839837558244540791012646624631294199775094169125496571290195131174896158129262762121569639770925706711365722270041359313761612617703065757149477298647770747637931543544188365349402499677737883469912886043442372181278527025824614285636071103763784459002285693923911033908630702393741350839745665588259700526773612195731348077490584687372566669682350681792085405938401832142670950648802102120148517713957624949378432556549345839338711713419037711527554925921583508133758988947413910585315950011278658652162366337065789544664415006005639041702344414551118266607989639568101948284269638226263225741774251261199691419037122164398416041671804959982181391548745237283635223699931220065992333335544204579681470190875080995956795590503442115526890908972987089242306093596115242617639347693909761166814386121820368489271861244095314344928984783524005410738796362994084902574577407360940114457699769549716375662338275122517090465950883914710415964569248374827021479667778477011092555512965258903647248935078485030712922390045236972242599661310400347671007545433912960859868073469473432743406665750501082368472864441553978565196488916462703120198461401853308673131422782844933725663563960831747058749088683003171061808606396045457464659581067885878514157837987890529619596145169014121543634547035137652719425889636975585748432986752208382306040079667398162213916591393735455365990555308665121849308965072579304130052044266151230822599958064642702307068274543566370583069287750009722533811966855949269379763069996806409599002292233987567504188306394612773538263308664223029997978359520501547060312727515022077246552783453314408662441031969978186297493710087004843447117884582664556179286156671361785026910205342343391724830436625296475819860248472524197426190397502554722173823295638389577465371938540709151386142082287933293786507186804742346228346707181490669043255267076420851198689214239847916915895656162420390456536040940855793841292248190628759647166593222355049320700492320113658052023689245571500189866022759426208268541888740732291875180020646393388779464432282851007338587538526890322430942644255857065128644551378216985459998739819574389615938683667078005996394097710658105322858527292075837282970648248740428058344316247414629674178746453194829678919535257812857928763971982194150904127227190685717128088453577895199631361410574045931395113417945924219550426967200347776676579571462251658753682364179217018532460025903351595561228354485052422486479992182655636518140039252835542688367920516441302481988593994034591621517929703989803567414083826122773068033341642494699240184326113044483534885936688803213761275340366862870706809638591635871908986405041983382790487378057785046266954947007731349803873954896169228029972897075683181338972969826261338782112786398534599602386542775690593010516797440319179087428728398885998640168994416537377703958570896353543673263482619576001857755591166269030258888470500090170797549727340363664546912739031381136229299219973734003079454194315953114428256484672161475364749506001186650907511585448519179282616046996645597460428800642723630376053709523537416142483681087527004409694928242555410215202059247534619061764731797298691157239847392696076211612292698843551446866021195743725947204843353175626071437155333913008649915700160897554601575151279242399180579245574133185848069675040114824447855579891689860427478281147330681366930798033941852800712994216747760806180010589927455546958145105382856039895519854800719296867898517581624485819422165841689435017601699889959890101957440731611391341507120040004232516334007652197737715394014363275672740972542600587558171685453053592558492241239942213141670726541784300375656453332129839058220856705037834857271090025103690624202581820656844023420628965958774345582676245606741735285931965827833005771985370185575532172933964817302684941583868508757742074623943312658592380697011034511155803359330180179861746363223625340636566535011160864481697138666439438770432066892604656988825198721981418268275896774437251153293843483576830335167487560271864712641044951171110062414518580043560352412993414248716836059370207113883864520616152978158068051382212991053729484888244780553531332709649760585393724110498564679329741173809558609596743755073943668504456120338414654127975213776116942433071640259918528819770205623349822683138062673576136941348713075195734423873693086051731400675544272697604227696340635888446236913505507334610107729905185189592708891045341330931598928654513395384889750816932334084456310190735188727671535879845746077254657507424060779609280322817319320401922335945105043974463693040216605423190748870614679527432806034680103327883780487622366302640831221688204228543055573667551265666744558243249864599900466797671024925828331731356430536649356854673554929264427447176103174863062687873080885744116709223585873425359406587751536456738963430667755219114423076445079010533122133031368074847919431832197656715218024007926664073660195515387685745716685617181545790842073683185385969787230617298334654056597874925224030335355377796699906157600197729136820712653783840402837890703570542482300780053164828266002333291164287059334952998846549320951354158147899014085863753103236433577828694673954234039357039721614540188116889652034408281254447788267588627365758866393608972517265153818959639184078977624793682847156737213631801069497588866370718308419525085797462840608479997349514848221581262573588442773274638310029804803812195022514993720810408407335121190578793000486384906569896235629673629694107483513353517258686277219204100435876911016928531113371040771410356295060744117265199455460390984160366900579462109644839384777469091328426194205191966034578873389109436203598312352692096184207110383820451860205247238723125588445716370952768357044945455895423685329863958864303792486987596023238307494991972696515696206691652285826824108275046757075298440446522100102628451024292019680559244208431937564985180997296470699223037043643975465941393918231475296522943167550573231497811073531761175413777206689345410430435737051685653738067740258199742632250702423550832376816684814145731613987520818097831578005943486834047945978350224843036349665893153006053080419009784559894056039379955930476382989498354742127073210078498765539092404939364487463464601082405707003255483570417799232033499607772642942846072215931682687139517589807878241940821518947250094689555467243133743540543118572412129248687874208568636058407468575378198570319579171686433911020758252418180568379370576183126393481948518566910931774963871343279281308500798995689196156669114550843461702268184669015208262995034977946022289972200526327008578958999784014056747140625521087595609928387441630386330960965850714113429119459160173232317875149064227907997495211142393770688312627660383101141672031205253948854238628863624328953695009072174977394000647158947488859238989669129717921515631398720760843546058364002336249477268694245121679196789368361340864530800880544510122397368495933592738127732787054777717120096048714190252873103851022063646316904379453588389124822693825610639783611518808015939536331491555114601391986935139261588365963227859264422415177937719028106419731714883735005519935929196605491965884270627518230190819834506726151223505594418844710422669667780106975374346772749254461520707305875485109658093703577375346803817252374571136709247507529837884015050148707902102437926267729547635226620963128449261085557974113058790462238073570780257217262616071789675542475822840541196089453292700932389094170052405816670201565555996392581592747031160194569074947442678426950155665699766570100707913803199024909344393378318815687584820515390652544685505078623724745973573422566747643134187226346330490047374526669052613319547821632472493682908159262759396344916891984670654868852794668792638973615295903197696068973939186449722275749035366661000790185581716471669858593350224974893044438369570853346022854914037929515802484279147084618706817718124772817603891280234511313026319334834352686988876098049596252405303686294441930809331000317015280856444505449840462247652263574233578930022735103374783005109299334633159547200006005735317411013043094179863657843476510445270692025871408105937109018003221985789729587973155542197618989333904231710636833900929734314402185628234951324372328262000803814988892677041316400542178191477288907467948310916107638601313582663945893094443223709741108870678700286121048445925010541783474289300585864086934142321671142530996539190624673609004929797159920766575448279247292555896221854368549344155237727594766436766555566228357587949152333435806041530750132086244597739373079233695685931139148020208349860298228565502411263704940197642423095576000584393604633749198341794719729552136533058020160877984236292293967920013547395016692290205136347517242245203930065070325569685070183890046393434758503903234826181259020044020719184982232439717734022597481711569677963079125437135148183630023346908321641129058637420890620773086187397739142972898807381790566418596154860241240870958829946762852430677025457206212812169386517244147002063557624365051218865984011364453982184772778382878227300818507915141857580038545308048735331395350935716672231036658787194621884019738402158221633095320476187698093194412496665347025995972518141207579168208446499315152558571216419932178188641532376686865794629417215390431240829810126205278402283843135317418815282991790381608428150250180224142924719357394206827345520726186022028790405515181612527182924994640785845032697137905979627619713707246867252281695811148107211020010735743784405317802546416206759973649690476939809315667112714074791980099602952249169487808424777704349449544126971777291935491363438149192200521560609186256018739306237964978978969692588332789137023113920325263264246685372518131223597068366431265230674949304575939744639525033595619938752050945883994308364302404794820849655014950519211268227036255955516210659899785074647227418543316518559360277549646521530698273040458377679372875202713874768684419473806559686051111058909046556673676209656178214432644254530217584914532298960459663552567293834504544287360236741282467630827662626152109643713941349254903018719285911078540745012354274736875089155010397812328747521366725578754402039793099014646186750744641686934838477082857390215835548383842722453594717798194676778469776984904606007343726293847455105441159884107235604191332903930570022490941880305007807492013229641763198977972624128867934006628622897705064647056921400408569723418569357452355097439449294285868677630377007849668177623074667934473149341140851091172972965093253666931957905760150982458369683384372485382599231601321417808867816494249161668466266236696629858278935081731891964007627984156956792531055322159771539109233169938257841843956162821330083298071295525454758736723141212994855578403283519473514483404489595618810639119795587913508487781478445742987020812787001754615386736910639748585255376329698488641544633835405155080156417617454163302094425321406479898002915100621443073456423710610227202578721460757540009606269626496186686567228487150399383299343326887230332611923881509116274766621969870988982458046254543657454020692272606548860394839635163774051845600417332264905993561554447930263666266995213993536856490117102115423476880517471939009552200836958296169078470102991080317679968590526363080669944946017396380167915824622401805388169888417790970285922882750052530369786036232635886513434294547321124518073929165861149542562780973045438778018009533737595122121183530811555734139093099175555096147870091448658291895761097037617495119135364472093772255055373748428302731169521214545430415429743616257055429634063867046203285314064881149062713851328405454421618445614570160905005599401593925531968872801004708380515711005788405904807461138032340197941496346431369487450783305557132626641596972410402990386439491911998715825584199561226961869123904574277132972470053154368943059224760060112038473932837020932040848615325572272272784959191081232752140178867783073537930499869434855431424393752463612055916212886533503791444121405942214318710831115574340386748004592420254305363523694040012843463134040635921235117022861389354817295769286653207275063140438490690303183849382448437718045483622638288044039393292952992372213144731312442834486762387483184410722147144612856048770279473260740912773702946580087782703983551924340234188202402439169869761682076793564039311563952747880240546497016475673607491727118895656987961127618851042569358229099140388771192154712692532036643006878540109354471146211372353163700688424881562756194279159622837869638698601129171164805515271670000163897449250859718639228120493319867549881157463754919280001927412684783760241316669128160885305378890387334395371449257256228620089684549180430475017541573692151542835715348272381421223736819296657201142198796917864366362317361581015563057735487250506334980264814289880973282564901038046688364819101287001919356454562518231956486192352945174246556866329418480819977309193765589638714447076943293750085774682177890994681076356807619956938508650345651727684153700968061337195047216189852119025264105179652106718463515376661131264850034145368573881809903492231727721298804572443031299740917669928757063822457035637614806585101121407941032142028752523487154089200997394630192217997388326141863258932647124764589964866448862254716137472361864426028100388173046261570340474628180657827603146659091291107540637719325060168366267023571353092110486046400667333193403297028733304076536586288895577127552465943960203155268112023078586362031603290471962238725335466792954361441926259518036967846819673787172936389829354817467088939582713342275123107240996448579762585161714969402002749085870993431564361348405342137426420402377051462353374608964159015836086751675772716688263220637750154064136413578817046921202805631583930804803210726906314988930290958496682468588119740915149370777526427327836951091889593977435877452834272897536082545458325293180905145594465604407008729897364056423319084333602845631529483724893660826820400404498391344483318025230463715819102992521548390951982488796257671088422456128509628302506512341547631373132186735217216657984314400484728850117258748106137936132836291233324475900144909762390434038475822681266941606631437989032114318645076604658867573119630956146409150526684726412082055985711689645664954249048743145871624031502654429091482758327972534928681857201922033565731076581076874152736040722692266174702786774184188351333892115197683386730509359665673471570424045564625812416649413520760353754309305293442533052914307905731330898401966789150988470045894349901285616900002235230937585334693511331688100563567954583237729174319480337426159596057312576992764331651512064949637637076164764622920829530292667588145014080663053039724651296016882495219404356372822418411958067018072731457953784597272868930355832066742816305723013672462959423493315826682875351033131237408941261752489641370757032248387407079892743471537640824255027595390305704007570481120718628953088843223767325154959565639113323812040558039276516153225683502481880243582771972652269472216132928563508256412688007830261252060375884219860002534758337824697003947201640379552632627898641495901904201697110751910412647624034314935670087296396994071754744870087299952700159825383310585193925988822908782789501935393896866430835671116437944078852185284025553544914797773858778064981854909743000178195636487415206702393713235129423283067517445073292130659387103351199159620950735084696690248919837277547915038653776515493853742551422001091828413183138555627914303707690155379249827396140573006754860429097086052428048007637049731432125246219895019360779590925271877323131687238079726200738216738925922336370161429076086651176719731657951324699072877615447659246521774530320037930516555088356870435847236960664360602192478918492488877602588111921143858607531948211205356273912460944199238791014145833196530423411621695932538727917999676382487909318653404407706645295768982087751304552640268214461453508778614569753859861630826438119666931974878711203223425738919054050181794848013914220700469377173124057172965819481406144186350918582946352505339207887250588882639031545865308345470311859531434634325927684662790013249843482667361251769058485558268674187128961484326852124307006495529258233713811065628559057919268730277247987231259095966639566551524887097908241307130625195809868099507640872745753764160354911820965129909230762397535106499680444238410665217622476167736698779255958307370048795868596374536051681473264591985709324148170279810011067608945294898805858682344075036733399477818131697275989549608543335115165513937763347178351335870189980482225353232398602289604045543352314527667881130573225912838856890467561134308891052365971729397268864247414629060876057894306838341180385607983812200029506371550557127476189312916007942841632767598418962037042765549036903921731378341008341549945559608069821997890184737284832618681094923542209012006297768408210943430536382467112609215769423613736161578585419248336172984148942455258214955138308708550228121833689268672570176608874493254888397770656526814492149769295561848214733086629785998863312603528310141178397233344905484053872406615394953518490599713109276166240724349168739418132117593305848196380734879329076022642890382156115719938085883115076051185165785736562487144551102647220661446943056219534545524167313932524917436390403184918358862938649827598731859092439677719892821657325386046937209807784699862308923490313592891657472886194684943578838281017620029735260567781355503411404438960099314119199206161371691166932416408787660726036111386997398083087646889549505560443036440935349782300034247522045462917081826199537956475677222815887144604929504153462388286210207303658138162176144739680929163369974499223550533416864633294157252551031215317640233203256815117588093063620686263130897732184509578821613283115407749634260100954200867656611769814175766035121831092299247660714347014594928435329047357119805097124194246652787442310610787291950896513515198341699038021972983404333673715303655710564499376435370890531274626336901375766717210748304078524664392471839146892359266226299175358659541418962401730944900346522975558942693955869745895257141360923055571738065631265062849802625384882623166160680180255822893698078889463033328152943219887676939235298570846551655918408555033114488844274117542926007208931874395280870904831958986194894070208777237264040927653743484897399452498368516635606215583261039936425165423733666886599152403613301270477583102057778345654283052077316961216285227572665514883018004261068372478262668690282955899246467399388152819848324032438684661025093175510989706998155936944481990969086431555314931183114512949393649678206068056576495659335229970395283252448981166233143775343010463387627587830157154401675093700811341130628321699279325784605018533056560697429819824002304455921036776469272773283328828028115652286125905749088400872108902793505813329470334843102495740767840607946227846630076139340779797184465655320095441320752778662447603182710805030743734573554834022180576381227954498689162973113516003126467229021859341000121952191668470835122753044225119811752267118205245175094317487259137917902102680112944537076295491896074541079152149531566809252379728532768140268520997063784934409667934021087639096692044549410776443351508454813473722467030759548503256729764413186552909298237650155110291416047536386625068629305103071376609384192812524077809326460328428287320544701889712132788527210833545756133934485940871861076047898704586420839740354270726468993542391183365490053371166571848745171874764018778783432805278995150348113578453729592307700391795688992428659624532943058261287472778283684801742515903095180840264237924417765177179804650191200137655257882639644659198220464650587380081508235514099645735064118730710687818765693145466155608239544655249339582835037638128042039811055023925319714582558952780081383153205224000374322072691912348105010638133532686538541348318714533571682093058426841038235930264242667962975563705808302922965054059087959714590826783266116947482802795489979527075393193913109439996964157679625822926196670743762249816400491268989449230822366338487973202610253953794662896115843802175995176949809478070158263315944479387228219191206519869792050059110681599244343487361634591408466587895394371311248309261735305167271586649049271987516147400585652216702172093054526751697042226049950199003193735431201295448947121254696106544715809998306800651940101181432020711097288477867907468118723725418903220801672492512639568059411983978663828227953101844655778999319220744889450781708332303528352424392736639182669398121632881105583040886060860813058755695066976697567085954100602560534889349778758889222145712024666313348975665543917071002757842200426665847627796861282664406287708194087368032816442401345927588063251116892236797363842476834091794985978683089361534916955829889922730496171308865396437660596146891697541040983244507330921427148054202398745083916546971227645141831118840624906013479281981761846129073818152777199815844796899270447261031965535996976797706277125234762986183458133502539891541915703846075615965131061002798533125297277221107262759922659980805045000772391736544874464440066586929086737732428565293167247250491195290146755386020648450483477942738210417757237297198662999540824738876445324598717827443611794071643289284635177239992157281708922698327956700487191964603665734295940283241346584768157597366414172534595806980698727230102962468068080855947194771669219851838618917439673391301699295972072806099237963310086451874539941899722373692845474902660638411635355170731357918118103275806212811773597023098060598947026984216993224249957280649940325648023432601774836766746833654825926148897293871772871616696755114995748159947640728232532976188062099835749021069752225286698849546545826251002687494493763859683327747540534706513814470346478845606183663345374412736121864610319429941396812283418745404357479472085255312704873491529424480650828010323781079666872738656839332603173662651793100841127637557338266457037520747937321539442339591648303591309540955522599509603508944343097081515926181306992125597240164622516551435268900997606620938335531059944550459073237998617714675703804402165561278782711380717165833792379303305086589275959256626382852709616847393800652647779416169718957832778506663767689795720720779034147892757852521769412443775167487143588653016242012497505739638278003976185627018329924060279827393072642746637591816261644370978658645652766304634592157999704564385262112989057655037867852798764984998188958202792198538467560145178917518453153538475961711289194261400469329291300945081156957046407552288995484798831106617674995414314017466548560594982445215551677630015336060700439596972654854655194448574332964865881315488880238257359903193913404228025902904842920821839392537576265293737518396813786665420752366818145900704945506059161469911513921176910843207339328024692076653178751871583803005507757112968276330789427716593477724377319925806248915282855711012452400046074622277155374001317226509649476621337291235309216255083886057239196040826799851209538795265373714041878289374482214745300084983146987105057363181264280003478460994982316068504465727004162457842329005392813807370187513847485360862391704787031958063723653763722450621917339036307967869514185168432927120174722530075836018272507304398307506642304957669014487322820492300069555567743461760485187508525399207492755365441083139809041058886960118895843802421997037639351915155629020398892314903557882398153540951385916940792299982781251056952637968208373826892168131892969147261532745541361259027134423575239843161174645191580494196992897265841659103388146542164328759091847625211211539077394937166902302420744158640595917425951156947973428769653908725136568996595607039572879707529608210857605381196653489808804979331103246311706593514808945061602447091163666220439145948635823680858731416642306081018344233853266677653820226122205712045682017301108045630115284291202027345065049500386499503584891024297916834117578422718935642966100799884923479529478948432466760188895277793953914683860677435085924308109841659987748955225033279962591873133753968837271598986689701237070465283037132857801080549838794394935078980884218341357776817830664850552136295730624944742694430962858355113101944735059639828010790913690511235661248960213766026776974437225086789927608374530149316474622698490763255285689362816130807540832825152710726003961792282353166744058860480812727698933670441242614771555848463901480981865221403683638402195472746788894215590094136770985004770785042795520316796790879547104237350499671265225471795784530386132140508350584763384487253182128749911343294158037204869774416088050797573765922435265963134519936420761642424425926106732267295986239935011229573853677411331927742556795194315636433740643053118545929543348422128560482157271224508511900948522717777906616252204494255944480714084879952151147415346416221236784435065285991659657963625400564368746463568112594573504567700234768291418515294044958765986617000755575400105626983156022625779309449275627403860890482691962398476992375307441145238694792122853559177633545334560849164850327995117372255272970216957253071072235819404956942500214178475492200052382336988483700371193467036746609934038690747945647503569928241871563462837480468947022775843296826301971042651224608211408895810281490532735192085812184012572477505059376157475280561032730029423050263674624623527866070133981092588326653473396901492756411402857849058645949360843806696414105051638462824837272394322666762864911465406042071405852096262915966209924046119427744235589249551762160238510114431024225748565897924818890212970375465098659404170412633933915850879550791655640791533985376465274173002388969538753881327441090676767876690455659507259063745869518139505501555135371887422093643992916150857014501764017800384934176356786125666602236064935559119039484573350141826370807316008759937745657320423631952474163536065082698269115400428288170331337303591334408487805804255532407882238480147603079480955005696517142307427639442540081640885754961553299743701000611923033229285096598620145649781308927998681481965163471489132800477237530740770781034936018363520926181846999156618954706224005442227139810753558368027467674482612511068566448131668587695155275782098492592680787067645480701649939298282375822547325633540402497752432665384933947411712856105562044165360790256046927589224128266800538172635102634613210662727817988748353576966986666820691529701504164640815480209987293050900991497276268339348978966413060340579418104613028281981736744330173126149852702025319594421150222473124415211118988860936039631666991092650425452157220538388973001345050470522436277872342680428825731386920223432775485225317203529447725003064660249741285461978087508713009926664246482690493183743484531287538064304065253420986517728531249514087725835938832766543699008440026923490363088820160374367367956731374593908169565184435624303322894622807126354736427970766900082123416054603554335274946941148898622775824287503437489802517645100339428859013410933452072377600507537501290597986831079931635880024087570746385341675198772729025871988608497371552017843221437381965375181421644820360916899664111997298827820333812695418242899078802003977990547717075716709842072013753584537123766540395192596186629440773232367239672089726737367487298275984236382448284825170821950035034451141859411307499570965356202753627326939024875443012347721825449902527647252683343018659796970639361088797437532349718211559291959156342521863635865909075324046924501190578055002459056898130196863253037456698158657259461374609557941727520180552391020048037956916523470341992996933239869346387306029322391924505216528851689481387405069212818234010822461971469402296431926449325501788924940776136584232995311588902885178521876050840427567420183200525083351958323047200031261765249456284850770036180327231071393291872108622711924240842169863706177465314733551065704606386333428729441003931732266928858999222370975998996759124745399903618929572837655576890308298695938181907122095432417577765676501365433450682240141792077044948096847232548651216751483200139773471571769379449008118399309870259516817625745971646335439665092186124108816004675013788998281355685234693125000885856067653022042455873843633708376597356435689657309379498554775683952004444457540289673182842321117876371353952748514076095670568681816654369038798347312244954990538938390893290685431382744633941647782352643777845609814057056259013939525710333005803838111892639960906462388461447845730742995669731274919470204069160335244443207456054422518846845768188955980458475418049130855768843393080910693903490952298565287391503246639095460869172225219573197628582941053237316579274903034437904226417808601346945229361909259396112724109032121087326054900130274222517548810055831154690276813120902804806026400914244360521775750998334695145154993429507777653378385870162309292903359329870201422724522713628205787282809547890099922747265117075383730423404951240723408597837008844403863670196005181078729088060422875769798020759927760771785143419591880424062927377945267791411059561181257569966464174358748623342847517296692681779678260946087407917132006631770453787230173303459713230789399986469903522729353411316473343960341855332079184429290590870548256508233106744612435236875429915189434520897865510159284799364074930464210795700363868792135212769027147945099545423886441323205971820504433343440301053276367356466635637662900981266114787001995753950264192029677145953750601230986397512044467015420920995867800704747519698577952769261518950473370956196857916119898465390910688180659993915658555620195584497422101553201737289963057357389986667618004549703478902362179196754015133573062849062176553784566630746796975034800727357619561048775790297455292805807115349138258742333183249276575435208742954744888811027615540979139431257592371873729923845295451898924113676484204976076535527625142060284853538699327550229211824304851899427127847570077441107954306713460471749020580069552029736193273507202812134428288888095867547747989444885350937025771218843300536675611787330461694078641294022529034538161886035786490614035102275319389103376701576026161087788390686009634056231337841227463621181066976685389517301158645271779181546848651660608140137281836996322094444339883300751903971923762846752830535910329948608970093788292939483639824621295155343489697551787798074423071737043011426643343975701640568386971994009450917293071099747999870848582719280149098678403736553500731948269538193604180919396508479037825624698382379721980710024205225627285468085433054535954466955890816911795472703905052527380818734162983943095770848715777762510437331390107355798117618489718556766785795814089877389268855496553972182773312747318014743198282711280657059242375000917949740103706808771778434904141598978935797734521262109146467518010133694774095113362175035627561885360402341020606099796456720841967932770501760191583856283542445074366049919193178130183593904961940025499581250713029718483702846938744161593902519391646893083733213991940513902240152215643189335201994308982578329475761823075201617220212853504145462907120687937663487722219553093711597273578747715935214586639983412056351995639440514189185902671155628365353570470069668518209167552756076328943861912138267002062827635088004307534799250810755671231726124983179417022896382244410174160502747293887357360569297615424680204552285608783652303553283110008603412992320778217892678015136802194671606545135100862058599162289523708183000520340936308953382904417431071724904668641148942332141375629830679094221402710298966154554100255151028934688907012315137559928660678149492402460066069489948686458889687908720951757178604607152867183111703546765590161036714896213755287875759196329300669402833747039733308876720502199163484014134182055751272088644212743791427227820997491435715918207445198288777418817611700023999289637262112883338723124130135108004144162031540528686577169730364776412738336720937598575344164623870803210034829502270052716063180556478589272998674225925790561816553783221440526397485871612454629270665964820383294506322555580073706243930711866293569689612473860548885669512412633093536169295166476514287347103979300675009133893709854479726769103567596696268026755329633410642587441594388029162802466953673097206938345354282930777127746230056081942528357429219212148005022552347732773415172270224474421317453931533759438890597027212988309464296536458100899421841903640707682506333042628815235012678360206177913836072020096559270367847637443891910498084923610592202967610958834017880234640200165660498624310504034134026506715127471039500727223924830860958539065086168139852439850750738270625934256439864866243780047752173119144388391265152071333113822494756445309502877658649504370804251962120046170629063857800891154112261146541705650713994897058665558608443096200809084440964377120484575948281985779344510912777027599541192931040107446326855628396100833772583611231164900012083247639998548691952124389939557022693385424865517395502019616274500104598263797192580661859372224080955019333421635776816241223938207693360184643286028482877888377979941213596090969437445044172854419835458025710591662805947901993028256559631649897683688529056666552725172663470430775373424097740547176218902873127690987534598004727495745702831077745774992309925065270604211357511819078071795371007758662755762241440625323637886595386186147728562616626686108487965855377746766745563694543257990018997941534353017324058530912715419252836767066761699100701217026833363071757659508446861633073177299773541033832852701187153610816944572686694822017982122779905831797912671054895556065025230440621186663681238633022344542232796868362227162685404935036166666126502014734850885649559598218480062823104597127072730827386756789314601365956940358514248451150977457302331622021046594145194053843761268320631757974070992341755020509748847655461876736335923096486310835595464046870142366166851532799177763401406331071531084310402332662354985103376439779616883606502017133329791610375493604496348983217071704229975634032507051264661441212778947549889435158212001164545626322761685871695000710648660178793159434890123045816106713788679885730553783339234988956415466338285205259805756863769005907649268650372970791669336852740976971278473442733366216754215402503855410759309160798019638793000050400485199125140594055655550883485985373182971491382799004623560456467343168384485072787698123926052223764118425702798054799202262182964886689822470582948038089377332940572140203628536115646022070409704954365039030708460822870677121970527096270521806645540029070711177686463192309919259977728586923776286305718075093226344040153672501726232468236003600850896867300073317394607324845032953724641607941170684014152737311793597137473245044106114580808377413331380047879633434012716137499162783407006699421048849816030378535293853674550419534527295844939498608791853197142448617603794879221259889440721843317213548479782488433831623750365761818739399367845877565658482482395363658964299112160307727959063553263718294052053108373104237540365265525096695207711240804341769475324758752891241140628012578295528334039951099086170679782681628706616121323026255995850646543982172702699646456255033202253728426009814428167939231105384158015693099101978634615912695600216745480927791131539750607524341937713850572286388317280153796127171471985206174803766251559660630973085892115727384104659200101751763284785259251520937870377141923716937371743671432302107531252541857909771908575970486208287798535779945581312109380936543573350871755232552551413975832102518599512738971884951750413573795766662007116559473647770917692560033932248032327547842631959684671684102092504877280976107034219113181880686322791792137520205039102859975704667419514252360384912770767261776565724241021384955401698352363923707971114482935470794714682987699726336412971546595726222597745393979055196805858389499312798536356449779555201567127816219021938057660182397840024439383769421416066101333733483939795857211792043721596773118593534844369567300972852953629231981161701591003277971016309624536865570849224647914475770192188394286501578570360308608537196759971312764518343483629304627407436381548578877658824400763172603367556099576798853901152837771490443188728658308455584039392841866831734924019511688977336303467715133842103311336226765056666004396445256953322404922112437612120306395078248944368477059401009899137152023003889481772559018058343528017371732219421305563926881397703275248152021403603200594510120741705621211449096282224687183130629874999412375055135780615733438239166237243103469050405096594596541636850473789908624483329415769929592755291944900755764665248493356428195429761793099637697901818578344111795819007293055387704267541595309706148292045056550073008896583124470475202516228756468834132792357901665602561994960488388780386749553149407758685993804472605905539462808554834133584785990608390442006947781537252701862237117922805254920186975391029400332066431696130360070138514008593384604909498709390348443636787459397549945300363665175513133277505638707990091619623286869950965020527913021272515593981845857370172986967885460737000719144962241742100079877263499568046696657086358649459733223924343999785126566448485662471177876535400798329958291121122338935654138364361402375473815158861892053957330193485892760737046620618796123019425908488815557714209090255170694329968656515905189615949039096173759675781128009173183325701762716084974525978107838136722265217171827661362684246477576768873208340838970075623165473816186541014681214677593574584532611003654211678736318284849550258379249055603332511526646411671165664655136848100830222515101686373336327165283549834828541639979672714514715791707800467468108209613388312753651919413493027333295681814687770358899200729729923334897364629791451775331517116698222039086029414677099004417722918815821897974681303605152444374718816325303405514805910290296261567692152720540598551826372316423624806313849603952876374918867274532606321008960394400562442023701027625070433127146402972141431187613175389458543791023108342402965545301184156738390508202207018554793955393655936584956855979349573537579200037827097606730824305845906033574076949010169285483668491632540353325291596798790657503108523400002477554628328195356359147479754359212453927326261438404213467600906536660801703547624401748631081825572171699755623214373012123414058737425731016145162170170738504882119846432529181840872286088592398390896261738393815991630082892989980252799199027851987817617980324973138663118409703550473715342507660929161313811575234702098550042482924991633559370543950135641649312592800042608032610438245331340881020198622565311619164575921098899099693097129525212810557733518892759406979009775526643760587328695398447606278828100273490711473040393711711648903539056031766117387032129460855191870725308069492686186736702273642597277936142436822624561744825639917454004789485630467964158838503873093873351115149391765736415619466842257283857412530211444360499559115768627600805720686560885971104250162709196542527475779685394445068753293716053826516522353327154614310520400014644248124112545316891528489343368058997718067820004331615660374522185755494883374854682339923053398364056034899211660601835777424491117958812277396598315517167606895151255847253886385474170943971280789198536710518072591795125742005706039610434129864439431969021729268644228271413109286370223359251804482057996274575087549611045397118638310425555268183485923889435703642517701272536133496200789025024018298000651801906905097880189077444570172695416444932827611891896429220491974609096200027431204876529532736681794102570552398459118291138255013444980615479562521552741476991480579370125925453896121647272038205332844309899741660486613228939350230846669340332403934307038408707241138145879526641000315000108440252815308034553158663803308679379743402372950507328426052539021115163505608896886063335959555639591513223773050575351968715735834590879957865665393206593922387170916386819221814824116223323839555155907577802542100138073629319142059555597971743424323115638517947364361082427553193616829880510685391829294668770646281903081716805713230995147793722512603803118989398513885686231362859295583683162630250736505486441152651839448452420518600741798541315816135580706353014623217192280299576434750933753710182506116998967043702999177855762402218257440188235229096055669164350245756060707056332022612180282150267736939158883084485702230845785327748126200009449610333396800636323689597072642422605247998263966169654319767323916404236128998494083141340745254508693546974499458770274573475903736084265840648437305142516003750703671918522028489490795678112297107982041616189922565839743548290706598235271809260287879612073538696723820410356554688671372800805309450080271850103892643757750493788176465008523655979605539040162119578050680279189021304700500547290910816250874396499214384808811218451328151843182316399184239208744641159928479967621507167380644710510219523319780171651385095346636565515394322250426183712151045104234504699984985238639289938849987539153611652043728768868397136072539025869167454789530254637575545913658609653331402060509949255116060833245771036528764886582513375466309846880956586688665963273812150728896504819570037222656655843719140964258983395290430312185824027892062922276769826951988430493796961780199872385365394009078801538656509125649571721892039087466006624355048953583892134961681593577135369063848411621384819748923894428451626251301025910432048503204202505192308291912154404750699446451152633458440035942984095125090959934204031496197874880946278728635041207821830073628697853563868145143759748127844457170225582179099561683121859846457558424555542071611876692195082130975665987076351000573476755253614003448964923190260574211691792550050789208967619050093500332892123598810815462958928667668985159450069059809674250905914042877627775097491161749544908061869425727095614694796181427766396224384845173551608779068968204303920835283835362340516988906306357563484754300370526457761017522329889892779307816275548531165614799368258644797844627128457649281602167905472033676632344989677054384575248597040494729062731911820445700897852870838723920172861805279287881888952736652463959630591658890744519792105382678273882149721423237689073128640362732667163687947981044962543626546316978325836295899362270542892371539370338396314799942159950417523513024267747924352957512458274128496285881283463668453631171256836209624792977177076143482786694406054196946687000793730454240323906775450300407084162564175608060380511067782089591938996135431628174184478132931153375284966192445140817543424917794597072221521983893407746428920410676181355214550298869737316193305101806203842644713373169286960907152407814850753128594525043413964978283706243085746615892471082279967875190580337514168004589590967076024645424968793916003323064562651880369560183490188337752219194530144670798389595309599760498168127237809504056205457401998364937231877246427791303069551343123818353368919864744638589646517485443285415344562663094192122335643697960264284025770629415080885270432307437719266748533993069966387679252293511267022207087642757177225759454286100928565722588703521430244952642844455778343418026051739350215238121701662864768515835104862209330724749724922771876998933505426536207253787184423473611684203944613604454162016510779748790847385437598457111828424773656271644105133751014888137868390777438019468717238494268652650262867178730550200980800651088969790684781521944412822882412786511456295898285203790077747680759774357986228052500072516741157494337381315235886693929335081768923670602285301289115688242452876110587483815496856931116813927932595975499879459054689588502765343384003076398877958723194468020321328345691292235021034106963682727758841069933009840542721761667549777178478267394311679093662727463139809469334196860669648968184746483947742855131480099237016157086684329520097869422472199570342012192995959335878535980591009253009609843276781528322013673439006565653495492058321744488052723031550405524730819747147741927674291856591758562228086250933978832840101291211425754154694666265442506547385500727555651931642392911999780611859360684382640469834031160756715186372719120003233165580363744816185122847641034699270216600790132859992030077734710260551453130581701384486547353461205541640794640438729999115734777691631932033306304843888529241480940966168072458262673309900482009839180879667382070614514638336195895961324668457870407730858323323878808043669350170390325005221153763083767917461879706163398613580680755226936109729403884518668728974791812518542621471564695117316349717259848677776019551963994314051126106928582142773185191483122210855836484769650153660740430831037040974515319153853628787889549217127935067531881697047627409345582270599516040035696169532476489568729453034750832047148970138093535984019509068347743191920498191186285848083629240063669173782036143782653433124293043479677125446958089255990801568712314119066831906739132819634178640395773677804780101050523703361838397899382068407631231281005972583085415584964472501183805913848204470724308313068465900523275051339052588267447580049412768532513012495860610507565214947640548977960926150941176725268915047043078600748401551635496959423806960183811739446613583763126877215419586518802022827836690398516460117219933260028256994734981345079756885034086783737859542613702562868108140812247203413653242964511748174080756610070707881973767273468649574950486576451844229572563808716838777214216580438987501700457554933861597364675633572231496572497122785871030283944404872862853708829158759371730953041001391355059092382440326256065201958975940688797554976933341776595200948654304982938811765809343639978870348941529374804818005888450017408184342600496094695278117808892430474009443758763150999671479950585714114117153882791379894340188076672129528611853307523653005304846422682660791612446718624730482586233241433330974821067864521069753173837111423668786819539381926912714931238235638428143139008534846130977709623238167601575120168533895275800910753999254341148666025630623429696902298203800278394041093674338059303539811883438316481766423435545599647196526147480329784186559149977983419259773479297678889713939187530615426935864984359207431738996082785872084484781444951701421855132824675627424371606280659191777445734850326188995842773451762257920606339287731761342804419268550906641223375783710569329346441344276554339172916078383223367201954576897229321969304122160275762401682177463032786487078531067458434646727997401666004080991673338243604662365058374147890890460833934191336087393031355528651495822430477914881640026255758589873937285594283073411875368834460031583009745414709563157231751540597968088738866785299330012790486807379020731086127025087781361950213153053043798556403776196222743013186195767383170253308289559003618413985662166934867260561557528514791838931289228873030024712456798216699840350727052031341196908272504860461910336117492946858467507849552954937387907921443295701001833784977573589208151925533430437967210521454592253910419383728042867540189778391129538447318299426502458702601298984007701824271507174329956932022909774289260798892821714076315757229425070430761843530762733063864857530994503813447297107143380096155805477348057575806993156114092502180823911325034520916845210919785556679926448272669077428705514998104114999168360819333987575358721418306384664092068005307812374739986990379155599874390441963358062948524277933773450263852842296122833154390966493397615988534919888351301602965044716230375156986366680375441794357465575501991912395233551299203113080069182204729047048926863261611140663427538685527832812936345575106457980235907576872173669084004694445774081577298796635826030874569507536888927834523202035949431514736511714149187217155507041530829698071334519757243697252772359760142135493279982079911128012804138363854752795348788852480924164730498702636525823480364771491808989358754102461053441963890805140722549635598377922655499239271013757131892507482231228386260528590193344002100026860626380631013275088329548325176089686047776074342585025362155580829502484512825586666499818657002407879923966751727204333356247957182776164216102377266885070985516047138641534866242404751309117612898346036430568404732712845851900605379497718330250935207948481697523914609450830714604725282674674846651360776282162436970564748348764276034681632708069898393834099020504353157947812718741806684737668239505744269941307235266602580820818023695060014448390530242823099533566733333895217779266772281201723105541056838746298495656312563134500075786551320208209982437800872546752571536442344059846426140023936880220428947394756119606449894136880762996472944245971526392359858696591339654622022829837612139311258982408470761643007724679600385155428733954751024583487179285507071146917377412151773844309615987449010939250911229123433635844535247485115655566673057892475897620142977293592743413246662442936211821144386179625845801209637044846192251015217281308374209194150487996395174001671687963115564920551216198980313718351994018011472842705869458582592076390346703017944165841539429986763858055287809351949271182245204322998173976706115914340987508136749000308907569786953074998003647783429383942517948811350908455239792507047623165312617834532640752726676032405488663530083871603556456324247694773525344249644737202102109556744919348405247659601407285218353934751975437001447117249598821898444712575745251651377423878084337061553721806403775932947529135666443648694926889372550474024491322572579467154493815347263162521300421490228734802027137119205985303659504379037876231411267106967955609236612022994832920163012264779679823052371580588855482628226334665442408507079275927402195841393153686604038546649167416292296361812225314809562327125675144627990298643504589067933033982884880746245150258299194551087518693006707435439305423980886848425651120907124796512392748819870536685344382218234500520432601232370592370580975351502195411706652042503895017690618857828669133433151553789667752111159611667099490921322634794700625959423324248731025224976166148235456244754176778584506348639499246046314594812486206522377759122247143447806665770922449184572423073495140221169508979729560665528632386204899122286939094970500529313671127046075013615415508328750291131213252189630794684880984037370490711509768848799074680229036491167128454541867174259954693714206578756598746447747646967506195634952527061429458852083667332761381363853652058438344231587109103761043753332256226607129738332166083894904863950862121832948396268627163020939521651041134505394370421666382762046651186878115040451364062055451234954238915148922889550552339680235830343775496897415998939306075907369763998262275570794944631251191782207281224829509745683673678373050501028433997294243184347986518790691973764119408431784617040300394362294970587064462968244871785818713503060541604726129315128304455993861168772974488494192654746339230029802513604789393685530234182558132194833462539197375766181613112676649021994916867059883657692420993958758690564213608790242278074450156070888537775774407936046494876787800705757564854758420904743475850287558658793232606547920373384629427052927711965639638336768082420525241286404985317778946843125404180936321284841443857415938504751303215500952105085034418697195301286399194861482562848491960805005898322758383549007622218545259345869991586346174295109780767387643037250618033782197880353893225860728019734908074657766848400360464067756857362772041766294042299962811321583000563801337110647953180176043470336884585673272708960329723243451676359150516772265208555651206589536824160521186592611625626464319460300165509734374965456473477996504438119139455916223984002343974051986153914771380349925405062580286148043814661606843706572573622629742066351245691720681824657259637636444782074693867033212109966190139539359951390637762723312599705249337439765696493145713518172159616944477943594368659296695431560836059457976886531276867000786119676673202961849365026879113975875701855404709357270034620091142121190336914299078747780391257179509699157012159696465167982557185066609272183971150941377714279004317759103413588267654366561089796235828837865524383728719207547063697246626018431188695791554675272998091708585187616106902961613117981012569009240492803371411166134962299051682107655601655135585476727269715267644627723859101332572016496443128989254887088651078646191621725083035542986020251176291940307175799268253139666335715618015496807881476272865455887441555657948035168747577083298800401990565274319739315274058456713069910035397185669003841527496781444971018323110208248292380106433321871827877861893162517015577216100443109431829062592004771791688836923272080177846489092635281566254134867006414047992040050942263166147905681167133883910976079286696277571310024607921107464260769837930428126241416485967035888079436425688292944399206089827995875308461866602757521793974676477777836489715685724997936636559241131220066460008831124510280181386727557691052351897996611790552249423138308220620957384207789117736336523199610338705931351585206031672379264632356559097212384014212829789769894273959240186301605856568600732860625293546110456955093464304719867453679773132036961456160813086295785962063943222323836737127276047933198882835512063818388101835434072664882347112235912431048483982510226948237260842691724096314105652391946644143293988897639956900201868446249075467635599721445772620687483993523044930510245891185420203724053443798423305770005629071794882214312190154666554340937854194508826403697580551863240811663362087788054338169013708082258147928192935883445568089347752127585257249203588681106088408862354136142626655128783072924404246470856090155001552090735665463404485752448024947477093081796002943697668752649614825228250971989680923372335865818469662855266426997618515914574040561383677147292545699815034122712091485348840252923978171829785526632747488597172090103450325224369948942180547391712959296040085511553065105100290308861619131386012102027359559279852144114506942408911733717789942319841818686918986621057871135000741428713206285315031660131382963893881980853400564617763838146263657455859406509524012948435137923256804882102745882675132268167677566049909636437743306577595353603160024854374648940767772146310249686907574598067111880085592439517124916145323975495532745439029195353454629557994702797974918863106154944910514962304492140424058146843124251948688544414180033256048337652237712346817597734660013901447015059260717156636048079918246048583877485941321163146298103395161083473865428707218907415723467190586205006252440042821981131236240880923067448365923967029394261741648954179791567410653624216434800860879793909570993363378598210604206327211374281393314940060546219276463169972042169062518336152783311593046227034989379741602028329934388773543759630139751897576245581072232475073565068589278661932025442590844838501300167561914832926796360806706570734287581162733214876948826612091227891058243762071857180773398151496904597241839153084680509622233424957123105076093279329506444806037268004070814635770244957706337603689149558554880485561121280526284916858963235610407779566255182337424362021954634409297455762049960077123212927870750011104213658133280354684379592826650925940514304393130748174381430518511449543275133682247969547181676510963066624276931567644392949522253871208658086787272253950473820403087715549704850039157988881223728003857448634541101566692239971013555880401495419802256891790562157618824564620807149086292448237311716887338112837160547798821952614009199128493669824673288657150126175939153268030946454186980110001480595663839420401129124454275536229617373911205755785825206662549851153322051522156319188744803238374373456228831531978422437839566234194858173821653414205011225124277730156763579030634885808007484850993168704940394003505199181866836987080673736820130625079318910717648509387985241259607790228536316334006393993610290401654443530685601018791503218183582885937540231637265509459698058522492810147167343241436051154901618490439194717630989992125105896232526978861608900149211236601505199864192639397439985552550034564488837500446967567307074033964552327084642008157561484510510296437793729208406755074802476087542856780191518835950479303677852221990973908055655681885291461897754208836312188925541416111561111797693121507231408926385578744011152583015085046610623781302596362388620674515958650854179241761457535960675806388513579931565727158525625864028748799169418656078344753414992839019918223135305138020915718408614498721347594787141910095280318731609526847386318714470924332982728451514647411454433475528252995554475087967383516281996327406407301077960013789707830028040376027220670142281412828439290692905953302168208126577113213789797493592980539732914496109047118698203842552774804349015564412396586979717105048376363904405466653738872479323571901199502343349749798508396592519887029021768205795333283382829819922382604103904559203213961443762485528708693178887319406339122068143447715306776204662306409753453756611706932224783939788489542049946604335205691397129881169616712314142901242690849107354720454982406306407564138392243495687684055702876761015707289057393177220462598585910307853223052260550884451372847097186727451809001890325911000332374138803460516835807747105733939391564671022522236841560284610455697984619029280341013636279783010158967596587683294825024577294081794888153548729454715453338130213520780142699321916264800920441695846400158940655400442100221898843801612789834074848428321407764031061223564623191001314586069824171968922516969596669634712746889451543800307774944752895669408246804996797825072925428221437776480245923110885354111775504905796200377749574698399548697724840748049275841983563366495526903468755834276892912167569786101705295490673365479421345896582572684174442219621591826232937397182169759151854971616098186404886372210772757625237554313246441330673099490213172629247939450349661177244634705998959910456949839866391745055338914579886777133368092140579091098593416958301062750576076263247037861576894897068064490996498242152429462715065997985989819213197375204235228380170609367295092784725925169565266903675859955751186493180709231155053362247867045214689276432306544353666506686958715034860238348653269679372216496810734618456574961310756879297775803200162770492081376918181412557826423197167308818664343528139486865779013984660815748210587453709771458340483726959038679946418716715340241802184922359467645709317217992928455044181370660300946990765546806794821970408304508976058572429092312937391093698879067993995309831056101782515008450979022351166768282446504860799199464771518694453511763816761431538214655461946239228520775057592465129786260271743527355006145498961466116499412141210965310247631615355671789977321416056896602870031872126208967138555132614716641554524990523225658188703338894784776724158929335850415147362941899129414937193417257738660500335327155808049809818354712600569925915397017372410543894891737269521872862909594275473728034381371895424520477168831350273573425932708657483995667267167119851933291612817955192074948992162991435077269179569216573553331185709764160648088732923561171486368604693165746651252268972685230056116800956114234606832213365560371970197768580267942864441136253330340430788227322456428044393735931604633142928907077278322229861990543865511217733363702808932636943071904255605898065447161156708805793237366754893193346013340522029815135136157081203387210498084145886030857076930605035258898497252017606654245731120246540961304675016748548650573629929592838822287245374133120308756345179978160121959959084872468736140422806119296092956766062278652686800455730320272591284418953778917750536479492568755720886997891459865459941822323104254186157945921126689689406746614625529485320678818621317791576310559943365565979505852298881196469723262206117410631767830725203226454058466929142290716578583302442632944760615485751000841919207592433626527862588248732565213193643584053137697996977955623692391887075751538931356334661022386851325824397401939526781526922927374700912227762510217015572847386550355947716214286014507071890974807876866105256638596720712466771058606978561540256861247450211766828339656795756315596679026163096768795895354601530894461957718503449447553921683723173933249106519810711219223648556412760437646348086338962415405871281370593456389249930661503369245447389382100179347418463899834835876419733367901948840838980185043584748768638029435800283102150715144048100543118268720496155777174546683264807201966180910662454261353823564480473315902082723582432748029823547293007682368426243181930091755167912513323152404890379040653724881769499825099249333705262397228200222364652846947761096035797883500974256071445282071844860199209710798528456354376127642340153662471064498854000021660878708998322595180705257426906828667638910466784342065365625716888411462568094396806996958731421715835308343355591693337457516503101248423566831481966601284372681351748308867912218954633819682104865028894879763195750038906143740328609480352479307221642594484063265943713237615442556525488135615385222159425715280861229390952053425695772980802211354070733848502467155148476846638806520541141225015600015173805648620560352472104808249046717790044237524861864996763997825592020882059713498019388371593636936974099105805516127108794677116836642508732782076997815657959350814496967572386486593557861651414604568291335055871876808060255483266723868157013352293440466357870297867329096829794110327715328715053265737919665641139420117861177440051113458398466780819503008805994771386202320513985357869735070272055625912963360759020372192956034118867823646457153855753439133004412134373460459229334877286087119259394141590626736922550219722343509101183807476265250442991058708460367897332399282169237264678955906917862055700707440713774690683896154342203542728808103177873328763139740052838302358001326912837542580056248269218600140496560592323166932430955170597073118199226377352277334936385261334868900700076631203245978971811493006483617033753971160435096656857013804982549641673353149364593577005812728186147054709934089137806117279380506146344966096669877676314510868120557368344716466451525145430708972973905169833310267277375452565701228555419294051165578500984515134844182668884638593612780645808415034154435751097843782871192147102990770896939062965022455882152414111700824885537629622670367410749634854708729068348185422690232566152969440040979698590900596322552920272132190482117830330375060410040197796848017177676147904965824068399543269307052273820007987572663437595557874069910551018430457471383020205779316354666425267661003593737946174116309888775648595409604611254003365278180648576576773491389960176423392062266876787236351062776922857795187271189863694753429745471300874223104999642913110989558657716960305792438534501556463539007471408639047424099965518839274435297661310469324940649336807679661746993798626683069525333231365580150638047476938288941791195384837161073878458838323878108811233797042097040398799643366276173301243751812702609899287486109102638661616810490530856972591657017569573801839138392551798452880285263536760697651345520649776475884533310478970569544957822990859928126987831888913817769189869467918163823149044481788178106899106307822446756623884010330086637513734094479885466256121561056567875262651369183719596626686709232208946986778791515188569472472201760987234403480456855210117439017460149020666035759775278143971718125244126309996983204914018187196799212964999346958692778693001484539242205396130601841664800655792284377744654956606629181317917404784383899097827458740959119728559087006434586016705851970729284187398810898212925420925303799359625862065919918200262338656013277316695038889228730652537675104740056973028621698953828180564169364214969400381834303998232144963370511359236667127287059367325575887457273650265093606292275905692297637957941746998639370706850135232309907833516364039388418025131937347236308928179261308622172738987953666442915974040770628107037385232494126596393858930620918020445643447538031389019246374069527362522701325050583729520985104320880446188754723402612337371912626132830341945522628784568620796223427453456876706101297828959671419736461350183674749890276746721550874147719953414500786215648025696340716103307330171774607669651606372110699628984191018303000984606168999454582953211864497650160534824281902928837905562404714367685660674368350504946252244617669292248720309801272088250011063988543377051840043974567893804612794850537441277603777974552902410489493958099869220750887994470859608583224014634997189256195730201829639588911516488085920276307720495519513682062576821292275827145392742676735440510897649995849875653563574083534032768572236773569213254861940333210081964095625369276891904729893333004829704080512734313928293311215853601731851723634744689700710859002492056919829271921958715879319041336755599820935005437607522191416279620551687885329429878331964091356881971547978444570799109836536733432598583091330140705069812022662117918512882092328151498738206288201791517026144283807521932319455911187338465330656591311457368709228009783424178129349814083592416809580362164982821916983277560679154044317326186384985147650043077277722382725179304087590626474297428643634781586783087717478122862285149670260304996954074861153405602564064731714033908003484411168068631959789846854785243306762640602160300518188701113467335522123807812246752802236992744604024541290762348237465483252653719830763073078479070324575931318357937501436891189111482745314853660515163554434103722181255920834229281275659254322095016280922054216574491282577872281977905845191918522501796342236702515058913637720324337561153186999135920702121660716979033943028382323663393331317410911095151978362946860794541928816844430185738080364863937763402408528748794561573925211202087419480789902928122040509193585619959898723194838270890163831504357482925369974680216362371380647728969708136945171500412655189624910756713523725327321865174236599672858986075879795389609424413449176846563164990381856014359525792371272625714155811085641766718654798093547302283546393798061295132416223490462644977067898200170700962541337544266776359316386317215291763486906588775342649606905959222820691420006462074653150503295771859258580151558443089805497669264919683227899252123804846494918465549356213680902440815741391915537607252274288747180118059316905014344471399918223489808800982889173916791397594416511385794241099073906155237097530920041959410978877229326845906505030880797656416184257062311260853300423090127310948366678195543299880242758968292477689844027869527483871170443424275302717299911493005216822214564629408043303552338160262818211104820689845124018938377984775043445789171124246909795960712698847146800973811423484229913391141885171383740923799985198095247081340228937564842202975250028927358698374062126152074507367484730750684818917409464037923836453015419261208604886034905405594658455738445118140845975707587830504294045960613797691398093575638964069189314017742709915217597645451458757227020097250435945251643256482171377934917444057632840530585552559156412492978656078910215528939461642974691354841411552674742540303149247081540586741955336822976928713719327272928860929472062640304375628969719610156713854642090361440374414224413436184921995653783652209688492655406164024690763598931157389311416358953592262900125838752013659043194984389623900446653444893490969917310089824686680445596935910136633078750915786968565360275120507808504891546629502786641843405304223097050638745037747274692340895185359603139767749375982818331721890553744972477409775496127253515658256074499257178512288570514077958265343196756863207506751561494008958200564222436684457391412759185298044640119654323349580326847985469022815900570751865128217107873419755785261062744823295561418763153407004621431751694041630210150536496817405436446094124301572252028223523547712864768864265322033136650104358622703696384068757030456359715535460867613352157429742055544845174545046955052510915935296589229946077169506966254847166349298192502400584149460397800038134507146334787231847840713675850522915910258788799880570498957158393300860752935296688105652205653484084271842808287841846814651010335960599406119691242892372692156827499486607035193015801379497304155035392339395789407374843742014153057124086187747259812776371243008534410067048055251893440448001236611619627999104180178170080645547111307680875726774740769350485010536880334532034380720082801378530138881184884747816812901645323748257491222002576989507607807915072848996199833710295515853805056155946154571281663224690233170664825020266843904803247434232590923818044982741501873157365002437825462788891635809856249682034382024749057180754240424221233875845571418943466605380651385454838253205845489660306078257175942012467559052780419871066012229629152644689742923461053462495954137386302807109252332496951443264954618349490714767312679052222606000779972551737240844205960696889743434824339475256667535115709781709268703378872841770075032792023317615021688362437725640169820786803596249956898497525650061121173583233209296135942045200173778906486312340434346539091490887002471373350355768983194094344091669658644009124535336414094960662693493529148833600289929694461536755210193367876013571366993006551952381073041858662920626256217827726559834504988231144478725441475697918337681751001926346006777823973273292906407521636466453855920476717751899529264712279784383424608425863389009008949424284410144358830618003119013064302523931800077815476802357313709563730179650954947259960066345193655506268776814318129979699098544730182547947998863321941003360938191994962259062099995048512231701931153272480834880287847884306048412080785736128371597968811655747596935631474069967476763689210022366242954011108598946368434235740708893674310988492700482374990543362245581686976433838005023225868932232360590289479366823471425074287428660187437655017934412946064976425075827159608450283273260201687480174583530413625664661674041890957300584181367152321646277740881694428737667407871047402755264735506926026485934326736330981662478063709942578111600147871867278392843831667606049887815714991563919481805803606470383479200737567958285120835583137804957719714891923453848630576541211376700974857259062675140955297519002689876783854258941731555267672674668760898743928264520128519044588874045289761445426019361373141021155729069635637909518152688179500149473065407668728588683093484927821920948493343101953192643313451447388537241238045687974993761831428185266940860082285521675460654668856430034141225831647098371708112311049483517877381474650079983310123627603287391936893903873288614333417563348223941867162188321569935792600472955489000542745595643489028133563574510107693927902835582574216115011702242002564156305420643494969899190282455933565294780202539449344259328319392206514271936011224346422851443374417843552175441892348833240159982730525060885740462911684488990564415628578418083331998709886546933840722676579510074598405536129656354438255265721582667574695896375578943481249827608830035806557273872886599442112222932305530749324461009040812436348582390585314835197107999864501542496106940658357937012698036673409829968357896869837898539473873963209667945033561621308540458454364487729537455726073690728805172589606959425616184935033815014635195344361616274600372010046133001484848950781435891757673572370032542933006873618618379691842524645315407537954327056734887999761262609685420216012602289022194651229291009619692254841720042125888315711680046759696401444470166623014721463004020228073126137405826269470842991000288914273849291547014052742563345207608976516519305219646582139891428675638277914259650052585419956442788904393633602732432249971765852632718515568032027169705062585670123121641600356670623556525006591350178076049576891536418965731612755851960045804180246667209333414460595630273787869668415067884618191273367834470597187944221261722514439264665640071277290340034778867794260588315652798053768920605986217562717578868626631831355047598571305416104281654484451026057966238893643998736258457604113277978088502811776689437022073374343395947575588922363342539904593120734515868147076064675797879785145690079633876823432128755491631559829513543136231357807892293203185202381574646704712001324263906463861615772248507235543037780512619590915119890325847687833213455900897448375442716559374690973577494052526630527419260637375380555030661456567009089612621828162749559251165658198955280675218633580114902002913783238576033922481296069922033382670086156605017144888066439804342024840316970590419813967015579826377149992550192498490730173312077224503633511613113188937491615456393612210426823425767062887830545545961483359509917680291666359610826321182721927318248098217084897154945823333617827531778268372369295463012871278858443300691378916279028772750172369923405876329683169265197661039433023974341072875943340829291893703209865083594684851365301642490295628433107018322527795486422787250871476859920448035635783119447947763187839468715719375360968570869584972223693578012751005029543143009371647989772117108231268155787172656279008877476070584904665046263215707125822474077303094877893082462949320297283158227222644647751056634910459032105078533938076762176097404973602447811664599400760654400575300039620043477206478016383926768620707973826759021632911004269744109348401949269883725786154329589961428302937134146312923194948098852896128092866691062595991244117388467589550173482446929148778086373326122852366016922741335026026724498985729006803613791846875865689304957350323643849547879571289467995637919132550597590929697140999312972494210650674856460229280995614851920335789118355623332055342091746869805732933944023994911151917591504838365811081923678618905106582912402476121002387728803008150806978804492266767599321896397847999387511411760631183413106883134210568968075103973566970407558472277940650631219770062781377932311543017115790477201587673687631587871635814454210166394250236058070280572439948772342459035059091880509304160052310264330188432949880938899293340939226423944829784883784447403758042707690080702949476908769796878072653311876086020263950676523728554175371579148809294072981454687770448391792783795121725572018287206550212809402016984100260322863615671464205330858445095387322343627299009712095442594255207988822242130668535481322079074424456884805851832477712550101689630085055993275574845451169088971238083608046914174245059784143314328039834764678034225111575407716265986756915956711629906359179109531708353421642950144156998596417707984016371224063830599515296326885573772271959915083323335526505499661094287700353449127583965145680846764761184866408601327093565612281701263176678415966182307311475134779742877217424245947720085844720649845255806147033703873436735190077297959548396257029534222304468024026482342850844975984157930264193655989309288612454586680484643020828673883090942784553363929112962750501484784467900205830204074393849165356697275066637209406112770904331731679609787677607028888148811111009647923161673445699694752798964563659190734876327375982197059738517796223116660724901371004925262295379987102019591190126159112930657756670247002498283176327002830862401632084341545256759094476470986242516776135416822041062533528561332941330749342973662047320370944955640322778479910287635284785650022728716135064275362098873178219744293804086894475029336084493058941455518457065436975263270639082320891810595994153205320046256721505710236672072218533962172004423979557539371567297347789932586426899126299472500374279165368130714337769968183438760453810275829688457713712205914794358903540391017905387710308033286990197191538858078618681002529975485370864141705132804587645819647005306275549068363182808818265152151751719503898183927799097236277788311447067130506000954190168278281730434164256853066924265895478764438742250086942726649149330314635565093198549303986896173445157203255774706666590032839553866382624313275299222718800498161242970770652043720722938108103755989138634629345893530243520146684648805177564194872037623683238977119478194241417018175974718910031748870409978246416610682924947800202856008493882692259080757647844733812357163348390942626671996760289965117752519309475418745711233164579047054992499016011799733233498560357363908101047285653267752299204696057129730088976914693477655204657308141491307265724974642708876047989643653780412503859005986582078780898053923875447966246527131493297048954022901374423633992904933842786627414350623352916015710511759595208215660163295006421025681877262523185196160736274974889097579158488514208896753891946213080534271505476601101945651740895456122557116335721503161747668447930317913238159287902617057978354396705784930982418753779959649099974540789220843570727602925103446559858007798574954228200037244419717545269947097765940698122376309722541195226152526285274316664524755771596881131624150503345889619333149225622143111077666351145968546564422304515911718836849166849799995675548626056765555461893409526818517631712582517759985873034965414095911631069511569387281389706644598087841512684509422748967098563447815771185081996513616680153744114515441543415242096457483532100433413459824608201450884633283408917146542912715487409876045884603255757225410612290623605841620555930299697260263532265947746695638145506151374646926249870878723505260976885616920315008444683716841269336708806721236806216825762244245148548549884746081219488337958751453570235580845368987754195524055185224767538945145394975036961162409748765206267145900433293716089989907747507575891538585478156436035423676842292763139881343381757988594063671705454557007575470322648001168331769819967511323366286869851614642335870415125147901284612711289545326346845770385242448421321728074269447286590007178706373672424094492032327359040000374762424961632509536583886577427500304345908209690527753775382920700090705863515002649944043681441290159388358536497786374325077333651312421859702164335208119342866343567221970538323353100587683568378591750034518731975875951409058849949784147515686445754777254518986416926679931600430704374400959301422812196557918876174861705075293336504899054700395643903485250933799357917088995215606223594650349532176899885192386006305722956222623545108810796022474710894317391254674898779228232770884456064352541983037312096830297176041555149625134091441841964936863477946931323673483358786768879428979616267239057773715824259616300246353116558202854172949404618569956341554651847807046671009407025876518142541720123373387821898692143522867704928130688111832683935029960067993022841364947790541079512397433105382178795118111851495707436511644651933836955546767928396607902389695551147976399232669479154362661950431007657273675692330766987234825380505081844948738134885660109948571429983636853206213930012979237216402445330028252798451044292189444703288827388240003962373450779487358700002663224818468889980821690451973364987670508341327872285739880826900257247399915618325924904855452609927559552861370665018595905537507901926431014584846569122023392912610557146876183507778906183276981860172486023284959767305857672895970613126191590710478665815051083261116457039182984812345608760427695628461638688049310173342861528706355438575512952960817025896131904295881863552108404951009089325317635654559809656150698403937034670189306426776239861076784991269174731366115195853690139812107919931090964195011343291678190196374374476341177476687025844911291045380545372582764351947347860995759204720356916715616819819448081513883847294062115480547552624627409162539581380995669457581795169271284571723274380184982280456415568722209637503436494634665674825039780121264222479857742180387355969280660584796014474417761430231132577065898416032818892851352857365758764037689870177900007125166564595558008761169688198913125693248570133310504940290616965552954932570090026149350194167236068429895300702401897964294825985439007859919944562569875437051131578007743760608717300644973974492708584812405112716728825713486579198330324625244529716629013438206573737756783467593721411973301858712448795788839200871152881561370070360616540454408398291073295944075845218592125498360412346363058505994318212680127129174980324474823939617850312453522910895383251798600081143668452301222191726743194824682565301963840256952945388521988395582357474875992964310797188545617367555587212939655416745179642147808555395212835807177612759970847558043090013646754236348863993689019363255675227016487140638432481680905706942686722736744138897642124257687941894317757321695028881565851622927265026353928212586396332783298713068071129339833391042038657737125627771254443256594615990188194302194198799650769846834696046086044316519334935682853164986320254864228602012780176354237383186155778157204655088512808105669007122774992971761219395494773681396323131806196388916336265975383656161883452264707314749699583537188841273536220662397902599840562754845452729564132775630518891459451504233062924001692308400851828108533989155058675031523905131533536241312822658044797926366113516791017246535511603156983173118988018697574728615207107688606781691625849481797668998957387952053365154404699442066250208675351464385782902050416687755847793253863418687073146781649408918921833743430914740070177631802761000079234497264043601594602221081346670492886409308472975029888878535185592617184968414404652772575739083720848745345751032770401056422586552585549244084040880122476477884848748528513156291383345845014088332169102198720863634850279942398015178984452558579671963264430525368811660075905481223482574529569467446880792685299576549097851269132469092028673643079854905913753592677066320394110889684496521901940854936257325490979596840742083350499854789359631433522662796842220119550665102559884536149257967336882331864426515400933416878712619858875616398994515265897157985845132768053454629645904730725036921924713769125043502103350681834922132229715411296617192022675209383808468869952511823387576967053289574358135541481670502404425289104734827548789696090173001514477039293545887555998307995700289547293510104915595473614448739315959622377595058580030265851286908541896433343020571260561502202613117675135371217615547846281530042652183332399889251459165494194132156542006607665973114024690796369279900518241206808741676595016224837368858298296674559079286636613519527944052253382055407170689350868715854058129593337673289623600445342122197273010714681398086545811451320445469814587751550006784063961137700524715776164426887799262182485375445582502461828442200757821291847068378377998776096670776144994310597696493889296620296638767551306530601055080220158371094589878194628794389670752786004301964829035102012232808885414790257383106153488462651055204574546411772497398171966666988122998118628461442142885249574491173546058989174980043963599145236158310371341320497672861664176250636551906667295224813849166152743753209248334463792917221739111722836038405648822830443762984795921158224940457272795371306655369947187054093221778432880614273519387244373952842673397520850896605639385247539934093552013527406078398390919507249420919285341130075578466847767564694781117742637660351136621265491347595214700920026870938119374866235284189052197010618102197765346795809210574355070558412086546776747202488340083869852303667547045011009232001160587467310676445251978470350250363446739133769980673491128550853678806328866972175780331011323172336020376122678835381191336414093973980495744031037391928282719946978138668358480107436345669252888240622998529858402531530946123318631174195009669150096386037163333810175402035880003606589958016072209740462673072426083375708760785322633142368933862053711487189005100301219483782828199682733393402468535287904891174252353204274405079676589804292520637488078723051785027476906093396940084105677732876483414024108530207101019783311702418437925494237640606918270388639016212131766777968465260268014118472996586508031940789838373898436091576576845740320342028284157734360603274795419616456184343352042543927493672799734813297112269649642836413449591286766398197028618604678733071408341835968399580204735767179778138887355701935175752954324152327685304275092924202588615866964806226654302409507733562993954764064917157233248216055763985734581898157676047403995219887457692393864154313901488055585417165169767143915522062054339533776397033826263963944985378364395984831217716430549081979057620627051688627269909680250749417043083216198889351902840736531458259757947731658630356952445932936679708525756971888944412387478992196784115568230424326683571855093860537933252377375145093041028721292745335575934854045292555815942313648455232823564519296811992296953871268928561984378733507449048000326032939462209008280130293256075243490885478721441350418208554389162811852684466390326372620898946141871635865871338566382273907609950949023373892086904042480712977207268759853256823970061891775773776263160484185047019356106954565031060550735648321883368747371303912933572312284122820994245960354069210013175338082385231742488916689727894668207841330124288816872853903040824358383011868389946215932095471697489352244592751597163304580074525987089894490850354898456023260464745262668291236505949275104568874073339620024753814031622113608331951229031936003538652918664308510794932033363544142532556018765475701883580508333626912859645107439207714692611954340858862396015084266404594259057042639736864009543969975218802866039179541764577270175219556320678173877692111295409301144977736744969692994866607612168171139273985408652178524142673588056124881426526973590069782989301025258884533704718371559654245004971168991597564712735873978240398990266745928908142069204873415126353539475185711913634208087188809511236416640607595833213473289841829581380685372054858278062956504684659649797739949823860559124948417992433624101896345942254499066540390058346823568530402380732954758160155472433210759368342503608528755409905390720428595914347172156794531003640206030110906199218076526075437700318880541022977734713949692750197645728363218702264755573356546928573752969854214566808325398275163824919957531343203373749965692828378047972384003082080367665843010149735600765447463175150114424201052194280687165824665404510947855001998264739691324741871636187828115052166477846852894254493449176093031992722537613954637793011291613287522097637873087989006507035053688802958745163807403931136694390715353946903230442207456999173366935603482486469710780625814181237075618467625567038423717193617558188626303345064181409280894716913348623252497630187565327182393114598346289132330254494298694266071588228813313922017017352965697025117049453551212525997248064222496225418054983539574874396235423848585294108979343598518477843889824819350502940823423746088041861622247728399328727905623616208090779120685848333482536794932979125784145220688951836609962528081290810201308494044838456203564814626735114765641997101965885897044734244879842650917771539581224041104576378561283079896166949280069063920324140927212406844037084656423771929671289898234136939972740627989107981765468121534604785650289969632409794612133582939524914815964890953395714141087255864521040507082813031566425555633559401041882533418483299037902934216402071976119714162502672351952889068627388236925216703623452192309478134651970423747070007608808036645441976553546605142976065840610225559793945275176180417744144114698922790676473610187234112865641654438068023605540156337157330074687228382745898520554396668143433152175032032757096049718246741937473798967581085342339604880181128606228334876915940503815842642090999318911100033970938419026240420770202359355501048638598896878284019299370123128373201792992676866934217905215838298712272791368852199796492830895826451625187349190567118086088465528231586631820536520758993571501510994389526076632072097125400301576736691082386229043631232969407138509446683711110044832375566926468703191226304745100193785401321019048345796629128552845308375956278381810175126536956380300008667621420642377524595364680867501323764105950035253546667505564972417600012594544765320909946243232370983465046022432699756103726281095237564591582811330548590306782254039158670878539406490027390597842485165854760664844988905242437810612341525672067137698815048070854248015936562996529961068524836469158048231939192863580556803639387283031024247125884903856469483522520537846988177629474687457551368496076313116851673582088009686083953707269354804693273143033297140944291182179574353041909083954618825432109787909385874712333094902612067874307587372591220898161847822312081153549100499304152043555314927435264280530180528690169584833342859480383323703276691837422860076953610161711606901586371593694907243120874822765138632576152724668812045395287814511166213519949227344230570939133262411021976012089272230727577330978734740532798058230463950087843304886441328639070444607210220800001313748549935989972196430325397020148525574474287295694328696784466170796867032197322106019720880047344978392047532687109637333709506806149332541528738188532648394310612307966970025081373990270120541159317855377345343010799501279045896988494814980484829450998202709103994188222176394121365619640087034774679955553184482461538318474125064060458857893282474216164044853041271946367525992315230599701648405366335056013566499530923906484109149806055826917065092904885114018149201796225498224856513745953654725695080206852959855181476310631296816839687678780607744371199299286327945211458795715136423819074403101447010602853019536602479616489718709188297919139431980000423504918177727942674970071017369770068362565232153527792527290295317427359008156445962138694110846422723395773229730884940126341061550842776770037430950764459354746623554628467556348641399579399419564658428701905398299808009397791943535942951351682427549176173205999779588280766481301335043703573021812526204483148874696506362640047871905040500022072900629164043687793059757844044046885537694757260066212206440719709640202722680634652551788821712374380052911674913183408432509767770868797034527771935044004523292250055778692438758083900178725285129972720324130021945001794195305672465456547159121843244750204694466659808455866225728635069805667253742715582483364629515713384767016345306866190774350467438397765917684808104457755896754770866881472535350034737864744540207771864503601751941474725649487458083785069941596105152420828497071482909498180014697881618734660024179375829097831744648840150210974219964269404604545115176935716489692462649691681379955420640202519432311141435262433819629605027675423395476611502476676868881357489789334807742688970707846304491629742955594019445245443932665974749030595910147006349706379966426949899364322412172241587450777279457500154632895484955610126697414422245604334115565337305310166467169181718405559940946451867191966630971126559276923223373950699297373882692497632273257856654347034309360219290617242279012955616013213309134470541017712750850854939469558137127499185444447742310399724377400519998841051955142425372897554643735880256170194421179651950155373430338559610901380931516816215684263974053764451690004852605485968206239702920693356067024267029092940823304764573481061458153259609024296121513357314573956977598854862473344104614647916075278214592119912542025662004878081439169681564516195257573352624336595564079129215195010041895805261897894247741622519660568363246743724988876425267500119511119994681065965876751814117138847461763769030395015678824518238699774526132309032432255695688858061512604682840220840811023631172709200222818454370669447074747744593392425591296469604498228187611908523270986597446449423332610424538175280667319348936902926830182122612089539692164461491286027274831558589453939244591360927290100065543586826469652488592355995394597549561779281754476680567582567231440637403003007398351804684306287016402156004384135345488289865910069664370249362835278858956106945548326657433540646942225006126533145909316748071391887873981397907546186536577738207173906921698490969516399149864882617820382775013589487870816346048069351363704529834012357247713076616620151067366320303367586044167667159364019634051391295191252989136345960817032238372169845654551397244738681660061678925990774070054228712881939033615112848187985938031860356698235498797097797602207719459853153065109960733690482377705917606232858989028543732226777044236360154166727504304114431460810637666346808056199861459896318700220411830316716901435530320183339323337566649478394722596732350933108497417837521628479894287976297957434582270952120757272766349202332159896304370013639963071624750815619144479104568908332212469882440695091783520265773586278996304112844906166284408936955851584705214270227592331937294588585697528529604626504346454745453598837295848916134516477349441484758512490705388643891093268565831603572222102085893094374065281961224829390939294217096715162855507156569886286557101666029740674553699238025913386758051898049970066745782895686792407990022614001351749423502913352978862850060714349449994493786804340094681982249451579511439391076476757046660362373661580315710354406141570829916833777898763366229598237905891602129929351643911642557373057215368419484362828190276138532731942932844248348136942953289137219454990645287064361038609728361158722487874086629201865950205124488952413419114066532479038580639080027616551689990311740630249376608944121009903023565348363598900047546961048128793401466713582508474983509576399383622644362640110904494641822391948953647191308351887290129285394406941875140737134774043137740361632021717350153425618957457965435399238303837177382610938442247414011209825180940823437073797522251272841068665453384952477466222068376628399975830765919901972453504475231263810991192704060054613665054574308045376555024827673904564731494953281950271561339949177168415688692555418382596162151944123120227538933561786551421839765266226018958238940688881898877138096483785800795048643328161527947579184160795976263907313315913109149449985181911084494977450947474989695613687337653377101721635107133457534613463253835363773776807875369863737686018219578666486010272646385898116288437316709317856313318512335905131510545286501187342138342172998154716264271660006333074636324176788284598564369384711054142379392098965843254840120752544433195867856872954226070585959155582677132967407628743603026527908805111790382551519411899506344619300856025811929084165662631443995082842052513239311106143389001868731186580573244294537850912220043393528833792432473344942197861321446415253480735321243799595765708088138492179214321042304207338801160475515018871252810626096928560832664105690977338214632687421715229883361603331799492519256940067151985392253246075991518924121052594641636422380202421910672774477019054632772985016935609750178150193039022894826431450041124643283624912171806757076700079114738050857920123232994243999808192832297852824502183889097992763489082382646437926906121893821006703893292486629922986797705063366150341570138305641793688877418708899068381047481871633033860559179465301625110415701501548787843080842860843573455371639880649314719959095450671155965435024005215579285193638936055067666138866121307309459246653416408442543486553846276672456446318995403029015706636099675889741306513422209705271100940705863965949696963166398481301123877791155215759398390479270816768699152148130015242213093817169145206462506334260927405004166576074791821240152252783955087314754140068071874503867542970367371801353418449125626340565900756536115161597647020242293545673798966417652968164685803590444349484800838861417297099192532664525865572948372129447339727917847516020742051679061918265799432486717070119097558620172293617399587296484295330662578633595308424475224842303018338540388174276661784046065098859679325998567149925822964832641658789945642683817753678925460533136772288415524850814004642778177961321755268514849199117136450790025414066444712369845229162119006584861313716104638794476994107890803377825907282315261638964108513820190913034548673660782567021801638869651582270896502072713160798798502541757185407056405847602933210566843175284802505417011729570109803842744478765127694322307610254814215957529490780066562647318842134655582922628314748439287921716008244752808660311955896695110896629606898791349089101021211019175774504665914703545286822597679148881875661637219138761480750365980390403247663749508792756308301432260085552090375070975096552137731550749053122029627253790646239358903296568158950370247376282800082534948656146088438006791645729558619079095783588049084876404372793233056172994118832112242112454760096786347276696760245176097160972046761473145489284308228286244012797973621755656086883815195741671213336920176082861510566367638260147927446363079343907488609965090812642038661147464487463201268680748485975259155218305298618028441568782438914199309042870275742523648041278678511142016528181938834425669553615718449063549297871669725383117046290872343078803781998905878530364761546239126189170764936483853783394555176567182815243267055504405887858462200400825267243288828726885274192300773527386931503640287379557548563298187149478132272049353442826216505704019257785200802990816343068248080147029552059914901115044100526258094119850647911113705034853189035853338994792928032980943132933843489028733906026434696210122767603421640485634198542003157290864471472958134201655992479183041415694276603115301857363625875236575920368825352670250255036653596538889940172105085715380894489447541395584570429935816487529839395763171685585913182754271248007834920806453748781387709657173874191047090421910226836542249112518991070581606832795298446155098932978300767220443017280294481375988352936552835359215041821048566479209153448854402026585495324744847820570325447859917693529773600479007132074274401679453175746783955362844696401912951239134846067745002947096180138521459746725328491358678750398092953782993561212909737816412923111640997873745983819033745087717010318484936097958969294808032089662889977848593120742984792456976599169098179583354231365667556929218787493169443554479390932416145158485518805178776617022961109816429530588675018457093346777683136911361431868335695669893352857244612946334320219996453889231070754639290540643043296880013566293698086216478700016904258112783665402463486129021038742217832276885425947989397098570772249822380654694473750164951874131935907625806244234550718666784912170468303594749877637129439072423277287959640605794657908875570693425626273722066512585820536777600861350144147094777805805898580480634470290602880670670348789008865579120667721544597455607455401340705757754477623576432390676162796879093099260882503703974429579267444948615277328859535965269222584964598625115449412248677729725059549672656985172413602440974748014983111917270408536789592821824511940149536142103152929782041782191272498161157800685356275080589461023884402022940785569556267448766530155439854968178111728477481981908482642859774078550945245846669232437477659994423521935901642132919614478924240648316415313531013597060239623756246290094804256142921285570376991485658217886180137977579900208082460507545949819041684784615796660661486876436411696941331112717216015583987338745207899644801500674165171997730562690215057925856861306272898644820411303336390727488976307987309212720353726582907307501413217154358418100370865496009342519065460914793356765618740546251515460498716770364710483318029391749389801252334058538671111893504113468630171240392967895926971949972462017903734503288689583097682116347086778232040138987261802305263413579645244393303167605039823056244655866361151589347086445856663396738840862272127314956113220630581325271487519180895164704170648952335547322157880173922743636450184402157926752194172915022944431453469073230283661194875203122805952690700044170807826037809111424539544781274053218778104498513825501793274057255620635840646869610060780200892706699256198674510484872484180456369678909293006857507907216849533533042665976716555752771814728935406472192610471928532669434800304836936023651600034196837478590890512592623258749383601738450092446618420945382850399880679476277274005113706641296301650123680389296706985693137615279550525090498181941766202384245217102218580962103550745473396124894676536071122382798005240430547648007546628894816424910055947734278178224078678068023051599942258483888513279456398814673549141013401822858468080184317972396866463380953123500026905873444619476392538771312838392069347457162962035858637869768350979096248872872973418716655508722792888854866703339521742380664299937530437709340994611421212814347259413522848063169333362620100397349801542658655734034095349705217581796238384500232708954431851293621143342319962268245385741830276899841549178946317498353135750401750990252775426912736110000929054393486553389123832294102675131151005695808487209697864569015660616573202300719971463319761621614902567956603690139517212166355471066990986255031763646653063283176120199512956653518994128259579231142422914392779797699972869413702289134785224338388900812647506409381910716143597590585354604286911892080382784475379947143630084118526150061920540171711725964277872034853836196046248970870571566526840753162487832885902135346720394419337338909424824642647085837000655812879275912567214262594463651625860433956891956538398251428054563708844982843144604791286911414366830691004742932470331999170857116328848342171520964151638695488937596300867045663969842373979804616443224226557613429626044839719572829910623883008274881551193178254745836864527941397008630665526474974770634400629643452047792947911758337033253008628721203992569643800142892208216512036151064315010792155776152835550904357614173464576698015729881007779280820164025561153158866057601299268371620123315479282446648581953382393441953633985588211331204617724198547046777367168769845008943303887139621422291691344717320683762441361708639953439103539847853989146109912244407196550349367583902604691422945373190619643711782765848885199149418636798086082278736532335266694096179665112084475098892081443860922547371887390465822681918106336511437639688789485179685268975426185623736011203042527971642248875762656327018073396480905964049651415207683825175437438671259292994335544226579127050533035649751265080531459302421785124561490055421947963542829434813642778120225147884707973802556660490039726836621472068281908567062242874000283471326023756113773560143315860911287505261399625267774979288269410260960353568781400599346181882943105064659237399448888431323800006143140991820396714675378703725623426473439038080997235621222467834997024051015053889989227645624590805770820782418236599090616766219589365428682574471963737765450237693564716465546099219804208299645870371096594203417250057035696645132644737688621293354445134775761043981956600604662050550906236488429577053879150652745159670619660962236716734666038224151002827907062511691749109421459836418720846275331444497668856563906784705361890062726029695276321046431072655949295095815162938865170146568324223882392084933306421300935644959400331913896617930153105382113097365635608120770410784810843506731757866446366256632909465207492886981256719155829192421893339559637714789619656742815569550371900344460665207666336301453103341078992553657304645282038863729754678201342603804775763174933175531375003940091299695541429253020100178943671790049844673277207510657002872042202733653370617203193601907962715202971337246042339838680098380649879982558205715837774057487645787839878623322249955095157080882717973939356919104234407175092682910584692204191079480787160042730448069236783666092075289462946810645434586417127394120074829087617309878403425573556839306883861503734700681580493923443801187393843377912179134827412905861060594850882387679911309088392659962483077868397202701345751948762231563295446705832094504115439423243835247921487675404151338481540298754108394616070642424318904134223309523768567918316103564554026823175334810582483567445149803694139282735309151975423309946958681472600823155653565922772168338288054568914503937997630951592229648870441364837042212013652939376941983394645395326835180205420761123858199682141059579706803923574377034419756082204774904709809441420417820252025282682236373688261778427195191281978215407343321416620082329800478521166639910839037550912164014679726072913506088616916610058042649686133446858929137943463643625633041254440656996413148761644049832786885371535151274434028080911084211548033556990379869582633288466928769882916053581866009836437379009947810998826470000132143018839545619385765742849360572679788583779587767082929509702168309933959522666975641759353346379974307485708554021095806212931814350410532709385612217244816299745250699844062970439970677809033949189319763671931403754605317851883568966180211719230605071749035583246866952819267763218296386935757224438032160502213376945069633756451217079909548223691549951027678901736913680285159889167549695256708589930624246094138610788367175105028264022595552315504788528835498162989180200808962510683665677611014872050436984417792118959057953689664813130810557743933476769509713566005875544534662083949189260007424172455644390638877825443130926463961152766164786643638808737427875678325193855061465482966875172743870665482313213360908937459362978865577100870398012834256969228089592689548853827528252713635528765654991083116189350252554866954298682524978152672588779031190787818080482065557245519007323401921899301009541146054243248695242710664470339342738224701773310343742750217444770612961705416002634313380342988332219026395892545981046369527227722651589708634222097390684403427748259678628079042599484844655614643764073613795983403725794957769322455986912497730760159207374520047641370185924468428261372402497671825658362647285758911738181565290057175455089651247189558976767689222425141708394612440734969603351806079476602775210901782626261733439799084458634095701639575725590993802714719383402093032466808526621010031845292693329051553522781333107547180043593086637083645405505314884511604087872306706055484119229418014601545215073385722726854341670235544108256465274277974324397060026987602704874327746758041811293188034044597383247303284917979928040737159670699560247672992718618296936916447038486749946307975063610522636458364943043511036351379582425961862796430171537289143587442147086061747039431089065291438006221720698507504887761546975420336354601601454288772128847575814105639259710433950581772748597852741354695308101658378734729950139132954169758414928787100191287655791368825428655814711639670517192618836158569271277722149981267593017857496452573584847423897700802902825069448202207905156353664060799521550172997838215621434349999269734420018420353038729760246874379652879946142018369248847047371231621471750535378489442856765498913056007603525743331012254672045052162344577730799830979729506975483172327018868150792183521065326448043509657335008461368351097592205553886680710171109112849034168791715764987393217066057610935305797461378166639746357886957242937758159448060108619626822014935020882589798293507802504954258906563126196535035849894132427342203557306179709796588525291887726217934697756016624561029511383866294244610293362004790423404500622143335086251122089077209582781380308859410548421237513082998113702583590213220147442953128710427836364724608515901760577738708327769753069301035449531049535196793972060968668532232527842436870653861624089434324585976101177919808072897303033979607807777536948969543695808440197334279599749467788217858257268821713434157529513715911765699023702261025418979266974467756255068365304080137084012900401671094627010853289326557214088775063428538851215033465022884015714018895270850987743581167610158936738009554412093179651394528586972553215981753825515765497042478942161279691487928908830875497896923959505495485924895533288561843139417221835920264581713224558493891824511226454451419063273074128047667716626295562101657570050470262978601637835759134521971443965397141426515529313966581064882880107826589279209357182530455193190827796718884123032374768752128423089636577455327332935026848548248964400475871137467338608337997112523129268536028475271580567019454363000942317272221450240566451135846642706870026256758267557585164635906980520837916051815339682371752719319611765111181487439198817081604792288253118795830411325307067655182825786655100464631379707610204183850384121745040533035750157498184110459981819541321822609251506861768333664208111981286721078287821085679465137038021147951795105280045631658116512155290668459873043328792089919520798297594311595342633678822605089296915216398381962743078064821722116477057737309903559220441424425620360255099267108737520348205480349102153479739389237374317897383545760574860717910311332676907201886636889668957095335994399667771982387636454208280537048226084377916619362774388988817343889373238477035792055331212020708758380565988502250375583731530856926555078114005885094433323900899331749672763312044625563456710677442550334056175000484584283848752460312478134471947666611446762303563423750653323266373263222030753357138910597273950361584059353980550771165617424611941973282345048128200509091568158690433537817052939942647256035532535175971526186739545049303437695171066631170019298232832906459568272264816393230061642843314517418570548659568964741181753573886631887052220935277187144355514529956095665466483636722731439132618857168596753971677701246655911369695728864313337237362349750088926624657127621039361755726780213455155500050628707215835928489170781043550788766434722478111445211776380759713282342840001320530688705562262643629532143446582471994788090685614914317397169423978204156037108536144772673809442800371546209384849803035896476920677233438877337140014670877769944870410213253761473637385828511208432162636025207359910592594103408450071990352903232832267542296011808355226508699643036268722295756591442435803287694542373735658528554795566753718942044241250177845395166585217131164643045254315386997303240351341513976047809782785248146327755822741469537767737827012020530220858765013589296064843346476578736437969893613418326743830068958184416950635913874100749539577812346468774470370892944383942466523472729943382668308795078599866848519753204768981558441012737515392339280336503047560089331843406053319330018554074287257330263823056244123503025589786395245796790620337066963048628739706413355339332703442568877145704814901158944038598419876491152550545270721610382014239758768179705897563318946631848659296326795304815422765293527107530774398019603155070809982234131620844810696976617126376355515113539552999168256352558097822868382180040660255753401834587710123748243235686320332200510374953311636842066734082050544831026359937993486708908697813058369126186752355056307602475462224826603674091069912935294362615590131696808262070921092936768861986509168425614887439890088580217872738401650136455959802261826968909908766540962709800294396636342908343372795241534122211909020281707162392797136533992460921910175662220050446216225901073045383691865219297557380527161568289647042699053388605139066287790409887487737707407264740089265321509135940122566371260462372273550360096510011923477661641511690733145544617589690146069045425865418659287031112163791471532607234920227100530139250835544567487790050610223080576353145962806373150760414300171731088589287464981501798452686172708238891465317855123820177753270698495050226964987963134247410012508973311506533203574696046447964115292200797342742683487946675284063801243660581102823097180957907717067967535097903480424919328024498557096262337196475964067911725279864818311253656905583410572596584243246635062129920462668000032882551596356969834264040282267930861880504122615636774331549577884741401771703832089644328553826859903549763247046663231775731649070975241207056488933398201056780724580302154459193497316180594174604777148889816404052398101318793497952475089699049623917751322875049732972456883683960417804315756845757105325109979828027512494702908334734552514392395538762216788755855380268366859391095439487993267211184283134058122383176277531068675218144405305015048384288252596721000625520576240905463840748572107915526583900437265209968409922498038735988188149252719190593266336871725583434705805094386589895423090199432126354014163627422961660272821643885144448801477345278737638726183717696468989621157836047262565471845203078104085918205348240181694607264417643780275665245919396016077183875114552876721854890036103577034276512120356288312723646066203380372802916379286519018798476398995309646930942555744255227449355952217331572202228563684303768755831282143201491171713521408957414887581328938390109600131752792686156692880571465771433753828032127543144422031469512374629093681281748192845640007103542292411375368909169306876729897862781703383460314807770945774638850813345342592734763632463735595287998304242411989627809159872070065270975671316177292851184113756899813595223294191169310978087702713002912388583629480228589064082806518789882725375156481697030565731556766610820831267528338449246227134704794758568251330661562968012018894553223464428819990058494656049885698317609111686366528005516285725730227708742322783738250866363898468128977330141290211910269647894627092115739539812212772792456570863169815458535821704574124101060096522452483768781304144901992363670097490700916962997358101953653864841287668227626014969833810948839845767970590158860996731473850656208021724717925415379999959040813266442082979909240217580762730622075300965087303010058900381822696245895250393759950065730193499988176213774256190098720713837699832265521625138288264466759552169789423238521412725184623550695181020918443460941817453804139847672896285071435726079330845905417199641067361500705598290229672415420829983976719865691426759587837102637757083446587962129709159898213702354266676929172887708777712267742123977676829486317823013321058694759898351916860061432134166667822166874314290134135740396373673226849389612343191552723904266204394330670831235539230712588918720037836244998424354380418395526738509101262518828779859858403580832301379893692097868153118395338162296706520793397683330577651238195822194095687115567388755110874143710389522518318239213656940290725650400321788100581410092435705301245935706771572471999054875724912448035097315210401525117908771164316048888264601556236311657062700575289237327387985801409082423231617054054699447295173617732550991959560565047415390052152826703649864817442111050498767054011363543479347060366982600534757548717253073642843779506480203855207607853058429135200583647035956753087634905036981066042123643460040188092762638848726675064828597458222744729822220092041786297642454731915087544916208458765485145620038405672748834896400597633828717088805734962696735957147518441075826111828674689922178484108616639835565525674453369334018880297967472335416031491768830363428803048651284740516612542414161820190452483020100639265880186065547679215997850887330889093501768258933342551205807111735722574708365300606481375535674949431873338164941081326253339590646685238854713140087535400596563962332038488246252524281335945259331247700821629648338022629773066161975229952650863397442708655366315825841936877592315768574488959225306251464367985869111382343852229571372649277487739440918820350159395138782893367860349960685203010629077386196052673139325733703868245654617328763015838872991294016789260664554934981927687466015963289211611712574432068879100535340566508231894666473117043985916407299053486918502155265103013008397914947912203941230273022183030085786977751294221748515952881320178746039295727440643229017667990687069405933336252082249965471130533940875535029732607479580458790414714420802920468760018527199072713305413620493300191331240772149268815979346273816201017020091732031219456229301473776172352551608079658061593815222373906141509741936543021855471087824854403751958941013918687001411850432950998899519121566146900205601815299948584529957816470763187845871658772241081125554445573732483343890146728683081686548404347089278257663760861268195407192167988649181904230747848311480097924571770104052851917689489304125494989330043842547687950152775423600096685608468165726948513295164973543447866238376497272018624544604963567884436024841271104198667695760609194397171962121352065138724713044082606547260996542346370145891847806660876433084281819877434624094556547797336091876920574330874511916114507086149289279314513861649322295624714338123003061955921965987554147053375150726107889329454255215457621896829690423863776999704567917555070374718841193344565705004506706460803640285706002701510164961603252084373137306660219404624391206462536700297014982749227768686113496197509261923570852438110923155050126606597182239895590667976311269620265939436564516103953075086774118664612358428893966353747925846744842269009763550289558504144661247549918553258101018335319508418436215472209844505346071759898496963827592890722079856543370644291278159119827128165936865753471366002681723028914788942241468892380166393086172016898724670700486189493730067952261954522812897479944249109983079603115459770676393401026448872579367776787152659221539823948838835400542341057828111996479550374440976584508702456364371857890324204505719928737054520440300716086072100743530976855808564868611078959097853376605464138025896239438174393130235624997023040389012431283882138826484184033368650462687668072051247706943841663428650011892976423095988505767302073617020561247322101853044919450647547367224688255417627637144110410446584480100727877223771382781509413898765121673825108038724333967722484450856635323097835874005224440702718605951663251158649666742791740649336783876465760049351411291651925044614425364619573287131093455789622708606675610822553941979696915125495576131458985999411171663489801960062006771154712257363129980281363107440177361522740820023235871921083695636117286534185368607736551360447483863846098664837472562559196483133564409829181122054832824866222929869309331128992052789951188141413445223112912494596091707422642654772191030008199604263929778249338637449035160093706549844577356949145112167283182696680465393114827257890824381670701958873779415779885468733662132767837503712810616515148697214516219589556719630896302430316389891700409851029059095855809405434215830664915181164375002134966703722690663669729051688819142462140641915200926450937928526007923101362578828120317137425246485462627206513008405258310700366732493817774277080102317432160915404626888676106506323454187115407500737437057791481392448962785934199331754899318100787267354066874584695239128388870497691342979826879755658824519210153511894369636079209900354939880137355774509619838671524571445783472141923842931283860773683817850286765718257494630880800042366081254282093472363527090126167851544888866478631273612776922792096307901953317085758779969521979321912300208420675900213458029394301557565128004192756328522778104034739331879207938633052707054300251611305318078183889637540555095229983374877941238647820010754139773603140326319188582485058348961659552050437814424460810640759425230079656171836859478593229648933972299339457020965324254839840345095246578488899361899734419767547953706677648514199569532999424450992134618288071570679267406082823005139133119450097199530268920067119415080338863727627482500613844373406084050826998928954191722997887740136980823772068418283111847731699570774008050421122570788658251235599440826182603381157712753319389119355238925535374679421161720954567476034406537744572276641905495919310498190096700737879208140039687081713942115902638040221501300432633875685476909231231131604104056393177125572963324078537693104606664128255879183470851932200500626036623968443210229413513946611687483665754275243114510020053678281109543948148352507743334153292334408972977468162708465711369849372093505970870142593014072214845624462013633070811363710449876579914458185347734140352707313078911490391182818194216435757564212008787574159910318132100134627929576198209944696373616102994397577914096965816162384183191133782019303921339575145196491617269646036150911795503020773421537272479611809967283889936202269650881027346988676905294038037585755946751478895867684652491162053930927917263880093170638718160784070302847305970843968254575528555431403968075121200062139906407804466356768214856810153398842101306597059127362894812133088314152788080254882772843444291758236487107996793498130797566584080102768358271620857475705600263557285263539197597853081258249085868683780022776477050227273990393111248099676415689300264289930507302676792407906965462619258813396365732544019936086787718003769558244954866399423998900964362522110168148801292028996777757928513685835321842819952785859934692588439659364169684807093904584944306576668187000349297937430763205808508393510944310102905065573543420152230683787762993215303630756678678681021841985881499018061205775610741853933931805764551466564959882372428992622183185065453860876579415673284418992320748580104983079166557978333834881728574987697769249203716920420816409073712330527941174176593057816798871614002349535275933304697316741800205138583296578932347340822326250060801064973546151444735571001753560687257460990061495969902686958103243541597731803416496400862707275698483650315672772307205419326320419381954875723307935883115984014400982812594151764088609793521982169485915658384879144908933560972993680671068569407184966207975604756557513300174023843114370250673878426192209208158948483154452037103430719312127905440512237249014634911371875486047211618973377622637648689421469112393984212376133311114996301739684432404514657135901176686017345360856380082590441278484258366803785655048508585681245740870557041141627402946424256178700351196716388856990444599257742840935673741813804011087045358981616579988680306589467107324698878880628673092557559528969291253237129912399073403726281846512780017195076170780951052665208319794527829365094451366542917341909299352786264678947829336589374608282196001556493280408633402146835362429742973519407849091231342935835643733816983964613215599809191795188335598074610992104086692462828121675181444789327707738996769620543496448491132054985428580552606998772269348157347475906926772715704336780562845279694884244319353420581890763515108610597973363804968928052827556082096029793621518131336436910114002466726505784450860518113947248365488864883712736380971621323405460201699979364842377631711583673615253386903709203630811305340610849426106283494231477560916746868460720757291202758549349139822957929514046599248663712549886784345699431231445961543903464347839001264290700003145843304854442748008829704836238561342926777332345069454802944585882319973675916359924132990179004327395536415021645380113349335890211770255739110691913898192545906077054038549375521921647228862083147608433946164979207344904655630925921361119812097737007876003792295411816557222450894974783448468956135814440771264187319841897269064400697015674781257472419149466803629751012248896765015386543527719005146890434947249112694498575452031595616158914880991978256532533044495600633750748624451288058691559436904027571457301586316453147818418491778947334925893607583760815939098330167678985486047269299209245533201447561559920238082174799505148342862359724636123119820500962396211027903195896501033848264038865013053102988312358536192909801253728572030444783128330585736458872154399837604917646721929015230402764490818796248533997873156391291468082401843346732144955241655412026394065625260589630372471380295139198405645432961156560474713735392107511227679731770324832119494748277725123638907117324560594331166183546197333728573736490064455046620969134382365225348651979610783814829538503414939433618915444080030318823035007284310209837980770644710114809053155713114803541393119710193600794297443701850237496470848086920568795791333130739849535007488600200211236231726934445361144115721069910588164569983956575230948836702800269144004861403142779163544733953646815241560119025095389879412091885819150771751789848205034666108268092592289565110377794279202241640586135518061495249631468816965326401708276154393343284126448146730766113256478993253628018589743778515535248899892461089367950594474123090225546935851101170015057374221192598620433692389072723769370223151654875261927621914341654514935769229116760421630398233000522862233009095897993701201285238193455932278343108273776016802163130018292324747421924566128997976943732645649577299542191588683547207355119133564593555290036316552889459388250347709843039806051977565493134106626119144258072652831529695796063144674579531390355643935890621194257334188200199405950844512830620036592216703976945386122477332874730276510282592132069151969582402001359418651995721741601324553638030021553278065666964805689767862320497027630769084630840731543282574412270796810872703341028822302306916363730606735632674474123287169013618936608432054714094137777564157762338663060189601955517201490241473671307410001672107786736623941866361697902549262671493810762667076267252345877963184417813334286097359087310658644532709682165162260720809313790062300262068552931819121762036065760942723981466938363513007989989698199325890835966545970627920030480292215353778306941950676666738707692463847150937261512748745954173622484449073461860013541822907238173939660832966955476774439783300812386191102719560831594976112451830630423034135597045163287801183303004574940401717527030483770875754517637566760252127962414813606354607282287036098673789222462117660256693799236575394250224983760394746940332397828648536522855011904610245743104761965698673952178334983840628039439678242898981368911527543884990539202170430716060068411037049227349330800511711848410317427370213445656009944815721367022225882956388841442668617999459697410044682195825207334348731609420692452957059922614623625829848821031102554678389783740175760133111040196089592824487015449216460783357605704516316130250909418707138419773723600161125300941010822205287099179241905258850992450668496112451765811550973871631674703634482391255141123637770909940366593480139796597644108617977714696269823865793197027347798873099956723548127077295678715521654699549760087086798314696520375852266931612014598407067614529947965381576813172577585086949458163889167953118031763831026547224116949860888672184144170919047651875012928680122276539393069473566879080121145470173305498455987594229212238355937865219141448539774237996705914561134388629971242420175650058000651690792892545000268228708689700634776106340861285533512646455758140900332118503750935898170009022095015030033832992353820023448363942361487694314480744426083791121851719336744577860078936096245245085315378933576847575449584504142949181609034349362905204532902173508241853047506058846694164035193607387482297497791098788752457922438751778487384575157464462309147431392933508286630673719293676901905374987511851531447882930749986186959665391801964058991250857544215495977729844940124458207983547715046449112364483567628463940041123469230427202843181842648530107249351166472199670150808076749155077484954357803777599606610684725094459009576922610846771533528809873162913805590117965320149734802679253962035913853102944723811545056489933980408552558979124199018500624959381102278944813568425451583971907185782564816789805746721944910681269889071753863160842175214073484055552271717379049999081992956195548234253504357728265879610543553305697686525994171430093720074447019072774796286999598661952213713488641107150855567272797977417475990939845029594918427744133620365687092232804888955264809671827797644569451246432285709777033739957745298480648014820606138191194650496373948948569203290386191569559147679133432278921975935628900833199563922765768871101511065805991161414724110436574368043141173474849412087829665013661147525145026596965615803335185387478798412235752955691574826304664035754892954366239667171381009027320595353565924660253741308552866944452379317072989537516554985654046738776686013540087598206580166594806567120412942970239544862012260194852256357225316771052356638729799869946811468237416283449632137904546705810908846911162712841212247575372337504658435596582172340042077015762122303489855508260773502609604739448146677377523750565551002012522319716011652057468331137176703346074882223785833400002782744913982147766551864262382458655621589327689466077633806573630981463776779456092275707874629624499158642803773769931202628669909545347490163897915584727305060652058527801097670396204785619599328376862723111250774072935562899014132197985479877447165108477829856664354563233268395976488355968942679856059562554081880097630676807222898541794843094218860244454386072299247685341762092981404650979978565894501130153499938642695360347447680788097533651083999225665843486500482353761837903699206786212363875591275837357184438466189305171600305294580321500070028513675150360461093392824980833862997764140790879586670832050518036787180732285868079163178853805937552585728280733129034389210714072879108233559137493444390038584055195235930507957459092135210701087641649985594877544185336131343719283374193179471657981119294549089860859353405424167449403863108162053622776400791726157550993860335888846221393026660933503037406496005734258615526537862330963668097685377539379030942445321427332063306568434543112418771627691319508028136544178504220079114252546383207880615355735038370134269446836672403372054586688468643806265607023737899647106389049506467675201696789869276881403703256770772524391480204810977392904068970563428021462807692281223493930519355953210311947658807045839596230597799863593649689917427004286352867099268590645964899053796330134904440007515168143903538781933807450902257912234718614767695207609468583504484934543583307850716156093109237986490970694882342905824085741979843256888431385881808015428997411104527597653505880018348058861668788269529974702742959841051617037606511209046989780482187425199764658585903729032626963181343370488083413026447048792569545646636201958317277085465594632430093584347009458925289500180486534524538924055954590346737385199168038989678186486168347691146066079631942500477547893428953270031494389372484373082882681946718039108649203285417972068174345950869419009795414486114799967006661266438122888987567127605074201828401723331683022211549434947018485225644740484227323197516349357449328042246738506140692078506104176263744897376340240681484793342635058662249509408989580968382877704096311076824076127914125264218540787501655993323196786634763927979278499574121605258133609663640085145760614896405532122285684729502436681969454630149152840680294814072408512919280424464981310166518746337545887357705854521760169033522574142219151111992190063398780810788658444847136804709081163741727405068010161378444537125894442281372579734290600046039861171136174493471011503880991356144516249534318401441040946437741801954044549566370808053308061519736862017517013630471718518179729262975542721501664794286627735371323452825246447759426668900581452214617953364639667223885971242626450397880570466827550370270896940732640455344662449586260803325377478031994136166521739524557872434897232791455601352647487512519995488860866828690072685205948724933349637185293668264370012699609143638791781181483010271300523572927300814162037635042408864859172907834662689589582343001384522393792222030932894190540603951771458099100297570976398659176787644851761813447676184423905200920778235990629348219370380675944204701644838663437052393068082133302186029458515187820994569858160518980283805400582810897355282441690648031981194030651917627685437451221595835645257873232611587105185638132182093540111397856238101790822351240001629058155581662096370954425129124733961487260411221743471767268492937239030098257745369497055004545458152587521169212511720291387517257912853643081154307662980660596835715119780394488445908060882806899585178995822723063318906017566454550421931023112212410553407869768882953857244226368322876649021915596881360911601800260270775593412158412307658944330560119335552510062741156159078258439449706757292440131242621765215271173174663447488108864421906893893618563217759397845313540160692853515364495356269795461837354167845493736853678909681157515985943512524275083339308319324871979954334816417567509211918232594906761137356271358177174092543459878058066330024315123180668687247613085625317733226656290742833765821636587778014130220141325614084200045151125995575125153080885863846948838974120807879590333985306708289056502926969015126209661360779668957637054705034947231204023553607728239155027703973609497355907061080850036815305152539247737947158273434817387010425089039955918200948528978966462687171637205558124409350619057245028570542161861050077938229320991135963047299251043849828656975036014929384073462400307126544453816017801947986543274749229805361771718504364985212881659600680395390649364933200368278713351042199176957943921415304520072620486058661647675793414392661403267457327811502209554177535174970378879452920336915865558753806746300092287481178795981085208996052830830141918798632925186221006361152582958387128124003129151429686186561133625382850965145474280141747755997636107364963091251375357276264403324564991591924491271948454639092705230521428377710281407665340200709914844450182423558419043663345633693571726459797602413229321021886620996491609609232009814132312492516845827477310567225295406444197600665673409233333666859298871809553434586897027119246669204862821725739491490178061526583033333311877986570293345377545360194113217983105380351943074991060866801347744217035624968971227127191292536966222381232700248044535193539404153698170878003165134797519300404554763817513051755225941113336273228483140792764548271434275973172515905782115079050462973759945806702919715684744797808439965536904810622095440031397426281414323829237795890897516262993930431383551490455923167794088110517015798070102662518794904795299552293299903253542354943671204825363753896693766911720159720206161139381755840482103582630369963817853489803053951456922514172398559616942214198529779216987497062663373017994265305212082205516019529209459566586276586757237077034904735956393493142592910623232940898114675531093456932923357530021936980278344196936911866956180383073347704956520784574503062990714199969324889346534981134282424994118286045983407189836165256033991107110721878119242868955279696113017493525099464348949611855109483066931184770005319384257296251203367311741170484468963604566082006503998282383679804636065491669274040894491953364346813540970430107401987383495193323549895011124598701200666277508999117695522471015206483730173687443335624346424544477519332079840484694652670069770429405373613066178365837993758445062167112102257785438177456353326181428164987052972540084510165566114355296182118648352818488823863900456788910445204096538671111653719828148793975800514491869471585963732978639805469205202396484756963228637351538004577649901150762456892030998050757123082261822267373112668754249641716988070738040285503162059559038429122271591675378470016948401434930368111257848373398356367198042883357988491727013184119198285567841713404883747173422523532159942914551441498873799489114162540642726786198583029506569760752912603741907139557652855883779414771738929550359102069813915434690721255667360214243317074695778212908876175817169136223802941387311227213250624034145423434444347694487675002282793345793462739294651300056457673189878145462928128707999314562551181298275937330654468623105642256159238625028583499400712924297219736555718920913960813645061467966207795222203814892718714908638037971729705280123410977053887385384154130398477435039255500059645742560145176781088526303787839051880343430620987888732393877159819257068394250118954853297383118017470470232062467967864062608390340199148100195612105244002260785333109041765180896979080648514295094539939186833463721520791091638793904915459242861575788387729216281683248550229325335617433759101495207748923331126346948222786795103290481890030716429923140599152349964181928299637343331631894338299727885068062641762544887184342304904125429077196008962513922995265532741605356017269803889288449499629519409902134126849128775314255971627980644142184903065127976661350338462892974887046119759771173439550721412162073313584090454364751250524716126401353965663628371369712696795259524205304528638808817217969166249333950792723206720636004596069139150052146084310539240705484404403398012135890175462414971536525477668844404800663061433993541988706578501170844380310490251339462732565324414119129334902087606772541533324087489102017890152350026080490909762262654994069233293549161315268238331812190727163837647681384871194639160912211622254422117743036410210947816516044420630025679238535267622216702285791479160047818579179131976370479184880768169282210808887623944943161082033272113828298759692260790977326169181487536848804955895217304621351397229872195385130627221591699987027398245249823079933511553628849779399828565142003952789090802471086703729888039779513500175073902159501198525298937512992691713917113643149893765021263001317850203269893843691510956106249422082964243004133440177493726934010336147900815187911180801771495208713573511907102386093289009019081790856158081973870889564778933663437519293337137545944717824349045087291614187635158146090359039104603283178310824184878140251443080302855772433688099786011096869078635621800092114196624645516416954704469574088247635651972859354019121575331812694581143100367912128169400748260232062863048783898273858181890038469986305087501647997799083229913832345589388471450236202641356747054673285948059094021655314826944793902269379364082495838662237716654047339350010330140653958356683806442662767453680933821133116141878253305663121692335275067806969393866522259073301344749332858587156339277442073242186257487972739725223857912637143760925746979667053326134612330572855221200214054996048914204394873440616701572341215331201936021859942720167180036164796124327974140683318099067996358740077302591687100604630851812717355689412289365632731407594919498435369652623058894929810497972206936749480840720419064567676892896854000586792650096591887526487347234341086182738726212557566242398409401891759638891308558762392094109654465689256560802817500647417762742672295356994323607092190578544069102742795225057730227869110116418030505938618219764770681811871432331567248659811054601968369597281889507176383308769258060299982596663901953884441031809963339145812994190226179214004802354349437377260202917613292127749343166546916660105015560274574101137377693356826081672284053849579101905713194273169096964165599915375363604602841249819889657569858776162296911118784677567817355408284017139815551550522510898915436925416085015438265111596687061061240412196507779683937678959931467681861303468139228834878682635397680165071551876230695277832062309944862683967952450853752919160656154599038933731427261735146099531272796036464352141631297126710155502428152795668994702444185030729445617570169648562845232243344883849350816025947788121294575728592557564177681394345516611546770142426300165839759145402187828551891879321340730346820551213483166310320537394361873274437512851864056202582186479747730492440887697990548911355669969093806351189083946256365686357007317982335411284223943066738223208057774748017072610950561874115360186547270194868438839496520821259494389260130919518012073780664789029322969613652806264711565218845177952325939274216246668345398959559764511519008250189590519475622633174828187566482572823277460844000971858522922627246820229810712616302597259622381312034934824098238578822136637321928062118949759924430380208403769959033154607459496651448116537582049642304845533658395090779226550556610488821019597149408720395306237275418337914381947650951387652282932684841871691840694692882315303940082585938701646252233826099786512428233765565781287461912653782922280519096132218417821962922795892754673726031073628126583438895379075749890632435859539421820047747306461487202063322303985865480238756929752177065312899871293576316361617481900928697856208059830609163034976034033991064949598366039998918367058141505719738491179833822481584533707409417547082703644236555908490106418987029768917425037647134701438690758874857555682002425443401033995053608543983999077732366751355277211920930929943358082790671020540300736652835460180031384818096876170411644847966024322724750724851067602446936311796801470675862491940796877675724799725423162931188525479590418948797921553759103303650377755843572478033084358151335779052563066824106367283806870988757000294208765947074745807138036969940220782124070835375796661885789369427860135249024006339560719051450039623179991138964841071860616533800615447884182536662531672849718293771396022846979754080576354702463760470792628665456553568992003902824790324525818488763377582463433898340822423090994137513299540753747688307073617298830165761780292817267243609431933912886518963396657795595712151051332338353651021970111918970622143380080137807789003923614063880185327885939883679864154192691053017505300665428595080400243226217949931116836327936236248018344450484751085027656003783895709423319355185601150839205046153069190936698989561044361199978594572618819172321136625944895243146704615955045229864305537134048203516775061973759583803446870664279033352347495125494982520354152033873540276618879604873285335547236472937005135270332594679153927753475656916175725674748940981501179851276924047871353104608333969212765005665179968606564582432572119465661126608552087827376634663085883970854619067554537446814119344707993226603100956520881827796389336575812163212700597397005067322122183910880146967346726493446530786697117506626752641895750329032013492656754774810750183880559225677248007499905464401073391726734209720674326353711506821799527981291495330280601976427257468855605949002930368796804929730871060972441653551652566364310895701595620360531821716785159122872891246724085698246847602875083835983120974552146715500691961316319831029007487452395145481003180188702717933330867853479005781825509389211925880258215942243043871093223405079914271029863165978329856778058845963736211163137361236423472081964946736614400424839510517195012223787380528018772932563951342555183242126055112280782625996517177784442210516219164798213913931427130988509518292693515800066887392010931639203808468121554165702138593263310482107102371139201641216434419095684303238979935233463900468658759629998823532090140233360460492850838733884034766894781842006787775932214439184770399652932037058506007402739733959650348758011859236894715274654565624564796231885729875802672723791915059334637546120130372305558463158967287588320927679008795859608512089669056860153022364546612939145774502597979368069030129869138755060217556011114191944879197234378749157126612020301737497648099840770854871302980959437191021580932228663650253525661196961776374983341123492378893555729475626548883406777510310399178180538417255909994856477398257694293135229973622592364159780828456082335242555673635348478848556167391374439250833088471554530620285666622854234240015818687491687886721440460630565251217159904777236571433713645914107994147843997599147262464683551759547125400683071847387377673140128067853859902072973862133962923646419060551744275050456010205009275738640923099026093157888025668071792029798897375409733317396635921357820496316026056586161612662802677030362079144965963134952230328464558740034823259250073736805632668694807788851182692934011098325010895731956797668594542049168018280541672069563390883129213038084009607349696227900904711192376636353343578365098388965406597926475145552618636239459450069558423267554008216885055139810524214229776431837413172386938907219582105748012872962944853466397216033261000210733761832454710604400431426266391636587008172308025999079515209227735218497001200333351562906860343695190315574207549783861133620753443811387384333010419307874362439336348987699594979306655616141827733737638863994855326367625833508633995496579668979480982332309754104990501235171128014475399281355960913065652308189438170322021186128238103135951879882063179305216465459786211491515711240967277206068355973828230087224219015310392634562796087924238249098956086994643928478178553327926752802818117969404025481654474287469114089918439015021879796631219810677474599076401372004717785450036142802977596013654797133399811262744592924449511622619367854098397457371318692600888017503792451829066910597541371509549041832002037307394861481162172054559159328207658371039962880245641297210727177307825589751650623851020434404871549826086334127183230882900776236871751140527234074192176529725738622648967243362349876224262368058264065474858722686063744006387523362180454517594199678720839157272423969192207272232703499244565373025180332414846679482090466862678042192492553926672375150110073589285110039533413648736860834410483299838134615446969776476057135807694480484848714337518315191918083656514322941092237120734494663421591291445859059551575146526209510488671150811510912766083437700871168889510150526969053989550721099283805660225032574098269522019883302339548792081481031064193550056187198100684299005848141786821427774785244420685018950234206255640594938788643687107767674477570460567820235538770175641708115733522792773474184930330844750442046739011188149028098016465561156088823658367782302739385215966908098745597343132749199708757638707414836535992697596972017964767304494241104254241842485073249482345748481018925651216301858148093231674813414286159314116229601427174783519497254876305294571258909376969948839392179830427553430098904040042138997999086724260487210654601557344973360775179418647419586095852636210395311174563450019469050248966573101785075215400341092610814930034585724198821933280188464082892440261438761100634129480309787433959385241950555179670200351221290875168978505280551729185921219219150314784292396707429587900697095349499160373398626608866692772845132495678744126536777572408897862937174875678971405879337201923059031055862288143936840364143632542448623692062725593062837765039196267849566684661252683248313710367512024834938510503537040462052384667872171454116915535204286253354176592259232405015957574719862384184636539518561002994631382690381740575156121905619209240708614199856446273523785781095538963700746127818863475986881089629703100511571031795040289770241869266901155449032447886832721962848828277840370268264872193115563396105544750911025774683692546651732095850067488654156718121265089983182483879945820162945840899971726990134462131917401180108448958753437265924145426143936410217864050481601800919456422295522232389967196964911673158642804751922902093921391992012864503239383881996603293165609555983203656228328523225068127357718377728823572925005328278069605158130435474569601305155145726896788432763929306280119900755291549130931283732604115699740705659165954198197631579818224921128281705876286269222613201108656860265488329550605810195447076206983994690726542048198738828886951899776776420858486886366995726089890961502336648472737459548831273680761912528351365966744919461105834076713336459826239740341112694694658160095969160059618422482858522161352173562340123677421625706021084122757060259759543308631812112793025510452544159440298091710012018006502030268937520700124142107234705491936755282274407392257762952486852840278184943608693133375024136113433905299824603327175924639882535150242327599453736918775172685069876669279558020555007605262855042837867547649013132492093649591683340228745505143670178378957123721765854684411735449779779801965744328746673423605100278544488756811076284290910985326000292941311500334848543237895488051796419434017847006195664353856673477191139186711612841176188214155368574183157042890359211802879272810719582808833091930058951121675390312083014123624169460261476254960633435303472795092053506370911916250169878706898431647820388022087966856815171203766002226039436510217140209397874039816141097229624442467686269138495705180695049874872918515563353424847144264786774147109394627655840066144090526075188142106674602867931171382511667839107579442764920053145836045922252312549954019082274391996027559066529122130111469339160557834941225807040532678177738009198601134486447019646453965833587002253135217957456780312580776371269509110227192563051038261414607826493737666028885886113463976263857735159559608639917705207467548281410847577298956948585567158277824839138642795785567282585086615180192750065476000206151873427499523592231291327008934282681944976089316724576363298041543285464624319890859882712116226013366398900045324501466572529366025829989702056849246155949608055115059312710817826412336715516364002237021588673551038096199824852998437739139989711489587670719866911528301208726579909873321969661051091342134476397237010703038834951136451109077118753107504663822366266401734522415707486960304557834984874330088979833344498311292498617042604277299460294845061362349574300050654080773916419748086746272771077357659938098092132618027880121904776627772571931391978755766890567264235677553219144798037499919123412913554350309850984592390314879680841212445803859310330225812152499344054912901333360742268604683008865670865419165083607451048490665110105354901852475708496235115197172432037906442136709515717558111623592812574769189906597556398844727773871226028026938265332173059200403928092009056751000716536872122676856043367217302245306004661810535650013943458626603227353975092399412473207117937275510959100133962473571873215038054618523845915324163070661720547999618905737309686419615442044353734240825625129537831666306957813995071210544127669977091428597956798916227596564375577085065486011400278088004806661345731093583379462482517057337437633598879890413215669932871154518025778929445341668578800274479952468940004719786489431756667281396288114689508084004628602478468651309994703793378511623860946199318468009851554650328696722252765228667469621922810679758604699171414744233145202163515249518547689247781606153084823056498595443370681107996399133940523333802915161407989410287687602075766065536744214496309498298903605524531773646661060992823277113893131550143554577954073587049335223631195705708689622290127657141643902362148563316308911132788099169225772260615246794828471623275716903556768553413584699660622128834019393730057506797794632271417793989949187323786058097050634833370568907926448642133899740464595661612057974949315063078850206471627375144282634099642367824893303471172434280189519361358341767112140881690187451311571313786195435549615920076389934078268722607972560667362427472472131464595067168434587960256563331489245270412772932534211292116220393420694556971608014562100512552815197195011841338330860628063945905174223633438171142285331724215582451393371800849086983165044072839903767331365238187930940957195004303143581481233886046114955013310969933373149729489198336018038202676478176093764759604734122176589291712402875284387623271161351557280764080020002138512233099686381240778519903114187180238119176179275026980185810158351776926522418046305641415758065228765188697661390151938987901890266635894527445737245421016155934898295608815959114230129712178763302141981500662078446140766507211995518532389384289892667358468046799116303528749335830083736632186837406000039626877652570228944317165782536349328818422667729733732237566092678732815213342823763136564581982999002043488222352445838853927133794944204503162719483303746454013199920337432559098902575733405071234254829722221603092700216524570631624330151040572984435625146435108273965464319699439902142761983066238920673803151811860527994566175863341025636408770110548371869712224187105521931656871170086019638539056503746090981447268679724143250043592255352161321549281573974958018819756854239345593880437991392128483302844806514156968101847528230751005453952321888445778850761351659813146202210930952490710389069647943301794423247814931538310839910422894316099324589169434325713368807732947687450243678131906986440667062351072576620078530688471658297754286681529969804969009656176034364834777125977255193682506891080889891788743286857913287998441900128331478233355405396534201495749752828548933099708185161922504852798592534923025424924009151372425839838746287682288381390084701243723145303171491395970082721423300696826387177104790980300563434089277800548719053331593136147189503812802896142179928765695967212998853163728693096509144879587878420329825891294979090664271945632268371642423398517298898458426073202668286005071453740376797049083514325669380993540639097406337000199614558801938844027731495373859595883219413773425068084514692431390441105176890015137334166056510967995804819869025188449062572288866421038031759678510763613179985705746957114351384886469862840937499750189468498612776712774182545024018689166855567201091994144837800889311868261586852993968411975188042434604850029813301103179884934923896331098975549656859723216287235548014925034779591184289326724700809388123199402896597362518512269788335186850071258713049621116869849713110477875448421404854012186833870937775380939629663158265516360345589087406605823651356959231242738162060309172465592823710119296032544885002554099451766760392574108176954815165300684777120460450528924359924205412291093401852379518890481308287459580053629567597920115409558912044186379043741236732608036275499958541751757726209150596208964467089095127043233118025010831281173473949387178410925165982461609320189433738145810960415838669431112258845472160693884246881695134986151771222213529377395818794218021882521895121073527365025387576520653741698366479291477113361153734990815528511390311268734799266763921159352123447559354536204968398312427190068529658468799897816355690892009586816725972381916526330746708747902496854655461190542540624382999911426304010792722184019130249807260723388407593613106495829902311136981656638738331603917658274509409062407345080424618608038074498314750053544915188040056877650516244590444849140192692253718091620822341473137091727241623226282765664061146687234487694922847644552036729769268730840968891937857901451169719461944084331389755220127540984491256427653069610958227972827814471348267372370220243025190740684486854183482998998312977965383403343319037902906488842125199530862339637910141934134614255573810059094794555824516405113153068750523910571013544626310225231360397504059154313129124762179976656522296307271563847080105834733380158999227873069442380653390739172952841119907326966468026332241444479751730643604096291198613747599784365351347284901559969534596095937250606854708407743706942730821935748347463863571497389800514828234243030499197527367137412134030604322346255511187610861859996842440975954237079281667561005411591148052286308165827575027844761059103970340982813861709380426371801897263827762263446471447638708080394481227347303917557468294408327203867718958303077439261744898311842361310876960005506159965280944694692922120452227697178096488724465221072684937692124698144338551066964914464120787001294893555284331335967472864375989970933612859341290151306057945642175370925351638306208999741014303704101547695125735362769406219206235692248979061298627758689433569778169364629382551798185595535899658864050607785077227195679077643421721485342185258418314727646034373487310325973078975646033010683335587465455416352980124888152770082391549286886511663650445299434129936667994929252008062338637278656538438842518580638489722863056227154750719323897487231210234063376965750484918756928557918211917011293211196388662474151091743039843459286868266784497435921299779726773921123062524721560093395651593655459153920310541353843789853521955716528504122509692243538546331799682843051982418985300529517088599517116061830511074689576767848169455605755644892545211256147317990737383371989895016862519807208492287057332270833794184657550242446056426561081720443434602011929778420506126478104768073226775966981414716402739045108522996427096245890131113675360465784997129782462353764973191716893555893288853270790076808994294033817332762815142044462343244942635744802250407040169727782061974711963851042246654115003377679366451682687247119690601858750293541264222895745338383983763580552644721295114039252296200155250321271204512851594988994179056774140242051356431999431713200517055410540311658206413684325754675726625345860924736466135447913818714643250985200551315291267638608529199793916520934641666348721953255066262175626489103011689581509809309124152701861841825346039363025924783376159593010525125104068224725143916357712622585326375420128829875580129410347264610301185555611430898653906275642674704058785568875680429442818864499857593220220255320920218940138362951979637301772562008024882944592875742939874703112236588379564559341691452484185627201625435330425441291909222058938139739780303632346413919286234263944965430788695339543166995732478842068743921889253606217853610761041446376474342483086957176784751078970770925220900723957378057800852015418443885693735515140932936636442825876316048305440939221787875995606968005982123403876897068953267325410852573959203307184816102893584742997210281407619306862779147792602475641984402216202933651179075832745513616651685373321008744746443638193667304514007129941894905509787444695221545077072938477272706352751969329858750827368745615014350936676614109774446631420006898787687402232131525451813529174024619473001426360726724850385195613032999453698149155576841898737784224258567413562264212099884492730688724508004088383606712881525947290953987961661059605972347560641930908016541616411298742969554709686324888818273824594934870510828462177375113536099754955963476669563553747167489895109560239305911276443827099933890221375327226184596871978164059626739835651987518217968100403485169538049745916675117875675812881013241801833649451145194391198088207836906956411182429429319625140707566644937083138324381988510538071049451000425201777665262049217729734463617088398530449772826953415647528124794320526500692100382071392932499303848152978996515803366808688383104257337211525835637586148572908795568162350557461991410298712543387140961471877771941461682736838013940101487823813445641943892543347020484690259579490581415076808040302005138983790710610913141820584734985294492440682753089295307380217419198943956032090472278512010613671545738528877660448642239861782362237283372176636760008281034326399675291795039485894050652965908564095736053066143114172025464444634267314110981936601405676850790887685185623770771464571507074181776901328091476153300044815091666508329303429331098150517827824664126126549696282012872857780742769318459558688705381861427033596042107238125004442467594962524489020769002050977234525250541863174643436365882490979108896770184340958621478341420414356140623886792747162416781973303339160622872110051517984290929226606303371111067801534495707899379204783818115273522638421628905511390989589514029415959311139427367935150982395909537811963065983246984595861952322369695953405000229958177188309982680564595487179630290971968170055480437367916824915667431579236598273359957012540681718146490664496373715423119109112669533849621467105822015415222551502893178610698327652513093458391189264850338808950238218612399567904915807318951075947622723114621091339814742426957520162275249411152372018400357377651041742557002119451817061615298944884253555931691834218582248817698177081248493490154188447049852621018751712864051948052619087912719414681304298446111029245936077745131994370617969458744434641596410423003053730024074663604834848346198204319135008079769251527645272545985194038288356786851102214161317004461573535175892962540326827810569222273783471836774687472880781958698919685638041315000206233636223035722834980587473246621891240764845700186889545755277582339204373853229608102382221769190078434040299012511374928419999092475009328441300647638239905191530301581256250993044424959790637023334040272468252919259525443885372847902095502545973928580719439648528613065392086937085249419147685608807134249028393076252478078548595752860175224380447539701181377935878690036187742713030190641429784189725189122416690194173474403545223974849857651017218957996261736702731847887731712261869316859235536125321857920593380285495497085749088963647413766301905720165125970108623609357439677319010334602747344031418481290958162654104148579407563086372459402688360717696589595589275417655496081501727868589578996823709769792878215083852103255699649882663530001478071828145343740230694610812069589177964762647163047125225130018571940837914060834103463183812828666356413933971095164421846257358960387774841852792377407046775547764073079344840661442153333038329043805665723800517192839777535812249871866005329272465680466894823801921511133919911966932019984928654987070318437049300300954937117707501752550648134080071427847466294075150472688151365911063996608408656119638916011075238778549786431824525562994194774209012626273427379257225031890315494783862045779414106575877958888707117451417798909279401731049624870853802193956290557879318714999068990407482851805429857427832654461360087042079050267010024571607286577628944484288245660711287054780086062065468813152416296219734328504076464867661388595195316050330071436320611237036158441447193705578730563337070642143732455163727183426702380019916913125324272385532753872790490712567743808270646817285551608413378019465530136573787050114173592188457299531157820284660739063981263792968560602773556278738198965182314089634715943341939994095693069864086031041356015304267563191833858935607934932505280686326488012654516912623051024452513225542708959194463473305503956975198013459425490926727642108273681891239130641180296665212465307233045592158635771591374881086975566354054203648650801870688506250055126691129233738702302926277238334556802684538179744465157282709500896546538334128502779348424652146076936995278729623709915334136789617482650942383113501582673869565583541778990927855975455693995322036587552168282728033743112536917032048392451407698616328430530024149991776531544831292879262908539075394259294903790501504738738863594465863171261845814050060756099013131249793822638754277889604044885809485179596679930413398145604456412019715713337318296196683002982859698862730460979807569455949394154849777331633095200672034869390076165254321447711728022152763698502301361697360100919907749802373160390996308068312698626004765971005198753210875806926732499292739530451131257113270692830500055731876152320818765715234816395939540996758513214353885819013265078969681103022242196526617477163898777285975778943624238495132661252448098541827091306342453796433985065319309929029877469536732427078692246094239547325380848311403074593115773935361931500908461621715561355809862716604604910886893903983569266549832284221348906810462243879061068738490220803545209212332661895863694145425472748075241674694323453420608118965231282926037243828637607066853642177487376224179801856187203130655946656858649695134181273637287153682915594901485560577603187955644352023124424920797533887161610849348763406210718250304106243419192937546125386582298806363866766147015843707146197846783018695229981101473633025145316707268754109989951764713225834103202933185199527090406843236660091189110610959396246345490587375159919521046306878578478888184262895559557441718504000757816264278554410693726240981032946900956946335946370062104570625648683685043436463340325344487835876289447755116804915334810476872961383513305933090471553201173731801709798612025790321465045022791388491948379574731214402523543119981186018343644891230748150549212743301774471595554623356338819563645455962150596100281338145328271823298307101920328540779857679485347579811430720046269727671789800145933485484335124509644303292009810234775067284313711419858528159329251309152365356249705171960514149798258484550666643848608537241021085703921867412198917139470199357861918339698510301278953427086826795145933891074957066096454819917297862764046576384255973640033865404675308858741541570395869976946065162648227731844191038561042390660321469345361728336039501624362131007317695870167577203907367289279635906386141280556923132621485780629794845316964770840155716394054526100130172766160492966755950918069342017852620494435069884237219811322680007952508042517646499599553300525491495231423965440596951168904667664232757672896816716061937984353051065853952494795603882560982509452394301846334124278254886822803749674373723064835298951843636828212795009337116371541577737392770451989231687615870829396551261605468766260168560982841458647469321014106185478908978444533334154739696934716151163756776202095040032547644478520995140919222005407366975854678501897289015768341509559741763096129258035976453691305183728909124173921318452160656393886370849188238739756720174593923341305161023321609481936645630519897659743924042520734006839642512614077609830125229821777349635977929244683343568182149459175741844523287612895803182715228185806276680912109986513118335152875467203026031012579353312443486042277250406171157639635299850173958234194537021391478180341303319205409839736968991839088391820476714567192450348037781233310155505219503360765116776905931091301381426138436049711407972262278965906831106650490633705319126147390394590756966184196877795689632204298636910464461145919003316306907924871570118283946461287908002640620916788658642087883662090854054894534928015234542897120349496117519051322036852974233960271542599028534095232566536503705531193692414205896935771424559334220876280073140468691394064917642396821266280180827524871180577180347093837373542122997462134445058379046799629350701810848786158683357735195896876300196009870302088023958032479740054179023320666326323129533799933327961033850800433889786662806189913911327091431689998871794953069512039260366791590915975646624137619240927853008124632660723067209550583101298447155406469064946093400754256446226877522747422216581590348114024973126984934165413565239852307363723165819611956901935954389095252386190102131669184186820786361867358603004920592094413916646905985963374430015545116180576466285222005568329262076473262918705893389876949837931959434470027215492510410771530659784793239930657596106341235534472754681420569065340227876956157537731756364337324895090513116678377621022093745390113510418987401617506688455558153059875813715851928862256748840281837992045064367601327807010168265059993182815966143659430031849039834580210098024669424280558711766906801937115055781323780893424635233121634383884681591596795857402114671259211998141569949684313170092116272723990660495097577470656192809850508363555204007835632290782211599814691789784440485810120582048062917611047356174860920532573063090303889284870188371543671290919689301579431180874749369622262500262399644887577953069427414496220461093625184016774818753783147339948896606202853848618093553026793142926267808353928726421690288203951361509820760658644831129370451046043220168398737062098934308279449365140242531735462442708484526916729641225618458431644519890176454647230154670401749035994017562043780009251748385226141875817654310825554242940464883076772425784766019488857765014043752808176304304243184934095978646024613841140588141110673430689270588499090437002211971982595234478827755872208709258854277545659143163642829713139191263209935772015755043088056019367505567985981362892734098007712839451047108992176617777689716991900731408805319969271857446559686644372522757912612346197610444198255276251159554122369450518670490410501804134117063030648265159827316611198439951588383207079913006106280160327937903144902047924298572780184268197684511592104465109316647358291065714174231124816153454385661393687412429440654659558586164662404750091559786369030898612987420046538149379782744751193056667502627028107899238899330683180545445398343376144056512823237664937141951492509306431237061733282698485864516931531852241664347322602272250193711544935977455217656511132997971344444824693306488433850182166433495549635910726124872038849171676469572432813603015462743738778505908144303667053809477984508723216227269717562205092889080181216990010609213999505732767504350171796066445671706324671849290736984681729035556972723123963551659627212451934785405113945361639187163221375646352454147937495199812337049894144742112696213093249700188499017598515320317705663394636205172720009577067112466781896663211994817952507562778636789494768588337981851339166429557233617866174497556665807074087795260448349788624315546626771285800051220607012174082204696897058856306744149134756456868251846750766603243646116573246575751019163668423740483514314473227262500518283603881801992480728435421993164376475026564205941046115535650365385303342809573048093331326505972823006209095842053338624889729865520643180111740189245659602308741411577651604808869567061602290550960540425042226172247472864282575186813849747824821335455497499858230224097961160132364781013519687283489380935827625292043892090247676354985607488139563474315770096439026151054736701467693461842237150553541775796380300993216222374929622533431127215226817227911593374857527039318479361708906101314768848115787922192090596011188833537916173556989766054512689707948745470059171305718514778372213901521629915445014433853404018638333313009044540569973012737638215259313321532130127351527192932780859899093103120956403369814232347073835441484906274758280893124107756615849101929336681310894593739537113468122218421933363570589082873588567753070046110253353983342201392701626933254893364140780025434662634077334632265353661208313671880936236918780875177663335898961912637090439035646198870651663956658115866626641896372328676982515422812073532458581210796633701654441856039442566726124646939082116093116562403820416382567122742845321190565131565389751855501782684997384921251196223968005394186738826167934274096348211226660827543448231900301793751528876533587820033892916720477463738442995981614041458940824540789093829952694572305449645114966455030311539511298836713606997680971908905205036133412173566867849085937369050206571659844366631186923446434742721313584252873992944708824011640417328587321102048114895599451211056811172274942821127905508133932928567140508504040555427051669916713564828737965452799124692798341997124797684282566814703695432845746886449145238854791928193282198648172123925273454454473034937944694336882157103473280440155796560396126893241870922473697561039812207968983520615486933376625327440786958167887203980991607881225849487703592023166544865558686488639366215014791140937114429487807078894439075661656371786838998035359020160011004424529609929191210603419519282335842365676610944813842863952323907208831217391736797690957540440770850389688158166118395781069281225446293214252813881648841983318175152322250643759557109166504767050707533418839853232231390137393184617279929905077668310482158280905125560200441547319663696597825151257284284223153466624657841042119101833260451650616472474351598513134418908835565467543055552137592228229965435958098381688376884247096942575751251134792820273621309164399748541378923028309352953785376948698682710255025983724979775620953740541994390682864769368852761512184780799147071507981731941805658595701660311505566627852355038928592479967891111835329969505286727046052906508957029088402586485600529498528871185779627696770159533128761791759652774519608109703434745112375014601637220820481086046013280289355185642448022877857031988640153890903296102054430789903855792624405595852076357114171831564793909461696170898044222589453783276128989495103608924302106906649950169326634711236885068098051035774989880011903843745258579265886467268740154420921036025392920782441978420798823255412140240041765790449587292189673636151442404722478558487239391878057974037312163620907934973807749780841610204739325417227663685348218412653168177264085501057959966925869273908780864628822647367379595946368988771342003830838393713364678938359784680191188921856107971041247188922707173721354289734722586557272116305934965124549491686352065926422999808264838139055922066417182178310289537849309997514659873365087282317366373376888094363048738133992688822891462887498653617949822603993272727643001858482924208196393036631437272542936118165728642090806496111660340932906837712916553053613493409502386521653678436819040661447938476754962695996773560452132133268778309043963520579259487237676525679543111845274549558523994762131338760359560072998613816097467787510428007883127063057742600657893141333234800593802672750438105425689779938414231054126161253025428372167027989794665280043085385848297125950276961840273157283327938975046504427336426744940161968318425286104324028965175387183517143091564879710213851061287256081402843819461188600474502277530322474529605759216956351415417198361639152793615516953054896504074699001785902953646026663626978652967550567284546750433554233773778178592621218797083458427903128978570031137248631547631814274088324150705323840810286516137830866965602230699010839950577086723307527870495520906445401312207766582021685014495519768869820646533601328627115145191756162577555843505607553045024119752844309741946260392763778536721084612254136074488197943535808793951063193281343038494756116134930765146351390313351274528343623867002730358607160917849044438863328212519497534138510838970705581400418532753156602067824922000983332719283940915913336670323306860847533775951989880807983772145269851557156274231268368493269937890725884284113325511043625667624018015854711795582533550580255328409082088506926536478456970040491689688076123527591529946943559282535720710784998650798231633762230302623199890875457170292967699350796980354779210658844409864479274835361135688626512845902330087495341192396272641370621352741239332714696344843666128053145781930377039453026671721744957340862924423070764689670707302540741527995262195724026841224135821441136437912322643059795096744260848073828785097042761731085476800767132347286178831162803801114470434828518957128802737109598436801158785749541029269402885053856961617635776828411756919096395387211698633926857437594689353347441947580201607728033520484918803685993571812042972880163346554312864268044097541027144247919054510302714036179223317213343471899357898193856788855838121991090483886855347890209971199426976979171266770010522150792933324475350055221417737764079032751445605265038217395563384023464639839439482083590940432081516107921292943677859366896086008948109822224502464400308291251735935644505299564241895327327606158336829323380843600315249380686070604621506918257688200322444149500137307976289986369253855350366068635328577231938009354868206185312444764832978865602105361246690733641227006376151382624498636866565181740089404581315623259409888761004965141422288808288306226565621868094982540011816038682560644318270535618955455394753638329156709253215355644188737825042664987429247068321082701316388067986837056104918197327215589371011500467330705001006422381591335906532407930884626599662789367794903998777766104347675133793361375992827582757941780545003811284539066626490803118858911845927926742937056682888755446826074562866346452604926453958834254554898654028124367684679802619010248648312845004372007762533590839455836461546914810879558627649267652576602244564966445175186474691924786291084752830781877888124459885380196915414644595367970346084727436452316561598356225470678391021163357127145072500711400384826975186893502761495101930453973045147582160274015570073003808857576455325025719851970937692571636001707890382557826659367803367144203120020993396228936109881768691247707909270980158038522136662210774362098320611599035765182901322580922124192163760621259979227255147526904267099936455501142112745088138907079363931143851657298159446602059903854028480177511906211254634410881974292565433758636872918298290614699440804553711612623370562290599375320095095560175161979781690855885801918110141811608566342869296678908207116747365687734801965735667996841031904895025949636883543247717471795286276760953706498274749911511234024137282624970198885921261390884605447727260459863087763085958630967604460582657962674407016248932953991820680389970832892627872097436777676444635520397591044779235511757821908114562510484221224741166040085922775013215325169770540880141128854417998175613276363894810963731264205874707159121140396471741593122267567851781888911029539749374572389842993912556702307129842608974722863424129176054670919364425636202070194333250423079865654948686362961915490942797566659614241145388013476493221334605435169107079953311135203069393909541702910724702615307180955041859083084480694090681612767291753494611732678335044311367746250749277108396830673217622699149244340296013467494622004155955125620026545691013554967931100112598285913070139914828458970941981682792008206042848852911447644269308868052791231083010604384339661306477684120405809966403791751288731578482537991425676484937306358894832948627240425210854313332093723947625062351874484149468722463205084594785914188660389396993556727077670914599778763843764744338256845260791552581422721200283727585666262034817399181771779566092788553655477624587282523877659851653547899207558182203258695410749364737418770102110339284590943325822140506541528294263871613180546443127872228668188202540350856118826662704378488014525624794399331637055586961071143203811141406078628123767737558647244256729048391574741589807075278358195806401974318659340051341542114079449698415647878669388941200761794382213461651765670309467284775462157804540354932387276503018116087135029411337533563740446162170234167567471963881034880071377330386287169237777541840726622125505815763222413043340734598493375756491123751137011354081453313109464804292977162373760390818365449963575629587877079336724424716909930058183632547335266806759821688956352255119940911102676324090365676624951487384689623510226318541983398417701126429784786718947772648156868466300622825555022159443203711287038466597496052265695129409985287344230961982881967841554142770556972176367876255137233280080394373472716467574239475615466847440557479106745555857315993519398527181068947202039544640989664044367412533449697936617116231692129966007523786871518371527508572817140070920554154734924162348194439699533775709199103701112362796655687427853720605749431873409251230252527999347026522687980093985132455174366690422681131743262092507450895065275103815498556936179314553376858716835000218756030940301553159164977506921124498590209208624735580176895324777701026547377292537055236881483810329759361864797871580224924276816710697411818004400723080560677552096290058819176200226016975736784898489723563989063224062439675495602619600993566604801411409989943005493423407958873765945103679752091560237098025212623597617799539248899925907281501055362289496576281326466447060280518882840658339195586969718346356075385021989410669684022572726709202796464384438792973312898447969192652562239060262520952028014729467936048652342315967204639064244508967713883632756850908852379751312175525728479022905864762796684466206686661260384034910905534436099861833500204915516892389753119493823533805910173321848195631509808387143287723417345495602359172337436952320386204227070473632376235932637281501376187476552591758497685810176255611460046809503228332130618932670208667178307764177765100206096261548182598981416680723529828260502974305521455831787924683072153949914210106447777209656449015630662434945462360706324617675718597390188933975679925764527246191300942486682626248337052960495838474800206981188043314862243673278769461088314242938155551233609987382207262565486596316461750251519281038785013910537718936934301496014563697867629794613285431181787599238882950662584944321691866019932026861142008550206419749709984588891804856988597510674134360758521269982870419341154868276785616954761203972034002855690949528489365713281666567519281120706553009838626154066494773935430205449174325624981503440909246909191317794578164383281143895529395860305796443943370347322961157450668934511722596689219160408172355567962686178179073435943179790002764305544083921225551995841254246196853213148784437974934003808212419218395532230184134234401420487430444210036111310319610826955781671792521817189080816763242094430722295709517165571619682128867445883177966828711519593170130234525359142426444526648963935983463132747323699507777534923611025804174234546049812960847553759421043921947407995001103490118301161543308233150130054386677993331040892220611654796946501938364696994093001016543443444768533139584956111169633172208048531229794051870256520946282662085760041626725195902973971549095446969465101469763972713677794805076392264620658821049663045572018611740857511256160045332887125932613490088227526754502904846312671331970507653433486502037115388514196768837444662573753951170831060024181819681871670280783201407581974391202397486392202625643343985188302419081221912444859786792116141215186063049858433264689985584846410064009932891380932729959391278388273612644468257694351158080008089117366380255106834677543245219421692669841131084189251577995989861758661351013907750800037645567373676816106685415572543435588570637333541707308975042205058495994236438416105223452923181981826667738870563950660747412993505060258563785303920962864917541864462763402156637824270404520821897206581595036161196046317378722733828801220653886984302022525832110437738898427967758037423696124494049533874851448141427235572119569937488717789489140704697304043319525585209550687827618760399150347275208362660285419512373902929426554685691742163832423752717514428775737061410634650632681424353926489787292790780567935410018507915307590089037892316371216283466520772910189722568706889376574201988458790189287835593689555059856208100627831766781219874952352709762273599401057347070150445202078738605175566330461612787650111204115775574636540485975185842214957100005071330348966949576579931684812945283369629721460296343717935156374838188139079265754296135595071460201402167094327763001723980298717828012729089771102572646226232928048768842863743836062475354770083215454636339637685656785920353911257083857733228734275688086856886913846400778016810056003879803847884387035952615512071181358345328792975003704895117033125224601797635542622407445053695566322980826782478422641643477933639393447672738684692662141859713568013925185007306692650922571061267349112603541728321858788759246050703158982856927609371030595894837653902117086558254314977954831299134465583621855110312684626090777635918609489496612486641482077638262313345775330956887754950101819525429435539198887376511652020777970592502368306993354782790829861983583823675211016546250192313897570130668326128671826718811404910340323350187566430252184251686728572380845336892620757071858569701342603067991654838779123694700911903771789340628950262673972463980781664942308465052869963552866737019015429194455827316917906785063934803102081351114028734688359414710669064227285028214930341288786871763491489342491701781350455577968738193218478409630060916450325216101287098335423562895038763492625597162292313330735914819848871562601064315899448866774561432251306612993665784348838463690547619772636922178011993761338369314252521280836797292352813850501133980237774525354648369299409670570539478741773355602988974696383911187087077345138357425271870643832844825989085245754390377011600319770737749722490574000892374392814997449310238178434215414286829952322885364600639473366079637371822929777123804853594442491609968452537665183285576792713630257060194745252476357219780520093920803488094893882775230804208585071270983999527308003578067431469425145925585876094551077602506417500895668081523656454889860070192968901522659972972506023032751834966249202090506098320956807697756292603555402544864844142176100588071681783999792260320565861498037375264781938199759305079874920227355861597661689829730357289060601878201969445848043305670388034189820034355615048908807540198786948848966337039080819072975505261353337327776842805826150903476732741978077567066417590303791663517332081355813276146582492839039994096628849415691944195413464045084187954897123218185248413982364882793135784969004123404851075488555752676918099597366679384786605389317287541574555283515341909857448102016535965988810220606187590256660921350771349348656165838345172241462401366127788910698867763036699616539074857516220380810950710499281442948934817942686410996187587576925640512995225491795673534333314704656355241215038007700536591183373407840456000659524531783236923130103811899508111956617924632786265734940271328930581128503581408729647636961027652873785876826061648151075848230052244235446044615904191523195901691022415978892177212446245844015036651509049418780693455248529563539181693719635020990163962878821170141681095695690093674010715668612807713814172361729561957775935625848069560541176832374232948323025735375610827105392083446497781267589707984908655310141703521209750631980134060656980204266375515649744706047492631795432849783448984784815491705060019325320884994086246912746318115362003078591296813040784720053821659176007733850378028450888378382967004680717918237828534283960458256210603188228330118686838978794452874816533222254584318021056507185325381907363661108583261437304470384508585859881327552417278436858326371647886674306834703096506610980542898313372554941952418727700618774063012726267206900132344277376509488682161974701595145371709341471779088949106850358866197164327499057508509535584642365802153179579356832058865103459762589777486989667123367426297215545269768883069097863258139170785518679460023204258809475789399028208853697085912229994752658103706656050040091870850520666130481457918994463312666894267610028337187277766393519003122955072756663408509438043242325622569174225663801242830836828737193583083273952290602014502398402749858842042116135680619640438088774206471003267528763295446173730168691801658886204833988814757821853471229117219733505845621492371815483689610490824972100329542802572981190227215211646540701697532736986885159198554549488075899243260539283276321305473936845644317254837356153763715745864835617600904127790350788515798660305518748928569538590668287096778291549228307117124213471048617350094626629672885584715693124510840699469149909509870085847868708145216378639494352988906381174378967013291345730782976957129610263126636537383793005944570770588716344061025956183709507630031270632272943131123603238580225260245367042799655028340956515651521329517230399338382455513808783416815877049910842294756642677216921221552125303770366841560689645069293647959382858977943950376454526722490873902560348980405426824137119432232910472896882526814036732649640167625066804915967881773206929624636204607420645193119761437480926341136438996762955450805727217579303573275288236632050606397722738264907750370447099352975924658292089044652720631453042036539675672579262616789193814447898916314285598549438101540152801374080876965055573709531833515900692508049751666914563341060711098625507583732590288997541241215823111691798921512521495141272688106090254320046258983114667224390963804981843588226142233748719093682818794259918494772385749767539621117051025168288216074198920436887652743090431788025016564443136094932674111629292841957658091571102366116915450160700650856557901506123568327171824394189208442402086522433163287716722998690698115009463526099017395258704338997132593132028767326894436107732217181332728352287632821209759589797635220472829679440182071000405043199895240067952763155655032246108442094532082765201553322690196841238974754940501675830948728006563979644282228831558577597169275588907207803951016918692602213051043584307219563904903981995655061218126564633963540884497337917202237580974089444744491079902058339147468780953014612062731390307010057457915692450382275907445437987238712259237492032161460681730529801133285227095635341758834373901971959937182915069526201459589305768660143879280321818762305851657220112647559711961739936512246913557101215461517342282358407561555300303582179824133393628572012714102063691970441598374726976007030954479293289461405443158695818463244899890902924613612156905172391241874170290544320206767537776239618348028345323788762703312530607134950652874961661323943078956705148555880929950448646727799261944169682339424229881253689227054032970811155340392980580029415880338009681570798609389036419716041879067516211856176052853501603153491114691881080473870543173263459426915806429520422749374847267902965899328937725380720382349614110282376278432799105569652699340441986636763487785856296578126825903479184688028849075829239351731891232073244489475024888826562755242909398628769321126894220426800883389676051514813526070265093044435772846952081770883802773442036655437096675740507256666350227269593258416075908106866014120839374216379973213038705616385794846621182666404741012144397107085926295819055430679861754475267615631427133593826462475002714163849650299786510300509723864660318968669487858125947494230012763219971009435038133478247714605447038855558166685244452532427986331261911585140638009445287448577397882329463704278818287638324042254096068240970672100718451709805684694460378076922799760003846576011496642517370566949415076615332185050235043466949972070411406767833996985497533060652969937448349905401198611233551225969296952311250355701802894487511429611894226189804661666828844275249721235623846786540369299925683469545778402711311587949201791579669927334977189605158359786325478049447229797266422207625450719572859712721259096803313824574433073077782406538364739598372486394520046485335261074076976344558376805203530717856641546983954764649999877880292123110731298932718552673399749745606188907653173536499527385095000140945202072263178044184547313611439123210996579231800412303843655429924411266556873582038838768598351461232662301927078557664024426979944941097340263028060883917223437523775149493928752378579400602274310973076644820646512795201311184323136655009591423608348525322112765263779320038344545784810079376087866180873527992943616507223546287250044281679487400136475763504572205747018488346340740637433267720355491580922983685708629160216200702521909659437540733624936897501503855898571527851254427585992470219818693650272826099205193373806787397754686927667868986566770564089855034303814275543132611416443285497978438072727816016150321545989697759902343428597267418579931652632384810840040694165751178591211566569960492624345340578881049559056359617740463694678304153258450451266260532721430043299735888770433582855028854563470525752054202601900731440463469385835063895157808683088847990997256908440487129969081645113575530165507796825608909004163753445911084170161927911620213164359169891151365885151762229125466191905066835982382868889868092684719719954154972898043061687907408030864325959093811074282043388597324929936286910597391594871362859672684145838665675871553462342339424881677388229982964085329080598640951511627514194126349249600170616525508544308817406280727407776456059678373819140212798594890656566419032199054975594179580605374571924852509745430934249253161071614623361637857217216413756000816355253537974615277492651989556647772788338127887274944579934997843735471925349798014057580195334639035325332536426217316378303039088611793794667543257138204263602106866378560960667878757343890520322272562851735053671745106912159301099800085695882580880202246667420849567446552467458904912999551153498106121766973355980413376011862485413782216751841711074719587508879622816155046350277206093915989164596971994341805056041927392592262162725102163266746029841959995056364635701527678591084807779226347268608820959689857399785226871391245988756614617731985443030313530795987779434655116639957357288777082476426501100103965365709791363810271014682507549003512066247843037656875464975560266417265795302935357370773223942965208885992475901451525420742649005670098394289351267999221906556666171815492849826690695489693756724809126155855407540267783358948062324127525709822492217949827932649671343316454268117753484104949077520162979127395458246331779598009138537286631095482936301538483887156030183721395830817964321696055147064067711348664955461785962812855810888863600876128276981328961408397344134456596563551776229719612813977661715516599103008442552031812931532940219893239233962003927545910712237297438427858022376587670347029980794037645727592211173568001444814202921082406547048316112369851906357898763167765758973208403669752553804024464689223134256269868366687962239318642498661179621140358329027595867023569883629677993743384038194308195620151111127998546786523892679567073101744557711036385390524934841600576185430487306682962039670156533107094526672072731114096000959135277029022191096985733250878986996124174855824699470062251475740508992494085836038804975956288727252375201294505627766886981468676541062550658988077187509959184890339096080718481392551858735973545582740271295991755318574896303128546950823086205704678964637863186855198050393292004712165633950218441176391700615859984194221148010883171102113141387281548433318125754844435133044059554999556002430076654803757606303229843306390606582596507581299748163742531944563990480580334201737653342955048803237441693918983662062963750807316482990649917041736009129049906459759831346648848410384289522604720660434673675752772308765619567681231990030955390109444905098953877197341840570746422272355449387608312613901660314995543995735705986878394520054590855798001041557589494994336411991192892503890216397639478840031084122356796815050731505282781230851685725071344986373396544147734319755442912466211575421880318464229060434724498215632309406442087956322205866624512788963581101053577605250702078000671819738466432845745839255592752148990654132995123992578188062246898197061411338526016175965776566410322977415425431251324904564526664183996412168448597340580337711186239093905103441430172937611921040033379434235536601853413196822226943564707702843921740799087863861521977426656507652307354634896529830184781884398076138861279365816896844190969990779567643421969955002891101896437694475925137991993032202196455614161680166403240748670819231175139219444655505286152715599470800511806659196291638833002379346217019506420589649342587647271348441514627561888389771236644916063275234197351100517234251228304310778164157006853676275059975732169216507333130353557798227129234002965761538692715906042481655662101635065743155197280508278131697183488500352266347978881367840266464357220935150717158802677723807724758971110425197738952056272147167996100914463251516550121184486999261504542657902743781715092839938224858998933383160812041722839173231385513271849975512646448297495443011246766594842917230517077018822089302607456938053125074204881821527008294490097886555076673692652880212454347214826006287238068700021149581890380532186073402831720514291163702124326240054375147801990294456559812310808245352149868825182903927494295838711715473792045639831874755772822713977785763064064940358337789715072946119621527520049019925974687720809087941358420920171653727508194721232866607405040060710253412391256336167557520377606172048502071525360847649183971764495785420707284798040531122542010320872583720762012205700534126400455426774965713024504128427429661101482647183312794496853922999622697948383045223817923070334584142078148618739887527388216986948134580611217143227935798129477900608078655759545145362480925661082436581547506893726969393843077018373862909509001231506377844492971751182528491948679167421403838991711280354192599686693009265885472280651960135490800677560759814366935097266143072912042386261650278148566491827123896313450728996071404515775855100901052413645220275253215674171109887008576503232919138530175875265939495590195871665953834024037621963257950270834505929883052784195350588978131727525543838625236670366035664587399294579948098948060166449817924765498378377788038353918525507809325703583824845911269613553322022314298507877575067139980484590554446736270705579705032964457182917388043801969881462901383747268972684904810308271377638547563341672089271555292685748975381910431084877112051792985766374944298803892872001245067615858179185878842367287630892266967374158592215832188501048413689882987843502187816742439184832793174220225635299692592482910573876170938415999404688372690765339743757327350430329334647130226685499650803605902552585517462922755963364993208577787072395278130258058408944789816147052410255163229915456068502755706780749775520570280048787865057374093719007840690933776428025464698492125271987286765713219643061487454912498959018580119753300226605882994697996423787377735182167791392935851832438602691732954796384960735720617689959199792277781267038818247297907542237159042177907579723795571741727570787250722254058658365037760484357285327622163218197696479395333838257880605797973929851149330046442713270247600978444987711200262119117302293712117276396965222299628312876955909600167398427723706445015154729497402908215215742192752937439790072910305827598451938973620109116446187200839821426529318112145959398126125397202627530820100481879975311445412921339255088526266778799651615230937984785081452755146740931637876434713883496121197342829949922020061679053593806548092180135189680947132990769540818407841970502103637911504601021822850686360750090116176600532100067658964752902433238734865059794077241240736175877780726238781357008690273641498179383145131782743178564496989332190824190774281086050821157643561511217195159082461763101941181145426104166687318410129452351997529010355346158699572706586124869353368218697870470651921399766355978320981516732644973317927330852670265505055650783998677264862139479302670218878426810060737296814596172120644311683444677327446173764643859643637540356618777691627066316209572116631197512589757837056695945140281941047278255572233106865792139595436316632454372395295922124424801824572565181668031510156070482488205689384405858351437593530726064414963225546413987782320096001118177112661606513989088103330728604061207616454547599091830144319064195758180218710523345771273211266794229180866005397136203157157032593715648554894982612006220596663967302742776581078015802260330140247870054455632105953851154448156468115496248979009382704438918935784570970469865034503879513036827257349114795775682126562353352957180732217006927884329178183808446266586633378421430616776785424746428204931026651720352080191264638810324590209506956320979795269698771895596875316942482511210821344238745038187572343354296704099613043786249658057491791796610049292970167159925281901948163590018342257953729192639574366577416264885029795272523525460197686258105183313805771439283277358330061359218494640629897846869502492391849913713327698483620328130993236679250992762307845334855197937698579917815917756590882201260497078118673265104267809373238972547407353998684083521910976232450183500812904027630106281341286608721783476129087308777612133439389296523828845725781696878634621579054420862454958758152792881809068540299545894488567253210702508671708344802788410157282246021274500201773507208557151202991776655841466180824961377117601303194676257573968793821330841753855724050354664419610175428997916054821213656372735610958869593868242378938507867195693438061099530678224931361013332822023011944334487616416646137291753678515177217755513648624893164434374293537845973600204435452127171627937899470623493439233286395440682446678098602820996852704392383274755764312645205632754956113983262911863550025075748760577856394937770262246293103136959272790351314491806782156937303121046754577001343664228322896424453357011245666553938332541045655889230129114096568719886231569991690717142717250956006110277717269605589068915412371308378354929964914173357685473939416819247187142824023019904481090279733823001156745916432664258271443845854332791451123813076469738565720726361524271192758501643535421374914374804214904139451165761269626203459330559124990284016998368636311877295951317769059821960311611006324697660880794464823013003635125862244060369800404698681317875872272237083501055707223237476881648494322809363964829208497078399697215150929562413685509827089414709600954448756964973159038842426127658612875084296810070351977022220917635705035247175404100911348164956610927442021304912710601555724692695447050444417438191811408766134330260068209231770319445409780996231655043517205411225860423309393599183080038739816960581774079523427652166104404847574442923056812079907142388376277208416949603619842653105781785535224881691633159543880590043201860143758793170805753772321897820520707979954490841812210209764140852887189306086907739574890111121537916947058858298863193053715901406833181692877513297502503121578108656111494162678284516847259074748977796460137874915587914419794930748998875983603626681934801750309170306392979201323300657955713529029591849582695294420060514621470116295055175585509667531788678563085488455783692212782034775482793846675113545412914087009325908990828795304905496695557848166720301346028274029262468339038702035033634287516248798368489604473662199919362030059119030362549706253910226347694702146169987318361749633446191073413775685775622009437817804953496222696794449286776118916784334408589432576724436808899946691414495583646177240753188418228659264152529164745589362677507421295400770363981770867538157555826030483178073452765336532953086854128847138531588553818822961697570994837152306790612511541230217104856151094331135967210370217427422530339941628320116863913977864143683122147132236402749742216196798952303798199987452824059916909354864657602860917241509822381740532813277437422454316249804928921637133583931851549850939681218854669189850703467216200864552887362587564452019023821231899181039562315953480670902066108210645371086887376993046659809988682606549908079746059348110661145881219712546074332836477531785337573877655712727042460409365875581506495759898917139348867760352213421833891081486868898589637312379209016540783242135729771920314368371592608983374168022133011413454195684661451228463113739264752810161801533481455242728606092360292422895974892088174217443284629811718427876890883191278595855258289762595616725402120199612704470695516694879089622334823594056744019159737492756079523593826434279553218787754229167229803821210672471720848709637914742109908271093713900297514199203332844142068415148836789109515089497543322764580896383570807832767441499896654288661430412698986469386910152336547243794738396964348903967966305487859101488170440030406430093410323870016732929677819114472913708180661424816484174488326709688774615592923654436740977764660923531241987957754523426280356671240894468341708946662117033303097156246857091836512148665876590177635686680921557905300764355775043503394093370680041496224290301362696674244394483932405942547548580586960781718048265029186598809566937438039515041013926964958122700886511900774128346780420560465057100653995283863175014638672935137461772101867933707163185467880557317170595468652264758122938920222740940884318807733478342020727052341366050681451336204424251880453399216214349127372171919344960049569481588072839222913337271267918421167872309049357909445348128182861422821627536423056072386854100341343812271165871450195260407547678138436180180952679342956450650729691602762999285016105480119911798847736058650061204985793796043510231268660972151588785945959614732639439512499745700177427093535801980832763334310975244587534496569671218360622133835901439910285072638469616695868603206589032468331222413117544262315623112160696766864748760679716905428172044479571930619337119883888752161110457558300966589780740985779588620411105805761016371321916870599677322768531099558056839951560643220929366010580234495480448439846708411729604878364934990114524041595690040018938857530748341644404790999345182303010658147723974111066669514802089775040361948290040111492244964436515832831716179780736615514562711703435085932172120737052375240635825008029839656358711353909759419876237603831661737714443582674437313555974142034829050147681960327423447899605964393463769034994956237681965428212193783837665323419155395006202541548963540631645802810342229807535893331355483131091004820602433143536288527604510633926854384147057388412057881821589741478995700738943333233637183723244713592324091076305410651242167551421245236797588190281045130378245200021186934577825997775840820702057248588803707990714313158417173980542324060064859560099664768348034710136609657186124446282785773300330387235083978743270483519855817472759089152605322298780112140700949974926663146192455278472693824210180517107562445627870542294260077350980246142046668336894719336400348320396840304838940081373104766132543178971868431714711033538441364953652856446051216421051078987734601811251856773438371515036854734813097257864717526520657684278147278325769925497793641049554561666186642257453446489787134320640188227558123177641422621476420560647836469102453299335681196931972797804161885690414451205586920057733816685241232534855149538315702246005960134914815649439661136425423787866731830255546588142541626817227332527255886229867239742973429052003771595998137467430501356408764262496081027678858373001948680591990122911599320180644346503673665888568816462247731057618251329204589323806718200743450347531093592059104936698332489526196015631519709610881180833180872849509438555993197896175309620672838991036719339143643071343378920642451708331003718539161952944426988122137955809588171026292400499765462130340235053531472409739049963703598812928530076800252731849441849891827795305716041449952619186566770485636154859113892977961460605822363394916406377389029842781170656873384504374547323108530820235743715343491062720825396225606143561619648125843665223933160559887844956368504414785379243930545485994610510989666281289789428663713610899673180647258862381336384857033450141858359740038136668443427857475010400935195526628245158680987487070763363394134682933471167795481422354523155683527114490060628022633812209838584431406920665096667186199895396382887426032614169588501835249776952140737347546061585989280055819018006427039300145380737829785742865502381180630887375316081046450268106182585384909253144644151362334410580120714458253648063269464012919676403133017865031981776251886248168692230489787846818513171027630564978038131265070757268079759593476406463172306263800587587149757977259307927158901248323198880868637961732216769847743608509240020453581917011025362274452088223052362240140148470838131338442602300419451427309166499618693942032350257277142155047238997577097548919783610657701443121354110671517383633510303464835982221219770246069302746529446338858785233996470456358165602500721039328876917225074070881774351474523282949022051562162894619809080937393604022285685920064171665808433725558663485566598744793987913453294343762158623860278305677047291946247394600457304777586146484228433151627050622778981286184235332145620865933579118003477483591628721232556347869839263008099694881077480830193449884869231156257572264221316472599904848924282797148358400206489090236996098610744030464178069487720883378195825634090735995944928292557443025008077998305364354623792267084076607616965756920382056649729846316652590097828146253063923328635070304700490193393756823630560651133570322677378107115273012229579901680366402651713650784203210422678943585485114746754397778095878061325450711564058564882530227181941982395343406739214762259802456861475679963633581707790229028544645792792301261838330392191236671827563497984988668943497679196686646871419390673255782690973669256796173304681172369348224840599990215230940061276321045834526908601293631934262066324346513481591231115688000308049975754229493513926081403583515487162966964638071453046952456282277317534627553050337588872006113617763939451959861554884363891886637594869382995566795580964676362108829341469263190182037075823254831862738950998525402104196216763571397576738208641221064641671891301301861580786853913480280364870527012296518943394827390799673926560390193073714062397251795961682166465732510037219769557980954999692545341221288007665458464148686392117700630986331961565978009806154377001073509332991031115381137336627045465115021413825939822861227709998997771925982783036982165671468213992406720369653200060780412915675918006372482962564872708658887515432385799459971651683798660973089820160631443868054980902528205004993809328567979167571424872949665250277407815213898810001991714179224029392597881617767805668998193025033748752585033538691138672014941403720725647400700655585638640609684260990378050039937542764675694508256899369843718301008391045895960777782465841448782680395449795177400409039873655519617366875648512099156169187187634904548554109480953278549632252860275614438709180055278778792751024918238726693542496805390858554895297327821310076089498571490556747954227169418996927745048401847187645281149728696417387968217408363521151796113500776516288122248752403905594903352920748012124119589576302192281005494449711155371072391482239698084807785881696984709987440207473952122347253595686578321652636586376249944967666467074797319570277155794819835779021396127298662097657855922015243788122246429154095866456180498850925711473926660187604521446536945986504912378900357829710152345897703662610009048602659698242235132334507990397853002642037035731749826835079153262512356660682139465354621398545825235062465952913788147359835009411486673085482020544886244519244973946311747484827295034410239835832562808159402900208633648165363243312599847881144721654375370653363805761838926200711559383642589790078271119515653942120417331586682808950051543863038848263544511878914746410608815971116854513656182783035173643992907483575749368359145859412138388610646511087110549406220418459761930700454190162605873556607597742491221565976120154542246861469815510545448993217448730384920489764529788567526719660542360396569060370100729207337890649360207298099604036785164021416386440898871573408173787251764289651625233191558485354410545328043886131973487854092730886562860896058058403184673525095090820503650635404243325149153212439980520655028614467149359075196267069175435616395465506544196219838662800741610052816496505666256240285211451742768149507000547031177176337307466793040197999189629073565826161489857119841250374843996288101355204325371311967797674629341792420802923795624835950327623386008496008518967747663230508862055537768350971539866162176885076967207574583098948169293567754032599134642629933785327113510172251694842716899777583624837173157048944953713571640246407218138984132427927452315297626438791001683116592628243289879061177997910751072031919315113641831302033476699038145304235015205805336525568543371973019594387675911503657334388385365897573807171772727435955735007604830794595120546286447646235429746054291890004078403730874872710843527969612807308424492033830349683268251563031432376865080680479709715719024268428359145169393743073411654266029292735544216282500335143931946757763459396826460478577012933960645159652001270140446780648833880335716672267014204491981806365448998884058619330083168957154859198023853668906176234356390371574790960728454633223429088763277473459359629962977691342104736421371066425640507948909532131165955550319872770914897974065757969260728235208663749449165187624305157046144721569784453847657779309452749638210888369670904237534169671389661439937226612629709342464461129602234148327985855289330094384862077306046996424575571649924163307262463961915873901373622117199213025641957363036696785567248100710499988373443961140596607409922137598496470107737082145218125733264479116809162622606843974401613299704414374097211146332727889061199412411162366178723702875569179739539787908521977498089802368413267112552898259971850727056430534668515251660351286567220752049617986320214928090945853443943095537408968963597817302067407520156153217967028971734103875293238265403259355210570364047565768243872694927580215168868325374818947705808336575136414664777212788404919947012819195170566491552033020672195981825606644826988571109482508412993432562134097834871277764208728855674457028677462001769347436195008430944971172134154229165161618011327923357913350523230047150174874849634786169207757562906715269858486771017085920713186533451728589138309723752794393381232030329636735833616526566019398811728841299092291303520743841269795518918189380729869743343839733021672939085754159286861942922422020857261701345512866352377568225309747806763383975726399035597581365358163248290515473588340039138097245466436850687717431003505884090458959282225249700226141934241437858471184310223191512639506330029564983633244319316505945438374872748410748608646973822672889502885103571695245404499817876953994938347029712996694304603640835163747562382337952057902330900806707182956950990114062954361165745514851230214602857674636264715077940431878824016907010834883751007953545236071505794115814684905979779621899788761670465683875071963020231859260423635481821356129720070688439825209097954451920564509885865913097407740552112025538829860765509755831704927545013585539536200424597161509082937578912219224790582593325622819058255370602636625258520143711701571626126922893667861151120174766943652161498384846806142376255960060933006309784620121446029574232375993159508242081290123342825341872579209107914130418349717064997942344046489042602344437819718316190515919565863359114365752681824523935596171124649518044397089757430003301285478634270671406678368746664657313832363546768723616936043590250092653424520650775407911566455262368397958416010878573477177051209614853336804894824085703048421729399631361047508120788412936153483806586923248618779107678548100172354361102179101459394879329116039447999006533282760966427043583392866122629721659235141094855960349643395949800527184716347030031985040870623083711112432909056541026848413709014970932071152839215483379916069925370230581244400152476589729602917890875635679945148763403495277149442607848413656572856257814290718414117047344462005994632707546716420607031549685169596650908096531888922088558301050606772363224463933230783133381813241275898820231860307237840042140520662860347327498966958885509231267482040991575046325015659184100720549569085218106690117663229201085750589800849302045721001579634301326532623054861491558415594850632604508910426108171803317917252826555536047531641380337305116425995193834702130645839438267856343696365744815835500427286995711207498462273961529539496683295784063477517638677113306539816315385742877395881443731527066952111930909517028760596751698765419885396804525980208918835951683012424152508724740304227016735962556434749752068283102250765766005577015470827563688052269995692034199910598369337404784111149728775169936706118108873012999278062269141436250398896290010185326106622820923332513708858752171580726313618269894374634624822984924314665738937629475507754127744455012595790469289868917979246171331361999605431461981558427761365664301322841083314454518341758271450726487925374387203466794829069842180464094628509477997372927446365504958573567431890065757531617430431763837655515555390456722070157717161885669056092314200470550411387357776507919572717597046721835113163357962752480407038847076583247591747551104180163320235465304883316633969367495003648724256604378992862112212486551468884886580574583541037424667665236229044969020100638408722231641453956502526997506398878882743740001827325946563075810789220394480112604508671253936115916600370638150413675267546605178943516054357825624489479664744324346698935136288304700920209175031169384645919643342158443229185550978784052058090100348989602472797918718767978665102377538184364924232715248029945032712609046318283941714550292284357435237732528615555922395846615877537693984706281249029228160538841948397205292105195145914284936756535442020924407766591471576979850868654782251938682403661680081283057262587111616759081272775504629122906786582862429790909443061017737230294690942989189837095791772560089727582299923915140831422721800905134961176170884222861845894094490778964486449099039790712791604867024372494717385810182291342274590139379373135929709074604524107579772616686596174710040825447451626522124468963783758972291979514931035478932784037458762676348928154031671190486036281693500800916712787931168843810345934450577538516211104899405376125672193792286560057486555295547015041885196493928759086672659454653816308019215102527561079821737530275244324857959194274790023712167801254897867824600966648218499413302172253552257971182888470400589487205698478380625574349850602348914235595140024857122398016271429993736573278509302046263891000838695181872303181395970390734513516604416928808398541297650238372239777958925984805446487611659649401349257926944574688178807796663658071431948805299368511406408864832152106798170767513379665813777846600674730902439277499165118233580282885864807868122613062906797030817446661746429239271491870778483533319770566793187520274604678930452423007685454172661056032996664372454269276089068847738315190665748592901746709169995204329007265314300204584687044328204650239246825121255478922580211708432646518175485673124142711126626779721880327592810544673583999094609711688114229766445963332829117661642965557966788700421347669031574297330645502479805649223835520404161496669850141415726928977121498826714480823621074817052296944735955023605532401185919744930235827884155310257434532701456780090969830980798834309694253622985185004100216294879037641582633183021833549130074804886983478029645698364673244114212898616850018275841657089594236915411871799082530319289052500370135033814060598248936532421829552020668161706071102759951386744167557162054988434687693880241367163923928794603180485815424696065420469977892788191716133156171863560308042653990721854673350404125800149251348539851312148453014909554178863628538642730465372449346355187115194574376406821703979871090327142772747837378524113721816913605773285040813270738461216058275403151869470750944113369271055812155712243532301610524373677210475017181192044226462691304830674999422083022805691833919311681734145468246981182851169149960953153622479840283966374380601868224033028311405790268070199368223547379460441179890005711772740314652293180654281388615956559460009358923790882920521879020783560147558783434058690604761995656534675853974110011671469220710407955146539920106795941418980680868938596270464334433029867618363968138032601841788381927052918550693273934496542699198885185567038589535481053376937006578700677418326993755654193180521617201342932343671426387143211781149094819284066252104821015829300417788665991228438375879230532270421768759794354525808391814831831322142844340109713083612495379688380105708798453414595786520425426251340095224924872132197182397488442299595018092286172115459354818079937554823322548284099811310857325623922275343486352068440204869574218639643096232938879106464776027663965061701495238819025062796973830802736841080504288997373674170361205122782758110915003030895396543459908706041984431892101191796392356341290063454829718566972014488129088960817105024877001123120104560066365053848672566070603664891110581050694165392703143206052073702976239921257815610377286873612381123220859953205273952821601466061093333832803895238193074541047202574909479397807971974904355431502607162088310151270455948443737836853277420305854104494480506752878543872627925162198182130818922081098779258087057396403430490468753903066153669467620129563573732521684734662245777150467756397885759040024507695004267999124237097702401708909799229343862669679549818711895269754290524247346807081046607176547701893075268158677296880533198627455126858521108301860265614984250444088320622202485327393943692288097509154404488943309899449410967144334286784757561796616706550774234006969936831760358501303438422733703793163131231880537168911703020445916847153026512930167205915980416721058659821984881992505577354627896546048296314285714632298778655090346516124786216503950165165476343357123786475799319115264573215669497033006320448263744570646658298214936587427510146614276658507261397226200741592819970410794528779986267323996544043375202405432288360498554682609115413700000096817166190601999595546991751866797126148308224214513513318719065526435254235320944393844612822644103285338524293033798813771107940740859220752473011284038564577397633282374603363022914170417374202766485780412534032105800750157402885372346748886487595565878409809633269770825584667787191273180550931145957617432973565336140780966039916277163440651271756270508455578257827278300147329015590967957009271834712868976834629910252444094881966347655818907667386740261457102676768159165524694673554149326217015010185533500509085302796349753130242619927118092722213784176507602588056875491872800584300322142749631901543257239320063169586600766425659192714666366299819953315291190610488635817445534063500708401378482349995608265574631912539462985386255027112101628236761570323076841125049689692718145914575616156894487369430693716313299448718796614384082226831744557525676629170699833795790662540272282810460103771484744777822370494608431333328886756100108109416935578787376714076168996704012456523454369829773629450045121995976980941464480757296945930153750913699764728625282473731874791034882442524757797318176427071944145732619030792247511379161092238951326157859823714401333203493099227695382043512643394494759436058731081561371688986024295620859167007775707950922331824354326344207765991523071478007728180836315437313171286788723974485176292861298468598740527601464096170021825880188674167753502623354158741117414131013819093553014323241992586452082458376273033317144757794732244337340381819223432852902494882737975284563028124477945705747811359430517232589051077389328515956870082636609987378411898382228469191694067381927853536177432105669852895595822849852937380434324414059080472799393028589497104230484022224169034541287181410308206381928776574069059210439252140663717955766046950613590058417216914083378372029162154761659468755533861983423751827692738642999014888705396017467569933826266215376250656018556874147337757262486578471576094702113803363432215311118272584790661715924656776429414546361837300283382110893603704187263694492004815351264707510065039200489923997674875090425711137212674753063086934889288007593469829573943600315616913296077895374109158828346957861433119828583073849860041490311502452110252461588549620370996367594787238983188401959806091576262482944521249097493184215589343336892111622652143269852588765876617918523508475487382820001833390748622854044093437900621885234472460479370328948368260543117713598726821837913479094945588458427471431852637929450913129743224101904405647615472270600848368407560610072489141920357324494114085067728056548972035529924009076136262088139404029891736103986670643158134728363135349844077395058159050732011214908350367609337913806152693853867960040719067445120713589698378172582955335502143030358997908132889690419663155131347464739503004762381163302841601704140660227808017923285535524375530704948193339620824492840170905118900232044204909520827233486241543294550016570544464446165574300255827978824272549505886970491579585719328502823219311595305669358486665175746846305344818688092600227615351927826492988942485189247245849038536374960821939938500357897535908139478378618315770068057598458093988306919491084678232670206154278091642335375523932205088489664060608167367445043805560686369461816536433068949463188300915603659325372366459087446857461425983845983684416597364881811337801287916517746897300499184687588715056262796362032944172684386567987854636924549456246793998647460975829567162842667807054468716149917000586234056882587634008869537965160655721206794804925460248161749711322177698676420030030425368102504681967138790664985191726478806932218781686372703023803376557688593194427250391090692787646766258199560799444209514121435371235876418511456884354047420180555178773265132941393453958525643887600497676802378262302239360607977070321782116418138652528665062764352033795840643187414213045909677921772033365025215935046222401606428540192075336924895807885645122382121040922527135804082340348248806467857859888600609607668955451937118035656404244361372099029000161148037059759806799877367668579416492532703626482700151136035967471024446396882338604827417558855829514995151283666107972618205616487798166350695433761433941069050340034386221922094551541082004451438408542452473358601722652333743389485659048388819219565853284214065140589456852267565269825745758912611598322835499362640351211322283438890194715369672040180960882296472958659246681034401898925078491279659333293935782412278944011038361010764310179182332958266192340418549878656298036754005816109058853993259264820485429867964146347317821134810562124717398370668710292505230353241417121143458559564689753079307190277146497017455888629135207726221138844717844686967378237207958787467619063781299023483893231355514885709025119066322032893879069163407383059734217844428314148963431867615043404739101064920517874930434644748292192279669074010393489248573182811655064570385020868348292271253397794819945304047768024098466851947551106667257163623481099189466207225520730056706411528198037864351036097666946080300186849383151125041353814679687936895456204931360378363199692018892913635776952784045561996260984802113337671654548512984582720867567852181296458753996811203567924523957704804110813763157439752307528500386271063533792164807276639941300314092454172400576274182069148414499412282176584889895315077207744439506598574629931569386658314398922909042795437452965525414106490898793351653870625313786438225735781592318968920493124568204465887720943776237460556883873017545179430743815246648245942594593347961607375567708468986145366140492677368880733244071628463305741576547594394517339868744224561265308614623684121865379197058430338740092360795863793824348694679636224658682403659590549831134895275485196450544404418157976917269462655316935367482471896456636638916463969992040403834313921854126601292325742784879069439069548059251556283562520103512559898698013182002147890840014986661971435750834901339081849866122795290783204712646839371772800401074347488706403176477441854345996677268941344792232877448356207602063518628233487879754842151542342774841089895362371661267243244740306655932066808269763998209015713670263807353015515153476657704464644708509912143509587200330234071737708268557239113329931503046674554348189589044642943916893286736524831705278938874909549957853223289574873703911945309459231233761010488640657813858405066739975273724427048790808154395370245581811442038160966447716845958915573487695608241272742115084802340479459197818703833486729143400937850193238933309546732262683436476124195652521695291631771636240175757167592731391568935866883558533604280969225829620134090012585758025684370278354208086270497624494648852998057695429098479998253529067665502659724057777654431957136956232108474888324771085995360093812381830772147091222464768688352619919875667371154379488123114975917511283195571927377691074005619184250631209095095591909196938545119249926666236757382261065286733995257315089309052675997580456038006105419441944500973147365531320765703234029154426893213689336841578387419223511084289055948936397275185274969596548390257112656611015158298177069744048346511633720225157321316361005989136839614168845820193279547633826133979284286018666396711399966352007908215211396895654499597572460904288730172331951839257638285590741034663758114847292097599019263766682563742859724482201294496457182483810581850417238841463247565184536128396810056050643690508394023009652506556213270094787191226463661279673157535872790024080101432402958114418979996247114750522650368540433875829673363800869453469184686729440500558924839362593357256495712636800045506296297880132322964178619020422236142681455722221876504922207129566856385850703701169307581508997347010964829534630230017936019451089468317083547109656425368688175023802291041917895600019996682697333971232213768705668846608039087592103230492680481266589281801877894162526222027122495197189657192158953477428047912107354208275279810975881595468667926164047826785357720713420037497610976607988782155049981985040678862327391886626367741957580000604756033325219972412065397852470014791910400309422732377757130455741566433346362926652292839798881996723821551716513756787161908871514664898465398668603081940104692861482544882122616170083431180697155473752873753933672137018062931376399104090320549880993587758863483394634297131302114920961802527549340489144685228846949143523173071597761162280352761418812007401092470834268915359533237732807374690960530847229406355965670920809597841229022426231306772408453230571634822483173038565472691512082962117373338543941387738359412521522330063663518192355149984603740086408062220166093373860858683859573056805549757148356504614479262912917208522835157369436290823893810062060963238529371605500038888067997637684356620239452203294964767942418354251586002796969479627933731981243156606284293972756598471687909032763319424542535158016543846181967406721390489256291849955049017547836486432491040878702822452228893616625435716962030920530613143919411048552773290614480124960094371868583006034349613185170813105761076302615350793795083390565053833952469623383458682044633936727910324067804348732987898228693938091342882019989450709508798630023482847025361876071687825611512811590495774219316900715099512919212427374268694978986380822734922594029414909693299013487887485549863169892667323327005234377044228540198639417320228973547175700411643857116874761473268848412410091313432641138338018256435936368952621714283357598853498615462932093610200574286675823880370133969427670428422579302043271971330549452503595892635135338152811606780691237296158982738445739655400119658443753915177342955685348921455785559814148592735385446185285076790908301269485958470917058798581156668424885990181989090997687984934479788923348244034328745120996043485232569394322879552862681513243958205411252395785132682715319258173733201140114031424095368985008579558434591751642193661784292272011772361454370727222380905214376752960244956113773984116102980535153329676811751447387355556139712853193568420743591969600728201013261495904139445295041730164826237907896653838660936946483222812667436088094747803231517339532561159829012912309680319596637115882113831966361601055447441971984417488149503515527567238706021506311665486205895902977178802682591552018168025892047624114930111556506296989611726366578877889931194697601152241857535996867827372639404682334469564351803324516404636090434018122351338938756561832024708366590692481180332951053489776949297996677072125366284158294302583862716543556327255478100003185916613731346088897484537930545409948172123996909064850593384622499171119329931188720075462873878945425774427096758232084345279953152179619629519859800983223645752462831839990298939339027204393048534153715570903629830759174380734589096274701660246492184646193733661069682829273927693981712926035639768726473641805374203573217632342171498611367050141138389103872509931216037903750544110454449436139968199130145359384982196248421254463582446842397644418223119928953791660264868339704843566333170664669954716963162566811098258814817238006221843012870935886964206303543660339263861649846464618626245675670724774773453753192035522909574773844808075292868032789710437423925091565079957851988501215928409196229141960385394803837172662328758565558599889587513155191539995084202655216339198517895420864035293318922678578857382147593156830164549485871902631383789751567377211145729976246667929976448157802941087033822242068435532197356464947244107669222181381100418897070044185615812567257823014873573317663870443449101363494072680268827072234280689077839439615681356570393713850531432823771503502254836083718551875614503147845561807904694724193044676993491569288049785528716051768461657886399507037624335085428535652081041963744613786071583811045263077798198737426278078954793319966153065872684424715368306512125940776161271259707593462195584996195792044314219333639833046437995230351811337111801065366642129802115555254594783276200744212392040262357583202593023578179891641988593488867952542533656202186760050819246096863741392614256755070347374968623022474603321910399802536612931058818542511694195504136572093171837449052468685731804229863206743729296106964364113055770311338922948055835227209163335706314054467674562852259060031392000773113141543328395424728234614311551848740777015085630094889671591436978830950898239402238721583151942893974183784648890960902463921709302945230693791749670537700772218883096453855548918803273768759478505676103556532520966437711983928307857205271660336561296554787381954163338080187565805023104595176662860507362456415121362914492205987843725407404379890403980920780107645699377979644056826323747707001956980727878006080062985701476368828474862886220386617105772268027324128686313393501421223459517756594339248624148174403163736596268284464043935617274178733899347039645458287795878979990917105052139584235422048041462794444809747947312599221530352050616013044455742215748307617735843876628262927104657347991185428052921644256273687619034700392266545284544265110072328215189115160057002944570450240334477489431896143391720394295685702987444694499882292512185093963166332445072779209157425107803745397936478858521412135377993405290529650430926357632578509142026611067656946596352174380153758053677915885535466833084149856717562135827094257068659556755218296762128020877757955565011025114875482822063131177866344547157453704957879063339006448182626438429983444066653750988084456851004887225591344830566439993669819056617393216689445148559838789701811633033280804229122188604029388705071615280321252989048018825284262486884723660646599351119520452762172501477781768664483841924512457381364800981363078247896580177312909314130764101070380375804222751709755933950227343765195773288368182132708988115868804526770227244869059726675718369196068552807912161867698634008507514411755282538575882239573113815383830993178768234063914213549337055753973370138894121881794382446330593157120155694416117188964493790881749152699181118187397776227769903656480949477698958850257882859902040947380458516865452887253371135870061984975737912486082192177899467603343497495264002327960496722263718526039112095529830711313177038358682036024321416271027929946543225914246091198635595206284924630788775351056557570986236602543232698577607056816078669427697823501015130574386398105980288612308342511220871792743140270520085620152236489008177730791597867938808682937722080856433590849586774492189558623430751695478239033824388688192875954493415562533129809238548821095468585099121004148127704476777724984716180798421727678343400174517954161002636234829981978979742128760198272811663114554031813923677131693887142435838059435933776185162956988918360097992982148126101049764674547918783320505069067879637259699952196931984107390090702822210921386530033266106588595434777724397748234526420368129419052909950486097440252304865230199657515085499096972130034580705484847229183538477218225756102930656804323722939270891672865433413482318549101651107131206183824506314159762117061656455002236164279140942827005614224231978147466703227789516153544193490513831891152387828885283807604437510829606638000309803006603384799947045889717256039214509803617580956834247550767772895759529460755615103544304267675547029866899248082597169800994948796578317079130143058761192755429975561841943660749109511139859788083013221661079255455298648569895698922944760400230536175904421287605686663797677788648568321609159125084673417518777472837813616242874726793681572477139791952994143498403697386636833328605797757323196766053728965015158698429279270276084184112370830680075865985211318432984956878031248820819740935894271408321148319684297405342918452372571343697313457957699690722560362136662493824461996778797115334924779885988621209788548431391778026871846252663808838968913159790894073509995494878389323603782526852096677151622313288676033504731451899050725114168203730224216737871658911789743322205320037435119897515857731755692342975771043233782701809578963033750528054139152697530134155745421917873311568794517688584351613857162083668320543493799032482511250799614645250004835712760708131372268540849282880370587950877672495159753045073084706590613836499337053670522381017093066186519105087414342957581882209082131699113032614632636947366700624350570734611589446251821165031088568582460349608014598909634807658608988461464294805075846032610944888307320786012526549430845323362077882661168011857776105579502740580962476962856077499328535713009166856687174317015843265500399248484598195488869847946724298462484468304725052273896758949466283880700567734892251243078589507889061287022825700872294432007737564609635373468871084039328187863475822554398638838939732696628599235726085291989118267984716402300405658231901465101995740340036250482493775022029341591221567270867713497354287733014706035442107987113174174293715352529618632974925861653727032563769916211807157159556118800805180808706126602343826880846861761198611287803943870070062423936022985498049082621474815842351907624247548248555262121158074219839952273463721706862394581846124861564610851518193798038477563350665178091537778187792734736057512633038687170096001338879550316718998045229858023810646858708983360471925538811166781823569942352781177716903199904132236290001178812822778735235284910271626875533761814856444526504979220198370196246953598014299324387443344650933338224745678792968643426002369530790990408769010083700018826829974257782934631543955844884301980719288095465150338681636998287457221680246584898401772763314974087550170483214287752067808288455496052590664645404293363265147828426715832447694894486662774220659541879324371784510748514439232910504528830306719215985425173788033131379973963175502892001573099628652562597949511458085548774759949346798941199846735548547441538002491278093255422860258709698923315646403641313839648702418462903067420846702241549014212275911251678637847728360826643448442568498108637929407884771230993835824123790229052099229849308511511520102468609283933725288857745656923176061663882398988908622095130700914380614559083320005395277758501488156702072609337097730549069810421412076920412337579393461686547540919722810070572906683795289198364009056692945036972272357355860542637412014777909747362081503437123092327265095081895189460951577007573577933393033261078581035395980689717012766394690218675074034389350118951191197043041315623284367101182595145290797448904006126233708847673516000676966914287381509174334427957843506211292668217441736836306253479387050704245018324303794349066503147768604751873359236543669197563107414625235287705034043975556255354875100494297751000716650845289801284543313533944615303550131027538854984813464289724541260551331632202847473199280982570197079618473519499410448560698645668878852237605998145458215884898006933555275929514861107272996534480691431204931509261682787229220195239686376762450401572851333235622899148421858607408497331591359451851445853114049555977752222549910346584121294093120103487930365894776256891189859610926211653793925877545121887871400376247481657038790037490110162343059115181150222120418789003451479460563326239629234201482037605019777381657257092447534640527471096927455686917767865383967235131034787633409381307701083342180696811822959906449791077876937526111631042183663612131432340667836998941743975657793610387549779625901537774222157318838880360644650303900914505326183823712295003803974581854500036269578913571797159969692811928149197102451220284176246428198958904609946285539199382434461820991868388020976508120046966044187254067354910437753374845744392165638485451937552321957718873253021366816463362741948275839671853227607919450314776050180171379455730155948500930028551730952333211522245996199725138556294744086849267648190322824577502986686940436767860093789177433335887781077408017478484396347528355058548571615418880368082854738509045415565350983736363690077977090927387436400914981346181271072516303999397002484385201036620124323124426213933063350230546877403377506738685636895721694358123046994580385049465464598171976841254452573506189853924557789705026096039688907502005680138100211825687106943640415736866372025030941340525282148389771411280960259616022259927181319392979005059872238619067512141211572220701060894269694017497082788844098668714245317868246832704188303937245500161113483484035981151175875642580721806692250945884878980176773692227593964963229748514999982909085880886556168011556486783970000952660117272829083868726393716964717396907449482422974173527891840691814508682326747789766500003441809124065567074904183107165507424170376486109843535115471973741019779455607463692098809848053022992054117932135849226322254472033941130429410455413165278178842240515951403576790646303764141177658460865126549947840983714040731952168162867017540507802154863263258903328629767375692196515545014763143288488452247938528783706725990910621269403303875843659917872417257167774181041816715288304593128957704347065085132330111691389887435097290815376646676661586868651769469025161863917941243915911100353676092829754052183591094088686077170147702290277752710984845542684593668952174640912352022005578084135444823934990907973400924629126780087480807323565795848909382642280716151061861433014238803009438248974184317321911292447146414531732288000830005589052989505846272853847188148583285775116856957153267623455223363863394280840541960911445264882822168922723170250684070405877059640690206893294793162243215486659798919014733176600953590861248618288867024499538709944141001673444952210435662620917598448006709055066094203191915667369328806088836255390840318426804073566737545594762384128995333618196523408187577882181987020508222207795287983660878435573656013559617996267066871060826982507443818419831636179092958818262103863108918475944422622241616400349662229150702128084464551844486312575515472206951612550099700141579181231740520659829774043902042472044540854967957416905176991091318980252610072670471581075128267437207331534713094404093309281572832195132357004262983617076105886322864202601231885401031198338488259621626493959279962998973772274227330401738335901723872209779261930173503294713922396810702388981653709397180781149483318215809852786498806746004779795575678848406315915256832124558408487330154656858278568809505148474979933236769742922534199815327427065994408880202654436421394507050679374243729760419569136441581910235440489486947348857553078604994763238260169486886604210918466285802536990227076749069384062443784084656078957247484482428689122071079188819270742692842465057442868542405856700148981694491809568502958259599330556932044138459655794922011234331236120288892341292412965471878729324974428642275666717715027961390920122843062182352763788665898997468070936608460616372508645476647595099452919090510585440591050836349027713488551509922796974439085462188191532472862734560204157945781444494300675964106160849879209589465124423043407374277324797403284663010007511546492434561422004998488340995849921003802534041945646799379491182174942581143707297335915122874586383682002358613164620716932435284743661047358866488237359408116057028920395850781294563523254031119892715903347575616433313964856321195307890337818835776199516031949871859026509852629267753084666661578157500134149618003152852427596481632799854103132250465116962226981082178604133041468904634967721947940490218195623851601215274792873932243891496110625473686471429729327228373828000000270890284333177292253734603901380384146069846552734753465386687768548477932767007860461063105335575356209931511069599704173818933981043324399299743646934256102675194529623532617132573617720276954605372462329345039492289731381583827757536967422496276259412311846885232703284598766460377326700112724007109912137665721365819858035804541498867029109930189961570624938118419196695499497872170793591830833236935600384472342205539030325100216141485852711184553616339700427515120397443139713734751319787556592233861061118981915205072715035292225440580372333079039538797405944249947997677689986689488899207851672195616882363805775858743835697313204979679090413176748910405024200693288406648248828085798077762923209327228763599291239423296408813221744105641535415320238989634331124011736272095603955423350281417931533695766531748701563135273321252507519268804708465728565677462000674724994683950798796823201356786286280627255914757080014702130494291286214046405081093685981968800005343291652982344596858038894306111472657501603407387662604895963332656316044577022412861154488130710935672007332200508222798698866603579970265784716439534403309660517245499462612361633770364182169090636553255588394682097551413617619850462144152890573932335138353422229511724144793435296695627887000065888906972449038045401033968727891152079183719396522871151555644191973947109296428458785381702961161371152820647295450709717816626468721556175871658089127870296596452648405907507967803891212194226940609014952231840563281700406353995354657826547727254614103208281502637717192210099094357286539623341871055496894918705073116047754624256710070395950529227221342489812402405969970517300871300698513023372377740667790861935795825433557464918335909675968349686610172620446042569262573120770419245010732008803311670165822217953091704972856011368017281403218003665209319173458306180231295202564713483487386816143484279566669819552021247615523642734457161387380199148461888555682697940897333060266427224818940941615193373966348600368225551276665805521657159150465482515123039296685901249117528408001548693545102373909164060433093129905250536446627814529623036343803251039957769636738665466156635941110688785409302517869539871154973618358625434300113280365856517024071207073970633641895534929072113915497875976452859287710295978198114738538850246122318552309908246600809061419201435941605086834255506320250725595585976245275905346513411262087940757146904877107649681638329612508964336512934702354948707436338832269867633268409156899413084813830639372284987710581434492609186050099789174782937102680411888867649063845847037123715061989312781083445007175277379703151714446625390221519955972282239541666097920334642092822283392582298998019484009235793616522034886318434872038184677677430829296558192727992546196509368333622481422064468975838115075115907395252030730661627093233027098698366144044039321207384743399979265553515441123621565800881457772631203421691717421327470674878417802886018831515325691469442863329891327557763221391121615873940553105127680340818229905743298131238436480488123314434497215845857315447410135492174796482960340369913726874757208410800812635916914733452751088801679242711126583535769938602366404318337064158203396840451484974874556547018797642533607727785146799394036560857632168660851404838338029415456906939752627252591783322541669715238562766636152634771747994467197760929958576467086731459050584006712976177456856689793162177438096961419535973993688452166941749466115995205618408240716951537342490069360419443996673305092410036665745044518405816244356622078582353735732206146840158055910501346352398448447516580708288065354092571595216225351256681088496694085326314532362661788177757056964459847526804863033458831325708286560936287733803866862579448028537490239154573365144264509610241542022425071102358561987036165737010552236635404707683263863593877072175058408624570922588320294707756594010804370762527146636123153032071543863282212454443257878004430885883722772466240486193261729596750857156603342493334809085977951712704486097838540133813623982486650039710321423397343201229175954549200841305817319547088113322897609068961577828914209174834148531879632710305774055131465280141567695370731191172209058412099140088117673445870808864696546785221442880191264421280949686423181506611390499977840298258224555422648841599953941818483134265260616543736026839871208347770861683882690460530284191126061408175874469959200775194651827610188674112035067569935566392590958426951758670600553013990581537309835009686628949724998517911225317510437846357597238419310097530431839292504977471286331205263688872633054158216669788870583352305003139648753849549356588124135501965954475522453078385295653149222166560615673293076772585681879431552025917712169333553394462345541428607943568814534876055160481157450872687784860127079675920066730479223440564371868336799867327240087380501777324901716500448852110314644030433845717310705394820055631996200898330121818930390585829528477104727989978320020839200423273990951053526329821484115744518074597412021992672284180807557480264659839171081069127795543121155866593760794728622705711578053672925137610879571267840645243598073582324799071266877680446135736249317515710201869789055872637100815592723270497117040964390677972695782306857910094511723513373855456978637460979913439345520450249812690057753100328321391552025185534231585670423232290945393367626651995299068635003411550125958924680835129507692969041940735583142153109383399401774604053212637047658492650961684585272672041119463006347918073599131858313885033919813500948670698841954323618268896548556513156470375210267929346017910345695055370740888637360475488382256041483083017361093845471182360265685741909637244829966882305782969830122361149659288183863331410826324529413041732492501595870575961172518422184461618330523477879689726574902136262801137195263153516371667942523778336864316438449754080916615437268952426870827563923692445303255583214768884284627165887983440991453421935870308526373656851791212090933820124842293551191527979005574421518707356921472620601430323534755785267773655724505773779507492715096269436748745651368294703135444804842528727031963018141703884552269385574373794817674379768417138307588695324356758893428839219085327618418124505713775704788400576389945000114526911666039537063095336183694951967131615177890955431843507140764063106707958609877379596083172138914657964552595339287179131021134890964495390089190408683308686256728147393599563654299912179538598869313418734438164800288847686770465210059032138040718079930655756601968896611308350811256273490231905813797812309411989410415627016217627993597110055527126279145147927306254604587374754750579683110353723656231774766512674408671431303907622116311093946740573917060736174616761958730756756636096528274992851267533454819765821123915890755287760986891501383176857347204507405837713088057895847012727165701994896592406613793946866821016477618842982634718272905914609753390662587714589895608287748428408358786027708384164549659804169981297517668243654627385023878858288753663169632189832228762498606107639266387485603831467607528957536396589290970033484872530764302937577426057526029115762139869019159883006766719000524907312260665277502883734809874067784377707366477691859954924346819466009017736974878029633912572387229086249564992792000025259096893451859253798198025039691639075591613243172516363856666316723526711556271666343935082141748255208299383724927683775113490309074581365533137728794935916336873385166273490044441240986003986727335460076703007001459352740280695466782852025462698734952892044358526639400447032804691231899270766887008469385910026666862454286575222658642439414732775232744133775237909956719171695718200937484826883014532830564493442049051142469032488371468852866191879825054318540446512795555861102216406057320905640958576615748725080022635875691540229408255973749341877599248550515511008429450411279458662314681850401741419869134360908688190006947299822680920734774112351480961778705595294263385062103915514954959703240873022709727181685792903251461914935193841638593950726431870896151707521820349531215400690523723226634819776482043246544929506592819695392868100910210607355083260829918180079851838678569488504872767246512769463706342620680486467707545224815377205024609512380780851529663029750972727051484321264805114129394148811031916055753884908582810699864291474096987610372830506012790004243218927844188313662462536389997208983754364860760294096156467031073575575430352193736730956960450877512134513355950287484811248797086103105932291827340078681946384022960087382843047584242618068786788191499568515946035470236670906151211193778364098295528318283680182824840307019341465822190468806336273345369311172549653056542058359228082425028131435491929055014823222827181897524936887678022098959610496228066147067214980625269266131374866333535411829992129833830610886430617312855163831926030101359780522307664348740231170135801060917080137895810091723106351262953523886850815058378485820653480821166694661483096564870521262316322375225191505883444845357670352034755489899792869150028196467324827506674086992669626952630203573056019400734539983008375615275479757508662927974211678401043296825638728540185078313776787781483540741987395942431948438232069527846230918007125460221717050392728868854670695809720436538055947269352900573549251334469055218282011413035224501909260056344354240260336566147117167457694314952167771703880640928578763713027496275521372663341906735397890139340736807474201720322894483250417896991277947550414746418799743538172546932135602384091149287725668840860659507729320285534727575432466499256122659362216070798822017919215250683254782616806153163527278715015578636800996881907805308518874534926721775693049381861407388615565664686821516839547671144953383074351424443996668975705680550275046553326946467716456952119914433845607967363298397352118996047897984823104874966873349615311656625450030773748478328011312897253224044751835193112578097643411129254238421547326785868923720714804372539235949695478354938541927260830686483516276462643530698833210259673585016023092282744628501003428586773363929962724087834667254721235673112058105387363300361838525971669140874252384870511396098561860228292453800452542307922878383471201679898609842590449042508967192285872190326283493497416594419526557902202052216004989386962693349166700365396780959949870367299892185388292489984762883838605277976704483537648805438298586424469034168097951831670668934248337937794190606662626737700701506587906713488477454801272907432570487328678635626278867765264175999667860159745190098907419337177392293382081300404680164917685779497446683112843097257034895143489145264991396695896366229952615171417500292723301723449300246311502678321831819649328619262667750134836222203091393475930858423591034106070797742716926375800962370125671556846942013678606190175436949786011287108655716312094272029760188947661600900542122104333040224761602632616077596291308630835058332227358183709344736310411297260541261869126670777608069336843763636074625680126084243535715867699295278981747379675454841939039865446118120464305649753100509862431920569716316024137939956443536610990399542358006848157122758201801203856848984710874147268493284924161161557746763485085165777192645245210021667922344532425188995200932199089801481939504218643615148820470858259600096276060987620889987199321765999117598700123956032033925559974629423941674802730391421611598392702338185320416083176657435778536410411767139594225087985529463213996626227295665842215567158618388160928791819819979553178592975751983555620796156638011643765469302739044948215591484969739391150939554974308922177695204089367170839642574776221252036616432842275555697734201554769311477797965485754844848775408034161143102251827412576700401479839455728489352732784422604529818474371750654048246691440052319623097572466618467861372008275997430965722260017106586908936436239043423699863760418132842537405930679001109968648081278564426560671029042285828061144322317673799417748353025245965999634431476325166432073961417141652588339641011637405538818411449505298036718764932889400108452930583422044313859532250503936057161107072780226390015410165391571247373112483061068677824404999975029052250692120783917882376527838912867580224921535759561763544070488442155203951099804017783853793347799693258109215449721757932641212537350538404866596771671674567798654184281005129246233653377436761441444642222160762232727773356102272337550325988533015578883752765013145342640741663618146283568700575222574909769096351053239871075287095983884150598557831203118114988362176333042977947041523512932821008879423980107591567495662687062483295595537571760286773469497787693967393719290088137532588667273070987982356155993637944711652110090044382842141699229946559332944657023502327347335928894922700053992604075592431614346941582366960598218365170011637141130605054508442646740876994777656944970575082442996839817325098070284707390954933601737310403501857315526649452025412506886079597057246278458963290504853325664309201326933089510877735636150753952908885678649433439068731296470381643377115916148951277530888253970517328902168902199909172437754853865096280817291103811189116316414868938087802996928000340579465686923944975299549029807392286185536228634158330544306346716811047310426371584024953299046819568964461389332208500071789327752966700432212572862680181158035785264456958010269184687608311720168285000876233151316057341002408675132602802240549167656896827689949104690299608416563070604973576087669563990193168561524575167573224364267490304173176892378907044529377828440432665975147656686267421120589658291353454394268634875080796333451896711024982488886255749038775870580812267361755207820036379018720133434024060535870181370536843024677764987612836822578987832915906603546614441871668338322275788300005431003287498622328841891333487283470050410681448885009369559367654724869474052029054350977029404143265550314725286669389097601713006231925825051023981621638592461214078263110548522715955449635129990774899735410047544492111484550235064812376600181250936941983914883392095888073441152230494956749987463336166978465228300112921229380455663074157893163925269071964954842656040947432795280598837221484893112701343498389477650402616110775047562770442792099270519669195805226446430627628865974981720094024109825105757424176628853703588317189628262534996497107761063934649633858671769169806654845849490328187911252104283470000219425885660872930803093382987312206373742756150074302734108035387166142711178856339890452987371240722454406143939482298647428180045904899109514677863034281235084841977255573010851028378399079847581681055609756029969983751039346766219303788859550345172736819170255863953733458176368700687217444259182477063801273560699810442294182500884897130734805857759547318269654470710717494303020979752652908199119960591110182811702597854515927731007729316309768483026619146806031042892570185814900339496759146047337719848833498207076235100395166279336082860093312501384547152864290653983051197962075358326768914431147940822080541508780489627497303621282358420575098860658419722767856220040796892775942454892143395672720327795694562098862892541488762196789462026991603321633379315855723717525738059640146239306087549382520410092569247873027284840239822417215316208388744385223960233545540006950369363701967900373250306338959930481763514966753828447617603746273500988336052921085582473146859831775668933969195921277184129484034975396809719741845695281659905670398732667479786957868864569961421445572401431727541159993423182230307327786502316898363752975677810221178627405910442000119803681247673938440839999383345295311504822541679771236379765753565565726358682726830443181730771683873266821350769490780548868040547560449661238389813012115895550697342660025900470848179114632750777422574409233893705330693486983692251828468570976494174072211506728115481929838115897716185786923920820310918548668119707165761649660714626336137487051499226644119019728143852727210711185850666353312177588208001163629182347627165150771003303888679702487060709549085960859007799885460328961340581858808710804715329268514751179621654200546253821449731427633792482848844377998545789057124771194740451189924703812188835791712753335370496205801482916468389751767016563970825994621851930910492826832506933434264763842837636543743902948803457171554219914754350427074138167362537603735727207158883655720210816232142214814585614756597992517498149252057890497188270054481809102800270811278248822292554363069582120346829415285639250803197563576558039612851129065581620158079872472384101717294983860778616974404547205816417753648952377574640944175249943829166298793962449275763882579352611975432345270948005973178803989535841212112547869900800689226506727589924564064953146007581978100645537348868019956727465885377724561704081092632138761669282438949408282480684679660843681623464238479514290523087905386088041785275559903049181989383199987020598807139088806560852824257148765471503762362769889560558582054039898900875196468476261816900487990041450710754396188849103766938836587029003139017815510723298598581670595473277810058055788599161539583250208570411602453881885924538555264796492352609740770629736082507697988285028828346687727475135117164605094324781790766327776339396301093323149345609582392638705253737024060595475057519769923842495752599631235144056737486084286907517507745294803414124549007230909075924379679844154856635221402289165208400381739846566561684976466905795178503197110924915512697349779083929303660479136065703780980797077854824782577831026355179327748185568539831737016131460276119208563767610680949487053990829615728494323918990426698365491122359596103102858789291574646098757530521810669217199690570593181898462261735269224749149476639191739683588610171605419287913530426067257097949005429099648211675662366434758286405658960880615458219899859750119355698534621425413138238904025451166273683417574268818948056645334726177839780322871896014800283654042006198887944375725439378238742145255849930685868758677050780436372548062161803206038499393754944077553770069875716052442642000187301265088546812209454221319809707615078153787526692754220210331748039761250620210649705710257309796181916251093285119285459599131364061984599230586381777710836524284642049721895688246313364131346279220763922314986210804903839466603479289389435520267911050062615761059472955907535872899511711799848281027477503315335457313171318038622000327286654943880110328001803064640980470203315715504864712735345622824756210467502379465009692452593682100991941310575854525118874418315381469304661388513672160861567341838119670172802897018712299670493764537259457681262531800562845973380809764691553069361202173972564219832738472037175262831644628417612084942998678372372689360645758821536845710272088891999912645781974729871210899169569693255967240843743099742713984002233090614447183549365828754676678772615954080491751630173749742222505092221662316982703401254899372239684534061448603019014388226667900523032225676879527376917315649657022249577363272497450856229312488928345036606032149160390513404176681348351746985544240402839893219896765219673767429393056842981818604450956731698136604873826634579361454369808605224775948831359821321514525820662514851653573503321442151568917709390403903683361239967268446645665594851489649656393236713617252433027734819596194219187904144803953651293487644491323018467586426229310326237772877163167235384653071313572753128970905461209728156121799711356135182246666677192810800033934858478211151776347057528233218312995670843046247340248683181109329087859647422042202546072518518529747151374158885259718669579534862547617726418510402389250708772995040350961754115220197616341723053054059915246912765576407254595867858460954936447834349508460242783101994662820089753780271685896261768677950881885017496783861267619475542007692005418842067651722431067265041546797124099014799433019788794459075682781019161741526907280012438823780144332274513779886667672060194366160039323439454628548963086078172407533059329551624688966398529334596135467860286665902484791154077383242032399340548896642896869932533110191029061381473510056072568643595448381618337533958857535445353774600302261363947892141399364612756735245098251461131102849361209773950719234910880138341444288954871366999059422518337775343090458868280309302545156119874303521799779649430546097008498292888564268877167497031810440049333006496408515705021623192325029790228247478246197761420625370409825404495025607690009012494930845399944305758521258130315128511727530851726250224163689988782686521478811562554650251224127389111518007187329523455509984552001513162852145102407168995156814145831805948064091594109574373150913073743553789428790981258669939906140296854426908703147453663263445860643111284827189012332522419700113774819022573472099297660639192502024108720490783248433019865446628898105867604832228911495876603589185060338334720108122167676529784831756092330380820695225206145791647131589897874953567396606838398058733499163587558063723232996439399437461775134413699509868472041655679542111606064448682767650395359513745242757496717077958296663735835657956643264970810650071107715555070191412883368018328118669613232191010408022617582050135799949976836044428902413820184437658474167634124073491570181559319691365826993867184919483038859692834414955800271703228714126960306856106947452230894047826615139721014821235897403800640065594755327767339138470550403818759399496955109100659739422490757704154520189126092221779536474293686974514392826672323199521601838610049745129442250665218416877519260957571735072413382726854263424524209779689090675831988984870221057401099656787870301364331478967105593700608440245261543076778831367395218129164258410211698317042883826735948174354196861503353924018166586010353732218196352337134111542039166759091258097836348348844703691879242519126370055728090928909467448570742183079011453600392235296354488624554688522331508435628205208876322314623495459181272720803001408622094994383635100810852556725652310521103848609977364564300660769231606111638469073825381957939245347297447911511204311023636152601706202812352990230552604305735648739533515624779648835751125595780457087968963238850832902289082509156673659922245483344716705591090224918377248184261146265788693753825126119177899402779031719832635130690604483035851844109508417154252156157838570932796099950038116824991430353990381278574601098137068506243699932948220819589780442861261643906260354516330776443655820258266943889414423066925869587238666657613332607786991072513733546499044945076933456089803978491620500283013737456372008832759834626065310117596806036180545072321484521674358947397889637248974174650693556338173124469423723223901831766287134687423395030743999222766496568178206156890096950782173799139800505107041981407590570733111902451105204571764259223965950438779682361186319982111992185207534687913233636202377650275698609246414389958879133072146440674412392805034592111584114476007722935628503324477131905550610083955096149709918955815935563937894054893367515981583843068253793093015660064738906539538257358533134358361098024434271415503709569944715381839924365489219300940103257513951544720268053397929000262860904181656809842543208473113205364897912618102419929294027576826763083097483538168929327092311742524037477814625094329158964404392734145630178371898951986501733458614905247905040472605562537964636548590571655713846314807177268344746896744329558580525149959119678654577708885641432511166979423157254653650092073182801662295328561908776079116104111698167411724509460965681527900201804910331187727094782601466043678501836705692259832498906668673269476694583676200301353681505475311459428180231296921172017441191814586217958954549389778514127514965918211180286600336212339855910708043685361831836441735919912569624513133163802801530565030629978993361404348858109536879597305452964478001725700525263317488457397955426560198143667694841256106817491395464198390818068065940139716059405089767799457478922931499070690512750608420143810946674179364043902497998836369076668845238603595452064378782048846101934006279587239244993072868526637036767596274168244173506912283772040953564263472990761933994186290724615538577151665384195798785021325296478995001994622600963115440023160880740086101570030001433312405417084734856150939067870539577522535187288501924223676218732982348315735745294270466914797480628340687778836520590994468329620451792298119609397473087187504605246716157309025128646429125526868829874195536884382015741527693741361704616973245562891174639625317279947408060178630625746917486755845264783044516566948060474298948842971093633086641017588068026953027552394019003107341066188840294646121514759732796952729634681107837492580894295761895567026590863013534277177576211768489398879416961466583687512894475883531183317601278545194086797874311786388545330782490340971927139192638110077574406897102747697224727236440575466187149555804002292218924189426619272318052590045559832899924099543415683759232494544665954885093672029446689469464941354637187317603008751235886980503845003454447454384561406561744876023289524532076170455694206376699783024262651469345314395302916493998934391459780970050032401555870243468263274737136149821347431205279295115485089072682372196713580526414624292444345920668399577092927796250925723592240869179327574601268214898567380872579770867703428277769589331232153442472037132143417057918094774068224111421762545542119029363230258935564034810522232530042646129402639092736806311690771355765210782849311588392434863506303748918295511691773509069480484143457670847463248939596598421985039670413318577505688737352088536556786214712884101249869948374863042496279039010807061676939582539251951589157448640551598095180147643239172750776747538776469190222998387632794363339292922936958927665027559211007499320728315731424777704294968452425572596902710706779884259381799748045224573872889916460056791717386336196338663546896741649525315034440065725479768572385521432683653967426176284108895395399110508464548194744564336576069096446796926394968238267878480351515914033857461749719914021369909584477417091240548578145987034339533980387476347494690731906471960859149558557285617895344832859481583668276431981380305188000545162680481479088399386503413992545584645666519321612039849880836289435852928207814484746501897667393692756606776831591162281218393359519051021043841276914624607542136325278406638629067571936714150550704617812540200752418145552305110817758235591278414730149750386860554545716231950443850051005594058050194433605240507120157897265852869310765506599151293899746245159135104632211835892242382176370940474414879911553715205253616905854158711937804847489502219682886786330148355999599895597506079968706757602914933398155519251924940083850203743078072806774484870033019239522895658539479561051723772969278561113512251153626149651397391787667687109805581217398254235416366116066749613073384543395691621308103255820042161381501829551369607952801515804924596048599313268516865618961432189740983174855212277663043379872660204469926176528008423246348009998500815100691253242538002595856497478346074557547342328408049232985458171149321706995573103471818981194030904562208622343423708674921625882405432167264135988157270322380136007825024552614445021805603318552399639682936113674015940588011164427819675315382785466193231764590641986914577912161694254973888873763872271021588911264979869187575393023669841852018358135081306746174328151258403107313866581989149746825994826296153119531646073834736198724814522991382085435397705250045943111251115587538043265724956489639519700266637762024673281216281540237701164126207188920484075728675949395188679034430278184803578605749173657275743901349925954668925976642241747291484783529190917109002560265666557443052745427726603519113388638673005642558235766514058994483532114175562159209964622983238650377491518165405900818067490738773041325766695997065779838967562518004518865277507903233773497393096572084707666743814068080566174778796793846760643136393971568797636358206020395877837439108325179757848329185197615225958934484577966748210232709856233958672638442618494771487461409191199255534987828015719105578402354280474849370789883161118209351432743115409008497652222820136624363170827766729896820213293832436911080653404004482841442173822004873523019032200810428330223939824674575566380407956158840938701268635430275221264359487362343002330686861152737018551246250928860237045618279548641747230500682944364315023351243161053626513172628395909017484009925932423722351730692532016609462698548808454662494821466876968536584701277712922501689843816089854336176438104867284922595905995222704402388705847421947607596729912143457647692602174651942891171020351789828684825554837701284034542243494723163416184532800155507727205518450502405084323352737539071320088767606428343079409165449725524801430451499779447925443805557355747227569810716657798654077673007446973217417575188199785415822124861106580491473400572947954208385993537322093281854779121703556461389197280873492769671718356377721954769097818636019155644059181049028370463034574743299041831966975575563974113941775754056656782759436221071237921988652477586590309404918298378186781906441977764077056294422688359638933811641457213466884075221612197519760285213974357581578097469391580440080227735180533722937486753149890376489263026811883814868773982140294855365224214312378083948924966678426655411406214683059916841015721351926178026083347771017842987421255281500023939634274531015828111786393116679880343980803142423427988530852796027624277598040879102956439817396027401143295372972684131117158988865218624287763008951346210924051708453036162495303808870518690933845558290983499981320604573072186852431547513041115299598599081453752574902188239013811044586015761000845708922777156821528245194005190294170342785735608776239327827846251120037953621216675118748468851995801411688124888658679082313115006964624692314506648388583171407559792135375771663286046532945592317619435285802616958777656832691778043624999750986145975200973780508801519211199563896009167895734927146924146068145029721255752213888957096465589126494929386900732773959980572628291789792734261521928927938026651230642299671064158797039769392132723779040060177347507430708751343266236333028260455611982757385778554527089836938115362805699458220973685067663847486030056384418234658593428530078490814637329096656360799691950480913550403966628775063791225894063342477033986124134452174276926516285874090183125611635833189722371225509139825891439787583379709864164070484025836406238933048943489648657248590666830747448085314719704213955945363149118013016177515740484077331519856508230676749157890862558420425614882878824545224077916700201915791186264737782834809650890745443159942848193140403226146902391819528721644405723882694972311846185368346721497813399477389087351201156483999953429776442870194962153057196629462147104458005786004588688822196456084015167009983049056280381117237784725908973501303078579691573061705459666961338728077148629334048511398780341031939001469956222241592810622527626984958297270346150410435426991432565453047263406612163169364090858086453450278042209521005787518362454836656147995760285581938301090563975240554145366819085458745896328557239572341576380591291039206550069003458021773693802964153559001899144496397368133995767065048987547482772350605819077671049097384729234836243843935490050525156828236100629945714490886051615444732546627309260180848765740214413130637005687942294543695582699033685408679394530832845615961104534242286403832841487629869009399918740623480555706160976545680177268710553762972103812259202086972420320229855505899537882999869072096228233327683629694996268639247894639321283613030694125950778182593906823759124705268914404727219183082369611774169231617383454162343308360276147156738722387995946625933918280629526027432970318156957769559393763754642712208151687594299520851400798948614318971061257022477212031952854376264045771918911932204027381412315417183957270183129483052675217220963419002582721591598646045919785470681827935475264077886157578417137071638293307895919144823168515008467697660294045930605932884102733595641133052468493630627643075137200604727084887710266606057153955657168808532127030736183600643802700155954071943620016782506451033644077297530504042893155339035658792415101665974247809859037856741460657273550634945806567478872742769833856866105852396899170738347829424882416311265467432240689130451396372573372597563841206311203871200596083796897022774647215154139919693457578398685721794445495565902867640973231065616459453835505995798054115527762277001634185753790815016792632401210094034542777347522937887598586183164989492587457819206368403276220959710262556490406471733159772927857315282243131292019223049110882976732063924419302339499571929485021335855319049677126869488373792960860829333800441330526857148007085017817407973284984136444332882005484977537879268309455996542500264255210026222871448184294397849452015483105307326065860675449484703391015721273968483460918312473934241221506658920763014102620851625159207603082744262319214122385721669250519685466092268899078143150997482385824024807041237861421958005013201027207290715966797200717594052150397864721169244937599147774656929403225655586593932892054831436688771999429595694205590916255045011805757844724104546719562957837227679017326018602734176443772006303722514582532099188261472438934893696521798981868003581612101959944338184849927558680585519341393698887728381432615242441796723519909049824262301485697994767773577080429285956152291654049516694282093701495490673552592848088803427900369941851883077780309331422679930909190636334127821881104417965067421073132887441294607129173900083504925326597752986537914654778787372154641212209734244799294873070890310593909356396473479878524675706519781900502575133740778474599165590785138335884329184206439666099352355067484100602538857569696798191550688990584431144817647491738210787887779002652455711325065163501500375395467763842760210649353035575741456945663636156932545253851366456706962874725867300645679198026371464573405486042290720367876992478058743849567961241900937754544607249252028154891819024492854146556273856994039404358683732069339923512683540790320419402506480929066779337722676007418812433736279617145727077031137058366471854189171266496593968748928232123183740443974394913552967367777044211723612627821091078827752797400315279242645977391691163760335978162785876164455716972697715450983030383088985492186518630035684025197388939987005911853680498322349546031219830128121657689248903106732519238039738106935532164198087930564886649880837370260663985737747598292076703579616484580265415383997368310946504413948617769298637372566695242219182418859713305028751646764265781382295119749836144040247813466075039914725348567682518107479195225522699210715882613061811240769117454129761470375291998110964235365509460811998299856748370267297655874920363363319858327874797228288159700273839866084310467330217797635176714897945055376096457051437438457940596033625779797788086315802654968891081853825210539057415018681620247229303173740692815290348978517909247965489328401047240958281319785101852687725150003379435721455650745889279190542019935889167122402779984404660599592476386172662396677237433824859288584067211195430899566706840416450231417422052689831479710289510620758093054869122041709085465140051996554627731965111346613617605959974391273350952872195713110713061841497561823879891112655772425630656059944208832295417400750228766798651038343364248536563554834970110942242969117906576091022542406021211611311342809482057953828529367138232136274917074068520513040024012589742231046082006816495926228829536847713618328841926715932570867739357499549245372128020754917233792835839749599782877748354515139003257861433753319231655289807374170743015057254639676093462191005312901036447036378002244366205948662894811874446941859699752133447078308811096676963091166561730410613691313800824006697195450012523693121170751021606355014345105276735856573069714923591881884254575513456627000228434958601657592933489300288126133216797506227661847031118642780325162271413486716835161776083771871124615446562883205926966034628129413012365953321778849231838967317565614086051106497975882905661660567727448943143361532712307817487221872478054103848222017070236058360139841760864472686477260837531347484891713980852970820694467708113558228240215853973664613218667929560647690570221507205053267834068675553076431650733309933128275780408138692687302224293729646006931714200863724668294495545922073541750881670764104841510212842850412585565573608390454069927950786927740978629027553811394416714792281467128730432867347620683720827167347233369612278942728382113816779335632854858908087127089613969417572801233449933592992846573442760696596498985511608087175313241247592236766380389369209767073179167692585733039643936178579480695913481559349541149003900747339492774159313910038201239254305430018919537081017506130601188800791381038045686972519081091644757956745405261836567124016021618246862255406564200570801131310992124577623829364360928660858164940969818969051781764183194618101809613885475440207120467097351174327163063089560047254949829988679571907415083605083881057702781398338588280735952426427412075718798922144824570214713966519186984094471075864592941128305184871971361132016769607193522728081269101222918870099730408697622317918784206330383702770970559212870819225310501904381411444584004684028261451113853091443029945235717332571346818736672201461821917982000019836032632619397671318642132475407199300768334924898867920989884019864301684957249341118392966666304281803660265176520655378992948730629329485470950627151830444475396144224545814114429428388638775151703801720547327681434686896985883101275428332205049772825308484728568432222642718065504604556346049494457599506170092144251801457035270128080962260510167120840413445242764988545451756039985844391549787952775384689326312154432723982599516424528155290318562270064171636464092268069891303411084760180337013562734395913315918922366179057983869303329300285291544753372579991926317650473727304520715504444831563882327525247808466200113281279590050673092586377651270231261982615533930586685588992820447523284454074004488115660290063055081106583112355137675272639066830712754234971249371556259685550215388194888345355510500190907707754341916200876817304299371321874254516151919537651452418554656870395592828749303632758987106351348277336733572659103265191569398704529014407058588074417428520286229455277678866577459172809095533089011635245801298985170533090697905799281486957121875152632124361068512252429883269809579082574989683025578116538728182204701902228122267935057535305612447389294770307520960842451719343758686396719485843844322994056852518123676036504372946648164029119372861647710765320045149170986151898883838352112091881661829307011712002255142282295651517167479218347838879448129431896581902724181806167598058872708485095455113972100664237991041868191796222107571625000177630103186694165696619672167736246720312152881947628688050485431932703698540295985177498900736770344648101971543440441133028532638484808998807141092075393970282025620446887769202177098683609717708899432174937514048261994441195182929023219897926630204896968447830921509513860070731420256028916204489087248850206401331919575829786371878547936132790245897461078825915342423731259898603484508703327223478563331692328718997998517289874117172402417357428345983652802621850298649155488729478746358836444111956000582786637659032368618233911319204649388156869816597943540028873639431133189406633928919611958221259416112543236393349863233478798057098731452358379030589760212785196054520190205487073064003270605942549417282936663640808307702892968366119351549673494751511068585470610957299386006008700831756881129976972350471083940435354737330599525882055885591421235399383393131290447750139218586836737934861493689433989910406444636194998211518591832467531027584068078934421779499397305606214391786495498063189192135925571747022769990016464619385082486754046497520197037130466239315112121406575185087129021379118687324175990115512410236144947727010540440608590275180921600499530692379342557671430928102361689696972936934929936890238105395826209294492891604022925107835100474563376961175869906131066346739889502659049289892813754883018586172286068836110576897308658836697647297937972446759595541003563810909638189103008282176842272629023262179483119894711860584362497163820475167626693200605968429463835189138274196945661925500921453871639636090521676856965000759018282254043288278951836903383351761132287975857230249167091218936130182796479352003772915973158558008655521041899832513505001609687043411016193042801891531032262750269184978469543106154502105927992418985840073287247198874297091225869378471432842965823297681421230952365024418016971780361294886130107186786630369793637337161684896251925199682074690777408689685496650301078847736293555695314144723305824422991009782771589638741345127561204943888395296967916998387745811736676578018642635619257780212164184072797430703229387099905091542188060161861283569900491685139792710538097695708720846505407142948044622708389626033253990090380703973097641480955337772633033398184519839492803370254976575159786661985944724329273559968122911576730431039528654125343872563276725050968269032352914104193690504139500583039899998433897577514643913745681726932096924352398598463817986619299854781975200751005274691095577679440482741079120779616584459548906161160961603797318300128828327468155187014052280375555767338591233287017326540063018328353292966175470127959661934997347806202278311650388082245416107620813987604929389003868440396064257100973304356182400292278514538650879982577343543822666166730510433360068578790076039798428044253943752278548483607321043179146369828904153809226047432941000440354808158199625000792455246856794648744653694743883447707048949313281991571412642226194682001897987739564659331355689088457821882294619615029776734769410053678089046963856910056569157381303344756698598758257262852188074981604442149609152072356340972027326289407132760057726210529099690480850289438166375084988941428441885304977620843194348638224104416814224058699439403819024711208017083814888861126002502565566739403016404680766609450897469419163598637027001068939074479673707555320569416599079423022874005580927242805842012847449889555770868714872885388207369433307724320241894955143984918707227286136423121048062890881537927357025006433302754131217736003424671276495159244667157867221727299690003078340120986003831088511123420533013005656073421469094817769061268684045569490578024981862175766741586424529913786247119835501377253976707422337933897059063657077967116909363624200915814939153491732231640144202777099222884382219656561317265684428023343467744364850280569875074512420094865834005945714548746187573656487383526687193861623052364072017485268782627450538144116343511726607124600124978261539569738504309216761364445483082457490721505339991849396401766099412531868879813734034410737159851842480174433663678018787010329750664794436941263924686108352270081010940056588310868822335302257588576837281142720377122618066479382030835151454624152295990538507463029156078977609841852514142856778729676717767853071395675238246475350231686777620642578173288383477597761857680342684354156618810912073740416812313708194711404274427501275311458373050690949089573274738560516555712088424517437034201682050081790156473519177358628749554261221446965582370907586487554651228775734273692709980899332390253272047810254776262292713108384657933841384432805456625165555057800414138669554593683967009466814263621426812163330320312150788532537185806058384106608648512620413163730913290359439983861397621839293654106282650713816461878876245210915163675381405091437828124993747490441736934151802632709596937591424216235613274671179836949571332309985216225283386223991657272197083687946764043255089722303398567362537615706275356156689377378354895501534009430314365364410794610729888352822811823576667497894558445666083162135351619162309201484946053138137338703137150590859382371370358193007656063489067606726372784111247462997585936896057129172177945425269068472647197151157967675562051130336823207439230305409290731716629914960454223172427794264171187570601952890661367479538160778835158534721133848450101963508435946681757923325188251842996217838226057352508667686820764064390063402294606346920905504496360297978049079831738629544054347820439539161306786374960063262735904866452750741877090930374845500704607108264972934266527714482497527274038929970567708065982718614168657560644346125597798525657572778161380671551982372203669444202303255663490775859172823617166470995695360312575756335889252228365934462102142062052809473916616295560984306710035258919632238628241006516601984605843257275384706125116591478447816226378515821592878984007192597876649989261041494706533447233136686975494413839262083830119584894180833227315286379358504651956708738174516465719111504627613822025976595010604686074349056613900855956137718348133365590005760789756360083128411039838711085276060882025838194348635227555805597637816388234901816269598549358063783472890973874810943429778678828291982062507302191127248270567519521723248142592958532199946935664507835796555849625290098290008004135877191195775693111989762717989926247216671170759654723876688297632238921457218213808363654776662468821124460704382780581624170772863086978772222999596227166432639310882411872401723626024924859988237709260738073312273992468393127218733614755076022137385084911635798713831143718558727231338467295550837868940759769765728748678580851065795811894582963436590714620529506352747796235940793759237058721702476335066277326379831067548639070290403319218752979634337849544171627964067928769324807371325838928827302207929284137345992262526725731105359592508634454663896710427812981346914540165591246367526389377043892566127178459694436820143495054571154069943800061163167832337288841421713054496021582584265657533032401801973699540602187208984447556685623478862679853077648891772049488648086325219741243159452488040102382063388325172686348501267804184669898342884647511677602832823274583095879554468897727190366195421188740411834262867959340700983606742797456364150505473547807107830731916906856018511974303305261713729521607992884537520619043295424114693687790560115023930285716195453549255089671048541624403977021079043009194169422199107384282600779962776766530633739758619160973332534905606000714277115555299469360486642968354427655456073748982927578671448337184255068076018504250278971543601918255805533199905187220924076185233118683143676522021066563847932823923403812922120651801980581123224623388823316653515387090719436769610927838555762552777485611261647286273626757642807191324795462936918017036109584718142044576250023130287773272186554291518971216517317469084932902543200754972785406720661109066791840217351096774152849783381713726192006114143152210837610398460430998079392238944033470328297416294870298059672299662813141404580481868242024182066103780005101697318012102975239345257536004178745019688888689526115500570974078592228849520750993902902785902562286175115998015461026596751899334742194071709193262234874893784105497133221561722599819776933998619472752549602751085908188941083367258470188285483370941663070664387121873419801602803298617169000441047558762298112510375703230421333373374820919285776636491249174054225757441245219887697909158917135219860786643220583050494519146608639258332387436499219799495120497951696006200943385934955077556431351685132991468228086765858383953192309999453203978208876631087042547786346518728613760294053083197558871820630406380197821036855424404975906799000609956935297643770269617885872763840773730934360292401516140323094706590178387841978762598993355516050749999210751794182483732481163606177698222447398433421671081682199070835206657797074587485338226960157945694352631279108125573204704096744758700782534419302481114957475232670503461379960296675409446773102554539254573442855299400820753986713666899678270029158835012173316228491598417944607484398082898771386537392312406462851768243126021697456139315692587934326137044931811941337915889101955598015178585469781196600294748130246330234272243105515889721236842434834073990620632422111840667178743362851003985203352721959772994290906688669886346375397218730767629326210338295296322116186997997969920806934328882113842884024623017714371216645832968072579089404048744852816543895931279382179627197574272062314976236844168772907447583257182328324042453736160723916889555014230296309695314305266510456982738544962823984189975802468238611180147444926079032137185818358300450715755420978620701439230765176925515772393114047616002607354900013703747150329181620503233349811013271459741760972357652168714239776594042691944098058979095314008424785564433226189862334588436134986151928164156101455513757930994308574605250590018875436268923976306039762349233125274536112651927631164562670611025467476136501472732111352591329695562265444526967387247909184728854162294213382059132587766651510431918937029784389342358777697031608668221243974318667502143538395917157161302213697303991464268877704306156822098203702125656032994803249553637540043307516040725825297783031966891380187531083673016575344856152733405788825139982562658398640627291042197638134739250679597034948209886515859908441319558923006093627880080791720426633607410787098882964908232470216937506287715323061932374501196476929807564547688324035833397822368386830314995353704374889979180410320401819421716745535351327703496508193902281969003305763124149050378497206890724082251222609792839612610389147455734095261647980435678464295296044444778261358637140019788497935918064764820478507212780636183674833837393638243217819985070828821301392482889607352787566054598646989484903361445060885926543404129682223917252600471208812781401091122308107392916699985199018522366134355847199334041410464436072184580372415492039138587890410776033878425211375439233296993259962133343524575266956868459421880886028663051539799403134209444010043175326725586472162065580267887971131537433509584432200160867572225118129815150461116868752157546996059671578278250440028392068898103359139827337637794743748849720304244563681719849796236386385896982440589992429278910797430894486204538740517185927907887729791784322527513932106583534525288441373468259041347975681404141679100166927526062956647155241066458120116202397473754508629057389916213134650677666684860508657824162998293064752174136618649269988939808860400919594322488087725576281544309860145017891237578868861159785535994909447610300120489817977015429890910711804397065587752850602531124127716640318123162810186100136588063456810271507964791611985823662282913667829057409401388913025743727046319563328439307445843722917942326495794477339957653958329699145747011898944005938609109411767860488735320207941531948042202106476098783548910435636040782686494133390562041995065705915336840876174970835808372324777713853636102071240611389606692362200682572213141884238392347482795551344524335342107770974461074981345145067286587507872605441838366999915780120559292913738048018301275618701206566503533044855657129388540312828886714865161951648375684686100632561430987784627668817617474406458227138704740758440146648595884184288777413893520994679034331046279475502612817668513662542514886737113375920425458102947985767524419597892774722841020630324799801985903480108760445575303824486607188029901530223376839227732822499375285180660414782950998988231697136536661362584418870624075078015852138119717077054538690439711997791693562032287810904193828008974078847062510391216672991208194407491518402479341773530018119011040990128991573720055289285676913690363087528960682585456891482025567932248598342791112159844370955779202491842550762616028444189287112320905906239018955038101072547527498701348528480677191499663343746678135097061569039195098404698009155048978020281344569991198464946289747142252859129093827510627612558715112161992370559956819591585126633394644265408327772761285561738990730756116190534393322683280971233389660265481357107046624408849680385428990332043098284329225423051144237707842138193978174616579810006825938689976795753674621242511941451108659847366552230123429926532507208286174346704114257737843044156940200975025810834266087976937048758815722097370553521717313108037132717676694724851617062966644275492291405327444513788538991141955859015698564931010552877034588631955414515061294718620924257549965766322489240459169593496854816923304155088077138463113267812937055655530582425951166995768182049443532991436522096401327687962782803754666759153415985994155218268700768378424613823798091325989013142866130718163928288807364496843666930759424549581241244489507841062729134840001308018934177601602489218758279461442775807000945136535761221661186418624507324965104831086255193564124753396343537575607079854685187472261991983129164246662430170345781421666913612126669871580754394787627376410181415063803693923141294822696636990501583493497737851345925251341177485730017515540551136065581421778379663668262882623714620303826192181228148158450409742728386540865927624965079045596751826501832069455014266462348031654813998920060361936557156280841838060264450310353760799912817590522869960019456972580535602756081173882981368543380203527699878157776628720226528857412331880224379123237489542673512746986110722510701944754692215660435319703640147726605857433550284960629262098155031066853953390470845150145330466620631085583351538386583013943759612603845821394978030319233179001587523939022285557086588181826219679353576191667219776633349898110767727678532401826385532430572964735000409859590871517794229242999614029383148469338456451735506233190315840004396670428704709698332777392118969511326445905481991508364915383761794102615039545833007113627027790216337574083302095820077404309609501226044456782492457247922690435474091500573406562951080534903573056076051674866910703438072937769116462117594350348079879275526241740390464055595103128960556669901332531213230528037220446626105712882420979737116785243974728748639258540599701929767660757442292873621445948610493356724295384565192524487341068153451061260661170264713057456641685700941297293616314688704895113562568285372141644277394034736556943191889091713723847910657367190425564782126953213920286025527404377740923575311425930887535514754779335424715986131119039050508550546629975755877002735698597978115762069391303901613374776872513987366858895539077503220782071905886256030902516568028872562403726172751858712594803691911078676301485622126886041844916821828449084733348267323387982599608409560925603881306433022578677489619276273582042808849674208080846427637914289283061786530519650727263194294929467165439216811464660622187487170550474852180576543324279147095871930664518889892492300382101705934516580171855660766996442452908322720600322915943792493067164665503385224279059880173270287979531459125251858207178908534746075272655949170921029823844796889519843846554166575835883151988222194260690030729638805061652713469175090200835423824626261691499805777342558320580480363755723398150299369268274000795979476671859717488915551656214237114060020116407260891536448492972595111984283315954611545927910855635497063861519129850695444039595613440288165597017513062499734179686546059277215117083798233230285482665552638669963690208225824168369780696018434028682627398892956199889650056549929053088563465266990851208995538854835187946666335707827566560771770578959276498271268708071649268192755612190873490432392432374241648314512934608331354922149792008403965868450623967678410184544425162936561089637978328154755952180150626660915277444338079711071361658041073256726171250535120260393547812326921940940654369907664871586210688759610117990976108918214853753861431763677274538620875184613393903298007223927226142790590003738977898237965973735672316773710046088126267248522503009637015436392717275331318871999061006523079194181403281144668005277848960422456917153038784262696311877048132684523948217851561906542664244222806261524636711270428466381425793912945295008623679453619047056000583252865847668624317118525743436558115869318738132779967029856588440035651343074577597424048667013576194242445418305334076934832784371171984742267004300273695081102152903363280547829508754080876068745643523272840784691802752971309207494931650708341973326278571279874169246204860026290794641175328960117570078185720767649215226856559050345134148741367446001440995896105814208054347730603167255399547729527390142465048745084744384408482522805945191854911394178663986578568982048791996516929252293941970084731041124021419742620577330289388937431183352277176423471809388939513955404680085736531565790904514420399648793794714975764042822818501276286788202479971455778868375710559317573678955457622400032123303419312577774385155509490207550402883702300722639098340482947270087622683212691498356863616187722145978154124560916987878371065805635017015395661277681653837424175462811547173655276440455571348841770165417030875187632130605782331790785885175745700800979874568366943816298065739923878409226912390834059746421610824712142993769784420814836513162120831182160036672556862402487785561440162110308327511246073563426634992683616168733875635271511318125494720312115980921309652729583158297078802490262051803191543441483508089427981772124601172306483261604181497726646136504273276602816917691579544061867037058727386396688088864114306869730959408840285635794903133692904670063002681422196443876443832611403337868049754371964562799604336163041237947931375852681492737580297961305781840586115754348738831331442367290986912333022058910171390268039541979691635784449059981221917052702129243936288058454461129712186263717189108367603961176504747526928417535838649886595933929181747210684751201525451098697357497373885925622021167247247195866217672990013655257054803439414927367409254753933993094616766459690466372835853708718825081813776787149414017778833690200995942182606388616815887200907064326939174859751351425732553411507857655126352825440483808021590085114399516243129309070583141307437161312950392951892113345255931891100492189917677386740146017210250753734329705700471335724899598319244884646603707040341633219261911377005900945204866135417983064237562186141917507715428532206016855415732716759640824825854725885100227142897793330744565322950468243273740014527803216618901076967692007698431650035829959241425236566703379419611806521786050661719201062533249641983543876641323989826307017801702044144188323418640042519627413839061854967599987305197244076530922994894742528949661705175073247928309973293052506353376043816368242987492516364700251450869690687293871559060324128274929931714128684442219079697831509607930044913470510280031424442574309296261545273223153978613923552119775455120158875180866056681836310358486336280699601769403244609903700411192507468388147569714954384812448528930806107385662620526751084108136668782067515723504947228614790243185210170020559468496913017074632819904623353533815148340588387470605516945692467348785170290658036874125405046278076884325817140740859625970094289605306294550116923585029235875253442541959930793173134701077601759328541046395424559026791836875330828024456391384553006722279225245075797124987610862608134788122650604164779271897913921353745772838694787101735282696631502456583148311228439619860939483604431836769093958485445945282068118257478303638798785937000945396170083318532105417115753754438355837289874518541582957429833741891057901309526085685656480466044128491954733202757682784963187457884020823069189769700121620782590204795922020256103696129211767999117415652025011375615094295363037714653390884803247181486185334321656160891787856305306881699450955617737419857254357341482390856766687525134916901584002972614275968579418659553891235857942029800120022891926628207410793145290746734782510269357854686275667901575603187871149039655892225826990628899106839218170864821956651293650660691661561308497298694070540526893727589767775582520933871060492568247041006930422587835466195881461836434752828238194717734252201188798694607067427888094954623469766531123541513824926226729685935723011421423489376267717037512087298372810284643285242031715597894480339405878616664528749939938732304649600616040972669190193702083152720494752238719247834368975133207074949811751279235449063513164472834605883841674455269801549821354594994711972578490537475617168044814636821435072339778324445074225674764605516057202287815481064895057533676633549086061345019054228691928888636125795736064270503381132172967048203742323552750150737970412831943594314325718647259429062831993696718010639756617998834240214358781674649488250414413438662306597851535277633370686728069804131474961004677382853801768539106458409158900520765619291327441300350076025191800045925646009218970710526846085518200958653197912334319814865113407231072115754353915831911284155993467158750913812611960579914790621663588548386516861801821632145099935865883747300237491774894072677639511400902845390110161746954878113140069432187337522424030380673178694325038381611143672400593620894477748626943357321217030658276897078645834855073473923413970353302946807583515998614715756233406036914357108447740951569700042644858030255137260400960481805273471842833704529752254065392970442654969626763830836735368495300427797608142899720832223043158667040062262144955564808099706447544134498252900222489465023217454379868525168150843276704374799623851148255073138833945963971227900227862240281292779313800873404208660131242161892039775146940729221439877750702996285472491892654011092428261048382611243554545309008519229079974295713341226459889407616317889818606541478827845750296281668483147820222303650934238514428895611160786199725956543298532656953939782314856623843994847491129412246692504337981448197173543840066228326215388056436774138074565260195304316119874507742048146367102239510520059212890396547163079084688189323321550208136887115425833162680157445736408802172942655588456128269453861647609624848292644328973911316130059620995595980686100892832679417467894445226121059879992055584604366449164332608557024627239549102642913859413570247961227481749379906471170961270207600845281733918718048571719114685483505954723965362271489975588417059829693118999532037413316483719461526779702311816918062821937184613557895029245450735977552038064913486647173035871912183848560525500483524093194797340485957744523746552690508518816406518270833801592580916272220538599997559009981174333018725548763502193997661685614986362384406172006054370302758704222659144226560116310739892636022791698963139783631798720466094418718169668698076942760277444782165825238644768515965758310133617925957782476261907413755869557181248668381324530658238946114533337749370158594054611017359650540285250584584260147671944388233715793251494639371959931087613265382392437962305961701929700926604772578394902734380771212118946882861489319695972588813402390784087606309664891290673432448332034803333377739124805325234062123457916003875206793395453008596730447864960455169110103461148591234225032855788074206951536556259738508037203928038600296361330545228396401210372209486326175212404668543772177342613471828420599406906201946266836422111506882292810829227279459737154304582009943024883659373744252424493545422712526019177710118902839547501572899140433256659696652911971759107829316871655041789079472424633231478457235511395787929365441964283882771587788899239460946350927184578105301681473042001432147308785726021455574575927201658840224611085951245002716114751397800711654632085188576622778175434531916075506178177829940777585096127893765020627992652985957760589376167825958432588932367345946380659374423014752758803305525976098704705679639554256030816101880547058446459703328629391002164371901772354665329324449183386236848171730240280623058932939954241777217331379711268603554530375190940750640425020551312945306781490605138172083987933898701261620246650419999720061138006776956548351508526425208503675463539221451060751337232508444771226061896178440832016562460603948603625384806499081353705704706738527925060534592759679159683626065018272937165954299098330695248510488639013040772186714723323129995546247699597103755703153450824484305625733113092835037797397414297566714608566814603230245386553922362423149407725639604798866230685269819859364077873087823028140143048192452856933840252830489117218077542596790960786901070557144243128781926431921208772911673024135147934524075719975654313656760229015585171492277642829575289910855199754530628815410253586058949159013706071947610387161550867571119411776683787863402113268056963267369868067314382639939936967356103212479521188241455643909509868986809596110278919293659449754877581040159095172478190107082176803542174732860096850616870753603128472803810662493125271752582728089067517434723330879778822647676611291903820506443963810449479850247642368264984784770254584399130010458281423694906400845208310032676666045521864960305058526460326814720264492096246794931377121662339370664086488158755820285890217947076333402067194864892021134048910245113988069304031728360715692833302677403172501362731235365258739105648714088885297235048176592849573457404288094849535616395469314584007552023975751941937399612592341621701899158341297692219537698948215911506981061640924206773772110321756187780108514788263849271480440928377460629385361689915755677332572938122924314419455726278740671310567337906575197126632539768245156242547745747584188675407095619697563105207397969034658569548048412446465819491581449303712714899925466122009591841937654428942445634536988276329077470870452427673472081686479854761675326410207638665022950794052232535834954548715148539653125377697667770303063324947813215029203620387381738564360720469597962952932200350220812916596291554658940587052320816968082189508209253891565722411105248178133764090908494551558385329138879731846165555109692300161651813074463903613902822613567034241451924374890261334738193955797606082572341972990102693902238436580789430685881444513394717989190550140470195821442928290934264632324574513474218113719783607430365216406142313192163832114646107774439647050795940191892151533427622357401539941847670233432523542641602440693149874742991655132578605281899330283950025156396681211703493219337493368904626261875078537946796802605614946622180668302158843739448827199901285996471600844239252147423631421048213344822440343609527373955365842657291678722444958382826373554116093490047462437924422132425095068286131381595687535012248100068939248159335842972957362488058434667242275059966014958241216108206325787247817729982330253624047869825478567457948491763973010854405806894658823115565739351572639448243577140691792992994245320110589803635230765344987703525492136935468879909285075791896170481549954752764796792892076366490295708989953702891158920409728845190436673426088282484484341224544696001205926241668473168510828720348563646820140325618989797184827307867199878241623946286819138422011921625349878467927819095897882480027865724340975196706591058918219531488268792296931410222486993881193625075112469648306777044202641961080915084061599131848649933226441076695358062462671784310955222487494645784564806260994975365845463508659994463237274894701281143288464563734523944214680917869612204525424308541120406927398139270778007561114972167096740357316141012912461739644715567969895743151425290531873311863144448222083888541846912144188435910499010821659600752149266425018733484728081459543234829609021034366949336881883906283869117384366521627975055226401144048873398856791089267954829307458201260545006605906353490450410371932423413204218322526978301101201371024717938262179885862241080912652429204066984217501330003253597609183441627104940507764331090355255707691490835320360895804520676181516140632332214639459329568796085911434023456790085588236550297310145529437429692125754314090322746513267904557162453778343837014489322214356746981676716014014597876810973819361877244657469264531218001677112406378761335831673499229264818362694167746829170227988138412417302998695893007939748413643210895906956936378258665987041550168694919443594911784737000977409907165573135301626783671835872349535220576183401789347542350917249971350723013495502741213194815965170257166039043613606547401786688555642615349573971903086448032524640467578260265650922772687763001212383037951701664592353880877523213634976123932995002109236338785538282071433968512745119270998366847516244620818336435323933377842849344098308149639469257117960774579841969465871327038816226804536798433337605359025293870376559447904652473962985887267676051248283267693173536333617060067566044331612586555219879863846906995722023908382863137340196922680444927696453362654711833251216314354201843255084591375659921901679932406110843175150907200121933901448682023464131098142709278225285669524424351238630694514996059923390907856115096829378647901174483267778460165726011574766719188221623057965364783065222849907274297881224147475036113517859498693239011943652959225326381736333851229241422773712308339568241587494316301356867045007834728248133239670822699092164408943421789870929501195760101543828774579161078487963049153700904874437759830050806929034355726206709317454226638077108331726573393264577547263805845979667315770091101083857482934431958712121566375214352133268436239058309023138751686482450229428585312712714826893096536761756197194880251814860921776792255300314243369903176038931252318241341148238080721986421223823998803640064451723350360727009927614458745095538549976734577082641249167944372073793855140902156446213012691895369335535990273828102967173970625097722251783298110603556544603752728093966185623307284078449263792950077586539613793480693242023944939603593028680976943747184064911905099161957591738976547980084216777918083167992890219094872040912371082822743851250015217871445847675900816782049578951426053229647553486292186801299426318718863102848360451031430032053271608774832100199822516795592719660077731556092288154855321795107986548577361648855844345025699967477787283837933341698853813224923186844408177852715088333103339282255557153280873301019812048079571726337757664985593068394809248685700574212121581994477035599981277957706356512472622695459273179221747842414375098449270624970198161049275411173033473631937927691006778860488449590988595827864511787204571884967153171019467123283790014869715762376633549572593053011763405466931230582410800982507428722271395874204889426658641561883712792220188921280981725439937959991326294534393232157958777945580924903735178519065954508193159930707064999390561410934157175885179792515815104513356042567240447058578006946948207072384440662838486050827125088875140023210772691215868449396754921365075446939248977328845141184392607655945002568410082072009621832760198404245698575152283268840201168048161185744565428677051274796957097711542482057268027678972609349992871542146399663880603679843546445055903879144646226385278898193890483191811311476310782095419403805495139522893019331623259435357054491632697133104293639424193024613428363916639034391985896982404424862032769575699644584112157039707690697807326653029185476749625736019753778779455416517797401604799769419391524246941723510549636477042613985511117436101566224824944954028653083921458723451927980387577866085811034033016324197460535023803126149505072071824672488064768494497454001897539256062709575277629209756606115018618642498149121072417630784567483947873759014907389164905453021224952042762144027256160123931976902437735093535630338867494360614521511208732113554682106217623815012072319340648273512685530972696643381118065500596635558456425383969734143882486249823204819125779904205182073945487209160439961745536054543028098087487128935199460415137340387492359602266029219218040756421127633679927911639657936587802604585112132005756171452976699740932886024042227015412890302268247139299240697103285900585823475429294410947115774487426147402048922869060984441095215776762025632603967990602638833441692534806341949425471451693637367876971128765448158478995042369472640751901035041941605685603866844174713836392527382518055184459237218234886206410216195588800570490371739556957435313864770527736554705375307045815896050579462657153979822938258150623109863548107386064961662188595742861241501806276114841930026874001761378619205152990184287169271034052856400366680851191302520335943678951950147122623051500295385020625738054792827852798922413087930803714282708588242574094689221157711989386456214661980246052835598645185932973001067681334135348127652282068920774039341407262543966612132334690674979338106778998846275391221989133904451812198403103653073030502727490535334261455972251749917075144340091709075116011971403543554979084188826493336343624755247262332343148738971187714858551917108717380981112597125396363617260903458978370569625201689838882366643291142811371931527138032239275569033162216953612903956537060205759299842974136398760246110939568322834055309366528818064259324387598681330129545274912140312362082144819097380374090265904309888835365200872754350428687379499521266380635071721688458890424383821372475194463361175959103664114428002482663732817735247129432136477482943203180666103176853946064315970351677414313034879460932972655194978930604912339101060459767445769067380755023619065857372000690475239270156659121786003456617321873227077429212598138731195778889818860841393576982859589548810676639185536973879580615840980902635901583968606006437197387829034668089417357246091959364542355886644259363479982344702575000876743019120347511752386347644900804968333722305492855896549792021788992305379546427730533795502808683810514661809679610164495724808089881668707214216795402857235330177335038278791818746162000690295424304972726840815222127351898247483180633497147947091688214566185844479641661317127750355959072291035137977096566885257710893884091518276138946489538484179830290760317671125526565555346085271367573380289865449545794700283393920505456919031959023413493517227667280546786498286308280733444477940930670913500912135444869316016880385922022164690214757682932460259530029594016661044371132377982491820869750976735485954001849840661037016625576341695298403625813308831465658358158951827228951796724826321716923758447986879359212119831841479013644929440586952515114045432668087064141449078922550210839097154822868283657224969088466500686187390955486572346227620416240726242990892551868481856818339553632579094467164121726997004192263741521027448610471920759243428498407064186927813242034748123102261052778132506825988123366905641158159595100401021773844712506091294350550651884941997972767447460429776871570447276503389320688471458989516913275844732658090206156245902507905302696691960414419898359145606007686514080312252274753347847631683821910196868135637349213777308110725485508299036381909993448113024010898160453268834363732523256255685899966840921677111744436174847930363007233082081286780652126859885947271913756938604038217805545133627831033317745139023815246988330307006118217851469040986323688045261951391171072048158417036881934410144894353756942474542441211557815435694978238272632908993789909891089456807067991768139534430330886399590112694533774242215084424851254543023213752849650748110980856864665803284830688250965514950170422888906905285884844459173893412115180386130851371222287967103564438162722582258098962785078423870919434878023880564008771677394789302843429563167791067379443380294302930986783005412328116073855721109403977731314657067904490428782224051320311794080426739264841503548920536248238953261931234223970717151745629845997383379353308839874070403887887799024267773095173780996010725803482651806413796358019162750721107328115970454513951578715760354090774778988233635368404563411006982897681337768286661070717327204201684560029584169355667105897293024290328515027885260472942447353882902922234784174921865673407215375303403704633614127367927323812763434868924166669407793769581026155037344922077493285631610392322819380075375647458343601103232786278567944951824129615820171430151681251304648062150036731385280812269489034731620166700996006077330673952206602123215030675932863798661175666076888376245205935974672443488513725048565590101090471143466907347462585489405842240959947120700749692857853470139823199657259467762120384053871963820189279541335527591963493723013914519257259582639569626068384363795686791585676696350896492059893558394426374893997702399319147082444662923375395070457726745796717847390480669976922005478114319362014965374734908923713441382088102540972882334825002557079269733396456153898056693156304151472739594011679198618925315579300689575438577143742739829899023946871103425231153607536327498715637244584109381181841704929843855461496606164450975244829658889594607900071918561985225582356546369717421313273815263741470385763555391594947686904479461945893038473903642943324882263413566783320404854092358403139645919810505786708762441365071150782601934606189513449829163578897953477367068718094702938417070756063050940532297487059934633565179856480875543823444270204045766366361016764221850394094435027152330359168472372631348350180391318034107953130651528172151775456451972037165386129348288869316937355828701888410221100412249099802005099984973085244486353380482507334321574630525336682977683552422028421882485539344151967997896991973270086747890182085341746738901655445483910416117000828954233890325953863622627335796516433323865620261707935366127292007882969133690053393174894224420455430827571916987725206798653009305445139252632973720844905486248672746535624115384248747072881683915748128928437866475005850572396940539833661719874727904571558228661565660846343376841642751602153370939520492122599643649467374558818478282362244012285515576662694054057699172899861649002190909242416536026968703454303082850546932592998636710665278280762109293719509053202326390935487284589444498857718821064390391568535972328779402792666100087761908742536941469981600417185823847060718697587280766470791419018145034244142591042430196432546462571839242229213880039163248662464784784905564449438433696972984376000613635563087925365111331562938061380798627264268576052680082755299543252477623647655724212006462424480075024482642950691940002431330106849986823698192777711922360162969822380709243796816038541290960149518490046623216716627787752642621054586276536896180015466321657634347842332079357203203133033450796260157504592770275317973257494578604318680673016428055540204756480390265600380964982362591158654017634815257027274765874743363606993619782696386083897332450851823130625044831504013326919507866202911074593143806643670786555244466856894111432122323855837318045784726799913637076685350219706037781773757978371959582492666875945692390115342647246518483567124185676727334412840362381136598996501252659262768773866014104414571703246605893101614395737934368580160687665706634245613273661854215470729561817997315104360265963472667427275550239528112179989760254352533987407338970602624384631342210831341280599831339601484365980063480206758375437203271981388670195942469075239387153169197796238828923106096069778550121879028504760141245426390703089243025110043101774413866622967771519820868225027835260804266877493037683736881262550961726634275676905620953538936739073586983850091948350970303947590461024843394037093667254928432446119776029441831524218418848053979868873260308024106044646472675996077585209960305351387196839739331533122522121876011961372749158827583855459721523534906775881113605057691034934389516607714115322748259302427058195208626561500313723239259120632006294021145398849329717072681998598486598831295558724186980702422667627322560360426095957478306076255613679052547668917297656478762914864554627842739196330174934747807047797829095327591776231963212363018967568833609082756980700946159964636709437331692719371748718669253497186792018642803690508774061186297370623752688710524570679211664161127187665288161097715937696492696810813454614457069492346705818197197085843111548699986631246857246207426576382827234843968371977939477729443561736580087423753340335524745955899834118991148080565098894878632868903515779139713975238750032132422263113908643795667016877073232409998205952967723761937060656470966727383812770736307680555598787880272304868783170227331853643396533325612460345513216363664487086772435703175722615175788425128483369891151549201993638194691461231728663596144297913576507236546607711176460377900331125511086701307883961424597787802339663178845725809627304879699353144796100223918957685051941495595597303013372513443794459859229805085520093362751427045612961818380811475747911067511779120315202256467798950560871888614507501773595248893555370788873640605494949017464751665428345118479335446351914537735663385860766817538139614728273135868540299695626751774791786978094609353007038822897954463289132817082558669847688845563798206243670988515708766641871266153259205278920603921961869050081644119011779585031358703481998341377372780262475157962204963374910368072814146498869772451281317796040992830111082742207012998945156801962600635924361078833327136217815195659751625704800680104838107846734445239988064866900595086366589250559349758035789510975107726750341225020721784678097845777041505532980488344514666708268480088933199507866295888641460749599866307204016982747808181728605668756475743445797763825106184199768116590205327444170680388305678998208240620446020183332841713396546853664991813536474057701847536688923663879171891682003905327127713830410972077960419252838393041015251428703328167597625139319961739742625459133010509345008209493409920524204675426158418843436484550288175185294855739173357086884958976059313022705401408972652704256913962047667604308903247614889571352866566916417763929223280995541437953428286218414807969028705309092189034150094481804475123109929373758283343561374874583455255654426812226845547968130231862390263804369032078341330909322019526785201762650343547425475129754480433342701655349153701205522492245659517805545281971393625505262749191402839516348517976206691404255581389991854015207613755347514397198541555705258058296206949818035563966296131041616860615583780466091065735571866645930182311432761463090859675349726584294918543814351689657169972367817141668973847522296612906991082447214324091746024095285441769450178604991731670972364215439646719736554023262148557239574048231040953507682313610657285081476554998120625060774485153733862392148362075132503340456771531264435348592714199645393749637643462072440561691508515402263868184041300646297024057761086404553619681270952056177474386477201688754795705703860003816001702828106484869425021803804194968079586394507601679104781756882193065556421997898140480245935084238085420276640998805646897588398283618882887087647537256806832702964645433554763688658836594699977545547681020528953542352818888654728010155292519853293842935354771741850298168543386046511328312184958532944569768282363170009448403676610246723618713041956608224040510940267939664757852452267595873862239586425045281745749369884942809230217821209046651139802858188609871924771998118669210134232275987545557796358423866027316465273371280807955720997189430511543370184102125562603290214251258789565788079665781405183840202274877111817745617065613701593576249711995797041974511328978701253842807408936295403036401205381892111759010400769574018038467611982809526938179766067421195237291674950915992295445292630430327936639873476181490959930581827688084630462979838057486478450628375686255100729176070641531947473718366951363471983682094729389846922537976538684889045379880810769694057005145012883758001941039937973556112989552795072379084401336277620917980979768479797645057656965912121640632406414684675303571152340742607939892093501255746882656576261296882076991563770368269391646792291259729114467429242981745868218344111082377343715528987928514433781236876557617138978510349007467986640897741216428255043336883670802826557996084919498732191502698752308285582136944225462879133060658836977014058115298855750924679415672111881881978122449814473793105722325709426489224464908607600121745163228963169017832034314288001672286584577256379818816925135243212679112314593541852926669595409474041254741924939103283964714872511857847847484641726496454837555972184177439971424523526389322083195309538509755664022772119165854551949995128338370427889745355491483054560095840222511436572619212702094587474837517039416137831988657478311681602990839948975188858441258952829825440306705601028928165917937015633804831599240948120829093294750049021114209063068736888759931339457234559948131088692032516264688967976075666348678916065724123322004833870643108154901262877657144565743048422263206802440792963448474696940898051274177296144045384821866704621978682237308237108015782433754817982119719815609566131060329573336584010958291154597683555423329079961789109124879915491155060638255386365906468819061240472156239452466628877462454888267772843314522274948937316538098616947996777191552317681738336776003235897171106235892596795010931721723560509276424968406855352627317869794379145602748007290517512512209772649697113947385348128135846575123312923025638358640563274112381371565051267651202479301925712930440556269998170959093127046085413425787319303293093002858844330086832880242189142739217041481972637754436989847980081563937447109688321394713879215440073978953820868342753079404101575237532796953695912794685400185324008622141572958330711921462521201209922257354107182473809496562499401018436832929368477121628304408083265114856657507383754061514719785776827090345623616939212035393519407632855597309806373963501225954164022223695274343704428440094263449646717806838101146107061488003339949572234116029380185444059506676966695937385997440510744699168402794024071247624799747731304823344569561912180544296266378324945518755240691573254984890972642063418966221428218975441126841202706374222644310690576331081717651365092875747237315084147390322306081140818238404792537442533914518650014497693854853958789258523690650819020755313354442919565162992233876207886802740213178721769180666369137903246841947695577097544622606289512880797509292191747513045343782850450032017591389003907064673976732830990497853817089564192650159455235350739017443693110956139510837654662727802777769489178982279920612145128608488970073128107450914735491752199328591537306916510589666820046412289326736963907445369676310930615147564012171193105339466683812998465915462374160429949737664632926446783194307328161688160638420729380156622945601695740156752108093968991073340322035504632503694489454541675168797957017595135067694772024368373059958193423315805912930877070484640051274467312297376439028587298453670779912337482638551964142358396717258317947316997441977161045244384739276728084321226566465080539824707065582426409312471741299406560750046013256943023139112266078407592656853914840666697458447253558912660867888500200463743189855199731049214595029409916875368672575090442886902914334724556644837523159890990613431583960955476225176663369715511450462163995374603240933070137259879864101953617173885676932793069021932982748004712895520586677924385782199344067888063865506992076239887765264188749421021063269049596121703221567209256653557116071195450820605861730041822280867607898498762910127013601777918966197632692461345262086520429580418739741637276952369056656510345484735042066389209515343893885658399269668382415052607968279746285900191670381049017505236473078907890935176859076602394844128523286482743543127210563916398426717890082662626054848659449736021730770188322162991668727752735277745184323206075589190909966697351510752944543046237631833237567514575087143609519366532538707086111372376646139914487311385454624216491130323050280465600414249363061034175610241486031686648610280145191722431916206802433060269011534733067580793545778791782973551689019024784931549705064388519095897723662330600629979267962224441789673306714791714049285258720461172097949975190855274755025376495315962161828345113394690327227453236038248713179131489425957711649209770941483452478965828297493669261758308816684571040994622376134300234398807689376114382112471927304345856271889939247999494834603965865347610175109935476185481507099986770001234502194052846143331258344286478020607401854539647656485404660897873280916799473562694636845633327444677190178851687019545666872770448609311059115355029251897873144284179378203793002963292954986929095824246212788322600249574577172717069455667858403432722183968373690497814305993231522075310512176689313419348049873284086474887710575333816496430052103878416160008614977852493103456200718742278279214075316247542908068378554425098619273151410175882156389444308450515129525790894283997767860256030204421394142432377749860610016576115530648017541920912590720791621026314152347119410595464320835972986248155113226660106518550887838234309512338169967126211617960278434796575038710101454293775570893428587666135868335176509311276083214342599788486092732738808467266720477381094575471561562503990326753410994439411202027845978672109280071303799051107912231400273500788289706707230647333493046828241135152242790381323145771823076727355755330316282617261799380270653179661726267861760720575167087366253184408051774060920129743969442265854145918893555193771904883064170687816291563132357516500206394727519578417672901409626577518664447843220514431303749793121417522400867875604326422611055060283690329654380388728814176187601283768782592624601805636694055395344568688887627820600861812973299149293277090339447005190056203728347068800063530401102072010481671874862034733745765397700833134283526256861203594154517199179774364220346138926533500619134406823761715168322254307104676444648451033736032112878934053609055619406216090614833353461760219591927536908705349958644678202479098503399281183137118788541151339647973558772826560336652486573674680226841024272428847939641026337120737135691379119846207807010418924491904849699019262382612161707025870167920002865847588966000992910823845940746529443038510402468313590541421610309742080126242806296728755914667491889205847615234458850304366341746140735575943428642007999438349151670938628963264667133974543868721166099531850990338363344885373417012906613460965036042276664133451114545854322905804600079820654876076968620465949334242831393252665708252329043539366466171398242270434336371302033011955258992529187525519890552346537985864531014732667630101306959380932231217032021860375035668806432355464831015051213676279905356085720120960382447456006688599919066904369881116211452440597843127512288697145982920530006428745198315364366420750308866109114160652070271497403829704208894470125822946075372967006668520076515283241431455688282857439485072952735706715028003757368665243242571253873508553337537404785123068328481143221839277228825587853130413378312833327316044028696707227226535805653755955965560659361588941941970737474165245031333732667435847983564835572148246049530413501592221388437103367955473684135098132465316566747610251238828484164954818822045333289011137486682349603751517226935084573442242822303303496372252893431951865256190569221310313807454438028319398377143374491822015601688973728217898308267161704373847548103356537729576663544171468399336003236817090374903036168064528315881142350341575581596262144777002956636065262958138302677447564113800319609758024491488889816233137679786611701912405827015927664894326592489390985075651960478967862930186086418510649792332944913109191888954204980858913522210986783871995173696045779154168177537813866300544580316952956927128076197826286815664724064585063163996755416969087001480437060205798191851942393511805162500726278655762451209362397767564450236910122424336614537389934653051327295211596657241307034883119743572984666651244376376034455661985072367850344515567723107708977904055947650277798873456703137412111333960066388714968646928238659126461892523918587674286803521883117727102399387959623040569547351255601072531151709415572442906409549142267879970471991398031990186462768473766066030138562254689797437567277157168897801725236048396042022777604095687822245780256127004577310002962887852775346436961979608840171801779181029951041894191376898576842241084461612026907340041303224941562900184178831818220031241614722133577361701304009826317892431151469947106777600392774076962502504989607291877672232611118342979211044810385171523173906369364298342343718322136169065927707549666857006786749899384088177293624871010321717307403523352857794879048081441971178489840844936640814152609297197309081684724725566786935262546171598192169984642500320029208770734118771051860201826029146699590842252665399464588185058900010172572056334415373994867784240466049264245161647425262340493243888348465979742511736063360341533857204632589378862625482405157824126523749971689877399043247608165356305511351624273390084913624752607487905524983761528533652696132782978695462297450012629538087455211643868926695167188129391873679382163589419573696535130905498872293318631377761408484252361453745797952415477509459022935597888034733594861932487130950017503473944095128554848515729272396989897860686993177640433807611345419108374917425944011769349085381616567461246152025546807979752606603178847746087387604210889251611905691008818289859596407414730004878596616597183567684826512120310135688756929356726958728076573095730535699468321136476033177585154654077966411448823248818985538092863575671886345842390268489258232612375103197907774187663527185355021989137214035426362429408321859312240930140880391234313920375877093074324923891183045211111577400671343495587282235018743108923014838226601865415688035392697535966001083323908229187248752208003516670414450147886838047349974750030893311890360450393465371110675363300602668724910841980359428897554224365031275593555945311659048028139151579614929777836525896167247319943626414297254841585710844314451884510630346245709687167924236635114771229205677039286731525609577746264842578833624709911349878962283592186256023163516397534650695972082582914579907455747163130332371477440877051930106828724421417605647496303087800086324552256127266987453086144239005265862720300693920685133272890986951936540887884996177095425079252851838334890436345820275594147170459824273605833748233936218607652293553029960091053464352643591160677616058979309679417191557093197101468134799239489990077572821855621383095844363159345151831824499208982862769225670839536031795271578092663716439603943546786722347147082124088176894981491872958729807510384747469840236142135722134103613724221181658814237683632693546057832605358238804947960318428975211079288093485018877962320269062008005526153938800818617832615744422078761330503709866320503632418377177504301271229868887491977460311206132365563116521927462180890398140260062400653727077068282240706042735640099733890737340468714377047850319781718444853053741928712863325595706622726325706532217406268129259188634252822984052848389839081006191196729284216457309172515054074440989289403729529090743919474874661084209885119380477689664648650946264113531155620196240219795731856161223567951194337931982871382565739937985748349421812288737435921265871123003052003798496666705479818463567474922672806837232939169742361716209543461345312313069175834302623604978776923022713801911105574038143726503454451637641563886417260167076408747904753053072881324906574751231554579466443762349720196812899396515134161178952459080887375196459229260564824612152047533642204178756991441262809719396567389465922754743268294523043534195938484824849868696279388609286144297751289109202627396788550164378492298020793759845598968883547421833587593206921524277359900989498760912749621362473606458985176028768511250088086195754430253723463879442879607531830615501855810972837411631531177502019663049452754851845337707253144688255371542000430413538080034748468691040828425419601617919213012950187579254390265361184283384323628162398582685494738393799443019167641239629038728759742480626498722808373487587402148996905638687925459361095516956222132510622027861512618443069278046187070589343308297336522826179316689727697803113051125980444211349756433491904152485484874790860437922734265490568599750691665110515309775700277070706611481488729649480799133911823492646964970054619882246180660345485535222599354973324327095407573919047739258614852492345924982984708033817819912107472269413125819461276610822447963013089566791846150397697871453291095306841785492186467790022361110546044699498156807262938862889717624329159367088861829877054950063801108824677227432302002919200317853106887383096101894908274721031545993606333385387109252698841187441824526288562268910962429914924051163023742551595266437169279667598408681416464426628995611789154192831016129494792371271254144040853428189462250202296369487253570095499510014961798840351872766293632068523419987671082168803638912683343667920549021819236203294811738416352181831758935739874983252905174243336400942859113590180611837550963551352739814241547918854371915434192826431750141596586286684753868286267444029626647573125114555216709671085730692215071286078208772570899359706856418321301073452387665531513778817854716155650855804595201313530370961773818961361887099387439705175348593299048747440808477088190491678425298989071499303129616793187071710304399319646096113167212316505330786883808734024676922175604149039399091683114382563829737747309582396266142585709107375472853592833041502184772116558259066666057988785564253688071598427657156782665094577558075992984322120926898457998104482753146797225665193396961430612265981735993204089887398290688010944085533233907722565570055451399371597401882918410489444866678109597183563424575796849392616776330477656932446107200535764474317624590896070463261260016358801342115558414511350827366766390103176231796174533375796767760058096341335438589308876584770960349734062407311287091264395741702695504542347299208007215937625018370991844045260930273328346595781619967176928252387801331789543391927193376661019273054491972683771195745446664781741934513530886959947966127470728417974786565776073877453367384240649723157315100606986352768069967106650958563133107098423116597292025029383882232733708684973724691060583492047304946646442168990205112284930009265388825443434727245192141771455331384905549169368515367629589478499078318486206898757031468117840736900049138089510775874060487446401637487442158947024235607291449128443990028048667203930380713692295127906855203126042402357481478820966920102000545706146749233691783693182584689924330134761186544004681332123370817862261578192374658097870087384967875953850659754668453397060144841627863195393273741253052384034682347363236358530412731618612150456341105781162741086526506757193737471358270703309171119441070954337618042079275916816901079760742337536862457493334442797729231173003293968940632625114965553005155378985259135763420120453788422272674871703032738153283524971995328722695190975942520315837471736097259028480425744338838909029029361741322127817189961101195274345208432012556589817547722302364131206159213622011379332645650436548509987649433343756183931039416948633754840009042178480033739371220904471877199332132125633503422900667792295925827389305112398509015819928879626608655275939057435247591449821761389457312751973722609227762357456223200935542383333918672748393667344608543541979828709588945661970391623135419019804179703314405100144358423680850509846452923808407167331389031397643003142688760979655336450600973410060032220448093741652258147816523783944291521780146507546822804601613545142973658687230477163873144761720236162093754349933984097932753353171094366863177836693654428552506306747906990584462469539342349413840699280110521767358171710069968922290713157096266880946723547052587106885545766662118926948012101490772509245141586490797389655834158146973959674948112521428552752714554717631362254883103894917143395268111866532631896433830623879519106069653173969594377927448850962121386089813898558253869538642201825386001844811448784169814251251460096290895847213206437040196775007736996085732038498459952810786516931756552148487176732675393361554442576953114233564590513779670148878283547044596909283481800137768497873602996436095306072591141620299869650344503803003572360234689171542003334540846190366210123499522071902653808688692189545558004629062231769074414021576702164244429228778093574999454345253235967769010972229533356221825383496439723186591037694363361275204122206490360547343659547985252343586513689682003833341539099451679148055497263370318582691070586526260536167352038381051589517932219276739276463144646751660246546252250824130154696966686470029023263001168416583409669949055067158582575890880405522342414245626092659529400730769025826603121682774883657280096031785482374627898479204182371388042592707773435164247052643665405144983204277993148370662976706838582504249379154911480671625179550675773186697463849627788688760870853396136399715604734530797289254680800233982608094693880126254753986211343146578163738472744114530480095055058437740290200500233672976042661500583386434507081377449198408860969255465378156189999667253242235298197755320115802518589781911669522874726630578897220014891240931206982176459717257145433984499455133297499576846086245245998742184963630230667376351494304452815984089289470661767792215177937583082294456777803594511013401528938618826656621854708579002467174096875771349847954131821936697604480554300063182707800334125556868093972064748265950029342058144870516349081944935815384552913272120994295137860646150399625171249298562018468322231096100359130811716809783602596728744151669949466261990431534424384137371096706865238508163197805105198029867714756907844262728955529410022580604572057114593460317855263967475714947263106793603556076996234029567877920011926468832265148899855191011881236995305101730547915467566857630965574087004092610642368546557274450409300474628057677825434658472824920406326418081547491401231638300305921934431448224958593384441244474695314013117689731747158143183082051251031065544994453342988966028892630899131574687299504704066364399831797482389572291961831638582573714633818954633777617836500744717371067121878978663607957916596698462600443208351099074877257148584443119369864531918888690480355269502595261460201850307488300008876218432956157991849911893176123801262115826792681910487586768162909525029041276720855702199397358675578517568185318164407719697781259629657099509164213868054788880286902479641950109268316420288894455200810263595087890866834907765506089709700952115961612103599426043200116091245645596009866765068250235783150767982323053357061005785398002895635451828387191750667174267128106628713846607246726808251064621647686585035057790535053290866801522121840803835464523100911888900230209049404801647431577922327953160717314765918933798639874161382663069279177340264406933400163400532350997283011676272499977313231743484586719587870528488212894045980713998659942304722689112704104126615838971428657005152564046112534047411772197503152065964215426536449978926922366008858640486596577006220177646325570425031918613498542963779669058389227833162595886676178309406826194094427399045199137051564215377069037923794724814060448708094280584485908331351193658628449732014263266753198496399902564474137044200410720819537258752679985607539451113462449535027277425719824263119326408522101261722819138394850432676998277013274300633752801322366358814583894210781822811062013771739259902173555148770501385730047585947938871234387451819933993065512707160693820490976521192749907115726830320305092136823350519223530762073421830062279943610177506061893839998605035839501205952813075729606738751594563757353277411325536160247812771768449576209544611953594210751292149392141207302604439593137139775932254407350171463642103268189177790364615519033536236261928443247470017168616448236838521414046583715569091858350875248011374324876123221173473963488996504236719900264584645495490089961511305243862793760310500513746121896415430350365350225967921133301214266855882867224005881067170121729013137875506557446202688150740470659254272805018933868551380425528033536073115537069258030618916016909307445878655473945866455987055381528975359026549761307304885677215517761358803748997041772369118960063242888958369036012928082487447668291019412512298138474420988169361836288600064203126066069885857755381348704258418069868671893422705203892596692895844297439607073644533702738017641487684875985836655373667452963135424116625155176327313261418563782749164414289827255557920333667227921838996405108272477306511592136919420092913397987741464359389637971390954485521419074509183773219354828492109697000446918683806491115408892196569978834510856539602510066095862881107581696712999370430264524582461556680831593900382997412598100879696889872904246187931769082079661459942587509447166634095527009093450170732590474496457152703993668613341440605078326179380640712302724453349644852904742209485727871037989478891868274792477772815052980478812757553077112892483771555589848667940313888042747960495400154967588379074390963999687185480148212002321611822291940486319275505059020575556860348939747959994374856508168854567794656961736421304699036847753152725032196131987758921136177396367903722369775944809407672395386571603950024912593955220155712468097697563173963739788701933347064630664795115458479765356974807404476035243948588681845489859039383608000259732341741511327140461983389520774749109534347056639281690127011354446491550037071275583789061546361094767945642255074932210259220015585846203416141811249044991604501838208196686600258184606691175556708872525342971758813750377969089428139643869318694317012489687481224019385440501576400181626016329286524725567708964191322917226076116951924824945286739784057228288857190489663985333471458164723741670884751534866498029612206352245843257685535324201210971828729728503880568531143137277770791152628377523959712886518403301368935943773062033094960831387341492328742785488226953312354593151464202817305026830908172347480924193133287088309794375406799934079692179513783534861764652571510144127720755510872067631401582566834849591819805678625709579680898526446940223691230911477378833916117913325993404279336123763401844877681753070801648691129267501515346537259248508119073571581473223621049861911183460306160063262088115285900615445989118389025986336001102690789133724532853110352406889077669613928163995791131171268348719384643170267563315514091108579015742571429302647620857847209481925228378729562613968883820046666999217217412505153839037700230510586238820488394246954783125650980271078038556266963220658127995983610959132469614312252029876913926483333073169766588905398411951456621365824677588488146328767846053719801421640315639531481043806041171295063308740375773406140958441366323571121313960463970642719696579150547443021217774134366648580520435227750461774319773723345997646477399266988859780053155597009439670999462267654353283088723320665711154469252620725827271016270295624848927970370431175490922310078550333985892171520834015280645491383738607095439137082202087010653302784518080834224599234360962916474399391317958966177628075838620150217949549408034746712188479845199589438615416740319397330321044255443955864085653901682316596411730523477173968877410157869629096824525621367015904551397782875181028694783513698633169529116695737560583324814819959343355863493836124684746839173252354475988140174771523653056371589511823121498214718109555528180983694932866368076034045666918704865029210847611263967851164921013141698062213531204419298305181194264652494300680015646312576032183034044270198850602718460813969016569665158588212090936541330637629755770875046575844290934769642435123494693193943487881251593154331664052620433796364287313870521538067099017656933222242511679787618885532126502487266812546170090138918620184784170267432921093234982305583725655724690612482451173540641733425628309943228864767882618308529686202909392748451143946417683673581856129740536344882535965978624408628169289061766015565573551421515509920747066883759576103412900117246468699692423891659329266536734177615531023280411042064543973518493911203600873190479896578521316890517457845660650991623463633061053050785212672647001348675963088478380318988387156034207126238039382721045297058047004390397868512849610931116841094915243738431719471095392752114051733795212786800146214745844592040421917886954510855112897703924084487971865247307754797776356006637343869683196007838661142849984838936038941884174803870442381591710207018051356498794446443858037967260254931874388076328148048190361075039722507935182738637139978592606839726203791682384308042931010017501231299880533703645409303002199086029911612468631571046921085266558084736250819421140926979927087475498952852585281094227108166574387158492420167864229528431982565000728660962464502735979577475340421283669290033050843164817982071342050693714264116258170614305047805821630359174363810477836107995181297096062883487558921735073248650089502214118101268649152678314198272351028567586723402778491443568229935020359967235053549951262561963738465502863959750767448553970904993147246540285893949560542354509743587181480461081643190844274691155212331251256507813086214703809660241238943302455760326384633747759148154598538191597887088630688882307567758487201171609174132963666214396348965673607770411871004512341274265781673590099969648797786695265177093454138546264639585408598224956032276497119155817300636521719273695492289430880088716464541954061363489048793519821091924908331152930162940272507386402456072093971107335279875756469178023662274593721739794535648220830064192418121383245014808464531634221141918603196946568719600093535437114836680442995711691029400318230972542274075307476516557283748702425636712114967468809893567767113710619499860903655275773881570384887766917122794991660724274918317263372198034691673295313793164935142341641777476511030159604961395810619458991481231881007942846434109436362527269913899700335670085935377506178030894021233905361981978532975051195381096710561689911672887759531473823008783885408729703485438704139125840914361605854602250638453682249686889252621951849494857385191627524765760434394057067324828212374352029723276225197764000256761023290831215039730779494111622744987420867675383122193664928583511918729333335499380957193862551404591523573483796025417387581769657386664880497125509547613804523620084721362004557365786878568957221657558547306201300451682277576125623395777598968689533345073004891862275082355300934977109164067770922777874542014674875400599458067123684443067667462990285667814883981841137278834725108592216867473292040611823577363583807922552582586959809614389120331122161583353885775320766249497613384132620440448061047072312008326635346935247852032658280661399996862174167775896046838380621618307296355907737007224501280054864671997169726244260737450926853609670675233534044241872433702402612339352612457870999730263327496445576187171353589085611253415695461380261795988935412999999071350699723201886964642268592874741267221430047799299731540884995243240462067652654170463986627627156106212179398118369097798927241484066479337219864879937350183939584318031384987012660092287208986092647956491660380331242185820225083629840482461226714031340188199529135972960003686496908465942812424887668441920932065170646858506294777558911147756999467938319288609107992011440801184405094615051458350819584994053240606898050033631045103940817077828961671600675184881158516015783533859958095925600021993035769767951580979418362358567286849490433134386684044012353535719996053552073001321552897649016976954062523960000389427352797989611105007286826761487041539094734736918698748730809499367571743811257493096654651297814912630448946229655974108975643957639600703851650048908767710748235645575068743447300835732456450735140156709746344861905933366925730969119319694263558861693061012249484096879531039940453025952760393619396940451929729325387227150656743307958277522930776567375603304385382511837345605391175940888432551272593573827219135981682901373228178625674048127652729444888495592008563712562533936319393463582829813212228702173817287814861716251399227654059347654190590659914840624096577184842529048035740152569048253293772470289372360377080624590376519036993463845846066832502316871968484069649205657066919260135087606141092056202352767148211568432533999742264623538661064316939866192326402078455988670309710734278520896515445578653525528825822006324792905360705319920376490540590698178548017657785713163229623695694563372272081921849642697643209220055606679154210517468070108272659988243854446177972819398603986656926528842331585932701632463096827529520110423607438886556435705370766619018985900920824011180156431029921261639250171237020230785194886353184756938356691409152157877704009527357600126761827788799282100344122094319287784650842275549588867602412126649163604485371665300864582801642595892826670094141316910398109910694572369712755368642953368389478136215672029789770223699922003230145957647087418211788555660650259151048753717545632025017678444305002617012357472196246779956037253311386534873359001162982756550057596717428237308126380456956836815723636485649966005466168496459581501216484106669931158640373722666342128343312727133784564158356505258633466496739221528174629130423319159113697588729638968293010488923871368533611780017403687575247614230731471250662060101463336892937198723752540462315309548226428463563849131353461971641703885802856223400763632496724480918210568651591639521547357940832699250499584950973712086953622317904155468354176583634456082850364636461659705596618358650249275671997283730429900543904378711764170249303323463963311518934601717877654750915100546171632063448663790617320331956177886894811984083951634261757617444910801532301783551779994018697202698872949785064814073085454183041716271324682771712690946104796652907768606514762843408373616807483099075893541064085023096630020974255212556576505037437419873692550547215721410452608381845071852560036333865753817595621004245737025990388482339826906690400253387291498486979588776458972271547485731107118566417288421156838358482596339724908439837590681248287172153939106189649556269303577430282521829530766506206363395585396076020140641730395196450156069679598398487269608673294921209418943909650568827826201821999481631332011020019696634464018834699107354726498999821550331324818965155181975563825902734307258468091058524733610127356808727518960126968929800730840409006677501475154486541595287699266460917257982521672643130241016643997367125599333637478350288735454827085546167170167815452918867560592687881142527222703315132069309048205573326527000734384336425684158192864720575242074138978822331465308720138186002799485285669767424716193309631191740291360836012855339007716916518342641720951689144602606904278185755599157731814086768026775914580012029104308602981654193273722050606340792907151302386651063241754726879391110645953459518817896888951954736745146050219094170543391307989853759424593106694914454853013195810453746893379678106389065113902251444089267357721748894956299956616614046567233870188223797831754004424303991256613410743989502882438741924183127187223210077171390970699369833304753539099344312519034047855722976225006464244103761984361538280549112861266389019699082226774469793989203447318957015184568762875152857039266059562195858137278414446981237554220685623787500127375687928116112602506320312687241601421346836625390854650872196147704188378460472947591568376924459866579904501948076710339509071951894647876936708053945739877724244732628342711420625618905123945736605057310620352080644216518405802170316594676395561758686575534272423681245700822139018242924632094323367725084082107991466564871319035561717023758040063310066681437587127938110584622314065114472988657006198837389043209604979526907888265082526346321715908968742519582191563377804258528387555851878701649688796162806899038400702311482014602248760870834570955551816002427716441806116805208053552713900386254165064216760596064834406116306728209746851916739831838740917917560586101983838825889998803270811619012373540345661307370105416459377943871051887045697019671817514169019414318655708859172236576413067025688944452932836303969030273215074414828910984118671563471588271738260211372663457210721500895585846707148203173103034508674938227547492782190324512717725771608270995736495924274980716387077240996276256165099208123522361822451223189702441524699638841191717899472500700049678614691801506132419295644091705083480395174248793391573982161532788207843656805653425101381970814441681778763366867719711144740075717709018793972259488913536191504073560961710707224933225238664728499286661393932924783773815758647386056578880153764385712429187286463034318396501462150116430312988336602549662584992030025041967839688119528416257931755411129385269317549670084809142719940028639032958036920615239219425963711034295776131071657368005241254190950213255696127198053741761297978643180630872309730004986614884699171022929583845876730291569380917827849153703187581549247223914429938365608696477659784263187779761911393134990950934106873911927938308317690935219777127712669907032446907189129083257899168810588629755197972476215508359049218022367004980739277213020002080197522598097948019343997965021669952636157812224955675548287694816691917838064828256718573233628949769072978196307845725095359759342752479091993194458560701126358524277281371942706607726936233500679955274060310117326904005613959474676945363200510692466929676443638957026339351350694265545658202518791424576493912979951425325393927639988980332563791748809949035688809301131468131962226449794746556888498028786926603725481972243936928196403545126971801408532243274572608024799295094625526787563898234314951263617689460805450762252012060316102871928542107686570173394845849064565964079183986744928239956391630933788713372644727910865691555188266030774486190699014882557734396077590617232257789684415215450771447500443444272968429756253745899708203183878939410045826176689315966329420551966275549783174972167632003151955543424666536225591290037450879538770187844548600781664926255009875383114770241409899459228777870536238292214137904177604697784279710949186848567765450752299110037460368212263751740195936969079914798444750349977736568646421065912194154842082599294462925277535052112532908739190083724499256686124554289943367643240308093884824286945933439870904175431124371812884328041964881405134655453366528681033863438720687527619484888653318596436048926625350425255213569962165852554682769311743832294415262548403928554145005115216556887265430995336636392211968568271646816491387563960885018065433670733991855250180806337576155411666265500910300870462958792913557760616948520685248682657937386035093191490196786963055294682495159090432769228182143076485429548110272963828171447366594125771869977534616857121838360970530346551660286650665637547687820242369864513073061000236391313013317027228069955009705243309971059424928752203472984932317040860055602456618201772574050825734263603637454837386257992089428458596902084480229011132104293363995013274063885889350791448867313913194040343704791197337966482590965320127102178982679452649361675969086095924892853868447775111371952057121764774053100746891426123140273921110055304839623087136495838272108952854584805092532307613843600095526408458709889100889132883243483195464270339698573674468878255634784389126041203580608214771570119734761237638998395388235632508374582298563267206264213043160087836882275756308958148962340917122508941101973318281713045795659256250505050224482767179509419702841986862476742641637061378543370877797227533698732003620730562313956417603132798739230322671789999961890976380965107039171620909059214426412985254846222855587939672549695641129191706728215844364565373730737697540705118673104688829698503998364733673850529251194014958796067987350763779703893930318426365804891414319727461443807109526304599923289095358190915418876702512638276829953989373746582952607310147732065375135066373910646230199630827061309791653528612081526705409837288994636014775389095995856033740581104186179291191618982176673836788659460138308639665104583602692459997250283527764449754613394043802285801666354313129962996698886828737364060347962374724439302412597757259883478008612993253077773704674454062791025866352162384383946812437815719538238217873176947084500606756722105131767795242492700594612820846945628021450650950901684498857471690634872157178102397237765269514844122090420986343016361902180519484672888471460312029083304147420654564437300717334920490980026081157006040117005186522887779826888949778273249606402923503785752475272364577467288622907192650579761080893861886219957074737058476331433373597065982020662620977713687249914238628363282085779589716140107097741833520742363939139774817836541370857340545477044604665867483192658855910671273910773531652184053277996103490334506275302802426262252771602841812735678027266929805418006360175797405778333127364524525630311820102336840903169380951041036628520400761280014951919057634953496874292805908199471090959808531913096276394525118461887522342867960608691120354292404319204001184937616023796561748951924120358014360013450761846799478155405025435731056796189204710151885393246385306272616478818693041649730257870501952981229205740065947993938244806142138686591643268060825430744921952585647378718507511527816760419038912343227777842162557326141513408291898139982847818272696693530843361844544277938901374290927228920372885257085531702428643159261342871216544716352602324937468796567706721801407308275967239812654899860390083096946318737586451436247040121020674234127638111243178216953049461882905890461927086175110350614512561128298388920482174254401512237679955942246266254159049803732624512919960848770082733104130645816846393577511522628656178092551621173138060452242660560152449801929125734431641634554004983494346529179242874052410936368734308153682664442489566992739098155183796615862751634700950822804705452697536556235193853763637871479334900095291306002738605072727283846512952251059862977119047893078701656330747146165738346903556824376668324859713184227400677558132796064638365791432181067011783325924883360853266406172610173426728264710673645644704925970699161585024807739998054226706989159155554004114652660257393073527132468007805044632146486628488404904208063539177780838705131031058404358839381520420829608479099823135027154880259482287307771270296460252834804971690803220640993002875780335914049752450863662351771472131268264618328007625444466177801014858400733687333207720031581731036113456363610277975995297815991276906626405823844047185456920130910316634192007451166210317422474168404437748857384002035125629293720447114381220690654136832552779864950039399603605906054140245419269975891764537380049388423150296053872712883048684919767592951244254240773287067884114228696083133637450864311896854481507007347301778402327487676500642522297809544818659522716139894714899204880301246176320225417372878388552440039361579066248775093456991178052691274486186937424084079695691648576180588198411268792231246949476510661456664624060920468603950647258901936989696657499793580921241265179432136961019330254048727273614391628344361706864562927767389278515724009266040492260814327747139117027930308554561974841723341044269170077114445317630036963962441425607304869258050508451401414132934092634384961119508417450454187700573078048194142618479896577787108259363794569996845895493472586587586486461453179650717245798274190704379326488331133284041457683757807506930559195654868908507081255497877551901483328597550849030836291481798704566454469034498791149475052203734306561060037505695114741045488566987049449959454286148095251739388511055404494129522154513191815094746190885376601819205209002963977466818332839291873345849914775643426541152451243707448398990191837713262345292685718626256707732051590599371936138974959653613154334324544242633752565551190190729735247646548590503942880155824673114788953540465615083661771850122380053385336882847814225218994438077723497877499936211766170541186765021352214882732096970670541005912302056180809356663236953151902571066965076406125717172798009477671617653438785527998174799640948384008477594251387015011389931329932331055638264474438501536868387416699353854303577047252153941865536455234119823242492952700024352907218693539524636572339242771524353730489843555948882730348110640553324911569679926608476738853325115219540676529959275906707117589655777294339748853140675369949041387845051809868885904704367046781833314196950241093500952370187362818612068604769823230452496810891954901970219741713005986892904681890184174096911170116596761352750840960972170544511068642882968184662609099880715145359003170700557947345686747825587331753491656749331195793854366820763099286370433745064141855102415468216965910752717183775333615485487876813415906938068074791038124582577868560115293854194808592497202341216614319840137240451408003873037568155210513799999084358758888812335295923816662904438628440631241117144160086072914807449053004761087365012025133870824421107470195317327813078124712318140520985070690328226708401685923064969456718507359644184469406391935841440182164153480987334398104253164945341740722234050313116291335273174242545582029772846493538810254761463920206094859288865990735549484392305461659627743028673553112165688903749246622047966581489093436142962495136989467452985208298492959608727014299878007918768655569236072807418926776646937958150147789978491060950889403112258062410819143153337242880982220007498196132884471765570850293677907079281146013916454824055994808484573736685790504404054263798255388993996670406923762562891717351972278873539851423070508929316859086856029624559969207684247504575146627733623928961171615140370449013371810155223742523129188877259479373889886505279735517528448881832278950669626465365684603258510581118739996880752447045494030259216383917883344160799805037655294934022717739831574483504244103089933802796675284848304737165589072042103956629119757711323708533528441257525336588839253172743436600036779972672117955167628266826997739535310918405557673032804284233468411826710972349328668700980398522509488974936377713185468538051924950418271086172694778901720581770070347620261575202455639148644950268791366855147436808416174825006853274649248137942741867262183834020703308236594267709310905026515744253797311319477423744319236824919181532891442057810739047455334070844348161826152330626329262839773353226734034911250816057792829887221249452678936742517235381301787774418582837769692393843709639762664634821225115460628864719270066515570616352534407361986985698167414158250681757176900907313739478106444988101769660465289079737913402540185148131354177931065485657425316784524482193951650747549961760442428852283304514013221536955623805157331500710398409782082547370802089952542864666256026487217898085319250021782144037720766299967430501680683043474825615634652354344932488729808397784217703915239606846282716245226200456336233217140442521572778436203881003788514057221989457763438457817344064747162967296119470596133438048724497444909741035030570779667698780769027821880435603798754035919749457611044639172973977082476435770897086566410691755802047172246343373705405551160509257158381201951533686361936772521346783235867805917561397152757987681160491252679655089975060992786316259249428322175461597810552994834520590285044667489442686810672766108282592412166291949369416517858625001056441708742794426593530848161458972891154451635866105623025918314349279656156029174300408880130328612035804205015730518686814598394148440647439933288736699398298526701733423634532799355771441541130075875094643482334072376254179415757430389780991588482428390213572670219699728730025620035917002144150143524122795612820917288468835296427963463148284482880689348791630336590827678640500271235920370719047945671153153128186492039719586791830611490004242468371637218542542790449317555096558486247877520253129891555479806764479633658087112386312396004022165653667092572482127011823767532615930886493020955996773333916451340091177543539938642992661494411055442646857445531541105595953553946588103006562047540895733721426728951679403372894311275676489838695524295892689708237003358022007619880324579963744106218705907975748935743932236409791233026811828022980329694331564810442966607422863395066878128467841159202996108232002343865635417113396482100131106181785171101400676298248294213276768092475070389884019777799592518207647442887296087474534206461139114700912036007792524124819262533200558415958823020627866415490275401097868534214700294830546542807455987644653700752541461633838599422214352162153941422599930510692009888345176806089983138327797527269996126283947633698170143559690539519466277276116568443819875713585780274680398882521474250751125682730026069674408582196232948856272573044358393046076484487558761231537864460744697923184465550902548954355435875851544148610258556499255752453409817500016578726470752615868760188875037983584246200284598908750819718832636853727198558002340694534271598094234847143382648330310855422319919199141289365902871192782579936738542372782796199671107838838826459599656818978357074670913023169182543401428964096574903169198166502408049014953726730566013620386291486563498440181624299482616009557406628519810245262530881185832619852239615530035444376568708694378867420645768153204447537920569681161732457229560876869090278670881759337706314000168209008277091813472318653380669467473984133594041176266675711413868160733564812733332202327089025995157088535058432484982247768931678784772956688045341398861506071002270643744736046411580775574129822505963224116729165364101222503123243877990125271005672873489427009291549784250739542210326201466984127268844081259752723098996595201119006209807299925317466617178375856147552626365170381196208240667978651847184289374160549126887767495073525181554683420857804112178782063526136943324923717261158766687939838198680535001966928058950596884280297647373641626022925904482257469781750222001798939742430315084132375028770569622728975855879248178299034518196432390706638041560438616185277122737904196875034103836608287038847576050965904589937396833812711352185172511780224772008775885408153054805954272113394213061055228272822200006468790351839147208336478519885082211595067527031483094032982231670605183393757505562885484944032241319482909513819098200705896588788961600924249234885733814107970835086552869208726952137737511968100907484367398107918982441448156047746472940816930819836779509557298101218889361159405979814511466254302589010544415220683903784463611694221711636150790246657933750075910058800920339543050792682438695586431682493089027355772784074525261965782721750257628910498797808747082116021376636219329376798428714088608772152307266917387407039464945436770172661347399116573031443263800231699167191268223429441042444715141965180389117609140560827274533045045438840824424167298088696459224776018147679974251587714728881658392973653168398762279775142933335285811539683353233621350662178644039624203978080661637401961014075245065418340351926169781260478527907972691848608257954346961016079889232906720027569270046650499514842778890973446115495431660829834681608408693657190358873468079133156069845092340523730790136478891934070461219344295797145336970634366923867822319356435453420171399931038979861145344948277730843138891027834938792257335497140810645638870526489696883399011508524929184585814669661909899439043963880240009585210913038971630558389704212289856353367733690531591746736395862779821193156360930344418874029679152963678284615802564026891354585015525238199243065450003965207218060306695053697276962518100113433101453365640489174908172579793686601498533334776950896017805047589543425154143288711942476350105155467000985756593025715813383297161237989619067940036379354547962593080677272780065879136780852818023076369526163277778107008024941089488177465675903630462292776383163146413223200317608841221744966161651080246002080519083018425930924595231996618205706471119757572398308191996462836468223605513110564969881329730117067910791548511237264887019588559794415414743365007753561452154271269315495051563136359484560482454321882236987960432565530809178087940000130684862167731638461114346252120802491133887174436526734107313674479912326580238575477769799847486861394968479455613329677702515275216374220258150242292699186715876843937770403616111815474024968930216105087268668476919588142225443249782821902777013014215707879075320521178397985073899548066543464909039841543484751392210662208319778679453366573382549974044289633330788535296197638421607057246715862685905039144028109511520094255322145539311063726922744998119058800063088601301603568910555221111247641232057153986669182672563026727532019991443158780878004210796435466116659268888161892899643722697602358793535995669039479185351823894285380170652021306166374113565426377452078121119699827461163374694455269743762064666011493276240014613915670543854225623992978742582406482076149833309925841552567420160839053351571085238708273012456166163388892361328422723648292947517681621830224166384260838101277942700673830599758910078628458585146211017154476484824202658737804462116348305314263529903152426621170085986130796931032344489628445152752522408066376629364164494971380849575386040191582474433319376892021633506892748657172577349577968443356488506025675102143072202010264035546326930064810653497765203611196038708892171791765754877181547383326020229658092142799913244649576967628199654654927179570312002824545629754981652061865189399298950106745231346293395535158853298774453949861176070287722961953256003739064177811882814099275945897549360955143602785347623702007331354655997788664256557730811243143278496473683247150398968753148387068730051486923311162247031015502199135038569107045170695492217311655807963607523503155650289719763361621016173911127339984565790315082391364284633065515987353629320639525555715709049700109918982205709005007844543795980160221087417094573556972577440806410991896177325735864345116927878918388358526570409537098111162824077237348109028611909187235227695018507770275840859067133804343659164039563985312150103741981811277948812957236939694383926059397527363227147341843029936194002129876873229747463777554952087025855096965015307893347282870414751240727025584328345453398437446181641834737598902169563438498391220935125904106355768533209552559070207946213502487739475763122362931923925027591570493349884140003554785960986254405179342377172994642368415186293312939354428827696668153965683180968382180050377390856208589909006779022559669266880437381337850697741501153016607137864920303120864610760198984004850111813330427036259369014502610565265258599810211065544207773095736986392001428770014644108648330028708152899463838123226141934615442798643000270427904288487460301718937847813260463693730347733548407262014051370216966083635184754145929353684240592111917864197913044740415865349349758454915202688579974053147754833237186266142712598489477637987976716481833090781839331920673193779963090185056956416119972167882441722571072173958035747873191494321225246559663445447538483237375405792847009781293983409770986010318716697714329689040500704487189692103274552108733613686495708108502793729559718906824983679639468302456533946691448285007577961156011743803978105485345297091334983851475414500489365482131712487745633777086962227442062630761812336434244387165177149225981531155869392727879238668672814229626447107937766210117728737480889487141769568413596050935450276801755784057694983174560916931577370487495113939537859362199019848938757598561671330830844649359195480533360910200740282597156050789262931887698852956527151363060506802669058838998949371780201993169802719665338824557403848527326070535321441384751250221578114018460724664237204575906464305571741420782871361775854924575136398709417891636937338563429099825632247863633962369011448130933364547218442201170677846620295210858808141391489811145745723978517125276772086427731228984111666695919284063274662129517885846290257710363532513348018422164045870802606253817419596101032868743718460880711409327832975031265525937071717587066018218494156361477694670916695176842714138616875375607751101868017966430932538823863336404549102918985700504343420963705380815092470107334365080859710221910831789591954317862526598078979028374996851564535042128719407387303980475915880665889199242820511261033376129256575188660025059511362576148233289931239242610733925817636246382988494986337576769229307283496015060385737245868161691501318904958840783091522098136225996021340710876717854623446609897152169967287252638385198303307837393387871086234929042107021348751847876017580106740347447889078186192226362228629617896770093847278829353883295422896065730059191522025203280622473224768721625605284771002332456686429986680205498166550043323974849763798953521097541752298760207062412756695898163962085113455848865089664121485960809616951663091379763379591588408816385361100594464564202587304622360363520487550961774378843854492815788230340560128834202816345468980727784745284294303477773894881932958402760675201050186598623756316120198096937173244074352927998329096340882435828811063534731595671002951148236630355113422014184472732642997722750456227786450373102835473975750136609214061418585958566430602086539744785486248455112043754648322676869908413739407466559782270607473321941150171252876284344731629118035370427656680195304906153606456635742314356151809868799423078144059569005986194896098181816214426321892092652792378795615618185231402826283404729597071286140774824948375873882169164553308971778438998504547111581906117402714672576844846560942473278150394875822739378705986458312002973990022770722793152064084752121873110562971985322273761313425041689820171773543470200022735865578748250681543467455190124518727710821683941834083044544956959504160986392358587325113833024563284233572291729837152504117921115485546773616745947678199558175741625469408659617783695338734887674731065850630503529677050835525544890629482090128350372306524897892670688083377252557090159465025918196322341552397147705435085181659842061831381619370014692031290867992944355819131807364330383449516543411837028812530608554279116155552942727554471403900375408326533381612599949446807779453150868899055749210145802941814772029303623804375604576331477911473101594954806824682660910627934020763711255377168613601351529758434960613510743399401052047479017460553704402496627481033937868571382159525120730059942359476409741394728830337177305038500704946981927001843897554958133958317910928889298773810502468718933807860007915392848891626465050055393131785556542177484002358903374680280729115479188898494616808007130353591563572548128859410236027333171305850440774638847413475302827533301553171256703783812838174158469202036028345562794539781944821890698346784136443426128347205348230996426677437645927705745281983876544973141632299490054741391013484065125447010139788818449315543745820172861856896980421705566636733164766010686679215979153783625697686505916500710131166889786336651219537551412525048175907517568564757197881711261531190246833637233963905184942932729678353619218721619541972651579542072429896571533490912208043492170241399831713718735049129188103558205397362669870814209910133909129869040312793892665510097776158259752195234055420865375512453760246335629927720957488944999684572427874593791668047807660207264606430862686892556656214494099039756700397144197139258905252502721551278989897858147859924666272373380440358002681926915596369228898535413289351231929599909327582429387219972694601670273941563200177438697698887254134870469890351542827434053653153377763605707170644751771203129674286998840377609098767545708833629263112102899229070058015487788404155781221952446484379233401495443078981932964181199286937094027190941269534202925267547651953488500133381030652792224742755911738532334760648672416914765219796178467567070988689708580758101412506712188032203008313253376081159710785709744024012320122245904912423261981976717464353583119184388611652805622883624151035097301907970254180323028566711508639164598169334074139156457045632901098899358545062229236400436904153463295173855726478494149268510160239412927821638364966116859325836649782820447291535315332204674843354584909367326025776592540876334183216625215313679643384131714462769075913943188505767676607106968819250315363048419725251698257704129206635842164308258419797286076227882656111424614776550507336206577073358509615218967740458320953755445529933277086328864160789471205446664354969957474101946498789655477893244711535253895911462770296154364959394761542906098593738938963495149591748721606585582455258985132191294233063843506695535392843445728477799783944220398179998394343367709476855765938723952702524135408763071429769177518256444843447807693653562915969646877314936330077551926872065555225031375397860983015813874312270329245052542699467554014585283843215652787041011095234536879557022641316689913802424134773312005131953199360934231939691770419777552178053275575618429739274809019893993226429980920548902596783380884772396187630755778867940794503308541999393324068794329066471535517135570953405640318725624018917293822859882560221966107292383741120770509296005688156575354955318091599248548580850790845836532603136022354609878205518934625411249213853799376266978562626933137419579600887595747336146462833095891249953993779953488081842191597627412684210321209238091896720197355891584085386683091138968277078608909785593802150153541515031216223871150449941937399959547104668253929598578615377920029086815670640448673492306464793566767379183842418504209516811795069012000240168450297468215946561744214209221745706406143519285230165161795053605907493976860456289013426091364939553352142265340971787574208802122743160418859502312062844745483060777272151696858382248065302055899938767151447291636187368305826841196389545521603046367966307626521589904093247040359263739959237855400037277112862715846344652980282546716074188878227188557830515241583509535178026598022631253793921193809836231668196009812615739125406180063870612884423027116894444413815245096099809140003881761191696842785694451703081980808532311775706497608771454815355429929293031252175361814838864955274411891273652063472731864399513987149326578656585054626588538015083872967412666756258509817993872339997879547994864968116978925082361290754722493405714693493686447599746282763747577303029767877983141573410059257398580323504981807848992757135091806379225367038171396018218790962495610505455963796766385420755686196771697140292497501506218325363786431476060681657584337330499208151688450641615366092339358535268682109087976483661592901772789196527138427400405257993114930320047089776939677258940977849310334164590455597938455218168596311267986734068835331705471489343581253029387879104196704339247958655285439879251436418640035085184433610918190113973968824959931343853571921949177788769277746144314963396253798978983382761827832794248452452950718953084084637161504203166061986097721948900830388338699470752138359778333291226053691676676936910082088155125780443590956618988592468477644597567378851679895045658351109452137286241049649544185911792282261306225690912956211150632344850717401318807138424803641906992866217939466733685233728800493262625840371100144251498394737653621417276267580186894292962064852877589349704822149140024241331616323720955122215236115715508431804052410493793135500030718915417587183645702409424472761460014112506480267910434035821242078897229892142457700496983453736459588881583625917169882572685225360454886668588765116153970058020175695717619032790528697568123398955531777908822196546375776724134839053975905763529385753136825244077413887214644905600952597376673104806295839922235411454255847294884287911367301673197134543147156450772561682450054686103138621781857644335265488744109829646399400832292778887081647736847023733245276675663477247845139572732391828627752432225801981505421215906085515428810303708081100150485053288239296749914058134363772407298429338356835971838809011279114063546009039537809224996573157372575284287522578001889232100281918936809770726914490416660958311202862706079503127535817842962578590194355263584593071733224547378578620965093091851677075269306346498486317298765196149466266170007598292864644291904128452829096114719383991452985865942400627960251340426667839008150483855713205908454850625846148226350678857527391375621216840793726006605381387226097191810834583484654150459285308470151139643376579783994128751091092476182603726642400343957914691839130764449591272869486828252433565132354706311361551705700112585040993867466577083771965853257621888583716128763263352014115144673466012804406012407809542699715276233450232823731260967182390263138376411231502037503723044536421546799321599929967709504527442842270885993541609543565802433194030698882314694328251282322220232030243137706100695368912832875457762868409704087692821964716408948976430236059672419428828397458516601175745157669484511608803235616770729056439962253221232157324991910954521656621850956542580655141518156059540654476931178402996612054558486587514090906032625445957285734137124558533998199916292858575690154324825343654838858818974557657373810853970635936602630538881498057908246354273444285348002711359068230902264434710121343089221349330959032088562750644389604577761893068714685949329067337409901221203650477421031299347987944280296350390966247080998387452901718012980139803087004674074034575107065651557649529964727016684789474788154373460660437050174570922745998389905690030407486476484778795879429865836938904998848259103940142160118023173661049584749373249333516588613112299225149067392109970762831699842492332905607557795773125402859253767809039784253323920578894609392441956596418501664380131019220783138448345665849646805558291461496370594444353624609692403458662223236675543146040805535780812776768317554063911017349170548425354012007014047209903120843364944791624572654810722683184205332723403266890404632138862436917771628495920491248291797584012563922664721991271379713112553024493858691269660499432331134587750900183296760537230510717174572862754912636502549893255847130011367183323433540164420715260749456038402561696575806415358296276803417382632891283689158206792120402349829930150237002866152961672949934372484358991068573354305042063657520819163053606314333512738870710355190081867174006326432292592970354092972725056718167328215951904537942222767626776404197350108326793870265535599774389595222126396965126644383298518316633443872049817968968502746296661172143974105331645789914703889406780699632457826277640655899590580775961112506489296406957834421298428175813358506487397823553954802815477629310497644974070396157110138167435744622540567460982459618377431133699108222555448050408017007873952278964999318254421851467819922714906762648717399973479608321316426060258611728847749101776836037972486878838719032044304924066606418818566955851385112450045644165106553742960177430008746469552030774600634251876282901826406378687577405379432008936144033824404832177141740150838957326550190196583811922976529431255049562399998087243633575892600855186998630076761367802845397432848738829975724991400565421114598732219052949907610065757444410419551903187342421754362861624583589536279598206356084295089316149668532744339828063582854983694243833600960223302362760169599782444147359464537200015430039992291265785913247035467213785969674218818029146903925648607564766255052773358004200319536862099134016701639061720720992438179803065175516454210029144758732206023847174398896822629221625633751863069356519879969394194854978142957273791931985506309198412560905156475767078858516065161147723713762376314246248891014055732275891264305114488148566898662726618105221018904085048894586404439969743190545503595714034780095686181115793753862590821491092119692000128489518462477113530155962361443887869359493970324702039859132815431476267681480378165040107472423940420241711042362933873430756471843348079578400701192827146015060093843271384372257227134312247223548332670286295275222989152321536344076546532403132662349659275565907931418929847330092241106288728285286957310647718052646591006530183876177134746734870468603032383991484970028434863447494826654251044436355582842203934886578567614922120635746300065854881479879629078489988124652862380457851999160154123197742939273059432156084674328721468320484534741620047522586391787863184707411206488043446275243906859277445734606826971343169575803640926088582616735206245860047822310989075776694387743776303670977586041224955791963221194529481366382918533819541170389612923081599041164607387493113914776448329067271120074727485388677348349202839258086966712140620551109845721944770097902779805138688672186981695762060684603030586219714400910145257492836798608734646817227830410402464294365732084121499979152383868087497998585442559356258293968019153700213405354670845617927126554891754325935469839553472895007695927663390212580297443372485968184468054002700146976180673776986347991950325617430082095100410182135507964933086424036171136036231465649639477765497184320783527183781026812567558237421048419215006729730122231103655932931761613867583609241856611172892677451009780713375513751709628280177960402482166894122473532661283896719819487907392142347270425048845355359794063708829969143559269975652087754311512347334690288161456615286661846776414714195388449376482988450169814317046613961520510010004575527489453090723386191047099032593125775850963102985322542169582653597396652590277825618594903147866381671959509741420356689247530659434409566067646142691598325038597974461201224537263269946188527087034777718161458339578007323830121596684734697859355516576471614687209947741148687923506046882723565285807196453060551001662828990199731862044205751071065762383221317715278408454670461400653831408561092688101421091607717690069181593731267263082008836814627319945767230334066342608129339540712417533345475010619603878556754048852300764357239555345113884704072792853029276717599710815637178274513488574677226398340969070181124469931210825521999400684826163939888212704458883643868274744913126898207822112989374486679833806957619093847844173008709911648455468996172904824071260194052917694155775064549138703289358733587218756545217103016523070372246179591013480703246818651122502995905725717428627235707000278780501737984538914273935230164358262464665970531279757724148775971919393156625565384868780879601158647078562193717637556471292554143136782328855167862986319308494924994208077504764494709655125217031153750418886148542676953790770774318838255832165969566037446049971688155864103280369937330112216535434246240204661931337130812821933846702918606612095393699876371925351816955106808396269899155568524012462523517721953283800798977128993128660626164020256085366079869529652669930312712344902312216529003971312493353706221131473161656705283833626049420853489290627809073358526940485411061035890491817118799530158104688360549090046063514146184280774012455832955971299068059522036088714345539938522507610564697686210560970738335064933137538821508299923678452408329374770627942245385937305273458297201514996315910794491804927358055028050665726831159873319656239592382804519592719824478843164056370372577077968659317666395105187945671185213354753841619905922855311343415438062125046127186759053865329303790278287441190008236650046378876913756200756359807578591639554389457037028921179763513406817109284392296226563618482045239941994385653832183559344850219867130232968263174852744016314046262523910692357320222043035929852729810117906101859520592793112526709883897005082846974469801544139151447524951962897690955726967982985011287852273009227292892448460558208593679475705001676335546088133187076963206890830024950775119197380616084897014598963433484954679715764080171915677995709640390839850591641934873371179214058527669511890598356997070616134612998986159123383406523215560612259664051701795850095821854464711179340903195055807881047718004613858848502761478556206177977398096536757552848821528498899379734481527707004282148626903505930680380933268893027745693254882857320118060069443735843056567193601181401878501308875928158797273233730348443218581951542778998315700701726856508037872673576204220877396931978745702922043498583662664635081503371691113918903963670902429501746523268497541925331999756962111022823900786987879491623531586525068461037049495570400189398535740809607897160198757238909486462396483869744195082567780088563513999517169637725306702254045146301550299936958062451090426349781560694829300387461944360403342672748103116629356197624295475732970827834188630036263397418333485139934543662606769521663449605399656950309073147969141037591416729242230929273438165976343973719625337259662248715098674020265564546588312412740104124906173081703867212503153249583833506650965216066990305261925028626082932744926538376686074388077331196712790742242518541587788608529769520726912850555456342359283175545790078985725166631701912506648882115472135028437548264255075332064836216687854342280715258390497309346701413686454295181735483311909195669877001900905107409985110035852015768039800899659121311228106766105198573890269375026607016310564959605905685019746724661923777092374769599575780542944399970799601486647914070392671350385817874701966740323104230578849398525064177203925211159631945876158969867782813689883398573655594024796933474352338792329852272645451762023754738039422147102660570434797544891165965436534645405776688480686417471380876591503336605036335700750896356107111921194985611401509062145638407365448628033879026763225351695600329297550350937341861147404637285308960717086671375267430532256349574905949597010267830267313389224892402048327887055531678666990909918954681528765315302865372153250699211916488746813689816135604707373815320044094208955346186478415361614455207879325819763036762539173510456764280432704520020499591171214666671222562464068288604880647454312613433562697199251921776397103067017143542150582816886725313493680039944909668690768668695065465475728597186298104750972664000125400495844550699165019563842111869384400337136309769850449779798295481436709504665503366910417981214244715487375638264336206169789391331781271426063171655226340582497243543065511200719683857431354423376963256679221744176230730460556317582256304095024640882542016644646004917199054492972292495251899936970253109444733900375913909716871777755356433306624187898449598170504184327283684932240408235388858042165623966474790025781213752566510428039248352759291436892617405171952904836636904557909624202720283994343567554283538573850004799033586627843151793736838899303101834232161873319312404642699521957973951478529363640361160548766436720364404450001226304790290867608521411458355648029401110412979294257754789498557013507806326983124006050970878194251665305092633735963888558789552415803902386949927109707179167930817587517933190975135343513883526977717329536351654831282403991859927116354880298145933952996513136632927146093334942672893500008615138839175445041016915213470890539037214314760122266438708803354884108255678194785277510229939770039349918586141907407024548551253730701442022744552579004024664952841138848491683305313463589846427601494226994766470399776927587948383635436137452991886811076779898844379573251694289169435103388612813246745157020611130590905959077819012984649393921593090266490918964046824927226158812497065989312559860050380444069621526794173038157642322550160059752234525373607539016589160656923427611567109940108856134270686763334316566854104204703197185930642385038826264585131540228884616268023832656470109767710911054862654475463246797832848598996822663644681920052764893126643687378674154468487292296329380548738581700787298027068985478674631949974044809355476769006176582806023271745628928951980407950409761943444229991911042152347275727121282012271397456565732510883331213711987617773236364830002458833799400933934082999394718771397343916298452269201009373151557588315611939888601411382487096827367072062629317970634391665022983999347937221114577528641256188711603841594419947544272093007796438047530152895905581514899533816625517523639107413537832066035826085370101363731231801604114392952152799933413814063812274321685801235231453933813584219170685735241487523322499201770411503840654280864463615116114028827760979045760692339202363715140747858924727162785440153747443206167759777195046781687295234357436468588761710705357394614729180360007360238137309518628987515608349608264642543648332470464685722158405792749577631531228367311746642224991976366975866339101502489543027624149190115211487908845054680073940805491720261415174813524355795820866054994387871527903451324910164652078872426023303937806280977649908314585816579648652701531485518397188842094342415607153488257488621701686497668270910747346197194044379169327983807954392615511183676461389219583111270196761787922558949974521133980749993394389742442873070315565378647721828056944861456998880865021257414455086945585410438999537439741324546949080863972513325845570267625775127613313482208131726592203642094989882093961488494181230060206469057227870846368563991239194435431246333454927066313949383887381847979662994911524434148316731832459980390016916509583098198691689381051951137773792959065534069481773767560525523043360222645024534287149708451774943436487186348404684138914168749305232299438508703811335355167437584953018570949280533165782279637826837101550998421464277255051805868117877421545777011430795083315613471453867463946395532113720789140382241144691719816532084322192117451198519227427709734378482253977182761969484562854890021463314687448367498308557224987149829380118625369207945992378769190146466645629189372685246401731423998658011517629903339023312680344452166898319007904519372969080691041171476819580080854550984313505146741313252219526616560665258442363869300488396570997452966388934608550457090106549041456722715806473057563780958838196618592237683250993089309981931258931608499116496591175778978332866126515691430732686457732345927759609595650136236809176885516802682745254309893015675344408500301194662114216054955539280264883664278265091531680349863730476592639456507927743609507952070269918506717858362548206668613741353543269296702719299477831550179474649360821306346759907411523108798227036980469011524325239932925408632120185153476065487628533359603308027028538193800104227033174870606184657894037982970478103999608831456954843478878462232702730693938000050335397833232066310105866985559611551167600802224187369667378517867596020111249009836419263009871072409633420544827721178156066671856810108466910195836608969965590677388844815885629126389125574563145517476906629360219515320983796590532691691999705963069995140425558112356037012519058390627659287144398067739279058494101664089040362569291189164325648748366955182496007547919734642737745527585832643765297606553254903445364904444480511582260133085836850131637666321069234641634537445871960967356648624937002424370617782114378484176667794653937609525551799995846374642198978950953628308476386966848096235217390763604127503754929086996649181691061784343897716519956592515237828318572004385567547951080030704108221177592479060298302818955245505268696405224313084553974048879705184052286070581296413220901007400883516287541849051806391125947583986325253282543466887807190148172657995805219904367914290333457072021208716963628837089195441084184596951994212187147416621374202951008197578342188292554511985186256938556546512962181156947114572949354934184050861250588036016762768515839744272088448841282457123282146508660460396439707281705652271473863683709387177067452506075960156686086051452999040359882465306782082800418374099080973301272406872813120128360399575185430940667341508615596488112937010454190813898419616630693557173985378918190769805104141522992121805240327079230278437077938345963729580877234816186333632437214506158487375411263839593796270307291333832609689491778851632797578558622426881503983883876216004677552335739450888923025577310904535654415578588762611282935162329891258957636738650900456520303013411439045814615125555262804538716901259326508302831804186894877134254863186975092750915629010758213497467686269701999143796218022613173091298806114212269934216960806783044723534546732307005680914284474082887871696195428844141539385529308921707443599821901844139839508554173380617780777924198036218428782713691784296271498066959373527562608548005427816270549518223333893778585474384572746892016678672024143375468989837451300657248179287088650409640478227870178664099671325850622620735997312235479942953360478534542116975672612548866826982278285555939274177862039539472182857550770866200359728575213271628066425087768313489861500185193282721706520282667347928291274713302457692875938517067786395198334429781049407829413674471295673808865848981361115502316749504029006570855443329416878546850179121227974454265140170755434676042920021371731914786438551130073596767039845566398050556485420189681040195185653135468721276318627318053468139692680088083165279342831341866927688450308121908720463917533063070309576740552289679982387206487928656146281385395192759318897923677575640128709143115284461782798434660589084457787336065800997825029234807409724327232749347971329355311912328678673013612374157867639038208183280904476168355571288307239157917002715612797214259588912349077726490776079240984874770452033900651921561531540851150446037855512882235450545433941565353995285100254647010635792715759698119823199626887487037125230892240625105518159787131821823758947986993068730944508146596996302410220572614733024102382062633494122361752810594215270069343703526120822986363710626888758895594451828059745955578983891846339632004873187452641812634565964093826634240525555119536271538272254488979498128920977409380467417977389830922788316572659354020678959709733113566217292792714661861869178445551161388721349251808099132169500184212136949290846718869521629619054502060353575788764443357709732920280979777239187144640624730383176082496471088142874955202377387576860919569769019024362029337838531306767431689004146604954015847949203101482277149402735347404066518364480851074669949926782162573824257686959736182980780295520637921893290199821366563842339084337560980195217500415480475889843467054657867955886248691979350884654521812214591779386386358218216607911212793466504902664037475407719627736867951548783478460455252567586961401429454464008275065353005645721384952736997774710530697842269231441057946333620076556106594966981211853229784413230498780057312294402461485671308163879590935990958077362245157151119065935130374147502551227697636837071719479622565837988437800557392489284959583253246260747954886356625033788016469231086624205010031308680444349492889181525882993961433176469110341272294799268817439133961433470857906161641649034275092020623755795582016069102360330088557539629867411454962108048780066056499098413647200351495188804093995074076079026886200136118137551621693161869307164812692315105714036527643799945155092121790408950550617178249470341813009524416658598669347285838710811998024965721068963511698308909751623475351948032923518213745359975113409101447116045196139705178146992249035827673280751567917159059539708591821455754388124941985164441044434382250131501641261116178166480979869102592180310556749538106288488414296682332737544770295442376381710145215236363276712795152369015096825883372924070261469782385119569557136981553435500714318586921953703582901823563234254613091631576368044927083192100733901283280986750799931432510284610202422728917692857615368858326864598932422442469164482810781960757381942652017466589999019789633010334590496491593573285486275967469087869263778028225556225350266484576010910519167595010682339708010549419821298225501648398533214177301058953776634926801813348813594009067912159128944047403357578998843064267713094286090929489672679279648149396736168470972465456023225274518111997861366903777895869259327046787512756796239165387677585271058299303095727648711450537876443807373351802842485825841498795597159714080281343640958111756899765001540953117171946452924833998914648772882702001824217115894093008960334060758618681280870080488399271527013770778923927364510883510337047660541452293103288237562679716762660693093556750035948362260212809371051224796464249039212009132312122083117728516940077962173305896452013957625322331461552571944698841174576762742943936741689695882168800658420771978030572519817804778688617511574946442234143756876981419493965174446806177534385088548194854517839795017659961153010918022754854735556106340857030581374495968800545644776711950784008146881598037162304543871978933076775406316672492164855650170915565617661340382511300483729504058349620172270028665878304388304971619188063824163072185468055120224875626240086357867102343463336701557980871412982019305880361517895589087338241742270385426625035056113393782174628018510025198489123569214798524440683387023994277041283953740445146656995883738746140940517153362352114739141212154546345899638895673432368916890817248801461416327180014323474893850781982352062495090004322884423042777148398058203222995500853874539671268659369213016637383457222808174081498225561746719281724415433432775838130280731333970926553559196215567127488200979371661753853312251544501280899685713901240645518101304343475985441058033266160081664234738406000176313294950654990291716512227894769045962719803597234906330072906940359354113474497978205703663601590929948384536025187341219250061725211995384098276867039413886893289373684424213273479811863399245227332413661002571079292461408570848450174344423106200945631907717676954880831564759728463751176955010221975503566437033455301661224050343266456566870436813287484910325009935723490159570197719497146207830870510115202221178007524174122166401356827852418636638543432756129455497438652886201803846523881169978930248876728721100178254705492226657316500253720094441546099305023623205844937646896223442369383448966405883499730249726315207354598170286058540457701639658188136225020730884785694696122829062331646807481273313340001116680380170837980580589450241227861538463442842175652725832458487532889526472590897270030628902008259314324972347081197555377156110124317882759930372191485591206702016699368508697313869422743755280774806346701153109833469809611087883410675476744570623031963187203244502800970995399879014188624309603031125118263180511584858890090382834706512408714635092206259613503314919944807300767895556505670578535940737684477736199115888130882096320078177880814419613920204557261823200111256283451300771170848334974599364582749299724982450605105329388445579700711164882599249917570410514289762411816104009875813778284086420186619361202233502845094578687776668953950144435372762637966704487937798440070432655363721072893684330194010913478018486673630081492125613953936572063777831479080085079839701347872655751296072732426168246514375983098259847659790206747683970231835377989324289283790754094512546546784943802180242344097528384593805986269015668517025340864269980461064942457924971362962964241714565114715122657497570036712450429038343230572453909515891139203054671706621621581352771674658968292268652606622962703530847434098862722789050421993414531144104797470387099833303865888200971937691781492470331705394343436263318469373338631300329041615629028939054054839026196262816120863696407730919388413192758323257748210763880952021926627456365980012081094593054451587236473267782452341943520800539248352822216491704737893127477148317912477709443995925452026854987818283811793290219801917491506316676240345154334046404428641419199360793817794843818684802980971478965115536913092243587945597055318305928575851662520226571935078287854540713376884049719484765198016190699798526574868768513689883298512626871881311794537745319886969632433111055708869351667316214388085514805979649460654850841694416096505925132804828125825827585784957879716946901986057919633750698519221569122910678659811241771435457928095291497241990798654607140906266335359662485761176424312844569317453798422040071763263695397735591401926894461499232514322928114244704459195739121955648751716535927814993209893219762485039749398015384708938550693400136611388113390603021244179677095842545795542219244619625337623614378366202136018985161935483306467774568020284382742028499369313602467098325543969763132241660697582084776950372518398483396995143768703926920399531566944595337550968118569558841930981788534541218066024041240210271287637347424846059173441044090230058559889819095548081771679843411878812427094049023333293236921371240499940084814474041924610020235437750628859215895689433362276750125508575461154914881057529327423302368775110134932446147528962475257648911811480362298657950884929340826109335520772107433542601752366375498422518215360695647062388296874094252931106013744177557743348220914740569579772892547483101927433966972371989056944744533704356815406326936796221883423132715967240074153932549024444190101465249960805222302361247240786283801847970035846902673926242493121722607543519163349495524054144254560524930555480920018955650006547361722160156695154501456305639598877921260871756871202425210482344147658560538392799138094576358330664970949232201169788816907447723325969919874563036942887729638488365247812317708722061729583595295312894087249622143715912505159527022273400661613593678626771683158910009674787294632591827990166805661220260219779253028315720663049848495640955815220655722521325813776419000565168593088961761699637274328940984011691419655811750866186876305199713791514617179686716860911441074501383328355926869725885180552606208984627039907941995979975354227477876288461246298607395694696861591679585384730624848774323154465417477826902321006275065946622312723487845745860630541118405340639920001657231340819583681192827729173343798448709823757994920279329693299622689957374674830671625871159947458109151408478942260432745080349928621379048654490885075517329815838882020789065223355578809607739915590623293584049098410522753976494991571706586512031551123087259626395240696702123505528782233242156612106700040457410018920359898872075461988512000848494582084431999840269206209322347913999108176033865777937368001086410627345412378585915781380759077664173620935918806482745686473323884672103869945118198484488947537587089876838602869660915734293293248557738033901133287974835069970286262881571344587861708663861034397019426223996099232896234324608909039683470348317007428717100696742118400671177965797802530038960198841611297713792901131409093761795087342679214774238136610855610806526987819637373227123820979082631725455648217950368536207996425478040169733727674552040539180785629242151449345584934311620214290262609622185313930281717181561180485192483352688742123827410863313183421162251852644738748806519172690173367055239811021059537659054486978579858403371982201317725473048355780042462327950840033296958228333971012812997163686373520299829012577980954330434553406253317718967478458791845632493763227578954775981093771464388873918409024575068182445825055692281399525676082305380770403455034172034683148545323355266401259388276494000852154510897780468435866756245944773255541669812952945327406949350115388699991457090919043316201435558124613735156382226968321287473235654288273346550224987449950533628377954259395746397797751627332461012893456883923857961983621993836530997856139553234036585394288878734515502635299255372419790159597797690212222165907921806857436046359130284071755084003219895095766986741085999611076373845198955426369870135308918610990087304381883375768986198474346904417163495364013582849369795430843006391432824122072403523420149742823086293551221838221945650390817570882245911837739693023682248422246163969121215258727963697766878586331964884578281648122415769962896861219617176773300438474477297716607548327743632748166026547585776258820627180067682722641653586233945998050363316474131385874418897823923471474065467005952884736720031706076170631391883474754005393640805613908399143805452707537264233262255987885115244932474033320393257057687511511255768835955177346216518616490301488120315058593025021512572650573418010843399665374661310575989316005494369996849298385689137203315301751208760700979654109943924838634148848369126801423348588964782128337013201046422475085999310889329283906456708402101695675073612197528778886028108108253622213056999928121340461487515519434341911519644454867832425218540685295172539163517622208526662760656082202933773530471608716103577730861643673756778717560540392045087869492981296057503823998779297501825815092370045156477483353083950532685352418136945951037699461646958824982549476759923872314059080487100819526559228768754491022370413407415384861183488499676799012280903679277644171362123475160683722867176494261346952486504467663168682884972328962395209686513372884888178661969462761666204548803758567398917091488311284056722998871122887877907298878047970329986201040693981089946295910738613448560802966843782165668016800585244123092513023073924168194565517649315708024854432889502452784681906998958687344377742790599787686408196446333998897107072087889966733040714363078359925631991048183925936245447020356457335852229425616456201656422133821116135672582439791490714385725262702840840430897246570078821642647949636479980868289120901600391140780341691723589760602265942183520357737272267779443052284457369866113168160777831237253302591986262349736873476381893515050959784872741782418622416732140236744409797058259190562013989805203439578684449328300448504664570941701236934374794324643514068494688825556704987863684589512993538101986917794361093460049295573467358263634920571019240062347670221437270886961448416909601457342557751763172495604423225594063398886110415237099586216121955737659943008730362173735035402366156549667235658019960091749463807316874346276970843141510031837662922857111523880399034942038320154113432000241941034632297534378630834981789864369486274284264016465182092748490788353794543891521023662454246981898034201476385280926845954357624362178360996046054792877638535545357630799953342938272390999834878095455877582325877231931548357226962355516571234964637814236172035376312219147408092641885709800119572633827537805562876921346874926131650698737113371906429935617634928254568673284929391256029481939381840982753850668557828434270574179668488820041214952704192480164363912925516209216674558925415331401760038484642672406274796428935571290645149218221689591570160660826445453719237986805416494007225471756521137093528210004589166608625202677047309212618426392300887139586843326596045645385389472864927696985947594978102092885090392052986798940662074438325650298230638955575299579408213278910709907609590672011587875119722207211838592287082724850565681521790498714480571460143413468437170456350423629904402877039565107795648933046153093710044676588760946935935134518020281733832014461809843749233297015857044071647703177123519234708884474937759212423361926931081599031572231644052314717833496616057699117592970695535193048848568431566637783730759253333262661026105516652165050719577152282407358191804588889127606221402123240075430312353379965940045923233804890913110996887009570678168519944571089346645176269102948093667447547945643831799312403695728292001689569253516817420946272820234207608201045894354225595965483708092921935628648766743275982117021667778320165088127382795124031102551347423099005525340616799765804612662673296342321989239942169538368385741451708123814348276354448369101439945848211202123538437996897447306430589783837147023553439229224133943699127688205613330408771418612572423697784626467341170740697358851450670041508293217730522976718524465354244080666913176602424655206214804967095598854833425825529844442712559685390106017130628518222668849089481000475574116107215370132178810662624274129022098684471229347326898823408621976295277093997481504684072284417884654905651981259722811056238478667417296014974346479703818507908810173756100676682223812789876805361380329652191628349943507757111621969565695337440516329343962071755772121033111912279294726382422265313243186469349871502879043520275271881282918371495620455874916962568303610689125701414719951958967039195589758899992383196783585053124127776876094265817020600999986903963368478639251550327608702298367830175108106239332882182792170310105512138329962837149423244271390490637579412269226246641185836385315937657019530940326467120002327952748860437590368742950283706802414444616907523617072606672025351328228451743033844924895303806508058758066186445101165814134146147083870506205277862839029629144637101206615648105455205227266720918320640743022882958533736817756570427561056235550454353945073696506603508157559334022280381189594708485700967025007064785307491994103748084566641271985639691953863694919890086104797766379557000816025778133914961350405992743249775887204505141570994789624690906290836059533046568107726732195392957936148723172121965529276414390380025742639241892673541333635443391021470192886977284808462600840396658842569330739612847174012575844736466410326132439680234108742606550961102854231795722208496118717525565496532422202317100726976752751976811045716097883121796143920022172603003997159806053017326430013436040249918601454496859640130879530608074652980576613500321573685908518960460831715803772505332194302416529009124599954549602648853313271316145423827204198193920508269830579685175109663820224454809408885893550823085345231515037633283746620762270718755681074035644285368415283128807640784609745081972440131432672161664513201445055149052809653482651404809867077093367416337945126546378202090835003632048518384551169835527235851069110154542689981846002827296019125267926800104479904268039403940305279870625426083975520600573178695750538880469672735523606201139131330337060240767053446257155209487729095601238337089321838772028150739182100302265050868056753260562339431785152090061570309374657821253702128054643700637754356743933297041500424167099304839749481010736869873972874708804040529250531914203057717724201651335043658624581013412897399461640255243611045885431193843624393853265354184230625890054222098659199637805598961795131354589122455383543660021228129210821785111773735869440123729140956779506336382113635152531010003563153449218545827502135439016808630863043095786127360210786748659941460447849937191294766086385976336479216760848504075589024539865742927144067007208867689377591898661122135358219573277563694878582308922457648932645201422360711230840934135577810156379798546621037295567191440305762627285498075416528121939600104681178493988596566205702538339158028735259890581020365917874099425970908381761881313473515542240084820318492538107032923748776003322794690398074675796337533097479407518736007973764369705026042168915101786557174851804225823895581496547850585920238371157347077671410673207962147904349995074832213391756937418326999557605762456731262059411750451400386340084254092154892637710554213166042547010809450045701698745948778311295738345386770295889150788273567807798412931638849988747106726875452162485969045445548722962864580211606280734804672036859099133609489835581477787343012719514172378099279045494438877566713266816819583352673198498431865986100432790924970658965856562174563229643421934321652388885100199251634219872619451763281939513405932532723474270983951823452767671999887945772032975438305554962361292191041066489518829331533284072783339324721755476992582604120619791630793825894886361624256288219974706670766096433084171275924101394138510163090522266289829331349291993858497129151402780143115345271813196883626142970454523768389374668047522451591983183074424454318361140970604106448807679372235352891524316595652026893666055503571189596209597529547655619896015123170139074979183391651739587369894520112462407112549316903578636317645287448312830116291039148773703100254297000736596887097113724919579086426634565653873015452234875430445847548246668165383333984821721441161559048158444812138517825067647985221363992859083816923785503391990886662255262195155018022417903962532608217530110834589565223543363674908755570673302558422882124624626625086010635950966743924139156181733881194937703686389938629282834409742467411466013701323434717131013144489996581088576141517349389647096794254426057925695281273052479852626961497122208175630641479475163793128953320678681455755842175163386118656242753751543300532412250531809915401641524659406822070184474139561192321513250171647985528137148457079090934115688677228520989884392932886594528445416896123419519957618373584523965414992441261198625637763565138440656941545225156169753821811471348546393646332449995255265549360584785425377444997570429813955758987836099472527989749553399065264152486475974881163843737213987452493107008096650785190262339189575887759510320746090614519543966303654751124216185697860388141811561529407076159315261276811325650184822214258997236257472217550299552729935309837217323148341525832944984860854491709671574467678535842880186260947217273177765287359288820841174392449443248660769941390372213190186701119133297756424734327666017104217880298260896025935446081025462566299325999835888070216926384690065500710305906470343343302557076152027969964832775140576973551084583408046019650989837778390528741082268992123418297693617636031633072418512160885267122942443821752474147856439251135380750493687517429483767691123638301633263035501541979777303774637161975248830773616829070560428084353577396124282185783906979734124108590124718984606706457198971713055542612543530175114900734318062522114227913575963754528613288004918795676286790822683944171533861454044408412349617908149189467474750707810890727892099435520103733172920341637092161734413765921240255131944102094921616058958818081896826779690888298134923025653490210072895678017114856240723055542515534635327374760919057539969844145301735465188891389628924596389277579067950584034260098392543298041189901814595324569828251471249804093504265264669295411580195280196205937774344074729709354939300626531418094733351372368360600251306367739153488980355087021956429259188135884524387425733269179470598500690352644312856974806316380356989737562565059102240970882197301964122752784597111257555795762963991597393203500735626737218513560226466540335792940734258629031076726110684099312021435493750154682178655273841253566557942765051452965701007124592990787180479092134440346329838636136090109034505308733951188052765056841213857764853798500353525429587101975063689112732166091468079952731843392081882081760723560037100995035071047261080617120026309132682201368725759635543603016419428770269978322116307654174931559768563576936684582890523293878938631628399152686942637886651186253538769202387433613578560644782598605097635746408147988608460910347526645856192468871068708114884628911412515669578103344209443307692383876381546198191015992567229138795405015634902136438301638241362010529571370507011345338811887107027543059206323036786494111676521275352041862935274725621459298389393095409163883010532510741073460721171559964943654040330340142619168873815612827090944742190367067893254696010501829268913129258409806657943098628965015071988896647280635697479877859703008251628373942706263275389567584012860351487609213332808239551594965345195705315220927714025458053683517968004024088604111673624526505298740361407177897435481551883391042218654084437022017777226607714014810652009681248617018221325382511834897789135188329794183728843499072273908480918630999436779766608585462224100162406811243744580197981950368975213697450611338973338983914226287248284071813268918781767403644359633425875621922372529867229701379031911669269463267712460842382756209609101234837069784168438984276622297109068875576219989026575918966723134384726739134344629834206623460631103491775532645155564588367102096511934558827789863022325966531601972088331721390800741486330219182308949583136950294785550748781328009509880938570452594957709300093650115427945088995984613746533469092282028232415534603116225462468118807260264196737093748505173621119809015815462619432504740165728101597072543425354232206934214747010152213830185900868474397693125102340212357442135787472805894881598360458511518078040936600419532647868546448540496249516657669751876179711703759734858919946420465878670017841770185240241340662750617055002114510172286440729104179188296105755957508292662345386973635606358878934283610963595237895932972529014563941563863809330835578693745542820000953403554253628196943224372648125160269756426719267777635187705995804702597313647349909308679813632986869976021358997887794267458235102952162910161347220028660747405458714645325827219381713981398088800562289359292918771784054115918088429524229160143973193594599208885528880317890962314413708186126717090861018876245433264643634912128239450560387743791702050726419269386084313642239587565351218960878004989667091450042120683401976526785692993160674877672105571480608897998950922801919157782590479117840488575356926670024634501293225427344433799327276412363781935015607503310211191661897432606501331448748296774848090406724127693246767686897925087259253426695806861065141153679625916111331497110797421125971572937912029503280740537526477656023206288384510236038145276415403694611596230337419082648404799989192992952496705026811405956014509705836391759866746493924115751805341493263563279565291977805332366836657175518671172803958576714494321331365852416089327634436456321181729759214006043049953749736502588794981573856344689210676691314689926403434305169811759220878864193917455955378411287663982532067680354929744637365876466833113329239134234756135724065286004953921514428711399297239957260464663488578365776782203660168208015756736990204218073761698279968409994035576238857639450009384548644841075356751474945712731695508417953501422886932855862164325270245129897982891379748683247173862558718767800350899504614874861050871092699773309108529918116026757373548075923202421484963517980313890300099621883159520689649437225964887035149795255002323397700599266511493276514302155024952258945574481456511574049640795973434061850171553083279326355649410032491734845274251210203348746144849675300405940432428143586862614546189834500585077869120373806570671948010456199561238906093594772846368723246185395122923393611299296448490461982324983668079840020331383071718206361806071463302251062596325506370252710175581832255318507156057489796832200261567235708972493497931990928654738238818282651256972574756011614754624102307010046597763349131436261491384618466113770405326759766285505250223303799727698181802063604566170224585783819161860562906935940612012388157082406911302830391478989023746279371603243699636551604386662047360979711261810245444118005073218921403807382503728184255191709910811122004845260527870290004732429070229995200304317832111409040922632017052448684371760071800639662883959938533138463119364145534715518316041243872119263763526083818924529152304706220108796488615946532541542407254618638546132730113488823900222980369008188240317777486553052073977361570218515486665105935001332591717523018380131200590790854217787592238888304698114002134368656002232375802832365799460835831430715494971426034978742497185800745810734313795515254301592164077780089806124670321793900141174736690450227220343632154350903957327715011128443971199162934551112472603192386486555401523154190834139547341941965507321015619258875846409116737377599265471401513976226727769479495714361583840698031592456372127402039388259314613015797681347145767650386522623136232612493142562206827610176558312662136877127449993048576922513987169591115372564947734197127237093091810136299964474496905151360919725148686097532572245614476166031599063198443728654392352885010281790057213284621949869248529050779385576429730946129023017245030464832712694506183542954704811973359140737243297138705176260600250869984575396711930141136811932603469128413254104172259280647295083298269717843508552212426494903011484124170445892821517412167418250874564379654494351512841281414474409772271636512306165157456852249849177205901473117783782083701022000893907949546307384601073173981506728252059306284415998391491860005030686501634034177748184813488880220995834442730007699014353932543351801837738783421074511114076451600269078817165084773957569762693836322545551499298055687929031159228035691856282746569991281072025379939429853788715639896318641512289467192121301862132284768251337033094553103174859249323026339235033223202123392727844409537505378140103210772870974613757392849639801833336035621766541789359545070961996125927049744120845391766677190119922625398297100154210124404917494370035704217238553237383850862498311043078756545644952955809699664691023187195022537961088087494811533389287596016722524750786097553192982038406445197283472468863577038571725721297192150744931393793375042669503753668537744642758983528214020340534440061563478354516765902264411421298662228580728297169726752400434046707520395387977363800271382931282440400453570214095977105260537344201321380917134663139432181271203278751486215779845856114257126654587807058222052786679508346579681116955528069759193317107888523518354701926676016430387198089142634313368220169007933569984761794528063157964069630873923131216724764125202373194906489354634473713375063429882153910863166275739227533528835939562490030246721794825250576332822586458514981120432369534716762807672962353488390562076085757672428976682930792661055524694707518609094659433714994591661319075529259788176935798848689541455733437185477260778891893507571126299450769887716769786280476197702782199284994071253783113189935005869574342582345119685676417343120916976517525992918772334855967292118615722404048338983919540387185601327862158418440716891547238995819384787380499695249099862121494255535445384609915515589125373953137273644417002992343246173165873342492528455674793488466022909262345071284920679054441377892626417559021934404713749478724100624818505637059581328655034769574371299800568703864363744152811473532982248356388731694709059944113325902182816293908310602058233161380285271609659174982218898320692763285020054679532460741476080795415799472518890057097680433544183390587391641738075188716100895179458651626996190643689983702867044403322200411774617075512162301364650070568236021581247027634524495011038921219701155759114287071964500322124437284982403659155094876220286508950692159098525246877625587846111017354141028737751564308678416704965677039527920092799171746721670683467256665618379418373544119789032873593256640942611131990434566271046860726028552021942823069191664599085757874489556235053484786715776795698589028870611624427233898758945247664631321440246374118774932252177589954288552633101228198056142188158226249501244565941812359280082397106580835913317377847452620761000426398092873200425618070508307304898185076975211094768071106155297458085890172106522925503912808250219529334648371070463806735261903461603794046239983025491911472961389320856921612980517416369101545389493485312509702271541844106497884540810567463689526456681802389755211195376699504624165945293059340385514810027719403311074858409122778004682151779000302910824180886108872414215729597022256357793630311744075952215545795358954258767241879975748658434823747205348872992260248072054023550183873983593917556308779088181774135284775496395695471018254094786894395654190577594736063198348136011742649765004769624580557967743115596358780827336194449942222548739684711554045251484131507293543939023600216840483735966547233397986951047436138655398504573998682472380665892276681277830147226693444519954446431202224273074327765308602989305747825668166902995244649290629162022886065233476043120375377818695571563797643493784814583767201789524764040570919059128663267420931323272485141428270985226744791219263035976006283650427929453036575703660276773263244145361205476531606382609551663043102781562729352573498077699915226937457232772198585671593155058386615192788748652301387176375141276796931764209387353114704999484368978045955920080142997350264876440405767558364542129974180565592164643474412976658637040737311710084660606136554520763737272347353694072188934960929127467178856310877133395413215574599397895297402564091596713708828071583424180936693151228745553597011897796630547520360925444107266697732238018673717284961454234095000302596020504615686264832078626768860015489889058089861382998067668496727280665533524086744567666659532616126428398117231882948802747447834338078417154192141626282082985033561471962587222597408876834691380098017283849498126677417050688517867904469556072116219523097602848954762288774294396885153483892087120578403006438770936350773333015136285121817186773599773625455963818190300305665062391038175068897044247555777944811086091982752542890301668964311094212708806929778456567956153431379800425413004003375874883787510944810402496766906442921012352801156670705110452124553543558729365345030085763577503827007670893693817209432233327791156373251063612340277298911659075263767116463585973206702320380677334477208195327358673952352980775245236934220937371861035706964847458267786167472493622611826031926878495086993971363628490309519708273221905609276873493868151633152558318810281285051306175598904055508784079618092665026408453129995182775247383485514182462046827165969793644520524877529299827667333899535438918332688663358427400218392226087602850911587600794608586237518072141715304456390319529678640295189120463035358753187796860432240703171524835884203273145942435175996817276027039735520935104808453678883366307440616205801424417154853194580444069114279350988150108750200713379070099399866799904161434627088825226329516400093486544804608038530640693344499931104734862527803160013236574793297772017047261453009811650059043169638041943315405018065296543616448291479699513436838827000872880859795944140669778377591115152076266879142750698155525796711169164622369602156848331528348185455989571236831560817660084797223731479960231145143087512830480838563114210247197868506547792119649247037282652082895997104882618564510122137557417954848845919397367070370510294847818977534910469893431267083717553887726757933612478574388597666478212280508266668424605696395666243889774322946888739695324547822103195027574758353570503828848122687078447627725015372494077523983764195094530617733060941666038734356759139528710658868267668635082026113818012035157700074652240359842970608893487317905240032279037142576082489376840298513342784836060379645183337837816139766049935827094337198732051055867254123137290207330868870927408629757979422396351620843888255259091097349040443973687175875772733747278771889515790141646643227236826785735831002577459253675517504623715701064325534783848367089150915443452869227607829823261218149388721856235528089720982512227727690962304670743989685126290553750275361035459903264423130630457069175112859542243587932171442469627604563770235933861943145273926092045614936077782430708533359730268902302193025686357434157552208691305418656031472708296106092637451663561890144802978049135168591819220364172802512752454548572560960562761731255753433341002426442456498782303798733671248349957779080961665167196639003151830902458946867738767606217033491472583570346567434552463369801132889386715795589611534371716217566726162113295027695385759817123992701131853647769722735379108129336841869877948724483612561875251193188262825753548002860744942335409371826736502770444745237517319418340195220736852194467608648102990143777307634900471893579940167805012505492201499615237269883576775953598870576012311593436891908892161144692060073036849246280753580959150355806746262823688524382314110618955152081461276768160602823308046375364502491580602308253940165876306502943394634960666730459216676306724306648194689717877704527723685891789601450556482845004670050467609964652519565085363493181317362304371517411953328422246882282908554141184443127041081344807730237009776802267030239471209131368172452485085673749725632873218975914027015592831155936260645088343719063120063412025213386016782870333643174571952587382530842005713760533893857818083629382333102810085872606768845645752258477503810236820294449410718747139956992186560297286350485431978742476241270504567065650577176792620857988016704763114162174625582543238051976108441355466347523871858730545107588491874161002303250791452309313530533109611986790019817256356393788882963148558838314094034878716358882438672211512779694470248175097483278466150307946980494255102824759794734544141434000895940032169959455383385683229170281357792486871716972531641300313174149626883539615979343033114117463051694832684583011796235220215689261359214836000164122167444901308060007447131446658904329015768067635273968844507002401145330261477531040898585144189529732894024249272599127755668740450082712491249980580316274253988441920491085391557230376537872597848010863940049017005981983906942152745109847972190394455091759530260651032774372871369408493489451642637951363516490911574237164779218481270678194991830199848414597588779883693260572009216289615824142750629530304490821139575188931666531871754610817597965048941392678923157107179554968282102761198844318785150168977164224229424667746467427130521591367459442343019097652541792382038013818824808704410648238814726569592832284713635560113295912782384783724290923433422542240308507448865101360432955037414984328546349533278772753287052053609199402388076645230166077018264530639238213842544158863566224004391224140860773721598385119133714276035270250907712573877983909423427491291576590715031795953227124904796663374798016393641268979181078343242432454929522422758351291411397589061927390751786262415272343276813086302204530276018007715197712592737879788417160904947086993247060837400467410118624959286673879345685588424559610916391096862786303879544719908119695567685491205201143574680431319931649729826007613188968549215395971784834127253715759181355575605439704905464032658891820922831579865484997068040770245616770617244092469493672126976946736200553623130519293212553781283638744673201207283473080568221294153654389429806666606906918407641741334224895139554333453513517448256789587554624348566742962363523425729275282274129841120656114356111613146428984880370957904804886072592679412741664779337332635689845376819823827123410643208691927300188426842968561085080925347477315923151558650960492053314845446960225726752644782067415213960504629272494815896337682649110310833458011272479927929925089829624726296807992891705997446747727058555801296612404418590732298020591052461075820948862927233380624715711873098300866085795206843033165971591036597668069428056894120337039013444183889218042985287279645425088151838502654260180326089259826522385731945489385041962150730794976883174415719667235320334267163095100242094490316447350132656035175709014295093465386588399323427552549705847881611894759647390386193879174474618687602093453740219050965703356438124623367000004569993841013443273573296508483049553640538089530186479448590967434945062924885032025907070902082354684972569416115148856245085245453316111852270687553932937401740108127494536264779103113522241371370722264668999737524786671878184560143014589622213578942016294255086564943837996967519830474135217516321367477298005290160356629420965430085566327887508855379890422214265189365927024027380873822329707497652806715358030769733903962995615458513669871554679227181219859685122194618577984860055599130644013740541146048081314149112362349661522161997015968498112049744089251799946617711366430177094739874454593736188980879342634667972760952817674784391103287670100679523922843757441174278447232306145110671919088407306422724240536191772497277230044440287398756405569752882272999581232910705363927143346566051098225473261976953580356956713477538514670650761334092382273176114748391204193756592834258554271819706095866032396668992362703519332652464745259748954255075854807419779747611396525892530314687926403911963828476005536426738683483674268627305845789168744383093566285282427414070736913357681034596944921637283217488184460414868039543662818332798187531506804447481498131959487840532719198479349444655865805369261619123292871512545465269035465488497326811990820583502929513119223869768307670318544779527911107974424053746995031891474701212261194445029816477518771173968512478371106415260376462847017041059811026654606621305974495272866839486152466163066564102478985086232658992604761229133743128599235738345978777502576779978623553564858595729672518275875995305413698776898608592550093595178642963777237209426183030433828963678195107829132921062668089558633103381649480938989605033041288630776821922657433649936975420671676907958428554332703095290938026226609579355272233656216729974970687877885280695621264832572096477299119426051965560206652990463582528375674349923566160548633404409629337531216037248830820913450339297535166432953437484586611709432482735561169271120353363522965284934259883121108310908556070063172336785769760526964447256267708576634759245735542980743247721517620680536729800858878609536481177285624549759755495351306814861467319049327060407066892687864877601390672207579797286323758175244264874557792809613779155026466780101609170339084450993796526117420576556319173621610385614745229098508755021712293139547425766984312382936956550564583501342133510330570449473999919854587102032734965671126470096300386225916849465147242419597007604575303316705083095863406119706466843748642429746569207314720995157453979971944177728828272236522060490685307472639137496141457512229340147075474328919509692238181241859395847712895796207570939740548103027097447548936663387004108592370259149385266736436444745054954611483423916156290224251837360853943690240473608121198221818621495148564206980012838093137839929460906875331358025568308791731719432024785035542842569455158870247459386338212071402539370201202468170417520914359602696969477379841312716729512067009655669795166933165319928069150022779931242823693263017605757023258757415770210932385523551187845467684356284212512854147867496744688782820132844917333960126778926924042649158774464661122109145586963573997880774345709469369324106942773878648696294637955291772538893226237491907328159471413717307043543168049349475387376834278001628264230522066855154914101175423960120587053764361969111980163314052309627042864667621230127090348015329125987989864544386256251643102907090916102247910851026996003638227197452967972899372890034711118786403554897237027391906027934245837454998045190185273873390805424587477330121387053623971525659089864884837313870467678403897390415024489212212129630430380197895062822759343109426162601240676798314515034576943991680975462253277550969283811871812594759193804605327820291794796294125817889606985614598754766362293215869364182955980467604765481603708409419113947731012892619553040777446545128242121347054246123077785259859093795601407615662589075109658171982154234398636186910627983370530670675681683107523097405009232376108925064356689105025594604581281817949990349040768747278016201781494914323934178222028900248597202091831369722054777139461173268192758191454397673016346979049299779650775029770594366730831100750861220068950529627401968048038943042366054040738008083649562491239015337052610036954445921593452254598529850591076044262534705074369449926102746954032690840130714145162405785392599497979319577298726831768465589863129226388016695084988558509672997953254846090199002671753310396240772035761049060855780171673704928339302136911691535609030297504419712329901806817646543971757060730806128160374367334024998448921784427298975638558801521187913591642084510314327727775299065737102304833113992904455586295933670920878987448348879308537640727395968572470651467599368859628458373009396459465527891341147734522680834367455863987644155906063923471452029737767406725535209065891869743107290150233537703409581191302210148916265158191493199849017048765496722552633350914345349030727660644560880818734907888365062674180781628818398186459066154009126680686148245225546720209633522023165653435971188349752575301001889830661501284830127375416612747696478492406225589432656439360584789775737936713868625097624067160775176819138949800313953236031235343447779858206941547806388254803492716470342847320599570902258781199308570074588642551573172169250373318792258200025395720082549265513746745402167567519627241501838263589652217048049315263843491359065695260696821113590589976625826282738211220026849597709117624093244162719604718290139680027116813883049654155211404753713629650476946601543105447479523133579506314904594016361616115710288662143899748687473844621231436907457562838820229397308487907813918751788382135876110391895186554022109563690731160996834851927656579566749388373289631392765358963126134034853442239764029596031889915928673678802191267105921776573631851725635242568200553368659117297995124156793762829819385164129542690484401719667330843716145672349612882746408223357802521838609947775435842822075221449310112033233240218951306425291918257168145073569554579026474732851919996022121379572409855214568662761982958129185569198534036720859641965847952709614968487853611847559053377792009480608708308894221268509135854765867445943211432014841410247078537531181567343101991550730770041295002147223878059608184063253201126951523751692548903378293260503196325457635234439792055100491170576020472089855457521101936916235261180546012201176533610947348216616883950145741485029694469968024201868597535761011377585191184641715271171767361245343312868822097581273468839563204287141151771709369519681743230037895082117787651677206226467816699997876003314271580278168534654040543253307113154413084348701785219084169193665058708578020356550589100519422884592165971899616625551189825407914987632490741733238114523060465455292632281914873996048623283482576189843139398457087910570006664996173955881853316150182918822799956922230799055715663382195727195244358835167245215046250812659728569271101790673135643223274727738609264921758157247178259781111185308679940216867587567113050963532162551351838914000893426862441395451657337857010460435472682427792333400530839620805120717549065623753756483633724317847578329911213101556631160659340008896940819572276867416531358183106302237652600959719398197139325480804764024842186672312741301478483948585896565502168374088078330512723724234731507095524751131772457377986608964230259406888463408078709298156776640098531711893486736472078752784452774282312439319587523176484736863321902150805299403676614095237262995622634892322245266172597387079101798777780360717543584201012623622107778547004481024956632579707322829008781780984992240068337955054124100672768401448553218942415800621927801467511042198446644689599747327368402090009163656810266634027562482609273259800408704490440371411639888804529871064748354364442370467636018204140471956200027316117915783236276718143251714137473232633251063086616296779995737171606935028348652427766571281209883911126000554513568784326754525919890475881926340033040855053251057663639945856735247555003874889490900815501976648411134356771095825151069010608777361603263661855514062969099648791035015889228799657179229714042710455414610606692951260198302233036000144715786690573574461412819465451307108480833031155601958909601728172202957821385917222595478948799764691890144592806638794081106729793504480164104685166140080478602514936525704871917649323221942615388975842129527902403473952261288362900693085636831523768168455739836270106598187446368626635392411155021286833228933402817808626288158731041575531744542594881141360385523009608964185391784946454194656063805798752981746096256619694527644537437495337945766687582921948195455773029052575340453088364385301636470904886868893769939927015650826440472856750122379077447925922556566043152036662687548965650861067002564314179100586493178299234917732989595596998805117311766432807566701983955899201855493332996421580862831000387127949469399964845391311938795543987648163492004405789882572506006808835580412851817793073439968979783644428240040439931901949099883212611845909127032877240057401811547065403984468843846881706261264601592404614982071531595835263951502141927297922286991200407185391841457641214591959216061940928594672641646863072827378083347658921148575622099271256791471692718938582609149095131295859344515110637053893828057179483288730149828125173967063724318049476176283714620772964962430505778333372939539639672653533177958287491215800940109030843652420944307474638636709856990407650410868929530179683007007823572865324586628876152982583426452508027257697071753717303872183618275828767668356004970930226329910470249324654293108605234317881800899238836906118736008525353806465524406319470975154558588336614469508024268119716585508198748216067291354525119719600846603731541137018516107472084359310373693339479455762481392368396609116629985473272373923289187400574741857262924349653742372586186477889127303491502368722789044839337114466016092315717670196401264608047785834500183421716696381651944806357881090389986745056895543296904681617328281186687640351260429017773235614162639270646593620882657485345796354026878502901049761245399808059255759756094270270456355709049345750632381928318332665354285684737601715076852739968485878534952364516398357005240973122778000156840740865349312949276174384554840922079022192577508116558187131557468585230386905320343246740908424727056372958134584019248545254565297189749476755171519610498234473767184162221496532246719478865963733849309625606790073275749874633166144441562571822772336304929136576934883822915599264998878250712002244637787548952767971548218755618488624527181851352487909059674172641669702431514349368678633725765947227501503922701472039671623318858662545036425645207214851421738517063753841093445420140209724776533669610391200092305950242331870116513648169179610973192735669447221238638526492873490252696274683051768565931815698064042330771268490323904511373277152048239070200415251659538354485912559442240419761013687907893343481115841962903697525447866676693932622281205543118127617923982635296802241548464806129852761044092475649953342616755848025071717468807947883630812461209406977413864198616872741669057010561711810167014679848690328182693819943942005231162834969404387773349169571217152309243377897373679191164595918327677929096593621907406660417034216753120514404422349355609724403753712783908724462125867278051149040017481359754931925903158066026201209054799041487306361695518784497860608005303467693686276625924032085792702594293898484953259672127712625104762223499910155625799785242328056407038524272500561205784989831271757992149513637903853097140268283392310179933576906217157740615240947770801439676473180816450292470031275393285262924920807651290389409440030646406349691997139420365601885604102820713722657609198437215816888755053384375979395769755305579316734900748619302060750413563328801582900382260896696384233763230701340628075776025649686221495153852876921643554896353926621549108433117216029705383343414047031975188520789802512434579693478841522188611589619457055416544443047795070571470971168784609943274939102809321532868540033633539349278157738362086961256475400638235650651296980963511995899334689900346724230465708574507623454751379674955522602873969592834180570743752256809718045665854825386352432946409713067052233402133039187334078822928933522236160938511355704682336393338328141197601616095057484876936245618766873743829004559817114881170687702423423046518537045673492087350339278064313069759240065491016072478677336914729768129038818377191104446234100657626668205003092368157764536990170657608813547157418014025682377486888989850422893747695267788026469980587956467538763741409810866347084936610453910267972511899193057113627825195134746097797850370036359497017679819076798551701249722012815608823684512984411080266874388064818464321818002717559911869027691813473146716241922288566474695325919556502878556068199291134329525150163195708920907185895060408810490077492101002086002826521874376369279795239964126141184606592342298964244373258396383391876642352298370020126040029519817181009176835367684147940809158024081004325005392266555195377804814137288230038705471048535291041245923740808607933247956565600156681248339569202012454192278102387208579744741919235117353036772094165694743304400250554952780147775587990919560046506024165161565958083456442409146584331141246057380771167643503592034038275700701210436373401511987924851979038777811861009454598120254572241970933006169894362427630058043726341003462913317267879932853808443069456462548133666390014464229887318399426887310845709093044095114201399733007169475808863233582521496944186043268173705559835199417545408322212305918908807261688181839252706910220383606696122202633430506808330561921311564541490526830728658389204101010539407254071969674139433111286183471962147580624633633400278436942412462991862416659927549981600550438880151953492738453196814656080669473122079617193784745075219180836280945243573564403643859691643176078437749699450581996483201619150616069301929435543227286191470040472526184673719389112154071776015020489340193401905776146044494952850804366959208339129075336635239689929326448489689354912349340877970126886704516621059992076115149925853781057482569585379557491217506255932144559007742563638250370305870856937857944623080849793889743890454580195911858866617758683842544442837666913217726267054474287182065999110084603034877608393764234366836856657193929931866842312803038327732240658846181015096026147668848574082660489224491538337974573285311189559749963368834595786950193014437084575771905497792130580676959872966361696266567382584472975986614696851614294234891792821533361422550945115152177065622645916358626960487761015397094456810195227086066942989407085813560648854638972119573626686908300227889985225140093844358482003328942855434411256520837300663344891687214055819538597042368039688006442102965569797150265556235486148521574271431105316684027430544018382848912855095638459430892402314814208329610761614946007311022702719629256682973014870070290709674430886588646431157486451294918972378561157663120201752200434084503135257427508276028282564401570038715076041560534252078883131916227021627538295907798035713834962835729052736748356329738788092040799007830457364544049320721743298283375007336362639052527496821198228315887233911007348324002149231427214507752146071563333802021053550613119411225238760064616913144957164872520763941070674409626384563823440249560954652568387187943677142453490751314250602825301650531495209710732488329895668515568503510136320498631431513360760727710396129482541278828040204635897389138530180611703560418737192242704100748859274017870231499989355520796744710256953852914990682853731749937493830571493609991302815701728938066012929339383348625229194737145062411172953173862425161970257332535281156853753600776084020403470019417634334264624284462925477972124439271804474276214081311243020935867854194087070081003056406730484356306992798024787240636508412212148390425642461066072194703776901198344521134892063332147580732667297294182432761557231299645585655475735093429867014241221243210276672263750321699439846913942831292326195690125468565412204949390087851921122432254126415592234798026748432419768477511624228555363309520354393485063981292273892778236283278770829813444795641982197660207675520321425223298764505774686593970089329531968221233453384006269218156835506430724185043344488101285375597673583184734243329753257132051301618051700414595472839364304377628794516816722255110376466722928970388695931425817525192753915875735065080370769295431863082510885280794326516384649934232827739317868496351457813220578291405667022896946044488855709663387961844604881448985993806011616765318487322554142495895989477701665258754868882183954197547280332198106025116044659890985263770674744892744969672806068374074311149666462543305512732495436041646960685921003194171011682941360533277654675209591125743580985302747461157501643135347218066641986178631666044320165991873616008129189756260585270007770733003559451242844966665353109023685008206852586155927941416681431931891853183286934787848693488247446247389629104030484865241034255782613782484306564574408418134700490378558355369585276100634393515443743441947539419370392159928110389950061214455091240656483815329947580325464041055518817514110594895769426486668929095237927454257245677766323635954880053577073059110773858670748040185414083221803347788707077211575274793663743118311311624128621958170966003854049179714812697659450840325243383957782877439208517217124031612050165395932228586807109697370396535325951337724260762175950131361411249985881217392829823563361708263893724234404186585588014458295946257622327220323774081125447877942642506670484934706138823734509081612466560210015530943832508898676654937094649937816474872925965383602240297883531974635220220353366690919612129208499111680351808068368527885596696621985141447588562882498672087253696809358882507057889054383292572325931425500407539331982835326546904899322158135386191374323321148030152957450529597568628730637664147451963688294652460467915999530798511946738249457956195255621562490908138924676481998708832384066745496501704108771723668473937720448398786673648143966165507088787056022887618619490618523249389215767394772651102828108660897914141833273989939102592526243567247995640284983905831817518386802507014680251161990573193166819841994320586714518598373361604516652618344693826171469603063497855637509325573638161540388424953376665840654863330134648822301432010219927989695861661433719576850350758742980651792680702820918010850128203587111222805474517589980059505048827695419953805061230999663456000219161441998752729584239498753596799926537897414673108261967129595112146150933835350811419887297952712338681077420893114764726821147544277271082458061429917561427520593942409694209992999018410246093242278516577010713448091532259036157448755792381224658832074849955293130087634780330144048120896210170091841522140167877298553411182660409835057111516662044201773203641804213910384115221738132024760591760069573276417385437776689544022299034666819619710619530406616834244241280542638371827582415655715935077672850572214974389106156691827643668701672685241661219592155718419533030987695575337127155441110896042750311525886055738999789021558861320029172750947069423976982060373805119667358637395411204859749650160251354919325371315957822904346467584666229407693253390693171792176753516134615985201445513730781472155053409594304352416630094580545444595675948963001876261418025354269218485046551776550668540855681153200330392662180925655843520918273537966157887126956047550948488617185844350337740150335756406888713758182222548710698881802318333196193101245447153929674910090061684913764054948484356092821991245276611885693563974795744822340729620795438393490798181795240139683654894100583312394883375182739912130727395007208263518989216374777956858482678583364522991359208782735185934182749168278000635470116798197080478629844784346600880614548301812574616519722229662438082995534400958985092213893586779452235847854481740594351731436442077782279988178721434366193613845116563292037786493695575431199645083759508068264443415377331371328218457032650172948765921291475933859041856251366796540599012418802811762476412647924366768162069260186071153277697883624315161881220774880414679602545272736445479716155284698091314162853804507478714065354558838629424889422705545375985090696918783107057938657266644008751276488163730609260232745764429291897302413552866585295281602742810828867030502000636433737013521700766867959674406956698045044780714220852734300617962671864889332121542989089087016787115827643036997349580303998552474072524247763019209018599933090217251889578680746110474280936579003976171924192071422284741781572429320556769712225328529773336290031280792580286979787323398329065385904020546542531374413932873485133087511931880269291304987007245959594819073907581021426392595682820971540024129762107321541631749335708580705656990709630660320086585447496632454244813968325804984826041201819017712255912736025746687626860421417176467457514759964146276119533751408290031817934069388798607960326866213402248724425095018839699459567299092968514494038708147877506891902063654093819454027604186214093733779815051664077201843682379363154502024278768832307088027700900566456823281267456759926580926239891850218400422710933667152030488590336238246236213426409726134303820683459340867956181062289312329093878581406306577252657117668932220816727377617036300514685195789424738906864211891351085857217047460448374695773699091807189397105985051430547554499517628278240378964158021691174603565288558300535497559937658721890446509915526776124442796369583457606291023197601829691721205253829993246406664491242307002412435925449424593181005358888297554259059295504231626145469050987780057680593000471903191126348527822862531322250506124958850521978938464184696660520159829514194839045111184387680599338559338972388049696543487425545003994111471138060579937963941316202139292454270603872864602691035082413947095072637562168234403379819207113198820915972253618477970073909946209891745622451205174491948008795502616578068640072553767183585088790419921790240339009461600275274069553849896990519529363398550015976130295869845397459330877608395400671965041025959322078687862842502145809731473443749936197884620559130589542114462516293049563098130051218728265235976522258897212473133493357646307169771214853002208731087005138126657239808572358644805582135897612646790493677785640816416040850753182194632520169322418960357312007484921212560448971902405754180625745097455800773811706336379877078137710103582239241453537257076960211138081645427716959702428321692904961339388430610977027886994375907463144959609755690760905063603779296577425377491897328528929688977623643359935602200511423977865027749110426971609788658087892221511629305684833023251929327914485334122813068196339353713550844120713467636467724272617603012566612138226908041838243145392488876965790853873103059167743358394542273211856552692000082247940186558957054221271756780969278165776703356761426133448104655615966128425733822968538106237733144522162570725952073455570384403495103599969719543295379007080310387658994482424229294736577244028826518512876427267604201662623337577326184112666305394661612184417899627064943306085879689291856781114869097692180489994072195966012381003393323641001635000802961844632198027365463321645844660034208778501066285781528998206762032128595645049624578372665100604324874128587459322252848632051368879883181156251949837892784584828616622132401998524197701143532937416223011835954546414199807208076354002619836378296188857416881444474394660351711105325719928263951234531782109937734403141272889078615671636277016237596259291548846590503497077789208441174443426770949725683652392875959114683074077313488003226441260690792704676806012153935529143925557158243296287760924507235801581765101140926029218435475583805513879129628225833103622302302997964655053873213752485221352834342317750732112830404972674251085272520197379036283794208418561614395530337039458998772507315747684250632319015269301188959209770298669334330389290329485808278234106908283824624331463781445365934585870745813510657581934857582576928200180344874957224879342940407173244324965151985302743170797752950856483673512379957724558659069210402585320674076893572291710571410276515660813356894033631932387738275536695258891925920862597005532184358669532011843052495778540145510888131810788450620410660811996878757157355536715078073931734018615526793541815683736187397430365674978671415466305421148524264603007833414408299810614985396781885846217295058994979443168942712871260338401053277048211196058801770826297701472429375844965003346863544992879057078645446449098074502086356070475930591649491695401045092005091748708846830413265038565272750237087672982787252377471321348727179088413099775170224092080462444632831665186963179637125484705755743419531944314316694381787564469174200902305633465213042135394376317530264802933125250606477373646870827061282262701230060934225601284180974765458878496656878678587201863642468064836052929081832453177888409130189266120556766464294966342929368048245389227556725054963466413819656332719635994190095841586890555703488202607700219357892990044968775302581268929959589871000466890579876035761374929309304099153954015679861273378697954694443790254095278520756185325222501670918252551204502154157224487587986199449328794792057969596173002264087083351733687964843423234064469841375939318013919084621884261927843797219720686532543099743311848267709560227499686203591224650088260432946851981206521174807021224557264007803480027631205536278065680589237907253687208889729454093242254397007278452197864049082023884190630939286445827609331997029599798492727879427128904890392466146829227288826433567768405145520704534175383023017926800163225303662768756045982702418187035805795332803944404540209304040462534849622943884203177428456967168971703849553796364281083082894815368710244179458806452795880773522186164189696231331012209608445975576302797595967700053402276772966198023586865732759556586738073234187499416729830427659512847470980496701166026345326765588007949419769124704972075745251644939475168944955471413200408829006646544194510321898900348898039805492272102410197265052258511283248443660394115890741416112017731586716630726298788579654162746266766069736049937873755294184556338581182519186891958810361454721342534558575518036136306561396900406907064845872711530765749292238072260384248639080929351550510583552797714856225210972739809950794694385652721309423290012922755870089261863104684575003429550999532546032602513187494584435550212282451398651343419615277209376764278337613321255323163813732211247025334752829975782414810110222406287213820614733250522509043739651529241901568563448017755580926437061551839089022060264491332055158016064743181069007489012698289852089699137375011171026015006852684938326210932227708604936486577510823866836121458047643507416978313933171181122495383814809871429670727435191913566050179934382589240847660041969494352726412371292070651866630256277791999557690712667217970107977002499211778514343783518172765358917138906582204736020437479995099250159228776660250177034665378484835324620692752768614025580625856502042756101018077154962608421935671528070357418546632881700473497714102941832136010423533554496293657049576096313540392626807178189165449725258114054841908742655458345381708656277292211868321426697696916445122769257894240707754403729731827526164070955977342293102081446700464178087754929513993830763242534083340810692636306966491830478552455505855066131852812101785121623417265878551666526541821241151211751624158411808685446956593734369158134358224252586088647227278967420237787444782945891226912901599287362864412668548662275595388256092024340961764993526646203170502026917662083082060856925043241086728775568243904775760628569823551950707403750126084271649186225665359515096789784861353949513227571367305508714374875877212427983612734282340597208464028769112176179853654049398927726379053151302878622664920773512029748049112768603537975536234472944850254954418630208739519963047893495655441618512844713556187312445466520819644121821561517886772590859191301687892758818378003219620112886636623959349200390313635242478615033172170853414386990746303275859054582859595382943664059525855743586087466557449679163265774468751083309340604932611719298691294406737298117559020562093706679614305266843323543961162755104206126732507136216530628481983247758039168533777328440130249056675899133698026475629783781576460809800163696932225670372596579621881235845683724588134895002967624845423450843241056800073795807549496012724726252344769812567142110253808109680928011089358657840062406268528955786795644686997103000328752815605535084830811448605704293861667271511194989811900116596275103884824587216043674584044496869094895010405018408049628187453091152934930622373036727899764416524443370977951113394434381069658526418145204967216798358648026174293894823390541363376062755853724288660955344418768304015107785697648855748984600734222256069551973924915984213399946276494495980395112222595720800061059127950002859857083584388855932067889986675666330342397014834943236418185371205944371478557419819742318593533639804677033901408325405772024660015752342956927439963006573337348166470709161623562402228584954469845370687018479126816113130044021926003820107196573535566474256465395390826853660280106197463940219761701530951927381666456390756825612426185304662553981188079623387168874357530455349369659299207220699878444963511875791977582654017236050900450112387975840490898171963859840834663666262548178238204572942710574251791583739511169612287227182649385109716838843794762571322452390994274860912992014457621267973043175021613857859103092821857022445673976587365049440575241166938114691775715867352695686595856816274450004158172076017198127320958619777600538158003128177019669474866293660603256369222910638227320935217660765628725778196784824629917082428176506772085114872192333651799864021421172164715527586855695979559714966940209153412286968038709781448205388208723127865969298909467030929055440272897085915397839162697238951523477032991616392706463983846724928175322977086253159640965899133009773923447714125064409171399581599295185426058113165496562130678902005252412940873786353944703938563256620663503198271686457085635378911327037888975990096172129009604169451103889557292980411548634746162675257254253928259348540813767530114637574811632913316041300708185246895770437030018314085970003420117573179432343287846914568838361765442871043123836477204572054443751204133872616791864167675599878689488654042613234806697409204301686498000583604528960094639667039373484343355794514773782092153893921225606817785026649825035624938831642992329001090512811757179056341942689462863449072154437924174694076532184396482156972333281750665012010191944112079106355817105662352397160145982210753763491311973185047469413670211354227439447161784909942612754455135742092172949381816374874991828437318283543099257231068612079918324149015320919136607417892422903680934036324196368180051008887432805942870901364868474335568538465982861512124625968695489562523331777996000136480296765463725727384286732363457304706208625938897574642863797013223351936246406235990215290621444509356595029174817594906139181522260020171356038053786048698601120367237593183717649162287503373917075242272905369183572691425128936886422578368885225514252449366345939414496609003202865239891450065086875026436064889423761104823576414850840118697315413358125042451941406016388412333346461254507797392652697941632941486041269984065243986846043367193062287350859400985187304801762146025149330698766183378657234756431286482611615694973594852595867284628840891546678922797137521367478142056492933193006435215552745270278341912969005779687081886861597079302706599410090615290175755086042101375505829973162919567249769834633446190867857847461965329916045497170960817226807155390182240161469604540292565165043182660788129181630096284067511573629950567636371933232129142555466684130058771907802370391829552936341146906275202557790520662829637429344663727405798955711365718820287060570829434395915999069402031154311961423859256719360707599132173713554068950754150957898504919224254619880399530444029732088918245700014813886540568492778514122579716308889423115344936026403304424441942231067018347445615097056110497885265358975605338362497354945820916027992352038505057501100611726840915884603643855525459280408527133804946863616461582257214518069828424468740582545913103458860819607342390379281917761354307189649288005560201962498354803499857170743198472182355425992886244259290250205284579955988180181846733114196051988561573951000271330568116676792194431949117253198900568962220513810087954917674948528105946935747860592035945561521847421527443661514870870928213802121536751471844583011210135755080266270317041032127307327134421737369592111434189074381060021488184871981862040380149989105775536450029678328591923273038642950450807981729420141534839121299214785055657436292104419422001245245083466245635545223066747736191160837416214691122967213431326878193267686748550359322386706860138744410513566444486195910966479961751381713405974417480053364715675218408982685037692111724742178911196548615555439965825746192879739068962982152716915578376800642258336172830212053745483560531249050744413346244984627159078031365882604625342253328324804405543581515734979444018438805554765956074471355159721871919640411348696513954507859253806470851752822481403273368450256689401716386233646156436457254371382378651025744405546202749413067925545689444075525638138253888376467313793609957140342816012291186265140856603849977500603645466135883373041093053128116651766213993713936843970399215325939756209349844275352404516022185686742538881932864081146503022829551762096332200385781499366786301269723287811879572500256281451251741389720436333999214904537250051226163097138846431464696476503847108362206850837997202442318642747418050221099406795588124774705649049042504666341563882026095587447905728173375132646079107957985252536687524722522646686961099576097295901666082180301152179888341065435643158660021655585648930259124495731602290191159719155680961204346699269924876809922473374077498347553619007046201514547782491611259961570944565756257280320549715829409305359127902104377911694723791223107998545386598287032418289153823292271523262981401574191225126766532673855435891595760009176555304223253455896134914719769991070647085947082323579486085491867268028429376808104838048801748113738540320161831235476112257573399971304706806998878640952084401934492807934292252063741897270500296363249639168442611130230142733691221778779524511305768029346894346094216618868287545835758933620581809972258147703233965881674613257115997140452309732129316317749616421211371624049631277996362220082083765166389293719811260012832074177442310985857216496158260410528881419408209003470153168276095790333645893664131705757825588516095694472551960808779870432997678900515325316516503969089230765738698440873468049009041893118411321750459449355736255188702964821747810677104826818652171990161928059309164181099560613340574651285902474382761330146009017346389065314089469176408398860224457739758309174775701405644674626494265774408878807201447261170537262978920222094426952160613991413703623003270732130122119826211458305716258034547220879300296716549650937347908242843882194101203922160407970546135042620457260410259459957370329830032557953531544508739748223932816020610469311237894536015830392897349698242291897317902274941478154370754092266514350588382196408437010409282444253437492420486458889362871675628256702686611656565639931547002278887947831289095398307063056783454391020692260824888416620297027400573428733683056153704256660012629788768135477094006336010044977914799577231204797251622937946851317266126658758962396519660564562355579005391190832384312657855685890996540412333903753886222808807098658645398808709052466025976730026056846548505449765980338678073827036984348448302871981594220121147092106214197584500046557175503023202257447884414935687563553819130933042289401995572622738492573936334520504450309586360089947597705432098015285928772900915362177841529755626121987404960534443850357671499695254883552050587779549219055873878384816554885187249024866162083774198206575605117676003095270069205264411281935942873839436694724380476164930062056632087294855000508912837285556142696739761063806070526179443898812769801098084260828077150878581626626120145388084246066455834421858878298737461141229484030695642881776184416992337466928630213858196782309400487155206755960654072488868132854911477808920402103632811147846486070445720957466214528445962737726005755764293604897015627452456848687258415681780845890198545840060410790718507304503706696011978061414689837691786145733014866309617505722935600057116065675816254261598764872384882782684079760093046536323576081547044989244237256065473202160684195293908822493225174863895068085094164463973236481322659349956923007540641796336893598676126944949565019857483597294712644939173901336843859136204804382796134645023528909422726356704223992409455233313962078648829510087086991032754757288961974007407722475538726459903625413238986001375106841956565245130955198167696273334697292221924090713587040280318088176775358544314617405949410161107873503919784109332031240184903972501114215251370412766011093540775237658146280131565131239320667250405558527569992501897622850931021879880299374768032280500594044211876328594653786517188217236217396970104458378422143955607191618136145096293164012949632929506872413161816240412553817409414487771342689933838603348728517701729280351146043371454621679578928102826432306064109000726412324248507598858392768662238170174540460280233902971523121659644764824017531641671262760077726604013046793722399781803534511939252707493321284886712930716735668200679404985559792853632694739106607497537664064692151733706805729723448621982413474758752884687477827795946582486012647782440855537229261971138405907832003527670091102094295279226834783237916024505322906706778760264863122713200201402189660556713842441107889595918142409038551149765472689325751290134807305387160939673698164925179893571901414918414137583974519908757102359184539111719050513229045573735184385511578718190104313343972217176777097250464573962515170966485787307574567883095723613313759864850866772404664733890116046712417188065381485015080485752089471964024017703958456291332991944930863360116341291860252537894810981919266261714667075824921942484968891634743989641427629729711566896761643029950632852245378281366478223258223197963412148557245732647118160221242768857190211469315472656861947445223101073127814942048502771724290706980804368843935576916003510737825664090151039997576885076594638174431588913572590308914904651780061442154030250271962150555727512163650416552820783537111460288031649510391598496547673940486425492579254683224211258925100297507565470604422599197803343702494897974637808954502099668682091022742436473635687545081069246975494171995406282551367868837980909312027462643289320609034907983953957268796263268391601847216346721851321411851190730275837086723161288048818792752639478715734025713822237291965994897803574327614777054399688050534954581961705698745044271332900122344793412838327425468748965006363277061804096323610164604313032707292298360488479856338344974125712259655672161617378318888489012441778967749390914311807084673429916686926927110691713968464224501692866041507621188821515661019703383575600128926228022846935995321545191398525039788192465842728235103744671523663192701470442215955386463380104754632343641630841575798128537609564703824902862396969815935723370374950407404312954919863172058924903649527079038134587636833871243515353318164200450356308166772697297774926418430833190369174200161049959647654033978841033983390540661140511167801414918086169430386399108603956662271017931317286970472073262294877050003532498680131545056687841488079688631640616439656231448223295579090204468059865421033322818602219478494101628782509356457918630547127506329975088059445396506676003522964566024457617961128829374549639120602997424975029982288817969310419240873060570864355060420340628833393573143456811901143195740692241209633475790258802837745356379568839096571313381246098558122047875271726916649870510659109466029215290073809306291453438731902759957932724071894488985212613259027041863526977779513766489840124662472076524318120964695183292161253549443774822650945859244443880336516491713108251636157723610431465463280443977531198110358754781443516128732611221121724133975398447473000283744312533289234235701250710932231378573713349675804237220430450351351899948744396157779282014255444366146757402115266853133570582744683778378246656755763454100395913804015775020307720944516084874172786699865932773236457612655254990254855128769335652115253384028241348378489096142116549803131657961502609299152198260719963188604560610478112009385724071499149669667565005358906185857942671099230319100450380191980596639546791529438736695915626197770907326541042865053212786910910359045311770734058049609875786858229132062583822550226962965988072742766784762852610220054274651479122957368150570825796346055175136509308299088944490849477458766602120666598325562051871574169089517954000598434079543375981557594479292921647052526870287288292779916280523148103571065299567193601846532582171597297115805993790449558869201769748571621640885954864850570446083507398582122475502155516877208739544375108937208073660116502815223412798303896791792925241214155902357404534053634359204453720074383753083455205219505585649988290519246646314368130502312711045805660953011633500084528159115048913445472720696847281699351613960060831488298393330825747486757754260794270563355598144475106287812618255573137149528014622752980505237157733895417046737362291319798824649250750239187874735768480693380488668711503957166510305797978113128714155564544556404485362860007042250457706205493727036968731389174446854371410508697036428226021417917135190303825596872176092718471170782335358462186771002030258147106557300952425588877249003896403197350852017792392405198266727367380456448130140485511071564596795656214186827687261546522695198060607907777849746091655159076823174513007614053700712591239296912904573558515405546422051486779829333429078503966690997354553749988554991925457138414041820733897572968901681657336034445727849039738795958586949987672244047075507596724342584158573917942557406323032606637246899660137088650282281194496298596227619922136601674160564081199703147074447029094411156499909862440969023399996420414778152029367225745032166203458519091929918198430817588849074524743379227099759056992272659780567110553996061137210946609011429077124450383493559575591680793629990192548797699789634701256201305955078647989379381666004004552762937775041514579857324957495694880065841874516379073102665664199802642288735853183308992866172943992644873439863418066803429319252606182596408657200999738031631161847024669436959691775807391978024177313007023631207247680912949573040328535345763330280715510402967281695481106042295643527009923624875178770826299270835438135883063527760727811665567508621950728238490879149338058825864495970696536955256808835362059980927670659722512206237293906815612352169351555133313057553320188186664158123718424725228345833241060798759892780662332349889835288909821910381699161642682776055707910468141137017981498858781076317524949697541628117714459627219317691599572078340157847162452307069428176267015201331246887078773873560417548561289624668132619411216382519400491311856461843729138421752647784444794276667890391781096603817995011231403693412254627627521805012269172623133106762811044127158986409051363897763669241207981457464412611323573256443842782105364007664741425818987588613258098503070942623996804613387028831466698149629083055118679319353392245522826201198982849566603575453572322642606745219578869661132180151712365435302328524393903944661992244637735378622386063228959330643296037987461444462102158564039464269177379906128872252632080950087618843190373318942865005351923322278956687590801113282464601675763465399519083865095635058585026774002928221263319448277487821361359751605157800683199520963188470777961718524340916016037718763072279610428299357947001809049157508192750236374186216975702478039801595654512749004842494516115626865030577799008825306769150790270150822557916995624782128002971469317162082023691750629524954633627632217201352729499836602228152420385154468671433498637163393959174973894145221841282956042598543594079146604932538001724695474304496278438793283507955806855556050785052112076922899202887044672773109135652500243374827119834751945175791089989980441907592265252324490470350388904536437839457607529823819438741399875322057957200410432576863681567958701486639478133551751039075458889951267489524579806278203268767723808696276264749065661719909269663426726237664929741994366171337119935894359899390460556856941315039519654371884892024688045535636083407103907367367785028203261757591761507093511894025430867285810582391733958892756515603844176101367283492662215990719097913442214474403570265338832840882810831398783093151997250304561678512465834702293380160771652444940271167927212427035756035185621422629585054287716077532556287232649524437193304122769086432853472559515868388889362288086374816172280123454444715207195816745953441027168632216969341467128780229340762975494607801041419718695355267936454467812445869323813157190409814872151866172249038967918882546283841562591787561967608171503574894198478553071042797255392602926357447639118867438551052232754279405731983941262953326074532031388201803666552265626581429085228563831066330663956095427664483476330771800576314277288851848233540731705706608816906492256280179083599223158937081890094730949872089035657205959954825034821347640270387933804340885560066943503541499898198539459823027349171953529396454803373776503732377854473656300887929456210930563565619728861530454599977219720936693466958358953303434059873793809009668053209061146430703983572581091230643765852749823317727455003741001084562717636431917770246060456953645283818726993112716286496993697082074867067593091042311440827069483602743851981943048282349705594395671408960509193459039437406801595914489479313145073016027528580282037417632844463417216995298609786659132988554731707892831864075386585115563507541807453128527827884920599115530124307619216583614244612734390451289297323728846382940826872146511405808426025662410416035650884696175585794715886858759928245894086667202104297267620893540795456785597836780487014886050190015813997522309920739935105508253579956957556685794972002294907915711388029046123886361964207452985728870852371341155629174798780921303810712960824288017304925471575864822392701710971847981300802874723270480016623796450713402345790672494216156188959998060363294867730614746651875129082436736024987080009313986157917371685680916009354023930418018755878974150080867098959494293922327117672267639066670488636216136111476392417973474548392147196243600375612487032873565496588806038318380991381940848336506735622360808861767418351196344681086326427028387591835684224309583508456555642537129418388878480251361478772880365543265194591848887390869164460503947083216982739825360388876054933752872929484282484243925744038488194394501909826179987989673206062756386875337506464330983681350099405881825850617428516532180597521985542639282813505886301383667654828880504198789277459827161480576389406271428918710337930822689544862338484533819995605541219122236819755329461201862460363727215338755435643734183826752724510720306211881598507684312291454423530074566115776248829560048428881279805720946873296453436125069206646332756597355383669621368735902075040002952983717444456621627478046140940117825106353711520690419160952327260489783129736675137942470894189717088343116430947395088979038433968574468606721511832562342354871686037800700699010968196364215950879349010667636717467400606986642666994570912916138349551588298596385546005784784458925014089186217118262231934280155186116359644648539817826298693947164471563325564208994245126116727354046202336177526058630644515376705279545454689621984891163635362729175581730834225431465186088597810782654428877524295812923331408773871743423107922770903959043911332888901589383447814173723615201217387827030665884362917794320094626973947629462020679656114593210296928876813899880000094438936824192612446949698422451320033302889375963605363566401919980750095637401189333863901536721487267256229369398278378420765844910756616905525234409834395754199530064072896788381039041008010884940646737164278792480485793278786610674437375549442295291666496571377198420112418531316320396954496117372947719190299196886349626043815954806751603544922738280034278136650750373898712612305826190235717489238862826499085879266607060170396318835110827718161778896479586963408387721970607076836401382089840109872333542363646640501896353057592662230121757042491830566286813025241891839111483235412269901409662123841507720883025102351709638252593190802460048442626785946924780257959799466085499707932405846996989186235418433563844078470983946016499684080059609813017203196180914774862113891351338666946678646392951979901019746173396195284249888916273515231118804890141559905043461930231456503777553390198583429190320012047209128523736218305819535796410929730164193257054576920274425323977360128094847575364814527487696519123505012533415243532741774728931597254745737987665508681688538769814686911540138371406406638504487741764592908026214942564732807179896622694223971642862797225765050889617161043292910445666481258660969120432270692816088444028641788232609467825120790122080899398394578388509283333741555287680745957670715481321865898426116499183017348378821506941132528806950369798342982179904609366355623694404252712763129652170560128627799269528822009944115956043045951636067198571322970589494991732089044051722590032447337381446415021305674688484327482583220366816123551391422413188932439139863682840434885866959147176155087684726964834958169079837481469941850385441658818124715630924844481095054653758269391790554498908604292616430796573285998360422821245008153467258120081050765107687840800471841444108984793924447276859964442693944210409569298303803128032209318746312439567465215758715780395307314357099092558315686790866418604611311541989037404718850923276857557719262955905604718010179752035252084200157870139345097030524876300793577573500354248547654045862294946584857597749468911596004572244835274553169915688705930517003089601789393918487767579555005193424618506620929336362458566669341839656014171336052669472349005358830923474921125216994422691001949690333360841502862093899245765170259334734430792984202960574006660748437956366609587858116581963866029585259711035751670491104371923971842626711674074656453053365074298392989446195825826226358430763238532858152988151600183367170883582543670445436008597237280300129756454464528584227244393499758652671680954623944567937657936587286976301939117356493029838509716282845753478530968251272343268365605710572943527823537961730669591503598570510901081991891775088979184554314438798545204614160104607594783052597998804239886832777681099691138799318994543609957779349480358926528768436495519743250064536482165117540149151642525895019886069600676867151525580493541085926207001487622426707979386571125659512468867882837842949980521105661222643061444753450246061159324712033391119124230124538618148878447381905783557732746120025324831530153058754098057077375296166762309556393648705499307776419632815135578981699094265686274507838429745050115087390479502666003700420653742220841259898377572121602090415164025950418455618977398435594524521530356042589253482798610929416547940360121478918324770281391668221374586005303473671117372228363454949975248322751618098866326823262864130123246409723502724268260755093848081099237035067923590542535025409742351982097316183504599974727755459371135960761279947786595469262321354144641380182155395785336210524830030602219826043804004692637996264599435552852346378320200591825205336725350398239440451626353579189578723746053622715855130935017929540550629888585012743730978368326315179468706691573919157963477550267841786137184721681277213599438755705144156192846232981327292659486432379324002010219158246214093787058703999963563609428120967218551435818996807134197642366400401088174940566707972254190612173986322684063492629547371510343508131424589633844026759765442949761100921501246833235256897929470839527233583614148324361388632810184556067240961698438539308300304225834336202022969953765724832584062042317675781936866193434102398142752204136458133223134107880520401504970841612489328316451686353512466974657947158628317842365532908466486739379428925059845457407086389895464038238699717503247501224773862794054392438138027494672841942725260479741831804197229974983500560539575651456785560384685406566759921277647440876770636597503116152824025689859798546900836062110321723157583479450597565002316799683440234802350184116765177132998481223419669130907103645347642828381378840875366020668825274466497957190272211419344402229526318338449808404433857778856080212283054379264316698531686910601707155486054364556480653314451387648391176983900641374848305997920776699054150851989351784615366194956692908483997815313170881498884758385171294365650225956886760483221673481610821996243749777992176212479656238961861218657120009950060625876366780913725245365941782724317065737648373759935175714408025591473979620537946420885779514933386877337185388595645065778715917542671625215005911633445782742045292002558980624461664249504950287846446295860589470432986968987732506337540697544860416974889626327816515817555834650367539785272832233457276229459163187635473068369673335530883298167448363921066954159159772257314953065038338191458365512403767615212776379499067239764036026465203536912728918951222047293066862287360907297463656002501319077770741947060859363383372788038738862367024998233430547024328006259713362057019054273323278489095240233828071857652243313946179508762664130720396546127654551765160954669618435817268098379687835870887688237589754897169198899736880854860083558433328784872282043441463533004873511290475234357028809547809571669250266338119942392425798114352269178535286359561901943996983174896713786625921936128176250934700163192349210881164554490827459929529092962611610543989978899850993492065062313846371901147260228638674858386374806568575045668421077713758005611388015703470281696920808627413279530625581394046005261818148643884169221174028180718688883244376080597296004374248092441636861599337468659305296498417314448642871146519572364693928971451718549497368351464275762615146687028253986761606228995013372436283667169355055272749903585682299742718682380793886906405660055429952434023153558375931898791636386826711891325012749534671439769855631967745028054041001453868931872154538627343812531969449116850290027234850204231814585924078334591576977461386931791295125566584607181360159333034730326470418426070662397717612288430096216305829734563787235248790136282519535707822616523468219176235862256020758732700411411132320381255826208005701199509483280019576420076662777315570378437987752936556019587008393550082516513119981401884598021225568964175178881244682752663042830436198252182374505455894863923367297528194948873157816291233603373978701903552518877638072209915737546478446484555628556281994735928300719842757050485588976571549397961033407188481190296280226280561856210988525542683320555638036579279734905288155092291218628364958858692887638761441392031419068284363003921911170310197916949876513904573438263165311542588260953597131043145708394444917974013774957778733682128463958061822555515561166397372550874007010814158471217467339110653774317408957148879941130087961470884355089777464834239642936144215552531015284444974851873099687351307360258176787137283615719835561205138648495216714588847781821522134363967950288529176872417773620051550670871569532853425775578971807688555385631339452466439880656396079692666128044454048061560197556716911667629682412788375297822182263170435676237751362527250657654067717997293475168852049309336086485176885010237142311345848785654510841980877744351902869301323893447458435444084739713749871737884780190438129511707932225299823008291507883385866211083360709460254713704664042474824391819784865860767075062685675737900522838019611346018617206733192355068233734833553098876600964944608744355655753559579441667316923627177974709305535747826171366641801110698727021606855667357878162394547514136223906502140090030027095641803901166841757021394282250159330795459928172689648301521682127781375041675322730438426346442508622874161779740524034569168013025547856651354152836956288165379693866095765702508653926922979406339114130866678488206168471259989151555598654093399148497258388367659562779668930354235215552649601180808005943443597169914298058107642953130836410747985958746725277305763736243786695233435003399931210388365844299017736354290643165588746834095084477449513479985746293019228095846839756115771700450957267765807059945385414077522953174080728274458667936856591529978409702088957166553754145771694260309616994566910596722527956055044217500900731922458316103841547583820359821931847373863411537702341441263590302032691895881224717579287041926329234279253327084340863595069325320535856101189356752564280262677848009189348667066493672635387670050996219946695894278946727536416720967096382201859956362489554317376882905410737309791734506812973572802654833896962247796533916755066937028752465557645206500719701854929134484591249643167268856897452615530183288525006933238892526503828344097082164195960931311071107360813991586338047365024983595538440176180880288712733776909140416629769308215556279446449595519290293594225594882211571862691057079712957533773937115439920649446565013655484286233412157948930052059287922158494195157609884266044994871310010285513750417399277287598702398684511774523652555601387810208923656853624994081433996478126136031540437609766320823170341865409073896331388536078660126873110163623323775448596874495393832035445759694958721940240239749332696376450422318130624903428351226960244153245084287718526099148659173459146544323124413738246819428700291044331614557719907312424836871572439026380403687809894678569422811799793495474597701423211377601004006960795688980480703419222996574924642603655394624968799511275744396985472003076558296220242562028134731545514595943321722555796747507220542362065412788027881170548367316827824526812839443801901988714176709219842637415672270169264393744784608675970819170259057337511726807398925271295753490757730494184156772788403910868524465165789308593093878511240555174546885624722584298614280760309594314601351895966453369335500243787221427193473975888960959422888356808245555431003738475540462948282150543057102008074271054329594998341261397279115689231396590383192757829535814400172463697551893572868551071746204833805415012224121305503654948321117408002046222352860904795280973309987078081849255068220923083046939752419420706868553430017796148196151900228748838809829865756530394111577701559166692907109889959122483051955795428923191421851453869487916732356459000767329093124332761474015153001638060111740963381318845062904029916593600878279939278101416288440544188321552476230960262576183512922976645770829836176478548827376345915808633659249462106042184042279175976348956720901688311834237783664411881754935514580737131425756517869072479739056817100370118659862813943079919226151801307659997064225539140151256081095561526476094778050761751648537654981915632920831732774972601575917422019982381720516348446077372509238803801984058185007566321331850167151214682089592110739452708846648333603121027251184990400100679564900345292722481277249456777152883811471011207758527158625407775562183639289401322691891597230743745732537017137411437388303797229113405024677984002502185200984586914382348257875802352049416909289104327124324463141530527146803864937426103144572970457527877568210470765048312039780831809905544843867004160353152539482882627191159130067523025828638395388315955928202571881873242302692521239610199619577212424937799023750180255711868619195961195654751818426187066847917365600585044042356214706102823683763823419180526742134795464806922785530320217217707411439103310658299078542471949107106974987031639637423280610917692626582935485132914905623623110468219472140097293690936553823694361168585418852715866816067683047067262409876643147956479812531022727880250022605755289886235166392292230970378348195511870902703411091865800540691948303510032140375209086570786809113315259058845240334682708401341553928295875564667764148776236796878436634315688648030567521531616282487309864305000740001227169639780731601222200863206858800832885678755860914621069777036920552386501553660958389718131142319670628254111505984871624784391990708530503350861517854218037535969233073222035889961329452802551098488889276631879168320473844669642313031904269199000954494954673929365734640759741180135999571487274408464669957788409260221226377354687553956506353061824020342891923500478251244420894245923722656547969846855475901302240599319783750893430270873130407920645297782456604070049894549748225836895557481791659717937600412443950445011650035768555057369034747601722296050505625461919661809040233212662065605370759255647032128070405273804628706618860250664637147857244868451347030650415872264597000120618829635352815048257890333487327423119733745230155924136414297365056320991493051386197555360391662272329275890715572197410304136639929135851079201249645595015064704743116153766453048320453628528449773727573931047303332376511785436725333175848718650402732699836878533143580408353106939933694650467394308459554946918493363929580031408618528434960727507603124197654836174018321723221238835738785019084141880265190673099122037929365597059754796172140458142683247968569188213367496021816445395043689869214137121254006712710665811070020496298878138113664988583188871044018641552882181137896708007981298113418646126070023789861548083955173444885093866703200046371309856263875604261288875794984317712519829571091053267798577324163681503003050965646234497146577172170857570430012173533902236924005298700729804176674199436373851261111610616242134820055714781167464327690972393391614303981452234132299945703865971403182608492245024675283897176447613056203765798892373753778534839662053523204709000438760981514691188080150120768224590464976519495070556690013443055924408946799686981645520280334989883136463156788510471892923221575186159450301732985743162315241293916601013793225340566743185608386312490518912316001283750766646358656078255629339071868129151024459525857473136188167640985957649396123343044331253517339880300940548793044380589268659219792788203635393730991563966350610348437541683395563551720975119994493408050126120229771902699496431434045604385935492872577324902945434347406909897186980407009632177633227781157621531462564630786524116153372642729098572291347285933232261085914000793597890113854283252321905861794710606294203309991246725007329574950905781403288592565159505358138253295164225633220663557782523451626191731132521952639585137430186280711213566028926775606723074347989159178307658367553354432400400353490723691860393046358322328218993791263612246571959426682353009168701890147499011354888617307179000676854437755058489570765655533698483461558505575282676380434959975020201758111374452816444233179426098565535642660638954810855237397398519437624609279585912407881037844024922464203195975741153988705935223151346296635018921521488509902555952534111495241586052564094400446374139407057510174098854818088426814765287824319968471791085921170145681265959467035939924451572062834810682806249993762659499592061985765187375770944223659237627587439579986747520787058957026603286066270307630530962891917770327241322513039785231886572798232034348459669135730734053822693929217129381535838580805241729247955594710295653379440028551651178027855609259345912769880061155589092373993834357521878152952208382626817562914049167767041025295729603863253101298308385315154870164997307315287202224195985209434015137005553450215031680987622409018872694375447893794345108404802289108419944251491006948228509432891831486270248365413770658627855884669749032205864345916291465173860678405684545227604908767455837240251178883840869600161976080716655727912475388322472679113288720052906971476696543902293940444403504537875608715190085180521303000142978881242042504010238390678773309534290337733821508317312685130354199339033208219416986147806328038287949192926672699712270766322500042131754279942483675230729074480840042815670150574576067699301090581196879877365459105500143500132651063415521444753380143501001152739142278866384534656338484301071694696424019172350903284242062286415983864109913075884099396013408526991016136707663960704032119592333352808429711540970773639719202855728686128268227128813434165581992143901464232957331013138601994702359023487672144411573928947762418064182047586692905598386157754337783237253566857034307090522857960619937160816584491464102037066522221923622860468188026353610002204405974305715248807824116391660428401641042940680783266315066405644604672916955555694722830124842215126129552613918217412797110343216328963269880379964530327228255831446787281662901783218851447267850699498066779921654227590989006428161790107164196521834536325506619513965253126095864630561669074431402539869426193946785266126339597715040959796263927958860363875007250119352231786723922914613761348495433505998240966087298971323858653423552968704190163621105309646930422969639801609860824682027769684498312859141990750440491651824567839188986342037579775359077193414962599557334011961930138963249737889378801760807575355111901423770826471115848053544229246829146058437098330577919989785727922632404555880574546049505096474510428373815566258441768095089578962738766979961714884402377411432672662353603011687070294124667135669167411402509717089592264379774718902240355397547281873996876447348134365173510855968364344412232094194034885671172017798206840279947079560333493009783702940972416358888435050417558916291144524515473503631266339275966548817638732154237532403571167856617309593483929396135672985815522130191840624119361980710854579124494163459912408822752812244882328926638004064893906024772424096663295296100949156989426953712969666442897912362960482670164568887416534006686875149384388847061496497623901572569476339786573284434033279123050076758934705483498182794795683585949029616538830639927212505231795777626799125786485071477236685654311893806278837823329813147399930710449410550816899571369392056671992833813615492007881888807092003510933845898593807677779630763435249384966545629728298245608897331612118038832880847740719815555084669390827743065352465046546926505592147701604864991757651404318802647819331367633646691824813128516971051885417764682537736102339510879114481130861455097864972699636560130072151846526681415578565494302290328184738692481092667706444339305493101130918877686142488153906358436336053431735323928462424870740669641231164052199009475079245389075532316907963816814588383563546730661643634511942038513195961190846202221433068107746025516520435956829119075800185607552185813477672491099337739020193911308755487465377726185255322388278957592685035092441852086281721272071529980496447927717672859101381702688374695559150538770810186971588562674769561973790993857801905017451512181318335691312170281474402995168820339090934800892711812622870945016274347088912833716807857045742686505132581013114612561703555353937063077969516303101576639316872141044207112966940695673181500234744776711502059919427032873598117952944581562124186093448796842625601035714150148800786326597088608657820939773159076931828103507103717744241406404114983530944399981266865978600220430741632813088285658008831793488517938478690927878663198011857749055202527991958618534619899313060873577853135702688843588100191661330276965962837210296831515487862440953965526261187340784410695159847362236255840341384953277233000821706846878003407025341315297298291197822756591696204758714659434399826467781859144835836795505793375931139658331774929611299925554699612513576343502914280969746821213775809249720767072898286265810829447523757478547334026044341134551650503559322206893570525493194460977385665198764101707706622721827543417192491792389299112622080886886824849792330589543637033971527784554674018634719899094796448240182167762624234697028909902761038654644813636427981598461857803301445243979987762359059281950739072616232988931066731721256224838049944881065610894385049208790925483835505972563227261569862799597668875657030010864668007866431631500746217943324920347820056334507155640309231411122872395524186733789273646495027269158266444043603787738999376631977001832808021758776044605887868766738947619785487895213760023650093362370879172580313443764838806914811889405837483094747975487172196318847709843639238893251303283783126721885842925423524422523338958163048224200884814241351767110671344224013016410246973174474887096038888434070857708349288818632697534856026976222201716553633083850459626481905187347352327212431694921155694021988024980181461176219015807961776020326594448314505585269614785801025746181653344735119507475183907371154472885608171495146743618549413036058540372130190199149730763116614746156830146841884794484232741047024014413480727941574338902203056201474432474234786476439100332339742214330226394951871513237122409684128729587804418651353459501097608347842569743471842504653950380004210483426435185141814884417455063332228737690836000231654096887538965018787539806092100018515569470961520782524998113352175989928165948648657526468070518350464037193631334474249222992729205118021193043183051232581351102761664443959265209888441777014195095344979042354065090257976483163856401983285887176450278577912541052016738884338355602350926010100006406639534051542260273222667295631764907582727919729481321675363663058876597051669650486318987669406738976606424944203153596823444870228296835009727447330920098832711751705656069209179835230617270509400121351660028366775586019018653684857873559194664050063199137138164009929903917559796157470824576457795834691715445099976945198397985425216731818122977237594863463189698669521677338115795112113270452888179969082796423562880395932382934340932206767042707382014000405294380513140593663315226783043847491276121019676451307214980463713861393177463823162707993543454459085276480524443238495790408682975665893461213463972063845419709373964606155884110272960664668405260817256150727224295174760638956739111311464299591158188141259042468422802358762764358564212920419974879205013618332616355843738713645463682375263817036317878449541920669770905640327139127703461406080176335039553168054830959849362197638782108406772310995693785462548191010536420328667306465021222508591214633557712453930246446237317444934173660218208078630327014645648361735011409017141170331685843443938543673289913319796017254603277225628947603790861140904417516500835111564563450782120426132197756297469545550970923829915066879617537636991768111270519150095248865219168557797110559685171815366105086687913809091955746081876273485543298223221341927332501685803945890552603969676402797308044390680163048288080361345671713922355454385073162958320774238271307563686135800006435734041258298411345512498854372556321718463116764277994729841746000574213790874656648424815966202866723989361372308900421820822523269389357638940676996583421314240632044442765464394259850925330680644413049598005868987467400836973182779704982075286816321941445191128755070574200743819610282070401338089247442335492728784891589581062795085564115642822964561973958625152124413426268650611063970439807848809594479249352335652368851181707660667040582349613083391082665633387270888993654784522869565846652574700671953267961854219742641557785450154802038390275852245739391806893902177545935384865046892287038137044264921520290800021924087031119051041466530635197300919783847434035315898920550770748583680046454641004563791773887741765028854459650896589318191360334304502278385002283653917111898918581714990793788186204441677975363658577974712237722984515503279728963639777786868880896495340472158971503982886169567704205492826032113743296874893698412557730844622163333761332748709568559090164123809776513122749155714220251298895030819913964785110745418420038335801612310448284482357844700353817471121981667316954025244629016425736395687998842212356246816358068966792732512397696279569669459691066271444658655473535815422565458586754013466983030960369716554714609465795445815712255570368575962406642647308570749908817753296801834892398769259118602585963380932575669266046111639654665460623969581303839601657288135367958515223684106953363255042220231221189308491941085455428281293434313012403729201899626465299978868131331979805752928951145289134170629685031544309480799094777880769345879010243524377362266728796554962571567976182633920658731102542453573850926848626461041854258664628923669443708001981279714074577522116787779629304991963674649871157425564176807408274175532069601987383212584608629829900931567687124640003084476192617078253120631309978118855040526584625170688888125734401280890050572762636015246568845122779695967718753623080896148496237982272868205684671159347944899406265443714570872589603236452566740374901283704476504245355074434169879000083400232923516842052227042455169047429654770240070623312960363098164077898383733591140693018903181588102393008316127106025296906471850843768978635135926269302914729639519683481042110907718131608056199852951857412336843164532919366174791365872424204558328559619352514295013016410198147898312424874131692083529591711113470666132301198852319603613018183257042124374600635611781407957094373276558973267159048692881321662605740560179520510084748634512515666376023471071485097002779885263128075558005375000448378411828443489131818214636833401728515868555212653564587592226881822866353160012583832916482118092043995343005239254109852942433286317482221140282638381617843918154500529347668599580149384777757006466142287404742931851260496907882169615569932546666114372156481865719213339608767805065740521637704754301867711733611091976975748441388934208066685104241166449282475930052813276119233138405650519118657602447905535318225331690476533963239683003664362621704607711370055815661366360442399415409271323787876173442090226179233447715412897203196527066101723158282075239084039144467149572966856347218696194975369453729601149166238199712264929470844447147151571284804964032277357892646367128631105672948639971661238343439611939837872273317586012122238967863530620542462903395257243225772456205610752416255907131190242137264537964913436018698992747568876595265703055287557752984372269661564245393606667229320715966927990943134935234051501188399484642303667743492666724879909931081763061446563917704940535807137151790822295408075376834921686451753496989766572601145723388644515335974148806467536840938341115888125682245338497987535746710954680435884793414321960482041623747933746668418521183092960257540261613554828950793877645840012599993205619119220898001738302306256300091238401298114890210468941275539735442001585658656025247540236025301233673590310874307244810136874522419206080284536138004739017741878161214191537949117739661328138973190714278274786901584914886696925358751074463540969400093456419482509926932313892714642827727410749073757476645213877902735875883973894506068641901860377937417332555493696585800653274314357792564513702145676227095740846830906203838485947214153573202432788037290217278679968155175436596925224797939808445070090467262408904024763233199988117389038012000308897273689880302350213244658936717799360199617327100861398946605774038000955203993549577002508076438191816701712889676115733017708725290922764053758214445646758052219144069876410433517537803098938815913246923419080926279498834910081956722056019100343590755303019279071661124122117661770337818014048457218843810891481445487816138743159061992831973517540328037697615034994035204270408864367769867116828285370640392590928833281806193254101035637806942100360840787001749163813202439619869432334035980436703441183884239081016058934612074201695776144171882410535763233798805398499103486115541375665952324392820699766272304166750025331118657755038662878598905402775996541565698562621992514639551520608923096770960106221076472665911255547190793383192866652645533747385690319752073082405072212113819359927880962464953840827274782576174879081346883396954326491852781503786135164313221335569988666749657560920576092880402091130706375212151980341142271984143728528048123954919472946213430657498739129433236766719015948997938631079877078234753516408916555055294476944162410573355838896534875256590200773029728004384913368381603862487468465753002983650179453737909979064339991386852364546611391604894732531654157039563474138955809405837027438336380429282927384684612195001940449318933128598128875263142889621699777280541522775541760988770509760088139029807784539288112746269021772010801764286191979561405544892802651590516167886890933176988240028367191581979170745137805249450738847744866430939368040233201448439901822165394210128283051966226079013127789406009782121768996043282239004289162127097667405081349510091663294859853878908653482662631693242403783419403447296315436844205696629316221284672762662342611412507158485427706188969197426070285312665938197112240016148952732113781581579982621614179953490382193248945733380659085232628153764903992334807302913829492508125520183089197777513021124556491425081538205353038346663227460918564399933797594951363384951865685753107771243776691328950695914633893442835939251313875161482595789557173869163131223568188731765040502111884020485719171949248475818382649239514029420388835709117787690496146854024195037966386485325905578153683849992815115628588290728859225807145025983880035553491875550230655413024119681196622418523456586247045084967520335698127061095911027658544547821379184079805079090143756571651600327060460210008370555635398265406349478687538107848798950878141851214315359004389232024464214992631459121070535172661482098291623332454975055494504738091631118757095825197788967499491510916226385249609709789894776242264696380206433033919735565870894840927742469664027613134293467363487955910867584753799742718519452966266798277554710424485002994777583048110445995286114555940393392233973003089259294387365985364660570681281916991824235471249847819436331229593055751592659143330434954246269818187313620091436318550869603322610305979362091586991584625273216664688415912071580739754847191991977175935571398254200729864424892022856447387072189675531533903370332983252084276862007926665588061001396727442906743137288564157955544412611748475427787600474085668928754673336564550493270986194002318920898147567677969973004495281847727888587521200030594170815271187813586641490361367288781225407566341296457979575251287777391233636186498437854972893967207340375396242278080920882947934287777479103566964681978032604161186164142325835874543072993983884520337737473016839512229480098503662125118789183549101188885826906513422596590514910677970332572198846871457881401958656522470027682640451111971122926027739564730122778222684046889821410891750050481793839987478239082355777719794363546631971730408227748207480792954040051350226090011259913354794436197775414178784283814005002700519261690309050177850607586670803909314834081246974007627098461975092121157723935478509998831726647518219574700293679858962296100653805334263497589215528948133832538015446981383662281483379755578639069368408547228304063961495540240786026369801853217251385724297369537721702000981474823349181059654677726116961081347686997223384898722562484384412303671994937817365583295197162435800210534415679817954759866229731936116514587332542020253376754847554773570633312814046892711275908481165305797677105923886606586354671425924843835251520057665640836790626004158908517770357109077704676535887452065954362505916955696786410793594479871261480184350578074743848637131727141220720018045085170714431322900007567009586102951143566152115411996280082218881905842847019110291958727983927488054849598107142745964260793774437633016496306618084440871882408734577491769382978209570037795645040332672358098641274493015822827518865086960646361159059940500891683411466020307746214533456007264749365977618115097796434438792090311451791027055965724121657689141424601063108402686788847793793307677331262973475487271222021631003871316989291969222801008462273672697105336673933968307893761446799274113150620006453067434974343791227626617657609266970642212750094225562800140395404235755328512553826938051084037430207544930551762058711869982161188720436148760758977462968655743572573088796008452116846381608753584557788173043261218229579586145173149367347784906564665402274117224747151432537738651806062626643383026334985022333989144580820390935931866224181979254959612691161212802439433293102093755855935920046923923225757806169614749034041713716162058597182590092514955129062357320243699791455429896099273212480496344742503072794683885875462768102474907583937779831874589559651219203408588856555496126081813438855752661468191950378519738890524443947252914932441836316858960520300835280978258854381404333964371971155432725241960801667758881886766688212961881355481077819178121582508768080216913365220474586009844947729155225438502309941654976480226390482057137971347498215312590485162285349276912494761669230968927243583671072763989109247655101441932458914985797491163691167197848481142077275953737779471882904226083164613016506611760889006466404706096176694806909255922439599562071832392962387284576758383515307457110206284259696995593998245738103949960118316031123853339804941595643215633331656838332057915263260377489206389511444073954000594495855267358569453503214660065920751826275413733396800028296144483461810593374761196959955634519059429873563909640532537629197696233875594022734086337529971432008911566706958039615429426491006238099416952193134213125123343889608763292761244111669760405538920419540086357700096082529887209003100842858327991782439844310899897350883079836281774434196739168780404947699673581596584533975024389786617751315153520294736186521958080352466255513131417516400073907196629065793600436940211225797055920853058134915865230081886482266733952247235388373242024697737085897464474034166532736151577097776637636052998959247210943872339868046201770103241962755452133134154425151609524346580146715440539909484774686831203119846449223481039722565876705422114324462838928670762907887067120257879096147994347085544378671782933785856484450846960887983487490779738434123574594751949865647497456018872607541551421531900082830788054228253083374001059898335039807296116294378607518880849933815966504079366848348472145057430290722170049720463084331721397138430334699591130608876383653935648209746773366014158454991130787897120094854323231521923086710789403166665342877906579024815629398500880606667484007960380833231025291265922290714320878762758092983439116269634416315934127012475756827705016523685770740352310677075049560311890281622497130630981898890479242829601044241255225620067125955220309365048685043432878167373192564182861545854907293682245241182753200952020243226969350149930455282612155539256452032759621715998562593025490667928435918768921666156156009095871553921801123296406295661629768538301580123013923969586822762997404965292492019729542518120018707867753120513406605191737157029113624560459669283320571371416690218102636374991064808404309493500317448072816832885688859516538799168695291177044821641304309031546386474454043742598361648991675846283015142689593655081522345435710789191746422441171082548373774315811173083565763808467978838763741801807466998610558185253977452428271495405148425689087595654178801026710961470879854258556927881410826015281751025392549130370487542384658338364315383774585823200120764383407784013910831159194776904987505279977459862533680355514372478352347390908781691182426309708170047932291599312176595669393533357006843757165070299410101130287796869414249316091039448374498715552141030772568885502638175241540250887237708586879477008954160082364539104124265314594414439912912078676226011542669099244751912958675141869344616131764861538464587633756729869212831675337095048514271554587890837867267653816004922983603580832338676707805119590348446338771791936497619343201100750058998071022468793294269254644968377963311653924706855199486013072897543147148334819859342854544010112377848005527524550918454146150833363315502240989615559634812383686564250196182193574566705648059033757743624688909206430381022038152293770842967775707080247331527600391416163984137402868875892406015503000744064216596868339381537742772682649610237184587878492792550456247669735163480436142014773580271421699495275002862263024702028777794799002938162549803047225341586053089603361457337097744532857503139226416401721730971824024054023611154505132072179859868714334974917510112321615219521456797172217876641893421016572978274727187183867977949482837948614709442545711959906642350258989218335688519131852723335802885307878465773778124770113605234778263296604894540024122189667998402716777837962698894931794607718826829182572248660242450385212177144217261233728574445339031912337160563369974510235524217297998198873566835562102444721752714797945767826201041574700140727598012497485288422423898176741428925940761978987137792270632226054911604944484675921594719480067793355167124245842730985264297690641643746437989642298596636785561739709927259043138275436780400590550398915775099587265896650148195963631910064298526381318945073377413141442592829140891305300296839757459421201823744232972825535496673152751790409774203079651386333606676444099310542580179357968583753851494484207615065830587659187682722027228323330428323191179576806930465512338073522382289887182225562158316943839797834028339052445593295727989966933375486750812512827970557321968488067120376834820609258345206017676854158031060870002383395625502882581214202600857330863830166234317222071205025306555631981344622751512677728903927801197638094452559148573979483813343485613458474061244956737983825494198966937716917055203943084274486940657189424953391172534726256830972120866036746457944130091794464545287502156746319834347811826754415937459985709526423043171349193982550458995549322155312205847495129114375788872424050897528788198231072954816469994148857923103763388336880697377092259816021085004432078868934467491757737391779329060869529989942835761698393801075755354822950144713456311798103686306883055725547261913699022816244106784073169492731991111933942771214789008175674448414085495406653109003030208760420152388366930552141615508340737944531553455567551848905670653905824755945637535561394403347761606197812883940206062285497255146273965782424024151026022597472988914852884310904616256171521824163660811923849679836192614059937114265341670132888013793425793932995071262849233565535445764257987132953825803057508045197780583914243842007574680987990212441672746734741485033085548149769682099383203664906109935087371325585426938135243915186369114978677874990835507638031116831132100865483167020299000911481933827038170790031562923866208801868024169933982870047332447708200298350320693400972554845316588201658182061998836201135935235396177966396470196267872790277922771033440258612348535657548158219895919486495684628805603282711413556518333321222929274319881866449006261128922988538835007253001114522929617607541030685364397001415898926621233871176231545827176496730353481123280999739806332243785729111025122085015249813621063035311290168840764773335334488458983403544189684863847824922337699461298814871288071958182797568868543278821067089443812496205147220007588210278239275925450001578175956185805431845502736048420416474509077772929095114569018566267583305312952521589955746187548299399095221802745815756139527951773529967953565590757804804413811960954241445595413594879941369409088321680401422282344672993839906054544941994510170999210658668743549696097322382387447228694484882385374721253050414776522727004810076807750686719614173166282486280940981990823658421151514171267114570799704757950581335757304666353404820297140140493723228640149848241044588298432292110073309829938063428013575247600287477183524588958268618081892309768857357802243211150530775880005454903293015916292957260977887084069835875922477632519832837163768250242619358680701459124108276064859671491674372240669730993289537492246829293546695337815387252753679275358448986346327121273220903871722391860406307404669343367487398991890068266310045469422791015901431009733619571364789469513513067659429439674602616379696948600001437538574921846832162166896871309644059918397034362196224660713122271138121020798003824415530400141797997002836313498708124036148461714623289861494200312735730637128630257365278711693834203433401015080722288704991912720304965290424994110560275439191290032840712544429459848514811694930683046435856626448871403077121430897598493200380042346286912763680454225723128071852220624194839106309778630438960907244598999512078792092669039613774016095967247327731920380789023727102147835074183263497016784662831565209488073634563447701973842137017637076183727053804472149466001791725508402788705193894852418412325636973646997506068888915254935335294877634074316467452857823930231024390290600598829556119099663873879237469036828662137040672221361081815697307317982673843427807345339778225279940655159093388560247149349722751858006918018873452489610812154099204904128947809148570737906107675006533124638104974856170282933410246581631194838421449562561851028907400991238978920849142257402183433189561591281317596344821043335926739962135652376112789298942116955839671523144291644802481667733160486933333468732175451983124799341698309931041103109348937483435715285767491545146973009209988671113139913873654748033360642738856378171932498254332460237078379237696714347928200359265480131498549027326617713364441156622447429899947432427743911724793582840760906969222093552162195487426363950925923836440837693684927999281464920047601586633446696352719110515880480603224099788888035426590126023997030955437571040084147070085825116799512448901227100227160971749313249202478289942510284328442960065325988057906932901027915145086771083819245685954152120986878567830882373821171562265505736287670993995773284403958914248835813125424122893073972068016995032550561799111112705193671838285144532816249407516465331786985065821109404684346617650950984658462994438812747161276031073008192317024220311483078821396700471368662779134787631468379131540120503128015925014741590789847860911060318199245744711291749770325336303740777674959137074552078580961540804939457590355235401661085310459485743962967252712374565042274456625796155351764461230815771023655778079176236099887183726814949282890204910254548226682213604472611171124955046062880092359507739995846663244120679799076631374641186497457603091509037298425623853098926543538565702163479152620461290735525538381053160464719865191939967247832470424206763540991764682873774638603850813936287881685909121157609768432462501041122779563347257769399999102574065484716242449275029927450999986234881522522371955728443137948207066621986260614140440921077978384714524492755191525610550704279741304337392797639528677958146132356138996793856779088078392470031794737945305566632678437012174143391367108460575247142064992823441493077768815500722240162567473450268000490041874242410064641379168011659773082499583804264614266666097869029173183375169524650886910928145642651727703705146607712092864544657543797491273415752309047172429919240212419838220102875730786508924119995560972304481090489278030547454226507733246677061343637885319116343844167428374287554232479655746141902361645061775382536525921982417222020044241122692634117555507690780087058814769691300448790624224273690314369903779990284261875764729363748199247464012220779927507848723719232251590873002252216532059026055620210273998317260495597595088962087077792707156802590615487515582610045418119575161721184304335950170266237684402406502391789746844342356286924022660719041665428050777723632772691913540206297650904819901684123719204542380367749929109397639949200360554253972542530269944089882570971555606187018434298412452448605481672392729737210994923125915788458311789068558741612671625643155269583921134773823134271357988825460029863925241111596574662687776194953369655557661735965161397272037582764004191519705746313995026742116610289278825449469683790992858441396194396345445284037155563632984509493433469168507122312091326307982423188056348043361464338743643822787324801836581246345383273505660953558849698317414164179534759148150177127578984059085613982610985185860992221554602845399956731822285100228153426104239070292431354536592273961707572905944554670570362690095939992490522005560158322842335246559241186042295970716167425458300915886634871622608540000421594227028636431104406869328154436502100968931557704476811579609940715430461621554357723876467492268023324954912988509561158803930167696753515248011568975580423094014205748480160739681152172220057268455673725447780504042394665902619529361028055012177757985744154720457922262832503843595653143487616615330909538455541230592581675770925232748942628510519545954974274838005317513172657727708189886716651722772488962481476267792077540828520203544784938767291925817197660472376687384336521100372857247004738057007622730953325648218965363891096694942429085296349468460180705234686295359296360277808824335514856508358479961414821090910964059468586009648259973521769566316714091202386737535832232624465165732054937203170905884477797142564473572327626497395659176794231175541805841375855801526720302286761001199076828191509789792313219545725175603490492599939353185869108173356611344966597177782436627406732009807905420684792274606408592538562939643114290116593943552225997999784525408182298991164837297688015555367217410699673692561677840601829124679878763838716050526252414566393121551501768022154205249405974038916979268766206302674817721874793156876847406924028469433751077791204656337341288161590075620357831883995388342194480691011551133625469312229618514903748938979517299011327194751229232149433634528740298503843738921533855877957179330538620447454266367366130893893818526626716380606582003907477965127430408540589562543652781100882250278111018281028466508380645064276405230470829279142708007642527758874082602457712934681510780567639781168567294579165751144226877874349041061500221628516261272153864425541038142829201735138544656731236629658527827608889870371627214404542561877255284823829328552865913332293738816674212905828389110522684129655203274292539024829023848947016908471174873589143122205928566874710593226391239773583807753973277794574583558625838392740270776992951234449916992303596147134865185295455148841016420846817187222715684762163366138262991107992949098335017791872893030465911901375029567024380708543718108200144607453363274387588703291480916600380447766089638244927672309524851176637991660762782604646475454547431283786756658000593992454066664056357355889989913508600370681258117883170249014502508550901773434427182097959534019374975723109204648711154637302836305016507048218725020965131515119489837104142302525432096951310523139178352247253935415773515160034811793915304500323047991551603634625787448488194043824715423544056103434059665339065460609344473971891948272189965171866032559666432844354217425486047919098810758773648945333654059121651882861453371526991281136999016418518040282624377404381990058050586219480463479758570158013116000827200037109829525339432257637138660608844467305203405952972744671914990863998251266998237135402411197869608533801469360272779698424836319772827343220133242540580000762735099702359447852439604004525442763819790596977574588918333656190462682765993758599025886875182758848386300639274925134726196765937658514139727906083861739344015747261857487360061480269668314668890886113588932531758844683943901733793808104445555388150745658175573737738681695323526249962734718337653013262049714465810424086779627660774439312845169298841480239178771877837515480753915392610843578765918682773404546724273244249935882853733045621045298664459249082101240312243506795932390025662125047377280388882361989397972681335335769299840194966653899546559758033615142710446917812326161320072954232906941382502792859220711586176704808095378350171090175248870602695781070047713095582178670748516574936929029486183429893934787857641656749317499997638178773099023742154405696035582290266729128026000455169840424215897549798786903134128024204953402363611985413707483411233696239434396677495071157523929456004340090948667466971641799892165437140468134657900572110491055187424053765341133370342249156742355678223647336059301336553594364401194425309912661436166144044003775181479345781125364437064100727524412595096594998564530015199864967650076203247958959272474963613281169691367975654471281347138440540590653396948163131646278155818152844400830327024242778926222061964940172551112156638600760827908475740050396638511939298407388226247920967168858490657180767770014398096020375855090315299721745786692158592501618884617481199368442141851019272340313842952483736518271714389911525942318068241805824712438031931016389465138650172374995083109623961261803609474844490458201566744235976967028122476007357522344648957311230937108060197491790254655689554862910157429864938994216605895780273476880489737619891018258009933588963735360632345768603307683524457364872566778029032326003548773170336268399125865107118782682985256176235880805256512710147058132726982495881566966360159508805686986937115808511065469463731691387985640147702781037605917935773770303688643498187316052291268718254857373115829449109887734295275403947812443985572536955961912170610026554852400085374587603044328010171456787768575628309075947345901277595728782772938045234028221592393148850209608543799884056405622139107137576294282658086677471740646852399313667692988442267035075554001422131645724509516912666467826311672257615628678797799844005316054963024826131253213142052760452028938128810770571435608989699884891238038226638064086820331370719138763602716542040752785079132890364508873178702738727606677381366578013098293252455876004706492051736091110971270200063128214032819984048116894266539725849819387303852729688835833883998036966956937771907739243137455806441570010924200507591849631702477777131924712318915370299094283369799198704478750729740577438679573702601452606107557030729427398050914821081615108200265087123976251928684048943369266902121925933262602841923452703570302593583000090672055928781331393174612074871588029685053069388174657680413594485711359393062538446271731769272705808113019578393812606321222108730170935849709608885095140102052815084096769850986023505737515743112000455265834249144801285025555862695542145898993359844768608623063207168737671706067959946468072877727842030569891756236137584063188674326843598698401415778113493962965092105864622097031326359538388557424240262806766801167689213822133496964094620482998565735450396680670301115215079592187264297752260191922740952131526728431695848236345549091955400463662138308354623757414600385858629918204279957588621294336997898889390730878034282517914132258452059415327708728987997115006525150895768770648807517059580464171186400021935428026785916687943651734603202666043615873012970472517019183770869574030441913580707356204387714759126431276296163281967278773900489301318303107614050388144742123948911684799842097329269208116221958811019250307481036252427318044149423366953042988327118943894155782245164786170153425106402674952132173270728048680862558569732225981566669222437376366283114168869129077597990300827164227377665507744389040028550501675338580199238256195841798938169424125844037338037050606578599293774389482391049256903709705535283730372596698366888709869151484429958866281641006995109628658106188973382411425609537036693664343221983748051363794748061416171313543073447524281683534541241305257219805290420731354081636006352887107686810108376255045864591933483564112062492077766604941249121982249247953741396698354169143512633277380607246097864218955432067786601010325304051709502989552598537575136606370230221945938995616384305460391200473887952801482672346683498225572610015104422780891426065894581886474339639244694329861888813988875939919883313075755863109306420154827325708757637004921025723700507154803604943004562861169553730963617067196916605626710942628129908901863684864853882885817741975223040966827154382291329278088504974436946407028928600386769447285436251918391895884446956889442925693339547133670203414079331401497320324084258673351964184957763796457385874898784250091326767025711249979666780547126148332652904450090690527169145940155257638693811000822307430816918156999137794745750534805164853108446571002733659727436337152007973076230211384156654822923261942870807735780020365423373219069066508916123616626039983302783982839445731190950080519952031182625337264878236754846764435912789538287068795873174611689613473617125189631585354902134296133489206670727401661460091997948343992155127085875384652552601544602958993783888357332286626738657468571242122792572856036753514484832502776837339829399405083739190623624276564791633933924318216568493926679587807149049721285960976342967836117445435452480101498991444767822599756471275337109588773829294910715843944446084794137472153484113417037830254749568798500577384800197280148280630398465058131973141838918939892399590135415927036283755243173789658953334714018484107898914820141186462431089330637967657762715245197534020883855577656842283406797358695096893278068418754291666934075040848095836655327191961291625688465529199748056510332606418267970720951778736484610944991518296482707324875304737807229298118693333091307556232652760111270079863504420016060553833113937749755969303728992022844962662031120194241314938684694057367665755100065991291859757965488848958809607608961040828693725438042737904518909361464328090539922162029195863070804252247665802494646600117969985778483726687444648364930502519403129388918935868177502692677611730710003723325376601231492262541979158784534038502673527447545094013205049070046471790236065915937627716517865077780413435761697497122711665096620632664144944399396905355933438527519736730679377191770654463322757690634833350097002247618638483130910950033589881447569528649299234467123922385725480613851966703806111275401951848588963022727807281606925000063659697469963947119480658847988701388458371477364900529510493211145340209419312664521708087634444784871853031533674876563498480729466460693386140403641380346657333568626324007331083691106178404337900576169649041014842724101221041750632735070621923722720084474159925079077202541271689502696301732974431647410523719974534002974803485714030868249564019621292798794483449838537089398416328927481581259230533942883168395487146754942261103118030869556756358129625562020099114111041910441906276458679503549873526474066919260683344507306742375503994398166558019184191012518587575290099173254384263759193891225182938420468662785317596255426380127883611270676020304583028918059133903574559146736702025140793769040081121505796229812540563693036899682505985380269912650513141551314270813175901057909980317261600692978203091443725316255080530054730058190179607830847969288028076577186671433345115017386104216492432785041865650843456032629185000580115774218835090546755575210307339075935714598571555367773178216518844058903023927518199202942119660671982889212985874162230923310480415481582358515552302513154668663273437432687661890694593248146227598122552303336528054600583565798251812762614571081570754154673669487220593382493632131583113581360614838159660510371535482068984583010330998530114844278272635526603333906257098158018487517393049806022041059167755965002285920511501409894176028558212450502692178265380160056724331288302342433943441436097616145273331399969061064971161393294868371624664763167341522069346486473883711865632849572158014764040629917670201004108060024027312554094312835343787875149812274693158085938297762885709086363567156400285147549459657346602162470710187023725075236889197838445671891418916055489353099464634644305969888011938042300067331530941723794577880170803607664082546337276559381133256600314991439764943505207672765568823638259076348671688344794867967204986515644188407927614422210707618522055976998598341292229040676392164017776471593081180591843107572611112930256559251464518793873334349429174602849086749069222144499896055800161696404346716203736112732031751340898574355812353881698460347326993359732795195411932816491253412875810542599580491490126340005805932075350504180301005123842942071640479567465055708337238211276584723226542567788672914423032689929046329210872577308557511493549715053683448854063546129025057216194143360256455810925009179916796673147034447162525448477857652391815355213339534076023530446932467943486162869487535959141987958792153680498226339369810925616209722331748177181701266747661333049177613766885771899139568698287687950283140838024952312653242209557966664203702176433627292206818489898007794341735851244803519797177123856938451573065473995716960382939604178211872981959859286869615033024745825694130152808773110798974567844680277588635822415729246227939776001584499657338349751342209804824206203825683872554705669327332971803432979642218649296584434189553897010864480252121728455976497507590933028652862212106062911805093191302855338526538032522745818145830117918704976666747532930034970977849345868661585559161485799989109708386443008464163112661544433207163546379733982819717935302449945351212575928363513120331278072588318946791144269930874651342367039941146408059554182270537993823171887531190301254596350307943189493165102991652541834602362024727017245740455176905205203115752612420593273619275792273241660664620433796250007148771436387971809993617663028378296770941381193365357744358959446594108348178430254486252542814895572317678264063753361961145902869948402486466014207949393898834916927624769467755269554038477484906718863893651183520962212468542888522449653837606151015067633636393193275335153892071726942185908490348433351491712328036520568444681691396050082223723564743558896067824695100244866615257816268154094994662139777788005788223255591598268198528652825058666935933948287115738044313691662966685636903632477524328376324889119481008803499530818174902405801339985055760028220972625425974661180870870915815438185692534793086473508752768487804825405779158189294669414353170832959972869334170789165534634239233187987264728984564869846340178158005325724142661651291611283711520440826339502706037318764871874093964604045449305244600100568362067508875858866427906661927710663506285143702881715264715327263037931093973666143475717951939508149157581495703951376301089301885469601556295992474854624965698913567174856680998728657290645113189815329508872581281815019021297511555452841791637548791760228249751095851277766018615021262244838979028444758353680782622744403959961291814858726358268828306220374103861318242519464714241920603346529388009447436339543999276039529688204613313317172287428386289104718653617287228617164580078648962123058988847221875415435286099932560406931337667104101905779435736960117127458708344145845295091675160175316636724647384762263961166907660422931552902296764901098749315683694910929916943632743676591127762130619657160152864307948521903939461437272635157225011841197849413366483791553553899830419920783518076090946363956431656875097604018497366700928152096231095262662369287971656952872630392486256974285579601064808962680972144663098806442991279375939532776405142724288778278137994962273015247972184651165350021797667632286720204864471658360824846922697442668717478070964364709739275039301951060502531804362830333035067559127987285960847926877740602113796657650869896631651310942118284187446761083241969012303015549686686523131888489566361390554792137661193253408689906292333484591523743366729782852528237801839994377686356186042876954804298706353609726617497500401679661129661338421264385849291003578958040271633403411728750422023506872632376994172081011288772633612819364262351370820819416899981098310668519735237832009443070085459300996264651571533066899881013787490962617837803655446234253803893054687238385682454042465922819636065541539547010081427444343203012980319322611571826121484107606615000750410664153165747689270304198247550428962858559542692906353826649397956159180684214782062257940032108186728361206643068211020778728692821830051430790693149191271528462491700052987574573099306458904508823248102340592819670994672926413172627428508983476875349263109892953380972362810617421156898457334488278812693480250868617459234612844667114681779277416211892631020832335773073562776328795617451470347433759221477537753904121729922570531953723250214167752119806836038556848718347253087527131711957630776612772960677093464960436560750810352813014677367790500377784348603228552612069820941059489175023439052417461342709100502932576500048277781869244284092228457252065306689312221550729627346356185348170933570795163950667877663855260135759350041387367324540546873246908699138741824298464738411926884332591840446531282265648997126697703933411756020691915289405585708822975960092557302927403377341886440557323709070053492125210408370032829959772649614220509227912591347949564899810670278441420166153481724682441472346317314851859591089645307692356572663937735180360927447772760723541756016423479334119697521160401487733689918731480374349242322942303538150441735060136344465020586234586691841437306390836724565465093600385105509388756054212963067576038878168271313751419404862341231424316109588306345356713063435181409154873632480230904907443886650295842376288765271473684914006772164432896376393162803610610977901491001597509714817577664536316497373029180064887557513187507314536221736908427728799461497913211076958294683281198691335827322933560554260562882892933430429074355078665881389519277973853537889119187032789968003978106964090820472516150620159930904022532395339916575802316413574390817857153303370511427586670188677914020120793837944007436247221018366622820863046355237529715546764914445029718961319369758407905658599129112006747393823583796847275098189003851804837671762638079638604796027871322873831508960462492480911185109083297574275931059577256281612706645964267464880966217082129841141638963196757034748567958413935077288755296934857782454009943061004277191066010651211873303170092795262191982116396369374473754673938908810033882756019774054641003295698178973228340112261597281996079974825887668659654402015648277926594181556205818080756024316245248540445789424076425274527980503912304388908031838319532018958876317467663710987882254662623016176782431019877301286794748062883042699484690687773128867353644947187733775478995648186418758488652661283177131988170068721641673087791647063720665171362680638260951152955422788416411088870814484417268488833264978162963622593404830237893207652970209801622307541409980073143355420813037219020552563196254916803159311922174302683129168589581196701000863289093134217762720550881314613410604990288601727307611331519592914836495076796680797879807104298187404862491496212931260937455879069135270690311004009109199327102401704927777893941431501387593106555214803074652426674307170910268568085427026954635695923133717201355558349836336247781954544401717858080322117999315731176929186039573652697638238467992184538861529695706211374298629599185616163464860178713278914188291669960288869912726783875171118939699606918730970680551152983582224973402836917829678991583050236659846254282938345014288763664043412484218215653742509859065057748253528946103106074364893763811382462236563909682049720932838605590754123670312996538206822422974348473302315095484650860111667519593161059470008192127683175153886523204239369412391474467844710208305570334237844022297214621464263097771793633773131014565210714866941194939268453251663976683452023745034586325123287388410185800108612333437170818133286154997318847122309212584314281795422333213168915298175546273737769551698588824039525154389448975573757165544463390823532285570970841514406170603845955675422971225397344206443926235898379317674646318812268487924704665470477636545113254552461398459705569698602699834289691566712916325847685238041979416906379688336049389888233618646599413464435276574060024105895627720638551625443626105374065678521859943947852451209719370218125784397676236361788365921474376667067920479675102944593151477356238734566347250663288237007762444519357712706525571744777047874407453663994532629474821777491121057492175961977410978683055311472562186752619754077376902654877191830455204459504995150293347459681968975144337569660746817586244988988605306384185664258712916670671754583186069547654899600547438341059002549742785683723841248674956578020359975788260050215965921138195514946742332995480020298523188970282817715944303430029635070699705254297981967922051937897778195111826246506276694343571643418804333299575739762611678299831515663809104614309360701414785651906960081006800956459469383191058352630112202073041454194232764596687442275886981999143278847099488060796874402299137643541359375371734082965366133275185836842823909973811134013824902762220268569200431502880430794657772097275225117275001391112110680849224663445347787200544127420132938206464068838633446932801977830944865542717190703581963137544515922282140281083288020721442559609832961333011822086165019517159853825598411547771083911497513888725903270279507117224751259159058046019594418364429730997802276696421837385518720801517122886404451244624765107936953023904157826297785562947372614011544881008481055925480817493406404730156363065205093182922433288300706048087653875614431609116262273081648672572955187396065366554044068631891521867720076196888798772618287975359930538612930237166514116551798308836785640343573765802767961497291995596617476908355197287753216033708701682832983907857251819071585433644944017858647400483189913834567112848594320082054702500146031223154790323781002061545814682743687046245622582300243091074063081167757647249954427554331524198752708606003879792985178760177650605813192508982950636050124072282857552748168345157840494780106704885173862008342055998050175300500066322343685532099063332052215618124148514564057852754910388673809694248293802777018610592835379046924748683086077758878688634354266002148341717676341901123736216796552518841764889234604222738343255091800855079312232017369496254877002131361380992797348839415975510944485332499728031542587990035904751611322487677556362931660709546362136438681726405908703493627678847607109745679158571538538124609103467963480543120476218222629055231719121625876220030166626522939769845500827555009176069410107032866582022932875833937293593961163641266544531496647251110346224828399186967993686446680212969689312298139085544753198741463317941580882895974282698748056608570280533646593685799855853617325488285041155208861342456117330427038223448911564594903175198284026676490437561705935866288355115310163630899690477019928043363231239618539045960306809990277498141945075314423165172862105962063882855550772565596804816883579707202037054449329233156569793579531465231890610981143540101545144257449509725415150810308721294408723337807823816549787946855796470950008328384046978810724246573045667464752189061193576794514087905281074959095928135084860786349622623920601408044156886791814646363686651980857964208671403418036602107826150080358382695362265348144307384520621883400144418634454327013900562348288979018216812374731823009606785800532210788123301844334622917100381777025214900579416391238955082633316091628370212462409033445450032012757386191500202628874283790348539004033668945962941961192873822806053322656998678392073645207920865386357195948926786968782450844366012141751538646331229176274994775749711949059095084972336526278904029658198297855041832580511511098376576989822384439564924792349499841007140179926410066624159806974527414329050906426326736116435476856696929334051511083615280617698666285414139808968751502089045657066450414275511648314747414076150295472723813253277223030334560492011886131901479513900215474347896129452443094100894885670106271222771762527828307338442124149326542898783353390229262476899976368110668580527922760070956122812864013751004054883436024400234014191588318378684264130694467778885060586857165950262620661155290740586607334251398242913347203084651365421567927457898640147770005725403698444540846220869877830769622792665516794569072988771353117192693060280857718378899927080878259381489681543801368170301737202730669258389016098757327502980996666469895240811923247308243852147360295812502888745800996340980234059917244835462593617441277551078759305369815344487904574899243104857019179669594784899946467491456486511187836915338823559101205158272482769531362060998253070509189431967717657777773711603243768253896888552246248038202512369091712815388015209013368123527271055825137338913988485611413265598062600104220354581853894621943971159664333489551705153715703600069896040981354695585415908914266521641458755469680942047080317115980365569586859894379551703949293491628096839062115888420712646747276044256572630266132338575422537362199879405362921143606434611986973255120148561201813460599932765046382199944198002702215934493830823797192008438371101633505038808733682463586238195432825569504309115258879265044863268424937256790055175976179643046280869044791276923958515181015929673749669989866140693023865569996974143366135584341976958587759996734123107718620904863468198651614952611477463718726824406381216034188168108413012957203177872304517237844538595867759489909313977121246230233428231692704201776344235470392856250861039786817783520058104197884738022388618428781116604873208792578505487691417110155219650112592848773423008657675014697746860418071438317075594176403203263019877452258543082357628630293782193236547036720816043069313738026980725158530014544641334818860951862726035067999504532681120911213453658451083749462269130717129506033713733631681878067620300541368994255948371474694249184730638978157915059214661490252641806376645391226063155169619544395014720156501088755654623305685586365222896516468160805371245576369580547380652847890252313766880223377462432563738648050459086124635883551474289393757266650260582334747115410457808280261530421986961005151038383250601101981728141547120700224072517774326898178331530116192157919731986557348866332016798635991872380680631332657411595544339714710876138243854183135325908638392226352796729180262182938110312067528833290359821850368544755247393060226083398683552902226507333526097267185300652849012700933357828532946670663115866268236152114022717008796518087744467052912368082181122429855610738343381947705737309772334777758552107311799073199675828670662695779827276466270253768669955485830212576508346601464324490835309213054808771221415220637480401145142429444449584787737939566595829263664322186559941497774440239811586872546569456200384952801978934244088973137426330803589291093528371431658405202958108536128505063473467261542819283756126903822315183313353819037588732145098181567138262064951138673935729996792636873027595635074610496522001717099744616431539292748738644592603361960169096402268263183354921450100141302736799252979082925543400346206517209200890568606938894558514899667201355150425596821911919714944861981553125879554848422797202519401421153555804439966698084973023025186253769520446262126859730737958774555932610660113617587927329566091837871937951822722907065118948627858839639618472280333792457952161574830999713231025857098001285914585615756979806013386947641523101664966914939916711843320193982214812250370243740725074779554697185624456829430229894972089481371480599568074293197232514409322027964721033872002823456869853571489098598961081165075027109327698695475265790905964062247714502815597052093473935846833007701987209538983589595798388579223888127597253664098814382313151445033394921031958599207426955348775390477779503264642049648910882146761550221581992486624131843839975768822505332611835979887743697134687044269440945238467846285911297344719994771620021654729570266016229524459463546266943162913952106686380965898177701386074189981786733982019250018864878458001432816094109147695807194193838300783066259467497164654371769210404959024155964973013718696979762457526011216805956273225976541682863055174928252678246816179546647780744486444333911521219829376076792672751228124993272890511435750557866106545537341131108081434309452862833891089293753544578604266661226756188531621990831743413568217253640087910876259158185178483452835546178295715530718861058988004317381542955998319275351060474413470367807014065952250189413218106400536623434529412170707858319904749558067819110218716933472352899457888245687753831294606243137818640430671911155474814159933961577680709297266646693434943346036195767392981173742499382212207613418554266379347128067236296648335080803051589474549205895667125959756684330859030002511308123434613778220004520355715618062661498438413118899156038607583762321943515731317012630086114052735060122568546230885266436039242866756725177160445908549948477265921854768227016844656350520414366451916879999010029782499478436233526707882035496060105152742670016162620681950099323281106276178002502756137664484586981080931716628377988838841806641897417048618768323032332699647317948740497945636128775106425963819927122132015857891543951077958426810985054508184281229146506560032791195185328277330892332048548696922425833995837518758525757888821464350883916746472876601983248464375468137618365481617725115108663956510534912767047575598256313516027853128496331805372419135408192292607420326311960717398011960811325788894014902679180011831498149509928560734294882680897377593344173124024901405089502517296078948884165967645857029845558056865686632951962816894628255078467566986353530383040772938164315000895459216154119997312157414282499578571980501493784667739347496943621640759827812094219570585896057419567544256168977822916901099744402673055711914576774101202856042436474548919531694462588927301697283303554920451856266827314908027967726803955057083373048632726179734465914825809752958220059960453438355711591088602544258362081449432666292156225311358277481384045002648763327486457136809372266296948704409726184854896021699753370310678505694090277132869287015820924540001056237752690943328039247458294530732324721737876412247470153594493900164906164214087033745709397203650627248311943967038237159220012274417097231423149791553474779161986318521207721339035517014850752483900801418055773890601596273246109804626098949671644578762715040121048844606164668292619466679187314765693826330044368726454924166094567577575915972429476867177350950760154981257961134770585783295585496901810246425681548989967550059882847066949520765706060252656257186885633801892373669545014959271971474944294620805018663055351207634217565381234008256750900171619337798729940868558568137997066402489072219231005491282673037838021024771581199105665935501364203217050745166204473456545425052631026011644769170918477091184882215076697962489927358740302328374795381937442088118088006744219703340805426846087556520008275565373781540700165601408526311528983491098315521011575711720259782139786223634994888498187729692340264434412482797906136305863917631043501230521257710613132581056309391584247475871823201120512492334976757797779607051038791562919071516172502004088677704451196191546236466342429296535381556242832881523635768949507796442574257101797979532265657126983511577046347098154684866842198051912606293999894569573535286180455867022423560266114710701676313613834786958194193983742835708228140050224065146432300246878882215996761280371875988944054937014433663259094881030813354901229297945888807354520059303404547773968517321820575007545282308386223129013081164819229108069480129714568393847152230498460537258744676579552982935844773196580543925161252332082723531371494198042600297501224579303815169897884897926212978911908783961342078804767188588174150267100990327713171345764593627327276510532142714891796301081017108332902224913266284563301193915949859157942021333497775108894435676725889190178258939031986428066361847908590379134648290638781995756072098306672893136732771118911552888233233166080167005818960019850062877547327257235338141844954522631197604743176348795389809620221446470538422490272269820518300155171121739686387376979063274138397338103668969389386961443282097031990710800039169594365817546671042863252859740628776863829743241766068070952655890193781848987441697111196683042233759514481999351797740872716654288136897488557873236612026564475459788092831581024730965958235739740304630101540435345558917136821002210917759676227853655196542289410461107179964283896635200811688932678884062471513654655566141393409687211153434599299981933478634012213968154907959624955161420597200172842628233621443167836127536040270476827062128037000758816638253249975519616673910889237984157025047475663270326670759915075733570634277353686949917727967540968425990244888203948141343899596690145721992290714397626849278998550854838267558731513287259230501063159974237710525795014970218844229975256097965664356105797023732311629423972309377455297771715604482497196359457360010858735083610704999305542480664372915185158167499657011050079081333331340124458142725720806617402299772234951909616702774419122975917870612944516794708325109750525628220672236951961567447613917107391837291224851836202446086960251956887055424750471998338380837632372816249931738933160369185120355066932219381527926264539787043604625047668105356384384643471010402149123957801277701838133545905474886152685018514475373126028522819249968845776659748897811720561562722767823655569003788066869671737298750747604037281262699297695021649884533269526876946730143069154363656908090017583687973154011736503746486216220622884789032590296767105341203623310969558902477386438581704687259855381680702406190953267960533162160753660051406195114649622013567110352017594634366189465792108322484683934005525362187559712450890109767953558744400735965905859138249003541443099163588926338852908594394186824342166158511748029979553908387350864944188024866865219641808596412100454531281938485569292324305956475111561612629330375343962835418181982157994255774890626469256037130404719895350243342989283311470008034153072592938538196309094104802804420260054544160347687467552790029714110974939976759407136070170565474091098888602864356642281728804759986297177288103841109781062078757071393888187121484949076330201301213338906388162575596415459242840429067524691612837234444331310340347069042999520920112735761053431197657119501540999761779179261274333504705054892421208341036865597252013546994466451376228210917516538895110263120374980998520543625660772673986600502181899914651614026910249215581993865683420776187628564500386424385529963429201531169503204110793950827840065752316309329157798382850611627724325808419441371743408513597982719458768751501180284667834435604949469610230019458060203633434346802693942400982923829583728643452705239760978024081331842516083663709814693911023847065189413991224528085447871138807459588636451009978383869673505644903634034770478121819325305964452752742894998886873856071286136964433319679717367592191340369001769092555934691286187260291132070865426646719862367112373469869544044331714503157800033599964683014952346430128992242664416367560673085748995692751100005068528351089545180973155321315929526141119258826100337809871806664880002850097806606175436446020885898223575135836669047996948166524067626739209049384332061867140125684471871537860671136459597581204737510925271942334582506318226128844069021651206144143468639189887896293024403946262671723956800046209408854673893067262527038526741701040340201593221608160911352256087353941265291630884701443095068164507958260698365016633007737950415651758476656983398545250459991905754480568693581312211457909287989912703252558729529225214295193717353240752086789460968716751171855237840610150358506563529374810342512781291269800291103359276141955756982203199019657248921957580016085567752181990747877905361745716507404570105296539582056527933923728887086448450351657967329252052357052208191052435181545211698090770521766053460579642082314036085775624065539363458516867404288981118564854770190753414871106231077725475769875263143509729442809291846904444151248615674946279529129267943714829599414228845240985554555267865346069078706372469477694784931261393306188962701977112113591810001802099399020749001072904327354848375598535312530754172660236342042232931908030388385161928177777056126346657093876566944487332212102133896208169826938273554653457296937766280265052158191839258148338017250070049480321844213940562204913421175449440691346382620913017652316784644310026121035350259083053799480601885179508534535419784425883985842417497976010739259287809329762891498109497845333103285667398907874825233221962179244457143319263032074087206363591952284693106750175410043021720273205546180171795753029158071536680709737375531598337217140920968553868170339899594585666183129702735256910494000990472192477918045235935294295974835012568617599838246087586058290078341215042784433482880067799169209516858808228733870699025251503810658288767111338735599022630282833887508178339478610259255881946676860790309571498436507660020479283403328621372709384071213438965389276351064269405968768654393361469751946013799336129754840066388391975051153469641322477708691917290025545987582529630643327240909396511254156978603259294448663793401055824961805425886039699752757835567950561533831497756280820118434283501052529537393238297443482223791440669702405047236745251706385242814717678672057759972125551245664236938576483988923940671263504141969728748050961138411048841831929702961229488222198224282338779695057560234692171861297531474767447656942337549233937507876246102123288160785875579362166341310053402366551189072116068453953168952702852052068410696027455788330455095574949712330231466110135362031188003435037822246199002918772271782081243293743206741999628845998965395159509436055048252928002643095033580347874925504488288094854416859963826180545721939370808039521651539667965334965931378366535317320160281334574890391006790386428799930694237989962466242645966754074525699649650931435061924886454442720701967592401202391322516475183668829544128271906992469403362902397534856589198956009844530784854718983948868867483442311068903799082057711168247715191841543434407516613884183513270372163309836172905789823070814290147994688568021518801787433872160859960782519588376403411490339415084990877289391129280441002071136205828626325350396475954517178220009380652875007060309042338957048355510148482827680067141084341396820610666833756296573661156012339659747112035612114985108970721002613968529566828338880677292913886421890533685500082470612141243169321915065317070334519507264138626990902442615821464920959742130230450041359401207593806203546962832064303628851417205232970340453765061042049707562328540305067414605662156775878013298354812149691174128703778453219913938507513113472003219803841344867323952795677763622936491192858769068912709651300181694387489173818014086273854757487843737345801625201667759076078161759494901057255658199279103662039656591140035384143275206566043122534238105271491062888350321936628731311594053619720170239291264644725463921432020580333112255086054494676393942820371279371751207357954825826719891822452627354357225352039216034508764858854300995474932966765800676556029535614080442168554226897360974450875102628562177009829104312755817244005277355086112521000099077820570964528241682742024079234337152652735051175791622942139579218872700433876000220071934187452212185927345686620359891414986882712000029611211845863670384066391899537385217177355416307736435964977426156509657651752732249627653374376450971752339107326084189187659113560813563374497896874572011823414553887659309064746384827498516735111038108389675543267800531784566942500935021981931090517661307451970168914671314500586891585201334753645729034496234551712581612549990894923005390675730049216845286580830616657574076505726417013469301438718778769517905775888252514675296179359033956506513499017436610422256923248267503570278422900364410206784045105639198424518752932413330854609078926528617525793485358391551655262979806900135415048844517549035758004697557421597816621441202193916013183587243595047519735889157856780036519233068358064047893543249753852162322584921636278274310850099998218810169472262246717091030713021623652297353095993116385500900856734746723867213023994522259470617982779526323194798475973975063358057282521836705369828068063554181259123264143477371625449861926874545957393260477031608500534343169433163968450716124283591189474576384709975012330781091864280183655814264200967491255839802893845379352972993316561690347186749301927063301273988660235809134947058513834438579889135459322911690225939822598072380530144145744810462883455727598136880607957764121448265915687538407873577889817005617129726251934850500165673673271934910754671396732499617303160390708093780125686938490144082113768220947672893631750666672390273578959106048927539725295273161884356948817941075478283233207855555373277691201618833346420678180150205264942095001290405425591978741686245331652789278769915882994573559292272571536884003650195421629097860510063039518827257751188904889982429042767995794013356093325002095478541468238259436587730969844355779363791858147413644130572770688771527341122581316111961385576062057952727731159507647086402112088179018454837441766827774989797634296326457664931084178502003127259909587537695714201061494688185897067899603501510210908750832960199327182169021901324028249335572133483847952005208273105186582166912977842282419493753366665536292207485955732191801906651311242173586443376848033553885560310726413398369526052481967814336411764465012159847025409347749785904034563240398174457964288807867982983931061216623768868468361263820099254408222001446775274412008949284132271261302277300037599219438607260882826643161283102200151818350517361012849148614587614820447826991577693626324487141795356352283368448053693986610331634015706729195588527848059574332852001407263669305427827568676326087947450111677318971931902407696128924732743681114328916090648821684339448152261816437520116104127772387050845852007149302896885372931141968741640519939940692231142569329025901047962172763086137103106545425849852983297582717801151032636318137027711359567899712772287470799961272628727691225473958408789218839697957104255083013069426588628989467039017138593501799739020220039228630824895908274547823257353378524610069991101154939056501315435380975334236971474087409392121857712677376361806295403722095583575319871726294872470873274658977165651088992192062898002648645172426641345563858150462257320661957698667212761358430394924063661082722294728925886433612799361495617851973853663616084201899001274218224673602476262526678247470636275943040590376365353443599630418978217366408587254646876949066119665108854188470381217075152229031069540027047717452533918666210725229644904891133395789225660767804510003010455897911426933226796179933209759666907813666587352176023390780981351020665124539554090175185811021626986763450811658713931179477658166681208135942567468237864020648306781528307118360224156280858085857369709882037645817715114032610324126142798152711588584163845220790482188093664744583726569973355819171838286090927692645156057694048899208655005188584778715422159967192561430563934827981692144580628727166570824176886033625975502535747420379496895202260856802213657541273619723346863598292758616355761918651618265835610410734212297463869471794849577929968536542241419583982603096871008221160911535856884880186763666692918622960209087819789214184879702907480301647175808223481440494775580108089849739224847420611150910597323601249088724093785574160363409051603035041613763285017484542396139037433468552291841253437280108315962261557823744164469639123313521966771214321395664664006274995904750392185046527616207824752681565330913205696534586575662920171076478405470141857809684335841283023717999451160392605929645115099180873589093579195359429356401028105244501834548942666493594980093415905835242808524669828322184060216212560077603452214972522694965828420702999790403980167893857677006564223757729732368327896238838737508159709601701508361786314130718660825093339771912290207979550546535373910001407674846310102907240486691760933562292768688505212719852576948564083761677932267478663808536613711543918552181278904827024775401619546631416681528610706848042531269020531854258951108857116473226095687676352854661380111295475239362843184957266634256003353092488189141824178339630711788168997332571542713937588378967262564279666573383979447169493104256962959452143803971177028394684422665216794668228147869996819174860608562175097015753430360481041846179655310882470438219345304466134328418174495616265711865690333486053153023458005912003321335182313521470157729505102614533711490931145553058538244227614701569502776285814250925792744124729727216980500483928628901497526588563490343613238295194670165344832113904733925568304331236745583532304146582947160465795570076362426489260531194847898998274713672040518864067759104047253090447709018137384402578586931539815788939817327543053854554216042876003920510510022108263971380275901493949535697917147328557367494180190865313303860841555131172130140470087173793900162854734716125334621325161456922235074889306306064234010607393309727331269277783474458076662606589094080721578932008846485044255886027193598676677150452929124557150813888211423152134055177744018272306057174155929504954242052196312152064413675707449606714332101647602437999166037247468868291309435948315291399211827980914982399016534180063327228904872294984451117282288178826364338872089092906213131429451707635039045694651549862579342219234701294086656678185949702124533925981191723777170125861436840064687826780537647245606190234301456230825325095129544247462247684442216387743028422789747817294199544330639109571068266685584140745651063118435987924213342442854459293711467416466053116811264591792503137286444766883082442174832397246728975867167375985640925642024704434949690884693685479125479940022171360773964516297501937552129256677727811250207095278195929357803603412295950511053366671506013544392845409371806165071398671462685902289381342124255818823527334164521585594622931233389447140188942391784433473006919927499142823975727950906948631670183559321209719770220804331273602674898250579103295078179772451236907812620317321925241371281579354082730933057805221766026563980106627969241710139783325489098992877600061703964125440709689783244171113900593713879083572211039868063399628041561912826280332676166332866963183216788059806533689705470071414282445969691588089988026655514066212059113000168872591881077243574921479460965997910621963533530647754990990949433888733419942698231301583533934822490582253666669003570019352007673862247435288038882402716925690454081184560436478758429376574686665705434072968588135963103348893967832973643931115376541514778796472403047827280605473083485480994337032750516628726062604969879983368514900522161241208060268474106917851978701690095427184641833483515895355753632747014646750187553062071561165873468954133504885114063020022460926961440858854306523041819018939381876387101492903455715956740480037662645953404666243821510286491159053224736531547555886795785452515470729677817168420203342501197658276628181816334481908976264275010401767445362228550508518761213464777514010289962105341751539929236201937076373736259686431223748122858445299296529559769011910333734279274918668873581970151357936812848240218852406824878909742308275310604589476363161056660128254697428319604302753808378555155108317319276881586732640789343023196523106972998045266472607910658689740961735189751776768559171202523376064447831835333136040312117379490728025216872887780040638046499293396987544479835560045123240123550157749889954060116402805469272252392574315233916818554987438173200123240709502312342720544265614339109383491013212058553851494991818211079845290962025282706676535760284027272691908902777826044745526083740797317462871032122474615727306476643861538829537411609471502502983368123136359246050913691698210113498307090534841955307554174586497680306613815439322276148499764317606212347781084574072018306839081294279393866674862116974407679693869310962153199335889863713186267777098608731404861556586346559803472050155372199470172416237886744980404688094229615871601177206661576306316030611746441360786013753544102993833053315163609683667255560232726850204557794931182222906232322784131143206162859035650468403754193373510536424626261243881632247607152046655385142864048320380978703305725328139043065929995961939549279993381363852509640550464485587159560360238659079252491746874164944535893974305459475993288262609485132587801664419942990872296812841102475803582330395169675750505227994144483382140260078373192469179548139722853170211167893491531980343554730767159622503481120763829260995681708082751307002572387461965236785363183632859541414856835978398297903921329732625252085071228352335350528930403004926254179062615806692863333602842558313527267305836861589933467548855540968161850539427627978307573110267136411296740396452276251374853833288413269417520425718623711740908037452333676938419095018060240148067991312997008200815565424347649277497104037672979014415021185704168615081328855047835436223366257097261460889362334439221963979508001260490431313690438316556171540624025907857102460486930989397701343758336424894112993350413238021859483006521232522550513767249836301052752115810959387785330164303906518901599316359572817864783034029153291565315448471163339332026476616751846775680210298776710677153775214479719644480806798681289746634534860624331653144997254281403330198462068240678985235013362498827456118259506906058042574553301825376278294161171946111570866699009532181568955893667645222925588136157855503705742824314519760559547534565455176110006056618527170026081972966541440576945342217622962205076839621662090807855210468114422929010814876373935852240242911106734671722102288224680622442306590624700250942907052067394223514804925163866372993263224576321867394380021647689143821081215691644033491966849355488198697042857898945549386190692337373685456549184843316758741839726456338705750397786233305124640611246562870531675590707374496193598088235226403810507687682121216541663016078074439912725717880237821920906810387262832753929975844993885298925801094293888221912109344966955544297759774169609627367329850116875526731532959927761752282800545932919047169653754244518600272456638951240158883179942857711106183180142685548828172821700236132122790787219092624898929997346587249135088439248398105246576411996511393717831904447236917178900139054106184079902329863900797574361585613018672060424234491682863521555755821223145384571451792484424003272769786085658107212638003123366808775572867516726899926516528288587753780304834402590848075666373546569454697452001200004680467946598405973568130532751329881052940031702493574989795117056602297796704616334358155429319598712570232271329821317644553980851869126636516267712679315355655230015320997412386198605565835419778142495392844058084784137443392693167314495154254715378767095610529725245776800557486481647610496665435453586113229163935602496153223358814145225276221729998146106307169297803380957559414906913588109121794711912890598572246994613876723378672701871951973245451304236665085180250759412574851366610601926201368448907000740088194462228865724872159458134142377746623443190207861885981442414267051723785409904126581338434536816397620342197058696103015420176834915958937375332976520866266367354846988320060928161214671758311701327861759876017078988142481439448098493420054635470556129665114288050650269826382630941512387792265593594218003316349157082410817908236179381133685285066695246256741484742090913132249065955657380840765894515960980457292425188015259856322841163185708912197015068605839888643494201801126733739771683185709763837157713312535842123190209925841450545274424944256921053219301334982534634648284313343337647487846990131344966003814277805827070688072717635119669605688766333048181399494167185613326362567488737943397097852191790617260352934267193667537088086108065944860394411560116627092317787408352825556901911022842342143279563527204441251556714003270773232363980462249169608917888653117108420644339092845517597698072881123386965947154677388044882050345412286309809200996173390747775597301428053162291162122100011429443542410040897446231023117895704154332607557982862746707633661434493301442689210480526117189711546128685942819927035419765036937866679563450594964764325859654110650540842178592801006884993460977631038758151516679902458588284417590980433043363998015267238968023834072576444081830983142983939803088140702753386664957890582877337766312643985098995160662611980772877142250240114822093615420406081235440429455632487374214903566921204145494772641355487414545878964521672896787751948982101175804000326652600607527085711677969860534567149516694013069410221053841448907990936101433301868882087747979064699586665304216729530308046143663520443374112590443720413092828084366005276212688476404678259272150476799032704659572553958205713463203496634832893721791180258263031692837430795044972606662646029522020996275234679901839106794965055081143337313327639208030631821609132654104457624929049622711478135793960558998933947600395279271363655550595273051654222274168036516928398685183858678250065248877002500619078463574966015132772059977926401434149329024649983094776927133497187706272575077289722108214804701908322510906168673464925111060286301413243323369994537967343699488350729620773816059858783991402136743747981742820127147794699964571217789061801924218643447681444969835712303043009129077103588766073086978525738344803360827189101527160621788680517125853122397145039284239646033412745430054790268494548683040073835357310648947533931128850202027979217238501349177816624863054165150536735666185539771531938395902129233277001467343061837660808133335454032134820408032748119897128965776825942928487417219048750215348395121348169192399746182273293247675884340825728538964184619436584345767014301112907823858942587699811671258693658456883578946112204769829167781493488740959588268595581042252063156448140396034741136279758098009332826569458834337827307722990875793066746584716888446227223246888328201172835609293972527105233972624342328358983057148332492162709428108965840507204762470331038256221521473852562038848117084140430190218207706079162447397203877144751645889725743216161742466320859332591416100611417376223204026381141738486818418729689581542871260031751214918760216728497555825566651224583904661406521900531560772327939968177406059345795710241156619378773668918006914075523020073807610187570726957052335650403384241514153408056738376786016777104377618578277706923519958739818948212976512788015877570057361744399281262649068983027331323588613730826820664300884695678193002174046153912466226482984977948913554821241216981209485477122458080640846636427463108205672638951782231542167455224898650098473365042984451460971985418832528968458231661294300158660124091639165345060848988929955171960143040043175995571770562276871627829048160000953037862259506711418777863201573128533180709617257003781412175648465327073209401902894220688456093833731686102983936307340945346910689756663142588940301769199872604068438417240314603864499092567697270025065983192357916794158853675314033589160114893040141036101545257599348057482361480775672242408105755677589381007717923256354655456396953609691259715963837534921364006395380012207422297168030015550240911652577137551890640049817667581003212401597334298751186376486112821082979785017373104340405699717771219551197137925148417204975178023833067280780302812318142978708056392226924519320793688073251506239232261823151550432282367367767093778506023118612257451628633343057026534941736610466892400202310707428595477899972805578728546383742974662860617491665349047720373968454643707072628346259108959403913989852811565982359983697072037984089846880117570154523601097201233044745224350491567215139726197246070788558336939762429232714807582399300104443531612498991606907912627130117325207149220525329843817813289026038850973409234129938951576934849022238335311405169806353062522950598905299244773019730837785938437563670358990703119250015827281522485394335276926153723023620146695985363358463899729223682854251259212467652930998792044286834260990642355641780689538655827429110709616972865396830684407382233973405460242984971217068370459313058018890637950671924590790941347727117927729044407581593948065160268609303684731777622222539666463882757264427961599772202739204685580365773961136999308678846610199257295483622816778186079797029886423554680702310638121141576749912472258045632483767234875079343762026388807833330669170489527792781970970187996221573603898764780386931801156317439649891694351908522520148569926441151975922381730376570594442041563863489835215188085198787083732605629597668977913016648697031397446971045199787052877605513647074301567458138862541239036993686519477670207426156656303100006717223358151127991072290536222493888571094239755075125462680073706841042808819807478351843308442551636284576734189268134882353598285566773540123777728746189977855441170116442113519581305469220155230781978054522394347138950097076653058203814516700022660145201595700154877192426872251639124438475649227382809956856542503463919514013903640440761423978034858036347528938163325560853078236723429658819240955221208205533019271120949660601206892493384185835107621343341310790917406522040503725794398346131529193688090960315407029736575969733903111891071788474997304226554284046683138519195178042757928811113315219920209689335922387012975842032245348491489143175394121566538380418956568015470299529963717487658180997477153752584031968302192978595485815681339349813585691399095707079378739446983787985932649191982929769447413363351742181902980382767045984414120030036750970034276446880175734424354091921449135950900946067545701454664185252823084743597225432763537105128759500355464601382734730824559925577305817179191693520337936967538865806216794261709787539384338190643766043636522112622525428348817834251662812215450667102640599404857109788505033028060825470513872586383618129797982590153235681101682581608750294367556997088465930961589405719122306415432862211329336783187946113650095606320959133380695137733918004028105606356179766657169609641059430277051882597419438605974416730668496585888230078507284690413974310841209577272643742927362043931493595961537766778462036503878864464336522192127737656010066260949964649191377872837995183898303213917817623130634248175544607273684556430763875051847782610612012333272147333195027921764865830241056712251991192268092642834875133459679306089089432137667110561636089948457996657123097572735703254814599497382861100181288151211578421542574452075871540975807095964124885676349452794223549816162853699589237247416160431960354284838337554261018360443385734879387135611627171361852629651989813806355915874237945929058515606794837281139450630567173902254150942330276882813205691984666724047530516760057238381690063232931846661853208968725989739742405628755295370989987513524248962775469332974754411533433051496113237107961612185072516533754272776465751742262411172313614972511065628113002242197111544923169809731510053485873236587174748202374777844725472418876733158250348897302987097213902178637841139316115610773502080465200717056012403956638176350316426697623634543301204941511646628170916929316812321031912748053662490988469793603553284757158882958823320617903765442118278782472613603393029229381299474861006345616566408817278513549648280461433415802636216352425317035272111248045581661010242769673803894398511680043301670927112126207818670635461517163099735844821124955376459745252769986029648753131009330405543922173478763788552870839135348455631171981190344821816382914554669707784001008433825446569980578151142567049721865924920737867762699397368782639989283717267640274346754803810618589671938026025776822107482063971946457811560261469631445133564328991451944102982322483562992937104427208162492729477113967359886955157254680569249515207785330943278448263465431917523708751653354993389587275707809970844509018473906572905114179143501334649952612685324616146531829379956259037149280573651242565047689249752952035673543166680646672916746769552474250759909036833738130916100236076362792248967089950895407274123724179672671247154305262564526361875893516690515613704228523888337659112755897387498131347730217131472412882108627677624364007173653112306285170819929239483603773850733124512479492165443675542750056350470925776024585889090411137703334537339158248908466664516082528539412498541230440559335787326513363277735417307776952354247023117439160010533066266283313023653292415721867236542356488761863024606676765440484179149347441537820317292950752057327889796645327239454867234420526304422947205464959437009424216810904420445001015949912039154028898982007681149371940349797512683638947582184397638949721270146356798316014021455814144182218388645966223247329051218885808034518946339950833423532576738958612758221296785465512891141368279957222982471370468360679063031843077858398554967050430387675671306381581261205551314987126793105144554283163157007934305067378913066869630524313730448786348207607506230713015075395130823013663157773072365906020117064467108912959291334126085107778741920153115858968939062747159319641227202682127155343837407265729798358875707947024671490136035038917909271518832473744023302901393251938187782499795202195352626522173923566087971278472590695763022758465767233570094478497318129097781169680584614795931603535614827646608698369087391565144655848222169566210041511777158944150635255671762696114792408456111971212705322026781053127994034560485945799395292340100753733544778516177632167895387223834712079957369351697728523475500763641543237543489219223644729961625333997225297122892722945453443972026263699061021699943763871958612087733413641456351271350987038958938612095357661256561464472748235756454272600417802620585186543537361868656860738533310492324475085957388060818088570668101144897906921715475325910164658479368175719892566808545957145504884552278143282369229190546491018842207190961667185744032167200251990939456405002944473926150691258501496019884905603930195939755866117772007068042892150760533242267811549817280049704992712480194306591182932183922275168969468406480134909325883330865679892925827133429876130177141593730957772427301374464269888898342014882055706629405788445723080798053330763651579314222897661040357851793546078701882103969015265122579602766795353297762454340235027091816417291289000648683725673494128225909477676812229438745373992457308674723547385729051857485684972809123024072450932655023097402360641212664543268188531889552105423690402176481319895139599800802042180877107523326545397185942238879421481612528979623041549446909468154073097518595599423765448543215936421541632106333901753170962295082276438329321944928786180895574423061994747561391152927699471379627482069228642602498847760694358961289474848056400791960056223329215164140004456073358559794695765810880713568852218565321224076883798122528269666241666054733158761030998604449655208034250357651498599072716602582210946853523592527567867935004009795394901353043911569347750673031188932294337242135673738847043162150691419176341858365302384925819982103778262524457878163471464870988576961673205223527208128043528366911802832198297971343017643846507737330773444086023152134872731460828531401440252213517155027921850222764246769986507867189983274381003417883219425135404694550671053037829680081071723743515354412307120188488048494688550335717908608470906927597919604225891482872208265939872180361662282565174445007217643615781151012441154037848891455421665422943005211520741308864624441794814824074324397091478091054546996470831313712951409181412158174662661081275102476300703669673255859901158262941351687593171684072888871000829966118536114324702473162145579334937854127751334947858156245071354776472226979246316222092236421837251459450355868666869807724644102238868981664727055506162433517982433634613626103889731580581414312954263075321722107285190694049445428076143383058939749179470265338264925539031202148121198201560958158802062184791266961907623817152286054632610320899349485919425379249176400642205381905776611302419544405345280382629296837335650552666777894390336522930243323483644123234653165789039714868349844268116716921000247434193808015790787736151947205122374084626509807549046409323699493965574762480105106624039313528579066752709371113121695979164683140484037701088824571585348895915973835839945977925910724086227175456759950292705587517051423707965036257811963634232221694502470275065856090186651464529597216768772071039650557455031491220095207819929585654547876658318593446542762694822067483602926349024459748216052189883628019788539461740250751302733939463123822280545074780311516091435173313727204569813981150488802442516843352096294112726256454083418763392230968230419820007459252911673825449305522724538513811226883746774208972795669100871841530505903378703624334398384122911611162710001424207480981450773348971823417896247580847530307131403335345037618002983697544136408520227290338217785571597536546383258641295224904781248853420311260358737016597502770821236232815493202189934081901081640131871250560150519095634002299209316715011146901587129144314365054235362839002050163346844052679478626413096107613709680177705614701542946592359391152936752041469779605367608930603573476737101579502693644928579192603605674684592343186089779017290285639497937624385391313249250276848339481420978469415548849401878036063502688172981044756539958158405229055584971333261049162043743500865384561879766517934393936861847438175464103100372869687099949954295557365542408568757142872343271669027971052891417884850668691329842333905514571402892312973349000309951728366678717534535768219633381164854819901683664405633161466093128314851368614993033697287251025994254487865158357317143356690717987397095307558752199498305286038467653341728198971291820193869971445376621208293971421428485151523760321059552759131021772477523131822899959815286290735370346139075096736278375895197157616478581165692106490410114281803839332424842724618301740558814425752704407435347067847102318762196717762910499559297538598945189578164055213559291881267890851367613257298057955064914709395501079287195914343409570196088781846208009055447226933458015962192280998393995331466977684153153671157768671472003602282635545720354377015962765844266202051887290557127940801331250318165820604699437051151950013232048936869220275691313480799699388476078817575637611300486763854422571822477438200451710760440118384797624945970605677187639738449713720035814897961570890381870298195152152493990469784124695027277847993684033818943603981029082140151416157385238772923082492624296392464937463239143459953284471787453950602000042137840381928122098840742092894396793789443585124972516220311279718828707664817008505221894976707743246838494870381671429638151702846543255307154269932933217127405606348472784412969933911114499078608967702091625543280920409210275414062389806639491495433775217447037636135429113451675924311186043322329764684656566566816045531208985152399195919401609440101493356652527586074478629521471898646992196260370215887704599637660009265165964456529168469186398673331335454497825712584025540156427747336080837155194070959033571015826755026463844496307651535478660503672498106828845781783972598378501277251717729128108779892820839186944784986975783148964692258879193815756874796705168979436874558832852356481784590175371812899691736692385068390637582184648629764787248381515174678807583570654685174228264838734298611950655438239856258248420094875064738627329135516611980681079559300335178732893068254374615296119292873666693004169046305174806526451154653553962792584606596473362555250421912439092114757402456746229454970721447084406634186083395273046421139035365264773594589926832961075625567086000487582215418412319578578445995879471503410023585036570306210737564189531953031497554651253440175439897425267054193506786353066340552904002002258040754967517857505200710321681071239560670934103670518620683430039416035577324146037957634317613605468014335256400523910067548248736310243355881929413043132172768023670510455820939025680358721661962426269553502960825366329675137861692156262292628048557991496656591892404963541345553874806398645877542838850664874612480133456138958102465825126729615489042645076748636070876541307436697280120683490709297012961328803065445429265209718704243808950851806981015049524063192050998815139247753839003117208182969728673932922060552838468885801989676048120591422573053722038222978598960532981708037045820377076718951572246673118339445959261192078812073753854466468966659337377891520410958815131635690843542170007031366518406167167267789958019858439668845621871288693184454669387284017611310026514836351310498164445868863242534156057041061348920365018124256049563874750905035975069690940175623643116963755868770285931142306188416474902173355006870205048109558342703991129912002818425702910125355531355133714522556614892943549610775293428197799834273756647170458265652047586174851886933978078789869720313758283529225844264891152184747054985050544495858171973871716060347145898751389536878914952019703882526909248788921510726374245182535188208851566158687999777458535876465265290833225956159552552046970884581592652985608476343859678741426813941991632228922304780088349629282805603233760893829226796435406866680172255523196378533739883589432613062953659495775229139713589190359837749745637732373311810591407222828268712214520761624800416882527585196820599262687490553579907673331472770610924582267483293259823291910303666072302522560827799738376360978866395905565685250002658108820754886746444170387348184348583533820467180252362458069099209602758431040207864169169286543669134386516559836129632848674300795005574813121357457903568101686189127234901169656703146992305117460611125467567082153919143406386636777981805909949493972076024531061681940906354799707542304842526586614097562404204157544709258475145960372482474645336945440354603845343090686199038818783061317567437699823936805487182802277223371748245565665678116072079072701240435314554254316210662897725156479486069875103644408762759068085203999158801459545247326859030265464703551143369378655940584181263344138661109618744816154533864216649762754492006169840913681689485553483998466238306684655534609344155299265906553831468625567392668721052748000997988561722018179614521105639533173676301340464079489602443470269997636935671652179224779764965909123524252559505960208070996446391019817465572422328608916241686391490471491165516784068799968926213990085642129004005099952026673845676561094387459366166255466642284786664415547048337559142011164555765868773897277602041931702535208216141816890618236342106166927413007026198290286394071693263856224676778453261147139245973906160713687692382362785139342781099191727097360437494601197409321952870677543260167438144712714946039675598874925061223269049759708277934096941364154748492397224511469085879203374664774842743113390733727531010518696188609612828558599542399574605381716870061970498231603496532642368197112175251865197539030324761457099492687813673595721537774241547534540727209360095415895228564902116264589738083548227779526754754835234211331524880958122382897430039600989981821769680749239151231326489906537621536315867054717858507986314019481929894581306398432023614036312397847986069011185301351717631948403788720403733475233105779441360060702532312167382250409787626567649300301835276422360256787901713725594336159152280216084805927742613361881652398821526521839684502243912882454460528201354169384072310627099060600105278280163393018597836573485064735415156897681495533687917329732784908476084397072659616228502258483940418459269398684280641105397355285173990777356077353875144477168773416431420447887166996942032026493171597668132087286759290667381195493695648676583822052779612144954653948740159312773672676396672239118516102221437673931470752789232773664882006839973044808193570567582595632023804752845591185533520695391779851487877722270402824807201816312386297262215874203223562321016843591303621771739698676972857956950985184410021108863098083752722295843216188466741422551046273283801761487778204011870684865830084053896165003197809095696292013046457815071360588916858768428449199408365143448270833676662107073148429227164387260864354088549249936499369641135715458596731884399727562199052066702570921475052124367025131337309001630503936880197819419410239925837253003728187816071913809943204356038134501831157188605928260460824153846652401176307515988251392693785951173781106725637981531271698420929120844764334538643188014756002241920798422183479349012733092630623293509409988585951263011189745866154093626194838286899985153568360942841952852840659292238177629029782695005162758978421091221188930665511526833262668632401576355438191366186923912834715785088914513211297992853811943977647976008698686036358538227341857387243163816814686652781854148858057844541876209627682237989287658106312853550673687128822363866733170030166565723822116236418257103789838650894879366303464629651778119017488714480112918673545307888028827490953730421207976504394474355466563109134256864090929529683470025898115772925399532498964412020948466669574815274924260082393915444261470117567923190168866581400442994956748629681526552702512989603111199676329256756796671793895488764948069897279717714828208407861933964340820555765130040092481415536433435462015362077120711709980720548937838078594289923100129021161928901197285010355780882416506191514694440635906271477319291607837241870727049686092580242599697697124257512808187190961819790533001923287003842037212447555945600506672262835716669264505272269231598824713876385428209186569499355190865820445227814019600376216196400346493473052771179847172614327313129071988104799742121254682520176652576082653809360253209946568814116113115865956630589685134552990912190855410938459432726620895305242081546030130845437689969255382785454638856072742192986027872651131930350664742440836856377510346066403193180160546689750249366327534892250216355936458343266511853077815012187020057752043246527226633153482770281262893732781773315447058220563182595056343318856176821256058201633884494525064860908479180397430048061067383363603714998916322166165153743607662571128972975113458354314183043929455375702183411570200507065891399279956074207273064420210637642166750575726648190712384839484382527040467186191895759859152296452000830638790619158593872222955889860448375123217508595440114141819453898992556632450331137503567981036056725773053110241848685015495354576950864136761758459971287161334790074384429794881430896726779987198741287899073669636157780564109725645351587942838741419219865576411535452890345338364635163286302236567398541729351013392065366430253296539700894929330762225379884947365415719010486712841729701184569342562638342288691023096700343572333748035559949747477768389537665314066094719435741988689917869755773273012124748031557383349276947219520507171124575206644718991548457996429223802078551188554921473709979313987124676543051960242201447165418782941038593657064142346881878272056138731508579669129051692853928666981013148764201587698958173044374564752506467820108686553695841128772410275959921305902583125575253363256335409966256917869347967135770348742659584955242102876239864693897529657389831415227487765192484963287850723062505476869546648587258715779320854383084346664020053511631521881603937806571414918724028005457079112863770389148073282621240863043884315946329334869885311114685813478925125368600384220534871494667574693013216612881024010159847542328763193889272833038615491160781306400615299273861990286963862322220060558872148792980321279123290771075730644972695836861243282827120339016001062561455147553723672005163979375625359098162243243454180054376914880862912795654262152227623626823784714302186308080911708704236521041751169707892143905753427779557241468989736857724184754660984784081075423327651503322063867207169404589880757127214821226309365407136622398102280183848028480761470709925677388980861651322550974824334940572112491524666556977126683770658893821053418789781347057327610574870354711826106631193398645070388030457086124132237892979998870056265758526665833497489127456572424329125068357767352882908846654117712528906942534266160917411708914640208617077360207590828144963449471721449636690807900644762530969157666520181018522475140974920722961029550183176138579911803118034934125532163464584519173006384099687596277171124102328837700597843739140066006139988755635866587568602789837351999835538132699776888730531678799772099518609467675877554402005042717604179857205253179672399269850965175270544217607338711069073153937899135679093296420127790015859322335128382017862447524732458076927046228344631424625187593484081613575899580445577184462895659081050715820117858875264233237338811560121728346676457798944185423288673773994550961274080560147630534254032090402589471687695562069885233422966835659994511747189876350231428261666170353977606640530406897918381700950678703597926697616957296146091268160957821214480641224014058818877147154935417154730346066250599735542977126137142822721585682707653384945461107583143582827024959264577983468203015296601217897053711622562785234585365633655737897159760245468938276138773013686407939966484755418503846084631230943346733079771661051576084817156556279230499582549181696326004566733440826028943064593794528441093720916125705682563936077082902253385447394058937997071416504967234674281654856968801471800162857977580522894251305748043803895735683523518268205803239545825891992260403513307100589276405593130363310994784253020885178374488116286017075457672468837751762488640352831533275325154982963381113800410680627206722892167111943784803571084574346212668077196677986694984555404733448645875373641199135305210012617146309726927341305348985192403644930772541603490608592060061885755894126461937603838580484673223843597906584451994783923233864331947014778617214949432538821629356357767378377263316810317153180437362558562481277303094569492557882596143882417979650998019235763586841700131416116297140965789601725569448865163748362006302358014970801461426178739802475612548137780923505130203789643116354705798439185212970811198785575501603489213919017677679439771848214863704709307649597644709172147229608663063998993681142217018732366226812550763214198454344464395244113509810761228915600682934535120739759788727891870121602005304295157548496532227498408473894529022440920889075942543366848838926034459886455361130760220500180549732999065930168452683446360900558461767102229404055617691679270179012797954834960515032829048752634627432061003975381870923350332630648722142985203113198102266265957281609786068893366180032151626899369234391849349730628557102773904616444303695441212328079208467023697582863579641992299137136625725212489484372546302114182270278199884540017727225036553918360236648605556425425289386471740941228783143899944573501861682228634583786410364499478584522298081009360698314115791617367825214865421569956639406579784487489088595822053170921475422654300427576289977714260730772862246597097466661821633301616926470672789416791809766831393497653204482544704563189204273140512993503554321468797559871519385068810501528186760473207065108403247867460836673311460600937876355670453144051751309121751342640023567829240684240003176925330753359011268280786189761842965306111165709576829719138992140248016237165995637393292270435222131587295569159370946878263222839536619943710883488556109563768796331195596109775341686111818697426080825822797126626986969637533633333556166709446410956541251833167383676443774625909869776276828807039747973730194355904078447278303916887887449870176176785104688577250509625043708093538755786317939544111002058791189948673803908232247973866939919720704294567587865458863712768418251968306990021370057758686363845144968131683526080704329409321184632471057238718590516105633629734087061774350081205996436464418735728334351824574821237440596431312310653374257382825341688242299848119469214802967034553143350412762428328501816084357215453128668388048672673039308498723783647528553299853361647558823005538301203474648577969652111701984717798661589639538284949471186125798656435138817939902540324660355908370677054736552683903380651445008078009986162027676666165239163528001890882088239717452812973039733421590480955217836971138633598303319633644263599809593809235889720891163860819454795870032909839104154976253546771314071666509558544091103767790569746161411986821141685733954563937225367616906116794043795224286921288457736056038408133071436364809045234452009606294029842485590168298274383985902694686805611434688575467584002713539940655842906007796396620370344682078842976570000186612168259029278212222749919030347016079236522782175209090333471039514324468106354169309392481431486751641610060762553357191253424972774014126412006938620554638802129117699916826316463995054479869902711781819776719404937335974193797621746200631674529786183121919636114707764814710709394275061972546665325275334568979091234113511677060478305801156373814506431448535367471138826689868264644714080812037525860797782304970552029051358755789193430226356520334289003733757584079511507299388090098176414492282542162097413430185580941650043374791000942270137877502888399312455137294235906383191308585800197163572930981357372160782871942215890546042007667941754680867641421916819494663427459872133471662937016678528146040173423942236549470778745148661724378418816109007967029292733255332176820901235646251448209546275701153510926937385015268326048570361220268513487200552316264979794809705887472455695776014509783726444202035034186228901958461769103446880603790079619375780492978824372984876906321158619952155210017710490500355961911854731032717703515268692791369390357609680844182977301851649410211942486339883864407912610732552694142331978986687406602173808488309124051621961111339407984627621160304956863721167977394478541687701885520311627241276926241315947192648167611818727682070642307872844111631373699211783926166552955840265442215041289115698422599787201196734837641038542205509189258916452356867042852160345761597774099937846352551887842855845429351877053541162871921871901164798963719237676309001823563963721759604146528032785925279981811836623355292081666444321900389918261050303415655344984509193131634514897908983813933100230338296517686824368275484860869028209262506896320643386392321162950787958675983889485415840938572988911873285337441649833129597779004276566725541754741153859524307210969069361409375447530164825059024859514460586185935362651602403935173894365163672864247537753133040715270162393768467688929575010981992744512301727148497523497916599704675871051025325844628009502252532950326021131268765510307289332291231311865036939363448854161264359725480444739227787400349688134533136803576070859112535405259814801162789222959363961574260952925078928647898722360594547943019131608573867286755513499812261671481395003145160800802927081068747187306471032538793180819607458180009966409031524154095644689401443204170025745256404548789801121197661570334955563465284597762393083317460756482743344362285195221725634932791489306570571812183342648528668030820162169996652711104352500388729262147187005607623601058410720301252421194194733204597520788234230780726467885194352110032666611313930782759340425601958357283924022812091284144494698552852354735895877609131114743488233285945332400072488971237831183522420314791446824778600897037564822952844579844026347700260554347702380965166864283146829072536226258141968669152839645033600767346448430217194507151260400624606646462401540558672594568865289438426859975678349873126853779898874337366698032402719923829588302523974863302891321968256736254583500270013581550786827733889822282347830386663627056182205297419135804895740130523374462274686616287358578446444016396445934193694743145867464362019171826039464509076424590601678474865526793266112022390965530692919120322446952263740874316352982060554521618993751409390263765295352725084933500021668422465841323913675996768871419240563084860331008336926422548405030048201997151462944863379536901530621436295192827988164501642219407828816755823953834843252318740500611807393453465041954592383780380914563277739123090003425960866823069337442213155177710490916171517877825864589968135280843867216699079739271692508501289931116052869296125389056785731708564797119889118347774081748869471754075008717743907043957850653907926766853593609485580959374588629808195680662163906740978192917666514676764290658638346067883473051377482880204723890364322910347086511617339509465143160942337615336507391809171783967797060318224371554997342748130663338409095101646528194936234503371657918968752510795382622217349614041581859440222042711696193461944349356162509675759122240585751389362223035820055320223789675852179963363326952339309513385904570865194033744430505501975282436261310713706780046446607072281309310729112800240333215099554518522991744576451242597526156264047504496221653508730596229821760488219516543824664427974154552483666349253275234443367722942503835248687289972049222746562925823103708160428568606510231167944222346258887879805234116982916950483409201533898913081416008324292075892439343206206728374886692693699203265052950597985338461569434606970035841593247697899602731507265028677714968502157462185124670671407067977662518065937333179146208012610663466316671382077643872812793497090989506522963675498545047578780859438215293626419467380801166176889977333655833412765855859119262389460791200645591863507203620163863049404285544914889415451185488552633319556609416786970177809532798573029451179684511184644784323657422673821439905598117878739700608990678584298231739059981022897954604218357798070867083511184067493822428166089542302047716533283359062241492167628441172363338478727582950783191350631324978193725611412513855384129404931486876593284728798412062789230084956006867298941562945968115549335682965288707333117039745624914658441700025649888156267374899684768345284013351411771592197430536668717199409624870440944062507273419528583320821212750325078253842406934958325686934575326229577292909322211549740511352797444608418697784713282328761378313079743196119792822610664360313023113362012393969236984207690954408231216824671820308530484659585097759991280840190393425563357389985144256874647113425452122934175332006907116911038070503229314788862097458351121553424485390424184761997314865133512385589584653990383984423741086535921621034085275177168000937714886962049817007023249269049555358211738980141089936388336507857709232189508756075077469262213076576959180421210251481801451448720898252069632785664563332945843631089391434842075068477336415420768383631552037031956769190823088644750495893941171453999922228315290003911273681283106432372259606774748628576725210427416155557855092305782535260108228789684173939069093086696966574749483470699169453752717004262130671321203798007979913629596172228064880446700566462952555892969344487663394807458147603902701228316476103489690707222901911518312102188485711851042482008608576317704980544430554057206485238224600594783078695982003291567459483710888846396914815266980456246307661150975825165469058976963588033776418244435471988726542584531427126200651834702748781516166527932522663867613519888051247022167694655353016818643154468666066064233402777492336784622301345023550441808494038415983874922284426901547251027063987331175914361483741927887946444617047807633228831658939774817334849344068663871361028841740631045076153346313472940419976680421848655082123267873727696820456323966315923167230362579553971211838308523455269977967253428349814202650474969991349014335575177827696125092628863502469268386229787394223363198564068118157574333350565635050854300314844179950989801719094557286527986575468992587599992882944187723366150141430408748847121007600023867085614845288099008757953301112216149886526557204972129999842276728195283192000544988621167065414999346261228345580912507715455802791539623719744814406978395871914838240518286115858434955847672043784761027740642686266271127085577405222446798828542007786017905068251747792356353366266012840644968391241367197552528862868833779715590577777253232890334484854831698780822273241527116314837058493279196727342066946901591975509786349032030301161816335126162035127459649857873702607052773068684498733592946857411078367002648884892718603634283556058155296125405188339088514675637059942566757133270737359778264173265903351555605865613273632845745757533823291473731994776301480455659967324366276579986049235767415693357230914320726878329879182232650319544306881159739866198959133384388092438344372445809184627162017918426469549183181862141549099342403062875924400364773132971158227770205148684596606909379571753651567333331296643969244330685252432696401771427038683863298068745716441497662829547416501336286280496766061200714266187531624322783047724922855522914408561101941771746646510356115912467353866046265347013062845137571981003994449260813051736008051571070462528629373964831194179280204456979921353386894025656135952070837486090401536613739376858180871761194359749365528466718884644119825309089958811390188760803636361353164180652489128973385593242477111190902550378753668431471593041189082869950027520831423637401321043405652622967808486078109097728438386033927573001899140627805999485166917394024803741141275450335877655300846671006366831990895009506059732450352828014534261625111237299471458851497049041120558837160661962060330075280669872820491397098477241199791927921817858133807635542173865708858878652594562708122700433743834771687640064920774839006305195784950295737001401044452078934323828474224155827095402759155746191214704674778273794146785639595519814908792278326273746037423713261592212596250722580124393599710241470033961263058302933042946527210675434539142996937554258663652352550089924700220203354699754370673318947680704428687735295836668248956250634870723039780530976563643807846836829800959012853532635087045116544644910201984111061660476946975507664117723287604376051564027165418789131074641671185094416714449735262534863964991001327615466464492239546553507505978087549201602040771646514835835311435883462518843129028144484675571773816655620154422857549306210185861793813879092819249437922883238931325337953608097826934679800891243393754254222941442447677356075410214489627848391544281679566695688970632414000189579918726588559828037659369482932876343705809012286265306240614806204710870907763844074312043463491500567944298164833176527498773999283812928460032569359552846002297137114067519090597460155581695077502483219272837554392419495457092126580043869853676535047610747290800480439985081698327114490471627498712597043190864708224294999402236641955255708213706637196555632177383218285988279791925602371914388345900255337974426913514296028628294707078507499075277282583512607180590366012840163293532088381688302781857332730388970161129700404081580654428190016661152865315200792826801799676458145906507691111279153068589178540533835511979658737849081841067538310401308476854117349724836028375162483938817164815174498293663349841721059314030782586636594683370774474941148227174308622925487871975397717599870358025439610704926208714405592059264267669895225698440027458438918355606787250363791969397664025978986873827658325889541893693538909884729003517070854652480868472696748432765942835385300394030259632847390607971803547241431029267481714043926520623473839636274000555995518072222095088500998340245817464689577922189455236920602666859342323833852501503629883944716718307289796721398593713967750444643912377898709093993327037953466379982509365342387987797711348881816265531414432504589808343792510767727249301029885713017559280801603930000589211845132675229461353652368337866463946851087703678582124854844581135754093736445053415881291289791949939263403229130492081672189221875539785944962444098885836292293734518376227382336138244968438278602018739418671232004910450190531548364475487979029463817192756958048439236246852530243242329525516008217813369653512099979133487895339516271306965671855038177674984218304971605770052301323559837567134450833167322557946999867100363545802302724327552613639023095369443949180984757592570822639149229641395688245729463718530967984073640811292615304689453298538010031768820763887922638407894239430956454918066094953106623978577760465586211473101497913938308802797085934875941990586723773314977638228554654649604417354446637402517204648111605388898127646944053413475216452547978988618372238733648810707100551957062093981075258479545217305603557230044506688393748463502742220885946454665055209526594114190284687734275531758989673249842057890307946389636252785007357152831623241205316509322275533471855916520276667150976136074822134456643400084462526733464993607656571284314336573978134562013821364353074386544861169583886751582358442631962551627766314811174549071532366815257904220016805704358611908332040792481730721435807994537849397740151721906619181037522695110475020819698481316308941685979826902566158580895792319387803842590270856395017847093999987441674994320652320817683150837853191094928576023557161714058437780840230106786053015296924922205422638491655623621348520520640194647953776499838704358267318692587927183580043357161317169991022361269581425548556172821402723617831162402296331454309284857773171332215147164970027659145580483766686309029406240087383573620963025037729553499064494110575193342343772831373005595857262415744428714720538154192548074684933645402202809281302821109136510748829941150518666683648684991993301816350677212799594368435233308151754599317353441248711718247162035652659554228993247365365448362675064044371780397119547684916331777212574772591825583015265840976091880587066062839750275168123251451451140480896348113706916838834690050092329780718909466249654704388055833575074188135004897407955331092543236089062900514925287251701921735099007081865871213607764095881417571744895363664249656752040193345870595201240654567122134219223868734354712063812608951703430243748322157836731733226285762897756591333421486447406576360989493250416887643815200462092721351066753875350183328884117947451126681245564951788346449741488265083791996768214236739704580492556354042034714164239422094905540127696906536956647274586242157464104272594086248612267017206614859263021452090454699977496085689180131025504115157068303710016569328780538372328941291834782511943189259453993679556288471320728077149786291338787616183418478524991894169929903580718618007817968418232993021457772279460066825197132649010136870709072960384563265822502293870748442177567086021252288611731407779562267293720143083317786426320577511612852217542629515887596303969064154359005515565884370686914344791366524620964993917475286292911726555303047514776910908479826284696759670671665319077495038414854357426657334807491914211640616124549390243932183434112389042718025017974159732392482333174048749766544132334888030729259030021141955606329789041509846143043267717040815801538583050355404188522517733079401391398754642124905336666343232759329299367269845624654626808910392537576188119885909966933322285781029463677632265880391758441858477564804756391622889395781299958260233737595473431059753930667724756430400679777426314138385690605860150162394835936070344547899156439035469383809160078120691898974002440422238795677340910344006513494516722579662335871827556946614386250398912144345716353827146495858363867660468923280483563307681638782669675271732604419497611763910917772730965405445512543829946614248581749101522366318648801189557437086607727819587441940585451440606802822426027708148905993690655306965351743369323807677609706703103547975108222539704900071315858886573647212459070821659724548835264325594705261759566278733821744413649781989671920378355031907784633339788133947267282505027927692383762271175027679415058544415551219045660107948913826144417530113461956756489344387956171484873889101820442577602807415786347711737870208170072730859121663632132022866969079483025982023761252143110528121485786670809196830499533066084437604750093456914807903958741078846646967394908168348389869566447920416437252809826631540245008116886259091794814271061535714732294814357145639694270579732757896813323413558605213159544917446877417539911689619348125067981624274420286862254540331458896668548741289163062252716443338567543224916069403302971206423715184808375877098796139667607403010646231718304477861875622943472754508158382572073910079727496470834913397047687797757447043186968134195826817142052782152908624328129164256679272867020999713261723893258367481477235627591379668999524618215831571200725335092727636780114713429033398801511200933554307048827201115466146156748643798602459650130369949028491186868738279397124025214788653257184985582298324236426452672154879355403725920519358353681235990183594472024532432827949480103150389536366048567556277414745974493925669044161768989806502939278087887964805882324267345459029208127027235710608419862835595072747615545062860758548227838640865734228918078535288489092398853936173735649233952488011743639834886734596502791404870601384144866569526214876610794522601493490563669399817388654122749322064825823533934684866269503160973395288104949207921951325197323209446972259158130278980539497605117658279532378586224809650996219265394407627394147007215353622910501952393854574737416589963821646721185484785636138764498332553104353016694693723282962251846196308775175281594357240580184505487240416600559987096889868284701566261831515221128417909212837503329749452000434245278670909303830185785179918739126038553409728345098661304826815643307695809650978280751485548655346306685815821362045812044799990121026105590651636381829253284287417039409042305804043310965462186472129226186943994964239374508452954184656889896267728046918985156369313945223718089386628564526687107051469298541171121605345613460523687116534145968950113581857841434765781219211613179508209410086856850800768589600508561013116592549708809618350698556190653503214438752203641430508465899293082695844202796566646306373204162192445984752840817438620235906758291117286738162505546946936013135148018379997867141963591986841036256266167495747112397015466044323990891119979481752521891454809451155644719381614070465084774342934011165048103753671508985855266202817513874482594697430182887210453122657689234885076223924795164997833260024512784719491247431258700979592470968721086408848694332855265305008760419618581502187741211830157504654730820735101343940405062202687712702820365919721600545168211958153008273407602055826799324853136262814856253494193495480095418950841835538585279551984886012277696629485363872942511463337678763585148988053322892947953183967768065889540467191450393823834568981490629791392111679572440515741575924067197305588937334867181285831142065022938078628970162697481640995572551977762554030460203452698662356096565637522943060559102838836149159479865376504948068374142487860249434739859116672428712939859593124401809013689964787474865726362235245377849682963924699249421353458164268944728085070677582149283730340569270108123411224437726744742689789925298154055462591567996462229365382954827261642799491757711648555760399628207937346826253825058542357684058485644663781447709490385339964776929524757558410192021582341399197483680240570320443580760890725259657691959668047650600171367011548167288520003744264516420567765675515438406415395346769191133407874866457493995969617579159883080780488946721319293793786053019011156806559136109744429099661513899313495283037143547582525753582340688019083594286918189042790596674664465035071923128628033894411629607010023841887046654640129123239426880733213665066660286876641288085586242221471168209259120016803287471395321449269942341736952097434359222255213864377836839756322416714666111020915682832359058444673130474955961551727558992226318566960286915805212583065432476548661336208829280399713646016975114673183430278601580427884520789663332470093471912774114742603082840088935314919138926682708052077018026073977700526296310218848300429759211915728049407532868048276238403380524601374654257783209758595153000117404860858909305845967620926491413555167262333134559163544850376176407241173900787603260096654188545140260832016214817993277243498012078239485535083308931045669548706248200720305441762130481928160027829409002679157399615553781127644344267545534833513926279552144294020171370524631085474667265163864105562264732194087010329301245303922105539293272102567006510157166241694868908251012674586309719876620673024394464449651676132111375434729062905177443434486331413390126998884780713096947515358050848561481548284239232290913943960172405099719051662886601440021046981599391567346774594045135165960279412168036909802113880391162009752658222812788860715418128136691774801322565225242401166128237988704715361381705106069796036784774080501821844729847157515628735018824943450451898475066673411271727421227772844950195511466641307234966910139935634676677321926337572330768919687645404644471556201263071899677437959446558809066231512331772514596581789291822450746304251362196180323715984381887068953995634848396378172780434952555963865955478318027122212878732635748866343727603145024505425440077386002541326886129478904592505563948791178526185372889228677857215683567144942147496992363092437545476595315028447046286787965298475189721227496455331330433677258480690729124952999086661832966698753575374822926860144093281996732791712179147574535534754880666686949467110483998994300930084484862440195257340231501876392821912451431429513519033953236350572486177596622160645855970549397232195107928535397387354031436246653465605491490628259580784180664395314753966259015101485287376400791443751433374139918157619695948335511155481748838997605915782519392739323740482037966212483607364184461711128295981542888784471115331238476932400852136186370212348992745222995737467368954183447584469462626027497275341700696980587738988347690474760006270188533647385992202786399179558467576804145756468500481766631070377268728455974636112612363490245325686191481468618502352660099199816015662727714589800667180905699450587453064938723522099401544166498468205001131364621385009271821941428496728659357736796211632385930182544680001931097488226096147061501083672554874074354375436387808806894752714860507594551621495709401934184219381932920369527162438608582121421261145258656471515411652087760791142419678087073725938801128323291395742737395392779028392703469724702889242506573466094106419461902693528791271456941447785088237140006199566185122568949364177647288086712105467907534278947961102590814548204956431274614393190554254615193055584612787579985117200445497075567910989161697621436359688480310120164770590109548062127422943201148312167336886732746456775185209341656603468741855645021639212133205140466814987366928731719640814826280969052011283616279081660073953706586785392451105367187628167415587716789668745895866076865393464249657721350686499493987969539817339878971296298371833946439051436352506547815908123973882777106839238667231918009995591372888832886712497448448878370284215511007120904757878204573965421051284422739644682406324959378627461031811652589358519058933229638373819721573013134097101526977786404816962734125887837630178235947313776143232262717694667029998234467632733976164579368213838355892459553758243384053355731228460234835095608753683865398587721968956278380415192286319933035067617621368637144922799841316322449312702497809393246746167105644768146024726435912338452219299500773882176121007053870400596042585525700474632837015322717235401812771280106021634981796007715971796551710776087801474261395601080089216727125147875046534746138072130566584335725011286086307575503883701285469009859127759978123997933971657616181969824647447787823858999393670151980483681036359783381718502996525522699491536668544942539574713774389970936422119168106184724175096772133579263935194654201670212353033767304727690318149785155980679510432175587161407519873779758518150092128650778437169409992533918384863326986066580132904234317688795197045763732201011890832605669816800473964100255281433573618234589306089558819386326973407603840360445200896773539241565270662629689327744528194049154107089699400033337333030142958824043517135404142643924970312440608887106631123805310601880574367503633346133788948378147383005100625196295852176020341422064832899579440467147402014116602729575579242981504769220199007352279325494167015148375458709192906623828468133326017379260376207556847820698257393358069857046490029425957049488085682330371508741905818086140156001067806833698207115721302673230699643116900689665284913859537121355591495360459254785207331155617157581837084774520208932362121080824139234751802070179345124503529233047616866518395584122582743061739079890948491907409120656823252221164756499542870224280310147092349577878256237750339606884187032649444327449147880786802114258432661044516418303485427683937908150213361410217951379809949508744369590507497678586844738915206699768005678154185152126250794970711653684135185217966094669737332841713213869171597415415420240754034451926633441370679971051512296115242433018827524024074283014077600121082572855767346173922215206936614426754350828370359377652378827339673159258167997174455791762801042676058490292350558699680708134313468606413630970906583360651652130165098024610955135389424366844026275324353802330309703336753986235370549113797438315589771545041990938130407758882235696364299785315318411714209628569394122826308788780930674708278481670611923946242486430982599449073359907264233386421569364606540356899482264479008503053098008352204024362995008342162617696677954710443111735985880476016030705109317251451758644783244335555964143755816177145562870219595937839603439130113103483410434520444435909117818885122733541488981473379138867872776565413627002121446835920177975204404588679152776118878035542519605672356427213405165008370432512147243703662064574944647376694897288215136884357499297464859847533762221517318424527471672129237117107954295331209061707395832843477060459488156421694703694014857673225023486893872185535331975341816477697766013696250112050732695966729578664326423044714699712540408204889616360193357055447998940357911753809808833207505324685354069530239646113322420393687287675535709982188527142492110071110592701004988603409175456095758420719533962849496266684779259112385726385820034615640518464814072916682566793890806778134816331615176172182019816184620476650933214092568345768796568014374507547755495040923889753234527350462121590628856908346674563479728272356589549634825169366001958684216659870757824215477280672370146306425999251735650184260488326556363599336781517439738705728678819375213099315109523320119072147968277266938084514135612111632157433387946671911840507206097904830718904633981241821748576536606377219070480812842498223206229978377965648358911680883189706319315524994480704985913547736900663046164486953487044698288320935336083213935743578579474832325197145601699793848046858111219998401498861667721859820307242673923366091767795066021400883099651100268236999379126223637730705292625317844779142449364336856842934674336086061541327019565594440465250646668963515823803822343559938899829917952613845407181654436761382859445552612121207535460925200009865973798620031496552884076660463883221586606309285100176827761037884318921719579178631121040348595728109826547033562598767183510898663283669462079405311912500522594090987468025240567074861749901239029333459490542825954908369911481091711646361861576062378093560183542994125694156622896924571990806103603059332629514201428873462536044779254647865424253761930764070560969325873534567424399489174454632257920438513208107151593908837928761404655819754816178328434283094619343848074867354208913834638595615121127403203330378347030719505998498466311611449854295390185441753151068508452742652465716847663377113955976986528572388961495626034503275606460437471586423658584358330242079846826792467324961228129374609397302657875042326223314766332330025547360954551189025279556483863457640197595723785227486981281329642438089540199141746819768878978732746689566968479758394373438477676658133827532853716000512766676516730596116243536430239079062867030919594944672852768827957975216046807325968550608162710290727009823431961734443033053440352750275538157282912618665467257560677185081404251971157258742559303254032842685029933115531998534623238472335926636005384686433742934107443641089992523709818319777852194637518103314827857603053528700647213500970767182404436025830919027831062907438674898878017873789859584050407748306755119494913041598009772149973643809807959245985929860788846372059415981937849351572102310934955984424064240109933742424274791018633014542024373619047888091239021761685253177944036061665685343392866040712699477448468873880842500430220395025302377631229257268227738533131046885455264722072346956467238541683085538587438754095532066963139482061812997294781822213158500402189195650422484323567443396155078345156097695008562712209195190763636160720329861342279385940746155896929306143192807899279622325953075252141116273032585722012702000041411330981578408459725509924451058422231149288300941826006953036223881821123629269124664370460177359871292999444716223579599993396766832941168291824385999053629526708067448339073183195274103790981451851431387597722035099680184429039695878820029026606731275735552628183603801365096198594703988107935745658178203020816588067483371487533248271454686823212073432447026824777100710284384415696425157155078697745585949434627561016402697977583437627206865082457537323159418000862029152118515710262662445132610828974039405834184299103251609093533972769575395074716416705712165957318428984043776703809725888131469205993029051986134369114084802120254732738312694093011523831506652277989663617861887155389508307046525434201672503371526186880379153243317544011870196406554705582591191170757210101460898409901588013823614170523401694398653686516600412626770122754646338071853223916299625234866441964880489768081782986603835538742787644074770831852430708372422701490741110806246180803415210582537739205480986391231670485517288120231955289360055574024290796972018249417574482122376519105828436761077055301396999251546401522405846259096493157021609045660064687203724542211808894128921990082422782573426784148542113617417988280186475946822356884421599138465466685828515971440650697600149172137939379165993269455208259538604543764903452484118643274455365233701639842104064613542243055071868846926010116938757060504104203197188935613445775386043717134252510227730243766880672293987384299086368505257588602489077532124296876121482599480675814636667964911855385234815978316639358794267338126689324207804850062146473936627272540186715209013975540873285530722443269834858334262846721215077481610883374752210397490474697138270870016428266578426239276407491173636050466644142356629579034306006516413285401776692501909055770936868477219582233365407142142659939638534055756446403873293638799273353737208414711436775789290196401216911926272144777045257981748618049313427743337436735282935281677804823373162361498752969817635615692973028052375640919164583743544919044938603180332874943780357727775364370046500091377974841546638089309213673696955042277592624827068805433451412898736141640647406854536018623199932441204131936306668493008494386696606905928798468455192437463540684492639805979474642731356371815541845390484356936442420653260898934459067020534746881458760890552277025416456579250039012589998173948645183850671022773491728597619916493113857958797867667918071541881398013426039728823963643306448791069424105519516850229952321635245206945677164339219450970879304745670174071393187343105601980848030458659956621027074878354814957843231387275786871961988292649543357155106716701889672424880130470953927464340913094801072952463944345264904187997952794549150146605446516627567298197911984292737031755995227083186588776032803362395656344985000283779802371584253345584503810836087541464251147720907917604668204437602750972194158831938508522200870541718976192095108237351172152900322130176742098749538962483973724942977612843700903192476056190508635505551701764663046112884558467534117715857310737201730777526217209973352691899916388301024923427627244912019274068995680613213956324009360617682066662970023791214546311118816607263591601741088803501502149010343870176755446137721568039961817350025249978038456635069721923088322352125901953855295050178727413781255129390194350208561192486592087544663659489440445514985642822830385340298382612987261908426552281527872412645819249302600141134679045151247222194495119971072020467408155409653998077963003962782750102383109670152289149060364772961985341995310708603509755067297785221401498355057629741619592574714760280401994682049960974531743256173340611784440725566222164058973665796149407387023884473069409529403182963259703940137051336301112530873331253099651429265495019119321290865366566454357060924700154096242920346320169769825179555409580589390394004238639934661966742319737693833704255922257143157270795601235556140660368996959679982303190711083302132262454217605732866427597880010499368451702537708814941283143475346070528232939233872199424176593284136441027074119580693982516887190108558390095171419522089412531926656792064009238926134243080819350113746732893433746515189581236508174657740562237640180375938606554677967916793191795359227305403645110372668431308871543678301417941979453958038099632093299715031265184360649576889199460036813740904485793566955156108318945984822309604869861100725881689673476895588207766427303654363616608577708821222874470388368302195339122927780637120955771010540262532290472444014978730103397960326522252262802705836428536353690309622426277779745411384866127733710681872973020779213823996557523675178161654696740958787348577022532978219296736608362901392286029499914976216481237435713202873413355597847684128233332358232642385349504438672788671287318196430832084498224676566339249727649472310290084137539221941651585717009460516798563307283613884333567127395799639984564133225066675996575912611162875548207073466165761410126278070675702293944858850722406592053297620310747888176056312058219110077725308706083405875019194378999252846545719432049048209898025564212436235007072800540321649402253828480208824537338832809708269351379010512756853256834713017784464931121205820007486333170176477458372154299758305793250773796603308497476040188921497720241991037734746208556838971446117224362351057424342668376028556940846278616693359305271268699307747039040939731347904597751180949118614837519326085154242020264344976738429552807656886983877726594222647745803067745043261240434853676226559917149155514306437713380286349384925383871305609727393891674992447741588672014133693222701455199959179753403806761555152727271617568646508448840405311627354988670045889773611633481515772079259415523469086788546412022559808281661848870035034138385403497836287852789411680940684434891221615984640838957502361876379070262143605486993219269125274100366698624860856281246966381462660406187892724847947526500551866842070462967254604539631883543544535343203674116266663185700468588768566026154430991624761272555616959498576318715773047519138666653053683341214502830515050945671095280338644171005969332194085748315534460461895867899707955479671349625962098251034894092686666593665008070112378072300245022871741841648580107849674655201932032778478601206887401077999666295600574795364040996307585684651682883116595957712222876465026808105015117845979316595776450404388145740276799532338853578705524784703932887387402342901484429265165183382702702105671552962658715666590099769169039371617831157717879831040633811125399555659097864518118236205840752049792640863921694386472353791645004518021292835312056113556434118199253563625336085252085823097844944473915845996476005016725371082205485240416463898193509671617856505959578409509437364766013100915973972176210977731239077503141703514728502030583499427114571495127477857337811348270669011499420540770880073307400458968780368487674901498412487756286753904729373684849609612681841151499118038956789952607253595655287653465853390987649315890643593851155951935146660150628264434371889423286267286722883874746547054760860202171263351151226040387679013661855499205310505391274380864683244378804314181823945583079065163491014999532311175243893597767412121355995227927247166495060815695644687380765994825229356643773476542566612245296285458592957985169540742774054380207521508863058576996708988326712921981336978324703739463497732768771770724138800467130653865479839036968758248101894928351351826590727486303126539511405301605034629476084284507533126732068263498958982444854069917608497763184254762315685738869231894805575620242486129992221331313964528130929555466406312430957616431110204346816377341991060813761017789217955877474187634540665571398776512226630205428594046556932152653587537477112270352714656723143708511112711834331487407790979285123038714145692470763157065843714645290407514972003242024717253491925450006108731934379592380027208043144923727858877232964870610630804369031517703953288625732908518870046706811917716956626225303020967192064027556423395053352410035780341424648696302113766848995175345742164324949341922992403821853798653129190975194940281926265678162722566062669143534836689707455984644704026121460197574537960559833306581505702067576055503478284216161355593399747399792215256196395302737701440253258381139056578746095189326293107054154207654885126315727380631709838282806988642492786049378443475115672233987019919815655996526417816455995342070864761082359912208450630087127898772033355526829423905095772436976166087441256850056752819295942474063039153892740279558978875148417749834373995782787784488149145903004399818209146233071547138246398249019639579766040474064022453003010963807950942315845190540904463201733715527080699523822816208605767022269783364555601188415861531309068953136622687702960352784248533865023418582654595772824349100882364157203454955340970264834266158098412784865581626574791730312811577395929158892922361068168690678584931927868503249829990784203862962644573483045891682216699720389059935814027092681772120948182977395702787690392505721518542113719426943091175268781877516863303424799846098842950556020228732014981186643731131562882420797878475800038242916018863163595740060497779088457100341848763289203550481936954137657079300100340195798769516780617449294175615082243210391537039252403457661116143536218767066016119220323975293163624304274912980260132932663543360033571808523914961310048906467771607141402022672693954999737083634487848584046557434912869472287259011733792963628894740141666726751793744941713438941186201075386432834640291534399701626181238265065037058047249220153393323485113979020350745803267321107558917837425064965347610809109746313015874400352538139148835663659898332504506861384750120002135542901502602185156527502730475764492595184380261366488502025361628783056847946591556813120832157274399814840879379301257586538751472993480196489003820039618658879295475896635626612604802063771102370968972280187015387925196292343708946193527832796535901756742566628252785778480628270737340427963639820208031919916315761034906210641989107743275818145591026075563087936915734859240218600137403681628425108057342705257466100118439763974169118740049979845875605489756014647805655692262043492947049085288390996424221329067471713309517125248238799657185460174405388753990474657569169817196034122198412450933682124060627984247926730961397551857504842184753767235185918226514820877029168618075331800543467578875526517983014554655333920493748271647630717923949649007463580984077975100184019216167942594293803176945784953595611228699462052560286127281196938848844743343880434611610943541483459040709472855974677456041221048571600731501058862281322498921128888436432118929036479446643506414618502314825216202428027927354733790944906395849811427906681882197665861333583870882416971008024233903010692089009722090846840449658647213121976908187029857599238405987272844646748430535343505390640368683055142718115125707780352826075893627485783271844901408225243357048181513641807829258217675347525870372184050222891720063892059478983979977907533327586046217320378763987169966750754597975711396054682927822440517726789172484108086238556400945671293866161780997898713522893736222179259432808960935267992579962273016135140852701622264804383542249779153835207853839729362967698154330360456113754778681754075248565289921059354935965795877941818306510950996253060998270998562343591025473450497683301064474696090669766886968027295545817267242105531906135309281936702343282549051951619903695302348619354246750870283597726416644870615176726063045336479699224026896524210214270121560987214896280606217459054535311854431779239749698304078535003392007317805696705503703087637849971342220369630560062398646067347081593734698825783681053973069896965837354171565460411979289320062786774498724105645574763217763541571882931808381748215930006704525499573402039997849467178277352338717229697155764531344954048146920092204497773499201806164691932048436386968257076086494172695991266595371207523428241799933139807212585433131023700045994045747969238401801716119384143813712471065779342825112974932743214081799019408252715935556082558756554113718255728237832746885164458524692552159805920688248242173330381285231626705475666371594714442200810055796188434719330182789627932286930671500572338907481669726733445977586471253682993689618947925234314211921884149765815673719843721369437301607861281947368283402899469997013810759625265200188140592941170123231720967380022691832999588435484783714639882645372520249321001897542884713290513049264377923958589059660418483448495615124955148513186337242132131964382282818218643650426867221947637958229610570193831686451669668125552802088888501240315370457482783062386223680490256807479769611890573426383324768671217851488834476659948644587134347229464357444150812735001137222201387243297819654919928134797521078523151326745714185001886587029338626208616002581275832693812251456138292998515487756094683384203880691741925481893449394766886533998123622454088597761164410927147255304058539403071207420877565757573189892036741482727078129786456063849464262091490978953012966028017505827309316172629052921570731121084643353101132052975752709776765065403605411792512525291383720921567386391101569641540397536751491397835992584914878232635071105207603226861900062868383748194170218309809765292704935835005979616070765466468585382997393574864996771523809460732653961675881977527088927027891244801785253400573661455865872352413616925478359725531714536158079989237808951831029418955741645838961965873437146143202482803800363268727012463259952203063519826831942507460888403126836741746335366217299222926467850502794251093657612668950658332103107221047187002901956433637690748115606468633760929741670981833832235676501897598597472680547376488568740695730353323478472995296377810272732805343979490600878347020292422078826361287269953680396160002990146173913238934169251915645507065911176085752706191635676785474492561884237845828670081657170531219981106519154320692712643907633634664285646812303455845571429611841959613035715345771238676745627076991933792108494193735855966321566423635652154805718316205258185728889760137051489247759485562988492586835741707336875479511614563630383736355200518314882933630928572739759610727951274257438013034331188538868114214317648394026743405851644740682165550770142575463251833013181823060362949815593530697712981228571074290973716603684396642009937363508607214986120966628864048336993957632188881165491939848539045465180697399159718276506445308768146465039216600307075710070472301330990105531853203827071725878250858134432910741442527731226104103596049010962824050342722637451948020936125367301644751661836217007004211747745513780055100301962109086394856978282846080557821715619289214346403820455535901184147782904866103512501974474860829659985982004563023891623153142609740132815242184444234802020756185742461286687582621933659066247128043146687514634768923575290273218912935143809802143729181783769333083019984541175361205346439684705982687506693785603906577664395229381944439426299752459308666678594657978066237376707192532758186760119108091749363657514693075500207684849303430593257919006326135891243522136012898787517039325791620283519718760393350411802277386656467081185638264986856683289486354437355443867108460994400704810480516304953285432288102885109508531566626385454342718223220022948592596371506907177401802729341459498629541119139355089530365536633072731778824849021030413836393674333622584907422720956930331717263861779567054316030278616775068627171402539661457254204439131915225242839397450926567871575350324394010401469848585910336344818511405114267028607758669506984815762521683755425023665182568588259936450624054905108351752694505147244322939800683689256666016357348504165840967760388133665537113225553550523209704371061056782721837852263404922998421785176737894069883850746202306530780432827592052104179673502177501292979269635752394819848228554652686616823886052532697743345585140951900140986306781003177646715938098723369651464035423746516061416099029990025894899001722925247981983746935639338049561478232393422508486903256164468163047382489419360172169198234992626036386594903097530796447863910615600136596603394912268343643654520181338972801617894545685829841250729078642415942464752870684038509433465679905039491970163027407853165543941828551362947462197788484258587399835262664416559133558023569710790631723389227476945718454155058526237163483181350219671088992314175822706667026514906410995969189419039719282593056300516355492812504578356839763155354065126322407946416461670437802379215969011505198453372572422306531504230298917521073753249692616018236972641721363629680772318822225152862021822029537474966355912518767341016334794494155381970747023692493181725899838107085164841991363139799863534681193020809829684020948885690979966376990126816218344713573079333310591123236909963429334807182278499541883200812432186730172697410927607224028242897647317460435097870098702057527580644758729246295785511737743987104795783260419971174637613555158621677843253652478403807144251460817136456228151465552065841277149286058680517566058339738116896781184604457082560046480048201963068612119574021979873576182494990633851123670708075627827096454877239866351145910341123605006214135025858369949967526714244802797423518235463599322820419321871850345590461101985017607000534306776661035122170113152257107922124778353713195951824892906607558364804410670777068416054198568338007318347280802447787248041678601440505650826500947712504955830812027551352747616599587637849598112009925066398202660391164439329903995639415026291874668272489850769482956055892731819189644069565478124925212895119660604619675930116349710128209874552675647655117073764404374805068199258512764028076217261805901446225329152082158187543624798753649654934805604894161477113734640030373844610421916352260087414581464193210608372202919789503308517938819442389222295404069274831881664166217514035066566420790762819488061217232477098651388090253419972575826867779066209297277174998249266881215446155592181887437458371306455026719554501146077385036918395997326977374189782411676471228108279039037039231916476475592416514298947896402599637813707704628225943476279997491100695093447303543549140823575673012781624528017602852137994397653868634018420614207183274789660632157432911361334684412759990887591567286937855609439913126314488711696157433051490749000364462160958765405571916067233990060291725854105746997366648493410047314969408296511416225999010847737850105001617011498867061176905652881348924809227780816635865160518962233467972230236171881014827122771004272082857010679502228553530120068270312905038999010467950396284448173888726882922245676633413348051474348712027801597855788459275797370267260238857607093422551888375668652024895991683228957064138602219739242274884076705277393485325668169151928250999124924764892845321343894343994422620249698049129673091397257591261381255540508477504761264612409534747167344457292805322978401297826912783489968314552112099749689183762263063844787928436069613817879217818886708072668698618464044235097985872417490353362880733166353703861696341058287869309295258539092207489030135451220817052631944928899841689382177787242955973076895325900191527426353497722210547732747313876957454828411259281096722524758549100261119318000613415434144708227890872258420478298475858268571609725802468278017098494536401844716820168035310708311946089371456493628637980819043573810087917975714265319671237566118123660843540043407720323731075219719606597909571646005494970106540778413158956894834277429534739644500041633329898300721217326825710800556398947459593817747661761201098943966261777675867555988506191091045755798718065274967096999356793440327434035883779064960603964928783622532562290566031543170532108003991916778750632680343292625660722579478211401064067097212730588008925117931406830792654517637876540501435658543851440669340203630863583816570991981916870368923425219637800320655080097181072793963223786481265129194618306576998482909594138610786136978680728567634417411876872056389588521292037036241586249757515091757982733876995068909906022885970705635219535160932365429477106489915994170490501158912720842515372471957561102840105549408620727179818170693353254038807305215073319095124439998313420607069679573695446612447602332904233732741924921444286082221813796470386231291913607657850102900469466866348370771485361442366895806854740151155061039122590898770682614880482395934571368587984163360860599852467326335826727882694849518177242359444341962677583850513195001356188721495131239236643145515084351215677706403195339006984385678028863819991357359785729244903917264425207993681129776552636936667893329097894004080579391260301143007434955921552033811327565873603792207737855516333058824517950852702752950774255853676459895555474198900886893193491214375287596419890345250817030812286131453496871063410306987234314976972469148501138636422063759126063157699128841584513348320057295793133650806723433497648807826034318342042489749915477880405974585483445562804469855566212304639401801726971963847608771089927948029596686418450072064351744377051137079987700122654810124855276624337517767195976556612289707412519647985304287691278468451759477793827365113153585636196279132494044371596748511826923955011702675101007489484193922102966711486864918157570251924169999788530929567289682292974795208749054283035485432050640113533041991612164858169031989885102425843344379401645724217580275806993814298509485440414959789362897585320109812619549735506149621682593610443183675488098833154566634441588765295768943651594480169983339632987352255967281217752402095956797382435592434164675033795957695200434184059634053535403410168545307450900989156633589918113343782433152930968575925884884307419393835657077913636122646777584427914478462615278105858662107469382742381006810999136479741405016912948231830046999073038129480684172579506030410410636295497999929432879855753056234411615494882603877163226304211826948288168952053962498614361541020852966328078795220022505512609618066154264060530697269681330223370956454011662731838843262288147178934952452737726581187635394059149884914950849860409372376816879258866167886246647465143384247411859778394992321454783836070368490835383115731253784047662022931506697249862541971292558152263510370859061652085713340824985976218449233134781813592269018596816563679019394303528654856896498810403139962736032025707009861774568832706756182441724464967429563205767449809139705150180984757075365848487657035680874224730560421713211311775323666593034045578063197878502207685869193001464729523137245120932768446228678870781084439919426279217722982217317800027012994742378338440495647694989166334391584851002650506636823172479710286417701696613158701203386933879413049624975645272456066438371041031913802174395465054317717729474231970706876938110606280950756592911090751807203415240641766539069294166192612353586495377774855003887717659241712655850103971397830827640857322801021398070786224738469420130234177758530584623063121376748093196001060455030512443392991520784963044440634712129535999764992731345066445622473032235566604019955762827044932315212396022565646578141825895133261704285807166593585800291551430382813754055541838981289675124305145328267802350920797250866560807600751771571486224482953237395357827174535064336871863720614988869162360395959154005512262567879180175857612537412557396657526198662936308162253006620401590993974911906373163913041358221064039331303784657982826546584111572467749381988567411953965106077180644072325819706419199602666921623276908083285643899060856431875244454988221878999664856887784806021198160033011065576888327810156574649613866184893035886762150327449754706487792952996748561485173698606597696434498526819457789050178442322732855658842208146188742561590899821357837316390526632227944744637500637547537037432806711224745007108902727026315436659877663966617107544116177045883544260437790614307797386633951964549927869413234046990890098407113184749343566374943483599689226709612854098240567999314337136292694442220154235194173508889765321811477960069344319555861832726688824237131140994882082090685061799854247485672657952336177489507417807887712131667621104888632175707859103993229433906967321736352724783171098968940592595216393487920215748148828311025427657575983167899286848897951451804771019383202218852947517414796738513264949002160093365296112051373289937621503646957342295366757584552800026125455884913175470947036256860598801786908104500415661463397084927528785800287873921295201437117716004525910717194201212778062186971012035810163331904142746042689938248682388541571210592385487979956107756310398504849051912232595990999045939667894412928388168819124198698964317647157614114455146909856337591232297156127214232854594696878437698918461211220937347679225857584477024321959009407617636179505298013457322416997275755591643173076770764335024915330655787694719886267784602950356196847149331086743129982598168135382844570551686254556594594384408457862184264460610670007229211138545877832728395447093403696229095094751365173362381808482757611620582452881639182066192181225997163983126384223238833854219980192503768488900565339480882875739299636632274722982937653489451636295058162879718959948289658749056595570276192340092682099155204535814546361537224258901092300502371927719889236422680574427356418997110379451011518436791134649114282519413557197575735363415013124932285892493084816404331523455644460658706757189976232697775628632239769089508672244750985964819197692882566859760316487644133721490760095256242105688282261453857619581231674088735065579582821386578752819016186090589299477891315983764135316764809056935804284158552968685841077947724976988596626676227561503628851599793622885885920688196323076192637286042865314805273623654974536117406330947563286973356994641668715222816538061861374278339988676977639017157650974920848858077919668826529998860626689194905678879531540413443540607766364048503731503497311694828347725888422574849684076246092548101734205160015320920719656380609465621400062913047151643966787148633965394858866551120423176652387149865894261984773448271144743151143927412681958438840694429887111763245936732789708313841767367164452223759295227213128866438353201060934417242898701453322889286596360314534503071676839753044628703998133206299965354855795040730198132901866286192285217067390583344022985737175006286853894478485995503860650939725679377587922085853351478911646513412266925397609946976980091620475006253423784979042821206702314699421061322299468339684229747511505545345985283038412344832992222227459871019119319229058304443415593748096101210810409840003610193041686918317665990856622866677354982672231561586810598720466778602073033312771149191985971114706278035111249237875017512343171605643580497120149136105001391961664152516114556697091693673596595838551017627251987990898979359236808608068394798083624026706384023764064122853699079581966144273315940233246982623527518782652957172568890449215745242221198274474000989757554894153450507122836707972415836528889123561755295671042675794845495301405596444765883794208729093108051660264892033212185842266920897644786132129523321859576034128981375349619125983659062814113997333419287502331163498989943759418899117381353721811247612038383675937721722025532773245663087546519492305137488179536042370036765094130008477498847277538969293767808808270487796195500558950647840009675913995930859081971395125821508383441546497373861440016264160391283790042036724006299831373285884407965092505166897259854737424235866827312255696060690152156533540029550443890822488211602256857595347820370645823424397183801140462206389969419835254683202554205887209370645000400830910890469999130556847060867969377999794940054681295914856557112611366816898074580221389528248418727871862863856098459773785516163755107503701430911450274357815242649146911950298609498360127570680495019289930291211621097541517050530668367088791292143655414675056126444634277380380870866413575141666993130518889951596589532355857435256812930767642186016207425840376862486369190605242585729874350246469443600211757448498263410564776156688210168974939365337280400669604315445748462504490245597555521588055539037785685811001684407722636800767010187385417305652933801927140547395153102724379918071924908766409140988864006834934584773255005136894167617090445721143469128345017858445772546999185277337747022315659124837949600273583150722298053348481807704841614123193074636270391052525047238910501821134184819444305861294807798707323703482420496451984694124944744202118243665606626170378145022544539113675988623316910709106010107008833649085445629326730207697617830809051952538342656001087157836164075880679618486265823996515709238620672752417165969889641336709397458973112261245201644760928541400078529438747054791370510804698854760258012528533368753497293027397033588051150162130072799215454871675252615475201774746719478156583874525636171926656069453996002701567070715582066182238293798968929046934638826481240696360541464452958192424902095478822179825120268003140753142592858209231119412438457210966312753859788788525645326370985210082108651395917464195873901058465351974984765259145169459137115667178380581182727830155342374971436147895835725117773608075671250385560428126808750743879588234570460021736904171113720475904023862188183045538420483204112511022343775742618529151249524619117931974387285325779951558710907258612101442288573228183834196639397677544825503488165612454650481437720602092666229227422993172168273421337031139660651755032661341541485370060996847621891308760603993863906059002022615129964628040747717006491828212706781449909834041432784539328237766210553808979911124879737606693750484997079645597356191996583270545265970165664664592755907059869535585718363005877924000013698391941498986878597526678657087949352759972105724732048289565981292406604422421882584572098787278547267915511417324446219706859349529623224860772699969386219208892632161568227173798991939388820403297040383724978233103818375421002655172598269071807936608446726042445475386657704891352983402438718193248188164461533394838748169960247222749633246009133626765192091115356675069789217776185117572132649627239762290275294112954049511730517222198982198955538319502955478757559755557419034016725768982549622642459565907282523238200988312461942434113506232759763595811632344787430718660010643703989632965262211857180515334019702764495328581201450120242960334638300230315646513039372851284009772565429138121852944968263807356977210472723016047921906354657116318785089265877187252947805558856723324984737213039237127485257091838487068970382493195722559254382317232013652945149863807820112290134700896052620252189783662050821490606062543707694306458445883774926879687314527589626722390739225226124745894306442731706235701106801482271459367676621822764008711837096778934087987902781311899192152150021266327604425638436042799764030184101562856756989316755722670394014698967849553671759559902798401463558205528309262904609080833573644446880338967200557272611408402257123849239827713596513111720705112880808586009890551506288161248290060126375013563225191673573881156322787091651673190807835542846757503481221256473754937544784621218446419920305548279652074928311544368557243346186594323129720517465084170635590634258687923324542656322536581090145190923296371868819090477368587299608195793434753362564862423098468183955937922831911411987532608105027685249002772847791122829126545982992151811907089217154120345383714197621724199879041103374617085692286181296196976534847221624270144523008921659516940767414738636388419312478838047945923781843954946218658884094284824857900281892898907915873102838345308841826406980413209221775810690767055291995674260362545627397315660669304885716076814099520944526230930964721680830401711745887092495149276169656153475332184020612422690422997883966493595832093206109690290518737199725069523293619381633758323877684173845360986733784686276763985398880710011353307512369181898806510378446428510935652811993038856606530010572914617505418624148233760590933866691551475207190062977043622925721472431423171342734935940555481848716390797680438680215507031394638616357857078452452221925588140520137082074410807293587933260553361793692063135376023875854200811993712966488587196902228169611189537601836058680853632571399008063672523369628514619608764847990015696404649001700674205539200147044367748110349747096127861579610218069501356156745604208363731021614729578335966529095284957827432271529768011983658719456705828396784772259277110127648598036540113870855251850560732485525912399516222823190905915330898581894308781147393747531262417359068426099274258257606023324517621636351022513929152201532517392738930058524277824433670297057573222413683702325421167348981257640205644283774544976025310103018407454821172045563905971266480034253926304407328608708055503989993995323265676526120836397063202363062654864078896910873171009395028960424565916023876139248041526524664920169958695656343204174404079873884277422808163884010685475279424958584518996649580372952770670795845755055908346845703824963793373977200071908294393514938379032820471170510179423076982933454226335349992635063367309128503128711869871082979004266088973722717858181658861076098455945868425763458288873149161297013000556229539127702446147764200536287650020847535918963831649213359059839293926005394762064596404786904874245734624633268269934641284774631681440055905128277556154533034440275541670213815749854988223717739461580249696327529558869524732802812707093593234124726847115018478292404696664865735586374619496056962089136671997942952217509934098476118749403223607205072511948032894165354784939181215662547535547361906042247513046045921308242917977922699384925032868433221007585265616675463853333982696215102165978756404245499849356819462667984888415584959852139984522682424409525813476313476510129459503864191021372890582642195587898880057984969799463687643630157165092853596836313960353284477982048623747322894030879662761016062396118747934396091169444550647825114616345180539498375425411897606419414785999068061867339382632065247760325983018029563844729560450977714318254813056669606175561301783359750571368790971154146959838418954060845797129357234071446999938743716569898628637958445072745936011033976277764090447068116423845610381896291383120637459152830135466688603587484094897300640314059952341914654624468413899038398512314588366297860030651770484055201492357320130509440403211023685232906128970853152647363081759087637054462886686137115031631742505236959376346771547522265952290306696959927341664021774892753654276975425409311939784941330206463101550104050784880356517244456516450256122050847144174817918209587788004735671519023457608985759458307587377611063752229829943126496498602423698609122476874615713002018801625776433834705319402014585045218240895346632369912676600978205822755674387349762366772953932050821258934254040645966566786864197184492740945780949200601035176384040465700953381243990986556199133279845546342701119495011819601190513195371746801415808307784776398442231154091203890655474464248034121862820359010800515038142570296224930524232240835153837738715382678150614065736443199957803401720281807062589609021739540469534207380670625893792130795396254878625698924122377551969434568359700507845003144969047909159329758838408279570475329419481882974407756684755013111774627870357499691008233866125800580315581155342300589863589381656352145311293650790991128115029000013400732563709791885158361320326349680967678859491510882229052448414074414220903071926311830328593940480374730046771240492780343235186441986420649917858449257904414861935545188726951090927641502690157253107776549709193309502256407751666537999829998550295362777776817531125093225634395980477549178207448673191088753262304593681874411418033044422734780599253206561350260907850730808988371623352610848267047876839560201643083533945638004093160758401167599460398534657212430560629769403116966617650063490940515579066939019939042422831338865179544439346866598646275961757644534458190591386056770011723010599910633860134861040615824489533288362833012470399937274439443567861987689553256313485889159463922817578671964481334350509671060888010356558548683950880936135782935589189927216134104904089350102794734503519039688442247877389215362955234342648546134625796972077488509460348372132524977573298980196739432833972263290056812736240364128616720071483059842497165389607430597416363844655801593965158194608187174153716649322611479070544315416099820439693860218327545545490805630111009207515095179774095627515472613782121108405891579030869425844671900779694000426487577022932127695266552982486117543809326810723834644850516277424118375934195061692782039872816499437192408974105089039577810943622469632031603992073006084225198675462630528419379230776871004687085903789485721681762461291903769923727525175562577623222224361215760691465081967226228050624901342027040966513766844447211284538080249526141685505901038698114215525147979583415214097436466895321162600050412429902254560994585468691933473891337214265205857039250848629398066132357715109866073478024693093354433448012003851367944418865958827603470063287305343889718629679628700183408185768062316913200394440409038136490847612870169981152931296421821797105396713067705415147704853084792500025464603471925247308957820036305122532696229796020536826940487746490607205106809853789144789862440909595095159799744131202594102164408061958560815296455630054908940117777514957434738514528433268851477022790997497132046577298369122368120218985142052211266542161349226710526340355240409873377918955473496327661453062744308705488397067942713392314694571849699181898366379503784456390259199722582588560062441494302747186780407253060783863857957588852761355025019568685549712503526183143868637885986127195590376945464796830764721791251568321107130211117925448689814026047989352871636147929578686178425204209594098705889974060180434068178642947717578104913603543469006415053942012453663741670900215674808755938643930102418410720417533162312130454193874060187228914082806727903891427758297185567365415062478111451758368797319064621199695537830478660541498374972481932970724773233191001148734537835448766252169627667275933526210976817437001705043046679308690463468637002028017074213094869556013706145269329287931322820616487722067069352563975680890102207761703170092894628694854724017099624062530464405849499580694237014487922550823253210683721204244192493410078226430827040188336054608955418012409795831865575813031777839489169228093507540330500732175301055858678692217645523637165144331550296961985019280187353680119071832010730253635075046785441197522610787648854369207002682220376677645415168532191552687875859833142211854325781319790429148263140088792442871407463658087848038886650836365931203395752156259825637109024440305237283200554132640706382525334681026227209682226279723401211038713288168009387567494581799562141771133412116635368334777065131939829109121429754106509072537307307856903958937652160737297110157482789998126299003780565351804052802341025974106402210524004170690519308269754129228293618495788870844418900772936323216703589996875466456388931485260551776976001083432297731022807985853234866204686344226722913440249470595275722826936720668031935676713151523669001719367195853252879657212763812607482277251462339714250532303288731021785825197077389226840288502232300647097058499158725468281107575026754055814926050070434857633895152110264782014730337506894423065554238299081691604578225563494454207156543693325315474952986414796679111170074490055401606678764482493886647734837930464845533503049345899070791385660746106572023920421001420560307218584678700790109512941106319788407276220698841447003708183766751419464615083172348078140793463153281560732275576028814965265347868041751711866583475397145850666353392031398046696321035336978930888826765432592858711620016580594170730666589062436826732843200075193559468654622358179687822185234680860539564370008823488914223821192144945014469495630457937214669559826630026862499827185541895262891591724426551884035297025254953366601581225761682479346477954183572669326626591289752914744229860098591242947863693870161787168321772821368365339346328771556828012809915508356132092379069030601718288441868026043767284312895324760858592165266500204145915015489115940841072363151734661452449481690941309905609257568931218863872687094922511839756088987747422877959162597519983992343889757788343839421839039308431317509441912954003261589620176596699730997398472466300658921995127044561466029157557121117347666568127856947957306984055457160408859356764714862452328617146924156536446910075200175741216772821358041127567514966048338078227818969748157681528534446931494211689476242660873436728276859600868609587444702552913974230441244969262167224160044699135369159881345644497285427831470130919465937880856698845804697119429909915728800686717575927362153110169692848011690795391908249271888038182144458430538971679803795819878215632137844363379927574696291563176922086021045272347011050807356566926239718770892860074333083695148671626692724201718872576194419803320939861514535318948949321551226290348519874563343282332905142505034678560159595346461875905970064822805282533950191520264168613712238516559197397174991241003816866340197567413681680106993705291638648047296647136113993101948846615061815683983044407610775318400641524596634088648025165859165045814289722731133796222345293693076042984535572139901530032659947772646421197690367182750093407618786958221168974549571492840766866358630964166571638110766863859489744638897661876297156160179099619092238322879965238370675428552136890658607707978274012617535112331089140327069093471305927803795987481746520191421884313163410615162986255865628295354114247803830075640784464408979001801432472269699742567621876079691935331261768311183449922005603110832870901015831672072565261870225783383710622680623529415222701082851835973272402892059218712725898871646065322782016680213520143405593303363385249246333883754255923299663346394052703555054633710691852372962406993103150011367746761295280469435762652015099238343840585875014274238397203236998507693163256913173835087258114281919689044482009795466343620100669994554102269828047552375110262524662446994141330803387384118325759674902904906678101587998502123037547480616846002686215192618329268237520619434184941921024555306627274384835629678330254434437045779303028053829905194307493460241895780135308453689237699332127922213122954311333233250769299693891034328753244032687599533425933481207618839545945370668495661810138711144573935886921133839519733335390907806613263839324708463198378315729395300112574402231134358268325244904929412135067282975950678089286970329962888484372573328807928845256677196700728739285936615475179025695110715287560508658118817258461825270736644741489828710827772449615825104994777079719103867857379744325774207227654179284743235134015277794006188360910655395458252309981277103645663712628029008906937965824089439293212273941235498388614041630486168697343095909202200851324112286544520632534526562068301250374184880607711531140072886091744272908253731407609829859412736562794300175831521300559515618052446544856874499676212061215916606077727307218180513655026808261777699044808709820139842492401279463813837155643285576433761099071915552512004297212809883857323568870874229067360645147639736002316788889453797678316808069273886642198158204999310456138001091768723870418057646171147556360797514699115880887176399011656034243185542755547759159282702997802366104525942276782941088657695888330794313278352197333701130854548226670403198461316769524700694539602377601077914420420399785651085518224241955435833785578051109838204236584026070178041517199593790313041357838608789816924105646740008232486696837486341777203675030385362747370439570098635242571466014795715612960251116856494830511442671896331374007189142024030565111471053391586971744868406279905420303514201192738458420689324065866939559335516148706387164858404935278727905231514745967068672245182595077552196629909053408647906583689787791053987445046700948614308822128880905444036481490206508809290471110642474384682801682223434285670800485865925213065898477699676645387732649294635927336223218890828754523980874603426694497661772162805513079014153480137131352393376768291539895926419395020730419388190018412098608216855114117396251734287033673744625875276150412684318961823702528936161864994120846473954566262913955314954405617185924002162983241693153472285568806703569468180125872207167681898809178381250247200843056157073461447289972704294655291211310692224245693159125533750917369357880223855976258204043857595838429398924499685579674353665959664118894119775732917620793777459927975225177682805531863070377664548998503286365042721425422730606003441905098329521611011098953102632792504827754504093089925591653059574017406281010592047948779867196307686659514567116373861880415204856373451076864504398648535664654135593079899910183847626729594124526225973321270139224255079305831761280761652229696685868827259009837085147161797642327150278962223651818079355816766863124060774658778138439090224998152804270844734563541986892819098479565338058886653238686313016552493732985874863510942837244993275091039807686436021983056721759395340670411050868796101458672153852887213943897855674178212316417208351728884900636534156803330621742963605492233178358981307379617818201206275599996101368816857573026256596013514826274925688836111134321222139429360312898929942581136929870024143201386435434271887802329226645430067817816807403461426499173742931879358355442027612234759265263736377745738544292886241751129296372360400395947346710784456017787788466783723005155552128055440238743148372177153894289529121785132643311335931746274394266081308666997900044622019441877209288235388115196175670046487035878658483786349843618418336953848708898920240107703373112218225936310159148608843287507741383803600834170644544609609002284301039333584255978592438043440266204967900890838792700806683661872955807657809588889192220978338849610746575171951329555288598180884071827564094388939425673339797789342480334456783609450257133548762606361034222497683907604457242201408960122527678251105668524245824104221484039495077251530949794434907976400466367793403161392208088971647685303522502012258982000529187331865186104396461302953164866030131688035475305429524070733355291443985735247098557330967479584264464599024316314944267918332032674192962328208239912378343703832561680336517356940224565215832215687546474853051135036978189806798569380047298688719623482928546433803001758982465599567632538217750800534857394996236448672792887680062073504259079596564921674903658931599494111875904205378912550437480568682118559265444678171557097836414207106385284472335446389512197241675168668906482478289318223767541275826893825056614836204209846974475619883247383227083568217323644450542053710292455766402334718146592876187017435914858280395180957578382547495431326187953924187919131654955203201729366074156942231709827266235033818128562166479208908693761892662662213667401713977304203017444818270148120053737116989422640430505352435496511027027227373169532462122368568412150269413304401961531931909419800667988219413798404396877575449772739812440590101891680898088046966610670467979398721023651648854687141457689352888848400292916246915367200433768478805979308095992697096555950677560314493985859541013361865242972778151926124484153376027714010318390856805074096290088699171390386774562460985662205782646492362971288447209287452507239969546349486658289129015886616645267466638874193545388478361778605600189926737571219783350325541657008192239219434314269465076066022385277929725479705500725396208906657376135687200504895121360491597789448436599927210511748177120052079596022747533943208606945173679840441104796799517962618043438638646648057992064898203886257248241993113947762168928332623872144210320356126427460168903659047570001585122037936890063869977750847184685715142813594511389159392529493810358705676776994387495721746061048958407968236045101346195517755074098715933331152055555997732981174922684804883204096524111884609688080554947289007388175768069172471676320334865714814688478115979935254751989649966402922417833329587373108178086987438472571179023165973081877203061258948681916465872964545168826853653497661608568594809990451564172740322815269190938884605821829956262042637112635980826371278844114236190216561872087452559511114398178782122720784151865224995924983294660114611723715209253877098876565448927408858406892198961584526717935511108875443775341906609302262671692893104682419726964649254817587956012239799348603523737203821435818458181660421097227762622741977214296057243959893548128691608266793939253023787934410604829627190662745463491326015071726224396649984432499186808107247832761075326075480778351196882467670349655253580142895388535100035766256485566383958112622033602944985041062947433543584445748852722959771500402561930543452063557022223769477119577910252373421665323653809205264780987818404677842408922358398825535627133249422916728745873842347352168398233319176423740283257732326848549863299385036709881847198072694063861595668560121127633965883389229000096716195692147724507241802805701625731057987092311554643434583828337219640333207959748099318178663108586194469737794027077380968276579729834658173178832191056804898574016741724255431879957591625198602113062127357487228388198174391460231489742461899554946562778442822139405686353982840501813067730384223082001050643515506218624290893819939754823889165782831475973664939313206752999401986445029305891666631861955955029848051373852050279582091820456592658520702520765931681448183582706721179573396311998050166198529942974899097936727853092905657245853068660239049047184618070108579452520429301816414138853805671482986786658566939271037657175894955455603747494248818179543248417398429155313437354045980269378044984175955405577941434075437535182337355200832598198311923313642966536094894186151643052543594478976553254946723697100471196105167910440054499654536863508384409357625310397882163024510085683941505433615472524934582479502174291777780133814127556862302963334907943756870423128741355302501275497213984643752233224984099417324781104031636808152712402424760567009776002339893934137351787052340553581965675966735459139611375133380959411943720448757138416703455408061415436983653656588407571952584769694118568598022445092178779096766660019501034988716510541996006976733070207074909139782877131622114006227767241963985138376092376753259114354672022725797051215494822961550095832777310188597516448251018554304963018397736634058722685985675968778321260366524464985326718711532873449094278283381944331957982202339810067597101483643465294179605121006806404884518021515095334755632412161461026176623434096471886131067120756293528507302456658008851495804973638972063612072997145159122613578371187345776714366106223413609188407722008061862867773134790462561603396835883044589673491976596927836646693163638993177001114542569185725254001996315437482236836136422909470793092956535680620085341281201391760026631339075672266848828183853823742562465294009138027536077815496063387043281762179238040201748982818109601533631911612882639290667601783615580201554174344163793035018667876597745167211830427876451028222009682155570819049007507334419357626298999462429270193034185072264706015863070125896071953262398536870050493332672199237866365430270207861700068169758340035816502736283258857286358004091886618935012737213571288978628765712519903892127725769198489127437849786565892031190556698662759538284527022088849115497067199769478302283358531775988398732557420577677126779501848706928540781659584515682842922139618579382432954398099268351760111851906862861244208414104431221671838734055313104998730737890738990896815139393154352604383195350821822427110066120320155648473170064618636342675255271521761915876781415010937608381921330649288727311003219743097086633013005684729099039499731250395550128444971742286354291356023214623969203386813513626241610529210816215674042554777024619048600537534591530852349228482817224149199952120827234937721121701967111637134157239043944030313359368575845526276958238701556327386022088522982275187291928118166361478374292286714727526931492720131431580764244864887660899117532734865526356946024037455366764287265594655866031042312926876082174151407568243426264151729020085440329062966520083583543417928294677520887190467582285237368404143403891218439728151957766321341321436322670367570126216529801315583409035399160102426445095791387114033953097180640632461658706891760619493783433583174890878189725365593472815417598050059596447852904123026850573536284977274376561100901687152258762235213492346899841778977467459442894592672859095524156203177340735260297721429649776891453543052515661178822583396509420485240207553827299493941846457654637518992577911090146280337846129185652315298136136304952798634517917738195927144659334974419225729506916788720518827798704453185182966292434334658363821370786202444068196000515124469179882922126109118083693670895807254371493031041194647529934481917885263710847099654389295020531356575137318516061148025809518060956393720342334422664326311916389339538630556432156750301678663943098895078641276445641613283261897538019499775892602316938552165401421354269915358306515369589875463713186992845736564410492787387113758512344069798819111838617636227912145369544144100346209357937690253365030224726777583657479620200524886684829290969185519382360295979878124953963197572743235298843733538543210243696121103630690266814313429742495757260579880955036980916633574146259134591620620819959657105780058443368940898336662467983821324316179302509561801341483929484037102678439700511223525627538757120386047576092735846481505686342279074351471555757643822744233666269071119811141393292277214384356118824763222067594417536446193001825814755164463242524898079993484107264998175587103492511285076062704133134816685158988156689573660262462983327442458200823975004593791747091180734299316145025790506954248297027739055621443168605648859210289473885055402341908318608154774830917873618154559927207692975688749477311173614894480992805952027112331792162358203385332699757100463284747222497714784067761163231170517329798350682776785921236302752063574928559231991228241180487655356376190096087901479566670038672250686006596227789797815757872479096443129743410865848259875259028919776267078085764202690421555073125856690313577640771655186091559724946033493291712927829800768377248499060469751442148643765543242506210509819243462821670818125286370036402619542026643312988043641489009523817233020520631780144034775333485803758546111612296899538465007546986210334166842855330234792082264235181793992321731507547296036341613081922973029947785842426179485828482648151098489201186719243811391968376134054334209065989185728901774416620555439136394890393098255483464942668142822979999522663006953859477785309915607312116930443016048738333364916730681571261016725718398458582923479741891327456549028271919611268042447241255938247662903875174712386675607081767632619362342170441307534118283314595238351145004555430979816323319164031043150781181727974472399988276240556991821761629552408483449099575672223837252812398636428630146709974207131242302275267712104407025965464815899462556726376753056883488263995940988542758586952735768679555002163796259004223420335184175648209623503590777776238340992221893988219405550543031758925262854191972116838901363688793132200219953078029896024134050420753756845015272582595492064269200811841022843007308638776232430652208740392404997625881965601768273224456796304714194843924906125988255414076426467471924548126892469914831807599590522936658240827221640788981447759134850755340880422429318709467931085999405476535983539200956519127073662629634777471215660725280934771675197649546781333483378550390317004106474609540819446667965578112020991103232345867692725022761686650103909485640037565648371826490834245691920215904664637510974236518594220000164153061108042196900091771554495421149642540624571352762658834116039649671729972737518525277725567977855323714843730208135060156250434667589515058168780278746771328320752527612435465536296515116270614125366961999007775291958333505967042584460260819767794275583734558758309083931199355539690566396594771891369334214329879822675368131325159948058279970958653238713392692351679222232315595895776669283085701925137751439632996901288758005677017739819086674215921789503096101423418637131352285755548922072992227312416232335722049169365647079673305273161631283474339542504112395443109259279634894282665357568509821331463530583788280515332629089797963559430989441607292532322552719697520531082505122925637398333212833606708375213087371765298445400435394499315876762016126781996188572648113459315511310405434514515336541146584635431875086509012721512660175689579206254156572774140629070152474028393343597754607345573971721681929061336497371763479345829086213147586227823053899447163802036230258198214554331154023531141968483144424994261774741347771444281286525429918039290686689170311514047293156226305506884183331191733108980318395513796890976368669099640670196653500151423632703428062369750439069008581781088622698627470159249749377545353983730003285617660246003095717213897135789821558840879527340132423185143995654460182920780346571148097675672505290654312372504480559902015230192116603793801146910907107295036093268661492514669045919738479728625247834481537272875678497645602007076312334945858859792040062234781467224580821294579504250732044722053159264475089663887931062809698579491006222512040525242077133903235627865931952119920873823637978851235802642797547146476506683187317418691511874200159531828201165370064867057252669379514997664425924671475652575399333210500225595663672104155588065281384006298822059529339949345704763429467152746255281952866584007752171624709050365140482898022580053439920759970425478225276162295119626474294255714413944808717638891265571983042560189810948425648718127791538480646293123616158467264906460227088000074827120329247486444071438509228674409084536298171744859836409763488852929235305261023900432238975564405835767712798340090522038242290685340357919406133120412106040384607103970649389491680909650831542168413855468598791401944553282504936526487639218137948632548082297089022748855799752236020831459391114892049576395084310773731049760824784044852373990491490914015653486664687760701051406355711129712490459563269624348044273859597074335049555441620541127255629646964530781399086420209586453634134220047828867038589673675548609800005384809883807371109914480194486275196935502765504402996345975286973815493690587855369523058240680364438816336266423297150721257332396077535015573132389388381596550260003418131243217836549355942370324284411018304069525236992001623065890546495290452984432059016231252925753758404812677008748928741498643730118894573525957812458767545110075050793463124243695199134673528601050841827705576573820380931364846796551524997069930185504066395183317709473395732341732667996709085715432171237036692740117045915056105855434996150546579222776995720792678961236375751204958283532955296795203984444301034210529826060924002364825853482025280466867340152285342705995292028557308941173496448368090152344707093500625696796661599681121850937112345911497174008652514009840716004204416991976220679540888670182302444937158209961403189542116493410248919479387270480394041539195376552596937036177138991093107003105596194150516433500453054581705803559254595458748095785295206335895399593518807836121368641254014892058005138971142808048580464084262902813522780435777329568588588774008526443084573122345556037080378817960329525638190492567092432325761251371697385015786807254602565611351770389656500033538981845145129280820082161024287730861002715164826805894394181532984592383779405592750296112194838380943407903111039720854930460524258273154266173076556085363197930547892907116033467538988113204925431877217966227177180359393724936844745069531752851766385934711841507134661917920048232061917371199830318381233182929014615400539815014920892909016080367340688773273516060432620740802092103570348069768883815654061466157673705120327277778701166909007543798666358893712208182718459292480562722125672221928713818281715930347364677907865561259983458374997002216918619154468138636216086929899284742356609505659427224234086213234725718428689227264307054303177907876190772492907510692064741989561189940072989101129537503860339560510608841444932460472608275245679558418045032291710400437614970707917857657251532561271444212193484106799059709418891862093700633605363044300584048256607168470321124915997383192395886731293639648592072556643087167033031811392189461009145110526368086367364727842138815485063632959173695648712183442205416052875629679301408599241399198819342577856563905286337522864005510995554358689882535093249213629360473006462812132839852306601991824876512404302160368167530274777296008557372816325219071186567416988125348129365188480447166794018963144535223407604420744104041665810544477400279642058068640736506779745380232451980205180349798900664576203898732805487560021567690357384648925252952885842896523671319639460328060289813492922771862221841553117887662084681562035494177961262934561326145443515259929759801094042175467970989664462053745346638250057773714148308061133266270982064221022113422464617678630031562735757069490292457943765046597217206151030638030515987296457216949310177975056986125679709351955910703749098070226438548407071949366939379630591271188787368682709181891169511417426342079957690789817316787047563929556879111131046554860760127873734318736137717992839786913015331410745657017720967412225142273682757975815349867615366614707143856154840020083226669366896693617030015518109306427577539727703860874745739972975977756742569809535641019579536491330943870180083921979212401093766103950403849466955208286217795882926266275640611257518581367395029421252403169406090548218672348205569502029943841104371148847268458237224009042645153189286916500183899422012566249891927189818165518560863925862700516486207659553281762764000661111643801127542045685010942421408008083191791211089430501613193974651593594918456412243216481864294976725893771644184992352598973149263361668891354120397328411363882105980230122569182213208334267688730979295367713948650104915303561258622711548309395893521217631598156047309598565732515501467278021192524277444400388286175274183092628044688567772413771146766093486599067361430004731669033359023707511086092928400589671417572480393567745095718174352081507903283735677316675975970752633877093385310673253630746384278234295137432721926052724636233038764556029063095085305824679650670574647552887540248671792262106593259961308865867626077251668886186488535895304942856982464364446779594689239841358984886246322284550684597510415446541098542320085826032255750946137632678331185983212501143418679712073491860642565623593038954573331549758378254029021057745555683253432740184268985157360853064925212225094533584961303503627728442277182455782731158304768667390082612683435979303761396272674131688698962312652794164738472852447343903976205974252602239016932512218946204197128070747092667656689493869366674249822267542890895824320127994835682546408158967763304789726125730612356346908625453543327524123238021447098989504602749206273901909812919185592697556319018828866958551273045735352316486739300595041814913576175604616785896465575357092016661926970369134943138790650874392468445198883636945753299640702408587203882894770185932125490559033804439180544033465374122657287897298611837771775886320996307779649525469198864821820467890288957560765857490095907436844058258980292568265740944808932766142055023560569397290406159513483761801200813360608578729344475778063617716072449211706995518463168290211843787060474904677369427664291485550648894369205996321735625858872902604730476023907648081718143746978903527839693075964921615053422574691784430481310542219279094721865718632612291475932999522987603256392580674005767108353447455764687550993051415499546462845719589533602664950414537423279239036225897783563956044069948690249280767559771083995792946843611928552193408404105605673369773549607308613021260576194117506783575987502720465051078838740988598144084452481268281233221698301183388792824561173815266842165509804223138566071208139382571256340639996380072055678778948697793971764215912848569042813434133803243371773654115380904929763423687986969639070769130800998080796990763709559932281726392260919750936332037413632420721123627083244932861393490394030365558653727966873517511167053135901688751327598265738102909343691972479882038056068606249010368642074836982884681136411438937427042325149589908963329067132350858243578016934533636566743658869722891444204237464033821565373996321597318421639213007420333478111805006921988152493239569095258206727671689752623180110186819339974878294203781137192948595665312547190789931153378405803702749394369912297499722006590522837193272577056119761033878819002546725862097948264670912552690206091019874353219276667193427143537891107314089907462205777693600654478069534356922472918432947258206444144606592009070620974454360008118589222164205919746232697492369163030016827567273082269710971895799775622246562725852376621098949399072662804960486229304793531250457563731841881156566988927207623037435348421341244145643130959355128620967418741819023700227838476539043024167866236511612359287645399711644065418542295387367749662279114431577389081890801404691175191120637411267671603280752376554592167210470741059256787080355422485510747083692335420869821193801901050524353135955224348295782155608268224742062231671527504301313563261715542069113969239522832258542166389325222452301673577076749338202568126621162512788664343941947030050728137502404615427303442953460189994233019057199840256810369471332611797091938748275417353818117588514016086210410995518617202624433939733824258955063945795042961668666598048986504047496299700545886152943910903984654747180868829559509501823115314311181563860786659289675440627307900682788919063157577981815234240531418761685584992562215453541402128196718607786892688796009294948347238917830539611234239932362950066991884975444303461634989130489479522494293277991450693615901177324842709150015007590716248655132245183771122714661248235558008860517679320868572418806677157401233015970145895768461313700859902849510258365703984392493020834399568845297589712198699993327045489020215686961513913313614182981488636824955164401791621112719968609065246128014716768273676104938516366493181207171394285296177074645649137163272756297440366152810958495506125536486613425052308665450242654026162562324439522597228303517054047495363693006464895964426616254463160866757501330619535133371301056067479024389603248441136822014694931578103210624936212722583744761871114930305536366051412875332401455052302844253354434531566906610351009404602495703406671095915367598887615955085189633177739443062899129705496116372367892333668015897993838855870568873159750328973975976199803361231510158841492224242090294017792714127986673824494543599380295674729281693077959720350908458997454459575981312742789772061007676620634179984447209404769511115167338865991442837043988091456616997115036651622590626206638232784240878838362317078509341667381692767373686263057462806301238435479167270802904677046666420184120490461939841780890839639490805849646804528668709048335246008125905613602884400478780279092905592572775282820350824045795578786510342055813323676178559473696826134644341760954565191659240299356074111382651486975513286764858269626068439101735118393923313463326546052424238313439738669022777301768349637980024647986356361634461613880468463829148382049931088704858237354607020478471704912471179853313892493792565876514669139566349102832815062481493621273401607942425877370272220313421301984506713815342969316641946684879900881846054727559723983919241513523463081798371598337821344648909393489210056914145938837284131460760938977810440971248240267849481065260917063974907785524761920216521305244298467796988847666247653090825593977588913367319036363398120188751472013016172866222866311814118483369179688917571086376750059534533924189749412361332268801106932382938609128224991629113274215155145016223996727556676614825063235474481407084681725931624972964613854455776886898340121151513947517490312836722216761915311280277445633556180183169046203334015027056212240814930536677928777639501945726795909733394851425480800471255091731981283205307127738248823201223452368641700525299365345100842407592368244731562225145797641370164529239941572909843774581299272501715539944387583041232850719032829623155805432994830581017115334451764244909323544975761857747843343284494493465523753190376756429310313701577613338972226963780861217982284215017038815377684188578351832547052758917035246789742849503405204091092274407849031401301964133177323959617721688769618774129093401069311779986916259759092409554023643336388576342532123659795416462531917915228055887295518521168579870173588290076779624319505476356035660670062979463246044545920636045712058770257222418181045726816347406123007009258797191271320248642205567747955982832444436358587311385051911384691604966416331122005093475815272343907973549792810558697716038422821289865655646247926903348931659633683123909655075820526216621087307142443158167782846710295363890923252507229113703507037001165119557296185579741931296922662666182482480459661361353211147614288120588411038719415361453278806364040721528443083772635126903167421159268320974140451163363093925334913167565365942464438383787573708051535793578989293218162716955728961253533032226335051362735709824755837440744022242398016374320288405420064176409081504741603348492086374585249119163663700140268380603465180570372059605137751454974806522095314292146805182846008383782928473525803891912142232504059133306576653966695579290673632281500620584315203214479984266785468327234396919804247880811272948541966032444714963316116170523089726005680659048240852596032034793904083743839626368157329328101243404711330304515845273357032908134052172925887928512746038927743516581618712521382266930860786043368775124446328288728769324149713414938914665964677836185669239719847305076702927852383905424982702267655386022336467029876124232928712932700694767078208666190656581780891224835187766334860446890060281291810776761007426607444836865439951480805499978080558110353862387109617368121649663384339163995536034255338715204110780599147874512041010857126111972302868739565260747935599305162688398403428049562080826223241441337033336000728914381494912752084900699466827043281810696190725117940979365253146560854915870218550171628533026473614635944041893829903040112674752133480034460737237235015573445755445492080873935501771640392049011082385115948837851767965172092093884443207559364551901474831480627533722511193691244539768898704604462464227587350420207937018227612840601058731732592681995612637298069324450299049638759782722433110526453519357068209551321771313835844033565050472700929334461438891300601536471176303432376136487483104189711574499065598233064109176242426339297886160237828021013368573456352882712653457174908218974909128941326204811390905902272794205779124095273565058572168099194897147716125740348831182841713386424170323101999914131812343647598006706043482450245465195968397515112295274802431105037180146762674516181548392967199122915241504140843203371561958782593386773651412797315898782210448157359350029305218789618853355941569098905232440007155391075505100664623885290240392483517413417523106576318612491981965714154233023860490075978326486990886011500467221619018013130795102435635772882984777650344748031063091900668898087499470597108055132988103108602431890094820347874300588101499293780053666785236888586465132551612191020869909243861801452901555571357983275580388837926641467984576641272550784736177135428416971513686545599907448386009468647738990771017655593964619184198582048741789162265761921726644269617107108930861682918728846317488356268561199720968121134996896612153097236721386162788097693092433190052196367225716984878321361370657305425463797909378957943409033832422188989767431938118253738598874648869875687420841421251166778122763319794461894785443310962164139808950723809893112858632051565840385909596907441395734470656742530402305481002308488243835601600213064303827706164687381142700691253662731767498122604059150387713634416046543115481576205800566372355246886227129428576430477481709898365553767373525815052111463282433553163513890902550030964024597198660425306826378452020731802258946436853340537966720901562319424189520655796243202825774436299951832738609476158446091268023031618851752012926453150371818290072951313310919039461545787583491036639140619251556721815648097960949363638711166421594317358891248313488101196299569354481981555503766509000150462899732214235557461478632823255078757619460554974411178613493198127370259917017816956925762574269139749230239320403865165474946311927406714328676303068290744097595236441018148072607167074830002935012232229087550646275986104270474868415988694962276727242719203712390611351934784925882464110814756363435594741011456231523184502088682166802777767942486469688055292890415376310154447987478652487784416900082996727195498918074133692608755399563452190760779919045313312831511897814967094943221192500983748448290186922903383012259359958458051588278071984692665437814680869888642415808116247871380047997628120473592263472161768929062612993920133660424157656983281519248204937919030992697156667746054740171805188443921923090340843691810936124979981278237867889288216547441644436587264812522755398341972166313409514593265662234074214020602835618930209708716468227541752383262003241984444982572942053539735813514534687209613508022774285859588859226406565207362308897899520523726390029778489007530502411803769349860886666244783562533770437844252721637117385292145727985781953964444287783626747648670840329355166928420985156016951017490622067678765895622268863415504988755213229013590679466850296929817928671159456551693636649017278824399179474098882907784268800055098524907789531493001730228370506375800819474145178707507409680752137548612733238173747934136874418926956362258164289197960775970494958870918023633866294768042999276323549853124390352964120568119855056096321794024675064441691233525801370007837778536668974779773326453552804774040493679399390683822269743049161694296674479230958612384160507605842705551854529862597584607670547149604662017376877926966395231240682020223283493476853947246217311500435821925017764337276178670535699369757937773219912663709580151311399403801224753529219427104663148136195112659324584044708146283987499997097892834810426591047260189027041967200562517735566256895925707503925766670549585576698577808340138009226454142584188537636382415642881957241412509545975887165204026610338904391378384658888338626918254979894920942889781149480784252911456792202643868841316635431576745470150479085177669322778238266710783798743784400963962058537867012007387758583552790958196487699377361685911797230779354210251204297249627109314932897931889234499951741516979191430540194874697186860270794457113207590099324931260391488772561216927885553933510750041845987111205364418377288090897057032319683544101318640598179925375771471715019980417050256744586567516597811343551859691540953191607611559458262997024868828569445804031753202896938542866796882638765998447417444624649675548486414101515137872214327270747057756524243056454845350944954030228356374071794609458711732986405861239965222248172449370923564235519476077034286125972093214957338591220906680211540010378855397736592843641686554683409824713578457404243407057219818675470472864213866796462643641500753859998552246493475322419372106258871067691820632446329396309366180215665556770102799160666676030971528518953869731173009687583183425434300764037843171006991138290531639925362333689028380609763432588069928379466343787027593861460830133751386010214275149380939097186373049601919436567200072586036187327153274284376072433780912374085068855739098062177189716722731350218654667383959905783777577373684633100285993470605244808280753310285098184588629447754998191126559533211282766436914279337457849476255567864507840902859808644548789373334042640614235958153029046294853997765886134156149963778446170216896004255356121692835767609194049090799451098856364656146825682192146752262151990838479546931000766091981584630414203028294612901730742619062971725245430143108531793901464703660147825910734661685186740991535272276666457043569628508711437500050255252203402367205580420100295487208697118263036075650114880069399405147081739333568577876638972555618860053992771697726783135063129243486520138863717245443456603012502431033892229663973049094400580738259730656676778193421464387457190166500504526959629139039101166293640303435046019837049593624547950675647337354176859324457990727132705847125826271831082533935066218318244956624773208896721611355305213435860493935668340557673254479607565364673202104241769494530533976667165944466167407413672052522975393665128635315577702139323669854881012421203409006765460205176461016161733691544964614325121336996341745068446849387988035283594587559468563950812799228657853490763692522085340965722352544429486915689649025379714044333373433594990058831429899198614169621813136672081209440968355397762716003284168027606333824552292158001051273212772405322843424359646119211784937723203695919207271980190613142273997154861058361147721494292223712826592239974102609117764168917485077802274403955168784058946009052837315573888953688606406256314420840074636602652815207182267461895606485359383573433516427908124539457764493639585119684022135520581151708847120738753584479439677279688671289842966674585675363416283183463985854851949534145162099666257961417721851358097722140107767604725700895652086133581846524298765677310262749783649145445226775562088121407240439775769217769745569589563674083559962352826516198674222404336929391088340044438600509548072710879747788193928682755586493202594698583543580618177604354795181666421139613234783611576185741828130921744928487434757280904011670229233704041055538257906890293882281201654652897905232284023289582382147927768181671210720374026481498533686228239824672691150557267747646170384953987680447360629018764421223542494249080048529848792786336093120362391444856614621289401079180478257773958680533369196322971350576660815550289099750017102069088297680128981024371321982826169633880892317674720981235717677185631849224592537358245754744461543206220007282895555589425476258533916381989939315082491529188218880829166449682455868811524890384917263526152682884576696394303679896001832203391283080032422795679683253301034033184637440949478675128753335687780932469345306134796937377509274311688004867301718564916651816933958696837249440491822236410734981785677348705119929228033935318745322351466881709098637737060568678705867084267297336326723202102056078871763990052518649281479885694819709491368263101834993158674452986226955127101023586151660710378741232263694545017657396692799577948021930874285139072005670518199423853052566124316738342067508527357536761578086568971170479935003300793996800912033558376074783751367162783903077517720493665266918879806126772011564161391682911905296629740700660927086016861014190034641513726275579148710501020881130845147554908217862506181999180106761994313253747000029315013170492959675124117916906329346810654854669487427121752659539614022759346886963690837404003326873106558466576209117515211732770531444610901743854874932813150357937647819018531283701652201470272076266371742666688500079478515207901359759744140036197015885701106485702145985407493242603124746303281526441487152780048641881872926140459759187262910142018978429721645970284799829557150384556432782474417006569877288814422282342057358209276610053813327687488851898913786620255551591459047267429153566622311156005662005229479497493565615511004561100115500940026071334502588559493361976810579468627356851566266225507444718009584439534077155523359731828184173820478069795550300971040806747583711280016451794839535335390090396464458170846486395468582215141176673607341334779868886413994522328937310003224320064182740899490077039589054612273233664393649450384469247114898426275839238933033050976411464108500919377581928051580244610820811401592640765419588944390045684551309798385854076154757019171411247733086347972715442628009681045939363906205937461480201642444281575622270094532009876177034629420207347460546514056189045624911693542595701278973177058457140943607386489608235462088776249924420430124846138273512217018222552695577014085410700257618764216711483154756129956841686893432587110760419716438435589320674240527465909356228659911263172449404369019029602869812341479602295711004151515502497568493826892149962407193628027553523011371844224105456477793380697560853388398832175656688122908133664263143674160948983502604288636012535915377912017878280984948973794341746699679880607244678942065918081865728533110752622775016894669867080882600608404176294410189034493226944806006189712854365503027956825812589436764477151816848863588541955402471414005253025039370699363155359722947716243050574584457725198535815979976140652988848559654602533666311097133616784579505972585106296483270055760637760070348943357327863364940768736188033517157538762831162708495155925051449588015456955186146218325238905069353913972992829419412142365038876664608804714060967331215381547122508749258650581115266243255171691293577605013935892208645007056853773631768300692199233456989728519106511732788180732405141497078471762009499753533406610373146218053417362819365189025805629674124764373443994088969946384918079138561501276337370863534313158446218715091642027070827546351313929550730753060768491769781498360298782731719022020612671849446207180020025879355536776349277172346062427790697590068433469603562653139414458724187484986663050510087467929327304430450915693471695046416741873744681237530920583749633487479165080869564853778543906452248965202497057915940571260450347688416048373229813279157206476044940295156052410156475361941451126339226051273896608397525675265744698325740281964744218172352366452729356238216665513042685921789887532363676227800212671491013306598855926544668808184432366912392322639658286566338403174067492911563121243365307448004312658533062415795478382493038360185683695858226820660436316190260578529154681855311573604932407575740414413676648732485389766141481856846419830043180639880550097453995721941993258358095252440369433652703392916757723420197122652609826370669612071991477681929732965786383428851843876328298021334953832346164669256558652651302554432885286407208004457547041516856127326670137615831072006969632528044973304389010815344714501406134508299979728398781715586093467759982593549718726987801528898352227135991463672919648391922856439372960711275361182732160431246922191017298753138144677756339256781644825044349815249876322156625472061588175607967078333795041818410879225620153061079282584344365138345165138178179794150786580663263545443551595054255992902218129672845811655138893771422149174651733854798512124859009138526813740078480126255142706137121493071944454558280844887803693469449422125981922749496179036678760294384900728980004132808537219408026282822474189777417431648195240358278875329013410675754016306916626921143567536211175635119339886429517856846686942875855814920956185589165082069474256766909733721221585994818097132389972913498172973032989856100744254477106314744096608963208525212990991073316185247936944978917534169807429959113316574884960619266983148931362585028526326573680877503593054161733579337525973889903723764016581542575722713176858677985379610646687211101574585259972778140467219827535972141783785742950864517245618928028606796089746335891277964706746447606943022864072584101672465247045426652477241720634346011421706094289329108647373984843432755706976592502664068999033178682354592914267484274336799453828276368717407228425452637126532538730733551829525178141643148478275655445393775075069456189721113618913928781221209299671682772405687474197057395038037668245867825046163940198260893302793547247586124153568418972050815532628521261654390828071945905660179691842528075048819201935925719353084631767431384543538834163737168438773204845477036814086814310653369939011582119692043159661899353666442249457152350903237643362474739315263968361541884090595072390357523338258377427252334922949208150629768782341078677166857321719719973043711886291730510120294523005863168479382759820550556142829121293793893681948872519484909606991334884922765930855576966980020714477197094981712151026595369914671575039968195315195835447842863247625407466178518598550082115784483459211151509645383927295221227827072408347228852498105177644892916287390973897156268435498682777928726586265499540183111762962893956158962840260095620341439416342208376634171988091160461414772041312777824871844826958498035233800518438840148277060789600368045303481386928755950818837549729675277749052010851432832340991047100714175927206500200757210510737963315204388755665753818723308467589416401955879128091342324258392021227528703082315044865332106167536897464036195873419570578978137392117710130794252483651463811494102112688260082205216337836247014965986882456971772092469173802957053720020096584262567102879910935089718529848853893368870907816210039480219036729923057183832072468393198540420779605779819981475297888323572041389249430934081261719180426206365950004296582171965559235550357441924681277685097568597431355121501643996740085807760579713995158447426846550068636010512499956249263228404612664756216695235430387690538521681755446152060081231351991498054814214404196197035434219418811068461846930181254560285297540829800800730020036889480222587940759332685954251509079515205027185219727520913186279926959111558894321622013313978018432236526787693717773721016270731208545601122193499806878769451283778857320462098309305534960675647444097867518532326958457484061929197570721375054207206329067487563604547346597713219803835740555074114034152580305818949507223458150931662484443869866397264783903070379752473428711375850945103067272358972520393620047706523291807292504481342177082399440237922868312319522165076346837241606882266667093144125840370264268962962698778107556051628423004875722916897645126663613736574090842333893332142172832472440248650534657405973218541709207926304755079605382797831412231976915825045429668048311121515606202383267066046707026212168053579823683518612452588755415688719419687403430692106610286939376958988759562676336625836288688692414956259100743153838138543326121942926666509923118400319329072165855010404720149023394477544477561697408257344934143470910969662555809189186245712795965596423560966311131264236392542249142469704752423166757165219702613439507276906560855117374150099492107435689013020642071426632098920909528330114772031034237309652138663400197702248621595288512876148909699856056578441288719553871928274900575353009115265118142686226901770567628156069229427318995870024005974425195765779993270674987790817104913213446883703788919639014737088693953208069883731595064116895409687321266726527763711231621393882909820730805242917108103941651378818300831438634013513426046113797415981793264994462277146153522282826811100981132239770557613607616208697450135685275002103751873980842645837714006276238885657406485084207769625238360776937471036465778577881556896105112342904512887213301301718358517398506166628615769927169602178350172592343789473474872140752442642775269343034075855907884680370123940939204472514978087979531746205230786985915717630479456211202226761580247738076820463978411112640647881515184777667943168260742064066222509781038936470386208490528826509251526875014007129651126894459177303768880006381293821386276813325685857243070408550286368078807823757502513524176996624329180158998159311454380879748038861345951483283420840217081107779505989569374034545606534848691028544285815302641121981566836519950639159980147872531055797854198743971182290940115476208232795755050087322910253921818519616870261665344521896870156661854302920101922802703797098653650521464445286135165886597135721879570424597705296647445971078867104231636313569501555447385072900017040377353947704220872923480519517478342877612187889918994736903980209643462714608588609060266886825985360721148073539341943431098914542835657870272147638191351410497368678885374482373028070161145886850919217662978596287051496815049833102554619522045189106465209014489455885630440127556009465526904394468100487400779811349924501292642647989854156237769841626313830436556751232202395875779826140984318020839480073174920235352352013792283847427525592249203177780827889896290198048149899915116603175417631841127130159661256816553042066369283914385500970045959843397465244873438540377131785774296221647873987317452004651329982878968905353973846909953935105264048240730760797454804365624101578481849341685731049071016213693786200006691943195218430047211989896964736654670713322993428500969577329984542293505042388187712376818841006581180521171331297357762306665731382440673935992546882018645086933244750182763681557270121135276487672052657551310353039298858528814842616653339975201026264808839346051724253956196461782293122292314241408166123891871122835659857369200509123471931955447587320010966073072175153892810665332147828517328563390286852159114760820244066811728166183830272581319449934813466381295555589859710502401919655274526108554529088795202864136115919242109388612699347484621939415971046221369686046257060708785232213388461513862639088085302773223717142624846187342496430075645810658267164291413124770086842901793456737762825082847857643593853536154345000109630852881372960630855239251295207960480456342159045481285658171773683947672475558853947923241904934724849497358339026643626607238919407787782283132206818090125690913807020394045385816270421368723456634508878928647835817984601243656683494696221283805576544495571971385748042138516134571323454400881226076843506115426435328700941364399766664348949759151156973931226772060810088050881937815297214705137803926832519439581577322100606391945404737252002758183803839452093565176812647560354581638315833221536073930008992991131343228395120888795193666825540127981997357469398107024912917478040169299887202172551162934000525501920275621768770753532647976558467101149981564089480610343360059179206297498921517391293706902679607075838043553403241694085986690523637939477310329277246041725945614344312911373682550642402333384478828599479045646396396345143214588688376222734690679572811378649903146875322610670037011280994397901123174229019024017705344934254656592679301289243420571320581732436522647668995491228128034424198565983133677447221039877771279011276005635305133981435385641749239399937502686198158596708471667021670857290683618983973925641653624122909798228715819157504905432659314447370993285776013626802610060552659664584021041218743492284043941645346399825614262510781097278310791047495944677466635771989467787003331321903682022431283580788931885965056083408454418549720179653520664979459053522051864396583523921423440258858603616440096819857367795020229618158803855620929122149921215630688349014018535031605095809386469775099922730481300792878043718032209648651518088698506298987004794391858677024425060708141192218758372751582903444019581923346326924828833499257713639707057282832513118670316557867409713356215555425952259778136173478505339308655867131945232685477645275408233975409378433673775634486389804571817959178636781331605539336087810464730665951615218887493228920016257920817437449179781547604892364053543478255675709020350127534987313461250168955768798245268385669206002696011808390745414074925410483298294831999244878061135107195300222260319185190126560874305065170665801908541056377082510476839148733264673803344824402022992130916492506230806637010689590102403254473117598673380404978567994898111567085770303257918329228997525071896024419592653038048363882962309172415416596730656102845024444733824202683898177529006792820491764708585418399604341300452365919115948969014291388621208318843781234414001897956101989516261005754908766667241223209116800335986642014064591201290508509130484944565443958626029838216027325176296628697586293265509194735572545916908321507256478314710783500897562192541723575497473671095825957654678633135863140801838611662490245833183019669471088429729655245110340875043162317020351304638558584586429643278828666117768979524195289949822417947567730728109220923542535080542420763598505910345118363040269574619347634675022834246129177097488709152263074426790520137493334514748872471905612060613686958362171360911556232455079512892654832286166091080531834759682617202763248351020870797446020583253226337008378651031066848767269700564472207425883111431243424754909393870277328967141178457456819108728485579013291033824240311075817540157596741799055876946601172627379846264279395912373392829591236542957535643258778795125866381992405844983596942350915888412984582333409309828396616504899938859478992977786590438723508689597187009284764679360106621450915017045393449668592151135448647844404414415655048340161026238311866048282056174356433577943502298772041476969595131259430160512569185863422407446049679028351260351078185735918778351246018631794071087749864758607403137585120892231867480334757053353673266466150496560230870089350113385409719247536079814180619360963683748867296633757228051910076025432005826616400811342507198940774912141159729102409536889034864740243689956642191892159068414984351436255016525188754594782142350080701654197666240529928822216502651193166576075911603086715326213098710773712162900216811299029638667658179955165359943668932639256824492910126968857983253894720403276354360682033881583187501603862881165501820791163731551285011270565977041505214540196809231157228281728676039726349259258133155903662703398837039790631746340157654436571770030025827314271999830165615529906350207291814131126213301081753682010070609963337437008733557014473810162568504064979942272544739106508312292723641595718874600491869328938525630650461930137722080642654356947144869898155784013353448138401290729378204027710087180203989551811536760331812822520262031592923179682334004012951615359286072480416683992226970674734140013465478548179950998801446613639635894238434531950765069475596811635788086345684047480584170755905955148170460175151568852849814191471881483870167167599358796218045956926641274224453543565827526976405261341569413683924877846437641699310449561387304935419214254494706543695790754017330262488508912452267828509200511351597815446685405326765842555135782113889459386088910930631902607050325641872823303921207949683126758796984150079396308958039563081422262767965891398213135791721567588752297447650095106845564441426094834877821604076332018039582811260522291044841031963097102575112870593375793549782375067572345021117369719179133404767789171997461584604958888257649589648248787136468738593696152733679362598056265125678994540705779200091527139575244069203443394726312662085661113425879282111633314037886175096496698377815970035105206542470701040144752255399226833835738672578807365700442477805871382334007864122063208732144041814351059637230481413444041357905124283546816179147174054729617182736423827730302934862638166105815143106880043640828818359133071373980169143616495398277504371565586887419851300929619128597146791127057513115370036289125390807455647727610837456160415483282006097962843054590456090519727068254752678802261233225313642723056865182834642793240563654132396589080316470636972369712813266573681439054219939513281431254104087943954622967626760532010615882028047055618381825091268417966847550228971966838467957005020676531914500216925453204677493140186964273054571153497012212950515829469166681727379161555470062551889584364150047552804669546107161944206028246003663434452258873913662968463345469028520124508908147327907284690268333282840842759937487436535350833760849496258647306615899353882669525528973465295127899304250313686093224443397700336136089890766464479741762634315030146671837502472239045368587358582138387632766781314052604555437871365624489812027239301139088264714297359244809978169209959300914554239702886154885796964964327282885954062974973335564037587721630081671399435513442221229662296712410383974356398487391662173413752204228633522252200309402484982392259700100312832106452860140578443429957308854564664502397626104345945924678645499739723868885577116565555610049190207991383588167165985168388529396564992028701482761264470454599843216824414523206648999479706896005062765845179269888548543615659992891021627933971146198212016475773183171490093633035240531199035224852609457917371054255900309942946737820406005631034223944803624293524148635563341704725897246825370357232413577433902845645254392720445205897622946930795743852011680501341249698422772182598397500305620045520803429409791806776233708839952087969728488181365076398362276631498671197821358011196353663130728025956519812227376350309474284456410715387246429304104578114483598928786144024733719025155478049309968926402213776399179442979512543305645835753094370411291672444241399835036806929595871072660230625677782038142496238019109526043634143936301062037134474115934461422124351787438549817425676393250191760586346929088175870124586147606273977300643324066981452718906366819123420125931939253040739595363746046538822317479851624037187249046136682929788517248443604953273598545169669241008446470820486236291156627628393755397482431822026949808752715849868883961951927644047898292657544379294866085713317860176989840455646603258624413654934666016115716374521435324109872153870668019558312281000192131894489184870480772951494269823553611155139676614460787671496699976624044040474045186809279957576908452970521145147475580132445968217237759064706822349592712751412145462120048370438476329712535293708155612809101133349738731097241372948803714785205397106605631879162231805478881560882382930650235387478003028036955635361680158123833632337930820578070267416070426388748030920486438855550159494579045270922919151051046222740092604274910711057247072617341508464034057632655520912370557855161746491720798839990817006512805310228181983448434335056890858377096569830894399596084472320813286754694778444326892741674496821858649593580522247316124089120397098408938177906599034545374834060035279714270703153200746658058873185448655542232210944676577763626931021775984383307171720585627879575063712025436090172849007444668612565242406489985855755806139646291126688931929124102929848913333093686493168883849033830711656857160852817183240196675105017254036137722823952787763204970762560840835932101537155573320139918176161723627086197645657580641981963457837845535278322670624689045633574181322261723907687753027012311473945516515454056835610550499677402883046221131979388326898758085930981379526999165317959260893183543304474549338512482476070428066862968331418224385796066372563984037482706467792535793665995591931054101558494605344568533463265973812168704040021250849429839900125919090424368653366246541439192976288829944199099992752440387618802218937553610154225969969204221199881803838003692231612503704515681890680816629095845898058993717927665804827366874231395575746789541690109802531393389126193690974681124570993956969020027782210308297336356911037266369325705512375977676849028004626550329679858683677530407490072606638665451377193514420837455908612273768798500017251434001540610069655604915340943303375044605084582517365618027951150666218918671180703694723603825853815964453143007675911697357354173925451626144932195833829591516516060406730734706819106038212665037112675184873314081382632383244335126065526488461294442154536222395802725152962891056455550511741353437155641908834945261806424217128494934243531636348234412405326260422499128796609590836719530909181957881996939938657089321876275954063110839694251806455368480288821146912039147714440692061062736873966984597633940464156678985949743862190101736647353054223459382010063148311133869857083694667881066239727541529901024595612808978073550009677088668043255912102454148302526143088071744662118492509991412702570183326569074408313896637858333676823410760817907451050778087875315032176392760233210041662764479233837444096079140364875308067319147778419734514076456942883822465643749738455148488131913751886723687721966071328282760264958631306660761945748281547599630893322025796684700571589526952238493243694252468366759305834945551570908481767365726889229942623227106416926381213393258671164687957722661116867377212198187501227954387669236914149393194893720351088146772122645766158825921013681500401680481754012049984606793168677422043803914738351836273679184877752669295930987512141124940520725414270826909500643378827056299355896054564871635456322827638526349873251511740933834348794043293847037640891928409693883381458503713411085988643026058421430474834668353803892020001984286632630122464762940475071907541267361367457722916171231856670936261006859103436386994289085313903215369937540189786005267212608446703895449405380252554985498488214803509625349539690496381787920321900677287639735333233299588904511853192160350448753922045370621669865851574430942132501499330333136181976384434113237997138003817437866438133987325398951609427206510300863128764201982631456740085277652899838128838931122175253690158996165007319911412488631214052324512911911212307095042944641362333543662332680018011719466244352520548552731714304081176893963705862869331058692231043780268956262504984399614137935203405849276180517350844718702477842186132891010478919863787990717793836139705896072786309856151495999357824833575997914667228011228959815245607913890850860875743057544685217551861371922107572619430122798383326227430915762778715936425930487387841594530060746537997572079174163216344929183962850600639093037621642217367825836419111717928498358797310337649567417812386945512090684857235626870082133696990943037245236101491755902236851508635234512845378991827903499724570132489786085484984201727080090662163504880108643657588216853973337390858344175594991382588974664991099288659949530677575778429466476282308496146661577243243139996810886652301129046423678610138052240256179727281518468368316654988103777045260231653316296975817603519862879638767009459234933450788728900252569461375341240168435016224154668365203977753272419754199074462884590888138530084393809737229755637579085183625715199629476889743669233280701922066640564981732817545416171492120003428091572438781275953130543167024482520109817660178008339932529373688647862741599831355680989197633534635431565837160823614692875624932802619075995818224626182277794168267899818631015287384862629594526413255732337502647549667548545300451821777036635891966448729736398342841242112823714894912883920817949085762067477914720870570509931772451879209220293626403298949073922542006569484451174691409749718112305214686608268865753924482023307288075288653849134134576847147549284220451962087452816975171937832573415345132168845259407150209388514293600984207133448846122658734266632833729996052866940879881917917523075327320316144473008731689016215181090129613854692430111502435461810270086373169971411491576313006182643735519947612489089023905779442791483138358504882278070217106713862122202010329239943916268936224152543983841469659980250800065077248021755670367240382317765421720005101309065374448105091004283544970518937132224566118026782477435229202939607450830730085590596832527920476711137628023893505200846190518677909928190607480007519249456265807109420837573419296478004216298265682541020998001261740039256343007729086533894004095448245627231325179364998819869241528047192167286409682267011818826241640788640278182948696707842699224543704983640080188628226728762848416474461587225141104561029517724050879040180426407267689410848541035432034575049545993369431062916270912706628196412862055577544173197001874428484941064735400719960353807587580979652266057703296891341762301251191643306869029242364680760307834779022229816911865498405674585839072829323791425280973590849076665110349324321833268813148382107783750941174888480694397923255436059114527787944324422440062236568846324017787825751957459980113039348289038224176711992833316510611855917459849119642109311950075592925420411960353228266462601614326137081317878106984718562238222466237949110484537877166900517004554086449179764605253232837254002102283092866969040251423166298792121791652232178366381805264366696824505052877939799187357342921859806227306841229803836817797933411161209126109111407318249363133059630788159031230271972839464961911477366166424417236358852762138535281421874223647814157018093366069880341958465034176500421017077813274855029549135248905901918925764939019014407508123837762806425889228040984742845540744609977095917251291771420578486213132485659902170828771775570817430922667756663655802423828210562296216015986939823097240093328405629006304702526935663971778970008170250311213328598388645748400908621913789704145757319357674784681412214503312412869974813764472832658843273627899153074923824944702278752405261976054907071552210387937327593307600088333166856079704899377851840567315641261519519748958721171614150711564051933799244212872108363844853379831230619112460156536520286991253307021608440874381515048458664725227937097113157355609223167727422423992830097747184457058376693850488198075470371463657161881354346325766366601145618788758464609499731664310800755349723132959853012651304245169917594546190944104515140715382524041678878859826079819529715943173269975822045569998006306551679237292567023792946232840219194080933289508546849418486100677379669052567798439707902975175100250580840881957787412040243640344588979472367842417127110180436283473336626093084786745974981162113970589935678820297049565370568992932446632948630702404448707318458258964276874478119348522291775476115580214282566213387958073087967662175298415993743221331564386394856270715829011556419521494367882102730061956045849394082008270606769725397322924106054345249799477271774862035734595759009063392057072084863943873559635137392127336692099516479173185947179066313902015269562621153061796248226566531468466413915825131964269205806949115615446106118982684225777990675306050205483329122398962309407406854931779639803067272988184405039915340975409035142459324464563584408120456317409886541570695119188808180346428500549606308680175786764375165259796725017237767767592151043473025139468707283022509998958119729047986789497128838388993603504371840852403254049335822080875344443315965236477169782855235638137266660080020142094932098494514601168792711056797749969579668928027451047668956901567798441007913012539963213304893049882852004452073270567067739342750815905552754310303632220508436160572425074942136331491739275346994053645279334131653612215193461334496782171155350094657906816431156296184284143461017444761167542727146790518134843870987681928273091569325200747672172596762484559707298233980898591902266900490195145001105222731017428056255284345327689803069552543206678535935526962960354587056324565360774904855366918202341949941596177902070702238756510760524679279537261318187970497174535378358685542088774001780992897052991204504100306877325537598795656538305164318375865888632593618500106450302219795385881613447892166530770201146802202199586653338356159018626795953601197786505334395209131384422024076045491762269972930026306956361608308180876849780258046252109903928061363324502874571796344669408191342928098053337559567330029567166193568448770787525501600043060316954291339143638529770793900978119402375061686067914527023592864918674702233846712236831240992657306214970150142038205610239629817521935278286400587970256050123246244548452662737945911359041051087734379372412076895226665001787272293523381303942380949686692205611712869024363002249528728683875400103225061114138121494192599915274525564877032276125741498800955219616374792253013767405711524470928147200672108795929955835976748263937379244898107195981004786691156987032649757521325732737660528505738477219190906163076259441091698701585890893679473985192966212210149637714531402179025073302486784088299743421057822516120701322958840652227371210001781699350487052480749354832186525117571921272617236379963204990336210015860261053554632707754531867847283092959336453150676756126165410560142775517887045820173887224851691450728149102509315899848290986734378594893406462035048150878839158784578262691301108777294851942412952407619387939786115021688061912694597862252537781220860961295604556135900566625614701279933047735855951215440441274921506507090245231138892052886702308706520564688909502959175047534664954920592040049766893452403369984988425324218069579160811914604490401571899176816930759139850053151032645344415616423282128471192498357760391710888157977418355910867447875213816635196443433333896210455311535381729706820107891560636193722012182265751113580216278976583784663998782064850831545409570962806837071731378665069838500001463627214840072822184546989515921362533987572591659349559603954606342725016451932027748602113207680268002049471426963241463941246706832182005265023794788755030061857872328156824386768136464875959125133264603357674472908271129774465583943139565436747953011070400016717919189165257169058932864488682612023818048422597763048166008561363571919522466450299207772367138826451474397244906437847014063608272066261836479947816916977999323047028299863112856041747502704132966067531224450992546225209108872406447018596581822863729814948281316517503754089750030700879179646673538867552228354397777087625498726066249341719538628726223434448556531850172114721101338315543363921138821216832986158399390929181649360661993333374790839530362273262848209039376151837305380899405052465916580558795160932200258715043243137956612806657270463227716917879333777370707239130556513567364571972310800648554141733451040610403577970531720694124442577200171701428600109404379009445404990785338457751478985478872864607049990484328552461002987194648272087080556122788600881041610665677802091525589543796684275277328982738890739952230933245340671827491497299484176763558319621477083812750623850652528376562025670302176214308460773917587378530808543989884898294051914809089465082120808315173296952887812459638809885720177553863882210857089696587082478420759242320233022706834680222265842217322692555570080624685272236066786275629957126252850959030170036250042949836399241247852475174747190296163736209007689251404642391189137242602947155523632009616646398825062093455077348656973907494696605631478766827471731956134606906302291419298677030558371700345116738325586344461137052032101408184119017279637205689215433247296662116305029754280802174151529477067280131739951812685995755395693123784232758999073869095183390803215337054895456347684826227791713731373388964260202792785455013834579684533568100402236658568091711613389657146222265386101397321033825188811508423672830250378032354995098121861559974358095820881766309902051432473836620001655498437606145922779752066986064862417072784780268337260088753209523300394520012664893661057078738601784314134273139110119955723965866379327717545513215860737701564717012106837985155874699165245894244446870900962596332580329899244804845828029182520763334161951614388780408248098574103600765138137478027942376169906453882536873088227798312666654956966564574746935644618997852861253922285401146799502987478577992723886912037997805712626966839839899784995642782183237011421543819363413943432416611621243235481524176525132758093926376493395824782429239674044788615335423166072119334242961491156965318062391772018744648375799709007733630708061215986161070791650842487185183614270108899198858300884017059746363304690915659133173304307054771795588324080095955897463317119439478368863295430216184671299096014391156511181140002851562177829890970535662740879561270506005751579534316597249777290832598277529915067695179347604415381254780930637550274721015007666502622458908979424530024774941178671893899083918919757663093098999614429614308535786710712852218595381188944559588029171284144608787058176762508429115431562110606325912375781768763227704531925319538086976556838207239485408483350501354522798411046559020365314981775532143506545324827768296532592225929391218194260811935130660981396968085395045741832714647389787968690490653942428303058610278100962478564809150707318520942527757218236579164185884912315129063088717772652957181749314219542280435524414743605102811943487111049398074647896013917634776533186908966367910197496919374073051910502155964050646774646874274498634053139447115482353453264606411708032182399382402278725172687507481422980351140164615935220819429978805182363318971185771273083464321568716285821037844639717445213665384083671295438023640505595619376753135883415933545236766265493574664960650053068427635304044364036956810277184813338344924964233200817203513048782272089785945952072106735494899902294409656212771080033174179792151773750119665140795206303344337507197843734891197279468584247622144129955060313274451731774567908588535756022970648685075114907162556407981927771744772348757428398439593833722521286523878712713851066118899529782261764668305655546064071207065456329213929141873329326558964292258649068762529881389887711703587663232273978106602565175902602613830840352070311290488992785707211622545193630187022783442796611498993113281147591677150902907912717704998007222256778566752903615708212536798979565604407233367204866329388019348649381688616288166181573505381194644260804761849997701686770700262442400989984393856945901942703854195951868573010227258603515628732205994542742872785960627173111135546744591270010937632674630657697394365038634416436257601182648826048200462298104842065322606714719662301524193546619008780827900714379820812901413412878976424662122158434194331983148848025403731689989132928659253388503183440379741876502257391935185404099387752652275427156902843503276794041698079131980931600952357682463798584430709918745239810091516255378228798470917066326087656716919347285960698512254684402959078522048431966692631910807702972576113655704487448529811119329974113101558886456691165217047424945986429098247866505824743715895971856591207113655531320835425539148034078168734375104169571897161965848369991226331959065043268529454997165845543882376884772123113016452498810072026877006135008523533543232833986907374335764181437553037106588233053481613703088785871034578431339969614492415744502441363075751266684310898340652638690950178039606970388855754602150412357548322513163643367901267612375614759663880109159867444235924476082248654405374599368607973195383954507117230798733628962901416079324127468093164698414574260184492737279896309103729192513889017201157155481318475105417719586676403388102010640110993153577254314047028442097927097136417181258245278364411156559458552962895333249656459989712503666423329432961116841218038790131766401518599632640682614068998567264878390341804877568956874082305033314292227656996395132832067953056550654869814177917218964535371619814745221938127794314720534054321090949186199275881590767502289084142651720418963630245665646065872732328591634347039312885769690038537682450943823227263737504710412091457076418134130068496810292474795099333048285146420010365732612635728473229451603906296819649373210522311674777662620653006443196027111101746317772382943839313650605344004051492457062843043849784053880013177641462197913479179427528799157456551899727383372437212336328813216065498544278160440832980083247079687238746420054817834823561739410645356210555590960667731452938347704029500617981972592181509853394995187103359971595339674762828711812095079685656297257814023670172608652523084770832900804752242685399588762118381142860422345473278792533187201902966737947444109895058430180575554751289666768912021684097989536291059491389614929432866408731795439745351178122383809859803938367743026325831626185891371536369968146784493894126761010476470570210927004919182594123434920917348082188687808278463645759360781018708605026486737368433396382239505185261087183812414521745952451905703943883633216072928807684967557415551585290407398352876447272561436646242540789525329308385122350338542588939790821108684649117139822910861152029773207975252213656184654144026486887561432760613644801631085061888234128031985158875483739505971489053868653778824035036490813875848919770197239125586668200889702894364201816372799824770188296657052017540910531434801802965578450001882192832532339492780322885903048742275290958539584908154756310653821917112466899362855544142304159543869631903369215325347376040755415343559384747191791306983944953364571180403099074107356060471049093067461989598059949206787268348741036157797170818924852018882563153790061147700516104324089060846395139646160677797052848966929113273393641720509575108808190143139253186371468770376124472517562296312584397551025058423742440721564872907492868720865611892086760085165697383800250744216156370556488699246425717114652381116002519785430393740534622018246111767384420166962952966944547360459772741294973667416021269912354688452760067644201686933860112332766469475806804975934424152605134913574686824915979000229048211469332984984859679752393969624530828546979963962092070935429887980969574161379505455977826727523660671063513602702667076992013827746619881575419755832445282942413019866256682019397160438068302571984633575606912243423769835459102278363043123671188172353784434527897260040020762878412041976078950666511305138003864916006900205838746054383594483853881706708985468544151591802100727469645670757364241175417658783170522902916785216625129301028372809331016811095092994228071009535288118816011038784986711324752043711696440062202551277367220984430014133948150425414404469041391126589858336779443146167406453038996860854546490597924802795845764545770834861109239462319788331811694978498171771815206035072037251226559935787806862611105497454735057322822514833457753667894950252995070970961027529661867777272461142315705615880988026336832668700307675044253967762899367967533682267479972312439919213139689413744383010424547517714193703730974601035407186390791514268016699912429996741569562992503024117166508090748344521512830278735327472827671110821456084477361941536530905163629164419951404237936630195817093108782152710608328103157987377733526182712056868226343995109775722522913531844130534430147723357805797424676342937902422071036585960070822296544466627602799357206146061851572737247423872066190898750139855181370704135934465241837276691041103759566271542189479763591127692275980240189078830791518876482795829620336951051324746331253746988201903609216929199491003713875192778815282710637194568478818702614925466988426706792955369717566438142712677866622276274717471086952893484552603852309714070671056132674265872140415457952369365248452995032411182932301967061593643035150930354334403377966893393814880288975711017322667039981156679884637158725019648902727365597277648458935772706021280071968779820137839158547890152700068800397116454568848290589524999162458781848193684630579228126609327101834571864058809363015481328286556801475398015375229559296359672754366073189362696129315821409712618566651878282301445310384317474884043172836221706826121786197640353301539510961601631182917776498767583778316408706942553125460413125814970196850191167811736361410847938318659413520768318678496089199452269584587290645393613142045674326007419111611204694507037455317715919482394986932316238245085990237766702416440555176486784057467547347055600126289580784644707546555999130303166437595462585098756820626171856391859811294375727964203173563832750836765228692060412603331135869946162301990686350669820402126558256873611495061006407343549150850454424432825404411453792734580832037703353082830778012108020756381226108738295523727205785001778109348246070068256318899156680342297201923319866482373511281988701818825729901841635044031965262453759978627850974440003693444261009516198258497509199593971301999935646801153184816278801283287519662804773202499187183025979674030736885524016246724829047042881193701773764193058882350089469818107809516395973663821403808709749144060904707388071546567297424587074889762209447153936245053890581294246734479391917198315817326963820410459845468272730539736806538356824288937378580560442713452531798829286821818373740755545603755633453556765287087853467883167958219619530501881406943662058116484750400863205518253229315275853280965438403176820688482379913739123953096855611392072928340112795032168330211713787484257356401170440858203176903905103534054467354505672892053900895122772987096550766465184575697432522448597500660138056225363223006497210271240583090066356159484758894475257026940692083992149873516262908323905257227416553178764184165024964110957376099298709113194328631278475225575903084028251302329569847500888465930590876384500954097633189834610916077419103787967252195532220460855341592329980827702406040438540126957383922408814220797697209570605184730919858309548106926453797391261730698189110164793277464630869376667748555633737890928365458011840842210080840957869594473545588390222904147947712570683004115960011971863356023103114748266058812196293037859997143251952919092047580211568409833477444430427119207321749974099287132087076338510165914305388225740312809215167307358189051124295494795001304115581580985888768145394437631730949348140615194589758747819981285097059712667070091337416999582957734862638572446122513346038654382284248648350360923660041244753011598740173198540795196909745608551462847872136334868561511436439584977513076830664490749768464585233360332410092955471011880249689792303123214627935993111121819613725829739570641584688352056217972743114200122839238639568680944283315429316991854983554982785340740293928293352324381796663089377877853552095267649980042421251398379048588406060793351409462198904709544223935351727279113078300638553361407257102127601593979630868072534499259752007306289663161917287859205390536713540977798568040816907562975803154321742690135167197965499466868805693363306072333869389953454510255311947828181637819293044731505187441652508724106985231306088761550333411958605984019271101228413188980708487503861283362193977671176003587521928003270213024896294214012580791897088396525227958263566432638753957815481812175908183712349653278340491093655440640186021361138480321596044853028654546476220327790748888684377999293994934456428919987770018020346203559747869886504002784540977001596935674211601321111988421911938377245926716360814231733404655920670852967046836076365559803477395731755193128075106989073029939083845060691021675406531190724800594437949270158437002659405863874386742562147013861779147836032699853758914516878827027984408404352511205512974895378744756976505825897570145216512502541438477980454419361182150124644073027154671737834731895111332723578096602658890756908494082388776226060137416415383003261778062197585456865296814246500239898462934524906928837680688225470630086087256021555995450100602042459569288536868717910581609685277845867028365729018947449519776674015492152468098146969293988853578779036185655636042992061582381610165073177307959619833361206889351193136981921874608406357156129876356746264438643892941093990996689480450066232965301897634114260932023778269788071946841337319964362866121030217501231533360641671846813467824630650836950769952944339428376536844071520106799738744103880699872997668521866994193355637375680279229019177076987708885629893884318956119884899669707900749657831984295222976473335826184430949310365231415316042134272632540909105376457490510420259140823704037254019449894048893508391982309920136196225911611294383715930139783990997923525582911211294333824154100567440389198012039276324769115583375397450524889139348485604139824543110679522674633293400370251494175522652031821457261830016566032720064127552590413172215650700449930431465977127321781808345454550078491096656648511763307636558801455109615584562182540638523047881446186393914221981353964344059516506428282538601113093747172162651285087465467247460167149050660088285664634241206783244086742666151628472336181457188239684971764845562534558142134027889714161335641874539790361743052501409519643273869145642047171369428454920634330355113652332058712641505386656794159548647224471342393916314173885472684504417647609455012274525076242814947879166568082785723242827808651563257211929657989545936272374941474973431600405541108164849036722508116942012132001690081375402138536705264312376455542938588219197437992935663207165687274782591134750989483133253494464160538936345452281662884476212033328720285350304698135808500223411116350854608344197601904786038260336167493019043684330087825991323442828728860267884406759353278149824819748914713645286981562683568074744629877198367732360145597675466723325855478162663402005305060690686396573753523845291151501103410558446954493791539462544472294440008538819928564727587628331254334685602411893502157399146503317948562244117028119482777575066451455746011328415242720455408527824036861870038604896069749122940635325094252545425487511311211424113719828177810059238182215040810387229958804922441413848359421766608238623289556725240404548554925153374385144905644814134637574227520812754831642669201079426163519121472090191602892406701425463439197603221468168254757541297814882479654118922630883754077392728009732646351690870325892679558300772342165866676504994052023795313684089489209482844030536606431530855140430155826184379008735601666377899882232032286788204448115506206965007113642161513632833225412948428136198565533694982064246929436333576440610615039326147348333977106979423401187610654810266493913610747760860379961409086660922609517372315305595592051540383294365515227298127927824201297217517407171385128335175594962453796045997445423120244771496849213794415199801074235954633070377183493955148007551789686594575432137077868194459257532357031346379942296679454389854341941636010653819278866460507856533987209541588176121009176210413826726500792959305601142769215129023810098299917054908486955378026516681696961917561914426209264132409089224621322625060140636949643955167254777659590694004806484450029542879256096914920658437268246261448134507702194453235690650687749289875882987657408715676021881262381094103814030308461702613520921492385282959051813906550867108740957928755440459684556986139635121457160452831637556331306272624904267635068975454229119014304765585060208171674267040693958227713430300004948968778679697100710196797059682681241349419428219369301223458835475320780837487721381336404541790779323885609477102760579369502610558249993126987823239330708839677281196424581431927578039325292555755951132504387137982863314729750928325789071473411405226497319811229770857794008418488291669358249527660959638174652257620103733230815740423344765305367862578132610292617034086973629460062955273789299282208603142833923162650285875330014936029899472027011057115475392775779262780929967772075935390989419077217801305172004231388374031128132005019014384141455529232642203453454963572393871297920789623577905719075779794345414045787238385026769642708624773999479838227832943575957769501418274047393447009250552506160825558772972636565901920768273083252393722854874440331044385980994200440380066981418607736800938730361606392794314268526063770481393177284102213076710711396124961878561037984117302988617501523446804492036050383822614467053951967185426803975610035222681592669688150185092470353286345987493016985907999613998321848759641262760578261486514259070506683593633181607854095018031888133175593732090447324831151153291546789745478602912823357242820544755183039817255677462634999351128419191438970428462190297924629973633236017115257952906295041754499895912431899448035910021237083656157361052001079849311520898464447551616402189758044956329618775202059611188254405514423873960435453891829576656147691375127627478273527024572147552196126275834549888468299209719186597734654102796165974948471444253573519255799151976064828383359839755715346326721278736857380527413243426923945331787226252163291516172612260819732492988391593304190085162181553113021680551415250611311360333622486668723733465135904512082454371074268249910690223490313532316158834651872657695596365791204961777010559531639172435115128272372039127535958112975046406284130488817851795284329408205209344558774554940025735403930829996788048918401556245810828251223582512948780739619163386066690860486332474401450000381036286333669547052136197955683615276121685171114250129131281516832308641315860013684644079168681824610122239057503422758669472190538662311563875260322292401749228271910370940490256435803140457699219344678343461578832292298184277469663467520711063321941947152169428076460004291021148300684440807036022015541099872672446520678314727640316121658332375898330062435845264339393445493571354357533482628784396144633003093753037508979938827983905058812211891928158014464360607461143860998807449282135764148336605647130529161058498254935525605756880104331200498176331688697200249119001293199051808496845861199918707888020433643232641042318737471115269837902859875838184720358489001197861108303958439508752509858570272745162760092759909110932280235329248655293586931356754166557635683120099073200377726689152224068397328776522951654735367677949788632462827190646531190189866317017128471465669172994615256205054521007770753298138018524465480533332072209908011694925757998668795592301932082682865765453131644962057891625975627585000526066354179959860757087160336147731030187375176964092935216936194323737481122726587303247526462846931654015019185030392631892100525782819958348631584819580914158103546806813538714113989622493612748989709654647504764417004001240060602943240465473323258709094047253918867966722730785756570786657651464038358670481401887670255616361491012828787284077526433878980718647118192142586206015116751980520658883474846590093108871918726157408385892900875044196707460673207517217247917383135790222430366438240196319959049157619175799879677591176697821142949697238901163765317797080829455288997843172561046316319079606732694082392095679184468869920948528318005806532036755287823862102577699214504167994186860331991218823345057888868572093164500133478138833739900254716964741844481360326784390254709485075214257035033570904149521012184845207667154804948055086121836226566404739664236101406840497951655395569264988081517460032795866736147417453378832704863608452859300944416182630720652336267769287966212738097750200867121306002858656828499686488023264602385023449757509702205401946801282511850983707852207357587161141723065197549586146740800408831235638257626464065452941409924864889922014260256655097689833450422690493992678132382185357747310399912192920710485819096756776617543769229845128473552232441887017587120555237187549257712429124092043107222556820800762885321010111278045547911269014709469523041642108674727967844748242733034492236689349948763091059167114794493410846845103498480494011829153024186103707787006239509558074821570237286403149899768232386681014734964982585733584774138249130158277435560154268482936235568818176433501547650770622394218811818423137345414242398765369480100302840864177532800182845067726777051008030222024701438095728432294334850152287457121476606018655277645521073547595147710032533973717274533244658971045412098113234202117913684016628044473400138589322454585837068206937175870889887887610634648788225744862732935588303496910354742224516445889744790591708953480556345440390959311563793490911583482825778079690246081540341552501243197231561286305749993796691721687124286119127057434826645651064295554195288280520693714022833380738916039648494626288232898469060514694389111533357841382399060002823190373056273924783591524914607213542562034580906155210395331380426766500299090608233696351767346060730299033504121423482326281714305207333796140831728163763797415246315776580001295640618470635255755542470663478514683014619535780131769462745549839523752583635285672760858560352482450201562689398186799952949637622425061792154098149635088762543363805136597040338763758981936185983096086254437853481417174573657954235686234087595281141190865149539215451873115179000851913969604138898781159552050815020027420768948246533961703233644129233280258142299626642787404153629189031378392293833841398150594459953455538520848813872520092587504515327639492908908188814326882721560141236735818741203121191973904368222294525322526040201743776589127297349663245809337369103482889102600942066789467927497942384212094139770969282694413204255459557353932511445372901767218959189823749309685495261678986061883438065146926295474498568685702930254545451927947487162570628753839130518121864598699654426556630219488785170808090718720608068497786659658659759971105940233642399043043464403312751650299270450236260884614393776614571488982263358646764904317379952301736699406246909003416552699797569515703852274177440852194016421230192211117595094486540364769944615304857229618307572533612399138556585679575342348753495619426726457924844710858996404646738503249149141181152332601915792959214735655093630087151835169910239112933906167887243037639171785098120810843283007635625996647251473366495585273964840568414871688461066404374431031503366183438897344976111698245823108501190064331613930976585386478727569040877787000978010391932194064449527504233114735854321679749219514145880363343875483706035778992604104527792326907365811837552031610214050345033910066168716851964440610336607866354938159605357148846087589694286341860574495885788308148546448274007236122319235519725741872886444391375279933046391074092965190338201084946564852036661012917345208150038038569935392682716914162431899639152470093647571718221922966698975471794495093920983639207174289014740063496248144811092099588179754112580981849401052614229803943629313543108489490623169356550743589681720174809969149158278021132442995257430191165463901445792323300075052711619587724752233302232225676989739479459952405633489849903860345289177981583774509525375398920523467451510523898803588831677860811597463657373417894005443324365706756591988651983482540862533245523502154415141126360882345394292259800268683991188331722316914452237915607180693844133101276823186465393925584911272875778673950231568198474966244043683339470829058530864307496957855699335229989694867577233568468652910087997011375950715695285237106109816317128529244303787843979445788651842691906585904782059488263686717857782830038690584262976390393353364119000956091820932667862118666674567685066661333397145419267317310491927791093516793864603389960807405465534612885476639918241549822287775117368282369645240643583022602895712694839313947387708216094983245799743856926920145604141012099978240866592863166986979068073199425730197599722123844516285082511832145483435106636067896224043177398673523373580474210774037128018729816401075883940221978291065312040123149136372655383197822478746421362722358087973021336679085993968451730663736038256091548950206394492150384878204805191147973731112274468623614516255060664282795918983241218408393663167702703703441053970623518268198632517807817966529333936466053273225904220155979934311870577442750844922094044493378478156996413030815197445752904862465563106504620103787271213424651883402780232887974860051751238212389926089779317584043067418844105121755989772875492974110072232689641824281288221744113301122087561989407474574757849972054311013182350087507074777095505438441697504917187022323572169449048345126333723609008785611995693098683769691914024636781156476934000559862389080632140431241891931311627374682577133039925545026275031041260050043972507876003278417597289733302345216991185385415473645434835941929554086894513717987228403865272893215479254914717121101196089792489879876217075148849212647254689278608100663116235259749819439211274612714967502493333021693939899835917445097824859403250639060174891329372458938182232135402635404694469650646218168736653297548140047207907862137297339349767089778778575803333017298069922730752007844022276235239939462399540933716114581279357907875194027846124121532634447496248660145950387359765647579140789343854121937078047672881146351111402816349661031961485289138845433867452408956586713534630424042006190635155047616067059155619355848294054990965461656163186660509101811993147864428007107895264057908127956632856618437185022289243187989463099613792983309783406639291945901280357425257325370075886607039974180019861477426790292041296534785673785367854366578576440876058236873213787838098176337365111665171769627724713083564499793921701673022169097964559828234419485929872848245285520306233368802530581212627333338875386514386252754351818461304880069536282806694575263630367760761790594313616483297015252822658348472941185510712329693435026901937657373312095035106706008335925091867686558205205680655707502887345285431498114011490562110076028081589604705416015217787901969593115429483305129235880545964027958211470217518785394528695493818022556127443034027928518597841619597995403328882466636633912658203938463810495314149154680714999872902569217903209853085937355325609228862431380318430271591586804198645071414080100517301903815660342816923108045437343106407348756191689539345235323580636738444387252102808250349976400063124407236966843283105393921449092057090928867378600922128240716309180591455563063655070141267324098977651096615343325397385388410237771482731995994471260251029396567863342725111544247579700260957235748113921803947413045689148855986912027094016719357365219237196983088459943062155903016714625048954715029452014477063477603571272223757315766858577632370381900110673206986032533636260709207263764078660548610367390472365613741094479529162010118149182474760296083521909463507892069058012012915908480204375683129753668975658583295466799294291664647856923050812378948269857808102886393729138277340494296024060286421954209637531180876713659445664686164727434272161445877405820006652396616974300177584813602473804730054326858494152281482741879708394209573139544568299989498839680343727826917369579333774545573182996359557762101355298221211553769326029095252803632611298601471323904745042817126918299938228511704654943768310999802241903283589280135074247681782170869604846042451306448356272146783541918872870551199135733287981829507909783624290483762646183436959672438224130391417481623230709375877054196072154668727222055006449764301639965099301431981398886625929306869943287460482502090296045769480441159034329698902113518993906756662979334454470647364284821517013625660260929687843651802509946483861446411952497518756774336627850842589878964648990590364070366427298917899700037695925246586036742780440457040505987377860234213564040913979884153809088142175964717534845433242514748227092862066123149444767360535849484922181105073404301400925131819816351912813351624986945103238775843272862850419507968940816938803871321776609989002407996294568644231015070807122011254361255802990524336393874157733691411626337929419334884415030589457119589865805928217010103661625734571917232908652960611959595564579383278702230400568388801895326017982279189872521513796952933501470182966370535578472427448632968120387662649549645872212430149407066271402091073460337260350840957361167194841462785738952591485494062211452061725300990199385000290529869591137022882432257016656130307082491485359115868090897003074300664767537328736895164228440206744560625943922451299366146107051721025349128322283087700424706882441322689676656705870424322618210596713922792047274825853396909419463627003606006153556104272924992547387990541934903791756281774944884870694366095705844399559126562530796997288423933666568734547876812305163681728326241814152784472047523327515489483741856775381732385922428768159378381041402666132301295040511627954624276286769129512944941995266771086273510563072937945227037883687355686584951616122750290515237997930637166594427521616231844905229644801727800001911991990015824159918724719258580960295186388545527985402467523070864326378481716215377980907778196257477935890321501093044445111705153428628304541701428429754561278197967158942781459973417655055059511857579668231653145220605309864546382922169749872638494267080537415883358613409129950088286836451916548970000593894164642316413816279125986165379304385603873339827843669681525860482453378719958252716983967243237656762664193370780527549600420139716881486801650898502712968382449864804526221202665543350821006457546878661822835642914807278643039535892063519496056429470882974130478077122685353428478957368254235303462870018516058326995378187348425335635747692605088099768367291853998856597237617280469258806611459084328584219723578062313701987571670313779094455135561973344595803096894827801483659918259167622066895847245889562695907689506107248872560855131242195476076713438048138117021502156061156664121692861591170967582698732151206538168434911915674791770768169691155123612278044875773925291566130740808694755300326815400911538238251830549885908549837218090668641696708868887958734582452009239582162772800041170362891365763559520956678104269423088887216045308830743019805714708677574705614147153038845183374828802760203803101962943539041986898642120716888713575380362204197456165738725009559393458642182962094511523119139606890512381202351508885858406747259076869075721256194588050568242781608087242961851196819302685875372771213253807030488916462460617090630566965907030247060683555077250321858519885324259346290850510772431612697738821777952425484946740051784586571635234586612954857566206804432198459160148914560680692121519444083016269420247377132705083279810480087601470698805732550132898771018499059528903949869033622036941114294301717209145916135277499697459998149029266390782866420488304403310248278528871766636705505685547911068797059013754877977720202986044103784407470835638605485533797237902393062571788014481978636107279036483203182916317673917923339465256281447565007390718929144975303518297098695446091364294214760398101251346938709971036286681506100530720820907491706932438190879165870646921625499320055568730206935574998567296784167857881481023849978962473993865795866718774815372860669561325123079022554764162043262791975051009735056464251635429237248497238798009004971870220370617766560867885598391573345171454821479149110385917450637586672072563236874616499244095631742916117036261768878750794532889107879783476124016620115156776298397445282271702129240239051817021043293721984214546757474685530473186445375852707632194670797523542882997536454789747202052371068002071418000564685841606683876272651682188920908352732116425897754411859857935012265701697532843568592840692440698391645894428494351603598823301984157351542015213409546400872828915323871285171044213025699791624385461873154511941271720491015753857553167076638128856969060599257906946016613622705762591838986290050199315425111560323230661436686779908737867209777564854541165226995778360879199546478065202241539125831327490577452039667113174157370917567043544137182603143592776418105507876252817252143280825214474510671255591065197795703542412678770096511502685070465071219665248572761102533133714780488869523222574210253558684699971114288611827302203147953752243638080438828533501579821751353843120652515648612092041327303938217823814385789863424759582566782713247544586999615637845805242958348441627795880629338417086754490324817739992061825715199866642250626803582075360249243530774642315702329274113714300968881065527392489581267602708229441197348899522267663035407476073623730508313781629019217969910552459690763918145964125443768958436528716326113025988804233448918456305500324908801998751420019533873096619729567095587547381412368128221570742476529753780895317428243134443379671220865997440909374777057375433913326542048308312485314555093366873996014506482614793093696142172193058499926344397509860623634446770479760492534384416933668907665873368000842838546421602831846104791859052589073264563155950016110334062344253822048894365478006559094344462066370036451483394693808325757197188967760324405834987686385371632468809006867266094193759260673170493345357144502738809784538761079543895620815255088492024183075247295781463916102199505135299380552454051760364450018453117780970830673310820350672683618269886512036859639112882300900005536824170045672843028265793927530048842991866283421447892685385254302984344629788039531015663734427142221461927487257006657624298645144411552359901800179299146990375038812776060760036836126949320284164742039583519272137168585407479323059231369494668723919248214615611832492297214111193987010375044877454353420869566783142181893079206735013932235984235918454368661268020874582784710365097262256851055454307216026527143537851033622931982017286799066371478216009173662303865870000734850333033716088099400894361665124793056438046319770705456124449313587598120951303419683551806907101293347451053968249003435407725483236427739038628829041101067508560750421345777343620131978048689209496600893310930930198633558015236433510219525303039809218507609499145980870907660947131166284079939201651659813006832245470606429820020707061530195824986285310232761212429570740305823800823334833219973276837593336471583790537122970642190985817560926010451999472542686867233849275781379940079319935776289324068812570535211029025896577385630218850311772791615033254967546822530026368136867615672948337852055286303864902399431829111270355984534759087246098487233690529476660838590636536712063835421576981627505157422331682706671060834410335826722868055506728108371767609635942539771098579728665287710151910525220255763421318182829599384993718186742765787478614220252268789626349050056512845256863409718187338238420358169848542117298700851089139347756706246630297180888770500923934003684880902977215947411176106102782032172391611811928058389639059800810699937616122743662279187835454057814494421503755848836568093196459083807129416554704879046312070314902330180413594660878197375269581300654169091956146585023439240579566105085336024269290321910846457651073477358654746435382013664487776090427586128032634926958750770955420823249537280065111592205119491596126771853726341001546747342390672906138779762902423167390213886880558974091042221575010414995470381352754252496401601737818385861156027488900841710764571613420510017628338306873192249308829549445917981552762835180074231035474068202910032928816303518134719054050278032668581272369613083847877338801658022659716640065781003254287749699853240891086197924716916998753196790313101990266869074254099012806177592992429797435714869926165406842353227701939266948799229923700897906759894854610744163743302809388698619567242814356632753560598057506365530635900239959999812191844857811562120352460669394259240663639914327012965272514224108805500887098860859493630267895906088235076187505457518192399310297137801312997012162879439996451492362392365118898046415402719481326363707429646246669722867565568138562689015972645691785802463547875363214312983206865274962965900193928007048069865250276301085529129937392695294067740910990117488725028125854642715343755226654758668008980539099459172671340151556016920370924763785005090233415210965476899916171388337982996410951961705190438936726887235050314048571571090266642206485555628247371400204614207280422422141567281574205835093001693749114399832016090237811904925383685952940532094141793027726588347527578138658701606156755063202044639513764172427556045627337083016878150009330077499222498924726763476278800967550106648187196924859055298946724156050996366110833203722427299011326986843211098673244334475533384658767334182275437861564304707433254229846227651680920100644357341007724489661223154255450698642922753279247033662573470726103249498432695450390531709721759368301489789320891138581640619889916817018636213496571597005188879806455094789582948260204155664109484098463400314781937444714230640882569019446369412325865601083033447028256349039097094157880967423977561874476870905884425912524183951549107795734759097974440886888396811457101438292081855910929521695454423330790642841844110954816349422043539013471208234030670218614659887867192921897935501233606044629813711549135555264009246536471878130737818829795036880924386083175442825457451296776924005337958173960789034004355442929306812088310179388956918497873772434433269429011697156113396348088772551306067059858795705918900335231274821754068382333859498740922306379418660816739195796280691567634120052429995251951791982299817630753210023887430270267918577204639110898613123008679626591065697693664705032154263794043621399045866384283527440850504776338752766037869108121934522164251586554525176847830129696641472936992671471581827550547314206710978221603882622001861479766888900493131630547102255474914121131431021442034343739125777041354011096148701196847449095355957789455566603142249510542787631189739457438371236680155047551490064549885740997176635087300588285715076517274758641341160710727640271879275624345532479917103538719293311914189516802731657958020303414899810071722730259663521581957344328710604617031236620786495839837235557168683219712202545339523749584977302542756360186734088674375037221157294169298856964903393406927896424186153120516391144971433954677034805937341110755982852587582832582413708626725021410170620103009934700963002623507610016421978978506464700630482526473389972928598193967554778632218721365718512586701291546691100343788358300146653493477734469386918641216149304122323476850044241613299292003959367607088364822279353702987114880749627883111663063495779804959063999995990848783376663306101915015408888386165285132233452720753399909298383893065862847189627748207480912424032181001383535242890600617284713750073337711085209960515685132159055445610029219214943922973441685070477783700497498420233574130529831066056780767271860651027604932720704456168307203487982972121326359789718564555312541678419573994406879371792992560824729912455200963284242517537273250193104793398452515829894336417785239446420147562026566516334930727121729058449982564254765695258278336998335533279194867944901276021041802389322482030165263668344373383104948086334900442170212620589646106327192111328073531698388122756240258227973429255197223945891781710168387541868560275326895304558711062922110989674552498914379159206346049831558825905728271859408004984206128252575471745071955549266811934676125849460942415069639109377934636062577267707700790769211836995041567595515304602141559832532176620409903830743379475964228411818787098268081951353357563656295902159533251892637919261914271763878422593368601559754863339790917937123364012592216629447070319480696043554824233347177695632851502997374257414610139611072556346278193815893214871684371692143988143413433797318636248695854935934999710688447026118480737739048261478768856933978114826872558675062352470464630736408988488081930173967110212069535615286272277383183588764464708678079795187125196220925969067886532196093029426419189358756368050943110013412489638765378268921807066481995169383061188073269339179381064570308525864544606919095094949360516920606606037000791055913849213473012410142370929674601935288923068751340968688514689007285851252179837242920396453348333311866186296797368065970506845809149445256275957871917458327456503928297527062656692633394557592119094356309863734106594103171519982450654939449990087461967420406573134900847309214196000581063652757443799433988456278215433480607076150104985769313697647756514216585463051621388527661155369826405250811065992542540737259067833466185630946126124061033456153550030758446147623568286207274111881265756597778237296657155193968382025926714487469512277931608911961459296172966812645552568446860544701657816797535544237388016546318360613030055638073241733074839243216228395238780222299156338843691134715397788755076786779708655370438232384185183038082946444342114832587114643888423806204503300097294887514206412672048302736288220464396247092970922171021882839261719445704403744533190678104672919610405105018391051025661965027399865309205255903462427909337509814850954191197610252319233122378016030689503452582861413723724073063869698452882613322940289463036630467161575730793175312599162594371182116026720534718416060859628321327163544484350621818726762972870433134932060427860750055210173065816350902992833099395244588275274309762241059638434875763966017334172618512285089609942554144027607874916406273292792659536869496654420787681866297504700584666089073376824422595799094084834129694940291188020582029786614758641245729237059398381096473008391716500676992832002853310550715149627236205813229625755996083297044207086287207253845142828795791919859456112355531000816559371086918963046795475653948930495677915487008856161089804699753646332666397158390678747098839871685892052895325014784409311860887596656535670944182970126828700137457734453231011542992477185586167134964892849626219416882075680426000136677618289409737452574167257806320911206583038882672166565490326083534138998075122769155513313767401736927699786135985257446191249307644551338556076145257521098888136044876957888254388728996669593877766559864524705884312060762128411475599646689175817733754882455230617193287948051346041897995723607835816566350142143518227055470123227871385392305426513501142339890522147674360376562250183783984639116622985872820159056992610613676218449349735927868455167467485280157264591721976782035504296469830903781174013115168728301348427840556958522619789791210486739926873594027778704599853227184807732132513439263823141521930089958622044088662431142743864586236465096114352089628748769206221650584233175964090195666372989396611738566709828914115190764095965851131888901696426000288102380892064279155005713401444707945108189671498243457264197260440583989803625407760057194633201845561288546902020769828843003291563839201538018073083774244045135857033977384653556776658877977986576839032323247684631038128903608088792665446829495782043094406680837651074971157677612353519536637344295149283109733515009009584013035733999696416344073575540286000493620511670533570208976075614427772475693799467276100853733556870264001380165396774064838845200597754047379091910060825733780833470170105153923590338617630043717129347392264408748485624514782461364234218939589137842642578042885124574011220574194476657923481499179290280501284345670808802469229195161994150073546056624351749859145934397614952410417319825705748149880562178614643649702488450866835187765768277050577961644796497140913566509224015882665761727377053789621736761637172300451526481393339668079308758920933689127353966387244514480946649138487818312520229799079929226640445071247067820301298376776944538990985923649664746491532242363121647199603165578728129018911438832363393883239612771246349704854797134710365462619258943459403685005199031753856472216210438781505840071931964012424901901448675116645357037683987792848966925416520879529703391107724982622728614640989927982256348225687777254871017388234024132414649510288501403278222182081001063242238296854765462962840817298221870633513981838677804480691076308199968228574355858648915288437422865833627301996270389318382924197759941275322585863358094227751539913019788284640514135437564241038985932566948634445659218392764422888077140134011326565050625036600713858626787853941731835728406646349778569044248363020933171813285684315533185330070571518773090618089360994226931759437735215764553285386508331825898476195219762831469383196961770541570235399333878844034324374147413149486463232721057159854151210687681010896896819407853226567767969086196808937969241121897690203859560802165953733868785909696846859171364784315945281312738377296406525898929876293194221104939866911371863848815886962074055084378204729659530576841735836484679379709647100180940463233929523417814193941514523443923692174526524237449516522420789160461680973386925079340931288631721666961708896901386596385867064140191957222106327179374054724227726099615951225078467892660825489059243131203459399488086576309091489325760616431015960611373752604617670969618425203772247829206086267282662713284201719996143827117669347193108653567174437672569615610837149403272155205086418080813785920252793143615241055345664681668517423125675477556636892641337402139688594562587991343816160157133978326854512782730170421964045107117214615279650123102330364424556142754936838694207377516472374967133740100514806956478012038215889138251169668138016242943153622845140134588272043802520978795656365111225126648466068119609087753821140735268081609339743285759511299199658498560728999358763641462487202766387679984176721110524332978157637260823214347735109626808497812321153611385254560437703916023937741775073210155452354216652731221825196678468400234166418750189191345205901446273014649691064066169126406565818127844648290962033812270002936233757783590917933679354927795992965301189013385828681498768490312612907945160776135536234385925800209898059699865429088540797308378018511592892274072836396917961749981264079779962221715541597590589499385268875566090454780635156740457381173994297027771132502421930316160953290204658380467696294933643414656576342724619520882108024783604272943617803847794809979146036858806558066344324655346876576953838598161255045584707520192574576636287050904511537711162158276957488713735795866597992023277506871044529267336985230422702953040620264567679017309575149394864887191038429965193424863507280486160095770807170900380369317230511639161889541901747696360680441376204547042629819114192015582545316739144314075730972086341692358367504411369028008028346994342130500867394483121506126987427957937610004319960674705705058442195000362580105936524256720997115367268665189868505245596532333874997269645885469819286465924423107002507973146415214290819192905560512002759716727410138071986698941937030584878236672358456053753857274081262805053851504998223814741309413959769666518053438564277266471375368043453206691734773688599199777156315363380141629568905068968706420030779624295708991694002931224111449515038558504652211561437044089480271260790419614029249480593977198368094243569582268274767541769558198515987331036253581438438668701228992273235182979007328480381669583324061261755627556915420731447816458461357640165234454287089488521988001076161645912107712454495001666075541065672315722899651216910421566866424980567850570250874823154030706130443528439200330196341563724281763622934800374227497632641253813537158728827206537067788319284242416700070953197420908828277270629927942943361179673149105408794117981651668490447601243829181103906580507469474990215874512489391209853497877066194825078132751513823760067974960909194360555416755821428449105075647846944137448013956556925068661236599981334123527257155169637838463565187391814520909366220905500801977935948437779746859151930929682173680577298516372029143929222731198021681516500269029264593264770415887003894638327862345426093751011286613145161578107500093014154028122848853477045576303150765495150248028966970884941584808829341862168849678495822305097009042677446596633202528983273320415146619512637465151206456439464946379989995663178003472830437445763619594763011957737424253675871187316851156993882478659342518804595921131792075899482870804429597036824350274835794496941195865237343818530548774156078825612646545846156511934313980194017147877537241549972396477540307209279534433601591033807893935819244557297508688850475507797254766210564505625141929261911840026538107874540101135046685669951685837489052293192841218741693310401043300268174616214657735093944557101850624473004760232014749070766379260805909893883927795905991592523057976678216519461786805397093699197611012095542536542489264529463427029069122719269277991030433284012510216990115117676741155547012348792684662392596817081262408998082038283596428278240012944975272523280132292203373999851668679615006870012586144881865016283487901802108312445588412632458232706383375675321800509185247804783469645528815337615530101738838197297043854382623589414848344149484041740349903939965982415990281951670982915016685504710946089604380142482321391789585064858175688680136018886611518536373817005772616406320838093793860852862450013191406669053540588520285526489241376351168628759133817508826969184692914214967706200602029001422225779717828201788954699077882347269231257517905140428498797978602204163099453283513489186214726933765218602960214036451225819095564712522668227126445239106204628029546390505359371876877181711402479659255310029736015096408503077100628250320369183160756435761103819923306071298736166606616647752479766143005664180841944491329689853731186679215688684952167687453595129419990210365844101721726070340433607032753336784544581653513103730970659536067557773095850285991602432532904965840260246854292728898410578769529115648356504478763137124804714224901725375357736138748118873926272656006878540946477951013092077657504533823178420839071228913780176100371057346752546706349864828254333336071702029756267532103280292065899947651978974530236046303506336195206127982283619932038723129728934824073935181087906441804583772620743014565523852153933567741807673326991152530712609729957929980858027914634638021933337912439598835038908451071936834417518466828726402758800554790100477758957704314302034540162117194241565284590539468629701740310736773776983790966892922243732889857622548922974044762078584351568086984754866611638601780415309448214993477936707164502895160974960628176210909448809577430866077956790421360975458494938191775126611851394327562226904278379536953171752424427460203755370859764842194099770221694552618518155833980231990536616648806063434606802328274887496517942175453895584049744815332522029613570879924144378250140401336601323429970936327504874824045962781662924003650280259220444725952514869007842691468070554878674254079827860318676689652599736555093197322333200582996902283069154643754267859519102131819992225931941155975459420814258732808311820327492246741359423310911974647885014876417489055829850106001727771776033237681411737578080997513458438022878790085373151940393640118570639030928040006021350068706197821989549752515454372709332435928148281486321167047428066301256298118338681312777384148830516577035455339081664367722644485356464046296620496872719055437040420452388147512847640231380375218489953746243796209356589111963914282904373256449199886241323466282850360276019350033868023271647739297082834458896264940495403192663869439843938178073253134322924831611383672016880126560008071858928487456628610120941324588726382016883616473204707526414250455291245435670682667305272756529522754005927947415366130200288261510411940288430781027872518685426795294911753558968521686034005864035987906206952485616393718057204474179807171157420352846873059359086541798948976732170377790793408641913450079543641362171713380279825273930834589286931894788880967424176729199644543523485280558787775853565555153094527132411280069051099672266650950515098681440069604603219304537339281536972587800499625116414513813818419266462388066550303478977763398265805239785772519842300962574211431208085897025075262743411173154562179135848682141904855199093450931391756310549377533160840167355651094150308445568128317200080713606006398948584915513471300638907366525762904888253251330365454009097167245054870414887311989278392553841355026690097164832479553550191768101896213306966561741275213737822427697115455653070033172071544961647024028325524620765872514176471149369782648899716427879066817596152872222807993560452264068059536034324981173413641414128142718501647492326975016444478686980422028098167937803428740874516361403237736279071401796687651547369071935243957767461986562927331837178578178235606906839064936812011088732129582776626045594785454978257453119218727029311602289391545491453509661737666120505366721555308471882492872026393732169186017475231167251762517805206834000930226887795317920081629777033210470604586088797119380946450904739368479687719605415541234970749883615788995984875020625897235992837352005645659831525936295969008471279023659246583796953307034716189708861894612942024919994183897628160577259294405327912677312715146815249009966705190970718038701850435206667135029802796971587955033890205094536456708190073100308313407319144629355004524030824755063468998956686980084707896587683468660755687042858933123515917261619038421116891765704284255615277997603013777186888938382519560098590083361375736073056057930468635984028645887500545847721309868172164975077300426023641944737338535480395075980692724648081602286670821975028286568023995462204445503349420718701277838185825140481626477545772840354178537340245367312870714466865391436595607688429274262974061832770677501112097918692614509573207833963511905279059045281877064240665915949755033756476818161429508066370007185156737888649749579742344596330716574143367598088543060661540973047250498981256896610684878825902550458231783033958811285631612739377635188837374718799928867833901266965325016853686326663479487451728282630314741089322071456258816809212850994961234777191477217548278827869930451108915734313609658211822194543525012016168719813714307673173688965475086058679818184373374193878270175454437530806128023776237784811424144739199249398535919859280634468760688231567785613554169989111484421242416435833965686862711146004339988772663527561168443148890925887598298071047234899841287852114482296281407628328917345765423854749409493057543498261589392653664075256440371407426097013351571449735492804965846982329389370084394071854520869436211123323838831828522241407050850013441545302432714190900506203034989956138155952663099046984663668040870826967959539786995601145756864941330274293781121548778072559982988215639088212269000163638836923832002212664434801320691488247275703680627857277442874748346476438081246462648420943651927247102115757933515929839811732912793801824084335377314220078950653366898356203892172142530403053636092534184747986799083058736057216445131824721549969024147779238793750273005688247844387249135498714461541592036623238210639303349812987464598917158039437678882141283159140730697617434323568769416813506594037561013143718095469537889428442704026528185913834979273081628839604992197851168228563692389659530059057056681376903253320619629527329692258064991971679364627022713272925589527970837848364632182775310101357311363097465109152849448356682510047905043729337844669694448977984797111618219634554766631236281974445657317540707071781092597779586130962495568086264368159693255782665932627586584686166623318303299633611457625259245369129902952442213334435932478561564894528855143702982426141128641564441492865945805126468982673741391802034841853644290782408764008386074529174216961625747224801974669650646373919973907660686822165587029690677252605178676649518870570622516331469080560523186632761299770040395701998297527090150674087668750602617834040242006000136150581795888735393737977517896348186259672793280804336145098889498057208961115606115108907545051033293651350768321793141041765719974246167747454749864371702466553844811772948041658796868426687317450598203722701965433061102979552358623271943165249660498005925447085291520299291059234122447524463975940542316769031161396938206196460707227263644713843255456357369131670183650870187721501099626916474420558171608948924527405360891008413483427343726312465124235974794024003320115127067526179605860137527148635740946429337474834065095560044944071647717487050331714493836111408691570595517326078596288236337478176947310546871338321368007364495067718504388874215482876790046045677861915716059455236990417242403262620228044276083349924008141683841558548794878306752305023985645768272270948374854512632900223186638448023685891346630299940011597162048306459523335210773135823544811197273251439534591457923797167534112483919971142676058943062145362284135349256830906810166709593804475917032022850923045548736114019236442628403329943455804140224112457882098032568725924916221223691832634246394200329655200789052135723015473172753257723186898349589600430160349365759701773009981965988863911520385800377409678515220263942414921160617898862403987341264961046170262452153389021812101341418690537220254681790003290736310826774154588162078708814900833302806054190856211943008341966943192952238109672182096838755989045800892339423662397075815453492432237670051455011570632173247876984367906182536750408367183984656602690589718101156757187953452581504826061256504565604169124500838897445014074468064197739219290061373649024332251858274361885679998654454535009925986414739175798170211744851760617774478080419961347796459054141773766312951954135148248632501915837283951006693745997044196654860628993739793978199817262093514616073406635701895054787998421492838801452601370038332420138862655349821678619469998219469261546303351645658109006233051465669378960666895453128984526286664979304444946586949602047235946061159385298405659673798364814645191547047711490839714534472611144096139794873558244345153863421346269685761871346849763116743858287909731904427281273426504135752671533258250904035513356094348357864340660175513684654331810798489477160489528476872209921634602648253947486039232913816047638167166534948006483003886814504014534788594754640934208974143314096584280035141832807025157322006644192718082681922748565722020838932501620415883596516372779303204557201389179291717766532646398659229177555148009573887246287427403795260110187489383236488390171985222671381050307342861718192909305821716934528890561932586527848794779642857177164447824421587675351341726755255738174056710115334727763249441307741233498087313006067477556625067223284684796860701071042730868205151440383486302018112515251201845315947558459005117544309945858108850463226055279574880835761612429239371785278534021311444499500252804697632789644024172259144317937608786299830961764174287855591172577470528909088601599942660200817983611108732396105990071865356340888581366215738523805565074912304361541271520484385806383641072683652370920144845222479495779890202626825319918573196469008165900150657273873730481374864309475246219438488468798567979275191972618403403902545471083678907051724087402305244612053377512184557507523963883489470231851329982202916208035348118775266739989895027526469952437573220891458361268746371339298037518881585300687806052090203077919862472858058558169590997341201233210350048986155766799798464406866885708653139059040421561888350151881860381381589820265388248065119333461418871092971116012399788343823518130997573700079594828774477744451516438016485270783589547491117958526546620602668752928523809263488250001286714867105253276165994571441012020789991603410215354152115106544055760333794476145008971976126744140919883088227164550412249276518801719882539082545427428413364315429718857863984458762820757229822668135307884542738081956628122881757321468885982626844569626012536965670151533115985338550923002055550377068989753709849014202163713673779267951149906371137851272892311170055065819186880035239644474206033936889768912878634545661041332426644818547487629250415296010324212439918736910961469521634583450946274778941780577244646423770622764063927002062637299761712919222218931658019025418593619785745446680618080913652803106554745288649790651864003489004215696289522070431438334950522907444752418170754523142687884838314786938936146284259953913698417704942517400274897523952901155620612764385880973586176701217390562025417331057705084575902298702090612377483819999031244690862969758097100256262607072050583189278205937635908679290982297424375163784116426550201657823026749282358043082877359124493009563155379868938745003953737006591266237587402825239770637526066875336379217767943697384827182203613394419627353997207832430431462595010669954538528897612805281238791486375827265731506570013485312851052612662936656780046554538531863521832371600619773601326103047242654199000384928958243463402770332740763103126569897550385204234906089645993602714082990107731323673589188050826274064650267494390995155672116077856519657244090736649918300181374360054722444457142514362165682711458408736067938551459542272929434193697835473128831602578495190497108972148091337175622067882525712446516928430499091876208364145036913607971670184484089513284455681954128057804145664772714437757277485162858863531096398749097227174050586783639543121786524981359696150458697463063912365144458303954664517388833146636403911707151599109135520783020478124058506908959017743527246938021826232569896203721432926879288268783109220762890131294391590468128558881605842713970106095089394915053312819659745839020088897231197781887552684774127390720731235752162964552587863188524258802100465254829119434321209060087410035307228941630823367207016701545523713424277107005519755385959659181671900601644178352526080094739457069251047381305178478384602512882042205045252807522468454571434141079263243508269882447325830679482066958438025398824692221514464790807895676678196996398387127258195140036897062204811136922387050325845695655250660956755814620943510270175382240192941061292995632848681846205785900288953923906727569117460566650979954502299610026477880257953196508038501296344210675922128117835128287116603252461191995777929800933208941248114371219526692427172331959727616458339747014819070888144509040888028280929438510331259591774242355611717114666314989364041428965494423392437227257496046552100416905328617506240784853233257174559600272468695917004899441634910276278049054078511548057963794871653170670867730971377507440885221041556915075057083989183760696705469087522346863806683374375950886308540730633550519482619756034414253259053034687666097377554095220094219643491618609933875283076009780230652169846621486857530108012839421951888880312471919534702592983235618987122947062508406277807889426099124607531788821112952895451958313989454072836572706962947925339002406677791811104514001772775520823051310138784154820888875549260418298247065059149436218463217818259947464958402670235159956762403413012682194652530589894631442309549356976424967901720967864350698881163608278435386430836880708191633096053107827240540347297371206477370599572096142360804510218320271474391544102158430810079008189832314636309204431611566013631863564293141249524100853936512046649930042301329941173218329850179830751773323356818308091476581557453955196970303639348490162645676192108737319964696295792882071204673240812439418474927414889039874030690633693777605632198818621970742828246953863864546538984036584237239970765331776090813825629923418922465840008479266282374932520849630282634362151121003988922711294148425211221465761822463989588676717074654285345826167786047537009214665080169246017094250569389575051058851660618209908107505795928784204050499704639769902640093437536252128486394112831310089106552719855489063192320473959352892975661418458693056111540254387349265942932019118677348748584279585333604333053546667869538934553891674844045979210374160398338072196541215741332693230747695951199331806433832463077601653263819913411228510057015638010821104222728747417203304519615701281271254333000907083957103385110358946364024808979701818703980542564652116720562850250425838639708045628717408590462548881257517415591762247759378185702985147598367092242442526441477252498718538603621404145294655534155384914243827377657850241172628552809400529640065404680137868678788341232751873749876179270981894602294084943434779146593642174073556937144286193791339638028831186417190550042707720245994806247064883722802069929040463351751620174738721633197044549220327123066699784170867537646814451028657795909682460530043670073617829959363287964786567271966207678746351767456290977533595565670021501621687553610455596710503541923285568250559542077745151286847335161957878750144252447927069620972311385734298572621082873742029219572644019507352032959985213682184297258996616649144799291095748986334884477580069555956935974679774283461289293624333296937103887918314743565399866879417583420656767871296907018618449543803053796029231409993130943824070596368856074272047895450458380291686608361914237186322815744505299075408876442564480231855979981539404757573867498580593737247135908451577555613723356911469721745348226501899388226381353400768966308494697908188500842592330276373156983269300038175044599024151993184268265907120849796155452198333626073512497726293306729510667546818134384757666971220175455772245180031491173001898841719888504249138594563087151342886867156076748526534495042135984133739704469536283339995854303035738357796936720762380765952263362275841686575221298404457884639165458791829220096776339474466018625192170249783679478278215065294133202436053443348198107923898211327352598404691466408504745974513966952396142493938812835020564101441560788631252745044115164460160083133984927709535011139471343556877857268570999595245081614132476285625732627867768471051356838634824041376624494112954223075732906619223313647944495584658969950257796516551840607259108177327543564040926380215829885388660805475185579469033688174954892472742116330888366108062138576536677219222528277587661901281422761666501605982545715711254141313663102761518141796165455016157796393803115145785032781542231084621776177413902820063073370701189204142507875992616027280715658545123328034407244005053831516200749497333730150862855538295592411635838189429066335378123022273869988534944140671825262672552927509391047324238021496539166512364300253260865301231640546968751412590395353963098452934879060774265334348554184733567341365665793230509211165735351712442639630464351327463420144609412857236861848258302940875597190627884508959569481669589456466976561176345097527162080546960087824072275363956547312985805002410907973331454836665144272375504690785890677315566941089102327615529426426462750887966942150824600319378026173714171029148192558134108451718641182440463805976502983117491692444072896039219718929507957264267219432266111429450021752198946736209383635094345346797388617628956074058948356121356800270240263679376107324122208782814714546907103861849631764008244408848582800594667371009172291432991493798814898111052667847378165840802369584749082471862864277070469730923635171680697973943593483755318068666242021484514960603781156630270627462367053009433928126332195072778221063883730054045559322460010199242521575172896744572252436801904105005623799751505636018248055850653192654479150526263668496029242952605767267437463636322356600689270821198236308175864277765417555742436128877822875300101160363494850063515278392861370400049573974391531101722088493118921650320944497846355976025666695255709348145292156276514664375512642380979586661372312636306921700034755646945338957482818443275083722038264468872545381535072990004999089094913852858946847628563101678884144128345946724336178720682350191536163061230407337073087628913264650426818997860766000903660413692040310051050970292793141186200797741296486991539991230879345204756786574471242054692141859723416089575625606157244985647894779329561113044530731366320561043549492694864889557950723609509477000746902380049727191707083352037948117084338688587062178623957684843869256654127433079667388380086371289453685462375889374804130252448616910340998757243078271798869343257467912324164863487439195433098192997948163550842156277457983990453713444721918616175765386655843103026471634257826739006013997370114037151934952467938212703093580408686445378768060600562663529270800523907760979619699461641376504422558600709504054186542846539034961400276296433806790753335971004208934519391793117265947542017492406938482941741877548351469185778597746195480535628741497376074217208190324456853410825845071748475977306144272031970423066905317747957804504042696919029493161819477898932953501021939125092939579637253462011555543449253840080642713060628150142585643994603513203394909057664513863707617345665257056631584712631851844355153424176857164360377543730596540474230844662318706114955358524403201576568028877616762289915718931577833568102309386839346620989950126141987843094368157278044612654143147775693392386522841817708111132859185575958306851384410502348948808785831352425150237740442506412366570363760709369127956809004575355142768951129085520438346025171583111479928313046827520046373683261774429151015719854489156919726536192187952135808775454265769104464361093594508668229115600924238510276468664716719746179231753370658900281407269990287051142883538089507926349419596498406851114108663287850515664640362926409707490199373483027284513589862876689102820781806331646413743282284321088401652198145542754973126039496568874799290258648798006793780620253189069758878519817464000782159685051606884309507874864923773240427624038604857018163268716134620564405021312694610152257182698245574488045647278103103585203178509642667220998904993773444135527220303307903758937513672908568169944344533011038920115258782915038047024701783807233352171363039542049770794159829493863519991125616164253567100229759963480317315157776088878726942090939596522714297570269778444751501560499257736310016183870539216820422737942168831883185648974852677784311559566351572401911949136055507843721434277660470153333903848619602887940968667217430372998000186978640795761964330929631298146674111040248606745221669508232667888540579715160560328748425281243284053348502632331307964124964436643750059165782711661363767038402958102661971840736866136996372605236721894127648264222878199312078389800305235117662502724185702242042543975686586793823735169158493184334651879734203579230863625649339869194309491143934027516583543888715102254064461310419520526292452865218611306706924068801240169898549353584637784169359482180416941903725971346562952936219822131500077925856969986267237971333427437055521308902861283659471076356722807004139279514997781475640510462341374673113674582838147930628660561249961978509632573334824897036017351266874581055877230388389505976917165233691734445958203548367368804006390118658827208193504374740960668012455912191390838524988032049411844489460345234395933395429170845747991313845276453421277946418080866380325172007190482591909615272317631245574183139033591884935350280254883848143474205376276981241721264713252835251601062899994329375599371734372577124349083715712191162436915429302104223622773140945022129861459103032341213429660368136047721327538401598643548383215959575046566035721025038855454091497675929897243301484707009137666051708719222892309750679788323542612695728048281417505776554275093655025838012169937013958076292861559381071436997901279334966320948089583206123525099945141889444591555789736592279866778128532482883668980000911619162748226517138281013047545327170357818249088695555062823039544960269510458599736431737102899812679293553032599348764616072327145955690203284019027061324482741004802108108132661812888686581481403117298424494032411429562773577076233721279748394888094746953752832097178687031693069615410305127470929664330099626794412532263912283792259171417038220445574137654379504434241632529677868964762047589213029023714439862963594827227919662917368811305812901390211701092169853534284517505901306309121091389175553398455702553535297635141566708888413504657942769445686540350911657111550993242060629820335710215652262178256756748389617730869321398257733153105872805321529393787117222139022180424142259646828600222603952664288086952960206835751787635115367030466525083459904801429946327456760424711310781046057887087759386813889377643518021419408832232208871976216088087350884823669699491711512977170877920345649028507326403646088335013235340693295244556589923504938583866563359962175665993198222866410449704252884079786392569679856188338418705040582362278953373017824351431162066098579410482825442512422302210288696246338226192234045641537027342219784780038140328946535035712333234310138261619565540182124308060575601505861269310346017789322597659810713848166533960163535233368938983982646202125949939497084720809428288765501508733380138543363684478010793354003296600325843648301406038266347808605552259541977275907454176914159002373721000239645978101786982719371009446680703510313978142657341167366543693499299493002881452113361852627094109922990285102283544169267276742498826246486768723628845162311459778967729033636296771828153001881235199366948893248936466743568597359459005320265266094421880361206443251861185615292677323015169428566590518219785182359530291438147560692509946771678801906649007262422810505600405367788940980501716739470499946569832495093451435489021631929793208158441608136510228107430847158540752450844320799526920113720249514788913413291979126115935174378478714004331380935240415665624750895029685875019856566322740763688197993070678694954887083801392304865248059532887423052394672476621755621794031076519439730333043563940505599416387060404644243440247920360415818206551996418566278997926160005871559562996621729223739011233862278917266763836236314316299955748449147609981421213987717645777304948707310991332424485788704705858337884486110989258943711204818258568117125946763519124741127874769656959348692402825649904319781305084636847344369941289357544602759038474592646061515945489560010751376038898414149200690361313563524947544041482314673620566942618709522299204993885867071979744333008242585999556102168020584758219198544471538075680339250583756245159896183456555326746339464788221618092634236565509541263415272128756209416793832430545067567693922904846737184790498461849405724243951397823214468360609859354104341506419868432924509285873710166394390326380239087840962027621506473842051444375617179474525539777552517205593658169328949171139052371136879467515984890699492235508259975700803623139044236457594124069278951250759677657826088714985290098267157860172579887075624106217670606359527258402392770161558569151627704011537342767783172553676529017817028243512082645329898520864819610376995994385148729772366095309525889072361750627089137883618519027451821048776772010945806316126615188261905324748039668341479563478319074421197053730915979289360398118868036391301894468922651191611495646792345573480664286886486655521551775672796129757783042313861188970357513245279039732365419829589818189505820151770886931638093924864826037265643045513724126012731059915951737306295474619057790789494329567280222654044129753628635994593643285959186495527165147762851947787305885591990963847330141723613958571077859585071811977054010814177749706992777387218383922379334682787937374659425229385160301892589075030431712930712154809599157106054140811721788909937403230369132986534057485446996071395598131823739585316558870068463603634124283848703110917977310372363725322545803220974889852158669046854955000911991983482169084320138488581003336311967821993395135974272298625064512290453066168889420515285716040098688282970938379486667900935119982083907724594758051049537265016047796248312813182099353364857442120127338241856248170729456126036684468255984598733998736347320041670319105806002591634946393569529289274564294130102552563704796347492094729484572390216297023795349078779712563065493105497960171237711467322512641062204267458766041418567618379057613738632107442729052189960800168188855197074280452087375758638121983879285182873754207063019571851600728738173388620268308923793382269147046331193785035933764628202155321527580181383408977996286915762658616536935982719864471485078624141759541730455934442909479707118436928740440692733330688022853795429580394631265411733507469028543218815784891278327920625901246590109780139746983868398326982172003291231092350646384104594920564308420991288942328919057092020235195045552473615528895544369084603072861354541447485678145640350197065372908390208317211462394267197549050540954784785827675691707188842342818211941495870711444574512714199335214525640237819448985141742226291134575680745745723847698991416226407205931505007502881361522626437323710814699413261132158177518933748005983605888389648569480494563014082022287118333062155498959918936363017068169129774808700207423403780592758446777018860821026345433385426830389581084323297093181116499686826898123393120413088008242250372009439613365196919011943222983452440545043683630525079160298516405616096629597111502607333650086028868652875820417112852509319543484813724180139327190623851639336288475482433475821439891990432093122385584219103829831129911966378627022764762942326369417857226496544784165894996074736641194277249162163602978174397336826377236275456860664180221727469341724639253102117952732335216561481604355402518962990313569391031105533102403236057498809307189789010961068462899836520647887060000640089633773245940447671468377778898368175948224638234932560810840180475004681756500120953489213214183704577086069221189894526165954336740524146375615807605069982472254236967175038042368743622782138812613410552198712834523297018194146609454056060144697188227510579177170645074558196698890225065735490569371986240498842623247118952044376727521769135788723931893259802537673682090178981596128031577729684427015073494391278720421300819522065012334920861352632440113829479392665735236855350375711763799235599677285535451679251362537033594830144186375744838917111999753332403637337267581699104269498555793442527881655742946949144458780474706828054753195818666516939401831948717829196669164468226851360359330993966049778240534313378411379968321339218234567691605749893964674154988921539455665251579332920167635071303506901950610511849328645474254867327078202980095965947027416271187264119156255693898023207647204273791803190386524299622392219561976100558929714804367965721950544072581383042552669591674966285666402119980170642805894226129838673947445834712679620472694652324546698305133301147794988690968730784727688027477165160350201260481966802043109756576430822026648068556710498149966171074302568388253783560709888550750402588761643938406212134878356121623352714031382314361259494950694864358844861199322892523741946862370302805292812673661382947257770766392146113895006697918110318258270735456194260549452927310681895652977650131690423274284641795813346340320760572951644268462866357145484249313734194474359352665128247704807835341355671789631236215018354972979159336151852397406356039453565387844612320958729668333078898921671950662549995127548408035490521297246370393056614751815147397348472136031635916870280100222060090035109412161360660005201461047171618326674749692441154836986046724220667449138113662675306805444730481762206615807324816096430313945760292069611964067881124660126574637083604877757502763891052443127584259773950679418042281211559337336384698522985159519617756717481667242605012532361138963910216294226089337830389838281900842256416230028657095601548973038402031240497004056908604143221555532834025005047835024488819471628548989025257300668499265234238257939201190569775866357465605034060213567835814151978058371521861786278226857720438783703987779736621070546582509571811952112000184717051781179915595103227414249159360663492828139584998769082472676422212603849139325655257538688005217437325214252197815553037511336780295464617148347177464065763637269814376501523744745890150237329617840449510734701526202815174915550621277739904095796081524064677413866851806250287181773202090847524580211553150083041413757327392578226414157779603665133208448760073187141665168338123074956293603225613741374310628115847834580410047964844012722387427249294269348943434284605579114694580798335972642301441026450655884095547509730555701815801882393681892202645767138517305708551458219458834051736504434313298606535188174929891301499313877667574898955412931653861657098929325036708306368246685086622834403236222546637287577857813610299122685500405452611244079844962856348008870287147227786175924714076449617541602330894092271249352703416181937343428308396654386125275923964229461171335581963437381202662219783556127516982200025011235387921596565730747525398763878837261773520657773166759140826735061832873074515290009031086287724324490920642159771447256718453722804113346390754529658180854239410197919462152161994005499639584704184401112062887444726865797709770556078788820052513308523049195333484165517094324059440716606792465906435425024775937135198504405367750597223408498676261377946447516885972534214164572879393481089722201403675766972139834779328499789499493968387853476180161239214643463746462633453833874116840989434026397465796492864087235786340414144839239815210096283635642390173022592347648129777626328164041860455116276446846038377134852257252163268159950469867994286388530060080581569178494384433772675562302124940239435017813316944119081787008139327977382702583293887983538242669790447378428908024619922417537819724370162995002716500840087116260799708608543520106973638225911892355219669923115441327153876546741495370842884675900761889406535201003810909541143324529297094887286871751992333773561822401814807579522879898501971045508429196125254940070415111380674211329032603043331833697687395430439664025709203610959533256744703712972466549378620103759774195035683179866074199764996737760113112066761052237491398434395806065692406649327603812542035394256800667680340817466484118614427043740989714386742261881356481196689101859152673461582571543178114781901436593018306783828632487071044436788522449005472251846598298452671611762356237715754019360478501878965029472505882132604669875358496869673059857784801450721933379828486951055642883962038528337581549949312200637930805356682248564722462396126302398665139395667239629144890685472688597133416756624584087765479370893155221712742614085704655245505543637649088529785136676026016586193123250776090405457968545850398650220397758286629256851296066720745781709008239281471565167088487487352473323230258351081862661350678168641402501231390391421860851976694465587079653683689519109806188974900238276021297185166581279399473967296053385670545098261988552820899466886935286162369516204174686268283721191392162391696372102920991511035318332809532115875300187154296568257410400776722984028656175956332778099241054203208800466551362958313350169172501342631323571017470008055442819467780399851194625767024362034728834794262338856705610863403905296939011969803188923610266245690349730631621917115218833713147937171318556157530530123499275337457193660701759184481210949418805177076450870256721897919631931587489343118581101075361324438477084716305565475357991354835412029991309996441312953996217270362498536467505803014117138453192018811820132936318144535753454250919779837419376407043316236686852877681370746963218230495006257748913438160652323394598325456503615557799474664159416048821919234799511470299649662543395176595045020045741827635296057161080692271014024976243928657933997443871608199277474394729236970415536333318346766780395288323954964777139180597538580627771725754919856950755308671315524529757598756679585100257008559827836743019169158598450098436657604390127045657257553222339648951047559840690865412495443854511299224542579395523797845699483232502122517911075379125715152672144252929354018387928648198791876339796722171930772068416895746288081701241899135950045724815993785550808339000938010981303994313080528574917734955055248474590492064010092488046243819361803945621989573230038673171757788155261343708297897822792610517980332600584806201878855127320343048071356121215780460039666788233900477421311653250064078950903471062737828293784386806977814278484881062327764323512041683315487819908228443864580063315893368865789422662107632945631860667156407446171215857351454545811135244136840951090785242819056311630762795592036353319876819029105312638707731092902379071290557158213924888557172199391728255899319744259341194957435049941353159191646559893348372907270131789865861564493339172154491626519774359069157692332215586330775527031998808912649335971951377617030689039803226070283627046567184142363551132084799204432226490808838027216748243667061642324474076851875439664346487400676069016711131612753751549168259426995944157993255247128669958862175399381930447310497172229782931692443742834295600417333013967335596943710060955245302138830249614040923428374796193389699076236271173673676927365129020445803040984784180791342410408095629789000064683385592511788442589650102792914301833440449006470168884745901318951291242913548308953162936990893140313660876137004829006766609920481542490131770868297024660990765603211665402590684827296799532441817048215052286811890527198210552958078942039134279690126362940798599922653744222029035201507284339600652616749972639998943747637209036481222613605854726166425068903176561514598774424331431790007898211843168661999393507188586668627208959409358664925177954625546786456219731413922766062209502043355987148349826371621767133863896622512898288504750483053598798535468538399988791850326659211299850148049104369343707183212216409643559077511205455040999459004907953032945538286098628487768812436249207830956076184380345117722344892266861371053508020119225145238265960196627788375383933014839065907472650563867526561606863984905990222776704062750549593682165867960858331256280490103476520687079040771363095811887658127849228504333583240970782277233327860749099062787366056641858522236147391589011987485840415202055841783214733864537281998535398895376254297920455955844489057199642473674898678134617074683859938469492527757506840764944792544516916229989482725739867921273241597728939079429155814050537832472709871086018605283800289997901221037423621839713095643082817028816399202571290345847649149984651694529318752531829715528226698661354483101928339863271635575347834524863476884843461573578607554255899613136650093093243620892573062993743780978439827600208781352481586431322999316668584226813444822819705593621754821593674220694250874186073144619686954543010548644069473591853611177640948024668169346573705922864459109476495595202951953886353111555809502696702385708738660997476736618164119262261873165997494003346596703995838730783931694965697933421127815632601960188139311214368660067646363016406815354193325136629317393716414187662572527468643717812758910419690043134017283678371428914805512133491807578382914622987868765209968894911517210292264899705624539598146154250636626427145827181178621428888943738799780870910822067651891857341157713446877411643793251440234504642234926923707117658986526201034615060335211756171116737333664439358191692997620469141080826947629773555898414595865603108786522409912172665287100751469232944632023015127447617629559010371279848328858235204060543048527204372893567471473819548764547131042504708098792251337991100560437320075982288106384796789700549828499202760549900974685965277535746074859757017307728459423039976258014502305742019725053207016908738437678614405376579210795814013472687262264139798813737832737995551345411504575083577264614833734113875695046523453793109682343358924142424105010126832101053741025177637625115173226530940486880271766678104608218841109448867330709602324183516990267133935736857693138409957391239335968376855063686642167319799277121128335167215508742422913965727082880661690411739678843222702353143192214701352292267004361357042656581971858983347158164511148157097977949465648330811460190312659328246683509913962881360158469100109621748204884340685955571388848742450341009189814630579541857899832825756443014284104681542681397835223029593721352968761428118928226761701557801039675186534316456369490219465897069577220228262876809143327001513044892858514453753422755709483741537504690969967269347852048024581318969373147857533090937177746466739878277415010717536545315111885232042462184879924028515644262729170673206770594155161792788458317122013148151820924477519568994997124664276652279184973652496369569491945629519290191396237293151208846583676411334071073444225478805846665623016955556052495515741686557159602561323093058275052133369126784309941298587529638394137301606389109544541355317975327902086450143252353569775722750077333311158309870283240452714434965318419096761180353963145653481353243733281348757539111093343648323345082018139084696184008349227493852292928532119633494884895389079189355196785844672379387130846674814636779182636323671804385216621201987886918828133399800583155368803971449355240014116360249778980023329573184600219025868967383705976896518514370173570195496905208623701284255470029463590491627608328688008808202281574048421824443355005676992601392317342642332020922974856455908690710836184688699811532456167604939076790499826198970353225703831122545733783096868439760955456251679440868439299953179151776699932017392897094260306709495466708951189303039993672759267177027461807376806057272799079136391147705709397012184620990202677860722638000538607014055355598322558898707580500013658328360296938808689870385818746747459044151814410960966247459453481553602905398508565683319109871474958505809044534164930895023186364159540944629970509773203327280287391249712158857628057535107066163120842157828447815639696006870802408548189578587229795003033021394792124856227963454621175295876497469997366928630479948008612278857878797558214498420944910619121239683258403851658634825671069887287737491872902262815922904611773728524204873053934243419088477792732826193442497174588262896122855526894473424671885297355205019465990762267296035637459862184836404427951568830521369401252833466831714892322986983582142152226675270296542860750415053783297848050292459395811224102534712484386525559371082115828627709284106453708430754962256611475884360470834220380129135607206569031346772610686801784612439196087776316632137965474307070965071089038969096497327269329153652381414143572105112341465030357080835737272332685441884344637483982447301786982659979330429401134450517946456842009284947015275877939722759505781741149505512263231019770701380024746699518107384606031274409477599725626554345608373661281072640343794730056303472271706326334537150029818429546556171046687314264391031551717175133216627073624967673315770777349942860226228295035793623980318466072234564837419926726183101477901868811599133359496574127762976385883377354388643049014591907154611982863146845472860629509509492804771152811077255552912957113995199265849444575490655209456188485917242054993440508624510470397489465565179981264176489981709449092619583026065316348119375222842767435455004626108770588206076882178823613013739906523966274612913435452465790260390924199865376226785177290544485598343374849709768585596847354298285950240639414339249849613056329310691690643694442239445369642060058761456903802331392911284561231362227871807961343194121624812041318340156737156397892826506411675466531011333310689449045255778466169490096763562127662867306566502104656795659343036797891893387668844249826244367007880998595966309365016515166556442577783768666246208274240586858127898307618147335243760759453520673426315040962432170243515789578274391121750513865173350151841535261402413374500679566984639515086195393481669723279061122837555690329686242447769504679841610585805323044950053379582595693649889280816969821152372266166444731649257445929613721975340861608930193577851918814160382785329545929271801407577262490185883508158155489461868171035880991713246253090094412949087662232146031990675807549552548961215316260704628559440167311505274181210308608704593121723769345494947352055121245700668796930850109140337802839135723474236867219081821590630219250212500719957089241615273168048180773938564880463834505790112704857424688277102025869929776257335752686653334859191335370751601110765927597201809662078465744029932286636019367654604611243520983475982778778346856214654237374828498609806125506415691511355419575961540413935494147149487031629827091275131416218861211930508030506504425759603393257844524402394074938225137547563508508870913391981857562517365033575791409219340622199613685463657522634485786008965587130121474056231407859934349150366826450116800794070214064276277314075856329693062156395177204869794014792598328943196594093541153182040030747227710986968335499210490915571144966926445782167221929273671333772551087829481057605845639115802257934002578146561358540047061280377979207087494368500918758889824939506323456825864586779618140482214823097800977607626961703004445484592678327825618776106910222703003966407109967457905853709723091330990890416163601167375428962991449089556010829633669625612551385312471299659989235218446282008263794341156257123865021035853499021685964825399641432821981574199477809213498882955765623023055019335350966737482087865668608085285149507422717474410890272757406414410135271978641557590275984879660131530208441291102777916983332142898770036039967952716783324306966953416882818422492462182290950220648805708927937935164607194664549420137089433769430849853736408788467160237831886802141687200229316348394232149780161384905587870315518517194056436401546143918622524117959637915874202170115716808974029926285059497225027925067566952302749114233365616880428897474181411175397883505655032521431784226186865622827807157999352174364643191403907159246539906738785479878952440936073188093140209006178061590269440944114881562561715533225028113923290041106711174294321677199650813016661181950477363613291313492673219349203134796193436007248314229009177467561806623740318351895873285546351184502575771836101657908311969990393216845120462842333459003422772015283613208900752228129411971218418303991279723921123082589785737062205727909709719221241213955526308050546918212481894349599107147554501808796829313131752644102476787577232929069402893998149680491550648282262015770289708806758192485710908977085954044573853251805131299316399794574192378118163244367820684808939935337572851474296054747076110875958544728906759223305799425217795996724053239572148149766467532370597545005310340965127281187477712704929948349302780920822941006084302050730811831101944551673003691649392805195337779779118833840771182758239674798104466727704700706971650481579768611257957623038711294721371020560415885482880415630558663100086193469631055995730694675180786611955172848813307302437481169429946457157673637684159796022190125688231099211243286842555360268957549117918011012148128983752692303381303136762427602370475609360976068954501234478523343899569166076612096716447474286008922040528599280761344232332695951916516445587579619380625217082947580505782245706022505102915188807608086051725050230558159741591034862746208816815506815074552902440645788757313686527923490296004845541182879299401510654608202792086376642886748441383764595511871189228568942009222347915790040780385377171786450757082173382182422412361593865932456398720761961199352725266779165008695466633384892789398769395144171678401480969368465632168875856173610783844665783458119845182920175538760976447751348531182677647321979313470886850039173705744379192839886137632183373340414437712697627881682000098715027208411065064011841727225541142798070729191129084783016454231607479783670446483391372289847818315161106304406011756627580796099071144501682014059642646616239313428962687321745906264051360041906162282406917653627705786923272651899602556443279350217126335484632029182798318852750250430358355641691650950007804653104849696687415642486907360061482359045763714612928622872040888525772786088901904910952716078629672360815413628412343614176914008845461716152552961110930632905190782166717865874617008173287812202318439915785686606458682096776719628044868028930926853520594474830984153414197844307059512457437546717362427017720600068590378736893299827821068158658537940478078536058275047178572461413710225144330940891063806170306875610970843501773391489863097165832916840332138315782862785632092822713367584184213789749702581542555895903548650887541824454200673282706323429136870573813970405082363542395308774387233453598744751499846736877937571307285705843154161113030099895600305380674607606058812653943424759121402103774474583100467376457089659273874853466754674512827888083664725000623342554528834424704469656838362139163907886177071042846787516812267696275384827898053822411955850334944155409601475893904682261447977782554650609439258150420244048961613417468967652384474990021648715873135637133730290766258377373376492191236709100965004495527610841114940133161560753230469086174072276176486437790223957521198028923436350162207482960286178951736021153197263756535463447427619315422014131014852394695386981541761355536136923455408066329948512810420616697044948621976542438632086248266044915534523544410879077785104553290544194558191287664812739188281840997195490521447465050714684686846424248391677350345830305628875928478853954346797236101450078108020676535671707779256869131891218855617322224981197233979673326445023947194252046977280323500014236288717390651420334040086098978232741186365412233798968117914136117336561652955338111888084209255083117701573632909773642644821233110195051293380664645912504628035122284629441054051251463642720077664128789204057688733826388586853859027867872976607306497701587701988826810038371593205364640265189085938789430604792586566970997614865705794624943954921019339364990242129449179591363493241359241386956715734908242453211036729473129595906133938638540790983887007672176714768444132768995203043682342564498039046365741747334483403757162811396617654857281201761573746776514754107245348227407821028436073813507383800109388333607241789725873822247893905840765256789462228636799544114136141254554598723549044192720224299943868933430100367680062113662917439154137169416032247892905343747815725555116817603629611244655452035379179970759647150563840336221036948580342277168221475441821294463344102212085492287022338582864205820780154051288902017414292144153142486447845213899830054263463638426401325524575165930851341405324734099106315787099778062538035739968651133163609411453392591781273051680442464158019059944150013479685395117532729208894821380361957349542016787628133103932154885031009164096188536054300365007614044523290376646140922107289588245888913215045061584776095850934268273942722010480406853602761923101122933882749508806112953482117603125853162956391754593429437964210824503604413813373709090716213969612055010862415735852462477096915252533885299876986618899621420674518124991075847727343064843103205174015863759708496972974855812298037541347453187087108206519569804295832614898139476172834126575048987409168798070414682259724050131198532194848823935336855048846006511420729538074618626274485763389491204098566812126171729856002402830603578766664186813815705402653216748348964113753051767829159358396265349355860345449899601663385789315682664682931941026905543772689794204867051828594474856307344868529797517538246392987437289655078841326978278074330531980226906917135573852250670916340203706363967936736912941855785426829851781418131204652154972655799704605666443575364130654735923148351971342789438018235134292326827166504680409694231904702343524376630618053923412006955947946142045706251696445966965573351755559838753045283059950235198227542822694891506080646373330839550169725585844233471237505010306260641700460185278225141216553802107649022257694805056999113606718238263620317872972922289826099511869152359878239690049220439465047949329924244930729885025185802654728683939807992049930952398729069850898574588986432901508578555257184290724471289567600798284128243773856130597103745852776734073112980465186560670430041867687746646160641659267333356676136748716793053401852171518169391252899433227287975340391037132222072833993575246420828536116219193110846859331380621561862108941971093415811263551461739102896770015655303214250682330592168403616560904615663408853373555654338293612030995645155889444751502121333691820484932445440406567502741490057184882373654718890998426426543902826398046845957605725659415385457182679051367706836377710115638892882968671195419526606238775895254378944242705027441371584863460188921132793977551211196159026466106021336785591183508088798475959868387721679538134252546595556380455925257036840723964566539136415403776535785430673882922420097006396397882545809971750813684966090770951846196194401002004331279122508777330794910343802654397188216934920874579523822049791636674999103530962752486084149501722424206674797505015486988803740995780988537731314526562913090677820293627303190479130568028015036075022342678143692469750979592834214877802830155546269506488820676646943639967751385494839472357070881253009842075399992879065221060536051348248687708263039456953009327570929283644509198829065167595535327182250133483412949604620966081711757242683562577938547684069401023514326256460506970719447446741347134955898173935249365547704080458410744886227412816157179917300387927422839419574665452601084876761826072165641359899366188045848332913133105322654433488208957064135584999353708136547581154301813471315283677108019398309507836849729135468285928448823883229305323216091603449442768278062942885732281185012790070708085217511295834679730288885090150911514578494607986783356480651654074513126299242306925258036750951509357346136802762497799761271382403449079893045984179464077979641944754468811641437803901807794395921254925395655133492815100881708720814138704506381362092698387572797363946952298064834448877209664372882521634541144095160098297076553882576503817326137014301436708775236843222676464501602838177358757552729672075061123885144482163700658114279040855806874003028871702686879202987574829610566059581082272284020672794386828192843140719625204916407856177428135989767668384136922852188794221108225654279490163683129428548629308307540942267934609526654583316927087812206998344599857667250510864539857051749733402180709430063188917064929372423581201994798850701551037367031777334449006578153583687104598245028147086640729201528468650295941717423505672306813873327063077283569958867231127266742094733072704109440986012409221172397792170586693250004561008648642114710073785938956577661097236770519425989841914434330412738484361028431253133200801298928277867368181452902558444066480351126807199228390202767221879305938198565363715347192483512181786880618932846032092483217738940045192145345289738894282314061333010795920442529243908829016879602153517029657252837995566192010237901766220654590163538276428795232778123468106707431787695344461292932093493569952992466322852149827650605115651496143673433912495866193903676244322911608255815994477671462528803422591860802521587306748166558267746553671200794630538287383664618077361085997125143994957406993682371349696300245455413051090523978382278468671885719695098674463217482175869130443544692195396719535009132800055489279523784632922927713247024449495219710381025087606671978857121536810474160421698819271822162732966209094827191549235288131138491244966065164033397080005180929455636239100220406280655102299995784245511856421089677593881709118242652503199261000044759470132770844247914880631486863519997144717867668338906701593468782177364562354924905041659561812028187663267771018298105212426963704776186729759350543069308248265753445872329058343752204547216591731749096443958585202808964621273457344961917347068199812061963352467657962357032005154729531406559665130128675905113712991198213271869093199146072979854632655351706237686523691032832799510242763018493017531549720404493084995387024562894508412624352136239006919154146852186307556340745686911407657439350507879648652263779377443340793681039049598081643617124633970255685286727627747645802327664893758007972912356352778805359450906380383129145074667501575979257890344006165411214475596599594885004646410017331689444649019612749140531111549004295110736634211431267592685848249740168573446462469315285031489998487476820880402596505068200201335857391424494466688831732178242378749736051016115262500046821022576340734132205873269348439321305602596620944635261673466812839107982713394565286613161654405907904824514324724522544043222413489804933881521203906241844850006517518380842356608894839827452088387921208886976548749537458424605737925802276076695681217865680609959901048245594500285264248927153063660515607751821926239767460538968677586474128391385094215859387903274314307468081263871087059593771423618171572813821466378830889698096993987418540678640163904589384630090139183012149848442395366016626773875056647986364674235589700875239034335888581558801551689763349535966848277782223398771427287507757290502241035411122363775033943524883106216049292712231542584969354588706400531239495412044998632684397545020537849133415714230328039127832598728196510686057516915405498445398989744672728834937561227278877838606065088834608989160047999067760972628919234357948006091200732630803946670711026044720942496303221773369808893225368198212745495845293303946520939566747307285176388077718487497361942598793725143491682610010569470899117305778585939900598495020464872250145068544672790917331042020625426794616665263427793172085444812785303746763933089534143358719767399266494944113522930432924910430583839977024299985811566281349209682172416723927509139577711057843161858211622628457000551256288813644626731784641354328048907302771954147866895480428312055068560002297821658587813341858573543484937723192502470248969258542191590362520778506208307616889177267063022767963189683346141246963806159669510535363178616966896389714867210859831617160436912350298110523687579860950796705865497345350514309246727100715164915019841106032590609124257767623569422215989332943772910214356636279689350016174738543418871796704764913340011147818702953304831720142894734467845333460883700884362393382156238345148354711126934498583263784555614878825151179252311852031312898869024510559144206342409043597294530081164634845610323295325909417088973531874527224618931084989372714236807402231509794407990487263100675246622168658923231539475935084670490651809098989432743599151741706645327468068947608906327001060416290216604971656287552247413573694436981570994430748655619056797598509217922889332967140876648840238138125701170587072893680756123402626653629204965258078577851233650340371336832969763983001418286846303267306665897159891902903795244107457196207376520746060941042382693622958237043765292212065755857742640804009975668913890086954522159645069675929309146577927258653113694590196396891048936224246943211310656792733777029724839334951993767076636980128988763028622075643370504333437899451253173851175675537749849616365446924546493295201769217155986943172440981261711389466267632449771435028227911632795933485950677936245128975936265266062564695905847118010220070890282571907769987885568784255259485008713678550188084885737995849133132978849827292285971819960040402959265896005489110640705404979603238372422360591280084486747623657547976927775386848614911056985677916642214335116238512240435057309767880701408406773470154759692697491378870082591552093276504332828638162290101015406486643123439460647209612675792086437105907888031369480716009573402782806263768475558301884994964199600266969578641928692999404924493167704018302108391427930258477783615996106050677436287210831838672999789049031240858671277164000343984459864487439462491242117765805504305303272934562460016232148069129914948996392529713159327719392539119139535149420355040561172260404148391833976346650351572473521727096499609571708110320957612773353361327071635735494351460555851536185108392192290825880785034685152284126580078452150049899947794002812328017606569120525241196400668223658866110141295193918504356232467907239321793785851253688041990303103408248119383305366084150392595504592355949308207286852910360043422676060156893006741130057388904933087123501548270708706505241585575443339065487594282309105040525179259218496636834069998400699251787137668067272963243709689311114202863634203364500377473524184589397653395637992715543541358550106067115873901854872921000857949243573567329018572970849367595651732192638248771548045704327688331625128125962130589313833129841790110003238471441437779248410817134768393749024344879457230919316207480972446267633848252880260711873002629737764990586934001051024827989590355117454766818261298325668692791672082905550386351318020004537625325171419760970993087796322594908511561318839566096462844384549707174116225672051928426822862703719674192689537204196389143272696357154277935651768950867567358504067109158105727976694728128082969235600376238421307000606311171921785909401066620477673530136985344719882525108041596876738182652928810843181133941741938307720345742551649452465326659821318187762319113088115975555715376418418065094749153319687942842841842098741626641451871184699686731940949621194398330132481379171336017449995757041138881388090219381853975642364898430126859552201773654003475619352375115494247162515613853027587861208288827277673906596072301873600449700782423953770399554876918867836991701405941930268306268296460920854967210344079936709192619013540775850592426973458709599391402375912530886382142436137297869696549219753764394590843826806911602831939070077042290154942089558727641508488610859955540330320415693160379027458533486244311426164846711010087968388915001592086665059979422343796916257996602919382107941987755833823257610675364646638295226867427347091982727182652347786199292362169403276582847668510520543559563381209901265195262372122044192468189863289194964131487077830976831908438269582139883511082671064054593142256481990152195329503461012756833303021452167181384694893919633274380008069639016526456286625142740597461483281249015048542325792751702944299693259296167029341800367467433373137780204754932459056654888612887203231996427220297166167448940352923397385733480051577320498423484741067712506307418335202289564234356059358416853472315717202734075872275542174439080252093255406821157759671168643785129221934495248928535554373858704631752588327230597892280368688111485149788926851442006679971832632074162721006255502380126962761855121537470049117587002393705949839293282036826885695568449415841730666672816475885250215563483429933875621233245494750141442838758595837013521752988165790390424173695163346086174491483799475367443624114562435660900639244960570934594386016157167355367300681023304298883408932109467711999414121776393309501993883396703835612020988446865367124366600917002361153158040597206938762081709907651002546452146565165480414659119719816997740460006709876710460108198442654273985902575533635735765912134623840867464557777144643076682703716616753365642487082980423614202523609759490032008893520188007009732865237769326968488883232143799742092007587980073897053156160680390515415622352779179094929947678521929865954613480161351585061771572924111319371094957835960940861705141836424786796011133710316099398359745871184415288106085413736612540868618937876518345126060200419078683931580624906414643957673934076280694913294578847742507060063173122605603246514438666224999363542816701496893650053845839932658956042660250161761573504642930935401802301273859777421149601373010997876984341963576006792910753570277033310435303755325794356600370012227130375510153218211033762818136412424214715225045854512917723904474847170246694711021216506803767551966224533524864916823615483077070703457139939512819748932258061034210049507864332181167567866785640104112061456429803125319944353508862894210521219974374378703898896160471507060299156574973970454526277984721412848749080105531640600251495052317692561512379906418066402311747064340555517007690443052005419467123418870625105645678627320864669183524123459443614005674015613245167461758805826218982978195323284684418443847550500066875302555654233313965225541340067321398341222668496043276880391763699303404274556744755146928757191741725478745070556456687440471316191846839655167942006766580169196039630872516926278012156708861549669267571055230102652892252359634479864667444012670121288316029790199597600308119519107883828604787161476968641699778066573113371790397723233746096148857415193400171334266155864373219547954591072386515190145754451676765858279510905153201592422287735330370540955641717489604795229710779834031145486400383451871455615976798967559651429000519675396542857385804396097808965158033978425022029875479388808799520283869372478846400168788411192217936098615248956488367601791696519771767872856503912827183362537502715102235620828369123302853054251502335429592574542466210810892407345184859315091323572561407303020423027893550973757056574704604333720988922801978294118056390720468327691865283840980038651625408516350167972275728731442376344824230874317993904138996730429744260037668286197898708805389286297559502247839318460988181583954621518180718004335522343553451709270430816603969263625540959391897625590319608809993594986946216249250404209031102855009513330944834890085758646538188298366751862721989526238389404821333637155612680396809372869444984900215767367789287324950075303698839492494641072441422329926775186823509297179901090792838958291451861390541080968693277472617050445539071354733535073662254011327454971831125651214037559976502961710674042063394968346313502312724416226870418067035583988118744862359605460282554740253420587727584644534634794106503734158536788560877393641043091686662630648077489010122290945188311334763808699889183723180757853777416797637820156712235076283206586115686751246374023421984935926440471325582518642127433467898881763929974395694018329133643609952813705269596545919036778645382084254918955440399148401739065675239916414647586544620212004738076523317818954403353543785168067179140048695810238119607046155108296964728094732272509475244210374978162037052869554922270966720415382695075032855265739886481701035607205873057805700733772256781877785790581456875572583581258931858228034224730041693921317490224524950278571000608796091239445176487759408426530533352078331865818880876930643419206933145833381839605098130388093163418826403056566159357309044910510960140933306905889349557160877963777458199078720697029306533763318839858340930310237202604933176424979487706829734212508580837351637857594816056181407968820328825715288578754363415727686925353791420827833666195988878330339074064066544223671315385900846080182989651792831479842921343295299295674541706857773434745166035770555463891278056283817477142069863552183146776020340809488281920499743732617627591758198572846543434330782441829552024739078266402024669764195292974601052000621552292531236594174974724539451760756003510771341687616094076601425734043482120779476599151226546767060683175750227303181558637577166759433141136049593564761321060793740796087119720580596402088260157668282875006663619201239032453115425988176730686503514076864326455721053024377839802494210445089931302313085890501430027739344193129252328166111491383669410708390749303207491822963347585817059858073694825182497868562410784252061158479951947112826213884767358350746878442984557906957884597693141639429069702824066690862412206310101127242110363921432148077223751834441926664420923867589855191676222384821361145703327794809422465075676249232685995048882599229323567024181913534272304180856329159398384154778531382720228105805336294763265949819975984104394660056618918576974076592068336589948543445969763805453552977845951420789351955975427191210482410302880806059831194021151780845356764254752900456369824966911098993368282834182544082480870785440651622233738445977803210984523101073656642419227146500802132140896719497598907281929826468824545852743697611787307130216231190337706347193539814460283254491613216169795344077610807667049294422310863647760352604172932408908998955376935561468879591743907378596368293423157525951814812551115363696672114008118934403457081113556554513683888196778535992562644013214189219356700307898822571106988225848118335026423025766893302851042571281049887881258074237399400885558960536357505844974802617539149972005493210205979916568190731850026061553056860236701636628615685048792669055892126141567756606709145516872881700538677796792192345162616619208055066199146297477129117746271645306459870465318999935845619497568581291269491219848449192503812428704849265163608766820880889120074077019629079310405338911311018410715474153286108008051689744024775301644443279990950201400393059276531420241284999166698852051304146573540131503225390765638146327546014061938420685988549388634877262470559523379348988521436013831986284058166061951538531536674931298704601689262245477286928487245970678418309581819792512956252962801268636753603349813075096298731379429824840519968335011004526106838398811259821466598382975877144877134436991945183844531877417152239917477092231712026686194924166018377815011082212134750060219722245915248587339077670712016879113461146671740036054266182909943559621609113164008602616252681951440928177579121496064901128007553352747461547298087181635495108722943534466892937580283247547026283468841920829510945967907428261387318947954067808648342477655129880190569299977264101074564059710231008125007013130737157698373107047448940677355195081181834637121599910020009959280789309858587480717686587509293076091497205956061955003024832817462302962432054662494682731475154449548148632125619177545195805801157497820134666135115400184944011673582342968052894288475619425493601204016303220766155512143926608522450555812872535039397512093909340880827194637632628809925518471462913969353772186442425174498315705706998624517259672948805340326228086817913175668461505338496056173647696154589288982818203090960870395667108612605332404786500962565827887918136457243605760330928257186086221929855441613602517143331413794560083767339993542338888382998214348862752875672453446470387332491090766253350929373942051065516432594974860325721002423925832515910646307533958637256323097684092406887470276899939130211837520525804371280641714110711474102524033929795466191064748408324296170268777645446245074258203464428871492078125213039403040840090648360205945748168120946624267501156790261836302947701020589854924912617361033863468186523727975184545171928812342830903891170459151127507332245188864276511590434798321329154185335852068728673981138657859350739245297778358335185361933634436539782405401725118334948129470352561529785174606576060575521172943495907700903729346386066748703878650226398185358094576104586416630184071484511912109937271738162133951405316774132812432284813683403978706014310467608641860011249101917464466943030854388163622706758770740835415591248464372136246546346929572713372144750816261078446455810399907389061526501870797851910667620320894319478648185814418207576806115897830987989663239315801370101383740782325009305389914300122545413656327449181598371361937626762167590589623641436665592242837239936887171171464381905453841582886535923039020380316217534095763466626604005102055794674225132395781469887798584045771967269017311781223434810165883222965833494125904981685460083835066174921843660743770269488540041557505854544330714879323465351348333637737399364453534902823146089716019547594347601025688507054994651494687578777158373547961326217573524929418667179648292552536107042513541849185476493083624119952981000564280258514325794794123307185494419617684752116510586747581385468271842212641515984361191850038023214027195813293112448536066718944108711068295342517305168476378956374963545442894689045786818932889611341050736059913455033053449090940534260862701188123103724438416757641745958257432506423652716012616717280972942735277514145184627806870119007735698044611967240242504480226765740164144672229928129508164442143282005626203540074259981445183655603730454428583463553635116765007408622207579625394209790944122799722865457623417452294797431870802885775554600533020165310845479843560090362762585897484640017667923075606282225397729911276867480573152528660839200248686102537106055881917678534911071311098250668162185974112707355199142948447749227386678219508204122632206151580378640222632119056720425368511680289518564951912491112191996879374362841690138268382052622178747767406955076035716675513807720943585029755074732066257057421492638448770637637408294565116438731034289107210684882572954402274459803034120931618657340918889074856179791298775317676884096682703422741334795539594871278656910110800598980023525284502919943218809938545873324096960883719937493661573687699669183107824650945829295433812519525148796463571174779056463620388924893288323640579820071156799451932551824705028312900537177331484162968128216850036792976760817395551845197524884580743369685385768042326068782032104971823415465373276083200564155716185047915619653554213464346260924713540018495001157219955496022912854972941483089177883269327075014543467163224977021784489859258773951254008120201472293545444409212541060527670772041411857093230732395135732959450030454537383858397558143110836165802737166678940666225813619548117261647551105670774930702457211674869835617168313085547434961698054890463600693809647232024966907683332802379975837128018441916541189430578032850346825275125533778404336665944239153019611910628680577541323632871890789295827914851466013457663189194999225631711914621788232619726196099767219384747018604184880785389955971818913667398409502341291170607574816155077111956527831722328979771867588155592058831953385708929294803565303254667923891779230037096681542303270247494174547992990561292961334574907848885445687977585434574154388631493043629840206241377383601799093745416981107513436601109741341837908897736573514790889760541226275308152149393238920600879096325113614608595650995750912619110500694356168622901492576205259052491536560377864818583386024838626030753123147195936453390900922434190298469511333031147845992806986855242429561939014874640851556849319882622232526913525502598747105697782515337779031108721901794945225803572149497750628935061616970979049405064795114784718016195991859097431365573159338059296196668201148532211316847113499070099206491958616100490916439695102789714541443026686336083451451460274714058143291565244073064672743255269323229463584878426185158812374051430395328788099412999698836401814247221341873180226211981428982982633915123769192158236245074405712954468247275569192450246815705112092952265646911965626205925129888890053304270369894702410601495134319448099694918740304835905824912094053727918785837214387210078183673522252124680462590637606724345645029470617715262746475156066228257921832682944904820864927289747939960243813008101690218952797112484501532081116092206620773292131004900716044049756881264936370354270638429292426611976322612568027639893875355155679421273451410480579451972780175435087280523216124603023103364851978644328849724648422564935677118135475849159357631039506626265355210587020361235540469857942903505233211447850008147254856188562995280852880079247669381493960944145742997201369774132286630012341752654007671466464574755493747583925885910946393883766275530586888748984456928392309967082698130962379776036110473264434993072798779858310022206097987027603572153029131867592934129509711435021684027128673074343048251441884062211658391243960281538242331726773042160830930172478635933101484407565902539179573429143599248885139004150900409490554640543728711549246593874566847155447424107227795917858505801352733885622724951080084534225301861345990133992322666797212891637384303712529685344923350635396005098079488518579279288219031244729176354720557312733833507091415138867665014053711711794155357964577436449081814887364480865206998225009928158963342941727095594457812819779405969182619716536550201164749249150281310098610642709671620450143335334974281550844931271872304317684390822822022371013583752711372873324140482843171476448649144924644899855936195395705856967979804060699877216334636403371539356456486886861967610423400533625732230630940227129014755129350037140726520855962899253952268465932781785386048260693266760179289985505071708372823043089270100054796973652898903520541919120535901158908150608288551120700810764803253586051260021787137690804326974279330434830637992900329513502441004272229180825413241162599291692554191573513298500927093328095771994153162930208078729033090341383627724371589995600281673081785123853865055321715145955739551252463732771238401564743792922637002891405006560604929977146798889370800217174960933317857909616730660611848742090537265075380527923019926128510941975097991451453576752493539455494257013589946840467340047654294448910146411060399969225553458926650946946629712376475326051449057896490348173935839059055610612755621274467623386360706280200556042843353536519820915431541523473696439273066586754560143389285989660610190985311828405314556170478199423166717008240860050353396376434849541329348705971766252486734438450338312555881194980197015175040194048615999119178885483143773951432776491830626860156558368683141303163686416579296751161061179738582078431057498072488382876474706361517691190173779085175264811106322395108258383617343012071347195378949438940771681777576339521900411721219739692581914193989315393689704454421943981416032936402417738103880394229466757110018727623321160244182463582750749452782254852321437910747889761792480336007290293794336556009915880838852368746962975330837423781495151054119417422935527479463003879003873453645234327629667500009831512178128956038735019577040137993766902632636458659784123178103303552238657905762225921812461967413390847712949173766980359355959730404168061957360542969655350101930999473921658843090845821033279642112635732659204402032796990583540596022652297350584951965297621159339836179843756073687760114646741841574667993913384262393666516391634323516684694637050931598376759556283556889367636239130029213897272270809054769492806177174577115577693512043048243883445892527653537110805273680740840068845700437788828933050366204576784227276374387009187916979807019643690153589856944626541693684805125463373240389830083195684746871318049727097289370018625394911901867123114642783925621211341464850272324986487186362666309476637352082834779276049880846470531457566667634566603808083275205430292346227295950578091693927951139346135547052141300665232057869602286021546668590254687292473375322794336648749229180251929125876090212280748679370400623087417786655980904486348627935412419079507485686991610082821782931810846033942938196499276228990908765032538635049378716719669226852466017762506442976844118507984399520008657605123171968719345538468777167703747889258113636815064801398027488617247999225826578832863157125626945084122193979109344850974191841862360669125021977187661471920353576852053412349172459767687815221667826834672473751134648316344780461001007526135358273617490577909092224382906244432696346757273037149893171223512684267682970063076037115025435632713149753089764912002928684106499024615465243991311868098078111329429095385413470069012435375737762447533264423409805971080282028241296410709444981654375867045021572839888221483209050125604329577173243687648674671039906771840770238693001785649184597180853079361826453188760039066106719214204067464968195998590890223351403454481146012862634189428997239470115311625848283440459221648396585211327288801004253364350153421929113591872648152851022773680708318528009609472243298264295391451683067554236315947479002197243672050615748240239659989030836163286955465185471022406622740522499175553077262517454180251597862348782694460833838315732156069484092108680401006598884640267376288197464247316438859692882295666495460222203278117561327231749516329170704069471075959416263353033629770497870261733971888967338869433850793989754337125913719457165637430238486905006861057654706078009237450273526707842471020974617286228536538852060102035547165005872007530368551662122232714985676588497703720944193212308335040291814382258360126501562550031723942753887350411052408583972024601447930062012567023202482597414120481922174192956321414164458538671058935208693139843079797325405601680149621588000288502449673591214456608931291067986302335634233823983506751668086590972308036353870628022594122228704737102431872697145068670120802417410069248714937982417854787873866972134572439881705868349077974507819311725408573998896162489221343473065085487832221580640152376866379952350150832217668354086809023366105944907044953417815511122787165396195430539544014636859307196741788349170300886875717416872368498352771470617798068269296161015765602814628004586587324929597846972097528135162751967517904343884644625273866182095832775945346136494108241432436649206413403134605643838704420615690227513401462917493426012437899029083452813563268315656325967541773347096259489366679521929529536067826121710161126376340006863465233185667936746558121128116203246214073995017043980897782241516812247317636437648585387751264545050939538571960593701500880314161857501138565396546787569535295914254911424300828245240489386555218090960240649161140782784578776376511937998713094301320156161925393481849220054167202337249550310716221839893723502988134767168937841818601882034827070508813693506426646862750269516205976744949428714038525215086513291614713876257273490419312297666087187212663101558334701576663726115186042666753302273722710160029156901385247054840198519641035308297771483208789017422065921121774975320049428806887418866776265964276544535912935572194159186809271551904724915266830432244309212841831890266015334924659845950605826216985150915836587926476411370957332746302567156480383821350244378287698229341505803985800662293254938621793310396907597140813350766874033720756216732159622801881410631269294008270106722260347969426891888001960638961976818810421486906672659586436826084204084566765962393831281560062089590239267198784470358104126257483725373915446794846978659806562939676864703478517313883938348458314904338235623872828897336508328954033804623065038047241520122408691732976663034868736669007537921248092475926609187541798058703928976630703394581196054873921716676879667538116552454156609786105223221767379728549846636234528325561522788789367078421112355487325040526791788317690214764643467528317863376539225255153929891990484412301184156075575093222477719902564323111115108303749279179911418298239875778065708064526585233695170770046648155744381545975790169721291423505123764468997433730603907255080865016457698843531219057671372047225549249588516751643621879452256905169937314156383180254465926238440745692005642198798173248746271385159701977041718604205292564661577497457720426273182833393066351386041657427366886527887759012319827108046447886663582929408965140230365057938761069703595492474966712665568746389810786457439649229998409798055356804705813074775690501537709405011197914263178734764946768071151403417721854859123863767820428714241522496461867993993436876000655518614649685567849105092624333224867493466531697245308212510982256253745956224151685327069952854352935833486038152543453495569959215314614308819650242868166285364441136865020429113278746993954146625241689609492075823957629151871043043632124311076435410517415816086324091776275098844851703289771667008441681395027133301637844230246608842060829200283385104916812462704429236023827071504971218149072775861824883268547135832434555535900132619485063698555073428747574898421152484882727745003429438183899548876212040282182848407767313063585303696869326916290220884033812778658864119958123142964439113795539107589058235795544894130917435089545142159149423623254909852564713117672558622076643856749592024690739407730314047749101108923133913374729189170552519834033493724723654333877583293741903155337974224182040756854944588685905701678709772415690094544585263984176505652081025734778314748523823101748305194676987635336450293737337865286483641615542593228393417936844319974530475028298527531256038752963970471504701647602422256017330661849363804934145828463706918802783027786890156904362808534085296834751568004065740048044764178490374564409953440883674129505242976520701638371748084012111729468355467286616700396386479999526211218714785687874812657754952926601202114429222375917761001612922743893770087046171325389485514188926090345581808088953930240468139220345073781615710704850726492935770232967495241589694701736386700604628203628318546861154108806499216327328099045379580905347225931082693608455636488270202444533317095287961904570557296234532566579098107916904057900825377649759558088339482469028471485148621551725268443260776650460635002826406444799602049133222970493235140624354488397463776093997726326729928502774011596352296616041166904835862148413661053741074337895283708038217628271501190306989604399006004258949521291438210027535452207486808789916599939383278307307495286561291167011559679170776014890160515984773453511473382951870570299708077538717967581665637722714363913234605809614723814372719194608669220593405490107963972401735968207690229400560727476000353955630235812650226128437890599397964194295267795595854955866532400638106038186480725440082267730084729044846257653440757835096266341846671471394700456826937940615090902041079357219736338837547965903316708479089618599075035071407347985348748413517640378300894711966866609264842722696674833214611756217672840157966194777492057163537836945089266316884215344445907844081853281087990812173741461274645074271588625532217446359661114036016650848627699726995819323193983984394921745033947680909876449936760738972521798145756975253611361914869661171091394581099638120804624500352432499432846625242387683435896320884314853109890488301301113515865077597190865020205881458040512524016743799121178197345467030483294443345531835176874316890096787555837595296469200067940937279146816601412252118805595367096923801912233162514527100062730185976274003231772986978217810501166280041797533482528214453475178302624991084161611947425470042526518984311049000860458047083014587995759579046034531200294418967869841647094543981447725144476746522109257168088528652299676353637509302047890012412463591264856559354982137540293910190482635551457148578280671016760101743758150085590741445909617136027789135497998094836919360675663080667068301726707259511864038567725434149081936198659093132247705141014272219490110128120973033298403052536190698841989331992557596741836111515892572951347345726293508852010038278768488460641960702347011616347571559738671667128234993469052328686267068228369389183539982274754381608462318067536852068645599124116731999177907288331194984236233627240994104913968837198145583790091055947185198453421986143533426654605435952589502259702247022910735933107404161458815235978670686491164293711806352078931384057814223449008255483525738707892018850195004635496013364942085057908504925788739062499576635941281990667260342329294498020684170436626332596027058254881010123011480982113273692196255821041095133113324674160087934889425936513446312129020871999687358878543414282509017041722628327527333098443256369421100488122664870686944587864767795381862563379895141881820921197604588470562009559939196048200417205397652058390692647162615980717394296073751450169626517441654529656629443105590779259628428549671699576074957522052884228283758180599385154852572065784902779458395692777790903205519637162056082597697445562117253511133861565407823601592233873631041505645872316758594213084380191893741435123130085491642691335854957682313841195877102378017970217259009969538059225986659567472504552536086427379019317009330189115469545493523426000521286689753236376447726750279145747408731649322308763744974684211474203213445319074302631701358952971350968990384465922393878452590364149409288612720505191078052354392044754522124805155210538967090408951442180398574477770536168489320185624942855274364030571634956261158523813588186201026300411721399409895439122331345930993472567856416213636228363428104783828696859512468947719631896967013330114874871877288078619289145878936952466650924470279077529515893516395298413460509890003798183949812431250865561654710865883386029566562247034426299255363997393486186882443658841098678215573466307986781368272250403102241472234969464581393986466471657226818343910424819997629711450870093881520784381886594224957260860762018896610716994021489119722421090556600814163601815282432809722215933744985939949484976272430572801127922604772334503746512732685950067592828587742482552836582785167139255268609019572551832541799079897017313663550084098737051540772888710227948965213402602725785061129220236468482941085661719704963379591106179444435674251447539450223333048257687837348628916786629404046389449490794058918629293703441960934707499135657804071844429437445069345199797814256658821676407009233834654549029248617648894960466925088606552821116885230995153348155226669624161358113650062151101300820606155942438501775772868467350734452486289969240904062164493171379397423869228146928531977623079923779060489205328668939878239990055019546706981986487853247873898666509387137028420410552295297062644019571172172594160171497341902701498807310196835901479943875884211925024631901854696577430264309299313928336197083755741087111168098586647460076712580133230878207918882768709696803962394278646077817732160648018104311790769871432097590742013390466449732423509631059638131658419180005149134509546558005803435371208982974115684719081100929920375647735251689003069470514847913685282903149093139371731336971750302303440568922868924996216282908821987921689157396571742558805489251247199953897360660760157661565823286856647178601059340033007388545702448941358106412643049911169664923123868348106469013399224090253291946113680944254315140236265484181961315317280001673864625864114985426088160728483753544830254448364670044760380077074774695941653497036071797045977788905709072464074847192763967510095096466354048643495744832756103162445216251792607238971823762216200554256462596896676510919887064920612623477894056869035245940561918575692545358612534952098368969682143602055390197114646850286955042829305177497907513499195340694143280465996544189873707695656172695724790425741925565486030767892338557920936046435103545327839253170120935143133856268412253402716903238726315803047357628484019490024572503609031629261803063107428608431441907282578386761930304079349402260671288859217771568129033015974654831512329499764073990874254531978674359946304954552049827053234430508837415341304912706059117152565431580543473022074151806370175789624711162748503159906845581177131344722540338301134302949854530622953007368044746526102159151451545252892273716577071862395834047744165872376202133174684976816105146797470390515188415358803625939843633932165731686275847720344847638015475347829547848189488424655780597728478209378428698978472336881581505327757949378699281353662439262156101860151794496057996269166869172246644556191322583000114447887267088747523820457936599059913491571751645343012764362178250318683992849756676912605516539848513757674254639850404695114514727189570981327065808601506973727304520044571032352244319679805362454357286717843552327061019225025760889253644837746480121737595456684882453001692140125163537106081094899918264941547030406905120510549142758042051262054001938271094098976953219122798914953328425786197308585021207897204891823291050718926753095198684055021932473997341892287530138081837890703384889629044456835122923575893652561334859186619648861211083873878682099372536511549118223171667286351931313240647187155402932694996551361118487303673144988288904231662100133290212973657629865134904239296821459256362285136075720128145606043596962980552483656671414905606537807924779965334176849686658004171419557952201654414367956481484857502217080193295248978849330767054982206865840544193252987397999826782710323432935635542399616813014767868726822077455639118747701061016151471093631896241752287476946878235657270692421783386801779873827913111836010128365408043926047692354782083694800243898039067919445335490182898035159569252935987154526006939954473406249890915703029765111580572020052549766868825252591358667228484141786314208796746540775852293442550518431495563557793543792188285954217765303954656444355148791810291659960167209974236672493982962758127676446596932826785288080881214067974567303229065092641743487150930038650321895771461422920584928971149316047683574293829428810608007492842484534400492635930370920001615177549950353310180919686925278692546188738718137249337217386775725391691568727004594025381708496126243393869845320840769891275240555703631298065114698436101293505032822217028749495926900368847592581764550816430644102392042869429097788171139221221159403984243433631689400724576849486608550683329365613084816736241869305583143453373332844834937140985390805560170641797157754187013997270457282989307618797355605010810601034517306608948224216905445443732496893969877340292427725721176617747914999727186464138904247677710204280847062835620623274756336559151333780020504651251099584895347079027492489917366209213148345865827285482632133171762805740749215563174854854511916816871899029248145402920894797029119470071690319454406514620033337480161808014689189420666199316904523372347752769110289173105332598772009125543736543193210980003876468607704316021145995845169143082404424674015812632411306384833758156126905007423475393802505834301947814362056198818620773314520241747752456128935018829801924754778604284061638511217484084594972528599669289245580633664035483806355553449888527622613370997126603821655688342252521259201106924854051982343514895982378081707061431348659164933071074681632432995094870643461004085652172226701435751607243426702064740475612278130754342369015241561146328071842935986046179949951154167446993699108036542273268943313037131642838793168858082847726203499956093921573713722716519598148969969290900551663117350373473762244909961593202836697681436013865324173152097635409295106183472470900794087539818708036656996135494599819084727041215421474247038739928398176990119137231923129226630278780235474447806861200466981765993860736518220674292378469662103664894642641511589789627674110078437881126175637075376535080878571108135317511015087579516235040251546651755461720121163885430039024446434990836223809724977342556430302700522649921590565918840148583925082232129035945068706641939478720342914645140663856079443554248546871535183702022745405733191049405275261121458912716007712816088820297265031469958550193736175223986151322196025471681426012958438090254289879219615360492531457614760861645032437335002897027417067504997873526550065997296374979375439425316087772197066054298190911788703927533633606528012681882647141288965866209231988760707538977913933678170683696891302715866069988053428277475196350350380843986366056146230046484130390545493066798068291372260639407012114992166110219483197312753399118973886401957330307152985922907210445232391722939454853976416490119460984614686709281821805302665335932605320587245255800004563812528572192682873564592262851779371118185203736779602436028577687856725227563017612439761024755948278378128422123582343409035624993153317353935831546851119780760853511233990016516066057656656139573746674839842695793565852649965136802903968929601314924737115042571050004249162005894332321028622520268620379877764180412371745924030672348850218253802706547629327676397949493266569463882494723958340440071920604287948644220615709527008574560123621374726705861940646531082671557318675932276194474259251394344927003748544963142662449789381055520964133996666422203981348095729073484528342250728465060082921899473862323846119281027314044915115371788977554384256171161352767029739701470440981210090089272318425802149151924113553381433517428848726425484583697795356177328400053856805183044072825872301720192923365720975209140650767366217958574900616154225290618075847047042445953253938171879799596201404165361326556232334557317766360716411514192201611067895878758350602834693763719093377535196503210222952158797628332516217724173362423101933051873963844999919968447881290751923199457678548036995964961459993418724393817867248181124007528009418865462166464981716173744782548086306149262312408977558338071656615360090863393939772314005593380493221578679384186139392874782814331801680491703411905439767748649536545895997710563403656452436351676210221318036675365974154383024061985017860010429524548140692935907295815318122690483662850973339570751673549771491337302083696526185135797780360937084041996366308930158111982147469527515544341365662655589561866196823530912673443807022705571243576851819835718225562467653539997367914484636460558367959240759722193237158956536950313828166803089989410845400862804470197781045162985898232830371802648751962773204745965142817251361577476392431202927581065557442153699134073785528896469319750695647574832062934403311034699288649090346046622098190639086712779733639830726931450599780341507567123364973419485472092798760018128545344939916775020651402801994942928444010302400148074531529132180196193021552332735312639224864223332596211555045692940542200693175435029922920344869031556197010142278750873330316324197454519471355893085671899972189827397878288139151566966700230349023062238952743886412494866392180990789010008736764575139399267537285729077975947211388770630834511463866829068686621938273668536645052312431183209430698108625870948420420679738283925538900002945531915689747742122502976392423863806010196269398374686742351657142105820277306736067998532483337450110061275399082986008246400516424384606842878957260769182209338492656218602542195835749928198704043836883474126745182292896921714067010684921093912049756759686122503076024355254120927992466750693900595354568765680881972442424713233747844747569595449320437061551351947282103875273007461880194499198139923312970241467117837613474094210516697982075145649139994929242761275937958020999557973736757243963040547986610558597543297482727202123281672705578012168377273741252853533243704160927585522090428730360549567240619864360723431550784315096140073116716880820606536082272769868397396278382299427526041733697753537660006601597930884360323197567405626441409506607416414706880206390702249113139776480117176452492094597176310771350576664315817986406360428945302906568992149784782190222928832529786104650298227875499364005078994217067733109460361405948782046345298170493391520180563691830353311431015681428628556475391433734777306052321483189676820802508130840747008617760294947568311285415815199789138342276488681542066353698397402299005561412274986620151779515589827245955358301328408250088593249263148115413753872128045241568619039546558902500813398805604565668454750048832304872925956037685046963361411967022087323492832416861667460652397194192733254783604802984645100329078725924800638712907133601301789589851102298311022198170314015786140815817393679009961069477468460821027671389461483902600022496495219864542074453063842960622760289344691528207519245773424305665187192838628246059124658250406109760908569706252095265615686859334394562939640760787701943787424877290649760816964140439979097253638791848790061564524707014093108915116734649381701544121119500684295420926277149024026933986063909652946289895308138871847464323787623252652758436711721197643841037010836643694539131793728090484951772831992250691128861268221658513935368020229985303924431909539943179124112200852856418235177811609148420544585323978531848199775051086465448201429181145088719241501855836154099471267334028680275662270648459880149386426376637376661245595496129561060317137114615856288801083591784179179292668885391973130597526620750256353161361065928932324559048049545047734505918957864598251363761205422950522004216371506852840796993130371195828493476869469567108818539358538072256417598916039646125741481494145073104487472239772628696157952938139310687711624090096472867718926522472066250231728548798904320433032729170520621583305819624797709035212922110421366671837263491201658226149722079992109900147711878385912274425337151204279795647771034201656199291891534467647401715941707664005158468319349696414096525392049416761465208154001178065636226526665492969709497683943361890419000640483132980944723349161195686622922676257376377189822788226773498322447007868869235053781064486297952564533042969343545647448952016007207135004624169476929683024123129012502980723926203614348242451938734690427370529937325940126064136731805129582418874436923116841310513181884339697752328100356341383765383589757122210797061703485580483347177095909084392678270088718941648384689205991379501177471025374763682421113332152275862289277033278141914345823971203307282440519927515716232233811937773450398011134864900557058004641298369235187325296885171885051061899266734754479037243535122681464046471174429336738927824722963325509201987842861275766044627452319692353181847252696410430924426040132056900749185184857953009924070693581784544343727475312491894186749629368380982803051431322592899099662993544295707001545059698467991166202933772040108929938135310945244877744387560653177880491593892511500655623993348081886550306049834780566191681977351280154120151643804651486904216641360512274017065050455451926087975957265414448484463223407334195567034352569368553419453892858921229047768182363011160269472559442975627837884401157097018029371577166189223914291542806421907387803508063514672398358206688377572696967626988990943214133261452414470696066231734375408477753407531345363450411784528835977814425995895852178510097057797772813562732295013020450246983619054614430480348479769711865540024144125669591955205555763811354871622098246060439627658713952591635547144501078436819939367469496662882366590846996950449636023421958242408375557524293112340495026493733948288649366585778334015992860145956755478066759227691844686137279866049251657015421323967649463754050578525324932439386470717936845390199616977925137603932842569147466925370078031756674511444830524262375988823249774374786097587323439927495545443547047673350523530532423856390808816148987796652999446595437736585070727304836316143933227509119348078241039003838350667404663614203436970829676770492162183976505262920695527256808414398359700248348303032640374818358276780352819654424881835020267969345116647769375797765114057342190993621907009380023697504478776827862474069606987828084237556885812062083236772891043337682679861795496021195812022718223889639195267428151598186379511364687182100879742764096734046134620959257868265257969105875811688631311672510763430147735448714673383969988197364466041555801371690711143814507246656549355764200316021283732226774545635646946038487111485184320980640201982244300079628225209650368462738620450693431353023242769128574547608935719838292431506911406919766413477134801637124096916253372652901632675113382805442051340334930968513351566917502642347977903013310515036581978199149481141642015255893911730754600566214140192773620849476818509126601430322390548235426429445560781933929371256128423626908072461660630706731689691071618026796933826015900281369916863413449747112633853805530297940517036321195356833356265007721025606680925557855432524983703612257754272514291976332006383505680962677367699495092270006878143562392714179425575989201696994479133942368803106678054896694432307233445781954542066726071376405830078696209162721215512157169911643837073494688606356302521241270458931258105934047254164363244492991709123236864594795895343889892061269992055541205842907423966585869251650345944367307363179989362973913512071422477530341082722516435466316878161079754730035222522612497462708727332398780144440427334561883868209756595398649281934416503408417894808582020889863686694359038206112987982734460618734789947325733486900016004018001248955144944588030134891657449646701708399138545850544326086963449098419325949290163862872065469637344563095171388696419207586055800829938720908596787579070755114093513374849866720986744326001522292616880536842839117344244264298587758226832804793091420908819135438566360051277052404293587664172743588170773458996515811363715413756729762609992099003361845857456843098249906569859008633602747437446508495238314146795086158362889562958547121389058677213849304233253520366550046260451709948507887933895743181908149715933164715898569599482024912020991310905248570607246118615390030479529292758220822951604311524295479740708242521542158468840723004305359576933974641270801753797975834508260725184400650863982636567259443358300320284797967824070993797420290571993861316915059767997001612659294099371478862163819673191883372668490601438345007310708503530358541101020051097708128170176716217625554667648023470480804342697997678026500540085209085711193288686693457749241980288985779286335280732473148956818683817233428652048297304115238583149429588253099170741676124408499133703361398911369191486796259685607595576378187096585259422601303637214712770379343355069670524823709448676261974752684396512028564857409798261519917052895745108145145273957067241695204860940879741063957240148392682512315907491323924201144121398029428462464217943705413509464828905507125705914927013535631528819981041548117632432305438663467381313030571446800536582191738322258422476496919562504086123544350348109788643794285882420966880035366457136749389548338125750108004503209764694587593735655354539558106714581182403229189262976227911620191762652947356258204394793355576444939084986349596956782250011827807707237054664989164024302452457972812219651370379171729691084282217738465570637709269867104658911683249501129108644557459549592105050899199303293374734409429635250540269646682995355520712243266157322276817019868897583685994784381309483076073859104150665125253488328823724817230077415699615608397076918536837801524274574337430140409562151226482325958865895922187940177753921505589416594359406880463613432492841135625357685733694767062525631997034411189040347284321084839495151246370566879165631175236027101385734992843298893723500111518042608223100787981525440944922171438352827117013996114565611529075071215547472434128812416541738941481346644427951417772532870748996178562657764119504822228773481327236350337485496242182742617543760337953398104049644569594590215092237519827957925659453412335376411572469929487201837453892758179656199126780549294583649491906277382404130889184631596280421095569831003853825348916900956532749356798882572607391674852799485272259442226918100225861635913335133745583729716428969602156365781670756327439923982587830513513204234776209640897574223074722022683400275569698805730399542046330121170159673459315985586222513673801425644121411938931838719136631182802575414103966756562382455188535713652667157746610715639548184102640996809110363392022280936922193957923160917514651631363872520682447538083034847271101608157998338098562514830865544162909880900865475177146755399891644682416710162254172786264851993021812505930882349236705021922323948368568930630550144551429921866357698731723883733429706125891953235068871588298254127989154928453758337738237277693589166161917760015205638567548423944445586475918883260066118498193778617201603685857765670847831945897215986754497066455020085492452260463474026306807111214498473050885425210240351800447912376908091994855148871828727268780038562992766069282012499976699436405794448696292748014963804269650441901321746222596839176928928406032328077531724380015613830831865283852367644997281334979867047194988644938428671175026830127140382078263170390739047379466436612976714657040222919755741652730046217644816012020261704425332964030254251172866425365878725547369672420532484682109747752932808383031044311920000131410320958919502030637844600401947855510140920381574980754237921799234124051874673439640715997138880903796612179611771238087242041699495759379389051172043316186753105817114338230501325282662608235903666649681834834858452084590098499087588029469120901961482353037171714581075475951902578365074972204225220507188532619510857219933274309613588491701764912682254651088587898129377906430146648824607617647722689912594574817670209717821293017115086674030725578738958746637772271605081430867720012298094213609918949224748352813227497587629517498880986891977903247585933694613533004145665206534133248406706022248758645219505832264090883630794229636934913615686752241750724602605995360282585023294799199890119269518246350362752482376137272142715944000822760381977685648767102189012828093448411948907737452751525118075107607791137875713161721893483245952017705099540261140235836635866041424128227346376047066843292292502308428116135760749275954482943584029298558840622067640786188396122032376026933931826297687646448739272711994924624429636386574163496618997655772646488865791908760255290736869694498531228613776226991550578610928920153319542542304990153204948637821327492207635072779028521320344973936604694067341027879670584551274156214879135099338952234959809997662566044778461727611948440225795657631429769507345260853040491328445798817765594751294643341539190849094082078963984122656246253893858036276826066878123903801966307108590233087467455176337900259025891157283087911516271835350680745977820342904813556271547476238244681895583474364216579385282008796173844539294298257846648333120193187459290395609033320469137136540248952314104773193905987760740973753838793113299997656271391038890403407023804381857907284619478556212435701320779230561621173737996345609498924741207195023189328445547240742178179678439057089947588703540195641184234754150235474869248133917381856796786389914991525253811324001582943380606705588769582426495802351906733515848488168190724327532745732693072696561624365134480812682054492901186343455652855277552443211351481864434776189945967119171956630197397155469706033087871725947621518534677594788763274865737702902021966983957742751108835774798950956434479812070919003670784530640859319253523433675854700110586330698711143323225183694551922618914292152319814463638865347335055258638186268030389700818149351798305182712384797398041137900811294476516005522956493205958119475878391050739121312344323635447210429722216855332641477009664662654456665446445788798146414371791620623744356110033335566311269353386042958927512873632430224362872535235105018225841159873665927356217150525906526234548489846768062299253019441513236056433659796233028568934772665442521911731005587185689810227138700885063766674872900199464859045389595562313205347282307771713852558603658701820559794689071091261777767887272245942759184804802956375068751611696296549992377631318214314779373487954791397568624681759325312838396883966861454819832241276645185623460731327066846334108611054755305929840941233122060931007324395189173829940965943128527781103244416688716124375633577826185925937543415093113486938197814253891716733798500936789816754767675343367414424266681670881960215663483724711342432604493051305424188667896584503886955579984225523927863679254274454077166257189562072842055723402745248611468139644799131629149129088143160525366136435241860202718171103013188249439594851597252834036341724781430803814887091498366419902368881694810055742600332822829534933804666073202744047203565746923915558953001777156586086299051170614636542733860996512334856566434452695906606839924623066414689245063316601965281984628736093460367703357987670516292126056434117611251075555441611125267096632432604184993799111037919712918630932537088249268109786993684973350260518578540619976309542336671578116696770481843086426817144257716607191878923146069379631223854641969489374572909233308650871156492543227056124625484884963132300166974196256913451637236458522895557781765910008139917994584615653776270589219589779223003503594445123571892206587998394405401431217823541101002056106057327591274888299156285136545748491803497958051201630984558463276326827155719684302512148320411001804292624002250242231528562685925209590719585180741813328381900284730156329369349106935998427450880825074287289740241250590898243243145371535337900608124304023449478044565293890890851309915792184693205493464970724872562978500599311013081644891119635589175716332748522294130052595177065302230004623412562418710386943899918816308245468501238851786131902789897703152277084655161467246390132484883124344133493438010075586469560185223221964736120424573782159927577669079727457885466933618976909769206294175610181362282834775240846809267010670295446582833376636763325746390640162657188873940079373581895214442762809039469225855033328456491418461495561011616147177873667131326001961534589249983813701598196776903845723963066425421818244629011611212323887668414679076120513846199092007668847742182329546566844449268572670818210309154226782666767457146912015698274117916200780433241098113191391870642246837053708677878125312312332454914237826082371223062580871014955584953098709053767431544745697770219682997539054520084369643568015976739297696396372686512693199082157359188499707018434957909142208031287992125062895794311600929618667513960194965808547349443028104624121323666705291986842227837988962333407566320499621276204219817105844037541415837222115431556175526450088727802948066498569462805214225679153522344897275430622601524016911416536400396947777346046618064179763249385167568448753386779645252698971090857795103367308597156610653142690839396806258420717250317990863561035537442852360061457776048205681394817611207147004674971440635311450809036654097399356908188720811683362745538308039077932054938640526779538953571352400736321572142351637307889656938914937956959401862105476465345856005778128562006913662208109498557544850404076466618927257416628982358904888429993161704883479461279641056964317299743933958615674478750911707409572423333097815906578156058705638778671726957992233682372911364529119558498478942545480173649626275659743432926661001972834140928184080459278357502146191741494709576710379847314686514366658927436941535561499791179841274847339080636823713034058847819672281344704984314235868714165473419744583007489306599185319231638264093291413921263867819416877631187330012739310857731785444942791069161435632492347098940842819814046944400187922573444870253690642932964087150072119880424046983741006226850857518929579891369128680081173271694407029449887005383056626389840049788702745271802073464924541502971098036480152774603018592714691682288073367750366463258638693957242646550840885148977356029593450985999075165616295746540356428300279384275339866565118288344631297940181681801124085193801639743505007570116927537749273222373559542450508251078696696992842513749427238728016498856172170314820296049450297835675051745911935475226600188633021961415159151449379681111715083684648505734275527217659581416387336286720210856424935825915669528232502406879759925270390918902016804805705042791110927105911538555741997348672021738863683119574950622676100722884369259781660141776359883801274881152579408926901037929940477503617852762238210786598749720608289971735539613933773430951593316473068474217353452448894882975078380193454375869515200687988070523483035478352829928737644827004745347243200971859567048532985886895956115697347830795350251578807247236668301028526200401363205757847991890592814732920911957650485907807885975750092672777469202893924553024000446714708007608985016046358892596355047503765337120924533624166332968479531245350838067995078658319310172246225828586779677016509039386913200991709804160603115018070937698876167430591010259600342705659661982258446153781119636670876399739990106660135839500877229676275077429395749522968630871213514620800087411893874965376985502673133846973157022402765371989782515655767871698545064602012676216134316670849858201660211810846982983104650807434541590250402165465263392970956532074556396585485303434126988230585021713477561975640049788222200929170488516953169365420440157002954515993921073221359690635550146909050731194891839521358124528547907254700922823456502030905782202705186741052358838910173412874923554819663014504881982487428943318661260344750283995631494256624455349138640425688281671647223924085116991532906184107836896384315634094839281928617835973025071752294606329460770626972244531004457838909754147258599471275679313482870864823469694421620461546684078799201639432994719711200430034415248948846842514854314888946457130412853245632283282997805353454811308155427234499259241387302866194795138130680956813757126244083083964078122214631653863761788611797523389870373979928567584436469620069273875872121882917953471673494426836349955942929287857944748694839732182173169497616072145230890039926772117113591952613539970988011166666168593695535093508575431443291123280427422238787763155708847531735001313703728558246525740786885406236505749099567006213296736101815260562022864577206375745690247836563483881255077804089486311972696644631291360120318331637093879144638442459875452036414369777347991844627153106461387601314847564138838707652470723299307110634942454172120282300412754802487491774255316672698456084666328098349698748352924837696654975080099840505459382367691652682833201192716102347443478220739360451384864674081932524115518558256900442833222013995399237441242884250766891288763129336562422342070803223852010755492538377931395884371310326444354358882353439611178394002284287566441532431445405176918226402499152411203906229643254343095123530780511047589826453159782689580869293047108611392476741227093427498801280877100053471962395442482835483882064827782474417022392010808891043381818979427612507475082278706813917113190290854256251073385496686178298143187025060069315902478601660545004114907774725388133539294770169344912214950124269216082045390655684501684168068926379708455145552476960233335091608293817319429546266059699584194392130675526716640787174807811560204648676427171406674236339602323421293356678770948473268224781881319209921471897473870684044842766793036860211094959652806077048427629144380769939655861562564510550414702189545133152912485334591177989728083544388182467198614960608143688375774727260734157672204932418616717784355402153781571403162956277315847724923564084363740457548550573832885700963955520339366172875552047182827287045567140039384222673482576608392603223481535885048227224310142134204823411150911758032866690853132970394158055205475052032136865844775838301354430842111533296155759738797570438604950422788118419217328837951802395991107465906376854186850347431550419920708810547486994766486115119493285081097286744603260813446700314421944144104902601311208992757879471968732844371146972946348016388040860844832971381325021276662499690701011242502241445870681440536785608102290972924082868083398325843402948324498565135731943357455085838825957330518968487142413052599263989183330755037170451725336193582807747275685101518966372224389459262312937258686224642758092509128480170191202705202495841275813093982733256032972870211484066893695394033055027295496142715214235038585086867117844816437380684058922949478653115079119763043311658926107919209815964482598204270880648394326626489060785484183964674014160269356480083865356059111382469932737028565462479394140809279288763825211696454529668292494788444885475972960956839128506834277572368275917735015161425528777566084120160512849654403071725252492273790978221574395144231458317952296967839520120012842228796784580461315990914841344815105501206789514860961605255516690193794554959594231346502539245227392631269577215164341460912621026820206416518229272025460614778453561134581096401837541087335193935254833910645712801351767627557830323924709081840447195588034983626437549819495880111175417559678027204673668754048726056879166614948453921453402539426547813274593124130411665970416682553794155495503795416415632362888985434984064518386287446785452253678328547952607707486934830023120271294112097345326192512129437096664414458279941175780162445758286104403996060662851910238805889397051020043180028561752636623027507026816926131674326493467487479801898389788674806617351167935748702236998654855975463040406650461248018765386463944394860098612762684083670171034347269150516387908837158695257175833445842584977586015803548822050653170201811387546965799545597780341387191898201529625295374542269615273270415301386168333245844439503237110635727114048860799211089353160169318429543786874908359302131983170353299063801296839091431101887266658390255096272483263134004188599005099419428647822984512945594536025252644764088106480990762905847219069355328443810369689907206198887676083616130710004434771785636007927256882842719051540417011824260103975387156608092606009364383852903704261098004003072726433702968992679007278405077288121327039491614810763928617066171645247791671099971221028965032857006496725043430939675728491642161745305716551299240439362085814360278042047715409646745661897758226134255942643380967563651108850895484197797539857767470780114257746105423571044387141374137985924406808165982551931705330445904842952399218238220196487497557829291565395737118477493849073759421726378681166768745643770506210023523926840399826232927107417857913058852149481586296267501553247691492365014715511317372436267609398697573465292157224000945202107007691023947386930334592920140062084787265372655667501608586763758399247760586301613727872461246822390429257587305719424355074390809026771444682550151576111287001866984440014099382588371408817844913677199372416457754429223137511448789419873925117460219198130144786215310556920105318226020426014106894673098578985437696348654472646089106087998522958175843289113882688850868646928611923439393890820383541091047178076121354740030351597489363849896437379486865828827751738660841691412774015290570075322755688397223596567471650668480543125125433162212254626132168765454323075933676252477444428848744831511281204372683291403987190458391956300477809606783430113240099726527300440993614736108024397810045452596625192840019804479765312340253580841764887405096432173108193030237161801943945109447253599922523518858762190993760456340062526306398986169136240793791456074332267015672310856470446433288793553698657098787200234452025078178985095895535162707894810730973435807556730283414455278057033011004271143355608020272535899557883319727340630606340386797918217276070599565776247978439411472628735165116057433165416716291609542009462061259902657144615073736100297626573571254839993334280647743038423358283374349674855838705943597423914040960039608665048832231462083313493589838838751404173478006868610395726324915083284684926753804584705501395517549175684769427431486306922471332030152263749696163016080996284071058494747777113705115482818352124983238261957732376011854933746233512545281821798070208300443604446932628709563315413494552312115692049021698021375163156238181966372910862185096224258505333567150029386439541805055971997276493321189515569522215080703215690802551376870388106691464621900080095975858156711919509229853831095390729547146229356364783885621399343278352579372823602400109757577978409267059762005110379117073901091190944792974126213376486972359128271150126732371950422284346261546576123309209748394039406105849496865976015682611820528187966862180544198008811277896006298595247526919107411802572854826285369163132719908487479374996119852185329743247378863212266429718534154678984764201645810587491406194661961973895373085190031145873923961530537334339538659984869515388255394297586365327066320285143515971072926906872693476490733451620780995736579310005469728795116027567456392964467461311466943084679537398317260089142285252095213514974105922412219543458213492981941346100203519244296271207521550555180020628216243639615183965799791136457406560071100700096121965012017702097044803942752880047172718311018147756357486499100308441166120734309455882689350813602753271309903970675705638268640787546894335059358138507374941030775059484387935872576913042990047359923483627888475589704071939164036501082116714188106291807267850208681871398162554671290046257047213524550095973036971358625921194123656296605629669909831017182993949595131770122945413204580555261927074846890977431130005865915762992110637168588533932160374410629876380233489858763378216863169509318166741849361035585970085077559665715211081303074810960367142822949672618393054060461639516182512041882002088691679427922550955807466594631023494506713662651251314157334180607225335647386180277394452344329639318889633804557151726103408155802263556804935375854668696983736973075349147427713632836253083837827941614426916204524813253542173222778126485597387848520744020876400196146563852374701698546473680468996294123257780566901796273612154488637718430016748388471194758080687205916818053074252824456743236716765702790928331204992386691156949588305901703660772037586049488556245086829725091715123864383533221335808036058735127248249359566930636603202392972470392277308149399391899779548659085482423739197572600698508631088419644932129237873548705888295737240388859553326112660699106476678385820978480736738915326773666655909782358190222206311989195998657754770362049454983555532288761251636663477296401830615966446385128243068645537570822397790437979256918937897868952405930595159095284114836531590768464971417340422915449401926219502498352764935311921575583349101377988877488652639475142727698782965809868967240232086541438743120458482684291082974365177865967126422712185299059645021927756800168272337988355947327393199668931096669458938144265285918785474307736850188789421749264266101679391312976795445524809582340106745653570056533579784704482900996542526568244838868743542807316411051496039570558873871800157753769997481485852507161741982434719528040601151500576874359989898434547740053372343431476317094355452403160087925838027657167557893645229385419608704123324121065809947691312196747375526555562756106251660885393988845826307833654458913563169379279640865510123027896689103415349760337863449225743389426902058469114531272901317834446381811768123096004765042560254150342374140780135089046268784511033634549346642585854303946107638432878454022617242183010001072107893789900410720222393756190127223045802155270673635973295784722553930586491179977795577555057531793301122937477656869693796079592695955074203291166976448978562879051643292884044477051780021119329398792420500998809127328922058065008256424361587839142919362091640165468135685503099251525629480696240553374660010209911204876573468298497171762135557362650900735897905993304431505582002232919386568947404206017322410752670507351741723041130125887310219189837822096943571537867463679011486975013674416320794406190485638179993200637263066756563253161241727557601911771983081756438060920457749678748275555927567881705755742316914988101967137850300758575939610131199038776711776881114104869950810691822238054794128273535107971993193458392292925515643184077401605198419584035497163597621400139975965811240892769788047450978846862003978688474369938667154953837569031838449089093517293220317483428757600540210572561050308310677466716871511801311521667682095678639168612240617517966880786158452975643710822445499939076147076406250225045966980849097052441291018892825881013613375366728159265399345896557548809814276877741281351079722375856483773550690036349950181923298594746186848331896942080612300699620635067865192734286020797146697636604455473797126647358556324024719727740872959057233211918171500303209152330400996805745899620794520897486374223683239547318285235908969289481920594886775550207351201367845487208932915776735607905972332765736347360156862733255666461816035742514038284320013345312198486939163850175590639928062260867179015576266020622673345646506366717129375666965594951249889875541965925137450471220490941018605320989959442202911758208631855505902894447100225395373951020042398383367851787974789368317575156771777826006433978174449961890952495991233477567957959750936305088945095480173982543742417220990038482195378442200985374538240301967486833355161019004631295206871310668750552389168866727843085895023084008361967391838215764302781235165742225898532458540081654577101955215398173338040946116183498309317587358632902698914942079100230800905140286376269651056241780463262741029049129957324969699228426785145488656968211247902249060337061048196888570024061970055624877769426446514063808403208079332558597770027424629058147662152367088244956025307075409265797333566513842538907446222056088549911147980840483885624761855226713491256847059365807686612772545011522134137466902715691072732029396046197090331477944813544426750384999216769661208295203053337455965413090415645126454881351518903262847533992980208307055695807945724683835506449942523734047420402539175066821695051386641286004901380851904390723686556079286069110438126707248853324620951766399914442232748566905296357406080622163300582416149196992892817261215199685750765406020651475752751032588074703685840949986778912611299325530736353727056751757502214707170074987491778893727935930953659676687168984898809710138702582004088483019417318317506224583515630281713383232234352211241187534761042120506164659233114150371085608986625998405912918132852591331036978304059902367043517729763477518454168135974868631355810904371467673649341841590224365437732640493322586822051935479417391593325168815336419545289876787019721167176945791482875447722143141725735890429783289253939455661011393791653258240756493577476656270182197542950784172372575320477535950366689621020580652041192122477450559924883096930900278245080850324344648218132236083796897576348121899164708940720314673242756966340395655113782608793061832856365539107313038478788199692253190063021328444779809641863426907898080882068761154742588889412557238373582022894937198203894905216405278671783103997508722807951231991425564057807097854579846237050179419257441572535721948299025035260234342849615497411495618860702618340037501877136174842806628973612535930004272163875305860617513133045357286798804337085120724878059133978901936731186958372224799091309541889316994488303182754303898162148597396635611378269431197984598593672975294451660684166491423482271964508743033128398934054765760662987887484640282809391517077590956787354476510458963714768721977944184088631906213544547875210424449710484210670852199846038794711394728319031374475840818422589655194335042192983507290363768447413476834275060664286162831142616704603709809687082141408232188926757627905208344026272848004333083170751251904318037126481301906246375736711629002701341074030805493430519359676101386163856512654496071971644338848913474791995581480699622990130138545841968464507637177131325721198546661725483820435502436073695448508381273270924821774596611836041343996982085716514304824889877079593432690476246118907811390386572332575562803284214784073059605662125258052355123532104695479027950173591993610990846349927643049961913330827325391301289837138801840258415640822758751148005322049640021667835668992995575423819251292267810562043602503154767044575597394442430586013184981207684436301262718760310335685055595132859402652950377657936488129841315279255945732845299989784170914733336021589836095404786287624418679029449563799703562129146509539397512265987419152484154472003112380648491962969287209997114838159476077245381486592281663981927692945352715071701885378356558958083841999078304668606693914646475194361782699085769448197916158592903558348730884944136125163650621712550953846529788060521941135068812971359092456037094437165964747626171988587672436576870011435962570756696107254886789191520999391668545623052967483373869411517783958210641634767170802067448454122911864134982662214061473761271212845514443896814181914953557242843059909054316401260011608273520313388091226039745384217154587055685938889567262752595071579686502739059567001750301393994954565036139873118369737058942236832264354013726773710157339816505505872493782233636541624638739797749986431604739883650175064207782653032534683236309322730842643181311494669427524491410020514016102988079893166250080072760722472923816075074150907453291181613402155198820030028920046032629262928571359614501243421562912789016627022380446269417806447902421883524812249912339947620198542309817725838513691861448764806331242607600137767192521515043923925472906073872603523071714305294556460626367732801152179993916421410970357840945803109327509952805516396086527628904746978758992036842199239424644711675250585086095217756342950344273599636066244667851099872622321456327926315484891904260598465168519286191373920510218025506490264150763788429488656597614569714179028036413486597742134513769781280148174677954866866010201111395790313798152423964614203310569001818296412190982709993148533213775164458925188927151263176642019755786672871039910538763349343879635013154395432159296623995155290085352978541518521344931499725906700770484444988060064012112248425805731625986125454749158111041863653058901326540923909703395906898952109543253670905391355527234453354455638053496432380451616039039632241711566458640296709215684917081146827186324413946800320953192400234835183676049151930067340808501891086519393691758880184347543487701350949075219759173577741686059310877022690577687210013410038678828517543801251908572222540172997134538223174353059412814011028867637278730331161161445753690465032438310494637805828556076401623851690568332701007204109699796878186182723700654837810945575960707835758270754098356170858161979122479300705971532780449198355438593043611203507490181499426912370730985484018906229725349890474199215162946132902557534448938953918799193840861430558997618204127333069543967991461240851848523313713220945437518252637643970169890404434910468885222224438565133636275295816940296202516739367142882743523291488595939085357125890797373535044827874226317418142683586042067910920213216677503199640928011022477272397992567100909151493295574539511048315576728253775499589751802458067734933999435043335635223009613426969837922912053193004363158741391571124033047079135649926018682599018984196883457151689721208087426706210431796239625533528847559394452762929656358438402234700482884130873271607166628769787713636166206178151334522841406323129163718488605798839661858664579082862378096093968273822850366877287707138613037200913794859116158610301206022953599837386197587070501036309053198222729279760541690322643930466343495694402024382508426763459128254510831861606889456505679562012419379835884693984708726910039575520203221929759253585823591667654528151433913838312110244122626937836441491248808926165120404601984939855456896597648579304048546810485554279817188466699898283665567574436429197060773199716455376351732975063372932097018104274952464785568695687024945919883373956779737420232353722050992140984849584544358051846011637384629305942886695586017400392351304432869699477297242836647500509819418903888206181855979127077468847833829936011622323246058723804120682232768922033097074398160983470861055885874891910902962738522817665247420153162391611987527299149116283760281428587533102040843685311217602786980261686465187841089855911397934610862056516200313472281110633679717670545349104734192822089956310478778146852126077682677234341001763751554608393061610749801615474276378755602911253169834832365617124927005358015360779443746767656390808251428334246832565811768142468214106418776713653064358757163878748893588620541899938799034698739200571145557859663358658438305861020236995235825195694810592639158836072954158355419867163442680052471572754545590040347890424948922354953556700717473121610667302032196871952838774357557444480518128145425340624058935415656793230648337992424589012474466785253544545536170979650664660192810643419009074343127582200590373722361401275917862141455432704666567047357385127086237068950505746292251177068826158444876885789115131681652785657231014726514854608463521279327821216808025057807634721678182157022143126657754101616637068864751715570203999754724688963389296982505487034483247422011684347622156295530035574821431650654884482292665409990814816961428421475363275273427947752499839257848849476740207337268104478567209924132875009545914059697028054352256263738519008724355882728941810270429304743540996364472783119033988399614915449267176059851671739123703306004246872450906923523989867863882011341543450089309816177224565892053323068139513388116994591600609098563940146144394385624935903399964044657071572711930965754524417744940802853289867557341194945754112888983406757250968327859142946372648095489823743762786346437682361861334504490457386877804430251919167284267522821455133761774844284652864123459580256116778377344941600894821917724567228414283994408471163572006786784012770891256430642360409727666902679659030400779295733057839344522542606304706167305627259684116388629132991374217339853675637254118919890697871277944945145571263928353539687620827057201620726919509301940641734131712452388786035314977626707799023915233922613350898998249442458189216409801382898372501402141504566409342902355332543891909265821322407811937396948145030712029434289868855032863894577864774245258295567198041895458763492504957099954061942064704315398050068818662264481484523562771255714365267881324145574061388194159852699095108774046336915490720295060910195306028254262675079610021756373528177755341017607766944305888324021920445212368162073505586668105286755583545643624275304271557034604127284537077578860795144048418112984675062582164962360879610056852304853791987595335933339594440659498955594424867223991087843691474424972228959963371196664215756012422498286414559289576977082501547957808779693446982364404802082073110807859402802813274392587163192144753168835392356518359857041252139329017747971962556900466956841405253384020915786787029711531088918755573764148194540842315356601134144222130753874427887000309007440394714902815264820177826806711174671546513010291604144885254210988187788441450200089100221420770170593174783371110938684039852297034897137042790547498385321776638381106142876923332351054651966241258181730438573261647042292742393231789297884922671447164436962896377958753672071778145887032865049605478985431459093880632473076317454702759510720951339459683718447897922715147466874637793923409543274805247121415536179406430312744350645667927569094153897610658575573435630930604047848404167761778019181682023580085797327758442187241709858960401610522436121656380801961139190610773001436722314506698771666608373953610838046477433872380465845378555751142235498395785721256584219893300017484828807815844394868799543526959048882420132508686645081392113381256314598053056721573407165825926196483167969324230812518780762448150375987217247740980211818397840481612882006539833617745627556235049301515126769673676143818257703604581125403572051905043554967370575330597800936182986591229237159667089524369527790780067761713241055554723996334972922507188292085369692624495133432215408826739423953113893552842155010726553704212386223708062993161709034404751048128968893755926091245937273316761555149281815340694663817577902855246334674592580458364625112629438777476987197982735327157571377052452955566909381931693202987036015194200187010690413204639719373725189064214355868676847621483317812233673124631196429728649261843071298694276709188888149236309643444686576216617456520842857719632694685782380944886343676557978748251390407027924303029605296247878585733317564620515809623352241296088761744121650095355235461543847258731836437990309455224688589708242466741177477795038883164098736837118514553067621283478332763165200600871382304966576453551143692431228478918163536226671580095547799135932028407286021051384020355729961112645722904231995352367717603920038494310779702016722497300429748658654974521289940458076743235094726335507194193345662302867167828369113596849548215921224093761987188505741067671368377651659110224058371165138151721809539909721408663596497698881409983707306109661149640763220839793899003919100839797415309263103551014826926896241833982502355882661613004696317787380437051847334286267946946254320271887686882097333696297612908828122139086028361124910077177360351024173635202586503705321074203967164410607611032000687063374397945109092400524680130815354483783812485056485675177264502719227179254676912983477032216134261970911711323806748288029784104526401856898035595553086587428650539762258598035364126549088887988716126143700900125232016208226021333645769090006110221905270031115872840607522974582574101012459867052166749916616637630287819579309405786698284651161115820913633988219622185939465489051345742334489765856300099383489070618315657317896811921013782947727916972392652788791965430289557080824988364168814806100439334692721611948325505683744341819054714968766629962451013800616757897637364386448538654795939900015392146131417334869097580407921204549659325983985982189596633792943314090081901051179051003366237891906652808858317199526012031427344133205051267738116406577369721374366057276255275027701310986359203519062948390543638837386903931018955610895232258909321631318779366589481383700204841097414081402123632215596051473123101691738779214179225525012172754053795776455124706968155570529492554386701388625733705075566156489790585998394067687882293257841263364446633059209821826631353264800171768565271491788330204538354040104107670881524225764809929783268969434955795016042485538821280674302962989534982008270757665681147118341778155775763300981990141136211609980436744244144677045874628186927628319094612122157389222316953855815407598207600988827649044718697969409645921555152158064598925398293026042954862737979546126126050529652610316662268380760101771216426200770617429513696673844280318061316980697321684926094448850694319373765044794552895805112150403539987508730906512044283342683705511910144618392071585310236310949217498360914820959760673862624820929857760894921228538516817560640081473429262297204132082502404740475540594231027814518440788894879491106530464474797777613950059599184517260170207525001595055796897330368846316738616277618176761056577792155186798492051626800017722779834314536335754587227231675881101905905127194572507535759213858205607915442076582952790654066650407881636688712794359147283865566535498020600521540537683446378298402062184539469489878371025332272945050908778002253405935843697743317139945415153166484437454118053545203794056599459785084839874203101681618454512933136927500948412259498738448716980721474781887318658029658933713799788249433225222473467791990920389275217538311167860048414908766426743296984713581134316257844028648285310437669944298745163384444786119259089427429190305704238439653993922774898020388038128340829373471275945879013090392463577315166272968019359413967867780942441713116171499006652556670358430669305669718041619847027718607140556462089326881003478873446213001823376395751788556948118177400489773279919581919660200981773709747742052135566712424736740730559576154582173427413643988143099089193451164874614229400880992880472029140074670332433259788168449651313959340573288819239503908412144140191439771462950218458180339538602331983789459293540267271769160332575207053615931536913575300303201183178590937266624440797873506913546767270001571501348053319310434656687339140441123249375268538318337458695217391146268938595874254874126266008404655912264662617404978275081962263461355734100370542784496741431281998002009215735861413072739584431385646153007027560949842397509884066508306322416362954056246545223875816987193632030659385074084745857305071229190556263543983877279528804101615276510441829820031858526026031437046304955722724684333933843243491231676661414738028576511249098007092690637842886501519735638528951668676019805922690843593834316386427088439717701621287730417130403813741132891098040381084181815545180501487901482285111281480545835801863065206309717711572334356086923515915447054303783671177724691360116854612074476596743954326339143676255330766404334386057702301837121571372498194802220612005585956719550288362765259933611372663692125739501263973870226542303790254729760555147282799605941213520691193265364015681134023791837752059816776451502275279547774907026153845611744428848448620403397872672453404395617553304278489869124812183318768992288282389885586710644341242153998193240826556013769401804760434146079955499956023742789434210863299810712320480327968145662949381755006728726388075924496716639560519569961915471479338303400467414531140287842631680406554983953539976248238120281909158252376911922559091978616409356175523173698199880843081506715227473440231375318620571876379598074753287987635638069803046701864869800210084269460384790664597214939942021899776758862508052510824284620016375476104433494853241381256028487163915221138600056971426929944925614726541883340919467055097455242464163197463259900621177248559987608077470815138246514937105640927336442094271831277900812658322747203706839247633352046054812224644325077236762816980050601248156329423603019867890499598019351265073672760887018237361371103584384219973810425160435926586593676625400261222426303972911809242869914001000854095717731902131494672105267262463566717807419836341597987178702048959966055740185012864286583392914178198941508076877954366674197433798908058411160741945961832712718259799501772717611944890618820908273817199092675205525337797524238092703032648065372023503380390514734686169990166428728410397034582791429566892207605065935432256861796785974378704537774656448985410659383483367470997115324501098640072085704930409789747186913886156272202672608488361887382867853070165369888416087489994132090374316331151704601101915838681288936182010729851471921004483094795195408208756412909869002350992092332330163566180984383802781121389538478775751122174772951851194643984878985579794815528317336817250481951784183124464444487515813016967674542554839402283784922366363486103457532765857115125757318709864480664976600994605517829042816641099216898872440357716967261576581611841979693750085812184382341479417077387762170996620256997907189326068736639544258500292534544710129344892078474659711707592304997591876917030798062319140344895108171885402233032408707962921616435656406363258521559297540294815488805861934615251819994587945936861009608980679755914458579024637312076305939454931410674634259286015969423908719979912162609063555972147957648973744038597943099978891975341891613476270954959437440093333105055428309938457270996765623823799638309311283687767591481516235940353343773783800551006153408908570399003580535429342494284078991067942126129997179658688544745838947309603059078050268459843863397414552667495232333412193625553018358305841940724996317446475753263647284158999138111301182311292100722111266487887152012827135415064141815826688721700052485203696270451490526995357222786275132671172374117637085176365074610223205889353142215649978701719883280112816449528711448444496341883014938888805475206333131496102440637290520492973517484580182098192715907732131223685929183736563943368599534158972271256681703830352097786402634751966732657372629708632857248252045070750318528611319623558765738491354362353402593531795018562608204129474244779386832030841909520493347126175280564210534423941825051444421596012303904577769218677753634517212129574989680184973018023736554544080597048115583694405422600236026719268037620425783138165014888365949613301494709111672856864784410444238002225285405015707565292138970623375054225155120579114051242145055139727837456497031021937114183921138785700074342386140590812378137649137536206790394268468998346076984811513677442968525954481116455736084211242109183080786544383790082374356332382002334114415740577171330360339174821462314830816575919285668591396177506632369766818435796984608060938916185616308662969054701493207125508008444561745324802375866416362965220630974235760439328841300380656824800255204549573390171417622332599786204006010614087445334307782748080782337037596294849252307713078475830764681953461341391399478178662141595590073881289806861664590659126887709526056477695404307790280335833102701181050991459828190301457140837079787235329412043642160004617853150732919834600772032172549420797835759608257681134716138625033492065854391744576596202281096202264648616329097118258762797971366889131343414984054150066353932076350332641944245060047949139257456620088251337998150424181684328397407306725326811189693920443889032771140088058301819727507093493425534890055421253036540319949518760689325562294885908935502385281247407503043243242930773799904195241950892854579594920194433172185794422529349442931940816454218744516140223092201875393942713215024053975038089325100837199417491740613098580137541095113147756258938433085568142333096929441130135573749732374794049568015449171117246314984150588241827975989893189589865300645146760718336673871702807011333128263159360811103606714115636700116319206962091520976937504711030565896923026149396380429846332152962684080955767801443886231396797612458564995708422569682895462896119018253545855193442698179857852656521143639715091321103943227406829812289362907496376649232076989065876268816762490326138773622742458419886904517765792791691618732941356484636137247724370459712900402677997475863729902215205663187255476477007652730888942994606005520384700885925834627706314618912703407755765735557591353941905771046658765416409390485178856778730590390127287394945554618794019791129868255561257767597336824265024781805391829102373084910486562401435542397772137398761594966122445096159992757838932485571264630515449156775900078327438939571237583977463024731125736498613921717818193050531517778498081721805395506409072425269535059542402922652968777438175095174357220868661270752563987723949232205140018196158223329760894497049916644501040865869761216949203570996120275132487107113399555172476425174035669333350384574360821509135406084405863947636833700602806543975650032812624322133382030068145240374492362955335922451412316811454463292290398653245342290338300807312322241961333134019469468186349916199778723869355764943177316978158750843784236581018140106690542508689875316840603469883785044325631937219623703118626833373553729902368790470689878429125707806437628927897498850811879535723404211755815054103802249035451066861150705548422332220449084953865848452499464616591766053606472218793362658799778457580218118425230444061998391263412817893273400324762760270599879338938152953757467351269232702037429727909908833899186346375046336988836729549101027976519090553520737770080264137162765569493635802159392889540430111501873186400371304317764196081572334231035226282792987690344391947063733318653174935426691605939884282976030736663896511389733776592500445482130767571057987939575049250054616677397474094168972899976991966029461680247207698703594615006031611564067958563278043193613636655084697013081627790571574638218349493895017344996262579285517180391265446861143025284540599457597698001333692468894081815609709867784160369789003621415505424756010931421925711874082513407458324714858808559293807904744615774106873566512153648297808390152948993324813191199943424417540803364635067376099450562204950302630625613418975981208225994457899427618467472957017815749329636291180640796217520061435980081071165856514328989199404432362235832544308165172245203725914453708608635029769111939699300559032752490527574081450279396275925612645931518576977636598502887909575123590647109458698785920645221385157055242379377336521672218098482635391263599303075958425530095649965536168520648630015139644845043157860447184096615883947927412350266356049746826194141875230766756172135483631519472471371346128371805055002591847815006012490652479408400802662527667034523593967662146564019738026072263962878333447699397124852237581230597544189057937340999978498994358931934241863255914285926139936793821923490090190820962854820628937467856400415386555997840657090678383199317151862121421581041626727100113426297761957031034888972054815922221072062427890092863975525737971688849408414850643150120539291027647856989281230896876908169718600208066660349067296450329499604361050681230286812850589278690717798509848845216149864298151539371065348777810266717260911387774030909550588359207293024009001160323433297686653501099274526848631402416078115876399034073908285886487775115233967994159055814838263302776183813102716462170354897494975044986593105349690427030884846927097507166738914315673808477880582292008332391271357948334175843286078953045188784470276940739488538300357794859993004794238357661265477633469154882161035766095173987647041543635952282709902412905584558770962315896180055489367546232383918030614039811770418954347797952658829311632663713905343748248074759025309365765498496551515968346777921190448257130371599706423861406366687380037354991622120995533554921757673456512097720389869962387353472758794918617429901895098855774913739277753453714903920332008781453873313611944877212612515630378667390218287069085624222088321151456910047095819569501023728737099796644991864435849969900069652243985320281414263761646012878753033286049542572143654457689578796408258017946983385218804860534142395151506233628290613168375245238139507357171296878744884622800092827640027154787285537803412465195440656495252966315998704164001405916838338250214516002194997873957983659290627933095130020619826097287712680478478052501190333235190469334009361392361349647222914380700409204291110918613587439555857564964572751589566812984723897886307344429631101928452767429781242546698639403730222614160372286757177379885609754536022309625912880264023813624759445571651539471980222157212950890701940464063241232906492311856949862242901367004763110916718025342183153401560479535594652195087577547182496793389463649651686502430055222772319444376527579621436399869428396843328147149475263934820580479691214775936473435357693741665135976282874893815682981344593233578667722862320108784071459260541233954980527421230364694579658766886719978688296865224657680315681718112814743560086886608267836810145652141846016644039023071855825083210212035320255925197547813261827190188448901999579311322528532828929098030667183568639506803819227133400009575082418037469217641767872221211339578395379123138605586603285531224800281180440897970919641498799838142137489029953269585874492796849997593351743350074233970140424461515145906199453536039193635967766022921421129149994099490431219797897458939349212443240233357806407661782920165421553349358679830516904066172975629180204163389202903547832119840931821548308177590383434247353729440109408589145048916493117122470542290117596065294555535660465630545773918880355868570004181998161248881336905153697991987960211049121120999190858368011785521323745630610819535757303560092244847752789223278945176920841289511407847099758674002792952810621954106333105899518342749154283437739774870440445845561908835726097781672456060536289046006791632577817521340801787180408140679977270642063362944025214689423962983743729903665724836594643262854290408335031835061129018571162911987882957192958515775353976215390166165481972928818831208200593226345724561182908769641665004493835474341736043590397422160077008852295879447920739679985417795908199663887285692569143905971264814787555144923749428197726944049361471931879473599446527984522099352777287711339893064457917959652994667676186569723411391451331923665461798426307621882633891149842126942074184060558583962963250700421052520145867219358846623627661011700847807241452368139838001760517134531244835351867294533276918821593107495113300589479811432669784939663961731497023490281902686682233140239953496348011542200523208754468416629570412578177315957499758723532747887239551476371970733415301450942778117288529479301441812332973168560409499803678366800547170470775725606711566067625962637509070188947297442254181743692649114582150122775379408063932811575380231908849189907982381938909085902929869303454290602912422942497685409225090609606977250437500287996356497271759728177702251578375040569734946870416497093847546973919476356229675686696304283579009471938781228136086185523755351853282145161623825178186139233009376742755780951181051627928538802938057669138026108757813708361683549754460120207566503023756911477413204951858436717341641815556092118672967304266757238570986082327478869336767626631693188798971229369542411968687619285405112136534295661696507398929910260254582539812935677846822362601145109698778845147745161664414021315716326982779844004577748388600501910567758019721352329040006680150845826913650480599024067144560130518281515151435431395144847208395683327569128231857047095956412626530693854274806863123963428203422280970758479640018048290684914097432696346774820779724370991765860315934957082585744193753851658654429810652481115226046068794007425632652164514279212767290628934358470402719858465501949328577770990153501779592659771924075810645509078177708859883668050760930956314950285346359634596334777756125477178575400135556338735756121072619654132070769830927610171032141827036020215246021774106440496757847395383275279149538150172051913678886712129421416488489945943136499367054488699754605596723350879716918847674221607191682375292564123908299085017747480446093679135638082459309587611190747416983370318472703003611178285327944219658317066715632550857668661600202385283721076919766774258115692639009500734304420623692201798870552632170231808391743745047882682202690328373674259126791923241317173647334998008034244769702762869425275131616328693534000977340003621794563276162211600372759071866871177420831370020070473953031177223025419356050185542506780649207988966387081882921277250267952000152049463462937801786695118528904095068745089981510832681694461659926791051421424096249328535199314785074926448401708440126010330687235307877988681271067568358725238468579894449821205871212757695510670883184524751277475516645694764363955238016554837459739621756631311970487872118633072071832283539636224388324607551984244658969151494586641614835823040634337080745998383980515891495258328371572386906712687146125514667867902098430710376905870854338090578763100649698639181828400004037976191989937014741108784819026457387896327250914589710592135799657682450478801637624593703806115317442025004602112284309970411109101794077546599000896871877541331552985158176426029344511401464475019011502928895730573168899720926718633534409987547958867290475997133807744844161570635045695584418566140586806448383462510651884766316731100238256369748850284247621794799091497286299599492639212473561710983418101137818727413016595953329266138151123273785115245369462424970798663281769417290738246947092801941862284293929733268528084232444355215884004310232971109335615122140671322261870678768110678224917088269391989934602543057272219946969156486902033559546644268517426187722425987770755462886078297706976207172744805629864629843285668587446724323660439912694892629183170008077084349901736607125238252598557359598846026155592126120052143809071136132391480332986932397137296936917960813327455282064425039475050532300867565595514522988961678467649052517062469002784459524068132607221494058844943861556281274558103976481480707788807444225868246903404790899110776888451099388794261958574346356967571328950906498879555935959609508479385259919006457252286436282133746827864750063458152774734472226262489706624821045926561267964680365180007814446858523069303048155348346837206174383890097867130367170954092508326663383870573284810379579310464342376274921021806862236759032621662606631854212214954755686062959872589258014352489477713349574589494699669504195306714239206845646525650686059414666647455797629870053417065480520075882528277366554502248668543421682091291982235004670703120594817311859148510888728609399670269427385365750057711425218588317582806606054382268929475631668634502466324005263816277091220488207390431256514281943975674105792374951942771660385563257921288913170367479188383168702770337580263516715832338884513100695026892002252283348018263683517230595173519966695056338825306825173682681815395004212260958991461273941952147809948064672198908315581445393587478614322364769501802091584997354117290061687901119075679989653465118687128607446524658130079914360173155100691343418169237355414762684389309888123079648891565474494868169531203588824784270876576287176066573528718718383484835585832536095875129841353857170742314139389077785678266089000760887206953453006482034099288680184225119040908103757206582244618687890854916851549940688423051172014806991670131525748779259747474970047943003395565899366110974719750906321890013007810409538925748360363854017226956107349954990786145767505268053224324597548458460770307581850721746649513937700294945453257078522213851831117898773734888171690554397208866167285410077350968558450554779574177527048908302032425171876470110307991083530741187992139313083185620394336134772340303551078049282566662652591389187822748489294578417811759985695995260901762984600876328338807841253254931580389109640580022323122751779002732631768619249452468406443416068205124809369680251048765266873129956282797993209201955170014528340058973037341513348405912514877892452051991655620764102806524751601063330504908410271614362782473953083287509673422482252736434785762112625684257748903247410842804610410895514574520630415940115761995054788939328040981243106310631808553084214271132543671161614603125660520038729483243638388320729300687570480210173040439119323583533585282792324655770248133070818419612309356160561170733805781770880959561495227598917565105910041835238966785811779316206950117284690268292198847021676356722655726995428488064447303419180733317813109881761569495444983146813167688648420889534438661729859744937005205084214292804649268798114452214042396919998829631773120430455393197122616824263859203394748072672367571876670828072477480656439748026669242926790304891658921648334196959111278664874506380482650640231957404795225671908467538402681827497551946419485445770864321905841236133384464310265587241805094189408587876443379410924242918525715619877658740239805595265751704254532902178630092582594754378356698495958212986179175151154886516557361828403718256667703652098836997646090892327313970322881288604532747088597938634248434863740326498112585828586600319848322651804598526624663512616530057533906190786427780668552388363244291114895481649545486510633829405203220812131965168602134386335929986159798527067990667354001318627653359515965081429058616421066607817539181982518888852825438167960732578940984848743887024238260655933678555427970703055783172208533448211553542554228419833154953286104947977925762974491774622193463684636983954305140309931424297218030183733011574279818213323722958763701099724979546702005888591839547463300566282825774182397066184340404157138740419891852658724039213047453816956417826328073942953601063658349839188774176267509362861636282617791409334769837432051247863881402286383515314555572128646050864775590437700094743483298293479763792287023559353030670368702916002131614225027614021668958099251895980634414458149546883415611069638327661225037678258269852592061700379226257972582277405731482316101109325522659088525234659734391912606259586505623855736321153532849533487969576564706546284970486738637261361745943962875256045074420180513484120255088301005650590334563273696285652174081485501753503867942132281726319941292401847463006262956482198382984918905438480459057864065032850292379545933964246014667713625689701012464047509920496031321542828477331216840522541871923263678509184215363369599462494593507512179629990766826488978385156197072557005020204790382332339603866572227420822079226195773806300053349415448269278018363269951406039747203185865750867998419545069958771693186984532519467398825106856163778579460681236619948736791957465373435232796610336905857937002378635461910628993048837445734977341641809668365781772547870370405900692467432199357544598634416754751539845345921357504790202758343823237655505783481300023758029184112969235783156145539413328448733943571878754325127605157916079084548506894622232497228071810211944260768039902456878428014083347947381980598380198239985733746051630230954560439528251214396015533738554454998364765735860382007901227313347595412707389995335748575107295332167641452906511846501636081147611708588807951140746438257681717997916559206305154337116195396522034419106593647932060825635361933793356122066887121335207085903244858412585684648535737115008353578843046292004630599789326281218634153307448839500751777839259407771096259287019840989159129083388070618550578348734037574214605756872009646966023636232610840986839936219695447613688203611380729646402780674324204479079335312984908044179664557298526704421537009318943526733358023749686618249210662043086947044267219758879748229127782049810346380072418786707551629955967241267561821871991877435748627659233129707903989497344480944177214049903131473907320864725581372702484532027269218452843812887109632465092119614049919641898295753555880847801568023392406457600482819493130541927763913078194397690511776504229728524298400482985325412295148827263687248350198898160342353596490187006738765306911681221847748663641280721336056514900333644017753997765605964708860471196255602484490973561591347876612755378417481304199788958889423076550744350752689689683327281850486079333096727337973164828920417477754087482575500366597295283428463753716035156728566616024917368393289938927175467968264307680583467705525474879749842360404661633673392990988205977960679190218192786830727172313102559076628643358658701075942118486459600777510574867252902505379017813308362129790859171986357553479503812502604527816085168704002054019867284046543599266067078363120437507464280267942012358881273790535791777349315717392738848307841236023956988525213279087502415289826852692400614668366867987847353323193043452162271178758712601939634041106457700406272844684943745585570911932500644487615015588605857689987337453235751432148367652893917681364903394197426703316935213379838437583497770785107955873608598454298257706561344829288752450794350538286953524193047902580643698723180265689779712225007043514996450889751062572656400582364797811029841100501581803166170685165153138966677367514639965138651758751978515376363867880466704983536307884799572739995563777449068637480079783253132054244354806072571768343147666008751724044775640691671318465793626797951846876988605505228963303915238012208534285528599131909262145710737022519481120478565372337643425918826774681033874859706068481902950559102224490726550661304439247282126485795175083238592556535358966999348533142731901009013044378614615220046978144606214623224172006973106688146515244150510056093684473486026075118381917831117363510094200684025890439150984595807191631248436490720848579035245582645587117997437585395434540932665465576320241923232114724775460022698623722547512807463476980192483399140567363907656379896159487870056026061201156517373664727762373094220002884875192712822091883278081711884044394981091887812522826868144019932426396905136920526792783055411305262962457658193421022099059089423145920895589071168241716014757001366574165336776512800793814039564087550039690833234144999683742862401575677796622692680757395102191374797495933526458564029305175124999965084317781975489545253512372996186987249033558455278325348901391344533866330824499021998601101591378885704041679934553222885761213566049496993820743281537658621526343994096248537952944526654344528439255087481549179323664752805190568783374324455683482924751567442540880199800339609493606902174108030673354271045256188762370508723329707477779816558485018009873195001753059989680788880908003435557778979642366570125364268928473352439166510804353259083497892815867006092901761607488864000310295139475220174859216871917679487912121942951693170047760870157275236136262578472742295192301518127903859548064637198293575454181612611759254814025485709056783104453637000397226357007935572454854414035147091207043740160129985498604630078063914844800052831994744104119965972722479995376592580119711792682199750278953819148501617500930954131236308470141059005111716819739773460740633936462488041387518552771013498819730585993080545722258463365672751939963506604804615466221415103912225804301166997609909796242834682785098357378480083452945047553219282076418665952582802798451390954636023016107590653660032167904755571164544741289516305639538724230943136071141097430631645336656843742979411437902027104351071823057920578058282526500584083290468718801803545295826048805316534711458373760295000959369456743532120500843297119895925120460508836568987501419336969969169292000137526385204364532545531789604207014230670191876799732878666228271292060776267000420302374399280477195661787003777029932671982303641781949738744838787389278294114235529128497935848336886455517602107404864404675536901481524934943721914546525066298197088711273251376639876035818293075312306830079034548259433364582942569787924916736465272796126145238639749492784163544937293647297075357417426329945362370789335908771371728779096206861608561074136829023069246227529882009192281667747598778365505151675054199602907862875175830719612780370809049258932630269285716241390936052323942358615250541990567764024116158929891502401972471435582381951413632244359135628897340891710164654703570815728107360127667918598577923541637161966878540598630391977216719406310775430707111482433095202630684734106666207342172905572943931282444260846557534024970821378101478926618000019757370627894693852661161089764004745998147303528710266960216836815503332318916930423031105416592284415041380132276484833622386952923739491914280811986492716939320944380970788564088793354761532698856825171625167863806012823283714568957936008623430231124493834539521520140108983095021344303536492100715075287685821047319111967440985524016249193860985808654617010045485306836514525992052431859717040765947906975319945308322091510568353722675962981702479773639343491696679039006845072137749766824580853254677391646842274674706800594676033807153620563456539841241687035544626672954922101069216503661048228341137803045976357936014062863732803550087230364238189882345938112420363362382405299439202384021776643843816022877509269617193588866141831412930793572540891941552214828002421086405962280369210465348310971921906468474142526025200768862734455736676863827630563794970428923599009404635994437595569174244110751765659050330614588748202908826905714694247787023808519191130569189209687921409022266439718671094625099148096303394528196760932439144712899256245417527030916875302579287711246223073980457672905651056238765530104579992532127905025419474073858288669229762990786091861727648707906468136452579418044630802596407559102312640361303853993825814196993453521262452427930169405300624476079929107090287521070381540620175758973300823398574558101575811567798012673291523260386077669257808071328754638842558109886741424388622513645805394601132415664747703944853248435718493367600628139287736445024852848549893445654151033754061925134091363199773568263502386453831416100919135995650289007102703657876979597329382549881483397410725758124158318986160478071498118881233379921233252460639358494940605801107277705717243373292675990207443453686227990135613086545845082936581193848478123759418114945763445305307632453872013659341905546204031756144526184170022475380320207147215375602844792341262368623630716415555519278698628523212497062656934775846684167357156510749442407097317175799548123294871841027460322653046451448224672480493581601987808703487963928342278230511399511075137948911652361430932125277661927263346956572068116858801885035295929806850109909546063909192999353577202174394337404622369583587244427121326218205807763300381376155007318699920306718961437658991635430558686265731684729260816228427992156676225851466329086359070901921582245450076020164355386207933945477879566804865892108859821299474100855262616279178007583510432205847427943009816780354044551407617864611852976502323980871078909841865302347426295000077072283747127923249307509413634988797246696159060641532331716387181496140706207613952235683455265982469569839608774977993015115014571499365791440409616982204562514084815110824688084960803492039705541129655862472263131093248152027061564580631256793129315555768457744457889476219759340787063442863713339148651992282025715771702936990540315534772499352660212885983844676867915296756987748717730481810902577739400072833192976005505780696641925010397137300789005439056177296677669492377070817291380179147742392426532916612949745273578076892148173068455043667540056604120957698570472295596620988781062838800777297567944785659033206383863856346481269909685724241086366868141457004075850118092781444869498348089025261674742882985264284121360820133499351969862690640010149829914485946621196962229870145672488615033381015965798118352345547285030020466864843059746011977794065183975678828722052448772434178488178737123753143825759333407724747115863756001061487288863459977443472381691768229591797404620286431228509294147049452904471114113208615821202054035348680734868557587835934984274638201342304430390685332402315028307877845573854958816592691749079778754474417258040751210263925794935826776159548300091271408731072770925178306622385510530646589699818790347643519644313068131323641914945061684261973719318150372065598351366016644708704971695336158473696887792542187704401963326339723864075933806595511602702832586040357375250631876583145325951195354595613986315863296150082987231190131324541142213610418044924028420654462310031474067554873993685846935437739046664067281666022774176864433472594916227315256150801225334068865646640768569768105124106664271976841727873058286195875461896074570275510856971465324229891484044805726486469597105055551197963533580686883058129234065918296919556225739351074604317255740255040610104729914675850168779611406888178816629221019158083614356202347232139848704970020783267088183446247288349494193648485721288734442881077713590330875203858650159258740776335105940944394465367256132793585802830582461124848396831357987563612822978325871685287126928259285962705172154564225747470225813481197350425490884804239767270152885405070399959724062712519841221490395069058143525154930069221938432170484434399431373856071412924230236914010052302451053856557546047300818771434846130136434631317556013822526071811211465599566387287988705293002970654771215889620143054077969942349508807754785368833972398459404931013701037801914266824617370646512986148844230494962236691538872075551002829688906939219897325226561916617000503633599815686557849764662717717727933188346548416924760214103731438300690883299717631946114024027442054116257376043845237864052842777011037476082422705484780407290964796935022782264034476066857163896460502611456701220262661647152121706341408875680504827525652179355574363848696104240868300259014452956777513117411053226427178631123905078328145788967968581700379661703276249782407319234443028040800044146097812021947189878472387200786345793808070441749776638668349856255033986372384508344405466722842604454538048580345022733371524096108684293714643233054137568472146347184954689481736078573588563354469233559802022394685170276920557845805938088546919899271420656621370631513087651646830154932517979716933629777321888882955160990579838842310544972624749592791567917619848064414403161349222938549319966722284292537263442298169129817050349252426151301791194774484080729765821142813611241811102994193321543329349248642014575653182847824644836373215000103354680593165638605838826168562707351194865815411754249142744366701466797285524349545400202923411107113436849119043906534113968696068928273264299985386479674509255684728177096860869575576290613495056676664573900392043423502476063431494523013282020970671817602538256686574873593152670396291962813364112381145672688254512105171557893721255320207145843552955392253138977046401425775943971746879591419131353657175579589195883084643949168572709374432325529273008874059131924551370519473103742385768361410056450079159736917631624435792985634232801057979136068468799328716145302164117428827012455044592318800227339071688980792278926187601393152314740289794401264983012938524423934873684349463241529134342649963478431531134409836431384363281467742733881103284675644508458299619724324435375691141669952190568506761600123228225284343723527511569291651082061097866759183512882848273095774028768355648435684985507434377075349771373227190347222965266724893060009018631225092735109474140734350009045863993453644148916450591313160645086473664123895828356475099798668108076862339206323411801594125302419302072443226956521114447254010073872789547963478603714941833106323011876783573954160806791962358146769799953616749973182113620777011519456977761887324017020679478132256669222622453431415356288327620019655793551936827929313587402911413092417484410458951110736649811761983770249786742627794188241511387541983104616721129348777031933227970134715975502784865558825808057866119400957622902198459110739860065984096908286730173611280015892102976876059018356493332193236179991792764072911285754728800881521589216484391153314719793815556569329613310281303873908176309392772083960684210528011288196192089029278261983406779301181794020344771916095417400465517537990969882035380960880965423874449710739051986011997943473389992558965825247686051211400529893995801220680906437740017580788472161170418802268590021841171661342770918207586485913753889569157623881933387562465171158366407479226668316346389638656634559898186105412247573262338188690008368114219498288628669236994573841085168538278709586690599482562689170777372702361447501217501907579702100908348084332792959059533761269683047750248519094608332115987281370801034258941229486277884138855289601970038105660503141049534564963714336512957048926322167134358949674515389987910950368524375923441732625800624998082920436941574345710929399210520911138646246032314870948151833107558670842100358164261797207402314280494756328992288635100963308843126120107976220807899026969614816295425271431359491258509168332156166604598945127372173771737885808198193244183680415522679537060932876453716422001858825214676193996654697477226421107743347118845813130504832299188212817775858870832461201467939334588657762364340648797709840955759698985863185838090246748612201678411451891633577638901400821260248015264899099523984494839363970970314075840605557187511730410525915508129734129210774587066349320662631982900608367858365552344464252721193803601152575494311163307900092951844142851939203568128855731310202053381624514529332472293338384257543401562171474608679262461924259502192701851382952423434340352277446098612792277899325219038889362284012938422133564667027583708454437349129860716873557121611796354707197872873139281004279238244359541496541760842985158616349072237021940293246019908024031681809272470814498245541149181535231657733720472031119462636923740522571116739189795724681066300567920668838871787182201423485502735091514282955901148235966268612125803392533472885697851570441288586066170972876971168541200306809779252823922990450662678828731802950523691846459971177846920799447255867753775202596656514282880543343556729576213416666354133242567263590166339609042987563331824962080634320687277012087267758770088013776929763818228100833150468098337519207528641828928502471194284615190831412317238019484788091507198437664613275826040346270522907451746650313118904428265435241806281829184527205513716553513738667987810704517510567070506669781874118454456753487298221944504879480392802117637460073041867873520636943133720996256432660592090270237312670437050040263249246708904848417024722348927439902870352980438929118971375650511623935450122027230344617647937011702627150923380699993715189941154829035368999198147310556079310805858173912277612586184556771679909350928236249387209594823791618213766682295682602446502950774102584620125982646730265923160970430097956800349647064312372162620087018963422686672657566213960145618006236404946281278127882026804405824465021232124608723193881209453171721461915967869119277247825040168496652274051438098896667250720428690354244417396246749983298520544808103804509909563175783525993408851237034006370513726509151180323067999611384132384504005031844025801605972658397076394687613511309391541685517499326090805331155381679762191984510214654041214724814506948014059593798863312916014226905193059757366520263409187658645106361130172997360077912870051734869567579800090229179698978868428133866132332669209675717816182113558991740291140095576859295419635741986357700122494228709724877749320542765399883079141382695108420201020492264889986942525807948153483871229801618904112324918384335724006945040797687787564876719279006798824218063225670296877744795704557887139134096076419840422842845349745882626091990061740001156078784090544335415686286948886321398977789899875487613088609391575918493018586406665238034620524367544234469578393806143138747935825016172190656191909020581523119033070050039971483085236166135408597992963479779217739863914374566476453906850766255468945892971964956289822554033599430480696178832030603867690978304704628368987607091386420413669010862933591831080087121507963397122558819630849671367790788581123647221780191117834963989159257975100294372150625998903322147164290869717106422221622310902937357073430503841679007569288739689578239835713984211482448869283158527244001913258780325929493725092123876056495955472597393614880392500412855793940572811912637462005860242486891718318702217733914339065046727177705077379262181836346814289188370991997105346134047632152632526846652244210184807298113769746171588159702623656235879412609287661379371944715690291596032259979123366217905331921369143873193773662979193470676558732222105101583195346925804483974206175553782904372406219463530316658394071910924683852055937763968564362865759078481710055463401113587766597556463617826400489286884804262183877613771527262841455806039104700173731668747882609866276012794304485021307163991318678462108809455450681877970808492754102669051776373813430337626950410366165330943065544986550993854665950742883659647712197093693186897924258518927843825972502498468613060883646540043787904138518778786401940821885711768399291396301565093920146074313617342707966023427754450737366124891210488557244029244939798055790176934195665734458835995896938786572210724826384264612236595916755117168305463593187526273762402806652677755479619099220262039665182693144679123414178888478119641833635852770748891476721881683162917819628610110972781509970847506363485755762386599922990344435350124745124951183117062171624291584542671560462148457649714769732203357691811687721678213843003636406705692136670381008237601228708701959675166247069086840563589471339927952212278616157875909308130346281861043861476234037664539812745690496422243691464532247272569937805878996678133704439845940942991108327220249830670650256658985335694498524185459992838791248480977738131949979629060553521528271303853835781098565411631781173774054959177303019565218321486352240622971920624389611560769101879152211957467407245628809071672656468089523072283228953266989158453968828044973120248506605018134492759247293969260761394337471910436451038050526792247327087642290846223519523360589599950429589450085363162205320496081488785476969457716087772029686724303763775573185093577320307338394750199517367198353960824662755916952901291373561568068852451568390871693873168924015312034713765342743853102288069877845205044321340594131208535215994541985433471163330880148148656431753128829795111884119796709759908274596633488021329010043215233585235034042352506732817315644870140859278458986986818352614927159225283204262582918617117520710054625098365692098610690889883399800099855206413772387372495601174263304279003680553444951628198352362344083839964928002381141117073641469474425974802782135884508107675795071425072768085773163948887342935253644692648906955100178346890109819237893940076446708621326180422774382795405678084791460397223940129312308960526874564018905203914915197718824675704012211085396295949572010233704611333147589907205413485747131336260749309453163918311154436504534021948617810658034529258582811485377775902937779180493525511388008024191846058029567036406980904212498737936231683065315795966529924613126092889396606599332835681964634898316042339150902835611711503191613446457237931077886702373785885920281836676581526191638026980342615480191219428543576401273876362140044320688387425180661717479735289281789636278272430365447745263522441394242441173107667077554512007044125514396494521730440616906998096204176652663040575989727520042886595153106040344782242026438194397145543447482738411424225095757428749738355044623813869099569367242626759074021516356715659273525438049378123585349040342622207572527169809254344632409265670035046098400456327354874869813042174102312270141260831754331247785854806668164957760836448221789298525363530077106017784401728707769063892049068880971690092759166799778557064455397141789283505274950863114286621847944796670447506499773069406728264090527820835820266017938100060282533250053201528549406785932491903391175655128284510003668344280900654834277438738729825627222285189964832631580739674768879882062541317665465829793709299713756085262928245510298392737158605848030575563880570131676006589186626294784810528765990535661826519724506424121024522215299709623105600828854244743860633701529971183362580048817525087610351508564232626243821236526089336978154041733992457273621759539805721632225588933181265234579332600551833878655150442314122230693419499135266241763913509107292161028616889837210399512217368317783685404506836973381849730574256006400798182285557406109819397264663314627502426246640115006463348485704119557620266587840365901926661797166868036169252255836393195613602868139235253554790192026742110630541371960070924810045405499959260431182849651935850151925123357110785163010947421749099875742736797074338462705192808676412140152045342952900128822721003335426756029389985423910025073958308478781799651862773275898761680022672193144259812906770733319165444087967022396765244412742447684839865142352937604026948020190099653789690073873919824916376382779642018277406053197933059751825910601224670097050548208319900713489484301119800686178200926498758309563721476446087787924767014832128594034758828340060133933036530742827772738178670125204574658387242589447760984510544028268940198711426069802557779182892944885985103050036186613343566062234826610681517401736731033286924454146195122459581061018426752405308313081361201478997418079845131094133770418372440000578678457272243856866579682249937875902129802745926671261464127498631073934395824686958772716040780867393653929889202960909158741913055032257130984290364692892300333339644640581084809176135464209125442566739550987883124211517184732020241653429511729389147548370330824362147086653562999384341836153389841566104478997343678173673065268563799143790993738837504379230505516987735988792616401126547607702775661773437303438375502809792544353039523337842151791613233279515396677019836121549200800598305186801571124387588492945915036739150916856962364280816006748925694031002380988077568055467163422689851056449351331894652549927778794730486840442591821065514293767933215365729411768249799672347171823944035139561230001181534903478487134496582560073931301577806550495009615821949664173655841687070271156472274719059643400253409205892389905263603289101724741732187526839583012681703539655829541775614320082880806812636010621387596004096476726489570658802952483164422325300622171520245750585190450467139450280205855832699929022537248611396143223286604097309403201059497023470514109187244412804551417041930254737679930177462807693657340615265728988680439237227282171886269571998320425275416319299687835038785192359911007876099136476665519492698197830987926445800885420691276695027816797123783193751684913465742139392420364164667766910371851520461432842240686129719982854500296926951100815095778712580255571834366874933431682511227051861569686553097969830801424061142085631178903264898354913172644191655454907306783821292565816853085707375003419850128741560645530927284780283976377381899379693414924654259905589392268449297631065843238963632943539972906180994686775120251683862409508616919146654403438615495936224139347848544971478259469478968910672237497203571498909273311605245237007331765185256925135985451389124640632704115756329510718371138422932540499815146163345776804468771346704894004992553579029957679754583197307525053696506910743525405052841639789329374081838657053266474507816816658748761464749419810958366105503751891366432354140741722152162753094987911670254076312991759026374086583810556921102060674316259921815965162295115780036077904387807128172407414738880371581816103108480762480367443574087372535966229982860531452492731039275076201828435373221277799235052321911590791292076408666631343278811020484579690828564060571195182990526851560637093042873296665707191586280192269303146652775819293985132065323025729505515092629575803407715055544487646832296598597222692670874460024730944342880886463138077480935463204423457078254849231450704434221187816392221205580746807278510114470064581617802735222787683576553983634414695210026219901542678443289989150563230986277683056208924199170382030418536871265546438733351761417965000907198357146326403316656231757356913730496178405827058171138588014281404466761307859275889673897052359844368209223013013815376615551742772278826606623124064231000652357897029643531553507166001277114265173478063890615879203616767543625923358613249923194841086245001301766413195325005586802271307899109850919305629748819992260149167992019882303491505880038881864838369779978478426308019095898613821704166247319239159074624476092507733018861353774801448049784978260676968582950924041636190201428790441188247329146384736696132651604224086135595536569605175176693448007602785159117268912008393912633173271919246324569821024726859002462641015251402866927537878321520126870024562836098842515177944563309273209322659998801540260413132889899418272362694719991978667043334626283422457819144267142208064456121106564126299006594808789839295878175630719538662580614395489022400210641561286553274000050055120534461688935379732498439330954839716196420100190330647100769391938504800910148818717051358595124378619863222515517270751436394811321925462892318047308483732483239896439001737594453615711553375409222464153673909373316977969233817967239699333481905006127415250236766926267776326766284162211503041296970614091753570831890045717977401518121127977707866544290521083797394709352420450507810670430242718835352154062594269278691176258520993996843231328884080274366464105347270555744774029472622431882880877670161449636351501530910111291528484634946434742987637618236744273805727946099968734272119492057761712154231160094350500979707300554801381989829425495212754999633057281234516372912560771736887077361448166424292260513367231491141053639946820475044777976874478833738030943768845508739399316092422750389835857215078457664420431285529393371777754524358376636401781930878948369771402123882871834334689847898464969103843250006002395205835727624750895530245333278391495399515946821754975987892284480892802480639376709199841966447264184859568649258122164365423461535695216477852995619415631408657614050758965152714488293313861221921575344582322576786327097913102479960452040869681538591682787347769608403442944686013009785586735167060127690676474104181463537130789010687023916517867392544691822009165863630072824624293592683177461004277303916994137941908310655852765469410879759086181455494933912034492448495998513561076840129018535479638730917557469614357832690304709609657861735121766961428690680879371893458509956301341822438546761807204494530085769435818375988678223103059454031847928870857899609113095920870448073401388833593531624743205678633675430781901402240572429089782236843932626662329756004157524202235628429524023474208901251210349423586402914415245846341971201761955694833404820660842421734805034061182980806558884557584193995823474551546403900194166449846050962664547053152888475227618860624183676480631154676649274324266659134202491201203835168249844757122809201741282124686111051719041171025403453521237302555461001354017738747209205629695081249095122251613997366457664819989387747676832869947350555409573991038935386050041984401282855251244543410398587445522512178705034164786314922619848471116248190732208130807250036399780559522749266841451747615333128371955092427339588967106225000279246746976123784565714520944677524604162510049739970401373322071653919674205453989547947862645511624115287393911234450715210478949913809397575979236973061244772943726642497898548798127465227328764088700394061340803253291321986423413018013394983399920735716700083795169042749831295273241067345549435321291620400814107114349652767960360631224208416556400783319055903349878974120206212958879105996890168845216875614504173622421239910022753454060161276241563686272507897996272480076284891748863905509659390998902303817792633797947721501788312243340545170110081898226611414159258356853404376690645795524516143301256080594235795805953417031097500555513605053069729141094443441842332427555717824639971586031614297837262008402982676780047789442041507857622625862041582701876379865133535897314547212361168114376910015367836790811490771383565949402758920358001160909929298851083077579101947922864062957817777833190385272321705217648177816570002075512725667623286969842384229159156052941598210640292173925870124767560005235792280496030859864390572060999411420767247819933495584398834209832010650507831542969162494274569434854860286543809672541862289774651528287058111974776880381283454529402117558682726864260808919374131291069339091675784494145306925470943032228859308253065210805085253745719041080653983363043687568527623375265465793558749248510450328672418984950703591504095703312879083142228159317760908246989121368578409292351056497756235915546215522984494287517377063713792022522124411556643548286851893891814296089648057861895039347055113019417036205891985864555408564077281145815469517430089021407082820786741284446320838275840592808978658870747650818727480953704235499284305811937502706729017155540344930067176859386696902235921399872036345715197457012495206887768044875850975464823352444413159097318633883459239132378026545554138673677662929015057156604394507716022728480494959145375446970954314135830113841321171934741472227132682138164952959344052185599533945597750955907885273772983832781555136164777156389395815469628967954158389321272803975489381119097116531559550929239485804185763704128470168801891085779610843551343556413951788814166449686547194031076054123329308114967617450907528475005108976826952992584748569634510071270417979148784025078227743622498729674210071655485235338410228323369086497686506833676144323034349297783041045719363593840840181227112321973599545425745303832152957114984872894394655012305712922482799893808575194551052587905728474148191080911420776040262918086482054836981908207638472019320686047000789566039177991673667238940704092222033692632100538091615495537437442811513490297070690832554255344500314961351081987773347981948179102647465100269107032130862559901681021402176243225788455048505913124452589200271489151722605660132426447007363778875629436436853396599328492331842330127577895038465736831639461111035507851571151835288697359510432631375079863596890796830826096331122976659948361550532921682911711347351048321906762118939377251743342537575737900877276480405618021546051321584944431946541926517471533285978464569500866183170833243632576543184165082071887661765704317475059986790295063565273153362788319121539609647512493180592247211867893161482868930380591237772713666299283709788889585093611577097653383362274609844649522879212985473699973597327031007013596084175576381205736895043163385106517795613408189524789553621663366193142318477049363662478162636740863558258697649502574213390638106646992020441201194128523612391267173837413623281293031108695994735065606614919501697372039994852596041540169901486483436460885589779994974580976440426071407698661494665120311977190790080183977496134835617349006797607827935648829705216191095388592277868027909451958592837116308579897485019218050679849241532359275882172798851896048106682427117516488804153616840432952213313895458635141818297902905752367106998991550987340515717777087144790666799981115362742911007178989641077567006364721613242896481309137347300056845577823287047896344394684788136337382639860667871977312811196315576786453180848176264546258792813994892516237018906946439274766971055114488643974425500397378461673923282614633096063274817207180435425474762552090773969473857512846042780362507913102264202193139127938461771764288585014659724017409675229715805709101838488976513552419775326048500972438047613013188616906723328729237055875228771524530720333203006551362978071780085359180942907930457301406060639477411108578079905176990315022080323929835615330860880240369613785467470682592891599994182143735469875506681256731189316616964779967513323427536163624790278479698890982408299368649555191297108906934169927369092858739535745282662078047560018706357816025408352208416944082715694946606155769563899756855815076151108880721172123469317771284485804953738121106366997358030334129477920363142974395740435848292623385370172545572566282486322091029979039317970404436691880660982685606607744475890262400546214032048278897526800377423390651621785254607791630068545188222016698296253075515241846105009392564287921349621642480045641970114805626085654258382619969098305998025271288556444198478769417780988193536639661852724879945195054438262547242751146604604770159671233018864848468622569095237162056570767960062117095187619283771170323574394187995730217310696603530624063500813569144656866143966148791833708556372672901428524924767185887008314424130191400278403032994848401530516036969606812473441222473487067124229207571301953863966992202890529386080521914890338069720352634575121440815451715835875183927931519075797284750161011052534105238344303206717766442845974994954761450910800998279184233328288625668821265658951188356709740548068131030987610689322837117370702985187506078427854491566981067771886487686344634690043514019364068726187545446188684972250283968735010651116930307480313625223772016905878860241588352496100451618173765104086923177475899234060365677533043409690240429221482564779401814579338546657924973064113358237493586418191131369162001377186272768200976063206842986879552759948436672344778676507933268981381521850553598168207709228214408915676787309247549150535509099680237549776110529309367593955840402270183908222141168832936598217850284185936250600450313753826726981352335259836623840530214736228829396641035887959164143157465155014063642867503748421862422402299253053255657986985472162751776114663655604426459039734230878291394027011200151691350775549467065397441937920737955642356242187208357993714485434050971191482246480615374094673584165346052737616871072173974750244408816365055073192891941121950109928155752072776423351371939219524864334064088863913733310312397672655807363478539358552484874121658688591422786925743235902958435540196348046173612669512019091710656095720423843679572272333148246671093350965828075074291747775691824932033977139855611059512514520093364561130516482293763552153108608415260863972638178121782039893188175354086058394680524333802040957737201748514890904385401184661847252120251443013502247233056749629242504258002243709608912549713501853981457453675442675385340628649090397721150372207622069536080698666142575832348205772021513706361055221280194512171206549914020498424459842924281390976347608831044812423247499557328194907055923676059762457560586441845224454921851444849667861848771570820392298231472685984081056491004216897684519006641490355911403948632534171940289491754471886520493097719761840868581100854521225009600168602609351278069442557898099130782439006370283752368272531495441023371975325313578846143173027196565829390270993114198100278307256993150745877417934113027547200614382829473201336052972747892932296387212647824415924687024154287876440497892856910001709611437017547701415406326451648076253696810911184661644249858812739136351790953268494589950058579414104966226833080110541526861077200207401241820200112450998579757549189257417103434103973503311941307425740943871745526911824481881520644781155599586138222336308347015177399733068058289112256730618571139220656653962383910142750302857851377882200041141398180883183739286838707091261124086568801601312769886634745794515448942137775163376213243327822155894193475111291986757183755943200544340983050064228960836379992524101784521538211515478858049335152884646420643848622298744452034103543913141478768318485770200991830463308193898512605518035980545903928607347741625175617499675578251644092818420232624608377021499203800977335932579058317866421847226288344254347007998463661318028026591455615690464893733020562860327331149598864869765579160577754255532100440777631505531027986365184290723462238747176838104557219425437889764721181652015741101024475208971718409862979291916180638676188140501068866742643995821018613569836834002191231196274227949609322016055399316865131088096639434234214801878568921076070536668356227797102788072290272862570458197752048110289625554657454837661950219602497109217265602353759956514227477430639349437758406710720046579374899946068946658452068324088870368789372827150341324137437631723489318813391998493942450861547366977631615087350624422844799838841033065608427037625537077123760375824812819259738207206454053596402746029279866377712823769968373712334781295327628354325807671228024592855760006968051689647968572998659946308881503533283866433703358975269953291428054999912788653674358390051213161630918875940343742368641064120863047579768169613568989793570118441116998870286247892914951547498921510323413318452494674778726910193957659845087759259718607881251192738400667861118764338460334853217523894585463370967144423828550379147389339593074574735935524943794059777291560257789386046553099434350480008653760106287401491848553575787467962799265631702328306959170238299077337134990508673763387590091054172471383920129596344154852287971978609236131798781770409235630460651490352748204997440725122726428557631715839394093830053924999933612102228299817095187528379881341126136203795060343324118148321783786040882192719856272608491635249175654995766919295655552828540715671645561554260100021209572012049595605864780509290656519748706242667857826952182399150870097170139551966552090474028091859712654007549624374439975347855603231116556197070568774151991581018686954136863460332737328174016344314989779821686244349780484234318024244630289592052696644813551241079385362709005898512572359878912166961439053301781284827554667923888623374470239806931221660169283011714233843716920660734351707747673011566702592213295031693781917157166014926203266393062063017332247478037729057938294581318130645535332733227668937980253496007749689991236412756136758104512923115975469860335515976078344160010335721337492400832755734928367348825349316161211763945221547651288212399102459614301345968134108348897674477356392673037400091480113650434033525715615673199289402089321604362484820484770454731827103903999005346991946910299303426196114926400048315684546564875753259530858340759472834267155549020745296362962484288223074968947588841160046572652587042215977789550831311180386686468423992752368296608529435623524594244956442441270721563987657472202466298910900632487281757756937779633786089481664535293879054202550680463859263639360646468429412539921394639495378862971376013441420989068570873897759477056545200927237199723692977304972737348682205960234739102748821733991099281329392258972661073907898264243752869583146288929911398218617219027380582351101271434482770781209415542900320652292072698372722412013768561625834674441984869934419830949003240380905518051872524082380881637218683615828848101328998454180503773100778225740226851140366698067774060463023776919625043925339941389570849407185489007987463799057342168190879217245037929134727793915854321662604229775215620125020262979519482579370963102818233715771010694992528720264977147266460300385105257391961887178279444801090515518989836891703070045191913115110992450161434214846302665469412545001613542246577819603054452689559280092745179732311271233011409917288025753549415602204307708449147322140196808902982496562007634162535317991899109674856956227789161241694712233608300678683978486645525545829760847600024832035643528125757080575567139509730645452518117361469850749196785494749801350584830505248283658795524894168199951996899341439448457229259038317356790143627587638731748306988748435127883909661886554368411559010891046614757431003415290351252015579250129242662316617699747312236016916945655715458361924967591868853935758377118353019001752451057899934874029019704018173262913733123213136816490255834159016394455370925679437437637306830865562596564173600182066531309763851472068307533037095300253901369055628673444167601799880266893410193068932855916183091475332611283242846951797636030539383521808597234234663000052518843133352440095358181535924215457479821762716191985389229526233464145711808799629895586995025807348182374420683644103815638326604853178893206964855809107227869524691719412554749327785906306378792278606425025247580460600599178380248211911205380552669026164153000095696457279013005081540702815767751691920150132636361476773175459376122021231309162331890619122600654931296637198591395520036276840940898879652199282773950945630270359869537887220985125111367408268235174513171735269031348727855906153820434710476816095929914368692569199527719083907493076461323186540435036340187555627839780546977299490096535287111832262054206920718332175186443243722634969644925364471531466001346949753208868983863905237786685752493951582331792466728448776347479957392216679920760646805774117758510333090258014200517937428495636712839887916606748979290011613346962086325094596327971296794415288615364280099318901022602345083455924258113602460079747162909568775359457970396850994676493506683104488904409803106804272660283602501293938027807624845614859128065747440634212526094247589242530794746142122563169656304000541191339093252288460308261026434148404779646657453104717456271281575361674656294775198162894379728396103667141547076801551311065848884376186628533694929807789971387560505066743778190208663341688060102580696497877718478712233927448258618121576246410212144625891723445563147153131929647065961588409583764529233051287449895176332633198536627589281676745675565694370932837392757182550890317520310160267515734486591544299594443666863647971689793804123198103679966660440156641902701543969466441333997913478682105961896338237550600459606524695676888531234909236382066843775880402005854781920523543556462974545821315523665017286576255776061705689990232879170433419379028710372082320303436095392555482410387802303710271037906375166263942589157131707969551496849008430930933771553173090232792578936496965540086581587524697200761098183642354717336332272649324312581442615229114966595017074827517942447196708416542365055386334747858253215551091538681873612102184944647441538654834307586274859065994618491864352833235418899176797537211711637908512774907103895509793826062380498043536945705941516859903117141007570947948900493256259301043565932524551787997407049542364868138282845079573859795916282850501452116204529252798796617371642274504666601722436070230454283458642688997176963188176668545327438888144677778092490536349404938418026484760056847956311725804914742346791786231534756716774841875914841515988574879105633556994241182652132866108620086943135811043893702882130079905121719884691667896122873773098444092748931020469491172844989716489359415866295589993215589960987316540286221899109706482341566431545681832251953543640612011612505422102282075839267982489496092892283188111082850030006668762142972258834366719594832070172766185785418925606088963033331634712072461651104179890391304839267685374020751203663005581434744854932541496786768673708131490569044303725175944783545108342668595119215641719548691973843451664209938236538630737201040217691471866415354765622496417292697842878041600916422957985708715086068911793164976789840114888441130789337793154400002371755573015816161081634247233027774759704314573192984442634591822722947599163487166609282349592043538512357453347557894056951390766755445195250632377006140617142268870467437717134186909456218333228882566200491310076112305909257108363990007649616004507547239673494245519124606717214270515488291656537994364519546189921695259996722017413227000875663758678298373784650227750218849730525107407264899158811697678039948830250888539296306752825485330700248757199235416569453571897577305589565170997276620111201773998940793534214825190985421470820130511840784216490910550605230021214883724307978524834686572363188661190984275533117155251297972878386760963488785863176624464456304303550675654020859639726785848056832203130088800851506588254782111913913013213205096384099001998361005458880741548540239157842094445643351760442594001269008402184903491831627503050658451896608763724752445178617431919724881016814800644841265305932778500433017665317712421726473661194453389423657685860850618201430559033576403040137095656164469155099020634161694587137432769970704031789763239825019699959709358501891793322854823730779062761414890760440453203566491804094211817888442997453067144975085657744346909070741521003263697646961452843037244249421856638446993934053897696989342558038902153159060107805783333961200856762410757003105827524774571263175423638474352884596387797791233967017874644561981028599613223004541335714432133945768600957542749163042734062226239947505277194284033295468256444962842585797928774258017994872572427804051646316968973833567050796450466284224501099267448415117911309840991816877480114077464435771019455154214052989456177590500099395327216962303513017662087352272180581092956322490043446479782038813427482360622562172757496709263523771243808468455453058308383254023879181416889872423146917530465746646704158155322103387613566527408348199186935845705613408358249861333240288881362203733393084542450807813187524465047376237150820936823264844103657534601165950159684945616921869576987922891053612269898579345407167525314596998786577760167499730838171533227097679199333994857242569870625044385289649677120314234105484884855438921649168603804466672931063315023290069129334383526702703376035058448419077402933854149562499818614223650715032327900028886083522146675089233120832085223311058746358527246946469053985462798663450430491538376807303345930984052548806069092275060364968714318136438777978665428070025498868411629368451644556733355562462076053611198205544269006446693256237682900485520120227022687514556559936705305297530998374350146022570657444899032677954333137457404350048262329160426998117664408086244666674511274726529922099576382866944797768739535336051259514647085028206469017066514601296110342787072939903368450151090706805319209896998850354692539778076761129922460599291754647680741688166412234484707561621114128426620954569091818617733934635716459591072824284652613385514341790048149758554312624183840101042909779100286092828977736240827338595904461855869052474878115444287502252812741404636727881003678735103880161197798795549869581854852547657721378136845060910126026917344539746362105768525482803666372443836191278538440180586362395130640720723903520568967931967643254349111615978487330254650807392628116540533010165059009878127094190057945056948571745866276964470560930093184403083182078381395171280524113807566938478864459820643667672171804112575552585966961396427709397826249836667253850795205720590970277827329966678261574538711137816287260476256038392870767212791218537089715400475749070953461408571328599540198232437214049481329729850546771494612673501136801091243997833479225406699614200269941777095967721223944431579774146242082144118899688607032269841221869369598162480050951480777334741207970232744371539565875046292953751594686579442620174576667453810644319254531938180633257392431161299553796449568103844566960650391270870770207221441520790939083142865343119419698587242338486116136579902656260190814208564938820365247143580173195090737400158892319947418382277570376196309325135872612082119527848148851034146252464439122777676348294598299137101852480076512726098087433308684330956214186474859448089364396302512740492122788166593369715572658954057102483245678819353166780350502549009848076631275870235829690472771422344737033138402122402867481443178086834968696596541850180637753716184800095787813843085421175033272704853600225427852871596738201573533356614757597604328245371847177376869747639716728856920970628626631350681634939739832264576148147630688195874009846042720187647153361595822768782818495035767327052433557018879716960851367291115506232863875192989160901507370787570705130446665073813707451609406627407212681518984478272491658039608768721589962234759630922432335440874871949861597996503590052754899782413832657690501209208172958268074196281985420539059218996641700250554258120977476302724591480088272962856248518074955864308720904336570879091770374039065628159813358581574126321744803287655120135058835758174597791388587028111478102323064154281784191644603073165587695630648688552944935393388409958106034307803756609423850037369679556753909638137034117469778354667227468423730687374046786152906600217865275393385112313430946183251841786071823810836863654852641085920810510894279626823665035648879266169317792720281473276466534632085471579824798680926651160392703415333213306697192704112117883534621131358271627978473045978608592305210256777477661527652398652688709182889166535402730626899470346462845509701656213620694334957274647018933642300024703314794351818153144435891638990941858844328279993329675456165355395728471097899123175340023586955261517871732929900239073626355653155614275077395284738094965090980370060024399768872506490559721902992156262567673937421561290008982398310923714358212795640006160842684751932335592335814481217920882737241883030898162702134308956175755910272485321289718929195261585220697347140825609270931955118071329415064895851535440970610594458269078676559968064206724288077473375225014586505272351529494275474433586244197478962877251047639541119872999203747724751731929084972914431777996984292115354144967792546644255963587473244354610563246827886428738095723753432749783419839725280891491824963982349846305904541345788585917106562190110167320562404510637969698799414976189541453640267909115631048471891363918443928086623816310468328505576282547030426940657305164509909904965656358271626398459028160732261055157027436543964057248415352388940933085376582709468724605845669662003941887859532305709556422516774094265954017767017537590004622344537945036027050053300843676511190177267192215545575700791548831392913010268964492414259959151169675333478755256052996391476205898052996018919984867172849202875576796297150888112977354905421754558970675896066156345967278246849346240292730174274404093651933269355825781692808486916449874163313617436300900791649930477023339788301540041198749691286279663395699799615465363165073973509737080362943064311688210846585283410015668638001941668550880340389832995895993890619363636022643959618881347681081964902698401402017837231501575202834082397644340026427977748372891497870239266753949644907357358014010821017366493585322960062322516800599351989812527546866744235165495583140294224460764742075391989689820375644822795438013676451833358950793509966890860777893225079562342786096075278851999635398519910734298496500476973459315438025645472731477253635667183354632627480844512119265211147610384789781450434925587634543367143822793075507211713178938589854487617074822985610110169408574409179222347417618763388110082844204255970786763504400524012414417281906726724515681205736929854054429256998525409117606264072548703107409281157108313188272067266309775402746181985692490269756623726197013680937907154337963306195558375272933968868363964353044189407236217719150208279216562060660880689134174380204703649255835836114034326685052646234604429360301974127644762091549043062760373553504156466515470756677488984796925173726924847987707953092666156912372268411216008935285390889485996960936662224078201911333829000942660718206219170780443970842831793174229746394424210604223922932347750203261929272331237931956417229917712933952093159989232408395357747535941098342482130702628612469012417509734768077930683099182081716379991818957923915737271798196586661156336567740701147295752123030163423618454716899018536559202212428135747963486379188246586555094945237576495924829863628306161679058505555737241197700727834533496448013449283473876189499518257528447560579571684685272864085677389123283217181301914860418295593640996825914938642464721639309706523985225844563537810592149445841536956634341040130881273217376257153685632218301287190206887383826511782443447543162615548769556755696840259453576522487033782298963094099251588768960233855522076078444612096874242826026133104319860943783994994161104000653187215767814476727205303417014014296581966614432352232908533665724600843836078659843629017515210444185179587422413979406996395604622548447200148952285493113938644568006964226495980276032948108455421454450867972964775846693476252211394718218936913970515845451445901499588444067827087589816616431108087515970048488760556354447276692067335487112376095346662219392002347313353182280108747119637695498675472599936482558976809838488939886240526970682012833904370411354018128870717385592283952597416568661917474120367093848378614178061286148470393144273129466173163644275763654649834332951779110675899759924618508734304483274939772947919519341571643201468230079665232685266550777157935118832794902864281671351853730449514471864822425617307146495637973107083952334891926726791433150300074333061449989630198622051655061266990639707169955149627013178723547575344907802560580597758479866374874699240746088735312444136127451878591551993187827007101836970340260739605892833635373972035141740166267848025634535937245199188464934702576896832994049397993659343454062503975340192201161085272820422756410332832395423816147933369891225624286801298996632166343809032289366540568270164120890578526597362953882374157773443287478787873676228685739702133881230517768594303628112261341895474983903997752352988929822471725716204005562502133886926580797245446216298494874251850945864987698109876767403863537241186893025995318437252093545818166707566316612495213876607839761681228724720662885067832025758482148557251140703828700659840821823112673809242442975375908036603101092397286661673265848500402261360753419381215275737199545297940717277162939209858672236055775205023749497048835674884118212271928277957097041021310838131371420984388801950834850099241700158013201712702870927941807899501536194743615036402062774350752151830358342038099301316743442007141180125319390779945182588849712695096399303739120076999112827054454996692137733331167559091964290204956965460746334942340623750901255444474549302911062676759163894714738084722495189959471093817070915920363165697689772752957091485053123963371838053282913902734835445794251010589167891361424300309187269760561492744433328629255049809959846215952802455663358834352033836758180556457615784252127592908235369961714267071743649508877385121024745224787892723571637542758970663594195544498470689954486696818182607687633281809180283200099645052710312849937462380002872315645770866434664013752994816843747794930193568030248932266700312458854958941819277470865885392000451052756593368602642502559069207394801629969040993478062842640260870866439278622006020108393691905818304479508939286843902405753645688412716957778109265942237545991576563395619297622083747607258358544721316134197136229058427183002634645223124760024405875408657176123820052074232721644106040463197312053848796162411549983668207297575402105840050913293841850908388656483974116606027345905210088402198563396290029047545097965262183458614364442464983351048047601664230011490880457966701471681238049148242975114912569254507651986609231526485176671561403929534518879054847545697396143717171270962524991040991137173897726325051891707055688976908303340071757895507510097162575869700439277066617778422751605073630129345411523438082320670330585121023136509236682413542967946922108578641961008548180831610136744963371731646855291594124089472682587779650241925383833573140153177844637867742516424312774971247414725243366709163813375031119406541866969745435996747631924795831900564282087111950600667253828793887599917173468527820542983916728007061480023373848858228426542257513392080099291632281326218662139860389747088151913998090994470296868659150646339079542151223781143698699836882030354891365976641000472302303395801729199768446414548624591667255781310679698036703457104244945670647995963306163130679928869665048013138574044249245495992034720118156195456343065376377597816846488827952496776476816731562819148313156680381283619479414041414361393064836955423740233969978855072785737461951723822698275271547016766990538019142316093303120502212212748713366249505788754010502591014889938700016436775622542774667516348430091806812198016337610359942514746151548840098123528002638234819235100805864511358365514506108802589604702965841924641883217913661084141649628107349310147296411068769057938628977803500831644554427307000190533498731569756763913095787701460232904640163821722052471973327528451915782277804464712463079973983792741524170633813133819063052365321040881849664555854395841706845507638851098639116320561313878658759266179557206978759311146181132594779721102145054149132061895611348721613728793869916089122844283737930462801859281137605468183610133383250126818747051783785971651939279874549419236459347202486486311520122323280459119598069716455815893817275806011969317987566912414442232361709151673266515786823651425569560100087593909722483158084665835663414474259846429146476197250585034422806509366377688992054138696148654440051558533937372494723390135530048772647746511843375606552711212269867714408864988703297328133003959744318252897524314811570492343819718046551327851833486814866862130226133961594401601551004210281950436809486356041517836366684484191259977148388393480441080244456049666109595375191273623850185180982752914463149796331186648201726328918838765696723458541570561245206439102604903191468204093440443714226751291734117705089765772066150535153526439431365258821768871066790524387623196058282149274878536927254319590416868175208590397517530734546132275805365558164848109863802733766094053960947427016473370562755912257937421688874708809016672004091479962755926398488679502968864625801597049741983053829371918881386486186049356670433338658964993967224636955555399380994372831924801992650649260355578278371128738544837397268095911176028492227421237604015821529251469597738369272655598515550386610105804544581071074527527619442759802323774804771630986811987260722213818379337048637682884313838559439737095666224067729112205222209467064084394512651873954050547049874368072559073084927732365229035533023245954103573141805084314729672342379847490466471583049351861692809848869877649504796044206528255602141095776305605971910742641533495691423953910062384830013103815902695477583542805282178121320179646060663671391185604823746877178292628887361497591108048745433024699230618586593689750853062847296636312557510149986054014482995297581450418496779155465811857762916388184768155292833322425612403046684142568121585016854706858059085803941583727646816657791723082496152547954314669030364555997058689952856378747935319484359390683354709254705422758104111558845980781114367579517040442021027676006451050163225545366791865232972368602506188237744909425114345852576961509161770243351150015923018029511150551353204654242397635375104010110704637167484240632630684067406409650922442671024294156768551759606471290300819880295070469396854061959682714212814394956090027744215969351191073069568199514946524090238876107703111320209250428853950363780649764378543764333607120741509667883503720528002820369853013784538153891711915396884409956927070372849856804215795606715722597861435498448682872445239458814156995484455160709535455957272784052870541507963059032892304081645879545507230527278947218053622697925428172124291096849394096486821029086946721444631499966526352197692042872634364530262236167665615307464834581273977537677477720173985822572691759224744254109427870084287868897660180022592809687737127861610651496915365993138214584965227113765978319148938401564381199659829267161553419939723398510431001081957114637093513801994517293936799997519778857889945032489821919140497231338150205884512097985045187340104888113124896569602028717628543933885673176816312755301514088555012311020920355906040628350348704255659847740052031758864630736260768181153976513964968012735947563583615700445404864116398617598332644754471228659508024094931662949658193157322306955607444659726697818401290250495357368777181418511822647368430244632415559800178922465768959613940882208865713525537871692773729224201960448829213360375982369515898237962099431961260810410234935502658259608857609952315619917480181399887962848105029024855262401744964668370016808036331984227543673026270474136507887768519798032963897661869237008953624417584828421707530600970618675944284619065848920630240411528214590412730650776966480714699593625322961752417034354695972950985524394064721594159580843609679398215034924460098343246553105803040623866515876261241261905765787931863007695837738585815608904013932843653344357833713453484899145332581772381885483462033717643548347214146850259998254062862036384872908622165301312503983846264104903877988407630091910308927223307427000601625058494000007360398495951800648658723489172652218843016203252886819503898386404166071673565942213408040935695654210767539525138863323791246582906606107270979951562377360981199234843499146883011673621189477423403518094401221341226587178442306158593954913558883566458284915423674825304661167865254897902299404926448779895765140348577591206697344293623315133704052731342083196381770417753355104281605438186662537102524213028283800820347532177418508326106636578063541891727777344085701836918810632652937405729691829969428661179315112147527713831890268451224958008287587522502063760931552265988560995143347724603976056158304945008154128963174717835628348765402908635283529412933273124630993646866240643512321895386381406105935530619309766248423947985065173183456766953464153925857179976120882140263322231703212577506013912091746829604015477989386856099864347928540084841674835170177733230281785641330535427792690005661018044349097052161377735045050209914467667538571750345589689471812243091526666220561067696897275611952980799182009735603747114295653258403478021349644394832163559955008347505615025139497405296806338307412547438299166933739148817165306561903536072624365503274518841674253693239335591316560363750608082413698221327401534079187727486635032178072336422735517066900226811896336226245565709416194339974230855509108319381000068377124099484117777892050185795266412200883040592084879697676878120739819311015679860566013324128803977563795923911129904831393491130111480845728935852113758752644128205087584914296203108147318330558370701250622182153219620576744065630368765837350464423983256611133223812027567093090198429789943916436932028342074494052410246721319934762298549060800474159089410387707461125456230983631933870239361300822927468407165695086524337802363458179777494542686027027553561031865630935824988731443964196030373298551065646104120856563652536813255606800725926131554219598793721827980876957562084400444790391601786222013286603052906732359871809834957705031767662992168666677311304332039803964488241160293291516705486850433038873076775531194587527412363437618426227099279876545748145095740645558099283451374993104083308497775681501904942741095864831234013486356081871740277072425813318988339649169971027234232483862587399836271934043070462743745492162544547256649483092814613528670050670699556801424417474903076208678749120070742481861842980532783233382758734664912241720798653329903679670810243273991652842197764239356811254576793522151744499222172059760913425536395213586662627845994638366675897044737464036397234548715138513542343031728828765856899895783037176446187033197994024038705790821471987014139932007594219652955182315039087660022762054415146889866542919941149466192271735290281549967744486234861521895847799446815528480234421931663872243348069749142678585234546678381734989036570688157099420509950700400941955882312041407158486594768223811952126895597436144237601060658385041862627389635536544941001758980783157242074830105978008899123419788748556537637626318649515545485021864866970813082014422614038359375299034844497875567729936123331770682542543276778314461129560295282331791286369624204901461435607935358336598716992400868424549625604293784261665991341104779043293950532160019520670352724233879515187113639482959291098027341608488678767682950632276176110061031922775522078888571081113613474856630758207057240322802450216430861055070137801168635861529889731828039030281165372330980384699419511419866820500408089034200995315791562317048570985281522636819127434532061549995800949420950794965699849059897080706613661583448488556023688132662086362002628373346199923281611826467707016001600438171086055709666660540401993435673512209138557113723113016992433509729944379626284456779115905493201167983920624023443908069321149951364699808702250329344609080010720040721349838429949492896833194566278378499688733510046200003416035285288457359434724288766237466368173104355991517247234119302905984459456947766549600825623003236372734682257090333789652938591593036734949389378732074894858879779795546444592688508580491984161319123102667308117958455595875133326958226150671435429053872989295857999258429216490906460840634470170379603200476820482032743639682077550084554264900518975512050253070746302887783027072662311309988395182566752725268668076332669097189000481382941147820701833939583835159833518230774279946536351127421394456900769774949551829655239495404746010545406184626242817459799729089327737007317799722625355003499105272351928807759242175588566643411073000069980996103256708958189936953765119294936502497855956114110801347688155327341550312584315552674495818294659097869317783905581170277379550239325008395815050458391817531330018027080331647973422583179184308031210980444532825214346908260545389613526323992726799214280953834361131057936255810506213968214739705315178493514560663142790317057867175624148932747599775021490426188707968907723165519858747186079866373041481312593232195031924463365677532907136803761447237219490952583004295472967456943000117582991509241153105169408010553740956321128600262422076842817559126053017344389419176161422416208035557344631962561176960977853545110688841569866144556321185922193663807871496483245333816574114227657826221946080711301725184407703660697457264474197145079023814460630630026558792579651700084031004151910320281741106736771029107655122216637582899551140474001186967406367655107603382316513358794486550076866866422227340203038691979626847887042323149364063029788534492210336110925238036475651343938434009428899127238579645005003043692262448323751954745631114208167330386499078950062050528700031742817421003261755374409533797367357070799479422513277475059234654321919766448334442315078536967070061131985445051620875461143058895862577839347072080778754175359566496316985963262799462083652925045284791358937942277947776592134299142778223437789744210475161289154736365531109041648121897340156551573636907259166595380949892579159182614871890860681808352125514317597444058837095326797300981623770778257959820781358513342564668967472754842360638969482553432492327638692850243755359632548413026923097881146828395265781022593981113383652417586884113946150809930453906213628201933694187403643736639411220611723435311267813069881194418773877212578706928046290952777367228964467198265153375229925517753544383418532573812993519477113203475253998936475672555477882651937839376662160270289719755666595920704991310143100401772938566479739049421521301389736564808262260017923066375012930367320477699203635363362794050317403471747784169072270099854260254699562655126400034627925797070446243526366663512861120472301957117085304092428976267946942113620055179359924251624739480862653520644210882736900743201497096203611388542006179852896445350289611939652160471792251787457552649920234447810523566521594424264746074191411912988537136639984676883741528291036540463401238910792583400254148058217613514242872673833514787035861230819265900186980638222294181850866575010929207770185419115306096296484861314475111763764331577056666496183476299331208463693645917386370105143499034573254186761784118071411876353636591701356971162518314206368754132514501268682119332877501472904185319735967058474829819043441849259987830917977732104445257543717223268426858592766210501443138367095734978720805646254359979558333900885402094837224907936219819464867604795214698269134678422901533212514448812606282809153570318780776135502569229364035696002798936194909641426606321984528631067324768640465372066997560598824957512398029921919737467883599235696327662443251958785461691670324387216425700998589614402800972533156173133793257053990202100198403016935058322681861216105851206137185081746712679644026496011084196735963580917899767166110167079411867684412534574576384138108063182269457895763822368511676900012284298605264808122315390066279892507386276358119022378396908127130087832633665897060106135444871519870985601164418241813129193028232441070079976399033313768170484434401751435649773983976764996447256612273182783648408849766426380174016905421500882572558541394408966014136677084861517605705583908553793629124893750520649393117024856241747337753025497445471419345536840895863564235068815035721863657564913117714691549948529688108608398999438666928876642675383430048344462109644642403655519042431056030498945646740784110807432803034392368920520330618090769034683598023761313382420307246580547404110045861882479520486724488475001458440865043979840673016184301483825658911336347697316660344848547323359037168538508530809547206743519065747772045748413089099317386832191020068410957999334132745072598469601692117340254676368017946604560757787910075453039104512003084226630649403920027757914711395497514492176805399145717872635498383830907695309832979594575009481001408336911781512681811262793622563822927492455310929085965895506343784410019852476868359700181109793317763080890963801702241236039514616262861643799251861741128748805083102730627967538700383279611695272994431837618180059224092287072858719159362349279554995029374911331304437595875843676224424410412063614051116024287999727511315195884794592188797071116518399996504422784657972604092344410507912006637564504283186531163183838606997356533630319886059610029397295487138558872075944230377597325069318680000858324319664201602117110040158331242779723254455389820140613335414159752874732386203640723967120619469144016727374062884465822294331419784765381335526417294196423777186467805647329546645899576618588096711458362454709703803521674834776533914928962514822229524022782792595189106392381655858367915600946788187296297904608241451975544870475270212924971358387624692688021406427293072485585587933974775190142569549734338080061069476433121166907751008142117382607730131527256456213010703762007929572706194701431596053218814345771476584319922145416965596888397067147758308596540961528540406416198781560654970100639523811703888965098081402559701305175575086053769199501479634026014603920156426437847385336089037602910217330092968317631609650763393403410193813408107114583496099275483239826498459048958200329647048956612079649009316063751525396449427259050717593524557146317649628294589469070044683748214207417503316401019098708002782414287788110547485856006441739378669373593375135305788956915523147376257667475232612597298697255368424879292282400344600613064673551409636066444814108069446434069609613309361338265948712244935624800320042192120794566912436386114399421320385807268322039698279482880963667863940720225064357535354601809800367046462713134289847864378179306726736445643089690417384927948489801408801752284895703695126881299504734441944419012387277256930873373016997225776567792033189159933957209942040534131887595894383240296755210278256091304721211612325087188323962519020566587158868061124203019054607982651200260943002977014845043440629844533114841401467295126202922245312306350492517323980190837234368227371690656516703665382684661350300262762008900863076100497734395734293267181500809201708881955405193674254650763180578523930080112934776386016952415826055086570330829101490614071640280723320170732574025915496703824753476262302389970859586398465756948324653144183053068154046984473993525691830715678726423531304231742790240214492124315050822823955521158760267738477487724321459668015713744989027837588534206579673918621275840426065301207186394332051955515745972891524919076437623072000137340280535240489042418123307862626554180664022121890546124384114710642142523378804811544987019677249720268311959489607301717713791170588794355805404511281063734217049688500670647547812903103145032054528189238285022563908623282616249641467258895749291201406319686782235254894431575214742958211645221168566509873093032843485380602800964939157574487562766177559941124157587321544587417449752539616506774936898342051385052561927434416837273362135603377113638521614837885655619816731644910405499939125350068894697644557026841071781874469156351706004688457802416168980896495956720485264105942108443401240841021430534137807471421891941866597126862766135903809069423585978367434591358562026927635912595431056117366135586353666445722559884719981860490556462263814825325015137649377918490742122936321604352488375019733499937858930990683039633321599737935419691999287498282001980619679339240091934509789114842765134493481398806150129298836271263353454831569415162805326416312788533060969300248951615419897682175627335775541118937544936040576789970508637005491347367198072654555827907619672878797708704606423666342052061398367579754938253269358220729345800074906064727080033451029045800987725254104587480140442476323831889386043365267512425843000917806327478530835600028681349544587881167527458023834022745455841884134314180103126224186778017115964049158181503404012746706885636743955146603700078381817847294604465109729941110847951971271468419976303924835245390756485021119567571489278503935950160008067879383129828778798919360000036784453400743655503821918957167357603691429277018334376982101241214521015275476944398484992717038699023102282262430290158964189292897179094689654148089355962354936582653174914190702326195375791366576898101284107308072134657563859044121573118972488886980758368522391839328162764482695660412149176075488847162352335935027898587477849507975391376482082573575622262189299025025959739076207240240942294139813245680999941406503561424653290024084840598284880877481669372381426074182712947639696790610770882837693148877698358363047210675288048966095872869714823322412643296987694560598748444052493804029567353431514602829963962184136388258240429705207565694580040325633968990017619818947534061524018232427184534145071511603457128229485165139758246834695053196047639059995697508009120727406888606516233429076955392049712171094593294879234927919727480089428430892874386806846183427669454633961438997695596793519541464207837541927566399105905547434494437121641189642510737889254946508956373231822049039684896216797153014379840458091262717291811937802672942678852487882552364546332692328511291104125726302507690573671434480367468785123160179904550073218057900886993408490927770758703332166126548504762915082798921419174900157914098581036250135765742963176806507402568524973752787273709929963667093906277715237463997301919955926515055323853716414753032089748203283745488825226090214329563430844762528727214096573871342718607897657402116458200549019402775833601152083021488424968789263798456016028397539854412181260010330325858112651996221796457077839862444902562950859011597002227599954150091015285392931730759765913947859039654392013226381037670739922880032129675975200819070619755517622236814051139912709312673179217231105795513439448482553258552815923410353215424712792451976993306285017217750689603319364982335605893510453175515348747089033319929868282189999746533627546581028380707542261422362967786653640175247209774571838578045575731220921397239731235300960050941301259018279471470477635342253732761712382959833959292954253596582724795012871212359758280723968696871837428293219076170356486488991614960253627939321989342793227082743749256172246438894491876229155919909536329519419002777104331060415171145564577692822291122919140344372001356165522750092822616669791667836641543233520319042338240097798956123210611682832644898724551169863718352865715421677583464566171846976176949254011554628757413971142532939151876968159946841523538577373709308259189054579297509416952984820870411412540658302179029212005646474845546258828372789584376180062945548935933425684318948173922264700855632022067419154864096392223705320629618278269023943533017520268966752910088244996920284511136731412768072437767960219191990394952990618947999669428150419627000086119293335701282481905154741612000143858489569742698350372859155672823117354821717338900797361242922966218177884090795479487725015486318139808004178215092845448717704966407100789426046053949253054011999738725175268178704386489738769462698980079532734164621195068842829404540965766641295987198244267882023420604466958736004238976612600673444018548735773451479773831689572948940148962591452022281991896345886018794307967067185782116449200574428610155774842381817596647758473199036726539785170175766840059518884723366928175106644480714160656438891798474552620010580861097352822364275592220767951070322907315122331817009547441274133856158093444719164521842009263484636590071226306225781278138900053954192089628383920165220516230830798283963953504621325401148438546401036165160066449375331738211128404767453272018706054981306944025873486386866909987758241780029428751555151972248764135302727335939609068316414059768669889551437152242899745450349530342124697103678637378399925349558394360892571454987877058017336102972311602256196288043019985192234190490279580418200828436999209635649688638538048060347571663923375065019161322000843024659603160607809947917261753812931115479608112163858342556333938499707618799967846438878602976091682310259185290905011230415571309005574563803441762171138924222649612823328416354093027378586822288680600140100066451864507600057084330425699053487727980560911239543134617515083251055214713577461659091523944994264130175424891590438547111785985151676529937546197012112841139256257153799734913309001929122180646635010096211568174778283572929606342420021682000555149629784848139123833764951975794414072288891562221589802977102462075954703750265221812710547187200667696847522137419816564800776466010088864326341110394395767308091887438155928687505303115756457202755287618243633278033182150112101906661426685806949095144458929761662842757925363115741037932344720009015002985533493005787637825145914732491518364449736746165579432465661253664171646198226371072357312296727556769260562783726238298494363674685282136130543893741294754320429990177811238448298467339526340211156718440821938424580821977303144578493597344868810886033455205937976758089052972252590524648462921438083128138810962380040937268168750147517278793289978768879063901248695386565728625656492405432888934173739294163902085721550362499525307062790531883872676876144595411418008347745038213993302284893790563114721712881660118448199653143182931729870589839085754400496749877246476745654098665541643897517621238278530718190453451268934265737331993001771431963860769897253277363518884928577600102806189132771348150228052326596022601585487900678794636775066542088545831471532653859008660722292140282551171073425211091994685188070988194425852466978146462059212431731868676570759551389987624920440356736520480699582182852882001117111016246843916042504446121934141512832596109703823168087655800197850505887220953835157167524498578966998244458828433194241693190530469175764083922316157408132074219958405659916063633343079360535162956092765413350255102990982217057604852925123802283544431716603470294769464574139958612572948999559511507688326614054394279708325282438267280028789975244939264777435265119775052422820318254352110928483040376290494399326029048130195821634061861290898667864723115394891646323573104953026207311435070262435361916921826411067479579441224621469776367283795909738849891548061670217753782080694418349055877059110916653119295031083459576728819211930126497983689987781968795483913677328421650344527306977568352648793863014820764654476416039773093481441020806563887494478129479801009358211997397003244954812998528375844048880658036177835642313281714877621474747056012512200678819902145938023044939835771870765405448820429744720389293106973961640622536041788026754679855589611762697287530884845624870224214158750519177844710447492576150263001403874337965397690522064480745653514218523868299098128322271137945353430606511588358437544818211045118753378803073136708725071798665149331836696270660149214846249335362527219024502379423146905746651491591502535914729797973439821348596281304546292646214169255344579632965055176246601080537059198273906398046868222505437209640933335999064036068333233944591397602782153635247933429558160665821024958157954983471541913952458916499405087944259680171818429970016510636306379825595062867447099443627486067558499902566120541682055170637824758170284545475757980575389516788938838666113029783807425096454005703009806809317108165800484676896779184330822730903296504814998197302569605376427813812445264942845304599575133500037630161981471729714718060320820337707187891052502521006129157066097391799184720332719740375188969683836886861662967417939280379112338845423956711911292777730599129260875326358871295920642609298232807493957117812222910517694369604899441935296167278288512630455262316527673435039482419074872575805680846063639861372038663899842500767187747273821420611166385758931305302816452057971379242685821928033690417293556959534598964005576917652304434570443748462896330410435464306342628255751096763668743635793864040699886407359853161555360575346991560574545788182138254348339422790380729731152258781947270932942682021252731519225471533619320520966801583800850100002197842146154083609172223600176185430665433429969953533763874600734456632467316151796524435942945188541137075066386306654726190866560215474468333584101219519324529657732773390501436303833389417702633960723461747501100303589070359574698089831121073267690091485006631342959543154285501153401566283175643966775108810545357300647500997820431494001249148734991055095343816189279484496243496651654241467706615185278743958462418566850675935285978372259181776971877001580435397125570452033503098418077352994792722555084556646146975356126249503140742729097497982150829407774254680669727177163273460547276716189903605990403104903915991821679024471199455360871665600711310052334431306097350495901791399904065328794261171986526351405081607911518626290529796525253485942777319224560732078623048132681055842125633634390474493525276776427582053777573898538956045328710773501799689588588005282549349303431255382820279751957672571112194538045376475669775404006848610892341932896902818805990836735334157790075890484673684884283488631749293564538982779047041334183279835077387026659548057522255611802638614576610984798026781131448629435448322544515097034796398512443871712639268524024048365218644999661134740570866782540869383127814859196474109355215165631371649242685574306336942277434718427209340176623100853754790846802680126602616537522417677062309535137305311112285516027378597955134389291984773795325160146731993565818168712146435965118936832302535847422007182305488235440900114712649694666009988674376627170613077745446239826142079621291590197014577355780205925549849226167037206530448310960421097287033605870585570060483712236747152165410601908920551064255944228364856225996520435448754449410342165941337779086172152207493083927748255111977329270671219668571550364543479593211897076031580134684658825897985814412548716060321415960231515277055405964310962860779454848590040183506535088646056558617823005782274331153481537617626029670990374118725937264190933166808119318426231840169857758390293648029886030479561462357180447072484618581014327595792721099973172999851525006510545529744896282489436464012065555696938715153471851350951942022727252733523964369575427387069919411674252764787805353945113840164298460539760395324708815472997739900539265740798968905127115678170813685487953354777425590096244205680528825037453608959607958708813154463657313470491606689234062446236076850285707009799593448012095238525088460112520439442419225216031802852924202836960757384264407870129355276756550733638518594431440349421443128687929470818407724872885380683197532756565534450912199853609193259204449386669060616925307879151321500746553422801271208942912281592702901176169217085320191764056201992255227651555034608492588337905391919419040447598268192926426162101845808288279048330342141392660879475824690882014402531868851523276187610014702842985990040429361267382709553058773524558476729010501021317582437312788869359710176116670781248867285010651512273415148067563064474361351998424960805172738221182658965349371859366123791864558290236458015300505980661292697226298936936456351059902614537293195002912978145666019430950225616892072338590547675691034324142432859384845739875989017723039217108856245785106376516604019651161781775320704365287588231419480725317412300364363430728467255960464975902386957344839982107227438409745302774618455345087571362953286965297381455941882541675759115273204316176581630448074947270352673419482581003787022960371754810395414806710454552228376761538349054647342586723515812106518753266323075388625821455427026048906108793816515603296561347576419987364688898792003914368169972856392732187359208626023027127106101301564227444099490755869131036158003285165015380685762804559501477389294464964908585340928682524504549616270166570609641126329698503085395671377138756680940991084019390509486586401029784300125842148730046840369420765845392725419436475781309494093991937284910097966310006974831739843770976515611709377632688709420690718394337090586031711144140319582466590974590899159462445024501814138685949388111352716627048341468427214831079248890073965827889518277489784955531748383760795694770713400414436632375600709677112351744465609267338724834617223518623252755467893930772241137617209232827752775471751990943454237227902367604056897864852612606561118639506881387764450189126439773467642674222432209188805275848853463005128006827905212426928752256412749209196411594395072069442065869181568432501222489734316190672952554657982627533412907111941200839929508818844694624490180617900857219699369027123067554581912796007601412688633810720901814724619405518607389199383874203873433854598144419268686918172149536321278321515054363219711270720943684603500833311751138605667340707316921636877591444748417360034854918215354559056744795626292302606943956510571620438590776476208072783923654791616826352324710455821491310627528123207065769241378896691619500273045907513049719731065600320607270071158452865877115367799213960322709621119222993074045349031352394677958479879830886219281075068033666121851460299893803840506667457451398132664283500956797104360695493745173065458067761095127134686830892467276793695751849255733263681904092594325678534189164507868963635716944285560513302957352357662351809678047583327065186904954400370364583181799969625884304464311720276588110350561363877788962340252076008258595217324291186498122014628251720832088581122871729665431845460425719466795705429713328916981385379709074967428281710270444902544768087320602729309197707895534854640646983727548947102799519905848321191782794300677171254271459501762325272871527193657704881812316706969424216679284280551577436416648172936364184192087403111652064752528813310462714409699026030209610425377237076475685584607919156435088880981293815785026261108401212320458381853086512401216119356725635701931536061218639177350330650732713355622419933379942539089940485588163367535073103517424699610052126666899956176700514961036731955810172699839175395841703939683102745238468812181030186386761413961156809346038858909712333735587772720277198497753848302162754450174873261777000819871559380203410733467861267706364930025825489963065709807373522640588515881985371544108868240417921095688743515390900458503359254059727788862332844435543277317469038946361472373511774853661094573313855002858075317734089413861066698026028661249355579750055282133711510460361715976135644996215640844715231157491531722179825333352690606438140945222227834400435356726183416117450895532334151274049690198294945525967789538574564370151846965076981912260923096004741101964260553453692271050578213764185842993479871833242596044564640932992250907607978068767902143119375612876107022806244572434310179562619299056781189446076528044345940123423733425942514242526726511029910230940847926292420254518112476582110530474595826635100479629562094709629644329381222586867220462626634834814790126328956673948002478636452431392100755341148585110439638294544064282461433884269525401632784166325540751897619489132904532856028312973845739539240231090982944791103711884564018548135963202206961295666457387937329542390612813135746257196446269896649716945033159936246037182371370194016074560587292134928108599706615015948651861987949503954474635617790262966217668939700114494975088952705859933862124681547872920865790835102399034592913149090395828250668141831268678038105807688425936322334235124044712542827138000774120615992371807245034804710642900292201147764609327784455082622016628697394857076604790380131723579078724909438022834772825894475875231035287161982287738901369586720107070271047795387001942475011762096177182579869852770174288856437071273279010401678880983167563451110322082038567159821788134608120074034062034540770141795603989901048069510115193009177503248006863923687684132381000934908644207444037616359577150134060649062080065268795952593893555780796468753655289382842970613932398399512483323687514269249184791019978563918433837419563155524187384017184503236509836237121128536662394839347926099494555458323460805904445184255258723335620156311042950201840181258990110418957977963339714922934929772279702688826544643656644258886640167859998062182092550949817219937436650591224438619648157363889301863189773829475385665357204878305451392029830310715214684430515102857794211481363491562993665425126370440539231364023300605999770575361149517443825246225481160008841947125965136107138061348787853881282644482561718314517989213623925663765261052481701596802918500402828156161883558340100524546168879743594879672807109630785731570129809369703933262668941574214727491948314366723594522068936607599540899431400931192577776291350476150747631275307127499307907593586832664865993355871729646019601215315811846992895907706764523274736184473519005509971505003432647888102987375695905656751018919287477766110961612706479550406142386303809158318572987276027195502000922712468915386729989428150942938797957179528544826851277027655867078913118941591538062309294535367921697648485912020474143367799172303754965454463057523239954365294953329443093582413237792896168886662004455131126850254759941779152286279945767315572625232829248835522475037969741448132876211522948812233024922179566032791035712304468783537386388760146281440721474651126725787980021468586983534653780683590518524453823309022147781670659409565664903093210278909238100193362700193538701731109421863833908085272913863728631227662134822422193430690470065654441709747521547948538090746928579654107103078296981931706343768273021084216656643888418581202329726304401040698391563218181089054722246955470197199352610953403399409991641340886621032617618973926518163213503658083091857596129928395657798690066160536565994740879112988702469711887467291160445798185080228298934095434359666450523516185780830157141952081807095341297234645452671806913985351527070265920663518283540571051311839485162987333285903917905085242134288740649444515599593264278053371928119836308186280463399675011806469113887227223993045789933959054830141127441517956566526891595041102513388065816062061542572445557223676231032175223309221751182111428546204875682764929937055654583867021281231152626268583376341622012478360408312488025212608902016034129678985725711515821892891903795493099882546180386424014054107176927409493653973180861907721884686959507271343809417955111529601933916783194976742210659961711809395855707200446989153127315397245023318352274269248805994744723279091966712812089568220618387396781303790056470263372370696372351821412770891286106509108191428647396262519482179121107269941792811586324329590727359212209573515908484074330282967816899104977096379085450183727675754526352788358577848567631096597759116241118028557153186789018752287705066111607153549192492833252122302303009792575591736543275612938542702691696734700251988498091396096218519872402313183982269777135166134603692764482874211707131658834438294959338808457045899167457670910151590898158999010140246120865495795762100954371740478966057001250180798655815612803453574177895909000630408725564663056853658489109216519519098484129030822405750945219269165919661828811409240565835814179095948489053055538690339115652676490913941740567825476311370055697567683180354427392957655486861573976255724574839232670709145831820027022650107992094489241059418943561747741354531449007372978697522306264339290136799998308584897949625687683754855712335456501565123003216029396739815307422890086665864948820290561223651456183334597901531042418163838165031716706349961316854323891162112969637986199514982960236805081400009072094496001551500746692770260699826957834264014492539336560082949176338165714957632506477254578900887973545666546390043221366513513010611809437692256493249326635624166151530339051251795408403659056195742333043815147002759950573521832299104105242209460900572811083527215767919990616260375406637405175788591267916634686891918028557548034629307162147328178615104781990443580682345583162389031068822019400783292101621324029395254703314475101456921316932815191478627132179189687624204760000787881362296941320567538227995541151364144347242259342048027548530864674146559338138458683486968190491839842668358750837641936905158556702716041830148199815710138336962892911298467953855072018381717732490829681627705201099094923078620304212965405843468542662307255316828608089101490166573766504765578896888368386845853221740769031962368351525013228611163213977054721866688684104740992134259965159770401310263302759629406998606611246344674425171614465548207600723421546466512281431929248410216554979910573205465081368368759475271592824383271138954344069088524250606000336273758762088731471215927855750596348000254650976195633560874487852902931787752852298370001703584791618304021428158422770437306973171899546556525834394309464708095816189015258662668014996974067834915841519058713825186321365545129721557704885289942897088889639382732061513764477283746241669423562170389599384467809096397919757851837241776116812564281556459938269691673067970835977054961783749273252188094690934094479653863173187819877904121980814879174459368193288110632129430007438640190758020521132053664276386219897544254947287116025346145651229652206366302962622757818218142027298286507506117242043160714883193299694749502015054519508907372514909771832148037371038100325528701768859994963828609763087268570275968202700550747976265353154895181046940224769364687834369090114166945027085109179439643853843238730952844174185920248391834120321030115329699406917768623827901468250369331477649883827712108498002989224786982613285123319802268893367755200018311067680783002321322115289424837043129110617151245829783764805004425337267886845959791171837807465974684761858971802560128756937333560389487471737759273696007060146673545109013403470403967192078652237638668834937938436438597061600043120649658578726366793507855289733471702469339125377779872146442137099395410216760633069040523832694456320147589287229784907742600603729919314601743818843653425672077483148235902733855837025836000810047369832431909253167367055799762918524471388685853111497152385765172415416617894995625752935580323978897210956698331853489070265506555259440907473666320793932251808131282849000216707018382617610513471020499844221900065516637276909018229871917159183187933273709216251615575158643475800305135492446775964551827866735440050872527771834701693154900495534864597482504913051927763579935494552867588636758335179437010803664640369110845880645369878142404066921593800329253805213815231390263178828539270999922874370824967277667830026733847904993646206786188398524915113670706564610290123781763352946925976830710654172349534699832001725405228765561278220097954660126177303845051154068734028315032124728799644385680100383436088673504813993420986762070028051325862172659880263645173293333410083230543573517906462503184084609193101697792639871451783250926273186276060373369065179024953653258462406452515100538877444938047434765062588171158418128511348884005152928669265678015401564173266931824722452087388383182011411925830438525746175086676099689428588203453779071227677769758066865821226213211409984148725580342210942548005729371026292745745423363980372162724786681598059406634406029761727235073414143603411015696570563535263856939390893626011880797558071928442651444132065341824974924041073622721535590156400648236322437372974421887511340703699790474496290001189065320780741709298459016850849912152668774692595155374152381923009003107785211507033616848718231920562560457602858789558877888765130064024508688539874550770985203527214590553555794286747003121089411274011871991430509350486778957661104088085598583240819760106798436773601553843119700341420134706614617953158050966772287985101823202197853664604476122018935045310171116368631368073519904310928947450190924951207527761027944925283800242440856038107930351453554464618022343981205744381097954459728372308056256915904317313131702284139097239091308111037347509081192885374857294899755275192918312310691953176955083669819458349249982284239722544376831459461334916590290437333063688125930368844321251250999721976927247948720578772710480407368885494872129781002005195302108648916604952566671210460260826940747383716812020882967345023223251533875829778012826826795960415921185597396848527867940946407704546256564826117407269655390060923181424630508800090851998874686532701254729554134421781416608752647338434953279916687058697139162925104471363934014532113078000407982771419371678071300236185406861148443763544765137635097768050385341459806407033173036209397862174269322806686023840921444923072889573341036977138121213356717316837437626857135112879216779953734021201570579441911331253912365117759946230767838306910438643323642344527294216903918796034313526037546694650035606224672605422934421122217238193173940218100611207110525462881344652046524293284084267683106572075144899361677223865294456113742363542605493734993373276509495562600078013089826884428116247265309739356693104467300935606923975522029745187239321044107549351651318965787031527002826090519474968805268459160591965646125484789650921891356802171603215236230424647507419840892185198532798278815205447331499381926467415844812372775995113442391820241507167293948576814002584270444365724573686707789721129821016092669174940672788622336982786239863964104777275720844922515414587480540568012880018317103568166054380951724678224357151149297011653043402870323176070950255863143546200786773353021893708900177010479473581927622429578006857877789490193971116296604376936198907847394225243026214320126631307031055500358096751684783984526339956404853657045731531198102182868036802600596591129562422481201753605960953450480831520572078480727177118716481122156375920947682529339117212614047747525027678004791390878513225040518386592266834394287376775079264118870077237469622536341932686171156640467237603734322013321243899045094356272750526410030811678251591203909742966777355534850654573986970587925100512279564786320949910618447554824440912672022747917603752372195964635823385925030728620274911367428220109224930766610849716975481515398910264484904400765613068529186625130697328158109763364456186358074769476345572690398942240205167332198797982903663738958845318838658591610826801137549160074792836091871676154781140458920857159424092946082835447473738318943692296794207574784910837172770519988600032818464365856465764745448889409898417381003010249788102624096212249968445861623648663840913145738043459907254007729623408687954965930404620801593891294250056048905944027787163777189042919898222471180499255618888415368627726206753241305734641581087604581764020991755836810012718273946392113019359409793772926648946158409720913896309139404878129716859187353614504540247133641487932377635420293009393767230518054901284400555327231484272892238803285699596938987245347487002068580243705714202332300946202140501185310736920694364365072488272662814463849985964772602102816157618167714934497928166537415015068908859784109585115619907365177827729139520220658163743617121352223997595166292369616498745938081246281570222863370439086986096521122044900189259636340568993277782138837417040998892948618603403251988091211089367891691071758282978729129472026745024131110511353731518576436957098620575933321388045054953987852710707173746069284794050649685394138598015410074409829503470378430546878922881870319783138299086627280892909010048190431517091726405976173866645927077652876628734289196340498402589124328157958344489185237903887026049791513061003817849885130067725928245614709778918053873917700989312980161436976066535239398333841481152532063885203150167089049604458083478267553354978564919590594633425557550108845571104310222776205380803943946553578423060543080832691379351819062565457621086012070773558994234063304753758317588839428855122819980123325633305591849533222895515834188375060462034198589123618842783465598864689515840486065425761666748079445013069659487768225670674301825655858771791851413589035977906428040855637590235863645107999248977817238911165281073501721496536589768841090079141122346025078515943355789325094002752092831706377514852172125605578648227856537428574789821876601146640827905388035564156754566975039301041152315832630925373815191668851871475759102959335898020120049299577848358804319048048545042528295914913031651841206228813068995481785391742552832325626128463329056822397907024761866755560087699767557487295955784821112435430283913950344260311208685388469806747823275524952858851903277984034949885213614599005475872268930002427895192465518150265756519373879094481317789404052930408447241918047099908217707917575247475978965681429658655179822552377200782198691479143738891932225269370826179630114994937048950163526254808085376795314279949342318159589855682331062723830953601184232217077624498319131689198463269608072503114133784384856778827958023776682281809689410823412306714717576919773597742167649245501094746335453206356084592294542488146315774547504515191576031861021951010941491748876641779070081577773829298834811916568264534922595473712494493936191634954661144743244200136988319614657200621200887829473617071091269780610078811050385460381224525087240280708547873545558295817033624546340694352228477031005152340962000314811682120069932764007091520773790232319088004190666049378483658560429554968250399912344586135920664214149960729004309011569803787054362869580990943150829283134504721595863561588139380683811313610945195633520053685584191503809657633849171101043953173849964440771011903232330402979157487143095389801744568827389579466187300088167006458921246921217397886028616597446931580437306735901520782434082287722310859876153024303018368129734817251052918882060727271799759335046838582570467119976587212389965477159222660074314518780227679327158442819332939666186456798597743402481043088136566994413485176733655858404745853290338584048366927583993192650834440156023051271690723915283708252056052335858477001380794090673498340877718725067820412210913983193674871291249978289674603882767595883503000287038810335893751799030100317678092273968580996213400728658867616287506468428305235921553283317339886454588367333023046083618512806351185723142483645830106090383834005044129625230146087126741144888250861628130048199035101628628818895846870381779271327035309142481418445370425000706346742896947042259672152382654919057165747814085907367264207950157582723916272945770896554584345998710254522507686524498116420535427271434362102725428597919185785656180438430297546695628872597398634390949008969201739436489239201422086365107639297376884593252361982925541233208385389011797272424473051170423254493702093145763466798112875862327061727343239515798039405731888669908668322192452052004048771801408593636225555355109133591154039879415466956671575147997135927385402789081400463767432681080603767390289052861294648674183101243179735828466761817364054345437016444378602931717033391360426188504462305595194640249894404202694137884943285886795647198496945231341983381906764202486563381280156094279904932214930678621835067347969736143942640755759735046529845955311358935472153883900688964335205129268142806119397029681979983481743571696245753541911535365984983940405196888564697471258228247263075374437207952426305839674592435058246716885134822824313967413630019165249824602511205226529708949157185351556402000236753211501766830279647644431109286779849542167219491536437070628653492918759918730725521217000683606639416120209713592773632555498357104926308544588641874741459794735076203982429567871767004270612258568519294074180364687334325805100703710667152242451747180176881768080297113045064946112159959763517852279953534525386510672962550639119629915633491699278073172081008787824926921664645391288364775380095435196183721053429595515236836200959472828019028151868611743022621279568533454130650388544325667683295691056790331298631499019992251914810610144954406701375381246579174998201002491723736798171055510969039302732683628674827904985448291783358572327803460380719805279505627472768041460663853113034849920627476334234159188435616146163322169613678678270614261781444039229855416021812671120674413892507732641767507546471476376841498137429957320310436559791133173393601091366287359620862342857246593364687751483337784780135871957344126934541688365066023196184974307559403453650871923935532152727325443245546606553844966669894654602354119583623851183553061457091896964089189870652708645322564998594830597432306617153913247204729898833322384195848062550933891238574504174781867224288678095976270874082693368390627546301986172170477991423829132906174927682773238742170702509759095395237413625504892598453830536996763256548074817536736587902396269635309275692705037515915219319344534548377222243311835869956990803613189874846657068923765406576102536138701152080656180453511180717582596383928831022659548019381233294628009121558907517323483508081275624475484890990222907401550300600465973636725883081321429962726270281197866287828982258381549689456018855711606199108522806940237857612472322608203458816764081568952551792097015071731232014546807942986587271210817659903726021977691563504013941332122136301279237706396561226395393540519067134553718319322489811109870867030031270479376536333478804807146695117161634618856254411677027428430474600753670521393736823625741085161847430330725161460125131330009993695292834677723059854818118718109297546928875122277388134516944780368908820573685386087960722104123989199098365824228145692065076479220415764827350440062224682896308974599643462176860977642684730758222511555513649688435058141153685443946453346002051708357507030916276963544188886461404849071554779968095763754185410330697565980873385485497047133336272324950765942714917824236930590017630779900475115529806006017005419306677085075596190825069862511735740548565016532791273437338661797892398720803244301815661049104174987404810057531678642917981496704524224271689407549612993239466066686818766233031686786952336506807715083139688667756816026330941131707990301192600808338733525515400752390313898257508612204921600066605446285757258383629802142324430994172817686332353415208906240431101462197463434799683822618160034438006790312617552096371805575373567179716298405890280851561838780672390999263706847854405856381399987455559377333663156189531042958765760323859570931687756887845848267371203166177272906844442510622106981367274847640157949487764113684757394943716425744848030522075855089433940639423439893454314360323908255836545988612125164191351569007427297352911792605495916172216775877200467263582158990203972963588131678251665333257390751283678805071286820291715042914156729453868409769944578715389198479511900557185875262502796397432918753172702955936729131131328663158604620903587569527598122734175447484425433412211329356355157989486762368549095706521564866016924853570538920646065749083163565161432531315336342609257792677614519206421647164733537426444037793937012694116319741726202360131927328548003004938795275582193264120872434736790140729199839636883496434227435246379219586641522357305075603826538518047796920989844810096110679086360866446079588754899433648882190183842158685073324487750457862449514439231494503841115050949572110199125259051713759869205538784713450525488024932583296719865000787982950991550238790003045442231741719321766937093896161146565807068805555450627548052838765110570157895658787789173178495329561222932548773120882272978600255511359575192350192510297374942629803641348155216257748478504675535360876192840745830803507613693216277102368160797705091209357469949903098290032767630689276753214367414489881971088096369373421852197511449321379819706213969266810166985456116747745913604097276381292181250728484388355225643528294034084167837943711045953884050163623762287153474252886511761834283069809589468959313716422105596828960209039353228899147657473703451579608612069413478842082424918423797286989505006718123730389390592882816741037103782274078315718183335719069540186702750431160218318957495195448002280949417378022063766029576845555099607249095808274248048054916721172253386764897955679061869328179413355135417212222789787951958501427682436830202007706277667044238430236097567482956506809093343310084417540017321285057135626500453947356724459029105238151477509168090475664573226836267766950270448527195583318347062448723017959056006692882755628160874832135405533143400896610726867436729375453065576809297579561230781861366926744953333188204473370491972480390543738677021848196443853787848213028422979085601014265680690090637376284194622290698467574514660826654063320224318136155242146816986571060979034386340642391195115902268283063995724179800787350894400983215957042989212583429866750756383113178075903006384544101433538725219157478842163003676093225979842613085007411002702813641712143995481987588145371707891570922056965290943223252113392124334984370128861052871051521189997935050979704658199510497051670157846540477273206981045185675581410294876985837413823701547258026498578849447372304361147584367645496419927558653675709948768092678571462685046983218397411629702493972739137777523293410026927290189693601130310780127960633141780651284163846396417186924915725785577211513576970889391002031291046102288811346954946274592431562701907234702906479522052201919159255037821924208077878809710504705375687779566221876673688059775976629801489055426483444506240334591157645238325079435119227694437656668573266130137906328564312894079808740854198936117848019484859878676278936828555255296713503495820400302030467729131804195702931152778161010739186996082270477442933230257339668211638184080348640370069849308155964344830697486714534386788920842357526928238240417792365407998184573622975122573134884875987081278828402844536266113931384137637874724362318269413054314703626925588947035953157031170505079557716888160401578106738588557730971293329146566283328459381266455296542146253449525480040312446854946128846246124132394114169281152506192924394913446928372044846113591436174992481251208806578607712069728874028029112704548982545691115009015614112431931492025260957494407104298136093697032885838951084775803477986423256679336165667520277842708390428076135450982620943801794756614259362365852469877055081127783627476369838408775438262719489103613225723969662683770497062907602610386559897987892529006596454674345707960058893675470338123267571404152244365096993711148305265043598193550241498873859152259726515291759642183042955266121966654788501244290556630344465546296772274885430729303578849399371247450729598225997410396746142425273840151342782582598768643373928426659562715794965780102539529807388649318737508640138746262804584610713671650079471930899320950656985647078639027946500051163875795727043242338276544501912744645486390276882236420020380281673664651648820148107837155643206288184273761984498049192377928674699947640222584339360093928624633237312948207891038957137840569157987508072974288248381795298077898672553608797529332068143693368095103422944817546532662469611147178517144212950575822500234429448471647968588143603695268619525023124842638001513064045200036862941134700789440848080407442315496192034820815347214126089317026150035141698262454143671930234559106222672951768310395716344667882912277832931561664492898047601017981922660910075646462804622660830676358789622646523163596644285463032298912361667905097443459249012931576330982702359649224631796140246708456435666775794122784709724086572765316488844650871977289658275503512871575011227826758402556184921814434567722847571022044839319420711621483060038152073190886183287912748543266635503857796104649336662170456567730110546587919302631789524917879424317039351255607480304754741924422358557402897071048781520934671584851438544396264017563465919793904178873816895487809183616709355061131686176607834183035772194084216913614750516400848006759059968988195543098330153928863685618868555573840772070621876476447690112513008189472418258347166013852485359224878686772333390095032440284273889698020701564999122037089962203134681731680254646743097536472074268460813652722928767980119684467388533811205920668436121329619687944104071411644821511229014203572374030702562136241428382351326229608823478346124531368293390810705610916229356541887695913809470280811249247691606889534841589087168205932437442438249118733702568053423696206545678507224434920570593062002846420534017087307126962836067004947679305793755762854734801794205109395768881386212005620750055683207593832223943607357700168688742745508554284086715766021024027040580301977355578920312630524359835393565356048918225853653608133807165555096381270061848787419475147156021183656830706158549730339293525187708714102804803246925689387996619453136524366137967692232818880517389819523621412433943358058495762493619910465275498024041793225630427533067773832433830423584348769181514904327602710527487137388886294611793788518668222505447960332436207884514071135444442304401528328869659578843551991774311761846373683582065675933753563489272749030971450120764706303016032547538245631848351209634519368546550807681650939738539400891264290773873251377666122328503510016530252439050566586622232583445456063966407500987148905770760523201249692214857685596299102695993467125728423419344973295704449209993321969130505572268576990636314138478423072026799875912702280799396970073712786575532160587600557591467870279658758308521915743560946497089527445359783586364616613822981609000640574288988694652220526361577550329342824781582718722433627759085924042687831001641042684683571933719319589845357067300639835101542109028715577119390954612316467927605411614169956513065040489897400038756705181391489945618524243976662129720658746488000371351165572235319652345201692757921253188684021600703931951310619531822896103398828436132444349379155068272435389905778405259485651101780238833653012340740228064742709328081566024489551201834538668081237611284072239252441751840598776980567295029498459418358114696514513163737602815474561610072274012133010250739010656305320101918374206525761932407912627460423701828504697424064502292980731219744206812601857739878209597571344205786221330208874585567586717876082146724261274105326807250165257894264229615817002263303789664841339527263171422516454954150811185699243752189221196948906126200607250534837920346313063065640028427595720717576706134916371446580783077481386132696055816498498281830332202757072665224374082250788687788195995135872837049141860534276254639330559931881048638325615775523012847047459014587720097703855005943465438035869499378743469242679594831626963268115326145336441349053990055734230894173047861245434379005600974732465897874187759004776220760881166299840039445741961091625376293093729209343332194535513454158254312520784909252309895083632440595973842950548946605734077557110580289569727953374084387123065054390216545605486239677740264687413554263149374502773506412265214288487488474852947801153552716933194379458994761567102516429429720840108314658736163732139133018293358650412758662997259308890677757002344961191002068695697205907201331122054348227553553227532807695697057906906850443157503073788334351722093045501427033243889824951512281549239897481608283405195683603241219852944490238727040152327125975298207742099501184168808668914164010585636367285344453892369972884820427665175985316505538981394652180290761432952999147273425364432926132745472814238234771552793581854281865401925978961324438921497507079232238038201533249573374519212660953540539510496898532114201400413769428071734063252258272903067539260036581180529862007605332603702892793793196119358268466264322625810082532492694400777507955187562318602640221845228338605712000495249695520708279970636203972616090969837590765038251587195180220043596670762895848756380552642563319696362340214933143862718686201142942859279594972031616900882831105261758670904169608903677157189746262705049011713620084818468210891588075774931418183780172730510069426821425947573647503244126925783123028352984068753393958479031015889583816298772748947368906688372633135149665300350775644660417647560323955074152989339971923925582415643259544486701366611862236840211896430978328729312635270568820510834611784740564279871657327228928306651002987114957749827195596830685197843549600777032062561796321464531294219341275567317328289974753026373675773865020191982386220678396695297035343578728533703807732834888467132870676574862665560335522743344983019690311640055966014854031642715724197795992482349476258660764197446564244255794221909793753050140872772721678221519483109660835576834325598125314539286849657124648514468083638874015483341922622085575276194579162811081930071623057660976007050404200551816795937300912923292196149592115682360018482250693883104996530187290054792515907053413605673135561520107884071180126453928577477222642459219378340711572644661180400447093973989170078445107050270466155523752190276062934611248328248325673179134105349822432845506424804098598776949733222775378141591310991423030304515979113059887210112933920967214772958933985008459666127579543564826045461313342188818064058009456503770747599681653910853551180663063299328117295955109587806300563307649614427973332632590314658400752521045898293181009366351859852110494044280656754833618649449194205505604599793837919624752114796988625685041440928046583844975809907290259863412276959235424141957362637064761498248159000864310810996511969211258457328694384679712967768526686970182220225154421410805988155024707888134235340555268005854436258213959360541381954986136618745332971413477472179285927729332320445785188951734664932808758789855363702280777973394562587316097414515326766588053277507031912047055399384166542665783760773117721070505691753825868873469148053619786862275415895016674499387491780332196585255114053683042685905331605652178070685521735599391725997088235968600209016193053797061417352205646138753746120571889281803806065932656730600735326972223183292029062891078292430542961039797835908411547903340776896295768948204309185690997095077986504695140390317065095156148647672968196548097671569037137383023542003948166575017214426670393460725223079962054589992175148724795466318484374362214234353306123859959697164892138380985619065030701337748899893851262964739935077755209619346598399907950590454292791661602585394384944140601573238766094983243952469976675460223191056727774355217786121895102241029867079025735207600034997529776514527420095624783712646590404206895438463601613887332443213215197150014801877021451350822789061770823724631826707529834666288446424006363139151988378518869566760816384533056717472054754523577377351685369761947217963502277876677897545986315735259087939934036313515180961182054386128235330309498116753755561828811930454678475421521716629513939560716504229821119771378334261796152528605224712582498953898776955901048505295427798209923427084643310030742484778111870343336835564525527199260795654538499080027961355907852830582362365232646024095518040832074942169023513815677585711137999436966846751367247990785814177230670084308850724224260352917422383717933396625515374942102825319501613156804924980962709735827268656106438903214423202352713555235984760404612970611295777080922677573562414483344487975513721454128143390552516666520705044911252735448237886099454931613895524698851977426032780708304789340031771218736006962788855223307362837388832523032935684567933044413699622097428552740142126384999338189643003688501217375761976266957757560707050972894055995229272697354749965824846125673215178953188367943029906930462437136902994650536404059063573434976337932333113938641080672208002522539008673436207708861675331581452509346199221951293447604605422060009852854535984640086002279416177756989804523501946427040963995258006257821187409873782747493922913586434536840653439372118822690727332013701879377107233979723976556856896357258418142147865344354134866798809527436639778587781184851614994300942257589928383135414050814822625383091779548504318230778810182837927919381551656240953063050274606630740953756026125689367200204889742156554343731810016074457955030388776464103983710271232946759478678314794234085447240549656654563671668369065562672391645616733888038374090336848320198849880623076060942397358789548373739886756255879370737911207897775831617486046679287519663235451018128817217821421527491196640726912223200886027362796658389764447718813297162848201704208055761367884751029278421074741944534337464858323885129284363235875389110781998932274259299568750140516580662176642072005911285090820606106917103450670638379398370763455760821307008366187934907650688776090984874974152541072792447749905896368802741361723896442083490595301178579531174457198683866321398324516783811667020979517380971998401688052042672389614682464170001760945459855456626338335946104345571994071480344167644137195456949170407188732962064051736224377309903749611459686259678507918827558325189056027102767233958064447698032219510013749000681240525902647831117389349124485423356206093641532586179702901626345554418992428494908992849594440041746011425498630410545686650975469803825357610407824635058672305720978687611681027153694033730665829477404108423593277450057486591116986338909895545435703055052161870614434556076320002042050654736726537395786402264998530861753592598960022324758960922958620976586830313432269861328545502899339058452798346331031024785927972159264175758385838826647102096412997293393131877155713149759760208814013592460352950168741585293592316971728648452997639780168711716189987389259664334509864242135376674707575891320290181222736589397767914394219972716969210600564451082933888304986484079388966658028200267909429836472199247281448290268748716819345706961549136926223851110722174217572255573248988031322472169443582222153143532715992907249773532612840005489506755585186959709772035639747379629187083285361324027966317077868212723976182285357935590023052257884132635434285346672889557099538047001757227392801307871945722568040047924105282073551369008294339929909733978041762755701446902678017992954355773175864178712814040705802785632163959224762612336072448890474081203216777871017564013432491826757870457572994836742482230918035421688401063430129309166568842291570606649885756856709525503086026473774791980599283410836877579588387835709482963790760254862510165408878516700061073473135457943746908352931715405115425165383985597454375973170388293980489762021645504098529384455137628627307752025200740512022348420733228560946767961135255767517351280630256702944880803100482678514959088947723684047822670617736483950330972601507935715893411626229729178899929240490465656914600276623759638220040206463951207674445817463305028870810099392025836041907927938224966807570117736141170517899521196152688312235420842599250810681005648319910531396294179916784653120197220800301020123849633640874549654035540631436151609187950690108235608473652163012896132079005290417653153396395500475628725199492168092405394222440389353049966180597288092124854932664054677665568017758504431302421373539473904260284265121249177209698064536625895976829804120919016914413371888069217609302630412414423080813094129643220662506952827456337521833988328164359960159642355719832841234435660170043663978406895903748131433669985167368740679237418497882196051204392637892465545426914186041389672080963755783528001233298588233688295604437204660154750907895358802895004394095976126302947450933318976067949672737484645457766864209590344223500554280098978228426195176481831024213025294242628800415333753345252930159652792414434196112387392345957419451177804674390472156449379401908691276594344916563231106915863166890152379293259407560501610860463611426399398192655707283292136012611831444926979487868618892320937671006612667898310122762359653518305139061743791747243833458930793451652304603235911091944214084441079469194766080240916638484638162868075391918297903358759958284164147995409463049591645626166994682430363321643577957526480156589311784343908531137137138345853717437791365193662935343406246790369068795261056046140342888683372449120883469934496450590952231416847701821428968609144111826279675314575644242138044941727408554110393656378770950075202591060339611016775928956266762402238753835592719018802396105341418197553309897843162472481358824011719509499922305229667623779742942515188582839475271649753355862397009531380911855644955789913668955043295200752208278880781587937668541936662073821991737901978099393820972164364341996422209926442256710839672690688759390855397083536918385324887325155368809622397428528300443198081103178282859154043152318225274342061314393320458473925335136437770830979445324334707480940987595897675721533039308297936066588380156057348810473264384173332857797249403669984611579175503495659932197223302484771650890069108605663936037218560137508610934314412797458930287839542738984777307289039054373566822626250962565466915852780994322954919151622485609665178688694507890894830852927024137653777408970149039413056938529739186840588479449227784209522942386301448277293789830410160110953581146168266760808121044590832331517906974918386550590907068383487531427573093489548428134744360765288665126131665847705386490153074648459592093129600546793851659103836022179949005206119628483424060735568760491531232090873226097899153305384443075095491362575146154612044366345409360834902475784067829818746569331437881413491176726488873048146561211211058763523717928912375549221938300873842048028918752317309474010205502514582456884849932166458595717111814131026957158622745921098456343221703347315873456370123587490729643410770108544601144988385679072082316977689952451352200655230605876203686874179677994503205384092172477860721458127002060768100624163653556658570509689474182522418915834112572571492756969378683767838843978158754637445345130445317814060602991368564922468263130428055278826827947084084767074352218941574571810250043226172218481554333135448711982013161021154058783127280711671748660618749262914923503055599728208137377661271425674394602780523490803189550724353655983943017861886176301214272034210784322683212082752827639133206938619705162569748796224441049430278489850000002481988624387599641457586707694111453255636098937370474332080002893252698080435766595496494213079474683780197682699590990195283996085807246953562438636975571962727643420424470819632509796659360532674557335329370554611168029049328202728027142526284497576597693667747841349042399724397691370614088199853627501712780859555410107060631194617584321781057234829124366089874350423010232561463320280471028304643584154223059284803721215623967728089246837019900515642240895273676813770017953020348680951293802134555197533876697408013880018612352137012880357769836076281115216575352187923454020311743916836876718529718387249013674975086567164779300207619295453908023361149119658674196998934303049668959111726955587038689212186038812940716863630919271758984011502357013972238277654867523186479916969487134199771599262618560013020427783711467105974501426281629216332579717515510971665833460119782959621978470857183101099495167737346319052554030862643281575365937550154737755903700233158258329690170291489258772551829469778388051835027046680334117593683561947329352143906153609052808746196716589672876618172492749428645668217706341393114998954379681839270233170090338856876821170392408861099147362014951768999640506164189800054805285151660157976730632185567344321258180751251890736416266971705163428050189110945879637284606093963464340866769450612946757564372111418484278913481526402290244470218109310116780717703670621408785269358557257264625374173789965344931290522973274948714019214404262234598738322617730674407336140371877961981892101438273617171111020145470030335004931202249205775781352943472934297920936053136888932534067260454550498940099473778744747235608573631015831811340624876923730483563872487727050915412605759303821240971367657201291860758538615607981298047201222490225708385391861547939049579965348395004025470728630249213907634745950944663274169749445267701807372239874433413684113744281350948024318127878100231377054149048185747369207664220774687793777013778814282354478978153940281573926771149723877367369057845453517127207556442946011880860207530517031143236004651375593757528796700988719738150750505431313923977931700209232073654963774292931175102847935075837924499093584228561670393584254658368995213322992589541759626264288352930014934896782079272461050880947762542658360385182560387212444163577986657238126540843430190256669953579553176277488606283401869638582291690255825781871891650144390682631363596143567645071649476402561993286656010578383746033676223136125659408192545913445845544229326975965201045853279728931504463162890863051363623731941145013927900595228707248657222238913795566195784427555548297635235752394638742855329844472309441830066400099941413773035932224874368392344716672676097738204591103127917498184326836560230981945468315476674453069931618010428501018893817307170114312465526411230304618563702288589876860976926572244182367490891620707871300770042539213059420415667369492963209045957153896221920987679079096541531710674499768106943773047756141058985828709722590658281118744888200259848627308960663039466173619774956816641571083607882634413911979907489400779867973783924203254180282792476534870986612451311510767113649133887206511970782631477996848733681706873526515955424263433686790046526058626963451307296625352766077093298452237852602295624361509134597510591325447765420518926937751767437541277450969385907062125609170303596006933675389894514874888045557825665882470967370575511996846777631314572407529095355095123803229905126659042309067453274813830319305918716315875098694876264517786338667313430059493998846414241693992674460988626209411292579032600540227442946623006860797004045355367841940163420316486850896916444461323991966328472704473459198241607291450036864750004430173674297574854755738921809866710318385367699355309980160871806775675104519433723608178102396922259990446965119755633547758497147206192834837075945931170854190883723916442289314223642693850485170792349657622602590166751182866761195919711008564439714279688084004802630995321442440749187497277518747686296017492966521021187363832455095329812486225089512295886074434750994802963022901675624828182681967488156615619145012715887772563723210234349345370584918486349616576332520268229962184928253053491817752005162203692402325576660597264660749529165372495051463179889882852316555351613989855236242519629351180082044719453302480040761544849506065958854429886436663459166890851772969582712219704572627404156719535391040447632930468970966009494157979398392509797831203054419546746703056805486677650279891944155028431905164259511828770376069591467307904970005786730109542961662346445977930637609898894514942465127090368159369918962525083769684437341852519696903146397953657640571115533451376265168267144264741949367458267974234734300993127825761968933412662379932728201081604662630316988700506947570188666564084164191751314474799071553374179481761297136308553563156312631716085608744605788269841961976755561810316880346681421207586170040715485973004562601350417756410078945106619989261155419555634378963164855377493329493261958510533428647831806200576465085479315218289768584405765260008385902940922529126679619805958263688389584040012908798539479737697673697831933108692085407026886320847882860024720580343318475538077574085251862210705997898202452474349455815709127948718841203400631214952946692347957455067240480194239593485734946522583213928374097513044775411993851696712984951951394256163037553607775683701464521031790965297930320315459273976537836748249480890501611990788923799294460844278787049535436209609232347754516628413851011944722691349470545100460108451783418391373602369088202068273693229630574846299617052929353810002540298511583176210695414806179903339809920425867970245803895459735192682741106026399505175573248915079127709756965410032970483529035178348157823800239667751319363368327646297276240581494003003252424796440710162578415038363020251980690724210817340357454773517457879127360178422732926649112468109443189334441477104640659507550178425955695927464183783618574722494000919749113524186278749632994056232933213223075818398319292780920584979614599654267663986295855362863717019353431272898676218486471216482405211250207267302317102953740163722083810424937056971198154405633375266683063199558787640713644031274278358690780371563149048355807204178464335674931860130022410082935568079226373818763305048504790325962625954365537762327871127074839228318406341413392721562698413157628656989214571767735386219394486951701468502101044219628925946402806650226106731544961232379538538844788593685521378236509212628750248443220666973620824117951949385013195655141861290861038188961041765058698969746605398886180328084888802251805580014871803254827601753365853429027374889414700673243026757366227604641512050919952912041023848234709006429503224358493713916315436615064424217947662317879234921208540084900046438600181060190607139135482314716488477263711479011281168302467524153814734377259384153861451640178748861479902392666289921411085939973093067840323633709411397655020392485235501535093824426829888452304527220253727784571623958792836949697128688897873068918658650945111284881910855334585601078065137722331144329812067804952444408352127770037635101443546671648303948884666366406399017852355414587640029492191151009349073932726458765590598801770171383054003643086306664764888533308731167964273864838399010581019735878767398452429695730538673046432000545851810177568582749018060680338337486080554288748913189004145546688870092296539852313751293833994828176493450901150110964091543849039583558152247521082108539467790050801935331245996736097478873947687448192702102730867662308944878806108481429595366386417554801507065183142230157300608128206209504101316260010366398131376530927626811038855337911929892351831623460848895429014304397330318931049543686433351061218734644170244207193346539143154226482747970164252668530311763395103414130388841587647974878585657974119751671146029103285270933062502841971916715316784784801456979936702244990679972451488293838557904707399005400612701574410093899463482417477330381086356401662160330367823213803987763022661712948544017486412693856654822918448368633587634618985158242459704759823953809050665689189837680387313488581359163930812316299644084481980874407085221759726802496279618332242254555705374791949907235117846446327660478331523903876810187123030890861875327407215505634107578212178096905683955906470856561689852726591882430176175164058470591278735272207068465139347263934343827303833379738911783759394275751328332108485943788219115203299177049731580392843869284025706106540971527009209205437829123226010580058659702994763120242183087471668005364618067373422031615504598900997743804950755373066039578665681572527748259482707181052756603723538387130872574882798918962529194687728080696149707740054417315026851918463374244713391835838889742609344519733853574662890639589761733086265432608989515544870731582723750546047497359237942952368121861252626476543913285662645759839102304380820301020978508974377917847502897942393130639249494134203794911856589875154313736623927035939368070238587086891349448377220501913485880436204076309642350865980261440087337846345543387791518403572574964441869814997270860072802134190800161536447380127853999107264629475937918621438627429203189751301185866307376458209426068787456477212352855428547524083601894546815007597330857302056333148131126251746272398029275498132011776049025547995957303966452478513829718855710273864530849427860036772416655208330922910416648937308120705339551708280164365881627812150766110090711647413959458265955991096370469382291431695690406721120099572129728281098727466182854100675951123916945354032797982745092898717674187782284486446860438578267682645796229542903020033784783215849823716491559727334532768371439130787188500395671731842079040443519781188320981893941740256891569019193544870383354427568850471578787252157394396764844811190214327117245281050863791729677354060097391355240912312574257867075622564898200561270702203907043046031925170659724619101409230055519652404976872507422920964538426362719205893852651429880737010872829468478330785271337076211564300327371098444382327911957585787713794588960875432905181947150927069213595774835583030216963587513231979763196220801489962347033958649713662996256047102624729041046845458218307877050722443146884942663145084010615805143009356476507150048397888524817414275969162770775789950660856176388633466022409578197799565478261972707860418598539023975268833988967473870945088830274205517989219863826183943046234457825293795051109901331627746437075765797946797554133613331196054179706573053245731354078831084456404063893543550781791346370023077644629740037761088317831877195234891004419014991622539526253419001259025847161403373192244877891983873182184153770393583551976266830230045606698228478550522320943077650278615100772153747482775684567898766598230084888580903704747404151653721496362335276666329001931702983418626332837185430987734243360857090211821373545926718256930146792273308729623300700661495852390230760329319809077655528964761353605389240722674434325016227976987131829520482677774040538227720704478501546985624250891997165733717914508127687570696474855797305864331653231464748542525943238150329834553687680694182934989745634512030004338944469776474866384477093984116353205842470095971100333877329867335781226338466729592893343079477168098582869728843111906751881915121832184378579166019732688072615970319646108281060964791046854202721214929248703411675696583363719870855396144455130008164109422610843569288601687895208187549538266966060634401438816361000704179828191589461323911562020034799277333187183754428981375403142199024871980113448264800462583020496145090933215942462979976444025937661986773270757125868292417420264462692654014937967923510196834212515331013049567611250368684890890415658785161812410284751593629115113941950703513815156459688725643614072981743601876417916283748877906294501080936101252665494592942172096842024712809967675175994720472568117601270308650215621972455942897673485588849009226711948376473734235074417609125545477675249536766469434281661505063079661126608626410386602829288419071636779087203318906501367323206931124956448534585665267264506717870044796618244654740368365942031493859006341865806482468756155973023580839252464885041980201000852882603048286292579990530077675176827898793685897528232470767695182516242242429706179974119919132322351131316032675090210405733676835748619423337941180100846863809748646425937663221770671891970500359936224283802772471200278185747756078086215375222217577212601752691582343005234696343186781344948069967020044465875379788407051315879250250641614831878410661044925119088425782919508811261478384132675778111231288172501873474849907342875062620636825900364889392232835428312175209767976878726911221571437021815730928071604323805581200195073449301182515671278260539980873736748650979393252587246769090422570251936111445630655512198856904280216407098516861410653230879642855900873276246361919837787301007887810843482623082999390992991970536314803331059477031558250386335012103402317514611086226185294206836685880535165050615481758630952981390782443358881610216418102380891943985885257228296346792371934361000734676182835872883973909706153660738012135319920586092519200384492608824957782295526079307153964993803714042616137878561355811685163983922444107765596909919104265707242744996368501159993314356471267173146588508448417921923708270917935975535936648816739937384588011104410509170696184337005609939614289842188846084517084514267955536628503003030610070833400126981311061610161570995971744393489223448488861925570702128956363885386372881049682321288423963621128462754630578400503824228201548416282847309169855088756978481508056009419541780935323087628684807071676091308239534152391707386151606779258157503000132545901050351229562071965873531141518009605535625079485946463166319942123530623497454180046644176409980957846575410204092110984196713897888869620097287600787158066141924975619117974514726293580203838443585557391451497649061650393725127682056842512544514549104719588114937891183651412314028569165920172449008864744392006396174447495108585000739147633296518812327238419695600282172264651926773564680790523153661016827306920096994809805873738673929758682130671600605676602879799923757961638824179480358432592829783781623089361871077625641445884681057778895774116919354156599537429376543149909768437878680691505240282390665768890112582827462556785224410211328978982040905936199719811227909255545556365056837032432698813199685677683674968123704327275863954088261911821342220983122087213240523768588137872084550421336595049996469017462796875560401281572060211088604703785750005788297592344388094167998711888046421061316054573849206274338940365595414125482418009721025964372020569816411160097051047004215438495370415368464970336198204843564559489588633726355604363508944519748025421386990946016926962997929058164965660577993708871343015827152819045037515324712234838777271459350489100780196686235759341741779194533528863469016710943602702257087305537240795796138319380238267293702455966983606024657615526079071321190552640421092283957669694371968009417232811294772045845291408006785771485841944474153767684321970770907277083024042440097571713170982208415039877656704624745446715856723367875260255742328698769558879018855789208251038222790881220908478973825757071415597788388512250326834584068606145396794193393040576589321284338150228095169965452635823293428149944563570622500237947063233062988809792149495841491521278016204810829931263057522509116360365891934112984776126107492669268388814302205640725998605342959814914798505352192113666368521611882923003500247778075996428982838612695404654970607350813031948595908430901455250643462656207493524827201046827862434291152261030552010903950605234166210021146644136339851403462735235430670662182531214216524423961793772933669868816968424741622344180143198886024097756867203288340691443795737657279977842397496009790081178955035414057380818621852114403347375019960897296737175904055822183229198349167182682801948869056916075160000144176348823399128562792144051381330139758274037822262777440359927301433829395744176901973370413986427919045665808648304314868996296557516582502712347071831740793398474281659316938007523586355523086527267233465866875852382614632321397317068553995564105104871013289999056127278486057911376117792244459190374654602272084000489672131180704818394940123342447875487919034314112832173992155270467579916754809693184609395437601085227916898780780796443480204455762770258474743893691034004293296123249138877039401167307689898131364727519134576314639790214124813245650715512035027917617885865740741756680348238677892061207653815132982199606860594143482745905161819272022840694773216268551835693193348115290996878601542537583713833792016541249659257744505151986374412357464356081141768651601249656470352389303078862221162208924823979271913367630079370795586294025024846836588960430825783013843054135546418145428958420765918895721532197403365153942285456032941140863792513880089840635870816913866670425550101156515236060139265102496868105439487307329849798480730397747589543504858811474238817589717996404830562124429108451529779489429174671876603375934065333942131150033728189699464355124038305819734404595799693090188566105144414938140278640678186088083118327311110003828381887727176646166149874104219582624012308694469620383961543253304151520740148560002279938037319928134561938440603820862895422739615708755283282374639684632932705013107138832121694820913462419856422123971781498358178169497627854129310493584189051459106804606154958132535777768001988006723996644404162925658866701877053244565200939130247963320090363753074716227755932451056634183726695058644481384298599047123726474574883804608114186635984791844252976323418416016308944467247766092893867179123713887447875498521315435385891806563181568458128853304082305235538380533669573286440808362414717381863148738722829634407114221500670921309044952906815126897416812799782478983054253722458147622017458070552481664632795887554654486250196008057481280061052545384955972557559044846456115885557925330589550467735645827398755006267735305410294259993332008104664494487222786612408367630238627701293258403929529771812576075184602623220853239187384110787701861332012151710648209490546091641257772270117629053086729865643029744061402826952347192787635352755109667448558067896386248125624675322721607674621054082590340819285857508905509685167449102441078588362747962082073858633788126818115039664061246848156352640202879398661722982656523482977068801887938528871363602160227378273234002871074606131257192970074057299899972801701180171118446433993651523441938457669308990504088799663036528490274670010308681089883137530303278235604853792112327214779627372461856042782443993433503272636969937169757908574403709137444572077197365533683783746949409042180012925371651367184378663350565335506665436542708045881767134892397807694637800725005968918555329051330590197489768253376862472500097128351303014637927196344963006678252328035215746618707856491385405968771582094306686704141543134200708872153616174408549580124276802542245000115420527373662087994378200500997669205962767601104107176411550570718622806587363556687249813677502043557402705864833266770556900370273591606793799115000877964686765033064535186222560202806124855064481461089912267738089207854061430076439226783157573515791816529839074074871008230632261040919177873060371887777285429869693435028400517313807534021485081208420619824005171238509145350589541066514601383071965523491051885254658426414950592227327403122986079408292169767686550117912909311894109314995937942675024125908536934306410740673488055993042596596689980143491373999414656883880169906055561255220941133655017338800167576304982380683693401915517241867462551380918068755818982029739348206420556584733183775510386373224303392635989010291719194118105800166756969612308676082843820727402228104927229505311049149779777285241132576645846198277180072938806276666755977099885551369963446471396981265042273274205375222666378162066040519348723008733730558467567204706621069780925053229031297920987669030619499259773241941493594999943249139838032455946287303534212771966865713900348037853792469355174635291905368469294244055422976100126701607092240910945120070785651351139461739618302850277657471042279760231632207467703433647379647881537700349093799865444807943151977274512551787844009794957307782573749411526648194489541816461900079840405984783071802546405743156940102278159638369442999327265059424909485211433492817236776027104303787882260216323811062719227431108265752419202063147054057333699274216112879788258993700953056451444441997691510480184730430251104893207271844037285879366567221012864675115308170486776706475130861345165147015723036495860114188900498279187442941689548923218046630898425445580163384530099193534346505094277726061389108022680570173605181980111338610381029762568623774166507010844246634262015191996268561055304003445869315930216612466678003716522476327014206834938795680780279008133747211762942260161441004010747211411123963432684009483614586069487752657031006266005907403631885553527844704001693530238847145057848519961473641513197466259950287755823280002423123122480936495158818834725794531461167549232012109716481442677156686699466373566121019012802373642004725549139557236404278274659197829377966024005675763876659360044574176388902709681279414851953451402921839593150312256334559695768869051391605252031223933390018599256962991346750973352092992553985641818648580306241864808979830798411433560663359648490717768191012887496733993367719434130138399931062042321241827283763677920473149177874997748501421927234020765729038393590522486815359676695871011492472515612415415846644537856721925652054340469171729993831859642316215256438063962769712296654043048172170965886176943739811591719099872875269781062254569956862931578005628106955921396079616537584683079816715737985184878254602484369900348025772278691520857724349046853285054508293109556695044877535905363766760082950602150430646945183037767820516570433317879477164375414510776149471645956325690424372633647066410869927697578796722868022406737073614914192658440929746947776624822339399592740259055431573011041198883158131341299494375898778602555198196946312480633037356392047940935950587237087564488613908976917902274837114628199915687793186622713647558213338973238071223815061747798416235151787917327543507790077724785964405318357541573551097836125461864131262000837421883513028860522105724996486144164735158067321895626384664718253812023694215433213431119100830939300985713374645719120943288638102438711039691835174424219200609038698754496149400410289614040490423877412448249466429266584061609728255035998527868493474617630504910743720641247895013780594411368819728743442488324677048885010644131808571580962299444535733769776022318556337634341827333094487431740425879230192912792716103697510532139529352809204326851393614239354583741137602913903720906096579462887316943676071890491950987197469478614948391217535767159731867203946105730759418078698306205927347755332544737156141267191507141714045309267420578166030266788313720938410028897264011895493993957068770909395654591273602693404948984131183698223300890048457847404553433080558472421383178910004396073617006341059289650076352475186144168242429111378958364116483423589295093749703144712213109218245249888661730930764603274790104054194044618844564528124266847754788631998445930982787740583159715735314636429321484473998745098486513598452136402213239308444578893268589557401338073154151937572631763356648990866209138551455779570704066969950718530214112906380793768904544477799167070636517398803953176050948668746195597186592151495655265820002646562668276273505448633563763638628149147344605575256869605804273452694773727349845226983028383765625520121133031394609814704979686046333196172750828986408802906108706967397898179713457407569116126724534420097721675733469188756593730322580906006778714118308344455333257813803014833104184324985534677908001865671382446818750455678895104145716997698589940978613305833089177095506055452641830175827406743506342535641990928665013905102496496886288319283817575356214553985628386198804119723036459197508622316814774857292611127309084632810376457218184992305888408265507561462612277093916152580722046478460736930888634996245146292825267865821260376066487121299931290453889446744210289744414186161447270066991886788590321504100228678705920280615644027111121578508998262775855055415954576947716682099465673489518703452849187521189240145600585614925365970699300125539352567849100595466287294520203296034532729009890120789908030172320856413788277426817278954884330472235273416480381563715741384710601439109067594456730754704862665056754085962975460893842555347714299913209231251817399570227528328930050571895210130361642073792401808938363250687893944443272475555232980432899128289329410206628952571675582631248737320331308320676731203238962216130537187639012493911068926289637663135581308934395428779807629204257546252933275583662098729240367354475767122990573526581562433624884632229486258335863077803976375473686919833986692565811072367751795160698388681668991188529260012560458222864558048074975271694123435260737171253865320820374580782432967548408723989703493673354724133694352286715605616970996998684656049852846679760150556826211358318545733324227477550781717298953648717734546897924759678245332063292620181390126160426950636523402427210134243299519334706515083324200143245806937836826014380173754583004446650329673717319278405997932908662178105656768595302455151261786806753693570718359037378428035670397609119075861905298577882243836206771595948526193067365720781309808288518529417226235903240966207936547828117775474914173720208723356377589670754753322979515637860946890047684821414776959410887573322957465107843377306966453519114827997121996329346681798582171162946053634727523049462375158926176997817018626010332419269276175329423240341234456605463474546341705244903609923599152580417789056024614758146000612465279071358182435185136577402545625723650568550816815431736095960250269554548081288411741272767772584850786386278341737709717684776099057192780699344646552214442149325959746385071803766103673625279307617474931075643899174000143603926761558975564078973019682624855471038907694403838061726848164103455499835956470817559157310013845043243434744187549025899763240886761441168531225724092202834024415194959842060102159844616996846693031910241140808881447927916660784937770847806311013822220626678061013314837115345297476566857931708245319408602396952656572527346435027050717327790420186361097683519306389200815721503756042947600677982361432193000803801740996036412705875198634749563773169314694066234945900211427412290983958844766763660320753457747429741272590467062509574486845030540492087855815449667115904687778108312008382573442053446610141776670270466353465956984391039704072251450347736379599632338248954638746195082214854391552671531357308890068274814915690857089626449059101128815273980848282743733294158341901540113066739478884573012095263790739757023053382409376318970842488663265230684962628577726026708695703246268145309607653435052212098635559362746122875247744313403475458398290931733944340352114790096365874260636832132426227813253246434496934692057702704860836555668299217829227384593791690804941628338225760582937448699945881041198706420359354178848986908933950425182095047701575717147219540300793441992965730645197644113793431034045535032540135068980279581610219220095610444890130180980635674066134271918235100770137171046400700198761687456906390880061705827422407130698770375934650301582887109363064462569474631826099274619161350892198385098785285855687654882638019903178160512728254854133284831181850850562458583616298552693361354531444344540818845303655976163581347846280850914124913100021311820695856274398613247544011931475299023524674192814156126093192506096956014933938085150749888249369988709025314305974333981208114067151014743196789023367499232255074206595338704826443164248863264103823596855567324066156375827493723087895024403391067565706863101344724284756567863802336858529645625700033337594513447559667353473063303000472943721561898855433769694785277141858800729523383758434345044333998798086848868899454150625369235590764860659638995106286698643557606281046119354284245073269486420475875049771769433336419620727716568656526501072252562429710761039025204797845174658957455740723975251869354430029007815505377292696260034167054610258918425164725438649937284690764386554658923937800607498763893262683677139499486642925282168087905654372511567841302980536585982832086989637878794091152335034244238298481632925659238225690743493376851890417059353978928224272269371409251429730728936799903739079044272821925165679393258987014673493530519662673146135205341156680142651730760369958343488097997813382604720183362857436628921185407112057247650152948286786835153925943745912738929701853316673861170173084470032814738922309760652362550524263673865019660489429828886817302763607548756434231340606960007947505184327658986804973148208249711241139013186773944244282656494738524873557806408854461922315067759347572823933206208524660292096136914029249674918193347531639613669112890378136262356561863574878386133634277866217520594270503066619867952619093887503117562946059820627920048269058925441940849575459428102312987538176778382541223390536171231273049844715083099952218466999342923955239452644710569275364691720573213647700110840517039770428206059990395209768826595133842859673441211559587245776498373264279196914202566717700654307208771485783650502467987701575056842202541148693250827235296616412814450136046169884319414337161388856482530331526630369365145024824498240521218425415479719593078542402835572455124302139458720177998643746531954615564778099838256191590198700856707682175445567516624114301576813753534197316671852203296938241051469247358715393085936088019822720394378441472305018772546941884997513585699046402420616432217476100693001215089144606822832888965714435810175935793143809383496518509664044142265211645142329726095519164760474922360352165529256596948804688647097813591522222384421862123559915548835343028527312315744167524558893319299897612306123002322943751683085899792489296767227096424028305033260188654518974660564868879551931505804296033150695662003626740944267191356738662620056140385889124976090390707220761503882763559671803790047837321327457644750325923257519632768148704582380401000273220000257256659699291176507804289917334320700918383200528031494165661045012492346107237155649931587615168257969884013308134522180368422288385407358005263110997548097315325289938027024427321140521846714361753825535754905758906023301092450913321921891417309550608147119941659266187904754763639742790050058344836045191519151842059709266874061385293733362298665924129545787922242307012242055317730721299315688318036207439416248529595758431930067415224730893948330475322399184656548282646245450531609117382869429059585383348225769261703298056713913713028974453198281352738428280973538966165629699527528259815199181959446566217469797435303092307487825098001616077614286324890439573278888450156772301710624729963367249016068855595792221008529033297829326531019338496783121897087844785061127528618684318192643766858158872225737365240576633355250235508970369580369141613690187642512607510998640010970327245491256472814968390952860754408341494890521381626588184257792035345494549461081260209291608710791261450123839099054057387221727728817655866199695494271118267733970281138063176074699332010226562906680453649401107607666783840364341417217211387022550769337460162573301247060659772785731624197072270517935165978354570416819909668457861616705558755368075266400672129528988662755411253362592186207385813987900823086569842939294704007404415313542773413372322275606743637976158540210486647959212975133461112064633922204664788240352550214715025452381218370687963561461648858574418188044362512860846743524865056106042311855809099464155353020167732754748133885576790992920602009523909039544975814746151850322591989222369819113809099223877399938533648942948465687101011121182475695008274017726714435067343810148559375678516974190614672235928574316439182579048895116998013733889490226595070228181907164094403120271517158171988431694939832994611955834386648308444316955822759028869949380520130047531639444847949741439354070555278970040999906708837375091557790891257974855925464629755334140747417646521584828106663388489653557894649356997321488643169997285481750945880652634019450969750251621708016781618303129493325305340371271487964177327543955786325420277501223905258786633586579155997928639241634077316585787107694301880234719952310299581902820547162452744377248074528452676044412983377911242602699511576256909819144770508159886760680252835763659995306389973720241540408770734738486988017694621418814256032868679920026309474831469177953316258380054277936285091919444184323227691847913599046960532435964044829827256456242101041398388990137357061478723574140378946175096478169381991312250582006811881171167916300143934781437762615714306397376988904961339182313839734077080965522108862180684906328543199956831075081354037026428580009164639180093736209197041224363417333559577654444012767735356270058830268374200446410888662072433668339047473625300673049207473075883469514358633830683243227160475035814014369330901286598898425103233844197307279712390959671601082908688660306720246366682703240560961763657651670927831353056020157441842663767676006708729309077370155407154203170777320126478330324989456186024234895806606452056710329504263007902379934480760208468907730945312448260518100950284085012244054526713424410303806523183848098940408703976440734682219102957765415634828192782288866101854453659399958636920581335375101212456776620001941743483190863411269158855424630976907430307472254883201036077718800726161837353250223089685048347177852306348163289378371529752414739487075178313442989195284464618217230719878697077474194746179697171841804199592661083789987664688822731079541931229869523763232633738195775972041543331179234368669547676624629746293350392435492872475579313333672338173494858260492511131574728143957837754008195736642674525854052862385267100117755581408675722881271467895379104351128028235513744634265071629772465785168537085673919908559308965839480336233041344020264175860343381827961142245367803916981847874917193355067465678724547906139955592348008612430301338461040886902836690776328544060337119447085998099490523063618194344026095876011475952124459758343196041920147025454392034053474710478178275270835889208226885982219783864045386476309030980523526312822116608707297832878447132805354513997118846067028952903315638315899210392592589468406520310860748710968838798601212380195335792653952252277428250236529913746624015709272802136729172563248827693987671420258520693242806106623967532729464445981288298170108112389860545247148657419324878362852096253763685749438194789891675407840441950558707976504968557207012479810638394967009743698683888889852642828285360620187099714105685078319497759362407566029487344002076160069792046200635891059939322048257848551426622101031688291291951630596543635342413316983060912861875453601195653241635785028643600064760828620564664509495480755949124718635873145817074398508412966305635318547719008152208721668368127821750184431870501135710496434486136150023250804913547481266399598239887518690357742883927614624318855051897304571508755053925361371069555731295788609278984698834329613638260474718631072369659659548186435846235759268189906873732242480367266301677761002482114426822529721643773297038696365528097066600320744093485608413281101040946343340834625921425446305310659500213031685797057777195772833040361157667540414001674796221295131470574660200960659066425718593168712847181818860728159021016674044818114903807602154455812789762152811070519293829552527898380223785195910294191752659874520069556290382431489776515766636391777949984769781907442048848670689545025982019012144120710255794592033323394757230983980946651851411640556024691370804768947717926413308428057715642399988233534798083549479952491370077364678951694674498062736166436113805785569276429832810937364012217873451944287957104119091910797616960515145559218166930933339650469942906205661208046600566093464027490355972096570265501997936264223634138547160333832455039739520557717073436055273049185459731026767881850726159239448251870686154905105872705795733454005719570513687152298692762455424421290038692190076974655709501395107921013632275261889572543036043788282495712214223874948954985654839588359483164115121835894161411070640737318664829066776582129479583446930986007598783959717354734681028954287642839831139443343784362233037678489724235517780229459183783914787116848309349055040449044498891851194069515394098241687260285592481660142618082391052077203658379532857927109247811922494331874053320297752376152036203627582602581660172699965066009941623118276607736228136764903823320251654626415115369918040304425351549948577318587184587946833889696847589716597540420452761248763479035227325212227824011110344179716986206410299732208023411473413576479902683577751840830873871924245403001936113010578409522871228280728041426334569047227017030920338944572563236907749213669553666411518858421624904250224582860205266142080905785872653964011816264865733327341479156267509250020334149753343684021027611305093639455596944312640046158681374255155952839272149819049825358613618274975248225659605979133430787345587300879197442799344127259204912835504166145140725361482384148122651875060896663344548858345023089546994659859411508657026221402157287833667009502784785507141254504311584946017429597182506996621310860566418328822772245738319920849035378376837443184835819343345437617917868969898208550485554232867230007638123965754331349179641776424056652754120180209872856180341435130439194347674892800927906926836110446326143358544120721435414720490195805040820670515840805439352075496405028355529867687642619816671831942813371158109857389337097724491635255350848768818145972494033910709971435813042707655466099096134239632025928468704964955212471795950446088174193000674765258295987133190881871983243898622295008279924392477174264284142197179394821056814918585448311220413498125333651843915619125111319347751414327236025748441156653720013928515752777133127723760308170061110872552291046177700979238017168550721006854740262880056502478100612881798572591530233507974369147249802400740737859914151867372069810947772551540832010718086078442366961170867109651188175462945911601502054355372836755189360917291340973569355869684814994724336975936484370358563471172580769467229081166080828100347195658056989790049911238900738385462465303044407589408746520252594139811439160697594246485302561046162715187298361446240941927122411401344115610268738626601363197105391319165404672647080652215208392019156032860927828692008401243422415616879814739835946886584555638244928573034564484666321118313530771958867123431254837853829263610018469581137451353143306267486571610637363809944507074817692610283058904834631976498014863652776888536884760092758981569909198098481720476241792248583870426667898663089113157911881248496537946427432408370372138421965167247626866584122340335913468000728824804390815330555679926807241780850680774307988111594817758353662996284348449149678372045756345701495914938124884817894032802474105653691656053558737914681932515891018696642556336779540375182676924128230000006041338577092901426217027592428323216656858279546016557269290199512923792637192164725156154759721802399465603310266322147834896997468489212249920798039267423633923797304104452290494041387159307645794150197030265523837263967349732607577769499371643928122272336094684252666475815251735730678939506903659660824731208517240176319404732140311219822517486152978945579239524336140827030915019380333273388982015458187469648525941617359559386651183699296229840284576580539115651976466793754996289149196788904723632477357680201791365448514483808942801736803964453004134340823914422644411242634802408695232281795789318960134905130752478198426595187431448945977525392322161079023629570803336022719863358509605981161717858857265399795540909049733588696061610334790904260086428730601407400078533863226980433109850331776294481131491087421084284623280186754679416677063206588534072429812901156803984930027182304350210093971668824779344890171424129687408079051390235904586848385007930495869634840966744854114690453023025560758126766531966238610869962575740841474097384870367186788488848711336516957278251016670235110230543688732582122666461281979080081666675272432050287419597009082918698750171973993218900471613615328721941264091731709439767170091505769870142415019918936135344058002324340984374242792696076909822351905645821219350058110465127566795472357725695250603479167931111440268087537279736628980493308166016717120501743982313497400910351601297369054442459334639407248281579713747136339142857799523967332880653556509772248430083855776270052420692270779267045065820747330973680453446529955126587001017572310984968650301828610929393400542899779018731672941322501005926752956518376551691914539179832482840880374717267676693824151731355381836625534839151969922468830779726301733947708368680276981744740120516777272000782760297022654975910741045602414732284842490794105141270928217394684715144048176685425305447124492969739580719458045683861099686862642049549794682513599507761830612727575868177747526266455950277723946722191585356759252311844509186757822173613625817076461204994293573102625686452270433303030034280535874321596748541986957941735672610621508049584809775640791878124611270553192862683499441253253427795867888948587402372851963459472130221832019165317729697002932608328418831182738547623473318066707968298288118440101950607239859003019924479470768776704735364079281933974644321886269910995982902432903541246634977481152219110471769028766411802471601673222912699594051866199636925584965750572652784794597625638097690670644383763936230520262246034438832177078641213039156171737134012173943359261954605962281221722185441662719850426293870960321586790879819087496129135536517211194506232150006840519106238504332388598165665781581155307659783211588356853440003743624680781318236604569222469412855957292271708716515131681823554628973774074449117625523299007265401960220883592208734119057162325563730963427885828454165390489283758107573905072367664179954359789273865195719098033949451877800258628889712356972574987796169346841880626937604960905336938355129623838144433636774022510177146111131302460868173199316081637549111914037441605457557750150619847202400326239260097576684963402548056315636497964962427929591674241872260671776542970731715372161089882155411978074337870844371280095269289540507489890761390172609326712084905176545773075447203254642691533070009512528996745946137401172247926761736140291961111851746858983045865167911516169005622751329871860484818192990321284080703142923681346118775924376862482983959564276823784745339555159263760791393698495910007755483166855555562812744113280838814553840122288699064081705416985081516368698545622838514605151704210631885879730707083613189115353988969239234974700385284181577114281516719918660947727615009695577861854847849576630512529438447210024274757507794071003287559654326612337354905267720940709251030327093060752013244543462766312343643155931306870214447097724097654812077781864037565465200683904191977831761537793998579961830005811806351325026158664450667041597480848260607754896575546506165283984883387607774550059340403075110241281306515070269160764013002458084555252484822933474552109079349874151218040539841740060327075291700335177788290173813598221228188159609193141604508641279768580835852719037435518928395851903805964182044738661491800228750441255960768191720080904373974594282593542260243438567146379751946678903596059571605556250647003211011754756412066102076066537877615906063600319027934838953995498772148491528921009970001105302344382848440451827963270377586071318739172551996067135786138303974413994857315861703724013766880051483338907187218720290513882760384452781973699417200578857944426354899627545129757533983600558343876848239324290172527165472271207327333100020007289764190689529860151451222014686041647829918350277685613388048012957870682494194971859324820605388306047265731599208778159859496775701426134727333492666723917050719727042713551037384582224037380577776149622875516628939857534236010698750056878812416595339469074207395803031194112604043420709204353632206968499731951665170801492601667348338481173342358908941180933509722998975449344697985561225081398727181114174523221463605200052705460656318449080657696970118422459807246503497830599592599803386627310079160159382661126247204283704236465268536701560702453093650199150532907705371710933972201383303612088571555074936266925496842993133756630768757764805561520890410253540284609968197575661558382311412237005119419146932668975761009140451102781625226664461160659918437558438179079894004164652505953001462769621236061325418650606939041603534024489253407044903301349445253294906975014844417321955127001392456702195620308165857738990777227069939024058309745877992190173064697186194498925534794327471813256251497402052374928423547152425011446161998649330300594772056570278977374163501759989885058301424165059919316514642522610522502853924885846938448198715410945826567085744212651903636112598565762475703171949405695213196608161954617853201985754770047833150281515407772855595779495398350519866271217255194763825269206554642409526158592275511705033850283582206850239925879228568146416514830740375950322067589561854599290346899580914218037288727749866934239477536979971590677921411497058422453741403977337123203484302837877931929561300441609249330586938654030959364048277618102875111622929564521925592255420468575685507348823392244257520037270868024816974488926268057355169431785334220548652486874528400994701786152670541962301832252090982899188450413642404336551217985106407662593876618302906508044027056011426516132275332824069833752324311419993602967467781100772042182850844227472520240184121815546683361867545952635494234797420746877333259526620653313850042584501046697068497573133814834657749755213281469134436213910851575239846252289888101251868114226879715627729378214781005145941761621104623312307224553664970353682078054873881992642912440145206231851066442967353790012700234210103326104891190141527369189373046189445436886422381109354707411250083175921253740822000708703108471738488650082972228456485470801335346306343346219530709752290151637213681768511282095931507411304881445410822750114925798316770188170056490834598536010604415830468680696410588636119638896113731301994772740470830862365188898638656658854546090593272183790851164184224975413657403783693342421135873521532967893177044538537053529717482626456441581960096175190134227561972943089093671060068750756321428947206252511368967838645573615351483184059487133892232172386839044616313031527981394121951825101675306157657590282191461341187629149525682426289918737752009509320047763306483229568963370528044817161163486124997757292961700529823730897454031703786024335384255285137834837389363962634412674031036253128594744931533430973311703634991057145515496805431069146807581793546535766409000624039132503188029288079614064010007855275834850632665201257761901668330560199385009889646576350620240482325832237399167396573736095958986586021751892295938028866703626785135313552541391384315419152641806503966223224533336010808162740492342063139072132522258590238600469465106958249516865218825714794242294557205081198427211425328954722962663382582631029280648759662387287839884739543324565560677687114222303965987898148006282975895282543815822955027308118853336545123536825359160873948325155392288041763237950767293730657255201535229346789839014001567027218019294984096628550795192898716369811943781565103926065148791659116821867136377518176346500919702163443394782681477015064358828000640612995850680959211467715880106676254891674887733449675918639967902806431322962020770635743863196379820357250803357797774764182160925510825306660308452004995000515594407201857680573539793236515617829321657333464215913866487309248325360606969921619724776218933934123056912911849776340136225278495291878795184997695747778795713746202464295087423146883571868671077185098677635647164490823448457573151261995717092656156772830016533943145555082961839946609785775605218421194224808956088085943476865598481867014457231680840492938081550120334437338076813823224960230370669304263105483602053800081692368791352114861665055437632289650000378704488690116369886490885804743475329191921293088779721790367601139440392739779034394478025283813386441231407701791282852140620030916843722050329590775966535418816892605227950854343353474075412304131192619404064837117275458208476897104940733815226565484158779843604854834940409272390626886422021406980588383398953433954075478066383310048666868388713726383306487218976291881638210355828690300159508523977540213871542046932736245472650046479030026585915024168969453201572038487652223957325055778777470022183821364724879369121301388516300669345298638497231800671825536591890159161783740886852935448234494940808899125943404697266184604949454662141581578901317398018387730794513669329192465693211741759912184515029535526552794779197589743129991174102836633727306691598592318622236865061289781505101396852544574152367940522668812874359161999041015842951654381463829327067860891009619802677644797529459624079283306965702482556914247527470183577485538586740645010332099737721826176144545914681828416769307975808725105552829009159585173266151275620759615094396282545087683722491263529895723130997986687714752557604133200381401275905334498937199635308241093496787246566932955215464322423023012261160190823752497568863853445925870336837325369386480335421850507792123798726807568307356066171877779974016874148791190798644303890550922462920096113814827469621525555974714915724617639922406252472088026592751907267240231345359192459016135976600438937569602852081395569713003840285179236403539423050630664266363734114556948745948906233160148269989093064583783905240371987910114702971837562192003636268191341913856336349686192533988434256577864885121505176179067620797106362792565198703893961390123781238625977362677222461238467099356981994184289438135510052584355059782390762746825562572761225702924082843130619607742996648109696755570485484513370969951129918994842315176966689630075991229235406016803178905092137918234597332315252185347236785781890690258919950310481218312440772165801679608732335940425318338576980320810331445031405947390950874405465581377753146228265399125418778625817725667924239931922347120570818110547508799354171209570684764203896181610727888309206143061954070178616814778518667482502674864949928993586525225148208556714518523067604744631424780360116008299121460934570154794264171235901549792830123614181181678446627790220069908368761320839503003584428512504512377698495724438325739167182753812935665605586731661234061120416561048932930384487754693759801146887852319156013463473216296902962824673755748373744159906329341222153470591698741865800486769382990611515417149078148174340023918240839894078710658641576319270361808346958108943653349758024813560016647701222787347420525893300887618899357633727051563982461659000762167896307059290430362408121404494932335770954768671880820026426646104323433712749722812676058676252365519813938016934871362407537890302274181661655101449138046465871368966554114365561859431535697677851613999994582359975837429517828189112681170030764114117391651340147873372854886523075695956316466598237959376078097318844844876071032706728028284436165879804744761567314176442110427310900390854779023181851544459779663773107098360179167377744774051894349452335518238746440156193959741156309016968829774414458038811034333124017587195004904611681178428398319276299391666092369794370910313620787834071850818635845682475574439801415295513641543451644911549656783738335243122160773763727197949946742284884964162371508276384912201747304833101704767059169657580536802216054124058485215932277799272559991361067587444628928114827648627835767891204703702776224021258834421663289135942585945975384665533018494289790177520384708981570228182880604745894888739442314821511787450291298112147041769580914080082821524137604517573384064199507387358642441761184073115374327475714278708618579266990166619098277682895763363821616391212988797274486171806791794107742252446932103430003533849143589252147358987061906269947893584448525141879928530898561314742588300352262667109682797297693125636381233763462230262570459116376980066037680447165157392468117166280749473025117087505369308546083569703623965299334451140926919604420136021913322180809735184590057491311332159104068768552490836533878705938485894562740311670940196637329486632302537396429261530336880114617881428918632265957273353345461983419469256962693180993477548726577456237098415624202077345393012238954032897602509462579896280176416884840599377379412453787742061029607717535866805024791938788750934686103057957341924589616341960311922645658725458781639815387754301560093976142497845507108629427980788473834129700946666504759868011268502038067279963054431965737009467876751068250765767415827209406613025045734238663422410801214449939929993187342946901968121963400030037676862818820998395431700492948424524829850412142968149641180229466440748269034987540742013045571016493225540390605147178874760859861188089152566349385458883124380764966202590041586642453771620699594920279840964444985474076012203263392752671491995547399219102973434569237968938203690514140510734372851532947232148059716140651166364452117998428611933377934165188426868518969749545677427512563077225967935430564248484125357818059219297321647236401917031740381405140871834803335040540572597023697359000995650205186092551581658284573170429171817511995387923833670355262151919804281096871297938659433555863149136894246432258902774149439736621115885447582276747123549183250227830740147935444741129665936470449888976602574888022035285108524381568054108348838337199289262616515240531624841031071708833393014306080487872140269125585957859535635896120056273047383943165047904078446465846591738474157168880668989093223836816857527868271525077186018469262788253715523274688248445689614959292160805633282681608671907209840848674167360675688849341889911615189420186149490178162988241268248862070268264428199418340154388082960271869544863376100302957193969230324535525505132399069214247822378949674501949667729212556005660161534188299784086243312030220699718294513135814242927730840785238203387574321767873829252302077134952491111043708626892538410776560093077279201744690898997682457463057623320129191266878183598736359581822136462624613678958130017310164786932139314102173827850887838190648995344389472754654939616300878145741133522455388261395213523843719532035106051616150928587756001952485595301380164646493228811532052163232296079165352608440704413872629662857376965463681245448992580328250198096122155022613756663994473717619182857736014421267769517384950614848912342780241996067477457320907257782874540234243188329451027953552850232683242748806682440639691848613306356566272753562920469275708454040683752554956068779040603136987788660883501679843543606881877769409013893041164567320893593036646482638678490448760052881417758295988467544669914538603820647763942455578590654086393832110824760378377771397932727399232487733488487101059962643971323684587099125870351080506231608300785489779659978925352814038468823876521734001256530687791425995569187838880199588935628768568914967692913291044927055412978071684104440322191140351671222126991695413924719887839320696754225109661884731588779461652323018188382249792069785600706101560228103874471787534004807954398925990260839951604820313077700626844449375141396473134059998054165056289004677101164589718822509542902664883684410182775880457530718063076204123107110219138688061965680585299701131930017498738233047195913039414308194791630814941237779835748795782735705780410310104862965181067279551683105816870431033118435418159868985848903727320103974689544748236768052377804955780077793568073001400661433732562001403277990544091563583114101541725536532489570335166805217577906331136983560114900117134808169499778278542942774360733081182480997484902904558813694633772227717915132627788291374059467080047933100570222607423885369604109314315139196870072723123830655561970330624141159766010803295901213826854613740320474941252114910246590162089010928716721772481771235257435721811336583515354175245065876081325404689849402835816392444873277602711617543394654044082639098327729157757630163051964404709961071432742416343462869419378234961061259406282034303834114998663939469622358809931030919279156803934108529950074625199832008467263811409266750976601978674001236627387207932775117989548640058031596167052203242900999612930758520795926943173278999508423242649041553028762563592141912271503508783707654625726336296046734549940817649649261832376699996860218918874247854274742620998075472281602590194292137254400785615754329527258701051165642904692799803214760417806017997349104743482824103714475637720059961085015652740757295134063235221376736961232716354239254031131140043486983759931801966931070462729734181945413570461968253154164681379912797776005476068082781855442310764109233259521498507190826938691911621157545576072473538193660876497262333950835394888750204308027901424294837748313135536333821083432069743368180405078369866392801768247896259328100017234084914947823913703741275368704201901232806491328910070569664192742233029196847621066822636479557003582876253938593393631729123039278309547617854446448402582220478812509921613522531563645359289625067998332388624613947707362608171703198294790474501871469688264287522751531616411637686113935211997489119866364152516316292156200189093774581993059038301281808636198144504469859882778049860661795901188149878950799370544719918882847714623184292401820324744545747360756393347817407220216174336501170063351341347775790862710357055899000132814176492382761278833159296474785486954943521808488023768334837620560993066921320036433472791716265812843789015935686458129509011487188109354546448726581087887682262553707248743673776261764402632669320729055872280332228812260741341215484538247471068794984528564276467546482950300409851280288649542902729048727538368437730695339756004574771265611919129153050129114887239427868053554115643016299662178796300591703687892334026783945921116610763072800277847141364577604432550224036798624977685670951817132352869998958723538616332429542439985987076126794694694872152353258618069790869461707448435942747466955059012505468938736997582823522016931467294733438226820583884457188741820342452046672683331576998392059791959562378142126006060128223032865615774475013861499015796689074662249101166213553259560042894912982647930741022352861796470450037979684515830037634864768168562771826442218143820862888252434793339168478575784207099036342472286289178273285450554407417009616775401246211932451857732080983358714601740038535909680255254243672571577004104399737162062082070634675441264716918894830669159575006067481934777966299854122831077856214523553518353145735980466737017292489809962010098395623811729566362747856514174172387127841442213671520405158962536743322752262170935865013970600934473082386965363141415877973974371176415077786671431567409921573581908336089843937027166460344078970707233428450201104445992629272650630289110005694729727529648960273603162467245423940487554279205028334008287435332249063830470478416175670552180577537379244028146608731530959664225476272345198438456999748791627248333840800150421999852556190972772086221568090134637174098695694065431265424973435955089981609768328289697148098422010571423759710576499332516431776962849526655468460195122989987463261339829233830977811275019899264491110499118555834514332911926908215972807546811609805691184364431321177938603994075895409383527768351309710458194315332906713288742884402920433432434275379702844290600934174936388933042449231269099483843070235384407102019205740752159806552388504943168260529117595177785986976827528665264741965998554679628425614431042214045534261984528906920086872023755501968664977064768574565968480061419648974979094779802947342557987783381636889013540758228916330743300388951786904855669396351609878900424868328613879444298812996856918234398933620567853022054919483323532507029137830830392844982186692542268543743793165259975363561522444413123397224883041338899089266771495687502109978138195244530310086438153022503856754783976631344607532715586801944917388456050247426649564361320037050219521382370458219605514162642087718795990938221902438567687385866290981152314861199910916337614110185771703236674079480389424952595037432149763355573146660223864014394320323340913848919969928492024400459506954624119697162477045719958645964964117035532268362364162108041361315243714179270784561563249533648172327946331945900242511815852297112340145819878958160858061257805434835655413703508688644288927003239951534768605301937934526748083839514364870735812969641983366437505395935065677010967035425984585687770945359902942630968401165195373591850463453505087515359040272433034784109327102324857162981257382926221141131602323615828799921180012015266777373776231159207280205913333753855012756106473825134041737973686072299113898447969654454165091945539159091450701329828459182130118365419125774062117452606936270078914197795443193408781115959386076008001357436577361435131803684358687870944356573332106628404312141008744757836442578603654375657500655840718942947142296289001276850676347905166695533992930012698173968356163403765890713319214961385338486412131297158320879208837694406089900847836202589903992056304389491481439513553978418805097236719379861682012288940621165417389196186169138427722272990061985661593569010733370862800286382583096783390421957676566627589634760406054488995962997999279285244402137656975861229318989947689215300128677702077021617450349366983262738590623066086224600871286029141659738098968125915939717737295506651865886322225677315569137741696033200175326164507818900300604964272029677171093092508860989125496348234417474189927014075374464527462880837626406446554025446804950831320786827787864580624985316935481084984243326563221847525054420181294937816365933765206500196587712113589161966589993369182027753779649845577872111385853742344428840170107796034915920184193790847066813545701397344640289894446621098848919355365724857496437317005717681840955240441666933191952459049711206399731013172543899272930817941544006558360716779051211879872438789802171687008836579226477031536374790521887915600095424524932938404664617474458155206919993627554863144356899124792050968078189906986783739969843623729407422756458276076653812885326567132385366987153036187930556884804987688778690428460822847875859072714083691305397549382552333619686903297192042303291667827558812698732974491385643346250447051778553861350346277983647476792863035564989606994374918025749057893386591077605395904404291908828454533703435309744534416631456248422677239732880376718163232689507668079169417827785309737071237020829106144522639335817337904829319331996716086933148494826314450309697389223437738601627406481537895911379733461243721592661233528226479632850804822753163799291681031431777355450733737999056647771797694767986012381691660765428323223971571823763774585327251570373572700963715134106616426621884950988084528537429707764864237534416901279190782527151004418769308404419170342769065701029306326367746244477503569784235638772921635337481448906798615767026759466426161211170840455828541879055163606498577129516001386366506159532085816322326115309419243805468477063035766601708662007260140603798983179368570391361280415659487169196297791153876698490677558050218474431115491107173841160188480863967177136098515173483673261770738017816390636160746053324427353174999121140634418473003802253435945271686856240576884404573879717411011442614182518690023139306927541617371281210713370006440419701403237003052237318806542728507150453112427079200906080593078331732116925820105056302614699712895942712549551272721265918264962347817044456853741885512895433078748728808706372180654837047092933256692230713304134965143388867446157815739961576082177101396184642355629518573848293385659862427153368283862835137880851425498603418213071138646021125733369384794009852161225557791198668212066422828432075606621233772957413402041012739904320173414357292480273569716571938698581826682207151648370913949458640808994291852621126220913924672082124071356738621118453644667559142235336706167545901246923406187029596446464953311291195694493821488787281791492411378709929871385757983310069257630710897053399669293265715950700785588791733908643935165547078554060522515001924271114183437115929598579551983209291390842479717884359697288039997850085340613331467452101193334231122762071777559967728041926743355247278742432133264420966539490888672663218921724336002841615142546667039833794675815718588640738797764848013717036201799397095130650173813408492525075454230206584851779480660741028948857598476187976926062421419472893869019452957262815395079580707676832708311552461494986228826328133908813749088024631734387897666924501254032007526683584409036814092548815673294419551884463813295407681626114564085697400170652807782814914274623947640839569185571939288100555569632188625377640610323823228259060881950380501095602600246293765620303203931637673935161596471652096201951132125774657294893230691727015338935451378343116048269135928612609921578456368071267023313614025606248104855052536634504709983067983605736026318785638516677711834092654577480891158559370357026808224561208744662429075009980434595587852280766352493545746209682470927440011926968157555836413252406338040019016436716691891626895406121738900997966589962109228584617666026800832909113241998852885024965473454350872014197783962809671939852820643238876438398262873028593490138736500746072329381802497552447446312654001752941412635630270513949253438146174585302676502973152595732220241244567175821217931382543481633435065425683142720788606498010579729474157466330229954648240162284130571963807961444586830336225096291512328774513600176022840004146193744774912740485212082975715573835148134982675297146870763559887471900102874156431589050724943637635375659978081831280605490285266047332741657347940703592352186276408913675554264500028850117580604173618234544867193804835394275547657256872137293376412305569575463957689383377856169307909624724637981136953952914586381655323683134502070853681295274335979744480065845091051529660784366205989940654323756558218858274605224171357658040552460779371839472654944494657471078318043180953503628586230862938729462064080089302366088907322796290847029548895538716887975130950933189589360800935159741890265854192914368532946989069412951816201880649653978324686991434917671702993929279223500756936950693195790725441318853421796779257082650715953511107251601832572080782852268945546545885329633822196742938256121785503706897157740444562455641874104412175624500891364254619419678854003872751444098634105809767537034125371238559236494439549453703449519402982340339808875644991491095060332467672291108594449518311997015662893810706641711490694501261871703861997489828549913400907111031744879187424640451076937609070740549398184153088448105491573912803854062610337179580586794678177042322530598915781102035135663860549969837409724783670671335188478795288490284077511202336884562959528205585960866640636925285681256396345943594619778758713361691229961064480978211872462088477101077968408415492151003866106601010924435016561373465095797771373955364466441423302091978033916526696356651132895800742082848002673049329208526257381924369775983942722061189248264162752864087811391865916043502444572418731648339740129443132297647523331308468503568979904389019886766708345393678867670222750584558812802657324345798127623730604745786184150268605344158424320844042793383549076331549278984957082704373977905953478985383119615875832785054904865189968179248941610985980073210437990312049158574299997292302463522635837473592222419078492588783584158853591022301597980695448974272634746829221821502522317323064506531136161685985128326257875628882139943380278234471446804934353536968848476260892921566828194816673154258177616622527992895909051453196017241452388707245114997348833678530650868912964627098049222955133439764471770527352135263064072917542311168774567758203878926544087099870785114349097220870991314549525201531291745433627474429806547234592654587423865823199024866237505736996502615134462062565155579242370301407613001143793824226492236899673040639465921814013487783332844320518132903775653693747918627885306302254265924677372097539411228867064294095531316130801656020726240783588178423118867800220078777150515449015528336779824169313313018003150375192109538587884411202403123358004807633186381420168547278839968597943612309630113408999645793715380758030830509175589550143067299888548687473308834719462208784085940093218635660391666238152103416606156342300115264732305306912278470402226179002208979115417776388045076484634150637306871804533774671224336102860161902336309668746795104517459840178910485898361527851447332147169576178627038416865469826682307492208004984178890574033236592457815466906190753280951395506072749724495284980376602387204173868984845784778494434756729658643898411755738328436960280831077332039867481335016743645136918720340843995864505910852950209711782525966944712793912217105467383167956515421900252869073568766273939163918543598087748654636947270816724086862244841133738572405374135526143508550972925742559852763772354132505607473912829482453830842627604696248666439021442721882438683104362944323392236005747153076667804657844507134279115502443671386775099559364679978733350375755667870087752800216328856777878646490169393709281666856690913341641407225568443611065016721333424033834190634818566580469948552866796582232972167708847614928364707748410027058222470842878157107284247605219397024761062745563407096320941871828891741999078468431647755060796577497683291696999932313512968197745707698447750521298258920612560139987773582011454361728900803490453910748286153375727955304729882860084292833334054202474944181540951125861444615025504014465479563327407518560013723982050255644578167119629005074646948891659755900135709945918122256890674793782365453085907984610227636022913062732138898152146310555120238156191446929507310917640529943381600808377209817383866525293556800702900714956044732441750431574296414727194046372268340412531470890164454398967184048009447301273133258111466719957846731940646515672137094776069725727825275715923731493960640895845244153143872767670523963614024218040980346374743833701134773217949047677400951378714330476362486580125304902968667091002819389492764202348366011726535166835064450469225916275929727385459058036566011997102946844127736272787230382488124102544837293290764384679430283833829947215061230449008385968244798063742028808226480490860194948683983913054959192330375581719510854370767401553165632255626822244910108493451321576278206020558413901740721403273642410220277884425271222264434813928671935689113442493640851234044705260526224406275639563411302740690067111632407164134119311262507713946441139983118734002600037815023032610830557321119503648813440702628716699849214962124257902631125078266753937203883737909457278868565796840378468104066176407623159744716732253635398625061517767591907148084515150144702608793124859434140805329426919903252076067613942653548054393146134669368463528359435097388557666689024643672307040733036266906550163761915801400899613765129318767535725320431485060879636707596434916805296996771414038009456806225985165128273771963083077828188111251528661768556512146648843015175121158518644850944651800998234938863628786199861975326428324848812822469585395129423175529562245955969281906484445863676565473914700748577306992771180819675563441276460948713261924904758409537263577700036498112953773001009946393126848305873827988751462567338728780284223556554939893842283250432391909263770905360017205016728876581526909537885255072029648921028068489073585562773821157471473963596687819387935680867624334911051643817875912707974235050628332855767642766800417676476391516663102109343625352931887602172148695305028563898657607706264475664052912915757642699488266154045462089220762525902370365270684874792061751612972601439539097131868554028960156688529351230332812559778264393402473366370579028028148689463544515336759317605179183888342163312671711921397985921771756032938008667877840139478257459020540896344600257922534979140229729202403140624538494559540025178734125824706656993425004522447501962210416337836622504338322866094186895847261287306274688841642953814902132849184713687223987918324723821739139557975790755896902397628459308816137942462943142752210759776910101717254667325949510911340741275416386281302330136613086769471413306569662845844227065963864488095449652037358649294546951269682341000075961341659259174441075858906130247689187245976307985557346260696407288608244351970079826366050959157232772022659288164465770953573509504881111810762875711935113947920202206152099632921376256029100374119905923846514022171296826301490022756818454618900962486656628879992705991967394241714947540083146742174117934480382891685555120881546120290500392176668013803423009689594290586075118812368126351979192936828528693906862460293236932724743622816818901212221962191163394458239161112310470501179485534913113530884693263861778932375980995201654951189787958675866668752554043433991019492579378513498480727115458384611725223813630799051649355295723680870792381999772990881796659019472643291522220988704026395982875294329472015944950141479794120108532964886686239418286899528428054015145650048391614589736432598103155491806609059203392342649611239443548049095397902986261716766674353605034474264738469296678059306194593198299429618866121767039086497956176027373551450937954465402565876738886587998451003092076053820253965297123724557897048625594017026752225063551879508548498484071054416379460354357898560771552011986402977873871836554667578458957213267052948588168356858287527178495393845560592453632738049000328647113628987800469513835592993060692582988947385906678487372284218019435381968966960598330669319760191786381353728067974652088638260473999229609118205061099776105679982076896659843257561282944708041909931601586824002405324692638447488192727348752022243808796193263278355841000570647679796505917671967569660901227750946916617911327509486180761039175396267005014177793312339132466920803015121749631860622066657076279723427628731738392966228053935279599769529695002718092722124972726920771367848961299785128490095457752448293692629996087622052798013520087637263941725387459149882911532177088220538160655210865471469885251677481224923549292310616221039188074407268588708840785416606991893797695952954059377261693339115641028396094918712824434796288486557765372735486934021329689638445006737067693653104667132490414971721645136877545731706465815073441622355381780670163948412076503370700164107904469145996467905620453145086800709952038010405248512752344899622322159860441495836615054851899007217854658163077777896245954923041094359891326748419408751650621964572307704102207839499642464269785053787891421824700684691126385931058078910464854847395731913935996842099197451032804713910095217363132469362837508204135735613584359548290800052322289665651961052811805657378663961026736377616745664469293161358998699248532758061196213716009329614476027812624141110712487033748058404449686964414872744200734225208736733844065547887803166434994607425742058071914230033679664234828650889691439306386376384462572564658011172026099683820098211312838354459691385585176360883496942947873820085717568784346259457261693645663046998093596638986092534494413305791700972955009633182206975162393543259736172872401130070282518729610177846961863773060869318242775952520268060148687036859748922946071726065219074088928040649223003132719719270951754072928437919818936174291578276381444652704027977964579648313551666688097834671485116411280715432361331570538303043835679817377130420788042951115974506789036149813723434487116065763511742284399210042119116702281319979245712273266703640853920112371714191824646628571834353010471148212932241497439137788106525646265280717466838581426769949814722841716689027113940547580192375637210002938193895590933947209327793065630699193515811737529405994939421162592174979680798145626223404282299250251089691152883168255094364347149597450252768840950567338522033884817852375958565696214969689376063086316237698248011048372692375279211666610992201489446222517316103433227165679347563439969280237910103930022155919647495741754481994811466158985274538326381506038589126048006862073917647993934992153462420593711920728185333507823118835856620697676306775917455514761414628074707988217242411336237808858860058328831998921047880179981097174930615188804895489897219757996746686347737891273149985025003623214059066091153061050059282750161801489312506992001948533928670033825785778057707533683246373137314080833268227712934578848788520883985621946752269906727280362354583522840480007313802381800945421321179240033442433625639947545333912623967611279166009669722501192092597047512487874338055663927565881027237081392842105502271179367989727803374193311572110472764377835940988087025094949759076387204307567812072672637036206578658938276894808620475015584805388969866555290740221552542946848412885915462330437229097424486413237956443331101272573470877228809496012607552173841828299386472455662994025252036751485458144317133227264025940588590028629431940941543990684621993467473284830566914693954693843877353152455841179278707106447787529040839466711523577221938677432628531640468260887186928848059237105301594128002874901477857742864764322443481331596272341233894969931941418026518293288799506700817738707461991498261093679996226583797142782102011577996926837895617300323888235825582288435305734413979583598129639571337968935050876442168321915208576236252840512817406043913923674132133863988286506262303569336197467457207278531027124317924761952632111015176209048443101836625293134276704620137009904034257982854154121861818777124301811271928090036984451631842531154548336161013653438770619777928880357797324098897930449448898840037034393166830013905697420184098339332664491181313402002266760709189587115766449845039211893776941535222583964918864434215948096834777390262018245516392733433367515862250029142211885122224199221477589809578665640468709263378613388993031785710833004160183140000612714878615797990608938091413018544204311536528924551805483385317558320762478261315613177766948212749122129964273867187365032177742453528947452574364055544113828003603399680537206031372163824337076618088280394223838435544356051751653489137316789423973260449961905451454879060342586089054006098767466271724114646585242204125727805926688479174520288982066409929767543662738805466766590309397929571589301966039354111059328434604971129182546707441838749074387483762223273782908553735209540435111201935354108321393041603894910959806021271489526752433717474095945553247207890960407134091599154368804742217657416114085879085600262633075267761355477815075038296085735687475298984851181069829427183359111920202682533120583998857638874313473965661374087248642494099066237533226422363868329532733249511433097936605302868814030906682042145819805829474445650889590865046486955343538115251640645371471567601030215303958838264143962414933131605649344440939543545919424767707884648858912764460402952048578897809803442908281879299402102514132987472902789820238509299682802613284841129169936427298529113989771090469527500721779829915448942382733302854933878819625039566038681205678279833922369822596066507601534873446802224113316956080734263008153686371505552037335941153326137574642163731334057374214891011043943864660640401131029965397405807597386253069292283344220504359627086439115057636634938670109677945270513705361768894931894028861074308577240077155492576593910709818071449846270217892998704010187699992648965135458233797991561111603330940121230805856296450397631079010657836035654656452933683094314496357404460909370770761676646172850677605016145544879923484423141286495948155789146411035499028345757113342408231283514106760961009294039063091358501086686410949966332985402735271053891402184155851864948690049490832458196974896137714322838234845889440622621474536244163542383679845743609707351504668703603245885160074765793316452646569739455848098655855663719924384075566984608948525627943279633891214403364574979479130806143658406078379875770352182795579090812237867280936965783879227004116236661457173112423831046414873691084652745760555158287489842382530155715313238271795993676248712812579127897479520045368862095045363689017527083776522021599256126593574505628848770698158513773179302575742064197393329391099092977060844719079934499193823671321583328284198791005072268710093801025437814001166140170300238384999745595159109003655395060582452332419892842207605703483674097141847286024486140325528167013480638067517742941612419496003775298352160209449629332757750907250356009934682635033809525800759615016304890826274631243719855385222141738856415695326410091108955449578195397597808009142777885384075381492204498813676020593666808650714683196943021238007408395107375558399306485083519896723151284454269546440312629847225987458578100105961272219230880188456533256038473408558335505747678192228897890495803611372899556295858944336430056786877797812272249704087045720731983664243394278671826650496949556636737532412305532639254390513438038583262661291860417928897171349774959905136307772853768330864447866252061353375731034003324999499070411653421046198836820923104794621959575624923003841067695248479226721356129314767755934113418585484830338453650144872124112247636586617417504799289328858873393743218646797483229172704734232643357578641965160367754125439645524567987828237704849762978713840720262586072418470502531028537198974860092306622223387132920888663128811609429634130773564316700705533664924577506418470492245519414605542700287567424129833087689960515534606102996037251399410726361804982421362575023814504237850923252660616526588583702914990490615408702821506593528268742539620671925681788882926634605621856148979361760332657520505092291270535666612723183242269339912094046767897990450494491102721364401850437878416065281337751972149335933825603261865869037543656175403884244917244332989505317454962870385545312677338302165390776607813253655899473877070416824725535886922894009788484309601185992852310912845082195141141107577979804157993357065442228509753750126241940172874385499737519316253124469693847545919028485790462027568801343594474425794656661646722261806984476604485713804575092317776213911115183964359308959366222919607103196377524480090054612107441208441243217877511816643813519135759866443494869715321099852134576419514011445583428947145907932117830839855414998694078946881326155653348834110801601926419863214253462085330823550024044264921038922737525181549163912239961787769993135764917623683400163421610285393510025617385505127796136697959083821538443661941247652924738785735282679310900131350484738743159334008927153726662606220229025559720754056495839871956531759598279040816040028579045120423437427099880555729657899364133818382342321727390714101457016453470290695129939875329182623313468122847814209469058317480626439897595418233962734110163500182475111529139456271753402233954375735607566509451587393851745651170855189286155089338641606546856548262097114328193104998781222972696692417958831050160476224641866362067559805426735490793785428196601490317455881025674703032158467326609011683796452862186820021094816121077275425157408380196302091411989042652794125638854519210984839782069527133162414358893664570729469017020211758178910976790186419664360383104343550224057465513290385990079822984379495188299295280408147941077403008995667675485246406512228551720854169777854476917358435881940757127177194393609179237854639901806438132456488445037023244715541542967074967762389059752668424991612249975415369231224326882985397164531672630037741962979113229512689357188956579893812155539917844417107140524541082853695546824527819903427464482644793908884455582715503685496453879971348627792486234917302439808289800485722906372089923079691086956861758190105472373262854313331438178405943162161218153588322106908386540825116538588388728257035254430966277459214176793311223662883113559521858180484444738404010677108816432686757202489084987595588490515978694865093595070210883183153344852302976700279214774354080447083649352266072137452761940387317525765859865290985351845235420037472489259121552138797595203847983703540765240645555184295688252067353402024377619019287817003478935365084193461805277859087484387763026456267054128655421836086060841295847951398601833921141865044363345473493594400929501930876307022548880716797284869526066313871402417823541848015193302645696624121536811510136323690579086124035267884783611969513140482109411772837828247058460219148549237044336234742734639516702650085330288222346981330530349019288238914376999650642182732032301805551567453002173846261999072938016706572805827966696244013510122391176573090149330219048129154475720791066994651682374416161709609284980670533306249617766299615185671434866233445310629478928657892628257729986431144932029077682250034259337739038509816881874389345176069391254616561457709912314620354597348838312075057619059095878593573406376221864532250209419821591034196314927368675381874825077408682642380062251635009885157060913502155704540890627943902850699057728664741630335070457256312881195572700185529249145521944024129679548462537011536081636137374138276774172526893816159580474773984471265593769680633961933276563108467272553733805781310647699337598009134127748453847741964641503637687945681715682273443605556379131790545343220667697883826344380167949492557355332028388800051257425193471590185867117235479490522724041296996689697284958030902078111986373142656075581789568467013448966585645053883776294890479208374178129652745925858240819176739701404964800081177487582960916858965430489587578043095941038980332868255807283742699120287797288747605539480344946184465678984076421721169691671923967668224335092042322932160953056448321628557634195023440234257086422180379215674696884175899539047783505331387833025070610377356991830422992280173356015749678487933546408530146840191643290011181864609317200032928440110609710348858116747309504269717280016030401822423434835732612488859129921068727973686269755182724845353547832390010675259528994104349724082799138991904337227203305760090221410506020090736901431588413197443581464582294466033431166830777686611176219222064061199936480434700120475015907556680266738234087251502143976385111288670730567063846752495584262076907636350085997080581129058414393215304012486181116046200239935145159885633387846261908868245412193780201154887994655541997848069196881208876115277752560593474332613457766787202395790763701899095119274345323342152271108046267703052081545574235688876758124793544563315925397346118768088871022770728350678425105368434199155340164301255384364536806596204900270018367213184254677120870738458839287553452841082636106873590546638040443210670294560351454346613683152523661767882987297091330000586913917873652864874069173732492934276398225870340286558374097746059664903755311346635263058829529330698899103366365256400296811528611982433654230147633028274097072016332767832132717885048924480512025186621518580170999446407074236064171409463552490016239302514658850211451632309782830522305219448252629750951625792253003568027187616817106821389237146469779913699452401197778804975564254725396976843710203739816334733852518894090007609292721999635649105912661588950846872473685559946776228403129829562006152818908815759075937903969153120107674133935365119910662307371641136957400092767183153517187787694581669810739498326119756071788036384050145890083894580113477578731953196653993960786649070729897130573897214803532553251394343958877820517313957901977781788665644082400548298151629421381615458689099792840375634814729689506264454546236033482509195596083033228270634163585411980342039597140647447644371712054505745936524436568229520119988848826383175539167453439073640837356770242558398230709730446825683513793807521805705107330810188884679660895496600993325827975128253651783818324895339814769309956943632380678755423129820858719519707085363149740115667515306690445676558575006009848814445224771454878875341704413991878642742281708130074928148583504349286242899816796832998717114134442109110772954202896264532659793901219208976137817462647872981160501836971827149011807672897543099133759513512271032496435922696103984861499395115703334569770947848113179593619440663419372528747912434765853577541285248370826887364585717176313644158980386708087966751181945740312483975691535532717835737989834370380990043952290543234031373555351401078795840114461655274616863477687263733688156149157018571213205464927658343363728172563488442739969994429883287236967715156156255045257351404845679835903633175631998670642542519322945170389512781642989018440936070631901272423648372819748257286553278881497026408738856186447311178746055418902146746607945770851774775503360429972616535122292343396798876184175750774682020639584827950912668771851784080630564978327670868068083201161165676143421721468257423532179158669161975286489647520982156357518643469400166654214392126914136851158272804545182533683161088676054335603474982438337175015131133978236746161716979802005196789023241870233335576489336110708457708187639938585133633629402643865833979112647113085967301642352105253805061577406871216065391487102092224830759499388614533172533806767377078259429818660168317802776524269661862927942521590973838363896196299290541400130872904160791058760521800056681975905546062365030556268339380653225151277542751288595574507735705610366161905150726342200781379334599264482402541556358850318809020980154012982428349428271548239314771723492968139379393655848237759246631834583713591512826288904329650745915449647381389773660903638810854193515478283332064699003079134739479778092140645539913348094089371794181035031848820342092102408199361343562209740283910444467691232713333830671226246613128949237066336988140252947510643142310064794282597301785284218937383843564889376802040509837518145954039517970069856374586930097305118951254164451941214111647508352104395411067160212532125328699976451122326000623603815500377745568069180637668755817834399312800980414953038815894944762845883011224321543094606046066727548705481457377432922814212114502835568970894590487552199518872774523485073851494425047148095307280175556252236505402917910599508921645115669899956674465286695525806980518249106154668366614775608082713759270822528493829668041349064690670802050260788962370432310725055689686491149109722231822515424736115340979590554946074849335011466485657863641059068684533073263532441574876698221502656586192514797459796506778986294887526130083288595232259960628252707309349454858852719901928884254716257912231336021720160655835899214229282828112772604935916590348647609369154481306819489847836418138533162576348928535429818610039437035226650865981826988489314135472379174998028466461926940618070601898767166729290808272389565446062522749392742730860171877954593524018841249131294233258649859110166076085886248486461166272642166368748500216990191371872563915358695923581551286895926384578149031337192713905769958691688124499987291716065079593304478845896412759582885572662750936243061171004967678366147887228278583518686276878428825897844089147561771224316480647022188911681818992824137263158268337765502528901363443680974042111178418302899475147743494381199877981352043252499217836773940503788692239074074054247648107493413748704550520577518113907653715887902719005329916358501597521303751428294619671441961025076581730750750183662517368959777016420722768901621287555069134396881642833758901837267063180069087634513089951277178872932890434321256441322861326713340316561867142468086243279314836317615527011678205241849453480037415709925698698553020349869230793355659458976879803846389864722170554411316768530890000237143074764712008949349363353068429094708932938896728350235693470224280972497954485143765773914588521204443057536978617288577973008087174095939945134863342453021661910651212423262232000229397216627833385846238493143136573464279013341397062913239317134008904168736697295104247217823835800039806115978804582228939076029315548230061278990471142737707458176347235309862019466456504085328058241306521319823566075494137445030772720409538513474512786676009602384279760218462612979665466445530989592433405136102813558275444961460138836836313546278584850548429114021671130513655764904528596411751065354846991139761448508766203898087579737442706528251088572983840036146216137571916483478257122788008194083506335544970447818217907476656319020542756163088479906637151533421570556776064601931612930391789268812278145466693909876477665439940175000308116816784987173791357856303655814923633585607255844618642233394826591474495014851377233224923727574831648812005643932578960056285698133627638588002978229341666027353811113379272665379231361058213633816490957869174731807359282910151967265169709957301412452142540909397505798465479602284181846642484984570164031616991874355579529354385848356041093774401030525574149765907142604320949749569605800193385070111502621990174250921269347150678889104106189420574507471803013489786048100590573783540551200539425169811835728151589041093690137454038320386199769276108291981084542138814899774576773233398206338445525253890931725457549320740502445481837927024284962038315033941899631756430294796261740021443628712320427008076422177054029220956859890942105082680541507350223575737733925263307774808881213746950818277460159064959553511533130390256458510385799121958951768367399872743062988481399276574400243345381202539636017403858701093806707827293304739316312595515679940032989134554549678476880976781588943295456588694040806519650149022529478015167344115890655195098990536490012785990386741477517070507964227399224457770615582905471680052859950827767852867145382587672757753224239636619704813551009275309318566604582090763258503642477647951362390126525086034348703342081912469101912934623659672148925313252787910084195461906412112137205689193870271440285953703661920442671877199316459032722806730497503803118453778451018588166884151898744533011066884695200311836377084475213035941464458409446700615407475436810600867756325882010394875883144892300444177199717729343939552982011930612408758044680374314124722907006148641067523542958487616315060721786336555413666005326661961914121048634127858397156889521450745721455983936696533327505870024861520920718584805800362073955403320359602358712463561395760889586006259478274362980388329171884058038795527415455031025866427127642381683848161433666972635837207771141905869511308444796882631428157948203178775819649671148284522394607433372055540224150631280871045273147481699637001616334933319507713389743175518366598990997139915381926656423887964954886696514696739034460095470726694491072008560058110534824481112174763797248468382084508399274060877569581318415439548323327977852955996651006581343169363115953791588469084510876358082774499624145169108993501970689231204147248660348736869258323121829074781632326561067222257671434017617010378122571098671438790096127000602456932673830989807594724010943593970169708945205974385938249161546317025312672583458839995744619454309132071297762766047894174249041425590562611219464293842244287551812761679214410877769107230671341568379326757615509559218636570597345613619812407358978951402570750920763817461398402177127484578221260813241916305430697660818938038089043614944842144560594013259742746804931034615995148760925584161078211588155749731844626249848669940838517475707039069994131924572057114628626708248100225827819141618716073066168570713580801671045318476366278731032509233430551758858837823665521652754223883012250728961390387536545311141689489023532302793623976582646734988205828286084467430797261112838525785165219561228617674049039411964863094164792671202175056358994945298202136676632234590601665669100741461827095400058247720568492132181656933250041657931965399691193216582434915355726072176439334525552098509175082509860452887694214526896586405369774123999002861655443389901210255752903040300064061540114001192971966814004545500770276073654813325766156677211363291271498834744710983511938338631076869816839097460642645266385166788263992263714184279622753431014391403993065957911354417481195317237196743758280898667675297687898077679534638154564839222298244196458138637965476155602880725077330195925595114852242937844744090711881310612632150801023743398037180974787298743900194126989583493690657741041543608457205739956208442806090759290932263625366470618799518981393788358209803354007437317510869432892696758026733311306533611479047132476202906048688903659017468499052799989911456805378180448297101051739283597820804535771098992937630251095381473840538710705286971833645889754526307048433132152072676031923850822097100218262353542511882007956926135002351021366526180897158939223890527881509267852077340484137244702339598415170079999472135271766373929739375493946150939756115467236891517386291436528938787112472592473422982619467251176335409590767228400574805674195907812245542345833638782153525303713238480467658782616870254093700849324992931404195637814096030425326123803904764385465466447707444168344021772568101245354276401358182084113608950854063656690822098125074327681965086502723668614206313397769692505043026085054516397895430424627621450484950568355246527797746281960771675684985978641707751696261949873538472253089138441200875569450296739948668118655069033832538845570135086174200572280564041227564305358716609585683198766074548023514548814927859652788462449390127917267529384270531727542457989562265312214123676628584045540485578589856367657666372528605686427058460251711281291585671415148491545034220073127990006118599857815485505623355270672731873732940136340488304946074943725216050015721896548286651888749195044989299005709007392808666484248745026542682369213372761996770666828024031170963864598675696088264212432177255968791351560035165417277149452211968951203887147070618120848361902506668722587727567686457254352839258985190495296278367184912279734696601265610850188630580544331072975746078869943998240271618818922030755612888336178549832434108382266962543464458076341556163789252382816873895270376598247300517082583632527577346744352470141229854956507236752979396696353476046328392690960957097807429764643510929427867381701715598894395404823168185739908131904735385436981544942625549411805300385225221273378437878018544928324736246623378604480633909360759632543640369916765094568514930047958538127741738577408453582609260351657195160920454666419351814652607627627487302090765723984561892111245652738434071941843669219567254967749282159030092787899139608639153993920706976391032009910073884718165849611921714835873099885185695951985024616855014667969037719338889329135886946296806496440406114369225454509494495331730940772012354698968107408629195609568986543216657952170178716424472366831786856419294101426619802257429021314787116453002093638420355901197526118977490741063334792656433431561111847395588064696236964519737567611773674211822627292400828275824189468254024787972099403832651284264535950667667493062462079690715950957991897254807496214054050261796388288067408415450675482944369934417137592252959362601025278713124089302867815224741250556172309294329881437383997034295036114366298661382892896429347764358568886304066899155403816821650512740621220931382343072148552603534613290368516669450802320069085588557446931288617063274815854208136214078776437068699990516020477622698074722035304019543404547043178946190625336351034199801698029740594802540649561539371303969339825435957170857779060847470994588285707013582539511094348002399958851369404427314541909023140248963022308659764010451049093842256424311871817360777508601873432524281167109625855406507860880976833016123871566781084430457741024197281780365262631348224923406077897245459423357466711754863200347367324156030123762947663550452531957247527314680656779670742572449872710212499822277501797974527863940421657899986215881474396032437902287986154954103380948884616124534461634279162037614925933420629276954928821797309982923233176583898083943462561233085821164696013236443647715804113980919555138790710052028103822777792713777563202341136484899241980527870352935301779971305180409943724701919071801001775835751053884062342589657408927029765989626985637498422990891304274298454679983652437116097291467204354219456536640800467775294514737402075612100513454994375519502925277706288781921990144852968987558086992830698972099279675726324877637884364579576687183124069642407212570412513771621576575657461055446696490243471988032491785459759584652417363232770219513301803368050286505646457459288658321882954624263752694022505467405327312256057464243219938790490442185709187976863340012386272995384617974291832929794191969328063834000446480385043184708903440227483022485284665484773583249541567059644751871702358132972152832599307828714723349979691137692867099249336224734360207306041666956940083993280964966200839671176871107639385882438991495429918051662047752225090948161244817050502391620854560543243051663704501972025342605542311393459280884262096359676559324831264309828439833799449298610856903877571677238521455385774008307195428799576979563885424429234220929505318493062331740782617218913960284867471855194079961600684483521375265634629127029468357833439927259752799880343541262232801478768036135322691479157309075240526741624862252763666087112764665897746685391701213037102755169296668206733526545155573838847753194268604213168981417759381166140745066691078658767219945547527211216157087698261060720714365333272025090000736844937075265670815164005801607646362029628526011558555700137142907492041567538484647231909638360537209186513991097589840033700177668804114314373126861376375059361636923659750455584293277694613001585573856207230809136827122836830844438285529221111953611558056319665599731426868599662154390165475965717588787038113183906674954385232926796502586421258189222270987369404929022783533488542025722495088278667214369130421596381072047386672620284964331751992915262172842266769904825062612479001567354719986234272965811309592222206807326437362174324680164121489896639973855869358282625089771497850819281590667040535362695776694638561834759251956166479457127015610710809254008179179700652602404392614320473863779099305321068272099925240171554414969256248794978416747825313429801801120340759200906239458614063925293113183812644947459184160016584003437765573395772337063409999118911091343294881776804845869532375007962944242441642240665776848488101239981076368011541596860896183676203715250448948341090529221733512656335614437328503437034461824142885551907226175873505024896736864703141216143898916985685904679091751831318052682355970359769867160218538201999728415866075496516780469271648943582189314466750485791056292098232568044349698008942500783777993608888567518229071591005966975313811548560807064113724288464255199118343934379674578480953080009243152066528966017387118045927983431825930373754919637915185868843717742275714080160922085055043150968788968231628828838803991378444564568109012642168348317173582214895665558950791031898099751277984231032683817114060269483515877355444419328963309121367130682041034293750003085060026128384356973619154656936188739426255387083397477468288463606438921027247844406104533962395923268403075966819086182432144882458375787231568175564632673736678245691929837871209303415011685888453880084112464232260198331932554533126433835695778281386013948300787019807601276637600630693043795295229995849036796112461113848610194541345596260590504273885806171543376766901943360012743893349820282413367309976274184381781401367295486017959498665084732734775742703981076688982301005593719779668440029495789285217301491989549121186733898562222040740506911493383908232296965596471105695155897973913249081449474144549333267511399086876374508778849506746552950364962074271407677052145686718975783141668888712544983265765745927675600528860575050717662287731402305635011771339287421463159442180907919767259930172412380980254089652245433814542281220370186798479855822083889546892198033779869918783983351055728174754524060953466563669496035692886204720308275302853228374141149787222807529262845413161588001390472213940817050948961994654321702650850025129987154972506478945372497997924235704899630030436614692396339705416449093540364304440807368875087518159881046467067970452997771556045432731534583481562304906959077351520354796958307648716365830975633601222160486390728982203965444923929258082884666137323537590304825918794821519955131473791707881780309480415670112734566498429210570502635623466353089479907095749679281770025775647626319319700872063297318705975066526391221179412027228463547523082694598733378688264777275379558044893130802185593979426799348867326087378601663553636513497094238487547974217636196482017832861327678223696628502653692387217038333618884189972420616591700788358875506051080732141340734712217287057935244154866586220148831622111959168177239977440622941022619666720325522504199922304551049954094877257914355302731010332620045952386586791786215297046033993068683098752152999947011155563364736052845773311692117415754473023290533194377375905683766042714999439596469115018918580836214482025132769715570446786840882983509571360830361359145758377844553050675214358792303616428012757416360772749857287376609458974628068121752432085044531755377268389859389119955015735540229537894119630034564514988122020772390379974724029073437042210117002321448690529778104331066003579246278933703157177326232501543373060677528685033493145290227290527061861590706959922317416715485282395636299073616159142009969720354090162886509322529210259984033575796924884677757647149038237766010091482836886413814053248692648010529485073637512716154648621830620877724563397767579740881855160382107867859247808139703926852499541672479347500081329002717807959628033928926100967055146055568330615033109303752543743377601098716740431857810668013640452433596344484825372818909027056044411638530030323409989326212019071105423163146081327934411484159519439017730248416452038288429579295806888826887250049977259009845826507816564747891646548266916951048354740096357613129849408548796137491315709335975039012196988424070899496035888949114089572862852011298816116094223629711965479981678070948922228340537766586716330205793462246951243078921386741697644033839167973157000440794979829819519985410960134168710487406035207949490459880094638992308271299094265929105683422430621178957961790324305619349976629929787549846321156658411209327240877693203708652639038866118068920405786978792759332971302487773683895612148231368867317884208728429870019814505964720972018661183922725330438695203909091428485030252293767457532196823693863849592204796664287030230749604948039980701427165664933603707989433236269845198874029084685186642263184287784065816233762075748273571061900739313350566549648709324162336458797433516383476254846556790743563809036406220033412610517347528204044191831829972579789372621482415605460881948354625738132670936949943474074734375992316458368661993121362530460053928377868056983720063169359376568782999615224302644124522968598794197370333338632427451324236680205095324210228926353670123098535439902218255336917392791153043101454694212633263498511269757449884390880041412957959212854666706193346674240786195287424524126390036827755578103006005100636436177883137157341781143472433591228172756909662041315192461650157604219365567998477389150001770330331503514346797364619688290418715766691768659629003872019664929426871142743899294542616066969591928394905221480137865825316254358909729954226414627884905846495772786582913078767384709434299117528191680403979780266691169152318715268796763144746026249494892321026415897005348380601508997771736623930697018486339154592293000589438843933166114412018230697447412234367642459196463719543094514675682129682901240834949460894853336717016646222708757284397536704126683042605343855311982464229188457130824990992446246137453086455160419983222512136182324251450119237203838486684268062363924022606600578492329174567460896194848217007067943512431561615091383852573163689276285135195358546856962503167982306154900599534492021114171475622442789459079423877019075090916346036758772638980791003063454770448303283941251533092442153848576002193232127621076233276133228978499720287476176824566423503542994909607857723349870935873917378768021964178541227049381322515820094861904488308053755087141404422192959671803691654425472207669513086597205830879638526660030042465109489407753484400371229879013934827433746452389959082246981775776358606740625007354907143251175452383312319623106020700644879599992607260612096607679676884234393068613172302225922998592880578940366726201244644227964050724627274766155047429929126461823979243077410328027533001768092053646850524555531685198544178944655930777240859550818033150131735029197847953189309247902380041813968530691990444815642585553345709956000841404727598607968971768044541159255187907710834203592523616471483658216384615717328546474181783545708316747827950021685800298381552857645775387015289690504168070899127532030044513529251683319435651617224479636924297047743957254092246937927609301685997542035373730383212109195620303869286584240376475422571283230420412101858288201613489812515857830873443733497239949475997132082333054840928001650669038099375620909494846147646011847365382947503984333100283525819969956512275036829319736906078986693752946046171068833419228260504372693871365351378302043667363976793310586045391798619756739520808030427072130715595732144372306047382327540809644850452836302331234971955462962921738078698897710975615146547452479514628408214528448684972371480371589885722484905269743225139082834104392906658157682487518384810789902371883002093498027448014636105200996270229775959472676014512265653191711025839661630852374159326478523086919851762955624174359339758806371536368311958162220675718405835194690841284409173598280697872444505789017686269557821202045320450315036934029922489401625880860055469971184213080111761300350805656423327151175889313780240238354049767913955403955654030667922837287160149904950813614184597201377646421439305525120465489545242446651562398496243731563987620794361504314810868835377862133102252902531142343048260837396050703955756519202345947963598224044935856646265010454874022607903095045764740666786134376319434399665934438205152063760413557078619564175210788608329635144671457563330589477558613508698985584439497645983643577837088148292778020163096227444858573858963677470056345829032571286014103573951200747297757575306032225141969500932939176581549057514957128532224926409144304635635172033452103887213047592717897946002565360086191929427515637666955841371338874146749057022631754155710922733483225414482207764393198093589245439278413718001578881329248088929163980103787836538120149043649737058428156712428131652070532451970859776425153361110468530721200914910710673308402502168022896504002530408084545369614330446848710582954376137609574653609674232608450520810430297303555783658106001842651654618755377245975853569453404270091993031346479510621057056900003524583213037480569507584180263735642582981376249760367781109705373945138594727957817741025486886298945039755020336538200884662865756187838737794645426503659074069232822862070884593518468764684301647437955900191967041196684596859198248051614695830595502971243590871544574184096161358220666127236110235316955785173942741710597053368650953076422138598348456130414951666621417680293276891550097068178224863010259199654147596758691612513629653097596299684031115903434403855012454946067608331387806484437735738249719604760626128043495620833038535812038679065255049317423642498218292736144277130000282642313098334442249276189012390756318497532775108182448948981818585125628348409229970903569039906321448819300026537095651629316208603675351239490241345594429921764851400637410372988538985733853966822694018162153149307981438701113732010720753124802954854542547870079378563219995217281281118657642940709703353832376926549177303028913334540961169458608668596031461197883291827395128921115841362132327459237427336004757768420352969383067767438666017985576238906358217454418414239907713245007173168349448032495376444946216663724540017711291039943367875197131950767422223840722354269280112705661064034229841217905037360598880465837689000596673386783601831457932555640912255055934483144914693472436175196036013890793555148710527312759564315141774120608523107736408686525843049050638194545489470161689978432310419972305506703847789038905124985029644345230332291759326203329463993961164003520721482755419309376012359417393384038659625961679578943483685704103792819946796671121028191275113916998925517632553943831523680378557442094677331422142839920679665550599296042144692066326946686808935235294357767505155463887054210064085736563501291562809357508270209234323059657628045661837036412242517339894981094429693598529180600821150561527688637846717554436558921606439480618979881933983042402210635277151990816942541281328961199779909755025390600838822658113169858549673093072421577009759935581029302516563088794626592592561933692687180258928185750595496818276433283406742260217133841526708715758124616664043581114953702863142575397922552876854642188950420728542728350652426500438897046369963272793403975112849538585273421789367121670500909383792428997899117195175702327374515330493836377374697052676297931791638016750227314199502785182708649840019370401458694046883550597894901939918459222110862541350019418825949286288172415531951194518117535987666645259249029392799418664780690566233462061956768655671121703358048077286396275068084515772228207199850149898196288221653846997660602472270204184495664135223314455256110979769958367206766423983963372882922677163264497560053134923357811766303169403052790134305263613704661860255088858327723292680496631314608149529559649032261992698873038481643278818214194213619275456961718485761058756270099481911786313026209722703949182938184141329419738583917057082687646288192377204416669851011536270994824111997088909823996516793265762563260451514089273431953097254632213856659223978976694914155437159728881884258025654020292973645659227199141327322640487176763667502004473512241778259365338038105598160107092740055455892676253326888260380822285748508744157667298690176153137293902820398431754647470368494201698557448662481601587910050501036955682124161431176242523764689904284003596942450672186166138782465679116581759855179863965186931183618891053680872236744774871710028586878387880974563002406959509985195179390015781786755248212668916594615282168743106879120863864700135494463890579614161340322262781727307420797239595543401267878177610080182322044273574614042826355583440505051516394135538361586360630874007312711851970298638325099919799543358752787967557887200379395247600464422630066894874125897851598312616898718834886191914415833205528917506636173466517070083751641080211889503733304339381278575589574749378724536948137702883751723127679050892393449027166493368104110595216578631769248095778062751273972014027173706720594641232091090097405547333179922898092525963266954905495602320962742676050722774729472224652293555573825702079766557816482445608628164249250709579791163440932805671929978503992278156320256921923515011419333583857130626470229205041255767292845924615806370754288121265041596556523450648287363606200202539699464966669899929741732236428318123121365546055982256930929385556690535442504419104206085600310244505622825108931752383752550476578353297100225978171352759913490337657425272687886319052362816191824019208008560796405699272389171731166613911390137958898785645467743370631111279107102488038272772373340277421147579787489908248087337132167082450126389152415648531861512007581992460173250953955473138089922838644578746252572444014920540587875073186597153302892565253402147585424611803903474493734806566880853171356292860749163420643620815659744266330690675130412205778902042258668460379539031470308365605491256635833428569386379727510566957198439071042493489020208900569710992806558041266066399002211692793078235164664985435732337463050927376756741622324425688065939851751612990991576269239600898772086480250333175359406872925781036021000127947064913691232236385713484557771130926807960386736031780908044966206918518225404821451845390667256734972303211967136699727212060977796460179055614386311379343213525828895058392779506955854429670789802413871626475276419384499573638763609179485820648448682140972688093701159599645131195946093638437386947282752398557456641223811579548561575167136388227014042506461856729222405506848153386049478826738956887308192905428252212225672802463809842448873030198444362209300593752610022051103682966880787854952694338386426889945992956459853763059035018828965715855441721562896494349321059394841372949334583302489425349486629878536003350353639996957856550606788330222541503539920369679227477548123865638451026920742770624042226166446818864477077818984563518068458773406933018288397078522939241846956831661085391028380100212985290039809496894471187733078177828286978898731967974770197120923973861381234998367471222461828329859658658049992307646954585392571629646008383072711370141179434776130693652651033259256910198320750053072110646232847305778710652552525768133899937038979404548162567176300807635853150662869062764866847433056693645379385352471559002132780883786737392591207626384992366425877330537917617265696844743359912643471692365642939878500873969001416692801172777658749986980866967635768287942003206976717851707658377289087311711726485746879852347596616151744126788717028640560011467690976035764942612876175845453782473371103701012705680676233325499499648387676330341139157414022845085214742141214267938544304552050430885813954988437708700730386936112015654943975403111792577911680487303994918436170450991715941229369072831138844730240029628048353581656766480852285284707808878897083193256209498761638811538390429590559859262880725644351135128593175647895584418494846271190179340905971319753749683049587553284477268124293003468157225224979535931548138900620245185565700841363878080415200088835880541193894231172686377190786592393216161659670152860702721438975881170197490509477353606467832540302493152294778689983879509843532650912749028288009691209880047348279107358915876364453696409478670506083483083847706452808322363210149336409576260060351273737244146835057185358877092259373995689872533047778418356794339669347304019762025692102146352862395970132502651323104421218745055601836030856862055401420128002545973706153098819888294360061396385445325937824159056141122685794067195700926149321712705824042793483911040352285052938273755390115636308875127515954962440695273768526592187989281483636714514464668145284480451626886656571609455354295158914129635492417517565181686322442294705867095731185910668187155126935435516498940673480312852675282947030043556976399679612306109489184703640422778815922955349957359780106878654604927003756098279651270376435282313021720582530058656497978682336970770489559822323702858755880637438774967961021775498550134488401795953257692197347278952184654447758588166637583746936913413415215754663951393912840517725264886199839051340903616844059326624195609496954658324417641258965921963643804087441303496108095475019550881649485458073265198834897541529403377024541758012653718096629595681448684960024832306670404482130439095122966979541786446026329484124999621327032146829693930619879342719760363397263726203739694063284113300982237356359169350352531940307127568914913400720217791555851274788072211193462095074224005061458588703653561671505785870328939157109879724155482657738648770388392504437342806780472606391949861320302370107365658038770302321245710351479953159812300691768783022817960058249016707926691055017572657361011878157614767903155069887995923165929849826170160419260234936848240065746587360590143009209788802970542477251481325039664944557544025726946271679741847630319868353739443725380171282333284330349635200916957438284215021180509158481492152605126845750972479638126509400575224674304685744538235240241018185879959018652136729727148134505917323285975664382200767800372444554489854858799482966351876284760785636781825584717528493967827171655245232213169780629947142275755707652563627988738688180578810455166972173518179331256976521036463147906652098496892467630743820565730921982033413344915448349894532104670256757128364380927213961712062876397741276275872497524213107402711614018198215930776822935498062502778114894727248621069119834790301181812366506375464700699299026394106192735207716949841907393111575207072420320846142981117635323415001226681560913191351559216916020235907846884436490457880477352901028883697689788867879848593593025101071778116396942619048245014232945214381175900394178359687920443221330439296212577274884485226708729591247745451889423914724394626328006897548967825821811521650315712328134663148812485208932699634091680167206110039852921389586209704710847441937264879712755691767962530402331208580490746436173793779619693480974005454396212648122562842146729467102101248205185687628985371850974502913663403005182992278457824375835701667875262486832577789221298484415621535542051956334865045532472557596225510679219152166229507955804188425779658802776637167977521516715380853242772834147764093345011224042288632687271248213467085332896529285304378751126233381159548652077601617481944520720997160338328064335513945201586346654905097342636320918220092163867036181591980752567153010782868645604821105222167580157211284033803931599586488673987404754986779239789814192090897515229078027659052356823877234167075744673322343615938623505500285939118012927475926274902582640311037414236225637893659806620968508663145695946334215519894005919620611963493112523335221221683826648927721214487393824304723518893227912250114096741020032827738212121773074014136889580781089504724759180642154582096052282435038188219945420553998114554337050818797773675955887837798249569516091310067499787211912840765465235633551913496346965006889483460689697111041929679406171713571036617271199119879412409040175159245541750137775479009901606354058385190453904740434424406257314194631562430600372633434956859061518852995146108840658057680200764972303900343807895597469668349782411672531047608604839076374990755372557395443962030101892459664308466558027204254349095370399117804511019097319499424879257076803395786131309623431548101219157742410155935830688685416869889459736482132263698727416848345938179240794804673137201451644277041734240451393829364894606119439625216069009615041648534932861946741719525590533540389492766320050721697661206248236146358339945815235506890154296450387072220535613242477604071564213225192102726692105356840293495738616027425836736116799854408957380941896459646502984121738240341498248423121087457009913368699480689227914423089217283623618633878652733702977166050950029395141964066711512059270419779714198249247435768544810177009868006281688844726477643436049579054631491993884285204254538425878253859915030239448104185791128071523118397366084353686036663717371778817545563075878658610257142755101369829038957910014095012132147351274139945032726596980802425061820624869457931852825162710610031118042721231737157408957312405120954750333234709065321499029352551752310847561434204428664952660201089796956734091753501999109591780441801503882302038247525892101518687442782673711871746744175764992029719451339805311644118841337010982346082031700349559358624232343811132979015943622025420954652198374708504024899273959342990391749514289976408753291766510170814080317432892037443716666007950537786716738046317529648765531263463797972362046085923159545200715755135058440356995689948655558712082825151201406771986921449160397980701898590368116685338811005973377106062755661676700321282510464776802508376138763910294583504923376079079503648233354515869623056242492488229218276893963130146992930898306339097083660620135130460050115455269168389587825974878100685738175444110215931075163352486345980653302988817465404669304322497803939170521843710846788150937160399081401545832002666265693455954929217266081497518863962790561815359356467501960477355879676967427983582022686387407444633368137283758551009821622614677887243465167315235631453330131002669422491019589823268814144490628845245521822588863590374099197527457456567955259991482796390148160345371356861489600801924710390068730627785221228131306418536875620923866405320226542064388378317429874594668038114376687212759026427196203779064617301148619846963340911358442942068418948091294556310213495521580648352511910191924661959086693666574664407060312854700637837291235899592208242893444159617401879303516875420019039589656853941962774881030021652480006276585327659893396291077857450899702693954795205136648817065335265558892121760978468670855528257963758298942184957348770576526158484342173551167920522983407322205102571242231529542492453074511790931216720460772986217098123868925463518249407212218495439436282864243972470388229537449602260671554595110670753472303177194618737425276888564872153357838876025622896149586456407100234435731355386648788010741684213642516481201056586602390089823438426980706024908591317999127201307499197289347493024707371117668140159580717502675523410419494008499363688196744330032830443276151662151555268028376490288991952905272637859792414168389563039594608956462664345557915481736801290773916401882029881232230402274233939677432850336177200706315195243193028896675177310761283312626770466166437549537979052338634613725157043861569681299532323869162949914932484571580317056221493762168361943130245753840876279869196291358064846066193201199172450265550014214561159114978949945406578214616065960647835887003021105209619248057382912764683264837885484997118618203587569766087056168647577746511147296853537027820445164095595498864704534700464100916710733779816763353577813968956606197365052556745631396699801371060815294757766469697523300047546338654770673402313217095401768159773006652556941401451658521878078500823826550290313980304189491595885416010128005975798084357802558987672704765194622754881082765462713825576802845672248845740348345031171683236747645453042386497841004113367019071924906630044889249482397943756207926570687683998192795208483185814197238493799834773247574412710153972363177849331857843595864607928605474338212292752794779816467959154132563054905218328161878430644979427302109734684161308017454395303768382686301259106575272933735018807887317842832442565487602854698044396516830329730729205085604016251667657812101203771995944993109142739690507139567954750950742567900151723378807189757176403227930441078894137170803985758922694377602376817202876479542879039441939357988992392861510954725468202759521701280839326876418791267900062270998297274408210010278897648549894290235071503429796530561702399848730794252104969847003413305492554608642847325319711014929891900626561586742008616401260955314856817703416005613171953205533968270070790918227350195679687871692368862497823959283149784015227499187442714112971805839836590623175176963749924293185846225648099946634982143198675286088174425384319588353751206827553037577758822237703412151059325377856865991002746635626984653847376245806258841916161151690104126837998320595631024600318803810733447110495785557114267779267453972395701473421727180161660585698100235651705661381493298123517369556807639886768860874298064221892252370444394505768612789396963203185594888386790132408652540577703112845217923472673542329232333109331503187096732319603412584326493626883513631487740639628679305691897674716570742547004362658592261243120253412993008537973408836860833143345088732901837179681055309680712230471335156761844760717121063546818297642854464523566907862616749679532575174074756816983247938577182338151734163820144855228687350049747308471421038153618304139197436743116552668223050492513621123627046192285370056409709141506369507454491566987589492683366455848569057808725547338986515754225473971368907152721459117250762774154146542783256915034792747535845906278763113656712707557493821305746037631172774278192089123457592608222509843458970864306870617448789110755381413135773211394578642833814088655235937593824629749662935896384174576951300253808291064839996899170951951137258790362167885197346212330714426783180393357676994630506344010400833589004237649602116877931817125951280523682674411070290644161275663827107819839409539593239805016000748206031102293635756524493844634353097396454353947714480094416698551467852955594408530645209615037327283606237413665451856852987940043843544246952732499295972485778877985960259391778305778565186886352660217610831650224631020358698633191497678875317784692592446535848982395070895866854653729779714143665803690488243978318279754418421669082084268128713169812619521306215141154313320822875791143585785645833406124078853722138239349783627343670316869687465717126549616300050236688843380534238482933738807707351143474625578743028673898323609174436055046121104411953786565794071087145160290352437941860087554810325406488930055071083051349649400351946174936721866062023011678871427581567380998913462003452797530759556856875957308598630247398234224602781618602503579972595547918904793834580083412635385045804820183321445922134691542049146097497073380582208741052390626307255482207537241070150659006263146713913703297559981213251928835107714948345485149858212317808147873720844470527820530249059227573194332049358702968880036592546207621695326589460186476456300182032598341352885500990022723588402198754126537117089053893882667468607073117127821097976191119511843848104396638773252579940396568131025440334441505510687430159847461620604348284401271445465005902920354953114395175834856632845639180805602834390776706827211318476861837284431998646228497995319881229189375890312093172075683447991283953403150669759426315252277048838442258759012661680938928609848553518900318080889839855397464766651087034786312904569148559565523173871648853920894225379392998424818427554118963013001588866421187063998030594415845266007966049883240941004007926004168852294259468467738290729405377358420847722523416960418947442161490772747583660889621442472471983256095765565210900060255118199671742373553436387222065298125543007567529394951929544463605736355340929421014629423949246398678550019019966677091094464621163027504169465526570850353735988166402448830889533469920031261686477556748029898140314184553901646271279446578534415383159280296676367900341406063836788643298354561180626052525146530624220477253101920241532998651342205915421367703988091583208075399140242542861377968919025809710352957953412538583206991644301804536890687479335080242009639172904099434762324151644595453745930196988515801350012752458456609607407091605518559260347954125604346802543556119954193279491596843623719711658409993998740227518640915927185238183650463571045562518233100035781756625750234525088236173625576061969684950872361541105756592988152093526522069641979954921689646196053831794506744983504653132361839068647273933168061130265297647968344415147481770470084603128678098993381241543523478721276498883604585514031836356873001801779186166368013140264497444048889864162043137622250496947060530780523954118246605458625132298888067094220332136788948591052059022657815842589654419706906194304028966041079982907402268385853187525169660086562869060465170282100145388607400126422238406374286645054336397473133287461611129264160214157875804403971186504140058074848986973884790014572925985306246521444824186946965711606065606065619039915883869595918180985736787695117059359440365823239793014661266141790375872447503337176081356614175776936587664118693088137997633401639745359549213349397844336628750851545998324733066717265055708479504114026502617363616951990978921165789068353684163708678788561640801116213522466567670308506412194296312148778649556086306007997067886115862957608700717165120550317822939570618782931872109743953632725332635973822639543071568469525679721160419174756816822867094399752721472994912706625941596993507236792615964324001847348493328015111514466464875391508117580533106784136867971709582606875953295738371106496821242223283507484298810927604600232013930207366220727786987654472179596146255564685377895076015229440310774444212524278977078821716630135424938032263050800972165607682494163348188684010851686924430829316526912767164743443554852053450359931012573260011616958699676900615378744710090006331288609239223333916840560466311007182746387873449345619541676976421771311782003331923335936248496796370522408090865946591091848008349704835442028373419589159460819126444619034411583292947981490508117872075455339980098286159630737792437659361540496293211060625822836142629718939722785141969681390504683295506199752017101645817276587727794305653563529418668356444667453239315921357720477947826006523444673760398205202043999135317801952140732974386568976225936952724328896906249933514730590345442558254386800776492674700045042683361407149794638346618626358353413699782216807951971661043205600440192159898628278963262473065153002590518213579385035512387798931578289238225224334424498205464746285352003217879779179235949559680042175842164338960518424235491556306302470996217168272447127571804474855013775703764937421836410455657333295156275061803290301992629118469279592724152509907624593379895302951628824235224554252550365900869433008109111455835525784803444396979800063702794419771727961503766381567447527361671917784950933374514382197384614932044062189953382162119984524084086849333489124586242968125219719103199429950179998608177428687369392010459024534166302697862584569700576075135438046911252906905798305971812979852159972104947096616377363457404897499216603851951504430302762496780433822309225798762308145202805767928819825378202048044186314255434189342640446863551317982097805558017672906346000408910381746272325759159411994247750618835920563257263163528423199620887820315737811714565131893687629699970906167209972011788622719790821318976715959470349504980452278370696450187548280951425404369903254430923818988157449883409624965290642164892055980278309090613668603046642419092038397439492381421666567997503989102490378326648216238347576304245664409171215455083335094044413437762080235029271425576988074633646328445867433601494478429402465770400613042732605549634518441350288822089595521352388988377745546922028787278592080786409064608392410487833044515604039709126459094736381652724575483690549300936453732595604111249910334525597185191188852744597849113915573887595095239009339991129226123870320684922339625546299342106219569484711805124574904460523952786983570623299262198979088610181285952108544147628158719562055031905462712277247178087202154709736110335186376353748036404964695677800440975741920487619279106982552172008910806441350971277528596842776220904316028943130120655738945350973944191946754338605580098557906222437357283621494924095057060602078568099116026715665090706875885424134818325861871341055510077116982040544662242913451968198850711034013455298980326283026471963867886594242327556442716108407940047058607902562884684549515466028573241198418254527486822220384506666281010425495675461476584799435491965162872496593247347024135052053038600958685894062521796563014906627100666436608987750754176337948486898673025468265668971255309908094313135607814377654076555076883016742412483849117680230214767113839232656201474957451471837274371923842126160634505870816407825275519037066296010212920989083408881725989679898404368324607785642113460264237738441906164204199745175022356302864937427805180227364374300155916887373124253619965428114867193798296728622055532922936166180420530698174531063813604985092557765479011777138562400851146103636703810485031894060450104502267595597638440120555697810084402632543424159115083398084015879521340522354247500103922313026107571369260879713171278294953797193592467058877046865866433331687275765170758950238442744958768881305702692994897859292681563577727995969371922077764393542063310517656540644103991623996144976057636600427443562819431800975572955885053524257638145769492070960073317293526228593063829620082423405391987523159062556745960367088578103948853494629091663399179888039725548807849139377344019583804028240101007573260589738678937769223991304731816195924372945089790636783032993056257583789375708794781840717778544617156637925614620097959498124711003237315547629352446649251999306541430072157600209747626487267961126483340674560074833905253128084119008088348402703483508346674043048588588390233401522249518756852801271876527855562367320433473458057623239721502812399681608256873122438966278804222363600395607916615471608064416599889048000833408968956702996916640815229778054589427588930951258475203744641403259773790249129381570495856665247807409165278998956654961580376507189500464200440038531977436608118008041842839726646694468687670515927130323495103153620403795273924549978358591970393032451167015059054452989334129557047619446683367999023978998596265897139615039619127809675936208997323034212241286020295238163701078652451161080540630351093355170512219526157010695455018876688979354993950871266359989455807953562048613212434315891044294928503581260408885910816744155709428509084639872682863675216120447456858575973194832147019614873661250260787010304062570263839542495478963103295247915606739725987487679851173234110384120832814989414530438147369581948091378852242123015988076355120548761784937113645980314424859720912518812998510306507862652165845257072694461451048877894737770828652990657839424300414714183466290149908084442597149940396434080575335756758457331690752218183377619680293142874561371016618269238085082880769859485631895285386239114932310342916304079948482330537738863008785090056098552805741512248759174933262523569860706650438982148532763045778256270145918681808420732972451320487363531253404992763285683456781148938184641232308127502907335782091933596372244734898458060429300163908973667555251575430421227708990022710363443090224451801745714315225020654541311890041356279797964462850675850725856193762706679466915858604442305090064215535798539352087486862242861154425213781296986177141977848935965259458367254782707226928807861703834000070822464854148719058400203268168404209417154393571448731960999504693701557997358672886656357321987596704926185672128634831841443304205039477923501446242883824762654447900115361367493178130225218937265410896144168086402333817861303913812529614461351443918937879251212003490923984778167610357255267828827735414930198006765748331753728716748386712559368805631653331384261807940642315615088455413070021751655512096048086707381638272370039024936994479277352115863888350569310136430623873244959348737283028844421010419271425104819798698731732207201747445410084977805485053692996644059795242391161235164831547621367613230030745562878124653934473201191903640072372704286461509252156995443848166754316757530504736077323354550710340441600254429973282024322974444034064477727364605182433338115427011096859747642497031340156848568826016641751433584529796534768396808629533430296947262497514227675861548346268442187137513874723804463777139883483118730483572221320521852811095683132889357465669612235944120012334273144366592652115656196328694082478860028402935082908688491438712299781009553602203222528546964551850410207799249151212429144057467279211778742493479102866024605739374775024479413601362807020537300734758963325383600704909772445339045770616743213706764946317589075750098917823554731459153224339844248114827293523116398797211321231550294996994549790956131137097578001961504357111288876295325322422983381424550938173625370005269532048186638945922935073875935092235182634446708374686844613562594245518278740228342801903279555726636875048944282886854351887535212027534695038026959479038134502664857673202981060195053032552825378809583185551413905463319996338825916035279744751089388497287379755217838239624452695320608407356969616903703374858418944749794652301633507692018653274973878009051521056624847288768577272211361459011637548282964728577657525812828006700233889783228547236195913981646386426284720504270511206880234061905723182071727563025289546428385183980930544956772959373973588310114832613499115896967521974481582395521557268205109792156618360013515924525979218625721142996458925466445039813971761018478878999507125736855887206742776647442661557640901711903236079209695260001202033546418723024414427188450886084229493783529885950625534171708474536885928458643183634039432111045652705382929491674137965526657784232391484177880305530290444299352525512438070316703479453414597606038385549561903865120681413225491796090302293789343301664531790897522463538476967666325729761811173139634379055306074271905464935835055710134891595648731160335435278375055504427415532575531823781737727866517659119248377391715150588456909414560613085783876127110137048209191758805019485412492140130787848434012913982391662445433362935760787160103970599929217174221753027744638989443231768233742642570674190382560891024626929223527276202201977922284935975096850634291242903099940677480764599026918570939259014821076990845893715284425271592748540044872367713558795698343870952510536618569108319378641936609906529567685626486657098706450834428889287094356523956250492331580146179756564780566618806773795149428074960391935133274975316145435012924390174362148101276688494452731084184499886826589039193673397762699249174551744512000320526888949249528509969013388969187099912514157673439394820161874125203586764944037320093386342291280237046433922916485976837662917935904709399409195648084168600328867377860102160685489285672883566271650814064483705019462786762795559249258271929836341801065658412984058700155272866444037047051651905494039010866248234598995526775731643240388271579772832146275928428607496080081509317035001912023098614269801606745374546317260587205209255527806583177054196176713821256881787694839734789819792817215520508616144684454611332387163519095351671335348509579770874376272113063329824197853955908528193507598681538162271642522077819643004483068563852533781108367985946322940282116569144130103175371516278409443262830355133037148189074218554689532776519590814877759520250765198522744769639925692630267472808113746571983390135533957832778552738852166608507352023721799310138023918058649103948288418962009202094674720219733313502930873962725367569262054279668535912919786269333425207950371555197621980328513455185095074844044649455222795051409710726165124008956324288376938144260463421217180811591485634006737797561224963657842850890033793980994331278795153721250918955798413382767697735497976678616473813185657962555911454481151317570570014981859767131289281365711405984498001822908940209698920962928430256072483493533049745138762237406720671606129825346402247801257022524199700871794287318568488124635350483838337243154084134573626324363721188105438128997264493532631790771961648858978446721825122171212940791653388740232136685779313043645763553619213588637043946059740875389649741053788417814981341147810155421294734507392726339006633239044021440572077034560284694155214504142072015397510296137033329037671790076464661812433294641831105092191713391645310477744451339587939684187243139125794550510737990941076588103728079687508649829745604994272144021076518744142775968747823980436375310350212132985058236422077866516420444527230403091022952287838555427827436074332054950791417285102936370389539126959576359582437528482949378745698502204615731392846969337697004917120245836429659150475096582641674368970934879038319296196579867148613172083503995178895747859562184209104020341520606789730949696107546346419404883177024877947756663023755907879738994649663648388894474389410263379293982983690242220157890172504183697002375394653284647548490175789917115448151373355905322795700036238108056347996418425685140358156600379221467040504051671418313007049516848259179496140991224981628021793032157766921841926472583296779006355219637011190406105977092042020460075995231768345395513563811620268537520152538117599172052558704127952438371400701481606870364169782162661754850093684692775062871877048046773866040646003784290909856492140649874949943276975464208817872366289442054502211716707425443721857216317763902882910487495934663590706225824837072725635435995206680208314921758049306970332023624424078357149610554580960842612784342373303207700794768004332524980430620561025477845531240482917720183291385829004048865351318766043418013403338279236061293357388328244536748712225938608911897787286635678599266686082519586389546195373600358723570004015195077351156122954481890410987483154075024948166337528231714329214231538998001709964838288133409419410586352134549735711804288146580803879907608854305672524539747469198980788221368040826512798341916109542590158169151456740203294233404322129540686543686015569041497320880296892493699233384520340068956391176749203323798730136415624590799826399951166695354313005585374136489858833056582885820351446007722355807988550382448508906773232001903207279848503290095815826439681702840178178378056544655396790116857987931544853090077992702476479890053401138727763429408784421852103811258484195160192420029564495225866048791381130624126503998110674938135913387608068583197108932139548853070630269874048549866199685742229860214735004324783467643649026206437035514886786828243729547225942038859095242433200244273216742980684677541169594013821427330130295087213067778464270977689060833539843552878443663478473755109733051002984984061566906599154284969975359343361996712559398263069381756877609122370731178237762545090124233256082173784197228919035875171061043345037930371947769011522037348738380555335458608753346425517231393536991043180845940746214474141471617569801113459881099782717977735096035012491702793108704801359400952634629752611951525150060049159575098135935669137693421087651067344139492406182300448279805019050843287385863546091359312932231302804933963223429285800581236561020712733729325298252140229610800519242643690682052537256345989059780104157959924922438734624944183519587437635076223443009211412482998050143244031736388534022586697437732009509051691476044741433411251838371112337163181416073349810389208176489022183450470269364477703717774069673593400434958746903797059099515721011146628163527129126610616132676642827682929177731871496732738226147578042320407720813579848310805961462576991080298209448614713465429723323904846819053592284311556451118906254873893094728678779110948886399954331571955861283671961193516941202053976938120141052031660594476530114590260773654318675276146238689541705343908951684904687718034624693180778598319240022218157978302942771608340336488841162401084924865427868974896016093182757140857798946471094942549527912608778920432841511889249468383415791653108177151319863747943553908587680782981273176150339992801562470028208656995707164954980945036360354991154302052165950886631761642727367019683003298930761517026607208342907131777883540425088352243547748845640718269276472838173031547227619528742517155286515091947648134918324849645673507616793517775375112439829893062179863682565570456145277952007395824933591957905146106613948753517023364663711580651948292557797087530365111701659285911078234939189702762860221873295853932351264834513875015798030343217230780383184152032479597567604556536075869365521239013275115617131275616717921195551081628193407631036999887315104424136621266468702166692455613812673870347746005022126554847529995792666464738575295890075369459666965889621672256529925644662998325647025310341378450831321487219126057127187441540098035806432162881423139816400161665571481477587006693136727726884717453670336732148217272638977420473202884866917628104339671958486393679007553434674679405035391899167489516348109335610942383143159521608878810325049302644953311495689294249077130336718477642814768144611966536913663378743719456180587573207330485206823534510950441439320272920400059840300859825099623967382726473205561645911927290747075608457125093260427621708700401648113433362893234002642918396991371936862523668872486699542814868161427972569625939800149314275296820597839081501818618497773239398085218681812279805645592375249133110954757129853462227175351716132931903254185960769427218921764354328667509166509541246494891133826160939135820191806080663113897408429683724739066721615555689164396583189021983645441507964022817151585854959248926067870069832001947971007587481812557125662648554055411548669125675406775039885434625405310615221213626351151564009610433467932381649783002640986310230673006272765520845175557010785541552825301632630774512258118804464503406827917299820607106179866956084203132663926497214162183156130699660131052228728283877652146021389736991055367136693110055945993766505475728664701637347044496520830336155803910238735097353192220022220349818630795402415841898070025920031564444280304501921828094063878313567722209689747581523815313491399422400389666588175269404443576659818312621444522321036064723162952939444653396899675583229317638360799463632941927804463624063980247994369868222099567087979032856034059187188889981814579273984000490850999074169725391059364211189247479312440731180473086495943856450332216784939009583751074387096233210495504374748272865241512013111610945291046245910904204724705008535117973907758489449133951109913150551222231442914557084844147392413775536894039071252360235310250727919943503323145321112340026783847206936887508147854147274504372428980922073301518480744973037375523011513072829899714006200821054429738141362631981376143637477765740099310905775635896313133295813563411520429173519443087578051714807238450935511985381772642189244052603819012493923432519898323211414330034013699524220792171461329222228291911772401436046371503249390815839973188352738074115844441135576029706735032436794447829169883784870248704902248784031910427657111090163897660245857642918189727000315379258045382099430411829946748963670544384036929772450037842356291927169572900112844367784128656170260339274832602786060234640200075020347317428973349356147164503407956237195990871700881502959379889261326210662099095134022100396349620216278167991936503697432569424895039157483533827784852084064752391051087021111979722529241705682708901181639747098663407422230406011093487645261808473304268414394597873887496951975713184894604743826755103011534282670953147723103663923345887330861821799737000534087288713958743834480193618287897230829336955779082156872249042059452013498345813203390169530048246055779138892178433767274432509921640440262536972676350154313824618984853310610367833598822591007730777678092721549432671704446718845761665929402307908395747652383140843034524614385108325867540165539923555487101447993286356622503933538279424780990540405842525897545231329276830973372319034566518252631507757175443265078200700820277490153569133112571744458194069085172623266990257528337516939145444923870094919763027946046981562229954052263860413191967678543800473610113351646312752002997685420527202624833271204579897621912406769560584582985913193362957936083744514634788331763014556170207860801748663347917026732821602129383168366605021698149655586602318671137251414436466856889033967794747238792328334916502532166832917082028577841834009304312391567055532329492697402007092837821280704516233835755213329947548768690271630951277083677737479555356335788702576114659191430787655289959441127621891937728462388130091737117385634271771196820699912021707236860056929420431789269311363086425719195674165103972583891837785914703293845966017027848310589432643293219654425780864457483299556206909303305417674121863916036798978172068198173158942055642108651077408114908238336193176003010850793845615207633973455192661783702049320810225754028730144824992778063190986452144557384950373571613344184134070599448667940528731326720412520662916936351590895209767677129964027202852452971194712550713855951151924681715777892520816150904378112202032119246216615332412929850864313119942150049179618489529727847793692797908374140027206345149960736808123569486563909637020092517757831024818622728128621772139408850067703268422159988020670773817549316813410609887403642833404900032552205840716000358986315586751525697247586030998787033910849013865665707535230194152595113881783755463754905132351772874293773139306532499553849332668382090820300260885049486133497276883977789296210507290752228364947710986065301460671113062964495887559584750091990408093602677151051184551983342884516228272254858920282058648718324051642151136204795988818535298747292071856011392557980369574923982134340093978047938046969961180086672897138609827320594836892487962245409394705926558379831585569974810040946513277185234595978873691815338558134860620216301609451816101175389148258090369780235473537138665734798446855761240717199108545826917949071044031584048332789963868181816782190330833074920994490841566738775231022369913809403477754824139194543856421791965077274396094295576178803278277182692766906036506453940766308471832735509597114084434876722625033497937105441560747054658485624077970400694825230400162796642061879056691011652252535393976971088270212467824789513922860733858823790434063782649707816892700639544144980655721303265496792326631945938940483856975237942146454800271891573312922157709632977647807153203272118181470351579562672121247200828814247480246972508842477623213914301830812611768425640186009572997384085157684901546921860163994868842850857990651095906274307122125215210239599462755092730490004409128994653327883878991817365413417953169592260766795877447369989826151246506920038423963964061555017097429026590686287578061119152537095176674478871340378216590204278364980806937903546402673860248972226845448109577323312544347797595380560397737606871707535932567904934461075059326117759713968588623795993704833184604608860541104543728276996932866681352381301196506399011018708400298224631290399239794425112495053370418222886795806718223586299045487593739997845490418558224111860115519279966765941292428374008646084416666652953910836326041979178189682040391865092013755828021940958224753404088932361824264079070388925259969259773518132883824235917471359238203063483407200851868841833038476895694156981600791997286283224329604000319351576965781432549467495251263503898869015646708613021077083226652891512463738942334817248163411315464374822644338236867326499015758517622825244143519109204420792179778037044762894756391023213360252204880594653648858800874364674826204436147396908697911791369216111667344211185850239809711237274171106293111736101855948807496427073268048817364128798452277501862799800019610580386154867605000150980353067097757731457047693621956027196599961912235247240264797115262429202159791751007513598396889008357700044839996226496614917929428225886785132790932089029987221276461667776461453018393467629343866542793354812284853421039213576186177575943045138211499789275349981508515372701973104914393845647915507869788556606749399483524753172846525729790403176481492905459641764843083038927474132970129966398738254939501334346864120373738568128069797701228638685633439572724466797064107333740715557619272136338270030347244551096446110550396795652786839222535914231528260556556193809523039288244194001870246220549799046100182172848309367340942202243588437959176051029379625736940414652659276977887780611974856980819795549674835765667342028059577139835287027620732959097834723172814845589556779338801296999810979387905934495453479114094633170971968879179336469293880664095772895140579918986516673567937305991548222362095599905086876948534963174377902216681059523985278162343940976642885016463010640421691465443302515962478655638535451802974262252571314322527438017271627580186986481827969512856612530031757324347956958147062672716771963496073816670187903995439695854786748263660642895751195797585063351914732514422844282830664169597005990574840204557556524793323225008179965543792023203261508553106622823465011039394286572003617311336153099435937894613676544106589664247735073858923542113020390157565362158506231414412495724778541358185855864899285221341605927272053711446342404074895230740787209133285249833357604280523331874148946588437891459671870318460223784442435932379651236681309754662848670288484808885300954506449135254647805678384546923725525105348101698943226064963966544974597441921445217256905538752195461761828134080167256786194477477014091482775966222458277301789902617959904795049866137377408118345837181907700544296913121543970540591439575819294521608408737500232919147060880248162877258231700784071308777567834908680640524332505970637762394336809674510030964071217325913756846395931816570027458785650170836392859121295997068143494615183862486516211101890197383793700207302329968744586962423038437544592854750783418451894211743834483361388536155513046860194323291706104850253538248344704042469512372076002638867417011447664464015144897844980076721566431875901005692018373683549665537685605963149315588070344453149331389400477960924656964157235169717197339037194342321526031507795063954283248337094274067749488180727712206892211729876666405878273697992682989809610829131311926005078843693857344025711800138533328238353116019811661356615155067845507929824497934864344169001269342948632318982032795018885008999402264295608118915806437150216649125939796697379068299369947478111714509098383546462018416126775933449796425098760945835434630609590695669743805882309337897194499766991627598146623757835969498590825871325635989822734707685185764553406993621097407377586456099468499196448674529836785569401338879120917263861414916316367331438174184804313517536444345055493080099774812462759260808538646928115685133641576778805552749540332304845566989202008936599518430438629641117974109927644397254987754437112588538654073705468437906151647319493973439593838857867796803080480749513295430794474046194391247324288174754234024087279991837798102992256799227504457480173907356412634446640101843552788729118323027473206035878180242523663416126994021925438710569791747229272714138336975674295682349410527664005849420553223402855185968644498959303982679837689917470130540099760297552695751823004387950192895783319864655506233053025192065307248357419993301871997266386565594695152938548533759139727828334229572625043628194684693172222859916741119103193168310367521344009247232340850740813005530153204328490969515744018948573589011003715331888670036373979803621621825790653315596340415329067042525094226615006163681128937351230525713241580713190527812025179425359382226929205097186775643455707787788791069054732435663587977766339752549330677551809436260086654711400561791346272335271238911585156517773868691853790098718713199739190676569265870801053795319569791989263449306019231084349064135099506793491989015709172043178397703368765057085932321807311353077483026433378985230583052219684758345937378760719520359842830252159031492366558825873115176196207660806936200979192546027949357602666555154874861679092910680623491297909049982623150917847834544408596466837053436283048386245633964937604766984335682392983842568698651031029275654205096914462607273562119412314834299825891109347017795865868015908907994556746400900414835162456681837698270926370370258323449625509842810945083633645286853879564845881443075990524819664473747930959530128428196116348218640080038692696289647527299509138401697833116677205201749268950045501438779962419479120667640359149817637151044871838844747865041316017736770647501484181682427425926720032193221609083237470222636281765563370733815864599132374576003530693043730489812992771136355628806883926030032251083877182294575209412221495652901400998881677946882690878502963949149353453537830250151435017111400072453982999203560199030602797103784009101050801855761342460703748012002693359064359088112676955775532507645662979647251893870025198208019921226360833085381403981521352743588981369955377996595579170402876632241355135322531994078979017212897546584284201485905879824618046100873520299051076042105771477889766742654935058232710545720524781437982145184411086390456620095201445626267489033473382720454912024118912983012164532123105776549292630833802919425675431614349875955848705773985439536756427423634963420697187700967238827011639564674129724584090778056371286027400248519462740743614655742252109713914687862939874240605593456808425845154140942284391172639377804425551339264260689897845260952098334225598285665675582670839197439508761675267042046971986822885966781546160661599745634050875048339830986194476965316215652666023155127419260619137172848225208726141855494244955743505305562350910290517146287290335270532568993151797922491713880692876225870179811052780154944095710518374133697682434248717287338090136622261194222345395436816023660689865718311625713094258275118048279159890554243176279337430082922943451009981953666956600343849204805723073390414218696593045924201005981919108793268375040568798531795991042635353366639103329275832734803057417711307917945034103897875490507118859402067159558848047573867597573547870858930998014957391785920534128649300107625011026482037831284517568777208159023940029465937243171097058058815858790288442861938305710144899938034018715331486952184823309651820712757468566333308823543104805918315269932180673064433195003768694805714646372096695992955156951493898419382468648566997611010047603381656941162587790643493745744536049623026064847372566288835137529790438873513032243752211247580104979096095627666287553804573828035109960500655547220251242188085204494306841048597013409890677780539233948940188596377298554130188756731550581273624530660413582185357215145410472338910242171826002102293036335290364835964885468198535529837536632690596083058964671361532411123857734989702670663581479260443422209218470319474647691013171396964590776249957280282745095403346643087229708916434926560702917704465572445056002627888268666122165609132146665104508412515069416824589466881671250825753433313203886393312263721572017398388220908763605673799191995198557646744440093978413346027226637111298973218216502185066542756848713534992825732700968264387424561106165158352461937399037502987881015936492156227906739294398777868517525609695998758578766228822019145831124069089301975915588390616691277411421033288565657652664978831682356939198003628730472743832806020625500519697690329696389617172101347309772843116052567235276282377141130587005314906471687914652242598072689536259891197033045474299863207196957296094397224015264209971667241680583593884765676678656021816626093469383546622058910876507165005167230901539969518412260456696852368754061268689320223469101230773040301577423635891124597792416374017853113017486505591620133283126488678429023879039267393806625804573083211982243503836162038497651026343910979011148714063291452628458104304243039032100514392010444747355199372986466173923968958810535171685446215715546497680280562604604071700498890297948038843958659575929368900642548422409303754534428844520297489463986725061014076455905744676137171888010446523165439379214343173032416522992705034102075120003263086574199234688536705352597125464474338197570695068931365908270112334234222856208183759633788902552889152702635986973251580905784349847285961870120322432960247353778070745998950822679611457712330376214874049328266467665313911467906539797112671500409899211690525306546261077551757944545518497934292197967624374642702985142145657942490015832814991835358552162552260665579979041232876013068031165133964750928104114799755990999845718700619317614483549253314412300514827393822125610863117504361958576832902467014153088500377641481877985589793149352885592772183366737857054574005478888823322322483215767448957219893826073527740264728697691639349498442399794276906917557280948702947258799982922711215750494104040400311976487029492636206722545545849703369722132787736918280292475743857901891162616352822405131017037933233421232666613251528872312140289366219478218081281178199812356441662435711483733831766663991103590020777150564659898823932977777188019623470035836787927480110826375942321489310994239333108316278861342295541411748312504201661065414780033399174737531296042730308657020302939600747377866597441027029291843600159945363316867467157227154385377560792190719560297690115762469906660149945094180203523888562821193439337238191824687309341942499201340755719180062602116946912133210386797828828715929377299903413236342923851401818328707071115870168021949774312954747246691015419738034285938580884150225405051904798256950179308966162673623420455956347717145714199911978765678225225422418394321546311888193391347460019032858446161583938214426317579637870613837868209604681708994470898658617940482654913201930604604122287202669163903216509432894886220499077823655980420645753775928195866235524586512497982980945993509121923177505078256703587361380105179709366934756391714347796992706259227818512718387140789353853785347971237218394549938806972040291666446456533089391363795285108029234149618723871736763040952058171497792951951931499976566552187841786453886448610429814386373683226954699193152197770972831697913337180146962368757871551339108574048184611748442413685381668326001739464081508139672431488956079553423274813893866428914025851689644942630108119003742437842834122990254630182978948932592769765976759916899084109829604736698880916620141717558962567818522352873676769416283776294120262073759661819375704196869677539583998192458350954609606127103698157761564796123393810096488168141673931515961693912049411153324520919121989584036647868250518177969089167203786224836472042820047060506881916134788210109284000158860249669275727920993752834992182712044731849543284121823789434972673597541123697654651106450906768447756595901839842668923017504519185083037027391659021767727481377753314512080313481692008262929453555593285708488203428978806964141626791917271959211222347100143619107729145031390529151946949608672248906495160381568492913939814508706809361525865795741014308503681148187062160411060281396932215556384147773880410528309237171047182334626310074377858533590014770167755999016122828606760228242960953327991627346832952475153338894865027831663275637410101688149457337390358813653389861133197944453725607297362825406220010846707589181278875200887118740556021945978424802075331427166802984078490620496503045895305062215773465461753137303000457574785582647454177862953175198407651729822113343943207064742590076997057087442348162237104843792409032141263555475450309570140310364888586592814086373567759378744938761745327120434058521054863877396832397788636927569974498937510720093027188923209027526920264439822270252137283619430472775401312101917029291190077615145790164508049888927066786983577913785185402291862519186347705157303790302566105309021052989895507965330902114246154729957946094144627701441034454194731263759753939229623293968626424321657297862375220494146185972717521382257108636011248513629364040103264053955871563249432124072766786754241700322069385839786659495753514785575342922333930642487494987863052987371312748110118847600175405073417245148025125777806855244920746520050150167588736815901345603209459932261981306054867307963528372260819010813471748195233238018949809154084130406839196008806676081912430860626284716877163061834399770015061305746900649270550409453859343414768031075780603558271662608151282558623272447490833804368856461026712704467228114681968068007401380816065802632171880595083270767146587168967421041089327889501752640199412185814543818165055853272633453621270669666449588677713471526893342661981857760319437073201471665352553035766514966845453813823695419236457268543328011010268946221596300689494785273582542052575085422474447797294542739062887416729513598787602239895504838047966472412366559674842570250464166793938985468315898590884824584023695835838831532398391007938127637835956039286114453781842563624701523943936103829852784952056504105466112054722960669203820335929554839269356782569919671782309222484713956254408309716013983807097224056716046594392831412654502829902170057009910656980349950141011077242621945393375391090885709685140820287873363444323410988040509021227886955637589777163841601726885756539895440932889274268405298673983973417973670150158400440419225766540830238018250513125501035509299014153160858968462366798430787676229169780083420151976785373983953323107825404954385547388070058795141184496912880461208980476382809535009100373887308610960533121030594535943206961565357461011497075341406198859315816162598891277949944229776722111226011723041811666965733782757678744043798996301334828121810862775497983938399030058014335078998465627186970714468113733132521259516841698161534884499504725070712249366598958641281827430144295419364804432085173903864501818220293214960822210909388500850582758928693467476229615617228888793008134683074709586160535837447584776102945051817327377769587089915856063660193923606098320242744405817931245066014330339591271531490194875593229511212786608161850724376331477817118273048347973253899177819189938304167811566788575193842306123180062913762045364335484678029646949366350687420222227724354084179663346085910913456270903564335601760886779965195906545471246333238400009178029032320701232784670872249336003733294323210190413244761394659203538309942487208650893808325648242664273430857533103167059931124903486429791543159604871811044799081007500724549490928292722183439746232604642070140689151387502139256232279402908511841485724914683254625718352576089335515321811957702221958676764315112877755467639695377776914810443491356158391537606327694601627007433579880360809260666324725804036400489080368622791316991387857790972370782125485519799364663226932815411047377868150763778830260841477899551087496666218324460438721298760455128931409260791886242118114577267660394426965483972916887849633753808816691868061308058976993856240095050044608931145336831038769157541476390992086649214276752463739680429946745657268854117004097639666370720618747630048749155459881121600001956080552730936057905741713619202537217712181405488909114422410954084334465316730556286750455503487990004689979483582081738171044012278793784727338027526563671687948656445575817566854522117581855499520953540565702094710372582485177098673743618047632061250638457485651635613489630225135608976843380390862684072480414670597592621643946477423269750352852978890966009682876401038502573321191412999763450571276210045343499750788638872153817220435123518799684950619529506713778800594764803893105252429362143460687277180673702133306448826444489112407040696480131746190693756809657838987815065990483705591967878985295612395490547265900657117147888961411947998530252223961823602560377209815439636477090137454545048607384838725425359692926351521369098903182087939500225800612230989505530537602301107125219120268818684579444949885160417267845968678345056442959732367050306281779244039576506129767980000016313100740633583381209479334567623649180055183597790974495674735611790125394933052092540319219006006340137196282593928655104979536142278811037890068457171669119016620457632286404067657911202403652353605557697721910844697096292210229961221347004075692507176445358555797139300924807105557728182092504730396636362222521475934661884041573355850987620026572977727635498767254373271539921372720321048751427483204573236672391781400540446304784891909589388648010631846917995374797052968129640713138198072006568363753497156984577709562994686304092534702872267120735432951603608291787508007236753075284380102740187004173392393547420881632692376909168322201353644886882636708667776386177709580253710698733058411866414632379756732614426876162255180781685661234374444583532462167302115169569328500873953747364765587801168991895047291688832674332285317130583383260523536507017867668460523439038637949488221762727688629018471504140074226310443697162482469295598577243067331198731600138170387529698146294750513240016421325012215723744363473312359352293087798767456397741671956526070235824139710886277075125227065868728599955699523932939089897004076247681125481103368433807748749749756340153461234592324579201849341010380725384393496893299916664480295154285342139556692957097380012161727504871479683134615744473758479523025368245237152763739818507990894920050720382830377458275202592880504282164475491290930609659633395567540962551207832423646422470996849975847435791602749699787605902498939712812696121739750572835852463015908553955584751212314315216849621119915982428577586729949447628553167999275281401915882030937238671729620295232682780727700829197701838260845651472098636569203849063897789806355727542262292065649309952125636612317670730212646349105731276899303428626557272617126340327323501597925870907258290054764694083272882120436559857985515267224781935923603285612809671633059624512689258515876896436648999402174746883243405346355614515928432326102864674534373645517041280166048493054850696788481757145376855347395918227261434250992501393073312590806151846573301191127611275783099654190296340564645786899826857550949670038463226388935891586215570317107378206976058624279514074943642838108796001197484451211164083128196426489137368075401500373107365301520898475058959738352410920338872482696073517865082579561043395360277391651495420674411681673669203537098007359210869609164382871412151495466390306467427220115161853464639864118595692627472916153219637945742614055787761889507509598968153033326532260418349475021569584974689898597160110381577957320028782877302488271820875403056315374858512609120044295976871084927223890403673149753206086324155502645992650954214335099141519478440869887621472230173744893218489770688229841852639764434738879212134018221039251696214569385535086522391684269090610674993248569797907357778769816550137614807002000019999473789249558240363658187406256733286071775356162427147168165773349011086585258679747082512795546540261447712715423742561541948249064053450052138663377458974813222117648096997920276207683121534821407658309362267388315643351928459105807367533242951925652720707781726728652316372244038472296811734335189587607869348292283621654657842908811096821880536687337963760488670070445597796330668826947487385173332145603511415091102922437722093367813317906936546853186601746071667767448843520659407725455408083534145116123342925993165373051166738751703312092595802107065888979559087655412069654764700292318153885316308021857758764886299247095063006770803405181485910767320064001927566285773250088757728232122076566835334148229359317338592976294317748911856239688717591489492668797205310605523370376970106232215757398097171477783373054924703474841351482263310493102543969356235391220101749148722657348736228524331649572387484120166424843365109924460179363419586765389406293687943719898552230445441348963042480136904338418609440720190914028110589059229749693721769801736321639821756064873783744070561786320044245869454674053013880211270431081109402129839384925622361255959455670950366380157696090028338670731780081812183331273574274640545882442607604922620502538447084689751689717124104621505959158739420556549458512741923049149003042708031347646787852452100908138991062824896366118872144636560998718614795508087767592999271911957031550793499408258746188721784203599060264728081923219734810917857975960161869023250966360932575478258882983238915467178553801811179644102206727838590941870723501995927592069087346165487936897745359777155236254599282125838414135093348303956685149139835342994526735010272465932869974617372258552339792716021530350182111665074133399090281739311214550309632284239063291866431715024145264424975801789623375479969793562696897043130701074394796817576985257296097454351454809656475736938412245297502940443179998620715430428135755309691958303524354247930794383068369346406167978746274733207755427654298526604159618759489359129591680908582991841783919197137669603763086084282617152806503485742140073617802664087465971890712860190255290313257025510598327789271738728758795794418238642942568393211556939093114082644526624941404494659995834341970351457706229221247473227244053564151622068387723459729225323375484587101489338059049257438147920508051971370152716576776918302757527815876003670896500542980386197605836376561213005678260686598368223243269389695771960097753314798671424163764378025917849700309340699993724009286415043537358191172088637384342413437577717836326017421102980226999623087195024100863906046603352324475583300534020261435135613552283568425068043484018499530556550762836323906867052739868087939158497089854710716335998845241284904140403605297370745338434171023933215597213302186639462946306110166183248052615470744570599966831096747356053992374950978915110324634775684898052305940395253489424852293228999977054247442845902132239920588908693408225874557476474347614753462473401438308105163494268255556180929146667297937164825685944941447237262525976151226241361653570075176048822771441169218884548199638243777088567561761268172505384187201932642073835087332301611307129675451693640716327037495374262028231474261499146553697765308491247862020403605803271149820797864828559689826393524960896246599887420607952025324289573979396671624350093296817712406664026226103752640227958127570607804320481843383206865851109281775724483707430971226524645748207099859401698496995562462559904647990629519647235747209546695581990318765869347871964675210657180987546907994323192883036232843108181590203503210377266272273598042453805605307225214528158851452703648983068375193406056974261052327439849733838220217578178869362510808079772691720003911078472127650570434923380862361054503032002605937707926350266633987566725646311368268340145743440686183877990761241655847089332448497035801180434745209375010205555426240209098316089866785086926656548625861128216333782901764836785760428057455803457409238708981147031586193159552270151901373912788907408787182298467098141754813050324744763921372726777169319472479754022199549310613430076977948685956755517860395733123588956841891998094696423281748597353887998894625122838898331963997704228290047825984341443393569181411453587231948145697755283324146880730840358675918970993759162480386530360667223747394536653520179489380083042152801641884450880887616185122375819534331292654204996620596645289215752326128678973674179646648347941855955896050931880553590048658908945643187586596927235059330996902622534876496093144531746078163657809216222548498824872515111359926634439807433351034224057091646252638298039185087377173821595611162082670703998510887252433207372670661853087734981259942238448508341438761529466104099510860051728823124659389875960877080996032724686114123492127776970035479418089372524784641700548739443031861985167956730593311675353669341523172987142985179234732627252819954544873307541536139201677255396198792127863147849658057243958639832934534336164890835132385009622162083885734676519336075792349899268282487630963883298524733138843329452554538841982411935338232874947811385919463290901914901274113277249827949012918260476674164395600175829477222741421981748681486977169875853092059078079543763937302666213251674404759045547968405096627446138139910820439557480966997631608308122358061304180136579259867093783059618651393116926231544818312797406802020475263870522158799976552461746051047956826844155629805987651010351122996422259151062251346398637625432633635686876190230980828174915477851207011348086145664929466680419139094779940961679587508741186357142368042489439236055613339559539758780516075905046997221341733480716110731281406811047639883804515789071259029993425420957167274188053451180180018946157157644123884631437620834794290385393358095158169937883597895220485130780768028443480564539033115485407167653048903929754228761707739640151669358318995902713764996006565086011347038668539333031562472514154431088814119142855867477644068870060655666863719581361439712842184621793904482841769721993526552682981769005721486131108753534650640168054041665938784045141219801473221078243699746670970371781414102537250541901499246350719515227598166975812780091081571981524294218739890842929444062029760502166193986050469915909144753476895153543905335885836067778199668948034555680764250762154348691181833832929087127697938605876552597948351287238736273007972834651186370569040525145396732581404575974259490063046503038923904475671995326834265223249179230600522111710640288122113693499565308835553296217474035216225849793992981012877479303445645449788418914969973587819426031115441594611029177763558704621261183347127104199930797635415026055671336287131848145681949365626343217104114919061869958980816020720100732173258858037012867205268589114963613435157126634358171585310396701473509998276769551711846773646296194712167713142506596727663907161384422489914764257491592886950383095434910552130280112217183708900123002005642639892236471934519587082201541415962764215151393686211001753010931105544786936832515950220212692985975066368680575028302777291255088205596954688958483908746345903357816815571616790446356742501981810605612931809215151663414688581178177309694563523067404690515239448823416986765411231431792942414440622220796714795577069113285923385016602722688608457953432031800440085501627757111327461211462131261319626998929330063237184342832857848685362531659275937765627859090258112574546676671144810624160917623042828548854059849624581780703391879596251923193592480209289691371288982431726073831876946842345670644494462139090914794343305591865829713302300885812074523166340609438099038095323425977886313567557335581630401110428651287230058782256017803833523588127093366464446641308182294973998283847292688366661641480335145265660358733234617777914909424721654484645722488032472853794265554133516168511018023879790548153051977462892530562340978698474742676441177377609952428955558958883003199350037611649513793209671049003021236550045885217781238216719151847865038082721439583433823713052084945835601433920115195951876881212804602053889603431883662212639312928560102078513332076678448995757157345767892450350143974462461946380327651396344254322690387584049479458789220357990657325655922092762068094716983779770557595099946615579734756056072223141673213785856686130810216092111148440058688978106010321600149040942406324600948288542511365102280915878035343685238365105819476432961948595823945606808122679200411461084205729408003626179626864996805977763389414733061792156216871901095615034704876549614326087605247095325687384567249897322855722769802769380848188850712767260119111086087473036769881092822362463879999246004198131801016640479912520502514899039857949214340878171678252620058281830612073349725523188314515498594811215477082096333860470347896840340048057936276373031818205433359033994921114741625179487104672384956338869401238949161743835603450207333033132249224120450701265992813140673870778123832468922292846843673111296337536492969682496134268368222527492309983237719854210964506995709066131251287477196148081332538604023030263583074587135773625123261839138581305748031013074696501871321407261865013309995098322138070526736063712762521012191294642755862931403617544907002586881512323077767318384509243068467980820116053117801477232142049501823072799071535466514028434615606471727147284005787575824501293326232443111746326387363130222313564080431814350122001073148635780556266350798980840711187568705857471676098619427481009527248011768046086788637677478170712322773000310639141214106988613733098256099747929354066436324685577848237990621276350632175262639524071210237917720610268550708862489244521380329496930724451682600470421450250895453345938356919531316444776864229139876429697427499068433581034593171944849774059587592936138233543468073535692412541659206785102773895744977750195419246298236245172621335903375402482359177026811067711842469536512438338918877959993557549212877983060178200687879660062405238363651832995042962634632048712588859156739072530067783607817808183691873712066044569369597860196032150096693538622059472525660014580241173904649466669803615521965895114774189182039792056651148754454494890672521282515819176116984009227927437805423864208178293622594442701472148603486957223417815097731987217751118878539125242243207950698804735329843008245081641075181397131849212669943100193178421408896882350633135734365921132554802496977106222769655040798845525166400626268141530877262911655965634375226968802806982015194709412115387309556000171706597697457999051977675526313730441935345627231350497301913581959606529451582150080195237433369464569379545330567971335342052552944307850742056781295191380350875320231445033033940788364525629849115243020021975186689687088902666323188680669425556285193633466241283097694190604094989263859230743365104415308059739042709435852096807961771057422561563093923480694696947068046669172707093686586869861208289392732260638460789907333437189257744813850930086809453351016475145003864010790399417080023499114264646882898052554003214593902973840713331182372122774778619413169114365731669620164829011072259254184892200877627016192431786415530494187496235285154175067322612771588273191353179700547128105616213343331898666415476124854008344012716462025396788502623561189609871640100833884916716684776228822499635175120601920853093500298436222459284397053175279432341306596421503553284139056258736710922369178810919933336559779012022933449290148474780486870143215567414501606075138461639623877689040941746084324069291731651866087824483587077419551788871751139947198390135540168205883617022132322092324483526059856626961477478093979233136603330106840340430447242804022282275720507548299210414878172401949566442500630969107074395974468963796326109880126333763733027863179969233188614879261134439067321773846978660938090723020477995452675550146393708225872849283679388303792211477945810659049539442043596570054174866966165603801595498466452525666373692679042295354365968134761533167767859785681156687580739593212697973312774801906468070684296714958616683519028292068393222053126978916316068838184522701444481614487170024369404828715009825782779180033588712469535978168507655040624573818813975656713462112045690794076818220298621120639732128638261647216410612237976784868282317781352173561604308165382854631746525725809014075412128876662073625152538547370301771629769591681721558380968902172073106877802449599601750946215054842129076540691323375831510914250293430617651743062993161412489872093290616088581590862284608065447316651173597818294199125261539929815141072315523805568988161924733254247972010493264537342102227790372173428559200405737682557927710953024483227589377338337976470688431050504135966232636630581461328097364536282563116956519448788970627359532166007919048776352438069957881078724094083624371420241640064563115565723367880865246008217000226234812617987351253053326713062755302423649960143100986845929766292119257260245302478414370025861489738035960737092496005931373299161321422110805004155727536077514744875859737892149506391239103190443216151411119262343892023609126424098200892981962429919468282836748340166332374601324182140637207619851340576296030157065592435405400110731928778310661141299835859952835431816672455249314870153555859672465010939942493374206300886418757054764940137758890655469514669697939997877341386335295097350776607693747630796787821103660925376798081960176615486263437357280726983023847705623145044072702774842398787148689113856540247165200924100659283024959705094048337144609192458942328330976381542258517140296975918867118838727591943771985917423858170031277967280203604394610399587868191332179152586490468796679951902492696196783299809583279066054715073470384495447873156974088027553815126919567209676620641987892678181971556606960621981393116420795760751795280599230945521611870039938690223880041034338155284471767361403716301878705860059696806199582849171881211204732898648667831287709175705324999851284072039600067707298259672990397071748668574814148176566313615777882348869260848036625775192777500969689441151565214143409900380789991693214562025718528628150404894832242640327013480495858457076653313239221439503025185710414846694553414433349392259564691539825034495025312912930769257532891483120875503044287883689968165764440524740209901201981231586759766278259745763170250532312375671816443788763947566555868116456179682144874971680032100055309004166661544868375814340572434823794572019462453084223572644185517105693547357332289621157476449227707681823292194855191154006479495309422670564992819361211352651902570433446021923147022507370084006473433819538871869262507541653569501201197883039840554147253113876290039947773994310582598729225296683176504118618502892194454828824755310523424685777005509777342309253849194929075754896368907085548694156571816716640197890928790078567705652713557142267347193164943767199087629682779842393790873008878876058596093763440979768202473487632868917250449979829198182676607190985536914223211554699220880828948503224363893167385045355871961109567614477570036049550482411868344077213966104440495210067848343447166161162417728495859798483552126246284694393571427851698060057295333493548571749402073289192106593080375770381437080156731976476966734794173917823692739500813106621504940461624269180997821948100914070055553708954295397481064210445351778729944283560781405725504085813614028382655048189046831129731639225244846764690156218492608437140968136114403046113379000302659771640175168788595537914945158830362069915888683823494081852265135786843664742028786013069264834118803012339104694805174592396890500877089289955941182250815701323917697151847425226364437855229151489925629012467582920594130532212411631194399468350217414088885510886714009524511604671277627163794629980968212511484393041772246582948071728973454068643986482850008681565439633181851081768618597300133387436827647275127160308799008036639852977493589337951878309121436087324244839406767086495943906933194233485957178193884494158971578553553906334949951167168926058367949219878766276670883464791350889178053951038419055066112202414662332272148310159482801561863500229353340545585055810169028405898420532710009543396608938361665572876918378915549629339518751089834847041144101007894647118556971159581196305973722523995129754942122384930673361864812340204247813308738547544083695629543178373306005764983664537808007860448305252576226338944757848698898806910903391859439141911696920182638148841365873418975900220758151182861074448768818365310450501561887756873815171660679889431850446564364880928543358697342186836306202214550520849342805771013244675075639407124334587746926396999682093981570252623218265266065220462065574177636011805353383571513250035694704942308040174639024488233626656566984507724231224884115909722552384557982933118145400309121163318520104762155973348244987524152623790533524708321046698750841944544178980698016824132219980651416029302385213480969812746489879003097964370930823013425481957943573873124540983965748113328890729203192405643132651002873875724737899342044911043836326427035083987633525170042756726247846562893401474175548992856093878765018915766749887130773126508350069977461679189979489787190502951675083178431144523155998877581752591395967322282467070646783148146364989107174410278137076182339913947489052965608032712053781150184774036583040248540846870624081442741552644940817231010587357198818267692098403583295032198128868108321323213072590652596136410006947682345863388290059677861834538974192042290313986295089191260225352497396007836042935144644311184528822194544887872271830705836622378564736177207485895760735171014395015119956092304325312563455418143027243699610951599307890065100260624375924069135462623236991055387756136057412668885127087021371842798389355300184799290986846106348353638714403703847076409943539837164569751554195251072888612451106581715096086192688549388302864449401493583903222836728517289008509995403325237696370350383599972486133574249009053932605472251435068043046673537705708207154152659005420094235901491812830665578504454773723837990012927599780576764650395535571890837775244584233872208985628623416896138877725271313769344691274272333573375497525666296027436544233229916785158632892601739827881399834590090907982485632086981538781269728489190460500363210677498676586568326242953678713005486427340969544242206628859078399483392268023215510850744441157703626739629078308823201017713928869783471196638905762882136970394428533492513989792497407666878949413608934408433039958186289792423358058626007899598458285501626072772049427651502300298832085817916039809467803413232692262237998088345357601644782954377346338748970618971016690003369315161525215384421031409758318341849205426356957933523378150187240056064964254883663476235626041245735556141729416560185984435160302626537584176682156692567436865602607985929679410621847456341890085176369695152822932869603398772080145217944951165407038856236113470886937009692491877208424753959824882640098289044016713176724094960316002705092060649428385578976276001310297146719380952390340408297038838993502981375070671712169469568636585254787636840047429977529334747100955191082042699538462567885160085550457662382102090463907729826663803982679696173827614266546531326084144722610327808749674233415614154553169548480149733480735108794456897283075500979110773159170678883720231759035253008003955963717149969599581681736510171857092087933295090896245862415212284400201742173851724422713222510033427008949836530352760585687376653912404705303813836513400242886935378923572067366507664589209631176159384710367408871597770018205508144729885080189624007825684280227306667394521112380940810650430374638253299016621439119058369583501805048324976629758816466315976780306932860847566202763316211921243935634272042750224509758513772992044026650425933904792779096289992990853347915020996011493507473082449395002234395943698469828456223466947560983217588192939455819180117158618023355491236336889730902567926074639666227637594224250227297100265584722861319408692758710723123852745328840294705397326623106401094504837728379710130271827720663238524341668223825176106715082451670503720219827674241191547728304717407822870715476162035653695053762330203588672637539563605558068475118924512576483484224269571619937773483641979000755196942215495068016094430000262678897890526275665001596901309207568873466586621552452446579828774288399699348889009615724773673373497602707964409950380241318394043987628274003497453391858711733141026086177989098753762284410485553331128844502807611478105461896955909492818246591600066317881696980428417291509555465703626658767264058043757114019765723277696262572882838823317877702781209132952251480869842274060694118650345517201495051970314366580493724508458915135937565765856171629547795944781850879574927887150335164957274548772508195134473784669555660913526390348845633825843018082754500688665668523045969067367645216881114909000178854916138108699843015131217962857806441236267275822799238591617870484629948750926448153761127865845584072422168301786267791765254939470045445251675614458434030252851297149409741285146392171192690379338369343957101942988154155118496488069042759875975617664956253439879061616233750111519160556473370290600597209291738054932665709083627334924812097718153331029365825416896450485900861685537118370456383057983349159929028370116788190801966334185474957473389887862427333172071267200404763655560056987628770078851041828595790036492130306849928566421966973196453310398037441326341169406037081713426492961472722907528559638612404923915901131365876617794598835660493444152901523927820682991976374044924690397083217623114627802578551607232314019509460928017359852891000441639051658097062948440980777102480851862426431988566429514983835000462855318701544006567418796610312170741706693577153149291038769873798727616279596807259640650480047325362570412796735372145193497183319117480864216429674316404586303265203836213549904640667721202244022248058727028500754427642219175066885796148579714696040386657672732889627627526284074988302658254863463843259111626890228865621812195712047364668607526522122715621506512309136458113637070847898517268440431129470284692522376527572013174074058886470698860286935264756895282296834330428284708737906620608536710043780988425280663608694591871741541867072112942039287875054706194988768076942005593915811474377856474083584726887199652833093319572238541324555079330844465220218930196051020268899738697440538303245973479055588546949081904019075702544454427148622703904646883036367031810977092555806191177213708450481991811154143213073955631843783700205530306650861957426059940562894942475184249481521130015910070454330467207143676420529215196424976125863002971831953810027725558642772774324493935725262574370583930655502557102635449594250026996284235036920986979952741037392212669344590505644999215037941973438985645957152456275734023133539451942491215033351450200656582224136664112376343743417076095219894876905460250499610350359703562467181295354027315021650067212257889999563158091103139517936280287286493523275743836459343066948692751148993377903182425495141326242404314168179133603164132150073704510371182595848944403196120419499427478701615318504954485249607248267089027220105685898462428814831428287349872898006747998345591008588659318451265525608874646025599108822275937928464123554119318562829220869527840033003823839880639311322024561461807428012648754726085847889263840719047168792774262649268852784295044460837677838819456004636376914753040937262424027731302124064868359836962551328236630572061596459630024803053346034852415066374077312003683785446855344716022455843482234350012949617421739077579961552987282635280632665588296763347068012059077176655427911230855727969266396770051416806179160343623474310060819606860853616043070617710386611906738150795157630682300406063810909436771992441764567652569777726143012397418535315525309853056166340045112704400090119561810941568130933155814542907925326362717381360807868165221043578759925372906999829186070957175836129863938262025169210549210024759745453784569751916240599631145302007183639645750563497821024701498434428752336747057838749692363417104000068216362695457559650814560993747384724141339932719442280904310421964723198982786923723828210993476717344117366777814617049630647188782412412478780400021019777251809753397850572520023806924207686798053386907625937295889377040613976496671332178757951914175819808285742280942079944267289552353102041679391497354164292063805317743514072893791645596439775233219188214387837847530515499146015320882655525097266793696257477287586498334220403900015282178942825766847459050263046784262869009547321515018328420308849991383406778654378776850792909837332184303420502244872264789889234079170373377977353257806998274783210275050859934622302655231227792904593186500288396675875228875673611676034560275684433371639533400995954076942598460063861386742651410664531770192901319835684000500910144591043681193285051667779613698407339032525911128438802995888836982743788348285129824844825528041257361758027745292409884118757452787182717779827867233932624563627585195508093558407538411355891790495261807804731382212726244296291454433872447471329178344936369032956942817780684825108114410472542984177833806174723734708208941582295935859501840873493449148636747019925753023508417764055905871030275333613262730632062208177805098848504660418020727597472692601555756056878807429518425241550085271224984608153012224874838767983915834635033977478972744057149299196440021594170808337366700826791916729951684725634253066919160843413869607715703149692315164089362077841805198147301147339884993327843200933435941475639541552797306578937297001584521730904570008712583723436101441634727720481990806721571426479301953497190691623492213676996012485567228650512726313416861881722256872845390404421596128702468198495920289172641554763879842679866330765046900467990334563570575418150650666867069507430352071663563703898191671250590776114826584363500678500622686689727992688600780837767070226412543355937147362171992990804686752447091151736451288512154877920778582043613766274728823559467039331141180732774729352897222228690869030523985088734917774239583356850875552262229871092439017160634498524189142666412672842405415033823277928250975611690819082462394810594545778344507491571196900741552036787185682672448233130103938915656468277516833566615685036841486666293329646807387731888130109998807773949959463047073075949838972695940954229440597438383037363742105023233744482717655024161108081417116121019687163341280071201458379502596486736975297831433184578363915867191346829970505271273289061703437210841402941922321892935945307235277869768940261310606495926515084431476504787237566895690807812127234375416556733078428269757088393847273942595742196753902270518818648052605010538599927081233195827429010526289595679981850807630697223927075774744123486077358692037607420114302158530025293549309448239238876156077144688044414067635409649349849109365529743607633154902521336292636319161058236129052989865048457307180792338470700486378996221649779467325258385312233250657210550815745464824703846189163492824503784222031471640623558875108941113826277278627873675010529129248669068511585313841836800735594190215402195219021058312838311896598610868241868815706986389555145919355118936486536200549212889105903127979168752415312532246731095272367683265477937202460126994684740822209972120511379678586715125580559606420457110622475492317322703597880848818486253541231050456903564185215466146456479806933261606070963584531882142687905091149755490790409569562773895220740642599685956056642436078073647807463735214611002299760238773375147525157350813174158446766388186195060238272622192910352018665441848442379126954203910240332410752545821616673869748316559806417384265967780033373744430151385632244752741506549171957239726225301026900557635700863852391399598523016876177432712973465506591987350854732738408552300635432591853445414312799800189319147906323874007227236558813949834546677112837477967181760801325221986484668853006943626444385939831517918954016149649764668105247597024897603196061541969994338208172742155157691285140878690047582148182651504286310592544881016238635411007918675972538943590636214921682831963918689463143978371289425795368488511509990603843237709266469574689538357461976749629571530628090862866042890894975961993226814020200137171901278064419142127630669220508916796865500097227715060717295959168841052109185038498839962083726727089187009902087162916401475553954265551171117845661533532215565820019935346207756797355401038074496288232774086734467300012167562873957190825071633533683205581098829575214079309087530141426081492028307374621096370793120765319200073489890737662787002300307693651489683035339279734698069610565259900229388342717325802870456657738544784358283490318378084269373339682973062638087634103475297231838117299990404471072304488356579871281190014763556505122929581701186840792770459468337218558472683723515311010668690974875524939830581744969768067805214442920275192957014168847722622586298136791675080724130390486520461361323978701313410149058882412948215426343835836207959249285376822800680418712588418962263809060221407138581517557826831475281737922808022878979446159231303264525124526179049648835641819340453028022410935939261125938943678307070699571995461203855370654706939869600452973330849577357267248073263678829282632076336183549875772716814204922857353281245726118894351217525013968078430055960776727523989041541188952465780787087986043991323110253947400600125892268376017108911097241292739882268880387584312592749774529393094189937137059911600956761096701566021425129589068107369171717867342569645968386144995230455700006135243816548780452506502808493258528658463537277944270696371514885487016270729568082168928563189449388459437003910444066312269301112106382511454721910353946323325494935788968472626453228984486002195412706149761850364768455164071496258344731115145665861109845810971028030675762940072862903229933916370492675064022897446410609659669857198534328220081084836278534896489085938373617012214491292361817308404243061435230449611831967179277924595126329662283027301292091341724568565072343146185136768448267695567917628688246996315836045549052333009675968493422548208595714613244543957876755639844746984373081596852220483880071860662193446027511835912318712926355681402016950364276457611371938717192628307926997319263897452860991511220574539624538683851660746975513403583665184508687786463050552768679628058523129585113485783992161590022192752951936240390033340523313927945627918263677799638134265772576538660670969488532787102985036161666268594417319074125684781414922193015118564416412172588224946427425135343906523722970311710697017647906785508360687704521616812768956517097185725861286796272222876524798019551404392542307922319008579543076930605332933411289883276385413410837495904990298180402105894859462972170370610229685499127589687291200464003008095416356876743625254784340772865821502453511764985957727813925091252510442779960526899092513338944983081579264332540573701050519692523758883445230829866199528710584040593653841016433902477480620239542324915442014073476673608516503472941158806209689819193514882394739330768899362958201142249694967051591798696755706569346039343876071838543669463474305338814344435316715328664286047162683323128995497988325382979770634822051522970797960270326232882666837550463958231152362479158341295029142582291240243116294162808683554211091142352427476557220530130578703471599419084327214330189000503444986550342525910032829419958128025557627454838434897018286291481775843988585023633309263305168914064083295383226293359923100107419138274403115308639304928761957574789331734136463351649290897276634178321227359290783658649737659424633905814407487477018221783028449487775983271550706743424599489751924789528454622391026431973653620796422852790230851590234453816387550759867370036892960500301936894162731425137744405490519909206630426082685410989677113341279131271848056019880286957088260742715216920319843559665999913381578785472590259496928665143200972392745777162499557129977968318849771903541194652751146899208806747805749042909926865808390835774659923793179628595730263647351979968925474525940657551868267640367583610616419822052397295912431347198930492253983248049296065371614498504778967639778071770604517239798259941745713309842311847073999321042936988459505248515207313671846091802497532605185941830709614419295787504095338376563282038080616917602765860331317309603783168310789001885461912319397130821770098011849099121527984028492192309971112248567323869655272475718560833499095070829662037424696277761195840919658085559270770120767582066938457567489552390618016408088609810235421533197012446464999233282731005384691179300839452089920707707064335931081815429845919774041099326460768897849944917717668643545785000229458645328564270245171582566691316804241319170688409542042469650456121174569392553098688812251458118983318947275093062833281435815761532554065457628915900251193068143176180616616584354462529658149793755386400950389646374005214336666953186566599944160597040929574020092272725137692979222116488491267079758822494698939849719942473380532601938907544686620957819099796354596746580145183120686263369549757638767343456654809085969372157972052131534672374189221647955319905149630931757195052652620723858534637243335018452409457336639704761023664683784126595606064508057570511135200216010732165629797726130987914245848790546052075814744754179828599246667776974908232246740293396166994902637654734074516670819359041598400476757769528507345982974658224076100287500619257443005923761311819392926702117160728876225265979155326070192123538400074587465991771653500712734929925537477482839052459753335053384294926763775475586281230946606248625323599276607416297155506119380769150327875466764799260772648579991835328163150423677618437259419972351505807095765147406110630501682921883161006373501787757868351323116377682114115094360213386117362681738097169798855905455100497681989021716538267599698145748359351922835223509518752485957390098198937331511432543584575538917174618999246642965442122735823599388304372045118567234901148502474374192683320057872175598257949688633033922476124195405962213047160703902344334790913709817316516191071112818346911505490817306806197336446875863343766488979166990516529852206658290141795883423715445615345675144156306108105559860299330517232158614432846106283374159294890750728028205703206551397307373987643542413171873972394379767228615409102505157643432697880858472915001015522003025817897147274990742036282101455259783449833489164025806838726823552999879165881604258403183949796595127068035511090952679116046399175519672639088625740225714086328038754455304409091796388720450245173812689598035648573456512452298946693399194624518684118274412301073250473154715729425493013336853492255882151348563485338606049659651193716716457379178673199918617175834772450930350131797860045198193829056266469134112302572071842550327839287351079570283568412186251841781220524833204741055014077751155229917344661805066466049218450562707519055871520633518725435490844040504407121948848903974407385884534410035139978813655612844075481938651289438537830188961471010091208256692028839510586571855531390351601416638251990507183516666350656483810991643226234101178240606683075382535620907474399701285939866199049321068358460625476055652208990265307078783483981816396422082157777814861449233971240109620982397242732360909662755552126689897450657036809371017534354098793198762105655254723437496831032830907075741559440319903447587653428803315377822068887691991210681340032421473264778342231931453777634950898877869035083637624961285349098471149052078372861667817848547627514421073388882934417409092302139097666651319798079816673190114188827496433925740253482764245273654518752804066130918244919172553378277842716479196690963831729478928958167248090954745891555212738993319961437844611004791115972000984613051480923174022426030530105719312072184583293064074944950633178969859718965061085805844504688756117933931455940375379688602537130659956013417476072072951689654525934747688413957319995645303064790898778617236436947555818941204566945892925613625414183032394272488123058675005312701198066551257183858184210292177170558975100475312694891571133883625954606194509731569318185811912549040691816440514354976081153301458022969029053718408073557387616909974263356522331848875767583457743975211688623773787600846035022716896659406799942037380526957567575006058205492689566799515952626144551780770562952737557413692276233064865710915334759187483062578571397926635592528268763016574876884170740952958312310969403069859216123866436408811039456219559164067036401016034151866189073125036666035161832117210887867095864334508635259276625609146257710062816033555976356274737205755384140543897104226333536796191734037632632363394513475304542693020634293944154772629885089113832890181819096622943073653564452490362441323906748771283725963029101112365823801147278907790013152879906048350022572911977352251357147999626928324184447428345849075032280528254848723359330206307087844174312067524669990556982118241161384516144698782004327756317429983386812582211651349853058641090255846765366294690062038951234580524971629738892124167579047811604073264875252747051735482713521411946462954951156615100264133451693582134322413568079306928639443125643420837647823515936811170118949512891477818869184792202640462009856157755588038448513573257188035384722679993837309575657450885973251369476869790849694101680096938680640562512839687726455451983000747092517112766292782191589125990315894228888613414838120907814283653215682045061110817130413910275587244091235750071631032791524688076670769561115464418532605773250427873913314282817751761269764976414401898776903121119370125506437912625758471176665586314314662471535716280553545852969007981238147087380447284500214035524126284302556649716432575008845454705240185923949086280951305665683763771352415740454568188949418757518462498845123977811132172562519126683523060253270472402749300865726980651294514195214618476574262862766220740983893731645698430390300192856929479871075436529828446199434959237320974542873254659537449800003791845302265624660784129091837898581975924706123337724073793487446192170097909473968587061775140246355995132732685709212665953829224243801278609315430534402822316335921914506472375750515528694722599041598145071164949089832690560150776649257374318809124141359896255725386890325363701153643553013190926103090530494909294515057526282525433628401174068452627559611650677898625237718355277697229456678099339863996196514258292579605999515937976729332678220502887117327147572501218879185534502652148089766530982942168896021963233647677212206038248010792413758087002438626263463525438233002067378769867844464620166952348979721639256981738508440580451668669681663473286758931105150920160499949906723412022865038770571354432054711312631020186187749942385453859169274438091763736556493059066998098477703916609336221087175876905793574677696757997792200326748983148218459713703581068437873736222038572982122214434105811054446036091526081508522321309155459977777984902571406063164899810599796964728582131532983887884036089932124463987727639572715909213307558733207750077649939960291614742743690572375096431756624524356481302916173815536173018041498711879289685495724907394822252123484570156866077278851933081286161292416529297911502446735082291717126316602633135497807852839054183462461086394903060732308175502413749488093879016557366628499594908875400264186190641679426661350345229928821252870577476939309487665134104949157080554220411288088814565898325315079702896017334052474251927707898822449050354541152861019107217532560983345042561774104755993599200830926814802216095855750347990137306541853380800500073291030815252148079511912722603309811678838564079840470232779332104938157084685369740286755213406208543669410330085588950813747285730167987002604619130476923026426166779576074969318014799888219650679058082789166791104845796353475661942882237261705617691667471726511081357582101049654377734116619613899008039891342916277025632252946690098877939600639881400826897778261477919619395587356049000538679998995142430754509429012714929493512029468726990263053357930626628453877690046306451635704209345979447085678123372053259450216463152620057249481955362258915300311895719093891211134026566648192684525360215462181341766812355077179203885680257548453759944692740944054888421334271956874300618390936984494185203119666379516251983067486890983292304857732739418816273754299262013596805546419273426158572475048132011514116873309363350488211518416430753864001060400777718864206992183945686555670167298383184359177499612947668953764124628812678563618722856935264846229523019661590371870323006563842392600699460071937562248858882680903691459185179644001090357347503808717644959321202871679251763517559276697076610352732079586112344314111519292573802418646176500438217615204047925593668878364304349313777981803892084842395759576450813474005605292819708814639992441289655908130504541113486505652864615361594117862871440761986826717391705249754581123729985702725191297267815353557228388966875904696084446167640769309869775970229866947173497945024250745783877399424014418338256921080547993209384817286550115554668221603210958874178266788330224943966029179167859782790935035218628015329697188338850098243470776216450017365129121558661828783499860350988290636667530893465285747198062098540885952904268056431395268465533254775303892852619127249490484676799196522256399240184161086356993920292483048080429808651449913157939925965300027878889223595580791929383085886632743106522617610987310564127259376857207817740005026943012347827522775711227688058449130258251608069829231477052519571066458941067569582054919650421424930638037546973631024032369801462365528731142599431474671000482754431090141046857219026869396589381011590496742365774929308731776357500236211959367813127663439725833435756623355400544619157421932788768309520181248659355449761763884433352871634414038750880209543995073245724417597553414769647268672873883419974011625810946945728865249619426307682831580289915337765246091447917906527252779948016346880393936122773213462977989650790553734548041263072304616645264611131132910374767034066819026979900325175812590909981579995002028268927984466926898401395867883199045227457840523846311521533182294576314601393768274590181211128097645272238265381456741694102115841378717550254869866517051296929356876014671980592176409342264849620481598454435394507859525033836475299223151330692466034489266820999569225943751615115030445390935678113429162572759643735655225598556363167442070678487809834794276437310050185137894371276843162232398431020092754726424253265934307391831387902897197438348576017672206099437907236352929604624766948638798861437999492955139711716416012026798945970070814374396871301895764953570898774270621310101348297772599443573755470971543941432857735781705484910524530222715259014184976618544859175435502694173872719409199685839428711952342847688262407497670595582116891551736744096391320386182565065100227785332185848586891882495690085553560936902138243654103178805466421398584379981882560592717286983594196133213528802438414558685775278236409047390365686443769526153448556055279835654681683758168244839187617001757692915035898621157561201744742889372727585955730462365887885254361900156077714408390205516526765087491582642364593083583313109560728149482216214488248515184184518401934321749986756801796767932227133993333279328380800146770759332917071853490301449465288342739857454315683181284723376795977342576656900998716202364621934787119430056117267810128478638224850109443494316108498712167364200299051682141604233015710379047892925676285385329574807901496729656774190596831449678105796639656161407510612199232631383448222697696474009741788353248907178852487000107971929174926287231692207488594966844876334704652622745114001976836495301119873900243747326040389544453387981442818370693408779978433739377034198503198415562173603153981071552461064409129318294773798826293468937958525140102766096566363600893562557233343264260194751947638851382348782461422353024869422100426480156692234745298007131087301592730252547000577753889117147449644598034692662223282662922617774720408469748672022550854432549365549798465958535783362789120404472661224892486032720872664747527117441769305869595123639834030866563189811977465311699376460571081144659980731923460179440844745058255855105465620227211525524185373544675489820598139771191847378595528935739883810007545855038975801771441992800686898361979756327176676890839249400589043587075781627076815791264198344652460743432586992697523303117983876814883820675768035634413249991213738075235989760056506652775042646101839785336331466195772740047349033236986955147832869716434412070427655716358621388485976008966548618502555923494593351692087925343704057895749649835970912871339704360433763417919206970063910888422567538458246221096595196842214042872968371957111776180667871838703586534852378419637301561452159510680845821435729171305783279031410393746171916756595277178876077994805960765026819883328410944662290227559489716281234559266802016891224670224588025654147910686469149158128239089058653973155705185550815824921919249431630003550888029015020635246743896664687896187979219675731111550204259032893126269144472772907625582773968279903862921075277396459406125296357904768604399869078929080509992296757120573064056636228581334335304443216536079982246741951875813661877299645218226535174040859754260894240993149468121771073963475642881732853046437335896837598076791062242490082857076121200037884788036161824530287981032894070585266544209976000077464558115749696486709891325339281083628691603920329818352285100092133063939051570733778389914311705869171861298016916706169511382627333161441470784873439793327019274252647505028853432750050633256276975008723198646147613222058917383220190245542746608785574442587680543414248255068811467869402212750986639782115297504293529382268315205610962050877337374740255254333848054956026085548172842672619098589658020628818655930221328957347761722488840061287177138966232531360706318935292501520917871942534231001718160235436010851147529443932921399640955931579312260527251307879476310490109208492082779307013689681419306153012768447337322692531853906125231963746271167017996065801270379065255204535962312679533686085275380152023059369765392674716194466013611656299773346181041070083396820105144554722310663640835083937605668430206843097539083606758941973583134123081890127308905015346957173580020906013107811152517557933740212586720619554867161446583842520378928818683226767071161037465009592449338520438508555946620776940490976360691426349174069625705403605826926538170916841812504678141837940631386800870081161415199091456199000193495536148668484037079619845119482035913365010348676740646558802179679977659982912508001246519798366225009669650237404843723376233032120745842047849344059328724300382223026744690869371597721216164723649298578406869850418986265758174729862857300381520116214928480488748371715084418441549434802067069334045110420898868854041738344648541528420922080542793903559499281072825737607498673116082129767286250740820410556627937029746265486429630187077604157723701327595137670342976244652902621544810465332033828154772824315994066963983451365239422293084641029818055853917402653173458317917059412117733442067448823409629829118931523255663260320164934961368763575208029093888892537572469769310157868839980168604953851023621401004603185487356324344699473121478736182060229854558074731062245265494608712211189123626419833651137559745497512074660187045305667718700849983870982342445229466322609240385301291004964245843853241547805769801845008619626718433310281204390875940343896427335590185574395281773907428271256680730621667184735710490117349587884011528655834045216197842190726794736261370269173622163083423735593741339834966841101873367602268082827578518779461726665187051712753493433854215036686542274172689764559081732993994077557330939692023418106776471721936608570334100642272854651885462829261742298182138873875877345344105326979469657989139310616724584134310554133058692082083129102803657204278637761741180740704216083370200435923128934685502632828904048728570239707170405710527537994060272760525908758109781656652081182542859076734509889265263625423675217376727335399085885579925621442375588645788960840947101811421149125303936682941714206861137820481242893042360995576758336317739586704193175342878677761980864207623588715168501022417862788896095488969331925632955166371500116280832221886351141421117916002760907874170199977379527608768840580542952189289032352920436283774835467393806191742748584887121131243828134433099930720243297043856798982407057222012174513921786112621580076685319096749172166637705741521943203587968100966275797120700018280345998779608011589673655329469052357305471751024540812665011817991087462702488738415370153080031468920097594264136949784648927060228771446279380839184557037455152760146388602496673872992388272315300212754051026510433331804592836772005806925717775770446835332634506146389215425112872784318016294457420696902996840768924609232662180361513541129398215391515151113676969444081474754242561411409633836869008809021879645303903002954153511329496904139965399661806469031578798278555612329927007130977955729274657578641058125093413530553118122872812488325821437072956158718535182118762343509732915742779952685779107097938652656683728623866134815729384957565621567806102478556424056818037213998189214952701441780707981202205088449780356081807731274898691808638429451617574883802123903652856851568156067350364892373469934736989661180130872454405986046327185153076989930004609180019776064335272104054052945485810209417785345519631993284087414277270004006219743666081567800664990726469487634437274846341491067500568776247192531630097313355792562506470653614295950504443604056933395482656648074025499216405105447819962425216033980920640564160209366947796035401744424426373619514912381580914603266211962383802060709792279627615929198593894356300274195034516550476116629826802846404049212012223972637530930866757811572862739583601143501457059299606567132290414965790403540022775471148217155703469261967574710644281238895609734073364809302802210888701929993339697527884748423347143558195258492292292028661187552475216779188768273285614764126736692523920345240027596708516221294995121572128714654111315076268134368006824893716644193204919494208710394237082423579098821805573556677346477948153447492499952774896625300343611192303467321767466508838765973050253148913961530376815299706768309934559288692491494464613587367492405701040046350787028244117883943450697821315304962974409174356107983725091664439534020048935055912442850229448873591548931207417530591787487869111795793926762458744214088671968756580330591396684203539510992730027967021462626287500928783755162812812981834830284622766402186520363687297435285659473806363018638389018590234749597949811734068109124014200929921208995743666845840453036678630100502048741240556910050619895880579358039009844614564881040004669829286386298663608547486975456923151065149077650684283572780972774956254761516122706803193828552200261372541740377340404060485174089124625321720780377114775153934947968282887041811482236891809081278365386167793795243018669321015123355914061990872094943144975503673134007052359301027976840365343744545531104473145739984055697345811534323183267063396414647830578504077722139645528765354868284178968954362068772024063153576780178161213454357594019240624203897336338535929384860110603950713765433686330585909895257659314988054858155187349565607253341579978244650881862093170675888125586511533860079921902233750774968725700945458677025343533982990979925989026516894684286886985573311575316254792364134302079834394755278232616498810197333452784869679716987553111044391680003193288205229660068052242430436613583841734428286884412644557835225947003939772909015511916015914917738550824039079163046093014130647771793039228801853481830757573281513354349409364192689346628063594093124089573984755875872803481264646708195282313479598275811064862584526708822278053408664637431307251445501174946094772251998516445084411208810786610521095934049364656154201240148321936033260661456482819784499296316610121406473205600013369586481643599070557795579872082367374126743256683348127363546937691750695560213638639724694762819256332707751296416371995707859846157885358929237424887365910204271543446295938962850636805064270569684703492210837260760226135707188134768791859534866871369362126168538693226185546891801260250676113775669318393425590543715398809790889367534517131869056682192968811744563996947372677784664909420290681062467540510496446283477800058733633775128269995947552182540870662707870007778609698231586895070242504082250888402057780516646497530183746303329378989985666149729574309469543650132686684641473544280664776673458495538863365949662134063694549253811865576537470786499333354928891098502037033371560827229254615115965577820937455252432166734944995484421372241576551245835109140321400842634772682923047677407929712726900385438866322916568834205770131193296834762675731334428723785416523713190562105183898448077608434567175138839814766677657812039019724337951892878448431973497973319075454704518112217467121436607938953081093282272866472148329729381909616032432557174498847430996338393957597891778163550524494684615929983462908768291884324208555311317939188161754981286107725770872549255908048504547797676383395321120675717920120414101803149496862534229487280203076843480442764787386790688008309024518328404216800653068529215747513969128916470043660752370583502419310699034879676985919797629746798613647262297965313125199907309043176561885560807228322653338646589536512506593823052322671544942570531930972304535854677458502746930029799889398150489988044130247133901470405323052278817413737978867832682227546613543750549747917196427207984055654393156454555628969249191627337780629474718204010829594322206930719543247251127051355391967369584436449602990184054309348758738772296786147510084718957116569946284908378716001530175904145563992423392582913463104363661388223055998083593009373801420129179223128886837042159585911950521336255166960440724411998318794346304254124468156573334064942383642235636833993442402712035313649811403033533906774849596818826835884203981913490008038595021098720401119446035809751686325422547491954095226241123207613694740112521222941408358190513370627704948320554289463639317222168542744645364165290971818148490847660058169546912385288660983864754566279479814593953886380102283629254361547725143953816471601466929833588918694104919982154343907556029948495753128806052926127919625645122077926898483759311337418309931776894602305648405718639287463441343457017076798889406816312303296953152873860896162315140047909760786540456111974592878018397542869692596275390491432507152462891659323223752603445713715627513587864568915124319294498917399175723714854777017698570781245201541027473831725595243628578125892475715447302637231918977427962265471953318529678619926096566910450732928528931254491771894862708324671481149103614889063984012882058426383429255362596941361336545210775409057256053188405808195812309526385328508746854027707998273893352881991686032230625226515895371185703103760191797507592225411711610487194606938108510752324520012999493197178736591339458414677471900346716154546162692492973287689168822242303228852584880013646539501110662936125251563858075657906666021432219258430452872784500538238768487622589395611143252656047461294371132579885025376094698762291697131855825962094027282654077276149569967708936630488756882447348114186643244692882383402530945309257715447880904445768508111660920263951977753876531538202742966750360721800210816002230927831648508247497285173269973889798077712916557033052792855329304543285443307713507516603167098033510425376220766591849136665593611820711656743106934300887503411284108222262253195094718016117084359305272593791647593715994622869041414459384472223597020483284781648764907569333695431578040213440604186719899140593639793417920381905192090249301143699169178522604048554043130241295843532411816976392953536548041799469147007296874898308674765162835190138314017679672544733751698867397345465197554872204862801128831647420199906753880617207022969783083332729133632984778435376352212846427346980556314927579022384053788217481560693367904686568529621558733534127158757106621489322096272935175591833097991921945731429999546239742275273261648386895133293725674094944122621010260573980320059118611382596189216332859578375800077371166006726358248156509525490493561221293274864849403702796449471434649437747965985804292397668182348355893679046289642834565428121988530500260657018423630863265144146917594701751502469267304518620786959876761067637415900496223566974250889201475830022436856294427547189468131150195775295522981932767750347622224781772036202664812084168390672264147963797838899818217620172784184549439569721903599734711298125881733483694141060598334824777392066155164740119207872081595959661477964680284788608435638040423460901420754246250928224439173205010170103319399886394650820854136525694016158882569667965724480701471975416163257902916991160286453704068846279204921574562796876280581067660000791889996173763468821224617996162788675436405015529041994400946000277189126987381540257272444445468294434360896084660023140504948495169110629181112058773020258472245111291425391290034069778792248759550026861079001436025951429212960209480444760993591911283764332661209663839163698191838191217126921859567754081410193374493909881567854004777801711388151626530928907060601396461795326595972839419631065650315790343540088810519214155357687851400692964603928254509179325263491624905532093207529318808763174371360072071622858738190394968339529631278596829889237994671117384221631710579161148889510459752728087691211766207820344558545126158244717086263575958738192148482728978828020698621041909086946796857576140956272951949716340905782387592561748583036012265067319084483631519451704156050346878637283748045122071233640633353169075336475665486073143181902206222520537150692394752726374584664997204154002830417193516672412972296068047117624894424235130609885900324608267716180887132746825672721320258096437123977323758217084543418034934602859164528449484429566482252796831378469023416036651449246861995343416328231409156119627576214309443790362406061872070110643169959052459236807630173658166163598266548245740887112638645330496873847149507580975147142854215719049127739560715617541936555840152435505887622697894420364077606067890373726041514465819859706446751708222540864272081943804604604010094299355317639237194980541986679156336751071555017585316749519689234558489796033187189187230436671692113076200616369538974489439938208498331123729556901184709782098398724483703504216842242256242203960995120469328044968641920093043723431465642202796943805185037160651698765711722663531983256483852325339606586776825250976832542215186746739838574891423816139679300993569632643395708014646637941457495814142913894648509347964059060389370092615610573264097735577198552202811690466592686122898439520048703051192494058486667765924241315629753809349939041769519528178557009191673018942980696092987636954307585095491242413343041262127633972654073607382783008352109063392132435891020952003467561167181941619464169291630381473966808934920205339919989901970777281334822179770129900364060704669181504233626815549922110884982896337180539543873964351664347012206249275724718140414691737806733831726830097705349507448253457516652957698621398237152640894871240661513500505248726502322598025310582521378912455957374532990281013110177493840273207745206325527020671725120844257309153689497807785065830976511804145722501706138641304805587570933633454379521941744685681524994051898389367011875822880039025743301213187216179095701430254612910973507053644024651065655438070397469075700901547184192493724828314485316644274149381694780721764836160764834995729531148831248589834238994355833376251683027203442894043139357754297106632614183116874939407822089745227040457661355495278888613687118540911155686035134825555709545981310164955532684413289774131865668804328415617305785702236124386193881248441877828205127972338619165000915328923486644085794305750948798952864834571250205788544014557247220373737700728251590050241501808863079710605940662081230618599100592255536965331367964578835580941704335767101591881973280574160418573627564202617462438306215262372904204990019729191288688170216226112756036146481734066726433803470944602723451633449656218358952977722071631802583035416946624647641026443802060190830355261058128625042870848627946244504040534515675414682802495462505887882463679554328000337111391588175763668708895988686442315826462858056589154049493092060977639108142198303476611805378297207032585445660112031060829955952468685488132811411572392715713400916898264007682364632495395349234806173169796271579831148565686988786695238560588427812208332419129105270631101264736353650858723068704524097394486449022120303827516753262167760748101056793475647080730037774718082001080808528758571130448416344838841826913766335629046697995305612858955733106499371612736465611146475905481683018416430601488587945942404229203370185362840442609702496994852485928980937246665332385479657380842773166469941635667830074452304093317370346837099197716173471780018328687376029287874380736880072005237326737864519571958590753809831005969067271807131948662610908822791246589767342105991839726654497867555928420743045624404096741036592909338008816974921809286982630503912808894890634354699698675115486702217689397854718884690583884388773665244203679822707245842752669840297797173675093139587774840285342850281868464123166296186327638061207710920340926623171317621607606793011366464106354242018585873103562373713034384979574204871800034349104663550449522879229432995867552142226570770957722768300502075140224043489867529033922918281539213892128816043277965429492015049053339697423489442605248204781587584076239923968036284643339315335884244142844379035318374416687237043462290277413944161289986916965944756552979028031840336677775793278864254811035193519462992827363140567086995910004346970343183683364328341152084126785558708179349535844604555534997342754908429425987625579757021365519025208875152506089962951539373164530351627715551020484166923719212463697496883387979698505293654266463314034066631387162940606801415292895386585352448437466887712663708094832807031545670371084203920037433689503408093664697022944495467700147850088355478468381116099551752973087470124936159730039541261390809757085737555024361732803066177318967953377823519854144123616200707658089854500356337336986865083832170662763129319503016117732765687566831735611866862324788803045510736704219767687073823331122797634496532977982371898736101831540534007050931944975798281791128234476211093684719051068164185967307060058546437051276825801741530678580957631624902708134702199555843740221754789900546434216697102728448212482234177252569551547694074847236033889759178076864409505650419495581924495147977252024174307188013905513534840465789593569592968716453386795533864808202554880349025660893945819429944845945561504257026191992591345947447477328693345026952055425399040996162505035062077690271176095383539504812394652784789390048042960802612969233761619494043015942284537419873850799511332589489201738409378634450238295139037086704480768428008925307623936466677845701615649342506576700246954269666935032947957965259517073939603436510331249891598292811754982089907819547764665614783404847529563173040125508921803381089144699609554394746047453059567345550619217338085096404533452063198451643696590657131843098581604297351411616035443072120442944491636504941228509257399821180564481897054016110429399515136707261686840572767559384303741420337380987050450984430596849977499271742753558127481796392721864543859812433535258596790431776003001297740727460382956337369968513228386804706036803417847750815205216038313770138754060428832542299058420430872947478035765268115976299305829537047847687158621030955592100771553486923150963562204966625332834886498673030493657252331662923210771322785443139331455323916179384416297769840253542472004166706029018590474687784483341271494491456893920156042009338662622113281066065962811387299246124812091127814237549448338232701457201347790816778550132161778322933071749463631097146352055210461011007807422430811026742179324993943408840360868976441516979464680067057848412481946667500633869786524755028078461622655325650047989646005267301868020488603293314278403939856830239265827515411094967155859342723228955649191694073494910466466412693216280886342197225772110153380815580123859411281080837685406151817259307362274486623863890857817745076581659512120438860412436938417264124636698307294709687799449252199596514670097974930299675613999550283605438844248140878665564629140481401399484417555951751342383678553395843193787104374008922377882180959768022703826177044794267816394961003552006372071210399476762612594811295371153694084914393569542209414701049618935375689946561595693073656521209069514581897149588790578250646844289191989341902928174912790373598278120647722605064784491480262751326821097853011479741901679341456520533463121478665109904665495618168069255264612013976427698890282360249241809512987838292369154517343204348198163957126753793548921964686433618774587467563805296161491354168872971854963419370519888226825021076553864529254522609068088652243595388317903596638191511875206169885832795172096250483500383608846751643308722249567092410384620950798574863212398089491722188749892640668622985996588298056869089775822088788974709322123210925187739841153555896566066289282246290568831509886889806247924419820365876683740132096817011451998764911524041563949392882743903622060180374060856260871156100149930701649767480778275082678895744105161976156050472268434228215168431098002701157743474329368596661979599826770110428774965761658550987893053093545394943061026255145038759392931648747361915603617769596878268961809748579534149670890010023678073228364033387238602462057506890915959670820339855210019504667610823129484598076328120559364612467291976123530705151432623461585322921112686864235184427605055957572191210327654035096550448094311900402446786508326931282799856646066949585450432827931968190543262701531586329112479837651380150620564938781391783020077488851929984272486927405268304027599290928073504966875357550536723822824168695698196222841398448836134169695594096619865615911122489002804780228477174565689351115767883026587106031595286135247864127836787350824796953258960510146318549351510370051620105786961230620471777680533662067102960787563440774058188446158773929789885220523599453886168007957680154158707085017935286030309738927456376316942200405525214224717840471451426156349490889862762945176436775875618231460725864048088026157330142043303902872434965003852408021836620842319201244368053587151865614618953477979787254265277044794405842054556630649739147449235274472808951717143073299001377391501463556950909732694573493741416450056012952213694661686509000901941400109127888216704442723138110003447418787257381577519554793725616336600624205316719140614339865368704286668302678282524324509118213507362337068789528059280776510437263079170108633903169454576746527519697888188165611211889087617227037005153450389196475558702015691181253494772061221273937385233141131686138746271479241024426274360892510726330080444230292018148873737308835137463256886371746844474930039092846144316613974026345706742605739326970656134022867242691065057089818618262526080645143169150155832909194355621765972548676557846797900383913482469778144804817504299228732054463315678569576570422117704964044993855765999296913239552356459248145159487559461765316518158252493355082530317508113205399980604689600228885846440836818576637063245507909221160645102038425198779226991495093839574012752093883579400914383813044460301006020167440180961573499320578383055751488701385291616734652550803688676067430302944409992099928390708781252963829288763011536128422073970470962434379107877796001162899339016882866675756180966586750368705459283633660499189603746660168606299432548566765578800161779883069574309695210487893783476629997429925804884082541244651321821407481736312444856617089854203865779437931080254706632946304387399579753922316782643358306768237183461215292967929012879275556156262207278967463675164011682088484474228417267244291150676101364475705268027106846299670795846928871870711417081310269074698881739885368111621606903163860698191162108563392231737127498527062697216154735732703531005615088035345817721352518987763563700969099753393185019479548219353475408011227343379574168123397765065873929094968424402583503676319227123765440510061345045454020397415763811965066555737397284546131755116816166574730819240633256574910713009851392820580287874599215164275143869701408519934185296406871830069511346408621295203035432128050580796199145291682979470469290289760675094890128651543729073088340050936687690136874290625235065019554074751820160770503538260601389774910993091371695706382713480961530968211804416457406833466263031580701107295888984897423583121068510939487402365485744112129309972540876020773613927309930402170167826773865630473288013920964611557630818322606387592812624893250538228509011445914940251718721912053801548673903990874651798894983507108893192714219547647820157584937204213804187661693063407943529362568426585256530316405540490114211758732561815579978231544134218764478342074254999868850632316480713258022377329885714565054045448344830768995326952488844554771153763245867878661361771694001940127870835348630018639258899033535692847109327173526106554597343785803904074187445376308403059076639362971974624401783356850172494375936086162280192972040832638548451172632555302319468953953790299894644812529330149539202266066886999349983295324168097399892142831831745396096558723514832157564037577796980660204208557147180966369104196929062698145588050248081289611261932154923993212602181506151279656380334387227364546890662531879221873421092178792788066791314808480787499013747874913879820526767525449458561807833022938737313632031540854415984280204091034224871237885241971832541783205054416325921829901789390891167879014396366657008187352033039534215488304698084136197834809597145044754121747492093693388026340231902276243920524130420683228000301604567645909634560497911500432538180160350286314575530672677891687464268500374967661354186439759403146555283234678766986675322146278972890775254405310901890989457360114127537160747932142559313495933347859844682344022121499048249199820141014349718611030799433539107866403721951886827385985561696624330447833302591921742986814287565918725485150743354303926996780232447060716510597592641362265817404842862433700688848354977774862032507876397405573190806601843665105030569849562633935486790670988597630424733963318450880194891631239691488428276319888377544133947379778968025838136440856507768343155706516554586861771107336128822155481574890552902880218110291770769800608147041552843793672088181666008115897952597661403603620020946103137851471855601990073264150031302504972737085425263771272083294774040825421578562232909173189619994690139529030906467238537251360170832652582343162542334417597031371371639908229407271081951686850647262903941522615765277082137622660493252918461360023838115974400564394509789883813567239671422540066380032919174813711483986175925218662675890557493189890219489838783232624046144012265509676974285546693596246402268421858295619637613912341017253511017565709779678415766526189595979528861649713378037555392864524067994079217924880196012708497123383568584924492072833090052386844038157097369396721275855028592941673348982688884553476512223896623364355462141665317068959970251399900757471110017044941289829798673356771716710055558804676479207349310269386594523554188275794981301416872162167686769953965533311760493711834368324892288571098130068275311256231376361499593774094101140400034242836574750750724083040984449410422204343943386413873678375492317880038513052743680902766280207127421830979817710254267096392821603867232188273224410025281735924793195712898274868253718570946411385031390234873232329306256374053804436259641475289117813244468862870388638051620947555425071475213745389913726833063768501947606986439178766318112496735275455928241762170060854927007359418812296885092647480162999432450256372906153042718204112393442381247134427742484775719347391748782397747892956765572979726533342749672073109061141330955283643521751495294289051735293053891935693473789819437291593775256657027449568868392332220859004724759245045766247757653739964071725675647571338305721542533311703373082157895685773017710618593377576790193031852164667865184968028415328552011958443853471006519340778872111309437994768403062287284494692860799164259585440663262412991888783150792516996935503948437604618848045119916396627931565691034788382003978326570329341472021813885749667449186483513432144710973093516527835283290718139192721654640097377978019558291297990131638590210720503558443218472143892185776617687197523715882489867422261792450321281056696325600904155104249391723536023904106828842348698056188360652676032645042024977892379762585680396864641072002061787406259591626353243419272819473190040618526721527505326889342471442993478869621060845076140066348722387765746767624153331861049355479750822517919759841292005690208497666558820708939460229168874086058364482006617912379253493096529484969113679401098114662317030527469152490537174542515295521692135296597015758429813072516621281699820998225678010677162995431376001119130240624078575164152950072244745270333433187299022933980746084376002171018146488620466448506533912663776167863492011207283238617835983229831769067500802929232277257108180237648757326434051615975228089762813205027472236109997504926585978760301672525320080062907155788966515915190446190986376579108239856403221831053725078098650351598198266328812318618611468866701223935607988682546539083726773686913437311284124129094140212489262762185362165521472520358337230944569807933259993660956226596632335284437934233838066128877126605680760000770366090470753018767314129862436219348866895352124134883988748799607543738864253645025837879528863067800464019815249661856229279426430642061516538863212630642551700377075896036300054605669472310349735914227013917258173551916325538176907497973066633782221238804946508685517807705535063682322906820217989656953867923075198333572975588818575246864159707060051134488620136194623423788013988726926449177447949359383848784520728792605140291314743076782831384737657584980211021271183693639343220225762079879918765794775798879947558712862874635110232554649810156671718401411527766561946346986507513069917594171451808171000688323813399116895965662984362393292822473083646135770632939778206566385148071535770432718953792039670388084763112224965650477545314431630460871305666653439539087199956214965003408323902866988859701259127264646938308160771172865514881449639259055802250925981490376076390206984170489213141888041505164267439105807776315987315787613910682861040608653074174296580459279320116238729166131355114675963718898774779352644211536853646205994787385261758153545596607113665260834803245490456858827575792385289214839662411833145883030005608087911237742927255756077501188717674168440062820722992732192730026394832355993774270271815534994577306094529348593479801500851734667695427413956446655933236610397382484848301761002353083719836671985848776851303223642088254017781882210084802481128964824746989419771235400760836281047487366736195785018713271928307714607241402163435523717369995156481020669886867391436128350664772302614836814121426389413222210763100267993262405771097886852530081456443092213600275196481570848238777311027283501474553668475669475192817757576640317489760643812187627008581461101554888361756373939464461270915330215684396053235632481259341422063777543942542460062757492208779507964511495971278269547021759637630227634959358190000673057552190803742579066135937175879521149846246909858085697365249272813651798779436120075038333219707108398410309267319306088840497258029739123960362947790713784907251037289633054274965472756031205815084576138097646730427368190656446605145569660070003911795052755779352415505731862476391795185420524976879141973299120865091452283334265030975129711422112525278142923229909370735214470221707778554716371880705524686912058504665859218325549281768911179340413787032123265585792253765042450863023786887013925470849324631557920141557990609748024942414766169287566675060857742558256991282806155566500423017186223021087232551136818715857838041400234823787689478017894242694242662806405452397411347773980849144038492019745339610287296619769813130746417310547102768204669114964309939530092449791546527515414079865808662319430606580190301671013880334899326115222784454881668366524556401066563520192722604698898269867960410455642589842077720630660241193469556136744761636607040911586550791487467262758523160412171431179692097907049789827940070596204717965872107284481535448870600009331129650509025881167938891280585022274889129695151700072036389559749613301274418116507891551486238560870444257929521028204658289257872720835474314886107625382103542641141251270588608065099870227141167332780019504688199120169946864759063125646473730080527965956032761394672279501275345576398686334635495280695040498541560049275430936641114990165191269770876827955757063207328338686467451048366057828409784236490242178630478938612809202176376587747728908515909697290197717462802375451036037879234539126171474683713506522533240690923858920057725741456602692119607616402807865340571614810925172439103488632799900998315760667792166885809112465321288668686125054436497667716412249853997164185636706012138487043999840205676037620802203465006709978597053963179011843703767883556985473251328079397779825046566017309021165558442655492765028980841029688909243196288226170443174523950223610840686134141164981878307338169578301412941119132244983574305399052254272362067130601221866311976666431195124377690083937454598725578542496364754896814019260426396418508655801517466351605283089903124600164923152044885019263220930393010124831170169607443750464431946267951373772550138675191617596716602270430199798220746719838934945561207455845272096819734009585548246712296480684192640869471185602988815711071210308503004768107477978732815934018704639763257390065844329333898648821327784248297637188553371395900191909376227778376468251768037415376321360219482716396987962069936386581276946559304051745447435523339197048147888680047582599071174405257272500910924798448514041322039543223606995406483340783849728536544340089994383504528685442171118225591940468957005582303041088822244338200511382194370918223151642307903700893392218277698602495525822364922798888932511361244194865610239405310955517991451542464652967025511820590510956638020515025469224319900565386484850903961826574539613524025898599303325330411555274951762015995366347165365624396562371109664581063253723095807634563216090707289877573152166777688145644843009522105305868759718342680360239990679394391096934789475258367498334667756927856875400510648893652457127974775479263335286398526990186398007879814121809601885538841342252896143892626984086564854551461063458816302175131945153186346109201580307746662609852041766904514870790818090789236256098242150252270220239608880290657931310780539739700624547968407361292899973427555671994394297083836615248209537530866230019480518872091212657263150647956907904531055384766299555752892043502749226088721149750411363062866350989326014862719648306453662585114971966619257564409915189598077927171816612484328700634568124014759724032366183412690844737714726686813466042238351456900335622307323989397689676459669821804052299707615961995038854750380679563092411200236813438994774726827452225463576692475241415210746210046193191101401993412403822290464475516220672355638986116364271744849920367181923994535301420030900379582253277447604007648090918236547675477775020927000547558047742519982435544681288470110448399799515945036147485891094019727509236329032765380403806428383511908846318713811655994521947536455094835504953241306428622551172207946207687418005307771978890698915409197256132418942078340781421521521580814297553298072331791979080824630599275476667846829624257051584702036883058999508276617869923777532170326518695612436675770502861141284188758111682705453876550981889885102379340686618794846402565975083038547249964589243513997217985679000444731355195969886973360425866005628470502433978426345658506273631141161797678767232438425272801391711640188928001248859609113417472390103771168329964034239587473390096970914863072671342201857616959911555443672054917863569909629040313875316956768192917255291966031828340499846765244042692716516067883954293453695276611839778549846940692238061582252816257216746986108681593126005056696416426223902375325087234894876163075084530531231270566834674471934714482219176859684751372781249519260056324325488724605179422195230764986218350590934103221230295771107055168303551385000398533346491829726677528770329768644461129209168212103624592366890531182961530003000786624669631662337454457250895329936708611084399803040187676254598721388978961922540816979926997403250047083893997007624547801650953811054890783241013711808040938849114759647649840165724404110173325962755037751868653663734801755710490583806783066332699806927656556904545204102739075859383000533940924636131831538150438919939113081995708354201835637895131594666358066698568762181083619793818057384499744248929777612227337602521235366890120287216298676926124749737206795538842447743597415835136906106047746295808937801629300756377640538314819022579831821151205516776377786199290263002910313060352244403839849079299405735569735695978601450427828095356454406523826311111122578980136896005106465626484150955445477678698946216082875013183812875479820092033087714548851289531891319773089641288308708363784237103752654128021995419382293246484069941208336309437550142942621141513451936861778779873886427877086405383748678960666319019091296434984511042448724545515619728534804764548405411096617163958634907060888557261125667877717823091803631872810342026881590425376941991685994445569511787117565187385472772204335615551931314316370363846091602885447137351479805519797577373822944787493450913279478081510153199258961463208933517101889244435226242722890070199418490543530925099862379372386544838964352043334751618726138659568434797325019111463561077060469336141271681398713445772411730007044208142579092264893771161918210531085784489238716937939987587338944027908962857106419599547853906900534521884614650529441204986897438459208233592936146539920912105358351840278728694513059207501762028815602615119070991717277640271476273795129175434734825665971456107526763398080808217631214450753395053380492756240853755685188596640636567335402292282635124723748681969862657265680789038974280845036853400776104969487606377329747662604295671602270146197121151842971741275073483004962102129732817723238272277284786557845000345297979231160575442399092827271833891957961224949902269560721515841948228240525680881192627800653259536690569920986787484192428435578532888661070488949302135267207080302755637912428392201241275831385768703715239217044282828631372299089321070452393437749507658600591791805657121550000792520763309224877343679740411098290812600033029962664725662828057244510215621912969446460390559611773018119739521517814834386642268698981274869222697154126702698765798750513504680294527946900418017094166110204687007697284570138744223471583845814353877140159039615353673339930610948901653109286892882764579182468345601879726711003641676986118434171278261923137292412438541445665062643044268416383755923087603108640911143096482843401525606608332692534502343299036498114057981635794114204195831726942049963377245280797128518192874374966758250839829243877114021982197945380081102830693107649663472209478804535906680558493240694839865616066453886297139608679179926451027692067317094256852234224085631363098058283447020966088576451812612591423308031644471165825445315653768310918131175217816670935529777666429139662003629683049213794726031970553700239940993432858577708303084272092049229811495975336790387971043348388709403207712519942149817207889329886897567746185082083291886942378301355777796602672312760936855775218384138961120472265265949086987143873305462979904025508442161058387234384386993530357515664739015175147629651485785698697868375541873410548391022978150100854379207799723742317124671703061072163358926475519295700804560126544671442587075513007398056476730645760783162037204986766996509970271058042534884919693911708596253053219871007265748222775711683090958444541599593937227074780410484024320370886146434114996579994197414681627767990679461664077026647057829569845161796167427313092409593713175843956663971724477872626924477042459458471335509673122197498717303434848413636555607243833912350376523972231100772429103692764245932923666700883452934311685784466487353371635441737744632259325059793750313889689874728899772751492060504909242077133600861400999081372893738386949080206031871990318091273984507444073950072461310720801288946524214073052097644592486491720790232385686667541669338031099108550870244098543938402115694453483000656287235740002319351115255051579661931824445997991949662622779253715490334543591509756074838863508537485230644989210582848705825255912378187252134377936804163402693109975985926339213300806585414674222158182760072357227518828482732034343377784217001346338738413711336224402324468538584761226842157562359982381545253574109472217672101958141688647590583065996223645834276732053613686152884234796706504725306707502922311555929187996460872643385572548973874149895221472508988008476637593950960811990172255778205491731685099253562976758081813848342749853071220053745441037420172637199630286114838753912047657040024721830538947540566714526056505235499186413436151749531884567318806616191389399133161966110245513019303130370684350598083429380332529332108101397689958973410981004523144363021664135125852033982136303651772794439999199553530251438405777298496051104996445027001698624469972575673327950994514204573281982688747077315033673578082058856076588002221539349650617469512699353593261704691630213609681750586149926612226666665159724965042062637627540605325929935823579714808820527355667536236371051278326605510136422953156386409830388232965717949221944603064563903647665524425620637175649269379239007781379436065825918062462969152122256921203364790482416946646245309289539984617425431538607345571143604405569833868063848914936423625790965446508608823375203338221162895923024453832474809127020959910426927657829261133510350825594658772159966781330085528376355824747243221696251805518577806527288515325450173111175134364195264524267658124805896162658966699863625623461601033569428063242254343738095888665984811247662226731917510297991147040130984317022036077557513174992213625970920703022698268206088088667155528440335341854509614668759349249979862829981165650058526857358711799960109394863268901062808414908583229634795985691186546440170087093887975591960858127890549653100676062597152534282102079009262347259047528405769605337191995258075854142648888702005967453497429552638170999042389717551012745160884039791107296329599014901140977765266748234367027349440558008263536549082346286984286519533369760972238188449091021311972880631389560996939055753134764564501981763302293448483896706710791832296238574178843632594388832991030284770185947092575122957894294626260165035356532615008757934025339847673797633488353270268048318379410986717317041663689534768858942614455590181900023780576949680843090104321068545352397883796635533813822251354768718389623552943662462920676681905776103063710869571900060526063195452030753634466805789704111509429199285725573287161326622356379543579345400244780541707312932531060982076208540631506248307440354223323422153241148284889583220220029070492407310239706548481898844490599870731572866548833101781579975095353825924885072944932720603689085715368108451222485175592421231457154845120333095237761650358706489924035945506345663196599079394998553446204141415860858969389859754794751798491628020108337563331908565323231915076267007937484180241563076242318260902491047611178771946630799142752431930181118518679156086088143820226010754121327603596377240087648613101731681283155055646022993754331449425998322897340730757114617559311124788768367433885954915467224058050342546889085177702105977705190502576046685256394664605421955724539597105865896388804536386590952646478453730079894082988301125096341219677882207095101570277949031480428173687742062792537819129153284337671629381467797119727600572378612078286406534574355776784592240091136701715676910582458386303625640561103384153226416840106737456264880245151865925738289646674636002380009153101026090229029715010565505089032848519178325884887649349117689918964927769418780838038688256972429100283151137327180397927162913795106654724718389670578321039350317152420910205933990622716762722232653193631005042881176619382708795873241922370332258004052039594921353202350882977657969314165489720964684216598815581618873399164871447787923518008944560381575139630131662410983890253844088990228570322597762725781396415143722866037959785056187090548189573895963570526102419229233050836450928900272059725084154982415913008812625043162243018827662383182351087917054733965062197707491936523858887761399665714009695972871998677545698601495828913133766326723498088706204215254615058086315440375383061460080519704762732989021085681387573331235787456065532150157879534481915463517665204720117362326008878567268193607994883524145233728345993379175910024104321428910442797461455999725715786870875855176981756174634055134606440712625068650820550645598269993517639650239836253925446068092255576036500121840688340132171636071644791730479684220033571354888920567529430775047455285790812973471774482743653506032296465185811841759726124330264365233483137588720287058093788289296867886007968383991597535668493940537002272842901668217730135632354408928528992207500628413656614173082876699362680746072584248550963081710890238575134425586342755955543493898544925179468810400723810618030846035588467922889762076554338156256216172618666270744000654817763677336636541613728424883961476495865146767752725686860898420361979712243561955558095844906816834420713537251991601500693138244013261896973936225649928726847755869464473507111373604188159775725232676076650007513162894462716141568571755504309437471817593837303200167708199026636898439998624949887481071051450707241507644705826570486478651574128141753816728286605799937802312374969702086982329569430569541155529045235375520181949800473993537329347697360802347040576957345056838206183208001351623006959352898569195984330811644309136564999810616198663306669382387463104815044761903096622345777771819091770549018582058245467424941503321187539771698307520517368267267103811130133887985440906998836659902205217353633230543026066153444862267358904368503915292626109995082914132937922306490443624678097611126604143407260837432918770689147924596047119760054264351508187795644587637529581506481170049173049858053664496891288687428723241635821163668895833715058432681143096030610907319468764262744655757088239758642395797811084070519646799567533988074366207715853440221892756984719765684463310904417600521878008405355462070243557769568875759699754894996960330673736293012365405985159297288343297373769867159904418734410857203153700118692735149312875155878766773923651227864843639613852608615791380804857350119300763110201646607684529306780184443202862892552720898622545424488173546477954059136444927528722720515348160011004089422779234636379216922653036100123079023155839411434611565378525487260396524028282394368463156440497119423827313363405223722105498368932472454323662154081905765784800408755247839911499371862623260276413153730505500269295095399410910787504319137862523579707044679291311804100202119248798479740700900814939069759825877105612243242219466650804827569193926355624413808689974753244983462063084333544865186726140151099448455202787599923978059225733868925673043394632505667278009968915171804077123245295155831473218599274482905285488724530565991399340136708559742054992296860298225412460085953104085527214394794454995713119118200398009001976140678752905000916122579455968435113802344584012708568543501701893699198629468474163387380080307056304780053607660525236034559690370334052508707843452410781846907961898005173836451139080205634735850326021260653247094021589151997473349415215989711879902978860020187074000455595199279125474290786905024304594903219454834947944308075066195682081747472654106187118180691061098545287953274123800459672214407073019929996551699277250359402004447681305208351076674041398909329488884160288291564647638758387659964424826388530562183176116425526161673159303686036569633909608505257799180069970053398749741660217510511741634607691912539518116519963084287893340506576927135282001611467810097734948092520493630962740663536116876262902164449567593855596209025229064149755041836577225092927777270460650278914801360675524755354307110372186199985757034702460560610857466316981248659543659242256171779819091155589714271346057682898176898797046940865245823636942525515197098309356734656990746814698221345741039621955772007852213529647067907699007526739661089463141565367733384303684512281820869753486018659642623077515501125797571007052578648019035919429963398441203786413774082344104063686754396943140167205352098948109244962608254110911065868897919996125882195187947763305411356683249171061775585833577186378656897436018306921414675767454484212292071149303383746687892138449506166328175610131087406620585279536634996186295046995167457711727033808606772275756378941615768385531195411264558486926486165942022015871121543542648959949177453706145359629149785036577977655386690903738033712627844030894554812528265383070475045386092478909805905335060991413094896469281710463641281228362717914260112696888685209431593055237517930402588384420333084678096719244591700610170241264101243956523787092131362809091267482583497357667962304188326184871953021226101334495540063659783901152843765972554282983967126626710894543334942045239792004047736896523762392250765093092388567601450215972237412506709225108793176781706356558913033576422363093365737462063192598849199452378594310665487649348831208058308467312133729483411345953766674724311941853297333494873775587645628673380063019608342582414828484270170506264950200054195970266463605742262445890570781529915383496618915249427674308217167194693903162794726017748886380451961270339030792091298809777450321045288932374996061514040692701700832689807639031080339620056341050187546470252305521254001690096998978384386353797706531998853352048091166469906655253869045408164904810736980715213862772075257923356053488847192486169008169389334123614570827832015252518487304267220276860570108630789559576027091241233997460596947109567279286714800780684020457788431220290161533999800404539652936683703400623391911020391723905898007551112989806794653103694441169570757662785237730879129152122308390166982535664749588919259015431710538749294356552856342936092866465888468463089861638869848004558887053763099421636788015803994931792902270954296383377889711908878768810699327994632967045884418796964484717974804725753602204678504705168451249648325305468511346695383306599549304017900293301248664648929659737283143594142468252989098489641453905140971993323617474683993805636350363505993435722527975759566570378183353638434174163350960276492339312973191320630174754528143121660416027265914530086196849803443152910376545165759822275603207246097493126296457868454062928973378536823830140208765938159126499537567038064137148067417026897628631651037732968553543458493271353823003111907933156799461220222145670269882742751507645640201726158624970666420051385666657855981030434579131029765912401194100259485943878358920044036496118161533328739458664705596216071335853489237284900030374279647314740717496799837274564111756662263422818197393793039834166878476421452091804133559220549857128402419099090470915561186104101079175327759948829929005027183565623645583946863200605770830265991674049526066061180581711661099031678448555703534873450994558603915893437877841132642236390182631876335695994033316364191091893701201193082851383794862919238419831694410510375225518563061099475390815981584038271520418663623047882322879880739412193886269736290739926953536639648668325868206790680981631214882168334064881489658405089944921319559276140634827611420625900632708980158401707231195923352189174423655671166425382497746110525268161848981085875731214774673330817605367824127094466200922940056739536127160579996181507612918303968044154974767570206736576484926665785320427489262284545618254181910471869214497078464681706824998554214144335303311893948318703153421236883844923493674537370096632727907579057281879997666778615674308489307115314654928733116643626369465452818522521057145659472771079454211945622033866857421204808475715422137800079668463306719410257640969092522507699609925148146377036956820317282308788280097819874463025920833297148897890402931347327411581780406607790807393769735801714388655746921240488167734332060443349187783581027546498261308095694802725113356054105318081028532981324033963967023070369514543859132542655688635864617200078622835678916357180186041283736694529204222229861593232378482806011620786841354383621994129645977731363330540188370463048159183796087050847173631851544173350456022155134935602273535340543864016321989730076940120686251735399033166405479912860723627649199848573004478818686277401726533883632152336069996194964054976561732907393166385725687992102843209978924309852378973554141465202495706908601579161210958615389175925098598206716532313495377822978744022233006737104104835933277774288723913346137378320979882358701919578019759601983270477194122810831623589843934786141715560378182738994083316745731922508057704192953829852145419766550949560248038078796734681956318451424856981581056099307529411263235849573538921063816063251488430230393858654984471271352065124872643965911185944028471009005973972724644083215335740454355182102098831811512682444541554671101841582248424940279163929250650165422232813085287609315051334017250403147335466803417202483828156451622491871986867296893999509478416926561809967071986611510763035146065777279613492282175772607233284364102778747077899794438133549978674116032522403723167809027141341479981519029069029832143053754240833485180870544435123545283976370162711174273413929139327352312344315853508849626145704872164617569140126622187478976933194223277667449955637539620804934796738397085809595554404499599722046197532334378369842205198706885068085167512111629814531890497849662886163448938521805346300303198742941147183839034953152608373337557792108498939875755364093834943022693556958043535130527603551952225231035027155388838947976046083287112323350453746854411762152983007242705808908205591691015450123442212260325739662621401317867523324453537049947010608722641860714770910936708702308182077305917620910212391345783048677128485408797390271386552537523549903636644325668195421397943667677392010710270336715921129673160705201271659075803767774959961224446868697672440959545648432174994627250865945906537914692821769095905449071543837693974239010976556451561340813177463445956310029392852409410671096526877713878892789243519736269979610664093233166964595339913209207052600769610489232230547877796785115177739381715282461714061824074990633684293322777801684796137394561519594725728589945103373366273202407525069657521079273276457983678417654516809177464239750799274419946887603335162255871256167717925145586252519480009826248179834731779760085710726606729925295802522107829924994823739418615429620288582621663086484762416532929566695353590416533145615275911728996049812200371855955829712945100763618091644230493939562005571502093066254349867625555558098812867098367523102599418253668961142240490987508048598938741194045595471036794246555170617160553403645924407717714087340183538923438687091765460278566172538827157788354030524266358385098102880167873437380483288320694642387875768294841794223488382630695325577989283199685692893397153344681309924822807764511468108670689631972361375926898848561565978598133859062553459773073903773998438536599785917496806552340517848146132709612847731426439180726568898886179610601835388234043911021467134156809108681413430546570094647282183226277591383474811960515394307550368185436922784805047559284353839492842349051145109407900314127413273275557300242202696249978585230773269238490510252548758771583058765479819105107942868441008279853327670810797139962451577390790725267355038765971801124006954207247622246094381037405789200454427053840093207888437441982745527842184069039382459696351052505181473976808592066347872102782234040704429187390928991202951845081647352416568273526148165292694458710083465382038114676876731008747133052687426168264334272234080110357902235015013024720141258725346184925829674452655395003721392721136337818433560914229524742854401175518733180653725805868737856514464746483460273381104354357579927168309632125925006459625372803522073441932132420100794064183860171121218081157979593912255458733936277102876124676488216161400369029739143240932061569609636256604730048438749116219375502781361909634922437999408535184193584203818165973698703919972761168381666508093537613678489097092751911409101709267277666335919254356644657660407833304517192193732349757915644969666420867939708891957992093027434226011580461694216411185152429556762427980846707050016556168206759234925895840979210111914999694217054633628014700659335167717659622913536615162530995155770498731640137641729122183515764221527163327432401233659354698421046158182244122679361053040892865644942139010920293657907519861355029544597545663453218092285610867247677227246490914529089930868294771761714327464190140039309187706211412299073431555054743553981261440530179936484406126261499062590279597811503569390375680576233436756348430871321799454791078619249016745760268993496109017388071854828078654432049230485312936866462230344106901754135183262473074607232860027530728091242731647254698293254306922361721660635878534858214504664073585124761121393042936045695605789994351112617677260177037590091651887261951393919961020167540678816175580021834584238116162410806739623394767423461687346855527549604940893363816675388330578213386399192505345865380277805407856292061622325996299898048513331442592177573832368379884085365626200492416589876520191542584533967467143505877219186547004801453337683166741808531154203211563801750576255004489169086138489604198916184589392387302948302657202644190208035241558317269421516257577059971590469467519922957128077357491315694195521216205147782901865673714624051785492438310987366930766352908968997915766697162281019092567031582224705074585515028415300675940854005657928001728628132189120931943565463924275192796604190826973297217617329315431126073937278021323666629873501086709197310129074085200948933266736699002098330259628277373760035516713764960386151718797815991190321223307284444339134828229397740334909094167585725240168111765557117650506749915684780587533201570986489656052605084781344704688564007862994645855818929738119054403344434866550329266873629457397636745881656291637362474253887821736562490162866535601346970655286875471654157048126227482621323171551982202716010183559070412842821945292896012426186923697022088088721596503666975736606774123875376247157106178071386277889527880396900357728834095984043221281819547988615790054296804275928639981795233099764104451120712878542257535625523388366403183664175502070688922669597733508865215607629493937468040644039664714142666453000672896053152181108589265909405270955693612222325942438665240342648067493105848901354081461859830062929625460829558400311453419487071195757970504196913893618668319813644035377324002315829508344848773182162983543857095480540817480264180551954449965658194300263358664442462829176072593608677319909054175626152335213225614853478298848313896114558102266883182410902769359776913567992034756630046951351590675179986671784766029533732228028778308388376578548179164386851172547110319981058718728044450559155302509557482819316855676319141873805144624447529405134424817607428477726465715195442957419516165387908885510732731116389322255438657118561441350226327640448270844508314359374305297999540998094418979991798725229980402580270846341653539006856671400640899115526806626973007322114333475569613369446095393515809771953678740142695683089905847916575440816724676824192222569632866931366182339065176657899449833685570568545533651673913605374006813849446928027063236841255194221169805997844809590226583355484160654881310594703244403022417016149818867078282856814438033743512916427287289176179035455306679156160942925315512943883959671081839983233358645999106637328634921374587932645349440328293504743003947401813650216599967608146530972489797242397117570106167101127776686827339616661181036043211621420311102139095375660246460759380117789506686310070401918654227999062981544550674797873651353542460372311148077252171818257942779630340941504256639725777305847819138626593351827112944610897173835391850510633648301319125751076344911007114928061217387445132628850884590407788743933954240625683779866262090094350086353978683299747833068929705578009803835302467177449824990358847151580497556095423893529527856654216748782027152437660387222891442158144387738056565534669044180925902675161939849259098346225045496230475815273399650147219410561993000608534541856874385681617159814407858845521547590569386808329298240422009308502270007233417152564995280389273741324530912614521835882355138194865103271092483809625482034687039656079403206206047134312553912325924130670187009127799262237925758619012746507249595334275975529920922580776119389208288471379195200745051626589765108954849667338918060375620993388369422676118288609714497726340078613590857020274860370570898012228378810996513306647982550364058344300905166923342048073030373970740804546562371029439227504251122603515595991605314785423723679288956657288836274219206622954549376383516982561005749570028503292457061411750927382088683238139836799989643402684517670638033764080432921426453729785283577242554702863104768911809716013427814517261111886802416731669712153507086353531758891768783013714168781120371013820625555604504424827185252355379744378902636206246536475701363252647242256573132960572852904922738353469246375667786061156397015225389434302360833868516584363147421082901451896808107447272262304225807123142804888899970778103410223231045168819612260866214794274426340650273378895999149129455795903686403654951897500439598683487477705445070806550288089996558243099614774525380233786237267470293581486124188342620826030248573870302941839835173189341636899785883174333831381848961372445163677397251802647602581831395259490106731204952375086907758082995000854189406580888966880778158254293637639400636409429241824487327177343772683153384122668334810096896358089222787927471499605760694263617815301178049448881320302988775989718873966740821438150972322275745173445134919406241608340667281781279939458889710834064044824209826607443832224953297901322730513386346920621445774230393701045658086550815648643914572498963904166490346396552560392717458822422578950805291496640612789288007183862856547118022429657171978584930777133518318997695433199983376207310179503815328761608327328183727959602019041172070364752692285414484108012733269863953982062642280381789702657600848667192519599345106840692903139271129429489741566525684378890767384222033382924161103169917439921181750142657369860943835289948531998273653096364332499298978775305459755320369472888576640220833608784292769639580286639191189077903200593725354140019867558811050327685778990531613590584160773310438685909246663579948518253782475247626823069556610936978920789149910410538445562932495678026582951387105497866255828633307412037756862549980451185346489903700294137618194031994547439126499226340143095078436434297960427679678931407062233712332708098406487577552582574636566469055715180743552145179379513195177634639033527253955111536980793667531880529089038820492428352205843822306793960507237500173960158887198053670970832298111167655556687159355141266516773191541460020670695486975764593186355468037979683171811690378664562592334247407857821813624979005879969515167404080485013829406310998885388091632033053846155438875349463824937900480908234119431778726639339580405103959911839184381459138680441809883300512824070170597349896511326648204133562393878225973932877619674535074871282486897222376738696764877133388647282035174188857660510884932064279070662967872656655962204089548310061081911170184779763013877548160812074231406454509124836020085024228276860812434392054689097151886942800939310006143195986249898788504131542034667154011944081349867161893473413068366488589610537485130799571344630659845199771103319574975323077953454810937776671929537783770951110719384776527976846135929731161380491982134599534709670164689418761018051615792296111086494621931218710297438759756313771327843503094547896946481004021191941121187105268512431256032975511800729602233743264372356932877568898599832245949467832737525881540544981038308766518740025784397065409372872569158697065129015212994458305786716915828938363473653971410058129637636937628027638946830239450051230158817183093528230982144360535802359122134864380772087078198489589218351905998501432026815891253306267646879595243500125223447071796983564936052512559261123187606766839051743574974104363150069099365116563428027427580389299612020548468452301763702241660580727733053848700930978707416334936912371501079018629135165963474673017802544801098077094831337337868567349859030790609042323608444523721918741821808013180227829699081542449223157706714376506739993420978586690249440207032258692299564069022208420948372557947138946836494577109894111806376785455157223216792953657934227091481948579983579422057358251707608185245602187048723675520658894984608334848816305929891049923471502767439328837933459727909516261945014475306646903342482581987549853041511788728657199022394215473338792500614260556954170554647527348818927428371660651781185614705561354716249279335537485265661466730953742350982732153979492905878889755888787247417055940155051795327539270796594146274518949682266034011018237915209300574656503223390251816879288028565091167612540661018277828717954675432630507317524410127173212462543145028070953206815171360907929982982539575483447872222230294638240214599539084825947783522493107628845011018224802552490472905322440600242661171522031298071811163391119694487085829980679221430809271311042832918154678905631089272419176190601047755222059042310050031426108148227671296238796036079670474396937284933969599539024705973827704276601926184587499411164239672857186874228274885846317019413187772838142703768516794435028069665527935753708348208587352832861688627788255942752494615573968025956565054296111679245139128831778680945156117860103135478673287073363053312229574018893286613215379351817124573770259659506151489244323596418660676704652254494879337928306542247125261641238507147481078758239700267779316574856960746611785479306426423966032043685871244264915263024210526157791832214137704077617109559102651868809723727035849659077941782933314839399334510888080030082829701290561427685206216743770135985489100692037106449608232534079693438838675520834456347817805514821971210163065489562746370816745366104596693624285959045353300071011069479061196899031520870773717439757738913504984708849227551526400528014462373318808138730868955964023664820623402155827773314898665288647737758165250867439022751663279588540256103668363011756620440124882803331680594770079712656034947404879933339967452501983602677748627772854525837508475225210435224837511553728524702717776826161939437278825296546714769472244247948012822327859861513355429579654063722922089701309442187646228420966863180492049027020442284013976083736754441807511458992914421348971933517298209002660924307801000810602835076515609517370923229231736995854149855202096268785722152891150452860286530501375081203914455737701317814549978945828938481251040902269993169401037630912298639415919457970469024143949968181126127918723255379757243648739073192957427127153084431558354857894958535124708926625958278186458018991529043238508735676635625803973955682031393900849097911155197083701828435908823111830902727294891241402004953752367135415879541681090112640100120041460049957155388434109525201870809104938668456263497132665401259260376351273985079317456834380928354772036195778074918488057093276506268643222107985665328689652563111285576572977004137164067683951297547404554039497283224123018394616059609049917210193501685626116531934813408323114559633692812255213141256605151004847190173674761799622295203911083541881911444428306515574092521486599784877903624528564493777006180755590071964144410966916156692045193661893818300516645164447197700691004055512365158356760373707747968079025861546262474907089070626206189030373609955086825666519745446750059333867112833272444858986227896622873551217156506845901513220851965316975830540633900812611892441675848414878655520965078757226974109567164344685419248864427135026510647598182251722162037917319482671278654680740799291540466721525767689556344478887643366938130891414695248834389137679784500421656642341076001610162613163405404563426363160724276957476343931131715517415572756304324605802194834664200340044949129057083499862559385549587551151634977989673351280479442938902142364099947961227091788240956935745066754489214345037399900982310872047442847834636889122464254398609918520862297587731826670783161319218808364382921199245266705069925519504060165362315371826422867025146842577723804130940711304504816191755849991319315577463052857335295388305765299336488421106820230667259945095169004046066086069432804196466524805481356593196529185900328145155603071478151983982281356109634262757004091486311092906158453535209621567916653749935575224409109121761294012815304796866148306146766654623456904288736559423018682942298606272372870729900271314358289510862207694009199993232404621124523309830920302423755413522914652454756585165702758302308750224942195345151107314388476136724732657657662219815935640890271276045321736105582893191840731518566329945033638029558110915946309063320676006992207141803238237560309198960093690714491403596536969347184353089377301156064191715618380085844807458659269438882225121398596298950956795110769261177529272966404744962403158020398018747547245903349529005419142000171428085470762390876211665752645143574194239020558194008275286332677079973311993670983218680266731152338161803226715005903729745752724600076500930330794750300346584448724285105042359888632058747352764443109373097854042648882244001188110423112926408346459279644497045693804465264108542017987016129650940499592531546596556998273764830593159885605307972386088675139644879580425929649212629988791474939268150767840389030456665528077308161766595054789189914999920695593472825037901479769728983390489814663303184311237917335158183096968140241778796786555623434379268490773475611599825653524784092798259059663478301966345656970325712414034547718411466442191778501322191210914248876867618525903034976440252755925944436656902341291554988527038745867579763806996680511977186594460037989964850390496358570794808455009306778090956971699440448703968727867909089854163193617894992684356604233139930252441126454382389502115840830274207612829109013907642194857263496315808319313098953861216786665266725741510522615489925910276562488567849005314058132951082244811831818239741790744052608812359352195866896992525114343665611262076890943639858503116398135477242911791920515070773257349528224579049230948819084947835735306352593264913959499125517922522893807218089224020794879420823212372608381524932613529228643648049798169872901377313662956787686844885832528397038485366719054708975221796605682180356986105307008581568196771267503102660920923775544601775633791259653916239205727539993720687183881741877198185928256334047405162717091399137160297599672907571727543104031913349175235509381976179798223019750924629408018984717163748272076400443052606505573413329685266311728091197031667969160353434695036294691271857552053481806246864703954897148978371403211858641634016680738591258590468736784018338904551543968949900027538706128241357140553560795069348554320998099393694992990588630501961520847833786334780022127315600374755438664930718766752357451608794622114784761326155676653979536255719227990302307828900899701145325245532692362653103905493439514213263686354463280436861707135330258367964014944662625642784197279252164480469262387581346839466798662173300069624945023592023917587548933226151649797192065243609214509302954070686845974765687282554139935862212723945269604345713525026139669473517189817578330082636544739289402187223735621738228509725656397113387519675188227844902051687463278232219655665653433640842574382850617244810076452450179217292616052995901717710158280149737806512446269759066421984462013184742348509761010338628832371366579579390045396212782274715987795895199656931083309328805377693752050988508996320346540391464629017131793288766977064945775479772466261455710236255466620793027857786834561092145998344824754642391671664750627343487386300718453881424473902368578081101320035326318832303830459615378061120556606604605113714107586713453162431410368173859415344833992908601449874820759603777825062728604261708419355753764222451826815169207339647767040283605500718728165061301081883471178788424089960622931755523850904683179533004872344183821527269698216577219107782963040878417257306672972983094050367460175393370526532572315480955647246858328744356375536239555932118704281699030531585999299982434119965937048536653628013992888807445295010709731510821754458639211978305929302460919879242566234518133612483217852708459538987914290112333101896854094773490170080121334455130963253570677345074753993255305219520723775938392307311499874124135100787517680631103303404579091321940358202359918083787352857604231934601553717907173462571011932348581756871193706080292996315239582873017548761085937178839299907458303626556446202947408952533583658515232845546371489344647130199535045390821054124973070856601685050654611522133844315854315221744708621608516112865555673053409591134583484003020393011357863551120527588188021485056896270220940506596363303130407520071510349685533737939411277897153434410642775562273166046804175034444838798290926432776601303105630792575318569008638663732692390430842463613044226889247703300362716706976495479326774001970839363303221962112057851284132736692072804702833193388870051315640301433010914470454787365655878719870676109510355741121149443340396426233194464535668638551936287705104692618648019180170334809742557952024754238766057658830570754074904607879360383041348905717776457433148583739284736752671121571028228241098404364788304370504318720507959145787878737396813315168913881178491332377794246804017263971167488073950600282809032460574496077189713688864087348403407859025581250765815419566458236500188606196100627635262194991262051012432962026454683772329997693475205265753044517080547638227414298772677131484185455244070073940702671965707098697059570962269649248046841490315485764511988495191576245233814908280829526508304134815622067056691790039706666958586348084231012537386653764110218922463407508278649426024683480668103093149110491721819495206183047750635675244349297587839359856934779229383483656419762430327129722101106889714952399299673946665114840330681730107390545641108958270379424213331764374262493335262381263339521678953735641272588981055173978832805424596778797571024754575702626811605427386085206070683914705035209822138410004336072552696568512682227302959499681134918836633465721549624715327092267951838112507697431059987866796813194543898675168351379250025642909784885147823030973252709911412391462495456462323308281023152516401067922351783535095483692199472062369394439614973626991869730886832865724918794531521528387310125059282220462467611678866118711741920742297609663578361958730265519976594001982604956505787998541475952820416294453647718720560837950505287847892668735744844894165831209074817277363211327407680096456350542688816546668781446144851179885146580665974770146916336594680639090595871086566953317492076101025281859596941504110267547495323382815479477718759560097947498307804523594887060257979764739713762275633326902355381968779135559222929678147863883081915069548636153014475546365942320339749956888274344135944076209332749032622072505496828090991400438056393668122093491145286256260390400247613548138155841997922873471475039054366790378189653503358502421952635695712295092318816426226871174294344966666760312493916412747870570131385654973714280709415261220198786019329930799536497988748816109599563011411017723553771403872350880033027817820922409943683483991648942615618613346584092090390283780092151999665037348363969503250367311213391199933900541800951487788564620316561019330149175539104451289702488375805900053082807297083084134811790154271569037605350800569202832677196944801224148814006320617276124643047295642674699724492236454999134778289738780086054494181056667206196262454422662845765801715030695696404205568570847616156158505207230674605976573347877527388561620407273090779316507127821989205101142923545596228855026595141933177081126767769148587254858159213848480659507160955370139536278423782219420930647290592425765230350013756267147201836430863273454595014865485823189475675825604846162948458340910497501097986146870439475626340585258247053758758346039568326352684661835091546449225682388348934113920281185679294231679312263752134112958824231208436543645272496993660891997333684433001245853182406788470285867736835389149965643988019552188437667756338557349792713974608950179632434641179723752030493666998229292057739429080896793929003474828478759926581131703383932216393054160970971730684249740206468408788220360631361790821246058200045853834680754880304178570535037371398651899550825107861642955316590178603945295212126491021706146228560862417093586635754278787222677534501688522680880598861839247885694543843873082963477071761851074295744771009052500711362261337964009898991716672062182174424039495114805371784473930822988207983172823630340859256520583617591483782043961616098872280909232958022705715232172232969287308281135112920812791463100046330433766993050989399235263366381919127818820453671785089801057175604733497036347337618781658840192618858740874995576335214853600204034881358279455427098545223870782111080779701038453438087423330650345866204436870556729018606408971435100852837011255042755689067076437799272086435225222970083902555968883981700905029660786490723701625169629538778774082401384958444654486124691313347869395194013000541038006763619222648088079338129539458719522235718744569956192722938213664781902247531895078800416660942527332297213289031731638065001319375438423014610884262581299510110732333658266762891936515405751518781297699158219098000760519359469192456246639715083657552701162286985518918511814958585855343615074520243184962380160534217486220134188411811349320286472947954233009419675436873697720504932489737007507925231131746622776032423112088365213784328699552037888613626998399674235043735238442538058544494913370556870210965773778320112171066715011891374300105490879249780839923254995942531813619654101084326673773033935154197547364424369189541865286022077886703949000755537927055370136438419100141307219849205597803762180610233434721260664494574118721813414590474447845753144944128811633033363865193777404295905228852435551169746931090871246430950808394456639004881566376281458332658933648242502232075505108853478888386621171842419661332109725512235585001334629248864946448131800049969912940581143988520682809961473630044497366611240079285623215066787109670696830536001988148588308021427008928960459954319136351673321337365268400580688394182718694319685695093764731221484282259412765148894726269305781612940757707522812748734728878951301692481630299182175082323607151680663708974996061136767007420973858260247084118478395205658441836586351465761993899956947907626263695376200138198146986128137027196960260851278674286319635658101938060534662912876676617538425782293908141045295885998872782235890984352053906586297172477299952627723214893559039313919154445438745047240501830658449843427345085419015401254537693698802403267839506241344516424868149588775519322674937367981952096348960888431396283342710787965658792683382443856109205307632443981616048790036306052247727727781772752260190002945890934939324646482689804649009465892007190105525683005728664143650870152284341057740645615258813572708554044074046087687200811879428540841961086086002940587950110276588687255244957608784450310171212597936779308361246735893460890105430056470719909907342513007971564109116195654613841689952553755682985528217190025568816311492121153893473662311169177221167735111560022258376999016447520970406010204523386801707401311325518403098890417383768149648167284697912675127545583354872687389992234977545205306615083243440935310998636526843857156669143017510492683811513011403929039730155541885153819432106019230644550745316930663352209987198337495001804840570521640631933076746311616278547203887150215259619103535571394155886546758305152261342177902846351284286993833152140514880613485299903161521839717064141474396472235670600709059302938563353663817886352629348732180008102087485222330060719909406325284408753579269863112741746591810592149550949663370805757381012506283249798583136051380270812479212589287290636687753839734748105833634523479102996608844922791342406131563268183579429224514810181008351226636154077221360629511329862133537058082597044228598263654463779794106326111628624073931528992788363770286883559481894714537053743231211333002269783438893675955996268237170658082250313971096620251065650164062840550131730296036309669305570527991577262252743884700783180439767028367446901927256897616352135244452890370337688682671135288119477051032062468808020380630663291236015936381443988820864216226995063237631214715540217932590460151008677720459276423981602021963856666145473041480963401778862805934030667153847315989729807436503027737417687350560451828917508097133195444654043637780556670875330833819162581283171994655623396584913355908425942577991517948597820994489614681206133098524397425771187020052688456674168672454427501039657958393336976675799350764134054491348451635238587190986041838421349253522566133088405876325501786517881360790645894694847179040136609914393679193384828358905411102806530868115008696747974252501104445893873074037477810830396741441118795482669112759240182047521394699651266798987104398231167596660584542784826281785397965043152894376450682963141135122452074814722516997590971619335107186691781343686499411511778203837642457893517624656756714291361657777336435178638403057165284170404886553624714454609781753194056660838843309099466284939285070701749915911724381721351376631570791639091708365098711192154267244568527983126903918406587626467013027601217110898570480443016106175180780315855846393973619126926485784482530584574790895807542245959711361467071123493384174969645167103604672740297193358560249585401188177549632728747296560974282828513549585144977299741753887310051599482713818061120899252089884526114719003886447986308821712326476033360377994325117417417473721539955663087707181881953017735124900250434992274337884191923300780891893803535584124024141216390970903473480225219474047913113723114844181446448675839119215975556686403432237785519792881070798410961806610501485826443764941667433692067556514827611926760735301878666008751311569323597615087283451944245936781333197659335739422401673198101600163599845642856857488876611413656390440144389493377785331726269041937185499189387230707794489884744237771857414547891564725539453566994426706129905261807990580908853229226633980888174178834387061891417840667592994474536622271543857247872993109507835180232560435025164088090408230321106631957958200019833224986045216093600049003537789221211213022464477320312636520229161547013790648522440554978614295539205401263928712948819155890730508967391697481359573621558494671573985199695426815566685867317007638505259079409549557824773799661641442418996148687754833005359581822568232901757445522933085667568933177467988017654984861828244012099481979930863985612370246517401704278527068653631184001194989508318838047063256822594234932112827340997439360620090036608647035684866623169344586359907359080047159210599533034451761310528511454729525293015081143128689851809277229992593791132534237210087874273185328471987730588745753970020541637094097108854278705211779446899059326823979126168627567264442713903746689152807987570723523759920772456373011060757315676145943200502533315637461770005737743575002516601270662843577745737593078928847414950115205735736656460419559712199197659657148990494356527000524496524562555625272464740522315339408553836321372573341471782650312785406502014799110098617910589079692831897978354823316534951440700825038813184570678424781104956460648269420759996920951833292845590840481924215805225844003524311859472674511555507320414494808017660105701625921979449500313423831882702287643765365581339282936798011900979040542346334997639228531909721622761221110137851683178989348607460102691440177812424317082341124041498966902198174512835932062055239044347244362980634378909714852611022968999890779399576038528343683810664065801593166826069091671560329119177846688963237919901984674375724961907881418685890500115922879921637489258440771130627602389071529725117609069585736216261830681253106867096191201683919620869894490579654467540536280064473579909839682809311750911541920043273394732240318968182693434646864022346506913401234138745939932882083092892918375075857303652984023409866054117362008953610766694038227021874300949372873845866068426802528705410172128156266138361774922080760867210268019133643906290537919379784808269890035826620126249176006873598110476104784164039351608313694764689458718660971725922421563456030066603417851718830251027412837258564166954438328070816673943794337957322591216550395561214674353468288857598200265854194469873345580195934203200487691809502113678869897401587596509653040628326806241454574954097825757054296824090929635379966559506599091114076321332034775649864116961530289293415050824517719721028473152195357044958737706565620347690368306337380109935175128035076229022027516247454409381814712953570518593872194189214515408921804403517641498834396329680829721790083445919797312668425239160243388820807248464662279208785529279273467797370632464091871624731372070895551942537233429954396764473811801348689200895701866201583585503090855347354694471404244874593025576531129057639130080888118700384047421137871621898789040165883838110592978374249776166771968416514244850148073705460086291535744106308769490927716148069963882905405436727104147921021322617472273756902360589642521279149880122436504779626037767265560065825735065233601486888803035662271008654172811502351432020519846899690658837934379299702034835833872722516096799890804396918648366341623708452693373026710938163170885024894600295597267649135210209428961926791651791430187236212839794133559092520463941945072408238867677726765958407478307856093811637621194097100955554159442025511355586177813381935141987631930470156687553580609535254828751092546798175330284430359723020361271669274480386266714864481863776402176777444484952410027800213871058621108777829199193121280749833012488080707198150300901990195517377233819447318449546107135331797390415142511390365158691034767590347794421920775537980322529361417459684759770634328774351000078025170126640238426474877731759367723531984713351457632619820058474777369582409270738495608972384432966483782836596699143353887054184377017851911123016182764874254343772747960880200837438486301619750073461230649598234625788791706767972398134445640772208660517730643542264299497629467534946325354628464911175513958862615262396040707425108277141134356462719957641195130837505903985109459399638972920377508477490799390170119544155119311896420189321787970320005687632329441856034099140444825080221884685278932494560952659577180119723894144210685414096633089640943351185282847605597247883562037078992948822658248493945554965534979650671130177537182977084332733088520026742123451564480125885842091747158303258897699272327105224950360009418690485910678636744844639665635424227844629739462956145417012893929726682780060485065092015725945485328474745668969769068681704926530376010747718496454399274659920177494614427642874175310321143336240459383490664783870906777736832177667323849409441287684096965872540173062117027837981712202150314818373427959271516280885655411719100516592628377597978637307867754909390496781099015945049811852098238501382944075870137936102004235824971349248046658569014676687574311473184625762404255944225521339689982401970477238221431472524445443652742114912913341688508565793241067134468609797921819214540172568529151826039441811924400037670960354714884010869983970519792615162952501512217305757167636527128457473322175453793372452408014671977109463056709929986213169090024914859959768508331116605056395794538770289944172560544947747510951547658688871207200577329226828323401710505467159126500818467972573302810346832377502872030274981735744505567172160134654901063840755623563885353158652253543921951467365425765012656475776295779361736039676875479138097295893294254699617139355082356796302793908148821604200948831359520134791377970047031678774504982477835959684973374517318538119338364685843528589624696189560432203182946384576674606471242601843507272891692525728395833957143304740860369479032919992991332147857977036325076244990867410511994839654895682709309128963837591566635356061462937470237454674607738676473198180993560285677653144230669971618203408843070988171359602787007988828613636614453914702290661276312213337173927833637631966992998736375007893088794498174501124615304355540913642617747321467156679884607885210572713115146366111361885955888756989218797556550923275837164587919895046926680630643010869979167415926102833406383276892403413905737127629431636181971486615020116245527414176603604290370079167935149686654786352724343356518678955388352880613024958293730228462091988916163984490923388551451668148040419555038680475766298425255650095673872399887783367815641403217444731280694756753014440009960990947037623853149633705054908969376425720125575529448695654097037842642486370744177386929440094956551654118312510290903558600734306294694784619061319187507576950595376106883354746493379546369909257175757406054807756764947048376492400340709049987876566845996604538524954493787758977316498906982541203618463455484281149250836217991979955661666198979373715314186621001917351323983503474413977048206752383080603738563678316958134510735199988458560356390778303469591413939546912738021748972962634326592464255228241525434826832636078341634226579330071829829451908381570379883647057936453788910300259592849517656415334349591964165105995121219643526538166376856919233188447144428884918277776819620694323880178050996004903989927499075634444455303316079241298477079110180911143482805367464572835470100333394867326692268291587609125528461041173113296803978463770511705963832937377899967050544028842547066622335758584673236893768947276642513900994120643516436175627408325735658701753370263563327877784002895102317734805983002759145253059511793006489661183551212799221193331575534440406145421512071292555427087145568637582503434308081343421663269528989055368477738088270130906377993631455270878928099440143206962375047851403348427200384601634759643257315367092673373508907768420256014757943692112444082952403566551487808858998445576829686947498167453227435378884649628334723039381334615228173244141824955254381524816046195439581853348738463222360232785852873767663731847550482139217791708942027975278371863373503565209636832439701836026973152802114619022984296317510249333793336550067212261059281232989123091156667465201890737117115935468585696591374202916864441386778490057303222198999989603693790930959328675170660438107821257034970616497628713536600060125786202117321846511678688763625247259983204881371607016714710468769673126851290983484631368598440664250550300912824398618805083720105333135608704147747460425663936411230862674442545887547173411400110736214264028941342986018225283558140482636898897794954286784077700433895459328562586260963524390840431884501457839994635924229094617728287457746316725413995760510022170828188065065053847785617318371869628913580894254771329668569669948570870330131370625255426076270768315579678241258844174295992599792100014177499359770685790286185094014218155589012833574232026767605525553299661052854328438963583290227552576732428450576922715185434620489333684441269246783984513984419756563867912292489157920859091693463385022529400293305344518846040686103669886943250549261575443193187377865705121176290584457055419660300760214735837719340284107501330556090034778475378137743135679559667833792375763977176856612169384870315267648453326781918723244238847868790965425369214280705257401774717848456259161129771414378754618204314531870653014272939079167074459628553218244220352204203212369666544955843068223270458406118742180404152112068302492325247208815962123725170738944600037307527695575317470061395945012558816396667327329958840902206821263349497918296791801909923705176906196220867810526891392878816956214797084598530044597842305224221326550945665266138490157060576324627009870998662616630263306292335287689188988682389723422481652908127018085297445825832714598076045644749280554831012885914763963546795974231499127268622892513438357648841772807470883720971970870638792266175283318593578010470113172094714292549756796801488413501472196361561398801154460926889027854684837791269152296132138982484589446998028044799862535445608863013090725611195605500572231702299963470516742178393502150390772064075114231943792632629296210314833931445321990109374043076497870750759382027512358984952329437849722262770933506854819003146927298460287890583245619899523188891341831741150052199271521806972485209447486950810778631995964931858558639047676245056226613659657552690364276436125461500933628453589694014778898486191777801991058468983608938943885078150596775991590407801393348685980373618277094049117011548128181382260821627033912116663985208441503497931801453585526170429441127256666569957794698475535195852883840297293481592031460902471272691443503712708600061309501334877134559688442808656739166581259070201339949066290256186151014135725443803222282194223678952044225024805562315831822587646991614039374869636636999631938490007225414887157012861820173183353504978931621781798443410493774196912276283245787702030922115807772799541701415133631329958131140951200598478869356259494096504282665511788064747671480989705763139396186056067878302446478816503662579164875709511951654166354751792817162292106934801475469846061732763490776874534095873770317428170611371702061617774371952726419989568684477564189266775122879863382822229266653774950249815987283408448993985151199971838707457970561501953167064613535723482521872854674304577293860187743769256530690950907744912865401097790070058661457705061525292599681019898009498613575750216785418187435252912700585498945563300392616533265126277581759304396565240702157177811514250263700647556503112462104374900542040042346163590826138408121339719821819804529896129779266926614846484344465132671227854886698814312423185843618848818459748624515237404418565030891188369723838733188623521521404756908244273722393843461199804128675590466339364504424917815527137331316719699120322178589419118358855025542847646441328906687479006418071325043408620400735126658491515292975626507624306789005413521861542942052004099615709015217858291022049786275962530795226647749764526359193745872160226719283731715982380432354086994528353066194692366329468479916618673915439307984645218107528201638546902910618654645073935818543388369483913281135540208603402039611868593771085968185850150521043920672403621788768933733886701364171177574678102476594172740151076264553552625994704621494091227585643451061496711127148180553339119908235624807321816505039634236075968354698861394687284360781255130567599734877827958915934750958361007549861836257779922717482869876895631579372415791132587474493513258527127284804679165717547081044412987460316164665718545663980510652315237751034418169009270826727090616196855805741183213683591792286143392081602574863906788572458241518290602160246450006985458362378775136319334659236496415090794390594905637378779538393498203220987454567025382182722013132632733218427080737394514013905375906065583210561744395224653958015470824104540658920237320497797697463306864746570363584125822420002925623133691636538739677482062638900768027606628377230311094686680306100236524973621894629701575469611415017210849822153083907222675409090390024892489566323428027368269465074437339199021290588294722764374684370740865072866424781483952056661307395187997936874050558471796596641177234092813411966840657217794288171277601105767970715750730244857711200079965603371569421846464837899951934136326870975469355420865711082562861713711455231862958767892807596367116537116589266881082950505774573454242258822096088322469196025852544142780935344256165790650367247109648748324887477565971263568876097887244850530388229795598777687346559887111840989814725221670643545051860257696137918052028529537162216563657259903989480507143312449150212352706647162408518881911038052658727444205951433092429259394960555778683700927174153071024052325189013044716989245354389077139755520424316886967321411916579636686636819688966854405927260514668714267525770620257228207917410816939432019060283080410347350991913717741374843367378318814404953956449606968242555060267104301330444009135815909177916932378208661165943437243539003206154217647072902129046930839053448119823720691275965343160931845273065177311341311051781241299113949396111904333139797867121787379911618417007498770237620072778880506077884883657422842054897982760098601233631772014612060859698322818805555420740203782287308547718015871359515118376287724836986113188534881288361588329509197314030797166557762120407040194858445903163024674954909623936941271471470379464722401016894666001029193042316612517054785893461629557525381009263915039810073920112672240711051977546702935757929844480369509698437583369585763704428304359986721584753606695730121383595120423078432734480175441286212244535308078076832042757080988011048850114414885943281805778309410849629023643362477981474029067150657734463530406279804755975700069547679409611391979365121854147595895387509853140782922855441612627306495776516891016226371325775937650353029672207594057845211967492854511185963985825017216361628380633196940379573230383217901762102617304440588409506511043710395004106750466990140112277867151753154348302706698173440394101151481835181981319922697621853408904652092893405294445892805188644109033351535244961632294143730741942435749936454943647319374303778411075678145014544475871104036555148464789962168804265143721932415628918718564371982485097574660480195298649203530266330286343303399819563671189951755658325721062076012686987185734677015069826477703707556804433762231470321116149061356780526476283683084637797689177186597500175383389196811584447458288142682050516097964813027155976347212447152375627125135512019545806049034593457339449209511529412198365231744873072887026707810447324748845682539405328807355555876559589716285074005188464088121751181508253784094081827966061615992228463066885718467279745380504113987628816669417926471808170456280574606647163747052066749785513682534514001393338916813830498062106809320372273681819187627585312695613425415229689008359332366717276967371577256755456008706380760607574670820604248868206619555705051400842060867484462959082641827980409540557814234894058152693214365816701319398322236288213798358258623917945515203069947432317100592864879834647392591246946480283553510924409859656210052098401509608072811115456010755489729157666923491720615103463205451617774068263581540645368371490419485590516903493058328653763996869821263542722696273710872068226416603727529276655946197395396676182264756213613961414895138529741040238534213240477963033461390110741230773042600775892431043206494298318193637376602791775939203109920362169590909645949344124483641965698354649402412605625631325211795619577195017943455743260432421653730161168916584876030791398977955183344447864926490435161959069108977471532004422507325246699990547504339856252424428284456252083135864969953194503981215610488760316409790569239771228984893475271466234587148304270189836824360112086993577226947722116549934078194773446575164996010460934845874650292234512484557025253372813759927292581482511543359977839609135893295753288126976289504733713756235741846351224998412003624359609967825672003830586091349929996964746492515694284214330185436209978649404648353181620601474032979995139980109006382154394864814162321797950069331046904100516529571501472253934796900154305922771619792289229757925349560742649994106987749724847411694687212926782217758171394881352253834301453940505819640072087937711816381801247551097983374004140532218091091048526888981543436892370763034901593148688478492251426773709560933151193735140731113450950011830034565688183646235385384016327671213847485772426918384920962258863417442885511978883175517744052229616344351803065597047058468451463588490165582273816160168345446603205476488208785895889463879081184463306434225799951997734170607834259583682516675735725568999506871067804370647146048992646824489096399083532608247590702279829424181766913971141193813532197798859556913825182096320742722145580803637803491744579120127240036631082746230787543850778633871597493445717763763161029331008723712243077702330310950486698671907443090333282112870195801914933813925596886276228971639413561661901602292000279681627559815402202463113845493387073207371503873345601065042529633546482527841479290209951896033954636755515216049723314852260327405595342525464148839523123641132698465870379389413741372952704351636282335993285353080679333538431769971565670764956541551141709634226935416526996071001446849503976175531980862748138866341052979761042082944886274268154058949067907950860582041979906850457374546121828295414240111401097814658643465389099473243043425033589982761089177193569055474149310426141671452931775017187289598618741871250104053174896232178334374593773500843044260628189810815463492272284169406188258083988489642575159836286785685923185150191327488621081852220133475777340873507305196894757741391669566114137189521198888270115088472703417169738262308718267148656160194012419285871268517243613720110470043953583282872256374138483723660891589527583422922006794891059123238186216230966029118392794184409765564278877929295020289560621856147329410444959175655364250637853500499688750599548995522676277201816269350593259439610776631341105066810563184248218368635540899072406328212668622834221453227452019832131222723516836028584001966800289875167409937834289389341805019797776314734465775027339220650022992027971573110737262138879267773832361443324502424183489910912523602040305039768907660148114747295323334104743149740634785512484023523517954134516900781805465804761009577764105404163788380710826856754369444887024876422589775067568464134347973335756026837496371670221893038389980112213376923085959102270137985728066931994824689292181629590566376005745890675318113677514160157778235646857889778711951203558302347563382378732312621676785490422178954815918693547008702068370912175697661243627390467640620556667635099621183764546097810536061034337123022369558602705164552997742963509379639410305653555209223411758576745684660195099583268319794506246588337305075193353581405225855305324393859379454816609696067418002258905534994408633534239630054769186788751925897356685470459063890584765641265528654912431675537423976842967271045858016397711051442106089429791994538596818316431978731768443347353262542006738862682851129381954397924869714909692354721414496933198121556611819958870340302518058805459910637986696556702643520085985099827304282581729553606305656143430750837429220811132801372277176486195411553164109913892353254289167488316932115565446135849009280846510268730778560670215733028552162951447091057753816537018731907140696811829962308487442479791598576869896440112890867934769754786165491052906891839954302329372834921365811346405214623614396542545545673194419752629397498821514389160708796512600006326812923666561202304645492172958319217932105510490016677596393548555860262198481222523629438281756015085473336975378058329918524372145198111091117666037755878705703366422549324040536357057198324046678563028244972123865665329781854157633932059676165186655352462975168421208552382770570465217979820933463105296943376065479833214933861425846355646384471994580104879005101958741910859373614702427432139338296159113737302434852792529840657125298300536539106781910606333216480757137566565260344683742898889488148089743881459548344817997265674033757609611259527633039635034831836388314066746481115473885468226225697293501587763908260225447934007390849824232775736237075136839762151457812112948885957587772481343754185330641960806170360548007704781968729149112549889726339460218254747150374975122759977516314880518289236126212693867007759969732384024333362095624923888082460623328530178484976672287711286442660893031768968834931303719179663273979213505064616738811627553535247604889495633631693489961718650006545925687578837454852057494867459899065371488562320303967531275140051206881735283507538480519292819040981160082564004956190876575678958170669793496605263189987663767831928755761606003125164172010054006523358736006860370444902948229152370954224438762181245337841258361582455850108272086167781788004597718734551951271855185380470674658964175318323127161508935719197558980494207712625547049635597182923423661764777120171089006133458577112200110370084236212416605895771676442433276488302217519284414866147891607714892347132724310970425415760851290249614353774027205571841390785069540360931871044010084079651938936089364137938827436215282554557433899016226354248125581296647689541722845463013472454301346813654879096255242842208450295691923893776387015447315262555209336771052295378340467063329520107575027517336592054120822451196865827983489121815557825483224707861231913384678278341170365234883916306270878887970143737946052936821109610675722594177402863412421340596765445127953851891433618973654269134461462304889988090247723226871453888211737319783855748543340562731305487693168541011194205811450842621523158606939086559070073133226425153089117749553913590098853293602746642577597499495298494313194980735376150764892030455359718166064378036242395405045216287980303090954834158903441474672303362848321696434462609269280564902373125772923672307639850201874098564890262292618548119507340958864644457008105978550596326853832345132343616200032878009522496890575114337508053372537755531731921290714274259248944977670215397667040527246191900562758926264313105517193505242514853245862777773939638808681542422483700058848598778596826953376712150233128282956621250473785745070144217603552220210028314563158732829585155938672688769719323608372251511143592386696448327561902180987581305874524150503644125975407303883222810011842873191546323839098171756544329634545633240153078978156674606896976144936901398040712656453290804273204930252698491506252630928790610829330308979049354293590306141733537824925056691199526192256055423730025841113563029347592649813470441140479730390794539655607308813285303167635693851872122243225619933985887334346072681993800832378637556113933139754456989110474686540186334203357052305188080161767195244119377135675936591887822715858535737851376984078888215717164375698468087544685908405914197717227170831640718618988203147340761527160886347269389564560120430711842015215871109525158235275053708623452094944933623928469144937013201518625836249766335807205953752399942615767551149856867883918292366740512916124360429600593095663702208296893190278416657214199533379829739893590063514418619284357405698890844058761186906615015630982320053513079405149495534526102572616957236474683584394668393272641077228947134794720696040627818807890053463322546740250726558180000789950130752898886827564159783623265925499165432350765540939096412242694159066322349425411221976681765515468075807759712449322799758967820365456802985645341013450075570044395600998450837266618257718306260182336254604352641613453962556504490596711896073637567404483299149355040506554112206984138938892744317222470402740986603982378383185120575596924357497407405504491013608301294491249994531931505687264547614168242474935162775254781462699751220152072765301107829333376828890055693156086471994498178588858885244787897754008912228087553583657207842606515115781950662499579019459882958877866175451572250313688765132193353494242760601799412959158558950363943871446775148939592735198434388442785932084748483191162693164999983101671387143617534569167653401548942506636406424591537719314022433751523585579419791412919116463365801562903719218178590971438195294352759320986259758721557225287049811282847066536214822410247813746078595343394494915039370692951356985762133307916266556768971553840376880154351861260281912596769775318747137065167592752565163064411641509643290478710206049924472100733949974958495780962543436930582552592653576657422494357909307709647532367527463488264438387496478418682142920884489958112161737085768524387950579968887930236802625788624873966500186496611946320286018904593418801945897599553771470208215828644315728384778813521245050821888465227941945691783629792903414427163170609214977329266237939387767454798463239942633586008044822844512576649522118099239565484991744194308576534783787965120801074265607584754933004645540687959903833022910111246498083525327021016508772765589581845121937688279513385518810053039522420488382319291602652263968758519751951093255252474442041689162505783306670173874313646944370720992819187734673495488735592841132973382464652997191321722930760321826183132994442079905964897899652103963641825868999073208212773616201354087039330511131645219354826691062374571336996373447809234930136164432493930496997586263390449311676818431190930755910344738897124366393304612913280857933757633966061775353110080472684926951813208538697628303938519560573832629688570078426515065916939738729015479171021994995199679966396094700655247385452876994980811839876959570534622443299163808903711432330161672527830151331670504913456823212122726796213820374143209914269985225069812358573205518517528176360350588851713882924083076997310058334076626143236918732475218540952553241773272662090719380511498270539421945942269297042960709500658135606847063585148826799708995262289186201444954518607952087157370999656853384273899230643813867564936447019325311210795801801930857593125223458942584138292523325359908583635776308007119241204709553697466037150353821451908278031592403591173217204268075572236060937445246606289955055641860632275680060323908198535167268993756185951225857026015371264580634889863059553396442633680107217728872998184095620189210838259199122885393237242458970420164625584085583617458401113534235659129800689093261176702727330656735751341608345458852476530409124349147339196555636107757599911006716227240559213880335877580776655668349176209083310977185550298698315829674754208265692143753763853719426717846903952159240429184796232180441039112067123324450895740864155148214927028240159445313439446184440082765274944349456743581110880025051225980652697232969262407226206864266293928070188819151382307712078408647762996000242278452141035249684999999933824800298689528567141701708871801462288850464707549197013936098067203150212647502638815070022669915360102331379731837012874878208420529870880374057086019226226511386611159429445567386566898102562758521483383219095465528526338243263586128912269338048535745547657058662770957231211367433542655276475326302329886858106900807927549180024508535922622053621046543930505766495792438064716694820847264643164389111678025229794201407766594928239522164621458612735507763170896375637676736333087957184797158128899485691028597495471615169648044000551460386735625447905400681648153931189326018419127365593180208448768126908550365060103534991793998357238091611278774113698380527655826348343965622496005379192199165735058372629864599216257381091868785567079326685174862109901674596014926658393160714022795347045170769110298160955309602117913214053854032863444965358275873396904212587397299529337851714645933244545583209756939613656853827645794147565862549556362920567109438528966490361424792321069146731935859462967915893291434340189561788236462020183635936643675486281524143888556460926633876879054231339263637786390285196718197551355948269843906202718895210986769749277222786851157008445694820088120268508240554618684587916631115726046820504042850433563562810764435188530271803396313090331789170888202901523112068009953228903860096370643664228453598017678707308166445259883053612201597212018227484491945673574203250742630098430879951540092650692561639916853523896031637893131468700011499354950680694034787044311881560235412173950647456303383791124857719778064652718902058510376048049784336117891250548962469785335518871283564338461338315678801551988935703845825684034123563942409409450608253800491920266772204272519087105355804779690482969699977577642096047857618155962728399878150467449846012236903221135101569575219946218993194428053977800801612063510874124153337640742985023798709932180625653477578637978528719832582023442161195269756393298795599559209369538460182967404680657632344513943432980833216010060188851506542683848702210183630018611865778006646472519673545568491725413675460608537853478347447167961675091256493710147523485468477172852694865813205119849401330624732796953765389200304631021981615992795833705434632813091776533121925411478385820819391746010042797086199233861119668515542976971676626717905079766624347242576587584534760902688672886838400638569255476027983527877255218901521764688015043484878328156012258103099947714413260740377850352733890527344590088388641786886766855093616139271344605085926748792780906638023342789527215642627153596638908192875567231054525121584120804837050609970478848979645311210904683721175228742572285916362864992245428927252406647241381674389941732342455890569145442811457942644455636029189758651399422316954701409647460590543602641413500006332963931149141622892990567263985026355609729334528988068093970867791072140523417261658927655931395267189204861415028982060953858283532341204036982171194752590011420563061723778708393734298592427753937402697963109121629218930073706411935803114825466080867932536806021748148066452972985060363290267095710914093580812154731580354660398831457309543449781306929642781056923315710659297157954034538567216264086900435707849983673561245305836034065491613599274755654395368450306344511724165664571853655640888877856172672781106109169380585462980320217643779700569061917034345109092098997322587021705366676283292362645556448758058571749385078452690099390921434542176231539493127605106418346094778880319033500628559781819796464245736011458474786689889602511975210796024324357486457628728104307060567464078792822415243233385856444419561731774451776411731286934761773988075893192732577168705617301959345194022719830553035027830614836209735408517146255078887926974065515625668279797793632759097892391945223176289227442263863310605822478957743564081924801360003271680409582841923303837868874531622529524024762890853808480690154109129899967367686855994158498509882520923193097155739787465448611360426133352452207172618263081593247469260264496592188289954346798384857517575928793354203992344104446639668761740797353170371596655909212103410266410609473928442111784840092253402674966424651376225411330530648881580475719296840232698589487896359108889622188838263999106787521614991804312921697489856956984887722352877507319619348463613849349930855911171166169365359698869114745563474495705976008960255314957922508317811748385337707569259493222996174231586093787151117005246748105353570078290772799890636225788186607829878491603417564565893327534931870651365989744441254187539318048043925728408956308791702837620190808476252842994391105170863608126913920209509950653785232437091277280519858704925684466750051604107796763086765796565421470816223548734359772407703686279719098462521490379560778681423644122598929246145599491334967492371945530359971602569076226514837663651287256761032276123806295493237075616385479128397277789133412133019269889719849356129439414082095414395551511933427092799966189483313681103428002038352017688317464803387424003736887068914376429336092031265056787865813261594018157302738962704834521332767267791423552322093299471049983008490868039186137259394444886223622859388846167167109143225115514964639611537522183184670694280007936134130369022977968200492979533040983804552496209935807775661165247917477944738064448758964328309833057721728422543190771488926346377996640768678581395428757551046175760207885745229045314757236024296756483103687499346892840753864624294821497103662094829950826989055155639145199216062306363317121619525904888911545461299719156655826374782555049425139936124102553576079543064118299494632697922775906650903226137339832830597841014630533633385341681160189242195505002890880093346912804796584361071883074771432218573419945061316100282658136132864980883154805808180353038735824847408080667530884193834293245991474802519681248863360763988691652071414587283295429866638984976763909055079873545362712811211652274543503235656965394829345090185295797711727992448728828313980981548536279112231907735569832326899682385331906464075754237437133532042145212573924405047928519075895280135349677971840869687875644027017713145221647371466671698996058850201233120278746069325443290486292933517862500968714797464044877050596377098532276727029323394024434282028253624449717599712623673764400767428647724697118928161910063022203257897818163336848528401312204039748114631292054317914690393809842326140240536843782267499332519213762605640164413150498535779373212260040982295139074048601859846979471046778408906020642164653899173008672866374132432412456330042380959760345003772674579679586744497150300845712898503452470234197136654595365172754450978538575093544359789000290383062597996363117103702875844670848713512347160502464436686500021122705355957435833279874730972045468815287964948245643920802137457008082626751218584740626787006604441613881389739278045567715849266919685087429591350703338551402684765694865472841119774727836628643504398024271297633943882808016592102754757886069589876915601834903418175584711811249646322609970563720631181381594378803986852166217788348500205571792800397442541263001387740527416897781817139241833612482996821953060514164431442989016161550795478728597503356506895636494359831108798485894149919817568747212459881032857843570124971102824852760933384832302733924559858799457901031724587440560253394038362065974723779848915755329239191033459308363587514359555087411852843718075391656947626281052344203426728026417506087455020010343488981515937744810103932188534065722604799326143628858605171365399685299060447372974357091212070998953711495932867101127986375331630393207339728664633238205949743754254477043662838635572209528856485029745475378537904393135414346065630218615750801115718959074001113455689119683287164144770576279428465575973879591929663178859332980894677277805581991880918212672190207162278591325613223372390499860212415997822674135908138216289612640757112285980990127438587638097869632849997522062639494221134597227481115080798483470460771285185835086247185382579791847439501165077066840907091226362554653396440628262156089375642651664351005688232642792755164087902054681875601921436153190881968309741827772760125309660728181231144543553414625519218165206757506550953276950034159964362718683845540028931166993081567902599441225379441918541200245418551537925764347343494188558618034170130316058620446974021506316060241122942575947069794721981346385260583322887883469829269490285202523548882177959387973596890359426495115369038228354337104874992569089912137328012563140968488212375866453901821103132477483972977063959073626263767669069417897930503354683835302016910018868710013720115712840260534846001104484856371810976999115251000140123489390263714145120707793440481293378256526112839068724290689912570952832831828966252981859784469519138779874130072655067108561049519148413565466111109535305517922239071922223319004174454531241495107244682818131755586037088750659624704185378253539933853103333053341526916091384183990139273114580720676588620642634730473074973388893985839226370005936703299765394673231903931629715534861641169942661869117835052314029689163823875964199270308286161859700577629645518204166461326773933900633753321511380857575598945457729092581884881275230311025155548584210210191322592633049560701693235552194320301869617027120610870105092613144465497243501759547945704853563214386054838727925874592641435113414342208921523554430021004707233499954314035285080499977559222235830437991583189686014978783514609531137062710325286129769378565477210580900863996707810330319453371753368225611918011269904507378500293118918673132995130025254610564492413298547264628264037417194632507094858371006008700616690996615691631657994769317596097079710857505253961617149644408437455367665611836941955538324284943633019096298477609977483626034098185161760357139374422685542908899943396038906723397699806636178549601437882259693495436149586877028723406842210923964426152175038997311111599783197026322115493611643760172012239469633446739412395118404016697386324592407143204776996923121064300400361905120993240660857763448827178965806194268026244214197310176970737970046497441549243642054023645109847757147802996741538543380163525366778841116444571810957489127851964324247185328427842540081110422009859412718479990267304042784756302321341994776007378838887608131096891637989195107114052710197414843673385542860528417912398267944259699535757546839792185441799909248290217065564492476661761110222795587358428301792473160334143269379930951469567445676077312183540459605839686160556016303303592414035452627712064830880123201265572807292626652747857466362107013031386387640979061966008466421809535937443897103212290136254079037624408516711314864807359990239935225249189992584119679390229035751698589316264440467463016641044351635345693664500553376340059669579351363565835826084597473441079359613122593760920518723719893415898023117685352548098203478600091261228716043500660594844075797155791397726483389492516632806893283737472771540463933163566018043866540410425060657443428523823589416051483587401630390427383409476554273166378836827862709202860300909114201540981739944331175084039887837705579336897654622627985202049295973103008589685120216904112653530265060675653889069486485023906743364055508398812321158106702839325864280125921953297405218125471250590829507700838775592273605912951769914031381256969835738835988091689142138223621582781823691900954096283261199577519866555518882710599898237919138362924606060440242328569274771206125180094872829411398832568434890660008032785370664844733174989177817829473102461248528730298930030390662423004337965456039302697704229341276273953175154596270454026030750855247263971212003264680699320434095482948990935463539742828220393614622059315443939639354169315830435477824904077999328223783451849084608469899082674769531940568973591354279979909130608730267121215309684883635728730519900503047525000278056449655061444058739371432197658069525719014772693910266788033707473680492391412224753708061032040027285014044676263085519591327313651795658014680760195822765316446967868183053126322688642114854851282223319146558387840544126142719945250808218319846457605212886517359488271618321380030591341109850377556667962016754873690135813575884778582583106202588126938071018955692879818025377913641608315604525685400474387424240007222198434468739804127764673369347085254694207853394670070192825051987855381750080241610288673594949719096561481894145013614949436372479389273762913691159726246620041142225942099013292630201286138803383380774734939126654175983157385163114936196987007654558594816702704082149715325005252521338411351338901144162492094633791484825934149688386522350971845259229858665261549972810440500279684424766271615636210874452839049335592923105519864889420813246574678848492770943491921754771945895942382369311805826665509679797213004294601674976256931655466786145284514968519974025157903774080108417248732239852311101850299795586603524656077527869644744461863882704699630574084856233107836815890109616649088378137231003407867445920429219937161861595706453676841330634826911318056004749051275152574977208623532967183520822662403080059915453699552324797423650648383440012715992213506386680058474887074154900087009648981162616824834868651141848071701803308959076680364503025130500332256154373854161481114048670111593994520697171440601903094305333548107373007187554698382096910118901363504572546636208385435894745360444242630000007774091809188416397002615843101380831032054284109586722260352118636835845603433191003983937063406905252723105501984480711669130773985091842529014160600115471427596496440983728540113536275486165964772956891616588263902233032644487521669894198346531115616302063843687978202992395997642042482887395660472557769399853286930748838129421376107608078379051677635375814594157706558299476860114689045149766490216064054666702654432815421122450438003074448336073979155449271546604423158842467063177445662211152058882461362560677152390531350879910212565838908007175462053114159486078724738424331526170639709254331769231069698531384533293903454948344032496985575062175115694901234970378386365422760345230866572573571304117545917827230343745609571583331411339742939490887589287171894226877644586150034019921391101224322082940920562766814823101294342544786253372781663101853719043742315279567392449351571195879474857282138540860673716426693405175973929879334639211115090883079439919668387412524496677954976284730947452741991822471315440754269107911041195113036727940014558107512260220140555543879620895928451600022229838644551853461059648187852169898958060879640797628767607900932784262618737014501976079950859135906689925838916136056176498898746768578634989156996369519216895297092997278006203260302813913974845345773037410050161391923379778170172169882112827831991821993595517176030531615153872257347655914262571871844479932791206706820423235511859917888183705446569749618931402045243254374112954867048276850991801885145294228420754055374366295246849050261212795019351927245076886352860129010208226300778150925196496967041121031007937796953467823853655581322088857559154581167153038445780725814849823727501307744884040827775723713435755894142607700196196162241031782720384562173841201592664778937114797250605785384890990507035559684884746086883642942452835438934242725404790576163487209624346324102760295416610235860818428370598262977140190866619680527846177089010683162431935169097222509621627394364962746198281651530304536433338010991361930917506719859314311825002988168091695769517839678365377162364133114945151301571300636017705584131636087694255387180669762089571592588958411105366782467948370303673140789232000129979432843892544119877210393609665848972399211025369194737674600339149656780926191821631599771540524657249137314892943013581161849903416322516544573176477750559730790374432234106297846218886654532851921620982665546093445201332953303488614641276993275173929052023647470590205069550353356794579285851675552312568673729915721662166810505546648941492251341227722010528644949321080473428602672265412846507487698716458994099421420368515672289105758811539829870668218355759062162060728430149166111293511925033730047630072952845370430891437773128006861728222046416309224516133567948123584289073763749554896454774118088454720809379167269063917867200050411077615182367057222329383727357629431585253793131670809585019030362672934096723234526461231883448486753100029989392817607617995147814168451408813123701261876471531984235218566791241969502236210358507821980289919030228172531616310949928514112223146270625647973811647055053873363920130164070133557643457837381347564834124400963897638063168140711160669230053811120302840782006971851639263767701993661170112461324284841798053421518549929182121060251129790733012431118190869795305693357612852629978896078923335712780001145165121108068528092038754922458653286341044551551205908841808115379131289422659502857392650143254006812572635716550310971785065075322563926009797869156655138220402721884337711740451315407725616102234418402452633601799497255141082793509587800205557598591368680167369897815077111522926778125240041416162976146915345526504577286680078304511602355773749181324812656878492741986139757878548835241308680885552769229350643871153186579863661869129084140698359146158430442067425073333050320281006494471518201597133641296776277963721324678813956476568809653627142701125203230689644867857774087044364584676643767460363924235084766476547276638210492999250637999782568992986377678889863296328252315003816755820328339189897633716824042076786597109189247333707573602659726877949555693626839504817833532543595124031871905154856156804166263219027517725056904242660381922115149656599307982938417851666452992136287753195402650289298881269457323257925518525255775781281212781699448278620424459322849405145806183451128050004341384714073689366818575584130316781114187712092404983899302771685273669109476997035297050117354750812790430371807322882435680319016936628315390825257553604441293947165347954964757035344592904766742379516143737859585437684213452553756137591156124124231157243199690995229894077537203503139723169713188200300493072420362071522278033543457726523268479073637444701752303937936229964590700777126984830930107237914807504640161725939652883028123966334828018201314576599339732121067515721991656503819420127431102279158715961387785717777271230358083463125753379771284074740286304381069139145536293834085256429323867050450887210982771013355187878431018642459664772406859589034162561861534409237109381907030289390069131450050761889154759977833208275422953517488011402490707563031333890484413528255614868459486074404499105744403778975079079323358206744671753474771295594747643073965491291242558554015167250840939004935353227128024250640714375775470801495032600574142258755776248709654661843792185061426244008756467172359208194113159376072081318695929554119435736191992020368421323349903201574632074565256184580292165751614521214257475231290886566806390097670108945685565371878518447166410560877470713049470299043534198711635506379171741500531751073461572150116860655979355810064588845498227427175365966198893286857305863069144933564378338490152130668307301921245553732608044802638124692233711552814392875119301203775587474252059296674773597963978488674411011878915684596283129082111760325412303608043759963668879506113682466437033471302448691722917287760470227223689890929714726919502751354977954884592180220676720722359368256159997311262077486261567085793701795288739396956827371269129978575845044637207019771479427717329313683923411237284523555667134901252310653721090176059890557832851266448957235298107951751795135502185641824585263786494203602648846469735360793827558348994644756311028257278909529284337878246673737053969288473768470278569976889181472821022965105501558746802982169676663993826525642004803710474403255573065707795845955688094600660571341693622164056946788458381000532333717531071519181695661582552130541288887344726936454582910738312524030656427555210738843982173777662643228431749776709376554020829959159088679050168694091604698991373166457642989227709241527904555349309902927112387303724621902846989065165515744913607075215444877487510340069180186395993883547213301018911132454658104167689573349177530431719037645948411749785341060732105483226223235603475632296717912746035336302349664364122599100423649171087935876514809347582438108683609782504339445060171494953360297127002843016156133792589325661931871880148375364582938912740776354406033077502293112655561711803931005800624551160688658171448557699527796038459084446239236892768097679493201893981516155032071211555721559211827860998693769303828162182279669972173910887572136287064479860810982049391218887514356803618806065820065533979901487124572644494783186533477161786199251731539986316314163447431824750242182609874673655521201592360820594781150608030992830375880577460046384680566051552192754050726947086126839722593654453030666980356715350362886483806132076738313339732628626957431906800762908008185047351021271613282626358971553237735358349922582506454743030792775579148679920545412220520512195143966866826337768249037869635119084634759647169625371839670235146670985414888156304737802389818669306698268668040580438341634354092587891707916532575302838409986524124090983499359651526110380184942138472111751226883276923972710659278162835319731362384559282522339797630168963369205908956702807593656801125058161371255538307934763790253126526545196582912408625063625561344727387024840283246481831349525970073950116540019981631050326553227318585973002273687539734020225266451995080554060577054439755012324608132076861760032411884961120838191602772863582550353780798456603474507977651982377045906725698932535526880793197874856188351262332640953463253810134956462869725090902716740968580944512179549748721369973984959760923450096443204918630552540053746226852989271891714915772525474413183317105428068247059244278673846728738471186793253402373030156653561638389548876906884563744016709092172578529639436784545534363252798069994481188657737841285905226520454180690035019220666809554829833556232901653749281528131064847662455389131251879448051200390750380211526853413323546768280048358439009266493962563597948480123760071856409206904045627400507342179223946730278003551455284659375366740223597127035267826275204877686225897767464919524244160099086686110740075571227674108733200348277679333907073164762942021849012248040382100888231462669020511437959874622176784389623666217646061878219833851594995358898942794996257374796325461914179343070789031992139552603970636892089783862583592043167278834130966476040867168147170418124212721219741983730710047115670570425619999295419677074456807389919159012760949172398267041178294363349667345698529997928619857534986137485829098880075519028934775185635993232545004154315150370743072408020961772324881651764295006075670218819353681552865126935158155740888581280921255455599225299888507370181219345118490073853712608613266547980455405544048878737070211598408578573097772349440869286952660277619398785894526270613775282422610275649297766125513487541513798743986637218139580841468816808828152646742396367100213100291378416439546206025430858610351356463725665779617100459769483300584875187209033342960469096453136839214528250892752650663527973341001711855628061160345683876471549169873418473235029789987396451150355255723527714123649995373966737509067411337775933525093649267815087266870423187264479385963513869573202651440818903605214281036379329722205966380873619170115498788809770049158231170258719914508274183779460218000312044003778443934431980986250254120469372593080438930129612978728702814952425347699884895266807060893738664447437063657669284438975973714023342763599908782774549447044538845752439343013455147491426091480603588548301606632143839522821300010021837595456310671307026697289932675058684841329887383480130637106184948805815963098465825692153589289906261767917448447464669311589673655417861109467769151519748257615076813705119730471444379624243307131584154724658247007611759139336778951641338440287166502858157623703368387232863792951262064997915723869883378707251710068573045647262695432898141381403877484636183416556238850283100698010504859217402360345793509889270943787846733628250548418469067588491998515430648430540667735589384632331204190264616281469445029948694772238282381822784109738844534076729906811021943448668652636644674597318205868517892923304419650953710200071760362587451522026342853880963767624019202786186151379316928904123184402396403458555052562453021840948955500611556849767770105829606142817314466745388202531258299076312794155874038800624346349143812795430166739488142171070515593777697834921244761718947177618465847325407270334617997552838928386499432176787720202997113763772119799549261323684536434917212571415211002960211263774433046892284636883550911992172306912581778720174326179996916009224772231901585666509245823823593927420679364705641497863584136961784011793017417999299167937008515830026626865879105736125568648083370060590161664295398975512478626500333199972714638963297741981364222210061084195563009316752868903696604843251075457737538725920410550739987056478347760008222797280115587580946851475705942620975557024114950193481025864289752816269253393657414462091809186263169403293527935699997549040167005966051909995147975443804505199055478754342640383625595463851960858322934697107251172367631378704329363942792960775017439421977291105220890154297300542398639034944742750177832739092218611890982220110142024898526327328825348700104115158008708631282657693352109942436625399469942706018241821729329386127015756591344978695964652031685036527244654963250726708770599129573746842256396318890209790059152241662553990018949013368896722434649714553564829475793692412656737357093609254561933216971799832850085253185873134185284445478575932999691265801052822624196593569396458276923285248451915860940553556648824879326540413263254624727572681284134844331341031720661763415003611429062854736456943445485032934711336760262840230076856229781304878308574090970541983548733382893605953122091072798050461919926483806607181898212202519827897254025730297492354981041761438040862520435726533836437393471481802697711653390253667638309179232429952581405431060665857049084672640040709869797669594647397167739817851687088476008355225013916580544513807149285546191824842422879353145149913127008928523781214739582046625702794439340224400260404761470243554652304597417364687746146924654942960492377116030164189286819419536945962773912167300061266010684914937268111890885483286775647020618225130507062849434071214864119073783452816569789744164831880867240425818869762012087190662972731649063141302162903421228425677166681489114142932678509627183690227805621196881572707437997784098944099024520475798967157688079482977699751869773799744313255265560682915172076405439842320065480785721182585194795468800139330687156283421096358794575038981976941402733929891397324368234564419594078323574321533098141554187191952146484609356623457853215841016475364688439776843920514615183101329103505897361180744830897729024100288021435654566673566801738753951692696829300507975789090997788601740981277501099996011813276596264849736950703214695895307962498249344111925490572936961704998597377836282158183618100791043570329118775103195953039887892670906620885086740635601089461390069723990178519712263559319155452232763376872912182234251942432151055133509331568965327845737160924016377328117757077994329067707868449658870344525677725162222427842654479261356033564059800053016197855368732783765213698955589255518844583577572016756902960362719274347170990689457816444638872628453231705495747530527176633641696639201036205287105119896575848507021895640727817325925279578117499001468485598698741745469865977726426338774626987796440577451589806457776872294255372886210406203893008261423804000091586940972486723443692458486177255209067237897902806707854574365446121116277282236214254094726848471750682663457202473775036972100106351246607204395582813035503081416854006768759712354830653115273968321744588937202751536295910523448127590229857397721701668163913768387361707719063472873482835846745652028540136146425602972582695194347148769704509620038919917724484206677621736121090132150445979083952335293266679864422526178644282227327876723534930043619862563404788042729314384968739071344963502921372897753892424477067004935872817425755713257235260822242319408658410963149475464481874981392302151354318041490304143362435756043800258326090395870325565815544310447775812786134705448823722245920473342530483906942638602674480325549723754374454507757024289584779637897645626000352493963198627188959297364971274765567730756125377225073692754115548847854143248299903557907493058708030053785403655821967685550640061717864292645199370700203526091618158334083747826554458204973558678764672485657304225923695348293714334127083505797848946621214857342804415006158704877968130824399777781943466782479537665204792397275850162984626998420517267687678536764505715152696521119895445584208033946373373672958784069374103864790330483265408494761477555143285195484866701993640651281883325442668262331919301971825347079636348143325677537165883936687211841512004139850029012100060075751345311270635339853368203046887581679186175227915218357171118947447900592725224957404316843284547876748398226877355639715615613485180152143378502718551082224722635594326324739183347657081342958804322353291127289418895150154647670822074551412060653451078073797858420536789659260488082427071364937818121421606852805371071036098029203193683376031517477807448698680229876004966044776227008659761660344776746460294249718301197178840056587485719281135816224507525036000688801163474890334859452521649564094367517152358750099327706136374779881623295091614074400843531701398134422838003588063211363733426298157227749076762529010964389224891421076705838658434540401412011818847517864441111763380748339070657034466975979684201373894321908084976705951454537560219923271083555722621526405510355956607842866201032844263871000797146904228377419307750076072187849474999259873816587507410154531139959917365040109643806939967430388676901120687769117604931112338760872902703426868849462039549138577399684374874849869710515646177775745117426845058532884629879368876873944802716222770041174694696614909668202952617195674936581900133929797416375777757010090073106507887128873546445622292610285216425772822297357548026188171614402521869586950419522643764121886275246895308042717560981738542703112003483683738042363049887901504903790559191254491886157086883678427336606211952314073898774939438558680119665584507301639561223448504568588416836225803707123629271046305804304264171229847287146716522640713935996017185306966463800796124141220776223091373888055332824796662206496959716915406501169136414316525272980416979534474491747179748876944670885619590644905304740483843358206397878421013135228795069445600678827928379246757535190546382373111969159239558533750681555502173615569796299615660811132450705781355236502957658520052739204142481658194340480030845269392568601481364467510636936870072226566188161030301724418430070563397923589401398763673474019167820790881333351971920308828243280233675024679553977524604658332956021340800367070162949399663524523352705033666477707140208472305937812801447318392679618941094491292535370057906632679151531143384092439997390987016247708729372172450442276642479396770921200401781510773475326897751188157678666812810822858157819632301533393344032964026650202656196444141159969777359358969618484518318020762789365162887906175884110564703439305965327119069285469156540017336813213554179390029906166896615041385942476727402658691504112316358328141680392908883721034602331182286910206301896850143969106200621932957402512041286859519051973705363826018563448633145165964057682919573185476255860826825471281418762151825153016070336445011377965887931958906924154100932427726547872426276666020076500749190647733719962959430914074501224643172117832264134806966990811975961724675270584922631928752418838399385303091239502000512148822422154337226172815163845705329757197822521984192852888938656829818565755373367464894176050270012009243357397210045050974710211481311042343386956723472349448299067995788417245552713738283553120421642270507257055283666303997881917381920305635117987325489540151463173654678205817633905997325629442480542289355985126849851410184987268425102944210531572766517459842468413587907686537443585111266171407414542594142768332892948605695646855487474242304086193389292072225366242781461672107839759485104693425080040647139328124486423359651220545197285531442655465662442183177830318982948593251368434302810867428565853933801414428962315979742066984425873631223575553352216274515695816837971534190828211331788567279723333782097044866028916420025978133039375494385996510165334051635600723382152378385041865379842841149595612448734424730014599823267060790818301613385837433227398738091801223811771362550448904849294200812862932487523090717993846767044045475036963539879006181031650058451129938454287219128341421795565576844318162412710665507487919489791128562471021792721411989491011518033755680539967327051263419314346262480038777550514391815501860773620863309623285715194831217286948059189408705559678940470729560253001416494198058575893253768347164378366274393258052402591194551941242141724180300270696994922154965958637506806798338035338489710699952813521426263464401104437593531652189624302962614407103865467063728555059693881258079989203171869094359529968502054445843703543676720329573422050816123515154198479315634689915671461025157809080433298125311359554167939032501119135993581816626758169283286030735158850961579631422477190755869752486316685283070145306911636784576846107661149529451526140286232850486208310337841344519571174787095464471956007656613376237871294415217176923639712113555128226751249389936951957191420481339177429221218597771403656999861740909814387281254922698110422161274587017086285239948121248382844145090482079270688901822505408926702540487302897882342366832362679317438708621444158351032079811704928239958342129810525333298626664602581315191102931736914114680956878183079936755251717970814832048204596009678019091665095266048606691289487561778667798713434229347150634457483056860563843533481336336964734579677601879130708607359679817094439152943510040380230529297594811864190273548244889838461972218120890335767394655359743532558161472552704127467866299187051039139578947976930201124385532115654965686105784573247844346437979515713261702617443363421606705014543467228250597944560839750943394107146352370016683531671141564892138749110405867683854674908200925021716561611157957939683792970411536830262604653767640394776920662079732083923512856912251584932974431770507367658004809408820804279611235370633859153024719825381909143614339681873699952590930067864114675450480880403392375254013336152477229764936198192918611013970795548353775005274720351309809974521516648628993815384842241010705224503379504387034929621843907490564590555088438300340413547894948157872080561720241586032615729609579054861828032691470169446035414028768835020304819520704831860221836094110679683178699396581818570146999356081887680097210012302247037525491287830051844668574331519273655696404990499918998428683030003578916972710900002928797709739147430088374071380258066254249189864975240181073230724280135272510481624289976143831707232350768659778236154481814724802649031234742276825497554744740690959695422974427731302900080239462455644631570495563840917125433886789715016420265400401517794085314023399365835750883204862018286985377627904281828126221132319367567054566359441664056577695886033536005909646474379552648481079141999016517362891600950277141971133427831728100586986077874971969871439246334043253443056217485374091477479540692884120722229447058276368067188700964360335493768333972253206906403793267964618694838048992851971783628737997040699811112675289479877393741068669290238447531628489111235386317396698119365052724373640483673308255915999931746684263628016442971018706098346846713840081415869583961960605156525285888234288189138825474426781142720336882156851814835441323584282754628409540620030478075368004739283260495167563772491397480843595303786116267170340977756116387274764724516071628483427568542190130432362928596601458495833677636239101639203774698605710861848037878029510387838008107526593347042800700060173474306082266810288420950421215241864815552456962129540286635882330577596897811069771590788132158683506719853299259337820045148116672694293413526218099841271221467830910686276365809013014424780585478254000205357623997847133819254236488297034874240251285466705554272271593664579307269806811470999045252522671247216664949257253236731957881872810323402354031774928774509528905146330087417816545942628208186653116834205636142025340095271285051879679859588785815001660338009565821461927157095134354748880483285969578093731456625143815342314289658959184480020701238963054634773970360321177301476899467805551511412998922700206342806255166797144213458386924254948432008034548557090606848507479284249450774283949607673856530121571258427963772773687603396112921217193615165855067758843531928552323817833637555300492328921346357785606806805355146692311599199616463124694651967785370437182191143050034239137942204654612257344117169830156089487227567443654016566678432031031814320276022505836718881293819713622893650338889320758943945880885305039174092418604868839456017569768874651090490729912754599443560193964370554475090362537965451957128095246949970986076073477556454770290073011368326709409561026274109565668956541693869607740855822696655502849757719193807872493934361382027978379833465906529432160710602942385549098704231901611156671650211478553730418598690206189718183504287857329205309665813184330246740514469503610192434596184726875160154548894178205513635325077007274094358482123522162777894545191241560081360752730966499114448855313586899804686458846365795776116335394677215059272618206220495577898701323657525525052463210717595679612892652324468763485099968362886356719124363616331654377963535900582649823843411286658774803242377771031388813882295471371388811905700748476990347710403523498372681292165973901121727200540601620600717657344288497498972317281821852648382156205464675422319360746944156722043209580280057253242643693982211938828701006532844285232153569863218682323163765322147417391966165225676571293019920420955598109425522124645714892720011721578054515476931987459106445663800733466259700837764921689690424565458142226199687657969121910242034516622388963593129808538477502018781117107266854837248045889274371496901375023106718663530428556530637109544766961081880911945641821030993898104386230890439196345762089138031792145268514531278760043944823537251890448624434020508361012496394940913321414702454396495797345200182471464666816272946694299683211240402975523730981655363073154759911386029592100929491062790558629746984310950501425867073878861002215945016996298343426493203443523810204853162795286181428510959204643587372566855062830047104754828888632719998862765675209573591952734916909192461038484879912056305954746376474024797850786453160741192967391384237663314858382728179036816154802655331537305157755563501005294513390120085744747460270765883875262456232656868586409209309379883804499724082830038998789308735357887685575445307766645812200264452337241049853648047452262327511987226729209782811004540339103193395746517062816486715274164274763938616055972252627969160069012039077311973537207555490550089795710658561396772675884502792289247219729725449359312863051455010113831436535168722896359121880863729869939115400775374802930170522977492840438869743870219861323166034703840921004546118250939319307737465511497730711074608613348079676384919135677034732587710973169869283958548918461959269537504629290931322077668326360735279886102387412515899611711353135284496945515171851147429448383022989035559477753244949029745415082605747510251962317935691615703844054518615764392760261018665565417631523689102490658291184374949651781291977206597480773300677267665637638115228761462108730008458825918639586660914826329208821148914865638258770632217139483503232079098480638616145321295221187230449744129117286305535968763423662320850747800344335916727418823465731905713062019460578518955656069261201942486891423642565044411123781615605333054569741834962947843512410793945012553368981003735273325158423769959679178256792474026537204250368557338234221832052827523823909363980902326151476923668267836313865619153230375586123284697354207859870869073877713577884315080402544378505712300695115933076447257466065650940144272296259370502194714241466422254855337562066027650107747799989359643953749101258046703821537005681210683045583470157772422805923993175910742545855940007197309868116242231186721909328614760926179723168021266084755228277843851619867426491823324192040401774201691780026614774814280879298465619472988880184014449628252252606651829685355992921302865759223998574254322488399916774119592184911331049898303464738513998221860218537986569221037068604272289654640585030133313057880588632466674629582710641456736230261890862243793376488278298637977955370032403802075830631243832996451699437508532735894872979345102607428424873752541026723229327766188361016944393138712816582657833298498439582826613243733365978115314488147691213568616231364794834357573532797223952647609299374994466038281558435171990448531765481263472569032255458149589718019031816730508849037117858547594503453931439270943318099787976036167181183215574936612913341419106560042636511784233630333428069309926250633089671062378471064389001138366294144696604312345045695569418377248910912898719918426970897026030431217879848624595165840048994434460598709894916435694702414416607909508949846579386337500862885873630395763926072367964497730202853888153917029549402062771914437469209963662310590441440774493834539066495159967741610987064056843425106025183893862633918437897577013637096471760887581222876827364605826912528686392557758796076987980379487760250891054121613736248362130171442922710606340301223701776884148724333594287919080906693350280083291421149330612961763453144152999989750674139933392670817568326220892924469806654463682623730976475570579533316063180646025018915908267208755365744107728696613038055838191214118226743895013744291467652601922610303786681133656650412416285066543028418970416869957159435864178489025011242867943465053699074979935640024031136055726203521044984471712869612466972468017034552166676924056532614743584389501269605178890732961295461065534322994271083286704590559300033529001807341049364804586443121889671626058799261035657842158033360679910774203540552833361813889243437468984957796307097220447184482157242662843913565614443631822944376313418867584548933453058392001930128035191223610195986221969107636256957179333873066328701255314890263802775311421782044716082450762323126006093533665931634535403253586444675351064504293110983882045655324175211496260303197833874022622401530635462633863434967721085926155126303416293771467562134751299976511631872389129581568248674707643413083562490660730918436937728880252147633935648651526799517638259187191928674176451439974054982135246310025888883360070838896716401837883612490268149007439516063430051344917786463404310835215938675377953602450194362666420171792875239938767368041155789113924269494248545269573549008646094808369471029774475402170254666371810932477504924855667472235090467778072413049080928789101254373673724460732514333894473117970001200411886874204717290969349308059773724326771701047190964219783675289211599097841131470167217525829304739288295785467274263888878161713924601590552989654887651619036354459616781109331558174942020788587132536062391569834153627240170705740089778178856915304348471221595051862233040615027495603882464736693731679961276458323825147386510299734771222068802844285926939941502673375261777103949902874875682876675762630998428705247780180460284185033699612590000045299388842174430341900556424681508108869506610124604228417456314870159008940178758887754801075248536935535496674413201891547306657392892075751898882536233930642387153514089344362321568892708888537919841678496947689914305453121830208695952815034627985460267913282437496766254259954577739239430903552759762119939255134123396489374680282743914731888495905824361780521896436358547057639926239474599034155203926021097185156611653029979325414057454214154570761311532406181541120427464906129626923645694497713960701804254957556026683906504089851185524984085478037216612417557039323820143739728509812653333125167145434355794898156913798709697081357491669920016915141469309037201375949807098437217397987810752927131592547958662276623709449735583905199633450154556271350780137514106892223437545600004290134148075627861699607187450594137878200868296067456415453120895908727568689875193318455357865079408786656189650217945559298298716732117261086205899363493788992548079438933086949664991041946541559578422314714557577050050083507282353977249558037148461317746829829179056871714939830637247536437190851898097765243618944538833741784140142403984278827535344440618404937894258200335659710482947571710658685301860248091765327364740134419721031705243048583805828384407738796545495874623526608848634068534505852018272868997212099979339130765030014157009663751662858213540693310438235017902367788658131113306991175789198169827229033402356069547966365216614766541725428799966153155622064526854408645587115798593318902853861219274850784386930811093976050422008054817367607321180789735519284959335426483146627386882522152049577445661951091606377270066856005345850779757632177214358204313841582896331569270849357340460941731644454347457154279935704745919202104347839534029642088478011774067546391565471494912783527772480050248490215254818219756489036267894797114051299266932905359653609510059317987310024681806927099694484823010964914559189066173174545016559588457035895188917799489956020513102796178109719047205887392146793276440960046255797942435898407947647924479742054713101942685194233409048301870122498407462310739031883861034953941310291922099690217394691205577372049336085999839241168832049693834607101920122005827051707278194169246015974071894725570854823796273577563727098639006163161151747999888563838043033899725083539276328769282394921098350599202508552617859572748006635651048263138017861896586472148342167256220709494757522272662054401484177207489025014214526860179493535142418091109922664277988573459790806442501760826514531739534232122061819313968173925751917750126985360554817283004882728676929326657918031247809362554332620979830444202216367908324167965819710529337835941947573266408899363691321229697391549079253031711354913388818398447654817030901863484654589457969966888490960773292166786765134287290854786603638547648117310739002071642679664836423085404170443398154894362785186989206028469222514853292581228669697545551302426003902129562577094068383621256907320461002834596773477495698322347264184373090057020936599357157437150365334660229179773919323765557945146574343673631624244958008514552669858696216831321173954798182205935054631720624333044526624448063371453442387441322481150365247730338564278742321346866219582378343867130863633117857782626719231421787182041572206458850659514062344213376968222410707869837124485333066346487643849445338576582621827596971677857197794019851348864101578616031882118782093615423519183528584190018986726815591616650132442808491567313787975601977744318629492093447498480641599925779132633289697315513238473294711158701189013346821460149196690945011683623499676306320144922709924151166487732426782421405017056999427352114411353520219313246630920410156723611562481753457099425292772121461867089292303137121291405711099026247666762355442108517529213543346606096017737431348449758648166328110910756801186505507670382814957704747123074918945157183351496035254553316501436795187955753118201264801442099701135438680923928690846805113812897999323144306947188492378665976350263489207577723097746304828355506373291940828860529170931929698258178774030895105249401978561524172574257505532499097948613397537716156322100628243423681587138523662279855053759950344681358814316691212144535199808387112638701873056863355903027841870118439822475412937389840046218707831754497605630893682829760728780062156253688590287050588827626908633638794403153703810799272277568047755730899177616958785226849093368415431190998056799455239493328943774577933728320338070990289319414790473326556510618978320149657191037339913060727318704926075577508068738860738572251889983093947566187325508216743466934371104007373071405106755978087494950858182447821677940466816169760145929291422648271340523216323044666167474761499924194575557299959726364056304278984145162636099681213610321449882322412662780172337550277362280057246894872124214642429291987107782252462522731688908685626426675893995073906772102947996163304480334054741950340802934838005167462258462625347619965964232411345371793297723337432980585158318816691082179167162115729384078391577617152494920417443199409860316555475780280224189954466815688656089931717832521686224764861151605769353598074343455475528992419024879650064589627603495418555197866187354247435956983049659429912518317070257286730650379856884501051023642807066337389334047533295989275133820486522964792029013152431851346909617687778436833026265388865885700745547707453951225795194526805384163023263136303716399397383348072025633366857288846167660209979524642131631868477440333094664506048151256160509896774431527758390446010359231971185052658930761222243573063305179539428594051088848400015978606802281096553508592213703100179789180088793324146818892100411862464529504118480835612979026711073167050725313618538621384026614664019737371754406863831466170357408053908669176136664905810717248834693586878237883009460929341718277248142783169501017632043425359365298447376765135367513505692137738430660594377074259143523522123426722720562435288541614700861795192609344095541853504289559094264917167057175843087931112223358572464575878536840004132775678662243071481650474070062506867150020352332491964259493095706015475589229800002631407645447056887708296934885117164984280808876562152272960589354982371004828981530114887261765999911951742605205336096793696485928217638580853076586966588640711952415026886107932719963924020646143268096128638962552615517845199239100208020798194568754664661617745381869147246059954672089070874160589998511619558643345853355135680911450480781813396250292343646481345578642194668791189402273307176705609785864139923966995295396243542008600153722148913097410576644677858661758533896573267564314333458878924278045193892280981555618196933598700374707373842067693768855210637079305365879626270258071180889171684749198696994065952045262123540773995624267043957545684478948379288700127164395423547338122273313112013398389505947637108280874343230649525447575027575224823944585478495480738817899668212456747332994016345518100915668989923223290039293333167060967323941114818654067233172115733175601058965825436551202236439668278961286567954360191511752046671861544892768734358680933350105810511180003384410203629687213066483716808768119108691745184948854017315023926902710297896591879493896233187423631467215255041247439205247189248060566552206908094808432718783622721013204428974400086019645753225747878549165950993764189197914089584346702192714809860519322284854257791677200816058161969509650562348153495458784971903252512942697830555474609624950027789404028378471042495871890426072753731581418864365602046208175593126419691514065480910211074313996831328894502603160103828716769953200732446303268725058546923431113493684295313331109290236356242485806528640809151576069922636193601157927005365464833996011901066407769068170272641702779374779501639613976420631478407311234620451618445193502809617132863923751632870281591995080653859373874552139619195031284822692991102851391123796522342148033057502122747331131509489713695901379661236064917221438315443208569594088332262846529851605189529979879661456473253224808690676598676988108566084461190625935273046641829324611861592064820417608626640211351012921496087164765464857021091083046016819059279971549506553228007781913444675857617429337998503868029606144356686988141994881568815829966822912074395855415034789164570492570003721249559459245265889082658461653733661527203483028721172621386126082371843222387169883154006003439326797045311925113659728560783022450326446796786775336367934451216676510024732263744561342971351068166955878227494172784645004070921237526983402324638332401992457217738731523521281597675498888217787991277152549347022162114125405338364667301199529334631608760790733644929919572538296997152009658967496334236864453715762519671816064669310619533832579552084684661792826902070667300977513088960471051849352054835492716468550863321547043367342023042090962729504731811397058778108771762285726192156974218552642495645577125907827587683952163196420098340482434759345578926470463364068875583284537482651164236448023314151702629057825820895767223653618465584442340023838263250217063653901697151132035001741098773275093137037655582706344833006976006770853224778569077078409284256689888063960498893612404855707673711782384681376730652167611701679954383937103067798870788264584001497679424208147176384592824643648013384073968920754800673605566253455036730288054029219440732147493590805097404204539634881563023019775294699821166951087262219566699937574742987367646640148582786041391822803692805578864452656484672865037978071353105333346489742748139380103458785080926662378653804881545522435865859157841803410410242018551413416733923449570665514169336408843859249249700227104931882690174038746398561041845508599802472903387011175482427493610837114073471860566488529389329674126959915104639212732927856577155818976273331075008012863175055402889802549361517277136271538428330753565137947080694940940653658483376263160714020445425269442613995491355303632703913458622770835634134397690619096503394088129846669098675589853743886987134051070996320526734159578126522333661936908102364268953259922667604739861119890648816617660580249388526675540761930290883412179176993244090077215369633574485738141676463268179036330922003812838785419913670236870974031740203320932498496905116144267484690279853873553081952933791820043125070981062223712861446825444724691844429201760198527113708041281065428065493510365983160416238918117846663716835357769011314055444409762227163085573052909397980188636167842999603247499727797401543428183179474766319098643208965394622710320167866063256275721728416148702951587936052755629050521351088879180468831260320274025330368082215918878406594309229500719056881604582808803156116670537185952543900614221170003740497838030855282677571305360878592236802464544113369172994477778612292339473678886897206813251701335318933128838750208496211377538688577770279685386003857569867281819854631480669112080770212815552231799268431844493778152168567477680839785250229396365057040153404024134971005046383668994898968038028637581246139416573890309216160374251359962707518161747377253822010816284522208041332011670480639560429588900760531547622512653843071161350854481963253004496699565005932735180398873084867583389871372770506111964112483411179650246138092776109529991560229995419690540501833698452187936890321881794961409248322037627067402453910661247021970732559926868559286538582113405297961083328324317165427778834321976045077841966880364610670656874324127208013153116034882753904081297980777210215232288998257520333724396652058879754122015027317528378621796327468554939143603508995873587495283659190604902208808679348308324213470686349500405530471342625239366262900470111495815843713734583979502554109272903402671898656537818730012209123911704800583753380724031607545967461445005187836378307047527347239888170903899393196483698077767067587943278452434368064836390783263185325188694155989444559988711396413929742327085264877329800034282113123341372856843991820842142876881961108103785342670606139540822407147497519864517976549385567399643964221189519887738109214167295094041594993559071508359861322450196296412775497265756494627835519291206398600473141369175061898966976496941299736978690884906755882349592687515507765197311407893197223488732241944068572742786824867826174741247636341522584888745560551278030165427707505836050411958679571862768440848158166946431059498401404414166130691104961792264335249541926432793672172224735234797839598838429338992947545048648483433302923000413482916611232925398396808367490335113361422947011525113960916107466535318621270885304141907750940277113637686190883599390055240478194411583735169451773187645800207251195101159898852597463892055636608858083665598010048428143925976191986918073019849814614733993207537962934509428429080682263891193017644895161325593321512566687601633598207448698921989487060543522553184448516429388977822114195732610400722093599220781005439083939586201675401630412776062954843687144666176767889570413258196494426593312229160227919565658203552615633607607603626429731588078767852733336309372198263965525343087772501039762134871238701409957601708815191648123400510098815691667687408208180807168138884910594626791269115268573627748314588863429173063977678112747294011439885392720618548667801139807459428786095366922891564719450724095688014568142555030404360818226752008204164204753745964435392662560597846222134351085643586027415533117541204018237773399367509933722511910823900379131629146681196824794441602784691775242743472809592232447499267474844650750327378089695575645772767298568852684328975658164308840306941806910457489782302037691360764455517156582618454638659058718615988744326311208780014564809372878500158092714855271539418408806508406554615533639116542071699859640665659786585707901261875164234698755227723729369679668937211748671455827337314743617041340422683062329404201801345555432086212521416488303865909815851733789640539657540431778008919234916829322912054639226370936277846906582883274855784132928648157414017685514590622000150533693082659311403055235378241098986451833982620615557877135539246188430090985857448662703163162462233395169816775732107474568746939969206751151476336798798536019857348717214410907824297912147934018800472791886798071922786438457487432372666938312146027281152117832009715263488557243368336217480694150990548689109807937352335998798591639998709486158954998893122798162175634084367723476544592915242433200386833529807042763722991576525544892715556213914583168312569882456453230686478051371623371545040911332698964570115260447924531193155516181005744073527014115728576402759957915149967314893350432935155592211159780617648562473980976982383841134505026686626719252911490757873779182036702300740530586009529620351175368144403192027803084118337114235073349159808551927561375285338251285191530725655029346476590286808224290384529942216436105529036221249497326335811320781154476458713810166657286139857001193774304012751978492449938202963285900033589190514278524019799238141613255953951045914044937382828341448522678312028815646983846480514598381544867877565012279180008683501041352651651276733729836846507114764570930419315360327931965938317515602309319355787024021978684642471844449392708781768509064909243767874589673763185967646219269111644251434793431618063392088336235659707554395199458114538552416048099228730701213876826201901071235151301492248293239938637738369350478919177472557280402275778114296734014644205222240808475885267102172501547256009329641590869760433056151647213142184032283342118189961031322255397401318428505490271627951688228617382043022853686362335243402650469229306617876366517315187028918445138239446123359469253672957016976711326643961672698332557515895733415811432635460070113101187946105624787767862344874580790092182522291251831365660887160315993714551263205224624538283809294452460971612379824452718287912949038489861675517612093344157212526670597317530981587193476025804826621438717064607683019424877997838583402263192218175909065577766037283817188332169718661510354790254599059310840920529212509043485715098082187410377402983657242565064419300167638102584295904191414734353906901701462354490080408024112412239695297679516586272330001342265208611420257287019067327885231214467284849118861634190574100151355780022948692830530565518301068585881303509017414722934024846771554093371201832438880214392047369382381207084765485395066833675794299327011228313028669358646109819866670827502049720146870576794507623305109226013777927228163891832763048963622365436960623246619150211627978033064671621478343911799475685854950154626797298871492312601371977865342564947301045859260892883421315732949986844932775483905002852787951211129841755457343703573065508326017642320113016884117534511242886670777465416404652810208209555291459012444994944253231891665270337205166556737385880628092198112900425994385265801991908903521303670644772841556321197841311689391838172413554935325508162173024217557933361470766050119437311131734424300816035232328910092894011280346994436021028398843490343960402020383060169484096249114267647268791578889205953881658086000514861365226704595388641271395083409471853830120666067411562004778087851488417739796901860238136039618603157875263635243144405524440529499831717132653367076324658282108944900909231035608480072703067242635162906254837684417345301177854649590968887679064873845037344739844543964668602683982590731297448500356213931796934547219080230524932570239309207845476068760648861770639641675031039855039005863778299103768792696544222628236972780499300267221466404452742942185596553767304908372806898770644080543966596765287572041324723018650936434485378515012985301528777452630268007058138940476295575330001782103848281728755539705839127932394306887015307677813665917521946049427204874565487512811708101375361906911960412553698444266266529752494261933896637352252274731646506238943130988917053541685665883334746352305704330723758822969565403917460944363650051142549397845297485901027366274572298381929164550926637922853916494883518665737065284692340754758633415586003208359151219317349997992832440959598413601331340564804369808707348750069133056225715494397990415286746186384208563853908647674021207057129462088084694833052410051971114402498702299439262264316154645311025417044536851796858956976794890217412236186125371987250289236593275908290911063590605510184010138658820251443451993597803436431761595242242019839265297201052429763753029824503374684711998915079313592613156752825825690068226736997053141194626857965265667991894088043916595171563906472476832918402908594008024212093410787435130839223579529825065939308337145694287094698576102103168160452867887047500648739290066999201140411917727991239020930069598160261121839578386341140459387048989447157527993257660585598613963359810369946707081979027107040124220783103141691383084932927790654146063213170055911511631639441992906439438948628896123925238868008398296558676835791813866290301126893483496612616181721191793761155583919157146296674687139261480835320909538373292485405531059761315434473945561688274601246567235375374882785225417997254560897367981688805644190692042759598305703302985084991207123004081451110681413562541860700965309428730342633880527744133347526110124311735132737133830108487969307100319602286961860376018460165798426786764710746363821986665481369541412814644473946623108482869038098481917647732462107249960251723566178055504151887410157925865444835768748758989326583027490914361590223680480583583654326703112123775439035968463082359173688936962925621360175434643153657179422741625975567426130755389599444788497459986830944945886857048679210010278599755806791155951023587129390351494190679756229160801610690160155768652216914374256451450731520935575806482756602644875560131580228752345045217103604819888492307539622165836311592135178143228826703803653855350834238158685687890695278713911540432370452603108454097504299217690710336194638753126082330047732919306426884395760857372350430341498252471627515844846552147487907739596209864863654100600366693129449627220122670543015471052151033480365694769203484201399305889088237036859279085375106542605780158114411516117929172768687015253524231885858544707268179104769924368679643135727550175551473599654482274533747100786120045596718012847941956218547502344884691732700059840748605090389302787984109862496116848088839215549844927842106208111751525809188579381960308921881402852891368444488514098432996277796050649557273326301198719895633238806189705025353686892363323025452024047128234545767758213564681534164912150230257876364494588061782019425415505603684339499419359908006648266074540007103829696579759291105711300314508302590610336238370702075710576779004460008051014438031313558837627549664685132064110421297933078213636289856460121603140790949844215128508948263955358840396284300317864475323317472391359571099446703433662688170181293346820641214573397446041611634447309327664522501121863954145894861042200287763116932599528451851854584928646317997309816144284739959322273631104520989881665840416614155651620581022826744631350207932976306734548304616540182651379537483067910367315863567655262558436271596275624308193689672690880658601626205726618693452535443211754692304977210603846611733223564037282915159678584982511190021345717247194084561542778385056232565082125290786121231743443547946443292309150685118301064721950649248631203033450832331238290453226023042894186426816686638308554033568033949192016219730013559148971095600033280778018115393604956759790148743735655295555710925706989676674750196860034956018416515046364456983759823036717485306467864660986690552437009154212527194654762881862638910507666645373019582417341252684492521479805256594574299016236228714682029471720379570202467123240292986251627469758114199166128944524219816220182932712736634022878111504257368303879167630476923924488234529660454666275584120280164788292805750609286906839129485820397756234574448844529955148143839852755875887096905614808538108906871131431200274558250635578481654618816862630657794603188546229029106302653736345649909989227109187480731683578510416893704383349916132250438552060705702204970851341657937379926131333434178683504660181778673382402321080768518180705321872274069511159569704496181064575364519932114470981546391109380296932421959814428327483703028687428180674410465467799912330023606854280002991098949030928144266150522046587669335351222999413880619945206922462679878472900987093923133268794009129001452710910190788733117371892912566326242458635001437691989037527506970060556735417967965798300027553322478376260249076590160697006999403566826241459081859435755264701589776003645508745664053110767242074990722345118818566212092800888143937232876351602027005547351776799223516759516989569669392770566659686050783496278650123809875129286847647610545985492541582581434367973989236657504517458880162090361331656837578538804443037560119629219545529076275423373499046243042804836147633410988379503692290201589251159578160722830835315685407562905310060907567160341306557226605757969493353447986486749791382826997286618814848899796362981816954722726706205819035670837929132366215090159710488232326094680001565444108384407689579995516711331402841303324557164086906910874080979765460640684156551968210496100088234443567491052903305733936029063674993538576038308869552786192073937642205476850152706951133998474377006563253611877151555484427673539297237496474479412939815666708085020934032577914215325352833768917340943641159730307910246215197217557519649587261430191810708178191315081674967415389794988288638414844721866241754107458104622308372127179375148858951412502047385442530279126788666258864013269593511780079185574882335558112821000028799788735353387638240329258550427268920311379294562160276936094641799338098288407632778441400700777745363188392679663301604155718252275762274101417574850264519079466980201665328066843202193648527787303267722723399290267563880317362125472417354386219445153867533769886977667242137684907783422623443497262125013446681757588175046775997725383676105006159275124465755196753540889929147147897419077679253050736012440975188139553364403031295858335699315751417072798879329508972753425665597855289248661373185052705128781445089051886710337541213601872803854415821549420248547245094771681681719605626090720690384078568215944012397525841540680594385468077755708256798613781708493504122259475970067512733987781297009263112726458595235700695837451903675548277620798792822677051635730333202660248007681762632373253435017211982244106095799646217696290677658603519556430019526817721928396630816493956493178245555136847544843038787232360897918295632191881689046791053318216989212285966448797739759868353696327847248012587106635496979739922971884935794372473476114186787889030824196704008243484298403104535711278203742004604164156917159812815184148608059275951663179254118249246070466124827360125982232332325707824625978425330546824002472661722715033570801718386641862977112820977133994337165741251470462048643654598112131102468486956284207481245005990829717921257233402748960763739543030512803619538076958748565595432965589869021507934145363441321272718683958368726812348438340321974031324864977779282069107056472088304543961547863281900100623768208234257761061982480723350094199113053725396746336351703813751834822087495671988178788270459352711461226619371227017187612355852934147020209030801375367844830064564308833343795829959451318746160518457746712791357912757402333750915084406947983503225751800972092634180697547207263806466295563682459391077823619505535621038179364669582471682071122671484411552461229247428284299668042743321492394016236855448046290153334235040202441645981331199644773993748876783193635243039086267297661900744972481347420913768749698952861873527908404379736761607161906716326025251271902795889850758965657218759860493865061888160819844888893492370268071369615943614512419886510409230303625396272474119983128237589155556522797960933540789006451737332082263978128401886765760956705654183158688786944179465593612787537360181391999008789418416278486186918034985002610830394374199674254905214166473741044926171558433273458025871173821785757111217643759731984630695431981146119921960114959508913113179240298929508639020577633036541201266420915871095725236204288607604194566486835572137665023835351638298447944372694423617632426432782036855706888196687985991588306677510901922180557689281801136510651453590212284190726109875461350837819031108502505315646997700205038455575028111379225542672856234770018745474274302239157839716618306378031065361708710022211155817482963810078297652039624968588031391620429274862511302611646211061881024671398842513043062188192188429142655293648684614471152552629362038708226859345442501111052855866568129973392596045036953481745046430640373022897055647496994931133721540244729935527465992817472253338212914277408757320997090201573852092002464942349198394276124360074560865678889622154902717211764596078523277931208737156872456784593719262530250766728657557565515026903302320267765092545775505865817924981913923384403220285207121841312550559900074911766329523488837158461942941819007021362070494278177659794607945008226354703970246486495025905612778410912983715658572300081018358022872763948980670872770533435583277842589030624970963184613835785772776102918384023875387933121841090149067481825531303703567030355843925819555277823137330433990455112852528419960963463370741470952961496268682175868231144604662087689764641367882660934359510540589484565614227668364643624745868890536629335904543794212401126775509455024858853796046227899967594484340749436214561651396498059369058863432357187750541108901460705919585190301387937561504068979398884051583614474052699878159438064449171136392512891084303426839966001387403698240999677323939734931524317319916136009503292413438836025452146186811179737178618806816008840256172550277763795093089714998134586873485324340811258777899766186695225551533576696203085150762824511287021093771513494636319757785770063184883692032455215092795828556221330470887950914686472092413664572185361779599565576553320120411043146167736848443641890055832158607230152885024395824025350555795922101504780941516680126963556946779930462867179323217961560299301686126441610317619183227946975808532410384710395971848960391601973138717849024219118308721238798621866278698158765328105963162391702059596950606989839873912040889761579789975272177566697255607682715477504963730608093971161868184844078608724275747680254918285874518161276622710018170091540087061984874997139682039567948908779350648796668922926492610854022561826822412048486985098723336715090518811629489804998901227618587605065151044581136092305157934814521474901367145222799211770497506994145885207565279763851875345251026691400505656700808751812478895835365113889474110815193194449032302273738224457929528286717936734868306566158722515178603231409061172429725960309843519418986066819607266166873698444584481341561627850468936725654628316651122224650966454430111549979000750702121575650802121337476960894487273615967842245795519554831818957082285238808185006187104895111277188637711521780884413454445924581133300902977096210720307830446464871778596811388988677952529538297719911709671653964798574231437492230172925389537806126865437562486396328917792396519072174441628938930385053058222079433200889523431549217991680706658373970088972236422576970705361460087174653555420727118099042119503768797315988368393706751094051999500789305684010506453380804169331753940453851534890733084437042684705230057278032544618282658904786667803097120917933764180340634699667425550966172330140684898053834113984961689787935591540635376851026997246040915750516474994837519771422294858570653896919219845505896670522558643608528847713192415156415848373752915417640939269506446865151290025357751447207792839117695347156392303361049285344700809488033073583631334790406331245734856843155089150028347350574507078983308122513832173609604473544232899991263603348508378389347841950080355443371425566147128228258310571184864615556231004967848044993770692494567697820126748331387122502594574972475278930834769442439191964190199801956206956912878094970749767577970035572357628506262573032257935098292109572753175038652982153977412817987830541726746273074033730810279217222765339190549417371138485709947924485657637305114990887289368291401116275167363376486159147556829337110252155968381295058818344419205671165337498878446689101910094966316012532411911774925294804833093755987379142772462292659987670426568944652061391835364492320921630227380341337714325677562595516759342594596382340775055168804126241384967449332786261387817624324796628300172551909956969981852539250788516318618329960162968359006102147983334694179686808848863242481272280053637698636509515529828416964050997034422993335095976919827154643731863093149009389651865661769780996254692634336563599219392821210944376573991767578629994338667850168642695142736595319191966632104082718435039098724433870155383709648855071100520279713749708557962909473944075484818496417893711401680675939154640679321984821415248544045327240852458897545644737301959719606925062994718604105608525019953295024809387414144650582156521018994759549166635570323771958906393819303463518574089762776750538514186671378565822321549098702108359649931133486816962078077495816813190048555514756473414295902318182083667425138435075650245951872925813613702035121519250824700465965933043404643162508902857989532634825948290516506198084276661900928561431937174469525073962084663075783872746492405430913581164037755733751022564593081217371199391973618373053093102127047038611297051574848249209466166666856723159090589046494126244580548921947624034880559706202888999560571360860325163361516900723796301413276723168802749987025012294887520117160918605603385555723285986368046307002092925759530440702839621475838244638923628207759474054714351042484457922746114223944268754155801997390131117817638387018310555743971540403414869733592055968639826616896117751285185341442727802762917323213961678256229787655165197703921616806111108463257879140867523453701089460946112512286889271935076722667006497752652613606847966121159581854155530395639385651060156146097250269265945667186358432184719860513637681505806651334826451898356647331742911222267939268697561408973787864406917644518093083275997005866946781429055853669685636732522665814759623118418445998110286828849563213869436127726113254672544462099642831641319895732646079927803750441533451563002751242595268604847279775757587106782071175097795143385839763545978706906375302400734247694014465319091795203151559471330424192722968490691887643482232864985583308842550442704433663388569887168153781976715040173856751435884846141609178407218088653819267898374172081577909576012689756214955497532009912292430961685487152290811873330393823874080200097815946471820454006110124045059292904569865892484944788056259817106135709969895335523003564059928936493845273571844991397214615852896661591048850088862566582685600718614089017453652703954125253893443726759024970511231722266550453397364145739874008657429122228980096507602619759058707728983925609002280465574042254846658815361839984347194100337513830778880990246770911125236647021993196650622025316533461064573109108985456711516757644626173347259104785321060485833939487827434846085648159917755815407122309748989189502541444713790184089718608059592879322405297526523318563993202508037620977129856009025655845216127787014030973067521482224975049790633516192603400818621751784346950762127450132641494614041187413713655871555894633285114709017028019574054352465054307884874688279526168367448604606509780012385946180595875936843908371166420600737233008280473330778267351877266611345288256473161959069137973092837407690257850616757550252451177260962214118890926378298715031827126482116806387316746200422333634901254148800155756355404131901455914514205504363807124413165568366030361303625451699609528948498366910921772796050671864383838960019986013700566604627000668501777013706191534121580080569275934678133125068476598418458015255463068483003006120642360434811438652154405488341784908974050445311476686408076915981993965115794788788087108726921201779697883967417008530219675697895882961910662692109069587814422288373918980344412608929961489217336967709445812911301248664519311108879759353765069335192230351289404316767109505743589052390100196470358935795315527580946280837643786994125314235236385960426583217545356199607576534762147930783936730930883619864605820057900116983929591634910382472955694051466594555830539228049024661706641081346265337228705883861472324184425031776409733862752752799133952262277429517465726416066688396059144409221433610725928395435106476158715018239450670240296549106441927145653820580877396867824650987230518377899813596891777472809817616485414038941641109075637362488402492633192586196793769084485589407700035248706891351672422485388928278447545710124239336887608446271660147773380401513464520271502577291272096308224612845207319288209512892724594962915612825913784732100230621739080484902328921393918324608307723898828293533895891430010511734051034311584880107078899881566693212104263175972747395930074208516268328288375295886110553845036988682222307117336920164692675051228005886781470042106123106973434075491242679888930483679873940173464145525191206119734972010809354869760463289578611036454124754840395779234746458374027647178446285479692227009317596145620601636657560171506680434516213735067756130079994916231367664029967410731301503667038657154887836609464645511360558894595518047070525343393343622510507246731690533413550718367020154893473340222327951756768126617118369305390584857452055038232528624917753577863558996401188713614071129540856082024271504020006790031118768527847875199899855543415660984279362773393788892094486229367655504828067681554866774567190326466851748215849868272605749570173589247256898935935372477917438913825716098374139792912978441472659830879147095465781235431864294295368918789684288475180771461878054949719980180977917175362919652418386304148318516147916478318463941563273537582952368763324926713648716433928540135590537191337250823218043662596168499314516267914173461231307803964878394099100949085463937347695061733945512150390721906245830776508173551176643114033832614859734665837143836033923794403348309019521259717573041530691232864208474989901455638701782284626647633589479125605228495006580699911526808501707313093784815531826923528404936402686522755925169777029316531951358448190107642359995487390583420413858681672459678248012495398173888639476621544711206528511257490473877396547153020617036146682650787644661402206105137180610257894750513450770161957156673773791743207571882583206975733734228687751988811379715117708759099945399622966440129137669884732915840376155563574322899207590279702198879686655186681556439992228270216974661788005365823546468363528622249255526602173883869371455939291060650628137975965102942469036457904138129901246614535412376410539229059596009654739411579863140160143899521660067176679807174761015345800299662419846673990944840786084660142859851006046383649954519260251439017209567212810040947793869491966224973051059329181656251429723466626583202645350246154520873265847104123062365194713283009341821397573469985994187508510793906328715775268077117929899070388909127074710435196012862691448065090119844200524544897559349213018232604520502633071731259275422065272687416521842371092138239057429337019028678454850421311998039485581554845350742002258253195391770771573686554273182646552771942713040851750201805833083844962350444716815245603051963784840198080794293959903177231623358801777730276141991683600986390024581762651239675429794994653157830335206478655918679721139138267349273921415639879369134724522789623946001860891326712409812967017897180391864917683605336582075134384545834561689119254074015534166705566197041249387562093173304223401627215581906674099850965721467146923047716337379171920392444388177514105592943822647350078709357610422522375877967523698878977597417547522403148766231085700273510974990447389357742047856656209859852425867733286461898755502291136202466354358462967110317721981047026633567543449553670911118799278541838082710877116670590154117809365293650540376739625628265032217269463025707652739967782690583258383249673799942541309520573978091100764713682721581767516812627037283361961638009418300606303897321804141369368920134842472130224693130682115148330898210265361355684493282701345809699974147989249112999674571376960362883626097130885092381673571265703199121289432140501434140964256598630246777854969273533130748248248335616094926689203693568976511007650442819798722852262715110043169769389457667596046871955568940155990520186755484029191860072882512244040357658479383447297037330064831124260178690277774482770000991069190097106785118832890508609365406186169043170182660866836091855341506931182439854948984757703486328529396086200026017403249019483561426116878069067403653797396545066010693527239056084502990841187505382054772138042616710426717075826902996503672940178808008083470431195864859358938699290696557533314019591894927807880636464531822741893804865224017174591543863448385642326800208783488283473155964356100522607371914255099266789382871907590017184809934707429649606250607633655767547806545098112806540582367297470564429864348419212802073242365128323008856367337102210448660454295063969480762462327492095631796856338580732877811405429061223744219031133764011934520117312847697674477940370588799478094481530025092318594629598493324069267314099091539366364286335863409223855609269695617337088271445163286588399696474432065182434473760962702059887364159116428661888129800095642074527308203205500222509483964816905408713725853986347559387557934990246758346997876759071279520959669011863610232420142172611059123846305971754515019946572647356979790894254370475251784904233528585694847366543595020088922372573061160002636226202938720983788066867893516630847153391346856730703719692804633503513944921241924973231526502229729717850777207545415243614241634599503197308477142292809811211601895335514194697417354110330288794075296814841039261580482424193691702155814347465552361801190022851975571982736679802603227706204393562937115987929866415811327028764664041908255109140523095298220279296502817257511167640610018317245151533901246041954748031666684678993771072142215635217636845144490603747896397292692458781419937906712266498532566789183647435579408869631744725972063698526165295134653141225429090011040864278192685694984961440200999890478928519927613715177665584408143243644382362200953711247524102813691419370848734319311817151172220911890993892140978873319662677277949173904254581625943313473673673385359227073605074044883715357623741197405196794127015256906442603857790643250737975258716823150008575304919245551899449777255205574068695898183786486951010035832463978373296250831017021210611626225318469288033747673872397049842935726869021801979583379346516888862802390009448607897129604204603531920062113518460542865000576087455811617848782609102425578172205023937409804990333284475886375862606952688068924158438440135305700766906097002023711162773444130161195588072090490768922252094466074091447897152626609993693786032741110833710986894601346781043499477734729880961365734539469244422743611942125133501853145660295213636330436876381427625598935581734739827859583142807830440669002487702211076585725968801701116554632260837115684813484939559561208976411386019333752622790357524823779440631930879279537612760849161688368814073913540686486830959033305432012123005439710264278884668225770017830720345638954012331429672553769451997400996964992557198622937677860561621181230786128587951080953587357726079546559526521426674272376201603883287606905738385672054012078228445308388531880419716255291863610295522069113342838566737601840526918766950192257701901183994157850841762191593706787260295839613590930433636950962305259647924988120773115722735149014261134973123393187242890797037242925681905234368403616634266055979090009818688994365097193836546717787597461758702604249155120215307025984667438370115618891746974675548632843877393601191936323654408612386333866610197630892866969162460063980348568442572911541024174728358117086543812370582205104272964485050727621149441312658682892960830064197485549755108027169828784811879398522738660758542592191457033850678837804132297230887321561097125458489266667525160995783386372775960054621914252965403795570277660220519077995332102144062598631580319973911295502491029908560349053013646405108179101616606776407693371750910827117397045179215072293658150004599363607602834688839991620323665356828227888192591509404686610514105377119067272298983838690992145426248042974008046393731893645772618984341624289562873005790368498551869122474248247682804329326444012161122337740378734438530499100467769078618594556174859006395816790535101662692625037531384741595764455877413990947398267278304100206842808537028619564640397162970536093815256176353623546739182296575889540159566514754404202721139177598296482813275758938250786469795333835138469787143402646653051714000068540170571528909070261390687051458143397760384003963763391417630043396134219168252730780640455242216901561369663131547584501562433552614131504723229716043432330690664589000043473120789574767879790808653914295598171321538566865982268705104519955474244766816004978643107263180948064178127983956315444354375282842663954717029358786005573694976362237035731557632814766433020189862250647091410705502975365817680623950885805213167455105072970961925896266451225457277232051868914933116312160010100336866319470741578031207906054893435043640023277601869333971583180818270516120425052779414288113164347114970156183137738658530443121512605474398714181160660314947676850916823917876382958453140279036056962442172301574629802064144297732828060809838295930140825623392021430571853656210192796123911129243978869904569507242109224942525177758062450541496268556256434901166249581015662795779553309838078457974491670815253992894002016803917903324021733134896897427966935657047508107614939721688029985938836500607349059472788897458789276824317667129307333605701767218131302628309982966448917817826893435592275047699522299119541825337655861235252034790407039664008824289877708725939370964019532076894270948109899907566155100082313062699536499788106807815622431971360812728644309667249182980822387309870040551752292874325896838092218681562276691646707978565094861061143645962314619244103311059012534072269855594310381761854953690460313378651992950630639632896956123501671040558290697533796392262252542970002222160971991822023580575939602983014620897368461702117912014585313249752804306329634250935176182027877092108142403112760607831773775828485747916331278218450605251210335911757918940768379291829674101231820188739171505635713269272304881404193301380183889600220970313037316180292726721549488615861840008670961545797506302196433156542006694678473959627407161309246845490806334499488201882162712686692201200903304255429712871781072026711724098404977181149740085539096148093921611484410151482289702710615787709118204578143423029541522679354321726331784788838078390780722163451108298529896745365400314740490732078675256287684812844543258687050482542122849795625857733058380487897567995374088304005525653402573314302395678048501087692953916194858023106225978898750848354627052738365133688758994066430678819922784515271364513070755603692558361091269146414184361570237335865359310592124581894977714385628371235678126486284952353805178994641403728563740303061980871546795848881226141023819686429002589595402443430254637317256315380335624242066623192621514342895622380897044518236130052213471932586356782978004494443020328490044378472042492932723387671132467578052617779610700201057388831711078995691859612942943713785473849587017345613410279351277675714112798540859195017640568936256919349519107677993442413771434304891158868197191159155417955603098632033289498844852536222919991007128904460971567412831719160321640613016272049986926585875199372121994183573425573650193955837227509295508460590377218590035314491710165729429570558335378107526457223361364563663526705396577093908227221212527303512445300446686456183591242468556286087726998324337117485159487509268916663531530331473321838824096269860465492681407897786181393594269114130120363406084825807993921109943521648188524488659413884651807694857002788417677736643673343951848427610584114564664556345302678100916627401174366622222188914735413812521646177335657653076009886033863882002689917347851402067947971556801892651149108345253718970462787978630346652103466514440874013629123444214299380566791706004270601961497619469363071905747902148652052378781221126981257508818874496889561436019060649038894105764613776752931495070649231962803080340387977804536030184537419532218601554494303395655071950986862093530802206740980910217775439964629141246237304903545250348530257604319136224374147011551485787216750641682485841183644859777250555077827652221392257209273298822220273356474965437611917609633826120137182254606942389186670318888951587739860248830708037373156473104677155533992512673206386003938670885111705930276210649972545582962783545710875407868603177989826743254038366144068298177135695089387780650905504917493269754566982222380305558477469899937211950509768419654826726266908590056572660641954863866886545686211021105978999723596722611851983431884602428452918113063462032491255141233633276763525571358593445506915871422010969771926919881391956748461056381664050509637579327121123485249600475361055029464829615677547939632058133478912419329286386777185886543805163515571121671035526942022255864711409893491306589113944920171332430639714199014807118538051779605766805487741666137286387165600448445518128308131974907541558895750874924961159590819442904393026799291250883866052868002018374287200788238048277838886956861934573710695664967432821453817302712856787562875076433310030184387468925248861181145746666278766545516736632851740050590473879151942962276410367118211995381444492482794275252033225263526202051331534377954933064275766697938926311222650561773897219751272458398387238683548818233081691365404697830838707370156629975971817834198364098297806734407885413203908304389912816120642914858183650452787794982835259331052283677348173131795524414012098714630281000134432544231357349055575033229997019845928721432310223568258949602144922443876685566515044093283370451996340868251538460640836407855154537906608432046356594214565852103218173674850283886962534678419092971317031808963946680623941724218523220697296902044119511911665396264731153622412816523435229117741838203038975225051843574259507474340212157945986961470826478364876138847659933683216944162711882307052145735315226090534361103772047270709384408507503556478775681480541633876087268609152948171408865304629662918119286185301706598472572310469487823018339456850257951126053674014426438655425127900990921669867623530165972934868916562355962024843472385022268026611108503002794874629996400953970200942670109613119943526082853252676528578012515621516960671658767406447621475395985534182064633722543110100097397791975478443337787832302925179776689734024520264930347548163513380307796094770992512404820455011946285570601207899238245290427935995313902887002507789965271034245485724703513184355298494388174122374645288365165035264551586035435963110550665631559998028450704547612171409496575221540668695274728052093201076060740871256317700955857344882482831926545115363863326034476452585814290631349115385719369521613400037876483235886407573145906806282358410904404018367686299391836511594404213482611822933697085928514255726214437094985548719876474432612064063501371705699897060886518423273471931224147709969391404335628968616834412911537112224410308616000999606746795192627045779292262041445519593166778874978963875733834186619521998919596318790555364539707513961015734402866438582405249085521427122540770454337554796155598460196734378076688337107691541333065867691109161868637489308707964134039809491462925748566909270313593378260823498679160369144311988822346137680593900727344439097147741423223698774420401144495152135833420223744692914384192567552619568203559913492413469857363591500575581255247655520450378237177717970904427515005200542967889949342917555949874413199332026911512174162865836929564030503633694851439974220366846340976186249489035280206483662827489273372707266532300991717146825468259960102881867693862035997284782471490500968850957569328261783415709599894273319120113928902030335261480795813828131357610993581155048408158442255786975738115731949666317308012185598918921065360009017830251165286861814676999956411786229810355388108284759320883177383206460155755271091167914027770066330510113866626726391743826791318335924869714939511672042198495752585339018210558618302434848468822702095311729533935968327651800520968825396957122267162275880341953173663913297720593143442692989031421382554847519988337156859913491811885113489453240682584112963983746602956097085093054576473843535758201154881617801008639269715970006335779726767128121938279745958342195436996388818876024190191891510121803138184666779061610697104503640744993703525890447622041483013562376377982598785275886338218378892402660433865216970860255731562093930325000680229009543189944516257246835249904133479934710435575513668389519981195705492666177368127977791514323004985255844545814372258815428089159938995077388785703516393580509269181246131755516087562139325492418618886576076482764780578482410120084906719745168483122300681579868930693769562685314481816426444529115923422473498959920298577812496596781256121619882754026533375486492395766603756607012695860103761181744827518636330500223715264357231285282673762933793179179996550821724276224172398882478187832941212854461536195119686361198447167862347694024260944418073452460368470218461105136800228290574143236611572411340481633807417196459552684022622093005656115887740538240154443472444769595309679651958190683415816729235743567379945097390692849524919991937033272696026734383510944198042888668904185585399584997149448071607918703999407234166731186416310810026898576535086843745331427182649005763287457433503345121858062482346648105679921425826113388429816857760961660710189725186879034059925682307165112620949763693359034975719143206509180824740901400422847451818155519133595949183043772208563510260661858151044170678527009892404039820563370793057974600542167631660559366702643037432094900697307290224805299122945837284226903156340267955792430950436464996474946622903341647919251934400714805717221794568625905066737927538807374658997952252834796813076394344091077120648681274635363934797343556899838203305460237259755494408601667623958114913029772007038407967310864322920221665654307426635692707977702077104789867961531789546938603140601000438084211951556789420484725186511125533941505407511510101815301382881309029538158826452424561666536509466449618388476218966210532224584661558582563816568637898658644123605690728448188522532127650399706457679689751344903833107050456118916766468522821925355298309325179926677730541117739911691389354164591265679689983463014545800256465379110713822319234167884359936108876118683959148627229013432130532518719835169457858975299251371890780673061851025449551343267238470457904721530333873480233671056813250714438598718541816096180868293914317642352822642121885472039429132014436484428091632509663004368096058334608625938235905071469477211599238199288269109410801424067715275588038070237763034665842679839510078076147769969411116588743084346819120556405072766374136058906569746600381929618216079910624987068607078726594696408945853640468497779963659883674423561851317860079312305156712590821093151640836244189969972352593514819522842657812792663523969671123700597130884396117524278138958182536036238471641612265374634210108359915314680716402013915884378740838355064483861903904251707478988524895665924743934326268860353284516853737885824476124407896929232117213465977514993654511503835325141436748278008903376937718766951800322496757477342340435956887912396587504948213847345225516496553620590321863932643337982860938226957238796250374308741048638258874674228003330803258891115048720710102099156947358956649656148263336837517361086519402635858262106571880239599093386372743800861282364807352713886404171063284929338287992250313892894983572912534082743485631701481160414550435563281472148284627532695569286298190664490493812176379260865985386957043870211892070359336668769231059524914938403506271284569717624131994527879060267615311613075878980180283004796968707842944320608276736110847631317025577734808445077490260345457876889650587979600668751120819632434858388202289740865172524532034888296154395264424041691577382265381853828103031542828830507161006719879429342379567341959811628499857124066557376375146608170253541659667900574721014785969095596808189833290205099324928381768711864738902090795511515871194095377468698074622382408139522607900430063949294659469226857770237358408093592435116352653396675687754009214955296952402250304301547972110482980904283703058644292855225115248669768792433998874939458932092994942659972409862743867023281330634324210756346643091445486899259276314038320424544624749010992056778899219968233129571848710858006853560152863482021764306866722945708819192973020541560599849274144582523241799011286626922847186049937256802399188583000732489517417260121673989875107172877801776331844896217883414218265928642711148966987218251107430603772047260845135026045935098719898830935822563823229028251489740032587018984966673143807145005733694138131785497355393198982681213961832644342161427689457679324685035786579813452742680185045264878150944306908672166072994012418300446656679749568513953598622373939292815602138920485423878849483030372639612860204736106524987293233562165478705742752972503759682931753292747243964699406581479754880465490231673495980997513456271037128565333778454285015457382246738581314105388334600851789579025118677876938059935096053473091732065435690373470086010917209856269629592891985810376477898803401332283289240668669706882409622790917055781874318804442710653830382631022073985724459313119616672470884185406114460420148288845767249325957819809973395881851973880395021254846155780545638666001695000833780123008242154335294547151167806417982507252059685221577195668164274525742996492669369188284497895031030556314237687067889884522634268494012539888440963662192561497443906641488641199592851100867412177599119135013691054718947723440033237088684651316346124513917902386247181364400405559557358810594061896522798830335984402707391746984266338532795404120847048209489216219306035017615942812163999774362208709570762313447784535600795283636480355185093711170275575895295422033370058389282765522265742812620716002248959242713708393694814105957877164870686691055896410255727006367541360711530045693193149978500407868182186358008354845990481959363501014595682496336891516796281492044453997678024592181187098106214358903966167329091434467180975959351813254800628211576184139118723401753123328425547151920829618157242862962815571905634124562197505056885062590112515566144538785310857887681922485728757406312793088645161454545180342381175158017600270422309897542551824166020182918359240400892266953506620968275101899520829649701646485782646189346967299303937236255870115814557727715418351758071702872928381585837515855072142858343946096209627077003551131107625081840772633592967210978909739992957019727282597688738499020354447308463597964109007274366791016321166928030499364530076543765967239217353413253762928394191309724732834155478164099103558173868712587506926808181645222587576208853918519382353444175849846265732197922336014434792433870715262308542416511056876623022588184281805668842474879989143025159507642328167926232240417099558770567285570151943634192337907079883358661637512595147256328606055944973456875828594811196902813210412633210514452272125480218071728641843369271961859798267357718161524644430888008692132925874616465267407286285116612486764830626733955584146563804755895642304939504380219503562949292481153711214060209713768086387023063992249201546836574585463544778703531443645367908762553925783792644560247650406642278662560575382070533626927551056805591064135687268047704367090135200014931368840964585075269178451861928590916741564897592486457304103126001171982493698515942747059275407049079977545948941858568578108322212156955174950115777842390247187155288237578524360252487649818382974964137212571434695544261371179364157433346821465404307293944195244035232300933688922525399315066577462865426705898928034984385466956890213894889742795744329898859095734019652525875298985643739676192687412441029852951064925301002228820587390314394539372645477162829437249491161020890488523078609383997950383598202904905583857945110856416512375512784016612152163470051658342775458478081224896507978923578812259397420457648548163568109507221347489041423869879813733751847755708951199125104231928763389209705716236857840181956362860432920054529806606789480255788453365348095056153548991648381903210002106192221170389560363898876117786501056016943339991866105993193131286299683121963341327212591053068330597664711288161006973192768434824149424822277513891945522908964011661896364213548782841184114693473875231648637418896685569223058379067345875783412973135622896162013371286761639418195617121419766814860126943108852033948587791208688822423789986778473328099225000913212073859565906471434369289791837064547745287501311256849087056263739954098314304688151729962230383065256864988357560167722410427172653087917110909942749894839538626011483270162187264358608173597589184576384380981725249135525000605832474594293250500399499829375056493644437826637936365593872205927233062219973191374687530350891477623466325514657740470127305886279114223925370807169168555513571693110613270198801747882248400236243781609583114571953503523427419288456730891432367881334941152184716898050707005044238008907534960757460912951766241610749914976193087929339665056998031591581910317356824554236348647287660188518190531029216697667061815218123226793234105674059857460546637964088347342709154129405184258440636301254706704723918093089808256124374359831192296286806161239218128675345114314213608474669724801791299588949387608819959646219390269476878935526548950860669496640760714500591823578157697909672963502196564722191661478365291299606218560793850338880411320083572611294470390817541848002225146026043486605592048240137247829748438010887730550320052507891797014910558709616979092404482369635889924981508609661038892177486432333752950861593473285816583304939137534488865677891798247977289712692649964925430880859457067472180163595392086638102133890846163273111171302058808772807041843304485039802221912300076542477886441285709897753375457719131961246606052443025058546780040463678221121477963790092892093808636238951723386322979402809179156769373476220981877702666729383313612871674537371002573458837345388790371261381917214985663194833501721154911713605952494180729830441354471286556478879554909686558745892590073169037374843320312208267826661060653813627763023686144666550654248313228873936376972725559088326614550247659033243788415689540855435825503937059703603550977383180678809010566029728034677520432443165473195155106505923342477283417061498975953978524879128361412060950788686800944146916222719886385056610038570152601637796364407730762017878447816220819251928211751114592252952741827813325648450096684367034302156613196804476785470753994810681790951272351569423839036866951961979748390795469122861138906243478510360299717173922014293799147393203791038626189656374194714746085195552134540586042123756937535041271947685588419769397756414008982234933772370104348824703920183955173170208632986911290049832855016395087126804721422987428458261709756425068121198479129602200265529081123989099971302943303220646547822448906295472375034493379542403066904774888969503875452503473505949149955158329083481988309042994216590731779794956257228625650424179359123765754386123668150542204394797575704043921143901720767034565531046294890853608306335875160414361770575084884526690652798838899776437217039710346484580026278493127515907144038383002975772101084432952448188384752386492378062372122445304575491741379731948559513543758262340587526227267556162874676771129320367398382177501222184250657862882778822959946970342253247360657957801893283208341203445766536268096538362891426416872944101038710088397651420066237354083642710551668603529068005417805168723252953875512204215777790456646720096663889966115104552737363960615623246294926494839253708591428565182689117429414072901927393708441751249508902790798136292159679600296608219947451960051126680645660109928404855145631566558778620453901053676564881249501463984595805736075393064495845330809855193464062848006517081105454304264449856397157314632151003211935792219177307196622824450055873968683584942827362022264071759316966857512158704083511978359544873205628248833303517696071831611765895677017321158098102668030292574535077562894155698602455912741020731161161863379824277025622525367389759657724921717556080717609798083728449419393856089009100270889701366942330099735086214729818045112414813331584500727860077993537208072746220020006434765652615663380913305728329040381260560688541199507076301806535745757965663564107393590728762590747203168865422013415175971332397889643825898502089892233503136818185968351560091994591738499987494556408280107562480753740267237751667373734878315026589564948212118161932342869619524449680458168234622695069447586290808604352551104123479692846114946857644722521373056131239530826531687397661155280601200660827776354928244049669516416232487373405972954944599238591198862945333627888494266179852663582193665781765927888877465608216020910921231264908302400429067710890070976056917950350981730592537359479690676953571113498501042673569397067948842953377728986137554946181051093977988269233579673235192384879971278398444159184657330754963487320612520322398700430381460496182480629424197864972192096498023779979015012739703029518217123643363447381901413273283580074756436345713771216720335101654945294645536037317172043640341773694901720686514707047857022231776897594160678515953004005227593383307361334089736004056832879064987762646840959665857212518657398688429096036255362249733595151661228677215632226914182493068467546225863904478110555837385769125796221222667864976968761090370473847783542771585585131340825975668230431194722270781175887303558102848786721490977249527732940044623929853678478913531511762819107743370084498409389845453360613677377349159158708110486916240078642073104864262129454376799406802154270775655793211561647808399509045192177003081909498877102737088038337829331993291218929256668916611699697471357515540671360208819012617287549769507494211264026665861222153378260890778168578641616497533236429038208310149297769404327738685800256515538390164592959781816650240111891230843192713645378719431474459603079497064592038557300389621836064629291683563406070667878827795931447551772767749120875681942758771988107457296954476838896064426655831822718207691228221292455957002189445515184088633336996969122817621480715349602717073770946219529548887459594672214074243971956650111978078021913795830416741475462142205915544475557570474605064865788254976541735903626696480963453705623365045069167327182961257882338773424525634525775453267637242540036788729378037931964892466412863112204477823197077426310379011216167802683240927489807315167758286220655199566253902307090143039259866216418629379739956139075701546003527366319721721203569226734329346193388600436620018234934891291013595959042549379436878775133573513586220191615632678792195587158014533484393672042605700493454992301560377536557504134833587411207583682771528504434167163458314827600723748278712220793322782967010141352475657524905699250262808808503683537870062753774521450297744163143006493037510186772774364247874586282402158915924727827298331148189555555354987522053914892755792063632939311994783095952667779387643678818143145073738411462559511825468807625083891863611996515739058792963310481111332530191961772158763007074445891702440006075243791530039327779290000934913666903184650420768240027819847987582439566228060365493544735947551847654529875666821802589750382069873059209602285163069660425334041968511459852367444446497994534759169407924052698204426209056741153491070699734153107717902086182037580400869586153662256407921979304714869073551266612895625864229447944329795007415035872516516210518612724493537156417074234968057153844500644623024869626646197579935229867633099062042311336940087640821365051354818910863519605779456512038642443545466956715409842985121947647194678307357368941648483561677573996380185618259726811725433837973358386894505212861121875080644144446530634224186911491907714018209406977444738260864013139943219846121588564813692020258313135172998322084478086166625657131052162394150327271481027123470782151781374415804464841921628572263987023590037147865842427597039651382298547497569430535870794612956961128494121217023124516224518634323689534463349069290918767057926706666591819118121911656116643883619063826168639864182891785509225846983611916656878039236220799151166490234644166397749588656098483151841459997875353511769838495941463809224071612245606342567588096250742201928494863133694863478960151971935744569712950048261241560710555952314767530948535105247326204242915522290922522320558998423767426215402274206048495671780558597307104643755641449046823910361670081000784054037208734962743363265298784667650248523260686840656856043316392915112260522971369090333593322621600941658425509038831251947061336604572161950824452644344542825422999515561880734488330862668994460361370873207083152806072190024179281812016150134821676052678119006828717824682799737408485490565924966896283736876274670024739905180568153982679564184929076660722563187320734278122490671677024715319264197902900072481202722258697552846304664868944510545370569327605646532108476120298891098523986624416164024253224923766041094730517881257501619989341886951705001182630832510379522110193368862960919290107603589046951022549697487937899730903784937829432441940704581189238621249214622085865772736992429220619087695353290381514014796416152420456210289996309628141799547370908395913244119230276482565545636318646307992109418635840302867788228525915400205802613566125940043543478731292013840306981769238214466774368225601488360942271995971841597773885185281882032491385232778385838411359892926330549140280608016955926920839816742883952702356370772269340831646103435155199542266018686689272885505263176774716348227105909237827992270617816964134610712828315957589370727122819312460384354223582693535031511595386140957772221212425795668133748820644019497047772295314765243742780001949996417740662250229553958161419073401566914113117937734985575803336291161110696874923889637036160195382987371601469563060602353165404569337869611407065431184673347537929862022186100085626524365443730490622012274332680485021382705705272815429696066257129901168203332537091613499901886640756811570595557310198622396209313118830659352074164621787576972203294393984082633831443280146027865025200803593968847539266835974325897099952160768013339397031025152769928621320676006610475109948700124701096575703672872650375242795894010331710806110560509243519872234468268418161730924046566952568070757384399456512965703589297439202756290440086609970798371984689484462091487814676766858943394911243099857990746045605772779192993602587634949070099497671705339905149056126903827681584166747012019722925758428214428025193664614338444909517831020227751414984713200695638424233242423882914556539611641197325873083090519997478753752972805271919196765693986408109122925921512278391461937494591963525178001173055746758151681835618129531224015946178183091054330114749230744342625691070487954742852439041324376250696527031157552454938534365102390102128806735701580741278185123095959399803899389792847528304732159970919535172928250745875209097479200818402111063778215973343560970844734823992570049944101485734429461018872995610638993276776015663266571356346935873593055703908118092303368924314638162247168684923732473481419565420141197331729545371913221495324237485171460061975961252152530794562807506428683606061747654835567792490416332820606775762369726910384151330088482005944669740457691356222106659259998915560805295245190940813269681486436649770309168737340047366767874793915033813764947424349813938389713345957422048578089384798432056181251196263966175049106671197262335131319988956906475747038145489846445167677887182832150744459228967302800668114490074590315185150158300558257911700544240974943716118937422338301937535263414234244630806013119009262962648496841278920396161109311057938708302315279699443639776448052615907731876183312247611175394492806196856573297500052471157616552865991969722637204438197079134886907151485014797746616695468997130742072288194674059407960410451317015777462454336820026211506512991606853080311794439170038349173926500984491204253720877310141359075904253329245646752610740592712829621505954136808662687039409469015339223296654870705085161355908056166866712258924251095663719933523231841860867806302444459630849475293846113080854686180304244199413727404711290630267415399226919002064441727693389503943132058801398529025679872385124447367450798931703469908639504097601463822115350379781490284712770325223238507892398032217088855188947342772256322295128104511283750217245613862368362714005564534596297366237999418450579046094530852195965497599295586934361806419906855414349146430966660265289458655838706588266477153372214452453916373076623103843004649955860507563442180693058597726172336337268021899624168300353035568063207315246974821314612388373934998717291506373823508288781045280732236385209475678330782446471289955486404948570197436859115411432188441189933089524128240126657411563710077932922718890805859697925622090075242613771532177608757617772547306951861735103513580640052823670031004333706838392507541378655116931636242287262768317751108707150632416591301380232476330986068922404440927989184385942180275744058743454919184593604862006555648766868495703953397641017109649693136364973984647118349335728496744643429511547901896408939614321531696662729727501296682639455897745416014171821802543362457828137446680258857469438990552741207869854166173976704079390736829933249382191472497780976526982123016789316679324142412352169822290320841575725996660029013842143346680076286681089309479436046808336212114984109188973627846440825242941612112616858618242314255150730527719199589514343772217308596216902136340953650430435379163370429779295658648776241924142451350210961679086275022923784372624093412004783131832310414601461493805302671581387603934386971699046046876083639771899562377346200035784541211402292852093071359897059821694425295781458080683739342042752134730766938326852848065957908191895597175744011010950403696949636513624356093533360509811909369001972839082987088045288543569688857199102969277812270627285109304852731769797476398072907803379223126982261552629526875210208630232099933728463790778722948918153544965130289242498538577877936652823416136228982433788032423325998448291090443403263042050013062006511849822883427816527030905769787594680282264738975171962996978579697763301215624814171463735098364630103514884694434343265931519843937281161072454001512528393659781107686185112202546080321344884857464830931811886940587430926203025037930581225489305749711251835200836017986971499946025755537246213683631980140001131211799040975953096200998459753608733814211947701011004421147543654705329264644913594751717191168243568225165991328893679356047292225501436998233894517543393299216656063599217967619075042085568702245122193853468425707841056680114755765322736436126158545625294935119387386026504010693212465289471579976333304001353580564755330856044599633647794380710516428203488677690938255424439706123732818502193466484442534196535812259553598140582487295725928715138049821786771290086851758934064861137535378643332149593915319333749505754659660537771692817841422962269853695756895915963562453549287255598449110552135701350192985141841220435663755830716246749312276750168177026914146486509144942863811280205088275864352432299558722985101492398010854992079856935666089575853801891754039712505822631022495457953329789747655733741484120444280967245321253434449396732102036233773616386664335683177648488969414975275229432925539005616983069735750836146274364709979708543859671749110062005910258786242455534834508291856987075125334550483067498479426514647637288433711173698282129461246406206298698045952873841481076332950598887976180168640334101112928022447951962759283647884765330800692806831309312885444477954957309043832118681660096307666996468724987662099286684481939798866164842144860021071838865991927101779662710710893976977211533240957879608444206022786481937916706979800836685380141554257438399832379274649616793463074100897746775652180218503900365699322709448805103072379887144222694329437308935135382649283431507855678144074555039460077270147631482312690892671277122853887324839132442974344724739881772580405805369127432603255929383885140528876705824565225957949745028069183351685728947241381937382517275791347222981608396075518836476815551656895516213912572085321615244486013454238503980146217388667434763948058049321021222249001086500606019378208858867535555342633917835340300751263390321902259956048584405014294982793821636104687499243272253301087219547148920369485003505513476130736577013671741260971946023241004605003879784438112365082724033234305275323656635217276390387389774726273346517035618625807390440342344567487066529031517273523699055454089410518172506815968041482170892449255890340261116999857605329039309184431833291187631456350904776141674532409048086773109576369280377374565764482040237024943762018330902281375370364708326276663360095900555978573899816595823577443185917158155736344112713328696388344299752696167900583454029853202439981557600321179519032591228255392505498085762325042787202570697024415883729559101337418731218549632808790318560857460620565377529571923648100649976967636307060801710394522324697220108773317382769580510130856069576249241021851862062006646387431198484858712129426317772877293906520935306320526639512182527698096768450420410361605673970373645612833008413306334979862484642613074349425257142850567918462088523624598185491562643716861782914205604267121848099704951541721830069333701550728670948339740912505002893935239972647706094004896812484766908606764343178301580699591291503582412275823986947463523746080442599926296823717118429318003852449776522860614923228207178335034756398258499529089829545611456224061552947593402559750404052463153920501903443801334256600599923472071188005216566470424417587152765090552368003186829690037983547426464052931727594435946553600206121234495970399748036285706566163125830077184974372914409652225422970136327693834411852288670160746967015450609330437516715778542412329809904121700016385735545503331619383615899153790591487500158564779004416518332037718859375759177697722965590525684246371346253451196516439962544567743228500214747145488362037318752874897572143204685626799081995226588539531774041616854689255175263624198832728917300113170692172411150233169677931565953887819685471257945350367340337302553289424391157166331702325639638765840551604058867115314954622998080246953149244902943518376687816252005264810856464667517541398242036955947538795540175250714085855146515978972253503976022226706500410804435866382365267393378434855405899251270799096038257750009845580683533281363574238041627291726119876224873538283289740133539777829444634117255988377350930370405987331166137256755732989630631487651856044207193900840371150542713253952034503542730926807340052215075842256550163788054706886737990045073678736961279606163394254206482656834430708737518426601785433448632087982705291208705110848160577460224304903798948749932310470854726478506596553944358495537939847651435078507315732211633854798977830934639167880770469255140009747421334832886555361451603368260641469431685187128182394076498750107000229710168036159381721006270142627139144170554909279768487075042698988442526327458376169369338064820919427961657969935871558210449618351632507000772181065397709892982201209852524966107863911201669977579543545541631202241371285060558053406132987459188039783174712483371420237043842327754818868369729686540117182638596212018341908326795714925844342387845941253016460382362714588590116775614284422146337007860376754080993587418800229300243323688047506954243784333028563258796781783137598769416133812721770467380277126932302586770893291034664074523414397486532518823753610642097065654487018760320217390632416499580354557733070985527045003522960645334563946218163019535079801713960713283977158738703116694720705071638328200353707159978913530172518948530099313593041808363811591482363615503228934968179042559617857555521870783673632790487523646447675672066432001941141120622952207459480258177086731890973268946184941078558093050845313689384429267897299282361493354415812643477755021529255834402938815780714720695732924729037289262042249027133127973445673369411528135947423874067165675853801696367783439915429550467298861052608332890997728675401107674350450834418162801728954923337880184843924608812831901398886213770218299310354262542989350069957015836024213843324386565144132931325071441543966640609216321888668863006197064218210444889613174216673756643423673604202778466444901550807471130106608340447671274821255313973876212174371522767254779827284551516899184996265324259944443022627961945641212012555958016536976023260351021884036215427661505478242470411872720808951413561392091251381302808349648081288517926353769289774666501942222289198936421496132570285964648268772813905237041744212196894606005314032255511467848782740082874380235669878029464719651950292436540516977554780113964110648108177424375049494260960911572851227200055624367424517706932569403819349686560337706316746198903199802184137705316801763140126207559712902864390923270193111717113299978556223051653759522169985726319009509834486006321699314848122467052121011308665452413917201657799259254856591022590339822928230904680835119496902868491233149288129043922583171343325045477939940212351733881785961298562446045948703432640808244113530667694134876844732897215982811650888400072809388782376204816838906466514044031368870651845329141350053747389108560628062423525535720648762904682101856655925693622112031291358432772434902622891274478946475075601598629895340729392710903287606447972590020255256424508651397295779110975198491088836759765455415448881297445353021544257683312891949318002492128041288243409769962815053876277701882500339906705892063497577395893526279639402903030065381746414126350503207462757988055906171412468806187125211596298573975619060258297842476095637434877118285439458153395984934926824744018134627149725859938096633094968624644517656304846120603875214033178850811121363038119820227625009124117397848393141966964953532531726546489638103729758422476385843723374785228455876066830974977339388182686244373459415343400132418713479328140555290650964916232975060278116917821403140805367216437463865301149978883149100964900992481558410992261671690907046095385908489642531332210413230204930267265547394672342806480754282271975153378274425611319578462181629986287653898495280772041592428007606149946981712483044289012924929096561151765763985961935625206800262829234356987230671175671266977766333638469789321874606221725101359170316477216400102195924792978038419301732078325591273672098099749010788059702882404139365785780944006026538236243706474727070948646997444842541318415543540571280437840826610816637909434748249701838240728356366495426720971970966757272245537704222331245509272350984193424428509169610987487743931564351554360788458657115103253751225525984332965825176379300909840285308642364669016693255716780907475443877676052473855105673687422324656824849256725231350969942283423967255264533855434225276225757168604168245587766887669086372200538895843269556499054559501925508666774962420569413560887460671695618857436456753524892806126828780794142049002479712359042322251291169693597060226430569871563060432908282070275257872192422272446932955313220169915854859623897215482443868276634103428687864231530115768728271532497117180502728561360831492259058253897132092750136534432959572467443642722307065170617753520490513321132187396346336439689063417224939502743027800159078709437504229187291492151928153854888764076901641349383771269272322198911803153883706255620670934991841660576582773939932088465342631515096402657032181217058368936606519463339709410406956566905223272118925042666474393314589259596812142802150174319073952646270563192873029176521480758304737154789638603220136881933405631116841588211962592722746304190079812430796360805648889231292615308980641637087596860816952433564716456456211486470752506337968554474351479111218862570110119051197033682879742439293851700003615277220746626124021584280201667290535573028083306187902434420313574521558524692875406375307283319226298340823121869491880282876479290086270122123546465019990685807438066080911439995736168545903202315524354102809831263062696252722426625033351258213194609597291403950131099576439058587502187708517279383012563785657454600907710987452718747583771446851308025785188759265577200739608978914631431331578237663764415667669832009292112945042743851310461899340813858307620100448800057681687556123080036795831504194162583694134635913249728626144396098409569766214504659244422137528326736522588889135737771235437684821945316661184236064727918222934206064258443011154299013249498246636825419056079164340667702034413293541971790351787330045524751966132558910856729587884891642035126956190641686018317084993578542298105445164540607066206941830030108902547828380537617954124719424110489725287705187260777100165649557007857174940315159513242980999042769223816025189059551869741200035310859296308551214842646765221101734404141469070081320428681601305004097098402105303434511288700731362167122279461011879324692667852279602107860081904910999601778139068594740295628853117208115849828367133766398553434499950050495249372381535189024390031402902530630942683423325453943701577229904663296077352921397928370093182847557789046468720920386683751604766070010301991989464938259560248441096086426348166013649563116065387376028974835054779431234563030519682727613186939693833334715711522277023563866543577472662027253739722209237468330570643634260071869928160671226248318793740210020896447445923440246662116108274571421424740713248403417095714280841383587066748092387302144460150230060397675300888601945622982993218631185297838489029100113658463484630916092218748299159479950049782713805772808989912094445475065267491706879387947272077222232367468647871042800017380861547720591400489413456572255849314624360542560313466265081732565428604102935565170624141539194460067151460650397629150481702757490153081084679995875967698170341247595241853641588162458917162661578765401400631971995895093485156805337632170347619595885481832510687992586877356062970830905159126977050539092987100928026908218400695661267590501319645917786551912024076688207989789507605062596359117713150054497342948566592157397482779513351714617197915177763526728198027184159505660513656445825580059660992839143050405517076710615212386679293705264597546694755802885027307538501569195690979799750194321092414506343790851987414556432885992718919243515435005629487557819857320536388428916292447037324783782393625160523579558051412233531803933380930076998757388576593851422132918778604295287556024158209712344162950859739077047724407714144360622489582004778068039120078713506745645250186182783136620514885886545658700814781852768514746814294142860788161501156013060798687385531376209000653828228997579034300304568146638627935083031035271071255996022138853489184094068200784514452594287734965591902009469994396019919501635495039416677873774769568037413129667236510578098096496237666750460570888459877782751629325892965612850159905864552829223799410132791803755321661770619806390383818155112974471086800251910033468268752887418198390528808435605761700175951184803122414625995575424750820748432062659121451888425731273126437169847220295263495404650787697578450702352892963412944971891024060865799490158256333972511355259711789299656122705872196464677001259902180613902968737056937606947658124962287752754067406046610356510896594015793037775175284717517470136061993539398233734390748332033975713842507045403187570098786637605086998922142860732764690334497919626519128836011916841519254404469378165261098099304833277365385432724542955188327854873336055279596593298795149280144690231941467983959050170643911659214918878007656598774878267235730766276463611498310055723140865362847114122006299536480328149618419678990306997253961901250915795840453292231559799495933445735117714084041989853616887809230701405477018200122174595132135508384521731042640299190601219671478774138580292950161020204889579161538241152102940545775668295123002302169421140279540841616573482878784642493311569149483491652076384580501480643006675191833348064824300548417468833183589118167903323067511304654184793748403920114799957358281899839520069930805661089102616800262179118631541193772083849165678707857277348736870253981004632108400794544435937836000914972562344925608509982270290306060649988599154936130403168174848895138174253948925318097719761126124984732852022443742468373289110707169440720960269237869760955435201495105357377167116790520203914335788827175347886393689736003555364543495516138632842021044290309444485607641301614761841126802613152076224713429846513796180289422716714915599486322155950631502799353546666141842793118264967379664312423384192148154157073735094018309308660926480157675941518301519577822122374565118234426888697110651828980036418609647809901826850817413854433576196543380545315256388322826806727234172201542470459235079759019530329240603480081817012878825447896601848609548620452631460779619265206673938972130244220665236571819715314991052776441288841194924018277133843364772596344764890337227048020114014032533596236601919981836335285290280461592675246288794396313638367788681632036757330510042795457629691849387576564474300934715852877259835686292428245152255833932001540814882687164960256719322188754024606946666004436070673733593456149567962652789847268908421415606297339787124172396207888322007644446900794763996056789159523567484214848740575100809500800086913779787779741796884895416461978158692688185085917336727651370569055499728619105244541039371224552374164764911812954268006740542812301268900759170066535128406563483466819033463201234967209334806899869894963594045375980023661105701395787095576391613887530505098755738476840398386043361420709274870784475829711087378089506798752526723525918274956322731090416138574005068141575437351832441964281436343427459729542805122823326172009221574641637745742049873032100542680055422903085511432262029347578153277649753721843200324585287715568605185145092881364399634174751867962233117961460064951055905636420615903947179575256392653672345771186701916613802921824875760416444007932909326630731314661288491590413077944054083334166809999741088338130978670536872442861049010061803016459497017239768250333056534324586664103750621698988522915520078330380063877791025907877470261416652514837930944351512440738114978106181647406064760996374468842239453102590872998065970929443794106477766981482312126499924215245264172061119512413764912002746923979117226835164545227350756950943028007498352049106637078816194394785038348683570717338101700540841377036728389245963880420726502536396610355516714830358210722090376727605059195440210434713262464016142376170725806504286819958687720884156713016887443911791866297785785983204635324661194023260515276018749298010623325962144535354396357182273353546436071390634804707117731194822935955793126049871038035665398063966231197276029160363835902462039316386867952280889079422065498578950562791603748407882927305583859239760872963808614430491696145111060826650668713875596981126853715424138554964117453061206825661850808647792631825303669515827789529918435565436751486833937805156079131809124629329539099346830115710002116464486022170401156325604921910323992079940657821459456464413010324358139769715738626945517553944121746496541963043188053111774732930221717496007616348052602617223690578872629369307820673240915354839749824134139794982755191113218785457307255877405072371320934973584745095738560243978624554300830135599162440969771433303676831239669098266716519167046812822548250666164033789856948584644291381750590597034990903242285485763714294154312013560930247890018827392779044181494358409198897975653022032352212819357977671938267279294324942693658065951145390309075372135784759767918501428275527582326706308156714108970905095576793220578887865808611009908735180578917612669537347652070887859304529779846753444584781389502708684871211520924498958711965307106880446550665154296402743510957413489618655303153288217963363476477531456127002979493298606647620733388389137130743181835397207179988901817789742634095525405948216178785925872928224788704982762497399161623767013546673500943231239424578922333602936896818681695546073001527807140946862287708403915385370461372137683636355962789736529730729685380917023360710673230266982879609420915601418570422355111319487909251157854064233755527164533996438242312993870010326238977006863252244464750981544914724220709376742272497501403916059506381505745630315440801356443203558278608060153262661884293443147466135637366581913141243443258727796262442680970207136359987836499988646277757681762133294618581164874530811268025507433181163422005238986250775610890869107558982573252297149073147505089716269254909867949952692696471150768071378995091703359368366268764977171065475208216730505665534406936268954910154839923875744254951569187809396341413153268931762760088645947713598788795235576967605899366984930892438994430048174053354579914079142032457984623945028170325889873644016829522570175728051305033232334627971263012622165598314988408903984484037098190905658618356604926258602355607262180442375956793530269197489138614464941533126648169618210090438111106505858203134661222676433879688484168088210380522618468773172200919580053366457400980144659394990081907928421079297729056068221951877055677128639999563327843134362944723907136444900107472700827698388518380727143688771918791796775324905548290114677642263830076599857879206590794218081286731877388288264853086066572584256052506178548893902851562388922450477023652490648341147667621788426467230624315038999042119694600682290728003750207730470882960032281915227770153808148552826713122844343834674605426638993170986296460627736998328838272884906694875833785737694936200919471369629016518266378479399684950852053736125556889480420650084229207798451712716971083221819411400832905979761565663322233337706101317624602627043102811499099262702053466649406443792545505705968069087022820841567379411177901537298299619618492551310906926369863778855857091621446343303665189084218201834705689472517319411995065390168694179095297953101330200993324927858842951492566942236357880242815072030277770445465310583841267803206815034778081616021372263609727216848015615324103874602579264924201232378438473496066487217724809768676442260901379339763830641921943601003496785428543301815421867033587294063411275574389521518221565536820484321951151632791551944593567375025648740956028977529185425690101134139008603049381185939852798361201205050893997036240933797312182112453356421084286126320297184633382049826278243629274460639778678583883037688622536311996235731971342494430473066210098276521999540312666881987906606557861422261862596747091394893550672899221800332431754280938303085107322990711672195105162824491862605049725530700855712909144753027588196361272651781327404423608563456440367014193597543700313898454666108989547882520157158071572218642578795046350862208176271111117761466714013447064972272168440048337818963044332640881650668560431479034682205998600517343863099537214439501372768953835187306071683818061047149502203833066519894745761131675829739373085750133221825189709492148926734588046664092073484985174563213158998123982808150683150534701147172717371037768509616211400023431208015372888570007613828329219978582316179933341795529499603483771321995774315772628732643809544038741210478128141894938411232288626293901651720671352115249528246926251518491215191905892698475633008455277844380364286174428920221656244269256752261281903694426079559154035311514352357098862954180010884770006738674204954516156431820965151949887309800852183545285041564395928688977010333512838684235370124070390224864902358977486549333945480856076336281961320810681288183986805830251449947517714222279732457407125346063996211200468917959443917820052619442881248888672193734914035398565242405561567370185239629870386646903077528187723035504794146102807568828473909533185996319049310650067538069468445945203884063414440391643506932059348624096699746443720423399576503197365210375261702322540287114910697223810068850025884034398433737059660735829142891194169189290233845144090344744199163809804413273780675615903021449035561542589659145673259248237422537263282764814122762774019947082056292419901253278755334132412034476803369097490768701603165856120557804341215272938841620756757968065172759601717771179358096726716625239844740053319078679975342277172612183971951088134973937827225790409453436245289032286555711476650323765471027843144588375882588182431431024057796794272259074688533338029825367480742961027152655265895928333581365903702325443404445902596873724570930601106263320840236793426824286507558257160496540701542663768708468073682680463662631080757117556997496600046761016267480757538252181108578647003430925015518602588512129364043351677333590761251372450957278493063816358879228788625809583840970373536797998578964131731031250034339422813558561477792269294032753364607892625775672656039705905749322944918312549045656875537674265844858725109193644145302396353974185201320053423477195825406587550440600836728433806337324404930109008687450115366041309921189594638015522935804312769433195861997200206360815221549530998379928019286602744227191323705803336977512933536332422302371002374437191294941381993384985283188143178199729872444467040233010339622739650566910589576329374775120091617642136874028520192559865090322937071166193409537854834168221327108713986221223852968459098563701495943607831333883744756169130710849896847692110240637623408401787786227040895533956876278009465737934459487733032605337651329744073594101088952876068961438860320434441245410797642619123442131831849709268119092080073915972443366508753163411276461581542077509510869685386459421993301486646945570293149601680139763865720258128025099977278334490719052689468738520264515274023275443261067299190724175510411560200155234370673655958562774650630104723599495787489457408397298529762445929940810317423596582295287369059530798069333674959088804846200373881477185039659560889039005363101024426724520384553882750007994376813826318954400032878172465957746115349167882623199776405379029189791931104018183603807976941017957723134902720036432511492775075487991741463129262747143596700217579506803330602106162386620491323612799001838662098653579732270143827257244518071224239722785490746993677322419900109849697221566212817714844932463667601228995350339602179572238607174428849889325071994441771496345535364387510349134757031045314955226532134208872611950817090375367018762970245627050197290558207446207073792533556396145616234155685791460818547242558467606455177092985774647860703113522943680434163936668648918878590549742558582456665119831603935457523460693105240261812542418755781173777115859921954289043614652645074892084252780272076604761333191332540128557312125807833333310667070600467132507277165910695470071896089971757418932861248596825599544478786779732380442013853859051546703367191298674393373416200185352320876463770339443608737553241851841621174915178760426718876694210392089884973597415606127582698092990775244228616665439126866451851253391997089040148866171562776041354489075467754392377620436976390746140159185295269038572500247896366689498254811193746291531371677493052395803654733573545434345385707153983576125401642398152446514742691879792365940726321119896091916493094871916787915589076673714312605695696127618907253442893860204936673900585201650776928371870133983760246091912039683755674351582284846309016846160938573355444845349262979526229525699274588199924657569511758946299328242727773094663748225241242024938464494541889779803716489443373184006468422215803373515488680024501000757506230460946001675898064124608838277851095354130309049469064206141670896499271921203000768753558136133694934719077236052586450030066193793050174455835215818823355033841471599282333116570100223907544474037892713092816019123733772840236742409474724789579875686361519718936656653154686451709695219782041369151508781506968434583803820488827290915580309465958627456435784230344552498912307685565756062733062683222693755674238305143168488818010588429952461217963233110325099305802682120937579775900807674499783110803664008505825783178934983058165855809948502085209922241884396407705444895644016317938358128715629361901559844246505154489503276521105248487189329573453014315066832287610951206375852184704366345940452899424086858933885752901448903976797026320277321424344876658952743973762171135810279723293210189685880238641682300220815116696237674990651644799716701700604549181850338864741645662713580324058871569510583622472533035380769008612721122766818372332409109810883998500422346000019024728317250601093682491634242022650421756826959693390880056519491144879662104668046510325225754324600222171091545616038441848802489186777731126390168143352624174159218981343067397225571783341110048916581655195813168945772346262234674010373269325665143758537342661731850317746110677707958382222139290552600770353888143130102502029372979918553578848333560260866638380182351718275301442192840395703999661355192530741748146323499817219631228807259554972072687337825212655156111919724373038705748223847009088616792703968318066182555982064531787264601994249382301456228658058756379453422369402030942075334940553421539916781107754353110197086841646140337445334591118229946892752603443727525421881892990314343579779173064835539991618855850466164442701937030667525295972714362401680826940070432373223040396205010919899645399924218315600967358561355603343542063703388526379403451500814599838757048876437258301761576198309810588584609799281998055029373246300976045336821127727814543706070829002814888947371259881703393343919436764566768122855651875864594743912380343088483061210902904545755095214281220250084160205662259666574039890744146412070789921572725029308105145302997377859292105325302997627481329256906731051110972050994911601676781365761163742084493926412428229466981996681131294881097702273324158588804296177441771626797596589247813986813264211270852417558147177867177337420253863869757240212296218351151511432937444930697876874044470611838900370104728461432109037386101097076990274748420894535416268725946445143049522346917062055931367204006603239945361905250615646434898310880677672292535421640601110487601404498810596432861171973959480323796755194817218783413929468268117419504634603887540291467569168838637846991613747383845151432856458997661530052126571258317572756486473289611732404290658674150742756278664570306401437261220752326040818241985397071534379557163230973454321436219738753790965803917961548438252911207551799102717435479311059363350136051126337118616791958957923021389944159604802561185360245909497624419457680295005903918248866291315957923167330442981516693758851994335240992110116060692452413015439553142627733125548643096938553093260682323747879663594515177899865993692210386423886868866304520584872282686957855404608767770968009892991989370016119693843014825965005623701306074684576473872187523789520313271224480379800564474124841384536665543824843299337565192799006428188530410087043184289808184318912367138376837482545891504014442572788971444640801479830828054100472173036326958870075724525595633923779476615249704610474286395928609838657386668469689959162273091068205954452938119688446240677866756994985481446237232734724924382377829338396050724690128385232638843064085835575018499938421793065087018134094831778987531546606628928581231186575590502975429388977081687412390710471515362631180445296483144279741459699539597433242726350018215392982967334126173186075863860895446200266975348138724116687544824258500880128659419602973528550597723493428049076705180071396486230435686205095211193392257303247898447871391850310844102618318901266241056151828772703792317637044936747747851637937429369701969431186116093609554965689731156595172813726832474773572323710585169471983346415842427253319484946756043272565141819767869659615179326338035811848630249163590144422635467833042680056290593044282556340620939054754059262480063000896484713159120912561059667206632940421341248436196863510918296801505389627058336127773000179218929244137775431676005323670455221653984034998120994194976439905351372874216014009351016598958902136924746318500113527092631251593442146304529371924499245152062931215475141966571374999859605919123093352016772950989297228390537008742151129211493277539210617064832537280294052695519148051308647230212409502724200547250396465603911427750106642426019821733568322828595996874549477153327881463795171574178824518967612718793981649386390910671448525522992637855625203108640091379067948711107171630464479416282745417861924837784685715617895077636290118527670037493569334642824679393541013718597768423110291491259940535712200760033319159458876711437899972694356422026615682881591925824127620004349160497507676725696756008054726044976629717297233350293425966442064426570627910787228521671640066513451749791563580210141281318198172362263564748853008630994000634024164147466856564415367940436289457835934981833643449148772802469397834284758103124253649254680954969773640035991881583628586521147063339006202872026882284177524880612277008331883083363221370281718770528094348669598574904895204851179918057673546427214962526018536314262534236714646591183258660940261960219007502932086346847897077849121126229174106818998722912660770156676045473841782311459860438231299717189474987106948527836153209584992842188341456258882369826352829251613735101383324171268605668031782742274223935319979534461932215406661818949327318860463278152746247285086042105073805751253201314015253108997448736187091217281953465614440134266941688080271569096543930747311682449949712620797810039397519567651630877197352217497843253470057629983413847229398214546829134663204562579983457923721761180263651220137331260026047772896640050030021842130851323066308182089943425143412811223223822600289673543348586827800914286588714153355911871717461903681824500367710347812943434091965250403148710256601362192713041069977766189274955826273747413191101706883928175993866669732654370391937720762540925772914008152959342601693525514033140428326203442235187822227396543444917315708703596470587417990673766752717536000771128932542040438269946584831829486712914881759941319630169744782069050456080560603221303940869625101938270801025232561794337830354996502939673257082633952728215415130602580507538686007618139720181238742672201743044402234985935237243174228191350766499531503787617394466164000174627190318285372996098208900880987789434064254812635796605236410003068456977445060082176899898379622214570139928234950272441885787641811293423109066914029649101422207909889598374197711577270444914569628242140558773784125672392172652958197933007561756071332360235239512080779945706959563438520034811360157944817975820308899938564875711192573244212910464605138635506636850799193035388352847552640482720486277020869989702829952579664773998255201519612394908979766380201377323115401109805302053825662150868446517070885249765880731881525275861568966226543576077328451835909020610839820021361549518112753961738984378080192681756379094138272065402571932144891035026755221573435456588841495096712232126769642089695677312858056610431064313076459495703884510197998205239156126368209057773074304433307937190919570895015604712596799547909616487541626030853628064274478253336380605161250601471568517736030590707729791043814420251757802950634579194136851547497799408227811066900456753635891277342371599166597520126453578637831701327696524612369680431822055487799154694197833970430258058064906811543365024156083129696215489714938377282490997961338052032186023192416010770087197362963029304396457725032408083978491530812685376497578555688748340954270650079824491768652535103427580617579285637859213285322755473004726758990755894734177109891168498382220386806924319113303269836720554093729982669206189076229838093712811588053687869890829354103337948185343462445509740064131172791086606764988644898830093067516671409771771652145606351340776608114414982897252928056433579564450801914972257924617511688935748280667782594242139270977277520816983767707522384919087870096220786985254659322159533603526257729882206190925979343583909706670803401369736283783321014230410252392871387357552593403930563886981192968571440527172993721814961830489343349232577653643454062483016200017448407779824495003970426583952840345830326366075462815608374921764072580914618994993686702161713794390970649151669813343380110815066895607074447569847688273565343896899937924635782968896506707306158099878037760943096485426564850850003973913850996647687794553330389000478441421796821366270284278339571877084921523491520129212766699107868672933564657851603512875832225136321118553197945528237109665070660847605458484303168587617847694807405812711035182928006322021782422832581931516558224699492196631572081158615607250814455272167965995064465393333964252186399952669661072793353008784866247683220134134769525385393420070158595672797897210831702461225938711127474019286357153081936590151114832612285173296808434105031939637177123258266590543830857375407245358295416234070982989876971780627247389227747153216641732213385613326828878664208051886631151960925192346525175508412924434247131586804594945028469000072077426392958406199289032813045094007556639798678662783681871850752277904426462434817033248969017205866134235745242719357233584067903282241424144036965386920864657320134109923144690797483395459414339579563099969485695751939928318852735607884844401963769816719451786961012363740404643326556006242888965233342399905448253141781896922349581080542147243940947366390946807417443569962800243304950440585260690152302642122471108862468986580590461939202412562730719496271308225920453105143413169851844523108958688374265776489515515202369655942515119730315033670723918504465618619092032857223230816418687930956774165465819290001554193447509070545124356885093777842306820865228468230515689211637646129680383703163848204210845052952240476538162732336827533810931614435612378966266159506455559583789380825462546366843907231904098115902879750265042233143505404941231501447809019521393976926184471830839560944595532897783244067395534240515388327769922887166252437809677117507337643701394441843389086369888759528191035196409828667350511004388718055294980345989559233718970326772500604496558887458758546985747875260643997193310307794906806632665538716274225512065193446981838901533862393880057335603695392199662557947703940239454707559247529311523001393497796576412583330649433660415564822406817129828178276848682853937411031193013578384821155722651224015126648400621525133983292158858702489346070639665680388427788081178834024755278781674242167504106968233582272950415480028721874160785172631304847251131409484507966569691500297940454390574687133043705018179070856755779679252335582135326659125568371152755602608525029154341865720475672942726881517594056779230598792248855602522582432477954151466749108245491475460033406709458973506896205580321895852116655809846493476290899332984325148133354911070667293578539740340964757814024420635251701031999228667653765205298478247732339562614281269070148597937845043708386983849197155294355240723731058266511020083697959114109735521844450590031009028491401930513583841285583130780233133740454029491374049475790757401660373197804842158700498411522021855977418444820841750059853448038635865471681423008649408303913325154952047964605351875240942961302177509041168613101637375561403457252488238120932780054730612902875703561293502085396415681252999791126390676208618353611810421319263230810114782803845819058674541522527845021597304099298482535578389656253338792377123607487140589774808186857997828427129791338492985921148619504532665415929162172800111348980180319202008427905424008348474239678638476457952775297956485564077286139626970881544988601432059594032478470964822280770968183199572369464688752785490204979601630888820848750037597733206514473836102159016548252683510717054124311091192609255388070641353780056725645522534041433992421549148726830388168027243043156788444964625352003556268816930374351051015876073969741912483770114722194378353713355263938265917908631004743686147378938204411196207503006925039501825447850622772386745136445351855579816700511930514532715828614075519563879424693999654678920294985917500470159554165566331668526621858076517606477686011936683577190026776008822349098579994324871717558718994995626714342617929525712881216194814848863256374493212945652988106254457141335317160427459750849438775587843792340486119098580908750950612041101546184364900178405377590963076424292191789820484732989777555912475152784931285716088051242220908019938724789620942876836694284775857371429572952552581826226209466468187031790208347793195374823473453897657113537848854329190288837908287240783959898888121812933196368863757385389831892743062080845152179783010753846816901063268731206259140779948851571927429772202241920589543641461876074073005801492560077253102058095385531054053316707592622903490406827964920993883852987981452584955042115120683109549447234145798233614719991005136077728636332600512911179357942974356952729753615765699439228008067042546309387417027541180457017316549675112808599945653905056370589212866516544171622236382404182644089263523812777406447397512907856054706938651131721705521721758058679158420054429987872800062844481905581756039811635024616473717837226875444465898919570152403700350411712536555985169698641778232067699694379927242235115283569075251661708459192763211043383906465765734739906016974272684958351826553569025820906545529404722409862872766609907781637812268962169074584823930085802712655934036971213366380966598991285998647622087366688662703294883235721853725162305111646065235282503236139166312575089646756940389760851161333618420301610029485528635424180863239376726563217920014064300808940824796561671893895860066371982189275946290876179823400875483402539886789523312858593939291215718695172165931375140085053176114385620890278260543303117532526155758872737495267550908842733673689737779381295744423564508836539241597244370146276552233498402311513367511188402485603521700393331061338681754687005922303847553776144505277503943558111745335745155117927637986117651190311127128329737011869958607183517322264527512768581223188974217085221094388683482059860653333254039642021464890776637609430830914807560362183342338152127126999937202724668746638107553509553022234640859641171749994429772200341530345532880896255332463338873527126489862790024120727469174068019579226598521264438706275411247571351513290854283938120257284723293329008687577219300380623240694793601331037473783496976119683382561143654705318595453579263973292577509691838685195830475586163288289434158381849903663738217987815816613541021494324140004002181142372648490213728802407578666279180755398753934873855012171601951495215297358438941549936918707685729147538937739570256885258824243513111886680751600024946364741328183451079864091085034489781339894600428467759500733065463760290365287215629982723163844711860734130377127273332883461089112094546756007461116669023604483755602637076054564763879695813165756555425448855880224108287723629897646490002083603291607389359007784162415232819598861015703885505974783655672615774320066699390503876692817325378212543800833821452706531235501382718660516839490782380222055540691632052928015702971056564246418746206187915852102457807564612387787486552772144655426490060111982539906134562314634477061767137950613654411846054724470748543932706498034150974816779512347827009977122102807211647082640424546930981881332387536754914679705012741138638201224771203171194733283082671541029226250245503626756508263826457987268897556684201180604475515056213105206196042739613409984653151384282737156388804507820029887469627153919996810980275441008689796844962181489782742590088286343362313707451193511099957284242213437949207883368071047178470503000917911716158027301971247949479695924582431161133474861619929666830620211994400327620162706999253223538829591289874812494946837004802546839593153845844245557720022613965046410303097346427598477104782402298710167454421025269330128626183033721574950191026695551038866704664421528582433697412248401485361892453328883549776914833174832789868798860196831061118359905992760820183519012309839815538076255461113290855080140044487688492068840461329433360823561475380966404110614171883180078131857312699822029092644539224647622523443087026322229766925552575061996232894946705029916756279549280053376406286669731259401656723059885845454070828949491721556296073052659457543722350730482572706651809396983371361044307090606807599857044651717597956903844621285082552540080559448185753938989555357020241611326206763655121539768417491126163298809122523034567769140062840549707365157260742977219482318294105623819950967294418400863215479808801356374089471891699653677836556605289392358423660157280676398748644674711311893673854916741974101729743318534870635985470503250764661514872406223883155973817884386964806810172199046052515790694688244194153474980567313309124441419593125150217831680154189342237492269036117387112667030531788399417467736868608360698617202875701256947690851682425565902192324454394231751672006647680177490778485410402325388111692338045587184064574035364963725542963090010708134249749628666313407430078172634230202673406488987641900400928508703165116035603908149610604546089659653376236219425785557593270372381773130724529256549728407808025126853632890621344619288718635819414601033616036319215379588892290062350511566835172932942843212217662268973294995475050329507141789958682761460650204215320051721797114221943894532302570592529696941778577282807634951065163311778676285404300897580705746171208870544394845116484819227064472076377137011462042415690870178934674607735131710123682945551191859308228506979334966641295586795801564318145990201151705936392142487079265940567959181618640257192054314615938132366853470339423155671419343024276629715901273268382654586162926219283413844699586513435319066540815026264772862794548145424341760957232574913826979987037259840901241952240036713819444578172162956908352596775087844741228190510993096364706517914466037597110696437924796350546861503735062478420345741008189928017631183045564265962672584354173903956992575549060278296482844409331301496032049601344143788840786531414409816824718960929162551586883634789266719796768980694045582544464676257541390243149511452069171889975726304959484341079776757133756960287656291792428720007964065904209983548408300141064206247976767608326583818507205500097677825178038777706844756839094731573448197934416264318301037754427375986555235655737723471232442200291623553165636006449514394366196157550305714952179267802278078646965018873405963143183436887139604879293348867443612154005323019900774096183763428516732075297760395955302902160930371605095048524686542315320553080225668732826679845421850158228398235237750693508050783558866014863199754118762201927303085115199520401696486057951004276777309471793636051886361839975629711758875154291621203005706512094416064702311610434009454215493738600719182247503402441988636667934034427014982306218436429625651754091573823941947536474728800909252254740605780057448502158311645118166450432399700746793274728558729308548765163731899902665191134757920944367928498168079106851392417521360634841483333701327737339021187704114511835608102754652287511813484279650005532542145814757741778939287535182936278835972145926916031733686709419239938378745466091493010779028272543947672132613848966252906284274076929581304996768006867052755080068691160894882140883276402370841950266895161784067524549543905707992256027242714544732328792137606948200066522408114681552167995822584360272137434967031357329802131714124314538308359899085027768610174600757318138129101567030701742349262128662293264815631370015989809861616509215648093610726286468367057945503743753799663202547053538664075251481837392543457607376378655299814259706470801962743532004685723535822990945172610998436256494147811439834457806532667203392925218563487958607737058075244808374403627897900360416598929836460280805718452078498024163001473482462584337106804488246500210801355161779264317899117978800741476144437745466794134644956924620485428403192937156520689247528715621520242795447704933109070862434058654904024478101610096199770112267339615210747744864707750415011222788570328967961378609860708509393527352606055779505424566999737170693048022388741949533306840328445355579910661402304692137756228463653674505723995875955247184781789319209453024488685090581542012381449402684943047049133083196957764803571844291735457088669091694765920961878895624847376559526991012811734031002051884110082184233159397416388125239290876257910072609565749233039383593872834334699016723394378744618218997332757116165879254382742759871563067662448099210415113493301756572965636258504668256584649780788898731525270653186041134624280766929226932922570448829718886357277677905674187959936166535486419693812396650982333399054531672167121223681231377546872035495364810687397865299638559820721873669844516497163346625133616554433195025688445607682854380407891284642647179252852309917624235454133422432088313613967155428119162604937490094259836391630591286311610168972527890438753799066800038760119945534160431952220035216197837145725352456219140027983151405496177039784923591301261038741230476041467988756443769045252800796794952180102078922164270915974513973605549867812342238345997383197457128562654842757746470588808679893227061763588721402649996253572306182004967145011347834164086153209249217128078463153684404983530166917381762673867621605386610072684930798601078633805787252609956292480508877914510083010119767241471372580668570194700464285786010609893217486490172621023397973094713810025401938635143089541116401418226281958481490763150436787975651095603411047080898652853331816580777219598066010813293511183139199799886087652598838769076275182766510555215605105506143543870902959967829203419031446533432813405930305681206115163922298071593884301024694654658567307967717129034191133780146254446926488704100360913333995393310505222899318734026716836589834289860098940224200051249671610187974071476354664368595089437379935264698947187901591093666179198011734892044364544214343273313971561180855192586303525155172819293149401542506638162209473696541671980723361357193213467108685546533857948546397436537134501667319552545010488971333446355545879268372902193566534438047365455979730814275222303752446252473095671624938249813377740292079723881287910898712454916199545548593307205086365293251716838581847844791332354809463271196500697418853984004007603498187706372789616526776513171832957091147226112268651356092513729797652771014177120630871409263792261057239208747964961136384383481792260033749693529442253785686580055684678712425734220178593163214947530247736405185004753662375849756201783392627639944573930049669761402756802013953461414958016135034718377790951552137491867560965967625031332455835838770919804222751647170259525528297737784410833120560208314105311557940406810096913558194101006048503864740300069426091916511172139949928408604494316285730055143197786014461674219691054629912313382710262991920303089646126149585676760291758042744595790076237141625647698744835333017278097079438061420665759686833234320421182256422003170060776218271569884763944761718140627465899191229132150640039103484131879196477693958301155509828324207415686474228046916062466418850036720582257937282467628500546896556041826571098435791390985450443448727776323467096778358643430005705534325718340218084148200718715580228956199409637555993027272506145350876683438520866111191764905053706767060641174998202533517603554931149643753818619948109852662243641877381645208863334237506911687039224575822496291904135954440823349394178115493633381017034104056094611549739032477136482207784255568977040374646828488205736894948140139995730154921497669492447064901550893069905351352905317226773161994406081466568728745901193367783603287607480046416565139726979184271600740433826583562540708247069498091965191347360957642197349667321990355839598337813041141583153079277097838479774411892836505476416439967545729659860060429570575679607922848809921083932166411640695940480933172561265160468860881197122332657289681991180039906165011447522113331663148455286466742955491493762059651976037139074903559780003025925623384931118047640639890310017511626979266496429094898738721412801697145215161912547017652603959240326036350978303647037782690045273555598601499173955322881229696929051916211983694416867629681474112016932645794470154242420577924697113159442909763489384806047624910014536091604136375198892349881885066869134601216937535814733488491182713936949705537110738353947958398546796893395416778790067311818065708202351075389518419578345950685864305098337055904830210273980106339768700988672824086762499419890938501240242909069251745900463481098773479732457938209198217817400354512463818733339820346975709240570893957489883143852807561065839108624650624676998805261463736689719428851592984651398835042424832496687390735785435923232563561138897847641364136014070358953857716529508367260661065270310557394686699132926818003812356563281683823499046554563256814596006585642268842994512679728689612007776905813036888463942070575322784844220325643559743191905736352906230526417443001840782945892129004068124196620183798605306191008040954595328831800909773611867144084500982087159305593497469762113121549584171201167136256965742042381046345910346547413839073704416491945775513824051782409500831606752945341832669700233496219593957704656983576688051958554646573978643527589596607001074532393933952368086062190032466798231078945909341744673837256582409901946573558490172015040463717104206500685376130007576682661390666457797541500392331341798208434230419862580875859670116615946243320719665552748412172391114130816080441779463375353139720096073567895028959126079707203233854733104350196641396154497514611286636921289745197523429631181513757601052732347749466931934023261420123016169046638678061637723885803226764695519081978975864793291698423974314651291282790148746701859880991235542364513958949459830033245488370277820817341627366869803760199031857012623710471690028531105553176943369011007417798364788274720227444510139765582873143875113701486710543468554752347240319538822856828728698520405896802720585560300072668605684024689225022420643339035039618156650348113646325652694060815908479510354134801716488681756325493128888713545172138167412763291336339310553418101534589200055143270051637229660561546433275362870574093627606263847051457831320901730605351362643020278680243991435414561885774787539738819050652601699626264200375456135421791009082270345359703095583665479226066900994083853986673997587460019577580591728096151158231898486631820517334058235272779107675429032869410529534319295659853661742078312904790489917872273640069807940660828044273348109631910036070265574824823637637206042030650313474750501661404439828950536608798297247963850413012933195599525234318971250840602268953591957099550779473008235091254573567845335110849728862715344922562087434589846224459352576151619451394421034404454417746919959579008713248933882437798313276400698271969228229543823675484602399135457466970772507163580572591898284921892070351825695312928439412892022038482463482635082060755780224155352009574565126435039567425369535620177965867931383343531095889286487697237292943589259549229658925917205017009546884126148179961837053192218680147655227235485010336746738699995606874030988091727206259305591850832885719032222517888819122957137661201860556640083720944323875941879852482126890670087364167271897097348957849277896186461237153447649166234257189917987879870288632318636661791028753452514044147473641492049376520319863874049710323529028680370337500336560330186873380579690900355545516137379205827859072671288708914774746077277384510516244105586696849887100044998496795536860505914778585635525869136694566673849874084270548317432988896003397534417694370177406152448918329508628283651223920582672694158317000673333755737269564106858827808024144288832730845735112000046525766004236886732397139143970536111035930732249489409117979239815261557418372523845423255008302106835005207872383598209631850384847002984705271090631739051500544042566435260251332565536548961456249162221350397494118815247617735461319737120925280275813849955887975959064338745924038646728353694679390780698543369119698319530112637699020313192815241988917449543939015781464238071290214839787858668225404416343114027488633459603933772469597639769074726918087927982762318040746756419847668209957518115654866195252881991113416048810232167331283942899323600193109288343927147442475882335716392537726402518494058559638728239155260542577095613827728215356098693877784718485795245558999688303411217554264091083794292701040104026245130972491830438103557263642196887701374952561383854792584790209159100170838520113549536837455837742178902827648683389239866061546399638882811363629159284703698482588946050795004883030775807947296127480524498732418137369728117331235444342163938687682691357333557734793475435632032099998675378023252051175158841919485204346641319842105722219152360006610913688320016180755251252941193868742775326752746997152273734007402851496920120657041906984845291381825476822843210505202464931479383222508344254085490348279051003213317825316943319056703184334068191277499126443829792173215962857631682869361328105524156122125521067514949594440447707416982159240895039964196605607608263863250814790720409166663822601227822367719242674151765025509110095488468372720136535439178949774415881606849631226375857824442457113633247710049852094245481237832567211786965757162498777264640772236863545522737654159446556826439965599541799236271998567577909668460442122401630607919858888949203660770168602380546171135335820693193484278278446050429194454537649989299534533181962000841574289946933166009239982673706025010265448671727317988268306125155815368263078426798062990926046685907210734999259335879751893099202810541508098134421511600715753278799936070864479538253253759933599917715411922909193847122322197415166156386270406203390389609482324976504155143402373179509073424555874069075265020129303924770308336414985040481470433193628520783456502346400182094592700207475983623697840321140934229705583010704970283282647642169462764932636089427975627134547291399966385540124727098810660879847218244624760727307697253207433776000330486345935894416227504525171499998200144616410436375156909202737824560360367917494307385973409344473610882250837084557126559588343475249567648250560388040529316596723048854896722929647317689768284624328976041118128775992326893322967188526732724044350092824953756013438937409790152680432875611048534388218406375008223901472548841196264502635067313255313372937953358879295742570195554235254092931557898104306110114758173946452614133155050242023763853340214876685237539857598168219218701783959152878274337602029645785082858929292619638176558493677111108420334894101733755245411706822453156318099521857508516303851122601511256428583432008171591998494008992079437821465326416990005469820908081469823988192627675031926102035395943954822361200836420461504644695901209511803121481615965486603527307814086256572782895951356609057943730405246350560646494687082307134270801001228432028699115677417616844290420028370337097961584101449617764599597645500540065008585315595669730343740220420092713108474830893928665444652809222073643393930197761613665604649929822442845040134794926540084213807758309114909186511879999425994969554873940116616270376296435749559858541869082346795169551531651088203627786957933473759589301581270745020480881814334107963523680741614883700372449725478275351755531872984412989787825643312859470328052304299937101355850547001842389498644046801053259292217269302665891261986754135854182830733564069896876588030243852864700725712892753934153293383279788242199451349552194422911023311562404038165830492074448344455208651827286065916984933861484855630326828746849834709448315478069135178060548225776926111432254948339447169164002441873199004575323665324396990692702226343839219119558699240549679258834541324654007798919566221608033382255133381669459373463798838659010742148476372355263677281988009727559858885823958011708795991286413815388026661319270819126380401070596608374720825560694116472737598655738548159565893451552005396605885655642637382904173375921121825089667825273973565525902805042968762808337452654319468575646384726889762741241449490524910624738549677865412443001783143515123081895492906000887229133843033134779583407981318342507528112142974731435840122506762722715631483805948663435231217905035307504087309247346236795838653072770693837887374672269936549826099073336367079216807558341957698302921604116833629752887151114891191855893018196936816569843333187732139294809923876518121327700760347741978267182140517214519784633125552897436037661516853921328786313634440422492249567459778030618706988853880526770841796038314403029415426812002625713859938392352721249352861784275724547777254315462444918514196657577357719144930590662407135443454458899575120102578823179336926537596212626076166399944534203418708774405183294393946598062549060029228149349360274830020989564768946788475839744296110424676770644200912305477219284873349374017682858137768349249653667330873303591308096670915079518111746650348957429964896043074297342456507281223539090034238520923126649602593827310343666820982392402013010960523275306817180411436158346457632220852172591027185250901767503286627318632489584197563366507976677923285408090042922451007572133599604595054148369696246876115299971187805696817576698119784997446672349945162506916192225048613931192986873886414124385705183016352542147871780692334103320883954201589128464991350801887514186708394233353326044946052808351304128081749770753302332128955021134206380861184954280780038257085529097239588476558221122468042600411934352568266984669090836246854876780919728648739683241764944620724594881648433010983725115173100529141036827212732932892177710814109775497319836623486327774566513034758086207207780730602115650464110715698307838781540917006316053847397563324972502048900349677690985768552360582990397048753566899493522188482027035520761925347452150438739067142517031016626804951137835844196824355624705840391205638598341230095480608651417394043777749908487732348792589280352627284761075064939832946270023849100541622114241087476003715498700142058414273366048971432809760139240318613990293228898008325911149794513915827230945418943368230660463347965647136608431604501955360815950873732778042525223732407485194423938945926449060611386527372474524116252981424759823884195647291905906487098555441223074403774750236556928275344500809343227537895760435847830259648801512180840866088157798728836097008035046274931447847750292678931926413399477681676228408004901264608740372085414782479444666831028059839634921551983660226525648419358419291687243617403639024469243867581116676342320864377309300000140255136052043825937376812089946769151724992714734906125637496567848632004103006645939737254863900842484071652406172261466073736040400689176464294188019369574429438298978310351276298349300218535755852077054726566377777151007765296534595422657143875500495526757241462248633330300495550732540743111272175832273620074503205829219346145617193590333687663503139685749575655588345334186779947351053158273648338626421924701843542452505152403555397907198510810844270423741783858906886622682132541012422424185529417619281674022623974686152130097106647278491325516902707787204078214829472707537923195749594879472676562091432803777909498524431025332516813047509248270674096532018948390157052639282664289229334177396925992886067091306935612062499188290185244436279917839695793902203443310880645680813012755912597609224955649838238211588570900545175198849880522995599013074266014821931783580396054252842587075699670631242403999855007201961980548481081777653365096396270450713412447514923800069202920254840995751542767126904201234066642188336039134056693736624691045776508393801573881795607736996179328185371228994948997148168973466853192930563513128285373993847460412275856699137736787924556184818848887162285507383162483730918081374441964722971521071153046778044720922452163190009395455542776496645197300853035848996006745976991903570544778083803423873311980187967290088796447909727834105760723056525496940440609696406448497371431544521062596729501090860632312620546475761930330857734562123769456394277181312602797832086443439011369772935598663214747965662096502384029895968507409745094090084299476544617409868690649607391068730177459885104895786561211996168913108527567040762870353679450057932019739500734804345475404113864097872750766602608518084569398707741863047525963284282843740351301389820540143099421130848650869583640773126372941468105225064039260806164173888691911198181799302238149158258378735216200284744318027369052062387222325820232286037509967768557555862100136685149385169185434072357173203445457278414743412099891958742823142760624463074352030079387518859099836997231476938868034351367472957949888381596854061998939395497118049109051746338987551872034085022397849537329025417435575127836417861697645721576914510926592852093788776746355324005320532339768812591723586354634816299543050200101520994408785408042234552708190915790392912220383425089439993265312869799540811135831141140728692268146466768011320978873913302762393170267106631207315219585051343903773042934099100062073018622952547773604933617260557893107935645225030993495279182401719844066404365839788171681445559084531584725370805692188069154626164377645379666455907733604003905432207108030634056755015891537460252461480861476249439490390849793491658934271257936546560505194892034664378466837761668770976692216958272398503051201880625100172104098851112150481652816535067370746178156848163385622103282106792996831976115486203130284411706555978356946429010746919844180077133176558167193998210286168450274256768685289866615938408901991531014418382236509354004794639379342334494577650651042824788653783491821288236603847183412116001626383363945299457360614521871395686782023978405056713143275522606609570266107993491712767475964413581820904512444827313580531226502486314224186622036568050820514817742453416526683261686574981603253288121529848853514708417845329811131618574870429902586279190389966295935685349006903328450886367113303270358639516707281398698332084114762565224406442514507623257544958788538609968974296726572191276209920737508317283833691448469399736801993391004697975860508911470481277301586840515457287904382617051722312281067266431346002500025320188912200118272580303256572171865365988541130152572318932501898461095581467260971057888242683400364167152239483499293847893937429762185345771079270922924324569649622021258669376371414566304285899400243030393770469778733519384904445533309971514317899817659700574240630829563372648193293312339127121734910828603697816276712713931354790380380029805415867764552092889449355863559540861677513456856918425989899503385174328281895222993662372688481381701188196318353232831373970578413221542869009860854309110844888037856671144205348922209879751994599351762151693224782646233119743002898789421462449253021570118661084249622577831871360641458573315054987557957236605234360650998117269549430962430283761141218316908251443786539233961934957874435376428331418820141299220153866122490362640946896275372804808920904561698598091459262510607318970973743135425166978614615322839422944079687465555136454496390970022461144914428127836452613785968041363070962719199701510033530070234794858598442343563401751911542393160038445368170024916190345880398141898111679767578248711969031013872252291018234814763431450691219183092962729164340893573123662124104161844416178716839188439676739601562117057225884571227382871706368310222586004752426491965972024699912260528057845246972582070181745638152548140388258704979909993775339942300763332946028656737894704760173911362539660984844367033121970003376862799228070898270137410550401474635248891291382725021122033295530279584752068623479858894149223251496197321518236374594023526849059100173521747328928113695398565018459942933019656079230023104094083535121888425560086996838397167297322433085909271567578333028870099409081970816429163625649402469933890089084340721747012635597906860653412090142151927448721369297472151612497642966332154024301032542333411117510573915681180556545893830634544024039197340881220759766131728591461631809963477101129706585932468763516256364743995368910510679127694755132422320421612731360277807581428176527107938563765143132106328183488134771078854243439883386498434743617067706644558148585737133523777764918874973715671126730326568994277984124209836021100321942717938750291207285529115559953604213739119856341477249598355843569472789539806179169614046916832313826329086249723119670176062295504875838981675435998450330409349161879986183546563001525747454432081358982910211232242016646373478875291383346601204800634169007724850577011456959453730959743859953143747622435992227768252930511982996666060113075564530540711233673653775667519976931430325526435992544562730631450214390671922863965585490100013846429280543685020968430556419770720760505783864630429687757307860171909397428135624993436220438266485920312719202290331387082423437151338806674938381233543728577063274239988444117225655746967001303234935822558347377071037689435436837996626021367075206782435008236207353634240712084639719845219965052911192915354912721898739727310179854367651294910364783743357091713639623704425501764352104952299105713927810894959856502734703365585869580985107566345491849903220464856576641998408827230768209560573592506878598640639679147994228053717501459296945628276507848733190188848502989635696570132521801131780165080644047372044083290444120019614604169252616164624648429488970694661012016055456950219613886823762837511098414231576991255742014352895439945897474562165540617876629662227356109481895534028308430918185572371517115036476119860155417443862033686536628055678378843691144768323542525590800228124912547584858575969103755610843349907822510313996354608402193692925510371848112968871327988165704987975621052962183910933901348761676967863002351220591010484099110803592972564136676559476653035889681588277224755797880273864072639143935806721900663423770829968403972849815513613816519330459678516549808224829758101646356912797990235940894566226476128697484007552556091142648976599302277930756274588569799717415725144277251477015812680696535616384163064935001100471483689708338497816078703588698774310817510525956937375972672553606591344937413370029484902873427022629866104550137537297464665631221683160630335083959266649316922720875767404818621637395779859477912620489511077982361657482342228609943829719163176195957025153472418012394508579261011729563440835007174467221679940624088533530046555864828273401633661442167571399986849495504800678501947759108875912399760435086840694637007529856121908244554976069081139519550347463447135725329799405405120888795960302617198426029263014154837940641962931668614607378136982301466554686456520346832807332938866166697415478446891308927418947789387812461399205889976730246354540537921085849657453221236537239201132698026107520459009152727371342428164978396290716307506334894991415092553413573286576858684721400241272584485895652695384496576476723237710078827967962392619207006772379743196356340058200111530078546095724109558224680540053707261361468104858086027727879933303477521696902565235804525276008050562716319976230217683119121751700675117104513890288840349832787172466452091636423199273644023392944894639160621076666996312382347027362408783167888252918257304326316536286201191597060381727006184298599456989062653809754582224622488987200966954991615752576518220842246330391984328435390459766009753140945666055373936227475486855929608840431085482159440875226238426417938270469557339255078981395037882091073121926119131457937104333801764703822539285529773513745687320719613219359973862675586590426065745216460160380775009015668306560525957198820607162600661868899066025135467775110216642617174985048628922193439468238389770515847355957413294935596263182245906013018902476080082580541418416272481708657967477906856221215023252854210110282508663220202324454250168893562490217028562561250495542799682594575591666593943451584419993624061846424965085894890662303421127569649676448223102665075889465208171974508674220120965621493958191142902094680616089670245080919741746041528441844766448092182214823851421618808872445514494445249790810314005161090428333350602436805561074376598630394849278135093448301712956430678402297283315997493318585134229136224852302485457027162679460363980315814325282419493957617647188412097941153778129791180537587547279980238719665638745788442710288132368887929763157062497294894672717699405594719631079141274674993928173691941333312993430261449923115885643057708658628223171415882872350398767867815978396427828867157945698715979743538916685945618291134275401757809867277522622639437331339450963989059975669060084107836056749603812943534148623014206538011850612563810597733165848981086109184710198755952750764665775418257873191896816968852369288586567256144403162955530358748177545156573591293098863817779257343654159365818127329362084941749806870709106328355818779089756379069882437565870825001098684490138382615325726333970235750184232337680190495786138382736470457465775788769005677454173759124814021613789895795739030108962125690314759470093763447696725282360241736611853651318808738942073286628948020978696345573486852882849227736069063014191979210014917371651711998481364811506549168398190835152748286575305934944853893075085669950818189561886194625578568151047295943723894736774203198470827878101596721176059058525432230156176416263378900646946795052363913116108789281134725058565666488743682779183091416217680944910930221098912375465071861115997616252970476356728400049006780847089259938641873058976895022853390607361708209066016029846399216171274400941803011996105915884685819768735474943993458146328212684811915480214942300148592103308262247713940807278386971043958146693629586503599865615053151914074942175938695690878947915671962202909541772924202292174375848057430957188675394460815371495694102535409490255606335919325397438039039411862791162832934606406684693275484639598495232216185432315809104476248662584363790789131373264688223263821374837065274112664795077904150377731576205696310484472109515512663626059316879787228449613375173659045261267820043356856096067599326865186487140229530264941161156993479585837294287013488588565843082903547581550218552052948916751437309686123152473189894608241137652589115933462791996308645706399727502491987264070268836048981146773095826250554438516660154524337818298581909336231688462483479917695891791798090633567759319120623375584144037918983862559219728382498332542257157616087427523601504265707239646922897809474937246826693961658194525500652271477540647267836776997653135873312545016776340426353901288309659316596326684275883579481320697575411783135859275873270281563030439875616106437912540001276295315328838440234196708229336860386874377084072817561396708358315241955603421387054508291562647882791186690090424001050362079587273343260083311991406567248322598831608542630701243135108723007649746050398867110750784369072527523661063275880897297703994955470299678971083231791521915546963590863919680143626588715805349935367810322380184095441301689666263669069119804522036285571189661111618002910940555970126925126052621838996883904691798515985168324543456355600109380466479005938223670439915766971351111341422517213106601411888345484334406220578836816116659220330510656751285821859963105890717479678534236833792069036008659684156620427606245534381763459906891559497463399848513719109761930836258127826802133088913979886273697889053014362281116333909440714307964309076712116816201550830714814105419763075891636717589784491332669520630560638606432100188149194066107002660531680776802547386072200133232795389392044113122134064822950968748825941075822560462150107056253269594458667292667037547228945654989218406554959137372144589250585290517609105908800351696370706521250858368841690221801101282808375387597890475918614212082284601377258304027890528303472706055148874958257243015779341185968640552063003131607646947129510673975618625763505651086876200102240988666218964664791509609774817141919687664080935616133767353608500129889881798669400234469479274893452482813120979619341137797833628943191249222622986867208277628719317052933000235920839841364142171262261907548772203550169281321839941298058521355243736054511670239127207996733904392952633438107569090511099224295658676024114918579194972585027566672857230465755618512031005178047596995998628648335557431417641281765784536258360515268727258334684699964950457173959872997508627454481871068017767305528127659044695111235171346015436899100766392619040340875334390696304649520476067366535269378801137496118106085890919951102743109507620398627529599493910488015207326691986498563083989260751159315288578488581368151978167607218200413466275031372077935216032692732194017110048875714302061001238583662986120834633688111907937223915113233303301647976022446880710058622762538381578343834384313347903207853087154268938449845791285776145070513572608787261559968708871269602590218081898647228749403702877876437504662599853776432231079120158660651984333672977548686946832082080820420106485948780193258542877624549557768808093818416016886193478182775595805423119198578383358959023131272481518805901759981464655765831910114182067727938614568473416806077626536503602098811143245420143130061378334882083406435078249093117283550698978431863567901556077899365867387878884026494392948927595706611685946167093849843313216436436493705914707772597711374430730666269474996263024888885237922205051934693264703794152336160609388768848586670539003574647891484039253986009245960321207935860176864432408126028258744560996187435393110232674647916610884267236110933150692883022577052120863105013315683956017184002261572972167186934934478451222485197158681666377943102662428053136884300433932577111960323416461576075997620311040222825751144198356111128454005578286366807237854482376115299315135803586636816257123667798787837507439151188236424580603018829445072693893383384866000052432121977849850195975497502489776871589659862019855122602600075302745993005787147161279976298217039568860163785248516471915531024270457047062610993485666400063753846797353105783989316402051573916034381575319337688739038351025376140015353805828617778778670995512563150206259021595681535463452942810119492908596588200223319841481202195109497598119987142449082725187723383354442284927807879549575935759557800412191637733197743713113738755677884140641558051828454484875510474284085316592842453803022951427060366741400767792596294917610677979458293221858825382592291393617039883464075397867336542175875291224978949628452288769384846837607913027728676936584281538872951634418868061404721787626380363149279010433953863366780088743290014103054474265858089540035262927310509181891451546566940691815310196359423055260387714362193014410787764857204643667967476405513743626341593909052691998783894507719766432679485459451027850183558591331852730738742322625124059353253466443150484633834378879670654162106432662891067520736618930952341388678459743173833920644358263473456112869509135271937558590192679050083059662557125546727513582326828286019442069458254282487859789680070953437809412715125424849489165330853318894348473550661318205047788291698553819765283876763706293263787122917898429360760749892891928367870056943222920330244141306408752273183957071093604058496788473025743745795921349777106191815494684535324912952661201844806108343982182394099472748340055524169095784546202461818036214723430379930507060527746534841644969486020454807987985303113771022692831832221725168044624645649000178460856701048185706542172808941585733249300986834105400177068655187064793260947836511732941259325090559097237166939907592538861725992730709338264885091623211754887840437174200981450167913511995547703495980430676302689592648455225175459502906954494586837394031082416732369626830617451437963567781038219674599297197003397712365124203965846367901327663569739929375951358090441173943644622444852027489389631251064311731608751826357679694528937030229393112434796945774659256970095012669041331307169751440533563136518072181293792534494231625678073660162090435806696615071728779400313412630631304333930670178257195588456516448277515643439898440752590609496066611349417267431136722374176212160976511208333724000226235609729065669435336397936717268615296419966455100753295777231480429706924538529312154701246019354473416614500054924647454904862321251517282587649134578414204598162771962239101360259309052221330076792249986023769580038603840159317288530181902212977265480182848580903092644142905476980002475609483692899217765251756170877123151634231823797451239103777955237314074646220648631132475580126132020329666031749724223778891309501263647084987864122731211898475489326224970846268561742409557016309820635559894466085883690798254541862815718808850564893823582898718340025438682148434605325535972876393418006268135434705920464112306686120779503594988418013425545193629229225285930327007665262654991994716920557756259537722413367028770924899811272132222625458037416430603817117248774054731981673737571202643139503155020817697470096194350411007225305016075301894748892384620712340324705913512209359573929957016262077264786068776512965356273405693984341832860906390026326601512242807838155429472060093472376281320516349857591118410490059567984034808549323326471143545704565044401104118579180753919898263591046992057104922298637776440228805358265871345246018198888414882217245364207082993386571937660964785449463633695634314896484803216243852900185691682211182745869104638499737735241532644473307593969996327167674807138542092318621997134732761837847915761866519268111328135580927615855410245294271929401278081506086059715985679973997179206329957136410395930906996516601688386949111602473151216122251487382113297857061405976110546856904579646797705324822574202827094094149547110806858493962576893100630244516568402996923880398736350027718965400522105655592029421153211661965013744611671911981325228482203631989345606439980851606794850319021971911419781310107366434602339162512906776296710503309812043097605724354899606171145272697166063574109427774272507299798077007339234068908610553783328204579295900545175216949814906965451299596960695713376313104894148704532885111666119138370981358098923363451964122781209179462690625578289796692182023620340270551657062943329769362755049005289095398796416098307053796287430763906423652056157127943530828134195797246030674381384134309002902013354904711631128850337373010145512146841470190314154952529734745373267917821917930573488247601761524008380230611534511154566758734874180664131309334712200157892842171094983742911777691975579324619706200854680104223228012643893296147006593597727409240963160645270971008948869211828043732141619561496632147406641839566827410042937255922079316713469892204212159920108963189433862474021321393409841520750502592657285381182828392636129043339762586929518566795360880348601943153955985956858286280803464364873975274922620059774317469286574023281381517808147245997168888130278232626647713102868373636095513474145336674496070938898415017760109707275061746015205950992681585934412717797923888324096225294129154856259721587459763544266937103241652374956322784906575455775380217447664984937972635791969558024676036079630542475741044054127653187884318781205540086721199189145585881475490227547288384361253376336135928598127257871522809920578308972084432735469823389598268182744527983528922711197632905818214274666120894995923808769004774790494458131281682669297502589964272003846009082031791512365382456155379127042684956294434756365444349337102185472298750501777404238745663485443272325632118175954229286581429579568846244133448494432537947187117735400709427000629352526613770856019018832647159659310049651598526956089138378990883068109658497874463835688274038010351810787149136830119209742095347567858293601409855443115293448889718143895970690424386079735177466469910217954880547866671979358180253930610672750046534584383289278558681409780025912034567759387498526601770082054312724761802778996206292452762696446846053179355565858245247647183470274304234737972933457175582927868325910269455855091683655643979935223961292561378216657196008308063027339638577179741107927310681248556882850733486472116858235480871180569905399471975477882546199423053172246190600183202784051963017535717807158921545052395595025228830752294626178721905669327428422319838975019722806352414660725469568639116403604681743005735521963129858492275733456659828277725057393086215450807931810198924919460394131383114842682228611294510241827952192775968373234950428601105017602059855309368191419550817570284476459992595073281572599263517891034533522374919491319392634265224972978722163268200262224599118168045443868330085615414155459493666383128440731564679424071830100137274870560846725447401184658568788037981097420529595187931576943292679458516575535774285442597163503171200798476892022047669681369025669306176247319414784943688091542632490066045779486661834253330313754352622364593362731385557493565153951863058087802867917575684358818747014696050543618205078803531037160078087427835589310441509957368543077992043304956389019681116651667977774100574358781981717850243694185388709856344459249464480977186537432530248519707364001053208708755405690848628501878041302221094083231499575810018260571477111724203096535033104575715602074525930884309833903972552614247988669406520027156987457430172871821625315300190132340457214144458162973923597864986529411477275725277138251030294001742806628412323768224479662891264994434472598412488290606027546432500561225609835583210294791564807004250224613509103371753768977046550568579715155686720739701939469215417430343136087724601641126633685713344681186510208011861328859749130830381091811074550545249590912145750807541163274305261676529307412031421763218063919131382941903789186141170065137886308084206037300948542594689712831982221247074657163833845463761837837179356281335336490939557403753659485361863357140037187202838440423154317018260770040066480489571914077249886862202345189241683677960641788987753288850347959676242440965749328021171573420902687329618728613772012217532588232999337537074518474505166262945067543879050745117398830592661930529329647868929230932832729143171881888055546234094733265219625711527041500893090179912723838673000010137240977733747718592972934407791031951057349616488656154753494632190938259928959163023456972543725686545190081962339311854258272983863916096866248298451623841590844749249794114831347233021119173429407486994198662556980185524276296116299153966826344371696593897647870608171589436983676040363856583442194060333055131215053074707774101143343244096775672086712011492026279000511253984513449741954413138601027719947485055382210727060187296368503726521838552011066295026853000289330868800518964434062981670003830522366308739350696630500599148111731425251586141612392626712334269900351648864332736789677159067874794807734715738135086401464205681237652935666782605871517607348167027323019650732211242936248977842955971572012717275331885537999696817028546578573782034837236677604562571128350210823184864634289806350110013701997334386001980150886603057677471813986328135971731759518476792596959242696945274554357928597169766385665252424520607634350282238758941949143161874891946049662570504508287343233115318167666122643189568901361976552093540383047036987870421779179661640389867862198893463852267742774452970154344757297803611535558287290435497472194310068339716639510483984083976302675263268520686399735315606827408914477432721847978780816833544603344883475388939192371604537946465168083046409662713632628835985610711873840220613218825130392578651954839141201384491735023004379811429661322178811707179492694771903300125332091645835522040237317604800032102898954974652927384398857446352696726228630256856736044484237632388750403727368368744898138746520989656849927325964247437600886667933801100364452839302123565066223087514369314018253243077591138757633942309353463565063337032013619851884953218312845393359088345520501458377691584501199473594888975102235919599821802559060717873756904817084576594951619889795644298453117880860689728784775210786147012937250197004125845030642658197575817960129302525076539763460947901501071328122689273387696834491899200586302680948839580039785869366127434057172101811125945006630421922446909532298898734830149855637384489283225414339834524537150082229261904639299538392008903529873962906780848970865750735422288561026781551247139438528959677098504004349194524448001335498368286709696558066364391536316984014240694210147977865960262725347465943564548236585509094312742270780531874478048893520414621614337525436141594473556341331732742714251688687771173179782857406142972173611110511646795028333404916114446971974326007465950890907524596144736787286089953732103724052446688865137651728492295379466347017615408345184696155253370999068323698492079160738468033247927766214069704397016530491124972539332132845150558519940623004248504972760930386634434852880612653168826418250684357865320637365412894827662063032275495774579022637724923358911041810008072913061274012326583683421624896900558556410665318406028992245326484199622462356107010824852826616018122308111094477375374118811202262017849471129924071425336060562783677379237441935659313509063149072248812786078458457489864672889862618164866228566122505125290970430076602996092634273043807391322857551770820596051329923355996197930411345524094676885537607327396597710628126570242849447417121452157144810397450460056868582980549790912506526939689538982774292214671106703901567515583397448728996918524191415839379806285180239840588853799662842180289416075541896010394055786584472634919129883897910176711380645116206681606273343512742189281646188503576805732920930882310656368549714762481000552008859396994597427948933229396838616024703409566679486167306423308763091241324775466563565772853877612292990222812305730346922946131707063637529220024305424352986515150991710536254071356578055621005185312462954488736046703701840560918480275118435241354401185006247182399394920753901135704395917527328616024848881324447651487929507700151121864906235179241064619784907580804035048224563783826858186407797844116419319270245649628369462485965011670578527541091921372002518825481056313759930896418309231343914734584598445971536350337531952078264284689509490023698687970676658169482193196672206386009248704616167655228372624609756838547213603058115051046033489403497773309186683593333432005477677131557402965843073921004226344552978929188827689291613135241980037786973678719145724164554338442810983846465630189890757310940099399532585557817885389767674390447759094264765745130976433619978498558814296959844901116332512459001254876346720499197646477979806541160047203410836258792647096963135065957601373216622966788953168282137211314007932240217344666341173347011408827096510060128675180372468132326378961305258189002944910101138340403201286436727906384957995286685465546693486642829949342162781621494456755590405586071129578789760273331335220179857658457453916078052082501002713269722902684860539012266917617357342669087595793471088007165192833022189571982778170278154105126223347258480463454982132577167312056591920728969222826950114170076007987814893344140343445714282368284799222441932046675086043364588718332095177468959452038903186557518314878137730120956525796729834023771737153635454797154170799969797981352434434922793285347008299316249806676316374952434285917392281310864915124080602691884248089137323453632756574544824326750464310911725591934902011471418661612320340267307972294920485530689235078269622238278452554019964459255551001604736480571527935436589209506640991533499192865854614282163387764549487769198698047448950616240838252233814416251342487194008678636019093160415759228082291905877585696546735275865107317884974849752623838546674433605164703674254293447163056614409696063358453865979159799995521197331473948526010830731870435370464868001782164131764274787203575526888356805553137925613007355735484674049911447660846524170935554144131918663784025789155646030593480706837958003372326331985152034205383465602895594925569748178731008030920423131944430166996956862064225905127184422349254118517762636110215942165957938224763748783470580041419344889724256143533448223245854277332107330213493256347367271903790450820632491681687358795960003991098836380886360995258086090994891445314508998273463925033671354865830320448574421776902952760330977764170806230295373023093836456336349585924312008453587374682682332092149165926987988332245585285724566722303188188190348078737507257747380065990332722250353715842142182662545921824389856076317423440915049881024710716099893266895542637267084989300896806810974809278409934615521658843007776890811527438551066651474503407715862102040982920089485439434568830410307647049597967943068240766854809478262111113705518096524088114160094759967192606104102674452545752540775981767309393146151518174800843227086075715002930397264843314135371636923310789062335821669956875046094731612578929458064233157194269911165341903687337848192473141063049801081849495595851352023081448036156048866690976771344112023684820585673630528126611012579716569469783422086153030856362195410672642823578040926135605959966912663248534495010753729046097944570214695580333320062956590653620967531764785101702974530078712318116562105175259816149428523472807997464549544830864313202370100516795862622110279159855019776470672748316452021979281809788885215368864897549971189041616946793501482418620834366395766774338727590156222336730910920306924711001510891083012751686338717155192643406687067760803875247559414727790287667553956591225475141900047663676990542231485331703110346575638787529052987919207677316919595983777543635305945723233189651989952828122448793632389750799514515282999735740032057144151222381156369588054828757184302910650708059965453658242701963021423975433222071908774876293902337858151067209135141318775094246084206681500369949576997646956867123903325064483283308872581979922652505247894255458118671991947827012901838919886088576169411690645295251170180236226265913958496336131753858898655987496028964617212249153422829143627714467999969133839056323512621966018979230334419182751025094401604501126802893259348864819802308021861908453162502463642323406859702480953180118538153917275765327427016739018270966796840726387074008058613361616154038644717064134398376890913001948923164424465912919803699822136880823476083517334949806307092175378549210602497897561329411425678935729488006180513275012925938038581603612881491661481335638096565889113681335004714974350744719177604654070424946654124248566047252301916318060588215458068141509969113690648526922418935806961526081213414674988259917781453014172546551625819262704974955392358832839513638958034092350073348526142595133058612585535767965135570937365676224668912307139221018982781730689834709255578734874801849181005505822772944803637547546921530167847453164539065484422410451923690216145270845195771279537409823115947673162322571226931871885303542253436730188825271181659194429936392899754610605812932609712385629787458066515871664777902743473825953124542501861629902619573261436453826624256820912234030152239388216808411039932681794236648809021099970957257836105929563164170391049330344385756680283283199676616796449164944012424838381095177849712070271587273263946641252944254260729546020745177694874713042979691839965053432533017329756501447656718588943455920478369058451434663971737511977903827589883201847185129756542669369538858223371305032655155908883277553259373292770326509669092044602159554715357506807597048836442789361230412472351211347667846182136006811617082862402168717698150938234536735547396573208431180591996114663609181160106811472408397140820584669927227562929401544411093496128900314279678703515197790685298621400370920549548712976754282557017559939987915165152498451482356887716030253742889219336608709240291341063075496068279686694003464129653033377020342913052892989391333904575249289779572216377048342077744875511596657189569832588407832097957912325811938218035808424169485065707381977489260001814777159290891741022841109379801198838891546471419313121346160546529528203334362516428772906246336245000113683244920115703574033194623590117566873414809772000479972598564188951330731273689063868763619148745318491888887999931691544493912094004889397636633696785308252744230817768341770756599511039385845335770937833106695050229652925521392756045413368942972065807007446343912684931840302765718628406722970597587259783967127502834211018701620667621507507221725694346290413746171449359844090492538156368541511544378017715479070515542772812376992102447772790343898467063468810119795047617432474167140677956174680238676760728372275446855559342004604753513097069148961354430001046570225659958202880698022220212015699676368832917700867472491571597369125015110090785994163073807975612306742111598724579871764249515694184256471801198278313804522276035068780784164290250950796596388791130124678888050690207728291469649821946025245182982660516005280466584368057744264608670299840859311539766331506162519337851607306931191236337598807409362368837007214476984728087720070934353131024194247630632791741253494420883713824674749316973297058390612242268175777917636519409813329281905726032768506248813162536648707077546646027460825019166670686743351184281222174275738704778292059100282420975298588078900819223951798943637711623161735898020516548958677222712473427965123041528359872203106428264622035544650615116455902260649523028154402453810659801430061484969957892364765661601956677250303052475575051447440020072823982975561552500170476946291238120375090227024343979387087418712680762597520886881839466405178542859075705022770929369243409969174060186881256429225384852114805995570440487427979438222342882988349167713986750137143772112886394912863829444554608102767205183222611359742412512602142650887206182740765985471581931919922045489887863237507332792527530241163584568051260096012104992788486359883696636264057684923580110513831057798928431759901935841686717393158789475355679408823529988203526243054774257054123272586141254440624034751970457784412385550294330287086068832460040183786065965688160593136393974160595429023108693280786444404472387429115623066255839997005654660866433417059797603843407309144770675712417416802000910097100295515033232533556283169947882378822815395073825852907380863040314676211159963215152043802026594161276602400621807585982241679710960565751694134516181789028783144302669753885762677848737160176483800579957635833448549230647822661327365870666844891728432305026310152370418230232576752363804796219216272841927029862669464948774015864622048614947241241119645776590439086227949824247795092714642587921017970848096513108167061096885490375939788907333354116755363811018502072824964045322909545940914740484548807290622860246561655018946533720425348086431803892951148291145114805103716826741019902981243084266414155208637521499160396238992006585748988035474644041111165831809079127637396368424672902662689948202464530064534033625015007001335396822995892757508165173826688796361633283109783612889996300570845880945464231422013493955972415969496060323424960288267402132659615818462030080197977195997780539459986156515441744023566923683390865977107026977007049428888642260417199362703413841338328283265708753882329998841617121621619909454111841638106692604581273600382835661618624292878866979276141005563342197461879556179204591126193958199499513422457719351357109338544542579144008561408121571713562868180675839209395744885020141038438217594463827108953600905899088742024816554946908897323690072127914336201354769391187824759525267566296701379708807986916469147869594168173212212595930914328992677506365677306486984293833589690249781111399791453273315167412559064612975025034494896577951953187995553539081588128979501252565895849954759774441393105738513241194159901946627518920240068654880904938307248418454718548184170174052835204027081799646995939270274865449893259777515622079458111453719755275762886512034224171810314682431863419179914368508262239498333812181513146169835026379912781102174519295190885009695120877938671669116767450824182788309787913303183805933949089503315461502780125238392719870777555418422518979662631988080379398265895622493106811228365544367662430134701628363072719855331171155348804627565802150979282019643838247573909490738835763191049451651985296142209192908786647960446517897707953257986630962374031879980274444771031764998806544191265348757810442250807823665603923205322770824801154291941803496657591262769995923393877518808607604836301055454735779924669097946655483154910471653498024269237088315811375022724760862552810588607534797209286795515795537774554218129155985771123155416913667007699557346819276684673605991834458111285985185725652210584672230544979866225584525612358175151481664988509814085757376329419752277760055147093768436889433897175283175838090694457052387302260988213801152262104109865995682234805779858169747858431584656877403890272177585283345590196424001160308819074954788301923346733015878250025175265931696192618122215382881847909875639645851974334678412500701744347141184401266423591624887004288739720615358129847550881140422752228942459915139039873016940469770683864292439495205244393014467581991588301823780587887116737121566757670162457389075215604766860916357901379296217830211954032045605254311804787177948771983167362540556791967501664449264041971256807476493508484832954604976501627970790377160743674004669342716619894347168275142721809368036406525716432842471334130772246277095218999166806060960634332342605653454069070792498602034920825385919095510436832010135954390086242372434379748067279348730016285038418610215417074092683992134406425474713877602290151575543140619668071191711024611675964840435139800500662377393254918414512345380538880574733631247558867452883000740344556419947247880758754501797165982473147905316667585732850624819338266590489099652795475437929225787875912893808680485554394959770272938302865112710775318627863503716039377835258056655271269794338172554814835220103042176159561658452201481424069906262131051286488631922677982890924100005762569055178600514204835047740101726607599885377607444155943507472622938998546720141131064039419118326235001633790540307369329002846173460710039943759728071532064783977649271506757487950184274450236473369003696946863803161087318424049092958789696217898617651099611748106154976480259440877617187524425693552317308754693532327970552411966217885922470340599839927891831269716420729856704030881211570729317516742724877250980194518917763680514613106681515147711769777189480573854477020499447513507579146157783484661788005406602572389751273377757599610253733406236696242546309845695208323669351961493191621846089127702320861975622434982362821200112042020103215011966902442958163217488278900891343780692690188330773608333258303010346453024227940630404088482348111254799860220889067103811986663251052801170906416541541963916543244943407422716479676402610945902032097342522301842517646997632499575295822341541778756424314912026047446095648404827359911704359294493248146154169290149071443844667374467026733334422648711759114039055506507603913591690335785921883509690436334269619692357052737779053664013750663258307034603534884576802285565592547252707256572715470496864786331101584800927552763355790068620686364824006651881442609391910100580763515222854496546499377345657168760808289946745252853447629643014030625676410855605316758907848073952350297642230914594114436595259959604210016084932836178685780304628519367304796790773673165175834933413662295726556352554994803534768944390108250604872019916399382108213198415644335868910085332340457466309131736559510512154848187888188914907367963564627455415364142175818822961851364158831523373429463944391008837791443321581205096339624484182230156561063998503030008540429976650470026850478991833627277101838883029502800063496959063639097210945408869766844318913618932486973637024953373130376645680799315256186195699204638959615625356157382322194535357846261030642964352452600416248908319921198686097281941165232356558339786678307766095923979965525759250717751263194775683501561743686101103758698336658684316917493824847692826341015859370267036440083091565711251647924047657550849150418754802104395040888769668594262051272777410596571402916058141721384690182866078247886983124234492778279389044524748306481491219271884827620629077888650149196997321687010429741726286242176808943821667765383407960060807484975046680666311329427143375713694205977031134523710020081315361807245745256330205158865728531518014370588488136597985262264151265442832435986798940806107809356171008685629536000996985608316555909275662642539506638900408568052335679769873932996243221600839453082406319395703487061631808842043922108692371383450736424044019895872540356994446606919830488491644737838212973567160605502740764097199031668051034132417035317942005864497796129065080128529864026839591019233472902982608042331352112257772194654071181318022327807367674652825341632844302764413599390422494008770980025928175551024888829275969444414446723375509660990892908341226084512146066871761108468984232857755495180960267758604156822370807733059843170628618545131600526006120229318076660749126384226025899988671742295866208551188143108768422436419922080155881969529869517595274124981531166221451704449538929946837379220980685701213600955845624327868201817197450541807414160398876746692719291370073707459823259496882383138760367759555160504500967604860634859084177900508669905037075141973878034124774606473461743181422266339859114345889888855452847086969903143582886100983301836071711367320864763110582026257243458476165379876206130115489121445918718103844726639669424813472816440445416269301794170045960794135371186815973653990864640951795123437271689195168604877344238804372006609401013060577242145962462860537236296270970346520800401974324380967011903158631414743579036508513078675079597714165106411404237907412118323497714263558957756730713594668458320119811346188025188439281063642513580494212106857417598648163776990555702997331733121603006930656640078788870277414581749239272486393530766865778723305420588043686550454138695203558933447062357224559853225207765592268039838810645917106098663720686225423265600599872091222498870223779629655030945317372793666057847210500808286770967713267407775734197761672267088445510310660113005765694080886428655118537772033186236001173104834513089403838243156935061952559267011923795777926379570021613903800174414883393666668861823144717323651875669714538496661658542512339738908414368122913090710637847585298276782142841319196645049013478367540592826471579245337997834539020584118307159929732797034372991182385893986850640627996319690257766929573527907530642926638368732932870485619491830610220620286631723835352559756174422142632728505212294986050404548308772848658145932604588373232047457101782834677769450539707508188306140012315078724582212686504005491879848069820216738709663823394502201136045760904270427565756808757381837828092899867898784424219380984141607241442620613598373633305268614354697066812335388559454372089653223255084761578163077988193242801088210961341628182511409757752830517093270504199118184535020673249564686822552341982212893661894623598240524739157927315371272694794423928322486544537536867873507796334617474531170512890161482189981505393563171818182664951673609402454613297407314561475282411852410023464871548382584132940874532530926759289064429870560483963290344971341545782248600428043328400340158209194778151083977875783777250030982524467919541542811717328623005940589565942516346678809480237095529299635070627082978418483699363474518496871951901687599189866582702922273800849487728459751318939291484786589324700904460843306725214657905926404861529704522766345920928164737724211525839821506614372956113975566519622461171468582791429289123383695368561549229724602473379804730372445570964170769504313581238340638388711538704575779567359630336279721273782762084788695978817445711320890628574369172966409920386691081968705837713955482357948658827588526188570973365004931239434227405603444258357477323893445436706412706240156344119284324398914620177072182662136297389490450423129329324394272998278197487817811735558375448182124576727716038144403575476770028210247407834457977663207428016428831054226077749497099336077252104102899972064197116392062522230530866999431424630816584990871121343888763421010596186891875321597957306241409731542765482901010100658368346578839829851613325546316402385289514324878835139927304316657102555964763028787505777355405944837566283900473364948100219364149658743624325744945656815131594122115760315882982173008500243093279992888591678207456158247617277589374232344614251772284047633239636968535792473436565744268981005591553243306361137921619377013221605133728019073529192658109146250556569103011264208855494035886262203492923910175950828356953307381242672036171949198610731291639519848691701220150987581335955582117089405302261192361129547230932373734090561849717757439775703004579818498003761854165483643924087544693067168559295630846762044295048505265629373904116787996178593468952726562388995443678695325141146267973195816440204943629516845806179163758438295732198053305218693660505379093422049237495656255640071358392599827209682399785400456877920950429195207071290095218585528055519043241746454704079378416938902524036621018887430696889920478957839864212274637396938906920682593617176356702711951387887601800896978933244864961396196841379992767338821814116432758025627418736249959608118726260363796138866443979164932452792756665983878403269953863568256928521288348687112474410632686038889220245943316620600504023412270848297792578707516013188268205030644411362514559615305648639860581299509609807413926424508586949413352195824961920901953794167921793615323378289081731325288449949746311480233047199823623028555667558998550255193859557066342609892225986841500635559535142364394870849950996788203600631922412937685606696698153196584564379049076191387141302836430216154872908878746084279438021362336328600387265935557978412995627987252099001579279628633310031348040147193835905604586766722860030347062333225971539324893070281014803980236614150967896546866018541258207656403615396111736164089626847815589000680001343400062099228363676958634966130241964366351174506988900443822839169478995960425355147922784871957169459420812381416718032257831333729969035050520282082860749652900342304729395666999576356527629380868967512182279423661075861818058591134488650668280148048793528932798081770005985987529660348287560744694044090405692178108992150733540168659471668430161393521320877125944892064503781601674126928934415656753785070326682421884792869046229287586832254900154957965621313275331395572880364875727896181784709328335862186052182571462892362777310050968937272391725633872020396871391524663739501146796091229547794982890299128477206681893205892911306949498639873454347047776781054575353025437191885756333505430576563975379662069507608477114088614274939873386880691268256817660580971788766388532901230762786685870561525586273446177388103398740136705518914064224746875919856971785500922806520216431111664225593455183906410587927881919825923110293319632994646730734422495235385475447758937047963025385635105268451607352173311216602348602741255135936802014229774977890683624948254703311847244010690357007406920000700693186764548472654297547182987084052527125351901242079084479634524051609897862678638116296085848969241255317900809227301045704590909494740113479477215848274807956472422059841796467775727922934656069002965312128368789159924586968411072245454289040645462197431028376322191860458150356073045665285207618386340905329541949179610898176622723729938324177019698360466353271762354632426056847823688332489386492252206135515979705687118611666555818720155773656139815158865792339932366431541316169990763518931645228272503420782813228093501964563800974792568658076188434237815874040343754309267015771497614001164379667112384151958204776324369321619065401932076640045680724436998816206970698840690401833752399237499306591074382828542661308669548066506254318304243042289095533966206110301415581249403542916738029070574651634005996370033737440139305856173010705554361048041072328936749179984863524459443062719275878341542444375547916129985798996427957478477040599241634298560290562057111310613174145510640577042057092255743270786789368290849124216137487920987784782487186257556120055315766036339108204121201641646242893729434634235276013131550481878621051106398657154770043718293145412079117311953693667806521139877803003830357946767226588718178167433725746021189515234554956004359273862745454051055914002002740752823598616938042070655157899894916730716318026295204236113716069458374200296888724991970034936243470557423418871957661071204877229453050317472031204027521093495237229018569108825632066510724532280566920383433125154555642027580571958002528627532716268154002563776987961784072969868716695088481615423693145091191855418922382293139567095402644386679690553313497531457582227631241393728756781740027820068790767831053780450741391705540951201511740022369371530962817155875520511089032790874481931965025303182484794472343115986838461874759374402272890669611920039420062009315636511529137650392642585777095131194029543963440418206231351020598365855950208915521810816849553512083598889954375266432753764385150602684604130623440589687002393193130538791511189301533637060971519071213600342298267003584463407485788459587256604474478597500413392170157048122390791106818769546029632181505273411386575550624849144632791174180674271526899534433309843496378232197791357026917211608543870763828181912502002939952656421412669099558826439863934759369866257267179103481924070290010600718549472070787166009922021205583661432288532371459739360962055075524822158200905800956743969816399868343286857183538077400582614891781362886867139337959431089723165379205274650138147940326967352187687320531111398416487257123963040533576458132689146913075556206000437295257819059023583496681198277673182387775203257989165453001774527947064820202508209353842799497344214870931860211366484158933722967894918667324029489704271850513532622146173049398456764546556534213324974589599783221463183501168620381426543383898619177233063511804541753907251137709871833624102242372247441681711219200856283024539541042639430116123152108612641642626593763172356963246963784674331243878244218006176978311407019360328130539279180215268797720020649599928752978189102626613430500338319851550721810073014273086160233115626793933528755321013031135203086136073351236401392423841672811171015940002996164877960912770672838731251043007187136184511378015274650133798477181312242755501751408850195489782983047075646221681770145470398197610854632288696538755843402960039124907479802114951678971463511410353391142025156715012161978969165414583991670310450824698784648271793422324071927513122135486536433710044009962692685242695247765428185018680370864844896931960742646902167141055438469555140591804629078912164652467923938185127543867001456951788416979665781999774083461077231897165590434424693381178284709610647929304756584912404760774778364542586221118791402007898375267410794111109314293514521109508083296769330789099201276844910572439873558482004059056169425348983723281106057571264988094610577175640993693468072956085365448577556141527888756209998708742226855112819671664217901179250274812061140896590217518487753081542592530333837989913377049176444848378125165713319926356229393574036053241923994381708479014912576499276324782990414559158833043221508544563610037702345818666531873210425497765733976112843521272602615143771638171682787221576318516394784256298350299341522744174460326046851913474894890981686332293038377135960920690497031194662121684902898645085148337556251535656701942654182786436268930162774345804982891875623352853958152831283163218907696728574815902209489696408147911826421417388746081473273476198997605659771813949307661337964234959221392632115777287435238600769950846927455152801024875113969073391184633485693522953640263058469276803906490104770732982309012860548039234529569995791513739678031068272288156787254378197944369604750303245360306630406663604214585999935959927865452786086986991208557898780317364232991320174931109161500834285867035505839800220721693252959353669497253931870534417367527553824688754819612665514217258729261057364482150387997582723743158460536130580064490878277028402796003594627295628806146460717466472282206882984827708419762430173434896175400062800136481352427461485748978131287993292358272300414051689982597644221148181735702990326805943509967524289863264051782677828066498330396199933062851495480274464122523945553940948186071760906382225126533388551880745988945037309972790600190440158913299094501947189899011983845250177229976438512626720770311973173880714466248515235661462919950155399373740672937178204204316419862211170541569968489716326764277172734508733920190113358058254819933622642756796218413492873558640900596670328299656962764674156584529770841620383003850486491265319876089364014910583647358521204480829497079025458881768676878519171615675824581678506620868676370880975593364745551918763053918776940135944065175210085777290040125811808369203994930055218712347002637042351233955326948854107872572486657317255703865135054337668549146189454653394469525978538892243771584799591963350480942507356161924062056247730063186630876868450885842710361054631127837899825433010621706577719534851788195039748999608182680117862615194607619692722365913063701989079600329976569826925225576279288014503865427033775629400000302402338828070308590136187150518914189305206568647167742944305364108296569713880236204895865061359236669092870581257713678919017142899685331431207350615942313241713527987042861806853525909499660189014877011873362496764320235941761229762996149461274542841526667848609085879301838768994826179556061001888001717469043039551107203406002911371200760155130476888771125628448618386616037092728024369523830870834449643280954344212189138441461773876268629794429748997932337006781404574132531575551714340581146561898607493170606588011502383605783464916986908736744197811614814348999403638086663339999752071640141358542179477442171350803574573741115461009476709746259516837523664806467898617740974165169394792146772464439638780732476081595939131337941734625788926124802664907283803591756169159743498268664697894219639958766347968092977033074775408777876022856837907584882090439781738458200504947197002427250544378206780009635515005425884241325518179775440888074778096865262370947573764646183236800180956877344026118768004988062258428965206195902679457368271961232197340724303710058519015256448603147125277155049270450125262579434936079586828023912086388156096618714310263100433100490615011122971284878147066237001425801260330874663738191773777875007846847596216031889490600030072480213805219490438037384437765523655170683826214459712112420583933816727621120524133142017660326369213935337578118684899616993909389404682346723497859747389027951919526710026342992116048415119993405938567042540688911817368980145713678561079575071337474023725660971679854863531883425519772725197420309283781995556563527905249161156468167071290764061447428289180699757902531893507503102400632727455707885573091033110247938785961488010553248606512280928782951264125401594104302274636681230970693580445894319197390734331464061190607412532398653171677759255899342563338257528055299084920007101815843427112522062374416970832495714631259485549081434277494859921038846866189850505207328092851998418648151776193050989643708341811122954635952179858550252368078281316770245155622756735314923310946922160972326454576701019170438209187902802947302622225612811937664181757360453853871629620632303970855494786930117991038124529115431508522087834353052487623975411729107162213892866964622489318500681287630308441504982830319144330610459652108183067252367449149237391539482521913997596655819815374247246675080132466635653622619647279927199667982409253817913826728397174736071523106510635576159783875368550241839412456485710335562614809214940311556515002151010906349661785387962555449605028606858514783843502682697767570466375659546055906255208769945995064816701156493618837923705524599370366630865914211723118112031239110531027940961208305737891056348303255143834122035900218663410886666597064953365752022052974689751529513318347767100864791193477350463826200029410657809194229212600938769624312650277237240850995142905810412089902093029628940726988510437637322544951798994225928657273697372630703727878470550756604265681709037240170901244949458069144025664123170496721857927395994510871833968183243665224783429802383910410628113934004944410135962775174101617470816507975024955417510229353396396549491040521371086132043418494158167120805405537047789792427944442154664455731038659894049158713018898870479586983152210007334362979600633093217702445934126281487869864121151609514500182438129640477960203616153533170162765348412532845900893756477950234851577108157766887898495611197158165977595550566472744396018298573441688239986896652531451969834786493189938605974345773535089155546902306418346709062421652330356369112874204720631030537391633922500878276164082527525809571546433521979973991999951302559836624439094179206156207769232463651873857408769951786452223397969779430844005641482583154734641921659728499862471449259414556136640885734326508160922731978158525341383232669153715516028438374433390647711909504017254690630084247898680453961095749571171251163796081825891534498357049538935045408940909001730684289940529556161743168628285480124179448711808596994180724756704051172226105906533497199379036019896525720059645886060787130963435771291973346756191887616732189924201050852829505929528302257770914553745875564999196441598641510982725959940667964983204378621976780421882746472698089970794720113394203306528397158472709237609268169259307990774956208083579948733137691892023915933154401280829885562945045222830923014468665992271343200668344645279383106253900232390463840728076475042371870436332565649657541396243699564714111699923070652116852642279663208609433208454554682458083536361743780634377926394300667527316881587059194215685139411257619753532056123297609807266876164153293451517786462270971327060760838731880857361162480716283756345304981533339576778366926519965718317073783967936187435397534210014010980350737965357883677772788932295778202496894033849576636954686922974113155651264532443438833134119937381772768327606196343572696486211287873098416393917169849977716470538488632745059306508436200978244875730618282533957357997274396354068744009118169028715393116517977758038557987054094860724005458464355961671500706073089765762042807957700570629166578671649370754167913777191110920683529427175872279238345345845299583900619844653376746542757547539105761004204540490127774442432795570182836612607525957590447630201255150000224866420035238581006633963800840233300923383700241910691936021332034526229415768770824914624753874246374441257162360799819217601429400614155796468980651694476278223417502221806630306365079618930945960237465077790167829959291199921959349778397382146854807093624450465305887691725596337426922518703496035441102608074514034098398523065770047995224878091436707102715152782423686742762927476213257134405286275958233623311306514016621104330654823154090036791249812880235765435216254885039156008851955801844294392635066911413047838072403197104398812687716467655607868638750351607619031327240571952157180093119977089258373235989749848722346128907285953629598193149441301573420674302446227814405048976535839707918700268439768434105617094131034294334251634187790060484580047654036266259131213664633366677742087559607090796764321159484858435058191394400506978764165959565915911987235605256934279152591631443296259619587210131618347866984468951399770056177692306715882756165447148692872888087712879421146520074939428648497796381376140105793073657942369273242099289455467491234680297694004517365768859418267811711575399595715231680344205133389415831901498235761253215097839177170157590622392657084637191793089443292830632002855189596434159691161891297996070322962618420637207385999501537419195951652247788342063309237062737983227409632012061370826975394401738903994619032275911237860873010653856966514303701545510107529426826579001354072388409581583101132399791925202301888315879202288616637238837784736939655935416951703858390022010713691621962032352889224501156911874846588577789321291796393973720171121907249032494971395826174662759750638631887567562959096814817269846468218701975971883477252067318927679219128502830664050817716997881781396361370962491880400887488814263240586784119665234435520339975952652795618134446083873090776163664849778924926090082102166057451596389072700526148410199811623824087477147422261602487777889467221127488170728662242412236586224925855393854716140171835998693956276432446131237942197761034161691068921893639921718470502137092953989536703070541788500422495682450524449136485007760927154930863066228928191662964993936414127798501018132929594023096938686372668721627350644682018667278802247216508250830876014667424758806652192221238548898107465540672188753439534262723717096453081334523989401556728312147950338402921612217300529110478820206217584682645716445976706685276059907524675163272932095477839278685649612634491033766365537524309810899220643957110708545831198333479726861985551428039139326289435143030015321927712582727904298783562077554190754374753049789039034513181244572551377177313015310785088967433506049682900030520376732356269168044761450744430319313664627877661446557537608633995822146286062232902514095581930172516560368721712593060506706514312102279402334975123937191558218287540546569082511763616196963264379335650497801964723271536791800163359667928422502555566536266230458053687811492463181806490019335243779943445902681928334034800135392153450266841645362271002112561678898073627745970686689216400226473553173332587919791292012729124791099641446168886902202472426395776630960246185582438676357040687673166156193036182371677819552395257241341380818461520541889000241732034321251435885072140279089022432030405430398920998455255471555727946140351712009811507743849333734094305578335536689858031214534667469981241222095114339972651368644867916946308132415821659745107720697739702351055074177061096462603172865191555018461323481468271593013534597375472106943457631762123116939191313269133822814307095210101277815763974546405341499207523546536939064812315322558309136631748484869430601421565176650457156865425223197002727851923702862835903261231601032887170217267732819480459833738042334990208156295859855963392262024523491798107670176217162672717173396173558058045878907796138543314211859798304248623560831971962653967223906541548263595841600375834871413078135086342048746762117123857613913899820023003477446551717103792505187443802186560753115385840675496155782020181865469570490477457063660624639316419153625132580846453484092339781549899926944286912585196240119556162205003947892931555019564482278400993902363930089252466942568942786565638853977554074516236652195819881723013545779710894655144403863625007491260367658645675388284974822942917724806803662350052283292871052606113303088179526169591943852258447109723907479179131716396121740968652357830887395186049448385384589192264928253643333058389870455802089958993875109900207389914311051786560996532995152268196082349570701038431840645466895581020690205065332330317923088308633480922366463496140441807199370665577299419664920695024041120301966341664517028632048240618281248507637492222591766041965595616702770867680427426178528820347631645810434829827272042171591637072505132109134493338222752066289703913508160330024828222209515816080138649056936300207085086358329359591787488864809970362439402720159725995587086313796888144763042526933017626678178542154564555759904899437416996551809740484717318237711911729620190169024242313689654531169484091481933156021729050840638919711112593412449666756900711651418911675802394109855521737191224209639604602281772390409678680282015462791437831326823227077317770905319202598709250232941318759096316389767229764127273327873161916630584686748039569837854003821699389529006621107105862637952467492927027789190547716563896045162503638902063539598949115499843886520106743435351778243536142659676264939004194675947657560425136268975446117062204455766426349214144243432204703706462259474986967795186504039123601185601160845291089196238082624467916758881489773190232088013708204501781519764934893280962366286723974924053740710912898080805594146860095498579057416439349979672884389962695993992102094877390579058392963329009731701462855415114254086736994903870089882577902205245509733216161762465013997626244445314128776459606318463823559424076691692018097583055078310515694324163542746718095152176123380251819791515436872250026231157651846880912111787818800368356195971856086580041305335402090819862071596377149131925820885747292788361206973829277594262002537663090468424070137943965084079709884461644383770384670336594670126686989998821072327136622970800467950239959201633255481386795239764830860855864778740709448131024661608163304453519633763661348944972925919598175957577304820261024951646081278585832968049236238682227791705820721152742189532548057854092703369145381040418093412197958398047723836392510303249145320429401034448116156299705680839536626689965909312739869821162074131938143406270370701789697538442360178865856592914148767064539964472305356161204114137311573749676574051447908139296241217007235752418712626120475662188867447727503048436974396413347003113639730013276524740125148250365538810482105073195695561595068118861906920524294406476198114291042369620347824318175046384793831164090453130153081100283107044892255934251297880831462398825910172206028590546652942037822510094790350477440604409143034183886759110968652437276105429279436834849091947756156393349792279428300478270746449015585122675529346614634407222344744115848526138599644510309089934495404052454107258035996733050179781651648066599340145381476363782443830353578015964650614222148249025446811472729534267456922851031274774783466183753767324481706108136005887012658401348943906820796493516504589545569831167520435481838990011234499391561666384895728923460546224692813118891357507968419067502838683488155396621344011104547691160307792706160012937763079623551595112481002832016324829993998410457011475605955967129687119005628079538604466376411448006004585916718467863884306711339687303351598699122059079324803649014238228674684933880779257132525127837196374310644540405477853017741222464684394401824930394686727480323527307517549761084371571323457013820579232709125491171632599941421216763892825585364462974081835721078917172563363671339438332985954764417431253707403808853104604414057319074348407008186343441411074426922247795944120297700569515761010377421403242270398131170588888805319325427242848924905234862139578207224471512422447642850231528705620507501493765642912782027410957510897508448664314474297237106699176658352132993476872695255819289709486887086479409107042014227164746986814077184724669621869556544995761017020161705701325979571191020750443675347423496574150712227911831319937715259171236218989308122982357592986678454344861498959117305926951078870799723688041746830165024261380381116230246820020322162157750006547560926668218678255572665867516297413604954243252420517940015671106237475311793292301569035684533486120320882257059971277648382695390113275139937035542189134237883293211714830370301530505294676674274080867723602984583812897731305467846327304188928705356707668359831998555030987039885784845970538846611694620552309165122793412945596307169153209128768956794863015927272821218503890076914159424525615785569831630767854955377361891217705515697044515167369256491942486804991093162395985685554143470850112792527482791620049176336438939498736052343231044994357797660909780332170677230276069696780174418360228912919937690468293935632317328991571670583057145481176368614821021752775667364558136630277023809845287289061420776541943621545917676882284734136567364179505695479623342802642745014658452021535705710279017811585348667206486095782230910153122395786598801671655420089102259646468381029020530460130646048263952637137676268363035352234410083737406357988070221662839561238681368511293649657841774015423455800276811408198095645723752138236823142902788552294574420145520488377719502496779734773420151395009517573244288716034134418639568304149962331343060463133360082284091643685449294156794310233422752853308998783788541826994365038670564064570641118307108150296924747620457119637376858351233003196468021323050794009033119834429131498841404200699082487522995016477754874229626762337786810729696182034133863828021124349601039502681412642842945021297289932283578396558991524252019029712041319748952247817777274229134326068898645755339571235982992924279831021971911361927061707811922197626969757403931980828384953005122111013639013015743944730656814321392487255539952833690259857900523810001662800728704522343553510802214684003875438651818262034491779230127618684949953011382176831483151178413909835126319348814970098927701037898426539563844830265885095970125912954078000976389371867081497940326376022752552490512941945618165728353405497638490415880541319388376685772175590594167369389570285027076588197513529365577938747583792512179492338986093566092511248433182683212960911633116092320137480734030308222332395329836462397289460827880276111373088179133293424479163393753844682407539661754314430392002544355968283650687706922260504761266330114919273988710873881813293230221662155225905047335332154606966357743755749185229205054720535496379350860476714830103848708061161100171848590505071362638168763119041745132003636057874405860051333108472764402930765863567704590099321926380508544133478718662296576194258940271476870192883162110157700779709605756550206525756517047275230598739143062787169037526169812132179646721489833048582400347281297462010520347704768406165616845059364225924582969781652290784496256920511890080043772708930598798798076787490952605446177151513299374534238210706728635273394291025965307321124746759599231824640946768902440812823023261734243720405403791996968053026811334453995867282775547652316349159757557636983996236604540883017678784794605341174328257686160727129287297474006237984472614010856906430850198452271230723855121970367333133750814921085172020997416777642536997217098086960050013868705704052123766334381335861829540032681493612254761311958933908652630195140591871785404087263056742774462601701846783864595156471881885263468404565424711584884930867579864356443909667686942430641512969324879991860763832121862098639608872927910015994292508177804274431449495252203229813237339916985766995717937516014360153388330360020905544406679284326332927077634641582878919690990371700760403905773573835136730051998855966626026601499434899982140859338815716256935064704945846630896924871782052948271872433307862623345957897434745135403405853867010943473801525191378757644291084849049437249341126767919584954636258604194072052334948802411438646290063031125834693321185611464882989656135326476529101329585824042069563451794910697768336373293982602537130830742743676171953962315568338411956706510607241949274559214704901138304505500991094874806246939172211300736536602076010434840455327628801042884538043426980950683583460787901342728532915187985359253207066523164424764903385789024558648823799356405325069289411631537450238411168593984289943075710703668106630239320156772449961669006092925715267986712612082054836502417494549058379601412066645022749101232222859086833893310004120276229394553687785042503710022842430028704469197119878669544282876248348432992984118045594346079880399315763140394145654117808650882866453161878603804013224912727638023535854890015879180272741602763226517876764331885351137832210596879815133608680762101444165559571953634894101667364276975783401512669182338676095663437576601651466270229161360890275977134562098199317625464089100433356954410960943415957746490915433884514880514286625244689849022502888352438242515186111335775210788489134915401833717504177711223661131936835017873664595708995460790454201928164246930067370405170688494869677080255238009936504675192431850091858717037488527048324206501782511473917567512012506189110568613097120370158573197849761096340251191016984714285404324814663585874307377748348719439517473789491998340729692206754140305844211555130200655006978655388264018168243695237572585373833622523659365170240756326241136416891296001911358687290059662474017159213465517644502265183324576161922348750252814728310384748832904244413469933299631832250302732822488811995503077677652661901396562527386700404131314206470911118571560066948016099387034289053690873791393956707527930571990229431716741732433751978656338791398193851178839158794977346279431538714753106934630763034850920953675538957129046135939749824024470720885085521202712283694217037595329996193314855063930398058773621313296817090680422957461239164337189771429229104293904260957038565397439756114487586152095957700894125724278986448161155712598288410866339618784687702649821504829392738852258204654879267544885864147831931369696317738194780766008034293445396543465227590457032798417332420557212786330086065614379634761822124872488243937697324580394351132915540443133418455181868059407493683674778184991125847334027418539922842965697272141282619629946134791236751339855802355161799293573252035263675204819949673890550726793477042020705371037104885311034691580897490175240185461040003588233750683644936273479447996061725532322938172236301924488695789965074480548249339139751706376970241422855846728409143129278808318307498280566349023584675977930637766517637393735892657007847993903054993727351515489590034357688223021288330675734643015166191815649932262965181922607992956776891423770096141700269964401380479305696649755409171651215289106583502512177620630022461394701109853812133797578954101488894336692565794252290413262220534276945930719965943941660283806033241234221523272852858485366991896854634460893203357709320484605600302136064892357060122673327054816110407037283903600140355913687848284896724340072113726145367964117733894294678016678529660990922809378280262839010280542514892718152577604224843286345618415968692123362984480816933646056091678036632607289422372240354260210645988388562605544499596731677986212187951172975582427415098785078852633891211570069060799045099555743442762961371872392638171679854662925152668004242652886969206164004296918676267284745001518531567845143683083432284194400401396811364046031562501900577609805016890215709489383203548686854360416277192097688625742610544699594391034886557626236321463755840387184599651285200337072294121339174238856620853562798662488231644141629141789931405200373437946208109020856388674098867778906008133854286321189313984415724270940565653415825239736766520344338696528844490285798683673831300335591309764709988920218401599540806953153552800397012096850755598179513271254002974631629952475369116798973903806382752340359084260977677668188254642692617627590640766668579816503493284965447037160272800276724692079524170384153581888983435707744832821918045157168750143938536787763469177481390441606240272226863832326009704256630251858665403214992544734762225534429387349928694812594640054454670183521297757457436447684713992916744903011937173103170307640566573309306532729025758486593710645469286545912363177928490449577774499902933027176974725134935723057853781300271592523768601649823672671463590625593220289078835068197954364783135272650004180176518887953912725012187498038721302655289765820980294869669524684433550915817507328642047188194090312856045948561639935762344255998907596288400298785652600781500681052211215825808262586254117687096933562073064549021855196404315155612518259765364793337857283454788125015734742380040997357828620105696011442909296966938346302562731380424687499707819006395225228623330326370643431849016373275459373196041699140883379926325330379738158774863390184293655675352019373316061068654465037995871615670999423862791552822428923078166159288797627741846841425591888725764789100999429901026982322179967254875877161504904220968864141907766524906312101782888017494343236691603227108533920802271589248450173654854976240947805263319578670305602365769142733252048907906501506267437967713105289485782392191097862530185941970671769024984488907327056765806359264253862170297646470268667462003549246083096178900284706591861487359872594831413252317947986436210091311440130232914132134974812221453572209363461373697153933319427616035347395375028518711660788224437478120970465061931275412267750183536202434052380662432451288746234928914115336745038717938295444376620098911519724974375871287216528651848271718250317307498091655152847370039533515607378837961969614187829449579547889252915383659952892743070781433875845613652965924172457977920270134705797386908990663582180527391496008273168793263108205430448368304968143282494471132375902955525568218726605665041715257215084880340537567830290921374644487624806690477831958504598676145708613443954263956910128123268883019815184576197488251480711171081071197143914706820284424216011389927147491783454847694838809988769118814549309605909047929990785169999391000570453026751942829547046212904286886684160087652777228697815887700065837172045478098681845828860445969863197219136884576732938747960577305424582041368650857583223815944915907075570379758661002500143023212400846552999498664532400067207857719756602439506598771290806720905609763482175307734829335642460704798330951688349503386405989931598613793836970563176266072529040601248147631686270430417972918156308240011890334416431163444137113395717695870032854903054038272109120537683475626876241518070176506087655108275414532153224214292473180780456075393998571292847246385391905992821724269319840841064962083811768528227849283435545640067437907160725325584387023273989366965657517310783579994469488057329914593570568765335975622997524777759482361304911065815368873787835763944974360955153531373363432612485766343311614470253615415560875285681644717697160355346654025092725223883537782389726375381364492675205369378793159149909274391941470318363707504517592469420235884737037236700794634255994921896140715877194950457962942238045529392897027445328048837619136711433333270199074485415811722954368684970611602552302218880156506983932901757048820188469954403036426215926387290639655377119297819923292792172930472798119121583699276707143802459886357862209532988329630107025016781392635906231894556305808703086687986530431968349072225428363579773801637817513662053155952414020403290482563898862299724508711888789947647044998497999937012536626784494540885883958882427788743846061514598049316026987731186822059239825318302271572296215405980870682147221323726124920588879805785242172099344962817938092300871139969747156931328478823928651987607185085685126594330150743808685891508262501485470335901511664186729018904721060689827699239763910696018998387991938018935974814608139316108160412331929877634202121107304460845337666548711216296968798748225469924767223360442225654712000361402466108635607880680795506269567065318992513046084845222083273523495036176036533611237455331863273406389518166715277559053658653977049966715925719030219487271228472788583482465604629432510914446820728897331938070896120442590093704937169367203107622026275505076392187352037823710209032534991935380731020122412656045291601636659417042905160854743761148465810538840299074911668948651736590829257653613567139469279395754837331061722290310330431724407317586173124548918136859170592811048252692483636947061799729432585192737385256070149845217942681983451849203622687032435831076800941938929707114499114245245097517216209954393813537296906680250862634823237564109457300082068358039454426534419862778251291284950218702049812786683591721127064932550305272207836558910779498201181397520508451982909312448813771462782995608213894413779929364618359824779825752870808699154235850569296596961361918523821946922298647758164465475125648511923403394355839003799043703918216496313136784397292644245348587607978277597831027685816971206726531461598725336805457090676445326187029356710473671145106519707841310332638745426532479199994677094672743581154070171273400330091716263351926870653918625257770076073534647887006909714665140334554518255530849104549061726094566564280630714127698354910726506096777174164563579849933110463475070818136505236180924620292510542641290383849351413665890396958557648403589224755076243256143630921559050937255123733479107441135790068457300533038964165341941435520273151551414401868993126144967644870034960496898409747771989283910897353911991699839263884764692745562216475750444770307235991068549474835536953322602976940529864170198538489701300120727423958098143981588356781187571511351664326852930471712996297398583802561816343113027274744197293234501790990484176358375842207752724894544553614266855569253900091855941989474539516021449972479891151409218431636062077937343522606676905002573842049946748937762087615678457650544162686864801021625738558994325770966171850512572601121657650707275642411311241160761586470644888507428923953825363547875150721625416003376195406293475717291036566787110742934874033715625826090413894548629091789571453084562254074469035004794646616321533485831617397773696162172602275287256788798822925550911646559600818476789319098762314966894231205789312433570348945599950639157404662952703840491090762904245207961605657072665698250041161097868204126371327978828094123915384958432283158641748115169984836759205821776497155522260908992958717875924625923620712668219267395060254585987616806207880942451564763624603331496287367631635978510117327737579425416018274235723881972774826542860556066991668896104506561014533793691261475331993721479373795715053466302726560219893383978724626834078371770791939012869650807587011073170837777408913217087776414405238055589753890567319336501476059997668783008663793316791788217451534930542004081295290311340462552256027472393783129447148841459861772721348889895725027289479302302807210821113012805060367655907319305741864034393081928051229442757886531875852084923464430200656011290614586030222444989719849183540223015222389131657889746511503335053620890228781928741883327644511274335778175274666789987504918341422595102692912077332087795813877740094466288690630872194330898995989085235998712391101744199035800536571416293451124529079310195194825904771945795583887206971896280735536816587440752848314090413122068605343788835188224173055972987798665342135522099080809865784911844996396914806443416987751506194166557705368392842600633087273112799250170623448176806478267927834927914715142189192275367021989559008287269012119954082204226155147391883376640426391861513528120276880337446020315621423765449965154961145871045758031309521009946697244207496650872273724041232468099093181794597779149294473016894052409346918851135070153649094683677319907179012381654776005951123463318175591946753801990476391911630674361258423752208141469316721640733961083061564973842650505271681663415703523983165147607294362432542295585361910106047075264063886913198173102744592975639849324775387794070004394400293822451870082254190155669130270656228058700534885366818644007941247821690847112027722211214851843980571835853708958834291030538813064921813693001256140789827045949150110008258421961474569411242275631526063276341129583986237477035933950170468007659532328141841291145508337563943840610830856767438151037271934739049069380404328478830294356403334538723918349903598048062439594210442893277589504879560653098249192851282532749511625166880922858738884579759793926219106137947125178771979600389715310409756461373306860480278853523951950179540630204088660431598881282065651019868322754140654496437664385631988138053836737394267665074038578936526054992635130698381984657275915231084630159555548768467675751615309616545535137070165935861877768645875173183876107262949232897713551365853094601019246328775883423153968593895318756071671157157964091641000838632522759423195072460238771080965685019670095958629711164366206472056003874245757269745351962578300535332909575820123008061177170354243768618823180023521816198964723922187600163923737068632223261648443364892942043268159220095018596939303515848351277442894618797169697531467060987727811735550658898371537194336809514931802709453624444412455880046279287737843172818384302758418251097863541575504497556521622856605401074487715078626962997426208442415076109777093097296994322924373398918317565007366314848723775474505109781098526822572716094535757166080238882950038726056759480924323197819893118498675295692102388176477342461165755739286742574024787782290984962112112794643467714263294971087805977555953489264287221821356394469885811314843911495132331083705263256245513380245366507052005917064303441090605639750603777281813160128121437098256027125274784282277568564202143910785782141826022892469517503973218613620775328636933371109746065047092932067169050181900875947988556253398343937602609304375283609716847491370874614074603203131621180287676153537114795886884288514434508347504280959879232154266144790642881173363238997119343585066003733383662716557467136209552318511098872304923563830317051096316757017082464306337345837499509696936519851263228982144720043963236495806308844788863564168948530895866130024260729813496672785350911958938774798702028469571937946190660160377738096764187563684402742613627151232107950974378844804106595102451289867683993943838874481822995083638831788706813519373071353855507929512294533626756018735087870296926143272187700574848949225453876343782243612823243733134345216334088368128078126986009351673367873246845234608049243374725941020397273946944834153309570107532945233812310642236242528549075954148264641676319031943438196470316045511565534397453173100308855974754512782867548335302798050228935734452967834951731605768941485873161267152744973742765976462811666818752681519367888754968869929412501622144626436171705240635170409713580707738918817026845873403677185080177496614044423188219455972669166330474232580395692117730808437151372799682133286205304105948076475404118352840278375868415338591223111724558767232633713623264788081926382582427422753975189482599297172702077489551730905671468014896096260591292856647974065689996639893254463705301891105946417228464313302175449146968916719317365720123343938283489780668783391462025582272731455854439681478358317259372413621260320263517930341558768440314928897738826221414644044517571384054880348883909625003400171262932615351086294725877361804207830244825625964515310109645605691511436757827315690685595131710638474530945287676471928132444981477988143075758186744731891013391789524000662468854054315239016998942229513337293551112320179449011318047554835919676332772599624107068521462824732880674898052504386790952567170892827691276195584931357620620918259005350789536101660201888364505611983329199228475326908278912643169528049514751679592169659466651011457125892532636332290868508280590284810540552121930639311654982508662047414057058512211268067482218805993265314063443492236693067195514760355152832906518353029744098080607427736808577668616411380649893994109911858958341663479424527173819431905313881948537324698887293529889280799924106368138458485794049009121783533624884227883211220796574949251370967268946964985933113319106626197264446999762090750025472037103787698570729575262121093635495485669256987770089898111483737809708499903463082393962145187111916129167263292302821526173643150516116644665669383857109794551444012503846750700294594848319563289823160219744061643493218623536001073585572723746042002148200232883507651852206338414483484543606458814043338810315297400295104734420501113054708524858312725252484396351638838791080239221508878111468310251333033455497704520690739364437016981778794455966898825788311442389165878767116288661800965860776754810300243653096983917270303986855868362582014127842223073506148453998641333323280956525134787519717163712767310750733260215940017742312610467633283790758597859635994715181776673126738856884637465258478017013901061352296952142023611606201276530353699012555920892299806502263615012544222228275581141015310334703982363745462249306518652121821673017371281056919564670961737822637238869525717994025574581786507202370900557197928469914286192211298258846790777938798770189382181595779638996932272605954172741248961774059370905720389173161037075771461269873971090332845935136681382960158526481466110277718892903490571891251193429723364208602408015748361080741092609280026994415886104289187096483754593418442792995044833238596668540830818134204226657024211247748829598791206158576920567588371436918671944486388715415625551902753418160601721765755084059338837419828572755742074365763744037545214330787644882065267649995385396154815399961873972717631174781646997603630904555868572114957269644721805514997512909304988129504618463369189402400804166940043592049666087990974374625456377243971265334798842067875613403946895572165300969103613098878587887036508216245938897487349514216116158334679022237020098529425327447204048996971478154445754235041870905475816521451758612814783199324527248077674867281784481844743521787013043450032706968795152780104132702652131401353316070884298143747148239875332870725022083822707294987381105987628048065626043083039926853980288336468918565288151917262362863108300125453354454472840624980693163964385652424039684811247532410568635886726423207951174634881075414304553809243682827811415415538772079331026294633688399612677658830615644361582869198898968470692255623292767885443498369231410759752091374358673870135371899315385389284937695560388912642293851510641921278112814127178289242416956919684474246619329340661664552853848491942993298793136710931380894427404384961009392794210365286230653729476480700522798514465555979595820147044120698118029897008425683134711103689616777287107871424943294610225052234719571142363489702987581115015340935758909282997732881630090964982973534940955720071345742799010229909814278919815485673765091457066972512685340053743477275319517616544933002115701272391600740435383021642974629811651128282242614074759281727681928233877739947310715892332840987519209752478650274403252899569268438197472125000039863684820007269315143465625352652289003895722429800726818127363331734105165368881198235894851754905652993254532981581968463067588298299173082537284804171201481792828597725542542365600012879647382071226474086426429367899462779480107414188071101156364173451553351431816500247751697428222516960049992637416265203601474862917947523835535301574973174164011072888902191140789085381922447014731530185710713166361120905123270614230348527315273941321799295093419849950211428114834039585970550574058744998693282525629491436089589555289553165296893298209724229986891117226604683879508440753167827300597987297245285041952837066243249118822888674409391130373807406591513821198428208282837244441376954428617928146128823829272760631933809515549522698241708463387442039621171622509993081043594347330575091989336708610354675286950220613676776949460757190353889969201177185955919034778452490581601357290204992722062358454296601448830741506128916863724968942238539003236105086270223257436935713298714586268625080502882092564058550716148259798009842943889855828466281187455353004552278969596272265620094606431980931769851092363071490932390855287387794905996891451103456687768063300013266610700075184125419134543302634901280846215778732610989411039961305569892561007244278781251915677438025655652130069652366915071492284930349551731647268704356273368784328016465288206009783038034973204561092478637286224798039004032471677544045535147614618755120856564110619485011806042957454920548373334975785765026946160467693034823819647776512627899575727179928630232392077851755551387608112664781797031522506514150688691712735242356010459993368215168816318937376283329328866139794130873782762413742068704336581618168697825928635567473841134352730009370547782945129837860103804952350154465812527644380331518271756110048697213470274911593283817560981150323224738800611611406561435411192643682919723244490134629558563383443581712814661006022432352388831675894827061231128527197832841348092961588006044862878776647735275940051150190404369769979891806195739275176715649329892398423896846039843318068936270185458203599246310213046688668936134100458970451935386804513043223761233023671634053703469761079898291173749701335508454483416626612802386377725837822141055722291312287102703440341466940131402904218255637564255904588445366496138835727875633761058339864968893091943140055968342112960496850903225139851034848420225448267867121625295659890373585630544334466859220262990514209611186615782284130755552334517073376749911956124908377765279084534114409930169805794332829257882677497785412937608516821314468459037233933203254315258175722417299853453640565753408687583085378074762000110352117471466535687813766859620389089392164113439196319799920863357166767749770843067508910591211862368916187724545109858293771410477535118601776651630425763856334139936329422479402657510425657597358606281801373576977397005573846876818527000362002100369093847657191295563116559790073979210848766724110984453133135192497244703016315688679841253469268221026242876193849436324986520004140005954003592987635650583973787469202987850542388561812949873113901293012124338637354529676597677450512386015483737557225321549519030833469842716994014180622496999426346010213097866273508086372588095398435650083615549325220692168865648972504176856801749887650237832691087745043990514725864185604611503731422216390334153895449515590657513172400934652455336094545733585989957510075462981070897529118009000430183788567926256737408066654153046397410889734452572729360243901819641833204280734904518919826017987663095081944296459389713000387914148434698022205278502756708574257391717579875235886481057731305304238193971297567775827839184736886247974865495476935394290140717473917022868112237990495039064914084324908325055868253315092365752802269438583780165774943737795578503393138999899596992536162796470504011056116768731617051721201810427354874706912533824629421836468999135279362043410968598954551458870227671091532900863302493584045487295510103910493684835742950075976839250722138449166249331242926370939772466025982433572427858339181510932470202544924264216281058944604615484872888818415691970577872778551339629021155263551360389043860241847223509651387732817543626066726279475213767356156300946256025497059379991334694511923703779823092608756676912241767211976685363531456121491150971785926955569515617732853284518386583565157139090383787220993706841819624726616677035313998865544592695431648189633466207668734983155508929423599554716155213244434199833057251776194762713116138897183572775882609867499375978924211381396090652886714193776179329804811693980765757520893210014035424284085294666883474846240349258142514425821261824872574356167341818135017588462117527798156693567811226343740518752844495286728137474292856286270036909980549920036885997570315172894098807102200822348148121438310652836692016138482617969442650951504537542061426035494613664858167021289597793825403114914078556440771785780839965083036787887963963730612983593404347188085461856426454362360764491174687813111814944270170345278269709988810376792707107035890213403656467071960680554063066561448024652635461298134954693458442639290149626584507995184036211880182920981486101495727397810594758129086543554303310029234807690619171755861626346510207475887234108386456810405167237639643135244250967782913447044421361186363413531386598363717958183759959445723344310272814252950514384347627369243641867211712981078624390227140543745327847894436373935068040169212948853265736622929596695712625354860513394124212195950885151461710538807618898830011407089408277923113345734654206950243417591666057284285951954457227329882924635636561934163076599110641815137927819825345579154762562125681358267194535794718408836284518005874660120773477060779470860641594632766237869662591064742335701672500559467697046554771988728349905809428950340211857380900926744739274613447709743259042676013724845054307035684513160844274306627366931634255259239324956971114833066981628843000777115030671230702194167039493593462916872849551897440777814308796112317969360143146859213520538865707975344172204900659909451691500744200569400906394621247443488828860658408737880616139937358045841940092992763412218368077893289801782072643933243958582076026390104882672697936638730965271074421916268834493838410399239035028237659818948779056353956746580351042897596358875556815885335317160413522707635787177984912893580423847157539059967528981351824249414725985935769002862998672524882224883772571190316399149898107031738678184196007661936045894187221001697659826167921517253436028672384662993497264908114492955378192275497232833631088295566242999477670925346846729008535511828322718419517895659687163323566312415587461667292064471298098009102011602199412635343991162944575442954212291105390170007866031103713960656860038688171058390508270212638641039300912414163999525977199553645290785351888487534128389611007663271672286866614376393177240633255624351647783717285943390418787492885163431418904576605898805821336193960569282306675630435278357511040264174234989973022989437258587980107461115454904654278651914547688466553785015883075066678571290312943267495670367062639040555524847730672105030559540650454645297394687099566514205812545031415033613760976433129040956561711762337738959371884090382844800634468458741293349552731910091143461392370414921848907754332283513175955363363710922119332721368522483871735873050134344364948315340340045240989167974006412794005774768866403451368562780293923128571236061291088376263056464243987358921946772165698776870165871451846687793698875945555789596218989337177428079101616691705412805358530920289939653478410770894410020115744276693451032865796859754658179270879583433770413869831467363626266293836625619936987488381175551174500945143156442857926845042262581207730898029451536454641699482445637542499407678086255591209874964880283292635711958001610559722266405081324302270091417166153498325875841413642637548890984967281887196246188442945390523662089951037065712294762105025030352143426531690639447037066818968811479229986702165144210575127929659217616283674030526175335952856837176740147491680641170439262824435982824781129288398080307022274956330909367095212707684908183595775963767586794900111112937999892703132888341058500822334721181949384694868996846969322357772355268185334142296888131439244058114907885709336573674230611870535981728516888625877544089849737609222648688980975876632098582181117699990943139521689644861535072959112233042703053316027193819710846274815601208259568292546043422893575303730374678665400139308984557401258340791610502771184387880688569872052680375586813301439691643518826339564902682734846358340450765499199499956902807377935723798648751202584166833301545087532176281543443095041449733629161374156264492085036987556989702364090766720994568619349250187112104081468993871172439143333279141220195468860632996304691392824873786578594989350294014750608693168439802805653310990858442419907418554967827289158252947393326829597254874385210186148601011594120752876091652744032865229187015913697508016942143663081512815002464193356005148518550286707141660470922259229863837616783299191337342555589358545567065343825913486560413139367224723606469087128834963781903895018439236631935384217673140057003034843429044500601289515754202127480528449322661789259558761110981427645702008454938622428012601522692119302531110765451615975768323895228793584444348312307015032202803556755277511080857192598496974633314104891961177780264707369327402518628721986217933138726458243011887709057861242255743946926226643464337166319194665530646813715698301023896674245974677199084734045125927385673523025382764380314345271111876513043881938210816251792100341461391405630373312398701894419864905293979528865973404360758628709936812128584650762327018020070050316575918425261865725913270604101964602329594998439910438473653156280141019354706733056136009804703100502130639144394171867567435730891013169164304963493528505605362602719240332191953026044304197747079255945483535231645893518511324752215469505112680688004436381435249442766826622152678453724487886527649585670363489587920318533924724529082433990667325213406925680325807202881013297425088334647159364061461620520960568297318929990408100833466863150697531907524455382162644621054812195222154981642268901680831516089790054540660858526378743898674662118809142334998286455445782457191419815353345855123758481621026909748974896587411545180216676243530682119932123803482779761021449335065107210199086888819118620311113412046241453130506035246666553055589239732452897742966054369650616183488191859563661835034939210400268610265595740948127889850465734039510097213246704006363826244566725034965089248370950394536432899707983420281903553502114560780048030869257702110262251912124318156242279453173814372350339084708279404078604267653513758617223710037247287076676929235536405591224987271777603805522099319789410818051259269892952261054612694557274255676968114855024828137341004349437920629529316674226178778674316089029417808562366460756493479401472713305018322891343302877839433688462925415019276792029213970422160490374119237253541262608975393173835170561384197411347257908805838518513366835313191002737563456813002094791066913703017434016593117097141327277996056890522933533301803147056146170024915182120997240162367219092753279370061085987360653140472263667272038469394195634686627115068268460748334509775819668934113353705896287079058384599262840199365196341335506736271448439192932141941807517894812630041164751453299034642329198195264732165873673198842375599916397203830033840865256521262418692106984675763492011324074115610611485969480961714278157814046863274277968377929247467202963002508628541868457314310053060215693251630182980245540213286274504569724327033942971178430077908222279883685503101291854759011498126249055709351604164641600099714539649535688889617673027989174784192263996798905283542345670181437051752042736676084768673798775085481898959395115590602795757742645642996993849120137167500058115389913642455249647209202108648249476393051125560837470460796101016000747325537336648820481520179439373220873987974962315971867666434104728827334238669696773535119408642292217526516591980855463038966047125074998813502296288763570724534164089340776139062317537250487217081616156036664426191403743007901902630849205510834421111474117135872541636823267107865355063803496089856764874134086456340076128884337681568425521136348045882730122556031473461757442132079429510380697925387792327201413132251184327659997863612149969109952830960899600784649981278016364716036202643745584672012216342490768688113193847470533708177554356789407292236827280037675136469729370795486840317419112836312382113739697264571486097349168313444169329759962388220473184592280638443563630126171649647089664492605540560526693761592296086031281590378070644566250888410919730455625430450164019005388526765757391933978623935896047431648116908837723974446534412730487417565685803605380796424548780156880861728803668343539058265224001777488508537349943415230258301156132315951760816101268577804023328433497449424871081599489873457432765416242831628381946908083248719625006190751778149712991869990624507909100643397317534795793779270107185275732561840855886105044911187546364652953628716964641184109310544958238890324413237685864625296000260309743664040370417814838686739751525090466849466392550596299398003658069243242084823798349466587300021731389850371824560143895706073083779760114037211293875402328548384490547853871445620730334501908572428677627008455948559327263913819824254856319747491355777829709348907380177687552004448475697897871946794508051024442116457132029945493533165765057712364798861946841494474830754265482816442662749797971016022239722081966362171278675635830684431164352120734150868524396533283085700629668217747946718249774635621532585886321242161700668589004526598961878174633489581679241426260558255975432138285051316303621690294680444436683573151407416536947487351564529692402916692524727178049254710569821123729247452758282242225408353263240663438451284264244543293414160509346412316444857144611941348103441892828313119680482487580853781957378072080803716232972842053742186489188627518211001371025426797832526808432591917573759533395128475446057818140594443665741090166968069830550724689479203447766984618886591335759206340970470685769317748288897962425654725969902092733512097738497375521511753661713418729800525818297621809132820380652814526639123183133201122749089059814955327312830019414338352550291732820393662667039434590955118864149393694434106531861315372743500213065329881447175001978847313087353666157080022347424029488825860287123112201805872704471709686534895745351898500110106140708679271755596281191688898118941699586822729536311506761245265318026690007134091409415163722777340308294751307267787020717643957439355829425547144515739129386742099843700361992547076052483729099539714123063133431681703040000117907463281992206046274698764723967348147777155604702739605295287245236367375758573118356763308076879535747073059744162474748367353172723569768423682434209934223090715988472949196204979608312946565150214092354164648895325913811630474285865853426894185748531165288170287629690962533700495635747410289702611116167702260675716659513472410078416677729483471903312056931449475417230288756167467038280534754243848844274991908167701583583037614980120675390479784506214459703388314043461431329219607358181522912514309846860775460828871887823049420640881763310127925294042782366149926445355631078830244932392977742151092637857285879285879585407495779913631695883177564520735769273013699824812508674207696153461032123000823078258077759226109403034852841268699363063797689499358286616861087151544832288242859685106883785161199846178215807336871551392930230842099952472296893603701394375968407360426785801702064576570562017944373580502439513638949106153533248445280025213979853868135313922655115513856718528188897565078928003039072731251630258596187544472620021147792042877863961786041677300101929853696752763705608652967324261025805433768502419204239082402761836194006906030717949248414753148917501517776837449658202383090208975814722238330403043995327690482142610001873254087642045212572196031299150300969375127843137019836830311600129767972692199962529031303904729855868823089552281251263222540011601286058869198760473311978502739022776962181091878107744470684862344884722201432564932140889064147772895533670561673495136361995073085468997215968290297508279998012228686169029135398017440489768075875475568362505989664161124032762810605298013543125551685866703542988381936512461332734556973039181027913399295450085594073188039556643800120124228569394506025892327189663725963292670617755528372929467401414803721015311505024211354655909372742008313455136841147780828283700644704098682923050653517401361537589342144743063804637268957363335089581430568355276076069682109579266366516555659536248698470383351394652798471041111358409596613549435736672435910699604610311516991660940207248576011065431010595192272458099034020044006043861015909838654815483003302494947839178760421253040179430106294945724939440143108748292793086208444297666197682135428445652848658843401218844030515840005837277936670289849074390598497769084159824787096460767212819088292179701010439599969474721743462344364349483909801437200020287424051904899471449362249094810113211408169662762898700142560907651823274994173564004895225969611776927319687385914240917456631781319127155668345756857247397575812960494149309409629981727330655138604618996351373931574292876949190155086345859554643896428661736038984450913235859434447659586166637483595910706936233155458524762271146325291450984356399379863233424593073754435511034968215617696996168898332360180274428552384545892445236613423538237492770593166994571297503789947080892341361876975257700289387415185696093621213613084897220722551783974516610261614690291525540196197743932028304126719954142659118304870576705684970456792366530798824523271800478857401195013354797793836998882118537732163437226606502442687468944337547644421452553205647748043838372463756088105782837373549626088570192239967881874180888426292271184036170410424198332713086966968558630135220060283452959209291066940189145382781173040587210872993331766865230529096656184667433679383555363652758452425113585511744663503860381573968422201005047229597456604820422975605904982129580682243644077875937449677118567997936606468908954231289737824261975481101157450903437110720651101376402540364306420273100392609710849231900563712146848932842528775087545467368383931140315086456721641302695797466991730280046772456630576289798282925137155346387082032678987329592619023244404092087117941206459736246306057370104728056906700162199558279887788546890667031985980523460852566692794893460075093005114778116931776790532873118754243030116135326397590360771536993629345078068006836174165041150506517609554344619399123276419478558324040288100796257338129773343230141856064489712033032232072906116518768840152827842537262702927337629112118603722634913666806863887608802082689835367939694867625299876324212624978007353617562741644840833154094986142868067265332309747593080272518597287419448017396541566930715245444536977128158023517248760197497897175957851520817305930179255579446225351304311954708214404036112216448571216359900666257043624130169921266681235361593623699198595837144767030195474745516011373951417522838256381517212366213985485607458565335509829260664528922601451675181706210812958843376643869977358521610418239554819200436006620539777610920669950663032857614693058675354588461270487188295806688888752502686090472903025400378717807376523574842896087052590237964998580187509101022962227831334818175800704355338258048000223927077810810650008202352070737630312750459902642274334046976319918671604279692691498003174990442752656280304379832630630432051814240328433757467337209520091378276056851889168714012755211329920918305814033316546123057297483653539708432709463927817501286952396663221739109797140165718270382676706298498836033680662493159058765388401004145593319267951633158374247921243087824724187320310171765083713796379451241107339320539593080682823076931621695510799109940247341076813008345960651121363371588179543005148204439696749345721441337437977034545371306316696422173994836105285943368970701511872269216600509253135479167480808214958242880214330084431670956774746085248724437965485778313928295615421651908878294230468976901391117617233658638041782527298846320110768327708691353153444282973299002050988204237604871706310527624368652829107593310936154800135802290325554152405353138363054391106163348675511571227677501937412117017216684798528727522918647958549989146872248388991088193387660723276685561939298842291696424407080785297078143313513184547564205052325604580052784564322318160828751057579390524615111936560028978287882828215252595667335287209265040468579465629404864565225143133811033097519453659697672436460120127765235560583849659814983552157043552592771446868159176623095303110676226953518482273620567780623396031370591830996721380752533185630039198371226069311455452276120583586793710918318262541848065297999081023807121644768902149824835930740685783451037979113881983180368116100582470583270317864273780218171694982369627966692762169140688751880513519176940613059683640139830265402359353805139744279970096404637795694150802466928459603626469659166811032231829663264252306719711420655505757646807274646276138381351452032620356213035697528292758653397654293545273436014001252247371009901790357159518975884240980963729438847970776190858850024046568923095866281298974493153656896312686749576748129710987994549028030987664677283900622843517286942226907679098721545902387199607220874833612656201379458233304891293158990097550672393748523632440636313045836160724694319166257210382896112810215935338283960160760140139535621313137131913916479547104580496703187843369227572767729119131708974711886760368471926195543912204744566231255085749562434438165645278991556981156247797660999887853303336025300259461478219597791046486318188248371390543628148924910976705666241040665368119754701059564745800282217698664676306178173069303722772029862214500080601596672286167200919263480035813133769152187521989572424490679784132719419256204475414137949784184302526490275947380034876340135622985428948364985073651280696631409711467563912001183679699100523468103601765119085843551330634993539280775847612560248179555632335770911781417621272768804888710712843293266963306135220135945868083208266605291248855565244224170544396054293696329953752015453675961831347975139504688007502461397216444731875759723515097118115721436583761724085003066787184727569578449510023534728154916758110998173621850011106224507467218117974025794566351824072815372276918934886864548971701635187596168694112028156965637530072130142968440253895043351061304976884725521099278022770686295384945193768837697840878927928486771521904308601793621889876719162957261928862140727534473952778765374778942966802445525927726598536831637662192510904573619217059585232838430330994384618393986253038909895102715781331313825795835034696535957335442468420301538555643025578303010363746680678798421609723717895327811851180304815153916923038595593123646997133141069098309970633956992520006704199501333430873453199423953064981640952412413903664287270882381178250393720329290949208118503493895652896051006860761154486603675124982021594998137909236418164662528624010804479918752619565708588841713090959821960201336824714224590858479364549098285290394375918490993262772925498712791456924990107143007243937631637127784944033699762087251897504888898655827934902131296528841862288027648498169577237328215311279594777509820379922034875597277428017599951193948777058959282828655145974323324419384458380543727138088886178835368596531104282564643728667051419226021127531816805004629146829288528207536326920174927049431167329502424810011509549451467290619370596232081226960513536863052904197637049021533047231293490081867780137251903573172199664323416559904603649612763251250959208572599559754785515646896250695455814500004627415201078343216782450493226607186113641345905426393861632394403859446641239098547278015497452212684672301696200882442083505748734355276125164151344788398076280866750903999023845828925158172523839232307985992084377700698474396302887368392611169321708776310256970852441994830141392268600452430406384876549101884078745101939241059035026930111834341629371738035147049296752913965714736192995932520063051780353583070895039038600425177980027499004817569573250455743722837590915423359836586541594130307885179617132228163603927322215482746214932285074243533844988368863024982769297821900247134883638611122665173737935353176739344150748980753851075539745146953158890375854216006965706788821711657878063409080978505585179198074140235474981980833432925611755482507628542604633516729323065402055765418673953457291897380343761099532700892187091558488892646438797304419948645862247076441131780737339669489451075442566104175598891644359943809227895417006333961398613033463707850568009878761235754876518076000761232815001433121649458299677056319452141178513522173189876869931206127280182454174198444348395290157459217149940023666337482971064163362566966931054805449479435429848021397585671992259482308886234683827424876695769041004753680682242776187155713681830668413912262203992625310965923969238201815485744226504892767501704068333410772927002269889295217560503068868742839209798504060950527965036624415487215520759629945586021786077178850774855626395049409373697661324115337430316572957680531583039144953722998018385789884456471154530192634512053174234016887898816245843754297278444695588855873326144742989620122146877381389040005415435723361549822014174435041931240685305853414406101606714503005242568375306793182744954551863527719865504962183653198574282913894606918645038138314657449486394946982414152164102651733159037042710856576260525908087804141366802084589410313730460592920562121687579746845273790912254366263553666568923502411149661989523669176296532294997236762458835183540309044279969174541890404809177282085332509178250542470936418673614994535206179795494688463072647040542192955176536551226542685650560740961606266723918266191620599814023192854851846588380700900267606486415515410901474796971785482487491025050010476016256473435540661856529792326263961939534140817583574692646165041119931036637097997244649970312017816996545917497128024410118741940220937347920275831845303403442028713676590920573886748395780389816757230578510565729892430299391139423520604563095253052496150290471852582155630896652062354845459417422175176532710148196864350276138608473946127257021744960665392875251932319691007463319967501033058531146757598331148199816848162213935022228445804648353376065008895550775711948920632555566230370902167840775082614569300870930679736275516304378746879975587981877539554537246165132751686024241382884170142351398375287646479298712280421320230200446421677693380215075989671364802886353272058344116824681628235415137986822552297870359221839824926991041458325126865240841543689405510872173068444896231524915380357557782963677257000076931942743380206352083411428351600821057201827986122658507629402343201256354528882963277157992165533152339136620394158291235536849867860750051169557625430653959331269886561584624417892076477475612342580923544462199032892251749178874494214943361909628162020231756519469115444920248422338174728142486942749372235722189467609457842797175807965549524378683584528432191367928260459341840979079653744838661070922828772171777208218116803334986831562209454943165291923254965684032963958558347959038090263161739533377692261733443938292439117027089154431011572373613184537670676193541003628345657114297066211956255195515887233772648588927408314095622070502052785128867295735162983161481379874387340059636606108054958642629502632777805126695201415100778178217081811198245467672354625968651159993096041798679930864433533866199707092826140239379662834023885729748597317705789250270791571821130400957653152411765681460903906722790857945238806757148544191254635509084163139034846229087522174327175353839773960191357646148867534081326909815758656042626109795671590181119658349698857366202822492214306032656022690790733442864727983086324585498641888767208744787227884353302259883570289286247709212343233066587224947235433040300222473153361551990123023434140869617240715361951138479692403023440538099410699638771534208376746470677318820052912281176157465974520631631885962935681201705129533502148901006180079944050241759619294905432810372527630451595914604608017689361126272397664009697885234975904958912396319315038479977883977115725592650618032835092859072442422610993875752190570321518463084946909906732352477589284615991276209332455501261458350800984473026639692558465934242395748189584578368946720725413399863579769652029974938827118537951133308020763071793820902423914020678652901268758803573231817187721570699167203316445955122947849246551018721196759812293198503187559907454283490166951844136110029339135221313763238690520398161565446578241333318480312838036079188332972561364155905213144737221734452337806001131754008515898229526808056400006564819256142472176319786059243623867225845156971607985297662811232321710354491075017415104752833323098836059265366514867596982259756352136969502642746053718297589133305997792594927413486438149837674763312355520054982727044058861814221155646606041008901210286493999929721124171520839218697834340231618746694931882974011886423283402472560434969855999400896468164284388705782664905812992246683520909275482738161788679527990760857237986789532013271334928370763506942955892947675488672355861681740034445299844082961009518077644982669206200436213208881343443972743208902283811695431551003566868039098512036077757360367963884186486140843513911021062521846278368840639286888175005454415924783251163933108026380884607832866886521396876943580345268864696119148828115561138372469814238711613396856706114544788914725375708888637803331774431057458810641203425218658816491030896529590742901106939531315420206585846935553644673888897098674567161116482815259951570969173471356084642883771076049000266011919141921678000873602629098008038992843333199701616428517581006426009073845211787806160566319593612812025864937142768867725207341162209949741475777860999725612084980404424525417082737756130141252138044737154170924701132094240660732525063367973314314365272568558281332311178130703609995056322655889370725643338706378382623702294456721696389972208243870392589027716949529703801060981463590305940334105980503669487674743154574815828789764607933183083158255951208664261679341280425288098454628124710381667719702220469784467716451370315693938070155822604355998673788023386437698334315266681264976534969797792531431332453621357185779124022765023011685469519265504706365705181475919122618441811929195637094307071867561935162176408038468444729981029828589806695295117911396464537468947608927041149672275621195301549778400676418186234985384175463079442482672144637463219925458476080660529793443370061215250238217994620804720427347036092958641686086652448993932251612440035911686315079961575413956004699364933302545239620485525614827098837161635561949300219163520441277970968288697614214237128005060893899492368118980856688309570477548178833841160486275552138465926149192078647789076995561656788897122207421649299324818119836318018963343779995631767089916299914379637259206507310913504284801772282699174990443069194222114656066364257936669902413222960771568751319101207256875051642534396009104439519218771511393568692525237600876231353379995494301283656151018857202292595607842129198775735780874812439431074817989715328021492308399149990411064037054641668776434292515159167040478352558273285470486497499266840324641208469316176457222448392324647965755369989421271135593656962999887076083717573774116232695611272854464899118801001318484950358345199942058447328628825517618760988290139308342391784462126121834827398396189111366413407689041488206975232130968054602132945685914189605988842473398698759034654303960923814203352895959500177217609195289786171114772416116075995314011542226131133384741889331864244236636591922099268037373104717455618513208585063777489929618907841621728613480447196480243277952924098485260626880603051781384069035645243363613389090183834351332367099900411954614663804219547773660260111375115634154930897588599118481672895341586006555362954663288152541892241095911528123407658761147804490345660320643432255917468859847946853236230906625630212739886405078893661841423851916218359984026212837611935494672686631007037039771318563283676776916040584602787947649981403668224454437055486786043066553398136231432700715582375324114957784320497644142774597296651786196065129691264263958875337261861930315157683182034506909315213417009405987998414911504898538692585974872185740828900318307467873071776070248697900430231551076963702810871741067551428338489061517044274233694788389157144541685261065631202750944524912121608500976728374058323252657487718752969509550012771234975498193217872048172635591301385866757863664841587030467473835661349573255732973767195802316941660448091932896616394795654507795569086972788841490663215356585454896782351542878521371277987288732679105990163692148574692391926714125618221688411236916255447163641255487406605099838917636297372701203107838227997989234517752201022515247766377143976338152839926297468570319611123463384885743287876313506081935122437984812190414946089809498170582685550063864594289879830850995785728966379377143512402978857388713151750588934350216806371432371733856860634190325178713140186976705867282381692650352231164557598479823094838629669703314064828601567302191361387279666160331815723044531264327338164423965147445645816535254039831139811051883678914649684661583179653221368536171676657524281339876172261458828481176233242703432989343921758617846248876527254838507842129696355628649285915898002419610011037051247129736640501944118593881231528380952897310548918311484043993266583531176358149119136826763133377480426942102297210322031689029084316332687441372411614308223545809700549514717381551435424335458126793277158206505511186076046779228484021158346639785418410289787323805067557008434762360528251166085960819011621736248307779996398594243899906389191457122175612046343163012669011282258174347402792675671726245539312218046651149284996141920350714675236923437737564591273807961924887025328439352834612194095248958525564258405070128413065933783091790664826907020268659792478178243711136234054048973814683978543536913592342740666247697122606488614738342497186526368552609794150787329590236947999800653391067471339148803605992211390336921279345942141273534192664034880211600065036645835298394347659203774337488825107610509693234527634858376925684800035849637522285420706504413364057917771345786832322461987594187291469796819726679156765361743772649587720689005728213623147038870587592003273535495983780822624877542840944543992602725986372321355731857460014506313201188583217858167595728596767922417995501179559299535556854099061790321293474331810881219562429750927019395770768433290559626504553491972078600503922265251900617030151234389265512486195506981617267333795704141252420048665909035562226728783703758158065725223541453053145649269072851589545184209926293934682717454312079529946089648243450786953759421399210076735596842935688109192803733708180946905317010458403785266581770238527255249952801439206591194873025045862184431979679210232644571284780597015685969297443366552447502317221886431039109327721414783519321193005515858255804182527783700960265981026287828752732356148884918945961007492463599426373061057332441846405322509982003189122713296404341769105547719114684670021580134001114798792864371973946158547671163855660065761038645888339120651882217997705959799284882119665524461034176713766495699437065234584640304762302011258243827256142077357320307045501899304233818358956315452904193773444502606257880872895631484947958039798438474473906865689638440379275247019459755457927949946142955922201301883225864990406640455375884500009430258044517787771681793175314996370432903170190478982962480258669960077504006511099308095003616828971908373636715652644150884392052250082846603772390332846803632617824210542052050251392177716580897374858746441762877203428724167474610069229317133138226120533895403499062063047568252187392134511988551017357730734760764573345849876562594843901715772696171721305524817360122018907141174067661871948484843195674997481342684498204894964571002186187179822994197589471766103921559968500830929551500481601540887534286151327330047953293950682146152432703349433131796516529512453127479397585221680269040779942860474548128841001698971635873222673258806631211416637066895537762863227559764630830774077079844534936274431319066110836893830502649227598249884234786576502259698638018007497815827987379679853264487782484975107567641785174622445754908742406530896259558711778369388134609353586964903956616541465133896483452037299833876294808497158520915010597511823685881697573419234610752830120208021915674038886077418582070311185830589213220064648314158894751927961425511503720344745785815967210125334582199484851536319515489727921350727029828249492416699894975632505065481907735114297187085573968733340028705205433394780065313094400569136724120983144189601235527748802227926525436534308489284252535607216691731200099119642904432333332881155068253200935400871808325917588199494321489370199262923822440097124765037210178190620994454179021408876321052014835281889715278831975727692119904377835456436824265596100253804015935789808752380691573285795175791106703651265462323878600756359703940391988573023711437964010406994422435798621851753211111192054492736342132321863043608899155107022833164613951596535006089506758497387674446983998193366345965454658315437664555046752062814578786884897886026355178926867279824482094612863757421594853238791646108583559345029434369056882205849958341156920522901710657822783113911960301936636208771163860019927302214192211813685371507282245436815607987694199415611230023598769077373907768010488994821275417617468043438852037748798518199690700387193301629774573008411629673906485177738861356515402145772616834108602038836901158732163783974352575703995139067947531148041469085715711311868352399576898857352444152844246129290907949470121796548208354116739785321787867291510923402884177380627446242467346838824588837478304591518272309108850748663453337545585955051685194989334866048231806866896973906995880168873000118310032116288850186252564996690948860838791607044222410060095866050664670516650488821752640663644804821263448126772206056986337403374322231706322336018599350411323560449184592660655979916818992106195679777385035810701965282508109229624686967136382216042870372642233490811232221516912889473726495197760702583309444841708537055416143017080752637073735180920996994784370553325845231353866207200224620312387972120171647665866391695517807389302424580427493682077541482497007775819516097409876888047107810854651342664628049208828640337095006267230360935873126401600149988723392593395481921938012294216007731103953725746455243670534360028115542373952739290338841054013936351654267069697153319498792862984814417734814905227496348589680578703854494281617162669705322510046544337471239046061141327838038944516384309913068590436539154828453404596466154810876738527294409577636357094679493305321914284714454514648352157455112521001364084259365896542551188602079437985813307763773394163910683084649631932811006922223344096092506412220062174220989688179070984986524916585793605312953051815116787695376386774645545948120359872083853155965464258691965876846746819145776338770834891745006973439338588550006549616079007002487368280850732569985403110564097001562022770474660412536936415196172477478540707026536798016100985849075328016669353485069751208250983871737605036352436269928449071813475248925706703485863093550981192445016599383735791260148757135699685712493568278301957073816263862389897971498023481015394847022006722671577066455754406864292472682382813288686199251059205499833568868876387779944716375042163422722580526937792650861001397103766791860832524228732164550792810769628314380090641582814224766462499523309433034524640146913988923880206259098286378314191605524989832322369690616279800626636166472439053806449740514293376291286103626341226785201597780080285444582442321148694715283968251854761779562223400003184100769338021565707569701892587444072645946493173212169401609490501833906878341671690712482049373040254142336396502557782055168282622536303599208725044076870844338509364876821029370802757979091735153213460392890698467381059309621217832575955876190794770096544171743372246148131553114358840354669688841859915373710727633872716553902877385745542123642520761023860064560745287668816414650989471497368321811613574199029656859101093064774084266916265774657401928228184932711904861916671052181337312731464513129675980524463916314685853366414599670371792231313615258811558261505972711190481468194171377224399195723041206176143812897451002167356073865162195855640352288956881389252340686588698387157887610284770615428117853758123856990456090708633102208079891999717662411292792897090498855643786601117247632289849990718572453256426959050539359834089341960921798428890215519734236231888602694625065317639706869989424676949001624928148071450684937990521212303458218974557360011834670978429406270749100192027349091803997243959879468786801420693555816611617867552824324700610985354526564639380918529615242515942460274303767916584330656699478509450650736288643765006206744578314065260708101320615022996311508633323256009265065880014207803851147886442829898191057419192271100911897152813792458665693343098006453820068568846290721703660949507939752193563638168284887190239017728983796940913614397912493606088608179943202314325502619731845029391401457285729366311213242765684953904205778439644661528940367572107106656105953090120587949715021466010927938161704931928031600551788931832897930994091933094321218644567137815302458433928814027942197621425750263195363832447501639638156913994812033631650437585727919570085667307899845679868308695450146968380258334910909298721789193057337877980496550137083306680894328269836236595819725199543441490695236303048927115046722995309893081936078523252732910846368056040460023650606975378995039775334171694244616739867966267143509073950651759957816373570080300746185322356695283764136435794557091422111644408749136126525150278546210040057297362871264980090748079215068563877644238665973237218785783940061689703430723730419380266856842876847045829530724588951376696321368188273582304449334526057802573651736443539892827499599815704205036639091669609195648013919928952251731613657356903150497615819219470804404993638435239446057521668754361557370659279811114835142636628696467879067403579207780766255749280380292366152537955564271337538483999697969152299409965387815675554683188407356381581891746617045260739987774602851494247793104194811687260937520450758821518899702841419518792235239120296632475258505577421269505086703770306027399219515467938401661077468706448061439400761367848708657152509050770808635769653116858075644644330092290290120410805169472092446339665585875673950802351975319155500527960538293242607783102633986528609737008886229627968155121681499330556660285668578168773528540510360748148375051950604799531197254044085098526968754550019143500228242309697500716689325983878545840188984644045485806848619483134414019610937748463081543193233896815494829446433712541483712490773910657010331875145077564232609924451626057551060941231252758750182166654383786134096109875404187861941002086001402450221241258710079946849366655969441863565327296457702045771986532241879885867398517550205468557347282438417316862917088434272780642900644690949749412442818088459121355742584213069335654356001797836044360981536363670265488081257699348526894477856072068914291091515025577109962086195507634755454532741737790494506935652952858584641022601514099736515189460698156523857500972790139790615595775686554278395014168829175854613714668949031076457655616245210734589306794706263120997456025533051411268907956764648169581113577725354419071004473735742525625299376619401782090691329525037738237503404544890557234363232962706829896270974230368189037297307064867546580982510310052144145070732705748663176690717977099187894946126499693678578009176079712535767102831049970648670699935456250047716836750798247760433148580155357915737459019857452786191635206913875072092142283625562678320937610214688872671219084984478473239455875354568404943506386946606969758456025298313125988537117376605796656249881671289245337110859975808186589406547790012706331712715997036292178125825498816215832358529588731325499765458050911736476246089476311246000318371004966952072076244316502853386129421662564758952987131683598041835139636191011796488549735912371694051324886847165006173111659374998741067333990084069522038768799126911988630517852243582220342902012993428460944440691546875682234956594400629421541779814331999356344392653423856276726106410089722935283664127475894303160008129609580980613258504241744559910636282536969233410569229074363494689345899968875802089534539897050671281585722114968915327876790517690789627368117541537017331231925220928919479448409954539657641947187505208004615178778205820418853916965235030746947194049422210400377571162475468597802649213861814112161724551022769649490974243439064392186984396897909827249199776142062756727271876863185276742650806407488783398285951028678958214844653362463513795093410825291790266357781949035137915500091278781921592995239351300967044410340717092582711815645629939300201378776465463780274401278771559286537699567762935668131695016602409678801896720987109411943003322225760687421535397393839254812030060931720257733713699731975015489551746599686164560599828076557540381116015038567544543533415103894620524870302611523352282119603094113250232441987978377094372733546369369859442232707402097093915917874872268183157069298790821035170517786746978686363473485557330096483447121505965520734758856853792568103897652114176174303083322119526839130913573492056147252933890981396559197464741470892554638323654904577557518334182692300092594645166614225177943460001745812517394162374527069852136979047654181566581198853139464919689846153424986426313986181205069061035161282823958371699742179480323295274010871694224880434566911379623966140827329611917625629179533977166468828465602014205350550353008191081548750510593293574457808370386714485173281481457541083045662264768837523495847096484128255749034751087410502643970653146232094308819266733728716861611299624641553166373944325813443075616925213246273822609563547385643367956888761548537331361397292485264141060034239347588608520718766518498169783215571687191784977040123796558019715466460001180278506669849883725551006242138201420145392658438057889952029312076464005965492321958711451273616297761939919146486058417687729762560000977123539756326708581122348911051273346152793346225251624405278058287376492746456252368395223295680444735992177809797350765777478294564600626497313693339618039797727141836528938578828917725816514315715518592728987081548254608819625849368672608893083588462297445625801789988982635395008303382554915941056095781477492955485382358458201471159209002206889688157142625464733530047510956075816426573040442599449728649872152419387344472530197499492595819047525267136929962365693071367498319820024224061350310026364043432193201388987106899901057273054756243678167865881415015317097351667614990857404054515713412047454501409348941943845741750368148949285098222847136730401408241203426356105302238332477485610343704656343685890575212921248744752292352535969858146742033400163688837295214172106260911519678344099739678222070089236166002371900515403184157644820664510270232554789484118328339070438480815574579971082015393509945259849491737716275519819118573013913533265021546788247550392953371919199488491083228725619550566819602411760930173749261793244518928190761013373206959077146593909346000550457044752772827924706583481177449742561445505162652120844651534604596402470703070365087604732244254977210011285917635867247506091529679655082697074948455995311755400712017975278817550998610269899526629154740032830866695540623645195856056095029129177011354977508408088147628350376817975113400697318241053195116005061033565459266938958993632544399641894360735964223186464390167291156157230170533401630450618710260551674241145079687922092942240220275574638416725401425802238813828521150033179069690712191492716892668333589863428043434564032861462431390619603778056381081146568626612904998965086901015580598190504883742478521275065426245479703279442173209491182766382990116436003686861806116065080010123306256788937710126368542230696475055554402817890460093131216990018072724809636495185597658948965800167544975418414231904141664192296102212783305073075527972752240081434923389984395562322074475834047098871057678383991592255557307602816802158378254634666028940390112627846468238214834522294924538239297801200483141300431362194995309635467707713459024367106489975145139634112152220421343632598501261026805856286876985171138166638065233854478332032180873200372595639717071531721512374938066384093898651265466887362994052308106208730179044683320940180675664791826531450702048997897625043954402629748014138811401760679395225668214776193951392676331249350478019191345936190280878028132809527832405908804989352488895541080423244090866818451604944818469816126995076971429935725529693813551646405535628211021343382387338259629422216421758834259449913817939925793593051469340835157630003847675195071798256226579497637360022385073565848124037066923448766418505084702957511462363094412569285180270002411664566534102205054024968014362246473062905767577963566638631768384678434447494495522797310938027512943666033376909111618146086601943789868771837415412872297547850187235360009331528439040931024831873430201482808062846485099383972520315210552571806136960964131587254079696701557869562496246087000479763621881987070107477367237551300405594659132496066904721660409401222315109335342766614680225031605630209152650180711112110995676574449246398479742452526219186273059761011277481887851741935166244695406959310352156885846824959876887803544733527770140503967272605734623629996834974701502091142257578520476004600885191121579909172070904281789015223872380342677486593163333633188988106073103839163102669476081484793799091883005534640438059706713827680137161555795406598079245628169580312219548623659093148837004934959165028754420470055818974692959850894466487691558487440183521425658402275533582584512723314671601232749699754368672735410853791133092308333626175321995224584952875549299270058759395289727979597978400201678931387254406965633133487570289783981639843275956397648410506289507287180648155716112139740160251528588133721026195818495658873234153829206498276879839184939939647991249601646682967467302359876446244139536479110336432550052696714123197519089336654111939115472339333597267731900508974322160437769177523979273774980340506185799695042139953037516564237072698191539386710059107498814801829866240884549184389982754850068844349534021503042029223249192654168569870162261598625332183194455464252050291257892906755493506237319782749024399883151461793938249564172773800574207164055400001881916160154884130869950148012505352226479710829559781090438840329542217779726464804678419449911926339313133324597221558502591030554042020687800971359958657628769145174578034616984160315275946266849321957526912264859534015168387081249152522891159068426128246316747356490878293442781651522386398178810719850957288393829236540689746632005133940618838142469354117180918308033944951686632817663671891119665320684855170636330195673348309017142357678547853668667646293755353728087878905926436732830077634100711390915669506545533696483720931340980170372362093140546275983871934954261735161600394929559508639722737863068256920151721306059370033256211857405470393688198619707691311700710686020484149951962761624253324617453951191275655047433901467335351573377318554791394815488733579969642047787944628943327531857171527422047576090516485067374390996456839800366020585211293848268958242457460075423728781418273203504653763876631509922560071135463029066724742245025308631328937419401418443473801635839926311204465156610084689311847665010538876661525527645931619462170869473690155765276824278311222909643476780133262751163737029476747635453983916667125384402440807995359797819945874282631111383832648571111015757280498280687428273555802221233496945561283732195795414777718975555399315992744065451079079736219274627315567060875062888496985364387110908233212422670239088194438763601197245698242750715858527746703786513489112286866156237420503360917013663803050606714978516882547984820702238096971140660297130713135114488047051755978111615975518904862595938509567280673472282929225049361504571580335384071192978177760367410777814353468961177883475553460377924459848123003598827730383277203427967359807538453739831038582970255585303685996869334339012285877307299601019324426306992499033219519679024404048164851474611304544906851389798856412557237295718438586945373992035960308518299476390931803736902613578981992491026833606584813747661937708707701985261374193068469867239688342862462767270407475052939941158150283697482919331178723958044297363066485576793211271452129785527312865493128095705458105770108915180609941266301174419522782101027593416771953535248885879914848525164133361536818246565701094777137002089616109201853135159395638124875033853096121441836600692836989223299062976510392160612534542936275694612099729831834492106561170990141832403631479918914663761141478042430049532139742922155217183930672281730068148949760826235592722312754869097738483528022851324472037026630441058890039422663315986928246878944695535913923254161161426805987945328454347762860424916222066352342841128559160126461054866262094586920600330975774419201944064225549076441536294290009327600648591526238568730554764160088047834639985657743693848118476420724715205229616867830895308114850660853127551487496013358931398170581071623126077481843943018288754975917780596318308138105890320855512775572424545910577588202223080915699606827931287022240162045327721399995221870472302184932591776593010046126930669973269038357899934025119482576344549675472560759614606947725095347604491002454149315971953685976964206627698916600331803761458410308540512318307459934299660568853711243502022865458586224307163880550834182059361133130816852436713721720289383314871480440674030880076529998676795726118070429802925878050481486757763154172339115634683513979993289214087126578060610192064602423480305083653376750171548254892734064732473024089944390418912537409180939759482422770543930291731274119654431613093879136775303296909243355876741242939666956701976503421725536038517864712554825689170678575928024747944256444119193881750399549990463597988273603985603362148255789592406200732254024068629187743210920959056600439935761087783170091996552016790428119204871091410326591084436433315025080544784804707469121227679930329577939728599905513603135141990751650767184474703641676250739571003617284299149669832617361645058473398836874027101307508083137000652127409649969988240666637544198982649251459574834605295123260043738225707984794823058525944792546174041394084251874660460398624203541635389643747341314044770384803438033607634573626250462298813092006493371892311035569542252614039136935354831333726036172302090511978956138950017227723032871481884821563545724354659246475381778512965660500424192372600245994687999204757144011003310441392104428197810294749800776348722691871746740008075053688745757521590074664997623683176916972165421959949887174362946812265220337708846727356535840649250235690185766622255766438091576818625385182007092877775684168287145712167181285844980800270921448129958025961626972248250815715319042832366084819308007914653230330007615868301881249024350831978735061197011097937133443489424198497911221571465884109013033336072700227006250127361199234029527635385873682152208034084038447219533685415458448124180378109724420840043262146380227323876022079337781174446234722192994496685124480953226641464210372817775702415269603865625551105717559445777966771973520372104334119286443581155361812512753413014445684368854417474163434153027500170954733181505232728682571355037372691817118862098017585898368229623105278785236260883378153949237122088938643805754393528756948172002751586494625057186086004644867663152858759532543203654175213279573798406942508812349781540972878089149239561355325376020718697123812928161414427516608435533489623511226149398843740019684979275206792364502174471216006621159500640548730551535334412052377529686619845770069430814900089052996507362991733414201108333266493250991253374177605393666331943228976777611357702688843852818344548543996665750413701007999454289736854302624175627335066155795318081616745018216363434203250313145020031100924230830806512997122135161407663341011749118497728908712234303604297142823644234409394430475663867709726861333872907836446046900603344152317866016836558187656396462846210530639812275136007023304306893118781609742358508576261013888721326464827716267184765377145418893351571339828187216051394716778700282431236734167955614511315952250445993892505907677172707773970374378746447319769632637087178997378659946528733360400885094264807102184566168542074357366926626834474490658760061784269533687075050068713862355096898549149569659546161029012226893731992224777457783115213755976285355091221622207592214084848847719646635382068926630925125124997355018074834840268175377007759913855676432440196749619640076457294993179523623272677134532657891443824697474019164379437415170848005523235343018191339808842940161344684528730986509255828282786509760971799133889836203159572018928616305526208428327846225003295332568364964194258989238907733687078498193346621510178415562669833992947796489073202620873610148290303786437914568630029117235490820287739804380589442005631662542882169572032941071321917449695774791440803138727240331511414941937134342854851490902013194737542933920737452640947731789651032289419615366916940531485602364389529981906641507084201331634521505694300192506973271747145692733657950860149172553117337077193985050446550410545374216429764161643951149599309325842097254337792540210968702325097381180209022019406645246151193210080357340197892703487579648264228676114186968860444171890929626432111342467890766729973760265929715897158994040626333255986473396169118096678554870291296633044278881276135953689922840811404257125915984511823894947389813198943127403819459063835932715128435913436419542026928464796603234135683737007985668742173206575050620434573419054192067060749670835786079971875068156407150406109304823684171851873847232852071272414816578249421531074984575721925474624992266242236079699325562127516335480399277092395424676976985228593833082075703811990911205483138862601295291371068843921062739636043205235135115186474596485909995431811381104706937055310563018455372410504384396221960095112010607912823167527163028993412747116595248639557350007497681959529974533373542684565032699245771524388977369153233770696934409254791682780565544253417849644121111038182180945500041465127015221023732882966244479003849067188560855203551905597752673097303661642094609508178920059521294092148018487003086986842460549431370904111634001401707570444518762319353648783424071489883293978625785550320441156168091723641137008021275444152216482681403984136177498175726951101004090314642185947290611338479057222228914306483846673710081479253531686159546237829771512324004410668634146974406959808872343479994406717150041498149655639209707120834612333604409212919515780599508581753069764107391255351977671798132574064316712700671044753084659615413075929500112318165573755071301220875396600972553905991488114272438252829318915545373697881834743128868079381299020987406034746276641996965816197377311948127389540212402798995498262759007008265234325147002335614094436242403903170703067584767305705664174981915670146403169134144627044964692740157198050956137565765174743038309713876638239303093281359890129016413808659535407095157018511162059652153953481433794292267376687440714075762340336981963846356914553037126577263924131107293447748120635285866258496527989967002974420240401000037416402654425124714535546215411802908574180581185736933406605870776880691539329121980876015934983784276187205194631004673815417185861196872741409376182442308482336641148623136261203146091036137415320401148565736985932354891315333612444768227834697334326857443542873486070705790642353873410769520359823368925155614432687077124522661891189604572006311664078498757893302697165935114482266228201471742553531851010997281266424908359805836234449702149055093621409856545463237236025811786800623496609432904081220777691625808488627198028630327610222750384454673983344278909147009745619458274978567732105582524382777038004000870771499961477867345733714205983591688103808136221981444607605284484449269814099806036555292230178585025752031152243220130148304154920516000338865361131103898735374867222638810421369543489532744952610713695031608673024138737434632944850479893582349646751285617267845694871104335280570690540148287451119448601087617434946118309300216745661387665541155943676241476965400875033609640865135827307296400281688462765579824970119795939454594299715751737892859142150456223639445600245618414903936207971303210963320268888364495283282529446314985792977616236028517965811859836143464693423038034121614167441802055115054927296415405252066095985282073422315536193085984493771668167624418351049912792323177862529733613472049413258799828044201207135355183436671974573869547796770471962332724645230861883738639255534878199619309776814570241947843772942830649562781561417142725946815684444022226935281621085872609895944923489452090806693219196326257255158587398053031288473636112218405872400723875682509177813816736890713814461239197352406865399732758451081415257891037744997423199526389629416400901242237700861347884953206250275792355885605667899484918987742659506803304495271588999453898769412161811798559285345156381035952174232011966170488593604980166053512961625969877989658144275061356220593919390307915987203770469316643378364084385246441535640662255357344263358871264742641217351689232629623722861999488705366246275735902013007718164990305706053456528186858174858698093836212293890403872124455922629907835256359615586229766104147141564604597978397114162188270486493368442293883772846801242245836404955338441462305394824648251022952084540798178653191738275478887357600156629062153505330446192396080965760290939088333568920529013628099144548331686502866277076664223492210377242206458176674374167756288399970539205785309268897824979090346629005296350129712873186269285894221781599286838277212656649691609721030650734165883061222236621253994938766272639488312355481249944332096983574114473729450002574162739275196366311284117123337314196684606180741627033778364569751674519398558911100866269896635843532896624565904232055976522273925684192393257122564389449076420945799996369840005137114742853567250567267167296011262744524064207740155558731552423118465957358994401927395597881225079618436756869755216438690997110231025958264171973762467854993525566368204621393733283459767842710607693732132156561843639342194840836521471582788449111941316458950361801061443985000942773897447189466621559094468641888198416792863516836118047356661514493753108120596538826741608539897903470332074310391481838778729287593821204767145181267113821748445477198772200500466739545528763748418675822543336120284132318092785209619493643182222569705499046339688129395314004383831470349138521615971494060015649966738859378633402066592916832027899335624966653083046525479333040765824804377115538931345125591049099551019017839451986495116516004839572831850105212911568697171659582291874120865969245632792391859278040400425834743894462213758351807605092820068555285522200069920491410360262665696252917392143930516743298460456336666582329765282600365313176550461160849118459745413844854688670269903879950320910335117426503921158818857672875268114580086882379375703758464497281914944494009137956473507885278900677604430930854962381789404347068397239015082949527199538179838888065394566992909283332963823337685039564601187971463806416674350475958801293760135387682272260537195971922450907451067361205021922674795830606197847892937156575563420413980096877321129479957668791989870602360375940704853154502556082947383402292648928905873923471404304914361539167745698876875626764226939031132122461926248468753988471135403979783513728786389891762697610144679473400834145361287506748106093129667238205874028427140730733085765056247651240576881599369572493719457269796500181433138967996167132660992839388393706997045300188699359314800495599333172896398233766587352152171659069372308205538235667981437523645848202423715981790595762339813757426223519186220545036596090329122562203722553227580003126844360049793737753630152312724607750487952916265256924814289770976614451108091762314491962410561828289949238694826406260900748773000992305233227381748306570250619990464057519314058444046522449035584066396224463623053708294719521701240521317944347054532159066233874982721708249291379546967151675565485215875534832871464547560049684741685983087480779643170087842577806740398190078713774113737962390386824714848748026985533510442103623007623774371500605721211242411063937407562036854348091234710860260661611479213326499221122669782739446835973561930161887902484940905715450195309409927838460617735838691204852435008034793503653142329569860855005776537332590583464503740245865425585767957799901834858473489054767083856232633507350961409697256517229171441509250950386613237390736054669814769673601519206789462252511784919316922557543070587644057369635343764368399611688636019173217532456855215444427375334802609497683131863237290118701687418151112356840089304250723696465738287460024187643733242627042612818447388299564609705303039932362525288358655090977968748050699152360485962150937182264353337126682877546344801038246576082258562696268025262169098238485665038863088873120759127739274188402285598866606616924450007002745818102959891579484561817295053562880544206058827992216414520646144071397414218735189681255237091270973161118234398491018202936247290622269519740712549662583101620565747869652197760283032856060624631515086505307555189352790211148430262117680013217319687554237177975612471457034447429970203006911724704809432518282646549295225152724657405557012898375310015555207429857298517291576895561853201704508013757715438842812486900675076647001729685720049319825000950293382001455185425725646529831308793487678039640578090412737268361437628584346938282656588276437395521649796480412280793428127603359384237924791673672920486540690972118173703690061881208076433939377117440470168956007096246538775778540766069383311952561425746123653292092933308004184546901906011495534128672559171323656998739671263525579991961190471956772750629899511368925236076081432895563414146037096110843793051230461554463977968434822298662790238156660912147181911665702992248029051210794543034037411903093022637229239418258632557261094508600279212630718602510290953489744891794304109443314952596731286363589719324372259031358224367881309751620533085797119125013674193297980599668001502757205847772015229024596438373323731583555714763164388928219698844434181213598723713530611859489692728644505484088936122844021727061023503922758317252885581902690424814832634383681838358516086656810577812166807500307059874350161296130503224238011807697168325471245419667979566546941560768011798755362094353331966270378419344493026358763870375636287851634124345163778718687334691818192421977445748295740504798414983236042453079292728565466811791511260732087021743227751016145632052455960960670093387585883987166741958600437532864135295989017801904419619930266425000083280460912658499302028116355839337395742649405214960583127836255362340173527938057939981000331044930910479366465473608767011240194927763424444327366077970531257336679843275882447828722127758583733109311188030989361281989840351471325767900110907141805273993881953575312100525708538147776085223865172898530343348194672451688194063470988655185756378603531623147809005030653136236544660006556438129860318124694673835487394523691385887421216283283917767818555600121232281395157405252559168464500273699146363739450968540822912272582522628453734385243700150755095990031756075095743539066014234764879209434877576109639360316494026860514901451081831143573403403098147965471355671698462269259657474538873195723517808402085811478185603599180586164885913419309989451646117181658432676422652626728669355538013883830414387214066165284991608489261273992159941106556971544299432065898498012942668633923216335745218454412422420892469588461424647299980533561556102800002122826410609763903823180921837186833118760534031127852267909137170233457325572501136289490654759488508792324907216932242357915527596269764901157683249058219982361474387527222663779989660174782816796483766715899954406564399522144833155847923645923474618441966472549831665747743224404550131826319579325016415208595995181875144509644175616831714343915159333061905770793711617069015249777212567857635205234215469976011942574962745902961143073769665919757438748593253149784001109402240513717559526301600036325740852676804457906763446456628847431431109198189077727113409314611509861796825895898708144131427457249928805040572667728658619713798403554765800729317815888762662992072932303699602315745132529488428786805661787518010397791428247153478614842356606606531733498114416303422570510488066716132991496409322331957318170798846290891405162659501341240851688569721244044638948123229189520095332864591692880384039031295329419251787612426295829116334990421448780504906015564072891534864654031706480068606485890543957686113964825050751912317164015669346701429019595728444130037041984192907732230516150515322467060891405849293982409980698331236619988702329508477615924681767286252473601110950087896249161882695600305919836519761780189093249233176804901988141335221769301713176754947339042586701353807424092132190915897183176381616540450798033440401854870559766498464608382182029911872414167423207476662239609200803577245834859875305258364033412540935444009225027166868836401717256210134777995184989965123239948540274871476826257253822553622140498160433008663895830054808588894115933551864229081788729898192846075814501313946800089105751452519739732497203015392494931290073554518861212898215096256173888334548398689486296290262885381481226537093271560088283318225500564477065952548939383176694413130383978270547954225666065568123638182392501409033324591184817581792939238935859331417084609059399498164915158040569899629750135380337079556174379450063920766304269260306929137711154728344310582743872660315974015568153499003817855021961826966934412429497834696224705277339095613743453675915255366241361307022561660903381163387011785954758660514170634436081282758401630555455009315842555801420084864184474310832743488710573219482098081350453141485529945245981809017749136230307070766564527432320545752651329610146570265719735380947981352977446892353430569032695133707090072572649374415512917445919754882843423885556205009353506963951361449875842886064570663336108954425693023358868814150968162405680115020339700760774976566572204007614258869201285353215435424761062121124892043152837128249966746323191354780511450341583848974908835186089203394411797715241205201029180210594664480690251487753954709959348858917018624429752402122013495237607734569748633821382024535564421938779556852550995934428661276776900337595278762899519604994398356678367756086131623977264190756509298804367085303826321871745709841531384017272146077036423059983792179867377080290906257440533220060785263457927819752487429164488524770492229038691063338168690996585464995533139219400177474701950836418848551237140904505757573548009807012060681744333774073971328786935700691466643417488503424905067412648233118528635878787156716991964207989765135071926426229593160136129553402403667807970655739742097808269419694820207026894567619523027830054759286613633418330709527035023149660026948308754003421589455550467444856191866383356671039523012061307750746187202927279330980814974228656120846192867860484188581450529003322442995309152166142238021003664950720431577433997010468028068676519232910551956993867286809156818258509738195070733660489984029102723672223793410292423490812189867686935210666416892698917833168876960460219633709257536118756256966818933338051110743540636249459259764380413304102412828758089177347624831963045465476905807007491250400371061949652241843397960750716753181963222911234765502609165353439763277769917542902865636250809276210562376291994713473504009487222809206220410744579141653462660002981719043297352455132774241698547310723498209936939608019346816487605848509848142892065820946434529838190890847270627761024422959661302249820278690679351303135319315197601657322487699961154439130644334506270527375767856892931150375599855776939034040083661632547307087913685616979302983082067370303389622646893174816645046053190913805220883632703071077067344482797090265662939097202073243381044394514404235909788352828375486453900032552223306453540628447430333638630683770974028764180395460865021590042522573003972194973678692572934309257977198500415769631692601204414978409542145747158598439863235578751847063420746436781125977550148098485888652273173174723864538098125665130072668298778894812447314569876000961193286361066735043377636198521790680095562663937185395079765871568086862657208375848923242112373623998883609610468046021295149977268211740469328755993521123829602217646960181014862559337863514153751009341047783901147761951624937056085251389254310051560653935524110434098855832034748123573893210715916509964832791657668686589939397458150264113207479050785571821180676813939323351335276405177804469459889275661346122978385325316095631237153067428647433571369482919239447508784522781168668577381992485229474585847226750503209499053871600376313525531534346232312061752430117252840582559879215057934043171190003473854815356934931063319626596756171071946818023762811898255807271185081547437325340251366096476064044807900066519077147177657885638018960116133635044559848313654084568779213548679785731169369783029054341097060959041666807921742393912757217520512813335304947993910118535089554329554468116421913396710803813987120396782017292828896050558025989814372708562818926148002524086929070401249448974244814263406583447118609761360205417094536631719395848354397323903507964117718467923580612828702970854758512732636107736561004162305559011536908405064041960144483199577384017600751661399587670345404083976641345348379411453477614627606383486979843978185893025790742838679439591581744617958623608091567768638822066564906858948161782772124384429011606920940855778794253380822471786411897378796333804656740398785568274421654415602774190708231194268374610110177477695404291799394550026918633910648569643697984283361491239934462082851747214204369777058347516692396502111133369998889837753729104201073965525907778720618588450317923086094613256808572571685067654177955440154657998405813098055457415113718018853264327797601863628855566300015902335890801564483327058706160847439467126954703009224842033055707711463152939610569923789987592956359366793515925840695620494141238842067911178532827248309800617235500370246029806101478907139015901575083050426561642198726148415875652314118045498115479831542568467489034166408817878986165879553503290141520245383446834484676151446125650938450605217047454995652409012643986554378047284143010416804242069297547588975528508656293606245439161431907910985048502970124766438317495989273530629006513190218429072552854396352949754115858049738228278604722546801570811981044812163949207721468153373942623582228966218447047597483301133152892167282247822196963462222916723863122316385670706113714641843751706816495900704222328316591348869695037801991979080767809133843045506301695324595628266983884071777928598317753619784222296246919764111728364605241535518576950977359068933523242947178793106420559383987616735149641998343038236254887370401307692112630525433876255728679017452809113333783946607630167825929980912429776653278078228999436442427027365357175472908705488140276983911639692443224043940263703665561145661399372859788496663469921965166012308987928260877194806875063064428906197930099419722735305133914818319773629449668813460054379030383484791819491273075769486471502242798338104586353097529750955520500494238007139809028988517912076406873245688479256188959094713785393885654656068510340836997736092152100688605662326170063691809535625823866672681077746019039604493423303312124291880694505683192128260432885135719994775077770327658793999662653830865162617058772915359306981807371715131329688535216985815545060435532164328060398971384139365460551307452927595613780834786168484609714080620540414344268885000651390862988841288537551648263910391960737240612609955242799236770725282878843888966557346852714506185656606653829724326607801815853446593230506654594955852342893630372499252046190060580112569385939365481026714027224125391136034079211636974324455333986084683434972896899021679978724744145831206341863900511575631332758359006840643139815144670101561522056631663108951478365440636960622890827645007936252046151891861156980751524716564218001824111851665798120978306939300509091879836099473626871038791549216127720543969269772249465457629937988611785591681061895114806981321902073178439701936240759624076205379750432020200414219673303040054816093862076882735503398325752935641139502789251053925228521395676164682451796665991878144248761049703652625021598794941937439680688668245281455891564597880860535430141940200341777176905402732607637684940660173094293447682776285592121949276345286534167528788061761290061323464611239252298821571802811670746969599154801512025661624161535894797875408862565357953385939202719553911940098286348773450967121807748921635173336330695427049640498866728323312362342176347102000909271810846402024976521098677201833839208750649382240905814313118599225157838638423824088061540204965902175296733202451004657310751122566104692622503239613899425313385180946850738653976713240487273028451403353813180165374650117363505428219236503116079392687129633311625409033935131360412920726334306377072134268836667285016143017784076342901487529907339137399422102856828935373120187971981827725931653143110381423149898517198188399222515480452482877847205200135387572820949073371415525387500755402441709227667103822835070973952869927338649435283341353375646378336391549294162271172143120344050664112318342400574216089810597945257450069019276092790801322799353276897998593532735314814399046612979649824433605398022357046402148437118792270095882033975513572524949114665974867344281866536208977068024655981750603038670466208717098219995040312200278042448454186242604744855299473687255937611357132369527194913120600572589772475574198624231179880566590637672646484336324217952594868130257455039738100546621324157968030708912800917508784678016941935066414462600832389662968325895367653628706767153581796006047981250400471293142702308684035491907380031694993600811460904969939584202856675360693532456810618784498480457343463874617610492068375133141739414816259631754890342444759397549540608250638639712375369722928002320464338972683475189516311769517964136947620515429202478704992418344026426258982904570996401180445249143976482168262325520508998181833848434490472247917898754732613143719524613711496150201971391834088092759464133754483353563820595936984513281352840197475999472640802625067320075567965917465733238380020343070348006993259945928018199190022567149200787402728181155522617531293018143915731053604809624353586610610787261617045421937683427074503034169356308881816408241941359563890301985885035871940155467247799007010986414998912828282327370739498325814702514122514369138062661377538909711460495547032490670283627470853956066115151859146169115243929121091497999839080520618225548292359904113103883482948660790882408657500012773545345104552488959734895050294440183932694636734596622503237085935387647732542391149942430872802040801715677239765505719956436724476656292156681455724946635842559640352701407895191796247021185506053069543724000456521103456858564143823333633820908037211126651993415948128111775560578522149442528047618320039822430477477118988658010213552565077634683208323949077514828194220972380626860140177261770881631024823586797527420910168643465417020261174396656059060681278655972568492753644450659699344310346224610664183854699508776696822272928856799896107351623978123238345595676833708603384863744219398746302127410954286472354549524582100645985329840553934480481515734165493799690318872606201223975972561699683926751453701014910210875409223100879339673931720825275365907973693296778753812888674450393586332042034923339040724173159710899948571138775438453617893290010400501959798554883025973729551952319776944819822895012142165880686845518999968738125549312516615943695098529746027807450702416954910997300439352682131169479416113243690596635734861876290947958820226746174282146195691172725305054938231706110367392871618044083220565839241783420153322920306600753368270986078428176866369564179695893964154260468024765150717262294027775475243025046465195803071015785556828395509192685998209035125536407881332755940397009880037942604393191307843711177505334974766577709489779880057804617260868369637201614355613559121879288626293224004552631802873048090415335298613407239619183088876485844354105047224180717840135236526563747303714491851523378697749602043563907735847618436935818686696210638927752424502079428306330978123357704816360339154032166600258740877925974281055472417782531808610686635376466031965455849890428788279798927767141271925902010241365875133507662954634354844862194840943871767367713222045035242359676069857574046916284689469351537956438230575742353324551015922595440173653183839396686698006648063790307569403969733857517956511203033815272929836600491961009827760621395905753824331947769262207628875017893898137086275854688493846727230275656892114577534517939958337464048850367168268741143513471244615052786776272003047901316473222397593068976273526168799042994664650073355629780372390835750179133041512154549684607272893100375937324657687555274299774042998405289651600895676535079894886909561829259780008754412763251485343320678740928695755461716632352823765558057564599739839992031428253156654290122140801116776068735248027834446651923691454343896386398937028116304936583226364092950052538181235313277691439062850578227361246452848023454338460799530328572763444138965777039259303277886608476709050124463722470373992711102157019003643270376154944860986741776513275769970602867229291351657910226314530905037672947615197997810681162625790710162685387723377318414058280067042343653713649680764195004512697297575542816622257975291551075872652053644143192995109651853823518886340365152799310740848761168517473347292198574083868479011020657527376890539546333624487251519267528997008398041848613463250942808070855918206240650280089595074732975792515637490067859034088237322393804230134334962330331397548488057674291328088231267339803102228084989122242161072285778972318674776444702244279579747671970369711232593835528668003743582489977584608339955414763377915618263706343423461103101918225874400227237435047759305806191859346141552950654966806294582758219372695388030070407810218329587941810929834433849906406268519404918682084467827096949702372844114649325917066730984195024538206348494035876990762235339806834521300228747883532432921337026232029390844234574319415997998215533522180340943555176738930211297412186123629952476377360283339018831636502206521779605809804678802699434167864028381328785339101957974615012041258219081938077474875689988138149990309417902285689795795712764318340982264298133204116319208181844867546244629108902592722720710424497302295467994410674341567299602137786121082401508374976983337372251598077083272832075346857150905984070639697646058260139864101407072602763687230968056472607175272189404984568550590300618206267073560573351868319903332359039108297435594565899863351566394032818517934467794664207631827696767303907820585890290147940261646638527400821075044516303155155252181091032402301761567858146079052522757863878593680762427971999053323559196605127658557396959773533043978119687196414236056507837905664094039332123900638614234078604201345453035274568983526165627532854128841521134025750640554979143742341571105806373021508091417970311975314738128345903234957242829089116247848986202110426621233179562314651953382073682174831325672814439008461794847222651300808784709883548423821890151507655081027528482574619038145269324694337776409550570153014581428750552279631923175677247153944126045450929610940222351634088344009116781715523165225175541988739235938592398170589665030340985156115187527271909148083351976456555613962677346120622283657683347169889526774844307075547122908415541507093961949290964835586363830286065413434156299927614034671736965215721433335851018287345743179131069117737737764956627975373973647882657776584995753670377017417412910569460405169949873162325603059035816004823824999104219714921193152836156195331993490166259623460585996409075211639086248634134672404564106984542755075622559975266568731722854506708503673263954279672619073847113102562416275518640294433051388900138425506598818960044618291984233737486394434021966774619028238592989390337261873085375611037600378392357799215072193576801704767816676708852151356673910079339069613308707715456276664737747331808340654574660038035524844883826938101000196735380946242493839419042182261711969080655982485086053088980970217268787180160318135248248660442035933654759658180186560470851402476794376595986665244812274247224997785165741996491064540174889431483603937704477013137135879950750481011004157683366207611825317376952886534186139527265842163248079298677414695594238132611153553746166913838058645942790272397392613381452123295494090024301998749483975168561312228847658938441970719979092408684085596081226682574324989985092356138156165508124456523194510435135922084336339796198168734389364196598795418844360974298856686904303272850521755865631982330882162697300162605867906184584045161759303301058989288527814676482044090430386904755553372222832222909686756988273179462304161558015662978639466704825086430475031231464019944608346583098778096381772209012931517463185111406291965606770539532052333576358317454310130796468002126825851822042562963496910237381874619428308165862624940887126958508662089305179330670033057906502988408123600739507356454970765150925903131472433754731942615304726001382351397402941221996417195620203278464121995778044104818457535701336594834284133197477561247683055209536029136170922807077274301509839781753258675922647610414355205426133327445902132438024788839358930760008674679110240379020812604559905586372123171433052507855307021096832797913392655793524864354601643746903453665858824618639858638649799659220715804832906309334676474869357305350267910113344470355844227321276351450635384321110881312802191202366629813982592871096207968538472516384462829287495775977802382113012851147165443759915310083219679790479469657939899533233150747871365413647591632242482849270334255620650686878238044458741069706811094589323202724011319427002498775612790630278101738535561919107029617753657270844485989048154933414071025069931123204055789747829051440327388692759919708496485310574877787180019266410967771788254095444989162983834760204400756140704297096349757776979645519583341189575435088918345261800692712561163288203687225001210346507814979940909809299980527692747132553853431315457354542588111221792621284735990425675734955987950483071067123296912628293129486517521966450088978988434461539244282056638116879996093282029013810396617809476334519482194390714747434589180199001924294600623372690187826664661608936863857547466493412690627869222384413315399570746758604888587716427932701856784178367076892854231807982849481832681103003888092729110542958104820338985300081149246065022740061388554479215827629884017051047646935012067403794727162802003046185857377222865771296327082626471671122053116960246811791051878782203348884125856907008260695332475610269149414394320772391274401906940836150966831173578339312101871310230195596569825547591714815427478004849662296770848269162163799524545683383477764980129150389816164426546325533578532635496486317667151393239321740013545834256748171304698151711956052143851894444321310956153220434196496099298065601945290153311408365731183704187013804079040264651308921522568152509753282353299427054415765876418855071280122904150759553834179003454779115877496268826539614354593472658958336786024455341100098640534625902292584386655294484115147426952847333153998178468976984638237079424893375849616561757922974343556742285007357015179983221392482189418349102418012362806396820266878140034172134358566617417816573074259310678841227460363717948730429781201292748402057474521505574626314622802426594092864314775933789094187411642566669268329324499034927219740757393644787179503828808606662830292518255977089142116219187840899060926908370100799682268743241500229544548054562731868274885615949058553572732109275057338880858826891883404120961630736259366069556669858853081019937193020828863604851256674592700333131076954369924186064916679113374747224212092898198398800188618530521117581619933795319539308862965241951071040419316622105465453694717439533987902723469555853376891592413115099011269388340033278427625149648716590454702021022698868667239193352238056499989788664517392498608649974354626048248073001552686271958902316262671823334896555099486995880414864336816250543560406464740281449570248043512411818990446862966903435263795905110910924386998860271891894857437230379490993091653755385962310651216368336685953079205490401184588719394125992342775030631980483846497107197331907441532346028541972316089320125203077976797424197785814595390311971833864640994069808492536289041482339574460275573694090916675198749666210139804063712331696709528793720537372746465438548324269731820291136336906221900105839941657841416094738293926258674231547112275586851890451275512301886335631032859464805721763559650392980227735556313999207862562309174104353809946467311596226575922341394375712525441668255143184797311503908193212438812320735097108535228767202334404369199440138560100411504390842757646547139671664369119610039047080749760232591694329550095147356165490772057675602390971660195144011755742075761656215888880288658033248955388327388816708691416187677699862912306709972629497401716254911571692088455725202017722831755662520144469568394929256113740129402147140217301193460814522343621607645297217883334929110621159337958374475669196518462756454759107133110214679080473300839073560412704762384299247643980207095652359194019160453695430673596226134179154411024002322992451312915197830907452438712951692253072907605021662629534309256224876978922875902310187092269183840761001148479888754527186609356870998080738792798297794268408859153586833149175319569780741767745908689041612395135400820235333968066562553686022143079975018521282390906828913990848483758672128814995210457564782110566133643575531929303627236806234881134648726683029934732954787566995079012408737741778387709123961758233911309033529068379812579357970056372128320467567137439203368876048334368867938781793733011408137879703500363950964983186485255100741117443476735606382738799614523227032369394681288323540309218294021993882931706894957112673668638557898859018575084859367126579700121203063179608831238737606356749597002678326756822931665605336951473303778615979789186134732023335398707101586796035514384926110283852813280067993759806128173916510283681425133374829245413134357171467562220582539725323167073831349509843536277863254518389194971140712456647244518042395464771992937142059490279666837441466362250999069702248083599740831126958092636709250748232687924934140984643627718645403232019606659738561161610940512746985490881160055149671973529630495845878462291335837076186777332442839227772165301218050289655573460733425368609277131382275714155204588259218989476270250948175042708053725602598863732694193479762130032630855313619686201404443110943335007753815847883846726329041350681281173967343509088798708243601329586419286110183014955269119448029830042227198947287223302017252098211581884874646943668396789854961114100162593000615589536283103030756010745323300685451193798360332765404989806167326631451962132043910275963054105006204176172951638309738941891283289095487679084251540446020718646599686078426038985626870203156171101600227098111708404971449010252792748388149590521245627440676727938078484948017211552246363220889625425290464097159923215736480543430222313332598067274472926871356249818435374679525331198052539620447934423340609365052383347443905267097530649575619295868734063912815065600032416312816873129710816813362232709330015383502263207136659637135158977363915010569578597327158737785707920249244319484225502101201016063732487582456822100314835274134647219127759274920187669074117592650841428764764321411408231464760641562790614604735261742024373410103162547135796783515108748685827436134017698593913652208987918303705874360094741711363946159750289033218692075559820028861744807202141184612769107039479870448242457298235485409981873828841632287301490282845555978807318962261027845912983021272395962574958922079264854193583213580174530266591524121778767492014777068140710991431939004409640027836350764189603872143166213938851512092598352961605319503863228337297263516916369150564571202340588736632353939077621181461431753662521326224067698624623804294989491223875977270980008698855636197613116639329589083470417554711186229482204940863109279585503111607319409160160014048893580339578289309557765813419789823467019601025748275756966472995063030362832229157269730121513745293785088037778965246609473887266666889918916542924695015140597576720381302993467216626964311042644956966897000192525414776721150533783565575795795180586689205051940775749639728011835204521927345226239745030103511256128650679888993593364155126315084065984145665731420439210163785642451908718898651778936150580673970804536885543845370512621455494948945544442032991708617432123799787152566018902459637605148266703663687680247905426220317931112042050235259677760298213964873712987635343612554959701506194870883564006459611585150415316261270526961884840650250175929551332138485547713878547148808661027666882505769089190674208141288214312769803312076488682835971674497835046845041579610250056316024161810068672285707492913898636617343049545794048082945789857034511768250912830090081330104844790205559240544139520305235899358694812267515106659622132528737658335243944742716725211067321211466027243564209742067652092928697043704742192952528801988010609744234575958018979381791416506431673181889928307891455450777724260260447312840625959570200671260981269823498714209739071771037586302008458905942413632060452049924256842481833579067629266156448957021370929838171574448967198177463327841772094911179394337695740948492820221812267635961390784508091264554472100096806295336923398584701033603490736544497439365073133844473966183712267358351957569428765145728988045421982797027921260557904923983363272088626411710059554989036320790200714144242700356312145529980948714305483575074195052581955316470844611245502968540125743293547388528357282928219436960616637367179640993436454344346503833773038931103406931020096528813401946892280797604627964446503818104870390089881041530981757324100440756923062980060793857287730116438708455284249371967289491865541153889630959252050140325728819997480176033608536763030309647785848223080031709346712073504691324179992740852749238887104500170850265491313467072693414700255973573509739680699794521777179094872317504864591433380740171256902154268440700608695657392002555206993762094716524226927191399102844207513612384903901273488742569199060755341017648856812068291898354206626409739519611110971451322184770698457351524274659374952613077171335427942750062380061199399497218969203687977383238502531066040137206533699731372897576832028479672339424902479411215321025570603100341453623739292841895813446673021008601716753108550504239442534092923206873907004077825301113606547389410800672011088440893507556180873104126944733356379959830903755264371145400432758049371799271465722587973560772243198694149920150800243724878599747030409892020603167834313709158548154419820111135202820884548939179724915665570496158435671965300452197516359234489302328495330197946990164520917217504062242648388521901460780029612511313422613383866719276971344338504058763324647986170330017593200919066890039034259479459450797220816845166404686012580883514213938693475042190813366835968069413533249863533444580310663737382044932026551269035831452025285608394993086529119903705547297779639161778939688960746614918694451811884688122705216491329002634906888311208762914727873369207954485192969343967143056971337978732246933341787085885461620334889852337460560840666197366095777886619583498004009046217577773478554874359729769757628766551691211961166062825828858258817683228259799742909481560388152016681030779822884991821088312025177270236130111951455202386024093271483797586856659335702858658340669327797219718723730288045004267300492967268480515632382589200455964881191503051909317725803147198855000148037884572508359702994414774458358401969823940072779557175003948759210038098456157857411297409985079193161111259486796162932473791364522551097018529654915121063944163252374296773955367817216593840216447891487011767756966231880867437476316625085109536042727775740043087219096516474250324823727459177255154636202803919560286500273662184086798930029711258013924949413896209201497363652184717062120458602059030081935309485278891222898076559781232473252797326542994266661374582260378395884134520975636703043244129233013723199434079721497048475277370870588170861829355415044164005251399840013950617971284144983600995931103761687472459406518787548504999498420756579489503534939028798097856030157858813534209574679033521515928319520840507509290647017751067432663522698694079900476225843848414812128089135582381896949632756702628838593680639820802976421611784687098437352641604192742541500264441714529510459155681956933275392008793528769483736308632999297695948004651747772463469507995448387508389573473849761815239261140362024011264877295520309660557776473713370194338438113492993129650369159691654047709320570728261988291866205983007479819537976357522384249216284471068455970258479388453924038521755828412373066329812218561868610487524842073589403462366526488767135155095313891818593329680387939888506523973467432617279175436631007906997123900046398055180434371732076864098254367848446653713609082248829211067528465521451970152397787892858713028084629415246626766463903028213745187818022510527213072211782428192653973441755664529713689106815718914294180823265021429396453742833872124505595775604625426804758701617781663821102097723030154153522581171088051494071156943907485365165766072642319354106218129059120859250321073014673632749302847129145418899136976580574807346545501831053931593786067179052321126450412254582739909635023518854329608190033187023299033635962564037611079141726556205776876163664967042417075772932137114043129713220528962646044269644915101304684016112077113958901888278389118613554190194584548326060263628184625734209898997988379574992142665700586409525399807806116664232088137912720234533089298451531377869174637995149615622094675834343000756500994911642517439561134494346071835100507903671953265837017497208444541830787202149346834814336496090551421996206361109959873450271150867022365222982070801379148859787260598264610468607727724894223417518095942161480368948289830965649944125961056556620758767781122395658627992803193439894903099952021992846166241612583472530823160615462384989156976138703530952358105590099756106057209565077576442951863968136848088528568499031119170294812080387994003220579299074080501620920552039206493524043384025537003597636204369837325801537660672077742216847200347950497154124859393174997848585866928947293926617681730207584478405740458057835417476572947755108780924610334424678076703041835952360645822301073691401728422454918051266002935803762053519370217970694358497769235849577461735135258366500349197504309112717662208946046241362642446697534877504655615206108118908837165422403189519856267267823385316086878606198754503563133295957899099264012523498714108453074448326010338086279542256544075536452597463468397944328570950851003681155455843722022072453825475187304828512188557519351051749297368806577776516035607055340594682598217420473832716022203566920513701745078771667838071311624722035001932537109764799499126427269733896418727214338334335695411081000584377853816491039777124274275918179312846589831838644901223746610759555444200614313275451854788524195329714797093069521925815693969358738130502785342089625238512191713230434606354080040010927780434051221839259335880626520351477635243374053201495762424286844063814927354886584029747836117021114618359722305361425396640879480101098918945088361206535893749245767186504623450147067712577033374275259214624893784250388655382534714928562290319964275424273457798798474183880900756232352494661797746046192965004838649795086219913944257307927379127438742563320626102816283265156344097598373565733145989310402647289201350612064502624158868155263620414251830747205390730529871163242750595279233691670330510627814579842071191478566511352718125342542879705727839536529505523524456226386639127361247111153238047647074577383085689773105833052264468461962979313908907506983352798889213715446873378729798969004755230139967835335164265210800363140388095659213309106906837905988334568625425253465768274085024487393977554232382455822213816001246537930550005370890328923920730184530922847951098611461038674609736200456102602816827387700216446189120933427358062586113333374947770617138178848200276044544624250045434440124907072119801595708534116423605304318933180870432770913339624076591081059858188421222912475402005497299599746959616343699252684481528058779109886695727679773518634292584724313394051502480604250966530523421040083395368221957698558914624949672982547634537166493141748622226975686733651062658693447822498935479974669542850399897373219893337980214785622790164172038418069360738237259506603920763613333371556699690402896176581705452482884595927425017834815572110165653522875744397548695190005519306964054451318661410556124876713561594905422957344924731933786331123532211238899342962165827850862522082609359160610550228306313109341511175567469848644562981057441866065782508874094088181031666279249494247034302901419683178348597320102245610210075835243558454677156351334569883074319236836486491950464940395114752558260428417214766800030995190004820743510162790368234996709266264350719246699127473656312486717991845089093478549421595129117824579166118192218908798487524381624641519633055969759480087192533398353565872387020309931250412197963283458215798017523533651191032594125558563929128159322278851714891127236883342469939863895660870029627924735900842246745131911687728024729312702147201235324604328677175760036503900175526434156487537518110089381995227489385589364235028166104314397487085195072701179216275401841321973295071934918185934796720111221340079455674742015314483942559152657699810481792855303404892173719977406292803082111111364048860609107991951809048946762450049442408734295002686981553252279018459287458116474513660320536711214638695424779679200310527458717581804643193501205004294800208876939657439385345833502957418308653321258343166994747081440565591058425912853378255707998383663997957065879368204107708988447465979953627556980101592482154672661765619422282588901377396568244725902949147850708832164747039547577804845512347891506232283031450606301569734724222588132606683384072823103708047410827328035392114814696556703541817249493184901952955389159117219739243717912365845170193832171087759420492661697766154388520383525648559686489822281865745760892105963765822920374732245472288130430261037300016825129212255126906494633519630793941938172342100158798207293199898886180176902294640758496617091569734538343215281760427270203356081133052231397575821187508903727394857406704082968336283779133138516934587318111699263960673417220222989972429817514834900567826848790671534546565148126393948231626677472841084745240627020485455135987887081148713039473518113989128015217869732123716884806759835395140245636948264332279152511371566331905578976554865540433804479609394551431220767782081142690861412288439481374223250908124211767798437339750876826099716110395141644310035863463833848658252225636054713104401693596939816687676890017728205551859749119128013805541052192339395200489835505138559152963413299763013645868339983972040412917972520485684278763748784046185470180909835443120840375733706852623085562905434752906767535330821919525862531452559833732782982752687442490328324700743991267742454933658629881938172702074843716096938296030494413580103356963822208258146474507168875339499373191174220720898670168100794101709087624587053035361232241385440265188622093312390881479500107545129505595192024683453974686489263703509129604300875070550982653161801332166600633934628863439869584385881111842471118713658239109980112992350917223730929944719586761729732053303772128469371495247373901213031213902985654574134980694538068099310138758502142414775046376172509137983878556066883727571825019592365506463436903066337452122872458788151600980106170176265932258633268911531984052980709807063008907556463945117004853707117941710257202126830979522853658767609056035962761022369179213831505157995099412381044538666331694771274773906086200036579843323003542022330336850035560398333796435704066434162079150829409204433224718275183286461679880473889639969088655888395754782156991527410312777167019587231916711946385910621882095839426364825515244446972149658063872770811171897244923172719412856304540809035584302465905667783806527123789374642997084427746555851495630304625012152226713682537286768215196896687095388175904855503504058206878637734389551762049349772490190277626474483424077386711007372087602255739492274065081469207950732838119681231354370858693219292478671930104395801326832464111185728738844040130408038632647311670613401611505326357460588723904617621109922806281177510080156862589541486371993079942099297612702823563216945284416366369932463383688545666760611812183783104759411636832513781927002511426130275043251946131946615733081329423505790810561056177519741654977979163369868310757669124789244144071352717830221854250274252385710470222526501341593489899532803846480118501748638693685880789709688572939986725949677611942221521982823955372447563768929748616077421116832156512099852969274354151626129429610713399215795643503694492178919042045176744146373723990590280956096814582728899884989341964042268034499142858191408032967256649072466561938612159598713073917807860419365715743523317030573453750355601788244119416291463646262283877815224533515894720933339525711043788819209946804419927832488304812046806499139359776921737902867038151207287450954502010694648067168011039162976717263582394551717612656361804446140116054668529348519280101178012722791153265536277674995093774943679634689773768595999424562841574065196165505038860581958500198186763390017813673185596054427085548430358248116679029433662150578704914818587399570942355671646345905439325452712969549144424144188137726683040883090483109401731665761625320541571964758823879617139740006201014516413696994485836888054508329645823724793669488731850564191546400199332020935852464917568871315502821278891020391643672642532055660155665055885283873850741919081078985024470504200642867354139237324178848679253113528397798377690449935101598988865075435381164406036786860899517517263787394689708936380068989140958405134550624969977236560085420489213837174169019968033900881795365625732902194746849576712703339487162038455342363541442545098639266414937069330210339250959569599263146201328064943178141864754963109912052702735045430226911794371627327957391346788343908910921849960099154461367557921418770545367284655381089170514840593597809172884226591173735266644398395680481814019258570494268682751618703857002510699266391248424228563152174595062309238970175538448719930033017998432854807568317901118068643826640314355843409926181282804007296371959985723731468508837165531999790533156422138909958958855033899452791810723404667450329773427762372571645329566824508960117683451998790108788790623512525942523171879634019978048696681906641278953842395872723314556119084455792655824060272855656083552701836381102917426655715097447886241807174715867475464669011966520617506473300185867903276851693475945481704220105899878211179485662672167303600216334122112263306274682405198018773657700187484381874881772206717096372288657047283094923454561729824550502049844291060950300759809994895439460559918108497957034793765391334761194822730866426812476305171925821246058512057678059445935688461406541624378767896274115107917454658698117375788731490818713311964855723013973055373934017435219527734296758134748302106275039438931914973997340987077357786264570365112036891995445256264999688295112492974543113175874276482792944998884848168839571207452361096392839085590919070919955048832675582669633107938120619311039819340263642546923247382889389074289219543903780155594062288387924016021316553819628213564055636090835964833566493310937528654660044819647198737470877373865418120099245822997016075800100463763002079809409956021655062154562721947444403281618846748428196028521795077140951245136213262380952926268132261674895904461463634742762665765496406482426179225781316411334027784362067609503243463118614759123877303607610039091761922503060424858738654005229066125521861696781932215728949419154696377036835666425202126731507902072509495056613801621291904913450872666716045862573234623623901622699493334999611718279666135549274307162421751446660359017442740267258996810727762794243091304693408268287022436427094248512122080290557356530378949173770847083984914445477048442074387557438874477292974485613586742333418264078033340920865419577708886614657909271785923641875169780007907250566765599389123472090038972252377630526964857630846054163776550732588144061541880300741462612642706596221341926538025432327195163428058186016216686441892536397466224055722226972414199071153849649479514382559553839875091410200867218451104155191009296693025432458201050900968923602542303681968317280115058900220637472208781111418631954260792329658543258395477865866672601738291984416465496995381602850906928858616697407620580512213540567361506779302652311689540540149259737013730649081600405017433278822093717155674478294103825040129582864691921783693463288504042708506976710265103459457754339111817700328506274091315559542642175398269504198913191656697156801766578738052106047442924287221539280437205748756739242295780429412202123537487051890942554689458543213863022168928729595818877156824717753638122118506146896151404871237995873552024298191005961951226397264861515108302304570781087518334235594800846428680371700827931844235455470359503296887486781551662234253556556395088079720671003037702840544246568412290150539901212156553348995108956169688309945304927758815980746763480371831301539320785796899740160351600630605483026203682712738513526970626773666515620248658713723402207391197568193324955123066247047740074882017856491353326779379020140426486749585819299301442580247005601576840051401619683667879322603836244987136474893881886857439735600459353314112114493993062196865442848723005025257968586399408917241330743341002095133151811201933800382200006453580097063795707747433079278607346498279416486086123397536687915009456629398722395195599683687299816719332691897199651774452817532730305848633419586478199741723569713963299617481232092405118580999766354635068027659764554997983389532384037712821633884528424713480444993088049962192295638833037351090274503272999268804425340715145745431775288254025959255006579282129489136137321644519648404976806662346975930647116306803297056311275438397150794851404401325651460008649688129640771308525404470621372374206564919480914430823101501096612088121756811571528295390154843996441327874055136629295906737088489804653190255416025001531299369543758013938699816587940177626911302513089779131340707309737503350759780539298587545150090538173274659545842154252557092533597784683935280633574870078487326907400494738286649040155021844501611478346631559819669678490297517455359491544936485617082919751093085179159050941675313702094362789416297729856999877653055986435299778793730646487807110614474635802771992759428977652164056052184271997292194472254077422594448480717029013137488102249618463097371282138214343630237746179407772267971936344243402537359775912937676559512991448894831961931897775591361341487270310959818116493616918280255928505423207030707005912740793141017440246643285276354933122112305745500370764773324211373075827328606413113366590968216721945493945337756493411646385256311671084270943574762551485470292645288631647211471478501041674723318944997805609284948935896020995734121547335252940279718775404689564035642933504874955418413688850943988633349600177672813864272914188074675120226459285858731424805515567531410823186392649082980303696621852986095819354264883679595023948665924739960596969938698221553322378134979457381941459969876757974163562669984282667248403229486695865215994918345442048493397019796087663995679036212335850805469328228015931069018569333200201258291952688786686888687553784841866497816774921591273299351861673802764777826238490611115499259181395639569902887725564514772424656415437383368992439390945783498078401940386939698310372950313434418769182338488846477044542331308047104196661583988110049355053322346226403333069358345149146556872649759578613622411458463222073914094736505569383501748920060941028850600069570623952232323003291972624594665262723648066603437971361691437088722871520797019913418322636283369102936593003558139854693524645113093540444628942008156385895690831535727160154648293524665365407108299039116620527051286739831894725442508461316573815328024621452912844933941086380206257801110749874324865453988320465258711690309453798279204122128345423223355079710131527375929137113497778147449310655101841234190130848430929500687918327247811972576317694652196077836991572312421827869539707844482826109083379432957207482532310196321301875914611120797514064796748449072724843484302326754960770474623597526641600164117632661672522745879376237788289922768491162259449580463680524288119580825519087446059805775557808624679887565448921560682173754901218707227708088022491578844135390873096679890885000167114159433285484799652429545877247702984604607950780872786327939886385067027755550433123794100554393540435641203103562225417010878152575057205441071522016826848297224453948935981975848278255989385343772834545548659903201599546377645277421731154138823349439235170419524925668291713078196530499379447251541236771934012499499056112243157118738276110271757200743558856288432591362936409479351454683334927122000732981723975401305989437743649623768438482858709816844901296352722113169724204963374414718445657223495576661424520807835744492841273536145289900165304929488802314240963689187938930968443112194742494589380833793334422901402841568128943975115810354629696518874149584809837694054414321566825292520522845954812113756601914007224919495090836662217748619765614633220040219775336851703105881459520592269999481610762308184715944689945240549483752086210999121182282764998030043802695112350046493754737487858811329451785444126260645915746317189623945694987139963936426585706730751947645860600402487459944700667534288923995924830977382255486507369975870167143671607420488747078382983689208331819317440685646850925809424149933396956752662108634517830246091182654560820253234496543201037614707219292833966070764231103084451693401772723014690735796409669060616825418449532287051380093201648208059840587492349619480780266778668743095630809804850313510270634799968005831176262736541522796152154028290676143796415490960125116416630800137024508250313202460971319357625121593281091342520925941030975978452725482426298611450867284815516848269008670312885799090372534361730332305035274973619749958417806706519000271693229121204581792689807300968363952559814855108906438964720892302852190981602793336908021661162676161798991256580046887112995197474661613488268792261381447016125956866514697056440810528056075620381252916314331808216154288625160496086860467456579142489908280613507633756888761912842713830401088757525268594464432428164427514148712041424028841734667022251153933334893056647632483424043438276992619500871878255456963318565752554511837854409200610399756424104389607665337113307458420370162171997991614787694081384350595046193513415413128179597300717971218701547869258338434830365555351652640467600019763959258846589356931238128886698972765071410788630575548259865102360113093284227030080631757597774017626828041277819862597588525906135669209650116493128669859399704908953843269523212494997829868795505633555343171564245469537317147841551903925263724007809006562156459730752291092781597048644860517785882339277384415469771668194009128257696269802422217232943910796974338649236036488649567307988180288331898801394371883360331499105703576900390570806056349059446917162683292945112545424299118748066968588754052158110294609312545293225147821444799180009072190998286393376024458277378756020329078445260768482509277334339123410732825466200859505602233078065768631856575520598279773407929184191581170573065499997361466940203908423313860766593131346325157456681420502786613844695580602099330897444082724582486948696587778751697421175972158267718978417878391959158508775188549433626559278208802070189091994085283311018652787330572323635675219755023372974136831693865845958534559082952369874481251353829587225335568653128270107180937561789537270729164846503648622361743836920270466634863041038310166475180131584245028230779827132506433118887757461863671465203154517196202252117707199015065772866473071240847418495067313884577461610495988071834207566161523917125669817392310337936554103963936725644861471332648732086030933346147320230675864458344721945066075482474312470673217375875305017505584052497982570317569302823429301726185455915217742147673046079083771609591819466520248499614271856303244509235462938929247350753593924168859135031282155026693670029760075365035920964310150099742248948998898859855571376546642283032117939276145071963908236667736165464088582354124159044246306293120612463055048815960124000270460374912913199531199306171065979625931506603997181870124149962036632009700837627210048956840667700062692523534108261832704842578246435837754889531492417312796608941821624820064329159914268866008158994350451035775810130263954443866659867063492669289074736021981101429956955964984314018281361843612660205026467193769087248363930680495513637199240253953578449614018202282388581326563986086100893724902446733525958476499816918117863111389167956190441125171252184010952643513008698100948582203488379485605829212013742593620696565391083600778692149365596709498661646000682571590816595226934709643750615645626162366597728446832250625482008052512741103374633881779593913707029800662504705102958942830153432932700423094252684793039677184001047397728570853181851902487150683133525543597139703155041509560640165163130719938565257109349867249217040707434551654330068086852782521631257263696995422051313330326446652456122269516814472690705536728689662848747403946807161739492684125707109238407503388591393033504255405176302735021598076864788608884919613259499345057047661592097807503915226813293380135229938588059793328695466927368830898057596007527318648490898493856863560755869727617656302580663971156846834829573854464884372275496680636308272033645451860351844513318412378853907414732406478731038613418713886218087289557508411429945363870130786990670075286087576863773556139488841058569404841053125832969954750028356909196884326599594593488577102713389915646551692435249824851156942501794155162706927495616976731035196473541927715397391150191286567986541143586722101104867705602650551853558140111818324602729177353945496318366155226738235530017406308867999607135262088087391935360152000123094404560006073729403983111179707059909451621801261000334852511117425099642221293654104197076536483839453584177817877282977478897712955391154613710412754137579786220800417478694162221136929546358349674742057794180295170601904217264495028150396757529206657271024674989956496132330959795778090801705436231527533514901580218714191232039815126463905729680418064977343248893457535269437793828880584993202531033583848839449498847733852490045183686466380462735047041528554427411804212505461778685042924678189673167026263803028950843716241135396975924174598456513856448631144019143047738574374041404733198586209766329641081454015636405550897797551628441179338858020009917055169298225748710864741918522503184952808645663449845447444168214718402068174245137215129730728540268527331340233873439924474064496647833455854833825478646103603919408134694490023017427893825526767612871636469440766374442083397834846209836986653498882553963195335910685543460024987656147871792369703264888828401641614045462188766520056003809291747046028535490126322654870485850417254723673643685579882868510475029908936481141683947167384580661469255003310712545711136020189821383923157359370315558089052438938239104533568103370381055224070204567393258183463959372172682130055704089507808588083890152465867932312331426730077021468179271301125574271379860832600821852861475423394299333728388052956542336299000775500038687248255819957079047535344133203641269240396168542706981469935866015105294631804036141827602247984466295876912165829734789582784419586751575211531550175865124206007403375483438032289700209913213397212660754538094282957090584879323023647696979614873513015757210852258813091893116842836727965163053805734330250981480771940696439020750683530080475272811694066242112859040472674896746086423077646520883065886265333322789917845168728738391679753201164047665088638184896311956232420080963810670344257397208161221608747527588536510712639565940200131905217291840022519064332681952056055799124398212569296378278679890246035094278523705395222338308158124112834272729590126847228898896539502851777581428459105437687920500474897082171489356943777306915318240817136040751209014503921696477854984014413586326136870932873473944468239743386268421173581561762711452534672787162298214883551247559224466737318163082522630421456757957816400967567228615759894539424104280223740848902920374475787382673890062824305831752484546185363596478341967703186607093770929580958370617139156488330050880753312002226632864447628002505514440270539391886651182449701432285092163896631523239960841298329253023216916478170889391105792435575841517184536940910949980225023821075093761452116996926160005011062630355387364173287176588043138967592402599672217146168795524622389319037018082364841563642637170490970920404005420322245494489868312768996403237558372295483064826233646723670628780324876753627144631130654332471168698942748038759800255045982665375281342193503823808959046500585807586796712691164491855811941349507219266452479297545473037217163949624054021583798548501644027512083289656291694259049699535503923157424585103846034296664129115221620000937511077790741437631775113710150744583101822558502941229119314586769008280353955684870740144714717172843323623957773667798804526819557846294607200247985571320172374359325893867337452889931663514072661231672591131210376894016879812047117068494086693658730478665131110936685714691730185137704289080889970470302332621665626143739135699841711846935938142481255823419443514263132821104245026354951414560348163006167290669256396171296222619963530837495835582018881466764100177631345365983037046449581658364643110200558961430446040865269088501610249756736283371882411648655796335935176254247396796778086337556462862577758881193587774306601804892361458455844506548268808373390623702794426677971535002301687225003091658773670974609916214520178737585678514294247746857969270127490521283142152807648620634766811364776641608960938216943843652305722887248591086790022823995887967049901468915530415895212583157138642643808243375790309980418262477458462138544072454454103741435736922656344627020437214059320659701624900365507657503340209480764518723778016043465212450926870361922099257713470153197660871557857347861631347074850248948814094428878588104339259549657372169321366388836174688401495076373728386591687157675030820975512806097090415287090029582253052794637569754420827162597403439379434565185265265953213433277817702693927569693505461264973997865028932486177988336331790366448359977188813055300073189328920450860205189309845870839466385491903607151951310897293392933335368292171641149914581006978136949003440535485187941415626248409427570499704205544526050021277947406190770199679360070901949203021421367431933504149506906016246870606823129753143649081150966774118823420327805038479449521793316660165380936858724103715862573806835651319241658174014233509708672365482274053146088161311538889254448720172912594030536216002984375396625110172321288190703331822059636790774244350783508177727381549039473594722325222455918448130513424676719391736467673899655890565363350706575838579342013896695227649924993608104504684724883376631524447047886438531263613494637234232371705859204494130260797942130470637944625311949392951226996225042941800087185636164319061869771031949731028798988150672194950851710648172141593460772319070211639351853590512836674838255623113808297520994379445083308182431946973794874437028626581835847741435010821319092359565188425461366779020553535234337118758010738368323056104858240306754161273329754886759770344369839263110094168461669453856121286693080100984977849179755544491744900071486154357691514719342934449536431806611007564319920976771326446562882017355338244616187973935075649175786177251293737577744437800347548050079067468763833299086969232412674359618489269122358318681718096375251988742959316542664954703946412903125500147471262269496258581408175174394712905097434079482316317171340648130872358454356149954186667107651200785853493312708037840322147833847822943656444122634868526340895212148069676396255174399759915609936912096421578365280758489618286548346289768484360043532641492253533951985354559921634953961389883526780603763538787272721358936294541577261165138119780937307753296897582771523404102253199793137521786759319894884335487993839956772575201045063815356811664417582629005560580869973768246190522188179170764036535370507888292145410067736972353614920379712966089829750469748851217324197599833432131972056692363677390064660136445524540677075004476799241298241347588729879128687287039734476158212628257956437938492906801892025820445220944502114839256767717558760771749774405287367311517614284278366909501821023703045609048431923358104845891967061032559987793875148126512214262434267054528189565268209187719255394009371923355584583828012602139591740800577847574371797379844872520271027225956210603308783397596451999326878608456699394614898725454901799399980919450433108673484636920913904915989687894155166201639961931935665316181658392506415273708509320010101673027321220032174934341162056241660762304446874488546422221287934532381546724775442670532677152423711091224639329634113013116109862249718375431692206445588243059235434013229443751077461912579002501430193286988748847364650521580456340106845190766634275838960377644586629063758070961010520563791472053963932059035886163844871179719883149805335262891891933756697373669352355459129830559295049068492061640559981988187093615952211225271710658976581824206450420052161477686091661407937562652369925496973544624873649920441602875306091649753466357644751137901598470798298113227004658166502287147405826465981199976548045105035699936203833026163494031750898723790365821870550099185744738049128923584596072870679292816233841456231598859141802957027836658329706361939791432444958706043816862350257684023847081252218220167970741703957290293606651050818542367077191880863034913783415369073136208486002899196487339446618044129143537251890398003751934473524277669302910716783565518415833563367463924963000830164037608056085709947539612823111467955867109946125012494056490017392254989258011143048406848626741772867635653823982643659049285430588481682965516676705504609238086104705726245372625053610599312480874538274467867701159060120449679681904281041704772656563523774478463780445087663546207249815397952648790493873268066123242686853883972067595122789970162508122698522490723804203885362871875632324761767795864956142921298759385176726230502452719599471781050437348402058421266518032541083725288838593509339884719437094668141310821797689566558401618381683701729773232016671453870655695941259147915102663140612301210236851541646939753878455955588162914993571438520851760783035629375879167598391325674459917174815948256647215017911070316454765598645564692298638218630269443381136673456249490198186825971448649883992196571281839736659138458429255495722794730721604230930645533865724175217889021498864455584523843967381564148583065316035217286075256390586469522514045892695296650886119072979098547876373955239972146460537537215222734397992992435779437761916019799188387094747362154795547034204935740842027863191034728664343042776277304204957160073815783710469661781837336239902572620510607614754065066263144346586184569485088411964330018042878918256645572917289343804770378421255005398355895872983184666538558586715575578387077043886342478526487647215096412308245425801311118165362230999096977315724522544858133464543349542670979944406630212893774958308039605280636667500549586213260591859002431568606355822182896924120631159740115989571353920416144292805459192536218764693972181131912817406243973272165981942636393619550187690835607845031956152977023121381247364522707310598719794097965724951870817829089086555036270187166554854312488578258385127784198974612531155004896313513001047421377205712186215954414267584776328214070922263987294891194586547970745692266732431127254175465876730919436565875512899968193088579730899293586363311033937361920858633082198526046596017714638615501215681632841972727725305020694345065301086857048285449050889997815680106565181557444147898886494997310148945261340246754025698565197314531965073097691884871183246177527577838719929530744185293649967212273487933995291024944571443906599308900370402071320405318486511498625799969316300234501687709022832524062372750556932603949986157361233750054323016121795423182897461098582376727990479364344253591749462361001739259155330169061254587807690489894241279482947841220934880327076324446093759679376891738783495802340345327545041133271461936167393693969398229925774100742710905974298155046776547392043328583918774915887928088482604736136222330424877794678355523058723322543704879929653601092270285537494699670143472311867657181585433716729289686668671923791899799260669914455862846110181537546529482129729996588906364488500354833888298518204635077018426028628971397527293181733439106346375160703380785251251768420952324347067673277078258822368364049708614187031098370588579190494540398098626548366636094909721672842588385754812043934208260007071872650279900365191796762675650472017878171170017590465410227500529095911106272347708855761057418482907681730336972403679009364709191603027427489497602044634429996569433613298043420241278383360696717109441101459021968160631605140891469052844459316028050277832384173433758321329099409977106319149741665570994767995123569088792312307616866652972307636098092095780702286346917733698697248206944014400004831535284969320855223227180543619637632335228756246353368549248634538642908606599010074065522758344792747550471283546076239722685188559844787968726161953153026400769985758051408417468802414551474610671778684523203980232839853051817397144649031011788930797711263128332750362043962438838051114378133129312214882986550994355239602951750216022736313688331114639975833641988503173331260788240958483873981951658019304634678583066043569820360512396114033271399474048940971749383511204861731637890253033685709347833722090426390907216908860469264017054870522581636471392483892206273587036707675138499334148351035032211949280097641988585810328106208170035837052485628648553536332929502173067634255370281144275282546191838190808666294219320429933359254457922048374477483463917762540394243859259278575467482136160644430430735754461325934415177861023386925093405551762610471760713069404039792872695522011386411030305504426021067656683008981167805118946461322212123725434502605846459272551030895099535767814450761452091164659474717336688084505129072006832186725765530415918579456281629706414386255375701880304073806676315487366542931075556439512278206719538109634842267952565228705986460474029818455416741892058404522174268185514604997985659793325588354715049842604814720628760311489764255426707155731027010506698447708822647515274422343064962459487452369790532540654672392233428384157447037027297139472231024779333366009855181190601020228013776177138800602986690739150064985396077749398586899905312456137416909163243808944981022163506565621447164064138913353844107454338762183249820924680874268762491349907744217065454191944384834934160648881660354040391748314305786363160590674877644544950814991160656238074300474620038373845497879406868919298511385479960144959499993303462144015449999827641365805352243852012378547143843583369177433980481624232233126613771744121310510697362060466823017550328418291668593809333893391456833056995683750090739526160276330976998548956937181786829344550988927054500523538819705822062119124529993348611188985938703476591013851074208782509472131528112416250116768406646615993034113117457559827622463644015821072369594700579964037468513188815019591181711711196708404337536540347035290336567068184980378161348175132898207177417307116140953764514781982461015138902999256969837936133118635540005770100371542445645488507792488412705174153679641408294532651612896685982227751630348781058473554340547108499000845284999960380143405992038489320486349445449866972695518648063822267958892795099174186844769936961360696171989797900785892111209910937565918236762664077580255043749858445053087263866183198301124814583390042398963618908568519020547604647233612961830512841677475202196471521181321673328920706997897805290628800379802281237515423592976803399752154005285038370562774002021918755041874291983536959231008512388392206489848482187015394672942987144602793658353484650049865652094846918239972589544195840611228261436534296822571499450724731088419556150807819175878737767310465484383270676432989004265696764448050452488887542046946828431196486158948034975930184141952523504230249931204842509379603992348553906614936206658111958781867327534234380127721119289428338161611740063578068064045515865622870680136662967454246250635343707463394464307710763382084380056673722159223983770502337967017586853613130914588418160201986557544046825726904584831614761751346147260076169017707507058859142401614094537405421106193769783326846583584299196357615885578018044663385124718874698915114046343653328426914120985718059193384947631622690631683727022296889121544050568062039731101850431546622621675858193973229496690083712407830103874775232541091998889817696758353643876481924390707364273841799097976215492461024345907825827936512401457248063573825054165598183868294787325083850527099811230517346253576700483022939431883127175764512781258555931446575367845185483247850002397373658872783272864762135106042687625199322227249875196898592955051032951455681904309905874381881969509756305222911150168864161163738938102452154959026677092966913318307297302170656667745957770153170775482446233281637493369951511227860302331600114456730050504490822608867817867087251478249640724085042150749791370421243323820067825513336269513336558024787951316404569437630430507728646805853255049775945780495542415472694367038374069725629038113343891220562394921269261372794855800428573005487686986892650129442536459217463811563657313889542138883737049646530445606737257006505627811702016877215624043822675958741878243858222777722828837012852645316762896232118841386862834776946638862681691480574893840449930025273731829782625752352049468979306081758228070412450034017311817264367092251808518795927282893623912414159081009604459902869449008630077131888424306169381683215674847767486992771368078119067085296795742108787754011498988010168334209456444529132201207181734749563885154776074979206690793648116046390075303256117115574363884727134910710479852966628703004472090322397062016480531399397793502620163453869587737848929791150647491101763950954518542935305352092929443272596478250288655325114633370969600529904385683041585479498333377354699707751525833763490653352880934707971465106660538741002613114544086512349118335427342865275245789278233515029076753670610010085659739477405981899909942768088997216914657981271137138408713324902760487582349891099093344053528797040482794864334230847751013705927958231111652012823043317893154763040774246152875498561962530844720629932503278254006838890899390082584078226134691382886963991221039591261392651211495745421389640058899301430410706962070154590199974156455757524593132622143531606394951946626641921177374177534010581475225147763280695249975432769077444804478236820257147957188227387901354722703499535375819890269973658686337959032221167761913552996008524502438394009128643838049578824328784754538671958808991662336082281325695222495144377563252328012743593805827680086735089594898231488663238051096184831400533326266635747545145925199679575214234739646665434445472273856450518817828553380937858736430711527526287136582008307707777121237399121668965272233772354808659177649869951523495792418715889614252885165377816704772946096673614705118147972079826426196824088552534652854629040137868934408508620913752151110100895926882355474166875417921146983755153404676578035048792454946634470647089234765905143904112872655298961734978045953129900746435741522999178920677616268015339744583757661071056304695236715039809661098720313003696503143605718409792576158499962984806500374812591947674651636557115936486254023518924127361339843050876940993582750222922010596735909499539621135200146130464526922193199420021441790745335651834416418018474664977001757988818390188111819308080128592235999364249755486166426938919635236806534492026722415573905843193138313597061772673571081568923094962992624950182605584447813774100525649524406471619063271899754532794359284630115033183477884531406688821457759363098191908389134090278675993180358295645290763572732636193672755838072018152449817326662304834302681713394938609029979107241744741487183192740919820359648386204729988309229746648126500215827369508266808736022085546208855389854019168207341082045223448584267156269127600429627564465667472878590801151128777499286471458943689521553719496041402377163900537573880862595628939984854379970180311597560168650836482984631006264269109339817232583516910236716716516135544647780816669174461310935020575690654687683013095677945255275228076420701854520501676562897921735977782297230488504301483742972569585847684327252597707090082719868994206386936981422241381250161125312215877014292877300927411521558771909293640533747344937091080670683823598696362339280816022167483882333434375087570204545315918209705292279806564559037052043368464104858532017707914797364817248475541552351013172553029518705403001346620466395497398649802162054150576120824869643367140171665047302365172592461467570996707774018506924587566709612694718438205687217926916826577842476771493831843539362634605117573947588713389124894325613445708088976876637626846509160243359473971505716178056363657115685538161099075112180754322397107598477387350505013197368275763197801326347371227851365720699906503165353750711590344851062199269534379230324060638727382804304823121695428229653496464333450508059353040786087555534117404492350477679847299456319329657412232900963771691973783632421604401830544062400668418556679456770259747554383215464838138073632474782111264389413634475902808430097025790098372032708187963226118298564503995847292490957102519976915267321487595696206570027608686775329188738790515870326800214106774834125076600657628886626575788809572359799017103919716607605262171377710790497385079442056161758743703306214652635429235131450310612226719744049494178853977780908146833011032729013001203351827781615523197880862351713869990550834132310430870063716214241101210604463816986963963556924908861277844136215711336150637970252769742267494762790231573829097015888993637999308510781496232170740352464429418367000350059240915263015071535321156350687282262268264484344143059432844042447815979289055349865390883345539812514719639489910938097971526121967340450306278904415874712636858871237418640875320010705022369143602387540108343371237743103274530855582715219331150987349645929163139097137823614312686186228253256718442635614116315589493550578357763976840202915598272225621805432733567843830276516742564010281730246160809188532854643457155326515701550174092649834239741761724703840454383780197568723554843692921073771697409192265098232323747551616688048902902138352268704207861938242810505748320213701359895349204693651849396750910944298403161220897094349256378363862334097756903802470827521128567287006651287554889668287413548523955673113944775747277624003924239578843121057358034649543475341724101270595323156593241075209644829966100277115222282268776253776540843261336742050015387562100672231572690997920641124859885723321215997278723491098975924445723584512286089235543220453359279571698597985167930895154002560699046582012775275794743047142779759702120758861394285550728518809464831084169156011956791703529652562094059016572961306740998633034102533636113264241546089338168725598623391102681147978641249676665026561784090054626824899380968661819031032859810055295261500249951597175689470359459187169608027469791702419512199115036240825722557958110774135082507151766030690166647562561502110143045826842752051681209856719575279565046517760831137217181178646512920555492225801545468989363546810170373395832269921444199262573461558904392749308635104306896657959624266816151059009071005735841143262594396815505312460392539453353161185654225032030720659771565644610372240025596822324498855446081003135676306121379127472744536080304172366804310151588958308272679292739275915903756397756909795452737004070197986866516171888199877917621153037884614830309179787721224139430412807341227780348341937274256073001248947835638010947404544376520351864301551247889824017859933457575289541397289539528971824777312530848502867807994196395985265432530918648236480654801605234641565612259636081023320939360763496033856413006306708122412731221695915754734102451536746653120558713920610293584252906977050089130119557532376380231712062715267697419199752030846938354526514604474976312303596210494908589484860936926922221663575198574906555450570507889871191089068919234755199902919724805963202092733664009964558221677865328211730076062862283762307584200131796911709884751832197421649454218673044382169630798314982085969619905926915325869979625431789224081372003551561186567951881991923857155371690661425031558578975306595074021109542782023337167284246389014193485485530674947748430955115697084488367264251705638373092351830106221283967531695530775710670240076802920738851772855840720392215215769799657513954814721360745613970358686360867981563916529551989050394335864665817021322747345272686131225676603753547427275668113029289886581447888086384561943690709543298296216723914853704822451975507301333307259350806033247905912209833428524173959146595706612689513420880088839982698053858081598987523226886861012557056439887291964715926783645397000362321790504800536553813260007008631537288883900573803477594396333377497946704040694728824890247632549271931241489345647924083500881672643933229252377715627884059686790871697033475731646733070880868102575068856622236968001804929148396826366502570442301125292796220756626196961365937564903946162930900717415082321895930612363220461569979357303038589716978100247813802168181737373394234834894837334004969005434767019438694239995301871037519250142256302594682864734509127962013136268922827409971208902712832130437365145694186077714342777929773318700868323433195648751138660597736380417149786626090161931683282285701648932652413120206901294718357971388283618528910395100117833963495737095149344840408147724129209696172135975365332838740556384979344778355844617391115202456471914319134621759613628996272385515045785217974212797118033178661655983045220470756847555413240269981672547447366624780881600565335037145313645854039242736115378698646465971763416073757677399706628573061621418301158181813371701448836404002527394600092767250550649538700126142745365125759365663845892908180206545788457334395146163500021294259607718067999999518178639795080959592151139757538940485623303238535024402813133327364832090703221710141047799764224604844655553099289001300656809267240428490015044918918245492071015399937777559130212213582133046515335575660986291869046327893758427616763254708439577010304439623473968270060053631382515462808071536114180230429722355365577398485895736150925972612503525621512553142244866446541611785290932050980646413596976477492603294240029163751324949676560408127747954275569413233333122645624450496946745495571796599867836326921638241442143075673993956031766767392867492285399931447185394089038207830956147345128636401905041835228689627392594069273218422800213839131285628321263297415086442228044478603493734332129115832824647476591641899242272480938675498731629578155415788672151392962918104590678110616673791233707468805615540514512829767281643239431492545032582200910863570087365569506962368872713891249345398099042693120702695351782238828111497112306579526297900971278095188048984221369630400158724935780454874673846969876757978484927349284450174667884374121436605580558009151980754177084195064910633511486086301091451420210568450353851259561055697739862854924768315913241967718017587095095349876346634812851206901777918323192489575276852711374486537203156332303917555975940394342536938680047473130401963163904323565670793335664028622402998116179092065225051033368859451927647574119012089207475773455374685445141441184201813081145427091588819632621977647035245683290249086135189573988731663550744533112166028006938528363295264616307938614881520597348165778074871687571607652239275196540997273141750535748229791568931526695001337423053076433174438158546585879145377194631601408680054363792437035725567922716541651865305932779737414045044005070457575333081514044749520211862421192252063694183133989722640698370391550022598119889544884082995165876179208481681044475983602704009821377603567834123842457209222092981431323005965587477842793468839363227220909216107155384366065748620772960428799516870015714507262786150539417382244974103069192172590571575774270110758221105877021253945963967656737633145118757159944891815909167585769260035737972394845223626228288201163907864088443814016040670221028158521513905685457299793803726461485009859885486994609137874495706863984921836052704202882229943337045428115549130677938779606446146874924644428766762927192091476354131828587150262363338165781517119806642467295196046524459514986630135026174901141449823007779771589139295204549193197343970938309382181350017449902506443172655643595194320436939890219204570769550891417462058062122202747761518869106935606103813203087282581768312684627997471843851667417782328373443862357013527715046664781890693402344510749130776187537397595506880766154247358007889512885422494680041628848806169602848252828127321852730810363318669304505175030364051918288472076879324062234169256417914778101267951542449977122739076936894043254363176330072502767444289090304310628928624759006485878808052849998343976212071529121797805108669558621039879305796258233296135710932678948287424895943347985021039156468876841754298986001112870634164150517424917583506878537701512340475660298769589311206661242228307391895653592367529808373230988232572109881558564607588833572365926133393779527600119605619716193462494202635895553692483214127713620214239293501509390348019702832511499173128269033391533848999071644293583348523254674009700523138392886711110792892863211904181877102632746183295160621041081120649908550039860905077405847293886587364656515015091546107969379199227404477510311479956070183889970872947988677356040523001601271040123553126673947797540797972123541482731188843070733178817400323026493834470362990160700610148192665307513141195970175814962117024960303597059002273882555477499202046090995090748090922458407823302287942997104886236351224997363145087456358486832184021941112827347017568928692805781712320050054192898401147414498333339283205481109468524762509981660378561068644026243027407000702352850440668570494306597462900291296854936024325163716252041253750270176165929285927394332031973532642667775710876253543045563338391379089186643744264259399099513313348563634763341099174357423972348176474677344488870636568768122119558159703689694393438057431041478453035830867223861995547982976135924770151628841103038048972105592803902391759167953518772596784894779923231824184194616448962621276774398101744176335246952780546041916365042042380305087204887669162510014048077485989052863785388720232656730648731907561812709789624016555178046331294065946149354088498240384387594910050167045577496166183852303551701833287211405283104876837212551351477021853108703921674031855549648560268767531680393200522728294887413923742731791065673158155959746995446237029191182384163399929052290639934119232460405847356783501591327996753547254763179637790062582704771812722994227844147320102558674423254940564977370939833308951648421896332050427151749000206712789849088043826106771488527176680245824593880865279837394178848957770770038006304558089467236406112066764634726045171114907255151486122579434216751958999044253367337517184076169092624647456781535151267121669066206059736938157557942935900110611667598018363997629053176405860338554266625855083144388961132357436435002314602615536511242313735312963239297047999203867604738424143724394335326125631475337152379409948317981546816934039116158800080340996373702353461967214810608567368233821916968006732316798824307735240166394948837495671961516978050334935087187640304894014231378647035263948656873105568477169397634308042854609000728280163722217325523193841834092682624312624506103596332347002771680048803868834489000449822322595368613011384558363684767945965665409230729164756205470359565398062159193955249381025952425920719399103997505267416793224865830634021232979132939064881966898118679051074918644694256114484322639149625108973913156382016922255184384326902707652598703623217576299481889146072892305303608576293631646481178367351094666466828761881468818441505618291514109148575908166351437897941172751009878407202951066497316232746712778800460269528786990058415295747235135625528713956636869846838635151453818107549232003461647156232846829806477307959598171849070296069020619401060171343269031797790760154906820355626129299917421698905484603322193749716363298557617411156585500844275091171729665493826878783572996724855396866193907787233864738919823108186033870630827866902479072003079071799996016146047429749990567469172196097300488471570954398632571468098574194502355274327928773036212799457137387086572875762869494498977693132549379311748694206918710377327912270803789100063548559336865199134905910069941662562061470521146974974211247420140717050311323032492537607644488789537401932797846851123571015963527504989167521730125759879467136444013423590025735350041228628216698891795279219004048955431483400112450483339047642002937293825063293298081190203938499467389968333593448438468750464443092236737157134755086360057696722999795935257680257470471967161360077993268416910853366389959428688673501691931355300599998760720623959383076286561798511493980305674691398597758577786593336124200808131086835746362262686971870215434620809215713820258221949657372912322768133571387696330256487669803560364910356250911818946412702967221598869121923155832618333076197933864648418230219407877612597393001004721028806769883426766040309020982591906290691979326396429855586995421863972657859441139305929724627149738344596257316239747287143187380810965910880569025480790811404521783871929785681187736187532885573956317899861415735760142356553494015126115538926429425627397652868491251666192137562038866656777939730877422973046792693630939157014279743336352057370270158528506332407093787080424170626388359175426895196622133865663812497838468067766482858051167947973300660213539874211513071783632546660650738189281465116096083023180923357962692147689985125547805548027715187164758450280604489339125640656093092985187604286852036422821956247347772457540724151916517758449878176159576850507195655768176968180278491693115559666759910006777709502323298795382647914954545455283999966120507450086956818521425391437911435561568014239313239102992599354672294363356545699702152671199605042470442990452198446446092655706046582387266723901048030695928976659944298760666103081076914488786204732794934575489377508856123773027255162830483995786435439350385883353474763844352292259133443020417878049609092462564234748657265754333474257083426641236065211120578877050999768867818143871056520855893932374729542557609478017973054999130987882442935572221912779115637434281937129015141155553371132968760522862848495609970178787009567960151118760293261081686142411128735672437271941784309571988794580998213120666087494614560819192065507105848041198676875605326892761262010762699473057267562705106490175761801887377104696549947488576492486777855962514348804988743231651025346442831906954091952697983553682452542004804943513064039572503566562693435115421774017507721543011182985783068719007189889075624517506866810643567250386856012199341577874878474304682984816487605692970940812996208121237070538192853382623192206435960074587269892745382228007736086451930721584685040401916817402552609527296785446247953231231226916172428465915113846284936139279076916031247444935782592013586627191826647090654831727136962679922667260538952618638955963698306006995714317756422689153316167817067741215914504743641686386606666479624273314199929282563349985439474186195133419576994445117123048657632841004075521173503297614485047662551925807484559368513536221565031154410722156452396639546338977919087017116835204589450878629499038636655784231167127858259971535645839820824250989254896571509929543266564315955444404853543277718585625773438301434429710306493464999938159713352089919882387670080353646981810580784642497936597295987086947830532734134851045252108959065903087368780302531164520955546207231267633738291039160133520822410607121652809638937424997734908216328081910338527655703394398697540540488838590524247709341959376569762557934995787841153462084936244277830431375578148802158779489755894293995626597637768279656401735457287700319265045237179167081986417820618724893892459234717395028904603715765881073576151535462079816531620396327028664569356011043648648180588194094010114392902844689518976908154108254082500215738639820559284211625297968427847038342570435395412523820632487963930666229098870676485363200237852738004867582827223364812420063825542394648483771311880277456045459120396429015762352927830630919448584249266657356691727312963361878314467243927189402217819836761766653091916522972364094951434360724930375307079012637314032886766898589577897406732845396745165069499824937567583719838690284702629686404852888298282968102495224554665174933499431174853246318929082484582410615345844543026001725803486858951139417634581497276313751229631014458145445453921411617498464640558904518012416672658336159018428747373939584651582574476749693883036428431062355096274390489498776046356271524088695261693195494723232764153302861763030882572159738784558259361707048628889147643972878624184581431654449308766973982105434209586681713671683381050344550438343375787352557442535988749187743440362591716926304681854562488334592531138756508857722570363765483812656923920707905803039777890754130261188528464872132949376586309616034152403274261540052491435404714490980943526184611767206517054252061750088093226886330713433979866566458901459158991777988552566843520623315184848288724108651016837319708236999769142060722926388457349785927554511024210468989587497845070733795193864566922036341966756667081929696122859186829577609209262542855347054665643414059055085792008903023404133614271347323555463265041089961266625986998194582607901420885776157714820871629701038110046862390570047715181217384440943943301127788820115868121727820512168474221395510098567080240962639923354488751324747343739151227875162804726495985671330909282919001776812763866526455052691445287836789840085284125228214212370937038100466534161527119520778131490730868292316861540566606089915064550015131133202479904384736922376786565101148264186408795550650501126084430332802766266466465439969465954827239422348893739729782692595638803703464054508578587986801740176917707867837206473676029006088724440682250826122264625806605529579959335181213013434336298687177726886797145097492345440198753890705600100702709468559485322136994485064341066461762001309944609464963205043052941684079860813901602868940306734999219006966692588294935553406124261985011787538126704660632815535984931826167183880140962139152549906934655575473920264459385756727438542015955676541254849763900199039556967682751372762851720064943975301532518936691066831982774226237354288092117737136533149255274670882456666279315220494153958078931344003611047569340075955378068876266190908298012013187108854833610189448963702036573442845052497602289359948631290639354410199412729845097689009489503704781233085676041321471449488058728833885322380722698335787548391044430277498156816435012052642364025098708365683392226491453667971231640957595421424372663195976098434198468539411130870127864197765418154824447532980053366209542803658996528695716975241628057279023777567974138982812116339624240911601995719776970710480467613764500321852368096532003967346712562108583392962230473485724633798480252149619107612265993068719528552344162967904100091256115788714668834105564600403081240140009687455242390694509150793948774387609118901222663229142410623779564074842054888178752874661100618581464904978885770569620064488387371050989142454316647234968442327086639099901123119378301108693312247956367662378108677757287529802226774468393328756631566067767825143392338652647316934007783865289824833139022892937495751701223782186931165271099505762236220324766465747418104358033189775645100824551977290533060633637195525580016054805144477595335603714420496259454717588409885063962093034263478648391420368589695808936516490901373470616660553820944068504913695026500816731972181653685787989526127857062741520183437330760685661406334117483143787662548886101855898715690960564381517597976099267618184895754385225883446264629348848679286545914641494571623432863415964050276095851831140948536872815715843363546444482932151447211125614914133243813396293798904412794969912617009081067649265099532548448477437864110539061402439428123983743601260426319196475775937791004361185684364194400897929878101731606517247985203208993648935920193916424411551225257718965890818250494273148495347794684939404941707261059694848861506852877831841321396834886313224141057527089494545146931572664340983566175602919235109262220985381531239161367503389414314586447208281466308265327823180092667299809991678681635734640851381819731808383453127449368054277882794163535563253311034878438629692606568153430744883874187360770057257554881430697200555833478793109387751161836437900805775103566648544135479806773872864418944053116546632521987201959735912329870798860417227575342669823878027997586387416435021825327655519701793815515695578532939755717638325064871266634594731070201090435919792343363406603888859402878678260506307376357970335070537938063482014323045855424186559096024305353229197074750708397867880592354269474911800684223616906486574809188857287930534302261936650430853226737225549737682275511400373972101681201174954472430104379342355236253124092250436660300979379995640209194673649365282538603552867767270009173796415024769695303842702562016031693277528206273248172579464130985171506446602369801832007940829516651602219846521303572370739446130245612060893553097477708604090343238167444787936919148223437150889548684689721437504133255039771650479161598155298317081911969688781752085301863479115892379744292069903568186867701552039938836643954837582597971669761652187145650936964383854408021937860426699051384758150479971700173387811534280992720129349393425997192192180427549018130815996249082224617581499059357952992292386724677681772476904874619192392501455905241680695275027803115977051448577998541942011040451465713512363347252948509044640343744371879228580750505072355046298913802349844910379376654303474524178775060707756296575222681483527477927364364321887246312948291155132990144762204951367871255407619659167787199121070776710543584152570803893391026434769021303183960485244390153776812305064845662047001590834037671707195161391830864055228713098801476062881692689790605848873807801470668768441141747882254628986378497269679805143944012531337381374350092764471844582758404504463097145283601602316561270884235229101719020199259112742399935926827319198839847813152965815587176846427119514863210118061994302350438054245321185066548189092779207717860531345879805061603291685173983360671969237161046907223572075588087592892285411773642418069741687193598364619827893944601284356078792012934505041874931589875653973663381020292896493631392215349731570958829473122846484492333686724572021233373664677151199636319355386807582116811659839219577218522298882402749983881455906478745481329986286093933323959114182002344385653252348634864915991971888971041471377556732922197802679159687313009593892864831847454003695801137253049430750480056559677441619946013807964237563408637573334403913664647607759782308501794862694823766973926633291352157995232391042371021302518684654647498218171226883627638421847957891386563050311914918100795990157223223214219899672693784794784473126443918207949685781595035795335588676625863099454584033588586094817939156419161444192295989796967574574723141055827966910590809881179729532204904664789881637452510842957661835776586322326534803620255358283497118894841856385753574922318996373901796283098610890325063325359258265902317176872148758243735397921575600122604158083217887322271243871884817230436201784968602990286025814924410295215245151558453226274058986855681056438598712865877127730426076054762985994725804332444670841717607796033699308211847792535763532189021134894431968139307319165401892279943731769584352371349736792846302733144267641476478502493186515722818864129945354194369593034387630868948645538523668957820105104994280927722486845575631130557440045732131757263723791671142222683407455348378398927266633516621961709841705055680998323332981231419489717823814501687588414421241903907108130119207696608373313324900575446270832144133776212726747918685708232385999278767949790707710663823393693429737383246471820142967024558069161212687106075966114964692799911734406458613809381438152856965907370069039841111697821261188560893272610745122934045229423107379342984765748924092570092475213992271668355680493345163552951985586328583981818809780210255857907273833405406249153224351158914785768949225765471931802520188892009115490318677994512069581641504855820139184091923589600317857138269224613575301594319485241458183149638468319596157664899251728186937678058345708039185711179467788590066816714124683148755531177334993080236156072066858594124535187377985510246643656215989671725574086025637466337168547002776678519125523804563420910107855059808641309216150543355899136883225508382980040925190789915654671814473660995331730825909598581745245483981873633795386924970891944020220773504922229787973330988345895337238707004799933199320108130315575699874262342576307587729067366843413254023268571440022141315246098268327954500275889430046552640287799479444936339101092343233051281390682633776232816291791752925174981552768709171708378984532937672815006109546736085504958099843749809095215191970309253935550833777362034319381651174257580573214669514458789327987256314174127829881178507520591688301882473465476086484229367723413539522231944595589028347849452808070763486240395297089957771137167164725239479221967894620754743379612462940649410178788555064069532185988195828287225869577972841813925349784040733765316998105446658330458552434721481229238639500544467740201424974610949658775198824577774280195772810366180039911497291010019149831000331909595004186896146363000565353399548689928564439083004984695904384537527839426715102592498004313803677518413984148699820815159954385805506973575254120089727012734581333987202287484788050221948955392124054854789008229888188523739993772773085643374335179286454366933270056928372651017750500503283664847667903340263239970771927865964195186921766902260540341953897650346962320566515260892764914589912130985736015930820021745906660879230078675101450008284684338326050113565818029816855863860651757806582617919973160520859462533417678938929886267040529846197678108211611597120586287816625415412448637364895349569849830189889531028000290067770730300622090860598237200969829137321039958658902718520478582662445153250360794139784651089024863880437604358945180975883519431033570961305888054665643539453856112046753643651321480314071881566089160380885463711248970980183711155929235994995570876896431339739569588845664739842328191363225346108113677922929401562005649146379460062545486229336714627538273885028115887280591630699339825417263785989152175746264398121069267039182467459539183329249715626273903705906302048288273071518394228131474675585249142249816305972053944912493751647816528859644652381853519042666372626970699857098017704051762483655906601840996218144785060547086698850864963819972877226476112280001849156896750023580459010291821477507537035087247740990775651969290506871046470674919860308422453685372292605491484556549725316699251540754310026921739202735986763672161932729325033232270710165864654246695167736394135284923278287229043521380870215038465308192581697723785912367120250509329349541003079932729226778761785021094287245126846809087244740616922683689577981544103342520214763128042030330366215252780248108443848674199164331777087860585068107078226177092319185274462287440356238150486839106026925896028449258907072029012185710565411106841069864095883344003861476895062662683708342590773231063906424181442781739619145362955637032512360934006954748787062564509827125576862833407114004507675922149765164674089018759975808510332456817457430152225159119104382189521170934946652268782511959530454396087727639938815375177093328696299259941704743450816989788133529334503850102732740567251071675950709433011274798757405324231800267580292137624107048366845526967494697302440865592218691598567809289157502352391747046999288797050137016681783624763393237780769797979197189349781584166633878215695562668863177495866967374197790757679087515299537592013366783235578593102940916074092194874088956931592390585639383955423884336332010140836666543794782852008032601574842948953039420334416429273190350520976100724283017164448057656004874118506783920291443229063367938446553991527181479493417047692680861999945470055931495417557835043175807525086009523308118706859555968074561305282142784764895177286395427096217196213465463944647888359844853151801273949496470185575919634666571213141154468795511432369755949344184115607038096221936726542862652866354591178159143711600828634930633557035861991006033091450898318728574113700367593756164196961431710011554462531117046607002593663290115238427565082153143254031888995811600493154516630455551188977770165183413316126356731708227310902909752099771844616845328747654484816954012293922400736712783984042937215546187747721127222134014320826454002579226267070128041211034595188715965504308588439710507812420002036825964486116773147664939321207805647915521096220634292368334619111125913469945786234485076496988766969180560717595869680186341777380053581094457984737235007024814170685057395450132988599277641303067103521634006990363805965319636220582438557347558243495763120278803908777624478703408299293497948063402258348186967816785672780633478187168061719611361725921491887548025469936599776579345974796599174897606899601426920176471207671288598508970656388541785639731137630812132022667151837422773610230392335116657368256677647773564303780504820471544831078056400315946736056162693044484055825123583591528523306571172509980212849213530953353036060753067994907890733040870053875865463436235600602160944747893474615558483669384966983275299059635572696390789330791360218702575537608686022802043129430178087870031713245953307111212993938278079832563400182038983426536758361734473450433337200512934625669905698082974630916027260329159783699708375154913836713318214055620579611472524240290256916130674781932245527408053072301828987664027002676382863183367400791021555464503129662564774289026971128100203704511342323866710370594237633078837917576298919725904571697095216689273741286842012215313011105717691323900956976358762316620666287764129396725274207326018451357833818409040790914116626532416165784519202045435957663927961079872909747918574717227475648303880649119823838151335750394565439187326866924087391931425634751748905173324650279535049542277854464798603861874638944387786191638830629792277220320429083848738626765277691968660803128121250847322551757579456148780013277838563216178917772740560309368155532415921569784361191845725462367605390869991551538706567222877717066967569117740036699646240281143876806627707484381875311230230572234267391839471085869976853844570053048778830628635623246350025112568677297993122503940749032165912098502187512889178091094987751896905511721679597126353903660884567673311073532047363982905993768888182103283201054597096531498697934051698524652679238121749424720977208437870714666679306416280496995083785425111592406806544320815082823619306548914559347930339262283136472181887325797675330431261558993192766268742488992499363871892946699025577611541812748668543258973233657255066764493503486896000567386548130139246546953595680886862794221614853632374043592548957254780448337444667878874996619832501884465085261417304411318974083729163027379070473381946807762278508388564401727077896891480103393745883199274351844085098295626902462438370115224808912592143794581904048430167854524875777502857190767928182033213866424972388403045247690419803904513399102696571732728359735274665289885766335421570406439101536630946496419345097860907532706036098081321508598685152425831976875630108254989406246903831771553661511163265427267701698426403160690827964871875296691397711354881021989784341836972658600354190322135905003623542065945856305270118508441407236518506755413839068294125891440139780603550316465471952339975734713674059135036282882336996151359498093152403286922133599472547728563059441200562771558421315943267530749237340452422174087808865172126341157490659247329607600613225779633686368437819071777170112513124191933503942008464605947128521483529995289671811693892481009582285504569658930554332329577353492839088182685161897233913315592759071582098879739880748356644812550375225402759319547625973664438658755980693608386797782828681418488537291520812083684583263007654555533315875787482059396883696796100977732043545668898692015391526389975942677103619812775383229002964740785273832341969750511556916020399341407156621328459114188867665928193799796000797164955093508776850927481976339763349845818262425260601356484923685677184026188437495421708393608109869240927363485800520044147246900197217800133884384399081497288398526603073667725500340389616329458454191951066240273837995176658509853471205153395133951965059630325320915073978084766377988036695734328183129597309801515433651205243259045148106754272874981254628188141403522949436893266541566380457034525790764713140477729178265678743985511680721088579228569290057188651064093015493956224745256439062875258755543009277027563037434994931079488958696739615855829686552723921998701165808600199346654579544167021037759559350559110067861588299799595153440912812958314901345376552671197195059854041736449121576708392783392938372513444234964385373450985345788796780881481821822684566159129113799223436653411121345492320705618009938619255837406613186079896223270430353390790449605864775130570540135677417778234670352329752476428052237724599263011163709932184473346294719713172195528676433662102863100509221160353458850680772239878275765855224905395012794394939278063690289440188906533057042227545013466898681394883238508277536178044749775132810853159442928237707385019167855017273743615294361878988582355331047091602852981977408552362218688315611151078901052159088314519665719797895400919126392045705215256854413082371904528846998337395148508267013489751110938892481506958195024945587157535947378423110532301164718008342810777436285087603493824171274931553612570337928402290014837185111833987878182779423031504525322860161927259724125561820577554310821379236281564366762786605793557096320669054191639997580885080325102184848794662957552819219771928587345078896200443043480468023573197176983915894222548700757716606799195784489552519385394472576341237682624385234682360786321344268400648988124477389395355453050697848760988315548484369504403090398556392154111802078937763585924318029035507175411724820625427445878800808920255916929827126153598089366545514170974016472360021069150804968528525372691743629442854748746338374047230564958178813862065328125831073038052231982939510612358462413386862777631635942150498543413795778994909006183945650841060252621106054423524304508173672769253300915926429398826304502226455995363513373536393584524691577840275896606022304793218602362611117180533934471177978748066196648995424241462622935632956392576743964180266365783307870456835245700666623976175234654352801701744036419405847286253786935893710491730183113693182685045160537196559848246124635345375015519072698754940024457265619643217826782952496134146936113706712694061014805334222369245562837950718400197020889278781209124608894985059682162441534751582443503971242777963037193341165503081436062116148672159637919101099274494250693664437731677896164005748959537918993406058746831406492288732169290114234448094253050639664649439166856115499269187870805691546395115628713523333621240464271472193192357292455256278994878861761500649193463824453359199875991052665048715031333550152208822806193933992436860165561546421582796369286558807394640495513359953587775252208213022338834136409866584219611965744481428379664218793903742209781775756568360362397111767010043640116671359204207542385687000603558311745794269268950062251591761712070248015066583225013972270569073826646134436770408408580022599748965204881092225923149216259379220748162948213469505310814655139145375084979937101244244027470209343215459262149655476846883002763107030621994309030065899878220231066361209058207193021927139301332400917828922092266068163390142725961678215268871118624277684363751613088800882628058469731659283884866109047879731116524826267188871133454574832841502374016953259209806541165619192619406400630298516216371537003427166805069838822553790984176077642661290781300188398644425935950785368215312379490249069632795121745354511045744379883188899852438907828625907448356118780356433086954374439000006861438451381593377409183641013769245124863503482568836192687547382549723015547787487197700530700683478646316648197671138568707537659910066598478757273200647174820671672633801524151827747157200629117460682313106037939701003645026797350024049259908475573786956370006294085951879104542542101346146081467729784215336378917914554774558532607677468514289169957161100020223490595925485637076505667527439975298383557671983640693937503801545183783654948430029072152312574062361845748491840304189729618318846379887611146294359223846053214200325191526881572919541585111194646480045742938295773223883845527628198915729412505623990585184204691577545899883170002774259115836173058443418496000940600352965420772924667974819637071297863615375833371311461467302355206482465460154994782281269888306218549348409012723141100160303730641948448337513738756165051784029580114138171701932531050005592763605385861851620906848845594411258726005646135222458665284000506646840325028048877793094045609566377917083514565191392758672030804431643216733973408539525129659427887625981096845979483455260739322594436671900789827409838677282848957574763027535471258732105190179882391385272955698377237055131702575289297493494723553840332856535813035836467497432709053761982901477166870876041034003153732330919848611188317316858518429313630829593642096349480187157503534311053057289827589221094874692821940612731213944949258051915222472601400267225916825301887423430550610476003250891220128257795366962467220594544543772848323738966166271433579428107299256452111020901174822788253791336319152067771390181515201798959168795329371629706999658339734433085679445831336402020328900971297030572103760528711265246331456438722033041724852967557003066527922198856278175079170634413233112789610649514428721678921246295934137524452303551967912377176101477203171735514651124349324601717127987810219965668959431758212845959912879272824341338039736636898581659344197017473320533083427196330016345460250153729808091825426716955765041383105988234182849636559044058839208121143784956485840042750027736098176091059931439653328346017376378155130566585150594385261571176296447375083959213653683444369099262976589662901750922977315109939650203415386363034537880332589747388395484785473784024339648215152348398523428968289005797514699211238860492045301470587137254416068489001646123998689275307659989699870338344177390381929812426244741044870053463852368003788366508706154439576105909357369233079565048772435176121981763926183243557202920058703863642334338819029225986494873831460529977137594905503944264008497055640723352924523627735031029909569215785317489862380217881432119738980120452852605062497561571791821613799838669575087807689505655603205997717799233583775177082331284875944833229121985041951132624443259612175157910553774229141033474190926896778054872118445029087882474948986698643036355700667016521335973999786623830201600158787718661098097771764092204560888345280894502002640354666213239254037171567386501905001623289943727447932219254914937621240020527857511290700742382177230023206192450635556583143816988951620636033808036609630713075653588561213026014944573496413022653612257700887010303547210277899693908255276635243393823437254634477864860039276623315448046399010879736497935609207963333681698170839986585861264537383760465520942069683930288554286893156061154642485911256584413318435661282515615834121915558674458179992767356740729664939527711474946744650645064142067545868630048689921208545408181472401245531718678497727226984214994944831491698272245867268045577917153908119367436744294691658055679467296441145864569447837600576857894103017718830526735321101703783720007936739649024990662183023664989681977961251538257650630408486932390720319028995391366015858905624705081651356953267961254054425142406362656350781378278827959311041991534457945376777047406061462830866769922346606124459946742926013614529543158283731456017373464302239278382152139144924871450719722824457972049862084998015033709237443071754227669639676547377939213912166572204230805148034796565944689459283409162383996095301214262959777131182363039248954572854258335369240430464251432703953467417345557854705758281522300578420456471767706664595038587083059805354271735054703299598943808150941186973315309471227639582804919473366943028900042762377816159941596377403160766348018227086598896868321409384844912181983070450295040303411533140077628679439689422830207702380763533294050543204154472276413106493137591572357738300084495644737841237113748394016668230774182976240729794766562746836381942328128208845909499718205631611992391210095759006279831858666043683469490883728004508638664378065390437375195549533165309613105062235798546407236252188800092181451341499252893329850004900241187547827863477395398245086580360237809786834077222765600755565280590092771611108008296557904420959855289387182603522508674854036515050718463827065471862359265859401208854031971876630618278540783241024979934951886084503529424730890484856901289219370173645141716441216194609555784160767170223318363522741988521603905524516648292597628460050060263665434394662439810508489353978131259853239302656459860416746980245382462083667804789254182035640960522984756969274312553447649068071192016739812510927353998140283470293081025320099191563787894728856347428724696291593036886514709329839749408676125868792513110950815398282040224963798532050536432505481484884924116850137701766221109006313547269739446080216633204150334641354841233810389809457888105094007900073846165266471443730550283975392456642643358421808382459861074023129611198219771049361603527708313771278051746102522784082684797577317213723379498291881299747471609291795915739618224382187514648927210616248478569248532146426756624543991528031981562280124917533614851060759111708919187642342002562926104518080085133419106732348581236956336074656762913558857270152939922953269882545767617960546563489249137434096329586184962726479753762085770537816014188854468546366968725908657373020531480927057544968150373563473949350539787066443331446242083167778448940404940309766567888119483717842181305231740013621368349779665037744325542030213181994293259054950617074867425173507495284479185809765325849447625246902809846435373552207606187844016872024590366510156983971401019355908746631160451767714874348994101780244546544882594690084924216459618938543678795127597653365465840101491324426246006419266461283908524662852506506239115766459354012672737117954785417673217131976879869886681361179695157931009982768365106692045787044408143745536578874181833475418670700356628383129927073839091606615141237088604399497717626337681707806289277564935523733174991171358115191856139351734704929912198252353349457325381371775006367747155780045633162606511660747467387207828025404173769632138445717717632049040727897356028914431189334477982032181524807155536343956886344802247363092063418346091948004381392793748244434398556468831301703194679581216686283388602306496669441372796774244130046336089323169713342819610386603357218294775816847249860852017624047315357069862589886603826902223953812453756422495277603345470803085778845042943438384808717875069827339508815518136827289859284180654499134752705449290318150302072205223870513183817684181945067938983607668283847079058405299234918928964103859138261402266028181626915248915049718838929669413789072047051416746593715287204768770868217762279132049112241274382465809230481944061461813431806182533853803190998030389741409384536148884650355652529445572044765052741948939118047258593292042634397994462521371073480434384055351222728575183606076676256484122434883921294191173932698817666327915650517701723252328740553252962175069809043183886440591918794968340638171672570193768782541991862262694168401006413239887613992014868724568684184192859504618821509960934531484864509385973809657820308555516034460861481599793175798917681551634278255851887413160864097944253604933507659314057789696350098180116314916486786986350067377931502289916866390415371241636661864604811717530005848861637689763822529826145834439486891646887208400481458776304554790181204672500586753365835332452571837486266439548669834497150300744733921417554428980578532006042586115141243144552561635930250980744967864943381412163696661553795312550758630331141112908484099829409592675878032145364965504601500017825097742242407329729224032045393297889073090159720309163216410316936394732111534069022641509361851641793169025744664495064082741745585839222284674001453832655872058578105086701084718071537637005807845161700305111431899533601108453022105200914948668069138353540506535326945839141928875159354893951060705458393592380361832060915393086002316722097655491631635167841931709951022984879121582015085163247996376539812774045340581446480354713202905459202231855265682075758147281338461691965552950972463766035471894801522830563994465929439624249813868455554128324017609550437361244402309705042014760354105284750497288627518032607874340657595614211400049911031389385591994089467124925519031591062818001030350762936661020640452199456621923422882410221033562346402221511133301701361365072555642559552814618064051002376009168406845070119526116454248214410850316342559604159536615741408105909193344205918167790527963747337156747279053731567499998313698466129268950069875521704469425446940159829731991073302121497974650016413904309320852889832501046672919274256986393326895444477587340391375544910567150298014341485422852230352727337481192256871798523950412177921022998819354923153884518591320572695540898539737141429608908572312596136420481557406348174511864477289316286790921971182076658906068184797651730486355687551286354789288615051448429992779673581122531628969589461772596354313790161599004178367968825362551973793259485242842339501855301184878627124709618047048516706301346994633551089748986045203731206176313744697444076679757641519392238374651226132114036213713063594950925321254734968227686095158000862461057560253909116488859901505436767053360375197803509441021410001628918333584500637239267192496974744481920972064051217984635987666031081943673617335916624778899451118725896660081665669862868385977354015019296475128110028597047382380098636677211407362066272645259520153633286588030312168543246196592240222673485053360820124652462078727646322767550690214848390973262813417602071718703831639325726730401372243242508384112386778337202831290345582952714391097656822845650034255016157285099208681049782955426449106451494177629067232502644340627749738480903743519367939927463350433633857092168881401136039643917459644023783589524841714562300087012639937247536454733547879830407391591582698064653100073624065186626534171372520191794657785504483382870614477621653958735493499901334951551066322126507971126798220663520263412318701345512514008279754078966110763579930393754885554720403075621795732582363928273745524192693739478787236641304806335485965077205763299488357479060982684529807386439519600787398002389443108531337576586906626638461387947085944497592127090195215277585160673436654751285844355115639824131359348457053641378391794547548811959597431536977531058108135499320263306399880522042666436195857106967115821238906004415235468242488904542854154230046683621944355637589038271311464168575119413746605028138592850191365205719692494701463264256666799382274723722769806214819551035903258360770124339536794994928968982519518409301336785458985987765678630023258333293925085635211096977087829687638573987208480192203144126548090149149592718665823108802578071906180478129031363022120707037917939329804077665399621462439136005806070207530326102989691659249045048752162454625146008706154941509990822039533234419283463055193476137764422029923409397241548814986959566222354954071642812464898241141675839630983828192031577396543581636423457377346807875955858771841594212418275213078006777915124693492906488123131603837375258657786253920969548995217543968103163840411840360306958232788439337892050753802483658600282077759746180518081792763244941879607735128337451381215641092186511936779550391094149559287626751253620602571050294068182565001331576191091907841848620787145392064231636433932993463890392882195648312450570598135886501461524137843093351409324348992717425430638650684764646622612158526927351939917149093411410686729200392175469299358243577277431546112436715384839188207844609251066365876806972977576820991089734695159685125100793957961935890040063658923614752936966048510552853355330362326159945956216327126206576988671864801748605604425706279804982908606225472546321093074825192042334612569447658073235554478399965356831860270885138037267511323145895907300566730886458657336316032270477638151002224426572945614800106102636709051384110583276375390996027107998657702632105335877689410866279981777994217926897312351911674412749240034832825415316027665294222345879901968601830041580049634724131537568317503798486335214768708747281745426172192953051670379399360371469533421950166418167049525068179525167528290789850018745087573681476711806459107999572787992859590759235010909837764774423078539012156092414925549604088088201404075051360962645043648497297284933303145451994263859952020679852165947897346114954842042961311491915229629577399102928281505639090799273103489934526759754738200591887964812876131765194944205059147421865572451455755329259494756503288568976258391324020373878862489971891875715432707953910319766167284720706883286828340387011647127095893408354051441215707915208242908738426279767469207673524483006324807605223017890692165443245468471863678404856998620741335667269038700584072019449759560347443498307558759910146885108330430589724805538211841017899084430047831794281423305272385030188144896146814734057945225560058928864891026422630505705156002085376543055182613594228554322635012896404865661377256144518978337000497513055311034546495441072061422379615036303491587002640302861787832591873491871095317458472876509541358959860136377504369774412315631726232038109894793333624275956789391096866894897653061961337857902283764024362577095772178380307196705791517358802279449120792874476521386919815510887243917486317238910137475764037317656416793887110089778837227476570791859587012249386579451455124893848101523142493284322100861362383086952179203031321714430670696260351761325853801063067079847696041820152570104165781926442387980711495103237704638127664406028685445665895170276263141678003482098437631410527301330882179058809741922830116896705236114793182779379937469088609295772052667755745210468950211947709717200072039205783705436980500707434430089143468655320859304712965784173881508134951990433578039241267310660682662614575150229365054738429295663368188374805150040425919697566458636949068852746741818411955732047443805220854290191496914909556298275614956903622936368106453055040722998630360792961807908132435122091062398682038312023048741995299391535939846892123090984369485508022083645318932708671235452282285045431486658118228008073932054793486117891687159388291496711356239751457944436905645909752337803041973089033941453996074033987969121335836084943745337315660877083468969510801232586142131668920651273700164338232350607939355246235294636648229038730206030149106807575482701072548544059771933273193721647871425766323508202715242236223691638763139229857201107580413200611079441780781319860699169717341245759132282509379968736257488248714863965876254099283087746703914404130728068869189386492364758458254025605477447687950331888951745635827842191890964330042743352864881857585813686170919109116785098306916867796234653603011067452142939496676700990755817177708074473732225863592154083293486873656242129777615321684032521322702428102466588400815584380183931844904704366827974050885548476385299969992786559802082972427589765179408696268996900606113469016273348036886953949199242147734978959774726707524416874578756737739019864639806068474827673842665752367846472504721031353457034122857822307397088211758099125934871717496292158849163015854690088977545795157865541220668678575308379876973819615121828859457334625800698764418111447411621259323382691017836760360293725391446821132195151398228418826452282232440908664218040460367380230842527771781487238871275243771534299191711360549820117294616785754783756955133336110622748937404342867401325384626265630055228029576256767889464033677348165965737989428080695600075458819633169575135662560927238545021342141912060273915948837917979949138574523572889203317355889462302685855665114560656491761946985734775566266676652469406906443366460588974357571191905024507536988930459135948697762288188783633069163879112743980280739101517872943240353656316654063750206732186624268532747946490274173379680442669771682704453754668632538884703153949859381680373580123394070069263936753806019898759599539411707255213455057644367237433310803124066961456281250899919109302178471003809426399349205428495786024655443994250059255379765637943181286307019647316581082680917069597718070719533537870652901508510187338422566900076810086145841206046241778077754301297859244460513013372780561459834415049842317357859702072745828770879222165340650902670174788180310850228715383723214064090390425899850294885100570835582898080458559430760131953917784175973350556006559411431719040180476353388115763590821147897242665709442503873370926511067551595709153222126942850944796067694361415670922756411328666370968699540302260521646154207870772349396557365370907645410035114447175843259944793921982135254069096991628929118615223737753833208206438127954812355600356458957423005991841910894967322402722165407290264268683892290062299606326863932746870356132219491445881470235059283417499738533382736626333417592113201827815010397331096965704167166614082450343788387516599793935614821019696366919825801929311033379436789027928139569608625091732082755840062761667265335814397920896330429249806604492682929059394107660265985222965166552353994068578656294083550328887922693774479689856902035071839820965127210049531971756902815452567022224266795929480243673177844331860054006014429507381367583119376433514484539669794704717288420576315892678585422761417600921946982654598676784138870052300773578638171786248500658727112969139461437142183324819568210819791570195803670127135563475471729118310969319748248879601352148586135288072561342961804122021556420362704192873428652485501114754108902532663755500847839772093099108655552133288293390220311690746271207200618989754214861223115214671333876963731917112753088894504134869500382177049533121162198392796927276539689032232198887749126803888916483932471660750226294009581037871663634543321894614200498398675221774922967506681997805972548869026370207981918612387127797756480635869411405101319087255185817107821530773580000357879778439604187921782997113358387430086599590875086153030652468251075427937433646670906899346880981843906153831250822881063367313365129911657516596909038665943830294766704143465841218820930784618695527395549316291349887115728614617467683692065486128473239229161370894915484409332103121458630791038080706144223899215140581047340452207752328682414568950848634510887102650908701176649629124332762140170955929146134494981049249882152334475199161123217037614703439215688640391808604741606353719042325534554325811439032071624755839736270595939129913165372373874919835167744121426378209218957682199134843447315198495162721688764015073424465576231866916940101858417083141563275085207069868821606062313077547452650247650571510657272937335176379760565826742278691915928238319858016518803907058426277508241657308157117313336940052655131036464032369238069521890995355162743201404760478711207229163384052477579627989922949157494540383681212693210337343859066272162480414120100556297415434226689261666402669979960212965865710098202917801528702973161975382120483531682417301409510857966125847317191894078493017246476933696844029963777011411506995184920208054767576728670765781293309896151521412964315927090989660204303822170032465783499404519250547383100658993647213158081349370131023668787198192569234301589911694450884614972929253102756862212130018150175506500447569216335648286310003112115848217320451692695517131795550587015936265363749140564183872877909307342129785060755481890793667889589057599678975527113946707379084271924301258081602758862276264831400425472157907025116527739233374890599327826184033882868230426188100074752456926713535190455434175744244367475148450078007291248560881754869577586404704131125064264671189211888520154589528950553259715812092026621150974380221416857945078310608718767774658494647070197291989245381386879713176818575698775467867252827089803928716938245380402287181865510575595007376051405357567953955748753056484670677335437476470968397210714085515166557748339749367160793879638469317050101457238895195473116931080215853491448644530339390832692292407771329698464391991323102432325984935753824041466757869154074085586626358196086056502046123523786935567468549476685273710308120960134998859067070217012436700401325190540024322820577458097279057539633872779794676012715657109622318480097216936127190582859915265723797960996707099044237286513691857766618996323825934280974615136218178358804556175046701559989442290485121583911811444733260571821858709039307364719502455027383467021099793862664312661298583736612840513694525059580544952249990826576977950410377272860532435253603243471636622142914554201786040045282176810392418948266005393432295316714911619756655826468816884139145602525853229844077414053404655724484778470655898263702903941836642386527413921814015612755371605502875326937445623496219325886051243625472940838285121731717276082119099279530694772534479353408112537045269508220542573327162742779935939281426153752828883940534939344063608937764782203898431363589415675780312824481366193329179802963247261134992119598312351842164957959241417965824335286352850224455379721036265783668344927341856489652987344772364342836083649302683531269089975038580535771006195153916102641883686630759043811989356695616708065178792465054944440153613028636031454204845754066822010656388543938211295740359824504790312845899861446283550259478274505710685396594776289908331168193783721336713979886764623809201505584849791160369012633380768569885124753091947230266388054459208683324839984684089703182759943004592373858795312604444403385937501954324422460620881363426003337481645267044083391983669053836987496955795577857663181423349232825027462337398265585757278186518323734929550747865092356474144065548238133374679098658416160595728761105284581201395504197238909660965638608552494417430754975517577666037209401316963825005272681127182138754494875680313981431718470238371295478773902649252185352876198745291946327869018616626383856499492432436325417983541493254416991454140769532195942165751703586061167187978340285706142654047815430258023784918447532725067205972010877626895109603342689281843629292060484130778399668997665784125359525669430502728576944012830205850886898947115911491333887770421922340813501480206168807569921734522249949472054065288753193149846774463843178379031530978583482185382096726944564692738488869985032571722076944680494726988436136509180082675285560417820308059837492513452151105385996016391115698115377274627901492194817787402123772314532559189755850371356243442977509491759470815060842418319743852451113441096381095194645783671106272736377362442262427420327731214432119904626951273187966520216744774733693518051662778040690218548698191114526409590364550382352318548462311405966623147287487746897623501703743710397317353736665809172598255024196649212198067431314117978518923403752296252512605407527297853251570470170567234571026725524861988350538144848861648534172150958158167246734231576133085893684524469519489177238232608209215665748601525223587733784566721671614535435930579373448979187582283502760799711249489412445850136783805169383602387277425104542599828007035353586485891182388186728191151527557702851759555695973220902273379350765425661798991965864238071012079706378246961812051241757530586607650938317077277189234280876798166220040795491178444807550173553571712613235248057258638050671512344621806500568285562945478496111137246478024402589063337904092218790108682278779103796570272493486944388982249760213201630460175198961880216405348770516108697593991323695517527078011777585227203653500270823310416357924255840226767607829810363860371103791659441121519735006398685986769508752411587415691904135065557268552162129846384139654693501940965367919918902799891599702125488117465564402779747564743140187084991738715680789318223365747190628837819952915579373177669880822659610420752994964300915273510514334059569062840275910531973686548132806314178109209255414876114712257761446000801365734485491585203397238656627964859223050206511952904184064280946605107440833689535628251950667893506117605947958337157834498141226272992536422421562517711655339035782329571656257898608186531253805722368368384014360191741480636134302710639699550193755063429425835639111742420026889603913495272844764965792105107483181970357537112827355028669715975110749945461586610371441647543107233866067943295914838215861184469964007536116205502360202518244611103764967908926895639023729567318152686293176115893405340228741395565797069287978201822626159199108259802774641168237090414157058554982373725294685542211180615800025321266067828769069966896161557575845109650693541443166180541659564348320936659217392495058943371535971909869529444211653908760644486964354196748439835065843455953799322380985711150235468528257134411428004317707221520110374899975617152430713606987604766294062866522235848584537399499460581711446098486662720224776234197091559687593908176450581441306987842137309449841979998478456560423621346375824750207838815138371173274450720847378120526995573797775772608192531864829274520184969626450418217046264189316785793928415831369425828531788413775028671282411865004230662818012168288540989493445856334404462824302851176853320044855061185249885534406999086573810792178386129573218481874106616060844277808290151413496164856299945401241509144202332411582425760152357818060383912842639427181429422549294751756555166730605506133157230474321667472383885201390201779653780464867633062589313913324616630164144425455616492159866744329020256107959325623289556468813229641582511274096087676385194165460452492286015007365930401117675609153429496477759094388935490406947167119234221302234828801331972850656398026669718480249660526285811587119500672320722704500758398549350213908980301510259984583420061077503829170059562303054274778016963182489308670694041507509829092300057291039865659209296094977373327861064746023257871654402381270119710895247015340188769560253739614372339067851464812973008322034924388395025550950919322139059747294956181063016518117570585488241069071317433578105548442534984728053094614795595710647355701453089641894827821006127197628336654438141811809399224897214885054212029680401525806588545052165181335026260951652715627574135610473469071681591107446350485631034891156042149408110490133691024575214473696836301076863587460231066748352883996109848167430147052768459579372036925522031902052509282525231983872215009546624107959825674850099963265633471317897326652384889330742868632451199814498511042015741460887150785896712730097771887821577474371457585066625370579237734540626829653237487530706476280221343350258161030234507506572227328968054397993205590232658981571698384173035552262291186276342996758498903880702562886480928423864618658326677474048479939720812682993727192802641641038372649345539212089355656017188030051654352531088130185077847699574280475518616476526158670525527909030813695140400446999236835169996051032621557418906142893962386929249812922049261133280707594870833395361649927511845327776361281504166631441062602036649783878012401331746926067226446912192894622338423863240512269996979115782993164754567175913595423184860934586700529299618179491056108321103674448621554259596857023607795655616170576039060510610701699854282892990404051500027686348229185388009241099125422691337561754667294934573973511359758933520793318911905640584356948423188450026829490908100485769527473418905853915298176873001309354752232470997968950836709180980603005301003269387404987031562941815991243702014013808781823542523511272149615386301998967879983468987532575288064715782827893278702404049621046523768948022873230893367104418180557749495783634784618002018236593858338857058663140897325303193931413835436507822412347024673436456457013562141638459534472675878331323181487902453939331075423842870252322712135354585437277589923454521657615795063725708459248663799849184331328455741068084070050914698934895827835522543794224868334701916118929495023817996630917224450881639897333383239342306053734952591921189387797926388356843790751754031276915893611505772111338410146826140264570014260161746664745883812411318108691163264097842531651544740094141472312047449631474303177503872100451519105767575172627912247188303959975150744379727593335015210260978088439526066664091263258645977684171010529129294076245884135175300735121755395792439599960002205719689428397028135462906282781024985293250111303223030401029285456735093324938088856046126462893595402294779359310753610535047447720528769520856506205654207781779258462970854235775812658598091925615788549672242366012504046728176846379360070662409263123465235343897855376934437298832079050698434887638951354596877791940793646818256492310113305101227808264413323747529046759941861222467762087256805615498649837162704479103415295302711975495348941306176658576459540418638939806140373268960452235714699384802647509481822003871633595967633257046480561045065165112351838754316844528022752732803412209798421143738972266525886319062912840272561054256072991494804767516449178557292815674731112340912257066167534812841345470317723812709222090287109889979683981147833332841755676903554552761734983344194483300427359076237009191325642142152620143218215743129772342995754748638496781955947048805884084737845146673700087830045609112763039716225786886516196109995321139645376583767986467787270693967051938235420336722778282119399322533616733218258525358055600225708089763926093465130853285929294251433827322128898156544130846511435970956872006883374367213429425975053399576399157762959743396569741856408749698467776818075410570526623304135006005994113235282703106079704374646878312844819602310884554049452577727085588158246388072747682346867137453539235983876948069921189475451476304243458747188956731560814579393727846436081402987412572182290985394136779075037550900398780351389126864485866082146883053733153365723280598012444465045161239201145517014814322626901872039054598590823684419286604106341713475915513390220802654937924115362591690239870734065412839371126616437757119488401007946280944674824972053414411986930949072976374805078214372783852135237466314124653866393944646451606097387042047613635199976727580594665619915994375608160961577376802028804236697181459967772334593190134750347087578311906878260726711551676581851781684332813909570292762543203092096943528781094475040364037620720570372309889292535520760041379661996311185201477717505067046885013749196189224509127188506570162231542970540371115299886790291174102052109932620743550566865590896266536203912009421541168713942004284197465183558125705062620309143519114540446992093034061598921260429923426235660725086730636006310997717957622890268410778859894986360594083202953291925658847778544813074852244411658255876297094160818337394863200972637914727786351095994665693665780722448260304167859282720295633358082185174863661567001159900185447755205629486927873076770908505445407490908724213937244762913563717217744512658432337343255451445794814522287157770359977238194229717007285773329843582963506969461957843883235901607775487858031262390983748213452877744195477169126295564068144118307546289962812709173304623053879381501158977506542694907954234982552901433720790686432036064956656296410481969089054900681693518636374720267356719581869003449397750520386314388116631873456493135046708057009699497587768907248763692458228440577792145950304216999901061663232633650555886724188542968669620840852193969929209354212555884555725910104691730199084136947939004276918292818185433046376274098534043683019914501208982038300092315662420280755759633560382107404144291525927973021857777968200895316240840951603743642598416165781257185479896308975154543743500158045794941782084152362567970983850518773080823081878983266755620522601866789904606937128033795369479893210815495532382947260812195449903266951295973001082519490325872171085233359718556767520686279094593302750758920125252623462397066062814691493898096620352276012047009948691460655367288199633555108649068591002751744603079525551899367196632061420304535095097007323344024195990196918645499072646688475714503396593774409101868022463558605909963566946288422246972087164486727149082718244025200251730614486492076805390030089153945592819871222759763392018193302565355554937052107821510251020338197949212680208583129188077813219490033106648612644193740505820318743858222834899807079863970411033762587512163533457751631875786502110457193010960699788358824678853898435377910235845979345407306567788708728976766440464584701608095995996271226110742866294505839503383470067353294762381743202086573135261450834263358439806675791505951205514237567576331728225281749240107252371455412510361078282255447884847855575380146809673781939116996835551900995693457793012494400465893942952821297206858303527008041994431177318986915111144892651063496801805242335530699368259622688832963387393672811178340905130880105185656545856626667125363102545238202186565370707389635377919099650156053115103809614968979345282313249991421930698333081997743514069219504656360698404702558080814884357666490235217078326444607877990575172746345085473022959178225769004337060211592725907758161182096423467524551705548791283979503348379910282692552480854657338502606947975115231695072081855986266312057517408647406343531165278083858317580772238555864978534278028938830327487314007545134390098785139893257002044620755121245480545696675417933695877090656814422318363406285854027572139591007226932712153536834777987257189028302517400893214737708112199875275942672464520033405419382842274048378017493060121268315742485915525511886525856927077240203177588758961289054185111268703689518898240445424942076263027520342161331490100231338497028391275057056350072603423833600284536746549295694944211112169484078376083309510345905391585431039988604822645787081278676905562765604718887235672047090735543014767100402807190747478156669124520041522672058442527215909391691332849928260098783239123996188353140243410276918420475471438234223843072797149082932976779176385666949252807445301342557779283312109313798939079853219247909286644252669884634108102319267562403111471885553280671960018743362521348265381490125166945411082753903753735265499626694447331023482622079247583071907430296184522824789656844198636196888054751921280902293012842915113410912849376518237959912260146506695369800209468809831760876166671655508232265518009395631392298353428243314070705988711248778622585395193947586958807952444019652983632294421990037320409134194828974824506473408441398650879654394372711504076793495057251208082225757192413749061939566093427680493050287618961120958056438694547353505415025040816821513963492844319748824005412182376052577013123439946810037353781319012696061704238775486335497214736707302224704794599860739309336089388560439102694236961091054547574307695913138381652577296585721922169265090662481008918422806267184455465985083149691121227581869159253732325730877204251570848182309714730326036959289670244690120822237340411128895487761032876162666182182841118970386665641857929686795488583725823562101758555086402819845427312323271983411871620362110947623183165083293998813353013040153260667496443536028147508358899729115736912240028911019099165438034845174533506370791870104474015060663310748111772015457320596779481185068949186398331333068041409055443919695191727724281814908507447655479036526109422463506641876392514590210891567215428484278048809546284359508549154356476581827135197956240912616885365493980649479894152737371672967241521061742258188656884387480831138582191764851918307899399997338653308306135441476155214081394067913410580960906699239623969825569157410699025183209183367097680240113574223463110591331542945682030789026187652831192577792575733082563681988586539238724479493462281168481472262508957877204831441105402223606490221360206091171252810211056430865335620828434582287947735026865743859760058487659180263018775326124170236094591890853308589234812161956894801227216749253582672290158021347244646274069162528680635204836524466568192818912947887211815105344038545023599760455186675407347045103849222671616071494981888401789287374392050747057398258846193756534570871170457758596542462619607133563936809571949445268581833262881999875680244773486272899374730131176486053633836499113542887452314466228571314753217716097957145463785630153636183636458246842395326393875720006399301507637763405207614659064912396341441564775930431523709794513789355641208760697372246216486382190059695658703131324917225867163443079768207497246376620554644003534326070643963643543677994031994632019445790959912366421788485601576054496424484516885227678358727304377263745761565602973489905352884848383822921748065953705552403354334429950261120906032268733599625658557522872796997239383630988976152303326440595663714004304636722719029405723549688327305348944718268463057040680590280376304504063735813781390513740980346909369380106649639107630855130610930421628177024339604746894674327700192486578221451249849041081315260963141647309406539079871431701730190030051257521045032099760966110400832035420979427551426689325481516121716011503360519470542948047250147104091081703793913579545915110725718326405450324014465992727084446402632807103065027745522232019429035289247202098619309286618499702832333565444298300863702158867425835483247484157229288360093391291241203965320889254085076704336369306577458470225953830672410459334565269275917113672796242116486625063072150510522231960548886706562630157669809593569162340161498870033503693109693880239817756731086859473362407976632152761475358500716765930370930987285378101440801287935759653178200494498767528039709169343807758520025282587105298885065826826795735796017117891396800638527165322630311902440015094766028862008934739052274749079087403963333556837234523893087658035572935135300290498650156324545798168138603363813284030348259614560651625110929067175538663505053150101047705897961144205768398672013272313717446907057633999783841819207411309066368109098145279193090435776688074052179585479955304402602436336003112539828081844535671525561141379614799953045417289225435253743711844561511199006602020952026050596563187668888211568657157991551653790373596070000376522962422745909630189683661665573194501674604590055190029919613159933063099888911061749713046677555059491785577339817607372897391146725005055159780686802265593990266629854322703975154893857697529633210787447708581786799918428116938807894498716770325342878189915695531402647468453472707583138397930287083075381015443935584636554433873011676080037628844257655968468479770680969183558747421149378620277453344267393362662520443982548249801007273414146987247809010097878876122745537294914335981733175024078581068000733635437591145957897182487815640052408247381067724961756664650132524338261044336410214259136758505869013542840026220641142274935956985660891692774059411299645508934413652892615130274293693692070764512464732020449831574219183662656394588588121044572679332858516257646044133212873415516167050962442307367117636293902932101373556392422014336060501630171579391168079390350301457795674394257292201487985996995788633807572873611220092551384921688773424288905014003722946153981751975713354199675356413405264915050831046337395373008538907334743727805142386724992548915440454196636049859605154203318468975600244988099505908660394856323939850346982407665274283106300601763301496257464791730130691802832454912804792765674631413370588293907030337289852572780612893192385083144312099306078656265571991445776301408368513620354314196133508710254474720448784116297203519077743382468225974872055058572098710986867266021680563048884013998820359936928461384168970259883115418510234082006847435142293652420504173167730176952613407427058784853436532607976394396834905116175559934733760457340649170070199167116075810132257660768240975316653456292022728365118092342342361429537514724192423986504683996821344420141885408632557054124542454002864140255447580586109543345719929371976296763146857571200685232060969386970319381536166476972574655803904494914257116776121600941112986593195522341333845447494612655044788452226411054214558240768264131203129445214906711920938306151276982109296931821242936023591496634855220616467121775694305777327420706241367172681709720022453361810822720948400753160735800219215447943935822043067677948665930438848019361816681577953793045481049133970188333247531145730056631972446854113983841804070258814749041805864958185982038630953016466174598505867494922028200092254506586215583303961206520818625787485702453858066164401949779519541638921541069480612272429477709911298806945228147324176624776618764301436844016911418525311412725620207687594564925869131733104839183713317978005497660824593903059383053413565774587295367964671210833642933215176763436460397492246906277205862651749185934048033316851026936791553660727247206372773341581093633025354312958067712554943294625008239608507002966239326112735040006265057381699668495633237975539439725361379719715065800996209907438295640271776461652804617660213493446348330645419061164479014534479477753370341009260476588147631942688585606577337476655130802026371745493047080415560049725745509885257017197880033273291234446210065052824142450864106861566959179787819982640181790228898343931294875075746414669824047614463338970632540759645846708619303584646978849870417858175236883052922975716037763938037576624432160257867540914887701728202467613451910344466423645203899556425478574129436070646282466671391541871593209349635387094291336890851105853089530700601894922769490620271615858648096826187730927656720473666939593802562966216910443140152610321436460814915512813365520562978084494703808112291488086292405839137726761233761839665043745162015444452166425885329868014456125633706667166072368320173910856661808772447982251702679181270551155428018722906787531543107850359831279815642359972199743989804081323244593894805539506675845172498216737425969168479298404798925373325130536406527860488912053195944816351055356768320627592128541568061724756483149328512151399909870263842115324768963635475773082257479945404228295362178476881571604067192013863290434484296549295307611777483941463703687369718895097914334454551086713524847962774460838936999200732591299158608222682080021349298248882031509854020811944126378372694351080584526575756436191239323227893463571686869196557153944843647458462578534944725288430693886671240554473103110059673039488736962490141137854923244906965953286223237235558398905128446118005579651537123838497794172227884711484919331725508186358469343829465391169748095550958022891048061253090502457124625023222713340697853861685759396742999310476766843224973271686754861203780805050641925326995341277766399702979929420989735806491759923406513089913892977827171339761325824937213600605509263998084100417105124312315287197990562924091069826137249148099755721383864676514600762578891840554665723665780322846816670253987098611017782277248694351250734187827945515886631067952530510930780922755374466712950188493242307492845156470070214303716496244257629667306876844344004048552795766349068794919517168498468585289542066693236483047987735407529563945950911514405481835237979979934546318636244500089460070328382330644824424757381367618912453358656225203569615200021225740851507609888280528942576561053958192010189226576999588168766735680293267720022667206708483295670392797034445434498826368724330627344170143016348983784506529041589155063575613546063882678013006263854717978426215351959059105649737450895450384595838752143775414248387968243711620463943514698261024779530058593083511301686684685764873943032189046714123612249090550007893015413887913685626298334786401181279402854483479732213610480216596181793639635022045570591621625504756850049169941327404237852578148830792270839401415921089519191819966771698075014392594319661969209779049573183337976414928921310023996406788615524767341193861053345090444345840998662501671901907093232125613833380028234527211767324406867721292893596638855086078364261270519588948070102186711519592528985109473479904944259490574971804780628309826513464614380824340961402876172026492236710145110246647320089836411066473727349903716929857708712381087233059997373857584819681267184341341660148000829243145015655292164063822704657706305240611902805128760203691195581318155125296310379202441722969629924806982694101938552424006257176896420326392686848842353041984715287967606630583167518057278888859480979591611640741689958371945409740807520897861653156970977121275716814454000322957230405363883396206671017701569049903548107608012637048622640019512290130409364417907525853325667329002163727382621185026969193625757785433866379947140005388586354191068918736138747476111974055382151591032316260500248989297010744531919472420575999158641023448351241069978019463321271478818910186905983550189513232105460223159346516092015356067827956011464458403707630772633380971122353583290528852580817264035605773958120984124428399138327907047283318189050489017744226730089191990516951281531524648346354923743099184922400151170130636563561329950745659790319366077272351507335146647128705055500264476695267787664654946330981795343773908435973654863435599819332431257095667375407346241485700731012590501090168320347533080093342205375641889017547899156482939479995974125758795836989786358073784062249530575865506262662464091107110602021892250419256118571821666397935171529680165925142367124806176491527631700992121213195126185134124856461387956490468005693395933131263527890612653424407178356854274262534357508222381195737445283704742337200738383966484954624978093778534503577970886756753041370214232904839417550059090335374328656083150225302491171919665182226477493451009965592622046652320583590303857972795744305616661365770705224442681735903854795633000926875658746986637591198779358930398939222834767165964173987688297419568996380913831316797615664564435126058531149195303963332279680440108636762114546957994185508995099072324373684248297369298528943318987167900846390912957735725808773075393436172850511161261693465170919693171698541354242360985481456839767392080588808854698159177978240320310516685891552802472245459885761730852446630151845474220686041204425488215804643418923311841277909579971894139097450921912256629834173158950793604353805370080192592009937377677563053063681880049054731964949568297788526957827648749558203429299454901365730534177643737358777835178112811410249190698672024199424375663351625937098267885474177849943941403934506109233764239441040843327524309343710015106624035984946268497712442542229706727523859361285853338917845689157889820582599789987488331340616228530562657288899256242208536084276717568268886519188582588235636404334457173195763616509680854921091311786263125977371226362038920343718201982475407030588576169861657894474395991072453894577911495957018863947685153866756151475031957480850751363181461620275729961189025943956683550000302098067042442032923471077215309648629569595168683358639367703470135132194226898238278365486992643161525638252145177217866697301041428182472156690963303562660461562815877587749745092984321121052110403778441954422375998845622592685037342003962033390894807248357829229161524428602772011000439477396393552800785157885095209311034374857274276731173381495324641296279433576192940259724686795982541443388784230410009839396087104871028085675092733588587315296105223001270752025398336487224418872263686557475239840660089031508508945214920596769509914024433284089929320330096448224102989491977555641342792087362638624639327014272753482451606734012929700472681085256333335078166465502943705115206313513504092422141199051055436906819744387866485348966201282169208787630311826100404118042035150476032512619132832787481364050845169810533495291944862431003063042432393839664060561015315694330116394054972088635834661106194043196806984408010524238448042439361502368723491709013387064532435642405368969966957138370105073741636632946721513649817410818397589724230418485054917977995096229449398192492226323435322796281013491961788549853165707238356606243695768807298937283952922065367534289767017102133189713966975936816348970601520460504745491213741033065053990341121874647996584894988596479842561275052977991069821880856291894909559622966990796050386897177702165397378811869858004059177946392307926307768226501163548154088014057213634414582598656310994823827031998108602356052996873276140746125484044155119058520528911610447424907253709274504677125569407076032666734093271988734538261704891928895490724780022865126073789107533347875092304002158432593992590923143287159507015050426491167436106008955521522682765786490690248138690765872487043340736541272790104916269306116629152257945023231749845111677856714868735325175253763330420242475415659555888812363829085916682217378802278395593079867452771326497477884215649432592384573330140597123283233219771341381233295036748534957841357592807539402398394311057170962861227782170477347321235951931318333524225669776952842036767096764299898637193818119976961732016581957621024985395751961473229697844682589201346069965366955737410430982006611178546319938753782570240135446559130390794693711294699651723541489010792411920634679242165177324328161522101196395198320811917177808113404307498432623459418996144093585562634524791187034317444722943758224869910428861871990030675100083186906608043418404928441704938233291291541411059672945212630723715884265759896015750933632028663803124223186392439630187695845266575964136673125891670538582296495070116861082917348606092528734403916434505376302251525286407529545494837731698160155525983348973023055447004159049551510158684386105819144799780335773693757552230951265287738994990003695514751595421205382390016631948954468907539410079173513756559571444552252358536998528626951744728259661869441301348554938457100911878277532295672822703947274881127110841673866488432362249177039834759692725223322717782752320068373637334086114790460668170778267980006795296075349625044513101075341448041560569811419971463159990812757704304146396944533094990913827576668937138541520465561379133773717491154489595697802841437257255936849610948406155898939188258330916914586771518395427394870278175056409258078503941907299780945999671641724351239633801532480849839864704684108439132884486655453766932055646167676707524936048064065165831136682682123320536146347731728769523881457557477657408338251383417824979734871706351817301828123752357412100419425841002434574119917030240684024642953958734470787089616550045060284984895123815417093040727239477700004076023468153147971681891031116488078520610199237414480454484435910821693479272682570858466031364504423194542857140915827494997849026496218660558491979224327905044165376819404701167798633994714045031705947467523310486018703537787968322580696188841920073444791327259034489939772424337021927440978203630712285355099296349060371050139735855285863561837912258578014003138302594439784204822963418530880485604571733472505695729594012605972834157291615233297740988976320449046886101635191001439838538874758241555802536104109628438381934315694606711172986314517386158450662280543635102519291220360921730500891779791943692257408256811647041871588548738036167974674647597102822071242457754996118055018243205588501836906462160465516230997058118734341475720252254449115037249552721948488400253772061837718760239222503655227883930109497590769459131193093784974570120161548363209635804346472112470010147376458244501899151173540496268403390007501964866544224731278782029822276913790728320276501399655176943479970178684966660379158504224178649720596924146988578643398950806316944572199317706213840411079866554326785158746494692923242116549567937121299858158760699062711378116887125469724555651697621595840595860838326534335452880588701930619037809737853404705927150613387123213199726560988089507883560287027829565336608351713069142098547073220291526087569787295695845414147770605970039937225196516623936167517249546324562007164899547238679583791617971584651953666017787763648280464775992342335676826264990551250323123362887329239057230519657637997984248592323180806144144937306599653234774385998322512958871697715799291123236272167301310059558713837564653794564111086745341677263345679330087902607124877090527503315936349375454079666578403486765352369314829394090735664396131658082605356781931989199007704809098394589610490746621307253725047333704972391838086394245710021201506880563835066642039172860318936704188681285802576368364984848447034069028975506003746393368602462870626294318991706278321094418733214316966544896975186244749029893087400831725382746425115934546725998587656618884772879361725869928382576784236974069269772502023212132301259146811639399684665557828313007476230249244190281974173899383185277300250173326598010173335586299969444886755211162732251322925500042458135537698029949597450229649672328069586939089386393587370122760653557347383873173145104519869335108392631211431780995584659916692148965636068465880876969733309175141100329617021475304957820785523823076201109148427299465300308976313828440326412100282616182461734840870864653751506945341309016674356586485419903704908043723144366264046024252942882568318074112234055150190900803661336340628042667559677590254400351940696550209173184481331155845412108407076581752518755236437983989562223542079341303867622962608145084597873479741277540132498754694871297653010590653492960191243933955363459981383101305100143097265121050423990232794624092919200531724943856654904358978184906978445892132962309436499952706769251464895170172854863512988384533481806410118847933098401388147605079506107570552028539035287536478296404589563471395995556217982886140035875147852894645494495846585811363240371808626683275888127508999141630200051507474420598537549894887560397552050565881275715914461600360289976016439283830444135981461804721239708120427780266906651011772163883292473318012405004124671026700910550604366793936357152288507498143703472526501276118297219424463733149877789610528695345520322982242771699907180548256999877960229307883808818229804044407231281360161085004278263006046234782470839408775425588459598019247709728925227171782993621436590360953315047014631329197030529465412361078833118418620677801558625975440384555970010983856013531499411119007684858417552821683674995979066046864791491739154206373573450696375354693680962276714999406811356612679442172871541571089594602288221225415430034406290336156469829154569048300805642598907812316634334954235833830644123396742673006947398237137529209997517248387451070811564108781529510772406270011524729660637272090628791956236020534557582216366970558951939396904659063289709464604843965031414338868429659069749337279603135233039879675750742163638062303951428279127915135620863117975878639749130082580166815912295884824641933441013993103033533539216531082242246271047598576698374117818315044820942555181590687933192018185971644339976637921290885589278293690982979448965493555087014301451985177344175132383312403337497491160071745959325429130445857126226788348200463745662438781117957144111591937020048136399060509049265401538359376965838003239879590610513885526368605266718160912986811671037267451629769761203157599936404216800620624703221832014246703454117881393645888807810896422508942196517420719704273825879434143370628423418231946139497076647004974019074601610109627193936917568545931084325368881242926898237428019850850900309206879798663301555360973411844058045328795171036920502785192875856147765677148214009631092763314559236331636929926248683276259405311587969109963931403001912888460305890669796815427528036770016724078668251842800542593118560697800378337468975906369194537262435247617216419626833070927069933503257996747952915478445436234686770358938688561077493177591818897119056439145862693149404276250822172405156917484465049704806822679626770709532738124179892503377355749583665481544854338756415795524415576165431801761699231357602998063941629614401794280179359991443334604764603091663681560187559901280071916662302966405720944597758573442095217031432148168414440580771230585160517705255955875352980339517047818492846049232255310353286893432196376670267315395030494268411725455314392190900361841345302959527840140854575859769868111177400167995945716587783683551007755749932386258322428853726298910271453842916809473130167693657631451440109825967556813953746042958959960181585544603640115595551689770696299793596621261912742419428537512220974645814385863507037221434892243579014193601478498700692475838540341027773516884520233790460647281634296583332008300372587150115954101430172939799759272109596762117839080696315113374395421853293045683015315636186082453984280814474575390645187308076832936895349898012868750113010226681077898769674025304794826133321689300048905768504648079335126182108943735260327816726006140516335421796740639517361395481398993695126589646425687091621345668145398119995204551002714941027492216957532602098004309053791409218619838811187097626868248440070614171418654142683028474926972392376284033602335659230055372123626656167157422512346285122135687216348897284221649036164908539899030094708515766900747416117258789314113903088092982715125756140745183273059258865718831339648845828332940571152765313425750288438840635652828163850246968843780957810334083483631253814690210687765753995679079771633021023288040215359019043242877342553460520334502761781625258496252066205566128875710808457871963637846479904696465270717848626257897477473742312923424579179330118536772784334709194494663236219331344281672393619571107182563428403464711558096410038109940136201174328768738480251554530054328625995633104403870943691130563338437163401769955590251792052843107159649453196252383679053371559475147708944433429964509634200387317278021974228541213495852338031196970039579626900293290460211709546395092893999407656753156641855533016990642340528139868744614797327765846586268790576515706519782642219532872693608610680223471847577461692322547037311907220207710164825752050392248891023767480064369120664100023796434340886378207421486354177791002861967183184241086194220415530332150519139107600885222687495498437205818179092612398041756821900177498921202629595203222358530592467939818414793669211933949344695749043749022934391148673116318661425893782192428563016704829579864206409743654744079137063334516674189324282350182363773504778729690200380349275015373613840655120188878341659596087448614916400165062188642591173624063034485026197469441089197102570943623946783351083713576612846641366386777226020446136095006886384958200266347325496332920903521688236970572474977048180553099126193607930547106502878686571703048865321732579414016856406592586536642617345133448132896944507772000974461904929428779664426728959151517867288650996032732878280155515809703753167358556907932473581369998423604300819567126130170075134965583724751759608349022810901283929495805449291390334815175104934881336611581220343346943187238786146755613483067725609473183602263533225548310259144556890951676831321996762315339351617766099686355780282719714575598839685407335841665881319967219794082078079899874603407301366803176926921717939617214064328715957824722801117193549390830984312860982070553502023951330380526576089880641730229266169120111465918107469100045790831296583298563187949484946844475108938262237310815916869054448054373714262235983737769476915524409844569677826797753393545228611875079281301739453507349298399542774046875249148697777422352933925334681644034973867762567153410758885655219239274258741148170515542789248106143210261401910598470583803115162101246279567050776747176991004127338698126019241120277591327973789698605253278400519764891556396007279682890086367131094822316261671597889047666706854118242033596969707812742521737425818250464220838597412113359957321532442908446990777898692124537859175982329700491567905497905551869558006183164992663823391478460337747980076633364094588493116906944084054230843888332642847092066239016930708859163050147308696744556016975491081360138882242669638772249764048743240348987074361569369879711426140872838492782726737642674937297822849391057880595546783952435547512581482993616081957708636239541553170395228235142452315985322699519156395105067161114145235423701971605170720263404159298265302461582019191301375653773192693147207395597378708528534882124282916213878076293584530335779295969467936169579438420473859250411265244410418147180182322249124701249707906439541268875476704130789877498853366238586124425184516460785483002068396767074400032234552815471623376715964527927648271578724620826202801149902735287229023449302912076037658070840937272364930815541037199545157279197724773317160464346934096407286686850017886041190867646293421134507898443192694178874167787194560145284617304267949393638197299619016823693263705124092088393422079731212152563390570974697326426059323823005635252580292367728639327769138348100458210405017525559608038734638222297556460251314841533360210462883221305988396507952300059099329423062683804204643550578036719813770873817387901639129969129760411070580854074251605480495170808212814624393539903963506681807822358781633787365440045136399852481204270571408054682102096422127019665051439416826979253719557204092271604495096025941978145376406795710073118797590648357807855722174533086772062760751482793994170180686449562756668341446316970789482760457937101335315739932220013887420099610176748159524198632024133863869305855448329547518273093719676005503830158784565076840591173313914691933490772224959220559411990538688587141636918880067916540081071838294880194851820010282389820034837793307804135789745326468159571215332057228646124386100788749150301923194192337892193636825509140903597165487135839678957910941581929228688671098250519401106862386765118078530730826225909125305318830941173653815702269989364816150896691663146241517599295747913392770495805559625943418286969148151217549344224310882138225103002709419546748013157706398702377597084836884444825622970565182303681292554069477755823200669028263375562674957494075450648700224652082330168357330335070322720308480362937490078030015137143491481761679295113186595910827695089327271380151096990473870009301948299631358928821501155570507534454713317605965533483426264803309852710535915350699405124654139463930206317833095316304245360287024512583605558815306288683303725448281589816515579645302724820712136489142083115257615946507800211556562112692666970638139962087352896478796425795683402376614995201839929770822261167794861873632278562628980526584539159663339734642523885521043562557777311623793890832491759407709889300719421783855892749248822433692023193037020223993248554393885439327017465762740236198630214977885457614677935351475096767800651769529982607648926623686925115405332581574168765545075130344731719575994987640782288190834853234230274234393457032944091515259185439389014444437359971739101531174039478570043545786898764500584170181218244120838551629015510923881839433385172807782300124875936669716579772790921800823482419554877414468661511243467156584839448351016687417221454304610851771744720416861457745813992678585763445247264892595346860273444701028624244047170171662865761124633717943960278513960113500719924275703114944223468720835114390458154056016466667437979054908070935177142302027466419956350236754342386405861863752769879036405153122259969961746080882304258200541459963051735421119247062195821438678446138595439088707627517799303452367086721202600717208671325190898368579153711424036766870206389969092976230426186426838997918924525937558932304266963929451305378500346875244876718634683434869049878859875484406916625338583443593995505343960559074295502108799766958251569488132257757876666696766062620713516040837158299507187921926166233170939511153951742157413806177235166583719465462992732765353884841186818017241429770848385077018222009322145887452072216489897825081881906938177200658797495174079475703946033667376409786550722933652911040576003726905608007781897065399554857102290233486114539176901770609426120684799630250798195775423776120272716912087375943955220804994559393882125129564568971754516426056145001939336331509768058098551677583024143807691036796629788499827173043754837419253063981011894655285963954789208539556734653110315264486754376951266633665772446384033363001850454371953400136603324904239489409304215471260784504251353706750608956499840672443584888226634978334641699789370618274474030453000202067235608033828187848852421442847415966199064532876293689282995060529625248315621657373866219131926603252714275928359817912425445057888589421015088850965266007563166772209241170208231559596120261431629205520234926290624964730308083317348223625270249420166542688287574407282512099443849936615975813539902356921063296230003391366987351399132656780236139699078244475897744067023479732990357207384019350410244731958264998500109899222099281994198774493093789517939881598037502397696190182604521639274532346711257560748435956063214062159066605005667912357278989258050063371119661310410280543819087219150028529853285932004981444834108807821989689493225269186936149347655445399892449878891415694449969829951103320396136895940261773980408683877043235082493637136385059531777567817723028107640603409748792252776515603777982776324911450710855866532564958390888759189551016109535279967915948845413160364007520219975985256544794843338768060486927679297267689610564512609664168657144435817539721259984230578654225764453089970597430255436745725590712142152487688457051125925581508695585288311998088332701859593298359399732575851386946401260424239346838847155602893944976832061608326093926311464934720877305691347156098940697444795816303284470402923935172704262450307032226804035222998045468002251316240537832105872100570916314271333097812344346068339952032074900239014282431295289732079403415781212136105409129891454884092727233495760762757798984017940880149168803707389151092254746206699317773854563332173879161905369326727358722079198060069119558626641810820751487848878393310372970454992678586753331847856006705848559090644017739254323281082845626268583548971653888915976928540431371001505796637980995802867223817283241646260499868048884559288064917949456181019290353172209098115588374229824172040406350590794538972967789107076693882218266464255289152748828549701453227850297708315832966701488639129352211623905061405631446004347067655700403635351068946952623833910177559701139368970449382030749630718778777102351627023040847397399951788528511557040661601186619545449861203076482785435519708766927293674379321242370448068401073883188863349387474187378337285671363727874249895944160459193062147319207813243408605364560597000364963956321099730910376323614800143901966655742653878408170224761262890510754546764463483190272373952543847499631890935315769314634964665759933399543942489733988273251433224595065820166386551635322752097933866908938612753536023638582339348519790067531420407147227547729932307473219867978231369989334338358350540805737871568423811313096397014312440626472470820340653247457170427520064116515291308585084936901127253602015605463047458361577614220936442841621956040976745010294221857586408720546113464567294091657328888733512272235296002054313365908141634431870147328876561379552108890669909540985527274990382806300871334150061682215543802080983871311835702790889719246934762251945542715363195871221524719158062929300560346007527712060516107237698928731749728591647106886219508934461215747302665298009852075214218428976199684155007092973612315476290527945957235787137513896275063008119876628124531743424143303306447646899705547660808470520841969838866308498189678217041971657116526897162489157915972035528395249278798805848522755425681872714102421340149075215633653948433984125484390754382231905028586493610123016848539887737454243949003828305476116858187173459099943984513166893057888262677509576243879930380285418809778924552829470722717269186663584483334518835042715415482281616350622957587830402986987671191606585910694401098013416788492141190764031454642954708684380893380752309588225514467890941151317101023931474380166102355739169947488512358630732338486729230995612614276923479702473425365139633815308895259810175586878494373626854582371461811091079151814927992385774346119448110928002386125832884084729664121348746830122334755910991340242990252068726720520242677588661878511387933294866948473995308812260454751394518183876989812627148754810072115550625667050165394000685200993763395371461876391225867781832732254299444215590848774960682638347997592467272746084105626033619397669638413445514007434299974310961857816609593322705512623504112484122485384411536055959689876138639675983654884410637487580829606113378443170882966656811883977138554663228529470520758635215703669378822989490897651170136235146537606304649323913612906365159237595494359422242576983537488353732434293539592584100297327959357176774747587898439236560128618747497789308931616459233144408851252953030666696985541675180044359486484610512026913118306693839361847313749801759253202635045048614764742644024307985946218714861451837629426455650861248587292691024033032556195886107767515672065465874080470956011657200207186637206164481195362985390073692380809066031996036521230010020279462351110535409480671463491207789232250982934625175635943829123836332426965007602999409512979669395782812684821486976078619612136821851419705734980084862640125296904249069676525167979201415555717022575299165330545782053647069025809712615084285718437875857805101219996184278163891600536587997353808601230668204318253118334558310827035030743855518321908705857963230580499436270015131235340917828146785849974351703503764720141322413280480128561855325791725311443487981656102775298124881026970310877518397180991906254961539452550842023131994448325088175547453204799350502832334838550354474774568030529379549012282578042956317948264096346066846069300701414333070388786374581072591418258075434796459636862498518599329372210712529194481682637837281456943577394130208552588724973471695231027983360467568754047753271038947286556926493505883978542330774589814762836395022379779192002347301759676645549367066679457342819733277796576060106373608238706759267122495922723756767973675850300850615216808939754260832322709078258680038045606853565920519833157098816372906429777957511418295087483292725368719324869921365130922018774243387705627110964742417441604066351010386963343782680793753329912704730966711906083288772315037617379539272013163539703729888317065608397986400188554589424686096600034671993283537341618324285566886054992156014894299864065438200465240367262201923301971131044495555322895890773972010910636157955472029973292071624390733825458337572015659627023487505504047728633567334926973566379509196610807476445147458598486887166340187159981699211522629923733132433344793993885932444053238753657665507222991757076608523010937008932922180865149828710188852168599511938529818602857216084950340151023209891862931554644682789426079206053140667556235643814058822316888437596281710750887434041637565379024087904802663269712935010126706655372941258233277175150084258080247364871609241381461671512886478202122892440715287959884043417264710255200525223976138795785564411048912189730351863848863643166813824528564168195153692392049769998937789253336571535334272731025997421849136658829030033661567567948441593871126230556461548372054217428821656944511586869329683512743011879162313163802147940456998327527249448853303865660362385078260940452186727811745821324742213932165705193377078464202747572719971084582529674170583475773400177731054520111892470110181997527709678771085579123653639374445134485550245360411798042821581889036833750447195207126600483276225439872633628257278290844184239045342250520034027685995057012940792211080084562772167573683407716298152309810993545105728293151692007370967265774304187211262125281956782510488637519553494784654114019790436333990834973108057744392086641974866602574254484972534027011769871633016678367505969157925981291123393947149735363933161094920847093289207622346559735182373149125860664764181835327065901773472624057691873216564923052797726695204711977594121723821287813178732396739523488032221932029575665791333613364615221290843687610155239929575702241032560457175837100499009603180180441058258850355766175046845162773149119165120844442022179588876924174746026321853030922405426555369499878167000116655498234147262690549777651627080026879809548842671816451292676184337072499832796075988456407726172937401719920015905655854989381310701120837834045734713481496247977082137229431773588145084390273185380589404704994970319769418218128276606795357598695143806991817113965064341145663071530377257744179017890616681079111559947846652133293114736395225251466891366579912853176168717759874764561108818721366799376843608849565534476901121318749573477238086048243580250669232229039419114707607276648840538456243874391725959144074436913312349751337551470529735462403027066092927737032819356949420927245332486147536839517142781667732454171182321146443486463197021512590406568272025157539118871122032270842572247323923381930626692428253352874918594010432770599724518093938386981612378216983070106546991038938038252167105889673367950135313826922722224527775024046940701634837092136229721544098081695125945037147968417309609528329238959015034716862734395525977767351278057611110600341465969485992021068148875797297227851575463753402888268628809838780583693037603411756993724348119753698013027583348915041663965439391750950594200977807007644815598212885090691468764181313477826527366164939881485763089580166755784605905028957847885662111410791102530470799442642387478692712393345341099411054892527208934605682739266795700200601058316131263887991183139495572677203276038718833050258064838296330167644699016301364606314879457574764113694689897192328674684226873838321129310152627861010866804520782812217268438172106148095568030536756473265220008032479238142614138992530877072798269650868597836977984188630875627594637393452955361499956786856903119800575122275019162363930351026991468616080609137879019468010893461521836819464155517129053168076775497715653470469795744013581824013994079063684974917268581970085316472517606263802517066070100243880441318689177204158301977448852787468588732565767963484810400409897143673834585955287765364562964955163255179070778630683254955665540509941713431638050108146173042304279025436122719769437372808791864041580347505244565759834550492319531066070836020633198949114108212284623037960603710271903464139853800248770933811988736741512052110039418950925116271628004177941265128443330529600671818429802520737072048525480296926958444467555727558916574207653289209617694479263144813952697054556375046523322223161685027166154537952781547274780044637829799677759726717669312005099385062993319497485267490368831494178556875020893722932748305223492857632858661573315982434476276456766231376044986897497560321342959640083387262319383105673888047270005429816940720797588029981817008861620287690907597609926001449174364957626087171332262948215650013900273036323540701792965840775380769561886241905974107889571185682886769821663620849543928813141206887555040320367851413454931247844086818808550572238921960534454735760548602925711829398285507907598120492295922845729843685057106994857967636543253167815138170580927665068743396067063671790912408291078684087109339731646890438405179498890638498105834115229090595318746509109853238474183274491255450310565576818371758509434717244430975487714380702867443453599939841429441554818570838430521170577453774488884246472179635821376461441507031337904607412512690420036290235217236866371686566074946672212949582394297164286518989527532703330541733313691664901758516339760198731057139914807489707425523640467492382623877974541208666457960826849675422875729639167209937868757098717814812359101908703582137795898368916861705600337085271119781423180084088075422787083489367279801226625684938720850741967341192651139856181192905449590097047435523180915459260845126488991740292664498888197148355866626853395394719563568232406235564199616291314894938455033793654474726315184566566799733749607624081176016180062598895014112066736804830113685329330876161331326008136905301121252300861896445473253613392861727019751002744592346625208056728834234239543458174252073447094756798703070370132508813026776914808085389639035711473490652367204725764687264644913648123473441436756256243014930109847278480357460604723199043365804635065039184362524714065615096794500341927198310617643964679156780478497655344010745109486560608828033976106818343364062172841955198200390333648730407044803694790801188093265047271348198317173961126232241355002271451922367332103976110475751279187443571200592913313852586671542035744495406390770294307186150953559031663019458151111520241149166604571945852193912152460289498140349974052955702441912695002984905109016442517600503355528215998109120881507096525189856726706252514284763948088996668271688879126092033577691269454109251973546935517195176032507662907766242743870001492716004881952891122764647417226418391165752017741713528337048287361755951255723061387295370158787745933540075844581344114172862612846046442246048961120075435775225694041022913086146224116734796110998127683055723586349078665874331931687382411568710388258450595475312437158456016622632422249681463478497282385297751079548657666850443914114794714879579619583192302690122472987925836418752175151403315917693356344766698799457838883214252516299842397710014459323291706466037898795233542119271514540067940730340787494848900311812908403723155519794388135210229848158411540269143781542666658752629358783717368980855249537631710491414414366218336806727797625034129783048241418866163871245907188141632153349256717081054423257484283959027213820697908173698895061423445620298896563635155577650187312372845350254301309731093544918650030593985260006529893229079352164306032487023906171440380547501066418947202387102283044970007107662795699382559157018016751140067756176659568451800434082699977769662881284265665527916599898554581647496864084304030763566253715871603252598234615471086227210478872165294589776469809683315999634255380324835526470798225426534344592610937742002779839871030204303448675726512448367706249923006456657127226884628469943081647778725783180999654001595702513355003031729676106793795566675928599535296222381668423371062664906971510839628851088317189040684111074004523254308217853068468508460829417804837712492463554753867738521687584208794218978216802353126215538287085008351437322120969183440418921653108165181286721332294464907925746703117660036337196533953344875739489958120054195806664640573373680682984820497211951407927480534348201640716410762827932997135002817369655366484279149202523411084958317939423874744263598323170107962120488686702089193534852823361402525783115628405101290319172571938740827977105912908230597942200185252315118883147647960097171409924539922388707182023855093444449699486294464204610798842225907400183901250839019942164547320668118206461245919054331979099582016458555698945402407024778033529532340849718130768889508129024111051050154302487571127365613914014550200800119554955432099096093155672636134594292809566285168224496165118723410067680095051781570447061143089898378412619755951947749862250054734272407438406806282082330166278031149926189400736340193539002117638989109072131754347779480411998119575937544964960329373392688772100153494539071022061243044818643767632802695158782130454860852271518116933701680876922449513422475050455095847678853023725922333277504972225264307957077791324508127807420426641747464245020372133406294855574173677831434406977967015597919472415009207217472375907633088069081929084956772993087838267331308048976771910973053164873483234168502192429292333536279567513341014914567011406264200161005479136375645545214135190527340147633081949341481449560922323747320033788564668382743566210508888679288007741196718032685417392775451069443950218291981535035094707079963282347214711018710532052723082018770020966023726113119774643873784838464280849533077951815788599222798252244896184301489227138761083984428897267553183199015555432954103532510135992747967004106199449230441090838277750178077146320074173545460754022021381820728717692008466909066664300380134184882785700857680868991784519590620174402837768331885159220604176225879068522722671028070371413536616373700148615803511314054187109736310530300519992830907257215268490747947001030083764444674807523810284263602877411004197108259797174100060153497560255656021780677643234855874329675001966539784644370719958915590078152297826326695202481455557829614768669309311537469168575918627618846606177547754050271220155566517446960861873894250409279955424234845425368616435350498943933193835934796642031473687018828045244218409520120107523042494067612755605603460332743605180924282478837688521468294438317975978370286925939364821391238571130456609443093844551352191947469461954079433592209668334856064883144723423970211396196648305723051482338006516904952075598998099676172632510450175983238671506368332399141299429317145492301871539624404039391558484281347474573725661381159540263119140813938225407556189476241680978185341624572386210762575222846285484751479625363280340948557203826291267531117676335920762982467069876661679987200727474976494996199978558251645713356820403507910388354112638441125289251042387318524110067603022997744372520401891632594532978657787517818056285064239987245197613101844301958826507854062681548171598366435456012206357189867781776398465511209235011134408843455378544821239606549019288262796399044800835649222682422782049665769758291374467660099213415955224876177666309970399137613341419192718398722211280725362991529763130000375737469883799575150452368459450578114405999535749535937399535094551679214135379003796140814263307629827122897282089804778212379950102402165788976170507898079113957016241093003780717795622082284683843340149414884658258912369496548517549808128727911315257054107877347133247284160355058649451853308734918837079674884239480003680194611527714219853936641240970199819255509675991146559275647471396342260391851107928261648987438967982843636121917290307021221479934287005748760025423152067418422018148503100388312546240301122875485629270027024835296337510151869867636985078850468125273176207076931274380631857479321720168262319060199701070044624655602331899381385284028256151890144435667988639071631035777859703046655705716012796599356439495998218778499720124858687547805986867207287904240793383897560226516020677664789148476205280026753447747717855500973200043398427592537149847420452142308030304226728744460728426399267072642708811025992973955347231717192058873733929105159345955140190938385470176056154642625140339277482384427633469558936176902933558328979333211093938587187450844050166165032792081512048337282379889618257616960958081007265334523376075172020153956582477528286471208579618052157372776167187453994998640317566247426366786448524310127019736329580255688161743623525456961965020786007892042358760911771369849230802866972164347209363748891995367113559252733685521656170259379480925355287661518472872723999460695695535002011800983785754010689369189781337712666315784831500948991566909693294950046341084850484957015774228323205406475963767013230881814094189475579234759017805734715601484884570057315560657728270416566570496580510567881322081338835864164425924681204630856105814539829851750686406600495342354126040243399007157188407172144051757430408936900691719708058552430191697514165968097387115278376869484192496078123268188344404510429672719535340250871591394830078599239668768941226308666364869762320912182942593483856921146245592114890925078642416244683171711233094130101578634055599340075055952749802865827097051127111130529399237357445970696517865106141773311660781946218125184580815876710755601170124214395204770487093575430830589307049648090283579168120800517720315100938678919324168604868019447716569889505226293226595375351798994383375996177412860974960282840575193389200196269433313161976392561822624748467985166400650346594883817852330148447380190022048159812911327366414923917523498990681857794099449952913952106489122616483076736121284128738927682126264889266232601237675951641977699602897980885468940261009311283128889664939454593827883588888432114533262209331572627405430047057585023945643640137621667756831666616799633091265394970616857471627804817176301762644709699482083537437580055418978183778483699158465080224872778535211304982526779502429127000761027275139835828676420057111807611981008160283572846795314202880413523151794495326613789805141239516672442392113099158012509149974739576495202541173166551604994291919068800584890453629199948477638298697098668004786351554295567002242060228504962372770954908713956301889428758535646222134558170670933397292189851738962762318535434441715022668994987777029799704793790649505696521923794376115956135755282485259831160237114307771698333482794725606604749537770653578080476078738014202038453213113341971743314133299164670719385926821818001042441828940268382104654179714909532659852172651466832904134220005305502008864940770698109455264483668356678761141707562088052420025273098786606070022897086832651411962279952135749843883890009902796000769109844692066351229397362809848431426293261707355791837622448434663243047615064701651313119939084822373422178882233282161538827513709686660695874990245668196862912265216495089821867696540839269836959912149700257861769603740921316592403481418511225424384555303954001090687208690649696226052610319985723868754696870171292962355220565608851391941924123401061042483329972919731380568648748649148079070092452259292645967079826246420387416234405381089970495964152760023282561720927754729854995454908600399510368326516759349608788721266519675340902476859069532514894162860511170743690306475725682434141959685188353466029141079085672560628947884244281594594822045941445933809972321629914369730477514264060787473283205561976781067908724627644283209168660729379739408046770710079226846344765301366821256001603148789508035711845835890001881394427982367779980250317774655275580885815761287244077036083606154611751201686468466658145178057272117076075228277930212263922442103107370617561157982514784677642002219592631359346929303470435611035668648964766909153675394237004194807251244694886584677933332216386557844207246101781575316219996765226495679420508348347188031735026219436405603617613150726497069228946689444559718526131516216284104983851250296504101996159729753830285865741207423970011805726204557958728933530623175284851489684320202920029551797018269408443251130786212451203329073495200263088633647921945017004679662838625988904804092730937818552403409023335062826508700131064489972065104440548384715892573679572433875457977303645103400073760817890907890205728212936674513174440937280965806524126594715629263982715153315017203974763067630613616685437929744877300330944126249140947211711042768103708887729184215298847033140205797307128438583965287474194525460178129004058832404271343197294164819459733715786663332043743358732665464794074688424429548223278131011184536790552717409163423691407815907707891139142950927430020391345143785691169206788279939217496603653890932762701935236259750075777140093739588403138590007009112797637430313018729346689508717848127995279506267503887651495920780047808264547810982267453575659534686581617784121765590244362224432439180127367982520397231906729058125361143287814325849081905499608353931096466819353382007552912787012445506644828898859405821259479519029546250473919201839306037588650668100890783239512875414523793627974132534707343054103566330151723733236127557550853471978319102988094812089845402203124943120176218317571468269875484631482980442082678886904006728265833517846813312018606051980042683970524113674970337797472946669290642541165411814562050074862439887813830699037665179190033380716236394842966933366012887753529692135210146554412241989108371710715313626291116504510616478797727943487434282504465450461827000066643173275537572684624187757153466545519530756258679019247624935876540218340155187125264772780763017901812566784691260864720043630499514722279353689799238052878237251407408240633763730669096815575237932045934895008991578737032351115640185595687029937456114866494693376015981568269844099838134613984812175591542709343906935941919149059036461502280511935573148167049007306203474973562109974397652224265089725138890689436362879866020335296965988190029572770540322620514073778364858634428262068648064168460227571312641292163531060937839968740310875241443717382312191252365827885388877372919180927940542840182477901950042563133109685993033707572930645275577483243853943218763223028726216342132192823602724788635412855438203756064238071717326546569010836191379201573614160062319291816422004919429562632841007680643535433323594649168565432989951588887667004401945973508871699492751464049981181149177421348388211535020644828059251604025951778540290544544763766759308030424147320787026827896966157682048331255372295905234012570673445582833719403134922382337982255180786953427612756223062991631442352989859560291535405183824706119774676055580157899968975723244796829816173651243265506619796593210385862399178997835235519297506872244468640945452191577954543331173685437128457946954874961065193242556480674126693914308019933656653061148812744312011265674620817272321464376190591306520575491587238880749719447680107408088530286056536035659168069634063203582717379523683108485749870288491114571119967593986882732289467324997001538426261711889180637662766560199368739062010510056212102924988101237441183627222530158528875374569749231259479940377098184162142752461696537938270992235122264027166983064792344039140217394966087294926903851271163708435231273355827233941594669633983175837458616515729945878078678392752562781561847666244688979464917305937171861307162877025826143207850834134015271202290588115040853727560374154018736232717759953298494254024478305761303246526114288373186794576862872012080467171002510128580245099091718998105480834288849580588066036887645900495992992653314116709617433890758198265282977214368724981519083316028545960720306600658150653974566774533552612339721570135119356991721607228002547929886465728445488425693732377510349901580921870268176554055939399087532714586650063155535406531570655236159478342494414927660176170192612607479204403230096262587979794379999627171826129301180071953724479390827573376690638000975759924920505032563761442210306767975955735472647253873060202404558421894632751796319254079030457944247622437009327298363878068325602629519404765916785031599390939721577281682191274805763908182694916860780987114009798698571737908221104169318045620296792404003048330806813850119969278765990447690305236905817666152655357983414994876892452911464441379268578926086886357536467713410891966166513541871449489656479003934369574673388312444002159983222930112372468876408769476256777069335319551536358428475914943913888226236880327915288840580618722170476944451130994475578413676162676529036727212076824674084801657979546700730064832149980762374628463687141639142199626270020297182609317997473751057424225569460554109933690948595117133027941430574420306303690548551791455781090702228233156794902458601069379185884039724212138588318370883558547879288202526853229449640803849460706160604148859361314529427280527355894200614695510702090594866779739079494052576091422034485916587001379417968564053071173028246900983803860088762449896129928158952800476851977909356038265715308644013814905452286574931674392921814867276609223884118229988279823485438017573073386065781649918663717835152985563287321472721846690650202937826683739565152361991544429305879896083685681322504275490428335641534029471627383770431807037641239550320538995898799419782712589415053924548991735440744121991646322267439044536714343415937858049250700299622692808594386477495920216884837683508399314599561133673811974836527952565275623797675027645379775009508893518873469263325151144774436860257805781597304213320841488043536034402023600177959201086182840917183362630541091015794090196068742987586666147855817007316472535066042860914055021347842756706132523788613711624726364860973924895755568309286466206393754992881690306308920658563315833215283681443257974014505302830776995382645038742251498194324846875474079756536631323290890669353001324090690780771688524274964259113576079277026204279767103135856364655617261837687515894773180873450064955013925915087917928790075694021784522439273658917242175599309488411156743297665006624694210820744776961393391182014436838701465821459232879583791781777810380582937068999318047312014946344114182161227601328064064243295663653965656605138582352199442491122400695783715488766795180385048758693103407229801497546945407506650652709023316291264981870542103262435462893750887393307875662241470927057943364856407002072678242004291869194068421549390897688298988975403228921565046492184638443412519551775918671694381854708418735505065982601521674306487692687438564243920571909374382865993989580337636693949482258905959180118353271141921563222413217560460717369861278119983140424867839209696584165602953217644372707401497165339337588640969964796969114671082623151880069065331598419997007323138221618820089454128224211776234135673716601288690885810631846469172658827314609524724558438082206840888831328352806312274734539337400609414245385732914725962024373360295268472173250504970395225591108363946442885599448893284737754996114018317707081141596055515413123991488358953300562914712312021843844476838702699260331279073108515677332994052697660101910618105424768652052848570594270959953135529041004320719014240091441324439300273688800969589063096791814039168367349647197686090733004555550531053312667500205924461778988402182747377988075083270721879635832088968356700508452466837992996476783144219705233681868005469372884410870470731839561301947208832306069438147603745249568275110239369096160046203188759324542944133905465935337994470372229530680299098190486836644544829598990421051556762801616013565261894999666500377977669655001133627368085163955673093156112242277972754814626366315361387780582068394860902537721468159677030718890116253615387131741656674286399092914957506213477354442659191726823380272595561937810636717696268303417742393133466199341613333800192949619329361323191374843049578751289380367464963655613788623439525531494681220094815423711247562552132623004443832517422664081866858269974906127389067566909499282680193711271124835395839929321106508039282107917197204736022277858207850681499741309875346716287789528172827828823689583121026753513894431932300983797254489776696575812867633915794398479668916106518966700166020649180491895850323181444921351833101229833779185692673837528399820271724632244354711094212868394806564853623584235515664344982128696121283931345274971013851430701184742521525898604124387137509025182746973595205090619113224287102067302695837129392810410096292609928021224078871546661462352002561408197081257189294200073806841867814888183166708694219206281942676508761599276015230890309307142029326927466038881943081266277579986117116070930739884423158202420217983293536290001386270943226460997457609559806425349381694564603242817165096623414752417366568813021176540855401912940412053549133437674936367171384077749073811084496523065768119979024827793941833478599283809851479038069817235244158083354674677877116548374493238820377602282714732777825719620629137227467853126070130727735485837947294643072037925614775762414260492111470117273252643040698931575684321713057244782957167700716204970539439920954431907057043852764194227134790022463074655559052712870665670498464488907264146177730998401681423989118897827711642507533283945425264430565200094512449800047977278274924673254358463765007040827053442050568460296231171687174815880870574437829795111596068384449666902458625924937106506814056687986913689659322230731548041762140741803051135067238239563415817846155488903556260028124545788062842718678226863778338095339847662585518300346237529109336779958674368982412120333425079245769603626718542826647352012697417254010636527220178203778435134625883851783585919145943833120813559176926890949233233524806225039881929670488428705544580243512683810703461272366786966155034800547070109530071969873100495460159167626667634261044850519149561191292794394203202896849687266066500623454949404144499590648357468930560700400450139935909088645601235450502180789116771416486115324007027342377234936318378989704701787843124421471002411136972926545543753726958363428261032140666469376152049867790880322585861480041766408216413399474668241187745220045776855885422327016182767280671232295772831003415474139038410826997495990072199795875942850280154082925374465252571873883033907130779752743539324460390800079155108858096380336292721948184811902535093573323559839477728521579696347948318134483025581971962767538319356603670852426290994729398473309186440150157864850663547006722210099211298755544800076124361284970948633761288624984211002120507491674152255776400070300421755952743038146112672210384112934936774590317409554709929416494261227885283310483023078076204695950810280080604699011792395861884370780686349172148946680377292969161224125288256165510468040913461760750200943821724808561082172647335062793754328640721199082006279133051123136655866039311520289124200878310937156129177130979630734491168145483557163488413353253286931250609456982707463634968289033541550609000056365177087624944480856280796695192272022226458166610391291679911255302800626998340038339319301041483201055658568532133169751777081056018658307750107788850910756879796185550132619552985455187016228314613026495640945957782820872033845321027698317269347056229291365464630451468944293254713331330161274215510030181939792699434559027256966211453926227067011393905661932590674995433624692693623538523571832066810889688168244494786079820886387892065326522130743392996430037153854065898774840074137267276297866096945957297848277764041561563860794141774440253108663562524412187058563656205352737505938001862868940614934247285085338083646073127587200318039130148172851293858394253096281381572887037601297803305626325452862191402882721390535372651577929560975556221691810928077120917290803977090270540696879163518475704999610148990534481285237213615243770954760887244542416583329784406930417113541384454590798886206723390795521908487529680979371229659245915580865677088775262539192222534722095117293627383959736999661891131023705509701351206306159480435037844733208036018830839369431628956456864263389651022568181332849640721484158901952096559199355708596586167755246665615703867380636985581248666426435057338437285536113492831680602443421883539707500402703278456210826297075856569158038832401399871580249278562789421742867833092877500636022622146548455446130148126186397414575117524169586317479026548304142106384138297393563117883313368956820814748477288688338890713689352622138954400634977125434136748843055484860144250262110192526288139428204050652300425724860088897929266579255935690426129280562592706067662481344383134037663081778519169960579304053643450847676479865475243157367647949549204700126628360148933154655792055032697716348491578475123679833838744537117735748923967343982931559928518147275654210619089960039455262850764182319808021421367811929220483418899940807261077011415211236107254219953885001733327000301478104087531869642619992501981720101842574294815608578410719678045565146496546212693638542692446654011502923643959920511946912005739542120113430099248250163807624374521112294252859736470739593340469060003194485252971996215316884101774232370618660100337299484420115802054046821775726062876645563198442829631506986682095279442968702297776622767276283230546192656327518796561908157967441906318674006562532352729416999087308214796368402755273404673763420745355928940467793835122743662300637163727589945754353128799601644716777907675734682971414195199696608271711248515729865381918291172229481760215737842228980987811970526944474568995598220927280553450884363014287109787289755994404212084587132759921090125259544875182893304092137773229928375903929540910658214479737371207257646412912311572881884551705157785161758149113240128098236319165427070244537599939340034116059512108909687246144351840908989718871648159611533863104603137326243295732009755497046622529914436710445170605363131444440999317749663814472156322865271268152297339669402834661138796926803779574111776201344070805619109372113557539244323547846684539627240679093890930777065755533311774550151322444075768940443126999590066112714603101711729465346173365630472173446513002814470281530534114889129414758422508522276190735507396840385070338929229211265941942773923293448543880883254227918189294586865817229187313842348665372395288295532412872428801442424058756826506242622205610811023822000883800918135461862726651483008571941573598591136413303364934765052106921111141028707486766418882457037575107370825573707032094946391350443069426006687786039239013731952498308713264144069116067385801085229583586057499733692013491900941697660687063884060901337048572913572334646248815022847003422427057873395840719416074982021251557659361696409246872070653346340147623595412697548457467455951129670924826333434506292743945372286365957985354389948252135137285916735028328093012235009505327457744127559691473908070080088654466165672000396131660159893657922032513018277508058797842110302212312247904052510191453238921060877298201861074115307077186926793057607015472314185351012046297029963249625158570379363637739702874099483481474603715913314119720638347848798689855373015273309378910300643498607398928473351324247748927355556217646183076961622617102983545058885205832567787704712450222667531570147069307031013370835690201388679869988275158905516248663974535837095762733201356420802103749865395021204333982277173292555302080475476776085760606374403236924937579223961699792763945597945295028015276512438318096779787648289102554916534387572994867590445537980445705713113668587040304137514433342637900595478369106628149958927834990817317229166587905694178833940933684495795335092638748790965996051829049289773677993606223923941042177676329667892094252516414085906405405953434781040359611065272885511261715479925424298798991292856886405849449158998013467458846801528477356343227585639732147459558921482894015497959015621166445966011067603983828322099699793809300439505529183600215677114417155183749026548593638598192912229103102847122020607849926179762590197391633371827899453783723000700426658339060550030737498676608762289385307306923560813260235770726865804550870751919355154395381821285649782755837687149140081042096310588658440372885745739674452503564831396638634362850172584763240808002355796033273816475699063986773577765895573221938869887754833709372608399977810721764423800014772159593045238931160552020357602433695894742346014721644124429764613710341154981738490825984733028153740203806721676462825345195585951972879852869703596050119975794205778733416384721789113860676368383222343485333541566669803115081982669098234851651614975778884704461114755156553871127249319067208358516881101352090721515238771323828673308203828615398614267191567104032380580461512621889024305615660931725250399328105001416935732333381638870414560356700838490518651083004987601754249373822242991507098277622060659903123984465123203567613148213422418941101279248587725893415598235927374504075452163642588108993884168869197738136403517404626629227315612975683526947021532025830828530679770702622700227100976051169680482669050797451619745764507962470695804100993385059150206517568759415226689213773822500804723833988682105060904714782548589139594632446352738848266162354083376252064036992953096725706723945138029909417283165029054740349761441137420121015361532722438491444490892839029573498054813006863706119215136359350881132953726490942092534572737194601975021021092331685770850175349093028979922209296207883019123268052841883912051068575610736022994445809127097662592506752413085715126897844626035725286985495936290293006536607774364164125222820451977380317398970089650851785712259941003020302003294870983037693202974877042660922315792022497173897994345689834824420210204347967520044187192803699964297469196396274035132085253145976865752915363469640419954809510558779777137029910819601284413557415381180696193801082618725455701383868458597186659173728804459314772489486301589093195701277160060885135365081276876092627556307282622725224665179771330965930103734017911407056020141662971852992249111557932578458373049972974923517374508531814947269733430157170433800778295600905492862980532335942965170194099496718924793754801961912851684094799686685790904607252378099531077475280775485555620569874735176166266746014227253808051130473957124329940429020670157713757096937441131350730407373801951880070896747849325063603985677950085795846006927817256511651488767238507898473923741645541966372889157447093295761920780122087556192141566943682526575362666637560186444243967228752153652793784925063700649724520924363479216590556487923743056028069497501119301836588300142329387043684919872317627195358661447728981014992929751738341054758115952180284674414808586470167079784686985905689273978981201797853296254802343046540116606576414712990850563633616540364663760886044901146959783159387379852854383295276900578674756697682527256609798754173239272942533956218791746167097602828033387764684504089294051390986450654569062673633284879157348890993350933996188932844841053267061062364919813217787457359579198945696652559611180098454498845616170057785660571005325143551236397944239200772011453872289555358463333055533008986561660635754362510443739694552644728797277288061340661280189420953256355983774168530327162190305597649006725473686977340320555569361069674183040967348723974109495972500315078289323866036256576477840575290494695499542780611472792237139256209060972780822385792895848592505719370110982870125726769897116801155417522410947885367720332140946592333901615778343410547244657655448129569918177287748015384271521209234242737550722512755711233462894012614850304070057327938557243079389275248654904017644029963018309975241455591676981397834331927100862105320704755194048870247635562934237075496024022075697249319469318851961441007794965134436206254168820227869281792446511634675514217980760604341996919450463409909090287061426432587887937652451828454861738540974109181662407513988842623402706416112394554048840067528724122070105783580888250867247763787171980554272801584237415120742851252449543950437833038720943082837854308191172729186017047159916881672673559169288607025689493641922258610760870285032032022706257562577841246352034754417430173792082074757792854438091206970875747481983458189134671996743950247345548682835680252635916683677786212497154578985196584745505071886011360163610136708606582021154797848536278906729842859059951874363221982365641143155080109910702883630152947874896178415407433754428217019165099083502478047686435955852438161594805997547396089871928061018184972834454189028689938131298167058417562683034945932752299826667931715623045708264024025623331985890224182613522424300365383579341529734767105675720077776033295839815537699492904155573410223941013947258563671459128576107176042549236900248417092188655199827473824366062622648767605214337995632753768429779451406080754734485590491420132597911036681541663234000942035798288247956334680528918730549634234393476272818804783835310781345098382263966263185219997257033589362244694042776690651288310156240611605327525853740700457738606446299593181129729901352709793363300798095599342221254306126904132080850973598902432438745728814742690652331720103810918222045193731226936516023350609393875156879424017478444035924466029907017981783464489264965012257749092449272166258546755086123846692460476694272758751342746821595484457844123701689971465307394507499159929225023466889102629616560264633230264851506023848593205453351076288017984421077955415184516076673877051430863390202404609788392654783985561382807304233967685284791446096150922021888148934659376658937833342651404509543414724518564614239192722044405895706086792525847044708050034901976726660869211975450205027581061422215605632666948162458492928203227080439626920324365109919688488927640225425083820189182103053065386133851487870831362716914405905327937722315423825843820285855834086823781236816776649195034306513421056039401855785253317570135402217177882515259439120354274838949036723173516749901977646297929377749901087655618810720887616758788409436217692864062435145953450440546073393670064246653040619313655327513081992315405841817975622385497289290320641589419600863658342714580767908535795571554869183922940982200138229088067354934290809551064587942139364573454956050094421743186371906609904099617235549759975479989326560653538465654301000803244170987770418827600194287670338996085286446267937988776232736113391325726253611457884352288517021694188717038833879051657092180638976445472584473221141240185544673291230950557109088381370126289008986766210169902209710150661844955778548654950921351037144299525646051771271422953024548755293507226801481639206357618151325675747515000303093655840627042586420789984540725387161009909346978383641043981941475807702758590383138176694366493087303248087396473574332366718130106831594087522213939439132207495933289110662172415195263840088441334129648685578338692151083280664192967609168934815931676542608374344785862223883075189962772635634223349458211361323967234281745908341776785400829391467001262053938292676772249311520927983525171201267348180434298116527117134443501993632009146723644635689562162526711793513968583347968749626117034880997971097079455712353061299053458114317986001054825812004700791345738931052047083410912409645521540990985580424589904419514511191132093889611952343313208465727656051808535415912859101742861163689363927804495434071857433523632149158905254558700317263626525639457614806700380268742570989047969845035153359164677561381298920810825834335037055215022003355261632897694441478050234609666021003494334000904921822911421041933504440128534813806219790328827992823252586208621721690961559816693931431381219955756130606411493812514397523647716802727333898841021513280288772698857077873991429307493752943597379723533038295880086880099489054824900144208801839357321026508141513244884865968719717611291924885386917689043210092135866337610056849474818466625091892999801418903116696480647475627279966916578864537369216052788720490549226538922106515368635856319321780093976111191806577017842825656793370487383534722915906626780699055282745199191033842235290708394011896510116170866930082983092361637670085912422251498447200184037968039917070445730079165870676648691640537074034090630926129755851491065004627210970525756320973025894250274819433246498400951144266022366981909518520605956197085882454843137070422005422207846662757142867465953930663942227038199253612285496578973750183859512387601489267960273469056414690896783059464313924420721973267067261183087012689165336284272028336142101084755144799924775014487833917901009511949507050019979101010584030869049605597759639073273472901374150811838869533338818230507268513280083285517072220957896632875995654442815729244277563346230167732799152539841446735958302839289778507597858308475001389290676881705956149998468790130807555298360329807552186796839955889500636101460117185480610025239070036717999821579892391520207586026744197573994908907831274211203895932260255317584578132104880292802361021243804430879642448875959750911742845952179148045740131771482610644152336525972196368960355305809596914990557811276382020362637173588594711397724816996646224942027651770412821748654362971926850755800465494675744766520494868616699035316297854956760899411760083607135842160008344154754290110338051470645104530280384711733710038666360051220202712591684910737378918340801198286517995644896166267049344847042116011488837942485086130402594782537764183122489344838442469381169923521559279822107857607907403127057254745832292918454878643386206992126473937430947305187014838872857128768356407592591995528461518417894765350703726909267934342821094688264535351977925637831528826019353309428220162829210879923747277007299357613830791403707491452252412920010600078772386174052264496240215236124571183615153818744880351924375408862225321505840449792138911151304060842029322602070611002926425651431565710101726933922578342870906756779741209616403236214479871623542356823153770881954564574189321171030407175573424708182277308333952528865875509199499635524077300632584213324973902419781561110314659761279506095009010586011107210138029842876655683297893287463351853147185449184541410573503580192636849407257764665071976582950374510930183632870223044880742586333627953025680919614357758235045487215971961321580232097358738624916615430186682467029467881913898113590264106972670579754434092427587954945219306762374753847855846758294192413371527378457563662512297630759540899777998670290819300821502396807387660360671787639686662819699132740994242417115718728850245458609082665916033022974539530187838516457592606070157941975954480772084762941127473958972710449903110328080185035533538173583111572175707112999689885957363991394856108766504988046737823029344496895179179190756007218993431480528350101450288747156846561474504333662788662613133385659972928941059337517332642699154163347165885258349254881877216303999398730084812831119393178755376623845187677141173327575128637956090388765370764786473574366268446871608310709529454476145802972929079070608017212177661532722975761271343905952149901911575257731360124718366250732786932317890730815466600198996086344942523348356073961351985487513973671530342103494974105844441803526247280258542739607810433169330136610033681452496908025582590493909204172341067386431239133845243581947020922337543081586662781411875844070559924931951935299111092114459376674159272434871420505200985890768896754790994113676535760614047651612906084950974166109016325866067916185429518590207382932274339052872887791942742210164719062123649280398191274204328760685850674986772238015439801632693962288327986409214607335901572493808099233045029374593449196100740295495926770049879337378626565341374647962244643583595039338002272160098197801750022352700030127508710377033248223731231694756527227522727225127961745298748419278448471705533490645447822885470731512875294397048710813670549325402891013728105158860824872548545212491613629978314891715878721313358689568471035329242848317764337825162503124567748738012735195731486439364961859979603330504460920287010166523890776499632358033814276488923754843839611355121953356065777008753705898197837343612837485898676823586850522005517992944000175003382622818693022698967087770687610414188202449749718102038372244310737486055134276458468205533139335318591073541526096823560388893545301288989935734785074430577660126453201267977606135243693425367721184119770776256604455008612100099282782238137731678569487412219406928033252380486846292540576365447799341279304102643609763378856657498483589168407252244369570789161055026310688324532349388127396016447709677535600426789369230614162051232000807667342358508842012991971406316233282672489992234135679295220265874070904746061683338384432906783313634644203282725367380896682426980549842525729793943716978512079171702246193201329960348346556162712708096161763349624162572573059245211568051816893846096600188568382150891716773033029717461018671805088421651210414646410072644481865080512645665443357315828830822195658098899424440758744515200262762164141055643309269906612003484233732027191979281224536628304344693890779100681469774209211605170879626759258158284937979702502858843516865137093062222129713330564083877933579037578822338339931853836802796692883377573231031359453376913872607641663859765545968484262406015036179047242760707496844256728233230224117636207153685856760717933217238800119652691108447707125029104733347384123360680112965594725701251517391762462843427545964076480099101426324597265310016180641294385497329489899113182888780375672475973293527768776826885955260190158868548356073150330402661283824509004702930053257505302108420218335663009426994230560180134956513610578015800866882205107530019711806424062949365428254683334647169708897062546886219615372760324872188290666082654406514378163649435698440624467984795731679075833365490680135027298955110482619296673763049677381952593824995462010135193022224215048746088886098579928300779468726480031566359610810447648864640847208045144101945661176430685184249918071165268908515147199928002741909924264069617103980392474003638353369320513887315621058681675873558603090729091965496593352760093638990997939473407723652673969046204374857869150374584995377173171311413196214042040781888685687580157475226897482098161306321372630262951596760359194007377297541085006434306491813293813399167909392557244883262926652543260330151526686781944419000181193136104988413989940398956581372481721271159496397867839765719845414581389780453645537260772982247739035716006031383023257963149162205406955920386242407413225089975159777076438983169404352057361791258623440021205974917874617837314607695512457147115364846829963422210914095722646586511364813658572181961507375763152789249372834588693960367114885314588024175865652781578944263594655894716552634302729980190018875666731667151781778343206170014168230353958570612599599887579740897821905657023074202572048081485935076592554871291983294022127916304648814121704616969057854593912438878305370972503167261379084124356439762296983185787499678241555487143209968505079957535747309718148096689491246772048415395792397619404384360421184392590238866522291186619210612126866456660062125757356662044677676021982998000608713221162827654814746994567014020581263851831410438722820684050076555716381184583563661027986217385561652232843240269958091187066202940395872725305132462761627830691055206275128281435105039244019848383903623914126932020140416461136523163273965098005344876457497902583510741490199004101363790144320557976577210262216632081821175441908726206313405796078482204739041838107021854886950205837920264820435874605970783082313207352428218434890337251827468092811512502517589441152771563442680253254306665529053696205913570461706598199344896400651143056319489818715679603168146032879393260308170062121247207453001387861740235603530465159836864186962493661597741241451777841652094755334509231173828182474620414059903874781580847096250275397238788721303632894334820544181618189388425981043850812440954919418903506674146536699719111173812183284883278144727032703701823855716514592107501290250477567940003659845313903529303608003670151672379317522147786416414675620234633305925995177527136258386702370368504524616602476378490928314502596933546168256742193452755164965611035879150143142528506174036455967351103061182771413880642449336511518945340499269241633437516780262881050916812806560038715889544367212849879477851047296362269627140115781299460743524133566636776294407613976051051946029313160285789926997430988357467143954399127453777541138338736136535801044656038854812049177248269020883089492898773871789121652872636259804135649501456657616415602560476192403280747851419707379241758408030196605814990754139173087376435421510236672950214424838872044321940218197607808442317790784290044181723339288290125147755038344326329854271903482616399537275153854153496812895247490128838588633629671883660384088504578693990053283615398634132440572615572464171473269275688409890693949367553691734732013024696274879440919692666745134551965052054290382864935351971009042716348052760971690497303750259609569249771340834727472073929260551023420243815585805496368808595118730607592103342309200985727407332763175794411627978895663136649502580628332556100232745189678735676180393162251892452502329036786964907392267281178076551181716529718505943314182145201742295167707530376696585504255599602350196162042616016332104156088642828764435818020349637044066548254500725201414419043954774184334900393418160295729752772630067462269148677497221758259633014606922493580735016063783055017627097375648774929349487937503754516121692140478105313720976964962520239057318018805254058034535673721184293539113649571014816006028548321677039439134433647485540667416204411181251326592778631328731116583213700642061384259280673439702130546977202983649599174966111427259296030164380672174147133906917016773984347773642404666355747619471176410784939170838433698556299198909054007875153370640711703361837423582248432230804384947065721631181544764361492298971495926808147672694657706520512110840161345029597928923829360835392355820488586958737832707014167617439598029347819884646801956218762203171027438395357124734726818614092162804395449180210297720589904576919705806043733368654519351753868089729294179621915770974692760259848415567905315507806743350587489781324888894922875598555887594004170373343887856788958163175422723260601670783026751450632265106911293597049024069547321833542304396045524150255952193620364943250183140411461897030049646739384966109561309150732540316157456926593758605126768326931822207581329224809772363703161390960721502444821078888162069332846156423814457533034190235859059227740508337378585700651503918168747901851279227159777748999367156358436264972610903955386804476731041022357735675831527327371997898282539763302748543678975163814595703103364267779211809431059900988815363200896462127622544089945868597307353909120204529706895717222138856559954045884471316938301908023763543639820933822338653444180085094651141871681829828783443652456418356766995122017133844845828510273786280880438549294717447038442166584386247660904418250012872340759771753661391417589433449233820868315431228556949097201921288779003534398440705564152359366415822833781757920253840073222183935620916205010061285436724280859816434169785636430562975454781085832928515229799462109734053095285144578971058541911489372620513747877789654942641285758187626527765149594655561664191419128546681049252198115319309398902748431307183840884164717415131757487679160901453372430985122811739871834397962055284816955137033974847185882497155137385243086268471776577800104563105184893589391575239628086313568033656996781738478262183669444003696503615420981853349905632314945466329072168340789069980937790943693580160851227513909980614332473759841677184884684282852763874457490491625578164892855280998547238337202017249798037239995080016027370982072014705000081813691040526021972947363725800490178332274123773029767022316334001046900027622759275315052838198495188035490490869361342100238015761393609941050933351273831362591116619584663288231966902413027818448218173540994689849912779466191445251052386599020881336639131008562386770125267771690068397099727856018322934885176804171793700699321956413372054393145131049882212248697148186452873851039105005337905367774749477774148511672445326844686962658895704107417608830982606810252539435580462620356359935388661308206174455851854922116637372977435179698312565716968035235836773442698012689177058343465273660357010207568340244589175482231156723609464112673977419540224791679148114905497740144251085585275838390909310738480862450891030756390377709619882781054398454716683852581631688611613875792833230491002194137160641001231340755184204819910096517599994705192944997637802058869312602914675300013640351753098818281158187469803791405559457071972865472633240367014107672646189088947512737818836002749657728749183410814270804526831235893379563208809175539205550657204264294541010246603931763101637896303367511056187786683385804827669686992417362993735662392649303826366844321243519027457906825153011191624236773170690808251956823498588997014685491510716693082434038419565334088144214092251752836300036027245002763282852507103428048855573962510693201885480845773871473946696599428905032917846369710325562594688359736514907505616213093946565014600875563383702226514276115494628752986921108270786905014482717390879963201664356816665056305541484380009089293571831631546152843790512461209622781743390577648740508715866761163892341618401163156093726961436645268096962399361750961639850746364400780725553510042433543118090391197371989257225521283102151542545772785749378256394404334761682404553101316918708148366487461432276355939954876337090722905115518442791211527573554297490283400120354680047676916542976351268442733228876198299926432402830080133908468962077876887090246548831089286861550446611773034756730810027348285389912043082134659029168999289750025799357699076044075395425271016084527385388369595288431717049729250900997273147480725639172734437389089358974593232779238951022392659839518939620137162744419256245616399981480806377839606184734450295621877785853425418303563516611746427443589194599302442660390494092061145256989753532306635113391507490685162675898884221948104805016943108581260558909299408116124444095391193010489917038585710939382629912214935988134204439789924928616126099602265238972038636433169992881063617579000110611208367158754009241378355747387430157299783611870610173278654385885799742214030883094193629230989169968373461138261659212988215351407408275956434734996627451668160349320259993601430166623899711763207386943535646020351246781305513279908983469728207333470010180062911298862101439959699312217867074792599669868671321892064917808486545143731080380054391813914916434086738139182459716430908418324240990393724303642826413272996458451470094462643231232338713192983779558243342222886314734071665884437085059555963795780496122405823450602502440853795336902280421162023275839502084978263599185706603822532859979159845790642083262955845101213958452625012601385697036641216492451028983026634370396282289232724824890448780247539769622186980655901873726466079076632354550978257654536528234178805658894025663283470188614309359236400423582657635932128653824381894111515302980754242962025973472198562525553286857659336805677469940046381509809087220153583698568818918765824117971347935393400851266813410828578186467185873238056072568585680157176425262324694740801274785828977959672670633184264627618099292931790004304527943796314278498221094623716476233222935651554136984569306036101067078970624898967204972294327487885845390901301671753319579279003431375356289403426469815565207563409748402276424955988145193758871431270603472157184411171479896072630803602882027176577133584149339216611111333688349686381196478171161325232963203114831985129027424324090590865589346678054477057111400583120830985264651272804354602218060321333622609485562308085706181422131900578977749005893308279136549379676433153768508166473330133996071840211546515543327764112062815977945291975080808394157500834120493597336346454017609521060931755010850971297061237792843471002518686849069241712620791206177559073181557985202891732031333938870808272211279122769334383599450717864808658144896271084191393400464304200727860923115651312995397200775543646456241406599145804607117627996337570932312806051175166944299699928102421499091421799809154272265546917880033348251379508882733652806226570193519396600585623251113741245608288490616039568898396813772030405852299192799509964960491465584374455526550427376703747241053495116681082827593258510125392795597624262480572960435592733832137310172333723781895929695422424859974446580524013874816090565490862118238895880752815948076989732868197546401379210403505990974680282144295602488084391377925846686516397558372006321145855604615093079447382009653092815029119837503048130351317483859676664827231078833764187462947358245734648827822677396180203359025978669653015196792079082858519306675790422812285003767479907337314950400650335112688442163604284117519049750993180140416086432727879466609201369311224173937707175555561675081084709917004760529180185932648280490226694694608825211996298868459573984460517660515255263777946796267545308200449794474161066736825924790406039179926527415484002284282661863666943039353879971257028184645002327500490063361602109605167149325549056848028514956678863468616391096246389908289190930445827957339085592366386992551610261400585018364099818608340312898429133388166546121345991147272770245270647783584020241571193931158922949435147590956563464954511089363710040253693680678488071177038635675656653370403240680581534263851864685987909900321496852310876064451877209923026881921547834041348229564968780125349049344895065467359399606436656610074983069575496831223377206195834946821283216093807707568284768959364388904507425238061535446886965546524328144548879093811715671786945312134447473692932223498935882192734216806562424304369915518205425993348265432178097803093942056224005046338096675567954026946177119199057170983768477778511444752274315337498677504886316097775303254969588214484577759327767847588626744581122624833655250836380638453517840853851862883888125520719931098435762300250988023291517542968490119600188170888575826894168530689611472532340270304114543098951757251543134336013069139020448976131651282657166761302516737269492316816631982103348018456157170706573039862931285976017644235576256363305669363211724554259052102692050411617625976847828001070865573473008929655476366224736804148474162328284818142720050888415895879865730540719240399574372257377225741382442810013557573303877368284919980448278750585114663876377507405180602647469112595996884254605303140685721381270288974162787386999736529885011256007182518552513743012970593299475050262762004285768896097793879573348910216197694301426580106981939299611147821921097171627953052673086076828958141448796164318933673471220915623863949737234827552769991672699630361510187980373875205777202401084186312186396767243226128516890259889342357424727799586558129035594695722797190141216877878580594949355053454996808515640697771564026634279227895558241383709890948154174200719481639355967876947698740922275567216610952446104589141171656416857762100948163712920226752970762802264536129838419193890125917979009309268652591905101875647802024080165358248067701676231167250550886196380489483276807640278807043227834892492754378431966417472524475584611640876660093941451088670032763670506631917580637008516697761437838351821507957701962961730044328559004368918145293952651629738418331637834624080574861770455034631414409039080063036297801676402266336582536049317008538077014666090533469738676542407799216528665707963779511955449689848282041255063173731129812964465202520415910053025737955724224713299661699113776520488552389160337803568573853039514684152764046952092849910759480646855595484063853527265163532209111673490387287809006214878195379610359519961812508480390812920065375384897188367946232347147577281745141524452351585809144915507442232569859367922839351105799505184849649490651498915778444202504424168961346781556658436395067783354843917554164760678560666027056472490629947095543126682185472650618838011410526034480114172366555462644988952919121867981714607638292753856714688205173558194086654401046945690092730388953865434701776683767389988969901065543829081438630737321095733940021357000004948660002807796177359938167309965249904389425494559394993501925357621850654731774574720563520837664168924480796764336584169138900382646314632426725003959743853323730351761923297049218270481294337583074935179335340005776980275583640085095245207363586239988068143529784090097680319455775272533382665982239711023488220120495143350637486648316745723995348620044860190949752677585246138189501494341899850013257083164168961055785635455877469546467273884420214621665689417498936374541757866439989675891801527514950158268057489598562734706929373284436104233006508475382314108573068110059874172490257340632887354361716737724958966608105960449194929677173073116031561453083438714954970806572804869203270492546769528710274868357866065003404243469532740132073960912082211576835535488777126538015962652352382571998713570436447635294029337466606891565661195267700914131256674986502122517747155818788675175126638696141767034143203725961477490390175937626529432382337131676886209285045352809188115713143544669263623329818845303020325903330659751005328705776118111142882677007948117600828671051291709006757378812430678209926649743628258378837345765435404065380053644089450169278473374467721323430135159921019155958287968656483595547813320276000390604710573712420230188459109830207995392213337158222723568447433003305045602553369412803266498264880247475061757166612103632486930418044583558443459703590800856086825216928326254229171210101065770329149025175086022554297326484660723928450120726406259401977296852477939510553457650152020499792163888221493760750226834086878504656973723381513289907529898290049988849402329683230383327210452386203311312077737041093702065840935125552132377316499426241612665997476007614338157862734195466038881709990321059126911937013780946247135643204192127814018311921457269614895588072891738827887696469667209283307887821596715366709845149994458894514326489944174422838098517621152208871354066610833271698698806359652128796863044114204434746809521479960969914555280364388124639440553163855053027803991425156749070466057926706167656892783681062462554554411414656394706452156530507813648077307728041356781787352481972732924158738960084383396959271616649598904371306077688024769246496942053735111956566363140504681400646082840610134282421444322537420335518944576276307055409877953049803345997161590314228320642702943395283762508745603969211241537820400342096909565793126222668222346600067919869645694537742524340134370904910618504377267431071780177741474913670481578103856623218191545805678459411014011613219177714632279134316233569025085343371357238673679611671696097177558205880665709572620119298474098349674981745232656545174668296098360742572765373662412855315353959191986873294638149905106748874726003021750822180225148460886844365228131563241892331582035317718568769705832216540180319952190073672116449650691453710121611547030172935306283471831517759171480367379569786341426051221369830611903002703805655217300168121108960146209483554854401341681165521489730056600049045829741476608520727999318812279040359061003477304656031837874351076275073934361598299499531704448708494536777126083377187814631562890859987173687108618994734167439625244407782987255706276939504506549518243259965012790722816294883367749836899551524079968297415116189495905570461746837783596346603896077948656307638178776293292182458675364312391780964744867776862726982329446327291369176509535347407979743522392848545209983766584975465790543890169000275665471041166488378420937508520445478106396696351439153443873755570115503875291353801017937850000359610614487870121210985826865081994150523778098064771525417913059156034069723868020874140299180521122911533880134870751137393372164363460626400136362304693757570710920452689282325776999931123720012528963931671373908464572733144565932607211413489865371354526325638198864464525137997666950790071475122073302665945992823860813748131163118253754680642706082835305667851511886663688738131689752665359517673512540256538246917406715739837301863511635652388821277972562114927259114332784114289934273845673746022241473602733326150353089853576828217174055854433486858342518194339441246468289048387690224600469878782029873745807614816956912558377144856256922697706328513964036708154720374748697594113564146894094127234080704796382892359062801301736226886266767755221883855780680554838429248222160452947797469503319595634583979344759376707707854839686103035150746985675280871880152980444586321395163486696348719787159125039455824424570561077144295427332588908482552178962873679283148235443872950363853936185895275747906076290296995448930983244490487657596208913505649422447336407153251396511768777376336184897426555906648880326007541344753225094917215141462589613434516126345783805782983388164343780808130663534781728688498680809895752740871844511678584109557617882694723326635733314431617081396315398511364710104192042784189115808101587297724150874981514845482675559897851363138050128655558403463597528978232335103996152987707123253437944159380211711630839014152192129694526015053714323548214143141992595583559708292019415819521305444281572851927471111383867086008251576109187632219574345779063953079158480810723541186718875603337989498874485379571992915267104566224030968747768662512237296468676818024866960160177183826471630929227324907583733898695496314388642089526190720717005947397117951956533473553693162006989136490927041326180390886243056806274122122194064004427710899138188827476667250219628565336016207227584925465141283629066936812231122920186014831955661119457732400520852477000736864140491987090557276895280751325723114366313644923590812668586790674484515940536020835343245346338117770612391643539733774465610670038726481183935654794137980520783395579747275065108907666035947380855288055709654140407992944592369015922901784206412783021889538818355201315485374490346173703243121218685537388510478288233025167112001183241633096793039509955171454407416860606867572383097779625549299391273856377753083107245112880601186376344819998200302787767235420922945802988246020384072690049049698770904943711401262497447115812754346006725750301356936420377509862461416681824067739410547006027101230003111515359065307039379056933517456537735167518348244384019852279153683129806153360597846948351205023478303229138047826049076497034145052747329744196193937290946039437687485279149121070390358957682678063858024731177471610408241460546090962044457648374216936543370673847385078535081751102455808024276264121569167396021371117162499429467958386664993212983146988041736342987173752321945857447809152145053481425503926199789659830378653451036192298883915408788254830725585743314022622478853864475574436457744162744868275209672943072259487893486460192652421844039059590784845693198159850352348091134716151436288596252523335910974166934866859460372450969038241261207360700434699160456610751376533172087209423466811754702094989900949216122298754607687054798681713286785414240778192548730738504256357806501086567517522231543525377979898520166230503568709766602637900934139408068499967123671664444384732329006585290747089922367861553835647951056974035193519770267915845858964236872565987427939720087042239055035942174138272828631531151076091182392444016925596248943384505508081714202222948596050793347622640601967037356588286428447207249679360263382038879142687262868516080099526915826980720880620529939710684185320188138082454671946801847676911875221313843881387093176415106305832609707255031189566327602030308945231881837151373412524181090801131085174692545473068103972393907955916879011799620422212574099869786148042012778347275851536228192085511675373223848820221985934720939757442132127470342005663519712026038144968858804717306701263056902313086213991889927467323912337139958433469908797141906929220792407314990410065808609329541082454693959525742814631754144060743152666077543240467156771760612092026903130148101580495057842612749455086894677399000048014024214655251568410868716819451623247269496818411047985316088253583625811094623137848096170218303978252617904300544296141351833999948102062997969550668056842624333592279850695843393578719680459251038961730450157628791607547409333406279707601280562825532581316461502413872598754100714281559576361472800910582698157544195181992017082047876028380684974735201667402503911595427219430670013442592206588773877914091449244009345174532945514429361910922544715267195223079998776753511554346322449964489972240384428119847840181158073547887222078096815752279840450092947825953983802935886017490336079218354088845016971803510498858029146317881553160388521640078311250464744151165321123821083651025085717357456621299792485711387393140571620872648442589410994632397655638946126738309881400549991872093624628396887132583653968029214254852185474288913791594683036226711823372456459007812671770810490627650999410121984986033509174859896672199190773688794263554979240313093765240970621453001648712790929792443003768823409707236677557755799692005403103196313411693882620992432151154513505581687611818586040737440159098183636409422497738378621908548837764742131060174950348039383520056774366412455165522701217345209154546925169865840422262886897843295231891844574515061523512290599958067523201220894490325443584010019047860756917462986313405187904334697914290914858035229973528840910526404451729244575459951415685237695970749708747341166269786821566666108353613678230988411741048499389637442766415629155513651227667136229015730272596368109753267503725259384111319863979646933172165111560890862369472266189415472783060677215617088765399714005974923928617386135938171747138475670110383432401551833587010776937765424840442359495033315582935597213584704235037106243545466676375996800070008929567030421997030141467750841413763056973687793500499717339980907079651479459992096451948408384336358709301283035387360938220277954759943467677816481890442950047812210603917173045292810073846550528642190704747580361804228035581702080080765744194048018002818662041604203657289795371424684349176135119607125834928319256021545173945302306124101131264128587279460987086585467769695615520868533211267273753000308671775944141801154081649569766884568569306313773466085324408918601033275899356339122633464155451461440249464540129516343549755185748338733784089389399522531285458841535693345376253129805682983622573499770142268919721067032229413278317626291413952156087750097397648347500207315579337700869021693143229764586511720628373760465406790678917577537661403001583763412411685408467561964437078683547360223880064065810577195125014100224937547316044915506248764497251722009415274562538933302654495600226602863218854547730659231147561251740244433727595877376672088211112165386719789802918069631341074222076923747258105479912345086247173997632649250936107388007676776656227969297219819598920242878901752046717150539863860094069590795334923593975393672517388519077859241430106697372369308796322881906930338677972950649311183542001037422158685320251080810444406244357974936285065434771680020589276437764033470424954022971749257222373282653199003434869363787139813182378787629175497080197882819245318730343074221720541973387196580975274263072164280173545330900623979688449217315380165827147317324301074187018870916486252310113650350324948865742052027204355120132138218680449309337669763895206328039102253124871783321833553950685387571142903622815515512409233828147571607843960831926200010510894391039471854917743770431390871355465081086684964227096762990520850091045275016503928112159737489591422674519839054826114351539308675454111894191050830037657688530009323228088092971338390718997947478298482511476373090382114231719455882341752297600099679411878579584049654803412305270720287015193449837274344495045562655442910868933075518121067564605111288663213162574263834834963930920139487702592769082689408119376459210836796583153039383971174500239684882565974279646714930557187972268960973553490280840183286544128001283172308169959491678176999637483826566302517075516473745942718417455046417944498506132254159480654900304846771609285202385376825845526353539334948494641236355936394162877062735679098041729711307660149451949360830294524390712120473501739227075923363169386748917981768381001459203587377514935620923598944068610204175137032773571859809607966798875606409705162331937736704984488658907810024460030259241970037414236608824933821570500157498462626733500184573291803073626413934543329674255659205841232375561455336176298205156962598466292575104700044212451819521154833369570282093344908599343179499172807519018297127693822737077038716563048195034807155068230861661165884586792882410191057754222443181680202794612622893484306061540428122991569244517745185251799403201748814089913618452495490205377852846241538851969088890409726762914172423439023807894311664061049652476496046733693737474225733463490150305828665527843672376333694119615533826276567762677642997255071704363666858077703138527890963884254794728193211520024890247052294716384402261079139733700797875012547807638479084455097566863373638962225419953158515457014844916943273261141946273960519621250419593534543375352431077224630742751289634565419368881763911879167968597623674198774204665151197326156813752078319216224243841308402350434228624562212309683905119207534627193620020987304723738597457460300566176502790309820422575554032787239657533317988188888182901803819597095638951731358726802941453012817647792608596308168098375351862994173924611882345702064635683895433468461461695905252572875582670400164974118890803713532222126325377679983201451445193731926952031917867933619352923459024562245879704956838375823189404453541582815245901387626357417971732139347978449054700112526575658593320334882642480586780166089619230316414798231359887290158841759718871800893786432463876474798484784523807054936869013631086823555743977436878611083267098416996428261607982953158062411934298668396080665146280490935508022042126351320415639209696332791847469663934700191692558483844252334800219679561419687083119271196907815220461373532118058651210244710667208104867026897952685547338601939966772851378575696226413392608515336976910902883494055700708951582679526887981862589199819166196434722384273636430385902630194560144651685696952584222156430259112731865300985991233670159366662834996091862244181799438826353969695981588516330690695182117794875023550189034539924989942116988624595844204984925887380500719308354220530581703410920607199096026333128726803383584592852241717540095275470218680529672327127920654688057861766088199111110604509921642131613239439019686188834796377414890232546831599292456188218372439811041113438115394829148497115907661108983319865464781876806662576368708374576566949138169974688575178347134668523591461218287946922585184552935405655545301560896715081832665625287859479219539358985491432682739760881910276245756087423053325161136965392196550892437101475409125572357331787582759115192846276638337809874773845543917784514907581388008742503295422917963130203195234080011587941158380995532566474605294182656694017967344920824893102479684119449272759885257749273293156287007140633786370404620336900239432108232172134121126554369683985669199083071768212049923116682207113972276291663853389795590639191618391323654211847593091380660707028475045692878538695446137209107334431733089955866915808354883308733317868689046434562427450365499408469872417445779957898342016254357945465964746415966727264498646391937152042027003611916193230091634089503980644354556076780616547263475451288059799473107894080060243197984733687046971127412142027576546639530077629116977511658364300074402226481885303635351083954610898366660333224594228859248750154688179620845926087260980188318338469606167775695284256150653114679485019151348363170458579657391231252558279391270904640547102339862645966102772743553832616653685297424051603663931187568000747815004865434555859576256178588703462868497763024221481072126320332736875639992698844296310118347246687649666345918785853729575537602485650443322781242577148897314667602745679525969955273293033478655888729763277947924473018823687348315460903347944222824024487841530438219580223165774472888462142852132637501304025528794164335526373584475796915291196633618818861009690332175358050585894873672491107323222187325538806215738562501613813018441392156583540928896513056203824578083687939726876025566818835409260954928122487974085975558139038514866598229285210940264901926315285566296419845632319190162804016093353407111337963898968737384475444078057058474816941943966082165207770149493622602075504330838716776134928932490109751673678506858594476041448322388363697653526912854172236444420755437426600242493689819919108089964536797602218952216719930909634068801778775973273413095844115832766150443794017696841627284700895731781388503587478734973812482748439551553631335917479573818215919912357700014450859679288314792123490027689816309644311732528949127646388178484544287629660610966483223113909609524208558198813296744893211282181526103540213353289870747324004689740789100947979256433806468429751234825337227365487870842726126614792895897460903444224370924301657522095834506818543974585453546390075200137843362707629788916722167089390957735848181592697635042480590372570078224568455895484709063181658947327693847872706940024260486455768646749012552812957553496971215386181014985740235454757121389298595067476686973225708884938593267483008659274581024897308336622993011339796124604008402458573279850470266018393942944622057210106500398144398427312753777668531713605030990055152591249623296812466407197465600277035236912400305292012517737082129078763733263595617074940728262766029112582716435010483889895238050166764317228951741299437406193848977371704160091005007500433154398591886715473490791155912763274897086845182399320160546772263229021179747545628553754183590517949972176685209998440127277193232623551174680378968056131999896886329878607223100845671491054094646362366133752507071904461750008001031383255151384749260971836108227175526286708472922756624625082305266549284732393206177665207403164605812371353432362599407365079598430422475774192730491068351464805493308993233951698704237558841657504042029850890977107630812157748380433804144199386555451706283606892539774642696161152370515976737046128838071292335551676792912263041947670011654531780992245202412842731884883594803695108737616961146888805534954699003016596431677007714803829483131424771025944250707499251592073686371744443850181388297285437092695309006249030439176066423142114852608967497776187374367835915231329727925080046981925448667923542377384532030033061197683366105558881835457325776829428177814198460929323203893471445811900134353806998087036972808992703567685120448384019610879102109879764121410483468552517652131906194768926469195147167436404077357789829175398430089388009878930453005976759783644375519080602344951662874363420042247698197511425515830513106462224709139257708411514988628757299445691070790417528453653149583289565464788097959033470010210654711239561030166552377765032096034556488414951968062042020496776374396790713802344216277710056877565170708612255963629777922532944382324848946532413451218452578788451788489371542425049562440808264505017897358675534580021873440488705934301739863896065774010940739905603413085931516818243204947420053107256867869198793197365227013774546933066328226291212162964123737257423800721311187404687129515107010375938718721639957134184008114135948346045134423040809409287540077222514273529539731724332920630122216529742079117408519672946571886768858845553616204643291844368391219740634923127906400677255746457150301100703274257745930649262471705253714150317391677407382522915286383644484750873735215371011377620673095975723216593368143482122742500648209705808175547483785900474182622323329390550863033415824043230869369159481674770060211841059493052522732562420655009573911008338500122224239319373491374385054739207439736603934979357944285415123595891458606947952718461969937978418698728204957612555657040688881164361387394709050390653897797553140491055151791513420957898812905563220688688876913722438332118520765948025202968352284194841706725152647317799570852250730574264044123361464413265257882175522772269887326642899440484825116379760711128350758591728034650526077018038293296873041700405006200528129341672597145983291306495957916820575247856716564004685018233237220941234846863986880146661736037232341014086305510761299977287929553486190221772728607708531095037432978420541716026693816137643480538563615477002891119866682353182355489993017422226979880736608486761957918453379578828832749991966219001681912637232628731857549693791425619509251249903786218017670498171525781466687177885009998731648183893335290001214348014365080595589834439627220673829175282689074888942533118950655251621931831376965446738595774621846847454434239210603912062537772491151631959347614295826008229768816626860969508495337403210573855833572619822903207167766832229512037055528194733571382940078208765970038363803526224470449601000312043958808336032251454447972376514703980603970014584391570375884090134551729009054330665791834220664021115724224894997906785650887316125947126078576151379618562564680442304445674457935234760866654234643652561480982009790509620093601054748485169098641086573777493676074180783824510889743592624428948789550733125805389138814446415846443520595870235783035601467952627956343916206587070626355822488656562161022917012402656889247791375453874363695091639138649437234985568523319611377952011789098171093866237727414289587990980540806914585514646228640153927567026129999104309235229629667248332109837622737944342294993468236880363371474920403112715531883133605090560757231358682265158777198138647443158520144863831948184750335575152229534294941020124527176080672537134934551067890821616832656683571487830134290699181806296090359801544790364464168294082442182767677561394625102231848957118044743669574557249871605626913931156007323393135868085126304302420066251419831174347789254062418076971460347682846784127658030266792459698769790474810760998677973025485448966626727162246435210917184522343494088202817418580223114370729051166192557510047330497579346461239246020887159624593053165765460909534672363392000671060712321903979242304392605481794901663554853221259468061872910072263401390507594500091732396942109182704884694477235678847520144353991376858285898192159752992658866501590530003127712017400777859592072128596418379714425800663535051973379836182731097415406307644855197923586851776524892709086705155400641335224039232853524841567507906361484171368803327194843562496675938630326366192426539349202448550712995449911544416889549305570251890138904787740453131652670718200777853090209337845156659679891315400870758708772051742419073777031641374193524929606580940710956225220668932225280351799022064690180255657894524976190808712551374443509419540629811496422813103254526382145139908137775850639465272710210387653145382856575893688787951657181615861136316653974606633911004197094668107297078451740789257716153183593471507685272804732719385187099763921709116648729927067215072437007507756811948038765062625641673049012245422291604935354779855317812215302655006756293706452427448091421850197582473192931587195751447729034687189428616694448132697854849391122572516776473501625767982105379717980819009484495998012592091966862279987937398035725384845016710701386543090762243362106473383954733056531534179069555874588465792381858715319176633948832610819899052284251790886308304535529568871514940026940814035048232670747594318390571294112970921154291694835228463959266942559499155455644840309875233498949083267442910617770729296909234259352372892107228273476382986147974196902856490245616300799723016279332366518388296612139369250611720304360715800606216937844550347732059186710663541160555925361394508829271360117734806246452642186529425746972338182439705367705999235670225723999088397738969376579923645851397752408494506366317154540293085977594560076923043729970517128373799818443388459626699951792031530730337697620511335213450300361605888437284613037984001778627658905962932215301870651614296472490388961119731427950698007493258133775893206998607494817441135380700415049103945147790448065593910820543861729938081275339460893562759849121066052331340069803480107542688162226096508732699713224568388268845086181811340439449540983265051420158224707363084687731236599005483491015119361665518075809689393129347276644687916262673836434824904422842139029671833396660487656200815115930497937607418485541707732860852280230415136929435470257775853770631430531295400601141308964616976682980923384748305613267190391208353658415958472541042523204860378357424486159689054141787529501866403555870860965075740327004571005912059109645739428156112459402157466053865633409283649274359526938102055550904023864412745431130188199800342677066796116264633013604283188781171981718166245535208370348123204719260873076701636240508073961669709094290437519016603834044387273073855900063123155221698464907086248518425382460583241870061565387360174974706643796591105120017101051140903778233171405111611848904336815237145050815623776751971972022078023976086290014365065840995001521866535552630178326731359918265721135329456438903818315485659312841804808857389165662628558733193037557047076849604854235393850002910732451069438967202145823502812843037023694151703593707017950501364892985024534598525554242046414862033775626613913228223848521010069550999641893651369079408953786394180111005718216247032880317567077636858095826600069170284423981074100433808718543850138697407753874133732397444084305290691999644447930723425512584933804199755768632407703722454096831629727820667132715832191052716043049710568457628615346840728601665039751107666101339513268510491391653406211943526103726270994479526792362189212458206053625335821961134633837949840075961274778498998686412539496365592209758455552756971695491064320240535901724056921146731557638572480452558172883642330209152788999987328432641764334378390597070365149369959861683912794307073188545119127555719996487946764188097092325796143374580150582430895057257428932059979386780052175565855084586182772107834594075933163931457356407082271913405806456236997786879974214645056564969835607821216210040181070634107084827360578708029507902244311934958837848115399238041693921575418522526201257501526700714502121162447154660135355133883092927071880659929884046618119675688103614503007372251203117934556795592795451491237397206563841033985108999764215290641133865686789514504193223809391138242117967437667459648086398513768876501609674608664123851582098657752852382497257169465553661139127950649651165371991852148044119323604536598814451321463560468898924541266533870716983039079347402248199104080494119385586270534250563991074869504854479912377574501337360147654802699463808382777183332170473904327506654831447215305401123841747204812196349863097341221651626724654721950151229985860852079449447846795949916737235173921374568242646115707619989184465527343992012243671703137035093584179618856357931128503746501149091926970416245945320900891073694173878325319669793206233752813207605695160510079244714760601988915707444584443669050151962126759521609370180282818815939231442637903510077539889757381683484711125078696253432129083221633712325619239962353848965663806029250873479637393049054592832864643205794911766604181388189989703632360192229560222784443300600476520779184305353628287196769279693797248252619509737153291952256661647948975051185332698784182921141851718419740729555969826042510397208643567567013076508608966046243694216958509610424844536804331291908901549058434055526674129240045548021059039030636839968706880504900293157830245329520257744195754535277454127632161542301001395185515237554285076836321126368480532362962413289120360090937460636337375622303159163341608014535141275040709658719959229318981773444771785493042906880761619601550564657800483426369748974070379667975508313837808044892907605421659277578502896675664293077337487162986513873588982857696433699182958644434425854561244440567164174905799490587979675065741750930873524124520690352916668118550607750551059856305654800103954290506660087842701339142253151662116745411417412885077500288457858491130899634991405998739086903564830928034993454826635772230543004125937950859026307592013813073642379844724565468603533154312745551439535977353006255380640281342527276413361099232208348757205974798368766165582758744073609180272595727711768511486515893371211180344165524548190484823492653230819219587324577231454082025054112544878822221311355836940398535098615662385732601377651147735464263221004154798145640301010366037201211455835086327306453690630038693686852286107033364761177702824671141819141559325662653456045638160419129625452880056243380396589239868843778690078469211810284751859150602119146377363989590767466248687355993610160783827161377658226998844123048151368565365441453404029902865011652837150015165344514219475708066523632082316589693972766776741060522290824803250770326961853844037974099797515549323268102315715316520698684915566796864746768387823799199155714383604324849714785834297806551121301387328526084949698556322593794543619461573616036240857956317647561865354512698347932929577810024221165976191811920602579098157718582840975033187447502943474790123064141154379778530473182587341591730160909808225372128315243944256405792801922894841049228957086956498187558289406776269202377995348018295576885956477758123316949143025647997700103077921189738618837519399824314099616028638144250534001872253918902007663375224777887507144607091528623532808063375617204681249132383124248610821680509087507261929124061323018741222511111066806250514053828450708232410634480241366999327470562901278450157234586675594018701610583682049417675254216134632978967622825347074009351635332932580580456999603965994120964643350917350773344844254022138642138328248055862818302865128053464627048512742646406941610612730580336542455262014591463928002376512617332666413903657154375648246175375552435527513418817350723760611508629424994605734258656730589315396763075125796193989562788482012692021957859021292979301293119983360668914656687572727601855326089495089540522937122262295662731349374929746186812558661375135454395785370087851621742964010726031851349316460076556695923187124475806152635537892966724015899414186911396288867724543434287579288934136952170555811397179279484972746143641500060238080680449470021741955315301273349358215547831984719474139678986391288834275155598568292667362422610447979706028609271864757836329294649224582950461196586812436169594957761349034171974809537045342363117148322919789739694716568724764000227808594851875374944085059908332202434699944378041832215378901355723731840059566134445225833364560545857042838319851333873518324001381447862292639984424959964998107801486797444914347458669798439625039569965013934828198781882748763664049912962273569259059762138302750452689066393707771424303804572563938728681475727335430463317194851738722274096770712929339976195233495482308276611001053140483797711494330405147692195435665027905240102616521601809625108129740331010675022584083822245146273622754321698934328073486837516322666502273609879081666099273584953775865111059291843018795370835086926627875635188711343156312966454844540435707779572226811686492319188873359194385718839902592005747680104140025117593653909929110164874937989808750153403811984233197979811098030839977350099168181481621110259620406627634292827690976329221162509976473187343958188235608069458237782373003254949352077873490623114910019410865745608108596464321685889036140145819621500352053409694290291687489920302882998593374581473741239036038084995213112151191579195591677110115533251152273010580875469382620934980033315970264784597915165816798796048564723260089025229734841010723639519285705385819928669860197511593964984807106988695407035092812302978490482897607140030048848725344615200270576572689496715362323188342858267841551766266389596724944127625700602489015034316978113481091056081727216641569053212540346081938183793870325759649778575313373050275390676328898148507681653887086918206192548327413922499137118784621172546803974640442957176661100737518531027670707693535030614307181334017213959109681577982848826086951527012905495454316559893933437410156705854098964705579519846981504129455329654517815641038795235213579282033217285783070420437943753819945735471463386685135790763447266892413087347633222498627769321889985779585777268214128797052099590121687724315124367526717405349089057105151560016918087554629480237980724677879740121046929860260539113904044080137720794241794600589689505534303637595844841204391638320647645534346730662482046971930865123892300264741446835523402811062644782361240821798495497665033724629888831819933375255966742184188660115123156542010808483727614687363361470643210388092474419271536278545671426262562564004866812044384463712887558264673231487659022758258410261653755990053099095495020331897680049391505064344906383778969201769253494279899561274076676506000914194006808454239300508206957688431576973462879747068583924551132042254636165932369364924043775943524047022560225983999283503445144908850848329954779904380853962032624582574371360924182861590805627146879796172464976889092151970784132562456055364384593234096150260397571196172654890232709250607924209734512375092109983667069044829449075692451820053283832819115336050565548546035197808893785610237879923011161242688850666830587475108996903373680837830947692211796932923156594244786841569534167555569373815167283374606812755173978415197658191868389120687326385242543226762434318092191144929805952292606403157124588531621996844502122226867954482686201636828032188823239968212544933973964715714069508221771224240262759655383301953968300424976010186150428681804943094315947349002583949522934494080877618248917768415539664135971916290488380067539571994271160669882919575069490546706639099012636476441233636200092923089689727907779068789020199118472740923732577963089084880915641232746375811230624611240907313396826838253984485586191348365494704417274645084288287383281004160824540972298105152324447584856921296460442286747032730040290750059212701744172610837156875095548361433544106846588897825691481959211194775529871977438900472449451979770826893510541727914146105665655608051462034847091058141282147129896402603533283123382932046560948409199790620920781692982275255734588474672069517595898769391832055029217336425252552700974761364853772996977262852539254229280464252089073938829836060000672089642102649950720672438412957713692525137977809349996485712900756413107102996299392164969505740658228971092015397875927323846520254075788516913397837074857336531580729194531116699202645480681515034530724090256796218456749689389517691194745850332270634421933748048383763516110531211246509408869531900334437800037722334603014660620442197952408201991354541040868855187807922524960183962250942458858653863433813405067130820464596684892038509855271573624439164899829593547868333147987532590898942238047903779081248352255764096980220434844678109828902668368751813204971384411456517309841571103154596533240898089699575936669706550126272608966723363663353019867449955244748473302480667886790774095277256538207919615500222297155342193101249885447811464779921643809467458302990226044273541997100671617272282273061972025509737367868313233523556690659720676211699714523198912698886164966784297286531941970454449004804148950702363399245457918207459663374346208337180616447026367803641339915605325493378374047267911518831973563844146864289475023151731924022460368550614488061864364106851274139231069330883122112872759181349348779867324662118687130326781915734030639399981410769812054104052404541081631565465134895410467192686294226190488331781507942869071398286501957568160659106426524719679671386496631563183469109831778676729157398236861243561009748728222978472447342689238910338106953947318055568026329967871081450418478298707243929451727794860215590417702142103445069519207655615683884096489757517058348091058085662822361346433011295726584547816193660827603722104863875570441977356055162915053922243117879719444155476392221341077795083534051910970990175004318988354722168806162652216352143217996668057615926497888360016389971381145384614933861898139276277047957236985669191046625695075460911861505634878378327107960921808052969847714902736856498281358573959313550776928867312753306812111051827598681153250669383495379547661900675357298865681212747580117383430987343891716375525822534442527632493365361702428707399521742220906395089962680859585628829638887545975979627937102276920863941750765694306580033199842120154428740506566896152066549409740255254821680380578564608616742050991229727107899476186691399233213693183033831655473580644513577429765710640016427302670091984768227801647749369366376229243591084997321641772208849019425384253450216577971925186716471133525937717379955143053232857023762990988093260574290561932825295438194652833559912330382936721551209387173209208425669048810364853915431064024606241218638075293152734285578836123898306570282329561597345364499402626490529031204431014652337508404550197012824501154542005526893158438766336519986237879359877737526705523986094855923837429752735154668984755281127250337762253764429100519841827948045261101350316162133513073419290648361066436389812143136377933165222839151439656146903732841181039061770019523740880786132109388512185780154330089216633183770493306958632953156489197498788734106648897998518049110191948169560548261968845630264001001066718379949425286140454128934347345703680274380216659216096136391668594766412331857398188907131783313682900138259847593196335488065083363689548111433190063999769630003360762426642445390437485048111942274871833974428130847812796088336443997276624533093435952782184752646017022986458475016084591781583377657008135428876877960288014215784675160990421148353936544547133271769545461648009180252075372235419934973121093572383512371246919445192535760547266508810426055650188300210973306818178599585639944068233561294316483554991724753825691005372175609401334355687036644009518413710614416952402525912647223400652939865338723775383691466651384230922760900616882321947048694474954124499686273287272226438743695555751011745077241492998286563193599702141935883413496845321491195072246739983164362481249684735621031745311791272952924534530097042647292830850797969439150086885072595275719519386687482786518515074978109873450824821033169262709035016295186819165313792256564574922100953444692694060547933012638950861715811112622872359680954802380932089954518271282654926593594983448191362917976791222303992142280822617125491591339540286588612712785711503957242255142418861433567358357319996061723326401456205278800607742245648942362457203076833815415012807549449822890559634049909475974979942212631206037138477481465308917263646822874633134132525961730921611705733472474976041808371224785537562907277009800379349194991189767730839771549670909650826156551714382349495937699394947912398063958649345732507965821577964877699731793038670455056390280961013016062912687933170725060945355103157628431890993232874307358483936261618198031728190341239947594441518311203661460592598284351738677404340072181036812592600302959874511787110871666761882787961304204779144954303091870838128558312785391874913435875846322565725530185008602927813891797551962242445670512333475772763483781684082144629219457139398818262459599550642440533206460269654628987624378332014155206281325304484771546003914627550513370520216762651911628224808336056686747469986222832683508916274095085907910868568740536454252726415750181424512774530934653670847798705424011014281789330076100496619636571787407825386197495205283874002907939499548307486449494176679299160851985845390448046659620177170522836852459119443949974280891186464476541756632954629149021464200167398371786547743804724607307164528812034321771371775073837346040019382321809683244814615838110448090172346104677710697482148447349198295421374526628661893220116361928471281626660869733636290866365145848147611565917012266461147447133659932039803842385583104587984665623415389027932127322824327284853462891119635253594038688664440592988608487353762087714439297861620279736751199486517797504915594802215879097621556325882566930246043541570088890729276526323876224170927675965928816084277619743253217125023321852064130329944166627814668493641632072413074616669471002839670903485929375739413601491324851617153710639407913397709533295373586165544455562300613625129307516113594877256406766495243702773407443935134844196131573888846856252681723883401606372857255091048294009751917802383011501391829709921560383543597430108732941576814165145362646043485390219659228356105430047940171769995084932312950412098387041813517653019680754971938548332138262138071565121894284365667409993772207702491787950784934123630057441049865729246938870078860752756892971746776141417380351553308507117178397353534412423253234688299012965811775399729130564238205999062490484002392845333802158100206966471296563833896757172760907221748468572524361086964118382440896785154261948523649945213072694144739803832678290323138016750785666152084601863922869293494948004110050336634436975736019754526434868043544759247204846350146681766606115799878634894236198734352986112228583943879231281776943890710926833512660238352994911964726516687458367836615232498260354460610867057622459157914591282110819963854321463887969046374323370038637404186530072016538448770345508138050517358393181856284592961101060636797953428504137070763649019176778441000234862569904922310981388145477640039342955198610184742393050117029265997049831835513883286845244455488259760376868836370332170341593299415493410805059125386266662075221584892775707857321035216651188200190354445524924751558573143701397941848787475599032587669300556298644977966224433390371685224821555561633850186968403223721218216323138962423963105471320339488120812375010106054097456060353747644814036649082962371384625588734058377601460070222016922575403654710789781063260473587237348120520995692313961330698845364951833859734566293822795743261644481709249157580011270200741624835261710731355338205895395818465280509452402829660553470988346599997843353330300393583548073908669776747757365592255532641821820381889502762814110985968961842984909716578294113332389950625040944884234350233365455030403027413978173214059559472294735699646405722610856011738573721865304966094619213990381681712325761071366627500596836425976763204296113949399229530244305946905604644863436767511133887215956449448685219933767734777313453757009126062822551615007111690526832413750592000461375143259157276165129438223508414699391866170027971895993120115221784491370795523309205355886292497146921232012822606886282787239991490569175906724497072606083455607084175616706515450774701731606523794864480405266761363174188536166061728667301063334038739602337847960690679320373539754030594317239330614647401011639061698127426633546938713529026140159741575783194901707345243140093787723235979466191607020713423337766349471440754929300814899041722331198830761518330677051107356254884740896666583015960796231168648645121163705323503831218721736043926887556637835556826099974929251078136834934003018997863422952465048936852463927191545516655875976514015976868859430896974239203956334117517586358849069145626030867790885556400218377434727488136228517676282828894595743638355942109671956339419155515978006545211089489742851567157627282288441711537379408093306219810162604098370696096798817665572812375316492472261833568955347315943167598431037860448822420752546144476168380516690172512876614555390250180294379291468636776963093924336368868624499696986380779407265027035541836983879749964294819040075694518400260691630369257378712309982369310398944621105651460654491330382789069293503497460603534280499208960451990316851066507935856174176470711812061869397899697977745066588137197309199917221647387302910909356683695447549955552111594872801127930043971852117322724351585140615296278406033821150624387926559688743248466042692278014864878635973045519149193720695249662150553706368384802673941749662073349171822157898418474832105222562509888277375650404494291872918835976989009022317152665334953999714486583603184779346637867351463875590681959746900313418502400389666350146666059198245888648033997322765169432663411746130911208863979044115588595566432161783040220536914587906267951088477999223253372090787101587891504932443272197532793910901893339558101043273213842097697164750153067789014365463538099103957316932819477449871628367767675270034871210767488436601698942298308495995019992341832983666832387140130945917268193054758228656360053949598970545941284321571776064797295194340877731242201931420336476429604419757530723727654124373628843439093827899598471167691710056768026431936717514875673301257826431755395045546646016713953640133057204338692579646584048460940497212272946905974533659075945778867078395446391681886089526331199852634652547780862179331552178387527150894740501784517953507908347717749249634120556983414238016557687249819556017888232473505873873843331180251374363325943674240641287099488719273386586491733005682752093501722136197970648690915234574467362001642029204738581235256078296032442574753890042371797611889837879104973778188218269475553316311658410309668464945273624668664911112722873387888231183861471168194967744677189337374391424594052731000965783856704994914671397789929847545464885725654010924453367588080333301161649801676384923604024170563442517848442223232670775138116595660001995796249559598099011941850841685465257694869542247321838880323547876849116827375773813838838014320373219706558544860995523195336750379200545141117007339137735872670686694054389643432575315666392067940347630655247779423846174819165655423225319735607905849399298348559097194282374643394664700738542818262140119949354952910010176266324395980636309695086969435439761765293122526463805191924928946116963100057126158241865905765896183259950779842902418181936342516641033134319592127535559842271231694163712226506126033891388124112573385480412690265995664240906838884080426387231261173506039480260478075602548531349595132147798030582732427592306726715229193019568448508950936134402335801996167567521365744536688641998634456980378886410659809349189337249506493893273738913924757029733099609166330392764533972160972362083383090529867077316699789085384357185257712046312262353181752566043832135869255892690975826122981585032495454980121025176057032076100434266713513104230055508557374339541930575270128912007394696776801274194440058607570412540783407175413645319636118065614808656739111397324935851527935877545935891612160399757928522136576912654853904157924024558500966960730863830397483467399941449445304173177625618323920973036668383705436686800723497068871691116599586301326128470289786854187888654975967614535951509120136065069133684751432968151614563729648646303109445434546240987872107717464349429652029347458522613520178911083577748687871322017613937352562204412317601012565406484716976029585265803960294771247628127537224988759933490944981390640178270566064016436532120551219880873497618337690575821080893170870277332888690905281127428162139585827328618920932855490546513657436478290224532448725225192050409393910367301523532599563949494888918981360549036410882395017203399088648672808064741665936337341353396608123405511724014459649237903625488867479684101008096251434158813833186804493467926170302020993571494709333125453402871668650041683369579193593047483343490439604237781573779786477683689582654082885026580825788036233563706826912582463071618135902257249466477158375229594727432598360721214383251773701190490611523007805287069651482571847348782776549440906748189319945947691538215869091036042619556748400133930002915223368696002561783265604487118535174201833277785537273348620617532096663303114515854044667587075728182640872934603855433362091332579076032849518500222098434855710476163127890161101959115707079910962193124783002885502927994401507314488471848140988298902475684468921021638262948120700702258779570619516929883307408242356070377241448686841995049269234775228374104374650311587386802837056718589938942186241276466194459366503046434810698230030803359132265046701374882978151249865793489250716573034563110215206749139294634810654549293900026504052365523493815273740114958577155905579774452720461443189910173754848039742159403004601107883296641249873722851293431659177979660353474490224296901969592983663460108404630842659460904553198183882448391158524028458382577912836238051680405121925531073790439917790865866523681802071912126480574814102330363460998206488329933789337842229917945961612349759409761823951876997444255643802510039855138486215184414725633433249164505188787968947299117584438404362814681591031099278877770316759801676166758445438849492820651335849141483071320665264614990264608381105906258189668367252150084439620315714056013809906472136049561439388824824982878831924149229724863111668697217500506337361385243280051424514901122243045364670615490323779347954786612742269676704794593115574312813382091877958496570136812057217759031219090902689105755625554356196333710876496036503127081946272039948299404790897879159822924792440479114549307372309828362932931617148147144629703916149660728275789814735409936267971357041928664580929523366151243725722378098065511835043843668879859875909635904948417728217676464079432305806722961715635521293806836421312663309536896054195056960703211110836420002328534985066041501564496144545781983073667613899932382124905294004252729617318213199681404902013756380320906081452355201912934440171059064894898245021424320786576666411789790107499453275073191248767333154248250192727781955443702470138774277205182160260777799439483200582566685010204173992401286848808226822028293412726990356638063791759625240368313046836462103051328045242892741524589028975290711088388760273934144071470910360951128326769524217531975247731154964743216545514334772369597311713976878205391824660156948354078446752250135987589511696267405836785812680113853192301838391024163330256791577808874420072569359950095818827319354955567439716594491064664637807332756984126112527004437923091863727639762089792442502467187160237430161442115329710382855042948294785098313755172160630736193667324540899476858450933564179249452346551353885991911616888010594974014561122501073882870873404176030887848419707547717846245215721826186102793484015123355031074529332843883917250552172913277556953883776419714740304236314045559509265640079525375545957076803882694557143574203693434205590887029688863092836124645166061827784462713454030113850964746360607811059462663659124201506348502119371733867075191632492628224455023960417040964202041596278342058857662053969829960345403086885793961841768887052382105437613313569547590130527802970639675350008213041306371238524878316667542351606977028997634570310422802184212700102483453599841462833988619309779227658041158054562908458474185544561696345798444219982542989286625687893210289414904035494973954800026346029341844512017028225283475731762582548672696225597031392955888674350918905949608501462220201028377292807548215329444346830859831372420207351545893246488378322752811252213550817345362090421152029876724262656820793089815068730457093001293078512748977984607811891377060715629148889528266115036252684003022239749420740373863055115139991154824406171178037551677929793883289422892933416534001387668003348279117272760674995603111577116920313494354258672055089462603737867592951999102042249268081986483101332246971146910228785015673410980013976181418562756269845395270286147892963049054068620584750037020623378218220046737571921751787693009824057560883122475176602689209489589468794195320739816502382300379284568098627702275596069166951718072857727582525209160076064100744228906970258442258146932796376442578456452730981200339395802767344193106268416285508059433024131909087169398592948855918087479254537395456915503451248831418931059143456861525664690653827512314213605418993280814843549241623032916523546663696779403347274711003839312607680983293798439622837394276098731102804003732001748628111087670454842674778261072062337282115324486764062828255752562455558170428561831132734024751627236215084800010099281571321993322837190421362287746174460852095623993605806551686717861558901388284923768833802104277229973194384632192194655062136889900055574328604966852567945065429288138889720769410863224160694340673481097891338481370805845924295076339505874806086123184643693124476939879792075518013286231356005896014265905942961008595263969381781983565048705521870098202694298776875386731743616438163247609787736435850505249454461896174829932870869481896749933911656485203146607725340580457981149865953431095842670205289383252466192085459588340699802607582956113452557477688126987786650325458420171178463512681167053192001299943239154737833163788256879231213509860190403083009024448893477757585879149632217691235162238106483824779257658748398987626134543564965724328148890368097533719859735321879264342091823375697538312972738613276339778018413006640732825970361895062909711480568025874910907842074792788039148918577420910349232790593467951978285223991741958975704318115976057971526372043080976066499852090125063210721230909707637695476862429288188017710575446790071112910349611587997043096382536345942300610585532218033540283929309518625633855421432764609169963185637807090091203584425750588573424572553792537630843960237347215808432047405442865040714980771122237454049753019161702786415556862613864807031299358540736894569517474864974304187356812686836059067124923034400084774700067682249683886546385870068440074848532316965006875241200909041820918960003206302608392611686598592363640787335914570740975412474279867404228191015909624372991536917891464059307346766906401151347454055682598610060501053832529483948447238342621549573002832476700756474632515107712523396742915023622932061613663243332823308306640425330428419741006499128206587911738059967429268340447913003687850444564528730784547012839889368977472341643106795232534258026726720748784783388443117602175160310183017121768624973107229651344135187619197687119751906038540639960319802720703461330709364353428246367647234399836905946460056443621369548360560686910510487065056718597733957727187032597010939779835970331979383221290132265618693074788423582450580785922656577102773338658304224699816372763891448184855081111270089888186005678195634951826133028733190403990031503810177268761903088789059644914992726882161451640249648727351750441924374342802715187078004148822371431590309195373090502668972500250671507743953325492204028737227368459023002602693296674091667792729846658909442484314423631728579457448733702289576566500567565768057374926357696939736609116833817880104130979096195226338070984533050884100246583310240413139666607695930963942157368690065681481449069856536704286839473747587866604397205265754257270623045962010126871610981268837605307566569653508999213992046238078783370797219972377972114337175569196377830250064628512860133397303866845464209463569095053031417317742696502344331937459011818752249869809120112239342452930000727130968371032801500681284389620048567805977585118185573162370316255837266911340647135025835724768723134282385845767296448842046364825228551882589315437493314141070929945798281960677243756636395213056348568607442142210212303296159013487286816598187912449721390260885855048924098602102080350627157407264688796068087352981219359187922713286264402596673298637415066408402675394883844225280946879801442265584186479658729300284466072717289375238370073186802587451446722370314865934707309188080907486018811885912503585210314156152856627738924067999285945509759629522537475837278409335160645084539988571427841362960318423109528872823974230450360366077732960247770565000385880624923715332934854114779521464334328138869867608812742152297282019836524587117582380577695583874014714123191660597020747006940625084011514704257426840089692746283861950108161018311734019239589729151896724463328352327344711950479249410372557774423372163771496708927007112411013276700034351679837423280061405431947991036992033719551162837665600332974487144930606706979348177757913953814286777379928873586365194960545700078775773966449714228509879452407542942886689428899276174502164171520048574023666330013277892399490441639252906811664806938355616116098242630158613935146080699542106701715815191323295023403038374689995541237755959249493799338568934870935586367109037125916698216682225193358194364471160041846067394161142019670178568387955128009648525205414280149256566056297690552286115336257695275342056731481444909409546075682595271861378248986631231619153157130788560130669953795072816825430119066500011394562015160208432309996608667683290851027196753137481334563306512064064087791440868891976761693756197720211279498523263920698933111610168477474359662631837582965642881308571452294088451766155748670369513815142840206182331141341686277747229996335611197565605862784323245718969498757289793389632859250514384576678656821144560997558913899394520237981781948987014462478245971834361587880219802795666789140068749053862552275588399096112261999318579203709788137574623836466554225975048002764126496844671763779435633944844480673969721338614814489012530891231372176514535498368030459945881265691950066175711518987132576660144906024290159278247860500147151995481319691820828845200297463458690386755574685553435630519638386914562479201399225519954123035794936626362581408700509950715168737593129489588832966497756280115730592645178965364148995260486163668030461413123136724268389090147235594060683297313966265488631213716126190373800640098187163789389476755614031517733910511884539478161511360678564479783580201685830255151375044248094113073541955721791491455114128953207158417345808793733274692825588844925929643434927846741708896137612029746505983979792201997782537205742853201734110667671375167065670743336273236581261676531982576858862697812481618901088845170978210174513763769271598038916552531705845332433985080606870395335311991251751794000528540860278854456100652001394338503410694097702531790614193113511998376749670637992950080979056695472788778892936873413056452546876832158900660971326108319462354519998955109622361901384913944315470126489443951794792020077224346392479993045299332808257325775315848255119146310205348503279354635275267034358725794443781003270024406631763057972971609896883018059925753939034575261368975174673101918778127048211353421435806816844556968943838048314171978391173779479269506682598838786429412201502370884309580528541344985823116166887406005065538809008350059170507135838839165252432027841202147041954848859286676312813734029918649318036919104601994622899275969163667130795260054185560983689796785728237508749798217915876126699073522233411640495051149227971448266584499550833069283228109478259855780737874711339164895536861988944963094377812278538651975252464411063563479778067635022885474371804976266125837031101491275902771892107178207436382076109239585373016303939083971273870350996314996029180461824822747644394463796780660673102992202350584822355250135083416984306601974148765932462108908971385107695649702244521166108314172781383405021428453887250550154271130586978095303222607565158203969090046446197491924955151646743831481344208001425132899517681459210147329965702714997475159370284479059462709679500747729829090083593846389604704692376690262341638089925391862184754505732990597396460465013132776357672487124388201730328062861988183669486182240292185577000581023881926038100543554519033514926602237586321801187487233531810745073478464024098947676129999892371443606614919741589556595746479684798968820532886436864228841226854652025261179826411514792289780833879399125631878603486346831804121541810498697575722431059331741260503792678658632543166734628758696706468917607668567301492307297228759694335509185794211480490657084662698775325234704079913810685594468721613454829631713029735162192599505631511798889098552616359021369958052392638388844013930889330951213012564791799799107407140991789780618890652641536777948242402345947065932161222293770064561182391165346736307243907237786919439262005687698008932860319356687191218858621729314447325011457338194993543432980312187702823699098504598851613673799826911827902802910972391824898968971730613962007931648990986883382541307768831328151322133180510914307246963531003997551655503627778118261280503536303573805091691059934178677608317237172576919300695678655614803849781643601338518565380102395466414602146308214356625884702234542093807422753806724707845227016147276129166043899871815853566225730031713554339461890501442862518675954394766010566786718004812407383306468641870666614276431644411764137361696884142256537508060451886358466840596305539572548586328579283660070750318256636690587956527958595373922987580171385133326473632929658839620636142457726542824947987904946707171670838879314159380444727826282957637950260140512667570320521363717047724631214325301635178014220154165236942684652741474034228394139721336852381498174219727272322342789218513317904547097254583891706644210832293084421934252352526687367340308941748744146432355600699797378306763203795307982567849961038803446603905860631476968100558983213731513473682568061123131057971609245665620427724424749991435122079910619532214390758862163900665774935419613469565376459727008786160931418311102182624280053334160691876411071666067123525178809867836194368285964633585107943552523803187423264788008421656056159501695812165818036940588055894811024328774712213248286818577039502474925431959578685277989357294418361198029746539946882530562321465009083507858941102512432523599108245593097154476887124610567496326075306967957171972166964518852519012311863990334792951679662490346308025384197369645827239751435807043648839871767046331782964197682370663915608524432454313564441457400721835932087334554131206993257381457665786552726539458119468374770572900300617655972401650725965035846252241361796783850709399932383691047117483504058744076608971530910671735118198956568636124832283311614899776507209073576389993771805847245117577482685144920576546098038704653944947717942597811936660872561772286860186572117282940638184259369215958092342966779757620857171990955320988014481167984501304254796597155606836140029882677730146686666610026343013501573268004686623400654389253551392813786069229151664865405232176330311997802336887396483591770240815733282813225307527912620530087481674015865514030937377397794195169434753304492049928033380045652931333843818344529881193141019152046402195523053411402986934043608604259152832492402822974587986248772731026046754130771604617759810725656142655951304176264282050829722635095483698566849308549336941118738391328151553857671063790331058476652968141578093800969309173672607610914763184997684403150229288915804831943648256580047197523293601278117257643858292152799955444431105290973428775730847320562483376931768023352564818070415963883685713517120369964971931188442654529100428998279849368555971462421215464189929132039991228045173625228715701474879968672361185329938117985003812022982054130208189973410529944910202457183413907706787691255052386219194536236190424753865056066289159239319828784830674562666917359598289344836861722965901540416618285074960233008956234927426510122417023338339642031659537648965872664819737093005413771617509431661837803405001068104989001902304560586147934365311793551243664043010898498567967171732583909700224927231843305959067145776661916109794274987030267543740531524924160590192629493118854268169828633853122106739097102935457725448489613006248244853493313240896902364125971498937780833841389110154441551080196827647542543441772287457159203289438586568177014072596947328488887477799502250460436010797806886796929862112265850470085940733672780850917098983869242185818052186500963414789499752335602087098805581474911369946021913199483934021935620676679205513506192529841555750998954266665751079494198515119148062253833845424993760374937642822670592215232522498247260722590939009833404614418782434414862914658558954110829701756620739451269148908235494256324018124107499610115975316548790548968064332345295178242432391523075779714687940867329764168995767263114182791106850841318170432308846998956017261380785219312001232873610058453293291181002888487154802161641309244653567119946347026651815763309935216931472564504594353180115010906239929630985314922985765300617048574660450684827486049872640359459757747970507333158779871491864462234025681167826726392254071221816092302374129031476204576531203410311433127033698991020663686911264852412596328857462113409617810918796323833747826748846052458548238996906490447865246583329984636760177367301709554579121684361392038459679094864716498823503166863104038402011210527216586137318132898650587450611966944339758274733445664289372967334221549117819508537437886836943313945439302187392568151678259575222634181653669426112793618176757943710527084666222054754271523273823931339011341558930379492523388715111997810910747940896536250371285175388564318546720262060146158487686500079427497411419064830100860783641728560393690186463995103482052882594457821995882553051913767376311044973815161201672728261930433063813129415079050714171690140870879310526356579045576187896838005697122476205227863397771847249467631324691202228384158597240688307809825830250221869590311051951544341834042180466233373411205778679806894702864767838174872645645880623692482232145634906950175705924820973727064295046625618616884754732973918603276273853529876744825853298071372700764081343902979847128794030046017399640870864706271494489050274915857606803161512281476979656982238392179480150905179988307298225788096968350938838863719752579181017089398302097025095235777355539790839115143545152333244601347586962731885324735717827182321156362580001293750132895116005594900389402814506712401313566772016902630606547662175436643396182059501536033149823258005777569418076399500736471170872632537594790554952615666431246151416443236608485674248972229681379628270842851394639805550906188753080068208532462809625904940487151783326828806360570684117656855510197904913043848095676501827981708894251636643203002717991926245119214371817565211878449879015957780266821941936193386397551708283208576700650297905860795632036339225419809646390224770006239831449553659740618069839626760547852123725846941800178354539062771510697548892520583901019216780507820014933714966259915210857579931049524736978631810802845765473928812645048473577953746889660098699072922984398662704863258548023278516257738216281795235478890011751333043378085012348325783076555139403882116526640619480715068987475915859277398119418982138494256958520818689757798413241852639129695683431591051538679475583037277454058912305472596562522337050875895200272993103015430599348957294899482199690702629300565613643979922689914390804800888985599854681142806304417921815868216319645290129695477440145360139868932283274816542238602176805574938633437709423241592942185524461031437156016303870956692138522822767006749822881171211262217512186271777875469333718644563700474009568091738837448486272711380544407837718557842336511226760442830909013640642074412498015762104532747684003856941192318399180398855865014001232641598243661933305104113374729247302739840262134533614694344436221683267788066710879721220827371666262838696607532274659637286550449033405371853858534895570892943066400627152206778313954542378219786977562227631109352460442887950684993753385919113326982713771528349512479441252397971437268585900619042484508724975086904275920155397786926194800794032246891633059969221590971552711862419945651592250477453045650841236746554674512029430471032822711597918038540086539893326140915116333454836579253517639507907082118323215248607150743938256297012719438246236043104161613426424992767416384451623226231239964970035013010677532043501702288012773790209396550147150673740456224740313013356032958069886789236115879697777702896097249287496065210768346811617046545869935857119201853871864686015412465169697587978733665970546649587097488842468407392904700208355002793395773679608749239034710608333596228087522912738775167512979033432684022313789005443736210821232607788781406232806208552396424401528931750630114771393962008055301867646242008693867859545165789429918014433185615510513643549132817134783618135798935402235310710969157243727278674445144792450247869601622485102846912134924169831869059836044554636404455331146763747398022952332274326542734022130579249391620953055186826285681466374648460329443814197102807685296420308229184744821069080353504445421644985809651505732891619133619650796038579457332758807504008222223168065280674681931913297252699034184002581594107025509187576746302342856962361888622318150135368237351065356213630363373079181406394679528212097783929228305886175370195363203329931223138986538698628861892297546468890552978950689749487982226983860334068724143693286572214525448911083582116547966991455874944918211723547383607137119482026500189965497561433475680760449299204431499522553637099214205729766682816496108591812397996843099183374849998905871197795133219672068470368253770934891321228909721842382413638618372180818222846223594913123796136942769419687607979913491679982694497185445978101251619626751037675304630548455309906127054003271427915432101963141069671779258550582278226567922324196163947126735580941498690678915925427592095119488741942400849450815833354933569119182998829898900291614029569211390486914898509174182442254361130416237098485465239939736174273845640721101850716975216787909867019812459328323908943082037638256581372507554152630218955932499476889429836963530664160124871776952281367443726268927918362862383479469135499494034981256092341953587702761804820983954515428097826651705261833418839942994623983887664804744237418182425772410108197902465409464098611351027662964749379511293477644899666829750286467278079986761365494492558275302060283973055829430178028376304967099047010117510339115996087629873002225632889301444257341096689908754457962655813526489429644560618217016250233566594556606204411169761476815066830251215213450264069224985966370128075878975668665127440391020558458548967968147280913141026927841644277234836763507785528520960031037265291644414704912286192205360764760194204809302624803211946241867920465736627747988383026044400432018540392199500631149104492795452863806240403216995689971492647810918514919328952463836998905298654528755561784948368451302564615389117205966581452661365609982973521748693080387913930756365722042222607639420002661877034010082020005029215529234515816325810098338747905150184751965439984842292538946560703012105144395556157689654153305251805656118550379209514159220915455455922658886776159598846266660821412507528507090667291435518475131093347220351621098704181309716032669842965825590803574180285562422201970019451587533973574723269014222230386859592434167014954504416449657262948202899946162063358951402909521289675845558270330200814731826124069212948777426712843860486669497846351131437246890505770451677986485542966982813981592179639182566894689389766516356668454720876287678744320790840306630880444204597711954408009627799606868223802331929918567356713307237118807198908781720124457806868284886828105335039119218894137595024447777819539161237164402479028017417256664625712836401999470535400284558616685271180106648522573807565454984085766732195915810654383974503297477014831262640529031182677759721931348755311090128727593552213678319170493396583534515328339432205854902369757348123282165132210096943552902277473544302373356776429453804368937666077327708788805218811994601570010229518074045013394360578575985978974749879024494777979736040300853719460217347752450770045018698550801748586395069996378680735358619191028783965475646786524112553112058375875734645308028632996334582892225376529905212886651712154926253781371480792390967523409931485128204312427137411112694940962368444354000237828095844414531843371143844792739746963348266358200162415578224900694680766023628797017161823709933504156269204415453344147232362607198047156857190244267689663811978588212283818456566065151038146739148270266832407522950605159349970681568451308272895862643204425127763678508883682648154550630366685989414058224269471077804837479113363012147601089685146615756157620382123713157305592410825455644187643726254958490260778188741738476312495058599312844904265935795540389119781013187817244137507985780205231576853218700083117527378658198632819256757504438133503809584585751550062454784585427717170152018226798082668502050411531221985940144648608796334169118347705585981940335121321986049400141452054068047937924553776327498764852527018234269721511711657668253770716962901166155125475156518965554682240535426700995331865963245551644619942348584122996064723520220536728251933967884164596086678562890499840842378106221123601738519442936211526522795939056709993249259801315265946958834670066418962029573292456705404631064631658197782441816201472090575039069566584860132796093884900493970090249952619300270687633042726793601018962433654823949510662699525540341819374615039355081574771380657224073201135296263579722704899652470024960539493551482124449864263473746762317652969608387779549951784995679900153442638912291379175712747975181083223112487955765624083860838520581145452826304639661731547254792302236738258747744959188877614201947668000620585928484781627755724131161154936161477605151000849728593667162651453683659751959895281690699879150482290282304164723854878577957900394474752839629318952396520755437366861841829063014340213885690342248626341025103929080580527422600391570125934779827194826049294368190694188829047439752171470628593075473019516639031209674021168206810490913845716411200972149081281291942604145284089901435004209872976894486075573181882395053553005877227091963778564316359297887511993137644732661766567285516774003885737128806296624223457686161180489042781454585923819120498530669769987577366318772132212916399721095820358779992070876821537837156998367009901202574575003951836363545502133886882188657334852860893660393343579223848237981678654065072389718454482905619998617864483629243247052708722109691362708231693737699858171630933162305032317118836556692465198605529009066121181217243191661697614996090706612030713683989050496166207986832273342739639866385443712715329702834528191215048262980778427470377337027457254637153988591189806468113855523621849357471817989894522986504281597982768949919322838990459830376197921590384414052954967820953562222033549505332011282802054294522546473742425019525285659976446080460149910167812297625068207730167547457434050506314003380961951618586797498921749052104578423304012806044781240193456999457477967753781525181418593028529940391745565055488936344907908297028934325959020681810121668072970097513167547046835839741708177097877399758256809941879807685256797944542180532143866822347601534116267699662191909130277267394543296828454579582571716401737038426361325824693703760295728111623486383263443522611939379608206664107422523481260928275528865366331976887409548854699189741370915302193833304390001758867274079191669890991854677947438475614778467246697983605484731415311497626224499369501005914549438703606557519136952174956542026417903915460570146264843822402672111552183965662420467049004267174669268711947296983772229356428777027709719262960096057397211604491883343847204111721829084651577919825400110936312667956105803043600899717653648350683984496885474359463085335466871293586128179793670484192531952047550353921371509946047891089202086615249432208741397311302913138248321550861407003805915882868561294632111020131930561170960491274210519155172676944354777402918484248846035115133780245245881262701410715684628567275196670143377795542878620547570751707327267719220845049152344164748900758409331740585760913075553064560699442776561037649849853289249381876489669470034388109055617693026354567146846553153785423101243667684509278771133976637688700857651894155305790765151441153069884313496651730021523918576727981723310807678866440536795032005208022439306625504305123174443988799756995285319095058475676454327312593183773199408610762488360128049686886851443676262084509067146982154701511090314470135936863956234392025177421391071257278095391595773313574316434425447884222536258892910334769174315916661520726418801060926655016873060036956154502344039480586964971247189550185865012881231786769052630717221961416128022782757184944981072119568908689761821633159662098190143818129013394014142165728655175906131996035125661160811281325991921007846275885803178098696838139339938038035501409775523020755865599016832373792077518531187979491184724427239690102675742460992187232378269380221567056816375886767501861937562808701119945583990133140482060119656730223626139583061484703338671698874766581622960612504335557776690138997691835603139150669751488520325378746107712158340817152648751612576345678100256692785933605648535768770220228245413014622480941823313700705011777904183402641858941182664876901933607429988681757070196104834828215922743795828149314878584832636656364931915837237733064389130990553013722740502259648617328407817262895625977275140502511727393607117745674263036306426775804236376559667893653464446191603833722616729209558845090679734498669009986741498274265109624589129158734714051374575529891140986932463167832518735602894233823222838092029972447464387187270436123683339993043995302558923634862970691689555916476964048755990872120084440726155926648260444170645451982674637136229830902840466935081740609852600552063649190145612939893760988405681633633787762981636044457282937359543746685644258377947578482654552122417483366774028309970856239447379743706632562333565310145270616221059076860527090846841884599752156131189867296138875027634152633885719322086129316582299539503728467732342896610830410054428479621071947330779115339554623052433996975384452347871442699754573751776633261572586611970800127094584353438168014012708423452602747969303703037644789433742715594647992736256322009505394672946840134752282769505122374307383536891618577179312276257374496042967604333320918853649539359054719255390234878510543343527324637081421262807145943571591340273476053903522386544937977591068832969483154968382756140885864852137143588691726172001103363428070893443182605026632930353126245112681248482898047469339455454473275589316154260172787830411455620156548602487170239040890049619195036802130234829761335547499726150695108571033266793319133260360100132816682818857106536450059422583176029797735218381185350565171844530148599308545157617608254941536693183296029277517223962007480467977535483983909222173053309653413486965486026373279167932330188573143190195163015906383812259435402667056188526530267906921109654422029538286455290879540644466909148341968842902221082486224327986726855302212731345469845947396612657223060579853406352290673570012934413100388786382056818402736899135584326487332206282373388167762459660265360927276600693709613261782230753735666754835167384095706618027209655537148113524541660371090816882642688941152986046973949002694759369617136935592746641492937139934781522737415887089077473976436407032548066271516042132543744536620761878100337267072870001447490534420220329673293782855148448788213529700444393884153894545256831738718294274967143876133943300025149764697070267941700126197625921689259407504470169879747529025723544724466958984896132746247461079206429764456061864920342291458641891363954384262363800633322950304548866500124641540155823770744195100209498349627509199015113117666455839010209273185557344101864535849907942617859360619239128991146122857120751942827506982414958101011302212947095915980754026831332420876381338639391265920406482903593532900329659154502001519253413187499042078941888796916809472176086083089496762751472974745101250163942524557824184905535609025400244543135128707021227378375885831336153373418237486931368485479511879744909307434012168250166945863745819509636253957519179981354058359396820440151026610568846082132005086397422990389866063663396127370760236110440335628996361237183725984565380127159020619842510550240586138800407720663840465579979687998216759166686739958878857752546341997663345568318270973099072769004591747776948551572409313238401291285062655761520651291659374233602104711526606784174370710465712442531773195702119010310113161771736533168070487143580283653664114838760809595295965692373141002499263424505059329925244426856257694262414880319094208507517823632922631573525477062680734713048612384881585014264188291963113694129669488876991921775358039651995920110777903394152440095246978173895395240620866698508463864105193110842783986319923113224710330441745837428704656036979592878604373698449007656185747934918830819435635451286395305739978115329643698501219421236242781825260970468210604828614193804314187076307405252688796308833261936451936255467849531565468761516369186199673734163772720317635254889782838598635854589062509849411862579851876952477581395844945062359922687671256191374166145183360402844251483173659521949683154342560493849308230587612358965924606360200353964908916630166278596829773215003386916749263020172906609841684610173269686998286196496837496080187095712483430136446167175244893946254763370907551086801486651811230982433489484775958430590176035042418248303223204628250190139678851358541241750306021859026410836589781205836323482089760001857398080022723645721682810241079675426114432280577664947403393784069905314643216763455462231198722192630291544292428826892570840618191058112287074354533330688280140149132217892631621019175875863130531245302742348558549970913583230619399951284475780067007338536606244318815219497806995545022802992985182154497162846289870126161829731617233560049713635919594506407788062426455814159121968934349619127136524855620628609142376560752928047912698163733141478441351357378918759973249128567712330878092499627344541043461968335053395841682091986050914748033119519615778696362915940044646580626117832027155043718202961905126596859523774271307123658196858158455144409919891635252371671137498159329721053333359197436563889990265590610658065862074454582151461000522304060322048927825860599451821139589752317645558440932062052167544629069784939816460774161371333772328952469573398274952220841665881047160758177387449009322163791275147038382861612278847376971113001735140431384728223751102010178448815729255046446103359975793383589600800345689554721861211428972937171431119146074282836989343056482318162234211467957010758893559628635827893421198884612451310882401088738202765104616199195044520254653004323098831029399307261886730687566421196617761065941809454125387057432660772317384599074692863954501464362198392333249867797540614348397612042816626282633695532104011911185168204651943746329665832646684716576684394344993227399859113121049698815724962370321631515049427731584356471161590007508793010294980243439470355809666574435530412974697684996375463074205070985658210498502424099967630494220455211307595668133970623629444090783052682084340749934958482718484220972473392943132212597843574359141378291240867772860611354152864950028318041987691984790463141208548555950868527825702029945785205423322583316886158715275646589454465151535557345991552400310633594485274904682074816235529602116319239118926847552616668865806203724941564707136893145366114541633685215165357629839652071636756152355742360038169893445206414510210824852364594870531524825409098461170409340324730537590161634659270653168087162335480040897946058783768397794467632156284445949977413927119085213410735502325388339999495323059190168749878463330459446080836195072069316459194311562540345020749338583713660351554574565235802793248204354375963078902479682837014473712662297572593040194100796981762176834351608784917138773273330416153167836975632512598188052601243005332878002319587331019778118625949946545504206960706635829920094728337470750298152038666947507254917251272536684470298459333441631989849907196794134781610374368642400044867730265478672107813499982331922778468165981016571897833654009226513315371157777791112331132564349438048215132382875145098388865513601413103220283472329916573889568399894334945295168176271294496130095452726003446998004576022239807371357307934662300957299036884458236263197120946141404708157654610714477982101350187401125353195868505991111066578986323818744653831245452648465839042286331408653105691389302114307057949722463233534448758811515407368020376621077834545349980943752906013174505766626306146730780336009037039095273193642537243275220424084830069544694244234628354433455220127830635275231371304879299381067122579658760554787731701661217416489518569990966450175600431197989925524146356652724372533407984647365659558616853373012295772708537369346650688796916178899699710380187375592301168501272049821831529146743306013734358324000745442238338264967955062409457538787192693401719091567496647150807757306628249571395728068074711295516022123558954047759875110499114768750762269808145371424836229787065317248327795534856085397834816888137953076363436026967193263124580500718458048607534913026011706020504219300263514433005590037498011463181474736714888785807452760626759346531032314310398948551203739404117751036670726090979398989263142471592897523147208459812255089428692997644028363708263530431289746072120218801594326096066907324723036807643971448083677416876545822122901151798725599047278897308719381287887741767453287609859035530100689689492065496160367911238750944019654526244005528973169159287106877365555893920395700287752317688708043908712307550413427114556748326723763976052981313727726772282547642708769896276587492879776082691009807901478876021951370657140159792325103038841169360055950857274295842523752442585943541507561836188668344270723615154861521426749083315774199625776787944739075626994565838720108962669362013437778814738780902436709401336541562101891158298314632426620761465898304355046625610250751446577867987407961157618837569762533696389894695292457764969929826454935276393721036489566009630623053786268776847787012240269068168199748995101161722683410087359619262693392558668508036290490366336010587217096535636494309900907900531577296361635523483591145694728293064851654182810338942238708226947430915239693964562285187633331249389822500817974188653660793142056038782602025761455105973607188874703779280837674392645246866022509140879620735556673555531172480030420083545630336504146626518635248679430169885078839514860879366185403929444472019361797928822534370618954672067045967073594768120549112134754822462649207858403722052752883224746527205074772227735593279443822857792153306961057883440966314294361221655756076535385255138621358476966411637168590122676831207959548045488733433372187732377442732256093368846362428721904383265143108004551469376303253065943489212580586259597759888702328268560270704453171431671539165157113843130849445928452555522102903491781167316627125203949764325073174905023776154760204301929562964820491782182373881221321498092901303870365281773167443154211454634475397620887515075863537701328627100995459025110145170711703050911303799380989356397847538125482802096065693477650425606494967681145046872499405225027820302241152385845502954175055868882709107661155527277750756646554703139840705455250524998288115134350874431672648515967734369108034074995501848289193360249415683560058394706936423002776108509567740415596857645034845680664107923206884312769663830780189516926139258988453334509605808518345058278807200141242618898356525578767387935762894910387113604554711916861973029402678875385533733324738159642873954772446737995481329746318345996508512331413670253825650342509281003349698121716990137326578724528471611178626208274256598539630862638838627566601958146988792194316367951839596801789979786764405600692543169241679053581612789035351252371161166910734736498530889728687149519685438864624861873590600254006475823367651371694090494394825530796272387200342468926698266815073687177295820841861800546395900292573865273737960351815937889706072535739248555828827711039342012443289361318203016071794846843434682107381800000820270955728970114674869518579039516390618475602161655970121255058876954303656594116253029300647480324298891394513327334995388942996433570143322389273906594398160083497191800679463408213418540325744025866651983005261501881199432171896572286571106180609238397968960266276729014063965429804978893700559532210785814995385508056797120198731407550590023364472265366291768203595610687782753164602169601551899584247276609940125770578228873877063533959319878143685883321930294938644176842224700173967075583885692390954794665261167510348971660323000212346048663758298867536555271885530590767465311966220263887743736429017449181594761863504844246002268998733146380969014782274505201727327265004215813612080288055592127929521381444705164724179422441020000838813889997224923818742804791364301447964680901070609074983112199050317417040410898392597635795598480756709001914037989144139293751266206708642927714845789316497988313250416066439731174060918948388766177317060279716555241644811154376270130016910261043278782523733335985126529973255453140023129795078823040750059706116452376232950792742725175549125485469155055479160985676441385496131296246168733029738571812040213899497092179427921311149682106366915198390648766995058979381570479346613528422427060700181660278417152489176013890812584304693828404781466147096495297967385383400095887297176398079941286478929725722150095978383579139729334779187987909535499558807511641183493419003363208414559715344078583162685495806497287060677071801487650238149014043427777542491456409075589056488457696648160255668287755559470124678450521414979654124324319837335497476496611186415531936625548104142496760103123680209169324707259961885294335117964055026761993783105646275594419209245150208125444385198948841969359469581821364591292625368689519933017597695930800664739201054751359302141556848430531518589223984353744924891097412315061259282872491157600711300049216015255213257038872680778437656318897278938513794058718133486554483926914761702366918030256907106898373928314028268698664042707061041328013343489144336261021762440665799541982267746312457509124762868218618737709071580146693162843342167747197366576542879507673508915875499090404617850660399192252846655387877430457078388838791433010230909468459677164579690370653095093166041729591380032991978337152344514104734856429299426462654678888154990479401464919242934575480624484656599302561161903734921313591109047415697616958987524193997387978798242804710002945899308195127458754181206195298604985244451524065911923258571218284000094532710204251948314203667498743620052568236264673225419643319370599492860772116207914312166312918217615773596940076358308764549196463518835218355860179299153040518267771536215038645208320741212394974813623067598823145412716188123223261011789243814460813292289735348379527241440559491150513483967165348294804917454114002029772500990812608876121520515075697200027058188638837058520066449691282137614962991410487229302620705713061930204540249335567612582524412113808239659649131578243897241735147593474854468992427146782576880457246639634528029938534991331461058772231907537154177907763534490586989574722763768198793897529186221204660594406684728170287763140563748541491567833252897189603743713229403864186629446221451823263496750092278270637183993525612974995555858433187310810348615990411151534074884683407999959271583322135744299032239605634395743376677179047345677374763897313938828854144243654459937435744714508328657403242045340936601208819235457898151931290263549946982676762996933715818178114131637341230702291911632482137485616162317301012215564392476842342036594938763782817865655070430531083512426587710572736922363674389095973922648502033292170747162008470429329527498444263435863353200863175946840734376757900727913514050570717692592207486917143154037879120395745813861697191125561972346888493760053035566520813585223642650219076955767242076801489929957042938982217313072073320477135007150970143117208133098613861086536952858734399290107569062174840737813234715732846350330989606986575431088616955846667430392024110457864904827704600481010423196978044493100827516398162499037255916354846483829940595098531926990545847369486156033983567635322665323949732615730361406659361109043545213734979661173025957906570963094470749257737769904705761115020098926623301482647740214034271163352726984775262412756320388106079291227466321798605529192238335455178199076030264425847181867833638425335226191681511017920310368919864864539858545634892149227199192295480107668049957133538235708108024002879967787272589057560218797650734982519070776285294595393242587908926309483158993291484951350022579853509876899754748329846151192712703847069666575091489308694530680452986295223787000458781494968674225371749044743698861642930577527479620087502250877963792231889234620654114383516899994112054127617880278248559903702537003182890271678719719825821165925271395688063797315104016958315401031717800272904328194925591253792991637902330969896905795135619943048934089038698531405189096448074426712174688503682289825325649149219560763809480495665722238381545962969302188172641999478231823142148829408384959301047095557139933785650029163073702864462864979326535211722967073770328641134330993549840138581739306623064692437665121651914247826113508448517290682196988091971347221501499559273733494210156830776281571066222732613607727430255958252023680735130304215560792964377210131884358051109301661720260191964074343659585206721947616341136573240871415098488136404574431941058067859819709542140485453321690461563964924160109942966527841814907834243103186508557962749359097422994610245724998739638224673377358022493853719734029028680799046558592923039290840445485500035464103453565542240300252563688658839332416387765340249070860576691274437996667484846817049415742678082357147033847408117349457640332887123136511110423378740467163179267064120040110659620336177215226968697132669688613193048255087205469468650805166516836422304495577168018937981962000966486405242961838572904951526980127473492627814893030811154702188650262474143008269918112988274587531095254447048909872840639485432828162686760267777099503290695551919243941030819199430729186600998747334540952531284147114407939830874487728962012578214796067573269369778228935982262427931411262165014483092506640814776260887290571843172086591730703452284723197257232560733389278106745471196754445479429002257531142014710574994080915332651147609757297475246038639508798697785933690178851183917407710959526285881123245929181116626866629811170178968319687512400415286624549171722773264755694386125577218145035659759754139911134173136753366878125077161255674985621437970063201289730383955422959725908067751041165310784602356991913700052391255331705675424807358782854785358322188512867321818781380380973235697831731551100288254961229270400821398531658299776551895800107677768473163973172280267611157492224443399735832667013893642965681956311168583944171479843508908679890815676938788706777372257151089951424186755958369650169503992257537896724531046253411527614425850734947013064440657234560348071025632853102261278203898979557443396573289721592059563269407130155550146709657418241716478224442213728838795801224759368511378129390848258578352223115026914234085378825920562707847477713456916270315854910520853311583156416845398141530906553467017919946677034294260418292109936112694279196380831009603126827298422267179270890997118903748444711904607952030605970481856538806063671360546281996745147231567201153763759055641923610308663837285337400162426311658848095115240298451282669141458467802807278642749235619330707854278566915316269590143299252724772580867061627878173079648084753007241574367589910967084469727987074230706648697645777180588492088985781225716558878501448783603176805088522092964873231377176954871427787848903097108937547255370697227215893611619386097922667509172357688501612920725983186186597245293015227595348556376758834890034204315823841959672988708291156153925703777802336889573374172780754488189054824834557830561020211973539487920969082270994899888211536241756099636714702839088844437400140244795420840801633463543947349428974608661508776287076206640366800997438461026334311486942217767888510106438412796483541049407891634949375039077532498344830047236263264515536439123992738964700191506732993365996145425679852554528779102293357238549523053017404323558864414221167738376504394013010186498558991181864218402388020355755219508467075704346925220120640752340209324267044609909198906156019659318670980787216262932029408916731337839107220144353547960871772662767956079821296573757416947299395689592386814994870101827101245284885655677285273190645504547934975166991412978669096449041137059673651894355145923657680102983303328012605636286058334320580797655782435284825428098466796237688727499582609881315531061551518361186793166179535988997058093431401770470574674228558232942615394961909220393993323133878720092153999448537499692618334153816426623804995108820710886186239037318496644639234144807284881297722718524992220840657936564030622817702866604334576608947342316831347218271191352756074441367387154768585069735493714180865922727473728315466798053076994944828859177545023535609190102776090311829839981667529972168560865402273027037870630651492221237192529304223497163038560459739084947732122490835530433391761748175908120283629238720103343840887512268742230236258527169206430308922958333341407976982987747321028356319781165973628940594987978019868165737004625144447285602785018951654750159379024324563038916664670544823835543226040783223457932125060080831139656939400965685320953174210397201272364933960768513202742440527104635550112092978957943172247253572142401288167896549272163031689035251398021654185205580791380349523211144269057986971621189967383504544396397302376271408829415588954298469604247879898420027786780295256586278380698874598555370162953550621055952522817122371283806430339718058720802943401963090467353817254069359352932997309756021919386712863049806659506110151017656272440788154440063616640383378364608235836811106748954004178681811672179290057498003553550844529273888581950924058092474305334996330629111763797194929070693015383559685060732012161489371623025746834842981973791331149060712543339722836346937600100942123033245430973977221511915686643011780923802061944918754728585684021691097877101785731674911837177900458024812339249747793028975945622148904090889017419079727246615933396756136198498950279720791745377911370969366512093671098953518113246766200926423753487387512568034803119196320425288260219791102900906278639361911380437378413257320878938918792013838497490278114150841975902636761721421728344662521986305959027831836315282765622792564044863001437229256784590766905148675587234041238314385951489541495057596992795067769435052044895677696270052425493634761281291114775883537939867078953051197202185966950849889115629196174998081333026600303196423352825222280882800130535599581378618171418544697274253866271635042684969056860403518627397650122399936699089044902064490363853159505884644405957591039376978894706035861610811853271086411217190095995420910061590057511304132300419894267237138662743593950045024773385905514284822652090129299572747778340227516091673685351089486562336423141973322913761667882990480361877037443179368899253409784506930247705520323088164895741019012871097954542025675150588835010708665218503829684894215449849123733681596317737896427882726691598463345758899406646067225603094314749280390340045937588456447802884062226596527308062212786454028077815429302730065636423999614863696870713802031375551858993394715848288885832398840512541245269939026893769214086130047697960725766928695665763876001753851615955415926803081657858828445020782850656483483155550572026283451833953099750172158498943415267382258023772330092456576330176113357761635288537453628723859498646680255460968015232052114859603108392634877011971840721647946990613678126955134327271707750161255620500655469575546220907364981192274730558637641885914020914171397076103896846732510737652787427520593559882351597021391576859832760986467024207048765162333276177296019867643449181206399968043491485684316062213415300435567890288237308359621741343465727641091761248739932675420514068677811993112438894385583547529244629553264965911126490918062462678336676042862576490091329970442189218105427842111107119469010696680625439841827095722977613154145012284226043080032169175083908063467140847316327712773300037291235064304065286899406100698322543547774662208187187059511272535884946736798777466948730897514817306913873522053843639136368683205118587369488347271414455812547286919895335459242310008763032557869295662580540815223430539590629543458287912202495652020597895089641329821786281948211954232955169534526101519329964256794255240167218508404913819138497984606892367970766308054035613645411918168208157186414348199296456865354956255854939598458652378003027931424428511034519989561514164110461195626893641466703969414330002403283038336187100907990097979517399128049530186883794081636332006965834631166973458112549756500473469459880959766783535656918202792950587695184254166656619614849504354689420017829265905804346369108612083552061718128911023205544606724472241463388724327294480707937760034156055543821987741998590769731303983359779305640737855301965587563752983593997024739238985812342313393434102508441026143745838850448948612684564514982857392312005398788253961500555182345249110681092456769031199578850122074076126607517648294013657227037456849558059703287334618023199790457942192835217328935174490612058407181111301280058408486867952760538783764109884375476628238492151683959527365804033204173083206044590002988527954915173659466126907045874246341894620161299748626020921243916923635947419708951088928268683020614538033630311503829200586325652776067982904775672847155205902865979397002344915059250238367153908415715016142793272248784586182781168170074266144684429361976564504806705294545691273107635961007393244656322276324881969356409092462387181525058631203112331047167107150422146441817476026592441321781112703078226658445584820095186432561417326514739449014150806002399366246361853334831503529367825734269524516253169915720947302083932210947132210251675916120131161781627904798200240237607225507014138700540002345526504161188466764477207523439539805195074252943596822810603559071823516284933492402347397160043409271112656509695833615099234390123571052189063402171791276994250145380941514903972819944520454975344668017425692033377043179553528154247338579490646710507184447553220878359089842246229653030537167105385863161032090832850590637759391642941325264836645529109334681748902996989338188217496193026685483984251168079406785067729252952539664345144035222523215942705347078946607475764242946138680053440441654535333337645445790154886330774238982642867921879368186594136058404158463644818850499735898620450021785731849395152682876529103988979715606573544999782491333422751816971807154258807961165544359511611935939383827714171906078107070157217882283314845685159605215507027267513177489617447739476842605617107431479649017792154944973142164736393665547569452717894604191400616626900227956657519816404981772341050675692134242947146669878127484399589279373278112391321451435941729969536857022451704152160113936829545168470606224365481663426502716307746932911427632320926302959794244706613661192179691209308049561984376031896048635188540590526630683833196574940397139480583180371498878188031167835104899314097285576105464516935769076140390439722275607064049812505471146752881067857850516542763370272868799162852587018392960434346298752600939666656317406548215498089108128557888086193276850423898329869621100760196885274641661547949223097784181839214497385551907409636668419755986913542242913145124365625098713843836638027703379218001508731833259069183068908831060460334069530507742364693172535834303094224990642549545650690958185419639164604590672566037866900505070551327948047720164305048888155983779890008383959786751463139670682849971231395617183383645815585963924538657478151561030338907707922535413664439074558998417656257117843439674390243414624417613296885267353910691749487436143032762307677993109892689784556829328081218335106242911936338193390599995772593750497105696050121414582910494530644497071617294443710484253936631886224662271042747275058092237225272745858951763609436304366063047235746115793907573374588933357522786407452896192031320028978325876562836018947473600836222778337014357915658949080275712290640722110178818396286896557371792991416062695202956406527494472509385171339104752287315227889487881428203622756557618228179149116133486556159656570627515340396732597334002824761030887451091599172323704059393507866837699086315595660833560460949161432429877200313323880964861452054920154051002682928075732297372929589371006022911471509746743716527834585467265800721852993538536632473735013892693134128220526811047553425827981059047319638109922196414366101720522871094699608523542976470792748981078393167370993218706368615794215782365280062033058249834861785058878106785988530192460458713777982566666429069567098538524263268255641584559245645279729166473477426728938905083342391007166140503065406069060371051600294318073075527045240160128798593756488021223637189343915450811243032185619144780489917255704583587209849968917454858729634789306094497694055956435566748914431010797210381113968481252399509937716547189830524494691744992757305001511453435463707697381281564224490990940577018362461332787382888660631293501177142568340529007028142746415528444262948490968105805017052941490193432631987973324021521198360680293204018556493834623265803096647900374261950907590186726348924287429291172990513826313267134589722247097920622357364520479196333769247446073479468032962292725097785026887282705320273951796143654560045361661822645207014547753203947572670182454978340200278028459634638199355976123620302872606421688148171897011241527580988789418137969690087772727380649474499828932886116699025972966753039787057661066269424459311535681645725597589889092015352351719642059540913039815439149738625898546241597014095064193050200060429991818825521801667020101067767679088552955878280566217200454664583356070134044502979579943478985772092359360246454198937055139259847968241500508448923058645403411724385202398539539107417301804885769438428503746734232446288704087037574006457827195831053004095675638842630511486786500746144576663028674599353982629347725491766560900442743196468567585203056178101682060765981294886544539467701224168444705288621171023795593496198136710316250442887794958389621652973119809213587654841119537591462231082882215240875646802771197801841684206297783310661460744813277759227723839704872218748771986573143047527138507265265303747782585608890960205794531528249115359363895839852977239534173919942703129912141477322923175128442314905450064898211285274977361754434978100469050962887684674775385108691468096605374255141385517790638743440644088433728130882621286329587345718344418194514279068559192348386521933053612319101051661040341383454332309091905175701301735594539936012700475712737425578631756662839942339287619764223611343550157217667810346684853624596501734578966694766031165355524412524302868737842222063457682493070447514250784624129945601116662694754080808371728593586014157945013146697465272792970966251507934056907493150353264867504225422522750167086947527967082550619302754140824718122462795772196742448363406465285702452998889551438200357654430568745868294284845768953652502254822669637898671857024258036409769164000563246566167503812997140588659134902008862344567738190238078718933386069260448306297546249733491884570717421944942245394400853470120423399005536892640959491780253572506214417138211794293102526096313206853209972838863302669576379952362702237801259317248853219652258091260357928161493490737311082904591747774617304535486156067361996654465878231789381108892632173541053603620774144725658264931807075642268460468978236418677656883157481375340230898530125132698102694182905448475360978425371555580021783632461163055922071991485443676603187357583331805917863441643379823563021013771175833414539976011648299980497930494841651143275906492929309084462261715164352052449373197021904294720878819436207389378473911623480803140719176971909573400395857811987891225514418617687976887791025653271032365438440528585213791220921530600655550331314904471236106465146914889285036377262680090999991601936519629374654920533504882737123139927042386454398947763315649333637987095792155208665970381480286301231185248270172375315162164429615426861643626423035624275896331226692104367411265515852985575806996164258511728011002542827558032739734425401489536073059822497514504187466215634103212464258145859362969927010341246004019037473316606653886291598269670580568117738938462104261590105879795193658910970062791537803707428227405887200020810326658383481721295065818086298454927499654152490355438261148315055735908616732866765117321304992657338892775700887776386027724319947508341264614778449357185416338441929655132025616099704480292369974491977902361171568939746421498371497463206171636498618118665878590236481379218616487887342449161036074962686264502529537170828115410508948191834436784067130738064175126616006014840861936146608235430960764363167754993405684280886528657272819950444203640382673552672547439217009400056785964442409668872035916746702540308450443926485420707278691339591141400098187269331376866666436487415973036248298775391973489709603640564491368244026176506247106988362333323197072133002675891903749083401779565901798560076531532976639661419874784741313092211113932269908147218127020811264640735550701660626722216821081597563737083394299346174488235141681941972655603191014035964776476329205469806300849360341133536213464446768203972550755287664313607618687457393714268977951091133409952792062701331319790113917659126706876283107576174602888509775694030727970457965616100477456546355231916998680850646435646848306366268940052405630196707237657917324434045118928139068907909374801024151226765090415546795148309854807138679693932373034497819058675861321197739736511192812193227557359898504900126424829442251401641808159046347692359552204025893205805355004747615247721073035424455668407273125657789714442124900379568013932011359048734512641182361361032081994496693864480763382205958879851019514542187750236209268688845989547295945717159181514967720147186451292208590396575652007259637024392219825791655026961373894071878244663165210983205771369786357831478389717327150806055718205190549089473485523620745498420689167799605909602727011967765592149667528051921871483003295337045161442056307680310590314301869364502921997649021968719809203083992495436292769920607287371959594383347172929249153334843853431468576090575569887046381109229537887751806478097254103299587311891338017563505431723541352394268398165958443109228790277937195994194063880748545966360521983516603218048245980192055355727074773488949084566422512280953209855652803312689078819754553962830382947691332180831151343002895236811640326316008211316211369262519850581301053518858265090464337642987677503525328431451854892527391978890358980012396562436592556348440040790397067281643070633293209419153884195384391107548513500413795090487098638308338885760750257463405816411773636371859195873103829187092081128433373340358076684154475204966307686601366010319148331327475722095310379712975476008200361125156958243264301284503769948765331321832704672302614114872562119679326510833453258854277486084022684658908772126997857244936486428855948296178430169568389226623387557243391061570460187638406460750624316875891183498544008397304469067963282908213122224299389747270741583833571609115974256395231704847622242595247346361490952471591170869345217992307687793441064696273298133038841466746316771059710364666647850622964545697702679324889602953388178086049683842480625293215714686485946878253612364624949018055070047149372780880971738646090613357991404511179927777964751794763305221373799004626245237830871620827879087212644973455018842786880494626109639021759352415595047936400411159379007347340145586664999119766448092770204824761136551402979080361940780802328473220640411623187672368475735855830904993636880783806398530472746746444453064226729125700667557197080515510691849899225603962127561188416604176909826246647928437766234383254183538843514271436158669998258557123883522116891029289175494958941036572401383573471602128193172592758240949563697028538695244606621576954805641440282534663391855583003958676905040115640749150202902479831601083089819721964696776902697953832291713645783247097067611733295625914812007765689294500684149891114620764354027313291158051956694600275938306186895364162734574886149578233800150842722654589205338662566011731588611358503379431469084308211165529648024574290742111665874777725346092317529985161552496217037833707729147028445400358775295804426704776878867199481181907217569539705920202739716754475044521226443486857952732652390903628284745749960420970269587730652510219523202830309642283141021335439090172151845904193526696988707896459732616259086228806486737294873950960849154197585520385577256671375134985883788867005349364560011246136234216289971642084989789280388141037564444020293881564728268160420354411828969545463822411965929314920091851056727919661433719262394078241741850386071552009717153318035628014715458762101318115329959026453914076190377217924393579327693329980598960391824997291204966786555778074713670186592856745479051721770528375719302058255044201453315114583550446142356756270827738938348460132315549438327077969307654144463895804693802827125758913395852436447311911003777621010000524202935138034623454044712343691306251050733855487973501851819864608153559397514121431281991057964621869199304322427612886449477892508876903802287034134248314257253185023085067043560319619834632748900896579710132964439082948552266502668850078357471997376124692444517475943325873333578889082974404714608394289700846178957931769155040953832808281822692074142100733716472958723643602340652193737264646392148621714128909921376033224457418975283306692897832640383608198721084975679268565739676590546263612134814047762456578010434307874665798162472617211080840842734979967157264941792904297038443343883447820413300380445990356777731765133218429254306467223227220338793074585284904891751947681331804931189113097267563267188720646163650328280792462466496285597499129498494499182200057332510123262227745197878787685166639416463975573426702205981245572357826935331535474994310191251247764260938451894413443724290844440210579484878735097206106991879818981134490587675597811078134852293752889906208298964550154608060338924751547416658771400677920203551204823456974991553909430225927561004793400957851827021997280408254829697096892564992808509941457844919193276146678757829331419587354047663579326150954476256011876215628772990985660062228690630452063858983016978634708739146536499815282303700433855241730101022439841080389705855236211212602978838121062161185635133770711863510035271278857339308617316197876859786616141545918427150909123285505004977088052673427883752909007880251607599391037177207572566186411027956590623936419543847439351228498119454177767383434585992479356469044493510051848068287625144749360914625148521117152027128858203103096994637604013756465444603242770607745671062867573599871343013834209182073289467461474545679911915622539456702380256693417502322939166939165182368379362704705091934125852904810923570029911492101741995104822605559085580738348415245945300251650118912740196774100122993273286192144372172561127407553141781389493491274515929186340090874044978712168448945244570847738763985608753245189280065598061515093092167337864481473467099576329591786821188771223042490556653035355909727294819534072487501228649705743940209749535245569008963522097151619702539184464553451749293074979021530299027025118285951403343948341654821974881104134160244778641585434930803001547982320604219287345734796162588439584933105465948609176429293571876744072278318048999490330155158330366490618032916430061021376657156970735648137562845442904574178220513726786456034338388051040669395071180812616581259094386024194015762979897804635699850436619352193923879688772196275599286582105182195486461414644237529101144232350459070994883193698436928502231813005240808915114437503319756690306213941127181182191608676219299777947852562064665860536093013585948671964212025335961650040883008288147146080020811995325898981656079531217669305630395207784230448005637596096841942883814269365446779341921744723735301481671764555825327915476340458648528456721333418397673744539957930125493063054012928355786502282295034480583366354538327245896943449340306636998239046937001774862093741977309575506531329986798520285716353976026622406780377970046742139499336078458932278859819691632369931627009497573580128459807855975997039803798647635599537452934900954474855267961705527415559308835694867482122179370505640617294048466270659452707384660549888650498744682677236695793293018948573539337650104469885689177582976057224855634708130877055248145601266885710731186165703169407031442903811472262909495533558198567887720257586984142998009187507348381854153036258169139124633906214312422925937987690579712768017013978010547011225883236295688809558202751155430714751475952805397856917529797136208151423239271856301661142300552134371982337072355984326630625223209441498517439486682188399874339227332348192251531568310055930504014012760765147111516861074282417681241981898127283664433485153618679401094499809853259163433933628597058327794610958517277771480853976790863592489070561261487986016907204050134439852834202850943522434859411743409135242052990785523106814892019500626898069060354873136773230785084920335985872280917577722628781065467865263662978580458544599118057863798365976430537685268678295026568399449134875457300996697926421574698490439922186788954629254501016896329166773922009855357661816769191294659399081529264730064719679691623722213724035669696880942912293801235708244562550656505896352533465397809148761926245724421142531131176273061634007621434264920432046626177740994697112128502254679527850548485297248684764882737286028306196685396445330520674593551033544322234742437160191858528297903599601052961141005231865274369713386932449690188149987439525040044505966780803225108636976475541442257512226634439637962466043566602566965726423390868375094138096771721140826637621105075101538815504929708941625646656406173412681390686919859177746970015576394733995497717847005224880070852788159072055309431508547171351421340957622152298088969658252525517950756780555081442684191834872903954277008936704506948973550732750103249331898329230576414012719251663450193338870574733425604012947631183430829775445641469195053935062563684828687550249773682688892839743036560359881355167217495032102716551524522247500135203747787139361611694027375583150724590984927550903387776391660136490150504803225795677579402520205660618278503662074246513546644894275736471384888809251362458491379612176598499468940086338185122690457147217780464318765844441412089966069289474558541537994283540487115586644397710492088107608576856217536265755473588768157242652435027397705603950905701134656052759096696614243668273247988236246913362904430713285047304065454888069568410956171463396581671640189861832457154501483418803887537052253144795357830840418039091235093564670888730833937264016127876161930000479224936221001368749799396555091028644973362142171952413304753327736480130734163229614810245811637230161974715421835574437391928724732189880061771632048676449995149811630950997824523709799718368972516097394146718244802748577502159091874621125075503517363679054037406967321016981392662229277873819144507039844210943049643185549253956784012753776086034784630986969408316999736657570299105470861625470245043114575378006381977122705471424990146856720323750179246002092657794078147909982375351080906366482733278760790112673147620017114897038776081149836542998662212875893416636352851321455014053606789165752053582033623561088252304641777603229769262815119856953005594710096432619796109647807973562616788780528847321927103763719149501761388061562367417260312999749069694704568439446010583489473667726489871156721620997257868603170978382229890848183344589561478902820730439918030537188990639922660778385141998230749239362717145821089448469233840220521922823050776393020878594316658570434882185185557481959234944924919755839315671266270147130187845586376804902955264864005572606775904476584300615270780955334183780898138700061753666123181278860196686367827676492598737960644646688677603938005494814226094942373580229733923911586689527545561699872007226652327014783210687300056117149775836401291254463325260842387757588916756174393294592885866811885424753793727848241284717487714308929311267327299549796947073249115957169568889967508054559087946504545971234391649452315858747481892727427895965208257276547112888624556669935030233100421805728123653442541880233543971546517440151761581609141277760084483886992866893636258503773684431087897395790562040162147970009462090366091596117763736347218062447737090626597436267140363913828597800998284102163479393260230795298518766891913765005099950734284178421610668641925946598488986793020398430039810910959625257982214811332708761657244701625811583172297096289162171906451642056515786647579259932785340333013641958636968461406789203478843606163226499646730383590987875293809516250205670860146501978390157427009465430935477031255510597176122850301500039063489230891621879189389378943305093270341912522492612497281432221019465081235082545103054179528292063195132767743018674061842185308057573061936008075856022035733687560604162721152516531517135319028714724140830391857515192215085492479803225368453459762361232162589628390297498438017184577933655107227700229701584174753801173547964952826574877236613458713279166382282263665597998848349199709371808952294741650917536608621515006189751212473863170707751474717845313579633421244315007639773043108368138178041868604545232844172027556657437044253230135573598574501818289599567438507858109852833806909106283690722126028148905593859088678519086635018643525368687038630080450586885282091293718313233666828286713826578530848196869638201474763268007672789618955408984824460969362604630426825687506547911251502001168941255318404899318417982649064863449965713763154467176573379821250977161510340579871902456538458832091878501761400273726187968678376854041941531459542915748574133370169399915371565823850033649721648926639567872867106338409012708324052323900477439809114868077301512448666734681266490586420261685886286387539178062276117832568473502419800288965237211832860179820483015694607414216818617142195078167760338064070775894793411092981573862325838018301297350680346073574316008190155776825313500274350707731202182949586418574207103658293905643678961742612420703212805703354679922410919410598671875879552318736748179733009358945581760501222511222073252131114782125934109068073530106411095095179925701835038658589996188105108632360394288477888312987454707594503571981809987458524230666952919364341501283247468675426148901716617241338366118360219550112955819158887492621378912027152228094483438069795523514342442820930207060831260530297922575410188527531232266687455881594607151873600220033646047269156675253124898955679333384072064543878682359466839168460241959829870160866290787149253399193313272922758402865205850499110623217007817060377383332149167640936559509517834650901734734140358420278883976921483103487372834919812685661090503638233442496409569281894543234659340522874073995228951139204756567158250967489418160038085677756640631943199276707338340185982332791497305205526873426596458418044263528506276452248077672364321467247155964510460310714653019475625221894564614988699035438911240162049546233337391019685094747682936467292421417231777595686308696451303266378181430616235525599556346493325555868345540201793412978857511774113687625377475885483037086233055053522367058766397616290574566894917620331140132767197901665428225867139424672912370339943626424644058796189379886457404724320480795015671072581168651573242677510106279569908381854780839991304308810042450526483862103479075863235685794622823762020786669018773508247160999565906119662087644625665253813120569072974581766062448743561936114587713822143522167337001975469635578001133341705717902795110785587790230701842136843626756907411622859557275115363369975184052294811555759595016703070307250697989026005241278442440894579211525185730033876035096614634438463064410012993393455248622987362838446892099608712103536772297488521683529852519976783406758626601942180879308524218130191394742088578012444170572377756951926798739669882876438733816229725973302248896986708996607949949674229866440439852966183197029215460063438854362106918172743142316611740371475562019465460789935796180129986236935925753721903456690415819574592870201808991194792716615580983819736347014270582947200286556271963172926669792120981715907144472647182649456872748313050547621672869086037873372139716759170675546721168981044892780295751256630639964947688656754632822351293180388994816209065897966292562914014263611260563256922570077000475779817262399638777158911163138771129943231674294428831908622513181693966137840739841712722761491116495185755155950856362155055247273152899144059082378227523869421359703126329734593926279353890656606285197240884644008859899483024581378077714757388952474582913946744652907338759385971253816314173238246942730281324743667739089836846233367861472718541306127359498264719671037113421578868567454085110628697369420136443205540252194106828774314292186521373321119887172161960852564944253866184752079558143557747158153603761127200167175461630186683249218904712375576398832602591608626258670989331600445469269709151623707884175625363054397257948420200592160838388261668744145546914245059847156473677030851699814165965214051634032335319675836297012333856827154331947381009860781326638180954033564981830668626364436722542950435173000679606932947487317898320567948264883746234098422262621994979310278401621128441111782815854038901436718596193664264462907417366841993277185848655489851998368310866913967069662249068568039219132195158271189752514883851961875174755754120714579023204250815715122938964925926463940318117822228011869180070861418899245500958531256688299232459553689868551261455414027017338157228321844237053253771372448251681210448495005567432481730277597115116980580330288677580260181909125498323883249723167665686620387549101902260495415528870201413495965823838616699623103032721052979888754043068799078351633777972852282645086031322801855168775163079001112208351792245103703235634814962417622319682393353418569832680388982050090614412118778737975735250344420825265356428221114292447599526219392530025693975734235134083328472775435169706894906795722594794422118780848016273554683614336184174443786960928930086277031847576079944743825705361134007918687509110032011655227353384038845808685610670555445698106536924108597615536488044461635225460813694447350098758413633719886934671667744451416362371778054218336995204693558116610667479211253402836092931299233528286770792784761925442450806315004871565430430165924757503712680692155964445591809120537217192172665331657745187312410827952215645245352488407454238710321130726064103427047139962249654029823247476769559556706155304174326562086959557981313030788605879346673738648022220454632346680083419942573702643714778034539133319383341401050778196815263409718153139289957866509150317600540994998276502080691273784975771780028839678297822110767427012378463088388686500673994621085199154678800533290485854221200829043722540568647393465072693632004203870559032839599807922310353902341807568819970142496657716125990691922219281356521801667412347963534178858722499089599737660376205690056757476323245108983226089951454262683440947056905854016334995320692846623788985986459082450492470337468297756763595367363899351800353468480864946391813410674326576510423354224561360060650104090143258526353667227841231346605845684788652265527329228452564731515812898061171647714613082111816100871235302440655835093815786973605363112257059704447165611338998211258976922834329988240413557008324070527529010001915001765098656960132456670549599537582601191315513964299333303845673490544013282887087548968521536562902987872013704941331519775986079692919624525454984949214742399511090791112251102421691385725836931170671085537523099334669450756218030126802557470508649134147760646567805505647473417308008721061265637147607348693044096113484497859323144267077194509899867081676474024047056835069954939288090082573690643681634011406475606505452908595478979413217289225215128936073094834874473205203751474445437401050977606553085726161313769282686395719153802624090480215827639597511714979408890258619074172864280957908021416650265632793920762023856290856904871218336684967940861611692257026886744334538024088424725363526366973888976814243859377367103871046835236350050531883905940093679653189786321384571919578372426883062617990573329485212662019196905934066593087745750636348308011668846399188799768633634910603996279491293238275332718139684789777219837592515395807211334552942240820083258959464092083263122894240115956547141811749809425633183156181742461289940933633906987326966478770398829590760683354088410213186635445467874618295843815602441870877771052684543398206262170812993766113391852252568199913346344380700088657125153801498733355259183216773260984197961698868361048432468322360581539835116166532873342141499000032445429714977667409031982756622993362604947425741817296478590598609446810875596589848149634715538809335265817019941583026791646149808554868809830648369709327913717810290204282404588379884076788500311096146033843644026371487177734721234997912423640755179366477034798262801880089351568391925939616617096241933158523688607449522649874690808591764369872643797479211613828641285546591428104559931404202715610094355420351849363585394020566080819182436626085044387994110930018228056699126995567425069744365722666135325717673434600730218907462737122093983322151209156224324595188670973634095038439453920443188060930602425921502281759074719835941718466240102020084764268819739956005309117970802930056742301407319776222793293138556751541210278322327486382853258550232237004032375337020792874356540985064507795504158248397134228335263296008524554087232555947646596297562148604221463387881082626559202363790038202897065045361240337766420654069668043224015356205454001083509839943725065109372713349191068730741272095667731109631263213749590795116345770299138369142522088850063318555392754659575891528501261917409605468811714991704120121990623915534095875453585987554119012794219676504001099892352606344051814173800894762155600820341726792115730001443239738742588155975882404164722592872545043671600319950672187151210155890233253492931867297144354906230761878138578036960748868752454794897219598624809845299046615798051815233196998475674035894382070205525658019868651984903474135879294423089024358710342979773033329591978907173055971852119175327627780460485791823366986444155922069803718567497163991692229761508584455634383924963617237932763989186909829784744337024088122641975457548116863715075477736667573046882875222636642250722251536709385057964935661653814675378688566205141260852237593733712093199124961096190774034848354231094726021574637486585218098880134165589616307248117396159683931678809612279492213728072921649610425820850327615576639393210446533931368395118939486807913412962013711007034570396544267179138765381836939661795822208436809559099709547127666290910304001513510451178107862789747310922853149498492826977364158807473976186259652931796221165821786354760560206810055791573221745326634625888822485771355031593810410747637395388709706768111126659005770554765473874131879068756596201358040083439033261236686756253443961376579165989044783306179774966747850567709179129444272047347596448134588052828258416991021601914316270051365745367875212669617342342760966618279427655604478592980605888110003675526991555524891107841422936758423768357635852125232042497300680973748517214286629861576418157742502214252131909758746572631294368906034390061336657086303374578547412582597213547403423847685403799414794509784905692188059767159210657395041097050570077820619308291738336823176155094736946059840848666277341412968849345535524907581465775263121974760737866190110084069914367145205789666325446369372937526687427121145084419428805286620675227577535065502183581896333443607321554807582985934746439300064766172799363186140477412353829033129126313900367340750346459412216651707104352772750972686008745759854174504952087002354275352002352775134587969843247160900868470686840088181795294674562002281173053868015529386815961072529775556707797962716573412212981655417392666305470207431899130836492731101994217185227939427495976324479107864279428683603878201124502883216081457944760180680442873691972346416744585102010084703622267611812911140229066250041830154003048302719154107852951237302173621722520834884391648746847830595776679810919660992757486777339048010643321164600661155944018475120643710911581423750883846811053397234968764677559032237761090889595206681029666565744174637134119851217844804366063302037031171536541642118992546915869478886976957307357610582099959077817751864229931484404330875724339574042958966456109384586773692719518868661176911243515051832395234775332740376166848323827651979206812255978674665254534459060475972271706426602474752354194835129855960133210715704643506555111189925710971657790047259879490954492706648151049243496037017183899887546899734207212829217137794698898078948594052182525846932597570803928874473539971967757040734296065186960304703647225862116333704648320075446008549397191001505576061010654235410322316282602201702993259403684879706492989096186878326655563056353909322573433542776505108546896649556067969761944677640645454582128272213300886522302064669741845463904525710233716647605066094006784568752997998260260246525020968540490742361709669956789283867116731839388958692373694938195009571109189518156680946575699414609302966567488610293372471666241858308668899624742588317512813477062757902573408399487810951785930655274243952706751554364975411795076798705482115115911337931343837843292438755361299172409166853332202483317661499351410569882358336656721723306410409397339002370520747439112302732274087839573821727755314517535438263250995975159397783515627749018901275041657864911007407261726966511099152352074217932962244580706637068936844610075252354684522001838500952004980490964393908946112733958484939445427239872518455804344172102970752532397085182809716187926141760196170755381031280033242299341039802947901779482855374893653306986243333203470908601572353575397525723834245561210947993175802545960288054172695822735133440761872695228380373591497774758525110678710554326913448971829511482602660090212374278465202142162640977061354349399838096275039112815362611394921001487426683392746062197042457928016566510472852719113047981827880705676847915647675844573791692996530690100865701258576125653235504190775170818018627281994276217103591302691407634970126630270256666709944528608596873097100683483760559255546416470449501054495509115227670297021351148007941941557378652779305505135562919346660325089677223790052337065811567711824419405557613980756665217043929265905883750390483344466726230846846314726788077914327701263195985140719715728729167478549122585699550649099930521421917097861836042334485679437550702725491587921039626389357895814101768967188046586747777726275683245933812199306662121498858860118306963058579672778032638179321630504279230540388986505742576759548891592528074349200956771129447220888348863621123091332132671093075697876400657574120436864619392763220698627843548252288198734549101989007889237606793127724215069186048145572392941785367045368083201269748773490169844666577707640547622533331919677583783997795768302780633142818255251623936989826521300640767788651587563992938079612937977010647503390643448877010957062204764228960667676135683323624880203340739129415083877757416434171864341125850790630720793178132222248411614121445692739974282681402675134461624802277506928337493906847168062413640521261515839195729749495279029729251498833221986618004394087487437901202346282571782648238675691685173440270642815118452986633344211031876274089289130071845476576798683750138298997175367263297413717364990572584600237870052107015173878744759589109480402654703931054888717415643224141163396589807253385704523926505231064725538638711729539631677354074058790750943891533521677515627031945252483086405482511810873863922488479443884420987156599451910205563239014100201184505591638941868651937962655132995328359157490820437639546439176079467778140360147175240205002009722397378225848086329748634255403734081131287412990557277259174754778927505123621442192153256237434560795789573579784692287631447236490103214977823305189762640557174454913236731551776656314690884966704766654717983947888068770712850238834978257567345600527674356335079684352330972333708971514177490591917111199321498037671317915565936301957928421035577405950778046573743881026189850154128832794780716468786200711389106074509226472819130183426536939151703101081238124970288681763357250310704292340691927161634835771511999204004310526080084703001087623059255445291817698514714166669705330973878775212790469034297070849237913938693249731195342514482303977990859571442679082556836850175753683928737235274342947541339626741319226398021860553713455008181978002086607350430659719770997693444866784088752112462728732362006403854415401346480673646972276726231060312585336155139440835404518914780804809587253314252560185345495192516716812282924237797053720581904117398912747996792661677052895833804655195900799067984608316563722873354369616546811449561258804999004107545161566343106753346769698589234143712216319593750581173557202253554857148224916896641493623832621394781976683165653821163270600767378083166934410894361158618734073576414851509115095151169291490457682997321239165414169848397999116995717645509926414485927915292631438060122288282819070212308261445583730661053333890163109978694372739387483156547421129097749488519356886172051180324318928790553662413294896978394719915794735180226233892120194275742949909812088084422106746543611237959045039084898323199034541565192138518194096985098258382766605468187634988870309385258702746016865683127108458012936379723408803783399296476216683415783385504581000151886203445522742126387501317606092452401997703384806532058431812529858397948350325990631641323405987771755429838871890756380078974775055863271753109196364704603630591084007469728238692803012870784929572509894992332583687700309417453320274690444833491736260763224597464115279930411888037219243706646550205824018919257976069308929535940281889090220957044558689674235188539136319481304022300929845707712918101368054324340441126091076328481371525158657174284734580636993746674477388939291235032915250959463179456755118585433938506333011886791316137736677750636018450680008957965439601760458656428614709545001573197389653212695221686698053144878603012238076492085217935848042367463644476590612462241760731171767480636676884475354887689536500811379550487077187305072544895443820498955779734475609308417303170073460805684191099253760274938621751042085645687530270262005266748425955430315307625040503844155623079884646544968988273646912881071516669210798653980954472452031183375889790293247030405527979376951924595555207395958123010515536188956059840395964524471027276761399825217294656807279358177805979652264694611957121589453219602229105922282787155094625203970264156198228203593835183582087130812648787037340300631635398555973043015067455676538672305321783936096282633970546596128162051950174254447639504015855065346954420801849763943506143782620505752085004959313547052485097036981954760677561834511669977877260819862032166521946044561795800882747943783107958334890956289024234594815019624747671604852173330499513270572848322077042967512871823693229984358043742007010474044269835046268437242016851790855210255056650595989756647856424805980773826815009229956412403319775882785386885836341256541705856393346852296967914602029932746405996289727277478057773015539865809686446216138600053574581797846961280926478177585867053405843158693005766885603135980715089300686548902188931980658696032425761409290063487810874474023184721148258872563528262797171828216988935645672411359106161570337547995936130992164376837339805591113571744556908699645408418702057387234188711423226235877297963142819688300526232684262623050385706902180488506689749622093199912937769397842452454641483589068431484275994308393800521687881611565243226479414767968080051828292518727026442755416675700452914186076249558427606783131879277436753176704967388444977656594432820378665659479583247133903476974265789272967896263770021334916823912156174876784034634812635114067007768112688468443097045447512999654538568067265319237394461114622887717981472382290117958287962081976371241509524465737829979698025359263899168147239608156380116967158266016543380647178797541958759012081523667632000535026506316334932903059446237833952368124481787274358338792555739496648612518195284832352381989118154095379899088784718139779112578921681095789101257391272596464675414137818084272981010839176942146436578292454136656326143437577176706380574401419006063707453898104593631680094839646757843379585298074559566723484618974323753217693979873521948322273394811448535869577941965902732141000539238318200470589889607569699609432246890487658797253066286189174967115017348729667707861712141505809971323675839937201545249204185832285760584503526120320066064951876206052599348146782059351142942302125863096418102099693490908338002633689359314459771612646662311891862370927334461706638058067227616606121088676504747049818590737513333774139326735415026384880359029806082416270456290496147779501220803693501090657003163414593628987037944577375024643546255113292087095221859921464088519853965211999126781321129421761607229848250454533222410608999791636905795275415590203010087117773983735648811416546063150503608539755407244243750322654499625044135110078072422964533633041559557842155354321519522723917250298667232878186992437367162592402966742657891382534819733625089697695423430576294375662059767482843115938344297421802589751194259249091440744453391519096158920386784863791478142658219376398002180727585205650707800374298850285627449334586310777492702688692553182391816190398873814585199687017927650439555321861465827315739074663376979489005226280667681248353253885733988785980635042543211410829935588686630931546198290716006289299287772111998510183130463320662834182083291104893833946639938262811323653054943462618006620601567443028491335199669654816429903203748927752946637455269657579074010546929016361393330750342063785818358623040220612992937865901031676896036394052623640665818847921650961436020378743466856319660222568520501311966068062700598691389081257149074541817872659692011963952750268302203211844797889126802721777508697524518823552388579466880599569560598687244203850190116518773039022330315512971569990760285480376403944603617880900517634408868141202415907143072035314544402962021403103079426015996421909230578201303338668056976797005494652754390841761324609727988844959589425343779611150431200346431271231809590245463779069508750616107495846955621752949788583453726090535307284172946356498517680020850236160349345452840155438103160540534791582232930898839182355806725479062410343704423447111048146668175381950193392835226877811143171845294087799290017516105322715875044533621040945372285331338182442792094414863973999700113615957456582548678219606600435971147582418381866785594789871754392219305090694244471766502907959958747432691316677010164457887351523383628417743897802712892730654802121518707799923671731191119176229159347324095607860113569340647086317758242700575909848460491016592219142080021532214481906855779563933935650298814024331474774887931790820166773228633391465114541625760281563265683659455161136314413709144489479493764626422243938422104804137257599378284492306636676924477759068964607314285583966754748609291127034509565422077782933421415693345588287806489930599980680485357283459109019487892325029665873483620675718794550041278867642833981815214678705348155708894033697615346910905348391843659125896411897121769495151573448506782662097208455749445706238835766612897372032899800756879650272124538849254000086895959311560429595970293526862778892969430122769528799297191914016079740968780134294263799678285169898917460737860869784462680490787156516488482397351877175940334601011127763132367756685078547378675822932888194350957064596734991098538574790123372469140214536761279398260279202993663838561049950399250047446894937361966467326818821708524967164170724335714244221294791846582237579905710815178222952394082440784791469672480326634553070809994843904699543611463049156629387092549489966666221175117527020287017177978776833229418355751460593526315790450280648031419502315855849904733781805421416241244610653846809685379915184640909019006049230349604079882314067826236730062797043889432900317224543746327964837142657771488785125137372873504743759037264495500516241346252128146773065516501449646938691413424532361549861031723692318703937378514210586840462709799304993367352051478702641722292147822647969928762262394009421051293614674262232613459300910566273831533336861545970059053154099534222058744328638346594453180900627286899008181281120404416006496855022665323607823881675136285374276933389990442642869845502126779921854002247534927822929379215907028216491962523110813334262749179535279116079798211721925249355334977855062752368521098268639975226375535552485236955338298974179109940697209561607042228289067968900700051749974326509346839359215459894387949148072699036731518875249835820053746272443956339038458177317863458084686108510122566263798308983897638459890179725158950135004148283459311660730322825208487090473660596944496526335075030409725229530491398366388123302864239215421733551989860229248479708262301914079639562119622968945697449937348256631828693701475159897869973402221431509384507522544285775308619042254500523281713157907204356202587210449825353908301595410726940079725924026238797529426614636531822300115604913316940361514293676227789064513368409088780297503980496893805898947283411816343576700782978895232606930460095771892118572462305914131426040580529720001054465796122881064118883482519586181812687260461233069571789037010728143898590286826706789614878643044201685723669476020398242371156597648141821126936146942027976486298337925481177216198785139313392113283468826386554592871796406277005292261827001035619960272590486185746199921133320897691866099015637265553167297649815084015951720831291418399759123153952397433413654055177130440726645215195648425934935681433910904080918892805901554936083857485036104614073725999665670126454020842415933214732231955181282910260378249364677240804538444386120699454471768514386510582762843400982521723771385151515483609715303566527293546256917279662313178692028137945427052006498526109618328855034297776638562283015995146466940406543451861274461265244956478712660683559701619017379482133543592037364601396681965738216254430327207591273131407169294124077170867009802321063376253493463298603098694969564300318352919589660873395896154933984582157847555003160586537767062235227836991265004338107019701764886466332403388066000193887663326356172071030071637128356049183648799497256697518610737307908061032930674216087363382207983312257370281227634020560505286481385847066712521043320750498341360349848028989894305082135425572214856676870803779126977883446314221783391284239072686371619466601662187300851772822954751671639407464057946141744631322450453550103585051054087298742001322601720894767156367193791489192268808259213397852358194345276992247011286711575310758634007707034105183742668648573421254038420696735205809818527450600609691186886401493200081860295664662538575277272224729539004677510651975684329143232223841638572227552890024960722898982720067326455223442723675189103013479825487309590042181855212356018083438368364652786817127863954250395080177672744845724550257977813950037867315315203357325312388128781990101233363640703155859609289208872898940324999835083704999830256008741412383419751059844742613576534134255143573797372800119515515170466935426301759522953681781411638594218404413053581310933931293354732008108285435081174302808236089117220463650311360740342249499484232595039843324382480601285290112758329568435134219415744269302033392989010824961371362085656585962466306148287344129488765641994797223161776999352506623922584913010515096161470293148711615420973394073188473810847751310881152350511625319788453308868937333489033205889019294998504902687391497937842867491599137073103078990366714388340571551564043730748086493430986481874190906156798775839041677408732879832143246009844676258418489746384623915105999632288163871333479941945610270803894219420545967476100862027473888064509065972695890914905092941698136062428151717342049103626471840759527902718150397296789873016155367476323171950254122078990747295194573452090070541395164900761357655367992915288840629218326632551181234476949948857769610349495890632365858052624715559557363970489554035560137689203695346462389680854919146117853297315079434691668890697163452710078078167836733522357918925810929471383396709767976030678341385724775363708334744966084896318980820225508842918724492274935533462253847324580854343037199159937000011892120656362453820421423037466805538477184176476004954623425591016679408878771221053588177904410148051723718946603594559965788293482200831627966753544608494769492577330804357203587598797799754832689915986365589515492059694167587467912341032214616413885916563458061614247915374208263188093069570817681842637621074646189138286651876807105646817239608090450269555971403603394896648085087289774886996807868982112011917628891938095458774455926951144432868938916476196740456411096324406725021261153098735062394769018718339861966283567930162780604472989253352090290375642004987591582570184541206961783847238146936412408693243341440594966791611489704178761589694310265506193012019969188127805327257437366496748276975880130662475255793891819232407685977062966814144469068702468013910563089367338671224075711604794186064443485287194009336012459132024818580806699598770488978597117254000774321337367171492532467528703321631217309070274736544476868393386302219737968396665518490289555068738404879160423121409186605048483934496581780012580217543668946227529564199869949646017263131503604142769383230799920133157507772417391092031647040254782614045204014094358519160505673853255434052660725289028683452358416679676939161937565591566669739478749181762738930156387661766235355989698619130847157103117177964104788333035492818770853428595696368067173485042342622197422222508437839937862088194834868598979385045508948025009435470957390509685945450133126986619601626970966730653109511560123952563107635134072095717448223928513091992144828356162477187684207353143042603577347226660008134971359022991724792991885376581452718692033160274156678675842369571444464988593419797026438310215036526591470331273719575293404462678817690803336919162011434688883829579989346622311048113014532537264372257418361238500812113740253790176912880850979769464576224978546004485137742856757067439814686834686089065311712663003024241558744599545234835162779499932895534651033388414771846306337321094680840049309124109499088985299718818894264836177080584188207836763738914559227855590748561531604588657235044429504999089011711248897850554865592367721560215383556777107124884500914176999980612991233992299878180477190081537021947179460470016416895863737896802456255811413761478643600948445841216387545472159191785943656342157830106798344063600664138716681389340078793454480357792397928422612357384080127745679851532450630308136739934573337815292345312380771781525090744047048645370826386941563239689420966163390634063409799792848629297829268624627345821283671276077305079500417166315382152870400280152933259784011022244239099731750496385393769122343144145452052533339276870914852930053465523158669186266674686328695993603152801751479164668981499530367753381488540675460045321306014311123485654160049120908882502217137415508380330189969566360288771947339550954825408522375373105434163945587447850423835876771170279655850452215675868394823839145575226429490798569235962434285482984468962345780640423568848522001999151296398983172681291363051597237203999403199630149520902433628335856922451005257127105948374931540083991162437276423567372919673412556644590607700773186454056065802992606534646594699284145969979649513813950705425227587623744373847111933010427065624061028056669120100297394681853657817473440943778229682377376131630350325421127014196166937849350865637015258754755813011380978911561042439698677349551528441177579455220460592397836915348832990635871210130599092171729132376380595654656202652716691784285858444513321355531840133068018653708896692448077189768222526107203060584229966298519520519836413658651746158997758733681957437255593913752929918792992304180741311462460644927374466156177080140316318062777099206575960279963713931739004404312511148692889949432172040392373863386143105413714080637133985973338505326662944887689618116467517414188034968426385382789693836770900697967006919338575219344100171678907025422840371093496409621717324334755084137732304975156790414295418696402114803902371202724232835764910648095862886010363844053773375102557094126128983012308628648250872903165979147241879831443218175702979226364796723412911494961271013080395813447651390894695739535341121350707670390945022043942445594216963526742812911698783695128598942031242345322690276670124633596041981749305560803259704824527800415129823420742353588807568337738015907394125911344546382962854040215205661952291782434941308820416269916647839616654779232962476001114188727788374509182225330962786656229803339848307545671076133816129100970369563610775491257491125003019170767685751389082070458420621093055254398092498449769225157789275293629495949093475159684082651495729417521133020899013241300948757641916654074240875460363434656195849654517137082891758335525553462575222765604539616103821804315662016285822333492914779182448173099872806566350976474482427814802516715399721407630103449969502948771148618070446874719011461663413734939407345250334016782906254483984487894401829588892007635126988385205827502578128579532921835591753192581758261161185886924898571681620086601927049617832894075672246234237325361821604920545430687092607888547894794693445945815371318607487768475670798664259907178063199469362670374299907229236488626527093273886486455129099365407106507330309540809161937499329003190264330731086572119687114021744079567876498066697753126555365870188436240919783142420174482043849063433858840509947002107864453563738713736775098338240989057895447614200390937177233695668194206677941526358824245167075900618215431605547236047685729724263359137547215977967324727316612973069685388303773007942249179247985607041060037106972092117959858992191550275866519436339379772019927489431141909508068823409278596642537435645881773873889735240967723782392465122142960601826337643360037873694623880251651826068738905949006470952084420529858581708679871884631082286297858312245357988140630858353495319231058773573909079321273438776440820867219620829346715847796845930479684756018338115630293615695046723844954462350294376160730209977928071923023054792249709531970741294578181210207789253413624755392158924266768487227709449439120491297143510345561315695115940105903867897318233933227838030541191078446680597096118813538758394990031673179982948172466215000908084824876218692592832730078712585656712006828129692019478177948719885213538780747781075179219170065874274048330299017660135519041382986073537882160062895967017469082016591020518622494567681708842352390493983820844459455963961524164486081918196658510903419428580987478551389145421192642794669667656264790761544532730266072121735368285336586028722720524003319661136458114874572137270030013388288689600091655099548272717173610793216159111365071152563682601619724467584441634038625850077267719886036120976856208212440466697397250047948682043968197793831490935388730864744322512570945014283943418015323241059552199696616881915789455692099061037971041139592416841089400684957581479381782821280564097536527812728390335438874545546980292358847198422045401147039664601138949735754275972896137018390486151083170377277564104781235456858249060660673317307780925790959508023559547509676794103427477972275694338522654336910177370882289137887202461065089880634668034266696159779006289067347167806321116864483374057675063263936244786956114611014751738231616674070213112552487604719619616786100000709196473236053220851612196221614805586517997017157617748804281857259746239216162508077777019931588615179116284529702228460602684662172582546432098268017279396579059658940261505338576779254572896626892422822755328518675330656433401254813040406198431169163618245032007736488705827882048686323018885246072896842587479920079746946979747737525538683915729439559436478813057466199637274051341628546599279443987094175189803227370438393715886337185843401348850440508558171790699055968890376282287896903223165158176100442860699707458703410030606020735687300964427603190779927290893255034843331971103162731996869704178038206780600283470577003941722045084233936907975819945607466518603395800287148434975919182936676604551571059744215476623307317875656880360835581106996467781628389059032212717676440578618707647168394765166317466649491121753056984713110233620411324804900494097073808501141833705858698864127003267980003725835117513934958062705114991036241546636987057264358992966341399637094736380161129919919653497232292789852646300403403526111867569568781996480133262181019299285637221456516043116289373941171193700482692167559978357801731491920030431413442612774678635484562270374654337509044498810101676107572560392753799348329442718522981684938246340953298842571138182894327609901014695248172833927940556320884406963172064504957208379952434938390654465927015510904589806959688307384599323527382536886980602038180294197211230783608461426594983222343800361457342424210305540222212011798131505915076340751505716327960879157877370802022910067005374807031451460480480107747270735838801594160938287231878094644753506865927376334249882583160922812483388267450879339302054691788424310751195871152218484125091810481184976847675884866973792417000745092301659663567642046202977182300066717710232869267679701421681221989509461277898149099668434891252364689771017239607684905730079172518432337175562902769470866870691989704460154520017011025128579545116166662622002550889664923583915703314315983737589230314663480360717043990848578873498669047575553576558410282749490079641913206787896901804584475235653928073682469718278475617537156487892908634042825974864536829424465777415890507817179264475172732519186320669111649503261659170319393619694451141042784579665751982664793288436189270592223766490198129758355522603342837340572590665393786280377389242453396492588705686523389296502731635089611378525812236093009314229938414572337076593900304589732483774498680790106985430342392277972945863135614462246341155764990453322720374824160669904050311237213235950096702899022641666031618008532969296271764585353143029364186881187760608370308867838737642119605273362048715275956703726605749738588353875626816747515694157603079744748647669838512726663185525952508559535356775893172343463536626750298947028043477183734153583877733726367396235489271328996599429208740590353476728067122427797664014633872862295891309205417988396320443100770741098313893637291400489478939633069126007435024584605516478398583129747479324485797935309235099109056217186704446783206733968439327416813571745092093054610788071317596294259124211607526336952973334085173564519408841593131367524373536721498312661449198378005899654159635083248524521080704044305290002058867222306389273476368208969604942031548085210754405070754771068007181004349996465573043275372622805216289691082841299851380101821048216061316496736129188443336506245478992243336453450868800864200477007327405056931840002375171829012071109928663713111145236076279692960085322198981763668519314902310246085244851293668536428178939213765764060046797379067156845550425342903933329914720275249886949542249812094678105977271024855262398678579785658152229998511693426217088959312856842763539007044639645854281734818729013586539371107198328152322977856813340139189488800116481126805874164962091749878737388592820017147475258399776246962613499455603621327325388640083104467160281155588347880678182647030786413964494084617717440646835294676702729649438655113805215516138668302678060557479582946492971991544177099383408151046056553492585165047441084519444521594007985484190320985747679609898306780412317463268610040292378754132903566992666939340773840293876080796483084809841901561581411137680108819510758687924559780823276963185361516359369343488374728207662641952295085454738497062968931764933685099862855116372069117602091684358141095060386082595850953779523086873474264442503469714868348836234572088237335603502239939067406803892884545156606475862110741548279661787361042181154106005348232991166561949834427339411834454476350245497803211076949883343969748149261439254630594889276387570253589157135062028482070059575231328944450572556241235594615295965070850035591857143547380856002034527137514022654494519689682045442293709344625966828438845693129598062920618527463383013695707629543030492035551962137076856961288770452510326090757713942771471381178432769243387782191344683446783411546367178381391534316033663878132127950870072745335277703970319234755781845460894972154446086970873049395167010839308125458525246244113229658561815650355707845419210379287478005792076570276291665495446800684726431352428867837614427402050183286899355216414320311984737903930924322635261757049338767882328349941297430997958285276304253671910784556807136822841539066075239046219341985049483419148490893825001293576016445065288112834012267030301131523911795901326223368592430045533558618474362449646051395909231942350501127859953105744135438349626442827964051007391151384229936156029750925154916838550405773299220940376407823955865259957036789672213375609469303028908700774723751716111384364995951248219478489921927314184084480676923108127621765022459066918211939615893186422781965852899292023916816646522030374636727430650895234827880160528603684945873728448423071681670415438348195561730020967594536882534921006031931095146062527051416858280776291724150681912269555291454061910552198709892189270593474108424993330637243557780051817583463373067757962400636205630495199164031906632931075406808403386393382266404967093501613525313463026887351358642995668285793317164740688572535435119582550299855974677027543213613589850672170376556497170164988904603619596186411668259207743577782785864421627415664640883986650794768587794085408854339925259262767920320678085876085531241951653170182396040809105748603459390449719798540688170942598063262164640610545664784279906562079004498420480816294446422410721050277825807596782721670178788199572208472858226699668059970659609762024213316858710933501782761130104094523142104985353678238608104313354727993897348411129886599863026536085532468716480348124894619595606185531582212181237147719597566938715514187543680518822224095164559198224986691186324883610275799626914151182307478470615565221773705133553903719266954691800086338861470165091456446260775583541613128391807536758424755526640297174395067753612428810318550777850579410962629836814685786618672229681381518185515653411660453442980033495544707733305363560765328527995781937252252056702483610292711399879440346025869454020888739393136324300499167587905870176214938412546380332022027341940139303531582474697876183582303440043127286177327931085185480632800684773804867799354232002951925959623128970638747598434569498123200907664497701238058491155161065703616761577033131829402539866681705287159877206123599554828502327685242117531383868737474211513317475709747289200318197671522792611501380149651924976191673578561998130576704310954163081176234178521035221990959485945456269032896851508604371507976390881917358498752821363852515758093633485816438476551985608901955863191480200154911948312960942995072656858955385987899999736937938825950992702851258643190014095894503552712766385680117126526161891798155979372336318372524660097193913798815143181978258552143364662132132530614126501566623510062814256334342007402627068635696708574763597792982758173857357803433041883926640760075257221471896907350709610804122976944661934309782542317524215583537056190851064057834870613965699265053106566591322742216901397313287758833617771126912118383030668869174450048918683372915772870330439446128086583030460912958696670709665415588960660319698267588586897534491248248870670311071122319088504168336474670916680118493273987485334884145723706050986496321050697875662821383610531437863160847045707507087015018794813783624582389848884281809447376278336516458720067091246520815557077030071478388025176601659366890163763744821428825798570495572164900146230174525952032119033789968902489036048796547200314990424355721016350312106815535025532062485230708657286118258841081800576327449981162425654740223958907980593029256398678183841936430775145205678295516427886352447000011086756606697342523378871865868127104608197461223169039026511761627418097748216459050992052049280077009798601535619697451662668530087332035254305364816682770742547808707884586340598382481918686348943563097300013686346284098737800993372853252828498836777389062619990581810580368885813080163507530278657223431049483464450352886489826800603557838646657328086126702124983736992374904931451099297635048459963799292761072766210483648995674924552351672647390060816655310316618418663870996628686160880124122482993776486061367709694232614131552781105807270401836981312837944447530345584347664677548987330331064523337643357912897362090043863986514370168183915291835522868901719110670813366023065378870312252331392170641368711776013723437407761790004175541230799103673577238845474600716412361207446384065612419120059589004239064792812873597037887535969592657494188397257222577079148807892906227946191011902963116964190279753226748738085139862922498974326866791192334582124896863845069833120535957685493709750615412055920249138679353408624031655854319766646442064530640776471277800398579887963968314957577977463659897354402136605863799064732364181271354843757731012448057256894531468881483107713411413704729905487641796584001267462668467027375050428022720005064924855795480299778870638965811046754688479728252920713891840572038434498494841752503445407449348932499788254244183309129141040867876750827812307614817390077029545526570474513992400645306626783468401988071876010719794807742003240233270712389762974359078938788744494480865512956207558417544899028976703703648410273178491140668930670754788114279917194652682449174628770483391104779028529782493387811639409561585988382750308630935761306392664511639894594324983695590952220957642032671961397010689349720162549396077564380191169468841426154642271024487456591926180180756086821706677810423237588130103058792137037484803408451308404881904370519744073292365648159265222115778073725413966260381068109105811732614228329709225669087399125067789268347833435379578276755945030729154887470081265505326856687906681419395507088977297839559080706568145006889732862660266616968469202203441937797518958172129694566204137878903864899181556143221649977452691743699470625263985619584826783350761290975061077066712602882975686417847903861017802411568020108245377062157744531138455493164140032975764585850897656541176870568119067641038399424423826319896329493145262121082425972438240674594066505783315464747111476593599167601062232864617122903693385212313081247537695733974332829482674285332681575329261121198299902790040999392079432702109802576470291505476310000652690944088976421299918630074461261261079309655747529806717706905790857529360274480019451845469227088712694757381529422755050723094235995648977229344014173761081124366389882606696147611994960097332597560062744589995592803009534851656715297571304858371502355511577878798242379314995511436621929328054068871039038281461556590831837564935805916384487242466171094545726362128647976978489320541272991113095443615849224082019093774584090400867424437314432532665227971187253661968916938860788569888895282727456436391972159049718873767097250639442044619092865461065640746477662790752519102063569971788805060291874334875370503373079216851410135265859567203456350459199835763907918457841996021451223617736811629546543313801377757946150803836447474520705164286693785468886508261710207567233162520996331285514591906470030301972899540449580212802400910238537832443802272188327751303743756086779248731351811061774607805196025843177663931360232328905091881494976334764221626826061297207118279439211444793538325465375676282798848069677369581296372214511308101467537121657022642524077732986269095082206543549566332422270222647622680549934383731508068241259324799149752255237767504798988326753226263513923888959044243836115837132827517922420841231346999913377707570243365638857536329537999818444504258013273552542409152157994818206316837835981995001509828573813416334663428069968821953995589824705381135705717160045843857498011100859973386967587282776370533456247749342053483510824829707208604332396274214196120212644584650036208285731770640824584004493844208163078814758290558584714873886872352461095363991021890707655310768425472298875764216757726343230322596899779607486577163391612941902702503599299382697316241104647182920362480847597764328635674259358800012969896644119326778209027006696517778133584783426186643695288287168314674110645495143205323161324953594701705956076660925630769170508639351437742111575833950635326954132212227619809106744502054990646260668165035571194832386798923434470842417229752300042745717891423283334832814754075278486886301191825927946827193786798238838241068123988953894772705835656041721256334037502789761960587859595489110891454332036149851888645416263582138773359269462596236322684724392099727856840466546372704013443904466944877759081404653613140068328395768061204481451400893457560104001590525937804852433401943958314169926844780575333172827027836094766520651773587325462836265264234853799682134851019010042339419302962181507401764283986688875360002528073461957165484449730515413311712418384732008022930035146414740904791341910962838568213306234787626605224913532389668596556514607889598675503628981742002987501861314120069079472288204396104800245309505011288175758920945547085228364438022569161904530407770621563404974626063202256418237374419429457380213093640869257253947460775572580852364259151438265625806625891473206544171711063435231126645608916557702415595022255257362125467410842851686544242054250366848480224055910934319052208436113069696770625139941727240513103005208418410980305444863424960299858096615355627469422612130327368346066656852629785202480545900903583053000221785060085015466135022305599375161762705462654450080605395762147081214983897152878832161741308137261153609301017121187164425951129976291090220196955586983461863310590531859706424414634200280362656653757638808477496427020754108289555931600278237174215301438680745261191938514735979378004771811470768520901505999457154199304324122607887298439330950368999677601232740093038663008062534832121593738160564638270096030926766695200408259015731501422820676733536339530240984245894723822310955647125022836958949404581648769026392535234498037529295838702226843937179101116226931170719179022504810394490797949701099074588050927232386941671248551592146555930288056635292222284053471823417816054793240506114915256167973786329298995807650098123286518181179011991171726757763418856775899178864264448619898755336601361997961170856051635469011953792833483954170810537758661533261661034368889596910437137349144726368778236562522238311716702181058978808223400871645111460454073943105179146371135993657846466333060030396918488459347481629165315536398834497422528499231587407263603366473963587854700126542633877632787039571765260928335726346955771904630556585081530647442605412615574850664749395093556337308678701039152242705400272288147610660777452679701297382979312085415482454741898624210605522852326487271409183709740205274805483219854424935655504715478798845403351678251859260621538421319750055580573287403350520573376567296676270281746376184029277966950204969284094310926745338209782548358305927891181173379716230871200817891847985370545687358210642195714411350140919640923069459136765709345732554027038236645516549810903734124017327997401053860627516723514511182054797108001502167493849576082674702508086365080394954562673263125278110543213653079621711147220484801739455788431273768462860637448131482857713019400324388857152062618160322884142785089885050456296122615696244879336514758863225850167458893210668813111196690379812041747641297551156170588044794874333737650245333934690565538105899695645275711938191730408450326010575105097149032185316818459972707690840997644574708425013470260034382108391675408811226625605304579085103258754939246286433287703259430284772342887032780713880366539958587042859417438243039202172102303269706997598335979923393910479832488733238715589606042239500037424241890443621072026893217441362333625966620018679020678368296074494087701439982872187956521622370846763661285331634569666611416773346407451124903793703238820613186563927818970806194032795571300813544187186133537507451913366120666058402900168660850239115131878053707050155068316001555697918996994220903999934494492218284719245744491420423326552247858828741612148634246738438175775413234797588990333584540249681859420049942662459112655579060658007620332738418668765904989598824521873220887021825671881772990832804107034266588148966131491251764991532472893117782069104600760121826558311181412411279973128445274377777656327324312598271086626655132998400693842770257065391111787336527553372511592407240371857502384595656682968274459501014861607111424638244493502368418809658580193705138987473644502097149170537407960000156428490595134244582558558618483430206535312215289655154166027268057473434037639808674075112375002825627157394990774763168886635455817904754968411239808211891808562594243527737133297207245330684152046828390966848076912265093722275244805015545025796573972267519345436381852842121093246216787365308298380797863926073757550577981074525152656987145469659707343694952387084847647080817425389584578201536738890836639490406406616102119483652912937204966458156479877687063353982162544403937649335636567115041767423249296121122264030100121098348966314050959126089601170347091851126518730658130955060673358951748539180593485980838375237430357961028983224709795567004807839397827692094645026911993836255924186923691094874355987441967704959168482960646224575534255890301454415675062060527764938620054140932673770944569882064190183238272598066720615263372102871940264360196189847672848536624310567818447289840423325225364783843203089097070601618597137644622786374056559466589237830541123986330606306078129885588535386855385189515885974126132635700629099618079994294128661050363747541957529574053416567021499470643214867053955620570891790795629380838874421676785509778554500203194503256745440273841749432662795490101521510296397407272646111466917535145933180064046626740081895165064531154540116595424524561332125597770818450354787414226134735656075715063205742963892661945110636510227616680311336409454163224905128094136725346999339154484823533257870783081174478267841969386627432855240893733194944643642305402154702050417881863225540032296361369608345137349486316830812145322697887041137075183464127848495876328104976296149738047927207561379677234551396073587215675268446024501427816840115769277019055471318546393619850143341779822612215593665958403890391470897162649538673967874177468008155920715691694718780713280361368374843696460780678881839065508713112104650129237954079038716082423755610747144355361643476342133182217106961901409413677179956889239729781477488937177988207391275146277688237892549503973965036574219924484626446001513872945143719547562489134989751459014563347266245710761271241537252571009055562899923586413619115256872181746315104192006479235277928679887078232212260988992299485153882504070535221491231510898993410044311846961348103793070169337468211286016451568043943627921904814179089587794108523033765355942358699629757440936034906178301718623313493719381753878644955249828434974984813872469413438124563761406938059654180384084344782062612212815879163042682043998187293788432111067419936468766819255256899915001343600864663361684546719801297696463202868055984549640960760088605525885341351174339808833201260395741244368317743648043852241851293813343364689164110524512563991281563453042747660974905331485890272622160981709146611284209444087807089552775084949018162787212749928980909205423633658212248159875394450017564215001842128028683717988331558410475852539510189256883234990944254605393969142637617623735802544919577056676857518309449972753441260894252398053814887172884935615472099898078782476879858469976920916251660366574070220691592089571624240215582538645702485348567900500265299205016076394784444003825317987648663361401057718184405143548862838128983193272700321926907882464839277540526576005562711079032044139616930670680205257066536964928815006461328067785798208694978563724814917230298637200407509680814731515840256547050558249991745150332315186577939493280672229659745511098877877715092060994760444770652761496029131101421535725955765806712385172992634754456176494643670205379574024573077024999495489873479260243602983922098173757018414221180597461265360696379892860006983578856855413124227722798616169160689687794606759874681651695686610542299489351119270932432976188872908549901740247345843378382920185438416655435682231802883323958959254967678792695050955186795623197882418827229593227197584293104038587311763489907247709267865965089112755759905419350959455949752601102386029332073455956327762580259118550624000430208204216998021593260972574594033392351667938071857057548332071090899980027337800441728956421655292497864757597140761634577019714497741177444328208840933664503700224608686232996620079113971559002112972185236190521861091883755894466434685793859950187703730110741818445098442975547076492918225524944927277276306135201162946988755935445037280040370727159156084305050127878791920477381121910074492152509377661357570716052406870004802092697763919721169752180400629364701161414013898707072906043883845946370913386256479176036922676175334801534961889506650818522424021967730231983215993486655698879849792428319820495144713002633067103884043192199660685793786531337506843265461534466853518342590179246585315123925515649183525673822099982226074322338752724663194504785149709042351672295511060771656292074695054894605489703506122243451916384731284168417426992094442939932615085571771316434154169911900721025528764497737878470944407323231259832162109933749959990195095557489936730236046056440859660004322126846588779948743952521462019400556703900153784976238383103305411585822279816610540143205813749259248625051560983590365517999740049732084508352666254732942548389365730260031120797584118311469176363224584122522866723838283408903903103790901306749424595217618631994076721199991758756216994670049336356375226175338687992781556533007169418627994236089744848342396016800958137865586882379077483659109807255951636995395481472341824632149061681667347003681313247215909031775695936858827710995278839565121984324324275084600994392707826876638702791569645190140965896607451113652041915439164842633639427053250996771758677147352772715519874012025401776509643932290117790925004429571833369597824273014222033496778105619113804341652034905079298959122178971185973667634597110227394964874515756117482719335172161773389534999431496016891466507642076482538080838029908515113153536480775979397533661217691210182140471248836742430133682435617605091891245183928989704617072520959059789008899512853493381385402826445746471375773180221151866874699426382337312097646859080363922138977579774978283735294644943373413843307804808252313749987355996665482216677445743402911517330133619005601245533944909886175197856085328557079158774387710932550071941714989946442507937288823660340299636265121152027551399024997717638427550459032031850684459001905446515197041597130908123148501611703920650585919781659746983708544678087268329204501925105852234742162274412335718611470568611974900112443618820242816878580228987857337405104610516762699572581482525246426039345848319735806010387805426894516211024978274247849090069488042482681769375180936900887085405106969492979788891920900791533720168312598257121178635619983737935261633264263478231014838973853291362264657533597813045774710396592466579734774592593633688053554788670069667321343407592237009610060992480782827948536580462637302638894689705099907533147724856142514091623802279609946733930302095218303868479127367436961739826711174018575951566700948457985137048702419139408939782222312119091862184647897651605970521455511033379405964815299566430287180769038904985904444441401039738138383821695702844088017445049549051130217197261457897619467740610972625998400639954526303966573125666171468362151438433806128481254902848661915321138009934968716652822627305509141216656156484239655803878450127192351161646560200079945444192420819351137019220018792637575772066062808311791481738748840228899292191306944830763320760658927732818830357225477696211303343783921819827945742533332951201319614580730823719799972765876553623281149285474976577023082548000293096540364378092824965780134988942919092703041455099100276196542269444901295708743977104779724553676687636791609825710584074982706241074057582358561639207586940613387994005101415894152714996212391159733620056034461621544613771817068929369129016434933841938110161546697699574620745546594567962271621514623825595876190246699716115399825638116581104479769690417812597690616241554948030045641394284379700043976171110548400123355222750988379890722628505098041365913897793722766700389893722782008782525746220975247098656105364597027411840055736301136333248213501018130372175913909102897551718769317582189806252398323811866611384203595004041459406214071794520007345626209249037160985528736000428386882330597482226363840757004215182004225657704839053311609656855592787127302665851966293056109184311335371433957556517021655035922246809452291185468982159770358286810678814488475894740558624914871619663546565154887376004592529835188687079323724710831424376105762972652486848488885503236971174827945874490144184501847428759358320525199473404258777296960402984097427021744650604362692140968815557387711632855412782605988006595624899649622554747166169677229442098845466534728694159511839739143112401241742362714338225070870452717814135202068776984799487378761014208325346560000899128930924836973568314362674801682447273065168468294200957622153297213132814502754733876134446843967301473754517874289830921653221344761650975240904678477694843316655576733552902837898027728118083374376153023188897294307960145380876868260076467143000366581345259107736725182674028314102119740733101316004683939378797569206466015236444740912349431692367830520339484549420796847382932366999349159459435909233785480234476903162961030516414285881241528536573011069280606663484164471213227458355965440300437349113485372658682839772245430919176256216692427667990678095045816133647595077454835663352565121318018142564976608024767961351683596901795506554694673715128375655996935910612247303865271544667323708787686626846345458436163731295383084084947504067245239411426839759796506112625143338838643993833091295113424080922042421660274786768017165828833969692568674047730826120277660614149863202762812984323274946520837670817149374602436842488642039368721269993022477786928755616211146717540872960484458278834679376849407466277710617603772944456457367378277255480995927798658240855800216183708505610140162312175155024145948342961425676969975769600172704219466332551016475482290290143547411489078310180776449480560897634708746404821407681254400478671261570704366544519399639363755112507322362560674870613369626053230180851059855687636072770688431252422070134838712314352707994814054089967774408581219595093542188744866975891598653760065505553375960411276592221248429091265301462376192134954898878150155726911071809091218519280376811755345760565968008114572120149932152019324099724911330273837761507479800052846107271123153837517162874068985899410565893977796473350381273401664503492824320718086309700314555622271469830357837950791817556216565342282910289150990863221163646519695226533595087780997573964773521878246681517325350364082633046073789312964033931758196443035436531025819215230207963765447111718338610720002177820866585286052706637718023838926846189381107973345476424617940437944787748866843024272702711932639583786525938829585685874674245982418199002994357799728270378256703179666908402804394639413872447582338809301964429392363744693713814826601644647060455508339653413498358121118778893942322403130968952024415074899081670124814641799173538133191268046942576031059563988878431581925870916773816304327006266829871194290361601042161402595155198527207344168027475294785748197126831794678772320154074870545772041097766650668551912747419062378979170923679281578586419219072870509107034995964925136342199586615502476685337453194825549308130169413164768195444432649494500601055940466851477289169789167188111151028936439612165303138163966793090344575724246230100109699408644837159502286738590154261936067649711177873167229651849509480199527783991252165062989862923618996638212055248125050389691565094280957537888547189028678564798687895632136698734403252593233004688841190436270893850170314691491540052763749077393958324600651164208174833997303763529849498726403088512884610295051204098460100937750267881131570521767471430904397103359977788931101831228171377256956291731633766450269610647648674895615602721032244820475216251452747093234569690466027413957863948047993333741611443139946984443836518950463147022878303597850779973970049258427094466790004663472805036853691560423135614452658218438084534491189647209389549013169899972951984863836036444834072994431181338404752685671583160245689212477400128393838269752988652641893328585465646114024078299922527323182016781872414752355365830597280960898325068735603372366085617806074892578939235808303615098145584588014598192065218614308020077854708986086625649111287156690096069621123902584603091531550371231471442063882029945885894513718318306443808255641959182487797344862379280538137118383308862495762441597279908699327153423666296331245646433879237647624593180264117581651940680023853808599477164690165091146321723591557795549055311461745881568046060338121943827466960550297603322428854493603531766411748399297201337267681672592552157398407425526753976336099351912897139670493067443107591081641845506480566228936513005361570718702801325660975719543493548885160825763436591221941228901893651670940550546192782097527410904545721803263205443136281428503106754047773345408431298609016306130590915805939366249671621163565391732283637038190574590637914588296137493976554652347054970697694163967388358249274949240263882143892756415562869386687011528588584147637073149711199571211857304344375200763198142239192633645925080900086085100548185694672612294545278574213665808928828949720814473015298514180347655143778223604204291430277828284353791058175098267514668356873709626420201907816441335383277182145204867025572651123350349026770316816714215412307557143406520331175378981448692678638241497560432718133268043568961925109313151162935221439399826542084342912806985669191774281036943360231992514850760911029893699713273820668199061063101144740983648858329330136534050782705248006157401007693103250342494423347865311787147479610855731411452198123803634401205037719932016100083398868404141893249504188199403987685103118443885269826163499187322975501479151636885049774517796983935109503315816363343344483720400608711270089572702310718216162512280109299628691388985948168123548997528051269366028026548796579257335337038095424292045806351790538579365294385217309579570149348310595478315494060111501072813804504424471353833239441474236840923611744537663034310474424451098835120876503871514600494706276495333361784640045330489951921029550515514004798743059006233185454763207353193530399013092095614632596082529639395062485749472462259638067642053876868877404383756828916263338786898614078325208480114171186841094152195294259949214141506140618048223153442570890913976095350351956359861035461397668478153953499800367787063031938479631236844215590961809626561647705166535284142581261707765986430824152854316058971430483803855160643940117553896484162914076761585474829324386576060993323862991212575336417983718973820384101737279531731959696020728768162721301715820800408646480449122890999603573824648089578060937000327893572732536878867555788839339283381990595461205535616991722948320235094833094383736823525629478864970097572673215920521695057563758898655494168180338097256350019972063082063623542251942369620191182720706386469945531165294412990232356339165635699955884594806541916641794041267980067388110642952926158267225994518535901339365514759572389570637522357075255922727868520600590574475465311733026861313226580777476002386023589292714676180950690431294640320085707217743383320692231998918845201095839663445024394233032191662284695439196108829890234668263487449275928328007320839690198295547035333893845539648795098638937676254558608495398484824135569437784427635033236363172391082289221296501405408587430393733627727468650596331563763761867783818483416581248380585026349241476655887616732776983597219621765132894865332891349269877311165987005007983376983455436295861900043851827467691278986173389552805665024322115688097039115882960606727488690052896888875045690161081328816799454808728148158142077406350502792260384788988446153392932461731412810740373168253800179994606605326164202160753691967246115798636646994890734687223246113280221663935636608113266635553790493539400994679587774870040876733600368516307906962855942302059820428857281225795360761164373706464458871353611137547331307580424591993509167716703352793702634090638137605325248638370028336618950378638288620593530071473411142424172562744776040029090904155556049519128909533015338292564254951599547504872713274600531429443972189388175020874132461707591924654635941828489172189046700767256870114840949335193196991946355504181966531306313586786844549551008146934356724038528662085017300168358391831385821253734842765985323111888664726202180626028394563855596635508985048560998890138691323277802591689875847280421195641022065706654673215223339966854466216128670267182173138447324143021945690266693725238282617941296625584982909482120557016273620193169643519194345104673477514864458153674074988737174963197718591877222450397679065790098045482290649155162295727266728726216492373314858976059275443689513041851828125903803641789763445092972538686596449417543235624433993512268116647753387259472223355913903353096416391773016742969092837533503262485489805226016544268502296420240369110979879473796952498712719678766549674428409791922905239512546752230598978926803711834580980024227827385373632524267852335238819259484251215339361131895656506269762784113905053777676106085624508108463666385669830769305293970404867045101600402323335049382555752515478400092002760036310794178766826120902622135315524131901873416407058316950556708924455651201929442910675068379219877664583994104536200275260774661313632533405568630672590747967743246418750410601021478330272114918654159076417743114484871174552799588558659974649824511265012609652810526748296989782667591572845799649035768263912773830785027399587566995084518334563650916358795807860336837908449679687677075393727816926832761145714348686151767802520527525003671500258529258506643605304264199598524675546334822758783321890972187697060333506847954943477274191106597953526185621427252706689480305627826321857001166394229162175014536819461983996388900854700277355989126349342147537861292912009606845203732533601790150686652163407063401762083665241758244147804993793954490330534265150420878905179101342899101457434898187288137885231683157760974743533053347390656102913680092119910911935265567719138857533889550020139035368157211653570746906475578908437302608126924760808745990244846957079216197683586625459991617257728919565646121930436064691311366632548427021632126884709371980641726991374677946921147733498431274608024692581760778259849963875475778252152895079066781097377297584488207923763589019088689307607386414287439917327319206776355211279428239320617555345179503358959316316418745965604227216070875124407115860783978853720042368931035443233142499770112365134668668772559357538629945886986930527019305300171373447309759134334383628413349225794992912981174837887145039390782520127648774972028108785541167859023594156730027316759363476786520721894929821742370082795678195999208882369194297632901857008629666149931259257436359560016095514207746522253475985043732335612963814602334724947973645735421226880121600467247077215475681248417779489796265061006394542836731798527413917588528419433948886766899115980846525124442960127626634343967042015082134515002914282372288181007331642725595798757453963851987335068571635919369039222953022568591240292170447560672569858022676004801386156207843757135780173467671077990779831942173683721200093282314629201115356665841922367456555187861319810453443591960240405477111139475709482620057749830117434052617665205730328946392330500353925997406829495701912941993603208805370509916131996992875811791701608041406601155703887583350157762778018042743994561233912543476536537265698452065875173550741109133016446210574906214624604049959815206495039250601444987453022198744795626422025063005541776722816908438713318201460349478401364180693285294030905270862155617930406281191469902393031555843452629847108018493653652011202598627558912389186935188593186720119477403070512893312326626184796995212147662674262683818640007128537197206642747921409299074804351640883151457337859937270079544022610971717804234366919048644915524617316234133189701252313784666636404276075478452362793416253109136297791606783375773207534266681231077072494867022065991769554056815311033946504680033923192194440302345969421170455424529968290670632877229353198105370787050469213492951918518933847701481249421978995682199954095038870004167506731612029433140348709797640874613173375994994306493143457627781615476776139893962902413341509555271219643174829627255014297511861086164140317955493758117106839303006022830123419515002578566655115420450220307245901490137611792209000841692110963674258092039995559292955280089932888230208296727983651570156431622510270668542744794713646802506341370527038595225927162974258494738878334469313475305016205713967582341083047046098975137491655936277188725821944206380354132360670371453083848671790620115042762095761494433705491739304179554178191060822914950276672565989648697466372705758852793100437834495237323944062144646875236457137028930566452225651551308892807712005550583220093655733743538280285761638095327296428178054745802173694201732078175455592896923939076166362485900126683497121186053930101339676729089614939232582183675743888610907489298966065974139038631313975029087987065783529463814670119059874892012502513020912087550560495154373027094609479051662014510353753749749886745545712744083462764492864971899699849041042583704595593198244821677203750285854255679618128012292461258557200946606427291163886689417631375964478351134351316206844794418101896669652800492105815483387420642583202208306616597341683725468586998686373285337127297263791036920233062683939147882691914304254081745101199777127066393872460920936233920863409929315150111735646753291584470662352611821250371458213484450971867782453940080317519979488295667695372388169205617436473202143874007543748640641249873912156685673453852525259888135084744395588435940665298648312214405348983094707047398054549621901869882200386235777021491856438807189570785995750936681351547539728881605790083320999033827457284334720368712993714378861392394024090818423651817469193040415263947877099919300137720194398937262294187543601139254818862551681659470788602328112680454817313751059120021564515131648759328470908114874183287434211036839819698520756739114563801769399949392388291141997978429407702268300930189840626239012877301610756506768926682085338839757230466110661563598978214241112389261562449488329484677629727589724321051714927893845380494940747140551794954766443612041479582142594478273212296781019520935515290189824186333059052870908731452465118037358696440590796315636603520609405534451803277767884891316310475532670046348997927975730458992537944798261959637663198095699572824208235520226604940432884912849205067372707141047506014012189206392888387384917492182013131390629009899727653558436881575164266912062678140421232814537910039327000786383138768395344588336368138392625418622645221694770321820937624296044734356729469321980629084919344056875787930654051128955166601265480822306461853439971316229414442901160580228768583053521043172918667591102545215887846684814685717486699420297394677484526660451748601918229451458889171333503586137859402213633134670785315532547363820359227786087962097656413681380507396725611326095775786040882821583830149635525370227331027622182818190780224168276114084538678194568722560050724098649587022373580989343174429300025528277081118256322306365923194314063944355200762459442460709388121282733739838282487365929460434324514966174763532350595161947957816801475067875026319215542077004234465077857987172883045165105130054497366870139321800265370939603235029891664468334526848074304835234281062987784654495829290259040346668576663562876142131176624399243021496304385907109024116351213304913357063147780802606328222169924393288973674265150479047133882994189803910943193925002010321564274577590516127004480684742777270062078273385887525804143209169813535668050794477317123369749768382370848836952502911907989198025504505208323107385082171247043340281933591952178027581178755854754417538691610237279629949982053564523588086349579251931585619140684602300882781161635641339402229339572501805736142086223980239736352824462459705330137576046443761704252175033015433964408010478098419018468172891942929363305286341267762502928898277773564870003254739729747733348343419055610342708337934005566237510661731132452502508261702984602513171275237090863339661595247509572130427831784580059819350716188974845256568308856712649452043903941927584331425834705884590768317071583761664313268170392095138617953658811501055305362548394896404713181506591728192494672145900372962266354307386479141474897887679253104515783345283044625550969451839476248201881122036364271590697658742102649703506630902825758372189159006323638213683611946648707826497412830973968569611754291702559024875648978495841514378622414126720418124017699867430223220551148414911959295977274106584793877434889308929624599101383823881916285212094743080549935987086077057231544006845090247975310808045681836398918239379678794863900445390032157065211228665336496273539395864274529631805088372146823775836586077030632265715318751877514059105550603437819483004455788051810901752837473866617479882708254877593096511375750922627148753850621091004624055147220393961019870114114512729719033336052801231701237902072210235346010380344634694537340193209033331484052509594624797059556879082118962064343137615978103526763296570905718370960573828552638541651054466814813104871789779828850278486294292338991547303680386594220017263078925930011505415390604272040632345860524361986608129932729765577746249496144815632780033719103657589385039986827093957057524803057587377932118822749035075174364519264633697104912499443815414773565346780163176723131446242265740769698381345822872215462823953667784842943411243652068119545922625101428307282160935912640504840734302004033146236502786557239192195773304669764341696430654022826997472335722542167226414012832586415919756455527522189844284832526985174750545364781381554345125472739752705298828507495673417529185824152157122834635177008601616848456365010463519809690294291791645324873200437961205855234779099182008983685809577000749505850587520913316766017034920828359558215728029827989035254093250905036939836734422802506440197790774860360203915200135526475963355475895713440735468655136550888966523279139565110647175695460512840994279138037365541796382051176592075975111776363589081993263330333491236277618069085389584081016577908881200479665823430771643144843023829061439617399007804333865169951217902018970861216369521999726547758792565578499964065981719591584588650337536753331423106145377162662087794882751417634528480197818682954020724789303931974434162768572231905860854525594812142024594880897670580814604806673992845371847280162831933478523389874448124808942816853332813534898762045949779422666208986649878827174396760822467182788570739140041789366778207548742290964506867518036051717506361751001828355350726462695172103297212025825679321023538518047989420776247281766910363652629686998673090330048690087594198592503287656621525632494720131060617896663977413477244261763060927326169152543664796262739177223035033942817581249136862485332459911837663661274942087116793209773959779956998548194136556487289604548984197021725893155457896657769446576715145453430598712048963002494188512280968035192436188804768272954744653949115474644135725447993628649129836002217574283315743463158746841914779607471412680848847732183761927622131028525165108500860354798433843471940165348997152187780389696390898294618583516554171011744177178871006789847762473733889007496600170500884352454293823030796933805778736132009585588045382819725351076826644802576146973973990431429272647742935637714616724352794558283329124128059550311417074975699272733816419526121591453015631787523645133439111575153661906961834659257048364284906674738382384521780157700688303114523833468076252808377435662730308716348439111352538893855236268447501927248468289203060552195687229831123656731006295160314760277768392921550781051351104686183846192635419842894841926485060265481309009409145379634985245257928231063940157758356047363178176898447077225158464895901417711097302217727637911368124089141178887827432733065079720197199738180555731620124776613654982594778906033278645529739951984024382001383024279524467113979184931434256424719137370857966354209395607409723071357193163576886859652303215620628012732821685860561255044538771683343997293685629120806116010192466072272592888241811688462350454693648151343563009676752282118340027161865536028925894571999570012942006183525232167606786273242565317816436625690797097284637607796689574891132964751309989486705600687695956314255238801289568180006892588278461554116744872082828624687799481029602558161534533491467609632055590873609716696580676151025609386711331845899710099919655641608779857511719818277898312244616920168821026257049523270588766405131735920177610871101422155777628953916222948741027299151695431323103637389379156213421206268724153114449761351035773043614583388766086838606969307275002383678900618222794165130070686452273246674206720670435741959402426367273031409415684345588280448874994127432103397084065332491319777159132475082819085569521828533675973306435067619709493704389394945195576443005616733750561704826753972884694368281107173986594675107743916071915548028597095776563302032268399722739691645674638266143388080816930087577257007376179292742416619381977707330354329466024518970531968456793270280560510735852645189000273188733915488437169182065032790391560672445261639568039021442270639955145322077321446555636833276678580981867825801322966116521608216827195563827106193433235092118892896859154319126758531885158825162593539146929212188369616201732464172261612346013266045305349344101856166029807284584046668316847347837102600450267335520343383898354129317628101896540211282837199372564982599791377997949365713373043980849320477823898204664112334519010162116753572018635038333266761661377423744581203410329109751335275801232884548061871521210367774078625455671232369568589317599049016445420453926314212805787485361524410893629110226487497221784529407169161911532444039664643466301711059283447435468988439471871427375941611446654325564846948462866010053142305277806873181340463781786719378671896895931314371223000640711602092671033384275130750856907145685537263116496268627803442954813587865066266964693419522700877437342849112562766010685623212588703622858165589294839295756050372433527573172067534320781245331303575244268208008763134478399424853641421345327411848054167800308285214794786335630551146375778096857454205097042318873474912287905080040824214872278996408559307938469295105637227033052745462861024796881620718032198683285698795471258303188296285129552339379009637930753422115699221797918500742589094947198748275840085133391751225606371674242670429682460922091619842258259849651426301531106697908751125355906205003234768788861721936490758643426495510159129721881620823582440759115866973271496515164468104923360633496598677582630969722751021620028567184640001935553565249901245118194292510767059257169854469990839854472965753167996940471302162671763910735164016743819605198951368916851402598483111309964867379327580208646231484731149991933528303083809369569201595865281714442714905172197089094721965110614845941659124263719687390543428114388287168185108648927061245162825209008186329219066624476126797706247962450429970239557974186391579988292752173182188126166737210510801357023059719331143783393924983961535236770693797266649494747499461943743059765751629039568817862898367261902050207476473485452944585008630425673698847689875066749273268290550260981598176672316273464419325755607338322290794647968154292498022663365208250711025002069758754006713837561814367636855854942441539948097698457202086529126291240890692729148008391548470854129672149864277008132148685653515270053566915680400142621672630855689858719621188189774102206196630048135287120837783857549085535434103807221272377353804862723497658558877210335231546360683702714820869255844504453903932012770686896528321031211332456213207565910507978075298860028228465623799582988291417744337831592079649107249468051746309911758842161402045958072285535415893393928707764838350128828042367672060524256597144077533599042832331735345340336711547090873467374544900271692681911169093908426539546181147257228903506152722846882482032930917746577855563577858537925015295976092225286118802162199713797769885647876482772355666400511848645497930310501646934798012867741416106081202833395255100535812960020032081302727173925558989548407399049371724499441558116649800044346282079876069978989783608228457896631345209882478110261211610132502496401794096717970567882538499474792537129326196603859169800885245568390125194756498077597699057474993659409963016815108049398430079994801714246160219740901286802622258226239111123275990902801169082754020679670468993843416497933641677341658835395857635311805251165327421320565363753219153553994425547930707639046227628863242145158914864689908680599765258996601878096271508652872438804041059711687049769134344843517719533417931052977568537404175157877950717573678792019904355694687135070102812014553741064101349974101752381822020095467153428739578012830386004590673253400198687184336095002345965426501642968383452630601255102183797205492607716046420984144985631471629904791247261680314030246350270860372650142726127714799455338786368928284712467700939116797685902211664836749864137100432238101747128554151822164348061222784549620635330708946942431396217042288180768279051685864351658400263872202669972125914295175363523972088567160068346036278477326125863188417445580325314326305599010320893544974492698217969993833243271671531911118331460339702343053272078912043652961604334089197582751666013442005431487831558914466271320861201233120339759470463182507171507632138398594780388628931376042832283337155560791841158756137280002139978791867313064909479546309079478767523746541968163348837155768369171472085354209546587745995963178136555231083863624763426458151298346513443313768230516234423723456837829579422572686931549936006299757392934006706482136890604953764518430705742675736856212894842916845246798647413634731219883689714161296968247094939212939075115921162785842657809098730064272161164446924315838751203325099914854037760646497050674147139688527248456541363554813581109560883117072388358339649531952825948855813175808092479382106001634439561749838324667776487485100622839335368194198331874210320481956487379626753315428612473883953038355442978197481544923491394063830869579605402996656806848169013190872444689441685123349253803585860736768088208482561438579155717437605294734170542824831626386555611023832349046860655066373792558184853569067180421450114007537991118143646770793609375662047653382754002123756655684805196728434014274981861166787246067462501833876155058978322540690401416243047490860715740413345266435625461797769434523782967445415801077093025123654508589569490503177549543665116287356420795418147018318373972552678723510102703809932267202434474080944035809057271618824923128181257642443124775267646991822889049714391350218658287002368029789281747297605011373113195885173090145452860298145169200709018983359280501557121798859017046259255204904865624170959097125438314979044589211679927423572878474197337082926370288795310185972914119248957489182353956246145333170246159863086145039740342351724375266261204732715071267861289490582179777353293082067561560319334921986290655162378679243685042536982089192227218980660546504071428355438583881625331390233250587284691638232076376627894687497663165361399412314937287036549546894639949501505638678811850118643952144152964455391847857458167213701397066409006896523707330111102358887557386531689626099140127248629195563475047218362468400308226215415932377586758664111386962900116845590108353983046740182242860091935565432762454885039130100479815519730500836420245551165749873754525747550460460339426232021800651704900756358295973637098499635128490171334598434316466076605233059919742287279184919939274142158229412536349653951283277637261142466165633385165793006429297634642703568694501520459431237127296024747686851836659332165182405003618461264890555120277050576977493258309356014849798032076423400633292891066232455583628539369430877156988564416714239045891698568464078596864434162565308871915730091391779930785478641081571015507229663583849412710842343329588991858259493149282061603287215810835483142609532056954922619347351055009484457732108293517845669579935225093934680798991504642017774983463804894941862418895188532907923061089514981631726597842918936239300170702645807945224715677277196087366969005532146251089797147497558373000819986801710750668728011173290636042775114320617352332471278732261646198289844391058238517549038431447681399654607421137013704101783095554521477816582586740674814384173096177598593336854362406771480586874906159139254961428875103652458905793110554200781386089611880223387439380987651078835229540217562003771204701227878812285487039554773074356955296955851831988803424922986008120360837585165015084016247859350247007098807690522868676603421532601081887894848758628009620076671975237876743118912881349675291479155670950080232732278721665183923377211537302325165293549990504766829990667350298931640919754076632377400570857040222995142005621134387954111805214673984511024364159125733719649720674724801375213419744276286898560129314689530106516991963522766114863982377570493139141410880157518520552259183066406535680914327731256011087699582669657436885265846118525224083105760042484292331334655548445728396142674614777816219518852035645843091907834039275474153423615375444283903433896459866550567995641189717437622420262787718644209934508808028942791307782110412156782980902541272850444172032304574674133704064864864479251867775924614513335303029179829103924833346256603699823173214497624028028910193469335144159178923547229355052066136400249700092094589391999926096581336160110654969511157187818696209401270873725289363551132948995443060748509607582569177481121201884019333899579566980487307967705690893286122685771946112151801838466582822236429317658750382293712881789078684377893845559747318529180291737790123532268912909513352316558427353077962540278828221612278381249418792304637099814742391807837785242398454100243593184125261373930137487281408648630626218458518413129430242123821392610244135566366711315752749436342951818364817387268346355718177632604904637899458631554114967789454893768197834799023724185760148275616391597916806932787465780993876646613399025032354896101768862751141096534918939028336471110076797142397002149396531792020254794138822428282842343724347116983707248094336552973083611683588325255005023450708887713659342884831959522589706093357729918241272604901879365434589869532321214527326235992048358143293672794121869708654256432978944364430606039251125961050399574260139264461194616540986332568541127002851996773344507574384263639534920545324335011050173148915624851630312712712713376707594630838370719948541027292685691828065680689532455233222395189890894712875742289013321273314850804830693450999829926426150446754684894744402796422496283933117079188983103501498668330278518006250408435786477440709430188924293979711097501030280742842251506628191019444414148823566486154332725787867091186020857732569317353073924845887615631019240088975557247859325071242972422642693980292178379623846954305291858665860395347634439705273878291193277623257757522433101752698721587064988281727355446904225706043360297567031991435030502271971853104351603953610223426119475305538831431820009295465879114282597473325080986933984590824279148792011147061001354712177595467818390998378736845532032055495978578371988724336289835207654616932496092762403348169381069070602308228439980307754161975112748811348345541207548958758496992164950469635780330140708888143720971761921117183676088434343889579771423323643317261885734008024825099336835924613791369824037891410654071816995973728753749612087697904345770823618203717633384796975352487700184129792327836907876134224573161697476826467359799566267135634523334285747602472269673105823460510385271033701895343205970678145194636606653241665386034736014580318281048498567111657776179048136853512515072235176211072020374379040991580520026261033409786432787064189351374564210815888487804425039264193253788073871645661315354659819606918430960864891530679756955525630124612508364839273170946026364576980510051704975418107536966419716492771272888497860457409118804695999850975318195835613388315719192826633284709336957024165129416294625376508764236074114570261705649387264672067200917796259585269039344046436425593409526224577147106507329076098823057849970641076730344684692094529689724638181968542349481932649168306300039352795226682669965724027270302718538320974073771398837768408639849654496757055616162801396064077247702868027183567741209216014707940513629143004124565164143083119121391312767264861415345998788729442952213488070679199537083851398650397026635313934960806419816885884746708493409450996940382947188660828744341177241174581706801708646938876006713182336117609374106620426993163313046798753794282240271283019353178537709267485834886234821650749927923363512414693160862753919847179639974747423880617688537193693235661130419118088890098187067859687453631427152182484948404920500428726010872458311035714139107239845615594033363454364087918866227046086732396349088587580697497237353823432858865777814955121590343026468656956724377559227330594291618660597247368803068574020140698284885246360456858418082396190740136046902318965533969187409867754655277887599412838417902374027541041928443584695512786801806083506312684229281467907177667933020456503722352156796554430260479454178301705549160645407199582612116114266789876733454787654019989117120174890457379538671151448051514660202663537512649905092813647362544180586636763641974888179262178139400207506304469305743854761514255339904348211584165332376562550316925226909698409272545662883078213759492109527413810955457458671942031017464919692458025729412664249917648894514218724043649603168292193454828068622530191923543108350123901583198090863671614883834489747360597304785149334198110529677617277749056213372484594778119607128393901389686361251552163020281187151801802252000966478649426142637187516323989306650149712219894026474596981312781764129092369510630310975191219524092510209734638770920709590080280714828256972857379845937047604391652941940488325635559158722913541433168390305410637957972782573488920175217775167214242284166895886243960007702243837280060488820795126094480076925345104879446432276752726204702949005972462833207292978875713202245991696091432549582144818004455511774271428770080180898302530301263067107339608269221211521478636339421630728549774341640708548273149279084951197510793445353216549314526020065585241676929913459688046878801415060211706220711398018428508963662538585901151868663023275998795626324297492408904752916955621957053184427423061708625671588587829855308059089598151511296905563794898159810067665926700069906674162722217868324303785572961527267882957058737244099687675777106469543733539683703964115938172203568606158910113870408974872094626787643104963813000977735085494865233097485074939087722487141671831540827563825800125470795501900936617110340633026702178600582045682394909959494751351134201940370694189165418686697469452647331192856712394951865365721117320232559502740168193410530802852445158351135556827424095303569280159748853088188743616043493290459298418215425267663792894417200963490262588878654966768891100741623583566203720439019785666004931134621983159152582532168953372327458769591567260497670713183578657595210837392339318006191478719169969291775979379438731419985074491229013196126385773441775713355355870041537072234089518817528091026707152265907343399874853994124890322754826029930718173602126388638415792241768181460345197878144823483552027636271461598960670253265142676743326881232751231283483671447309508002743599746998493777856860068524714508599558329289068843223560574444342591173765138480270920362840128522799535119755174950395540769183087467610187191368889543361223477180312410031146479940493336788871587712682543927399825968965935064931331622025164887143975987482935851881207290847977305840757094314684195290437011953017410514815647767748409135609955825888153164769255642888548303107103154627228749630660593424073219966903558616424183693686190221621804213544459875764065587697016486357244887599640282339560931128141436733853163205820667337243406201440148427437248737885062682534349971141829120052040125648101366986431545117305499507818167362836662133781770590959421030912333043100872800442384587193372344948649436982051389433388799092050364915926829430742737242330590736698912877571870494205112279593505700341204114740794495033246260556949130394230238008795303055610288880432180330858110467105622661537549543234232157152577345450961223631131120956244040436050761366482430565583654675547049306488110960699596057379155897590545828178166419759316393726233305761762687992739634544539658496720286170307931253725255418111244051740411344079847189021445961646851728847140578212152764662988390034706243864546766766434272388269902917861805628106165300328050772163488790945494960116283614402415237738405223659586567805842708660481896947907000815287780192836982450489989233305761885118147712373528963971074544153257276426059494905968834357456123167464079628171997338362413414243304640291378634757653439345251679995087326975682966336166856915885871658962649773916162608059064786475549225182429861091698496890125016897348023138234010562397909484873951027531780342232933939844920955855022983528255124521933599088470687695122168758299812088906468828840357023440403404272476399587947605578402695256080472119432018637932668316458829926134561643638692104985361007699178836616679795761584440309372155475177324548437217672392232794821590858569743019805979574233266542800114680199957648094431187895741711937410186508634421845476934265185469981458120128821964515269295010813260890547783071618349826207024992245476703028903011186000692943075545321310755399898631501231955905975077879950054564853492111272995422798669896867581294301417904094232738728193825311344971749681790974230898899410120712813906984902178594155079905594452918232330467827095571501770207854646194288848452445256541438048721985227442476972037928139894784366016606300918544076006510228410070862639650560602192421970387452767880000712394199909446857890564859887714929438247317965608641008567274365349118701833667291682230615136091291898997410313829145770311623272310543656311622421055259906807904977895747094367008521970243972135445020408833744730030456645405213302244451600455011490777123901778095831834180545688567643085615372588170875401597809705680082574259057688349833839669902712902294260041475515005551248405333175045058637745330346348374931545467823825519437003149378140508501670295013953811745295650596164544572184990625322826853067840112111337539513374565054246426806728574216394354704147129818836663696579310660318891747372369406469152023999361945393655595370208254560070186540380154214771509425243165905899848330547591006292653315761847831306934047189579164247053790202268204950359046641457725890680429132229687896837306646035632932229966398374304775555090515989341335814936944157357360333033482137492047894096486857553958764808722257365448734018303561568714041730813023706819177668211648082348657958334841505577528927469112446956097765107460373172696369136044775201635597306191664907154101707420232231753464046548954506642912549860171523998401285037971370602464545623500288680949402135806939007708842521328187331196382407313823613739664835916831844940790327325090159368048520051394604761651929332251578502056927637127054903521309782142254571433020696589452603899744799296462958023970536750183986215537276421777745545113215846635763770557042402362626271695408451769808166768468205995769175557403353249558479170658050223448271073390082792525617002333285702016097192576983645264748466850330189745240128338803884034684413680593726677228294975432459208264555198059624270270029088675844976534577603771142951620927876668675093377904610803563517366225943393722780899799518031147025695382685279533963486726312570221393806541237068495456609125220750106104871021737872763799689847532540496406791097958990859613556554417797153550813685508272635786260426250327864222617973627078702194831586378682080819074876386168882989663630861663642535367980443770619347773806783684100537359472998681368277474587457089491998813584673390246806331258427841441723449612868245009219488302055402822365990543332268842791406774396823028457148019854437340979104541239367669888012505870267106519580017654551336787139801810687199159079749888919293999909995398222010056809480146656581791353472137427527392451215644979069764808413520114533551828156664437649866463714622571521322524102098300179193596338971549570066176632326253199915179007872698987062474830549590654589734159255175584676828998045410976470472255592947077366401486217840225908815290458380543354309423895815334301848855095243413366533337403847824565959484803487942441427392241148479333735416366717824252887570344708319001955988003292143110088786883118571714821649167368503061578160380788190199990702043412209144631115453015656465013358101270812717388621775401037030278626047961910247611680670612004242467095621563878033733023071865252505531964341411169636770653395208557089413612580200408588822589089821880449748065367607710431546663744257356768442244238401697662465449818332584590299378464405020501868565624044226493197267440294001505584085158579458206971115352377760564863474131437791340822093328786594667016139679281130126625083267683365121537326457515240103472696667470317926338326159903902848326981436390238682717412967771135067503298531567620169049135444766859224193795023415957842524498004193253891616018316814310614890526155105982002362294527523515598498488775214481973472634203171627202291926904974386763616806104060634826124334294450740647682886175224388521272984201525033131865444020710738810328689945455923182905854665563911673079057118851672133692341850846702990981893624282823802274363642484563723121270508662008452338545726189054106458172552699029831999472294536787035747895572543909877017756373403086968077253715432300015627577373611804478688888977105361694623311639034870323021084646326293735587301966905066741511670543990117740883169795415032730429024881469563181082205646238303007920304209994108364980615168594995281288112121165043999365499857104775670552701011367438529773340193614589848822129767911625715333128246896085240764015729083995889164975918263759324113696849200531503546688706553491662339869301097828756313275745580631005686576428344775891757874843637119602404159010976653722029177440361201925869727268364298714838652330915445480467085830235593814845732212317993669424274355214724278394999218576778083833891364167887056080027834340323926758299034960198572984935580595893961526888422287731156642436360338411628923193146143744120370761214217234814300264965474929156400199403982020589833792211140041100615257786330132544062474268349104861059631936317654621516164434591932482507102246966603191546038201537978262333648581488792449038078920156174711236757310324431010885238950460575813550796603077850271304384921366483891260836462563939586844055697318664941998136049477449157361741264998324386287909592482791492023496555895429641469244980326860908406150329498787510315260492626300792445429399435006918677912813951748883733388663828353042857944397903170299264451046953269946253639688094987216340699944010886298926233602711710198643093274087400270453354346471514589205736166784160139816525077208331612069104468974993518131064030450099737080806883195931313312177447932114738982749211143367742091376798536745831295168978035617006474890596090517669546075348713015831096521292430859402219847515676060647580291048805430448798962059282632778405839309365141569779187437431882187313706076195799091758588397371466085591901225644731312196365775514397531608330010771147624677203051684116686508359172422617194182570047380992305944453806529204920673311888718009079568557101918427362670034189975394855086275699996000185265281460070007883211238441128781454157108433885165403598354283149561367634932298039587121550116826573584143857397367624740103766515401536465590330774997112293414407157047332202318974558155121741743191328286787656721550324207750091885836802204181743148982309544771462501645999671476235072657562398815248167202456713326649680533187471127309967332183840361545284376788892355724832107664328646565977958639877232614014184286379245983649136351545969714505200187590814798085587845981408819436944592465923497616721417901710675790791379493342846962992090600805968932470111775582911819768064518326086374052611931584708390107721167329858182950447833557475641358653973426601168783915743718019180164955524663518401708934143704733471317960039169222468461212210927882877151935819364807003325648428936700010386124875109633706750591570348252130482674262474457132268788483047048962198018717529583136113551272379635547415785883314362838815014648739116959379246006689279948460400865140286396280862101161310599102952324290986730064279814506453344001418040957538096814541911543114824602266538691638777041222306331289366767040640247540190104237412064835851832380909804993400769655217338980276502545775696653770384347404244386113826096349574307811634764156711188535741361647563647953365452491054450334351157566608021385943723731649291665961398113207203939614840358786324009499982229658221903364080849377618746943624279263541385639236900986585739000264771592900757332762561128074059393209527621376273879805103910965754939991894894872728660267453451782381420444375709549147407548501475492476196722270976651495461246036407646115479497360549147506795851692186635150519714867082717753367202435374486739354603025399586160418942141654765084496220942113308891187331667697883038402928394397177588340829455985226201029173541904650303288157759549373813711348718565996317535503214383032040568181480572125629970660405090891577661173635803862255037126604165702452695834639791047947017750982422905904545625422179534224285977261481484986025270781221435387686056243108327519614067267134355152678319015682175040816901818614260167481648345786677210926995092956635402739626912939161720821941012053625632118761173686538605519877281445127972613518641587959785898052215888370032683151143761868152963199895985650803068308503163969140821926897374895268683147385292183024315259012487719072305742012846177981642449372929893916179573717232381010382554894181871530645968048764066870947764926243319214446940919393255225167548061177416937747868222091929336730728814909513870746861984893648784516972860300465290382692364701061331755707599172771394068334454824822445245863508288648370359130941345294926262349047729976188502256696182569696054440632340447650563316055768170006215854994716508556693705024942853801423254669092598030727410488335436766419774171209849965575271062336431125286433661093338282021612406994351035317445211305511506589484013702077877076315934468550254070162723544180642707506345291680417456216232925143721854164205180166003986436202944305391080460230786271779003793485083423928611373952443594242011462331292518637869388611206779357080982001491172862072820453631012420218921965422735843793548380582915636917992412035142409801685694347589801172317624031013690114902808110853263397980807120044660832421525856947852211688230501528852524319412355832181693538822275579851421621971411838388829037121310532318096960948301721531112323069382111617273810237544921957470757367673104464860055948064344647271982005557928695705114225129776537622299427252312654034602795173509366232819493659640485896032383929487556572468451300692588044384307186075010552750544812522193922555223179215116837661118800907379340860929058433429374143214659133129009890887540573395798621733736988773072993493530287596170204596873726293027186809783868244791019206143122713997930596827679095885677050577822031233782299976162375286412693805538693789296908759181550533499778292889830404362890539328958716199661206461496613945586947320411495809404765757695896951275531913635847746191052723832606621058991095012919691749840463443722424609496848294323022722910287215591751784527518052952005592651948302494186113667197227272742319392703069103243827508217646696973029656266006686175754496085896652289995475339948839145027467591315156355209724365986731639657361938034117159260060631192945784290279665312921850678871801239690341273389257705563130449399801687976553657264924381284821775776530367735232119386433113443049994115441832820022901625979159937926888245556156813651756332784491723298559959785683038157956249680218608783137720520442490723508557372660156867038162215608084591948860249948322200198284128123203692021186435079098663698272524100404053517439096046637776696030425603425600274674826132956704029573415936172192841840855992708072302959070526548833131713071959243451522487049849716876846253076915441599075914334887539252665908169219788822916984499546518440113462071675830744432174386426907247828078101354307110745131801329151581742666134770148545428281307420614052509795930298794477876296758660727569722101132757607427537137856095338750758806009489134657520887620545069477539669731127504286455270997437175783768985077933836442966237643665973477424357346368006007846225235377697452964791894114497631440041539081517189560527987724536877968168717991968078257102923829226911005251702919996658357781019533102655907956047919613912325609051710918497521914592441467324139190543065478334405181036603964502158918713810437812986098417184699350079102347177213204910788635810706295946207379970452221561162789816355303846023917668560873732642037660959768917019194690229796922236049000176267175035018732054198661717469969735305503920695094331870006709639542921058646400780982267911332341748664827971370082373109028081387932687016293021768957942595398947339771853418313105568399018089412823185577605287453260198946842099467085958618286375661974256822160141979780819459115158080414762530723137214352523469365139246181765312294685174911733484898644551541844971804389821956029425584438182382280639797863124717488849019199965323923516937953013213380137530792625002584516575019645036998079219885029999465748153733482335221082649805471032036491865368329637704087606626210410884219534962268738409714488836302290891137852444949405992638399106083631418778211626235575726324194413055444482278211376750852989658701980796145128336024763749080136099833609605310517729348593901768092194228538149079589549957117053138931058340174589003498474277828485176780141560433003781744220947336479940521255460189064778671000703360042995675227834736035776084082066192153897090274100718594507596309353100967076724204828818519879728065409961402775223398584811402768036616110026369143117045498770086482340988258390880544058477490832645154458362635825684378837073523793780630837172892746338565889312998384941904417661320322417486606374360260315412169874256568006992439975947512691562860842960103427989147168030344304999958987997504448489231932355944918563471016956436090741008378610402600882052360290300476672479400058523945147686403659214573660492743194083158908290440872467120494141570325898783005484570328574491268530142926027402708859450923617407559353250278575713405292746286055652522256296108489956510447925673963412141387166256953205536859496019976157907558468163503838277379334041528831547652503827138064384295252108762422672323728667550426619526245636959545116913747587844564836250452414466959439719093531646471418662030403167954780387442250282648567915290520472976403141526556119922131584324796852574997294281430379789155105020982148162408263738232444525965237803727024962905507646652256516496264096234370118090599205697716061554237176765533000839565467545423886157220263242681480499512577597886899091840656494082258261155752935103454063708634199016737683917782526541954428976172193234963324098818839351429035003438381532319788696043370732232907368348500374665719031299237318400203642173236719023859292444287223896694888609349993011901604026361446691994225609475013992272924233584991586648382930425493053018237133092328792951556125683431472092296552098425594429053692282715659114387406064532822395548332346684725124718648469902522366680341542708019990874827673628014854595226140218849930878945798216186529063790387960443421539562225250797911057018463414718915635299934649992412277229168693169224138558038139860274034574055925510195341679393502545448935272665181471160297063136434939090812733071202870707835693227962157508898911013356876290158741652015130698376407912859439179673510442434597710737896050926009675504218997706020278483036794702456407248603921762065952356951919270069394168720437501788081416526722267401814542707941156793093418601561812835599525328665852958095027836754709046091799904266558462091464739071925854599479761859474631104821171982098353331828360017092963252438580031512444841868981529085432002399608320546095962036312375999404474653510389553569718492156241166711675967531337784283028750344061205114255888274766824622998725008411398573041020927252307600514049899910944206488842572058733027298896996424829497127254775923474307566372168011534837888700233633369318298963304419279507943939971044536310396090983299077181573712533138932664234241716268561825295838081510745145872909198470596193135560802499922716214586971058097089205323559332275691327121533145420488894682058832997433094326492641323759952548008706529621471556687952236140076900804170832666442062120540875064785747355274337202198778403070555406786869598423641283476158577891245592353150851269404554617612319756529689508735203934686285035716983462220043515765612879643327848491251781845858904462473277303647296028060813564561499698309090019618093442710627207391173555216319704363786544690382081414086285332541113829019580395144895770826313384414655356702698397250464263579319972189263242569140002994333101753675057319810589358449599864539831505649977269162828330161065592089435083121583048497060763953854238843001342179067386121794565353563865243489264440576841216662300476915251478007374487138911493127967262865680289871405245355908737274862043253196565769506340770512481343706624016563395017885346899971475974195253056054903267476949015535861024400162052305038725451208715731063403634877965938046123683213452363831770216235278143351585529797331013980532865728983324610035456231050455025422204605033149971386670994167179174103619615444716530471194885935662915402857661409110065719300849419111505552719304063630188087205360268467881904817473583554760643047933986264974522408952158139271400240450652135394517239501726723837214515522447563515271804952171773157830937982323024210406423484028734343651581903518656877486074797938026060645720520572906773515611921420608187727740702674275355468194469501770495154441499578732212313674067071523878576375162714737673331590299786087331583762462813618388466650896849292387082434375578245259032673623787221659863013307002027364686684664828035339867836216051606334269777220907767579183994931744928455473090309962649347298815508805551211467979107405787039306922011981192393423341127263212619951984877044863374510904916771161767762127142562000581773184629374601800181394260111812625413502400015524240929925160897775788950526657431184161975018647787951663560429687291736291194094854090365305943128283625584034438713559260585106374211143967584696619133218877876765210297850348702688926901639781421319140688689858447930640234088872098482297169473173337197914587453659038959812450789276477016890848362943121469268822761117408509687367170041081722398164533582891998802061812893498607994844487648199857157149600903752215187083353226038889817038669282794760441899509266254122483421830942387001700658652300334871922414713152910457296087708997036412242451454146956397355294133290099383580409504056005021622348174828891599472154808376849033698605940558570288856008712060794527053488057366993017894112117290306795341834109910296499794706944373602506304969796682278026930216790753915742894292194478540185600502979448260283079799391531607316809254384479621143533293186565322537097759849589680406964948803766558171171817637463707825920494000741242600648196793413593477576601013259718759128942681495569955488508156876326097437799059508794763510962108073615821756407692390294451181074141306377165348709933978542979226237234205627852245652386069812046500571651325766107079667353939297317899677147658349542055592436956718964910959227455599060390761294239957251712121059136919989230395238399723608676690850591612811537674488589069689502697426127052376593201006705507865899841638469102828946987387096597439806574426764275487649064055235756724547909315955945480020322456166664222527225856463330983896816106744682394122947998715358991493473131875307851620002656810915100305029949140364042194856481794399653600523609524162053823399484312626626550636547782015471413465122306997351100259776268914711742248052546704840547254410190920627615236868239709097497755403751675488369921582808727747888668832319381737421337368939291478199604960920670971638752337920909157901492992993352309974490045496304920832320665991917699502639368182703236041463429947126143397295470879318490843007618784937690463837237614232844871664826674908705158579425673418660370044927522840140956537074677155455697900199599043719632732037146364391681763527635492860715252021258954475599571993528745739205306743665321538298000914844678217610833320236137442366854534603696539008338931093791125243760193821214497158222462256985587853371862424017125413408305673849379342286277813939137734496181888904082562569763964174331693128424207091232571312969207915266788408395325441182725760532444225461706601598898062142746830647414632988159905804597286655665903027455434318843999653060270972848247342503202527472889654427463122413872951470033093787394896370236711425514739933144190332816492018672268158827691724716479784025168980072048532441482792575844829858315710021162725368615129957454052484504686258258972388932238438339463286287326864810101350635374012025200553896783595108449885780056830654892382532029848219443222508869992998053511076344177337879077180731258876369365791808088157400344165471521833229946177945547568656969227769623500479946571689204764033200711967568757486712600521879250992478276017385716077364245595708187675171734970622960247664618946251442895131094288377827699747488065151812529809296502435266292726719088396837898072182948876873349255133759938906485105290502240091811745860591483088364450529656922584978159665821630795350579574334549358156410531914124169174313247363474718497704584802369048341184399494939951981668666678576455176130340150469829311597851016089386321896611015227102087906030953273917378890214673385120545687733704707983547167620959152048128819126692961499507564968026508118020004556922930481191122756731625319022123343325620346234527870999935466888167417526632558433008026721987424803197552287867156133512334191630966779225712789644421507820076249959549423424157158763291864253944231358157847566440057118640514774659225977324032436499304507542690103086216482076205709325631007680367935455490345724800680178827550350716822700203690690741565644074446326366929035639179030267422663515167094462303947232562866303793182432495932473688598679486607773623604593509080694373818125024372915774210570478520706845585541622798557305411681494229953616692785325866075731773913257342947301092795424442736040706201683399660514282132602863462815927776589547942453465041419171302941516597224042778879604958838027004357691699242291188197456111457239608431554032232595123768019692575845476836475506351966441731238737231511141748156264085842099937401947329471228570196206209001025219781779200715553876171721385867669710755828493240238574358051880095244560417202179865770362705406369688763647662200725079687230920156696181495072386349026441381669476258342517880340690938430304760454823027486135774094142442620587373010326750675536246940173554141493960993657157776173036789059368974062456419437282246955858298113338796857459809025012534115681998610437219471134612713562780694163887671540097824355622762444655512147576956796924683359415266558524453844118173583925666210579325502476360077650879762473565300246857327971316882457984140609669609465477329559742915525607052975852086946202668542583845885678341940285036283413886426538649106395288167132660109077297517614243759713618336278382722991239312557645480918437546967119206099087717280923232602989623148098628651922889611510601080235403665186965313230121973578591808012844182032974209079982461046905696617384212112936901464016582205067555808091582112218824440822606584847082118515095601948182540724705528085267609354313631449053941471913270058676275871694670691828403270875555819055351586043848874994692723207108019948065522153476360051296638182309581514809279161521814014085815338956707662166033297035438761303853469951388925672549503908060738266929610248395938631594734204900367676806317306552791632200434798557589425626238747827074491328960083224072463732890430742988615393061950010445255259616080047214156590759457087369941242389166660971951736870214778751402125723484730909956560190838151954266575263076054508723959577568096763261335206171958343780043993857157336284268812194287850496671564474885744376221633880207590933968091477513948278293831107479136787077939689297198003028669631673175362112652691499720023306915805692832439533710670981081359885051418122782518227193023756392014329936808673906555804562601503162511319947777214452294689159493310704248818675096022555106466253319849316477837854988067196310417437150259248104232192149083078064436517035479515419764312350249895195549978211485087669420850743021940072352521836440066250790200628969364186631571219790976873752728310012626770008422409392808378363680276396331190015583349808355767904938574119191335582785620717581567199737648748423259635117167074617514527829992343699812834413673259749174765866576626665136523039013252332114786596827315554274102932289839020897699306675261290009723194336507555077049759743891588459497831454575621341651285586280222923681007983452224083112653064213481645601390486182685646730601720583633742724429572319199373961129387262005678561583167381692096178362859400800300004545155132636556387161539674381158891931747994985011560007853550129190380269255340798899660139043819878299856420879902276460015638282035589535508505405201564393883778593533582395968524184166778428418584051679123145048213194257250970399944150026605193214742379218788709134006459467897126148492540427375213867837486229422939796752319844757598734708338083865813175063610018656226034563739169949984851457111810304209446068826860320324676290828195186276533869652597249540783881741290274696971400730028214864649035135174278176397934511183228033830294476996515452023129409128145178995251143969081167661891894961269058872534432379333836237825100644650459221665928240149028015322719495733306287063749657719103278825234861769121008046089438168673449748661560894378673890902078286534778407906833208811305970017667442341741747516600500490864264250973113991836885676369539402476538390693030766267422931943044312699013115484299616225471565951667852888368570736091982469364654539412289674973018249893102930616087177042349663499412740444942937418025109751185986737611426326281665392592301128520126648610986111906797858769345577354812011029068326631489115021174838770640005470376892093100306355169189653587411539720487918480371289251721367981383937034748932792473469178321222366837084177467456337315535333678211224360005904212030169616561645937435800474406864941323097352109969503313341380732719501765702198629341426500053238818598223076256373476026453939994126354276347089533669953317718535680412832762071349825352900646945604048887508135877243987047772507050667561781615741266893597808931218760976749449649757320561317811670668784007926889439776800921183097017700017613706281362297086291931947861125768290101216184310508574153505542234008726771129631345713479322239189414329018316932997455994808784424666914127801690331203614360104578578021475127951280113146961225285524926347999043799211726581138130308974291376564289568101171014876289652378939378491559100687951877872574343776533771535719264621985355275035625424715955150965895533481831301605549628720606540994522835325765491448536154931065031867012458737018629876199111453654478710772059198909401354864738253268935657610765518567982129500489669534968327584466888196206289259889426635355221280164122180231195886332015908667070645673235143173477033769186339950729924452832653485542684867165036162373969122228171425792689532039686328236923143931834535370370067917382155053798589385664118689203565392352998283103079558392799484607458279499790005993868150001903058216688501974813317232085222046402009373589987466041843237510810957190731289670676205262908455643262227361421195343953578314728419145611720024242982876982523875156279389512467307829327426269446431648328585493933667392387998953261785416433318966075511226926468500998826028438374223058845565831105743037487052434910458705623726831363910397127739918558610231904017395477326493464301501312971737365576210783921641875457054207176220535367985375278031854994216667985517502484792383343843703978578553130909235400162999142119802118438868020500034124965673555152062570555491583953498119767452165485744771136882340803753554252818035695292335239390210496576527050055251890137233580464185921068745934345992430783386965920703766720382622174296506693469942761749504436598071724622427837195526788106085637714794949606651706955871351433775625965293291222668458710466101332400969344414676507060268268621458274107181735648007398503784441364597379979553308852780712942471807658976476561256747176094539740750979691244424666200713276845784139197004605976278438490920711107594835448969477539993547124505111834644387640654118122362995907376503359890755609911633864445323971870006153546759605051603914439607491036775085493579129652358712247203186459687174874126714658720605319575047699809343991177548136561271379545532951808301319906506318339128624775304382549891387962589465329284184630218671598041009532421737181714962951715359476426265927236322671693841016779674993783727264995928818521824216963534545824345183644267731941324111568072198839109030831038614542024700509689477127013097801935148684470502977597396850424128717197823299039406042605959170213016797655059801454671594634594771564133263766439387265847611098072148614461265393793557858430680897680310189549163882397898218740414758431721009729140214078120518602495480144768346143509137443118214839442785962511482280439625686555905529591573520059804812877686859250339900905855962440095635079363493012689569065994900290732317140902385136767484317968587980703829343543460881033020701177752997691150309902613230214185819627692816743502628872434590785795769525688027518019687317899022994673224373875111831690062411436794738133821241496384405611480431569191733282913162264950333709721734354220391030372007743756954931721475324638360874691195079002432418830340731943328371494369619762090136458651393129630250958468158081217527061350778254166941420165921722328113635918787438659512740277462346663078959207464921688401525905199138385373842163503369218446079678739504245829102566153019926448787480011927528504325313868481093195358040569103955122498459591132692736380289919137422358516631002955367766919909628764564828762469825532527682892169572952360161690560970687570250521822353930169979322963353274852900744852953833176486681517969746388962142791373527999904418930040907153115873691556694346045942712861910860291104624430943973514006107975074500957978469281744729370593911146596521573578442490188165021548734025090407926510622173710862687801745108036822562715969458854296974760612019652690359000157695792684910337636409799527412675890536155275413922187190964798998370892428101607189171711505397013318222533391864407557938627070621142794450621252352506884343039740158599760201147168716498902922129018152209841751556298933759235546754960429937099662665566742713392582553668262774512760329264603785411250604853960931648599041231060031542089015922853014190299347755986982259359414397872812880353197801716580710622175533997333124013485788271127971089549665645566662078823084910193685638712088400453963575172206491856750918600137827536377659914707102623328052915401565352841572369550638370289887079566067792577520573153559364849420259177396271733131558605549654785678325558234123398116739773380120261372216892852290977562905839757375421580283848357872756779651613040752474325910410943802057686684845785470686123417336369450218545836701773194444474820651588143274876718361090704426621472968743662680735148349053464453160291054659129897581730160081678239298979277739050834882637010247989916885219899130723661257606149194956100121696348623971268510609245299927573374484968236040409961838416576574689495635707360210690893740121409070832067518000055553262084156136487099323785181392113496751166287044968915642366125489650597271100060947693927468687783144960415282095605403876589806289695231355822368614957678136234717579168705034434089163088208933772464677828902847554745858273426471703962704000399971054834573631109349296139393959303119741603901323969233665088415691720793846226594940000565707880036557641379945072836990587143983924922333236081767667787403827183734705514997562302007976943425727143178781978715154386270857646424198077820162696156918676584165399787954567330612892908969246072170669256761561232251562754253614861636287274800744475070760917708301596098295485554609627442427774964361912798760085795533703819608932649767369556178821495305526908318474844772088326186842943919834812531374977125392066669842855357683420431066224631800320410293302566604898260348495974688856584183684199617652900622064058778139928054269463974004802949983428043128681885803176248991334264616851194832196375998719193511787832105014291079739291728954889198516290823052597376162867838228448964851443126788387273946839995232336530067006322160718336744077221754083885659237798068905106109850818563082878333729735639470005695586560751643728309934442999445504848168239843577392672163931706493142425817953923561155291592544503523873560657060704113877349989994312066263564430744864769793652931917463515395774784364381320442427740324384798569556505478684190012987847154787039876556748538399145121132065225387278237071535713374656019176711475180408777573530403900381843635255071300902351262640576013742142706542450481452846538320822502720984702857701679086125887407419159884459050937171020638081916256040736689178290068242701415106848841734583460040008655455302525894757069663092557107513633622300153182997962302555955724377072055233644574185302372861693371211304385139284063846633172380324736525637328435747709770457347873171290928025133790236958684150041276762339077442728222960735272872489152688121023893635101209416050992553550614570733861368213577016250709624723777395742075198787883528171470435703251381021045551674096079976337874057732772335847067012237794497153776431001980807158537756354395910733128667388969301913634743052161035629465752997027766071612549072399497431071913992561181581505671086106931500898294660212745243806651381715802181243528604515706244387833394829394494210304743749437197307851995262496343847410493363414018431629954315128560888739367627161677051097129153587059407007853161097710176842484644757832630597273454104355678954090145140427456822945604901433042417085013713152629199338536162797673834905161131972142778926062991863546811765458899998910068616688025201366585509832307434159197701920776973425456875093678033142446051761784558151437629460378052535408299039852390480466448406143551372077676301631296078433501265426517057609230100928087697506410426737140808168196084671294010834142651836654498456996901571768763620091305537701220706036213005448409089539059268110906948548856099881473937460569060135966184310991445270723015484571114489050098162435104076484506922577769081093931906062411369252904861865501945850702313089308648961605945638673446236819702908660898248837938089640081391932780518702999424317786197483999494697652270472682683254400769305648581569104318597866449419319801017199642947327579075515025662379313109015015575190942784755714244181333436425465637753556835112446123462605240160787075880778130887211992804819805594988919251438701030899168604204849337752090206600772012357825927404218289752117954851475714192241688150775573403877947007622836747999654722882336808495051624186964351545807722100866521791946901070892359269811151147372576788923416682842630594591524627344204386541064431139999752393504887091990347356980661882886817799963773847117995554376917201406032639506023126689099662363445196205692351457957569181175179805065593532657329258082046566140911852787122233868494216186814315387299773036036110769532462562475790820563184745033250565044942874967245927112596258678656955404271504606700201782658454918515751882030918337823344125622861701973779965231011924226306625309985828686085669019087230397466462177456321592562182737180034106558950215075626047175126177722677258559682156396093225802771654273014747023314304504464470985852844387900063434400831678451164984469833819586979812122360873679669814859877617708082094537254498248699938578974827555673294611586478257984896023184536847780608052991865955209241452376651169953146562371334064528809995266176592097890067107440951176581092340124681275305624712210221482703100784437185349151020445166427267672068713127228367212555698469627351393173875596872272957990902768542793669589794238143010197629348398956313875324429030937755982022943236798798060639536096952611093157177927125931271410599894201752024156255897860584464796238355300812119615513567971687606824850743680970943752951414628769716040585310159082082214700017432960213082551064339183068238365828809940211162134469535684942028729920228165847388506622686180201634449336331050346974271523604153875386774273727288551000559854738534823459114175988340026397071467653071674863878720820502998575667957909254701351215174239497815586439325882510764486496809118341511889161008435822810514831926268976905319465329665216551978639692002139341483469860318028429208036555213369155252305352937482092472550633622485648829411364328565271500412801535943612319366303020034278490364200426396856097675644042803718957799674511276867805754491741475661544356248843971790132448657034943172390931590129195127168335499478412175122743269623838968757301439836083446745169079342675028600977715796016310988133667907149579875792074485382398938459231292821083869940953065505572317787663494045877196156981979404934367841854994001011815431309837259567779237086282236908857685141503956450035373348746997169790133253052407840826504214427057666467622828010484726831666937563312228020146698178910636993027261229626657520733042991613893267449957686001450085679855026440369525200827948338028378785780314098978552666759209619534622808780791064914825870973675379694614491502077109450205555732573134086501222071423891469175256689256545431191406863806720507295710302467409998633845894036171449740569334174167507982473722154661885468023867679051060983063619696997221627236429949513460631110724532824619139146871335948193941165173236201244573459812068845203821648202747225910350936142516313433273109794005303440838850324193926697734972720925323023793549266875927190390427528088056693726870515304663663813172498851817031790391185200915817765909262244901769609365456575974116169722060868616482791670785453573693936325345055220546080785047828976244876847772535743493825765181438975355616927183410436153966705086296769579068994455248496025230222717697688155433288682744121066719504452095976370596887775534160693214079264978240734351245129708911695086410913035678057205446872445405327398499370983253837428965929621399784241944689951427579648201638859039802435773377244655109106079770265804562881342822220167461321545061981478935955960981989990387481943793103095623130840357057923754676334984494116384841117672013540524898900584950588602798106431546472636906483135031016233105272702225056838442549827969939587986429942755568628532223877433368794735603120626615399048534883169847030434724510952571080632028691292790372902437871599986764223326284795047483286079490356739222152898011708605663053408839813791194063246232989270843430899649595807372010466896735538621785293822549447605144050767548584449996646567799464235793631408604858312883742674649387601586388829957257012495371490685711975726733238610503054329745437671621737536475352179092761135386683238048996565252238641087458210795608629866227018941862089060731646359717418699475551798723819574718628298898434745489862240751028228227026294481814411713984477090726022468017660581295091396311715771555819312643235260435686474375191120919577352982602004554729030067894668006417567353336661527801520519479951420709752207485264173628971300154048098070062810238566836800635662114485084468000658517323040598427456741228830874978722632548545811192933680750530921352508700049591255187394732671658487512614017350252081667573331053189330496539589784737666461183670602022969870540270209203276973791664105435285913253281083012488949760169662166468208486021365360529928492446533150170543023775406355786827029589677254442738621960264861531715379300385676686198891138943627475184339628426127281687477226776167901965594284525209151519623773432327437373768114730942072806621461134541834435186167819477164490405217891277229488111954328790325403464150819015373243393196963489229461978196485717768984915293745320271883451584022510943320689579676120985854786796043804381701133291732020558246133250380714404254012718846869564204114905458515317686746756882456640688125075992954856921178196062306867860637156432413987831132610363129261078692901201520998723456293137602789174033236912978816015728024943381705447884652895854003506907454947325394056319805284837794559906094461515024244835085826271630220928731415071399238274839473555064783525336011945304150406092743842569506953938406862220482119040574023588585227214205976472918000569178305941781296947407860947225867826883773968877971872307786492867004131641238992931572969608641483938223039620868281168924082479987754043920247479305023358668928794366585184875599568852530503177850343771663195543521577767254547729646980471577497964095845734682923548279796057050767663383963564402781458099521720436441574017487861305104501245369558501630017979899837540361315795102030765571434619469624662524920523606572522628221400168275987171540209138771244697661809450949663559006018176883624187614509055636829662938178205151042994169382618341953968291130469461185601746436758880301628651600181702334963130162462664629760977299496429569143418435925945497236212344822656111219356907017839660106648761359144318675773862088207834978736934556490648074112053127084304097511379826426945698268948680160368650504324565163507281468050714440174084412730803453706743434025778942937746946915785989361991782315044722086401249723701996195005224762487519824297719850519829434838604923717107405474824705812402585921136637691219551392988115388338618327066299510004372298901249842345145201615527318579096979052975154612834601988179347989273353555598371697727155793810873681395940217042342340189230987389107471841174912258647895497986069978600097967534247838585896546419959838515849973933335228822024016402963012454715179750024385435421418493364239456151597446508522266319288585417995940314694183558089015408308264475488841793167371471966114484782708154155524409840119524623700375943350818152443858770760079392380164076786344066111445887102613216317706433466623096623358765591103567546177684599578742813334719722610138813439611136634342649178241048174541917215666721190562652485255945049196623941109027820471006341234956441721798386770351938482813498125694308432334612741013222181846235148799469785786145997903554777775279123131819977641533168464640502543433176574188877458583213118134207741840362574308481015080792920984350975645397677021452771745104658814218926921458471116698022827304875554857113381728636539464772429696052731294901487643068264973151320506859525538162067680334673674964104913506485884169537196974668814308947297226964161830424608755813722512869920616064766530478290664597343358235163068654402484487755732277113488334986261187727538841871378099270888559085333925125337708501693832193183027220405030169581945178029096290283801123014710543675981308289609029411958484068622725731257968642878921616762694553496666644040243932981141951564144378687838454896824157793496023226305077057220664799668170236516816513690192398128422563227697864326031168540032715981190691620239760429080319631467873834072406531729794644578442142086691927924092207851581138641830384431871160794503403835440287711183559201349773705969326104396014710285455283972066575251792744278936615289214075018335736540523389508266259290614760534492351109298339991206168939422406726707092254837826045135374241713608517400843192764822481529678726249081971895552528269153605616695426192447103507798193294060957558402742465047601307646909767446416226450529477181526619611447571419868518523692003472362805322760805535600451925824125307570887247459647491585091016674892746371472884109498823092256194948134071665687376164344161396504842799751575843016208434725584618442151676607326969511348440990744680761609569886341601472727968941207375888392197917176751273398428988824542453954460225196127290295596113542206755545139833865538984773845323098955298196076325869669042345031178327285758705864572151481015174765240916096974742341119143058662185853266578994759262199210519451785229163202743273284777331578631477163865220558013574768914960321570322393253156287629026678824648415301547365837683770632863725144202291827958619758876168078978775921303877504564436225879109448846122167761423406123956862506394116262476380930385931596210639722958055751966288045832211427814972622321412903161330600208082101698068119619691921540338542839142069413907152261787190941548079293736931222966483889349130629147364682303907761412490214452209012631578899107729511481266535056454116871511435722524171290684201127634542281743444275829640472997115349772212442991728552701462633567630102029257958821933278484273136980037468589568006257618121778028589658905906803823517775127878754343914306787362218676034003775166383195381384941725281928217198750518666718042048802438325537915089168272244565162051818966859693414992833004478631064402614048784171805128589489598681112867552600575339757434123723581070051661739844266009267197897707265782538319674131808236289530708573084603102531522818858925837205991732350417952649715490672941185315754481697363424990889350959723971298828540560518919839609102005038939102462043107479331637305659767120421829144307207383671959038185967640041354550447542593605930307929039717053439564869693961489961043961148694906420368059809084585434952986175578166185342640382046518077956759084460127935663362950146691473836618703676035534695914068830451315116236217609975056479142305600118211283016261593967571544005661600705815438683391225438274400037763927499860629959869377393408446286310305289642990412271353696820300081453068775065015087760422114282878940770662846211095269641268217780089595969273749827582574766721378809729468427789314196394972468670101922147832091359051507148340285292886908344086927461769623301503517917216161394069466451711621098209148257065597096779604152774769778951794103994870414489310765506800004836517173207784735457735587814179650658833738544770823276561440798603763131383628085174362731957042330842852985594538659212952051787056378577067241487686997531142281881053199793709626155661236145138462323510348585784401265389365491891041676301775321242716492912201668947393782884999970212391293146593728814677166206266137856574735140258196384915711246738134454536775882588419784396460943426110999434801215966936450484967035540660037680633148877476828300210880682923914628184377197388506854884255682617885633196108249879184404163516886014316793722547641303486469437522956277882367855705018284815018022601407695478346147042290180372972963643079746201210678536035853574332040400436695699255290091395572870475781560334312686825929676135261894951731603600179810087183534512982529288132189187626073517578171251766605038254039708545901644796168119039964113988048515909808410824311471559403025710557637599087763675545740847355098744584956398868613600773082558571423907588621608881936421699556209015752535652456283577684745891292172738248006058455665899107763475652693619793979367502486235032834762557110625872913318482653172776756649492915494410962171981383396697232314916975027686459925507017842753678743351156561228623359341777938185428253188004048106162421924579710124894140485813136380298455847203907497114838327072203148358238286667624335574733298892151272263353604940173402345504276425617113326899136222824798675573805599316727657698967352086236454649207287009470916220016605460070469242912021339111791564343269528147318602150192124816132666405435070979248629136845393693632880489934812194674361624089075494843009873604049777607336156158211416603406490105508955510674817353201637074639676908333172783377758351694033881623777946530228993335460310322165310257194804369988212634607898263883046888618435179081811630979583860161073215997983537316017506364345120686178461804763688467431359443885266170746197851118515426964715196089748746319965441630288142992458760467997552904642581452681741665636109964031636941637467852178283220963261170331096573348580070600792315663562412156273598071588237781869971557242363996396667052179493169528541652884936673592149017281414106020141013760884844698126732722583998758911419352882346476003022363511308089522099365185638111938498351663169658951549846547641951036102516911979595800639711809540946976039111581650287895827771119675494550169034931053104232572688666396920678932572671236335806524841289755682681556239009976646816110394174485940016451056413142585168488223164937883390273502630967148420134519829199653351155777766928584033261196470425547151863179206856456635673441249946260398189394289929256733928671326500239178289171240431066317189792803771982872718173623402117968203168947479490446116049391757174366086650084470255180898988521617970915999824144676660436598195101405172531568253926693020809073789168100827526302228242663448126530484105150366639097465948883214524500454705715382186641947824880161487610657661476376662885991349314906046569005347593097710104192003537161463905761054624648122287601534387874589481110534929018727629120113157018197257552466336443888293564960712119946580587025891476752858859658504398622895975083381914410468630250361504882920584004791091506257659916010904023636692590446688417309967131857355433770806123562888685843763829080191840435650623905462857543622963520753553457869706420830698247795585896234048067577157850061362201051154657297988770872527959683812043059081289597001345328409362976790792986686338723936058020750986456769124422777859653857346627024682924162284646699276257634824365382895225746042363011640543647602034651292395200051958563905882552633791343636292016090484541577412573614769083501973650440950071450392487969673820457105296377227549751878485051995699756139372292596980499863783830428857863543667949874658996877304923848710525593731489335539391147762298593534061129077689877705830805619595559514026848435503535776598305866288254060054241295869114231567935101260866056054662200922548892445064853694452179344115802348955781569598620115050547250983063405898128195702334158832850961179761301916712004466867699292023711742833733691873784341016408672100819119636902811085168576177076921348698121977172034644056362937672456294930856822174585319149214831758247492360877875107080200583791812740359723239889574022472527935783022224814861314911343215913221766870718938670984975166348276353168528626054344495771055391793982161848426703585412631663542051074408248064114738051629507819744950463575866038770787660340385606741369691550270595844346378859799318690313980976543670502380331953390545765196007962998693275173622149001174566230449323098336039401484836567603431859235985716056872376262627002201568885542813963859070492461591314615250424735155683492486813535181488036649412111872580396794093501925939226081504130337127917762278358060101244434581271677856470380981105483163482646079811921536411307736303173797374579884091190109336837956549346837344083671485368311983676169939200761380527409546219277461374290650914539061808764120909364657981566659367760073248647229704796659149595156436583641029040912767136263479575709349521992179942941995900541458941552807374610067256512922600512837395021480384710366906151459452737679687117571271042768616696977897978897310638182995830390276778326297409625350688568229329735896803800919969199520236632231875292828666948205594508766468152879141385181789336443775499780420874720972563848931174405791948622594705779235114330908114054762025684711469767091260754462743907742354103227850963747740874142856130200736089023233006161053665317036012504264958458446817726263369782861920898171557544734035304019735211745291899593215177325300754236856678879739408022925797493265469838165526109679877396091258480999022411357761030504374345922932391113909622932782757721849463754129025643754264569326971730543155381769289561709079589001279681682663884226754089829697913470733660609596575529719825041594041788019412005587625281211979500062558574438063010309054206683886761115168301341603471055955292679702591773096883339778085081199420983155857001755099229643759055436516461953560039633623592043945762635812498342875662199466644209824781042012928265827506603165622274067115955006626670288612965228927766465040904772335251229538414253657543775558356032948583778875958453382820211942833401964146575868063625567395041209521095445066482673280938885594423148266277682182464139391349162799573133314850641880179535154046667736320366487233379039584459938989664623792521505914980036735333860539211231744149864804579800151257559256790181181495120684248093769941494037901429563141409280700507710792979096015650487931854195125179823889440286080360925189004753975651586352011618343235537520972889046639891765647582046120442126395519919028332772898787308471040563292668540650515127993600120877303538924342806346793278130319993213903655790581586406701609512996326962103177400931407631280442403127009685577216557688959351911614144674681954613094744324569581400599818215321135662638926310166540944804230304317034181646637537024922461739915051612397139392429621262594037555319382078637142905738611130703266166591964982745870481356749967655203503198012229861418515388044914341574628016066034169023929409367941080360409631608183681794140936913268916016707257467031028957506262553118724703862813401136401735169599124894023220487651688516167898911950728151734252445299696785542343033547066082729693992265473767798629914069941805323714124992578173176984100423696307168011143980961022840088203512374873769292483806206615573942020886439670512260354522389740441393519196206990548442144721679715286745629997801876908065644094967041110215854964271396227001277430794968275510992878731738625687760228097281711105949450504963921600813250069450442914266722816444737761441427370059834723557892192217620591311905193413998170383472864724487546777829974068093570233132386457837034180299164950626394364595950289136347311269675567714446713549438519424527738079772665723521980448650709767777462764691374858212591452905287577419614916848160488382997989349563775772170496904868736354177175686562206431155500330894128218255828393692071063022611431851847570637314585790929522265395509078627449717779641699697987020147547542470410184708593103750735844022827779898000330429219400186540026104548532377906133981194035636435081444550088162423861760264809056236946496663490115509051251648841984618516729044203972335822188289318050461826404464255115509323227049128292355314818369831294951410935658704289738419974920701661918546795304042615510736271900132819630480380601765108516752726942079523173815847715098649792685474187683522093943964362828272348925195073727864763530834418045417414745741033497283589081662547338164258588162615614226464706472844407700556870386189467894397882411585071451997248857274957981305378077924056603495208627219119445596927552528007404825744635801906357277325204938033759679279689905105489951349155852722613208531838060627044695638547059331086539268734217259191299310368410832024815176725370657659344023845194831818074521293003448745811396666720447212773406908694495281867808880840559063856912513279104890859255349509944279935006748948881912443082368300642911975317452482287503296205739774943783364148861599295503117121704205313522841654883025237638039466887744894087088077205154419698906661363865862966735178897322517070293127318800490271314059234430966383293894869258503417491566860531224519976737795883947640753522245095460195423716173288892911435476526389825677370015506807606896790947103508527603034556254332513994316037903325356518964669574037905476973647401008263216621769814858422800690323672543362480016116642218522733697469978889229701914604259633761630459072438312961997895040377970240105110851434174087779952932976253207448321745140535091183799615975421653296429791202959813978345542623734651871415077510861295649144418504761423210571596908269331690186543395922926663183725015894947804316793912897571060452471636791318632697743004095787798428761083899557228519199444247404525531627699825147401330107839296288524412321751887704731447170491068289099075850134973222224568498840684285082928336183388302585532217355377371744731531639675620515722853303355211386692064559863672599144294789495778206866221555124349619171175548815629158517031378156698681225364628160284894171019436443680633696484867297014125276382801617479581433180361623955899423907313832873678350687790681963228238689384776055574086875356668265307759152781752205637630530536837853588886755186956816514157202482418741756019174174156638333520610204386773115481036752221269398195652434670912629978863052124793438404332568809461149259035736417721070691169498895802247374821794977180209845759314020260591477817058163060044107052978790945898743202861961805081690161902322490219652553739189958474116604298897352754892761011281952271785172219773124771955258965966473871040893674419749874625033109147476700531632230809178347501832029462585363878628836530101986457292759638941217291681376098666195504193706878510611685119910487174643026078811853817548604350179701837993820900581528970915301118913333512964031829433594251003955839301269821453426844756832600485408868728453958104786382496513663163885046104717218865425337487474984325751022666287709299744405503386288154576598719312337123756216836933241948618960656746690743979430813090342491515061876248593830507487823438956014094165385844821942798877109085575605760772631501581462052895077150678789244899078898652828045382207318573651483812588314689221648240503118387697545652962059010946086599003371550726702431736683189186269366059714732336652559614840631549558128474521228490926279254317775438254143548853443348474761292343235632075539304336078782028435445384420294508306144126952753580306272853979259318590956453219673097419864056443569437594876873239423418856646471445366851692756622192149474562683580969847337011559150327665689159608667210358169669975738554046525693679648748726860221856823661936195203959403615468092777189063441703800184685726019639756983900860855140274288148991755803413822573736855565195676652764257042255785898034029683219984771321123504685474281196556013297428297575879181081913743192372356059270910204455931065293172307555924928843124451836258004262071984718285551646006517753170683694255397863770178374414843367473337966881590915464507519926817110071795210641706423855813976258571824259362709172126886106086773056427428700827336685256905621229688780137685263175941652498164459204365280181691282437383072848947614379694864984701213436464675601465643532499876893502825334338878283393594849317584145198294216175908531379762330695482470448929569415912574184373689310282404181481171026997318831781908110709695774584711301716819498172545519554872104928906247691296858629457926079670827738318303044103380659035741698932435315543628914552059523742215471034624273375256583218778707558347900020312479667953272360253860063313474870712135129343856326255938202198658217425943837137067063004982844324900609737256320325313296350240184784181425103607252861131517716071925130555821361288033216538533408189309613430546220185327657307240246508094738180360054496034522918509354857285371122950642419388724773039291022190744393026131759249599778982337515448284529107585518549886750152798791444214254929730815436767736770835871719472668681112207473519901696617989490612260788761196106350511420416019880475672424670708104728764717084141066309729665601956608556782064337185896205254604984753397248359575769781076179431282086557964314659858832125526068603340470820835210524120171461220235640065300944015474213141845598508586867823270265682827470047635182869573862772179376546074356525742281492979346588224160958689503356950482334714373227893745911705245224804516619910216782261806399541222963516101355737909090911288167740305379198015543719760688724364874070143124632802209439019157330709891713310523196418020533479455530123122900806937850866917460317047556860907304318138609232884796562985926245926349070852724687311237291678979942927462384947106202308981415233651559372845865901016825116666075392093346025300727874011569514303968168005793459452446649227950863490555119341496489307862805730854539654301946420361759900895306907146046591512334777884265078739117359477036519838017707629506673296589174860550165669614547799380936508475428413307353290406030632278999655967482147889194424082054705393095547046113640396336627131150717885420129819126132651555027876792774222127098581840737206198854886969853560069181145468263423403200928520674224082474807713882954161075930435890251240715894687555688784430134734692866157718903026441135736521478420047699911897006623802152853920623750334676777107172194547586747918336857564442813550042344710509173222945988300910163554689609673474047283749384358077673006518217449483681285115750203422485586557583494492085111047845352083129144603479252709977436215695911897106183207341987492367169277939812688291180490095273554726131423572467241161111911395482937040275439395644016188700950768134363236783256245380639083447393023010722791896155605814079951012754751854968979644517191709320798429162891927855371912275401997137394229450568574013113921569578114648835216892773717249576150014139332893760510032255161672822101412477209181897245039806352267717166004382175490798188163392828693243696658992921939591629949730491460895822302598537480981381987828532898339660240360624738508497738016574421726640531833321705358202482819516707018472221501013444408705835635948822238772084927947591372650217742481031441242655098051474404843711137311400732344564762449075595031372942885031754686690524920909041120174436892384607045827799044906877155291545835734073080600232859077935301365980651254346093679296358336579809749822352161678667261874911838662168907282474986009607693584156368829361410727772054400406362083462276644250177629571467026873425487376800292284411244969435031944870599023231926858305703984289000460230274935604755492680287025553967790960324703794961562439085818852110197158225928295143707749690425028317496908376360442177133679425648008791125280870646925922433865946384462137473882288728055569574232547913142070937840159782942885938366587081055887459084650552079706284263376491639835349840206246966561191518965053453770236638129916382199775385304280712427150973266955288850675979191070602669069356496489071482122079479975455892654071264948430026390843992769904974616335890158301704286979350882283426329047637491823549875174596746791647980663555680019113190808076143350066067182633527582406458747358189123833454541569605139693747973465909339590772441792490897681197682995463060003183305971536263721672660660018190749989712805189192220700364185779638863507303320508895139223658483369980458609652801792085545249780327207588162977016469185780156246589719093850205269555847359180008586876873768473038954948873232370810339443301417277011964109357588127476053499693591205544070966451377971538723082650144094768576815197903762361746208267953878686897055014625264920230395284915881382378859186910255468619431600345206406807358220775907659404849139412481184212631565817025764638003673200919970055827945406205061922629237650487323776240604617701458906742706257352806745059764904128431529669362160701681615709415638985436621607520206211001120244568207363812021933508032616386786906612216656486649320227456423918944799880937296674672289967303972661487516780405570939949489388878990669012990624513055182375362672492339420365685246426141151305791662202691740189236593019077800926231665288957764469739087591105771505700287495909590331795740712902514165517050140047880158370285063180333081448674724405444462108927773620644882542181990633483664717387202389034701147550741726072700560998441960741889952340998697711319292218986151770224322031402014240656053567333573553624500743982202174690483977502937775129897226410242970645447891319262974071246125173887308196053133989325740542863798699540864933503813702540487894641989994661032038853113950909253111038128530230860876353071219145969055172615462014606958042318072940534798405723277036578831312370815971269862466794910733843224361815086280853617209268029746169103899255026580297237406895043633157272021425305992230631653697858551853165957592898145169636865677578566580785315829889099774226282708072951393188239010330588393064445039746824950599755515281943296110096244143745205722585367069591477258193431499911890659568807460418390806144086488851791753654556167420290061547640433592774812979150974371804965243635315159786461931031062179742540554642457526507515568809306221233663956119940264587859166895080537523142598597747382526425680348003361932723623752094581576517747182851286470217986796451797885827312413019768324095714965025910340245206316710080615448114764678833061914333575757018346076634023306398430633231303619110547472590654334519429296344328438624413059019197822478295488380448435495098933203718325016931350563011367302594430820966594780643930885200554319093673945073884290220549104841394197359740441867911659847884569911529656391732340976749304268155599082668796830275166193631499494394020563759887877839107727163654392010513946455161921893018507329558880920152306582903527120620948705341330293545609224462475921193694563761132042654727437037286920413443682475922165858553071600519664580133306474663924294232395900258254666730735953523958094392949802195322491734678524049333178658873481137116659582508867282063965150477321374033989302432718083269714723855520086514894087708073103345747021308188811935723031395091112428899706276623183064120086494862758947891981483522304802014527773732724705519528941271161134484064563779822919288237330070745668596189304642659059566684237221100172277750514688261959610756147327979497715034986948136146626882720286565947696006833121551133996853866697503902093731015723785117148715484560801030285977916993088314188633998378197115979121882790984889036895417765600599750577573604809754406404248222549030312440876188941943758916604487954218725562284025758264682522325261924181628793399057653303376777199365338834446171209216074893538455243667087961051611740934245509783821120985662105726868578331709933230557325755384271293855385730597810547368693896243611190290529526400595493244286446758946680911887993423989790159928669451842282760677801327843804999122018672738819202846328708547174672767854599052482711153635398679514701522715510218982854186331443777888905590692803476202279106195207112233548166590274446241583218068811611620505824518837808985495811216732223460232082307785995576242085723169802362790629427648060392773499959017076827235716932327914071616272882826261479935374311613358809503841477420169089062815747663964104067939064333430257635932664895662539503281234445906802827329098351156666267698279273447483866465768426303291050956857518719196808507184586472629145622650854426817942572178898295341115063507237544457155650412980132805204422811731265002318700897690661236343424354203333019489151640434975431074122481992807817530646494444313605015808797792720643986247435809384230721390495008201710828415773314872773740416348309246191227896517449075786706904015899756708755037697320753391422905012951922328709752599854747510811828113603326448320205140185380433342031871755686009170357877412771797780769971467860827503570606560956727219504685514482950418470381177041607984320289071365985630120218426162756897092728725024088692661952426683872320580800519760585641600642963267311343628675032638120886573773799426583975509318133002139146643152801197607796545640122705356660346685712572373767611083095607314270930862528611453447748319239868180936559809788498767949192262366644280711450166362499089023142140020467251959056283947315473491026484190895722733100033288075074404578335945084713795946475145582431424179966476406503275237187173872686167432207570119412552297274995050110441343891951840314662319764530856827363989259304288075521622500443041527459336511887260160654061295875407564211087376958503477410017947147041247544164152076215053920123678302764152020080727835925088865502518154594403256784889895682858397534447237806970796118204053119539324292790436203903953852668627425006460895431451883995649666145891625431931779993483429985423914315085569613065530035324109535639353888062871202027156601256027734391437827867317172529740531364959213328218420240831943544237808231406361997592345951137610630373782651054929948554487459728975489832671313926913880106036304947429260796577178994856930914444710413851866958358345585799093411603727393541704019410394432670343821377805701960919795630371390846314484562594149982826421686300795266274625103983106036515595416088470667951064452554117065420987355515027903124022350782860636599232639666823777333086802393652170387474127004043388833309606269292420436689062972490799842032418366496876382309325587212807695620973078096382618089178993067889229680082411248064938929467213368835505104907256368078934361906719420198056626529741149182867495796201933778129816782273813860865025668388016616964344238641672250416196485734259931043308830468151316434824815465113934188337345034245324670511595659386666102886167226581138170224620519722873595652815435322844962179601091704512240737998109206105995528154009159565557323347392669430133918476469732596833086540281999687429232443796322878857184507598049828568069106485969202670208534256199811375882131884351768802601064350736874342532077910968234905338032561278362277685821333667721483751077109924843457897170313879076685077683605764178509145037350713544948984129541109692460271275987351446606624111045966570986879219890597947543514771146758365269754924720220048682756437789782163874623269016130481859964715477612171648842801916701524256716590701873728321459735356303200813932237626250441915243700695224291127735712806833853158928512019463564772528901769577862131567255345128781583715426360150841388180849252250800070265959922103828488383778784805344788707730226729609189816533719498057768370173059155870960381663252460606337256452925370850850140472171663130767777972473070455120524480539592324849811379600541747837530306013041609882620141939569300685925510137900919062271955269722513366044522968447040468312804076039163137744766356047609930486231897270840928937577921862501818229805770694514160131466976812532714738827983455618424783882781734932714196271868022378531713181573922385057095762693376768724255743217769721798400557774938160967335681212503887569452818785213753262654783065859025413693617770574297830595866290193794822477394844719548055135434050200140120639005962042485041780579649625749783529864143319360061024882000310013265760347502668943067302891174309240557099416686989733941474796389173769800688950534652457991618259185347363099556223545439923063383437364202315040040415616129059879400053358492940332765356746136324547466807315762829686315864597726646630268581780389327758750954144111643780138395868928003366019274057547602762943072245181350741433706549457798878032185755567135270144261198591229026558808257949254436525689177898537203680199728211261770050869923897891746622132083157008858096340354728515964874853072432710136600655979198945736948520560449154963666821134074854471238146928239811406291643300589822280822292576899590391821754382110279084243354957149316421973185430123149206259622663669496547624807502169452652919225853703378622178393206214404032763608691050017140079800290351433670229226641611898941979607460051000364650077663733664587358617027978441317835556601855236463702601303434608178023733328429445362716250590557867524130964029079608395747977172012333469342047069342002832240514606516190998561199148895131971255168867016199904853661741512840876656088018640448219078323638384182953947770032743407266294891514564318140541697109045896186706461698944305437211066355137953011909370422970779209204967079023728326665592892817183761920086297938649556262798383998132862537807425073424057327549963750027898105710536531677895633768115370246409823298981902162754968723240116757161248908208112826432742659637008829341394294761835538287235056205518267508025829304087974840125676678579841940868126277540797693334173570106595314753632292402914677236590813333260740637132186655895011677065389577925652181574029417602654632925863619481821878501361654956172898788008720814829718374203803973303855781815547973642246069050972626770316709056733996190598188023455730829811060346507115505198706393886516514414581406017232313220557618789765266147716017259642962860835772701325213932556669964771851269845823174160852109924757905795784424035303228535042660013628209575502842265180410772754423429483308938468822687396792617801840245667780211688281113905808124224011598142931829990848427537414316789992627032958827573839544576101121153470294619436660813693236758032961243475973136222686689982039823787599285837383529397257985993218692371611223028129846591546677944180199201374748228306594942699511723246281430948433947073406046096277751693017285677647164146040186425483050659511628909785073695953612911224561602275333428126265928158498940899106788783062981636154411865083101782558849212605641428645806337601224134156280724548630211200657865993074111740938824677454585715257271686190978547273826542624485036079293050730105138091287807882823555405279714817834953094158132977070045966028778255029161188407204929105596720457752235175532085415699586985447424843173058522262563078897233585062259290882577981557671989265184042401113957516769455831822864719544147646102150975385819184869250110469001796359606519898005069847913156547284026654183117616855622009937021014084666526294047572376081590281988069977390060210476753206341368554671189001932875484198210376317899615910889286392606285320803280093732295030677750410098690120572620603694494879186813117549703164478337635731453142186115121459440717774282512665553045302588380353439323461191540221753568374404052094969100679040836584432716055448258475790575990016354032759155197048262637717302524669177491580156259789966976467687760636012620555445436880346857768498233494165041119732172955603527482522218213799531744844161572267265909004274598681255009346256091696803655324461727694202848531604841269995400229757091120827961447405831438885833579395732824553337776803747840969349964703011393043122734767377208995408942127376803637223268989513763796448690891317318668463175252323977542887326244913672294068262493032096483066948029408268863462849493898780027857629616465008171176910891059332496818627988578474836998626530090156795894907530988028234088817394279801875351763226762548258050890675262315347294526791534214765096387145108556820087241675817958399595894297401744706245909438035014486761370776044986537818829173098724495111710195624328936121590910421319868352926720544388373896787712383954856397635150476782266330685919287046136767572533529010378702709915250736973420869913987696721165145403065370351103486657237382896493347769610406924104641380623585274532975789108993123203362446577908611383759318086297290358331106939064689192988182552899316585248464126972536855635268540399913478856559393724268345128199885094654172627527240131923405286345015459949733469037293054745076427408236595413199981171725728187356039175269548009282928567022542794185508076497431176026962014293912565576791389057215450632331182986171848997672882221168633881810163187455790496539824357975820478560462831150847795171060712093240363383705241735302366995480198503475935281362212830723406137238331013754711275233031091840650724066613414513695805665080207032325678848147411456640239404511815415013052173954200911915085147308304442801586748020686473249093079128835979875672136464248559161579552422956448563089086004886928447583467576257939831230106524062282349656287539068565314736981302897172298578659807333249995848117977095058954604555604282308094061286439770194890069546363846389430447702221710816822485117475383411288714765304863100302739591899353001793316928882420294473537922514938057812655175174526022785532728003889020929747762385274641254041110106386602100653734163705138489948745871268693719955798764277247731598318131331262693957286924427562392978014906592894901481237324671339932494550560358993043029513726616790719886860210323401154866521974025263924392705990334883752175869359068331262573795884441586499796770169810733912157719430261426714857901413844736502601417088878021551014787485765598201948612898884709144782298417475307268905101496574747871016138152643746809855551077622943483869734650459009881875558420659521620436431205720790164073642098884404521709186803330966775318004288666531361489580551461623680499643570870681612216836150222326967576893246516497021176465308995779434259464427372785028738504722082865879431017240246921814695991692965299947683526847929313730119418699341125220069944842878846741159281109416042964351303545990626225211710864278621129941125205001168133026776648845944609003055651116531177746279620534630700033604631204395106685376351212557716384842070528103883400108111022791356144307792199483618970545633699001534736196178354191904128717246949950645926797096275915522592133809249260776092263050700482323572685267498920725006328228511662053276972238551100156348504705586161407409123285222115779633929790065847256075006075027455589009835490983668358756511581527631226657723820424416394298363248868575290579148896467600084012695895561543863422629740287376938390701072275290499373115116258396235345540155011655712933536248025520481064459128435344355418119823237950007400722357508079712204732927560955259996400437984297884320551050852802256918841628274205754967484268040307436964264116995795868064455395333687884298329411580471004686102123696754641711944512736114008756930923960581124806615902866848714758227029658843405235040351350649855948083326921995854598454534694152981072775612901750780708434059818693109616559320329705091048274087559679621180618146570492286197461960421909326784921418249933073693071012424803099437369364441590242385587341907683575834423343485956421667935157114188742959471841483519489908569301195855602104293243508716936530960556511350433342454858011793880444176293744456532538989919798020246342755591507269309668274528932331574072416383007807959012744860146424582078041327038435697324672500249818788455935697072528383807333197633136333502716355501540117121032345595680088779108497232480970517570411427570807901183880219246911237816654602183958860181192935658324223262983640231921876345999241504553302213733736378358235514926569400436622335959912994906660481227192152466716247493558086123826921407120168839446546484856611640391962843385696410905234069788945022837436631929852189367391684419109038408580594654105426079856153053878873711378972189994159881482877803221658319908470062878062887455418542910336716194661438703631083316963526321962655841660654558615288057748627784011883090774623708892365320842367117053949339965030009879960869618112225165235379191007327705049688590368830671593969099125572621788516268175003765888288229741289404765422608439053841089676862733503006632270629249500048802950556710689634600426480046828437972638271818299347375439119143765616876050390541865346390270723877179183162262805197678078786793055611966195834736338769276337014258866077218484935876993375377896787336118656564154924917885613064464059940081489605279121765982558039338349512745597745234217476699698865056113663094016017494904746852350205618787967698783275500182979659298036511304023507808267966999772999247757971342819768106764632112466147283367005262294761969846247210841497556574249083019512794244070881415362394948622383967407246850067774267021072599925445088655535085855138956893255814615810374492397184615455017017370745098095611989165107371426047370834907443662750233359548140256398640403300715625728931193322297487569991994905969318605861255088004957354988343314558026234341584930149872699461039521549006914305163691673268038042726077224717386346971859074660843438485992206595016519962097104114763317972002028588369026158160765889969005905150204940187827638362737926513373696084302577635356179023382830252955860475003363611946422128331620531521413338218420925573629107172380276177945093330213205699816190892153905151163747052122349945821184894391193772783931475173838736529872384062636131812827693976190315899711329130016922684039665781151680250639045182566422992960006042994032478290117408396968585866684531505312829807546907638751758901025568217532515037353412082057834914911320105243644267998735323236192699824470301372971734540659378166437356221017307122476156414652658088561717110991970935278324170655471696240756578377039446824487042678710815147015539042577853509163497965488749737296731708904566792469001889899799102504898104995906329380699227861178044464078651917192809656260680975677918306926178032603527793218049673568472963823762251044289999613026576020103837442617571849642835036512891518581477426515158083979409188246718334405967097081020567829247388189754756385378013446443925283713789093866136879006095913274005342146384883251631651732480710159371006790608127755236976739659651009328732671063833219972090328778233021703194137420441858107217126258077919269236981655386086783733433968837215730007353881354403251821983673812689459954156677562102194574210681876892988010265010640565116036315331714734190038289695798047471683557036025473125051632168687281098590706430647807792304072245259205550573868142528497300134455144421754531915224923741612776676964659753543585426737303787674076115199637632535936362439449132067094049849893558705481045509230275267274850708715701502668255232784517770581260078040662756946159447953120164110515491703754690590198917135722441448718615613047314721808600338201367513183463798282418121281429069194996824298857191010903259496980849044706185831978350074997509886457600272716916012099055295305930706706391117909190426947926054124701955055997416875691416664186962880456590530108381890188450499011768477065854523468451743101685128226800979963849020625286614504397311900703136969057583382729725348878645915324750720863267121102775038824749144767050633749195480344412653034232482669682232565155613934377219379482246622400478862551271566223344479401421409671679525494059188122924444580545031994983112190524758454841138981250666808857358235415316669826318964261788009473142519732880732430974739099312261154649269516509732731012363120324095275763936875846075685892438748041788653819227482691285812130894231515707957353423660249415973736820170682415558586298696249813825252346088981436331984530178434945746268057105998497869152780620407779852496551489351090208857437070667277217526857053194883044143401134017547084368220946300992405530865848909819737926228063120185033871717657217002672470794735405628407900657188698817591394802802064422435389092733428806066012772924676975962284614897738898538361829167414013717243286437778870652002022123040692963926846303792824210501011770161746747763757220632984135978664829977895695768787607284703724372434978273052867884745768448742807227570127132088451914937009692425607538332627482078867381505600571264251537336633637965571673571317845229764165404878936962183429338723998875875575615880895048885145968102156599158839535566480102576402789383761395159135440456631757149370498085463504362611219903445051001870762190853982711405125475266826934396280410606491616631874802944975453894743503000209031526923739556611110598680747781785915448421478994316773488056865801514018145374251767121593081025829491081723837114204806685419343398345776853813101364873324538053537425114623906804808810116722002276113245046201427677641593201922836981725377056860377605535615350429279232875023606014476271989639587101806338291101848720551185401932443445391246575612722457180960222303825764695937446202277833596539671882890996740396553112089246772312591699641731556560332778286037528256488135444520868363249619009266924241233162966674000649930086487440210704193035471700104484528769455602073093436593301483235856769609571878986565649144490009242644960872969267281836462212122266711497403332384299067483283368710105881700768855665221399240945890744041865847626045397701408377450683617716766398621580001548576629770953658096338993178622828404355826059164654976655033290792929128039310935987829876402255239437958223410593332373728596296547386803872029460718345578355429147889975377288892381762152226145071814628426570867686824222172843291479185728638607443873998667746019738855086837227193532767728497435058846596250622729276409191001822616516312111285497906807331935964795262093533545659896590109449627847024581862393731392699427958265679859505255888134644718418742457912861766528227427988190354595841675710087511941001625493931581467605132194842718600093959752918765426945792740299444403134946936817000854822572971148809412187633695258582627444538494244214425522410062658640926599293173196853962395460934274038600930205605794044371336114066297893097226202536630885016574356517024085564604597314855983571954775853324093034330238192050176127690526989406200778685158012658598544967096594318827175879515168565244469567296092115401580362117970088322540989690096877915300524528268777517964890945834239238192166288736547063610910791149310030042765334532869704975594607796538736544624950292920709663795990379303412450509930216821325817399463175436114450174063239750311324550883212491829532729466419825184751389236003844560364411317903373381365707593284182110293399963365867100332064757094284641904138339902883697509522253345117467884011991490981719818471967710130246281336013838416041554859572956608737603835767108473240767621506176569385054591384361310901370768500922798286640329120327505669245382185433579671251489444589303360534945001065796973770326272107164268083001371196639657855301468619109407578926647784652915373798072731167625849714573987917194497953737374096605538670050062948361902615124392874040114138604078832467392764032253504298315370371621545587889813730676463732093842305196119511744678946578713172921877955477533442319276477587184887412024390183952058870420767029585023706797687436174167516193893415352010421492774385200899061589820700539452882357530945402480484811571903828712001063948317787789793812727540152109670128864351228802444238101591873024916129958717353153383715672742501698172373427463340448035120109463211414235059933390890028486227616208041311614673347243736508689454545010972203821558700888278136517029115323376798743485457388638181362874466815977324567118076167974501513926722761445441872531940679764876919366738261453016057208393938724127258217074372637509370867301091201350173434166013510716017673392676968243521211400885384600067831055712219565898263994622392862433887597169724791889285794884543355984715289808491477691063691537124836328389040733723860609854894514865479712355836925587656443535688767997865032267842345839819976032381404912973568695586508019031509576176789423737764991721019679073127889001140488441705333052950881127923254851870790150272915237922989000778944753397154797559153965291587429567280508613192071007144206253443297409347892399389867619993554330949482969416898492620860961175009717879737056816637623773305997147918285181805800276248334904229254558168659717905876489689930619527665416969739027355421082652624929692197895522151932598889836764488596151348530047382738884860704701376398147851874861601600918485604323499012620896262144794071937552807467207459573013674096365958633906148262397455750895389046311450650328807965326548064986943597930240001138838079868442208381717340672375970173161175422351061234939839519022330224933394898405166258566225405635314726126469355208541570847675658159144216459702976193610510720209377847456639062940565677019561803691229693905706098961495645519944674129113231283043087517234111145450501471223177139397958507187669533373390418658564472408756846918257064128723491381346278365085542136710204574053439021936176791796020917272441538745791264614411521817249314167567167886527068384621582540260963653812737598307598455121576360501677232410221297229696177029038880539377958367120346098744601203522152148517392978904518210308130838049859656359754365452498196591621456804835798997199875388290722983131655491305296389870907269546099043122637374172263463429824107943997803453747023823801486272222717665204689747937280152171701671778561263511974033817458742879626438854815063086857331948704612025178213927755239000932952375919087481497787412181491670008423775710529178096711986644722380144145154655048877425322616055744084670662111154565754258072246272327501797789750852255389192872027633496265955553457300353425457959879729559161863469425290430367241825125483233496946510062906765995061603397749718597032574755936260345353837727557552977103966720424036980499885711598094425783965754343521407929109916356872279854083760943446721193276597187958850702855660579306976916942786258256906805813614660041704405268828041447153179932021495962088284698804441051827404376111922145665816851221551885897413065401506498579535430634311434092580401812758743521833355642372764164513974299435543232538262006715263659425559806710085896474773746165585697037154563735324344739803059478925892072426988389888401359043868655992739281854723204988003257281034459271410440044781831672275714820193574586397536294033469984879236484126844769133683345286134354087933655618661137023848160609469474675519512746444477049231405316317680102619374650386367394705745177267110735323993800490395881579543797527000675194104448496382379993505547779776965022133980240243322087153651138401831529877918827457241242425792610404848001984322522006970992306339985645629652513775424309584831317379689927416031115662476324897901948762928818518168678818867674561707625588368452565673411294407299094190041436092919035555218985398630369451339130164590667013919349924530324066390592300952577424198706408764175490415290069189085219001541354168734025334511481739095959463464765234135892091712970242670335402689830993949590305556161570837884576019065023455511482466483544541206897653983843063445369286865102455247266042146263967066954735195900576814501739806596361878700758042820045116376770718973410015177233472290821543610315341665041566257867835366023019417426554544276235273758808609966995949929446736124556374082807847222193357844365315897098744119894594973379413980171520186146925727553045424191013795446931714490124148006039473718289980508822566045231080256218685819916916285630033451623546942612167239132031013697469039851152581965143601867322910309192541469341413101842218224318883106051634881822368193816724013452510274655268529196520555896782326579694201170895639225814510030941264703852087375564266406110468319469055442360636623064446499138982804210701132359392334615014397484041700354916441599434409092133616348007104945225387310424617296379835722230331927411899022798057925990201996082296585602073319968769597116665815658414344107744369019030934158362526247085034119481952147805663339229590801987997131709497938868448426249512171149907222906754507998589881457443991427842565785125666951438974520174721642679637732689884007470229201497874435976110543048862567189404515406368932571348525305585845304491138747067701495415976613703990163370377049744542881172988550033089465127440670495888901889529628462519686274313806964175234619321188200178819472029064896978971246137060475512546589807667677164521287537127637114690041855586967986172450099051394285859950805015960305205968719911233171326739360382126324567690252741956204334938780154223279285955653367476695135581638054907732727244357939586291938193854206568159118412213487598408030221157596029155928332709942900855080050862026075087036642781259338018612823677793473621773129420764458896381745237181313468628142630292047141429148284609214011895353338921619305296760871539964027921268595124522194514858752507711331787293125485061186910977730582152726737304397325179790587708395000764819190317247870622206205395028145969349054697590730331248780209923914243164856061185458086120865011599845243236231131644013989806154962202031724186805587841994238745416232971469447782197137559314102967761520825495455176591888625906094817555411870209982215862062111280829445649475167269777998882385735506127902336771253486069568641373735187409945346455355807085381353788940525658351951633261804846031806483927299613381907230246322838496197922095709121093907689566865114134194869666173085844790704601082896937536606575110851254573528203872353707941273969555930574094104296028460837266599889755376028792695455703886838009371704146440780539900065259992843176620809462885413503128085325877889381034610670527708251835364774246378004277902090451573460596164774773689493742044756252997710587115831361855110714753756596163942598781603925346100559171897188272243348741744367906129329370044205797187631032285582766203852430267223769861362061936969151401881058331237697419799671420377678199337738575959061955953352310603375431498443198768790503572153819165779643087117263910544249986739172443656637575424449698703591101135382659677886735175838436354823956494861560572421907359577927099292277884511294340709925459328391934614165200816174089536348609832044133557727089119656477715410045894711104862188970556991947399373975668146036877868831216677875786737345957291430926117736826329696249659461897890930492615340369888456034027979759579551501609175920884997035920925445424348978475958109793896002545477723207760877054352478001173780182611717093454143068619750102022918595638755239764458357942500591870444855962211486709092088315211174448611361029307162479463824700829331945023219696566064186991681609031403736077567794503231688475502221781842157696455854846560533726039364302913673329656651884685879511803528504459523673216621745364034282003995817259415269288272071124639027849033612722246504295893522182967750317182490170496977687043482169970868084378336421279331347376459346178867491091985343601067650797432911029685863497993733784858216121882858825957740220035167817034283042819661671727191073488852156864545572399839559017999199394423199615315965212491314831128497856755560615005796910713498622447475204310482247335598556738872839545265602091469114351515738095975400940292335504622177796739572297393761318529112078185006588770125811036919375483900052365534058555698310771352278912987318864861313514446363300761010407444262881474229360632013837565826023437949392164458566783680904025442465244031252539634571038563397129438075386185602271182193796349216544794464874991971736852922145595396152055562493121334063049122434567358676261422873612143724155539983981738364622248255763568120082311623182290816593469710326532443199772115426566401873192253540661407813895165053050357093018355994416129840182399098997654101175381712638005751455464399621209690902677402460259989662462231612370531064732738796390744267547249128423832012777856354239787796041693953317970948687768597849720114077174146916300743534981921687792605298153321023607234056102847880382520176111602514302971585821336734127073513244226543405123374210863371557084424805886680177275840751155146352595850659761906921243884991345026515310274497607107727017771018248454333209408416272618256894021835267077264433278016521073350295744027202918688273585241663749702521879301799946395015093141110150770482081225109673508070432743811466960010286778700906335035444440908273178131761634345750544790682674561629233310965604523735654869342341711755946927799835976102217514876380791399041753585769844354345666921657349449967150162494054071059802420756390549969924349863985022527157521376195994645615724641615024438712802644273509449979746453561519083007100289034132166112209957833753239821204707474748701330444356965513977830021464024189412961180843092411544344049311503182822918975780145505773917981399170033069068362860088763240697902919608014412310846265575300750035107521993984596236607551091118063120430850272293357737732132551760375035569646838980607217825375845548999261853938971497942798611824104035755891914470790762390603343235655212735207733932032127857972047505466151621102905034850664452589454701458658233879664666912452776150679212485221930599138272012810797254106546271504891388962218911210567410361677690438201273036255907408318814482234017781892191539952537099858227153228766198269231608882231932686910936284809464647860887491984991553004252923863410716802119005050864435685329036599579588833318685677190466088617135790569936647139929292400061135724786849927571595066012207959732995563311932049214319706022577675941986069446691372629823227302445543644077111482547988613349509368170134730809520425826596568514239788801641265315685166339899811652029262680700086932222113331466408262468448155053286494276110700316075662418686209496207054394370875783793659802765114861402711300015711468766894960857225796048998283261999937417566156481873991396929063184356998373873742885689635194612253804695316875199016386298116600597092246965521553019809972572667907942765728198012954059644900417692300938052266059202914816619203021974096833530483244318568754434600695612904602395361439744770583799201385601930498439292953075458127380237553185639344066734631879614482539267663775072250576137830284427512795378081126708328564426674943665029634238506011240254101020036899212744043604842044654125217764734939395249439545389874840135055683544902368266000611262281013992279832054503707863711948215178657415634534507267708317412214062872968739074525456760911379621961845667835557400799454346840920151254562824946430816745743136962121596212353773348759968189488551297264404918071450625578510973311826135358555311493660555596299849129648549558811958023865221237485986203625914712043739012462445687523676301574821080368175253251159642915286790772705323229960852038909539949277386910846197833092253151388532832011732790147827461636325561877792857432450304982806454423298775179443608590003458623268513347339927145413396405561734676729842467393910394262205162116519832040885357483597353746219238356657073444606294984136704349856724041825494322461627223394685100541391882066574238768210295836703716360725877393121017086682355770638009043694337437418956438722873333470308701545707401477896223326881040468509211206204287862762829044193950460608173138882965509746127849457145395536858398524973317749560529569733721483550726706230368748088449092502848695578179160078664769726559027432330722345804504748319417708820241214643975346023667811763621769672982644595259000774108431800771470522785956815842978172407780819322916192439487043451223241442041163527611060249676500737801993268361628274145551429338545247960042434321602035823298869422365376109531990555691714335514095528293219941802983647053833273912789272764664988984605767377214824515938529337239764772755316576920123641962916040979590535525731179500819239273454609216559896592554300261314277050416974388398194650997358052439164769894116295361950975502469902178493902879295894367915180661757738268113602303559377699701596817566771505923232260552070210762100533032536912291512449638000875185491230852824012076940506958221035264649681056342840506376259477781690943679174694195745200492933278814358804168043014239832912034209944959132246348272208099492890096548495230388834107880717240606957284963221890849038011415123399440132644235374652424819806625317469873181070228705148881837014581391524154739629291685296380619918966450209542690330295751472719214871028072809649161055415284840992312492276053465575573337342365047311676880677533627934464583342213491180421192014268492188193048273602669961836234318085670287741033768179654815970554724723798192911243266009749237097471762827264676234202314265707683673584971095681867007171968241134960239355655525676007969183558236459850193447539564860019752672860901629763469235617730212182659085594598397492115260815103484499441887345623004301966364251447802230294054089820340058402107752762616397437343206276716152845918426886400891829316500508348124863896874224853920280197764182402563894310752344192471796224135400930915252738896714469423592580705941549932421607362207325652686241061083859577459502177742076817274866094763624065524332182894965306063548023180541567639644420263923817266020457702807898132506050203134084996456743079398881551174486243264131791230182818851115239521674017392437564843732565263249602991203439061688176372790575141162276161422735987419038869059002038497115961712063183624928837221801508200714453230660809227148812834739205412547298960101906800836089430335736004924568803296876737685291387764788186298918450812568301212233159767960894679141907793144582797724891501229450800828687294912953306612377214087190999114439690028191548852120026620338452142081234140401615527147434098107798982144048461878828900378218747168123539131518591284706743335531264676718230104310312793816785129952494063893993938767558039632086013691457070187234351929101685728804687890004677670065486276876101825108110278427039639049603759447787439012990125770417797624515383951915121917451441249203421893001353367994775553416829184885429596202102131137536036689237800368020210300278183008895357748787922298711760682909712529360805665656801849174054941047219337212055788661277810773356644073537796106509534554293659061779218366721035298396431078712024787608883146062434022299380935362896881649509664382259163905540510790021352773339050126171633932598549844135870633757241917494325937590446148946382219514857137124108431503115429084443244745357272401959261845312445513194128089743388166530420777197122685288373863335294443560779686280980578500633443490520572254254177106906492175082453691731440853847712155343750527772849649095980498034259576030587372272383667845343481386071093771599777314939796006858858236171141679448959264448042495099315836272978304800451547692862394756500996656544170947747957745847310122292136383841123884152442980272753691693770837773096692159595603970427298882451434050353611903393578636159022976909022668260527679109157951432057464157620244258565167793482085885988417237862234069785012835874472203547737989846589737309327717377998821654435872366294011346120860592636710969500676346737597345615096030046024227068141360632602047053902043855150802433987970240479530479177209385369735279038786733791720861487829501135980224710747103392611156527107266347043147337828952352681215679378435861113627880143751843080598269966875011953488882975383534638365726229984443834962224434265303476243313918472097807050531150685074158269288445876311647110085293241214653383656888833768371192310263797775919743820713018997251581513369530432859562533018396864082054015626369128199685148751200551967638030507520291404391749557391047861684619182094977106324602035746593132596622247392662938248457086524146836200412333467459125697271061796671257473331044708987283537710372071383084082772942305451200816138260829506599904574785545072660554799748069113952599557588069279394874470713191078438683157076820802236936569188040288712932627241218647125880824255532022521099417229437157502340184678653310563102036267633651800094954686694697772998202936046385782685227243807121338977823792592651639610085017199549349825941299229719373179498335054656269491973831849540317921284068455990705204985039452598776644832775474241160932799647136555408542495939134238498430956847532669360523732476250732056604430708083870384419951936808059123980173135963449588733149501831829248748600352525080632936606847397630750121665565666189344297425757291789790602283919866621396142155922156841540646630709517868389818541296827320297875283853683511262309154663433725963798657214402348282639867799124175509436920663951720632933061008739497248132421524527682071528078685444094287321344539928766692061257810383251930346680706352150705659768249000184435021655353468388002203305112608120323913120013878166591617184871243398126855915513143215338518321147920569888687472280423478322784777510854662182374479876116805074001523795202326270149981824067498369508903052956049431863501131579183105817896554137435586596696740703478428386189358887212343691704277781222598985009230349045224005527897863245583408104827115335166910692678771398909866130116171302180728520083177486779702305447744861400719426730328893835604741349428211180953585824817140895503816861871008921651792738643200156900882101728686067957875403011465763022009938708448114500677271684734032643528533293520066953416916501454170157361471143934783200822154675218343696141944992076532062935286239198410201169476009339472380267986722761858148134006053323770415820983124564642702485632642352763636993859280297280024035306961388232475547575162044939667596676795284361592616350650705367308908698399621275795573042603640351890806092733749058738942095586397926019709168537846324160079247080606044902935802343515725186856414287961184149683004660772818949725617773417938407400605105350903690440474521379874459864411801232428296405952117424366134284845973562485482038294081241302350116815836459966715212458709552663178989941781791519010164837681854835766193704472894437485888937925050256016825954834746435049932248210859442221335189095724241551328115322237587924860173451250315728018026055630805980828106918572719848811472896114343156865858396948432571824323499481099909184775043868390243933944984398125081763853827628287589357736615660398538636804622235956968474451821322305713553275829634057087935445886457050337316093666931731589046925861193604318658997464281193778948740707465083856445705418312061526534360664628421033680357406756316835801971427774385507539651789656167488584794736890627687591585569001712649620426508243879336480666072061086936217840414828349157214496018384014173584595532812890731930924329993369777396687019626486131748872985779605456823967620553455175120634039993663268020241037164015339727458887590917765070316639643576460653327712207006946726606516520911683795000018708265385301358049654971521448082202637338102832690392542505188925104998369665697146433209743065839564074940511258639870654115940136243469409465328323898011430310257492396205331015891077808769871229825018851542939774822137294580855471784566502983798772140065910404021891217285273633305120089491961800811661999200316691299028435109876288854625169143301902721624343808840166322343891483996032694836693315201368371427601400324984777860285523875935829715390055633286181692558485628004489840484908714728785460713562387349718845855160766738995499664312109545021232860317290555288799194484638597020695049094961249443679415606796229701480272311668672232064208839452639351286405582378085117585591755937012544631561151107948182347189227371605063684303486110546956265136099963628417462340697566545877433241092595082354799212438884738962407849420176854325158370719966077669458056143424459951944408859779827576458433869681984485112136541576741758239547193209224579738039853869456633723634069594022741823384477434449857636203911905225134373706155083021743350451716686680874956519884912899486325064958778311622256499257691192964770519563269030176906111548959753246529565425246856086514620086484720987717429688673214552481699441110350047487526544250525997241139055679619549355549005714139735814873929821399268415300971323990900575854635846851594630101195292483365481285106205955222475946305027187873913448278763509957724137776012587830598620298297028047645364018224406591111497219544893753373747990076942926837367874995835753346799569314906183795110376346694424236203592591947810280314867056803216917990236628125493348267400163165055792300783925838133100906750025890111345609897328793430309756200163391154834577703729284058299186464513229403440875248844595899503437139482642483854326675029199811872755758053470056460798499302828472959776845135203069320418828160344337422439369536822430077180779578432721827467281699610310765740211637740213139593743436787590851978046583509473727340853892631436197609744464504587204029572194642658644803705051805216139927964176952947571367909756346575847750816142958806414055136017310622275207903934926021583518246263416287030440106472642834670142017612577149584737551413228568036735099556733339708935351405713029434433993342668395778153911737843862772463203811214424820857861015718271561787717039835143082458977196297602477087820766578356157542740072312469388241786365995223471729071565143735212805920460263278873561691926133419197780321434864190773741501226293541460905600881410803769729570480197825462719079607035922238720095881160067189598840799154703117509391678562489311983508691425416730519318106432420926460040310290658963474763635165989513436486008786511603836761630244464941009861383742326203579056079469859571100379065174563128546515899251455136494210522661121447574581661034884905331123759761464442024806316848720193764524519161613940284093668254816377177444395713158977991312166490679613355374952931294525254311412301107698654502366200309649499205360755174226538507797768244562393287743332217700224979370558442933138587661603552758124917696310748127665447341837324476936254175920372719016146755326126690298691636703245094695014535665494833632485051190621780878500021496091561813670317079213224199428549678040839690527381642714932142898599714362407109215147669633409573871440754703037509179864842237248630574377817863870947973774047416824816644451481222378645706764414624192421584350514417868357838928723280995602904644962522074738851399055523368463637362460089794610282748199562175145995465369139874383798670022627420568649572310840605956236149422193992134018325339209519917085643115344471401233444396799716890828650817623909037099168309442901469882429239306146084057292435741566298640642733811463758576141035619307566205566573329536356924351681875279079449244574018125201422462648211607234927635154202071695816887875278383997920526068524386398050879341626362157031758419438488635806657557293246416202390786613850829134181501003427961581533930322276208138111137853998035353524927685423825057294392148254200015240686765034817005544762093298269582026651513590960504679043559732139295871003632506349779421746339775827649153694815058903930179177469475849687513366740973659476452179246127755059983296381556071333791608090468662539655139954005447260492979612467216426300952731637177085629987576026499023533184518441389930369988667920658042101770644884361283218906407312421648894796490670053609940766433781711338854608069305807756549735039051745363932140500170511760858706256106649415266489982535547404752573292995498448841768480423776630450883800005062613430444731772896136121536109660635572033436510670036879615768257095814013530096767546680067520021689629078485157465182497681983836304503441693998908899891576467130420815437685979664970968883948249733674564238178538712231992820845116196096705298065447929685926979969039871406975962245831796626647987574940737661381637114899444056407126125305984816666521545228762764254287008155456682479144577148489685636376554382636723808949667500141234352036070958398147385305146619473076956675150519417053572752421847950286910231659396363867594295608588100771295457785298624382801255018589982788087926904607132352211625548078945304941796209022101066864909618769622861903078386369529972698057107501020907581314484263649694967729462337512434926553232533478731156137676286840136712837162224852345570591050373141434942484146347337699743466644494711911791460054498819607804779210102220189283554658740457133469432771204257832631574913779911780147750442387360926715537635971421641459026746715015907769433968068045176987598943255471529563027368871761584312325667556092764957667950396912779510673484221066796739506434469343885135639352598027863022565925407211093190961566011631734135955183007772605187724064780291852953213886381733412082067761154318155480156630693003197854350661549192976964558124568224029664106220757820277757600467862881421892486973665914118390608792101074523987849281735396439434081820909774079063183389583294859779458192452558808495989537991355615671895277703988915047103381618856958000153452546243798547575846831048858502229235749269273111791329997120070325749922489459579680133686166343873603901936850885179076585818148123291547821260549093967806006362093658304138497945186120750503677182329365297076077332752491290412526028072550369757627468744880461475233615907603481739490388925246763550231819067074589499388250013420977280938766212564853413320654967174343984573084507407880200032507613890956158728837963798034004616645792366397420017883810914478272673232822555226321931982764241302165031327399425082471052152897250594943660591607263352057960012466750638311877820012931306444616994787987783387774965396534092588500672933571317784188756263630662304480876290211124524020935946392762549131406003873635034317942165111788913199437763779680725777161251864274735333894043392900848031774442347445273333782070383203473960084349597059329141258111052314506383201910782644142523319420916263328130687085588778515263891840376305282519700306276894000909448963189948275850038985070339843622165056706392307743789504892290608615997836624277250937698665068990311964084628080092561407613009532358260697215375195210353983626070669638071954579444952820645460697605975631674279326083820388837475784224733711809286624538388515224307756419741711634234229886295827043870836308513621322633295701045690291435013117394769457905099730724380810866578294568199893455482437044144158913245611480717175711973539794976290215096387007666754185830382150751269875272770184404905689001820773966932131030376704516931540456226219317335010168603303648139119653586077222808154748815844207177281267347712106968890826314308421956477441581769551424855339500676889219488023424081870506564542227319998020914636665022280233130657096178031524756346469949529966538722916824196775035362336814897132684921528720877321049788148120318823764412791971262043461059158272994644771560314985334928492799558009350168107959853898376839494328486462605459947776631521406444534303522896526367709800037026943086225229559225103593474371219101855021332613227904858102865498701838272358014662254387123924965740724285874567030300074396970313733689514321829500894687892242982230344438759109695622808846665982937969172504078736322451708107310546299285642569038788274755626242023046838270310706777125032195845116609546486284483850179212130890434542881529466037427730609337565358734506394187959834650473879915003524919318597678801044014256123795710306184801706348344414072957396527330555635409323508591670728326582023598113170114566198593073381473536806573675788803471321413960029577899105929068160346275537651100755235011159629973026166007696812964127664330467337077649445028899250952705389552388318287883100182741369415739029109420082913608743370215239855983202032102111241232488535085385881861337708820212859700812996448915373941623059961025767742771569499724603608438839512080483415337613576544734065098178272081198487205451686460159480790982958426332793751485792448197331084829823290689495052440882883626327124093877570233290911546409405693410465173873375546903037384107649060491776004721380428547878833026448560446224907377583871244810765698156124459994922575763229030759318769234993957477450225726567743956487237067885621880930915752791003150590464597728657383508290642898114613912434784358806780289332194949653023554231692439360702291212555055187591441463227679410721562850799928517575375201207662233115703480371002046046396618596063379435894743527232478305307341807077670933761368701051022798868820006719344145057844516908850602245171536869807717338552159677130567581435804848682674244962564214833277689233066239504938508144321648001990027270094796043018870897960524103784419775274733986028612531979337326275635262144391074325925145514204396166311018723402433428972789114293136779840675796098983110645733274570132830283411266296142972663722505252884171383034771907724227527605798418341950318174955654372445556960713300170894648853022439392670386838250730446041057393230657602437448364576690059893599541417166066065207274429545057131667953173031226033259567341955724838632955019100344078327164639196224377901619376297179152450595964902172935278651977959922826662005654860745796525374058092756974983007842825552782589021872147485805596680674040664486339127344992338283004478940077970025979180194980163817064867696802170382603348006985132681762942365924277366999848674717360691294608825362966475646452029270442309027728022640601392538796062311657590091972481612158967224232467885920055591274595531698494332306674227262771304161507844152829338197441742823621419415675746252372023223320094588559440348058890521689931444416889142676586285969511360517858050255267483990612368156695088059672975389560534731067431684621506596294764963817286312166240164384726284333740330163555602585392689278476811503353419883546736578869162119235395999594548102710992480708034869784711330063590219728824955318212493416350023917379831872350305352273575603473072784577947943915622511162016125229060344814602963888411725926983135563777994982525905558056171729579505803520835434370652531847848231399596066094482826256518021218865449563216673184705826373521746081329726824752710388925833038780461287305833028058906859549537241718481822876787981639027256441750842367800081518425505151025536193685458755830798866405060976711446778422371755793281539350692354683537002754111403837441958582074026975210789378505286874550834770762165820609847049024654410315144900674629018113850908645255677493686826192967877464026231412783594426091662296267545603697099028726991882768749647621832833637012895789372196820187441536092112643748226832724157486325803758652849015140563319233612308549064914185528622450364053130828902204385101897952672895729797347287263893736790695710293448303664337436533873158979013864406164273138759718166474472826439752849639404874101079359691861645519183785720796170752389461090310198393645853959253229955098217931003552855579151087257673502161184101746393736820236445449552487395631453183482356162790964057907286938246733583711421669456567560364765619518891002298380570095293743862060888203672568003798316643116639337126540006881127503986667801708275156826939762239210559163685647493560422848449943375330088053997545135450497458591894380730579454382571762092909879451915725706702148358569981335601571977800419572000635191953518848775047277823624751517793889990450166773273151395639727336107332136842907171588144176569782884651862620041537566516420857427442709437467469318505205852711223352298218981285502980963096361154707771519889300881294884414481464023007386596774966066031252916925311651755764265326638082262132916135845995986720990291863994943714714191011294687956683596247080564155748764547958874654665340618445006625576123611878284695747253299150141630036077725052707307302505497045993640500199628352808924135881943898731308445598559435317680741379604688965895930649768119314706934700628141460084249173104967272014401245219319592553119430653755784565284228585406753101569180568241762339330012778981762220063086207575279698066673367786064889352717757645351642836478896277603173787460426457557244557193442682306561412286844665464944884971786367791218578430918220194702680839660972342193133043380176193648175624470086325079949680819392438080969361434518464785319817489456583136765482262790415288126525150518455951523302738249766889540218977207356996214840246761758987781013434280594903547972665021960348992962690082553096397591053408849630416932380927978277351289492502211410342222898072421011405326968161793028437874739897023172023583336732562386149971846648139529819115758560993861525854393319069624783586182867704562114110008676536243538371204244103809517988489613440274386561693751690935348726105086427723922863380536761446360580556974477764386859269547691245573033695478872266223145742709382391542901251621993084319923192847106977036720486113399977074888424873943008450315381629101989034355848387819258428539706744059600408569808574256540671411295245950693866532492834125430123520736409808902231707080503116452293268462560573580073321790144095516625673346828486519192913623219983727073671587215511491055305860737773748455278236251557309379300107676577607032223246148691256073401555007292701727192831265238635721815478456256200600608370183952552052782784150760077593086588451016765307834614068895341948545559652104449308587298253500007378117849599599444466283667379276274351908144731476062836806232578295255198036919977868499073193013055993507543536737540856557760535897895734401406183692370994949263629932867719046315104223364424903894123487455109883048977894694534435741618002068889239430067753284889758685370365753871911893682614871669848650146755837400130319265108732605142050987093962104395965183983932850963736104356920677000451296660151194208889082163556988605047364366168695711259655130662168087863930243963076739433565184165966202874323650224679245936371080517639015376849487568630102794214270790819895761755881346502667730147812587840997861806653143666678913765092147448965515241140104271986689579961827500626104562193024276679560692112964314487233260438333464956008705759053275566369303881008889010785198597657090231675069278826450429273468896212607709005755176949319322819541077446794475468887419417620432285970373826660632316424908679969101201234961507538517142238599493781692261320831142131046955018259378054944574736366305215596465898100994202026925194740354995918924215199252117395239421309729981267161041634624652614136143790054101941964752664537628355403237486948278730429807856417270444115581029663933496181718680655413615868921372952983253939793923270460472320356542974409183356474832653424215187081173517187178037207619175353614921892458291405040918003451747109841192383583577993041341625770338633178955261062152132906779550115250791433703277362085194435955548925873344131204267235089044475384445567665513986872873194129019334294989312764782610761068166295707522355572431650194662460911011529528482223071703568739439833249803584974740479209225645564185816751493080724669027752113804208680403902570809047699189857838115418003466867581767817603966863808330756555435421701372343975163814797659672526312049318663870325765345404886160363683246679512325846365831890727169495875093234530589846640167949416702547461116553402470927501097198202440420517869716720203598267617338578547773520232717142118891347283134029714590527845118198386164629174084881985325487458905079602140851672777398056636553623683080414625587546756768579164241292942815878933256430912823786124809494586217373606048747025654141560862209539608803916649669475382335327031823887076830615701959322953769276404507643395422527609670649391768699348976531818555560695754494352011157977126786323119478394937652343057827680722431947748202852443286425180152407485162922333347851061075975755956004626355600192630688913821031307938268705430705311730064465796345468896135404583842185050255515921507173843423780311069522890367768978997406758127515030796648878617724460080612207319857746602774867238504295359255293664741105119807950018878855418081862855980013229215622543059760401760208660779167768800135432580057322094075847060458099450353205309576578129764307139797806429007197324618608635332615191359053496136098922484729926661616159735759754750534605256388445495700941176276311647323227104560853703566187797469755623468731234519522710867820978046007961317413893363521995728570626101482745118838913340568285785244137856721322634359640783034539606989492595453310224645077455603984106117850344434856852698641181694861335796917305561291347901803228348873242609187873802519397318173758091714933044102151969483178143491083414845445025006816686470006970310443083891799454573006860686092050223428506425805979771182036913439407378025435865997489105766963216928089165713490981346388984890130263304898771413494506007262549728852377981097576713866128204894026981709016995542226382852238637687541375942008419971950427671017584062023912108956625936309167135621428260806753035748419660254850722260639947090609182001807909111223985655806437947329466597106995625897415991088485791855969607600947875318154379972489922078399654919031407948927344264007455282588243015402258197568090695566026184664796248806959178743284765319188344146333077817755328954147431731008011937044143788733334372408135666827275506269794708811908229865012248239506211872011971773431673033830171635199719890810932307317406888066571001955224850503217785333513501400523342242447799215155060525195997271523284509237471756997437187951090949890058302598577992170631340126664918777826152236591745455128564137682924219414528786370440607312120112497008517221220315158083974676896653160588957871868144346023823218714031685642654712122273147522306432505389504232411187038988606876998180060494473057135065914918536857653578393939017857620989380482826316299997149641194965223823982177517775198332146952117073803074370331899373427204201407871709268019878709152854305951695151897160286368819317801251267663105783451742792725034094625285571993164955764489799386222566192079187836673103085662578699310230507830334609375080423702069720795253060251484756590566875820860943720304734219071456877334839141451125951965854187181501890125380132954179319122620123600083714681427157925921520721000721558174530895809596659824362324348806738439656220706490037331563423809765659953453587232848491530995632888391430943969316896566955753974022877732293978474617741050278904546945118278576698216316216058524884157575700662315172192334784644761230462786542980203028721660434884943837844999032841151795263797517830469012873268940544213904769687260366043973947505875399355974667332624921273337570122167155449417628738249950086769358972342651258803458525790554311933470473908708463934339926127286318949745971335755185166310085311849658286789589032119202504879862112815291938059335469139292500756346256270530119899119941395987742067015826412757744015410932807336456527949610005774044184245952605372914192217006671377417495930004774699889571670457905976293083540353641708552858227791568661305653162156925156076362430651333046375109668499129528117399940772105801007658452744474252265548045281476085210670574520727824150905384328729514994812867660937695332056027045333207981259433980085681656194769838853638680931080637127359243355960153687889811494108056141147035871989397976611682687013503272912975796222460712578807860432945499000285308736110551042398068754757841251250061148661828011850384738959537396060119852500754931978316854826038229454750546938370288714980453329419500678429388471294483802898274252336507957197917016261934652063481450775403463816523830824537475322529833081315339851878687885801846164180366741124755058710347256079518364032436354533305776388759669560007386692156789494018333649145382265301983532031234391114895433808165332386979790181965902143335995276754603375178768627780411350970519103712651209085607547516427909239032619283622976212173408149439256516089494773952850121852465782924141944194812537117345494623171563149298085581949308564826227691109083515789132395994952920808116929694266952636796004944970337403705096436494753937659101127426178362949265069274271109639459195851660178461317941484516620397536749187510958164594029074340779726529472780804032519287921899049092737655696764925307743554386135617240453122862904479437753263560201733101235592007011632776427559770491954166579411521058182974143645491041013439497300093989906508276246402695841487561601917622891262457466335629185839327204577709057791260296897163281609199552977452205674075647961971141810645665143457260161431487207125557418453143366821729333175109351481405652176626653858571043775031940696136281548338470486277263092758898736192874679725592519621074185943084791681914590755998373032330484763570690587356880997632752718785159881854912953273817564468522148148232862978863264215530302086192262232658002767921371624065051450056741024122900983548966511349548742971283286522861082327237008667551898631359577146967245063324860343122789051704536494988393275519752894312814451189106769543044416618601149768816024116067490199753712459573458315133840352254553165828274750706538223186498083833473454220333019312328969391789382815638593365517376572482699953174500757408130357834441675782562238251225148392755549449939927510422095247865641428456918238691815443278455320502146609199485310655987017477600962781313566450879540761997953082610240814760092442253888312374902228756915383383661770383304401616432218536772269205261618992914013893020596938329999795791203271772671004454183394340791754516299851489023412369815922942330850498372543885870810602657853796121479372303172274437371551556878844800076592076930382226319793889100040322422746395555096866635958734914303308257720896600786863894274844294974903555807340243889183464318842954366759860799435308248978220173015655034704646942570575206676552316079240919125814478660649353692855197808010590751136139887773935036633247061197249155379785817592018415038151641502740484650388922106747505619877656571994096017364028555969119021624583748897667694028194806143167531166385323098281417248475941569929788585822875952963234191417905684917699868222223091015278989944906019573802083897811596540672153228038336600891459288465301855376240237872644449464589151687307187180934360598295477912755153787600157901059988818537108808806250952596815923034104034475889597371355730680039013131453624773165198377000584071901252637416097008009417227231594374950996251220309639669501742184894265383718942339324365706881735721382479899603758819018699169478841424392278528332094933401841075048571428468191244665208294889784279894569571467236421260983190473766096756951343618881504564619011863858332184429886945858933463145535484327216592413575999644670584279668906839210316536477334882462707329700998026442069452222627338450578640811489130638797754832479013590762621820825714721058931246048059300683579243765259883108960320739918776570728181887336504093157457941725250394869190622646538004569496734503992534391693049850030699227260480632667208268992144702845791881793594636032805146304127723136764150976602885290985278137857424359943272950418127593559639395826928416385914207424887356155966229959414792425571690772780277982870683170646981280847584526730750558343912866877562528220795233414194863319895610164219854772527951008496809019443317486950020941550720156184189693595049938433576884149836419535712882012703961011885684088269967455845107400312898686025125577455616796153224979958502465884288634750318789019940030687987444895646561202736468752765827894953693461022163344183391462824731841194632667846871785092218988375923726948176829846690805835091432539375339829012933302303338134094475551140247779753837691699489487587767382986805771331278733379467189976257208587260446845213987437678807906197453243948432085724771808881398712874789573943200156619061500877992301190332725428505923991228149238242153649549030565563467527752762356603916017626779789694349392801906497274077114993595638473014126144443434468751848749179662195919742625443747090839513052317421027776138034377161596283260057132747974737893073627858518911802650122308965520224333478942921343774985690257222366249509136705487746276466950624369835732585878083896204022950952305769962394115930816189567880391517290442958048009554666009328850261732098203103515733886451725256265960983966010004594898562424794298793810451008081739602288252058999372529648846176760450185145732768579150492193667019282535408488675690118450616481777855761462596980656112290969764814183328295932995413750550363073511104337678576815828515546362716293034074844806635354472142521558292225220704165609269435979534255400876964939594862845783550678034745660548916229825519331888077175649894804315207205989796043496449660987368952573569483373585292496035511967728006936939916835667125292698175398326685386449405486019432235244129819200214165605036012901821041858151338243779219868644098979366863258620257746012721281669892104877417306916057226739379070660826684194534963856921893210998577654844425492826042583131292058632537215474161805790823809144714226386287598547960467240345940092884199946828836884294667791703326548703608797861947453619718749873707053357230658071026665352274426330890491410690871083500991371336797635958366442023094391209029551278141395065415129391827931107085263287806355361877414132984357961526138290480298833565291440432822735231788647063433719158688742899893494809703920602857386347484086440111405311997170646264984284344755949740514235574743849204075371123969330427603831828864667178838704822693818214494307755998049264661379479067982083833562037465314221139415192779711928690874909085332271645231843136903536870115597402218849738184306126647187771881164817491129927099864141440131198693209599483717995403383697567405041189098097604077356989584945178815598129624572643797950572564874564220040073830085328578532281653375352736348327367307809537472665229142729709045869457728565131291030756822509111958147555414977403716141677481261680630622983693707565277017246572600122708912513609073798160833424621341698868331606352748827858935215047614825715839306729274096432679875524096484850178089039639321250818410480597972072092145133025195102217796251505677288040540147207884042650596724220355906339276468945233712378165610095779452185142213989615203382538550178867122132231271913698021626137855300141775308429023710728176732186222816644814140760343574409224928771306254078111732806754996246819560277315825038796484683289697025083604927973591597501205519042838464504133036117521715793217572608894200006033903803979817538190812960985991823298048060102028634833115030409653431409039507421902422001074613271081284659048958270213223063215199566817142042831614054196975263035117334643884839767427029929098963229014068593245831438435593536392638381293762235141596263058561661356787323145455995174340934342920966910173997645808640651459334344547851583001245632300329770719709248022076039117479092226424588685133749123934689668563644555928094586905024611723139810553195906887429534718638639141225965296295717024447147521069532790060752755355129861767763589161922755558526583319495173038315465537615948329730463524575594207111772241220108728354696836148457811619811302699198849780550621295857540372865512548832322346723025837573454761434523351746239398900117705951840264700905225226838839222573907772676203793901158768535695763247529582511859439340820323461809819086775543338741348016389259824660098326373323649802979782843974092657900308073099715076802955475565563344222897124649066190856817162244639418418887891458558715325120273303224530602674398171895618223260646135119532334841521258572071005767894568180017373618175044000052544934017809478929011691219563573616916725128897075839469116336636672068082428672212100892114883194832307500285165907590697659096773556088842311578664875653083308358682656613871404734521437992279193952705697960146451318865998051158343438941343993967536977487325136607073612300107497947824160393934881271732486708248959317063864348397677099355126442887713406299380802354152157809186694791925349288267536209656489735143744093793346716833590086706709152519557171240871032146345690230270830776759206160507098407705927869556712518684036205194296335791897988432142194057949943178741449762483449464359593981744845807357260566696362589029100763826931091714904277700023810298129408895884812440945164326385744022310750935518854031348212845780079159067298810488148650890401038665806990205490446776122843978801877816848332497524097516120593179755398561759059542373044282332351492113448850613582369001648165658121056175278708565564812848758257721858220721427940641621350689338689707568359629893951490774108432221129734324987660705937402489286537170591131259793959977865271273757460877226021860331163025559342634928344382605057679895253634289074285283001221380098488247216337287847254816433780952061630924270297434257399973057602474897939702570304159969442259811365246199706786913700992195770698717320327465290064144777535959837751327087344718086033338329760170619029197550471599366693387761514212117701424618707129763343300685938508322547854006547192982467919131104104700443344226584689055053588833928406629825815723131428621765131842919794331980251184493442025703457474429141717103071631633746493212540250373644815858596796864631991996290187471713086458490055101142024588074635984895666836850815096815921114303971241194895249479121155172807762576994713811663976166978878327804567817936972380181239053995520829786445500481321230024146815058393720687372103239802220927701152750202067807791469588303517377623732799458553661279505542131509347202522609964022386386480740710700564399646449482508838613773417957468638525630391085623180098404413241427029488030651093729277944248629564157430925027260368541782396947120443426544461002849969030485663777073368827269435168726991337891592019433124074632172728275139685696530554368443662347517781017116427297950609088931311316522143666221571633682107013198240088612149133488912926773025676954183987733996780333168976415875822714089467864956515742232555374833339848325557305182301793124865238253370492863580672995978431075498601895409134229599376780601002625478563408749572380715641609779329463129460438876826298256239335967842065863617293540191750364852928693097075858338132003023500458259767852570940886877467076660658829503142627112233989632039211764080521655086545584369265587664444999225826506720990779020233454656368805194976421270307474758345785205573935838037460540639589541882262146143125814671374288514911589202712193475262847887040029247872250103008488044217039726142214912337806239964160687505491731223059815176362685637792616778806163213198287345698941223453064197573973261144230083133498488453804558445457114972574337661285683982599232063909489979425057483888121862994457831432320589261579610402173887166980911090533031871907426146355657399027078154040808594792336224505344604523593499936302366752571628114808487772204941690754459762635934367760975541366836877662035739652166824723949457292491981820829029156571437368607164330395079918020937687013806462060685988991407929612556977054828279709158101665629368101990232630725697909591975029897068166633827038162715618051569208062560481141952298623111520589667877788537116332638113014344968332841232930830056773037005755841457847444592258336527242113539377719629413059502361929780613311477772756990072657720054956809407623637941534925059184406755064593189302568279154444390765667227551126544212407001409757207693871779593970079939977958109707534506672570013449110538731347864522096177846848003756136547401898454471347109695659538901355262271825760651827666704273771532110782240471371355871262036966469262432382733026391033504420836180948568794910207712220781491736511439745256121902930770818710335819386640883143573372720299015682885652004326968333309432083036885155945715046848360610286599516729563617301186461021641122930560193594634806679650611881240256841466986457957940458051692094939262096321198047315471821640994624145405954291681003011289976662184421607506066150257914593205173418262390355127817233229830534166559608381904265386940249654258063166128198773476279049857707252466602010893940776521245891490771328554261209138337719881047795015071399682688538321625021603389502700439928130844697402719394110898266194391273693921500222887759495975648449035771004053431444707273168542447004499259959317477906055314463708674337933313103681899564872527149485381093231982611693279242546661136438780398587933634556468028097993801508520322820427569054320591083492800958833986474004081455706989005941522190717105301480749342072323595454062065197190760518951807035229106366677302040073255529209824879840246269164564253083144563307672889572354798418545052596036146822973910924898612896892585019410008965449831200140611459158935549880791483907062387059268801012064024236915367158889849189730496422764961365003504126394490935187626040692414596569809119740191968499266211015378623554634093381782195526458066170445009164205795967493781018442458310742344097613861850551414131615462178938958817221642818942137895533137775257298361391762302391520296216245815701123933190312518787757149284972212105026781922699435788146189022688138404413515562267723457165477855388099885786324462512059951206747339254451659539663935937119391140397345013888239846740170689549563971697910026547898147762190920274333910456818543988292861775618126919428612448641413005338677422373513543194460004542312404755926740280837916205523390563505010362333166209703830006398229711013057178692615446039645462298899069223319806816624292491571194842387928350020686910381761389374813088387631230907926877848728396139549072990485129633494661812746911732093020368706882771778619281437085203075159995572339780651076833662154667718346629242779037210232190739925735488075195213166516666642008757533786244853802399983154672374019969464847122707995464025639071216105863527937277618947791969384310696631831982298799489459087875142675114848983114549409426350781494530460405970603710788323462007626665109122091164348335195691001515094975020906012833848586065408371211815997484767323313752279253695559460154268016646388794995115398427663123889907970717054629711140230175787147471278933788873514444828874827197001863152763221427629307200048461969859026814802638696514440623546705890556011974795203632528621343165660986215736980162927374739315629951710251073516094443410197164904737190756541762671028042918688478396422008884334237665976403043973835790815054878575207352851271931526794405243809041629894141953333546882565219015107539910142683107746260338439886416890176424946246914879989541845264751822707293345451993940722296334327769116803694467899996479524705820943516435076728615102386956037043554780996689530852309840308528720152840666370450972412455139983296864104487853224036219865417504117976308971424098829412054848034891850150474958873366659967380771457014237211795139780975925039166750032622787517306191732423080354104778590560256032281181760181483445913931581425202932603445645136116524719489467787207401469211742693476124632326965786642517843888127831139542392821672724553173678952036270699111850472676988129891056837174392670535344246605722755860814592598887821291473695938910946911295926993442693498908963794661012569536518383899473476133240373088722488804679605440702385073457706690621713507686842551097155419858058412911017916432788415717626454630406358132618620129916318062082963580184890071226360760645994492069152661638745381996690164369721486487961489796810744121058592441380506278390827032366018670762642703391143253494119252544337795359523611339087089380424514444435937067177901550900753951661834670888990367044623954628887042223156053215273230958843918952982651678775222355627020051034796670224589441769319952361704373167191491001898512404355595994664463052546978542249157521082559461311633300633242061884100654433318341386849259389183947984560461250651736495501233443963303187696711298265739147966342573026983819695331865373265691633700330916502150292624014139953535633064842544808898361071873249573988883974757180746415743560251458017332634306597767303536773968942305526228472811970968972159571014537188352799668793892074025849532170900678131039729868072335456286105693535393909020488476658809982655949332330872318956701207346573789001099024075851876329773688268307876479801732316696923191569426858869549000207989291845528523629203833763933428092792748562411556695837942513880901990374156642516385799249678846547091670285852113338701178026969154056232602294061660660376429977445699151502039339972575932207887166791633907286083521608797538677594211027605901352783653264647985821484882082343895351549908709829932737232093003532948570533361883096762530234169483277842701327456351704341803393965932507349281100515001765631865008638324311982939984393523052933038079618660391964776263071577188786712360198995685785231057050922940638420197433379312314572458672829155230993847984926777498886917998467989424989929061410181117140853302820862664026439002948256727318152646820777313728650911500658332633523023880686987004344595174672983298018021686720973133121655040703771186627319827469056009634920101633057729843327976237403703912438348822692104544635931938045679408834621809873009288723279088268196466441003258391700910311789933507598165299639432405402744014871366448175519286718422312931215013821652902884826357964568605231276010438574025217183395716324449152583801886121500172650408298704259509690820290463159961914851628942407176899560416814049819803855261825806928545979166484394060413382761269217360772161980206175485540462377044453710451690068282503996948992116283678676492990763636528314124613393806546952781732887208416222704577807334371966905752816971105483016775243889214225906902566347703146472085584850024620736052491136503126269117449999514751836295162610408985118682520972609820644330323782026437010632470867808218236877912314496318586139391407951336580230904414887596162518702184687040815824209045948201832829719372936631471008089049380228621340213901905954777787178446789062338969996626197026673082316923468377538776155873702741706024552481503807373583661001448378598381189314081311662411657711845954122093768179418646486152817588781459588220984815957883049179832018333807914018460647133669653675934480602642344541477209895114749379832572503471549093670711452582140511285231670048308080679557547725250270561547287932957586375411184701037663963077778374282110924652068181152248674623063714845031933105474408754630047481020315427904026910977902936306488482906462133282112743661432172499762815058302458155190297381550635479345337394153859499780528434179528975674166792081931084441205964530408951912501924227557591975779432326136216811765824715184855945156152906365237987173712123136449091797485931184052174196546234776829991709671871873543011917577279829001713315835778674605353358876748440969345761907088505482573522812807819043461147488555754068313574947699170816941284694456137494146156343409100397950277793542531608253656230684124636669632557130432743911381539585732247260083779051105399406039788166730601845798744530806183605147652173022765229392200265620321908445081991203669406880807632188257352866983633996817212575987924927052494823081659636502276517184820244208930840589467342545063300624658210473096635625848717593475812330636677795056894646995969020790628560134263090736450271357236786961108609592520051624288307421159652774150998267186991002455198679524380328128783387912330698571995335840682536192589778141007326933575129071206637567385915636483203042354162147438153891837530631767247325149116973326232462814197326901751149148062028576790577700036504300281954438649931328819917339123138655238299573715535768414072270182592693582616367242647149542882502581315475763528111362877880292168763355643556622475960729759675521311053784846556452145875708645364828593492348309530158686480540834206836012737107667479524431633240274909704221042294725852461862709075946218266575759765998406523496832413132003922738911415055212054540143027916930021483901694146691614128010401129411745731202749129909163250330819240611824155324599302521698428989143830520792747876167236988752132948404914204321669193200616638083472561519330063338009377918995561672710832726497866305373775279936153285478312126392947914007464692877694214872540890920247721280867437029292994672389377893466164284266922556730823601183453403154323296204904293727340604410308698627589674609643338027870077548423548960835508544077642378156992014252640685603997432252518870210898681755267428555690554629636483808596930594179918858329132460472082982178546321534495733284373127019558033363621738576822578255363151436256565532112502234767656044435132866649801011578986822082273889104846651770254848371014311968814433445017994223725903001561176884295262046013364958834673177377639667691813258491386013143870771230570380374608696187674956201520476194943756426851740697670042392101782852254998619007833261812463187839009612352573480656084614600243666051398107196094649774729710084657181682352470121121685713874203352519706235775263516744445925497831537978569214394202668466060919012676030745068992152961203141630808630458700411573511753464567666086409111819221066881917993135301272158534424677447088157016138900290772318532397455282729605907632600033247234698302458734450801969524575615527567815347376989259648789171646417358752952119176647830448220583545625396140843067258883556079440478615535923019598924597951450441056026677391335058838993986395043967956364732486553873388962380467779438614609021791258168873808543659683819403681269095841339913532806079863160130268988516407498858756373759244897669368389073044172118253780011866064950764007501316080914367770240019586633519990546195194325095873487599300749423363452946373523626468446163191216012015138921614398576564214488158920071054046795204072817170046658391309199547527281916235168516773176382880037982201997249012953416479962728361163062642827746048284706833345304490755649357062591962114655252240923409688482204086477631807900834162061665635559166471943747924725893031408733283409497167550050977925873773046375538302716264981162871231042125155219218784176564773218666684422861512413231994877862408259970848547047542819961951002464022758258744875618408776562299297811204314416077403947442943089660195936676037286337231626252614061760719050496599962494122046582191955216731337477068458682081704050221870226341508258267904095644806813546347993474335702288198348276599832660224561707243972444409155485947862872155662547230976148601958554216912355560973208828856933560358727272648380620543054974644759572272967004798088368415149459464154881917208055172945302103138506837324388546597328438608196684283771187584224275319097714672967829777123751911607008395831143877794654576107836199833639327336551941377448618202196279515725917960325185602763146867299546618158166590914577254394742446688056760524001504635411779526309844750496305821325292710548986326854655208493431308963829306628730319120050226881172334447771535463975745151998939297689284112228922327015249304681471945374524034958448311606952621852311408326076319055409593151954996888972347130392890888610019757842166010967849118683609125419159047047000738150676346275893300632316447688716612244966717528793175128791895755864460226001440636100466517876751787767132911122175316027655488375411925699178312746923188019520725169748934659375533231988741216420554277661879683583357248969585607186770833900955392974504537860491788040295357747907682586421724764157512252146899824692631808034880810575249392034603591536033173266679884677149450356536819333627531026836539802871070915132980284145239428420006641017863229846206255015408877723075557640276747359871997019161583548071862392189075728724121749334978681750087440034203531778674645215385593238814700635281735262481693766888566922923615914920327073750605461586843831849428132940833138917334144129026629262377210502188243540608127679241464249714423965094561367512958799770875849507543308878130817513394985590634561247195281286710690500129145623971956633278538268798501061509784228703101328557057035529324601721664995199193593828300436183121660242117175128189558723323096169466684400590471456978699889644504810459591412465186472505498073040602724688755792259334877892035839496610069956834921042467673024397888505502633746280298820264999074838921900815663719609019336082916083044576298125978113440060155404338648762536240077727489243773491109905359391215997315605140681105759926156173143913327146431138054193661304695082180507307314977116639299634745799125348174047487747207415514477281598835408483728673772418467068723345660666251189307226391186014678474329301965920005260007156073556612205577744656946772138327552725132855188399339725758950353842837465908591894571091551488949239311652879635241042444331723290179935792197475154594739594746091168996629783288992477663479409330560097644115339373909067408677334620432853873654084116214400420246139449619312228222380949035819622487587325187505302314795529920285324302748345758592765986951587216981799987673377205095805350865326399915675041925429853962319037645052745111679539668889721166095181620955968439625792017412266492452695812181220184709877554211946992352288823018159446306614704457179332518490164206405920062521641622450174258774914868994617604331260607996205071263417741025669034543927827157927227744626201545815711279127867188865761839368183799674213588504296932183927691233102062386596451896304660700567854596047370661426729703995266261811763596473644312785857514589281477350911096232336128451755914340589001201080084947264525477399248726869092038409687333834438032760127872533642612726817141202940286440643757905355591686316612633530534374825730706197202454138001777154427656634937879907311445113262997140249129482925046343762075178220870950558813477773783715153914616506976565702633040077598175187841903608953465016273285151283149511879787352505639554847054490291105734000733335345198354875199303251445892711530605461745602941011434353420409308423958355014495914282854517955164244872542809084888605130885988496312347182511053225017792542477122706359748729463586677448397537955265529754464911624006356455915188205843333961264186981531258936674030820886420806093676276010182631730278256020728971767257223229667017916366754637324799079901195181102360406729565234772152955651440025616904633660858488276351927352208266942916581497064208181715857837326495846365271819310308325913936823878869796042409520258685732828716058824464288835222840760466066926238391233000624287299017487197946148653287180019407065923020306190959802843994459598347991084380132766483491975530706815179001416344710994091258420977774849634941574467891882993341056812666091677511561966897700211041636533909475508747610383782737062723509498354226581153978119588149355380627912969222419276902571311286322671826757216937759220695640201522528781002729829973901275927791017676448031644242918762901072430482292025831787393094133976182559308851087126940909737045157929516941094335058499048580579941203674782233428761632710040343728179009427678327489286361482313766099394726201923438539362235004898351722753056615505834554733754058684454339810120033608178236122200669402301922228209874570246261586451380733654197778906558933520518310475002271896510585911660602962912472281036607234460371819102975373337055710083347785669866428683365057075369039814777207188078967021788797874788327584775006478113033053475984202678273404614475707812087485172208183422931413953976811098782523937802189758475320712752119826391227675749299795936060729281600990548864825607989703385520741705687737902403245414468919163707003331888087347182422236738210440549630986431617184181086228632383273568450562966829613160777139912510337936202858682715817387868091492059500307786203959451477619543118271904509626716872268688772627966796407024959507106887018795825561602967960115065607946330928743872300125711630150265060702630391096298897471533040965211642151008163685211395481438621395019165542409752927625684534153748171394584797247577414277464673301490267231184638560849694049196540807962978531590049366824575942492472622695261540823203229512709000625980547255545654123776838156019337194776658421781519759391180275447473326165099572518075408137423061316757489567272639658712190693294524354883474824587140442367763703339994056097888229118793653709906204095161362590804532445043498768505434240536494373635100000102828443073300939709136796167830856745054861057409693300630223825737052939334244628887049406674797480826415410200397970006276526939287704601535365607247021052792586952539304547746135454797485185110578799620113750534744067719159228490265533460146885347067122414539488956542058785968306360592026051348311686787517568876334832125491932325952322150117868279801154366414107854580946923327137047616807311193096387210849309378215178060307038563457488947093563694367604693777302857266978551915719406000078686195317528126149940144645792573473056120150033850217946540488274806762095812550694805219105072235457776441108273202805723175220605949349828841926579340969070523464399538554692081600016758836521516582408296947343893127938988093168020547358376003083945215131910546249430060965118025295463833289794875843678879102750887336333605363862431372224245334924587151964572300622660826849228968003965888718044078275107065660633317870455878345339163388131171874885885391331899854655547166563102498298900744438839357244595753338881940515959601360763911430559734840047797912830600883899588332607144916061364047529930955737932008351190056585668395609362948316362831984796529387232352344558562969877169729751534123801400075877886217847297313528491695581063509008182177244210763916373837255049910639797286587442833287015216049737353655347682333579872427947350682869554753843433441939925543333190098205603379149199630523512962790552976918851643042257830175801332726888455880853774229627248398177870569420401181195716702722453212280089495085769827538039219763979995795601976118211821785579218007465108484986515749033329848504104034859277088653543500860248557705133328044742437634211752394787918123973543945432346167648454014108359979019425685904209920318649030801121139574639113813820776652795688697124511317087376112682411902660942814410214060232171755899715756795925705519337972502576686346729612830473771337729551908228491280627034423654958400046251159224712478961909938321351239935628622526117988052368824752219444563400009380776006253526280409175350769504119320006498799197261669986176078103148488301813195937411472504358181544573424569170863379316284041034869092441924811643690916083298049300495783830937408974319365056302224764086384603740575523524644846028867639747018838662075850754469301875499613323276545583333354549040089739777595104684758393583906582590630308653081975656636019860818114200522907805607926198130442900604755113059722121839332130881554786406490104659156624291494605484474375846047114004363441628313718085025688455250311101797740534919650253239671992676807514008894895844634604536199408127072503290243296120976977130099097604522213161378691022843872389677907624488836966397479245551683758288856378112633491458251811911613264616568011516057669442443449817380307581483259388035048550798359353865769895611498482633559417084562550791066165903153055080880424682326888833909296592713142255814371637050900613253598567526117548213679237331333060579923404902801293885594681973689704181413009693835560710588134068936002553023380959016264556552152438230012476091903404121911486092203534164494203892547051018044111204603639607402652690509955549315102305388009330347914657594746689772573299483001393128785426582534321418830673446458226340416201435857813787621610886571623716175911148074092163620217111781707094507996013294823989519274452203667309305544717058814986948518576785203872132930720354370936931008336888859896089949955684467202173120069572807180818284954425776717081685090615674014260521127308796575091946560603200094635230171269452521637214923228094981057871191162710296738793325238932388373022716279854389612562027376967454222090184213107001114353661651466881467768955541556898139602518914565161225044223626782856156798836652373671351172035857168582731396808687580458687125150410974538124304282917605482674520316030594351637782180677863570476043672202598098903396113568303033190945083381550697396351015479489599061354848932013911225870241222278802101931856554140717360941451826510496626991732998691031796427544702631585442030967943986628462878630904984926882315545646826703855632182051519213985529505707401729435636951239183510671631775056528876495353369585008386240352158157860387824972289070703419589524434088274049444459591420721094513360957183842870070940635712189844000544196959755304020303171481481170130167316034889627575146158272813206117377303326952069114445019835645717470228769969866694845237958921030142998415146250916129571348418853083903659168390802818367462356461619757683344273537866026549037239610443643648988608490135693785041577757239623446165508968249900052471846131793744319396312350559966829879811182418838578450963871021065089414994267194369721841763786774480922824890005966999286866294892119999664272334081810031670230694650001040887440312769067184520076132089501901899422163815292438707815369974749965335389325735861646587690588398689926850378237233280887055339333210317667013072194918752557780824808313500082798380492886649597572483797868847797643838986707985951974731062955083558984623014789251552448446028407028033132982204170193942734935485871491491856428902863658514257267000002351196989659969014034195301009675517264454053303349761871532300655403166739814701568745472355644694530572557248013288022639527523977438728286943174538882778676246055280964085654269518052684177219909496759648289810077057681346949477090744368404181925004509785007789342008948962108668805217614901040449628099371388045104427903652047110188395542798345934182225271398532026304666238783748598459622125020073685669961256272272665051391586395476340998245940010841017601251780993016965057564481084482421617733366260054526582734943871173555932742666746326591931066117643723426540542872717245886440860948065799873491057382961435394175426407135580142422770106915281970186943844305204413130871831556117971197915562517223691669869998695705628031528568727316707173334997677859851601309957517284580273109743527282110776506389525498679957986425409173306692719564597480100147302785246698090996728000597750708928200381511528817821172297222779731823741785138680573451243527179997744137710835741576400132369963431570605773922837386201702302461384931716893624541632505747118342319890285652399721376162780534831134976298190093281584345907566644537776249521169881192160919762592742457581107991243115693656776028735191853647455288289868038974428386880183819192008322701053873403697518672932597174272282136427049330593860757248141277169447731891008616959496222688685631589811482180777196111585468782834602999371596039548124555401970320810868732814993794575900987097199011250750201629236719561921090408023998289642107759978716602560808487298343584920343077729295330945320689376809275572785458427786974857419364723438703095303757623706914150285612361943980173666194283250293702931728270131594836631625248214396588006844826831325100353406112666996474142886911522820802356814145872991530268377052626748907705055810939352761510211542842890723140703722223901790516392774102660497256553519571122615962986232270273272578712262121338385376671626911631514399001935715241277305318476351942526730813163779368516851538317170694879545942105331428638249923580839690991156047831027330253980489932028686641919218899159254920488606681695008819500360020907627937768166215353686812449691792361280056020031029619360490642650546679777756714704561246895743706816680469874200048832590908361535101034506438189762928961039227051042668396665436076311915492244593537906212502121338511150232966683321864468862311231924348113523773303448258168699750881984424496395141675547530312837339202902246566237559257264310606216667913623742858764767635734148796097866192874282743494901258458483198282989450195812731768268076885811370447196706487244310101409864187825304320979119575256414683829608988906709923876384727359185120571025968840244058997148747437973582369481285835659583623460597306785617661753506529129289843913718506030973502869034437828769533466033780207703450872652531173445202978319650313243942154900242806159408025821034873587743233849174050582120512486903106912372484104563315580368369785313654432318450649186961500168094848456798130709810583306114576661040970522056157159079812794194137970938773627222365147743730215128954620405613037898705447581260143249814503556706555747182593696251701479462745650976852558792839127730656700517550240767860791938760504154503698763735672937896016477037757033333101341390080344601291197568216012805462095330213985182342266392540663614039502345976866139525246223092033343704231255624055791930598739370093698835342386728903106654560444573721348322485998980524806440036702991150640852350269246363882205705679079995543030642349010537276221229607490140284623546083589910078495431865571436624235098680752111566553369924734051337264815176630683728678604081249520458257114533268196353284338082314381578840783013767435128302069833398753649504315151389754499890035551018445931804993028637611779802903498962819888394881622625160996896743779189477409719433739344024035398163376979708607835480780617281624455335799155380147886011386373245244831444656080630858838241948066654024511281106947660650585616349911590064830218951547454433409578980824525259350568159328538901938165772399933045504085764623572058308829615434782988337965609168298472437801875264703228391720774513018715826311499101575459705135861419400927287247110226564359370347325925151758372982337121928334075984736524100685047556442289815019726793296250007869807780593980061898198922929381313494748593727254843702463252603574576562172573475139948060036017694887182113393543355570649851026620607498870301468008555344398034036223445373698633156105141243167260578683514595520894180991105549345458002618316499572520277847248094936146407085316888773629490425876655361733550800902718506685492126997512060267877707459038251579133046556951015068256914495941056106361146644432803608390820258919488824260071855490535563108045236701463954396928256063956976091575893575595235437414296762723956940078636272094000641903329114217042803394012211145902328825226232725092266911119878949347951915934202231723380824907513393393676054950654962912154969114559172974697713189541700469317542587963356663827760540621484302174034276563760369950647414745893553527938474426430313384444691923741892011065631676469880875944252334337775158610710001358237205572960826018755596215525732501484089424544895259892483657059581367402969095529423715590929711043288006032777184809670886360351343929049438809332145316509458232811375712220397961467845228967064817355484264336678905261819724812281809348549728407701492094473359541549230504834709524894108334800154616297995232605676669220736949715225779024148562928858363087165610635860217180443915505055565566457197468221139683139541118205536323069242972092150153203861887817870800509521894804137612134057477266198976753209565924503482932908949040825887908057226558198226845645113687168865110278430973506912356823878462762039387652476728617091010104133375150691510750900147543962335162637839295868968751926675953698829018478562486857342298427303669383084053291951111694474097520765258495781376806205943890859078612479205159239151562042577246765046478582243674871424663338553581630191886950966454812023955839322274907610374873898630686041743516421464025845811625055954800016152232788740091217193000214601901676821612032294157651749481848000403518422024461907911408611420332470361304813184069199832239794005698761228519419605824615139943167283526982415453034994540717220450568675007858418122440121764137553190854903236817849178332639381297888525662157870815214243538790128513538054208303394972514606668852509980615680690522581528576981173018231452628406020959317996928201154474808204766059629578119571608085270334162925022126695435732303089804680114426250899938738416879140958694437172747032872793562011070596153940869508649586108019677173494050071760630560262275853446770541073540048763437233319733479886356094648877871852373306531325597386368219364818742506125753391574788518452828406949136457121722717604149524736885867684464416119294962076038195317316332505423854923601058405750741249852917578880526611470479320404001274456220657144702108475359849044724753402702442775724317197613464287848733625573016864438035392436820838551473344416859136315117412537930627489840083611455400553421336982756101401308745185082857627684647071236142581851905467275127834033326396030247856524490903160503447301522689715530409194150284907155809904883750291430587367763723974681980735295133822285784582576267234900832731179372190479616483604047964480340220568270795995850486312809365847704284593141898930537932493723536437909622100739835764314123497335961300688611064947356242774146695202609978205939946139013495584713007624168692034188284381759202176936403359943838063079191707838219685617887678009166141558279021021360591203972865407473249412173704070371142558891594048291970065655910756821676620251478418649133830771894901038185068968157860658539787390324802287836879647719976064039642501487651164113553023921953246481916840131962932158787266630761637868779546354149434488017379437237114701802372147047516334254478402766205759793068880997658055951203262468881919165981052184181907579123446328897380558060986242088573405221303162683648045221789567800714111660741449517010754603170531732818273382845102895272932460205138992799026887031790533677716742266564648999358320380995271554530097017249590079222781832533171791754693733107584780002531775237482979221157137336858944253992046908389018762290435345514397380722352680263148101492806513520124330184228178191242360745680971511692355621806828997127258224057534479478382772362538239740286815403412777175618051740627031350675662691435385552889505856836874023010778379401586170975117949967657868485289521075787693288057638319317803793748699273220906262865174141471679616212410966396583027828283832658001911664508539795071181804768975550618474967860197760801390677489046991364299974284516696238983921435090762776855353490996114455195552286601721689648782175687785700824503675184363334292017693686396491446628456171083422498980565675838708519092316504804510473485795579311494530259642926831005084375617845617723033996045842556420657888423442118324220160691190151031789758237062336993647552928805507417193802356174443995729269760072266382886441586667264910973103841161635763875477850519938633365881160975984288859404628773290679244085471870786610031789425334565785365891402294626123875099897254354998344823699628886006468419081405684571559332748188120153292703003766372908508996760818646337337242878074914281987354630538412469452840300168592150913464622892059307544184752882771137578151587877422301992377826464216003269693401122492032563592791466922878751602551456482518854315588538483952709567882867545946312985775951438589149933497902178380363201049680954006562646027327650452341551381772484553633780057945309586105343178375457032086497399665879305185685484475605327474369960048581579438375503777363442453952683741712157921229365329219602359488292380398368430569672043302473081538732387426920055075945289524571427755582004816098835652859659919531427302045876368245358946505729285210494697738725735479731689958780027909150353507420352853914352424760857245023924493743507124484443886499153439643663259997571726318737144695982302095251290282387237786043337954775002715505891804921884176335715757197797169496552851651113025803558302257830536671840110548931645784154792304198808055474635850301615815896039187857649684016532009225885972574645410273580896275858311257811458348162267414924120712736862118293393838460378345597832572859596719622540836620341511684888969280490694299022860626015135259621831932684842019464408109725113929819803720871838330193211228248311106897200458480671462579308579487230712698413084282210150684024283759804661175976911823412229206189100940446526286489028913094926390381956325839089868178285871650276724924455357661577166530136532328778139494927370608065570370268308588370734973546309133037163428981428137538324535435307739802040472870951498040541633060145200386818054586376707179995803478851395302112505753112333636609313676839896574108600947162397765424034350723226969738891318079941328145366434154491829400635912011744262905467362251618381478591866838639309868009109741893903781469713038986848245940301729020610938293693919084087170367278170980780668909577984353613622562298569060133384436383958173709204571032553006339751055823780144797472330626735895821040290530620061104925498916497311978065404036375642078557426842183770316833881069492269461033127667397182970109278969216401281147512760744359976850106950436151353066527727609830706263040571314458871327774793302414095469764260389518233494326289843046544954364410753731509318673892169697256601259537673730817196682516473688391349586386665891583419600640397157900040291307256808304665258854357866948868171372464141161673208997495933018117233262769750550651328553989293296582772484520911870205398130036671502886245248626104315295297834676634127781831268479749171402923993998776741057236505449611392906539001419194325881183107112378073405196354214081768628985521370313570202973154254594530412454106446646078470969594348337091639199514831995796757401524991720000832344876868978011000342733301560537156538152536081752978945485851031492023860645217563110605603349127920633696080267792922088181788464421119114875354595526695731601592068429491085697536900006592862701492147705196805964854752838481638242216248159927990662263978170922238771111628350082583560486554897092497221375216548826190107284159539042422630299413611175216908477200952912106242332960687076660987231320708130212720976065799232992972475931550479122130136249782756957657959850893197161811440722996323744140839470139100538774185913208453642576782559961316292224635722380648723190849509175635182363820455592384177510039904032343049525169161634126348338941286039008746522199897957413848076262834101578918152450316476390532754115373058176951659652309090460867621149157410008954056186597501666372266676180875553723861154410626350948816596962187883241751556853171600311413741456372454957720578715317533760324280223801033977822883936323317373276833496809362589340657845422662988880238984643668655472633087370749518390860360368510828540561369874896368999918253117186840110519063402647583377088444789537766413994730790406458462631325808234466627279623803327919823735492278581636973264614948828551527388467773144858608193006593283585195977924017524344427150931109038822642727562546800111137323522939137955771538024525525560529878371329859150224478846245048324726991158890006015515912792953344172249859515879191947300489434820274784823173919547875971418819715747654647420808693100959062918983319926820065734521057090731313229745756745942588030068148600958509762018425293842535438044192208740770062534307615172286932729188915971999879825570021259631171822967112092935839003781432815527477196211494829672978782903031356745103924077875779942463434793644463174802698850811961593124830315935263515795971211416006017719958202153535018563358078232496036024036845296197388169877724157798791244594295347802811369087846070064005007240237045177963785543360864093059074209790040236851211519123252281752140107293375565486776638385791922311688672869892098080213356050255921186264391054676501042946131648656363949435939205584524262302604869548298077025745245082432998815121483828670146615543094831872505949006276884190838851475704075434058911024782936701649699196093871439465701715178863010447390967536766156501835505356428555021921116178719427597884590453921448473824505379882012146719620094489983641457203883350321571077455340862206793965791996330193721836619262691867030124912284128422151826850242667146542007059172980693494968722942388024327737865626392386500567413031917832812494183063759716123261471724066348151202903739427650915911346839331190089551941124987278256282080901464083941731184510157077183316269046928052039944666446210200118992310354226516085576052573477312501321174661055565299387815113825568191237400089766942324009063999505250146966202984750271319356013286805972990027159146472037136745879802333873076497550589790695353498153200709405576602569772805189165368983228436953536936819955955352726366054226429773295308976931746421768713338493843452231289401866786947572665427049130851240428386428988983704923659703732464925540114843712226549109817390383927362706540830733115745739373988102906682667583831290422149168975663157725664489297659677097368545214899613867754302139586124578886421650529392906206739165347108653310916272531690168740498611190006901297943380802622718578526582581573336087787039484302235221012833847871276742456942414473115203325004731110701626654608827396308996886187651680904397108164603572030373178431946353325085085047491263748446221958685076325897952701272675752039716193443159336991653501899898740027811837205503843347046412352072023086508614501833974775343054763328849489126038174022648950277817228523485878892192124910157155219898817801070866697652636101480907781531360067065922957699882873356306798390651940635245794935899390935531714325105825306880752741484928453793954625133905504352553444856218419586802159667189090895090667470880426866599706496250252056899652066494106859223041047527425392838556727067044266432148245895220140341695303507231933165371412628206744873765384063711985097991813342270615463751100070745444521275676317318497560661637091445279835280816471546148453460062075820160023091973375035601426462128878365262928454545595555860117230872534821735302343483920485947696784015760017868323879611395110126896958566867729059437494352138277972359753204791227461694271740779391971940046438115950327005393439390251258892949866231020533463655114026907170852197022869245384976923085350320605228497603945688749867866860786073751301878201290858464672470833677287938086303520326032467018891955953586647086745239302950381447805312222254477486480497602616171826713689982653978114465781296554234503412477040314724120564457832494890396686223363453519496712903494191862325431530152574565318486825506164453001463098867564799166359114532435071107811931848347342872417169032008535694326091186947167133620860266046582074308575768012556728580580301775952852452774037883644027203274358878552411067708883981200564369598900742405406167008866896141786331082583578326447634485251282940319146945620604446823485040627808384805152161722479738699434539727379451071985284194309100106428011843574391186458197312822888147447678474742020243793514885588399052432880836062318482500302654179416838595602292432425421759422955134389162100021368493831415010456633661384282484632325777043851256560827241209767747888224255892175826970591253608456322414437919402350767997335490303122560184224044901330259728792658292264703151565201355148982097181598647494796989665597347780762064339185787860274816962994919846487176149980240502832267838153882419350704987438733472033034828363535175863204278438324859635709337827008235832103593588424678550364241795133732051387472522864863930910813789238095406062242510536359252707232516356620296894317472965236724257415267099073295141487558766235623174949421862718027645180554139672737424759827420626707990850632432215457910018985837543150557371841693606193271505609276618319648263835707943187234215375793914031362370886046497962582156584232041875333939974681643833012973779880224734169805852207064352613454931908568160854893995147058614415317366782554483953472334065551735473291945278119806185791514590925700270347198243457069909686216793627724773219702240453983153105102933679533376396621398490758114460681194743084768861022453734273434104926396924428681378059578865706649316863543241732762899636288712726435483570899260992338376789054213334202255714151921296480474412770444187104836519782783208571889661169134248084468967340336918611201634539275945293189437930764696636394442053171187955930410138855565795003403280451381501368559452784423866311012544426939707825617454713780914821647945836529114573225911891846684919858672952940304679647251456193901336325390483084161441898347297869293034875933358011760461776862188881959815546628793079576653902252788569002717970108080003930021828817866289895568721771172587934194961403371930725760799438891859968840688744490490061273744333096454233287472788205958345513859978701812093226862334747669485963180659313152767059258343748866355832909426815296490886761262788037297470864354622936792272832628199402407191630556571748149787830116474363564564363011626002657074680239582628771712420917190433497172339565988758590171490444314494022709193144894781941980744498278803567016974522030671004199735002486393752416236258315398949306521320642432516602294865239367138496975065361476783042102404884747475145410929143956612380780663851981726128030237760270039856144464329524764750029594783011462653080839576495585837325461162160601435725460778745026235254930809155013105171311635107008511074749327857775339831249068874207490064584735110179979237902456554111248639437246826998491873806994227218258239271160105112965708439486024880032157858044814102124672247946181109631589994503959294532200164087195101721053444558904706855825009997370410006001201081626031593179908475635912221044960493201247038207524224611556762983170492256064468786160805519931993390471212776077222950499813976895831647329131233088846678413355526946451269178646257200337672643458527871674494944620610162943918718883839248950128884478973090571773979549359345105870523222266722579208870838246755745796441491667868802767664136453187999574110689359250372329320123506197031246626976027058036505517628989997544730827212984482144545178563903192102674831792488415091810112541020801861937012460326306290350056240841502926627490513959445059213484104649894864215998360243475661965487675393629331382362777863301148834193127233788322927813283500093753757534458791696189548569538477986750220054144285056990352180464164386797180642506360690215427373591274853138008430650669989242920583232892752889733944036854361545911464811583932927251328159019237720396938144059676148968637610539610563911877788111991464094927566883596660582057555033373020766049576507953785683909453332957534576013626341909414227910126236539734201654545940824982778005023213353429874453035690258023952423519583879028053669317522947986977141647004473865277935081397791166258773328394317624987658691318540807839772387717886625559398175952465212149714931753907224262590415845233457787229890875309806019402441638953301907318869009199399554676822220396681412150518721512179873452247499670698927450158551535560139171218379577054210863542767565413907853373697110237577449347629150805129766927926526087646655879356451517179965272942041105831772339203084729839984765783124403807873247216706630257893258841355651057373148476800476500364286755338254224766164788861865045047838735870537147688886037305312192549882462001087946554028348181411705305154431505955859286830015760347294375420495115082770948734312767111908997558784575031574983604146537328032735143256496888351909634256835801768944795915357508341246544105804355987330744139252940681750341548548428565771782106157048073484418017720878906294594118570547541686985352744339410302660144270379661036586898714753858210654544235517581945692229176753101951456567984872615821666217302557602383252382640185050467598427591551243206606148131901968312453346248031429053205606427171375729775904058521584627443951431796708009626846290414566166018444402996014989969253640303771943658535754402872079172356805652056207806078168812076156857577973707227350360621088909550846203770950577944252482352498736928349877401157505999082839970957875123685075574712157109818007568971981366281153801062422942715734402230531002831301274966526709436463909484918141000607740991049877178681423538600570548430807697836223212897019347499769948210373697753453678814078827583320504976701732831728895893321775167488690734559668345143767194238240489324356985437676131712227281127425188373732196352584877109987491717121863190493977141271035764017943725322611891334979911033146922488389967249722858305104696989796743415017930903361871274444940062222869939827871872808767722443070755747942461449276314515083272545969206924478976648467158482987650213143655232943467690323331706551107096766769411499535942963169838855574449829545561058962036480458386902582130562934496632244412256888609930901070052252458495216334994484215802350815774104552719896303834669243245183667387086619194470876755286530947193448153496162224372809113265320855789628206003165270032192651322011533466744945863036255446591105891811232216750982859224970589967663191264067993456263844634929943113189006267844475397719338397391545571850621779582673091323361436219889192309740543306904504551738765040668897862324705609790819413479804558225615656008007179598428553595033514809634938990641050393937648418398882742613906131016984498809355244429848741513073768052471869347407771482285504818294338545563939678834162482563392302447685570203838322661880329614756182211432383228168742167937572886496317471466946602463576114838700183651592313848625146061932718324459156435193216375417475276383943271345399654790242988424772634430286727505175262378447569860799526083870697847367741459441182297651810114626720482198940176441152397853759862486786435443376019771074640442815953814531645066618744330302760602426440886467165568455627261318647748763715212387735883616272156525417926926274455865280035567090196815126314625222582304233522839198909385083807960904190009747678740816738042785625044201581999127854845318477177073431488300331008649590746931768637347456808126184229050942333513143820527810210778646861021776334578319592112588308320785772640399490712650967786493241285528799091521795759870806238477725475637087023196147646572641440360778789428822581999443121519183221074737174533196396004899552991027854500005119436712481446496162371004124897152234751122278648812057131956669773033287389015276277146641248269976682202804722953139492208744496630744355735634279258349355323313582393407188415435333643691581973843301743692390155355638679175420896849925728813720448424388572816434744540541349262908114401537369710257727994383555231818877361168284502712217872367267075738988911173284567910193223963769268512822941785464178159569269633060551914878960274991423930390230222602434153492615558975835943145326143243424270801214732891523814543194126184377024186279181447548335700608507754445683482516314356520312005471230694325095700813000496241402536457008029776477758074439399881471040217063145665384437921055334434469772377843659610475529761435585408037047691115060576073412435968835053990911547309571551956445518294319612402667776407087408788339389441281375705172173023470638755178980890177759111248783804100313615731694736717688130148515626675576009028899689193930517813382506403389490606471473288539952638492614807249741298659840772915352142627814645016333935132275634782707571684155024001078755568086174746383309740735171275012575261304815081427648232458579736021747298813988402519210755137178107805937831309996770991083851275211569326947361329544508952040447122068739085771505369674560196651298391909266858065691382110358835509638415650970323873371338460545946654936692623335264815353617824273257824121602926482596126008213652970035472428534519049787879341565838528606590544113301689285040984250957490209724910324685288352392091767202325661729292544398061372749132666201399847560905089278925287673642418609425307646352484255130001289124697528395633782075796105972138639628196017141449166433516446778672604329347506559289862946950022172754951751677166844784254580715002137391070569807895858905714744389786095915003185866876454312992827437074828134394727223813745980936932882229176067641156671290730787884951528929439703165587362658083025792564758808712408226145574019247109116345433706215231007506914998602886227006330443479132270062200882557452573954095729161027189127138803636537842527820696189032989160704207597619307049531182095582148336770803937194837526741780771908135585783195515811199430719530882267998925169299535570991713897300550210469205294487909680027364983810537326983249214052756231655514663952980891969370771281880805368380739969760831530122180091701936415432180007547718519028635883905197220271472031237884197458865756070542601717696932794629854658184254360376018573049139873861503778079443127674583588112839351257813022440316516101438873480056130010077876398051501136490554475249459647474101523834109900776834756978497975170614436480157097388975695958123120268860714301329014619031115139994623901079285558908380445009005524189343927162606940680818758376803125578192188825134069048178263165554265651395741145317170945841069219297862302447691228635536346377207042760271066969507123564698845005837426407048737725301392768987484072370628300609636993718581102938309479480939135628261268279107415596443519129120569499704711975343328344602757353169863897176383446154640389201926216967200728537011363166602506565661200182004603165757520660946058441834569150312391538916431914262929326222113626648705352119510421306099851063359683931983831183838248155618341316013009326761628596365715554101966461016834046647638685408907620121267593611190522129391003680365796713302774327429487715924815735840241590257358546013213795978649173222119008280283411828089521390340531834707739253187305276234844910832968822331213839724615306305522647003522617181729868940963364426154178841086332005911121745322605394975317439310791207660442928854645904489633660620516382947243535506726453164267000438300751130082201947567721173788836771305744192049525891413515180900061473988239348394535440823898711475714757462695555740639003783993566486590453866959552428280062710383222049806631693628816373216582157736525972074098940409132088982541226858506163450529607701932768648852213001226026373848034051499150651282396481743429206268091436939640755143984751104191831055438098241278013866057814148616395647439491231748321108205330884001644001372883046041058249904946063302612013796712267051067867925234634711980111782781179957599244605102860388401876956938241813817285707404714646823136134142527253077903721217335171539495734908577586185442401849530961520293795576242763720851899504210651162359303151964309491774525285338238029880641176025793159549488265426443193083886472587766640079468740387568355465317549353874193532799845093370861059701018983535127413532337545204539910510997445294375670701998024868371607317779633791862519983972216152609957194223485904705010343484773285797259052567198534071641829132682531797985747683222585359375519092118854514944088193375276324175830357681272544117139259632343207405761539259791888749813074784222055627171485475264771866134616526097496572426835418760884118075690397865891688826992244774356358467743232647021424978354696125229421310148936993132322771714635590631928260377041787382546618744547542460613470609454473584743679886636635673106465899152906971137510606663159309687246849622449778131872539814895510788240232838429194510218059471407668820029555078718515219442629519101156022650296026013143798628876318134393895394106385568458499064059143438598898966167203124268993483829922018163990871157591790084339065529951620266874824835356773971847572307159146247504260341568180567188310527324680194563721878770724381646542839351507610586580914655571189278517930368376642270059616461125966638689513116423694355005716495624719888918299843960635329971686920823486290328360684796579731619164719456278803419117679862532913289208237863799002430388643799590847470804288656931581784723011620705809671057019085830881483117384016601686607652476127164073634207667964701453918982158675861040918952321499403659519539157886545401976226627126503209739690029597932487680407202651002341862761095230420467544624526843676185309931196954824911250809363656122366292373546955076126416976522919782511854200153840546062625762289578614452128936099485588362588389665678330453379724410314291348263802980709672416445057107950909503301552725324332240264930556285871795377315933869950117308132925728826006314020528074214453346866972920124278985912045108862446581658826645642633570929660074338657743432645203670489399718216045140196646884356557179950675434727649549078516434657134032463541157614885430468734006379815811010402616488927928156849455244365778429015613480603483655555189283365322417737170202454769250939882774914965372166115970238235792337754087148861252288192972342526510241980606006288312171145162502539665074430767237528244702649284057303792458530291262696305268907506799352137516364220366772476572709644491958663488397051376601664652958584929764411161622546784534649108516213129252615409741276894156290569463771077759599781774194898464003688432062737293733250265112970924651419457402092977691998083866991872313547167553518861551365671997493287582494421138517219983286031637112183194853668931251080574893783532726439900570249761769220204670106336131671858702746036551732674918583361851774751024409184308283044437184283564973932645819729602563069802071026561771432260027694213900058870639915132704939579917972706597245622646222020983946253129813302753193886926686107571105659398972666877495953690156078487417264261719586742843641095255561457687638117675191184871286352389122566741047136646938919442867515185693573937000392355221752928405837936208935705220615170407598385471543270557848182593517048369720873517024782975776654171672204876526137851531334841747672455722160540692712329747561104999945241488708533780800222389959237987208371165957202760043258077231997825972118895633981293342941059941042687712581987557109290533129690604508560736401587284187716766493725127098049427973620347139679113297769400884158086384049553096687180167124828249884281279618603317746450455697867807831726157797332512872041550213006213562287514192203258102336367212432397796760879684102075256569848033548831887844395049726121004470821046598537778438867653324464283657352556908099078644871486433426541313545504875641588687812856624255139979694274690948130685724073960349184979052346977997399097560584449741464432119654353292676482956700550071407872429090353578879189602183152992847067037157695947757128180245698934852919559513734867501698738536540629113608770237916166616286652783277150137282827987620646001379307653945698594509395149696997957335556198479007035222563029846601913136488733195215771897352561938355394757783064844045113327949255906176290562932765218253088754499736297916356928653381239272910464560907291081813388063026781273196347213651628841296059902699598164174925980311598156585199689723816765720274222094136440594139862625621037696195157422118809055242012526526959228125006885930526736022207730485264487956483197621382128359954029385332927558978507392342872597236682002203475747016485705191887776564904801676978390728899330584140355214089670256049279965816112810828070332836538780020995655300672030636120193923271353360381813207671795386671556630162736153747737541568711038696896423865211009677775283782829999479559461394599219784449701147783460285242260603103360027963322294858177811463740386968219562307332264874756152099514084593641364383909267136599727598763271500454906771987154420170949262593033184221066936176366521197041538619271103491701527125705156097546675623345481475128636413901078688137625977506076223446382468467643549935078710210138665273704540113943784280663891486736645067620145911587373790692258018010898759249476525515683812771449561827986589004656059758662751210412522631771627415169778067945924343940647579610667865503000301945178933199226103375687032410094288927967401615477693780503854512985162389080700447220011530658802929904436297544373553866065306539167600698307172247123484511894856865022702941732557539207075942678120064766230895879803385199568683918051491858436137882139645632448478858703451858083758184158093621599882601109276447647310484629979353062387224491540519025861825479182026109766485720492330689150418441004286783565908642014062465986676332249939343202356484946929929032714010968604042866781793671424586943636055899517986777269123561950233215559438627432423951815791462335090983169602703760493707358907557189411351631015255186496799713310974462407590218661667769055477939810835667677529117091199800331985577305754026886805244875659537470122134282614076748934093545148051003110045638346556039294704755030987378631426075547175948421347693578051929896371108702057926707136021120922471873069965327060056563110354623321084221584377379544078529122001387505025411160602547688641875881272164178714182021076513704494164066668590559546448562489356982003188380407509886527615117316225440964042547174217807676695850261952611831853678270279285442669884473170145615050429674686184095204073073814814318491834633291380401959096348968419991750365920317376371926122084958806619385509321210363747004795949837138912534780326730977369087660223703509694571347839038839194298096137495147547270306288501969993583166116833957603463871797029155514151629933188715493026742101650470169857277010597785665049806128720535166854547478699864217103233438602946735162726870250077777971589939945228702968642046699581556158490435109247682899067559060225247519982966184490003307465606735622807159290157514997734154307100508881075248640666207925789481677366549420182163937948024282413462446486808392632976398975098482837431276857458246904231197460980452631695234805301875380483525400224406477707671781407465957191998255777298817207634292148941068687684002658430133941138413136700463533990657654947332967441281374779637470511801213096701558712482837702608672039198954626739906829759050834510561881698009896976304974663560595544923009130922052650520854572252503294280628325682826166760352396887650840244345673390360673622801941336763110633670989991831658895363840186411548698844586779839776701760392171455420081563308790121260861553971081965432910224954337022354985167232382213256020916052909879647333016404467680797546780965969012006541547947607393549798742423105858223002731998431633000102744984285008301741219003726806549267688686449593890007642336842707990621334710465514997389968051272979347336448898161651726601872399782398517184598642671710002609407073818698193996338978041770277807788060943772881825231233430633399266845980762548602596187058971177683240313578766104924180284534103993846257089975684030485882615642539812674559064628688170811124826911897716943551593596897748361515681459670113265722499132796626634921962869293865304886201548141550392601768230893063410326311587161185480208553124715373095808385487976973344778969372070609632637298618057059846651189678658741646506945411005301284695933551515202885048179071804724759718440912851676622215657704740547276566410430830975100314926088027302554830225196411239841802599330795025322445023119829731924818045382868094765328063165241969221128193149453772233535622403428621904132619665499563504748995579698312385202163959789329934218950730668044791927594891437394002764348457349559149559000697416692344674061725642156916512911227129922575019148117429068554168404727398816673451450830574441954150559705178434275447873134026592310046639111827559893113493042317777595903542993071374520471338461524386269931747171830173826333549507953432571191094365812108440452178459997443565488950136355403643920117477539019031566272615586486537984457371508472564920004457938884436273157444873410913123327640603899376474284849566404838159030122035143641342082191941934255937465310713223980291779600729140465454600972933492633475527562107558705816598796111705910243989523997814717530024101773361739905189444037746929223072316221207967599587078448079868730468514538045214271557325161377963929236077776589282738862454401903052621010052290552931294518678319703876139809631251222946286677781854416480375735919869299967054882685028002121373924434269471807753268201493530765876238430738267269848802453373328116711500248177582858730716752058314744834259629633846456386055852230699523382821637188715372812569685299576742571170290911634034161016014797896000367853461714236015836060898401710810780885412034658053937309735614583057497806431211825564277225254861407982000282970565802842360422374564925883917684144321856390255484186070734421769738570641967983627407002049258213202232480284948681555984031112417088239512854403132588761932588946543726047650674933664001827920852067904311567422622059971445181833671810695953792255164664272300399917856771565552424257854167997975608397466571854565973592444706545511800644375879543990647181896500126263591018171519296725264152221175285854290380527575009874030339643535123905395462592185379954053384478077842972047876635393247903341801373795870095209749182329086100892122858891691523330638207858423815898557817237673484643558635969604804834107279410698399665299767049395132483845945016725005191946668599880105601686864886799783557084178700631685582207478081987976773960781061268002223307839364542977068102962904712147771591784207342853323421611539067374481962116947090940735025819778229370045539225525994145051096840033918250184854412064442143485020504742040039145499887859610606512666729173088887832870554144839477560069092658340909419812208774002608630076648931273028949793464668371606604323193317928228525154098003352320765582318612774422399758106444420092609998694422836835744645728193232330857398031262978319634513531440903272179397489358843847812571289512555935432871682177296345193793708797382599130799942236710591405776117286194017643628339969050086692934715982592177152797824030142981981182666212030621492365958327446872270602121576059372928678922041512733671421542377244199296617781045184733961877312586971817452320745334603731016380367623300824558473794078042954382431432614939354134786049934191216822860551284298886183627765613818860904837325987405376405756519735219984612893812868902994874525618132404957747046565735165449246624094625713208144270768338582681801904149528516123592772548853168467699676739056809441634144922787940801113237034988724773249529566739478592336809218133901020099658895440209276198186473067280252008283487577964715417288341249515101547670868993900730331716426290132920230332947296229708806710334000476105324223380474905038393261220842811728388169662726348058498684802245045824599694788268528986103798693008259281693813252187230969878531703212928645599503628320304582807191721392018924643661597962066755088543810109927117660917489870654634196700498564859355237017312394634943789576231986150293903426539964989945934659549138372818155251537015964942802010368337354124071997160182624695835233240836950496782072771421230110572755300177467609803910971133523519009718490470839335719689248761340999222948201739929181368355487389474275011184320918351357974508589111593542114116179341504705925483584741663410740765034558761223193732795267200704563127106349284946134300042556840362810634774697344535098593299290484459151473698016530904860570505436791800658694357990623078328135780119597422404843993977701296587319702046961011948446086638567380892743027110293328276284494082818072893031948398753114385310072131869818770824132326987184335162676319323941223917409088501777191109830587024354889660849776818700912915236558721397325672504728089019337235677509299727395781909366606215577628000429906873357519552137835232929187063391172493400994689579827497679472341807479264898989569781015997937620979737344310582631856392696717648159514988762724511110760299637982255561986560914856567222138396709828666071175702949902615995911433726829458164738343446525981622327920472094997609534658141224908792888835072928984988611346731054063407047758722537988867087641782922269925536907352639935018802803807441010434319199172054129024908153622329610546449801762353118370928596352634784424866642219458064202959511955106367026025151481266591434804295845036701884277930290207188134528142631059325685860336809859484342536519861585930465453748722171020392891085918065731192493186667055483502899687748498087398635691506052257227570776671546280151242276566357828532648705638013553351536979226544850279859421424537224606958445039147917886708944608811205073641823270526794749483589957833514383432147270868068502901512836204622044669623640771072123227803544869388756028893965556624764170057734630234039088225769971661546267559611511559684978050435644372169445400904915812437990638407730677328947513792662437035006484958575586032923274909525267352502640411101959356599586417252131799368725026871574437239195122451485841949334523788702801312998188079730343109005714684440530504953459041150329764083779209989388694906035504566476310118004440995888649246413317662977103369258255038295950434351440603961217845495359773787135021403229202042070124732414171732524482129761508383974970620341299480577138252029280036852790237237685105100899738990708414788549557497482052558819600334445793440949640225166379221850408508641420713900345415446222428204924073786415279458904839686156185352144078004968168646489983844758281032486225503950999813145274770146014031496691679423168020557149605122575571483453120375892121080666232035278550957094050761788576858879987018464868552132060978983896669369183511315607488358018340076636153754210363353984850066757114125600993028456137174850246721747452246911996946813592953793539759386789316544564597939327548022081025394647744367400155832499372006599097379188337534876824514789037013650937548237318226206601051616752988388115367959857226202972159928079231408718731997953306439981156415676778430424685988568052780846110841852625672659321186402631967795287958452528572289987153745770746123472286125824416160489145918522094643355346539217687411477003356740413217290154357308591719922728041397469402692725060634248086535157020657543917832413797143716607721485434867017296009530582219827913754864332956697581537113434956459173241056566402138607644589931817364722616212286144957945463875078817329719472595643589884482413317767316978759769631240136698242093396000521706137622493349378173890303291787624760255847380523673095096301304147643395205485352343554435379789769605639248595721960714148011327876812816052467287487983271221637147260916468571617937844318361390240473114779523384940291403023527082534332380416710422366570018833007158028181373261084606093156463384559823759867366973658004114517407436146720206845834864835783461338915128545370669793373756915958571929113953184671025069053905772929990545275917670564107020868729725946297497270517515654641632792554913173157375034345131514792428526747963305737105469230515472811554174710332773421130297427235980206724810837984771741403522972905726273386376528746452351910259683156887600967739668103683963220280893317469002195556350615357881340925745775402753764408824733975323148650978572678786206599748623778711662461743335337049458135216683235001829418248748669337856202789234495204934560460076308676787284949175093094522863488969822516613646874656534398257070187545403654452988282847121145767559965196827624258253302760313568510388535372134303265985602555874872192338766653616130498989761677391745532753509933858503352359877731290003160472420755467755722553270961530128715571091469095037049907951809470026747125766235628686832476853031094155036823188177937305608937469064432848151200883611157634821447397819553788140009772855770926999784735857961137718615493010710365450393525561868284042241360432265710979658902762284895178451858171412542429725730276108512094562149804280095336296993933276779123059478230925075876250806055114123348082135585829671180025766906408606982328287761973168479242347322259503705078198794916500249520554422913691798180658461236841529831627896142517087771387622799715539075911237346648922057907953815997021091652338813369045431477955725315445206953867609297382978694528681025090800540412217490482497288188992098213177089027997949643438136554421418390639752532378031456360457270269468152734013136807972652527950871522357695666830164331681447415287629319900718315729809601664112576100432521686073691925826587585308504435097955220320970463237086209056731423279121346249223117448535270808326856881404227940827847813381529208808527483332186247497097994139483209054827737503717811960214186559771581734608484051984254103924404373445235324087527711500853799556501897650053473131953577824794246713598285876988105290708411405883391379351527630787587580489748208859839861205792388546906923848682162165588699065102159943377340960910814538492295361104339397288329723913590845222424187371104499018891502796549965500621999846654297454779581579651918029140267712025379521718015064571640325597776294468413831568566739328094340371598464027727810316070270435699329953046266120253002044693799423618436146874009184563679385629962871570093844490026935143363869052189048150319447964043659166042713708112907426335448561602744336919987241007476494314910235209296356324842870819239029349596011661526881204626486369893751989774090099620156049591041922963980436859603556927743690251768083641223387524531441779039412141391509106098577282680319538650291734733270989964172347816743115848326669685557380455225595112911073364816840424011969349466141434659528399768686153166711786195421294099476552316025834152827056681507306290485167670328931883156278791172079280493861022513964293504086788337056051026710038354230509899447140364080818994430936368533201255740832220517219411269983635333418288945060431539279072427889571345246261212863253292796360481244644706395943554712493272003609982459140840430778917330993103367760103629752810376520602131711210775002263657729683746993791593938778264658373843683164493707225173945072002536318612367453678526610411032818135224016701861325566930945115857601622640140422250485572507200630013444284877591499290211664896647737308799219601238902066864011086317712528161264109045544688985822732720640851498024425606570051522281078052914735591840221515008228080269013526630848217538112766269419877835324193962810585470559188499585636929647795586396023916675730440244589382898970140260829185392622196404193976256220225308309031364735003372899939215324767054547335901477471421862454717743300401067751037430226943497270913676470655563328653949463846480117031048997240573038973369331565251237076888440578669969422013125310034378065257923834967680356707211537565469263834358733963318688561725282406948267761275434081173463835923568543887956930301899749186302355141557741170484906394562433626397474637203472967168831405473700879855987970960953056930772463898740723954719492994861998156010294301327257569469395390154558624189768781185137918160767505528230419242673315502142682570392730925021840691893130701426530852544253567933906951466661108434376092909446801043520945525359933123146215884737036427262136494882962027563762528049224862205635924644453376887722353131989258206912979728348183484363891555236163464254235955029924543438185051167779515479093423451057591286684718561450169378018911503777618728556271176798918810186641533493809031938844083444223851994122852686392453728260234163816893948045086700840983920663032670738993986099810633673846827848109116126402008920596536220508620390159420870528453701443155493276678419282730401705969405259046286359363044295164099742796969308113660324107291082395532788761187401830147581064708357250731886690948008237183295589012803116762879904777002004870706589075316630330993750402504316730925099628290056609969442453266268016910634768960430571182720728599172515621149395515454115784456017582257956714142017824109875829671700762058535618165052495743025379613261282525486727236844078248135225028221481466526477042479578901136301209688302713600593541343203342685554122632541331720598652575312899086278472240695812428788579773997602519144013891198549242475751374965111290154827502361481864472561328738557210278162953590361460124859980291117515260688224957196978599224141030477375320996581107768863066121090975556751721705986989505381485512458947426708552329628461780247925762885609588322561993827689360890263811000704811130962233566524690477908330027211378186665555068660812096713695576351396499719286021625283035406649579855163665371379790088279076943346362034995474252628196337288447511453456568477234807892923900834291549484006086556932273673598830789752844229889490056046803808158875269472004768252721850284255224792436375225717816166249352060752068060694631068654616430683751349423451598901060644646093630989580237264474670700416027986524121331451526892996114205646714596493663930221024889318207203390782433422850598401888507925776862096540839945048524883055317820372799804407073606339913198339523009269656529339549916454252997424475241931574739170011024810551764408110673535954448794655465657309045728435968722034251082698226030077076087824720892986465593189370142524659320799970533992861043403925163581254528814595676724642948055723376274301702507803550365490580802787431014475255250196414572439907266167914397501806552060274983858773272627769902861834683531740741256676807557578029553333588397794042753801190203682290602437090882275934428563773913025310472896296709281334369524705401726811113582777085047994837544025809721111409619235539168254870706722256852402150498489460254382305218910550973902371391172629947075066244933623792583300232869888356893134093418420893119849474548575815981767866185814916246225912571426247046048214216028400294823097352271693880662008322503307743159481625290452357763682032915883356869886472772047702251186377812993752887475748514533399766243804960045677286326857866131547453778972361219127030950785839994994465926964904970129856809457504256594433965020279096384502131774995737105553946434672851126204142207776027686741522949329884627160430173097687897871554661008172132902002173363259841121465486247249611748681167575942807906438657029454819884701251440199503583370731822086747354799708207804227421824845217739540207550520053904322725063610895510252631754850334148906302137322436407273836842251130690627962229285165884980151061987638604561746355583288220299608008976089702873386974542204257229075143501406568754669694796639615052694807491836964191045891368173784726309350761840536321777805569491759567685007432632579362270498518648041189792262216101413026288759206646330092429721848739018650318998493863162401203030649099988044433370066063664547923621110409221562159132529321550829194936917424169573426939428484105786555495916325982044567143765510087538613057295250759781944068852572609259108339344212137654561338005606207904905511646507827245015911840718450884067676980082999025308137221299283864377852460469595242687194933940231171252025815490164452079476869391869465512956865717152233964327741349881043112869088544297694997623173006790780588976747976331589475943468969716904087039569524677311000582748096707550256643459220639831288871150893120310451832438776568447337426050681118515248489584722235123614703179556091813150555329556499044793708985935272493871586614487295437701715866903232278065871366740787268268858800707583718823404334805759596036479047649964988431893168480796386302635550011130902350158681907385408562767616095620696469181038419435870256036262448414065458888535018422929893123356841685517036356061686729598425910231714111546831981777248826118987947555038935056283577975033860642433043710784003221859716014115955431498884686675345722265745525893852385995361199378578509583952436622002060353367636941798030567001054717445508174980372679167017239866634648731353139382761978151510902461954396191297790386315266002020538532782690774545810066003826054563326284041952135795612675955472382951498826094314743835040971991746591763416822856754366226004661765245473524343231239402525282158326915476749098682282924350903759787668171920396372553872724413989185186444198897341666117411670019936116610174341251784412280367771239588921379105115844410639734308622792636698600568232277380777079703909493047871369815268325056839105142999306113885787235678604142887455323134823082276216140861462908942032882474840871443463973767474818897568401887860852416401229556751609690345962166763667548440517829186434997137363230281054915518999834522761867047300596383101527711705785200517632841350973032427957674960523104553927720297292185266247760231285943679158060543328949050937681628358021579228944843724342683271875662013762500946328061396070075237364098132344075692190760981296300576236010521945560173884637738065412176464407241854885825406951155801887283885887334395401221739586325322816628763975553634082225529189395088088743720500206791962326949679693889953147610366424829165031730037866366924553738389568463318639488499944019540751349971090320973788789400603889143991129181354494878675707280228912736326626598026132411229050201685095165554432405811220407676540922583635533149108971769697860275742744462306169049198940416248432141990682843024094147514762200889421286885820577967860653258692620249677782594858113149265197673186917605067606320982835826583781492141349367688628472474908505114746857448886874665025867635814073648404613084678671865576753583393706087275711283007419773002230038705224242985988468869448202150427238261350051913953953854815427255489512845635222801919338228882371661277708598877717971120225284916790755550541068717382666250581477862596401526994773417149155137867903584472142889405414074633278010809581515543757672042950689319379147553076235885312731912686606282984876709866392251505790913396669286803380453875198405630723881968907777603880507618747827377097201866701520395758064648456018130917978307064189810213562329111431394650292196214633624581837878881908340251472513925092355403267844487335972456465645567946126636821110885407373489038442508578777644154494067546230475326938624098059404923760127716930096625655832368953563941032417437427639403798496888778765323787412209043698779727924007696624702905217337183703915974750413672437948638466563059418210674507100496352279409921252313462897136136979254431096097989652499672378969688881825931988436283705904593197221854460549972324436866106713533539922302450269052604708082469330920680759093639746732290800435368049987119163489948100456362382473992250648253498503552864457397272971069576628183326633607042195237888964657038343910591896905734833323646071941904570655353235603317506902943474150806908525918589156636960383333511546810839977393539410281186016137040011108491000814586211359056283622811874808185832006739655584386188521212514821094710458459450125615945294904441332739142001871266842849852308150263739241519329203366481549424764113235018911037894564744172560525022622569045362897107376818005183948516317978943919107036862239066186814713965162367569233115291076812648582506741699354456384929223875114125760811910914478461757833226316302527498208501708153794191491082944109353160130903224680089103921718452356252407513541489316095782981822476824922210980870103958470745135499451850783353155632076091610819065381271016372634265788970246145531862058030420183763586095835657913603260752292610001632647457690609552607655601089022907405712207130789745223354116256615192409811366242779211769114939463492653591103253600301818302142571913063520919094129188365282780943674046055857145186523167954539273799854731651386495304749679577843040338161097869090044318002299904036161280275579984661652880246242146080484522864594733153556472965044676168637268192558728889643239305420729295811383046722573221998780934108199202954185291404403557675154896082781655116284335753521289042996594912001271273987477867178402176811801696446827187176661543561065699731932555636490777469084551462495486234295595939716158884985155130166438102606971436321282282100040411776914213481277225440257266809103479067672109854271417691654572744929716304141892489618081854506746933350836682154004790272987105192734569480350052601961643634914719239105159664579440075337475765300582830636985960805359494137999919653876707454949545853338884300376482258757164206162931375140040343691542940132921658954136674068303922627803189733057237931775491330259351994559912436509346127670601386451726914846424263324242620394581598275369254015534511282025291428970398540170541329576949044183985411144844215743678024028613224551297782245713166720481581262256770095408802475965419342548317976636478749384732559820216580371510326631810791896403211968788249284624291017214245825970540686129041659702877771796400972616701593753417653736510830878032398595746869989649916003656153097161691014200939862410259743067780101174905993231228995642159182224550984753071270915355949679612823594343429881456174098403794025913696342170894751911217151812497312602073342156542212536788055656594859478035515757225614455836076023964171983303654784614961711955346670225804939516682402246779800781169654901797604466050624612085409550488612333496080802240644851686528614872411372915686200901922636387008970922114811765536588992664617051144802804337391941127880298758717079480133624468084903520587575725920411513566399395805206216390157327749862130496190665237278707101277004839685546900000923620995239407327348761209752824331395609267715984783506390471283535523415506275230786258547311345179203223979428872349555574071948485573725562327136918656100946587916009538131730331475479122054868742585929134856146214245849606707346892208208741242443724336282409941609911829847936478163191697878542179848109898417973999482761471471947084242949932911513659037643806071123479886994143591690625488625296315964831595775848168046896297681269712879483203780084268591818273307805657460146997496189472248719622661249140216553175061723404690743281976696227907998347753946833290599567103006739219542997676925258728727000902450483007862329800272906472225801226488621101500439637340586186743342528729961600405596911214901677582873051250609993062562383308555780628525250366881570383933753107723880858560969484019778525132554624792783870039397524559711755875198174087009683737622057806374730888883102234929277755107913702570731367895111838251001937169549400807811277243026936199368461863549706754453926885791085002336251767755417177271003993996821592088456649418295555762437668840101778006278384009193016035937094548425008223450670136756497885837883703471298774071531220987466005121694902002520815939793412227327259057610310460474551632259599858946895714698187739222420962717607773052466570325343153517123542321519047485821431936611062309751581881983288956118622396477148914538278811181074002470387205007841386298142199470862474294106095494050873725617915182568975228972395278093361354554759325160195460628791925014666625273925691046914774515673946253010202757827201217328525389113341536177510943440057125456172909526539506845943769415305228580587998070406730661969212294366185858775341718427314043445048245790653991858641548753238423421531334713168088341395135036679380110588634607961599024806709873630225529144287748788254895297715418394233288357413556476497550112315748129141449431413231694966025325681351241517167084350635215842437326751777708088543949010346878233142629323652645901536673534401201079643569219050933312739267561381762017059870654236100424960124530148141753574178916880006811513231643028670302757711231960569947563761696977543671390803771305517976631917107605588134407325077141004817494148362750088380696708780865655098352511510078991361955468488763768782470454638433109052318828833358282473064790327006240312032670768641102443380302171034802121933047342865714750860201199244209716234338416312971176106702691999280217848004955285945210689312781785414309582292169759462599397500258515615080840967594949660773119293353151047586084600474652795745899813535575666109563668822180173855122871164998645345908895297573446057098351229027148679881700672337256170332027143380935205956661095174526220599743077154849935689054779508872366480835685317342182585282898011154645062845599681317699662718942366774596021388229832040303245935530440533227797201043610566578392247091115873334714917798155370365068093424185786355745670585971107592809417617068990300489385674104878839976199305093428850011576884896145814011514163387708289676744004998830573653587658885517513817202653537677193915072684237612451257308449366558858522476136887405315272889178315608267405122490121542727652532315543311163087919722635159204941269532774833279650607294322363475203519591138790155225501765158775857591135870384056383228209175031103507600958517926269728874836818255367110875830613988230505839612517739528071578675500524495212171613936508420420126103934345244697457146700285228095865760531413227225292010106108182723974840225016870396664863515075749276556272809925023778517383549603194164885233177755917077352574851794650622307967919176927531144466439094886106058483686775525157479832271786646940627919719135816483145558545057303439059940770846466280186804734506037201640498516701201578021468643245002434465680982936065197982799700100283358098126126230448945701420271473239545633303767619896801038959407574988293064432887732719859594161876796032888490774619964524767478258818343670854552308273009359087710123203380151273366238952776667722532493191783171776960619874753401714742585796306901177654667379280739640124568795095707146729981781088044058840163848984659105128192253060682226468365802175901615949275737867804763673551874971328612645096143426519627489738957631175534656159918847068314069651307162057014655214181162750910235879203761479441700899570461875194003337167257016551562642882760186463147748836627400931953546887033198000676364970561532726419258380450742721641692382853491210999235388042037354343675679930426125201555601466636347583841231229228758207346783164382867007472023044469483677032087211002715667875315872155520573474026215454438911076628054492115454076831685526630106947857207099139668357147337937076777644241795405955720904765161218367306815138444446036610980896686464706500095677281590115313602558773132187546631852420946729977791250369133233275567847097401998790753550474711314603278860775892218541079902527167697366237093028738824495892857161688384800907841753590768822308675584102802252634275693210029669734418989326247370381372986821290384435865366035520910901202714953657149821309033015205931951833680992976010700130539898772740380653841718049863523958697765907553675514826848124405512155206207661427207846778112907414471886105109211380510270178224510099341237415902403167742515990700361955653117785913858989189060202521863551554253075477234619758629179376340067369912859159665928778687988614374264916843093143899709681321863425350448373611301292237566062639689347301844341145035598607372834674200801905748578230771896201626464255073829034840360434392449406439432292421848440104331905772765843019981140148487251373576255730495406032243031246545557542073008068911732061713425439918023435556798897520323851179994742896694099597827067563414552379215071419167062162949158022972200413737788511044875553193411256008394521460594764718595591263121472338018070284619086398558677407400331166026473820991316264628954745499273973258870957518577753977456625141089599084900575610298165389770211840456085575797415443255512037505279304106536261627810418421474253317055280349900636511242687364146884718823891562881548381733122829278474019049650494240458173085888611683446518479746256264554346546510998711827222956278648399155953653265111527486597706355922317128958043011107653843166886021408012736867487431537139834729885071343139490739279665653918471728790058024451507942655968040385593133271024894815433006950818729839770187760440187837909726380593993948320635554931483929858609236871235961857499330555819269987050080366473481676559470304881239414028222040112746001356584664313911691093728075261267260257724430463208466241156317416456138476191337151909747478571955078343249309313171518727009280368166442735888464649254980691623507004954365439764333067296904283044666633528717778826371638752006491891613899398485757226292461974019383705651262510339466235820340037594357767350010703637351842705917282966635913393285197235215530522531068848312155242742207672896727647163979308765366385202034656904309768147372156820810847960458959229272271707032087198712717480946073648230494311630829700785250256263918430943309415445702016984106186671220205845180220720811286034845427571477042771981130234165148399771440377425366350145305000426556263501416713712427062335845938585308789109963519909306559066707760213977602742021057589718072458736825683800730013847473177349324714178173701286502678253624487373751306170943935295508708020638501515513623405896588393453142264878227710241197051420602743024003816170718825349229282497895497155058080039134377494823499097935517929743747349107516754231793259286130631263565123187908357860829121810166853744800410117926302960604368333557051178471536511205756479450410578445713258000247980348818648429189450851218106497674497999804084456120756115829817456100296551183415904378720544921597199102089659966705420154939453880733140529049872164508179664851417154205916847972175656977365199028862506207072462185879692217011996733829761642682223920789029214108492884236611832427321435102990058947970639395122159169686803126382713098032573747225042910979297159435122630201893555190280956287857194697750623103573874166135759115235774923221529837932002830504978438973654352105892446518428193186966365370214754288418779065441659342630402604847259132071043343496967600246932871320144986107340066966186030297814106398091462498017393940434528889249718285136866472656992180709116117005255677090024004719902432811817205758640798526881155415778960643906314481551914700626465187297934621041440283332230761935619792378613840300766669258848659648683927303930593695873256630644661647163619439001238946905998887492557835032852191126289417441508683617208843581874621636184054434822263849000599046919835316200834461809718718246157745153766101060126806132327300474536540897681872841064493928105021095832437923169384199826862365977785931944770241690505263525225714276917086986564234308698409103485656513924492749598428617294527772397346162134364925605099832268073263311594236808052026052131549566277906549501608440098176686268930706389697037765225867095682769165708315222510890304958703875894815835433100217370496271257778661949760883931903915621014578440683891590208235966572462832673136443976513348813027349002857004702444291915662530526064776708430247565894962909472453997357028438927591090790741147199336741579201503601623713750234757891918109001146227733482740822963244886490763639766585159752124308126467362523935074434484751675296275037637814015674688793190330101220736458659014509549493419624632450040530914149110537848753788119904539408478833440731612930195755568811047570337587130769811534489606412378559964739970657927254733985348437858943954205081840650554306983071128295109385688371600731805331036104520559273852444252932847565360148376135373441872276320886056062919779019967973327569012807989502344764587023357343308876755807564416947056488870081926125553338484576741256637445733188979706011417698513371053681070160415222027917032745469957154164283312797521237102369284910161860344998849896140182878830866258157460193653378305269580281331910340505446147649667428431101764173698320485952484139362272517358176492969057217789903145167787677318373935499271527438366455978369434503832539510243846745164591620130361438453053782465052511371454199881405314594887221367775673198521482365960220313851346512318001664355068730917192093592529774111357374526775758578910347585721441674551778810060063403718758055310110007819316227650327084156376057535165750219713490401378309135060336481659534008473097214674482454692002511132687058386026831671469819982365464562170619248256661081452670962958435018789324932856626302764493759646356144934326618801217479158917457143136219421949328623045467984257349785351441060059826828343840509998750183493323244212312318934367070134529138394911715570625979814403067012900167897368751248968602172793687689593766242816707709330666823632083770027850341912697072734323563182133458987348896963845499133763520175496762749337831761623729526963018862847490471329143150976749535595021223509993389131091347018996110900031701803214442043645189185951885917311128358540223981631925539182244136422330254542353808463499645429908206077206847738579077219049688636043837604092000253208354126745464739181189604422016808881166326596373032639339037089262504166247465506993587597253660993364096505265419551425807126167453176632735532676284211770533926779789085531298637117254460278599714625965889607138455797576091172849016160525023453372377772916473628945170520416509880188571925990759042171191877854279787994159017695731393618647110949227660333662079745642002057046652139532817297626184860226145227667103822496818823758395483782402008506092329968031627153714023384298705443407464658237939278076571533252529781095097127260294458921094579141541412758536445333269727209001380006858014292262082375559571860635695930701517601042241848364731485262316047333102987591632577330570888567822820298480199566617346452090831263919950627748581890300374854272154230322013863741168472019644882231336878343952913825905575578160079796384659415870770887757656568213579792109970909297454235855014127670521621925440930602594168462139868880056232382304560719623397389940685572709546782030331106133259900175772522766617401865946693549179877129908565361815070674338110932384567979477404672973182443424026640971438703869390843002311622100607414871010700031011574975247657832016739874760950478150542272392473606447118901351833857992979599535278090178576992021689936731758031596465258317294182161987198466191874879583801201700953504796815450799946613945927748414726334291877092293785915453401127414035565174794431916892959865996739031851437308215289239513774689343529511378287383006150653814343701133989932386540334828649441535827667207967968512567536461274818189863441442934545095464400547996444580799798313474459421471104566305414442459806591558413323439115245883413841468907695159691029865754344692478569208514324297728962237922892233250783318794590247942707562958299468772260540042872204575179828288062801711249166509602587141479597532328641623595658531498694917664296711610819806777371531897121940436112445541513842061410352612690363081922477526718534825698348647970038381074974569950949149139413847327418549643570516572391683157501868209368494372963952313460106603464874491422611925904245903954896494075254311413693691707159109760310306506511718272344959232894911518246099120638165519769678655502298388074898197243965730070135108861449065434424374116010922939690417451615016559221846818496952191972394575059919464765479212335247745969073632880225884381748231892685377867741872199491592659640501898214187057247872928325195087064024872907100327337757875630140350913615697696772659713210339922479310406282241286716034102106237080180191335018920259065314523932414042664649475571099745524216469295229110211007579813760155871770872172647558466130378583333664200262757218408454895639155337051025335082675409266927041934481035727697830088358420181682792535653061575136328271339707473811715539617372016065645036766590520340247137305618663357894487596140929776607256934566148935674765508894634153410195892185530500102986541751262929885954735354711205455543095192390102475112201238958841659804633417182495681693891924099537269541526467482301236475889261810053134703050105883360297004676603736507534073460016833870462356501612385763844931056908114096107105842632177028079295981416942842370918260404564579543755374540050648317812004325443259629644559018300583693019506966827546903242697010193829883473225491024460225224541292092959718552160277384071488224865498905586975865059563442988075631324482766069410998762033378154303115317598821583971446666360030295853701753604322992485183953246217853657454124801599191770580607472911621416494343516768343540456132337267080308672743654424474355040514421951688316765909101491320433507642318094746788706902915849502953877736012114768254089587050876147903022438682627437943477217623667880159499714301033766672193111905301402814993883752141002369032583426352866860802030320212979465922721809649165864113076925546887509737095402740447783395889567022107131186421921190782233124419824625171852940462634910127761376848332587905815636157809011763080575245381230417871061207746172678455208221541229788677311402014843316862488467077042957817353064505645663500208768882355434493134189732401211098953250945577135121738578107438744446313258690667540434227554049349754627034894750065452105553027079225277102628776320464639695250432907740229940285430627726344043900941226346629994134507620937741153274563599948377364892183557449734285172823538852035173018676799715107921567957328211290807551303603543805623079048828852775621828106856215324015754704201305125482689856241750185415292387795372950539958369039572479359292776608795257569653455451427075165243358463765105352765133224180550602497912639642075615052368856829739559688962383568346908396177394372516267450854608724776820696390168858251205273042889938936008736656405151572710445328470928536044844389039814015647174993357978091290246788858957757272078301543506120555604850099125731789783472414283656830618511884116951848343569542615249228967554702496097940435859678484063938313414959483951800728297537977609656138851995621216873247403713456122006855754415689582015190809578198927760498713038468733768883940518037216317508161038095710693669079154728810283709669618853824378218155318795228179505213019363573979113587891606837409547257101776408171621183579411003615604531891216158179819583131733214110922144870052893755156911833698081522448164860684874099920707296803448296198218824445964275100291749213090406007885798720706144221995775294730782690887927822197973763628071747541927234371065121086093147976441452031338270903173100444668640176900391212768193074633522059713992143341188675670626851034634635006510143042579035632425723824376624092355163120909262000291360139367773194205728368935489685557947160566853640024079942385148390988367924962693322588348591850861529466008288076246567424340055406761925487027994016548713407473187803167241515881214836965435652594144135049039169016698682815340868046894156257801575554227539454431417663748882741789193370085630956216923284120244593865680295339412164253948890750823306529048997984039002002707399836821896885952421292289392357395558136268770402653973903626469753026301793576696184315839446005371542270108580551504419252360499027971715019480616958777616950751637633681515398508126776884897700464997239948513957116622324842066891047542713005964094124216745232322230046031056731695178728332459485426641237523689517306483166464516713399734078002110936282050796071082701002878786467105271334263582761506697936549086166555694925217747820009711793592284958907657265420775565440706186229786260909134800154333173185509226514361018861881048200827785383847535845539456674166287975012317454576570095575274821327445619237544879015899778954969373392135560471234313820283573894760501281375701218193009352513429119157053474615470106710981866947584415469921342554928108136811549590383603880259899925084343445279779603349815409467995430419101477937143721559451432751248886571610527657585429159540656689523674224848014354132503812472297077004714056695123635623278015221415590779301633239302167354153216091754681603955138913298294476164368358399932256655409686550963499927053929802616015412345300500702877218620479719564414985113251746688364543302587835486800850843698986096604967254083980688677303633318215410353167131884876574066646300921452138529916877207427526749909784526151156288436440248025673003174064217027794798816575874341394161722970061593273627795439336351019059427879454782483912712167764439719613331931285359041975976952807223326948612980657171089768768156315908203450588398800098533910693847670585927687053860250178410402093965952358800596823640479266191168130815486908750934838324536636825255981894214451216437541225557968422991069159623017055977133875082927915342839275231413548540106437854189885993880381728396599739796864569820703188466077923154911310652706518463184329998547859697997418665530043146395232705974612929125279458760050785421814969793496885873392131429239420184116165666567730109273548359994974992685405650609968542294255808902319372660800610941816415581423378498843972503704007944930660630555283139408201176603946924661312320739324497421394106100236058227198084475978009258564027568804020747592488712246913761137458688034090188186158136942883861255289981036091834356379612534762953385440921173049714670134160266549947376831139524453241228882026897726398986898082632858432669513261257257503823606125469630149619177371680044844464492029850454433052422073581241088731937648190140070092451220849025459306431103863975077918702768998318173103645192216397631267415073102201768154111341089420961198399311334033237751179075611957498142473154981666847593439240273135788261313744352894688395361409929153126500470335061803762520744824425039761882124959831136720350489325575467895088931395053269739229449728651121251277774732727279143318513456760484075066445490993197388464903438286712986010882012218431392907547445801519452508837328067041151643767134046137714935707304768576450564292119318335839707253519385358813256192596150393676927631995078135967623555498565675559032543251892580136669280748756639402406061101590615379242302921020378585868907631218057746594441180430488669450370375867707875905649156012643826761054806225986016658211695563806055000372362715769670046331498957176636020907951002610040250342706087628448251975728686412448696513275058723403979543372066848357038942723799979708276248990334069956231108215861433363020902367042703793513573664077530991227999691265297803791001348493257136134629375223618494687478419107338519201957068847103611003430309802134491557539111284421263316405815844607571993934209437468388120697770730241078335185311567365495107748550720560490224763667417537132002951703290590020043923669916747822342899226898736900307943599312124047636046925229033203665768975804861603832381363896567847163184674643111495320843639593008764829574142927199915330524614689400073902477551283692879538627533042456899481661064325657005415199470387266746562632507915006874408243732491593560273114463423941119761986768361854523823535312820684164873776794277011453343087236954267156604308841859175326558028708805435615531246858492587675775603975521356763218361970194788704946294608515040728979549587589339888932659625797351203846906398572028256192187377822470626676361416581344687344208263388789746871275745438526818376230837974428956087083509460148921506233927589778913383816992704661169875942021887802437963561152801997764180559919180602764413614939430863089876188149365256078043471757572085462848170485466339509441861419661973690653966484696549142389098357579816581759772827410958257950881773759316794229628000620769499116836003080258742712491958437802184998659020389217749647147502469931008717482628666400662085127340489291067977596801929851240652349987772396245877640277942284759861513708313936281828426383967035141643878086478989450515244527233581696099134456830799696479657691836313107437716288962071655996020518341172787576660160644513731789123383450393513535415126790186173105306608867190341858442435573118890844763976432210905336531186136147358464738626506043035522922959807083277051587855347062002350073388324550065370012868325247024545001702295967876819643640697041198923684147138874642986464665095201442119628027775390464743804687306689255078495012838654567737554941630300792601293587175343437557224994770188641336662541847890043156849110791823569530829240600347379637651129233050438732023753111774870337162480289534838475976536764178076863443059258300232716507185045982949481546095179934867578515029880852758374435073228639220839534360903186056684605473864253158633114646637371013165011346212593331533756259735500823039726221007279425407748853246891630552711580931754189539506576192760674899067909810852059639636471686055945810388451467537886578130792843428369811816060881886698328259282276013691182965132354957213561720926508727355612088605265050403862545705019913843403189354782078843286063736146792783298570981617075448227677463395727855570287253118016413360897572262285679751829609329623346618869741211296908890719672567934984193119598346248800626780074246083797967027235884281817344818055011945544997053389453327159800344406186440848295719732917686798605251284907173052404846519088415241394556421823549459992612848235133182380148389716655156445660848138352507291731121708027955119789905195357227081102450931426715288598183421637559783756717282342128005687582228394184536703276883577762913684605042335506772668583728859297167048143485653683858074631328583796450570835017914922628602042048451802972486705255921942471601178247145194036394310669670620673383665550548245766723123205671063573170091527690202134479226997998514907049792213926190688267298548930565442953462008886801627847853111093093198038348088416289070540630079954092033311655460438516302131786564722107173344510459890424259821821861425114213147599550778878550161256772778819587868227313365127208568423441904776406593676497681635770839150563607790651857626182310527832110095749517662109243240089903381053027978291942070206180391224419780516488153443926168696352104490644525799378877157418462613617112045728172201162964670672354049834280811654517677575635612739198412119003840421174113740165602090011851363379675867556072570647239004066199373429625869476839578104850084775330651801229275468210678371697833613722194714188844068168191765617407607894474891196989811512455250088759661051099074337003326513366172128940982191591361414842153439718160755224974316216342594876098166021903141895211312314545454842665710878956692895637566550836401014606723147443666392311163986377297485912786433777460823652045086920175665604697674933173045312368209384450367154571105047510570041475311027121539217654166923866740740908791278397190005292114029500369912014818604413680822925592134786727477639244565223285205064815559723422755832482468836679460356554315605121405872093255929751215210691566709818371428982750422367469246393929998409454685781570921725961514887401134155497262122177392751463020735976256176918021868960838874132531052663564639529941772258761189574663994614941065297409556455531651563198035366416158098520699604668328119865794348358235999983422196809796275329958101579403319738167792603339389880265884499709854854384769752493234307124979993641191631528680977763613356667880540250488390868720253479723767951361503778262616381155543782423155982818910146711002673017607013844962231272072587705774094181376611471031024475608843568103576305854773190925296222029457462273307795753695379581561235993559008536217820180663226496350416923533773471530252875564562970867170402489987346002624568732182507152753188022503981352994416245133272821840105091155480209008550230627018677760471243367191077299946823734912692767802801311001749684051236235667158796055965672900820050870356010199324363312256078887251630896006220041231170697966960122134592753696479508169848630536041985067342326863355104972948654015353601466160356577491661858476012902732305282514626390000704054703367053175381190220917322157788050798721326855408366479674742229918387674846438571430317637203669901585902293674114588748584003607945098938698923061917258725117493610148965346866232307325265282112612712195060958650287452357556699319467439480064515875978863677460137003067539718538103680319831406123563691598457225192991346808356868560790124157123912302107434434767797767871774769764414712394871490560920272543070049764508983722536678977771779158176743114673328588881111778167297273836828047400010345477897347780951560495500110704988174499993636201572402866840575034890231907814750902644587929611821220978862506731984282359508860791503722899916385942622133376753685944254935697782919170340236513371344424659344653115144219895969789808702981568233566689064554285723675566667926117406090374010458523905766787406740276337981171231326184444135417575598312095163272805808508381342916424953552145934672999100417074850097276813202028456496873838916176771188962831415962109409123303801360264072802067228930833513134322665151795820996689246496507786389574387057865790141897000512436313345981695454662058190109536380358569138515239280005332985267577021209246858598626665815115338984944654716984321386011795168519819517463513773148866654932260008376651187225185861429104247825755578026805565687548940705498768257120136611752017818720042699238338495611640281376396086147391831880960737359732281365629679475640769923904356138759024489179525379915825936252612779620154266728828916220325452700010996985921819204463646421047290842264972580373904293344294436572184980831140129903003038472923730372178177946619346580475719651792482875396939939571056650196852527316534619773086388839907491612065790760614933928498278611231988903446159218878134900969159937158511377870941640109153796244178607805231320401383775169349108799592222575593531770838124581927045225001210946207572240496345738715358093291683719970732799679138954605014408829345872650751906973240041026070586381058802578240396070589491545834554327742776922761159335319461202374078451780679398643343255744599100450376971671488292082294179176472592171925727305826516135163621171549161528121145560337192735509802617930983813016101261417240591877065065572327013087135874877494758412091558445773121338486078767124299824496513820147174386059810681921824437029506830343519312858202409678372231981393156224303302170960718804270454063726633838427994145665343752700614581220684344476401403065890872776804435748312686835078648473393786667977740860928816811200664925640149488239407633701122436309641677486786064210094421359359198418987777340915552908145976046005939156725448392936890624169419702380670988518175595034751722245603044863454556495647029353644927444967664051530151499936790622143885971297661435760532072359191688106181503197575323120558328947671912277424801194905501034765025134114521646152608005833222881382876931851942285464558840786348794811443737595616490028575792778475378560264402680443001733710207207632846872123578380237488518649073878561926108654243347975317570987402826816429663381542920994673729492829666258645390767648315439948635093424008862590147397616610237655465276108238930732189577272718859962320813404353743340435898112481520651703218618853212796863637387782008086285300186768496333397756760713158885064082612365312478459607959028659706881959180226198638110319571819530185382884181338592372433327105887088434770411496309390246420132704380389475108423870418104518247575279114089628434828915458006712372270769245033970666875923633680818210386464505771573453264896771760819776239524573542723213516359607573699817869101068981669671104552879743577264480025225244234009165841619556743864603895061216831829870561615734289995186646166351130375454998327527383737678170339036126833591087007843077593366272430147223818925746595011012101368261709320169589197873903925922019303001973090352579426982155227437580325008064873230329689118558228768453857260086543494056405570501946722134534398715094748581793197340315144962156049531300147739109367297970252517397324171426401647925484040014972365904775717029599144370738757749110074784708232590271138838709904149865059971830591162568669086155919927466485359203263209847905357362624755957437734076574455956321150845489307406323580898460607268866057711523971316860707602717838380159782963642500165413930746774837850339767641927317761333268974534679352721867348226060802884861238877164871393537260712617361523528928950739936352605923003062508903239596221189878947222336226962914591317636775556799283833810219128465415306546965837519449748970381853524849270207551810171018976910474708735420895052435998772041807894238548246373176264611525969829968320787113260923333220174465835411084306451277995651977302833347754220126988838775707389208586080127284223350584769180918358965973964052290171783128582146525523258730599285096596428273099122664719881192965900200472530502987009827235366243163243199754498947097263728057420335569592796071470244168211609006262818835737298700942472373391535459972754325856773324536994661456167963134444365348618985516325845677163227827920932886689517495250284502282012290601853040316104218766908656741240719936982364968505528455985428693589665226252446538012883783212809567672136314008237694413255190685875023807391896937882431875230149874143711931320466179719711182100047641245800028577712179465317376538084976406632731317527610303977935901192163665121184940499688564868686613777111986457564352668077256824083796915818218561610090822846528591594761988009824378338203766956587781447544751480307900822381380207967883421221063947490432454588229139919367476940121356112006832007615511778310885166293741924821620591730359434933225739536129446874267457516151212156166274596247263914786461873492964840734971973286865782031788396674561970585873251616673486401167800357473375465170540173306308387679287242094262911803997885703103180175098673181996636322262395089260542611162647904013481479026977018458945163955596425119884649604800875178963795656612319507419888661002148035784078698157716025471865806249234348727578766267469550901855928256180151359664018953233147273639658069374629155860499968562293286866488439463538668450283117693670585235163407370625432275310897650784300730922710866349405579936006679836301392032595491558924837366127738974887044063719509291291391913993622343581685218093965823543865954337059044843735628654349716760011980795338880945716735837956660120736099740951484000611592789918489641336070358931121962825151616375390916353691083673997351960767923686058833161275252578972799341352697500064617678440388383737651754554947075377589999025876871566411410957928989888459582528888423778412606648369270600676478719390824202354757034309093468850164967094232291346974352041370316789208942860450857664045737375560046204148675667824979249602422288009263005074775745334379449647347556017404696578372637711592781111925050435029262579737984223799692567676478264074177998359053127822458033718656086290385819218495737906408788657666958285124053288784747876493958437811531922281785522065258479111731233597034588144146777285384113858559214741252339239333744830114307723068911677547325019870543096528008233608912440198130635251666490817959638730444083645850530302986106969326947927578280420342704608884524998267608202612433347957150381784920297879489527582799069770093785371986111437989494325718715599493436596766153182939611228857607022736613093384198709937341864391842060503286432346117649893911965858314682001148338446244148241081503802208793338684450770089190019934420236627757621531384508430878636981357251036417041971260615380698908655245137016444527025722325391352260232767460470965755861232269827586096554489481909420800007408098908008671817649762278824377557145342078544323469374168250548824424419422522297561004807580368710177292210980017414409259385562792664401134483274186715479117431183751974509484765193287311860899949271810671940085367221827948382984862718947538769599362823394725459784665788462769060944550649838483570270076850423612228740766088998664426415236062950635958961184098499809913061401408414935662520602000060427804308595176380617007607168466441779613280049123811772509388657183020226492611733718317875240354724583948953587985783622766495248733425131770109542546491174078362469256219026450920086349740482979854414735113754481477126477905312624598503448040054277939576181781979977286356261945995920451650958558747812828799119218058738337783918740116399196640849875632878339989617448583417924741530052518513897311478042593227246560839351324636610269288970685623950760802285903821652087164882025354210116334761672437174341023917355414430540346312959582418438787168278034536478506771072511310035253188807526240201617281068438162424290085590043875175425810780167904808521999580738650197330225077038381687313443885667493623108875872084886128511123910765701922927304225214109619464958968500647622021350176553716327176532018964933842370044402280575425566822051800673154609224556871404791959413670939871627970754618300850728096905655981870865649951238165579459900236936114447932467924663205770330415320175172498671382829787998148195046593664221677611922971696188486337385663568763426011762122391667930593870081695769246554871949481032678905969884401049282199660870091719143670386354539968840975982565062191350615277819996232048656661981466626363547411460931608734209569908574726974211207152831874907228422901895011730468654567647481994623751118361557948956384485980853021710505805083714850139204857858291802092834878317022761730202408843852944743470466001635086951716270735545888542102068244539904497898205309602068293725659374427015710797746630305807649335222283536320350875245041865743039428113880879497614991930629788821451472104240181475377497510011869153732709534884196636467505878213522442804699612897190775058761197582353183405581560270601637224643332534952188667374707243980445788027316319635691695882843115795240879627734316310657475464123656306731522909115418840697452211936857673130764875705884078149369106589844096236234901890957225852977456350443548727544008103986256237602660335397242611658648808797833973929494001431572833595716106094808163793445251202964199595235860834134398874762129794057405731718060763957811384368313157878177449792424053219797284536156641239549372203566749763221757015885521424511414167742890851375928236971195179439556360437183761433364978592024553269855579755426442247768408809540841975296234421982422950535369372974529119495555621346527115425734843108546362584427015526226714458086383522417038725838479979382337595355072943306431787601449504318481799849224787838292626404809227591118446589024374010995553272042040674828943260949700551120166286952376766706430858435860048263067759277277916775443413311119648359731595876470677071775552069309921084596506010887953348868477243258498255009777957380975729052661870635559588871993393522864900892772145759885576899317402080849871646644680771751075679658243857877396969387739709926188397403034246525614158594052478130781228300896080238278211815399259526002435341494128341953281281989210206840258077981522003743903536578381124703934772681142322764124707157867652011508680098313807479290030182948165147637462352305146499116739678061630458113234893758551884373208665814124439893977084987101149318460878639175314341736756946354918887069302254044791375457089536864193736077354946677926041542053680526764615625688437544589027745189784418938121355756569409846263802546408514613319319692524337456812883841459541735282390632108119394147217842436194785211872542960045731202791862355628679101504846111697062412035117008217251332616530454601893911536576782082434023845154772679509246065423362873845855816973978705922359780260040496359029062908340843063744422987214241066568993892510714286435194204547825366190534004553214698833878723120169460723725447511750827585589022064020597567982807581502628933677109480631852128406564447161699505711115393287030557098180831179992424546726504775479796326147355039334027063243143099284448785699092537872473825509236581735120557532119406969285783652204507604709250804712442201194817863258267593241687688235469717439224767004988192486313276319697878581334885259936476056168153233234442739449504727399499582260936446980092030018067346420159266279210851661430267466675652557072153708847842501107280061580781515669808653782030886760441884885301655015449941612232551164252120080214281943594746440549184620118327247919150609292888176919602886005907153936260407700058585970969917074347476028045849153713287011039081435243043089868311940504507917765867270939398132414243092534896186656185486228678449351700452873957885007550769508494142483567923761780278919613506170690750510773735536512609750059941887323454953500787669358581341847016583634120340567092044446901872727989653139574649282305026119847330266578742222461078545078978143560344566092752731791399941547619850997509530602355063458260003296949835765694582644993392327646063223940648177918606424810247409477431479200409632555184685486732698595323339096261825423120318381972990386301089563689906127775996547677939709683376114323603874416527484197678902987898582405006643062371548987797941055405499415426466557383081675434995847310811552746826430068534257565195040849032218703110989079223169921805207248718388277445360980033249081228068263104727879404347091801530282859127629722533848840337873241242513812548823061204773036259205617580844468730822008694018493554689366778373478493716731977142383819598214383258603573447485798759179643464776511849244773838213827757749070949078647143743862534051441651830672383221095604472025007842209843318789607426563026536620550323652850371603569552889811947739855385475592617455306895353236971333083402498898516958629083606262985303303487267153510580831336408512742929028703301960469247532393649340957707811342117696745949498694005525658214950750158578837714253918415033315550575873277022242043825688054241002409215102839516239514987166201443961490174446414139129586523071916876545399267639319756335884908387155831019971664362906989334536660949953597699272697457178941030376780341782100150972003585929984364000911334615345106743664396922186638334884968851986884378375263949888275422920439823010638722638761723540118608667360085182099108532293613115215244479317119441861251399560665228354707006546861263065482851746753793373066786132374646139427121146302754949962109716577791579299217690883534088291816739913657332507015167410238555731454113419562612108274677691828762362736694298917123386804947274643890784072054766120743446517136898430228829891079859740244942030246068536896268446389869081974623902294730834233677520783474707876749820927623689565444752830581982790785876546543075943526095426882975522907160456462665795904367770868750881167899211681941003368273163059707128401156605997024452088761215819989774633894223436874600484965286227048985914656529153238594207679039412317226209956541757678892895442530864974561468006961711722942956302575755300855471252596160088756483895631420633761854990866942946407972585262680958308267789653743980159279227710664747690323907936592108083977240774397559709812765948623536562063022416140879730428091324866876735201933017782732005493405901450854058287334788199397712019374199797651458711513622182984168016967811266011764238466889276577507667688576942712413771647286644231266458119274159374383028364177331808468430367298360355329018098972085085442424884887832389713838313803027733905642334092595744992606158072021116145542562143910038580422965188896481784176544709401819254068373471097008978392341861303420579957986607749643587702305364446462603970279697684149261473438543632868290044828183067488271763541491149519088012301147426498959353792834368869789546255300318417608867990990786460494647900139712801436804479033890209422319447306963577147200387035003764425173133003897422949636295105286382986848944958322873860182281776357855063162150837355149931612127672225748951687390560938463213953645033312003786669301258146725546710490914841401405794802883462447927293392124437271953148972296909063158709649199182086127566922411433112619433970258432548120666238207766196700358465090837462290594503037493043285957011415779265703106288002960509611083500938233425247900313513346617884114192369993266988440149617222760549856153021146351102676583342280593443094063136390439384946428180030129586307776162017574277951569339684392619546021256690488734365580380872592136099847979122896833555831146419084132592984133706953053992085113570732408490249498792802309183005412192205700897749199203529800462748420535752214718090595908993610338734828799193328735008509111299620987055930593741119548780547112921126339537563914074787070606984999467813323297850922698657112298581787992612220811084540157120564805380724684820886246696944682046681122813555346813203737785577843764149249880826907089065927618775041899052728164044906459381369456902632933580103718276770620944965561038662630588456729891253029534650970971197199930371822053633080754113703078309394229549842251818456033805336012809382047669633011678784816817443330112826891360035169018439188460641052781452152758429586393237530747958973467067452686286165223245048303174225428147774872093882779748220863135196088024270975001373499201391683935030106652683801671254287794306028621044428399902713504976238646051500400981228328363593166965165849253093241044363601583910520121570521637560230871343211560335647610690875161215994108170640623868605565616621515967383902138292913813061110355044635930513356377938200780371412459578150119972179094781364665164556084040731681565345892273572375997068481571437135869982972313240758583188795404845001985944277555258057875427330333329198159387720263102724236186152187648881351337742749648444982179719256689966381338949878571946538516641287871710320110598335280076897904490819166632760342268832228647275678754653651744359755313281675541865057857893685867604942865749308948072385478644363903670662020288802333873896390199282248200344024937990778416534248300209553163513065554556610070088492728360629511774080526802874977999184914260097633966911283458886084171718583679436158227935219869342053669151673967123631101362569446173878322159607314659122504851203345616523796185203395605509851286076374338469277322788268927803309186801945272772066262084210786976699161720235134149333703002434449737735876422757259658587358724048890519869819707564461430712459011660118664153118517486096075834145820085105570374083283845148697112171660782694539518372303268069231540034247745474362157959028755380620670442236845795838393776672686523130100964185708329666487548569949630498392750356540680732533664366452882788430656254498804888918735067820623049118297274051317493836876381964198052288305294706531310717965514757606201445468978284755146392168888805891642038774921221451693236618459434024138694294842804685575815537752844983394185353936229229227466113161966511738721911737797457264798437796125145244559665342851859272277363030989974203774613488504197247124544085319876049462682371012893108686070895233044498352039889394001166129806355474606798384277191441997758088394230719506025425244098640423537403707359480519398894944844621592997992241922962820291548227349036131125244471482942261174986957444220874278006528949171064420773261972414948772659571375193983226734767250825636853962457570336637433835750658980701947091550512504475202700575789261280585445703002495507133391467749227804284998261979796587722120750306046438308195047723495871867534588103183383276706898381008728815095330139893732616559018796397695149187415938747911708056232166074055506408219656219051464404565072232824250612733517957866147229111094246130228746877952331915041172039214229157951253791377215868657160268538497876672555825225193244557375957345824552386399067634677008289909373914351428529117051677900763745946300793942537204303730728438567033563806142135070458474970082728508868347349683159378444287523402190354961460791756760076594916453292800264053021490430856669980530344364875751814254423387257008494156382587119953680116179916230499581313471473663701005037199148474096636358975655032164933160734797749405062745285204540665901920024446500036838725189036287356048848968743552842250695199455288180680628945337331747941542763384138740528534807315678880905063608733452045467207507782183191428749916589672985428811692284254770274742762302830386050734918476914534986203089553199702743651746003922324540540930703127731090346558097734009982118386708916846372950467797228784325517909757341018296844890473771949856136346978811730150501140553278913187257325689460387812734790953669807791457963818961154457309452364493560597894608161483750301949670847479804943546545973117398961672113697257005617056184673231109700574044150977380044146522240667045751582140430937261616669406698507703200934006689869443302495454411342857622459013482252557668175352659659916677539276323096566601282549234620861077288399145769233463888506421521448673009129697696506232281897476247000936666179117483560949833110205884856704438357868706009300595219834066814732178712085843713748421982275005779491237548790933382918975123012731079521528071640396237273545910113399420911811355153731012085441324131644311817360602322294172480977154636348433922680966394444256172887802172801286588267025588410027812734528351469641694992360867572494126120539841796191335208222865475300832584167235727561470792230383203502038627849930673355942563140264160324797072044025392189646084774353582688610821074844510384386031942294018252397055750244866629296493697631653021011442161615115105940471944053384542966528061870751164362915903027286438658161935449355079045995128080872783087057156194579860356336478896535860980950254854687904639745226800602718736441881352874949189363071588136470847089277470087781181770543438070833384315356287402651752290326775040788424643109374372072801153141428997714232369918174566075505588754533291041366790447105779004621079024835017062294021979279477091710371012151258217444716751623459600801887345981038523439216417624575339104456329625082932845647779846775844086718956993799711533454586618365243776148438183409843673896760599364207122852272027673368900507889601621505909094674953111372834727446687504195047893335104673858979759734501347155044452076615084145194481710965487821044447352548245394316513572543804231581363048539115651713895906610635267551181468504242004653498081046375023045018586285056795317275221746538341163062773093691644027423528439147076389562528755195944077994377933899720743894930559874335467104777822602803394447011330000060330616951819830287491843364710829038084939048407615480505519106999554524123396299680133406467872893094646761579276246661632323001910468419541228188298297327478278089100510806973783404388438932652549171540631063789738553210753763899849565608991366522689479871649043209515197390962689781381513149418441389574326386454768019079574806541705818864130551268276220100336739985712170185571082920817507445108188163808982647077209250169484098393840565103102279168848226681815163405635685306036840770320117272333642150070636050685419124681798085839501861988417727649416996295559087203465120697248769605162944281049508437082893162207244512104528239022247161540545079258026135909129045134815925250002972982896331842290603454842705574450123290219686934997670860774410242524514683297397200675509447225071180461268627641430539791407626719826529103987825799915973025475682041494022506016353287024678042331130683914645365579610197591702085795905665780656777398867290521552417580553363398712911024692584755033699484212352141021791191034360417562606258512887257419099850580219166458067826032401985330996184399887986593918746622258298543616077400547020909738245606061498033321340643118182761851635328756678199446320985264214877999820832173623364008716578252318178216831013201641748680871398779086852311219966615061773357103679889598769225106329911805093789061588453892728341323743232147147962714811843132890293031852175437864418806510815340167139748233878124342198690378529541891027052460791709052519215202722337760469901854024508733110921068840162186849418957465373883580773931264192156511634111752191241655679356689002441507648686887042549106393320810771162059502657005229226888153247172015537498749029118040064053221474008445771980915902981159432626272428567695797941796548984783426036703923266745252313697647240274887574666786475040408202619125003823066082521974067200873012150257837584305311717325350901979141309085505130282368405705999046015392833816288333994385062033798126112904479368498470682900375067328220273344750405670887615068243902408399615082466366544610332864509744311563884011710218797989437059624482963885940854128822380901459477161553427863323990827803643813248155653660811271775436677220273387768036151004575568164758949269116870819556109179204028184065898731054612889937323419690776961147808499976847411170388008856688122682721970110158566635652461796867365834709117817092898791711550631138836701383885923460209926184847910497805016914365913081739715496560641787667093657419035297677140754926755155938164505614657986970878022984188373809906859545483661086300340537738233647601187988375238746580543433787627762528145087471478703006741678210740402919822837812984757002358152301001444014376044208701900354551485882691192885405117048165734429575767956674291270033353070848418435273174477772904045583281611484164995041396447118759163177209437637173048167926478768427441835022159725807586723905271824033988085215593217646875127932647157989339253259514150232969559305087630469514878554931677810387395438723169037910101049486282800181480484313854065239874776980575818995018886807388296575126601105325350781195909396354456462498182286478851182795262969343330376800599276912264291973530292830030708696216826502306069655769706457521215866940813256638866462319130575290253602521783465628336803491355977051892443753041032159562061240293993688341864388846146686826000156577443607436014888116989054777057687482135366283082471741538388549155514671710939759416396662561357369792813034693582575263411408729513569273949730010482508316677246710744845352097845523127477342209046610156249545284761800942313538200662272639298349960011538899605317698724486823211982208800100742463990219265716300108210742745400398008207393570694152983154991955696354417555263339681083491519203952804721443481341711646768688954687586931651772553471699288169890335923828192996349570695354163189810552799462976519208360360159736820335486388615480986427049270927126192815482180293724523469353130189206102300185600991199301732369882725350858533477714819746592375724929379419006755819764863976509104889750662596838719835986682442838993224808058267289252990733948060868929298969326508193055507881086548115829872401335727826515728855277525774135419725999301366513134967731459352586813480751281497662167772204822389283639980154933306361969150767221248926000108242953763516265060383492271277542453870030543553372225670293029714990887872361184086461283687231787177293220850695759096499878999840443378741598789385015835658459489679471158860398276983631005128818658839828054337225306082024635104461471725992211390593455793136485651125987325821012155210185130749453011353397846407006213117384195728747719521791726988247626090918754275828350776113532960747726275134412267782429546645509442851216310446839114504160644891275783782159309721193665362130585414182266486941875121300501484334693449817077853326831922607308022155778697753309551757228521843472420889598070897112532548035111451429445175289365597507976124532048721159999809751139965016999477010027084836393970542767663852290156239065545204443971532209615635171961006416798577167806662806287099700933981392572713592703432621168463442889825866483343271623347068049955977155310185600677737850469954275936662316981636100916420978197416274909196422003564792509251028493310915747772963568505206277561790372940448412045309386940214728628305283035891950683770658278332147007972478477778277417088371586305795704687960505228723488533928237719449148462889959655331784823644919008770377650625428870649698158962623090934142660803129625768882360173893421714460687195285746144264127422404873005544632665805706133049144363312830332491507664169078882800824041761010171159782192763381058539199157396372594558013632621843952329531678584356001741569365814126776526954893378017825194188217295298116317965661018708451488801143016773488435073553397940064827091981303167912230732908309573828323540601321432203932178140547505425844993674376586233744410109891827245588554242080194975731266567770141779641959299931422164800922893105140852515114153890708017234519852075362905700286112553956086978140714219453598016700690690903542115939783227478706039651530587255567163799342542241589882391286245066315992951037168273609423679866323133164122517591549183572071294269672588243673209470584920504753310524211616842599838605620561901873782522898449218213920113087739185363936411904986757191401905265551380454422252830608015444269341955853284444157186151371607060890835911446220215426086227838970742235603935300053179508098135502432476194133390628828357249766781084551655534854300640952280447780726536056775800271053995267696253565800755739495870298248309804465065614110580691252294215191984037943626319121109673869152314590648195719952817548098032403497728762509868702022194312976196666773174163218071986754629705316919194751690238113653647012475822760609218786318098131444505690286216809944606874424860651876884951347010813315921014684958991998156921708269003789303793295381683039040949873469688340350091492741087425206690133288694935240559248307594261523871491719420675225953597997731429064819435002460361303077075354521304080938912920911490220187520089075490923176365036885317489891310128316341458864987474106331012416289502041560094811427514655445294956095031061354426418450097319414377552109994783853571945360259928417544198467025821714920497767882724994649021865408738485760198127106275950779732303805327370729482739403581328824231075145608903177162023188511179511845385160274328247703720541835375308283174938916739363324952911670043265331981953408770859000521930695027863768840765370044177356262429573319699023037289197796373927945590534689360849121733889177706318355194116780706457264742571954199471899843057231767041812837215216425929389714599966292061994034964478425105184798858607649082826915664165251230169845684954148745954025046287838620539984418940448143975505840249921947349854586404287483841303437675653858110462307196980859943396251249579333960416788622020858728818474814394325952337848675272631487453119985601431901461051288291143762302318040702089716111488591569770092497925903928186941558954382142384900382802010197511233756637538119619922311183322826238728620092627240476280564668108116410546726550614002480451938796958468430935578841053803400252376515271661805024639814727963329852231289185763579681771584808976672383394822656068308003783518611040624234815665675113612712315527258650905637335298530537504934970887943825435104230780479135564059955476600443466925034750477307606442826107282297114970743444553463029142871480393189830807407744044509104253539646553409250971970745437292747089182237345207596584262061338074784962231034681521151017530563301589742974068386854156284407653939660025445293404215846620418742449102695396276537604507374842425113860995964393099853259525646720135211498189224399904566615631455705051406056625330194079910206698442695735230853573011816813355803292861852454408507934395797410671630277063479790812454059102645662217378105901673911154660044760670613756927084923259607969094004135628705606354285515750980986872356521303127429418874256256967985876100329535773561856543941620557354382253496595595081662296999458868395278237160367088910881596837865143970969932877852005936386630161487318390745671283629477773785526508042821974313276469784789565248883537567175383454095276578401926684798149648995365257711293914032917524270257404008382146595121775299335048171300416381254321367849760907168888694017378880007380523617972876841431015891933830850074594951062622562443184259923080380820707741228897523777698409667602698318140396204046433045611251653218396616000197885879863090788935405881904197112275889934710291084365648206248286830204162975165523477457931405517978812390094737441363979851849982398843444096741806729709445050285018449043607396348526119512337714187364754283815567951670448635262490027072461862760458913575526288648260170621532621450258657630923834085631467454779820703051509363609721948816358050300831776231423964480976580073537489390298959015371968018882199301880479936395583752441605167496487654902513793364247314289335720748453530772241588873493653444065448262006836686497807453671047023879956945553297210412630104133378308405400306591585057579935804967360082150700838624829440015719300086259521589376224651748245922940165281849007406817622073843909834748301332056784071748348121947706479554485478961155445847919234751960477719916720021402528963493400600355612100554553523915517605889964475354256113874186121888858625986043778037951052866150783405369309578762098602956470241477544645893764473839712733681240261348578705819837591544523769659159042841136015776546964533757784128382934532563421095208870427013077916528745568022348809966214917473233761613572272808469994105071267009783156798303687913980215012857418217036440726460218848690727988745420614198712612055258563802319632174322813441231095045314767497470856352847523954064721158713316254060741682287819646257852389705698045590575107850666961915076919003130373139926834434568996549123757972475429220429280640081667981908465694546895140850002806406337120861247750822186661427999600639470470146411248018644653223587584103235415679776188674948249249129432421348015408758677343354671547589547462885404234369154504720378513020867389802100777489863341609637846338594237803647291411630972791507029679091210236060178411136368155770424364762693915058397459074905005201433600459737625854508713120886163632905366344389698547511667491884903246398168046582706008476958079557350318380919748184876546853047374159997307558047232914038405026702214611736530689380047322733755686298925067455674656614231450352955462438332405887613858090085126513405666014113085513431670407285242341287409802353571098720827557980881848675972451477284745200989477779862567315677169223947477131706172012944262288623887015721404607747722200311544802766764582724508610100125053318700722357374135329302228962207565416606990261784840037104377892760950740720897680935500217600633998880373437324895967579161948218463252637302602982239233527656285557164998064781596598162708315865365157845888019206515578182679776085905208812280176024356278763012808129293722868371630623750335973936064280680689088978146981301223305670897467038284155090493677984366668964715080054241125255758721019789410411974096852495006535736178754399204010381017873266679890860700667726379874602782238882085563873756193780597527530422391266438697659611786738536858646755007604900915587181464818292486775993592339606394681357642127303644256592697059972441031933339193582270958841857700518925078408733897355142162824143640246007633799106988398280864637375655975327623502811835136490212245693297967473568191853332891370578110982258850421840457545147828503265398314712398571078840188399518690713550671378286105246249046035980926109876272067565267987490491477136203825093962878749423955603379000060608249015809617326794143850835412291644443532394088362542887821080507249173462673147057094549418869930766105550193613908281752550302211527498282860965075120484411755591327352367262072021083165031080764425252505665792316507425404001547682807812532896600973516350963532194024022781615901534089501120281352928870043367321900848534212508523189233201013516977238452913630182429145509548488814616877445477648985530607562168593217372597279705268108800314851492096833329612467328071495579371078554631876463011640880338336516305169612132599291390224047630932124898772739742891508470657269995650318988790741670609016837100413937504882026950832987010347309893773633459802981403922811522759899796114901298637035624472540749083273678512184715760191597361512995880024831935790572054087118716058376014454493247095939059325143582208587153201856381717209791407301661123619260790710733195042322698777368077511792810755720788631650566042823073766077394549171183519400964851701463548626690361652455436676145513626953815882378190050184710364519646896318950569029056590703471932166524231788493642376606494823072690970211026371325284800848201044667601500960582168801479124056550271834053152400511328999543959625352136589556836348436576158955729340966320229667380873129688872805375682828705533435827657614492180453480629497389165556619620433611570524199016531990415890848033854933197228298904053184055123861192162014215951873368914982533496567829034921541205639340883356598875691995513572072409233500518487867297098028369758663353773219540950664676018469219388200387090279471226353515368478854736736013685304880878025872588577867708390752840132167942417680918017629060415899500079149311290106229032528629137719323474556174663132167892402286376218725659283182299850011115531568539522967358140441531871724857534707854071750429818679012997612002658141601977493891641231817200167232352344215266736945297251836344290491040888070625411412429994915685248398269028446320193086319777059428748407430386824040027442042697471111545334915395489846556732176178502875706638705438007916918024616398140809247110848187530859925255111972635761697983643593921327811451714778112672846241808395594765127450732783185635820462467718448145965419748132088902381542754974594606971161421968877997209218406825535198267311861035911644371726782183060230439878170695451259444752520754737419778096337403368458095744265028630457247182196033384679010991325781250563871538471956286632762234773953057327030510065382712607825063606419923513302318511787532306430060082851714552945589713105859076076512998651857348682429868951786309627431373791646170636216989485888559734958954292414415882478335068721539447643069248514823071947740549640251895650711617576333758020547508784493420678254417520135651855748999972046908032472778958280858305072167694014201056395246114883910715500311274432113968807548158528443125114566115615802729297782269393363333627948178890820228665747129700695964259565052246268285189823173986415626290305228492613750179496753645594775656707399819113121256282941873914853772661127016150027591909013952119683713382202870965750488199489010305157906322558517627066979621174819620728658181846148881890695941341818933328510486224976037037474485982750270968097739951759948474110548130125204398013499556861891651124740795673039237413584491840813240671869593289350122241550426909708527984927586965740676075197456927415000550316110354132472007857218674058991442828588786771803905051622246692753731327921662487097739746768773418869385617697324765786785903853596977762770721208220986006389264787029301348519264900649134137041271668761861157172780111029981059081165924796413508571025903329275880522068325860024523276105749455417484476903155806896947504946798991783954873363809221800967391706771724257325905503603161642621429043106287167636001922419063924018548672051995681108948855872040673827825953791607121404156022744762095725343887140729123053467010856979626519439052511040833416397427169888105503923080300532513608653883881612689202359857844650287252532465072156848503350466624879129647558579848900547165916463261873555488945905902548610753056132415761622486484734332163609417375422064074551083799264747898294729637957057465334283289597643949181926519568547617575045766590028779220214989931436791850205408471535938075910430163109643864237197111303845182725867302588042303499039671233958601955565167905219977454501879093685302076399029330667655445112900760052972299508135589872278415457217805714449251828588847357659258876006298223435859399876171216622987200062372907091622502642963752948784166272529799810050797554164975828293284526628043341557448301356554461960408770115238452780121189420194718341086571275091614754558914311417158947964155354681221738509348516537185692466658389287352821796757691661855512339100470362955853766312382178424730299494382934930323173888788593775231856948115859099503108143250549144657522363566766718271691259472493689540170277812798866283808916789930780934719396025392987429793021130783069323790993657945376508586948174748736432585938231428838182382239376395943346664063597071923369789236656099611321846293024301388324494451171712915651277258928749675412497615375816515105837679004463154025909955964199706251613274472911316198728615207046290345083601640697888939549032605231057116814080987011177327475075274348786118683118875873389695821377773250686739835522366076183246753392933547476323301691073581074977948005446343855533238869593033366421728537421608604356837977090293244500905437972782650730323822611579468639683438421620456612916841126674107196763916084035201880523931470472890839925730155211041097187423593607474350258299768615790077281754216532375768241548436855746177712372030148905286294442224474223322601475648537553533191120125929040420072613427225001934996843204140172980921642736450314042537973665188673572418849629245056537592379311757627798957319295258428300481089883286480926193804686671017969454257329967092436548038671130718083142743146486244675889689420455971620810609465231307373574269824195123594969999542407390777039382176709117325307126783978916004601988763312836243410445355937991000236649707425191892027052829108387091017377970838629056914294440052560449194503278085514571646148868077859584599804906775337390138277659849087819577180237974817734354472140837806147784290046359433620283676932628749657531292797808215496681459708874017793464625988066154360865792825542692382352226123781818627382205495312505024694044887232860523216276692727142237676202401103149960243777580056831800263390634177897704723642481476693471049139933163687885818314111446551814442142598176292717066129386214983842544025649343893256689284497120292595031466935856842684170669789150078445927934125147740111576388117111275619429645512363763846766864842918082117445142633985351718813725559414131491468469559174784772529633721564397048073818073016354415937186602655475472021394496946940728719033656265417085646826362857790892004248776690870810643712534571430095485664008880520997956137257450866588173354535449941728135049558213775536557472208173897205144702018831926816138961931659682670893601047975826095374617128746259147164729137516926336061221284073543508559077788214847339301004144761703610005325760011959556959458154073841943061178691396104711301195332670399826175938712077740344084710846796387134187692379081697997499283984989675841385586374085420615831557859100801999155001300430345727235439368329918519081375437271542141305765141690260922433806594275060209923104033233070586143836020106821687892449818506759067339561081605792052398666381598852409923724423915582023852808359991868685811156493657808661876100686920363348925690912163258721519841094041106751433365139878142858226128839376238450567973357164554472282404556210731464931770541432046979479907009158753878733007026068074416963920500752077845852632134768113115066298458176523557851428321730539318878925901003773610902727525887147703453624120507914765761535669139364842411080223387116229774121675976809089215496862749931551196140741643748114698323125644905355459020927147563631082898265912025248724227062271179138750237358867753518404920390681506579208510932452595252081783654135230631215698053408901425161286269331147252788031733445159129013666140992020711136103685699752877983210005489338512236603092352465052342177742674635798251348640289747873536531884393314698248687858413128463921444535735550590369051765729526910061189946404194893092722941206407447893017054125719963847493787495172536642879193871477438874191222949697101875286121445182195514498134877191582294621380977957156583368462352188278194017002244810488934985210138462375729931849086934387804901522866342556589153822562688204763920170557232678735754074730954960318466751840507222293037742340455775143658558320548410198721896590492245321192382710145227058971343829128129541633579560874979511780114066185109384870155670798031450404783608949577641096563672187807493206453538942720998144439405197283742431678304314848156647828431598488642028398020933373826979479341872900508978808735603608800814907460448088175072968115911856263254900572066555880999431240075436619922949526100061386240031067490161224066297958418354668952601643415812920019576725773784566457270219959013432419103189918035949378854578164434342773274074858501211023296727964591867033143892056315963697490994471130883749510567966867463498592766874608556889716357386398868324509256182308147475002743771036578623651666531429714107446455899751609751103891648370153520999425158079963727007568908292963144118185230493619539600019005510562672216311392671712085953684096145298834989905499629891943922396882034766744338098839825647269814899472278430436402580776689033723899278601632534290310289779718556020173581430721750585933543863734782181540100836108151268401730876877766873025658047658636746202011131208446737007973576474792050679370581215729256625874447616856384932672179051223390262998282118582003113448722062342210114825166606824299753845293892377358791462505003383780947984121421809490184112196479562357527673349850469938915067471266102779479452541621138611881826045535719282504124885936915374693768914835621263069194647244832414276493566120622155977495078595901399368996549382640001932220000137905146417307889739456973784265931171119604073142796115675165598931642411195075577900947339298595792980957017672810809212659143243494657979758817482228226751879638605135095472119883148548867694931035358281617502267843485948842966840328153885267007925504787281413820640051590054470126479297619761941916169440601952542026491415280111029701531130205404593190145268071117909425079174099310850929436388307281394560195760956625782527128984494183263022430262244983818098330224408189997126923174738409215491812966438981977811430342189946598450668579623373634552341151688798165855358360395158390426646949616480424587939957492211937199049611323065589307548489716164575750715766947844013556392189696888726325819685681787419298077036433915926503776369054472804527399922286696451047548892841176664493257707116619032642648461935592449190084377052430568679063484361201153285123261695003920495797281474875496089613103544620710176112499744656390370355932007495978491838148897964910939582338117066305465987039836744930451643446789077547216707906918794677924154555538776556475951234563786867843954866059479306379840860136733164169506351918498483744833781563224911929072357893275386133593541764663724967034867507695585131687153100569841353809953242665865936655351918090242106912398586376681805431637663736028368127753252678098332954416701248764862020287531246180368624295730927546865900057395894707328423730618696240085562708425323294545155396802738102977918301884871631709373385919569154562322998325599415217867748174545209830883799670662786898111029929782935407543452483650722427101645619659155930183828059060785268329685861070567746592789871160624068277834485954039713221732755463765583210420908410628104220164373583427558841451662401465893787383809868911806943903942853520263312874711069313516048486798230413107528015365094678840002286240470690831255011593447490751317132499042486078248217549025403643732181562051863749850803912615497144950820649409965502669538132112233010799536734614579809583670355923544738463638478008118225599509776221761685932860235170284609874141974972374158430925809838410611641193784067794154430008143684659452613167576585791214828440941631856765786156117368154932762065048848653282686322957233167701593665364598560068335375713256418153517533635981399039001111874837188640763531912853314536086798077523664598536102953295976854997098499977470650379970054380081435084522562188826358447878381822123409903172687757900934230772420900674703770164002203815391553938246861569179435528799414904971613330828610326520402316161492468263814445246266063543369600295108424341529913731865043492875427410664275798141410645416658971724051190836737002978150460413296333441327182830002405872658734704965723938520311069157253397840398519244507962194681727218846878081424024567947509416847922681323629330182677160689162761101643786113008575340740693618972057214385848512919462127463948888432768454989961275832966602439405043612216299388023051992299951188044629618013212614333442192775712684337970445510012218933986720597051669032754664171482549359823956688016973926106744346140438322855791316070240363522657768237064514150870961335338884162895431183335057304745758976078494407016296260913254437842459602962151354508773801603703752063567136468762477524123865948243322462713447198540434582554156362445037056056290961201422662177452273192445681384449557263468524689750281951276196132595414971739498671524108918957032554079111028828703445806569193523306817260330119854912814130428317105131710490216550780780296132258228702428147295994619752205092996589310201782441014078129421852407200331185819677677369697491647762673548916501187736798885014077219356930829233068445210380385183438758989108808139844428013079925199001397076924089563232369553192664692311329261523000344604679211542885153356529487848648630878881035231557802305671436389270528567265803789107971967022263711475009626777941648884300366795778113675159209520618523987886015487755860644645234364725984373486642092981064791903976328390207536094118212183149919217450341153476196143907591954343311731183535638935889062296762530142697172694318231715992046112997778833407380643430629858185521501389453211946996805690379475176560687073996794978369147304932100157591994719998732693331515632290086146154145644930100392505066278578543298981316291998706057321505521158352059468163620415860420804081173625224059672977391082384185799449581867217148436614878476564069141428160685054896073580257132291442662282480596545223103817090957073145322489053940771192960288629198122079423777383379084581708161750106975077256170078698445614579754439571847286888715324144823811044905927306817714147231651858539613792513838118143269932998875397341122153811494460838737132361263479464880832643017264308807386536420621762412551161449672648014782741463501350385282753235658621211214215426399802970087513354346775602358285003312837502070426426039960937155350384995316969032874511719126015102508000252397901680691922066724057454673906587594936227013119680261414948641197791108819063485101056476567253895303376597681538907624882978437512465250646923407731317638932411743211020613091768098268870122785694202699722796419041824796022270866357730701325454612684027599934189680637382541274217552121089268372677744588916687222392374356717451988282982011998871814984156812781367851174857014089428355644515845598211295754665649261606899799667755996373124300021670186829290407831332056770270154936611511464990451609015991791967491003253587824760054573943553600862652730101019135762021658461007238613116613333125483152873674115657800223155634923136515879512771752515732892403428160645609752951378871405115577312239524705733157568820235716726782132950640462153886853121656367301761719454446015277905629343994419597422590084561325816927666775316512342607989481784062265758258237693027574319550449192798243337919037147289478372654546155685179531151495305474979115705334351478716215368223915382958321995281721787336213647439110616536825143967590431971018369853329960680923757341480509786862169029913687014830444249507953744302059374960628919143732999399329892655969397378582827011402858987821828301992883570861831450460608215737347057414057495455427732604915889730620377475334462556413227051119312330746585583509428871197690012401273117890039226908005605258974575767714203962715697167927714910766813833513159938995873272229636168866836175530174842454105553816635360621358056388224908193407944178243894547237348493116588662298567962484946383252831571357989426107670696416443764069295013091329192145595326625297940462221116598783416239171790579752678414489434306261019308294491101185586159207939158154643869501658067248546105621673717988168738541734623783571956411505294933742698924502942374298511588313646768774373861734184256897221059408074930187387232559015536026027928534649463287612622254571704216768190405944902911780870308079745889172930204621330798760217515284955030172614559685824760979440114689629247815384847388072816550032890667076648921182056606781696286473183499641734018538138876472864707947207848162925414118487183479495225378139938473298407483849166945727541493364282759689427282094601992543155657853535753158007164235308189004069795671816580374985688825639175572248118235720077914416117621625868364364514339688675577545799502950251177931582144323455013694729913986613812587415871291092410963987769279795885121779085254159672158256414916072539548377318945963696942775838073936595572120403801529281948962080643497267312544579544499436174464407617265567545362192573660773460930760133906636257120180764736209122070604041237584155676081214437586386419138145891860083407840893499305605767905451049150090070550845388442728747948377919017628666750404425333914529183842014415672058599364254955581650089058501050103130944255354617083198277188974751545344108130997258139148696948247807067410777274973671820827473829855808436128805498561948722429663479897210242349829666312773551671878865522570540332622970595812918413797077069200872273201387502022057097856004964945537624640656327231314360829165232321165740930868362800189214996019020023480756429758260180914819238797430768158872959438756580044676908969827473091997117904353224788720236040112904939266469266270665654586100595220110616916593360078577904503186031635931820240242651671004729191184442842810084847372392027079057362696029479561119284978335640231148954189653576974563288043106980594486693348367350000625403801389293900164966439442647594079467914676569778125674580126193014046025960262242474134727932409872535982532312351571227841217641655220012521901415749699005800211614044736608757246654531907370298764025243153949829261299850541050885073603567092342490052346588396695583827653087976695040151141604795439336379344846921636126386885414251169385732554069757984843294755036496889932445545607291508264075636549343929696275319585660368522468543582512970025705355672883594623146912118470617997587626425343475137559029197183722134292804285990051550309382601529782277726337890360941578882596438899510314600640215641425245072941463704939075854889697949299162191009912919087509023740697042713156553125280958191905638763297189291827655389949672658512329714755637526932701115913988232941443377950583107366688358048923617575996632785375831465266503841769168509292800750602630098866291163407051791442951579949109433370945452377771115462692767304387277972252294953186831706612066952921246222286517677533035240620839007959860644191903506641197748266611761446671695168139185526364548585131206431027336142358435298018434406229851381987787409198163106779659272289459052695365064973255979371891838066638886982287111064535115525351571009899177918414842812623765924204383003924248881367679342716998130155066008284685749549374708161449893396571613829455437528124585684038233032232525133115992324814362754916533850415406028234564622907665878420726045637061760718244477090693767018545410918430783532674331730266772632430771377262472324416956729733052903106736588616243729674089857116624990694310421528626808280864168826949565574042551133905055590101373883169302867754182699485838869424869109437546547163761538460308276280772250941186189300816233911464006283139397605868433918896130214955461904082742029466070313884255524771443417600361244967124781531085462157047073077210112314277043746647167639605044985971662055065991942688829319501565013334556708942714153861423934628761623272449810200136554286480273503068383851969984658605922825945371625350403044437739590416323958741211579872510615883534287470794829285527141444511124522074460744490933016572873077818527948135416391835160428832152975203192158067332930232190550216522504755560300243608040757315395422340085674990208262497915675435727830157288170064335544740718347675595874331109376425160230999292091828749242243015574618804595364256705973506033120583733138985522308846593461608508822332382748138903358752533673868171678340498219320070889379821313059124051989681687850041584003182941604335373151023879497662923527450511940486009459032552178841076487230080205015401337566472239613133000659909557090589938480392556174918954107772739088634253553190028728017654486484341719459104584464000951874835698981251898075246331336929351016934696405388937136389019529536757128120663432923188520077034180007729297048639576645280366277705001858023181578255627686848838607998642993810459025987537431371261431956865668621213746567798363305719312572685478534098041428595892561240207985099943153762646251684351225131538294021961702889072974840495079858731985350663606518879757696511626938739981232962442301016855198156905914884545295701827662192640838153578009095671731218796581695902068544020978324831129602377574533730049703506290399401466311913467664444243754848997172314507723716971131987020794773161641428788839912165719627488507881322612251344656210270744292378820382161821916268649378199391784564835366889873270361153709400100574433018919673928198491738548996746305626366656041067968770191844643275245897909202425932935862688835221943602965930938951946162032744476626697432049588354183455610035257043497604190069123415364771153179729246566807803143569353654466275335733938350179387019777367744815274450754185111248179732425321005550270409009315769976030032591128577830428928654733339796813733966279503259267346893260749389651927141654197865735955287458383155632434157003788933054167707894411995108403725719151633045843256785029391186279364389007625529142643147305638416258178230714709919877143890833624562910665110147897732258497698269276971405951510961087917116248807122515056426507515180489238926135236666628608417415931076097773943498284868759192102598512750132570287850950999714922570930310646395993411310546602994030092348546485255005898794604441287303553980993920155917143386733009263229824278514000377761160463657397564006459218300044584343851477931112298216843647258565599951087676014191186198525666236677571566579893588299145340208835848154330518138868514799730695273909691800904490064450075551271990364655268430301205043106406865457753692522465709032180099392622821250123556806928792217438049898768025648858584203199688118216955493292853619997979144485213087367147339967511256297894155645026115478105107250918026142094282664034401195515125727522801136106614493792542562126867852414671049520316580228775209696177687617617151148818075376664529067041300010551156600196773154247492738492042066603121048322263551479784597370694265446951769927109561815488263267690030641424497681576623927950625242330473828724203800962272791072671212465593827859783757767565302527219735624444978839227877971743540797236594864277413681370104858672296590742291467878529347436387426210125347950023825028847725961762239946336424401368930030647828125498883751536633872002408489302349979576578208972805338317528837028574362084118444663757836094092670462112868275163475019623854646462641777967065990018800770436332845394921374836573068459711650422165102596850683217176690090488155957514138454207010836786296843653817301005331843004738144802400987068725320858963069292877217907068518319077252230668006274734705961735533600496177259082040573149008298084131286369592516010424082883856868600991816674384662905692420070431133152621967392597551450033929408476094638201548536518797102667077426265674660522947958367863397776650097609524433161801815181799271379986026304938866325795517200700538657680358962631430718827155188601012965114879326209514326798918509716767443471470660901680857052485782957575349135096253438353892587255244364021629950286179589331852915887463027251280083487126851450040772216023034408117372737486573547487031173935124601258679361359576046615521984706072824010135039301869869579539975035183901868845343919245875374029666375706455847457434761812782218404913542775399656737337603575761259341717630497730248020638722543888310150787930679070058293134984788282058007706287849661788558214229871660129280866695286420572674937927168392570612726470518791471261553678715967221609450881845247066128721838979791726230812499520834893463149916820858645369709789545544776414781773966403135209390905711226512435183866244966251855821391673007449811880738999120089595534419061632764980408462781321986622996401112967170694752482664009702197105187910810039926439032274141157004864936699675214394043904883212247702812162479194334282602521492020147094781152145561385585990551694481083618801709904287257309406444638847069919036687658986103640385947224901850552424294466245826258586595749931359695463952170150588719441563279167485264180168156087345604493193432182494624737085268984531902229502838608283247115218002261487894545048070657676509180020574433050370895559646678122626385780590328616717928670235911322919382663940219577798355734744765566590093671195340474137898822971895243376580338707428902966746302346492532081244201888618446137950232002225196008618865555773956472686957791125595941227482640646155958325199790213750438833963611030373925502619971902317132684775073090476857822165753897480672909325058498746269086936306707929705239888445995774283780441308002475798528664891052988867585504451675125262721862959128652173773348746898603777316040058000196890131432446882280797655543991714958469379252244282930344683527803677783498257900631384333933334409598213121826823199888065137685758874771767602010860166678208662652586752862506832515438019966247691477916208063676003647405849269131158130431087712417176143641394402819797230224613857463198182050601838296260789717670814283420616349774237617666408431412146620630836160712529886527041101240522897443950421565064539793629183207573165568992030697066100028360201115027140891696856703820218911733888495223730568859136982625737574530408164199043751338485880004399032387337431405416222429485977891511201038032246486481377847193231078847058160472920675542203765398123090786793297633400848985971552155550032618484356992655103997004040274181304190562246913182619658353868743233648372611148208154781707666358832446331381540717665850533375653044567038268679028796995817148346482115906483419070272180123244019860720131211885863330759433278448868009411005464014888591192015505679039806991870178925551627824275036446934289421875158126250650202511724292078705736337037891152736651998942630820056953986618845426545567316588431690115970901967444094964345424391762048724573694277918912434477924010573051478459608905416104811084391438579211105884632651162207064620372979998412066330082179680064606862222209259110365932367410686518752227085397598417850617813434193735950354618213946402431665782530533943930658629166647836919722988347735021606741686068762904554566158236894072449101405482214805604822920974599553958653258649511147744209267453874483174529004579629457086347918745169255143902916852667075226576042342263674723951382662649082047495594266327765766684889240405635751831050620763850136748372647223119865379065006198951540174195745425781975477584973518575005951340118471936916010974520751456327806074283093215364922245907161002314323048994022540576964392021110554100375778350276999513205490772887501141965332219471542838274808815670334811985833652852838879397020271439836431316792127740665771840073995935484439959774025526214535674444977654673333930380887288509620089550442515412055640348638490217433331580707338131433019518373096784459051953974229007015583116598431098792307721494321329157845713607966428611047972207984063538115003113173667576214412751541383967372002177165583836217318448732758090465516037623105811310115102149412845081469373090346978263456979467298785081344251832183176445043188200784678345232360286199397654033517079022261928444373561849565206822101865520596826010061028912834779910245821534790707942738605993262187714800965773522611356316306751802610734797686488079227164667583659617933294606114436920104658046455684305801613938951887434150668045028008910628761908471540647494411003882420028067688980213209226604517917997027266521528207710523229009619003235513921350472766917509129434796655044589525194811753519865362047205965860755764589419461632952050059457661819359731558494327725303039650374031846802095841635826724556144842949219796669353341889130214767826873643382804395643175796578556509686193619085489957888737056415389511743730788032850255659112332074252972878072295810208852982169027397545405880004534444950686894964236463375297896651962854965535071934715003492683594783655934106181864578293410833030372316791911018770982273317059274162530955001075370625114355606441635982946564132755223605962501369803470274669284354585213693171923011232101390863166965681117179900905120576975648991687453038557473457548700441813319871802163790300342343695776497688263390037415464109634024178063154794574696855416771145199937241739125944077054874808445494271274507551201536035211558491093352597497205522957296717310860925835982424784485151596561141344780658646411709062290916641810461529244363025749177564923298712876355958436749398695308237042115775857194858761552536130816860614414486410568334207657840940272648796536247616729938669573479392152324212755171607467510514759802910121358614669838231268272191535707093161763956388005984052347825385884455081378150518010035028646707399240813267277000535773182033097896138799416300511569293165824426144705451822044681584978294819426625875985663678290538144477584624083541449783271611281047620532053976634965840672424930693225037685828997919167962756795045838592663606987339182490162805150944591740807907170457476011782514204616448905343361983717142532817399606677542540114889272980761243839095026096028051478650829931540250263487278359135635627356253665092314047420325078196867298487946064291308665570800492602253520337733488072025480213865030187233215019259825965269361160564470122213921684680074911107067145700715010799819081319609125479010909812513824660773450169544260743522568444378561679619847843330634240227181287190711631845367021468292060262299135827348720477153327660823543311514671277860315975390113624470600420706905418718145361635982526647256543644766190768000935827677171956991950836887228503436252625881793734532536904778094347196407083184177761491795144107315170664478621938434404033447185151209391658625363919585065083637681621582572871431401205761245840806177813928034908599269991392866796988203551444664668868398286425011445570816870008123981901408057956838048259554519797098128660821432930513179662506627905433123853816867662696689190328899885700502893650058065325006169272498015124200315764553368003573678535189460818018547341759193390343516237310953569472207568861596444930800229022236581361794299240458304424291131081227599656152402061342336886565981112749239620221616512416935093819202285859562073998487235445088252773036811236400779434294035642915535132878942048365128778486971443683771806246005169777735210471492935859108375903444005935194123308169301724770556849136335543218149798201253920956422459708811780965628447738672607370792032107562808993998977005057151040534476205213454714538239710972826635610299070999294784941569628714945229568477717579327001476116228250689238091913463171286796207171186272260932022603625629070977188640645703461342530844205709653244944302298930212550611037323590047761392208739982610001100579429046510347007453391788990406466290812040919334306435450225163086763696304523458502784272991463921136709740747918000748272271242811909219240632470465063286160740411896559543538356941766757466966436314377485615243586484346582716816664312837135774575740717318880611225469727624821268970183798720873895303023323072491030005563284063771077281096722340240300615006823974087818669349806262603723576516510950288078245447254572324831751539982459628189965314661254835960930284759575745105638484871597742719989919576583239198202265199110933160606306980872908641223994466801973064273964915754849878304917353464002758450703495137498274903841194693445563062676510082159708214438500043873461757090465540799341934486271868356175280435305462826083945660494093567426795444037166507729024687715762734810222602484866313492456392748477226113157379304949145831334025072384434139792232507433765436186048288989840299897794048482702725158591353702505517815506162665349501813622305627761887856013660212326937284342321891152715462563350252595320089645680455303068406042471869116671790701145048257635048889185693676010221230603452277949356479729031504998553447987729076361389863919930611807944622680509697363454037322299095602628140705976874487713676090062656012732805603884092797463457408191357583283815631497837019525069270972059882932123635731737943386095004686695709362734089129296337503655972419350653808038482916951257464446770191067449295973759314062780819543600391990053154537149274083405191127896186394265309163529434134031351327021753620313859415799182200769299766091764662089106717335974329280924791145915551149335002052927852991473389122638974095621885845870143548221280533728009697709846246699865449498643212797634660234891854450625808376306199456601947153568553040751993178588091747388837908051159096982592463253018776782143093471544852393270847039217744506453107134952506732968835967471270980881397894145845645361225661286613896128436033780682594736705022181236807230889141344869435822570692849726956459008668525359727405290040193835530419012125832654902114297495470465389827064747191185543295691093012156740875408613471136322604515358542779961596847794308182020455904654837275905179439258061663210279496690719205123857489041007164744089825113300588510141705152708473806567937173146643153999429953499541485185455022893026848564497326027314550116651090865399198449451022207244197591090212697145541737757249849282731964965799264789581677200164730825326336545477208641358133790280299249180967406751301328244585226772554701321856599521989545078308355084895269605353430730940798752788223573869498979484544378166832143888988580794257328856836920648982483036240934297789104973950284036566924633571793059080545928178141049893007789720064108230597648070738004279038419369296291445675684688500886391343190531604585623577499826881916235779260531572897874746566830463174298347832506636086011346811150119339579615076225121401684226910687158352296744704160635690578436454538153117628783323621751198727137792417229205128862865349474002198705792129036153095130043815913374762535945951426719292334145255461230716067981834304585468163556253613564320085539888486651894941712659871047814732670146755760454322362182894930442717339612411241533456241414201109143976384823619850900973514054377126594891094362562308736751167067881283195560927940668663658863115798066215812082947682669747116646190206365111421853470691189872381909140761281009938148483481141636898146002101837321628124657620437740771234752929591727187667733251360749910988640447491581673916758682624880834006261399573641182448822562293219829140952166976089537708229375978503991668801778203119260622730426953245995899308421441162827278106295593037466482410928773983089998416591528014901585115986251878503226424457640662682877632624357032375296969318053064771718578517785440936890014854095794650912075747613242141857409068572371822333177999903664652479245891853649885796222108662529991232617591597377520897688068679591508628683329084250478504715718846035742637035384206988217001257687006624648759160931797561237526340260151170675668887361691030706912650695126190437742366985720857712658339017022331662613043106412071961036470274832981055384944750281536091259995152615407927136402018026776661507288949967049364826093992432453498801148899057457720864083482306137253583147334565198334107953751835469831060529928242724003862851626901867258183873909790104000671835348636255587966939998779544724614470666881999142327992118761510265744218376125694711560823541816499728715754968834043325935865794071508234745497495097726877071681564370354744810529433933645535767637313959934736181498739656156509149253829161932451649961839593586444816560379858342505450664774549928124467338959475502106759697941977809700621303901759417744100190845793840687974098270615662545202008376148707871550397528317893716375420219841639911072432422270852084127656909460230889372932137716777213659035744542148012274046577478061181146069804409458932953046145828401510016965213078935860666642319591248286841344108133496125773126840920856263068621010892484227635142263789972736434459773625856534478593471185651233279035187609881578860022157364552198402879845704587456801425279299791667528808006098272793887939980221448983607123179897382825737824001789212824429765955148578987429562998116526280355278587625230496679606460433681735478554558138427927637529782494509248089125501339932185130534204072277898408641381051139650688468719110798129101221197926630317687163816566335250514384579765392327307367396637536161764185973735320866752874057212484011521897121877265127416553103483269294489229891859112231079841981300558000867453035652371542946981514061187125082172741525377820716274796710023650121958228633271395823210410861380550084385595646180733381922163072337923366518508837389207217394314080601621786988844286523834034353506880627044450078279107609725698281650602904120885879852521067698666902546540620572418551758044515500890996192675242462313018462779321026721806421919263782605802254454812887756676603016121142898282797998537822137101606667548104460359725375696377577638431678565635911364570947480023041572053039991554429024151467302287648553534707635224756447785130719347900456504698189421262206484321248454986902355340496563150118846935138356212895218679352155835850281407695656409920497202868941773147243931462022997378523004459511753447005011420926051771015194557995725006176432087651371080116203360613892171808680243950715222286219521592467962296157152858258780491911364444453238812288160900570442551226627448763806487880810148175638958682385249734896559344505330034166521440546301923748490841083378646638644410727655295882425359736409843388971845359202503265929596095974644216109159556300822219270379412635042923291897842318704517888862139148662048686585596077404003541550911439359628250751629674816917256610922917582803195454714486666357318321400117176692359709689895439666975908859883115077420895711124400252731447067721724216055158901438373654842655673289632472401234856773065962643509323579613444143141605724242298788087294745606170675952623454800972721059942121028787190269647740378377247865784607079006734043352948107728871287665416575392737156298785586025896067307565655004763066722830056071347051371049488246170309525840478893171985211872753992607154706779877635713494584982543421159572648208609794003006942530729241986829714404066962557603061061912531476143025225529965470819281139216093012991504277484293137618846315245906215665408580521432632208618465751243208242469195498692022923399538070225183114010935182962952847570341623861239692489686237121922419531049148030407646393934378916415360253234791468018368072024276291973005438659423563578451536668639936453445372912930987761246076459413386348671212282325319633462898939182259113670276411503378772720136001528821565407492425124949698060684079279339940696616729287527288186700546931230644513803039198653853849007538362237358662861069277435650281485275796639852105094204304581683187640694581400356652720419993215899829782812039177281701267108163528702663798859660061758499870086734728683681770847650671973578198350338488790727748407596993112214519952298204164754314067973478712768279888210055374457494563835938571317587086496973985588719281736200481477482874830324472379519291470444604035984508954027260885386526103137157072246009040875523835092944795513009927562718280228157238440012361500781750960237001318568063118193410496452573701871642180169659110217962260027222891077583838515901584844659146229274418064019920580605100910882386731374245664063178230542071129374645680956080776949529366652238891591943390715153466561084743738547485441520201770881625602660713203215316201593944615534429432711890750365265844565804650999484142642907820636417140844736039713550108222265579592872706769497267886012928082262429799412944068169780729256993893662403809489821107547165653481452782841458246041805510046438434309493741049362431352540750485211944672176582940456549072819218159876623054845407746578365507727585462987911632892000351280372837458217284592828190854386154875491641430555382699649659403590182151289252821635690014214538991978141460213997813826669794365656749460784525254997774479831133606504528870741675479876578772436602160707804302682740876679058139090044984620577226428998788589105056424475151282384003879061042811568740184128878927516326018602174569964842035072242280495837964242430706791763098337122961810707095748295423726076374243197113976916999939196242336899687524494840257919797092760410603008193854525509732702622414058273520521118612202379608503145706824896716288855289089112249927353051569967241606991417294912584312096137042421343361203605308678372666018948764085192937606411756974271560073272937107228412943138254537338114360741726273260109647096582950659484838788122712229611046740632230614163686334326827134526679466466491992260681269715650649048728996482485069920332963051398029531358791825796063174473341022630123350542515042984254433470202239638911861948519803498345421559778713752441325608674209998105687791694792044462710080933694917715349143001850497843355150632194924253011657735709070891097636923228592182428819432843272756855680958115011640170004512581056493479204774087057927009706861452221769556812042405825500143259645875593093512580577357405821303441626030143936027293755556178456968705319259849265260404853271561422795957873032495402602945528314425872665524029822103397381044571976617968943427674959476897788829996265493005976026946747825876695266020093148424632035269561703338865340578134453363021456402259974103281150141633418089084351529701326945772515014393162206440301328354193558089655462787029186074236831260429362365749501681146048648736452337225227475783198229293309538475511854366435377312539722165331922270983625605706410901415376274803075422260256477093998829610011465387005460232389961831681330395461259311592150272614315374313358330985584370806568916337535419351361233714395083563233354349426964012318507701073214445719192973583227420002865999135258588119776398219866487432990730827237575331465763382564829076813574443090339825633351217036150811944843094933767816813538968521052098427551667936537523441411937376063360590641868557957729878507136430597419121166641247246610324252574485647735814185851373404105838909737857020016576190823111142967435294146838939612009838726712497312732304786595501723681614344933428763622801914068940365830670915869093659992145253162908907594022108035335123856869910577645757734079482775181571783917276819415266134616554192182792707780060972481361005766788214678253041848432076218661723040450687640203360374653223373546783283698392325380186878844824811531290034404244665809640699115178838256348314775725514687997405462334452546407391368542680788818969728404490417230989253652155088154129567280440470648869225315111164265136108775823682099771540607868005995808374711904978446184520018190524920472571261609449850185940212168780966653652276026812486890427733043625096330850966800225517546453080662193386936405834529731916566819286627243493434905129895604854576502440448285837649967711928307962231904786752882183671896115254387023550064866998783645962513599780735472956361755227032346972620039903994273812769608082432450833246895965926187931682182136831203865794785539149156122420504772666347666557498825263433193595212326988374480815938825242469566541992149950401520373947296522922841730874177587059006716701160039084103580135390863493565725952907547232193389013961830484159575644432101837771030702171090094569171760327985764235313407712716117314632769894152215373387731345778108086753081137588056536868316654376476098207156665782567106385654699519594483540950743192037421713230482949440541241559194716906609837742522988265115068315822109421474915975477435722168168590254326944284693269021102119528219623408493592691921762808014548326129410841631300009706109064883548843694595211238141363709239943909317181669055408459256769520366621332234383533833241886160109087473655166044376593383513119858364460382919579964295508732748950453488970644477621900517112086850762147862202027269170884143004539017900067224671837965415346073346002345970446593579999235358498855333235662340726772202568212346097888728315305113395045896599652849607557906968734004498482376802706114534994540710684018876988755162930380587759239708801060621350045960325616377064365320560747023207663628543667966405101427028834767693984694155647084303610512700653515587871102345288056848435588940083151785012109889978019402675604449986144982523577668676111860463600208360616832375424164327874924280266252117044293434976643553919148466800879018303493665022967913347369081739135683759304551259856026814802891827334805684162372966055779400372840192191847119036694394436784491079260459338543919929960784661725577114480380066462487790428415758349061337122607062132142068662117873677856395103885664547999499618374518122368209875989651780911297236490981018546161683707571069110492159168709756952761652141610690411745885645994287044028345551807010719149802929109352228702179959838853265671723152007916427065279314360708841004619043667246777206690257723921771807135309723661977354312624852137818748572536856777558321145259531743139078692029788294694246361003390910387346465652096689437941853192845191576615317177458316204457357733788165994977958602117692917687955726500103044448020291976004904960803631856835703294344264671352405355265197168733835721730152156366915218449700714814571059192434822076371551664111499478032090584758651026694485914508549970141311562590707099797711037599534966733868502845487005164968714330744504779546800481222672875471054736953167668414096216103019786775387837514121269213485215323569454937654553843269747682677995343616423910633551605997606188637888039660457100022696982697878588896659499655347471114039498516359669886529571786823867549158678951222080126299026780903648533422520753698080833888576489364966465428876386285077281040207531993924300232394515581893274764573528903033380243244189507524284791741582370123323769497165210838104401889198258458925808742878300356133361104843305757245532115154188212639921216565887602275002354265312036342878595843236833057584181611975741298031375011550419581826595703412121090783709014519710337307511500629008473928730486464127883821168361548242581742028217142029860353992766867761800852530987528523559210777339496311387983093319527570546527200572379300033850828226798505328708228878838975050788567982660379658732628219160594656496263284002387571377074113670180244214865393948093060929763003188435142336122098163418264179010561066509302292770894347995909229839606326569885986026726053508632553531843447813507550911277176065401901404203276669037567038793707942933247396891531150739390498416402025736474075005456890870071295049933119780906218111804742607093685162290367643792197839072812288297122645786634296268782108940905253169510047251045815016403060521179339390557961435580664986547028315365348699695698181127391262100563722501337135619077986920296531955653898874035065959734625016056700918264357299614237567587117829556217621845500740174172755784504230254097346098691320057471184777460469605947367021718699714337025255531917450726049965699788565909613153765054474178298200148326512144711101917365495790441835374385595179945450007144087145145321831493289841211577121591037798705813736121841227090873954047611072530705515426091870500132767199783483871673950838741375169773687881226060311477606842196554536075804072061371432406821857083762409636421499377831638350804146914945891657123047351225398183279131084608229099534609941493932954235988116848537365187995120179472211547140723623099968356858958989676591052083670383970003692741659464763016960622404760122337830943618249057951628702359975589717639248475684353049067872475246596127280663856902879077656702715195473057310622937532831861643417979968964325277682161741741707289455281558136186930315637751830312351864579785353201325423866213982257322894967188962541191585471654307797964073177862155004012594045029115498669838933898556342574045644840051132316563219598844448864887919735680335432916533995112039689580568822509259375691285403130088369454817080913965040279814246800544715069306921748689944149970551526489293181393081691594810105573753374731388354323801401364740938160843842296425562403066677336101663661133212665917862387414088789029338911796360566790460362599188990763913771511641876007503089774340481364368774409552616579562925928034992552115361454691138149345326221079065782886445243163954757907898875084839110190345844439071344127516650117086918164524045586807238945998115005020864680749138094560898650519606849614936971248899369039040970813444193759295535832320331366331012437846663358543939567784217995936542684483309860030194216942082553601444325691393942885603869161479420019334067479168504219672930177409035000001626708623778599224757015818793857373915503010512160368895390046638381953151967972654250427266264779307288918365649920087242714798508713639662176682726172969012356842789002586710091139520836400384587215601376466356604749089971033253748479616072543755511688092615331754998389479659599090126001432091698120313188516744360320485864843247758172960209561332717294809109067336859110151773861434629489506937672159874879501726041656607235796088475152627340372462420535052946249312615709630333820353608274651804210901498695750631440395259068136928178309435083585315222554459059309475878863780303807976340817758886456579402735439078829016096491905019735796979102346097910624048693574384227414354811307267007212609033513658816701588839837885000334246995384893792424273701502265436751609326729669457991271431281489388466326328631539306777653208290868062680753991923926288135812884278794533338516158663135795999581780938648251022887035016602475641759971759449497028819033027273981200620234521283060358953193429492461049429625044949970095503539991159528720493712060118008446634222709095695495980388144223787270704551697922090954907057650832863848445683357412809181598188557229682653620426638266199355284617986222543011314620198233544028722451589129280431005460120600415811634751587674411059144965513388292037945555680138782494933704973314055858576564713104447722507987102432399714136721243219011834873379330347217706695687918954001529858062416984388746223123494401620538084706002235319413296655838869863286334240512392526241332817410651995684590740013431046267533488873089675562822085113877885291081929935323871268192788366950915871753151602390685128830178164399621062945718867705323842900828423432563255354804595253862467022207327512119206678268827617241967925252674382529967503918142770176241051063991293358087883913370193564538169875634520464541553965372747785860893378930900450882587798823797510524490719791161290027876868520268477465786996879761375567946646783796786972223962053370141935695147236925494068123587694719318879200922782207271350237248336555487568714990612297247363639324285963550334981980712344263271581127965465726126836532515873528889014812463633779343371179706852420033766067809971745817569581659528681677978074420517343553688014895637772190676668633943464379641783204926234060598215152556458253311268193098872821446473139883982652002386008417788872032660764063888749352013127743553978958109299121408499135468569983980101891763865960824691827623842042766748332839352085150846470544817680235791740757760500169450083732746285278556685917581621883972653056630548362922682023043605061186598665038757650250801733707431017916340979764966735996563779427222135198938124050325660911682063981303920531595068655241419153385102390193937077488983059403547354865695869772032017692703076166647880600792896112811918476862796703311869546010250733965952046091214157758629558282401598594418649683907284717383565368902536064526654344346397671147714546565120692522393683453167967536032116349528576630834416015730019249943022833075548523400459975971556826356362601205046741542134480911771784341228965807176701000110679193572990586670065355274587768061071481466342709597496273094824179370321487229986033853505274082583456582134408601051549009785234999364791689053045148427649256381965061512694443578855212931890843009469787472786336719218324483959705444003868353868206715568955099665332042695207089924506734989690063545448708239112159025589513425999466919458105142266572993312224926863729492084099567808592827598082121683655723610872547337406321657984304000277882006896533485551159897658727321024103279140738143278537114985608132623880734067252160681906392882265615524681549205958850485547691916609531722099811460327202101271726822960781109136186656472326542286185259856181801744085154891635249051068577330773231962946110183297961456262510036519957484966350741686827887710171653405456770911957419403967569942452825385876304160260676819765435040894055146746615586987145671799460241607006820545678540823598621444613637463276695851685497512921641458590171632228504392138209231713952984537923489056901515667306414178969101671468715162285637821705304107972997366351798729328374635742087104931774179155053122677160287497356203534469019928511887600530748011794636387337065412960968868713336701958349117834254092515769922816065579514352255154482900872728425166187002480161492273011662382523520159984032067881499481238099838074122211020542231885159632778531116655207528481989150531625692738161882300917936618760349569778224033613886890758111933557654900913093668719213619167009694405178826437338854044881541183328619214174641599663351834635309010776010802726913598463954506303684494263243091417208896196080991394762799997491665030967479825898893146119165962618587184192543578659691356330320287869007075189126726553030493654545826823971023242906666372465880292632116691537785246593449278426327649061376246123717610584608807429486448928983110436383863230381085511879894609109166075468188361990443261309512937729945072574632465196804424925408478783884916268144469128989534026923795647340053251979441058971229306105496031334500084825683958631618606991706990880480754229716953591228451370828659872242992925553428223225752912449359731602761968705018662081881076980481058560297008591362001600056114042044207232121377519075512984113910803385530208648977599757940646673295473001605857983928063321662971851637741753891749034462264444083235602571941046375341184886508927549738151179333375281548542789815944218592586492834467762365591687699054767178059294041995605556300832403491378240845608576878973739867044903784555485283998329621750092594014221734896328577395881369106349611356823884063952851814330132609395124233118191094648562749949094851722048252938050538662145171649834089427245538011634345763840270758294251744779088101606097619492398051628095391414588880657997724003509341036144636017656938636195806383007829958344444370382180707726827496215298447416378797788375403510997516510460120474122998263070057313097997351406839434421837034328193141438863015595993393752020197770782292862284788282635475265177504172085912088133933055522275019619906836034145717283282578388558775949199725214645426149553353016526528329293184452638868513786002424614182896759638895657022847321745812118646103825308924760517166390618626954060173501109881753105713818009306169106839426060286314026384533095975344415708444170993404061579038680219152928323251212346578335496758362733347266735699993767857500839795697531373849684906371258537228440228186587489275259069170327064142810592890967119559555770061005729087408428291201235299104811506450516169350444695088099146000734774247522429172215923627517100702322665618575025933945077565588779382800761151882555913023481282282272520689726768555164901918714580843083213245225405147889383042842955268774876919198449569441679966921224211651681633386299607675477957804095939897740547673869114485407163405678717099101809293476582380862531681379073992510588217345814674844022149249908864975488153071031473971170695638487785156298478834221817718145022847966246482468271618975224766120326897023414017238524373541750074791670341859063385393875897917022787112761318798033206013990134430575037053614308814562170509230402745662795708500779775605707341940337705449028414190072208967620742446161013760136637558751336536180728925233658389725261029244501654133002438306346856620432811973731615672665302699115940347316886764334620138447529160670107160353879453972047322928445910037993529631305998135848831415311280461878130483663755388813513086003755254423728977935079223250948324518977278171148984740501763182282014322018544313404786059359991506977673160666980959750308096905892318271562482919142995303452440676759113082033749156674678948164415915522900572771003803676586735972587370528129863652904293009307369551135831756915331240993099186237715644867548144718233252685386587257982489059185431304183804583786325849113612986524929756973828221916023926990576328865368433366027434634548650296863051000985609185631275665191022914682869876824460347194294909391389687076267134812502327731186942290696375565338999970298900593957380220625006656736711926475993705491104087497465408041154557824098794960093342491681559771440766967577919741866091041231563729043711905788225094082497857970547647593786376250182540149074760618279085468677519802509283984262130188789159646646849155561032195040842115447952987487522167850964079533760517128389505466601302582849490671268714852081212649851581479081578063225992450806370881898846814064460381082350014311590458264729435466128954465674085673698366691664816204381202211494173295866078014821114846612604166970535389464699026145543160023932137802682111863714019378313163353018380338898886191667496209267682895710251564717360607926174217168850204081739562472145204248744618426315588253922595990664016144666151178545186372797541084462210034819422606764415944119625287379695125043537862844537005579372526510741501391476558011197831905252782008890662899297782142579471450797122787378643561363319849177624051133197020695344666312554826003093283547812912764812850021886792343198787737550365410707470725499136584754153249034392390169916718824371167900628131056852362738629721932043338699406913212882083120603873477752141731885330075408679175804011002686703463175541744846461459441651713627058193923955839920949979994619504886363423802154214820700328492442755335637685604461241507244423750527906257576354298085297011565594823275119843017059296747168360466606819335628014017974131977407684606505766823528241016804986162269782140233011093717035148524798772548996459667874139070960119421707952530881955777523603666593557714477716179427232605227524858029602982655934099733934243785077481750865174516788773931525182905040205850134792247099406201253953511649068702951137988680131803076301697746112332923273691337916311603300753717130801779195418264094645911104137253829886072790583842149106965007716097639799710085996799708287803543250865371923187111534076720269804420996413759751358422111512251795346026614046466046854969182627841181769473437347449685070129255801288642125111173824841222747103881233655817406497309419903142024317368166010405632914331909463130989414594662876223661103789585963938846321756257813581719508284156338909459818706481045381160654299639955274446448897179617369085968031314333499957574409108456299712838704999613042901495114280855269249029415768184299760066971446808788475610381826743937122514608503486258464651837875145610220034322023576893514299503595218314478439573577772525453073463676804692027496130329001286895133403637202455124766111325457945635944389299690343181598117595116552973959399889161950676711252606867685208465968346813227308336199307442048895046862185548220615395416188106238682847116447595044273253412650098043459715577471573410744441678924312346975559983384523359965645033646523833458673166178207714938632735805444306272714003632473754982506226820114532093131685773561942311405313658661351670109147099445511859166108053416471059955217873240285797444268387594703759401031560654651395311882841240347588430491694228583282674356088552423691475096527642199137971443512388479448874414760918280607124033430470238598758682291030479888876543077841526929777703536932589251306258595690016669591247131112105688664274895203175088329264886676170759957628859384972481548315629661994555742021265784494267828178381725600873701883227927643202389987198447544064128174845507697830119013221387107883890551687831530296433629616903203419638908641680116026443525288026797270496763177560093814968703743793673141055557856877566347059276786506025055436403547870732431520414781844762168201362886131600734315828443510417868718337070211185446542117076942387730465536347615193144331538059414671657109114094970182227217617277773769241916003564196202300936121516086106205599439243418950823841913073460895101314329830645088914997846346266032739538075502535846343769843793989601467738193186825768689424157271245374591374465057056922569928345181190863506896654316216180794059113827524209408650349508888092888931948406755980065000637255221435905975898705159698266678567418217862854806610286348992980603780255802455617664663837179775980665192849574522985890047517895489221170044112499803433597274967606968081865516779724301486135277792482530447764162728161126754665051248856619604374758169439647547430157527338699365221997044087541097248552807658417520382687115858757463868298741200784995179057962887078513077670417242626645295544312459249827903948517724151585379457641258814972196378264336926652310050549692276285639270163365445592697818814649882647816256623880168444161657091916051938868415843936687441042959019939886593874409406869006978771658236325015544172531244829878824100737762685322333884138123095258268212933746818854486800739077532688724700136472730308005366221741922084192980522459770054698004614338989430941746950489171068278277572263904093333350143818137557885015166972619571561688410829623437156377064533043003280116791300321647129287326329877167454306479344657138203746884414740651468291265096880971218721080933008999246318838443135448317489773958542216545881825269018111632835215192206228248328791076722302597201777959110797348897931213440232550888851604965944856449927970333908639346142176669758739879592021585839789352162049721888576317489147033853549832325819724024668128287351038375939182796632609644835245446032939805010107168383767405430029057087895636951770248200604131015910152008393493414979332606962568992981377904756744082897997138472239190477642135037415320262517011052622385654079925348082271954617624690567763226058475612767331827587485021902253205460556578327013786568002036914854583498498523126137198869071065471343770398230162489721642601867557357903209682834636684890496942731479135651963505415306331023924520901715421547134432719899428886169902061322901603598246764615340434634275594857274109337781007611838411186257649114829523543726703120446723990884156516521280040517749046325170910627329367999866962632998886328731962635395470559655651278747215985409176518878645867783179618071731835716673766820186933409561208903004949577452543560551380274950223992506249303305621412293893958446593566275617062394431406747052324869677795786052052488487726049152674372587826539396241399116036005688567383827886069541561548613316498686550453738856008124800370052741694889482193246265009315389544288169437700160915015194827548508603451203543979047790741906102875405347148165806864326607799860761770918927160957793086337167977281400617934326393418752785437689754197907791281823288102152529351764927018625913344116852903024653685901102899365191676042072499562812744091703446889740799563248545449903130110279402173564639529333238228967638631015151573554472753390839379756961882086456144569685633779345771138009360364937170388945833847851720879680801972019134925193185353136967283328077547176636971277119536292498420452481067685406181465891214080249272171640299557600333456050257446048235696776358490709935487684326291312976632623305548832963455864172536066736320510394358606360706488230593205240783264261780151828816043275180833298158943920559532653838222497258812887717241807150388398527452052294194110680085227849799917726033214509728773304772342824156592014211694753906983334901030048418493664457133960635433353653825291909550659425781349043025270988429730223211230569111211325185072572304050952575505706349103419758168268833256579270584019798269098935415824181611901777885084240366209441916089910409991220323725241353858199122951341874343977678527233265111541526929186993761783091563520586032677657631961522055372030987624908244664283807020753140108413894019586444641992105953147600024978710950507693071906500558555474217842903786472680126295522995018037089211124796566113350021849867777822854726356894135753107545025668923586082098018883261812362097896675842655056497519577470396020291565269422082978685237977354008986844468196190675057554823329955403798060459953954479371436410541650962469932905278438465539473386572949672757187746971499831183104044733640971721893223088180936877593016060286167676461034756096888656580320900743507570482359894156196973468397387883588461508496124632943624441671539580617879785717025276485567232564701740315366958098044544735486475480323284037557587712842603412745248855215023358048708528068398741729922159866470367138483604791865038949914032041311884390274164697393513355281860687071478965282674699544790027961679412087747785168530568510300322298737724499156508363281453691637088896694961411561440187467102738206964874285965455597758715281716908751188702571579563437848080764574137804196707202231513337175330502300693310371194691308972026407457113559355741812030410666066851254555458269169343174181559745228394915837983998245356723701173132464101297199087925757535998291744369937831136733736116039031153508116841394345991085612730701341998621645547057094709759435027004501987524256634936740784651374311314289292750569394337970605949368327618797454913415541706103156669726707959176229979704548978045967868939542116145675176530315540776437819077285894303005249424207228244338421338850480296890931623502107387809697510674874792139882632506048724231494205773139488342246466564230153886121981600802467732477573614765153174709728520745048015405240419397159601094184029571223799920837642146373455991299747487808294895908896332486791037781232807552738429321368600458592879015301225830330034895081206997606315613231201135132288754793578060115895445139020050103284988696052988230455555657581868984547215759422271259895288318910013527798389515185243681808343880624022321837605607539957377537638456508235595470875289979036011842352154115753052768438350648540525317698063754861222088950894398127533755333167752051975676005706886250041261021469887579330209058865747851732059234499012437436456837112768621879613162994552907791679497475605750160337942735661126649135581079752545326682007712912097001630040107052912330034087187839392472741798449391680409998647618467466045866160584267103632113718090296560487623464457596925266275758259145056565382706618537088841848768476005687407223330282847228556853970511728185582514070903894204755662039341419169588934454117624346513832362949387599733683822385567714805161690439720751466220281248265382042384092812203281574283773878657939264260074654155125975501655998699276209607740279082141148270650690752627178724457510879650549239822439318330814666865240156411380356942491740486556936423697957695240861711323535291131769815269557139540794092542025175224876445105427662684745325291538216607985726281956717585420309589777626589979393945526023396907543097639019873582317396120385960695060238248138482849855775485865140009283714159061026367310028768275618911998264597504597188209173801278715729665416573734797906935684093722557720724143658951791313206609164133059327222235014821428376373069447403911427170729251745509211603531590986666432418149611997680720258039120079620639812217336841173573377434344577684851467149602106320835723698879328543724134963453235058714893944350059858590456404763456143045113319619024931663816145182150962915866755640433624935500308607900616966305749805128553606124524313130916230707559724242001008279020091180804783017359880909034308348181200615053883701589563894058018988735180670531077779779550468241593049497440378677796761183136607601053010125193011781787894586723677673118025001302699709411023997524849013259103017283130305125204652389430801883030793246834922748688421495902027697383983107845668472931173147592891471098366643593914130314497386017036455551390912068776364120401054097201488274721960319397191009509476843601105486512212306322817217697264844002820791544042150063547689537236128754665080172568622894396517875203438550835160246248402116405844693406189677187493911095083812145506789483683723464306952832691491527535923582238641977724987080154475273096394249385136626643634496984925233632989300540816875616362236058219731982517097105224163270362997468965706366258038129316541114228203151172765437695468668503412359633257114532431371257507722968904376070324566435553275216615337161370150074974708194206153207377840191205339569768356623860859207368231253220058466787563474259117209707548990636791546414621491235983807747523727675689197854921276227247945303820858126501043541463730341165325726328655183985757294029784096975273053186533992227012878431815528602747276640814327509579351848066896651586588384601812048942761356330678592889020351656197107315411174715415902802305487354582721256399129203864501224419600621429594353510215284268324709731326815996887886998706062485488023847894448611142800587736175100169583299683332634671615852079308702038277803054490167183258657891760864222340647909015128806807450686684144149978092777464732116840658764157754499680099390988203913885131660120121138320483446418690901536456302262929152025868228112604857055681808687082266360690203518391137164200731478106389243093557762346923436726131350665860676803801115038796900835665985178778335996321659734238220075195102286765868064193851067593392717460007356538321695265568814031327744837972953559087226045760658948518328896831801696408329237243066995106644141668059923191221639842149916100723370624955463725565811844030991593937770462414298014028233854744381478647263765966279371597097025350673778197003616894158601482637472873321327771987210071368673445743329303248184685008056078402426274458966851841438127140891826150406131775731845869479552872134883682924687187424416145120828639579597350160872801379864801144382449268834925898638713202806724886525897322689447448170112800652146523670479243234134063090847156239055782373726732109709988137737650719586407637701427525429193400311755290850998104140498748283938986614674888330965717575903889425536944323622666819635595404790499726876894071489138475817142693092789477138792335486020527359008603298615597566484261013174389676900176983684652386143951694411800897927935912195875121567423211645307614441166497575902773738083204879981679418689221143877392087531310727899847548280788284863827046181796496864099024704347763885722051590911522724269215000141944674426738630670443183890720401934464282550980816530489949438376714740676627799277638275686402693684024022517925833089682024015998200015454362229682052231017735610852807541221268336783667515092644262834403925007950308369376037312479908888456365405349751360251966090693106666059119746456094312125029984265104812346420254215487510218719216679682168544726950897377616355322301851106065024560247893324930142121634559431404179279773315690704765305180973209536225731275642318405719232601793585725944048016325094710113959778544450275773178541918636170831920153231910790770458693406535869302114712500064271328403366282849358923539641433183313096116153274324524225363127826548403877274346290478588595393726104485779682501068419643854245604801769793714012237412506987976038578106723094989506326553970158704145144044631549621249929771477811785186166824945472038643702763077310114747634387343456764358907793315866700386629740140238748432056247578621504855208818994276085186535767182262533220925369816261113829913396456371438710364821890281857731882186463991348688448023589458910284680240034213853550112747576917612029414645226673922701066879564671386337323309489140691989880039379926720606016884997778822057733021025938016265006060268600616020428210305037017018100269931397244575053263684685960413442491949784665321173731700714211943496475354766335555198292084143958759501897115294517083983225402100159650144192405279236567801450620119874756046014641981318979435231443517690336164374461162026765911534398784266346519246055568325390710806516695777193039507765160999343246176984147384780588213283137537158355684565901393230977616773657754084397474948859235948321023418417083328016182778581871910853700030463819283996556523580644096795905727438340492093392601284384521964266182213397429881071196666031652806591828722570857795814840556064309759348449258430355464040903792538476210244142101741177679760581640977437365586927037677063959244424962134858375851649258119261140787613877491656815634070343044684696046315090859821779415645570830560794394409899606539261016529744749935148927047965808126452616113902722981569261290991723944217162900416729706337149535415719797403565557274075019823110538050450727133817645597936723924403084555133299510894562465334309258748694315073215883863959034552749445798784168559112609202258239347709407218176172398637778867192893493778004637817327520243220477623828619870778720184474337929907739733862840825272128088356717792363352711826409723211830917838944453662855883971443081144279121454616377067613270229399834856748689331306722536139462740262784449201970682605572504298823984876946653172255682845129241069620675469155981201032447417349624100085815871872714005618193871076116719173092358573998218945363155151294117304293908964182926199379578211452857802108395746566239461489905543778609280894539950475318361616165381076282365412517849052915033543681066512508215822655549068338385292045024560366750749163527027468282801826320761166982695417143046812079536255162934653629336430322988159754043471257034882944014911591572933614645312481532200111486653849047405187203322824675059791797880404370390094434567296835796668920964764439736374697490149666824197916831291388813861554201778657559484533752483833477052658920388979308525771208779512149191383658143463103809852573115614803746469381695510298196448924636755151756427092959382479417633283868178697217841386682096124529630612766453650438030698316951131698113512772844267581155817456005170618580621859501503915751916117474969036497485865025691132044803689371320957560206139055597038987973293259298183444994928711860330424105254660526328072202649388155185180328338972543628938399720720157495477027328816001795494165258890867039596633787725613014017593969812705295326063654254125908471676557506783948699620328349633139466208657117442939602923391838278144895176139406657331247129105463960740910928859285699904442819677819475426936646668668503397255901491560853318470052834874429700959098419072024316320154215982536622570965920640061748078089003141685442539487941946951412057640783818635634099615787887652712789094923453735151135290210772806994841489540025671637776835839457012071445782792023213411146418240900622908980972808743609743505603828318777589446681547168145266178892557325633506427211863823148667863705694980798419777176744992463696618954587905634190359894460659802313271486426835299175717754129421338496583456811114332019763243311881463081000660818945262435008868219589055844324300329660285482224604383733728733522944307041292586182769025695198668243415734040964861736652007111548806163833515257477465186676368591292555249594950927164708653164220589909666685724473721428797839730754126137819865272224358094457404151750440138986937511560266083374558865949000933235773135279880320310205868739442047591427389557322136500867258119358748459045741742457485178844728106012209916999114401983686895727656280456147624333458108126945688161177000622578396166729897566459929788923755570670733970287201279116493479503296091141522453632111624034746884981605022684125937258788519868287224417953842646527368283685152072709626056523241732010470112045453257611235804508471582174454193162059963413033860460046649059494489882294146345250697240950553511703912361554222853470059453245004259348789484389728702041940159290213020037907833139607288404896548737453932950877386527284412037268035614381468018382793453038213954375801265477445023151295183134566780219032671972811335305906084476494943990747117327425472072431490847692694537877469110827176152454534709385531229955254898581658399192674329363098813269387522195212760650537756691578815728601880759668009720385516896939062367014334427686910543927653825700162305045121685935312809406454423884045419342708357946176149636656990417868881050158280966132562040352425937596396774974979378883390859004939002807216024516585523354872818244694852796334122851859890010621289267955104945974213992406855621171883069463448701680524767852188298937539830374270690518990250839027856186117635830676698911277226776801352342444221217037774930633834845465015427740984106950912567794241109030078245758965761375408910085178063238266182393658055617422701698236154727247413449197733451708519530278325022643475010058198775881441103167939610057122501395377400992140909589133574615062598111767237192387335398580379809636723933171773664576909680737991396958223920780524963900646827987093581357585544838346785215457926186751172562597575269984690437249563646018219147355835699004930847909077815259863486510153501044101329035977031623371217467995352555263967297516252507039594367936651101028210681877587448666217057746138284092654581928126153777936961835325645049920929243424058031672899234453460571944865527826913796554075632915583802825717959518275424039059990467394936850902496476634956974879715406013254068989688652544440641571935061146206943144694105876047403959631023410705200819114289360047394919961092708188376165826457944750222804976260673561203086888310613746940478799056246527139337789146713528352676470794356199281440379601653727703484916547355934884904320169090386969999069754373409309682013995270332413117049896137807840331724789764844848335937769187137614610579935684383449103422037264480896764708413703339978165619956647623839435692160557957387119272663790396195001562288028523226557041178949449608411447590936195193819783694457974680477929447445249247347224134744803947370725285327889836894079827138521828111595831810397710833641086641438774256867815161873762542339887750138867738777507968131033926734591248470478581590414066067773666630445159083173009178261770612163760130922502002971144394815399458631888269891605261725454010101159819538973087944926108980555840397566099512604651832648336200297171532388594660551424394806131821473227497685339954533570915158832616741869027541132323915765592505081669871132766887199696212130292278902534573720089640874854148011653389155157009407915047626875662796609985405935353986856998099756156789086678582062940271390870485213284494831030276118757410300436457742264041814396931146763297457770488622224133865320411320416645057014545445790605511987058271257003849367349629541683868727811659095006615435232678032558504009458398549782228007896372046910578573117061411238789849647551967176687369089951968098244711470260696361082365966971004818472109039696185562944965494161653037595307424010292568397463144297966464751420830430216239575674719849021447926360316241082090834063958206355296107797972638894905406161762736549041927450822267158081954517928218823086857205552567992433785641521431958471736494427247261798747747652979846988675157449395426505888196528744955267025813786737889591698112649458494565855591682804042083560071385061447304006321209505427459791646279639835993788718071946396277379574749088527668187833721682574469789404604559938429475742998988287021137987245321528425322870217351292626645809368418026336591233636112964625326499154193090456911034004333947702333775695153080479523339249071173578812822700573609985995991437804921836281972062610999406241680125554078748581166658165159783555094025603803855890825713793547765793385117867084102675016753654163780855221352944530965763564417379047975884014589696619018914239414337364088116406569253445656670702357191195114593245367892874873316611209678878554046729905658625260563100576615326516607208377929810000342446199284959564134770605064394477992958981082182917042448376332330139593649793011357094818747453040193117861842407792711197640861562289855572865308340385552397654060618975664768321435912073775217731549060397623472845968797728310297999055799932088548823876684729875588898417874209877755166895670652593176700233096208427963006467674895840230150920135942402695697565836664634368259358822461778792970677823420937444581379403976123425173304101062006681236750766050579119035068158787243055299341932646705365429103146649467171377105644890602743923726856023262798849332761031842890046053007037199633422617339104444626381622963382028392974546438914820909700369858065042850103222342229605047613700533913889740212783241486077644336804318153563543268101587502793058859540286335180903366892476666417298372519791435139042558684779531259134750344284761331061582324735905302098944115256929666905407054060523058712410839264617051906363171881044731530769828331486383057502657371946106425177559869437590752422995134091631761551088600874411254325997234989860589195685969419672392525709552490406787485002013130194190910943927015314947248676538848940176720859706543868733803641873420533159417997017307496048039410734271678280987571279904368147742766082470318335845876692503009174084789358216654266001511714687842677192823945688081826426830320107244156257832761261632863690881272774036050835950489917941593460708725658573013422427693832739980087022835996677653203400932911781239313475818019848114589040119764474820765176365813854031401723634488750834854243790621765093793239098640230543771194149257340072990821001075892157635544604158454070032398652548490374431752154235210344962085818424850502884094756567229079623778580799502298458997430429982070766965774838426679432800055578491229047821325367609043173359480242919839558165342188782597522630713466420341308350820476295684839131777884370655812973225475625127500960579600725568766731177886543623555971818147305967997394503133692009289037799241018487663595197229287809628292906846782048537651946165872253087933247972543791630429535863681210862345206525576354268493582839945285770341047175327343240423791555122637812757226478752300354026027280536962570486386322351618144846289007367951700271952262845111989355246050343612959274237409790172233787818381941738241201285639185465998109406538903408551939191242348612586069792801434278965871010907268482929606545838670528919600011875151137873639090190221531878026143104486392282482355582619536917649143560605537315795048417691780755823573633027992441580878281241003554943084579486835641950013842514538421433155284529220779598010055533225548353879810930240332981826570793613443259928135467911405745586365312657030103202127322580485729740694916763616570885786931446916431959401512047010467990697538199141671770811521865921655112599761977225316906293589568575635797941629160357690910767368341405104933187486669379421479240454603577164346780366378991728933756850364327964608940054439305969958479212906444722291126373774198080267472642869027059496667858521328729849608200464754697453975660021351856514186154189925625783253537786547401788177897757217208848813508108694681633315312955759794351570793971613775969513130233898525175919757300292809053498263246876855793503772448779039927904048715700134444303707232641427180099265147682247784422218499754274864963927027259261222897376581378017051965522406271504853378450571391580082428647320353811887129798503296628653240885727661806717924702499865480672932956722689466120644168130335105000108369484931990035280654641752996877557713330332350753733895705812400196598096082043640490992624431951124346937148076937954578066677402108264798599756758700366976257994732160275577076344589143601559103423857703698414434815252554214093396931214202868592942562551465960436565199203751441181393815022402244585790625535573269607664493235064458127628664306540969201791309468658645211231442632166914808966977154620197296802983875423251469317651775525384376660805514332354160948819618016349845343832419419577943339157052458399914448488448413419238897102648481488628049022454446808291707094642341735590110573122176216302151657409456654151570841351280360613949663163801792844548332350311282969371275630401629031158538900167333784909914693456002707716493998851925135012087110092122540354571538938669603200020749403739180593051063468495782943919439912986556260304307540739714330357818363262713994280426089192326420599452453328354837174671654935520488710212737334472100505262106151795629289206864281746574997828549429357233271485561091526203344795272294951320349304281964476140749093185492988997064937933325138794392600494347956125968663175200772816566448982246907049626652774963215055598478175464804172759353781769640375359297951095664797830766656610030538736267128255599335038346442024788788329548229683626596616063286426358257073010783643528154572913902358636106624616534309801791909299596157497673233473479368843045492908945960485562140985494171416634109309659035667879769121152839367746427528032014601008257349404641872638081898972050384285583202510530895075430505720007764348364402960173629223061207566945069839888409815529854061894614720667751584479776863582408306886315038721084946147301619236129796743051958001141634561467116759828818433797725058674148304798263882122434842375365513934303362590872129925639183196676587601666373169264995624293238993095081334018616978910535445649767810702229633922065086196002233567658306270077135181256030326300882237521038184583916806278196978675799955738151891500047102554937587700707777057753584347715735382583268567651988544094511340469919507212431675177274172082906176118524486620645283988892638230170745454705128690490303520274412154503698831868326238811606432983211704883155728054706219489978112709815893894404720668899128389625939599611164560027930107218833083665427636028936160718598633810604500408450495208242248445112315753135042037146733849708430685891772328579921282768318060841520324061320533181284368374071946573162078907244840001930538760003940966562180697724881476821445909015533133523641837284445665094915565465466500914512109222580398450714731246154422731684318727381342650488192201130395287287361317184332111772885031215511089692781946413770157642403403059231383916560770430055496689582363900414514378985054186873595609107868586493765130852516464675453931347779677737271355698437948528300199059192189944979815408658375886875662876502054862236713820844290160974222078639520955282893204823264250417452896896037377876507283231817981624816527485554716211585132409914638046836473940529033872490060911120137840677457037539303226580018041965177123910822535344064903953338484343263674983055510865107511450863485594738046997705241197280652585946136456941813157153429856509935120185821583602097613094365048162756281077583197078109457678589508363903619134400917270032178260282984848446435051435478023642881235868610616416352881373264801677238756775820897001022749635118483482087475148785415308814527458722081867578405793906536899453846367168703649707896269900828556865427983702650915889840799950412552864347879877385125446828971447537692363476153610031378989244317986908606309684333820471375238349615233045146104041482201982344293468457001326725990009592298607825145869116071191080611105855783336086504832418707569450370922971148479646128921486438602074332220888284545108382563345216161926956814498741682699318541645885414739242859188357398524656365849311607284857171080661040319388880086393442961343010911434302713612026099521343477129130146123719773272137028466561819252303988158700192042969870550941280380710389206222624615815432144670402955962872635353792787836473998901496245963691592025942714619925160433554854163842793274287412074094295786421442122449726093152292426848989774875739170632774714741696285975013744459536721889206575395377840050017408564272400205357895942261945104751306668866326684017147864422568726188878682204611797400732200517303042838411728721863916478175732504503149315313266077427184453896776592480488212865036145726408156863875309551207967773347914993353939062605416088121653533188355863425563377373574437400258114281517223712418108641025757244521176312087838660803424930991106851764424021765584230550884570775647545424634209010085609126101055705478610810376968968113282854334929525265681983577277671215987584664280737071004514733443757809022720246381283391895987386816687933344128429847862746692284652342675956306472564715829367456191241526695794559754331930249018812396497509639811168902417770895059808419798096218173823393279629350494530074119109919466547518282290861959775063797013508953469636493639835495044394728811122080206327028669664533241816536432045573953873379316219762756852214148233840273713733810084603791771992693065069586220974736754437246925186247389742553409188227577402344271517420402740176989070226933936565035942407726975393882236447577481418219028677091021670141082083909072262655411029382491236946637349264445004546347208020008048061659054759497600498965182708145368630222143992228447489685292207406446513865925223046363426140929770331313542724787521440600312318735517608244143772835198857367923399190989596718667164342158707886133777380907505979760930506633502018170152067137787958442495883993760899965783344029264930756618455540870686627612826398110253847615521232957068051596480666237821203863978910715498187227641711414869395095527409913071767393133408870503004157093743060516224597708620397982225966733679564623743388184103192137835171112391237728835793042328449941003987788373063730812977444492294969617529258556226235730889491813388174845268952936095252177330982797475840423295292022721856925959276958380586397343657190945239922731708652971806529122442368699074216397680637378586585819804809684185571116939122147161002750814766905227039028404512830204689156239826285860786013986254211372763695223654466662830648815707389158767552635302580491354702290890474434576175412262612802364502938336494874371587130328733965690196180226471326676200971419589603257109599496094302977364929798598991532004600999149815631846313540905206539923754334562163797101412284328440534436783455150524382556984369099597675751571289068123786605919693241144275177106957376970275761312855248854957471098657130677974732920294182027294135665634381343592023302055330405668182594501206217613808812268181187842451181113939124692616759801724227268979325292146821979481374331039766469478300888304755373470019693902632566031838756225466184968504389062902966594462874410283395048687714833996647873784226671935290422926455832813522641478886157234446802963246148240483601423282519722845374410140227038640967821291652332377359351029056686763750639545964182489758552872306636101371564074819994995364087524010818862387604514638344879851318180510820922471430260811497547034834169364313904839255547940909708351721633861245769150704635262030159898515285164490026648128829170593250925474664502024359385144984628985194781042975866722797127356424350510974504326568403237321710711690631759447941442461165378725975643687054016647914698053196928268194688838403756359826873039770332297783009744857170101598735790916086582723208007006804316957800714495677798905429390868497113832048573063929365138773979804294732794075971797120652644729309658412845136248469510660343999914239521498383374179744415934599609939369238013057041619586079955470300171972573426238517972062122677187368668521940272120884809821990441500957627626169732547940228969754029990349065528647669394663541857878576645795682533484436165835033975512472637371655090469904207262950317647854775925067253594559557571970362561371461397212356617375581787751862031163941048087672032870458951293012478779418103180624662738677772382634938516960447460972092237654970681157035548921144339377558834392144594528704871425771145416072165608456366015082710743750701607152355214692785427147309856978061639214143774998863775750860240180003335587019142861878823355159479236542429372876777782648951621572181978030931578697548057018919357236391029145919274842496350654315165603842114230588014990310242140405644388792589638655078773773627663551719381386054335423337431473200656091604286608334887250997062103787135788861274927823710231168335531003126462634887918771309981506585868149675090807064394529162674034616859067698316367851543735968280742003873697531012559351673114223846088854663292506834495366154582122589707007436051036766653759008258882256442326631593509611609582375048196211455536358928180042132506141906492665893091219439989992047399196424729182573436705066907645622580492181575897545697498614605659956830911672657497350270751218864744938690121912466721450759103210925131373741258869828142041138270564170732703444824729000499043633569997154989385934715241126912138556775769171880832442746299205041274501676615179875414859870227932141748719495097085249648175598548731384144973335774722755144222490853713017869723824318379073945649773092824456981391809924222793951428734054150825096635825705344715903831804693813548193155950494680354181201752864899965010864990660452003499822667678030223472289265020150957380521823220741725621633819718268089230966291802889761353669956401872593948592201607618509673698935371796958728072748392566819264722184054204609494582521474362486732027795857675575869433338041604088245389079306770795960434928107122526003822999605054433828732244442417040624623978666896402732744453697571329544353997132434118935860887684277993463308112860011478335350815840050334648872901042401947491531125442384094084725506230528295061799614553123320365807281113125892763644530020933380964037005309398721207273183580371096631228777875032325073967846607363462171934250751481804874188054540747281155627075780435888892083249932707338949320266543846472999485857856832105516599972720687306006506608695318278983248640273361445213724480860261012491893155765406759362191692720023061616641383541810949859809173456153223156782670495360423845454791115408642283705531622226137118864220553497059903502474183823365358777892236002424104684908326063933910156029217856263202797035922941141508699878474400964082999781065230916444153807388361959930980869740792764999820977544470919131549388774080876180670062434047675833403227631919870851824348524992197769927200216455471629105081216671805410683781877104901633270369745301040735204473791973484479145583631824058628867209342905678417142238386333933568915848849982035566241543968890596072661017585014835398033433393219255707406537617264612844534315199788063307891981697825783770147719928580859812739320725657415748115919815716468419260590389214660800433083478753304992224321373397193728248341874810628620506475108126650022288798506941167942865954515884773698616467463880904352300938918089496105726253934590163135647506214872838893901932876949120327890023815596640383783435446897608781576939704306020200247526246186565891443161468834783818690763911102863873147171235119921218643691881702396242597400014757214450903342479538584137103748563964098526410172118107650551893884597301112274148095909372912621977130877027352431496514157812617273860242526889818230060128552241305891487088069318907479291840034050374424737885078567592939297751223965885717686102523295426862748200876666764456463277216386659544493792424173009450857796262321035636150329544504335387054425130808135980157261048821633307156287608025806829030839667858314473879910983526697345154266102371052495486871027007855441940297160873137359163721064920865980140578916915956282999732967706030586857494299247276115663491186395369512210444056672394946605960728463512616976736999541244349395140489975883977671451379153396371520299690430847829583837666547019886420130880173272286614470374704755510552633180261595640372211087447547233003061495391020227927588120670614226230646456016307626308006699505210477748062453780392397457329495716129870232345813406507956917752594816256258325547281458342740548798102123250206509782204796733329825802638216761989343733214958015279226136555145635717620619543840500599393248487755709399315218500506322540470357911552651290869564290345054545649213617652085042604707245699389575833431564145213334995372264375759478223140743757123326279853999373495625158224794360361060602129767790742593156352542077126293393651145365563232280455596595809697012155023175709801344867282760509024194195927851636892034446970421758033263102925419930819954102504751862893076109967419442171566862527535309261404488719464250521116408135910578482623415208387123007065029772950333035559249834741270707666480376358939409043208231657584183764547833954374364527387144904167420891525281993392180968573572928654878611962991497377892026471176697635364831410144237234186985970615834601262446210948558909668643389696505829499970301674836250844344371853144798732826424806736935158474580710834818594517731523241467506769369113893808047955643211073373776029390569169448916489316828656694062355326254761272945609208488258072418002148640957302171737405745516728225786775634183789710796149213365891109749254634593439830211329789121934481658594911933947922214255110383720793304467599031539055392697563203260366733556086962957709902211670929848320019700574754851755590414697596439735836133557625882732112687421691775946854380570986610772442874385083128546517640482621813265276291542510208166089360365657002920785900425101028877024771431006246487823373029522597021390831640875570008833863107020622090869177465990898300722659812882227076158220371741344893313683929950988778875469432920309801667110698869542878285389683868277461385280283585333390005751275352923244724854589106872971914036731553643177245638106659672822922339078787121143596579991642788124777891249212054978643247051859785806240664168220289059278312263383766308519329660005023770404288741342073465298903614987349638411113997486350146176215973281633949653175176731977067573813785919556158878386523617020265493259210001639621644974188967667555026175631192127879405144207629762732559015259491026339697869252329638078912284041119240154849041031060269190160691977588132704097464205378109801466020829338530088494385528714539715110138287698356210524753637286046329935716725178304470918721101955206162558944801488287278266040790152770896493390932904077972246916324092728863809103112850536728099395045545766516664489635084632190780085271185184405750210712594649006308241506917051275957244001860203345574530180391847778975553642809042094390157951402681501053985891765101069590163172535242793578845504241639329378833730247644988288074785099917696167613858930969151998901525646213531572759278163547817955724099907258411558076619700531092862718421806876112411581171986980800074419250995868556726217940758353087833676627133506185849932691323705408768977471866961290096057754556367071682503407016018888074149734033348886551837817392445246996935476512625053651859841320129542978120782415657378865227627188449818812296181261891210550541009329140187463372717648015254944904182404244997465450379304177956332615422569198619194847176554919587367979539859753864010866090783491628800837283665022286001554576384052554104009865981078143205672600634657931965517190759582702394249517981613791199887614124329677514467773864033849604743547771601308982693995937231573299093192864417653970292187054953797273558901876415812012714189056174166378999118003221179339971434083977793146518822964333181492298520296772869647578345918135464771348848227120975228390555162119968993084598159311214342044891219473952103697939188883168439577429089175604882140511143322630812928935010229885247604896138648862875741496829621924888871826055825105836239670848174985680520402065340460362579275792841719258200774934060110742254513578051029095382476518060640298914220538604559778083021098538027766532801699248692082276428858207559824581832758496519147629948713931604242842547327952313337587967780931535771062136210962157663425385351091452956067045765300349515226536469860020931111599669997521013279639640848595064743304833142187011816143922009606885094875272225454651243638392716732617151313853636854415467124852323157843421275735867161961252619459178623594588793325283481575582276147945157093656647713517057252663062032451220337907612161040406913626117596695034663986263772817673685300378505942250603180626370958816174898642869128964745505400477605380814132096933450762572913460868171217364436370154372282820721566089999953041395110343080782680105923140951515116324464364988703828455885695263849673727028057229866905200595680852666319232519493506902075031988683391892308829100247951156206087955887585856424704384416399782957359607105237990191108349738064011066745613532097776582161682049077001321635732312503804375539401386065153519994908574148127342860931253398701157617753672579355040343637157786624963968986165125771235123731417232493977202995806475435407416805406380850947352997821311675040898702903967551317598470154170030808821312896183884931679195288801824877283109085924795075438414252864517563665942675668748474216316927856763913574503280529856004859483075331359261253514543994886690987958079687079931049295097455713538609629379848807823889034485150997958025949962835405205907521819043699485217551072302850645868883453492544549052360609817867123279705541875210818143874994731652228216304455335320502534556329585007992647667468663739136286581934643851232922216344258841021073697687471828819783090564431950632180433424787332610549303561819993302980256903697573014733708185376478720443511327385106433161023369461181910299584014587461289207149976117456592052535106919011896486617541911970450963608739412778510334942383528645683231893368892731289469600080422254200559765857121452468589405259109727786581926979865288118778058482036569677950965474448023234318277614172401456094561140534439670489077557931562257849386115237773974013209413217966898462742745860309565935187305829225154799398154607717485947008121425371878669645024593407327888609239000409409137807398470896404738257609599563632991244068120679001834484323047417110412114955783807282455112837105937004989409053949474110052785142263520671755380108258117975130333407315328872869849196935765969221433482687618885124152360959554872965417321014509923191535383628463767497983792226456975765094576836732745540330856219229897818059039244242255633667341492082517988860717570114725296185779136104411969385977797216473528248478752190447584014609362382246422081900724426574707874877833017739211481824063397656293333229872681157707322667480904672540518468056379959897378933979524308015072616799735921551376204424109771887455780155112178562870091224882317519081909826637379079524391332770502554287277752096275622785563684951836384561631824224356561079938668128555329111753076026386527596394504377091393733786583790232997693086189947742588801263051165518776978934046607553767659311721862792910678370936250697981572150920541730914399093043025222182928116835207646901747534554168814029948270259945317179608130730706307298942751364827388350131195510765476735109013557648791994017031726405754456540835345968217155083124629434735406045807879527523660703396038946648744268950172956047713049616835975125575793078343478233156352351437807783228169215383869174787599264122893499097887012995771089572407467539829207837381065836917015347559920985625415998571306001082285320805225473704449669404368022015301490543784916459139732905630383950327129592158660356968850008495024141007619850957906862363847851203989817221863661200355517607628988685222861671639052599752123826320764663721186373175186196086513323681259370756585132392247331024934871172215463415188386012835760620811194606038993782792704255535778387327953624839274794706981887124033649725789182322171118863637333445934104467238450785132434025561993062698738900385465576284525259864426002357101727093141083487478814716047140572793037092774927454882996743959992908568523954980515202523659620568731071498388893571908701647152487871824257696457223371624246779466858325334460144882084592242429728386688977036797759994459478212146376836601543951438065783235405572979223290545325219940903737468904833019712243752966928301923427424820036047927745733664154020230199602790234731745124585681164413079674302060210184598384934838776688202724898505854375996662807708468849279918033549556318714820089425050943059808814624942802807509282593032312363583608280560089693486266174059636528120699848853874507508849941296861854978917495122011281166203708116381654341317077541183833580561154961438160837906685859060625267590120338407830840489031575976557087307327984636666040769150211954731822154974526159555032426141748932799640029482447153692405273055542315734084117807649240209672026403790682620105497403102136071951290997745092459528385041496572070575823379726314886580759385044554703790450125569858122952479527064626155882769002960342332858619727154566510203000899546671996696962145392720779303495087309391389033372195889793787842055984916485536209434826951998406963257839730320685687349706903796977877411396257786835210616247070088886521397180037037179650388571692933015976784454785445143305344688038010393393762174696369853652695811805734001949183598641292995947535617073130902336325449948478914069193067880902942017999308254789824209131938417046279413084865898868272372025601875548487295224282140091803804655387105629543072243007868564491226291655982136456515658054492105173709982354198641803727592195014660970917213705306124296715184273898051164483937891675111602895391813810858293620723940016325510824610511190068490976746729899865707035385240404317277988586339161023045951152852800452490404948778940722964501815408291422348134785541533668677850098756534865415443593462226156118968688705660524097226558599764692233232918691522803199236315016427941987942748753958326857518120341806089221567441433913835179121969412705279204870315509463421365870116013542003523880971578966000467624001414915989565222762009232318546239944445156612240087971064380491814631092692905926156234726472691967972679160021549250859889286016490941814509063288790608195666355689293170130574006628646620301593463565089245119304032249891470618622394556306306450135695982039412877234412962169141140651275974558648277174735611699061901203360343743120375618434899464530886291349238851765634627297764423346201281390670743095900577046822855906506677229343403148795874082510673752929616010934308446927883953159463422346383298327225942188906038896631139566272910046217781222752983206438962717669374454587154962647919227583357047606866781060263995388246913178010806438109510744528324734993255585325548474586168925794052853516697419674258481098010106828252098286689410741084663229633032806321036642473270748601825863035903456904297852434074718883816553419883795555931101156559170443045132565084449246601408874658247140469800640361172479372816604615316935836469746836086599402815023349706314489324896742555837865892311327172290651951274660524178593090258811242752875695193130523542921816228948959557640842127101184938610017017243801001226952111576878960644071587360019185467534902310569475836381808757937395848356325783618527973188844672988865547897146974317633591964187778781614716435563739821231753740248720225562601179148954885335595757774613364679255095958367309553471154926523214306453776218373549269080058897878931257139412318457142295961523302212269547590688140585094306124908673527247673304589171782496239611794778587772487634816194458214142002822854744178246650420330130202269576711090709273796527642824068226087792505274107001059838850185038796051669198878826128018897988563682183260354563304853865634257996691919611597484998906641568236067101106640987117875178681514075221423190077234227976445390772868827726636221804828701947595747041080819802129819540335685298431022511495944425530605558486093047369240632090910673416771647646318524077457839779557410237408875769904765698464356579610932992701075014608725462263414934160358195216132440352818045707623209381625811105095483814607420393617019220537361379989746003879284452902115759634486700766961425804627164883115754183658802851091628331268531646170016946245277010872925246824700519315802595832564386866025994918329315395954149350364776397256070980439904353307666358187977980612239505032440903388713265925330101942740095397280824189768969921157283739363072858229968782857754686952790484030905424059778722343905749720268016220810413692074305140512887534054415170381192644006056170369616047887530233361495819153466111330270934603487092556538493466995967579090180464574463860511370950745277913953938150226968217863103163331729010075801167067045370775081280493032937910546785009645070810051984685086244236537374920023006486356494712900900623585219464027038932842521387937882419184837166813271407772832929432792574965331395254790416293973204470648202165411470281988570778673287494818433221549489257401426995791765396214913298124292095745865743878462547396885086237865224080975892467566559978920928617548459261794095196461048923271081036668578420886669695293299921376240524636948542972062993711912745645300195616822086054206017105503678731074914178062638534341548721634111834005233903475251025307767911303837628677705975177712164816617511335082613246824459012308294790292250152857841567804140455925132874431216529338370363106257768080796128124885481315397007413209160173818451370347408505038751306691783188092720792945234538060335051262210789809383028096131659609181910661782450653688661845834011870210893369030432169510779989936491216777842617582289617505948560161022781401450615355850273270858183001399469284562146238255737618860623801917903707710063889621722094201984618048720073954591660874020874257333279287961175208173014345799987619093672524116145013688764650962960133711045758154231317770908190582533397631299052524372973778107296437654172871884946874884487412766696352121344824995979752447827081674091912918083271970138584670405526325121341657424021425498375714129171036299026510813463743747788812308140611674403913573747242974178547251321660632035097366041249932627017044984974140327492173237794458968354641847948039470731969145132987827298145647645613840437916141275613510324143473337303919622271807321123449633157722763069249920330907613505400399638793805563632862346836239515835313135677495427589358278612272416330784458730297479379876893241160913672836540277622748348026817282389062464226818176880725077896058371569123176659956029980504440248070700844603656082832445607069253874863518098368912331940098260494080643913278666647190519107810472814378690015634162826282758196279882686968919684325980941403386065748587581862832271280159241255734578108054727204107614079751676812248304378970318388813867194375821935550372429337001203297799170354217319893254470965465349808593669185936832209822268722934960742846377782746302700226278148752456105108039984392587297682210882376893022233097816988847400663273253691310223932441222723430900975651234907695777743994882592797844599917891497329422270659008651978307193027278002200678046235456929577386068926372691593132413676647556416066412112536073734661030326893625453845083478165792417241129018265897576801328021657363817079793435494691356751642366167008204664626954440588340248668324620615869731189085041145392812097861995336747901256942574314189493151324595646685112258504635490300883108577810184709914206023878364701667177734504398998962723586388709645280923005967778470044415259816287885267926857972717508136088144882488588822960974512369047361444605757392336357141564059295924465821002277559805108885418133415762438737636006892174146013352838154757303380229669689194924421197233327460328275179428376373178295350552185775136161395183261358642340330540804845567880629120489238629648610925731260063905057922546399608996596663852141939212528865426593860276666488910637360152782773793582137293445623965409604713270737289571623985675969977572148700338154485712570880105713891385680748996540720023893051686617958601846485771251199252434019205194041044852318292984119782269607217241833998390146252384284573518378102396006319110770159876806354258707257082013206419720663375952685240536638796024644118921171791099847493067419880477419606759820738775026585632551800760949878013995624444056010957095722008830988261950503349626421438494408704460396201199434973250639209871912031214290700851306042792474789824466419286732603299535697454486977573656215413075698735423025980989212227833316540961601454122595488039927439779819090488231671192026311993774557487479708620336511009543491860094937945817028398377993580659051322504413851607249731547705392800737717195603376571261315421848973141546255887109285185778204644022627573505493003110929804771170532347593085228128608760140920874220743731070409874653938793914878017714133003285675252629025023293985530352158729410585331100617014416292823258527556455854044138420230936514148214892501721525907431837501986880481640149044569924926372821591236932922772071997715372352272240193064959010429414881370259183084702959425426319088580245369719414282031980970079561706915824822724775606995168726132105355563581895079718092313573008906259346977536519968010712616326961344891669135461034514596686337778559028800959641844690238049914103443022493911778424170984351142479832618311820674653216173227066588511899381113706926028401625508145757366886643397883561741604669611470440925769388563863393327573789002711909045674788178452592628995060372555944307036574139664269311087904171214583228499287857704584567057458525717295448879564988678176179991057790662144481752253898788286309218389864219333646345237882448462142223639751359312726915279393790380916270727491307573445268317860903669245265223829156818664379485169805282901646731605650304121430647034420363847956025660584738144041232567695785665826033383318912870336749687117573019581283458977672338002220970688351367617535574414221604730220248157374939322334576445844562526160387506443626952382236121738708459825745088607834277190478471715908787567721010699876982464848232297410628762499179051906798735711005666059445468339940108272942775026390420307586534909660656655409150831930884019143625411444821779938947008605546658790639155291278813477757344846417536303752448419341775863618448027075479864573695222801233024202703106628801684202213477392536173815241326408033324229338926709115416618285773513397861134003272629367781942354639890862907465543598235343024720530075938088783899461186147767692046838515516530502577382733943801693097506928038932810792148711862853921401625204541643373242869005885325866603366420971009412401889478982999012967789058992300040813000075973551431870687564788963277914063266645925273500513665638404568705722906297028493767723737289298988896601765279123509402802596686015596193327938321261518118151160839454027244673417328052342825426874651499123830963696860830035787967556282421915189074049579568770164494925511720823544127454009502390553130878617426206123571513212531174876366257370794851642454198452783847855877434664165682094583293856864636221410661433221299379103940245116826094750241841526458863281672448735790637375199509532421041331703059640040175779223458322162957185809062771252881341623534575857935824071680539040716515203808846819074531884076785007171297661780316455315454222547981975820879065624057970117283845828469795223927053242078436658296001215774038436881531303115331335977095444042616474789703365378392958868552667981718116437650587056034121696274816584272600814027980010074916142297510110972375575151094780550089039109985899079979423883106680131783197231467035659995355936254139821287106864037116536365600558012784797376709744138634001894286178425291386983352564237061158844241925409103838363686333934554509812766143423952320475942888259924927461083462021232164607296229753869663151158396765399059076656451374677311747895418852472970200742570813379786658396678878707182785372710577543736880122649840005834373968155515561984532354189882368196276999545494861327442882921195590733438619648213525448173566051842817679825409896872136713849680173086478733786542960701649624074411333219242812011040110295844530744114015162129839518017424544324461062602999277384361659721851066101626609857902654326603847120810201000276068827543347004248573988369432168746783597908965150492646861861605597456154369891536505221645711738672762352786483361849206322064926219045809709281370805153585053674609988715069283797206578181914216195397310976438768668843568001392658966954390687911073183238093134425742023685030959763676062101830148820927737032407530902858700754995453235729738592932185365976629688541802869748185907888393025602800091116597359035453584677391168566773385176112413295179897060971277058976870405296175172666060282084108330795709548601987513296072797499613134234920891920403354136689410659736652914603447678382051821667728814753266870963539101439607183912371710186540162860584520937931619236660549134047452973695868084237838108431068037031873634302340174945294934895835141504916570043766160976910786036886686697427938756416097984000036708151745514731061094844909348948752985774943224055002453614935106523760834982244192031728581413317369098652172779686841905379261427230793981428818644103792444665705749073053479972406729990604947033140558489517107292546888807826445977303464372760413497587978348934282137267538268332720476462980807823030933102858187045371491487862027853807788871928435069656187758332694422247671935350149172737135759873251650352506919232456318740307084241140292485003505451032103126219810742394610594959844499564178308641884363291598631724129162396417982554873085815418688555866324836022252136962200715989993503695006540342943226639162556253864793150168701472886030040388783794376999049049248237751557434104905751826805768672848170515595797714749901824597759751348498564714685826503802514853675143403208255538830305074666658957133031036503646558683755154559751002041557156714586975559465355181264188395386622978502286501344721797409903557968218384769784720766266316747950759499070700305519352490776811687836115512728629033007843983387953707551677162738888829693140083245716847344239142732563696331099606331126304361199966043606861911356352112260587435758381299890589204853970225984525072718931938411642357592747125154885697748346433633494340215810496513804289735179150093710062433759228139131579373392217539599587761478845707889272899873089628476793595138756027318035550883943600707884755753010161117824460815263433116425227267424509915633925203361450139053239397191736814177436494249494022728222627113721128826901188913904958883447024068283028129581725849372639110274228362848859407851951906371392403379031003670370955596461955489607724092662357471203219430007444752984494255199382097390335921228910203480654410588932654626565625874700066726582811757374683021159454675142857563792099947398661240734639681842801343383786078344519981256415496073303208267606840065806555736298855630313208143027544645935373055729224219845932801551229868713080895563669983927508060204639635553882881783453701907579356734896700491823673738888789393411086825274873102724222493769635904410957297392133952183923770378878102058001055111042895866390346811762827779908348055329439841326134514857832429886156349503172449080962743639839364538114765912832801158715000116790216107242970537216991031508156888569922686362715062912666788924294944195373132088313882715744462650791193684666913355678581295594242964772245979507915068527882766576213421196702720490776183973915838457071248547625930010431342469945739974192128623012255452132598467815015925228505211500647085788424136773807895327587958556549331340109164342425778569233387945329604552615897309401828403543424279169086785427268464085272918978185570804383753494241463700259370536167405079518988788736695198285510599597446661247979286525308843686999253830280201273703095447586442018583265436312962030407903395529390020993306469274362585892947795300427900050533702568856340495209333163306210568025117189326315606993952443879227277228302288650939985515887982712056653520374088827273975233842438395223148590538216093849266541669131204245793785963462354087774310976426778067308197111424533741274712393338881711457814425065025708826670198314265583152557029819640327223806089427984290475068532564076815759867548896127986656484532754258658766257048931757750701227761892859325371546101497926545437673594352850872923143591133175330386083609354330326970602599053186752357090066977687466433213117785050485704144121434781880891826826897834618592096704186463381771330775218806016546057279149649661586483099428682180387165534865352234203494409936163584177815477708454069696134624201526109497467845498433351746207479178254720251989701984272092811881822947978251482184516622596353117131615595889947775466684886854697215395652371923931584651703530930002419488057766011082513992892037855114520392756224489916371766922409293240213358517980610299517490757954282738759061889427629109065319689255265389823920049390410413891959248540614726599625500886054650673577092272743847545336598986677399772059365276132549035994644123479800946957963619299771686035996736184257199481212322227344296549763471713737802271255939106218161368330408956535343539774615909438968355414298528678240985595651363843545401869085073414270383888418125515757310485859277214885676025799194492358024652436852614234531643533807139477540889660512268251917739076120498097937566946174066544119277498372263208845824586109753391556302384174801911599894430325352223347052299877044830937927726180272940450444910709775635816589492853912696357184040180509463001942758704978054242333509827752727392381561483539363903514616240467002252251508334012483084230216783154386487762078733889244252813760961590281094254706121371623272136855068671259774739542345225125405018960291930389782509929667143228825481123301413432297576276954235746797713680987783579037464160764626508128547466721637682149572677592245631905973723051469697096283091747904514392607142163340511876982644464318263484891097137903174505487375950923590034075610825751436646662801243205454878478324564185517343545865275331589004879390919203268711902975949364052818037158057979758550078869597227189023022393435464019087511284702693720995101133877649795763204089496731653389956732378248092622862021201464697112150509544266508887746015148052189742945917237430746094973565215468520580352057542543496613034404461593660218313391305925878362346474465897381530884002606606837045368716088658016541410273515579753303479212316748407984663037193026946379949726128675563527391067916196578083312944725975626370765951525175117840787017387039412114297057223813835402915755261932077420720827735085022568274606053277899418140705245854826580546732167687362529099662099548633814496133870325478617611443176357380369813727187796922583689891525082740710368369256203995552662332758353618722506633250521711527924262059856579169624311581105946131251100792184682309304880628125838130112489531846144149858747616872910919744186998841217405152269183196253210746352434071311914294155967909924986532938444699976769860578419727129633216570598257290019740914167563936771872706300089303987705333965597565756009658938213494558776742328830895822727334942632182344318421521802343637176634399103501057420672226683763154654505234074795831888177282311499713380910743488683603235296947787947877700169060575987105231039738572681020563377041786472133704437478085742387493299183319622730032814341236623556461971916175541333697487267007027026450661278827470033432905103121568215072392120533360053313698568382075924701399859999724713828126305228332178548062030639490863537775392849493160018925057492725788954777248223216075705605522140460503599596565386416281876169972343550726423822917680189018323219062998122000886299639131895588737896644185503848978613946178219465101166127610920652166259234884245839136583123676877004021685784331781576602874883153662432975841737352193398875812471514371390439563754353882816456281532180875995420626296379255438332750285931243678517177060042450728728925529238085578843230152829844139800000173705508291353195274503790800117820473792874701189155899796601589483756255305977483807764521776316104757024302906680233422248550862823552393407596133415076898463035648901086709082831647981194918962069497053994394591080752378351114093491049689796054916290913214281495980601537861985359537492550220705038796415949447618212822140547473588308613129323743378470588298597086455947101674436451541028564950372191443340364653633014553129689622143384381319359507521333351387754572290950638986752531264849847888464853529698495403866576306137515292081614381457609267420825926810759762875842763189523564637422069357076481290529204536029790528752722325079462367304807529907896654322550718363843534897054199448459045572975016225502827656556344461609037850903775650831929645711306558733005412812496760532605614018947147755932041112818359996923656122482318336624491900412844035492341464329474881294844233796673857243273652800762283397061451599130337783602611787852854050423386883077688290609664369385723766133480370412023045569062581401826184187691108567899415796367167043119585572340045433422188161404948008720482964513303903429740865893324502990709143094589838481655213758048210482652984745766632716470520923415216059474189496511445540251527758457057424303171475443899007406281898930676567994339801588225169341694221742353670865860984200970308988134273713115023849953989817756887358172861823854440182420819366454077873187630153842124006192253703864620081750796776472807768728114700271889743741017555687089576796835658571020410361886527699789673060103507840756350259165896103124303086976424813624433059118622016061142030353914035968813264983454682335862116609187027920448495598276556791439198665209599810869304643380484603219798964915003582447590929337933644249997477113017922294698483776232874293873416844700400205296693396876883247059668029278346606155189086141689932870119444290159680106892828011215536811475467309252034147210493205893732932497917232221256230409444036015629933296234598155872490188498543615356095796418399464364773650072628415057260965337877557150527676346889242881768785074364343115582828513592146680846706323710879623896622780423982943677731154870698684919498889542091860182956674779512023186665463045628439132938192369326594896833839799873060962381079947948793422558401298525214399645797770191457188933740871532676185017325026323447481287869619238490378342241814987860134710485275037572447968577213031941200056202601258696975941075348149007045340224379566404401716594146957079469630244296629756010315663955471371275018331664749935730095689149596179811720163584237432039333116104428797041859228971585938417403648054922314641121470988915625141460236404341096605062768676776668247010320831625997275815407831873761109320432483693009406834432655430640069464787765176124565677913767989652905046736265005720722197703322234925097585235776076216514889778486431000737509994354150401832458353311589655130229936547034546498037477413737032014172406208845836743359893058176010193406586891969086922384729073313301011292751821709692288887518603564514035330663910207911064625327991281043028735637598871141721636300328453192861933971465699568997067116880798201135777966178861538954167672672717146850087093980550862078912406031489010434384694064996189026360527610610732906534456338409336155619790506033130208284794488307937470501869379514360179489104669149785450242050141389922336092533741091894445147457562826293413425481691562737908471103652542631803369698913595597621914553561343991164188042246065216501355919020702623091642046554664172482688105771778999197462869486105870786323793920324080721493042894098522472745885535426318088716100678488694159132875864714107030284717426911359413193503694585953855375255964028520504780299528395948558961155364657364938739085210124513052907408279604318994079079599401180913082393231031472233136253416472901798219532777753787108003759118321245198808655668546318693466636001453076511179541693067208994910442794739181308495679057654627388685799737393095359240888769011976730185101578214060652996452854124035830871943882262130858670461446692444550474577598166384097525710646292844512138936751776019730420097217997881378650009493628911234512575700715840539361115436624401132888832347688220100543458981527556012385644839339918430646740635482081704402505211742887939680973172362189896333213655358146838192412418584025985426795976274523284420560617613620715570744379968675689689778950336709930166870190724397098885479458451351097123641544055988416030965190979366676625426287193667854244476348156029172215620256114432278943700401667564320202589516183850204959864241986969868582766873969107385883770961067648075566014852877973942161825226235800752639725413028517120399687541469830011090045349312670164850433118600094246642030001948344020176507377981576149261420345891326737873523367801266393265768753176619933413801060820287813061669969426132673814454530729986917048354584810796213012211465533521569855842456670224560621739060558960993198194580341794391142002878284178667957966763221251862247875836091376666649237785661748430721888200918946736083894048584869713507907525213912282525240183461048539936889160203183369863527484174988106415826078747678904531234533550027558718801300734729203293734793631643575210552438289134005265042126046521608556970030499014260184690353921415499420835929891826021091125620407267112798037182996062002973829246617669906115586376490758823609074910034740025901672415007980182494565779513153072997167783694128650936178484166338561489549739533874598852664471858369426054867981999385878826815487439083276536961524242135220510204657023928802660382442053408736401257481322436630243416658657837011034549203678570566322254763832474058271568924932169878959809809881941343527054174008935736116709450112608591191574782174293809684721945542909960569238361436024605935581357896089561026513452102349190362168230838833094607577876794692863354095644147598147368633836106066461100995475787929514421074385685295080377259031617984073712117531022189556975980746736367850029793362322339966882082328524528597253083785020335382590372161437313354218607620416082586278144294141940597739541951622230735997710229623503583047891602709470351850998692938180672570751967767222318638401097578678073099285319691831247711853977050526458352710631517720973440810431646049750163900482754170594087650296861730993107230171731359275914023598558134616111419970294232828248215827496852843499901345534140110839491337318233551188867514788507807420071916937711550319725457108840609758701982301236768385560251135444872992828681043782748148593401474214572765882779916603559496919746594850800469306685638892260560004430170988730675959228907657877919415491694373927993301863270622369725776291877098842761771435209699206544954607926717741845057270308225502622345866336983975104403162892801032983820227594133900472780354851655055956548540798620322722815820596328496763243341244953636669995015668065038418791962444131010075521403867330086700901200059479056821601935080373793654898735287590849229895504681187747569920829122895420879797265208244812602287676961668728945242328631095275679011667835424215612134551336868398426263807679619296790361304670537423568282567715983171755116779129026859023946336477847986538120268313930160392692738363977600840674354196377855280057840323292101291467378600181711266447307953243426484521222261335478699984377788522384769211800102111914541667258105446569527226362455450359618923536465771255142692986136753683039840548235428474772159151788505001417566902833653358459439245495479456708155148538064807524960608456029025581640503442244678298937901296164814070832041985549837467891183712004980764192420749658049335399810477307834134927235449551400128478858071297684889956894298160078998534442981568851826831162498163008165764925054987691980095988683587229095752658835520537983027826708959174668533445030955646351594228462263796659702471069083805929504979426915369341789666066513448136281346209357151682381221297559814220261506715363253526644963406963647948341318749472665605445828394497153166481321944254903237683968487886520338233462034048117230207178983066080229320706740715096142998380594962175931883669418762901488213051238521658672539192820052603202687395755494826822844765870380322518075963644331495719790771863349051212800961472015140852195340635760230957761187887048172331304024522149239146266202717412884981444559309382194005085318131586553259259450786701242971974787990254910899326892536204717896274202043468863683246320478000235035503584594483775845011362955529093366024092281724569114608811572668980805964551941696234523268430971234635778572024326893079889436798706854459778205311843934672310956808763644462868291507004409741066560413041338423619565794272903821295413740745775572995009261807848957973642072496519458726560280845121101851043551354393875123084054438374118377960870470128339885513751740743053775485714141458023835393111116730286986713920957428256843441314551892589119565647461358520578975918436109508837092479056700964118235804787419239040605991637560215974590721891159358838382334626512806364425962897476227675839063615256413235354363480083296994655418876173179338026274328993815477491561241697963298370038361992377265107165746797658001030746739670322482215577726067447085528815821762458773558283483297284273440724401299203889780945679460619258760829532967876960678319170184662649800718174612336046440924396430849118697593654604114511249177849440990163740753236809267134393642757434796449907925869750658325071715654603918554279221684231443003798421233487561330985075668792512910499160548506663170198953035991816800688610868297994824577261276411879616912868007259851783697428437541414480349596616341029443569192644017659652370274979683812031745916596131715501177061578980738214065314269984740278307176074724970175714705560657327749414685067596321109397560184346824155345486429831120619403790604973237100125310079197824925806703552989481870681529325100895280376369285694414369224011407747837526537751769510807324596009695597664820935441227493908550243910663774634609681307367440403074703182031069900838529616635585909809191168549984830964273011083146064747885827997622227328792784340072710609376916607609954537880183545530266827273837343884674678560367913098573227305084255632708181916946652345699608224819639366718325753383195421204588895952998582092750254360003651743283644902145706419652803848232049159015297459535170304016454761345090395139084237252090085345379994722357242548673341516841337866618880309479894786496075668010762023297001471783169343491344337537462222592768385590721917706045737608595680487945251812584701872076140578395153497755090057678168218068169220742150128413669225550420639598839959136600668546293400221831350317868280459975215566279300620442942323407590267149560319378226219035654528910570769113911641174118450862755576014631134249090151771593132241979966760100182774986819582551850688514057628150347165596549448656872365571456938041526114130029484634515865680587930111617776174029637747942315340716029951744198163839514425355046045458051820001897102708204608124191592582232042009842838379764699563754429669308858378350822580854747435271202561130638944255278732249532596014327727673944704768320347296470919575560239178236943660994480299813772638426775630387913215134716971265877669864947443159060794255633057270328100641610759734478899016561014824744637840188967924765478840812835113879114686052420971675213956781805212914287034207942129139891780870450187986285882265462332244331669072899371685459676182419124247797867311835578802928590991922166937245050625406329796548409855979373154973438096986376459301732395199967480511781485953041693955631203862968426283691108210423477693706653921497754836136200332669173616357759878299843199694711966530247136499913968755420823349117187571337118004081071049265695817940143583582191650942777294179271114503065207716956766586693855693840416525738100734089131859505608436326893583575750845882982502473578666591667739229246587988470704045329540055909152562665520027614447674031773874670601314538066459949225382443404919763445471719847435994612152861596706944291200931889592574843057572002208378096758041011616538927944078254808096670732204655823316709188684026201833005881232688319088252788390733153634903837982177251246012482924997303976595333911461386344071859489700706617903312013384514161131764839959140506451066293409105686167884773591511279149407354927187336908944353484306983948632017248860011696283982266006936291243215244271988437994489799176967965036230933305949688813386855877816872929834297239853262850557385595475573592203656071908644169108435427918309703863195992520349581705387752095442856821585430940155639509035910669696715405221335363511672213276533584175924143434514881190186693008299109421132487161645647684333798023693883454936410328030350350540893971564188296300055509098190709547385314690960128390485041718840921927891881818323048685915254163256942767849422736766586264607090238202736413402315187380490284433321203348122535749704720584412848894300766871240496175819282191103710341121768409648487607436545213119941839268802770072967212243201391805683437249806384363449073149387859983554728741631460631633078954433790044802926100885239025636106451929536573540849949084756995252190012508822745124049149283303588542844968799410765557575760221309022520943737656295599401728611666075010079929692060314472639606379023756330078667146006804099862052846284309662409786372268014375535376588704146330585598665629267780976233753934450016779414646851638836651159670373596884693712195690367812083260907844647056331764027917785843967400616709710249741582459911893034694501975170566263091667767494731219774067596157212738472017200770477840756043439213405751823634976879244130121286518554547439879645158614135719386284328917143087752857055302351867499125516247844907547636223048679871334463527482209646076607377012350632052937452514111423714466246038988406989765775302279424690804787426332079411242191622544063491207074825179533386353589716430255735865830505105600224750633937273506465267090597344464425215593319489316113258592582426152135337178069457994778247300126457929234654943625423069880468155014876097973166259211880034637418125993689421756153685091661251010746031031949657437556295560792732844614796894376407160583886398527592038304036190569403006745649281787641524710428297985948392098744559211465193016790195708469906742856323952811709447709765676830202360885469063956206772831373743057135648894430282372786621762314342996166062025971847612300391381206026025831793592315634521527195140038560958331952007079059210915907576474514268660417565442379881387423876049674806594179056519404893464928412847581663796303300722335681643048681113920004458014025851380458264251618698931302272450085470308100828121587351501266268527150680341327601625948949955784814854336290807547007473741653666664840268649163638492661146513083392469440393121902934817531754136023251623444056664399988519205601282010810126224084877799161899394621743536399127893265273614083885394806955132763498960293236817718605242616034246119713626030496538621434187302125965691447066396941500087028530282754159798023250018203823136947454612625563700271894091355493122656689771390798198004860939959096167448766419382650222758574249449173707187893449521084418037488507804749044641876089622223550305458300056277294710026662029498755598089517317009300624276653240717786417764291258310699711705989915743976586293598214090207624404148265813922994445760360777968686498601949046713730906354156665092171967747378087794236399407893369454753779267614284881557090340223945491666425176907700288000831451510167481493039102323622208633965029900048317474943884335622267834814307014846188045927735198543453878585417496311636581810473724772825468749759705510795776202821704839830478338184315149660103047859590363061926276237303698340819894614210045315965937796462181680857356103316084429439721119211497157273954523884506757660348536209588091530317664346561362009383437029070477086098697394881188877850151269863336959162021414944841981759834375819452082365591261117637689920747239517939335525715365892930981519007349517624045339624898748520086848465585393977153803218505060930108808803270452804859926081529389653147375608395999987508456003915716533159118125471328391690833772741210498477553322161810597326641947254349392626057659497028943624412315983438698175066695839811208224917136061688348603219367430433965366660348815403043389554844102404986420469423326124735892715396135672920024696670396585515027612970385987902012657515276448948891373235151054532393613793379767618261148720723192572807367045851583124684499987615889858203546123022685528373994663806361951255569912799999338371187430884255843009520076511998157376224134321343256933037410976711053846614736900672101166588418181449412110524486270426860370356299252074615683446326185123304692181039059344174155475718338719410787333287202253775019554144223296995681524698279083435623712673643585518609722048563237101334074161596108308261838214071760340026173730510044021797022793618659341119055253002460129198724172003990701993955981752201424956131003550544842970729711606943397113956522007698664354078742936053698510502504999723693046578192717880882735333169719910342822350626507259319277137579775875393869746154373348401019454034812494025682558173735642186039371298320929107538556759469211248831889719081087147477405362624115856301340668998340217485280704973547408929254360093773144114945038474157797338627721098429869780365591263174614385476837857472127603134644107276958054128289867751895807083754356173812950896684570705280862110570959724005793108986248257821486981478447567845695579625611592649822281907011193135403269356411537638613961466156306923854331703806706284261395642153313343685001452488132491887542553130324470310776864645872837925083849391463503315340332186711907258405741967636027720151600438414784839633245429294041324095671517141450530403170399458963930496163863460839733264258673459011680588568924328641719529468029825476055976627529361395572050545209466377979010874984167127725151709216874086459647918131382477246535763034081340132681676776741024228172736640220163476308642637804634967115912395098155919333629993399242231502793211518397344827668254833618172457383099186935379681111422298537409323779609628328122840911245462809759036050220516037878215014599436743253348740473693330117515688576085354262330162193659949453830308914353240994808225342376404530527341422412095221465642080073155722918421458444458489897308495092746241655936646301846052077515505301503979717600889879368538377868769962820133220397981771661715879271351047032016632167672541425665333331713483199190918991615209555950640479171354972792226312773927481666453178448345338416843766807507802868940654852230910984055521693739869800312001506434639333281832002947165792296898798636546781706991334519791591951383248677366299307430210758235136910652859743875123209431365988406235818828315412665800658502629770053214055422436506082132013435528836984863719926632760010798285219128379610909549625795834246551967613422460929992577304949967378275975461805124233903367966325825730044673598598583482949456723673335633931449962152174797725724835119922249297091436918336448666976576722100904262451473549465251257753750391205687985547255788464128176208850428740606012660169136133120878483610289586144003871638144777783070901271988326244583786215134872057682643231840310038894658757910659347697347764655286612240095656752374537260579489776062490726013127866145039646154270986423582975601493666001679784565398447209917444610055635983451328500060487292902222190176670803857206028559649590145383927995590414019228101737076188290057880062174641658975822961444373704939057656041897897191212071532564132607176231184688409506573540026522358861915121468053959802363419145005889514083530808729608893594648602704357326627282688762437802547198134731980039361845885146221284810672786467602250570982914097487698717823569297039422012766901660229427995170291331531752986098851180602391926352502874484430748708439802982821024154919981566168770682939116267447096496462485144628213619873472969809912602923113276518446897869378698700474299631109535765788405251092036215728987616156843754364118099506095323943841623739886622927702552356286997203108403757614486458782409674567384906741794051635648577091324862780510469023449590562665045590805688847935077923193054165060650375499812508171486484945480808783744693691819778749980962781362958565138123871701145008878876595537202470172172495236102393534846245756466241704021101646816235559783965310153909207695947186730052599127751246896565712286383491304975500042949982896287133366327797612575778019363592286179639162993582995172721975029675747398902025683791982190345166375812034440177556399191606787026365409878011850847056091049075617534814391758711271229907281720534299897619733156285252750285127389303901621601008370389629094975422327502343131566400911100998769033181138711132701289401967652437541881697291665518482186592493333770155790599511256506355407128045213965413555760487181229748126683544672347577016615198550478581549089657822805610056479613647990058568256263439160626438085458067085248323201198850664157450792662157844069172089714877100705715003192489548745387730500021930679454674779995529365320235446793691840173345762982716194270628295573530489287552737714463393558907021851611981247092973334924989596670878284225451168465902580328344775279947678924418606735077628868593061628674124396486071302706920478941650101400558681080030577852734758310210222582764296776093441444161119330828347704473608607024185602000527851115669302202534185533523074787417684200713234892973538786745114646757302390027752451725375642235883772040648449819849735274351306560980967169701144506347725497318708377722494916571110387158173087570100511005528351191470744680250415240258633843967307534955455742256774199770522001389213699623351326283865324181452643281793416705110641426782077617479038995780863991181307664497871271135916140162458089803844136100190729381163153801589475861994494611558540337687522757927926546459144521240153459946066388158762116871730762695207289018200884343712164563320957519449736353272135167254641378401738925336624369509217631002129845164400992254228673200833152045712536396233576085525147588528377671756403584502012448013941891426871820561884413332904080270119595268840432832428880592382319622494493292253556229523082397170223107885268062506598651690971522601850313341663443107955075431381888243940745652717428011773233286118216428476101872792810108637977207548039142063843971085338750988572907537364109208548684222617027135436923871545912551083794270154464462041149164664150660032291124584724949239476123530007661446578003180592188238414026053504956809901041636795064749565654047474041027973194523032005287575384391747480192921071187401325539786888652499858959382198651916435068406234232405370809043103160478793009931916301792214300765439124023996615395014403084217533119338690966268976165911794511127257444697589530081931097105305212237088806582987781286552091940133647428613804806545061424171541587497909177362742975126312092964416961827650971029849575804681855612592492108824436849988641171612303088084437355825032528594503676730705705509035380378270275300561406772156352610747784724951199204940859436148319214638544431650493292039797339028093225741138914602435541809386169821687702061768163662817927381477762300944349434721431353722968716034258806625133559094780450495757408855481939909404665963651215799436165012288702713085704259210748112943988169677138895523474528410891487499695061199516363584181014805758231655763047183153626935519875226534271582200515999799799118534425837416653049566691781297052330212833395952986097305780056781458054786371192179146839189567552490921441735784365264027296884930797089891195260905296584605692827402033672655019886936228742908320834774835732864737897638202060537739479344259533039692932285140902421486102998530832337737497225521824183934815632550163840317372256539852051126705241946173057901523918963226767223627456773067737286349962307618640456657973610724166702970289238827870788362303331440154723675303120950148012134207212919375910801259118252495144943703059666809977765931081649603682599163191767449588706468982585881240113311160611768436753651413713012627885484512278924744843409261396273066599650809322244827504465103994183073525300123684655296278352958717440102046097426504846910746755704364904749026927695326954967145678530403081617720745155866042588727317667472676554128176562277274985288035016836997790951228963316816760261372012857026743078589432733286536737615289769326046605366005476072749678466430284326025451064050888299481180375883475005165954157014817725993900871385758152773310085734821884333736116423179512253931286428548589086396362547738963782132143793017264862019159605724809317650693902450464064787597156633424399021791369124041514303707521974483765650069734446632629896488985376929559509319011393973656471040561943519535091277265275644928144568736945922959036004691621678061005837028546249631355388124522084942885715121357091506226209643511967674336028401098746296053207659505742198441172431000077370941106330826019634874849097655074795181763736514846931815564762080300438834990112996369680270631882495253919218290996061844573367805302768944497223583197722290076361979490855181245354932278168308704479181002099299296300426673183556484811265249451347761958149314279688298716760976903737144061474413479499398782468031618584377128844291024152226758112637338888894721138311254242559422598655688413649415253514570798108621457149050406899327450249321757916399597904336584001174140772583482762986917923443910694920996802270224461323469433405689423090103910558237218758691300120707725111407119127753415229715717596396578602230716188811504792892494889387433271481444483275509996198076042996868982293962433659670961855850144594077651421135448347061199700978433545266483862461255119065312260588348506229619456095910823799225129548947022921581172511791913424234164059537222605629652008226646263753780658558207847769932486371991162465225726553003389233481700066068189949914590949591606694696604987617435474986031870677851376509361649250674545215120765344258401724153191543124411281326418225945694186184079621475764132814936936217324355395093985765971779061397324434747562649828543352711703613891230542986920995707431632396139365500315535874742917222652302734734960883731034810735664727439901711834746860067828899763912991128511999126384976664045093960498971552046356443983326882604374200590980882008315749617349617291064067983040256735071894635971398696469253744096709475710631410539957150541343043635372760693456539157855775147874875321271831727414248768748394980724657081475890054171385629615501716086070444258055520502030763391801241973734589422048254762284293501955771897062724399612939385955053180525219079877573268668980647201507811099941504382796385024262042076817077819337119502056019328211734790317544217006241930309477267970121016594500605048246813512809927247975190961185754037161030028507860824667030430158292106133137782694673154267037189391345745954415474685148806147452038590986326147241937663752331963733744599455365589542153009788096574228941256172195934004321052921886332948302820338760002816561805828152437996828449124246170701189683920425457126974053822298790945087968782197438684480147348309468264111135630220298999844036083050777879269512222956911500701512174802651317894258236262090891076957126150908435332018226135817001560753265506045420268816272206394294853519654640155934365059104089541921376447541891410917931688468091180839679060449163700723231771986625302297302841214150506838317809811393004213171921421106695031629488049759732701309943433519910485412565521856076889582984976327388351514285951377415726866620623409550608551262068363062819919434816678221456623650511134017667674127462041625625777951080087965683036280344995086864411089171451666933632460653787365674294644210165499758329863096435262991250122183214107425171682413868677652642620697090911046475125383900596306864160392455095551648059420018264005729162520469886366601790879259842594408051716674395406037797537375220175245949390682706495116399716798008651976481335729554827515390114783166018434967473003698105827437085048095617366266989460334290171817126940186998736351993114144779030719326613298784792655689345672542724998792625769079005632790419166903977626742459528459944527346695292338344535757531772882225336210345916333696544966837389978330030975504740339256287559494185192716370466871441187321781934017326944660969789756447849152605041725047330429245092818145044806786949421225078408418407941934835821483908801834949099907711748851085197365978329478398776279805093315445775033634924709187634645259721278991592526013225878199765230603656639803706935015702739096805232513460941299649478336968938253826779291742954480268276277790049799746071992521058156889769756208524677772828061269730752506310672821062545157335430982954015472254315123795336807658365119638931878261785718283983995696394516898878601023071145854490675987724396683924172273984683779855565747918835539987734839877548855942167783982424719911627682417765292609029295807690167534784171982412385528260955233602378947447623369779770250628818356214627141077128626142359136151082297868712809086725958249521660609081174943751975748156800177335491371351357329721786706612104725226451514209155986437778152716459383438857073226605137234341233683213181653131926933754190738911725744842854760459439775263005243478140614592458383305664432921757120716347977072506034102597557300854138926825940079649064816718694677227115633375414103527055484310610074186375528545464844663258109818771302811395862415410845501558822226554281528248415144890060844663287040502520413338289850526108523536052383766209521791587806499872721529164206594923716211102721740270386452394916307494476611703297420532815715776802905402040245578715380961215877469742321239461954878847435058978014625180471416107561439702202733799977047248389538602545556932463704752036345528519277131509903883652761684841847411728118577154268784927681130175906879067502086241505908187801021804418175663308658822071509682853068651050061588354941601487478667723315059813931299565044366743171768671049137554059047149821573609277818674352369197721578959235117402547836757135949716068783082674672437083351470470211766336777422265215536140734334346417293844892400065848225002000899289657134814457109604470346378095154308530595935639254516319971128192209923619560856767020437724740044990902262093354181683064144308703522367040748720235349192613975582581557034756367451654223870935519334785195024540132996467726254360963406427713275219043778912097794848502121001741548422180696288506967551273311833195959764926024910067498250232637858142983614722663434373238144587927704928915289736971844489641290802719985354426745846418901529471638806586778661258956578854169032786844326857157379693534916753270793895031257271615838562239517630558877431131426626110012398663365804339847351626242430517270191910726655781888095170204916040909608879515652698663050565182044585961534863931924507651326447381783838655450852988762174017849431449191679570168130145707643229537163266175140973304943432388554715349733253559559326027987084132428291852386547580017190091488773165125247436438716971279787635887061318902158655397699800550861172259332297868407553982631485135430959743984421725951977596492618835931845120253112839582598520103750171091415816996403524582882144527627684651987294039124149653617162634595994185118034189970638228922546209290342355008416186425233597338007962657171081244013099663875729005238604483026480342201769223912762087895698077406053396494516528245483074366567272046399537901341390664396420297105036172979785351900772277975641878491414734345490638809744928836745548159700593263419208833935882770894899435298731208317185601980215415030469602249249903549230691049590263975855795169175761808647220355367890095591668738414494477003244690356825187251654879444903097187836380241087539283642266846702339126038865028314659500691294325785152749280118066469351862416079685537013839738824617805674870046564670550253016414582056554651194088132637796240350542432634487533833848780547652067101463947434151451860970507855857901701069807966906196176771484903925245470639288538009382196633090650551697780465480014273970789250624832611624942727329050146445662968182465297923704415439936972397522777469084612792608725001158686409999087330226096815652108297278139445044240586558422064629888770401695348804172839645313261494061767139673286681002502738410433325957967823831273784980957710514378798868875741920692527222999581821490463609069045671150177766207623273721596956549634867240345174791185653021221589579498097877350653232533804040765582158417861674609742227454959459941323406962224778375151553193311461161195471520356543764245910281265501887361531515972668574777288308215961362716947051087669079103629078293631437112870347141071036503990421584068910088225401775088626955649578758156471171209386454643950164238818961483899936379239470011812186144115015759193389054933856052471540918025425492509348675526208700155573306296907293607282665234074455975152411462345288970075718919117647108746998520063099676469929762510741802605752189447856908588400097512087475967380341371990393063135117226840059597132538093151453184671293620328151616086819289463014558004214826625987831376070912531912020724132985383928240327349061241464329650044341224939705502411618328780656854819099535850828965351996650542049057235362370519888402558364087459877897407043905048748682180156413227304465618927908704948642113111542893492330561598931646526262476543160102528821422191776441244419243320329948083065005913906494559421070403659896261183024444653984261555778880808745129878030525010741156846404192367807089805769561591209332448300420156672895851147201410567043943733139479542063405599366113645656501185711786817388134363562234530262045104341906333803599482328791015706389050837823615411479727724790059201917490957863951987379411935166665837938604081600910954943489423873216961972099680541541078899253681149550917018646684626829461489462884737717085601636238652853627259225718571104009565111288434998931842742882809102792864985680159428048162698608489880362141759726767161607091968695752876281322133102019805990168710097139193141420041733084920497749428020821608295708927050707425538093728163672529803347761420702135143855862724940472218227585817427432201124029865384572831521428331689593443064466115991069728963622700705969948613967926258878600318923043630908832756426113215828658766542947011366583759883088379157621266150471406088209244813354284309551045134571669666894955205405554032849434028829793638909229075015980603505366618451682804468596545938796002070644026198251115863411071400796010656287397176908198982823425779973112623253182488253147620216339383720610916463384856123449850062802695368626390190218699192818581382507620406371621061511334984285816064848408623780239913805498357172522780951898281911437415032235166654590838714129484587196326115108516584607253345523765716615797852296336376339536964605382509121302716204501975991593857090829567873541429431797821310090871718806370270429558892388937383724652992504408587177385478919164671096869350066514768111848840044896045949814180948545272755824089014997956545005397058374609839050943029543550211878789549354029140796766587474116252362013395088384155264912292560240409363769128994356848813067886062933800035923538416848931526805394167225990432098730475892965239958270579231508622458989054433789099811282277390856402701458275329282202506201529049426116753225848390629004844070845251241223561783253596396493301164881236915454224202563447500600515958680633855279414452131894934787485609602404456373800710052303323099252720524895932528855794777542760351112551787160188915973052632621883670490603080181745201937994528780099126023681235880178451855910926270754051903539634762635277348669560191167432462201333912170299547171679698299115070884811858041147892637357905266223269968202356807045325454703276069847411487467533724867217165428337656574931813915955049677845044024585588908242904657761426073578821602850376779133735370303532907129856263058933386722501674855083460094524650201307510873680547017493739860115505179105745037924250747500514070412929917039090204125254655352159971004033472856179796899013864980807229612983110424872445661408798641704076842647347411579898963517927746031791359414415654305710396716577311786971174481412556087868369675802253937530537721869697374902550438295067025401507896572385234705935660686567538269680352633948126423140761170225433794533438512538342615467842220452609089623525790042221691322969573815244714308705775043951034247274762336253441905281971216784944096778686381156463910819229412153433700292238770356129515878086625294086968304158313494472039339267998814543714087314401652132603464516452829932245114689815379737099251181573447708794820588722505602213343554210107665981201879467253478087076954053715470300601369623136139459886617284921370504366908210990018965303254496574844180070886985643595893686722347796198561771812238761188042353227037542789724274309685663051324572251143576927765351193047801923632350270097202637304482776007983344366279980897379923893519658707689346004614126691289496783438370153404861838688268274721287002680576197471708824041154727849202770147527117452400143727814406781624012791597131567890870973089817736134644527199176858778860142463511378411039406350140747657733284042720412125035636710820369146934046026787084590630575098657141316380807542928486477983871664621864572676364140505605573901290063083804594688458818593410571621304092881960744485540198425609883695434506745806419490792797895791148107916259368158012489901569781674541192469265474159259368995987970363774924659923272736898701928351716344936195517060154686596124117137932847924992272261623981953766017479945932652018757899858568288924200263583132588171862539994500057536727505423891306766271985115874574231733554793004349554497563146009208983395007995583716141512106348467332032465537996039224918641752584926341816962202545743554576541319069254857968910378423723267186494940085100014564998485196106901915763671429159973758550668915410290500493843532127748101544197043232588711049750478404083445810175202404349408947115848564737154830245817154250499070569412064296089220274926358479075533168690038019941517669651850919769642568300565750605210124702264711453356492043852862304759295445299111950863659026996278942456335544830519447826561615935172917221709546977456382586852755338370052984875157485800288483753178439294719538081452164641628469016956279703758907633448301272212754741092339361563252431236419282644070557238070813373000649153276930381344012144358747713996105336967357248748471887371603333270941640764867354465594052352029597468640784350550213230321853846707515536099692727080497563429552492720871216890720909544829687340596883728825721501874503448105357857719200348055485427000500904900045761431639340910117769133055600467024193853693157724928737789734928627694492840677500167264722742858125015471110141509199949378583541824174049547047541571868513010071443956647599683941564192797902238246392828405115853350502140184898255135946528618335536182240425536882896839373021202689412096727502390424396874406744554984737145692436679831140424088866517791079382536212657475740738435059661143830659254305082210497870540261379022486564756353459580627446050716505727220932910330610147495227392556318846244005032209021097905305291778827698364719533948254847374050020043893826273679230987429869525377213256783772616895626872497247147317250198858375809045209968081617001350140046367326479559143270389735111855100404687760631466911158375979777501089827207432608679185406586865033113844104239371838992507029719372408606669072045772664942359593900110870671278771992759903945686325771868747097933605982984051990283771780811907928180307840738001614697346451782165904661043429594080616808807415396865983117945919471868978715121370598176689599539347314476060899270840199230127407465466264560621545963430941040704940265115483816730993596394749628693042537270643213889316799166991956869647659907635616003676858821042281741615739776390847443472375423772936169708599124571605173255882122367036957242710332382546011355199403623173564812544483998594605639158149639551450795511648868335995600685407856672713898529764084831869069806377129653952066681866347580248490288731590844018140350672917170924206488312138303881371113861034138227713087399515400908617044808473200863695562288084643457074241070827752226510045093844227163648687862789533843939003506184105793318934348505760047800999859842007837750357430845852593150008153109234614133190339370544269595966086018553554979592463147596489251393249138544275701268250405742337068018666693376332761136057309770777473374066286579167663913800673139712302048100469173868544891243244042209775503570726704229556550014610274509913096798838660279081069224905073226404813974660376085824050408967682851416337864281392976043910088245319095437495491143961404490121720727575897842964542533779243742750747215991482187993002060383523291128462894843594708569706173451497554792864565860668831565706447961743790169872746117850412961032064214710993102087333354160846100535567716759079662351338390331212899081750702172102568265230076806662726617477550460914341530167502247928400093147386268340326336692786341956347347253652491793516898334233395956650531172263817143243951671316596023877375760917315686929297112045709306326856242122389159957622710501373724894689121472366185163227361620760902289296472265158182923270700628109062635114909401185642934659302287690420554409608464714422197714289432830160255035614649935838197827877876305568572891997226911342789686327748955079909329155545809838055678961690986881136885934447896522441814207893379582059533253053970971801669013844497654659670014821257029409158299312744011473180487594104356959719460522371814572843647281700777360957461927191894298015651164387054194253552264931578428751324999068518662902163725974365768804825349494546666645127241915386004173741928775562588424727462256195309856059300612578831976460271400092530366619255061281981099259273925903672734577389655699103184224237524480448504895912280062162408583499616264754237331969236462727128918450963888199705503975309492728567687571081990828205305007757737344801018252632619775449324900643477182828904568772535088840169483491727180787804927358303791169349294743768361263372639960553035565151438575271374388942232110500190636039436916354111561987594341996326288442483270712064390196603500462908412666625273051597099303050401979110782222312550198155681838449964504777327191784686614402473526183683251045478540890014351071537996950982107764850243892535692585069589961363202531346810507803469970744546991345084721936599364141212606526189795778112670939998654034631468488732391856332878003886454984413586188485529633147544780005163083940193179105504359597019145925415318879607845678449915600527251659196373630923801307731979791393146711107773538001503095744438809916895695599110621293734529780722019438611904716796884079089311116295731905137879891675613915291018651615251506634951294588654953187860944392007500641716178559062890615271922592921055439589068498564926077017599980468269975548322286007949334613944723577715538402630987148966873398874759878788871339475213605882509393639844417164765997727796870081462093523565989789247932892700546239584275340675674708540259074275106499456609974548695564512374236963560721865214096353357531478063029479789193949903277722866974885847490834323539629656248481821679070825466625391388218694688345079329202115758597916246258844226285737876863801718007243476732556309625521602895451029901563071106152187839803728883187583839979397722836842098868516493539119561699564597543665287788807140272509166104097194163206861211178733957214075082939124404875020514051421035085476311412137214922117969886874767053612733229876503145390520617359369846776727120164460695464190251026238479001897393990258898361692448953539636672684920611717920900277944662436831734964152683598085544212185299682396025934285432392809255222446075923818092504002852278102074061006399058976220189824616658286331732910627474310463202255564186959032654635242404830362453271573037985799918277464585540899479186194456680551872455255361470996533494779097644307695841231112187921674401780581863858428504780712227993652440629532946941968894071745170125105260753082316131977974637434358857010358998819289527124013240166354547467559418187617562401977679886268603747727606423099124386460147396764342230640220385760956563701220017152391824207817875557424570504653530563068623521207838086378006519040363104629519957575376453034926773497769970053903655189129780425667519884961879802161345706296782258607741211809703879403112111038688387281714507602739248450218142529711200654238456477934488289480504590920331846178321473771970514178820784374684602507703049775311588105117306357853427539042980613222118288095074889907735401527967757947974395154360640270253290464009716851912194503863080202796284366002330739258433765148474848149101686038721799885091903954014807207854653611829234312649344700793350502835402126059808003419592615147720771221041471786651213443790846611219762680982594035018985139579798625086018241441934711999701685151244917978630251589829583237425215617287069004018470654625057647526365954771283481513587465459187241109305174882103917174380350659596297327520196536558880821111332103665315159530277767316268806144858960184172073574858322219501315674586049994841425672775903385767669617310880057852047125695344940337571097641997065055095380543959428867293811137481531062009780662237768501051285249337155042558535867254907089031019144785150135014356033259838082591511854442800528232992474097513450308444215430885703284717644842963232236475118246072715389784326429198817423871643784813802791724091803451065285082433659219331697346935208778376678549680112321275404950473212982993274646941740330740201727302645830608773987096684454508550406519448467355640343503347052223814337513702148599973067956524664306283478935814406576254506124016134341551666210632922016560275037954675106965734167199975784345204192035170078525251209411148705043639185594224919145951550976351860686895524332151087984381100146290916078669524355981741136028255396671674388791445986228181138584374519161515837932559418160475891755270388423867563079212337145198079817509982568564334321613502969285724359734738143168436949394085232348681765146397225509610390176477008344824125053890509756182676955491776784218685942229292298203365560209422936766025898292329431148950136185476908927552956171072125357371531518274389808119594112806780898242309736354323302873468227059914518532237162925690692159092520393747118877311823356728389274016680906960700280894020192511907760612266953909954473738239736435159884718753659753259686317254525714937649593177951770290632567146883176426182281060035964506339141615090294616295774139155139535193707020660960737056115665894838416378390978330765600498813752330946530338108584688519886581900433119768861691945327604845873117372698325283807500206395853999778819317973349778391475043225336088516452865076133371097608492052070067434702054168011623525929905542594638678898133958280696592687539417368543924716978073334285243296096802122246971208234132592520280756091635746142338334179536054686891650432008316488268053380863098750343651605949249910372337421946686173073545809366008005560065509254968982919281012405109981267184698349952922667469231097071182816468914442148028600711925934949329427237213964404352827431388903365084954323598045788040643470575082542088318964743683565824402282941075037579514700595065026208854436176570169506335015124778369796540400390710815099095725739064741947563354228503062759300693762427399183642747332350817927719316556290494034182347212052139135307316938718968857706120624833393040326658773329331807187252541244867848583680789890345126219615279913902386471645073794257212479839275664129998124148076364886988293427263875915988140167744404887644002838193926132661039297974355948457374819293346436629420045192806314775132482810172287179684800925820417143968998979023097979701385272732811431648877447471604556585295670364177314269128666335007119508517384137667068053464461835878511199071345777982998360729368914651467313956534241501048289899440205997398197234510465799019188494419315468779755412692398135395290555125673733480062709093336571198564416920474199405809922410411977987583427908903186284688228986194677586671898710226244791534032560748330189528239747129692247524925089211718764052389543983911186093227577003522217119076976246269157597286332358578463409685828513249202911642941949259781219786276563176266495370490810974098615835654891891307647999151856522138959010111802008062263544446137022151942767338679202786158151339174170150382773720927236283656777553428879518417468376623132354029263488313690885112487194231121476757141987342823090879648129514120383906248570602235067139702449154734609278052249634188642305525084185004170121151338839219207014418888059941990426857860998026941716168145336498590967262886487043828227527335434907104969934773655825259812383657656675527729321986161731774063751688776421650350100865148427250559447120056504242609961391285256315815564383128892669997053878050507599732833645524418304972311814871613171186386064928641852272546726332324403685217600525111736650854598202097184272807197226983337622232467815265699802719554007524825088890154527173817028118371317375855645218365392258028913797400359874210172790661212021432722653372795189094587120275366651126463284788342863677877200532882466734130275307365761653930944052558514219387220159633788904347517367049915494968257217695317353580996028211891295428633708886026982381246543808953758364283871497324554924053052675172310163516291512916301506428257081594308535530411421235178583305078577148278298814695325390781869268595843096180801580900409934111939095910556154724238023417656512513950957624192075904652464137102256871810450569867657744356617250500421258395952569808358562609184849469557592449710989827425760309943048500173016091705950529937808195567508223455806064896571624535530544570801102200648088036454162266814701804601444597070935312654318097093096125266014222495743375805548757798936075651603732355332846781296507117790750472641997174921897340938845892513676365490148119998734759278833751113795920877509122995178663738675997029647097614566782365911953214468259751636959336866927331102184752163021378408214376794541358864390110035378796107939918604519169642438950553234785832831796735450210524837905698083364240834414167051540743908357261155873842940187987289783726941466442829548919837516093083953960118032937591240422432387073899255619229597124988691423071929121691677212887155373726870930877757599957444406385830668060057742474134860421877412509385961042780781889782306936809126668378722161523505508363679100549074745144581622988450669684517430982763103162305480893115927496605643428965815427945638330856083458851817691212319645156649196039094884489092783303743597034209127302761435559006254362331375638054976148096897979986673809490301977150714584108545217250578299561033065305080797366562669931885881517940212180478980512609251695856423246245955192507530715176465761657568120707275504790345427349541680358638323731420630570325653942699070239062260948313088846961804875135932392999931438199608002580942645816117155877771238423389637003124579801465585925249651126766105792934394979379099528710812029408164078388114023931639245103949625169593823798098471936712878569657802246387848005082885796235703699936288102952724846759193079137817952628119915488227934282045027691965624898633328910238128513035731877714717700488120017670211442386200861242910616723532242169077893822493729119359698746149654963734273758945638027961637428659002140518552715866826203986420198450270977732363414071559271378338170568905714528353908462967185807324995536008865780212138335140441537096918805073761286177878563405739940783997207734094178434028576376455789809322813910730832914112947899098419026424686023265228100077772646376478362998655130941387131989516638135302056658067862640334620434841355882308020725294450020187987653516314713992209627416083365437866152377134174032808679778930259567759663087447919394565264441373102024551009898613858785697965963935341738052036167588729717674746149862264096517685256408252688944214972956745228237666108115214923187329669008841021436393099326820505499312331442880587032002960337588756621564365556803887082032818203535487007655142767280789068811043419335589363053974595953666870980060239233572320435029344111234486399721841458795144110249453917632047178707256089132896881224955328182179357883566453531062374693757173815765480715694833407758657467398471939428924076360292454431780100213509554226670151482829804248323344791872104317394452865016602729395776575432936494784333515306648102905003196463378444348357064273219695077630279761384165537346517513956208510624346689641980758988521240165703220819081755794750120388879139717128180777960507247546547848726819184464515033247356808559116764213152017700707237165818261136306728073622414513746373984505353391525116776806024628646080407472879079179165377916097457811899318107485937207888818951940581267786712480764836527753705418292223884940527536674586019251926396419221413693019752003617296051586046230543112682620635491715457143786370123215224543542927670817831550084933785223205585075874739804039100196410573524798610428626027780653789317606916981914009010325634369286532623564921535539795093042757177491430530151001995618151776493118834465185838508479864168389184694264194791389139748269808539494914576640220019925236679059770244671868981815311069969222815246829870472839201611511504448542711994353747886036829567753762031951140273608688651925815523953218302411818297645472301827712937700835625009274821607438863636558404214692593861530496333839716027228169401599481865309750748771243513163111738012275765877228066720255001096136118789185572387008270438776529148709324313801970629158502574553833418714894791300164856642941085529949769255666579765591665562632745409790891496715932706199209608251479723149598114837691816367837630175371550657111898654845284002444598619707494912709264313745323523773486676683467933467929134898163031531272677711339984143106827139500354424423670181496586559948461571430777948590063900508534403905381549212741204932892133112179800563927258166509707253119757578950182592112787967823078679806536465967274433203678348882213633426665877455060275669639443158656992482819830088679419731381619474022910630224874624986032884697844673651141410334064400815954281342665542264375582455299140369803648438555119970709669725525662496219223619681997829108963894420619381976123816678896703609159224969649170322273275047534548373372664398076333326642116977948828053305332304324277056303206311252446090233656055126482035752875004293893151248514492200966218215970922806590334781613372672608017741111268185021536432023610291554612921821243195960598181228975174029188818343745625332584458687706014942495371050686553485703221287968958252179494229436511159217015974227516942550816361614765564595767457671812520756619087660842553367994585411829801496928813991534096584420388382318204052978907221522240065546292503026590357495589171652375908701271373991058701562485191932327156185349643092775546991291792418698861561190757924271261046205413669392489390608201154154308441543534216436431828203560462106468305083433841160665632785379474507653508162576110541137062310338953723726705925446703155045579123557780753909921351259209884891501770155575167821397754978285999930295254360377730846837729194214761760296446690286856115591303996404445139135851825047041571007442972486625395832151408994347997611391731503759383967064982362957600349612971449183950718549569922033482148732319263384558990257691042879390048110020652617242418278950412949868050708381518916097801008729678552543704067588519200996250295844365924067992192848677784276253580142900676191146521500063943754862104734456964363379080863958465256345287233072461749697464676348522004417559025533162495654195388400825833668969969918985695711074464907417119633755346368021001779329403322455078058662771464607482034960578801368537052274165369354052630237158252195772380486831046775549223702283116087544743147302448410773010311284718055700774618555561791442707973717850070279176452571438271455369494379026643701696620412353048752560485022639548692238598751044007429528881238515626687015290186746286435242237843529633851965807164335659066726543773075855595548166197085944162208417413953467036966973806152837692086427595731177625624690117909283217834669505790813380013445146652037973588386912621276402986138914084319889010496173162560801873556751947817451585743759845674269265356069519776999463665490411524530316066290802807853840547729186210455512125510283756984209494217087537462828526900683944503654057755266244072202493077179540101559353003525172043414825539483399179624688662431757146597552541421728142003484719116446051273263265409392812240826853408628289351762360689547471580561385080090557839066005559056762719622242240776869681629251070396188941152992727468447779850400630198480938277708831995945585666266781664843870732184013482581311967900088219856802828370264539079360666809127207168810720622593553930866405797199009108676903704202964621688288775939399919645129014830677666468233104133057218709660859867444110422094980603957850117353241667407620362976812795451116847161891349456712996484134065461490936272761647318256685511081111789606590428030335940978714027819659241716671511257958852906540598782062785160746514060884445091425150927244242847111597505290034747977517523855824366853119502929681848350704981939496484037433079243360275290719410074655920974574677362802323550278241777329287170805176406463440997763570106293481740820742916691867021093652605815921550103271008222353222369228703128318041418810134897339486529712875795508144937768770851988224052466941228727044571492475021832046691220169241382041838134564500044613890478488243730470527799487160399541123191659899859490537358689276514743244601470306445488981155643370001015541254176739908758499061505038090159511580409909056943185879806675648432533709383848499784404960668627000715587164750421539914887389070520318344896605093053004511661337007803764987185430843649972292464501050041202037202056492224348862832839830062506648145048963348596552388354213576080654777046053451438439478853574702961459113993415172110418345508241012706795037951196230964131401505815555658050780671766450061407141488828656149480282361854000562493769132343029195502526494908162523701795073987787982218399735806496330419654286890482208239883660048616447055094489184038100719822074352828421284076775378972828176338268898151553384429624588521857682670756446582115053260907274237523059402105537506382338551398324400376867337157167892187354568207855246905041878894107901994942107965764266596385025109328042271339527755019219603267738089246525093524923610817271297150021919825231834223350320932727333020150940984220608109769451578279588165779787352718490395837440145661563962694853676057446166400501429561859045060698882826542466549289857753538157182917476558128225736067883503248507568052803192188623587507649122670174650302495233889073493896645599711239558692991195410743917362066746822565654403728980610162076334924853082385892395722061411325599265518859533744963630375665258380746794193438716632001762953726039965804975572192228425807294461105194462158586666513029636460776255017188317137420658718135695650898776976652476730657883403717646806221543496010294881713817673990556095572421761140156244207103268010096786596027087133431077266811496326235832071769637926284873654946672022969719465907219051498520661452866265275371753416659961060595501416189655408835239090696511221554230047923871233528135601044587643862224380059658349950167307584494701985591992161781624870343361071616059963651943590685567247096084729183351515208305511932126107562537715127111380239356229187596765780512254205177400916918729382779143127314138348447004292648849160848187303493102647204146187311960270531406029551841566094571380405573572009023851123464322482311861054517315511505896561406020382211273303363274497357741660599814878343850758181920796610574460318068646917993824694761198436648362473827774739348589376667320994811366642093161743268557169541885806149288220533271586876047044556956928645178687977660414263085181619502131634994752490380479938028305149832386394372552558649112124098789977399995866399614755505662929623389215442865682897158848590896985094372334605051348034716710613591946338013539912411204940954438675735540445460107519118322112018683011269582143389294668695757577167554739529560907319972343523314619104938226273721481397703519570953320705934305072847802060390457789623127100611641822913964777326963740523994823143394924068610923552544370729058965965542889061566374891565088014757162055076068948243494410295467669223192940719890763485687989747279649918856936922441320913020028020452815164833189201680105148485280173325576614446574296777565787940123688313868282261157392958537628170690658358563155167626795404698853448878637350600501216732441880539589776106013276273181892913849717284917434223313236054667248878514721181312270773309709952582011147607622640369619692343700599164254126041203973818802699351746460576941903179754377394467542148646751105315642048827710320158473499742418560375775843797531580273487770608620302704814051461090336863098267859550605980973450751202338142914311558645829714919466904083636291584961630540754128951713436259766086192903120368043880105260936518541166332052808604113917109872881486402698472452179956750035147892293925999619576526228245095595261759849099363651373133634485614624142063277489755423739365369606059756600451175036480280732375178245010625022402558837003151337974394906004715344423232024108512855472946565983249647382817617864474183395493737001259879283769644996494916230605630919436015528566733573054077261973738580648743462176162598419366407364065727161131823238936444722412396573545268954179230123949855154003818110647635749855190917360196940880473771856581625482939867959578709717482773890005745862325468399360461154761328599996359004129794930967742670046811992041920589838618275848200295030996120176241212382330585762172425633659811077629845388547439032191835999788421359351780022497995160123127876648808402956939100177148504143616380009360233048192748777942893008117602517951940424317454706341974646482195736229717113252717031018641596491097718276277889234093705989638422545961315836350739917619907302684972431736027471042857901671727277467592442706836335219797103214470434577669884685791790035582085719539078262306686639105334006671740786981928079177895292690072350919390237773272864885606462233823662307703532916669543619674869793226464113022408919762692901586298718304758238048075409865814966902262025866996739243250903443837388537003972258668570419813583155567824594071652545813049802652185819841962321829939589546507950322493074897807658799376663427184694974194253492283719611407518255070987100734735431685556128348359597189971422641170949665233443397158189386224120854285894951622402829712875353921973545127192946174595747364395219708004816966013168448331941009135942555075646005495479066668795941067329034124481007586431018129332466577403063703992189455270745397920642321231489707895090081364273759645118306672545968747495486708984767606453756820629250397850506664119275015183771436276888804801660413670044745123471905627912491575491437847248339133525672575910304378724982943259673866825014030992721402611427329508058792077428002288185802298625899876135162822287386479547477936957621542675249092894908940932422888762208433149015859071689176874971364210357138450509926735691595763129105773926911142461219198293607580323560935141988490098608496421309793100759895589072955644473516321586838470524116005839772577269048145208825594925095527577656199336742973530059823726905619654095903747670768744068786418444566198218538432321154882584308716182488162786953150427166694774181862261854375558389517210175606715863695032074795695310750645775625531843924524845618732908971697111036086619980463821402569151642080972565899776515811763041406650850593421274087758930103345524168804515411699778241670011617396532699583524090403425139374070502034256299282646467136978094752868868048058222168903895066130310222530228786145456374887921747542796752016805198154708980813385850663390638472073373032786994900160792878054239476011137207834483598291448404663761858291686463793227707764920879315821252834830872252991748099683525147931422596883844416608762772784926274918441641051175370965099733311961824302009709104681950009035709685445735354847275841536189278737394069608986577380335584722999015102198795636257741529530419626419211192722330947084941806554302639452132873422162774253603797681037784408127073223897985289015744072691055015124469368731904992220329383882673663121293249856844935728893651803559885840267140470483478208928433847719955563546490880720004547142122623855975782890120410237193978763038443274349011992767376171178892009083779491211170361910931908926203156819701672919678042057168226569883748076349720958777070631056187905552466866441165928811644324554247179950344340771407599390928899559683516407729917661711636768320841420478543684649296620370502001849623757300668477914251866980803010282597984291922994025533967417043762795592829273158342103279188473705973213733024598419408743826103638421955291517993640252939369339533469425025283318829724631063874614114413171348973494980206467426296351178180293802369508336498141598727742277919056069459695074359313102203978419343788881683790926966405764322268387422920663268595594934984745026222275449525399414988496936995425635499715921486703095879699304240458118144304021367625184264110123887453010684700168499430838717105301337344263045749746274959824040742477939300326393350349368824193450203149259723498111270749405556297362372999514417625578293279242117750792279455252233508891932211970081396323281502971882685794705091521830510322993454829857182192550881921522389132383993792010466112802043703865391337447192406662964824468541214136527717962227387398741201922316026538326773094171214791044773883319731593881557052830294918807755401837590943156210257893556883359320568914103533672469827656475513957756335683958373095988425854225157253782318721420177240694395310151263094156511218764423556879758619205120571502921823267954643108539050280915445484398284169391533742003569505182951246378832118249829103242248666581806027182763263986500643027860747183922665751749073963218795132187658962884065736783308959151429788343464412364256794425250042600138201272772224888686350256784772110452095024850701900790257142582594862308006209653541146035973686081177913840132890825644440843629044540404708705732582186635679855305957749432224731469325230431694248601502576909448826726580583495825430310889034151329449804555316598616550519294467045808582460917696013514652279940465977317811760851047775211275314263556832729820333941202934166642303402770120512849724780338289262856405642302052388238327570378468838085761069149955014619198930702896806014405346886741303998301220444192431162538546232948193550003550370600614069215907427424482130853508637316662818053646946220249599982760789740184236808186983151422713536138362529096057000782305838355526911093111934283761404030728559566418142588036509835549289301840401048560678504125928436686227353777032020701109698673417724817964421511484600562105435383955750634871621629881999891439134541810708056111606097085104535918402637246944166313682833433731794473629902742292370066920090314168098936388031178189551127322147109444661653378137798411655056563576670038257056901713579855927535682077600650246562465558581677087083620952247303640856408487119928745881385590033836809403732045741951720219402251247741812801094663058440636435966286048961664912721805665537947095241486365892644145878829552095436847379111831635808104901654236143188607870270630367414339079430629083034446086883200077364393748209754455774070180686269980247955427209155799089606594689736085361095852777580951116242775651686627795738749438979964707876519614287236388622903154113488151205963901331585619270491177702466857769109242999367801830413034175315829690208819800117123001676749134855876567439145621173929923168974228285946466281932273808639927036044666658752692949971017531581275573580274035662105478465214086191768407422673446091618637583987568816972759865995190617952448377317606366899899186736637415695161235108367778646329507762455158185606905800542685728123621789185451960756339177724393261092114838370864390629055595489506370787826350576431511222889131235270624049772198017612489580760497769098107527570938434447616204659406276360438948591734229787703865185025793771828108951682073869982962778640763416904253985667125064194528166095361703635723878222525550138626359098329507882335475897347720937624870762851060455570916408124407422485731164865509143545831663942090213601000186197718804785990020994687381674910576523589937592048665296127645401379127756501048226060536406968860320764121055083605835672538831119739493624328151994089219118251406850267819561404828372223673847171348407569536600646163624656104905911545710176941978342708950452212219612240938645054542095122176664732435549916257378198509237263436453946507733152041215910900660231400523856149619577193713841194438273350006986028341005173905928897636608332075953192091195102678734451959883031036977498608987808448256079998648684587924413872133371282450624213127709879522148367654840266436559645782463010833398811620402072119174892171158022129741441773312572544135193492488552851393488196324147691966397585840398247805271771645197390181069847364038721483245525162749828457296774979175979711378556214758457182505346035093942830186812375874034409392986897776547413554784137689167152219753943244508114746271507253982575103472641034490247635461733042498889387862823360089204132391798527774263801805777784799469161120989098560170355280962445232851241247892097329732303069569277642370554315558851920506541497445867858973707299573097443451350228373722638006906809368386071889018867013127762859001595548126358606527747767434700132146548688626234273914832008572403874013296862498969087432096520610998815650775617496926194899513435681539231255020527610932298279775080388411967295342003214649012783025980890749383545984641447507087649335059440860958856113318928085066714389536440616341470341708537152301013367725692497231207350835949083517858931363964388562793455992624381253665870158429030355720644156338803259732365651364738836888828623453510176101087866419365581310548389619048978509575339055286548964343340590861984188183940098030032735051137710128735558317463181124668870195888358232140380468200462975642544741270289032272201042475075185300493332570223902571814971618726922985661719561234714453102649351503426846037478160916841918574165118230157053760084702094954156872684998786606108010129394046122311880082023749503441440503138030424642448824477265121391904512185130251070385831545982452788654365620762521160970968833259353203851961345397237811842201163799628044701603787136636496592322416835696839195288073870645168387462742225678559151193018085920548797432636386555040579739534075484528449029114647017496139586901805709034262273019720880335892891277294134109210168509416282279941060050290556259289032676243962976757824945559225607202136089886269694168936959288643444191244696405900999469896218349744845482475070095470593430866312714087188211741561597562737214131026612682828282358823899287456981774504243642312398306427411679387958599424560997193904214663779249299673705118221985427419572051729494273681852931997634304415331807990934669113101767093084440372109259601321944551312168454523676697832658203486165666856398447352167028233848889315615454215640882792764144421915478642519201782218074728927611997179461132748989896260784117602892264269322021093266241841664196096623245192237698124208841196366419338065181191748473594058308065906032312606877962854365166509882242580497867285778693247290128184512100832376622443727011860259838391230862604156876573085265293641439484968043166391587551501943504525148590008957715449084016111595024382533600027143905372524083840277560154996145521151876684269725347783696471587968583571534076877115268825514117533508036095689907248192663766703565711093161221995243159614632883669874105459511272656484978480204392538254305942125149880386831083742698374190183365323197373118018004117174753302445072780145786572310783144083516814382096969922585036710076730745014767692390978225270970029517023106185258963291663338218226189995944037015303280440590463893208593199239921012001458348574356433381387318561410020110497616543528806240108848991896614529538855778363906465354469382326794599791403623772551081978837532335040005350830295860976050048899950604443423794570359927315715694234886646183600054434105085504955043583272586331471432645942164160331183498700758665339311265927320586702522913879048644199329159806446553675154694553627735552068324341978853226196025373277705897718760688128062226304324305900065006144676345123990840469306156567644135188439591383526542106447705746712873310459075985510565270241819900833785206486959525481774883575053548105839176141106722952159939152104364588756667163575005239789822301101330183556897384046049975410544589093866323863809121381162030011829240568789945646609267868151208304885525564120830307534393276457175817026377879002431381921880680322038645167390017374231607818079918557965980820360660805552282913800564244867282475054789844366970964453140136127096904766676078901330546954583269572575547345217772008425140978001254316483127505997736019693127623499796649161951054162259495504315367237241945651430331200979112472959435405446264797235877481463114223679966144060074166960992605753849570368100455655888629728081856089019061038445902076534066987423267071443686257557158068010554950766677896308816773804923979810253808170128235895021429650496598117097939302751598275053850758089630526058251918487813369848222853169657451293419536622379826293081767872666765261611467865698683569665577437431528628562521451386203024125916292925651953820129883572638892570942844554273842092019362999466657318781036678500501749566788839263678715247807870037294516771494016083232610383423214664779579416485787041230765170828146992688391914346934353982298233768863468483436258232462935329270903120296603399063587135642235940100708218832656512701005582384640438453724040550964088933072919346980837422170651581993599160335631757333359294808738094997284750486490494010264409843071778456613757466164137203900984361747662235348713124345325271382735564207993959994623989322976657210667057689744638236729182296037162169847021102439335034542278830170800515221077577925243161952425722306072393233207038070767315120611493754644281425894938812435420725362562926595099433486361616297155189429607889542844230839919658869095471086220194926603289419094262140355779631401943548229268636166238983560947331043687977633177108143407321667506013976968224176675606322156276170983461709374570165336996412939343667582770248258018774776448682867076329971376581786798001280579721609487490171323198745784984107553428151886504019590416304408275208138196183363566137283017498525411895611701737399470328528896553210599875625709119501169019593532220590124907467324978749678642050035878323378410279721628216223311642905292741321981897538233414620240336857333771822482055137924089181971686887869058073187052431000871488949322581911501853350240317867478830514598015717530439323191427858923672751399663659369597850554590362364496495501536728291222503488806718637754893868736875366207053615750493205185602921531092387451525617835839642532623497245737451752770617176841718936754984811781954798564370793134152172466947083165611741220382919025173627485321749410751006652908500850073783513009616368109406017235447987293586783204533499677376519860230288805631432457909537671207682821403753357284163683117867327836228284591990661451492890682984329492577876898908523900106545934343040699009765662366653652030117953256720262664227248998099209809213162475903657784697389926127924319833939396844316455764019698272248072114589694741417232506555156161772699408665360942644206988308311736447987733062760044020789363965132657784884651450164021358813673611683351486278913047970792851219168821818697191393850385652689253121620891330928932335038213468655924149168541528580734590269030946705835737759562663291735679514243382402803033344585959445306970767459358278213954399972499843528397528960977843767228689076953555408340678630974657263698862447856606071474426636242883745389201543396703210605507948840941329192957806857591516479653523486093074956329290907440787968966485219307560224847630217721102296434310316551056010788195915537520603685219171679011618765292038504289862603125757238326516836849667536873728084281750406035240061279699099237782613442189962163899235591730083468303388752539548555426786546066260890466833868905040666238465531319048504166946780731003616650985544545259438197260175970085853013014225935931324872521998918314790692210301096867629818987685757498597047170054277587021175255149172765199267837441663448373542513847972296479184699767544371315140351578496096433517610807219357427387755719890673943919183657296790867573162743793544517326560176109844745877347755602080734665253823184928368564982486272400752412818562737257222859828812034243878094622631065389183338038640915298327374467719631202329680085433310611933149763099465908796750377939894368327731857183561013434421590587827132806871366795062071348286543380731312932887024283076911657027235663078775076890016481437959174548585089132156732383695601186030287269005058287038654052594103366348890714504437992182061073962611003498407244231671872976504152774102371030386811669055651165855029962386339233947924103660600089374958310173873033059863819522333880480171632432606649644737764162798510045809909585657646848019645822740405759275570051191851842467513618697258698644858354305979424929927615380268151124743120431057941623094424420404179567731878138545559030778786320769808376595453226908171302988234130622700634190472573901631758950853521143135556583738657958100366064774203819706640875401170435013178744625192756496358120637629578671079477536004140562971392198385684273327041866658607888010728288063776666077076002850479702204083304853781345187115131013644479815457713955426639017698950545723582051414168624346389792573480411749824524726537852759213453120636573524630033099562747281727548920502265154845182302211262925488422907013264118017518574591224383194216043369712222618103208592679850481206637318007062469498782592831234916001119288043219162445730434570817804851661216906659873469375053335374022297337529739285235176727916501848154863201312758806018188367663866582736212852524295360100425784293475407194586128083431998972366173003273442615847121888820238451623938040550964962977103214798953705226867423484332732861815499013421371162205544678672599569151250335618447418618637120064396177410075377716984726620686541226512817661626486111174086349983859928685730946837617451212105391490346235708679485535955503584488641198782823045153167973053515724430828672330933072843307003428135398778076330552211221860364677357738634597033165075157347440877527355366388032985919386429031109870439375046207626909351643129999681584440885573346300150043745717661855053095760381931472410198831394969286897650705570050849085247965259887183520424068689800028841167170639095783235715799499941131954582295688118054421944728212530467548633100451218202626417148072248886741873521286182623086342935162715267368189127480865685393493048535735564160492276028372246444006646009167234756306866220201858293371252276128846603479424845836394835285893463037625202744819731382076196195570319003747684376104913379394969946701167826512070200705091667288486224682185500958153328984570151429615383301930587534201988931151336095544655499797215744448446023781218476287500672334249503532147315144590457411487312910461313391781323041495358910295903263924546240417600087852358661557634663395903113064610366640796385867359833635620710227884718748468830684181140944746311658771231831739925151020125455680120757890758661287208038513500949785847097817578164384079946843515054258361774601427165103487471332501847133545104132088469786960524904791932655595622964523312083146017778643823623163698560203529182712540212542200099750500668924713412698344362253198388268919554191930475930071264469870696922793207582894862155057397525875595692094568119797587037663355343739747061476666688720181728510050491017073940919577011159243368874960890894306969624892796276698791089319319073972132091628244290892081503328728437507957391892989416884731242835564604411555674850523391901172986773377705710668853329337776743056306382601344693501342794743080412447606394448687874521830414561445737197898498374544340091287006384931917570374031130888163116336188504613300651031934747941198247985832190793369378667543064441591442772367496011819519832115170721383707243007099897542754486812580386876651896643597392015569438797315241454953536381572356285513536178767658384363379887990365631270199759813407310972174014279482766732784135273733930000132071956146983427105196639751664490053147526296575723571571170047949068941549216894593662358932046397922059161839892120979655641312188197695311136793680825939154035117403923695362551778412233731154609286907766813027877291081828496566782613613856919243877844432067842640999104207336889531808262312946737748444321959953139187705804107678239301439427300257006320092332351220847167870268391497080665453116418202545413409294712186737698100705320629203851369197611616591878165746537860247094039294640853582002131135182760448750000471835858530228697862838056506838157071521908837738395762323247047287306281797577981631653090655065989796786696536367589631734228677742113419582385967517477051511224257292543210602097638151133027004089295450921469672971586717482246346232984480408317137669104041037479288994942530081026299482262714150074955006354603271605567307971742383118429697697531522221477480654647461939627328473229324963394492417745278865110898013381488171684478671051373364121032446152460982806000463071705579792074503955495126809687005983980829632707578870953759778793274022558323362233623767956722649651032134319899761746043833738587993532646685954057096705564625248605493522960413879532365922481132861791123654825433586280101339715432894838674891504068070759211381175448275645560640446950053270080116993295692176220624213304220998379518856682032114638468316639698745032888170918578402603263655647469306635498547608020211268806629420890954639774806223561285208308662876044133643825115299376027729351027253474022758728432762762034299232243245054639177098521423920354595324273883060230082647158099386900155455008296222753346780897714352308790153550879407136596673535450773881319571308952044983391892871832926185992707894167540059969975885744052287426168479079507673480963044758655609046913834439612181119354782000073342357784626951934773913955876971271194393391201096533785991423523855125295972520674489544519110614899901584645421643841864249997985609182073057599854649267247464436604931167051739816123362265847245519371799318354829444875550734752374277084638816704086250000132040210779020363300189046767735223538231802983555248694503938396541208984118369099169955626522999292718041044171097779803744876311898464293752213513573099904069895299647154749613978158199043725819272773345102172576479002957167379776258393456144550518324831835470822177208854655724021426880401718258200350573646099219536356120864018928381083343269970831457736813968573276463550631689667559635032835170484596228618394114742446965949433153410492967028520001367755480790546373973524692472874453330715005987191552814918081134629647955131737314996978932940324494268283763497120595823450178009812071300815954767946093364255271577878693286318367264399463328814736471342594185311417812516393364380143663011110802762419334870072432990254925381148242685262388517615051881336783912695708449904597337809462919251441595136912051114572318948932295777734338787167275532231759110657824809125192045951336392222533249042610535155059404618288168003655015802873145804755713119164391827540101281855103464508274149508821905920314493673790626991440928844742089068329236795756975012632417695920019253140845582345696465267267604993157276851582338327770201913423715949389029782096038693203182192522054343200869981129772426676367028069194404876365978174450016283174916914188125875241206603191254648628683902373850771143775069042412325946040954143972286550131468976176503026332013329950852793702200597506070537195937258598984581332008512051367646021479168894223600889956702244551819871616672687934940186961845973101955724274870916882683292030478260762479494481450299412588014451403652887743788163376090685629329235873846012823697384826663636729798417582439743024617694910571603583536602126707253045261396630013729671179137689569310275829953178217749499930723934375590318169350562494273419612453436157322829791289646654189637530731686013403274288049321664514257687752101064753947732276254940273577586040801355523921674589983135214083410993883686487435927522587534318375443161459377695576563065939976586655284903001329569249410289929596521592027770437264137883197784377222729251978446909422311769510824695853422851914267596402913757524002610521709442469359709612421113850421640604470084885822359063349257967443796223319187428691580977384312877052749701617885841532621313041980315340546527951466255054577021947473043188671456986492866184597013636438741834327339904022993336949812862860683883584854672352259775103402268448314739427545015993205814820681917741641276093495234128535029047924780743200045198699342464905820120927382992917172530737268178381595468023813608837172417482872466926417793673294229038900265543122726747292174343945113206062497356427291726553520256897907049046330383352700216008759448305925744305178347587255024833247950688109139012569423312758590901311399392999044626260722017884338374401966440384050979001698127765582101702501497183971656997018974676765229304532366234007253447332183002921772387293236565684890967454244056456185931314671370723188729455597916113381883148293712290909677043215319169862868555007988287657723032932970338003698606138112643989014053149718829872963298639765773000291539194909592084382643894238708922802378257913156365105695385916742627598412888330664542208794475391153257920435123825167063439723854814685670914951529625680980764335300686528344145480914591388018314045002810951788395518411518682703926879664187630199335175763745980942496880187252673743061688794653136337711377556761556643729459542823287312940561465865238671781850893026076667397432834997448155084780030838907221772384913462985145198201365448276308954008647261892854278014127173817851368886245171116896792038643577316195952549060785982931689244262598949181918828841134736136678515486802950875561004681281567338358744738944249973001049645196392483080266327707443835236309125468737215691405862064380018568026295679809556115232230058763281973353933767564283637872160370121616044535669838319768506494381334154217478584164975776405106955336069503726349456412461349246049528460404857978659300533399151844765896048415070696311782459445547647109812902750200942356257662701881989989499547693423286736851039712455251107138908546847439516953203858138154676243376371396771374365818577315377430493231339743682957201125223191914977362818706402289471026196188572645500975428762500194706104152628241934480654924505021091695318158618409858654288723223958479989289163296050004051116474559145682947163339303771636090021589468080859078119919127012837791457382381461218182324319871321274642057718871024054822289221829136945572677458447398385831238347056419231619638248461294344924321136988049337771827406975606620562629102094606182156189068054436453815322054873418004914677206606856280901148885196179097519048679336224090431761478684450166840224261124809938343011317956052508376557497545780061094509454127325527351875157269444456508132849490549654803029791246634375376531143343556414650697403743508585254482579838175820871535811569166863129563198814486988847080118621316661750019488075077782043269038022240729546808498220642947133405332896455598004753157595438004715895017934744314546362415714280421500477951058320004992446367438158889104619592658812366857907164729489301265944262082923220181967757490310389242412045403933263504172744763634040275181169517107949938700227167578121427305795676796390392804318812977034076641459792262155185899828986136389449971088091533531880606730248216768680989307979036617357292881481463705898482223893280235582529523855680185308731885438001136097730911972878328263965292993230362713314242765710303369870334503318670744314472531664555197006460517064769701413193553499035005194331975930897891669418610072495684148742995907332261488284871757516580593847366042607662366530320156679021001683653159291064862280005407690123408925066676659006423244753191272810219295423538600501534775654129056974714071675743700939274629744164426870622036099721665394126357137400605984526636094881462003783404230665426941950824667771670401297320573568173333282392669048535580814311652346161578473165036075372435798974621426309906089969118715431622817818594302833631929701157359448025837980771936732275274307339637625428770585274751529376780435986438555800565460365182610326415411652186040680656373542834819306183268898787868902428969552386296208338363270039352113096729295902643203450747295214045568564360603153394683870327991754640944393381868107976226350754710594696876349226124535340971986150889640183870508030474345211209547470647179798154053182999336077996070980684058109076719856811095463982234392775220850289864732231371354834876479861887867737650520672182051380638802466378778685233414769039183310017236864283311422336786832948551927995783913018012401650578222441289508522417111325890600348959023617325198837569778411944651401497125642423084374504658233166052240199044226659579203717796176859424844621495184838547933859110925673539270723617764172869788350184063338628144511868197264721964865474929836192750476032683092342119857743634378986848109292041460654178205474071745030036457586569134197227702521601240043984941365608113717862434840501521900308334964897867400515172553590658924021450687288205972994683066816425542585470083435674216760422770809079263383083821850125765038902026526646139824274863225968593565860003000610015541918907615200475428053562249674839653083511077292652273893302415798848535191099946688936823727625324278321015552040861805116259253950769451559240261518020073573303572046075104161490456704458961659007163164831127001862626368569880878552923881012424235122842816192050219833567159843590199821048131822497557549944400480202171537162126437787045072646680859355251983145111810550894758153907590523326862663679353466693190765617437081387199391857460780073097837358151904224328790855416068504033653114493104992415702943584676357068938129962700930210667718651845409743004886639845783176998014144074669579250859456214147037816677922575611258354603439728888231277602549918158634521664679218969544287700759765716643696886306712906273888711627787404853554925521319592508712877261099441181596084555985021407536790342025575509372842591057236865380296590005698564275812854141515266560819294630902338144579199247816680514843552788142918526838353422471521666609503965157137515294045999101887687985859062768768462159467106559376660508824495471351617274367263643961556892587260471628957523234558736232552757004423577257500011777483494569898461964736543665409644362530563553553153142846947089862423186243055668043431187545466142463501856212139553637435497904261878732358780274005041430154349995176633003031925388019344628462572421608723591751570479702728578768605730009444724375740181128206286080968401258394919509966318335798167538609214612217382587544181306429387860267950719111595503083313809627413508978942667412600560848762432829707116625362374145243587074403774573565133796614255495405747372793501301569869755438841692914563721671540377839964094145283524888290090867008548341134532188098911239399183585832443080294712073579463307923813093007540002854101936351608591587554906852203331485918227597619189319882413462338035960172480697599619133798968834870245633764455327563914335323889120040008022463449795914021763305492771351729611882096953517490780406755087102462254310846816440274884777736978204595852248846141138204283113221471242950427768600438065207293228883089974989429831584366112907602001252562121718148861852473145124478259477754083899572665762462884419264810503838684246161222327632295898004930401879039975857623915665241572465009605194071540097964474979076984750169195001916796515392292354798718126189327260634267933028413698938038628797297391070391184849751874854230098510106747500964160918981599661253460190361703078755372577747050748753927088199193846943773452325166675404178600348975480431104827068661808802079519210095428389400640065537455432641556144353413758867361451180060008952855126684866054770093181741944597828837317098561346122693045319346406021587653093337745744662138908528802314890960911119772170127026237071760113949194060226474324440438515235405562449887475508843248835204404972447045719374933973780367857488994456187664452180982396742364366581346206700316586377797874136462042229386026500523151567798371032651359892353818558891981163643908950501188656237617743375234874480701464393867326441845438094172706224886284863488067413512636415818948727083601800753871501409491599486933692084517665691232795245310417295809655166344290629379749177342883580163600541675480043207897840912995394280346133592429442228416140497589280210732630832582929519007493246247836727533502658498213982686046215981603885565889076570384281132073895891857975564385826039768661763627350566595314345869296133346876856325503297177488278489570288799431490348243180414664761455604922762593118015800113187960284787808604762661251464927895690315469171465118367600452377387233456382833292939596718467653366641521668066591805426784564076367619497700622328456415054704803345011904807610675412823324605778797729700821380462593107159442073655019303997360785727546388721971495823192864632995081836040413969212656633408442383635042706691256790623036680341114318887490023282669784571633127329120644256866858517013760203378580388881968019711508040331645172954701038734175907678586440436167987347513925672222300586907290271597275047879386231921129962707988860936967867405081440211834126352870066963233651426986188473099260427468823214302594670350683354281851685993931093892105829687278581914956819587316793260921145459886120581139531437276446347020900950408109386110828551665111052746056537946734063011245799203792084284373570985429867464435561012624232573974195333352478927071891660916569533878098667445629485143198552334157199341477352948117504132820848713609097430463430177817928676377148263571896763242941979281520783733689946909927624063087803587047554634203841033607159262339585378959570884250806607221869477243660390172949674824779281995127843328080273945256602453221618321136295388597956385904058151589026319027666482165846734048922140582511400534263304836653040205250180497838026661677763305430539600372470029856299577306616380373146470900119077778634861798175601480946772679604571326033933249773641888474413298415724296105309695027657307038672158323663703027314150930188936813673921795543219769536494084137495599154299179762785751519366546821056395275144124556818286863128986543635024940328497870537734789992039325283178447089364389856583139375235219455771465622572535233323956718911247310691367806825850525326317053687058211801774532737776943771004611082460024950671236605031943932552245495872554568923213258383552847430882438338707521244016229661418924490925400669799045856995442444286364558624847335827225449563409827142905037552542518781836201333165547344441119534046259784216513223002414403943832003362860784063230690307885153922369522320154327757744917497211747475564810502779180051607716877920761942604262341132740204659068437504581891157893235189455014050200131885504819779367711350947580650266310571718581848694594421449471262630621977035381539162662450776011972927009233470278264746890495153110352868145573491236768617798728811366341638148926001233113983830961157192743900229310203087276920753448768144597270348906774008240303561063288010800543218136556578651273333788265159147210581861556984995770178319034990652185248422351665771771762387050754459059117665114156921341966196249194617260799712326901172905518471498841580844805813428343376896920230457808033113265979361220902709549040344638290789367814271012245602171933470213257040065288609444701426177419602048429335999289778146677675136183210634128417847839041301640384582675150694473007908504086449567004315197699943194546920608256187375640508886321407835846787361327308883527627536322590205018490391379231637014918185737401570517745081271512998931371475041054420875440324677263718723774470436748497436202000227142342802888707701900347396628953856944684403529075655210633472041310461305789541484903318370224304400353579355451726539917912673567545320223048934123587294812749127154886991839393449165847701745656493835103684191068098347453204122132942720847904471651781047874283048429104051883276794034533029696238586591593221940362717075481117518637026719738323673604697426488772714119664292436235802756671977394096025537434279628376685477869648590139756516112163788864575544950233282057504082249913839074735251850948226639525465947905052697356453850342325251296771512076141563291594518136689456050491261791791152117615267314601638466294134042891872729027307560125673009972149626620685425521768496546699875409192828697874561701677414549789183920090529153977512817418226381547500244971058336763576559641036550961311109860937037098544105571629320307778589197452715993187888763467310504839740866823808030766765821880872820641143144511029936485594790399164627993746628973096883731852960610350789011662371888400689006249132704232582835678520520810540758134594033573284420315466469442339375598200368763504023424056721073379250773239247094823741616877948393995186847257350078751550638154641042604456174717524591892522187929304800317494583123623926500104901623788614714744946171146143045513524575561468219743656638100820027907489879561273619106580872700272261156750266426263437820992958436447797933601788085884593718016334438888778176662727459569205756443117199848955360560260115954668539831824143104799853940176511742291437321362003133187300004172015305577900590515920620644557078343055462009832329397719329874918784960799238940085994084144509305009373090827188901948646183179264395387299770488420800689098653356015224231225552686229210929929920954563333403325800407104026744255175907859829706624316474342516528024761312587679654508101397760609068276458207584990976572689843535684584958632342200240422675810275003236168449451200830426044526566827710634988328671599106176905061080203496798530583484241020603873372260484906702900179579434771502915419946592031883623571447133605250506665949985353505792396313330973741684032732910233195211336260491842561890146050165298696747511969760025136224914998906997130568243537094815768063254473932533998587217395966502212625436933389379373774002034791396940505270976074693118417404122874829347739938563589487141058030990937659709201476087847994470923761549674246470232623808966146921724942567765244212858359826558985673437649725602466044366604831702846601655931007821094836599631309673198914516098410426050020831668716129407214268492851643624365185329319561104614378864860350506117101086374340782609111356111123670038142381600488356219061161689537482346611335313968131396502850527837726626918527969410230774993675580226101522113027339184798716715293153242884080434241647790415405090231943344849926265843351203927938994976227155502233967363483353737196422505111727811825703550252453889075515233478487266006102376328212854378617583221494526540772060702227881660655462060411725296916621729920864533594210461421130153832259043248195231989874063494341692057169705870600906603951223144317392066798898545602851662984330318943013746546895898148390907653016852325676176259642765824692108666807659355433504913500661942104467892901417560063973181975005251209005095375308382096130890191132306997411054444074885784963171695445816273988656508914103395482585384954013836845832351371514330901656128353754814684132178159621415690942286458463275153785716770311739957121092336788121122061296723052771724711502347889998107856684251080020226374988246120306572456900849876243014012699989944736537389937345573371732618245845776575961247224014784202450721964713018052410318738488742571248392189864823200058668089565603573774278445409366041764010030541876062501991408649727667489060263390008590529307197506335896640343533473915174671761653694788357792757393212191967463354531917113012254078952545766245719115458458875136978846453795863803953634853915431112860886069320651029179775965386146840791295375515182207733476921292248423321410666353586301770294747428798487644598383004218938298782309204383445272321192098728485569416655697541360328801196199912077027940428585776667675318273472327085879830801587319098562632113224979860374216439318276047101996030945341415151160003518449896876647098851620298362645905314009134129361616981605816427425547796873865451524537768772176271285025244530948989500046568228714465179597522172779984910223001710358850084171153726743763943016720860369173549038911746884620624720401246681186105687299811720785092654607659854200212003396337928561921417474892446752951634055125289487095029765849068855818581904586351880640670222337470738759821213419741846274939351886524110239285916500448353689997316815530155944613638205929142882900416576998286240903771109357931063739883260533333837597596172482881566840311473465290456270725591633796756050265801797018755492284785386410703139420876928429199926854398272729151299407524234960636321403447268380304398729224827969947369236013243024822210074702020475414231507359946793004764460603851170763886346919225875115632130717694252520695761283844678001764235247385302172564466707027715587313509453355119149949928026549236337259603160153234458792150074173771218485532746541237009012326507004397497103826806159678637276822827462067662867640338140086388710966267844389442488709666651052910068609587077066640500151148001885795844745174996280840685552788818072997925470441409637591390175382312928938644785264117291093021949045419379011591776700229753633025078719241153140954907760586838861053081453387070096357572012954088800121075692954253231836497704836647597257197522758617175484442487320486728297115139729010718109268158659265842178230370748643919765888423109288685902782911419212273714113069590316697706301168847484886057371856844771529856193883744647818332585705256298166899308293929248390874520150991097488654412126167357568301056626003057902714032761595712005276664441034452066506876427066644746226615520225356766421337923374460704768349275202738166362337995239522963030087139237994069692211455863895276649848055293646289934738718776092367221601495729664730940493798523923289552720274888051389601660517501263871872526485251885362728975639783375871146939739762392645499383933275852216031805675727436268267693499805500551792326711476240505469445484509754965743263058247485074069621948698247078197303077677838222701046265103136867326364550683726827739276148968602395408064550752894232283459471253133009743317143580833143513886737929822665259137113518889119435552885533918208442812071137131724219784143450090769866089089143206801290013354413227427144021912007892098137143641950370395449244385848431560648744516193361531807568823304664711056586535560480321554988153786678851327461500811737885922116265954875851180607974540161265048658337877411990145686125314420389338812549109674581471395587015392042613514324390725019586141920989860141701379543087242257840332865578630683125791329333792734285616790120642022597132102163958779935168195967446639580373951641573434766630804158146737525769857548998681932282260545108203299375272072855096448620939679455059016910249630525540277136871666529218844193071184576171049845584945341917085914536326829075177634926907694424560325135672948076559517456378326999079130429020014954605032206223848746810433763069920183612814274603477494310513461516834201148920139997842110854655101872129010785682906662430576289005822712721392220598351815289277313179598097665087581518523320266548740397621071936958022293022901778962069470421901521580376337182244540363385930957381415986674796185038382963180535907457374756371030434822297060950066691658044104721793476230202193773080904294697981754136149819607472073924621562817403160387680567354423151953647751928325812592318640674312266612016375556235893760241987863713924849714101537486351704597474489403312821169141869410904837589337467024490158138127247078867424989855027864830225274673488718500461867026474860082582568720946262807051683912258207113563643693795017022179894620245451003307502568883176372128924780532734042488664686853510580631365301804858501514646014741043982879404433487441794297258854413398347648545081679733849348667302294587963290110676453652860570322663737382611272932740589730707123761505345805055947367387219304761047514352384722991763449408385261488306440321315557163531149183680450150649274480061010764543132112128955787699267586719956469582173395595111112351489199744345463866131428020006930753850649007540782565597729398421361444634419709557962465570978605691187983209556564417473791097618011438582793927667937070383718748372484618389209714137843905157571252983976710367942071477135860836375696050896657553849448602455049642322375062845520308229066369665275447721549317522256690317519064582335492947191648818189486892174831183413278632244409203283065485363635923053284671027733431746335535383722363857304627164184318143052685949756883804433589983137686827174036022801543366554241892716824967176007016859725401751636279066761928938784999333868038772742455391402719825160603198533448803657683947943259175911928589161372226418103388482709400642258681045962192833800074220500190779891564099851322057185386720691403458039879771784901819630486023427417815808035244643003339282377244241613773272057602649309213857324611293773987963078669776494764769210774233896569139276461181567245975769542628988587458261984466733108948891523380182695622831948970548106632741667742184233593120809012674746275279685456124677657935585549262023325529435928119104580405980286142028401820376237007725891285101490118363058150721447514966523057335139897991057027813746908929686390436090976531456822824944228853407866756046552992502835962251556575879968547517583091155860836665781004357871766406287358337315392618588722208842029516093944624944348105395334961504212405358215855770453204748660468487855372831328817977456932289041792865712459613466202423794577194879981232879981630500201080675212454450302473750115215356261639163987969010381278831525843991463026225156841745331986751487041158074128998069093001700849183476839688239395548367890051365657856565389383673475894373857751348008583193143678994004788758192325745388166473770767742673261218472283520154592345543253297704589620337846568391038701159241230218188769957464244559459780826324736120307798255430960012112714926842658518703249729239366830694277660356246356796941686466598956791721100139653910566184977475843653889279158615218479654766190321350700136339278604597158728423254912683180937040882342467791370859503606402496843192009542227863777024554595898882955136762553671193949861991256311643849042118673495689207240561888355266412700139132025079038861918436353216603267339224910721044997506746198226642832160983532932480991167019224694628483111456694434974369593814091278927217739374148852441103779340934189201601814877275165395646065078477649509394149233888809753854105700987105028823833275190615740929377056465830569437462592363028217284934881749986124385711232645499980916508027483325330273155419365217613272726599786457464512135498110453844679979359815706525448176162416093427134819776399793956896295155672464592618954659071727258411691044556855303911904951675923605877706284954927353136954508238665528337276450910693969247245196925895240423298286730161202772956750367955396493989106249978067592511807356061860772124915775720878800070235698506044248652249608379915354881749570025394811500284641842543022775600779261295592222804929831233864053628730409896972958454810707196078857283105706042170576546480969909825053068115113575792579939761196558479177703110253599801409334959565589937502677831270501138957740569614784267311695931500715071045039151822948308398926339984513576713501149036832334399478159022022980525088680769128274163234735836957743940006158758181655896059863180981564028034385390585094665819953171580508905706202587009499966472000530060430954328559874735142237587675273891386438212530173034791060415576333066516141232496642235856096255595882484462790664791361336250734762915512797475585778027649486058762990753896504974433342433833626601273179356382407140259579886262656853765838514046320185006097024430073493090592628254451229204572897814149285148100240629994260779063745785702088094442975910461273330201829815788151056776741105796805112118719848297968264743324931247107164390280421223509892948675543345351420828120720764569546828686668122476006838287388761773783987472051438945614537423966424165052175381739306866024267122065700146342951641374067140122994664625348901297521360134758107465731960617049448996649553007710598322080203738714247684432366863756856142161371219243274636385861883703835095309845971660110582091586615323442375754828424638379362432800178322388604915837324653726080167134739926780850295571958767813925237518925328127730695591202785830614119672367836385149633663737419287100036353304900079353986573969217121076547154785403921274605673778065201013325908258946357217330366919264932313931671437150086499903333008927025713536788958309072066868764935544181586394552939250633869293891103432122773277182446665512195915899676593924539070159264447279560686870036020025818264104569709425580012969049513234005662887945191177100499272766072429149561763640507272031095282384070546697126692841183982739416993144624408207091125955496526581364914067560148699890851223125639103882440977838874570825101609703522488135316956199292956659217779587861930727935143938649735151596127612802873759894115695458718509513718732524980596061188892904917581265275081520944600560253417278756303021182914361517001648526846534916128381799352601614115080599195368362557258749917301625012398503472388763953097076842097483984864252327115427770441424857091907032602090993175074938583527761991484014055493233888184746073235779908961133549678677677090630834041613339952588455771755767734620526991295883505440082079031283386382654878618943238034801373817127618435137905318505736401973377299553454778455370820993888695091752192814111617706310036793161363473103547913961130493441112694578788043366059553300817055212845658767697612096598287376439697309201470843032636109644782447828321379922102056115064927893552652608684977513475805503832139543251459256218368541813663854905969077010888485299233783760246896808582326844605851527856376623332461910199181810656622161851887405957191604116132888468282716408014067052668124962159511008267191048131228562267300894766463550958513203145039788027821876873435730140261972096617198855539411777081222303970657200414362057538912587242280427361891385986197457329040624624220999160895708461945519022274818851000974867812187019750273160110566038510170428844130000678333655852549935515620173699422938083816038621227248303540361591695007918061268190338991842270535829155129983411150150575799221609604560870567547890644789862603942793806162778113034841943377696042469747968113146538427114247819291386022805535544705450340296367753546070474220744504674993593365010873339560439605499923647163723276415607607679544700569108757395371710358094045473667899612708540078734958471343956824203181459122634873507343451721484397371503990361868710594792940044413757036592795889751856103859544567483724035712185300475377040410217145523710902081325449159128703104552453700836897251696426154592132974070825171633080807292577764913279702156638465854196513433423045185562955736698430840912837232963862464993953380031145575888566588564302831313108455962844485405691179940869376988522452809931973859329206896778618210818202163500234341873672442405485359930812172078609125076882575887690296814881077437808380664463492490481164894392362868878122726491309800621093911541678774194212476622744214898403493539911767443930371791049165823646802810743765727159059573719517120131127823639862014007358930578037358765437304041663999042604421642751845013641866810005407795416334256470996847297315111529828244485427102925073684903360785481752042325127259328834976649918077370283647150091012840808411134686976339499054520818048191809817972074252255600731261152419533152450887134135301716461207811926960010741161138949674962915794503694076981237103326345504347956290488484191424898347191074645195993021860214858602795208312486598071459104608987332486336328152724948487289204327765919361058325842594629275726563799500140111774766050373140171290840743107891050956717716151941182197804403187448191891437875712124864644698592983116113418892031360183620462088163658821095523596477796440303956110997426244108696014921048036341392347760929191070937718576009173229239612488456759780930226046208152569637593603791976941784731310939716946002349828133458190595368723414488911861073808378385893083177588765840643532998635150479297141959407839346724051844897044703693675118107670776303576458397641305162929107642457846652059479929350739274627297604908984286100719787661499944702887201422751587123658155572840705042010087313812582742483480318468074155480684194729608071531226615280503822763923341256659352922008003650544113407574194823055426295736913977002126053712109406412288903953061883621436704716849609667292285041508600457831885735882770935314231600547818136893493638895350320871038587374600399894743523345127690977943717601547774017935978227735719884789967860912524359582338540654143374759280754651950620850276547169049600876513287089265640388976487691529058655950610022330460635715597465826304932231336095170383629584259114903817682909352153202854169095778247738026008759149465134088837813129718099357682445220218334252854601048485825457581630029626416693615858632071305268826548046843928313595386111662990071758636772106834884726352971013684773844952742316612876616370527674479318875808634697313030599046221392315329698743875067854517022547877882145641146914689761401046199431898615263325913505047509839951521573946822706667710522615913677828829624555629495433912834573618671403738062266330595580180003754604061476468552439628673808183896998167012045921822997433332295590064030619526903637779986300186624957911075632642487974669357683025303557037873739809535237299815077804718732228242378726643004082038768131714963390230441412998520852383769963032447177168614232607615875240284395132371993158601124518402158467391468936074471740714588859102891889130997830857878943694446066153304732412149444574869508868101026007883443709731176925971923428498723374737782341334283946048622895533044028771873881479251361990405554846561692951905032424228622495593712869298395961039482915044187017900873612961135065577015940229481670797131661942698692254171349105099556361014163512488340091679426458161752702004883524043850568845474003031012108001609432563128549638468849648629129456724534739441334682314538695698467282889427393804081306370791838039545848252596364256330487834313370110341086029534561499922078521125792611254762939904202916398002987164823117159748516210018867613434727221395403514948769730573984926559596223301603482491968615047908132434052352920208545173651882820384773669741698079254867984692882381540613393036220005307720846028757736928173561262796114068914050200354833713198257357779701237900362922909131175669666316248065074015757730534515129680452449944438119404475564994930606222739515165509629796020134277781705765049168229046925158898796013198827999973297836703505976191012870270372508848098882258129699174239445709237039152374396733158915290646399823211560722331245985802167088348089663576897424350240441030778874777952951584587497573154396763828952269601828605560145875119228982308536106945234713442370498145581218550691853258752799728021794330974487411753511155181732149861448255899369718675208090088812431653347627464521980673360718741843933896201641644820078848477651445630642873243809860572257436455596792464225152896915936957517804516037137390915901474172813876429203933805170306801516578952866718445261817144058140980948542079168260956807454483313594298602112048143781952706355944423912302808475916494577661941520823443390148861957957746964235985579550232541758499883762024489963498242101825076725031786304876341349867945805390910496475789548308219391763082572243100125840591852070628048380010617826973715711847517170108813696185415139065588908823784931575362918709326396846261478314189766030330047290240078822718215641082766787274463171797131332075625101944809056474740562554642468871294658975167154460928411763918191696265367052541241524230683134783844706117221162392656160173578611927327990150249940470467716244204685836585718991515835271396539505391434667799907709562869950825493396442501563617769603887260379823828277421411546514832824564260222299085207252371003745045348590195807173115282532992737168356894826989200109281799551410806957467960941475413502149456961171894116226308699768441396884641486308972660629500145509623639124339213804774396145205547299633228745289827027394819028345438635337847351565870025151898948250986368890187604232218040934155471522116230755659293005825209253636188311641516964461608460675106880155489629772431462574810243948414581931354028884155871322856117729313876196769033163120427085317839198346801678964037269281033413716143335001558932228785150302611000455615279609047581992422663375108134169780684685646766827430958001387275999165385453457466019867872010521229034265093847877858072289758242421649606739139288031065958569923694705893999620992912348599693330447990278615516230180855129612219167923673432592091213284276360974778507172179063251540288966645035705418414918119628406219899780188366718401171695179461246483891721657933267137893072629126198424857343591521553951715474833976581199450715699419525162907821457151063867951797771692667696921343191724336480578478301448727951379069031736894884463747841230221319212972792789227635805465193640159851003836041201717390719452558502946100970829300792914096482858477676966096915917827341412846493352741191639840988672657686065927980507872705715674039514408742942705873774729507549175986863061908797050353046008014141473790346344174550712399791971010552642019447561484303822753613511529701572936402615297514099809638213779680607484374143719579179014274216573880280737305584967121645598690982530639364421734233766285281830512389857990369031221923937476137044334172504612630947633794391292316586979322173480987027950844009109600546431419509811277161110989702465473595551648652362888534219442235714681139317897918026170608692869180431244420412097846202306603241477870083811338399270046238430743383114304274409289892748071850068235462294936869087483964864187574063569047680313930553361115021589396243520087353310712031425939464343818063964009463798452172371038923582038246854259434948632918265085948016800364211742528122119285869680080417793110424503171703583136308607878352900844739923872521380589558785822917231196686174041640272316800794932142495535056531996701943858047955602015497222270445842199578601706748644693952420653392824794171741322782275618665840963732536835720517100306339445866276744282692302352109800465044505869693229317546689244033954267392844753408515749369438873781414785998795721543937774493070233296795225853906032358471409031043231971405671803062557289889566511396235722337186427242087072212427422321932930710080183094342070856663466977227133573111863378789768222944554472212554926164882861158377202396170303477739115978924395360775559965690340674028068565221120353392636317068589095701162122823869949530982313144204609104692054549185659931277089219972231695140313297346798748528758217748374464833258178216394012360851750085048492738881956656274303790433421797318646188764981793428692869456184259757066115291404776561113355376040544198635666150713358234578301842683289222179827969328982985991370077207030480174709362627104076788558489043413261561545055091452264597424882630948697022998897176823284351993870266029870730464539715163626094199405292561570722803353731485024666825665159288368662967932290612544997527217372584278413506352971335232450544447440427634152848838645299227920668815148951691723614034273532552557560031722583179586183391753762220586155333190433649778780840187796122311746876960596212700012153457418249244700659252067405614120707625303797497750902275572495797115131584179986924937582898440622699982257798898090742068105729954132095412426476345911282783348208591617125626662724606352891146596540453779633780146294113140877058015291719479392928235365641771203457536979765272089965967665777562436590876035162186776406793165902215586922050407690214704352793901315541197040897446473008248673845779293667058955962715482039372970130929966838531433819697464456863451775620897326581962375686074665733212237398270855210479369079638407522569985541134764257187000023670793241668258959413365860159904804200431063834906914678601697626851357027611404457983591024331529348588755555918905798776215616971090387475351887786830501680449048343631201851173016636510507090472636157750185616466835420389961914686966416351396939185731170264203091222919233065772679586712259247382252264619565891849340954080670153436941532581369473138584680636486175729013967372095804374489767467100573192991636528280353022003926554868585883571153356610598331503375862638377158514867093290316034253213054178903991550409579557528856716579333218586808263153068913108534045154810219960030387603436049763624174621684377615072866128034295007470206151935928209663028447992134182054229206857014615747797087461486237747664130231683696097724693768997205977118463658800899117303169999643951070404585353289949448285812576369431278367086727381693036097577624659035986647401774250364099003377363599803914973147089465513323919304047146834126525597457067490149450371897807814094216555559084520133088962829964536743897968862206081524062207405078227621283332689634368937511541234924045469355150085685078897306723631122143140024026649486183660254543002853865158453183476304823109014766030373510163473656079433482340854898838670499642451324817848569282783388239369360521204034266164180606336032293679056530221920819574444296864434274976787929047497504447968012240880359447277466168264672098370265502634109318301341229701792477710127635328970687104079246026396081852519819048510003980717354998732902401980554343745877640182814857175489244312398874461277885239149169043239469289124772091157185023158990416803252715328915699882152654778210750315033890306114471118259661807447592712912280456576919586191962849834296336827101280874185533639063699753957645296464540517779262599360807647307737367655996827851999450869482739940114638919109866151029079104374597461931760637149494688294139653610534610229720072772603234244265011523527494643075612224110278298579021979458872839672054523376098018015397685804020187230368046166888417464294724785334123800114256588174688703981802039496361364815650224589677681100263852252444604607490141415075432896820108471599414872572148467405686124162293835555402914982240297336673049079198381098637903948749970529216467284286099830703871149307257634687734025424523189070166759144663648596705584818977068589366578022164295237097079642600576422986023400971647835777550550081242271560915273341923964471952445869866777058743951892651760271784109037452153904109173077767070867523327388023543129315026326539516009154339205410138220511889731289164634397672407560256868937547232400833734306940937282908434127700799277232743446626114883433104391899305690675089629209064903693631019988394083606269348766130034468707518805196534430985002053044584280357188559804320447511463849785230203331484537175523743872364839929306042200986862589770353058042474853764866067541045115444661424950208781627722552600085187795144229910291578400488960989938546835481864935176647821855977162222322692522495885925183770181509983224938106064171321614190790076789182087504490984294574860000372950265859922987613771441857247422493465193864669101897175169964732428040625320324658764298442094968201179094685936777419626287691499831357019651322798690254676097781151135073554146381363941946175369716263879478257917625019246960685190584406139033123681510938823325288027423561476909803974735001916557433121433115574678614083988629292453260353849551166186436408966078576685035357285253973530717740914761395843821405765908253174481764427326737548042796804531547830762870748966356220871724452741047908180956108623250527871586962764172056744345130710958879539159805146987646865306734832368372118751309615858024475999413040580279669774650418565030758125664751953854734359208582999680502958294892796543641004266091216667971722507966445532620035418588514359526523020696713249554781988017210276412734426903232332705750863928975637978760368112147927546680775022826562489231517857532777186007536954636197154876204055968045913348893949721185115088943549649076477423113645739628383977943235240981064551251657004199045627605832438786363927744749356725276641302173542476048076661381661083163576097259945295014382619677183241053031739994792017854585026895375191438281997166874056320865554095063217944248100797928257563013648943878527676374571320600099784565267044968871523590534588422709958059290243875675598787469590223898298205203689029973212647484845859060686629770552956021269230847133105034563498493796959821235226811541779424277995208820558523595238832630258628452873919137748732826268626784712462174942977195738313704157833461115486525131876225854632870914559136608955508236878245208418348001329514859113595415465516418528697591633972035631960122842753687500525853470762859238762163168403068360778598101548568898902024319380846197723024393760916835903897904195609005490287208607404411348210314054359991830049596253385013530521041614880161973509593421319842359940137931408526212097579727639544330040659579063773470914808077085957697333286945960205147393354192264926803453306385477153530003281065470810451434760834934219089514556536566331979652634161344263191327047496637020381011034811701922473496784616022813802265326750191310994185927788091870409579714770805475041267703927073589161166855519384251640512889371957324168528723148045422304275476484352404271478256087649231448108033973706168623548532491187399896436913428392237715346457766542504843701082601835340809024900001524438045966352225284446447723865416185173808908462073558416611784382732190669121937776842261130858598906020861140956999400079459640789784353419905589015772632604141853020366171374342799698768563638432318351375849844252784195361502645329190467152052833749996716809879867320414621511079697501626196320564810998542327771120654990502398130795645932897207443650704203111304017711379376954166723850593100201222628981259208270651741629082140742154218457891443778191209248093487848866346744313996634136182776818933923093277272533877855172563796366918121101184320960927925888442132768725858030487826080625610316986136886128440469945101057192573512253406386011786203247512418753721744918403874169992874290551626468864695350637776757504387267864671520551087180551490556402202113941750378663674894822171369903794722979972213659511472267667762957003349926277463045762004031026446795297114130267546260336713800561207885052589626594145572683932126963216316604330175149715389424756137602400946248242877550301312313117640739593546231040031493653575384322150379882855056347834035754340177371751505934353269708238336615012507863305332724840720965605591821429034614946779978439541647173613731452301022128299575799594482548595841075027194041431067666055712638006284316008471471736595614415590156442717544365833083372404318086029548031776927150173890910615786552411283460603522364940277222909233601342495359275760584350023868750490700170156974050193249044730407044454378663739851813727493494188079774457486009646880557459156264877900032162729206316443305266413535288600901699478903947231136654775962724213287946373776268124107334479257768699908600285134544943020649574704703555521925428908825940275189805412465566219088342002086252754874692977570111037492062067584907986469907635605860731541569956710645013796730829832273834172936524561064009010882805605706789444458528766458964462842269244984699482586351770921994900203939204514416811277013022653504720779625468905982177729131114845356294035067443874726769270975505387513735462724704446138858093621876870589402475136638965158629893303457354350752785092423819191989792416793464281810271181055016660234830098363903493923629204617109712965887907932770456505089420368712438457248070943856465998303262206807786669957575421752467017133333283159792133281182532282203766742710444675883035678942356246794569733067559367937937499030045763685774894480969664844080114306388772577530372397349826882365128994938620698591023007906902624917348734745067596925702501177112506634821835407861825222431319252817373487561493830287848105063530386112883598206986522128182461811768726545006095986916759532134573098893063851567158575844148248191709528577884284179655847427261863798248949069813566275498376625875981380533536300278835915988954098069307906219418648823332362037682087845155768176867606924714205743746399840224464770232015088895398667906695446959978645628080149272033668774237856130537975929561655609432790647006442194188490439897640602839740839495432099368112418151322808643076228425096833712331574368378332412474469364694081686357868820287555204153635191848952988899643259313728333722849348114993829720156998718361239177242802304993641294711868412255005948991228777691856459855174213877455599717454535524781362602625110210606779944246401242510809190637109830182201187496127127480914291054551787870251702970758030383780805640115997179461241794978477493098654592956430695568474831021628059291505157479727252413338361299885750569715006885967192986457677787722620236715626771422025812795794771311690022565711153859478476972235267360108384901852719633095447867454813424207457520556797601150007900632394759826957987075228197534970701341268017400527928652517138760327432593474170423050481890362112132164972100391567481259124390880997182791735474333275942950930078909052999189284003391507130916273795814183569338620666107844801786197335021159102839831273899502600661485637167710419325455034152478529755494270053702640265414976972785616766084457239563297875420985895348894272590664448408585810969801007508476040656248599760107021996868193142829291811002606140954112364275895196386255509425722509157301602397070931505474749046228047631302054786491631630951550123453338661190369809436130143924261346818847238684031488872575793469949981423015282203261114557712891577423829582037549219708879814836678534248898937025055449008689543628843045983010340681557726358916542942350825993894119438897019646685636795542189833053213762395820533767752283462610695288114090316245490285503927058365254035849421730072738441572295900049768132579090127682189961852114384323558332877947905773328431229083789244088381233587403795057642891535594372462478231958461820680537693596595735372826899530139363063877309856762633656906432781998913737124165187434805202375275172463455252823697789914487974271815491256711606658139802382594530460153602771247868092331504428824006192306206304277791992281563289498018449435988201905451387074014775440819562199080904407658348329601065248730657595075807378468334278890837831390513530234390782772839232028317088984924041465335370420094234859155094505789527148433467005794670886428100580393052222775935089807140788741352082068632338527095560570315518631073080388814382303301692927344791332150341185765911653279670731657429625904843497294962892367268883287264805909889659421002536988906307462672904038475373526154654049265390442407407886506031004828418298667601057892427038745989476478451495952750153937299890913533415114876010986138859115065014352999131844824647194977436275897831580261366259041983805014457683535752036068684297849571512071580570161840820051628028237854793682914906381241738180965526146608726927130014516253460808035412740866181544917229352940294197806866483550906675031386243257853811173688391820722862083528907864854853444006792631751758980593681865907753274066746708995525281408201514237453834595114997391053207096436750265869271568841645786464615421171199115538116432857994272357851611427467602959073356044478892275654156157539655295227271966362932969066904096934767916697233856596352660197047913123501474653009279286166261035750556736096271682316114740975392283679074634792419869190041764584506250616807357256826889609647388474369747888739996546626910777009244768534706214718450552408247696965369828401354541441916836686901137305791166078176312160478417238386412028152531278480365976561322085653621006039785971548124804140606269157468594800585834943148539892147278229325475661578055044430949066166005072881288873468756134183641755266345157449369334577089976090316383259504045000866071682364182157608833476128484459463255683861423630784922481210857164409576733355332590244790775249769664489357920699445312748314049153421957281791731323931935891125321171203832341711189715417867724928048497297084658699218452668900806149768204767077067010297268815415639955616067768260826198273156966487393127679930539895812312881906277235315763248750545312002379538721395710284171179152673414306583967824848478396177709912108584931927796711251437339631675281981644111242905548142807253244865506530939047253267418323924955659359824096189237047187413694508845591991905745106949564865022578190971739567885146891101148179703393273337097258090096468652646208622500218400900894954939614918352761421286361806258455975249262743467038258782293250704626440330181628990415061231872367943382899626664808463378611596636228777458944702050346460886956166252567609039878332360564824926967315600701479667744879493917308547149861803980924975672335007694938166219510149168719319481476930574356078360167520000392612427947830962203703320943904914005898043316032748198540398223675653365058522133827812384180521386683782247551679325366559963150261004234878346995987594581549915032798264990231100769785202242037124708270722068785732190431252985750684863090433667332176166757190579182853551269686523563479434567546853235876367023596621622539027550603871714362296720060517295310002089429350750459800406662115250115045469616482786425005027657884272152496767512162084038769090003096541270842062732031400860031649810543586788829181341230783868473243874160238875929856933350490689804453251956045601302506662521709484824954215019561110319660404379829673398437683807402974839294879737159522262994466597328627654654485392007971268232125971178291920886435668398607572508205896704940754362691008987157479504819477851661886322182740042112191241767883507526980361621814136609321445796230996870106701527491474820600797853512710896849930325740637757122978010100172093055289174746458527125628649462413860706163402141307797340230188744416790476513573140578669698131194689464884851260523475588447694363869984592629849998482943154971061416974738092107140766071188106980436821976281426273367791909779333373166108619340217243217787424899556961471707437635857721209655711413210699396822489536602413813940779120072841455946197069620017833495828630210385137873449279582006956291507384209427492595416006596776646438510146104276870055925242041048472953154711770044988316396229185157577743325124969274599155264747451026469223281586665535910881402855481470026707067340801248966645959297701129903808293658522057964626413447437150878219110988176584419015879774452100818552127587619370067224332047066725063385205155710544055032373644010701071887314857968709771573335116723168123393459642480410123026457144590169497253322512369714286993164500092905611581625630336971291437283698425394525713736349714141655912873462792695613254588565275969493971580516007091709284600897058223409380722473765415626280146271827363268827426434337650663986992792612170325452068521890561495720064547553710357243230742509553155288374285207734175347501594406285659472202318552167021806332117777288935993380608007382306576765507462385225651387437294491560543492364125898532604219329115515514191159878881281991652830945738819744596482166684494586390964700407731998886416948464346454647301298894052620144019437014456760064779337408227869786809190771704581691716385721464410271797466510890532290722070638756885293884514637689763072563116999436846471142211319314813487677071629990617905759588940764591338133749754992064870625394388615948270753601302931810963911503950377285774721968921033195859225983337225172662926079742924257093172364312222087162882424934277650042997936707519269603597307935407076369690786266057233538453832481918274743924994071374726295281061361653534230575493058531086555275326532049418085848303454511364019337545111440875629859049351243285117814308149960150320854795858754440790243907675226014133348459231944564825246744485985141164935445423073143111400276146989474439527376943010036178128496100144276571677201421706817622669973670886062494998573939719769107551972274541664270082017931071139178471587507084858236216927939145668363991017096248352405314002123982544683167409881076594820014396856756203991929371074514060063729947507097447037419618735156162206943464550887329219808423472168845539434034043528566363065263380796695866688861709869773176676045248048372528231867875829642206129373099629619606126985233979578549179867939920641560695402633350464039722362760881798359620984323250021959387070326595202059072363234263469674655874941595517310409851364538422918577773434338343820196901660272426137791246176694485397148411593664430596563969682615965925892464711678503826903988707396573443910306403571670074427753900034177135618681855148131200798586547154334356697725535120473836508571722786043558881588185728532684540909450709135745449275997232858684257813265439228125107490522888232593040698554643007178236085465042466067346606179141703375488116443161813397572103524105734019084588926921930438927704943282014715321003564786329195073977956822868805846451238667926215229060463617237421061243794160862810142370873108178138877165367776281315171146220361130816599226389752365295462699682184132182432088506199985965372309527511586756634424692569379734186006556249888859835370156966402431061985190691544305166790599366302570552836339486282756583057684355124571430742587242976728722097915486115718160275094539470631834584247676686830781817818592814324305320752797512713284539266862114071041149094058878450222480021775694088719948015698246112161613639069569071962809860648618213973493315324514015983927564172113253263524018388139988552772336068217067133920653922921809884389678906509210754433638465576547368632270597956328696120899529584272496160517221813513296456828359875361816251265901375591138402995018229004331768556973596942938000256914091629203816699447731328693552531656625072172253785707212457630115610750753125833074231785474726386808734062652061063964111934718305961251450793051169291404046037751947112438042519600080621552029818615588845196426420644604007787915797501444936035721320206080323213317676470424813779938525630470560272790617684994763347348663336837755534955246963221376210375745812307043817921638578640305050028635150874147179634984850691615680026638679318103600519595218614300032870898059212724568121534024884690700178344228886454967214388309544026917273280939817184564367539858884512194279487817158074975275645546852072755159282577328999822614210542615081438637691705187722657991258778695754803384037528451630653533385879189267893206658298019772364043441209319801938769014473948851106641938655394546570673385491453599176067734701245080404365878812805892427962372815165078437758391191979494288224608718135192089961134260359552465224927621024967630711342693822594349284970023259073296590087676698690102377301188892492917446358710863603646136340714282645737767623128438917429326299564049990570490736478425273869854852599221961143985367889231643867018577748217018186896725704047099822771438152406237099558337906011232484415539955805215613032377001321186001576492238942846365750535745166317877520419050346365740809438506138089681407090631376645551547403781232520534668602874439105993486431319611067089994369475143954022939914812590109843736101976463191934275987555692294620989586225911898642623226809846963584799179785239907127476176809531417317340532858059324583013258285464239070978855643274972104569380319986441714007172380102092320316786102571951199666143680878164454606180941721622375018599384962139953573292950063475146159243203559293852993769309858242376340680610812072669868994837756791136983847013018021963996503233493287737257743982078235152858983147527172289052550051197949198681510204641861194338313536717864262963084860370392211078670683447591114861286749211689741084038331877096134861433147395468264839484763146521790526750474652307302136583280340867126383128975064144125470013302649781588851997196959404288984119108470869814032216162662018743864853819356858646753852716956590275150735397908678173140018420975894246957496942565475968467132475302906965890590076508758111758694740934479078208751653520446258693746938785184560216076997036834876034500809530325698977836040156581512338989298457400198929399908287305922836065884567476291021921545277734087629093814087365661832631552978894917363200523001481509897462785866293627781556990797906099874918084164265771990388499694808270074918524481659061019316333162315906271211169072224997309693132770733098634987519140247079368535546256064778053927065709504663239728365733953432602009376413942606984713229590160112124805055073741847682181570210966005167949544935476319206545361933858768254170945123988566155596787850609991868743836807769599064275956726771560985957811147447661865715661499338560420463994911469984365949398277062760473874725897332365430605143725228815050073889715666485023683639513517227073530809966928860025492664265297284908194178645612407780307858798596033621838325344808845144829719178410414173383145578929915816295541238394292464413407095928956431935223050174590595971551238087732212903019836062251032129413997521914367910614714264775557743497844511821403656312273237033999600987767920777317775541946144426497818910162883032089353131216824931298265246557079188064948040492657977445547856006094824867835005893412736137178987410456143193056445504342213468561504417848372010062780796425461782101687226599266373956335884590684396299545474703571255318375562775886127245322462878234676733949990946776142315084494216313443092326863672109942528611117301068051484620281027959249850308882763078973703068706092181074497030908937008495885162886830537698460523172759133333945187499645719146725965995934671405859463451737043114957720361071201917355721887320930456325407357602391901229021120744434736716437852122207436155719893250857355197065335826208258341969736807879718535704706862314843888926033490094592863613809588106908664749519752201421986447634133547187974094638752472708853436282951516907536480676999281330884623705674873922554763394101451780929544158746250940443398115540642014827445846094614151424257257738730129740750238556866838818511655545608218387243824720230452600039772814795420966514461942766863734032830479397351691946972176814359221603416195341975987992986597590850148096943902018916367721887921756667873875971770513356452160152820941733893502380621691657249680129084463957548058822332573298629904127507064383310621338188403660411886439334932427179756785360446593703513930014990970135600757526737342305189899210975066007351242743180643494134575896895530221541779681783429822959491871155055946341766765441121448327397690344181936715336268845755926299690915522271882079443105637810644343997242915553975672020460664945145084925061832963402409019328162149065229059684932594783093875051977242485096677329228874930994736474764691352736064256012177220613747702700999712534150034616387501744478211013587943241496540613380909509940131180026780801260021483221297477773870472426115233010875755309567560657468793526973478791038269686711204529560489743947674369881976972479848625626046111415039801884174931866013422697637361982123649451322956227124732061274430939165060445119319690397096262404500489387204404755945076853100725635907146483116012697335871148148970821119238498654717412525767674917683256205826750666324249828400737551454798061118612512261639870732288325425329160150338651998250136750147540300347584127752081824331668503800073688763930526934365787553885912633999937972822970600412042986957718758362742509485959692324935830416876520501496919516754848620315364413655132237447956923478012999588339519983233058998709000462909232210836217200484369887520781911727868148873434535654547793046227018921929872486621557284028574196365292541067703649189796475566747504607851848858416239349373841492725894965701317390385254975065990820385275844215043365564681081183562063717020908934438244771342267646008692986478724072282035729949000345469327614201630576054148540850491773369369744156143084401882636075271230130681464855270135318577207635079794694610065274719210013469484891012282546076317039574257593501627981742204195788534775531841025483944546338096197014597619697990545274822344396181688622067416726826015772062301356826766913258420103876366425493253316864953985734764787812159311868707458096603820472934256272866882197139510479579037867216182289415236758612557050290479155278654227443531434687262609762293111123269072070001899965726055278021728722387435621350512544876590578794955109415931657059755139140913285848436587657598400326829966997157324256776539661667770948294064942281868826283350506552399149865671006887283836330172995658960443405646864857511277127710803136328085023232349327577853978809438912751315886810480173222552776696018750980669701527512547960988755542122192260998655942409926778300110704421155145008902942789165779351611019075171984241293877587335381367936689857858747718492282931145892076424203691475799069343610815811135367641249569272050875071883312764212463215767275850358910684307571104142873105144874630239496242887399786594020350508784885956032866925764746054497632209125335413203541758228554378337390247712452550894284606816225604163763379612716603515713334574608289544089096665099452161763991097163805763806274467232513788775199037409056329077276552532948038527898150267985116652042929817953913817111521122204628598122049694221849287038309698285683792727161602018228169010968511162410759750794063398964676162512849142904381447806660084264453757391531708504967061758322709338607361499242720849641281781000620898730988996668088208938280892366395085900781649083599609332119034888515226352187358371456162660037797608812594741218627612926452691829948846246316058534025330650402834581772054677225662128200382517819009048008777998665432885981672870644302753429728902906140724683735287137404434983181511430942156281340095789782113523391207719587433847207129895752647871862885144508616409231872153777179643287872807722799569962858370013736699636208979601668193819974339704422699661901021530604604288987192390241589985526163053237069279625990568490958431904117873936597652524988334143308956371893261582327177679502179927680676958869516519814923815277823371842870983723897118399428650333201719299138810480352427183649697094948091069702309155722115578733010340678143243996216720947286406656615750284255515577909851752661962152706411674169454842459364895378103307919840764216574706322414721479684659158894097018474854343674758261785437062570426795318657928661252657102464336877832084347938406234127162843855758691445954702377979532601861978616935687197475708331761984994361688671960351177215865740557782963639449158169610816654148363328326100443622004818793051850778463753255320200035155855543177603243810060907959991929895157102502858751765293203269458534758033276108978698354246205861365462922414562108386473724634548697967093694313590913227571692273074717773129806832143643013149240795379719693160835149257929151086030683282545250757533274218350290999087347853572766328201019317494924762842168444189658060710344969965998232919094228072909843089229059265029052166830642119202480506764988467819699620771139538117292475676784933432445386968865904724097634627636911052221838156591778852534542870566821587035187643573865515271968119654757040161610813053221909303742351198892980243811015793792242977918416765960668428245871332456972252687276870884749039011896987474230361491920900642955505709670449390092665363791110530902036144621812932159377270570145480290493926057865324264426709422075264555264409024685689044220593015200663893870489092946884469593728435781357286806648502933980279367647322998705691319616180509675605771088939490259390002842097670809055059185158384822684147969116738321716174980258826441396597203045644387602095202829991963011253196384418103835136647815010518698964855790982336974500013008712244875893056266496438492951017301386890796092307186394120316469808168552688497136198879736589144075312748297165814682133715391339176361989128091760051884604426510972354978705576398178411673056353399263366156208863066333802285437156139426192318923170157160198252982169740541958094263336980152527739197819552489669700680138953200498350392996804588752818129751839549397084115461020550849107365183401185910598395428528168639504847286257581255897842743159469612571853544467615558532950898959382508327112810031853972117503563696501237843923515352348424682669326034292209096829558815713601952024902510271434195119810910882632566497599483038233777926569294015031544122596459154287133831359892428541101314360354223072609248138303189715714768792523381812398249046984875820874188053288125034230787661240443685026327771305060389424117680179651851413242562483080272713532245508991958365556424734890129946702853554870000563445774076947412031267783527776388243652144753791535368836836868710625663686635633970854384031569511253652334749510805203691055923068973502909594701630366299573174038576821196367903947552090981132807372083927146619041597449500215261854755087873718444852415772436587015590539343279865776827814008068513248044144423298856670084703838229430366269331156545973495152963095758684276400327325948433397084583938620748410386243363377995089154393517377222663748793308160298826468040496736908912613004161109446112988996229933390221164520255014420431879080126265148918974698924723646256131971628389053545142578014997788968476841908888431380230426984190644449441884259672592713727850819835794914664035231084244706981425633849760218812384252139962430342958570796784422787350678946451949715719136391536020670256058967635147994920358834580318460889581722943613315414503250511814406138368610371196739137991564516931760068743777042995172442928412355040077913032748883147850699070639032659105322853219256113344607533293086486056991211953408548572322235086922163643863770580410054958069040608731777966189599977058096241038284880458142248232869114690405151391674238356118782554761747236118659108200320600973202157625277096932887817115559341118880371557513223872689804343076427804109694367695182870007567149554202054015994577599423633541954444902147462704572136423091622848161193983287040489284472826795413845907078547246728231710634271352843587095942963141258982152234552113806832391331635227526335439699028201113276206166301651043441884757165785040864209778778286580174413068404378739337325080528126201822680637798770664316945776824341341257411104045671783710385374508081713096917287120140190741068337019766717465897704414286138358235244679874749187702045625506136531090879561884239064376473273299094865736364870879782009011950937651892116148871247618906721935661009594915986052861481104620319859854031381091839606296725133223361018281472198792269721273776170370470584442113673293014146044087410908737182524197668210276132154169221566630979440556088665943697974144771822188975545678493593234958434975094692372895723638677663181456573615959269908361464512504512076007572879429950400624207155385832447360999625877938192717863843165879605984874677144810163924971567381372014211120853978892527350414358416533519079768560142443287422171363596305259305567226466839775761954083190340101289491656257048681366403040338008115990630381306688687038674247575049870199773009213879550258430609739856864167357346502064118352147353737580877083186725940641325474374222652276629387377306996525021803479168884476587129091275715850414275300054424282527140141148944794455447308869867386940753541306938092776440663975916341657063967323758442838794302998001549168152818328567477003187237018013417106400589407660670871409304071067978456151218610135914846577158196348704924554413553331727491857619581986785109584445670306930937928757626506082348742426264436654623884097810063585472701337696299678844529002511404127293091531752002300685424001290894904689485773361827124710477440485170522716189168390120695950855292538179880448394020074561074838341646389246519140198497551499291601722637288918744313865890241384221058247625032047117870218682604446938089636486353252605179970813517786670983176951439405851347306561929449511291104217026039483037490906061344885562032639985775852081792841548512759387633633291630523053626178416459814108635008319539466373548989973383657084664897381441970697059165834874577140102577706771795623827543314897799890217027579103342436916436906295193319024592987084289860598876721903543567865038358283461505286966214859241286308863556516149580070444068172874824771496982561205399487662484228331264258741992030679152257200699476599841901877048467070444450784561637149767369813770454925757495378048236709210015219900392283814858117345691195519687384620599098077694379230124714559891931049658688011240983501343042685807389358229280502906451441999755444578057692949329166227635873981335362692671931983807243917109065071848646022194802268392551452540845728883182358708052870035174993347420079335798540513729136749385415457545428438600678479921066054025318165178158055959039570156407104890639648019213144822545035612033398785458343958046820460433026428383473093903527660118522129811573404379946611758624634984397767508012455119846760396811115364161328808732788449220538785079692529515776212049602496902751832573154680551910588871672518403496891077825447113001793402662434098111710041730293481387112162435053528753019874135528825324122927123790104547130698953858904451388090326095216424788108577571383978400692686204588283737231249911591277334981356259477689046973629296397160026919168232542371267510625113586576111383711319840839738838609654226938773185573121035655682758398922402986764569277274954536837977330720772719435578186106393351936083859475723806849755343378250006433343429126119564493589924722229622135185219122253861826115973709600964184231538983209361256326986532014239741095512457898530597261940075509003182386289168713307851796144188490156258718411224775805332310360022331762617005465552150206645833317287853258788380645316021750255216403889283147538029797937056843143389887567525576639567259680816625543932251813602768216598909119067069423319747230981450265991385430015773082667089964138112290503367021931148741676459594218880177655257679679796419712253896984075757521905352233867264191420459412189057490555586687318613146789067161056354051796133853540448264597900381421707133244711862410486804492323981943710232989037177291396790300947891465870197651825068032933455348880234746609925563482359245103081833210191077321903510769144402320526140323635315470526402762532653900102216215590257294840491478139524725537527230620850117707179324891747745998990665992290399533264160212910657876792107974495868728239281537738409580326612067883158544928201550633882425128830455550165795461604474523649561749792753287804377918675650257167229786487509008943188402942392640170273704839194513674068327169336167521947293495290865907164565401171940563853514758949923767912966594035696450446953151416986795137283910236900260841280591743694541331683721004503177933951646694256202335381568684210905052631848011151049961696780676000179195579530272842876921137207636082089751296137952882699665888579857829587646175892159820015604345226704975964241150224111262934737124922453172414566910235307835521482818881404301502507814727119301615411062917068713531296970906894641673648951202130111621156748328948590033724425948291830666425261819264071968568042496473506389439063372805753376402099622402586922440877539288905213088662884141318186638356567626899262404987837939529571770443237921623593132863234985811641066326960543210034845554865130639060293751193742979502829675737162157058186443966244948491280313632498996371989201404005214655252991086419742808935047063262192755451761402045289059215015810509966262497156273280378681520168366339402743326302423674428019077113985922460962027520460676468209989271522768324346954784790141762765380985570872916341843645697723088361027579219890439769839235337461769986907689335593055777020837789153166601333223142957180298131957207979976356679230408357759535479741098474738340912924972003512583674567010926097035039496854878837019290636411744049138654456548226644593235524111386769628480263078457414900158220282746028142508061882710751156909652760302450408191508706120855942179207570318218602360422810459604500620368999941276446315250081896322405390284765686674161698350750803031394739917376911440271642035872681330002558495102870400298078884712938395486316665526361711364529940570331762782585338858216272013393973129710047895370444307254942473610803297303633297262969887560230975659923448070965074545284296427173783343763351960890377760002755496978119235537163515508322140854209865444395717428920711822255335742289022367192050155825884335438755029352495645654696956304877574249234909444832286799213953729691324738921835105856990846417137338587826161265346060804665357361370579673729677040865419344897953651818083404505606789742269967404589853990062200415039742693406547378817447787114682646772105476448939687496135045369656932796031276634249273075500753184499491430569878622049372169678724679428990433516807005962603851378144649668594571265964482654077150351318899703108448694998363199397969335533985733113238940873945276523100245308161223704964190939476537807398658177345223673142796278699473182187285578454839470865782974411032971098885874910062323108713276710539120559451571874140193949085492848167795197905676116699541588867648683570403224899810259929995839733336074801035729842554056005860738825017287548912470388038816882766017541667119250463958180559570467195547656119000225834123359488310680493177063224263986525024764739907374627652194363916135338355137287476642121185309959162330469523665151263506649481037511297941203944639062437982192902600420817030365248891490540151364143188551404060188977618193342161515529694313989607227068389505008882353576513980194803111318920322097173983566840837004957558124330388027221945665440765049484617978858981528138353545502871126470984145054803459013338587597256059896254652670874389884068255259341386216578290311744716215161957957269675670228819351434778582791632725693020848848688441517226068589208961225401643680747962016133277762404826292910911424238718118501443778443832140302332931141012649071506151069465510353293066743448960657680303524153565594721073676398724527235018412772132906725031797594413763047844614972559291073543239587583953339792242053820943451484945293004116466278269946499578858763688920465460712655883386661976497969005687455273156695762293948076497514464852763400099774083364965093948965245882382501660722974081752085756768417700318558149964755780986414127147334879405831333666176288354372918844478796333781313857226176730250725120481607530515560707884983751305680618798057651412170707961931247288789657626709370451495555017477527862262325322960856120101911074673214503965481336071677510435335856674358146095221410754749180905441692409140083426447671065539082504857687836918291733711033870813955964212934379519988056682728286457908986187565466866330796324753984115027538433881312156246461042293415833650645113669341349485162422810094051440980215975416634438130168150168548803034569619328787409982949724695672908335661949676800847227890536872285768619770130572468748594741866440004432353851393148023180584489804211635772778172892145112005508452696667520658009961312027036224747795025803975018535015248597470193160995838274852043083515709956920758019958943588599244963561120312717877292753874345950948701729446089530387361029106553594767689992779896871737440400719602758610516534283938724079787314965318640357932009506278885070783132572077063498871325892238553580211293267257613756119379109891368876125282256451228969339491065463676633578038381999708873963541013865514065974309076347162285052150194959002493795598927103875651645887176404626171706086589013551154530587488674625969084922191636480557140539193961634689084782781451584199272950242430889405575824696531665447753162291875019092576585153150283324396549915664211872218541099152221580062178331511259002852837577061832964628177880193398401741068062540059461449035945487975932754312148460654336985862927182066478971465857844610022537654909393584927824274282296412060658637452638130840030049886964517023150336503023255928184052625828023678369038900974205079967766790805894200677852420720325154785884988233718486183514678675783290791777581824586060485967414257423352091479458616128880814857867775795800867114240942704918171726110876300125348780255615070018638677156126420237633745843157824689587793971614561721293478466643841557857657229854760680652860228456971227022758698108671125476310018375649862055413514368423176796533117176135791938635819119794916139780210255065914971470008422006174393645226235230848997473571688653292434214819427966880450569794953047464934837848761050766003702680310613440158446391117464925536081462957565256841032650966547809880251703027930989539626819500431142422297334532170224805184201393111592119709273417471090536639902409392114771496086994970700857456093497711785629362070066752910292169566405843394934192175096693526907401729011909838253791965622927236877439515907448989464437578838265417762187708410667424293281736422392558743280949905064538201741677418691085113681964165161175277996021860994318440603258503894616638982360031949356225277526574298985234400807025987803824049489884230133744185095238265115436284009285540849659623581603828688185783362221254182628644660433538235054412710660352689626256355821309390463137678397984878777825530841715001854961061039946867453042093043847975159524228326439723719507071016684137172102188379226886235517313723583556858693817517979705444542572822770454306193515309986180306180805154257523177587273151083783583394439199332554695673977533679286911080217005733671763731426649675674903793849567331992868994050607088287805698403716001150730255498240157206451213099766242017153785745445716032071657029027251713283746891240347649588949841089131797434288850802191778991421245033352923036619742861498375524144930915472451074714847336407811118773957528834111100776008141267332584838439389965838362611883172001043807606376362616509113803610928558183768745495382846043134389750305888383801042365647305290934399401818461838307458283679882942762945369961262517253646804683003652828021313555097133421136519955592677137211502745357916495674402464716419968761304360735935064025741525538693021142481908412682001211212271136600407089316571309786288679896483907960078651991572440238197804548948038939758928432018931577806061187236943376868432549182812889282967514448057359158062048561237648811129802686978372991422659049194838677081382671751779778621805403774698568473333028339741711659117786699618935688230357306676713681463518855458925361395985216783933130470539515223332559288964492730991117940981462685186321377475619260017798835007416606220373527094929802778607817157556621538073012258995911388567821950295432336037309434696045149435649050838873070351666883801576689251654818054184115321099408977433459896667322278412895361034085231382031374375240226936618674548210352504484419864903295456082656888322075635792127225869152313796143930654916307552523990763058990948172205063403648506224780299924248004547744254513216698783475998961488734408276096094066641974686696990352758022447470164840448241557858389630776723449721930535005644515789287616043511073210461447057659223964515760578022194486908884848470517231075294271748392223471508564330496331436104517020951458984490077370549267362929997281039381455224963185670241950090614779037908521673368065573718218454926913238226053891276543794723027628116095136727658058523531504873106774176272907797938255094646138886460756718270217781888027925174913339095339585462555384926209350786845177374674031335061713038539129823575355645866007197814888349970824001533414847772532484694287008972862392982872265112575368227487214989430394471016301845529742474320811341918390301637191691404429268614101277409796048659925972982171441805033232785709687783938429736297306886534494413708310380309177656108299814750414863776175615624154807618013374709731955908313073609558773678198919769089359796211778463276447817428704426582538327741695306151508887776636589922467604854102408296291281730466663858457175910419723908337370070182525396672800781566546665801626837109038020584293282876073961149917208281515859728436424035073500952076724826975108245023135672791084237550885952703541527957747847410142617903065989236042853582371552327631916802156164255003892943535972405310123353094351367255144387571427934316064753913913399674637819925343828242386423208918763687849624996785723715140039300439633507077938845489213611694789839897944408288618406772922326330552237024262060975356346926171053130179392022149394401188798505531193808580853445768347437789868218477388739220485783504142455980323407871568861444891126147814746385458221517189470894305894256784235862452606870968046504952571350706749829435771293157654414138052776919177096954376396949258962073379925743655321871693013331142875078579783214021668795053176506847463174466605954142660475592960656664739661667777230202484139547817701101563529371463920106072399191668855672320646363414900614676971330859632477907822131702911827450454808758449111113012771635342797179193275163001914561787168618960125714968601830116976592205540581667789002683535005366395629016602118054009805348975630206135201362021569782855709976021247881071220283213236785111091745331282669095511242986462006119719610789964993404031666283558533872977914452606910427084812284634190217295934977268212048443703752904705892935480328873756521083765575943706678729890804643365341666306072485665132169087929404868357894992343591233833983211853697893720570511308959026799089457417191084899064786701648131875117937902060654207057419272961141118855844646346788433640757077836716927667843060816997767703629072364547451990503562823468533030908405829284153566725048391780110212467458712272822730373170408781326794472332893450935954299593715239918193362019920931429696975224758275327285617701428887204429370769694007144456164471154860570340649478288747723511400363044387867771106039260351733871973198352280472650763311220406981785369696893090378576369436639772578491098219768782144653663462892917885570370414134264862994881841810357744076442083784769231923478630680283143899410836750617896724996052649543341226024566521680076678854208622853888747317811345668420630426247622741304020694006858176879224192389322103640035148749471872035158586244198813388997684696525057044519972495636935924024046995616565623661164806487620053250906003846020553341988172793634997451045387299081305967958276664723800140488152439683842416291727698045148877037145598614602583888631041794474528629979969652703543180762883216961129748750903142345092711212852601205390652562674753689079654650229248191956986115144489425861978390979029299050825042962934420800402858056288552644760956751559525626688488178912508112664923840661648992235585410963623081911451019778720535665976127963853384255394020235263863767389136604661268307078861154281306844373361268486272820354771514482086896561313659473693343722955221397191984803606123954481500679611998339710508500472903793474050339207374165000783785958503952425437134007382466780307965889898235897856890002655031892202406148315390583217514275694834757283853990877324145722793316435913810840397888018810165921417567210579633077790639877838669609596588132237317208002838703096073094149379297155282308660744610920896114698289114128573230802680267176261967032901043492171724041721115284541983204491440144535220640849877860145191120820049936051349762776522212013799184419809361317516212631229196825614761110849110952743530331156734718411147479202995022362041712582272021028136593963618849040038550198253460755232445433736219814982759506023267642565387361879729034848306179438174724918726523788717190392361172842440324127597286118924387577956216208261365068198955236501297461700775922603598816019232995550448053604327282532665446353568883403888916905740262908959588031976744822563106414914936965314578867169847038814680346860563746071908829615588157726916440805125056004660779264584412432756200293531212224993503198190962118896336255639252250385928079239178017907541404467146919126479751783453017076046298687357591166331440858529988141817639988213260854618126555637702718404467152662643946182017325357057263609606531907853162088207219727730139102854589687886206143236312198614491384285955260327340256216392528539964969613029716563856457119481943660405441532009351659191724812522318268895201813458599018177032343995043378776718190783670713327413276642660125927451932409174222629186631828857887803507482472563776554135476981177273127916748085333696921288045269610443407302144804182419505604982615391440469058230863524425163624704280938150354383772577161892009129492085599267918753799576094669194533845496480032537832039843062225883431209855080540320043640015863718203759708804542547461166218822606038145592927196909091258301662425963287075895778867243709611895816347286024745411952474659147254584799775163520635952059380439437618652923313674395377646141929822772998122239220276960909471178916937574177582935508770067302614039166473524049990830838178200630506075748824940779642008334986935762961833234255478747413631869690204704782035282517282368335621209326638878872373170896458847174456420372573473997973339698529530521473703564419361030581941587889570763906290343482650787301923701829885843029592939627795052195163958238588867705108254836952059362977283727253137312049594649678636095137445782041118860738268862861760114009629842259603263199643021316237004236285136921193563603914227724658470662847105246865988375598365395158927951042891451709128590794673862797376046863008411281617797982617449645150805658329612037375538936303487393576716266769929308447468476237584534180397748146233768614581814160630935888306185577341826632901981685715861064538417318725211202444967383112539854534684932286864137423155907673739337146506063605385568772002929425313475580596124095273938619980993159251865972442600794194237981519528332645930687781247892319607715689755997955165768150784688482282739800154912038509035622776079217672670133513894145843197823174704365857634462208026361778670422332373627937249718877348784239585659797943848425743433093378147543185858021711221581488971992640626859476476913507419103014689998902494061556112298340689743892879382460311146673819650156325303792239666433864177969629047584736904076733464560668779308551709166026606548460950403325927233124234186337991162635490862381556032982014713989764474604982020697467749746407706884293807297317279741737088131073103870611363566238122780115233012856865468748534494241222004240374389053079407735618201722039764570769703239681904311188931256581004729803471899126774850335930296661639308644178380527136197635187688054051673903146553847594039946912600212722441318886120596700704384099573735771463475522128665202883312697547776459109279266880131759716306498093881861935315986983979234890148755175545597680928668863762668888880696137928879134557085593946799082056744456505308245264271062061058781683141122614616679061737870901929826643295187128240482165142754241138725584962065243278634233087768177307577026103146396276070132923105147498513154584919816971564484165643781990153024319210618666769360255789628318165416412992720981148390866356439689386927971577313073541891213161189127981041532141025001977852496956455215904095492115476077264709395526835852004396492807481595463901292401337231243846182942502881930402366300663576479242626626636475450932633357245874125943857525163324177967409695785439376896303358548651263676590667809376592022553015926264017163289275252179444239563387832214816258329932851595053263243214440406330516586982589783566341921409327616006304304449912852081149052847171445093264044598042912066041393861191450289057706586005129983553492813446659599136848008720582346350894502423360558653209035610538739004753695099864022085613793144703438405056415850719978966758565845717311369601852598453815068206242409534878577884907389905917770323625813584903044084096846152683047871535086345174115149114930199385183059019947117849807018673621325977591762774257352159647144345259735098249338572691161536231975403844140065491058287585796073260438805668933921469452113120175375580150090820495530915991971986379052176391796624488690134104407750354052538179515459072681313090794267104376178776545260908112994712540059028925812856435895682064273591869016538737681610124295057739956893913219382062083688398409666371865674462578015917406145832398473752442520806181465934197378658839810816779903684200088687585025340395131017862612494120094779063701463503883998274600292482650061202861291973463263339393452255300758214615350700791532293956515517189957935494042548049108794326297468388611347967729786851010858690950208305065993722289888752006097246233001510324436254768456922159781085114937302275555703284248409021335805695156549377444205666347562551459221704493457091369257693940824625961327374224971097664269236961781688283118177274366590428140439558859948587006909371698326202756835969962855091097096508117682733206179399585976032588802542280890963852535724510356991931304918408770820818702093804212357230323865456204754695092912861065995690995652015960284132323043481350247389665822329980196232818700402021874679199385738588210960431892265099566148107230140053525505346608485476603422025389699078123820729598431858740630816659663673072511800196557468640035906510537866872610008116143144366703684112365299597559813428696683107516338340319037633992188908486973318981379984564586940400096835047634225462161453175436838097623766970788603019174683894505818512909900397349746400518439530068534270402522427451232941291752660059899423175328414674825589326855322274515800192602452806288467344015447750374310725778971665811857440030936833311645812864858145812648244601005419795321806576682760186085439898757450020970600259084350354377630799333108619137799036173697599498928945522270548012048021647058506070000355762001696571094066852842855208864247189040105225963844541052779652814733951728526321161023511531528023353935829239772185367991058867200581694556380800704621792200535318195053659280041552343490062621308013554417884092302048941537020557215599753583673640095630695801411737211416409291071448805699534339219593049511878709206173894469720645859144714725065853201095021819863650919842484061142916916492116525554296945109288090649154998375719316691810331255953899782820859070651254736423206286440263684885261201929523346475358797138846941158426490984213229712915171392168812703919715619829414690796826492032653241745052245618410612798020964894412315935946905144525447957474554597034357211641048168231973293763392570297898076479408701669688637604674767548366578676228654486897200273183236454216484522271431352635181002550425967581851439397086955343116639511938511351901105948215173750690122036270394789033106164491687954402072456948553324184537846226112926464900556436025108982486078515292840912160579872552149506372744641060694049692534665020938324042893054118329482178235570957678111146343958653481895031671020000465243306347304231768275005399485523455475495142593952314733105556749959334600541074386376781247492433578926661825521422271531641818384461312804962420236859709337983916396417418502539455108219143400011358683154608607042738222308772724234123399189546017944855730555742699349907728908040679198095107217411443444499808149900014974628396422477211390603486334346441553493466821425680248149522504868776514937099216101528971161211791198682943806076045906313315126437386248820764789409110429394373726134884672412160202934025709620230253705254885054972210218035317851781365026988348203219199446816167928400693627612872006306449919653740130420968626930180665739969269772321848052240226149171989401195930484990480668547924150731933455692293038368318313402335153828993333709080998592378277925162466088625925629221774648149739041345430371955372190350683018488713564776410368404257103994714305621846981998743831902320265499251401785370555228220977226828047434669554484809475601711454266858217153196928178974476881620902729782670443535907748845732081269245878451087469039707778390296015180809433534200796488508157398547716592673898637947581266978070921183257811308166638908218135328441152086918520736821104757199948808499449040582606894036800417571949861733348079019483327108623999977756335326949148210437904786232996734451063444129507592569572053089644313394531385230909258476601836228608003056950663546836089926395163775587142618369234659468469348242893613582267334927787060745895289660117042409196969838905671514855630032905939479481611032938715953316801182668569299085494335157020866018682735720038143734398175175384847101146247983225355236149729679000427855159958568570378454682234533283852185971310170140394435644226684191494363287999754388144650617277368241950158336258936085739769790629239127475927820405597588466556099819516866037740829660301825851779036936026005623473232473498267751730060849929483250519871926235425899774474388810641383241397285667650054724839570813835632827383164376498175164254814481605079361973420145218029251384204817605832699570218819189289260864380267037317959687586825021138012752393111590603115829384753078316016660414726619299780636786855570611426598515494460564479945943193277390423458014994117414616696976994889169554221112720475602926529203622488100783658842103486109515680001949977924395218030451148256997955749394288967343408156752210311605250436860141154962115038312498844441934824583059940991353786229672281912675881495862446590861388406277140757331409881139903390414852910249436237968342378841621992241035067033181284551211579670713940588246579847147156075070159621035486935396521222865952328019834662879080211435550580106114036540684419720448012472302225495877617834196616581737198795206837360437896371750731210866170165791414964395256945403416820552489191098087043316884748117962112796408936588964775408370300137743608205524672958931730502763396548478049064338514073150525144627224645599606487893853114878129530921397931596036249194692520142971997894491585541047246796502986653718351006742894737733346233063338253144289365022288256314654048306570319709913364405545541950728103323013464776301234736729012762701775850330335312089162460274459134137193463623424143190134556916219484528887474808013753104115846737154751320909873265485715795903400610771665174933432438969186511628803110751924761581393780204258684116995487886977568040258048326629236328644860296407912242648395896949168868688872632850794904771223043518040599415173896676597297877144727724201489036008834583079018741958742215893112147998052281168863845631111077232828667540338692774617005631360855170684665646836541427739500302247218707307358679499313315242364737380780055532470405038265428418835351575159484340725415767265648724734958299426857457598535530861121626957860366205236079312131892314287920268784280336852279200342756365663838941337233502875890758096250760975228509351219318739409648455795038464642424521433584813848068424800998369682778403533029827004295971908673588117573043224623098806846896273418817470547690871269477290260656882955866580055761735477430380766121832396276771711618104397237332039017286895139245676309433307655348395904979181931107086232139624156587329102626452436997853682627452586942008020111260657746994869063454124439042296717062209126599860308945511505854568831301062486453783772373970912592273782895193199473073361154180995372705850296778826720995450168704262044916794971544866547553953584448125058077833212989998945883055324089800191804850275076598672466073964348790170121812501568697575808444399173448813719325001885229578030878034770580022652030533624399976228070628228296548568277829576252431473928046735330198952770903466467968632381384174615344888416737177336424399673505812311010952562563498289703058751390812028583618086141948659365609420364433909177872315179345500952660094376440151006246655414135469228800237751756299711433901759749021270028713780982007689033797362385722892134413844388817794642576958071555450504620613281308157780350550185056113572956588000238713487127963765834087564912445445174055846434657842930819153858873376403423065382245251889740367716552832169666641409613505227486295130330444191135319871537144317845245661653857332336556025942163151782745225114451951171521777087771835524421111856745415456000756612973871109126383960989945065919914826801408890959959583814440835074446579444217466670209632758053365715945132541807445768558387104527459063581702369017256879984156838329066622575177083941151526969182251796105378755529444019105046483875045071165976357142420558281323939214947316776664333703508561854406958493291619976746131819079236021332617373747936166904564005030952456650427587216561951837305271104565650917604617988918725361599351239441568894841156840043903079572880203636634607362989234791871734894789213195643975866172795987331395219029774801055553726456786891654874739032621541367766655239923493615314856151027610582258285121975831773713770556813696715518836360831003851523783021178986160454525654618676204561009627888213269569780937479746686773668295230309548957929648748510933551591597710220498303549841068053942778992872682545659752148800799459830364024122668232688263249902461571833139559952687321234781504017335153503660656105443664317885839101158067974410971762471839546631139467588624175268433496366221106094043429447184895890552339274588356314522005727435564381281524211885649174669682021671061872973238442019712537478242048650284970221899224931526109562012715892710646432451671368420575429784763008998428258501386484403557936901835975025236455587067502262186189860233401052619002808394455905481078312844507915212152694386544813823533971516055819894501082473453517922935650598533449787044818523905161132663599079969443071923047015170926768271579152533040471202230797133400968749491532532887677045873975820222056517776964476335450100232465912267167283136410014594780890643672238905087813966335532477000116705653232837064830455836544694055070910832862399436042974737648084199641177098263706793321666816479572379427636849401121927346660866327146422952957345616524279030566399245288122894933955667724715828769214423693239976040960374871056581438463727770628624790230875122736599305452471063801757656282002942884189714889950073009099724142982350854508096313716176300908836229553621091133760814536210103652358589224862494981225233645036248974885537996672811307201292751227031083073072048839930088092311544269232342850614224891632019551602910268176707425141978959663878133235993078834546510151327788773183148266148370045760180855106519002615105691299323038022488888628335905821584735891093962083993684281743409424733701972596114815401020524559163880763425614480672863712651046277437118378379932469193212913193788402691942313007785515473841455190204609120537741633331981860076821592744823380185234912060615957306344147124394883802706623368416011156569512033925617072956961473643310457648683973248684817474343691365672158307638153873936253846194506304104045871015225405922451626283750900227598951165891057386104318928235888248323807105345004669657826897434817388509427223875108725625094070166629435478612885056987499181296707853435082711210057326737457486727955252033517650475169296278193833085973589954104349722260846234670737060245237863976776584678919955357661567207434026441048576152967917036479112939470393606044027626902838036609062789314087928838684981115335816389886217054464791394608894971700062055707629940820383049989778916736883066312244390004839283594820968573570566755318755879114594259403094144881483596421565023852047758220174598468579757032894695464336883826569876457405385957891527147753595837426670811333123638079056482715922163955210324925877356086191208804043501488703660569791055110062667822944804132311001422246165206712673958879927260528563206789824754999715087361734307681743965255842015440792840138924664050606361885154145664418977585670728250521852584073924737765997710792975930304003134833933275051162762150890222544895596236100301350578507608158108459165541855485790501467720826490983805329555152542531578578690579953484373299907169672917844853977413637489167809603096875914202385658370775746384859507770768150538932482480953831656663884824441977286301832734945634285324160443161006114598675806031915416928959371814490343742290723578988822901625519239776687015384364543217163218721768308469673883009255138021150262749127041115112565243904510327428632804275401734230494611081276082555099840987194646626045711322844766747369574256554900874587267975020012499581614157767054973007183847219947682593694014438140299982172337260872735423030989183097521409097024134832348074739923622480254698995288706045570710455992174388116702726591720574750816052296307524094990296748122680618323107609576636376344608150356556795368883706533502005756585831358143600494873686670783840354145334627618583812952368488719673184060296095930147616608928102589868693089465257207639540431941831331613696514047226154690882010788041206016072412638599603096539409019106293595812887509426228861331384759317693227869642166636206208556616054187695575463562537081476388175443997831254060123895360416366278985526328857157214574813665853012243804305347080271944582053935792723500973710772188509146116885684131262161635072054198280837731691452723810828011539409438833346738584780656816353063290084785808656013804993255261396694992051056015556633948240112268916557823890887191999334803347419461118830262438587211766490886771879728954964508981770974034516745831945505273682663613558136442549983901070354176434093920704846342762409106247797980528353438138555339577257163937225570408877041344428056634366079472692630318837184911837338690165359001960946081182819731558737450134558840028841756936933450778956616114310683371992893366703270250788219357979480346977319461888016092093357147253567573351325960655398980491550073869694001826250982365242524600483528933602690822955059024499883514360113581664753640223627480965083780472672700360858294828718467467774839798021375389754759672944637026391227232614951254263978951809274671887599435929882695077311400018383702349086142676125646799150432834142194360873834446155934659792331228365323812160368531229418077956793053018021743291992620031915067224839663549546785768107117300286736559258557231912138088557553429609285861393416282499621372102825517652376092886338662984873805872661205406863392120914780307299953747914976442964219313652576381612546812506682294903418115770416637371035477739723956304028350908754095409405304961948164323108463747034195770102257461786818340790364053716681149400880033239354676230037297169842932155963393844458311073210947963917987701482383401868555539033764933163649332147068584385720022604639879114430439448982842191226932758493169776171814499830804951534557353588825895764284915502805536508189693021178370907259871733354500819794945526828043628087237579261855589252993392842438720671170078826961834404488256557563062055626923583612515933845097443570349386382955686828794054475380674151639393522702233694115043981831360429150964118800152629406527221649729027539061089956770179923523353674565502107355669509911002953388398978793739593995604176604630226884149030373730095494948985776811300989298661987801578594565389179518619798066267822707993336973291568700963159257957182396160291073497398843284724386512015910713526719531953260153344027920131242250029475880403427671002816618342347052086491311022811547804041972386120267694578550927835716486867631194936525535706375482897087122888031578279388832950513196906652967438194550912693532694938340642840085146815934344451831227465666823653444332863911677432331070191107888336138885639863432489769195044841924585094560212727607187342908599910217783079050868505243819878600372466529394254023721349849651464069219779302557229702539984864620937131809399226077079140567178146361252556867240764782534176684979687839832084852523962222938329738245117786057153734634984757088659545392037922045737212567586301393839566682926629445448406952368360593015564842684178461513906687537252306915767568888828262442470645657626414002573934400001633437031309430026779562340130523985721158268332557392185239123889566475171349343217098925317172959499508393300735746276523083890569750925577435026184103277725756201512652196170089719802992168066286525629822893569623389793850671053483692973525546161165641589029943685924379431733376348697595840281339473375372206087490059690018133198628708281111921218564751487541827252524649959700348694703279203635493411127392000482049153837823290657292841414511794689500811504344513568181187890805653853609235832689887150221725793957099010407741539983665610908843946054825338282976930470954172928199427213779818716331099329159856731973423200479413535884321228027548222813973948019712522038820518784271601368385389262099852249308214921319360842749366579047336966337911140543494754065442494555417667112067475969948734548131535020577100476926533817896429647710181988762636853258781069475890753712324254461251579090504198883162319384563118568975179378702950812190111062319944710301694287493315198049334925917275208455343804436365540068993578780720201401769885446959509950506091240285183459803932592921939280903742583490653224771590437032419989949208108983757595560811767693807126858614868300201292562746568124449179812250745009507123818380625539547091074906902508890898864899187119285168390272325539065940345581059691038144790216764399100490269056304446385491506012531542006892144868525225119539278680017989779342908636193493802087983216329899252435072590731032939168235360136118710419315966271264488467249772725666767768619994157583788597025939244788534892451763390832588639378495283367619445332616859888669343397206715980612954862302943220115141317968548852450752180216635009532438463452584792991294166428840014116503191530072370658494345514392637528750705130754908764276118157070067084361008857974260006310984757194283407269422360359398192984884752057703652684733892523885318940446031133948336579685491942704298817747426929205709753392158420922053844986203801507845581869545708912620200759738466750886076902741290679269760578410264703878511048526764932036372117813103398424406416998147800733932210734577218973694910193142417084614720294913628690423605301306024846809408151235091677828200687397821569012638477036413313732558840914083854681302301825767276853132195976535779310070006648823911240337815336090651281293330498005827587600253547095572464731790051194400697828160299392266416990229522088386330189195918608661259834414884714586600396605420521530534778004923076623128830530812381590660814341483002986784107142515895878968674048520523125783931589724920553515241902647146036709188971809327520010443033267230185571441101767240079434130296237973409905601114100300123712866251310850312974665819755497373656436553360146616278951800550454580226966934472416841796050741469848599118599610145188441194105338498802241013988461636933985696433749150054342875553378666323542551534990187544374994155111774388506489950266339639029641909919848151760873643696375216102325780497827058402109618173950086056887904361575360706871561860132890782296205618653077480264139230187623897275512959288278606660533069777857230490873956340816304189383526767630200862646947642308771565760557422550547007821791854434159520089129277217665023463418635976900841998741780670532135487359386614082201584452442173041981408462939024089000681841077899637593510028808371299376459382646469184786888681668189300573942611915573732154928487083644362990101812279541867212666082190179370907890266604373392418289289255640539618340593516929044378997846088599814596074753344873956627579203230071445703574464478100805691054099487060097843178556417622647019132790016207479723140191110245817101200522826482329410762339841337925281485685997386766374128649462467327656313030753827921830764288514413347931472729642482363637753842735008353396639541877162091206496047660733778786993988967604545561265312185276567906049738185309657704569074089811764411307171936005197509033549301226652893007081852869009236097508932061805027037765034996891249371956262879568351871428368187049682958292187330691396418415568811881948165438216740164414844817487389009536892521588837617959026726871207695163999622544210967160359146405968351482521345482136876059495750030157037390182510111211452836021426888366928043809913731976020551400815358468113791172260022285238404142789223641209663251883088935144475143343535025582802790557805240577370060416493729066681412961431177625557360400572227983848151728695714047526824173183299620053974868414132644277581306534006978776453206964506432471706663752038544769672282404950579886743871932567991386723504265233831082018116614547684782049545523662021951701810950752844427106997207609834428126131242013448339668023155744171405698249295878416629640494357968303901062088371796229293240574833040141657602561706284226261673615312574209688468858896536883028062421932890681153212699055868218870464175052401258738810019640992349087115773840609452727465983275382962447555000089142977413942268970841291121674829871341610886263262635479083836073975514960172849895577862063580579367944760634775887801715536647641700328855097076443579203081388733619051189722009543767549700904060806013234871387173873209538072337312456971241154974412954919437124141057361712469206454808257102499536607121135513431689839278973469227622844126936558242082879665407851741351839680783373749918820936019809700968019182563256855968267250656390075805670484813862701644552517198821984681344891302316662207817821985451058262762324875911667275308963118659682816478843651551892343250423900471768923177754802681249704122585387242927774503233815928013038551900652326651903763823384354685251087026875796085671802869405382199652029773855716704240419176977685777538994389031315002294947367007386324136010199162752107566399442985945932875662322919284599319882540449607978148818591453835572966349045348581195308702131518371893764462434192113435003482505361829410242002836342106995682529582584230459984882943692453710000751224891358755159063309550871795120340456898701297888827752915556984379898724861981687178448712520412359653345374706231484444916958684063768903017070750974645536980703466649232342419301882568041292289855694730581770164393482122588572324052523786931450946121033518304263957524888940092901978338725201507000013993194859148811828419910982558017025103734984830820060998114270082423396851588357261014622299947181658155873107439361683201632188134903920512397461148502045865557087929736085120088515034656844703500867005230079855694972612489946311158647356682619892329814337911593554565529064190323646912471671473157465118771679027963483785412329719039881306312992533984755309225802094468764281712022336730058827328890010019487513699509223273481986598639351098063865895881347894220409839946733745249625429604063893380232375343421196001875128194789767294699043146125493180766216047828267956211681580083631302305458703275211192105873614709767612662506217286323300173731071061826576467459039969584112933132809151081115948880023933334929961601539920880600175803625937536927639244764472185453717807906137429754835787251179307072865035294916490562764487500749467740200428990682358962633008038696219617593536388305444112153072848080841893650045873776728178355372286805581752819161201766724397088026369072026887248452019902291805391101242216628687305734753488762174198290175749602543066192611757247563555919586374806108522380641827485959020112466035398747056376445537126458075847886541782453796289213032116900822863924878670669144543061371419908133594539446997517199173721120866810617656873638712163066268852625570930377796855275608960015925007968307332819749912041758597413298704108935259524260289485492079871783045177980554783532771446926445301005336397642762447162777903923617283775363502682477537911293236167591702369736448893544876980146392011752222534136032314475735164588782208163159613156801605597036483859466133302457530584594789398109574432777019740859727085667346109126031535198840011178649993652915415959169349437448172848800577750370708442877365344499503976551313920596488550258373632161456814694915170180561909907529723579260146377598806031291241730223445585992949009618161007548093643430561241521601652826244948371463205677155693828606112056898015957692224288273498064894389124672347703143405214023362527758273027120961129450182612531448493435314739171983604950905467428858471565535198835757446354877718725010179677447930510686739918473543807094455145162687796118676933128408803884953339396897090204575294206426313908643738165999459700228881043996748385150142732344579201646288033889332753702978748045300956551489674906942885617312676721268936946059240019534092255219950607764021941146967977781710220757991535179893441608787795435648243949353041519185295617199470630760959838551757950203461403901617754841942016053310886149897711536543961312011287481823505926965586859176598212228861987043004319521335093570534767695985639261996328284128837973448784093024513904627198689349329345298832914458822930746072805731668085924787814609459053610435888162188602931127722079904067063179712473334454851320774903810080357917818677232264124283775289797891939421252215914730306291088550906525151205929989810342938736382469321519948978308979154564541711860828069914482306014547742133725558499274850692826395109038374279008282636339116792014762178814746527390627715519461384238172994576136799204207043269251892239863064774461640436138446114612602867750061596361836724840835823511501371942468098273769520675453721891391081689100394650992098030631855975750943925092967844730631543424351496144602490018913576578514941074356187230898437307193007362760605894938903260754012593744214769910727502546331254789115479069246138040822132682718128757817271625201326985992459891622703000027579418082830284922628217518699059491946167892864313912451926531310226534539698995909095258196547610364496826328118198535881450219766978525782565588571044161671387303201698932303475261014400872186383524758426673349164340530730415169388742652233524212477032293379754988931485659972950712111403503443707655753328045674869292219619727842934056563750956968405002185340555676650528232180085655144339926886477912700999971070721357624229500866280792507351689913811711926081269770426383630484570963137912336292405261079609749063188824037429495038616553118247214062187014677912728338799802857078396328838516735984805483545213077148654379324298822837136073188709547268886260851644065574017499028579340052515678702692095975303370821270160447661536990204877602300261242234200639841941534001568865139407959583221642282264236250329567791066997571403871494971743998235807925660583341026845882218391406219956580973444564688461903681205204307878857296588814768728464540303953726860901919923358915915895458852420976475193196362561443117227055697268908234684031038136757900986715238103722988186709126460667488116638007308325316304940465448940625261911721168037743766492530314337124935704551670083637338633057894541207635191967069999796480920892549846182092884977570786650745592954175662749448865476804111248640689675158144087505783835439611744632589952198835428164798779941379836742857849205713745605796689399798964718243866559028199541844825353907103245841126318504271745823018715259354585981348245426805583733210086792558552877522020057566391321534602324848297721428813144377981064793956726753159534449718680136895947029933745563145644667450828992631223618271642866310859473244294682043362377280668446049609467994696791700763475356301393848251192115709601546665575397192507313468570013070059094286502882815909124523732779030761147652311270822909922721182366079937744716070907719549564297797566685736326241731299172831075517089820777212526371353790240453101613171750077481362525426487438162489874408899064344133882157581485626079838735989849389517530267078343702625611949879756242271897006728568693604959060600602582917246730813601679928220037587767765977336415100156830053599065269377096874186170896993494538377439753417514263151685857782910394105975997662440478271685939974613198507848386668262220523500906824466871167327981231027512306013167106379691508300830683282211905435418246148320139830108110827514435623623494345984716646112994152608714530036076777146016963066162752021294800158821626086822299660909516299581846061792413927898367037021674611447087705907817458406703498638311810859171735031317625304563224255118766792704611550428502470817257758037184113221739208337464128399520526878872028964330159220150960344372680001123393351813219274628023314959143555110064774732779482679102144033622773385692409624003101015389985303220220294753975729669394579083161551012857411269083110071546104217989992043163873511038073291008723532905806451360434953259283428404057182558416422114274259806517324742016184110151897909149967580032039927683762044526786373752326477433110036402194802735354645056544588806384233958812502690498780122737223540817210627273879299075289100371214211218288655564236129421756851212733498004552848270197927657551460612266453145012441378112815973578346001342796893021168937586023102399334308696510176836570409851157258543737921780892529650919961713632355705532709876797028622705729578176761440351201291712548450707635279845982461641981862181344935582278689116431595902157409352415556248240156995009308276486600687463700944681542223835162097436309751759334452549503759113359569830772238121718466323833122799494645635468590437326163620768083057994544945360697766510590706305448161288773111158334868960150068714723090205308535090880296018760678444741648491657141017295278568487194036450654235671400538082843914466931348031978320168774273992626687721940266149222902885722515065002608977377178047568291496738250360961700452840604652152783787202275810870278856680518364290667475504705431402539285489951383766958679239375846776218862808274534100025018851262600862576756263494730495903511748155110880582571254695969258658461707107734000138323355942922620820111169511384899641295814526563867248151085911563397742355945848540037739695275552100152464685909512387500380665511948578609439405293194898806874398128253910881686274941897001586443375060643086328808090007457314974646813075265648590732683654528435738139047987841399632302318084339218636799795413269171848220995812444094763024480114772945615729590037207118263785442429151554487476674338168352657457083846756679395082939680756741273029808253322437538155832095262364691169554053675190261823754294728242812477044709583909974204249808709460922961731212288475888876324873525873018781725079292920904541865273350362878457009620179773527827112062723580405284779602461574493770667164705328541971808549489321419952773023565975424209031067165127728375783602764599612869961445374594854672037329746000391662236974561864730512439358687430538936959914526824568045105867929743074616505457032983223376439809950736386078700421805847261085311885795772874087043598492067100171743913355004144307265055836398897162430329935179926296391525287233267367354481987514852624398742881928860138717937135315814964259235697246126614538639936096697958531588147065238889029600563271682407111794211869615965334978322193006259685388702799403365314591957703772262671588405481462780281363032006569967334575742705856488991955540350478873313073042597060378885545694669732984429112411885022233016423428159828470475944703155995522242385276608749956114574744035258011024590454658483396997171027419456798465403986999771595721663020180049281616871028806648348711083620108664703134781754458435686831325445542658529035256810180291217693581734676078111706499864505215184721251004229843680135746863567541641693332055585752683428268416103077264967959951971337199798720103653537481395747970666612489487767577084782925696687668709212312947958898432635914078464091392992561417673331802957799225967514613981938819853288570879318134050752027967533525353594879495041693570967111944074123939604523538975070364085845104317277518413145295284118129619784072461787509904040745398921101615955020118002628602097732024809450211500375868393700041097120625625360481321176634314527754630131640884016740169995476826175457249788844961839883332237023813292622607845305513978559516643582807417192437234638024782196367254437317634114914846766578748850682971584394291650258402621052435412959046964565394894738399016405781058581490080279258829027499322848530201509094510285933301613543503367626504313084469664590571567599954262185640352622609055559749594409551167455725849915128253230046606003379225875787762667072804985851226045177194888185511796045051872583132517278795128006410346182509971032665200113786455608842181202724473764232955726299844581408573104117384225944572147640273171998735116586374662124128634578274473969815352418219671186449508276420345985322028918047299628697666287569098602420257023525844090795482850412820751801964797763863751970748362695748447368860064299291235885288949833029211879295518943807100862832668294549313146435823983109973756973187583983925559621377995055200765706275592997165415411726967979434172242214983111437580808652993397601810791331445279551875939485011601881890091237177808598213861710612581782222155137487377805513259411685414408608703993468243174151239347125067733104646180421331199189737231702178812902305888982556727133948055677575334436992928953450101409514756520881318869185468207204793711553007712426643916202815789742186013442950822294820345133116434402347104661224337435777866861745106507423101157817677061393652482209285789619545635941015902726828183011074524003947637396990069826145860598512181865323043647807631615309331773920713642423445039510734950373245961955208092273103858860457374503105904934683385187330952487434213311016239827064322156113509691854330647063794186227873043078887144641142098487614321840629792620096057906385829242146484337408596460956459272646627224069757916960117122862001132895730199679620818078198727549085559998332381710628163865402331491668644430056220024323120208370755962346670964594662300838291264062030192698733028230079491756778891623385228959442972941951227223411430374843459961479336748352090138818132748710385785557185481479766206119600313458370144770030520266338643927515992157621738413051253685298899634714071572331677615136186568131697896970714138755951740414424211182260670284232099374207958480118955870640218086771555653866576210877438781885225152466690731129227107801815262407917675056751412722017500126213693119353002306919231112136121503555096600790628365530820531882195321070850954441882937434957482035531295541150638572353189854137520003357981421398077882689424153860858284503045386437031771098121384713242111539713496868311332503105319941281977128928367554934803712823132703406608919814619975737658665311495284494589159523423755425361040987632601031851320573481933404534709956492492209672322752523952033487439354708938558794031477517280502517223388909955854392053964544394077666255134787483670955589426657442085420627186769444812494057629873199557287109902019179564861777630496490774107885030797727043979587387351394970001117533542241947646796909323391515724013955461817465253344703859030106750742012902908603890054538881084639042728690587922672102670927495148998096875864439187682212134616208922469565781053923059384332795851697659579915242247063533907833944576992262679590514241948897046250445224699492090319474810626871503700104613520465194922860326368064080827521047676490378455550918179872117641765034556423662397647578030734792452451937231875807289273484714906705029604572520592903668814892267018213092436487209401354750075307042818734379191795537604089169828218907133372801434124115866748835156225167147936599900976350357666782050421057671314224440845963561218004017744048129960360049729625274023388157878691027866249566405822695678030978321681986538628669369113857756961984900505205637892778552939490086286241139218709933044378669925967669774077542295321810351695463255715488228163039178460225842282638245707599884130376117626650522418187288977437717549981797378485478866341293512769203521852490530127540693196209299866343972318123928599177193762935705943570805486189608630958588304133984804509795971272560172161507417758024090749426661485571274768835825437702959919685391206318357738976826522578429039248775777777789479541653307405584165742470197094806022134066580990495642693076527288748502907446451759870791981999847829842200114776071751942404228233505785294762086285571254330795300198489198302122211563992769601722019248410393119931094249267966115845447425571273352782901685126694224727562313139698256275966879648683918443507254359977242999895802890068787105460117759765901267483623338253505446417996531605630939263189825162477844250315270693050553063309923844745356160303083426017862012233434819083791957595333577814832445044683583908554065025339861733133274510376975262583086877011290529845007308686660161353870429251431777459028916851147515007086496029931005289132837162901498770831986087376992397575512625606853379027437673043521912905325657643321693889598376020562113383502524262363728168725561479083877444972098886661199913892488369283905744777392725471868055550071793175862632632944940800339763800458713151654650698947008315696038796018270082003452155839420998973691609328730112816115371274545431144230846742181337131269643567306493801540633111757181109637549236597462820830704925676869101446258855320868259692514426712805734731864176906001726232857860205954277659926165134739226948544154462150408581203152143603484427512958020156179337678645804186612789864615421625624644255418775150415488944950613646687136799003336670892022822401518357589731011290790388248710502221890101870271353109594049445541501263343405419025073327464152761158972812510400498468042037394985482521679342295277470297924998666937160726661415074204770112896522138295906676689516026976522533964749825043331163490418982285484361761302778839143860901581073624176441338521609677337949576655361554378449584264048351916698238492473925264134493259955150782072242922327604614121156483521224362603147771462729193265467347317202985365048199276625437398311759754516435835084173177263384580285139716137923517694111471685471056016462118909256665392108726024358575182159954360242873958780727285044035699785409690012426764308777817069496188574829868005829983193561352510461582189770618156266301797119624046305389835844426650296648058996895662478708505599896907481605362987073726852671339805118641317700284559020148311648523711391065599901561859167054496202074518643101839124877339817599352487004968782540221255862465542167048724515721549981777202234233669222788890790460101881286708924321487441867701983307561154628515256976743629809092332739794841190479071407391452950635126262425616716875652301902637344740906684174965303784472867096312823794469383673801485997749842551782376070466230993459668283231747582856515210224153837025613366450978416355515635333598271179023496011106335293219413250792696079919089284361059792251527833758199305925530324913385071694825628006211735687047992884717131475835454530789131377037632227894249509388561375821114789020335489265737402758760719577555803291433882049107518615614513788808252937089572318070845808998791489147898814331560780359740201326163031012100911512363005839705522277843893653407500793852447709643057924858622864082945813398481785539651992909299469886645726457277925935790829535290838510435575973739717249861157369750743359330840363889111790546484599751139043248418288273251186725560003451093620064829039261700396000955769715669842297106085373562730611838414322616569168852551207527478531522001665325581566841788793904314594063518919055116328450139278144676305796381410118677143975152614500745140311007186014156240181239107599042855859400846298113918008183938864209786704660958007937495929737881802504221210729277110941160372196822256177669943532333947112734048981417635033464563589674898732172383711815557844804129029165737382570935994546793205415278069981113736882628067288430999343093876295516326449524657745834717456728311378431919379447031963963857081359193861617279196613273949616619275633795924886612826551524819140821680747909566112482790188444759314957498528390794307613562771858967896430492015237138694426218831582024060107133109807670987132909241573409924442316256453238537271693267270399822262516121444244133271244800597195562867258494475229894793089132739905219050690346927407063454376641066987222803904378306347576002350577078946754339844838769367182817861543790882791273987443422474879159885989735785233573260705813079967161682368951574965981513498172680800427989457751831535834822714651686395910599699318795131662719306089012639324016083003742851138134604700726066900275624773069149170025705922631728284066281267875549378544293871193341589479295859770828345897897165077591235754174559791463759371772802604024490563737871861326939723240902065604403277709336324218519342427675834465075133595281355438970357491487090556815954167700603599841801441609958302689072764697730783163135007911543888406043596387544625132290887623691932443860428887853132878296009607964945788176208898436878272266994049006061830359535572808589346567029211636514371368061613314193087432463498430236454882239252440405942579568721060902898520157804159653189665329234744532633997439962664819706612286152004342441051617773278223906030495659581689412509363285359395418962572150943149198470138685424252081634600714283803352481464370486961137796500485236809619080370547474441043021089118368411813170445350768823201592890270287739516381690753758987567719760314481216020960270519760287632493049528604906466064691626740792704382895229791644422876439743460598751389196285901844126843372919436918765476745678404811704652663249651629379045961116357470312440556399618966175924765028592609553179985130195436550602443425457476820708556846513579776894039920499701289099819641563472654275622222297875693581470963583817156473258690942686871468004570162605085737994871520495055739678889649707313857742099402122733570991206991131399273874877545487861503046616427549334108124778692509811879159337362640057161008123400446148558832746114662627188478121265774378506276214952032575289995063058935854616281591809949160150930012029718091982179228606761212327770336925771500371902051983149329032651253733082760561085749042359482718801676344561497872806683135675985268879652191507580314334020809376857343176059571151640662164476819400821445155101703108705105894613278968458465656997827160743413381177934895850960827218642658124850425562402147952931735537424131849080815767144628969368550288920684435868818306602360381501460062293196020731961992579628030351521240371120952620769898568415136067650371582452894201518158281603710871599015304734618054238527212566358249782708613868815933589469972631679391769071394765185711775857560472708710704504711995798369313435574673408882654311971774848506039109670699414772745055662215147137820520950295277704023404505202124125316031890262527959928586280048487926685435367111128009274891359987522523147829250861706306709867767406502741566819595596843527130535611453924172128426417412608753717489292554251775905985894456167115766119551024006503388946355122990814397422575388314531816210143848923296233909146344343105214552161303530311053723656072247374443023217127047980490320904222390955651447759796131929913233413554530746869538385586064802255364275372951259420825744471112822736818673479183185768840299420750553203440477813603227723001391484931829857110935479609480549860774986417439676473492172013763494444798025116589157872223490904252189099823966182731067268781477148660028359317798647178044548210216616251886141424741766288794048836884428966985770051972117656503640647514666319581251023864339095940306033537324526620998516275157535896601037906322264585146836078241058857333898953467236761264272465194549732079236579590012262744618690994396509527580122842341390190158737809755943121324030523467515363958118406718961795263881923203451393368528311176140496044575468331217978287382782636705686985916351016018419780813435074093573961785683082302176669738509904042039125036578659545093699971307524427282649208958267332941569729308584549160546320653381798596285541150658684517201123855922286068774432523754734634084594782089072239233973413078231209582958840525456283743152508894922016699561423505320121503358674781451586990579752963133287849211936749098470805050844512867355993976482848473226230975382897696525323255255073752913674336612238544220292447972401412349176694323290607232135035046309264259757287912417594459704662361315257586487405894962478761340504784886064105661748673214429823481587660494684537123188502406872515691400525202919191634457036349755861140258559062793040823803632518737079524362841121642079669961824390908763793523276503873370556807208615586564324071891296897990974620662261643867410751828048420451172247220023977812456856747971650435366716384669743335940240256625771961168862048168556936194080114263151119373658685120881912868089861189731174394696661093526280003818127646406672667466535845075443487664923384625907876315239674807554506269406986940509934695774920634795503340882928027158028169976841710817184072709901375273933851950399632488353870404276707332323596285151154454526446257711343076756214494149433914828957942078274678531444582125815944186975305821113791802078057652306254194735201321639843255035160549359971228345907264506714751686789302905613033572904852172891400604678994481940055667037397929395682798261822151803665681442686753977151047779508339105485783457118447283003869166242106247225493609105536828996983047078111921116277791093356220991319537762926144509698757940241601794215379524562698949981563351908466742161256070031888751818567461820803317931390743890222427782868667469966039007058077772667095760058685908787320151742062863624059518941402200043951143159499655882857626133556521180028706343959892479172678774034902495997589394746978001612049964541799452974278112492749671422023445657882306465134350220797523999738232443366845582905310506255818278943867920390900548837816562400766506602364431815186143180405976364174700644462558256551120799307536772604588161837202210254589684314910625132797176770402250185152154137610193796253459127736992502165963847132444498100286288746929564750291833161841120590377479879942333259472499756449481796267607473065295602240057361190540316676119124265635487811280033962846450106288062398453029431840993174321648403496059515113655613914804013868096191826654878080714331331923106297460000624625083835848247112461035646845994801215881121271403147531776932984304302818628562105500107583107636170848426115272450167038898977155290600873634205968948858115746805089160248124886065162464389888890225327362906575817510252709714745685433485352070134759943011540370702442886558403140049622075684492426703221118290013508324523045011719107771457778771110062693747856391457619403901458953683016787051162885376409994796289913040228598714790166899744515092534306814255886308693635530079618781416447293131471928294138816197939082115605251091376537189679420754320342490620907641894208416002466198788882657900839368994733805222033673079640549515673783257438265088916698820904739953823058364997074183618273164017413619412949200294203619162281382511591384330005795256662035410588439466284786812879360566747618243375389848149322623916551666231740597434559306572984683786449769348865192128769229194127290907049990448797885145921543624969980966061837215013468406783046029097204329845891553147160524323660355635732873432429856196636954774517013761542484019135148617599621204669017019082503753277592405935144133767837019161370327561706633294126828695550783423456834894116724200418601667572806003292355003861862230781580527090474607075894389920002566796548933385567455289979788447805055518527126010809697875451278909289264532707887436797776966718301822053991087483202273948696065971741884474148735928253692177630809647773027991482607806339420733023281305324629507602697675778805626283725168907961178197697437887438150910252341373382681191985306645729952110776379419943309986949903438818396442412002255551478396803787118943168728671882523164221146296575443861725582591596341162163404210718801201952736164219802969631716374197983341828495048680718220668503656793408725788643901375205983856310389098351018382232000281903366853042263373997955557388052051286536106007822663252823870697392385056792637074164118207149978913937548804268720516909958924446309312269150492198726504526500455111675825723384480488075181156585106600660483280056212272840555443761142824499244457373689153966738163159433618919263292105123222975806620939309189195425107008111819127416096618453966725395330472356507518368122966431556399741771992023408803571135523121515079698464840829018822685050378590541405757883963042070870257602145747456813226068850213577546639619379393893739942677890416872198722231878443722671459221109704467446925507724242909053865484149445900609477736213572266206821542390173093845830278758601492107750903417638959584785184351522924008660071251828831199807287592192190399145212395020595907450699168503281481984152230865643444656080046940419014839048126421266776347594474742829220956173162016369763633162607062368762192725256516623482250707273732784705389644887219879520972836181593558579141982241476275639608343289929830726285739242601272761692404556157527072333663071425335903988518891309279889648977181811676998177203205237407221215978438134995684211140854909233456548111199278377202453523644183662704244909215338017324243712804393775673331618737630999107921949058890384635411173653683371868077302142372306067643890672382091261613782236715040589565052823278813617959342161046370256307107230758553298129183554360222512920361429830032556983381098823393380209331788235800135485827507483787675308283782251316769815739266654088928622025030642799181790862891495089449752229282553022822763133852808504917154825975094155525197070789377237198048674210472762532252582602109474312880318439610880521048687774510515358432367310598590312532140600972072288785332969220762863030834773462567731091909265651759890653602877255292310313388580972061062130005628859161539014918931997583620396307277139632052396596661420261388637517143154143408347371517254606969990924888631126948213382031277443211646557688242811156277515497908648474963101327856096943821582141851387439386062188845441158735990500644917912344371251233346139832470472775597892031398676636081545087291398214141340733454068355631409414563008779525150840849989994762924260181536577407503391529569901730727856083925967668676884060508178225306999374311017575523161903433595613091330088197127884722858672497337813279002849662539117068004419946553777904504384941047100955105290781598480864093486562965600804307734130350432738315009669491455690206865230691262303172807797236615096754886057798388001962158358488496229592999833929293745177595635400553498290854144138130563053049700840005128789286935195169202432124953987312138015846496109969584394380389613950329818016859719847930379976788992338947372121432012832486526305625918008424248565659426460693337353789914343474156624836578280113335269574473208701549175438611294404455456682246487558964812328629395656139250660276736653330263712285956936856608570795182873404400306499442873050014020510466884779934474986751034830048500667974165948727992307383831465135733578542748461116305132595524508609924720011559044453140456906834269650073935538912690645679497722043942819802126165943597118405259437821482629962841769912163615252401877658907494354111853193261067752603627504604756232428074748601299334118460429070657405418433157610430284420259623004235262168024110930943753051006551988886889908650566617137344708488809097126378887280127121224398423747850317271267705242067235203968806802405451193618425211964127302947929387930289353640075103797130029177635261180821207878541012860543777958145719060453386452207931621353446335228975021891223143852510861567189178829242838052781404073536548851402239992611264822199667893650716154270814739322410024080172859138192126727142988828657955669347653643704132799229098422588597263170200574452047594061958943114803972789620638123566474818123711080333940252357467959269393977133646632812963581113979885059995853140368581642383881228668058978987847671370598494901337325708489327929924320254272209922956689872146160523241123747046071708018358985474015419761606666989815226454509969952994274916539979425910790154643025433372925750345734833475292326640194609487373161622988452374075196686206310357532470928163133497835572441849483554559227188035333827344683545888460603428046555050864978170193718586659885393067638190531019625496049713276623205952196780436239368733743414941188512366233159075202285844240898678443048402848083516473507184287486673820668637660417693252909740043796550049366881644398948353602612049497243292557296884601054785819374179761676428422639030360951858564844803792488090640946552846741534589314045279585384560633518971115676312462866874359315246781154990084529930233136847205626889219532253964313961779534293862535015427235329221398958731062111862208423625132025138715545007301354929286119721415911462883497332255836351813342216034527313623697465664097101765536338212587635888970252319814579158821552310591456830522565983129357759453177307458335377840809553353528857927683070352644179582825203454333703091032275598914060490140702745365188580740709508296069624664951060654901728110289965072148862652368310626975123910617743565964008749732190835761295755843901788341666894063335606530479227016281592329962777481961238855642023881769768051935735194780486630806453914815505557043936398257128470217561057081262194184190194211454437368441694054284481705056490231069580377206545988658743909523950132403514657762450301818177933296646036316494008368580350233424771838440908090303730889492947131728659130645070271734043011964004049119933908704493166116599791318484178612075526516938550206986163243306505553066886789812996733725286694867599009687258689418875891944633597524356652885846957815505117707631575591622217815218729518840988858426487350763098748160648565674795361198442477068128825314432203540005181811103485795894111307804326790120255772087295208473312533178067663166728168747675111411390837262102304390175673148639551173957411076819985855144042731109111060541612771622496513499669292750422795351181893413824619310551131529147130843929669820475468334194792313617430709966000090210739760354013921212910688100756213582156353561164259417671883910951707653205589630210488825817500106284633063695587579594393706591382989509060464411146142819216084136870048778369709358963880806305864293289131653755134794390520478198488147437734325264513835468124248064698507761046905183780439000812243488098444450170451657327720300153662694029815543509429031061195645677217141326348959146858949127795365455081625346211684741116844075569440116735215680547227060322096160738651418346435351403266457429581025611723835671256604619016724113346839496376700738820015540263894577181129509888892622464881911844246817058831657328973260790262140489470043472076317087796892394383874572148712906896594374032891629989139050507072298599247131015056671985141021968828069262898793894976796764415882185090375060509266115800001313111584423911004673601844115150238602939466126178071491086615107035498382302789851298944488030424348088037285727876998917210956373352369839512951628955398520535971915404720621131698710547635361933619585238932001346128756595147311795666729840376110887504440925871321855975961991998512088279701011954970694505272090202332680652894834781675250239481137194357775939129683573081160032754995747337430568301154334222894137249780045164803056716872763440078760389673972274042627980513385877968994620673842464748568670261491215553973674731822570385518029365550006448956243085562828167591741536271350274916992055853917665933178761194301726807735967420264101966530130540359659867738646328611457969747758176596338775506639266186731951189660612205787525024123095939889681190349801691827352289497425423650758904050711124944058919369690498026231827277258795834934000605712499562644488968001698495294101759698681655794777968809477564408524721000057972155610867120034094537342252312556410057157866164304260083103216524117711083664044986016062956280124608557920831561263774586208121249908723200873353214012528065251941210623625806614856233251954920262106958327919747843148952273385360794278033224226521285804672116355709540012785868576603124132695330449929652401156046549462016971238567438628015295327953964479666552703845560745375438059730139214883103992145844903422948573928233144738755528527930160064725219532998026454771204291972050329267005705785143182440057254085663222324085396281377820024752105490072181507951229367184722037303925580737913037833045627972062672030508549069824358433063497925831866807843168260641196953901965433117258724428008450982418486667977320691947093271460313143126024136252006607250397717682882015611548447787797708459786559614639491780001855569920994677280300433077483372857941207037584509883484649119381219633994364970562291798711729858483203436375245376775058656898776102724093178587472585113835418889967378804587584635131217601011142670515059447266553225928421323169248144858958425307879897483782460913418925125967569778120201991672729884561324952510866138344037495470095856310914283020629337514300163351013027452137871750378297696219571466720459225885916924579042426351301865093849834735656198880668037455929685969462905181369829486174105333705380784626985162519488451699409680887906713653275457913839727231330480618983374242922968948560099542788990307287839373787854110506942645550083785526931346813155679845675669301963358910806768457482761213701363926196330780325462158195599086902772951961960071431232750228166259444261221203457464890930046794740098296008566736675087199618747841128468564782959595519636004593842939136997182040848831231226665308518139367313756430106536557176273093581889169868156355896890320904412294523668459714305871785388296427491147932901984858003036811118359569622983882744837235145182447029912029702126482427842198394344803533998436667437300207390654906848839115395235440661305550890524589056668945610127184001998111402159744517711406902591499453108228588616451955997349822879085503569706665430520754318010007431832659047896292011525185875782997756934434521355703019888113005293193725296731939146587876252005068623599073775947665824308774961422769508343228524197378731700128164421850261825159604926158734850341212735137313016789513661726572148457813422303341432633709126424349849457837230842212848307879130977058766620968577460675724874588342648730867721026352765764792965490640745177572648469867731136462300011465559758675684966404213974646560216581116530676470113192173305057396463742439764690370437451813350148831354756563140299208099874101452267730495068244170105180187307861219345778342620151033099443950299561917972686940192806774413854258623162507008984016779936750408950958961040073670480661004438195075492482433476062996209072190754658010724066404413754287423511636073564225441315189637706050296152372637793675852707199762358054747209799359845222494469613629209046292310762958219376542254914779367222696595175501121719276866429399399385002273076086476416173907019649702695079809472679677208015964581663798022130108259230982297982444489897171617199855696986497189807946939865791321371808607905793255306094502506432012203504400604416449235002235323679230623878184830742233519009702858659241775024276181268598561538006568333271728498917952470683861357047181612264187054253628174213183443272650500243180549118063351150725233424911537877084037823894429384932323159589181955945898285051247612645827704009090598053994245815793861400556306259217461207585853840373085009806922351280866369172465050985933601612350212676263632326769816913818406125688013395162533949686125890131676194695460603604083120180240615947854622107267815257540352123882525833007971632783420490368668825728312199671477835286687235406841799219486867294220807564370653221743059774330364425045548567057845685990178394223864516345878585150918665993336082212278350659639925686354799725066813246475760011298107667328472604490913156109789676013058805782507982487041824312174892534196157360522427096798847335200325133769645198677887948746635555007988191559578957354708112376446182861337750352459689799680638008724414937651673485850451350955097883906101655551203107605199882680350889861152486545487635896454489363672866798609038218669030684609135475938875756676499072734275369795763973033797265387793478037344583828645385101335062852139966389069375403858180147528143270637869214489793543256913700013788880487026016399111384623561093358785606946025497302387775990059310152661047875544920308001306902870548850489813362410679563732673682717164006452154324582881476166903933867371847507279256757985402636361781585315515321361709513551669750939623351073054410512604776432191401069840139969167224834676650524833043214660797911783056592697359382208550714401301201801329453854854365545671130666607728496824757627936646204887114194011856044444754683152574336407028662180316368065162746687544636925754542197837211522820838560150858973545311534564635304606610251612022116673546445376307652768445655113866019985609101214363168405762612121140670483767932270975432484428024675670421830440195354116282788887979272955559037153449977091608746903575661066765687053156130394892941141627149567062939678151722973268313804259462441104997719092690165152374740189640227789500848145001405281000380738164070220432650255943005558826487529783409816528951289755624457790110302793466663196154329134224014611565914005899979497837186519602197030354473306867465216611581338789582176009089316615295434990418533147563440779269798105462975531640022750576376463806703245245362224166949109606025294598614766146878090408338056767156548066299470408551067681317637480742575835311377576687469228288312871426063296720883699351289203802956702373945294305917794810460848806655998070341867269606030445688754095049769535903205231558735255081077951861615943406837348915320440155053264126417849978534028774551907468293685886252565169301851149140577061569524304132276012947460190701125725584652102611567527951708328604217385924445235766908401902195768208579816431000028854075525528289450749230785068555840416728992605715580012021077568574923695141697876325848202440523035720463078650438218769875116614045528653163483791600209524305704111454950110929338599244637520325854430226803820694365224919312948487091141211475464883401149870150278638947223836505409652841092108263131521240347300122569481829576381251083063697099586118561510844996512090022636164073480259594046585176298018313720659875328785694032941160915494351562071240771293197121760931897058259446027683710259422420758293233362322830208378248070033354595906897581636669627910484325129963476911820956065585627760041007991968698967320801295171519357414634159491969708468483728519412654341370470776580085563963411526247399888224225397807169561953478956470195885408274767841382302415966963093054172604547743090377591142564422436219628861379480044476265253590587663024172721732060393364682013042268021887700532841266414822324505501512191760215295882915611314808939598668638017759495108046131779742582267180927771572182225312701584682523259186380371180225367237419038600515637436697341386328208377797331689439902029274743115733406652135225045203788890375064500904424776267674597060400358114873115172165097595970178042363366514153150041361893861045838052163241311621992640543747239078310275250222827606945197660023046767430116639937829880933606816855046997345832188641841931953848763156605862422960062422877953274369588293363621097634654687112055977392885997482913983030588706799618329741651104173298827694890135175758389571881068529442119224903470141600819148297671735904407780842557982411111786113066020255275356811537136832132368981535881129549090159063524012058781998997838474686765225537671602389971255710549124942257812453871085319717284674345647904067604650651247448491954809256248364339239209831640301071522586807223635983374540062592672966212356956404664239449239095315049889817621424120104087310710024977381997996379172357910053086736377774029069933869452932421271397700736718755947149003168775028915106775458110981466306384967715433446842621818882755790034787881485028087307442779827677689554685440295471847431372629388808928742662692216267183043348252807908542049727732969049846145115161730415277520437009612531555399241280315741276655164669159055752647590617572409810685688177816589047779103347989297023217134152182008532938599025153303365445072782820876200019227001717697408574323616725535747156919586726098730861795191205573858383782692646463635817269427490730816665511696019529619904645977123010466777692942854016908772918771626793798161547403259243904657335412930926686898021474105731077842546459594150680554014131153478788066740826183129558687872850236652151885993612088622947116215652365346853714953733548121891678216169831073062756254490753163649416501297775700023311521800145655906584768979794589385175618467965279026621441907796709790391819365403977391604950845133230899137950004781738018533197941445959071235909562262718380265205499057604646724007930381543154969672336823193661545105381022502864000644114514243830262025833728995449918509673111084611409953422488884592240276966057846847705576985826239648331605525202780423829594889974659191689254467258491177997177694178460388062522875241051117957982922845085957732419841926472901482649512660265910896875081558686548285228678027360966930860365239322646538907288914429711649504617718160104415763251711796851086617814820747980317106231683184758632545679836236406438220363378831831919143324278584570192766809549659712472293138119518657516477009504911714296432558424027113732744100023204269393704405200970631950570594103805661872977385132139065718376990095929550078548592908408723945958843457427973432746223120788821037195567086267022973829967051189641834081603178879163736504131952594135483052543439993380778920751956380760086372270639651903159379793172883643630333251555147498907445694135783579646356758070155340069029390738742691722717503641329252433719972095848032342589355174110736009988752311782925938420434540784667677095277748325781125061305350582879851861293386655430228653976408508731456689940477220900125773816615375508751678751541005867719975068660215515901064826326233880138528290880434132711316972057632313392084935834376470982807172353577633208548232459394278497931574313197334282863282288518305652046380058959787948286919823351585563564085825774490945837621130569480584591559607295154624108867821348789407372591485526963086496057288391830685105175865892890472949635339711818412672018616226654188762749890728711616452146528467945303647024221487653667427994082783540019054081383253422167294259881235529205946106861670437024968522406396032621426459042707447185921388722328142434803677938334277325707051484980251706630944347478727349335784945503342573266538013240649345336982224767874463817401412874468243283289683664035941133351617176686149145675889897986332183176136544058415544085943459479187502938485278902370154445918007016810164238142669799242866052046571027747894797880038569559699304369293370070320131835660288997621351865106002041128533277920231879823729668253911315639300418907234396669813620614655018122981626468012536263812722125658906444116631925451827437319765513625478412998167889064562632977393421602216058776125190123819974235399718050890745335380255409321901453467289230704017402721974895293958555110276643523837889805652004081335080597786227686290259859970458944773937448925704169770275297024367508196140240219307484617069033959438427505705477446184030622474108226360401993651106823838960260597214619007304642803638580330846831481999054441772769581539357436007662311332718779512736712964484220876848779920286280111614195776000457881779815276038338867671741024993937687852460807590506849177884003145640652204052907619807915691032801206840974237967604910967393843912332661643989084780028141948359120128714545773381067810408568538402010598797166764670389856163847564121124869165990507425028015865186095068735195102201423709930532548215045388275976438881766194811934141039177975937792587192731005679418450237171953411203078106590653518502377359458677388144249444203379420417560458122805543553314039394580252707357174115618169303639219699428074554367502459972113000681689701139707876911476659912572184183713307854601637246168199912407965709496532994416138205847555394156097951948095777139835676947130088816996337542071701647435363187816462729972797640558505629628654460253103686115019232362827794795539136097857304834549260091206887031662993347968513038695028852819153622278961963612079876199040166609693681149816229095218296845565567512332450362111036833392089373131650861024322629626072756673150252339628615005765943575748286949266440323743256247063513506489966799315905355238173700061929980868595282264178258478227678301137500837293033751205488589444748222039470967103732123158439198256458553951431004324485972599601804194057014846455644319358377340384755762914824382552958676739782395115465797190110105197048077864975237795487033290101199341047128670088349683264295757867230129759649841537223954135711326903449703334448979046760669092952876785178511377132563331077338564083125964063970532078168968809463373599065921620149570401261365512791491578539825442265929621838277199487332874105150954260643705376233169066185524352121488369968897696597330547159571176416653481862860600301742725331366109393284600020288404845079093131509239247738532496298928859118743934800362301870117674538527854094183765848323848307980346286686201084092990459243347430589926164361627339728251296067799941561869230031681795673310329527697709296706495064649173445135621024050399184467025483020157384593095204160026702341505204050475087752358835781176930473045291503400061635435701813671726400611534367047462386278187306626688734691293434281987145674640771036150221607489129085105732952561056823048214066724439857116175503434383688371623803428011217127640514806494328309706980976370408852851475084651104234370410202009955342568980950945109892366795715665340496780070314772152851403797792787715078802925244829246314519677880052632743973852269812235100024242149947118605618001918372199239369032489913708051217161901689143359590343316787096672888833019348801789039851719801570959425387649899430741020374271333445092893464748683579551025594664285869571124975963088918248527298541617903993486282580638384737514092771626597230381940449186519601815014823089480865218276199698499081980988136424376844297198612185329294017327214757607971206022015259438521997719150106144277772999312424589122345476548977218923412426339765108533649828813217003028332556532294413092776072616115562974815790183412925689995104621260389045838002204246429651696383041143624551858560541594659389628986889184154570124393906578230461619066455001202082153470607929090503081404564653496655175505271829936552300038624046546578449023766738534453484778380041123714101640676670948602626626978634600457520739025944681843217574604260827779823016123657885985107815351622752609685118712058803867046322278762079139530812133910546656078511127291695474030140103673649050962355460590703751540831982317724057989561440084741232671022390594822349410419888759500103400287724786349593115039822154760646127973575048852857470384282491050849444304163939308677213050638579404840962787059706624615267694431645407166994248514572730299109093438490556686933410961714470203478866383707630921595727036006803150413015131075970198215868117968312407467877815538517289282695235833288152681277815134905276246150661280343026293862894866967634825402918167071206888625573741324610938150238695120860537281072215731504164187043198148418219852621135791188419520025250117696121753393851377630138377195906839061744040886359740390967162918774857928337764877403723860437100405524723736170982826160599407785886900046792823606116264839194106838050728757020249636789669125214432453343975738458253281093840755612067477837331894293578901459355570692784934582608580303623812945457813806841832837931160070315986012648141949400385680897953148419228825160673231315054931094621172347356293978291248787576239247839054827133923781138175823144265283295948474975632862474430477973560534282920860294103103462627676509266772836714568022981287800352530034605197540376193140567285453180101031266412086875098824489492074073016247878458021239172570995255531834558733552725405633989544881376119778968968186335761980897370902504470982271583425757197622470489833167939910257719884960200076356336459520684279293143958821752611506737003227330596690614062624505233610829961382575779616104036252391612820500566150224352987311797144843522455490403792437650860714707666588684384078241047597025907513471281136752859953836602053743320384926059184483969888012548582693662206108755363409368952115115144755074954149733747847472852540304098403292454945168897716559988610743571323091807018585628353996894774474869292983995282313420028761454375329611673656215357446766535767718818982066140620535220239788121714290076882070651093010857715214492049762420554761823408567890108712537428706873869249142912626858830345560254147944092488411935445818861094018238667057568567588341950416897028219986485791338277733820446301613788122789158976100899797941535119555765422451221397053818920987435219629394812471820444167018371242186620919913844940257204171542738009255617258643894002547003690504335450244095365452348175256930534150640417767004090152959084447017475904847429223160610256838142953684478991585375225933531018272196121982924288753607097933602950474959399455124470784573219892769154860080415317330614492842188191644692937585899872466207633936288464715879514481406966754874040912928333567957939232693477673078830974225442443784861370113876928630376375119692439812233597607043875962868998466776315180934494078665095855252958638324574185774627213494273625937760669663911880776731535262582786166676086662895927006422194936708135702971040687586971096666671504405107593070383706790103198691325507004488929026156393777070371742797225104295792510889569562917755501317777494690009771981880713199875898416417451952201690995789631602335445290378588455252070984254755174764756060557424889191491384248693975243005293889623934581630691850043210448826459283872397585990136920461378017957131350515914639522668849001174214773611247451962461661413193827068109453443844136108377444517792287511969746589957301275856828075025220831073833241336934878620501657861238610651903214041710742182126760521728534425706577089082095873561075298195615128035957460724955424821451510343932260525979717988570066368515467286445424522010165015165157501472718119043216238663731928078603115436456512585144418642422564253172555138231634524222065052927168114930665877067059471594875398132724937026238017055558619071144527779099015953008782839363662183719610398974949375566643722209032956380650873513617263514845621040319210924078844711390349530884945329096644951974060332579574386712876351610399570708617435178211814633224054672073591804263605873041894239940507497333695933126778296308591559549983749090736324431155959306827892869666038263047436987329835439993442319320461684359988720974602402529890077639365948150941682273835948334182571421750475035403494057677111248853377177266404438948290925685371099918558196375383137992342309952141261895000653762792083824527496882730565670244913573138129805219100220127076415644332241595109522410556322868106149632937570280312374034792440474344388874149974564811161220821476661662554096410988753199708327525950685560067540684362866709726147595200622568656427494044370847691692793018956233254523726755325864621622398845911935507007362413633336071757242468187000225208064426907951428256814836538394385369538068320698057495502142811924880279304914079750975832879978350852382403822120245739275845035834472122635355101450309300692463848688124423424096115769397330448088319247826909186051230612366623308463075810988200114823271800070634483200879753546408892838715626292782236278394398453703761643905153644574322841104479294528156829777044295944485765190947876771580535314680110162892039397926442849872076482871865414897955189277809530802413686914356217267253106803988399754702224673661299139595117784214299955936393148689538318372517706751802577105796824085686303735300355043923124617433993411137367088510796678408996667176907342787623206865608673321108112827794134820305568176552364725243806850121012961882791565950594859759191715916201741710768960401864343996648891822287022500085825650159585105796233574235827459566193246184909193871309931858669444297778830274368603819335990984379578792051949825736310892201030634629450170852506507752109696825486708693242563848683851187086270950343236719522631196210214228844368810859042317831344827727716435703644080225682451152993145573155562952266279351939201092364173628433404157168913929857538881546765387018776681161776568642071440178961726295976147236214628375263856306397816163563059846927686468556339966086680271862546624619628466276586527754175277282107927291972886426681810753402188716656516877667129003559965083620168999251914733839584258151378655609267641244256057138162309824983911891859468541609659112374721913259283202896834385377085186033637747423154093656988377566050478255571882712062347090399274343539803998346459330424966715088844127508291534078240502481447318103303044856298894662726212495715761678144059999282607968859189537252674891927034104849094495168747895517905067698576276466695256590026292873430032080194966999746206414731578607796528717702553846302504596257217157886742107683168704608133825089044516496028757307616859022328169833816743635655224971699346694253720587296872158785539285189262876654687895363499428711162640084388184261272037161656835224554238929006949364851891914238434643172566183380550308177052088582239523256110433535919517745742929592184234441116415663904476984208862576110349239713872265617757819573236364010468832886734518301838913447792561009544575317119455466334062507783593126151207550709568424267699328715434627469143774545208254547538532121848614805545902651646333524407839008636817346775502409092486789430199512439240385296624052598242200810415819028075141139009003136057378473781874129512111835470457752515592432150224365858662041422824624840933316335963845696759949884580706157777514537665858093743012067108375689589618023582241791629016372625193116324000444512421212649574427639965000448165911155535542751885777368249938947048458673407831822563743987317596214213106676710287328743575092623855877805523304224014667629614521890018740982764526939876168697446779256098466025521637573420298770099613462410373870587208570470276831129206598545157268996471800931231453760769937355124504554909483761265598584777270009251668094318998341655024198736759101959471787383272303992276450793647297043682909470187689527670741748497255014600778235171595278183163056977652150660259291543790297559416303643321878682506203531124130387700564225961494095751901677123076056643271323830759738516183218898382963787102540325523195518793429155931957851406447504067776300373464887082853400811227354580628822832178311427070205773932059142514303599454782547371257388705774552166464461546533619030027021236319599219533738049748326910320590532057935632341395609692590036711106940636317294732737711075352065842055971976052385165678126764649308006714962752582357980376114455510939333470082329258553627008683841480905410655687960561757843954157583552195399966032085356290125359074018499655002071095423560188258808026372806630598727622102850675030389260763315697061993089455116708410642509543579463960289398249699951180739843820000975912100036748938468928964581385447995776659480570261171673129502721706105724000562127229043016921481135390438193841499707091833434634479038311382325581074821902508314061198773551833203173920157272894656653014646681364806785429506422699470080978861743952277011890400374506371917312831313707114389591171646836642249474785562145659812789818373775137593948684949522636709536634351004825798417999821423533004487719101348195502573731394976149462578909229408861140955992642508948836115894982137233753244945998209541002838415967678932403345625314762256406049405875106044209939373191070527839054019702258741553032409119331576714564536215793552863387779418923297827812224556673489817249925970178676465609506928623408584299082359958313871002030156602559621502196658189037199479955438732704262526872990523133458698996476918586409353560127567090535867220964969281853642564115954337948561449808995323816778823782995743258551499662255367888973133433375744007586238221399633926202326140180774138819256432247462064247332799783232165735445906981712282793008017057045923868326589942865492772855635571361512229923649916335790664303876804034332772771291103268789725701025734009586258731170690800394633455123398274303481233260893597449824726672271957771735184304232836503382690404297325732857476766744619470702497473880258438178022572313624124258271510695646532442408414519424255698183299308431212633680910828250596798578280496314337742955341086857841646758005936789865844504549048730479873802516555301026172850986856256170736004960418160175471756398302187102933742652045804516576529368516118702023728624154249851638198026836491167384342785023056335498496003208556226890269225552312434992654492395912145854651151239609572396440440517696506942362533997052133047672695966925511695159448854153517548189405936980138655097133436400090990620001473714925124089007157083372586374933680871938392859874789915424133879886425538909394264119005764860014785686103155083224780480286305886172733520944249172743457015093586222270558921942139847344828187801846377219401188177575916980771531953689229782898486899778283433398743032917106960768322682301419523911702390685489354289558908544699509349334136271979999436811245394471299564220438240390593180653246674886739480231214118092969709957031154474215434156072588957768221451223725782851789435269659413996934567134173324007684156854923507032615483923630448520859848375423546882318697232223212108695771072046306797687191672608087161928345708471392089208620581164239291492696887246594114154351357079506212321388849959640395768012108010460501476958323936771561477351276620192665901434013363730092881292979226501504419231934088269908808341047463592668269628893750148532068239643565531618933385389705990453087534861031103972422428774052652102503585045247436909052289739218303184109761143293110425978787754365404685183039286270242207675161089293100506734129911008660325976934292529994591673874762880149366531309733859510404213280560079477608254221737696486275557296211692729953972209401142917156055858310948204269826940395467005915898210044709918689449109049216908431327711000752771302817971716024963243753270323108934639468384928580131797919801914012496214530006336732114407043070301568708342089793447477842415127300310823786627066877796392223116154217163636302902728128128342789272145716224445874161992017512914376809720548527271285350744899898754224466652111501378145068126453261546340019906409770570382122363459606508461001010714088234906433827179924310945155394594944004966599812164584326086124708254664583179664661403754550809141402527156703621824149529851679408900294714572661126335761967325083640053970491932489361724996048688811130152605099324402957231691465413208809173873270226054730876719626044326082598091014533640713728223278144642418954909807066713941996647112644632828645319221361852951644225206524951117865939890639559888336549101449312892881572515638947172236371745792764087333701225305163303506361378496502341024068469683323048148450793932341331210631800812185300349800412906574150100087097907615680423110348705564937972530364303312553272930932343781983981333721179742548900188913210317972856518607591816352536070993264749789636349932746325506499591755582619706656319978958280126362479656801451715106777596965376409786593451208777643988026091058498489719561157529075295442485010737886720557040253166327013854458144921217505978508595249957819741786008999693385972255313723171725174485180087938067920788202086215276137824926049779656693729747912159611673842256945650437115054184665147945789356477456642442095259618685033349986909005155651950604056890597503000846028201776358934003825478487027312271675049852156067127702531619404904860751090751531622166833716071624759805786755736463173793205984580372323275374567767722606096796132040209232799346314443849254827061365600985473313557561110949265029419467206128882871732208015455462258072087976738292927650197390560142276505010914473902427893933050717215464261287244966757267236948963049574771715932083620080428898536185702121792327337517200805629817119028887340871327031515550912730968865148192203655216591843085265749437095804378516409707093889087476435298821021063330220827642303951828044156597188312306777996869380260264222121477380157404486071357655561750991155069895101152679886774893330500092461000206990275294482293143342423969799606150778606283110462879188383721988907794669271255009771068621322485511432307421479919160933392243691499693193395704147742616340820049569296275939847537565496558683020048217332595678151204376921038631523372688794989799361760062299427054529125099630778281909169153621415352433509804986942030202439883064513930929733397898269712388593259319273061457230402831190645946446941294077849969713639146834739500634769752424521801079540046295045785307453409796502737758055691173999149684745198860165598010396531568029733645762378775460853801528538638955491017161936698368139755228708846091064241952163552144314572561674646371329840931911254610781799163305739577662886646265440523435228479869294377633053930269151430012008657526619483439704497806087579289496945231869810788312622545444252575254102326324528935462359559078711030710697625757828154683777587925652802600902454329367393028950453828901161710151604413218715890960648001233101256300363126804904152281080136565800481445302649451874154868449664611930094954561311241459717117562211213642391254885025967767990297060901026777482422477629290052111156537873487797140671464978272367462301087212538564393644217509164639754429556870039114009146681323756840376829499925631057893446582897498998439388909562257838781979205029747135175759344178166991893358382851351456818304424776422949090086306363098490446284535922841887922245067351975313941323935384276324248932376623124495038282909839937487047942621774096108257194598115926256519412386960224766044882991099075132683334350123233275666953901914092218335621442974748540922214567058850284749480647906078027877376757654168282577938524562262641183778818447539567824848335528655629600791454623764708212528305146797374582527844404969785557911201775414637283485286989258624632027009313897971922740556603099603631955966990402303945996405575466477797922215803188899510774193735172701483398830372020504707804928425022187685387159815032772833757215467449697342059863359677213654294243795090320509584725057719259460958661562267677348169635727495986798250710447164283192100187006337770322243480971813188977341365668408524350443382295607107769518754989889090648029126312689293733601437356676950390928638964229182374038631163928204991023718054397689038521399588050289273574042135886949972276789644107715599582857636773167174721657970510982681074933580766916688453790138559599522768755934986371695804472496244983907672319710312527878987456252260298597889118122693815357603757049318402881089920892326259995370922716938353747229407892743473310489712395141255715496497886799905342272040034114524083486294894185366545471874238498994922726512694070579101530170686297457519636533867164763260522257698120809967448400258768100750485033684965616446316627172169117141106301780672630698589362851672843457191151728786868443225187865113207989336589849886742228431272771028050830705958182246310869665386396806380573827801651032480397136836246721091408275111745355685866416672362844729613261836787155655178553642170576362995434625039968964409356317531823506337363921340340036437543875966103071392361055555171801812530913415833949190177734899258347913779928941158606957857562440474532908474448609825521137995780768125771812871300845325596777579306554569340490013470253709275635251961608398915825004545263091347879235239832728575837392519903237712386162509293920233231929572176941866006227680156792651613341086263431339680665242698627967077720431013424312846778420076131754128088416342935228823833844613206488670061740522531190341836871761850849539389033678861603453520758368056498301673816383536110260213617051336749253523150732359974910313877213939614402206820520590552342719785161567502828060469091432344741778127789385654615093436204585630918770584561770512679639121562902324751321553970472465332297638406547153335888795737082032814831231264940707048603599328161502121717085758420593570247008341189481949567446531851964605677816478257212900610633658612235460037950403120913451039016649513051446578589863602102504881886161017243961368661611648189173630535271858348025251379740822934410932040419595628709465123329162632864392913284530474352491580438674916839488277765971210268628781532191135016730209085489517590857298468719928928269753848159718781112258054642471819120919027807721191770422064854021554730227909567463801844345835769374227882174565608141084129952839163564641946809807642365494678999035433538725076492905108218980835389097618733574293058405425487700872410735403256930967055520208559487990415157470012875894105454940922801862055821054891324409331094723365847815043883527040774088609396722692822165551826228481047641035958899013599058138808034698359335020266361935075030474428634026665203189571771031443136711074513087379176916991806284416073132033890082828457207487826966750195727848017201468379480659471516130849328198646747949770223271869195028820241997660475646309239308936785122111864906100286784213497642129690902950092376842213562483397623533227673318653180995241531638254026127485539400135078298481295222777400324077976221782137595212823663589673081693639549764803187346823499304884969803499527384371555708026208275115187771172195231064943831309922146665256231985231950610471307446957690049319077006050448162468876636906728141602667175138977313573260887542125369833722948834336167891240038004258712858953915085057341506391912024130302634316465684833440388367461657391173584079402703803074488478410233496760421193871522871953958186857431274521147407421109525696557630290049672571355757719827254519429828927708743689149560598757398359712584760257887720609792773542719061099779372880165789405800819791616199457527430247683571624671166045471372637753419338271217675953697510010678921103117088649430283649478320638186031618696321801829820273830929766733300698322024393352976490477249944509043629830406286987064356066582430085886805835126472608742348406263813916569439642048659825032869172873514314498519841562087984778576323608605864965900625172694932828888315230708933477874030963947962284246712807788531304040161662753881005473046312759404433332790771779546458154335322654768657292909733593944876679371356830241886250964167857376704543876715668314667540149116904279718950370050920855569883542085032470694001969130820276481905999890242596304751513478960721455763572035432837918360667949103187954034701698962131981710325947253258286916629589803679114323770269811286583373060732512666353577107303308198932443902874742266278396434887866137445591845746382384595900529705706498929632682515010647276945413449581281037798842271312161376990269125901886590091278669939343502388097629472644243352023898808539892463028756526233111561447630333745333690240426485535745269770020951374889032712041705949120341240470670609533114022254193721799998946482671111593545086432960222210775869569421578616968715262602840955239017226116217605334602308375819249287739047511172555253819927725286014898606037915273767843143198041537275733360552516956657836044876052276985511445117984414558644884554874255978575552508436934874476137234195364142984424652588924212519573903118699874375105435581736353939509105735157859362019248921651230001771332750666527672961610324578367927346818973504716774344959243650881077686290463936530292956435151523699970849888621492821054385086768247436842635425443907544370970790868852131371123872459084147552287331824475363067568850214669826210720257740865914939912785434586689942280328437376823845228864498730016137902471548151349737971164323811987349474525944789250855746635623349562679939950916458133419585422629700137565142023618878480514162450800636297383180695859919558604970714581710056954685919423844385451094686077467853976642586192586712869620228863264824907313874540463693632911181086757967299003318503138671931855475853767927333994845164126152234303324190560705135186184985373004041204137181898060582754010965983337966841955176444479601468710701293821208544866735434133958822651719597926953613029608501574042704813561902370557178374634430738955649959046519811062929769454780764217558346940743783644868328497514043740237863023643582857463582692794424683875024368547449028476322159526035759017064877882115408094316788279728007349304471250237152376175816125866348881038854069577960903419273509397593785386423338029224818858029253252825559014944725264160363486303552858053211585801874811053378173710290259448820441524397937848937763619051009069509642680499547060333922985032753495583108506210713017336700611699672789920540003646441244880882982372158418323719591193566056861279599096634225702888963933260822529251894866658897127044662072444551590637655388379403203340416602487940218627679007648597132695178325222466276657176783968929805558867124276208388389633541211423820833114097877641431088115393332092446917842095074604520172615967684232395247119634476623909756148568670472363677781532159117981177203568244310101647502152623363672843691097471119101520946959207934820207577672056033460837507918726716218292784556501306606123810748622579389657315754762117863863600676804152809094886948105357766667233414303035642170093846249313616685758552737960081905675106519909040558212222609674219939355012509705016633430493789280189518458002881201416180415571288815237971634467265742028937209448541575256766818446677710507176553469201302086278423065297503209067268044227323426972089321867960214080270729572687257257930267872913220986503044480844916662913493180223852878772720923378858581629841922916796535540916550120702396218498629603993679870390926000729768987705849894629855029912600300773329751251653832272832361165339032880388424169052063343943526163215560974790072866446644335848970021572485784471562087327252053474678939184914217071333222318967249350269738147036588302334627333779155574879809051095697659628516537328823476846864373352749229826676690547184081851126289102388066422667030590862132061382104505796537747072782658749754746217759324018436224961547858566292568731445722046924954320087351555700440876897174783112839017148638639997671799029063418789724420862866356739719016062786592888294572749860298996975483845063010347236301760140145198892173144965538839336588595419247093337819232799909036119171481277331999082209504381826814918928044407818768088033340049297555339217849418684309449379942013474930602115142755252300011588017538947569448164473585452765814780626714559511308155921830584172290289608612199694642296705177871431757393385392015406767761160165752530129675533682754525432672542174428180306506101566014862570472362573685628824859944794045955502790330991568498301739601457376724754930335759125673740484701530360953641889044327532138910450550821002667597046895139695601261668107732208382516709483824804670481788564445596053682805126010146927569040722801969283388407358604386344691725652058112409350012210284017899219831017695251129240352270707521716507492278891366280129881876480213259205907567735022992959334678172358167983279294253540671439145817286206895311073717226745162270602332883441572133468611266231817105841367906564107256735467354954682761122654914432442263794615529508668592159590998152432475476336764319833846144618184317857186187385550545463932978558463269445147085477203434431621888633117074739316026001200838559461966436825365620575747110429155862338945869560601234542012967075297295991370603609602673342355190566017287119490888641168271602057719511694169283783607427754139834998150879436656213115838237278092567764145268026262460487961750244502120953749048567503209982347384499798985421431549014169708718619069857663222357583027247597150292913196980680226430427266099127938808903725724321869172120396175548615202931661558309362006177213149206378112963624448116539292114124471225421189657714647710244096444028533659350962837153705679813877138849140524513589089847028928225184107981893352012394254531338330897328312640058796998780613196191486488693597974006688162176315653119444697369975991373513017137553409455277386252461918725309593587539165773954264050929304978569156578363015489977762578061213376998181914605164574055161730970684445752314013326655120170097624026288628370920808130028774188651797429411368631228045349891328821657443401800002738708644621531603133369272796822986205043236848254624159887843648163126618635889338922511665227930074278690202631182523099201032921272504551821370094087739426103785412232635293524754674402147697431854817420038773715860833342543637687248553621239691557016871627541794939746243517449816340131403811514584680160836492192992831253122085299234903377974526685827208620644486583635388239256227572337503325453976160432426503005814179517291795052787269467353081560980884680602541293383369136324951452106907760641968993582146389587002305754070380000361389708245954110707844479313375085919022205632521529992559863308791128984432426050301312143552850002839816193807790331324633044191615168237789924796922378412203363082660765186547383950216361504251228913205973381030100765637030405661749522554890016216419083449279451218400119028454765096932675127231958638396015150411907949272054414654591046977051005843279235140070540720418626950206048097383726121159326940496345152754292434924248197756053714046954297078616706024198250954249109754624452708138273343959638800112986504780274616393435702367708668544362993898001274800968718884147175615425848420865383379126361368586306414221261804830340158072678904416454337267270110927798699045901389002543532333124988977988032342542257292952178830171174182856714052268734108303833891471280094958967558796308783234658302179769497485524981113544133611884806317242275006539437973185736736232004725025540859653425580449742642899199833410365981888899589771036794229027249568452360646827005585083917277787217733609104702128635719039823873108300877776582100527345864317619971560738216177776488578436810641935777942581270861618260300645498702488198350046939766124729089723223189740292422301215855640952262533065858393902103561369721697973758254669952931884466108913353806863615565064493227685494529730186110209420571321422207346631208658298030216795148845226936453713489292191870243804213000516291105998357025800742711431312264340241938123401865838961039301423047833344306895178649002752132621274000290802066097186255684354725839690991296441979094305407868301391933347521741247666029596086665031184161856173776410938659201928795380918048126338210234823966963425378792071873112420343202184699188636972918480845450248324861404705308662863498369529649498265460029388121744705709733939281938721473318793068998364069083053495302521190376165319629505683841804526269502531769854986603711350578314423661327080127271486001105359563149145758839406007686397734521828754019744840204017879036538845860957122946665924095434792359225377406579645271919186411024583506901581443212220426198432085967900916818264795183386060399666298123663374720475249887958577130945761048811638715887652139803055997863244907758402015068014752469632140058052406127408907624621954720689189900109048812157623406671794211619534362451182249693932410015694839328407332160149443475971005254632511963777722979781166108769406904110953467421125756978711223439425714465551284305401598376368408767047845690627307401652993226864556784582148403761859609276757653877889618403269949684977292330606767266583725729027120729469125166895107918460235287754971214896369828751487924565797927608981712129712326575714787960964649309834860189368454848800975154510376735843164160481158423062725706045235157787681843442423608362972849140311957802038341887728889459666357086054423349385457713538267716691187068522912348590628199658203712790555189919332625713038951274675066011167633987684248223758346043729549454379654334515804848372194116773335189317319916482837234293428510011701602645045846045290841160839843299868172479624770790478964430717457892921405059354585120740376288008891366642156074260896893956321115272540924794239086936936082431758919775930277440967683000446393678753239070287965181540595511226238625284970157458491646381976256246421241067584245441235110992966305965904974088381432948189464696935684184204861517473878177763814141732887574593998188419527307903057689648863996478011820268169514495069878627106167080850302896646687948022116085354763448399692699084952696709191026574649698098752887352928061217660909053498086521097402245225853680880714369122339810311297915612252621936583903189447829935339952258734722888972280881931481049082526589452491200111517305052971415826698612287109847758506036661479430546957460311875806382156073125268307212791710147496554663731096316335765951018354527967976471589279112430407075944597160109282541794424590790599319126324142645149523260562193454792916601212784148906590227153696300231183655017138600170084798431983611483330446920809021818404593913133250788152721763685228072106654855915133434259302695688368820902481307593887582539951460197484356864989690002246891774949514392502668296776443477863217810129146809570632840049763149697592122760436049220263352955030131622395994567895359729722081549528158607114047335395913492733155861744994762986776770958403127342700377343330616962702790252756446458555351964790425337978834894025989787224592764080392157396935392287021866165728036414491956802511875064092247530028938462253572606340929195003382440424734003713801425354500625862442327624019927321243663918146775832455326729835015113117253345992635553300303634942875812213018634515852405545017824638419749604299591279933119198867671724549936927479052496644369739118593152795935995251619629080340576446448048238548486503357630399402101804819110776158672557843259664073383288747734979555973146226875160952789351834908910705561295632261019600458372070109632317631739953137200308490507773598126679579205181115409890837616970303748994364200185328885881923687816250338936390461951212129492146754075952062176003634415383041186643681582952940328768446316254958004581818140245020869437813252238433503087915241745240672079448544135234512852556151412745570835783744831442345436442886877666148323994782659614699100057109591787333457473162251683059560234052081236787898516040963683469209183804262352860009193275455914898588345526086700275259081644494316698552426035878453305028071671987873913720050502378627460122530715943968480973485864207842941850892522169685754794790320799832922673527128206055152480394207830921919311851091240592643002953734888349651680872680004564717297593396593117414771092481813246660916174706780596337303920092735854737663967899611474287376074556130249816354473749693500776170015690252662270733925474565648188291821171214401406978178171453505605171672498110161090737856808911539337663430263993650803899019149656279940133966002703444325205637949760893521914245491382862914647231715056433186726900936052874951223535728276730136270054603000319390854670113078026423648451009259349944027493791709800660354623989962155986508595766574796725775522212269154665868484872717337497968640050614774352751623893541834298067395077780194429003389954197802029602036075041125818998197471182402265560378199019824191326231742418083982795890768026603801176091727784834156772176986971982357766576888521479503655284534077378266836112310441596856295649472733590487671762266393321486332353527913508942346852128572858281048595115654357815498330489271059441205610019587806905756555144347054337953911723312319208396879799551452182583249207845278129553807294897742926937722773588575833459335772600085392587191646810294472822898827039329839083846419987826740132440261082488868447540904434839331715380136063803718569549184903824473633267948304100620992604314559653629980548721810678231710699723400466732557911827457802287740574894156825395129024984223251043215872258640793134445785021968604947891223043845831770757319418290250743295260977826226881049249281338630507113313360517547318527410510597234888330618033510691998277525634697517001092554940386296570175417632278433088843971885623615080193363104573646265342627550261723125020760094744974502359780488881078255763152414704017544302981036782560318791623329036526775530711641613230326028262352380618889815179134566823109314929062729224401921768451067494446797120309340185142856653611177178593092695434192219416005279300442960903497858820975839829821419998332951716927824186189840977278566186040023171866579949174487666011698521562473088037657042862253508564831429042124434983498184545700136908257832318614544340050796663411435143308524972445984459822600997273320772548655597055961619048728739140090409829269890446652686774049982138050306198998563711572034766073174174015993235458733314328364306583143543746918473130348967203036802318615341514991813618705898727117658924197887288454225063556772178447891462500003873418663136366345025521903585001661185547071167256499465208901217231940004449156237214818230953966036733750294893218539589996510799837651882159493575844856107539589662771184191895844423154492199957863440698765977848460135571556835893876440029414229976253315646879951430817029162898004710647290902196956670253384374618500228710659858097465252768723962657942610168656224900089391920591902992709995150180871396190791199222331679514954120525660839536701829059377277371334553286536324983609210168374679910151405479268431006838563864965476192385396646421294055394771974850654571341055983766499363647150184697939931320868006362338823219810164202154217909738057803077428796566073148719767318852402726259413284306031815844884422772248929361832797523979048912639615946256897605205837491546223146308683846602052908765420949758170049625955271458764403132504657589579438942711729205430846212426148671122555935655621006878525435063695651233496938340656776697309404595588540460824119162311767588764779074703088967888841842993719346703183177397886654660564046193750202941389307675874330375859140411191706795168965465227049751382659178098633236305056595107715093559715789497698168226053338541320700973291792271490064331772924417234581188304233164355510295095083483511345307115504219498288693184382379276203778648760346730117880751693029855558888818177966339093934146176750445810170962139193186042377302540941344163614400595745328713492220852567974458426470149901056794845193792632775430820740667080820919747917867201829617958317967190196462312777227932091897905953431467108132192147999371527426636915858164369455950103796436092890866366340084854641023522770111540216550230793673993413078893953714447763913070594046407598721642413674556690485967628641533058854915932818152028857621147395053063202868088766677767254099738061426135094222409481526455911422598999706911359871229323051082922929153447215512172815569537961582204634388449761302902103001765766633583412888433886468039794067602415264904303916118388695813094897363986834818811376525044800822804832128223125234528031065361473435594013874314086578836706552546523909409648097564591889101262464077883127890002377949825853568906395148367640356805072482685486626369524358658075201798013763337695226413755261811461082546742702669083516429191265948237329433806299040652661462245701144493764767600780896958939026199597469122913670253577628146573116519746607734146775579316161554638098301330151969111403301517597590348554920274904174455680380899528849888490303229673098762855329720502496390381815672078413683130186272580583665028917489719284179171937306157089569570925988358667958324760092355336354985752611095839644369251415065282722895961235103367691884559336675113138296586284090979913717930799086462452709670750624574829865873035054529638474764683542088721083424850613758670646622494547315478181135868862415899847816298361843134273587894330152842051995811988762876143520343206479470440339357762464841109886473252735872323272005705660648846332293757670517655867999032713016839493812595094994764835083247648009467430206389390287481774470572879070166460141682622161052758215596075567905017969085740663365723612714454095609203183691168349383751611250730179793000329092842011991484150415185400374056481468903516472862992588663751217781846384016177360428852347190068627738890832347531274066421514239709321644388027045807016008330471004873517733109090046125463160693916803540265209477879738987055550703140286328734139506466247433480046765527412097234483702875983344593726163855302405745259889483375484600122786481447243837307582688895329879080379718629890651107282586016580619618816859785426586309400634885589938795375413315136253537136453598817234477816547738909646535052185571870966176908018455627181172790831390740539091147546048169530522929853066243245353049460048544032347868990761911795142923980650304829577557873683901284814830615207194423496144642575007592434887554563976618330600821162564891825552833054676415333797293850272473980678314182172369257378310178616354974866686541085596616004031815200066198220335212606874503019370699591123553490392788002830641383395638582313244051543277601336823378404919989215062623630999811113068656867608932169886953002519595383924434220463831608336115305755476176534231065590304467999965672137115685721346257303159875870092357099473490070250251011241624968909724881233195278484588593566103345753385467240061060900563016474997520817800801060525017795685345458287076665161836693038438914876511626583924063452224785741408473802402224601850855600876574772168126369197631614233642104191013337768532652495822725252551473813010192122567564397590492009653780222584354266236958377742477708119844726306523680354213015531461557626699098016104357337958585272790718400090663971699097567725142203778432142769975875234345169605715468904490887382729764725841954548977687250607773683127889908348844188680616694704145122972931760840762892322185572085079268553555828433518745237259089600663857775026560382828482959925575285860272144963577615493073504882110190399359596512651073169112197468473533137190041704111451234169766181178338329457499874901321740288573620915844220955972687624815530140030794952467017784264401943101489047564179016693132421254513674603361796509277515382868384873231455177879935347194117540012743404291781666903494897086473444178034677290439086071906276232125009516445165849693525644271631033889880043593954375126665951212265246651895574368547354079187686833089319605623354727726038169269484626249169853470241014505978965894652261689790223369887977112095971832872692648793797126417541265722877679447462645240933302049284279828163377291190092645662930916375346009911991890152679817714809640065222424313773871358231951931179404676831166436107801232645395967002996863820070076548761949508565883747973732589156748121459557104921052966363544582270537051565066734473203364917625645207557853135497340489058470742218646116488813009363944062503780782062065829062659726073648412426459180431113502591390581373791246782191612506880733914844436372876038561010270048002779904702476322312538162334316729720002981916044273365868674814157764456097116772234011876848715987821801556750628332603039538857025399592911097408281511374629650928422137464418728711136879562427363494080296406792248442194934714305646721504545815918979324263961564643789006492116676147174248103186318526565947943558633025613545151163878908629636127844590523236333785016741157513178341402714440981209798359921001729777423899691757572711428086282908872361384908594695086951939130415313692765547218114982081070034927162987365247441806337420372908507258353023736110174765094032903703425485578215504039638485587668020293495310618897612428711453235016345210725623651052390585738304615198087194888182868415781469254649289752622805908680506239202658222429623047043217010008978320826742796918101578124878713693071906683483976652326668415307240375216848259627064044546103509886701677715149129485849054664228226229873226704713968478321877333470894267550559194203291888836010708462560063573555286245155839696839506384004229322280429470632061245575599053463538954119448339777246165758817943590800577629618277405224496152328420432119327506395525717169743949454875313099147439540458396970570509014185877040790367231120074473638236363313817696307225012895388896330124151509890495165275645628305234439369438316333752808914864444646433125571419102435344401863426732508334516260248337882974025849082118737457095472555217249892028681041844254661197054004780272573625438780819003022593764783902181409008384331850453705355037563240004559376955801912963296150080939391982013503929393100252690318231576877346676973105353998648031444229152018291885221992486331640412621040128161334418956601212177385023244480872261991778906064581931884783107102504199589652104213841420141618002128094025128262219197845238762135148736826055103347437611960331335336819040915147522845017998885003912259072034307344672045638169681495166157183733565122411704488478495063764432953287385173580581704305278017497467590547709920936633502025574106410324281705045794851795787051420419567187397623527107162932523814306148201181207868200861284450313881626690041787160554963713498791332802006502642280846700539459767469874409674208438869242683025945162821278399398386858045521010996332004482193797467273787236687636274999880961314508184802274814754366490737530790939057878597570349872712998273563077702491511325012820208400489791953278776188158418607257261488757355553780491499471276293079743464564360951842351711661150346980796386481653381664642285694868671496644385310877938369471799927691073515137098382740903903012332413330533579165996365354636956151629998748137192152140527902395977293709389232664746058969030551527810951988593767991614120378792530904662631492949378940859595627961559469075933636072606236128208425504181413123905421349454061812385023782583365674984057504303406503406410640463167824282542089634491437823080278269947588725160762772525138267436007846257832121729100632390054580735393672937762383484609330415616997137862103343080282130355001429104104932374584992507890298006155115886392893721502216344468143949003281107185727166963551390456655036714255767351888658905649141872928641138602133268184419750390338975180222865127904543803294362702247033270089341040494724066269290286164062953787405546213697030273126813706115727882591472042585237026132763529377972154483096119821852958038120925145207331873563246473622259385400384018688678129628611901967698936557759096346200062696187234799027161861142383654442016218352611702663141034571474816672273636864098852214175296634736086693867101702558122027336696696107711446533121200998916718264940604212710162530169373605496607685276062922033112713265954330930141766041987787057567215905702123387718074548854400121501964871669463448773899815566614966026577653073277562407365327025129454316143622089012122011037816997967241412977531618434808621715130589988146679508362417400588785559984600700317340190384653152474628678273780715411762036360969328784090972459223461996702803288038213242766157033543200089074174932621750215693442155977508303537107138994770920045771192420251310968526422998839166608654065614182123380734500371319569029549026303002927556997631829278938764290875209988791600517485694550225201752139448284242210486369103921267561928869315363951462681801533587468131253203865555479641201207127265285634701050047995560775176346482785085935480938497446966803079616871088772292351079172001326611520141645472518268491000369118336341294506868833836881835237180175685409744971098767837980278567112168813039112953826200638404297582092795237891223579790802100605219859973725186740512679159828711549259119446144944929453145799695100205305434111540497698471848449140345441887587756248363426419740286631855798167034515093985811471753473637739870366365084266532011713115633079838928188591820981184244278592326470154698684226926264294522774562949334719131258169420822060947051180137052347759808307667032948994047810769921527728699167427228328157453183700478309198420557431871089975874141874352524097594633323890400446634628433003414240456646072226656378979865456028153602784087308231720655077540742945165235121173736237771252538868579169437698473340959109513873051668484154455757401571628312988718814150561350434694736769045975718947279756726032060654153297981948859786485008506929284716154888382065751652931108424936109947673224143153207130362785986804648696678182112785345492363749405642897282700274546117416747748332996015306103698536770071758918761298541238042833249025548222846430351597192961017855665311128561706634486604427895731953053512236684798976646564016054634452057874287957673294539573034009877097548046229698690195089792142336590973381740909696488809956285059586427769352275617836752878959821398131009129248029940882171641136321293430785675472623542709114067148953181362492673661054187830606121018102180122176137636056072573511401110139602643790510919760006494085559692848611333630021751725994341714554504873593781342070062052842043061427386459401062988288298074560469881977856251588848462390750448795924296401749059180505909887335630624054468744558983417867853847217434700778154584312764551595965217776065757042262938250894320364246606264957766501830607033871584406916839277934118988267355836352849976276879715112318283537575402278660113098417255585981835137670496210045885539446269291579676423135839930514627250605986299453027013494005628840617273908100532742942402617444344659935124087754185689001409118227755991219596372424323010953758522880463651979109917428618912546236605885688490856182903235532708581396537623631054486035222663101178573066466353135498876803500847705859278375326954513323166632171684406109806607011434625289597777041564720648294440628995942650651578756800467256766616040250288953493782045536912354926734854524867254506498770059375854383746493720725066043678017193778199360589301376529822987654087884297122593725959676593459681550578889359209622463511690541370603864701399948408826889638317872000780922968102765711548690114351323980309297937601898899323645006093453455394561361181643635181007057861632963193709071279685120148803023736871191322519363337052863526831758984834350052066136889766659263198692668228132170566590877907139424005277134364350562629880694940391921483106055163001047244907952077061607106201276861944866931719049056079019208332287039515020744937756728368099263790234939842671929540265187553362356199954779074673650573552537430683151541885869587964785348936576097373283977537981405045946030006836867956773219696890865180139816669692028101569235016723957520239984114636966416299821732870726925598059610461582073786102080779935159531885020180143871330032646134851277424637671052375361882105580478358739233774039227674475176312549084847389995813636998505136978993723089259458334975606814018187280468374380411373453911351606474726620673492092203533759257419037540361613478059612814313518670902066737978184023509612893308299167986128408844921047874657233635681577935687021417556381231813487601489983184436938502053565244611250893913791548594359930035389731226120396903452339207179144568712538528144136746679230326164930736620604198896912170386615567915733204769091190253370066211083487708471071778194189616373861999742824652075260471327025023723422963400260053642959448261329411907928760125703044615662067092458806320549617515458753995380672304590084689456585883590751230551500198036047292445793125958814623953061454308314162374965297871331182445429766961216542588357888496180924156629693056206097208547668795788241610782224471946133519431750252027438141177150057432628101637282389021461989434966829262186104235859526890035043140040514145384933882551507471343419755371757201222535774079183879619917267023957491702836292356056918584256488301930602056160494325291753460379719946014399395460178599163031040587062688711537840556760573813154540954905418061584147182094260785305502092851120168171453615094411760716105557431631998176028357765271464492669551752555241666061057443103429248428802332917574544661158860298095011500710372869756128321360971918822489697909403729281353165271483449846236611515990991360566932368983835286256125288471439886509105914327770760594725754597849377805121888607670768670922946929336740810495278297519867193661669255592459389067203926684158027034079806300274947791468095527438291841610506495932585757244082816597164140444443537162707990841774501512873787849674149184139740882153485426971098862735771526595541362057069353901503719373207082662362525822021047740446832713522305231660036608549781426076720162798080375681655170971523255113580731710971722816152969800669655402329152999724152773354848080050880406319218874266933540171811065661083542441602645797580783864974194531043169289639649549713702266751610768012614410170305395596259749370246935942430465898945614796998368900226304845713604350333922868853243334127959063461183284687208119183393150970078707563100751729595115274918043217971953450430996242974219541951522725911139945645337579084243379980088762177852860290339788621625950520856772614945458764205690615572023695386776250196753944755989999511273559865242184581896383690748796841714747653428718280221351520921040941030181422143247081261552430015256804904443120700142895523953031250093736847950453680347134459569761992071305909464074753659824004266629781525148373252892782713647749978092805257555519447044121984272645907174435381387604023731259498068504602399675186532362133408074805926075502194603681862927376466214464022453026125499609492453981497759175601181230833657401203594513469099555176706201468326854380932822451414983437922970379165132462600001388050521583580795247423516661860264033707291344863951719806173304419504134250527111691403499803973389893271731438355941676159226909584095611462223511328513064306728906274957658808140767870176875704982820220938938424851110794300451267552232028332974001286906270144708433809324119918966688847232601645638731495343727643591658603531769810940990317205862190812012297617190948551010304519325908804895090583906017346684505974697953696360490833897585360266087718184913336020840826774922325245094393573689303649324304721130297935015444822788145742087720295980115791093591430594368629273844250045496444278250105043205012284097766339004183938311392663888691698546479660829668456175716702611675444495004710662900390329239871709786490217520742301837994516460848575174589299064296283312244978723838264835250987559434016631852360449554677452300173545632968997597305418649935372703676213954185497877873630224427190914275509066048080909712745518300382790779861414751881297883684069853431618159194500280452946057820453955585377083891615784732707640628287511109396112592447283145574162015819557935848561482878884504467303743565634377437935821793493677420692401930997548722666931122303879907857008353125455161533349573589097273937630607267671671437600723789890869623644604828109917988030030928766922803245567676559987337977489923681384172849753095302038934902487470494305466487647477190510866744038334410924096801935838776683179046347991069078919934902016653534065529617976096885899187584547780745635675908471629036317193810967228807951851303286851824837969676168447403442950860377919801439923022323672886950287520989881916770803004724738343821759498144958225892864438170372709145045745258922535595342338366486993305082500431411167544426372667541951609935367158201588723244063986499351440128548286967333179245122301960504340521880796072420133690422637435763734281454909670407226259034566535076762027205248437199965493343955746723518512561269471465513778325105509434061892950014498776124687447242125199651704793829422131902895170416979120208439717365757657348002770808064865830794656734827305030621651585921976225727719351334828464748246366159900895874203973597745282586603346940699456762361331674683123154902131950248954435415277060861756232816111351053983620036606250570306250734655543978511885316276737882757822382580752867239643820944640615722493123794147110413188847745187918518465214555510444082182209371886185245408030538903176359356096515417704314236557988791835153370253887841847243778037834641208886558118876223433996858097377134930678635906606981814235414721302062594284719689200853811806548329885071700590560023474059046334668463093861201422487542180195038865150430104029026333786372812052765739325245946134040500407742643529148597216254849739058296611353884601904874480606693276668655321504886970216859722433833546207920301998632712561593874454558987082753770491362924464873986677704594191546706211168895801519127719643404050578604945725799297659114531643517164037497191695351211686111197261284918465653391881541422986596158076527929620135980134625647585331022830701543060921884788779119750487928783671209779114731113788150596248420933510429679165393187814426430394292792029404388595678222786948973848847904653457116835639813573565223359434143136922564286415187613072525838570935867112916397823735173551043714721866737862646810711359808274693564275860068624522059094671690187585981243904012874331123031455959277708810794361213140231621444655833179287732455759964414859539880322348298926357869144206396170353843784362220710893482813490081190322246549859962292880877335328077422368551172214031925196097686450034032272129084789742060418043022628209842936362301911492501666002749567626996230555931131566012055255182115495411112284622313389813286235743983908534792270088233187091583295421053349510702439681986049522943408660367358589728913039255586819446472461547729860689658173920709537131602897085746255576150062375333545301800088867593543935256685717947813612753211809953083975480057912186323956984480984966534365253193616466602234829216718990641680983327162698052938482027724542861412015076622649785871349851316290211538457783628959472325341796303577382301880727040446944087109625717590293897690228412691061573652376919491688333722585571715257622551133335135389165863194051794537300426568468494037678829245679649869117604912599164679318977370387385040379534025479416040806670893214094989277667294554068944244815144883120376299014595877918282185107861583094174643341536152539900625512752207887485531480270228696690615899081971963797247297548318759865094878983448554971560961674708340817892301989637650251890452166119502921359132396936846186160936492465808892410322180953025192374641378657680142468128611650099361946652309009230510283301845936886819603341639851567444539056183527187741284594799190149547708191172037541209712406907149858820658792712404540065896118140646450190501583857523516158506219235386968489692870715052855662713027329785241821059585634812174696503976170718524419738568556440770496815803653243919380418202100558027867929549242852972806521845158068966520051365763667358034481103391052333735673081794349890162715638958253090646475844739578595896796592510741233362448175348536696548798480481028415440588851617006221572170400815165356971230454143982975735120700441242148437787846314099703706593410711554330995272350863420615608336880051590217913409158081362169571981284023162797203553321968604116304350137848503578982067919168803371927587027064516587980732763893558940999121629009666813457687527030947176919900441376200795030856426008611689466634404480860191738786779462568428727902199683364804589876195369835209882126792385712378573002246642626717824544990905929552720466924455996917037913881828259823097620180607684999759167692248686877608653001102559500252386561051090747250349719406063452169062037345452107899128877966219112062609602840103280221856112995709772478903438220049424926654369146383351775520112445337525712424386850905780184277342523166546421208771560719008723766009625776550045941177741041264538296625280916170345338756483794289475017568026757856074052998719166195686896201573899751478272896067121131899388219839816580081381845531855650885182506367494053548140831737926780485849637758691533658960072690144594109097495388519891637633898455081261078617936011344188060398015308022936863846021824007467586977116452418660667670249965614592902102102375554353461791138979190535930937696342983830561898456082270727947113842598477475806484777670856412984602711807281781559148975970967250722982683955524700210676089294904694017102051251863025983646905155656653088044642151632441524578995725189957784089816386927436127077482840412185024792761847187897441950953643773654362027551377861666983264318345541596487702963312399489726947019257674242205707550535390181931388611291649963491245432584628932621557150545436643368182892633206860264633131293609391069095034112055229867871464792860446161615015616068477986770694006719000220937455406733131828284742809668549521539111305715797641012597007941270928646435070881080855665141869702755660029370836158091767090420124147886010832892320024324261126755834169759204727114712856872952655798855637647556106658094180059002745476132419676425406795666443372560207917151791024438587545399359122975537959816469769781873992977726016192592346487558354186860761914629071028772741684980308831447214944337643342322870229002432452495643639338262653497969273959986296511586971502234414919551609807195352547123455224412520324736328566109687317396739575571955839269273585321295720349046583310927802601971068757230894858547159479054394456875824157606605564308377952508052142851111097035729813598452869922822956105798255692734747875508591000262402611428729234573177645982920779519745371890380881368085627710779607543662957746001119893149409206548759597335090707307921833535891323602974480094344570209122091809162858611386185986677365516319928255240978048591867410370317555369267002236864588462167932217436516842618207095837409239439140438438320500620194974009327085709842247851522211584065962584267985938732942084403406954407902632168328686543348555584426680326307153094078338403155459011637850811247721632486285743444369231640305236179764788041831087626031963019071666947494945485339584755637072688643874974398767145223148417591964747776658679903161538184365937974225867634778558492947288181864323472588229263409336551826063888093870424079870822559017852645929543823558846772714185024396248651154650691877603279117290379716357140037194534404558345295810839497747096863245744881207007757084678048079026717170434219624476267933309188127338923919238981117597742306542484714373388458871044980645569335211074462043714799687740973320540397975993282611666029154737167097022925155726157643928839978659806700817732914324148352464623715109181137493508004529936494966145737287246809884838739060824912664246686524699104305666758787779366475052554924966877437008975807158351472487310558692319199945354249082546226077212582182947387649610188720960254849271951531570062865668720548351877902244178226991230359348508091081695074596334335979842822716075882601152095694470331803115399014777060396879305504581054236491757989513762478462320358881267998009086856729744422934196186745028877662398640769299094741160899235277666654154940368468201510174757485120181816796478540881183925691297646403993053607059996212025236942756704355278740810141435012741810601647174444178673554252490941661966010598069779511029754974967607577125935910706137526329566632191197344148930603549963461991412059178811734988949213247828528136908661283943355992498480515877158392630188423750861328442060029856087945778408572507744356491570743047948877367782682788011592876519538458184428640829351330030191098389292333686427010856201712148474728296147801262538792359424696843573801212867781749075658921016731391555135140471316065000456558337163073915107170240439923841736569119767169167890042339422767354423695411931254368661871285766458385333284560945018005049047666032779010595618164742447410590048666049186546685741167368398813904326713600594238434101215420093392714811792668590823186178636093484984457658536550920224040103940504682475903436046675074604918205647270151899401510101945275261749941277115598841072836197289334134158158952834336073451817712279478789639731908968021317629890772700701689578921462088772225061949324064472707007398039804184291724838697439140300436123356585064066742102105198359259569598931565054507508557254789075430677787975748630934578526675198867463728704940266630472438724085194033644936334120803441999727445989429269517019779653335478332741992342642730526286164287437140710413599123684561566990564493666232017632472818387699206789951402459955955538680853176415790373416705699920706000553712901976788507924894637378710578144575969674538433556397881998094385742163910586009774885792802160426581380373569491304279165790096297028255763981551145861606692020429793955388547037406595434112767713004854054708521378315104938102164064027002278557566169502367607666091493445976156756802478708676989622962154454530358158957914860852375114928122188499963768123639441856370267388794614752024450623916105342538191584875044311458988137684942135747787527566203762814565912223998042841834101776383143253706302556926570915662045488717851335370991937147734925617216004894070156007105218940165869717850271533232702104603582733608006179295308624851558656340072486566982562707832353899708498539787154490142826918986775704825297170662031496380131890135735656355282218792416586952461251485096375642756608797978750777262026634666055820753727515437488735401930265527185442525969679406769909507495385593061049992632091337369238883895400558063189846238467300487227472707407159808232567021081748619385724622323156022712735944176405256148811879848282652725672950385041630448538065652578011017679424976185300577034245508502318199464612769999556257164286194079517290607621210244169803663244726315926777534341243058834186629753214767751637280539304942721315296554291336713862356001175397901317683712921798049806639052139415352414632943699148881732987811417698933173443512610967471685615462302713893186912305715381570212516342497111541669209086372655484970331016808418537632137202954073389420120410077909630987451442879199967398572108164659944041286714301455914315919478995690068663728927411674129437498257990074666763780892408943874276872788306561145726222047123313808253173765742738690525092110856299524013088665538591402038277342110738803187264631137800536547736437006199008382762298712520776123404826877407478478075981850098046305343391804687266245841299044603744442286627037995175526713214419873800373802669738993222103693380421073612963969638738657860709170627341595520392782462768882095623085901346855298071259128520685038532532310879510967648648487354626411079748069218806082446138761427535100391286880634935493070550189272280875492513725188139423130353353486377805962761460571829242486527577559262308192327535899448613852983774195422959067156280976149890103553362006271132806857110812928992350556639976780027346884508159046159637587974188094736912089466466466764250283318325058794768831788526734030218647853282928709960065058284940129869371020796011222320612884119504717560456015474397447490316279100362441963468371090457456969389834961903883858334568944743402882920772885611179695100865036322605087954541724321443125524131585112402207088428864301868081355172188609870883520611772776478370458666684409017905424486955261416299854661888594434742944742842034279131501708679828687243264908567619901242871658980205427807034541301162088338994974830283732936041305823064958783360038271937402604222260481226828431380749309900791181036598374352770869077625525772810210624671914365793459771715021077151479070960903856290422911602242349981757343936564775790816040138369448608889370770858632649120486606195837234932397986515053465807774296339450586184341839185991972670063361312673152337354081512998095710245207717099430363085345562532630825021457590464286393485542627394882277679994107073768276687604643389076429452288975265149900329237382476767258826012827384597769236951268869787595064707546877463144689936635587618663935030079945167157487686878189126998061575388728232327827184463291530184054349401580982384212437516826490234347663648950505337826772352613805452064130962901088542728930705774092368261215098439675814320055709865666781468992338114254121598711551048377908312797278315839097675128880391315275710825216866034519667208929611171637407302901050726884956900849794467221634426189832443386045728332230358839432779457396856464918539182882050391214771138402551014716994265881800281823793672582142370338651474557766946960599287040414658449237394439135090823942265613634197147985728506576441227718192986555993811378110938007309171976402659021775706490036373811168111777183926810529971510763778753173566364424278892408248384758812930067752325093395168979041451462459721126789850200333597561541963816414355382890435075853986710834323814517499826402045033978367955323484557397328996962196963302358653013333436205856242867428263287518219720756281459041354227849874576478389957110122521924751315246165395697015268595260539189369527436290964182461835829621627045633001611055188253864337411909775304822394169413010912175942185341081618494333981544839956045722827473822152534891341021731633532200686585027910697034420516410136140170002794896411524112573812314462218028111225114273236671535043096665513289274910782534866955988930925510610020913209714120900538579142659328382166103713431980882009251692828283522752170100667559635383036505024787718460111078703561126234804564493923209512302013203401407489003395444808436226565101501192623155692180905109512897588520931266772908452662793082825123871312671358293870530084724029181456952617643685730258583777850641820400266420961065558729937032070999634566518872733487513575416369561082556093271893119323277509876368924828388632505260488672072648593044491814230917836755793523320794622912713889382234725062159240010076644500979302607139140028550121511873450832754791612766625422906084469376210063869805292966953109915729399440789897913760645378500514105273194462336546354005375096964458204756349011850712100442336958562107020849187930307269543840692457891650241901143818182121847884823872428498375972528598019885291195031731343489393630956421939161532058103096629813826083068661407413789703893137038704505493274047960429944507249917926292528667238671718143864779216591190859588205514534907719857139285845384271224951972254487331715185095144550560311478058954168481601150526246961557022414393461831982368157172190949923718270910093895022319222787325774930290191665809379746653754011978037329856069148853438304459134742604914727816324744618923659606421359113144785297858190446247738700824254889232490085048215883562967710376456111736627390086331873421955732687181979499091428592952519948115172374839246122752134470310164011627352441323488647195844664698071270856959098083739231493499028283707483671356129733523081631343930946429721339874676360635668718736310057413366009515532062923449246221659084189492967758916837493464127089333565877936915641922404553114054483126439143756872165882869570814224976065536087435245311284495344548038347256509775654060217777365641723635573925173918124109183968409086685083444117941090747892857947974768843332686783370666725919890266110030880429802383039535029457290017398291289740513201635745797242283014594133011789730807140661313235685073193897726034225378391512548523534662227138162171166849222005704752867167990231755281060603058646469188572056785388732081704418045954805075337284373518271215821654050676988658454730229220625072402631412994385511687433004044753753065094871547317233053790807339664177595413137100772795497736840524268389113025850959340554511243365476056842729111983722786057326660516016817656427171197395072612472332959546954592318343028046856185694291976043337445271321536122878773619132321200862400281989790767682402852488742038714821839440542367126826010704109469092158598073390939449584703729014866866552001258298701629120538778650966548453034072291613728219855560136626728203890165290502632857954967977757394271337758679427769485884401880585333852664857893962890664174267708536849706653995601757213716664933174131032058812898836206825179374226192192059063375340125373035256788422092009766589318716756487997703167286238856316142985627576063029884908708956553317115174254935163246887962506549984659637992279719178598485205323607312604367003617695528895912531890809951422206818660763580950508716232087116161034829982365883566254811047761206746975242344956154629026081623875704348137336906783748319169154384991530226205478570361233334874087102749950937945038884235084312332184762165941514842105387110790488879923503636111221527653361183472771608757680611664126026500182126399960487884286699586384077290247549295621439864525607455048142820237069172969956718100346914765649410164922070749124570817164471875991690835519364466406073556962158440780190693953675728345536739419863472952160583552509273728613578759630682243992217711097850670997336994779149314018754466532020368709653141552189927503405009387464662421713693179028465104605620265087809939431904786858405419609565891201037622407168067617450328583683425346744159694088926967901460460648621700869445119001438770727532686085527476657128868671482171855398782038751853148579093034151251643392073953009363664229838361122517115742906361119878781697580725161274611723949158565761672225790929394163109763441511972638564404081821241395598523763739997399772947777354983204688549633067278735007259789438021474150786994411466718738798288764099671704037176492494319752547769657441944473493473958309717231468918540947149820652899806938041253476994821883893324183367065132120748570526585236630198806498433402416803181895590994495163476142159463331888099808764425977209446994108557441136574891080021504769712617813018464594081321281630619394419237622046298387596864290228547904250347507259311836286276918883486820993991576055220072868808056495558528098310798743477491848316206184353544346505051723620715899137181124467397638123063655228728544034294830577540102088159217159059207007195651720263344247594810722163848737058960909647265542173155573370289696538033983999628340204913565714893483282088803194510006229580283515565425039597217870652649016837429506983601522515169637004104223064552605307216522591140202948292800914435193452907037847687470085038493004852217997460716334505887281770830307527218124319249778012921583888195943593498962186408626599133160852893174274721248768193883608105346031054676794510313189029110160609049537639096641273691710699892040396965807406694878675474234554116195368493120606473933755530013582884192992974403922165271739776554280674049850273463967805422306099420514672172597193868207765380354486226677773143090489472754627797020757861210823392572580942494590305585874324010005112159987875527199058974158285336522533837672910608121734090477165575490346250426860792157251412474124187096876917919472412586143119486309924068548882927923151802822952791363826977106648835484325272539712689880432114640265123596572638852589908328696414603617566271884268499419835042701168862214743228082519338917067722763649949017862219335319812949201822488183122538711482440633907922676576865223736617466984813252096922387280880799844137582979387764842038591558513566145655440761802215711766401828483116972620354456523529821375446977681053372965155420273846539048395036296758820974424133226499543024808145136262445361939772730345264484705628491254623124857137776162885308249023158000800938668670764630583316789345262517036935984994951459039601115437853837746998878411679527810187158165942500104684104481039764524484531318292900498299099335225188104230226626583937006686731024261518106371896847060901004893403364696176880619388887163255379532149768161981634161513632317550449438785986869717152461601689571114619526116904916275179592964454050094950411173556509191611907384625920941332545868437042174896522541070381068158738609664148134998302908658924537196691612221146077627136941642802039339643912298210015435618655508683721487021632862319317938637950641946629774248546558583254418189193903193967132099530628861761206199261617431724940646440492381676034097236607608166544404740115469617546988739844387616633680302201605814765179191029073335788137276622596452925292246296270246272395170965014443519944985931567005392963411701188607900133666316903229415685109667731429537212781592573056706920946707142426190275035723690688993596958251367455159506476967703143030053682523669586489220564397504750944167163147721515731997760078781459760219033192538361114362455835348521549820969736321863256965507421046958162424529814439451430685818099799885692362606769919341947736551217818773282559550020085053858847838422154686168780933974279571721965166037703562462429833791302997165730145572676096070435718260435936340729109727420068949874815988566650531216465102590287824122142283562203219977508805477653196130903618034612818490610937859040583125897945552983433559009148365114085485877906945370898177116844866012969460007293862476019915861088783428797351797164793707403871243472384776786289666128645640301901756705444260040156204211238367891156909607641646321510091959411073158851318177328290692886148554564079564960839712609287232064597534670919826397023141089848917967165666098431038591198411824299651049486476528311486577110302602814692600308476685208515893624830416219896863244168919186208392902425940158154823772364883901900919960920878647724846604361271453343581343341082961897631797511393964486553111268717612488287892400607181405994737535313084866049142423769795475278788916370885760704815810502880428887773263091963113106098547032977988862016078003495211301199469988641811348695029607756405465985715056184942948464370509977853709329750329373769738675395218655602085972576571736769028472536830388887126352487039903665905835300084314488398598334570134796323533443770609067423597795272307608131694025635531131648039831239377842650504155107388756033477438220029538567602111715503927467209067945834985356557926178908636317085339939511183548985974990927522371202733795440184105489398488783641398158782957864090907864907387770176758865287776204767292817050202138359711913279616201931757971373667021350115865630169730148551613548342305615977719104036881644075263863374935652563168684011544757716332969423955276104543370435104638874471163004149653865486978654297831111046794126762665599646724209368024175229928616621215786837933515605815812041416993848665456561458601898530749742178068537147007615775693018612925187307795700847597031133126432196937911261906776494499688145282491093404397574613721283253774095295655304806888508150115972107712919439434130043851522589232596733431857279057465710844363356282666505837407064100493605429065538975148676470968690412862370421262393111029934477869493048675633102459855363762175917289647039236803722878672290248117945864363968625870830759274839558298592349643131139637314438681838686742787427156012521495185826409070192582836400192452010347008981787119297299249704330654617806152772517610209924402667482624129114197084724024786387057816809281508968500209163849083811416041200145414431733458382588620855274758423771616923782246067688344810526513200596020846864550246937603267240141433335459308636332439832793779620508893534937587405956851298403465354564951351216591802025450660543435361577355371296994424339743657538508365649661137052273898916475442177668952840469918737878736156089412957197681087329339738841729466114913580447453767075135810143517687653078134122028117226708136612120382526496822372297060405386639842654862208234555591954174542793563699381857135822640119511178970501743628567713156923800432625348858195433846888048472359971205387057999743137579443792669854863737863630921153249768355786730755890242732789480598271002392441254435573290808058606666028552568074173311702664948167344281856129443820282534135966929666672342685705517457511392302938886719826394046314544714138007557805999714409102704819297376415591283062280527550282055606338359785462546098128364073240730631109541893634577096424329848121003429687070774556963492685665609018525117295996778984114418034802924528253753302679802345034479739360464490622912253369882024472010271306012796580091199452171078737870473602197702277226135027635771245985500015950678229318838257535207314901649165453748449867810133857321327348952621494386898735435414058120502576460684462720108715588600725745991158343807175738693409582908535127263491412384326572773912685948887519026562859537642150336057817659390338789815172784959694717903895381734646914207263734966819656917051345964259611557869862374207977469054190382073719950642808633886194211476595898089417572637572403394033342271724770900901520182506391156274307273436842331487332629033629759907087238802236007405543733086053206910591848424176368366717263242551876167678000401821058874081269838568990431286715339719233853198171807385110808554605575222975619828631131228969241273585710286207208272404809771305274365429803496828661608955434740970983958770030645527429332753311232173758204005832150945172254599371342939624397563956024392647172304768997399903442331349109963173740426837408929710322484792313439239989761529852005411646955798443220478067814044638207088315670212006251941479481639769787608465809764789685858321823259458213330388293805666793948425438135223129123915859991920716807841112010658893894002458343774212830099538112813874997251505126589347690427107424868425275850775516903930358010674697428938154081779308219793149977627149512075300584304780817662493338753671163639814517858730661584364340174608298974582673248200324245754471328999513020889542218982133403259042483533653646942323400658484921044731544993533022254208655787160552272677615698757788256271496004878607532822547064133362513683648316594281183335556993065232094491478519569894813340594277827386868840639236414928831349414939645085081913679079375442160470057202222968074752233817358774897059998185054399621547178182937548076554956469436940155687580154979159084535840403438907700406890504068212548233222072100751646467417189811813667695451405412195750013388899693824628724007291033841889104881452205674544164768119238634733057778575662284825824540941207574038184538704498061322946532996970631699060930679402940254033033292813858365267112311188886095751463616933054379412098567130194195906153087592389030161746167543460743054980429131454343860400201214757499400319154149802290655992586065773384128641792751588081565652967025026134211606692547107825700079907216702967767633019251849504831355681454045887111783461332952769052855577908400777598741490674190507779029008398989437247786604286509731363812345803214007671702022082465168686431319443940976017798748728986634553316896264469304357408958184565528547916369646388172584547068905134675301042556714243456071940303159500159484502802498282667212034583647467162697877681525686129441948961975284913026889707295136587642109100451635996954767524463709231893061924908444516080831521171095127542973251635546451065240078187337335679420247110409474065391079490701544742924728203468051728448436712189572166610509047907583871070000432496753187294800108186435829769839961755094417623248513014790878590304562332453404842762131397071838470192553952747125781996997719741514458628600503242524741095762725483914318007959771431235921816244102744186775033446312968246519404441986839759374086966095154145316550750452463963862645925277423699563836971621514992303468505262149445579648722903512973087389393860861537918970402068493920532146490551094429784144350338431617132969287736428774483023551181107421576958029662797811071252243308201940543307398788040650831433596580043829248286536597467635372418243890693949925570271907912429179775875889325401662823402712417339504609985325633100489757226325832868230732342989350259623137466264861649163128197659778773717697338322955450983270466359964690732473142405792566831055977486823410553548225885543872775918680619635905353610164601855378415048778573488154626139485141135919762209324604057008754079645057758267859166020658195957922905996149094211330042805447743625031568514657270065236194090828371981309127540139398096147237059750001713331210831500181857087256495627786510598617513376768231303560426632924338356110045709086327866016334014061385023434952771475375575785247097145840029404032387808978342127944348916189912304221829058473072946781965804357061046998426325984232589378601668977891737197311296318585671618637651865105053028810345398473814191071263378705166236409209235492983237280791257728643800335822847117918666564101033698545747338677029916770637350987971047767746791290853295979330282972076812306798187711065994080512760226614294654959606849999281896711236397760422436201505594966970307412084009172639376723274798950872096191929157170998798386358848646740807771355273304302417207487752433979796036144766389510398425539758315498197575219726580204715028229713826739142982477920082951369553910925856282119731438268725964546782282700089392964352067518668764234757418261453819477915974856169469938163066823149934061752548336685091680454663500972429082693515676879601386600856598608683191478049760733858474355206122507640512464235680393636267621796821979849541573255155646952917783730600742169894661019094949708266436074123217552936076335752440451748133232662937494150314849809223199531270369238076428651928822132532372991897272856257641701045121659891860877351826128278805098033990019192419616481714544994030414905681487776409114094646647608134178284172836581639602564080177553769963381275708844308487916980135651530214640119138780028094495585942922346398129329706398766863638392489350502217373850623793204630245329634626446210812480648213659361497192308470837811306086904665848472864547584363686520293509612072080515646966830110544894290447332129035321846444604436340308063264821188976737638896835646356905223087075051516673248872672291345443417423268273770314580332779955243590855004369857612415773785086355516042583972488102384393471317137991634768755463359281277672349508518364671054945078851983159850847393220649112459431164835038084633247832528683043761503754122435538210093455374145156494821796255417854038543993447490236435998662590005761217255938876427068735058516762637771566923727461923236459694785038392882683514888113477325949635535507079622347395345362057996018434514867557455895842626062605485260755712054233894358718573497690393014302450307702040062545341362226811417021042081899246826732875760164443033931522923701571797358315593360313192933201813842566309166338836558923528174819802919496707806758023425342541858214245972077413233399420674721484673562439275825099412522966862356000392338363326364501966054719748994378416238639511812215176798918341854612886334870846462620353241438778008844366924919112314935865801000219074667561888878661488279280005401782331674100810869935087907393973092251288361028976718250257692174228383915804486169209058794511806821478015948512074363607067705461243184838836232613560370093617406695580066914372744169868049010608297544584645093965055097326655928885997943749543171911806500538225746469439104915830769170542189304979261036636620558675777438650054797401297577492002325524684671231035854769675354631504554130365349077510092670637027500001366679668461679597522660663460940783489563111690339149551711352602308909368259469081600485966806116573446295359985583524136194396394326063465100068621872498264722583857165728012649786323617092156591679494311903754517763939425302425433666630452510822710484047901602667880093120609225700899925446189423242331940207861108020122612389561610170493351891044703144495060986863391997377853074163692592436405815145533105753220715125630977752473690087432361568044984031482297624834491390338903987597494621152082150955844941501657510769629667551733164051155989045851010022627862319415923229804568895367838315462042710075964414441198394885515495866360169601861316462367702214947481455529033121948040342589269293152605305307957441277452758087797590038373260308750778049976043962236957107052129356286154779623812749120420963075478419209089489755340405224755676072459683405102258508551715262943232241488963771898546179579026165442006737127358123556006094547366971003872345748308034681382505140969216218657402843241409450059959290797982146147291153794833986830475024435280607656495963267696586714890941472550104516450200933339931305794673445005170297495390892198394753322427364112330696708173839624522610694022269715459382358705740758762576795680397380257495944900267935918562181170262436753428875149199606523282367246629797679746387929497064485972654145852856596604551846621944443071380576194630963506913445417464742650095370266319993848062041365977349304514694631488949261027329579600856994028879696520441067532041093402168860448883948001713234063556582670643005625774169794154553322684243388298953010143699074675349599581510059403393621273413901684878320236380812467183829633565718854805838070418074494086648698216789907247296289251667752898298149810972113909394532764430202233812517663070676316130206425506734810958497160475824957896550984592709371591438304311233384857033986815353246725475664541434494457524998251673562044411877444928022851552143753864324846373690295899594289289952688079998941844295089149811389199930423858337168559923619984577896925076192526721160434022417746720054495944062515506705926064149386243993000225712552145860737099537003319533106427732895228701655311570060548965447662845973758132319443155610312308599883968094194063288821652434429875050702876633295785985662101584400575901861209597572840844641812135961703839941190848502016105791217297484858406159729331846927385977621294448299301404055450134949911736750943476040213976263691283096031059783897630454725432011450343266473582187910601509333285343588203350484406276643175276460533571361882490797683365971630890425734980099091074769839376850282929475557244290923911208891017522188784111795357728774361192429514226863514722249302148297176143449379041351796880213215910239346106412149143807953111407513964960011698925707473906004677179444994111458011798947685051802008186295362576942980908602143034395440062810676666287331295780433222522298066688517373907592315217320332923538098339340932089198304625775988989385877702717658301478527535617684230890864482436104677401291511168535276435370877528159335355255887679031474432134207085624936683127484394733772364499883365720885399942193024912500271541246160614980004621638653507643331737914420392598019076375408023294435319689162199480901711821563189365994490420010008593831553927180014423598667162492540149633381123589401839297281976294049868249214632100744665102143338293053181382558939396715077018606146427731162600794952077514757493825762049254128746734659252937678225916294349048490740221085293866579229822974119936809734638629679256334248028220475013679147721562833523566204074106315899369439053379855713027335409512417106804373163822843604608490070313567700532867076646587950036792649620662590799122422530235916046335936654201125081977307568259104351172072931035908724337851084887412651767417890268860188817910022845944297071891245701654763557349731046671343614141609294589015219157809657650248462251447972176203505061342991551102179132393618041630703290833545181680348226078819891596550187440747382166733016625966600598615184773095668689171706724592843734710662837667237877112544420713192441376071027741887110351825193199681491450126430909247317713352115029611916049469039479173010449299273277399604055467297552379515843432438018336020415767619304629592931473941194326881014020925005744707213556759846961600483086923676697437080040967688117807539124504636686040503760158734898053003990982467770196017547885718835581205074888207453093344074994176362898706545419711780751235633806933255762875621789541600854650704759564625937229663358592748207309200308870783532657718629732963379954231568667401312213407969982626528405525578394696925893021427937197189283151992267198228872882172507829148765259504280978086772509104893374644505773679868416590162944459009769372936845023941713884681075624255616280321046516915956587448842871241939133093863477643642380975737648063078968913157458745978738473329024899708361765117253234717811393663769375336389702865343690192183769628188305832635024485883335438918716701860412392264277148446651990589472387337950637631182030354304867944249250936690297307649236203908283956994671653381759473029670188008299190611800761800538155565373112560622239155219090555091684954133967009031063391263844721703540615256482008695806662113474247616469090389870017907825005839325983934952068735999551866794066743089845002712953536479332490988030705502254381036738991639598650907249987522377803542536887572284351826487439899203289159729662846846334923701513047326334045966561294142196979098993174886555003395307203469486332509070882439000004747374618229396953155789023303639742400490334776227169865862706276324727527757190659371660153806904319837168073675295401306230465683081886299366518455623298168874906267003537138661767984130469837687868318023371320658357311763427317118968611741735955488980861919208814039513100719199892875301166789744657660874777405320922996676315402384532170846574777160279681321579976956224719497334349074174892883050682016801267516734981149682433455174201922140907077102698335487166070975642267798050800934476744856003293128820593238997594202713125491614643878202882810129778854673572835218589673313566763479917833596885070482385963622787136598712463322958648249815843907930344277291150727785462817084381014848819812775791140628965553240396973296920121898993638697105289355278986875548981450544453869149463332596505456333641013093076542334008113909959354383884630975846032916200512986001608047089026098265544967356305105062578636885736190627209928227158808907332699554117448100831253136995381295679988141701692005159787427703751502154050835176982735096656363593896387484550744355828897757259936725372724131775673549620855787695508086244525528382382986970194750176894253230970700805251918597249625392259978112751406184015843629927316146459345822900026352734356084721610189559943192238897097208606656682955020825466830857214171649790248018808994134577047184302129466925456272728449517683166675745248899286271766786382464055768035091522209043302426052688222778301700247615962841928852368073089678017293345879389224828562386344318529872453698042329040934846165448440784504311480419192690649090366559286489002352201310165669623466913801623482755773689715050612947564564245451725997518542538023011004425549384024269528778120313584246732290539789109420616884726620304910115313174367304284362875448783264623977482345228768640057570807062859284081104075156989241874364709515560229841232122908735010735505407372271401457884640667980400063711371073124565251532841125031866661644085104285231152960716269523863184175049406407902771763035350469223950066678892685189700566851998927195341307165642050320639051476522971315536712795410477140696733354124361273225050570939967768045064677453335797994243782123910436034524028571958084065363094156145418676787371373414858899739512603066879142263854515941811636453166043345613713958821332589583032365569719412206402798968144638343506703438855239082790626378771148790660354827572419926095860718733042829686981138936626233104873441587713398330992831131698565678725076347735787977229135188077324094038218452459047811868633899108909397200763365875576393909201203847901272355156226849570615720404768956779317222695126009362994623420264081768251956187440371833285593965530610947451747585497243675631378362304798174122974813942254637687595220955475349793187877346969568722442428210814767831965819769207916085543153209415200744208380313301544396901317527804794554532167403064139490389382016585427255367945966639042742413003395330339802904016044409036829291386424675474066619131007402074318178707618087507725595982986747220759137647622430743922411164768615815359350003452331893468986608612123092421403150525289172613425118935891299011615603210155531423993396106109321566211963901227248530760882553854315089587523241486188284470613573619720568413487645702919227096369174997192592894154921763030619202361033326446174028051689885422539832981254651283217924290793242324629949500349181485354709584037360501486766018266412495984145773062866606191702534171047406401108097745169446421313200569342420603901188850952123677909784556621941281720865257565935491527401718691213145998928648196182184502424697755842586142570444678267454906847043450156337962957967971627659645442899264021832725784288679718066864556863063956486791393688519328339896999371248868298916916001834716284652008537820156399068869439440255372976908569359349188868025761916408649187130372900662322143762280944939848271604145989115774778309808369938723188166258368773179135679172008342569503072137184452069025312809459421709244610798248413202336827119147441912549623661770240014208790169466887160821782880640501032448633752271339928010166125870208534198550302019976668633857888610129803620397588370505790074204581400062986654025758163412485031606305154245696610650536917534282773738848034203925195002706366735579119629977700835320089931644631897814815528911195613510209112607073189594567381742518306358518162170823929647776503195119469341485138916059760637376186838000918243675378052162164966994352038222305845102851654097789244460096163735134192996869134888855585866460292395290900519810284639683807400674670693304183935846997553154537482440850384814018822127634696837906464315001015376918728482948014293924845523544518610859165947652982055497869344214687002953577948026952516472472700837794015328810072655824086112701362364428723145332241551148004512638344971912391920614318792195963351110968338097349886443192546603407616236088896535126511339149670331497548092089294362947852443771457066439445040181834437637339679236094703242223841490833399412149844396292760015015296950973613334150443273492852415239409455530830093193582444034877896831678909892738788964343084151252635196952734805782181886758169063001659449693893190916632198515057423082842278926898197719392479469768914635261663389174700287208869908750981028705833062155239006781660891853520412980262950876885736690251598003068623190657585779778756271112988718958897892948132735099194610048077263359094581117154925604439807890304671566736047323291890420542003916013621086916495945426955657734352740094500533863471232545507069771838371694096782546687405467280260124456428242620879941871504336991695397351556162936096197572934882160437562495822472537447970691829646357608400097851900871934841957941372831036083805149907917259816852707796459553638835235944351654189375596566907314332851994614283641273905004092761928295779599672606195340486518586840198474813479060862553015474559172755830203393145179917756501866082469008398480056108459912903055364326942255388338000446323533875796210703615335606561084428080572640697968025507095303418646852042566913061657145119929410764650633958246870705015026773143651520732574127309343726247471077318109068467784643748117474288828149133814032255842160988996595374465984478130303022838177194119525099127760199109582932541630245756406674976573745872858375935351402384296576719917825309602743124132640745731476594807983086500600979774893896895935362920334535576323612744288868788266563107056910038209875163997081219181749328071816801184467696204116308448165645614369710626395888094934102586568479814788634569731595749967407569379843674276904665397561316804574339842759850860091162825739427989336111213841990912732382102736217837277236140176819316908055647979814082317505129306051170136292372778377561322545996954133564903726216973157158838056487303037548082133326845221755068285621303421476337866460564825491166817356995024747392768487309932118551420170826968237109613591996715303159483809001985761247176934354506212187097116958553955626329512552842130701279512284566538058927475770347167414118185614212994460371436552735673369893532501566632450798450109747601112272836678540376452859254551295548620301594478100119839416320141286381347461513927274718803273185906147958911442996524353472682465967370153235815272000343525982894220231118793444881498503292120797915579107782317296869112372556135444532421485702604283155242737185980160472524517146987383425725934684120301377996859113197403499341847704119311056009134829002764413953901366080573461813295228616900805998194624829856871634512522246657644804259278602284885791011041511118016030581527467126222420020900958911140786152746161185256799849139384646720526958044695052882913647771760163366137078224195208497311219629941392783995426449493784749305025642958998693584432177534265438053691329266080264721017381341522598714433509924142403183422076863444219988832178570446134344068530996647055778035078384181028979528358894486497249118240440449098653829913919888023703385540364649957300565811057853888085049713944801808222856929738146934357837955541890297044680966350236654322192306546813391926295033972914876298151833374646817936122718633521633471118065340399484422769456993913557083060776895134501265458844046036709381643245906374830769390957662927209299307122317573782361596775455478729523353218088594126250582318951154636414496603686043493444543107862467603498019187745121199386806576558254503862031867886013855043176346595020998522824260337839675596781967449630690008545329291012991396374189168788923781349125819259571118752492972392756267860035533133176316957516356482752987790593438131197184444688064733255649966067506769195679260744596000710417412574449790910913054603481319000284199169209759801256075019182454837288567227148460812737483561256834011796086066935503800085575097769664277732042747608040215710725484938955190355127846030076005972459760190855731591436011949172646673817000719679792726836843773861281387082907742540765265378893067351217234004155401290908878073349415934598000268587484410580894147716437721407052327431373878885115752673962812512386253898145819836888572342063925501355239094546326460478445947662100413750309915309505226985499592503185061995364030990562319435121110268129540073060014499201028988302646043226984388717013102986452401913100589465490295509148439662009632358624677346757297321534357375315010753881215327393684316806990485991730956679759110538438052245684411972512833680591868362619822057797838096225613775979974108649480728929343494490251639233107547885316558873087618807938402755975264515453399760918932871988561940637735558005315302100224166488782234211495906748698838851411883359702809456019437709794845574442952159979772290628646937642355620074662909476074692779723016298864578606931692972096994105706289507079992213605772004435442896889539205346172070972652970089861271645499936549730258254470158151818266719327780119836038478531912449130617317767227862674405197620231939179067721351434429257300937964478674279553463660113129512833611659038667338360841439864765018792510628814651396753845225170943856924241953863369222533423006226252188625789026081842136996728159323104136346012139106096799694830933760562250496790972710893321560760018263797547520679595267580231093319157024512257171258446714803806550343993082539711547239490361666683236226773187494968866934162176541943827661471476034731526617677643268978150295804392019148092087148149035155667419540282824705727301323430840479143868337463545737469367438181061850285468276827944206054921971460648498035011307434169847364700379658278622940953696061353023066493812703441232472739729010487853852931630951083970017753755437008098529120663625430053261075553004337898861322617537662982671472510597097573789781316266880772374468857910475175751202087996556476561128980633412782019688535021796741781618637863071006047506922071704041352664671939194282391210384797942153908667873024392802781831522012226039924366407773832722815896777827338834704174568382476768357074398121323556201914582931495697727596424930179441279899541362055875804427211396136383082933475904611789974343294770808722030967591930132884413035306135223924181794401414100911959030128564989816355019390385703071785208691017001132286284560710377130633980070646881005594397493540932311649929332061201816294726387625417039501504331438644001216258627425842363242113504091379092095115434197315145098871953019976199953172293997733327786416950153456041223481058378780887769529339929800949829005552405334446185346723588210932610392154487839073232101888379824812154216088877542364827645420295756938484699353467421319315537923333336052398708922536226730352650064450794080025553528188023321275045512026461965580780058638146476971781617203836799698067602793643462270501046793473122674092301682789205276236771932447503030600036725737212505620731987456291167214428253599196010274341114835409135420998810339000991726716216210575474418741916597679895196751503501779075578229360508399861314407746593534646757058982130346110903969988647423226376987046297871780163775615923964010013852735370649719441369449766817530489925617142055105713925202935360129162103918372806787015431916111788343468567705542809455040825098362318707479809306263221019679170259256865569657203318251976131030092687016620216617576624040954142725223859906197858167001955291142864341050153089636586116624517350136450323876742372805709511798444590557028751269133786263787144576161865880403469477831027260517901617503755027234112733208517536743318414721642658379113651606923825999543268198729745610924913501066282589200385669759461765352057790297836657378089528589739253365814554461663285371046300024634185206737416035388324161368243327242509411887988294779775360135834338008880861153411561333715894137195812585449150949141150269531212483702045457169939019217706520889429672540158024962323533810568069208643103378975436392728830064598458978834854142573975166453761377286945398562447074747462790640319748634342227429519869109222930328986751397079196112170131053031013039063191875408243041379374390214103259179013953272204320499717178357195934885216707208030483319645299523481835650530872378141251895038673436272954081815452666676341207229444979784922107873155008653488895457640422294081238161704165628323675234497293067172736790277543075889551874606733264061869567908651940327289508057124929253590179540812444824450265463701686942942702279712062606786892745284845692860651396180412324048964853262217822632086330825654017508236891951473239643710420997499111999052489353750991742480971722837181242692443514329273890884924298732330604947691853962639665989326150865604393526685146700149010761609643860217808699578512575157510428218656010518257867711056394148469906264991493897742416903914037514955823376297656020033624083462739422171789848397759164132673441911307770801121177209350904717382288012714771837091105271559128243682404164749468357515991256502111981600734705596890814546407997534507057532197463199828376251528394177468098524320838862950069230389076466095837902706249055606497519754277794624262744300612436019666874172428446409311356278374796522922453856730095270789546801933525980021619158499902009948365798010392336215776149397630544091980220854990044827359283979344295661300032126858892374690165345656172503713882260734997996446955058167545089769418417284259369009891154157740272423649088555626183223501006449144378622326490031948796395409121133438465515432528507118103324738055974617697740263318035321424279080461997384227666320878200320442608578283493820133466670279270316361784238232024855786484893609784637978149286964625284384465858015676280883046498693691456222088786022940710697364532560848337401884298159301130009193983639747329115491799790441885198098594457708313287427491477604956544494907025551507410213402595175466630780452719955041309953131088215587871478756539834944807391213911244514362707555108630632952480710676122054768816281064578761735150930950251494459295611673611169109575634532160673235944529442512900743010823100964483879749202462743967804431441129510762911266181224078206222912383832312957989649348240167638199391654529564406032607148315011248685433732859874785697311657127802034791500143884749520897224283891982324261672567326479058368424836929666585693158655030627968901153408906127816091489889085763476740835316264782395818813131969598314817447831236042223499612755615358818301526125073604586615064599873441835995756798949677997012990679359628589855278392690783787436377803074955033745798849474080947493204600069609783543323077998462629805505894255102123573751037278583857464410595170712719420851075940846131616100129669796146331548871848420591926922817646451639404591686549429821655113973933821204908422488512529560438748810397842125345902024192603495280900056293481903543380303883655412958249794369938709838147443248637675698843144816492499266521264544287532767783821654341648794370672048115489797297716050759953027906682375328283605098221806490138829916339084588257171460106717394625645861183812877488366678844294012785390015478180283628153534725098000338195696331328352034859912602037039198644913594435077143072932495453946936029384524374910271850861926481497538316265109935874741205601152057281337297239085420195538647629350759263351368770374915672094482237903106321387966090932243169362490323651839723660415779195549259211716889492513361133031616578866510637941290072300045314590691059049556874406162777185406178847800902042237075454785254406585720576657200559625786462644850300193643139823246822448591732813070476108029757169475184554597794245186127013393889172557642337618788986664382930233082288364658775091163807231708987935580748353851495910136254994501829984548150534730051461549501343701551327872307758722541746568129826720559033794922075595510907436318581094163374884868130824266120400312213218522220697556292460706779658463447968174846545075814505888004747794375230308411245382659870491685010876675436242956600058627422780173161882928882821667067562527849997546596714281478193023683357344048481360712811063568643813096095409868065665405409913704192502709037743817844653921343519096427111435703559768898642333357602866931467798881403533409855738410992044706291850647473280778711743099425102911449245396375807425375775330292845303764280332835012318428017933786996705088463942004685343688361404969158272403057448954955351742114927729255487559265325697141674524994714757043684277576364889411360537039898814213049075943012242872863208019787371508917701534689891769468844974641353894702215190792297623335423080991170853826050260307243144763087973685882020062194812412933975651127092594215757558044873783049394648209958142988797600659121751379079128677804402837913290004382515249158820085580479030201688149270150804397847949746830668379886721971863510499062719818918882267094627038115653078616747591418352050881133464385216560804380184663016177957004730338087456866419406136580508490109535108327633478867961733395527304645381784759539596198697870542435122017407246214780134542469629183371990104977060418836882419176578945572765105549857588039719950142968042257879926269397995281028326159982536449293938034346451309574285067799739992044867832560836871322577178039790618332824709006287998386427879132726145834605903649808971935101540529937786990581213145052416768395475617185584494851090015320994847630308227798303879041664017377402164965575140091154539515979083218280249106636452829727495986273901228092101757795328892375195802741123716550981259944558769202935721118258671604612575478125240727038320370743526276081384150238361476505834265041061790708370386937912181962787559884953240559954718020551732254072335450894426642500225514344313423174095545635097491404610427934306672414235117474563111132675301120543804459579702399611661311772664892408187321784028002401736245839644440623241879666495926140334712220728597632675833922029129320935758053313030975939656564080786699725363086955409994467580658950069607764817134610122310088933104862770432441359838688998993930022012622443175150662825319637313320408999677490712172759235758852275214474011468808589103909417870914197712806131240521171450445207638279190019257983855816293018280279083431014802107539112069213069440687428712966129160701489218267349967520558628098790445854048719974117232832541359489781805987934282664245312677986594592635203106954564135062311112821011166630042500220818924844382049443194612864117457219069167872591051015398866388888009296302474637199287041259989681141842197389004912810002703918435583962709604883543836799165483443035653748714834607404262287488548339816348226497156373414178434272270544926775502566267472183215323086804835847735566861893374945950903006100966279762017052789930335991041806059831910963127625739786624442222022122555645295920268887857835641388958447191905859720214400391770203529144021364403834517525519385228618030658573735505590503505376003931067263560282690355589688326936531263794216702233670210117896706396556190119843527640217259936138566316028454633925506216790059007430863903269609763503107562906633173015849196297503866659339539568587573978016480812075780461883687538102463709557610549788741782274918474269808061226634286836756921736016129414116252075991414703448336286277419434380174600154404135627307799398872040710328346653228815032200220839880026567089764451110043041629443796373465615028870876915172391605979240354595858325333553892237299270654716629079633025327264739466882469348872457257799831377453927820107916318253740523831720551613762800038760492716006438330722999480397244824247382848221359647870394859072142329596583614195154805440413065852133014435019467513115279915874016756436553953466544587512206702866138778985554135394230213746526746818204053282822505790693827029036137746939690875479819775861871536235379155894018839490411477580161606015922589649549599045430441282174163694687526573889955253082758688969084177116051477207350479142150578561317936912943570874035225285922927844308717062728503007935104660969241428272178078565033098073452004884942159768225996943481255661547598437426427381965046835898948651675385510850014701184586842585108836238294985919593986329269143980509807221146643160446646041412934463964843406219994449534930837796685491304007108500233848789217756990080064754970462179906929792479149801064685024922619568183819144685904551587359795134020895943339660093013290169520734959461094024209786225551934671720897511365505753160893921758008396459693340098219138599742697849254731422851506887525239645971756670555393095165568451441005574327272037486831772291169592868993875527971654985772634800493952997945314303682659307571269451496241287781218668512165757688464992498657979592278470107846415537555878322243458950238630069134598468582637866532649224368499019518421398656409916710360466713591863473673060399382667945522007244173544324275039485467450932936386753496693280786257050007995817309054714554223289728919067709615439291119603201550724496516207871058924966838541880472573798517222739717551480957678803897997797170012349660754717889281812734871964797444158647968428141269831401468367306372614559394745513462845848007010217138561309818119162307472396484574735536057447906747241967046557976692889319593677288367309347133421561690924528644122481061103161203481201303592035637879369842511145274744065874113929870135516196604873531965809091404143288697056746845139367190802396097057918130253754463023108306968185012406638647607518197821062836568972274310432159490991515098563134039781795727010885731324708756850347988974904685802936316982930555229442088705164338683039733738498485034413693654198310976159147564031302104033116996210186143527555012283080997726691178604781991069969331926044408235928558610621773963353539340210859295837546994156986557605478941222592677819189554766372523826549220404789099953350771967577448792502953704019959693871790611728732854629588205591616412691525705751775577420060655137742376000171080446109806644968949896973718982866579873657695118950011657819368656125044915979247612406925814427337206098900381930222952156296802819515335092253258943203849457670680399963104228643555967220923937103128429826630026535637591682252268253946427554244906199965231241595925144456302290583730430839484511775759579635070953896966241090778116269231093808779711366897355890949650432447446492202852110876603979416480697992983711242323612309748889644474769331736070951258497865064386256246408895225375222546322117369569949903364244785680011277392388387666416317563916601448703457422363304162266008382280095529220464377197675577332458605150785696394304167279635129148367852398019278098286858806769873378317133433687847021004592322229337682211402265289627899732818611151878815172201534394259037706601012268872870058331703751166234013002306159202642286233149869746537128127769610508635075197224212275364351678588302832945230215067638437973562512683888407030265070538799722899320532417839680193585757044197459667161374698023253575168608638552325361363126705883823600504897861415607603031361391114179911463379338955835712195133632514054995160211264651118054779860727381786482600115915364087205759165131968258277694909852522366695968491106651766016252857288365659644914245658137850297674896418447890475043559744111117392375742362175685921392622126715705000606926716512251268422363476295105000831499025103188950015123105786393309000685435239742518111432127262061714426812529411711045365201303025710112506286804596059342018026707742713101843228962112568304947895686466223293655392944867182352570812639185943247265932034187509258032940135550850214606327053915483001763891750002342141620634880561044146485669101724486030123254542611218440199394838994886139109299513932596292134458228087320258148048592000030794333922186634720730046130932304812957090586769195426062242307551116406203021016551641910623313181244984855792099985633484189220996512160219927784734014596903126867002138899964272788929952809268509655592256261978517277849265657320766132225649899528319578520909306959711609607470594189050675794883630819103179264396066295684632694279638106407701254433612063757646681247887457188276083375676883576207070554956732855673932919108416041266665497380867486199444889111008256757314736679044149909658932981279681947498561646718689159139473601054075505194200024221721763336026494865567202000477512851970892994322369305146830245918840726687685962361592356217917729997894836381505952317568098870999755124782105139554526332077067340123004510698522258097788456429222758437392070445544790455936509994329909315315482839792136947850796038770405667496510656324488663019724642905456539195634551203595081475429343263601542555199322359254667481172954012184172431398479759793721087502138081955696830775845601787090486193709582940354538530848395034406213955756704041523513491019899417094318443199475540050184631481259724722641662766458180684556495703768960170285914663915719693046473714050413113414390858786957558529679579869226347357439668288559286370633945198462834692823692027723408001522006440647910398665508846254969540485449379451469509064422420636515488104933377184828890028508305332556707504403795690696029752969828034317912556379467194072513262304297953374304354726672941132517304062546267050815778325658180657806700228395391697597856589906499875133376445852774301478767498106738355434451384880695465898498020214710440811128453148131922737548796317997235210053680587958061482371011128870418323905022539690561643463309418453378102272512562211301622019343204810611132862351982008166117869241555958610756973991466669298500153676532551252202292872037198229892421480270121829487737001641871055706680155728472494514559512983835331604259073890916505702846299897050504176924540245329374186701704198159923778471006255054827073248931729969189637854062612229439567468892423249089183070404183188352960748342451078088852665745865738985550083895190080656749006227686633741063929011941110001439891013812814575332298845364062707337755300378955894876594352972476901668504283176176744057095448769082849897542796290777732990716165516304571513005973320596054344063373319169759176552012358262619864947737831459911622846503291927455229369781041953384685832601330181584106012396212469637001609937701857554644333131631771908504282972535331447293600473707752317302360544383205456477837019716053972887715200547617688774943006838918546392557451746346212787515578551299958665647273232528629740993396955794688227824287929010851355937683280236946952725459370857360041131589386814403886025878123902383516304325980776262522855072620747941374183798611976350065070601771384649075228279923316082033229972010303185696001363202038238353301147383580161966643935454659149104336964228600928245912004222619432128598273304109049925510190434869676309289734137009611073204381106514957007556881318204549363687829987152962972910390828538630044809003123040314551721068640905974434046663135514788839215774290052210013951015838383256220991579639487578285637425783722838058132176754613910610004465306288544845165009881432213881009063910594971693414165671594118826379558782204002794139082885823720569698863053351306756961406420302808838660009957427539839174736160141546030802638613164146882966237290761362304778286137064642603722516676619904566095456742619154162694837195119656365245576227407771640309739516462879945141222424602528007537661261768700083703205792447017539478861675690762671908997739787352708891303282426059118826480261109675134958154982145019404285185414964316988969349119627347245181662294296235371164261280072188887297681815270183297220101372691760049132564170476280323334449163838885436897304563094170461962019667162914156679065376549280998704535401571290152812418275245433914469911789144700175563598890399033264066734841585577962029338990716694735046423706599513051213357499981351316298768681811430242802916307321323516347094946711692785520688131912398771542225392526154060568419062219446551582877425014605886236782749637423023164319007812734624015769668763395650966444411278088637980774627842258875358031093699350331119232304545513690778571157969498106122121577265522708810024135700233123197846058205368084950565483767904806868478616219239608389382072280017454909653214594694690806881404688106598780955472771846812951118684228335710225457967064077026729932779033871568792423808734430730256173545654652125795075419583934807557945616437355969959178633439582608790559952118759704384555103422397079425883802936005089161417424208471365651630824704654924543101108507393184903806350906930968156561092684800912586843603887030118468514422745111769013510589081837617704091024381643425256839852360009527753373716339570493425700358623303457706470313420600258996514996025653588984966211623360912212897572195991828376430951907597421305739807305923553335071982512781739454950153153979751164081954457387868747167039420224206312298240768392367565408292420397809954156244605768911641748380590616440229858307881368923753627263457059036110266884306064501924784671510522041618785686624760335932033186313957417589179712316464256159044225489063665071363933384347105137247843817547454943251968433674188624822662237612596390386777507156524564116039090654070240520382085215580021973419441591439518757861301852629641514491065426824235263988311492373731568978937624013290436920642087279891621371036726176549557210007147344057651184724338515543638638317360676574950862541786795816280817906553027449978035593439301491018689107803632338247071569837442422232523142064277385083821817184622049346548567373513824923827949116493033636043107462585380660207277928268558759871623623032601983510408301402880769834337420115340163479054814487423030708218655604052198667907832030130346024801623744926568028017492444124525682590235425449457097487743717497833335279348233027363977811521227951554351471481223928455937823241785166851223080106939910773949767886120185095189646242072329024958937466379662139198463035257933599399617886185868912098305951271325210414349234176086837557074259603830154081979837352327711381526511471073423209701709581128325639456413984325431576876917623857309440865821031785399691646681489584326408967853717257688632099681457560916455729723334364068320648167182836872508767713070899165561528807490635111904916465203525321991095346409352352702611615565348087945553451038186477465740232951421081617223474139640772662185550818585542974074816901275907221167340452229112837442482051085775703720628202044489475270388786193025633838790572321234232132627555508762451949848578566953521025002063910454068933372067310777974495611233130836414604390793554615886479652214782513369647467496832133928998977717076502848246813405033977737325883343033244128001424561341431906516323657007664892240795047122277884075669528513953605033805787621010168781639465902007025469142349108655855486378990538743860738163156056103375455624987983858689199959100841176025659969252879941771583713986281163552252864439051017009852023030000625391399883788955223815383810548257995806686218690755732191205732450429713359997282293848123927523987718817390549493006773934146827845306260122282866373075888340288508081743663647033733197810607223457607087497016955875125743322035422077436134550321102703951441623444728669799226757263620710460841288981902944563125954746443421281263195002506740528941855331855034264852217451725528678967458933386245962213754149699671130466408678121229789500649152948800511523390446612100198746331121312914261243316597254252841609602251359730642027119699905903814344530845151675602094316851768957908379154100722138255144574170567772415570742945823858146972980413359257563436838302898723304175268767944786034270302218933742497769976345494866450491954971410088766334480296179126767295130295320077035422237210868329425554720927990516657219378627862490704173049158911123765269718660790080551282993171123333564504723328911285399039830777741917712395610828148875741299077558705482513437799289251909818345902634081248096333916562513992595126074768833562651394728775335081186208195322728422419339201747432531543250679287880207749421139935752149231239704719082043144024893298573233491237632150799888410948552686399142916912511368638527096657125264559262065967385298311188715977592282194033559711744679626401930968627351483862594084610710721210204098794839934490729678721117194324681977234355049587073669177264689970884953096840767781521850518634621072770048152377631862899677092255732882472916990868692867135229321845693952510132853643171329169133656493646132020651180406728379578018847031173211231698837182833140021546603489456596574168929321438158385666537551748564519607740634462723560537675229065386995208876878614162392153268549066579907739379782624577971489603904322852298358259572978303893525328355496647513449587467732072130931717730577224638086957505666468110980239435399596944644330289540763426387756820522278530645405085580867544294954719307626819945450941833215655050111215321039006186073154355518589545892591274241454803847172527296540272232196136657203383056966501849128366250202346229884180146268851105976565906815773316439591512486989700538765442316399108406523273154326331226344208705906134810417022008288273299532744294105492409809561533115091278163259081598450625221942036862777857551035772780014198489904070853748011773329242930365659407485748600241198697756862957255585847514010981898937905306331411558771509178914788436350747846295527844322331019503740443902907865444087539059429130296815613541823327624506433456998826017001215498728693746782374988136319255680057266543800535246995657940103711589733806094199278413008810930072668221975316502849263614691263093572151834717475418590508630510633931640288897529324566264262977985863855086906027460899861980505819580178269293696360842636475146638615732042536033315150209970262742523584902809375534880388028627328241299008009624408129050537603790225026443350028547327961501485036613673589172639817870079024639867590452325914108979916920400539217518026252061515593467035551574223257223000692012220636274457449464939362480993417969684124213943075567364746988013041647675396148540726620577280586732292018008959844186103590003811952241892752829268521853726750843253621761683952681170350907915805340027987155997641962849744725971549221816568582244943661318405389820366712141230658289659210427554540797520435927071078032782601601172709922574906380792031413737634830433852226823565594599421641395090764941663696415232777344221126848443472293471217127574728229860139538951113095875597051445036877241858004129679116639205689855534328135570474329181613749942385135172280430137645330707467369434587863611960281405908114165655836438100222091369844233626891553527204763025456522953773993149819529837013343050817299903404388587506522941527940669855866616131259207235712064917853816455310832388115583427867078864532487945331635629003588048219544699052057573163921207641504231970419936005396985326905080339451774804690098928813800038444492659346111773881366110565580288696682938449726685024189866543894985254104033560370552394410813544357300460432759065875273465256540896901623514694578566091270039866351401105728280713185178690725609776000112993614404319285892535726112264653098064743399778540506510987275397407291406911114116527869884476994435879063806975969458540937081433744783442615691900661328061941877318511374953887210211169033493354448932991498649168279646747747761153786721243099152959071276687704793163092706372847073511290170885295378740165509335373913323324784632792228177136376587674616229536686605197829851084979137589658199049275757110284073939833255747381248116703716624659549507162059487519079911285952860372597141029104484495941693827893832300337151203012195132310013926175882895652480057319428771279879499228146127634653251266732260004484250614758847611200493718607926795611230792084682203163764279900013071653909710671822082791305562905375980802248892710164340605438549273528644219690015171628320946583296477543120912226318507836714811211355555400017773457868875821518368166575931198863024704327228426605722340418956986743398399557841500962125458164028676004933209342627368269713487503226622961646824314305819862645725504114266191546204131929868977609978010959661960092549770772202087882993052603843297430122184698874562329383121852061335962024524778807682603893935844678927121944570620535651463439474380929437624700458615712270332474919604250156783390641578925903258686496975277581733320815759999460244242337951683602981345809020532237373459032723138335201011739455141435109725519257225025805153454671318199511483369250873952299186939562036488143409413836404304653039711944116525223085399360121650475090818368087858894796984337445784732425215552771219605154953524396434166249437284471905471068053794781546750329418295034874267261813342082520635299074090537558464895470278299793924684493355280410483648510894766245569515399446819708630247552349202280900753295234672200146921905330300946934333662581014620039227859041153646204500396704594298714525435413619973678901442594639246141538464298865044453060085947777329218231769562528368693790752536520447549695108442341233340330307874610557841846027692124665453926486899519773435105993035356821154105028745636888556733973498692033636674245007445813405781820176740909705302259158030170260144665995049918740751047598414291914792278155968956866888159844918854821568514914934351284280640763246767462544576058479292096994437795708165738653940074330285847635297540368247961205594275986177557069416002812923123969127676899673915191680977611327547213960701551581484371344963529375416568117817607726494467781669568477648163687869121381319127153775433383693250198234370063373796573271798258382304321485946347749402577853128620319340448790265378639267838789758676770317809864409465958810766824406624392992114195327892623926204043549993541367998796566061346631447504145271036766869191433988379709029918510040427173041685964902323734291337342585169179122332077534463427742719466199865994253407301136012916038167187385142613343404882670069023760151180674104442407492267526207111761543790084124091824674770640014448013660416795988891581602878846374065653696021902362626524215838808383469479535758875154589114054518691689334005497555090135856981029610832724450557714998823560573151045262952098860839675908272868527904726890259285507097082067498389890856573447655354536583969048602380015166357438338928623984309294499285686341015590979213420847389208739727205187462478143251731411720713051754234041294764965466117250342730247324636293180609734984949819200986501696287223439613028807238272603592569891571158242274454845429313921637133185694975720619021863990996313876326984808912885696933084326863606997018659448974283331086959063202319824814606828186850897689870353437257082734875167495350140933124492426339715315416925511897994915803478751726487922876805580241279308451130628400327341784125762551320753828406892498177806988823678460234502602380074527471549564285348950950459058356068291939910858752034252999924477565090961051972586252154378122965151234764784577255777264726034115161450740539597963196498161902343213434943582047825682982982038937022829817829024637947067211412995272590081037252918035168604719531557768601680161258295689039012036136069352976428980428033373291755266581968742817571302903080580822865651931887466177598498925922079415371303982602633811471529585157523451159083082325175045326827970913948907405927222712372775334183340153124220814472207732504844155445621036896403592824437938797363874188545889380793908563615880123591496496070824927050305696936766800952458611681704728092577388186182189293854781487003693853992734868970681417592416592526898905771145581908722287699109628619218307734732191234996678089923985650304462382801524511484822357229568872055331917063202062507813857055800183879148209757413121033732381106440088038144632014414159318901064489913200055670147044968554600658168496507747249946814600690545483554529576774646089975185680478558562853834854809169053649351592689512443592070874185823371954739944647702572791803015376149129704388912815614090140663463796968853763553162728840992351905378785541887677253717361545158509933790840180324929840738135701605859313725193515285848806074647476925206592766356939393000178258269745974361661131822876549169320106043809113826669629972361769928136674888977483942072167897710660990333987892263912492195973396467264548088823165753225794469093587006563241534519611264017837138310716334771361233180105807439292972537358050823712484213419817499824732960917132953089811833255646952592891298344556940746989811838184709752207586262257228764766689168285809362132602219969524358506351662069906656627497229711816030982632862838013197793108455867960906927825959987514736221969604715428881166191138663896409687343454755648635581561430474567257788978939274625449384888760544329795691157217846047170235531525858510010579389177762850381168578610239692043341890374866231590834381077309783801385930229791091029910396369526108494985479311195960503556407011678226370433174645821916622687151005433214735984548871588612349533123719516053487991812318274262962313364889606437718681002922709509410478597066745576349932902042394475132975078855085490311146985628646420059955487795452867666012843734420733241429063377406940564847232251227160985841642302274668847280684666900416257508560504084181029502971284286684127694246029056910025096148671430989139652980975168378316791281872123603787268117662745816169344170798456824335233663847070742650437187244346042661557981384944798696396886470972858356652965890671339416574999952016829174815663097473336129836826041907120462189275876212536661407275885168122952213946587717458531479852361211987894214234588702410738329252014876039917555904613343761075357056420521587469261704106863404680834741110226099596429385044296585928466611210088249000513944576007645452305523012939545928198776678975493026852607280988989972702661197075713329999560311502921406021131497344906558613351071544432997584699439143889185636229288792461736809523076643197252377686284211953406941589189086222336435749554706569998549860536800891803481807984408187206463859188846540464102335761595619849754411572434290136653777014951526813528052120517734241938366347581403309969646017560652622835892504719905089706035069658725450912836935356080735245031279424268131202853655746809009289980077707298382024491311848379761689935470293659587452475988901638002717692017384044939337794989606980311126472162597209540960460363855951115699704451747481046281842800403331705400824060326850209983539245603744248506219872354349028002405466859992621401304636305557555051673409921176537306345186799905782379113486846198894226808376258331124488054586220972176714495772244911653229013551231251548894915818698399415222578502309998477840643449075292016211000142619364416578666841708434900449257395047265174537340589087255653746548578422624841422887934871889511338418239630928299080063972232384478317813281196973593748831885210068950325867051724749170879342888219708094101368419593309145858378653391503166041010601319875543165009878692349403720078734420218744554907160590152813497460639993037015154623810520995349363475369227146948464171201956191559056431994118307277669371790027032727241969337432557350046235281927125670448340016091483406753101074699101221187475432884827254900416881627925928848403105916263542556046197698660774618549355583953702349043204848055432533485725143092274061357384292648744544433082040981512591575221098405292631351971586479244588333241007188110757303953578517432759495611877109097443665243731696530119277796978153942638360069895186539039183845951598842771678587526122901346570791412629568052232265083011261861050149835587471440980354425287743073439918453997702421662796688337008625120457707912067602759638921609646207559854718050969314161261854736109665770298225954805232823834252432733776758541415405484750137884396744453002790446466902454341146870749968742359150581120726164037508543984591901101765626803702382496012766368212343205078893311833801703233137865990730242193996423055368657863299042468005110687061316435930191006765245988581343791404355478496641391531952209827282241132546557610028570700625700847091014464366247906155320883822589364720569531768011737772999169270313918458247965573765475267387984512126389549500844185298992911270806046901583579035087863825451246032175873517778656032848037627444525153627048489677658832932554675240936655314066716481251419539691634003919523818314768151380113689460540146223759018083110759368146046506629514379407132812897088824156337204166373965132685783863490573481394412434636443883335406871719422153340630441745756775694474263131154800228555669021305316825235106542261345525681923454417104516381723496629020671563283680715030870426243415156299624874073966323878072152467687915862382353153030876171495868118426395326991824251274839141090876295635529461145807805874584137042654641856250159298402113277384484349423664907992308562106378412653867858376070893525624436432451910460153461147723154799793602717551092117769885918164043918279585120862901606781498797464126935971487662957309542079929879817589073899204736025849429713806819219919517427122879217677854398782421197994671761486900292453194303818034059926527167421206066634515435513249934070774289099775384254149664209666674633996783839397649101152942925743992760782190119553600556574734830956773035474663885251359158322087002906813940196372545705403743261209446077147967797327793623123485645499032472658755906584747534700253380896072391029331519832099930979571114311178367935215561654682595487882209457410974993983702243172211923621862300456357452247448383989840668024164017598591928890858658150205962270778738830419728805972519505008908657585310138199543034896811160779393660990583890355159562495951324083165360974020751090987487701093679191149409522031484508974858576402483480560879226767144229146095492013288905408181393587195104724994379037861661098642614872252608464783807176203194735988011118669367277855548368642134385358535816440163679044587851127263074257323567048206559978568436245220002947105026254054121548027944406694002688624126470857795131454517009570682777030060025681537882440467214858202100977734157922344784644969080693556381582862927087680005438983814967554798078773045466189364018452336607822797857958466918769633913787973911408472465944258836182438427342904514363586839127223644468454616496977329538896721955903760480929803892555429159130492393294293003696842779582199167244906292754673723357484435799431996138000841833475711278086342157569614000124805458993016483380105103969103370014319207235055550952428868320168753194428717400441692150095769348649913287216042810799475842712863008266389100113314070113787015335579687411711999476450658449635264461791301800310495447412280508174684264478572289573690016530303286494065612171346836877680967487293150176490351076143082247446891388257058326770607160080022504434361399538391155051735071648534540157450795367599770343469980162953431909693513215769751460852587995600266129308005441483681663171235336587404604516281379442153911311798930029607599080921121426294238721115357369970405129112940154627966405304520102416373882934035119072613646696834872467896713624554924454290498967542931363488577011661678197470053647470379222193785044375964881544666049657572214822756292921813414065153644065636742065547331057504367383267774364293528755501950784542799235092294945196923580414012245399856178921038880061577822690398579195549665423736410840799620574993901421838643760822061513391801374495656447513965157707820535105729290113727019985163968277532570806869414819990494410197827899264970363970137914388592325213148428816537516561965313819144041807094190548193948868164536084023495924954411086482525011856505356278143099661340600728233233472971536020781891498219245849748929981027744246081404926394418092811971112343805117517556920593054859654948720414997018719440440169311176546870248062036211060273531878191470248396533367276532847945549563570128270979075465460596767734893291887635515511557317505621890594768805682529740325351299546460501046601970127343380637928990009448012436547768022106617329782053122147609672610635373614870360772947459532083351271409335656563298994625305770596075439560866642361549008134715568731127447284208097448860922414699481741386888100232442604583469669625057239038254234713765410409258910008338933404195304925604951528513629905960093890970991378587387978832493552669456460457176903158054201716831828566230996559762457668891017636214316439364180200837953079070422437383597470955957900787892559007890653631782194024491434338554802489379221000188195156695925999829791413176588019158659533160031887004127161921457934970281125814064588736546247355110844237351580125626649483835688532701156521397372302973506449918353316418417320904935138216355799866294577217740746163261510895568077220322311546355084535299199997034866170115490898650712486068968435231850280340315637244645056696266190438456974379543398988042658533708894578199447568209636865754828784422942413453727024340747509292177094918882218273369334721762547702389408368950369905143232638781422033668728853181587379821319438543670030078534731046861785021526651803028904721488866506480541330912250806817076319091992697179210717575253865796392021434577189366003349374459623641768411001619977282368166482045464564617232633303417828683329384527482535573756780335060718243138341614233334198062619128920777470003589477923919010141069931245182570144872239694989832758464880113123258790844107026415634309829714444700646567062192360824852016027175755523974498527643091170126540643771938731602631523457765760348799127050814841415720967138760396431164721285900728359944788025471275190660154116482175606576257421153117498471064359320625187918935859267048185294376357342539329028661818278066392819382646555102252604598228161795302477202271526441988637070237569980444182785087045244910400509500384764008406211227676254957486834034224657304736064089186347502309935637324658237662091853705317190620609366063467735661058373756180323343808529190275407007239142136976218151529149284074582488028455067552122309452133514147881564884270211257530866607021863810428000290103289802955919924773031457956367363436019730144700610779770031013581389710850823115737484162536886859603316964980137186130088462475178014441143722070759420939092626846730109408334439489893540494418721545946945363485660903036164792461096514812857183371317877783294237190957570748043058875086330593612714119317204976904510646443155459620758202088039905846210302655407186928563863383492116756304092523067734611377303736601602899262244113866393347535304525618343270047188303863522862977475841860092336607260165270896861314468444102797547658078970784951171250839176176558302867754349999869644857356569859969412201244302576447552089920270543496680391179122045497247869067546344729449213520942199815144651983251453706803343461738347110454778288880440333986661507829645862283673366209169059108660772959989131160594271731869726776292150129241215628227726808716836177126140818564666077826958527515995469403624675758090223492396565136636953718651344557343678375854364116521998652171942600199278985453311256991298621031405287224246657203372492440050386811516173873153412744507703753068002770763227839121547850237676284451115482824477349008596688209000543574950488747710330348771156910455418124170764341126403228722313371747778768566983359630765236764497015084670056094675627227860815148083243758905336837927856236749285755591648911178901425202680535342279315834956547095281481245084573873110143327196637531886977951051693134193140548451370980063882801148479426369505637210868020827980187739746184723118032858190110807164228482616133671800752358008817842503652383537341202768102758518265159323138157021786772711868262085044831102584869143421475549053416525415444845091768827962935992596995364527491358985964564617842399205753804850097744504568574671388620129977886662542118318813724150058017645176734937214512607629064870241518858793934855726160029377390109474459316743809693548738065018401201964125774313067819521174036971824947967403492028150274124204978153986857308251180436671012221951694375168221428469836681639869890078128074750672039116222740367084115992920552292607939479128060729353352953678978910469436531068508795149318672468917376430968025647315415759449032311670764737445360553345121184792381053861596977941351470286066122919127588210421711348841434280244450840921032355063402604008539307573637643292569871503618958452078399162452758654115375283945241834997515844209438088860491993787492940747510880596315976028045213392047566753743435663606509655520832068338073165745133643835366429821970758319192564322234671961618319608229341700608913427907693145771191947560966073136987162293701233103316999599228393158930442133721140699099215030013168140537724526765427390614102843557014315317423378412860778493998537772816916470451262032069417704640016218761873271350293075039799695083547089123724022532413398256120130947812845077142373543688600430410000089637748988801854829392878174689209057068809735669513074890949820730661877461953423344785214094905365801425818606190184179555301486538516091019338460882531179732908891153509905980195385282509843867569373710246196589375631776254946495837309426566505586387051495893857623158742036094906184839749312620650281829796648711969050408930673563112667919696789263097333652316767099711997300595199092342107853658544682823801933498709465585146956788818901704871756261721699213534048399045144197800088805253615535889615490748406527027261432147562715586473582690701598175295660732764559653060507835172098798638498477020563624102414109792740651231948863313742457216971302780917486522328681058485699233972484385491733237495428535443585544953517282370199040347050739357042125106118180236818726167143271469092960913444774989367653207834512918192579763012400588509771829831503763147602617745523174042065348751881908182924294290943146741285923875194737187601892095960859730323999154794562462099392322872553641387189212696673638151343686454569945342662851285491887790118792566193796591710387109366320027587302683557357223254667907737884533958808866026437740674641226399400317770789020228084498125155527391558676971783705135738892154098894399053816781645113232274831441943951804278211201282156641980183068199919067336534116388524551235100648542094673171702741080545856724349432119442926209411479330618619462382290529084642010112201718561081451996628764024847210171554989669549065814312598895803054189175973854416037942307746765668415006520145408128499595825263670525915500188203662465193218243677239732884968720796263991331666909492498560657111378295187122890212280616190351460117823410227113275736181304199869562870097261491736324584797355128990450051311414252335505065715290120737754480834978333461199844607149066075153121048064638344130718695775323170966774753956986866317685285481261092729041082481645275714566610782965272714945178763326063140549524007246318155521840991117202257606987245898209389181289108689517848380006571070915063622043444247928181436038121506031433013114690186648256746628185293544975036937229347589593478917155150164957799975296681574491066136957470621330765820763897556743277645484900003855894798069910834434223087720462822163090903374019123766008928399363704018821899979647089052131781112894365078316038470762776808768993066735800251762502606281186432381456651332167795234853116505841876985205384698642839394438257708876865952582618716644676394069470645577904676533578682905305166708915428139354348740513646993689598206691948880649362197098770638851214055645417357640960900643431162527045957700006452770888133092167864707947506137011150940460252638389400967023860726908302014240799971656237662025706076078862608801719316791995274439098703435210735032484290076823094502611594647224320942337947605222238935868583880049081639095805496095117913218899798470623701020671435559864923297452947212196980682334295370499307145794652585528967832640326494731669591079381390940183943685993667636951833342326889969848517832671469401922526714272436961810677489826710961645010568724341762807046915805017733278415802926589254814528951146916675960182493348273395045285318168364567580992742516593598288368558909333595115985538653623437616316681086570623785096972060575451030317166044191241992562016348169542676924754248819554108106141042609406616809181725702128525454765383646655716465975189682503039508644354832122149149354309384190324285131870619332700779624677997734595694798051322694318964988473678915805553696477485413633024145883584129458451093092125678494816917380441999779410827501691416399486931838615339095842446857964875740216334010680761561861706861928865284062598456839153711156215341544849385195999360069882291423473044813015825428902761068440654871449776168647939331431511876992797475669264648953931956079154348092978524601022565164157392067727509695664385408239632955980154174299906256591901272315886747413898511444286558116378909361560248111488590075938480899608988761411074941695034797861260672600809703661060871324501932196580476081851795932351307039352181243442070613728997911378610924073858859744875178987506371319239043145105413619273831583801321998412179210434691059503818351889899624152647418764549679659661996342313521203289553928421210677089659887723511207939823622354812212220805677058812267686086193529083316488952193083743264251770253144029075588401341340227101419969947277183709617158174454201583939872800808808628024371704463761408375720559090021769511212335921244817084786659300194448857555134031230589185322111330673635543925409461454973725968467285954525726818708491847037931575981214396653572414871783530473401290890334690519736637518205537158232277219433995166062258620596563337431423892444177909216123123561964826017981004117642780993296937519200472191223509502273198557466738820122305682721256584436589377087239733294162521445545532528734627242873090086639210561947436328083212292707120536878306051931844754964271244139507677474638579415263613647689736755970296185853591811514050655459919920541989258341147015630324092112217288958144084905393529935833475648759782576600818292469404267089008913301937677648441517564805734138871208944611295059812347965757739956401556999341554475942311263051970071450762931814324741586073914879145282878433844905535057169019007811937477437496945668865349948543156055334734133247129643674897363416432845869291471565454869990977985208993713133190684435020493944690666069685061436992182504332932113355208108177539470048441611329605197033114633870391006645091367151616627820966769492031874858933395535694798180576563252066697036401044888782242980450459673932657084586023648916532412436503067885844246352880332570345386511895498489924096051188201010757278567525308049911142260517394667530681024511701492550702435576642581103373120350224831271498105056263989765596703408797775872636682442135026439448026248467691059657857129603687945323560164824569527013428596695540554571946382652051945273132543980070417838348341767535552299302257316592463801662362203691836751287907246253707849196000029387737439918131144078309718425450250728768744758804217886093708102750100990741113475027906178402938112418420961563019656163018599995896778188945059831367049876760514297468768148958877208413854344449489824123818893050584868784352274977975098237892793543794277709493546409739199225775537263522285262067059172246571238864361918961703730608475255851430646179058497225293795835275236996092447054355084504807388269948684785434649364812562312328085184805689089224350684418883660390376574003523311290451807906698425476083112811629759066872857114186718146066382028105332014526143172949399976612462223728170331115588174991427719567362022894432081565363636041915741832037830621030037667040172912256525510267292392976162616473517306579272369866122670746783519016423919397678285413408794903013930015388933300865199952836843254782968779787195956403114763675210176086711479289553638876490969661298690699195759401155334891010992785715373254470751382484044329480498057522203919177689365812110318435002276338044005583075459027891660633796235694031221096988564131026471371810850449148508836507465612024868549933810986871215363590811366936955050252357393402629182118052498321429269684681985443038917025487125702080689939917113312839143515858163404457045866005881078428789707353539998991059206283492492215601299964879831439301963917479632394553146433933054626635444550850655554370268386353489602684003160750550978786604504797118155591002836159173938750209431604227938723115289169522212382944655868935588740410960127039764073724631119272948367793189881769089027959086615022550759964454906524851560278211921853473931921344253314855527043502772595298473237216265225890947522382257132712586040569545012761176554320651035906972157674939617119923603334465849718944938107269797932026298841523576036139437861389778510448247561237584627539992930007622718465521762412133432743857900213846278367899790812704147449676655555195684757842340714812616669542983095479014748510514057133551138007186426403129696637448299709561234587431015358586717265650329179456114386365190572705852642788517355473308383129635900796726075140001042234832855573870075428865844971874561380597571406917299829937503474398290332887824212192882393426459855685438509039362651666660050458752288289373315783112222042476464812195154746197936831005725305184005039337138477686778540593251808446589810149797277651602849062968633363268757530609394533725963214668373982652475650857559032521622328285478097075870058646671051100469945615671543337198775168718714314631072985876141504753389289052786579093108970351827375085667865122034989221515620757666156014878795898628771719658792205752682923373723820084925175494804880938097904092934451633598450460536924757411306321726835594820678616720613771585958535228263631408525999153548208844980652565321609939084232483233124289616392073462441821003885566774434629440318414263795380901696911282721230841832139066143206924873455135341770118092828779287941608975008821978805877334220528842234072696490284396214370042548225718304813689039690183942452365695645486143807902865147764401389323307010706149304574070402303710481283943044166944561798005083422396245575736745267691426011881877412967420549892175848523653706442439943923394200954014341425352966560118786158488597524689511607866280131058452734637458769333066596142541096230954015995533987340231159735025082780326435063825493911267829734746238921919953882060863763082905083088698295432683217177221934354206079673439542547563338898831257243545615667483078327099022872288174418274893493014212310914458445772209784194376182819471327948639576997259951373449629549517458926581649674182744976498773332721691609181205471520825585640587044904212686813110290014789853280336298219945746202081801877510132854303509202468795796497389594059541317441866326696758092479909428313970569008331014811950863212536990923777654615090107349185034808604569737608567233796983925123398132568130132357279911320659900235424619494596478959880418103040746976868218998752487598918609360533760564719311891810876229753704708029395620317595652954644473937296701008360277744030321546798357976474250481558900565069971895012097226933548526329468996750562113612736014977485904420205626750355744301837913978677327236361856501410092923479680456578804498908861864175338830482827476246128899909119232817889379428568525817486688139018846550300818211987044429445607562968082794625084766300353190347204947056439817340210069934806211495756608373528781469958675991773035035027919210682820099613479944265664331667644845311247989910319919461666979580971380394271177491889262411504713501976418393627964063665673510997855275274317446920045667683656727719304422932467671383176727120714576317022208817506493482067725355673288794492592641783646570666884896998658937943680201766031610453723811322279342131060390594336031351976395321059139764231493361281559545180915865673974905068472978151379730146895578022087066185426795835415640297448024400500057569890161798154658879412359168062743745349056768381831708246301689711673092640168821981343550021687021128161664080562946809270087652260235645947273923552220497527535115437755023701395636642295324855400356823294033782794562747770008164021472757565230573723096587081260338739905433885080654151013614600039828802602075215796268145295111581586433903873093098223405895366021593178903946015944808922807578229527901413522524622779582536129559896377516583969671399371320852038766904941703068918468510696128489223562873730023841817930404272639915309080994820242488033327020409364282071593156619639837041096503997286876626816457713656017266737083459282184962631282112034492797290821891777874592841357391679544561064020556081080186262682168567281705922353018916569571808783584702751674268615365316830953170055271982578401541855400150729548444529330592956475500220794332157941506851540997852353885745854123152907788520747697003764133529779449364136869555760684271737086073180182501817533511763587004011563942511512269105450639506081239202184243510380031287231958025555218190324557466758164886221378811510791274470812142337214099873089946762302350425976114943403422452711971857875414485161525160834401849594566073383734673590021717324386821494454486583458761009038566489325542372878969285435590824622695060121431906146545652916294184336387923363424746031594255035285032155387508678889053063451748285967305262541120475053589424757387067435024778150319539263072654525973272685270451045030327882438872612570342712764930496507808770270435896853001287098620476084275515364468550778507221805409282327694115463104330059602207388108038774762934531810262238002636508098863536245965650740387199351269837425312111746836089480088867120187180206228670070295496382548532279071264635065262224479332874130186649074472423497943011890757910634805168219226870388733596721774698546860506519897429354703706337082989054545358771037296453605454976450290386211885939078855608115837149839383979375599705562454142731966194135091433260647378600285180859718663336376552014465960701404478373439397950484770128584985548586078550520732270692747299373773304439823856080062113808013903766221651536139279061818962589302144696924925474001827109977273199856293104148151392489597083490331647828065975373025239014208680552105736507452810373659790635554459231744171180693192769795303395758513790839608720641203313772967738942486267543822366485350430532058903111854725563149987291563598832528263710369542662460965861001098120013080182215156756503213377325465300570548359872748883321233019132008630793816826927671416998863148550838014413745956686585226204041002905486847023951399331251513472521209363123930847083554279107904821114808617057726865378376400858426253531586493501912126210533378278541546150513529844988906171835096480387705472437578521929154830041362742031110468101480474520905686159550874225192782577837548338557023798557571134786723758157987537756733341689428609024096753385463065858864241308193403087754695481087494726500788942829807933647003075460544001524179400708497737162583455801617819222226539928358021700324420366732876194831469016692160237815419739351769016416191109268033301629882117185882983507974076543116199977580938037880841746842970334110906431716860509652247353880734593946605008013842947553529148337393227033828652024986016224324639466647647683225171887438689991681023073032241478830966721321525768153405564367675446828529433196900403106090718215595382263778303599011051032979318976286408847506564327670014833443441735288042501005450871883644825453464758161697124120047143688746514032103556754090459876223476656525747420691229583019738677134144798897382697941884263464387226411208745444879711080362326837314360935699469525636871123316495001575489617264103563470062781011978888028272472573538216079081306563229737338435211919483975354854815114695387838536938494942845788286285139954215190054591820931140696025387965108843427264502265648979835414601432839389967211954482848230263815272128008442297657393349197319321221041538567502150315745662462457838882999129339011846258507571472403168678693976241167997152689535349602340081193453493280824788257894865994670600477360519763637938432768944492876525189568719715197241430161915496354436387745027177436555595078842763003462614269072725293540489870441038713560670482992005680940589723033267383443300594956710331003704081846113156611711281318026177223459177118148289214999532475058668442466688645824025178287006966101865342195361793045004038226838147248659318252176141009966746413356982101682739188645227367072184695748637721193210479819552450236894812327719601751666032302949850795672470920344422872959298434005591777341228860373989451010331955446375832503570564606710397486523453500021479947280279357090330027266131589391398616924283773296139316967251767074028117201497167245558505658183001883571576110830100387206404512528535294731791388233690149238346776435739111661887598329631520297200294120471162299861686732598795230019158750500769493115861786829141243643370664998174247739959832434565853859054212109943346372040654478389314922570880334457972779627270479754063670344422977790346453395733083594736379315926397757384902867805697962001707066986201981986139030121391813261781161371301285633297486939596730773558111832313762646329661674213715623237909822036589355896390710481588003022547206691671224454154403222118281887342525242698827278043428084139859625238920144795843718677428459531178613596595297398204874389048150102657572841457649030383264903256702709795200330108194088351360963335651993299837585260136276642689326134954627781130140766325213973652356040588703376953890639358981852017936511576482457054382048857923581646494537241457679074749055972860856894826987060250190227818163019882367499503204631211475748198300789315099134268318447865356372016003872421364362027874534469926482312282739783679453516016814916934322083374081374258778360202785673119607797831816220815553815040919898109656849973093136388823889942303680670749943995292294729547949320686875896249319512482228652515206965321568399425367159985527914212711465681614359124129350820311664719299832604464714191557019105555329589845617533620066487895781436158481645907861132188841150364032881665575554048990543437050160252513082284232755330624298202063313582447381684607067587570520135926084322817514639341303919355232605287772315092202695864018067947905571426198530830689457472781121414387952902277803263844201735861563537134619547724305613467371617771153648748371200108827314896575986823931544813367179132356281110925671733579328245578501933354210948068326556174695821426624599623641689081173784426761197002146637734134857196378618626371061743627867615268824284402942255071650751079920129936783377342413641345956131966286321514967131024417892814933395840995742255477634098109099766676141929820548275499310457248283684560589978759521092008130298581829274467856982545988691234875209651506415076177391156581002363726144603122405017062390811059996233280585562678809821397595158080259994101159887082127253955080917750336292120438095400562604663005311987452392970357201939649652956502232025413907476485435164098183982941348159237623083578631021712712014564073390693012967360819856313423775196609879725648724158060981759982510831326808253407450764087299974344332599397463483322382423708540802708117317323611912822532629832140442238743662768611284919133905684965707704349593098092609369808106146246310884022339253945508389809453227149988897128711191263767091951348226868062779539394459685001299239483109470233024471277601845765821401090813552216878374915978124328217800204427455040819223806172929693229068746805077035431333886233769353086644206257415780826207809563837998358852694582465890417988253463995335875528753293403500657418323008574193954624652943428049797444664652571697868065306136936507548422021844880726940290929281019024684260529903332286296168234214669206595984019331227590728431292090644118931405389445854977656198601850806929201017327194138300914355718133007284076117535276638298522365286015090974400642320083254043099695436812913927252911375758844193702119021668076828238999510421267826587786404825831531587614111829080848894661484505600623943084631777399493076591861222234800284093037579033398584567733959426064284833820774001005659296644663755609871392463375487848160776496879782849907691489132833341456089370070219166768985041379037313233670915591779618638834661508561818793777328166688694508428551172571883794279285209453366318507194676477452418316051655884814919089545190559035353708740335738631533388893459249314470903362139053381159908117883739914427823625569204080621560486608259750684971262994489141555811754936980003758393416703591597903741172447911851814110810052086437187385938106508177175905797857368065671394849517219258378091015750963764571682209151193093930920173424426472512136752876530992038103629551310911777166711264245894782193962728451830249129073544246487214643720400061637170428648037724861836024839886960002253731174957966867493453015690317164440133343689911297623908137369523961401968033100761081467100559491220029394746521839276300204743372001418130134651287911902914576213208756295991014385758889473382151696650826945708527601732639443688690919764153320688683871430548744993083266726071872142527223359165263978111513808552311718852471777105570495972962726425605326688828386909477557479142559705953340697638730955639772671997221485192835015255136754905384308746664601341762069773072424682898058740701538939915715085721959620350104727380492128747605683541096904504328782439591647768057783189152921685215747030772315379427097254945542789448258120877791980973866762139575948719442896280025977341390128432676833953796991442828640489965384562766728769467690953968239413800154597433003855253127587803498284891196479816907824026072134653144434887168280237302296482461190691038079895051392974966748774228108585992227804917295546104131211527208594143525857526459718103021894108823656188464782821465110300166552233289089018959564220594262317426184077751719924399889216504082744870480480455684271464212157170058811919982521071366456775365661876593180746383128166975547768989617955152055962793217867231591550854356571826601646291171609733802355307843953043915669825682351514450189902669340107177709590017410821197110680058907285532073403458901291842240553004367165637524129515065386278391502221050683606883006860792856583550486296467114408358126655061422691183727537309897422074632722702123356406422591622129545337768794470060972434444678734999518279483740516658151341743177637234374753503862010200011869972904300741648890849570330357783948092158284196846167802258391737149600805701741544186912237312113724925577043370651633649540448243182950544854451909120135483660996283726469535796547299938728243378186069401982883613573949967170707581129050617395897536132842355899731618344896986973818709943230943961904846632662860681311651970100782188123969808080388007732315906371181702253995479917585043970568280300661224834423641904007823072389565726222659768682101794426766251594421197623064053533414882630709310830354311102505432099895526861592569685899396871124294070033913362828426355710266790827480780216301358005263283687457497417993378854702020662776144589558049892295176871074587383111871068160412934055506503572889382972412590630991774411079362282281546964464450991141155299376729544589896523721953699360031055192885517318841743648916725378284864891273503995531533638377832525162295753157154658946580622277004050675603634840447878165922558280609184080386628329094371919843100582442702854009978580455788033524672513767675803794314398205500730908255482650951727143444638557513099976897235428353852136383600734979121692159283024563827523632148288748212816857569361530524863710900991005982209659802808485807163332277713190297404779822914955901242135010055472351660149340439182751216508792472555552194052624594196653024311356698259079747836491903349592846537078862728110969275247241918448234534695261012701197026899541938166075689588943376494908661886679191811339277078814170505097087208199336389281949434963628196034889708649717028067600665546687719926774157163606139823247867100581948372714274815136549726686461654028447610533679562614443593762669458736354599991190572443709804946500938258668711620305763246709771872547784277353533975035017681323319563939669228943323992771779740420343701224191919367258364356458116051611167011150918858483667021638894417581544397141412349411246664624219670358076801351416167243423493272568781512070064580666313889991682487651433133430856878342364586697625702531341501114378326654248199799475079473584469346943650359953355839714276216786814652714419753426669755974641848948106084902483093473427099828061350973952335254366555676291074736100598340396877835218572870029044060496572065184171496937021577327819710681044355094304003940906193627063554301036917061523554226481813718522375880781440476931018403242565245931904337722841148076972741204656055204960089131720151202632888501966726382903045460609310532074176112491270648477395717018686013110167476052700676648893795492107883775706438761993910823038002885189199563215122063621014498509216135362162265322600491791041116353568431617638252954506171574583534535925288447011761534458329235909961705464332003966838533922602231806431656168216085705115172168599904502509051048767824320133501383277137859704571215249020181214186176413737645902993494767475550403468439241135507737229541890059307205879954340960781380771141385718603320621766655629380559592503702377687027511875498601822565673989664536884873329092706942696804767076234789065370983157872962942552957834955455643633652940820018941631120884328156239398669899897712795167454407115589123158630201638234825228818215167521692847444274990499203669794732910589424253851123874697291665466859788829740896420310879611181854880407699164686493103540265373196894358217088061679891016312035097938771254560911952241088384953226030617355475323200017725307676898786102133845172676994398397186772506568630684428192559159336233440325853338753013307654564517836299114572888551602496996190847084050135753748500900346535407054225495569983698206837166843779561944808486333526871547264550789239792145450020048743118975669001689437623108248041863727460631875997114827037407639947313812602932673323513059538559035681207880875893559760412935696850720637286852748978979543935234175098929340220379684352217218182941941009621309314449498030817464966361993299698111101619596873181624391018095246022387219306117097356837012364532342733314677026014521896820008463246320087967919927548945947639825415931565981740949720223866330874718986133485046489926394875455738591184940247563379374722886410652907079714077534808552388018511325155626354790534288734518328539633848290833093819012268422324358603055897047351806806093865350994924828013007721873904871690342855820460409783258866005424174241455552060798184082426988341645853241286229953810746403247242990287998469619944983403000084593524126287186168433767288787094461205634226982878764779523320154159593158149417425127731504028040716801948940186820925103455782938635044155236151542324133720282185659112365377067159489898292728850221227109011316257520763762839956654588297030782859713363779206695155624023804278264554280840701900119111426071425364278967912863300273007691246776716867543668772909526963478553289465881279864009976281785676658456327556049053410058650844437079806408807249345164038883940980018938760455440973928558054595869412430724014631414905558636746029298053927133652074411941047196181155728934076961850710562427660566390620914847718579988784747279099128004803716119249555315861135338734445966265300100996204614007475027179360610332222707517574937912490745365964535828822011967625968859134404121720972694320854628317240869943219600328674535302279648884941040255667708461073385645214072428409386937976069828790621745062990324456019897641588906026937002620098416692106725838026020084702843399449520509482408460945829755961676049730225369795244477425724523944102288957646661175655581763779993046028754726485596158045604723967909864434568103217638731012157383229922002311969820716097440969218075450217653422276516748185591459605159912189959657065626920752708237414182551071129114887940763509363835687909263748952514745566815669419140748392268032943323178872016384936735893570527356306685447731889067645260617565778056138196959240759314982452639892340988950971077433148856187197589660455892874741459474165655317915557269036007360515027252802791945108038485622350825335700684439913541972229407193655644472105211284759541937355096406479207709678870023735359641109476198458793669324141143582069928087737783985217367817278193639020150509404416323023068214075383388606590582215270993078321137318890040718902555252305286315684579778708888556552856688917493631627652361262073404843654389802036313487288989484668061748990841193361318010727092944236013032816428732023336052139043616798421534206431009161743196810790871546104652524780506287637470562466823000203772975709682737531721853527129692429023935112888741575246416510352252330085401752924831847241770493067200101852373710767602223544063591215577321124398635135776540103684992924450757532629481530301149643030577297253234358453432994991574563034721341705448960669154562521242260464537075589579232795910082179861131264563945798044368548565948590321175812892271923432066491093197484158164422874714995289364652617530583009448918247491956435124095064380935138569022394548043302447295817614719859417376611538787798439641416288254143157281890969085492468195618726967077419205828233035228091919993796485834203280067285688550682013613500336376523185805330445563278656546523532491261840394645743822211123876280237536054978348153750330986868230068274223884427980001755744161918170362272825657542194432228869527758649604679981082045942329221824541739323507731564144913397900153862201374140103471065778083051937289519462702193043458093429903416458345784288874922678316520737898976515264417355127575568206266081541811139887135803905343067160883054705979897288020215588102358263176569813753758941649814316593660459977588608356232530107906189871773878601815969173044908303853189803521242875281534529678020899059807871980242880443463977218574171594594792192682509878782432092745781653131304796672379165865977761647327928206659092919072204777057601755519408125420436567904984954057555945847984703520063689917183376132568737186475525832187318925242468826769826274068572358313817510834889193799810451550875381112751116998117974011014937708681771887256363961382272705019850837441570149966043895033356965799970884308958109297598367456032485196214912098572941170930953976472357378458346956643144706827270852335172761651987292663899514768470367155996962977674346232321687779469132811934172766758434582476996715765696760102901694063104105096406088826625657080981017580988726423152502713580269248196343755785723592519800986321193580734913071670137863887680107862128536801691984360726016996297252687583294996134658743440325324132012947927378962940823446577081954701130191593380701859613782640448593688972240385256728346247941097339368206668925883143486541754491603625143602219367563812526260074544123892386267271870785064024020488145236690069891193437822222148598947817203174099409559538540006233417323535565041368210402875149131202980801704584715226397140294809708001779047453623274580672465416569795120570238846083928544024674123217720918435411624709999968762815252849893326959018903390271017899046630516248447892239361430820488173493299289269249587379502316331886585537439633002500695316942077042872827673991937271630761166005701495209347414169529411095870543301466617819307202539773217054911389911175578856023888515583768514395963418974378606623700813966078838274339653270833534153728837442056417650272825063713298280222856851540649524163767706079917752012463226173778563955466013121851730237905899590343932215073795230170133684194948398684563018385860081394442468786766202674922807138005457554674276321003824882546205009096935834173301806241490760488132642927122885541855000901983280498644307858543851450071670306694978188106629361893403832697117973296237395694125456039915009254146240131582885670918376258869932926417064053014566671452684383106238518303377694571872475877708242924149073759031928339401658625616501746233056705667296684996736834038196672468460507078260781562712286139262277115785796592495619996037680758301984424495822810928757568248933299363913287260029960254703322921114705081251077519567582848954902974495382234147913702475931914421596735582777378563621652438958451927884560124811208305238939834105466871537842321198148478227030761324032822619357111560259838576656859784360489090352366225070708224605745270986494250278587274618453557480507677177407919694298821369352586167138274823748078960266426711742767290033713362214532191535465154150070183964566073962530981097930825242433271232339434809915328570798996681500252189478876013212612117102364517436701308254294178079557794996795122000451960825604235613619637818453721832157929143739857289565557163282431765205006900242208538938082609524697486355466261352951149604067282505017452500296931224277896320912287910672815182780613958499435653729534516115525910222184538782099806433351848587499090548567163332128074754472500917923849646785731153282019510068307416080584330590645959376339816415830593461410622631837668962628628894010139670370136449520677634281284630614190101079787662647192747206366123984270640944367335613594902919179886984846839514020181580022136475034524865057807386891665917336556008074361951463766813658175945164190724194603959706497386888153301836928833496213660628880243406033893089070364225553347020814025409916888433984610858643804373343214098320154668572701994190296612418850659602757991154431402340043642885129565871248819189258487370860007038471630428158346105505993168466030408935864397160527813709539238826047568058164174606915293652663901085261381961560970217547288440149194638155526227840177155272412359900903968504987242130813987404948669570767654178222427643641923434633360103711004788780915199864610212340477061891199321826639911650477999101195021075341660645150717923417200083984185374650800146075502667353644933562874392598108196720733235361285156806338481137771051218018628629645245647023847936572183163214343548567256081745399692259909785551873409747387839496573983740341804159712170243368760079606739427780182145803708926847391486873980606007572794812381710888203674173891311639196937344067307023303987122220344548734277626009666147975179987191152451638262773004717061881915244447107577414793733180986133082031239660165443369903510747605857380919875624386137126275259815045070475295577348120229307239874075937252251968919433123761355498975961138899066758875373241807237039313944193466979617625231635837466868478117502879115288977374639003320819101594919951635177920256931090362562195558377584247857770913819186249943759893412411195666141052345925823213688052482927505735992105365444292274684146544248336088194853728826356892163263860168316063877674902204602705598844098419000746366760282276205971417799930033279161506209584527387546534792119005869069729777192409650580837953325829516186803129481312950847985675142614151920526884569287778889702101347540160378033193002100597435617548342045614509907787036636430748539513736330491007186712855977589250690255920600540663307010971573625355363810177705178169244191984705071857470731783835045081834812517185897439366401513164327443768589109681563178995263404965344053803491225926715185246526100989020368172243101881241648246985639479061330337373422247492554618516873230581143089472705607321630447053843483862517785501618179037164770494440579578981973953963080241318331138899536267055825211953842915410065620416806064625656933340124307630227389022614292637911224321346971291956760286861987446301422153876954283377366068086257217897374388834025429257567431322380416441624887157747232105507096719661987210171813236570725723624173577853080439536952346719149268799019065723426608163227855446389527873874652500984475750239237987112054948907473389562348509147888759902571370824358014981236227384200058042025853249832394253431631515275992572848599229176085650027170666245078634896524603792397264830121186483539257357833534655806250577386123398985103734602676650044694938507943760942512556393434733181513523083824977247386441378304419505749000150960452092745694846269751763128367934528237464353838718660973770304065825018635891236598668275666808168315408087827902581645600052773962422203129764951133846724059992608819668221767647870533820669061980478591495405609386830364086466611849443313984847949150379843166950271825631756997481835517332914346456028522403824848194322384015801323731080882011252156980224139098819004240437641525591303611893983652511334708643452645843133206964598348640944405028764923722221429156912699630109948335211269232098735819776278611260415412790305142473804009034939870186055420554995811939945692008563574018762258404755167713275159734895974886772362699591385922795276092170030386153055055236974618423622674465158433556918450843772459544284367232321089947364623632901794408209811300568349186217492848296820548831681528240516637915491179489869141103664886636127501917160963119430311262559603516321167393626736536717834448521392529973713831326103585903685962208990559220593089633013362347356968178573878125876644488099572728448347696350821455303080421192109022867577064158518108205243613600624052332941628379489988511479569407606029818567431220457159346915196340648492938146108056278122126298682174910696365481949861657368431376490644462953677669548756278556278229048963116555041248734736053422044980403210296525982738267741177719542753794354126359142817706880616309410046578430069196258867335068990138119138589660858965745042413651487161283626317909127446780223345458540889221460119417210632277247657928714733574226154822049911840286725093869902524267310299059389425662025160274921001706675429588156850363880976057597513850781923749196590547830450475643355009901592233139409733244245845221240526773766531833750254033017196443341861900370778266919932020904997537719358915777841736095392845615241099370456030442317989187070060590239600753972512509810522768134171505745136369876428594335602976012888334175413044530485497861010507724761179465903428373985062003052064882293689453400222704296936885836058872419476794539523941578602913612472248026112438036491834809126046970760829370939033850196971421065334876409027701408992132818010500842418385010028214155283082828912721881131386812339208643760495437410440573099323998358147029416165736896863612310964237037967799370499651177503086975797533821810382212652974863330437363191557926903075925857464659444160493448331711079230743267160367162726608376836954106872864898092393632378971262042338790323994700931558758530758726113248130459137820411173929798253056203516536507410080936711039462555086127720457402843256549066868947790583712471443912934401863510058513178030880993062240844167563286461027235957322543387939512098294440465000607400199577179931226555610815490980356513368363724683773769256957881043536255095429276813874837878487866814147471560303979987075031675474841206660088681404109124668123168046906516860241841346249142215667770451834439806114207446368616435818261777505983333137354816646989513036045346495595409947629950503874071669898637584068150140435798643873247078663753331697495365495542052349776173642329153324749492750589793659372726868275721426802874504632506433262171335207057969317697357924326775641021903304488181672496157135896595833764619801515527505629261167091740216049356996272786595495065458515733649701195044880486903512786574853727190681046098948323256064581193668474662440800018664583507151298007729991592615042656167996147086321526515803574398757339577665159926771105438821469562837498011405129423255083072512004230567869174034398203341658489982614615270684768223952499973933667414882894647902470498572539203120407896970251983303242586777158250769605353675126651330170384506340184662195491358555946061089588590559887430977342353184435349883221506644951897168512130522764224493748914869725573188768524619533876993926698001466292725813757439087945239574138804772281908467527059040312111968275134801553070312500449588475426117837601606254154931119139183352157009677186051711379558584327270053429293468455219488706159070452598952790255755171202637652163585955067974199728632075911990341211748241691453796267788600965113010079613920905576290313466646231969223802310479497595452560847912435256502081363709934625019431211603868326988543315205649080137481540051127802074562747165883626687340543857081143575585250985552766255238383057194372892593565311301997912276518251917011348502878680571876710737379538814577457092756931264354028056425264640407789444662929975045695840547366388729258399275530354629232157335911970145368849060253482850897553978065826076713172511906740052503015580093090017004800625521445783750309658678674177204272641806072436009542783898212377857019378538816529142347789205131097821843580040599768150836836238021286005889566603473379973623108960032664388579454544666641382277753440909358189288723102995377280102969517561338960410507148686219131139505232489315299746384524467366548472893620297978115838888404352192596464633152565269106145851919157770465487546104958411895012695131305657899522149923356428272320385854155104317960992190283375994210415236362349384749735115632982041409739059913233065487659178645717360702485403099847062651933478737743853629753300437480911944024045703012115610411643810816911760927688074747701862091526486433509094223935635199154437508699636547465053640327520691972749457191067338640247040069079551356619556120901503252973341073454160894951424744766857446440143889889728091841002170409160655348328031449524472308214219207857673392555806356239946064183347194085268275618774579251339072451819516617044023357691737636157111812244812099830122952746098891032956018544338933645144531477986877408226099052226530655933753419644799221957486273305583678452813402797998053862327026403188442150212622008935759074238112548924501257701624197590541161618580709582458982046937972126643844980327157526260821749583067804729238462892373563144371424758454411104872635909583214133604181746799190252001185156701119132986225353645187972865737527837179413642550520813413785678105620104911663639497991225883720341441662748405006777835832487576602490956737527783963017496422183200487802176001327362565214759196700049365328047219517348893141630710105130159557961971655339182206414171046445656601732068085585570500611243416615409988625407754348749482552919602470614077638095577276868450850019153051752652432712094719433058140669144647341473097563777478369753039785826954538740355745250789003852011507830827183093296532676017815977242048381451319712859957263866354706184201822026860040953192894689416434853883366520800440027060635054895119088174778425628698239897549749637850694528239642396213455897582795789445837147620561046554251556532248905219259003977808423119408461777415957281932576223426611336883002737485309581381611400816048041221448901568854729287138392095761365698462763457609102607302676652669042395808551129533543904326758046661901240810126993846962786017766693413517015099958697718067016807067882168208592719391151508482969428889803777228274820120698654317725192863263265526446339958230620862579033347438946648933551734873154242100291185487190993140510963170121805480247521016567244543227954784729890617381839974806806434828859703001706858065989215371614640967777836739867628183375713223026886304580724181556920497364812162743605738436786439136151226514397369538298519507131618807344576207360779838644390601886823851706961348736728462221414415066660270270438539946448311391265526981583288181108930536655075390930065341301392916374331175098960270890206714224090272912858764547892631712115307721572709425649871613268799541124211645058093702658873543679083885677585400947703975560069206033416944553054274288511825571014257144931912758349060673520225282243544713427415742145154632964262000053972441995463398698355776170772748050498110520916493954189407334615679835409654229967406427096728876300304657321033278232803137437463258866546072716344127473292450351745700736798676785368217760370909986995470109510163905803668469997073887963686240634386107285747142518814846051581884198889262095644893874944898686956869546860528839283901051843993814980662196691738296616730752959835085378605923651279950729998991335822775951925913827842566296196442772632894403912381098322430238658393604870319057874171368392272326100876314195892228927060591405434250496447109862246528614525096081744811850973526577045119747065036268022115877376993377683671905374088248624991995606424029372331077329641053813706777668175701690949286204868690172617255228506817446850017244545650196155777490306366833582407057871794665317834332574842112143307515605179465176191224709066670888005975904700085006958644284530580481713395932780689284292728545382325648007240615797712802693278979170342668586527532095720471559185903203811554507658234334841433062273532881976371492490032221436978165917484770961171668906326334003221618808848435617003670028640086602447976888022556619880744354912646535419181302237566301125561460671962589784743383752663467514308563207977589538210744724953367164815195783599534994179737498914035578544784163840740228864036694465181022503697379870375877750933627411858294055743583492849624196871985017409336910019722576027189065342201281882581735086614216313912345230995620101057056371733600890925839842878808794068888291545907309572898451635374783846864386543632278549913457518258117676434456681609339174062175984045593704532458445859866659580602941239116341785116459266031394612020522164234449218803505529969108204889813804045615836651335856964257439102504716283873274841453099939587772903868120066987575370619899561797349245551434787947608627415260071794962810691178050664379144506390164477959625366469515529289171621870156872514121418675973564111250340380720596671738449736773100512199033205102404439597132888847548539482070050332619821753625550747664440967534006578647505007088960008008012721388430001337289583361490292234626177039127768434562266005786646682837490019748072734042516337258837079792276397201736299976011411134111991946288409123125853534323486350077594094995400555212469188892752304028016495620623255602073381468005144013259373519996986786779217954002602255698047258524038378037646988133962437303814447132112433712387714613561788274095120811578681106871152917037331827612901759653427568693769420044233501152643113660392110463456488152235836174391729424670629590992827884846982980168654082792031900886575222529267242334311746196859680003482708977884482946648662146128085349249703198028069755663656611000719325650102026340810229849753367379311711657727612952200875408168449942135368636626972663395614175786321841903839016153517599214111881219994803327958082677458208159484158369065858674991717909458021989619634502626295111725163461016386311757927824431184492153650562289762161956997105237482410831762629652822619237086224561861271465912391632311026769435253149526167516033226467853726836545906289357168769794493280457133850104791139184143985019189866325818113991031607265358691040078486380627050024771716216353493951759063575939538803656331950936465297890677824689091513852240142408848894155342614301618743459824891334056951070772440838893259458831212431333698508047824360169669494467885397657733134719611295444202144874206001780055546655146283355270756174956967426016991553729509081735847271025190647845197002231183728446301447906610122874354581497659699131459277106553599013395249063624612283986909229611328957825648436383400936421875925947509758114768217021532076136007129776747946995748162418616321451926599735833846642810215155901678687408798853191904291037935054652085775547221387417717066426179975924662438273165780771812742659713949278164041358412152184423146231978946543251700880740108925019210032349941766383573022006558180347687168658416682931723319595847665003202354166877660336352423920788334178801305013460314888863172380600519689733110457439560454478538529552104968452702979890625639107182079070725720204739551435960433760013572045544358928986378475268298511597170960644463397650993551770243629926710549665350121549498785185169513622166049368572018262264366241907272112760031067508095455861207624144603604447384530592989722647231734323945989799227031216169090665607355822558901711055356250519978149207327114562263758630153263397693946560211972284097781419741973291498404300026406560940170439882039821932803721028709637694134798225710101220743312125496009297904395044094921123428675593317208047370592426490604368761629014291795528108001515514995333514419847512536854247908932426972954286150769528929644897155632823089739144612634341277821710867949000555997280058993945124650895219932035673030704836857620775817364311457550039815066520497839820246184795559953014977324566163752790525012423145129235414991798071263981651306461183774579415534588484572159229176321899566494830225567654387877882914026031284093299776272655823744125724929688140651075686813836417305265243829660905634944180777747226862422496104716710975054484145223431931633324910902299849943608531775480471933934454515373343086938751681540584916988984278129196174663254382922406834404907029959533678367402808402983264100085177211525707174771977905981704370027796100207308442792296554084673761205566369988040615805340427281520069754974963998383174797858590101407687123535279543180902356052335082619387222784800842254300141329350461251458548265807014111550335918580376297291563080371221107403573749465083809987942328503829546558450962806917820027725768101265242358803412212987840409992158452952843277552735876033497102338883075617410954561016794597494953498544147307477601135569729877019051461487501608968147336923672243551645983671635357119122240876830387272927790012718608681841723087780065042378873195448668810751538764299404128962633926811333737410822897945999606500192916242383165534105334732100396140610304135973360039295799122104405446956748979396444859795281385259175553409625837905012158197263638639489942702772000925408349175035544832526025987896366996209950445649750068300523299560711191186808091585069400385512823669211929504089393970282156743664966703702875312797786421297768049939716170060839844395409817999175587344360060474233561527141111405524185768970495020095252695701702637995069472462703406121258933296611073427867997261635937041281736989798720236025591737328356906407500469297578344850854525080139133711385021328096181146361863948535197373517634698853575247716895780805403601208056950651733638567319139277616255105750340646744602224306622689580410981891955292723600676686353842299142378482522361488647333085450621647123141964204542183687775479584112197381906451481693497387991695806432486082097421204817824607054697829704445105165917116283051178283061349776618916802759053357725764947032808976180089083850703430084429996736032461446107686484529232294870978189556876622729223618020229779134213898786922560187352461964816335115772813275805191477406048782620449302673336256382680421360338334331629379000083678813672430018285008174704743992805822673641170766347234214799654467758890383304276913142074418983288463982175363186734924218602802215699162566987037967904634537788341186949350768843346335570388763471329515515449118282639010553168060438093799121952043834056217579770717379319779368172790114890125186379084316270178967509137702289793244092134132952770376948761518576203128301538004952207075102325668682457939758144881662271503090013597220503890365859590799260706574689849237543319731758420002289792468234758516362297955562983590979255474069735018711997966165396870163980582903485824976161847730448834763330495699416307876710968547348500348930391576139051534549704795572408521989810626789209294605918742378590307444085944980167954743735816548776013267551179778390376056064111155385460806604238740034232864861422591428583764381407734409148603797947311468494039581472970976192196369374677315603391934858290621372106482754357917489421897137380251764803653356741731011279580978843723094170747685312995285836871755490548875413450015716725922875525189656277008333149027306701846261033331031652377803933757124749687079292885465586540965935463911414795007920068182580409553384046327986989614093948350623455902675892601325117157944526244457273297000387094855437266501533678106860038715357164961429735797284843336007209900257010991300083632357403425495866759378369532523805326134350477109054312064352600315636665421753876981169773396504728779217981289806651438629421042180144714718340705068692151331917135443458998371994286572693690502814698616154177640212187584262922948299389733760454671392057943773824739971354161176622657107318765268241270978721200073493259763387336149177834499843969268800848560139866517804786900472810873342505477598655052935947791267935771834550213757206939260356460868138111167745678293637557453162198226283445702971804733642418987011699289617300004417058471885920365241715433750800003121490597318725477598800320567477971228657575314441924313606686604686180607747867144825302963784133861752887502920785671849240420627406904215447958352370281848360835703600672925216356335398814578171100853631969000555827109465887010660242423168216112071193434592119442333217987265468054549823459446700488270053908027727869720192246040610661946547202158029197807979840119949748389111853205223721595409635601999180653154085652691874389403756383514507060495847877961330736903031526515644075966405033480833919145468946288938367575232825930954524033315187025611214391266786368848435402300808539048128029621718371770673559563575380319185962045308363927147966491599286285678093962843459301048876828055516114043781330584549220521005350576737746867059990630719776284696199657966053592993522845843158945281577633283627268449740994471321023689570428489984423670863553827386976210020144581391671915377693330837872187605938423448686335408664959061684007646372970864328300299625382913204174269500647928495075123486275145845572301718320248523622088120734416072353076154652437394247385626226727365331580776616407489653845111533719456276761431268469959003233580516021898229721582276977845763391032552377043837295999709151310137826418632355555670750954637520144100960331349917360652668009259651014042865232529539994053398502834211393479108554141745076487750232017131669831694040764225782177064236779518149541696520814128160781029406335524380100897993470320473438464346886313653293978071004368160159290041563019002507971735019280868465758041561302681804512181709088190281184099160394982418394110591588853642481632918759955020446453517497506153139051560065069942516047080758474414301226747503607378724987148843041061437734910745092156633238417410973785996162296434562970629910139015258175633855512212876258561489904020870633667943091306992079992047606698781502617186051614333870744248864006362343712148552838127040358982469365516268394484246791728555630938044845450003806528838430336015129414692491556710903951011216478315850122597445003110731246165980848835433333276907289276018098350966712097860386825871503075449394781100932820239478922165759597416318870277740447140869485668913440732423701693260305237395577955999332641188992239545893334831150053927034397215758783594436042422673735713853924393308161614617952055724299014888743082125267009365345899937370404761060978031569221456937604602837652615657627501851699367799443957776809013154197557988226120625980733052780217237313892048605394255282148134917816810194372149636242171484344999896073165927402896329497234094573251541310586101703024203272648091564977717102673115857160202925709993650001671782511786775546613331565515545542551039645345250861664612681306456264606404203619702226430172096242111790081129951463778236212912313000588599499577067961823209823620281647138906324170139093180299328827310152912501444246866281003883494381390744964278643681721408891230839493652188340989038625239347431148975472883665044334294718740383628870238871710319058463210605933934643164324466392221221691203648337038598628971713498705967590359972388065234721308961426161900295204050995520817473640741538809885758770225035829703258387983918942681240317560475868100221546475624634152848299057781259243819476272014212403139166432296671061274742239691087827450274573899823398345673180207790635389163398656102808015147071761880301726700122556180860956749602649826348500439230371604921912377111382728959469857462078332202427410520461844718247076715395675666767983317517483797283778119577017828026962896505725724985497312269711789353518448241088293805600854689439886068141190963979774557466473495798268247878680478188503557635785514803679541536467126734051383342590016255556965684282194141012961486555617454792436689537793979752876289463288686520603636041287235311235320807481208137796411609913447601485608075086041588012851706873382412564231151327960661129931890028750450947335379930138060961099229513396055122697260216505396813293466099447397976478558836573990420131586068025484405829497800130047696159316976944906384257766066885005606365540862227141900754534211359012502817778178789896980898316992071248281709599507472957235948384312821684880155292996664789624554027152675986495040000935709078024595719986591558235300612299677146133930737717450643301578524497238167992981763792810877557740820477600264414058540538712114531249175354022524322713490201731713237633095326630339087295109488459730457802114285491878815107572985325261669166785852675176941902895449121799440755243784979786982030248061982850497448955791191952567119100523610023619923269599555270398307380418699512905058938337777838486673561497865894250828375786870323131375148740560198364802162769082135180015583378286010648066403601548898731120951144132157936573567184863747183188905394046822306900570784057554643044594170581972619018415911597635731408708930730537757136910938560991489458412954337193945106905262236598874016727157078431580752283108095254323797904155964283344933741819314313747877782468939331262638087910795861123097592450748487144315263832968212064528890995389480314524971908042732038598191481552160973820974161658690359548001223299438874702144875788101390292235967279360927686375167899897919126460701180644898622387760597058797964588110551949458229044094664141720504176849523543640583749081811447673063072660459401640089750795181291548311919476528731454124717271331127984941867199708762191323245571476396547373237588291660407278945619523298050716127751743692176581080231727367881631743993160099689832886135440085082062426648051383238319729890375202652485238055968542278975531205836499895549467625455422768727898936699280662173868920163625586799968644842896853993892243800468163476769176053087398235189619322670056446824256768739264301954945425414646141995128069712868890156502681694119632669006072628546839568969960915083852137155198103311603199302147974185553439665613559682859317806970548811481396557790085823053124245273677966875444934318235076472450679533161888329577888811908272490365671396527166935355006545668118371462140128927519260819009205568428106102264862575770110374750102828042030681631885417896532533615409046336013188839787054851987340626398997967026723362365616523851240987305185565867624530493364541174490853496619631626008614740731200263660391296396977972964509026611763552470141409834282919801021548159772208184717335666833133984077484642444137070585411460943827709999736373900357641905146678242592580531073701394291706710450767864931276252356700289174465915386814194780851584209765388245977747384097507692420216160549687648804569835772294005763165517374075981487160076442132910237955385915102659669848798396176254543315455888764919339092700228062499453028971316317463906764662392102917166994079812527604070982109775578454887928209557316036218726906560046339387485151530728955658869847635913262156354576046208402266901506131512379266090815548663616137072247622022270960853301361555567038714121143769022089555680586960958596620350560422562021684091439907831931633612833403657390977049909047578416547797724199115709094259603431580927788562920328204084173010807942250595719722155431247543357711433987972163878855422693511846033481152666482182578901002567793392669530184901309887319845739425351676335864296142777683129564361630047678739375131705685749349153555098756593771987938968494495942529273107161921592274837017382783311622551048431757047437133094797421720357372429970254766048104403181908155038006626133214071668672089628943973320718882279348640460975493336067340356061061544244638473056875569252618213598683503544252700650431686917302622331949086034380271490047778384309061955620777378469025138866329862527064599095875682746438683138479054846401824445656638279342767853274047117878580863885338204782851330427496154535584274922959489442537589723471630451294115607690446144042169551535835801670596891030878257036721520502676956123721574365725903972909035180952337569686497793125336968074224051463724343299491164289306282766736707226962438544985459112252621358259536371668948124628653572935635334687221099748854866102894076341013892818863613482111439049466635319661671470716271313883079130970112359997908268732439069954137438892357092822409765485377187377326133711086093078627423707253342587314517257885945492829038657842831113070997939562085539935090594940186444866060904755256538794382199613381505637332390739999365259125752900862760436471758300670797963621041798810430684206995731112457110092568053184408523413724635852384650771839670532647423038679125196097047052658545676581441387235332464920408154655523654409725306292250323830894524672043046887915836909598830797790260060156504299807688132409551774270195222283824022266037824160798384112874365130723289804843194211337974442775185760696966224380018097236217121405444710662323815829842585471637293057166588582052052482576397568160628892698533354421053587870276077089729504275563439321478076046126879209163530958536675020918670844836178352153388905443121867605814904928598239909337298839024754268523320000898344562099060453004261739917627426933204271852375822796424625978818176703876109820735099203095073791109848349823058885908882094324796226091925577466861772121736994026249013135892999116059909910590385277540793276332477852528346870150664152775407870251375029736739359278872028494001971315266530947565428991549769944855855126674234049991895169072196678661232859566467107564748594567487334619455017852813647769664425620628685641299419018009880903698083494229003834152851456776669827954078251282180298212986028403716762195249148512301738939995363299732652706728759717488030622450056166942903396765495106650210516989848304033098942118581491416640405619857555839804762940106751312041109334328044222562497180468867891491361279924469037519461393614305666695579219248245561606294792648411689821841213258681573437830054181370449956245114422762175515733774673179315020363786091343301194192019155748064354927520277558046456711611254644650109357214071713816324441970568566897095982162372524058853214016326162634130068036896507475110055915860619908018633348860591825913111480199928214279230521075820951994640288919604568906586931130507451118355851147048752271964614069025837842042272850639004657961211069685554033276584624168844476789705093750355007334038262407488851522161813124650881637111913900287531347015713521256661948969309915647673910068546551629307995547225607196616233677295658224825030870085307176507735098715067178320218956991974446296128351416858637966626784697326696657087179197064859440819229659597204256475133997534348059560367428558251446441508438586729853814480018020059456976855508460204315798109517472356116735702671458040276358316679855858720522309660883049116549784815706730164135794465783999912376066400602475329825043877695214909256205123018578090603380486090985808170196502635580958542124137156253741746370729230503109808655104550488058950237289829725428244516892183950916355882560783822674873034367336110874256564862620547835730413220318191938478881977519727557154132497326606644694547725664667453369201781984028969617438403273632410600328426853465112037440462934605618544786803779059254480924147603488036545237963320302373274263085966191443410317901176214689877868720252228567945254944702608044581700907820368398581377636717653192093747860215139747285814288377169251621831693671315101337151892583995489555478599566738829800958723753047295847767681925611054681050043965629156210394801384303670909257461981988525736539122362246542067110546868279028954343538205029975005154207382280101120106306118679580762954028122129781889021806103846887461973837308370818533763054368822901413274144489218708233376896097044171902025974407665713312190362435189686398543044240242064302129199480488503735874369634383051326195813567664949013380249975182801971907950514509931783195061755501152212997409986836357455696921785470723417488233380238078108535000401657602052150800487292245114100633323282791651064786852652652495956504859074031265502734213602171422906409528744960155566615799811172433771173553775747167116905828340836024622725741159484087390535805487485861818925714152504972856547493412806024371170366227458238758400196390098913996424758926592831591531254587205325737298459668636120194759847105669913895146749701735894873272220596149185842043333225999873072879695543176420403581696626966265562556734738461840255220403874378917808055066687492246504260581983595109234287489345425969387916184601824228658523875882099077385613721101155994876867870306222231843492182302128139669737294346588912963077298379309133787406848771663975786530931389059312755216394919520765841159357813769815910512839009515471981037887686186084743588363203809946642533114514107564025479386369860008651360059939585542610310808482328448374118335662755311734596579567027133567995009768687896529383771637714031461580154826626716027016545415520570146771542846499438652614297101969106272878360411927821586649938501539282266318986452079361994860939689965954238625675009430084358863588480820795812690251831205939324987449259954687636719838700641627321846632314468386496338629671561401579271917079528156231717446402404500794582504025862944898050788036830438198214275721871748856259381998937398276039486924425304888291676203714868721989107909629682109722985991094088287131660288248424660623227592244743844852591352721980796293728733945353819387904580245600613536018775489276663196174286361365161453006897456775968705900435183765765555250067355681024183017441924882096978617183214418806840822868704793708688711599722978322155263350073772682435211614284715221767204595324906121876097231623007555718868129698463875063431373891685206359428680760369949222823562140161997122781343127302692089889010364124669195684716253604871095494985280326605040604906576310597167990297766260757549638641402880402366262720155461249084877513570655115266021470553568703632618337830308827671640815698926271583667866501318161851215853701673772156721557131294236414010206352242552505774137300748366391406263669802456672549602158217439414604269193309872096116882228208721553287486577539708910752513252506456353499896391374473675160198600554020333938333105926469834282732242741764975240365846420968025295581608846601920211556537024377580681641619041977368548420747422280159800487335968765215764772565199453755276457431489946429332677654905808325121396253059968251558986198432907083306958375555389046872114101700592340100860055132632692050218706100247413384508730846867298884129712437183576835938922476059895349328957249652570716130639183992175845895849888143616494770407340317306087682851900668803673074089135865636220691770004158135977735889819975361693510667039248690488129475901955347228268464738622240959567142732824734053603155080980134138406914320332631666278312735602671506912233278039190972722310582187430157168115632075603534449209414523051742629869984924541861085143387929057633599574143353828186868053623980866544514636460505821673302323128465937380005884165361095054119925326360138447686518827537695396575229176093218681535872231637081535928448267340134850009730970311026709903813524802043014728591055165648443313086044690136875119421509792867036441031337536154591943077029679579739022941825529241118480619167206357983023620586577332497110726169055429946456594895191168950272740269902969620951171075168789205898943754113959760218126049350948917467071229387903693048943255662139741234506750056570769358881956251579113267422907074460503044845409536528334277884358719549171967642052261306736775071067657055795302439553981376955279975001962564667142498703225994198954170234041107179333858706072268002557496159335952814690241036917161279086903783392692085787167607214824140743863327776737735667233593534907252596303192194621804320684468404928467603691816797272672828240580365761391300976598881781179616350152040006789740966075369188746519183307101470220002176031340122340163033264458753323471359003424333444954578246545443066052261351515975370676012280285187506756008107254445249118984780900337864626321043429317801488883366405481884893624175018521133890857296077233107880013810685123587035375049025124593966913085162837916968810991213024694613694943513714441473728749700286532889723005905152572065891760317850771173840000751197516843683648875865094871715230698266421031369401784339541937080575825343869998944476323272844623976878313609642708990811515036997234498052332467355702675481027695558561115727186569849936842233725364774204036263176480726670369215249505980172888171960894795844810040634399661663475488680620024792009670628735931580666008492596568744635374779327440220894660970831081152237108320240622419289641281605005460868707682341420023999899345894242242705914535593057907003663638648943399465951404456729365137388300546140754198329384835299251934601639690064709748082546878281028306237932824911766901303856908056056760937820733769714271635823859607636979760149583378455853859946584974155758958030369631369644040564522189020006415974469088831684070427777164218745805094854008727490841483493936551788592299317625966935288376665746905848601284529715108548996965668275731159528069963717445634825895378003949064703469209152390465488578802423881898132729769127565121373412380995673566982405376132214939895403935753480134152950617482212419049418352552188540261067747441066181912759917227021376962870487904099733735389640772109013790272171627938814440465491807479050022852150250195817617241038845512113377067425756862600889931134388603988598095847890587610882394709402743516751771035287007630820319505105997535988390067728104246743864827653234845025366956255120214231694749821148728440935350673023432161699094029760092381893915093743124384099286205123629536804384868146280900886483344600057629606815981118316681358091381569454377675270802328567766256792887290943922339258639277657178694363199312640787314777066297976303361617976404365764762448279069191661706877474800055996076337151813134883985271562305128129682800555303594859632636166167633138210539403752133182002449268586224535260280267014904972226403628662426233590351077116935230993961066223334093925581593725930677733616044538102863822103498522845255917348817323513570461846814123163334430303546885083031055667884152212898733207381334261497261819052763985667512995081713859151151492020821337055024484711850912644150586858004518619686822284679310399354538914449370712981334133010742490426039885195023411843240305591926283379802229601963327768669675449712125874408647917995497330888151938439567592531636749471192423504776746798290887716839787491036401552202368514712243343152857785733184203436689154972395892692092363676266181071050214981849740925767412324100467249686166518481373464562366855431022254061686323038152417443257938091308855682228294725603377227566505233126653049475284138332721150156230467022468796961336942982021017264521125677262623504834246784450772784466131699335973744656686883857087047918323628591041191908426009026931484205387358630152862796542948367683711161853954184913025564796498268525157168914017709475982838045975029452211306410531335344482066193610789817385217113524730137436404701687796204777195240136768311528116563072202139757602843613104420615541583816151807942900605255626252836447231173056532415541829944226275835806190673777257293231314927692292283359963844640467670915850777651762763809736151401223782677129578925503675498047395315373407758212740205002033659259913270148297033211851549161472008045799213494508161313172240448631075331488453891737073826507086024184052263056368049771203371762989359560971503120027440549399257379367062889485365647645504299846703268811611270747337344409483956631105718021057298805805256299051054887563843075494337541597338270842845793512762467033534259791214925247209280681358752707469967468756773829521934797895568295001423531646090674463056100845780155231053390590843665715299469994961048187729943041993567361774002953041315281864213865931321409970581169283920960862230532789345737926749694525062848583321427993804930072748728902941417378942895590254958835443882857202609616072698514431958064513501645386916910133328191081177439470662587576401670422149160576186974787549641446005884080292359215250612750793743273994532931353301812661827928448925338658453844275180850911983293796293741342291592366108575229862911409398656672110654822471442670308846277179394122126215688058575634823061492704849018418326415143757256605600962588024521909980807147753393740472500419447501024368569315497127688129984519273643776229870116593707079452789363647383102146124364658358305299631519477488459475967899215063338086216155060160975522999718906101368598705772332317890109289712724356522187973607491286963206082072492432256901871819350481070739268494028371900475129202378230145842926648103615871014416222296088848347201674871136845517378573982120580345354485818154183914280724399469334750572761050292648657841851590685107510564870427693562869932550957321624825711708842938996721315921397063273060387562564447293546266568075080351359736516415793098054179689121463298456797609724383861383229731877537476478725321198426706598999541730654006280380425725729494447705751136661969125363086881087215682249928462690108584082476645667371502796277748770753305210815545959207684256952930875198472361599320991346275958362391285894999421608935710384048502934920162751695904889782370509122929006847288292569442496092954500933400266429462362075014192505525668151619387426539535196426402154832140020465556973916292034457224554770792752902878557744359458494881673249463426715497017854211936077973765315365074926212823034621117863456341077388259060665943604903040362807428614587580811990481993443834192169383725033384293682721948170279233125404348143196141536466570097483853489983290312425903576835976982151153657256338892480328643763279036373798982885165305514697375174235595929769676961837702052950504444268126782344658733002479656251101334385125012600393008561643822095972453540045088343228895949566196466192644003445953139987255325746063368908482009492885716554402872828684344037051900716280056816102822572770497547762886222872534374446386873099398028050895801009424236746235430866265641868967891207148223969049113452048089909671173286775332218058247685252441207779579765434705269553442694336769634430054037905363511124590830621949070500236201217530719004810207747138390614338592850532974358823692109576088672544944614842717121792696574194345094919959085624129225733306999259215573079568098767752540607236820752829721366273735456938039193074721935647468266243068400075504690510158290293622181057659472722898366714108829846097664822145928926250252563815051573887795806063312600936920119151745154429459298126486599365821558213911107529590093066143587496316067829292065866103326682827880657937284160202870879965911540055781397247443086624696713634662381429757314254759923301634923634768125233076648001401746323125371304881726249938541276461408934584271318407029072906111591101377231390801289683380894476320639656949031494919316958183655738490222547138174445778462058717375834921501207536819427062126065370857645435505093399379052201324341859959336288880895939994524729006203681277508363808921728432467957548236161795449951890968031758466001911320878762487444175443929656679899298086966105224759015889316503025059144906814682335016468660902642002988872110629458636657093667941160877500380849326328676490611623932941936270919755720804660253770136164327256191568067122572134571261568291270644916616563044192872200890483687993096546136100020662078179579797612539467399254733220020444643853534451320686680760813599592233168010797668983274001180223754455886971066328124572971054212277392479907554449203919760551888127036930124434407493275679207090253259142398219168222999605397098788990219929394370406390319001833281622618653398698539383535471226546452723214811386139360911591260723269907918955840003309636504824227449492716020206959582897283460487010374307951796465515629742163028216833631903867156049811357404753279650283628492299205800181450580810959585525760091545857139168168997018998794009938872935417291255002721872948785258795083924042796943229282694097273272617709666061131801916536901496844057745712347099739477553580897203684477650778335564597156450157295902926618304362089407613008541627741759142687246455822014904512526833675453400833047736172249554494448726658357757162764812955269738065529553972916923576101469291262518300279383500498941097387444983761487789103167791477999899426001634284850810708814825153165046589818347122758686309764142743318621840399192609711600447904163614583125182478022427387030578932646126839296289525683443237886245065029167831708720805010688140139576888715220454981774841838315458640678046043634627724568218332963734853585359639318072203187462249184372862873977429087031912384875554535799335572480387805783515644056262513132763521143095660906501860757425596207081682931264538380623641074715916382753060685167569757109221285890179681241115026333680744440543897717724557212142731622759759806755888887164871253320165755853319253034409833088927587915621858852253970824309978573033157633077432176338227386287077017776885040689877835569403328322254176049192935772981510726272483621858559998081155394177109160072454219597129679996157802740136406839128274363678818686959781111503195266689864173703516466105482106422634139734049377689034571347302198422343997216458631585212342179211725474977298216561307821529902303715615358562110987315210130148397679448204773785834360373746541658606350554554250764461654605279154268557578164392349405774297404822658301442256683451490262757372925051057881761960321656453231075549478228055276387275166738232967193461462351689159730716801655118721526391158986889683056146941714727787822736110832545719884736486378970673929906232121544639868156451104475082437265809228849413497419774153951369189169126354463827189210666513334599847305346522066449498525472500971842438941292589051852260984597013842833530123130188128542058016398722727077404720131014330035485750470301473905517509303239455916863895761395603890328932657730636271155399999741636594012690595322172439197087929248685236808202327794516514362420565814205654468697340135716283476398850534161701284663860319180152401788395572210122298319074689880691351991703174652367386519573801789843319154118177411058191543537241094462020214727966930530448977477340012104694100296647947814937635400256988600905921622096890121459321044687224692893249634295928913988020477840446670853701174512480695983374678232549201081084188578845716474816421735360889217364983055820255659816708771920531770778855440163009286441944806200623943302573853904439311599387401363896157232094700790332047103197009567767575152559994249295009654347315597000447338516354213957537112657806474788334582450061505761527532774475589643209692392452433357184408045355523680214537119807830448755149720070192090024056725841009346205419256325994768411126051028705872474935821347931238628260326776451761390025384258457053466855895542386341430992286835511601184234928649925616362603769949719818372916771704962326595277083458538189153147469966918190976221587030623925854878270469917343103664240553806010128666039277723792217372999278825831136706019322032937750089522712800460096592098375290467083991899207886034664992249931400104811052460651358711220613819280388328089718344514983864005663054308945328321038315539518841690072186929573027055360104151288681591642455732861784756994093753990915496349281440418944236450278195957306029005412721276744650155372628569450754078838027773626952916889344931748603624534375690665768189439848702413481842300673761873523520304727899492527772785299579790287250968290987252485517996286795114539664556812742859729671504376795436556275253175299742146554923840938777264873639654523976518843766615300507483177380488614650363867885745119577753295051258736425492096402066673949936326819118854675160211408295730172162751509256552472498165230978364750937573168215440439925622075874827334405998311542404407033421150445058001545646265511949993942659566750752052469847084900692925960469060873644570576242071016689363420292078237282469446613437313309494126946608863040150240216917347975240814966946993827226516878237382443486236076930169833484821107524496522152152628793577762925533121581417371198229140464497245027557109963143587956115171781003080597901034762903915935937586492270108220824201079899879658823362376020199512566223445874697278929208759319922956015040345842024361657471340238680080426579150087849631506838356967167818509720716982071487541579545126399089743350330035532744586672117131141055449572506706639708775238563203100350510490128254258838931829541062447847733508179749426750718882986629036062452804909016677598446663208514249629749382984765069165839237824519609028784347787729811437485301940497306962327953580292752521691843954176199215909786396001072843614011170333898417904453608782173319734242173802133078321843694643369942791631800321633167189467215400417650012819721514748262901637907713111101044634620408203060536952312824897617731923882526735628668505484799584096136287411471480522090735521953769751617493629575786167151617759568297565861169966978962187390784623990995443533569275738522296720181576944397286122556008556135390864208552369279692310639986770881203774380539853295305590002149231571180938813896795052948563332282668403016940784143061913790296150856001338430391809484939269966327950227279765378932445594721812623725877268612260720188053209862399336045256810765761238087710900162918461179660346750670404617670661834364487595081794960293822346974403907661923936878512230647296031107774565683392390638973369834880062852817834657877023204683788654759857293293786575675053236838675475983407044762229499345408915156524229599402463223723345862621840444450399796128940088183067894258766658243815973234373509741929683305688887849002019429681224722741824835310797336983481491676871712164392420945763937720557317696464414383304898856447122857929928100683128844343001674765473752013821574216167051777563450545360365488652188464660187019152606284485334942118090947508773928678895507724855647442297066288598872505807804505510784629879917820906412807268575608059395691115010463890723058081989357989013629653209111317862601976630397236124371025955023510351432109885966775563306770804687858435739324951498869737174609675661545347111929095393604259708502377120286013016327899935154402029250811520081241618806011248811354386190883828361821442529211968642509956354981639489065872887840060036316626685780435633265963073003027689022861829870962064690849960752001498797910839776247031393667120281993981796201655163350400959716156095965085288996685980202361018514927036807704213963839238896931603242532181655187758866207606684698761146595490929096478885872415931504206446236464120775450747397215391792407780028661020734231585279014399937990774308499337282393862323665024782909648197808745739086437879273069650148311545690975586980098327618940954621596075722727848029092400921998107581143489048715704059559922443394574338940323225266531914370844305398645294313967557468675563842771348449386018167933391159926282031434904291294246608967345615267742527459832943493810066438601979119500143737869978253674488588600629355475487742454936088124352618210742668719788678489617149945477504310705180466350805899946225365253804958796055787838051773014410576900375080066686583382722334798469041727779337058547828362920094133232114981017915964452258879540143627360189823964418932616245888846029296407322949798928476617865502882718818308343312722756643012608445929947045333535550734489197171948665837337571890346747701014271100674664228515352588153830896445508199261030847321811600788202263513606133770502536010613457957872427505707777682168702783269694001133197912823299609086310626054661775146447898102415062152927145381075745554834227959445044543003649007905984261238531215008191932766226565545570834754689932620995880719093871492096336586336910605544548303333864477172175385711335213690747771103625792434325542006507263999274551446595643901109037947286768483505773146736485788103751087771326083678265045516403341943659681894316935278475943403482204080336566858126022197167144131557443038533134432139395903196167474195019006402960499849542508444263320613828774149314736186115973669784121599068451453987030761124378250092032696912620319031365374291830528325442254217549791948542220978904961579062050928787898503953998321394554444513200342481394118569817910075949123906447659129399917597824850314300955186753668811071601811968795031662347937522437493918343261398368121872916655080728765373267991650711951035942115036743779420867516816334337949961709532195539117509804310772048335227528711548554462223677151372222104537206675197684185997599404756611669965736260966287781848156065207332660653232044307385252849396147495314264165189446345398223536640924273266282711082942105769169537730220364335688380095458124467377217911923714734583298500864077011205800680647594580618249027570932853175955955458106366495717294594903474239165010193242204755610263535181594635538746780121040594606477275740943843288406244628071857908782364800501626954870438577130621295295434664049692752857234995290104079073021031818567349780888955831824006834758748233176521620690841359483071335997098234146359473995291261735767901900537636368352563675626288947078535492444258909365726384354310429376186470936629500231619532329990774759010323807759934670609284948697230452878727485968560530195742886659407790669993373157182032469593951086580420247999301102219334210078212917807653446582340469509293849949998869953982008160221157642728038134943097750324219042473869733176397851678316188528853007256384505157798941555891405052915585367022107481222187768458625744630598035419169284272558079086308360039435612098450014272227765023632436286417865250451478503008277372645067665804251110676407416662758183770615055079566260680171747314838469254770044305787139999236158305154641666563658592489715354998874503131789751341902229629503482327098793688919152250603637949589041672481631344706428865745042622475842060157189566670060904271270361972978865890554355852563664678477468626577814450837815222195523552205714802346425119368158778162041695451679707258742828392040586125889439243537841189589773701341915882754101925651669814406439756343078285813162503543490300103244516917582751825232492220128401500264960284724098604523291660870769744700220028018350218152166728904326319674385711540879497979603632103305935677668676582890736456583226031636853335993357827027984367216852451213977173074933035724792189424679464425073240871011188668067786459394347250614449666408368887784634406442436103166859353259637689744898073961015647450840937399954129086624844666902944247858476083454348861991353946908659518174195623290312538859090312335495087159155197543685456496884244206109457663731268658091673225300105564358025269524346037769652552595460750299200485357190490318940139414962742991548404338845850899545334593592949738282478006148594246380357403588427999488085941003161767009655469625026020633296614043804535456809110646072270745458838178165409019221631292462525108733662241574255931301375189147253442545673725004668199524220925923267754989473440736148034502614248462281653987338821999386306798661765435353267819740589282062020313570765384360062452554253942255790813872935774588384364430563684692998866610949309409875035479736067299881370230380854494734177764188432122224017558901756789550196019548440352830070666071022230077590085608140916966416745163318692453401245751343757280541447077533274611964408634700354769966164275914227097619742024419415044159949122003717501764847437709717287901186973605776613972778508492224631149290536897672714331605990166855052187233173414948658901606431332211679197069910189501059846331361035664384774865384130804356439944247926949705267782333299698669888744483553836175404950912898402071690772697361956534347171241086062275341482662504904812706177231645051696378142253012042787567691382107600036635694945495520056192600593339365242725377984585225644499774629444915843845274099466740736146230077933347321217477077507283328499669029595213107434390151549054283608054557207759363457208507605559431788097809890427310947725521713115314323071208078427188855218101892889270483079442335801857309974296675929526422799050030096093483377365985044547710903280997642593530022138564323447952633261708729522401771502075199229203296951794101548427005453943396105837433141350612283568371030717682368188770563829005852339267802271416081668243970703091939772974137968133951111768910362855690479314427823475296954876158047309313647318781798649168772676405829792292002667846965619438194805081112775896209355742595296934698624788649305979173411317886943171558473755923371983420048257723499202115732537600253609645205819473345611894833039004825190122583897109937685738927940534781158996514285025577749875979302833290118897201071792525705666166208687148200311110252465133200640550535881105183076567988413166746950972557626965459149729418897933374086077851926087287253232994737460410275441619941612475576327971679478363688777743030326973225173668573812622137861435690066657074643747055712829224204312622837439876065037039911069723561337941234874234157313252594807220695739647775220224764603959094054127903413021384355409161123975364626347626481571365991055325957975071537923855291350653502576491906471414130154834098216022501090610824496291948456245378965817060468564727975376215995390816699328924075137627894509638832468240524149795023374061550823706021086397474800911375400168784248667233447669502790717186362319662899402068475490395445157033730659972435013407607451073120969384737636106125044553561170115344972621665399248623961144652227340537408340801146783180823203676493343063454637622777172072389427393423547581797182765924124477734006738065894594747198833497424777220861465556889519704308050779447934666089421026926795497606744522520476974568475269605891924767293419323342420212741342088172134327979929452950854463747645099889687148939821769906609138817994588568593228362382888026775020781705526128315715439294931698856314910941866890184785390990275467288125022582572094043238998402544975707026484322268811274064793958172844489540689463914750498591807491248703131892922472452704483442724074717166485591523482186175365082989393337338701625892251616140117305957520021079072989803349987235541199648190385517220176542642457675658122521071811936785347152045568311030873998667623837211491682757562502915136193123823603311150006846660760531938672429073968472654744136295922550077731806892184484695708033036189762091136294842009745465179441329767021296615725983207756763880811973128762586013545478026651197904465708333784701421407927988913308478594528392793296319356790149880537680222958727042229734228398969754662171309929938248647759861890537468038824906862419893209505343920775983881467370313965338333689038784629231115348188112541992665617223599186317990169715946225154780218800396143133672213861726266703795855237813359553068616102915134127896949903770392913319255095469184457894583978812231579705296147225100026011037617546281536571910203277424146386616471541710413534718368311196926760440049333066141167581207880265241719014518137184313127234840134680439150496170561621541285057621213161918528654735989795408869387257511406802916625715577169291282448564050919231194862272281275790838009732995188401127854281722053257298094230086323229329895430989753343655179050959652136488329501698892080762783170052191704923795706887422153884310082620025934236344873983750769761024679113985512305726342994629584007501201166681496832522371909620222272306955244184826124329987649820641917748135429081607436987433643453662036122264538919848090643266861751258565885277904772330977488182907155736177717156507250709080973965292718745133266106875716167839619808532947691378052242566739324476468647002538760717606003773180821329759055961201370479721132189010623233191394828331822006129629244574483082870656406523558306179066493276423507352870011027885605278075638985176724025474754671163100021922918806435037531222561694462329700229609344306046747310499478157123798912336522751891753614116928907007340214492236387931894265374246090368812726217239728977104509865978014278825651818936248218286834202911606272716011638635730508443372327703220177330973076901128812063162005461496171805960978377691845827317731726922031640961273512337679997066036997334580873915423040206286895473991509560282905773465277100310370835451722883032713247192286098123315707231203509214863184304238174125311488541221534795165151815982829291178715231350009093109973276794562400895543059080864247334480884282719459916324899795445699269514414823395728570770324118678336443328163558168720730510214182605960105626918318301864427490394442452346722336046592890901619629375103442898304404194986452587559072849139556871298578445285678502820822282476803626156540808149724091518255013968569975189023827706673314079811183714642581359875245061567839620591978031263042000357171843232489219659943413554095661047893781565059754394293585744639003748671477750363451678965569927296776627370957852841037629207569885308723765476248354167252427289203969768204951804459970037793050144399286383761168086672950268770490101447657775013635818153800462372147830362994128541472670038157001679614992091798548749220260023249862260283538689010614409993592833960678664178789431964808175000684909887587849603022931513165167168062626450730948747255303992522505548059446690690534167458146625895575632500560154523885163144120198669374794249972146555760190383802967368769083462320689297645236253553843490579370791306996320744322473033491671241018691346909672423644954447084948222252238563864953164120742103059560114627812073378231789643209073582103451491874978937661029664570608900157095523066489453841566107202063195228282973178304806760811292801691345088366829360144549159574746543564055054525002357786578056430305099227784649173953642711945807834905573046493555530954520691279719500811408692830921290681930743006409035862064285082737775181914240308073003003156553021313989528079162339418318307247287257204577120418139458262817620968939747531834436490963206364355155998116215524254048995849841349220094773537430258306564026175002738806914959644127038398411699742660903351586723710932876767365731255578175136230940759584823175282945420216977848826921942263008422893361730644996012395079204274961855735079325621041489827746041169289076923646458182195793544419337574264662102034807618117441002601317918872264633757670468503448215562006253194697491147423878343530358482496668522571680844690505619855070101898008643486777780078656468864921335225784701178631431707033886741508316390338723971516642449922585383896046077586806724817891674021034311759260834695266780711264422387689902604976698485250345243600488991192789625077045711337057875457189172036249675440145048838579156119877187918133036975566805905396210877804987982019534962777708246617617505324047096688244163907840388630725222467522883836571738092821471038640463038266090445432046498141598740906736372886817340062175189486487043499583662180056277810192069024894944116265392287905378662980915857759879092774930201511941732517600202463469600445885953385489322471005351041967081545613980017856163143319554458402289516403386836366095589691858888949274384163141180637108523695595506624304661972083592411041288928902986883935644017765748682936395999861193350235193389227111390677464456923777643658553037070867818730658688310223394527046314774750871089078058420115353789214489594311850568323389058846499074552113058234976928231809222910298752348235000220949655549828053151404086062959706280804474178318204534890930079018198838471269885251652219549705269364691874991251131522782280147228711661902824827614850747661952987264649504570137170433590185354876856167361595590817363567217927704754695763694482902446948424193846575363672545669985162036903931415345269808433772049722373710793737993538028720937793335486647982281628948047104935002506174572713625558418740067083534120313618184658603032928685788229855646741079556303012510635075668714427423393072454725221258729162769029177792315760966168747356840153993627314007772822089819785476762599057874110910205083668975587281481512658942746353667568619880683743469426869605967103718627257238928798958755351417032923465961731780006306689015396357440092048020637443380943741693677882975400544222169120872993483007844134233530982584705854652418829472783167165704279554978125364971731733832533477313303758544267191658218783204463994330721235838159956760510758743248514684804997477207336711251281171698835274384542488904824935889303757055840582955794186813860899440042617032681313153563869724586670426936895143601467265702661732741979718449456225818593752312215407915952495899502778592913779704474711276574887213844212951261262194631059514795697340227420752496422599017522765571905520686056748671668037755301905040311089237921291045182536101702390753471745428666281886342188613067536078192466319835109245051104999106908568872673366195264870755395921423633006786877077749861940101662595267383596759148648434222295546561027312366317604921375924124530175471620184238010300589450439406523619709311099955816980770983075382540516703568246226530467673600566454671028087698120369192569454303152805268687664530046351850127807844178675928497834743341409097406170996125423631722298399836056025712583057062000910052516590344234288903630771031460195865510301167600059881446045091154532358681697081351486882013816724579004434106190353274157025261076749680251749189450410527117024901424002742019677905845550426498593716857413361768124540673203680601140235972259438878254522917804219465699755676735108457652854623382046790075641701040175471943637733113240808947658736666600870210252060896474157907020045189223159610490100699930681383383010096446663681898984973447051304744073182547518498784021058983694387188014143720772383884216541142719423251628317745460655620819631733977901986660309325951203473735882581924433901595041582646359310365933571604399606864642372499923510607447902515089897432299247757431427088646979874333701467820323090086895498493080211970884122182611074770789619902656061951955535951267725272889848934845192497620690764775412414314357038501523521812907335473014032022477868073615788494315389742337095216949643637230421245907789935084554499988914352663650496377883059101455301667130371117589543826207878662543448144841100489050933068808372778220340434057574863264821097617711112702657944041061291957699165266336564121581366316453341642779761271860947821752469819233386499575105628397062609000149604682846910393959164794785287596491653394401508410565560860761000351192127788830699500016259603311731045903203157917574234228807617608944790458549941574557861436504645825407762749117750524980743963176981147690327472699664608642354821115475355843459777360625664569708490188323624631193093692411068242181205147595398486812098933445983747549226413065386160559943882705232155676624117048465176428561699476991292359247359160969823563189131792560285554485181477559675510502338044348071494022713601559003772502205887669995825645119222262962407671418415872919321372498565828800414173158585794216016503729973613952656864430694160138506663394229241875276028716743944334256118312397883480318774897368379150765059990287458090768517028897150628368427726001369706837141720995070383851134840520870894442392373561515636055003580112332303702327025692393598837267942404914455103238315407536157656342186796759664219501274954820605393900455356680552403162998294693255331626971916356152795295665022654371179266193744966633719605415608147201188722721435126684210089544476855979030996522753233589300551532333351311588749814301282089227179660797617822274236898768405048242497821379326473298825394913770095323217596900419937835075661189867303952873868332249851170613436218611533521525060497483795986235923134215849440884762023835034995322685472400887833706442367788896445640048159880119100317095417092189563584822310657788747157139995091940936229702821322289931305897960535386871947669625234245520419303153844142390426725923115383485005158763070010970522040007410791396842932843291005194335861693030385763393678375525282820246076528095328751271867852071563833861779864916627152332030246128277501417055425397950091129919747674573803446413378279178345466701244863593019628795492646030170438448960173203020211169828568734585397824761990083246964708020481190646472930840919543741075398515816089556722159712387659213192467758746389447348716386422337140250343703363759025204139933873166407005274423256650175909786101079958724267150084267211879712072389953885538183745270930362747495851472944365875022093573079343887936720810158677841836587306982723230749944526723132190079273283253550682006937906364342727856177160549600897622858730119012630351126285532858941694349102312309538566457940176001725798420906988576646701650275457892915197303924940517762022309800022678537856221714369369516532807591672505467871869645348670849753668366598604105614628973988774827713508898745170106443709750256223804524486452108357580286038631381624465283217761682252047457825699555948437258005122561870308431930002231776245757317439201067789046716778160673697707057307244170588761379549446445856561245223499941998342299610856376192533356840441153206519599400953655444666594441378638340472008979409850571534661189226702874872556220434142196725572881613627060939436801891347996166052446582482019474483730697504084719400076814008891200692147023666475983322509781067495392287212729572115766335074281719912041845250393580493890916208662218181124577670930954681201091232503294462082925311106786931824073368323994785915588603295580569573075913323315424927903612121824893016115705375885041554376549148182092514684770906290114003541114944559667303966240046972330432245345493457302931603517569052814534237851942848243541153554742105984419764780397734164843507524886945933247204103608635973831787365689788812292410080141874602526918564344064776019739093589752315392893521192685529297979646671347740229087790328852561706555241666083786843846431778841675555626698566939925650941957149113014363105578315340375894633593040112244668471958508776202715304826476378670738779099955905973067417366653881209521645870242175236385509819575216477511317674425924316899198821001996892571126719640632053768590190869992693834921414787163373086195943156778378863274040080318046757800811468469155898612212653213405702003742097042625876038034150469923506880023108284858450428892565132350294341364314860044506792382648341969391861477792295727713975765898411510434856861194622960217114845305855498016270739938970912155820189681609704663590749270549393775054260778428041415924482350494986093392475557071658603144214730897334511583136828923511794089675332084883751951920672514560132595078433085893388810786232892829928684255352735058293289521944518308344784179204733158522270491382536626361928709066215641368380226347622990222677324510375416433695590536480626362160179905547873206147661630023478938899833361980613355215299539896575025273742791283837296751259495241885686433972510733995259766153592716383965828860716877061452669172579696899908886175914903651632338532249932434340386334307602636675200587671101497106891927983304867274916454641578952276346071455084531298125056490764257764395373577305189893870652858985386712493789146910793883786131874222644877482009930415336283165201159105985439793348799311409639844045658598810907469338814363250796146424377362901810865416799164822213596862602046625401169813272951180436741121905997388475080304774423084066146939125513024964805693445999253117609334175132879964181121875497014620786880078236583379103881932415050821383005383033969635129720237656156655007328862851721797255436121466358490595104832497919476496534019070398877090191397760210430962601634439208815248400110312012526152714241639180252381678969895995488586906075987070717205685606587308697390894634557194257833791364034027923589204246701577616023177744740734344888157112100920071287146812215129947575149876769744641821589090954425663841695538962131358612283827836748635115794550813356546265137384061712525558927334722539424384326535363985235502338051356297582865586172840693380326277693936501950583601425948157864012702770791655881507411371953185336632154818089716094986487583574804805880114595110443412367088439755399734102794319954639669509986798288541271323781875158052315796243585499225551735576196951619386595684392145382872600926095369201149641758688834179858582016289094862875033017399463949049116816650837231474502825256738317478875524855293551832402060902991473154763338265876947426852114802458081450413697084066913072447571263519322517357802569556773915930872856406439975748657203447150224102151186349710022263911979092038677690786380443983339638844778663458866236547996022430578138035798878209761724344432218380428232032292272863842463302701700471089936627104334860323409785188018030988576372776149190513839421315350011593545466706133693861358538162095539200001941891299482507183952941603533349305236619747991192754590321292037659214446371716511686593781288955574571428101742907049569742481331700326096435507231849594185399739046464628117390049343901265964519987717315621642499920484252273374803540736208133442063667266987610015263048801624149696237617641434191232265475426096567574375403470625422143937779905416459731216132811791720926978893585897031634153591685333781932792442686007849336119037343934526458099438103616410508469641444371559281088193795827741111815633114354238502606171130076045738129765754332249040981068388697162590764336075176415263697515789908470398298223588295713168125792837889058800609365147864728456100698025601621480797978056993091204118431550871154362601794243839765293989716304790403614060231175908628807967704632485741189627089759266337336223716192577857607451932825439526840594196960323621509670639615298034522893783190713137107646967301254099463839367172322891014267204313493928082653232856114214496401909647965932603491438720741541286581899868667174480480994810950842507457935045317798213153541023259387540006504472760913466605420274730447341815510551257691237275900883078150432896953637383499194118684966201847864807347134735953487589649397360972008649210275054684012719757030132413057775255568989969973955261547526659221191405430847334596831917561615893075832338739561371273464593979662575665296474439976576091076024603259752155547840980353386986081771201171474803956761004026206185016260719156959540234930527062946640901332947068098432651211857670142597646923289721774758035084278326695511596853883190912137824890431894933456065757151413060790862891294465151744254371858163869400421009069904448783496241101063271373485022471704049764440180276523986429526146142348984832756140745493268977046253312114914966735008779559486395750071189640636083307052512064335442535559988491788094832467621655083660817644622097919973565335404486746323678977932999542776237750015434010982041932960736083802641657135365368414277762679619048307589929756441353529799766080044999847564493326538967157528606411195347729583739006243704734726003296569884844109645222717557600306215340303339112065431071023625680777870513334276404218073373683898029244402944279203796590510254004112506643463675894813169834931197153717670656938448210687425892939382747275090190301511253260188000407407763753172668582700249897495919724123910549345291180269863522667255063116651111223713066614696690118400321959688635847160766798962323651964379410735905740160813427702531534021578537871155954986327814055481992090503362115951467678787742594668647294767528486931439689349274550823270064855108767460952020629990400408630690418841458180161291069826551750719669355799087596092862827603206330393839607329538122405917671964181148426987692938767657206973724930248516156453852576816946012603368247961537087808080486422799786931041912871411608131583444639445698167893967581062078230799401463556493064059337829311224189371812148979461250114349448755563162369555573169109986756113584825552855721339341863563301083641886196391377529029994319266255913705917665312504032301296781061090468545173979656638745460182299302188590351755987919464413861373346164608777324261843296880818850739120901186635527963493655474170280333029454641801983871068975757766223367127124847119911965012348728311226746280646684849246390944764411444818107837506144823743752607919009213302560509465912871909520093510432411687017015881623241881501192746014386600283808716297311564912301630424192209447657881438568006080282050789872542938542513200064106383792003737858947668730313964326979738402809759124249413313513321722318095597058462681549181181278267473199047033099414420680942780833400690055593085064933333816138035156689941285629497335605006402375331176334814073897925783402754238014675865419545239194358229763625020628735871103871855116892916329199098731068334778721950198855901939850568319608073092055296468441808990744890232073902577625011395319214699962170901265794625296227100875138026150776182575805970512866344746176758836501069996167892882668231983355403344620163462231216818177495600781780431437193883108094799919332384221045657126354326967149848073573458131053359531087088603997399982483684889734492522555788767937386671687508443835297220703725260740717811121497747953229899231044101111759141796060638885478320180755058787271557265021650049101523372768873266722231560746199259963178571251290232492087442441603337170710102414421657933336090501252553363432778793982012344087824897557290313377791469889016134771647776543212963383563783035503239645416277605790131435492260864881848525550665812499824972347759351441813396081368296158099528507182233620102889318623442488370079599051627210368259233402751909968519999325440220308771548161257695654099143228458367731889322527270827539829885881206857803501861331299787418053563775776033861377839693029460605550180494936567423849925531599231558881152958348927539117481128453330028055470956116002362170964264849327771327409291493228347819450332217501402274233990838910923758750767354920095768688886772991232815466273725874926095990748111127603719898415622613710146254696571699417428564034417917687706691450325182387215703625981238722981656736563606124199448804310391950854612203424019962494404355265445054088685109471931036797710251525602862880741416516947999120516846297206747875943463281093980770797427438214919231558952673794657303377334604298452334818587965311536416959704995751255615063971129604197757024333969590066781971140997618346808398327585358245922761872406647322550121773316161609585644212189353837624454779243023036062411876288959963589823279227229964081372826895873183063754006889018757859560100020251841234215858052699720181003941815286687237926819421127391972411945814013571253647959152352457723691259581812156221788227622950674350726381352705322126662810911689854210110633708186647805961059537425932846959759916368638777425503204804285507838419900588265337305562436915314122033452101981564903125745147326371069806277682179241916265024237054196780198670551749996564326616907649632146645977436236656964447593573971112671435016551184734168450427892993832805928752018452808273628692359375173924616232619698089558673212405863892134410451159851208779566521278640654170007377122237451509838276021158453069195055454717616945153272104162747827490544226200341616838457760203843919655344548666807741388564527440845201830968868198832573532540385744220440396086573344591167318410834690154899234403676778346420602673311551415842043683545974452414040724379045070279817389781210113472787703549642380425613484424322169167495179623271931542919443516636289473692759829704658524410091787913036975675179456561151999209665160838131213002769596935111705798630645884421102287098826494627242411574231768856647198971179019269628600764390480367986957921604549277350606648788455488743708676480501938406551110643499647290977697348899995145655728242256635372358255475286895340978566122912880194539517349259330678453745148110911591530080738782355006778044956233753732587046094973563884227199196772556662538479412015178976112622433805794082082009133539618080246809818210531215331030490285292755339561374451809331779092056209486206335013355589306314617018836786626650230486339705068691919643552088254711953288966160477504489173781477574584619718151648111998445036006337703386889328806735495295477953864618437344443826688849672240691312549168537219840688344738621564145475754606982215077541703531013217384115670392856999386480558610488507707489152276612524472147033556300440573393039869838254508369250877560221892634627066223155195989854432847287579116020147159077144988776940783910178412578804132042572215328525355123945060178206548280233577093709804658678973798089960315947682846072353878569103737175970619365682967962539647554356633388405238269206520518104238952510850453482862036756041703316199655112992906423476269943264853101500410857006381830618706038973499176230756723414938318603196484150702446465306263312751828363432678490527426076314798306394471954187604582450824856797987497555046035026918858666954574458666337545450823121533898995174490239293418397381469898977313567104988137736036041979498082147121834761567249250984497733196008321508434674691464000951179910418774629061805079316641662687917675078693417567100336801153551191453363426528142499185475513007713172837586867387471147993401005189249944649903434221306767061627867799461215406191176979992233532805561772506467917971829370285494688650717886026943104687522833773557124017953480398203975114872950474214148842678435966207332658171136976158444864541969881561085386011268528932766505583329516081487190736955132957486866826444573365716216434639951268250438426150436259370760186218644373480857425650137143005290344176922847076742069610686593173162142763388511083505478536091567659976717728904286363677133117574287222227578275140864850086179187173637281144158610130684548484536460319774814629928033949024227713544398566150643285445193775567412418757424995765428205075335178366531449300623727511572905235268066400087862409347858576475085515924461990482084263071313096422152564179735761685942429268615773895360901748363492653229673758764835377942470672508745960040601259108685456951842828112061019313703410044356282803313304548310711458050536531880088834262448136187215077726453701053023916790732259076484523202858679605108515591570627629467232223882015223455924253674549461434743208669181277081163416113002603455353905775121143268921590295186704855651048918633530562338485428647285221481636673009465199524446590999474014815138448621878404546353013940481518230508273404585679460811090095520363531110632816285110899480471623448077252247993238791059147857509764013079216525957349771718647499119240536168336779157894937642413704286766722175640558733062645666385564327739833889298484349194529835271103826668070279557441761753640545766182639588461610615314822554770402392361910089253423380232726644020526746533375144873356421394128479608571842461881009269738410021181622294197072896731149963663294959920430154449176754440248502343644213643411249658539207868856439329413909873428677556508690615047770916461029996689151166211570334849999716206821369398850059280464829957705772383952682890924813580558591474166763671933349032929067492456464865115690262884163127077265083729389352871765490156215943713630315583656038590600077122255133327855545197054185967200907601409058263673437959119834551343134091597829971042197226677097573827329795972390314187048748828127662684900497738452276671443160530224037256941151945692269747813745783410654815631540487558956247784832751010020399635716065224041728105341837555578628150404641244339781596112035873656736017979222994262097879654242246670623032692530630330270751833941946861831254655647112414821005866456449788883905074982765053252933272076931630546075477718391116073617619586886428140729846187880809821980101811638139513528684319316259871352133797967658261560365590462849738936940864563495104949768004507554741947661573025375770532724010148231802358563209513372059431714446779128613392872171997362827736418806689768647079210380153888441851096128358057713382827228826526445612171809869465423134400014241351437249224119598188318414112863729926267905760025373613053305474682360070065622388575863365350194595420875272845191404609236548755547012257749493667467171490875716111905946955057512636791606433558921000094661078627830455130395968471544029949926749478496421953857887015310393699180323377772307265453170893190961023477534914515256451292743040314854093108972491118176694693531487602157210384189438570095884059602976702458967720582912539497636169323278135972000846642512345957394279575305097248932912637865731915681154697376903361535194736445139605823065615669462687649140154978402532661070919559970978563412976030740619096265518726971099928668138599161889699585577430095302996578009958678792010855017549097691657829507194562092572181458331308206951677748590157454783111300872594325861271866223452565045825439679973302688423636143827191937906793934462400047532450524279935965055935615745836729962906025312199642813972060446455313697355882194937997000003378566755354226440281041217866301905066423218462901921325139045996063503448898311568406927347995755588125243098517647886447622978259877186107612976701662044853743914053555600999420782719680049322704580428528853236662571490441268092255093086502864519086682880668341794029018001432410256066544529747899001050308063986052554889175453249793919551332132889988851481258001646817978772721882788682225636306668294684442116490802067952418725366024282717466086462545555297864559904859292816398604301465590404949818375114353177286385282585390374638821065065986391016694208096021618403108286291735044545385758107684556026716130251746162816108675196086332157416213703882975042905540609274308798143863003895954103895399762753711951867383606921233353914142524706259970106383356608957411746568205126020178067752277815844753022406677700335615164046489248460043916120168635520350339779488014862373708050538556233536230024175112660068765535045179959437496104065000497505951407650846961285358680679071012757447768979982326649577922441258381679301129217997288052107911420872219187034849969000735872778077265498593847989385067999115990380881053523106696766611850344466100460410110938656508784029375569291761754001600345693321247419941971195562582016228050327151818734956137230847406304584118336296844336910903830680229539125221406071367529534580854812785999752437721062960128934544920081935273483530204566712430271393668656895278846111412931375457578136073379365667822413658659785738464457604050268004644093321039880876856370704411221144122138727741289737329811758501070530542400452202148814415768951813221739192079500107764979409124780759616930765993200398750962463062442755110462455841088336361907095817618896134868304112496396383492126334811227751165605064567703958729206279514275728689296072952380973642897375963967875244247767204843244499486391382419376763672214048712007495886524816412639996567587372864542964052795094933912157397507648609742647739319503205139797559975768122465323796133235109491357096427729989594801176831770859203818253025247345526812547677529548722508518689685562675057981834149157638359383523947146826772008927642217949655205359825805090455022886789972888394399865442086378397297690243975642744321934591046808232772539505715090800834325460295463356182210958749494553499419248826325563261773555972073896809243234893108098493220170739783503601716469159954617780768011278960336184369988319420350914988781179914120696120298200601251467806637787713092612728967342479544328172662604416852657780556294278906288325496925527753169278409351540118736478108231963458001059739764725252659520191792756576494553480569456367032256547325386582635041159918247760622344436274443861808447063712112098824919001435168339237770279160060749134404791540239942135955593837808573553132132561853221223406879189180322621825700159613956468026520563838646463207712760366366405805664329758569593701965068135234820285060552606868253028708761649093289585909426956106627140798599034128802358756877644579587108296318488192171292358692259112551486601375174818485331626902132516358607499196703408158623298423971646927835827212637402995252759471215218189031520994537161019481938584414477058079799896836273366823090384421956607422191948398904641863231593191743812879758199976080952455876700806073606300360604557673970819724129288454918450402776805160399179281139946740569920038818029881466295437533004761370386985865454849033528081651352435826553367123792240153462971622630826854812915363683698526160225910534763489403319410878904517882127819903029105714241245664341694220328566014303090825150078980906320806417520713531395890470542728311873935150204812477995136937450076876649451012730575407432690246175224708134723953442516191725216843685564891272578535965584599305858699367930942118472591664249680750810512089418357490948809928581415891077386375990088713490183730706781824824026780237726085524549890332007025751138303196116095019029212209574118206394729822116214510584611727408258454910905416151779567415410588464018716840845259730432150294443946817442990308033339765803944902862481990589426781746239080506920529745011005794581766240127774149794571804285915053001798278209619846915749595113033091848410821558194538210134733102020575612421826988538806742925882950557448512695072203413575430477403237124251419199735439034709405261458288810057979160654686847671492775740255503784276749433775001334800874812037320112807337955678489618369737075292091537558260358980303004693955071351511525957290816576846696743678822910727891500982786053790877627387407902618475630276192835631662493134490838545697689697564534094779714756472943314872146801679315761448179782253494756020827055596095996742705994957544079038059381546800001890936665960505017565973399993421327257073739166358023878984869587596424814436959280699609040364910581801444478949559152261802219487781927590706016456092899395409156608086364274454105443877213550063322923875808181266813695183704425766211265919546759805629660364640782760487687310021656868166673647642413375859567912615311863766794302445239489305716488489086045724116852519553843340282163977945921038557991281726731184155432618347469062531078078987584693299492305502506617876135016020720005361204120059729934987299426142645675118342239150757023356642042559082198105903618236541436101302096801612577570252534697266241647649185319378757004907833695254782571824606499848715409704108055718042717364424239926285604709441415261133142847561907931884827944463175964592703492135782629161793995500906918521414589628630560919332009848817441135586077669314759211296447885039893868527814693793109514692128070364983230595499768799619228700408748551717438803479858045851531596624471121151680641352720011303582667507495703328062088596115406919255052083014963332842479383627750473186355272936245378230392527291856317943037975217691564264472639777537930370351063632673249883862024122054893926214225418857650631642341582781053281057980225050591625549906453468450602082688016055428256721497220304373769373724757977945668291462561537139027477882289772084783839210370877381281937125698959285828480247360325139918353008840727411472749609381899478297046965356454734622267611719300064875850851904275892880582739360324398980999375144221329522607592373134497994887947263780870345648974128526547453630752885546147543872978513872119439580926497548127208409735400956947906399839798665861468447571851897001697332672573588792957693554428551572081127610991923146029171495432012645063334921230206100774296182598641637946567413534214884546744904509712779399489086093606715527958180758089866720916238115731391342219615507745242268078355975741135845169245249120276822927623972582249978147979345962206015308254021236901994466428962514448348839371963386850555072995882201541285614389681673910848882407011187627132555204996027650965166144845292461649259606199589843869236172206965940839300505226772737910680492904751038624636485790016423500425424380624350147343603072070849139358884652942565117588561141882836773913486702899902035162357270708184231497804423019756668697007830371965427746301953767583107665044439749806972115325816044529071809938057860334225855813608956040364203048559956472741686996750628496742827201437025555926873496585409654170212863301894387202075054778501946370709161797824455674663649258733932933907333831420886930681176629409989567969627967939823269549435252793112114058164664170532408932932135399330117177145883201968733908303592310158309575853825171473414868928364431269940568172112076299111735308988828624445893288947116071666993372747348454794176674054319965196621650472838452804131693148163007995651668259572814472049452122758961443340691959330255961032627779833474128955841579231065418001552481635440828675303857464333396820868801291732325426093600957112309792713457003142426169891533699476607362575310937057909117407180529120969049874362048558813031298584720231907109614823204506424813553967915334465781981119429818227524008777895622134344562441311603175152494470103208794036114240759583559834494303437620745740153080018985096518681012658672501092539438736131841104963504259210878628668957317264280442893569677399282496203606985824186172795161096965038827109244751413027679692162188436964172715002106527101831071273748324195696430046646105283406896271311684796914456123523894683976271276629785073627959053580469159797798361436201539995702330935265490617993730645386123948328606029502151462346101923054462788669449371909362874156461479904629199176868847417934249261339406210871196215091306685563195964783783587810749093222182288866556102485509519747165713998548247234516800940592053948814414332130849892813064403956741810094506364534762625666369056344872103387239639367370710527751823102152526541123190137971765553003529213743826417494115806789573928787279361534442720185884892483602907315372328314395819638718054964568212503119935925103419257839696284388026039380377623531025916775195158240419505382673366618143598770886460549661513428746939512988488958082561660960438736386109911633942757267621815035046685677244037037354339614243515434330562434906280816021873153599570022792074608923485287780713197973608026782995705490127592902093919185408136071833567888689204303119227723135420447820702624723046085550027468488961453591509514334149066450204828123502161128071092716731214572311040047586119143827092898381888740617088107469658875028710979833480521358903193675622792079185952134889059729774006110990967241569660346167197416364790746115074396149891128967823458880197885841075755275730092843917103377793475878222427785632225685594094194022900496968852196151542913213621428975465611874281940541912094840329657159605084752028942702548238855543198713776176252509858330555605826227477537616036356321799283076110723406595249791902385138569612629866046126322602693249067433059296454153403051361721644577771884396102281480259120676710062081057047618684650918810117044721723087814979679386904653563990000681597917780376823401398877731673602826126233209764403081658585299105375454879888248032513222644745200775891477881717525563430362529201485983984700613184065758485199625498724458573679495458148899534626382207808892935513980531270417164177124654761596851067349571092844341265257802960735213094198996109395971316057222432390745596018927950906622139034044269203190590019418811799034469288561254399030177664214975005172554532831984982832017971818328499269140216391197100441000319349352258244752248674306529800908332891196922219761672067590312762361504905139207831610701019891957239400321201058717684594444531739067253876695948486862410723564676640792814558609490727615561188245337962287706569854165794828241777743883498020672531583482565409290270313517486874074322377742077523541442952635575107739756458402119768683460398060255122001882594113810061170065228284137047095290149779391737571629321178889761089220903327986529788793165701752564102932957392782789891633047164043341368149446848706656594638662510735714872644676098556344283585895996262289145422951571467678218342113437619771999931987384318964716593298824892260199648442967508355308837821731144114183393871658435939964880979489655602561293292601152908564473818408820009590178141888003531403108225644422365070045718442906155518821617659096169455168766506935580997342221388788134506358034355340909730269062885221833068138432442828684605822351865135311154570398362823419849144257933436003870398869903506333825540196423912573859511322104642810965184046907783987788471235588824678852761072001879515658855196682167211308016337233684760173197729530226844386667657932446448990875609410840090452762448157737762300536170997239496583404611504802649009300675204651744314566129316080259873654497112208570114864394156087081566519529224773588805534830395536040961695617032938455737465229864274413869660387132895345288865226079740902199460341668569347254922042731531591298462550014418395080235110138934284121855938045774229950870733803388598376344673783705127489769709800601914310661753435318882304821846134526906092702062570685651649600774620964016365542066145437026519656009682812908688976623138400761003655904845250158688403291737797226698804358568691645503438755963537382486608740661247227337063720712562684677851019484291053850602886609029379047491745571355072801871070811140067699302370975003633723361616603721952047041840280427259495911481129813021060957640004742842670271871643846305098296942456482618157722877864846058836130630221597046472560044748949826388150916044709172290915588999479900749806689606790956833556887372860276985467619570756213267095000585622165403410728948235578659939957381500964678022882978955975228973528337587409102082895820213197458740572984982471364990533817588522504746432949717070183209587699457715638234638180882827975636007901597248436707262446279528757996100921093019766716167716026052019343555183223469398746536550505487945219700505444276109855832034879268670615392292710073842199513047790625891550259234865392226146813194385922527354364783395588880454669586638746281098881707466741369806178701228023767950595689199696912073980645849500451296320950449185710022988929993105099258108826032353132092424864334952441458064583452621034491594192226523587635047981952689870846350455610056168930541088145652129489768548765879520953571112996236661532492467693982605496680915563830910005844182253617865630271314388512526696827217097532622417316904342502225325700759798878461532941859704521634620753818720455135136129126937842009844592613241571698471220981163941099607721816036074658585453428235166766109536275330966832740867936178840597626713061379033110471055038271541036635754761904550099681963889673762470104506220935991737186065964500940880984023454913853206995649021022765572389130968027542387027780498325233995472669566465711488485882747669920629256002949925537840866663719776131092422023591504282790367087734902554043539671659541631458025922240709198082424318346195996666102302746962359990617575836545507039080738073685210711444455793924661466503655561082546500883191790337816400913254794379095138701663558753881848821689703501570502884413731293704896771651491339732602629227277132812384332173563819792933636215393415315016177110056177925046407683910522869267825966830856969656702981322568154407739739444671260413330830095861894406855709897628287930308519558340737479891796252468770511624534545410007676386336161416285639127791171330877457451872926412739930916815559571868292903620800096537009988961688354502720961307774826013621981207018877766618524436254810891808405125262985628348301177058304245396410387371519682316121106879566647322711193446059074756855203128619143165847938076370757793283459596060084793905132023691076739851989134101050589567848110065336026181257230622824288539793755369195080252046557337507781366815061817463239729742303043456437741155514545383996746155369289617146760922313093661209466198634602316969929040685429788852445238586268204460338896287363332037335212328691770075474315300824399645809144208285383420361086746412352197420272695011530051645912019511641204956703230028105859964717718784142392664157161788830140553445953973633102512351405736735923021447374742075942026009211680508732697830441778087626614188220864246496676626174861423087138785708649685495640821305091884751596578323419433783592958362734441654611410313269268126998034982067340516537935371922348659584365661815470169310629369647129802013044546474700616711465868441264847414275878611515158840817095171097807342574562755930110348087387990775679708204518202741012858354271435449025069428799599580930678077766366157503220761131735566546247016192813633488964377838819714809319289471660780153611405566511558841529612240911325784958330829079945573907958670486240578699616983157561799594712218105436330078786753901044091941489879904948719418353329158806750550631914462290686352820538226054836356682703373746498191084304599850202934711447108816039420628658459480321040776034777623273724910653878078666740891511837955233866683745189921389764439473182434193699994649101292781097607104137540576584881200566715147360166880081713068882196668944069632415371412960144060483870550189465046247678001590496481843586533330161527156397683961013923910508439866306371905925804094409079438938413911070110948817943628162513318171195562037437983210460835544582438069231206606007515040194340268699334012529794876471612465601816893158874616557175617414025719895783955198486524861028528092897435071593140354887153641450807155227968459605898266868638094388145667513524449959887284615017141299947789646002457626860744754380808722027256285191324120834871605674464509667552987999438110573329912732007048829677786812748566382396011081796219092215347676446465337195598923730492671213678442491392527413742166996209672739863571954727956170258340411756267001309062107447944379222547708044996479273495020645982679157556295158546880043058625245701375179633786393711004003939902583069467848180011558049201114019830279103141065131187245961323802943177070324211576720449738955867695977810206267475268299122023061758336856035291617061057952407930724798135103712363775143205120301136378182616597915244326780501906473477846191539541542910627042809710462535945676194816682225393698779757526132127385730507217189753771565118925579647578748004194278964150581817173638812346598102092224359923903544808427563187401892998470653123229974925515580216337666741130446349000903603578747375320133480834301544218818826095204132569436959983510286355936468558372253616792285616775981760628771855742037004291880822047548986520594484823560400691716932666274582616596154864419630499245420609714629529146410939692677968506852325312947408385288484455064797205782644420378554948407472221907458602271048977587659749074073670199445407152891130763428111645525659656838118167556348060502932679253613837921818882522315837266609963958870462605301050258686103043016778945661668371361011297741086685724925362255329928866410697060922530915588047189986185252957269867021681667119318013024943990589604397596303635343177054353654132827620098683948777514113576254374172307758408187782944440034305895542471333808682324674886743213051231022832974408397991316254594302340109346323738759460142818874409145873219166196949445344185297682973410685285804831898860390159464759611643657108810691787744100621639167858985346539069185607288301577187423856784996608479081824423629046194753968114543429593943450834114096261535246430828854079702259427516272423080836346758187713655240234299568240495232801099681872103606898555465743118311686569510558065109081332630298630935820400789616122078913929109352654451720216474453989482622054600391168625304052204232932392014463464906244307221370515384540034559278736543953358510915533726298817800128094000193239692655818356950199701752578102232176057896115196480625587442592360217350523331357623837517050390093585849097866029244125074812740565529116387821827266270689560908625033452414121287589191679856121383261114397743600391078595384865559103173707718762867257065122332235046524959873427504156275853724810568122421323863931191035305403663751687314352733989699779174907632408128198688447533823651593936654570846204463784712408530305357707129435099065194177367430907742827009552467030294500600835921314337063786972252848424437646142547061659890925845496091260409898522649848531418437265877445459200302714042678319376418709009252237183890399836743974197134549430357642907389457299472301309641816695775537310290393270558066041525027292244089169268432480352844044437227337841363076390945289469620853297077251575813220971318530580301468452747413430309151972994489409343520625825305006794725076256917126634840323870426603572283004051196768320952133029111708592848877784081645621843170948516661893624718757388913045518136896037415476359900291456384032701985974877832157729045771174000332571788321615479000133713267514993979382777036831618872185731407964412789455065813262004849256847855682291622416791463393083761334384889994644008399826688711352742082217779981360453099569142080987002506439806038377049336203427812190378685305580779937896022196317307945556428454196234077049874244619800763308796074730372411245549519783431879251170635501367596021800074157345961661655865279187490877506239558614557043819003851175934774846046373502228390290723967518760111768475422109920030893501426663755962079265072163225291880775797412847428817378189092236484153826868101998061923710814274639342029876999217061683421641594454019813706348032747642578115025218650466363242903382342002009666020966706702655759430756991200304055209003626569083250344805098525800293644889209484328175000553368968682099597494940303969394399926023609786489054774364115388593619392238719221909360904359867881874726001716418446831790933992007014253303935913775215444646133023431939996084105421653438007640529598077332438267132872895243333678052292321071617033905410344693858376941208334811333124611436835871000244755274286344737212321654097810307798664832198090591117478034822105540579860537509602147027962168788377642029774166444103043753420464843386817810895231626319278997380990224585339323414648681955726022493272367429035676872945654932242850763999048370901877894814154173768459287548418622884747754414508806299678146758393261935427262471757161361311257550756416870797153764299428519280449434276047867818567172414267980953751633245548746072488462480213217426443271439376592635615889554509273590251454266063396946838296651962783960317049132354790577970396024397945286589087606283498266977813031336328213950208262664541281640464387114541012109086942876472774391072917568246317678811923920869609292932292741033074309720679719633335841994584986893736508558743427576062533178777261848215737092012161721767149670242168532614293427221647328764089106876729302585783710485684308549402135664491590968292765236117132660060371962013389778776159651874579462017962208697610244356946344592656613150775576534712341565970906030287729831912312269922237395695773292230390505701853030138747350497101809512895817751625408560465695404030388235177675360277857453579398472118998768870930888838192049002326589292985900874836184203560307553686434823896197498414439352589373649946835845973279386284907065786378864680825940078322592252207417714812348965486207111738321957352604740364049709500897314976994670500866079468358359723033638931105726512912198246071650847816524498607372069115860764691307606241656796640944060623966265157175285002979557185313178927960785893019325972850273894940285481353611860040058625241294524073050159224792690274812303472760194335591294707736124857134081378442648551822467930439663340858608982900395200710782727335393974534306178010109019104405433943518496860969356860880054727152786447170750312522953975558372041431288743595955699426854846945132118752923032346947603197001609851032077143970552518623787439166189492504983609460515506775976729062780263581226714408846309038472672264540461247729211336603283202616357059802287147939136665885662501005168064848224956673121078215727337541583247753231710023917703809586864798922623606560305799834098484277220425587307729300335486558415893455766225922078561211114359616148415820536212148972624852020176686504946579912294509266603146503572923228667873232627411845320067460965094432054503145399338910978188532235516738729791560071308956788963675215688149011783833887174415591385124421555342732307974590981353014187524867889314308502960422706301288250201822201302252905810930520590932525235867471989581052302812195531809072444590838241223392230599318341060224960494026403683239164511207235828415116239849375421100701869482564205134010036821293170063603133194701863500919811684835968297167018428196669753832837476046184003472768751726626491811442782425156947489304343038097724022681809769516533814817152412009874411460510328676022314238812288619133409028519953912432068033595149793206775177377851213978442867912046796121664912032812764853448340872309205505127770517169509703077918821779401746567818258482247264027479803439907777030943943690756943336643841399328771828187370204810050871659761984775722583067225740240082268117103069997120361645267949004936154685831418177075644963152026207877521941531341793826303415959248237948315015956974865212169583018884479404130137923567545420716816005598174946003559778847199982900764132857772849567808115543371351889567799504355789412842841440657747700592428036013547035565303800462779093686380624636919071836264162286390136371936216327159398176267104568071820069511967582910855290539734750766699939460148505763153546052029958895424865056282105551262048158323186020240464470445225279487218144119132447914906552857351140491012392778403562779828636196500142920665671037297053423223649859121856461610724029475769710349312930148488860694668333947699351001297961877072197871574992104864150046651000494248046752874578324109400336409025474750880801081021502279978533530294733291920370511474851425705984082434911669742413966734573415610683583370720311171473740954774902757422287936868598857747484375380977302263684005847446054380629841061801790295577847851888303672582861693919036070399147762224722096230850471503940954602271166498219282307373066603392316913077742963563469521726622831188296283730776065973046409736648824539720777927124586456113429292800305097602434425831780444162941261194595797839320597664651487281569081676087020694200751679216676854321334725441865647933844833668669297888246322301064810589046030939925516205676813056649967539367777320892724373640325106225767192934215281514798490323788142422758285136143613482630575830336337089106296727280235253001836992769040188300551283843908519739666012643707299476936033736013513984271786155644881860930502145840384403504126071247835286277120904503016828881748719214109095011548454595861633510626961223847149133043769203837290334087109639971859344653787830443720147698003813374475840965723822385591685393626081112016027285958641708010564746594560371857758349466887574073387086737654004284457080199472154114897191054692968764168478914387485055239763677990028317757255618964852721266331502503931576663349526147385036108651663540699013996251767775100121676416269411252157123206218929891970729206037754290165407475412937004165372228488479454287125802302034224992471104812508046780949852800951699884375685888398540374011545022779609806182086689334058900084642377074099115024944575276641514703569483646361455266258801800771815957550628429234860806726437598533843004277286138209762795540570217208001729413921150060553950431324904699214323886987514546161263295037485913923245065842458491077020015556872150369357069697248148174031943166684533909595220969913247263309445625239389060014479069487865422527682668198182702909997437004451260962051157889382026755320726107244055227183506239095865200990758063787749018578662318320797232994828089355839232100322922907760095854019057148021467667450667602927061907507978159105087901713752473130703830680741796538758639152482531196027541132546765746954834437231368918473572475415661259839309437723056343115978173674605924927950518011909195135087642985411355764368990006615981096438166051708208554681189700402197025970206081456317699070582752468872019572885248750076812688121372368765465268996196808319777962862662330248470498131157435481665468188211030654120582293534065834713621753490617088311481843759083745567159390540584408822681821426009770973595363154595732471750112531050058314528187053835670452208392748317902265100566884574897959274729952554697871127752235851255588079308423912402184486993953742057466516301449035965020173375920334596910754499219732236135746757162349529450492849865838737453207631406270735042050217164371749969741096795036090893865024087489413590251599007185470200091873852287833441539878024805220410972018007597811210442721412470982928905289091557641943103376011835909143249191001477022636414683225393124536646625242392822845834713839389994297939903297460507284932183363239278186161540065340499468564827870187454623785431162710004617069103718318834825063511582566052395288419187750644165855447511356019383406243741934289837316071976972766345011226063068298517457049969343196713750184256525152133956763816694509817611695302147914934940239233393528547720539258973788168864016325132757412628350811611488842798693969873354878227643342075791669096062310368944502299190515476451499683503968604166006821319758493707214862872802845859961471578628961346763504482215821077903554304959258455340231451822581851959120471366706012215162007392225846420134798772328958041811972861498089810669354969317565014626468606179123842265567864899091115106663556120391376352940869436221292881637473582336193525151513793472485046968771961681413048160079289904080238375140384075428857968549676430649715191643016169665603614683601854683209374425420751525229291277636372692465164947990859756997488021056981659654149655972738888279970431489317674325833205207863440991041776501563541359075673099975013414547224049115503702986740837895005187830778580020422769372490027001302950776382002246050719593965666895747249160451326977789355142829343323321403298191250333761447805728578824501100980932757832225589342761119796682674328743793721222131971632781292455094632122990333081492712089955381833663225588428307604765141078492742537441008615553292531360743792050301969622940718288359009940533529937409876667085573729002154481618465012435937447595784248482098930993780959468084687072146638046803764178075916859182454639518682854680779324151712476499304245151920515091948687945281770825891637392008179908263483024041633462840015222978372426484747505958330871934896774359869321413267257076887135039218290627511719437070636400249845832840149290602827666733947885935900306784027029205462456356502858829329288453317124073671086973386712223834557591739351778979048047958647237918801111385483868870021501815206985962153063442576606702658211431373723858959649979503461428256989805434088261166393943102037991610293332815441457825291664665600994077429643993374255770508951145280598863108938489438349969354486069514957453609639942573096933368360745722402904706283894454381268400246267600665741310642448659234821219700194262703707993849922929590843679352002778159059659077435950137109164069258105294959798546365241567017339317486139230425510039981274652231778398979582557568257593233734104752557793762286207932952364614415022169211174835135256684366488359167092476623116166370588227858807650245814604224394375080564897568750112408991593317290315582825772916041240632489316325839595446553295874016865172816361804786674569738795467477793190100414814877801096360652798723985370632781705807937818907314595829149444831162231725792015965586542905203476577033627150978918590106407273129362093321241289295752425586203579077132420625064253345607896690914812938536359188149595086918539221873391426894967646372387411090704009230345895789257431348166451299694853960290282606063491933097202985437016136480926059280355043286002663263370838133043867563269352811386324784913423212449663598911259462447606820484465370449749334893725045236158273087342471243298044020136631392868363820895250336208006674936828843719153778541871462557982882814900238827739948295097482490376593486396785739290638417238239937061061664336194756395764470625322938377611475306060816422981237482102566568133766721028663501622730048057983060642176685822022918882486467634630715908670285981158669351446762861209105517446848664772992463413248721229199274601901438644304450300687887384505566560673303409564600827709331065344373205890299495963566133071500475314791507570887329914808168594246757255018023781670688284764235990407224777643729621890373936143734689316771182379891955650578137356210759544403688426582390901961601591014222555651253631772695381391479131970699026916682409748648404879901230915951802232349494034787493561840745246931302201151022627263954420736341413142674410504159761017124801443768726039713160414120325372921665052726194707104642068073205333906548353058980287004873593837444359390489384256313330779668343050179967486306321552768996173114160454676953331763083161793583904945877298884253994490046216750614505981861997591875295425890581943387213568295926200083283599696021231296508014974310388056386699790938724152311777179671811648448976108475726052960312737290760061316204454467422442761285657991456132663125441352030717363819303626544255968538941268515472121790509809174486778427223865892151126522729832115948228651429777932596265061693141772558318209383353522857517240233115674259412554485324185166506260438025826035147763900611455538444651291204749754937989797672576422184243347544072035384425017399024531880179084719846761780795994706746337070575017011335862590102414961139874320367314155729411204688659813745298965230393696294096348261000162540621278067070832703292329559917616339463994397758562512259934959409813112459589667411093135652384244532488185379567236042400078569719411096433874050648200598095079860127528442079104331796731913085309060483921470629194990973921896116480865062146261671361362791943750840629211548941286473439401937109947591509684794979783043119777462782060546424994916152049091632873191097422362893761945061926530338133623816119010974439436851919833651480399263041950084257645319010613146614497676405658211336527666022875921529462814979104002605232472945874754681107219867653928338291244047999033246714304182144046024148100603477754255426680070495095534499886338780198848263710567378988210635176660646471205625438901785129709034768441583901025439807181816573382485338257085814639700356397587508446518287415622996899015949491727271892983021628011304916045907703604699624870899813459632124214285501741560670719543637888224478403004301981180590978452738123127558713349750168411622217803096531037388185303463954964859023704685809104159302154251218493438842544155985087049387722481199844296835176418451714509350731602908152946649975239959760091153246767244219286012170189170004363226321098100501823702519393568442830602025831673845777618622305791915920830290801855995000818118943316553725420990063847825925404390243097784462711212609835619010246941669813598309917133662905160210311814977151561645522262220051074245427311247844532225078708468766873154536337409713169895482194980642961335260904481092734992080462945425886886263591947539439962153333966737065641557952921977597004648761124629611052510783292214716069136098222773244340189627161135844054976508284640610987315240630414933607607221681703328258536374126195425201846623070510069941703895304914601223496492387472573431161037293231751997483570509556201417644684352940781416018555276147167572680937242619514412281476745163654406623659589950719606318439907798101496728048179041523090432478607399365760010884862829187377851665104533921028901010510828933277469640519393582888641314096558286076362646096673411185196624706949470949567276638107139156282775698104700710248331395521444672827053081793154486999932411573729441102476149161132092616728699289338938469949844375378846782376148003825569166387977797828864977647114182051719377885581584165910296808264743640033095180761874465782668031946431420266957145992862488685633603633885146035644229909496337984894549435762279910256612641602465809539845740942986779660135190532111523086270999809578425334362883198524750930601251615533133255814086093591591735692647432227117642817185824224147570621394629669380985253795802483206706402764061908726612984055410646184755607556802712440275287885057611163899958167382734752130420851031934321587909526476532762135449241132809821589171407132159219845550416688050076009680458542925894040452512066718322677582181981179282736395612351125913821060285238119822796177868931242000057608515362552495479128674770238377200511783643906959947293981974728731534555203345874580139451551707556471111855241444691168565668112959650240690546209391005844920528065818995701158051415094455470873281184091291453018395685649092800891143217676635388781079550838561691160194523991607046966842389485271360787084712884860089880917697103917855588439840816775444878625579815002095171896990910825430181469694997091148185995153441500661256304849030268074622444595126826138748124668683261325496237106095013486595206399640345216315326777047679338148474237173615739156825865896852060590677975487628856581836731290393420234968258718392904317267380540471764801895644583135852322855170890710183629870057781780939295810537954366040520779862636746407121835339055154981349875712301953985395994871556819137686256336487271516492596718278772393257197336359000658946477639950421165913990168402945581527771960647697957899992213153773810865245629488972358207909813287737595218497495207942778986546679889176327388005941222843941200886197253587573769961798896253518385880147440221238195077637890576079777034641419376890679204870872824373720785997815258363670805853861715443373218993131223244546129766530564122405273753279641701132625004044536627806752694915713575223024373531740884220006070815735837027577224668206424585185989371491442737111796098796017756751893918751392901480870779898361036813527247536574157655255411203116978473721302500261754660673214325010639673822823512981719104189862982008795970725656594841835703080511138336228328340464710297727422174659441947127685766676277743372481012649242419968354280825553980120139197834329479468578532373967858850414905716434854269764802501994463536637119503229344198467081833974734984288271982296863645547505471584405385373038850578981744938701758991121271551829816136416116163470715791233818080845586851457816315486210655210820340560977276257872728952152849199609791077998818565086235374523718763645478856314968622647272946224885970091775006106698954050419747248028857676076466817417132643936749120412403925816544517736510633695779316981833617217042597991447404880858565862515052972473804612971717917179854381866490219665836876213007031539510862579288833198808172209872793339340165911671592852696330709084917322958340473743174844555983447681681774977535675740786724120353829732738868967865336375831605713376657451611713793322850000722978451617928249237429323016258432194012607073777324036137566674873111293803288471434718216307272121364199273873596565434094407314347879133285915416970166715618768660608470594532589221522846878824987089589527889662235803454417789233483020568527220749265695287732933061668644575626864430230508033919991381075935495799242270851361064600450067170916934320986230436827638294711786112149691606973927465289634890058135304447139566765900461602044366033486852658483108839104531469150040872395338508808371439506050653115502473654812516232338911316760942681573309826749199791496072764360148443000638126066700625956416859095395944414200867820806524440179649862886506207519077077348069191384354397992525506393396201962726879434242301427312913298681074178542757317830090451081092688029232326131349629823207703494755639166476731981359818954615852474881927672291750493376169455785137270374138476462733583941573460071455194939313668985113151877798525940494868461330154822984432228484935743864943255253030129609640616516166052894397982072306245529016467853280821243408191110052844016245388321524530645064499805343786148234981990981525460089809522022692754154089625943690753475734201311292058431695834780109337746067590435392237779612719098940099624885661761442263519492795283111646577603491300604397148224012259053634421284648053340653144583030018921187026248956909364500324955012425054523050794534487113748107513134628126994298871471229371374530018651715147903486575004328912016811314042013435123827613984067392856841842107370352828107276368670232487436273877130542870153485774575332598695488006579245106927069361253935008440739997241380693999080040232527401910341714982393448660648572861111362134624820365455830281360821259260412802830797755821822922825200169285962987328395470724031870020195458746481716098106334908930348271578653430150424705568821911598134164738988410140234151640903749270220104037372249495567492570073426592233404569265777655945018317098608711450088435278429781147267760619245262631614367391956655321354699473612339664496538442251505170484864954867631912260962518764890319142438281540111881490431154949135213271380610659438696718530196304355139229213371002411866149420576639327188675278340655787728460321419062964898487808833482175449674440679070631137747998562531611022668145575611620410277958114512225570817355887173711600945305843049180912289495246519421760247696461826926811158742053606108904579600101248276984881437195327631556368090030481677427328648753236526587223850586807251931964619628010473515877323101329600567393495855118528119530524985223651498397629047969594278604891937661963929163027958799278122318044693380861299157705426232753045813647853315979101400651040587272508279779471375058740066338258468816137437252647498069775990174640224732041666862462242160767702211369634393794510308412073813855937493590114423562857167917884531082475141871993544118518483465372329963943694760712506483386192738305557812074610989715940721685418328378453803752669123662769358508266997729012874287178475236719549295330183293976792576027687498620930100383488644825137376325019951138127980144344185862848999967104537550466652220937789968837930005007543193169939450003924638412839315896472800390916099616285441216760187412990176576239236066842914783853953645441313613141710866304049060973612542913977642412745823760817064818630507796458092527930931198149806768240226901531745078870897850674124566466317369632973640784317036587753190593489536757194706917583555898689543002712214929829440528066952964137221501441828827607443014023920941740351057503158112162061554376718182265267048179858682450061218806903405664704162844923272240685917166544616909690608198484991658946495231078714313718111183884225587892544980946799217480999357192968094648975757857207567690034618979460887875902437059192932888274992952244715488267689180762748960932014556747987580661192377664478957993682563686222671971977370682808972039727965669320115990425693669413928549657778710618396987855738694421338089678880905616227523897151480006260534007322250073276993509400014451135471796446017395414430840772569979163827417491626847747058668866690608272492385649111877101196122984753438277557549339542021960847559555086122336144674158111613537558870817190033493837653766563410960601408921220937591497334481579646911429091332179617949987458822054993598463519075313896034237733881659813266771616703336010893896899562863901674102075747837804786293915773050757486645719559719347364790161115658550148708592015602204079316648987495989510473268298625611665062630983738830677263040735255720105584456140925333478118001005708709729447485600458928259442510846698639401091870766742003949320190590852459192279053563633917003316807440982233907513286663128335849477880442934205436676630694610524087567400556901882447725089905442861637416818229269900733572065955817605505876871725486739571253419988141274462909373872708467877086134142195961953291086839233546987675246238511573602792588506491864436598169864440853333248761610741451433270204554449906783072355080803620970700488678285432929944784099515282267680256963507612880879973846269749445955114257289225004943982775409233530345926183825552667189495465825866839398466166422922209364227056207344463484404698612390614473563836909290437909660893849018190061541197981291536274757393239899017381804738656258927319344707206980124498428683328896094506851075629831531165887495893523473664402858409438928949117299796522455782538857634784278527625009406094138584838201174115816502816583688840798714106757894107913780697207221156620570847846687920873899501522047178883739253503483114422100993252462256526507326420997348636249612801197516614426825212620463043979763201335297118165320765998130774693501148109964709350135457844925343732663717231750353668405479833945908366499010250219336084970131644707845953571892817136986473297257209923251738244513468817339853296949705619403815865756681533271498873378684994727875483053901331015873558545816961336681381620856380498535661917341697737413305822001026804295179196910839904765771778655267007094759728644815063941945465003808143053572722667230101341535842021301114139248526957849213766286564743570714841352564042622635267331741839336886152222882239935947961066443986660320950532563044725799300119157852702411447162189302488600437348350033983213513237868620269595398557833321287086857855392115891648976691084694811678801533784246802661927229794008137692953486751928707585835829710014953373095417685949572975836892575398528250550082355041453522792477078688525692111024601623927656137974625003184894252128055924760521430552237637723529361883843072915111969297088946001902945918029330031832864491668464497338430590008976556435532977744312390919756062189742206999663893729080891204751571029573050177032570398571178318260671847067089585040414341627385159279463212269047980618304521234819578430916932553219681643452857043993645974795400036216090627540781250205512383524566650642307365962101504508710482516582256715141041425090083755978660089341927313452423899610408734050911159505442003203535842259799470223499914989885460956933829679066122929900208972253970463608592119335235852306754233935350743191152134058050531873862185260784529222660540115079090248271048704437934360159104594608784253088121154735810111334834620231577173322282846872578969100048019736383466745635887118450555762963931081080639126603065071972794288173897742429217787591727267809767692493452185769677538965417886641091676292153658839515062401645296074030769832527772711584773259213412882147728478152591642589119530966216783855851382879766395353162112339450253942732359292165419248746438945700828708336838095154067059852239163487633697555304811036373882571741431702614978515492603445153260803778587176299228624824080165578004215734162308817343490572568466435488479186719524204551449324932324088048299966509550208619106660196060649653937502681929342117743607821507214687682795873152478207628123539340389845722803235679024010277791702501957066458974647654429946417765475384545693110272703221380041875148693660105948756020350965266628357525218051311694406748948694894769378245183272282703932728153824160547867208655479845308015014457243499657884023099293194676458235723849630996073480941674412560220462819352954777868444475209501287571016878869579221804771123906456149606606966525217751294428991588119078813509361319353511551053364315336110217405905783933840361565084892447405985528317786033785877078934011551372408626458009017924644141902886647170561887592977109216795276613320162569110227154300912469243293570634202612166400660407856675823044133469912944507072420044299545598279470968446708165363272008427533088833865871649628133062024634055142594023132528749473829661189277963903362456473836860165622661818518142140064787448111871130718937194226414917695147223056307640780293060372109858307347350918319078929997449990907129378494515116008003195255747080082323153509046117663062971453010719837954403050532232669427644259158860665061200252651388727204933587907562602037774040416475979865331504711516486712015686145368871401873905340434781742115369772925569312517661393174047684545577209205691868494657026009222605319454814838861103132639166563312664883730852265784032604753866894675988732619918315290618673998727543654507625377726583423499913365881682269965728744330922400645361706376244663585628736177116069882648801812598899736880639936802649322599860124710497247181567795924705452086821276630997530959477461187424142683751234754839506414908950252583138752806850360417020635539946597330807091861706348382788936391692258937682462803296490351381026303203108474367613569749443328252609219379332377715556597041148209449327640120390499113086256822407109761663101492975120757077237980852464746004754271162321591228401597359104874479115888425744431704993782662453079684357795387778269362013538872735230747039930668155713266352058620708180768606965900502981324500555795641348416225112618089599810784838804335153673751078217262695241132779672115355059264273372463200280457124051803120910006769290599681730207919702513225253219502210084531032817458570444129766856694538357006775439793402923101153303064468169953145977417654150216758937825261701526712578050108951587429615282360191650622741125641561941673720877766864812118581775456453097153229648909375365138234480057554926555171046668124611889920264826204093547469713053964551301625744374793000078031000148594088771791878793839894405464020536004110017380617004969205504256811686953093457692189928756232711507785013844468530670372129611813475806770427652076447467921246323038579324974975652511408915687835895435509078271654562789287783922183894429078372945203984283471207525918955964014688587782321838154835066022459472413831029846752025486410145656940558958426649991687134216736551228046347970733304693453426967881008764729088070143491203164913340426029008534315901188167601000417038749553317003713765733432766535925317445884375301626045652147344447110305577375234922646679842399275421780146023646562793325613156065498556270217063863848580659079506037243726680866940115333241057723280988157901193690756997344752003456880243465327480643532000571831416269845765349045659794661084820981295956477103438682781380001273817924835987587947566369760675392284187425784400752957202625879300350993875377194241907285479049290613350502511566248407486995326795327162384056061532583052891382740417478078781827848389602374284332133145507943628080529805583398890870067097876549391428374826203888494333406577709537708371594656214452866008553613148351474790533306854742648422003182389860727479106009023536391701906706792219992744009791930708087373109594581626851865379973067093422105425750507575205089359657082253336206519635600163506798458978331089099982005597883778408913906138788517198418493285556687903777136366080502617095845926382485456908428859330939037978015941219364251554843725162991951851218012991969076863471050193256796598579821763011987662758910443257002423011457153043133234425199385015206965512767065400608834932644826988648731628556588106069546134181566317026402373673275726309337178473437573278205351764350935029871714275960907212009771138108952503065247224844091424960365461793417907431826051653649299641965425599173786772745577351053755964952438626609420595695102584731581581242784510216506371871643442483045507503865164847027384056632673781402849557844477742092935666414461924887612746582894612825920629470884624300548660085162080913242349059724311849534415572732823129374277156976935175837757149852652639808600625590642266386490434310794196374717471300194864453267747741249496644420078742665319732335722162156195842043473895005491415287375314131323263165610206501077499765558398789086426443380232223487854418354373779055256175924141398376418643318004264941823728365114364690758170432189740415001304110933138448419787333193049462550563488270052609943641935204011270664322467781360181590653131908614341788375226119034285422689257743986401098621447231129735090380413710047612424356432514620215223947416177195440271037595969432064374144216903407765425815241607275658993776935469470801566484593179937845657841682080354200611563602646535482518186550216490317573213350313720406340414719218608831584201591828773569157877254707677106542564451002653708343142047115538731102887864767624250006970135974392245997455084505651562776864493124236137795640583525169865031918270787266704966503851122202743929233305166008825157902634104302248704365870900650714597028871036645726825190613317289392654576875869937072176392628146098716447543834965005195304982949188276028824531399309493009839964202585300123173621931116853675811531831729398460666391720499205619066418170615861551878630728937260201928051063025949695698759543011079312420480634227131897651110379044417305941218320288494940113312568302888875291027557084177018755567999405995325974048068544548112284650172765938084358540777066432607273885449519703186300496082519995962599517527827136730214529287221753765351615012978311664811880198574095432014390557176237185374492671688717719683188860188508889557240051969950148818857337680693468018677638141660916513968452480186929956083677910775875037741959766747136655643871599677532719932549820092858037857688426561235030497523029932351460942725720844381287334256269755169210856345917010210446533933366150416659837710427126338369206472890667529989984877219435040400683326643295832998677413902540521740905649391662099946179056791867632810908692732827057311840433406059798742698037502039653408291667487983211454079853729135243860892748186801116261942112313726334223160659283935237687752657819191013416621597495187105161700069180849929119546529703773651075440970374899685200805738877100440551405984488405576504465445575882618784570805116333635503965767704275478861059306877536296261072586791161075576189911098006731286048968493502608765791700831790980905311123040569046273910817170075723088099827044717030753432609080577905696315621296734278085589633779513066458475359882647949798828436569742967232002374357532522225782344025326138524371787216175325265126877122979634429030004028670078585644016754655651543282479130955841356513144743717927779386737344686393439735376223930999944055152771421302686224414822415195853015334168394018668064923583448670111205880739572612408312509841712709528389590419141868553464754457153798601244316585211598658031703353148625851410859829075644660654022067790882733981884669758564484835312043499562533810492264353933920661592354783930266218152738265084995370911692557722182474158651908629958649441794670451181631901944696724359435046745132063712255848915880076785105490899526155747719223107522582980359491071196660481444912128072127934721553186918166023502165379135435583957064730184528404374170800759869314897896771376017285048626526706333708913226041796578955824278479384913539427971855194763346382462941121935609577025982710328390386649882269885182130650432633888842397605282198064700600228548147070437367254068538411597668753031860719851953486156427499090779009947703337770346044224495446763053114768796958259583029065057307266366940114880252310271934734856312360867222510792922564752953158158145826056890541480649858154601585700425603113518839249862910590917206210732851387334995196109053716919589492002916150897996003495077778249453353307762932028614436531204477368397469477661557359881001933385839269569087806243489709718718080666005908036741603007632251411784104309459300876053451801658327898252672746807670595922997001850867546320206376953753767354957773399353926872307290530295966992725115690635621110011570653032033600770143151343803220488495818482938862923524637221366972742396414980688026940505301499627363065156803623984012815394254176367158941353443599220185841538958103223349202109713775392676811638996333386834174320565543094945978210451595046728747322307166452650776512318562799272911150072075042388183051502912251113549757427142557185729603263018618283860518354227477483365319477729508928927320593375237468819287568220738868538302105945888267181055127855445890249510959987671232488506169390168721952521881895247126471059592178963332276015370450733644007026339344367215412638365502118983792922908304298810349602126251767571296924630818167380895015698776684535014125612286283957693911418712444013144817768999180572956926813165366119428118010831046436236361581489541663661929305810454072365354147322706276852205625471613697902381717364638205737354077673980549772427662641715602222727688151658049957741433664795646325088946889200855570503617509167904028246261649257747542276375682708984347400055542427749637277230910492453502612957982188546469390316210984156956434340970754047303645206380884926010486435853614769389163122506560339691704709056247769510869361140610547008907262791740194010175332365180966915127084537656136457335011164503015571454182110501029075636723685154966653865315363096449347282365944946075811840079241838381620304400480105446819860554788635291379008409185748036093892880409003263550561063849821274566959473348914161537064289308879755588377734281243374312734075414574165621953688825899574386673413972315875365335577745348459576042139786973594914216562688986710016335807616800612002939444936234431885533594287100641529277959821940693584526699620778899639100955709829592799680650645059436137855485011123398852812534552913204924165185715824818015375378663833108119637715994119257081788599990088661474665434953850327337237430328460506504837094581181255744394087344921788511541279139955798868015165424359575821570811735716875692904544978799528989776314519741011004272116543919020562323519035603322713923662938338507885051479704505226695045316172499290148830009210408120405696689917316821076861889409260328926139316738453748356477548024458976192199628841487478409174602177882074743144435482249683197922146966083523204896182685058894526435425106095095306639542234064724049409267825537155590978973665865159974972216894986335686660263451647954769735229461403164340041792016287280379840055423404296101976886850512456041519021840045809218012621658582808964532432939380139947084816970482476231904093136943274203502118243858308242533501123312454470112617482622942370182506986543273306433891150500751391766950034485368603366543244428914266918237783347316379767854184598421187480839272017426761482188603627551756650255406065879045518564054555198088886142961354052976092226927757151537318630433785867034634449354620931106031822152602960300060151018590480675043005856211218737315492038301097154076007953148129195874150111311017127858886622790865724674227308601645687619996986585775549315371005702561957132436480622907587474590881005338935467812951654595542488153810427877140798951247068041899029453698901158901756189557672683073568915741726205268851210051844295866804871500241427707367198894405274365293242501991827701706129907821509131597193599585315461042181680880708486261010613616882977709445817636999016269502021226299117172270729582356391903959076464737173274183551706176617767913676112110427854546573160250889071682243049942469874063092763708973886101074341064083236614358655394082887355906570452014828935201008103070254294519366268454454550588262401903984593650952480903242450283298422762135943202491039982150241252084084582345226265862087336928749094943991275203911873828121654540323117770223729692360819482268316914855494863574878138170794845143174145616569060734198344913489707748520558211277372959557826309395420098099694684273858148520961911412247575271260269377255457431602914886162736011133269543104969433483169070818252312500807517193941753114465828885767284815525036672891992587858491986468314122086267521691265361904226723475562768501736715410742727797338564223314217530176563981256095912930881736392702991319237900358050638250632435464467433157306022368839030091134103634535498733982162106679113147117276408002501170602980565075169662804192189076543080723629897503397385715877416597073652395041821305417590650269914298238429130672698146619286871951262109580385996440532448306292719776431446839043540044591994246101861547664761733546670062520466557145195987685814747008002616873237576836871164862497049598394893479518738044650402365455941723480722262322540058397070598389467179640637946600668958522857865291387640515746895287472767913213906104835555253106337874506597557594421727980092470248292819472319614663636838341294778738164012849574235033924570148315249443048875087574610991369086792625038015793287025516631805119671241521496362365821447726116369053382965255279180097929095146471445433914092250945242414908422831285523655652270757655094828703516473490847299716219953254523898645079047264196377329051534969050253395283109337231271759010439701415945183177039651351451510000766272991004869820963994222564991139777185506464587843076485559155317464879079305322731589930382787884759536183149679817218489388027244484139670981105323195931839217619774688907654779090738260958522310676618328941363359835191469805826700913084574882435135757752611330000344960423007644073890361452831855975217101346991952460028747557958832996813051962286305969532509457450757036139555180626778924953669810507905899816566155419739599875468071923859501196535830432684713926569101303896373046687400929270049821491823201855282953347759037882065841367763337449923845064602883314661704392627527949998888758300477977235376340372506269090975122386571945697374385337447589261174210360332456106327217245242501181390172801228796586152883993168904415486205948369899918797532002633010597596585541759448624459528856538080074262386541421242579316898481423785000279111691901925263610821145042644888878520920056621606138233705810150007414714160490006546764180932493805562583845344957709457167778046966117736749395315217539212850428496813854379743772071235038490589010884644341484929018000231783771581747605634793173225547766947915864956081407838869584066234303283994038148169459565955913696758783818819570169326810292893568501048691673398009499211992646809604081770096188730415631534891986559968925867676985957822000111805992626950510730142083711138999446758544257368870866556607854524452141689111399584962801235748570643330621773679726875985639059298841998104996145254374567286181606390605399267907430297680550472342743908532055487943755921235073289479843047423808345488941922019286727486514584677104330230946795541861636571923175637279632266528219869252052442441738195528384469331829576669557229556173820666296322990710444838230048219475680758352179935172576025466642771189758766273454436878163052494483665241510560815634100173283820598335676218949825827256378591791110664715402022496577663603826748401098586126886063190311714985116479881391438474267411194720527003307118097897905790967840427337390248370246247583578513383681998113281041557881718329315116563094079556953600163363054179527628340655741884137692290899087199656038795358519111393345415376151540318483765723960173489534610243457055839496105930595055053853416241273757283539578504115388440675454740541859606151891007181698149598470240335906410495513000254950550912391089231159700719627610120304696263307065223809001738477769150100594724802288206140119693378286720163721786932021404022306597432909130895572690968407455467924248282009817202992422667469277920027443300822844217137242723412275726296135899851621371859518418792361046960562483228440029807821373567982847418243782153643002889420539424921884457983973840752335474045073650765662720847730488376165360899730532894109616377481577948932371239955061910588741021663006187625842834007287803704762351135391123355288371861793422750341882713847771010360455170485587875249118773092986934731197068557119649482932511024475647341430566731458844628247434997587930572869742652720712497829065582559303581721315043356268859117433994834214773906189322018448711805269724820032965958427882493817641887562911986781932928128601503827876507737162577674172190049206341645671139745314374692018217022291526385474380645155800814409914261677372771945527450497584507781461322508779199889748250079645636663750090689846003962461285326755325059731689855789645028890073676261418433364038751954385187006847228349952357628893107756108945301882179437724098700992197101848268848248918507359726376148576815678685482968689405575596632116447494204647254025188007188339448949349753691096010589134964915668574967921152550197318469291362013823384024480443429798064109909915518236872338402412737985575423842637266796763386921142034676149631740997759891694181725987889546378405617554297815530023288358017759408975274418342204175849681758056165093559929173465371821299151229253693726593825540843632936499152350726643597736689347154866836831980541521216220320633086446388672288118224846321988247249923787831320627922034786172345079934608783774820448674250352766914869733499095105024332666606814071714893995800709582584334176991028633224948794190646032485432240639382218093246524161646433891676039982917385264893445105759683241235879169759525840693083507497667683088693835066312044807388744342827184205432443026750058925853796723475674806401875657815831135841019693406974306750468876599107163862859053920803596803326043779294216803200445573553232159562143799944941515799976671409013354050391784504549838492140129543518461951451463932895296842975439505005907784356619487671039347015862335478599241629467642388495102019223353788033926081844565164040382935834279677405606354497403600638246453611172319034715753662656072298806675202561917629550796587975803258040718916358972794006750646901943128401252453520824582585262711866801797710381142559166765159097936162003211255269681417073353264433237635391951976587416496843566338030019924428710441331054751520344730405750189596842243299202324616589507040139379698323405879693779280145276875424271262118060586947233781904574056351116155602999932336800435569803884064546640794257341381992627742592415323371606065787840847173509743304396594353500160414227250430769238530095095134156698271502815192111936112619234225572345346181111325028204323684181656530657356525960239314324212379728878598256039214841910648365428613280018251036518716343035715659528024791858095997102717186251442739312863927616016097496597272125710322265580329290903750112937807191049218492241485326379511493224726183739846941791101238926734364277479892031573297239296204192949526984859712896143014433863176787048476188680250414041350800254303279154250112556644085168134484157395069470273065628657994721828551702176978122961878262272993565140013857088440697717763075356063467906668802858527352456122910554177572004878154077612812626441088310097848617862556448659097293230866272174598316337838951700128604685898520382912371091920982666149827022826847209166462059771898491304794580020156612231379900871130138832754264489908040626959376365847887138563719570464576357974423100719506794892277399146284723058469811968182144088554432549794085433719182652575363897739528314837158828939243977350684623880875295775714637850342577809169002206864892438832624657461103575071091644639629514168405246496591556524282068618994105270853948231182499814210843934865465689052937526755792436382912264519212450908549481417632148809949503536744182860811507262534027649403912815204584300097495792300165992965844640588145697726556263835956646832206008691145551576508765045511138901940804512224552494161674264550393951024273538131026325024463582211498379116396069095884215331420641307477377788084444457267429419530109817883142262086386966336050756687000592860348037730451925967409995694905084045919770276026306141483879155744001152011081875716040966197215445714599342380343776682731750898709406724235320772527598640620497352566031104517598137440316446549036666975145825794708892469527404550564134627520005766765981557116668480804867315991753803598350537019398053213867294647902831766119869000912924148618333819469914272671175333015132501098861824940233909807422200299206339672824320282420683064855879172957803254687644795982053551533354231551732546833369950416020160733256811530025272068046926551605667374102019641501645238601995328265920332842426328456510530234915627749567072035567620116498614381785866650532382115713960708497510423313108508653923705681244958556168316242764569038973397666580226285785012994636024675523357873508001170412458934004225196440434999403652471359474346424378528202163982924164265271401417281163094175512723120176842725508274949640419692343412827293595417871513746174011979458696452650466522679782014460889876482980921041394442675010954369095404209638008729592899838247807132373980452908737823334541734721117548850930694700274353846505632924606958852391433970562368437292216929941632883476743283571122290343671841545200601205229264874899176005461601299864331401878033749144832858210491755003170077174622735227630988678226038876895625025014216178063300079123359438867377884349445702686366263037765554317411904989775325844114115015785969903973498494450982976130527111510910560663025570349941993843762547514514039628764854382775526457020417632645811719247096096442087984179606333113458288199959661721273594513504276943084088656482020931346796501278482150127097503625412404187189089047961415352831222991109920614019714332677195491323566347493488671365037046987775501729578211346666356416734499323354485802901091810712500255096029134291980858365486306300938502970439970955518733163982476948753685241635014013138788471488653099019880463919016448706782137167189276769486930411628809583474523052350086878369585730375915527714316393723976879613172573110610472682706198070356177471265106385628669750856652447719863077142923997281698588144221709497081114135438556289307774460669390746864251640615891292529574590528314180115315783545326709346981451953846740616745595274168534541311781236863831872758151729980736230737051847716989542663025981994337745217968589395078879214709712790156821764478718937964950844880900830823007195028280085670818029137706441407349212938190760694306934951247734630070214389150230098787210687500747226675442841173417077120663562874632281932426946355026949499435100310793135809598827885640005326519829133079556370733643864622319981830167345191332647731081634345912783954301057191616140826983133742711850589240949344609114935466072704173119085572287146855001514733219590501347909740642851108968021544863382865756980709336178273442378274352782574412924286343497161096585241936516138225374253409569772731912005146672106731031204860060783026868408135885837541114808456930419684086593072628890725125368088789861329025568334675328393124162958728519080242400913386303810108227670953579796735837794511634976802964308154905523272548601283828342274652681535498936661569725557543885269993196348366405110508043617189569547983553161802471196711379367274770133875477014867757952474224883272162227614569364767621788007715832832370258189261160825604918866846796774915611521053579398667959134134114657526863781798001080316602378796099464739792544964179734168957698786293261606197919726250556826585836863219724012766498726672440482975552581282755401013857154321911349202872724685320181642331882965842368075926853188697740775911721026194689590632199176283589085522777455747886583448656780948987993232171680971472530291639547554744662258247022029064624680750018259314292077771323160919452796337413898998398342273581954018230936498916147372484649107874952885760648877723654396267227037069827350425137407214032373154575493696680725332940881048303442508748477849970800194926928765111356277469464152961618345034849017010436060107574663726891261386879827303507951186745375364925915714494859143000173371461241415335282636552040961954460851083573900491956332785118334190578184606360027897891836675321579685122317244628713547302562284835454064059846230816776617059830996706790173013464624348262578815767254075322685302567998014789686523611069740817850369842520123199517331436445343897705580794731207388176718273471200548829892493259622421447630374163135851742224340636413942134411387263233433855975110044922801379867444314338610225577583499389309180291122736017648467235327426773215174573184011028720039321166576226545829094459231383556961072815708909659600516937177558097670288709634982936868024277758092617161553385851552242624109700508106486753007904298844135512312485183770207706717793919796268973321494532978310589399514289175955650850040683503008200206382015570688233078347017806680788792084630668877246204406489805481144948399316584703777985117877017455633327759200816655624033868645119736645309497764472320280543393390741141872135519864417805304036372871394868508338109315331796258674069142557634316278676797260069704847027983788936518084653458914317707200078736278614574268068304964271108827834370170522019767073730164674803363088318650177465430847036385755210292686324864139959619837636673893235457747901182473623268355022466241000794213860526221272557387694123460022554250531004228884730778006463731796366510521667296257442954989874202764283555276624693146356031800445979810453289187613849763855757404159952171113607650472165903577203585507625217514425624279978490752092858885002819376975936151698842124382259255031611447633872621583927358549330373974699018782424074902834566061534632001000897273936691661464404126140378176701617303974622658911988468266188609458673705403102426577492000996621896202218740321226524979691169007622999054094499143391206799634505040769530900077022451759866825101517029534068477202688532489095533572345293984994697260274487372806320603170244672725479252876198317599093616237905345667747038343542799776168365462267647128613773229036030884966777616533557270793024149411543359513250376247123893143553632436375775693489815231211355446222538952615932672916074062655681286685115151914343584951329212938318896482985092857021234518124751116045127086302447660843317296586407246586165627643905463461921201553836710784246674833109549746645309070685322941948157013463754278346991921723853832370635739971584082650010741832775237487902665667278763077343074094831715460802195886372353343842560195099168583678565864170668905234043325063038770005676015854544137239621698711808425664765970707362725785323004509936820093974996630659861380668641031896910101106717046950831845421371400999881905617406475621085567273475251464956642908971578118471628497754072867004524884489109766957724964224250774557599591265902686709570818288777258426947472690034585786980082999265147376857677395846852018075587926635363361907289590117642088234139326024423602474511742343516735086079908867689499717514425712754269187936712130315042381266121342002417407646520733218631933103455443259229589104942773525600720629056966278660217082692124741261054267345442374931920733127365314510371017995011407823958876657061323511574210834505504879016727731066488970725190724288272065736662750608610017565248245487173564476690804505839486774166804625943790053895946060378491968165702066466075354187720006870168449614916735717424602664803091980722631501890056026529468806489696896383234862643665487086935752853458965494798402808922052224484756150408028686709199779463495725677775185617094928427443475609423533393055687357267525584571333777431227129663729348660390143545896004857316979894480083376104652206053948611231019598432253823216832372737026264759589172530399729790866590975924116813029326886625417297842646537220843567096822332220326874199622432349380204334907113825921194552778152836847046818301553264663501194160006020500603424598357943553907295485350707107549007773701387394111029518968782988162307733802993608216295117334858078589528031230422567283491625654757510751748747269005144901800465058425400902719095975946826482251650769598162634840774635474226801774440776356888019664651711424842563251891903243794647286334761264348704035389000382202777158236345324796353414978173053502703521963517051251007894494011673734088271983330443770428228249927445193309847036674644931944594063223405637402475004797868239142041994806230587465944756112242778986181206254413390947913865459275473115868352424209668423586830846089119705990364343645756891013130995325292976969080862479577097688500507096646344732991707767831155746143572797179891066539543745472056668883463119663439658255907990496845015940143214263284783480739627384255352151972620942191422738628900257454991436901063708034939739998120546402737771403440296746216196384093066299431075013310819070629578972025575064527201549924893010471424603372067902298459434505477049758320909813546222266301872166677971294482343035420334824027581774549479910249341709340303758540076090126790171022251510527977187890626221862403471879923732185749431693578051461789596601583632915756034264292180086590488869878425026013541239227216001141032474387350534608526872214197590251625903363286040766502380827454058245670482070026425742330375447842822037279679553371801055075089541023067178064269627468841511481323955572047141979957448777281097244971733394202525441170471131911488845206265291491225055221177464001090590209152400826349688112230423730208428351079970781599777211621034314274235622828772897540509277169232179764604576069682898859790331680180129845172395532897636250409359628992676236566179202429122122862108387279967419490697526976808753942399003134002193169588325123141367983294703597306780848837667162324571722187592377926480140288890014767174584802542908634674922836386771330952032763715100739269511038897678748231614788534657304279862027182828264356295175839816716353837837185001762678490859241881778221900820080259778140249698795050860000087134402564567530517417481881543880985782870245284264263933696337364397420554570386460609642011787515664697811175894668208453829880217060754503551157654021251618525511030477534939854273160222296984425764352830641181683105344956941907338306464634410276065813414181225856310132091679857586178667173575656446890093490226055475553518073907819013898169857371826492340903925133151555642647376310831036677501173702474729540962053766115990867967017876922602792006136513826511208708276406490143933874343706138491828903838007713896398189255830414207107099218970214116634521142075891629411653016973742576319652868832191825005280885158559783637523590438029409857488984392157771728582236572386835058454798604953261302046545759733514920909542373650461639153915282397807191181766398788828763832661929982257225390549408568741002012301341276076781197143400113018019898165767666208328306531354004052590945461504110040353758179813806028566926710408672216382908345339739218143396789172096289206688933406651299901866196672747442672559398750128295910472409110599665471005316658202676615459560908809883424935678335858400079988499949595444069163041267060121069456859327426887206475662083347378710355565399978156153089167629976559613297153764183967663682301892898874328300757314637539410126345051626692786500205866564642015484793984400372759483533348941977522130005809688008532258990713516779036387203228731387702154208904972381347503298802273405899899784261912876552624574653064905066036852730647690339048311756689957968266819734434609368012584314942241294554996995448687569133221851209989230604316009383867211312023337673581538080931435348043332046067020095745999763976332977528245256003926862436691956186891803536676050368561655792403087483267834338423910457823138265938681816721568928341266191182024194331741715704313053556241209522227740457893155108034468073495060212762531089412115117877733781062413129942513708997449291806105540110828199187343234569755401669594154474984999141980768471356554353899184565101189108735054457616331413488379850447003318683352075717295326337892818701985809841236753819911109129665127973392082148699997424723759516242637698761356480652397946653286502847907685811635539834353029118627844789814142567983158531074614186972536818401331012317435150303167311903749733203965213419130907395675108309300749427241327164266749893368630210192534541206393732175236493793263961620844599691880490157190491236874389424278485723667778902081832318980103463615978558192249313440041781556586707554959675553184394044559326718196033000831275994154014720748197399722609960521619429551069436797167434606481823179424127251967089640198994782221405387100019560886890772116894045863453761471082269046192081484752931538891718063069651883578136598588384029949197543441545491549714592270190428146836304123500757274144452093213427681028085393259538515841121810341654109410315939413091437402976237846931957329185164037202982107797302540516717207344366458504847703634674062615179096328667688432838863576004921020450515065974115454367701904375659791395097087374927917808964414428373335092763166407524170403765600874031151172666333864429466330909017036414188798089691117920494072259481957479609946178108751208191131887664116518446017649470582619701183508651353138502170049845021547820346318952700509317600266832726724059156257403143141104216865483924372445337067554526510268445754204751522545044173134896048450330755742290376182146085399591945466522248095679979475598133670747655193118051776741071359476750636268113147331768681050408714278811948945749850649359046536997736556721548665929021472980252344765446663301118912698672663342157750072623367508232842021843780508525803755658392570266388825359827785355468164465840054256051865448826825017072326622404065082862405606038067728804665916533488878368850451245515088397134630435278011467330988196403830609617682463414531785833610334392176087883360150359849494110326076944835483343753147414409862207627594179852954758830953973894317859920355654238244287644884188282159708200806531821206825733627003492767201240872392240051975887228717386129616679978118778647444820348589367803175702335705242247223563464658686448093904838767996084545744108972841376283894666425889647916779233134563908444863691946314956658928557220562051107147420002755078404544789729343278189891376544099511853901864274264883173602093463836072277663778894085342645335481090297469905576270331103676516484504364200445575175898135101166419562634539152581643959876050034706778275551157410840399365690146095326300502566868964010253743773048554897425124861510740876498092617249050059373787821693201554642909623828177301770842426185560552413012871699149336192062129214895686833707567946696790186147661743233523070825748289954678169797299983050738862253545263788305588869472343168042900806370468849840401781072334401337991003437794000975468416287120269521519830949600376956663586400739655820737726540074910415116286295374009056503665725681524413891880506713501236277155382410581324610339308020349283333321891254669967137806423102508769570168004788608377168080814411917687488965067976774921447018798955311244203247493808998176071298438258862624593593387921181463357271389166038119902407826115504055073062617232454296766726544982913653844458463220310354473722943119288264898384444323687550577123874566475840381460700352730823233439831074551163895897920713646922229022804177982875908112845531626982022477455893448319171277560302633631181040691430551470100408802864795433316287098268772511969894876699649756193810319225847870870566981603607217074529072094080114155647620492264205543323761434025470807762901974029135935464675226753078867579511133595349186923230767281100742282367889174907473213580633803528572652738889036234138312175870190457233665150584361923376995288281747080893893356686454900967856186840818377104003127421166579497873469781736733187743257867647374338927374122669853268482971146451054350021089711955729129312072833252009194242385851559679246076900839413800084504190173732011866974500523003221604557300817753561272626273585044883188630474967312467184109500736621141944674039544927503324036012441751738355411704844538365883308657414978483110376738274520920127394337149034593691711410790788539710568232970490060514241941795421556338025092749627833127904495328354657496457140245419165909250634242671416312642396759044284675862152393512088571956444177164812487642066304169637566687168577955976295932323003808002739464991298198290597455251168298715523470760880863135502010038944805188198850680274043098307445908659789230545254452292239701303461701151705598315066567899000003438064549546743757163904819421140361927677812621260478477777001037234965012463133319144350155778310685789341557113026224270293527177943223224976986317133707300526070514216215427372587366334883135829873401229463343793626644568470902521732774223363576156011410318020048675033306131348675527144863826717249551191821959723614028162329241004713895107447659447765207113044175958170961455168879604060380842473476113629779908822161836959399248947938478808440712398341716226521593472722715281986280335849907029802971980995377812937847731399235719859487072840310278792854818695275347406100633994078897312362315818780154633875267714179244131288997081443819300362235276074943464459816824820340841813028904702200605581453651168984893209356773284786569866212119085152443899933904342281710211205457525433294879384722650727724770157347448498292078759398584735051743351853444942303538045834362970778810016370969688225402970273626730930400517376673712677671380318321564505594761987743756061883224463596939293938078483391905333082494834009929706768081652665757897934641852316063602447535753261376390438553290975018918067604331112791738998772577203690428365523826430488962597098832436276031465031641711805796311196497027473089322757681552274357488392323700925882171602256573500865607327231301727617803367480330505317788853435379283669036461336929366766230799565793494665538578742406638859255363721852435153784828876012389030004294613908355187560304741357998927755867550733876408560601298724195809972940684512172724265328172418015249515358236522020429813000919014463039828038553492791128581506334716941618814242600716421069884002169963283767423009284893145674961835233227995510542291057517434240563278436006952573632386233087619692081219157092317288053108973763801917390474915123584819883593246692705822514092218235963539398959761717014333679160574630960138880098935651758373229646290511883802476614065149870850151539186927824287563636815796693881603879771630304236145153076743320181258395762124669317382455949683463852436974100100448884728358038506109949545262201643181666839483937821269519754082374240496238854829273551955875761186324243280541888952899468478272869443397310059891836525977841578107780984234697411063984476571734174591398020697501516573854140980403231004058864093541817000188113537842433943715572616158560001526242477652525881986805533685191828615090761066758420207152014749004217526874442583221611427414636128160037810105690940222223926998845821200817247139995300982020703312106851822014828641579468255871928690744378657823734325160940943580912529165605340641100027216788507677772927193949601267999838922634353804802552690272050688843665733756921002176137093704611418565492777790550915140578637289241692218945963659335173421827082163389913315418982706063272961244980046626488514741651087322478684786516105906175705927000796792820254477771148372365882131765683631470084904820728681991197690993802453038151659630462019147073266745197473976641020294929204673550534601396414180989854775498386369076427253155633917574292667679573054647161120349075154138198383358877851824359367345896524863105669038232824163248968229595830484813653484181798562272560840948852971534548802046932692805573633712835005789376037332253901536014767638747733185511565241184668245738103254890233218548742982554475657605648926038356302746532938592849643377383880449758866953069465696777014156401225616989376053604829944292886939924654275068299542102286420920377989794176591147772573760715193479208167062309489898608470239207908088389829597355053455181365577643055128927287112268679543981876206314390511992734131968919892788982635642403992816000956675344185796162502052336861122489145801762828978604720122289628160834126908774217404174446867958806930641304789387401357706059706846543576401266899170215660704686811749689632661379260509936113400757505195301461369589944629081185110561226735587406701532910324796118792353370070626329338179536777218311073874710938442298873221716320607403392950264929096380714348524626286018585884326341832553032204397414840949997962269248475887171245264614959518969921371725985244045152724010393910084045637267271407824478037446502444709869490637628901486220283231886131336146793906837595917621631680678230392225816740322011883803559283641198239758926951574966339313449157640337287214066061858321703036387667211267619132435532489608862365210852661271112518371313542378968688676265254441415525709912587252719841828526051722718047745737639055643613700053081705332411892718384569843260120706037888233833450446740698564585251807002539671866463600688735294475071704707442714751685756498988487091048784756333469183197080835859241247771164829273072310264217774153348203813145436477383433238957372898254281278368829578687352427590861605713963540930731947331447897029272232367623390759957263298828138621650095106891528090281503822083058290456025181441375746868657599613245525203893540100227320078398499875648381539601373252350879404565752580308550658209480388159687689854767830908795609823691488543494603629214310427798135156438563117937536920388325095712314943578892693900110596141633747159374940675049903603639410698300488726156785101109929147563936914452372909362244798159640705478590718080456187254386770080351851318014244235553987321043886565706171440820022934441296580372126220095866703112338649894443943221797208156929427769187861827926326503104695228468018107450147278869138709875272772601006400663301095368963391990548574910961340326672338903662953635606274569729534129920665204169036974613484726087532620550898056302767369108375195125861918180094310181249406043077929173252532910205029688032302683697464304471988072444567880326486689405922468194677966965238510066667025665112121108822201216954153802943553871693368762884770623277423760609262927353349138817991042730910387181139162081681314394171555108115122739721097331989504052023183504625122966342647004439881224638784576031427394883763784059724878965544537348450958214208890778426135949859148505827125582029590182084138658479531499645202043238429147093880367795964328440777559790739599656706095277448212639832874924771866824291805340682846114295602405651177118403289439436406479157294126206472826724725333675894775575813233168245106518948438600103166815064257126426433011622485634794592290569033757167893341473601726820847562300629941528802443622198718393477375489344433727436168442625390565064369214650716892723000805598934442199539108641508852380753936987627483674240825674290083313035134738689510338228606628849945682795201853871289580487473198307132548188329040007170124249027728311149262840867090956796316943594755480616576754888901620551597066760632986615891967879113282409287588096544882372029341516020118870048374290525988351069961096491494783078946632570216724939324375388494637444923233566997205863336588095924074895019203069180633761677422882073855760170184610149031538649809593330536820194152650903745347830087674974531885704570885248889491337853972962164981814322070770926011050835437371220372558139558423361092360846278824166490948686501840834441641034524753805187863903960413643057591128724489100809479070866481699222503531047462811075877891482278899511832647628215958968736351804755532889674586407981554471453041922059394247720814838443736215733493080622174135150104657393147986762734667101762313961225736420558630759757995398997903191371548653803000564069853908995912190508011509980033996251392889603200453564253813586219383725787571946837374494793607847361264130562279153344081447600392150464539796672051704738073654439720647745047556218235010801867123946219172061844534749044014041043185795735866765852453968532127597650730063545953280057280387375336238509456829150799724480973146493182165520054831345338409878952559843425303965508212457026435302761242596106621772691538340811041725050864581360606144750538797016225887253287481470236153801146738564186426088594914162469076696517372012128376529565171322727941016326859654180740353023078866030091428306754798306628766072677243643536747715402324656941690144784726159386825726748663570863164813448411629785291965552874884240984696590260482259810329953600643963230259420425718746787783139795304969913516040495001045352001932785985688338809749028436119228460832767846941416169369888533078676080550132641920448012615127528885796900663662832609699078708437711140634183695319890725246541282708916616886202905736587406092051802337664275671099535131988983284701428351959795039672392274678409566187555506074666464913752955354732016283488086175085084473953276066387484523665051651715504519635391088103157655543314002499924945011618846241345152398894912026389595716801975287366411770529107937629225341290978216223132335787617047723173609487005770541349161861094281222905783624341835156403036179927229939739521487386310140403833256982258771572003866475432983904599661247530612094239414512479469565756676796466537846425195016422774960068741748105630605514552500478906154082376649547100148254462796414380758905694546668830343638308630351258979852624674140771553011218947779113737195846505821796695842804117489058666444170130996592715856822098411793556198940759130038458717592840034244277531601890934013983714863748925931924746509900494298430129243582312756263151674882670904043027892461052808622948812750783478060011024419706547146553920386034741217220662485779083476156364150506643224996273046878221133311797956052799033163824073322445550086244993975681903804340527810022409860566405728256098280625528922463057880977712717074220797759213132399622830508291113655294413066343562029276896345106545644579127028470552145023184399945923581076015435833329764776483751458138613245439404664318462445237400536395716909391730881918001728028864550876668994239224567353018852435486398299901186266209540561534476687158279401633479904792962339884391093022039519916988447859095362321869063930636563196021440511830706614657045738619629879845309926182006473719967974762161195162269687570875956806551513580187873793453099522885073474220369141731443611677564382259211540376791841255154491664100191843872065211072878016954460201126702937423515744977621765156482079076506243888067532402937645798129058137826647263227430476417270180236891402630056014023013140098633101717575213135468957274972134509506825218509979575992684666921242376752988832161093061923146694424734147878063694267790340531369643388383628376369371187438977399515161780081850050911801570581459698988880787261585670949208061196863899535399302108290382402127193203413131991118361347325267045033021733284766824098357700814610302136971096436410019023739886377567712374260937618822875210571887754275438710959812475970521621582724087974127669866459899961887971437104978684826648998831497759212381999126326318284925303456540653610352926391268545955832018127195280555144637232667539661277256940630459747432792247511822451477995561654060521089708271877501689683748984081794297182047200578744418835170507472576808981548561703483640329794685088942414073312168895503993584358082674589624001738434294939933068491225516795116622631800623275335511166188518505854179076047589861597103094679198279463273512901994878644484399996556104432767525246404120663548298081843774809948228936751705391917914915620797990792328441542498412815353262214909701930142775051265758912397450211300841410522334319908532037462239986000133176168646991006667258083293806368641246107038382548685665798333065533333205195950960198497172547644348738764918937196320195299024407236052175818919011800328589092499622814810838556354372386912700882419135054341051766089881369538914364645409606346318531367656180990861977810311996607603033176411703285904410425514728341000864884833141802702149117795193241936758921209950233135198317318208883434014499853042149769437186129105308380761597300627534272322646816425551405630683880759313915056181543365242283713002661700636552229468431079321269178069114221245549383748875778717860828983951163238919941535777187341167259882142755344718996601353160608535534847059986670158077924198453248805185123649305914617662144819573700598543151456510018946666103545274913368726959833025097140759284192700103171004511970439615534968988826841954976860213575756205458975938711067431637969073571878139142331839268259645834915375555221621859136464587875328071477440338316788641470473756540374280698037145598591605350344630104090041554395802667755706587422879854121222724448629214640202257021702419715360227809830624450615368189328174142491560718523036804943942336565993418721814610523094822801914725703528605940662157371411675647084116648159139978302830013925715411961936716996608277016340051797903012363790377241164266135316241948436102968173733909590110408831735738297504333877271895073618957425114795058264211403594995840719102251349996539860642183152608716580598221398846601022812239887803976037066099059187681104918606486168279573297839870055637541305193979484938697083877529435879316390674002492124225496330793151806880159140762455903502146090426455672753210107908510615647990459239933189284924084340332957554609482455998908356350020366816012405984876714721606202533907722560267513283231027658614403920070925916775676457680967610337720914101358975464453600168228015559034959752923225256775726324169621892334572111772520175579747973985837230296584489101503400269851978245311762891056817978464838442064951373454583197905538709801047337112132731923944225107186884477475474982344404635680275011232205205039212106072948673465260275398639348868258390439491553272137014137108811053769844232994270754137188902649347398836206264766376443522574020745899472103178054055033615737055210905233076592978486681419456943203516215950630171806640348026590561345714040474172581826825478623178118000806032893241818197813248062656310973256758998526608886818934982618958020971642308363572902493524480688447036882553757975459555983187089762487118713577197065729372401874731364002001837631575689005281992387051961338751574639129173393947190061820427693354145978048173724865218547638164970886660912506500270360273940855093218707798496954657799060818822604949121391678045877172441013672130567436339007261146713312182032217238703121331570379513351955184563165158760235291511593808788481550441196559794475808637553367201971551480965668867462554879853305559748247441394896182916533831790266080671606477833709193146441458987683967687576600274425251305138793017156294036325434126910770536477032565094478869965811815384669530144529663538152533681765792038238085170017074986995744597539383436438408375006212557869882572507723356052923429841544474240068161848118743883427661618524246953899459635145663480139674591208157522218158148456306124233966308923289204126837737485095702260294991101088695906308870261436852638487866456386920909340686682633839978653739322760728409565920761873754361974104366218730096921649419724037104481382789129490449321896607011529555291167229593532659737967845970156148279688340402889095393951522627655396134915278361501076979523943142717366057690114610422308013799728150166926834789450237457302581109581637444065799036221884991155333698431700725274747632137150535475696758843244896464242203412693753570301474181043880668594237184375771376326233491265248716118040291748326815856394602228274938114271120613697261726648896922193571364235881725745969576155258777533870198418156572803271247789538015850095465371874515212272241830035604595231090610053105220386007445460319788098840156199799405955844148212524920658303369813855213101537120072998263490058898961372011353781043035896740039985762171929067959390317591236490505673472923809238310965840204049465377963855278635874947224511242541519833701190967568408065842992909203683473169775973874136468954576638145846570681525838450260409561772761831271577936340249510411534987070198561751759322003156149840547733251383160766098956418753569006711131637992218223169869000462280500134314487986121688251881574979952601141401973984967232082236892481039911963002778281620106880378369212784372716768040259660990578841885729155253498196778954091982246006875329750350454769630390656091970881271521219275845215595181394411080333137503096891336070737591005298831224921393345149194285140298735268183654353160688350216917411281391287448596478706037450480540839660599778672923932409424623298750299244743030112532083104748342931939774392235095458975878117904367436440095049514153749929211574862061430414287233718847319898968836161658976028400012234657734629088351053226637539837619871768517122238864567549296801961277400588030035767051826940894980794624431990300378581684063743251221869060017333381037705863256873430145454877225293470860624735383551390199053061236367181253921372167377691370150981805682162623643297264076575185799709453495887056438158671827206043998336195653736001876222572540247297089717006925570149776385464998412664597602688193200184315164424636312860863652297277366924495737464301118529992073943226910345166724246117232030872310516867696730355793600230265447043125780872540547038055686457623539146301838332468401772930820084101016300063004556494566964983495715770249721487307595691032754218355299272742138872332319443635134797405790512762221186281445425019959377976519600431882712369135303930852214975798628945138583533358753105786986558033134426971247494859924485489686950779585179780833173846386475897187366305573775607133046684881284334167974410727582217243863998907994311933768513598831260793166805235706394352665304012198984747729663896675434458102802112171756266770776811217716847574474889514022088436579964479140428281750836006530020655818078294826523446796954918774793253899398417223114644263194764975161519543651353000331102757010756409984129153067005346325774063478751302306707774445134550080999302599364460924276705549150116277526455615736952360140220433878151502154852390649203826893994851950190516864969419198043466168387537341935402879602428794984468935769191380071780700632667164668955249202915348843724331052102473388259115233413558744535413507586532262479515732797139358569128600499147430220895236549430109977087825022149655600264006706963022922324866284176155832740709845763542191636607669361318934842917294785699054784799256201557997160925639591211785495883800472474589566599182240505638650333290001591622932822227933098982160374654031489307345690875644287382086558288524257422249870728445824497362107452171292252442910617387708977881022045752718378957139013869030387287907233098798358111069814115039560297611269147778168483312562010339218097584561109253779247238683512959667279058505149745426550013667367902433845378147217287319180020059093188984198519529660750847931978389103914499114417216571629251354489540308071902755342287407970981363992253080304648404773360379368914451491921871392467327332022266503596481382590565598720280214155985138401089387411209752054923533536040820638922530131185320387035384385365538386140481179446667157839912226223683882650946999246059941498261440351611941188341200949728733596174458504337349528035583438586967609836147718705290933471066593674014777797357193378634357528415043058045162152763540190647341357739666242438178906371545298252714235824880182156619045120118767750784935599703976239629130962693335289680184199200554128529278620030957523519211876912366247321089314699010477218269170306832494907298607840019935169567010636933964346479088761147685320447921949910124477066235760409076269853661401155286777708546239018729738361263125840686575807754844640792156648478562594043739778637037161178964587849043605928231536865782261490155786559828905659201889447121031507310286284890395111759355277550609045239170719081228762874790096459020714465842731683393902006212983060406714249021253864893831659956097146925427689229479492182992907820520098383101260039431216819314315420716113539039482121573015313635523705642187335299572184889964834761872310993114388058518215432740910041109914754659877559516283712079581820428339534901765187812677189313549129776088857733325398885607626892812135601513981568755173559046739647283899605347314742286537733458822583208169455927907761276705917466334315821108642148033542778994854230929423759362120770636336520998045307284012263076922390921607403714760672962952524582249930402464916971405228225956302575301526685167281612000001852274701702378502989400579900885363874480513881161189026278715445483371748034007801943741824639605245948538003969530927877911293218758001479048668205772069717988241889316406123335136221884960739715143286701540744181881575420356534642100296439998002056424421942374592623696979685446834031857841412604374121681472368091161808727055561272115654544077983894450109935442254081376386301366919360871337726846690829878418728959593111063140519614409660577970314304386771939538265989041523643701434946759960337739065123547438710449865350535439613168748006153411948545494406284880491006976586817144416322715221070506080223650296382956920230895456255995286740199695054638609905354131675035535049670925537144437459080768226720203551408891597273752250957936916272280857808164791666651708608341565850147017791783405379169057790094697392102655909467443454799333251714510141490192169549927603093393645491842113814627518133487765924890884114275832688484486607142690256727490680990823583039027497248574330592938232284659140947438844275359962757922732701111054596548527747543975059738310716357476349906553841370223330273270712250444916801303593282559343951978978119068398497680503219018847187081776281813068269752904380447814458841682721782202730123323831458873451253042335281929436330323031793361736151538266286300882602328127165088258769963497338716400296421841932520422436704074786161089236796935251132482905159432366593469734297294939102176810497345830277998243715090185087273975237616724834441659933188838949034187315943129238294267745418897824208427059587613160995930407970879117517828475063760334090062255186629997193123230989953677073872105761372114898652845202262501013019343647934443226607007062822751082686897546303512730669476582351700230341607793740187078127307035492300442994334174211584847219966914915338757806393287806040720970381073244059709426044052705142887593906053673252862384017302980848942056898572870867445244019339900554289506989903575423743074271148410540610941791917945475388570341289601524172898693402356537356145595840874252930655856796161701538225730545243033898935144194427640006707229038652914285465107889077396729513163429079356022037577736133651134672989991919821783627748025828092256264441669631262761480896039653988454215594804144175201795026077069037030340575806358941913247130593972917262968797603397504001621015366686622971783049425836035869423327012156724448296008579603193860044912573551669986530706835135808871611554964440389111503139443257703474939381480082556679472214636551674476354237375025053597550261968372650989341414060476824514110290286656417022169273586436268434136982258380986179215104138244792572271889456181274522793906727276669498391383061506442920854809248854806692637122511163537751532698577454001542205047076100563628117140163091886920723737467197310740736727228973204228666229749267721717209670201871903262384019923045856854814226076103636786328895299347372655804936720086959738537434114851237720517103902507902897834104336643106302604512640792165376335315557981896135289220873205922168740200292575896180239538396491510651305414916749926835435374781292137441312868651504303497688912555054133428546624671397286587344243630591457226582668575409613398627374845246117786647987140395592645511158591716090104701680192548141238821402649730978304256696532628673928173781410523758234850807611543607304199212369159809898053875371083828198308636151900676382867779968936812733224296853014861857241526901842078183737347407246273078505183703666043551920844624787604471203760589605080568863172461951851294956933483253943492337369928486784305626176545276587085768446935930740456663001593094740496303554008560880077118634905497831163016398198176192220891480619807190361363064698808065875197760015339098472370602322151293877809287966162411815427336811398627788611380841339255566534331108040270423141503995835185160244049233387974956975152308576106279989989687615053067654493881314218499954258278199938721470353996805696347564148171266803864168686206010988085391737596189638415414833158966849686424333508562308786802196972937561718316985054296787474554947197493726692250412419867163355566555970294041142969684177070402972580433092813031538135565543205080130127908244378947743982652253398823272483937787332548871648026235409342578627888645665061185657759462893836209340866682313247457313756501900327537206905436771245676930003329250441301585707548202722311132863104421970065221398394376217417855336781911249166050473388957590887477377986446336247697944776830679699325092268420038086089193020973133589095433758193740852387758588225665951533367677947409964916139030800935776856080307885915817639536175547372511503906254272822394521101924010308340279210970725782392887492164027075143115211046774845490560046149711319071606369905956998648138001621262858113424652275239917299207325778024379573583036787442348085575830299745106447576771337487957264931999198845162662747247190888950376113997784287840559759626434324958899565203722931462005383949206399088397267285920830279698915749756361814659511013063060971111431727276879558670751723413886780911760797665526706570804626941650886026466070125638224038329930024221479990039441390216965583025151543834227000315366109758747018802720650973191998997120371849328062409700064905162547930152235097126133482319915237202622902586301537784319643002597527538207021108631082005865097836313138297966927632945987916211416656298479670158622711106966960492882248147879045865377981631360634993116772918071556215252634425668521014011677751907511539634140690635482609159391615994151725935994677583274745790555194131196641609218686435444589495924177153868781563543542796067357696160045092955708253379239756988967522742282500614649916721185068517040976015987734295083928273682641455025422653237362327201290960424883046171901188826813793546351814142846541815517463163012023615022820069404088326422843541296868615723722049219322028806944878640124027253555728876951218867622708878992395048832581770102909838115903222825452099071981890217562583413680355904923404541471426491780275207451000249698064627000245139223947085876888150756802930017157758400711021837228649843235003683192102115523431430134285068758588265064436400906543590968933713049659047672110437836624134757109003285475127736472757822287296559821392425454012887631349966102550477033931710722713850166964137991067550455633546149400177864824641391518918236129186836495429343823366283372822801325301914938482442992216504915811706611612450862673759529149394407316439492127025071907087793713128140829998425648012784926944509095111204829358833813927444628873218665224441469693071674348402541729807678933642849282022423025975485386855907795040345361114354363280293861030470032647436276659870957536796887186444042167213164607594696501258550358332706878123189459605955985031174970735621662459824354668113116118264499889529044933600019137081729177652783429703937114127734365976250515215452507719758155785120823631794104722987437640754968661767935983417146834404360887210288392706615891418092222871663125062901336074215800637498896932255528711047404542125190881282540656892672956584851694374156770006133407896565046625845169091420089476168728004835927067160029499354391054226642204705264791364494119373368618709745593003546510305328815605296550036570947012519750227033920913261750513813425132172851310758996686793293457010149296915777206078813335378884769803887670680098048187394336180763039021953212377041295666220737992828737471831658261245290147017485485609117289451513292755734493748863589378956010881267148251327916470154075791526979520972194915786011076519012116573980099117123634955428528346513915785711479693078529450230044852995485434999729335590545550954286161620321334777769111621365848696271455686216182876400022146767221686399912721809181960138224614606330068188165599861441273265104720222286989418703430094007390119722599784125126475621689277962102152249113846816456336244539245630519809203557351807578469407690347316946272112179255108897861804268370168002293565031509335770348908366524571285591482736189644481679250444564824224973608187391631211089165417743562705464502162030203827986895388596346486467410087875661629256761130859036602830781036609248606273811903262605688523606558952914143568500438835483439624561834237298548070542531718695724086951130608492243835470104394920416788753585588338046771459317970561256041327019331547909131514938961211090329365626803660705075984821969190482039446083570962508547066538691318575125068847375774902398028842235148567174432206062981607604798063484872237611839110098002207082349076415603163286006458200397729605932686836828065264426732501186911192992842496896461893023512271202900349023000322040160679128353094504008954335835433894116585949232150872230231163647231831810633543032006669175882958482925758652379498109557605847753849563642699927272174757929847731554511434278743219825920307368130157645294244732004597753649801901283342718089060310043161310592933827986508505908997918713217386378678154234406787219956659224913482452701200715903357014062786074432005226387561479111289987490334710129337393306989899815745837308451307507607582455300872172176019496730220737339214675759112097172823666899922684185984386469414033477975014777079970931774101652665031954874842680157195667026618139105771657809474912695915309005213155407825472453502572738793346824489154879890590190512693963441319947276219348282968312573136390908843024960090565668109278687362724798961579599245373802457363165435946960066168950215205059471827621866936883359642575409688915619165987420962924719790766556215523715973555576387349560810706974536387941024247897634458394551622019774187729398438649173557220570494443668555919608522843728354803227083897812526055259759749589658139719653590556945233515047144936942182656059825600338997693688558858350606102607868263739570740378556866897097631865063487272731344365622351719600789245806281833191452111586797420256280789033381928679916789049508341217563000145442583138521017943220126875928900238197267106124616579998705189094089635495828108501619558341401502204239164398312982773988217609983956574160635195036153492399268058700923332613428816977699921895746911565943795716919102514929296150886330720924404692552414362177716446606068077824543843701557100266411278494634497117588296670500663108699551010562090677454577547033075012828522643617978034391358505209903752512703436391897693838382823003058257045660825758919014022697686704701702747617446306093729020607098508959095104121091917291598659354533100781999366795395525286656926803111604103790171738721820976738720209953963534075443224775210656279280086516502619217519537461143366229833639768055855745021263352965485502038817861120004829385262933205552988417011145832911019991185392354961447368461581962397436469280672186299392517295081060991339473498794476846043197527262881134888185809931958079885893022698327086390462659780802939115740150635556313944631832427895364532156438361219160669161045598982754349528038757400255594761345694717639886640084079173488025295877801040710638375061390053614686302012898300973441843326342585146487481701924685298725882523120099698134595598672754627802071816314417814817681458125694167647268076225136991469535616390213673832746102026368217622716519999490643585255116664218241680728709946818833959675979658473399449707045780939384938988202039608199171880409922809952729986920991823546614385529040571430845778718799093369163061704521606524293614008147326010869556921600669840792777968949178163413120666258927747125157171145818455988343362133784395912351723670703447482675447879079708723529649268548200437457405621094157154053271265932169176464420490983130563192630105275918830580254727673385370712842928919976951190515035023825984182524715966593277604348176294827907603178184297300211261057518891929035997025731330331267623487972786059159081640460211988560783315481464298845939004336513443515430424874678467244013868799537972285463159151597725849806924447691378500694283903040945220951948501995394786288474670930694916148607838804270936628144955896758916133095828174535316478183775958855728665382633324747554732253207921445367404709355185922400364495023112709983712895535625088426764171335885607403045975314159738742253157148548922757736619884517178415821406028577997928414397562989106346138537708443891989503407696393995453576832072121332213023153886678465886107276119072180417293684566376738769737345355949912864683929001230831855405427032186290551233521483202556136286707750681918757577473778620585270794562230477050515713492871848319539214206687895026450246213501719784559123649587625368704917612539926002339014446451364936563455832989524156010361906390447761773489259987407825456370356080390544446114278993218203919550497438703206628281726118311096942197220410718909135376966443256137943269244460418359241340000701144415117045223404078948679167326802095321601113586997440716906365008343032593671146685131429985546110920270957500436885058084914392914257776661738127156259189685616038458927854965933338741940888974278669180904080992619537659868742961406097358349125853558626545075097426920681349221199062185293884514210498918278028609709532925079158709524862577702645191235851832232262128114353456041851697251340363679926326369059018273732184885761113690893943943190542308177000794340495283163817682036669431204043269982771461328352958893016278674605127684396025133129857737583450661946677894814565883251216108401704265053301680546615570510698417160096781263577446643622072936598428131208342169727695275849702847752349071691857417312559378878700458742975914040897452091257967023984596113345778265901325179620399237920005698455136363073559006717121860196199354095901531874143773122207757468426925624339135956237837364184184715108857944023066201639846446142239512733291663905849347298455293168238980689250025381644449039654701524757407938727497021383708549293648313585366770555935381901120740003029305519908524782669373853607108800064967016457423004762147502516566157149086113082143157965663694414235048976255553148435441831231111002171951830101405546437837509788336274078812480631452495342849710495028855843111909432162270301348748349473747577561632246582290753666686341197668299820632939982010395565734971557821695479326215951701208169842248858678028183090253141143171011612325292534911707171555979022135181283140857669491413367759090467908227093217493818895577314572188102912402038950583543923858056319032596624086610845676269166722851480964594313921915253030674000815083811659493891663415500368843922641199258519799272863480944576153757982910905292099361246431487449144991449642279792400347074600177533475433522021752578169627787258205698449699424011907951552747858692638767278418378969247976879184874723209157844150031900635100787316662217031874223040390671392604764272322859781191081087493684885203619858760762066165657968760240146356588297111153320725217238851404883468355342350310427173632611408388071110556902144018347442900864982778156791349570319897824877595097144431916894118754744689492034190962759529884506701163838422807414722060819578818205630247060847727401939474100903646822740271274145351131339711890440730397086176657137337189899935134570788606501781087876650258848102735757529508347471027571329617076621619595554272695425537473074122419764264230478333988640487760837066938969188441055389632876976607080591423177208674903475699708977950367208150720310788613683856070159031754405167860288063866835579494236975205848772239347609510025280006493406173959521728699214790168885553745505561250226799766872723116414375502366101245866668177310711508617155500085065051222667588026354712780172944803308097503739095870319887105809189540999989152567802708554193941300824057128377286603023032313107173296756906376544585365673487048058425448681386471321652305211927905549706793821659240420776244166134499169233548615889336134312814332777423551619544277534475360554321539430362950775377478189770783449820021299889054764754620989295411943846760160401697490624752303132304866485855633762732407985846351162324095191428216975112777286577268068802945678280515104407874006142631988666086141339507921059052030837756877696560186336600744360831539034766296473769729554819414995077732178164175631995672784704255096032761702278812440377598525669711533708332755122103376756548993671776285481297796556574309107937308230428864264321039704318506872963594294801975320396439940407056114681922777698503473920250193966812081556925753286364523842824060703322498449190512693153370196008632600708444441757911760560404445317147781259957267232151291342060123709347694133505714922143747056273794638360458667883458614444801573216736586395017430028278576650281319712469186651709213082720776400154965119625593143263937117979581455603889715761579459154313526900838505665404632985133598679952371945958045642778187575189049869372791418677058444354811975682189464404397025713754214775387519439130867148143460964736324607434636559276636846894242885419929422154290950128873611781479288814397142474944128814570361257354866722024196290445864098352186242921472988911435396206922738726400491692193861168984558727872820997577251278542584193334579368937575573279089033140569039231735847313324417834686504343183943959727922592390797091346092124145866856758401361082934883597770396475664622229366596818031455360713012295825243466091810269838883262732344904954133131638898167477835981469759089239792631750601994075173594216472198772733351101082064990493995669283884109284958895372444292299294411650326995271549000746391899739875225303981029150090736359467651411776386223032546886959813424203623154793712580850745525257555148720705147234504373738859272945702403457807674766772144587464984940160949484462756763884119957729130343234388416555699709247748896388936359002792497141975578025803416167711489019122778670791929072494011261817857897935979375366182688773852496997238857524963219290063866404582910161345934810555901766979214663063995604117568709941994549260979106218823408793032607196624219197775860504725869023646226623347251694463031564060562002409544458283239670555156412663971171435029087828277380221762598030959590321942393907648745836047724033486706224982122561572129355429807308764837504470933551173755887632865790959499627840825112224417983249783767582569075043731672733922850523847889127736559678314809761942195213711898228042544835416661593318481774895292668760374972888695368271989858881587726335530425538521569010286243221191549283488778525594941314332488344225309095100274061618945577687946881417060771286195037413471883112676360646878188673396275104863380073061048772975760745228653102992466773675335724941265895934274126626677200286771208631969212942498647890027779763439669228596584637336654463780690732717145514116719054025772231772384952390589882306918081633320106980901937250259625696017623868598084653066823087723136840769986757117059148446230635754402051405673925418860986374053680267712176801231856601490980758764264671744936635550187977637874118107538633436351331608409228688569160100121507286475121569683330848148190618126112511360715861532546647555753593695073900341576416451182334639662971368832135182225979095831487384092908145460778759050201365815312920286800024725901697926333751061881991902168324233314805489466371127628472990002086575289177468269283629246604567422651526752993387799527773164902713663228391060943810001751428411959575036059508167855472546583563563227663625586051222218695668543157144813966125415602587494855882855606222108295379368939208551523945068500501398048277388644167717009174401285435203525108315467670734202886419770990062363684041218690982357724254542707736737141443455703568841200876477077912601504088804700204069843220178946115809221770765094811350569595043686765869099183515981787964791984312466729696055096273104461271853329790858607625350443187057851502521024325270205742204757680730392024921816130912817750573222478000891531126167592447988911469728962870931887582145652450978760270613681071161512885055640384597408299066879387990468573507787530272785846213145333636699936631137056975311130200026028242536521087330472780651220474299809955627200154294737716658089464968206775216360873969445746461910516588987745917585735029600086991980248470764063325854708933831559221734356610610505841456128592876657959509744041620188787197041619221399837463402098297177538006160645330473129660188614751684341456239305574795484914740280643289846321682935581095224645403722873799269824804245323456318494859939012924637311475289069243867434848733584146007636736019719260556685479125777887048521539890887533485715728294051469256181787694664488960961548135120121374412568694468124369867837415995791593016040333977017183800026415544101886566990287526683569325121001312930973674441519471364739779544534935797434850991624472475337439441297726913919560137931248003903568758074369970479963927943691498194654731420026975100845240972101963385283589223068899658761472245556322385604672997401070239594367257696168226944203996207166450563251110023009099273380985831700355089106178344137933269662026209371805994596119973130639304842246595094210197516929025470038903635981791880613259731857185393688415823862715223542375095061631575695679525686496627974707684224698415146161815315374869757305096564223287478846031177985226925626445985231280260273938200806075142155011524374647880389981711269039707012460745584745122850076911892403632867221675237493031684146448136742100723309364133603855116144018186610732906513096052802288696026878070343488753603964114605408841589429538227667209642721543136092001463480273003542623561480226921084848479163821014070961640431335178771213138468953888192981679451776621269320283658026609170901488590863544928483502872183324190080287474219806534290750268153944184256500827959607875313711137755212605059576224808753328243784345643938770582355708280837398237806017399267048943826298957729760560881626219661238250617024371586923278505284122603902606129409798911872340521653393669991691372322873092750023898711959997546653416275175773191050479410023814365814235466625299266372715080950903726081462512952446609104098125785301847219439361431751479268766265610871032996033944439383653442882776829083736442268366172536220042265476404073722775537031554525386224494245143757878326411570750326340696103857244953753559230006987187024225657516215910837793738751195424106932297917587242998764315395562280871307253827365920876616054573310815125211538204393015437057654475147907638947285592890071749547603654358662882222143244007490409588092405592451366693019114323996512120157554122983978161475762735180402636866828136835437517094215280271873593133157164875600684714706992371086609782013090631642142136697708983382371937743504275655339211822241569711115046203540887199105308328854189692896795964326485076826721948172288327185105500029023230771013702583041596795662479949367123846839650621671793932079531910163487052531014297456110711534508173458870413791894980984479783314572019052821535148900245728625664566571960772546745532322344341193434361984214300726617329983320428881140144751264750355954749562173906938565887284302165397375246639519792969182535586589448689717220141559779270611193981423084024692926473427642966841333565920686521104646129190156394398452397405444605974108137757596016880536978979790625780245439856912966162117616681820206845080958187267985235086830909437744693574805873538887105704046504323756408384132612846670868626275477845280193660374567157517167611607819289248737703037445680286320492949550316414693363159220065227306014838906848182877912675668794960952870693472605184476351759292644819489263947211444175950057972876451632151938130247777837568335731496540784739377141608312133612458156921134118550804650039134570906035896110989001995134386222874752087515150677954297501165621880905391990600709236327788511680392757906610940410150810438703973781017525299886736888345951906263007622435256477531784147351498970395140924434984935848805198148597859851437123872296185290956985107317766856622776894321599926558934235993352553514440110804166449136178254710336459213391980902618855767518901824439194220364395922295769713850245017056362664900795898610516075063962107957510379539280696031186871370232236482400169296710825961192067189128387688233200478737140233220393347638420453383677672814479804541080948946725376797861615704634208695479583924900308716094634110009033197861123156446356116030183815169157513019720377637307413391617746905954169340731537388300917515264134013002025109877006973801217452802350822218230239253225570048273125859004931613061562862973778022144609685646609220751183351218324095071864986581837345744248399382940123418414197957242230604866890750569833810027292128125606507587484686852304567182177310227051533923745183939734655718965468736809476600655310238915416141355355830776187738302618410135654511955936769392868624186522091027896489334922870067912316522976923909015242314565080331960731724730601567388549917411740579879177244153978955643178473905867276214854114238964635471415975665630723202366919334230839601484571946398632789724040996772169624486948311399311900304351507158072974510773766116746784412394239882670639677860531623386992013332504706411147843681733844492113718593659370440967955821295024102214015028889745204396996119100449945759489812506588915409297626065019502138066978454205522314682131415028619801264964474597178139681190234011674472199328626233922238416492312539712969552852556196815507879526695411532906650610491120081497378560166853999854898275319875560968496774853854952637947622128670357832988493054460603110571056614922386871583084710705360216344093549422269978083216762689830561959968404524841436659672614225176033765897633804855721993554204112150220257466260518474562476105533722710416166462388314516065545260912900128303709166705793947335900793181980493115510222645554222193388096152590018131607404366808622283797177618648771789455323793531948019224902158180752531811380628348487558213587687773491038646838021017206098826438014278217788466847484799307158462434197216531646388499833430970668724300356008984624488691900061748722589147039319963320319755451311023036463186937034531421704500490137519569218174793613919952860055166426117483829627760870657958788872127379803469415124917679141608747603830533856471658896964598735234781874204925913870888190768076105668580050024099547626674178254452936816762117747382962773045336872972200635649464989871087463021956121082650016545090937977935483177886275215049788804199437640829473195904157624529055975503597505658738217881467979190299108845248534664913791159838197011904947098041432607485721130939782164445857659198980569773625221291065330373945953051219021368090917156469873175111880922616838607250395102929680851722602866845937639313533887101708309991862149632265498098609132030867163361371477241504278588918337475046431382406391562589029582296132142825462501140234642848166883664698300203812831819464429083754815679789712845854010627466954127509916115468915807393385439220690196403841309251504351813634324100561445590908561339404960445925946164076447195820599423511613412412236557266996699618401381405030543776050574781820263618706489292020098188022451224335312446860028969788787508418971395074019569107638790681915809935776239676653351765223507133265478383767970374704611696312702871285074204661564974337182828591416375055569779029900631847415743626051281579804193932527736059245028487336177537454586982966357388159657633844665071982698577531216801530949592421405049075459310183868211596989280833161566799314275695437069131398932934108885352816925802854326287302164243885375607492185930169694209218275751280783035162871958376359803602335154973601141466086729764696958520852381091459061958758725596954727611590213278928817051832918282941265958303568811128624371437758864543580936351006387469384144072003421283114650587827933206356334653272442810903120059863361998322862895383992949902108075116854878058264855402916909517817064484797192047819006422471891671113038091351177848441270536486581055325713197692461768681782000457398263957035059035747053527173969178018651736807115530729140724822345170350942498670873260569839048119479159658306738070495718488832275379551258488042646475881729949834546289980323040051548060189272367942776414660198217212316143383804504330884524735450327681509585463203557132672630633170258538359965012329578825625510610090123185620512469406619271655135047004479134543089579950359085787121571045772552079697445776945099091630577392603461896795526901017816828641996921286255427929797800008551701660547427106221117552135021820622161541980834347334259576546905703460016283567445576505344052791048047108649915731002080942765123689456647282999624641781890699883724083819631905314172317528562880357881305707399996052285769638046226580299480911578372660000212087897762894929458610529167247568528562251393163624499015011120798912032572116576580818359607878843725261667034329731945313106047780002937457161134552210580485624684918138032868960623624940573569336214697445538276821160160456958611336969135306701063355831500249423362881926475670718711900117826918630130242982564179124827696504865853613828105318416433944285727890201095485888785069972320351465193253619785941748652104551509402501354028141126284094021975304116398876805884186656521644794310334868260632745249525754883654733031919294191250589316060634435693491704629061880911251894488655667686128715745152624460718028123320474880382329370648593408711510400982147058022681395095374804125070210884599319928203760998819093004984114940766527662549304125782212908474287957247240988832375390964468627081759090196678723367002724865661321844037109389447680482087431342200578074958438482454590853014060318775236742759367659122667230503441123056918170817834626875950667441128087636094756000539051739498755636239828590514019995292832130789756513690128197000818068114151595346687068826806833726673654215711330409790964755859474326158087564422926939469031156228725592511642835250591518226560387094593241232989204321578103195116688988933029697630882598806943113694671084806817284452697076496906419064297978128917961342820916097486121347137459679872303675933600845826001778867459822641953028135329621771080323224829134098158379241922973443519408876718734712036642748850524192502938951358274619914701368318147043986783425765253841774149789013377073040111518380790427472689361949664156866040905643865937442103243236976600611204354963119988245285571052454647444806854749870901357916331448083966663894263705057762836712260948731738423223733399331464944943904544572373083667238924649180461800189822612285445986025546826428564487993513104716975904074335516248538172392558200956299781389078188855611716477618048781786253165387601714760355666847819328910209620609706563494818001633253200525905062466026695946706431704681695479875617231324130226060475694858369436227337753002886266992857323744409870349283168158959911756106587210091894986585402602500887203242115749617587359791051346132840927165872502985695193400268752765218213447126558770310467702872927926781472316292778708370178562866918543689408176879089715815217652877637931332516023689842651028871027375975250401918658765661832568081838145716319345721081152813178253219804163084969669297943916121514149362312380512466954682099624074430821795846359352987639688878662743306937467587449177517595089069275517889516804636740638705939869723764100815146933795121888751155376984665241727971138875555095657561742404632418465115201157002908231219098366915386099040060450485864273733231245444423029660884045671767262805787423890009239035907777794594507361121887113061946111563279654269087756133452361212993054510067600315270175222785992517459869628432859266405187692768035788679993511443028169965955565763973874125862839180329150367166162472125210774481499259366030916028411816219295045602967921387775675890748508022969798575181683687660201391500147291981738082470494279378592235366734896886620776069076301097160107979388679155583023818114207346244303937139600666142541261348928704800250188583418548712040828408388534590788802567087857679005725345250475846590840190638844001424880658748750287784793337935607160906550288901806133144096325614492638898716871396902739817054171003197244660496362865234747333026571560072868771500567421248020283430988349570798386545397328006604865851574984108795334933700219242612592034593809036348790556487559861919003968347349244372898827942894970983412454367541044890687512040038506545142684541822994362211055215318733615061607923878238008844041298098241091114012983798498984745070688331931618343339989431112393350471412044198125263874378956434235058232925577495970195850558691826217998577417959183450680385711506194011618820712263651147562641630931474765753582164506935805660801612832095569204352536211692107041685375263854160273780041336587251649123692966405615963331222043578213867717453051490261074803556853611413262722840892095819934747555427444115787004843253276591872583182710163825386567078360607938779085467706512739817048483196263735247099442572723216146962390526249852479330175166191682710801034618078486277460243216376401742478008738302977876173000081490079961603017609256526571577847891065018181481634065376144786199122682929334784362777164017333218781844517089728835967358595527520879080697254684606236884134630570261030645867027135774243418684277518638399435512593258934418914164107188944715838609400604352117382733514498179943038038626756195923295814287807605468745485116508588159864700061188746950442183919391808396799635845934071230532510959768661020993683557229996052635759293336469849921723613452132381861850267998538860970685230380621905440916638655813022301465725879661536287386802835326942701036787683237154244096196415278485216668864634884106364849287348564366603610531242815562110434890448266982968074032011127720476012169626151033986245535400981729028959442853121763465857890595737350950158297948043081170559363931938074342993419413354835444149399507295581999326419566194632009272601594706377547548857190583254739852203252036132025508170597387370611577330476539094133656657767821786017606209264670151536580794782471098881199690984787287905113368881158421148744716527295474793171797293398464230864468352360876251987091775602882780575076172559631021685729565151736926866464742765679800279621792190302292083716106122011190072159637501797259726488972980173058960331926329469457785742255566824475390301892698465249776758728084146003869036324075654349905191195863881502404354126298806534803600324631852247241122310097205250571190540752336380765483499314107911312247255854414900755955933179459297071462067606133746360570673589284443637162395017107991009238207992681173444522230622481832312000224802788344046591732408726501678745580749347109546946286450523706029096214691300032058908305260958311435906476741025832760124193114084924529435887682273163621111970598849021095233687317102768004610191797773437978256474755273144110044920572567431842992186343162250759111544696096906522482928388240680110627173258091947420632927455022145910193622334313490263840830230783567761547699303191460130794022395639711515916488414683943951617210349192645985941988495046260939178031655597193148614898462448585951905121848370542327377486996898505533171451370941322214718045592797655414386714900390435006807814636140348284900966742852782810013386461912790569978344396375538266187287856104510840972359249426812979002512651750486907141020266267421798680914904204998108355351000884696612666669040331435122537904516625132596789977550553244195730496837736623096884032927302276386873833779171612009261909501530653915913729559918112344944513749408020268367121487585086392056924316577418128871668482994390964209972196386956996735635985804091597535640299773122617058052443770121766261710549724239084887568908500583533764134675927905028275179183185936190068551386308867103760911683017173204874921355915479062418017488658303334925163291587097339222050483156896723523687470989236493557180898370665264871584100416587294819291536541320035362816815667216606694226744836714021728222352527559533117023347871688101070821261485900709591363389911296932022321365707121281773388681294215239353121214519250529458090403777320255190134258076587661818852651485868461782019292706070478770293296420508730631660467775404050282391289270114263090464608351740480556136734122163693631563861883993319018647884139667748622029997810700549855294959317835433124693029203318032312134943975834609120358634353363767323189111868171312812612870480991509027913897000053998235802134149679517557012111972112822279484642240170454968947557254917505301737771694826265216201400593197309134746658967312279030776092791154867540882794522172089257303532399913343881659974390041321686715075120830279108360698030463362805531903217814720935562403772526590166848157834719809605715518458155081910838443908126288962414988655313876159316638031470711172298443138724387362739860048301369556136786159953640602352482333226141413324651372879629300537017473036111936873454484401945618729558341908718071289613163651192476663072029926836636875816209879393866448511866828843958785455815376955417971521256191917339484506243958964918384271302895609015706216537003590407046986552140698571941152090887110705611922375749963816207322632238885854537228508834060786395582918712124614512969220644111743770651051602727585787922093456370385019505077954817307979075440354494360788943854755347111982510628870360281974445951635238798973221757006934876804728094729188738913755008055628966904451528381257514850587273760317587624679058664952170609914202840309011440574738522749882475280944671668730325944511542992372143881359919015293292253013358192557074910682255886409227995716721342809154672827978024623794215615205325954109593518048334654775836749760900741605534597362466311197423435216354226935120863137272815600664927876826049176780013136248773437012797314850738275417540604507457543285811312464209556537817217443431395338640374575364179027982681519961947196019616313716107509456847624960024884751344246964944649852461758840286454571612738894657875430022329909776181432607638336230184662725770290710896569858209707676378054035401202846477236409574890130112907694692079944873192223354654900636381841301156287442204706391485455692079402802217726140414551488819480467021025817113254414706988339416746629187182067568698007235351329916372445567598307371937208518906508620050722812688294069233970993680958948897115411703089497084167769202691863802796630142316297928885482496066680821067087175818226277871318108378382649766627013085293424739360620716727143025338295955339906202627358534457658759975521541288662315542950939214741708611892471798361776997445141533873905652755933452315250956129295639501414377340707799556995803909822272878621833956465950666216334728316027376274726871901969081939605337383289907183735575559327474238018802681208492444469836467720287890486545178519450184992683872259089648713530553427045025531934389894933718645126882344535251575463825589719136331319498083127133236174258153577326699289823284655547655656160666765354618495537225566838601858748008003530723480754004585694290823414183148853117773040785684230208840118750567910561257343938344693955704649371300963819474263970929757098988839752437450891249847073515621990052902602113493429752282225255992660860716589179819759177860590847380512703957553282564463940821806304011099532516152851203366247408023071973792928893309476895965495978932804234168014971255998741436317229532698047845854281199917351238466284326615628200774709075658644544584364866549769458449218643708314136449190057823516868707885500119297586886497052100839800587013975440314350432735217344748547855755885611573641833467357169561103208587846599729788559309863894654403309491255308387098629391836386517156829912174945263764241309473937076123349093732727670839085473875453058676613528114770292970570723463398466537459108654982225867331348338415625692464991175621501252332170481361021845019640966795480428342243500079117836626777419552893545822424666268673761877809754941596653249708271074363597816008830821819595431275267054501138458246669955922190684928760474333282494160010062672260307536856426642723455512786371937496447769795963769897104912112037404883961255367143260029943787838603386858628731794732964140522281960393603783468362664276514010184425055265198833592222900482511806238532102621346951650701800738813635702751269856476199959148668084180245927219885679989641795079416944331566662624114621602514690250978259227694934069403034179829397891231613951413072460698159812989529024657816444743518609135063639470201341601475417586494066231262127975377327452542574642548719328674967212974259833059180433364687791831054632915971980535862884119792994892892677028861833172656933875647006178296040211735694952052013335079926224316426334761248338884760273996503901456925645035515557457997193608943882670439717697026594609270657957592419764708004449473602082942963599765265477352740655181560310873941276697047424048240463725831834807979164932908334946670371121650403120475673756168278952437352249816649485168855106445495373054438416900690406078192348566368570336621110223480479183639484976198533825274232035951446125148802137979651437239632943401783771736727458717554350145954433935016986927306589611708934080996906435151696285633441555761969155505771144634117912853776822629401100623653880426006852640578049066957698117128255247863451116925527559362283875744308818719905876542661546328182443266834657020881888710591537032577069861296684078900963152953110897733307210546517911889131301553388372953055548098714974238048139505190266123443261320224256934153089614528745845283190413611147260876519396661251138353181082377752464582881872750422696463880278541206671294122224837148555939229718475836796486443729357625727379700658134354927227021618954601716493260799026613554519822676367185989427630613658682546679033525604177796265775811250671618880166854270660750775481538440976499482522881896539884935443259250891886327145761494805106400835470542303674501895456707417290081198407134707331662506935274640669014391270095067955108652277309907159033506981405350746376166658768683300996862132691472707104992000511614168184382157645897676990506827856535714773615969919814786520740478512562440524497787171744169927428092676071029852490603896667255841001963810086438945272936601487853478123512082919831382779593482973033451063903043847526592454354211695480850545566944591287916551048095537218261367448603689507630194030416325993022567148963995384981226014029828861169429851416667514442978125206662029258369986488571637403103337817340169607795085069775640856714508459544759506750133820150919399472003028707806639747506138957325404607856959876707673128335746849990995590640526241890324891626471623383951048458316665856760889802127216500284566039849675004965243357192624576745067875714728804993305909123795599043739628519767994682400132560254806364816516888339965913541528566262437056893042707482528896325807602683185739294571619437267227732082103698094699734611585528154409069558256969429725469522867112181507389874911016139478479279464481013789892824552459825174415309394099732576378290379060318033235649455446650679969408118394031104201677985382216739148414425441228374980293166926856227554530340470796503783078771641963344003859073844020140929799769874110006280819079584385788515779231924587143675155771672500132762171638421772381036665021961441819783086794806961678426847267620974897409061696762425605455134888088472307022487336255975444885956263139151499121833959103949450007720449099162306624407558640398956704274944942531796139787324757645198875139899808413434671695937225461024813093505838207396949609223282006190717331915598027957743424883972153881132321251324203658035479411264879614534801823678185042463791808930566605635081947011127952206110477095413319842279286711799198682593593027226903452500673490593220180285786589415883970051717612258602592321543404860713656184964262780703523553347965097270853557763389233889137365102116395804341518692988905855373432460740601415523702599728941462597399500914829714148465222929103331172575592679773993489954721348513049275987693910977537319943240128265362763948167257539474206733230738562817776370955038264503289209609869953737001898757022085884548687990895271499736871827194589013458365491451839506748309641283955432744123133559910701434715258526578832184335491127577123433137043902836180615272816965562967833775436328355890058232642322386990862525887183013577626895211713001396054445569817714872015414890738429829390650320171711365845123337003642462852666221316422202553516483098087971970470182749719630596975639304216067486266976650222039792177082420282562388537135189086656605020981749614428163223163072517300184349886165299100474737025628508015382091033563493640371423210890869801243077940226411434832975500887033683471211938372473464755648215034412701918258288895184345002119135493852628010561278878490490791937062445294664487939111643762676499571430003943455429689145215830515238672370340337496022951013629161246383061928633675440513660239515395002386022293213010581576571899025058415645150848987832678023985393637154408592139804323357651043863935069655816458545965442966930917234185772956272445365689825535398305778186703268358452543519570236045216504593280822074009503548908220079298890037071367396302739689982422530456563407995746504723939232312729195218774411085718301172288150315086311536397169321289833106277399389291476543352607097780697223260376120394045579442879404189658335678265556387546078585730171132992094183928344799986223602025919473540256690683069252796653372755420001004597877460370827502098225321830662801439065598715272926105026763980297314037826261408725497384347998274000593524792653654914265466602636195575911156039527573485227305435910431670356154157076940558411194989640502947439572770449997093967555781115298648405428421623591884519303106354375399822962160376268908173942059093067205070110343305249141389090698637567351817707599123971050000606523718138611132483692461967357648580140020680908143116953690457005236594499993662109717213133381222827771960201648927015111927945626450442951768625196916053802361809683792742396418263783269261492735577370755925322096224254908783960432959527885609897655479510219048819968329424409326841564746338687344531353055171148899862414700224296937051286202930598778701193939482776618214032161961029473357309543818786516616528827351856517437490455857075114871917473158356626043599699388739743674779331835205079510010757664860524780971331363227155256496805488322564428425697630285944270433950741931017988157591025985067978140509594583082089690078778529229626388757627749304096564758625745581358838852539060067929902377178819120215844538741686876806868691742902000201701111777129788917495316599554763950497474975744201477607361103539281083018168549869054765794206112879595593326096877602814697958755249094236816216781387781412212420658140634975884371264153932866237869601443020167331379924107291901875340114951069810143633858577210915819980234152825860594898769378717407400682223385344664249775250054048492095504490424434051199729524286825795968294023770758292312603745293094971180018286201020873729940097226502234356222049848970321858344537941743293536256652111530836470545763539489397872729181314261346118575067925400964686793189549362944186437707969765647080441309320787957479283430767486360740402954046350825566375991439056692146075503890061388663289547964980121048795312027520077292974156245590357919729776009380778039924330065044840545764946112707256027524691434775079479027344506397827123276551440816377455340792149518681354264236066301383046483262423862199973377379995093028251838267658459091523113053959777358652748482977508937821653993981098023172771212590801607595555053408245392410284113698572872317554324382882127887630976945692494282409228348996515193471966380593303489336467671491808225023822562331341863905711765844959565218195349637470177274246243871698615138109871260822526916491852387798191326973294399736712881706155225386138695368362670322587773534843331868083210483154435091826067852084302033361592010555960419034324949954040389655960252234603384424394735189516848247843209318155009742162768527486859846101804051099646331268061322843212128401729100993280568093338102550288575192438445388799312955048102356315161778587014639066392092554521314872727736501430545303090355313975463025948662529718990875096101399571551472166798710196816333090811933287422259429342325362892271199708025153592883246237745854515502226638205932060662666272850529037340103928572319129785173699151016980106517527195808740993516599497422772467985008396004532256520481941165601707673322041056457813573685755102402209864096994099362087373122620829648853550707639272729866260484552353808627494948585489159493193921004778425879514868790388436898548138109277983444327648234655146936378101545559749504994361794000847590938451079369449208533444194175281147626107726490966288607466720552243923243651655684636696646161859041138191994391121400043891672913147727101059951210189761606636723392084118448721891716653908938302384737203023695351173691988397043094286740531306011988761302796442219508897634909101063184163675231613843484194960294913558585007182516768721351531831083046243337606890582325777306600382103189606224447831110589760479641632448242476937371857413977920303636334958828888565463332836942746162355554635887996719419484049131613962056920661682471280121572240016077892527660757958962308481666949303415983032987093368133192850459225245311988276451606483252083059735956504142306626923418185313664430024972125123621378411606612900371929857180559703910666448010681530184678922160357541720381943330523995352071353787528163462234590572098291499702062671246060758370612743050370913306303927101907906274149993741075479667331992511162290247466267868955540542985902566691349526682838343257111039169014100872514311030579487778308777491559327447293886095577185154784101058440562651288435531286439990371829383037221005887035971207816766128211132110581219860503190209858887251761811045841924537474738299108501023704818751522627729532110415043973327353959085668363772456280866549881871148925012819133777822928110677480703236218136129481594968456773280547980112425910385808096847102308370510284023643200699316444716549798926860566835570008361760969668563026364824544508663419655080125954240432747151578676330278480344776311051993692807153688650638287773975065955278824151240475930846691927133368965709355918142641679406481185669821811111972835998624435282025412822598207229882821242631911695864883272880496202151025282913648266752610362118205116419314915979162248183542492757069167119068546379866199964532583762281743520043361506044152092674366756286358853320287219821549885379853264068141286297180571166330155146744746904472362776472796105623283632636209634789965903620196284452135495928322161552247878708761579106774357232393181156173113791008314014701281251318651911497410212465259533841604497134989777165253722679611468105411612512037435273173573904902612647927993238709415347507946561929110590943556720586765138968518319255808606393595167962109843134473261538761960556674519819647551815207971629090701852765356320855499695225249043991375580545068806377371504974115089059423134420812157026184518168042487262120272297711148321678322240813995725868840637231490731028459169619055129053665854822277154032257958615268507710374757730592047623117901822158870283098884889781874875496517686874963596445031169555295231827192590504055279230488682244093033741228642134511004099546490726733131991365502516174463038378374701704491497436011636545922578438302047299138642172575350221233344131218494217158655329464594575045152902136432641334082461135664586889848298545212593619775258824238526315658362592892718520768965239713712024183179433464663795699965509548167542400081964729075978130478048246789116305581744215528077779057923207378066844477469055819124993223003896677048651193037473596624268494447195129830253334261768124045277988718052456120219801692537611365574814319836039095300586955272637277995044457664188200132889886725960520598948507477419748441930303184716656701581937862738722422635452116552300211930074376944029658741233710902683881456127575489879821707931973581882064436051646532163063405698902234527641316768588185531038826495678485431528120034528951365154917459728875255318653849536800804499786590701947096597342412533409035174540529941005271738613035636371140246030546635524760622662810113941832506703772870395535185498569896290394963729163003158228452940606161818485180705475938407235673429198536960161385489986451412809407148222568201711984271678709169488152134786291698981384511298030224566016412977964868504976952214027622550342802974320561409863505387129712906285597895832900490938874585047095644304179933064757334909628672153138394681261283684265488498793030308007318681647278046846882822850411376480750087351304634571629290856420590728976533718999482910736143521642016458369392165596277768987861379646081391208406118974950049610880963608245806054460808864091710542861839081342539322690114168410825597260462400747959245435940226743521597623559848072663200416361247383429435690922619952867385880434132372257789715999739183086503590981084690746417256599517954948304893087181688646575958228850379603302736252653790954505572471545633352439031439575102001625787671937949707663271061065630011784043661632531280967290128139272948341755511762823917607284914466961783934148285878367040968135254623875207065785755685101322989241004549840422025983757111519755156906331941625792478456319139768215899084364715473660879759495792050460999613485941686781725924683825408635400543334176240452564618461743644548131099261965799230086699008730436845359435326862496596636864684785420480116874227515008525488321047988781303819207701694393251723840604123802824540481845389872280320765383410089082633244540978037517604211754488532533807102856744388052894478916342575192280269107627799583639296637099633726467713278164183740791317847588476391655476621340850138262090413509834612435572556107700763693658227973803987841824109492278626536593395961016300918503532720283068440959218640180976781075484004662716592494717436548594946038555222821986238409261255383951385800805045697701478406769092824265823640682269731278603761254432563695091665652669262575111479132595220133796355376159299857752604229888109731510207295315655528773409851631321385969922355792518355593390885618424448196252518604333044145321359029663300095412274629033195829062585934087414369362260505511539808057199558331403945360842687129573547541320409587799969665084411937340830294505703216404867240576974291063708992745219607400190279015574843274724016126442317226739004110455755694895308245388968947904738475323004806131478592403783305833626078941353776848702732929855029206506624171278510246284542972488693122451821310109042578800984551170445548050999474814880600270142062711471632651050171109427134583016718668500070370104412820115453197476096455926212557587425783816312501185639077265016617123424974104124155911623418354689401421535754398122607304842659213392200477715977152123985941602288590786014575873655435059406248069106239491926471803196015029469671011361544462820712989370416057625013182781114870335135591723874135353746170686219410313777012019848455033417041182167327682586172153784724847246275025468878601702086329928895876364043968328372786063243367499023457871707772360465222008152179899524946032254450923690316887944935441919110078160458346175682881695674973000901662475073666722478351128285804378770561583458811342263772513894532736510133654082414966219712399151792275479407179595797418626682121409192422384169394196412657739987491899957257871342354039784099632885462389378706104417009857929045823989005403791965385263074611999006058525580137132046312909679147236504743590957272308504406595793062081690914029357047563814966806690704488689654970266675442999959998909338435388730192133156743271942232048789101686471830841825963744495335793847521486211903244363676011839041818370004588861436593149484436636791995557652661790798278060047880501784173049050864684956041206314351558127227116844531011808609550090096765367898784173888786917414271574440273626341503703923059705596141779883091573241214083246266757030158213426074826259771413081506298345408700889049637412649244713950098031808132765907536782092079428726690378233959632907661882553062579454226140037933871414944955314983472157318233833369770544189966011220546291869797715032357770340441286668407106333795914300392846926176004098651288961195620043214993616458851640709338366699236861869033917130914911034192875271447011256850121289303800071800359676863203118996177701335381218936117724748122068437258622178867856699802339823751213561650373621752361374889291864621742151935761303730383654786477658853463461795099588784444658229294748500295958403087536281035588113540169535525831263510288578693224515671597311923087814116580648680787175301813035988433003971611285214429686898554734057307364327677340812056031799140096381160993255164021354122965693637162489641311147851449739378293980538862635694101702353954591177638451243439049772035421265613875608830558821066074767984754908697481942852526779216386463385232105865585431754786612136645412519478944449012719113156926238979075687109752849214102357871818026511465089819829606621516968716574950869401138847724888951969309269981301767294395815602865142170805119048607072454690065445382371311911700848071746530433346443273887665280600087294480175050093889322317319393456015944123728594993470331097388488523381097322120100216827485876878135798383872265722966808688056456606628024724157854025704829937599660828664583072076470925923299846093260151931278687489944658736857983985654354666848051607663000260045681545819031101427017525062147363634194716894091533318006755387779191302829241901224224291302841516902718957592586348031496419847519327761164136430843945699591756907461598351125224138628021873095071820780935768439423830726774278391545137430611131653291301944265201613886911924516285035060725419389690451472676084800873721752510953465571762567001940369408991319265338157539335887612654580662893641430971486569467285227548343418601895499054465308515639189488169751705220567012118735357645571082540330478472309061508748074639030133982386697172033576654228117601515245785783268989151860946282122646689190822183258244949382278866060967122485225614222377491178908768006656060586411994183318701217801889593816453610642096212550412884930999538009298799244235909000090902944484749477444002373461575358164862204751927711673981156320477426184758106652896045935621258098394140149820108758236650780798703617603930311139856695750203335263413969608240010475230404874173540552719248757550520932531132773040914598061938818311664060056999791099936862654842501550643564745283284874968587336430363579180508271171389725294488451069095148413641574901270114354898162330077402345338994260303477495344897979398853448280009779716779861117279489514223192947582109436539004982972540404032458946656896133453559883198823666912320358991625288407190808545890943770782899622568670483872920430644955049990175698986714248152462720825791206420428599406712201843487083209824137762084636786292571590665747957421159232142751184476077245581633540834611962163993846735964413933054708381422645568560610634428362473835046243964078407880347589759392043208634931675201735092715840554009471834457189434257823015429408915032810490780129676887581239413396427527743964825292478105515203783060395507271473458259004916066023037457615727257553501134268623108772467030747007584825394610500915167395123089489176309917149971957606157055925428072236201604372876207694137812808293195039059320982796485061591149176821844781073901619072331157228891271549810275986600922863990293158074545245479103965122366798498914442373559108946192175595467852121420417514962564092094435731787875490696850363377431074006449350175771627165929540097354812123374107481379653540813729269790015210488557278744877476572137191258876582540258776980862189344570712624449814469694061447595860646548843684859133020540370592816176351312018205070418622753852538185398376640070787635864985131414265140566183951235173500881269832486306783687144586925532920277570278580968178635940800251261524995771932332017524612676673757262660663397527239953072010598182534298009209511226947497749096135090481468755821361873525020353678473890278813458075204881015176347003119762035438473741827519195047242637446958945000526072514005196337528655302585110316122971950890933524570730834558166412168843499048625354857019755006659128264443738105104425952824217636690559232678701678933683808506380197570490639650191571386274809971829747531629702207445777099646229398054213898587252650062556767008181690736888012056783957889923965782589872297799057409829786834621611060945163711340024322121868876476148592886522598870837604014811055578875638259022581069377622146859104118628303444393272956435449350915483705282595086129354387573988734661823494477778167176358078993001008629029623353673679281931539315921673821559539608620795777285013390735000792462469563911165444329799132831476706539094729021540229184833771059532450619466455846881987169585438429283479914288820941870131447177071809484452155225749867594489855597870929378960017366426671222775174449492324497856132767289702516217564370645945731088548127056856479312879153994630351688822795206089104754890224880954040417793017665221949573609345561082671246856511389707435970893271696408419226145109012805796554883688885650125570147226997249966352868284397042123007430670842970201735143824603716141875577327695160349591877792722219188609721331308253775156849227776714722763743732043200604607349969411301363531269911283331738907658817438671718375584399539231954161811656827027434339028636820680331062287234781326650585270957356863086557608763843102515271414975717138643217305501421609063915176644812396770463282554937814614635569469719358647199983269484833629759130308974309206483286663782757044483587319825549011742391961260323389861582725441534974217913599002795205625384321612078500929838943438245912415293635913671656457459839922551192469434142203829778643482672588405705232059042866721665165896428201493913817654723367634990577625109934806705401369082870458158892426618788787286390438824475303335817813787888182958357497665212229514012886817539420068128543908196560443577752863552474033313536468168078223489556524522645043000648567657207605317862607427274198074432620947332735016622021464469270121569450805463214797722624859614954258551742168532356767113528510550305231684740700327800747071423314948993595663103941301041123642286896792108211599473117720788515633726297662572853733783942773187326844337210735273608296392814342191548503218502241626061623280139500342502501567898897164442950224928275764945513767989756978934677362037560916425854444045103682202291339792469097827642328224090692232721531978745456546913988590373574481565890831393030395912057554995743941139298659352525022764089160684256313063675512978876186054031635852153687614291465036694533666392951477008476983379611399601179666565785930299209500704313966176329260558354003452686080936274679735678710692216629181009999070474784572285705388032843890214256793520019171493753848082674535403918027559122607626138849591658197538799967628635238875442474956110922562926851790564316719481715359233152832537757873414026789254920770061363298495697819997707873850810367013128631413314324858194611516074086494106523365450646033760567954317328890361231874534886169444702695588512169173703304807012153787538708367910098391464676335141410548497662123531350325183089775410448866620910325470692982461839817693620082624003848610917329722929890874402409276509019619879674800862198072918280231465000044983028429973316429981797971779719968684838462290546381974277434775015272934716843117699338089909049808616234666000706892535676897853384657518234939749325698745821877014925621915039045738282511261820085139520924484906309131533664832818990349226471212656263210278848857650590501016211255581944976588898262421359263845106294782126262048590202345553746450356328390501631425310380006514941324391725162758602550356765816820959372575778257937026011974643358675211667409374050628714284356427124563208602311621756225308636229553441967070645560957783499164875040685680581280083387226933193181124245155655073057432702359443454339639397295715779539008622118759704836473757253941939370863910812181175574245289847399893516480077359197182359072924584004819808743188151566033879139576518048806725794433088069711662041351182949943404352671613154111458023913205036592168545420462912832568396628708652155001448820237002476408907443340429874905848976055206080756102883876495616660564861973156712146617637280848541099491028642176566426135712921928632278257028334594987191000085025275762691439688763384921459554939377523393361580372023285782697436402263467849631533046143432221203508140456496042685869034377801370924913379396532852436420333555332881488700461517463992894283499789556939279830478886300045066165991600138118576116286997563051055818877307203172343974986732320826311589726419687569072992859241149699917617122046473076960769200686421500601014820814579265641774581384528200810185331378914159421783409594496176507197259334892065996679097216207854933885076623582838510284651566790072881597834551168601553675622870399989099103575881580397578784376970038215504801597524120189667336126353805824185988129216007947741486309176762580559014208040480460484568274794094432826109717236352020503011329668328155619043022065555648496071142615171587326726417855107326710077439274576607631272286296931155901858027552090628165298007631878406447519951588969430701185446610880582211257560477216244702384264375772870083690376142613094400189669225953473260445889953469746942198571301817803456458175602178179940039327723526476864909405839246207917821845795064230370709402196408961135630697291998141204710494308413596535365460335498022432142568842348517074883028762193786983006634974400970718653562202435805768875519611321705949506819666854560286470216628087230714625236199963611581009510289151414836717597238876547269485839086193116130531381147586080626816876890589761475130476210944147936203266308476451501723619179203735171362980980616439274755200791911506123312888161991449753965538247505626056149484617172945429887539140134623737047512174652003356082957782981982664550990393365152132831253153043167658476062479995928062842478603835635990984191194718926264346553669245001168999136587883135991581421071236558994278098935365462677289777306689894848697375121793357324162538958997555792978823269565308802875699545703160112405317807410038989089778228032314163788245799442222909698376931424737961624856452119285193701482004655047162723819448979978651901369974082913549658519649270074235485772907053949126912515118513409875825790599752389718816737486246273064112447757787423164114500061654902518800657035705707925319450708894589759922794941353967276669697922602845925279232491359560784394529752067471981594359387520987629139525976490118255086449849512827582325118412641971461371028154455513452280504351845744598620479196765922394629692683074740880930094977601056546373667929586708747252369038687351195255621645531292098426381204461401004888955432696309741972922108444138858712709328550561646438019963824912543719933540582768073419130726013392379360309474095362861258223893283616282059146934120397518947631286950042255337635036141045987080198167660460713364444634775869010225220834849629818954966772372324178485912556185757748521180116062451764263781169578444750772102900670913805630412196609668351306345347384952966186802421812111973175391475689114689640872440305126115027671259670738091379344642909800581810276920085473570642580172334318373541948835338756654379683050479464316851662804888039752915767233941725071479054406203523338902005989665210481699392601281356362315658870249700461255280616736532757638998688983892441016484977832464353340467467948909678128151907875777548616466080218331470164058634729760136338235166122312545249709492995973927305948312478771603058810115863826761373506676665893401354584619311088641527997163135888597226893637223592686046764514252034317502417297100857123386462529428556175167780243833721886082700214588648752920897954625369543125927847419529434446985077060331507777835472155606605612376770609356624061451610023144304532251792243320454886780087282136003813598364583098011712745732899696603323184173890109409245072907672724218849034968956103000637383163732570498491150160912496979884116048866702033028845509843964092784968660412250324227830300580986045643567619424544822827693343506463436170136550027292232360900481281087229713371503272789360019612044518014703738353457463995595938513457602370208083691528716152647884134800568084165930800346933807592663810532709778960056074270317154770219646923452196147073253930408592697873867383100024103756783761247506742236259984171490662176310783174943785223031358634907729632619617599102185343565381595831691842396853117753115147405770508455891045374496204830227836493786990402187340804502660255746477458670462758429634847572542313279512694408328749159939885145969257673979365111434989143985525885634312500457820211344687573890168758096824983412619184861456453665052166856598724919861157643005878505923431238804677638167661205168235815379412885038803197884999311394082386524233953185286802291933107909447695128012575815621189251575612872544266008309110517740432863159803521226997727212439995312877458957940226506899539852062655608850550137008696676501485877189177198337508594858729311622810142605530429418356814356335369131096714691755537351232130435064133197178632127859051591527774083593178545437482450925869386704352379546551634891728126004832868546383168147859441612251817293532139130923523152249082014899495286661407662674466574484301182019428373105868682627237228913551049744121351450793258820277624984887612345040650524866392203825195147504436065021580638158479043958661976772313574834291383174016785777038477319971749902094256903189155424517473102386130352697585779108074763692097447912230128786275112696220110472546085765708375134189715831280852503636647717530392603293496229497193643770995666556782281769215068243126633870003189784158648402638486256834636600429169974799544010753430641868295243898037863946324665688342603732732770756720158599177381685580507593732849527306353805156211651185142176457840434166959893299735695848116838471264222766411726171100461835083655336966195191048259537136787008348718517063625447946872648004983484429325301441764630383422748841147470794251520540732997362409256820095716406006092007944439625796871085118515131862383693700452458158569731350696748559976487785503063426618153703558364326464331806420707171346607258679473726133167518555384430499542237862253013348740537227475208259709950274203321484590062622299905924188677161646587094162523822083627544873504784886430033043823227739233208106726699865217349928036589083852485929953011979839778868563553459100982758129914197352543601929111721711883788742099542268964898201981533166392988968713491771231617925120906296670111501946512323452544450045942127281327539960429548078292938029362641628293491535108523376934701818733558709542930239281477774592768630749517612212284246315924552316026751433018922764396129607871964587867738116612882782138481581013057154292885206631974036466233812966731718794513939909980344549490468761997713451928319189246514370607187640192136321202339045445389434120641654875095626362535286916776497076797294368265934516778963839087632410660237871532337221297449752242116639696161960486929394151043070434653446168913635833768948686168917914611493498405092679556955468330915204141203184538531520321116243002175535918398722682780725472337314645998846489762664846999236009769110663504179250611074730270970458023682203225950236209510660860678549843140313421487657922437245902240923863128550090884895471291698369639739074013008997395401248798245271465454392163426381956840986537302623893293164510687827958893818547109534085394800745209329688654038144780050663525104122031372737546914839407427461918777397435498652437497388674446418491662101765532260900701067536864476204227267325313106038481587528029917527553645450540988983862585996114986655030160167544199560423984574911139693930244861605304578037531405767025077765541896342557067589533377239430036417870629314847195037158413166186758018687170409067392152146033320491881317590667529698082814985809093687994711389311961264164350594313963522258856180107698503789530190971721490701926797277728884047430592454306922142165756522126649148337658702123286072741733098288448778792455701353736063205135414042061250951668195545059494597127849931247210302648219458514284428464678927890609714137140628330848501912829414786994319720508027690097990544402542004561100350106868564666436386182636381587267848225413940282804934869064635080649485876832962794669724656027150529886874899592465308326636339004032974315612150056968883287850463177713198087119663112686889369954608630636239229325532373358640257270023859091435090083689854781358670499750574194796970136044085718229571481125092193775467325739055988155154035077685867288928298217536698396566132470522960092837906848896805605747073217054144529073063799753918580076736436779207437234211462254942751565445982182699758807819431138314438397152884628798301840511315249271791383690152534200355162854000978970615086315391801335420158241936409377817125966106185112013080269443983530046458343939931664898828953811745003640271133898083767811193203152085498602250027767989611769326289434600541790582719966772273288451514213709071681786243328759283780806506917163736520590802609613772295290229250448747138573289950018095075146484366446736047079170978875949331215104061104665735011571516957817413557580629157560573401415609352879106640025328206333126285054544964838904242604105336702140223082610143992836141623347441451932678834088512626853668386232395672604761405384447160382565339252881590430005913574138529725847660779897612969670767685845800252589375744100268566365043581729928817352881013542120063876082247922377673610456712736307169152641156066518947550196650708980394045071565734164903327660059875651131715765755177626621706978369051186890804926989400531302619528891587009358018143915328018157838569176404859276139991030255059502517781822842282811219985643546104491828773867904851852834796558635225329287908212596348811681145362742846416897688700351691175660075085441281913002883945466252667673771383124633466591611151740837430610312345490728307200556423140591095086046082689595538859761401527623692734233909315459244776479085717504588872663200560371333500569422502983525955015851281349683609254219726301646829102765313435139477462805717720070916518986387360063096729493004672112272519851699482291898941672564502144735815381981654440078655181758715836870565298314767636577943332285775035790636504558666159264674482144780505189894798216111977741658587599925578226157539149253326300947096816002236330884058102665978600523750201392389234245977015487995547957123826134655227316725206844176625273111964836448739536843297672666962995961233961437227942455566139665863437767412162944284956431243742557369065107195713978142850281928600233334114820177835406315376937210452154624769598724623913498301407101834628052722893266949917620998473440351488844035403254349312626169207260755595093158382496570520433785302860309279611700402264687649416339873977912128004757081104064110914285292314295284482508931046769856303012314095674846267513052609318861890379142811096563289617988786242042426872295203379281027649890122688688182417363526659587674228589620324507013481151459975847265334316099525802669045490634560831762946456730315495692964722482798521163799907274881473732819593182268838358079876056506317315770129487646643247024117740454780233765619859692326374714559414817461839592928154637698972538118858794036935533341709904982488538649974442527116500829985765479943903949243899939416019052870221801900121684330211793428070660920159978301088776486940936523430092091810624439507252974892852396013585313261491664455284621484912828240172557823369299161697856597562417008418234489493980240577285020650163457872753723351886482669846832757044232035716549822889160375385637841281939914798344379525173868656374457524092445881881363686357055797991148324998616764045338447647769761324970281558184426119272635700811925282987072090357479098033648067054285164304468938676726377374271753218066146074451492489492702276242391410344754073006544787202068397243274995201082475892598764371618808554905754627997011856256823867659713561900100904295423639339344891261929433370966776192029989830695576906117095688818457756362346280850251030941006070708411636745353060833349414041371174246377066303131151941826262534292056064763092056540150315521303439443920594023587768581829653886716099795859002974848434614837536614289091926660960648067511193660452937265345573649241204886852467824206691148093107431024404655671324460436001266864768917830513609412878578827664588250009724838843716443620304370892071628513421797581552948062986876162209086950350975376780611807565519124278862025157037117465895191802770606120322528886370756262403262054703806743764188787271537577860234061020533547467061621661168168119214976263431759356879815530632413305022398226470775570564388480575535443823186750273147538014809624346189371254662354159336896195567665677738446821993588850150884396547395103686214424702743326628535683509555630947087426655159773310974814100559216485883537766090086946627597153026059452006531743805613066647490921592488521948261976307607450230088469212192682010132632644347466759059013081827754673375466259538537914146678283901538463262873003069161697869342486752351396134028697447121751112005630005558611328882911684848052148066524570058552647289751973851918370735515646888717555142982642044782395183094032177681669004217567060339838127973153390669712814633217900254769561288778770513031107720308780646794255944954497088678907064207426785025358979626329359528851978676360207395972437251744564711670613011400618488889826268861324988513322273517553193942316689192772294958956157883409417626491887578685288222735266997615010029188164872543626360215555734510235488629857518894203152019851409207397366621049502426458558152966517650662396720552498555383220177104473043825272777854476542698342829304740901701097313721512782141953253035270314979104359838873513628508925492454557901214956653420854811227328074626345143420512548902783461802179150781957973493536950241234138481854327660468230653149685753903600607464684625763965719910624417364134062142353145965380441082352594941136805845167010655422574452161902329463968719647150908210655682037116674383625674383068140534696503755117039559165752557641741787908001378605662452478495320986204955861530953278644606839054071133508682095626115924493283443771601730545533461242888849353089183322343409908174600678393781155926753750493453027835691058257976915794516125408888363178532513675100005034771432135354698473791454404298879644998683652236440087870142105909600825192596012582679465501870298585505179380824849818657263042023001412121072285198681068030652396161061419455686270319615721886438268840676196326760218385327327528767496878625148678645299766130110054193073031006121790739188536451174050881770800699398940250774506494598730354338347293412523787164058060516710944533676037978773477204189894572485581864348796337543228135849955893803385395416554159649692638232077259199879895532415238680362006447803990382561221764115762225078148709589324260354786732707629142213617265284162865110668769408785689394373699932311554757744312396172924881744548222541933425294033396806610298984067721218629168408882569707058987601112705163169666199221764383790172330742575944034129263389318775924301586465283070155712506671419895127009142745801055577567205107829801300633989863707541123467120188656177995913853827632228134013614558326960725753902203851509281438856226953893635879515551215021701831762732428283698306277249210194003081196781065652480369618999558434772680119677548555392657793131714229818873470754250829572659300562893016676492971679726145141652181992995862456852896184461891693073245922373056946456224907558306445245821296163066019535291484523956758507825218845763567256718791976062418335745958493441491642632439055022790520922026016458485462624033881287766568746951695718640510380737350071530206720630996667928090819615097146617750771402476317316577837883357293155235839810261808737576853897745689738976617657784363119261788379180734239395717383926216662408125147025265919015926161567582739393020200073296889304961858548862506504229584693457066809203809110531545819992376922006637276787028566645601961192497076083538803870593580099914843509128893346722448237818066464030236761466688599867048486557179220299736553885087052226988321919888735680910283711331206454048288984565019464786689080135948436778467557597703270854251770746426688248161606264000561373981740288780918641584843503797987068184343292523201079183239848482841410864768856951158849821025498520447861455913026201263212943286650962609147032591449985953685401258564589458743247806732365371173401564666582652282856028047762319438002089984724008093974867371239793615426671166948302852753995817979343065031757395240609120919255521342590359042868336376452463801893707629669153876624732531710275859505983504371231386960873843632121041334451479077643280961411512311503448094292136996787414303088507568630128347839723741744259725309018971035230031554733010957434482092642270308493089239475865674055953921761733136013208446887097705321883045558963802419821079104518023939828335121260758916956322969388777217920175290302881931847225747252292283225869435441848159504992436677338152712497485093073785890886836760215018302540378881522213881646654513813632121912538270921150485568727335972475921325384037707882043841146337453336213426502057711132606773034204020031918683036030998615147885749447478331095589773173668595296485736385161349345377385212395718591021494800695021212146815337450117338012210585157670600620303968375297142940181955583105263014919944420708645083804253081919291909957048024987803421337228246035665288495630380539488533864419149310221527949526115885959009782712616246315283256733961443897610562966024768971072058085411532014294497126686412834868919394908389776006317237688997451475179719534191466924167202886206793500829795531394431172449173968736747203707183519757456379773808540061770366843283934772889331875943076368742092443245964225517559800250915260690289881801113420998894836627052174095850545508169328319030840452830969576690291786445297552435545760249717727568844979610528004433322061736066473491710204768629852504930806959670537829411059479194047788219576836665417775444713493061235536464559504224814959090833713435492731178676566548190148156405998895842131176876815040287249278813869605567334029069323734920356585503188661057003405023110201716052414539767704433909672261465247946212705365966533268374028616422602257048796705049143124865253091848856854197227671172218984290710803475058821255915213440869177549032384446042048214182198931283424443429970817595053237056941739793081682795557630451105736874078052335247107939921044494051932380776949689950211085863048507791164748642788664266216087461613352881235236229991471487272206720527448705541735274559334359787416814613188881613505566571670508860359148580526581592982871819344082611769068708101932386266764182648127628269762019446191956486106319164057897155841944011971975476801304062425073635821871429766115950231122676038892265659700365304052417371811119374829993389432807431145887928084526497821771260202158749855392749715954129413304570686890357741249772109715211866642461333880485966793963943953095481259076948038435128690607842165258361362009406777577033948205020800647843630673938033451533750008646029911865083391902620937629838836240015019742253944867128872627402225876496583183693235057781768422728267158092185976526930577881894036781419597043928544016368811746162717306892115425862033031213428058853662697149124693549134088161138053966293002341412355011511634847262131207601337146668691882519555816881590575564771938512445105763828614603993381061232809873921880402847170378028516011905971188461438833955941952118807567562224815290449006098304820945965943883066767100300856310225414969201157257704716364976396814894746495902197948118483182240502584221437332521048352166676481967802293628920495961211329016342451951103648491668223757687971489275583295386654728038276796995176901859109695876038747686771022156155359206039525090930952315598517687578272253781124025033836082019444040108469476721890331680778316110440376471183719600393221655492823076521901373075807251511047069925595054878115883888917071117792878682381103585033543093240591537454777253095580330676760876277097151537395524077474143074112609370180043057239102942519339427702662788982565004569295474466475639074865933566115809712865822223514860436196576935795477315627943614976345925159229074548829770123847839881279058049592353245204992501961273609719831595824191480210281306080324548904104287307489664640168138671796343657933218544240692647040989111561569200045142212359682089891423540101758827400738323456856679706239565433396038812530503460080685314112901311531817142256482729523132216187905215854718866674115196791720989514677797349965763281632447843637030755563678714389283807431550765349805956128800119225027515182616151431805898686571031315991737927217808557179437680954006670516129552941699916761383510433048589423341455446943453304824465045449661873003206945672702074808561081443590971115753255375820403367770659217955793271959449122290838711096605592868541301771080083419967561663359068626311850681741826631759004122303196880734611620533138465321010536948753180613700967963713168697252936304219651432525901210845277512675454127739392583849386239531545751420371580480244976424365742830747320740487278381488190184352487356549567829796409803233839544277297692559919863806044743105422046866999009549109285750253539268823594662224938684846840085941100187764369977948964707794988557302599067383422627546662825165010173907053801181756191367513803320612203535159075574320131727510178556209620113316044731982045796289499563951536482588592784998767211563361337055170438582404663247984690745037292679031551393917211705585483157839512829307715730419406856158897546327394986894519014133884168487822924865603893580314253906007271430729867417022422788645875475155350309156519132369390993642323548395679327359951402824752733770384494342713431456335727170420118411193619511379979896632595631529027212761127397436854564099242499525403006490585112072316025392038384171025758458072556279648372390974242784196428555747516173378714404854534521735071422892677439770890140623490748231900677834377647018786505592761049231366729831462804568139707562808599944051710974552844331730993607948583778320872934363411415133150598322151036973277072982634251750573209862358858291235729673853253000822239306413653604528716868240778437664050785802324224933641273676690593545397742144043946857148557292334481566826251429941976968775947171316978429508177018186260006154950368591320420560106840127934264959550599037683843718935197227791002818979860904915444255687441940000672739370816097513262879892980734302386386024094701762337703471846906312866425070647561297183833665707906942502392582226238668412376134811755962000932923331329242761200533351510784291849444279165934248501136419857364348014012579164652374335111112236108559963267789052447690708780574290204932154674456539269955656325889824582937814815510623184773927960586351473101559512289027385767192141406010144894523241622286733122865613683804522943843144283565615234046110251326578678900043613145244290780859789730021256575152802814116355340401078162205878917995654396546633077175518141268387600827775080547031068130552082377852633623331406952680588376766850230218867967590106045941431834894281148609337615352926876480368377883171084443294013850587302813610126145010736319435253713990591669944093321464306112832621870009744065824357844396812745838385790217739456675073484305867942621783468092668257023629050179186465054597006836839455261065564468201335276797640426840259493458990867351309608428929175090921394613153353474724287350114683650101535879856680318112538211134184859485853785040218079055706475989305989981584679090203558365290853625989010382988843486879882488373092829376088816874741076458192866720668659169599742560283071013903391654957334714668021714187201739528397602294535710457409415689227894341954633355089398909211912246591804388598203047250454685177302152569399270970992309143275999835984344894570879086718947317668643482463048434075665205593350666976469102024849884521624143815722687708638898052754881212827706228213067852301283013697928016706201569940914302888712733687551470189897477568074499102088020608460091436734701839001339090036679829045862448526078736592428475614595681187800441056677514770786490920113324432755730709626996666637877364345832013244065275952583763210132999681897731002956200248752004625325988710313774630801026138695633596839742557674170097739079084411676419398813319495955668518076733480606738184632887819929523082094984857046652318079922638758810530052233410740604622649106088369676036957108109885817844417807315401208985567740883934632078652519318111913157523722783189316807457070840543445217091930592599319922374471737462546043244509036795378176469215332601677814380297597501099266306294200514024111504415683028997000564774726786054691696689375819995230837461543982807571981817194650612635005910974760644184809797878196589949027429453626573213747992495781536291022667019564155820425527498438008327308715731429077442380497011466546209608963265593844930417062003876685660552868148269494931844229917068672242131637513334836565411273642575067432219886637404563585047619280623187798457987719029628102964234936486659383955500198650085014866979156339598813757070360933589981010425344772436226023390230875942686271177894783379192090583051229806952602233675856031202230372013227637165701923230777371349271545679694565079107338690733235563046721629813297170446417246860431474458256403199771992163777280684053701613785078273598454391810521573162847028963859500825606424879746624153041522100828709617590547860529995090639916360367398550372869506820060570031266665582925197373608669834467034771676268631279226683187298556595637608541478112526379506176893099819496976713720240424104091781367536470002817813768462054888865589041365192983417252851168946409144962526832888265774538598973966442598543057252170116232717057183842340396093152798386257459737733962779749448155775739988989953121107326026913937234236148924729429710772578453400093801925592050395913276904713858430916217674117057496360026722140692481907017008734979962334214888355198203326320887587980558068347746866708173887523391312964598966279989427336913589083652714580661350844747138808133844704865548436219331482864102533691058478759099556298170037476173540418270803555289659620190360082052372181409062753697168852538873177433929439554637439265022167010810150414886788471136509116513529157737955313913411447903223570581036514656001046568518206774778142931519913257176552965285928128418579909660450814698210975518817818990945193991528250662747207448600834700459926767788169032476722129459646091232874805449234232790709415095706322975094046857053819861645226146232630501510098144606674118179148398972166360059749870420407809147814126047879795288443422341385919784071217350696544949594437519114292146731767308569534800881226284354904794185826980259911934072249251930675340236502839792888150726927828187936935318174044985118455857791857168112206718342281951523118084212092621542938054104879302605014041012450629624406363196087361543175010310976537642516062937792256976667234008945695403307066564423423195412003628824025770791056556461007951462554805475325196743738178096079503587867108629079366576087537664782943572818029582947387719072958420641272402903853685725925106469025983886275666621059207720000821563560855172041105330769240026428412180872553499382671217840375298622132387010169821933518238261120829591177642586817500815831305872724263601154839227952690988501882118768192666498783538677224295361685873448627442590034969582933310014042520560901538141700210063070756696264368877684035031165293840144833873972690398078596722874880688914630284649136776976744923589064673299781768727196240941993429112764300603801801684817554812964395271292210853101569621822110613509570109876874939967596137896589411109057489765281265331275856054633171429618469297026658307368939526564995436922775999078658926001796499891443621235567904408357657689785998045561847156716835334922670633597325405936369820053217929778819742323311091934225842673864558906675306420345897678495100493192021462895525604703111920154043097360154439276429833038306347042219816244544348620345199027712034743582249186487064478910342212923796796064236922872677783296299222188221048674196027237878673435116070107233758585349592843591466708643692732611302154200991420478030040022623479678317423499719419724672306766475702267217814495511199665518451526722365491462554013560734367297249289500969008504336255694986078699411920831370828218803910378054374173388496184956936534894385288589444375704030128861649099797356431516913487660846902266343340775548325301333381962353006680833106246810538792010124024026211685532598539079487013434800534381031687668406655622333839763391842669945658311603746433962185207214700757641354727772022687784252811838688881717659144947685329152597536114638028083805471880504755811201517390623610763084429243037393512897572810570802599275652920100493133214383466574137137206671553728111330635350975206446095509918792492818974003431776370301706154180780403374886166849548727677079475902404954263881064777410518041103587911286011927749297273877150046331526111579913817212950945365179312571086135213517347711292384941152331021916958665130811041596368251157380035344315889413669699165182012577455109891458472446254878493198436743494352889520924013799841119255410205064393710515735132003168185970500607510211505119849646894370298002543142202633606912160712751400339413548527179656413595522726655726761657384456046056913242418011851237496572285894008466012225925936510369853949989672230250180543652962223354173120327514831501909836536044841198611693249411168868622668978129718884795338946145274166520867531157077044381518080966506648559793415420926862686308886706983610602707528141436056553841528187161537868131921376161145234406976331689492744140839148959962679314367538009983339738891345753540806957872891896818183817533507952192528578026743122551212896463050313167034075674726935186418255824805678487874567149960822965336360911020974575951344866841064139087575902977852844002106918158160378792435286909143790117650578011628412526654144883361798458938346423316878448611063185651610929328827143154806380650589988425663404809555840157107996905271351817623959247901353967151212910217881668898848408199533360749259835109848487501599163774254040257024849680252962525309620630594206933439114342338662678712058482298770565552190752990554500450770146853788043883002614073802098868911855992666609535716823869895196070207085575104937259504784809455062817360243361363046552479816407575473445781218711332178770166606781064908229040436137497821128647351971020941848116037933226244876281741098901130289560579146395383586078278360895358903281421375931395432976712351930270620025756460686732467438459542992811606008991000500966147522636204776906439518642382400406642712035023514831586288424554105812778844325272708297618647630502206695120138319583833743490737508313791051630065914654003968072190803164582068409102360390673932795622422404483287438481949830604213323048742209397986143902107571696631564068228079426708266302294971503790431786581205705461959264261490289916417735860803233324850845153561484904971250298404524432883578017188440696940869930320565937517257076873798244631370046791001725925701752154327561671937189294255526122144866794790753958273869245494576155306798659748207127708426739171154497682910767915090084467731651146318597208335312905837187888984939620518033364189760158988873522750237695331472015230516160525078079976881247705593569834610824053081213752814006727129046286911568318125363814951549816715893961519569544481022266393678726450462927062495266080574672479981941990070420054550312551041898769734237558548093850685953594929293538048007051119706043591273189303443044996117723381742577846634332959022378488217763710863522300938220636743758509609307870906931459025849622371116464959942156907246168347157609504948687252274397568880495488010988095844375404675389488610052089828589721050109536809109093842005566189212188696451680046224909671171489784805215546547595592567071329658593280606752307918275630944264499206672405088793838924834470890569458957341793509702160544081545274111205558491525232389394859924836026938237987428151085872296465683718135208819682433695150477014914137244587425883551481048263344592448287755735746396332078062645970093111775349804874993951208251490897973371730592518057145210828287865979661070396411093852342697676176852953701825158512185016196312228160746258382871351145211737831143640053653767865425506739899345309703325629133651632830019184537589108028863753174598815380986735631924305230764561352744789746006360918930328351667552898898961306957527231391830166878521984244231467251048810351415061948126260319205940177719292522913291822847199766040407613566610547835264714346682415056356203653719857437184397519547897709878253366829118566482385882958029306365955212305609627315468499087591188794018072694411606567343388350863506505174180960104600666937625084080270090767299245341211987587811616369816996886176752969386691512641468210229242205692675152048765929194843987679744010700418019835861887582400999094238343577574806727039284880243379036444624536699336354083264457996713140641305324530235424086641004992183387108682193327230104138584241436167012610919623255854466364274192688338022927357845853313568077651356464275100015895301181440413353529617836184211044259920864908142763118817267515043961704153318880954850291764972137155406220047934232722477326258375384098688032951395722116588900439749933089362816539954214477711327383132703964331138035704837450239270680456410762931635176100046082342454830677529832583387324734762891219060899676035100726060636549948761165465526349420508547058803636476711090979517045876936104726578757769118440189754089426048503761881652733481982497590175163353861539136457107532852142462966057941534172231019585476854265050949536887067820961635726276183506072500134564802895440611847403512151091597778561870153423513873983480599524452761269880950796613209852648668286857454975770305144187674806848274283066565841027213383171855026873411193360939585617896712941071159940886736811730267635426351467404184981210405812699156825927881533177133101979521531842207562274302515611735620395308148694351166670358278747181229067451685126304317429564270628298473716114951934926245023461175719499758986694543714125635803824731178566057179912285339533658888740951965171935231946153647034490433099974462454689224515555036468043699969305096589757501929965286070650724993763010375892819330541894243469171218383747165400532422978795413984542308696555304327151317138077314294917365385340761774384699804864240293649087048790529993481228612785968876038903825405742295056665200628209778069173500362332506828540055203454785634381312003553409341628191102666612799723785966804918901943865653071796178877169910112311445184771646116944253164780866490008125088066316425349299574310105502231902714256703074211632349322940564743455615576004978513761735559611505586372078195767569478830380164590895332756532840581320390067102369888871941433333447888094788490520890343111956081214294650547143994453285785903345599001492817562304846094969064810597541105108820077797380172802231038818834353065608241208621673839531426713131409774069870586242662646232500454137854106370974534326289611779190950612318748340199713580144282265043840346296523407195243225489807934708678250417006144222911252906767086812648409215852336280321347751629404514630592707022367877836947098794478414146342886193532582206261203246334239486116602790199568156330888677207059261234073062190886084416651675583797978898114925632219620830435008345019600029740170815554061823871846264655796843790595686857138929368408348067270408956633990325206570561984172040106804157795125843753341706157642294717618139724653147656486392239241157702724999560768471658116085393668793505199998478579453128651908651461036813890780019250229133858689558472697193328728635684379176387255749480760939663042103393419945070549758231834449022724472653662298483487813518125715771531203469757606912991884070860498928599297680184703931901302583792564842487010349843136414486070219671792573470761370053961354026066977479033517658379764482233151682578981276823728168977288136276031706194224684272538020077737850565553057188364110198319853181293127895008341910119195383967126180462983287794366393127962296073429196519010741299460480187818956401829878240269442538555920001402766747200209474523460609929480715695873285954798510181921363093386976932175980683341013241234257316029841916107559597518198294810056649725943724385370416048283154323236813695422580711374225816669449230922257913854886222859090538554501292722604796454001522584611870670910664797468305028767752520657998665136845959629434598529384802402617649619106379995529941637048723692414255405222468119591540115272281944983465024545302052848175088549811924842256853167179592222950784175766007938014410124406359887660669724459993025803858018989772140209079743754700870391256997699792123140767521488835931869043794422971734070347224018029694730426681817344433382128702621479469031232301108161351513145489141447096732558280847558117255763600855556318919332381667224489647607539685417595597100195470660453369261455310962395571416878905941137693856639447685282274259227424636929142827762602374662039978907080492139818996629636520546573600495681043708520829406850000664702327835843765224466344909849198864356029563649881492398748000685055286820147232073344546714587459507849783330398686609763815875821889602812863033985611640401868395415426603343103303680019242653709257441643940429952003476271276377799022442319247334952015103571896709728623119890755326141171805769895134689022029911523400279863880160649563102609572425685287415434457173156752658138250314578144686408802553605388167093596477777033822326195968368037015702398084477307049855167933118394470438052157376323831288836908512186411207027575051319709009486151076103548279935453326910789637368343455808747156825366665068017649490172984549031659449735087773326520170852898647187858654187204086335509517318902777288064034484007931006526219280600158294352551528599999560877772780132888939908218630892816688011446102437302221070463826619465818322295005180239898703545883221351632064407427007309557488338267354287111652277676671085291785546318829667045284875294404762511347914041108923582404397350998923293017350365550891940813259800426808815473514418590828625203502924429406251565361821773675251567010048252767462920880824244391695113010853910455771615288772026865354905466565545019652602848070103135575960986984015426639864655925040338590454259830747238645470794327483699081184714851723289176796783020147187225490383517206048755553626707107399628067441899702996652425582639732490279990309495581464538837062274073735587639346570149481262064759368646015444350448622357265263957483729613812043319166541757923562657268563364915650028020955034994007688775566472211815981755195355187074927336680044151306125253395650812096527490948074978314502102145472275297081062133768890825599296123078920728791767099607198497269416593589037639754638717042145475591155624542537847117112564444102380588622921569264378363052682985928109370951522504084693202943310276198810368009397301032350181839092839580616492418427190245723426974656853947356058314004724788196350192920280365226073587864141099745377492868295463498319300249178656491487105235085017672226240056751807313736189695368374612678774971053052694044964595699165025072872018642766473105544813528870572384217249332681386368883340321411903301572033728591416487424648492473369116872779954905455158669833334555187805359749139445071568253966355947389651211498612431730178923171460832571134433615412926548077574253129982170536372892694573192572425319854282478125594303514216728562297965987571827866040813482041833472956038288521030091533978016602434402459365856505647061251827904184184115970971804287645138079612187455922356735476282101936939832909744778133280946130353404250739507557517621046506847570872591593239136830196729500389840756672711771437459064720714256994255367636334184401256478820752443105729703139646553611295569336744819873224335768840544168431664984796718406745467536934061293590633421866787943958172468151019329117327816949622167522396080311787374466681431279438965074040819842520933922810406531711901684709422071205539825923716553611991157718426548201796319804753809037556901990281410831735812341010981245304185474080904543773269250658899667093601110777424784727391590515355855184834850263495775680109846506007212428762792408193061189925846566655110301193891912293087502525123921277019116553042129517900113921739698773954935042070091765720273820720280751723485860162542602027704912254344812964733732579685068361401493624636184710007854196540245641640028729880001716450071014112931426339118008351340561654706857687107528318047616098722668301231401718589215873751701017836793540965433451449487023509666294492972717923425311814886350149883371976444363158730520792129571893671742647809239326667437160840867270126311944393216748160811635777690665140810147787747342263425057090013634933541043809430380308681096915287708697490502360266307783839859999111500009957379879518862325116648445989711167030421821033380969063685946011058856758328013768662803608040584546214840561841595309155875425219578872572187822159708899580924615655494231767437465718583227414143462603365698280910080478359423041293887045783662502888084860908379396164529732157172630869887209177028206501714734114581119811349296520014540953529172476120103065144794437546769963244609977004488971740274587468012582184668016657018252933176670140631307927952900463547954453637849566180968078335418181107795546265854413473360923221114620816306248117178150413115168591412587258452513292839474764632961117334258060120821893286263093880679727022756055452085948827662233370843820751844075969006406147784055250897030364376777170953629801705718032768403848692449842987619180439185575272271466711721519297451819558659446843176311321365976987975798596078851226904831599063924796704432772885405289257252657355156294265336484273577523986799757439696387194767390292773319951503079443645720598413232178206967194541690489640308122169981944092540777364429457907707181077088947236800329981248417911883231096934299405001830021297686143280759839456414384632002632223592074538544840751195622782083206780355303236875259521253913869175023422795229443519874246983926915414798115716149578510272993859344646847675614051920836462919165809412571220417367081031847277875076814263133460160077939236324472048874360311664518977981870429693506214852988151585613457368253178857805657885557244773288162115932879737796446460450071857106087584058564972085655700756762913875717316672303741577588867728938216207071574344592943759463400317754786395675909712827573013545327695378945131979188336094957514074917525677227408412527751652209344806836074684646648943950155630234361500494984994938314916614743417318822221773707607911011233629462227025774847076292038480669135673268852046359420124384369748655542155260545358777810235437311074316570444478855148669484873463161045124532466738869239841735631164526564312689028851527964233283045954680103843405965474653195856688503255380921143917601843408661436023312516447739615169012968268970361345869085379886008803980239954286042638797430269540066912872691837154511972220624767292844349888269731437196069278140287490023668691064044931184935120123770283472735785413356693821404069755044765708448527130483180174794751771745963560921008953135874074084604120341121590495378254611667101219949018308329989329930516535786342974655062136832609096430527331926438614341900789191546796707623264665883816737052133799416636445905077941148243167691525664040877550767317878517351921669107544631644985551000974586612617420533939376903093448561041853271321092050878010821736259849228805264692038984147871837270208159981621596736187257956941949073497944230170964235285642597012075775160077428664099773725946619354976247630990203014232810061528152735872411375042955705213526123655107981773382286014032118799739490530606275585996224461605038655071169770142617876564268473066701391404150898512723128507649292021475619569809788518717594685442432913050528479170433583634993824082305490460510987747257995685102050425953799908490931009111061022813404207819884265820979619505313808083610295130513410817556369510611943416320268881041921044170016609034482614731523383518963197088324515691880180257649410852773902418440147906192616675457055243344183493695866308473022307017385779209470419856898369017832259645874234054972223683560760869498777873063194946112363404625315437276669975655380303216297498025633682121810981408045798319780911049453685445926030629371180545661040757316885396699247206432829113268682584321364175399410147722299531189087353441870542263223833299685079084497893176764719484466733935871744782375358626992174012470477188632398577041382337006712534353400104575252247231711985211417175337664308463169141171023531510243883393760646746052197115701327510634650077424612521898291987226061421777223980815357087154802477779242012948043930362802109651000751544467507410685624927188831604736366492258935145809195047239932104992358294655448228550873705013565841565551650491153534984891403536741733287327183626182313045757977498740502495182620852289247169452655484206103830788443216547748909470045054368295963876244764186274647124255990139641713594927081076783422378865034238204201968712671824586158195496032364036865987619356223493798984481576446700036279926481061266073629920142289357404538924258411319791160492852058421194366900314157593272536814867938432281396585570461481661237976207941851647413048786035851496544371837390045307653602305532162741205360563103022065799549245883805217718179731222791872353209869772359966868297774381341697214564048502993436624815961494113171097643061910794314823139564054292770687770876297533189092182444728843532413346980658353608213552466002874576679189159164930447487652708247071635591645025049656906861327406206778476128757566954174160650925448931233674001685090413287762995127506790765526103473612144504694745564420122569397796133818444374721002476469990501059540518182745098613782185531517993193748626559762805919426510226654689944795014861336069823652724633632931376917840585721101259746625013993369130304306416794395498607191239732396667181822932477014345201376687351894139015657013108248375003260100825215070413536566192559468372104347641663704451909152757450755671896897405044133692891737440849577015576960259470805016057196556977341535596631142595154276391790486891666507655636506447554484493644254885057912293538613157351664163814735349690865822213834797145652820654859765078373863171973316208304084009592422812874996219563469307070544653630482303067028103511392019028786266082850043692661987006850362845045559580162283378042337218459896950355888705189683208467083253140737879946810987755090563227711162444057366029397669123974813477956601617920608242591531545231710479932505482717763248616531639517385164086391613107667790356253963396378364739710248253029356743524301362574458301977874582424857511481358843255462168154379418470427827017630340791027901163198323578896935070103203445301845300117697827338608711308763334938577625999489272060774799820019808898827330233409301964244351297883113233627438346785948428438840174880508982929161051083225263662058027222955990664980320303891031392115070469107890908492624626357424358459774024162665721684237722546419480528149468309222136546623676194496426439490389600696717745530750150372684024503755332008229595741443649470603460209990839547012329844340709906842271538210427575082755889163012272076153048433301785893370584694296610277922145634624370282880770542894485054443688426659207758213683287659582419376649682223319136605356961011662441958701667074786338735870026188296445369392545838699708725355112679272082004001476204282878150921646948893876135044378383122299459301657280974856170900700785276053189980378709063570618733477777395398838968539519592328354392882198041693302797821862845470200497719234040981631510646442371900316464840668550544489744531812437105503476687510931070807123588906993240922425638050185014083028660444972598591441562961156411779870016894035628940412482753100764235652837746681691192133864483967903871650810505154481423756481861040628373618876550450919062607130755788088196650334952835863150186509906419657015368039511166249997869559644336329588617741029815370881163799233138372772876641682385996633242129927627764924378256250300927966877843415457682524881754967873949308180270028029246411436826139835621058251186330985987866180240586429790563762548640359500915220242081089250620538285780037632965753197887518675618004766635697235425863786040735367496708718882193153355136584143456886802112189008359747129146811119703174092917902764540075000526497875034172494429949372648178721203494232996851716748402917555327389030718202916824923656708466165423599402990484794367762958594904266896230982848904471531104045820344374461714885677574365211823034011105119633872239946998904792734209034010597464349786968948513768493197472245808662557585333863270175561572450680184992902781376834807959186665507835955181667671050542180890022790236818226857546934603485823863214022013993793765756896978164496990593163946082590138653038238077886855497653561901909899388080148395018503630610181966581109611314543802956800226099653667593360419353395594939791141964119610115028638354851911995872253605119897728500148109564521554825685680729321895828813694430624256804308016172204628576511679040636445978813853636599174588315450002675766814174772199083812932968483588770330846990990015302428583646671079310435348505788263517956364503167969713095756143913345654832039082343113500060600902837816653778290081762270562232999700629798481283019435397910852903025218567275931809610209680025089764327341800286631165604247759439695332648317777129216225998329088213144769265252466722636911273081674657633445116239298118115220584775184028268622361820868381574726460469319251714943083017969922766842371104184511998446766141333965399131892900772130456204604547549871654997189106560740416033926617250893413963851827783091275614262380131894845947763372658137263176229982767532772766903246148697882110158002063524749229666996622856976413219469293594389991269015103050139435818909763017141306521785468214834469921604458299854808453990619019805982536230186860615905975744520687201971848438966134274880988455569316683709403780656274573678921567443312742865650064238606292453961237575202443466871831328295580826226076963871194924942862318511557567193900562030543264598567862128003571428929079676132456938647367857905452742030192107897872620029642023157820385795179176685389346841630099537732587274412097181936635295033582748314756000861251640985101884019045103830775621738872819864557048464995144391944195328051402856806113885952269668853946855014413887873305182022620341196009488870872397476985828134034625981500892945311983237087669018969055587730908164181195810995638032804360716064890474340430969223577290170455867956217646486719446948017566208019456381675451704632475632054001699574100661270969532419040772273237332849273665539340748421310083540983054137317551400809018828529729244478026937341903099816278967254988289914525908353580274907789633894301331933017470292362854752354288974232772566978515483269664992045581973512800099018896884532698068715812485344229644185608907273491202330829143768857573556207775518785506708945944312156655938297899083421610315835062512307788613976885079151132100628805812315656973128186950917941278868476571885402621768403559299070445299609325396348895870761436786811428893640628920733350613420386026081871548842618836483053501476754312657607670807534674465744108815533510656652096997916234963866784604991910118097864107965132766728808797973384168123825967350532239896477110041503921285235437238520982659065971169681926926570740649881796907510367931397582460417676950543684393886914514325121588846064001684781688863467663112272084262497292209801605636041461692813051744130187789769867264604056040719384665432258423448886719687151914882660019927492902465362622492818140131749519008273594300659792273148650121182212020118009782726833264995416436290145468810207452036769543712496440538617114332097821515812645997712687322696712425060336159249954037927348695011271570946991055216233765542381000498705033301166433159329452440058383041408007116875387292622258506417208637467144260783043269519373416616064956750190313148941216178692049994214279656866695893533742340360022786516072813998499470781543742139357935482186139465787213028623731302610931218260886010163837972629616615125394534685261042191945980970265913243163896200061067252613657411547652239693698681358441614602454568613227004334859147844591952407444380825227203642226453040707724855523636161022505702675131124689153385754400630617979813094387534316449659264563818860499119858960741157315074382274945307710343182503138239521895541847586008621819901748212254370954921992055881739175565157714689982277728379193718246766512533883157760279912869501569970878149218084861543862162903269911782949833540299414965800651598314180402374246111419030793351960210795904851553227099838761462818445885610612550871276167001043700919404413488194660242736856552430806189055375066810933988627440432884516478677983283064556892511501936781589320828362616980732219436582990752556406503539471857148438297725066525503420828415235890356804796657123871052346915291437517078726598488505768164312300016972222071725903439814433945529680718861083983675506249555931630426697218199169634725032718516865997369390357893941358922331402519839452245437486987755044923877372034494463334765192242957913283614695144693534976265440376395188132533582419285666141730274133476887805323927669394315121827386109539831464492120051326332450763922183678975412705765551781007647891351056398784636448730359348280776759504252452353039840469868852523583997027721782139331180624211248785460029858445911579928064288011809655216369891265219065018239360183038446542027940362948135987005202377546943815630147710448383181802628616264910518324339489095146540055320991339714437213692705241149846847228157306694997786395684151120502947392831013587836426810420614682745416040611942210958033372710410586307769098051370417819806325042569767226477295123159628189351480214974525274752376861313431685998056272642593734514091545517493104741904178293139411361030438811337412451948843773094957803188325455784811785782377054964904945788269780192546183057110332690381755973089215632997015084315745907197116076037502340417115282808729849176610150409223514781819062070027627158615294861695536030831476152419457951607683436404140125834015810789610267247247430006526671894566841152723603421023202747954540140280327890551592308043972516260708795024927058007328727319891656141259231001386623669555458437258594950836383706350233380154459428164628204661232453575005309449350441488142981265117458011966758761112365135397092230906939543873447585562607749033381007499375583859252743373384424369161664390299333422373132970058192224386863222663047846776047610387754477559014486014030109116023932603971778619705248386121099446241587885292169141751403117083629108267206489871723910263734832447881118193646545157353518843077755885932181293836878193594301469090469592589602347440423519184587361453554337481543671066478602580899153390439289110214157178780214829836047900393864591973005232154331217549016702283034247365511528497042968821132252991130437594903194177733448007393626619108815668904730587983347949782284844179054754599231852930123942402205412765456616897975014272886948206823895582216912340665604975742476848015181141205463453455517281229702232837024338896610747670170986543593022404020818533479420851977551426527326107050603701739644383424962715811498491868423053778496242166796608150862724938232371441973620485054211042311492272118686426376987867253048974358236821530869024746232253098231797836642773971920197715935742162773477709776677312257631116248845337360647292170084264498600311234596092729741733553391285340179680320343865309192463081778524221691493817222096375613080366393626066365340177115325921005961055382193634638877814643145196830089230053359910740705006430694266180204568048476255067501613798851141780670084600191898606316729321575868915829673183757450937099036656843710461374895557899623670126867015038017997230425963652707210352352273800752059666239232246693039971542675901655420262250238244827248766658296848272272468347509145961152822842924303328805729193610853673765798335734212124252271947987997183765889130080295675204000622257629458650717187102955499864075059693328976502377612669392473964466932236632845295324433363189542974177301388500952748068487106786331959534088481139203845343328244658906276335943911575689286924789394049610190797381530866272408101309189427168789015039541753749791470123233989387514990994161401524100930787622809197461110340541350536460785610645276856312504663801228015000539477774220059039880969211201135036043164181678485610474115658497274797419462976829270243121380440697347877396092824672411185342477102631254932906621969365391110004052160725280333177545149569545638674147946524747011605776275099745529380058670467792818806436145873571854877935017189971752870003863345217592411036556365175833988513872847008232504864700103355477169127794479687075188628576380183987198637037802756654330938401520984370696776997304366634410978815080892678261690924877026362642144515979694641276046255469689355963254757246107991332670625473023826047649099205325356899516787179322160370780967178523090403834885733179612842525734924894846608485606412701198766437197962830619491533746199379370800333007622275253375712062020452443868297860946340434382034079460114417038970259033521908751565138608852164534315350722784185411595954896285742317844981180361060003537719073588315820299069393254252305630990409406317231266330426819068963033497394525589619837007470675481757866109202431419027737943280003067684208788608626640852782802959290184096746607469515452144430970023818209496932664557354370191707686147564852422790628042836241537644818830282878289458991665049651579035221499034758260256278302242038702994013942722564156187440256946447635704591333580062856185952251150012571531984201380396829930207023554588588232514177634319200573264726687660457240819166068487099883447878255098482788617711440051440289764958672618257762945200511416945747614073964267504415615749417106422436377666885702870495748915137378672092695688284436502812230787220902488024730667601118558191386856544879370393760813201279767767873588858256525932988705277441484665182591400426142127938197874487007951705652211170305843727082142650153100944325675585560423981080075820876169806210933302483476495312158542204969688176643566029157502639948489812143855534482138301706397276417983922153423831066111892582603105626422080332748802638200906874605911305099012560583353947144549077669826385734817646831983659342538462438382313415044906415403079345956264635273396466366273672910837260647090418881023722094861225335500707336366395954634501015741047698160989162443888009909497392674448218259438522228628253030517396456639092193444237956540656983871899541449904789951701505598410220418459205199184782228611394677459587147565316197768078315724182640425827968469695991497002401413644956048258676996710261274119875480163943343500391828977418174385271969406961496381730490786466679975746316273889371464867929406655545390591781582126555519857276462593067280040084266545565834696444963092986250310832773355662304818425608654583611298896472905859782039677492665211612304511960807095671692378910185176590900602889116592832448599043770836089647655892332031022715061795636843862218857237368084276983060097111235905411763084889472569259018637186511945747492943097833981232625309105973549884824321184003092952209605712126245277040965061367948218567516068915921116196680495914812323770359658636699519272309877249465819826928147496353547674913766209818822160424275772871712441929926050374412825302716784142983117019593107833454075494081496276236036596930020840691143241098574652990010503973102099246150713788799461588872598817829822576046683252505491950183023891731890694464187486054340413599655601367235659038967685419105851009098670631523934871551371553091365363846017321127205791039919832260324846712813588285364153575301481146915413008340046718812470852154103238910646807641690345009934166449536348205850213006547211317179560374693530992250236093664896834207746662172555887684442654697346846522450439603507077270883609498295040236368121254389705963779746212795284400949286544364027613664987232307351137195036707146082688111729249219822537461043489178182904683315359864826823859993042138760260022010667577347223149566076114220894124031870067255673853445798301147992869751701029166707929842171855744701525368616580756925689628134094405876204652805769797506960229953378955565450016859982599585240077890736839409325344775524422411270969402969856455677068561913923419393035663528383267425108501828857624030772836715352806627850121230630021982152156965753271291867557682013128707962316041033819896698319248356479290561989593149026400821981631945414866401636601724831442625449837173607449798895613382855926658014153420112089517544869492106600291483303285818051814278010445827931652718957611799897483372752286577506869244130534609787123334545480725994885461060042135600573074833171563047376394418598949044419644309713076162596301485143131430148459530135034216028047975285139706822001251147438679828853749085659153536548190574957900375790525179822030980066813885947544699893043705934466220450655750038902977489240627194866906730564107924416792320930352774661506743277554445979034150236113382615889242614954334637079929059954285925379092389568472924584794035991447602737214205013724552707632558988732746304859017977536069745055633854262922637173680667458830643486134740573045972965544011759909353331219985235422046191124977417150108429307476541796419062627359407476474030225913329706725465342795122092075343651870829719856225198968830503195123692209208288106976345441177823424507003118576695680307302229753582923459251527105990425840853516010877940148581964055228543714096331716471998912250397091963794361343138458405359996017058709677418743947273200794750047372234529583015815778927933794773601973244830043263608162505717628967115552837234041146553795272064495330001372315936278458356193105427436582591055730290557578859350250284002849622119451081458535635062582562144483868266045107391219504014717971537133786800582098007059635472183570946915130227265456854891674048592438423728874108649611495211191671431258258096182849378402947341932956138935877343720277423592451563964360718958479795954811836563064810633672272920617550029496934057851437462821842537292288991032611032705647528236670131818865857732567448161561898127470632396808756242014827928960470687542313592852460571161910830038899684466660171863373391495350028845734558072048779780395610067908778565493309418109600452093217128131819909903648647261233783538687386039984463499646560214905084644206182273328115223835519493936796663535699667617013759721561143250174905746050534102216097103301274194119491830932223950748717707205912587306001835145725862923655602783292473180309002296659681054637727037172910833156309778220120448528562324466949137263443321410025647451497533083589450296279754400491440046160146369945898360391237995859474313179206049531061942821910334152578909518199943004114649043834998522876276972074065683382322142248407065492752460312730006085296584247886013141174473476414383025917458565888263820552137123098967256168176687322376059902802137731059484435501749426032098598053517909024925099742091571452274536075101683555243239780203149564423563224780692385260712322533377452043235138484455431138706455238752573312672269119570019499936608950731299286579555541071538908804045754337226409672531166579750985013427843078153262588973852878113656700283230845225158697444491750082482675805129880345125320622502011927161183347145720593467323808356583072131049604826115567340869395632680913618219430944192600021419265768565967347670986327358011852375039882632869852485472329651859386657106012106250494211105674477345682138059496003535223093075504421844163301896590443476243642919409910070267921585065248635507997134381583767949907029766517620324211747998952816187496988956318157134763649648938816956935374726371883179394174002586829564190495011896056698348048098393665553609195956040234095545234567070154455554383113955000620116901265524077365627954136672740097655641836496350890936041440812278990348842782285747013064767285217122582116673513554321466512991570785011839328497047841878812343855835182169973166205022008124799687810151708631575265202444142642085992228049748077374863168101040123890117934267829336604486277586045521144487748706443153981827344303191451877643049196713535431552258398051745213053710790911789611762275115075832819721593811201570281620052033642181351937809702651235442282985832495807971318022164661809538773032185556994456320523566286482902785157899307537674042221483520685570445213557492093343794001256237378330971590376612036441355248930957571958436386377788289568382959974462628050179139699673769684939047542151389222648878680208963090167552231903824917529920113745902846033325953371170612595083150419126755162287388350484358846694220312995225475366527355464328542257002520101507574998399089977752093184884850966543250411377025440932108212210031389723134846739714243236983716655337244908794656686202261719791091283675128224817764199914728809039599456808448339463151427365291214783205992774592682161422493557284160594561096532338751804264436432836747740997029449801073720030760574841162915483053064477234196296960518015570162163083340441541834749026416060884306525701792334259125492865722814586003008028337645352061060041060984045864458855712008941281136722660627353985024351010845786804861344238916806635740586129337296144030047533574194532338440074981858825710454380465726412636510943528128791780118468466002520418624049534508253156536602531596582543978449538506554035239097242377641246375123178013462970022144776549904600185321144828674831576469665155320017810851462742391043619669872398799114227135784669623431656966733376357573278644880081051252896568258094492156276597418992719792105192878935419266956628809522265698693243471532297538697882080890802337460013402155864760949434952726965103927795425554014430777906187326613217038356965812319316460816086700615434283300143508855381214977357151510260926218189837767321677654419300103118561290359450180096909939543652188993067962774325542105466365741274445445693959940255344252826848103073423622214023338631832377185812859233866650464036311335206024314880492477097538853041598063437278100952640377351793262062830038546629512359078718663411671454358275327428842662203222283682979370019178331793124420352979290355509625488396791054107148496160104452416912234958577581579071083002094851689977040410905097919419992420363307654286668634951877140016407485349891522281727982770226413117217329414410641331907301003381318754291961666160151076384817909171056123780172354976453036277890057801572336534598438566967690665007379844693378105182860529493072700749669518369512249629716879666954690425259369400232171102479855273204881211404818684418230423791157568989282799776016042238510886698424734587947663403331824575329643907149420957615350444995750185582803407761343469537524375955841135094781281812496477108501862370140366174981686818102986766811352716781183499806492731207756127105158113895575717463649711356908445731155855902712428151156039054653662974911757846423317254557550935866962261809283229768914785200416695291139935810350652094421239488728982718306606842873694111307218276970158713523782020849999764806816399472926500988762877827441345665508364674034040930794563625763550311554155488641107945001139574114841145782650806538111122133737610614757206275614166836123055420658758522755310921039541023272827780163142133168053616161994863872565211385451157366483275569317554685873125756009590774330894045721080152443278490446494549392021270655394922921321983912737833509235468514591327343421131183225310080886479500304101934592468634324664644585419570008424952204405054691786264085752983689625649306252074863351585566709784321816580961420714517949429432101826106658337321294210726737371776357904947060017858260112997051969625657276303307140992196704008287114946270508471332951123708302294946994495181316133691442774531443357077069840326106876552455903515815737708084398912578703813027648704504651268131909710562758769459115710893603557818479128122275492172888449323396836863094967719669745064345744347518596175926820724276497359207201940880263350850961533687489078490365750570538617674052897084265717426310090100866933699140313629623418043805854184226462371989121637939724998654249065011437104948945744055550524513968631270209690303170521561146721647214970585120848039285391763603390525014812202177211467629389174273260843972157928918673138872754115378504589989168225894818237004080838027033429945463184549512835022079779120990381546246305807341154429973289821730290562884421449130870374733462846429048984948189593863665670066355082653982407545981699451208415616550235282191479559542718702865513751151035577000533165390060001335720974840847233353269530645072517125246257120312736159816895068217076379141732283034518443307373123419253327980795718813094059044267394964318159894861685781976826168017402227176079091293518958622397530832575612752561841897213754773754176617376076930194023534316886966497875307871617207068817894997512195659627649760895683666535916959674955687234340359758719049540899616721434437498196371211989976112395987636440261142670272673353374441330889032022991662453697983749539134560901351875052488562398206285386589470136699293589629509396034080758487473232218868963676336190642925427486432495808811105215068448531116654792872246015555544634017305181821411718633522243610501692269056320252360145342797810356899480252163414160888554145330684260087810041065893745961080925393052827042823929018870850684861252319741141965484877395244890685314912488827452932142665129794118550613897680197813678446368345974333558921339849703017658089304466571346457660154101529875457712521194958948340140033522970110283970895595975011492959831597056545588132187063667407039836540625485547820705100236883949732512219368614570904530537201930387923021435225851619637221023204992576530895338013270482482754639849930238741983353625364473660370387868289869439871615971769739572989309744157414906748484170508821341476024241790186987178555541223035191866337533051949890314957205915969465176273042927338503806272833372413659848231479353189621276330233448917118947392726123114263917931264163381440162214560849078311473699668651801409300570115835436177559845029178361123138768881823246291238477666120390278936700094200219022192051968468205608443982175401597663277644555486309102354938798549947821897461288394886001954605481784171580796576532552395058957126203586649807319614045264605911056563848441275499194109929272778405163872560889031694042128783189554712207277529938798165719612645627809030886323586952275258702935208669134381259592879821673308382616936909117035243546655963066971461209565100649262872730216316943167099332089248288662723298406491864230705623377754603630980421869341126395512113456574528595915650617311675476111775029172235241355247563211744396392678973657599822958655425673002360741656618206109883096487400957775606206564320248567327327556392424605533776151244745700241582004024315565248519162312490069926582037845763629500232684387606203653274745991505314460701969998655473663007222405157461001857349254824706477130663101404295548431833590082350562421998120755856113159005420416972657321704160463864450800395396485497164535000152526974823458526118402220799652018451411734428943542541843623085506308521113971745830853905605830430920916334520165424122335358609080096831599159009416023449998190337330502197480109864030282786447870884526497710948374463799303061329329473205305642226463850900770168316526837443240321900364181915061628317571448532979991146889103249728250924390808748174444471304383635597936381747021217178147448092286964019217945968460864784194604386502172559645574582290464322941160913771121620092524346800716297213936552009662373128458246056837209454079748019447468323536674549621636310721718487002274626378551206765949840786378739674441293580110239771918151434660334354869322312995012344815906261194790132794023944761841852788348375185474772064757821949153036173050404731169062675501487504776795382947782715023677713151520868382778204669605148592127332393211429790651268203086989556457806110790409339461619723458890125504107056647641640437712107204447322143100712171811688174945489090184260342993287138517068690912300174821758361474521964009277341144668017402680761588933848321230125191794183246310009183765910152636477446653378162831326025469535309350130558664988255344678926180144683039644296516764886649248608439952358893406758261087610164935757434061677887093299513979167490128093771725932172872886144991608851350080588191808254717383767744029414114898523698688333814027264866891428647802177483295263578290921091424003880271726370756635490315416244710226048271564831424508900509353485269601087818515893545392403541533349517586469708245324837025465760523141228972166690969920755078240747231425244716732082649889307332213795703467856734025846550059186515285003830133712404557485799995674323470818176381384761866713637599475322622506756496584545629142888688136633983139622749689431231307985552303022049888843208649276943565226180257447916702105916851838004407909216223415072005677021186010332672012087755375326331492817501616490467954817820321962913886667526560700816950134533356297256599270597386216265805243008934547032179967565078370605296664203309070085576424111910752734704034652088129919620808639336905306398368497574185799301837733347737827550420564009681408509836521596235225463518697061991833134716611287200751543906731196169043157741657351190267444849087195584740920134328030565736455725433581667645400594945287337136519930738481402082097628227480011097007770005605107034935388917864589058756690748172451852900956666362302092007121676849467836715463479036436776202363048882014191929095809865831252958207414349615198161629727257594074368711185766810127464206769496882002590275490268725839824584018470677946912422918607452725359777504515940301299061580015155144755759699383300588119620794789267013219804188240646784426210588198959305543174111396675281133589861036801600523566104260196057651978647378949609761829404678008313557004264649155440596307328931171552871549741727671029699636856833978128111697721238203877096125184103441325366593380674743780113139654943691143407146154490748078396435736809230766288581357316683253298483840516811887658792210554941807225920305138624354351877009765115045139406810062678123107207800346448888067063513729521753842171431407445858613401348487243902875723969254996049977957857971814949682437473824803453706616352041493869525778968188266726702556581144361843789973168555545246914368961111925614044196044298838311508314364228582517537250477192857733701290679297307603594366418233493118309074296871693742081100491916820553916087865249544705414459658290445251451857417781729090623465040373738209134281102147387518809859922016020476857100859117651428916757799610626439417328941893805354369773607821340126230366496215612740133768474642159404965807896968494824646767141075343955928922679828784057322888183440844586894328170024228249056251766001743457973678645211329338667775041371674357708825775150397624636734238962753548334106153216769528646998276814342058533430503877634807809467740265204773336622257483711786891187903956204348047847872520745827804240210863081546338240393488213267947112613114365444267917386892369609145747991225537115097880938880882216599833160762000535060645405816030009323912851635995485825163278876918103565468261665972313829326574798372187663982105044175188586248717868284803882784636109472423240603601697619430986491762646082442393445821012074455194123417401152322011395400563125590866642716013739746301119504604796139086250237364514146947689443953558427845195357667406174756470936892594805606749302656655351848348174391958120318202539994881437385150153571419700276235921764284488092342279855550910461979864537796367614539492427766974928486548861331560166888340581856138992425694575918445058279490018132533885713805222228049161181814606314200970621054403299544874784444332038813587025452437329454110888469355916491181774282082970328501820505973784519899904143464775124748354608569250790768535604976540344634540632712572279384455255360468526079948565711235577539040890719897607460949453640005806074974774115097867263937540593553253761315164235354782438778180948122922141880522987339710982509349277158538855957404411325447841592699320905208266834943314318698934876846184744143981216373688406537951252120320270281949141589434917399595528630052563419772738456859381536398285044132498878613341686023433625576151558309990504080438126752061056792680904764419299319435047219321814190076965878008761205128168540143849484871522051364970467832564688035635177825313379116651852032698555098859300806622460803108440168734956618773223951179686914606253344598857603196586782241847702397616881223629685378986467342407354892875047234639287174017849007225959859002605785749413614310860674824766060371973861226498790866827875504145414868482845928740869006383710290795427608991802423068979930241162815606869634506641706792578328687638650559049240560979760224884386992887628735153740387292160591010899133467628811853291915333172735590503360401730222664175113185893367697063842707730414499735004031622909611064330885013231545769101405625565194222065412229264326292859652695982170409467311939205826984573174625342529262079796172580427569620129314370339874020114524312689354273197414912052269799830213149144294883365708405773254732589421289033373953752828254974693947855528753230117399168428101256782228788247305419043256883277298968974291998360442920878319842046459448196785899452290632418387847082588602412624697417039716068663956732173818647417637107804006322965235195288522837333839870486831742332022987446403117488887416338334411767044384743324528648497835137249256973580078876851502455915773640393173468655116239414421512693266778152513598754330717641194064003435042121687708590586881035856137660891280763706165206556984925084622215509913892654449520228736683915257652383879505655966820499580330175415910554519149911398880993084661120873607333724638422371634810228924610399466956361678084133007771296752438235647183280298221267211310652306135457830482977733295879383918649390490343101381605493567522246439145335225201013890470315713024365070991941722159003181940162750728134211917300562794674974772136690320123774695239052341454465505857247441954717832758693899534934195178700415284556516200063977455664829270391445160477780796301070097944757457781283794388823873367161735055584971434007592548189709099229913629954213854841953625932125991941011567246589154305323856409443154208767532956040421112093811843659872551842806150887843604134421521686578160145700506742432449611818585577117170841073770509996857815469601132471000848789042413665663579990817714317219531269609433163232300959496017455874030670306396402116334126372533686397055812921579614863234445215591731601365171675135511740545093275313141142859140560380455799628870375518533407014947637139341144290278981984940148429730705066970103614977829914320413201930193090168922393666850155171088941870632722903614942644525213461534677903586295897629338122222068603011613517704313189326499904269569317941669665830712988894496126098019826172995787679634576794417510960678937215552539638095864481939385323970596855168219871136787591164832876383436406162133340470510628707773541244294280811002445047748161950893470555089765448713928612097681939596484531412784717926234930877350098245046179535464497243057764225524565115633319878758943250585894820725418255910413200815868845529238551027385647265762662737301820774803766848338694128948966755262893267324969669968854647433506828812331926816112653715744253809993247900234733004438697473157950995129991549735682648755301045825429727599182027641983434747103899004866146753324544998326453287617544218120102643050579454129978068694399474504403011182993017409827294332116233363317994056708854324107624770163975160858749544272847750467716476971775850974296338304629514692032427391943200675229663582468329696574866256949738224379423097353291812702365865260126134830244778214375729127945925841215855763905351039098082682262710180903419175203945902003929146860565339869610768149204573030045838438080307616656184596371382724100366663381400540715333949303103864064716951332481563340874028705782859216155475937503945449631239221659982914615722602247492665964665904241460279343176454900413739671130264217673576076546284961582946035738990683813040185302927435299092541947318233394837938842770910040542758691997206112227302161150229323693994904782189689676694951180000953354196132420156698817412285653565329672484394409826120629377634556587466621995309900990005827377591159132366533202830612544112217803763961649020192037480869458819712894520215618724124825237984563404068860156162199843146386259753003081157935872777839005766724420325953562045395369494132211284025341314596445321768164411473512140144962228991474809031566580355044410162281249764180438433142998708320476781729461924388569463296942599250267675872045532174002649861895135272001690082576866627692073879447110206685775583615292834937351780121381658163277399338545449950965525031418117402715900723632364904187158335401316203360777438234335685050035371854782652362476305282809361331387376432777463768613000654532765270608162400982841676156002947620432482319401253633778192220041341479097750543435533270181255033221891609712564448961005565511150065968081366278444385442591060381456382822019890795877452459067802337207906245786925751117559111060406215726558286718872446690057133559352098218424648473558720780018101318215741729514149216005105116166233735951837392172539591656362509174212751851714890896691573240725525554813139535614379648517973664808250243091595852538422466035341956141315267657148149542357905445076314532627130436390305761001501470931805440861841644468347530124481352854241122879910055581340102721484392333635175025048077490249763325090287321037316526537670313962886980280726623012169052327476982501947852357810299598016007949533559910647245350627308974119942993215257178182209124945413146640531354997229358413166552184289796825946982923308962659733424351580644275896598227739218992221013482488750253910344668010671305260643880370659680010088305462162989653915721794531109991605109644798793567325958870367464220083424413342811605625562884063153449623677539245993265085922904782389120394894101478982531920685238145040974646685241439964845664369661787614839311599415609098000198574283396736627577639125161527756039574551138590619030176789781338621053585851194958000166389284356408211905883795920634082427149259262756154758377365140484026304567851613337995035521666295701661804199551050767767077172758409942138528645508887332918810591698833186575275297577858306643413564644954988016077218223826623771196344741455253111977131976718142347214904083902627041523728437388617739274079293585372450841067241503448564515009746629934224799616268610706134390093683075629695323017218452142472021706869935748348173408388709461371251219540838534007957028538523999047713999900178407745336043992010783104039361007658862452462547859751925537574596224338158452951468224333118675303647154638026740495067784435002426549393742183593135672644883159174854950826431123312638377983447129673081206019696685202500327953665646341134302738475856342207586945619823551025021735710553575243798599867915593725568050846223804911224552253907554064195954639827314093020462990421127943922937662463188687417129938935492893950026831959482022704920703306322590747181306442281973949784067273226872601539468267982312035480736777604659364990153175866319516677802349627484759386937938233863081643183630882216809255701312806124102753579015774536867686019004584447310107624731561793073357211354686612744005989636501506450189106463934015437916511319449140245762092716091281094026276443689665753835992258093102375117379230161044574360103089226852775597238772270254285255626885216506559042304011261275949952527044746723288025010800715915832282416324992215817101961685892567571075380738959248244228789051950541675059878904346563969550003540988520629553966093650322258248010309627550568092014377910799929188486812515011629024971712694359108660669646080515108234537839060665838579221552919681942357171446759060481807863506812593070516076682631852951650398413098040517143213408210813325992243464616311096567809884390267040997253688007144620895074519649315657921938397757394807559620779593800035692098124550437466518775905800490744074149915101856415452690060399257493596124360990184647143576196494669165855060434959057559813062955160525842078132838384357039251352634063709435587752744784606355422588972717889323810094971138082918766803862518222763313497529379812690618374408638167653784554252222486003135243792322692605298309787559912751511729391544428881222715773277863255692856884486138545182923191933184029251544751420035865182406632064075806109289432659649783792419482750850431804291868459301462415192722409921861728275099702172411559935919288663972164242749388540674780584375791888289983753863721961775190776250123796726892582243065154175725558509528481528215812819343402682234216519099678117246364523073541210592023342827893635337281418057772692747091798320470657128569942947792831096800087880453092025139215085106615597333917575013218571666314789321016852342071647032090310940790435899033243334964598751476273461007181051096996319998803460664157782148526331337982570164250705059862747280199976259903557145055717613445276692473629964009394800415511672234878920701682275729805345600061344901860918863300606258456375330724582197114721591637931742877666727586194455774674931465551826518757405180639395913640111632353828330080209230475484432901563591845710189751046190176785528139079650888990247023176892227381627141459507670448147051250635329708744399019009026870177470632459617120344189798502261320617039132222135604252251577034311519802698601064081865013430712038668390442574945231488890406471638642311918012953521298798743562183858979172555075385491869834405891967193540972565276607643476790945699450154953994652645344445082883589106997121966698137297091683429546218258624874066250468529529511894943671675115460743720664671078785396978722807559924572609604508481884417020362204444651583437272184099760019035814908762482676964558910486426549237058283888628748690503139714149565252967003848310240231489903765753593005542737197808312350772212267719847727462724073257012699021316952122904298759416887147479799824288202478342962870768547749957264595510594244161514307484595593187722335840065071490232826346154350502153491345348008383047034959462713525408687779310981728518039608440118905377250509509335493124587788766624815783634519701742643159067544897196588093631715872194673191507566640618349095537925648251739666144422631738901836601822439122111796311695861222294891955155744661598528152080739973604763570473010143694437863720858034146070829457426741016342475927735064759171515429839738764052483220880768152015345734040291079649674469822327715838354190267817383002569095643686581412945059647830701227459873179912965424983736094608407534768586039375505831091246952687066481927013452273814304917443142814925319159839080718965253146134294786078029788910353596727543169757369421550961841669377472639575567033050185750580123770665709079163996184286654474656764079943828589800606663109808240284130860597270840871512848136701809419654218132447026528626299682524515686017429644304455246933674825027882437327145094154199316192533505744104938002745448555991561902662097867379024398691380745882360493220276959545534838412326280968854422980850001605890992174183020181080414581242299423447555560790715993208214853276958078414293472452050426225693856484502889541741561746386840474693676729707111200854411583878128009223270505509242606147916125845649225004732810172629732916936438345452001922273305898730240913912173444376485430711554355475533334211157981631643386591664037243762015725819783385584373980256547196104835520926228847197598326342318427530536996801553739464242709902260188343267795697684709316312488716680045733301980959557314141274613147259965792594951096235630534215760586228032489021742676709855179259269490556859282890815921742505349928871135172909450203631689179637354986828181523319085091533346112185660812046079598980754380026324690974831816742795528719297521606452402586198435938219180223312986630808486788244752595064689053363876048490751122315840316221894510175704403768284245250179088162978430302832087735315562516854941374112695875324375215084363721773378855995279919926636850420575719870310075532118099679220906156049490648793524246599214090294075369774955488213444667075879731021046215617859770158667449028860523541421534621727137944071603956884907093633421056520737162695857063496027822280106425432683405010610148236903394308769750229411353787184663010333180786628206717943827328335297740659090592342158678247575284141847645733500539406786943285124765455246168889052544278587831540410253350617175970044547264126308909281763468661559335846345906449982900177061834366629210102964693900902263348958461512046286361583266545742014348239893502374522567384498744672734991919019405974236658962708030086543245723819790321718618279259282622279936499526918480717748774905468985823836881156034540355211264289019681973554906043350435318861531846103443660035016436517191463449932722087684378999070115190407316555601648880557970546906996150604531613523018096837155179246219468413804390255067372544936307054096781365097662239490247567705478083023688003774774116208220756067984822756074091542834538272025982807384098726645738504302134703135163951469456705266791767569144150967068168596834212548840417042125655719226135233067655209394802453770612132466344621106150901442598409022899991875230907547514843779491733401621511620571882613376838222797935700559113776332003851447235440936072188383684358564325739076383873944395499618631521700646010299968777471824158406168904444180726627157322983133698324739103305454120930235983655397475654370071453352674856047512783872563410452319131631752639006776658859745963933605262157748122358357653561753770401060234889184908079698484554326597380815247246356025840572134198403088660534417044360293324866716870152961141964024861899955196440814037531060359767179705485616581701098834143903583882481877107299348710751821369072181833264961029480269765507532472347664384348991372453191759250325344398705163951430420467844331540962847182205555693926418352291929747007256272881271500232147106896682062881972602614435152181693028746347074085504538678244096318155100057693302319375087511644220824569590777088552112855957267988758981944877674758674687008259916207520117783530907797822286921892949658705980027690609848700323593210075100783627357931133565144899621292939218458845381395187054916266341005702654106504023897945194252065934050908366504035939475304435739546518132646162746392851678721497217658195627363786585796430674855191841920180427578348398550189880482372149672916030070705609339857801871549442458697954861616426750308610689904566954339921146605382380513482311086017337193773202179758467684107792390254939374711878752538541904584761143225584487429390646879974106075033906306463045634919525934961625091238413629325594784793855371401633706748316198629352510319268960826917498450557695089231685558936566822629044325471989060429228433238120899252486818848822381151812515115761355458650217701531004403262216826157707719360579386822141264074422733306879115032964827802329787284250838495239482722724721557470346606122293044438346077594947487696798260376203761805545420157637866438270481363974630324815183676595510623704161400159746833197402702512957955926648927438390025995165836500873820579764511259985079170658301435090781905603143769023394591962689972703919670768412672235418388286463472307704299535153972240126918372281635259010929163090921616949867889343230298854484369236045903782981439435685371685224218502521673491522546719531823792790922192740485176308165107835795966628262967272798279205936652829238669982144301740216892246363144635430160231112721461494714213856508176436644719892578989188209324949891411609448695253520244467348928308457769247712893852664071609203737026909434778502255785914324675004693157492432974056418009200921413117315818005545831480680007010213006737621993286619418606272499876260978763151766486993408133767116588511135348298002767330843327440281745196814126460583467336761189266956151014442804633172567095317807716775469230320350268454936562662068195372507645911882344858250184326714370068856669163301970225200070638983364261038623504544373083424416020824231952059786151725801032439583516650532834988264373060846791720908554228015187862700939221023931061097442959455537630998924570926630917313887528680033187261848243238210114884606528488763568160755744425555000912830551883901152279683661066612009067823748924892854678740667666701408568588070765148325914748388769299833896641762726307361353315456722230831898628090521151261496139190868087133448097145787909637021637488879675882501115109201527225783819971976585811201636550631025215004865893075770144849304817755701444433713374994906043386442643458403211414408383019188093175261427329674517761413351945314360827445835703342089039487628387126655786466307021714267477609126059255242748724484836528947615432673092568113924008700378436188878478551316956993723412205898190768223882862980200538617168786172284841616479589178072177818947864769352367159900193900208577429966417346999726299297611313055061149305890093761647643086346705256213751446796254035984799545428152775520355881471237400999972257203974444713893378225233430871767740055076311875334005030390877450471179444841185277650771519424365607319461328983751389545374163155314697008323533458969611443614165369448355731270399795116490758977037506013901870646667552596369721084332678875037894981818083898745547335579028537019505329304278418221658964407769622356209070279041719372386901416956800006365030255662583800971665417570469331762168673283529740312959406596973068636280219473876111686232604809496700321942091743011773568278139235866438653384416421639895798923311697072927812493817455651014437548527685701088489965241895775853079549740129288756182122369160984349125075594405705741962341698002212100776233272441199165902575542720940883037723189625098908774598187676303183218624141236301696271922619091389338285970205654280572510696282512208993154980114249436012856083701402677622247194677341553656719667705011766559123806570416614831310094250281558181880417240722538589858904728486907479505128040507331038153124168544999694666535627161120914180275216989063781947701374018288561875049884616376737330065404238230307389654962622672191433426836577129649010429594346018176100592662963521214306571849303118425119216583646937829542673306922880262050970939005007419120515731533511236552743109983853560154003664753564410335074097442199221126773506255431046195638952390997574285385849604408087681622137133442663550772418291590621223204853764820953372695936398934947602824493920815392764354282202119540985693031586851148026520834899715653198286370348126480982652411513810349675482803623804773350320035152228172905622251855544768178515048748767314432432710417202619505188461476301186165651226917355296541362711418260595532388766032658129747652945128319834286976143341554976941017420155597212832028309664975939694473012326392068489260773206709037099887911379658794229108805429439327254609508361144972727765652048144702191357332950953022392294389712514401163053223340497329197879136583771190403798428614924029488400158489858275265771812378280474051237432044604154091249127079405825751674475289942257422679068705354662445143410724346658143448885624878974090656233696717414607519651243699939045038322385841178722340366877323963569648880812692763794523296001437093175114109237513193701685559395883758225029173751923527438586999024729700624134015908153795851429956216887103119357541942183119851192695542936771715960830799824290043465961479550017549042030862386716006346345885922267776892673692500521203795617194031652144325967580523505339248091740423858283373574758506896770724803605918092090044352042635412967998076045089048561125026244587836537054043397888085359938428642159433686758056192449523655690173325354917071192699427975291719631374529334616011481583679651564273116119086845227733599761894827313820252422951324522928617545039142537473408075922788317058392923354776375667339943935978911203082108213756579266723118414286912074383152673756075819942535339318586851143923156751011564618476183163831493988484814450707740635781377389595960990873369682292607882920605670150056708195979724315874543248716414618481406703288349213246673623827767229744725274360308054557207308287377519913672255599074274637773717345955925193721661138129084194897381546452119525014252522113547188897743976525022450681786762339897371810928952407264669281263088811696009753199434813432979250981769184617421633137093124310717088627953414637022898973833266267247847621464225283193980152039792165499771398174207507823016048412740665346586969433882652041500774716245442027622205669888554543951882008817506659385732256513655072496656297306249046712118725800231642984792750996113743150366395155240831522864382181968413986851531798090292254307757195190493873177789969244091481466754469331340527541225830151887628521002059340135029986533469233607335220398223918503771501076574258987960055867750344337611017037256001739280868485675688895371766192833660854800896073011502876170508636488168203948121115778854255160799961695504284355874629595248869856836054860155008298633521315695859907655451627471621672126625901850180575297852438803035165161987669143126126426081115232213750259423446406860228532779530694335995634546304188596946781290731890883887810330420085938259802399123082832328399743552795819839375482293262893355605172052280152714851572403797138259508768120181568156842093933728849362547234670887814373253615239819556873360297573708954372574635239963929468170910215596005341719533113260047257154137528000071675047786287387281589258155202334311876913013530617986635771950151071541825418913551094184100037006523353758055103503493806926367234428018101802424346849569375691871510661119408092130103644534809591382667389613305021008095970428325141956239656585060272472964426207702259695967698056475306165563862664606099496349471319297567967203354537122965004235953318155504750414600968568220711645854686610794573051439749140442442371485424296576003830471971965967522882838099139637040371716897303734729011458549029098920179915400851630941100904237965702951105967110037479872586868340556422785198635728557267580844902356426628721643605002653277648767892689340742025157835835214416748679287596017576595522379113450077690651758273761393281581632179971631018400122275862615867390934498545317623340418259415435416477734752669051154014272760771012472871581051459863717025252263222304376808405792012863046773596798669629996786493681030631738067141823030894790937999185140453865516796034665576509215103164428228101102651000756719225177378644585382759325454840257127249507995229449130466675517003364605249942086392796567254885120794263024666985046872392176067069066822812805355597605405819303247818879865239588679374807934663516084468460437368471490207639180229868035988469710557003435402175583156201851204651956535611769956342284721580337726898758621932185868681476023804619559488521429849418789989159526681859343457361866312037957947775287194538338714213704121432273743545279647312016380950985685107142033221787492014535402053970071777846104947483974432926787632374509804429498063062703320824663026333915675229521325639646054889968706813361209289714260234172873541285564289310098010312967301930659623851639518457241901831084233954986293628077580068481535750439727482386582241422091993756789844521478379727547904218818612146129033916893125540377970718210002500632038083514239218663742695546532460508177628447591737029213107644921462605974737084801558554946733936838465972433113814955765903271065323762715155869853793491582294219451903831681957591041768235013474102129983925332069667985819941178182944713991893970514843857946125998006826314156236314566863264157142620040988925406543949956817522644705037594494933950855912694181186140476020056389131445658305746742383969054924318711020324784787852203974748876865534320944087625208372533960008655307476329108387862702763489716051798790263350387013844255361280778866413451130467320570899227059245256395583716994552820760949238014408615490636467913283038949468417933909695358595443025470053296029311435401060994674376155075168444807856745632044620912533283739668685672749491676344056994174419457306680912539096677018389370594985909923632701591496121294178291543232901174349173605570894716129589672517801845669381474426664476011446720317960637505722973183898191850333071967979718534813131032291213013882676737726843810412190896885378131155605887421979253802830165831020316104708015815148010141957957513335047428348146807735872257971818129560017863479931465479650788222662331601326967996047994134941670860225999900258478571987185868009327922656674370132033991675697682402954190379304548135639288055274929151216986555108933114748510604187568370068862347520785417018471346323222667788589650695806372685566704810750678024271577161003467347406777819044679727417840401119133450598325742370700784213616701939006327528391131881684458379131600648306363984906111857839024280547737297288574083205760903399430052298806825594032295451649929428665904008574461581074760811853346299408605307429401368904350687793565738472944365948035786180907320690377955549384658312728631025271606831238347527843653549170930685078360616161368146411695399133408692614767305682633245246770319449214985757703688799215650858722661858172794361023029428850880135137666283365857570321605215426291142353192241979427856886017599452156605741669041310725232574779341150362715987115273131796729526680178857686819132155375443934435130443245730416151446514595959130192533510257580521294644516224387811428728397992022048140259784904304921848810786018941842964594254912466137113317804353454664650127048038161801846347130674290599015160597112158091104066080204354290106001805371738033562075878063507587874434707249126639435652414565493643423795954828784085272789876352321574373557254637047993086701434769025015306183875960809093446386460194413960403330976306068106753655476237175023086599307919908463263804459553986434440416291948326542596570110854731636652896465931025903268618045971804267725177876766213105133332797919031032890754832354490045081986018895755771315377452524850944632393024655857989422928393634824582657639776277455379899628975367802708848179950366971273524356022319319266575591724696207346557670984207778437083206450227220204396462716714157120860589101825599385686276042995898474831514057976757425929720227483832147069157221680045734868630556439509522973992477463206215597438275692587884461866148515177022415003659416316343570346204801160169745161572515225617717234528117109905438366774272906342542823829509026054368524431658015939996665253667682878731706543227358755043023982327140854603596788063607844884335846592531821609848809958472911437165130265794560008996750329340442718963554050027551644041754383502699491557093229411610220095010893179812724110411934136772457024600655379288128912278321826494265152429198462499886617077161199868708531175664107048468781219531570310221975423643623919363768660472316271587716970116377296766511118521587344946897562373497124803629951170221049157033962971320061019436837707925525020734737457271756954579048522124497689081610229158417161581403680874770454348402278756119108551135102363772659172159503758616649683655424762903650734403055616897424674815188192558906157035555790983345078179061910966082696108132373597014587388548883999401521610530844553518005156986357193187490287502599613311346150577454106625248464097654337561673202736205494638506729971253853405507042397912147405008502202804675552343464413923476837151737512801747797305988597020433571100940673885757262480451093270894476257041764291179119845929448515104926469771668800195814794476312128727968227405725612394487789096586835417224389518620418876100766499188157156392997180643822157791685147368479445459568570573022455188964754285189818540599956298858462069311521678428428049629727850942091607800644418142737816685344516976714922413449371522763481891637947367193925779393670544227524661684416586255850870580039459520527497928759902064177944218822611579496512705928073419304725059969534081876842330099967542363432210921858530886729903372396115984991728272878086812980067839843518257166665427498219341071965985295307141612493695975505333727060013722542995786535828299609753509952846033967042903730544188427313404615588391226089860213742381973950610821300814104637372786919297430729600247950666335216452614567315914845427980730023052963124315581980472058920079608709188342815190514624004490744691524757156302018935717485480976115733060004600482108694340092759805430173502865759337494261757801315634440051598022877252430283530208656708744559312254274829269398362042167563459000802571990272984611688126953602696271095209480533317459160816444907009169117779659348490693403842144109501518609928195158169409329079520965395403087276220530250378256797361354392024674439621037806336167629385267037221752132060679737426240323301896343933604222160659951369103197459521829515119658958946981882079626863015577305241331470733338067106635198296691727355672264373350433228352327433567344947032060225470744864264762182175923910873375969774680228203980371701385866416215132783229340258001203200888252036192919442148588542904896155795679102887816853568733356033215990583270281853832226785283409358673823222152215019762408898849954144617634454264430932130135043817526817522006308654459067988679524843061842211368893019868611960592933381270822596816221341179103882444691173185606512755152731983041103886690121508599880096091282429020871124848987881310984110903794986370724123093107834819001919768655932001751971909774657614891150293556579369558030620454647704161932408948095720763227344823530927524543400449302766316124172783608584339753076777415396749611412337654648124664432199857664904340078471900318556171431729803039071480727478113346089884062166223403142327413210909336351548866079746291080161716997200350563203791881291078577763591728363013237853288449768172375406090809074438640014597632182257771350646841919391268505695986249557111622995448487150975175695629169414704042248519637681051658570080589197293945994672411602178898391662362304831149581323899748228579457783423017556771456902257739601411617218030496092880465908342455217891843690672934885792826805073361848656391372175363248463365952651497675428946217045267602928830927028854573495849160520318708224693142939110926721712296902020177456067809512555829818177107683208923381622333620429167241817459964093900525405798761111458831282604725417187569481629764160485788191668307558810623129575023907756180464059696401423067159898569091605274566836207708129643666789067782637883955296550033792720324724653331250789383298955414842650920363053225252610724650311907327580019678010345042622501313163508028917535688955605517204700085902314439699842476887201102259820329038874686218479963658497516846480503838804082554159932586531379361455483465189819629365821644129765752647819754765994095504152421539627119333092653359452587300385166770460438632468385360468706888013319444042594556737225440231220395458776013546406940150887731130957924481258618503543145197592394059107397531447388486984792305210432275691337944934039675303890621566515209614074955327610671713632143628394503493268332396055166077773320058700330603982533740893645253335363500373593446177921421235248585137831054853553622179224739886471757487202505092837620954950833404030323762431610743866885024525740419967459072403299827058367926877393328845391562316302944077292764541306282776542059908036503495125034853901177477897731284574124755300868867724843460670857361888735495509875641414788378967717960235643068837465536903853682828941017733302262393096809332757901674245864814470852133401818372527706594552827703197181399860416173896297297147523307920477010334226692891113190599639161477631542325023361016804467097776848605818385211672906316571852413607392365857410331955386288122923854688010112965711757388007136712579710457408418389291041618126753498817163028121525160931309777219593662807343530693980263225903334835976904136129204714304424993905818168376976757608287186184437802787526175187863936112386185536365941072571957879002518105301512899589776186354803254567131189226309341855236716057951389269546799713776545113835914501160454560311621572924506344653772175409675780689100949988731351033082146005677199681916356720140975931085577919938663244550133950210731259846729726533203331236692231475279814548576379846157162842790493474111328669923644737810848340289399871773275098509428273385593848382641569438777677490447749149321881528222822635369532741983042296290077101501834959814307676149504482797622009543066834447675345420985877694183812284860391211582079297117070958219649965598488579976185408270004483874538021703354132697190765162914239270752860246734971955912018671506649103754533680481930835044956038797433469997198079255475045728741219896304476480214461666607307054302458145964471097693371697702134809828910203361989222094794662639462839442494242272629766454028553821706937400079035090137703959158992637817899677530055328169019530176840561015673658784434432908261531321072265744352549764502444272396410444853608789266100104606779396377547063329703687529521516110815621649781773644703062513446662464571092400967093150408807269584191566262018105230905807447986834584756055396518165098623435236324773010621700489930798164947182231695237580760628498896661385029609638640310001833143568079864584218030933306881255852530985236774229360958047630102945097545555601730481223807053347932142658451982842307962874915764276393020703742183353038314936555295536011070804184406156921275161135065691177744014662039296636040135588581820191596463710737626813056915218215023632782792084497055430085177798733292979115883917043808510724174481164909293442956630722260726021965841302758500606317071144304838044138166249441973996004004501118167164417104611443364101738406227411071418841870466895061672215213943273406941978630201431287418541589333307964032573502562674021820124164069435903371546163995338804667193892030664904778489238614516273127684295643954560679025615235789678133285624323182670986015686884064426914285389576324789407834691993675708161898136869197637534258739753820169212945873915959453433720895168291037881665376239564069026737531381472595885654591510222680852770274401546145722344809929795589136283438148090075976343141867858115625808171223609678489742296354371791376049802152506429421822347807675219024954916898185587028732533135260175059760106985896869452955122043679767987349360213079914912362036146344558502809749871325270000201924446560262485931631879241191526109784563459886284822509752174945119609324406196346604924623803161243646846269410482823522902153349851964141169784543020812568592488732989292636205694440741324298725246681535831284393052245570428580704294304522148694018478184268166299959466323075997903470470015335000663187858922135844823242424549154580239467367581340134581862732242451809473853087064985023257504493776620954786000160532274454556427977228471413240873326505219633816255961672829465342627334132069346705956867974084342864642889451462175690363415774947587082653220775034866346410566347156837521171287848278602686403165296368377676710246658158908742555243836615001669499552849394773955133099639267586424375972575370927967863023898821399529252392947680832526289020032566977972293899565520396005009650444855229119698348015086124350560053177985555387886447085307766150422542210652645071013191438483815395938114422270295276640453665126102343008122451743689149316859463329627472773155690875738277081435291222796641878574086934438292766444804193217505841311940380698858781586024139989197124584252721214977840293759050465559023734602658406845545021453398059815351206201756917577756881359561923508887676749492506012776736605862616925185476758353085105225235170926048154781304766124528648478570648902864648524081264386248747167467058871072084892099582894657232315383846668712076500001278866466626271254213841371242185510419655357934482243102320683172301053850880321123615507333726967439191174250303493875309326466983593524660302397200311660302202647463846423633618588194271051132885378752785430581791778254326528328033626958066989472922696287196544719471890073885202112098284598143741536288626368503557930283804352007119368799090750713853558307788800111831444784032591164683256167763535394337777979037198919806016758638396924877744799721514257786454393896703229061167590082342206880357324212245748970267861548818545731527785578465483735319350563352296267489346362986576153418493555066743532116059044199103366903342270419595893872792881117368513758428677685495916491688603445135528156022240218447698611421260532172247491110339747632597399039080255003169870130597745118083293781015228735968801689646897161101419155819741559956321720185370424338451854184031659774882924802218858079420670789072365848811950690635202807333111020730115713724828846259477400484019512010815971255166969999531225310929852463027935432334988361783870734602163595004387126699691346482779646023584663310071069169477250039505892952489713410879982733175763402842120979835229828805643549936945114854094045623949172115344692611454807777596239464586829120835011761005943936097829363640913053154956277672428141272258523433764773273966140840328954910450129668558308562734469618463822152295636951656299972881970410369453114929594618064196345897263287266129140326962192735563060194452292318212947556706021376836330923823915087813147402232799542097850778849762872389995823711171953387318652060413424625568575234249733278419378094194875654851193584750622139973841517054205684106461467972175951847285909988493590263614466364969787050978505435948158831522690607619707504799059194291244709095807091838110175792505733061223909593856145659094215331138024455706803544082975213185489135269248213498805368400151785337442704948907900174449094207615740540540721328409236923213963449950602043140892448844897330879759718975430351982095123906402309098569705073889094779612766583615981150887489060975909009131988334752461874743020658554344824947518737848099788364156699427134769857518684746122382738822858408698537711219419025256722209553267223885075627447487886000441792598602109253772113971151229530614010408858483655695156206166054514183096655041854749428105849553585225358385044726285500699002021391519211971181474276815758930999115063534686842566542821831000862667120219691483828413594188860579042495676826638626825751341993486469808122348607291419669362551840437364660292306084289122829917249392246520539611360296304873103597738920490308805679856984205605618559460298020356631813390893589452837564954538779659087537748007806213970586938555986913480682101693273179705060609275481521170873227417170577745343355416240057105042169116215737801014795733523889316706454446155924758076860120611810258640550625071421615167699731006675311445406313614082030298012344727015502035532481318327097189436296615474143213658551603635200773356289835961025489107877754816252923020268421546817019703805833438554172482230537300045742849653485862603600026006292251776489380923607212010259695762593529978251988681814165643829296358170369594622151011002229555540493940879116466354414633399169826019002893317650331492522941467378737663176567355899989584049924308753907824699287339971766270113698568604766434353356067721328472176619431629481037650029180641798194221333500703006931670941906211660985588016976575328274912588510563480094718042527667292226006014048859910977299183515993777199847593324443388994270237422008440823218453002495717328938518464727425517134038834914284818679248249084385975922773539277830045429194828163212575385732322527688732013608575388637097068798403322668888842036223107964199883126542101277898905043606953316928694750476156000833067984765606287950161269114932119225029643257273326652888199270559252357305295686535901229048480110313865901124963601751657055429383632184709267417414160456847521383114454212120360013363402979054590730431496241384203389420300385721740588175219292806141828758803184838436171336710383927756211961237720637869631948884061328452246852518185821124062165004056670969649054004691028008399509151784856009289896997390365285422723302137843994513690338319963006245976864600033852434118260487090912051830402124616077127297026096999455733421057265832646855663959216784306883386658396020890740177739279151325498114980758142877628357305539577196162210555990769179414472314888741814883660857296522267608924333391108477983432711730501961272685085548741414152222842939911545148137177388593710189996503564685968470536200687064846942612542221222117644768735715961338124312400548720854356973824684135124198055039866910590939296045879905540536913934162417355773811376170125682317373386499005961425243085026123391065574562042790787252401575551189647011235738035745987255741854920818671998352185199286154824803443151182364362001063618519867602518939243896882876766605145447139867956889756412051459977966844957237978030540320702929166180186605034260700005249762605265278647433377571193316657154554879759007216800011452978654250757447120697932181926878170848583165093044723640857580194870534458630577366391516528354885047687371113993663208151514524489204711862751367843502704839253705128278706404355072545253936205748156183619750383729888379144172562823879053825180680368541396716103244403613598191953740144291637096442332721010989039804000932459806965770012271197069782004023534983240658329056800584340260067429012421353975438718858350732857529120316091452267908341460639631608505028112115750323750514669569996818516529085436406261258408839675299331195379825744746367677036759511792835240267783861973041749966481158842584783801766326641771160582557729100733538006337256120833788260089237256201662176003544847672362904461776264521135556687711339235217322009209077152875982739970675534944800673201002000814124669881978877680508711195755871380824963820949799284332386640715763579034009398090001931830691152817439882758809752878837795726160183047141214866836818680706134115565603429220349995367218534202021205209441218262896432648220176905892921513186901190040058686323618063806344565282061872112932548170460485345971618135040044686491647150442261487456657174954407463407518060555724052034829186627901382918123920342163439369288101069460200361317489108796964157260327831105632817866811621818874926196280272300345782754658733484016099429517102477546338184688329624220076851513684908610264802242676863334696533904820665324916078485357656629298567017549728450507972569271137889111916270698835099254764537456340770820896495303544303960432798712838565461437073318810423930491116528641697938427008996919521960653174731857447016581921225796373242628337479064313043089944015151030195002034186581619442650476442748689208614998896460379187393465872779479699962128162322658353084609669503595841383143719944035289429842263995284546244448518501603442656052602816303522059017912509422475903751538664006836220785605125548289018303847787498116904230023401819250282122447078333178834131251925900343479448159979814538943897584226209032514023892637773311506690114550336553434776739312515723966141736155398389061750525302080378135904300858011493425260868209189273968440931289261419269946858824790918785424828389787540706950609910160488370357507074989519574259764875636386946567466916843082814889368288018985930433344384323724186268009659300878679936613144729204112222174832298126652616949858777795263613421450001464044504131071815860590746329697780144116307244149718401911479642029829581947504772845859726907718855680050091239433401700115476046333828710855715422808479684405380766637833122730756659393338288755795827583385345605137484168608534652611121381794706986586955700273620965212816563011129529743333455524137021943916644016138350048770805415181742510769928624575951284108238264998306097777657625314133851167009362405359748214973172981459791734156813361249672439243695488075867816953156843491959198635347121256024346989162383666849445381428291188817528715121047607459707840593244439232774856533302403570217282179439536548172529291049933284015996358883114045462022789160097367471939896428028099412500581782232581619980710655049909939305072464831993511747118991205182300821758607865197718562475954169575119642220341974943252369303376831955261583259411084708573880913897231126576284628395281004332281448911537299712063034328151104362804099723222710221638600557753248090004642272399134835975280519500664972664188545372928262927464828183915226965668299620859620696306987116092203721896653586321037494703994702399464872788754195513408579352504446565324540579685519023412032369351917139727788726815933514961466789749260677703216079943849537533907162532335859588939142385906007958942197563037715108794176151808460080613386379400899872134125322278856145682579633562773586173594411592929805521667627969964256051830185785853887014048113411095548758516482787998741872127383051475273958600066837904965700536613258191512774776223980132576287013894079204541478381233462093040608181391345136804315448503086573263363485878098123114259459913242999126264314158333893933389837551640750989005808557124233959955665492682706607363083709031899838493445631061735155047520980998014750732273724700921592155159010224809082970967112022457563230839307412972584065588096396730835510865675769231462336521470791473133041068366863921602315290837429101403733351630086213871734194217090163632126561933040332335126311993700155825850000803639500341039739945276258252917573447259322590251463464854261280534815223081171903979740225328239709417826328120822086931947022405058282086567550783169052670168314819653711928036013808260106637501932083940589649273743358529986403785764103819101647287895623677044125423753488885712704363969379058262277266970937360841266419287012012746948492075664416510956338122881973868724641060348629438859571899621490766296105582321364592155312437338603333985519410932645259406840109072477135255160909770657382812536291586313055389589536441214048744669835468209833115319100772128122112325595612031672950768073792148594493704683555415487797312291078039454497286360220994703862405809386154751072680601577257784453598106070237401579314030497502386292080280018109155939172017273590987055328802963837269157376677323426964161481437452949733972348496168811052593947347134196729680307696986398562211776461912059827220030265788201969472174090513102346180995579898518021195551937688965323751722655702569128698741850374139050314855228300852218903697150099217099995097591255595356680390813432234499175429210841818539261632084137805637020148518129089272731659742220342182964526315809261602742431517103747080064486296885121457638280577280812473227372855169458120944314331380397713348181949359960323301404754232228999787883945995761694775208397000513739161172944840361299539714910909918463862782352703634122802716559072505030163211793073811271077366392919637256014113375551664412409096073107086290449364878232935424431481484927917585838464269206915104792267338216827724159578594270924550185452970071717090284202704508586519720744785714997374742184321263606733096904701681866993799965683787648160879901417062758253232185510594124189988291787918978302731546552969238777142705783147427663197409061060390005635376297831814232588542392593668392479116473626430412175723315757608087938570604696894933125064406195955817101840023288273592619957837326443889762266224720259301615570814403943605213490748610412095066180763182589022529598932367975866338579271215204305026847143861221705810041919241361961191159716323725731054663837355823870908871285096173744663887038532411027827377702041389210956768574713508909669491394574932172367477692127913906969168147398722717685382660736536003001067504336527650353742759069996381876850785106869468659955242968969859159333219277785425613208937815284643315506150247907588922422713087916764001474693090682600312737035354047022457478363306526798683080014825547421241569358261136447799363754034605267155322200586688336491546909887190788936554610659719889944782890104686349169692755037387056593450853717506797068810409398333678086261631411608387513300199993414207921695455663138666662505826968989599307606590818258357851316801452809473303230388006128170352555336936250785425277704917257470866215234153396116789496917475896709821462904079358383286789216712291386170361701365366175357691074265274917696433356912908048521556035285686312823117827125685093165000901981619877559336842420324467784615925463660512363425306058018043130415299934621202173318074024610843743582232954250041910946562343153330826606467681608811890736554988863876685127553774100889408409499688562449600284937548055371000287462531793465256465002465824757068748765391479847817617544945784535000569191424822275079550281229762520167794586463671050742371053997894741625879889564315726179105692285051566898627824016417850027384915739999391142092392613244464240244768780638860192841908405593919830138027360953836040249568761989505904678482360573588359010132403008317520885752000195185704066303072236347144513988968467110952907244556345747582481302059255954396160052096645017906150176767748924810802876964217059773771312901959602907878590446006541651498402016891217784831343774960834572772020696158886430001877799336746287706515259368992376841260943768979640235048344265436439268420093037057988155239690764100142484801014333532230689025254492160917832417075586230618961529712487793620893255873251990569457356539600159890263467596504934745275132569853380539024507242454070326097786245001403655133171599397567245008653280102210918791647308695184388065518845972708113741509384328016036293160812216674998423763692797650307501267508323154267829394234148764700933441654792488934590890656743633339903037200387054118401014233904081642781001866917411760316738292608199387517767835357026746515325778512342783941842507711958096247948984673948952901419633152714720940112900421293250228751813778941013719960575761596257950353346006067711661131384890558026796855278835331906574992718047681322690332247451902888396055106986201823598922993973149112884417795542142572469456005942601747243838375242897981930326852111185217935527352518031910662323479604125209643528963752516036868592987272718539124976517194068459692131011762722760222255912504463496117741635342953829153819181315402718995208164871140725354114197832873871454760148394273782314368317824659555870322351758930054633796131748518264709160204815100984879915991515358844844473789024099089478050191265426794814678048037114396394361919296648990304816371841043666713276746319423931817708254039415642887931254763816003481022010374970238422795744530772763889006486818065759579213897041373890791552236021159356125597992189225630297202289022890541484318831024626835207201888809402945974758567166673685807110764739390431626295022716209729590870368216644269740511227260519123787151600312118589295449394691609676764866569481368923940361323493304471171865717885870890229463399666108350001479344523367085403888823640999576166001946046215798642739368736968663597404801098398343378458150033040253955506089328552786653768439003502037662096913673882366770279872574475319988225774432007530253824437046448821008758132776210141375536847531646511963621668342911221032304773106849722232630245810516775143660407740131683434357474630641080427023960907357210896780475878241345069563492993488576774565896799055399357168021062049378791888221659414668380041044354370566134276503446980221555326357390320152115000812370151503154894928040660567506846463197703427135980632662984968992878793730948762817251627350486888426859850141684086343249139487236957745171735840797408762248680582105216295545027361849039791244424670048792712219411505988493371332892945892569629575406723236996055388123611478344981444131807712435926980671021123231189473059315253178349618009348025903707597129771797135152012013483329725360376090467048821749591814766117875830421507608138462962950039014236220306106910811045994866926993453687979066070346786742488815299647103312437953332344387948123607603123790616191180184105382332785458168437530484250105333437244280913139103422176576122270731572173726852180651515965849707679745325117851218439699250804004137792983792318949692551015621226958255675100090338261759456771751953649783988064018989094771266736473853637159634849977675293351609184261258469372393401977575029769700286425039629817238782677854879570025418327632471707731187819756064782556000091225780313396800997550558849305901416540282459640061562067558614675078591954781124861775356264060405719225061664484869534464501716059914873139634083460323397251477114289495971253969350566832510987140974000199193687651023949859044578365873763792285277200931517325645115141007609964076566349500509066273521425320851649810475383608094392024197576805925390561901821251738137256726828085087544961002745338026857950032485266915165058604032253570430290637959149714548303600859885487205492280433412232684084159534793423179679254362562103087743453203857143019720215801278579636428037102183604582886508962948981503005412063404622821477189654032284494976650437648966958723657597537340628472878258361457435165195796113703286662609614426674077251276605275598696166396660143546908872167988542009153770595264336795595472859283633830068899079183560601582003638797488955094352460270701444949895248811539508794019305305421316460769729896335866404519843692125322945135949197948939979513235558310385796920430950764001415415307736486286296859631103740946174860186836316811963319347699216380225988796453951203349874101544548510184425268436872163494865039854903633519567494831976868342520396349644580950110057333086404750982688204731068421047461058332821881206181302791989817932444177174798554938111948285627570885207718826553473190245843776793001493195747102877302758159612732500480778767853911532167778002229456200905825513196911148183783053627754894018484151682981535925920089322686138472036406436959410867665035434619200923417618724146766169558476104333881634178204765786770602118024062631647431741963143634380409247590750759988770291887202859157756983088506515240413278486989372703174637902963568455623143081636448817133291535031930359116962719993609677774941639593866402641864634417506684827248623069915268715319881380291698991721332004910544253931056494077242131644283311098919082582915733420916704491283004541350738130849908763231296672603868034605503704407087134607725556553117723883695911695883797741640502312030839847737385015133661823829256215731822031841423081905498978366363130235719015439478303231972974996425182046798100387922846863738717629136263696927673819334838731360333935107839694846331372232835535967841879103517292743919281671874496860244745261699161623278230369029064126490110232917918314149998936008406336518682555561153966366453195967544095120788867056642713295998657745458897445257125538989460654049048706047317560939439037840154475162531627791497422256781133626408429979165260356062056043725073122407111964529494446010942830410772156374161925338705473986988775705319226790976139021953233869920368649374677316849971975721717842244807369771706461818605342719303567273355228577121555868492630885562112155151727171512302236445812080801074324039290202301692433708773283598890721752507478520602743771736070783299228013348861578879250027246460859557758454192680080864961092706291893688016024594904672208913456715896817783382491184711866188704494736073688021533624412161358351849313815752664252040871222099399337329196731325502663869729249181452696981248273785300685207888579121349807119068269367464530287112333746893831818682963297728114579211036869721681891760794755195916472578328815675470878074844094523127398507880290006253299671220368453533541937430420562007317621909720237501477037526942467178595543576929337122616876722759212707064865626166810450026661326840566040850237809881849837683198186910141704768936699584680389702482467485591669406481021268351471016773871078465924997298149137898013247513878632015137126387349788940619963253492650145581242868567381524596111226112334975274326538875724203771186514639185990771189364469783000770051266159853795501063400945539613905230639884863017091571970725384518913600234356477129335020672674736662567080980104788079788026823082149566950212346083065570494540570040956274097879893739390169323670375859254500356612329929718075627763207662970464664408751163613630519304406110755980084984616142672184992041418029598829957333941026761498225133390047399983741375361813910484861349055328262438663191596587244687833804885087128584767190622208771509200662393540726863001087004389056382248426374650018938646258458886992142742889086199561857909333866630641074801704074250670876098548368688473825335638912167556298613011652019798176968203013318150073191439318788311929259189344274326519115573169049382998595934040266328399650201570776633140283995678847405427837954307313818903864316055980080341832715250745025655189323572439529497813013582127870698109617982487447058487129222217141134632219625783042051130832144165723693488620378879385857922646566061730646167179525938385242087534760727822071602441432706773429778989629360254325456529610105005226807633860745831035761423154015683419812611172326403297798264257546881997634463429224971662457743610890323417181344566977018513004456266341165385252784909459520872978297105878024550866919740492503107587231804117470902985099928309788775570302599946710775310248687621275995255930366882251156790123156227282667077666306824746815181203444918179335463798102332445083258886638378565192965354062006783014413960842323210917042345397076189042965932561733268880140497712729451233768161253689773678265049141994477700484574360196697640683388094756744741028366523077315954452256719163783405405864009417721133126951697779200495470622605344400041430909288986111807984188927851662592436793396625693671631542993566083424750618208042877652547155203570321220839669870380584284772072637484930065175759721165375315549355639393118560706260988129196308529107398294121999675793549849990275446726468874832826204440824094638867279968684523683033809825380730737996452305214842707342421022223066800213371424498299272411086072175869545133189317555801567042469049223631307043754579053540710323776139004848185303776163894645264747735552261121050983089075183578173272884081046376886316159666521231450846381534409337168328808385164746468313325561845512028525552640973648922123717030767308684416114190140669414316749578402727489573274120554096556831717192489437830852168502132620768787354971409991060205777787961966609139620163155524563529600792375395779249356664099364898773854349547071964174127251129996233931009922451784696955513872984788090062509218131407621240092865286788369022929206854991671898785345867560238218040495960831080974651658211745813775686157209850553290851782267785816860030857204854509516377479153979770813896642381885400740045282849423526191139465141728345658773556222072331517368426540288838840483348651473689086532385057771712210351561712806072274003532164767442565901033063031931012322321009298729583607705635130438478413297228017157656112866117695049099702455261043713310219195067969252632760724434129547056187730501842687265509617426605675122235813021531344776440314814787094075979665967735530324693042008447832156466234879491067626117585204379352750410766930535137838672713765714213572805023082108441823086408689730006951007026399162429711658693575454866364878051557224461757346062540745821244521342331139605119407868645346202451479083951365011257269638939591652837505958971711256455312104213311338985847158893914685431472021248191357317544180342300237413446158264311965911347659160579149476338155932853197074104093873117644818493454482223943749040301613381086201927528789333600142113566805779839055314280566344585195537830250171623915600068717671706428710935654715982389650649930561383071171281649006103479531716453656478180265650802860403816282543911354634451979898016474895445157792064686989078750983448403471909829422048573293748387939788807474926547995033948064832248584858855275831368280736521475383009794092136205727985405915835813027540722725632026556631336935181153802038327299352396423111090083015895799788824582358792861163588788659488148462345440872498204807391868629056031620989972000728846801705748323605816504432213831456637846814153273473659955220298938952589466158576214476099982555509719498215146809601031314219908218714225180902940284161085145159476736299605462710634220980218120020086737246233448874254687000156621409923453375122258481568001469854925076468214829568347330311771328828804842814589585379215534513144096742019884662412033742984235953961576471557401773875460424937941578918038401526841436160834453329187765814869703021362753393474655669647364037793474652434299355631965119727697452887438475331879523192484775194768887909610698500569313911298960899685873087248422380477658846487468367610569370124160648517277157222738623381031037123982590644598436018215726542773844124631233585738385582149528213169359770491007662673360370992932648474979883109435055995782330654680338928321764299268613615487979020349578621962432669453627383502027006098895740838484810758101907837696940616278878502122482521614717541995333487833712964808746614663050170574345169574968822924406547119506009405819006856943495297674159710627326540944061247836712036399251222531297244705366183976575045674797431087160107473977586623428355053898573315112023749812093603026861956514581882324550700223819566734185621334884143480316739035684539076776934324912041138656832652878618544276043067207865142255826868774401032473997107920586988104618609098300200005135716566873363683589278481002553135527505254216968388784883870495075585379576898740314592757422174444073517748521679496622663640432003734481949843143707681987245101922837750396848428175010159126247999982068188989152236310120644063297917128251958417207728682864579720352273570279226883188512731567896815243474396396474581750574873548935246560182323893504203173985112891150631614142488345469255788305210297892065516056247920129160126962347862806932197818672294597841049872325594729943731190398508045296159825750096191730004727128397617651956431072094633812153818875072198594060306918166860811090804345308688211796170582413175537149218340097265015815935904878621828058789932049672425320121160411444533790503347650053525116143248153822740179359863348170700476141133745608398643360465798465778253667306888673103985943358913863878721022687075410141186599491063368880184990585807083927921617301932290724331174800208343590747676778481489377601124393088050513954055589028207584696243364258142719363452521072112042139092121784946891714423497404380651592715663597683848067027829132531352508225924277439684804315896334879901231193095682345502844168571755710596271679007966521817819010919185562425902835297905619904384400887483941273969424109478937831720439198813199158366786872822356654551483747466796413852994320896334984091684188978845246413832750852774353083704967673840584576221645229848901211844303149836234756777772028888062159415878559210046672364632684196918526589102112605023646682617500644018845252614398478239465704424545674043864794866503873813312792705142198006028056262843542230670401418959576696735456522046100299780418907752498422649082004124030270030765096021622667058339170498828013003622297518879677905035449927340185192402630057996790202130059903038095133651725584808851914501672110839881259629553928020506554209654216165984609239690221082247272088130516616189605917231854271065404529287762254579741965562431174753033387340789035322130545923500934409511277990339468341301723059690214607619735087964676792259428211321497505051656021268059231255006199067739342728322851547353653700424371716559177594146203275648568147080404157233274490827295718960264159213758952996416404322104151402813606081265909843589216595550253631182511372534337243883950668995431613960771502572165657478356757205008030037653179317304630138878985197414215589055043532257141779547406266489062486964551838408647512895701706618039799050475420968490599078195191005295443764640408543185655234886816063201183480599985685537735539316526119054582699818748838578451666531126398383821700501617671386452277855474102833742880035646264830312735052830589956468217760702876577281989724731099020513476752884872369442096905207420156312569401310853202207868110952379769462494523115186091140077581121684435313269093294405210429725047458247097009265598882991218517043544674563677465839885471269256722234321474549967063794144389336524968693587296383351968128398352949555668027977922408202261823314748120817087040063903799129245457424861327322937729551261263937185819860509367941297632249337738027855338963363100759829537826694790898366376724311568039117159248316029350715341863290687416635958192331141309790192574223419527767176377216984092965847288926062224657663996560242855592003971078948215104836022535938961418481738280504247881785426035437480189735361402778603116177125593099828774930764175049729530156467016319446363658042906468706255179458873058381374760206956988430787176916254955717776076463387886093545092077096640527127867869727119163732252251019282720077475501695178320385165672821319397249965485833653203457217702501583662011608541690873164444668638551409098292602884944742585988503761540026038580883354425714286807882289357453846322900820060029209524012082633995034311097772205250845619273310481244713777089101661993633171750827409611125486956691483279999235912057738900105753027951645991871327089694996480379923777852948912444398123351404589576750742069006003325478552830067154727493880131213421571735089379517193424397247296579392358389530161351091666639659613418144186189751917334378323775295325338364015417705066104854103648384956738195306736713763975621498467333550335826927874724866532050700905969988638049344944816615577704378556501732835572280780868068234093635545529520235740263406783373661960838031905771125110178402671317487873328436213714510662660268415566329545936445964495200031609469875767339712747411663135166553276468049968088524618211408843039734779057954075864295764670283534345495037721531738075626161264982005931947248027072051210635006765653657854147701802362393920809633698577131097453588391332666307515040796760157337281377759833979748185241589737430310129556596294241155899110441877845085371309839562968262742967067136092414725827545640806080862949741371333707107016057397259728040364673256164691554688597853597241888390395465665728113337982313720894666921122121423918172564672664691989939780095524529294745262839940253403562809123490232683824470059552326624345648639649600668872257966608288624743579075398408880516920029862986233999638066469639502869696256006368409523935000926887642940052274956404289291726487666669867446078582674653581039050473277333834507902024768843311366537241587112599169269357923504634075932978448277538095175344846055030508357449438183950738267714283259720616774120159483998088343605211693543777743015327971356330049482028589786704490784047170383316633755223591763102142266253931525368601901430491253964018006874486676704049749005075100249084607645522912940087379638196196263196639526452885994789496917953918281750336946531508636834941474560733543203378945742971027115387406483893805062021010056262773447340384137236666212942477180158352389148824438450026570077791157874690149929001440433246275052901660583857434592014427216159733229412350459317543854733842825234512350619539946867620927745626879788899237583098815921088159396527792375209409758184338786714029939162172146431927138357199312780176038141434203443891674192040691013144847291775342743812539576590853617339027858256367377721930424814181695665508122664821875380490398854707726289946174838045465571164169708716068692910058054414587995528463468231293313107571163356005705476273056774433487787096595008970358262154855121965656476487667496800258250426421963783732936122139174748093834508669316198730059710980534722969523895119727724321190969548698630973718033308178950687634179099201229395047653075723266997509245529194353708323027606743203784881185350770011610868388086276821884149110672773005440819702969086043465057114186191545470752037538549878985615180233369125040556557472911274573199446399885766985830092706432503043816982156485888787438823122590122426091798886382807520437678819787964015916552403230235840134163893500968504267371274394253603505699658053521730845599653607366020294429203630478544066390160915576183798373772602220845118691755266904077230512007915744603729978883421317115148814801332869939656423721877841327974435336984550878451804031565415138998857071598880174772747125148236571038057997988342282157817230368705431171846800417766517446457713180605883302833477381581439202773682189752954597212503214520613122671515386902019742718014310566241871772034022505471596994595075554576029354543953704887813518685921444903523485582568457929746764262352424366417923441948485059851651161443964823038106170616273469259818213990900369955299655676714465946098294372000424201242531274185862171437661633213733483167161977672657308794945848049440128152293004847437372351951161097251718247893603791634733183000296496400464879110821262503021317544152203771133343883784663416516787715997153112187478354254100278463352991326425681720037099625966779463740197834708740737843699682895737732396305318107542836071713233691915306642558791629519091938277547123050531486346434732568485017281205273711866445533746179101491286508788204319409728186175891405984878601654215641642461087782832983291080722183851243469940394007544841481440459272440338594893828403112071133876515878203377599308961204917461131542713372290983948239480325448816030970874111719038484216599399137230001775542685526699530311576739216157215309996537448058358964160902557565656754070401558687013444052783184612811433984997828169941535965701102402028024078758829598764479281083682816923018684430048975520898730447517802023668535467728438418803653603971293884978959370021242676400410219445702455652850422871663312774031545219161465556967457242735644406692530980458599600247244320716581571858648925363887607279231554429756227509729356296316893650444306064212710519632163182688582940376933431511914219018424897714722659927802287606047779220272111717835464671882287499118696773024569418349724149573377182046556386991373392827384122454156454003082290760860473510059791062988493351370781122373879606893633571091705520861896198354155548287130159482853956644968642553052976059181134331712899995030886575429503638582795642726067675682415955057237503068749641277611597523298429263537331983382208247300021044521587653911558005400808928354091167468640078116882395375270517082810817960527640805740707973547061496424329383292559939137586627583441842135407010145393285091344033236559317773188391412200480790632661164779456190058397962808551099982084919445604977113060597672013166472494509076337957609260147163310532405870414889820060713283385378351876856684793594307608390475692607985887784305098530883391703933817983350990169350773790614900500029124515428296082526113810636633911175239892329649216185094841859846527104300605005489370980532508580556050091872876983819290571397845414756955495632704024723828606151173686540268139866221353443482543864821579814186693997305286736425651865560566700954965890268246910958536078121607465151459985709303293111355123326424067478321776433320453152577619932828160468271017813823585668740423500898052093121721448178468320620091590439455384166182283893311983281403910288207680987890618367144088253649254013636843365193195478666982099596127555964527889470062342046873582489408970166943136888692461050135214067654816759783550713360022252013500737389433194736405177777173223008041432891218735649853133884457583059150906754949283904851567865463630897564776177417109348655478059974135877893142853289776334246285571392892332843418438339222157517203868479433707621549931306053110901146855290305730791060659525593325944553572428286389954052392100035389504436123466991636716747800741463791610608995270088908479933799068915016187731943978470291030673320574563120741252531359810318775316919834072168814690716681108004742049142876876369220651539173786463047311391230602283815258439895893886461375024037769469299564510647386988128640778454911543427149198007823833492416532324230048210302430016108630785420801379407044677169155654957074300296915051782084187159163995482208873956622850512272528761686302940111236818540692116003344073624431904514673477118929920161301347538195335789717766845637693144444726609852785407981069237459135858915819688472400031173122043263217552488335104197569539553003627663097665772113329606950567165260097063179524709305272965186170940797035991282173230738542183570194497499812131655479254973110219544231898918950161663205790985086342148145444147551091412798975219553738839218986427931438992523607521708940344215838920372418963721837738533184726374673338281368329321243173167375052958808231290929699538747210942420071288383280653709096035062340884557322513036413784131049946093901664494995260293804773900474070211101295686936005052007256259867526672767481296040462037002091021914125416650598709808504444474155202072017789425189646184385480143701213732235533682822348468885741264876263113446370848331607928680074783598111418977289476149494555227572671585855795332239217072964123980214571395470060350428098069764047461983003288584005916706445438816557358131745748390651961696353723762600237892544472283824757792170171259323028705525472842077718652736888403882703162467032088921497065461859438654159254058326264796425134367465904298472049948525906479395376961204248374421281111194561885202625123345518676563885080825231436856516187317966256509664459488423731811184731136763277209589686622452803806886878894078515251630435716150625255787678733301697309573421390185693133728434715601847529546386706338212541738468925004112783750667515427124589689977741009175756804764557415622998526042198162590396104314010930534569683473446204300813510596622553836845529349915510880116946092693748239146655999105007704206831204833682536501539810977941058804876576237215202437160092478850197055942481719057166409328386846771576609358750364006295314530018776884669961252979877473137511370563892411032923012714132332072577371457106166278109556133711161797036593094993121140825799684001557914061080240692114664484573829664648561728823465461389649307462523856020874377932592136719772577160530404524146064276751462311812605596968987921164849338978118511164548401662690993645827120674244132550412262592535756627619195973394581579841622515514496154182936252088674315768551741704000996527030295076045513248502141949023452614409799253972899282565832304814271983283697699690678094182510393337730921468103660015667062049778932881088131986294129014044891005991463238236642749924494534990584563209485336427484350972271702538261249550606516935171731290783169756925109014067102711399273725590856848848312241961344738757787170098173142370875300889813625139396611186754684143857462036355381477723420894637572306310335707771930020912209875620752678929383162713503863461894337836136875646279779598889764315665485112724755872895517728076401456897122355414360427925546081542803510273781698305910869938446193686370067497321482949033069953677458780404735905239755616448164281609113398824531846673422322868125894623952874235647268624350245318018651825768386840911560896121929123456841108697542024739820854976142272854938944557547345143881644074531156025272951564477577191222845123478337243611510824908434645073169003599484056525415637671129713200865952175852415857247906270467142033587964798256389450083908440902946186105461843250170128054853522580983657109621666356402289815435682216573841279441303906409052535640944380237449166326026364695832673409257811852704962677941944893475967675807959921363052764886546793158753261076456874879041618901211302397826561740860226851885058984288783417883995685743951581739632004351370733712769662118097954704473487822701505725084293633746305140164115211353853351426077397266403945727175512513355293508548286215545951667314775002926411316053572743015003391910589703383202992377114089602092816140517861844929268484738538558951359891794446095611945432525459860618330958058314756095281276785001391974305357966903632802905713261831133211061016540394648466008123860657982980561333930013592349691267380920524923530732485972745970113987362246181722106865241503208334277862589000902501567755420728728944157442000594025803408813285211618908256512023291415609831348126105064239308391880698301709393857445788624535515693544412098131131775185561160949809198044195513467634262081017224332456611900445767366454714437656431194896283059477573000117162114683120950412925900554928450093065373205925245399596555595689056429793838790069255591065577759997628586257341848804303695999335507891515241448747236516826504514724016427088752922126247632985602416951015283717124781277867684962207404797550415622981400621683252187547174647833652904250394924781627513428838916053507095186085643795533030876892895349386418977627338198543653780682203218180076682233307102454502203962910984328528385496095530839017380938999919815052610729852745906008669908977470264871483975282304333968908597415090379967617525542146535436848531734847539366845774222770409736526307290355907490640748788186629216834868937065553887196701973926612323363491517539630848762147697022034068342526702117857334618395901280338332831134003493976247311271473843347056044413959437309603465656570549280366671863232708656918488018741233088689555614994730886447999307467896725722264830555149938073111239748105710286205185362559244828611607706773188125452197140547100978197062779219704469311454035810302782563896308588275389735329962058069337338186094947631531680469873965208899002983573439573813152230680694423756982072956034937853464159059185178149774148524851419307235064542926721844420201925392219279434336026881832699400883085111407864143353699026530918147206379176400060357881240005591992403453075229145518334984930298254713466179561551377594009811524080305954332113389478980499839310134689670095438393966244446327291280257098155026865284747254987668246019690204008490879837287683537751277444713530710612966455796630873306993302082364840187506536059231643237452455715237545218213205710409889183622925670550041915916793087861609116415050598390780654861547007780676129032345307109284707060996170831627101692279731861377196869817918286421214767456615540780832788126549268812152118406238010658902816554463794439748969999740997210033956548639681310515980174202663898681144257543041422997714111762832537425962730649478855845455576079404680940686986139752322854608522906975171361155244323089712546086363370117669922725084616720387223440638328628231628919292257533649198505650506669273687656029445525589592303930398542761334931481384549075461997494486418697016089883396106214255905553673096656675783390706552636219290224424626826094738364862780658965582879337574013276036182757008285346546608238660466593054389931391908319437990512246763170017237429719382185837068351305166865231773485387851951741820592877337926820789041425297333053376907823308538951147822333649791409551390238889713764257290635178044622330857196089895346027320031352167132549950306101257935271624249798873472366887876486199653565814054177216364349915840271162373340510409457343513439151834630179158846691738042657962566993593775649603341565579401337009499668307145977960582357547364677466577380376566792243451648340609201793990419129022253999006175825140536803359149258398251731925698320181797566471026029950620849126189441785254753741501491906095731436699687792448177508888259509612133952571089826247052324881321403724045882463507732576734551245514202579781683150960070057265186219061366224655179392297217108599245268305709819004927244713897751993677433635538140700003911013826815831675842599476879620846884691047703597045776009575771677743401715621629260164223460550264402637856882340011042094136679065555631377286970587934819351533850359487209645584140521411475088475099580054058270862049795051601224178710157162773215533776091233974296610712584185579595955525957629731757108540588036607196557240752889251026888775835045784852832846327918166659077211291094710803781108328652297355638887284848082188972959663440658997250611375505026966229713178887003094116517680506010699257912714265437194663629827961981753497838543413469704656076540720836937401950821100448689267403607806774063552820985912577812439257321604048746891102749462512984736155434661029114640168013779574661021076149945020017476278878963072578538026546620985107680512389856199563614458284359153930706166671753158456645374779099235936968963255591329799147047269515706800854315867038098184989601943876945540493082507987237054530542533575653438768362479315402348299263264554015808603209119426395119130223465081645279197680126498506888279457941640053831154535934151264262479540428307659967089720898364463350241992692079932417402663600849666891905285262107932928403864583431306414003369862225966320057750509385298180967543854558448471720119641195640794879448999817985245265873329210339848917935602494097530836131021449745072312984687439507308250263352409923616031602466291039298970314636902298698529341466599008623974561312690068042461365910726915059779796360957008086359724899275488538857331317875346373962080746546945366207932117188280419097695083104759016179948727785750126391254441426942571400872176031249254729697564293799996950231335367565579977464143909506701066204685020541989352455073738949317070253487195788378547071655485573044668190096829960347718509292307074771233529785784469386328912782193059004700416603693445507471182424956378935703235979582023117011110837732260135945082513322290856415828942476832468035439121975371960608395187856438406314695094613201654274809259260852901686447955075165782847410034815790306646951027659510678655383721574125246916123654684034872884483243043652546930179265181994707155880035953367687711198225277581723502077257533453468814040389289163276772652294067996670770353368583297396247849627204794781030891902309656524687716184921997700309219927447425807629280648849362391397921579011010610087644013497710939227948332678669939864824556630920889824535510055886886842174482496031291787721949043790211495614284196310195654517615522820125538593172998136288539800883454725673388723046164174145381584607872109388586854381487607323200656813822106183105577499827816698709555664501646801363315615713164692883336189592557998956756891954718849235348633467061417213466525211912387250247658615167491791039968931749770007958742627496420548658159600669205478859780665618946490215988303191626664555119807928820140744611231957664103642076720699197575792163098166312247084358689789859539068249247949488689610593134441366901305112034771813660414831325293685778849813811937361439999083582272235362828737798457655245435593045280178682753201835729602114503458035915140826100143522369762156109032891156631248717031103046461780233450537171585026291782366535781618781398370988379662662934930901231375123267127721784902443178168719196900699786850310577654262295181920448291423158386096428499171273030642293776365732644687179133422879865339672385527137145675815125991150467955247580153789241008090719280967470304893257974241319183043017214529901928905724312095941667158786052104292010748221837212143166017219802378659871490857180815964160658197897691797225911978578480115530092257759097971820532885287974195772585219921990154127982770762818412976920508147067117269643107157761548128088407031712567768474100306158791896147860654627534219434840748293659319471690582561701203402816920216136758983337077466625343939013659353842745627003792927070201379980807973875721334113645066766518835842334317050316830503644683504356657995920027527765825775037027666578124886963964731961130169234314551691994244775200858268947975319060926633228286742941915921335360208953730091384302268979064715793610976297687517995446400254351885796705129342645442487687042394422546715515603980853097347382540745449122649195351938764861859054039014138865161284066175254036520031860035743750209917398179163154813696793705254629424508336063347409296364242899299270016175888641079298880197852707161824100117411220610670518109323721724855999326479172902262719987664740930803392921133720531452032583776403578939670795826145417816711768226241497593887124983117091064860002472873646449038412394469180288694433199139885532015394465749787396662411779277004608507837728123751827401252982696135787665442654833307311047022866581631593171938519744888227607599626171703909935666517329616444578689578242941579506497656660438402477043800898518017341242897115561678420068018855389977875065793377246648445868683086675952918388166117916369404499804631798556792370909097168095278774658809610673991669525607320914040302584159360951425923990995484191858343074915689483630272293070052543543907904954265963244853996557980846112055973286466286242132788608355669411115044330860151748984291710014080265693633339092549987499991171108147198015979969480733981863133031924420262606908194902044382419305949395018687799062370889347072382979708016696417528782695599901502614854723484858295284641542736611862949706946338689703191989816091417424628968916794455619659804617616286887752063737116509665393604065342593912901519632841225614335902495165646916883703494218734548183460011612366487862413054416662308368519211747499816112691779020973276365465087605859126794186483812651591018615836612975717466198681199943981274968424873849318943631235799543307288828290113286848443143008493030651180327928404865849281262162005971875825150429984345479722145206303035267887097537412487121440340593634123152701099599694741295332359420504959380185739582903837277533122422977250652760994625382498540278830459550089335252939583541004975820148334932279348514565320925893310512812162237119840100278607669528845860150180428159923035876390231183992034669262330711447171194784158873748607489167566535878181749383250687181167828624353283778332923706403873217913243726651061608217298162833950674152766555219847663541107800533284687933133440566138401049232924347570983430749755327526288452204201879715718886558110253306919612300287081122346203149932399448161944934896551016612349275092049282726356857344944559317941817549156997762697550843953448374064282372450321183668943467288557227445967429468092048590419090303817797175027263658916644907222277766431724354156050107592821474941826486850999724203500108790666128436944678202654583063843529919003848998674811948514642075872811692552545775650278503234605412591277350835603742484875556675704870984310434595038022772220203504640582478793903975271170327227021154738853437600974959722535383207281895149893894057938125433986571989876800289789154324909871438394038259334168274670322767284343792296632058456882731536925134713286203766473543919608578625973807024146770963801277351585942161067801285915710848306259725490488275799810104372313726418918950704727799437610438238305098772853029682837427662157121733868230285696163320501518068770023719429015773669209633592948772728860745842876962843584854320958553177709057875806798383417317250953305212879587083460544805674004741698245734922926783711084957304773443828673183181187680149249293790333195754632879974674827259454451908187643228876513804060464360991191917453524277689324411692274726113241649646157956910177061405512509656777758355399534023147298116424462928030401649779299536240404139647727855590974316094886012623156187176545272797556830997195705594756916628746807879128342989525480400681062933889164365707182467582026788795339228716924706112777552266221600665257635794833424281392488692459127847089618217857875014275916604493499215956004948770488403044819109596301484541402769731594802813507059461265718709564745841607154763694925113709651530845217683453581208618580470175245150775373772956457393015306985772107738072908251747948148002046084149864023983504123217579899783715542499992857222609154971792323275161374455031259027307498731992419672030148417516747504991599212743015836428253759975864519745724632370702935199445254045424156106259888569749218606883957608072032435903823427495270991587881085937034704476250202434124594584182915293106958832787911022419726105458606127344519752458434685882122555743605238630866645788165085940847209346972574258975016699861541076307662300111835256654243672412084306411984215910327580619344804926515179508437581330884096597432079590439966920011744513866148896727296033789747507556063172852349521995953102450301938671970014615114741371699716555044820706121038401959962212237442201110546940373843531378374833191471842408271924592372398415455932924513829806909465988235417741372186905067553245905251816189785654384567087120017057283727719580609064800695690746421503881593096333606257456040700924092363213863731729578580616111907124174859697326048146223904203313910181019747582739994870713710052481712087136637398839224387916085125028275965117565557330750292118961085793393431274739553894515792597303157838889685249837559201809683178567946556661203453974645537801588732277355419689708497326228812187204352363029825380594859380215701630003291638333906241163943032267698199618735276643460041033484371609689438750007715783988203670504793310837928192685500359707351664456631383706964270390870584979079133197956541210651664095069976198005531885845189977136289845674868877368259534249535768241053211254854918674515780358265085337973201579183957017770041772681610380041190972530085529553454902943291268163324711225095252795420877035438317162124019366830953479691012230457314637918770161351842501867563405887910090778937587286757614712696582122321842196555555806321274474052752186328224031243968604153189150617570036836822080254256129367257007798442666912696274436292448538363264484047459788645143881741314967594716152304771049404080419179525726159176273966321594105419427317675975385538088796430003215312243251840227632003839107306967338398465090318735143907205078816512142284312586286595914423732877347841284724721027867062929954049989028366909630147572051770776573010878809806860162180923755781828721819888445239783060796521012589500728353874706040059066189424687709001321279682507872296478478662137728821718216707146774668330766213880463514462262396952624323864908626403795535825511470613424671366418501400201612290020868307083006430498908145436889532387053463405941009281342958380949891669037178512766582129938135865956619463168713155703455318785290298248125807941736241559147768602225697359515970913103576706988036730137514408754621152562694887588924303563885811749714537081270302397275397672582366804022352975041635151047143715725087820654127389924759859411902080334999219210613088863270773067762453994985702615432864368764775112244835785627127012607241188194471842309247473863597620913274975895560718961943052499074772746560433966427544484533081193089525717576221693138722774489777044875940328610361046440909458581325309561071515648914151415361600904659950753645693811613512378070326564239376469642143583091935365612468307176609705482626130462742408854496469723915326647993348470462013210009292742151609408413275556082010812490348319732361245792798447265817447949538001355890021917514602209061812064632967140701391523003600372804126456418322495955114050169556238996055551192956578551303617997903313648404948103404692211879835582607609236945923743562381535625678991691458613117980715543642307669247672499414071262162727359132865584215348477534318836793059432150872331990583205140094720749321949172714929692317952134063082229717729660413171688637690857493135772358092958800426251262077286693581588696296170269675550118462253754091945002682840967162958630231313306946924870798557070046276416913864480443523891709213796507976112370784141314254788717333894394751105666191536831675890284952069861298858176891785691057022989781916944772144957897109231488338001998144304783325082734726475756276545641753081978970825302306994167085317210212434744158313977751349455178950196223200617689030850573169580988808832563113044382570851032355337678207083546267104971919006161069181441407171013370561714270638285080987385533948096557617030347549677040509332702047839987209405256988372896635573970265113233470830869397692549558923845737482017540677829719611010469971497579444512846416597040609977769083575218846150509698080695155005967562773700974869475439914679943522346338339866156227802122872052066708055544851630124118642324517836351828555785868209822369088006298300425657766432034375368685881123600202272716219152303309661996466309271774976646852728502755501994842136477121241593659219468788541602302374960147754217833785454377582352453915800616541852906586277485088281638723805472769946244141917530259110467303284620871026337583710503832526195034083385139862543257954674984256637645947158513721633033742414715387014503549427900968949967854670014351283847209142743809008571923749658360212580487877881655824280555895807611547208573926523411764297173418536764026661138088041859354696864561755807718893898194502764637442975131016174753308999808287254480433110812971820747197804997493992297972853639716540610665512768701001238557184183532908269906345756345280438314043852734484070878893766480376143858747121960984996402457470501626468607377550000819160135020382150759399563933245685773118151725625006936825161347874572580710983535352616683219618786576251049719844545935992902751386998687011495675106201815096699145593445807977499009480847858217606161042078179383952189314432205791914333905791518027102533151847332205312121793439876523261578087323648186597603478778492800236223844609431513368703137781830238379353048426905198334807586752524117932727884572533229237622125717309987272551234102492737656701311871241117099198853324655011098339933928971011454582439740372688838654790545201091150648436596997373715008797945627882234600463035581984557152410424661968527876693120219838738036889636219061400791114220743737405105378914281089484727504686872491154749957267775697418286168793511591500990675872793423442127546035493131379006808436746300373985208175096823231265469593065155162821381541813736147018652978427958269390055216115136960000056151777629648934693818781349107485528016122913447996106407997516222250748702739028446305717752090352405076987582426711858285821030584778870100352033081710271072759606911141676543201757496630014326354884684835922155567339870683642410760185860715481357304048295537313178586024861087908016752580985701986368692498711952447921448053056340095360299878814441283945668737449259473087753104733286629640213747544163870085056451890259765374906473068600034647181233091006624591745861433403430791008638466710358978519204109389444732324814784543897395569686940408266741121646168011370969541929171425783906708606778256061409316766854739933854161415833853539294741040875949329007848106451054361889576771277667868215274090227454380118077026616308320700820259772275703465286749253124899409184402796833091173990302886056597008541182873873521388074834783790190569832260514953007600368843243803708402316551085675140341054254081977305238059734267697086887040252865722441572948626551152666646972598406462162692841178092546249106521251750558620407183165171764169885041400519651227714092934253013029316238120640654264775878319749951978015268747095598683031979538026881445616390828823254515992753547395913248457429681456483617549889342641330821044567218187199427925942187267839963196259364856502739862833089450826736337041362926703255224173257394508972227496962326553227690546270951856018033788642615580308788278916585218020699383339155554645237565680953927650888379253371242206001074312356615070448917494477815086699688827940006822347456638634638319488113131578939874718503822543402311312415487084563264080301397340519681943725578309949238990861852047312831383005924646828852970321594148748932951964155881889346888590812402821608078828831368158312902550410960612190160003982025381224194690106884260848465320702352667354804768622083391705329469837100674211921505153104424980038771221808801663884230588962686629777503735147028804779850109335538700431870413245849684868558875819460653740222752743281598595941818301463323359328240225168000001275540549336728384157993318918412268735138343393513565657488518338780248391287952069232164272997730909906341432342359218986832941189768751521568048022916922873245701238101691648727935660852529952546265588272543170458903552246593320947198411894274572152030859404509495906518278965639998795280505166999620640098722254551363123855405448937793037506537332402501781236025588179295843270961545811061496688748885286071671633881591923511757995703244955827103357883712157879170382528911030543641193148580603080837564157181404966222373920840763914992344689004137553582275702998354376756310913385079216784144728947044086951208119343447031646239353406053748991308472170858390470217617828881504704847220103867664801062315481948824017221011576795126796875105462904984738388693126314466485387301381642207434862661472978456914643251576365554545291359739837127307607074234009247138242008832247571611656694314018817126937282114782298786928625898398194461303996532556763156070113406522979392708409287612758323226085872649928246064861558771563852303757860636997193466994321218433881761771520292369530020749136079721891479533337838665368119405164692987629452452551276386775769991516937381645708978730901473873880163189615023269264120171960260317848207839607992524697785965743084342372801571759983743051565146337076574609248073355408262135774596119246822264024532477756457069430451888373116213180964148521517220114123464224884711260426252894505151568176215599549024171460023184148567892605155636530135915982533649871091874761862003348748154625160759275162338529807475903385639301198110357568840770277237091072988914418170992145044711302413744958670183899110630411026798318569662197083947830039733561904439236949996768260973700594599433263507725976938890440481121169284897181964918209225440979182717285650945210659471958364931602189909648346271985274111997588734198468483033072819088682464122194186816419374946355140299610496850557885806125687426813144073314997057716198500417804062099859929506221984672029640659091983578433681482934386048598935172075972782600801144276538919471235208353764181333787980846326459885187487896061502773706667764236418677238937711021464202870586234574015925707378424095969052651126922123855022929963330097487300655265984242725080092000751579739329080967925085883680676919386220973182413643389329217654568760540190180025002578564863228869273644721245355352045087325744908855905939470567805686677506840709551555429741533347677645047388524776981866977857820790423645930319271390761123657714303026399913713095357646373661735721293565972775760374113383637812415123084253811971623761502046610193432520844678732920037707322958371262215309520015484410340289341376392710576920645907716973591989163276068305412591630206329647212111311240287791035813905501580199616045468368502879108870853214684419274932241074129305195317071532784103468772397919420362567085863258949255724523385153525383308825361329914855132840235050162539403248294334977239932971920449535236093670571841886872702500437849229132157208058667954558588711672247050622133905287956883732773210301952876527670572117496440265183110918452562593414494752990982905899939530368921745645314872866119049901815239668325317878895939736222331639939235123089880974472458446478793894488636069683246233749705595818403866146003722063596074281782080672085179894273991280869973235212782621667057606326383908940064714801845544774939057513638995890978156492960175330599660134003911924140684662306749759731097662213887901255550808470814779736122769505586056778188447864050108949253367324441112102458480414918333776743467971570468753480235313359822032860033030353806988668840440565812013002975092302808810610273242496556643717335500359335347251335751939376417801932700776963551790245184709201628657985102060978331904405475842473077474211558199339327808032319886536724155864666681551714947242327910915202885010016040195495625140916680164223873409740366556417847053294793551914760478151818542674454343947232612179764698921473954658246263361461061781397580949140858993859473712278957402190013589612508524704305292495641001062409008322010418974595983807232795724296252092431220269056267415103085518701910862904279504930804993191537606407798702952075460885247664871403398031878787168299493785662656301238064426211830436789769991102368298508119622494690034532425360982462313722752077703317504180923304465617168043944671471514196604801062060886799010482160763686165806071975735990482056776595372431432854805547575729744380415790721815579824323461047723450150473907213828183524400011134482892798653454434355220328921372228839886283808615078714093683300194101040046724006307020310575793107794163133630639158405066793812210644782445618594934988163181875929694071200208045003850181774513292522288543981868099815772031188656658338413801283425062821367819510524008819667361349342145249491725372635568572971382673148143053763711393169609286960401017605197903674725448694262144964333320997890385687447796606091253489513495871045550433086218690791034979921591194803525748560967454347671663390992068470561381326326705659202121786911758862330220830624874985535230993082003722772675496516498875745240207965443081724403920321638358878357386714374418651466680914747506700477721804932621897299875766604604846981366174215409845746644274396420337954351470000023952563031711292668793448651301597689679730901369324557013139873282265443235613055912351173660670408866282612481392716802173698740860370799517872022594451438392269321317547153123488450112598771516273742859599123987472805812930495321456526204988550717399947227899172333190769006817897893492182768156710400163593858783448942635235369780510663333205354981620000942659527460792331011005687100840551635694387083818926692157003653076568697641689143189832546370405878323490035927752623107049194952199416630585721042083999769219040227540508272128866807112312531192140690507673039429213790667904499319581774356318589343621633243718207259278670557486964117686528451486965932773200392711159842458620206804274255683946352341616434976687590169134676544357033225450134860504986677586859782944782935060427933155654483554060820193418802564712620924529155795743579280350018265331602794768050370960666790584187760523410684437340593348743689632218848953893461700981284033659908689839537028739135803365965372437467230594503455247769018500155661365945078818447561372121243784069272783826455645242510016605861625444631720641146546622551865615590360768063404459319398921731559385573402947744146996481836132630599696099188937846111698409647579533637698657595464203949835130127071905208064745693714390696029670607407502099802414234540184814402447890557788616378905857299914110269391773562615439955642826668757324682262681761457522983938986012138450036077357033270919146803029176752050560512659709809374456599122267077408931053440288412177119844794545222452966527480396175746480913017038504761032763791193843195758149569740881919335379887002974082818595690784647924406276284789049012532105292591039885211099018429101738407592754197040834972692381289019378810743806643171068067017985809129823102126053056739465964694497525596768915292718217613693141341153496475293657598420886172402733290015563010476501719736544442569723694537260021396509595937610872704003960014106396775884159724936196756766386557431968509575090869126932879256266354111029944500699472861822122162935682397609554906337094692927834953243999477637907018006625513039242962861154338952828132120802076583795239459813813439160756880934791016362789060211370105717415725743579211066470306260459310511219309676948029366265340143344144580082949963048500437446321670967208974583120982377092695332510062788848525437140307423590732181371332904030465179877726513755488720425669013864193000475263036741889300274325936150956157117484475310149997457150679748128488766353336666514691051843817529381129332133453323764892346255728267013614205356214746864767872518870933254013869156165960014098789998952552760170439185659551526630820640211825644618857265985927604478259746150913512904098873540836035451543626049117327034695545347956012971592908209433983724665155203366053100268084156285400324617632455639946131092797581366237035031782589860018804443340539308015640945922730514671261960451316445100887997563032580556780579960461809826701029041058115397717154819962986818260762673796093590286531562317358947538051019440596565493191130714982255150146683968711801766717816055251791556940746379466009618313093820205555621245098052048260613820436943552754429955441168439420089133862424788608857259603941927432999591469239503919758055474308452826047549043879785536695504509406381739041708240642991445292728469819475778722983184784226337344048845666006004394341508397563828168658407912242483833023017482106455099982129679110171704686318126762698794220947940465332942475785341170818725289241648642549122914538611972668917068625901777718163126249181359424009311117222622085710444356286051103215378922960150815788039414641007329410011944281222356125772362349476874993477424311270616389382722195214336434766986652697506910417107900309670980532504723698016557550483472729782927647315041337690705866627544078516574443927949191123794043412746016017044451903096106479528624540386659926521374432764407234224157549141588478147517398756939845047491927724284064997889240651748379648463119851883139408638395833678170111874696521153291946621188775475350686682519504668566274652238080075740835074801524034554202145270706605016865617873181931174437043676122761775053530363089998155427572874458940079532608104274799655220808943348743489136018198103439191489091927622671592949363314518812226901118874043796299547894745847310972137675150158129270672560838078566565987985249692417661771396824920413710386294279976810290415791095961393172443341970806555540122123170305451516209305511525244159249838606762033707909623217250135678777490507054604757796529207427619493727799617538988153493880877674814378361901735641821541467194703880676652415343149763415549494036449057328826348259070360380052139553697030520230525184424113628779762245483058855228858148498132134340102266206874409429834040559880696688066505876955723683647999651810191599857788406521822899884781892528783146337616031655571807155571451327572358025554967819266554303625736077035632225437962625038304275699292073839831343783653958459990215339220986977964925522771723668646055176766866455653490851955763306367282543155090644547756197423461707382226425319897231994176125790710289450624830813524788419906859597489669934099285972605650116434385766557279094172865523702508008099696805339076009417329191608745736618598079103565546799009194845944106203181679464722779414328833900168022246262525353448603368247706142238327750269806920011330339404188302597272713569208180590177921838373769773446258053248759150808224931281935541959800676752118837734935676864610056089874740086991372865600709048201215972912544328153302328633288175682448825938471382980050086699308881370230023593215258142055937826807025943083644880277780970866510863516194005279131952536775332262160086845287518606682041533235527166066711424400121207305057525186350976201208962887649305717733836295279957197486605019673834207028986596251435704069626208274169211029597980413452524366646819909047363871671600937570392613494188505333664437926688681257771820386886005886342071475140521573042442069549234081196381790215974936155649017498424780297932223011090850058491259035191393790694714883728757744766752379864825112247596217011205598719128663249187186257385152994365182905105801860613385829947626097597745917599799615752385061011346592740764961641423082115074482371188306284905805310570547124588802683673844496463974945060875298228247796166963858450810064506597886952999832346371369567853332756788978092718441663642099807855031586067961343585852726535141920009826604853658748134846940087340398080583796060231687306376088203825505784619481237333307875045439633457366317613148020116204721326461865587413460572945074277868738469786904733829484895879504859927252293817133329061412186467576303481547435641510051318561319676230131357524059939612179913623997633627939659179845786378661232295367310527847529855187657406135753846628271723787380119066370160771900543585510087198455428464301535835064602168804799712001094588756084659708304125951572033130312242431665920860069972301827851513922866648253873661433170293104305043667965227102989074468777469507334416385901099750276615679027189329152395676522071097630976899329537979922245787724519393006577602850515683802849929920690044044518218861177867439106728863592198840621380514655047954236196842481365551776984921646681180835299193389309204669400469283080675068374066791411973847378982060353722431488685079100469255886191057923566996401575296810593041220612783800597575274873698054519788238486758557810155966762909924741541443132044911540457540707786434863732435661441794787833250590233100499340431716598632004016013182072347863645559455593217743932594146490313018840794887171920041219930092905497357330854177892663439984430863845815823986766187269852516030302002149067375288059023475675611243470751665054954991435353449219723070527438166011478874913815433290295471112767741348259409462445629326572934039915185357569023501666120047644309633897720785894689820888520060650469327418868443371414879946678688345955136657822196158596195956967518627035283077837719915570728409397141129017134024060880275918765466199082425908408580694845308737165624255853487285249694033530570678909614601506126689176787564144643698141899163587824536664016811138343659597494654835056361965906456614752575374015040492806752563816581494571128361519738229754084002523880725337849356189723703383418928203638650634931421899708702559852310513613139062104853452077700220186100870831859502452788345159334662461083605647017843248730557347032832743707646326029707349648806675340089676691095491633704328538712611678076072926395469263479522295602775767751100843232738634082539321374321822733540812581176208163558104219790870398447270480425542557715691491544803870458767210989956950648426967567532131229859090227777039402013355363128171643940980228274624186456897645124505226882130989338870971882070283057766806966501235965373011617240668594718058328158047311461829598477132375378831894978276484693770859944163304953228024088266694701052538552762770646989964537882201812227809109265000638567287972917955609303185966494906782104382739280294448123631588754697823346389990999045970469104887855201458157231552101226569736019053319217380141215658579798286535568015885491306600501975042114335546517623617980169777582845470326165494278528426012832123612386687501403643429019035527863510477504819778540915680680175263194961356988426115953837172771578604216700634092363694825223039832040952444676900562026097577027998442582674328277883215355102731870874363826813622068317497171585474318215473731743390743433609615437534086282870105928619757482845251678781361682706560577684601394614665763000181272293745261079542307932239900248375150864324125173454747719370787173757400814137585687951337218294142102098643077348427414676372829327382621349935971896343149672316575982301077735642243356203409247759789625779349233574064905733061482348635167802202877521450187410570523561781374802330570780180759848017726102289079181999353794663830990550304334578673554335727116506929219430229456635283720723541864345011559319490098492189091452549150492110285549372446527200099328422720352678428770334445594631358817143558045892237802314873351421821706550386746452234939358150566031896551814665090123560709071406461144335364911023697964926292460858334198691463754913348629678494245858397253990915949051640313320848992804960752174032457063287440321820994700213817359596303523575315645954867804747963052710888899121773142203541171705236023368209827243768587572879084465614067930384641995667570821492803862079719518957994257226783817105560257701132174436554793349266060808590273985229951769865461049077691235250431332223723273964972942279368538824849825056485410094777423814767275015332142490839808293950024421552891761542467737347409062109346094718151917125647100397470634245299590985439942053886512010950012595212633514627580330589272306723949887255477759872680792880959798407329835609782568857475543504971778658261658649633947240259020775657981805163217827312275973150063096892421827716345439800043718168925005337574141103629791777004904159213784742572408593181205053761875843153678621969130906195871982630307728768090650099469013044155527239702330326633655917093275955492752770262657310742024292020106306840784036434291708841830177396375563447249349747548981148191310718280383785585844885407080808799978934502177379443852877418208958378776301451485295491323760366492611592740283365783125975931584539395474217952169647657356188262603317831014236135372703494031923849668351512006905273747382886368257278167184001222098913157329730012987434217978563005118815263541611493328667556594565224250855409244923322758570247829113413296703334337965164196109992479388688369699489661610585757597095322668870497949496690751257536971801741325321529373334309135667418064560051174552461343289644466187943708402792683342518012936770268550180829318967433462817977737144991549450283539251587608139636462183579683068282183722695289562799345744369231274492174067740753599727571312167274994804659536732423023435894253106909867441766102118875474378896466647810153245982867376592499394154152734125709706267887689603818416526538615336937646278977576498216056585374667813383877455588187787811279257653230691139589931790323078543446292158310952732913372707566074905950397766573016451292879992853824400242174947672003106398000167584241381438677528739674811923450873938429872866917393359353878962412257876642307294236812656453571815069213860945916183861941391196916714967031009947481494732510175021415902535583833924563145415009232099704380000030711277046310981870008882316465794443527913826005964755253324943391034924125436518478409214837339279218617763719852476372835202791951958296711054254864647257771604935854897257558099171212393776127724583012107110076986691114307538869686527897206262545317340460095460291052053458844371911204014703127574246620732640179479009421100741732445928681355274890124891634968099578253101576176500953742825860385757087664955372281479987632266310170861336628079485697404205810007963351962604744295097670500517271420055651313748461134515719542893519666459250167977237170284831910870420316349669504744985329908743334858360482826958904348339862147743861118773460969031544903054694078981880940413671610351304486791940338938287389573782349381328116835426419693647479871169836228074166414566170093983560344847333509422050626151568920772805064931256439140030235984411071725553571514441533225517114215604058259346484917588711321501180222736805465188615540978331486429700614554916450807616177933656020698035773792155065493840848840934084557174540315261688324708171570018996891878687860379130594880714381438341682190972208888359290035375542559820127004888892186713396272029175859297905607221837242439480301881224448601144907512377924611437873697867173481532943030329203119521660315237345405721862097904872845244388177178819144316104019847300877450127084262334192913439853961484129984978603800397127902944839129947974349404010092492941621926700117379565000395918208318428212511626975120325535908680426638288814988144760119652740989575197896367517225959769074901967585982518129286886621089564046106420294019583616386777991933638834626361309398275486325764323503705675542220518421590130942403666217130545002136919130563211895688056352226071710802245643754812210143631553272424468056860667213148538416843184924009425485179131386112051645961202167269280468506603925826442467315532761369374322369131958569978444399075986867413788614230548746532318475777760054382581767447002433814217226198701622901326034712702991009497315079254959318685935039544718960025777861015391987860362249748110188150266088517097432317855595388874113743067470984245747579767929406022441475568326982208373643587773826365298769973697721158778498904891911049640749735655197982191281970737805223508942823852194617797175150663612282330507618799519215262175392257436057935598127081849319103385147663704546447668224076736211428598879510730191167770383498428557799347475108873339651311168849226007978740529093176616863502545544299675684510731832046349451624163840625176253308774093419845161156074318942922255931884366106253429658983875350252896444338780730882551439631121583597925507657635295966470802596707965123611674813819360562283080058236349197002400793117339032967666671418474380340476444491512542294219800188259716520643705736072295165561274121552337336235245497707375457410399958036148822405051238033888925123579959826952496319075468952013779409854749497301384546150119406484152609672128941236845729889341154801288268308193696441776308244540032874705939425545516957580066762688253313181356069133903690160183954104548261998253518404191016488738092306687900403372714680197863279292254205008461161675123757843547744664075670126624141521557888936349144206570277965628088489359080857304020466038853084086357708424888187187960501906421142309042277236870664192274618948273190874059721997557324890756103147195864253049354412589512012320941111194677723412604915176725360551042497364336323071638393997352423605757651544031605309121333831736535104947702516793121546416298385450524919367257695211827754861386711597840260428611151321932559001641108476229214873103862818313356326776524009244546623998268932719443927874235797487391976919189835445775174935680594485151109678873603969894064906142698341983451390731064257596228221245673924481670266072221408279495632099646394500262228289997607434043195785379316918244788225167712359179235410452417613307031508521067770863884065477765342100993298666769397416944710070292405454659128296335217088521027783735907073562405961823176783710342514001156116461628410472415507577944792083492146625198994805438399289548970406471410877780074320641788617287688918491464678489426059031807611649801179215774011759964334993045146960683716932213812400814256681940017359550719982133567149663571412764285209890659730433305294035497035301537884212843014347664457904330341860848468995234516598708111863380545776270920230033336717200028068380734781214313015130460004172675998924051837298493519120847408031355443882777101110904663163247660130269622489589713952913706358179929768338251986256335672314839101382470412197304783965042142887594127941507980411466328309320057743326196969967537611558524979951761167958584802928367052556280448944670924267508537842903637632411013291129243550759977466051631524775156327948825204429770910799823241020949402618181184776990163626986463479948016915826718401431608305701520507583777873145241946771824025003511745044255452206863790662526747171963438822302369836433923300846155601550693981396426242998449308320602045823131403364533775756272036552927771322829710607579805486688332795508858246740980605201970251969183662128004923745385642876262996920172753641825077923127299057175979549390705958475939056140567240552443866501964106287980304964734577436196454325706337059056241221040055223563927767980314404529326763746340925287681114960524707120322919246713978667797390034061041279267715060413504353375502446277207877187898744136388123821126967127161654031621597293994370120841710685697840882470018006406991219800445720507467892155734945382597636056357342971707936203996471495557360012517565152245862768085630727624256469842432133111004997911376055745001344494845191331639867200558507419846347263262041741139237375145613335174033806705414488679407812848708882375900585279043894250103873516740079893545262561740212567639381923475264866302781077723958510847911226008579400559420830815642946647737360748466563847554935419291878781876515300355191825833561991014239296965494254539847690822157335077805112055398974872153972794613641144886817352622206496056723564606256594820250725067887677655254447538802781708009100826172711467035148657300886657214660483314432280129249400046013781034910360043514821254852688428058136186690451606667731229303344234406648367853596832432994907681488762932109903002280525379938083287864843337726421237715158384647316758221738497113131068252011013957168710859183170462813282814037301472628105640562083428477076483809173256020590910564754732421613508508854383584030638364753937880325584075825167546890343756792839277100786740701432731892415207476432416452218670361629364154643538617805880698277774620533347663362084346422674927349427191873680275878264914570552619356674056743561154073909691406791654868752250550759033803534333590750184772147697721201654443768158286902096314695941932146512717618230427350981773626076746774180988048659343040540521336026691166262721172443425748674606481193908313907537322090495345098134565613511858399251679724830753753671952629192476735648561669369073369983132051198900749334423985438757250655793652572611057237761754547970346930313858531128229802400291397974174775687097395480992907999233050058451473283540781665379597334301021080818150164648582284416459345906743911339667048004298278990107061224186864808293149037515528083921510847270987104709429961307086551539061619651140379452315285380240633428719385624979824508593895205234750364896882561987235374442439755652464207911460154552282417774412685799081500588124892775968769208385387314624730507233257075324365424051035124537436668880678942467409212743443738548031370318603985928202358259926813265600381384822295202313274874688343449624464497180640503645331453751587526744042796075761687682834787076417792061067742457820526916467606764482688955702480332743020577214654561235501200163163409287669214024172413696244232489329469019657645901484558990158392869001632010761031155740216936567496277076979164291487084818187062514672203498296979877519765312734748149094769736428873856978448803291709430861720081710816462450492518716590206126020190248683344679563313103508954954633389179010365012573258751439077954405769312317987564812106470877435946289735279392749364746048515008295120908169333406923263144010346318531479677429663866111099850556834197612817385463945152954023429523256081509331333927127420042773369278663809778892871309830581023309460584994480281835046241355142373663357259799159245759637747433656601931420287296966349869339879468111700713460349618793677852534458186948416594364564467113742231034953155327122874747302893825862303904747308687503139575469286531501541940632199540995587377517771399620934800585103354303169865080173595948871860502992037054693466384931316108164351141278716935213914303178822132489252323685799468256512797459694332612698007508958982405138395015522790692821871520957402401753973484600688989099794747513311121669100799965779549721426159668903097554485101753893570589819107006173017935644009497370788570248222453303178195377536815375866563813924632638239106636773281504613366177620590038852044083131397028700953834404519489131855266793322998264049327342017994770850992582884607290677895047348638190414306774657756386640614994098010478577138319505261241005394489402759736083880432656484077664093479301478725456837987459622060774268518107978614779049627502656995463426673107405160295326879220510608544713637233964747960658344045279526525533416821073492397937575942957161232120140858104897641061572635707134048307024135779572932122166308685512686280140076927368154229821666810722686693887315964164391904164264296568064177848178915036151441312857973052536182312219802866263760005483558712632549246315302241145714366928482320645537412659777714457012419982542507313553557284826910641042579077790685892123300703964527952456669014193182735026722973285411869340504162812567816097578059054588630219573392348126414888236632277833155985615016217682818817908696073743004181192714284887634453086786320853866076288565495209575163236316537097867577718332130602356181562278389288252875266606316818479592408957808348596247090625514485532757751027958609962566785842693828174757732043321531329742773144437196078771347452023873830480518388480290730407711343612427169494322288438853532593660972523834021297326575400757140388486217052047291791239939169199646696988912865780421325575835836323660765450091236512889982304483729282907313504536884563345710497505173849254894348427194630917456812610388117506663810501466470017562044000672300490754901488857033530080089745827470118715222701495808254561836909400881695384155903347333049483586337955600168885231369501998385761582383533375800824370864993189788048288616754037502894176715965955876191173205363648174074665167619077129731961213804356238045010697339776115774306669071468135368539678842100688001731513046864137594825377808290623952091158902747589359686363676383906418388152582869748445727217426217475908573918985032958384935016981818960517080305310874432340379404102993191249924403007347567019015467468313820382542594587817629894394330628095972999484318086706644722749990112798661926409283401685666422599390076534920603663374862542849398404543687368715855889068472565716126048157770747222302254858012427468022608685026261017837376429052411413340403938641539348079652878235639333246090973004696525872828439428723647595411619960154218487882310242449168132901530159734406182714540863957033146408391230188307927990287590753460860305077503141033444325110728278780622454555812450542375275145895461267364354393296519189138405588746766434888986630502094546957267986005041396628939369398308169444784003730219599274342246362471518583681119457248153358242532184446461000893040611759273662519167518377386029380409431692622120177952807083263927752677056939570584963626853454674807806467618830198933061363709042725049612229669014778361313622123342002584733589756500955897352081761956501138529921284699191944706361183064582706867893519653578181578475415252409036295188128448395244138248144308365002294442933009299466258967875811160000695383641897389467470715269772022453962348681050834454318945650943173240919968865966023937371133527533493973770064785104645131908610779236219199848544059166459389292037611017734894322247263240954933225832580926849788455460123449721936642773633727188834750134321416068790673965687734939929632256224214666340682359619299177595251348140694229858617149119686769613216977106495915424016849768707496107001343415216365646376041903106230667570163993681170320647948910070360554172317542002628735258362622685533075467950239457740169750917519134228603278826300882504979203512230243382344354443537306217760994415360349632629583916744322398147714554323604038407652003126478490664626533114136893468370085931428552277250846376865386355877701960105185248040190028732360722120065915780115174750871410177574796057959371485395448847609299481617648729419161994105863269607618285563353962938277317622011952613989851550365213847416874237716173285352761498251165565249071019004861948090833340642671849275723108662940784950423692254027546719643124237074528287010851972020292338081236387996087995464005938346851992038197362125987387901058256804665231868683837244595095703070226149786966834096665634088160988020968514713721200585261072696399038044438078511951127814427279439030891767337678631533150881916481275674127545567666018533537808745261741409425924494694132863174934359638314775149232475202549206153348399075028121060061458934487861262488400228311954585996978393312298400552383618598811608339075730188876888308827913113965686144991167576669623051129638202896761357753710758204556382605662378329007469625098854524083963789056904382505417308038514815970369652684617187487039862322554039108073122463386597322811829976801464905228256397092456797640080449609365938022340421828595803140967798581507578293392745536849508913571198142517319645734065993407849458105440782371150874549338661555010341084187824244276225421877035634592498629576744572434168422680636056468875039808688765561604563025779524407633135783640514462013951435413442146977530823113276092980264356588896575349010511482888976566589956008348138654309614254688448144911206549394804023357149338616053370056173290445347786390677883752338901874639134067922176944554600161356074277882826726489551218148939500749744285610537762914696434967334929772090705558369636183348316414261357437713959650869288634646256650854330628925986879115482512993122137926895498105295379402186740995818965626761343099587514227586734649578277093503529735300262151024291272097814868390247779870911306914559211927920980589730516291036639529694771304661436613233807536305844861575562785883437230720269239481254572871778678257117514447157150733128208820211884067216548756534651196245352569451185066952511328002434957165650743186177420401899067148952919599523710575264135966297406795855095500362610727691497879138297006203083074937663010967022358110790212589582230202526380373719570833862763754171319974038881769499900448105512509559662196388118603184721947294390429862915924717293540034461618735923072884777825875005438791102506307494883346452195334470789378059294314643997326509410945305591817983669772731011729887624553037530214862703823217122323396344563062714226725207489266487634857751604757517673410908587814414174239346078523900899156035175009394914918236949963532251548673600495750129406502300127324984141629813961694189503003168283125700886191843358449142958250085592988001973064559986832819393591323140017614118571960152223652972927348253690113711589798666350193086036892636613986791355135054062344411029092764875168493498066443259071323060532395290405435964513467490600460572426930385701028896610196962002977620063066990683506452242553680162785329741401991256461982482736247306015505653479962205343855056276135675565959236399751375779387525787482982283413990282340294892678317024126176674330775262322170970041208515678304033340988094726123742051051462671001366824907469366518904026854848013777352896364854676185853196732808385545111538025550740479145387022649898865627987528296570959511267205152335975888862347801850641934589719797095368353506091834178173517207885200285114163315441011736619782302988691807135258187067683574562888687353315785699246813400622038715348252486398437968566190416193051762043065566357640209167371759975421781600571640736634001109575971963695966378938572698380120261178896246518137034827290950101327589036653789878187016081268047621484161149597693758104037165871678394732603621119938046296778704795923170850308318483673943745515390294363994788202830588317437724252162094651358501332854501132686570159593536827484094882625577346677906172615949929311030118908075305111512399577237687636598731656507003018426791325479227870494805939619578760638054082708012068895956064539473873214384470404625681647823865319650732308027201338490911639748614177889734308901539824270004735403521162186020634967856227125101987254098251059438984039845353278389401380790998024325517988889125137941794606232895699212384506478401750364197248629670876967310664124446240554910185383744081310507638069207860279051832276899467629123459557356484114196270316558366731526931582411233900636863247256170979542706921576750293725103287153865476792485111213839782652308245937778713344746734272265899723448739290390113413241436137304285428699075573218525858989767167097764827911515675178884919208626036153370039542561484592303722800049664743784205826402476650899270435547465057662898040589058980774791777874853008579850264011587980182178873559553153720707884869557083738401635629527675399456391295984363783663922335644245371431540355784942034840788746647307541803517419251588515156130311414344209793386002298665686757865422692380112308889062484080831534986644805919737388934120937938467146936045706554460799866385931638931989360164520218795857622021838972699738962850591730606237085323325441191044934156712127809742458640835521876338421888130562877347100240110088046734200997046349751840457458050642699467051095636896055968143190751318227055503454098439501648284568101084909113477986423198776125334854943574463691883056036828890884545004499933334823875282192715242623726824391079688161575585454733547440854807398786979802243250266599508570541623173135259357663328175469417842837286976474861731441910248030736156361562460690335559926639184164015469988932987137994735052043842197442619424965572723880949986907414290643073369620707026044863371773014125856391986576609626224270515238066419117726913327297657264694689820419650521762128002150136855921587071185234327193080942238863435483233024258740880707797685761556837051701552568438327007442579971940481747665030023070255038238068289838446268278751399879067610472771173248009266041634994110096898659554579923105224318414812276311679631112400079691020394595603770144451436354247864779723866236002807388811417879347224889958415690009637352396407583654460964716239515578189044097874326936624027933939190173573970626583584303430815227520419564894992877263257807203150974790202428219289104588686395561958751932584741854092453940236971298007051023645927631111369688749244864859930138676441448404943597693948992113814374052789985966047724738245942062225213321157730042505771198845660267533201546639930475692585409736489492843045762435424455903756651939994292285400859589693878625643848217063887454751439401656137174202253732638309682667151965700036012988979422086693504114090552459509276803277266817331457226807784792089908806451979996103792748550024883951698373685483282940938457514197685890753269880430129443132366040387911565793098180001811170745307266880144718576766672582105153886524562779141382699230894678738418223591711281007237878211147043368694448923057389228241080356076198401932135538549103613121250021735787574644503013274367443076916845766502855191745316258085084053654766545307862913160673446698391851952393850108339407538631995994674453687990442159042446259179556548071513961722662119273011199958490577289872896999341026212394809942529885165979205491803427251344696577495486658062292284225325267308986001775790967681896264776349954071364665834896135730394412263371776788300558155470591690481733009388082183659667496001236813652087054971731271398506039491446807371542161934446163805925930928565121363575049375928300238741113371227242809147641750779529610297094999535676024247686093755071918283770961209270421511995225315446807371918802315438807994788682806278234218445559134647757467263980016319852574284300856768719658034270179895754280874746045806185113245406538136963238574978548807261335275716432795617989240017842240353268515518082026547831703660604531702137454499342469232556768630909274716500820911025718755664305134910308079862847736584147925011967641924184594598928784766693466291662413927526108894588548012268715423001337560545447655531866413744932412150322468624405971707177266331257572199025449058887292631420315216144210868290233230175726507917183367542731696398307227830924007580158921986861587693437566220096823744382160650813675022688660142273884132155050126421949227001375018071719882379371396861679121558433060059999380930647203844193235909431693225038228177072646295553369015441990268479802818023586796965791188489003749110502617283808008051435198638721738032544647180676390638521962605840106355186519045068452371700136995800336557303075274218972289354511718657503402023457371890623760103808754995011324082600282623473323501196464453297421313089164157726545592852792505530679934406080580499677496567374964924119692072344939229435989260035238225573090213584640949620444410529006010586232643753306051709546181337670167106182545271610230728144346323870551391630558890190358174668937187403249890511724318649477049236461833184153664443675043115851657758284840579329135525118218283449468846588647982412796935782192832429047501513361711910433329033762760322250858375307276487907351492769871216277123578457100280489404851702608774747247087999003581767112702906233743803542285475202451874211919344815630171163741543255447925867671719531979855882235362791480697026448839863905857267252217212482624996395906592086666058364232375010485124875234048631960882627986577811532588941039068798007419445812897107394184730455973506221059611384909742981452401953523038384503992675585477943097880210759292958605664780650794091149584071134857453154923040779671214752114004368903015382791156064172322391890689235013886340205716833406652502115601296419074947808366511397878503499983230158355171431455586355981386258682018061836422818948380311572976701556624222376727881867205733061944994292096039779194057043545134078853538140412024580643143765141901495462248574015504444038419527063615852869676997312324507112824723038490125271764105949666014795870754274021118432445029182268283148763381065174654763195899239120725357600482763891762861247158650938760108179800864029249858041776313733328025766315656339203830840892719806961520351586687744366453193370155296530192971003124466658123185357063944894151225755582711876747603997512189863296453479913056230220067728505721242561320121098080723796294320370957278051282509424016448755975358092584382784106783161840749826268118151527587404058247383210306918430571068997126041403452718618706373284059368407309746831182316048731033927277944244564456832352314606407390049363069533346461099503412850989630308650628800710848307674409546934007500481823572578698693292833084423776473578543595489535585213966653025510621163748996780321509425821819104903029349009438449184115055480073055045932416792955337300992764100002660500467050309342703511331387649128336787074922560908676124592810127093500611336255569757649961771781385047782601616364005106836290764036359853193075437719477126918200070510480465018001853208462954823433424967871650631690648533692574396950410799762718134638432435115562194382736293895331064934663941133186624753485970474336750145231684487335860404719425202568375619125203969399359044917450316634018965897345768648332158364667857477720734966447161546191934332381878392294722822411132745275436440836390259711665641704444510993987211752833045770879367628320179084372313896627302437120139043501318878619350834309049103882969788574610520498773840009179462637864527252625837012127448738571317504527391168040774157805410822854863901922380124484171722701474274669141892687252908427273401825967325360699520137339994459791765038815974937151522165708594869386714362818789494957110791178950028780792434880813305329431302566634371456007043936117541888633819851416129499263579252458004308723231586843460856797273978108029813005912380419243104668074033180555418760544410787573018087463497996077752562831353237491714689049291197274333839958013799263233580913466512787130734681220527819305788774299321798032168373936633252447956479956272179744850610441982974417380149569871589577237685930698988966042489900281588235184541253430609698136499126735480183206530223035249404936670043264526564117335993787302288807062389021597972413243523048694870159045987178326563269880765359861814091403765519515665055209835080692017454339220331195115661703639410827579946425139116796434417276130287862055846679192962008945932344076948386785491515575630437898135346788515209047513626238657589334966348304307945626449343566318495540002874163275212236701027240429762579596380669308825907052372330589428078040239320533504125461871253796095527512873644300214880602469169460243046372869083059867012684241309406163160628968514348081921931187738479597405130295801175392890024256191679005931049450210547410753366388484830571857212611391156429758431017027868876277126605222250359831810465066261931955819486397881673523212210065037349483279093114273194101243907288558365594588152806977036696963012605446532072974590599548862699559355822089901736058187691377527479806097668080675732722215303407674442560858607911390148913673967950918201930463032285978719174717030093730111414779150108564381516267227682700968053616818397027959315657479003460875239305571642213738918937351353947949772310759530826847762862388929232509216280612995573301902310872290757974085005601051732736200926384455097762171771451553439033801953853699852482026263120147775642418684017381619498543475405654594962930003790330808084181171482225017293976776087049529771752554582201919998855201175134947660179880398830313915809283780735819137158746033049595488828596182539272238762054913746938794178872898965071605839867708345539975497789267602579360469700745516487924072149418910996850268998592204699080244611155667430233354804872760918818010730080293485276036232539916593827399031357177271368414118345175040727913602901611261048507416047672191214929505033561020656918190858305261472221836878026858476382054837638382474783354814183571813669746105076650361734415308753639159601671641713138874129070705140964892476801649517841678885068590231497074189915392062374474599907548330856692617967273689118185625702405491259278336743577581667118350369341182093629825098810793427456897564301122931516965143089933858085381568622231710917145061421017540668416742821544070473877743794967615189330652831302141489855827589540270347306548469002456087816528873531443915803162689021520485591237747126719847855250868576586941205836773695024876476543245299325902226453166675396912211672724818374037931605810088484022369045862743567875548319177101242198352148321259526667295789565054465334294077322887202341765120352153413172927725593556630224176029745269237989780117912951554175016416695191995115452988263317953978953919719906161925499584731987331427291048884315996792611325652521209044538223115622992913121319287853218743501449308745832849486754426111318734415471278690105530411897194165144193617002260523000460750497516046445606728907915590722350015746264089413688692031986838946018916259382141645699322621160330469112243691040454614244432623867503941432767026508731047566394869166665238061493822207774117797633100062522784626421901234471666892271935676478043751401980510924057259550432406038321705894875535440840680146196156056218560279668061295450310420141171879743417707464543974096147079776960160439799183278610237594962567933195854457605461090885820095100576873170703706957720454109205049159082688738449307363787826284087917528372865959341960983586107969502507787612256932371369119044191880338129250374813657493665725468675105001794708357592335871822042791422494861979638240383098907499276303142117110750955919272883863286478220234045155713115277134543512420792757720813355641712114638968765031434071976883463272472944954741346671431231474980130889413088434002018167076955420982689139500282913788904012740846022819068781509283704522079976100730448357041969522901698092620472955053874881589252822727470994757446186078582526566387350474682691062623725197845758872029258465871974263424069664605265186182685816900354445309967201567925238899979567034104313930681788048473780040185904114143189188567345826150502076341642783078333385934452135781008354114419274930749902256851691972650022899015176880099717016441008408969411143402691338113229897534394229551058923747754673397055454092118114827355677666174595179428355715413394487675868878602984707991575406361115946196725207979873507927516600987367429772555763145556327459541136219235514322917500004908664186527371865975061042141934396166376133032803877166792407202433973702295188335606598803930347496976342832111582977285556130058494272161775326288767946957204962140748251433957509732708109596666021867821279998165417420838526120745477036301907699105747286626052365611342228929424281816517421157163312802710143969531427341005392463598959824371206863941768372545368733143582123678848854865255534677570418887079860594057956515910212339869003526584236202517861491719452904264188236062405408722741340678185375418841534623106626146574562674509209111761961514400175070910105212144355534024392767418628919983997309166710137891062164921038789266614278866408192028380229880902796523646703556782370662131328903431138640192368843153885406048462187020999171815553848432201333366832610411420241951103957667358354308417532557680240406344173256164367120242435677917651318443963045091514929750474468299727373738830172375003982492360696457545882235059958618458548121133577420769873503732830862222043782486030625059718151208690189326703568059238761760595930491956226353410659923295107269911668836594329502725046824035511891709582022504936663836784622248037671844736709535763467557754250199263057539251654692907437814603051831920850595522483651899733112279604912800605584898914990603604850497556849921557596663617609610401936977378681936662548247103763852071605027289883937088207055794834377184868392904601947195677925456221722362936123106292107476329072762444907485978631896078593173810833707885912677108068576611295063267859829006779155038023915812769808896092848235445997560250837352069433507671770113162806118479011251833762028358659525629813296887449426407959081726515134242927086504662031863019880000029666269441315453244795119456658363591418797928227024244144221245342182456692848216879044603644383127339271364025361235885856154191068075645248442504509954423062108411536634407770878949287821137001263273959715482690345543119095417736486544701752889246146935783668841084764541895460394382112964038154909492325120666445662015962640313485817999437338414494193580414284624777505512775902452031558352202439600517573152114786034808260260920438932716242847652141145195729073293568197459385006472202791506115633119583558283710729486941644284164065833056237331931730362610141808297088982584404967782147774211226075822420419342164877049591547770808304577062114838029903699228483524251166229970251023157116439634648498908500589560418371087330119909556992109268372713453899182529064444690413018241740534208884765940272852994406734460563639878697344429943613659941428015067880851609959679622753134501203865971206078137787069401449189935777246816147246604965411924442443051116024276969624008906047902756857710014815614571789206979875393982875334655608108585835122228878220682787706201835684775699863598371338778484080078734812429594950115696708217434662925021160776399823025410031073930548978711996450373915317478739141414360443126207697547479120740239968635814646023614726812168134521430931738000466434119962100339375984279220917151627033174441576719379595618897261270223327754967678755429470947188663537656302131203077746859705082326260192312776516328489219431292267718933751488712270732961879850819148922247168785106013109322029954378322570572628188703592597591973303200133815210083682552506354648847874947517517373491837994322677704780479436482981733214656301863019963959657916785790845608773414503306653090112801824901743435905126953606365298775657175507198671484461577274790206244840910022433002083784948841270053706150446207186429095209414560988394187172575831817093606827536802625358985080994340183005992823344502353898740372849172697095365897575529373626751295946887519447471789190609120523887598675976304356959228710710896916132054946285721433040407646499535062728273540386474895494202434331467633373969387550973360591151790764798392427955420728907400413942433638396510156810748112415072107850629108204670645113084769997354959616630168755816705582918244024544319280632107539620006112817528318051966190005479374025005148105483705652698393900092872172628068810928095217188275215655506125468689228364621882256087527756443476094748084177486090728567661111716067796825458673950591582973851010242963868071321886437882743172735827906434403824579588996803495116154041030522879138375792492647002935955142918398557435302924661057868945960711050620828084419009070851120022330328429688665459418509622540405081475203741663939271576975461498932176771150990626245536440538912067354262206311095002666022945021221829757991822513696200998294851624021086400706481370373048028548325107207761540145713006098319241897763393834592012613680053349424328168209408858647616918512057915141455666908943781205965930400039792665234744808795593379955189961077603416665489055639638810227926865754762236489664409747006482614393457404921423104477547651140659798296586177287003149265696679328463048646023208045021139908155634345487643865071300110056524655365499795180556376184524685108525206526933661680126375277086586410261601894938694265573321517717880447317260267349802009309103778856860360845215714194030449801535268172884661954437185910806215091594773729805231062372426468227953597764694041096515602596620874920193245038329884934805998409904170841538230945308078367048952819182808710179893738272560187041931600934473324184230318036601794553529240192647926283016871281771861139582671952000265530391931515959705535591095687891216437173502915182528050790381682976016998259300054609198123281184310570915805885531774845658650067677678694193235028962782375706271692912194478527689841375324035277341932485742299970082542473525953086129623492879699381683460297494567338964972443753244468336388112727733112563123332261462055702081907635368536472204437764092303072250445243468431056564238194658106374685209662570389352931618775313341872142182824771643040817473408189328035762500217864151601239450788746591438369169361690749475234362607871031286049186295064810810912252439775168633112583664700069493017327854646739181506475893995300074385352267786008471414853387000863646523554075013677871316623348022990763713864028474481025980130941434678961923971977778824233883035605060737368493270220597910631023854067790107155092856778947936651501397972935419186535212027244951187628216967868321575032818892465933015444409233557720390800388084510430332857482695320660219931442111311049662476502075667702017443861622817127283880495118699466351077767169227581025152441205714440428513868813817531929645717535263652752648461739148276561375404056418269372211277562970569184727302838034880872959206361402177700340325456457873690823329749263852626616002793470928927540217491776550217652767377032844135298086424466465230162966445677455305788335424370426459090637690027502740041546854560692186837296403777722111756852321991627833685964853955637950610085297982699534059204666356679798504631675981049812209469565238174863253891623663838903533519422412095430453075603798968314038785753082943332032871295786311970747877371975205182871113495655913456110086008682012842858251967876638631830512356079499579699265174491833503582770149848147956309668192126276020197936106879594893873397770423726016678472513960591686364939509018144676753721438025785568849310625354375673032716633155603644646401642557060619195014367900783418057634015470502529982949468816786344553126482166199042508421577903939351957782503201840328027432006106099559069001659641840613935126122128622795332147122570833972491714728223398449224808263947384502959860550386526165563825471409459270222321108261864723002095739612375286355095045205969589268209570103492962511382258268278317946112732754924652284846338750025779733270928520227250068071201664032544370865994083784882016557559223261202277345342794342750834082761239730914908183373150522355211563955990467203575137537692774265018901117026890235693260784750818176069028479571478950238071132126423294264451937926865156383757968654929790828431188070396985249973892724581258442536793546049739389027155078965256423819770653779226828193082118389751940917716293736403274585318712339185678732898222993330049930158760317241637132211921182135735803351901190997131318028778914730818615452571990214374320899083381341640459737389909725397090047989592193569465263657334207805345872175521424617723579480255044822352221784336293555880393950972760143876464706873135605741617163684320017804583356186180586364232003195304211253080529676106310556154380470438913618346208850347146596664135196732272689644241454931695713286879722199614927812400836716036345303652668689989926911338727457956809430808058239875636330773617629702966118149887878545671147332386493210458699550879744255245272201018477134794225641567240114350489560836703506759031963026105626467463482839439295220164899338558716805927539867258293379646021428578416269839761627399313737580244399757943973449010680442813155156832150777933628808770770366789249439234299513256552696742660273624946965849436246511051137487676637015167640013538018075595736650636679210446113669201396909657194441327228646171632250740691689973865695691134497943433157695418982388885477240211910781714882011944480924096415834706001696859223857430150564934751148522040732006181354455889678694434075978511524467468193201918690322539281141180377096403619338794247949860886149221827537992711323516880690545362293227710619139882470395256478916708859956892795787650117471074671197484412601000905596239699077934108521519178812409208358590607701463073748309080353943365930438142440721607091802047735503997583218862279667157780902041333789994044768756701436572671520790464546059936914266611869485615815238898409197583890812823869887072421778639660988706593526726385361321431612182865593347828429869802778093863383825553701621130236548524034957717120158950966512165027385316144682180591365088056577536743539262725603885207348175746192156092332319691422020677357427520813548752984318557238359425061646564445666708138553865143671093671668518489388225500746063587073099055389363128457149146794376070779325861199335819252375335813158309428954548891423797108332679971626545968052534856237878968955618585493664534533295713379829038687353895051294973820784630328528883444055162548614190456798185974194785452750267348923393003362712195367854257480660386365985347280446852304954643521484484433616567412001582590583267071829003167110009579264871155083324463367187875123121868939683113445194997467447780270287320995306900729374704988457333566887110418533263741812658520796000879019716409870564795151410738946610140412510061094309999292108242520799809112408865078941258226612730738433617954865468381988325054515318099299374985107657006745503204117423346558480017643653987815969586482147674921249345881176469673795015659197523903534631163843548368553888357813944596766329427894312003344852090090678051370395209752237714346735048472319101998999042003515762386904287307807371792654695603161410002005145415118468971146376753133744397287816815154998605332693190694284390322303879859341605735804155339335973590753228416328898333141924618636823715953562756133175460305016428666866615372135646480143055215090019767933839754124636191487494881506870108327006309221593353917060539223507027510918058947219158949074110083076358158858543519114360318261692685576109515893994956713872543096617523977759502147986631580780812944504921905209872232066384440349201284445942693031507227424323678577813748980014770166925830707535262405872927700225696676770535363727164601689239613326064239431286508191889847725115912494603665306938584817870305146205653506576742062538132774090206947592542305728898880863177290817570182867562672112468176967629943603224418746947638730345038251568993119885705583889042533284480264175803238112489322627172147513093829522034619559406885114956849853542143226775073939155112973262054514596793155432234753694212122817300410624287813335761564223945577660043610605144267397171535640432445629608141463046103391830746735006714090666614795370947445421483867328157130841480173602095159116267546101895683326954834595386230024829736491299680244590787405332206327883873563912059515850964917143020100733943672665015935058519902397334090479467361877259273300014419245100031582280438815697693965736976527958059969915055989872748868130573846948707422387385163767926468654849599439543615272410616505179754466780038494173186865412647593276037547496753753252894025893049673788530533149684143457432425779532854914954559639011872173328474557391931086872696943296328177340919419948296635159190468885896085223880189681371225651672388039018661496047475881350185256603711609948949609686708411780687453942647516390788468847230890935426795351119871329652772794676978116618741433964832297625756087583340969632411163868889571473794821018920132694693276156990278281027697131803507574430561928314835365080725233687525903983393245907814469821665445097408286062405645862287462877834061413319598332632145165123145483542055847560432184141675743220218014362030427307409210881950076966556819920179556684678746152720478854190995390661493644680832068755573740670709731555671457785078754621793785588050947058455840178863065354359150736356733900401127798841899387593940936948184555650577068806903526274519580920302367524891053869340495082408855592697842552209987175250537943095442120957698806186927714223498931349971616892257273541382591365256589575697272363397719232883859749308410381397597295949224847482509557388186299555683572390484584198317015530218643836503933371390326193208687114398831571273462463564062473245648934841680839588291148539097834264635050142887122948120912841205772787402315849074659568268268901159579668695060403861119973075051292157115281551438651237507443368203430723885648432986994177251785009798416614194820442918942081521402063706483341277932117006747903862802382127222410487231691373770542976911003268044404092450227100838344070818595921466917071573899668700108262554254612374273762752856621896204348239534208252033028747546968003459390644744727156914390339558735806799581256073066722365697619259047723694216719559716753954992647070253881220535351976349360280750155360974254759795366671434972114833664974498637814194764416713189747084723523488713288145285556628447629438195590411070959705624743888358814020937013210926660539290651081870046306594407661040642660413258348998689745248015533116446744415093014131138376472675675980261272340335034901235529580605081030003147346461999646195092167687075642270706853683317310060715797072991232345186732579311801846131955599282042778901476182912090441648198318994997273321525627703457780730671384408072006607969894542563617377071055760184414132699581521113750796182693596187010881053805138780388005165816362273290928647731052275897824972864337131140681105807817656105551294604172326308848071488499863666850099796892974427790665141105399177034042105841715807927946848433070870656869225675216653200464009894706713585512587185626996776001816707000590452061943663850427308040422749904475466489687045347413402295518459768512910846168709862668924925650341737165676311448488221009672321274267009890832668688603045820278904484250245151011064042345610055355431568006734151468351394150741088352632024175790030885382030387914216796870960447180363266572049167897291406524591069997084290408870050043066968738190571606126135516065849850646215813875620805454355672579607332043916755549449663543702936521946660621279751866312410850794718981368144967464298043839143463982482553627891839601809520722362206674948593029287379878474074176125454135007420108358804124613686639948527882705398803693485239500077012611888821788012351227949336974375863874092593187765155124486922681549505000919074006401053946271927250387116665264126411876212100174210464553151992138662445108875083672903431088040213672682080553479898197038795549049738711990583479070625831214993959066736025501442854908166468153983687398357218467090929249954555365097365698278755427858178566351327478604321631079120162193764029720483702846137161733066063038108883269934204855067091753625642436327105799361314762515057436693764476876897825508432860200790786140748904819900066251429746103347732021454202017154489699799957465815635677184972087644957058342952529185976556118129613127236519047500653032182633326719831703469510685851432144450575475444143059510450039064722937950156472298436071262024824635201628039665475482396113888470424894398984798297448827081729158695040171860577875215036543269324920734109372694043872456232605900235300379509833857712444126609150483552549130887765913141037792271273127948361650108447014443923786370134012205118380444242754583523797928608882206995468170145367114642789878373752656547342154576078872868352336226245869773262570940650347950698560739394419235739106416704208820954688319326929437887230513122427187200754102477404023693631494565489343556929682939997703966885381756839038945997036739741741073379368422584005900282188148188996654599458503036758172537064587708908114964360458937471930705508003136186086492037329271513378200526792361059381614045687076907956173501824262241788060619947012243004830734035706983004400231956074665338683033947901767721744758885295429087629791352781989437804188503121255333584020407252862804251374220704669941929755520156151680773150393984264341983532329667959427826537925612314139151706893532241105748970333080946046011613839235673063764864018506403197491213038644047209235071662465019491803243708093990057559324668037191929377171176918163646416018367889916342510426048938863555977157118942372668673909666760727895793729820909444226816231659969538224701090318486273055736102807310027635519275634421087423732986644798592974455638469747441233446095081167050490870351894531431716772206506054841869812397465850498767416680345864040335274310460521209100845069171329150257101409182186010918603893177589219536977336981689608610893108362237318466038643637149483055606196104759183417477254406743254974624403582144182087612674924910934997373141760065624379827827426063390872361315505024875691773698656648980070716163553161787984844336255219268440011129046286915403080535708251977104408760397716486705282975631439551969305821540322612202728818952211862059700691573814934081838170870301075179480577072076134117095847719826682404774512969193193238275567265370922142459739868496345161915597578142428155280213502125077695331629579341777519676052290901574814437869597910641130457844111795375200497514624576569771863526473314858212867257006472374315430856810664355581342508715535592189063121237710540850503957566731328374493756199172288333884709858311913167798402185849094975394375807716494683593517754114667335465021959092952998997033423934208114693900566066304758213401478730983067188173924507673457851114030427311667842524103048336437912587873948855755259815558185268940190558273023893162858692312842776037819609825207688782265155906204577738480209969132520050740783223668682614634871354134872569649190640525558576918028093956831317587059014179295540969372068792434359740519967938339103573124743161495273637627997652505849256256594750251943096174847848226894424059624967736450251846370028573140709771044260659235363609350962265477496204710177511832144180831335266380728246868310120503406614763713271741729419702605725170798291717107147878554443930773448544707308798967206660029892334007298338140570255058332725139389134158959083377407601074850471577050370542903503491870040897026213190548645683587881170433069191231900596313232655417829190855666539192034480630613913672083085245312697729019057816178544373656778876095084813950576906781428330590779768759560347022111262859817341420840487884079180403475159525031696490359506479387895944768267890089724798804585494379784777574456051383406010775434483565787173343410957450245427075354580182703775846610049372429770582600544220469008035963902398676440253029718465095851675401392877096728941116539979728705475635098029791382538943360217578457045376375091479216749931150273675055951714908172863185807929462702708081176900654065768406905960635677181060103136866626812398367721195060193777532965653680517123323064348257970659269828502318644166881769503826296093373400583302638841689370228947161880740838437753071139878280064881767853571054473095775589831814985712487971157526361318489475721926850523206305109222185225669414742040743903530710398314268223036940962530113436612802943300266822183520073133396631814202583855666725209947421896317813777263935014454743111192795986295211975396834090314390935658205773519882364543708935384443595177741189945636565870513863807509734762695728269004928902863265816607968757075630038387402844804172286936617042524208827946968832488768612987087746044536465718002254412378538423942451032495670056447263902538364402820075865408613154939755763274487429801014463666421939579728584630349336222326009379378297626078311239638771772225764776817382723897805132450777568263219229993404775941042633283831205787256865168144554566684076952148816918955385051371172359164175557615161940342385263913598928428790371361035059720235831343761830012435690613451321974172037001129729384914862033941112890877944456380358796065470367215844881664939864313999010342729143667803488907495843114994421043041227809428799837532142837482975261713381482452328496861775338623048923886477876861928583697424761642875736290792721476082478356978165844199551515984567336862686176049732507501335096843570857999789347084068885946785759755590651475719847544475382584286432354462751202169099309796595932701448143942025126357411208436129367498271213807444688058627349200236751606432271493030779580738708229892579784180332889912276702047122695717494963647521360974708935100894538961330442639486876886024497320738898592984850760769696960768361172796399267412468238161673262046859697756655727010798523911027316568644782843515720317610055416965304805231617802419570224098973057039560396989593021174807597865415573017993882559596275793474270132730556772060702459961911032315983262177310874791381404540109506645659220403445343810715374187985035282642710494249916148333731397383476286971686750422859467823931744471329806047733759675408036694611962492093932933899037330491138797229515227336322952194486124212213824034652353276213351489039691289807710982225136428056479266269012651334906464859519580198605738207660593506055349882071490218676056149752642215114738128725647594739750118756829249198537875416946736080877812511857163837883562505754474456673016207036241037012207541562551874302871791835864177832153484014665506022613817210913508931188821033376264254545430245692250269839981826664173806469309373968338123974188773087002932764628853532050053434270463968884914730020169457258313607415980067207066690593112023849780260493897940831260590680281913614383652319500751478073394547643100936535522206154460609759620359214019580192455805221787562930847086302613663911725656072728523348479727700362840081026985905103243617399278780825407118647608301469501431227246066092662866742403747951897315845628192883071250207349503835702578164315448451979944413091057634562324163285304800526013222050192982150955742236031562007231362385134965560382448048117936730910811400409732531681029286866212825674675379258634701738623574183541997025342831973470453512084130530402049698199092305380489711120858707900233002514956632374703412956650044020317586511902567008557813930258302019068953806187950322568978628634348536955254713116868079815139200654933780945131236309172418966984710947422033877037013097191680553938045973216256101793787820272960822307663325906568602149337880545693880251194772260607202912942877842615399322495122819469281932081006398316970315294653771507636999791356347524882209169447492450580118607087088293738532653421937415995676227090519311504135818017340008220034587869139771941530414633984452525831760127701690296637022248802797638244235989678195379423221209983483934022830958562603665964618441935109481393022571957536110713233775309406373836873910172429943229252263054187756132308880922654154718174420056510365306861537790197317735788143394719336919310343039392819911572988022889009795124839932595504445931260120068750245210217188789434029719877584718148407309079460343796256008034478684180880418070997221500934184269096872550182977995249186305855305804542940835082636002044907702524021868705521950463232674763992552623926200909475233978943204690059435056308485152274174653228759503967916623901727018679828990490580913388435960356491592618822989326174858682610633941675053003012340535083464236975612032250951002265993189968947376666566597897492075815412147773239917651736001890633817259263378356737325444060620234683055847818546245451438841781616528930876383498299461671719425637196279864010946461534735329472844348464942086318023359348686671073738390109453086971101938449018372599545697025193654550633531515595463207166443790354499685370265609229060297006163590267675754635642700624481967772480037365895590673636526006262168791171420697254818374250102014292909193466606051307618792291429566816699342260533924180685617124912497977476788357234617765790481460029802074657557065967239642276383518548299072412390535907139341408469004367372437785948331293666529511861226445133855862016292745059812401360711099561140328195241283873815568552782030786717049815219054954912182793745962139643349213059832931057219092964708925137666467071637234186659266251688525470302362163357544093837252141195232997080649163059216775874666925409219079967683705536930701477267295057842742874882609614717771309682611289440410557850081748417980703458096955030617663975413378348444803815111911970243577908171119014091741433546891474320954491811452107159843558515770094833582524648643400787977271675125480797261034599128213576637492045092805476519432414336902400231457191968440477060164144456767240875133099105155243425348326260048449644799299059901260361705036257614976666791022372177352722993454033724980276842201508869518463476752525993124601418314580387545885199226293691064672143723754404351371613683090835078072691417056277729012130218631860991337969165112111246059970690111132251896510381878996944165592320404467406912386436693892913896797554555693047297987418785695311418648330105009902899088276123857828959421244611579420300802092104731433934996798491747075345661549048327282537824467212475637694367922592648178452072088012802878923790312082291068627922898964848357726604291088806423204695990084234526017033609751956942417969869781210127564644009599260580474392063663881781873264085847279383886466174617353032892183103306634693396357801142223483283940020623272652308187402181178258055139185035551459091283334240973362476639462164537240066215460232725207705190713416833814327894152455545812318178914559589448267126640578281881369097296022762233486613863636390239227140043231867076454057666713727384304307964245778354338147444779243671463092529541624107709828187805621688523413367370024498218728053851927822578672608952529173416314598611598953355682455536913871072594903666781259559735193575895970708104989967974712131312905104898563942044778629735461191776332925723607704250811979309675011953528726459572198800623783673803999209609705249101417363724286369421904947502238991361871407894396704593066201765418947412392983105790560185707242537119291851329017288665816553220250018858558293443179441336470166305326994856372322105406600499944741626543025475096909473198321014232846171392627367384911555739161851803630435404952686157789064328583703538649406401277020641558434437200134677279310034855125256887417293641344744590301271207385677270047259804819856435903620357494252775888105030851702093968924692773410094072146001267632621691061628178454852814768983521140554549968344187527423211457591849944252147889761095881135175826122370152358971520414814028552340461986062610714993899593906167351894294689287313100155285965689370902631815835448711231430602886486580540517723619938920944062215195103868459786540982814583735711452158173249272520981492188037700397174110115667586890693283145022426472821385033604732090007315927746531386411701556136298950310608605019702300892181991911603053880138170881739244603281899202535821216236470279416549544420391194463957653322492694306850296848958000595192965452983207868996852620415928897822724533983905825809790921992277969545741575719292901125060956203807945057236623221449496363074740984003473665270306140461705017562670241867913168553505122744893447968981434939503149346789095573598165927152570503976344178198853599406819077445132698768253063215728203946768154551179658250360703724658834471601181646322109506714143803779818584154860618681902106085652114855663548734805936840145766486000214044322593405024638356604162136918329998408766080731068966410888145066853316223678550031060398601122211850821526614406683637651353349136219613003389587729396743112596509157084895971443316420425487144573550633457441108807711011735912641166160429488251212732724401307616802578657552710407342797543215725824712893463845594170396887652880275726565042586723568170217991011859229707377027514709530116607481993918411228296474102427919153287150448656428777715523819849051515552805201278149309737325651074292046743516654670052329182269368331876324057863169065251797246175669480904780441936176018189512372671770345494061844953755170449572618413833522000132849939839443221502288389452183147933790469201453095523734178606172421797726215225747223540249620865453915105296768151828489967423698398848330832275183834567692237822647117040472673681012001454442479651350547319376409525644818552740298870583806807480643357328487178142000053744589621862965309487846503664038673318018049748290932700802729336184944678095091463500401631018686466651482514842736557203480434750341000467178834847120708493985894242524443373789536504172353782955737181994934406545724646674586321537828218502725602757253514399697568071115126157446144728650091682136958662144057665205423105083934952634386942889851958933026059573724656766241033865627950144922952206084984704846721083579641171109193327996120935356566545670382469974176761117639074477241076694143977903495103755565576972972713454339090708899937095714786739347491799526714605293787185515379835856240549886731598947117502481303946689384723682839134738656731627962065225756872424362683104283218855128031393816347459803522148663327183677841494620887347008364135041685820331477616256342762841984141900709054176479796117667829978027316933373212732994669657468069169808974232787858705259009992875556335352865421045548679223606594108086050238379149815890459527459884501200816971096927308193883022256101572469839584210478164132205469625314149993775792060148884546080183322537055124369550362616562511278941329666586619500040810823416162019556174503933321463992102955607473445454352400819817722221543107035194101966656562557880630208086862706802287960105461642971565554894651894277379950624523838842461303139989183813497065366595826648342423328155588538108230093211673430389827084538885153267191692075323619710616152911513771345714099453298474808914612547893341186542853389395311058813556442555812456184328786112678037837471921651840834080873356586039282325819990131391654788754004263357908072614986121865687005490113483070343446109756153131723338168890244884457098603972042034908537910249212420129509981661721778028993291577652906297574748776721924103337365897980972916126592676999407557213024847562439683072984794938988371361014248072971885641506709997038209285231174152785331683724086389604580877470876535656433755644143909760186561134029075718108763356177152174738706464660400434548404741841298383835258975209449934619687298765321668270726534935407969272488258367343975692402815751549117235821439379238291016250586833120214118590312342962741887948043875015834789780781943749185039149327385958606236125094698987944440109773692030254284264006269295148652222814834096893118490130255514448063148583541298263376835156425986876321126736558999335373771147147662583565278167334472312652113440834904670459163526840836229759742486335645066407161233940655592007750695756367738278161103055974455030451929934695574898026137317015697017780517491793762184441260900961065009346276755046898583802826311740207371325832275284244837632249594741634000306220219964915306169606359860011467527318760328256231175148736598299596809237122584185649416867623168390959282602656563320923874744777736170218853288730214814367580099489791823318259735359612109027836403540501638674312760554606918207570025470674328972766667207338412120166809790980053931799055562515970639473913755925581980884451863473778234995618876398482392641364872506279544624723743105949295075444984288365470960163146477385145026398017538626427837244171276245104355198256820518089459094535344833406925593827818820745604900205214339289446224122019082957681564462151342352763862038396594732626223977359402161571393572959546016783404186946618129287809655997579858260042393007176081641052656082669409372916429137117414587338998358205832148614827742943147521502541084887702752603528028688545117639740833056694886266281941190595417185180498906886413701447092349431753597074411038134589673158630584233053228769120365771612917598098405333309149593828363361079274632323755462515134507666893277246867928015308005520781479108899703021098329801942454203613638996741398924765340603998280996598371068994333565004828036844439301800453140194973238460835370112989572231648568181204406146647293999090560832265997929734107354314160835535372072575817425724850536300079430019545285223030230499554849710972369601140123945584820368298542936333560035648802766099082217575028955764834328757383382699121881518350861446458322740692210246646177346779478445478662066325319984150735625173312337609142269104220925835827489682629640152531759514553644103915411798962471312929966732356523459859788961029307414123124741773894047091152357705875855662299267162312225220585008537527128125680736035515633099693560146939332905534675816907028242253474122278207340001199869129889297379735387713123815377866681833233863172212710544469524178248624196480010091871560798101552962318775164470908423810251866471061244994521334845551255041725878701804429694846953330037294365644325630734729628007452062102166416725567063149997990180229728813231612182830577025312123657671985385475877878384752496791439063375919255677969403195734067113373081831313026734507939290058025167436953116200162337855628217719502752812446119384843274969942617423719013164549657527445953212265828221738754240408797700456836233439941995673634887902598124777387887840212025693360799465915660859755573609610333488649388610956310271475838813235173907403335407936682629705645450733560347171674321133481321687805368889219637345113651597461634601571855883257606678660037292771320120996076181160974796928764061444757037730999283427091434912377672390248219692085063055623232552910762642494492278525125954825500369395622469053930519042856865726210290224840983441726230980063286552753880589911075899193059608180389504444245897066992527250392471833837343139880348591908848637751314670450502766450996397156295898754469046101377843458025062157952798484058388489733657744798207642258723957360956825919924519128525323362889939447595723277605431426816892862694453023331018976762705089262568966796369786648967163079658876501931246107132439991394011512300354532721884170818121138819616204806744913312927650757901879715838152913191961523739115474476473218754700280195698135636600227986956417030445012443069786800026864343090383644543639024747435873724125090628279794668499313824251729247209183247185343046527335617243755282572980972156032906305978779445270665242409674542876229494894664775633169506264882900466703956919251917421231499171583110835242865052324369366988343782452923606342518151464518573198635157011454357217413806461514256814649257541759549851165909636628903999139606611718851611083431531457539777911204919692562179383303208015783749354644832922761205413133930898553809554309091833643518634191104467382606171724410440998255259440956364919369902801112350031961938015402699748899231122332953439262355092965818924285478116373331357205738266894581895644752844171322124923325733239874669495143669129121765508600195618774273116468146513915314793705884279155529819644745880271698615381181161001976255385161528966921452349488710617003489786784642434801747918361557792610862373767047069424302010243271997982815995660732424053779134312657994406957128696363377189517484167740369241774148130557000670691569064520173473188735409460984456079595394643364345766108635514074866927399231623526921501203807021023514340233880212345444054146852164999934407896748282948111389891481312485683656410286241567640698698980879885863730404951711871458504089011297792695782928337525283783010138137472550550091623767758244334218851968255454956145179497513864698324294830596906071572528553640614541459955116515136399116591684537906899275499588457543596015017068386273438153800243767568273130152630838562178767300534358822147613409087454030287742118668566146140137447607805041728164439654324719203223521572123986267204605621627615425321087664771101705086061589844151413132619850995344612645033461352586663852248225557212076913454763055152332904397600039344636687402289453263324139725920945898747987058077431036867937046084687744231345392844139206957946354239747854107586944688717562320926321555027571795441501011303073865409290905070389262726878203725224026401116733980294999223397775109463133719374219302655652649156067807378596742733037910727073688082268716135848112313669839203488340197679618815451862076634953231467953317758618265894905590922980876214152477406364568357401072968943835367850684835713757876698775815710810164564269693761460023791755132817841389228923952642008712070436391314339005692802139913869371084771993938236881867431023090940314554519568173656178159460607779936062564490236502857972460266419620152874927488531681847437379728547367840839681202450542384348514212091714525370388662344303011109526856689525288174114284045106294608610274518473760711259701994159248795593252553618047310346431873940321154174563085557230174770380405934007210505604035005159426735412943887053790574098094288612922580149468090947323619303004944259457699738309075398094576863810174224160829841182088828721344731775052629966168920456625455704216892602258158705429186466639824441732913764989593537748569380413047620786718840662487648485198457377625372743860143971969089398415790032123572115177587284136840030102248310747502491392185102011067286650993968773099144921029955217432914273818089889459518598414830495161929295732146260509481684486766045037086090052328329117582231758250423056387381552267484630713361510537657646853947066650686856534427569210225929656636470653232621462684762322728824797487751074380179732522396303493353143102111058459594730621717368758586934183479925471982688560316570330366177160092754749965071927625002245624226163218188721710139260963159930988509071252579371637609458143864039295127028207461514177375356288485836131619638341752622779685675909615810683318648023542820806951203843359843636911556138336479641394054221199497641774035806671539873799546060561963339697628764287376809701260921158031088511898502676123229908000532716082775586989072406297513527613062886742679120063213161160523746698256415235882718676706678144107113634139991658192854214534905178836872421165225106671493625233930097912355401481861807672783820695027246731955246154745688034714176892020429573862695124770632262777142889866852239696474597831759233907097874420229199336033523356682683133840069014105336444331884924282062659668449655962117094735090424042596295208494305005331347822547318466124668518762192604937378941171680273337199792496986774420796738222125152435179575079175769892489333000012593157399745143302215054691291754467477125912757263167956822583298007301795418118692728815127062715738280397869297084733280282228614741736512460425435297887303007688789008031362014290239491586296035828869338060509979169636803523980609363643301139235429030324582692865445377639523004817787966550619815591942427921213191387221488083643654131105369653009292458725657496226030652469620895150291963019613158570396276372103266621160437754773886915329892278419564491699664943429650470202859476948512487378541667575632604909612502092696565629157022283009904349402897754665624394908226377860488168419702868941779055003003291138034094188219783217679460477182652605017908530529391099858524013289296963229751353089266295937901547648502625288248061640697718045598723016866524861170854135697715690237468844452027082194327897555235624662706603914076385282009872587553643189617053349784851159557566902760668676847582395081343265986699288850343415663726420067438313800484673011498052303040600813797659998865652327019416965058252664038172680318501170618200944584472952771734410681057444899156834936439312079588509166675633267355350566586798491145508439249419984816439095577763462298379031931386804562099408729233050213902459469523832607389672924796613182510272413226244721768938719260883294236400543275383771740294039898879799547960750576423096924699729015378071501969266435166580645509898400793374154396118489697059234183477326776447524628496554312507599551716522524461814397983663784389631540124242005683667613776644726837932147845446326845533597521081418469052035706710042331966055347224335978302192250764003470661299014043558130229062540182361606389562938043901109474007204476595368901939362771779559967528015516923161418756390955978572400442989498183796903391526272892281869165078137495438314129937285815945738842911032176727908641236315839298051703326861274978539496645038102799692764904281264654634552915036772327224068498927765312663123063727053470226120479216044137169084258657623154814800713545462499862694138656561694040380859804852219877987819176376987707314922444296962830941720240279105749873614961076170891247704957051628850898083318372626754650822920667436634449276324455953837652541804638110265536884602015465222723224030001717320813695778055389124063102822702032715224306417716083587768002491358844464959093303989038348287951944014073076351209414221481946148193352672445667195910424118153157295352694780701752355164929834231764723167021026287635849326028004668814208775942319498148035728668850202670908297944804692507003796693293440878468799577979784764678278880119627697974394111985548754593461630991464507973056382398799100799856268202088702150746059464751451889690366506683777651754484997215549998305990256966969284634903203558807294032872531649469119664418695865584221461439634668142898539866277947351651271780820841213498900738650494110653803076270614070199853384281641678213838796991887389231405024421271196924004939108053230098383389930472364654446992433043486099964245969063837110338956952975193561670346439482441813304429609905954572058760964504367418025875057517662393564194902682993185381804028442438466389954144645858178330491841564779613979366509100165805497340845631216298549654026914130193937328028633338947961011051332909540071406475085184478546417410057170842837626008099231201288679560299204690723218008871620835258722294202061840680118902328849416862071331823872697942732436655651609240566075114744367755615836665193800326038275083123704600415331431859625641740063928205955797255663521918189018448964773833927458038319415512865609627529230329927488867364263305316904534671763860377126579498047575758974472736713885372567200632956880033776853892361068498857734367262760351622479296079266382204300133280413440037864620472491936021541097686032187561293862342583248651798996213776187275938328243208503738632981577679810165808396337937140083601496494105511497799068978827468104415978067939072223487437795441357637938923461104476091828097048767567476647570929970921068244741873377867372933111959512061674970655285582342850645321769893152922404774772586650460803181035181241709064622672312990698612974939528771367645908591885549071211604819026021543575739647999543213279184903212807330624327517075868398858912221524365584224069175134401186701718954035478313093470617655648725809237440503297401691703763169873034180972386443160688662972098740051950186123560372123161605541727391304680079820276176261236202357533189987113395104536988558781540071734885878543171705452194794145428690349400414315579039530481361464742339151082205936061411807431617385302668544439375748920854361964346421637193268824037361160980632486586139957206802727019915173413940929736164396171918806059170571909154009670809740221896383311125488034197766255408475324785320378364501480535903548622577436809665927901574739423099976959343779942835883523062874679233462309217790220572518517431605700026877266953001668070101097020019745014025302917785129403423725446398347472630605702111288182340230766686153791016375645626443256111483946327982071444224218870342659418846774083095486155435891055672482830479391183368886557352895925019238324470045387601869211705979912688994117450838782385361567941503983294516379823834047983090376751967948484270528580798644698656038373369802343241020049992668511750984849684513639893199184670242564681613926104574754442403084772308943044932784570011110160644071799679062396290609326788944862070617185230008031797844375403945390141002260399005670672491561650673141056030564131491264890293079951683036293900220456855227064807650804597957043290351854311925523895772843173001815293566653545620473712732679992776564655480656586231516462928356857289970763928527768424678201197248064877263082105550431568960360057741801832008597823117340989627418092401774820806966051903259988268724097421901996394453923585947353261427182249820820593181233100652385402981824983437996037805486125986477972847618591394330758601786559426631441216778904146588573957135696266372912539683995386526037880287993527544170914707793855318017812167772066644593263588719692771029897340518694315134701557646763956620918634325980227738193111885126475118464477933202559932450791845400198093168968907299937397352538418164981451401886888593582100201491383737069315311390341938780619352381085819094746811159977640803050044178386975796550328762893717821728714559015725355771768557371550754658858245818373842700319669093668811970721231778499415158907259608870124270866664837198432542787851287271628334043429279365463825224596249261001076171866318714736969732534316780126876119640989378698511442462717171817681870874952731633660452093520822834710190909658274235783859935020969929412656830575551719001191567443156348498251517074207576727320384762583903129604902124072691191618718944072847232128953086959577182779186443703068130567590791261659985975105970309500007045172141877933464768478651424267148288470040715654231091930107116502767289230185881927095176388779708541742223395150754146504347482729023706639873064412645042781538076270616791109011314940862871147644418796504122230731799711898994237232915971622103716519000622743668242652461159966395238642438202711794355538627810933911001131206711515099638202941565776191878122385238066579235360478720196662582006651822521065847556924068461734972464230945165357519679760561484957280623927507833013884202239023501094291919417700054698346785728357043917319157871229368137037561298892963410766025029903046537597469263113857448592395012513517534057674451507827260641061899308332826401458152813635941684895239759230548423162612511569603402136493629457835341932462598583680947179588506145803643125553475674079052801321464104418077180440761889075915092386936057634795987757052368819919422010850981821711683546987148669142081669002931255088604807240715914460877692579898857339486146124123878177586809961726841676131740922397902158270396236767220087923797897166640841506150302896041500342516042213697523668511851262873477311220715063670139661168715293082949727409985165993645058841556053822901148752810612294134977964361498533069541200371627544140759435577309723097816436944742362617769034806906214681659308802979607649946430089576943220940428377009381147303172536940827316056986043263684952615326709840354142166152824879156716924655721845026901063675649002216683689864158521949780992450056374055717932646780657298589506912543164615853037525503100115520070519865981122979850411824365625087468416816134250959615407295358764504876283106044552633828731811487190767640650144487899882112360041996917006224022153292861346553300515523257295868728113402698045356782055748965774223942017013832024574151368108707306603965636385773755894353800240178865608270923317936464123395121658928274135735584858231576668322459549916271492868104678853272560846762894917723036140410324563856935110620528425348513436192934252759374889224833897765765900813947933951821721747234442552032651343982227090712729275459321502572050159775012784748152987841741551626339312325582090528493405394933433717614069157280790198528575534942153586817677848700596358568750927918045152975087330630919184221817218562574645604932719463461090548104487426758236081669130876837179495012163739520011147238495209678406478123113109083916849052310692841499496443440686509179070193787116494409812710915903956465558182575056094477195288346542838798836882044256649403185624792454587141580823201054156226339920276529540863471213467886237433614197588898517962622277008791512267284716035401169663138678743269004065992524839247164512718117202289199964372782715837855470397711426301161642278392058594108936815080303855646018656549412566013730603241757286777662567619602053115186465294656498199882750555274498057700621457894398163783888774617106882468540224562225664516228802622888392078628339183558803636854835570058490522697959942219816229234956741548546913691624020238712416306861746386497482238716576416842707708527793650288537307232507907883738385802183629350433112419865150788422355300579529419513597041071082859571072152146647375518226407977726181283987576788361092921967213158438841534991793579017814021324859560400939200942839327527681202051988544363613757993321996892158085971415023868899239588441165311688580744528073553047704487344669106565902976752554779393851715832330995361911163054141772213328283512765211336355336217867281718584729107011102962373509875674593944513263803778265139484146597113361942868843865166408157062430824829832977393017450431358905444116058969509159191024528748797359814198400911327966190861000717538655535117425670331067931576071241122422012499385756881125870985332636487260170018231419721618246165344102163242419244383525631730816124958244910049352427938505580485005967822924404574117889961899204594915208347303186356522548964870940186386802751656036531880942843933404178756336796060653799789223768368414021700856468556819802865279291393886603115585739882019445812602059535371241961792396844215522610513773043199582853429090255963402126277005751183026170650972808459501327941917074088676875810149593592719126801560092904093011511148915451147912832389142988709910352224735292740438736322876703654536567155878291367188204197697774393793700052187268305319123384295671252067202458647115993140311812081667567438009891249807026163937657273509558884367716277273353145489103026200294634009096841426418291915975953252088389262829851949885668436429015847006831282514546995163167069275075708481645034849770668305426231821085851209284144019775601174981241290681637042501195839939710947024551970799296283677121446557711175569140987685003505129639891050513485843121520264597256707956943385931346510764207671574968258633897277024142102100303832216316391381870958215045853182885461182103098673372074956950779444844221979455665478210536573353737042028916184011189172603200944182238678825794205992295005131629467094748262814641320162914922828281162662787502895501463632816940539024015414655793441444683830957509984678822382160792546620807003725026453392225646551635165856029320156860674561701503697748175430850221414670176730141319175761788764870005985088459442262831735363791073918591969380065645848376662084318199564232495254240905879311768314710710543585123720814124615103999263124036487795632036962311946974744743553408871654384618597061332267001999664593678598756695199242624367699508062472296884102688821460058860396362174839685379940003932340861909865606657348625485721359049318341241763973232105425252867772706267202126368797152447346433912541095178227153789195404754976393437418517807884253165852521727951424987770712467786355021681726367536213998760832018167329111933306710801344658085385148146968947106576904231459582686359040424321168953575874468786041560373870301854849102188724051729703864620947782764853327301705715058585605161623247909181729835307758249508474035746969177984129446561565769517170169680337617497678273492452506721109173879036932158366205014739022038695210397988653011356974220659628248731443243370656058921271595101946899443666361618520523007650704536066250190080325284582051842916424395112477412447989473648748396078308348432328116005404837786589718587178349991095987860986393798679290967207500647048656435950529399982764415758805631276923944660456340104682697647376129737945759424726595830455326381569141656608015418147206447635999225782552757413406440315869897305267823144478728881378739285976908035065423774493639444892958491803884683021080790838386790349385763945016560329443460494154593672467458395868058007939606615662701268962605569677770376699203782245985926324560170771229112575988193194181392971687371073941722300940709137825133603588031859099984434580248400388573558896170845046983394795850480227532645396006488294702703827214326299265048223657300853940494192043833350474621270159004672275985200149851590716856426308476832716872733867359349315324084805344928292453371308025207313051832286043195503031269166602397921019500035852177318105473526733821671309814996209941060080206125287088329408199043008366612190869360444311778290595126572472198895962965473889262436927337292872560812980739813390866550722975142324056761243934566895574360790074847693495793956088092641933322155889794050944973436942472925859479506258303737867998833767176265712135236706071270511810414455327730799832333900459827237384997710314378612353567404795462998068469775291229917299944327631246317035785029980934929381441690729798209203076112193668383666651429397162818887235495888022833651905851369353821823827466826084617793191792091666174466237690825331064023470439013371466824479823545041908433736852144857409199442328803980462266308041020194352139449620780855822264806162413764048938463169241219479303278293926255900014044554711225216224540873260581151787619545540047681669088593566091781585033331622467875704825640544633219961350125105995323349765276637449323315093061927265334155065396187356992120280601192633202627409322334499859305244842210807099797987531070103462263586149643399807334082686886281707023903603032208858998226396501007729160854855046451284683489770821044277445739129595967119935166564369611624191729682255147767545059959548323206088534356139061096691097832662600403973595142875740128870419490389168124359101269060271616302477433017894872543357728844597125304694177658712582287991785311612869237720864313550761953710964519682665887110630312087549040487097996902511971865948351446862445009307163941744106335473065970404493960965349808422282256031545602666220749919170634318164781533392546717187446565061514297537259888162615358523268211573577900784028641796432041220464330830964183286731214210930711497931966955501337751619700892042871362201237445661235810248685723191950110548173609260449152495595817987240257322937266204708595720764758844159383902066481187928500533066699868567255829980475829841117401176997312718353735590874823208828966786212109607628734591240421204913562271264348565111206895880462218353120552551837909398659095541323944116123230871837016727861854134422063169365318376958211668298024611243596346762113084770687337896076257576434969618216158870919810845170596886504483730682385473444405001071096604817492932270505005218139856322324710878642044396281061249469764222419610545771332292205961928646817537764639731399423334970792822285277940698801467765623017738868291202906166359679857781703985191828327198173068632275072697507326983738003988081696567624189104239144581476192534367776970388279197768126011782035357441365816368598607093938809991968421438100080050226785093983271791108131483018853834081092536974617267474473172476014813759539376675242483609228093670580275815055886496105919695254902656926011021572673001581049454778337044759511985885455759827030176436804500840333508877507443176962198840714215834510069740242012916614412519940825098611049105902704538010651028816204741520492984571744636535766119494236964629232232602102389979010331377321737944446420828369279861497423429908450525478890219762879409628571238366607448858320440986524837606506746917334853587206689224737573592808939373511863850880020448903834571164450947010836513828506383899557065977515427480035494403536484149887925879274821424402037395242120499702511417030630720796762820687105866629805178820711503845412746525473844153069024552550365473851279330404785105926907123899406849974462630208189967997231946914836075807557996220728196890255796319730796747679085214248610175647968525433219266085623081475281966725905750782218710117743614145536976789781880863976397328558494498203387607482827525469690377976676090545324030320974250874775139716941580846188084994981664847641766859719959865718755619675507748234850726504171837378259432795483599522669317980678083589638308618422075727550878973585391117508618492462573125089490895666330253167538992714028468872796676301463738114757674377530286257588927414165529209435423651888860081995777424429351111164025231065915855451336127203208851436846073205857471065641136179104361325445196346532880605236410855647482423747794824219524204074574524099642897020802530613745970410397929136096513446652134409484450973420997564282002667504102493684530048773216273617241905388132499014101236581881775165529778464173800021486095450228742988188755423456518769217255188854221620819726849954398980794493219921100838507441808525309125208962009364917040898545159410888137278072728277307649907812430972481753792477437801971743840999181920536038282033079006525029233971117812967896324189263492985098596786971595392749325623561360830213521094034057903233202280981706881884564821172229007010600976111825921979086559222242936213030113848883165659341922171985479715588426910626435686170031154311978334241535808678039880836699444358511533794498845467258048827767832818841219465584484462105181750780435174206399724167184875520583958474056321645803631537210371372280124805445288695481511259411359595420479165818273124087595666461956586704642076329423135768033634850446574142706082284837860522814738047822363105395192398347983722489386581070907443561301890950366685950643059907135866979583089290750696397506236581154407471413987499215952577853007926653888722493818151576585386932522185486668424090174171541553105493583385664418086769274954587729417698702424399588064136274964228458672883179361632961306607420304841841191390365447522474503382012764528415374674288934034228221658911318703926609240812449512196042983630500911753393108732718509014584286101681928054693745201231953690788886195652222162681329761754418470588663826339965562674883968166663622235572682940687580234049070107605226220045697227629008200780388308455595196794122284317487109560649426047077373307935091311941751264804929934825111616132344277976507469461461251821867886796899862616253682323929137321648882879778520107387341221091571876301270302248094104392481883485908855639846682902851210207408903674298444493749347398017023193162666251928304801273175148492446041754908315519658506647988675223976623133411921183835858213114738407756153343807296666533889365683495862264429830427866635291210587765764285273786729800631136471429747499955598569469888927276967037532280526898891880138258257276932945370717721662571761263318450954384645960678276287632729683364551679968259298726090818006266180673580165756878595428811367641497513075471926472570391401775469209018156141137629553342240824232568382016097798045869622695489267364752512010403692564546140679971200430975130728376297242809648054955276426553963185383496711694104953521904043765572767465932265564045594014847252298310117219377169300528324370067989329276215546460874082124842560010428043734162853348501933175166792312259585195427459672261630910655038009828989395775458978563718215960125811827237302941037912324859589277609797456378272315276886530338187210392017144830780072565340031442747287018227384307096270184756074348775816199230043269905164935252726266997533486345633603779643566704139679623344368316562719382901145836789228452878955991240992507910166622270642055655859007507850768210235005443471420418501316125680220846017322976728315547592335568648555335211648927324532222800872200436925297136129484220681908383441317524232933849685945962254535893977086962150394723305747086198481741957351484588613110320106525416178844411141159825013383488290157757656729521007208478290650756398844712314977791323937181729100938850686259465765900485597420256698324976241747543632887935723581018891363264803873143321163120102776844858640623214588029241966326924468891804533298891852835663456257340288857202040578032331305084042964073535727119421661219116196876140460352814309765742868430805367648065671759763062048044918081632009290069459117839389061036921927400154351964487953528877975056905326704544280779627048557104735906084440615648665838312729743737567616970322948889252690448157950686800158493465207586908799882856966951951289209691833808618571495142178172921322429225444074838275223895776955965443063076489852089239395334115656292529209459023766452269621169238454120051194487587762080849359351237103681787103493309704156115915078553571655444340626304053431286553445250817652186991877136090285709944786337904755320341450810828345568460236029129111105822121000096787923320169781216334194264023458492701454506863887549026467554823332777643877348879869921521984735491403483613517555261768461703810821517409198153971429056520954260674866996977251062167932910979953485782439380839788209641763374414843115989923560622600481320259200855390911720173835658614934023791253733922834413438826430605080447986297517857876076159166089302525378963261171258160863874051100778048249459004172195897974587244736551010219141212556856632068456743580589873691948238751110484229029492119697646195189100555144226117408866765278125207108405667373662581224052098859088322010911566290663583730142343099325966751512698092823008154836841956993799860298579242057414991263448916466650176933765545180979654042570859783648969070316932035986440633771793080041905842583676398953538727450552473517653837060932864372077442005814644548771250629007827974169614850521954456486266262965252012974348120550121178585910982096150814705375651417928007652398170192706579106379301849365652970479023009722906531421228210789791245045799618369531356687595686487280998163072109966681059062770763613815825297125561780966674243672789555369030547824342616965561501283049723739157082778208237269937160133363896000375689335952483632939766289236792583122064774514135061744171143371362490483407221193219600638327163596723413869903126908983963607478447195887696830480106545162451528856366638807100392828164127343903352848444107862039051121057414101716328287798474357865852657538236102233219067212537109581379502660702542873399868751013217288405836601669473108892675047778176260522902212837566724841968795370579985485066420799744622961772190677829641383381169423729121006945210451651377093273165652459914106560053682007718983307431617400076900329828439237501112514881526283474012784443206829017418154501839387092822414347254898251366606174090085424321997336432521302058902793223789219077454168170104012920712976450839152320470747565486107980734758692940667899888771360125781512814235985913614836831020020194101029017910602880032236102335009661780824416360957154764166720558374560331109894097615969727587713398832834475776929156552694603359078802449008370614123474302357135069694804196842498256777047965963037151121473130583866835581862935892359781680382581790003067235016694864359457160089606603617405335731034575796977115542209302043074524122647882290516300646833247954490965730112844922536130563670725907130223074437043704516454058222057246044492833349960414454084910683470950378889919954237555975706588873045943401284552521255292625459835251503917777368161888788919820829284684164559883026501685668494869308697652039165576031866907983089977165002806809055776361596416600381878276992048004378918092478482022370070539012171043015421972365080532802554151733070039545781222839516642921481365424522651417270924388200944485837350371624620596193827169647955207883298266034399956514186906561056132278870021672327948449080876463819560079606184792350101873034332451397749772680984836014078120008135445466125272835788775450157904578568082270571647684423359293175716038917615939863158425361162116614940241561180779198273693403176703852614470741734814456427302918545933303229836613065103480585648886682870864767720332268594414405002594586398752413928552159504911569887138826573244249969811656119880753264342199671185763786516306616761406675745330073581759579555187654449176714253468191239594588877890430183165758374697608521827542435264116112571300732959899782924655006880130965333473465869612978631212949068425430292116818345075691861129250238559763063952923851660786522454627147374206300147351065448829665701399082501759017481655140570096066834662928010562208005067286128640267753180588388355016352598636369712328108825636464417020383377994080047106927555815045526417437336959386421420608807279826133700411130831226702218912705278894753847286485522191607101131845590043311706691231557100339888987878800244176570049545509890001473992373868353927960808015335756912088445097555758700950422667186302969721961010305331210664157920679801962453950011485088946035546886900715492096365051398362164972081390515356793967162404901740470231246305004501231679224796227352779123714763875097350303563507750337600348293433364988631966924571625809257827684514251400473037755592245451676871929716595322014789788544518991105746767825595181830076772504882038360195576125216982625326565233387546190863165514641898578930215495570603043092210902671692740074421154367264048730970622284858706760703165992809182967163090995296208698914080974548162379051887085836225598901378801264305809814212403145837322440690980240744923715300679290759585113048857661111519519600517040602904802348534533480748930891042557933480321311883356349895597139888025049392987306006217768412608022975247290624348257118026729544685198648389421145077858006431935075920894278448277620083753838854426855154088340081583831208511186919021299202732880288874724657694817721138725156197619957087893407551387866715039250188611320868078743385646733090508933798222983672332714665338038428274455756894095530306741861580651249302485044648160320927997988581259867138246771968915840774535596655194998957958746764001002017621404528560894234550086160185050856479441850244020366250712466463996015436061420491968983359618885968337627633906925481637043696833295304586911363854236528632128019282685256985238943500242894135647507472337182182086791626295638211219520677682279604179349454274973096771478988337160051538246309651548938768295908873550584778100286821758086758823327266247665194688322592777855029874606648048128304865865011253829612554175676502929114820780398470454663679857227089001982955703510802422239671544712001367788333794333611750626710252755267152719037693994550780089987274055310579761396789788058875887960582898703563393833839205608674869595867714339904638009367909552726423677481701821729310595883549494293287074608109639353475328615540364904669882977521393187947122380439574514585120245104751434241915372075337504377087093433700995299103648328013978213586348245704139182658156087751913806663808275653047896885104684608432640452025748675519337975209040934297480686983241274188843435174542669643398922927174649535920238480098662332304756306999246438086158628994615249726395442951722244912696939823479185884250566816740374970224638514819854566795890322716670033871466774164869958070762505117119497644311294997917300854940301262500496334000406363655787794886793576157377293325619545531226211558820321221571084464236953712319386561793268368865596771335640239826938436415803418067060295970126454888668428718507817218270946546456534994269144725726785603958927520675560173396211762425323921914282277723590244806326701618106689283241029821311033731597167403599035168671033991653233990351016344484099248918078581503913405333914527936920754762113991275711873948395236894360865904767160084535230155567146807563238989682733740150702722687512872315514422959961306557881894727440571825100116754796607608356135280479388093632429607063635578295395520127945151757311919154846246472911969768034371435748074641681401137738758782690143252853866028791398442076216548428776522814692619961027961233466450292059544815655235655958059388426112269356748434230791685694556105044469612119270622088975142559019249418066109962646806204560127893753825137452536404076015585965169879970080655954981133874647183861395979426571244269977429540059822593485027316678488094095243252121887073265156815673143093643000706797223658551079101886017627339550756977964503682810285461242202421874715725042818010363041465689829221675124049125203452808184121445599440364952455477613057916510077464975268511999931901964419709309750834071184271979693132353370042576304684783997899313507569696237891255639318620946147830469921960062273447672799854183178076430963804132425243355734527671388343963436840181746889486992511357651858702803144429844920486245381496124335226710461452163755527439922987395773644907720797285670330487313915848761619224716393878490429556486793340431466118306915216344735004477264097113320803097047942522289086956227017002249118516812672266079992948878143411723982974617866134128949847997867062007293334263292694395683773558866194812071040773967012691673534776526189595100247418158817377076491885636346641866872143818476981210336290016805718744927736200648143544279611356844985257395369354670843983018334210717451403623630935643468033055039649617428954967373672611735289013766177810301304984026617368289350960500260127600973235000789993550840788655561628406227442569062634321450638745952635052123807128303909729707202775511448185147899806850503261994598999510520371614390026294363564738667741444645239837510508395701841269992136490520885218654433939286463286338601077644483843412343499367943531270458291759325465522084008099030776711730784631136000863111736251520789679894620910049926434337655606923041331515823167669196839924893223469527045501727172210554361681290747459454562787152931487204622998128593020960134009867020077063538630984133246786942467358538132841611090451483919228747700054532852094537421676934987071707629869345866476127640453738760050585260911059098206324024881638165718534363110011597033310192048475549590694385807718748412386481002761447175029013824504483385650030573074098281932477120439225512477064447961371648068655019952074121679969362893130680910724492746662184635992587518426486136953628905673420904156844877043580717826336635830598710265602516366611875842054718136848609018528520640392138231426195107707454271756279634366474364410597421434872584605434029589483521995035730746292106266783805781785724268935381300692882641616499882195367656367411024189823762020915885356641576070103823784771459459658553812429435199267179121349488541351002890433217441645777387321698109191005431441225914879339434126617490757837134640715549374022714815456377474752190223679377353998853077788925379943240220876852459236250457899328621827211018051522450216386281779614149254968165413554080024808366726206184630341949291265705061844328648957075225677883878956327613321451617942556899225253332389194681818847671617624185974202830695048295938593401478871505838985915722073869103742134684061460347798511161035757193905425083383128154533232833322568670875871186494415104578714354689012095225923327076882809070850586790269531331694266516397551069180743780070059947889293135362142469697981127649801859449089624741874693026132006576044284610895648190324662816475367183983017055563118641633553929974229054293641456589181077214301616609649072778993764419882160347445218336831179628350652364439270532553304195897640108375115694023101893724322952028641206074315969741136450015332144315340996341439297574851458005904448532528793404236018481543889792463451092203065899394169533467609345568190087541071779982220736816655799992133853022114623246680778281630773228220807578477867635471083770592316217005655877996046618945826687523033203006375962593472155685008914464861689984476478810975743223771441514221820522718375498867309617865749129013291957434660827509060115352349121156707159740978542588238937601918816010088139500213537297411930269679718288225038198465446600457074326234551985193695205582925498134731339343709314669125834252813562136480451857543890772377514133260294162285650302834933090676059243503643428931406882144352762745835613999811867288069899406735174966011917805541192167382427301146859763027576683593340041519334918378973449374115166507658909810838196054433885439854460763022736470807882660668603266581812202868533762559606750909230788083024552026762670280621659970676631862813269759622843962476628001955887951123941270192192948006083598759138605879097104660084343262246191798096115068799005068711325656653912500534950225910316299985217908010243792928014607553362131991215375283055554697899648871043947552818828261729114388108067231050031688065954372702779517409366686876142223495456170197162507952603742395471832083853293381453957558639707045730073161174744250918023216654219122371465195677645551358230349051136692575918653686158242650053528124957241577497324418997160550732372845820264793646062252041960045893175071110603917855474764599003576976015570502625806265204726560424374154834369807339512596051157352394264565274803941157571594915364235603950709377494390889025283763871754395506144070140705827484535011902085427085206042928774073671744808820265209750874709702476891274799345981954552496868055783054077206663597842027053003195971064403033494922874958244828370948435952807329886796732692602510915135403113771018068503339638597004731193335511205086030235202766877918656642770768395261923884397844886534865221700267911397220442324311905552779782028287912830875698670950211390970829555953446713575212326034187861940840422890051913000722206517856428369005524319362055371542331472531789802151603264981871977137196321645129286151265573210945589002363551826144873341506135587545720766652370315402574634139144869911433935256731187225799769572682015278984398526371070899087822844392142687669081530561214923430035269702265073643248324131404092928017465983468310793573303672553629368781662758775813013650176395242010330104925633202420307811913611642333574321696444684372476820344530858471800434966366241439112984384448041704719164788223025672700105473522874079435092239415205503463788266705245302246100468324953738620309075024307368683499662293854874028532219636841403017103311936914789242370992097994343675102354023092756751013805657801515877925497559111272005096361930883488008946239449993785781307325248134667569062176932483792420461491054255923413632673656373256528749675768931032380442661756035620718228040275136541355033226617360725617415878887679091998428637019889970007153381053001359953408342771053465697882830266593733767539140587723575367021960853587352293117913152766272749142469762885822978223697063702823567829474340493610262494705272797274058873265387031535429195810852478588525294377956270092258824794574360409340658200751059258128657842609354170691656047094911123447524814454790706620985805193217466567086463143578788397073225366051496868710425929066567317249075616295577533644588790640374211415508374127031582617785299006621175714124707099852437238656997510492988710683904190151094909690093053982912133449004353488319399844229045841305093210789884605321722787103625793880802823047774990270205419273988940621175352832826006876044003795054919111497497341415855363552365070476671642156879283617379072750468537932408864754860347807667456530233312389145674704149423721829637737452461663581172846228135467887820212552769572982607042439565078193795979846978845485740358236516517337501594675535484496737000840947767271545524386610212311070688103296692220110967658705972277964424160640183444472849074479172102257004897372095235710820092144179872931040633057217197777986547720204764673677091641403860737906713903553396788250685715443085884443598354409414996812293810223397355236612685528656688834773003588322040065863675494793428182677942577046779761063027364584233234717690295047859844690948155284803023430543879566260561705045075769526050417253943840205759803760869466542430061895538659572239383361282143137085671190285498774639355010361254338981132022510159402345898188786794492606535714124010460444071603179148465823355470799241291089129313213938945662647684262102610235822147410772036404945822625775573575688350282944177115359751856831445125992991969949326731507814617691701483889094520470437515017855319453271108807053249679220066042943762095653980549395920398405437973651222028666170667192473654828937469160861846140242976934557510652921149468107061918562179255810186628175301822728288782456046602999067662233051448112905638533004415995022782818722767098020708542955577960841925295914919426520057109046460364811587156192296950678108085719176644276178965182607142741445419392510999379508510095565824526419858125790914364086320658741110125732545754792933931337405466338493133325347862813953960259620623182294068054197188796451191350146692061611604625796415490515043857788918631326079795474573000138214635913194635481960666620982280889738358633235713334837306595681404387990593025098692317675194644048530774626984042285699394200367254519698739993595028385475005356622292732628930327873173424492252061349639513791391632514025537269308108809726427680848737380866541015908744450311102251345483491481790841723945025694652737516710012878914315973937882385147011179973043047467631100907420824892656896786905136962178868706856009074057480381024096422005229594909059791791177782921092916126879504851755979871188734701326072011169190073638827236723589666278966864602960583840673250210153872827350576054111398375797119425976714910775423688085007285905258260263204920077503140065920337372653725556365664504128165060926429768673743351469984549914912093035706944629178983345866404054504662288247156866598315432953761009323389460020399216130413453509505885797691835669709121503187239823009237233293946703871344290555245064878708941850283841458185129725700054784173178787491898673065666208883254310766611024992242718250981169291785428824530821834339196326821620462757417852064278264044068265167626102393335220985435817573304420811963900611102000301802014673045160705425275277813262556286249679098050781066338577224230404753347202872874890311378534430968417495152345919889343703006484718481393037647390765138355927230858939057402736910537480892304525287246716904756231722549661160889846689215073588793183126459734906606174544448317414703517492057198931554025338189461194651500584575366841157969487965312430113164295761383572624932097432216999585262457544195591474258300035738635636113141530624009585233255272450106504267128980153232755985301878939326484672554573636173343359319518290399338324235047195397710444069741604548084743967297160361932045024202455533433712065774784134143938205397627248551585217188784215529203269379285311147878215006069625923659126388844655177044845829263383542932608015210944378723117031018745203193208985485581210392037382116943599337025643642717200608278211747031066364007924803214482970467320321735565424645364642264780551785364042152362381038044750601993225825384250736177484665190620732964677947389295700449842770898715635317906629606632472284180915284960062038845721524162585860504444282291247991431768641148709133755648158294608915473474061464557422136408885056319917506905945070626189999720210079516067513847059282828056187617928983234810821215830917142679287032571566853341587767313736016520859797426168692183695721803320122870989661585013985099605172276593665877159564695964448196582878873224062340317139916083444159439123126392927183500613810370335228792577061335277880788257781033592718559904758971228668558279235355491145732861609108637008926978790852131576995298612603774782971423204112548692406680785664743163348118114248490482720899540102983086610242856902598701897232124753984765958794214391499016328691800546547990003914329706132296430332685491129914399149143645206988381880840567649666399083046488476829234680654689104346726984318641405356541867526090083171158560267182502940449018267928312335132566952770654107893489538310442672848306180569283163549014403189670641090426717364802028425494804386766319083269057208385858579693950417790438154931372328918174372239129469490185318398854893946186474172911112329983423799396476158198571809482634641560732592173970780819855948763005858819385969078395754817640816518407113117808527731229134229539429296643830417857525518841575911182656953838133405244171661234244647439650557381010852175756012772541281339645667381321672332330458552890497273565048635337609663068813640330004135746601717532253125797723739833561129382927787122544627718191756215187598827228785752766229437769210040712013849347819662744052331886883704740491846328104489995452745705825747049528943600034785562109197126386175223722538880583170542772832542481658261783462154388944456621703209633501317873893879630500624755894368091570143340911937426683428958363738298532403602842102709026458234318510346528102046479766473312492576968959541197439766296854823041004033827423824409954642316311224770483627340224486662575994082972344710431405864258914251062298409572198886144683116842429154557374549826894605753626205798303447676516993967065386284573797657326518458788468076569336747646751348485982143037503345435674247581081262350375064302223981676810464902289237256047011975766644562863214300475900446728028319292492535066169931938765901534505553978651842159630207285398884030939932481213930684987695186525056927620615836922753953033638209671797530799459685228413346599507888703184869921612168997543055511755427650402351709075613627420818791750951671721409585635352237115459315482266099657007303703335682815575480604071799134400533300683730799733674297550323713735311606854048425080317455491964580854844215256823112320957057824573180287271435417818214030361213466156874350502841872766021315141846849609708731216346445449269145207932208944700964670995816336373937960961254577767011556038622085367534612375812929613814956312201053965774323472617952200943392048490424380476133057947139323028633797874025095249779917323194956299650218260098207832456931120817162544976698045324827028624132796675561233066405489923044782167324077375346589306465757491024545651856792064962457476466630573209220712534549786706762656945630828787240995408580969996421123428780126984763178021091690418257900647037228346503863643363249284155982161160969421317757727340492230152787625977172877546207571414353869026251518214756733510136566952563460123431715566677216450603550812263927410036606596716281322128131198570868687204105425399977025049424863394700870101311905001209950714043287149074686257454581773414821685421170164421852622454698341679136309699448039453821877671843404060502063541506285099069687605570991136675431324629691351856016700029574949102195219864166320557013535083890012861114367612301642018528968103224786227798680793247385487140836679745469294279627414372984287502332379474515707559318468755395414508679944714684485388118238959479754552637700374220532991121081513815767696425751011478472100215000453510198723980959289192256528224114469579232446330945537377173718059754983365819561390791652889847263230591973658716674095358268976978010470066207556450357072753419931336433912387861181832278540427567517139638770473717623235534129128881860490006560332220031841720226640954493998878386414361642945500396780894363304065227661736605593571995627681464794275414927258969443207202139607190947737080220614787494681117241809425162633927151056523687651444266904716403366938673401532675008275038424978393174661338316662032425021466779255133508027434985199875661784367108827205394664410369927574929703282865002606983199688058819476044932102707382071078165808969560921362606202704138926639212108710371237477376388778114467504810164288349688066945743762565455639125272063433341338414848368184928634449190133666650286693615050444308359072507760797428042788846897488782002713614192894401958901268881898167958299857147923124343218203563304404917259006749949006455517263569675109239095909229655243587099703855491201371959803473732963379634713808042488039772571578946435062322853381431760690789055632544614007955086762145782435158379340856204378421068661724330612723050818440076105781194360991205744615760575263093983417327384052251840161265354697394655166754326147927470858714712391935824701090286876751716957202677498488113131224547736245917980675081987917944842649064418952970902951247343023848683353690585677423303803274771380660540730036770454975027668659593228980314417832858558633945424192871558654628174608384605026657181368905772292751060381304448101460972416416974339182561102566172431800953797290361599839738612447103591006778430873436895888511248161258259362024634799182609238609489448069019479633322755391418864188941581956990288939282201316543854725687165692518375606047717066986284399765753698630411902679095224385747556822364632097146766522998148978020156736824195418564716876561199296938236278472651136683673766331131059432032769174343836587469030373674351574232797146347180401293935164247556121963475490664020509225367274694972537288651149630359200467447282618110662008893868012537960156152623750548841375524599415201517462359002568222507824391731196975769164817684387193590747837356913154284607656030567302745523057082622619300950905497481249997778962148603881475414279101067269712792103980730691518930199476469279260339655173377092053615391326527112375741261331871908433683411820197993516195270240733191685921675912739813400341242198382320481587030261666028042183261726891533012019713885910353761809647753808751490464222213813277227669655806290185421053938541357132142252288630156104817517035588421509186177067331022606324143373087462523270183429247089449094371258354779492958834294849667350088789855442278819460779846586421915786965175721098567125387487163473568810948982211280929041963240281599929694754318387711265771015103819231820414578526529068533324086401057169279997162798089663480414585369598525015305465959895016444297314306589818355927710156979765402857254285949517228894173341315993781873375007688192602958959330782024461978914198725162838472731322237517633783635484822048324450387580756423126649664056814014977463041056463937020748876153497691178386344393820661732431272076468858809967718625926532663054239193755245542713800667271143496953355842330896682822072928590115362592685570104069917524473419682668061088567580543335671367908178196429519747382947255896277020520131761315048630165525473019134013915127492607819389788851658307216325290856448915737929396432343299053772051353117417282405179671489232608663368834047341426039490883991087481847657171495130869229265512074620312133521740617357941473622313255903664960328099983608665028083743007102153012690472610525641989718964805425761952375517927279539069228262244779624587672511412096852900127652260061845148446961476923468329038920488040337909690054279995467472266781885638784620621943598798637770005237329531961804016564050910706137352255567879217121605124452117984044130375107941559206058503804333581294614131377196494697008060833746706406605880851246985490083193597106063648769435919950302378200208491103009870404825561805910590777628930350893426980762875463024787425193734824731244880286445687106041889035223253029685766190977131609340718739050250110123122563374763324600935317435883924700725909949929704478633727557585371207395251635509071657188740300103098998863465305406755890814921320905210346674016994145001067976320581231640667153712489381280751646767568344577861799256483065409422225482221965030601470596098783732173840559962028551291868134806182382477065623155338113073658323893128001617886628696382722008525220192945334141027740592373995557131919733353638537619251910960288885316228089639230362193611547829747967041233618535816259086503648311411530321597024883713586005149289532570131829544811048526416655752434569054433689621698917007816262096762401681248413020066291069656038124464762973383959557267621232345783443358917714101131975649203317303706965243921502638550107608088155894839020294272290760659776546956714250902098133106152214186877888602599817759099745980657789798211564091127313934711311156196222474999199875776145187204384044957895924268107550538523216474800175266845378554244621680559112393910978887843225292047905802678522193086448423987782332089051593947002980238175801876129321439340240582038831714015986747332445325505589170884941657493899695665395387430511519955567166755688138710919274222736139482199543931534091061791273532187099398368519286399216565043116593616032150749796834160116426418164832980745235912245487270663862783012282422089278831525585346252651576462854294245503337543274125536431916142630390049002340916294671357936708475016877654981545509720128455980195896145283732948980676569661826910816138249776510016909832821742061652212840430225343124226655844128597067015198164975375018374625824837613206730733658967448089274775320728391211851244072162039395418309956337062963336615001935554130987867287209217179579592075230815259198493020662170280277710748659085298971022644516658321699283821247564274172697529276921866433622544394107055608343489927079578975101240025677746308834822338928574430996061295582632582700655323651178220528012579606820935828073476865987977670542315075481305197765906651903929928584227679654187378430627290807621531173077282896703867784728179488033492877931858615372599382161285651077343964222886966229792579545079637040695204003849626174412359310399824969980383452806632058656761246902471000697508035011102050305273553915093567312599695385536680460561729749923952485338810462962633304652064813705764788618489070568240987639700805203351282577422033612056676732359677452642126117284845801219977839175087185822492922358041784288142863964477911774570274398014618973258542371087752790471794886106346182674404491731633471616616082622973187938164964223457295770306774217810316398835957863032149447831572901521227759857189439859027233842961174534358947585877185142022062117876478909764412279431748883619352858331043658172916236294236413068416511503571188956608428995269869483947082702968247495703349625869550451141940334831170340213146159290742853007571386615366879873488391435051301761104163659716361664952205368295319259291273217926271262314874710349387793322921911979151993939849154721028391597569524711198498430413810888777711468454944087450323070547631604914246737091277155937736072894835184351735189996367906190541978806754244540963890386238849169908275909336633553103014073813484712542628875577711144244750501382775132820107090626816895009544603100664790920952487430675150985070501880773525044754234992895340214096182043290313615262604640474274833589648545779511597301181226660955385404217687119729620914015514091387264586723770600948683091090388447759489688889443358684195166447775926281745148408256497933899422812646068044321581278316745992406061135929495633517526836610900847478026328445555605653780576652287258473415168594616251333501792207000937797707591870544223808960641783354981672884722223515724667552998547037561069705318797527281173951151068029957475346448692342691637608794613755731546817181094178390088308399261792683541189358854186408538466582305245066683042910072374965832253317922556674635134619360422128153378534519252834502391798301719154940540084925933106110571495741597329262404817544633185910940150276775381654975818447949628293367355797837498745680277245604334531504845460020885759095287703864002744607018239887617268884670084109803128603412339045146892468671862074500670241052996184525081492577588628311912463133710163302629946535290322369102879587143443418246017437594432212196295615818930314403217545750559873228920584065156948321886393521891175677203480447612473712613792223792823379567074080799132712897163322528722909931265710342720491007297322230737506397386193327828046088418552305005637513638271344098260667701436897364697136553599432932428090136185512277829922176460086378050381530334840463654477481478664230547847078050411700296865465008503252427397858996530887661516432194726339703198133833761385006685986364940491205963331725489151475795678324839920997866008160098799345058868714387921280035099022838652156361148007301286105525711650986243642874197922839651386480333423456716065815712797026309850497111120799789035718504492811819031879213115605961550460116661324674986119568092497919673727237667312438769634712266097610700455972151493481881500158895548425906862111709603821748430760619518771482486834283399332176152562072074997910527753014947486412781692220059748207929437847018877669242631115617176567255207079320367240728303298219566857064333384522086634231873806228863742376280769946293441732208815127268488365521443048423933962075971904955979190059294914505864177483941261858907778348351910449343144681152233673235719955691817119460466438958233844374132540505590432846968577738663199308115789618646034163187441682525542258681297393191702682855379944930550726691004645942294574784901888210691548596766930540406999554890217710626419770148290258484331031558308887726725367286506355705873084472988597809986753565126986534818057948209587189826542984805366503088427728588332057551254804050119611453714504458858762267958110394832479321575439761042716000640386459321254173581129070569930767213183952386030426052604966697722492725586891696329489530007096785586142345816783284220908979903466471232084195182014509196730740065921360420036685112618860748032750717521714185604318451737210867338915597107345178990293659005915246047557471495354103976550860876989722302186088824455814025543656007699762934995309165109326405376344633662886484154441667185248547931596657170461697567486666132094868531961508545246944106092897965393876983860957380307683556703693107267818332853907643829874522839884675495979405782075828258092991350203213178843648527406488263099903688815548540563203785459784926432655412226899277159996705149661357251447159076399859686891033414925631250343219115350260206107024712842413440374108610841180816650691050477869966043578035309575337909324543703076848886911710607012643349761890582918830944701743872121342566559627352055133597149594917766795699538064046091261809567254691449711421511101427463879242882133397144641839856218052760072546543585323431312265961178384625345429186313496573437623207070865261562115629870717791694559990264377128289108534006112215657553385181526242910488045666455494203235452117215278862466838115994657256561286322561259474368023632773377134622201374086782307160121731077999623798099033586404782604072940529320539342277207168709840957015842451265340567938016551107815608199446937121993545637436664813669393243038982597742773800755185212264948773440006625937085625021932116518689507191653060066428944283458699894616642329800177476522933488302084085962833496745391778644010903316133783204577802604270163011049964426687373197780035091617134354290713696389575036863927581111728881040738696715911076800347796910879715099736847197373666315330514741324557954268615127785336505965644739360327201371380930532411658386049360164310467273573819208980403612956082208476930242241110044633222799200116873364935816462343813442037689526866312837201953895370132930406189791675656099240278022201280555136037591561995960026512232076399906582010660184572196794723916195737133756267696087779352725131514948831576379507260347284553288129765387660866364838803634989040794816166319343174839049160454396384758405137220983053710764784049674925033695844467707940918892750813967070473018889048947317993256840553802364557857353430356473766989941557577365644158207980557851368879708800803825594152756897625600923016551124948549778338345905181146121961078584166193095502936061001879106189903585234556453677555610137454813986707437391977804956741095836375454815816607476964490574166442034219380217933342992414350421118380989420439113020268631701071357925252523040242223005232347749846251178828724170955039086136081076525443812986549542984369920370821436267027515182816872775692651880851165044723640983062718978856088093233272301647160667897438674319638171127551546300604424254260848242241445056034371844311293819466085029734221921570465664162269124145063707814024100707056133521962669154908794941116178960057313421299906716901117699427957433917991010826155085493011094804665006643865247837784315357560678116064760105368235973742376458088914703676755162405535667338321224185894756686978320969704244359671179270360778951976791988015726143787186175359647169330100289273469387687461501110041614982919698344315597143069680813280240711890851613128927812057883858797239222310778457004168899097057593168894525167507599656846760834615819617428063078880642355389996929755144292690667474393853235671133247832071227915203845007999785334305420598365761922480238126785105443944462488317553975810831231608035022663479194251286207969693115813211994729418873088810202428872461156001118973244804554586104475977892546830777639552266968376538154581838763155275620870650932831201930361624052166354287274147270037214959352885489640121518158700741399709420347365440967279000846074380702878729636144419685376336363995634690023430586927600494884593927220930810267227482327682187256026082709265331907002513730594742311544511090652242544376424946151747472553038389194589309516869232321215650665407532370241774491702563071857415392941129941971096007528810541086180474596858231823068746970521067340614178522228760659532110340975723747408891423136977701819350010887630687358565736928624315914874678187613373348181332339577166544109877101000672595210986552798758427476172845422176343945382038674135463037345091529520055036845763426131314443003254021454540773436936118553343806066728355090118098773452296494706457717850923101026065948192603907391249397527950084403603022713962994777789151271901063791077725328910318228219594145567773956500928325387657659433979988802047400552049672624509851393573935171801649186766437199873687249472152791930302103453471365245297461604256173875040487640978163237620342336985344814816640773527098050424354447101318146191317943040662493124463869856376605619936183663048659749896809957021761604842156405019320577650990111070003071002448742155397993171374959515293830108054228136243360822863079833985149329844761682170325333169993579798308458412210180737115838517252894119846881843720652650380039067460437401023172877516772246826991025788755931825434212145144162963572817591657751609727472740759609176037344563869252532347158017480769911614685664466798644198201948821317247757364409316097719695928108263282798935028305863106200272507921899343985045964429545004367199148003392374790427003245144527954879522144753773083460983372887472615773701123007634719038852982152329795237701331172805171728338139981937049044311003296816124984282919940793494912004112150095949163942693875355100427347212416448563249344280809683774043890373228935313221000171979161407174354114134733481696553224387725975821440113868007490543384121727198577614882226751728533986237481692407961759424784336241254194774601628351287826909913886765552579420560077193974672738026785142411560195600122084298448668330172638427127464242944097290341476965222594929754013164461828728921316394142715852924883807689928178832895021835189160353291296467163973511680758057973925948137061368381799070917403126389955358121578589637911665800088102739105304044705142044666132697369569870042969420834689800992750507229565710544551326500010148238537338877500163261551104395097164284893966431332047667771408519877528381888843592737880455428316031485288116403219341200813026348067498234296484325214973551342905967294327993022717407826811346677257569383228595129678624563179500422574422724029920388186950120817774604198422413442067075572231751868466807437766156855681312566649871880171898017609815421660416501311744910342654276815886637867229866608159239069969736036284944493007079386183497729550636620922827051004495300449165445979291243883455201353530720513457759287150011914108423849679569251630728042290639113863124230010747829695680499032324875385881545020276458013879588940344555082166600276355598769990938018751927496307432930291050460526137710420092820512331645639577789162740016102682280075176564942776773026421313736568767625938290133275894325379837138001301083103465076292298093852207961048603934211708053224222560333395655414789464333595685255176004636823954080454640182341400628801090362990385741456522209091229348860349125155312474329556795556169315079525662061125620551164830892697836026476072789916463784245772673105091419737270123342666818930117291589433068592576490737207184778814630620481790232525098448072592316789288333478059925308164980257619879149267397093380810496154792391966351391720646806121153343193041295342765934593517222704153980432084085200945103745300367648036797633947126110675786885102687614070349662058065637927492174601353283643638814630413280301977892611709093477139557770186075803111301055681919545274031972962883659016048437204299666816986267562448056983559324022978068693593221189677381786776985230950454121362056239208067595016371445571623057564227861415944900474110939261202960027925220573705391451592742761188098834664080625840196535800381046544113579827649595793078020039191956029535168994940261215373844894444367020924425835490949420343556608191875083806318240864086549043542816765448676271276348925228881617006945513366502062787774104466692719308695503075115329411151519256404166905433598319746698627467988527479833487055818758214933774528691879725642563137919262149428797281761057710153906416671671989005852848744962547251740457339845769099003995040257376411563378329737919186724070829974619484209649261303290088569118264900945734745008089397758453822604679360154971816260808780326467305024574529708068507196072726337596373292908712587373592557762369915615034121056859698614937067218918392272682956579530689543835666352248251812684158042352414170938882726166772626586595885142228266598174501463566836186271058466642459320640961511518449656724760222223030922442408167465899518669358169342625571355310300602427484769270051593046246607644760118171237515936693564790275968734758695798032590020835732250218498834218271239745426865854099863720090618658230230937885464889897194211487092777805976429612559910958317727767128831192345398471935649701581400678290342390313523289982044388601656009464729196264928362166895474993634848640132532513591747177379815875550305023840880248452508875641246643287267015212841992300554234665397800696945494692519241787578838939796165052318305522242079986028160017053946481370358894343100344916410585733805875967604271645722274933673018364275438841521837746570463251473348316447940561527316680576245775175842013246397012106569518990813822910603446372644015375946036369477430394943923373583727483955681192826634055144380759821212319041211699202148567615860389531506377572264890534402456879969056013342185977713290179553356952149462557662953573420741516424305681900787732107161591366492908938647931564644366224773467408394947714024920141407383444487780442776719945514824893395754231794388542044329896967725304883005264503099444532701799502470130352171898640189970441477998653758528205987720693017520488620144140556382882509172874621491303404139730029145920327044355333767257661720585353409089518783846087984127994555947030535523458087075333688408828226915775666701987880830703747401769992534557989282427600385157282817872940161540522083157602276792498204512813717497065822709623560631221604249282400697603637169198166912623418625552075676102499291002416639773695162864505099935587755671866188242896374251814229420391374395813303302281183633963244153546068501584318513573225282683103326331190372252595349417635773552703019828176510592633734985786471017628878183680947120047295401945046620645781678633864106174848120446670234741775308139312012128133518098361612046827962553689464650812108623590837938033609525015949568349042126023670295792427102016851431059909956720015484544363829613816556781709001933626759087129839943435227704772242151174527706062184305499758307427609769638158175856167715855920924875608196270965694764130858704638667367941293578511674772295480329336028132634446469801233523086153408421360634147837728000298813446833088768699595549046523358768585679008819581448337668412654427494453558217041718178566604472406177812742302454751494080366909169840025877438881729120589648590873642277167581640835128168492967096613050535603817331150840427746102293500578312326956618792535516629631218463846631920981742341605963286037203234657999697301942602641448298140246141805534067014335779410245533332625792192748245642682755608185725502779049998684954536431505524336566666412612950138263160240260650495499189217877566599422980539062146386487887909961528604269655963720012635923292113416613081201456488794563684837748903052745613237841381903852806196219267776282428178121159164154975725733355706181312904144089319268562192645351445567555213386205444292589241526036181002885570315056288743228810360285593178846546092537732206274490407696403952931129728848964037358025156652708610198374537393460424714599411768627720265653249968550784961430761919414231573505811669447601832695791908129066687890140648117547717716291495604788267654998324641001738340529408105033442878269234320768242708769410073004274587145462028982208823079160228384121102540177430828888267004801583590468942706935026147605137055331602754489586534104803503483941564448080521776348866679033195457834419111629840078618695516619683413220832988248498027002809168714664735418532180709880447635628304252721596231034545234900528545977571196556429683738980208278162473163188006828157161005779005079306733422353393815937106753707340783382520430765768530241475620533879147443972652617600107529426438682020797108875760955762411265882101008505719264692364982136920055237061298858167504555764398507498603039902253056571342993677453239086957898352491372378267973068921852226534660373875029425105088872602105388067680111717445698670169841775033592610873313587504827811170121425310171163974725640760007658942154495810137604298600802959958156645357976778585907540037404293520023721241846539183842143397886353892175151938726232096166915642656437720776624032413255936708931564340439936736066059439868486560308343020332229791359339953175561254490298723328932794348316568381955832667761092072128089086858873726991954855888897024475145299013101884623813900017413049017082427342480457903501571455709567235024967072616080713904656769880899521303705270041985993338156263462270320655392474470279905876504255139201390215940324023747530683537113174956759963669253522172451758788908870900780836093602455940442862407778210411588616321285754456752287145019985874274080665324709750094703598981652253777307156845604952770130724321051450696146413225111005982202830272463764251008165876952166906423530101401026281958652288825231772968512250046268396625864102798660163273265917940231718103142419792015845055688655197075798087904298342260566229553838235695120443484930987280863488617430460021433901142004723570376546721565982174597633508928001818742977377361282527071428272974236781294835713217740379452470637661115441899292818600315327255905906845544160960096760985728859381690114954084255818773305264394528556674619469452966324318513006173005016475479671654071305106498881993570372776170610457662396889834847512969490665885873487145373681001355288680779631342068019542756697568121187616739400998183002869825220490772115549009745589483488522536729914708409054733638417608889635210627718375404348475912020766457298824254293244498520559476270500332896816799648181869404945068372277663641829023323341015497201365778440050982008155107784780944561372019944281020379280344134454409348084050316021460247385613010786610016343425605703166821388765477371327349044226257384072335923160559180262363595124727515296847877857476881709930842237051110762926173251792423804358140701316940243278526675495243397121384503782337960071056641863954549466234809537106063100433686563922550799322785715746274687771666892364616331766552188515957210431057425917233993501416279421192368869114883511055565086547006446679926320890739794323971324242118730067945174264185336143562351710989364394304553551014275412859514391952210449357925465025726046467891334555910316352157596007618511895771175333195197950650785616907384018906692562349833807040954019038156900401184931386751437223466776040367288739505037794076838744420080938005027925723750400975976947163194358294020880332232947159576135600938681720991437795763822844831024962410783589484038481642391387812207321097412163482868195430121769119596304436669571976679369583848881582175775431002737735585029560467333464830009948198700360403353270808615025118115355702226682904553612139869682765061098594804868511384719456579151785269554849734973687335251993543948061264027276223552507857901475408017319414608664079418463082962146577836994861973597662245130427288417085912292250804705330332311777968197418901742226804173316788309154764034955078526321021167005418938509035120861815960616151459157017460714825440210503078595985482871206033479179829532385153521273012303328220125273321187227485917026619894022516791913683748038413883046666860538027288355190851660860782388762338671339392159745287440257135798005186750603108421575291914043626733521669273747637998503896329360129945665310812397556328993680641662669357223037378582787509394192570361289120538257606783841323801874100610493612181318617206574525500310577407116217427643763314380603852465154220821057872859586368507849821805926858737892428090020836321973736073877986307400109541179653016815148436005836057436139505715261305329522914594769619495403031006262024904828235577679422237194610009157891553180636834645457525869001354695960827595172283638404214551021162544252058657698018023905965140726630738663317479511554735970503426518960689071337547468840156250882462101437766225839054382796028983360824838014361359467154491748471066612868486859202883157418475280741861650722141905981196914355579406505356040087902522135523819073613016491892432793655866436786316352633269225192715182088339108837917760878994705881719224193410740843349430905799789979045239907735237622656062341511100645039545388336491813489761362162435757748988721769172337138860315443981359663551873913283246724942480737410439670993157122761750321747475418324351438150437867980942149961341334477112226780254300581861534017560763720284280971159802366662286499028828817514632266436006765828678777947630236911644606330971652783539313772356251028535402032221314971104897895710986547975244402167031162474126306704995479486658204430831828672295117973652685198625399383719420104942749784591139975414986617736342267522086742412097516805025944397521850196087560674730370680754588353535917623526051522542745447892938234697473980120426489902313522265851941021529231975895883187574282811898915993134534976450740172581197572970310175603384383578486380214345426310372085535651480249496039361891977905314096484507871412439658309702527053166109177360211575360684187763216665551185541271107586668480611201926715489026065473759955028360674703502061303212267966062456434330350770253422614297615761635365739224578720055778037060946708482873987786390611540812647606850480906788327619268424972868050393068328713596055954180626927230923956376043044372296150598437287682789381546078719944782728232738401212405665758891400779982910971842941633977837575851687107567776830112504425286868288681202850239735639830744198938798608138744929698064369752963012884797635454596570741537538941553993350263845137226588551477931253495158183683140603956451620945065730932420125820492615932169265926200088454604305277430521744991224056866572969491282041014176728675613619383122090545653590174249929281303421390801230639964721669474416328112188297919670672728109627582087690504303717265252014734850057801855910871027686126557110817222733442713799404307369517472521652008699517933469332827626874697509334133684931393516565186650769544240268340679244473051744639843300272664524930756020672319139032987530295388674978614302253201841756639104217656010774951046951935393911282854785983935881428099043517767772070988277028501194763816265829477256301620429389985418920841943222568644520574040813837488173230675255859288101779158678739963339209137923926466649736776080332286198560863329628240196079110992036856767308825114894095972521241415503936397176396704125487605674370073938043230331165046599393395165959827026117804316529101908632935327296965454815878693518193323386380809477483334360658875239403261566450507443931546328501699733596811081037583485061895589341415324636516953652511485467819846441456929396573884013600329176170662132652266061041278215855521565566546519043238202901138113708958485475138447048764527852206041716220023694805688543786468575282196237025436727108438538331171157965273249783260535489332013182094467860895034148309595414356942080253182079939060926827805333886324619389906764805660609973260785260344434180143109477907901574617929100834677583997783039214440690166885576998467375551043098262358169922723257616847347957616404804805822153529848089064192191633638283001746784053903789019766405141139634916045049657087450020606899962380764903933298496994272794603103643573695949599306953768584941661318919984476119470210366460639799532088161431766498366226687549191488049221375191192634002150911564257294223705639686025140180645733314852685233327979264896079712480094216148652958465829557310735747486772291800281760737033626523659452048133459353771565410414042292792892043237300765104157443218271770171681506689876340722595177000178109452509230190834197488408682365271348511024302887317783716877827088437558273421696852821719041979169110389104255078549178693476545512605170564324409612668042566072358483845944587833276776806678406255141878658249447047628517524514235630973819146028924799628396732425268796132805575138416938450580669993135014184845214353156583169359057828301665456156381676368300168145290203009545845113539416055731112302634441854708072109317682533819646879974795582230787682186748415192231525777804286998597847645841385057093597284603433983375541751706070449842027087865992774659976928237094920320390259453693168165446580724566305200409829102520240377157741407913537984795908309607297277392991668910296985107887301817772075418857628278717879850464173668022502487545473593028956291658387071630811830126619330414288993422534129847266826513427915494172270422979986466447743432264351942037464300024247262967292235591035887168158115046894498520019609746390509629986265525326894436455426769315290362249641465393633618288788323549107229166682844886455243453269253912833871446003198063030016359175134038147211809024081161578359115939043091724669609308088912729860508245348141502867264845959983055628301611831257756801012527246915452145314241892797788692231695881653705678237042024289570219564029051680506635047745013285399654109780467191812596201756343559654669491808897062210488810615516800224917519469787741475228306067156415844725811480008716672567656277256008670948620787005068337421886043352375903707406007094634626116737821351660570780546411908391252511602890103631161170083677051623593485486410960727094254372076381649666694938701795001438922804816072206597012487070613477796771729767852959481124975157510504982394590720379180673036185481462488248570348804917093111964938877656824644359283352321062237470349384479299903884232783432564715386385007083645121556142761812314970414776780589259484703785632025452669598977778802590580517459942591810514553291627083433569095568535087339808484102258933824338268228543585876306748692099402449506041008413240831672628550324473574087282149861450191891564420283989207401415151641893127373727406995943345509360727802081455040775798974098554052097311264020045309079096468367396415684973283373907120859941895159568754964765180557284348522358869985464627943212543591771117667357936802976151941761846502724174962839808547324273791949800810662989916455018984047714713143263104766048380789214808716583425306862988968630905531061113133057828778398515369046897457917365333836390848628471495906965278779384940547056802479585294946599082643310764567184695904493896605883655737265625744886352668212652566871151782878855878071760609156882044788632766911727632537950969669854363750325243840232870219476543696459851021277728113046099227647851453930043495557645417383189843708275977992863644731514794376227324030839807302891121914580180375832590165510310358576049521020835894283404410428927407811999315046545491627891144931290915312091815222850513275647810629892170206749374490011746980914160870773685920216185671131137693447036795169213156893832459241169213929004746818594586331185223842177880393043912635509115047962478482654410070926082611548625960743539412190725404166987510579976003841891126419588517291058142940148781422042072516068822272389649226311647231852045758994516163280480539069566092349913675457051953635621056494326723863022625484206493091128616982483818964302961295282909567628221352601940021242232604752048262554098602219851839670746410420609512097270633135023882879587212229000992558080677636419243294325031431190514595912009256277572014286288056595646072041046290561219893848103572382774615284555376154245142825756057677978115005796449060602144831775939170137199706835941369309607721570509209842995617795763581530551778191911794751751137007425393692530842660641556521152157708743437700400155105949751136341904111754745893787114535074888452691053804753366383762934014679031445536462176354012490069689523721732915799944436302506875889205020416199393069796375255774708138534326887409990382781170118014927582851092480452350075353904006922071712118315020104003898402602272638869614508154510315137152689173143123089824469570678238164569060158701342670382867284186049474206030063631715660839664968009631057018715522662035108498326085659832265419841406317261084647755984558960751144801977499485208552590602530647965431529159685428947125422365591000633656478504007677721573592544384584122069792458651715655576736775063447618999683906169188374409171426027661091616112287428965314359794690308246156498714713054239977873669588586947924024418268075890270442986702035166548755125254191230987226413076132379159992915378068386580182421952999586133076862571846082405004774271904183158009846206547500064149167337692099347704259558814786692367584714493691918185753929606684669836167869894286013108278336784845181542511373776975285443541783804475535519257548172622561657407263281776266953473082785851622245202369488402806658708146779482338914535062922562603722223341976266093845267277600644142898350673171233799415331653770581055870685432422381328173546022834667778414015725518209520842160903478411552073731210054444283563318893235661602928151411791996551132189595915407977401058556867952576224174502818343834792334846246097612629233685922818292887677081771332085935435535521095213948738620542217734845517024617965737737689051246717406569129304301005422590938999209487099194092176857216851558009956409523622995581250179980901940474571290437567415739654470086943647600998021104178407755563440600729065505979181677270592239430543358064654947178608751036231291545588804440562742144993239691295833581373254814515845848131038478465355117745180670801965151094552200058710936362259302495030231926354536656837620662308363655901458856072199041353068263584629628850278130580295433472819630704043209911799769509898963277639525349713105114668303963953277739949256023349769565153875295117690304321381409078630795061732265673385305049439733919398867064502189163066979137312973499575778927327264940273406545437590794019500173258696218190962280335407629230861232250405879216938267245207445105513714844946358909089863442207351537188315540993300420054153821641733057881895685785442999461948116668227630334732631613929481427695841376266460361619801958279752814363166817267145809398657051038720805450562988942820033277588824453470115759168257343232976369751016342737964059483322136060441304674248387797439035813239686334797658588336538164371176164225366060515592911550118592146918822014474193249506512615610717134057156751870702023264961749281944180453212895608790429576424701790011559791737925426273242013200907800069707601767428206438505873473753690734341299433981208134472725422955546615393189168684928498627713964473686880408304174291279193379609944883038428417510959119502473356647105773869199137112775137894252128600226693692300849385687077967468548501053459518382286224690453888257526254259257394670891749349881575887803140942838075147291932132680937599882178210332442032166079365330215400294376266402838292311827833856672287994290264049544408748227738977928677048208740610392858964818254266110193889408227502254400307947876109215981172123681295421213786753696027612575694924642682919381762218775418952728226897537854626559284001496283637638791342171166587356178000175247233701557162124184257393767871295013054419893688501183126358334541425589945874397876729911426725688501151161926356215547678143414323366846113372860195778244313902288566125504301161827181363645580903701219768891437848377848024022433458003123739243967932510144004838735860335632283489503851799224233310625296864410998873965514650481019882012611540082208423076005474633576582603927558816442181958277714464477412439625616876228326817541844694261359617773582285587312048415032560068953216173597633503593267397062629356407888310326092751927338234127416760765416785097509697668620347783114357680871924121527903295840447547877193932784952956092768937138666184089407977449781706216612195379776244420210351579301253199396451765532229973865866960960263685691858749139300533472893985853845641108669677353614830828140860046900729061955318716901236338889562608517190858658564058015022407864340733123688428574653988672525969443983983830749134032072458743053047474173412206335699561050078039846056916727759790090273238314654881668073984607743365976705505682394136096485133530639371751329227073835459255055254851238056165604909575602860835374134445911227448847850833652719038246732176929606346743398522135266918252457625288055129590445187015478989938438410510756529774954426784095495973158359544556230367236412457984087636458288890181076979414861121831090741431026485663568468813817276903701452390155947994385918212492367858350351784702799176850417242427038826916690997150861664947567722134080806423391975753570303752016410404661677613570445765419190877624373901625240975954465056907552015448241722627069085553966576696133546502997379255911814769072455317499448315236936400344424170979420162351706449990048371035895446316942261501381574860016116907080413315418741600590880008610201943789279478554115449319016259416333209228168065851159776848595799686210854906131324381429735893031624602037080868474667091656202351394518101313121951351588113204831765916915917426685263981001028209881183261667889077910923444265091391375092537749834468270900086873615638998880649393904011610525772408983636826099350947507390174742403492675254656383756530855065171990570834564280970527081334811469303710056044944768729340220644307090330019462594881444125818241100341843921727728493460387076854243838065227225627254628358205284275389228446136181592173316054600999670248316234126790962414533982003878569292235615930022638997626573654000863787576968454203586316778293214095756950519636137920317082314489743429916709530706656726338094258287064021295169346999638569345785564047458475294966532008266292294100906151369144295257930000562527615410264100211206288306980840386320947164290100092063491707339508235677678510573528442646138728323999993595057904262769710705576238861695691047541405932033943902731571483558424998327015307301361886231750946470309046865334731632555086675732127253872661540981391366227646645668387401661763843042729087318241793759785119585754795009387291007971759363886841349884927484662166884677061873353507401027886809174020873112345544604240716795122702467961078707277970141956465822298438983203080866079017999599061718681761188457583871876338135108014732704689170856687095786189455034212257279679560625936058835214501775555045430706522422464592166874883463059304604597889301775796351220005141094504244202807486456165687502098905416849912403584443085198640872279405005980478568208942125303432215492386170457671032577690730338410722953378244093792913393091429362216068664168117775448871425779124090442528240427003328778571927995102947318394345144165630732659125984668070775695968078962610161291477477012684754592553898164226485978260436612944325682209305104299161410560557790226276289288172543642436275207608489032049682952826810345902825466744578844154085552514181274758201189250625347041454411501398595812618214399169626694516056685046539835980803184627971135809447716391566164593426600414911490630802839708452834989591547088517491962635983365479251220382848511045986849726371535759289832007174986650227791318998991496105271645377663513739840708781091949045451170281622528251689704665947120829679571671982417503995677665656388693330488278027562690300431999761473360326066344963031216476838559612052433450471439409254533429792192776870262307927347442633314453111984416543992451983188952313090869802562845133044286683580043546111440383545758990397422510537182523378559420475570437892619848152151138761248739515540690574799526593853312936985030326909311657745915239067175941639520613651067741960185137422953869055195264106538091058541359587284642211002546842262425129732975413496368619774154753010229522016876170523971593621640324560525434365477086549366045163386445233294218729303929518882902727623785897478715772599538396404782646298099141434365944492980943594435955090588509175358023802413487760588041020144527488682566005187836247919093387199079782446314266774820946177848698769833026075984012988264782784340227271650999380501210624747766909224677322880693951937799339177157448619716759460497776012212359710540205987172145232338173844838165860772871365860254044769385088141380638492965620861795829545251863645645507472989600794973977449581390322216200811280879971715652685759210357236626748871706594648352565731154127250167403207671728379685012137502226478690653178203592422830655349676227349683130014992987254812999706562644904382614198287426491850590282908638222586013441857544494882950815447284662453093574528227627213171086391781196667214834086880387449850932594050980721403615529552418837765772912073647017262150673310325709485085504125767820605511693529932697722521821534981611646386614712791344767620552824818973951591112614020986489928998064453154588486289650006645365051804192839294503295184979185446076368690498518277093819062806238219549007634270749166356998227216389502443049922394651580822215582777855181643315189074374722518917281630219293313893606992743716954540164131054619599954010479479030871210404782302806075251116018977351659676035915854675490887091874396998005795357999705509099335151464024147383353062239673934678245004132512495823277387100586737283262514500093712007402852948631905000447461409611367652313667334486001112866355540507186258839734423138651794672662782936273401731649947886451243569899634278457932120733905559251254685783979073290611995484746984204151173609257774257876395241129569228181017615194088028371519753248344671762081836480700230116301263146762430761613464521184465521622311630970163092272617338660511109545580942309248930448382296623412039060584301185941213628579013603424520781926655720882343449654657411179153982037208531375782516698640908343282892899758807134819289695332290884294963631140497904067475507629508421124203150593214441617341744625715210069455726375290723521773452337021970565319863912995137722276288960547821646387828570960601063327854678740496061070573582776708092532872491288145484813529770587704446259649985921529700162359220492300417013687520126741275935982940741978733996576910374968578943769911281506485436070531682015001646452800702230621452895003185078479443706503570966465594990399093466931591411739806228744753088225572564727942115385228081412180350508004058636042375195721127901551146270406563076160235140422325953036027401289571641478229108615252840417214898642921220935695173265727549989371548793299454473753706762221075645649936700049086019932616659760046131574070562430813504516170121202389711857563205391404569930294281259864616105507124380843219408864574717963025723608595894162353699218832447326057069481708781737557172809969875810316896047901145488386604397853709682525377172116563027074779186937255293298865573991991218584495132849013461634284427584639984382904198454076013589565849468014678451978598489501097315367454707481739800329538677816539331036050333975644146169854219100227215775430505532752960419749833689356975611366955992056140055919426791610079611374353824362234806646816908368510594946774079708963151074571975842068223403125283704105178751819364102021355384608768059264941367844587525441964781904145617828753964936144061221428936526153133749624245110826040490960989228389099084619895255198448116288392725711271177611530823135193671191426903375239092468242479552129467554973899677614911564433054251840417506081294396990916715515030718125378772680150488020996217481277248219874122206976614145155129502894047703289117878160812859540956340242248845115129935166766342020745617186290491021104772838326598370648500247764448045545230404757780122039075123204784487634826553649112076368966251807812554512202237222889689338952440463932520226341235705017592591280998897885280162359499364588045950070591248540741305066951570103677257898622231470784753973655948068192186384719609577893722023122752442904358196886775035458451478134464344922896149588887852489522833270018389717914003861981659299337490570839717520205377074153777105129765836287391745071538283159780173848754717432801231462859675717544610020771559594221066104398269747279652571530282335660433111366995736004366310986344700050044841953303869698819286370802551409973711522513918087479779648797772838621564271562673337529829484532050393571572104977520720730595589325720143299918813453356218706371399539200928246626086177889150794563633550025491474715061710968298893937593440687102727635715165930198089050166134334945825745173245332877815905849641228225961575312237651593160978636207629961073181945202634500037863034247128748571797087796133355321609565348979734836238385205940644634926657772747204813221552773559078063294760669021527321519359955125294179353401928855932177186083750856300045083986299468437956684003427566744847468619152027283822575081515254646316005598921479823452951321761386424429758915629565387664904667824375647605426318131809061266464024701950941006352021672935933796891346850367296998105970307858707043394375994091451062195022132012868884388411991290372194021469415427590229819672449051395614371285843692138157448889198171845944432587657612798456498487226928288482146972853983253344086842294239610727113802976167712075095180499778044380028507826781587569073911277614574107546892591324829188891458331653609962095433824085699355901044662965026462815700571953615739701065743904640140889793181970568877117409284850914010623528451881683804699197269333369221168681433229986355993778605682795980771254715203443140997552934676601564032680186613036281670924362070322467455284915857663316668030483792437867555081962992171721173085077347849452160475074519379475072085771765789215590834608855969614797083816533019557941871284485868967650796239250519459693444941900414736064711450701527361510918447016469666429603491441802262681167475053656456770462873961606138955915669715557244302778745079439892679667971939218532411412772388637410861014107199517196930756285752869374774220241306409591234630603091709729145339791793481666560204145407078664497656855642753148202173262438710778854188467822998656626495536172852095037189689692000320440818159562583388983938869491244798959640602812953346313430955545019076956223085731984460863232534953731311340234294574898297021953972038056825455579584843368774820253138228307234991731277501053240436065747489137591582962535494812893340331855502183929532972868202428697681604187360459891432335572252535967019086267482406052806883897401053332744064797206940187267917749562746328291137649663931148345793094682026223364602034314042077507629208813358542958164787638419067342738410885830194571011103771438574251562120432527891378447381177713155706188483726210945639143196541145317886118999870552500002407864747676350159387693560816624099853383317051445718595323733476999608552222650398842123798773242887129399901941409164118113984819612605032183231771854892203728690866454016736247827383281423928666026035222128166542345613109276670648207891752278591881231573471921458022620111757488428994268355766014402634308213627221650204950765309763462978684073239640363826254483007024089836135962305203600399915049257690388405999659309002069707622638229861562472904626627016732228278876145586818801828631715935009166742490778248392326624070508451937569312284208036485556009625396813004054141298858585931918733335128243979094423731096207312419817840047471342544899967148493009251160197936179432095274114259098859975559984597709854379633160273968127339038976795475041254281560427372470433682592930540805280645438224198572102970835169038762550962812733066681868859874304283120340338050224984584128211844222579243125161787056017249626679477168195852642774008772709553299832415327099478658909267935965904846095332569547897136891214584497007134828284601602437498479727468034282876110954322717099266060641638210233963285436016276310263133041128115688671834628569121002407171535021676326773323610692343959450085522486698007059037643263613822055153893176768026852457938853005910315000915770910283107767815869896277904203598587484527258419225513068111785717100595425872765573125448907363225145004535701081447299496898090228626829678359792746223189849386679204935962198724822538515769044296143032196001378385981150179786276088316354103247026300304360366335518312519240290622270116740502835417003210986184696611289525909355976347148059212507435407388999203840884205386162830396501581029519233772494106601814749740355481046259809436897217059196830362186709088180016664334841458614388146958558672805007909129693161467953367926185776779295935860620279833412075013034713683952887622635055567930473041353611594092511173206862315793496146198566268988274578411798045460305539592883010862011774311551633408760602467558746055509905061625352189853761904375209888358263155275803724967876401831536752199877526374798838250149854256472803141197508912459127830251887523384919407289490840447751789968693742311238212700894270614514478965721249658646582723401611766235436756705570547877922100046148193641658857103873447920799118469751427531512082596099672154182340753218735935797722224007993250867359200542279176494338305360595046586136467775372516632464123804723730918319359970181307417741627358478654295588645781259386259249713800515401379395776573373121939414174780381265281860181217167727129230988142989085064980895026488394120125882658100058941098855238969548904153544985370305704173427128242117670319918975646945503329006117979073962706851679450531568057466981217061013213288195246686772750720164608662788814927284759915840651604764823690765999704644978122065507377198291298729533850678036830293183858029730372851903905081928853865729728112938534785664153427904876271563996027310894948695877541286654083580946782660332174990396767637548367633424358922587757136108047246731926422780667098899931380875308146354920941329125528533053688917970911890063400163519797453715667845925830389149633065623189213662944468084674279531245704304755343505076043647926891085985937476978768104924503023170190220369784584578305278793360934403963778010885547558465580310595337244613282209384171772053727964408409253615770555713855252152338815722518396843660313049968269161003725095150060652530557097889366194530086123705389513418095487256547172520151217730698819804886088079032777968990841693204650889169859944933897676544513718639217713308100346084756286577086306065519129404313267436270865216533763320816300332775849314697443051277006262859605298594402748165752532156071577462163890030889600906397512488398326649283133656311038829792243263640867451450639883368384304594454539751870654048288386182121456086100813285476979301606010493701236974228009675998119463816356126243480906602254895315294237309002004732249651144435259874226218007348372358983408177201995261008044587918542018777098974735562687791082931860636678534735863292354847001204409370614285904569619435277419223708674212434488274566676913889313785843658873790070741648518987688319367345205136355961704121725499954989491935007196328050738421129978273057441231396005238013049680033132720329389848526059633560358250024199331583268090493862912755940475544405972834068190007308737943696893928939771666636167531004813833800239825452687682539550501775908158308087233399668872727558090710026087433979473736649719087049101749686622047309851158525917301337193095303338864919768665715649579643955252207143020201726176309535961052996610348482514257203162265015176903588414020225515163170067760833124627090296309842414364045342529339318225100645325684977351423490853790878969790220328566782912548671916164437921209405541505739692577905957268514981952860791822599199433380113560101914427297594952497685641779473610789058608898169952252692199060076680530437878142552940380585160941815307378688932970363762689976415317044337911883824458923916091878416715549284387307154380588817916070212834808731471449317838777865746489268680963438888953521403862678117183274851734922744058710529718501176579203544022920417401538513822882956491835806294130064911732333910767358969814957601977523425313299564877246190525712727212129764679553273385680311547219022467616869422826745651997728615096649947606636093162744905219291796373521929591659393606158365380919639766908861960239888695129523035446445141441978012205485978970960875146177280034728643001306021103899228156313118110627115299964508375717675726442902403624101905404283831369871060108815754710348940868907136592979107391212811601989588768849320466513818961471558298133261206206524048066002333899329827307530089835970778542574061559213338774831470514660242409238575570046115588437278631260792021667481953492774002850810435701531326028485071535856782646042794234951800076543280655349797448305364033709126714487761710618378403672087267276622121279269932050406520691961231806914353490133361206169895956887228937894384646709774188780255557684847979205194160242169686292785274387056332926248708197803832062950862192291604217266304541822449403377173242358606583758421762001211957435243781858059974603186422867324851060273114435662703391437121868652066263698819430694710974093268361129219730415843929261392389788925419480697770422484212237340057244399757373294496278846643262349093600366562385759380398436550204577157319642271571176200853736384131505790940158192788708912392602392749929204922827885771234931014779532570800388164382317976886793923226909404040912895533754010608782420360075450743961778712630634785133361234854800548188228613427545697406369693899520741309581361084431917998312267862763348277061690691594646492297365817789680117603126198061297852502109882924258337296449656322333060390702404128109912470808056370661080489961238540181286037550662283050325247790730568933236473843812153391152630192399715724732072622121180826363565234897551068311377283027992984392785491038422300350040249320898739684269577501956552939306646085433119648330360227028604678861406489881876585740484800217110010403497732777279176477691727000941625845396958122652147232745924863368426787737538676215104710616357935620741049139981430567843706619762042699906925827666281805024673646739430632225242511337418223142473748134459799142768669384391314287974253222366457368774984093383945997540196806847273306214565831979217210071786710546091727786266279818147482802908618138098908799448846795066722793450286509106136358018769039593197019989308585541793290218200925912070943466951504981658312526823028305847615103571076761597241527259823727629577836156533858513672880281368996933550027516825989011833358846957959117811870073613788890519723773076252651059257245548177718173835852545808015038542075761092827990817989008289523626454570690472721914429232584937640231933635283580824835136793126901913057179731409420251220895319997096141741566358674217216534092542564873834264810266377420943650017151193753744519436677206655140488548833716344805420223893074206093487732313609164730466891296065056809480529574349688407776977139607282516517142534913113100034036824375567685484517387987831773417239914791083387259162495893459590054520775267862168607355470061877170578466741719510732222793713080362448799193527061148864173868749758827798341308407484128274850953888343409856114631243263299637676518374227838326095675213364966094359841370260355245464554476200340604189782826838750897463055264652628177784205412995752337437645382864858449396073432569407233758243124901193320361273862630016679006941993179386941323400500529026496943382868421959123937119249408326527498758415907120036163032805244505173807757131436812610528684184926767844786838380541756679939882724668034465774424790910284847898948338285208669981952155028837239814137858135744348472343228780313109116543107477893290103111916647504625857984099000472951149546324135418178863765127220618873383633130223911257694179888584706618533957214660110042037333759807229984115363753648043390856544616817592284260186864970482132533788283217595601827024478815385431428123316476323544403982525245521683357546352054953923680889650488830411500066331777517816634980445726927135162432324784219938522208597034891708788746642483805828770472423100229117519942166316964219338838397171611450104696545143395622367337675615056570539165308645426421829079853740222641261702638108191079096996859487757283570303197378335211394073053552677018296991693749210743166062420899895117609725551967266771711774088835501624744489767148375729477802137650234528844784611242488950891476817273942610700400484528249180591722306480032636222062385123390196684479737908318417818704265677862908729010780276626914322379184673140925865361997931293196197088844770166836669060716482929665135312246116891875904734607794345012149691758028030179597275438485799734780137154498002007510684959919634940377914387249360496946594726615763596091368341075085670798410157712145089001501142366211221616808344495022449173331710938356228730493783264819548483725153012416567067391424254026308128192163602727181006777144631582588277994522426626910404876771927856252331179679493837781868446998187977687710783845547310687682149601010207846323961586478488957071994597625716645526603335632948629344294275955912074129836563870252348317742015251403720918721486859297082344395715305672164343888655445926314675069156288175935113197589385232770017864552796393737934904484625923888097784302433821757505737289233432826231516443318199675005186749943375396844030864919496899189764102297111220875199067618468998520632764751190412676050940946443498998465955305374249078077615537977477891214948932845377841156694234628884244253272555454312473919126213399270688284716428313497591983862847470491936472989038169297766041955693592582775345249887913729243446478904142981541602272309358352783388452107422469076989414760896315659140337983849226719088279397997757166522997672868883866553309928369587153921211872829352983723839861045088651799030721788976139668314976506510128907628488014704604284495909176013509764586908011805196137928937883013268767819127581239271883966965896618066667615904910323999059837373353805461231928757261694609864252848474525007774208591753644124643000518742214069090502310504569623218533691341385569086932673778540095254309257498683726434128642705456918539509541078710125405851295070048368641834675794983489322790251923218949178889362179050867271646089664009634226327300192638001573559138606935524305310704544100861428429426052522932449957142504270548923761031316430190838305213542615047168740093078196476380671411359325247817574110003019198301521632833876290012950186824163718101277425158668205350085945906760612653646338345012988124920820313042901816591818659684656270879842696566872610430136731955700689480761578818910110941978913892031080463581204747903250795911262263526933206531789094466711053825316458362860672805952864899074601797953796543587391985877487387799930578410099582657106989580688110840558624865882305507647312998432686895960256434265261837005417936789904232320887569753125306366664635444488684573025588493869841687726198948333309496002086228341079162764141082137789696559129473340928683364653506212404543306287619016608057687752386623756827472334769952490093877047679620929693958768256652887406205962856332075304347344631659692720816695644213750553797680466551168877489326593979433652541282081565450989108848769014821595995467982896750237790440564587632683712150748840892389598306512893310087022591948054227965178506838912305194930350850846845087366989039073832873230027381268152013624433191444894098390680119854515872509951895285103695753808203733316847706367454151303999651328876059886960942200968905411442463862336823386355932045689463901314699452714779027035650441234163918502379425040308800945414088415227055797530591511894361955434935994265829068700452603036914688996450777260208893977011734595843495089705268330413702412761716515626165940338647438663464262246092254875488261876495850347951418319065949462832700816286064659392328997121434793651338047437953518862663647677077958248518387226570683209828121074138345137821070912438305738561323200926761417548916533961122332657986082914340052152618301445324713276067995056460493242994783325991301954567771885182529824856654893282962233404044928410565375176009914866334731418606554587692391138553704328221715637335328272733624711461877113247867607264987387144738409770989536837914767304334383189004167334247669901297704986575804103830916957776459929957617412003176215129838329609504592568459759816085940365482033980815935125658175848239446079632219828237820068676900742617737622458293193784671672764409971029966694458687528626621877365452271092364262657827371590070984438173110041448738451820599675020915749296370377177173379597587023254369952282354025824435850000004167873385152009877905956212842006993119983558791236398068464308799355789694533763498407558821285484514127783245168755542073819453268877803642463349898465899574992687183018124225218891434827960535166852087713858530809541827676743665709052279714714588527813934077896047671412699817236770866220385537354625630711765716850158032560622013141216215579449138830044434443659724885672248071835743461973498094142832859492294164295131641243718242006416494142603138413981334100588630960479453748675604104779931154771792096092470464822356518638775126967247664834962160426931177237953518057147811968269066613954599636035611705223015730010899380510878617432634691093420462558634532016410375620884203757462327936896317555998562182086300900455843809736389038723249624503038970191342673850649146936603581053282481304950276259321762700059246247516134753925359238841726666465412749652512980742113327828462519491798698213447163306718652002354737273315486257821799109626842998057070820279596292589376631384883286094689365115655011264841571756993238543452384132826297320022658381878307873466079977984164463416925366264945765708047694565938269666017352125161762714469008830780181161154590037434145476608250768007291469287609906877829646020367881613124993804404552996996861883327220557539318350724377555723840700433721838620763446235880715555092283580365892391768872516168354358553915078586268838306534005384499690383143487895123828521589639603505076297906975505295829244166566551440416422466863139639225739584810406927683197371078256107981117585704332523681444814212618577452597904577518916200125675166543973014609203045114996508355347381581998104502123845618717619866251348219379971025088001017981902526834082999486304543089029800510610847233847457463851265050753576933656691301749884145369709199702420338015229520571457159483130243658121567859772047649318395890060442837333406917720220242538478304929807141976712758003650788151476896923462450999213229687341596484131842008254795829102903820333832032386539226455294236565001678999707358782313647577601326016450634538346074737334011990315553851118230488379734270565523455718242903943996816377739033246006283260974765424990973168045765392579842264353887132676013955542129277024194288224481185664705979443527426079213535745809287869587844842632626456669549789031236916983403939530805411097810200587487563648982043358536736251136333451120844456717170691644267645525013948995101614091215445679379420338683794192994847306511875306331227519460384065815545980610909286129999838542471613442230921263773088522121948788493189262028367287390554524892250032948530590908186884397138278075748647750950657724943329414250867195471010531982526181340449515212772245168386418335787492358668055166940744492751205489457044425476758440525051455926527150765952680395774947633237662188302895014861678775899164471059276108783201508575026933852847288831545364394003423185496782507776954887426778115280000551423529610805343292708058029716197735078481614869761075695273825249620038986320864811608721194096032087784868388866851552483330737334619811527594685550150125613625020423664852137885490820890174272880900062380786141910771946806707382173839139603883645450743232903533363029776109059778597076011274843916386208613703495506167505605558016509801889041024162313675040758912843047311646836131503789639443232990365193639904947636310727338784363691160428169466869288998352529001462181212523560555482994319613312956522048080672858674498996773893136717426071109177328343252296021104775919207877981915685252072001879781401019842095724989313446001990972581526179545450723667125664942314828671177695137651172911752612358273727263352623081980026551930755613459393429901685312857581796085272106486528923709706282886330940455150704196672780713005613260207309601562398726605827138393310444716545730863705467881900476787702417420617873406003557449894436988029516692344060149666149799854267196145327327006238752586359911970882757839278316388787289422105438257962834277941187267876580624161569066718389461368334336312644220247616142459732572377036177983667706472264666030144014728665120854983790090518656938480712758706578749080735543463584652069806283592211689249895380842377821858258758728896454316056092224047048776521651667474709346990871623148901914473850929386978138258632836609709086256398772519730794975121125648602637681736026976764055712316932959445587378040819770753509839643554603205229348433241529333018686346900625557548928902715791203598643200383288711496282324903493203985380783317465272538383643870896617364671815954564133985251251672078221127483535449949184658178492500944234684806511206799641716147854508064724607303413908735009767764615323610751694322462542127680423067156589558048605025500038807729728233933578338015526528900735813337071376066641462508936806344388193776426449280255126884962068977516362705473569176800324970633521711918200026396811210591199606320684677053847213903655192937367058776276877387932614672619498929895901635064351239833171443989955220062168878413868938318824949543243679279144846522557102935058272334493673452382370771193050196357873546666073824831994535168558697752815451983739819711270170203862108635251461551694498778765335311238527374419876770301173806542444044343110986623550451396153994162969480925631538240901738039054268066618767892628706958507037270304916546041600896887517637189694437763036071327094809394593488877007187719608912169410687794617933172650173393653869718823515792557886100196534295696468435895249614257570104569986405883151339505999185975221690227411158865610807031639795402701126354226554725287652119501091205390217850340451470730061121963876403060685631534600940043966000369689470069892163146870349401469083525728501930972939304482095160955296123205885369811519836303845216965925119513407647917371473406496650161468179964014405531284406112655000021141855618528328362606907653999010536806082090311416076000869948957099761664539505063289512245847761603130146534258304037105226023296650488297100324912144579689642434321384814548346072359447970198607454603136345986549973406612691326919956849622432167510606435420088241274762009783162551841941985641313743040460248312580103056410129020047580624759903453713309248869772953217723023253703843599948542842360832487360421806793154512702444128306274270346429770201395798979060077182664981206075544663306462048110401711835151490935303255403216878156599636294194612536502596275582214585587943145808868436475584277560506344462653656614577986558614827708118148810870100562687706476351814577113582298675130106767316030304243610569900171317422541274469326234120538679405381776810345427891937753867096185500620722680220422649841664997459195813702942110328099414675928456604571661882667364282355497068483854240173674666275538277293853667982273584296289888967801872479794462589119627371636272288391151312171621930130092868134131106732248589224778936794974813490806522410217416025843206272169759099027391751215942265637476683833774667059287860114469677449232947421027037884858009649597764065751024281289951021865522443394975193899970495897561316982313563632194494554886962236384610584192206423354127338064809551421430003783385362810017860136156449556484621256314752444183116254253694372517524269945414070480527162927428481358883767819069656316223295527561863144500694546350464886093770336499657106263183278028445484107859795062392289164905071606043933916085026950841959242474681309875545912899443064989552668737567227445296959733213726090962948512760641130597389734959524243605299329728620541948189809343418603496055758813338017355865243317097960984522182853579924739097146102482807127350473138778616822316890460219292625334199824531869842592649807221436510217229957871586089400736036560845328699755061225875979778085396982823893918168591891142458743192728528637290223035914543323586179368757924284360913955265055487685618948326919731655904007889611840081449053705397252063926710801890979872449443320406802556687117676085736361831075047521747000191284137856732241137666745140228482688543646342362007729185151856853133111224438622284217657652062963831845298190772328821782434740528830151046811126701450841857460050752034847389997234650828515076794507837989203264306154200030396116960951749043125281511669937734137611575572194752951428226509521327907352301502924007452006925390664335923883299344882027412036851681911231869253689522890703733320070701990936892130424961291045717664788616388145952216390922616073599654084193649861555377486249396559591383321944011063423384038808369666533481600997636097017635396730937835623800236271988674966389778023854320740012106770510360544563996871978505473918034423664929294402765831285843306142540463969516151631907483182453645982168094352178587919314024289006250106014431157930300365363233318496842028078605514810641602526651054124338598129979881335748218535396624628565939569945047294043248969219767343191830934372333070295261357826582389520015269656021568997559300670313664149947656091963544154173532988716239306540121154831450866847558480883104054175916616359865328602309196367216862311287647480982375995472508879335637077124117349354899874184542165384783425508455666855993646852489132087523425182543080913397421013991900683394156806374255862454502063627351942417001000173236100319505922902471624726375137813394491558157995018904005590293611344233198146839276772465923223745650245467052296368161714133774386957134878415068479214772498763555772874224272219726792511502855213053517900558975296615153608319819788703977385062495066334795839760748375751538722791375803739926041257462444366946496281735696547197840304760133803037877151667552816042537948337479382660878210735987615010408129694439445461758930100629375016068028246981774599220940476832997441127867496610806098946767762301897302998001185466845316803413275662432052190179467888277499751377365439479120793556830776680103080601834519061350867054316216701312706251017901059178083339138055647869080245468982340583060789170455082329394779359685756872761499065753114463349324166862204052002496868137670833842641564720039486292650745667224614184150959266166423596089418449392965375688674127408475771529039025352324822604998046726563262762231958047983002517819081064030159996652060670421459289761554598584317179503675935986015640929963976825382314218612379844284718345644575501581476479443805372020293664754199400441173029197496306609924648629654803744722333331345219190928069324158643550585176592872903933774453236069870375354185667374840762958588040185784734552160806304839178659159691716826583642260935706230502220815991427811314103624888982963541035817309430205261199701537425960825104006236940364705052345714366074023648119187226970278329161933029526814416599929250486035432279541288603974936237201185142776328938784283329646945338073665854623724267208090532838313631247076039634815705312157592116341794768936063943212096045186555583259255093331835599137410789315937787525452858246229309797774729188848223493834534512869324348812959699179057242768804802296988592370572345751026831351166405707603231795342702773755938555514442176167079976082558615106886004707244065083598551632662929985652985771229998655583263829392690108521910242078785415900610569003429439370907038030784934180131867875666830948578881690844075995482272385995186422737840562089085871455054777107831223633817449569042801638911733286735161859051243710103103481008207983378262941613873987023979021102487779251927289347978083250471916424782618195666894348353998254718677303216354187458712149754284571826042425827748912981686203135392625516298042321410523341331711197327128946504542608656697075732365061848106601765328441047598473261408336576185046764008842806481551083057941777789089148569894916824927679678216299903892660537841732188093694483459899505044848301865743037942911124554535776422728207981443415076139948611199935504770292389113673268472267612371109499309245540662363466925381147757540385321905528732620087058906145336845146067617088770807419442222460432930140636866427970305157219804102826872410762296584614208555162515527122396086241881559631542442122230179487879676380463988057063430504740381424071627808781876279881702433467889802107404611012466030855338778298758342819916440262012943076392023439309720799557963577395219447654346445834947171582204481229832483274957060102614912635216683915877897136096430103507459179720609952664691907835698253562723940486695502194191230833839076632423434172924431932892058984939827912835087746419484833035706839720623676064636764957209408311393934907230438827169899045344629168672003483140906295340580718399839757926913152260456565661593853249876023895498634549894296296881662795711701433073213487335683057116991977032049207515922398338786481813965992466721215403724397229334543398160523279261929554501756578237487708236556048700466786748478035426241975077946995220713574566402888526000367008369372323182647660761246427161658751769319904876724091826616246184829795852048009844342937416333337161213232034388517118037376630165407017192933981541340570943154557210788516141595561194726701344730777088786618742672864602401283702540368573357830035181214235667914829018558019135426111437589833932528177295383710985199201454037826072564362654727780786686800087310435450521936561736977621052912987186680845407596040797815524347331914422652699310147059754571907792830561341530538766765437999929653455464723829963070644852589011311997977765272741104352665731036139808575648017445151823457752244193248822195586108686236400706798303018236918758807439362047395884366412678437360454783556964702616245720953785216404793030871700643950411587605347435408040363756268125055478755283793273943701501811624160630815371625286414265305019525760640706113875226550249192824211723379365460343039137174646284337448116045594919221682989248677201848981677464132669750255585818079219995702429551132134154977820640455624031851720877246647693032067011341427691269699011662089541125281681969487565300777063444551103623430877916537555320918574982989234155964029179709647100102776162466756401029194469847697208897277775897215052515079542792443395631053419764213842900398729981251391056318306056088559902932845879868044902478695551200252475321055299164085439944623283988649086723107782125480741657771562241578415948762289021457069249098724306713471102633002387342272577651935089316569973790049613571478282386002704285240096376981173572338510369879151060666356224933316443292586412093442890769474891006124863187814262341967482921848957098800092326219279820971401369260135842744696685075586786411677768276126229618107388948146354048185998202386786981160303502378010336358353231922851010524150783482012888612937151287633817679322413636952529132602984839591072021211748385896111324255462110613886699774852243277216516483721962736991691009680784273127097400603924441373748828819653582432079832242969166671390202648697516814281989540076536738816932665637161137945686876546102465029444705734991910794513310391287599755754802499391433494643416249120195943995143389519775528068655103135775249606105270183827148342014502850413509869613406988454296302273238903952977316946360740484474809028142368288093965124549697894328841715561518526242856873681737233180352571975688101955268743324139375226820943297344966412426088523238998842059734887772750898748267789590066266293049038023121672837919254717489618897980360876643734777049102920059794855860833552400186213338273234261966593246288140094691406102277529352177548992981077104951045208014153039891965644697883576748475229879558138866837517605444589699331371056248398883773657055585484469833730533083539695668197739930512109117251941873592039178697764189171113980360961801290270911333073078839129705629001334576159959322799486553806483809039804837990711785275419894530952565407140392571424328790100553270446599896092001509720377759263622359004212769156218432472099099021773321459529862596653717807633650632744119194111636645291121839823025178114019151192811839223041132703677489620114757960137791461268407410790055216189382638480701836040503563306862772964291314990456457611784073015374333955233768601418048794040652169046124642679115535204879543341481433466066683039051261726907679505857234842498313863459948878377445404123093069024973083113324565364223396065689604347257791839834692990383955083042537790468277085991582531669144562312176927920430159079141101474529462132927202631495102392688747792105619804373098031886990332701908389831930375940013773108053296471205431618817997850645560132735506418661222730502911765389797963828342202473392613169283423337588151572552077785050977324561825782346204097451532839109909090237195980764233091480380419190321760432064052933749599964477510675363336531709746198550464112314997673637895313065509334591610082237095895422767060356848362056098716477380366658967292584976886793390800834747488377091196813855318207470421171694757178692633949714768489285925145563665231378873452551128552342442887862287769256023308460985774523973217320502850192742860630507052078285770893317923309102033222522252343427670158710372058088052576950595194281539156682867320336173540788451096379280496976951617196409448997769828766435879386465028322890349687726319390484383436490867749664917643508542175667760802059934277225831452650401395446355882072409286344020158275009946844517930919172582852869398850361063844719217471732925607295484000279150695795316714350906124897054764939635635405144861630188765437519524654838932380952536037375337864074227103706329156483060360676367384891010673509428996638319883477768453762543263002482880848480410563496165162395490314143107210159384779032545988985224803610925060885938542268203278219349735569250658533726555360540067182634025848021040956010179822543779573253050903314753885597111568402051824003759985771946753596427030299832524397618687658086556472598820743794372363413069102528514379938506875320421075407081923001527781510677406683504793132243787984656183662352171074045126646735767971088765059318930527523873307802333359265506975006078327145643670963545698839201638347593589930441294246662609993848190901939228621102694192997659040396807315093757498024506647113316793824373610708279471518593471705991396065544472997396633334760725264874628277872960397955982497711323220042990228923955887398065250629064651811189106683690421438841179324356856121409353881058490191891791200459191735251685256694295428900022101436049320909725864422371431643405387633207521703682196499391238746914492088607566310093685404611500141684968579627550166093970544125432795000783713719093843659928913443934184404436800358097071910375458733969792189830440116790403044337142005686091725555826061175847533534226446526577967726634962215297942816064916771246930594631497039326763075449458667416157319048466713151789004181748184388292645795373117131620169139949254663751522016766381384329142263197057878785028106350026108319387282683406728919470448444818266227814563011064964763693289603237054045458817941773025343653830139898898842620959055846185055126565514048274131631556483457670268980171367364855674282808213603158186093313704613696966485090954743517729552853390596977654042519676078469753467599926326068329813150943890449930251009102336996409107197854949428707940639560989586680728538841018765488523947137984670627276115735641124982064556608521000904732029404094374260251439981143891242967357653744532716600858965603702360157001568257186066331885307527399386931153942714485563221948664243505325225224061717259478727117055726974271898315482114469123558111722533572692105178023175092285603404254685773004370711492352081596329595267488666808775397409235361104551900697988873503529995013033848293924204329496470728155474457847614677164780781563293023035685377056822972589150058775478974016609822093848208997466821191462975795722892244303925248750922908326068462902307355593204248613461328101279619491811802619315771071474886759771342148185964881275964968122761775605188006452648106323873994201376539686477110029586653437861409051832283572406836121455449127057810318275971940436249885151493801446672775879724816375804048129336762101765553996374312339565554722299733177715652181134173412981533355630207604279286823201543220410348514878116149633151455751122407968199895726396590620895056700585145377738901892743249252765719007101089894353910394424543946752502531384368997495042422464144296292670884225687644294639426543893336538873146438123252306043443480501391639473815750773974040040459023562981920747535441720032396210844833333150654726280029041064272006443794081482859603251414458060969162083724813736314263388595306608954380878866325906642345559694416935833351810013421840626909209525167897851518516028537894029245646477572086883884991232023562179462538387516059274806316373782786739434249560519364295306341988168710002609397506357172056580002013018147942959924143078293435014904647673241907917910109695655218381661279307037159003133784917730719563195393665074711725899606866438805403948647738077487964459222753833060471439889918828423700585004189743626798100822610411384053347532585072876554948885347591990866410848574096422938603496429203436315761177475842877584158407541329784889729288962049891713956690555412909503133829793557653436123389203180937761839223383967508498534568939992634024425760446979769748823812400713460117658039005813320113508352026474945229761644037304366840719621287967276445253742021035122720172057794882005206356569560867068509155544898600546963894450738707379554789717437840369530122818566999257210367625965712304860570787676047638712532377965031846028814047486868351795303902706116429927261533638547907599667781818011850270591613103234300233714918428332474144518441242763884484349785147851310457993642730652315524530044630886356733723010870893148733644489204645707113209607543348424754388793509181736014795532346428716830215566516125767520500397840255428474675445441539356163276054844418755188678415935083604139757200974103979621853198316674427704925484201812002360270032972400199410039820840363656005417272294691584447869049674341467490357496942188056850710886038528017617530111106169656484502773750040511581774112069529804457842942865046847830585216258471254856969425731734802605887991653975319586282046558563827506536358159411829204174930103830116496215755502033119433474164382492006769276501038206258748923223246766225785363111687704850746882214477563378013252844868875477050261432472140494077086380377390412338936239021485293620168274495943773207508445297557836051037217647319160488861238986185617522434157094866804908496692877640376550099885877719828793296158949645246478946309547655233517792603175722060600233650418144636612597207662193749249647031731447331599757976615605038989822294753843745129823391702947866943591892674620173453646189681137574099772207897186917215138756445688565542748776120733994745688421720190858581377225732605093028104117946516785339145801086050253966469453595181741799401690560982523317478537475228369361319064042706225392255788995307342015090077065801002366434644011634095478417654656629162906084262325461459659835167071746506282217819456873589678698638855186940461677433419343032717753310870755556418710772902645561077325831146615104122262537102553594015078497000972199949889539801781222819243315241790547280920108923185215924192674441348596153101919619800562455406765267759657887188338020532586452843501588377508209157851793460492460354316370996517567093120249980864851352444547534716853546814060566505764023432695814422225922909163151194477914284346629092338626059139487305962184400739563138976486759471685812168594540206052268914907368955703892802570577737313198136557239967615823696043515376217596797098615034987920026130306477799109253104225231814140207459419486914363578606978023495071438163019556419801908570039402697165174719767676336916221254978606531958548717579747324943548876040623632897921041010820585556506290259106771751020437392793141426718566372639411533498803443565585277121635613266409970085881305292591616328243524126455725190316593779109469979125867504346983981139000270644360905323289535566133481148925096284324774387291949911366633289616489679591369503806797310756951778869927514774531978105180286360967203687537154794499170358633999937728483290652910348058719972496893551436057361060469568266630596949862566164603350264602919259578661081492616283749595024649549777435185259449607294797789782168142317084111013986692519895633750002063937825562045442285748672677093561813755047614039503024786288593847138072694311248995288427049997979917140443758191849733942953516574808793481431762873568020942021120405912137134641463747372104548849401846866978170391787812243513353246541500975589153887797685933714263153325095719604375991949252056252840744613186214105104017348372185047902524363626494683654179632602939306845905114194826314073276890184434822294668716536468812804682726915312251396906097873201819469277242157590490798188156245910014116603056287136924444053766999395828696663331926958074506581037227707383923079034340509444760299147800636565678461669911506738070355407104779576362629470486943341516773937931942408657014048281330951404585104417503088958216458245650251709792664403632487994182711088254148126747881687279403970001263497901699691788211155073878588818021619552838856100399168014451670233001137889346258779996150206183726043292102827103084932131124326046666369772678331485370080280778530439259665698869634246664709954596646036535431726892462290261993000682426561378755602019365947791678252936146277640773190978954712836227120671051209221641499406025430763596521630987511164672170158561558874676430688050643799265778800464754623831444519237816251281618673212642652282236999127544788708598882861790854309348977499280681611994328461841384999610884952051222997485413323918682286471936001902574028856340644240911409037186485425286488881960369272339780842052404063719541066632202629334665283810767502097525342826007903885445434028080730428847346401897009301121088444103887377728543940048139427740514232261663178203810776320115218316215689188018184161187802903031757041467904696790661194383658754451074740427764162683911078397518103858310476018839491189283167241291966266468595651295269422427651858067768387025605661794698275323735699363505756338708228782665765586091634916502633642168234626633807279908441501998711875426234986292336421036163937949594836767736522938172564252958285030671696525147376454934110754885579569493660364221797258814983512863096272412781605838450258953881011317479288285386840159803763022807220041063417993600828801833512909792895824099151480847274269654154379655066141262400127847949458461647750462102356489682036078166941971735836487320846009975318151201520306599508339326094979433369695911285808633814624984884549690209155959706353104048078990315266855572121075408952049834115399290843893631144423407322767061607569909799103078081739978209037202372220358125341218158296076509806220180824904312836947421518142180234480062965726210049009663435310015552682063978594171619429880920340712034065974183601893109807295405709886785051146780031144914199173421299312938197466544452905463150355965835770062447330550088974065688956534769176023785594688219520782091094726470943267991777901953413976952340432551312120221125556590577694810671752829217906178355917129173481449119510528810560006693597098266364714468647098564003523488713376983062831834780800725940365840507703875085082280036175066176586761041519700414795178829613784480250107277355224966712543228494113085846254749696950863260717299796866319773421480387090288800443710719853918500056658809073465664605519839047475800837234998521800916992358337623077744859931428546201455060828357513597919897825200340926196127894066717167939760048679624607878987925442295077787067485107395046939486183347282103085816576497399816880569351504504199886968268860313941228381087706075379347957012241754384284179763478824901203328771977617906775441518500685213934789047326754441757423804204389306705644534952685872355596073359516667745864643657374596247540262822865223704242002570652570701015729075520300262647964198089386572245459290300434364533560544379780958372367492011501081433455037126786624104485434122072718598295033966024396247540394659700023290559582333734444737295143524205571820749592172751695219384857096034490261225925145293483892492818316167681771885894604667912937594110011239044769439617599415502370827590787542570085187665097966369195304919677484603401807346869623621094838559550422121441785391562649252279695917102832216133467570675072897920119303371719750326444520850249736108420774259683857630219974886473867716313128488029317572296890085555146560113436028604405522337607277266182725689074510208979348911174149700424516704814986168837197597776155972831874388019701141771713423699689654099564243973628027541523854852734843852807243522374482905545425321951605432317952573812219059088231610225376669600844748524700756492642849982702444078021320543058497865159151323983779665580101920859000418408832489087420616239716156727469564208065369895562625740690081476161153246587746867293609185895036853226012527330891308369858233573759212489897668730834160936876162589677649259012998179959714671725391036399710627846661384132421040662067641232752738653359870822185544903932200673707458125018962798934095508635413653920837135686204380143470956769977727333787638423109431146831239005792459734490498833450024079002117833583630389064611108408427030207554365957132242311258333677568552019376051805901734505662906238691846740890148269329689987405815858530474321885338908294345593584512789495845793987761675230093306280920825480664784535940245927615095384777376306933253595961885874370477853538396416657797886513877358080274741250480091427794920816026252360913446227344374598116413077395002012809020201044857260181213861860766921031927101014367030898533037794928592941610090207852008053883992141239379722728839115403473989300379943234016569334777232128945134315017861536137898571746039690528118501577662860752482809511905679798563297394646135998383402564826035070349944073126301575438402334366379469481521966626338673480374028122819348831768246419514962628707630779791526088664694859510572201967873186989376364098745048368261873623819442127480220272436975215159511428990266275622544496535536999830283820202995558093977127205562738347722559010519150509692628320499341370297609034783157634440310247946353808933780606437652250954012833683577104005481879076442099805383988429234091749795087711644870718026677314207292173101568281525409182227935920637831542536381029282185234499850068609372201002267703265379690054505052486137643646266093864810968238019791942445253942745379123570188076267142993530637791446740654005724227410878770613817622413699471481396157678216172001927781000606664268977526648499530827972018838046677468395429738813264938512155908270286661639114925783694712047076552023901256146177039655701804413855217305595953005080759654321638222787752069358930207215864704774836273361503916246358272722732599261278029256535185762674541454560902682615610251538111532841574074301716191063719838769306501947041846487861633995865432250529571621068126172405610134193215361169353042245206276771168924297704985356093716223146372218208037470716869362060154240016941703412315875281207058391754197955517825555202421403655221371942076156632953172943983798644715135450256103228660329689256971647747200792963955271548405006936521878892306394382215251896909094934619073814664560973841818443808968208890853690046052440413443104385023801260479352286096175121873204242140440219566744168663680902734183313754057778276151281157009561488911588482597824975409667862392187224941744667796534522792495892770287906391446288976417495803416636102011110385292638640152919692961244775810085209935591462065600626867046794099099319293276038785557011368376067615582202209741631948694020282325537554490124537208461331182156463946741617005039046736382309979500854987358726750844908546564909237536540955666857757884077781661388847534324586568112740818751487790616547880695458580188717022543058589314198441770001320493564830952269611389504254467304596336959987110682557320885619356814451105151979369938904549048729953953166291800475266039299971711395736639624956845961623056961400878224085823855629175805131470107580911097745768849826781592984349065811490603989128699051847536295428769376795535091438255797898869258051605009849282511131020362137528470620346189056381417886186587069482299122446297488303010456158228254394778324885949234349553085416678982218164616373233049306599754501217806102301748366833941444633495487152690574828783309090718241713212036136496181653219199819674517923313052618276122104018002585915900125123434340352437768772378473619195197236338714568347029412208894262840296703789632959522625114316849971853819561206927178578292013956597134319573365274673416537323548750269953661814387452697969315771964267919592093368454480263796574186761396360808839370148504694450777565509309864702452577918895396209514127002698876394279471864018090459744479249215547129959895410561150375056491448694661121832693248803298429093520586013063350199765641529623388125157908666901468945659774128273751301457781376270513881096126190203555273529199181081451185264042658959250362354784688802012434812281672160125548113075437345387287301949090915317235995902818720220462493883609875794043337491087636233766153670038838138014095421201409492572862787160469062503557770367473036488123550197202726234729321630332878253651895289213374969246107043676953113782013071603611839204311547810951424856635130470293090291000066171942660352254478299048846466812719828566080800256582764325107945896180171112643177174075779426727612965689512841220967550351391244487842809767102427581219909594120038753189635818923762497483741938856539952762784306723903467424801337554049460961350183692976137774314024085906764240831041413042509672940674417751664548948260380572214611252090110932125343390202574661444642436891069938102924707231253711880079468533997861084892951504257603479154403981307569392781548599979527585542796966828319397028411788559144194056816746031729422677182041086466010222808886126894357401913861658140071812788668074208302350933566864344735125789709063124534200545541889177099308697257896873637742704154783062903378987427513335492118450055779027897864414296661916316083106407670835240135686197810564707315982387026699975003623330059811171238074829268644416896012909912213056742084960334479453962019798880725035210277500599242047537943891799679372632915377543399866627110172582893406945015975695740165425489676092416565234560776130604849631538536332246495964144123117753007779708036687555450792881494570097891758305306653592694781079546265720223074440723876994433950490248964782514473692463949666465280629133560260357134160623656792976850453668433971102861609740642108840896047552334444784422583252263642375611782068102062350655019005069181265829592595527385478172616150039059989974160284603496606056227404740013115370377342131960610859227444585469603990898721430588100629798808086922342936898825730474199425364097543051403096342420007152557884250260613588711963248233683177441811591618482787682347248773589628361595937675783395677264044404212886305294429871198092275887898222241144220566551768301445821295593848717511883274945038785226740992131636160639663974070105579312357182418396323419923944425530136351677788981148273034683359145350069093133037207653018883104621623287676071080695791051352449477641865656975249446375577692257812924301631871099840348525183741417920771762213695042303623294133628177769687373801460597509823217411521179419649116187508956931812719788574497932820730532564586345343969351587182419421882253631540890190517612947343655264473027209023344574612615634826087083103679564982850146049195423757184367802039836862749071106848337909780652496887487678411369468663304345984615578193232990861596395793555707589091316855319025800072634786094855663580407918761865273548701377152739473322974018933467528943836784056002764661734590712491364033645495587866200660166488264497039061345618230842373244643369181889898158447986878075493628668081267093729308729087102028351097772966480298601881466511800569395157353859846413287334418949681800447601474657160358826429277586314959189547659648729868557846965670541540961839420628327371097912352703122128741829451150367873114083765137876770906666086594806966028292928025052951805502627237206346905260631220283348671306733552839230053171111539331914797688043009078620418695554899640089752416194274133993119753009489765750078487439804150189894230152350330445710452369184867921601061214683894288053200985350524642908106503250258495766144475738343556054713003898718238243624491381430023909551421226266064580105038396182388840069736390050925446374478745096164528531530902714203624240590979594522746819989377919352548394637313664123023822898255055219592285151761866585667171170141849621782441354597906828605484449745018353162293370674308201251228789437295640567153415801357277768637601380308265000396937346752664452047092011049601845647160551678314865162356226145684090124504180445962579276697397043251759790316602657587128122293132853002087481980587842901144567926623517242666120253596106725110966776567891506758733589297214374463119865147037272742033193177510114990774005196796145862532946412792733144148616440234534864604075556772428202414297171857229768022490579353880929502803898613708091847218177359723201096692350064127139909061552636910210598855851318480702633524614924389152920803193722691682638978497116919573348315659811744812564489221223567253262081874022903146542822050999746887846909978702599665420019950513927642276063901238246454765216632763018719752322013735997844499445065231756110659306087413486059248994938549836960107500349715880564104814781461804444343919756696879079212646038806294305821208201860847194898904330228881788452303969386354792058696951427737317977403230386346261790570591535526141017911749781369138146693756192364840689552882189863141980008976665056067112439861130592399532115824738938440974968769610275636934503980573076950359163464253592961614068284868114688611103529036271571260791258340877457598914627595274539348080821170917852159177731953311519005048163457415455691965717397619209114362130481231798275695023320280215589404156424178202118393938570015968184156329876040152333569098752771020200971755691193229517539243596969436597144611590491616573607865709236977728460980525410585757670944453910815900277147218818182032792348516835618440440150505465562797294398179524052998153103498163507068255505764033664169111076844790980363710086191919241771512008072780115001127942080641596277647447796573740635142964787613209747021378055831844741859642555719507790577317594681976989908536516850780448034537860648184697944970185155218922041243967274369272802554095439711623769485347824258901954056263857528331194363181128246417237367501290385268529633474271285922002312791924515621798100540395858608674346141171583644525282254447406645935283528055192142320043173574772138469159702353903368524536217578048966026627102313691707657178602789942159096132604147387770518010803699791675401085927466266594978052882556299406210628393139124349708576728524139720181300520902945030172963486212523274572055129142590311250148485451024897539006713777806724731408282733543567652961140707643790732276562727559485358164034598156593975761932507646266691959292491805327007512453525461395520591305388001813289485538107928252226979894942017715735522967508925576523843712500774773749500473471023092939688542307469417971160946652859263612230066050159639190919006435284554793084934258928367426157929808374542414640628445597930057592392917704623761676033402042671214813951417638137170229751662784313176872268805349295086399920147048329922424349880811122560544209761742271370249181130701283649614785003237161173979120356806400243683956277306507611018546494417928271525874149001063997431557269930673489312031800340549807076841525115211747773248142978945445047610457391389426758966817317288352747306206288721835805950313786710122508380797719675595809649635108550143169910423224855912362682787746574032906328472564930705152738989826421354305024086874581457110230029653049942478405401008296109547897622393919732059960382676249148388344113530499283925493787420949670456925930215601030736719223657144575737114861321620912017261903219948394891838879846283037700362237935812151093330072539997353053537385152244281749338607289415821792400477623541412030874754046571398331794690944095019555549125307608561802186480118032560079387119964884804978367663649222088854976880419569667585596881719250170808791745802324638051227159299358279270989975330854204487558382048212131325013930046175644186482810244018595885607228166163164496837704147387479412253594697602833153086697917700743932661131137131832323421515567834286836440425561453798751936661901469777564490041230609785569310248730045327292787486325695204125847251422554136319132689801869858017129914993362768518485225730994031436150723943037813881732820698364033842372984921556420547657145883357288207994953737431436211316310890728345585695529669995496375256734440524846951885780938734952932628672446914204597493356794056027470356332003801087724572806707894922334792498179160734794221365596716230223584054908021780997229311654201195844564611335142367119992344936167036962345247065383972967404961567428297033712754673431864797781998407525097785487139554700309979062928088055743653078857360371243176882418137641422810839689703115216552247790689741563025185860017286252919530911134873783683503222470062511595486238210780591335229748108166672466456353464509235435087493192294706924397335749833895126475352125664466487712182921272306215306949061595447551189951412342199867690759360089599577077739332740438228055039618222360075585490039170016825373653825243267187884493714965098656228807749602363925198598795789979649866967294457785869223799670091724500844648412137336636139159304093717807088522181588339751483933752871542722612662418984177979247243930571628423345028123207989684347318637419789023122471775345245698697445674317349785436977870352091803079546644085923608377787020628443126149703089734282884545936002998566399077292746839804045327867317740138046589283659500424498506946462276735793912099202217243513840165294384592681893196543782838441541025381499338515771169002713193800729394689715550947994076428863378688797073800750062855181604996697596007818364074866203124701554533356293038230202364159868122744849690704140247161798319932711523415253713632349578600377668433627799998099746704099398103956855179399069152990040949607499678076995670741832270365293499898502341364501666551121755917797368976223795028792984289271684307883456161301282877182872003025397660096728812754803696315061997228628007026001991004749172498829928437910930664147020270115249409488719150976576251661245864207459245044114639477711193646794947359320293661628223549321515301592061279957297482860212756438760556163953861101920763048169986623041824534645250613253299370474770638171433255190605056482913249423719970883033396135924444506413124266262080868470741143970265354001193192826897718165470783129410606223832191472153492775659000418875007221982762692668383569500515402991523419246555052883853021299918025859989270738298896999796422935955490617011017454898781357139700288182619728338494911690389797814815515255017330251006461263581196044623035541348984910223277153781534981267112204990842584117923840013264764454758444657142408136830415182884685684040630122432152897986377799873042505437172494267396212552146983902380667418256217209010040068310215242116710829710206300762011818227382178842506597786983885601375344184422020793169204767017963905928366466087310663398147985148868568829439140336286071442596022474659704380921887823135062191229957263583996573118594090714761589961301683792595946360016792713974239861157715227101454823034673963809770079908319357771660452971298480537135663511923914565121411532566266918992712072782930027747810423528878357634553639628047276047914161384437392840521922431805818230092017166401133119776618850481680705673829648360851893180071165390510707066590207755841937501652003686441073649645256493379660462323369636383465357017450390732887704899856372803627946772262226959077506169226116994363909704546039185439532781760418464785071789704477294065791485429893469613039974361116482738536551352605478316021781787931901980840131019679917487100766883699768583484978827753982905214101839875726106393388597041193240469160332434842778562742266072473715415140219186846374978886935707728812024884971180153852844621211805574966686914843413859095975302436741863476023735003180549788861290379960631210731405264046721978532020574124884948466356784505229198312000519057214441407717895041763721956847721094626880032806859847109993663955105008613595542541868859961236332094896712241528749480008884458791106977795655582058177795153597798165877477985187389637972982952229995424627129468182591828352829808451785030861984918042586255295117612914563918295232276095170409279255598012495698046259544083346997031496553947627257740828874810335249938120234921136981748262735094882559265811501360025787503685766493832236087701154763889234480651259727996425121558970681829321678854812359232909003210654751169943700973266581959022408093021598881846813678199493239160631436096401142511195766878515259402098811263560651677836922328754273917096540362210969455394999914829079870549614118469795108431894280372202069281684450993240785859579517614349722870942639193127604138679882612442664780467299155950402650092885423573832541909562739913615199685334137954884365073250225797170838621031398342826082420912280956615896601614488247199035750096794161365997868317257346423897019448086860041111919107162385095878228505699950052707503214670318191198409553732155771833942364639500035139021415457496384826631487083035625192650461638296349652664038684444040086371369168557898844767983525974997543902793186883251416580731600553754817085598577271969760890519941676852712365246655247565022357856803505937662130709723944986526306213642141742473840346135816568429201435461720813745922637756768909261305556135580493562616241909569220613708867539304023162870137801459055345525088241536814664801898421087649268177019812945384096160133635127656374915007354636028578991290546587669815923561084364481582503252664040316240692113859139561399276029681895266275954614567716118200104043253579768178877234485949131434810177877179079803079649773165192045847894248343336355597050305440648902382691266650777104929932953472011527556485278125918143382905619375890622719576958383977926667520576687389666005032923568463889710324340602499209734505035062840110823484271375055552158546546474790723477575838798006662219017691976046671645570639349099893976002178727338824124094136581520628458412338163744078803203231176524334629999058219772356752665085285114291950337492844843249868838930728191273416603494756318762685444963656188684827039832794458371450190762437295896201525881546571151109148187213871821924983385106828149904541557795171642212733738353005526453683481746002762143687390682229510934496318317256337821539134258366842364170030827319497853671744899104972644468579151923220611432259360727281458020872134426558060525854862482868884526804701726769069988867784930424268001836243535072846265506854190417693978895724877308794610909198304959510251914520497160610946834001660671616806120146232489702610480132021448898692917248745546292261385133250368445731741896700511600100283171234665088211600368683128157034110666422265655188427417643126235820337455203510035682721714316294466491814095359589286336568140492353247433366002162604919823065412154856670837892478121111733399433198053402418721857086346872568364115794554426563319673783980242829139318917742829526300182627056943240951485384356536643091472354376860207141935573517388142508644848105488498718861929805108850093308742747081732481830462564645333410795927066164437807835039047123636814634295466073229252514850258063609074280336339911752111117086169221170951329941581541227626849790002747446970396163193584594644101105103718001492809484340598664482702671325175402028247026975049796231403736462001754404367108931779362189520595690137321084062701368403144950289943054661356758791061306904796865888821905931374481440782324705280944401195993795080996712757835256196884906289636221804685342729895494342124637396321866300995504121011772176912005723973188638094193168166627470641346810450439858906329515382597929679021161529876600339316679515855991408877791876233255197377164210579746349045894835133063838739022646809077721525557324719104530284293364652162699493373035124026482806487409695859370686077484126828022552425352432468013799415228788134219619273168338357826538048399129308155340352528551518602295402253974671995319641924433070180974603003326263205808408333839225748044488339058560747664622154965267192869402849051447391028136826998666934653726888444067472518508423739178592477801541780165936586722138768147732632485223703827915460456970611554356853574967450974849247850197534292429745432242877507249799371180144793241387738689314025509215009539968545062157221286716164426880008076591247503358770043686197507030432268336708326209171434840995899496596457759445637018544183058796831415780745682891979337038459640380423286477027216707294636905836359510195035604003429100187904277187985830734064256506545962764561685571553997845248320053914591228979181600469458311102859012781615217055921609178002526644137332216211448686526425952708541068037944879216138046315554341516086717795452749440712624246099660100044863782482361341699169150696616937416955917805178859805094147604298430180617371694069657946136421527992794322011601575935242768033831424977137835729507639025663156064407925172093527876435731323489600176749603944793972991554048315377557297535657542619685436134107197035285462767554446987476769152257079844193926593746435071818752683598176550978122939283371208420572397405424237115110729464444836724503113415112043568338182069066575592345669268630186749524282372233626929045514394071814194681658048900102019528367896199941274085174235650534121111969033707585167797465801668479499164071640115680394702185228846536575077100867833559206525615909813737599982534027476160528999105307875296012676139721791222352873090571104533759383664667139887648952237586360479656442056912684709125623834861503119445789587469050644961699355945106403655563258733687728209099952415444243011633691190165691482803610674289038503634787145172271393228290819422032298989709132090161404128303286919041949246586055317908323676924029850037088144822400338146142724840542907555966579477799002717831593375335375346400959441242166553300697395183450006830045056535864571905642947990828244176161506431007107491304948273082451658785008967963011942061156035045230399430993261617267963461661020041537254297027478823085421461292425183893820755220373225180294733434529030699963166060847059615026843261562457296721810156935801287856929783128464496465301259637675568978754195220737058482487869916266350062980516662117800574345440363895748234442612944195893885033544695205712329898790696540853708021017095651835451571702438490653943670263211608531886827436658865271143531419506489802549920508610723073576213672840861403934191325965308173541283174319112380885195789039648345375276797379739818175795025552896176149405676778632970303434992551089118501601444581463407220422372666502327968193525790928272772894982095817704805729920030269678596592432022443327879621495557203770249245057218568720105034992274128120526519617504293357211690528445642759826755280690027513079471221160166346642355220547423973163166907977806951826325029662833313026872831667205459357274373396865560470270331856335326820765032601857557173060423601643281069470397691543799986457669116090412540711414621069995065445334508939604666558880116502567865548625070722974680721175145857591600488253745807571783199844840778738782994123926370323711568594391202659456520984279144417389443786890337032224667008026132803805884287045622476226291986364109535491756901572101419992770308374443711706764836478714693109813752467944488046643936468447404757143728886513202589795674791663401912579054922075537839817347490125307114855859076254901275386779283527913353261406502401515369940477606979579963181780553357149407110812027327911876690653812268713206068339311418415807838038301750221445122676164629939984385686589906863180860458470880701979352909397626879112427365002165865152172060343119554612803812541395056946425147480111568008350321738318623038724042359898202055852166919802831786698157955669724622494988051237743991393823909459477969826274860699734801557385764681239931872424466789986028022618429208729771992357629438343804243582298016842907573980799039092909508340980158171712407459712572651986507680146550957835732985952518281664715170583949527634034562346600710643645455935236796354141510983669818645758817180759512531781785057398255079447981812113961301130342603344542581139978990197143507414822176263425064550169146792543554021941934851335148723411830090598213768141427717250120919828698054938512065836745240660552623180555160852708105173638041940445379409115125838320368441468771928264168779923476787925229983038098683800102304798117824944033966086683382139096420203979525497272413003145047135526433338988509480511801735503409634571693610284326668068913912572583292321544190608396975564321032955240115392736829907957512997175306352098217416141947112152218408340757570343954431776422566796189855067476300845385410455983832836818890000420664634668776292043009049413430908655896176251352618270077350486109373740854764477419409261248562352934766263355433803420840365183319053611337194617220067553681969739755149156296699792274298166678034224972332397801129000226877605913933763476777629212840021821170125187773683470920504480126070312583506400266266908373499520149324108797518885128609950496866717968627113339174609488775419514026445918102940052845571709105364287499396189920631664560944173592595194449266461340483437742983096058088043751883668591168874284701831734839312444287506526284170308846019040931729160825161260376583899210408698208633423995753530933134279378657323659753825933927372266620642578519615104223491340080295857254693010068719059631807687369780962184301549573558136404239379513706214986975170046796013389542334795768041402455666402695223036002450564262194534213767775256174791712074142702292344473981831435987472738403550460369860974091162102284412356906698841109424421958861105871340119336771188271308415982927624327131949627304717239152557154815967495178928888284198918423759431845888589086463882949963144748104076285506800772832964544672070308833728707353634636263645449778658615359264904336148327789757157170159492895302198172346465165125562265102929794704371331119716324805222368188602942359377714638165638482463177608623121395729289482329533553393582541292739018412403574563570614982689471692566880861345776157682048266568364699225870963948099464546811176225907141983781744014958549690883614526640247981383917418048986934251551095286431437808766087637644919447120875016269017322953629241713038002889933009896782917336214169812364623095195994516604560458134177767695450957428062517681422561309462486173135108992482563789273090349305227287358533072226209949073575806158240996025272500080420155335510494744645929703509872900385054772701568843782219805331705429868525701930722254874757459087029059600293583213176036865006675661798557019426473439623172911632695983864446937012318112514597948646977003972721475883504646469379741157638181156162981716127351018310058728000777927746400068384861661057550805680165653605719124016477082219802181703810996828646128396699687897278529165902765279136177781974907737711606174660280617001278491331050514496367181636766580660348131642737832591746114960015460336995914180697086572567836315426660552313506128303851403566207490755064189001311905278562343210826326373928175108216231035641465798028035240775243847268867438808684416139455209800265852475902980276794330248605754876212174160932621155482620017470876597767584548516741766194446939698729696391559763710753041070080051616356714439841008155432680736979659650012759653405946416636355861899828578155518297255127508661521751052614353624738230607577498612785930572676509507289051455748515233908117562534517037685966995162539636388969939502801992470989723306066322327592781639056313185809406477428328128370340663364261225531277867810827322517475746757157043974236526219490435670206990585646172546588227664196577902024316641768178731790821444434269756018956420222250840279581288216587970263931625464252031436414095256018894798327584613056967824464226851581045047274224760810271612074460109333352661867337033022468286975982587647705986586358397183249687484036690657730406110814947875481905081538763158652301237385866202351432100260893455291290751459750664725026327648160209435834960162242384319799727492104491814672208845108605784290014571326347308796794417403077412260950282774769189440628241098366226024924718306477832606538704710288121246042872160650655203078939307648987343638546015418344236660777650965607274217015053790716516513479481685415032032104213003619348124712432465422984622352625617876752575225310322999919544666810163922723070187530333150067189602966993243190334283496099575203895556296543855890668667102171311803063449400656190338652289928324340791497805614341101329473150778604040683381913818207451914353031281594010118540050639208705258344795781959287261668636062325809790503104644186285651391838828659959525077350344591783860925715926844420883731906988518923564820412670559700000406278853091920897220115001988641395073248437972373986297589435657396697883766465262750717712227160381535023952147277236026306138699775757305181851409794714930953420149008200422098948432019097888145180002866271525578295135195345454612819640116451754574536627595832383584707308265972243527315183998139588599699898187620413017542113238606722573483713709460286119989742884269354860192483796322367942412245890653490719963437236691109098538903910877946322372259783194941312965671303437402876473976462578585248695797568000769287009117368313031279843147877631039381896627554564389181592243145841725576476785960727037209941159018233482221366072047479641144025402715757776980140344395318026091574908652609349727168218389073611519713394172501561196393531436466305955394936623602194276904026022039017504845270416994103616199708136949301854859837215619487757536694953891333858062339833341778430718217833934581438404477454076078572150077921770551325595248907774936042658053361398876143874871152121149339687370677702802290342478829562536698007290342800966994287976421393804055425283880017576172864915132054560464603967968579322042349569200734323294670239312030647931862291925803649883264283985034689086303973460460936976662195263194067679492731682952061592368444353570026284764198860640122125321481911361837416282124913212828285873772684374999776851069948036620452251569839220841369025834315230832895162205571986725676921344167694664693018186235623378046545714401670421608931153533055439978543126211341916471565561033467022399845947389363184718271012820596189335269985538436362723594424273655867076258436858027939067691374226115584949584626553767729282049816601531340930993819941538946431147815987217432733976253385871137111900726181530000020340902295375642900562662203058161985361913911080457002707569013015717339639984884720217376120010798727225159054105530709402485576545010145240300411094497570491076087112782585807506598234482637577111788688031248442371934851219540278954895315696954444552516188847177467683465090476011990735567316829361204649815967002613977927391383400850602844153311696753117815356075233849573930432507851849625798507147426545774743954519904716436336391785607285877748592233591842636321360827068544925474134994865334024804460679719559545927004130889860675394722658122951893415779994342154263509403779955389816580307046322348060220301425123081261481700731374326397784034317772096239777113848654627305838030668952324812954263378368338066843051390742913027980798539837021773703600543691076874157801143682679384571146313652772011833426542406100946431004109149622410442207900365109316993657395661957115264421098352335422212091229391846554846854538652279071649402417144427987543887278231494122505376978103010856970241623941487421520478340002214585551247212688364614675723124888147380386678413326651427049211051825321936164958287104953852239762583443107376030980260425321188709062214522775448988354653398196978472390790515490316414544738279663587066481384828875551571029457609203682736094314024395495040926755645172607085462202638403899845328529470634958027904568940026561597565611013195261432327033025487335000513439633539457880436085655066675814365645058052329151129201954944662540196176649153691162434756670035728676212077563927094759972254842757514551057148408159679149748547922032402031339463650538903347973817909581996985580856153021414313054966547128800264623446481909393201272479502616621527333677856133716718817553537794620040435980874400416754891632221538774740144564029868414772572772733568678393566576405517467955027564025070914951510967178089630842274347182157726381318156055458102156127561807365185988330035800013904290058103332780032239055113811169200409380490213391455131675546406632654152859654304096965983550678370211548828845490116685391391321878938332480005650112979222809583760150268319450016642343355782861802389206204507805797991609924833550198189203224848934396025595016336772268111826649113297428928125629724664513010376301484062058554784265150562179386140805089368132835522394883755139076540814082150243118864098301620503981110029452096614031192395664297924342844089713419398631780169135489388699552157909031894526456283041006680183404094629853788177997710589083883130957419291347432088304320658735791558112636547845304123848693010233194335896666027122836277007718966934401296975504364611057298347567454624507363936983883292211629996301512125749032838540173460010188612244559498187713048559463622127993477760472765881866080072094299308500089080424422508661472854644177097763506055359021721391445338165831281954243188809511783744559114861752037751308787882766904829630826056556040503122935914891970334589485839891818715712480039574823079183404422218247047687412024020437082920315301073000873727147999711361105935926862235010851631246768038843827760118877572288939832558038890049284622551640704611567718250570515424401505101892080657541627580853536838508404434733329295943664973747756391060852208910517759349095283871337257647376121954936326118579904492779639240161837764993010331429905794503339912380317860585888352583166019410481644887794759602042015335936242603016823314227038287988846695555621443179467386800294591901008879077858202430507319586388495566643792850801594689779583937183528651429940905155067460790577676774623715377477288447259542870831303352205768855267053889065063844979076430478516476347793580367931207457509310670703838521800975348533115047948757283203759743005654828564959104505423331776814781821329807896002874191629215799304972825855248895095401426947248210517131685611975794824701773032287877759223652275395775316272731209523595904015368493009556004237266750047562530218688734179421747365968236606236423442995218578299355116057063218421522916030703503597880591067546013510311499590351200636930873543955145691727757264759634911300816875697193703789556718356413649506563988739868581997336888443439751622505950663227906355232383199502804886994417454474326275400844098700531263814523735183216582719482795799266618683448088284303806707217455108601579849643227736287822932526584085306671877748499058361195039315327918642661792470311979840664406020584702548807718618727957816184215293641944952133034934947947962478209328210337863251224427455697543746642897845023861350181756431094711763469576272265065781206752213305110783926113528671711574968274256378081823817344590883087696570106453570141314656890712164511768977490978063389764977855770797228405970594804188678149523243306249351685870923963002360744451558940320985481981693873352894666677096396965987283776635407816968214986729013638266211961490040218821673127080123496936911298462456714094474615620020137163219256198038026160286301681046096816792287946839320750814228846611645770460336430408533348654727516594015569052420731942363247396088859545635453374921159469190148982457964815748643688429006086701083081333678099746753649537334802576061697582092103701607909126088326139050144703558700700866481353211477844270071748147762141103277969949531056474095669804097038945124920586271889442072166446255658747718093508061741150679389171012135023362406795083681298508245286821115765293618255039363129090077725780163400285715164937440856486971680811889389946796177504601143161652132652694275661053766987121427097548879255650155871815814163242612195079373429300368684858926005740331860403409189246134454789064269342205912210752077443347436896673122274971627902983426549929935088419018945963230368100507884542383212676286634069130945325466440249841714253668689510268796877937291353652967943343047788165369852125298146258547345860358483389095020894196803792896719718210287705809541699534692284576519321377427137260980268767212950873279266931829505344210460763702764718116224258824604187422168382553394977029446382938679088132900503998949884778323374940710581528844450688889843962292256614253669152249105311186305143236846246213752896396078816582536694091070957489215948028602825506761252817298171889708061660166341435967652745796162405780434425595501073289924845494750395393489175273079810477924890248359667948967116830371629645397419081987076597194748507335358924286478219696342050738492816727274865617043556815640307997984425287482071542758868770565234231352417855131918311622198707440750767699148194662474397589482994974014434732231920472323147487072688996753694201054025696663520771422538418459400289173940809253176955554757979030899953851090981594200205692979234138547965845232952737915568195357724197076103491519598766789947924677570557861774549869302025869896658143442372899650471138223655173045237341778539564947095695932622709755905417526693275448101730983403396971671364025980706950015351849159743051289005397611914548007812411436556066305614278948862479329888590129870214347554034577969181685361006466273681288079992223662433456642426577459567707802765209845917978747925150027654938969769391506933868085954519218989341362561441537933361358159226126184734564772469242177524087192716109846851441226928570042399728550838660480664711297355062936241014604677754625026144733287004800840846825571295312536731815109893543524057944764207463008767777126708169844171722750320435209754436782799460381796671467452610984058957996199505950762072753320402327709954396741538094638695528099468140168427179664965921159029889416049208969692976450094826444819431230191807050806338807428203326915592356776727385287062630647924562633005961393640941872098102413143253806128544990094639265079075972281933255853888342767548189241290865888782317592227642772571669975533556959610904020742765057585430412583433505228583601861232272312756915518894285648577989409381505531568752186293871963109970511904484162128790256086435716101268068315995995863186871561177344079049092235107711017396881231466076573573050501069789650553531120703748424540953272236243108833938945541206887891676606835850380285013362968017681388882909350686562774080926213381914417668082954437697857192954140474299983550430845800208739911088457262329220959112839698724854705440290650272026702645124029197946486979165803802927130262406010529969188534202972243454801349451235032624584115242372145355687285037321124040412439292825122669094972447604995043072939008438240864598631648616856239407872736925745860701870382950278120748097996774610816684814854670353554131509846307049814229097580853284700008963801660505252210062298767140065760373568706245591897004147148573258565068450970753513474310491829138465388053220174969643249405141661523135315831575376254143708087934921174978514170607799335793259469062170977822480702214603757356545102018240769141231759265644033950840734248458743170751963574392427892992832889343071106806427723717460562710544247217180619057048439113889436385610307608004862246605169153316636485243346301181731619150253204024749147857188542556688939862378916562233613607663792083654131345230297736851816091856821637145097777204768115711235840749278171189380790016760261542907124245144080819121474334075792439348276377585755553368013558544515068987245682025232556455999773868601274398013144355189179573512821309713965328415758195977595958573497088897929076946971770121294414042598773804590538294126200539754381849539990716627037231704209712899032619310164285553640135460044244790170303651598269280507245837794504821747910649829189942955725844321361948307371059250236439338368318634768747010022657705290517812422027000895878295860738055199507113147979388614216969483231208894531654139628066391952467233422961891264206100156251527524400747872098530493115798990522543261711288943419849140417121466752556799619276583792155236463352799536116127960497785404837890528485991655533253217498536998421841070858528161304945005279549950721377718021107683150177783010796762663537271658360542991616231797795700484529826258743344651082278713132248246134671567936737062021902179605297289986239581164053283652130658221627859297356307308138432412873561899577342127980545564622275303409304747602886379906621867081521524558559760678878696475260984348355714377358731385380001688676081313981234963230700249566451022110402219517114213073366687440314349283386948191656327056354620128666003404556907284343743024804657998414886183017869342527411286003229666331137913944385081893603620431348639669474839093623220950594365241696386033752359872397900641521676442668144769114403280356693648238973941456860541089829210771378930796027596888129716760156152790278285803663567400356343333512779915009814340933867142503421756684834862948089376849423658076033908761884706150473427247382102814360947417790290796058425463247509396372005202254739945256014567432240223976824399729616516587595920195461325737002290919567081229713056157014642273390002643838862336958584814758452208342169684106296150805662756905693488146924397300275797520211746226364029750465020241619280609179946752769143741786382150021178533572461967580152323519653904525620768466942071992960750531306825154858191207977392767165612234785773691483638608005863208382190494138932547563835685491874031308036468313927244671741475548686716227926750259811990275165605156927115343499024832033070451287184761736196670468548144433006133826291513233196479496331279058898648466200979453443858858810551220997405945749301164248699543556295575237604418723591756192480017564069668002051940544295420200049318527041192706955579071575747958634659257015623699325675322846955243142007937693570366720966475356246168744605885402834618610928198050765873608737572210830114787813646437510652250291317554305660907169621539828717895735925990402895408725760275879518034821154395120294085146164907465867954395837366795972349554616076590063081458414989493578778630825404711230725825949260121811952411479781486406059072593689922992693874810693058752775190686439073549888322261300323101591345359399181867289702179152384327230363287798824821310957455962668880606159411360120328182979032398686734290410298739324633803737566541720080680435847730022914406061055166282251451010750272463707931705975205876165576013316317565958897113490160003505002105006435198675546351110015722823462158882997354282728396272824083301331549046820660140311127116870270683313587152538478250921714412497994865799552806672397950819757811791441157378342916894035290292907991952110440623491586774956325603922999089455842157015502907292041424307361947335397343583975805119265799595897804086032381820522208813571609790314494808047677078541235176692218284957755627372687259489796801193529957888062875438792050918335926546703589892689410245333508796746691981146429762851045391671469230262562324438687680569402400091809119540208052735662206586357419713778846055679645035263124656840321464298320294499382158582705603459334608635271102899117029771139682355800719360409947137562345116004095921091628388449106731855087202257385994863218905026670512159760488927938476193630147818956252694198472863154308415704862372589795392652049649905422338596382512137252389482223800429910668948233524685674158580774174284472370721777508327484791867697567756097998694430804742580800317600313128054715381159998079786198180123797047287443506631560127240547680338857087705220498731540635133053096281998328353059370655330523035399450230694887459687841429528492772449516849033876141089410263158433167850579964369507619518707103095779203919696638721100397524530477570667170267730436253517728129182641704436809762897174594764709793017478826004957876500929134815795059858124026638308596669207537859102689574167139625770477405790079481606832950949139910981201853769015675354501768226147129558499040845356011654404716146203225953319850720024365326995937545522084930862435132098283351941287224438667097871498066835834372947191902812047342109239342933111503665695366072382947497941088468333435218544218866975558196581524924485179836430701879460658067661867069211643870723664782146042931621184114093626524260684261483450893594765580535417632002972935382363837380874071435858754505862977559057997978408863851509646511056460504738550371926509071375529507451667395670646445348191585072856174064015240847652660362692160142748266425883530964732205422526667564680145228383701811494905183903402708843335645513628194591658553584819813632411627862637493535192500877258906582488581788100899923015657391067707948869896537964384236596242988921841660956942157717790249388936613729806696630389461829769189296151527320494961907211317382825478722473778615553385272393921029714675373616964237497194181245009960526345538643927095532253340197520473045383855830515558685966360427617320327887327842879321002325412605574055517333642288039949549351784501710959880730386955935853086770377715918994281198646560524166855354724465510046203246183201711571133851294728697003615466313068281937631614818164401042072815176056451764173190441080491073079597002915196437831651315468743748247920639425828137484115665711135484340147765919086093943409304235056210910172318329516961865987216745126343764287482741693166444998396712461407406403973673921053201568330484519043622885358165746984392009128386033250524293984780879698399608849654814578896755659026554825658657001451610604977107355987315749156235233600138810048313109069098802896820088228144813127836578553992179847552171698003378390923921221713827455620346877877883042053803626729336895122041634957740493762967414417248072010007511066013339976811307612985107094323482572139164935107608386620749594906765639147700279433844253733239032922439141190083619043204785890024572188647665260470624577321446266599692321649728709068205644124570781852792307876495236072536235107413314529903176786375232930606968083327722171687507190206295311028929408484826019439975809291815737872859247859964496299057695867752055383242081811530221867684832568520479990590914130519847027470044963334900275823476818809896220071251890958719669709519198632857910812305828819105855052780178524648007881647801275470124433265286403343514361381750457772704058661129657344614458012867597756417187431682559944129761282053288603131238381586186460961258221727470509625304798731429176511048167585633247115502828025059847056434320841928491699940504042468370910110146866595362257647123060002023639892619998492999386537400176452038243614274079115506772619022311884823862033368636676934842008251327213944835383434096682201202724832823760987657002083662916712240418049531453331572885816446446493887851715726019459436577453343425391253627750769152158387377236654476686508318669000200487392966816761156882616941063735990377182725358696537426583648897602376471135132800802446568600764503027361298655406245213797327763674520015904151540301241541127403613225254948011833673120708902890742467562773481132547677723207265077301747811174599209841086165050634841030532450038120347656574002285055174793431824033718733605000814540913811819560399083476525027533495098132056981306822412946637790682194854893126201396009374851056940051399017364769790944113494658532783496646644405501051142452270079660213413179497558223660886252545588214426611750883892852321539669902072932146349246694047917832899819813044276924692663311950472866066544846053331329813833465147716403390518009484871293128659117516869858589120155319306313904187110006396946669843780053758451592551251766244372242833757219216341887046395608489613568966531276631652346367777012188381935946554562670596167237794308786470766070851559553019365880920185007538730716605249976995934007639385806925402328976185327674818034761765664061699591887298875216552421838823282223231431282768060196089312238330591070435090696047935397877736246203771606463147580267270837979274560462296261726234688412418913765213717043058193763116741131080191971763599215554519395623262708264954538909614587157333899277137374692305159425639880385918434457569716744487527732164952741675809032282429340096165239219475526906488979187294004291577226476800599459656061349776862651957017308137489497261530027383598954768646446481217286153925952801440093387962282304949088044999405634347662558138692312985424956759835913933784121505143159136362608370772569683081998741103526861785472804097054361762733960867387486534887621138752187837420975889713305942638024136360211103782418935923525328697393469013490662966124788499340404518464230880273292809525225019488320397798295844511000915200085318766535591602677552957330099574991467045946155492665581464493543327274833951687847435946080498617914008892135567114379333459788074157561670009808268539495137043129325641437843788288066625238660414710747536013280710875004695171593202431056497054436291888159214890543740025755189239694432086912475143237549595250612004713923052916786247245847232900855545617018510895725986767162385709477344846140489744981526642174848885048328582653593790850471335066354621962083839766283712405229212959922283086736441700091728233768429240127338376295337171317694606478581362113998789534149539433308711990349900422648782442169562611630191030226894566116666787663788270698083423266897295838037379517828826897472546240900995447896120210068311979479770457349226361230631035272221225733468344163573929513689673168555297307507030622513214575536248994037923691740859605009560431829473816673686698257377033727305608347057213482382262649154046617465361260204215868125970978319790181583571738347309339547816778349669727019615452668725713826737963405232023308390021997978690229334712243026430254487310911336474010588668659512988704780380001494252616279049054682084699482451322330017010486396356204548389301971950272695559716543557763385903855690181777386484758790586516842161871884062514668789480126166890438222628126029385671750289649215530854160130642997090672309108067135707442753352231465218911964473133212254282084043110797885769278067840220167732440382357476824580737684642099023936931040696362697884525611539047204750817827198278513348380006665755523385735968004915586462667528223231984666774917384519489174176022608555029138041316600395197732730690296554654801180818328301821364821035107187214057130599719708265942659552438781691009726422680764027899727772226240448000421377253413316858521551865170787152464062466595530254566835619117669199547524180297126337130709307979236493159492405805416573137152770831824205839982520228179109336056229900209227010870411208244381966726177543736100898075078912544933621458715788782069888076621654062023779831032956402614384540397094553402434207587168000292063679170961412620169308866478809595912009019575194037061100131339889230801640983178482826053837403366185597143494864564671099736624881642713209564510866758634919401914848257722903187709948406165714017822005266105250227699572893329391382988384320322261345087894480263551721929232095408669171683975796969042443131621568550005780651307444669988532507440612221602203701343993864241318862580963866121748368436927643669718081438397190028883315800006478598808225706782539771955649808254257451619500397842325298885029660073296957884994773389562821137133725725737709023284397088506968788852380804358899026013899227453093718846396980212636125868465220601370918437657321995256234561876211485846226809459652807690383689979106392276384535354318023419909458490801465887360552647022878315217033414341854661792645478744838144036570758760652438892328540687143827929840527942575156514126278795875425154627333406375878092028562428611998566366895373339369045739874545507331054594226954046584088006075244466636199206409321581779925418549181471096667226696056387258222076845670609296369118425508371465643805550261729940858094714382278898326094449451229649757105572939970461560057677958741972683344794957874476238416708270664042607489314589161273947894447411521034000791027771591532078723933491140993490923336150888512606945002504829355410669838118814599199868996521852035965711417926682619360202405727002272663245149393785464606230729075841997220787242597717103159778255646624574647559214773904321084535905481657563109852358521098065796068851256889613060554866568980319094343522006008756717948941005083592636832740326327410786788746424185861029778424379238791868925294947358781184196384250711164775463999275688955667434482082705552902630883535075686222844159876375707857096250493778360097624396567089479655786826433614391892184559087650079945891649910142988046023208208442045886009330295566533499103740201668029160440481860920499356577069697581233882133935172886247113728251476487457458724346990351976246396960638648997477034375687796448507956793569754825817650094705708848759450323040918749656137230682341708852629089921467906576812350324762821396973937383382701973862053112709230264405913892804325464769080034520864046033654366866418790573676817359464000695781404208383233851580093932423271026985728022443335658514169630534437081413833448342649374579407730369504045693858131221266692685241575981532432266550813210187865271406854029517899978695993563910923609760798686476598078173846105360274085659140941518841824624383782618765955907240895371358256702864510948337978744922720919561607521246699862225255147558031194052255337787280651155570606041411839761590319226077141328711001134153753872199232500809967417978244922977566966761543715741625556307726399411146291129713568815025694994126102323013019681275094280136632487164469111948406186076933831629053875718844311557478551388649698466872711069042919249998180318920638411275740534298212125556535056269544613736912574269241697169649731779589814080371298843852500376380150075110489135923229664714651211657314751586954281246609197298857819986393745394666230817507232624344384082111160742375020646495790034952208346458393988651142058637694443461811174840254439269492609136333738178575194288870049964644805131868625405202171846418946287537126730190270423216951513356870667506172089914690604607369237428303455893311142343437597988636078835965684443975947982750349150436983521183293894556754396010412607954704149150501223252195397539296926678892628692989786041899400667777259704014885065210247829528553467463249175786233265164448148646991338762864370330981633972647781818597257231590196447833177660006445868496867850313536559971884889813583024589366590193839140597343757256071878851794696919133965874336256577001889756069713845171374220942047582953059775943329961922899644029251513937010878395108346869058850721670778360148621162594036854585794731564470092753359666761678648800606158047608397405440538569477386273161432022286989973945989667486571662432966151306238113734469317007634603652174113836335007409615727835544960515383030422093174150571810862534854315148085693623002214984663718477474083961955008361705344976263729033632102862153635098643951617124569119077330965694575418734664014068716009056233962031826647772816259219450262708496839309753979547018586271619520689835915836719116012413492039193789907341752271032703569954847917504848815600757555113787580313815109600152926667391307238060791673630638613856663326193412843025359419507041146701933427613589150625274217783420763285781627706584308827750633051409976005168189338414827846467951479795229266101294173052698825309835858854440583348186760905237019498257411551439692472969596349337121825168270498393964311139614852875378890090601240398275252379579018867854789166811279041948642477813420709760130956945104563274283856690418376756925479323674243422690341806260958376399826283616533287661784683589780440518730345879075981260702209096232913241504821989086023224662096323676906883952156021190469279408684349862036047241867474263037501744336730426354670758489890398425560381303564348775885829544761786499208223148641916760120091391798348836622944093164000741538277722588842557233746061976164217426896221080226010322746695886239582056704536665845775133156013568412984238086589763923325565143854550777318049428808992823427956088135571578759582853731811209556155367910453388407855658024758253643196219748414999978523188810158218183641815198661593206181932570465511353836509570565192642078736885184477556295949688014577753880581679323314898298323464709190221722390354676542134573446588630824199935429969616697430109498542354276007640066205181479472615324241719542078829782091254582182967430653436689027919549824728690085880091226928740691861665226081444027877978494901918020042295852796681385704650444971054511655619220224705623357915693103475325299817380280571366466021757115210393995149352367694698085840935757227682370650685240080937885672794829399803815540609991113036654264195052117965375763654791070317959247385432853826618436870861523542836595336227697509225674709087172130963528437912885223324249095123936482088121564268758756883592291868311086610256119702622602073945790946445012914719022321122359622968711830451936230434786758529349120195522869421735029859241267199373793423088309513919660337940684176164729222952444003686118886765195887165507910069691227275971394801639868996413325873862390859022429454790881126966051495402638800942433290443827739948630579142342607420179806032215500084619473421297357540401218520180920047943017577894948817117014085738899967490500084002840759872620985464935987695342848910838804423053882385447806765217257912789301145014253780189524421615750979684110999070597598785072358737978576351902171212715432293201771928144576773693042938328640076049245076426999414412571659465862054393312982082386167646727168519813653132411679831304620669161617315547154171416716931970965824452448541012185643075031593173703802842388486880507104372090728427058390216070746392746832714861014701991187505661599353850271772625668210951991514057701577031218440256350556347347906559921975843864747154543240158584746030811916525338279149588304020280002270262307067703929834364479735582228431960134545451811404396247473840889721875825749496353890448366605090250210112204180083673241338859368636179882841279828701889383663780537154938226963438450692434794516294362773181754943395754661790626561045060631574243609384089427699266116197536859239094343410788969298701840984242819519206944632585241844545016154916260016118664992510589996469237467894949885320139447876749066203823014171457578816545961040813446037045104122878203515836441068134756068533102807306231405788223426537778165446754519508688716135009286017491096657617329735436436050588560238816940779997852697564849340868191735308865886500002992407762286508837047762189698030573186993860652050636860895015136823784347300576621453259479724833169569245610036053272971227920439632735843957675578168560282910345574994846137072738753656781998713146655912764766981576006299643916844257132688240327260861696854814393239936496877762738430559963628955577583669815694757062230120833914785538342130856514559245208897021715192488553862094248689568623564530404673379702036426754125065098126377395617587086239110282883518609333108236818014728815353688306794206565277996864125254836414340548496757570771879721277581987364702308276830072950440525627020167104055746439572091945583467906583134088840328675702062360749575176970318336550958315808112031193772422024942723083996222008011416380545703151280753460442876895405374230135397392126248434687602200817873514919669989677782002297332554895951819340232625882763493218650361591847458298128644430838326658960415406842563501122956242465005161794722045119221744665019887918898677488084833492752238887377232233098303331764271819018957850208296011723787137477171987939995546518706688635149356670415195526440935140051763110045974995468732499400997887894159056426303772659728499819549866520619878300615496082511697610654609421164773092796341424389151411779595139651816701134140422537149410072602158180807410241430184443928831358866730920709000808011911700827418283786851811391785220525070108655654690329101262381887912520466076417471740350753180285733674021833685698520206851890563324469053199369990106392302752799219500039701191897093287765238747148334988277551899980007216332395740166624668328316654255711902493842460570860429195167771449954317545325026013302737998146068432105673256423304037008574807157146727657908908606105357055442919321261650955037657671326921084966665288767882395445777356085122016026014154980628626933459147687569820265353243740393746992203922562489578817672790137665988036851581131580119450421521318125893690953636316307544466567610225934622357037744974058377116124440571586393283079596397264707703562583952691968497442620348859015354548098095760951153136898859205828692128065884494384619496965536425482280220167522837664754631450108517500659886947943353987896489339611951311197928612356564056215177995975650754395803228760735929252103523267418603146631698842556724162871042081618479460941283736017274278480457311574426664267174169137188166367255153636979799928091370386559144522877827189450833399115526282664408391023029080281522277302558888566304424826112417686025187332388819434744559222875118595843122282709432891250888235466334719609901322768780321250109859123578681104199097026206196329144394985711598188762964075222183017804849961503518569904142113419911462276244924477797933946254112106926775551812227453790803164840224756578080036751854090876036360886603482670473540542972116836453869313777798895971527313516565153147440724181724481190912385390543043783454672469338136953523236224068150127785121436378758445143641625792660070860349835624274696023501470524756909307475528432736751536204175464829035736337318736149500617895614038714899289892262452081833983363049306510560332413217245347210020214242522003060348222960599363708251407417158661891362178268638125673291177652213326394178011166518790446802465229568290073492205965400371395507977465580535986650136343751020181251789739107298543877458054473477201722027933691878351576426022594524754204585422195585746090616068381972068708372985691611887346852277445792066071046946713211238656859045601759257494963831053278366914902510401667738604515559303781309779120621225367341773253907353357656547123778595248707389597759018517916854541030070018886412926637485332731570137372070219217523507228967241867141469810490631645600919865227458832155491694931809353101179045828522151096369572087124323293879060642639537860707520862449681250264149791324335339367390356535209569308380027103665872367125148880473286210461201029344873249319879477954937117502559776637849121939305520961819375211205902504833875434048733468920429396383200801894269019409547048374665853812908519808589677629281022145144449855275572421290861626494414363820938864508142031271645561747730393827504238564881891388104138325748742086433698774025161799337147653769219733560143893089109478997585799794864382570779647429975721943498378781176368924898749057334065082838775387263777779842592256435317579125246034236737663657779764927596153893505609904416836941993916673685090583474578520707911639587695718036167663286129440128294566748055195870779574489362939352631945328902994044338828536799263133336858203584543115583441403733017124184063796803444558212832170910324156765865340039251127289090143051139628060653978069001266829131088396958911862258088938988473478101730476908435020138971250828765852321528515368445190254306388525188339139045242007243193825859036372370316946126432829141924714245546012437283874705584083343171303281810997620622939431440734486255051555061330496700245410945845925355816349513686796946015359174053946882233273942739852145216840744582044095562877803039513926970408865956284427014189209358311972456270679442592832517632061627186559239361551037207198156879262221832328470353087399593352546077427256612042023385480399750152414485224028472851030213651668491585690914677912386630625925768540010613739867899526722839788961664524939178646589804582088049934697538107396231637412476585435884214079489103832791797610788225537194350904230278583203211939596970494790709295920952716317164177320323965128329120226584199565581960794460359526968074248349159162338973675518698896403642087111209775514272073352667592378601274682619840333952135906037187878066145021973451163683934771231808138830121277618160758149105169451929660126763988908642162877294863368855388454210095659328941693870018316915693320875514537572602695178792456786529253356107679995879666186033487756069340373517404846317946848187092302306647043254237841320064649237498371842017406874995145918871189304166847910483813813559310015906499662289384714239845584859634187072603284585560969470557890113045572435171074627140221242306843715310606905893535886965740675573932435091501306059339005625997079619370440451847285964908056145772239286182661219676672117991020313272831320719604875330269211754277636696656241766679905683425646197935683229295862656423292170458287295571933804109229563376159317383787188420892396998591033339569167186331864335511843247761911674244717204344970812800929161686552778704913664924577994654010924717986852222878176268496433875895948892894037827102741200975302045871239416262487856487683896960756379693126311568462055309711259743260705652437519553563234815135989035961477833595645043747514165939401455969098663923614466650945271741623160854346080528766758251653291922840636177163911074937136587059785025355175356103040340804256220732280184632695308572244842705638191443147704700920807324969893464732799537820150837489701262732244915088658882914918391092569075997503341563902276863405390959882779537079348089015816049534818714531051196921968944766336619205776559216293044755644497249405033077623736164696857626114486143407120946933286446847340130720472136058264237602464951403461907777059078309716491373226159218121855663590637226184827942413144769938172370032538451337262671141850297334384058656185657621002647381852102341324601744994043736446712513679026605048843175414362939138834547226951320293275720142701483299884229348929429475039899469710548335732934089390903648330681789355358963577039469206302507623776442817499213554140265323991060047750380185864344608466162022108362782222716473086511707943333663458706004733828848362163855881844868732403174683493390863339820340847505248932502260114736485631955517462861995972855023765089379207509689090143847343490019965336216725480370495033632307217969184079554669131919026736432114951119857481411606069947887339044247951917573942323575641150544962670627854470752307586614371008967859201787953426902307130182846578287339909742436502045032068701632282156821649762310697160343046473743988538182750853827799926884445839810610523148371882459935808374739517658061853929528226419977716162182247260209879654949154031321456881054270220226671690615378861015714851049264167399943391998786783200409033232742955610317239950219173720531921044984530330104129392819422893228887436851444726884982110125817748838841051652731640435150159533218478697422392086806195733068250594079012067930228763222091014010832740137692968952433922366554802882024735385140901986100962286082280647309698793725868439757842594172052943303642405738428602118537629088611156546249648778069714955635147207937523092227198073703249940413279731850919554775596630537345295270142482954668936016050354328849274963970329929419017929964276716465192164981775951346022708723255747460350145093584151439084051652935922517762207631723804646189273715400213851719412217495941222963859342345233693215214759334515559988564099691579284188458645770851032401208975358611177730728369859903582104964329208116518832178428048403470085006769779649198115265024647401701419523362976312109182953539114129165699492557588209449554616110350499191934678870702176753062269079083023488334393090040320722257965079343262454676425392488394837336417114510920069444623062372091261479338661889309954548586156883770348948608708431489492264757109982899274730243641786509957999349124623603833663264628711706013473699207449602823887739424034354714350396552169788805453687476063063868778006849314833704618156583598815839458987810200823994559142130665725341187860718429768760289989611052448092216978167538978992120135689133323430827900983568571950640904318160372236321748987417730228406586366313628027885844250677692807778192263380240820346614120553582179218200253542851376660599786822779662965472709696168936708710771680918546574557365046541886589464397246662051696421672601444637661610771751413529642400423104022597526200700202100529693162732950730942044124196354375973385213084910155747584597629709770772935825540763306065966447965836233531444005665692783774594927220122243456455290764168947144517731478886548721474603345663190203262325239907226357976338924507163613352601446863225267150618636427082256807442562023000408619341271706560498312831611415794910031007309328395298105160409400351468639148455676699846887726693112135935549271011239746845485949962837053598139381789898299514904323306898157154272860300986652050125183573270063237946282139226053730198692838745301842844142771187973777784567577561524263982936152889452982904682652715343694968594779531759770719781590485779676938204637493059329905801977075092531598954569445833306973891159349249492773541289509216661058542943703604798346760988731093966018290276435268571348084341612301013919894348666321639125027493974922207462102935466663252570292812462247032763895910263010399375965698051421953939305469614538766174939529396529985778805545681126743829772223480187382719724889230388044812633646917015523944860098456222537858028190331441723379087522563387321030095442315240078360730216748147009299481131893768891156279127378985812977374670828745842097756718392086307764007537530581114031972174463092405673686126018999142188506542656536695439213393735452635778365950016857270567433440625782851702758360057358380918123188828955614677596523024988826893976280529544719063629207867182906157484845105687303568977897655176093544992035776914101772158416976743436353155437423552252295838989602035780572780588983820222274992405741335649592346154444962715048805159447949392262526178357263937521060893868841493321767663457098187515040748793449688073937323356090117937664982152173253997308814773511755243613429813491021744393279228154319511604649821389948945543974939499001108399949956673075793083970962848874536686231649449192416258166571282131054702926625261609731364065771145892623913846235714679667791619112676161377059724064107589482403394643948046479269804911936066039143264852395886387585634229206169746627708656808961003981483481817907004284506913428525710654937110337750827078719883249005650599456225297402583261785801485709991590355213186246229634049326222959283505500259223525489569382192283777680641058518523761249592776368965334001195067668342822497860273675544771399720792032653990246886241894106109994951005154947061214843189561802857608418037322861808104114792439105016646919281995955560244312159010539380215018470157611888645996064188797364819879026186020334315640770472675618285912705542214609034717058540732657708571019520671345637755711986380179963772399846191227936952812095339548979503814195614727745227419050012568975811426800861916102387910324870162987266892624066972424043312135916505197322852071159148223317162040530773609626230960851377533994367186297800578427086803636966093142597858146288531786542903682119161916444819629824662058007377226661430657385365335821966289704085454067359645237850598152728433469569095825168004820767039800980376840768166356875199834435954443214058178193881316895461439840460363633450071696604919056493388513000054713491387668169419230584078000375141821553028963854739890002593486182082275998033773683420899729507054667037787438258646313720435761822107836969466647154137438215876047110181138752246241887033400661424683424139523955302376792111614072239044266362337511632084776143014414117370359605269994252048726189186968324288736302886982855042865166999306589516236630267051997433736170296195638715503876498742049522373264110418947755737688970457862717718309399767407753942401042969055062460141718142323901559018284338627767795551880425301548197369218791011918888713024524367064823775421783202427565967283946407718447482966219685026166287103831274218034755974832898150069191483748915363683471928738745569883286561793071778806537718501046567620286888941289901119882544650104416606456065858147638474928993830851097598063010568094392651585430305088159194618273316745151496316971291052151384766771540785833979945902515712956881289680635108643303549748317200573026398864411997353017384148411162828965025251251700079226063419054306805006120028016790830881339071640686885632070222273791677654782093880422312035988038241322084817320092516613792029391726852759167641724891635493641157806806841871908728118913943799223644375412237245027174088893439235975098949435832894366614454137783885600738079382448454479903277009887994431315451108189919968572549137007115288725766716879650105994847483230365400325936037396285491805524090760430373890969008889590135181420738060816612213986466371233037632597395591767328089495439361609388073835983689423603523986787239197806224743814958974038235735607238376703823316175409295419455522266197863732201981758069240517792599729987687582643178912069971366799891602252101852813438892242572834584014104705348666381887000033312141230840651549086235645663014454003869539108023839130797182735784301516349215073071460685308504472134790544628394061959032354652554019123177406186319894976786005395653493438053300510331882758500151562562153916936743019999274787921513361780791990718525191239369276529872582035188387594526144973705114532312991785455883055673678366220072821998312056872664156967926673252449153453582032315027922404024354502470841724503546997025584429998987675195789269566320275001082136672326331222637019591590280451261659669931494863543153472378345900061176111019454374582892366819662618362533116157611099526499130296895349695313419458482368400590682776077478006000822714109302367534743286717632872195498752484579518522370988837025235746337865359045207212777929607670515075390948217052066942149249730916831848210097390895341264321948179494511373236592149023315177632828791000834021371485717542407012687010928724682975424535436630466666272775680176295041479900206159163851587442579121431657353659082202235376843110722813433970614305874337156560540198900531073237945932716274459080090637305001445696624080121668021500780679494006459145917260799768154854774781870033815342305055461714515566138453336321949532874490972531086534833869450767181606608033420511332379905193419076373667271366097312941943951187860193283140911666130607754162965779917535372614542139971646575940450125901192067767883087720163716280775106828662351604650396866101106794270809402964281856220226318681891036532698858040647340882097490423963328130174145091005076346014250356929819781289320923035889125353445450732629484750995500782675683677596805151319569019736810361854142122389859125081251397162723855609022167460894666808853626616500163326439125342762380600595995050269182810389233222686741913877865573546292885538767226733596606559281678115061420505045914978514212542049608636835750822604113778797460815144118362530749047572782359817258033919082370864701937731441510044467009639917714777334776246135204597077895165606007104341420363091822561109711161765707099319601734426139814159659554032497434573442470894502941241117377298556455283781362311707023783281874875749167058846847695407766395223856026476591282898383406403526149169431504209353688477884040276462687107481331582931524015676226976222194773085762771709133444650752940940528778756779782825266120310074208664985112758466011030447188766257680873711599957834044725364978145273095562208580105155427978848094897703547958724198776660457236338220418964911539370249180360826196976358648223223658017293562857533911644953687353939536675270659779386991609482493685886744586559255380110175500997080669905715404160876650813558619983539277319741510047413703783052837631074705792252101813433628813216078357322347992028683087450603365189486175466971197737883470634211163459204136689306101966314175343462256734485860015207023560929677886527976450649525093410481958971258422609684553766904596861199479653677793385060143208201299165716723521789185420808737209386220305552370717992279570406886282524580837980962366246571578636820899731949121373200514484778339772788630853894627060366666762450833740731733843182344660502374461654020979288117494127970371941944608074731683988706439936173250822210335075041903514965391756048392625593570198318515909163003464746743124412041888975807371037430272714714388086375435232770508038814847232757801311823600658561060090369646739762370469916467857950732311329183705875941906151815633230522940998893136585497523479861342230305603749844843313043579023299195238893770059059962858157270398452227025763351821898325896568707435758431317767096752139032401609893365219926442891659941497088534333898977948307088044280834656123661555183140810952162615783906562661300835998084971306600883260774769131810683322647653143750743542023925686518022421360556529736308207421650358421915463354181144455698987076884138285308988443303244082046087174409281917151895569198747697263658048387536891288675853006295883977600099644470443780395506770650238532818239291296494260699592849123173458561304044030040926329020411969677987999336217790293155330181653383872884337463169349770377951126829834919771673957352282281206712571547429084226560350888642325075988090742511436907793885253261255775412126631317737360478326173616764059953987939058062578330379326075872940001367698802287466927694976494421628790532123999986377336237155859023546482852713863031377091628561586397566536603775431402557508153920452094694603634733961181450858818054295523030086586517552068399089393611133737763854502338094740876822061896730643065062365988475038449589327028977166350776692018605210262716521874131147982857797125189702691398305631344869017690948589705007866501558423571958587651078244512976264112203988781349126511917182259561796078594423141727070248247353326189044366036379610030416217966936839179754675808022946841947892923277744634141440286052973627644423669024621819701057272967248732743030045948322316336769738418073316799072928342504776028295842829283600564761962910982950392260604816890479803186938336054189728083469545932729731359725277149105981907032709257916624736039064206936557197651055971281066260872430476037993940270210893479124003708687346840473900967532983286031423441873485522480801844152299178571024275702302658623440510054363385670550996608538672263816285228377557102107223330569754705449247053845699693796859446751687699614425236436122109164604269602281776818395838889254626010914150284368430416579356771189380122388383482583488961825735820944203096620369817417297850194478618619226858827419227603081128462597458277829231821401234001770878783224540372734656359887510318189745529802147706338243632717298645748693545667660028052485195712871629486560969739003525746232267966427716051450410925001119466923627639988233370682822342229114670677864723365772572658000291879802296540055179812340014097948023475180828112604995012811220690654908247878200753963306626337802683820536267508075075849312000394531351361011436402260334422371616523136503997075875426912678469868775254558221442671063045973017960870531223460465805442645136798831607204769108939773952299507529287740386517935446312655051564184176668339185538423997258080545448593464321517824124458372170646363255416829439590379186115306001361453541927116518662477493547925945229164022272745105745454210921932166414476790170678578448881113625768950591697388831423434505465235688861212070285081803145794367173372126772421790491053356083591527371883315731599070245793224232064605827766670629006281968975807759436918643262065600314452535241236643131113997818833839224757972046028572137503003245584200461552250012816444996977437274448215240459756549698531170483964734332395174276844037787954818787367177247591411177020687119030735834247029822964800030796274788302781672698622623116704527167309364608292440335499661137119624448092209794921652545735233522544715704268892038062998275584218335965642470355923623045245141974691017461483548855655286451382661714081963075361518479868101560533807911167575221487121009387786671838547471730338760321452859852474640151332742362941778601175124157158583501859410934984886852349532037460082817303403858835158995260164576045415553966407227965245129465261198779626214216818853257719683272228711339569223022719958538974047854575145470518693152343792510716489165097304914325811211639820783146035133420359324171551526886345135994972767474554132154856315613465587159568583778957350638075598909347302776004543777434822936940168753730697248826283446779015687705213452462209966343690787102313115957518216368423311493224416579997822767473654877913256760572508028329355075329323755003505889679991289562042138821470988130328145624540202940593442649833938358151618112348978854448362699475188814464456786291415552667189361440144558808542163084473986138448050474419814433923303718120525547619057822339052493438364121381263816318284687606533813996191390312788373775599211374056747926288095173597370697560963878208136044779523029330395878757337055960554960133902490914373276887590558645431490566888264019766013491864177204339159887219820556504914174710824878672535575147755501845476285067149730435211096658744831456832749894127704965044825371173789166108492004100018694104951251944905380490769428968159272684349717537900836781885215904768368279579948878555438502658950232302374826659380841738580486641031815177699516406331169420870484264391226069835671346430779972083476359360974845285853904884918954367086585778455977168237673345503579110023246727748197635595905589424555611798119558637454046312167205517110885601009639716030484638071944745610312534163392609975318369706826291658495692692596599317125117329716926182984485332642611097466057278022745090365581426719736804001261424081755035349132537388911436121977064447490524421422859951691346849507067119583026143646152359059868256071916462048060222995984417730088487816928680317133168797097805595619048963782996658427799233073234561616302349084728374289160153098740057487609213262543095859490073098228047107949434845216480080751981281199467034126953736923196556824343193122236337291000288521065654806672776358536775796612225575814551685084807276744119951870239460051128798431267533642627205903272460578258310994313960703559237527076095023213703381142234380256132989098900361288885148045268041884101527637741117311555092260041413256617437012667880273128355382439175523886883753873160716693074670530033423326604685117280854844301667955043767733296973507971819175942186829587041575749407656991389908009192857614595113516729812955828331199092297284517070303191800843030763115698435158352062414341478469815636696876999227037264548005718937210332640492338477371361071732922126869406362954772174032119671181437202935181862055275610024745983010121020523266388166498481323761253597593607371694442934705575535731356208035404992452444900770254079498555050200597838429587702830548490091969626612206311800602981699677981892454572384481406825407911624187014840985077213831260805669022540039716027421274322698258476080454980622966276887247675438358737380565492830381116952046325711896255600381966283326456862459777202632321337786924685026380161621602996413947010231634739990666457761491966079134497741843585846852209726895307127079995150044258807003839441946889237201965046511854922478340883200437063331924326232249214664384591819571237593975190576698946719353270542257161823839469010375366055180364094514503534515429753123199766802265099219082367172912862811562875564616824114052722225170373015985080167550591819979132953775757136865289034578099104481922172741225902201572015530253227646698093624567139084411958520566943108684323525165627664554863931665080880476101566418183629764217875283939168859584300412425548262837226138409410533309491758313840998605774552531305734902218500346706282607063987292727162596662229581340383197281280434951552545441235339217528295751627634257424976468489417988447898774533401049750134976076846514780190929586467857956919167134286593612581445940680991585288115967505941984295214050924863256688215086776451514686865043430019730849378153305306214463984520198168877281016842464811418297324570956446455532878896055674392671503206262026103552949249756056308938974112570021973422226404485551236484696541251080221654834786066414584759196924601446954795076424033477225456953396254744002358352994680896798251776745996111505835781840464399347563800191783272884705626551710003339060858157499055624818606311562637422911381190249658781214159098194800252871377876495123103969067651008039060132745054696058616770744437864103750912641689594215853884272101802807529898252052642555117230479602033063938256117425290120883018344090528643409208549708623096989417374742462077885999265659340281870829526454065103579437165661694179016261604446147285279094976150529389973783711173925684380446139618709976632920451268410382996032796481338862247005167451778474548444570243522964195369519813389248959479521396267042931129240788271877991249037501681797947521640986686976822287800027090653140309124130988638853648820910091813429954361973242273806444694455058364893141034645896752669460396581416681254673024355572855067090037586067504825176619345430646055103588301222827507579207799558701432364559373340076085048644616666309142068849265431179463916414343633174816541760402136595886914426448222158903371132966265755968265683156125151607032069245175132735822405134977558201648579243361828071325159324150397445758928836098941034204851147107048145630325792304112367793111757955061483521000421222783389775222175172348010377276086426136860294406707911860745490104299634656941266019574214626586953593946687625945058985344749980372809545152787227283139808321806503979829706023216941513448465021044347478960215645962983421772624547109296444699286714053532562145115353895187296220651077008155120229880655494375280142356504886426530812448900111210801578379704694841636943563203456028653948817918405433047389147926357642781011593676528631392823444382854459329278336661149659308764154856190236680552275827180928065356354479461668304394865045535522318223769240944526869732109548812648069452396540909372629958831895981685800841399560388562486672464658483631560500199812771764437506630506056160043175506384915037495402801954540183384212718434339792198797171157237203855025000501557914678735129915430895322495214533600403158675328266222642926165924357085693702894429326917845825138238805356540966514932387831130605653704626060149128154321566021425650052490731939972136729136295206712654395825359768084587343779732318145053865473924546719697259807300970698395363576190381593928938206560888084484161694341381575278970902406530537205029832757951235044714601592360239781138322780029016087370172063309468056493808844895983291494746074458687925049915183970833492303475690606545146963776678008849111847217251074191621056288225177056542667077404306201068364168741772904383197225768245803150397760259233484950312479748048421267007648124260922203543286138173690865152759571849039459612966083302935666992394028862895685836215849723403543728355238173628494103876480390830344138960512560683758768489092223439819976560430047354303114056468108531696806395824471500631809170830001041547567565080275625981344867841618810994117464036368929724900128285645022451501461127553758176099216155166531113142424202324090675424416884352024625916306834892417579415021367087068819939783630719478098405353219026248019939888494628266362731266805138454172301927265585420126841683700571569623568206637129472148070117383938453781166955525908001791139402272555398323268167392995519537889581524119368340956780073002421813686334705083830039223270560815563725444844650567346597681769823778881155686414850537774887572224299874404408969230057159151569474576071658024834735758062215700395340602635168279549234394786833078544976542622439833613153651747556875261059058833020479312232461617006616951420892590740145996678321363869057383929177669009244047746507274586085139251933766118978491923730438836741390193481970100134146707364381166084630454511520778485659846650467743946764911091243703712541547675460069798493178744613463158196175886168949697271460724665860171496366233292855232972953166745557152711861390436519749767013977083315906695534748038846302604855696063928700916233929650044755623858742752490238290002353029481754621825360971379350513007788981741198362262060940593140153597002347462503216436500645162413817796964904772967490047734563014729684823344550859175881425388659507561706499703477769256358099700187065558618793717111361012709732263891410925456385957045514264047603087411598510340592692881225725993374788176594214284302216248015394923332926234172241347422258244683428836251015450214721120975672863136657030437333880107695988599936200053383972985724217342141948348136336887304250775055025696120124289819075354393088680376526985399564432191465354511448455955967448526646762911662114956609819828465316552132414637081364707466631807070112473176785052299256290822061561323038807182646029887775587134948249794570770075943020265011467982751641087721227551868412959129007465418437808006542360788630643300310594963621361713668673359993432340328877773628390337742998790383430733205754245183970262389673627477161971547296551829818128189015322859438425859966616041687009091640324682621488089086950707959623288735838113709018241596925349840294217844064454487098926104474297520135116654637450208083223959384746474599495827499161619839304896782221379077418289403559536027040630351641307835139542608625843529844823740721381724826660453781276162838545554707618053395832413998667240790773150807688761944601369018697583820137104987453072135014899672389167813887852673239452305917402425363593869577086040896574660946814549176396166156595608076785238929207938000222250080830243836717497692371026469179178290741220896674402055223601062502754894041374747158199655387603950117173810441822277296745322236164990404035353808103883860212324687871784765848039689066400208605365616965954748099078675721699965094563698770725223828030208899496127566155771152267962005746058723119297184201292451609584740553639579035788536863113975247591792330079533139711115432101806510001827827166130719909235974002431106603210123968678830835429792086368582730774891415222485464630106376675729147915825431566770104670100432819747256420856637138547356946923436766768604011288900800880911502680638651663814904592316414767311618348249622669378988066847069052653805353451115960059658856196245631612751289801779461881726419870417469451892918708721321275090022125123487115436146943888308509219027303014891037912985958613651928354937637648690259048694537546064891021239577177707427529095578864268490673889791361496665876473361329475241449343966095384901956646302827088793638109765186528383909396160715915383292754292654225368950508203025238351669606153396733729294944736204101851815227730588403871707805802453382042596326121872722296848973024790851050917606980604210991456411494525266376362293652728870484079507385639434524912670552338618604084134940337664624824484228777445368127562470481821275940383548952969481436008422603551135829193374316069745149494669036837216337144236790431704073959473409400163121141731461244331400438528664113115086336707725059985207334633008918802343172394754764373703826597782329679594317727929917744851389532272206392205578846635654160118750880899322696522454435661997556933257304034260366984950290426528426639871045124771833634834151946664572088119661628133005564669722297604800707472263108894304824073204074374217391228251945175144156096622676525886438700968631973078375224455027056043273812475459823651964575988401476007814139169720971790454732012606015265657089436285498029064891582815919281553190280412226690674216299784976227258189666932497341645594230572941963665903066427444909450807752184939045862042566911983937513390822618138923976651474647634155326546742621419397062777680982609983022783406999456884724448247151023817794411806302287516773301867992474910471682821271701822817568016611399079139967842129662183594331369906651721686772588271995048908995056964107343701988731171487970331709158320438574057415842161357008853153677800195831129487285359229226960507492354099909224228695837393846071622616133610246887975065981079384776704267484473030179648348354514825802351458892036061858123622243895250767263241054390258807435031764638738377266671133042266317675201104112896623619375571491166290214835733681338698036502274885177907979642080136728505675251247365559414285847148374821850521843303917942293978302277914192691565109239328749450727170848055983030053488152329216740589211883770509578049339504577789681488347665982137518797872509985763187805745633104102564133712929853022287768301458997492860748153159535727986125448069980194561671509103106264116891430724555634590779758423983595036098680978096490568639762198536453265242215574343920072667876469705285269299320791454637818074623284341839157753753768814052233244544171187230916965603286618633676808940432440772317776355493474832028862643332110788189480232035883190477389957852654158289816571792712081102635402671240386197480294563837010314947248625064450329400101414106237087758692350374471975884792952718786554142757444568746724867034298440752223892692718288265281521044833949586665891267095112807343014039377015806641408958314967901255031364626047866571662123520015731217227475361817891855812654914476413052530133823335812731392268929000743483990525140784375120272060973950911619818001299214591766954167845472403068543653245045106103073823748826659141192298897577850457163507551556361308155436081966761619623441288123820411761033848609966060679345510841105829378254376005141550266916091737145912673935866608300489968205075915275719780522375734604284647749675785914944052057207241907786675347569520183752886706184091561193540674086072542123119322401694580830657946941957098527158316093359498727970981007055007670164336588019837748434139869547493701543170662773889225602122457877792134502545523668948214303557649573001619137435259364098015359491646850273971036986790529570230741535955365915809001968659867813593285800530429392915889119619300220536519715482521352753065144029574269181836982411419034683487390696713275730441561553635638905527018799044453689662349701572139183390453624273340619458956292109863340164218247382817143534040740130904091242699899112344446467032207981595102674592010422959947630067293082387660425561621887776729436449406296635670131087976081295753011553952386809525187937866816102760184848298836552807750200820012318143010425298923738724015667467808130757905736500455167765819482557424536622020558854830546482723213506279858864596690597509926036386016729371037707656771199121993426269002215144286687287006211292712510328322041504454120164634953164587464798978462643019527237120953541637975262408726858318305182748367221602779185836640954520914862371407095077433599763411870955446326174162557105056731739226029922437876043608681915200428297931161115005061348737080526177156645089753069898028652596763916730358080235181408478795414936684969177636196552122419458871663112274237618416210789046312665170320247737155674706403925171400448233959165717461007316022280886755267396124279144156225924129579929037799420305453954208862058120142017893351195942525538155564924404551496582892150234746103261163004199911358503623133610439421524169981937685298427552331314727278735976122411946397096318303781695533692014544053575799041569788889352104197472954513222387826229341224309859142892409901866232718820573286689116112236109041330813655510268194674001809495815057332534210636465281698837677498940984755899878675973300652821554792764038929439654324818996002695499033520104868050629124787746842014253293015835428873104866641641677564702414619868092605513845408718486105741160458633737436986903461973265890361050561557980184747829590062690617107057141895402147342829294356435241827695952781231319525698465296508974859302788189901526211405702118454812601241784224574652588214802693530421994519814438843083330511092455839320692030063403319458667005949203721867535625041277247845806810652657051037685877453944807367435783082502747477628943943074282266164155401550366895420430207160639314359265235432045825200254588963163956723835654237695226524723255641858980599657296296450598989218850232741126366562860350096279279999468332858657260665680381068894932782242070702393303929106366893741076813370966403604489941504742421569236090918121899088308207960621504168169131064809957217305987369327881562192970664652410147061038644001666555006574769422679555896999051208190406284823989093743873465990422513754996428083918980302879572362092774823564297918567029993147881178929135339853372257622927132711063901495217263329249461370715395110640666475303468712616277087053847346871803919193286501983030993335052122130636551113913187976595338831474428436289461861341257883331582645161577364600909722429704335392518593849251327642290938363630889176303022532948392635145398580870287064818826160096791767287776532328810305758503219489969740933046271057701731373810524302972553321130397236868349732871478910550468708220406507540150229133913868435228349993541478721378444083582379358598003402577773873113889591229362785408626436140982155336913755376924998201556090748486741520652996601780758242984216863279838848422145311341788819550425821078822032543972986831375691247987296121337385579849930953723735190592923298719324418417521048331064044598493715103561446259177468058506009192577031472535700543623677743236865760049070572180714447232013905995380529605503755630414593749917758677513067841841299307679400265387301240241757189508826145016176780869500879153117164412282329197033668788500340311308953661116270977311670971642981840061806885536099981336023864720659899527931195440110869207224324297840796326301512423823509353779671584179200233732792502420317758907205348124587748170609665779048919529032124954746000430960238559525871315007372202765485924616240736057786381453601743339729604251180623934178705605539143893132830629393351355259335378468420313012050282727043538171676368068830232412783121635303937354886343637868667766680396107482039828487425434714659625049608319895840138863998947840723236715658454103716939324082480750442675938757394532447450226520475220768018445161566404317712538378228828548908425436698802596631665488370077399095161053334263213632799307290988073221075618442794915763821970340331872908723448455087409725001528116574952455529114242545267368653463145305113908213226058715393037054390246568557878491452803919521810398821192052675817166090547736834546041681000935148061632678109299086298665020966601716615132692961282225903331780780141044461415245999989588104908439029260907326234344142467347388165620080207945827079236849278232757738465323242777056056262164693851326961285610524517891340944512984174057523258528355557565621273369043898036816610553838321542209413697014368555578412480299855910981712568044384734430316430168404946141472923600624501179059828604654628262462889382164237095417307961149401923906974493311949779291940664429727756214518025769991751530058076157590442524142666599234273608248623322503430650551964205699979406188909198377128097580158265918433696608531926718329490691403384251647562752838068859494152459456110704618922415797482768683042469527605533723775931623512413753381316870793723258148496815577178317281553143899897632394496476513405094588001192032317990009106948443089832321588238450971787062159711267696989071817631170717622009520969156827865757555700741667674106205170729226463220496307511340401624502575148107601466679421871026944942402271111192027371289605452398269867865694433232012799665845723741029523560185559681102738089625067250516707161796487076992724956795635410738447534080258868518372178018217972285890759237600098154980638650158709890966160249081007426850033993748704730297422670586549218761679762999299481534959196245503616547463866553062996001572969212493587463337628425854811468842575227650368699478768828875921477151571848216212641028386306848202481156763679065212247161695576864160383773446199197910590199952025918508656021372433030952576091470244283556842172266880355469349593258010013772391940054232213929111640350515016700050198016988552659710384848749305033115004474882262245234812351550149503950423524871109982756071858772335764673482465203749230089774607372883650776030962283136897909793571176272752013485424209013111100616660731420132026673867342907741455505922887958919094523391369380407905581749556272914357444369427397457037305768107435661504361962562165731089588198971696526165090354564134053587589847050790319834005747900102473121842212064755944175630479209076565823634265464930068190157267213478844955784467055122586540607510991548077015064420210899284592142761640359473091899791866462163334375948033443000164344528379032374576936492485756856855084681890057719489598776931035533043726267597589354468980856114152189593261327455574584678054509246162903405611882149047740594564011873528646018173940777951488356948063151797727283622339167702894409894312522071451791368485418192915595608145110086861884787092129872404442761605116366153550292871689031687611707734817648099804550760410042651481478933638359683598122418522726784638853528375110244147945417524054443441106864446441143839176245253359646837218421958301674156320517275378648707447994852667652223943421277015576248223835895632268832085520390045289106331754133109926448882142545454855062023190271900167419289811858653181065000797479421568113755503532536410176736861238749112722762792480214227067082051063579320808172987254604439522685888114680482310026288476939724010430500573245063910708774924241329407295576492079712069875983131861246916212841367068859949847877344484001995338152171955293557299735904570301220998976940504399065915635961101110795811332242073475140591651405959209056572112342910232365384475391334053450906149534637095247946639316978225440718411457860690550528458326448108415372655881567122348944847012740547049425059225646060365893397156041226608368963201582765770011273100874249364741953053675200129516393383401046176453546617025309595490399187988372633826945890110064541045497599940784349164222344943450811125326017625466636779973028588396769546635657963663792802122313569824633206279556005344328092779299778740480197018906083869135558152514244589064422974872397445566691625351625338590803279350536534980725871431099394872369988856520479598813967209684615045637799497876607566357467676284015410019527090739940708252852920210485809862871998310694842689939276908218497293099905202049123922893900049075531707058290565494411988241361306307756915888151184790737822630664906448802265762720498533151559603568183158593604866956433427195243853650585633224763783174971353101326753426047039859689996356487101571171097941066602369650948463336327634635052179038788863206346014410065549034875295956847322870053061298162190449005516721050666089947517988131198169794460265481629123317970568940667398760807784177282870828958199216987616595363496824129061691937982743743915322263087882488596457998163392359483798859536870869823527013537649681062278001680318409761141215680083188100570512092163690638176586132035802894134745630052370177846067550237252955515874493711409565750749663357741025846792437853408915318208103835327187386644567908111647354305034455142984518198605910472939736702949090888522310511374488725419446471350092956518939352793242078174615688576719289370873263114962822103761894274379093677299976885315836398836482256614390150957559816729885278707418570393281322142569432532156551106188005363282523549224166811027632208206938249649431269401627653896558071965281177549731092023911214066153858117130945300609203626674183849360840333951236537890637174508012053511849219049295835799865187550634586255572724894958551619352795202805874448810126451555122171211156552888227329486088867959585183628752454186562087622183701441617249562953583859133477942862578210965829254242086556457802144989507733191875362210739048837994464327802591256007282516017700398057330097146200844135391526574198659848652183324681885769018715688624166670412385830386059042738581484838843383364249564993977116513360601377694673590612530936796186182550134415674857134070205625001372233846540567787691709817364938026643812492640739553754294238788324890177594071478348937707358981606172543628371040560677080365488760191763408525926776079028469906167108217774825086069215595097554486429680539391038506835492514104457362252082781490752137834622166070891476927005630132614778948866398567674329661026339312954464300379909464520013842648040031841158707566292456341031194307577580915823181106114185524971536640434819286599799736074967367994801135522115037377741471871650541131221473871146844416486392563367434678617592934151606753118322137763143355656848239495061390581448969374872206485704110317444959100424360473426448729490446478501851756046005818370322694733467260804832093324517183334449222071633649717756126279084834598469581460538638095237014338569437509008582312339253162808519047761890216354488173086645551151706973513509619087114399145375962036213948296928872099419084656462909060609084145191384413447571425071786492823252048177608003494323477071059567065502465776558684434540418311905450980546255550387885801725699002082144420846079103788771124583831186097886604183056133168007329839240243490624168366335927566184985937404029226096570928125684052127026385802968086136337550374336008314315549114680799735441831155207251736592776986844673477984894844876017403290425100002772700004919734500781999109204489763908969538313146430100996078770679833067766912688435731027166303339405754971267819107630276162542484507805179326031651703375071034004437383183919410339434319147585470059457340407570212246429895797779894271178741169861121534268123697224064306274944603943917260395753569776371491037483372831294196462050278320583380348488150839498733429116676686013518624093689591476776366709947261901751939817053320711048514026829444763538220448671214692322093965038512916555943528771784220140162324596699661612664160170287873273530949541336042081804705976645896153178601054723615810077903980276006215312324221606557111206726756015065849528095262476397935972804709797386226599184721999002269440538974057678539770095188102647687426687919724727891106237215060760537027319527319609369320560505905336726117329137420930056360663180707448113724412041711495877372547283741037237518717977816212889897539116284552740717680876445849273968448350385236744387873731073099356551913886780101491707486571061857886225695778498523802050043990195814265378368634875112494221244994379570127278133119747354896913512326702643305290142568255967898943483863020976151899139507260075081571019185848704257932873434781813723871634282607004959441881949607375839686990920669478795884747396973657669490281374433904437922871356557280275706119693465489881448865695842262213959422971733026292089807408970547480990412880938723549184123133032319947288640131974127445298975684775413261764081710349452899687108946738602363300444391252806761519530564123442894042242443358478030708135001154386341955821813160498213215955353741420420028991530286525474183248045453441077122369995294231988076294882529437548641478241224038198059261241935194443562724351091968592746095680735273119398690524183697840873662595317744175186350381351098462441913288438707103033726977193068166633110663222648299516661927713264474561435634469233627305542044651069208609949420152863142945473285803874924985344712373891892173927852236824320074075592226384341783321573689711801413714137310041338114092294612759271736713632308275743222496721496292105766778313401984774738175113702066772799708843402749432688502969742176031648892198638988965260432711594117789934415880798311465634224630088390707229576330605383292688120094581564706135389230239500487409895376325390750716173490598330627586524142510973944165520485270314058144264120225477868264080265651320482208423154118742519287517819716821097122652523644252868676389527695515589209785004693547962911211988213833062862591482844691561285383046211105580345696086497470744649574579473489166796290642247299573888979574119125579839885202041414877423781781606666892124039054447061719670699053581579667228214952410495872132644043860041347177062365241439870457280069253077814703622609818124233899987994576227786437446461358004751112593697733702762970818045784348989699999912224783713017709442995347617818469558636875052350224150568775526225179817316127208190475609583391820411279629506147788414596625242565753384167848871320274633733461065747823012071949489011976502250642684671738637953056081799172504389469854019555244394437087125338069272794623292807420000445861369724341756382437567766339147570981575284418717255979837215099264913994525649718200789720716421684232588338299980810192775844345577030041458519836373727437883917362118345556391069687755645577747522373205219063823083519398805800368122726146613333089526973894553419621412434207173463033502487896587884087493886579050743002248750110908070646303114753854998767698618794618452294492590917371132223817415801743379746779977743999335616761233034775621298212722249100743999969457232637350285548068951263693999455084740287097774256265841443841195438557763589060239508977617830783193311161337255679471002958977146335057926001378826282519076525616000383422878703067013479397931136103823872773511656594044942865604531379762517603970583965980121271438113536807130551933023128605532628970984198241921253829733016185571922604942625478019334049820241844974358025132193571894952468832355508183359996808062692456146308026225939356943853883598767927917677315484935378353722908274225482462129315631565005608654412440210904011423153584825390582574642183703869687183280406130421962901325175057160273077219005376432410414798586187416440762326873991099820042758096396628478205144013395866176922119801139943480739238947123066873188396870444841381913113493597632332038612581934992618651805864846191572352200623336137873497696902070946054713108947417717401357800917448959829543460265845220094267868848401131606073308748593243277930603485109047675642643875956891569873440676916946966563153037506304073360157630267138138368855232124181166575471258199307002670015053649619678099591086436458283082300235050826764945156497256067950860941684850771545320161615466594092980432436659084982896900920040525664241781174869550003641318752465342315217055763476241790411477400126017263880547854054917237808918437104096355890328045941164462181105081186397161155122565439841829737119794533505475908422494622206522545261243712933132062025472141998533650839735389476604579322875898820885073756997433448428905833623219110207165210927509254763680582457357744315651488831348718946445225523135886361460172416663445339397124610787523007301650084413332564823131682122355677711235238062814466920263154245137116018128361514414367574511188517328493759261368118774828357701917291584923847495823621755167130765561796118616882735058561643265723043178196231298819797927698984695324701441981986533036991724913633217223964924871245168424356067142878169833274873089237896399528210571490699723184196407815558396965687841040847331235587647085591418635109802094517441884640115670558440275597829412364466700415653199729321902846204366674860977649651914560975339817598824673178283436392739361776257523553376371608897437218661561754790930701853161486045378310152387796620568857555625819657307419105802032518656023758815029687511863662685417787540792112801545212842860334548620823412070814823686598403509289589418157785411453739345322112183886984991525589124283007017168115035208523104475124260966421060067095443396878712567393028783887145957475140727751950983040398951375923034896651959026275586259345556968399498446046175555935048613689807838478137824136554001084457878368930360652442483831909757412029508819664658844144583900192066342382433446215332554776102363601583132116326627209644424941637653500878886722604353241453233027764630066051509394248735686514819806471192563161052406266898706625544688360976170201098450030282227556894140722202279445708174098250006788332301502919520333918210160939650145911909787130632823897770871774894857494492323464646596021652828815255935767142782920912983715895032711973903487828044803639844616211329831980024702733364120390995718641650050817159488935740201921920395746212707004411264573024889257526756999806264529512811225936508413994543686797065902125005565475216679125585442257282003132204509338738040684847413691354333748393042887827162401873982140368243042668094632881893493624319946996878907475985198836736302991461421835955332738241448713436180344833247063526805328161639996959326405410919679810284051673982103335539200735155771198372682422323601058211606621524469353353625317571228915676021377781818177796526908146283921187410239490513469432623754396978085087312310059341010450351674783989578010389088223440214129787943063269523955175826685278993378571209642997525783986419898013893595830341790590960281515305117910124006768564139389423923478270718749466814251403403690141946843089304222630563252042453842928805468422395331136569610308443103461115752396383293525638815068302285117134645667559412518001550345856880459164147069820167395141694081512016329263057627895141400271082689622765962298191952210156472112918308629632914006899537317301367858559083327684918736152202761151407167262807170787463803900453832912623065630012396602708660844281775623663967967625906303111097442077523471548577123930515767817563498193338963647830496075942762815837968772349910772728775235947812905535954305754545682089479221941283410699872744817706833971437342491133328369999686231657741234042509718923752686207442445046737982852354436222946605844796234169811574730048485906910799211203947165767318657598764861922029638019785353276313548630053648342929930549097322255936679365908412294570823922118768280685518553117776342256011786020922170966362717552870727079365555448109195119662894044794682336254633074371100080477261995635570675584275180295335373829286015531129919911343626377166347646535315816171478725840336546276331994656865054347974795796383021744808046171871306549646113903298359378542115193496038513047591235716699225021640927757594623184901644896308328358583920229931911025257982171822377954152980142148110952953919653936372044674681504491472019472243923345723013315043433973923824564320658243005754773252821828135272872347143844340286428750033241016612637217793682750152345990077156043329993457373520910839716597620922108876711827343197945995388617587254811165312246220838180697906870131116822608408677958529646531329503108630551027208824066487969686586692706303642338655858351674841102440429453589249359033121631128242134465381049871837798706258307909483641002294629455596518791435704710521919799782325027424183324234625114743026166192882281917883249815005148757180953446358748271804120775289569787832349917363305704960491455112512827459761277492128525020743576419667561749872332812108427069562934857366573287016409709610479850909529195968231532480092382628548059091135552192910452705808906132594344278378072318536892203659586265538328699087528224825965876399692676399708854948862883920207348127303835515635534512988470875168601522538376481115568649012628543492170595354790119032520018186178830701611666444947153930889291776926111234294464495766829505165364810047806421322192228869774792750977213356541801121978931185234867723657171343258938194528255282848698067580411028796606213563282975363997422397850599781506556622948177009364900061906825836803070429480594270684489008016582934070958886394821678577370929896789727714319379757428327806354205384375892959261963285928674892098763474385012892240039645879358311676291664165861044271447404328483693395118488775393011696373895619545573178907143849333084290427961394603960871036834193744729431808930092711955297046748783847957459276172060703466337562826214575773264480241923687354173201964035873730235234497795381575318081937269878640560137074327809698044502517030460752545682606219861337859145483469766887102908553867267881606534714884663282454386647007028402384127248140915505867938945887997887381297542740957970869927022055655729435017971643449901045186007868898678258612613382776707320815468316109632377056628639847232313132464869297469671073729244949368606213105914124232603094871557604286828312978023825395791327060050990741190567350565931778627476553457340105293685965554117057255979847440800891426691941875161536220119330960417994064650196836686751993307578063992104337568269841617111223311349486365308311488399067809910736404302145165939764051139531332275005139216973551966006263000192151715799778147646407910612868240171050728580248928160440243375975028001006208416692496777803274709454897213197499137162301445905624960105399321197650967342339854820755098673668224948787442634259798584862261343785606645745114227011998136198504511879527183653486310431295669177686999027944793012191635706420313321245001496302095281340530969496572138639086464600601508853595504942963567972573310753428636983912695874419478578156959382368110817652371276952409868520883562212558383636753980268686714902941665589936204721729699333516586474012581800204526440434888413804227844839645384249531331294305527079871686518082276086861443507975229840235647469508679593580815960488884015804586180383145478662150754066967691014646912112290820663787691682787279148071516007787484061580103346987765232467652690120223195380368302993543387687771447956833730318918389036192172989620452247707549443424356462869804272194961108483121199483913628183232621293717801520489540688423782653434551405094372616287237231343864115494238318831913038540330530020255683543171185490064311788538849161632599076152785146904089412870611568099129267300248121526765423798747925577922109950973713840817159937995365725830948936270252344888111353421885035526137310970276079050471983179953772316917760054061564051227631909968824274580180929208236394047973079214364985557059043699402349160740814302914114707925602488506003960567884954385998448082311777859710222944729013746718894417479879141030763748956030758214574820100836509034483333694732092161204980601080694687137962925406931523381784735839468467606797925189244070762741897021429555932097615373704433268745719868555502618877747960720954568824725930183463862081960373002881647756742523438597187144879831177360147067550905311357203253261558500052631724010616932146461089332542051945342928170218077649844422158753046210046679030759213394246455633141824576068364351430784695748596653523002045175607248471939392163230117368991358123103487843042062829339377103792421315679779404606078649298896373723199615171614006143070746075562320576016103549602720746715255626070371599241323229902447410014643005895789448941485029208309877172241011328665297145250155389180571206933773034882972506846378191120851270976687698201945417416256553202319221161291894452423882064649232374784974307776223674404955707990546065387918944674200008089767160036320250218755344149236541387738900605879026627601548138226141313124404034717618956587304404463816329032789288083444701047747338865070325749539807428987186378815752565410674479143252216601932367087000090996591694529898853255513701753571130526921522080576021703068869206456342300348852653704490435230235200427468993306433881187805901117828202636777697451350809775326370248977156265472636449124385801286307932065822934645856934497312950161590530080307610004305665499816855201262222612525706929941334640222220972594401283082076119580739826268846139384650682889867493291041330303393038420804731975697102788999259130397170230377381783093969526375654847001162314859561570957044898629869513557431520479606906047145149890714549996289550714291496038842027960970968448778468157953640428952532928412820536922526816075026588679066869922598920884705796589809678070052687917013124526343588848695307406201482745435771452410984660134535917210669297737742636560021059017833600818086111772542369738177924557753645553329770086165726915638034221124598806856909545161524593600656366283917762185194717981557868188538315801097914363140886478468052180401759787749527776111352207885517297540400785471374999649964892759748480179853482423880032976367950223305010926320802104386565409299779197892425136289022446943106840484352203584406293886982985013928632454554840496614267410487612242599015946203660314230389570268568417074219448831648703797133669481495243037961734795964988622305997498570711494970866608686392061294155851199279375373401989010051426801725338252124763519602877688655414907331437915003530029327809552576694751814037035839664183990177160820051322613647002155844752031718907010950031055200341702495238067103720676973751293079960807165864491314827560345374841024481680184504927696902192824227499312835547517059615293351323903922530091787686597644400526897976926987995778971004158181764066277919913273442693989416222945372591238975602330363636527876243056431679772129975578085648717999224743885160305859841894420355560351490045139097463781164619820513637694094092385982913525121901014942319396711530444942353004343725286578698727467446874197659819152287583847275328544585605343094270608805216350719120970377075569515111859992154304734127367056059016960858018828216378603843429330997030647304676575781992687797082368244697620945395922350837116180492604025921783239401013084195772530319260846313718048033498252143832242387641062172305198573470296448701151533195047226950584319771853992444727619575164092773065472046032484091726190642278619064602708896988056395233588282664530450962074903396637068405483379437646240349805893527666619820654464408897559725681270266492854951531267953972269347577371846059572141895514658152800419348446467500736735445193253755370796598699079427464207329024494347399412565681443153079992888341883772315469118774996009058069398740479020237634108600525461511708563165404108823954154230527715434719260094807303619158676447915547934721664089144864547339797499432119666670758296792480409753209074465674342932054931364773395513398342527065787820406877735850872434717499475040426903099973596406509577792700355874112334941534621614261282588170840993624897840271577115258703720595661616147461778014291797499586517090638380329984591989477551817110681129261657726196628091523240628033391767919356484966608167122908200470178382335200471240603541340267458001723905500489096221035901479044846728694010808668847902554730220650799053912406613429320608226544244611377227847147708728983122209525439497994869906079253713783463566617196865280620584080466965246304304566581669099549681811428010299369649944642260197148465507713014095069872000847389593132114962240928089481042839129750865392224806111140169200632675369042459523823908238181204581967203978210954541973999963256869871770014799506521832702159658631341497828906389360121713078647591883380281726865702198494185141587500982898721653020538371927127210229866409199747725929670983335056843614988763942219335589045174920306736660703540503946432838318589775302467701893810675295329589887414481026259359213687752200328315080652714658766746480627894626869260546406306447453525492448030373086367511636732575069133244654676038602005608487574633378834915766985130280462141986657226777878038087038350508646035658449252257067442285294777908033247378497508945695248096244250892271341070094029838554888854390512654309363881400076299488727597186965567898241773434277066327025152801171678574089057571255849998895356785305450787215402025240789000403630581241595454375979077793568957646656036851185151178572900164619686553930704058989836541773492346181861074031132686329982194967496291478412661185032122802935028887522682741813626982586950111398893933207427977154194497868995403147243414860331896613508112831072922699292083946776063966823462993698590470455535853301513347586542173369884024770547803851658683615356289977445964608955931230057326405195491741747764748803703033755233193472124168961066289631477161696843372524572479685444754159229194709018857018907815061168381940235627153658932134140881797024856860388796637938185484196393084871288096025889442153128290782578889269030410546282297925652172987191353173130417494682488441304281202956022606299949615869789790283582582727431749590983421639639467680409805018862293926119211415093420824568555663366920174822973745587207271520515547910373235542030610343773326049538897470094175904555526352682483575076679660404521538666497032392334701945798480381363353917855113825049937103727471603868115130808610405861834890530410640656615263307118294420614725844155174141678420406541697261768667083053885925209695804011714943597015353870107282824651740089331088169570320540430217082115346886893775922857912327417493389231588375640308678212488703586153218352093620679153494277807168273787191804443125449012986797373588145826804181728919068740205575538561979246264649591195052668723769619937389919867429670583873126076299916101595336876582546682141389234463688005999105558249208711737268594512715434356442336376321358237088020300623586865163159771398650811641299876193128256680864516026599347347983439802993140469249500056047995025218750932207221889035427698069119285905048268126522314391400282516432187259955094386966425283903785141399149270098192482965365755316848795600861778472919421728544895354783026310445590937033787732286901613376419326005157059637829471246779402279857095120461930363825362160761924108272286336133087326112527710696192118175285648137275102026689426254555164913339775810557678218945355159603113290167097881788690217233817574447846821333661797678069047155588914362434662481609587809377118445572358261359834975479954611704507891264809060106181735856088911786806867861111119254008642265336469979961265800287740117793942249818700754746729411660848664252915835664376313526635075241898149170930555179323182011224308151891202150053954451664048903257881978084554069318047166049221449993227160688948101793549480029279967527599261524650316004111743903142935980710987416321501452444408901448668712031127466909237731059518828959016507078722766226401393349579627186114238447136468010993716925926895083123967136637981398808277866773289137266667704037974798379545807818137448124024243226074114796660331798550364333396428745884806063547146585288686170863264151895462124544347504119554376908803870330118225716153261424608680164349962244741027582355492388222023290471589445732942530145490457376451375303503546231187235484674682953904049992098789149236393781681498751510166237512077586713723723156958924237738834964672538234572943948187309355575791504822227959012548324768325905077739400621781612848169640522012348002249813612855886814012325564454336316203541296269078687150985118346238550722442331307540376625086545731383599827188802620189107430798310032768768127172576570566456338782974053920328135262720165590037259232386648561938918177718038872575494554726730312277355307642829729116216247920340858782551508896700509474259270037867455739338573220895381008382031976430289619397898097042134780979277572324261194692953569562414653735113989486416265847367353083899057877337455499787463086775092859511877196584112431298534871892778788421211184172943500783700536309508240470367903370745700287455609115105781255533887792602629169603760866952972596905133314180028027545934428953236349829387895025875953336871279752114518544993755863266585423908612909672744874812761323821650078338658841076483898807137819875393165257913462153332934708036964572182867025608830636953538184414646109195871016855848016234807332632710756454160545646970322737187387566853217521916556360361218482306768414941708112266895457364186748359248033902219862519723437422551378482210687061735233201599245005320405231667359354612746791899528398597123209164974909524707187166792164367721681463890898293223342137927648051285492400603918888638960480327828790008724829382640853390215365414683405643481129457316702871182144737522457197524570500116930064129770840406046570865478048046920172629630111818280114098082830224569668893718064068767806814118974736740701558569978751408553302989293999907549690689411685141789809277834392159226431145761682619265608789879846126081542553357445010635714870196935370610720435582918549024956102106266263458268006713875415440844211066015537907200071760496117443000455418073068859301032369185943036186618739975945168430821216684267978920617263935230548000330282244837945447810882394584673460735193800931048407230176647246014996715028758795824215728525133432666808008376056135982572190925211819114983794039412650222101193506906507698781295827886992824222671265418794840362702816204300253152537763574633942882568985892417812162020308616215782844428454935168536443268685896632291557796096123566487426881046537658401506626272258910825553572015947961454359104173251814452204683030826725815814851846532746166100207981606331671941908208771052378880640133598017223993617843076182018899715676561459413777251231672024052721754328158001908469429263963591363582735453610244122816225227541759705866440816677560610690700652251884369184876686755624406343089262563928459641297692614401023912948421699400054819193907173144173958974393563841401605746281429822341382367720072070211164039175589059596013816505381212230755672803433990748934876138820455645425325471278584119673783450006514472800378644495004081920078680308180706895414531064324683580965482273831272818780351167372137326238766711898599994275649312630189263586615808952723371375073981753411008176573366242735665432433054718489189530050667792374368112799562789637012984075764876601363691451890239301845878643441924537506317248305894747681188374606802303854647757662397132900484390614181226305796048787124237161396361691889882229307387927070220131328184363889760281719823349666059852604369743228932803213764130301392888855365279730658690714178707344810745147122742123279032496392451926074216446251765508005991850846220487106572057658854190134125170949016194708466180256581118050169309445972069310805860262887798941620619786850834096139288279513192357248476416925146576423009809627227798470682259941224751887411149269501459446183155853131058879967199925354948364364289029291276876914872980866823077376941260704462707265118093035742157550366644726890246838223394641271721288063062494590912476957836388603646185508273201200337377113103656853069612258243792080709499765372546557639234976316156264297921272028820122265662231867402222500752203836773348882753463675608148133074365635406559136798332954626689067785973293248804389723382538348872391036193318209691153055738569985842350228731607585816329831646133701434454937118715539817962461014142563447777637058813317848517372081983747534106386540667765310706245005446370339796590211435238631628022461846441982834982818997112117050880341022515356567083368880677673885106634304959832755769957265058751138629625873299241209225621798193891265488440261999862640037257850713364453288782017471862786199150313532119811245056663738744550832596350291837117699893605864902804014124115680368815756193787771372428822737005693304711455039537609267902103491737543352334619486215718351852735750016093782663164011764944565827403045759878239231677344399311412306753661603856205257563502346360190506922503849292437010115937543446693666674393146230202170331990111609439970428326830775489806875431877766560077108928103037197333202474951345657415181569100798396940629438971240778726240798076887098264001804018438033469570725035873675428191782917335925090719735056890294720582689477842677037595562068401575176451826882433238768003282624930402457411773966634378158960744272146208024212496989432371914934577191208811394287469054696814828269599630215085672132518983460808137786421895811152233744120153504295113880084998678355065362711578137406161669777816205013231786239150072523541616897383651617198320528288261427050631878561532794959368025414863140896411438573455593701572801278415463101761151153003700920885200930900056951689049707631887076589858193073439631682726166387607397255927270758599572146302965477873012951018787784535582928881546369996630512497968215285444834543502407744955875383402111890290959113878905988082210883492482522634815739646409180126711906492644751852451543001334836712500523409410015850550941607124719820936916501867405262247027408134887307786509113818760124582491569330013780157851430835801508405697956791645119592454127183044097061399087013975867392031829359766782594517255310421535960786723949309029540975356800976039937510313600758890613097421686989696442943173390624639913448989916015723490322528391263319249883818784192012290300082578260840051984150778730853888058680751889016189907119478491600448220593449934006257493066232977852100205730323404349748738401834820153839602220084440772568395549958473480243774674947712740331479520391363374743902054311126402936900247003953458147863431001328567061805709297729263890948371029036362569193936426867295971570378812489973747987473788638308020572649675931380674435837696937875520584722538579456401013594223301541828414476765145324899287384540001051574462893524823354233912011798404271735446715446685067975141853952194213191986045745859145524613536585801373669329599125300321484141299657851590406666126645217312011731714028861980930935133055004792219100744167111002415367765998839408557270402290536254680125474238902014357505101043666007703687757843860197111417538615644964500382157699074587628241992364950108834951275610972620890689156311837787366074747458909229826879010731692600456287537929170026743292704633295979641668554233936049869166666051328727746176784961253776798630040435575378361514285366332102302423626863271649627223436046447125249409261531106538860612563041135148019306562642018897020194459356287495612581693389997818592447127697489554009406742683624173393490147305376638145523978098020482697822842070580466194123918874937122830210840801739612567595805051911031503792397893710467443925549582450084688507984054500842985801065914017962035057131446832930148361226827596234556656423553075999856406352607972015428077787171107099145671683770953496740848493278467763341137527638163282690541749559638378624391274075053756906104255717642138569248436584248578636472222824015319143667831440162750411506777324868904194275171794307593335821158977095572119569603175349189251354115791728138879989403259200407905077174340608602221150811565067194723723516267556012460823807815306211490809417871412064505042351251271979478733382130881830736674738294209859977776740886683697380527053199002052954904613378029901019905725757167898135770310729782462714324936512969228061406253910004045457616284831083040720838659904649581310896964840934417889497807830618918638332145028951781132934924506136283614111144991866749347333691517778813457743538959384570052163491262201429033471980176456800658055862147112467182215722580868131144715271029023278740887039334451972558125554435339785904321262643398214628113249296167279878045009249815317138583611068828450111400408387376369786488749532795702586389362785601745679448089456675136759260766641401309026799321175153504281417219809531048290253762850579915489009009700706936943706817705183922042548270964493340881776476369273460447357445886572568616684416551136454780648531593110801841607530178789327698089407068534832429656215331031165926596691638800761367400846180190385540991096836759902766996795283426172306735970678930805152545261224296939264825382198186644561796486983970035853168897051167562488274105156244412493161547452264301008234666983543700762848955281247788021569487143446834748202213579162626833115949592599687126330359628106734555686684082096421280622494079752804972987050212316626476887678600769849438425679745807666383817344197592872249278345751719871072845734273548241019527692483366171328813127143933429950288350901006464662883177534565821183810553222175984844856456472828329553767713445196838113247753002718627820840559045262262499584513475502258396745389886885668986495615658044696573454111232689654488454523640360155396206833802005586754934562358141552841761293533792856897782956871965230719842192235632858569228619035056683429440418852003311877330177136697169076601971461992744208094819090034297982171722533739939068253307074988027776791526548219531560303956588693211393124781426954606857247354034333176142985893310542817696359259862704812730047196254889169063091776354869671990457276112613728669262469623360903244597769825828108323825112669654939026318831217169806107681340301189613097252158384057718930995100819549316765394280873336659646229091676488857467582034207624022220913983923630320638581543894950515699538619432946319753218195834754486761260511166942374423106214977349497335779203088998339541340886776092181521100159913267673905440889088591228505039150291735344758037114351466506627122365354380864590393489269157368708562548261514161602362472641753700563388519539363270725541152622922197807138391449998161699807914907344378752272655739744397158146348018091537563942686821569390910297723487782781825391381400531741302922081324076569252302032854646868053676002257425263310841557316745747217069833396447491342895755880910465178045139145335086863085980948440889707349459604667932894149834571566071679613763027513391579501790329165753392314995829134486891285578792848474963982990595498417113952524915549565829509285763593854024515790832094096712477838220285301227190908360002989996969180922112813566284113145249985279061692140927681729986472393673829263958149284267392658857816442324198462364197299516712180170736094527118412926134130717818594894010940492689081241374914615342519247818615566319499761188124732641282707252258024129102491729525192209771599219396736055798401878923925508185106645213033650110014100921022907774370487963381436342177838730701870265484878943421781852784270327313875170356889735492261753885802596926002971726136487152383123513433357229754185265087192835635673137779326655046790966338088263671339289185919870166230617637389501702684541532558756701686256945160590079439564663554007551996318024112030905784558776123640635470380392471464806718953561589409957773202732994248298335255760609047468228822726133063553804467806806002353942611221901326801706923458875475113100906254965724758614621899335953960535655928591975835554979888801300878865101563420185172011645158211682502798247853008676378738704998034859711389330128147358556133483182812921298911214021570788711464044568473958280841232394593195241850412184188969161169713491389711640117501170759551030874808914343101565098346110654941671441981682216267168349518488277803075997268316235760742321098182998713316625396174661055785067155215285601860706355539757357492270262237233245519129994824579552259357590210711358214957814234262462313848720992997479133081901897422615318967400100877214322643350748278884170917571840098200814239858537404204826112666671299673209690434900060716147944499165003262588524630764933682111239190099102825871477131757643846849493539403506155961750479350930264914160244161023188929651640037632828965576233680827803979186798375885377086309992651834670833172295148736771939916219192400706544488042687085901008207047644861055784163709036694645235189937169567354130080404669528932584035570057269209209165510809982333019248848900919163255377103063440893236112260463519386499464019746744130920182478311077789127177913286556364198751398080712770317438827143434732398523796390537278702568859764934792308344804609984722501054764900365255436127528227400299940606559255068672368808107764536283274450083185229976462181460638604398660896723136129685727567073991226711428840516450437980035480353001249461220484886107688083069048334248432626822016371401550101032118169916831357005487831755787105214182069225681584126912545061777526624288535545510650876197066524893883474557617113380081050779586430260101449242729332503795757670972963783685414584578656263380024830339331809436664108825171594714176281842301297486338493301760744400129298803790218327803314694197475028021184902921409377367470962432245515051767345637704854194414226059081717284398812574120990217787954888205791231213492691864525931751763429383972819401197073028032600655482267843492764957401688330220938206613605081260651395822516620073440108386189381990489656848630493748363219085892097534557536257086206505201302750426308029192309940253888661544931996364084185192546261644676452758161369427704537652974054220998111187792631187354914289446213163240983972369892060466351070205372618557431618791953742435111412749944149449026919092748715230445252534542348867659530409146529317573620460194982884987269668837290152903868412251318187661635214421835068251470474979193717649755177991666757314231944056675652232773980515609903297797650159813472366745888000875605131849732828683664740278313961292587877608649432648249540541848077207749488869649615771307061211642310724240728760987609353369746069710119131173441601645926365220569421491810919043420697723630295629376936663114102848348266506716097699819976215993260572781483829213879528813028030889850571184250022300632802277631779729485218195547153277544110038131485060973992404133037110180805970008419647794506155422633651179627198477251683378226098010510012060353786228616465820372164077862297025458594625531057978923174727898833141638333833145982354581752403282076500289295857725379852016983788676608429103561579715004084936971454141704911216822288517335335456153290488989343584282923768230315249621317887845185030473688114877669810101841757989831595924856537955282239028886842173058336091161791067587964314120087378445087968079214705609626652979386345172178152045431759642245589791725301756450293548887518319652547505833707883397812647358164564470123864373496486008661266803006485972855690742734547268968580570452811384570894895010883396049904187335309881994049825467296582442469005838163238376210608407915967499801108572908487125694109443362363827313657323504496338386375043544037996101159187432931144430389340938049703363957169482273616101756548730518287148271861630316927281944851657856522298996958434592587311389810358609987348157686519269133526236779439103359973995883519376049856656183562001643161258955807470228454060611916494175853396910092901976944124517112101982344814463573970871150569832335629121185201536016735805624728187441468668978586983087874236970293833316497080196300106781101582656890560768049960806483739571496875748637527909800531013181863762165059769696442219579396606103338301429665464842560843928304661169422639272855869912758359941451127698306953840257455714691542931670828214827426503127339976972368635572883846947492764218014504323289697760045665963640223673416211766509219092858048425010039778546915966613912202405187185552541411674484176367785084756089307340200402565272083459507993524732170301607683368672527353986136639914075406610823580851275682253654780768884221856712393740624010182908918452085674604920564647204492283588938458216634543926689476432243172034664366825177033277780222433957373566668671054348214390445748756187334507376400924989713284115675848392065177579532798621188560545467629045474601502061063179660529267743641664968835971192124889489853748523815026581115594622729524794957168813781721611420002681223419741760386312744389152036781086671667725161120821868935059646199010330521957237248886048169648039585105865957950880195173933459426549210597233112540269989605254801667151647798797378151172129203740680531720767292521933717525253129489063577058569692370633159831845459657755877724146842131045235853317087214972407996865343223021103511010881122392107658820352082127585876747650936754289438901185839970601550726184986279848317214602306584255205401191420959561511499137919655212451327181460788490302919587033295240272832876837068332628554257981966206122222338876384800669526646923045103753687794514697918322431616275482121110624129427378771774920684809538211424932870391536571050399541525926694599897274575310051980877162592761148597927095849732839142355265856998168363268344808276094358428618844759337971099481845070041225020780450096265651105081592980162513142937021132596710145696817042347352134434946350003411970567419718379770718907647887775979313187458285495241222494238645009619990214489295173633606428321566682467208235790780701163804756576509998079622932548667741308368669051710539749659464274436091584602639608091446428365575534244854114181268087667067250363538491664344846595880165969644263823353815137247668215269777013617488621929734820633448808047164376921991658684737148560878720807266358743887071495938183016737990651307735072034612682977676771277220333669119420486656415686546946410253409046405966484683406283254692346483208111698764858509832879150134971319609886521360781284434685771977058150653162235653251480685839724554803065788185274129656758417108706105908344989107020061316733449428204909865635989047779004883511124475109339292324328879142360073208459592838683135341872125669095031462870266006741372588127798305112862648722350037464216956790518432781167952159554794314847585832435648614077196675633708759881162059939341892014937306849739102404513986653974667667088881510803889416360545498422664479729241044229692459759149406375819994237922912486125095618988740738973553042729794398857410813705964927400615283092461093160393975374516366696257033037412736109103923370953246543125447372548224411883001709602383862853383004125798142869475066183679837276551506094537724505130334758152244084848039712529207836999476459057391352423651423993296270491123716017200877312562095927539647896824426608768631214577323990033610766772494922336574950482630469203441499957059480917987638373849878847968931493979649466517443033766962924326766699396475120743702085213475477642757454440957022482515091785199591514080764566781620901997705960048574753800932495539980844345118834665121084448279096147900537299099807710302012521705160223559776660724813629701966119777174797993012175811694773712845742986001393178014608295713004827638900476847233454184668522801815395416809840342344922581486271782064082193567677986065048322024653479848780709389610627241363810608434717058084205585986384221897626151579583315533005410242519567601652758716398194298452679976530155001471082565671712946541700188329918775222931614172898418533553181712616014078723596266928449745598991604950789555575409013588381636523698448626134302431941193467677463946472656063697751363565184741734364270195054763813008157665394056287395951914181968050028863772859993373776960745868264094473630229044993299043937821496427631453634816319274048889052460711406787246014452897113366822614249397308332058995578802920625173766221320198864824967159389801072540331561078928956711649105791788409288446824473691173794672042386326073397983741405124319652275615518806326913145032822596517690525272831014689681138615754608412424946187580042214620405745551039637926821853065060333696227625649238880007330423610524175006297521822551331563089270674345091711514155360829753220724477849795274462468538953062004783201355557520227498264374394330087335835475452393046717652639067379137140398642129811547198376299084108042217801741641757748170385312595691141835421090743021812403686769537753954952593776224273132169545242999439834250555398339108832409197541204162943985488708560147986344817272992396526423100974518603754893441129212415167821831886248433311659492221429566041174820248008583282416482669225475456900307063698403444572257959540541295849731626396222796908794362127775941858449900771715965846394328454932503621651226841069426692799617807332965845271801680616112143157015891860972201377032122010343115223071475735307489676740994868136807884899743736801693230464403835155587108532984742623426772259156881770349757449794261406800416686744110108274280616398332105970325800870991748332106815882231103497191081276819013712703831712181241688949215258639454856576283613151709003858367870126035167731746992444833732355847861863301149312392001924892615704435321101169798819631839284433113792215128744293993359948199396469386155736312508956351109043821316003205766022976609054575052757833639078815834450606316350125355659809821397134332212114131949483733119351207205273887187978491229393702976542007162340287520485117751100189377094484521257723206400207513287374549522189798153831702826621634974249190944668370730808695531763833179740747036623556548135267379136691245160437713923174871755462329184783148909372296809838045393143290167230743789745713287821780887469562281563068271170232970464660543750149294963908672528530668602033405217262318670239265447029125523340874110176332145579393410149729926810181312893279274725315090362602475744202075961463960847140395092026097160154598530054767742535928211954450590497338274188899179017279604287208302850321300592734046799139012203516453090715016714752895373810425410637871843789093913626341382914397394525500489405963428636706429563991993152116397669711995416549544299955106133518866060087319322621549204800589304418210538633468831901733416298114065059135818872582791401964557871577579557778618937651548653245941239288663267137874169000470364309509667652932595227287298163306009390926654420973824180824860775177953323112566581945135435722364446605494620417487282439844907778227482156999408279077889504897974465909856197521122091113535809352484146506440920523001585867924730410599821765873492324498876734380578163980389296040555007329082081158637576134919673359688298251222078018586302689678144393220100866461450284580395489215741825599958040375584772672706543608028288124053925576449901169622759609967557935199637304391744719753453837727727142595989630314922150220816721944356407108427935467912773033308878316438488443489378595450955315744192438699496212544794971286081136645059487778707505829297078676243236390266516460892943338959529987873414405768893078453490286386277934529120859565124354398176287582369606698859022229223673885339683297340199719905649089634483681048965762470561259705231222920795358737077738051399100318843714395952631151960664622390519499508267474524436023662352136869263494905725056647583871992624059867502084939264471591311739096461241644997444906031242930998446115947563552079325810367539236738326496567468468107763007161079441873960160162595183791994549783742367233860611720135806956248369430750666192804870235909310683910489117938700689923126308309743841795059318188901180783577707820721632266712017308251112444353404989942366357464330239387955550522158449689793268173870388717205223389169318975341442600931468548169296619555157133769314055703156878307711153599176155354289462093369186128388372185790763316458309857461957586397329985859488004816602148042275977221501063876344907480400777140143590471276703614006834399808041961680620612748444990006047742229804482906408821120361931037901987985258100101612151685911592697282276269744991233945134415938980775009835374740056402884548539747720035441445413558319569233859283441595375932130640061715157714651703238668244417588992981891667260119576055090079059663497817722370640291075985709674228817286104258483622643465626166046682200329041860318456359349867115484038522951583579381520758847413200113513010536570912463009318483399894570918662730976554924760459432074851547940987094468375109602614859192687781627720833449174008807305842173654533842651746649733057034543795773041207719219383763241535858914705271166389236628941562120639993604303801340848654666546248662899540739752888974043660317178197541799575184074268259077887918351451247803650498047945102190365906815781981612821364226268972899600011085573975962717675765598931441893032952407309615325913345421725100368241937245393496502555359794454982470481073031650507778735011869232739948726854468607138367087061935465148354798164705684236172606271089207637668814170142544185965860107401828945833043891576131209849675229301408297624212761994614670594604925126932214932568990930544825542699843911839470187669371240548046736810740205523211653482581377045364916266158875129102419337145928897575860451461804496820537386064445260317258413587166943271839499481983876901301005506989494363713550266369258731224133238080444981203034446232790308751544869313005493224421669529037701525258109941123135654526372927821361454298814385823367994261812326802952108432629479181137141789581145545980834175746495365602571849495897917666358010179809245376809266743130433539002770674943729985601592526437945028277972822429153910598726584941472185007473682162648920899519251280199790367338734534410166275466128943876487302646172861908547858415639715997982378393927104570015736257067486330564278566375356720305851203235250262773519011824127650136514748237177400431484694916482595059228465145447782849496452145108499269702463022877951697805180518148637148619989284170305777828550076098819100953102059169612317112670798829544277765486868320505265809851671783068719907470054951159494176717290454228540376492498511314050437952318328486625611552800345403783963967489253001781380055454438852853509492711305398041041200819481453067379468886303850242317514223337749696617426970344988339709348572065260972562579884037071056788407475919045314223942238742346370280754947222763928174992631126292202348148478782589258338210004274374769385680448845146035445645294343991782854833324302318546294906655736918503806160009197296598362844556174923514772721293491589655824629064150937659968243276600098789680022258191549090146495376083084202314877645883748549825764456673390992696349479848097248054127544113831229016608989645099612032382913383729907814752585021776145330176008539890084251019948169678937972372416289284224572463430369113547131517347243205272461068284151598171803140316684320642720714034644734832234148731790407995866379526693138698638343785952089464452856409450054726182429054857772671424267285950714626700963715165934287145194729262978583946594182374493208956902130497267148203382102946459546838217566755879351501130602441515509744221098652863235521365991661157400921367982930001352014918491923057271333660922495812658154124450710860399308669316863444290097038716760577535156374089284265677937094788288083565211773456819585765028893590687170079216563569550151501388119146751331543612316381550740842965990801833855147368108657076762447339583159954273977294920181026238022450445828854903621360401095508938169877738114570296507371815926060063546241002090724427758666223295921263104540151513479439441977407629954553788948021316701208012807473068381031646377940353145689918019721217010413511590194096668748412071006914730698426594624961812687282526764164701383756559511308000149736755230605104401151862642243501746140308695754628289464637324974731102067198955825700150564895756836706741592298184531059606222181088587389319570830823840051746399956529010819988314257675790551432255347445425347994380863677531567647851028914796010882327890266242888907133351936797870461315091054320806593096158314981124145838605380398205528440694498237354233050450823430776760027240613724638920627849828740299206088211889992847543604600307964352576764549128066145444614821164335142945480875673430184816908436057287759719775494166378365346520104665994560988972623162166358400937503914338984909026035461728356681720720743882851769685183870711078042744973819595065985107312515670338596901125177531831084328996262630649624578685824772395760845308862155043468048324421248046147997803614041295560620856014464361288737643559594702061717277499589462272488423211900923947973417941520308631663624513274846056532154470689001387639560906514668215303954261493857688855482361317558188149850029357626136958861752532838707430556558234404857804497983268949876907028729250403329164392469018214675350095164323855835313479368177201614530772675270490515132157344146837691661962295308598162002574045354918031391376228470229604667530021665959641700664017012741501072373399058832271210323688717888932570096388801940727650606932069738905739601021087916553641311084628455294120805947963411390796950649330832960280094130221641334708219366096911236128148343777943165700417630519449148448821943353792624659370861901454658003667351389762408202796285832456048529842559224235623142360122030966797017370649979707036751911512769881841513348774020187533030394612602049822845061753885727662401841874055386617452572391385915471895035119923630338570633170127636398220970281745370500028992984676424708971272861142757494947747682516571258433265334583768919223546100707750022095616365819065010906080199891526096432587672517124522235327335214664580288802637079970978599421853070220200445446024787681970887025147147913738263392408983347650361899448719197475700198920449987044414101418576498904631551542489427789737546056939484113779929592809834489889358808236411999844451818448554372117588855642453562689710576240630078327570650488562831676237974400095461874344197751938922644893274926248260171654686397623684274895923187197614679927616898555725383075302948356061327121774917980679684415667985373315306957062585863606038116722682361870024865520048857436598556629265563936011003760477655618775888464080853758627416126450606193698007762661701751171890137637111536304401586863962212179947294048149564263235271011142763538573558093688566440065514208836422982755972745168466876531836836704410961436109143513713031546504322059694052537537658982547133016530549494191842515568355588429350426644196344798982073368354764304473546613381108535591976052140920414825770427518194973994106739482416946362943135461568424210971611544568139626152156550009071717071225042599320461839226529140206737627873302913402599649863860309427043957721116811377967016558948213782158082992796694685774482284337241265776812815285314715001397466541829283692176433143032598522767095776412266699803161435994415137446558122648791891125306988945269154984355517404136903242389759168488644964870808241511927297589693679435788635021537927998249492809019024875591412999333558741909960726413272775701098121906305277926585901922548328498374293280062320940594011830822695664717573034450251050932011415463945057047408336216271566013897674639318710164216279624993659094659831877669041184254947950615735906814307568624345884483353670378423120229152431907230291952941536153492694694166482470129289876309816644119123112918431324691915196937801943869383461130434420511594079564948385603808124515102122356310513170081597963389992718010055357148066398305434837156826274227938787584514145815005745619846944941387408747240110594830813751436867786329513034090443118055178138423212286820981270544346737888809093857925412034326254674164191995198889239977743762815988045360018043371648752834435548266402742119237617091424853139985372697962085415155424528904813650967001098917742138975977762431402432952342331078356294216344587169150336662972933725230966099464745130685630565196986154673517257703095110955267484406041530632228899171165959947705294163502815962282762881597500197878155704415802401311679557904324439207004895311073520469039751967261592323340992705754160994183226773146872616083143409809206052141306387606237498189708806807809253431859661389221102327379667011389179748969511946203142205823523797125957107480147288295499760673158383845336479913712734474101688108929518197899704663966639056324138914974541639027684265966650500726580276279198936053507162234327383708767916339015655508728726974969575309436948779835976660569792802543342333581046597071768526390204050492888684453835440215345524289943086559526760451722875197380261411746031064351128683350059338744018695869214940289985446096849031963062005109927291312329100244861591701154939323697935733955225410565154758921303591445106978619398222560341881575660382008495275741309085228417121437574499974415396513935133088637294953768431049282875007171227829578966973273146624500179281931999868902769748218077692107496089172150260745285257934300827178862016551025603954079891895897580096794350992312071795666719474918796551832693212306114766520485237316178748551713354749622016945022815361060470237391472818720873513606753888575847335192453270874989439730316088016862981541235207354357502273260634156600601347514907473019231638121601683390848999290090263421955806479625783647748090891924463765544877822156240104294835903621606481075516854797766286506426705971438347385960735011509284022636732963586502205645494041465939518921697238848632517451497975494570759245526309740645081298107820253459952945585971148233424725389496550637603579113575387032731451778377026882306382212337269117278883103683062991683899826996258643689537510269704871503812435324343215165417037258903939760834227214694621072587912208137276993096584316377201802862268379937734886607233876287365862052161449657547570572310542154293185200681612697923125190233827295253541665874866698613511336316081965905353310496821028505964250015469939530037079027648269559512627072629626672879169537055892272021567066358090075007519010297656212608864970946674626039201297158331896059181562412779837506160465210079866722088617327748322496226151254354878469560528313082242606805835327282777360081490658192798239769860994099600147606283148241650577517889890779418760561449574417740477485482591802393576998426089233311314695982932526250967833765012343008805763260664650003838964594743537058757122785677620418702384325908863174950750499834470464073848284653106683578458196022846643071560551262973563412511447135143425846062712294114755749884109247136260661115523032668430562958804289268766418963421831796728193435710407611948176565746618781103918643529947331500673297026401760186473500742228145125445356319896291632711029029140400019798976598853661573751644865595355493246005319784444516317590368839757135188138886479201203950178741913022359058873089025518504670072019652212110953722371431109272296719436038966033642780276448326152191291400312382064171254538054885181501049162824645685230801671491650126187026829791668365076296304422645081020385375552072237847617585679051686001560984518146368071488985766116170377679989477150911287581301688861522394235990227986704431139218727879654072167877675168366895646947322297094247909316000012140166937065253148892429258304186873434904881209710496694628526308686503993239537396585760915410956881336056041463115752147169215483119306919649167055826543556907954694464167015996086611034303667367105924235677519164206594611117059162987694339452116724775293561439529461902451929315840752267959380212629397334303464535779869430374924441997385870208674987543524114591706531277665168741511079289095134753895297266648582949250125450352783972495313799034842624336658510123315269206632788496028537665511704846681198219263529408014893467696150204380830429908816783950071500373906834157037522174455229762311618556301052623372502645528086723765761530820966669392768090411899630272887217478146933364978247163312682613428740937644699537382322939796215320596957467178634727432504800278290366332826303975851249852673044530062598877366577914856321672248958368225326033139727449370401526989410504931021754386427775244433168234077814097189721746702848863906048302275875362283656827105584098743882272771611680863962585800594596406033519522848977252196449935401146293990399651004333069885789648953929714199650900507131811298974010736679105760846855741016265306965144736245987869072084697011083837906211042213550410174780603380228864162874682633902151406584702415267795763132325114118091014655960067879882836142126483787109712827172051170687237527088696786012520556699604256423844921132250226539520013200417175542333855085686823215428598411164923771457886629070821332212966684576851753686684142986398408356329983721216512630145675654878561006239607099875356702477158478947265479669751140440837641883691420604579852430002531004903951653232452622400628654587755276025830867349106735393935867943558185648632541331994322490389119510508459519627923945265433583257142414114274372795623986146670743528483644257761954039193433131464102831603011900231836112751304903717006455124286061642447175897577056312111200520955721318067263727012932693001848017559323075377192526907863181983895087026412584077082030323515462570241508698332565607426360644095608772053932615851538742429709952497648460957247316711904015778925447149920310917685537828263592229002355597405460004911747140899968036990627406168587733316219742997780476873587641311749120895340545847006999865500602008510223642006082680772109483879421206431649476286996512920013171631100646013490806959623187823083088638880231204095771157686117839286980889523687217922090987523881215894368942965819670255939259993861326921991304202835354763039712538188287399509397469095428191582195493022136845679716429871923009735768043004861935371255335792672947168359696158656805998715147950156909775757060350736985118367333014218803237268207674030014958164862695396547829381185974830471003164423985115133898727915444775840944838133465857730265938728060321428246686572178237024494694417661543279543002577856268334962586369321727900512368850591154551608481861540379128758991746504097561704110199658642188974151483852901112347787396107564024751975160247805132657411101207668916160712063237753572986088751387231000569438981094763717108436170494514858939261641233017907492450460619701621595616925633826923258188801636023370222696281030266363113191772342267534257105927871343898922987839433918047402225331734225540516557950768601954221374847519128142253061544694084718152255702236381359206407716164742560037454556865318139794288238277853431060178398028510527134389809160242635267598359094596455816313729669257798641441960641035157579670985499787324385606120728899314772408865072956966032599592444148866389567121154367236475507997248908168242401529222510734521793839344881874504726320921188578069159138654662115848639608577436307511608786746928501123702365973471347524108252623978128225811117444920961391223306389051898291314769022226714134747046457961770255303370443361203815212039362307241833630564885601493036147170795175280654981703710279991102912094339005582020750265881996287470639302034329864795291055090924787163022627470148577115755182606327773576597015716465382914050011686501154115923165720540068861302868071157020573778923978210813856471891932002600869701339980089171607394998658665224218069274338414755389307574676950394336134894033331676579968697846913200540376070114339479651631963789742475662788794514042594857397554764598595450379628396574565133684011600827782928512664974092691562787960131552009672727761593491288269098956154566042322555688446836226296015635393244957042668947526270597847808606903438347435763885151011004753963058033911227755531779604969527317615791813019340254265362046778390410614807211847734747959858440778052925417729599150739840593201617548556822203700342160169728137092159565717915884286849426056119142913547964802796894185154000978951770373100517102375752609061182583058111582783152101439149567222517326902578949215410250540775151498714355700334273301195748363411568123073216771066007468089077755518940047905751562492145726523039986741231200269639892450952388622465930484988971722757422974430433705638853025987969611124382646488143741780882120870665760046768603195093616062893593008061663360499107621971500112970969387751982767786512589297446278217912018802232449023578956329620603925828065635454537160138369170682876555819825609216327160603764549500485045557687708508574786517892746129129378152364862071858700782379619594379316199625549223925886720782287808257789501019254102391781746804067308322299791327821430137926052347766091898805404799920248774826045610597769676575023084630430503949242290896417910473642314767686887008754798421868113036771169048960770405868141880883967634028280379595929238981403032738364495856034999455855082205437629287482889060431096421075952561221501603008946788650208277781597851186605609050436451287038097987838610942165259117724323715196922173904786861192261742770419122393840600103897628051772953317252463402545013762405227670386367005562141667663972316986647402686804866473224586902628342693545668600053720399713921076133713518540955971706541064716719649452766013333969891937928716573306846382473163463289844965007802301667869182592382309920751216191199177226861016935063753491695589662557545539383032888716220847746549439888703618739632696513851619299100724896919907864901426224495141698138711235334959929802966484481621130455405796987822759753508002641686789198306048609384386004177390314838645492777756111333575202932951728284559882145958625418028875331699662387911090893242894887818076650343202933252555545478566725428819386096341790717226580748939909050110728543720339903401037151796199257225755267164464026452029140402745522223676688430930751620567763870080164034863937206144223866980372514961212820352512858368956234154067907248359662979269162528740718106671268601515371532360115235178445228062942973349122258822224376100012439264378583636488284414346397486853610845382690327000689149725271492254800894438262497738764404074320946360836068061993392601234422382703601787419467836543450332776498883522212783755453778176272892786820478302884059357738308485599307270879413162673477816728878451829903888542914878403533496149798244574621278473067580760028763887315538181639198774947758236623549358254578856135467033656909971349797078388155959300685492188219906649417241203321335425356282981187504418806324462481031549317208935545258376520505016530382883585052814865785759601254784965381143233186679291528565911633086089592089112181972059246452606908673161082202626544278119493551862379949377658578623858128808493113493511670308523913455588874122821416117239639061791796082711675267417347540094079091517105449357330468088176076380626719657658137378630043384446977399795010901396835594452638358259833733806679191954198670100178953884334301140699627875230152892228063874797516316100952006252510765206092130603334038649819282568139785371213281520714912718508227074339985461756121156679827635468183899319151798807825658547691272157430973590794891183060779807282785139753168924137976534841443891819293540001647603631075554134678128741524883556467457123852056058835844362109828433990061206729776548101486241331963323404273466544838247032656244063496692383437061124766328132801948137123167264394342731163515169772491693826814474126926997152473103488401743018365161909930244304587195299521035715506571502452716014526599880502718366431705951071892078330232795903014084415716603583770543871021245026705823841691532145148693194341912269589279866974144849204695985716859219544948170147264934420204285955566815723841396720578646924538946882961899496375121911834082985187133320002233340838645924842067497213023679576499609452364642603990340637919429762670145281791403741382743732419969372455497750401170120649785549173550769766944123557968015082676393331705236554763820542135562875831888754572955413201513055941397822168538345941990225829846571732007082865606024942703361483102609332483623121372287785619123577644734805917302269467981813742521235129798193638426984371171939543728158230311733904087226595039008570277784437822480771969576032297970370164646357153181533991573739220643211732208959472372915557491796212752864095033987011069233619458981601175777962251213243984923221958892088923235857472513442532092259114395796791705513922086431076087253240055837407232930514044888261477745204073952513946996988111232915867734154054191182746001086738568322779436317351456581529347725307831280158746624329177688776233673517700000402752106732686188075620887745526436527526601079830109856830058702121536428959412821926484017873960203211135412623103900133528503865949633686687772449557456375936012297258457825270244016634776483169619151364414589541999874006397132877823595010478448617742197564853376303808205234457592860885629876094321900927381921954763515303164890644110456607564687064000601906442017880439930568604341053212656189828871707379574106194897479463518871924452011781338419352753966699885404766603240459873214300432915847666286713058791686432401991771704527596710487007781687002461888289458133351828679458439180883524861071581864715656290299483249699492900137423139572625331430591035411874390042493603084111804419426112212188735235279470921476440026061364196217392923898041296292721985049868938315549557045794600660396951455053898522977733214793428279365914925382748903260348248018193587560621106239717870194343954307468580813198604837539747740326110167560099141604216672178231588338007290232817003214614524816915514930851174398047758457381743333859756708211930472962136736629406351130592783722258035810142421697321331543139092465379105973560478767029177334262778723694631300221389682314242407306931537103308876857958962023247332311014418270882533962152763247314883624845865362506745879910556859449294329204645034898962054500984649637425001202717740838175586220159532183301108604081802645195221860789275781598828484220835659572768805803841045789154432201463548154124413227026836580996579053055418457721039608988350684949986591544492097143934156341131180923632017162054137085489640735489744526145204677195583680005702924003622630245611992027651694616263084132955068838716876319836074207715364859478994745819027062138976203013474169249872229547429347601338774771287417633202692469256005131598344703368154473272538089125711464505474994675277690981317851991391939362376571195217450599486358050438854761573489113560709981693021265516126167372401902045614859248715466519043956626289275543575306631765545207665400538498037080924806682356140589717697035484446380723511511998062692973586478186686732151718130476116076831231633461039005644788927624367667814573728115196375852979122781529820458617134657530799778175824147441586222291920151050924632664826027146435708400426738350131713022173434436508820323636042605144124978595555300724488543314191385706972951277716618505423321353674329073423485979596160213103244259218228150820962701568955226320039196426343515390171043314806879084555894799199959217173165838076180055296604675572055964816474551200463652694392521936699574059396858450493242032376143377460235006147979842728259832350267031985780957287771745551351824175216713613846568893505955646507524695111611995431123875820622135410818185584765208243385666421604891899795065534456690967634617555981621462816450786449086555381786119027363127990801433426480093032481084027961972002164840046074777270561645145515196755783216601794025196707297622827084666002037341550917347615012274254798661093810152186991434065441397267105841851436809243251252988019836382800887276446216803987125187238502447769373817053961861759696171040722493695992330034986139598811456454058227184420231054359803928099433620709263220157578505206878655509040862811332561378797968597194767659133935733965121767596490371160075184373987548667530900000744317419306991949051607291688811676681471302483108053509983498568202470628145087735575999546603872192842150099306590955501660754086404185657069769026951346850156897259607182297772271206208108660090465530013673867420414657633137464906404734548095802799995645868843174153653220997565678555449387635600244116799981538706117208896074982012959932292863697613926645114072387484720987009126452603754547864884500861811939733748099198938882864373171416810820566825901479234944749250382222191798874631791108605379124656728175680631285801033826361305252023980118389705686650277079521624734621607812112899509181692005644610859767830937621478194106234467035983038449545839487611949580544895979316238957125277197131676682347714253081801005548097649982506952455212722984592468643678575600006600079595891713060684925977098503612771772102681673740201120913190526661562721732295799565421499916209824365314343005249648569010104935992013401330561114988845796785830126177125358011154505141013136777799868241398788623022136665475920858091096110142660305587883969385402206317382745677525135767007898142860459996950592244432256304787803106794595794889787572737281918019831814961788385097745862686971827035539633623072584985231941507812359130064429731956583630344064828257189420336322939462133529318716666959097659517904804739111115106466039666608210599675299833155097448597552995646269785956519500623471302037807992370356266869404163896144473250948499408519750342879554415387230757193452493409969113200382212587506235740979672673924351136287265185065591160675816581872485279211515655687798692061430114778661023956105830967263778280253874013670356380649341631579336063735294239999978999859224430372613411397500644155832763272065561774354595384543435788661668578494617008339571376377096058835940608827934367941221151183189635222017083139061470494458204215301221402889109956957450526720740690991419937139852569409824722366417653939093521228807289737130857991239221975200149219185269263325387626344222989859512321543977639939161419344503430332684059251865933273257848754545108148338838927449920535511923673919564390313749668109839654903802270174422125185796991514937584007355314279722973180856536121569901237051690914079577547924299804376316667671138742037019260122109676948868796595260087503421977092117056304282047427591183436953827120660798554944116984985772117461557669638928295035640558118379206043429320448855111025835674530549815506684500950915233691664512595984470324887462748894237006203061865919851880315312263504426335079583114639156359031137578230520885342573124018808114533164841176254698807823435377163201678710264757031816443331709736981584045867045175192367456885799754245679409383901766849594277734940342560365232972326175074044203309266899207115297081001719988323815098147321940323205238643661509706455574998763821487014026849206656988456071309735478597850222733958565513765134926494000474782663574472480825058539618708981764449296637825142781679045278100535622408363617771577267660893661181769547516646845980953989217499763523893868062370780696342123214131625481316825585800212152849366791728307105690315994365664718552948016009936090283638762923141367173202311967327371504685519480273613885774753824607711165287461870185056165039731211754002381815339486232540399773686850766410238076431239605941816569947014860546287867583911596755410163787042271473669985033563335496493599863200492762602014045354471902035511677897010816632794979834311879465928639795585398396718961747041504694505949118702396331850794084181823745864823827081647769456898874104285795480063794517030422751335670940092159775683988823601333857979637946264212881891603901824482316756346947762051743510386228984894651750006940613633122734343058562256896045911775739384286107752430033569255542424609643761957327851122131727453804787816101705732530979291943957339246672454238441909326808158713176997101243795839958919714795193799837238398720008048455258106771556310706230655678701859811659464213928467727499796202687927045713720650442646854666470414386254228137307949348736362767973336795322157142088853283165146129506125965737811865917847152797552436428080917887346303767370827556384176350376281781059789801759510654944939628763420169029814828530443829157594992408996969793516853947194132399746878447596129180259299564063981623448437384413150688311160046241285393128840791064155567111337541583873722203503498533528724080256982353097877020668451558650517145884579288932597975981375341603925282682159949036284286083251108768543614283013653161994985034481142539731306173240872494592646964288572882911230815662286940959958587942134099079278920457387195515510409339321850258024872221523404205815843036824583830995145975957469267577367924204832206409432021044727962198651157486618291439403538144397210639033120558207830887120242302823046848941481632552457704618636325499884494351076096435584757249630021697796712358886058332736594954333968722055464907687345019820212062630907607585905159360313260475260623359343335317127876065831423685353538047837246868689590795493394903448098028873206447773167824858146149114518917280643576191153929460842735692207331164891601833351651502208909444583244095022870198659947712583153245962287934981709472932481904312135054623621949733929426029802268217213462879638756651447315279773005046742508269368264716491910485783776587729199619413193832413674729324926269655134429728342074175635767990863410752539022528812845198034112251926653340828188636717412364970230126167210582423269933678900141458315996647388006011492805558907190985717291270457308825742313726367715957214188553185548845872878388517431819383219105550404368173921783065421400018797440619783059304918237546532098966293871825458742295182996929471121485086860374574462024802262986323160859579886497786880786816611958983223647480090169430542968332670715840065827304987665445749610591698347721956726173555266990566827409522713548001941111580306899714008727220317471519574058229363179741850579065631280512287148655620902546557053545492085914797338390369531731910368879474716956949232060168839462492491268959196468422438375438052252418740098059174974549504399188757556288184033270262204061080890968675853452954841771341469934895417188519475630879930553648027270933331214585229470766017926219194650561709889953294003624227393670493954875641449869086132444745096176303111023434732723752840239149779830915729827731217723729315683864802692298655654309061335811844089895772253820799922009346430141414976981662337489998339148117676664727221194330449181680328361008112047992926427186030874281864810331196750324095011105110375206747110840860315596158948683627296432370958639021743839408440360549816551219684686569107179956814793777693378894273620824705336720424643557185185560822396581127183419384275196283945544150747585498669543832227148813548876696319324831149198299506221499675818655880132895755608956384061298075617501483995683182161219154622503409311071290401421908636059516687184377029681203682850158667320654762821602143815726919296827214765674057214520457837405997728603317177288035134465476443290146226625393745480856429185726573419564885392141309203150387582517172120658590099340802266961569959027073827476212121693661559699408297730559079480542526135418349459511112624624593212462106435217357090668072410988322102768139049743167712807126926916336755564619436543053697190287814015248554727501237509422409728669984476068978510073313287340705783963961595057682903763717114437965270634545094849913345657024262794338431935430634989446024400846937136204145444891952698537033211118181991476049213007276663629483306576467968261062241723205933499950459916839800942683815983356960807915293677466895037162372149458707753759272336681957717151332133215927609103858563695402408008054276678152276712559666479954457331159623222422085327626998000694136992833865469462194108597054260959187302676303123669908147015881801915433849842482822188340749268299352188946406195756316692021577224050024859359358017042081419367390513800275755946751756742424206555912008700663696963790847059259023673944284664911236517261018349502536297616078233624471903909925543294890705346269691730631662297050527445951790481682990044322826162266227759083442188967891032929127626694474963790752164849917269035112160154887700943193979399938225241054178235918103863863571102318742221035466454949689932732086503526588768586216965274712319037953296299479340745202876176758709373526729499102843835632446021806161542954119661018208959754824716587166442056237710157623987370396812525596321394028254057855554748045306761327284672271621527719524059287133914213116478682813616715696837915555068534371030543691203268273716259322145674788681761967746489703105236461124627031646395912030350471364720880992738988526738984197144440476789737816214052045040269542383930304551084567779055453995350713147951314002085438972277485358502086317557433904043487325170057976898846140958630870049769580933491249272470464214035509246647134352412047713831693605104116915616721889997919630398697707839892066196933387087750857387643142647873436754019549796216966029728382493456563484739970686801275198290726544002083804154882127258649031567495909845554697258563516725013115685518273835592960178261071243305744058933278642971682776194817478226759718270512614784049511363925952209175208826936908943785129657525376120979767881752588422180901246332437033572744150176285829488638283502775017657370193872166019595753874393506686579774766540703521801180406518950460329407330737395555319688852685599511014552654943737327691631933343340174511800915881931555443074378177332231512489592144209566173302680238178859382093386371229766067555877807677703203898199292982598002156026526858228582418113186203363772670807682923225640530515882010095440725807630462394698745793367014970982645987913307196334907210884068013700155216923111514968048051561141631305487164081131598374357252647585643525120901253811812915142192916640615725734407816379197976274695947890175067809574663499330600227559970524444673473999464262933005885742567594860374366059260505380741970095431790146663457563439171264912235960071078266638203678617296502964071351346878821775257174581886375318006332076495399592842617981590854772287967351807574207154973270258403445120116346536921755803372256128049035887144807808263241284710629094558118049980434142322601749840235369992109123296137654148296181051967206359228762084776899599357660095084227460984945621796321913798669895338775052111413072400360461596224808081232275838817749917021412665430612253498063107068063428762048132581732932099363359473480350607968252581150381430552512996685290862166083611116810329897406809306084938419402149599753647744202624408664892978154040641648373907904771962698287928615974354135741836150193748240232325020488988232930027188949128715450568585632742240552712845611457000370977152676874618739181149312864820014173364356453138836532256673055099908959200838952200778409293771514305616470468710609071795029996936528788313512911415928117250503858126836660025642679476617837097950385717532033779179802689658596006553763731975547879574152284266680544113039741478097507474926367250222670341773609547328093204753361079835666337128522385088511302855575472489123912772874274366481915531150292220365476315223423123534572799817265757961523584859768548221324702207735609001169455853133037682396139637822135333000951903160513305459664216248045428394244262561852279022280716894849491402220502012445239457860309930062198336869379229339046125327494666870988158597241395457821015384980655782743908531868545688558727861134742888761484291196508320440145587151047053549912038830018166740950147160916391239720516293369455841925083213344236085506374582590934170569738020527663457734808955509189778417407398294210953380518994171547227211452505111957989997164295619917374717188469348220943234269118548254562064097665097291141991209397267654337814105514562168560286794288498888698909793943389155624160482917514169120887185185294542497729789771740010739242990043228426344572122118295012926799331365733517540214573257134041778322827492330683112520514639655423152607519882978266576262484016661852423961142433572371764483613308873200506783363998161145975736955745759417661383921783036046607463736973012669675010237322460766723700378680507410706941127045050973990807977519457772623412905228105228391287019864291490047902184280509198560349939099583326505359575047509005557233358280910823968578060451168883335503353113500132694340083300038469567164435480576470993352305102518168458754406067116573607255587907388113940793250162293124572836103301005167584073487630420489482711007362115173952732540276907396219690318547053560529448106445741500725055758803289694999634616962154626888445482647227605451774683055575111509695872564939996403290015638422964599492696462165265267169110276066937245821549347249857901378045042965976595298859484063493838787120395427844983385624322889852118145538481198397088284371199349728531834262159060129895378082579036910085345270641683537274304124866203048681313966781038073921687301263837588139840023895610240205327179086309115702664226793483872141445452253704950860811083775174179055802897861856285721049472473809376409240420751832590177987819511533234904258987333787737760216732283816239918701418661213644672218516080709908583656042036523515467763180521310297014730903305238201507617406845484458676388156706136530134156626877398563398419239983224865550232803450271830773406424791458305995839523612232077008929306546313517009364087267694795363475733408314654351807015389450523113731654065489906472849521561129811507982497693170821478369034331147432937002335501605448969589195422893697062049882470274940536494123486740951163446624942241684004468583763033968469514895360937578797230056287220565788811316706052555163908973661569169281767061705215394246126466303909894023357650028690168597259670779531530320279337321396228206487507942703827874338271665009440286128286598963642255784124732862928404650922683616290881752923154498530074160718095318096705167508135410241995777329215586633043888719972139590244537114340358177243074544239768277096364604320653641050885087084951198214896677347599774539495441516162673256055668446291599100215774804140035062405391684172127921674723757264237537526861807485785435875839456795489976694560474868005503828619368506614614241246751055006442298632868115544159864624536661445118776058084446081635979503132378216601035841784483211820622181053407267106212530745515133901905523963071560480470660757203971136689574735354889083051733887805627455735938718517227789755753749850336937392420466568970517244837560236494155070841858120913975089806096898798841159750917301662378162995964394172054179117372786161558231373450594227985772174549920841893474709723717893012042815791779514949940995909375707177859037108272766613114739391879005512115110632413889845566933406468745820914580140683329596409120849169765458521684695420682038411088533849844111405199407714883391997043995647856391643163567018054409390849926555918295650118268677094223008004365429216611315784861179754652053571388219960717223748040746699901521762813104786553410803920021319362568576029958546532796905972638001495753286201721928550525700423762004339683323719643267285787835322158153759698791092015933941357074757258135959850476950425205207012947257047226260022962206972182064377857649299628226944196647980134340188203407622888725150567293755315548241756313298135592917518070700589154381433870547045872003074569729178483397838950755670569480873542473780026699488773839419260471663110087707403346466978236386993245644739549249687965674065903844548006362708530846830251987676375637624955130645654841829579943327508849302289279168491686782689439232615098111297335973760202607060758683197561416471087932840333758428432697364555162123165203262456232803338662023359934191541028018402799919888546218220908186067021062585641741894603339930734019590956294830569963293377512685219693980892760367681508960158771013860583755977163546343272523481411349780193003915680764550251161452421893095952373471725524661941836025988618137798895701572625809553685031181125398911765540997223783363258449033817593675386745890887358590142638157124812087437711541041907194329390943362840808505527158487449376003129262893684914552196590228134081641213749378025992129292689446361830818860978355077414165292814610332159139391779924022296518849426647774776914672295904764136938391354916395502178876598619658697378679081748481509478161530009159536313969283149211559446572662556249711682977704149837329923375485657388666419042880011761516898877644828255419930727039035807406396399866826186907196725383511815752147109180009744633132630941245958725186131211130607871311396032691973189216249171021921514034492880826463527092368320195407392523287942578458386085211895082656808422969943410086851669182154631414509208054694904554644033376811425034665368731205974912826308059677421428060050433606159838480010319943060978516674755574573665849149603496912912969886713713868441215322279468869415455059253898395319349604266031294295468649264811658700627168271207375644523774944021319297401220407199829632939547045387359135384535219400950487316895377539223576133616376806142071727194329228950331359494595032327122501474997245026289544787266585119625097193533007515080343905789412307507276517048347479113494795093278682327811179903668178206009753604805409427469594158565840748245397109018998226607400038247973737250483598261862876932565467420923881338563983892729178894489553857514268984326622413333763894796681687466819824421193510382916518636015479221995125084452778941309168868954837001717324649434218981777278353962967889148501241567554992167823958985923308448384592452029841693035569981610522800058781266529368561949543111301914901684005248407135270554854985273861022048144075923818584183570591504725016150504226655320555178259745288484888800211906643398467879470476502970544009677195622430930643697056846661436677989217685714676292893164607103735206315877584274051518093489004757690814114231131304838978190525735897059112685568932166385541962170137304212788749667204957997764929029527272426111264607801009611341825332936772927711343450615779973556313976534461610470378981154549563443040673237337376883905579516870906332578549828142567762449591730701432123084380922047735554266856393271115611209293976210184418486422611339889809450100929336155473209371993483067269764131384656140490214550812378187331070088717187904819409816691816588415454464047859220301856821962074093785409816571877829582426208145322910188955720113938669160327944504371136856347173266257492681419181164842133584898018247344418586043482658303086603278068195614158194638289388013757458788377014795262840835486651062953746785938537010875667902527184274828803048541159648699826152437152854663263571236293152650631369429693194081795445292743360303364713305248602646397057765772150143704320382716470251496099718083839108041015632756571160629231038020206041812695373451077143826429798397010148364896241522815481134678573525652461158494290509332006599013268844526435469870812910505501174855542358651503215674428444606794018565010602150686725078783125706602286508768095727986882453666928406372560631329836764464008233033262598908715141720829707879831090578721808452514870130576885962489913325706538878610319068897017944687101480090986228865715506282338037883818641015139511538578010909532304241142912653787834939701787867059365461021100249871687687997940549028884868151936481920068494924844560322131988385865673178668079258513713347981371904898006374720641490343431525642600166518201390451727504399525854946880751784198259818721592379613762188642384403531832794954937491651335508912985256638691677621002841719332684001594773711938514565630242479310570180933289282156013541685377636223228636639170687324141600499910282747358723087354714008884359081546451471024866973187022627722909511604983201932596993358263748475433535228649520887800862233446439299168522365888451132845844510748197618165171297956752149926864119231863728049544417488534290065912583183535535339218584517907772591683327416521993224818266566086270981027666702338523112539569892526487143996777876461164973485649070093918560244813712229902843170704207706876747534271965017154905565012094559864794327752616658320420818461020695201215292209713874754992166077925538522266698626793723353736247081855309228585619684720247866280437833343469468237544364530285976795807327925374719197610839001208711034840599900423687947470753348085191593010793808588154603362107726961855749924825622213294211803716402645128405919986919327007988091773994162065448537923370494116179802243457787067465983305966474642538396979314505050844094929729380659802740225985539374791664729377541542006407696440831940435560043036485174407837840026194440318071405479561431184941952742986567072362513096102113272682278779853753623316999532479323225027769080949217435945772181065524656049436289169465046188689159363019892772725742992574526134474715134579417466395822214902027150058524119421141168216189296107234765752043542305939641622822108805794322069070325086945082416774259146119275673612426372459436762713379698636516446499636607148866443285251068138499866241064975845676096170692295411853197141344247374271705431800149758403439067968969389009246616676300769008647234000963161112206565872388354727671793207886559612950807055045926446268191432973137933454894006966825071293024062992464778087663373378839891028649678632968790157473585837974565731519528473361802098511678549271669231400105293808028510041158411769773289044139740543083259897346146878183107407295908011786066242690795869011785991912775731127852193301416093625604353009374709513095736228781699176707296691727931569522766678439119864440306108653301345942208053282733284345004099710061699468576873599556869247421715858478214049602196376733933480060377539534140904649866833662640935766742485317952877545647256271776119671049146651399948658750923323331675462399861659808250907173900764465641372109908560305473509949230484173874538126796818872245819983523287249812054734762921933644962709208433721128028321466556863869874456691207784289277385041888301104103169340030043378617365606723507735789658640086690185874064964176700159288154414726896928618156077233885942292210774944680966554374714026891208433510558832120977244403138902349958560636288396191687825984604782445136223407880255825732963502748445483473067803306896849740152681536762191129896471700328606083832831415424023490728343909617192977323396968104165982486647632908538769210790093321712549643039459885293584613135821308259283926603624646241442914929975665895058000874316588000892824568451125503416356910799775448341262609448853801898559731989505276182465662577365190229914518457416709320678663252627141903352202189106991370143321446684716824085674995143996957091551375869069956185586000663984720365698037103988126189344427651026721489666765208813039517346917339336256734332001186450700978527967243513434225821428155993524848945701903909814701893166088344094455875686359099431685835126611185381735055860411692993005726645558814656418048305825951443407565965134511182244293259713676111785670360152362657494648426658212224814497868828528068532104877895791836234148071525120239877927614520857177096641987402379832681033886787881013267865708291046050505684226173587086863945068460028388333822415851436263538663985054985398724577971236271113355653341883593809071660523864101230999562516296322661001716348249606870418606073657175956694862626632925157833618570595479770450956691826626397497198966631070736706874081605207993612213317460988817211212897992532902076854051976974241268136887870311664483943521794672641260147294440456635069556877132834504169629875836147119103080550107086789427330020767973099759987422541294774328247498481015504913166755783534833204209934805359747946078610522330807956794621090852166394038943972620028901746429221707527093030358012544362032654416478392630407920971291225356212488860584394734662968401795450448234097911301403937878997729827638494955059122809687740936408205291211009126752020545266115366323827208371622845888805315289272706250563497193421925594077794775595413320702958914850861401664368299228919227135287347381759969574753694520730417006826914927277838235474316470406310611972388054264434078965374134471432362871607168364712120812783120342792430267094824948563161177079099769791383656186567865902211057669772486962595059462701652508294657999218243029080040713108210432796601133530550326587928734399795223490693114429948392543445124310816206468738003472076193121551072067191436898548592610770634955148407957929835512754429860966032453348171231537417756214339921436848983711567161713675955384114081048030376541148864233446815882635283568363380020120990068934982346724092345699012729373183184957270367287341983924372631587801371795384091050305880923783213015948294335743546751154020784182520697519905351822679867075440313802207731590324345216738884434394747828186138016974548339606690296952339672433737145638931698791828627051229285909314257957594328520127820298284757097012310125716614845866798299400367283860169726834130524584246300897825838366024414676694973458085577000924557589402607945016528007138040853354673040148162824382636981984814735025819498657634678268321328764588850679147228978792215367757818176786369700109054438592594132728634070642776117828447775562187261338357786395507861770434384408960914768280013982510843486605188064230427408465365225605538276399111062807183426730896367864734297925635469418557582528168032302718906476786829339463981321831484826510213203262015324062384632154853682127998121428500511334687064473936076616267092099134869796384810314018912769832464526757805079146465367021054429878009102057583820011042645561841815889924108507197385784112469363738309573975897461561903907516426887154043340438259398631821875031383995330173667880795671571130973157528346064965745528490682607235170521045828998573150504113605902979531685056385125256646782049526870034516871121976997455746640340044633276210391020838035190470939138981916878384882365740195598690474107139325741461972004400418404066688144587306214565998073193360129517545801271080106554815261033985612567715753452543537242158824641380981271963939004154978529552685042594568279234922892394459964787758762421112743143296230863852286147195183162463282745641669781033700885062994322260573540423804684104854069262100946639728194617023240779781413252635280579984407066528668554023645432417535265785200867986160467812515442748235124350334462525439684762654991653641168902362454036698666160118113632613141585598460419949175484373156069366537845593414798281766004741363815886777808589823000660445056066823929438623053876587652187922274961277730005466100819268068603936564944996224099138767619471853151173906046403990918747840721238358301198382005948323423377560348407437149140165831294439591118733601205239661777136162440566250843407549067271770267899968261370369550900449256491232567100544994040931703821203591332132079756464531484999948390823360547709553624232927162170673110123119857925649223544983790010949671766200823058970079293647965779622410925399116739903210880448503369648681296484234561632172062204346951836653132153794706982284151326451864825817011782172586864941613510306488548374298566900259538761535237596918136582825225525978274970755824701353196690045315009896130581265479080834583581610486662177857749205494015267496188379210172593953660422732226129276295039763192018943617895300875968435069380307018419980974976164354615853473717192748530903896230000169646719474926728797388984700340366185425318188001604038534772784609939425867123764385007955990382857773273967945972416598232161547643069035984448569454103656826188007263753466538404492417046082609002382745644758247373169416837237230201531446676107001935968710502224703645185442502226132209674126781297451241222545813164697504165461007186395763040365448136019232477871038736029505740033162485045565004812536148439064417862678998438552262238252976196791644134130486044924578643699423423333771532256587685290228539258994175641296944482884498128594199243765906176287608323887866249773011999504174123193837114521761882267852323457624966527406034256966559220504287307244384050672933284508150779628966882306254603816695153428085576588952626500987174742651781179286033203499034118536260110822057844708928814521192292697076369838469126418607960148743339279497047087496489126074872000070902639312137556189219272242808305622461528323535698881998743502989776104790453100957697100953959873685196445927694479419732807390476106248288028266722432405637994698276758067264769768600669037823047901418941786940862218813716454816044190835409508449801955911044707709278401858058809926240310646627549920458482348559388576310096517228699262711840874178419034241033285050381488149129206943026732692932461471411192608247998887882887189736728709693541978556508847441128641635754451345591249569959616905525849182118610027247055934446002516162611494751499572056216124442523220775577770670952712767788304152410086048117626690075687807886450285589207733131507430391968588468628764723930130172509845817603282370785379557603311902413020509765046709834284227257460379617371857525642982611647203435672221096749778246364565333763359731609915406159935792145529367397336324962487906324196294213533833757609771274531625838948760240358149956139683983715481634343160589458295262336954104489569674475082390135361716829472735512552272911871103167126005696804854575602303152866331501707309889692632795596750546315519745903732266130312719559667648088970930765346320263031953642129080848456867655537803631697053864465747734931165002758195937312484812122374614629755825277950436787915514430564533554743623049184291772939630987482247276806733168732581865260574608647999332126649431220194870789193237527973539527758421831077751566036165935229523343828920453586898289951393495545989817544735904037518441500058380841676859007164506622323447661191451641538795440592814590148153729027917029117028922951840352477019428069993915798741452862638773859092295417582680202171651390673694949998724776877438975962650689648208282519397779839509467980995538747455940280913622762499719762171450400823593914491835526200515473336566261471465635719786255627123913019171990255427352097554673904586605915424430940689029306394174091289697745408460850780810184010421820753302250064013682642441221565128424073175695913762768856840946411816301847776946144670508034261612163910940095478007757500073430457816785042617136497338965023037919498801040408156247957310427131552615796350639061491436469003522656802747258699065673693581714152296349846652330273950155987367365768671612867587248198904602439815664684834277593767565099613984877590639494901894451385930672076714260481454600663747263854931005513532847516749985084343674361890517954866211660369670566036056745129671548266916307995784153325134520643341907331938748179227430890194970168557596863183950677445295870629065580102211207324755621138580482812143637061769677256128598166261828488791274905110779219131973601824307168838816695211206654989691468899800135865353745469462811068290829523404960495867076816824746822555376225996294212531862862981375904419753539793448781012520809704344599760232176846826263427697302066407620346037325578973478386353501015560595275035661690957654909444047968284777073715789613274297894942657755643946121777656917841792505387515292709818904458907252167497769243661404199534488523711776306766621622918052905288036906352044799799955846212831774787302982601084079563324644338729577913180018833315980955030960573603529458849236556918705838170837639586231711758722242636215393507169435165157431077313907208607824141770302561797738014817615549113054064451160014982579553075588410797452637657577233371486924457342561257244852974631292100749078662984548353259953692926785116252123629979810847944824047323045796796579637956934448724534736389660451713319761765205789070465068964452423407298986575931160686395493476199432628627153186915351229510091352076209262823396290086490629143193520252726833499944540517041527504240592667348815900848687959780826215338224499298847813144920243806493091752196480333159040052988512902691627986034872625802057403541324756304476703031481195331068251059636031593083988836926261092800789732405839296193028506269987198364803203257828406519566423740578718580687372285054308866521820236820355585882748107875267413479149865744626457818345932787806930165494428118274406753251318570625524760253434561550016990800715218469786917193400873120972037410863453319470877120609501454889616917429563475786346979631751424069585886217676678544393028649168383249132364453238511713840353371141466730386434689366885489985147511895421694109010496793286081191765484874030142593920125551777097596538981960447533423795773260612782499656674270017778430716880294763077260794689207952387839054136968922928073406878599594733752851503819636198326477084258420230143001914266260349444456374645595372123600235908138922305526943121610871435460177311591942752014822845764242242751994203015071018326162406594978749853440745953580240830318816723740691552607972016648595701394936830992257292721616206962963990562620044696854649565201984147232572511226919598280381394966377755109256749803541975917432879746596725089367213096864180923823196250627421299511003622051394737302342365251737768600564473148126349102904365354273476032992857229803063349255532774837354916362348869874865074100962983457607560055329702204782709654828165055258182470864114452074321878245478532678352397538363092998472422500618852459828194710033677651719178926345059224832862459284104154064873226762207966043127622144120449997844473897596175677921614527527852904059474621562115785237229793357537110178708147259436420292835412167882692541107160467708671501770121293967665829172591572663207206653291461972359366888731597495434959106475045895681092560337608984809850132138645795401655549496387954321034428927581730684806689327982360380442365744766672755053813501767517411805188677531744207964452030301741555228851683241188907292362202045078316083783142547916683436410125014358950898366145127706554992189563526165456042972799270603624341524955269552750743381925873506084404363916593975891678818728751623549817288183966757880896330852180219756723196704478888662564454420187900909297853620224301473115701138733788684828483681451973123127791341607317552294698337594859887381233856107713042999422994327413458361451744673984093282135413586925825260545744631582305167682759289425340151163304662463844971418803929904021769128997291545653752297549439829970976097204176988713111964208025866742700855900557115699699541752501879517082579523347519438168911657480313617063266365975529370729404897291310249799451284848830826845089340517513600548201879383348590406128264695202623344359114931092334164541658053239102501674587679230185045219460641285227339126488607442999915618439215255157126562223066313388608305876404426722996224372380005294735716893563010796726297086032223990721490494418386986055021289270620986804624690978181443680876304364751581634909603115617396246638259429876775657912976288598312694099765956541281039835915327422484850516131275240360865292916344947193844979404822972649248975723765109768314105016349104817060182179799293600618169375479781430703507706505590658745096189768742318879716807003089220495884238634285243737225118537329502053801783355234135142104167684818976240177277037074134235836336934335289799991239357352636909739029033260710091167765929220037176460295041605500745412841318932071318638350437339153214176190320386027925025873940200497330908499811259229680063652383474983191989882461897575586844620139767021417393289443970652952218773935266228999164450774746446358310045156813845242907391215182993871092513596264626109011553928162905413200600767942795649478494044028412509260483709131337942067512141110286039460355392877909719929327992327587732153880587672848981480881947463931359695480482636265041968313596697594622501895060984204143403110844085046308437181858345911584084870429100279517790572525897255184561604493948874223901396322674307714152175370208328515466446312337022350647411622594132256517359957127480286276034103105556247297916925659175917284184971802557952970775799856482814480279973834817405787016459988855727935291667467214608712483795958542985250985285086396652164465716995218593507849186307111919014850078061978270040961347724731708219878232808276092231533385525468981842333693891873393237026955935825734244635321243789027622478706827429687636656306868161982570787025242691257988162189270908866286981072352214263504721422198401211692515150316453723159143385861909604129084578480261711744806095852086896529295837786995224271628230240629077117513853279841592712272413978542041471488087004915191168915274629388862833043620129009224843469199777693694931678268829816960236131710690583553847883406573540207454179822082627240225493377391875995871955656868712567854255591347900608598254577798507070720446592420623610581024027277088301778140484922839640108489478160120966033400176428299888038187059374040463681003422538362483236130577655833115385121750251946500451140954421656323895912335465925561288021456153011200976583344323075847388393246615845523295118939740675134208089328533043905403314955321884241870453889383094753168504329798089575575511046404995599524712029662440643827192109933754554149786057517060246486598506134600724575673754150394634229711117948265027717197893425844858431250571003769239345211114796149965918814301869547238173515046827083668080541235050356170908115705110502102728185633627775194021921924049551152545555343646490990300666170477769964628963692783716159728751620141527974312766042635303537755442634789742250602836450806665947132527380998687366295198679506008148456611466510264105767355656212669746931469361721163195544666633287926168284393774917496316496341138764749379003489170188332834531407168310008866688011322812035596321457492017152793833219209660888762062116402281472934672078717367541521710494649403524326986803921873650227594501328660722562654034481181005215002738791879777788407003941439373292764672201353467498003188464148238880319535998704773002604899425059454367132601180602247077598283159513643116794909068135710342500558720078556639328710127566204050804222720221561936099736110426968170154151008035551278563432013617821900669929397946820669952596040831576443520183029254793442292233548059102296467322661739310594799799065558440117871996117678965284020783418301373799401564670561034847515309776711528653989394270468521072748524799351524023491172224915984001932814172817531111578957713759560913789802566113746863976077674424077212423353242038979996756352321949482617879544671259969095025279511226494579587884593196626877382456943825193014253945032552426825051825536902396160027814443405901155285706110834142271146923073170737087442636771868421322409558718866707587546917028845818526888733538520544066048660349813240396705392990246492138847333376435758174307175620878988154139381308181070848758032417548147347532058478010047441235983610234075750250722998655355848897815464081424496381709574812427587002184893291352872202748653537837204742496714261695925498601310099383240438197597383602994083061701433629973174551324248571040823989378770176653327173568662368070343817231839967803060732221551601223824335121936310157452810296216515401028682350619935609622376890896776274224403694755218846089046255130931591974955930832742067094425440564026320107982097333244723715474069976586731513206270055213980209360402707325590081921111092365492038725727476892506271582664864939961743405175927875304982807851569102091776185369470480948069374081965467932541778642725748281855171534773580426829367227719471149765429137656645673765753751131917946068321354187432714851046836361932918308189121444545746014844888340252570829145029379812405595608353204441814206594528981651068766634666850329102871724605553214349180896183923854186007732559101189840526570431185794754321638057691985090818285447080945996847292557344614641879392765108921876939362292354339576036121667987507240044424117782754282474731828847692449031594240243943598974202148620358334326471080585163611874953731753072103992856718082947515111234216975675337616834367940569308477095974688332606105357773233207861405176063106795674865386523522414094487475547467287684543931657250089507388439231766302862250887099758489599133072697377156658155213483962390044064920368838330726072647532707599341969669648680978273028066237330839325770927016840919063037536911143318366405873083984717197746264416328550463843328525551784966914743809758421730397774063505565204083149331910410049380345557484279110388030277266139110715759852560891227731412655964604999697546047542810352752980676239611636553719212868874135959615286470757975731552494184431320552757236035532200250437833160276535681874018694060241702493072733282647339910228821815760805217278557135812684028594247593379109051578543043878462177254159059649985325498994727410918658932597845475872361153702746220272905298245147422042960128305135360879149847452114337212626512020530088104161830225064043820110472333117366641267474383423269250897226822474989815910040011411107338632135169394054624805308440882095564705884270062183268698567426140020476367039600013997199501416040269114333424505555569584678411923069230669219694316594634967176321221647366880730031559403556807031448532908285956850272854383635938358237880296690284629769497766424931707559331749789367679774215967649480697899076802330207310680483023197792103164343836516128664404706944156387094888822926273358401299933585784525892395007338445354517009642437487607794764529401588211965212627973103166834344003586394560896011021570069592923985744840151001335382903111940717369674105842286376006788401026064766528370107190637081451154775417878066612960819595981246773241953945284323346288455545792376315812271478872312752634557425136672950783496998340170766831301417768717074940256093898362904615494425288032000231979443103682196895043592886663155489554442116688831364946306111732154738446267958262056910416254113457467902811912731425199574231543652649480635401346794555597819367493823270617079737429056247348901196575319976337041420302086133699721110396550494304524775437891939236057276943473930360344956434610458009327773028212600304075674262260739600184973132163463071059061477316923413900249329069598021152704138608941926397513293753717925180760901617220399492179741483057367215592998893809580352639728987674506125189839729230718734994613115863878174877315469843438939382536323929982511251914371055786240030748824510006931489591881327706940760036367298579903805028826835610228427977274096629503865633860343508436505865736804818453616922573812993920341391406428027772690797387714051596685945950643313237937198490474697588377682419372625496066636037279585019285028978729224476429148237545693791840411360642863280978906315072291815302120453410369198274784364808379969672622701238657696342564245858668773685179222332012878732027948097147286699378045195990766417645346625244394099127531961946244578293444424694007526323536830843483723008810979727399323025885494040105605564282844140504590049148164763578977456569989641237094818733276893053814162348175072384845371830271024988951015847911815357863054312261384281547568671109567445632343320863354798151995047952136320380214073018307109386254924556582123710569419464426574520329820563437744898815213955321427299328248555781544500856981328526289904526630365907889841292548593978457460298678190884275827910850692009443721533148548154095316124250019457467732844095416320190102669062368555092538616985526970980558548192110672093548486415573442765733618470381758178884081880154382184959088047962936890776433416101496019014225205694037327481097189185132333919355157111269800085592374740919525662958962706164038273144057747746629610017039283376954439335109823425599525405792749383489146484199039587245630192198334380180310365736493702186950392585560095158250817827852198790237594971119176805256476100685355554197313619313139113156847053329542502614627954352070597853379227650238176116865978642315447512140141797361129686751586761026424044027825493271334722705283845805000994016477646152275270131782951888497865017266223984653223299429325212349784992101671245889460020316739794344843478917384444929770267773686970154623057023985787849625116240568759660797381026524692314706193723329229480540922525964338925878841362912759377747441789553822605017577939665815532294699619862752898759278223302962082769844858030068874308879928905580392287273236140455663899532356151296102737334028190074223949728710942504966283570154986402063445532468470821740973959973775768292711139363570699611657882683887496549501135244659816488830740560113055817076622831537647845127723476330626550532887942699845705367378775150585938721322562171692830586642359667573303722533450383578536893446431011665948571709611503007455781479014980082167983321854878712312588263887961772914342965690980932839246573613129539715868103600116609417799415358262980306483192258163406072288731636567813534075368617650641137246784398878276535953750732890463554642939515860824301460230055621972795169788800463929778165052066198261502299633878350568355691843999257478082882074519707965920465452688415427799324170311679634322718758399032304125139620732344275795450049093488782317863588908813070290409251670821457768228786384151321494789303534296304214980643932759950615259119922754377815219931793872519728072103569120323704383957915064909274333458995249721721254814354580725914936068727076286709402585963087404615135764961264624728805610904199761850718825402604530153524966969352753136739525404564818993131250993999628620715538715291412657311041069517549389597682868920709534879682405902493605905363127698772091555009858909462415984764369661385596288600286480397642056763464823268834192594020613899511145864408967002397665366973120569919374473733862309706069145627978376731133241368220927513201494800436623269144767288825592322573408393217955437320588242517379600025287164118456256571056287336724892096484677185464526870247678624996175161532195741888975037517659581997533608720790584522966766590894528637384515930627152226334639484694448346669980253482026751745193028730840491835205024502810744014902216556234934372402642604751347169296182668167506935045895250382594689049233349381404387870292900142782070109458595840980800730975322330171213109466892062688574159486225681504782965343456023431444597543424686235531665771512283833820446511828629434329368997013453348542477177608285334485902665184844752652700660978623494901526434941348355263086046224199522970668567780607794704080352726522060632094561336963728195634237855043624025293398710440571118803012332674468067190963233421853051602992195642884489205300629510891605432253784133610897882430984709831961977505558245528451721607445894835596487146508595243841358297760100816096662717002063879862101726501808989261805581226978539937677995073972743861112372661978205436446941322177152277029568459020424879970472499663436595010803376358615187117769683248905543428413210670765603843644414079662491661786085455175527257741577834441060211166034585371668503102651779685210911646138995957169320125180596198854189183515544203696156977594238734801142403396369675943742675157744648279760874509060981751672001870154207663559564428261157514387302810152289258964337153028068353531202942192205642869072187477454079542435284588434407859888631728406960660176929326663126691019705649064346798375889705076894352548034329224118219054132171161030765410340731946111919582004381976793554958355602740766654924843713362777972134834194241641698411947447564644233088157398572976832524210911630620001131872599630486559564098002251137271979638392751536030220137650336053031647247046758714404891921719207006433203919535634035127284749882678658225504629688304269412980372050954032174952819793990913615440279712362901697732565143451410283543609387705496414364664627209244004293044635667736771512183013775565699758551644405216829649239577054741435510323703135388954239570131528103800947652277464859341015996266319027776883797731876603767334126787575860082007727477502489708774097209389913988801298866095248571065804455871084692015924871568692967466245126369492440483272030688039275838868311535641784179842204165335189666507461946439734403436904212622629234369990600913927920519141814592187677596198013624922926463667311980187254884841808170569771137582619886588037007767954348236852411566290297511400230414058920668336932602028072799175637731767714281477487450700919465649350923726096450217302651931688515455352076245680319118695912444890453171037154618218631607513956384246008852916332961577072670854777806215509718786333386416221600059473500386668365066621701441538047364778892700768438164716058222589810472504147198149981423277708815312680663823743651957159325208269972860184463654005329322821564286566106676883481459147851020506632089957022088993921602113221597949584388173213945312506638792336740986655252299645619247260570464768092084064633948316604135774095531261431065919551242564542959546737112012231627922539160961528390082868421088614874336252624503353328251641741913421929134343759617234504771994906937059128610806601711249201863140842389532606214691923659740916091691562895938579381924816110445554908547956552193618152628580130815529735321160033695406196866992013734282812691151488431058566091720447327470022940067080460072623239166672430109002998574460824798600894492733306096594993045993671420571339923546122964191092961635928682059490452063817323588826678498183123982153608944171893525680140977663615903895838857223826226165506604572856773113793668322770963086790462346779506554212903663818474149289970177586826788095128287784696781305257867284832858760600615151972450874220013311700154622912343501439539374138013946031391939652266923404650308092543486601360714546580229712268226138685833260906411693565957859224461493029396850477726594290782683438655333568755713138656662430746546143747949038803610874773006396436532367220366703072160708318348310504942253963443458294333864736900742228165660370036811871531897329372917748372293052940812040561709898462520263315106017866625513778557780090831483829561108037018686635494833843920219022756066279369675912565504663453637747625121194855965147151893409207062940869245660729154436448224611181922023341768607436462936255640691914630852886446411792213971907086247556825321096304151307802079158592512171641347538370619271771477495177884016032502960636515530742698118943534829561444110514004749266763985373016129925464202933042997698708371573778297948486272829915396906484484953365822171884600921056288074614848632644707299961301082347090123038028111985065318472715227155592662167211619831703341564091063542607144815246193745384936793589682684587244663572646954736634018638580545170315891248397973013828913897005404934081552341232082025293436550111511171602598002584691796926824036875825593958158302537189468521329432308478693278312809768741651273113734098758481474523681188209593334570485915311782654696700065686370505130897624603086629937574045852731863678189521208727707542938539382281851632600892263615715801629376639444681568871670224227806169941136603538630731601241641664368901796686658379003781558877412217490005834780015055702047942342036654652055956997690731602514396227172348088123737021935063484733552847667158323818144942917030302897176889294187193446913025570142086764981116937511652734498396963380151108120303722565305705208913979988158942309109995767196422387174064315808762480912765305378478300933518747950236842785275060493189828876013300650744465846909121761835910453510596141465949481441608356524932068524192803447594941353110668418729287976672509704392567083209506717672083866789109090665330601551790850085727386515822097091919911841477624315378592301564569615893410461560460108538159513361046476875295837462559817410465402771358344980261363740014333951852493354492393101597875065441317835242755356684865611054591308785734416518678381742525489645806283967039918159092874464734903939234233583707345302153428128167379425099434182968848841160423683211968997264664856710648047387896977311339005593730641406528994571494307446955514948309586189429527444185665236985559976363102610139892024973626054596283222110592218771784627601491298986181825945667929419661793977536584261598667217474454185264502147706870429793348946504161651515227034313077035695300670431135608213472680032932484548241050918951963114640350629725788303178975692779071849934109316112475872284278288387603133173943300457518496502592522193411764775437118141153958986179262106956125032029667836104990769391461814276904591887544752795452811156466337324074383492038588938365320277204599639879278070622400840935812367459960161193258909367096344708181239267469238077078534243637350060027518298080318652088794491713711681650526401229176498695238032255020629218148208727308811437622602496138472775355440480998209007711053589410914607976350080558384886148773301190146831632358000651029652410591487087864601765527020346804421403833866445333939913674083453303977890167194073955965423930469500527006374422597790805562422559968787175944973389723873270278579136684970839677092767318514804558521636532126693833286710697137483515888829318445936451666711223184574658790530159950050488034662530587906188549697151860472997480152115061016769513909987884023082531099963984446696696254659628143515556451041937709975922594295877776349857890967618968820873863207808810061050481595154103610089328691129701048367733997691253398636840816081357030895845675828301596572643057313476124091861146996371194383205829913179950917441576035674108715884351759265574697179420754766711615121734871441749503181616408358376285897690511653606351563592108325244263014920002863732673847919974288257356681782742032121873413193603536235067152866266170183160587235183907007908328328512916533931765335542068280403655625205189782438869819180064315027330224476947689296585357857727682561894879576497904998925212875877493536107339015652762222900484043722825895007316435094295734204728973639499745686428267522945526741258965847734320374722170935815551705670575374310427949797898125329240024801563035862458125840289437981362007069377916890460310467651285950518263673547019574127848279933885753986817089720063288962678683629101647069519483206009317924528730733995562519548457366367661295381633704235481421182693863632049805485964859034775779375680391353305871213064324190863438483949998554893960089358178926158225186748550089166256090048227526785762685611817857805812618391895475104350685155308227339441958244409078528180283984380708943810747233294844035730549765919556365383096618771228593758400988671261524414528984521626961951555381792235518139196236578894060296580054215872061689846475551291142775791659121731970103632478653115591560287228126674771535333785234909523655287064352447174090367380700243445084433584740168028790153258902041131467109501957727407757176206121595610208252285751750329520863252472767676636769430080417615482426022345453263904169280967783728197122850040800619514770810044555810159687342527290161232729842891939105930397655502263725005418820962930089467022189952963175302530501169650533293203025068424869081488851465598887193952393367025859943056243483891686513412004350432065285051920539833283031000592772762812498488632709689936113481184007619976034759720199746095878744490055483801078383837568433134812016280096109742856052318342154204352658193984607201022298242418174362397349698254668129119642045108530210871520971440174923892290723784055279955089537873254554493012545156227210126079672021870766217282076545043861759941268081596882838792683841108049001381226378691909817056723616112800319321072154280932693021547418052855689168659492266399374203877609120686538870844101892192551893606275124389845892462196187771322446391982386900000993830648412406574161447803739762464702766912037946240745292347931866894578221721720184837061941003936355490136015076329755448303458051170426624188628391390422330634085502244627949685857369452251006767684749316314106457745905865252613083807971775159319700111962100713670723545036150969069097658111351964709271348149088867639190890881912708468597982368391748363846401722217287667730155480823376577256369498684430195045077231615612215602328255570002653826432679347171782357551953361364732429174397807162445201338976994278986738453066620690923709504269153807351618617391397265558848337361959070398507857753782193505758132160431039700253494801890793733535026296385297700457982773870078010195775116655966119819195425511288590448740560380430572756433767409468211375305693508646809845352665636647506587096632831538406980268075963576184769844994301618709001420291252417130692833894990484065037414265098648701959776786539146550387233628170738625594784880278789648469709040910951755081552107766364708038595822769470923486141296650857738916814084486304583022962144120691179389302237891404276326992773049844398991043816819226189853095295587042168935094637770631865700079765842461304620183752898417270023533003900684308994614900419732350198472437232940967477818005948867130870333974568950226575514392675175169321813860205621896288528773654746754645751569358085451236312176017342781756257819698442884744357835740440894558966778835607767867454147464864921550360822750725798248431515508121423577514598042685323354945197437196590234220287832771883817641377526008965498152793109491372292637091203905344571370525739157659659148748809008232535348664453511108665346070285480754054542134040650379796696392703372230474960439292217769637688968887146009111274913609160555635521844715235200968138043465894997490406258761700158126946087195841643458138719966069251068415487629910948540537254126671132834960419900775767620101301963310094768758856144161154276773578649342227512108247478713443135934002784790982630688639146163600244338144473373708569114012080588419487664975135769902036226163406924103271896859029361097930839208619585567281283145804358887721472312058426591388266166931564401409063344786440485389035074707066365183838331467424790760142769250087196159515535037347628169145337488206948828689217130567500601523659078034860493715949987027995527324946050764183592522529363165512762246300326915052017089138216802225933041317054342478891968339643013365406093965369541414337092345923897722704289432018967701757151686760190745239515163483301529119055843708395341906846693931868087497173694162596230707577749755790950203239862061718344236811610900112718596443337495848282709766459699484000009500847102420061395138970586609933672964105912905674284245190488971398077312713670068030632409483501709354409655406967071823507209448993037161361280758161566989709641388705315724489044698960072322802491438122330749487834888798145360637976935550417924698971741765862117248948766115517370036485068736771237701514753597443132824842946674145187161165229426281126081372733257230583719980529496330077699784214754431308116725052354799943620532528831284393117575665862249873626913568350048053863159226273276331240569278275474890933408616374600309232629382119581086226680834350847577154042530069396378655756617091874366205545592049507200570625061395761332324839493286043899922242518004530634752547490022713379992757803905640245091617716949092627771421614536399118362386399879914064343222232274368916633663207440475636333479543474561310392235097990522680339616017107478563572960662135941101024835696270589157420933631879750036599367713247121222487000456648915291069730809142776496552901425112421445802284712303999022975072668615761720811343588986829474936615711904834673712443407362883814808211633628270154304682840418603519167921852253989050334295335783791180003936187699791156786909799541035038012883307752677620909240734187281637242100053499208091466973259864873228200839047511578620617956764691619997770909681751778231833298143222094151189814333962394757102547490144069979745695293592854997707538871078939508247352507939745462989198879547071094268291966120384708859714173361404059942394070168504614341334178198547101510724739726501610365322703737563261384480818888436478817365129799360968253838819265946964752396116521755348761615378637756762272776109252883029260987434598864421418207804404299924481153350570383913297411381656227647598661781258980783527809830702313987987566259139123691280947167412757356758977962558784905665402419262854574215276484598355512266696342837113913502362277942288707800028751952868635655743217851570737321676712198125835061907600375614512848881646665319649275260155934850462768382611929458459177530064043955629703985715930157091895239806671858936191373861099610298152828849279814371362908641897325155207994706959032770368925185548931032795873893396412795629580984168222919625618060028252159990726897989583155236990977298860978580541490580225983575813483139846616008062749434582433365325359734588397953907927133441221260909410675555339998217270332782638976665392214923032087355171314892519198886490716874287031612042166235101887818970198893481238068670181315518995109976155266600990900880396651746927851795097250057497106798271702953787150077353703213050936639449795071299136136518429716986913493705448657442772977932198389425747787053139730604251042405936473922192090511597075978036015907775574569611326597667340071816320788421476510879297660529437698429982397584625497344777435915299213527375886680344658799634175454134709887674298787754986522155229472916642637551589103176502186096637415418214321293963031544289064640322625414053844517638731883496902450777746110457122192726789194589399191207647414410050518403888537395872028148486070173163228802805139858960905210042040009435051422318845059516263523953674310848150907930123448294948271024927662944712842781369088253955374669469789234927283136746916833170640162173818409347376699268398296869814018772356319210025432915794820987360665947085158710213401625384689180243993227227642847205832406405581113113105395480917188122330340822678230201874957344246208822011346678592928435593459900513346963225229619191122335940648209088531231576580754276480020590869509425290140254877260733168655591922334120864320595027121016027643526660122581832529819287501508768351036808387389745218318377730063712951117862355569850411547378244641285853123964440778023936942923798927006837871268319436434902645307659797193630904566968034642271729774185827180010429601797141573227567932240332253311309245732355863111616755772449664139905532296540911925443051343242423239486413154704427211460928697977787352972805771395736044430536505525440528673847055176365948135615056819881156148161066885620633505176295249976346902795415888145925338585531579584735087085731142358492507119773887506447429203499341699315327219835418307240343388884492863127242779657991991531164944931479352902250019225318174596601761931594248075982940320992119487467027964801088956338591019743890399229770718653745716757920418414330221894403381051874615248993533100661774655997688587450744831729411690664933377796412142074441441195468334963961664835726825771403877249677599570336563967161327960732618801059898372329847042575947171971227138748650115101364519847518691348189275653598290396919430396147546803839708794718980085196488210999642008724029212494887585658206423267486078942321139671571761306726101385753402151323195354890543865798324652007920634464398533746872308232503964990557564708103518981537389290042672124624485629511900190748328141291475790312544465745097834246569744536740431415454132357054005135702347588220878383553831815562422160548237862609508461867820245407047162050170296725909245928122965912094571307594603552946239510490540378966119127840981761198415540390591581927711743139426706655406961484862294675918740540857924568357598333456596091721507219219885152429072911393980438171684268752196998798605055503892146610696246531482444231101654284284375853436800599771103882869638368981085095857295172359364035574161975324155947076586618950910568344861627646625898542589940629500361398398659139349379035523103826735376922277678082294551011263376459512711458780087913835576453815023166820818127803699110567064407026014687263868013510053423280565535022097102202301696112819827968532256004668586728630647193348109747408369786545312108097751543603069115963627940746669161050360315282426166819269674368408532652971760474013932656505735711597607074676491590469128882119105365532941118756797252145796151001789739990527784530753535039144833086757796945788127141022449184376951163780862360671019662628959665660429802174113833173309002693483340814084721811334039961617221444280805900038482325136359996521802796074941736828373931804375811199602435828651391428739917807428148327500150889489207265501109659076168942921068581472153738668648675812618811906875945422463996337262217756313608574656964339998675327915848070164942790304542451516673500435770507364022772993223145805501416137934558830948242397205414521909032487538189249291735010741925523760453820668823255500900837143860034310700609413777384788999472308843057504894980429859779219351563213673268821584147190242980768919202465575738208071901624796272395924615661086484226989025444683979673532847189804252768241187621709607588747428518859000786790111190385316139148750017287513511252810654753966113202438079627210497789136807077952545839096998751306168900986339003164290332702481056885220255304545694772345452253102051040346755166362738538831147381118439171170996353786285950380216873022842706798415089287185496443640465840941360447645535570109329054953079541448471728066410903853537189842527251624408010644285552618848761460177012312238850449156976361850709202313873087346834327696473474915719512203524885637199679313582061499887761230037463051489346246725888725067597905023059757316037011752344390526896800809513874627924516054773025318556181688856740278956891710551349564736226722199047446276571985953779342090132892761260448546351992515176668532438410886949601714662161228226013302361987408970032758344598337564410694774223626772886557766504019249899473324419600472621764448394385215190112472382532238702705569600708455613622741487274829166432873724987884761155906581433910790576560641523554239253099179504877568417211429048856799339402582490639430883711882888224593115209041859889553312517047983148188743803257651628208589859460308858631327696893574211247737528629198734985092523342737041381749884662485092221599350102272550500786542088635729690025637942999677651250666275138320448293040837835450458484655568099398059023613514715380202185921545783000242197515725589302205030961198006549931418200940949375306136848802470461707331166340867735406308682837972621603034831294546827668566937317804361139936340832114252333797173286317506247897542460713436872855581615281384858350374762703662314303394502150679085534131679701538857721724082377613502089192110804228284212799638121527567175637593833155944104726824751900057770767684019341692057473676320675940931056060050463984874958324759037507510936702467542547427530314001502166936983793435635657055659537223706136391721617041062760862613861075868543006573294526137007628325012924468091694052605573242614985444117156052920608081766190127372163362867906072088047582063856531898672645639265089968310856488948078607785062261697257905856620884676449567397654393253214579624112372595413573930880020953682156418593741103298658091316738217886534781673024355845064436663800534968370395467337960391905987549358064973501043459150647764732657976431183961578745775807680603304721511779226269629077113214524093070143218246585280006129850770701613790767771395319531079260019329389461424097967138409272212803399249938124254783470037026285932964942241885056177122495919162201890249358439280589650718727843120526244707052099484492768096449938723930517478452818396333360827018688487802661378343908714720923018209950993620954035687929304914028027233502930589753665803325629073801293045974280859768604914827638569094412677489735837074616228203971135738603867757065409499018909097680234491320951550757815204497261162544055054549105634676808906189065103323046298130226383299771633294614393173191866017602262671220751201485381232600509985862478769848736681388365744233117169525345445081958384472200831223626690728160973964085525758101153077501578554885015351889906405042542668209379789667059825890611438641995503290716826493313831111948514974772557843624805613379061781121117943271796336100582826254199170479356338005428524567854365714623792734821115520453983567216472479756383687035300576471647500818245782569239415345272795954735296256191929186283599298800125632601926682559845782924796416857544601844013504814813988956059824004077785455238606095835327431312391127500747498178818349021567325591991789214198210342908629467421390191041515195879851354792241495871515855634646144066464047616063186202838748411926806915740739419485431389093861604338468917827319984847746372449662504364400327043753579604350705212291605296883904925705062840544525429100425509672260180980284949546016529065473673272578351927339143727002059456240978756129320179117426624640402467316571393941383031314438294088378777092594546182204781470728430793945056855634947216049213477157723066332656227016502601202337220249615266864978807296746369933256395595219938932056353813798383609336866765738223368571666552431087173242449912953224936220406663960588238637570450169681938543846629805276290311501629528950143440382483173184177343077816897293360522250129542841508961492803250902986105080221760313103473539007948592178220036716070317845252681106848264027511495257861526354467631360670363716966312789592872277558840521989437781807858008375295154394651209301009307021838376100827776775240473747052269700000359973906782938051269079890804246402845890736310150444975111696543707601865615700300038034474120323549398532032349067402631255993246038563869674728745109947292342138680241347281247938826313131107400648928498518571846552347512892036089628337722423278627612616192882930893236889092958376384784301264409121131181063199502850648353064745697196137580231608669026447631245132800099883376721203653418180728829377747006478568108964150922518843964613990816766160284165745780787048057912243824888687577404472060853147753344413616360861822101101555237724319317387928368114223376121787558377348897443564434281511981616069031798657394944786982980024599417224200182328365256187211459903170674137152094597904367056450076838606178416652689925388724956124910294918568885625766720953399435523304496103912627695316373980217406410721917073074245850946854271745945823716712000647808296982713147850622049542885051258489778048316819453644607521159309693848099261613343396181227640244054489146741026679646152720458047470417067786276402885486632448998902555005773286762769807575677328589450321121404050126098916938904669073988332303772576466823442090072355833037491462044054353302720594872955429050551086494339311330088334819392070809620966236473814550116119071020606600872603794303273606125209388444396662000763165068032380111584859614045737117064983123153293771483997367257726747466660853142917089065829381664487556074839498507725949776440446243233803778119044311428286423776828834000926997162726405375976995873784985237570119400065287033989603857847230610376968261829995397067456066277051438022482037737556083947130603818696367458535342182897182165385608356423451074838244395111951447872338148008223755052299881186037960221902874796295510333928962698732457884921417554571855087764686332860569493690031036815787875362392050225560335549076279478783551891536111222623023933965540900973621316055331413958815164891394765017555699167293684294865132192609652386367401765164312110868778140460237203455152885919629039240663216215880120884087542837570646775530985331799516613393157208073059446567194376407061751061830442851812624411519761946426684918731371138156652078742278332413212408423782584921129809457526891210880697437236554433679501485215338005593267035960730367134889069241229187356409892187611624850020995480167227558080223414447360579383318728727112165809427007199900780541455880545899637135764415812633141909221453780408468075149021625797257600324121578162100246771538334727574635469505813364477993164094211748026626125660767438532790676545310081327264390854278512546044156182218315779288204350918623491382037629606427620217228678378583136566437707335356926766590773337104709295437035546355250263493776993805310606194613594907144563447015624831557489551872593039349058588756157183427413408526050690066293366484617462828377466852759057611057250193452288653575259099918564080754331016601982908970936911653656654892334376084101894940677515463878697596558877725854378680330579836945922536163339650833142315719657783631734246935041799399241101177867429045142537984100275598960643184876221517094197665489847648180671142842144990536417870678059352854408030601193553215835986260778139857952170574607218397770140837066462830094805305795623829699595321576667323630326802440273900072493558035622078500444005202293832610524739820729848860135746081252980370634479097761490650513137479999187800663396964984689899540247105121394556354177683625071160314146845118478387946601414380752472550085693836816119504415858481200505707933757069031022276793439618245896029324455516134308142769518128571219297827053421611566441605510581802650890011073440285779174744222969977938017269038123664506529654575663408366239764404556110284453131459798397425972754207975543543917542842978325296451754254542301791467373102225156582870750280809655466263119213163610745432204400747508593599778524015923414225068235228525607259730872778973789821401500169423921247667264663811624015838019129844907812882165213282790939764622986941834150974872601737691039761685699100970389447544770982189364819361445908600392650234368550969848715542286790614474097125905066822992602914943587629741252451368142352142068824230546280771331924469803519985303370299228003088770761310654092078085172497350970996092845457657757131664894833671169183907208910189727766211535388859307921428116905985576086257378486962759347138265133207243098772345194901059278554055564118023155271467265405318562440612484123532797547317909673447595618564972538263617953761451152205354142400872833827658187269912089476091518520716272862054842132406683678940736679815702056360614547813750471031121927186720813781745123611835096346290209339935061376655444287769893170058985738875291821325135555768502780201407008680971982621038636955020440027355670237266320672225588283437717590177559740178462886611499087833641026622839353636553625401061222144712901871440405366765039632108654460595221118481713179436530984356932339072734429848233417225324061438197811819854026974716095329050151462353256901211990919044370268390650647066770693131782659792040777091376520602990461058734629264427879337056083649371779706472633047232632842621709002184479837013405761452093455779230598481241574393399126332653349946086001906446612736724930284365420213313427076373504486592213442912063895602410131802880453327640798710569226556262903668291823812991680755671457154884163989317732939801571927481762460676445079321036802418244412330227125419821901257417871463054443743494767344285600131824757668763635671607107786104210910249983519661472925477116330242792391410540835922440026100446486894287587536223037544420933881927136450343506196842838036200846540016639738957754972429213308921429652815162322794459095735646524887857777629374512989678644584676824252508193404849902457288456018570351462681740174999370445901978255082670985664283229203311889951985858819200790986382008623027257916817658178323122181804033850560929202457310232020211476739512846471866992110321154613778957082545156910559817847781760991097367569838861235962400756356967814203209967934101809893057908152762503855949376324804927421715231047122573234511531431238429117411795990096095538117069175512565648330379207529960372615250065387984449368932504311748784084931280968047382058411798490564066068171938896622621868907128915217271327637803086391429496832152566131400252980902165518139950740705029682316572218148162412115273346627423626209332315052873627171680698503583022658851851293868339113327942822353677512573337263026033119602444461192005949190056314556808752777647499536904508062926167414430985313696654982985797911884091620684843398933823763385985608178708435859336169242914520669467216883674477124690105025004700247558625085246621792337408675751304589959308689868943619948095970459981238043722675952280991228223111558607906122845911426879579391716458914516385937076715094459641811079032313799785268510291897406630265848897289520473505663657882633534379760009939213873652647842988715311595971257422566443154309684727141906451361796946294413508343284550567286205891094365431811964787969066422511322034907995406328944266651732168706461992569102089156117546796198749669827608573741980692227595078494379879959795075356545368370784267149237415247288774773443221844014785183608311307692626846342713491826335534266476573433227294836496688052223397388165500161513649720718906139871877423299379544236041518250788724264850743079236365313245660892695080541818433092117670680941373452432667629712778777054499931202703260746526297960658840204238597921663418641711981072483154869378654160868551572696152002636091097097581944733603284752618540372484311557113061994292891915338633436077323581950258500130279966940881614671615192276967675657920309103326193904663181199421068849274571999175702583059151706550280714184406371431632288443275102741076165196443695729855809612550869803530870074587562084887008593890139278935857915939457870735213501373890158046600296285057680645194559135327732714523283837701298154598914877135807047619353824838271725493285768350144757875621330037669928114317687036733340485479096150000697382139886072640898345400051023648441851673810409555315803968482013647492774437667319858968212726505424116158195061033573160065831693913850601131767830644788920855916661844415306620426370844939161566480098718888290726834009354259224226072997992767604511168913700903661843180576910670279136988577964705260693484097324855732371624675922357416270950110747747988225296428911677994551044750817804733895100705503577102949426163003452428632030941118923304312647997729351717716624670373863343084381394398084784733938510333937966343987400059671611829027471483686037848745140898727564494849420128485448984072697091216024883970775602616866526724933764978268572472520787946278607734062861054457538319236865884477626485464922249625445209115883502588049021190081782686957548323847934922061664549498253701327956554761365201398639544835224763661979696857618680963320702127655737927274949223268697582100065572143881470802590371387967550582619887165596102630503733313611097572586902216322352191859853059348619349298386427663972327184015315701800490463726246191326475257297450566816377880484939429164492924905650303896557828766533516607933129292384571855567109930803731337554486197031970897187212564744544684898741791170661933976685289660294189204466592923190231716670587358698356297889313368628495986471689810017063491839094944550549150215737266322204378232536289723660712766040649348121285741557008944279531633330921572278536853931654352239121966923965645408978168273220191275767279356395898518874834915643762982885753848360927923820243241958668754840726851052926260144789796186836650650401328913529643555119037305610798036065776796809213114328204577153648665772374989640470144775600304193826942831679511133977671222009772385043611926018488140711582812524092011968914636824026055842489400906729202374790014123042297931519715619513159653972083758841892202330244719166716851305090505449998274451838695104564342373019286282372690917633147146216308652511574011227569866783166294902315932834085034803294496840990474437406894875344145756340673135838978754175370592308109869904307196395361035022022464562385005509315514264547681188222026507413562661828399958058203400665377180577663096914850503793294063480257258036122536073141206021620442887646070238327166214280629062101557984507219519866262752352267886657755480696338415054730837781629348275461062645819644265773358014765819995009575945707269225928624409741017232371949897146434185820585740706326498045853092454755904829400262046807229022545300620184469134985839962478965462177919104273223845365493905621914938110527940541044948075693275797288843564441536488992643066603574517051525800064688846087489548922676716336610325451674143892848300114404300116532820117598272098381386353978154110489852107552059505337594870674557004202047615783613318237226234806125169746603082455249322236063648168424849050355158916654293642572510037284402264026687683450115701697463471559352615646785180773781916005199027193517620511043537754179347224303271967014851936705956412677699563241619868247395433940621600522696775490691125475208332824770437549999528425647588318097150982920106966122266017147877416405228420314466605180607735340161906817699153562597574803415346953162351370912913923886555152990070644604857381252973324298181048576683860677595003484374841574609983285346384439445862209881053171466145190355621201933047123361873126094835950260437640668867662424649423028858344541039851720053008482688060847882920889109398280827707030933041254819516607614849385823433509590543578738479223149349597040359879949155233549338070527403575586765599706709399471123553442252869407939015778080819626731454309145910190731120688294376511135465657880183785909395852902141021213607873984517946893236014639340288702918165006631715423862761066492313487251248805729212158536901845262977056564652039353261892319623084508880263892060130547609222153072301561939848992354089335412756871822480440330012842520075466270520895950876745930448053566322531384155863273110891953651251395814851636631164813560748256356136069135739495958641215703582137229245094017933582236634779250026311776658030488911141878897616416686721521091866944494349995955447084843429155637343022109066050231838323018798210637975477460786486644225873100176938374549141082293609260833677403452396828050137966648874205678781175722138456170746540979440269779788887301355547081197875297937174726010938133273555871674149484884145557481830218877532798618855375629836421717442152965544027816534137692325440460919550148249922450540994478160764410788857828933965916304437998691720300592890929152604170057903128663690836674623631954626120608000926256185272691281453760739824860803353293902760753680202605036779684318215968673323633741677222723382044838497410156300014792870627158378827179127993839083490967955990213983716013678152494102218027264509252881223211445529380041586978879573004946508648494762996137875942802782153908123041331399353658339278277032258942502705400600694568918436114940856724397089656349881073671839010026420732841230561106565265711139360998841306355290757671115530045849520417160626228572027442800069504607095354764573594308016199588343718089810971601106628267877007507594851291040935775157781790257846302210958413804892040699987791361644778011095744137342543409963054562348002484773165447859938507435528429025074680518037391653591469319692724057995138877914083707215641754472951039053480194703401332927100057593247468766586665825915351530603402897953283585451919220593142486226936816702089680821001546755392677552266776294687412643356140745643071777464445538354409360286694467043399064503382285600586753375440125596080311806219238957454262720239571411108645600403015369332494201995683135158633418059626401690127628491058593271835896204707490847301471200458071971122787349933220470890504761043052803127627843022627686889723313020249773815545578357445539968720643651416716092065476468713434927873447233671136464199090306836153319108937203837624460122763123022602168692818249846090622184992134110347693375182334032822728978191491229829474912819650699045648544891473570128478548044343799323085840545301014193665043584925710460024781349509943826764424459146461272895407610362245578144443554868350175800969605843251627716546729117414707334638196665566695081637169379640410893335057704416349224971937082603148532459015685413705415410707931691039948336572077827074509234730754950415743081077056397654740666287864884228442306762682690034371535016474201343333859802209622885293508434544608144912371440296438413018363395385915108889867058300430622041747795831784417641870825886782359087097562646348435986376729612773731906253987717938058736453548155482866145944307670849297461809783327057637199758932339324043415197407437220806408427427403432194099155508753676992955284566949656600414422051144273565155400948868484248286450048099207185933887702367718010225134143888534199463080631312661350135064233611379021634655372902623213196129581697814992790468799485825856581137687341965204037239536633532701097484387314175872958171863965568605400316500100077796311652941663967401171598231761571636886316369009329285910612787501474025314541629383247345048178541178436402665385189998298443158309360690298374963260891924552940639755890918709758831508113753771199445976115484271152745190042447777019227972878226659775880905329692827394855933650396047112824983984666904537853087810217515656641694334234276595189869807485430451001980215411021420328806537428587349518012947665696332463237438505476255065678189020104924308437664027286139125810959759787360617400167778515975049821080757836007662999806295517554834253001544131944529164407903104438447086031158051704715884193092378561282858748497939593554333665205484888200675871202962646934512437844143233792752577734964088743675879279801718699929673657305409001260787501761942198442547325295652184685147311653792440320841359504909237516118976047409725901245585449293125247846456269685414127104832842272662291952192350176733760775859723497519330180312133784136217331410426887963894658254698560704180946938853069338929612314972911557624167809289021395390146880020162607889949010437530344457630902984257982780391783358934740948758171210590529256942169770077979403137141482679557811349335159257981884372447366729171665725965418155333081481936929075620140304758531932721504511002158214364028511266046613856600330746824564563600409587496818988358931167072177533830788188829247675743230784837519482957642563177114726105771700322181448081520100963607924557657986782776309751866571935073175964322831287600047960774245586167329500681876717098576239457996989591654586993884922493589147754273363031256320149612677757227870613920839852701063917904472047433714730170055235404447604897767089747230872484223951298621069224957912793705635905249262244578840557310701870438887900667662432819839905386965629698434484871995786447244561515257864550549614867180481346592200537239003368698099595037147906802009049792440872270216599392929248933727106915826683336069631544182550362498563592231035421593086101646163934464749182915175327187401148014215761856473841347404324894384399804109238680283984751270790422342779145494735585943848573633638537177997059711362508447233594844878931472282514198870479444697844783856092475683712334080982837981713920114841264046132511543477700083253783284304276120342722193702062142377162394776687659893327746069764325976093784487980561621177917458625654875260284271394915760089284298740097535953272136022321189561553134306065133564474006353952975406624514651142440686638962783196916264735031622537103986751214887339029603018922304032802683156407688882785693565758246437721282526740605195954498146362369527529959615899340667579784623369711626345013162155515932552687656494765454054566054095236332523669200132302243952207111758678525350304327754549075827272705846809688931821118599629779338439748395048965786250170549280965854042252142333131589367998445768129150279470679273307806032335604388411629059705740043964063887317961091831579947698169640403732077628827239864174664728243514316014960643914338619971792314443206448822924468069275223725863678097337134019843654759315957912090845453439553608808851431092335203182370984963887152683195909215128099788169054592496014778348371624925427833537094896049001218935273335656885418379141349325512404940359043410099974080034060288176406851657868878534056109555590430975202037385787279168820231971411871263014611893535192140883221193523215263746250457564459136548241037070649333109029279349858601839503120318857919310214513570655307424509293037949768486166533139338029866564143095360691738303425675291041421776955939843064592604091117635471426445682626642368742435535507811190353304630571826709791932187670348785821688100868359709144126189003908807865319033019213944631206884447482315359172458281743114193745593036860171157328557763556958226440027933452078221190718847289783843712967260721487172839319783995720950650013796071850348308351569828100756082896725666697810577403676203115130667062781799210784794286664913039201102500174471344950621259164670728277740073350586594526139451775345199873539048962474334767974576583409634472148709143262817448568692065885045569441428545766786965118180702188982973990274785492055057025021531720460922546754491744638403510294389762024755316772841233279099992261665163342176119345794848944515841158766363058321821849569944553041338954089435437434069627173775130519481248107773577803777818869646637616823151513959845308856028220406036062934937478335661594751893796149622243431337954566797091721341159368190091925159059228800716525281646050854107275288788274282424669494878757755149686020675657961241049159701576435668683904981896050306070203308215675184134313062583959700026079956951327880340974969638229029526837349805841144982633516896878061445417744809099591078217390926978992582672101010868478468191986520943294957274905959073867471089957256408843135150939094160038974028716342029376601304877263052651343837852521793538404280588405107168073811626049153803597828287876510832338415344861412456654606549392514653308576489249322296942751376352649840522034956020857114926236633225222938052336214452401296929710642784973756053485701616247998432152256047443543325878971431546737884600302581915470328544444992069799846125869735257213265141749459296226100904950768888031350206583441143886368545223335405435535225074894406424847220832097919699881641964641853943953478537222754031095513353027353754028233904547488382167195707869550262795838852910181925035413709085823821804229448822140309498934456264127469059260736807887534025857222718696016695044431916823975951118941159794429641553752854965553662801038326716291194035172562430767303457050098098833906360699873315657417134562248185611987061474993873203347841577036017994394488349263487414992619814866031377536036124317209542453420103214953982702713962648205143711835053277961227849394337028020957764057042380846436421839080331762962237104754858039320013421720607353549151078017979674504226354227252721527553774672076437849313799687118836405309667020319714794888865351447775047609646851442633927486794201861018961229898021207630020538777929479225484633204115310422235494048602986325428974608196568399228498313876229587055118793256969694134768733949700433823581009288341281469001411629404384516635623962390893029991808858632475202886698560837225942134213433877774556809503214633757628119740813682627273165652530107960057232639532732091332150103074381216764946352200122683905103270035083789205363904999403806637127213767430496028291738708453728461119513495092830664382091236224346269762861993913902688687595319664789530662925125103082203753885144041998218904585086032156730437693740701203180764229412859332399811160041655464362627613394371595969060102173248462930663936066422902754206501105423565378442737507549875932533724534509749803641499474968693727438146429907044485105063685432484913546300598462751560671933404819507394092302666919904468627337542820611587304298481576391992285054291950847247821932035525203599650812570804146313483485405861999161623106616822743292509361522027464977238626487793665155774796359034196797672106413665562756934250208305719680979629682351825854953309251624233201878989549021844436822112782508156574502858402608639134757749299619791545847244443730080023628028782377052924833726136818104028753818220935026092666497150572081670950966939612783014157296254627523138831663154676711850966947248109883970992132749334361749912270520659971036490077042481175909391908510422192962115886023418579543247967108793628638691849496812162932282633268425776448128237324640419276401335294071539278115063972177903486462840663119880455549179423451068280867209398129069693014469578154375877232204773277220109639949771175076843609892265366702442730362521841865194110193888208884375727024835255327495956084021746698742160507582146600674887958491007207509076428850226883850492752285160952405257629173145799734916151938510983679278269530791257094395460475754851739363722033812366210578154077019672736672161056083392074065282374339672773949515581652826804609783941495529118026758198908163822811826714303912274460488992117251967659213704411107946706312003786944180307640124678437290793180076210423114852477501357402764114247649464415922155782981344484242509470074410186469796972679999133721698659231434771029066705849472579227629135353121069146500378576694197371511806259494529100283853498521550186334056978167456845635929336730911118484001307200747799772106223996112233489606871782299400978908261568669400292532084195700098540300559216980648383599098509993032923251667679846579152415305989351716040985458232829313262287355872081039724974442495090640833531519896707308785246641848820790565053546457313028795035417028065706966586537355859270968891763495273187486859280374566297608877271405386848410542941261122999222086569860041008011639493208614342149009161521386760136203441801299452383091139617641783089706457216951487773210760341620444025799358155992027333273224534757448525636286176644391782875500145737194555904050944916089241094045310142995395629955628909100465571244867232175217266664283033853119692622403551563267483100306288243741896768037470042746164852423326695293683039041771497757202292914860896374980865727191560116160799473985869612906968511229520393901745181436397363316081788702850360274252541598076035575579268452698515605743088189003956855263205868101769408064325234836926909709101607218644384166006202791629850627248382606745750401227876522164010469986157588195031447377241914763908569646915374225897828480824971446601437372889635683042607007430535410279468256216781747835406571866572540230607188067141859082548754329030185428442412124679725476858762506276494415689795944637843275806151395983710378007749895024194000528448382964980989626733742906759018790447189119107885051914243555158730895629383929279011211913082028719665766093206678333659191196105420809713102962836035856656421745088785599546025453095134827060485292221347615875785649773568790000162441813545538739959565653579663257923483023190232778359725447321300424761554460992997652812902701887442893381809530604610413325491764166981861763177022789439006025117727679153460274864567294498937981594495484784764778189058841219522812558959709083977141506624174464768312739612745084441655473707159260458609065012191513881567808918288245032121920737554082994063779180202291860936541726182267132461183544790033574262646242231200220147231919498643974724017526667535312678437519488840356809958479003928435912951211991533876730702203523551112850125413882120115133312607661700065233238865660074396030933009508436940221860167832929770086920209847916363744294335015830613295155016610862872862594373963348471694211811796209383135333415340029557894819661573596708741529982719572100141288964402338259634550569193215033292148967605620886002167462271602827908919284811286375333796045591925615928798386158161429229944180888641350919725926784208611385835376030723873769428029556015107898357365472133359230227840245357604438171938813522488298146688491255023836631414771131314893386184527365362192340871372702328109282995040214981105348004778621364654584388266900967217841620133113062959902993042677176930744292194853060935154971683142327115823828885612474057977723286948710681430681264866660419461412914249107444943704394391898060443328593076306827901120825596439005734333300354559048927028446827794668621811557939721278646699213040247143829424348496512907516623853614580619168298993964048060090345852631094151596166801598001684854269583182530577218506477719655269091936703615277770448403253043955279793988858475157199074796580466807905039279731752079852873332637762499748877041430007410155756146168958763351500796616849019317039649573553691903713085537207604924809892732139920385950412327173769451970633653957395484067871976105085351879564413983590593560377491216792335540758797215936383202086276226902209759127733584370041129507110034897466401133383059950146192763328536551123664306293340208969419900366113168010742583363752882316033031026433213174654247380977639604420558438917585152607850066142144147370282203026651733329961468814455787279900595478260609919033286696319751187579908146968638913198128850842129024085001324988082236781540549432383295490224250763230495750640007777723298061630870632382335790703633627316690672751682355781214256557490883582351118252660775216453773129977395521096075161172037331599457915987167995958881687829081323619855434975640611487900049954229416923646807410625937896231059398033908226982564897962272776197868291494434288307028450674429148728872084077556629052548667881368050128236639182002151767964610575653882245007727564063955982716243766175047508877234236273970650683925195828954006601032670203209174683427931758230239891583383291507761693495552308974984106676580327070716071045651161047876716696715455652553422348085148053015190378853833768658166174473288125758327761389947556218023843958348999972869213872611837117546259457867804602412487753922975183823006513587038661754259648645010820930036492829197664340003929906824094714911393286707633220756476441499247157014821132279861223962662338744312372260231173773539365074494689777085127265465636673698380325576780706436099592185630354260478800626287385187366200753427156997402610676803792710231119224745139656313180591098606516890606546259730523766586823456543327362212534039757907588148363240782353061523974620820645432838502945349132018041561584060102598752952150423892854700324051312803243085832486427119082395447398791255349286809950189322675508958967285727788695537888476816830787533001817752241305716248746651076466545606806320805567310386102167101833558355236296600408018392048218485040128830978601624021890895936443111924068084369930354722423967300628663995177660237915057767133437135438897815943412086726592091587931090269013913855621547083181782979290504161949781925039960547211520915000062569636766663413945139321841548452284833826837913109733448607055518990030867142635771806531757517990295862502755191683943570662517265201536067283177876930971496171591043750969325183100109892737880644410747268157188443150235171380507467006125896528848236211843405396748089913632392656404664454422750745611327638016330297668136607404356427792018438132435819324705038689977358431437745570558431861443349094782549393934218802292334110239426668365595141006732368080755895957893716076542902849868472403835202277479140899072132836846584917391719358793196040257126496543116213196698021256924329596716721846210049817742779221483247017630815347356034135657597027567030612991357760109516646980655830858112881382593536866940396624384525222288862511808627793370882114992102587910006766458441673273338476929964220661263585088839228407097833074454253233024608866723849377827711688012075714677495077505636078273264745677317340632339388112967727534890435946262372919857529673968066277857737021829754212394101038577504109123244024992603926002051500532626809068910800362768601371249586614443315733389432355619247668901548731553754857856956344630675004849489170041127883795667117053386203168349373078675503182568945455796559022738450523123097989886831308774927846565466556720994391068513825798884764690361484247184678192823453138731449021768518676945642359374099302768520397838359967147124064967059381894157645732962461241932025730783389728910852792149267772393464920119139752769896149381824674199520418255355270700782690297570884963130098585720904191872252593101873418241700325532520177735391102950069674583072413176843455265656538535481315749706028045409105403790074702646209464116548818628378280514108002050961378421864063028417362598235677502444502676417285426499521395094740116027951498720864932242431759310964155852501093908778988632879412900213776846518785637642626660107826545342980122079073218465142822644555222485931502012100097592094481585258756160520542157577307064398687524079729295520607400467989376753673645784931962524679811387014370395114453368990295004029465691007342783439342680718072952097621617035718644752321627853251563983773076370607866811431172614658928091809125461527312977782566446571915105189700235545587666815903118016462039638300039735294845318948521106861848823904421931405395449941107510872362294687423384625233591426885650085318309431042404129313443309277020522857735951935951890624290581427304796001857969683150192046262909579104563250536117612724870349054123763045350122536507029714588820941346893475114628558895885263539090837629898616015461483222323912816869545971214441149007111476075476611395972302048085832160292073061242210236982186479791927755697692719545336967283772656523281872787353963832124676921620062886275992288031070886010924558290869424194440468017615552309390628225498213820253979437164622417924469921290172580438586168596760452465363445457954398480764211705512645555943018391414038038627749230042382927941318150140726024929549974077293685066581915791566504614894928883620986520895669248553890600225287474719198470928928611524594637032456501360315314232072990532697930058543201933906722274397322059044966182880070489789985873507355004413733353585004630070966281368845130861078927450073990526087044046511136235734085277756795021924406925800235875014457509429646994439035474933939673126844611272325330591123211614738722228381623218089277244752311789656280550182145268033858215953787526619047970853009518526086885473095004695454254397522327664695438987159195086127715679234759856979884360449556544322565994473601839097763840217759179004175655270957444698602382422702140668738740337499599515306862473004603287357074014706076355344575242432660133462508836432863397641237509543313908324686338270296731072722158264003863069214356018249495075456807464006441817934813655392690880081537566971229187733063730775848385420043150609335039836482426233807227821257995487423240985542026875568245994751303988543483931330652018798963403890377677361951393577851186897656634104919974018870891998350031350696581147451670168366782652138971934335458614232841529633733837403565076694294158076518712265632993804551290030210246350908224667044871879802609086909872389796801385903264841782265502883895135818320590744976109382937778523889513122576702521139829449554436916157160513078027608521647134368702186175556644489406804538661164687892723166679275955045647048082691391226731516671561961843660705306645775204880511573912421423885097475536734962999614551207899004229107825520074937787436468181493744237876898221004919769436663427077903677430245503963601629164943695114994088705951202007785937840393935840279329180622439117421090349934244984431484319715453579023191242690490379280125465707762645521867304809900450798521296008275335297409666638630299363910614647887592036655897603137674080820234049858673652106467277857690724342782828783160043693638203138390166424735251517484471397068445234747946443746427821342601590900588856852596075927440992447723125188967275804719852983843534623705690607679929160039121444620516827319049761583484548591288681354600710601096852735052052283827462127172548927272185861202092609768334336856681503906610453179560697616309426974653145908431460105104624794290356102596592848474606020775679752212295086115066747265553226198167713829687322505014465338187371204995057150961930532344603176940629323719866137427879514273088679189853085646183242664031453754057030047593386247629606647858565849568518325093484130557578199932364672341810038333921887041810339089225597246644442804461611670621009175335258016913169717215214887201136845901223980893279020970893467280642787653095931901583353412681308072027105615485086394684577397148817916852500317519001522392165736481847588779074032178653768186852836589870703910874746994746207868723625658294508535047995089053991031246328081076436033235570902174032401970486591682829275544321035163956083925763537549237275775699220707631706191533198767074624214067375117244001325224292287598723379216015376794458719132150669910314777724025614607241920007185418583071389069992515351104626024062478632327752429135729878171156565649517123292799696687620893592881987392933079112910310477427343384296688736393650033205213250627134574134274444222716777436425914179871925387728829250655109724211670063884700118419671889423384489900294692281936478008322682458563156452080556950753517173017250327614728614561703541788820025543997749121848760000191712068974647444479473825947425323853555440971357402487250287191813479374268371429748163656915278392468231472079910530594879619764635955361203576488822333251975483269255816576792376873754457023430886878376070288366537008197567417079625270931260958262109147517545645356307462846611543990131943496551599077068251378494527247234024244247650221996684664115508357182882859119122674318162712168482390828616368601539894943646370782817474692070683465275845757850789341809559114726618133534971287233114236534878875004734666457497418722000585470245493371819297461764270226013353297642471226489556493049996329015622402922364721794528154998514356462907267414614660350980847039065685574243451586522578710415307867292908171509479277696518754037056071362526417112796807546556271013513089626508833932196433251098817809234351007127416846661464739684141273899077147851398479492816377507435013966930187899418938009459224300575636109255322304255076521824402177085170359327882500666824584423154232956029076631637946303478058652988025336532696413914807541456911894371708384426771749985834922691215189741503548524690794824154732089110191888756724230008474480339023150429396886072340594476427679498559973311663255540682508776535466241014623820929889831135130601020042901211455472088785274030401421658892740933177195711596102723586212762559825818684919264323281719511601979710283579278955989075989657426665919508878211248006922494408499540667237886211759168840961113788935672312760391369604609218800840196542772946092843130734950112362970766471992595641761307725610241472045740655050385948666865992376816884095063454776150560064240572431483958701050032240547878867048625630756446679167170775951388432110667949305931875175672782771189382618049173894624802957803978761998181966550401024143111764527435033565578171327794003578924156816319938457360599318456491550591556278788361479211686148254381944453475703880590774946256810370863268744523716656550786064371693076298538880531402287253574927757831649572429158765521875093367562357414315058293438327517678969494615780387032721050388233701822658189928724902778046611394245203113226495114148894984124421736278344554468689768131025255456517514702925391354488221674860601746948341111428250602985591956137993500204069556480939072812111375013373479945213776092316120106209265727855634724410185753563571595623266821021489046757569757349831089542259868270611432915027989946855326739633156145812949040104952795911248374147053043517916634937880868742377240406115810544350442641169072708987804090861739287265558502691483341982876183772660217790139903071387962835690556893187148681713646939821987125496017956185407531438690212269176874744272678109392801858276293201667206285149778630749862130467413551554689005582225166822845230268905531078724533689180886016144500735838124635513844251353824167735903577257511598534145493943189235142582032875538796888282586495793288952211411695764873156827250367249981463385741948065029643103229157123551145011488560289182661223745087074495325244557141867847048472695525727593191182194660154253466991680805899718714375265006196390843401741949605032135618402751710957242241221068277824939898672205678145978280655351052803758611050737163179297645746317265625383324740775381884326291374199084397844265077726854433769433965296019794332532820477653748076452174732401836581263567851362027956364038584373772724263725003938075782824262605446698375056850902937553259527124677687727917468373987338602211780505203696848445156422979835486918863551277610672897452951314326056793820990654258415066419308883167997668541707940248037821343437275654971010875055723918440344946572382671527781380228198585328959819778070751021351228480320725150129246611432634524069912759327817240004099736617088671183412346358119581183162482815623211252329514577004554983495473165357513754203394921780858912558554316142351112274632493065413758623865530042667540082514690630108472185721128300827340087867868378349672020325443401607153963247925397593167406396647813941874340172715881813092002937175846660553393646557340280358479017111554724219731648988219768535314922182162395539749082152593539083377415164122328933006732894240341962870489927630412224013005594733075037689118113323767652324253891241545846428232630524171185161760234514874765954382616456800667084920290298375084425532769127392105496615012378090354991951757521424701084733644498739276723704359089219078473696925399189389206992276192599681655847657971663277201660966856159230423177856882695649681636379536769753540825434199586528444473151532941455885523146279033984938669025308578247099786185625419508362925877588918065336490636117833542019713590347543460868239064228263808061155641261265995500270833454999887854458368147039732472996088691901656173306469288408432613359063972878174888005948738127801887775622211280687559037508979826278245853734732945456637136673679192533484842356822976973342618639186722782094293852828465012787799808752883055505747409820463592143847947039882971371852265680686376768337586757985697629022551825668544274410608125628098163429876069685667134993052124637684805861042765934282153060209289038893053552907522616291887547770342488105907564908760012124024261842808281310814587522003344769530359251255262560685793692530202401483844245602930361061799856940282279911058744286285550815244672795650378214990672496479201688178053769339082173492298529577249528587810361413925198960165729121659042663901147156242416313816226962691869634747918663513215862414477455782490590511490803816105705761564036578636932281441218820499496142385801827692911128895979009057228405793305527743081757836307356071680247058465526057221519684766411041647342830745279994361181944859598900749662394176542390553626205738396006901803799168807056956149226040831512510986263875837750203895714276157651198280291070789128633439255262614298777091401285224696821698226435867588587695887003305983230956157021505830489616756534113680537123069797209570863190008297997272685146379963896357547881158123491244314739048079592164339172953420129073184777117564694851852436267299046388449271663992802779576826323378513810140532130761332980719070047633258612920707257950437558887219419975225365228822605833983089597034360678936452184510367005449521015760540527476322874439156754628296441865078702729983533640834101308997978889803680889233468344277334514590213801780985911868979787919480835932145461582924371535829105261088459321955840850093148310651746759593313978038493679505666373506701303815018988757343364418241955541289879107656473840397243807746331612835743182116396514202464447992173033213593995326423324920517146263726485838844666943165255499273874775928758746364417546157821135096733421622849053587826909153318991220240111310659687915040536472652535650161261164379072986875703051265107730441014296512341877911610972930973262330093147482496581318569652892414607532692382006101252584853364757564845141815175780531430512082495976068153326110792287103189813827509736888553340245846213634158613992517519235067228280518443995741306520571320177896769926217357241026436979787469843497839486481506876969777675910847066102502521277902704656026825599551983495635101168878533145963035605596227815245968590067890982032467132289933554400468714703959442977816480587760606227439678808768393367557361113242317147617720435817121223635302162972394633194731179206543363335405273509249732304679543686816111503664457645265429349546260325187193130795417518199570269945544818156968260990913826934034454772389324952694702047718742546257062408375728811021392517588162783754354203211956039827865558569945535490865693367702156335605969849376345989626896931241017829330029619262600721230548216803005185957683063828451806145139587789227037412876439362351592703849208945136242984577198684259617238549014077758604380317324074198409590290402328031572003047104900066421613463697942368355421039691836045148370903758712806060752948397376490980486210392631385430692588376926417747135579003605709419553601894528753593604917179623295705574076139354396670978463021459016230993890836683628612058430132405297513704892030458882874598337135773703655655391558540639552435224063523033718752006692336782876618247388170034302303671221423956969092713533323391929062054993612665459968362529521870144892481891524587641663173880768677250051733403167119901891366030216161703793030744352568316303798353144360443973933966158003828257861010906907235348931337667294707402666773099414696175788176185186102315473551354564675526426904802070884422496455575895952657586620022374507952483698439989357411669783454512013549789509728673000106897801821130041218958614141315141236905817600858237002406280465594146503718782296488027295051285014356346637422714871181486773723135890164116053426734039016671135272062422512703263610257904619842820282003335376947868522003700916944876407109807643002302378779893157331886875051192539377987021604847003845233315439555658110325489925375857386513270692101755639374928053003582879671389204366362592454690166523225689583853296379731614850084987046312357553796225264827958581564786931805659819388850500334730485391223809803264050346564597319030917805789157666897589258739956774604852971300514665597935834424352221775334572433427508714762041699441947393924753213250762031358819103919365975623751712604857418581882566873367257390636004401508089030048743040919994446086121272697599896631195173891155334661544456083618890337283530123441546188420893535183524536312163415342628009674789303168844123197340034676568036184412567068657791780370608782445704542081016882004342138963299084506196071424421180866292828200598015508399774186265954477365794305652382226428090616235507420538603652523627345217159982507957515137632969281929025900848115150140806818289049730392468926093087255328097842951664087728248784796973315047057223368471970873305566367652016912480191212743826394142434061402257966777349822647576026267318067206705913110024754730394395531491454500226852412207559921864752748953236137209324577869934689299703262112786375894124487026087158718307929860776445612459590558056867057673723420466309957423186468119395698111194080340455564882395086387259389215045024153586686451450915164370064340909203568061856584152510805530142348083683222334795547693247971886068246295648696333647918802612322984273186225014631032838928484718029838801682943832519592772874719790317048531394992850186963187061194049545628113214529201942025472527033565993201385925120726292691952379417964786678586467605261090089728744077553546819065998382547098159981719646673613904082735479212386308137241992514618863009759481101155241398490776044747856606468945121935266321493845539685351394156235270622378935015791194534225869355473748736009135432530500731841378734289182531494227769780257840882296806669179498023849927947800828920757535732341926404909388178365625631742343558388663650092763206777760378851264247580386055541849841305013449032153421983315680033627722285900200589954371841524218456162629490272900256230578589241999391709051608197777788220924814573550337144306857836208706281657418327897957932666339585973803936352917695732333439427056238232141298908801754286184230768659864146739605248066794696618686506010292832715578109815068401637274820159528777768229296450480367185335302913290040358246920894973233766485115763904345232739910399771782283725283231263260637370170677163192945010246440913061306607163775084851262307699040066437630020712751908239478977287721232816177540494532428527151258974041300948534562106312662881857473806372488967565738516607119110310507184681802484305408524071384833095350773041822789577237168002519500289633757665362924998659239497818005612345884265404524823294113805608913406957909420239338529818928391527689646283681813552907062820093106833208608416931800007761674105587807133374874464741995103024221314698018849707333376094821414736325131709000331027860745528803230801464112623744888483297535693128192111164835476044175898655673602493899579109240156127117546381668244209346045985785484088209548238713634883886908250979751277120840659162190808556097009622360825282807046668404157086383950897658187913309261609432958888587630812938265229705044922486598372185024481152138339790515504052802889043217019081059555590941174784742319643515384272732398084075711579876882523117525817718283210051498688275712348113609980885303644819403844705430866413297694213280960011800460638043271529227664877051522681571989544515439789435567269386645035273940267136924330220652032040831522345063975640647569659082120198294889433135074927930331465515228984624527750432468708046104314139951050563333114397622192037037080145032032472171367203836911243191152183347150531568740638177685315349002652727568989305670448028375039095148927629518130249650736682168904833249839013198815255124934402553800929646601272633384715406659671227463805782184530059315115717050457791989439828029927053440511932406416976327694238427690425892223782005878541281090333837517262448695215818063612215781540147362527681957725213668446129357008960003188491613948961879227958631335210774721538319101308368699403789470717613112432627603035686760099538843496534837768629674205988327060740906026566740871781966238557631421010580811216254509351671631923943842380996966281224665963007250951267315254847514714341932215189430922343201869597604880570383754373393136730328071154663167289414829882280147809198198972718705673682951990062908234043339938194519345370602953630165697693140944111762088160269733187053123525191549877984127262911514863526220481050472396047436232792565591893194783993462898314052157133497557052723366247923677680420134327295509046533901100258117212344891037592803126823308047634065181920410179909418692381187853132696436083420773134667960139061269162631263298986450444038842359245358187547413777106581821524625239494928011213210510208681816387781958269622555188998511079183364665563828856654366173236782886262377496834522148084374431091583778498370206964243317712844124946480310038635818112731584479316606153201932712933185586686788437038424598685102115103808242530722018166309720391135173302406614248681285390461352413911638053286888611179985779540912445554254646928415614863562811267176109041590553290447720757033972447953773404069641350117456818496240290285607967575807045037974879755833705785765910021997455009865671927542042299385058451550110412294792299530226659611624188031212840057725436527676828564843119289615368912859834903273443318152817638578299435798259369239929288704189581803501657239898502589675534694577153784850805404650113142764095230339650585121964416479292811233353256139688846513407264790721334144004599921783853541261416864507055811326930551737129559656856276390555203647825767277426971084036230514957417957196549047485694310485490076093067291017615063431211309478464085198685653116491127652460608828112893518378714674242275155019721974111960503546346306322705229929649096309032190491090467034636278382616781840740277572301403812379779657208018729272527683872542924057163144685666266252216964420489019425345504803107353992533804621610410025027331980768970782120219258129911626178723952078510405207557244291016420526852753954614236363393271871619229541547295301871407765799488817956868957341775616540790324717747533084127628609112438978821523439994711067152137094595905956609335182215559869022287303332910606544000747728574992535162345323911487465584220791491958942501954812060644341712125219065488277006970240145523841304277894873105844044420610332069409331239965914252960829786470396220789589838049876073958445069902409501676650319704141482373674654121206379612143835198673752929984067654372692274739857115532166928578534490076416372462541330248504592767052702153263937912552338807915697863334393491857117542220100980852133409800638928831859550248472867758567846051695386352338947969628776067008740970406068164913382589469521217645029001317866693988471671729472275287558923162016843536125522179615626033243944878487781208204124632306120109532777442436220936038567559118063971023549402307584275074849276720956816269423982594798158509353758860227147649584382059167932252452458590545759066140176158749449590196213245778082395438752854056598373829253675472686968066031805856161212866222742501919679355797905041014043269056672039836126279859472601987954090031967305742920252826316757601281123606792501717653741474882587186178631706061987950183799945055556188653932556534631518796478195790349406190543265337215974346536690412581761978106050382567573853280247524947106971803455789133424318126843250822507506890438726810050066510872544820296675873570420716084893954647748061216090638069975144092698721025214611278571786370759222639381993544932771596395607195143090052210321784081784839632729650429679595532106450898684556614485614228473458195347973329377019715572860795215703937244599022185984885111021103767209425370536471128411962280927198547152486695513322150710191100563728986398829106549717282508208010257624480831367547336101436729675837783326516968394324768968486296846288761112241269298018396399942090671730441478815681149986997394592292171285696408205101000850267541777928111721211518017695005404040985288021801602414389811316763095261760155368866035927701950210478077172357891035151334535803181863994778567725013432650849279256108663839259437061881584826399298832368940615184185504237189039215132663820335900142111032535924268403895287643288169569606138005955566060253154062062809345662565167180602683900126274294118613770692928793959027932764812051492026198527827129976131074346074203156474027735727287039920788872148641126301587999198242728912297146429771223271416759804022443904200373947440489042300532060990960593708389702212384030841814431203985997848467808566753778769452672755490579396438400608874901980250046213595516124580126680212565251442391023008214018428263036760406722592402978340545349452425870490525335624079860569944600164034607692534428691753558683252418555423489630776423894435011699425434988596241704249327711441243808783180182665309204844862750337871610940919393919123969135089284179715268958282065161776473364884793990094749832867514975025194965795868287870854308796919290326934521241110434803904735893657716802047128977078860030583723893942413973921387618486416607291893264832809067808446104480210005603479105287849228871873290301347798328958544349590303173198270077923588395409989692607415470420774069157879449167346479336715524097512978011167248829680510232523022869982860933045784315425111286172620985419291727826607176112418019258414807998277440642366391583474173228585815561128423763955929072955847061540553942060247990517430046092461583655977884951721844549095328245186042570441904337885052633349700430094979452550090607199085958662289739787896368873779434606301462181082205772363993495128437039869361879070214139334062284920626464993954837828535614251992738409796798104200282040348979019726445365271461913825626698699582237851590441074592905025086441185407199472153707563795488824882202248491211731664164448954356988020113202357930028325117315656515663227108708365266863103012593640847837435877375155193328163685531678924764197914029993371999658720570358313798972704706308412001455009917726332542331227898836863410536407860429102841988399866173951390790034855259344813789796047090606397244348299996948356647784392036840684927673882407152581520888696630895902790745869940271591298846469257523072088955506380721039038749451770622101230107498744850527320969888803472477481236454373392478839911550419839719882605942169140951754729940362789237062862733988828554407224317705595843432576310261127742463242685178475245531991826852793831167756257557632539974942928052931891608298217183702566744782645724845662632878824189588195194819114414023795058351092298907478050732515210399805401984330916436291887242468816655980408033769654064714870407042734845431341247171202374064153251812522268269521522140474896176739800986021569528851425428643110319282518939652926030460358010235653246552034830479912889821111743029822677538512598994444099469868496256957317775461392294742132251770188166820245388656627651915318825985111053711656918094867264368228653488670427981331358097873908628226333546310760490851022186078032081270927285102781755067794827642455456196297236423796449552768001286569708166937499610992000253811700166973439884848090215373611380451036303138526481833047385140396266921043851659165207270418390170706841859107354621455151067779999949836420696107262511171690948024351892127993115527559820134083735150878763405374980130860414122757929777688328136987702481435377071219781943140782609273691911098663686495774629209816916454245758584764667972663237736345752024518034953819864252331647684494182197138641240776050274742314986788090604625309226887887294990621760792664547415647084689364888306876831050459845164015917648961029802739898266531869673240442142141424651090822019037134260671595969314577481853826772234257435231507027709601619364121851040778649633184032008656135428928265744095112555227469135737560735010876280312884133274493142266061259251968143100631418069969390705939824271862268149747547372118634921867324096591592038378245840131507089836752616599159518326020991007482175756540584567562941419867085080004061938204093059407376900669116882832701031307529215442533197293241866706974975984536532256683419250314544860114056038850802324066236304365015664710120183449118323298471284950079529929078938681369768772467476683262216715182358124969414503838446102328423486873723034165587864453508344685602369652430184898133210241392414721755011661249689917161544220034545270472894489988576955568309959681552408474684185114371024745370536983124016909832737212911070489051107768319481002117222652809356942233186481141474734517997197699341715725435776230803836031640395131191507651546423973345253344141952820552806146098551395126264429933810668508300047598281509711757186926006301706349520728747165131640722146690258218801589053391738650152196575888848333196724201373634002953243129245084390843117512895912557495855661410170083748928845132409797914430459190977690675072730075358268848419775801931245170601204621041867326941912536815802906387361054104879648327909570917824325758460698936821385366114527242085977897910969170243400082199949282824214998521341882501490303901203387828895406829335668016430826550601067947706559531208172782196556957148975756111508972592595128100950009945645245829713392904243761780909022065974573461753321417081917674976869721364856945297237903805053211996479288483307016033165859116675739811044921546587378852681349912332686831519898943558515694658255099612530435699227203194200408614516295840741566256986248235925913317615711743699233361063054667127007568992808976573264596133039586874848820515820141850395562653094608840076486517514346735940841213150734254213324059261040183122802644490586427171179012081819675678923813296473014243759908388860979388067030181206560832883394404733838105817268604181101417653655898223816139189295222530030146751270307510032626135111642641928567980342051217379189661210494560608625657280322553166958738408755287188441791344679080975778550631964652854708916286002517254390447132197705427483567304250131782084378581508021266381252264939232278526675221356052488203255346894415322091319062810836111656924780574520339226081127651941217090975037493406314191505412767166633730120245841135548506015143590862604940435963532306449937296095499509281281317849121309249775472021206773143130183813215135655978600116069368263743195285234790096716318500785419743776787134577132085320179073075941767209103896129892514753332011408376472822768366464845734549109134878356801669978100107669802759956238331926675520661123572526243506897965393619143451976760111104182835486960960347083445725378632789629023812683049263986759577936146407254906303241930040845690222714342680265387319843939223632394911752534607430188036078474379381242424524685454958041277768753142069128338206187592961576269399292365713252047841776187998595712764578752752543179757673165609629011695399302754454530201928428698517632793923471818605950706874651178361747381216698832605340430066934356287512457177008871856021934839785827403521087605208518618484715678582476828688353302007840400621674762647642344735865764566401480099107083443269663006262160567179881334480024916080706339602376947961463393885061748320770335266283609916425785375615532413879705858683508598221589368520489677314736113343500657912401439470678810404538689610476447581865997538837935546051039446937581076244731881674472508875601981210923884660545096832194953714496864814120269730004430903730756741388490305798829305040618596014114837289726929226052663790225016726846863741558757068133686844226812680996381435025472001056539809410730599402202373316409220547900369952950813581590814809574510634296447455903177503795774619716241106400088664794904419902895097559744880940975092587564112544455841604496596228059236152970244587014574315044088610003517570480284309477887505392919232340919950968559028527292593416690765828376232891399806384552392590400402303513608178623944682704770697956259174855346548833950209715871456208353407919002088930850701597037517345694605522111618128315783349127841749473865645215024523607562921832338721170695908112160272015606123488062458353516180055837540019469402905788700011049937602432065760645264197178230372437353381119285093832906391886960996147573477411356322011421976139869276797155552506866608721307329573917799873860655226539176392785293929128896277097390928019508348549196807509067252054250899428208546749219742727783479083117972201624057238719144186958105130925963740062907867340378380798067591545788914419170789652929355510547893741997645858362762472578873243900618135044112681570217046037348425879219414664448487817140388592462948149502907603061689425557238789419606787988664488555625028559609230429543801049426309258209797821952623884605318817593621982628293249973038300512763777423148956244029556769806128405346423974249086354818767116222937185396566680485332227343008162680508405507392188473371067308248701518156347006918595572886245196011493123818886886669680816791468657375792562680660307751828871686388092007482135241870006406925708706829765505599396972334149551927609360444888985415128191502183369228743768886879104260567465079774402961251289528059069168481274774797457675732653494453405836651617281389135881944384735838860187068953535845102025878730858063901236340008437768032299356934109760304818813785950482747685682949136514667907771596749739507034169719422677944808255006071785861229276543369344960425653665318645311782354950222120502341183124201371343480963333654890908138154471243805973944788573283463512567885514890430670118360084348916138699893963697659031521684831465302434368828043186353986135292075797097091940584158003020301331265461427466146153742135989958110314703521759304788523300299927039094015858053974823836251709022292267459760577235187443933302400408242821689906865961431202601173335742276770498017964011752856261275608876477290298704392651046951446267011409644768002352402949690211462348281819246509328719321266152645857494293486920366837225778521940668982321648038752674888328147165972958291149900280700766499759855643645328862762654554281999900869018744420469891774344258592366756393381132006229553268482333891068342796968914862989674621502276696607648928172745789735296213465469106696665930672789990114881370405367484118367459909000694251511150973992596878173232521193820328567016761736065533791270943595217094169646616546483960533473477684157180836217217106739702138878395629923239692788601584417073156006100896902981453146600451284038172993702351030134286311922599571191861107638839609549947534974501849375921364630223644937779628651630450726570805445819609247363256637431179488099400331559079807161675719911343098035809191734246679316412105222792352361066687133460055518265167606960527256980851783231595948774455355037793247261981679187779638686214421870897314050548861355240819381918715574870860139050279756728617403660123786090048799572466207162647463870810624696651380584923778141359327322291858806935278487259854735579525781012430022299268576956817985858579082642547926010037265913664584167075136917736691700096927050895818544831089235908221524473953771423636285381133882647598411292471529143701882881986306598945354988238851203014823854407805234599984701056952591623506769938665268229075485403176731019646412822914174746403088627497383070903973095067200060625875467346560605020663228891868681833006883099525479337805706621271394806994248283649894931523805216479807872964176231779565361689815456666623198534779996908256585714816764031378764000182397096684957714564102793917416632128942364734001730851621252803010982065781480192015892458965582431393407574902992563267266673923007662071217480803865090258722497310656959432862607791569670037955456192946592529877764439804098739195694982320953465387075206026768929652192613593884124797278329626816961079401523843915197281059864235957809729374565112065682312595647173852292079176244838309935674242608108638226293514527952421531486234377533409981997942239839099241544882509964326342500744406606566336066354280471508462304788830904512938930672440495305568539690312356856608856259017816685635256231615533285713371352194822757206725979222856622658254107791572962619682055838557052916169570018963573817642473315851854649437175709592575385757818644151331431468235993660365930842247077635832731778677770632259909376565657110919661698727314087077173117327314010303708738732997192867497623439221397490214626513667813648033892564916956670852911626645359568818913411621544576537419478395458131807326674186649453455438284813047489886280670793269092518175037663532899454328798320655323469841948407235208111614939181954197958701106072611433922646740667275151260417776768726069373124233653513148286305474849413995844494118932460489483737566536493051169766485017650217954886201606334133429007638511906732240115845110656594123079975225661076390657592979398697317479158834164997258121654783022559864622722063950141225462829324756332836053112259308854313299421887689777012501447226590354397618369128109972415473213670898041493503663438101574924343045559398728281038227152531481129609450890817213562313402229462096944963878310031159024885109525377693970929605240268975017352872754546636858119927029706364465382158102638980252802870407598783732270764070253292483387864740483528302004621444624186452604582132246953831724126312907756808697252565720434384684997001900574679050294551725370373525787163518644560506883895237042038934633362157603282715243702597586306605896561284646388935827828079282264884831298837870461865870925505820186110139492479015874375811728112022105693850812568344664260218880568465121835672652246587852031856326341739643739253060338331901062942957712405289581773350216323757895705899909397089288668477379709609792783309320510503963593693156157498523954524541838419623079652762729886755174737539850382643644293943275703839588398961914331668919165437408756667859279817298669981962422800512240487676444683759525236956029735511561122996839444920893606619952082691237689080978717376592176701619434586325975669312565229971350803792568226257177748289960571208587199520641937335302621396400772067246402705449352480260106894375277929840042569793210235189918302866897923222529884538393930344380556737484818057225216681786839406937423322924331212189424976238570904121487632627714294370383923202356230184162200127783133263639374559370087371190498720637520652289908053419511809830374814769449369505879796220492330981850420002620716652864234340623604618776765228261842606700997432213423755076424783902691468476554554714906779559808910009134302605493341274022725339425681045295391608454086498639945630053058258067835768862131668471819722471893529058599341292590742216727032939483265075809754352566463102139284561247391038348000600967153415657708773101171004813930094118542925134693766341191324222903729055188006082666783826165829356403884023371420610846520735175713302689265713154592253458023909828695967426476901315262477078378360446044527034400591432376796682626393947558520097386379175232007646004776763972028618440685018959519855142405121248575000689817465302490947636657609179855634924094766418542327809194144645255491393485991562304949107700393033110603604868301280221596109026538412878592199657247582481187961849467941107152817411157874767252774946468858852512612475905069681936706953931306083428557223665222223101863621634110404331746090399103789891261145956504544193027991397833482865304259192136811824555534301798525889280843784753885944422914007256382463164054479949164397183288815498568801911226912323483035707591908236636575760220405371963568782602055546182986142420373928066463505716645646438697559884310858161145297855985490031740004223600728153981609220382146987017783208157109052681795406068979968360064485507236572103430295686955241865198106202153521240010433119849885669517156182804268537259710076807287358983801754616065664214649272813286551034425295253543421290460681998944112535004239086869149181216254903588276850378397973450117687278435832275898287409281546247981739133923997995148472727774868717708551770555707917169594261705989927672037765529316197072615197036002878491978140842992542156074053641231555339279010190808856725039235820368468886628664093360144933002614007739963850129089071643814719546328099741454513047797735208627223798650623670765004058953942456118990828599873517605797793486847185380280901113539002185745307326632679372650082424727636088880615390781755416047867412856741065200001085251707287528516801588906059527883607025628387268045350304453333359310264505058268748461800732476213565126825362180775188285053694946611151197381372707734213036617303974842985145223736778109195477676333655001103085536833500679093015208506381125176693986212369493621758891093818125533045139990465406167272993366006472975036476624522929770942257350646946394201128285540359564403104986205446912518520342024157231540458772488133520779093205560922088580833797193101446381059386510065616945625902123216302200469614768524613814392037618669918133695416860814247017577687221125377709894801470896536054984651728994766772821684887353200555165901402877998824459634296379240592226195787191045893544548498620172596430778237976608890636315769634084119570832131980501778052869305063775207694147829613588666445268001392290030505880374509633752622368353563796921323516259190966104381854336736026133632868089231894254524843951520210993475730810781673705897068883214265708125809020159242654767316259887811099209453991668280914394879110016760793263311051877979546508334666951642362655098071872236095240437384715811869531540302890544314515301332840837711963437049589701593322736209245003674496235953530316606533621021182731565576113527038200691464137458451902642232553222165922512870289977419078613957645331062088208955621833675835303068512744557330438868767794591326630427245064526324657984059850039450667872240752765782458648727553147629568937903378039578246090650725367812866421791184580877670109839188142626436085228949393365539274916102815845458382585305605966329057889374177321905072586395334207267503547700665833491185283693055694025631596712479563808790551609118812570295772091761018794744559993142591984148331307784887869476078165465743682604460837938588574419802674930946602916314035012874211157293487737234531473887928735136705477641844607647611422974744284645775558139014712152643476536021744595900403397997690407098745876959600421701771739131375900423561572181333154782096985494521422483337284557852539931491182139764287408491036327102769088928679750000076008032211330336340010690195299760944946372707334231813756603054544182162699105725172395009384135375575564763836124530998300077416289301479064620045900230885826691795157649518008450550608044795412894954640861903118028014118046626492198378483943134009779122813636777234484209156194487504021813462515827716836362260254554870269606311920612810641412106835227736925061240092962475106097827299622368024477166100207810761121120185427976353510951664681006792895729835989064008653168895991681962269755780346588920444767872842309265783711329747721900182408155922382566173429418731945995078343858459244427979053524869155388086887007084971250128761699177633686259377530838405123474764399024556145655345206090328991207337475528919406789463300533060527443016654182232937169322398111520790215882879957590343928428248055279188030818617363415844492024369660470340896612017524720179853703073434538393429953310115046421857967881387999258481362357004810247976644199679007779785802094704278200789648523582898339839250659586376878078984236810626340196681149599277105184129940997007794449883600132322855061467354893875668399857485758543871652655000959075484320058970982131759206777039016369671155727237269224494612003736511208996651750997329331302207462568423624576619877513608418296412753157831697820285207256426029775274052860947463258258732221937758091655236674614555819191942488399363957339483379260818710361214307172731381057822100034386427514288256621893429124224450815457337450387696665431740064165980595888558038855166024407221937921326904132361368620070824592677931672219266630268850291018680549829229713647119691396406257311062298414471060143878911209889038770316515061626691533978351606880215986859953161093765755523528587042807066061374564378382296047493752822205441050914107124420811575972221008935089929142307104526601822714713359125974288889942942245660860250122550063505959889656505286611439483704197072682397549144632842104314689044406017979482544458492146393813184206819880925629875023045024602558019248700534595099806885547034124370930548769436088052525626975665736534546543408790310600612975170360474633240917128110846149275837913283204655974606392503696157209467770379267775264761862324179863097051775757830684836609168315344841049382942908806584553430480441330428068809065454283174179825857134004138801368425667754343479265528460257335233758035620009634556338757285417770746868478228022456106564303387312131289170095665398627956856720664241506142535886987253064112117694993045470195820229366115903555680759577040229207490931498761286108103784525449953941184707899826967150982673082487285594849915158086744265005398286645911552862635589595554675589768337787065979686493510898745355181752208056409261015103972401406452715088804574816011336517910690711006561665335978279101132502607984301631150751501742568210909328938899104247923639579231354662367528303056284146043060079148833147055600794168329291274802678687386768958014563958329879625555126962532245702317526165116343128168980955766296883623376947649039451121397631659892466899590233059596881814183474979832913541618028429662221953846794791940504646060820848976996966865094196721505670052098745600879174556614268082920863698193367036740723484892236312697607077844930517987225143039069145566877878774932013393997666495628871766055401335381408291633599023360573913673598664230144449511432291778346057556377207033509209570699690185890855206439599301526137338603944678118362312873012021156545850783383768485680601837171713923627761761142353216691071559935706347773648789576845933530872075493775612289752954838598830259220288085992061250402427113056207713871811205864553517138506654632510963950669259497987625979844315763786476974874790570598808350384465673454897127937388055453481116811664362642921944314402363217058002812163163882321616550500426747958986386409011170739285234087702217397165755863982926212698968062371037500049471597735146831606738433442567723011875037969544159596000822224003673582388960499648792039261732606217746453476092250916457078908406101407560856969530902032622079947371137486872786169876835330321778505758319100752842263205570631792648027159533092382577646758330554103426570014968285852671080631252665571284836426464012947015695904696085580846157666898418480895539529511230360809049669336026993627398289474623797851447063994734306399861628326397087181874694300156697973173565049246990400093038912248464135892972486888469002785396692017073747282130744511435384383453798994654405366416921406994435884792980616881508841853633086739166273529810269521379728907491964805689051274622356368484301882093196447320541615047543609785450108929583754925454358875926163058073776241012466972883799647781716747995089986910717174753498680638139397495018714052501539371931409320014997894442317893044613573497101346801758918940571212730643709284816747967654682881003544077294671545113906537701835108645358761569071225895248457916103795319592598193983470706323658370075238417767055279372270346254549033880011795606462716127246908871202393774793277167844247424920008944544793099929678442439905949907883009247157291252045101796842660074955837942056357937932705009089754566441529331748605862823085670450137069070759912907651249379388242325179040073087847208955927140691272815101374619043055040047652418323830706239206021512359045069688922744980892784948231697535416899825129851688910758970498992042645117640294290980834676072519860472002920683248146086665625599262528996621569295999285968762239346026145005323520756736503721148626256548082897311115524592470201366872598687321134690667195710867542637951670219560083894101652671127847587217598988688304198989255860720299115367642765973813475459397430875587464358975239710922307011559469795935485571860276576972333176861383566375846630612008463951822097621098919065763559167249125966392074916222551213884493197048709015963203102776719474626503203533534942790235954678154286220592213312720533426936157305296812021279400650755752830350841640299512444444249417769933834704902804945766919027346927457689691261231602323782372180529883275140147753089937709154589884554278337883518117436028411376428203453209676065270849235694321145450045698483704630963991761951463481885425919540792548745631420680780939750578076502534588525505621175091847640790144342204336550136384121256774544467154877336834409562725990714560065644530553784507763108377535628359290158421565881378431750183024362080915407587398995208129619115982085585887528790094323256958581230526687212631522598129547949248871578110480052396653945587443661073846982908898416589493777944134605707220648222166149191890226082983355038598922726388108202691894358380967245831588356172773756394448205750397520857033128218076205613168513594877761671810815992748893501363750100586373199289006224965587288029031461762010472698817109181295222181798579225781802460100970122169529997919297396029422002557188423766646037409502737629711344853260864013575556042928686178414823636758134263318883412788194536551253565893685925382886001398932056610023736264422612001114178723365535592880090194221319577386020113404687554474916330879589999090650820718072608605006328099040067884538775010485239512810872234784597224842833290528609680100209451105980422366306456097659911872177167853252854266626838263277221477476214663552849470545205481180899207040812215670811063808884278382082703858420994451715084031753740003442965125885129046197110360259592340440508217395260005023364560622438624140200429646935935162093812300115679771662864030909737889435578034381723111438693999439152942869615843443709911947460388417386677164705183854068539678982751390223280467884473680258332943110754232250033359439572837827335461763888762026524496863874216484878496165217689052582427675360864405144901194637699864227031354384395590860068001507756809194244337640437867781030116829479620476504642821726575163736238876836013361800227537639963469855499011363027989351755961372267457282335407154451959291704205830562268394925010133909441732563558001348476031558997891314227138751633342140485447195107734307781142812929945390530328318371303458186026530974733899424716145314775645103394899522191440804893667051218327379501672672364530329249007058405929910583891349516006116297008237465088041866328237622978422884812166963842371271351085877108524431224086027355641807411462003463538024226441522118389486519549449080516917260451842400410502983436289160203758723274961168541748046639886805291991404356359976071366833184907306964683961187248598222185289218476213864578854876013525424463048899986323329770768904250428199586298727609742360735861913240811846703325633035094037972646544718602357375396094516517714049337814247907659781663347532294579248368728318717529459094530598094662299253215554565806834105060789737422010846053208067598249885475406192675460267843582917190660412013408336210610597214130115934837254193439315169057425495321794623456423400003157988051020242405651970195956684362982208931998686047431788552997814124591683379681500469429730573609580385275138645971771332045159185292208456705999390449383060604647360899175100459104208367486422624719882421817048021997783572952714686074780832713869393760459510414813761089978347740819918563074095831656913633744918597176553587095972507221438946345054424742811855413932921583295454076396561842666411984565242309276852560278369017105044481376139671402583178373701656929682769143954841864118502878584227765590417146231333617738679665597430246189409672968306432482143140261621703083809458851378014942002834488485395199094180797450971748331454781879991053059883876271742941084530640332006194415891833939441125752907443932171438906021182591803252013559047192326541592063230125402491218986394291320422719676989340190687860772076800336957917375134814889015314075888706168986781685979822886956214653540651757699066662826658072123094997031808062506271736830282268595004690851096217602113145957059607240550580102693646838587383175805796682537495926199296151778099040203113119572765346779471225695442402798189487577134529705986974000183434899666417847295087009421201057218039145802474674755341019197760288976382183721172059662790294707693750996181799543948993868521643682218629870480360748228838799138133904840503464935527248175280678310479764246216225081394565748695713822298255682290035372532905075745498407952724291450648905548843784319671716689531070865808511181958745931213972792553582129587243044680149594346346069040207163529497846486645303077422813579812357847119387984521761673813479410153493189400479582770953091984311422771208561194304325201157606528904324157437183746634606492052734030348014047283420164407031641560474867023002911799883358443414451953925234279156894124041177687166692459481651673705967293731196647764710074620996508345879066839561489654060871431552670060424093437802463851750712494826916258755346404408670791131069893262803583023570130443217699092672906508105711843729012474979338707967257769031377695712443211828411315604405760775463332315682250769084912525933896108985123988428444510933579863887971879091364736420236424953434663703055867242302912912050978775356929192071490815504368955664136328916501683693893213554677244395057938705110355807665950284218698569664817092155115716049677218319518643271263948605572522552814096249101010542255104210592083363432874679108077679449122496265029786677124017294300519896614002679788192820472483957990108701929830632152375513619270709589507513158315304197271333196059631800117113467307234216557207186131434569059924265259054145046990455636562822916474887812141722056802759909909340682851585360938014698287738842797684819835442208327129023877971758937796858372357605859225380277550203807178372768264845237657443549764422102478146437815336030249269233432048163274111035176170664804506381634315876299970095368056904035581927901365697261040792185786614376014737371490159454361605320672844838535367890614167787729570324890320443845359140751032639018994489354805665839713610280214062383863576870956473340233888952383792491931946207986554379611014382521249785261519266759001945316595067143906614142817771815419713122702255877553450445969319064404797295018281209329055973413494398154579782429984866871475585152287302200017429906726317776882575975881939970785374516796166615555841835941048948546566990254599543458122784696878214917319381200853159148769377947234095058378999621655166395394079594543118891857959444199955158177963429832531021388132610007642565584765833520934477058178270522972335813293949485550886308275083361902757750774016452664914473668014187305070696392130761923413714207925907826413136684409874239746143478436302336035138611737972801178848843694297436963936146797833368042462312052423071414533331581344743033471379927777225146667122079510685403950885057885065429594219227078479592688496749093427411615581630497020022626298234672108326065250300637205755794853121420375580123710596820221851795366852239005495775122652716832918545459550938991165624525469701462368559634146486535645222494805695444702205055726122854495942879156331320496316347632681456675158531021907582002331204345579776594265721120190305015588242408805421269444916784845887073757449989358594672265258241843829593757830514859194709901186548903745258128949954262304816865356528842498369951921281854868283002934686601430118404617075708885413599296518884102615999879356695396307931234412612090102318239144493967575900760156039653736400648698685158508158255033902170641632026037687821074086602597483801420640197707808308380427411369912124565799912306254978686266258977894330990149089730582047533187004470064426288732819722924809998889878868573073418647844336518787981702396519956835300481872822329647170795847210750444813051076693114094877305638968599976616397772517071472802006554808775208187163438439883692292030645842162155440710896664003753184154967265264365527699320029281984618740872808456597748751581084892091898837416768365912891926702979844649884076372555646050100742502280433640852297287899762922191276156812651300657133075309938808914992245105636352438099877576961357384902680925260269265258883802481430116338144572893723459477958525359609040432555661477530950915354943992090771167954415096851710855669357362293013713970464680985207288028460584147358907742846890605637605497162625791478698507068238839819323344899208487351130677432809531404104092132904027004126451487752787569293621457654547842681436074625020599375700908394275534946122553375899444443729389256714028757608043018879974644169443819298237844960522171981264206643662794313613921526635001617439059290502418279177790955519506205924974417117011581414811773134116449348442526873470367235267010870464185957373274946616563189542586134310172924458125405178106652318158283989361847600094270407207011429911886155474005610787194696184422802196994260850069175533550239567987005420192798054841941490107158276935273932517492170125965368686739250629028976153803620242401990419961308444242110313483778450531592085918778825857680111598260188783415954912069422932300676278118703326865770525601034401489157771337243025862280697439090531125619709850773226605180952193411269698501964286198475165575266909625134514500112964208360797788348158384937747750677607075681910459327210760492339692619211707140451895346482803637026154870222449290554789438399988297798014389539712766050333438066777304491299469713610959064933847546356793374006754545265273936846319921010705786728777088344705732636915328710712106966943023409211878880468413613826206290449851451036047741550962963401309283935815786727100093582815288348961833331711631462295598182732143368116609538801068500823728382452907956320777458479689053878161234275303638157131208843618030869929802339819674619518878044786288788074617775572191880330964347043392857561335347612407926871270602572093430983550234851974231505119495291193633273500355586094219302606611256445867419556390344615531385147341429790356805884703561121532834457356518257987230555399008998998312788207987314057644883614421947347010067064685867358328436413891869615003228342130871050696009486487487976418290821364190587832427762575021909039651127884070674553526781417891322170822362730813981002279294530722244251506710015035004286846451768167267431125082050752800123707415422538227123229683931397412563462591949119633733242998620360971131544903833814045203337466681954661138300694009966830920469030569562366307347543588087509650828272664614366837439782134757969009362964685996696904570772492805685355624023287701826997406264311200182501202424519154536066969201405920825858449499682320111963416613667467044679704493100439759208093273217923207233507547562093066928173667049510267729848247859147465656337122357254880640633061591235352350105813074442502406122714813834105973887481451974823294179714552121823896192742214331872531723085524896485361467215752198662537809857632152946673931627466696453358268193702427446912685816286108825848814319691307044999460094611615539857677201599494051374175583940366642018728287764082826676375045524308545082463754835986476731941438781743969747916143541093972701056275753824578116760315647381510246358347305989491619879051215438632682254343847355815310446776109958749361391918572910487704033719694190400157922428704369745536455782562662697906890028287944162005452919193339600925899761259030964311668557887787243998418127168983490063955379926519047911991931248903072642944953766959214952005958791537125402011954166861334479756342117392387144933745322996089468865971175294627827363771526755648159016628070819048724608905007578983072409919452010254942218969251377333997057169092195826686373410079132901225015188282796123725038479555545901058077585317326322861185184655399299568041997631868309155651639716098384649275502788420560255862094979091083595477991032784922537597151496321769523841638800695649118278853569596545780514428666131702701938602294437670157737300810910194149515945347297938617523626437496664763562887299152632008808215531860139166672274309025856389073857201253042098873750784146187983434840338987467866858061072874733614332681053394457339982584465899239623244618811746781541058205539917573238347130482986863842101732610312715759091958619000092529958279351016509353384748905684775961879204615536578385141547161155536560949104263179871460581414394767208712261523791598788982560897770855675805609453657741903655122602077006585925070997516766816535633056635600591364818733038287903539675577199362600859065862757213487286325103991535352863386257331165963923885078490133441296127427029362751531380110556529558544675883714828385743834870158633209181439873691469819240809351103963583179171930060895553838909086802494523148659724571272175118368484845689953224918852833223519900589936730301833991914332562837852598388012251663941162828018159125369725498471542936906587457087871857764290522945516918097548242520697557496867207168539101235256845369667507650398996834252483051576489732804489560573437813076691034679372390399203730013679481296953337079637416747545610453217734606205478040924414520996136144702769702883020180940290937871970544399603565458974091009295639801612010264827125769852577830658761296700525420470393262400800909013109332548172648358208548976384154783576216462171819551619348722054416106136087790523349274878876873547632500637999712604096134358175700407431384513815228350365685713673910222717515093997262141620038411277448959610807504069907272128531487511965356816049921869590179947752757718372236301478068954369142851244612486901992674847911391277124101421083364268171950284535739593696908959132747942554545786604829433709619158650487130764784937416301507229364104153119911888140480072110316951812626899310148889847881595197827205128597119624688908198246073641839117972683955388325831097701056799925855844563553707852988779768267687948035722442159556843127901029059184349054393389699474298359498311545146748189760237883585006825005126669268244997026944505350009211979891721323869566262911821849805914091606181375738461675361568269013487046590541794877300238238908159860257394996851972100868717701821865734580257302446464129904214129201863024860018572406558997833604706198417260561929077731727550130493755175461860745544147754245365679963860498059127132934912027819210034912674604313587052063956351472746608070863003796673733395456597582425491097058606519044076874493816352317236860279088960623202143215498373341971710668446695366989687424887780883137216600983031163815722308383305479846748321046582152478374478228132263472321693261458752786465300528945163430933136252222871972228775083535620480950809743547441909329513788637709575008533643801661193752711285375414018368819351888479134313680259769078960320150963989662432000668294701074722963086699314280678712984240257293689366477674588506831992487920722350366706799646064936845317754321049684089563946377443146541850433627989429133646489114963569070363412095209913842273029559278112716246627608784152374907722878238349892610908247826123020689429543532078936531267938811177889957059495317486406086289688511988960435064809190049917554759892910012660242201658140028049938106084897361228371920968719672833060811931405464465371327213239172581777953809814456252013930443879296920732988912582650666195043931261648758577026234876240533963662327484466110491827238173226442202887606586696228723131487099438227338921787337133890444420206292363289545893479294675607752916282032118896258885940179137837969513942967517840083249938069689353400608798978099566473223405818929927339990680189111977369772948050077032196337891051095639006753040236760982885685085458499357295402622446801482115588005463584191864310554049284067619109923960712846519897489840831888287499197549213641398875950770923619585597077873386860812463682627743350943944572475462958452184937188233929378775994606838457746659999552158653554388287612614676698668690418758724521511453481655890690982080619122586016048067568323800678305972947500123466257064697462613792510194071959385464519408586389511542740287266011038501139132345663555435824894196837896527068884498398233152428619802771463757090082843066720502685564301290421845782122548782078421061341278620847460508404588585989303963879449443079105312041319678920720083990669317534872943712346301112668600363882795841639708753039569158713640369628325643300131041436744035942471343758836051395521358854053570575592689057566898743380440157767803814641878693577815284247259144014394359051895137668496378230650579292705681950335465521505623776713627344286845806782835341571477588428722601520528829029594048146759266454833574609988271669588084394975675698225544286580465157290530794835458421273887302315238367485187437590739057048016113274091820390600076767858097893965741074875313621599496743370199396400655253306940597671716085208974951588831292419320320665310302671935978654222677263613025253812852920081163950203092628483179064966184433225563127422907383404704486760847957975026622841490634089352841178728499602924308291188491346244248236817045399839862303744028299417618529513664246376783739471547439186111782769340466633731383647836865149123496281755420650711762285764669426485917808192111528484827920820743897592299967776948154074014578738684767938191556410345681967982548831717077393738572006096586648980309207689458804546571625407904141255524221836921239613182430481357060298797219611602341915353496798463034884727386263341043738141730083969266020132403558128931783418379593341556240511697129314244528463034696462340109085447243802695888198436179011809802912363777064322377681028053820311138531411643466533294643559203550184895978632173612949391777030550548929857233586755773814385433983556175055130068970562377457274667466476424674829730664422616869254775791007607241939331871650382747930360634694896495342405270173295527462104828191778073444006360289319865258713807285833471325855508540785074198074128482187617554069062489453142992053276590983095214397699697283074628841272870319602698528896101280941190800959165474008071414143918254935541727539599783888813070000789673932958865349538342322187016619428754398655289085527305659243371424910261737907607295336314897777412710837739856589313297391677650992946537806970203584443554687964286584772367185949189381726652591793459892890406947675559136680060284529136701843260556768520064959437157083603234357950457208065867002961009527666059803769030244727483881029247135504862689707689332932474797647028871572879473495258989929847347866661441892247639453252638720141886495037317455138173231600121254675461602820475879599266398435089974942809217105844329527565354597597599309797788818223195584040358449108176460508825552918857048932789467746838781013676034337963793056561685047408054645734369929630857210829015287038970736284684011286736583950425029317047079755702202891015341305799009113539590677902847120480267427797325654300221136910334576246824462480734668929557111338405834522369654720545765525277493556240492978330380791457386003119040688543319944308498765096478630993131891044342025636940544777160533393250317152235728011089048016946813589599703068974641632231742550922287072694880977390342570553256352884483612322373128769179263028297460056997738562030656967457946352822973617304404930140296576313252227146068171445233925700032416578087295509138606358384823106135828771948387155828383544214259145812305905878786989179443914579180289022603793902019972024146771204297547671043845856217777286466821081095189136051558382135893348000501664662905845545402902372477742015468765112737331065197173987948130656313705358691329811393529901198142417429384841262727420536045714444561211117123168877862163874103783894989212852537374379818619964625335121704550896898009232313495982225920180032317198697428341933961045951801315395416498793545846522335907467715607623026934718298657214237435450228967809396798445279244011873776740909528697132109059805086322831354136986146956224583385879145316608971069763300751418606856419623033595910919529146520101391226709293906333907989880500288442551407138207710439608119479395042659169882608611016005156882440649610185694190925517508860689676342901076928238520976900096906362541851385025607344744392686699252298492176327218453958597513645867721533387690975757596348277257884333701621126805968628723049926657509129835851235998801084185149718121572379734586775593985297118751749579576494846262185338393201364466697200473272402946036627138350910768320800842434969301507428321844782066764971547435232437611044588063032496424358158779026275032367236904539620001019664883908646959419097087809667760224003822379610978910033587138919160175345205618964650075176100807573598385853765231898107599102304728732678491788348864716206070443347536805330148747073132746358816597740295531894096962096017427447226098282193647510553807282137749075506360631798865007703261519644871438673777545549288629813438810356162128539991107404734634505034526469331911052599700401289718862822697823175571186984663058733857172560294664964162942294021611490276566235500037306511609833055562921455316793047524808803588522877753052673582145905093602793814989213688408617702024745508417587210072286348179177961869199668732586121553650966076669898863937192949289037954661519190058362760113333133830028230348618972849723603510496238050808699307412870718034168739688729650912928937991562086412880844183644061261641178511521925598679327702351179960447437731420891244359957902256254995640605388123224275484736748458307239035101157223142430361264199765766360001122467372481346330137350556128307037698538271395868944123742615207110426866692929962837383620504910533129801176535320836564251719059832484939942819981511217966629861826567735330947759091094679784543798498425014592115747404394623041026657124629343323101270966082456575061902767767088722047493761956335759995735341838406449245226081786083268675978424890059128491274329957435244048886094512157054268272565705717806082334442290569616293276707855483527922909140352217960062691999723726356912546089633450297973529044642491160375293280640610903135018656277568698163330650334514234914468477281406322870574792524657133047144967996687646504948269251721678562912504701827222114703372425868753212006443441383324054763624252390789582522608322806836796251109903110548012194737882868428867463669890995828477443658223685639989442319642219013623226457238033576025008918115813929685940749744879514196223955064372127778890289406930782035316779940297268791062952045587571623500019098101807313669955093358169449257973897946571841547394660890299053979985424398374754533232815865120741528831314150215665370572541763226172867947856238243866977279983231604066583614230745773121594322374127582325069047695207171080964635685973432880765671969324490362317173741106980425115192345381907209962585377411579071088529613911955160987609472543471768757821435073081448553266598486003556071122901544875803861670537349795319535662959800508148384584603450639835121179895539321820502391123792480535743471325169580832174868580251439249808247866481165403074563389354630056634503356598789120425501189772864941114463016783431390057899720375763869590012271582916067348102884077459655644363155298010382167896263188252451581568256967880567098657231973883848552225321246755102627737388138816261130182534864433238690296370573021471954374513226050132850944101206464267363200026973304758012481912637488641707582889538474305951353701685993198192396976082352205648789350904995976927474328748916895002414614447603242178230915234172443202302049662556416767268763714245979121209952764552486853894677434147013204835877904696076163268715203051132995336258780115633485854532230880495792754514415436072614669555820194241162733132157649330129718228157272912543840724712521572417210677839195506990192963237543963830359129676666132985509661184710692779533103569412475412011332927997522827196454172132391070292299811126001511308178455091827837873562969900241850843598984383429581882054776226428116064695911150983792921962317517967796865359271135721217300404965402208757503378703081880185866068655452677231645572251280237046813288078234561753806309528571803766901461908937213582592453521379855091673221149678176144659979036288252431138025530562753212049100854235314895263681050287325417715513306134160419009218665913495012766788256452429284970244446677699358576244480728444204618628256612668007548973699830851414038670170803590367608819541630790508952294705193613371102807748313184620125310960876784764268337481298512388015371475775899563245799521193623672730793293987727331946213348238719710642351751915907864963645268653296451977488787743012672118683506305252198585181201232346691337955648863915507016197684240232529285920563328288465708254026411897420915756962832900223661967139774920431830993654145400259792181532418914323335295068142438245231194698095746773650495565431287712705275499367994656141702441569935669789222289218467967859781658593556535271177848575859859664814388852682847817362130076955257478514586733367014428242466242685725208316809108764574280848324233441476467712515898704276881384827351320098390380780037706040528796677785452500726157047186123544557612011947698395277146263062033294062723478244120866943305700914174287674206890705559359166901883086163652880206331043083632106724465732721331488348892367048261287975810480533604432958852520101448020938972468541547076073879876044816832708724227254489251327669474425441078932113182242891537513358116077277413412771196475815048266170919945723069885810040761111180114469842956086449294179582351316940752555982095193368487142898423355041594987359168769027320929317166867195122762066979057264875054988845120661023880987607916614750923399492980643709680789217532237636478159834083144645744820059606970848888574342977238649470386978032891864595655517210051159835294848110812379770405553981315964592916264092996916238414216984769195792222512872278855736022242065834017253021795142226616164548610429800479049775207988656964969694555176768550861088383479881866047492748303130344523157923003876159086463890066270513209600340921335825709587055379947784658310760411992948595483399217678420044276270090055167129709394316140547910305410314089137169740640829231012957752270832414667291286413688014829458408276375067677857075994394064000154128881196314448520040071667234291639533442455736838606040641166603588939517386101921023817470270139160500362686800955001512202274901028651862848384605525533499581186976433672450686350550953444961817917400025552294945599226679068783362460437923388378252069308029190365356919317069855445434087490585678435843968220702875788972152243552410841445325167310043550408045104504347148986208203857415828920548843735423723261445398338081569820733210768965902271981413611412659966773269227175332291504333346547367802672830034445047055806148660769796026173263378438593198535721815557133478849873254822342474950466882926406700346074427277925305608328893487706577660203021387850031673425988478321532905657524448048723945879373918227512143245641238236517917313204628168270895959961819022144452051538214124223184593825688853746137405595907557201859889760888361405296417042573800488379825147946575769451895436777268149974777367455722872902121061047991988220281166424906130712537218301725378895507830097834129691421045056122307806916866980837389838791588454070753981117935044201802312319054827354193711234248498907252557472023903234544779323121497243989409234818981858580307302051428684448507948457222617162828063039801024184351372196605197733618165289667511639847993811795441188380218647861139755531573787730004548591388535192847612927802946452786482641244914991979535662731629163441730468104853985428106051914664099004283159889767644285987665794174720326811781935986987897044914000401603653472794689069397893729007408033168388402914130715113063044218876405819749097852059190299809685711655045775547950790503380453491218321397295005912580128405749681730688366958630764193202985420447202456973783833477475939503209336579245970076420161139132501685299365100666994838063841904823436231132131244064231017585186649409224969633248607071272262886109735975745653617905891971175810049049192004958401646395758342749872267422872517006543393637930002170975340393832670260655940298939423286602095124145761167332860292603883547551349346907371103479199711187055076696017389473964052952273546495750167798636205131762046544686894728594821583012502216095671292801660661003421364987621572988405593945487562664506835969500848854934712529175081186679006120965756672890737990858382788415161308502740191772613372798209639863196255283594645149501566537857724978651117828275076443147917094168402259360321374702496113148196247944511642805631283868938699877809604036765374296448776073413064359241138155176807904775360561483921974909032185212553300790337985082710659467420403829512670359549348629762528460608108780265520013084919257133099615503091832587202760545573634590343721229545310900595785838189372059341592927772181772855238736479662525230729687753343620562227096833552933841385114897503517476955730426532665106988372191601960939855604195982150210680259704560803690949758734404121474408298543019331301267117589639301916026706623681354429393028110071684848507036879058514856719618241000995437588449043852192011340807367871674800715868491579459596283403047397119898925771809663423788719210797969317025428616681914772437670717950671162529872527939694452510206718588713413343311647714070957217396719900007507051402484212492802385008376133033299464056417720611188217703175626386170005889724975252236967812799967099336715045911240425774246092038108172020337969861009830327317013062826750314425736766689548960170846095436750702621232722291092451607429113334840082698115904168857555307926274594648926684669412116229473581032133954026637843007663055699005111647731841377141019668526306321555280464532214558697293527756122648821310680266959663243924550518952285604000059446038335060444451154280550778350799680952303296032843626938572824556563833393802024546219008746782230373021511416453801143935056100326605254185070917180541419327425025608419444836966458965681030481510932303339797430135103683302436161070409517707370939341752204519607998236352133186052399876450638649753060885502683234448416702733487079033586474516597386645131889262202033712776582612428688038307029439973513575509805904497281971322191749611173114360660828139528334890783699462723567634784061789483302289674459805950144914178550660805514401536624804759548224513372941237505454621957056579351795176297298851036373785789871835802563794559543672444389412322696638003666245366822301122714823019518936132154626223655114403195854843584003840343355597813546106102548032532151746675714584270681295250565693985189857616053167359501190798991975287333115487857808387928073041181686216716334631506560674177002722112280398152824505531268816095210882658302695788657135839868185485083185905418824677963458255450972804400990711858312101258809295937591081616930871742574099580679929769040096557786825787421419421509476411905883002534679399612024470067038566357956142765961041834364488253088602401904057794287149224679675233948151429610786629126067888458485624445399597643036730267402800350086260697138829445751300852558722189832667221655434901685246365163637098992061356123769331598972687013417649881050411302524825932519105592935820901007843171424528585718332041599695529230085088967638191777291885331618587339674251227961921296509011169861933764411405818281446407571799670380691382975654222743237509113376304176404121994194474195357306306549103394827288081345167830730335491308073174561588422327162384916770482642000168775407950742049473003431660423870719556800048760030044519900616392197058737572875596034310544905881679758492645117935268148392181039587022439915525939164480948204514680816656821494443013063158524797310544126737753273535843574794661708765852954714997987720372610370337916092332184098160335410479666114406303649357415948279429848844963380777917244572035810078829327281684041653122860180601567734036673925229538882110271606687401127563335091423984389408786155882399512892108222063758804281285643931572091169232019345321232889178588527819930518313068251782655140805906131302984717573831033365906101263312378901346849764854313746275076842494184897309649985894434012994947114534098680446587267537389457332885261574521307532367906573169488302336776216801667925818096528534262039740469479864058444228843644969355113490438219043514970662203186853964265801093796307868802223463234998229662032060037935241502926084588871264330864175477754664463268120744626005519380107332223571762421940247482085604596398129916364905197081709000219651132460190719642131650831396175251552340399043220716631589403892566587198359990618590516500118437050472731913324783535977143030413795233574048075432554393215698647303482636744994792781525259296195889832773481113064231215894774136599152713855692170168601188852907231347717563022237359622832136739731385456179425225389653960863572513888884681114939548400604250555467432681605578868119672117466849830130953642220007107299870334694270565230582695008902988231574747723870333203764913572092511754305552574405225998036599760114010111760774880165818784629060776064060663552362606994759866290835921583038829615432903659044276577336784184206515574030646782170619498439570326463020060289070166243361851473771333066038897753438836236473807210087646376720075501600791547046330556017921205841437748338256931213261014632448387743475170739944672152444974908852644004250499132488774002514292622981647444850564526722767382287522627122810248013659881287954960766548252638881337295525097114301801165464153951390057642727333189599349593457387508542395589264731312372455793888528892449336076596978618447879189518381311506590156551546598378249594676007110645280412576445404405237495147369180658986799718203567583168159468403522816094772570556020349744470056190540228292488110010387020334181908300032225437884055345705379935171087455577704856533894971383040247404121659615757745460659531142978480468818527991075386426764286297340604028700735610808186273090618016116496607048211907059650433371810154211571626511731752635388830103258718849322712550164965061019858398952027734285881710286274913143444194847013630226901972377695712955899529508168959822430096257205507449848342443993201056759676752609632650460598921475900809059489179275457485167554050900116706448977777516033546619872913304754936217334466498350594814724339841462903573677801621020081235904687512830373618112333720688926537243044174420267975929520290645119192251190416945290461194064000507647044046266841229868434578892284763540831181274396092751594388171341403148621435942387202759406572485528239535710424655588559860856503476357989049821021848895813261710195866382141952007462992188014702029690805671434937539858598107234421376532578915314987066699294660835497335640143204811108175368356141412911762681760217215089458990922631797978521822784226014895579394167712608369162839927395598756331466017662544458030170323682361106763690291304862976350543945713123554137403911031838486674390148871920576038734267745167908236294707390140883065071444488987139628730784230379927685652609101497592096520395210480135764999681982154298062371141812522883483324969213862046463406804184223959000900431205205323095748905853482448716940177736126729269766785106787241559923681024258587476263910399881812570981607928807667563862698033095051355811827354345149307794244060608277447651916067485707816254222761396894859825943117011807699417039752893151979908723383939850523732003538058846643982318316022435662204746177972145684911638094592664663440833503267755349432236917492167128000418520332051158138399715293501950002106146316578404806529075186347450641024715057639295390965176024201026527549284029349772010761685179131125411837758271946561846309153225862027530478763926036118738795866069713723081295447756912541418672110173602671551391244357771920903902715037717542996767837092032008412605136221294188462850057434288204455111664153705197981302081751663584933336176390374603905654141501354451322522102146468391234030349258313206830065783118387379507056890541541456464997807339116147163253036028807136013042762892043985671709091794587439205434992402994560224302181906952763664220828115588124614676552046034497129891158456914530473602653195633871247782147038084039322051379811315205432790067689122698954554677848404150021507476345400317839059197148699809137191063567450904260559871591445449766529155332717410747270438772609418343569531411987040464586079971503088354427656170406321050654808195237640491871463923068078111296538614321767635565910789998444228813605025691399187187538090038443107893576519450446556716142017129407119700411615581330130903251656477373907371445391795933450115410378174395544342496820710497431117280108954269502841165223637656350865270278496082716054402668710501248393380015001666393323550822294767708011867637808164871711949648914236680202011043096898749642920538069015246856912966831137963936596988187543750612888693151609774617611115740484351637232484544409708530094549154614565270714565785268444226360069932006382809595828164105399956907686205442672219306087455930929651929521927288464000354589598772121501288552587687453881611902600999820832356697043826785044207811412341231537977523200877365119697906078641355933707037784689595059354130374749274051745643604647226259052685065761904416682727479778094730296275579677103545045784627502635534656473655836101642131681037646200222146673456334241278765367613201816284215566255481214750587178667517676814767564114546600545920131068281308342949779150852989335620576232216737869688952350144703173161302705588335987182055689136786745384455096386338188697659734009364735787610653992537353080400903542799054145292392676783892758241399485768882357866369050443407459483249532114458739120415381963142987283386452449848795288405927633986394433328911428587043901605302794145847594838323507905111123318385253128563165740067907388472915212782622331358098362645024301003549006788294595975505174146777328846097919655495602783830643028423037537698906018700990900357918503391611269412007150429761862884335924625383807207576620197335103628527662895605380272923491991725398493536768306961463392220898516021891165287797392549285615596923909679068710836675242230824741367178751168318110171249795110606160980340583347591694073314530315475847022147792876019721971454010996868019162258709322422690762886327599334610643569658095897656973296211440990245817100960304983988934420390956866772289898406704528866320281760503601295476104303680056924396587937726096250624573988851338082079893769069654904550051965806477854778117441641723626189065836911701767808945741601738924938409144530050575817663547531244273199886366021655679778724471765331504486259981552175750818987046277817380990710921241363666040301760505937776020643393191991280190205415070182023105240276230735530284641006846822582605480344390189560549800167688129653060494880813452249496438079848173180618452608810831678208673538443769726463205878203617282793048559378995357797758959176837681602500105869350544452363112233719137718363207847592961021719680940693745861513036763344838301980180321262329820349932180190843894098985798482206552706913390258419201747929770041385958767454195018846899635985510440640975568870218152205997884818463706171240123316418799956512254953290151903034354392118012795911194867656811794032300888786711462600059712467791170679861449392833327903937910108401666063620941613636913854905869791591093488159591466451892005287198823601458518304040792357092184539322349906521768951275355390956922767238230518177225655456925526783646043182346953500049732773923830689479593320981801484038546876664936667048449104948508247238058792392179716744924552747441406963036124082900315177474465333637491865354783142277999846065657220231823132361663629715107838273484401270082200888997142208194109747556248696316837624094957322136160054355153014825169042463487167866683441875092588295076406268122121084577890718963749032431467921424725812852969962516173547875991563565248252305510842620566521461686342338478070484122808751971241108057404138035311465005052620954347317254401429715093352485870487207959448098091620938575219636563767447951717333268271791823343243767304111988631497432523482233367180457806825491228016912727266005300550616827900238025667287246719302736973628706447181506618217534212682940225636574693931084034387628058424420889103215583663422271140098705823404037683631072775490604112254390070686180429001206972306653937627617460065728995317664438859998150437012500998935752925338241215298535646952204486656463964810699647775177945333316271824795743976073778784832163678116083367013110655444326783760028228221785515437735010373291363867968782456022649489861925314085070011532564572304771061105857438120072863265178817556099245070697880042841849324926060506330143641412941568186467984533269400921544414766109537834505164341829138771903291263868067101607248367234467708401984838521739949155300149000219955277082322168234921571490926282276603516816310471752492357686917306404708156830898905521247481098277847621263257159109102806800701244436984321512178227720000887160226126337562371329939508781139478978804154526449828394638754522693104513972345843487846817723214912682777518605506787991035738352302081466349093228156094280938230458036938117214205592850366601815442599321312094562004165824312503973382410290747406671443542292258237092499761823144929587167849399172966759934466792467224844957328656195128821504022869704369251347938822874927959022857811335622972490518331560394093107668787597967514825932005438003208326589083080453476530349511774210609938190752243226553379981270772803424404486814246075614027800304355362745314160542151839378416638395770629718471363065127828697439919372866167815608373378289425744242046622959267430998625211477990296213533646722874871906731522063021098623406525566163314354448760793321157733075138748457035280163654593070367645033191169532356174800763403304207002194457111995923766434124598135400077437559187861975045226344241060845653375888820199906533032379092077650500544215151325985770218443287459755062020302274642001959625221290104394516427606855747369927717238472359066222339756612503093921381330035963007192230174938512963826262175563265618061326137780341182603045429446856306791959280654532618465604344341799035636632365402055849368422374876631956265947212586022431772621663573382388433709870408594910457482213889268580196298280344972363831023729659708024539325259389228832502591920499744375704096910611755937670263887622676810510911194516617702278480466976683540540888335916692871531600040073670945968926474555553784838254291162894138671725926334031808397323223114174935619976036373730699803858825641304525770723330891305098985827958799649451700229619016409560539723000465740179992383321593259142273754345537800596136254239826313943838307805908187065121488309752119161263880337261683660513025785558433671461709560701117844776523635731207452160105630879984505260367676969216888883129788072692483368129779545445928933940253677885395904909194735143978354204473343675658515834980339779862998145571579153408397955855406188772157395570412005336814414480807063567372945717702114097473465477255595717594714877914673070938860588807193162897517679298620156696365702478073095690090780352052397759912882311708292587577319935321518399434262393547739766236290116275797584782820375946603645446072280807513590406509561314388096152326802433846678988434650208673649641068530009701174667999357228008520480813747816197051794937804122399500024684355314593941271181816829909203036066718513359959940797294185286545619443264058429841601287991350091171928480317578938737073770702879383355322290028164151370128083436274811441763147686128020252889998371149760707445641304626565536492936026089289507605222992639022385705298968249791847037731365596408087074935583915859601032105398484936229917681343470003711191209806664834129936973803806201152856834626046550303940481628612176923277423875593986257026400871568124663838499688797346355833747684023999672433701683765773295391575585461828108701574617409281380232249626267188554535611037603481858359989696253281048571564906297895698104399783897171780828183327636100978157647147687099259191333701301984906416520089912981547508901547833243208348410179535795028161193371335964585587468616595801546372549762702024567195480223855390499408991415275722607911499988650194576537596874912335667963287464930247152007431973912345320777692915423737315220862884208341531035069139993432625220702448050988184211709621337022045118515092402015630978481651284823618419707560711210156599585320120229545623755399001154825643281123166333735634804054512366865313733410857785054586268827384582257017931162075673862889916374340888600172706056104230253514900632125252043271909076102522539629673427632255148399257278934900401872622394340984642074993065811683257014852769168436858755956098997050795750804038799408335043502646479744210747963790432085853300539897098967523381810659314133577614298343041251534883047531806142726012340533620985383880726480701520143605825626544775595984043707294341244551155739172072983195381411154475804161598525832722917003845703515860552174598883707494498328004649913460505812148496538167130848514590375004550767033127782746668437639713813404371360827252073528803594896863258506221748116726101083373439669699105343346976342903870885017189986708713563493490492517296492560917948248316064681719105835101256569150566205562971036812811280382427190930552265965871148037893797168595625912772117291221004328919216685672819400041679804073997371423794279218273824459408426751332357480140942331224021773374086091527117713130014653840016816710021681269151039142282939050937305043278859445158832168300803972351305163369343901043459656202286926862217508922468868362916140537827822627523448476961768080609855540624411302714442211261644934173803848131127228828544134987848413952184038171610117628495919865291353753362236597429394906001497028038369960694313445039207294868088578251923428362964148644914672345338361195684134030606776098843974281671497627916637689294297031172468184598533800641530921640089688043978780424998778474207204890098241836261919691765703604419851879236564091410816006326720384619214238383400231310754400207350990522845809366440952084719318938769651864580601025924291917962026934371255169729981927697188068578353976854930702080996387933717318279672872613747142777669089742885911415872891884392066681453510613625973390396518096190074377056322536756888217696944761736931213785187516353681893022462390606662107464277726258410455402981740315409500814964275612071614491401524338159290911020764184662671793670989285751214191647828878367581985476944740172784085819604054759484255890045633414531881768071263718050775266998717211757098389655680474793683422770122657490972525152789171152987646168567598821011105822646853883283064939398696104570920668860532211832461320067491109138092780194628309791341954678863006766662696659110929671679831222693156586254111813777356549513542289195076516085956551825744648232743527926478377004504947531019532970191411442585969929947564757660063845614720857418356486252432243908819856759051566623240096694352394527778275945622823624723075587725727711350046242437365811321777969856345811346696902832751929207089461448908416837850960772913179627569082387361223937750561678920547218636107625405882017987999979436980073177346847631645689281198158742707831468913856599579538865116999043299051386104777310533232739843354511723294306010715065874405435759217331375539533260563864909812065032464146895869308003679145471434442214369933435947381333505915344647662372474067213082017825117788134524331590998275539070693033595057420875703582668076476254981370889997610216163218305285721702965440409865027740633358665687962243025678010091565572560656624261039043418080443469374068028879151990777698964851273448034453152631391216535668180108793647243168635844168713361568157579821350422824807639379632195409895469990472747340622842459864943693094671602721434235649233525325714898474481218163890298076424285997065487755778891324503457939218664749747469772128289631942783343354438346111821092446973609355401313342427047920742712388204332329541441367526052309222161249181869352267073908148134831632509730803795633523866745056152901813737028528363356293942316209190188115749845363709019051422101790979654020705872822040442853942149518486988822606101914190445131028724484953402320816952813602052366926191277119993448230098958483458921102307924066088012148399417167632201434029388317059679733303746077118737275520439275052285573931481573225976794913220779002127279295171667746647780277843939787663643366224112122464192503290845244064726031340691290927851338186234408955334390007379615825021951993975333772775305601160944626737205628318566213861442692499150233521437567138205994380417872946043432453764752290161636091425157088887307973546916663897429061054937789052802074242932375669872087309032930200837373597513884910728406275203792204533314771192095255763726860788089342869306139650310885823642169733571404377696631747437698639829231994089297198005857799815032917142375723905276397481153455843581947617610404592784929901275765296640654277518912248274374978074124337486985651355479696818351397441882523455475474682977146031280314865098413056484417220575552888357741924263648687798391825946303847792656889691406749835841783626512408866634525830712508694036534033121124837720967874039583441755723447400686799158634065732140469137244279935630262175190471285747543696398340886408473626855959162480253756395297958875038986661104587317905936280647989689322921381588204630257623145792369359532074808039270091481007660078518923564214189739874718050861233035102249126118029920790848149405798994990992702154502975645585114104341434083896668405312446420781321463698969150882059768760610469065899526578504230577693378998829010773176577396848611707222462990636797277864186500029666964710840911600348148323198899202808732420041996347192150280805512359487721120014817397474236718328425708335294426713596700880205910701076049391305363870265815124078104795276276273753230161209135963578998691694154742302772511875372206636288954160092675673728212820786586846894753161238390100309305279283605487437156834291037452188063647422571196696884209461748279794554002059632659576476480011707233843784737132784659208983609153043150545942478994338864478584323448821201024333582793391292199916367762322290793325852072209601966210888334743622298026214119469413323421489636018891108284416382032841896354591289890811966689024095032373355554330011276480824773973722675816645412932601663945301156351306912131530547276501052077048410715067297733476656956705288473207506691126117087138863253459018728767407672222078699696875665602120586586053550625400757608526144758078997318278734762116353434813104889801722638484108342091655923968318617022620953112543344749544747660537315736528767674687445665928026901445431263936604835319483743044302963700627169116221393128312602114288984048607148437993395791125731787346000207684584135129707499718541612868848475488479399525364963900558823423353102718109452510911664529817364470655221162895899688278267207799183269794549689587767548930887381553606621394681499062133389620984920782239872989123101439715986998150384328664922574379003896945322829205393139283951870960830873283216444521615731877111424345697319498510455668198889572277232800233794356171690188923280450699128919663252621675807794274020902378638848400109006273205068535496593930265280944021694211346721798901172003661885340422087327048740794291715441080491197325316508443118806683454329807109097254253675590681466126038032102228308042822194795714377929701313017353412310316705733542838734191726594489172104527408903867669642245070042688156635147838906815765737194492280472014574587335232166125630144494404105767579091456613562670064238653447096146377024727176786068358317003596446630790498995065714497481520616337999841875425693548414112856996803692430048036544663145528741583235424248968132317318627524303773300187058552826066481413395295367660815434314802298105914122197175067310020184113378685340043548698076325399062959580582085834376679551426493761119747640310317653201490519167933264570257690278906088669447329543311898909871143967232937472621131550189787211587455575250866811284953505940647272423055642401602731368800560944431195413190933845458197972175226535920881663483084614689269702308053292287276249249205646971160240378872027557562690801111647031102581243267901798983924033968996805906269644723783701570953001656621084380162121771354774971297327392689998301256383621911360255733389077625185876966038935944104005625052517047308188707973088574597327182591215612749715958915963735557473988119105120533706940965533447777037189392764363687992182906574810331540925431047554669098810012415505369960746755039342806888810408422864240192025131175837043692886311310064157690300059708261777308201713680766440495115119220243819091668907276942004120832351433289269580126347128715983175290309278558210361699689142322465947331988794257960553837248102222239971705455789578456129947529333042497250872022208845655928873810077166049254697773813247907466203545981531963417072470350982868347957456849273205460976776848488139512668857787043082527913210273477833744715816640673726388993490618210302386609228360123540108246644318375558187577634785673345223050151701887425467912405694142408914065003570380082230712028284261245368487794273933864947969229773364666916442501599794285847819244466089968459433420048984997160186698006589622922121999333997922916598903657847531476097931411239569493579973889144190926914265534444297088123940096869539759210677611088349185365718860003915632423001979501995805523600079936592916668118529634393102846788960250503199419825853548508451531867760138846866945665481615106888652959704085727534322257907595014463745878149387809201853570484450094081268675054440373020679530597055584119149765843933556439326765226882468671959780585504165277659182273497719476505588286219738339213160025614856902294870316627881255395965001683531032333670170983614083848848628603920202346979927218895995199723228941302143977440640368583085419967182878180304538179039748460301590315348710397040138600497847306556454586284803576255166077049457113637515777173775472798497352602524460991803678095328822551197701850187171986630310517443206646701345593203404248378585642515862532506353373619129182744635261718618040663799834358764748883861120337148809206981053161726602159147096545805387906949589022301285364514870532146970278093510121945609640878734395724111627297934462290230887472885911878844797954246420596607232261638618295165210663498815933306544255533030901505427106774991610927374376012991705006471129305896001547357531707889132625303414455445802470455681157306919218382844914080891913194949268295953067019312365474212229629694871184672975358686449333461529074964296975576207573165527929662555962017305557726099745867948639661948238093735728339289103326809293875310559517443222138884748314422022364984921046672248583344050581283018153442820892506335435090529545224003802713023567211179880021260647764907304280764594705688406322001060998777162395867112803575854145656558613713289826066913884109101459753463173201508553400580843189755903722348548681767913557298632063975824246077309830951992931501922822227555499486475239830363799071230692549598626475173307823450256665061528152843518888330789682511813590499955707914119687658213470532561492315914043131423290518670433975304441433727867093412366222127428902199565839767151413431830753586657364139822515965022154678155260093398852442450611941368777579802302445873696827598658588516152941822522919743760786664474094927653729640484120631516416200009826174229972496110259664480377105123437253438791314468413855378654710123653931947069941651502488117404834600635866334296000939889529560903334016516787963528880251008419786288524378207817989369978330241041449542561865415296706936280010292726260663205441883195981382625917171016693786032667430947222431537586957841901661800572278923153434917560679993150674142799522872497637319355754109266702497284416410012908498459542571100118623880236874039154642204331146878229153196598120301578957353947316373901147425038478803043323994978226058915015433217742980639068488712593210137962695587470650485334470023100727982619279924492958454369176252250607213582942009252414948971794309776955988011001126323245500468176450583879281689174498753223278151532332917720084233532144518295064020151291447509636882398435662489364370338677484123443184348828885391146247535076874315755389624299708491374197469952929137449817347792076255679431516390521390446710505750612700403006497123076046751942191885763196220314617919243839321265182792713443511387244652008821955146232877512230576988800167337602852912845480072953601944067132874050328042767666522378728242725682464363682815804227382529021224269268664418069805663042227887492798424465858907998455229943005256917691666040487065000168828603521805692295197181533722319894980222066179361273637345995043303948839394409710407794532466325584118403330339388064332982188103054338028807691589717035370768502297997998122519588526895668225387967527689317647553414236304764230607417527830706954026896506948093237244491449757422232636846855347138761872156725565007648506842618790785998492851861220958703922496689168682683545794096151913698545062702165510347873420582910925981653898451661065687613943740400371681094675094965118602166821649013766766482259003211108223060567725905422829787595461481522097325378216718472597389489288665144130363272079938536513297531152287738978914407593623006601991229090015302444365044248299844377334551573647767490763585334149471499296614754945549658135360420183659800241378285899069168019745259469276509500324537081756530249217392565850855282564718073318056464447694238091754549105861977659945155970170485923595061464031198601194413781949376337586470867767280606416104086030755155624333758932698120750498651868245661853090305922666639224086303926175461202185049226658233529816845355993532765175590379154480401013832058809634970962916523747442657534248897991007859783478937425698507385691103521025894023917952924561171091784809733804513337010602293605211488990929894393819508961619282412691072050058771432015155215229368280685228314574975711899239623697217616635869373989721122456016953832435690151610867375763655051361403099069678270321520242352048904572243499566740033819306093939732352981962557924276778844808833365960166721400161448378005810624375446051445656106310630190700606088992041093168847503415816479873921231569460237537430753061043354224649310553049309014885290080599020793393382266064193684968614153753019298287905620023045039297428349517710870738721439805640871334914949491103866116662884423554639239212051837335983890653185874975833086629919632250192172149209950371415677738470759667194565955695815759540093208815396657287234112278999015211417331826924999188694099872633745621644281829287400574853226977575040043534385274443821910354500057078999477459947853116767859261740572235892678928401415117877798658170623845453710788723449321940859646095833476892116464072044489521998453356596385107825937972831954363310973603249605932210015351180041893385664860392295646815956670392536549397043771011690414572904618698010707764397123777286438222224704291306480430098522458671735277972882754673774663343269777651899143645816449964885375879491994377499934685069330897978796873261180098148601586054971807228681155492780799232305975662100691303498027565453072759656005676305843600021719619129825638754021382887845159334676416346140012897218549546097273576936067024666583447129395969973088488159022000262581923597927669615071440778295316788449007002902225459839272809509808113646928170736680261128504237850162250801867150572038121246875042398876350838456673224587712755295638976508178139865320571916398006462283192260460646010462209937933029214470560864099527963261119473143835353091060671312739904039568917808810226962237668783386110414011803255511889623055230061591592934355682426056917717733505890358274774726945242383867539415969739527101974804718569851240017282714074591356157240541842835284397151096326990964420344434645246191493132155522285716433316604582766278117822923444284243365124740474477532072715310907470526912571611623496507153093042455863855698770108817029131394933056459199142226278465242773936562920486270492350271827710347929096276670487921626416224542980555069872137769248991650054372527737632065450711001561912652531006791793737689909638039437700469384392694872824771427349295589060819328508255408172487263303915119521221182495167972352540914603834349703363547102080563239099619981209395311302715178776398785949128623865173690309737653380245784093224682533796111960348151315284407393460180323197840125932174180276702556943156574937819107754536510183582539037904991892565379406586344954440923001090869067560318273441901364457286196149440437082804999809656202977416926062399660715576125451923339600679105197020074498991298022922943427272047180049114608769121034222003391969812949668482674048259429982856779367041514365654439511563719676428230420418294058085215828433861306640868616939934264654449874171238066409956348413294498907784508226874758831511178524856329148725200028232536809371836161044012087168880054400006003685428374936076758035079737758800507932263342773057740419729712877815337902275394479677802257547592956882939654109455802026523981659777857245815631121120747892501859334479668712766896931556530263970045069832637732967717967376543652634506554534065659181969221180706332523265084160940304453493471874783568280467881303545948749210317588417474665826133023748294794174618031555407519027664513381930988982887411374388253601390434342430448479948346503981941573422455112383561853055952596263774150857889377743536043582734091588862334609709713200216869350805401359577809642651641789196905223928711363843766335390161814060149956924006391994747412672670367422575283367282625726400432745724212356792630869531771996013134839407893769759783968196742324142775016157219460050679513665367412258821520558445579526036500956274029485327520647529955259806726725428566650195444216970551855089465669788114736652732591262757280272083756162980401464000072377703283916596571313770987695104321711379838920899199452561717774088879195517153813917896347362372912424733689029278111766001648489541852076112630200739517578785260566397740546674445070216214363729436380720850187055206782413893947922687754791311251345262441940590406315003365268867124149173289126734827341438833466153894574253790511375409266291161207081075218978463725239359458922325503352480776672391450213710813657581657452962641644257250890698648481607510203800403393579913819848638213349235224079586268277516117038121961446311500172252129317457988709929286317093047864316736782763390482813642733245258877004720667323992637912247505420603456178258556593315796383732373536498518095750023680455532830477407822927298457724387295961201836123135823718668079887871795078338129698908638050623190779241940586846916004903304326716640157218395563351233296683894411069442263556551661267026697768124892495668822865560042757454187800337039036681888950414580664516541751821366195656617193551585085887791197590694945163348808829763223672884323885834583034976442680840733529264117074311661976088879654514762442925995021488801979373294145615862317915245432981064463516897804234019480259771749652913822633264265526652686613030251613701533566746308474057958781655094459522982027950279812796561919345327715196929252889793333848879572714360061847047922882286355674609143954252613075196379364058334169081831404264527464306217753767240471649744886853918567820685612298057881236564161347695610232004948267973899115326855309042772725454749304538691964238961745286204438766416855864673875191836052307269446760110194918706934111235250400708421007340657051051457046897644714144929223926216315298819742296233551857500282435424525462825427691649973623923093959694829249294880725882745165799643036427690636951888814518509787461561357627578977060378246439797657207572226869660562750660923692677481985508223620537278489564924166328973503517982360524539841944326137950216205786005296853774336887812595407210970593392623327044417922681070987322314393116197043053450760493006859983801390498684987828788890214399451207056451589822351117726659469487003587062588391792331976112977054918421524223680399113814675568647875320869374275728667296545702895388566495367256611007700631269065551087882997516386492716084243696691049919591125796885172991788774351523746708484072875281758155797750160188402378768876596261125119883406579466419934511096742353618476340598870726923480156757261723807746388099568886122802672120676476280291174653666153951893823117263461646042063678986166765985448912086867212454581142628839607696158139695677839659128820641093730011272693251827804324301219659175549362695255693494452034329279033628897790711705066159349894065827807133565324557409963008527797663200054739804893890434169803722055682040435962310458335453810627792304864278756866013978126967188958195245139352223287187305730063009180724395488541937702309606694748119579344708614494588120767351354376329731830637767216454719043130130468386845292932719668740716161442082251501840654357263244707729622249757869010120322437172216760858386491905723143283354339190394110407089878580229692103708874188968677756751954071299027619964190566477803319438625106283307436846277076115562325560537599796780364163385884521552886328852162143698849417360066068465018149029186019677088584661909313961699052930467857973224899870665922366143019003857997805598320254700866026928164437795406950160038012345155655777820336313027055853868991684044525369654010669686717268058477292868625549129267317928782219670328135237814419460989397994151338499952548901144350418920684049205504693670413797956039788406493663868181323931228363540893437946604525310550439747505902182121370476362402470584448095137499321143904454441812774419951619919107261441270831143039512221251440726211641685578914885047397004686928962439219407537130290793215209142956447956150257054393451069282132412137214877142530925071685668524572026303947925071712709168316769227318606933611028423705529735170966445506010789888359004533554081024288492964632981566501591424142709174744526726738549981751347545027329136116246060065610813110958406235136369894839472931450478877825999459572563998974634103116449071165573657258796561297040158232626431240539884083517117076736350352178656871679246483936044384326845572499549050005531202144587230026289915660590307190191429847004878165648418444438541132220997100354893116630582770081733713642971889536314055451363256334737905574565100773673146504350733605303417900128091891805827628705018047699429099865760615134178619618960358256104331510658909795052354451757834415254296123874760041156191954540953905076466888603503806871484958647379795688245114437771923059448714911498294451947126152803840665216162026483184893342347353480002190835389096931228533799273482335010749686522046287930880884803335042633800256019656551968982582432609302466471195234495186860109308795801817904561957086600895927262406343121523928135322728036759817777836980762997319994831637389721559674803177690931585327119919788609320698455802204733104218262862761412529732485267451707366156683695271257597635378984308006569607000181399076296829246699108193937748805127596123206682483603123223776520840825031493162183021269239623008638954015795493042816715682826806953461927538448659274000094398442466458807297416989710226363878696485159011176004266823556125267714772454012359003394433293989686809677279214426797350341109172578743315498721851291363103758625728057346624894022429711989146944408940927249106203565251141123981049399065924326651921458506742497747305689946142127763684233198001713212047937389524149934767134197080769343955946282361146415680948125972845039598199886467527565970677046983686890206843539020048934570172126577838822685022953671151272817858313876265867738515789924648544351148843226688006578457488341737165300107828574293697512711601188656306190590719701693730238902643835940577822127288731142817522215533382557735058233009537202129085479773937486132503490008966887494309098068035016165219470747704192910101082687965153458783484416758744725550912270133094358115448580401022971474910640267443512958942271485830935375097953955900849542386516957385544533907993855460234185036593759682734978957489300657852359468156378884499969193240108172599533359012157292559359495090574940325349178965114879466473123003607113474572436785281597535315481697640056629411116783225610879677130417119094669282949806685674314702630839168529474146267131649128679480085477460382692421087651557772748257812618396934807303429553218033289862496204983278026372450599909621197352930312466427098703134578475698814442421817706709297763821055978852559382942350743690404931648734862492332105452226447217077370401467042234637903822932516894089856609779509541398134376343971532767447962802574809319584407081433469259558838492522232004773452240501335855881366634925190180316018817192845372879846533769035583913250370422569531612970927833058393640488045453743301561945810410560378859440913673979877082162855580858828298812026543243155776365324190734483567171014402620241617816086381523054394560323906783870346382852763345576604384211760503446554206182218864820851990974098149923570861876685535705124129721906539589375976899718319928925608359331328516769732510230098126440310631055501133084444278968105702306258438222032231786143460999072151918311235436877078198092406263115227172185907647586510446446392578814931097706307313480566347781163844166191209019610711488699441039601220591051858165285970055604886306134566272159539683879984998806928413951659803987764117593198331600458931158903956817684265949213659810776014091072246728961030229226142195583936389521346813154575978700061256878771105459002147159489364542848390264546450965292160657735769455559370356817870549243110894119330817477323295027845506167806097857101750903953338924921679762341268453535338211284298940256466662214566586033017085290951538896107541292868078054617173913700168881983827718370505962302112403753039038546291871753454777593840960938881604575015545141872705069469426376957046460234531301852752998029630030816141492663618244124109983295803912111642996327781095770824760649710150965256507695872894098031359424041342341375420127252769380057134394077539502069553395067970036946418577226226019280356546222554310650923759018474925789822777206447211125554735937922240979911167256020974970442461658065710221095912645340700732086379181957930402766664869708372186584207779463695162758064060858176438990441244514331659372460758541017817147364602815030067189936840231208401951587335208206670698214992740712397939154881619984526353891429821695565425721686661476825894506810420232956671536957272918088833160804391890313054197221821191321769543900948927930942018572907985359786204012797050400928936839122603106671777197463763255179394065414847451098610641394964244116445650392440371147740884228361413222447653372405653518727301952912961077327716455162333956821339338147617661626050894939387343307669781717524489234576699731604561752585497394644790541984500503414595214368691534766026442478128152004482329668067870657236538099183962426608031023186540389833901887204148524602924563028539746691238919351374863940938929482142688691931755225178114616419246043363543973624570652983745193943690635426982241078245315809904525982946211918650137933713893119791680188428130996747582526525315170878840373466208060441819819779405871376007889314102198762788834772161935633986426729343809841884538578588539719393023311670523068002255928255555792501479002136914188141733606765128210829597959697073115431525132082868495547885477351841541038340552940840782591596770744661468198188925852332707875821739009989724511131155344393173588859485516727837045260934855091660167058574971977907237237306893611730013034041948754896397291109722939836263185614165430968792027977990169971434599313922684979985237595070909571543189865794279276698251565110797211128507920270496806139332906100335727960658278015092646577839544167568578564772792401023088417880040861020557387609671441629466733867252791421217534132591432938189188018169781268127303975423377405236625033477526097324574674402218783351548499192219537623316515880788620031475033814517189744245241376886769119039940118969107922254916785284645891278892651174399884026523728119543490445646421121103547470238422378334104370552778661460670932539239226969585217131339739983592221576394349646277425991632486010113628795153835848824340829852382989886354066774660143910902560683613593032167140432908299056784525527899005470605692261104141833536736170182068224361375684312186727375391022928017357143644585103608948700331069698325810274430040148528334722530609346191118029493302392473150887849328035032487413234819373932644279709170606213262580956741285256258874217567172309402564268040872077269731245265187105435839480490607871564556981520735394067068909128186910492157016259824444733706575046023754602617930638920974552759230813275511937211794901459699325949896752442999108508839112413597435690030433129024760257749451433164008211507970210271199323407027005480897749960653492157268984339417613628364182093638243227692732418822401454657036111813266425419875993699881196864154091783181128292127573110122741072711756863702575201744188405098573971452724058269644693755997844623221862124006376005189773646580566740960641128638388823628064810018226405491861532968826257916211281282736266445544859816944543479363096486205173722387877900148868340240971267561717867099526275994847166075408413475449016911081782526324895345410583500221270380254788842234248832320038717195528817997504712267691128455408790883634831253226406284971305482620954220801553951366986408291060552727462285451649762366539087985103352887180694498335378609703418770450752174274777506441479906072977708709211005783136728410650639047645591739206859844738110632901296495144414508667394667741685174044434133308021785568723055734466160011666283848077126148595884593278568090560988863698567297596553037480214112519810393644766948983657269502411084326151307673714707230669960852369689757484044348944527044824686545269439544071792925174838878804175429644359287642554893472321260725741839839206677727895177951330004294467224006406270996221818905549111036519550943364339247033205429434091567570614815185935514501217281177168284225456469962884403062875838716511946817604858350494586427457424215903032232086085948022909385025314421053387148197238429313924787293112527739826633212602388861433770444087346302305973593096043692762180841631957866949130542630579370719432843707379799475900841915960832645718432566708990245335194446328009097631526686821501036543565493142230425311093960043579584760624306489891850641695172043975269825376447905670861297916269789539026485157511164652621701478651510975104429122865911736505707916099037944799545413634807474609086494955439183697376914290536560637977974053648212083194077099206823977322414604559212790978190459085880499165416338451955075197374010532495721822798901026978701507205638850327203763543315182710882105429369458513102553794556000129233570486002410426596519399680412557300747290658196819411341556362189077893943396217808255724459488953177709449228152443063935455969564066179656891351655557714007814754993999463106127414074739034827614985940788461464115738017321572688342608407221547111969415171806042948278359667551343857191994821410764653493602332352802767735532558148182141366679119020483404041404705786261852749757964558895693919065365036494585928830270443738875042868726782749613401572528803111024777839461428138018345991549942708939359394821351715898721777583762338755356303420756926350358512075278090568606852512379381011745205577282626977106801027820587478594832483916338079616369455361445243166946922204094600346443519215726249470100952487885519881948192388476641654630070421190350276683630092623495235681971678120388711946269681085647477767803504170734199625648875001303156326132226706208074224350894566684402976509380858325091409892129545177385337507097990047383987974736926159837622869045822472647355931450748689657255637017233177672949942379947638114338669983256859334038629728249828790804169411781006208070094899604752846056034160020159652303183096447646939322019686569324753458866707076513053599765852237084394089165108759483849762846896903193540239971934118463785255915490704109828351960290324370738702491924961008045730930953863840679367198362844224060013068186421794330940168573598053672171948310288960226851458742598085962074732043703569608179040453885887750671684504872573266317411529555780214284350874887015543791542751871631792796379719694995574900921669792834021180460072750342095833152261099929569194345956680214556565899544789338235926054503032145996097538895511380038781726854890793478719640192811632950909907444150168178239349558957094535811966005420603176247057482496738268814041300134589372857880576438921038232313988482956256856238291227095769229479176587511285683212623864432465465927975636483737769706112621297471811776788936295049076479491959695189098392984696545202637834735364716674680883663167250632532858497338132720487093572763991140224464829117202429379911945256522048806878848726380512896228347359244909390479813765269412615943005641275059362985079978515140253405685624217391583584265925364638867197602820358659117024185607242855412326892048267030667189056459554114567670830939735993674840140010738663177231040189811575203487152165057129684786099870853627032033209277009073893758340262169777529475816641314143296101819242413243585208438391839982134804293537137684841922010983431209126010227296732006310370589595712325337447826012903201376621923611175676380463870651302875926422441960157221316465121305965011681593389248143050849338303080732457094878961182830353511699214641013393277648173842715957343435444355710958095554605367961483560273998028765356886052131222022185158939807624437510250542602143630568995161161417934503677139096467065367395874303038741237691569048633661566807238302044576630869445962801799657879892967358156080961245642492591197162909330342669371357431494991528128099527980874448986565075212649762608549804743673600914790567631835464795999334479947010314168263825677148101237391756026902065223832780360960090906215965521181236048802695607545549186391735417950497411115628820020902084735848996557935779709020623800564112813811831959213344605849784714272269796749200293041144673874540208647765622221802865862132292698020489496223828098843367112667362243604368143589286796924966472815972526111035085295552624680559287374595640310039796253420020863478421988130239574795613531630766334085594468897049559428752568966578693163741488366740962897497808378583954460215046682688935426434661688504422316586258489619343939242203007766408967381263378710205586044543899637400646640248601054178223924656493964518942597162331997757409249168515351085398298162407119310425130271252918887317852680571358210883258302630713554461980994754256700911358014699678915392758331773850269870373198048099736257712946182419094691292253059305585583830009394080205408791225872918787042806630965577791432477526757910946141286559095237814650855025660644174590478700232977910625600543121508480610341464004970244167417837200415669300946907742163033852248678076683521452857167778376959336029574386220329985559821624638960542569666607713578772482327693078438545785820596421509772611695837349762870760572240377760975843201361168700395460678495683360409361603778033165673925722380946214628006439918761033542842081923181373513516385239366717171116085995826282464597529937438575651662473871899983343200017475577362270719264668314146545505710149275292054419352131479839659838507800495727810023691914455767155567221104199953391176755808131225847113761781083641335762137214082254466037632989810774066504116038871727742748333189126638451864498223293342102704761198416894864589888953408826130297926781146155798883424316364695232631161829349519142612436587646678622593976444542275386726884241629494973770347169282409489027448347061764769329432721169750276153113368307627303562480152143367087757839261500859425767981178060337318742927944838370494101987911460606137249820209849496785832904825639670865391436060674422069619343497477424897888948148954201196880069190253094688673815727931736772173074600144946675165372031827347296079967667115196117462321119970914402440903334886597089114084608563755646505459530392161780975887076684660562631787670647819894858096479651696730453778234084854396959900013818095369938023103322480041616623981623300188814869258367366150345044789406270776513810814431966288007137396316656186748475190029696797378511993014109505812196009735751549148669298769047536681682513986486082791560564836665759382544938620896679035548018048197631604133963365218903560098954585263254136693910336343883736034845904317012920867055440904591375080464455628872980325944324051621316121896444447571469642941542492544323488589040633084671097814751224917736477450694316291653730840922121965232343098237834985788607864794760521496183397479894941784647265482403921955423941397118616375810918136425876409733316604988722962609282278805276471409167249490408641474959484475756317094453273951365932865504925293350654164083468767632094079044886380921804368954216178758102483941514167254291066820273292931040705410079262357958345614647704383417475211313173569319759433956177151039320161455363326843391024494426415407459889769237706712816874518176195434872027902222402651803048819666337609635251766153332494030147217716749485946358738756062635510702462719079065247720649075232623160936753653986660061706532719928763546963654817038188986652343666474589510231613357141646711354307620606322575435779261031620689647836389953161515218284885235428061443959338913877699383659024777868529652020016613970388205232789449312520196983582736638199259571075969996957027667031585442151240816764890014000676813012816450174808625214941365701699238074248289597677320654378895810139885904738921698065175522026834403812641001988718005085492844659678080621122884441643032114355551588870397556688686434741753821369763213164584660552632112404717027141004970605765444266160812179298952348326420709977977461371245974292141377311337512492214694237487843152263257695352421850916972768933079185422356557544885783848988178015956562194966455790795879661066525874141187075018146810882628302205317119851271934437876749240923766647208261699430479050005196538546895331544116528275898479383379263380010918453530271702744279241623901116666285711005279080554364903035829258859013160784283236897880327950357023682508211435782387991996705849914253768987134820725184107267537470699465966184208437238576002477325251377048820603511587613370011068868739725305863954116604947690149396865438069957482795857197146685368997290968104980807496016283785542472253661072590734861974243898720337940515551649249256237835901812036077918430799037237300713971399485710091731924806435078355887142579338488529338417846715591781184015610020097771728743761960591867288029834651312631925885235925079464730693847817898182942560168389005730430367885668516339733051640062003613729979261150682568735387756930483785790451707546339464437810698017712429205344240707388439084914611236935419083987541376020297242201293248424490617118753962689376208198566496284303937370206028782169809366040097791833116690759130775527369593088390222685187836823871536842332180600612745405343780919009455652155703594810339098724084732453673493117855003351174321859534170435624265050958829151733863825469639775622636431143288423600972013487969484890163478275041811760500436878909667516538469356878808797938561012448169122868056633498187082866673481365977184278396047794044103730831330144208476678844224846762689502429847295140738824168598389145289382775180634428065105973658787585946353002406471858680595371117760517785840784238759491598595274125705945597101879016659124792117384097686590358368832925359527928838868338834206000881347241503247534910238579498704591654199652436076127160411500120200135919698787419667599550311624027376206032385793324572950832293189588772034939838627297602499827646883402927049998694165215881946928428868079167074321068301794600963362481500421164064418991064101271702957763933384306933600109639328414509649623106426809427998355581680670896297423914933809047866989413479648062128633038313817974785370647251921296430919194557430532313079535638636895093309184840831445337215024265022946215838793403355786327478329623911727818969833339768762581632401569789401040950302098570529824000753997846465824167684943464356085001435347350528799322540087916337012034188986592024592928927630027355331803073525193041898444721424506548487230778849921616345959158933547895947084815951383121914097427725830201254568225537821328143018722184862048438733176999072396432764782002208505630436470110651123848633130692905246139170393167814998606222845111237949282907083494025581853455055904025222449937723005344060142025137571876437220888315781310794976674243851022780100374864873372972813548554046357484499650885801583840672900897937250681802360390574084506454534084848314772105615447270923053138391463957282247848825904019753074919438624128146780834188749290462674800914295283624684290929892160800913929567808409798592125619513403759689820403619908941437047337356258110522431074511524468141679245373370392788022553409052449839178408223605319019321961827546278230358552681949414358397921355096928161079247410273258171050303089421467387600270627473903763198978093160327783908695893438075477153230946285083852938225724150157131150832096203214205556773343920191090140315666601083030824799948497259733258784741814014969958433928087479937518320010262141416686243062833169725763140189272642096292354520502870476911779688489536910300632014285881104658814172484773990625562984452880844326298297175732509220466352241815043070193648169832682141551628660938015689408081399601361123362845559763324276325887454205151771334992650161699733063520588239602565010389988721503908581980010319636168629769592475603562246730965084908532423517344467015737384319859691030174769639774297987319276898733911240879292021661214360694009719456879025990601005650172124256658519348000094939939696038956303390145737611051277885402952964350085616798347436898950155296132901919440142395542684056322501987159083854191301120792351990709417686309599300730241050819617970003812356364928427751453404719071450595105209211852613224122487999783585171897413703927694269887323986942667701598192397369835004778811754041240182618246543394720712249650737760678595107653441315823710417295043207291642767226993033994616166629984169956163174624041374860107329808698620041015184182558145243352628694687801957556504018006022027079275131233943446278789064975034038784927606688209799756594503521449667930164463388458639559325432958647093734416064585140057377972419008782776834856571377262668948154612151821031399514651673001485354228375438548312534556777924539820480911146351242872331121155575651177856516209970218392479790279702621115511070713719367486738444757564929447176110771267554211731201946627279097346326307244890747548176457195841967415222845396068654273431743841796769213877360922524597690336863907058569364838735678999473435768576688529438124248618550914221780516282724922876405812844333234068182218605990439582598598878070808512112371455760451848076864698234348363935838541865112404102609789155232102839450227550547766044609491278615684491839941461773903917921387687035313022472845609568135367410804997248847466306015227232186921328471013747862195502088977594463391847284247287762384610085411519146388620990658880528453483468115279636506225618316620100053088273364035862048056545457392502732627117271007637246716312898604422387800766624085126974735752686163980225076331617996655677313194851584036839801290232404670062720865474584976798099221381883525094672244602612162010934646524834813576411524854690971696087212326870491388168710861313133312438729666307748733575976365266803684723456659950757174201420861955247879770353982520914536012078139360976109333996975128743375724372895355289063342059717928826577844304353386597199963439618021160728046953565245526058263458993732463301010560239175941968553187114097935634668588270686729012885374741916383350226894672525548350812975523875125893571793797553625829641711256920288068184963187505813685145240682039004128626275160864654266388374572737406536226890999321414741384475667560604062406199263017869900192991579562052945398243542021635235546699129162109604493560465232315505789511051527890692959308496002448406762826746320672499524274853749821284891843051149566271327910970596131282701656965307502653003707932695087902096025565930775974605197251111751723854501564601660303455617610490815618003473059036180047915202470617733192709932312310252832790292751936442794052704518580175121707233893576511877550943667169625425637013702479575973934012917800663717732748361236208443745207094293941897990480994911068281109272591722881875963638143201820560624342144599565959607143296782747613043998254036524593566147034178062066763963024235516818210435999322191247068500436696593419026314258821954016054339928777493020148215036340872650255300315067912916435391673590540622611592501930513126411065742850500592091860909659408311883225126941375661796379964960952188476307452679840490216532037961534926504771142206830250363132629943578090317674646661347974456922492713244311756162227350296152216135947770546423833277808075206237812889361176668187351389509048854556335091541962940888462506577910709193518331485298314234345461723553304042095885823538802403005432418590595096159376371654587697722590485158640366502549265318033472721693400023851831236819783917247461957220293908959854410463260627050082560277990198211562711588000779852787306051870463056243613122294381855302295751793116439813670649811153918737358065283252123137722347292613856082444207570040817606390417651333521511043461159345617794494456322568594813729240932066764535368434406928391914948658719353467361006036351055278476226032551422921019898589448972204976302985807735691333761164704866628269841635276156640814501409140384441201987333056144148789140388474018745968833236135946010003398465736505899792624283588174655049352522443071532411450617579337905610846586787981192605686473514265400113038151367721399794813019376713925808112234458755507111344567957221429398297911054902775462548141161823946062142766924434097741457807858415568441680492059574066931783753961277617636447936537032806901813320947410190805305751156873000779846118590953372405526398053035204992123606589986483999055931501069155072341500709020736253806502766306147951338404256209825054408104603427366098669278614976873309821652849071071006969054189576050089720030985531705994913475210193540915790271122649409911636665413485963901702077591719908846961636589873652861066456425812138925509896740714349974143540494798613838797324742452408855981827847415179778922262679462490316603683021291473126576256843097313317134128854966268344620048760749390115247877627639656142840847170826669777267862174194908838314359040035436568122138199391690395452751410617802810689427657091153530153204800554964863641475008147476978092844420215022729597258888249954019030341396278758629377072552756556970116930180469027581853962317163334698549003081438134141169384386244035314738553783004709947489057295918194191867866445012233006253694436527848627993491154803354859573920702684061477553264495472161735026823158065702280699226193974600481520769675071662933266433300173559541073153089624338235713949108631044821632571402053493589802809929961338827591154667817487707236949951557824177342402316111987657715479375375918660845195707889696536711077470001736820119272604750917799169695420532292463769274596276481281176027021048868156987741634756480775669779523425872599305496421591468007310076524386378649685347711064323058352509696989172552753542588569289554360648706362073064282267246217309064328531017810708793001179414244142657500655799451510847142498339409927528951519149979041929833642236466957380464511808272146507088255723439410009230736401672898714028656749631426431378400130531690866984737619591030211229421884633074456123451974175597154107136469999691922856493418252359686809485352018960004667727580820498720175144023967651343424750760032216156519885813810068434391833617002830120096002586479944794722138907071771606852762946618933414381200518947040949196905403956005651511040199680167668416158253136521371382583441570215002263515037953932234346680374174115810456444248388665704627820487100979716622142590323454021644333378675952031162181800923711230171365932764428394973467247212489393217604425780064650869723197828002375073444256999257358683208328751028593533505801949375572744544112657133029877144545440787045297710231250498362369431827260195473556221458770416060530807813957273392187295316407953393482809214520073365762116833161535325932232944129646355016605699204237982589953744380395641015922264792482303240189687203249748688166186124725414924732323961414493407401480075115492867936612122677328831914281390668520995315824043304343778851731671952320545220294513483542192507019347645843746052952647698002951730706070320262775420574036597675858674971505444013604974461051269353822860823913251994508833509482792802823801152908439212182009978724580827692577335987175944188857683953589449806825643032204171961708976222183882214652402693788036587584932731641879723166052493695586512746458659458183489083766658750623571062583383140415949709419351095019055378147718206815000702745451190409785923058188303279308415902436722805569288046000303102060371625913913876690156308569551779452897597091467522476355996560860764200973340094591315107494790491256399089728540560875295984212978097394849612865018843741001235548984796594832385316061610968496529111176920313886103583659401863411737245100451783021430828719498443628950393125789925926317501693655610501939627925391788511767327010645520898357943318925860258958555636904528051023375279686697299084922363536560002669770730869056122635042177576536138163899179055634371796601261899062077038432591132072350071384300151446090097509092544214355024026226540268112997448433780137160786509387436052258107279741001111288199676792248621926330930848455868660237870392584598976841039177418645220602216661965494599631480421830008820488995640298859418713511881930273023917535416544350398603189782103491752085524733958762104419047007889865338004811647423616783914044090836299326413237291092879982068421444351114531107551172637398511903769586976800740221268159168619959195616296971069871350394380216185915698605677086901240980407018966479624848843329240166217566218710851109997671314759273829027165188439039061552460308687421651807916122869539475118826922041988067928270510095703217612434799176385217319523314618376730948060984757624391760719464878693074703675213979669234200769127558378414499613689209925977816403008569293206747347929675271986994359990364172599509104909592979291086631890715209112910335880829748210202109986770960024431886843494865500112229919126488726862154575714847868820182648326313817900207822744826682836688623646978297513342926207332571455119789356081625874054026310325932572285963055142076702046604358681129043602995964690320041013599284775176857087992783753480573606795067035217212002781492248884653158813571114206841059576885495217601462813033885934878634852340184729808860097163189162413675762827044561514602200887758817101924316324901411297755012163682778391278368790785900963274440007952045147944684707461489355514250148923754980254519070784664294805014199149270587366721950770626640483551798831965081602713306449093952964392666491708523195247676522796413173239422358643288638378588780263720758750008535247752607802594917645675878427649999775691882483016163897639022834050051433271848502998282112588370786004101975920719845157038434285052829400965809991239239602125641613316355303086629014658444086558787431473797999558350714075678941682145663293549021599953199080594996459338630909686729728502183948364767466112406938680635336155442216866317644056210503332619058478660771841205151764258429592867992825679344196243550329851070369002419222913640141090590104247320808155905526530723458186257560918126791036265174458651353328301442692582952952417958504665259800516320312319954682380885787584389047892444723928126500504140146263181918530485075602206056668501988112242895943031879224340923593879053938751681151727105524759882073105255600815996283594664488731728250330156118605768979749286519202620699472746392667959865814448118793603683007467791119577157419726896802970322397258469190366286159536128162497759062072518595988266038416892472955983513744091226844167707068741694915148176842258385250345158598328481965030610279182558512693835645916697045607248285854095394797915637303108352436854994391271067311694833417688243406373846949637710474030636416665476567113334281543856481911127351113074333980188120541327372302512641452654399895256678558348490684032174708208975477905437751618045178721952224403403736920172652550147947823917219166074723061294528067515867087204742118671114564340048870524139774692904354051616175429676965757098474355276766974684570681820083742480841771335888165024810783115016088416505003957749309715994048497870398529137198357120804664596815241661598095331361066411877602964802299631442584630070205908145385529890250851564914441831861419522679092114856863894847578593804562340605212443391905380095957245002320491564768140159009835185592502569124875146838742010455907608262661912258860296414731051625104091636186186224220708296444580211205903894373246145770353355741290973514730818998465920108945170472543208581194321934889976529344944698688621146030684620596917692140074060664730673870663242478618857503615241886380527203004832120715477287438362044264488180728485299709698016049484831971720705585762873929456897186871086920682405002742993930242703898296716483471374924448568065837273826484235565318135813128768600297496932731940021238823247663614397977647446243551653869847832179784745422844853998030589200002997192873895813734811004649528903745818752788577409423493184476173403326686779718836098304707785621651731425376719674743479339212223082241896740447758729600032134333144282145714159456980428924623313674582960766037371251771299537824003882845587468404728691163174560313845843534908534053769688863646556820067113959816173104522746141695096025940110061874270647332897697594003655438274351269888650840427161694602496704880161174519887503898380773079478888987148247039318099204842291789350483157835451263953346228706030245727693131744078279894627947308201553741227378689847511131477938144282455045475047141734839579712412820543379123100038480193771843849627146949841053099135799543414714121679033329743291591466966411180741870470946396333782006600993657673823391474316469067107463727330366682825969053676658286005525625908849146613969733167173178077480448231471337250441242312504370672388074140734917594371511152773995489664432871209151732262645646901191934350721720320096867562936665652323194425089694673725964872558578960607500900762459272874810973544267239030074920590635703100318580968197024920397430603114238042455665148317956546352701217116431533458303648384547855919328482623656553852163741380220640934834328946709570607343737790632902549188520052207541141158300241429484746172807014180941590981186797526208743563576791236437717831267358177406070880331186445890518080609359246203971899423700267403158803532694090228181138875800219077607223173786160419332588905284377114730947484158847476986308498817285716996183110307338445595698770051433212334243121381675378071634590983326673847272955907521083936424493761388732328891818357847130119713907884712607521033827723935669424361468701382710996173297335187729903176113022028163952323577565140608925925349040823327200394295527157652860111746356806925217225385615408540502983584868868461416211198319168679715058714371779178758015885908049505478492620878592901758767562885228155609819811366043179280629911978400840134406076367711324253986823632143213501769300863800143005004156670710027094190044523585670664635997144507869830157986307854688301379906439859832660280466835031643379228205602739897448469839566806316029207813887211442478729423613191619229561513111528589410664351453095910408765540588477106789559325395433458023107633667869852258790650306009664289089002285336822551917683629538149485391992303130182842399705330363334115042225943129228909287514363684941165689573086994243536514950675796189495831957800787236745784761582987901820475786791284631231924690497208595290784794092198022178938602350594354469914963964789933039637836360867901301889336494901866164187290579507182603577003911114124465794202162609822551696721917723418135048102484714761613214482016733312522014559205253393630044495693127181431609371876630171373569376184495607969033354460582724877101508524831134265035684074148595438425193146437136323370456837649996601086511190124597505641207858943392670514071772267987445514859254459291903385856755713567774759152720356088331784706586951611487383242007582594516278396792893447253920724968187009336480753075016634258234702912499755606740373410636831199294897509935483980108642120471736551430655127486506238940559121046026500229834055238227543954408834541422080769715353870269450253414237262237459306576255133814599896253851715395988703128435803121715522648378389513493712073892795644105456885360693203397564722799610746947388984847815718569181420881749309058983020530693978399050321298601997934212044436737853192232090110494798805383621287537188192986995064189862729379161682159270478309098761963390053300928711773046685808130595920111138244603064979947381135172056596430399069357045766651801771008486216538105305116775093540701249697602647998970143888326062851256979691700512110260105966247710586353411947451776562756069534010623998841018695124467971797879480224764383103493351897684907233331770314780432985670108911851540818981488568669137010469418041578926356528699914463826151245373206717490869128918525065961627132462476853795734815731681886974956873300177969504897834780292534688975479843565576211497200518646272569459503732255094019064121972414218260332317726490842993186785056538515398202975877752914796793166239061409055049882363125514887608979645713962129077508452179403387524204845146670727088635863493529212302317940684077377690579735060955404161144009589140902193110011248327558082355129116486828717173716051823835100165573745830479113628292361564608189109873006931928150307681879087989932055336715528295552435200385869655255779549293213479565486944206919309533722917433004990932158978370321045658844609112241501865615575397060507089157117422528658821253061298471948430215901491873875524702532591423298033442011938671133705185317770581754820042339249578135862014038442124351146103522727418701818875609834876790981411099923799577488539586221669112505657042678718947413400826381171818759010618082753393328323806976407193073626399217797475629789429957785869790408054018640154423762623687999926648666381502459752041258678077998754127021433714842346590295735236593438897008923894485443602468471920913822639797089049368619378753333132059258354941432435889711503335148069346346402430649095504640141508594382854875957190390773262435542377970783119415017976416328867052800741449157978252985858534898855576653200343431357977703579789813822926776230837612010333473322333486235751540691297310335252202111138376088796009903807018642898248005985978334152182056427394689920974611994406132811026424325496501761748861654018710094134779629919317725855685334144289337986546608968716283029868868990937371452193469883240113484653395447262697167425050838753245267315736178200961518921463867932313052217192313467865659739278218998197126272075633605078534683399203095651859731213496645811016123102983994537829747417578202583760383288689957770620352280882951479915288468013138381456065935983180209146992647211237709743236686960953636455294054574150694613831546596209372051424299897946117333926860208486724586987444166000936618715644011656616607457427897333540861372402383487393754497841492503253645392355744477687727434725599103225832826141790979299718075735344000929560822191014474864092397720394373050851666180555119236611309902910058334089691560962460105490871257980882689132166330835496536713532178609745136771599974050059571345909499436508208553653403765670041894364768711797459632804245657932363206800142045131628494268852908215366202187065578088772753382269435530725164706798339617306218325989198701615569822721136462092833566704892826285111984238777235635436143618069808705689906256961977780833404402079226762729952643532684583937870038940589276620612612308283359865759906514878762605295301696047444833726960968749498267081472588987890575976658402885817229907252498910369145000386564122529325097390726162049604061248514470059050627636201774110332982707947639659006036880894174714363863569931546719932887962242299877585124439531273168135520888115308582148709096305778198085649943181797128341987145214091044934617150894272007676967832943513560326379655918899430687507954216547460194903346125940477217087310529478088037766622756278738790036937145629192097537128098557304828746061386768326551874425313897067239913907901345227432381208370563823020761993113948962701960802704035972166604642767522083760747221496416895425001757513430371259785721037467460233520370970016776618742784616689290363486779668897222211459962299352242863906348466955306034685817714607681031139978552149555583447718808252285467123548568075675915720638041753580297996812506021540768554115511788711106088254507581249271670226167471756015216319251994114001381733284184484870351273367370538826108107580495048407128808770082373408348624046232834308374223853851815010943469784766880409365984988542383225482238301542148257451929721182974846085632571311007258707349939957377889776129191560245122797972577282378698077219087931854950549911646267910412764932452227951934606444129560884562778556482009282111952156885261496809399925132009942805562762007598495690072334726964215673432669215517464088006528687391098293340563690980557362918655989786568926085291371316336007634303453828631810902581869725458436350989810335553149209487784405146311131778003424042915518011588993497794799833013158190220219211632466875585252444563112991085447537410040400723786483040118459679067080738219369690424952101365243287837286118301557294982983649990681109128238724925930804763896336143798601284902487959479365162416367551061949928478633451803869879675750373247901362822656754937515034780106789289542182333153250762779848371211125462304962337463880655832651405980046644902466508769669760676117362170706660188203615516625437085275229913557700404991903691953894132100971980223311712443025324932561409891172576908990990306341494703006941068285310444037116852709150504412933058943372420568578257781394858594007542673383971613818049172088439171581625830530293930864071141021125697284525427485647020491041754415102859048270195435246206837143184259001406625981054685347228781990417719052175952462670809112042329281311786141214547753930918409032939205109482323826092396073262965423929681880089970624036016133519374909016291390936117157245473568190035284854639192094821384585780713932028565051683989780591687250045702348906978926250512641466696590214737731036240285793555949022603535271431084020293679833967140872166520190318982743453153818175162900141046117433887290694576635142297235039032190625506351641651327219955399000722205655248910862122860786352313819562975779779410364331613429346352710035930590179438107401776047350440317188853061777541620624029509171041883449415429561637264098874293285117424696785295734878210838358802898612504376292327822243474144509124981283685573248468812881144818601410290404696440573309029227166227385858548422061359414053440188777614436960659827795486080303362364710256491817795056343759651173298602671018687006501558691946013070077921347288830898312214735587120904937465123320687663279251384564734740334275200940748461976074874152942025231975809107451004439920654561425696452266869803050948416812881734034561999314354863488219638123138579743569925660206017492579829576832679673919809692168779431018759322279829933660057818421508832313080149504216723570716274574321620110116125808733288889220154688184626347199444586563106079938130785787985100003789242583172174844379841457270142551451272558088063225735636894006559021553467505602347266583040630635876411418016688132751251707232913275369794795278182789562153011406908226099068739375783423916388275039798580561702577081300700787664589381980523894925831729987598257600656177045339999512494914036159495916631949737852792974079388508868197169943694151464041037537709911343514405348698813526585406271639884143205715981957533535615467710720178999476066801158480898710600613239217302771994139741099228680104395740528098992812450507004992139606956863731922719546901656542901150152730216578165545306489530990553274091143847133248226371377191920517603582424794101293691729446547074951811976759966158909605368166594127169754476284020608159102212494517852447732724235474128898901559117012553360264822048719521243958904888208812686096803254769674949503891028390511203706722055975900548255044861315799396029626359660232023640031548739150176256023405248385569378870470942438251704367149145034591031044727812773503183707212826636289214691258627917401524967026367142615629954559897246865123469142922122957390408444477835757298353485014789009751255772687526533815654875299687963256965282485640058635965024179748935194365939309972592837311700934288121741961832745021698959250494202715516822398777735997627363734886668107183791710713711006805079782946150764243233403224484884262468538778996559832514220762006799259549746886377020135823475842615204728194417952813080562952928347387522109553258087686664907232398578997753867893687092601618492674598618263691991539458589061849386247456543370361254724792873045472538271901090596188014783977477212712430285802279703836658449459578818523954011474545505961852133785156494193874573473635700857799561268477634216674559712699284014041676304009162812313503210027403329908423512387461809961168156508993324882690646536491231292597836253388483463234241070062597949281414474223761877886169688946444543507841475564065358855816388725261334629128942390347951793368657923815387844274003071003644380728423983370180378095101766173566944133877999225320409520184486973529632968556542790521783093323333597146553460732963027016502521096988804261012233046432211507209558750728257269810984562727537855243376184957420278053841972745469174398640515493839093277022977978308148048505437040755844032819395696813113003607306886005919778445646191707963606254481531042800213715102132613798186646074282537241358439607968081845552850481182222556511318602867912582070049130041862449391832108245276359578866099491796382083716646563775022987504302737480037443972357363239929441338543335119191007480501429763782168715950616999414421896682004224350658162497721972716584556448522033856412888210161659193921907552485278108020224874605942730444929964356713230970062646453682822506085761446498540935784745293309680191920182799315443622935275138874752262794982105039902745649206833596659158508093768335190674388722389019367071730946757367699659433480760156957589959585942266719982635351883267950782752037545795400755444299171254488992402596819060786419490111535926350869797228453135515692023424449306887090976257112924629587760698900864713265658998555219276029669889331940611329088465926334966098389336565261268132711148113933755230086923521388108336565532989015554397774356684381900838373921551462523318159038178656264847056557202865127043890694239918736711923414632700753105401498052575149133994006727299437470153644384541951919050301326872787468278465720540136177383065151623510768712267712020738928429987946574252635913543456498859636236998933280318642547209381314078277699652215534990414418257448851121763122426715392477653040724418229041929093264292584545769001137583498439158737909484656732070624578705367108780855383518187510041826710415259347571563088955321658968734184661415148330001674596261723714374341656734924797485117291234582961849499713232048634068850047666871838147740364094999237327123513871052926512423233448233905259250696645951315340675620909583966891475132464641215848346928836473141232228261436999172043917792006828160984287183428238994279131887720948421570574019026789510183170067572809052526918061695301452059775009072934834379002555468346759956796958884987984366794654755833847350764343354812541275833227246276325435770690638423426831650494678719001043084669914029320680308584643669068219386743451882871949969947437517451682326511532695659776868657759543758616590030868697266555681085169213509732011101710653510585988670977908345305197044703120171304345217925385971268740200123758343428472755539903100593446204141009322870421612993974833393062211233354346153062120901727894512140419410950666997985263760692913918448432118246922085813296446759173211861067068756089928175321509938538266656499741363786119569588982513703343968064365972178125601320955271502505371999694676485821290527670408313404314518309941767147402819640108509670265498301172367710133639364855408684092866107472744647264193667682242546285147114329517328663534935972137204620944041226358673020948475778747084941909578514269713141039828870520442641546242649437535517168871666211755014791781836059291195346743030788425027532399618509401629176004756073755788075277608114607966689630406998626328800331410209138696438071017041958567310903835518996946279910485794825969008520388616343466887694735494160612331809896036145697901847370578457208261939477104469863342482888888961407824372785127776978876781885248819995529763952938923637963092587497530484110210496599662708131165096319255907019620398173177493172123019767792397419132985885446861505297081060783746596986921446260943534075460497807058643746063575298110197381270824359720995835432709551713004609021972861924464803233277009745505561527506447087025491589193759683667810993090527731825927203889427612129222703606568747855424263517941563740181334395355487127719999916013135652845302864321552833506404715067540793868633376434847606161217622227933376814658308693073114793676774566859431297371349273846543218140351010555392903002708756433434130481734734484817151222810825385596364956923796475485797513860396027151062950105242122499160253116312714859046112514338600958383883780178917042166494954677731727307768115186366592243287880084246175214177341311766534329407826071766348017105999774687470141041644186413051701800946997798802009950828014753490157065876354475574918042241291173216045982386328675201877908900008449681191090170413911592481082187600312347240760944082454528158109652405401878435890206960723655420387810532441385612086118777509765047096480192860805511450754182401829172109741150169708228531156675085777894326782688064340989948771643369250287488361726428440861347496295957274114197835346179936098624563728529910455020863866406732543417480576964771748112840381629343251421835925609440706247614794971487963405223990236787717454606587701860218001564848999548964747848018784897942301312162617790660313207419159839510803903136223749408799560947791073108470877046110011921193878620512683598561593125003477373430038385795087108173716551159744122668780042117252361449385475793328078067117238361050842941175376670678446181357570308368582576641636451297373532117361471056325434045032942351076755200128350771081327804236769176046908833287742804501447586796925900237311127820562337340792858714845542871699528608623507105954331404199780567971128102125187940852408276951978508081103558043885167224393545133971011482603176744471786815106661597016337080070620265848471551806007895406182520922044224150017523121023002034531016325553740351196402587615502501478689059668708314252242194284051331391030336361374256739692997336370660670076256183855830322623994355003566794388605294610756008465164510801005325550623070723093602600525319957107238260320901043807471032422019276492695134596865632344178835866820443373094337898478680950954792710698625007077854159230786031489137744030026083390636211516306617700840589314044396773753105094808675142007056370143083755487650845868727789194174186146553045855929975299638963135602377348856165982037808185591077481423550392131845994266864257999208372803812103681776554331955459584918658323533818776580301403527185317637509850825893260593576364248851607234296986278966390467178635322626687863897575173793003148012816108165339865024505671047098902867534653667781624892422253486132702606452685612428809510852682180197893340569646780712417875455551914856743393258351595857946135268667580914647746723577169078560190115848784907866231743375905997915630910632484895595595708086240542634058715711745959056327557222646470187617915935505304694901238799512462967476544118001915190770225336535919824854032299465761848293395631141200330487793137377184115289645180308899806146630413883787799778269528483613760521468273779541871304760801625355229788827508274508191309327021868110298944576851820117250211054980585419385259898313705234609303422700302205556927794355063254650362646018062561976934339588120587909626177279756200909774721366810850901412594411032106762730965049196833085044759597591875349471043028171016235396206064782280894521717592407478265436237989705439882378502869854383942084006940441781294279068103508087901339257491827214447952090150566436207014254975429465229241843763227981770736398314644189809555629942463028147164838449082938651272984699323351295794879530497186561699961318984732341800467962988975862713672441424405372857890950659537251708074328214700334619942369997191528206859287684149566062805256547266129604071531501498161867977333812949178202758473475631318186362917530544507857362252445981070809068967394902043117564882929968760023088134387601845809822039079812665491217487336057283772343747525546908155584534182164305605036800085029483991424248392866167583123121599455568105997277367589756952369799415907366100290949809345748758734581492200971094601198065132173121025822908391630496953117287835739718247266739793425211592333407222923391977436640285928776792276771958492223967369329300221935973362728502799230852643696556668308303619384374756203244336397170503724004829527979790651192621963569418667563717451007373498025380228904759508307126588830212248224666739227405557818857406477806911198212515100404916923394136178069220078066655976571662288678073446500728613286204795377053941049944338043222061393533658072749508501837211053030073729965957957835635041934271020833406021507879397812490517276787978114470392116002297245090024343903109301540246228202621094628543043086535902870924876497644994055518542771499278246898394769329169333148973206128024472478024801300197440255089082241363461965614421930073684787751680533922506032719894028395177092300336723868510768705625709295313548322366094709594434458283804025014598350380447242589735257862573550893451754849012248186895377398874790650326971243301722364291737064401667415350557051350957553453663845227731651054593899840870528096082560299023548046982719243708370863738453272812510238359941423525712668954572559310575577113984918822404120874782583437259450984211207233859040248766676126515760031990656289332677979767620679371906454254746079349895741093845668264467298796685015244325282264574025478457628897865408887064029863885169496930125243107141023793793450248651204519358267614672082371627005445767423146853935443327209919662413092206378758647803731047578063514996148440560017744694481400316006117309892186112158031859926526241174807227606166518427581280363280564497908563652220937879850187101889390115105713092596447076689963778753419144545883218079704188774950955310703148320665317945534286592959738310839748674063638451255777832716603604604554445302453380191970502636461586417436847868788558804237049058823160557538608602727917133548341299497778319298652349526462706192951021635295500486228414731312917908059559473717810105852135276550043818279947054621612913399637409196622349517537515703308853145549355721528017791073187449668805033237137634273646876061360327535939537825475251922359009736511032136969741178409865285448806729067216572233544318356658816581737920260116849379424109344108934438220679466354011900177332614029931093858793396654069476823772646489853330023858681900914029413230155422626660146372853098482578164895359910621807071286685602397316965926729385671304642240986137343694508780961232326064310447615863341558449069837853370651674414148622738127433721796103323989381264749913496962760494722662368125342319461306578107184637779523557248902797456077976314130808634971575991039079052623568466706922843500941464059420413129121690705628056006880568156270712727034687946620209677756449307115391579372489642344551260081125344355988506357045270014938117008368131484868804209426867302112179835153907350593967251811313531271971081740308491938668215337762486234153349189055483673909368062360969050778343192027787364191325222049939448589828893470438655681610903075288374698738971728760569485206786509636721828447390377253007075694682281639108651967264556594637671113081989168178743069277792785618114531650149336756467174886599769438181110615766973706011047328056562022502582880532018795363698688056942667359078420181153353036067545235415514146257120423603762692194962323683203999625470212692403938483334681602975471762037952468922061822634469871693890144690179561106952741906179402087126933762874019307397114209503570625856421535862331038537314551036036918697055693839954905198920348804407657992664613221983748991931566809328215342694013607649797252267235678561211257840823374832518545054367915034702635531107253974626892400083508879187626093925696392671804941023908784352882534152897603029476356231644199096181841152197110753891736246532855230284175164605606875887234010628251642425680070253009375755740695379703853844346409249005428927906102183581437851921605495085325419540215864515682822098477327075089482533736650989151742594588749452216769276867830806858352880607435430917713841260717109619012662891450274060474865827908518179208821652610831791435824407816629182221482750663938366488949723795080097808926592808145824386573973165738672238622620713632788033509171743877969935725030648038871644612427513903575174907365700598433178262842578034830623933003400944275134686601839968539036765272465759319922036209187804217040671558908345550199770660644366092574441408109065760341085026998036141643690793107995467488830599907811560053564749015948630147572517917406656607039500040582325659720227672046277638498942557387654088041997133059994896526487084771687299789144573592981699039532235192208054803026952012292059750407347144209678676309056541835428956563526344845115292249596442603572687376495446065151014576690036498813886025903663979031913799527660073063802264889877591113229607214303251043156703624336239588244924037721020683100798848279304104352918211947805749244406899695022037385386154297927021330898150539696845458431630166136647049715954338261787286587622895206889745375047660227496894647162012366745213354404160727111863992213072855715679293680288911334284076194195596295979640233829636758797273958344981708526996144091631718164599994415679111382665687298132097624200601058795945586695590703263751308362802142140317134225579503750053997774929893474687264136323793567485215034409711347955653993083879468012181220254081560743904133897288287720389884189798239171548597842024355048867064632212316528468622831577467491438413412636241993831599461297346248202621019116472516272346985337380966894705786224544622746000307855486090091771206552073177351846177976375450278295619765700841643179835690927414344614957081061719197005755544271665173479821320437568117191441505316410666253056007945509935275293228461805602109936979045759662389486411537999520435685668057847361284528208435537625766289148601095324084844012647402941087303018942851941747662283678692306803183138199901335673139771911655495147744931808809523306711825993899399769420010374546144173124944605126582313726848435437714528548290202340653255734143221716515699276407513612600895581717817805086984955900445361784394155237054653583060155055862430589561559254629906955035693530954851648903805562078718831713706580516113828342323872601887165329026809936244339554805469404157694238803772939730743032102158615589745761127976341690742677192668496535945363931797553370964889776642141889500599984022974562748619540856249500064713161433971300305250123571133980968045957912777533185365332950231209984401381007819376721830905607522415823961768360857063857385886290646991664039496862095391686178271673863325599129308518640136209360209859224798747814300343306319952649801424000941037196649024836103924271580936412278324730526696456343241817746509478094654472099403145675478224119724242918093597172158426076555434955132026863458191548722341195080487854739645089999234783894860155737695570816893372386655895749242519525014013262355887060373194381180188180381600301677573722680802745287664305453493415972372430109367248806073861473687219433729629048191971438424877038048065862388976050361819373292125712757666035265008566098806999450360295419679101733147403748668322329931585075881489390031419916762983199020881677996757212056258962574394698134814030092797494353712097228836388645618369897306641636177015484046845924642192886965806717808657568984234661554662303175179795435514424739673962649079762806371313035841348522861218153047660896808193335663204547267573632743599162007379850627356988340448033206416637108025464371583572875453875559258594124083763711435391137567657038095925990303615756353694347467724116440600600035066819420561628372245035412300618757270953338121735730708957425328782489171096126544392307582924055532739630446178419957694353405462839647905744115427917386278445384708419457124336926695780456214968815777831910125487330962352309182990561386166748235960418098922290693047190233463120701977025419993410039159087306125011823581834845091426833495899518819926464487827508550366445139996417408023718490198351895324528887642323140696819052224271710837030803600475195847411967050127363661295975436975358995404493798599355738819061154411770075873235712114002251663191791645387823559012465018494181544497217641672054906125557052647023045666896587339305042207285475223707562553683817839975525928843705179502513877786107502610142683007339393207481989362008111575049339990412889392728603668147381372974315180694234006011943066681413625551289869343473968034882822359929256117458890818710632089739161746461980239006801194726659716230890737809506041348553113415019766231182104161176449347651653537872604845344544046245099205441059522499366545593782397453775343039687741198471176413898998334695615326242615380016483189927450658955949644268793393961363227259953145212608030400368756494443301126284856150241570046998621843423560765432572288164737162930730668456665577033107760016880210120399617523517746989070145529312815212329301419605135255069857838018881491756091616011073556779624154027359990419163196509506090246981380738914868375800586499406751933593451200369451380757354404869626824773133481545590847742010467953763207245465805590307353473653518072081352510856888605346626355393333548847814132104737256674933643017489777336600882179800103376969836958431145145588122268763429874119640600799092952013133483470097284992892826812896852351692974254175055755232514644324274139915874058302651289688031287202999512475233670293306865624636681167458773205421296902876259418080538543737096784098250116134944203839787248533129092948166101447306684421594160060369188880621471703912426009497682108893186650356691642922450849754700367987684598681757628527337391533735604380760986781269864453874608305973912477147531513507945571139252620622078385081321820251611201499145049081970101766482857799950596299003073335183617272830893978910987674602643727238121902008862212932288583387096111027418948949813902984096370750190454435077623424750316302998343015883494553030650084719182085892571830841575488361276754730486777394023702624364122517625137335975332931142414317522655644930095239313472481223170062326832724397830262535528261763176226800576082110299401768184706444772211915523903482252388262831861086673999201026060100791966016288855727181564284596045376268090495794293846214488295737973680212597900489848642378701281904381394246476207544271069035411455332691907830387946679935667575048258309690079083704778448473750831808251490979380444486044944412541317952352892864471358414940763412298381700163286866852586106953996093728591479026234480556503917806096900427169740108530078217146504333452751543727722741127175101257075782215969944733320192210967857257455369082023383196215528717939561546688545326749582043806604226522596238591001886875371243809843823671934596978109442150557595788779669112424701638753630170667889166963285714071008410541024512175811344662423299465204345061917895294196001324515199970045204232296443034086366314426607804161717055194199188699383500401344965774162150685284344014081466416208331955443195951658797727035349098507340728100347989410109670673294730396863273135584664345355253276917787838567945641680484464011973274773611454195758479570781345984895916232708022766414549762458799825205039643065947434775189292320503346620472308687703406586540315102594918512281574962127176228438278687474918409534023135680998051439208867211119828083803885883048047783155546531878012400788665851673802954978274739824252294658732312424526322848856357992332488963961400861674986556202361450130627643930107957413971684176548894595226781076925840506388148248729865356350801103543243685968400982069079876827787125164473180154923633505238292592921564549428941828451052616412455307312389294202443794861053256377747765733605444573554046947289936150623764073311617763644044432454942504723851993952954299374064312208988858146279622620907573866260035708252374918302581940406028967349615585582610340475910954538267436511189091506941437030284375615803745115195461874589111189576747403182584681382895744478432944406603428086172475093113027447456678440257188574269632142237119993099491994983024510944866414809941069109958801581036070070265984594254063141368960596262746332988273945657780494506750130101544586806574800399607017384821629695970588404634917935365507112324670959775603549608076634229943529399682303768944707864368507283453446395101367887052999493959536187234093038665801790829680874171828857203918676171814718580015695881702157199010330748367822896403312870445432853929001708623953559587922547825948867489802298132180718075573745053141737725852479613610454190428156687018194537263296998007850346950440447812483798024588794991238996439133076750955697266457657414049817537241719869335518497453558484862293569521452857840768332065490764768901960724549919655113224485944540744485077315285968830461486857770905011356699617796815244995815390782757574892061174624838472102505335980655268282950216291635221069469761624257119401551912294414973472850256215192205428168011909992295290697868343508241107961675472368063365998353555065127139361651771630915195871395470874519336900901290887381779388509786097171398177853710972516519496271128586082307119359117677391470610078855308277628027839560633359492408726680632804883042121508400293076187502777891130060645040785076556479639230643740357795994123393884715859091570085260981863951847107808281694713717507195933479941104462464459958174339590376374190475262897512785982448101107036105492323467173742577285156727028785934538335461834933006499185790920559001499230428119651753129691957669583125522959654284395499609291343122461280027287987784391983111938195718314646418527811361519393724936776211575197955369041197399559045074508738619666120273045258040239344182100351812278812079431004763329986925961375872299398238462573669655708163469720026272043054023559967865348226112041042805156286865601870547526824166684571549750630684534320052540224667858681935613710230622720498394830081474840943488592836067571686368781728876218182468901466756644528591129382087052582812536666242698188277994658464380316515220725938717513542837912050051417001144911645101293467985551892588180127078656002476937364418577338498581264749897419647807953122933411257537214722003434351376026602602257463649204937583747340713694667698324295461639416651981581661194258113431167995180629219275359789948610536412140245232416653864189843318778899360293432243880060678948515435431090371726776800260111059256561326107320053421321221714818221232977478630961133609665281315377095894659341494100505674471313205235128889939507285707065601700425351379118389838874491287300503461985188457574438386221955910963949682932850139034394815175400831163566887733278361071611833821358048285530822007355874502518339434854591456293966986270859516441738128622741550832622257872962468842161843873157805175691958506991283173805954727210220086982977703883159035008137924045071574189726672785343334517758675772629320342728020007242221468467919283933073724081945586444719771949051395268765953167597354018680110283337245478692712914799571537073436184372561188162715079167078968314632828996961605867980005974317653681496811172655700666408507832020696162712986933571747819845363506454168836997180827325300818369895227834999125785704218714342795344412531823137628718613217845681445741997387882973842170108280158214071084026474581487363136572899840380465246781563862662511039355762861995586623127984066158967392149916652656029323547245114435851059981047485705840017528445646456477961340683183374855993051376550899367852917312748607385626988236208493482321371460303948986482806010321387815359815514288870901979511485878170181664441710467237316722534370332749567746348304300130915881043713110030457934356875901514999115940324739447335304106172063893724203700027439760173844907974116164640857885550786834007265243638877781297591229836968332336500569101431388753132376894462755081431685165676977679460669691034080738770500044091261283588965713765972783137478531120303474699903611494549431907713983516161168829369489947526069930464843417223017768815562789037214256803890605049039141430084096673055981452243932045736825777839389684934169124033390702676444780018749612622884003855126637333408775795125996969783077780640439547988336831101705758200947290627623918244214158563124119557801918978291759650729013792463748062111950044526068641769045049548986660408207979079159921572656513600033096465666109271579228244189908379009150645337103822503289462165144582669853362396588874548512393897368938657007562999935555056255845738737763727107031143281342104914224060985251920105017700365876961919068195871321779746362593430701062455147794439454359543255816639495276989754089625554034268913687372442650851816630547468731042706683622172693549595642018859841315342380297302917957274604863086524753405068356230846961161333004642612860590394130547567704644781033740692525775306503808079150773148247299198669450287649820391178354119417449460167822006118281171327697685193747964862833816828859377121933242189675754356070565411251008021749738490250085935045254430161346022970896967052886142722854411271656919973088241477965756452764166876078113184791164986429495872737782017645920724918658228520877489936894965600372380697655875186323503880760872607617250172493035715074703757050743145703592827046282202375334986189384496697348671786531890387780067500176185700313320941538264346503034350635308837555282537838191888025377411507286470546473693525138509770765703233416323618285649438632816686960516293089858660175579813263863300567296046553824204970221370451519985068035678939943054136011271031755644309828264139872375539124220504311058741525650023133248093771383332643117946810156994096794628363261057902389290056296880131805294964347325418759889153130366810069702413112691833953028375924455391810177087313321451443873933632264056940012591371929684816365526419597138689157332239199754708265566636508966962119101626270528195913566498536507757423577330647965545267955516336443340268506789134749609089409782693800824892462608114688060828955381893106482235563983203664561498119603800959501956371146294960804795581684907223036141283751335651411027776982452250730559672237060288703743697375522660910540282655836804395545202692636700864034165115893149758546719920606079034161622319023273091488408402876883633807946754199107418375042937216652846868735596023230548982223186244301841813435476345298588282508495495445623046305816813093076450813391668760756207883060676092868740196416405614073896241040149894735628695812549139076345168950337770066639357553503368766334908478795601796032849600794165967350621849244989500301317986957755408809031985432727334415096605427060343593924479168781710091963493241973209065393245707686412481209148456011953312865276842191344078729993123020416654922692219741854500644371569150984415975084272702918642062741528355553911298335913233715527841974222322811447589239192302150592536435398381779247727377350536560365394631897133090093358137113975684795554918269174242467084167953072641666169750988548248650476335142544050965356081650564580353839127401706749081147237003324944836352958858808891251082180948521131631326489347689260695931815054852310593050491170289461620588458142795842119585811805784393158128353800144373975318103341210047979823456598496025697490574012635136845213225303883529019490290363966745422527422820821916466254721135059455569656153297826855799484724038245893891267344204254593122340241020434799801458344360725261576864597614170598128518790319781620423810513661059362410720473687515732008137929747462728557613131527932260908602369109724967011773102812748709372607676359104814830858528973341697748976278019342306353961184748466235503210551119997336008062021644736538670412906433343469054045921784926407976522721671555142076154314402605595859496654084545861888338055684110823977885163663970579887959664002842161051955048929735300836127111656992613351007965236372890738833664483905874094728047179091677304158550053984356574435325256350675241905615222878402146000148031259373434457117841958175834309251416378457621938754239324896631710593377698453526439608416986251768729608911272054859717988674276084433707060270322199563536166964116965019429200475385231150772201652483494670370926276282491928008059202922679210073448845012513736837578431441849880959358304561173796897124389997709050410318066796862029581871868229787340776726587113950427954705355877303101868787467909970885433726876998989601380431583293247821780851554227838288109445332665574195808986084038121578123367126798923099724455207202367277074643727710316537410054844771564977220168072805321027096640106908358312295160707833718840547661912281299415113092534950397873529825803612348834456876706890724284132761005910381637876304524940352147965576183503286256503173084818339925054579257124642701304068783280508417684334366919481570054342372153439407574539698267202655760346055119720617518664707679739196560960702681850746460006663256795603786388172183200646052337892633007442681320645671418846523335346708912221632719734147555796575622527759044076405388791868353985189368890310893959111536622046203924576084451330808673380090545680467017120138503701475173852336544930362064537167355793748077250827992015784042434592342603703865646294107939385272433553022295038508435875439859057085440811645362377425804700949055097207411993882056998478360589342276379701269484465168100560546509139021625207861340668223449876473892350498806257097764050634472428608693678798531028065037425946437179568297658831949419378438947202882229332263782691456450527685298199338118975708575156200939058915731319025912808467972116139792098150253758442001246719589048614579126015905450537123310822916126241100513535600992001237223339561362938651843960156604549971941817625603108616073919681671382066580466682014944331274900223293606659896321789991412472634262988462118353810135375203408421222588222375977408158827314343238298046928393682010434111133189083683726977396379691506029242802676514894584835961349396660343162694031927401700315789998919514269931836656606084124664514976470468121541303012181960597486557102075321473091130611042568621730792674657062527671691240452203238799144515069429924862851309480465342971253078937930786831217407212450420872609301272514847712941766053050497237978669528404163470010708475241137516485546810390540105802719509571476926133653533524547512329888234524809612423975256955643689412351212925703334780661709001574321072005103988240496383170302368007297509297716200771554369043169856177043708010245093904853181791187270203135389983116359227675074194148489451435032676821319059450010008675747858864176362159435333288668245023911519104842243155301503773120227494611297381481144775844908825479998651069619924395396611677705128911419265591047667904527448306498036272904895551520961456413178593516706147401999272568287933105150407724040132236729773718861869829768649597446670909280066326893620910568935106700166547299906638800547662335237138611880321920373874350333637630069262250275197675373288590472853616261132246472689662371006629812655448985268979022331851373389842242326191337973432893278085167713618923876665526451112168751486314206093133636436731215022142104009403842506555825149986259635065190572219546873856741783732093588786878357145903128647678109691261519146095683101224381061796977954523096339022070505427490850950744433695539124067177100613262953041279985094744802047759220889424662647933050237915630546130087819687360909420618252324936943680562667200096545598466544316453112709767239238865092131103334011801795655459921307895233850957154522896707371183436460858562732431411529241260920018919005322210546119261943946415020332548686537471628557649397981999915153074664757865886049543063892640125764311760513978311342611055370862311178779837708554992413007750781437107041018125669524940071631673400911729189789392955723064620043554512253237138766415741505184980501607529715561003550390027709438714729829478570375994790445292498983646609519839287426032227343255676116488557495884647508937517224318765451016483228098051641761902972724565493297313895926400366035324648439169996914094679748343251477568619482200623301345293637537068818515812907727698059062939675241974976376755561275154874984525638939207682145282611902184875754022112596005226596863145530464850238898904820269683985351273970023452266020031706009859325456980416613555609111289450890315108615816015467742452517124188626213539724049995537863565730693815789889849693064514315898766281314931107511749868734672858141204798626430355152443513830576527085884891749176558827162492443388104970079340306033445973894482514017228218088694851493113717126767427578836427435618215420747998702546089388091281362173888741101384354642321505657493849118888358537276357495296184032849165935357295944199716408201872141871254149120274526656492452859463271116581515957946264649842447128322356604052857219543813859807177169451228464562616173630959123366130181539934377859164654798493010606191505867297819175935183996636323322253178464177256219322097616674183817601996864194133113302854835538396738251536053809134890532031246068465202678136033555711815216608936677126124788921769876021595878397738274201077995424506445923866505033599500734567033838089713217186328525062473681908970566129038035119001951039384377260496933980819022906321417986437269850390981390293121781350889730427597019757634753793700285949717986752343221742781785890319856647943009400356821721048355538842128510411052628754633528039846626457907234145994417534276822192505033037931080992758729284182106131982511262110753924552507271639577209722432229970379993108951303011178321500051601383636206282752997107822984207670847850736724883507451234424291482164364571169284807259213994488038246516951625530881838088629776119163698120967275394401069163803612401411550016981795195694591261192748867916717620520350430868964591850151737716456821719002638913716457560250201005403934016638649508137297915582350145254838548987039453636935771876625355293046597156511242623580613099624131871204424189267266739499991403806855882582281927330020180002567385459677067174567455899112673012799582865064153550963235854730064473631679663512592668337428378919827546632849668287512712949663133254634797915841869666042108884994998840127683947555958091570668952289660543684781134390777978924160628249245201600046693562602332726668340611409947165534376606600391209473131820766927368377268582834221459548496957432459344018914612767396609477717255918401107020456754910444266887396080888501441871294836339529079510454331325687514971668599390763692295734032336988272935399056681113972105792935170156915708030964705219887422870780591551488473851021477849356655636153707823078973178597662517726721979371030917352058694414347962371520929260968105271426772777853048630413155657342894480283246792302755747693649471791758582246400444759426869130675804192948591364535306979497453345622788194335826014176414855083954924881762272482282490191376525450685248761533450020510546622848939200233653720341675492841933457213107948990932027612802674805521641258693362375772363504476395827008928015276797815673588795764412837309984897024198867383796746792446838829108881525431719501703153027892944976087808440854018903842939223904822200822976809670902895401877772634108650959588450938570367653064400675936509091306771460323471813931045582027426972571577786185027272644524084906120940002651228998697414936416421183585532378620626846218080554059082641196703215122877982129314855464778434894326290848756004707425777625427948001508398290119354029233790541070239790783317803225516050236837534956386878638049635567106239414405429239809574745790798690666204143314237554530839597684456852614101405087935104246251116417014898003535117481568156425365043954260277999745429950698750863028588036909767471704153916126939492787161550702348172086523178346195532615673779565926085796476441464932216141436396555521440272921466209037867617119513932467084620758970189632989395288716971348912214805909921056640106786490710038364927380364064581451472101402388350824476049384481723981272085663917160466552887813339317468047979165757649440375064828764674816380886724281490661715720412623572861217972225150086751813932701772934743435256179653747867465539966606769799056865892839802168944425257013076951369077040788899740955498337125643054420697211973727469625455557581215154087829954643786311136477230040201195321268637135444662309749124469054595329810579633561580040466117836986401149779930604849713775639978160361450097594899887838076971766487371157285120793106295147430127302694293655707507459664672707337761472102785594002303395443221505272582662090536214636307893031022120728769061821177911129295406494525785911496615957602112349441648307285784730543834854241249788308338273173446413989845033326749037353719109111692992153465802824122258330326372215719444497338547184951559462449361159192923727086653579262419418163569358865210355105777876470181596806821018432587130936095365940507141165883704929115914149958999746710116461185963116058200815925321248773407152596208783171436147884151893580645667298614154604286230869881729603045002334508034615849675947859491982547487786337571363019948466144693446864469905124481211224440942208071735262947379936807785909688923880465646968223140248967348726717488066971781194792102627098378376017106042249266308763016795801092109291187959507574567412542077847090985955987461130388814213255033259649472263712879553065892460939743657498586824597309004637456062713655783155009790650289154611664395284521888100197337621992185798150078639307867008119590895634001883521947903960988530594898373427418646231691714139400433744887517448877408252743096912230859455748527602464265255198741479804671499360637851608490147164516231562348162459055029666389598056851439013537558070110089818241374611580286427521488366318512618803543651807475918174529238218097551902595550427953753931871992769138968966758574314468097038625546201036876875296218379515364696463319145084225499121333370765641158822258955007395199842733085336097232431693971076902735222704760881093870529811452146966413685930848665561918423827542023999617592428543218723821393387938766525725341606025969394182140017254587964058382616179913953721066941474179232916695829715043752301376086537514102896565630099019264014532850277864971028973458511230744622969411185440719511635668372859429231734290722312554261833415326041296194887183740387936277533494004019903162219729651003628666959847457802356045019646728200968300030324957118814940889781024916994246256264630192976601875002879896195118474448598939067948109167013081774607353902503178477736749696105413460919865864708994873640876740766927271358546572690736925431384175979592319866903552276076315703713483184527509456162161757393231129389379925920213642497786566578502330616523197544432555523891306159079447374258304191135499942159371613863904943847153998798103444235758568645974002419436805322743060531184308137190297999637525612496725949248483599015630956165583910942165016880250448145286709308467261691917369503410569331803651457804928339120983158777817407066594123278379854432251198213385602018469510291033564950129821402108604491307452694394419143805607110794512494586142929565627948277056476370442947313408852917624469552269379066895530075004214234007799049179011353002887466113455001228483916443867402723523464895777615512823528362083522879146024820587768274978494903062678280287830650607730861572122981508747447812758749361412243324562211383020419726089855548487780192497679050093160434020667483242757512357835267333188449880770833444550452647696344644108370399123226989995245396737118109626317082472815106754894899087307968957980165283485908687848480569342107962837024565072038951691313634365047025112971683513745975786979557464306656345515082013072802197641673967113058011573346397890842956359604503234216635799721514095506697416660260347238086048358151392675130023772455029605675135176140309876823172083096509765692004553164919740319281395562373309468845213623974675394750741578439132615115822930234534746552255508632365553782035412293584307153748199416447663482091460996890940177691455820788446652918124172571489346749594743563659597046370181316499964080393004116448615254703274562907492598559654089546298047218986907957510758033248887782595222345526514337311578067088554017812486691860113894466895229493512216591564190837381625022916507458024558759037746635723744378507003864601028192709296363941918529619779958076363851176956135203978585852764684082437287564349859104707086329971628850107607414612219191803947193135078892568342850175666360287771114676018184151613406083394999432195383641857971798328798589688236847362479231326236890105987761223941751885309890436169179420070523654862848866660110962231291953070731343418088648858258674906214512685732603824918973857996898738704420251803623082952050803306223389530451010817143540354587058419021890405771993391206179819843459834544861221477685039930991166639458874483190288613090485694747002140118300244562522929865758321696422104594629347388526752334832405455645050770565763262297319912129527675613259824484838148807476632858264952602161332130029794989837229986545196957708663698250483679336133595305770895967783884995017512498681675790092456023594481469877395040606531600197717802772997254337800209314574167639579784053235781520148456064075706990148051754329562136954055452639003798205737053867840836656957022734707456232041838608386829927011157696591723697070706079938982660718784280683360639023053796775302713984916899667523930350667937150116073023600299041618925730334463771742955902258198016251967350431068121144806957912489094319647501556545593826436264979600667427229031559534970129355286100134409047313550445336356434320685879119300833274952294181491035688339565163572180193171075268877552758403839101008979092165862814324497120599225461605900731549327684082208771775950683794138869891167257818296742173965698826927297073933479124743179354309174189693258885599035318984273123003093233091803463548571306588167468662245074285296464232991501342943040765706855985409143960807379473635537968873909127266192106941563383864819896905728195809875679078431238429340716741830523753317380372421902037112049338265922278223887388137470708939544312563444991468988848923647255463579711720544142244527107896791431600552691188199173556940724428079996033671527689127144845853849372791790757330782128129714487897319137381221397921926257089660586510642278683207746965576292037360099615819767870998061902206965161861960484298351362135664133580590093404205275875963294702693018023500663976633186116224314853269726987876066141160495079322707033834759176167623564330061631627764596706329088973025889185946382269783586513349701209078626054057665959759200837431177894897737802966907476701888814254560565979006831991785852544972190955712444037804422632561774920422179049849611990697103756608231409612647742921752124703570679617511544373488879532846255820281457302067876256597887989697674516749967055162455829026684287842005429327234075775106228250335211047671752124646428471569288296010444799377010591455780477029291362908169764015022698065095274364579601052997151431075628875026961975601871706864144323599432889451720387038048041407853228349034959209800513145130845561114132191732838265652813796088398407186422352965963219727462599670445717014880882569643387093306288067617060608124465377523414788034645696889601514477600812673239817266108843597604893048640020192287052781642011695496150822893759243256944078268530157684958748773689877832436447556761121325784916892981349939185039596692966373492294291121136726049191582209468431857058239527863219863492375968485145003038477593665319612631461569066962677607119780070955952102798572713285321869945211583891451229884073788254437068736502616998389119184617297073131666312890696628095797752150572243894661998175368380147444739208378604090824477201885408012115875538374370905406259071698910936554967752890744546911026956086611989199217094080739983760727762799596149616575607200433637930263436240872755755327301404500259395421455008707615429104720691934774568912189395968533577817392594724517446017059227526457718895614371380158820639762451302831765559626499757056657819733179730190430222475646632886530969442701531559699718230527762154906447137194109932532442799231020275955448686262010773635696343091237383689593964163654513260168790836464719222320215348173238690653314823880026111268141916225281196988745336737243486910799800763522941176104195405441359064848529130220427451561675776856917088481090057623035229764126545787171306098900174514293386031733800241826511848407361321688744543486112415690304750343569570286357930019003950967120590104646533771847710395842777206970472862753846716136242240895937590675034485869156561740077073613838069091125093212738605715657382414306919887567283926488095497881821736148342181446456978579475580664935626522458067117891550065465676240742782997212397043260958766022189726904966855637432981220568206314039396191584367055397128040638649260703292036615007420244318428789678435439129767870405656358444784313952011787258742811655618627173049230584003272403009982532664315436231705522278084685528418641700564970761461886409192783905193470779396552087094989820469180609040262264884355900010356091708742027683723441689714932736084976260955731746181659156025472003117167516382332996353376954739439416595100772308224930616515450977750040584747704916179743096005800460102381429881937734037946067484143835192869525187629946891253740497605719842991050253931629389849591273450095495777608098634229223008152343432125779414603421162942769754953445854170048904667112991467328749023533740115431946969532464899325660133485183499772293028680293695914304610863319615601739245433891692343989133073795852062728706450926995979416978491325861615853346187796483276748311091077570205315185988306473364055847555715529420044435606995498284472900442940794826969245830154274065097040997172955919229795016979503776587392940732261527103986107260605009439479910735212774487878171138046631774281773587744041607478261001263900230410838720431611383814105138075845709734317122115751334894220119158477268975359008172845007267431780986314487614425330382254666558984081231390904801631599800131131203112627281477812415296282904315829549225258392100784108011604108337058455034305257274830008905384917730754230814288356204485533749952884267980306432320128221852837091292343667369631670356054263937335992307190218434786543891155019501045862422110931228791451164643299781313065811008004426015131274169356487356500779207526954125383593843033810079498145916460063928424500750902631631065597426012416439849092785399668005593373730138785119404346078702768963566543792888087679509303411776374080187433927891202939062523405080337641178341707827716450118930654816765012223115600598982865730530120865796242938456972850291325724622422033805194709999235289816991399083402824419107206546238946516202834444150089543206023468821026290085455785552805448008359711682708805137681535341103218344308945753532254501881810875454927122600644291850004677529389309831039031871793518905371875893337294075347984469867075945575301644897206930343943982255960436359077127610719124573761323625445644419961930696241088120775964381937642198538911824623284620533986160823645399539058659234902663374056287922853818553256574915305688582492565452312133309165720680230141958003374118908093791010957832462752367040223252129501812699768155568490626942595508355646000581982739067025756290125753539245184156392604941041229908202805034774278812575485336404646068626537124206918129979096097185985639407644123773136039600151737544368859741791395340680784049489785133660483094748922790955158705154474563172895943592071239298069402031521248938593649073848242503643303516555559938430324511336656765885740903617184416157826069055034538051569175609618903574286732484849541077360599934811559024244223304517054687037807905729112065571253811209816167965422073908300551927745295710256838319704745218992689468355590843295420984058881231887997210420801855086181868451846502725017313013351102194574146800597926198010622659485342876237591336532234721693107199136227411173890230887219426077046998349134461744317231649570755217973500079643701237588438518847750900095567236505202027993380876257522494432019549144441785275162571661824382194403455041345124796465334813176729205024733316775813856126124419931252081794125413637353579791356261649681275053242050820306280675736817663720667725722753077046063220140550202900451960696211363352947298812363785047815319232156356722655210311895397086641630352501545137037602890976350746304279126076105486715035851716320617574628640874707891491526163310830973999314856204672210230453679821270656377015071250680319972992796492670579485501298185935942211111126999208739810950713504195686237917080318713259760104976068366083594803978322638041482113642600684721080281158205036759542879058894832135913865211300718410996017745541046378407785873111236052949249215668612729657226447496003628112540755904541405753432305544115997300011621479729708984092776525281474921006038651096022766245951701978334517453574829929683918857540786302185036204012776776505562318922355459843172999768993901299834474186370865584607171348593798633217681037928903124651107778827050643721418668656104385898243587830222827199074204544212543805456012650631741391921334354809864069657833236511011007974690655467836418641458448329339118157782286315907922544883572773534395283649036151841672326560550771518889787383499382031193753189810715033438572025772422566132761726854837965188888979796042476825783049615542224299663715629339245472011138094844430030450921855584399496912861167701495997914573703600062997163081422475095181660468072818388444185301488016899321156149231030683671170480462245916154304991720163358589192769685422337763805042970900785770705729787877260375028827358993663289571452671116199177131996259215650825413237701670025349725826486283669987972456778496556724185801186607358958084421524037783087888200703355009102018675853535349971117153963506110746625731093616554483288949353770717067025968595562354159540095200752754576086028573541353233135968817109412196358258051739491676766907946377369519023052862471064414692762862079210767525709316541902906829608939010278405345190822866281305669408330319958825708136014930090779038744979692055316341207303968362426367911163801928555959204204405411484450099925045930666609731748568826996016278671937317559571161899180906376623760269776534558369377049418638708913656487069115816854337562647480584900415446220672083548719695934660619624234268007793361609748462476638651772223814625703900270257533750915412582739547613874762230918101343238114904991783138265737172675247812064604929272843336722472963813389694931446039300437022825829215551501490460722216733290924428051246711063956982622906846972648423269287387843252536266774641182912104421431165175114268366717055141562211638942130071574139703966908021039084640112562854566258490887469688867468396372981442764449908034544125935528207560152598562544986404957408532361954616527985270680483897041210656271963059506548156636291920200876377075230514771753886152564460639352037680709553640258213688727936429218791845916638037877981479237550945528054279741478134724773061643356576423944639886395852606333661182947775481792418271419922889203577002326001465345116256878078276794686807362228393561703685723011140219546173795425943002373123466339309716033338760181260515371785127884822635490124952053701278456451841272418512268605572643947975573124325347363720791649032796864394401593541146739864873830420505625512358200728121564536979411594671400243383159168083864295826070270516014416116419024373734997942482801436427633594616154785221080693873334311125436962023402763262364145785737166857905352175115748259399412519293618557638088714162862613441525321951297957117750479723865187715259471984105086007885233550485037401738422271524469055902628896212290307232771747286241446336055522914492536252121873039892839222647093144918655435497250136236305949410355858226878964773481058691800151643224579897078541185460074429044558152250631990770279170425771995452147633586218428340348066984679939350817550523901250617884261219819294616980143155911515849218628406779653729594927764768075522668888894214683678653393373923293121264653526455395973327466945490291349122256963534744804375009408978511417071297767339711337162075647999650785760232480441436855285032578883015597096728271368610099925127368759843963197434906709131821509974691117024347460336909047677365751206530147706947943661401551574193112515664945273087091508137767522041161835142967089119841119769766487252378350229403289209609289275863832309077475399276436801286752936038627982113815472831176629771585831329193287769014540523730817429554144020340569479530244626753042538308607851180821755532849692273252910312348474005222450311954624827493707415081147275141052537259597600646039157194381242076976849556293106664902115911661730391349205739913166171751080014447885580755934014967877745751970914938200486345206566026020944380248874120279215945060822031760872126346535479247683117651446418125690119704098635411462677654838850805824430133511741858754928671173292088580224844005012483757211607359176111675194783050192378895672453570477722224628682284171861198935368170930890145188742958366825957695900357147610595227902009855036108582357641040077321032342268198256554601187072485987825075423517171727502264246113496356278275748827729047558524963625169167523950670169278239726723221070960690385699143752065957560954311457430988045379490482556710000938858865590100789364048919084110234674964410891225777654518973828792083866452704205245219368715505921427595581007398569078743875978040918286250847778230766012515845604210462069082148836300064801209577639767256182133353162167176113892651824939116888726818096790579538353735259228572822393938708347967392182047351364591900719195827833262258634475617461802917781789918904438978885146132813814083759508274493353462560463906904629487087142244073062937285477976551630334445061606626575293422521751962383425651776915637383026332440415832003604363992887354095681716035793709471537294169616323183578166499029963664423169711363547605690190489545240728542156020699602038498550297832316865532031911290911484316993291844197640333117165944045014967544664915987392674595470489507320884112263570777441311476112945986277508550169624798921905775204299164405429295842988334893227946995997890094751706330064981602029120809552531948494120741589947303750797903297352907232004997019864967601359619034003754697494918145613409911294873150126543696491556757218347246738263792765586857872278484512128501326097696736249347138990669163944887318568282000147626681264686881931617227365606339880509338591975935583995710257850136705407795582057782633971493195363245960729844456459743623315978721125673341761424782442144862469284333148398316042548823396472383897243793242016276015065461447686746082417814857148608596924702669720214286119323927868188286694713195495235673439389629815005927605733392406846433310932065791716474136268033981691428668197474395233791606898549136467951666575477091323540756585442972088040886121936334054464675654330164863505569162713609337909338339303635887469604695719501347884504918103978695648338096218967741456278083706364062601164350635330131113631357858940257390931768378739798249883634818793725245776194605088720188565205932658893189986403588290785674387994969946170654999111733648004929475508973228045328526119973900446088677887646986034345488692160203471643427683714226181329363915151580440217606949227250493002237564549991029424614357557489015359005560624022888867108522862344887782024445904747813478686920551666207061593273134786261620108400903680385736973488698721760094404511809499558537857738994916537467829076442793794270162465046998548116251568422256210210556948628528913262253247840559931482429451408531071586594900375677314834333901403124385238235111682788996963889871631880086177080400886067867423762488237858517401827180641596731719155884571901618230233704757290885943956569573973662484647790295678171348653548301418830347486782442057285952249695059339594872350862838441562572689523840303830637023217007390332842282090826942050151729127404369327285919130223822762910283627159805394913328225525228239140689632663725926290283458808854280518793830583825431908122883170237979941545577711088790102893556558098250182411006301929549173055644924498808069675954010473771631950650871808597696225303865975798470279139979243475967919745719797083459591754780254295273062196372346033338064833410013139431722053780086872507956044936487165974327372183789359040446320586030270248578515606052836879266746235278564856741585914270906336395406684992685455868717226183100972218107032025381985892189068519544393241064356798675336316193879045335633500548982482252040638015255223074790596999435193882295943335037808966205035682454681095828206470369135400608702274301490416922150889498927050815278897679543092442516244544290238652633909519772281617208590286159423859517664932945525769640609562410985002057442403556187472203403096644461342465276002705111666210911204700581868371186015506259517125430290396331402214371654390443376959829943650594283385377885699373328735982302546043322727366779927779800202037889362353130269630620555244334896282287313872255576011727902096705578464954171263814790024410036558158204801675179354136723499817396620494772603649246378370967912009258670863976623847169711853485314949892870805195078604590637391646701760189847268942172470437695710918614250643125886359211077314062956769485219578971905641998361638885820457122681935829896725515384652115813394345859791494858398860814722351772992936261203072647714167556736732660326984053003781123435039803413378986497302724380465004664977780722683636903699607597162097901181626069143911287638972435355355779885198321701023492858846139782594312947060810276390126110371334221941877533167370211439128128156429692915138103322377428289960098607774031005264641196271250166665819484753469561496271162056293410404246853958065585672332771545283858710650394623394108698938398686116179618932451509300993727748537473260186031590955909483181537654627129333173746515029576611822755831940411492340964259105668821311083423855444247096391783941194027684743414842144825026741879049182644314293674591995276573934796032482712207649153764817599301407756903083348048212206904202433628156869227205688052542732521620526342727249603046182460415007836245532099998914237426307827854710992005153449027557852667894574301702957898436113477306803039622806068065493117211361362881100237151325381685475114007345997663345595383683644283287986675493905429154150232922447310349753087759573849159702422667722584786870051384533235712776985651276062206953850313180740992118168283132796697531920940051517321376042734870588723111349690560772206345267857288965989332257004730827203010817462976269569033033815037282791450244003829421710640800409062398620798041204160164653434716486429309222073966813835411906912139677180067924882064454979246523989388030513017027067219506576954407825217236261687007651673279969354488422321808025755013229087285507992248604620815916460539701541692002930807237984559564222003343655470742573192010065875868177211083892650215506711558729348974816058822336635315327073261393181501010141335189361364723576159947870883658750695911765768057785911720119603425899431600055269635566198395614939450214994455558456373834163588106137834128668803949086591040068511113310360607756643821847735050119240135295855015763526249974377037508056807837359731436602641345037801424612716272544832482136403404840836453999482768980296037968368350951465180747823112624816675774116363406328132977243154522567224153425805633172372136131379897875382028956559805073769652838219546855711851041508271477494425451853990284341981972694151729057646315835884830904959606366146518547543864550605460245600223662118636587275074339292088469903207214030815713602975866024328909840512550282539463388259638145484739703195967982323247658822492084470020992583954204055581933392901311795494776696024459112058640897816020663697197535300833761019376533770980235717828930672614248040330611281075084510626710133368293385057546921508942193960077398621444271733038923068141910931227655772908037950435809744258164420988243034098804134760540332129861807460144821173314792623165334364550625812908262838642214046262902291617390334148848203394472291517584554536958891846897653584342683696499867505168812522765588052775830717147284387220773950924542251854185404462870380070962213931904248654603319035822383204507708647610785676393362468662078071652494952048424338604200676014576837120680852740938526091309199355484644473793411333980739892146536186223201535638174132950803076722521558649827401271475820578483332970702285156702561120382915882722885870130860867965735727188795203574516226881236433612028563365657234248335082935906892233221878597100994065391020698988593261795243226365343429391549593299619488677435229455459250697473492682282083386116939692075737730360891790039687045924620489621717882063527351138755585120179555909757328232110032538347544595282066656508917422199187174270908224474263483785719929870583504075251016626754896587629600706631941655992753769061745589169807173401866227261970430205231018332079609516355179563599037454669545347973695593608174116295175066098136071100592153935328004874741545222873205684449003728786124752326656890529315849547672106128764780779608743997138920708711822825546013913798038056776528793856002233573694896191276715515093105164103944654142728666990054714247480790676090444987269167683784489750206591211320807859910408801718106816370229642806280785583295434583077449517236901911093950563503631121501583555843783426494608685245009833914312657296799133768678615527336214629486024977362392731756369958857271568692777049517930768290230036524209754527212467861554989647926824554188338355371059048234676067073443705539441862135384804417020083306309586617910036226356677808012961900043621924712279772087691965110560298902426707120114906407970368465463549903346300339243040316558578093064399108608565456180819184038970258606198007503067142856598034691252870932913644380972553176628849343585781875157927717437628967327912641225403257091532694218115587018516013423677438173742002139333306618693631546403582611388113638116581271898760127362917444474516218536924695099272910794399958966305910934738707807291312549313710307403100421267451426405503286531234401423539396559055949655981617716440994140762811909756914984490589547874394917105273180111786582619536686749065517992214516728602248885428856789178034475237024550619324459212603198839952060056287439095226564605809218869750962392820665877772559353807932382091193896644713358440270305204818693519955755088118676431595303421489668564160997586418272757907753820972126635838326770500471407332149129975020704287358521885859468812118134671824203839248081852089076534639823991582864258076544619545608799224936694286070107846969663440402524312782039248813569855847009944680198911905823508140002738934190936007981870770795136116547068944581530635390865938413307566741126214139171124146564831874288627799901793198958138962890743698713198377505096541478955560557608603649665577686451452455652835891583631344745405058088010604235789551061624324409605135339755387807129825755305373107573418523951867023433411770160669567220610683198951200337162072365427008204325899438502717746696770556220803988730337056731822930572730608167372850203005795244711486801355387832865512863608514907871961300607894734441364969907841420478285610938992931092872627650753508055916366143054520515550696440918076622495492090910481895466987687133825774994951743906681833711939813795537453712100298010170306889478936365138537720126836082661879419057957463012804179434479571665994231299204536917300355386583268376985301483067425887430555436313582200766684499967902847644336678034518928495802763521480903090619003691681474055869718024649134353235242082404027647502918206324262947626818406028175811556759037410442355166092127084568526986991325799466061572700634020924167125047971574837214222864580153058388419729958520638133912493929475422364854966600504104003383464455133223307724554577739902739047503311143596968504257382697571778482323720419719993699841062283825957556764765040781882936676966894828606574688462733867728069568913938989102675854739018787091840502396253328717156510986344484357933389714844461663288176113960640700564670229042741751348137494173101833076688849757043752963659501892917370579988566086225277991278183870735871481903790174800223892948577216476110007036239783150113304075253133666674502288764590486413072420355361139533213578932113338072439737462891592297213640705461973496985328068134458933042984881185440108266432557390582058768962119098866945925992283683240882486003353449890807477682619618002961297621825916736139207751654119109015034629228526646599314362412332183917588343003938813859527988375267222887346283863398546293378932770681997324506633025818741294880685037049304826200078953058483098026016189847278387819789975065411787979778055223721570359786480600205516401615691833267948651886031798864949011564291664661258037137675636186400241915855773742087610580139497358929489228866609549287238816558703630097452731643070074525781409714201305399845466761668570398777722768856571535726245379050190029880480737246256897031587564595911835156412675464006817828006202928112385804848761430900572168433156167016038834038703487323238822857003793698901594254991892190200490305632799887332566946863891663991111591258607627154605191934079695674847698208082634451167130647544757709541810211930283939704576053697411441587603659573435667803913415499447047089743815077448814646603148497486355208940280050539073195838428445242101463841244935100860686138074624079023243024835035653635398535858672192136066664786022199212824293245414954294500465292649790998672206261020585963393212492614344210245744896301148288748382593340631378398691918830238451303066884636530457246374471790146757155738408029428573848430263021520188884841170605586489486247030748216299063640441562491960124836779692946118834653577242618835442894094061227731853515806623452774944853148687327553474615309656745882490205143961783646823222977298399143543941286172302463576475647800178688325813009288574219574175701053057705830613969004171337398256203332781474085307901760224476165319183124701786907816021476299831552011817256984717159133060929094721092927932116357491760331861348263691964303168038071271266954240199587126751328973842121421277685556570663139807284014729369671072369966533754055588852456147817566280285274858232344801992308768786484115045351758481584510234256063678898087403353379565742582084310005671991426453908543785720990959741145346719738675463458211777136938119494325223161337214243629078655111604765650462741440696872229256244012457107886620490425589725969952620945069945414706828424460529394672338705181845186507044669905200674056652988312087248277089998959879427790100698046312652359819574230411994619723080045237881708945759938940044347064303836872084813060659355261321583698368598971745119770035206092512330157031097837746648990506243495437114535700202364826009018645355820610730360893658874232238986953390857476259449167826209995689527779130045869954643895508676169835352483805516334361133876939769547801442088351560273704973184521315724616609125730128148251526561739721362968347329750514167696344793667140138613798710846228519457527623490253810605703361600729872825721376570467246031057803849784393803429850218237192535938537310550831643778820570504571507940842879308201275429050069116736822517103366045083107024644949107371872704584445257016956914521500785736500367130685680055409632689489914731289565033853501625603806700987233558088841316220029343585294906123664286349057574419081816217557652892365106860215627761320413723635456042010592140843744754778631581769744053788293218493290321228454922054373381378822806268119256249777655179177763164559543333971071781269916645684029496946859410636109648273602413355095096646648093565318431091740292309102664280858270575295000205733233769968303267085686263953105363700493601358093742803054421753150543843787330291416878564128983784326027420695001641574365476644799360020506360310864776349918149587434254329392841689272815575869362352054931914783336626794019970636722444890483882440109043066026950426954051395742072354656108079606755583591847999681706711487632239727882957031071750153835675403894700985081049418532175954940625870724497262152991698472759663994249182470037165716579495520772889953802306660511853569120580761806051301265423521873786086138436184129295993070469827731262769844910482137659096435809582043318272856631649696687259839636475380755843510202521504981589489393401499354760894526306495432811344966141366157019023029370316885502424164740362251477820501249976055305490494959435811284203363011720884150974035386790930653638836319709675856981233978244406186482698806007474322136489026534637391761743401425663151979363918743334982275692597857332922231153061119107887864693458279722602922866707688741382834052316239626385587210164920890340395326673159571594132321633262797411716523107021194994947495154706825108955461546485539581662157932612336034302444580335088373386616838195043862700452853968019728409733207988810041090372359977317252970782763875133933932630379747886628756500298995443382913265313405409206072397786643552595746771254794523291854841039440549789659905382933507804291312588597840717147112477403870079125454893285345504064620736961359008997055800749785898959879349088530891934790889287068650961096840301530815480522237182131116475355380757691529978290799888291598947918730234009599813638624482527567743564108894152959252489748620806811775367189894005407149495255444904422161826261305177896521753031974161744991562321400331384148273807574021953087202933206027308128801682033125544597592895728197493398543205324780973802778743243883470693688879871909441796999268226120420668668036410114615181671039513434862950758205504135877480091095223312027352563165585595659957482896723549393265887405405052258007182896118256203876300334184139629345830068314219881647748138681189283242927188514234112679308598757385992419683775108735885887941810927426452906520473686172203162585718707009158654378586253279862060284954099694126599877700613267185689229136309393512889577212712245219572620920666283099481064515539777877174482149348556610458235597166615561962871818499092789191190953233293264779573415463529868073703825198211785798570814176727619496181799156991392690663256631032895042736500564235401198847546346400611567879479752912298876804607506711417493547280587045141606729048321409521516627120088715722900834029590631651030938890704893171457304982600870050778278222990461202433870881535823388700444972835997347248344321891315952981914962863893843253700726204083573384097197229873318410750669550313044349331900647886030556313491305878423290813663125697443420401161308119079851803175450765049296425975473727716270484843960120372977615735101117971561589536066500787252670397966786039718296513324255434138000463096392166730186945592416904614669629518570937714700943146669616700361748597552761149614684857003038589053173657221351936432222761442038305264246219761259872060019084036647395371153457860340997399292374565445418630678247723771788690543356146633352184619192364970580127143183938067989604418920000165864677116757810315048174148788035685072332753201735551843469210182205207283307239477893444920606729145090261186762071349405120697944639455767406002066143848164184746299790369797632313657122243413301219349492810250496175810677437929740555692804897205296874548365694743070624685603714019005427278344871575260384615659516944440456885987034619186111543592045045481678506102859257534380188112039168814592854835492856392960475830944023834197274044349599256545235160753846174036281402399167584583878545463791487580840932454694251345783909775893880400170857670518573323557293856755546237763058309574894905272871433882488424164773167321032128744519925052861546087942577882165888172563280602899037531961526062238710440484166506736810397884037503318553941962579069822899594374841351123460968736422675255524574518573571056878114584258978460231936433756848981115786579992710823020141341384700988300451474538136830908827499683535334009855692710436455486252432080311995803922364030024644767153686152930608970214972983741782541446302417206738874390303443754285174870620196836016749810634162917769299363251627021588102552807408399198099448620029746613385638110436170394603690892735288102669126047936927219964101022911083913295414072883851380092648039792975358398473481533145144473182042557996053389932401768806018754347115695443125548441279598089754015419954613280510279781609480607840506933605311390522468530990356391161151177644644400716298883137099347328388186132572086812294480574968223349787118311512206192600998432524321811253788321485817761211894754754816319960585204452201761236387583359315855956569581927493935227979193618531567008439444763518518884409297238086529439933800642427797368762348692425055189922171451848850356344514085723566339357938462231010672095743968065090502857806566510185831685970434413613577757039642283758679156597458864955973246312379556104867422199638775172817454412636055331391160514266273669752919116706400831888295172617799733010962316293805923067456670063511681876450525090392801867862460175244850708799591451187089736432229887058056185476420060514798058708371474273965440461299808333518572783700109404782321811943841027975200990292579889893099433488498949074986861689421990806197099367103515439395922056876404937470411038606534049904981543886775290986828373116269992104429704581487112831146955350645990623837368024398633061065402414126205829961826107487699528777470990177553074324229890042468146635659655462195036811725572738733771110312875723011343868070047203834141145973125950564214534599770001969705053135944277075596950732442474519182688641245587811264099144446523080134412795336684017438710375800774420687119551210107616638040883400372790291885132161328584053207813373309618406361366001064497664498970897970706222806099570729089428999151643457402200396127169395967339559167234232937106194097594967916742038537266553271004270724292858316724729680310513116136667090808722635571118014611031183320754912947543632357581021990539466502700960250930873720008654320266347463584936607074379658827491368350243857182988351425331678041664878121480020850979602405923032673124172993751233098445054378853154230597970538939004100668700606410967935572690304031902543068287640458899886668331290433577203995374342613504097644623368440789895687685523286340603781141850734409823293904375981018518302786237285306625524727376664625758811929450399026715523760865062324033202047735194573824924672810601730810120145638937176672345006593968596788754357958433252122914533784919161713366137161554472300657113378348244508611906922472229764365318166778112327840150088357290953455032032675387894340979653933638830003590607290253066995272948507495188748456546645304735856908452103476853830515066769951212134950938665299635466672915614266033104808314547113380289898717762037364514689762240223849606327007628868427361423500327080179917301234985704951472739537162874984227287567786518985432662006074046181673819714959580469244013965861457940782448056999231312181846801325500871982739705693870689851220617731864787727987827090208728738355344683836940817182434683100945793127676614341660060412747137902040224360990899329208173069973375823015029385215155672976198086191017859960047806867495947627409343708415129066524909610378276184507163211929992022195655315238545442457513980619710842478060312109658153684690906539262947422847553726788242267419951164606583847935224322560920753718345533462616938889932932692325940670832479557422282475480127110260724515571908577235955672090255004039710005727216886647463998953779096611965747577021889924886659531870321762247801971515950222915430442420427493111325052818148489570179552227515261468660432231194917486318826321323563329725129806640815496361355123938749297137425607690286879663051913898767966973914208947785778722266196083106018839095186472099183070395392673557874136835998632228536819112319854181697412800645684813989691745239201349427606057608624949294749298005743802171633736142188252330614113499549682456128264023259414329613933142989518280996730587875305342857856083496409231595832659606377827342313388300049181675963690992789300437111141695273628370643888285552655871250278423848070397796631043184984579852891617721565570363916265048292305996894946742574322499619924085026711508259916869673822344336211626654745560268881883574569709644282796122869107116183740147027699171221906103648114248928205368103584331702045269108646020625374347875051154821195531813523519489077605085615918094756775867734455869568682797559357672670922236517395709840961225311398490655592595198870563227273656874527585028900613425452671809977696970293699619686065751594277158999311368731744852190025951255934348969978084109708607631711305702218047252180126406832359418869494322828169869885553802527824422509323526984971567426611160600032736346190107347425471400823300178410313269822306761349737146502550067927902744924223796573942311863107538738953796806313628897419503396049778316340044669525277461322226343482251978173536015987712763211889724864994268891898576328313572372717054709116646912152083534521800288532270846129456499053513481231219151304910148926735934977408926679997690258611301969342556202710657854075764278977577288500222687041286311553761687181097160574114779164437002773679997736013591379126699025121853550741953265360822922577519332776606442597396644120014907643705791357992402657051495828905896645511537602411541974836565875450445361814122799520310367696359548622178683169320264688808896171656038020466950234844072391598715885767633382466874617989723640490192471982610231137457566073340274002015989500818104958432042283954898532041014539640707209908585412561032455621299188787587276473653381000502501732046100259383354274554501452093491924675796520254391875364511735045726335780314156748237042455863098050157429935396052871370911213512597969315117228446418511423635936330382476552064568170078052425041572663048944615410748558272041145007143574479788935018106550034459316108677459770258211364295510270148110563893315361408277898388017194133429500442368304869705810906036286375219912792894829216467110357795984028669535661552939860291969269967624569977138275010355750197238684411499748967396446725431655988488763501332954666900172058322938075609261309715489017085572221939946726420224915564933836354926783728348600142269621528615373535339103326196185029864087331452684987928084031268643780915975137593852380181121055381612329969851738578537414292554596388092619334411096994600049348142414096025468599352888327298182394643739784513229330926257966351004869161203215500958273968607762101401368152011556003587043138876875829324884404078710915226317683268351358782775400828608122184219852193108319944188194378206034294023740099427704660704573345686793282870128542977082953925405912078828456598824175119078069398110548402877411430387779433805916300219762448520986490100605665360214167988614112819179835067975377550573955887003848651059176870606828069853956626734585746004106143490189548369603819540202849391559746578761147535201665954650505989730660800470493626264764328652352662735866129416164781926488673858137649066775005135735948805035382387797417877766746343379169999436979191253865274758588294495044667881571576207044291043787976972269914400506432683569997983294051990981256515782642778470894825517720778912180378335441107698675349109577452301103822565125612505754735038605695567426221052386932092331567867993430416219267135756839307144702606887205224019913846547820067014026949896518504285601276548454807139444908682075969809523565719181026355014726218400516000264481210490590137500112497045927776619409103374359392746490530107982612725959432699316337713345271142311248502298707025796086691863738006930638424246659681787866550126789095975323090758608955170293850597044421486708401079259044151344609324324090988482643742462160981911513646754404940576062568593605162644545664064910389277256184593370926694740131328417025093131481832490943682450034885892474406109808005944943017829824077211393637161124808640514054324819157340879090347440296190328394643920137192852302824701538394504019803179478938123052031568669829989804116934592540806887997638374319321644522655304910603271290870139440318231952598860087305544370994380912134830332452958538257146591145423859783617945213235008874668516612879035681992961868651545734573955367560949576205857723461415699586906056340814424629416293259981135944724138525614173446234847844330790645363175983730044200503298017519947725912350457969760809643248784297651900966061483183674692153744700534863448218943077942914198658760338022665806660261979788584026160689356885113335258340033348974828870083278685578739287136684541681439823131007399164566614757538801534668890154829814954056116328755969671182556450320368864601900856987717396671693705778233425998038561975918490142467161696047936199423698909200804363866638059767563842010961080441284006312644996512112413895016414733436759663248509077071792659941056217669330862752359263966037703787858365157855715723429429468078486890676073357497670907885455591743470076708027278390627825200841725033350346772206697916427936101997115417946727533069770916284225419042561311113199260713470872091544088285245758915330964789688785989482143840112166837376491916676043726959465089700056489645787463252479322775030362370527349586890496210277960084160647314710080523458678294669506328476495464841632436701689400892027215736789781102802093765173343544815025315196868695706329523086327168819803483197375375628805924794175485501640869205958788133823484819035173356857392951804415495908748959404773445200979424211141771138022817452657038783772267306106385162694612407228141258526867735085024658862211425084501312792697294108583291000149068274251875531571163804256886359094596546718911894430293910034463989563766363749102204890924551414658569622018637290861200243090006146830175882186829648732274144917870063519830492799394654723870065846930850881712303610885484652600137508395901758058767608879690606085347615892913025881718382569820197053223490825791099204811187362009327236584928058647686777472311034837142487586689213039082102823462695465128735694835093566221393216815792609211985578754822925250150933173419621091049241931888149429185600003385917627875368047813846100881096827597629976613196228793143119732132877780996692297585608412525870175291467269104787951849421607478724294311028610854748293730569188277516879026829002905963045641301053904302113351727557715373219515743475066456831158346096267657458929509786402506826288200603653508782338449551788688499436936321875923684002360834443897639020050009812802235944209323280278244363901367929352194390942441680811230217983999200139431562730123134514539115666858505408583564614720521255105678406378107071347145546056456393493418017430935552879126351286417243446786282128149831807090924389898117507623359658564519007832020118836526282575406840468155737757920714196618363526841049288727536971327028516792572363006794933786848176313171751285890889182608332522257877151996950492082571204457026445456488345045614813665588106934366837013014802980440180397529635339638317874423835202372404377375550622808301630561943244656473819255812918306883816549633685032047483705878106073349952594587106875847315237354020825874406855882276712997528570585180488064822424654805359380954241382010239646497492416812243241219041614523627988257946405237070484781936112785982888870671623438827571589730189783719260673595644917377962710740583468301971340909138719480802186587407713175780275780077387834246469636044419813913601401797393936086619269536166375886199728486495122842012248923815123720819309080036399749581024356103006890967853997261692730865247349008016786538339813218239156634938579890554335028756951882921165111804481746609279983943934772231773075691343850976899826236059149690792151497765888728733096737273959789080016670518968411480627309128716217673876602220538396541314956142557057265515718926705383820028342973723318957861409144106603566096634866203357153912166399588041761047950021404681203315849835713938959459380009964923337242179085408236434297835943276349101630430377977086471510514589469614371550957099396333238883845493620084234669146542150106900647846988142699878978269806884126684558562987464797322697518367340445300985840049023386573594299555592504010769842553668711842612530000797576340991870054552988032449103754203668363782767259032867196169604434000770733572610100677286819099873031941850568392756153119157045182102491721386096079662852652784056646367109944565983730891661314666739215601009003078193051456124825532288158318080954486303967964688368092547121024542284337727688666962573671667804573118733965032470363415578559579697870714980112404453895574340956787246325420853886518759382404841863121582336323703402964169217066291573246609148192811659590453829082297402311937330070395961802426396125973507293755006744562129464840115305658960738868381252992126145533259818622129713901488610841798989660238685734029153905098099746479939635683029400148157776498801309546209140493831857044716671462728519316861012900694931533233165070176932854227712965211283029725211745019179084404305097961432170549710874123888519461777269656529665791114777913240564471492838801435784162605708329198445579821237806908595678858555187742153108870656145694102766412899463859602794157691879774008128802279448755305674372226984722971660575060216810662614948444734089202607031341872901204256459007326153626620514229954144220846491564304309691817503979988148566189335360597880016428588545572749076940839738877542728676602825222910311393410225214738557886602046580536755007143589414885189548859519490119004514918788329744019490159291215519465921718063787436653186812709819164758982240823731989267045412774217655643866624525971089532296008603112798125753391113923455084002743443428543883903684243413975797904338601531165236254920441820516659296251929667259638294424862440240629527754487260229153547701677382241047793186664071227591072992399259405207402113916922573386899387035496748359557674406823854196380031728806201212482294357371055603147463828515123062949528358603517395697306820400088882107630113947136455208667593131506564526756419681526401046273745111701862538506686172197939318899024895060562342821586688770569056307388984653514463813670645447125824145842193199552018530599556682862021610704830954527996756246639958806346585133156225836647860905318457967055131006577640813998199159146930330400541569093086187246685763730731489338048533996818929240382791378153739804631110686216866888022134577097991484992565776252621961392994347238319963779351163642428682788790409085295161142678584082422862599605994142774357127232258426692219428142093388591370195523752291779173249980481312795950104910477826405233191462010501508318387036591206055369070359750483201011853321244135580715408971344038480816720896852890724675167481477157522543459739773453743331735729674365891893745856555872968152705600440987086932055105575794200603384244771465118116434722089603834278808484950030432362218796283816939390334826541077169760687843628103244640937956215494968168671133187116241367993228640436539649408725878992073037975791285921872115616059038526048803785552454317653441230659219224421159028157448409117386455231723718788287187320914885132880840853664147223293129714687737750310322840554103715881514763901827243521004478541255904205603796792975668206304353734691148307395806509453995197152598902681468955583300961054883263222624320558630803598284332449094851970619161262409076812316973834043064456458743602561384485022876420237298043632025636920089034894088993251393128819500232134806947756548932436172651967997244813842713022566409533546804937070279960474708482289158257037782997460462943581199776009221324014595371020515629754241136163856734634481958526956106540635626577458592283578292846034299923392705350457170410913922522924435873080308973317970549035977588333317751075419349622284908616091442937581481102602940354214207413236543042668401479591752385668594216324070063243846317330164387768545360482328582395204152817651976828403418993077829618334694955667208671284355816933775475761057842151210426797446070167212709262847511597136920581628460727862560416983214402688163622356814052495411940212658431895023687646123164416968563905994590386056129213907456536582452654370834273467043286823860404029179800540377122784972784506708833465028110861111526752195970458177570415579653858045445519118756892235873680427637420649790693659789329473846657007652891238458412448749520504930266122126756529937830256638607861683511567984312761095595702224761183122511409439821833120911494038443215620821988413197533791042561287400719142306290520516971261777617100942803611503413306952207433174838223929653266122923550640957292328518028528467227957471571991211943851953974299772289157507586255559827430101517076153279901687360441896662834094872511570719221887624896903945036854505768135487008063878040667945909956694607298812757199717382484286468958962364746696089113069809145957126540412057291237211949743460483184305610351407140536703022670415567414194358129530085667153274369696474128001879130068549722240774987203354174028584004554433525472725117066204479623448137597132179150962547519380774703766738838931843962945621257918883655354753314329794174685136998511044318325354077843400092922245844923782255361014978728480700708970143961699375079126651119265830335498469416563194445140632973996715312787010102259244712275193064285071557953684728635898431251990122217624755132355016084193462574615904704004343533436758404723476282716816473755866333687769092830659071704503506614260233325194982193663922379840022430367469858325839396600755323646032282306071769768241416805297125362888775897075933537204159200481802461317020861037753905589282654907638411382823287548456379410822953761934367983243578353691639801857847280698279664766920534683183484418417722968218177185762033105421311693248774165907095974447283843784787767637052966281887758629991946422345112607993683727905925643080576256869753740765255937066348235080386808205530802002521978643998906105199501218385400570383274442489413799916904138696723914542416368461707525395469736736866280481714812009036904136389454567616797552835745931511680370617369195727586324403784620875796051877821510390036954798777802767516188718847249404323416305428370838832381590137694197138954704501587015479712727970432311614407755234627947944711682206426372685117547666103603374088864926657721372382480612470784127644133492804126380927774766396603481715403030662107163002209861255943960067071938756233935146442953605619729226530947832242443908374003920382305179201855412338542763735579456391775720479738043046641480403441454232384911046339080548750440534915442449917035642915400837670020389156464946989717745837119896306651521260183306681722568090830201582305664540686345899980650246034443826984959967339017554241367308858130809347858497461142936016687032410583933914971832609872550290633911313181340279507329006518994746953576664259905899069959804116127942691519145079223785389531768990615746867796475179763688520379464752645703032823078802239619842122580273878397953573192654991954869710584788504084456896165088120911041239838169958124743954512436353434235285976572429694731512130447454650300047613947187553298966507551874676593602676296163255105812428863819211726847999571177225317732732497913975474189102575288808892251095437785734116764218754208597617915625054224988236375137287439705718486691317703715123656599991006414759772096325487709286572381012011668500006660866593399143285923161313975781585170861812932631309241402784771709084320777267256889858652759208439846425906826853892892649440811667955286489656285370903742129755630263019402268400608452863233238239982562344460253238510276865828211131728474607499569232726004382028205745898539976869043946164949710500627333725147087308360073745188369888291774576605574174957858194368624509024020092511604505661543249491912155895962611394977468760493980075305218425880315093849696010009699636323133016944920370019854842082758791918230732390714481654325772125665109496407675310754547556721342898810969865265893605716923136780301829114208911339416738936882974505796298158543225961599565222388068894462177090855077897501719677049832281143268356229908374149422024934009499024117075347800269314059718804889174869745299901038908539244255859125582903154553884505721129078869056718405745945701026643218104347699748852055141429012423481466512713042016257287467959470344173745022898774465535988113731117291788378706761908869006079433737862861961057328861740023826049495021469734717427240952011359130868572935642288069181417327049257530112218304398865561999651976212855631600354290773583283121061212494684614527400319599443109202063143313528545144220749127054794132737059016718531060422229763117409355840982263900236642538357143785471026180698116922622613101794170162066260214154989638313443104884381288179626726628653181492075648247449888801688714918267620964889296403521410099687680357941674350398588559625076634113314606884217897235404979431702473885522267756456001355675548018777322439613809144849536612977917888354886841426972815008261675919266534703583741633522014657512487163851944660629963380979268304094300888021391187598565767446177781023057214308263078801801922889251697255537065889922701626260661543729060115722005453912991043459231860257211463054518373650790180487497632391310556140190675041816917863283555343355709438765687632158035455194801144918044424509745807988528724757667790888238620664001545728727058080960818682534598778393549970100060526309589980936903037754573601496629563544877536192364079959037652590229277842171572551338950150911436972709866947795757706628045579255584550225069945256753451202300619833606940282734299214516626412994201316882587711451613863488448530737332319884120385024251619902393859829218195082942016169083465948295124011245302148088714251624804595314244112471915732213748915789292260049892666431419215039985828638434739349825791135567427878602539453934649701343366180956550505436013058043013909422612135623045184297702559689759874824019041461259250665186182822265584758024380937145256042440664744119978641314878734830232418796990302776460336939780663870682847645086953245508705854609555195539291551296023364301500387506651368776197035344395311673521992692392043332140120064457577538409094433249266664231098030019022173189712353362441811305431868291155137208896460160625612532393029397688797326781420247601313008635588179603927353019360885850923589930515995368249566557917620633468490893574275271701503461898696540700647460874687358794176450992367406472469219680844652466460057267243936088146385624412835815287167250654659915693059789713404441919560743966602886535437071344369461640817660182465147536446580169862102309182612584323649498012783094507983674601861427532199543242270094913420421948954706555649944984409882827313047682887140341192973155511405035434018184718684339047255760783434420304840410698678150864214342300071325227051710991079621534162908448835891587834924979918495278009934600682120202457093171743312037911282137273604265026356290835318951908618784544892863887011861956802888603441367117904528492988455926492227751132853054577441593000582267068870619151949019940469211418798802375055429369755951142093845019690705034410302865794782626797411419941737976229494568366692472480594134070273312910828053317413124347375600348389947886038631595548089077349884660609941196392123044734543959936051797227227190519893013402128875105553356759762082543086472069960782218104493945014358022143450535222231836154599821893387335696244788925552415041087137726545197318750125594990914511713254505748121438356464080209680697454412715149590185808478463440812142903607156513105950729627742540659180897276923320403652364797960953911906661209220587103750529207540563751264915111037404309895803588894477683477223468553430508591531038241423899934074454235420922844185336846250712678349544788464854930459778271526082685978870359918050865682112219618891832619589008031846017043922794805631534953848218205669630110992314554663490508648473004950085393130375023253092125174926257976103176424968591654066091501483369737169020848767634341109178444709884605123112849871032538322366533250955689287693657270351844967480137799107708291026638081550899857012979635022058154569755485090744608639133896889445210746199477055553452070204844956203932974639827863081275627156548448528708212938380570463010216698916641159481665038534666450229516042729623619374604549076022970687162316911918748885918720327169849526602927456010458216916890383804143918092658785966446914938378018465567094985358353354168998479530413504327768365321149962345524326336106853265728401507679511380848545056946698492467373568049313537852217084216953541835584449647519342841635737127411422901192762604802344917180645678350574768320656591691695923449833439486103609405493128903022623487693356992842120397604788947217469824097936408435602014412816287241898105865086085336808309177275224133904467661401891357052504631762243287975662829290552392696712691290271816520569660725705595680834077158562358743853444137913050608669604612659786223270259994031314261233115103120051336458254249581889398876867869112486718070217991206045134059055255382768001228132468743444661027118602765487207609456742744364237996083564237660739257293796681401061704964150248261898161489728023010645128860860122307496862546652983027565040523615145813984444956364534719756533069313107610745914262633512006174858589951922332910889328250004941541044114729189447929231288443163595229622589127403382479470173010925595639807441026898930340628251934653636022028020517345957109217248955150837460901904560616856619618983252556980418655519614352068327248510032435337709816759574192018183235438915529571132540633638646300546127847524817847645901230462056216426161724240938349249830194487857399413985575011658306900219002409440234013085963778037606293894928339874763662193489799818733605346277779133174717407129358871711776202162248943841211798751682286649780595573480426516110190715494460476986218503106179737503739098894236004896331299557933378623847595006487925106453570103433601318510318156949447456579585740110753112411497236378123052799617243293853482310566783583117334114186199426871887824007211717155070048569431106939898940184609675724333675336159965534767713976036700155497701937395916841338979367978839175836898964208987833697665274953030807152383605514103661398505449692273550317350256360636989917967776866173973241425606387566250823151353308499485037838651441420510038549393306185033481116779648379494544468213767693777256591195178789712190221030294691102706520834095722422471651822125921227549467354845973952855974708793843915905424163761704739501226050728799985162709355063861902927602236986582862006916037001004439523065716894202333574623186614533764888696200046151416423975152112744427236326383782709676875652831572446913648360648731352894793798287881683272710206222817683504396181976835002043297103858849032953400966571345308346471917312380437468762587537390171824715544663592848087889040794879666191905928275592172543282039746722570121064784271700637259304096357461179488387653175366437825301203943494950513886270786921254405416078238540949477003243579970652613686532804204693837798453959158558521724542769363713493560794166142134686514567895395575120984308257853159865219674194663157052637965699608135798044400793615566421881190983920584254837343310416695297328079975683685030603275703285051873691237206505376619873684938478146484421842671082875579331529575963865268178310058333578761431742379025196973552743290521780290775244658230342018587751605532881005142748282816361126767964563719090449758570275654084036482732943320984879537266541426545397803022037848807194022310997720131372639343985617001225912814649564618613910193085850538843476991305836282857570536228846197627258784379594934272747237586053529067992427895034423964797266795580488608456899500552935757471452078801580719058309896374779888293159184606085104657524164079267531256529187754995956492482660069950746201216136829471730316532587995083259177097895295931430940699802724034653552460446919780196549383414781408407535954811389141103069421978826308910278312050467375400918674262682334531752314644656773152843873829286728472290734031071645901078516783908980346083903489537578708038317141746999803945287929233949691079883745006568691004243171677774139816438666917378634119372395615379675799406760673059528100022886957343250855018629191300911505628504760122614909127996773293962086593906333478179248366722022007492787679346000466397469454059322805604485498807995227001974381336007531450312212011079980761550708514084070559287739123035948502890474359047621523243228341241648893800070071411607893693338454881370150819743243704159236817205410670288539365274046297317215254084793968723183391472207403845549125257524563618635762954398308043651831307432283202570598747972535594533351574301541559734580933211200894920887409388517657167046518149575334689493693713123259883386392319021726540187234706832572361770082809411959723008284204896540698008636996936783918383371768377246394979946643982130076329935856239406884629556574911994852783151391569708157738614047806270334587569196809070208583261944641045466392264812063443542327479902612492284928794351314717776536819370260416465341438627351175396400482654999906649068376565052001838287359847088283703094425263593139708357107894392948596523061736073074096448457816923873464153241787213569945589329958629906956129066645687136626261463259957998839778008254449146571182437702105137127078870084621451751973991878773386390597486204504844951929907527267036999480925743181337761828148143825528891560567435855033615512897179389593083581636817079692378125000012098524210495769841118464774047442208411665642465511061649045298123835205362023901042436733546575905479254637001031184333819794542576699768101714848797535784967743963664893553176332727747766163054496982125952218257282048797611913456447024911676443957834939495951671226932373344713706180663636726014735221900039705957000263487236149078968807176311336717857744140379221800266149188738591651817118515299996772958962011484464628651084991403671737238612464915995237995532421529189876164916408449252328473442033758471878396296309555352348855225855291773738565666715346786123866725186737037533678058761534286848629983374369554369238458711057778461286673738727939787489557487814845801157920645276660748870520093588159734828154215983035046537960515130568604648121586436279196603880308668687323247308511419813478175061570300938812603272705282349426271655718042657795668367689586833196162144364572521082991524543651807578723675536342802836641723465443880429661442442188125863985437265027133552244730618493332757498562103269837816925589335232595887418709333876154154998887299686266190999852570861391555243323818832866469797214716713715327092480008536683178404791663202517197395497096205924673752585910905420374456333609814113267497586074918760243701355245284980563556214212671422006635293614555245798009945892579790286876483701100299686388242638530501123531723064599879070378432487620214519294694413670606282353612856946452696316078903052051778286941347309241207590851616368018381599177735468026771638789628895737044762599672498264528205120736716930333649267251286040257941840891070728011122801190419385353122565529716093280000394344273909310225824266856772703594712088990529521775225711184171751188483007779191172442661614681240060505200952876022600568035036230081544591098675719122214238537910103135146033849330123911530111926272289610460935347365131479944319500519104514456748685772907908681231101245800997693208590343284070698766491675339579820930057857460508987149569399611703926463248436301002215730829978186666781320622529944909597763958581474568444317836038295167721115728930818917920883354090461544056151872313178262474001402554759500035313385467443147059881361206946135383305699181529351838216622996094131414956996225316932893369767554309146111951099195062188567273733497140818672602692336822838169912989597739807906621544318655007055872651236271019444695421250492843935934301609764726802791994352478439285094721733852736880680865492522286559307640134307007125215255691154534824674817489580862677067869956202721254826288223271926050495740358812857699126694680911639001998342584413005234892812903603902501313676553598335396548436369109553770747189723393949017956502733357469063606706985885311224019970215832156880863556649336946877708452764219135505976499385515270624211490492622105117833248736224177482273345076413115737776379533785312994779449553546605470234450042036057347105059034555416705756777470795794356020281160843329962595282419275117734293569192492502159727506124126506598525574930306608593704403747183567202477127735070527449858981554635834298603106888704403511157128974726201788813797700130385479855348275660519130369565301285345326051729714635555016773044308456465755371304216665432984351941714583286368775420035972481370092695993720846660342727977455597897492799763603001676948243565291241275424624522492653838756023105643671064231775160570552891616675283131086126601193802574499477549148923744242121263169624708668102116801237197422680051828138389777903343063452236483922681694781426138182772993895763839591793666777606997668580820924687143438252117964167279145691504791062469545123298419981512054848472533479303647539446097226076105953144695907634761345581393231332496906589440550096731443420832244104083439583484157378269148918428689766245471383552562750597665215985659636309923503125337734372854927019135315729117639483800305288227501641977703412797808426797178487684977165676323463498288796913037523372694949383813883045631632249019733499534169181835193903432974640138175908850863387879351188694996893404300907175749735660534009829162449143172489530015342501784227296290603438164324306224046299478049809172106978677982348360850363559071024018305366096128100457636430080576052311760996608686712185075865036857784412015547284958218994972409260836316866679589758377124908023582498760751603602953547452773378372167175926927824949169356990007982903304088098831745080573224446577217042165384840247290531696469784569418961620034298903306648457036899821509516954038526096311011822325913408792199387401384703399656681796613557039611198287257182058032847094242829710979300108282076345896700321663058674712518071534697000958596139226868983223373218265088396421604510694412122580161074565830337554067448806340992256979646959125571425605218687117124108902955833946027716207704520905702003326011210028681961925236892829454768986975671465756286304180456759720643076102750296564807309299300877827913069330307754546265437563651030546825027074846506483738776073654537517302238989018394793111533039628294263036358271082678323319875391808146440493719099843178125714206206183318640438893771556983028596274761194098336841542741993738880736126897428738822175448302702554710068906820198955280562955758019207726016146469548473167414928598530016218080769296061059935054075342934402822333041226279387996435840675833391091460999385257316175099990478731093106585425542653512855951587434007733715957366194904092897280448058671071190423870707844568415465046897566742895406413418183427921370074180220467334798441816964785269334128727961010073493644691613937871672870990554824550749060609902463815884797649225821094012486883417130638997405201940434910415659942386882369320644923225655879806633557688714845918159536517726002223612441180501578924387541071617405660785836114057911300141877828304727177030504232849460960590096407811318077917111902784306353686509201125146770171175963879907115561048345807957352224321441186251055087887815919906073007574856996244070257484876278726196879278636591252333424376476178509916666691679142236091952269559757958238578302785707709320847030116409454377495707684231275917535754244616023355022771260882243436201080418100462739423886922106387269621784064026458326323469519664060128917490874014755801498994222777816864805689534703418549421984913759860936892687259691513038538950199832749150132239942744105197951453226212438930966808286802425316042320865366378606237876234043093856689153971632893480509836371440939944442580767091059394631562418599904653831745800353325953063003100464337927459378174374830967739056059103989263162349451028277580247704256180612692119600218280282324710848096616581051162840150580227985701283063353725476238063924857702272406251068213206645886145895140315585786482062063004844983483341313731471674091548186897610747209456596387811071645383720332393219872359444685600802732432325959739913988621808865468572827617031509755566207866866649173027520249616376981446524662854270792738314971474130953796001916516675951431360948391083829669630278583175151752186919730444154388784077910499481204613613739144867129094136001173086867231012420232431565529538303473545188849716333460021680939630765643934889861880345160790742322608153251774660896354405788811462664040038506368904143541286072608735457744980929714531689634111922671729649544031019170642719447328508911570228167408204250025624439338366253451181451388622243665687024543102745113938875621268692032266123951246672636160082770222284246159039476477966916306549087158820227187814664737697258598883785223167741325764999984436208345777370678800075483912311052323413250360504776035667437851963294501087022403520150223000049868347972223028568447950310768885385254935889092979077663498114787835916555088846423614125944081762219512513649612886051876928705550091521105635307096478799277211139676511474394930014966439906724306213280344865834473084322245634081157403954882247610003197397943989360052908441078288327736474203117633642032223036743378103561037182508459780270205107487313330895637363459859716242171414296278977740816319526675838436081471652045565604348600221414616047013719474955614698750164664161749344992869826886224663569448859133175856282820200633002778166058432913032667287704397584713893814321534460679091490443006389983393123571785840392315350830081432921842486816656428574674295996920821351340392932990125594668069972085356404435268949275207398575837496312364391892925736785004566883707947982714011698826274100872372129780072277314906618836045192721076035599558907169627365883858325655414428650763720842731747447026570212271908040307397081036220342920973085178154718328668152025655504056676887692333522465621323473970032118815326065937104082828426935609284550743531056937111637342841639699726383015542932789411975934622740496742090812607906565110251297458913578851262523211139899915144343859662681697179817993350128376609953620159598494922058328269715082175879900626142759079849684602771882889015910015161450878988787493278312322397714447523348032764706881961533325846152112928912466207892899360352180890153957633071192786617638747670656412330740961217633730986453546923114540261661176090909282643970200314690114045737988696085482803830959624286348815947572535969991055268665561195888160771702858504289911851939038300855469625224287261251273528585709295776674736623033545534242369825670623589302011815293407075381613460450586537091932867283415860248567206601315990095212340938911067329695604745305387814042410045743274953670946919670676789857506463131699313354614603705354268607974934967941295106827537204566250772082935809710332882979256072522526293595381313224970202144294106753093543275956505233659720475275948629062580010836118265406722926473993451698317620455749998696485654135175290152640744010753274052093426205489710538320318108441743495547361502484815194303372455192462166514650382671289159874248187712845066869334001696959765360920635289902780898547103695146552830849108914210558255503989456476798528785332703982336835814510171444646882399441819557247930739631508729622711267807385905716492010807968092255624898002469855167986374889693637970674323623545449607625740954731258102994924100608104630924194295616536195107253420420876774156180116887253564859846420258167586222334960440896518010564602377994443345455700371041129290932436574357139418816429937639259586875076706695151901994883687493542345614593071990771525100012239358857251430405324611900743223546472579445496261995139401051464859517437814615933514493220234388093393528015797146962191273197101488205721466712248386610670994377887376383431873350930548347243373332207901940824138162880815938441887030836643459411764723317095781816782674148547544870387185887264831395009106840948015485864556007840171515287654047260528230473204477059161588414664205646013542914621020659509035103717094285904842757449674286095991494443999543947127250801364061370294273014032731228002360960815661343968915931021731319070254452208467129561088383392251780636594877367137297848871441807420255900812189991826538386895675669887093112896937196885473582828219707619109135998102021726744142045313801205056972978960340906014228947777482089206947949616038569082114492981277533946449962682791415140123312390019719259795455029157447477805372377001152600379995699449431456907480747627035060842522956616682164571758199542211756431790492799776772229834160389096158688769465894255978456424873393529992389867284192488335187980901955539724120984422020466097377435579721193275498026841923199951308847548153893904616778336916098550755762619899688968459337249254809635962628390337844866007386721298587848604570267278444816136668425405294063942475469282138400680627943629404203302306180179636450248636065076864864476342790792041256436868147738045342562059822649374034370401974809452303827133996838088552851784371606084676043672957775264126984990984553279638182623497601627216166889060117491900197591848273715336999893063250236224959166200064975954721127276485781300708875051373526124392347371091137604190999020721139646722175712475423337418503146653741397310479230327001864830833705579583829112890676167828018392900981388344740008860011119683542033722060646378877601769565103738631758137924435825242942053448890690526712227956306749067516216591364704867282210383114651439226404949765578072276691617446990533480200231584906266132747861198394954063387011135776600894750160859617826191341454280993425676240205550457421855151957095588250961800380494002749766449500131001239386817986734082637612814950111633970292841922746543083725714466652088764866889934461691752491748698417076587973580438751764087207363270118640557752539311227591488785932564336866328729235963705138366474574344708436450762438983069730320440293321683221215651292064643432737619329641650374824366151666707910404722775334825929196108531096937263686992334331819368045039815242062502142045651008886761806065838290329538022434940618753816482480679218758705270544272456628413910904796046029581889175980876144948356319784440999951362107593441347435379993655241028405477836474292507756788463631703142205913861442178597420448970563308783176292296012948159261148700618388266959881956589198482984556472741153785101796753231655747955210559198130972337646715965693243633397242318071507844881445911984062899775937232461860924983469811185119085579100465382489724183626542550431813052407784562894032556727127462962752698740274056614311450781809976889941617007150600115900411913147225889361412900700389352571482137606582201006952059527204766252346622962377571864107313097783503650177898616375847794439934654740422493948433466749873172657236184653248820279724249729947395188803478382202319626654794943351396060108137696191800428025540981713332174891540751163728597972492114167431545581335510351695612417403607758815267147430436814806843431168298168121348524307472927858259853394829477102441436660824820000278836748020955449626734197454983390275681974091074025165640752484184458110632163495391474296071587779603754193181087350336084394217537581908311767449642088524674639374664655261006588466091941250372194042224800244230313131997580586189783750545537560638696750599268672183535972804262888323013793901385430448620442008247716596979572241101338063561236887692426844727528400755008121136782943938299876422424901900055198505963999852551150167058475914928388806009937531901611561268995918429986186337753450369389568865248891730136710415320101474679174397307778111477686080654659843360550139916296655822018228388152520599288116673733121734420966875471953841277903248627327439934913798214771815501001866781176947241023903240001847958291528202060034423754354747545928205923789402101235191629427629972474004396571963023164160704809297712000974207749593244633524264690782062138233047184249728653087336718780973361068034370194240926231787918241388705412437166214797684242610490423284436938517816372732609095086165270767718290282719266992903727681593747507173411127646473860683487826737888794714970176229708561399484405774654800095177804317202831724719945088766159707533480473357976168718444362090272667113702245944508862597873516019717773628356008297342706526890576101890992378403515543467693067325051963384438064930839535567546786406636895917355104812106237754089087331159322028665848546974222550625913398528880585085722239960848985828747225071533733435125391111865789775896112407363466302343316192269765753760090696436860463295226060705052473393473669673191447191859595521671105487236932200498910978534062464489500139488935388248030587034167408158014849918038323278685552594601691012421723863549077417465312017010991268209236413915488615609583211821542565675800554874240043381634987021838772859949407199245096343618266192138877162173448416903107263937654808223421483662596500418965975516175573505097010055872225909043992434497784742215015970486261897505130281472138900843575591764959185861707388678030962495916539191386509550743457251830357255551886677764743290217675850393659584095663949055528775842270731302216459651833034063120008968396899690831169679490946206238633024808189197672308148651842967486668166336001156390379112524152515919960823384828447829718703425764336543963092766019062770332777468291066290723986345217593931262337419133226082438589530589419095779971006421016798872363136675616464933350223736892983573633893801318766534637527762238492294303386087841801775918477888112013514527250486265991226035312675402225789328898565952569833125880706416879325089070850555797719689437607487848514661715672459075996531647481643350213036480487907023570758176250870623144887331337323808719645244562146655973392172325015241445746943636309878529792565838478125996587319064905990419266198980659091657855215850921584767097296996409862356380515651643598867503472952985942819822284977134677388486957103270259073445438364714186961146659505064605361576023745933815244342130906380578644716280310766184794851340924370134107970494777924010934700908274377859771005211391804066997698568602797679451857294125593725361244043596066952874610383810668207412913486038894642799783480160114866813936587173527935908000616764083006310947395877336837141841895569114170434083368487642745316907184426444188403715568124269708798470958900201298652603485920501896377904651787749512650573498846781421747226577416360354834375729207428608070425780096208952684372131455223557027439972399352911224144650337818625051121743393692159314471956554953902850042218298670259178607244874670804802909453754891334020831554741007866006661474125160844034164604812600900307842653757424684947928768289292977261928004707808375248547134854323624634617009053038123845737807081635826256289847100078994149927631275436092077137564809856072044164092429720222283202274862692274915607975088112635492137568093702577876426948212399106174241320346153692689832665167811982442954492995336627445003366899506223436339594865200547618032435845673879516755286869630560349617046143836187489723553936284976570113786722680064004994345527952570541027135239581404400041935832221868392115602697379705907219038269638227562936881346230181960446682572843752742298832580272495614729938778668011234288836666832040958135561158669046599259069544022758395653867951653002411367278944904682467654725989236485741191971601235977818249365518363472523993631635460256916254099541095896881665603664404590058048512704648267247646966046382060696434012932821821073017318720522655722925456093321762882202864130144675998888079742977466645826366974376899255713919028096372175317087764357711174108508606535440325194222014437825151428910431523265705485112558619954878509978921764288229962791652729567407628401550546171685355459768489896809925276747851470414907446274965209429452450579661028475588522579292307724722937904888996972236681115474757097572777939555025508872506608792024250009726490396586430863716453258289879382965730382562960422502332424783854116355330400932077492681381496764229555556533088044850114367731475752193599074405569096415466537088418126423927200519644180775824582782913136416788689502531490623914377899529100495331892703566751552507901314408734007199318359864716957242712395112473431954464320584304475122314361846847017860517317663907983654465299572894585375597002729223571063866255384191037422655043531678852620683304218499474630599773860699281222978348319370909967982238696197538304682185697348108022502519766479665939785105047590528978339740267894075098873642376536222746402051793585117159242802594769842357356245354620835872392184721613114496320959210608179738451384623891740197871691756914072103194356934490719631772028347620571905689916935360163936759955465869673730683965276926305536604965886901106476520110253691505078842285851341858935523929350144343689327503036503093482574735624809594193747102571739380533922836904544138060261589259101778331741857423163562747081637775773953685922305018519696070477819299423656913253742225242200065086548335540520447707052377339152653637046916212565727435262363280737831377418412541657055973841320950507951176240860947725434744163761892927838292461184568247565179664576295028064624929546129648125641777398929388565139544140684086785971459775305260393317294775489193598928545230452385308551218819572893915335633104810283855662942642314350548737091462930896395429236196651507474981910543983131412220452136967575280728469654163975725068855746666461709489592236042033488400489181088488672076312661349934906335435290692444466611537095768008500631411043352357636272616027394622633796652026181716408879092014639221188431994800689830105261070467451313257893543452717983814505030068543691018823795915638430689788153500308879117607311741149558766689985269611579535231537593399187408587666932559716873810914230315743416688693787159571929394710849618747404550263041933373791963113423683473850713266284377985952281898821430846722882671322122825228087873285369445598732781120755254327144326409347460820977557445298279249928636636293233252282759889293969167001917638388353075954898455094001262579872369594464408670747166138152668284970988435348543610658770318847260947006005699435048074871379701450298367141594061571239978732650222047210572796122319321138476108201560407220960501637488684417202010869494194267225945240670845431643272615897162710195002391069280961153650432702936578613112232762621691113737479817771515393677201320820401331572191631072367652009984789772723656995009435787597636304736273603516449078554211993953123155761535056679005823936322612565072485675502540326781691910603056983976246857015702138908573315076536979586641849853677580837727892424602645700846211979000659791574625683787303080561462059194378450300921084644753135800195559252929586228799922535560669374315645956279149491553527550781923472555788494042536750042547638751722712686353178886718798769632367126513354900063107512583590599813352731031049939767496824027047035011467993987796878415700454374018269077110135353812258450486632491636498036652975022235513177689980158467184221995354352604330762727500065957139247702581778704001488777279945200034544484555037508313243757755543402325713006987472978421299548393995271231342314073506979982525751502725701544107351570779203518235962357366700298353123357288597008419987706653415098101815615285038829100117021631711133758146867346434166594217891561809793742765577198112438244459436510542759973378889406400374873265567956093222907428311028865181338402973975557134410850419164642369262953159210463812182668893130230607716480529857625022025788169347667643563606428372103766265951634766136156195745780835314506807837576370334903153885387936059021503477434743414553293239949548489828596738615410265486520635518302557508256619187994745102962170109734742544976777347128847700582582565401285712579237977858636650202849614007392102719049977851863881932683018802274377603889505239269598533822392839037102338315429994861466188586148237867732326512353899292289992458155518592226990293780875098582606698164885392640314528713890652994662088603287166045817967347853402519796359961932731973752837784059662017299953302870196204817082969156744292764876019410919762823803313404924780072371268454792463738975497465682498612967728396858757747403274545778467030560664433649608955350125472339193131746923776918169093414687228692432696643632258811247053390191476239127200267752636469086201104053422297992031390880325933118410893156945378887305085040198796767863521698962383930526344943746533550775534957421907772200043508966835429493292248201425240614070577700192143955490971430712248547959475110639822728911757545235302681687997480364198452707528909479311783373707552131162527539185768688851866167302846547355385366917333537780495256302430887369504519764532646939528579423302296747646121048965314980873800188235012224596918618002694409535909159998444234076383072571114917098319441022957690632119957553671716566306982727518760237917514290866030797180504847953519026613281492051942195982019526015264322783221879521539152584616041290705076973410785512711624178279185756018749552541272621975964687767245382604038734414913839350852799937910725824497842856580358910602233678557149776856607801653917400063137134173845276024998483303978794510256454877703065701989701379283629050595878660234610588699837883761785983377005786720076856715668154814634528322292783843835137141695669825729396596926707264031699110347229520176347454531802730769699280763571853494456934717452035300760857394222661717990364368729957130649369838440069180561989925253009569273085067663301306822232649365927663441262347808074551733248232209837481050663473571855645247194126204657634809164970646860384648534223293522911911248200928357496223714390852300975350500496886740602540151886067258278825270884262458450171420652564659740540775244509248820228628128870935362096565880144043338801329928837036220845476095669389938039255634223681654727308294720048762589119625465177417661992717420212264725795674838992616708320833112674743630414197218419101474419784464345861024690675003622887686691504590497984371761736880286590434507573061126600315055387827097648939067022314186608042659145704277128893318238838977359039605318848803166356616435760730265498201262844542628679271953738756900064017596670530891118907061038953897818430029675709483857898974476815173722899266819951722340366973476342183824342079607488953556345095303723465093532150448628475567230425414160970876686995989262419777585828109752287033114911852491181047170250552427920359414766446931344010379705945793282030187071885467598885500572875916473776083866386842004964475664913440191925418230421417206169306136568882852749462773192968787957603891211518774705569314645580730154939224305199436212074747040963394278408308371085990799827837443920522852908113417770910540359598388279719586073881818337852892160431705902205570082803862108984853455891328165581112670486308317517658870103183824152100245391459554842363208220862781232342170990041472521285990879650100215017530884548996744911815245835350664510112839402069857953812892567444264638291954976621482380913702854394250033440230155907623563502781780245945138551803069401698263496909400042757455553211414467965952280860297492625476443905981646935399453874686512803457966805816649983411412984545692186853866575108921950644730247823254317557008645466722640610539900828133527961043428484370567998543915328327108722768684227507281624629853455341632578314282033610210843136684323885310457823194932891563890058905260012139477146145242245265731908765164148540001776434586247820383859235426706085849223906242755304123906888839254491711840703398490665339690860613826375758444159116901378849386982204410339431772999524211245903842283740841647129028151181912671914050624370067578665049499024668609190009335311969136841691059737262425854070381795570259715652396651858887420485737210754545821142837207568598359510710499020344542742805438625708560745828226430325171181838467494203846294604374800744481478386759574412055234819371818749186900747311672014314366296824313990670131121779258276480658031641598945784110677036873335348476123449019228600450902155150437681731118580459744760513900939603560360258215346040818726772936835252026173992887276852395655540250076936305522003097233598822073847118738323288847578021055238743413784246906916793232212644167368656650499351501846444199517254651946749261207775096198913049793315927225557690888822474444834313091879989162283848926622743687113515929041950329619171935336819717990995116122644358821070362077068490276810807833692748959550924064863592178178549303288559561644226683550246012447509228693602292874262034192352095867767183841348825254194812007061047461034269862527207153075244239722340046201391892643338603415860694044501021126405865236542739854886007300601822605424777300960597137587283438866605362148050533114641973973315029009874940067043430012772988703421989189302911896675417461765777313542100554221106873437129222980970551674270701427787676854069592260245504988763830663787855605709476887783306190544452688444471719469334411677318964989352660587476463270818647236710149002048561880546753067831534697940288466309982698393939007090810005351731679542363652795254858776230247719729490927248889282213849588512785201794785893475678047742979532016496373137449096819091676812790780345941724652624770181562921833672157767015552040416799606772004120529122009389630113230000976657652969723271169653269938991691163376404524050057375929852384821642214436391973436438438254987242105614460717752003711240312293128676871776403510138736687573028260642460648786967944190921788663798882083844656929554293882975096461977914452349129876452404824298529085663733676134970750285601577764078171870294464106021666698395491020619256014102911932617939159555244112475506865691853152200618577168925358489555024955597809113564079496954333386272600822066074257051055578170276650298994965509188860028203599963514179283540644188838594295502201153057488580655831815808140130374624875630413693713202510277801482335784432032389041951531485816088356024839338346835284191884106057424237979827370815133062714582519392327521979115633076516321608498583968244083773145825371245277087314417469349516933134538556444017387144131079596278701989103719943187828390284229092637744757933083989300151839864434260422103853366330337149283802131521361909065954245143540184782735148100148805013064373194357164677931577961662319353632513328855668025078406481528471273776360842146519222198953323786271576671683037472890781359871521435718264401442448993828405870984225766707791323901908157200312679348356451004315920449793425210340323331970375755205177396172875542426823554183005317751139955399803545062184118917155941271663456885577171803922320967485895929889556191362047520849669779164008158252347474989328417259022771626112871670641860026595248554869797529269500966378569927715719263316344808146239799783443713353520053285978803288099110791654550189056651679328364346012472873096906272593829633851026374747739083717866043216248372601933857864222704481556873539921474008695872088690886202864438979330675943180518960883196985788204019855246183562594506615483464820180186963708909307142188650819555137464552809835933235075188161653351430629120220428027790487058556440018465543915869228591077207197482677086624630111923599887965632539289786490736250346633499220623026326308526469915966048803483245222087386848510428451757428983331410102043146896972055215065335985033449493518930684389698808862481077212180672663615471097386186624389456635257287667800702214437262876698988950240884127118764340813625781628045191172695614615614040968374628639354284242990727172176883126666410207883647326776692775678548644731512520669861681581701105059137371588816001445893250645255648034795472710915376665655197638524030904546231872568335339324563887076774661546285911082400540520277012875349421999782902335753086741891976378359479112803832378240447888310818224156203839988616427907584680410366889682302058247541630359066516192057104529059567719134359415653717654396548807655889397193828282546475632944555024016106783866310780377351077362608778762946092296702701111022119041356994711084367668520019294514299414905638684931208295519488356440550616061467200691987890484906063289753444324838455885716200751500680620079593540751754566246311588184496839375493654192878369739257357839467963497292065682130684752042958408699342627287893657782640291288528963761974272826749467038056003429089852865835668850807751599889124618697091726840963162439114682403078591463281899137797984420629112580511269162801944499112845257009501292955654390542188723076153978197655465640407593537472789056182252526838230202575017471297604206844474736271658468846125042736554068461255208253256088047466761985149668030407932274747910457615786472823488395808712938109860003222041877104368498295138740728732066082530261751412916668005435530404610916527804418015906205213330657272466602402915564015706821349207616687376054318871901135268139774066260008724259606030975190525200867866597120390632021057771767150723378032919511799042739180602768269036302066269283246632273934226719631510904478902270856648944505940117599453506521356117255829232963979768321539970388453833423806662195497864951904928365739780199789639838139187940017740926521097553453219885887651555300266794017320956583687402003366427868041408851879467948011845905526711839002280529124933059470996619424318003205747924087274561160313871038791301648067007019269935688431169668808803890850189912393019309586452608876171203544493816682262073341029000436260427660760048054079170450880076522445298391357068015833561248821585045596123794776210069070577820154673343782921547164514220786136401504024697470205225914851057937127980992288603837048730207967881962475096027121458074539467970676710689447356546447560286344564120134006446926246328537934468163600744773505470651373734299452987642943501894801165975819539653569584572001626163624854044317463811457853624544054144180127775803839086414896218745134987910063603327915530094846788865870260598804618902278128041583882582647566024598320763079371637303730263833520590230715139189336735578956922181391774680417633988756202104864259557576824712813597719135139250812007874378720617603201164557356817338883860400377529715405774592354266516760157836016843624801286048575963763057082984367913962626527292368703820971967279891208330087876289256663775011626487071544179226447643880237559117090365381953320295393086501265834783501182185183562022998700148436932669761097438633846430145697269550317304489745010172502788429599129760338238288141063402891658575412249057480188381444173537213631221073712372513791323511438144009774482966367525784524838041624737147488644186494363147332317274090361197548192987530066528189394907842796578083976596282387136687886983814753041161944653823361239434408347908891326939047653041270938555337167276445116490824958107380239091091295895084439477545125831770288067772344665806259006198388205083283689986753164712532672690213061779923029357205067740417557967458365738417315408115258230337574442770310507398066210970477377814415376186758250518213892665900695350223535152422731079028066065817604817203645788460424224258758363479550204133818013862977163119624492391342333471960441242270581648277282226871085507614377658468477160182880263764506914625551549370817204055801782243947744203789566068506522648022263050497609129960185023558502486448517241275543283260065510806224178858146064505433732925181262531531100176232590310918035216163934469610029005064896361201890376896537529748007305846543954639439366189422764981601414398256018882638826197269387098091475668002011518494351624809032400951688368908529019313424362321237686832235285508467132831208742724204538424982540903656979055259292129845410593740108818247691616393863821551741329746155305270299625865378553882618391444167199901827257107187286172203366758472582461153064023496342087115377049654587530713885086798955395158403706197112251088813196011634474721304436210037321494906754294613358336616298375547329730173726313088022991799454567094053507952637385312963905282081889904681152307514446159844105725801723661510916312590598713440226925621697760109020419377683182548119532925651899418634080073160042817345261272694138672276958368601582342664800517541386809685739087025001288743860485539993642880113535343082679171475915856046096356797252963906708950376468031512870291293289274942680563125153664072573195088978961441617787587173132325546328981827373407294842476532488869415898487704236783057272306097963387355334695081905577144509145140295049931890199669525172146423250961668983603887005058692369939879090069794740282304912767376670795982942284771555288649670197657734391335819123217695161366052955938234435650771263478574618461713507434153544954075898985225376247376779353465930735985487481428082726933238782828786648249829824887574684202666523132265110331492874776362061876481740725855122431448990812210547521058980224221158296367551470572943489832900152405035756574386731955847513654167647851244136236444831807351613798073385974691307186680614832276686615887494173008379032843814321662070480982865957619465814072247582338244931009529568607749909033540568484868361600744185058786474624118287835950333785616124329640102969719283646121911222865640709857902508401906989005472971680213806934086155002177242971405114569883106874473405880265872065078193587419628563700623711436996563456067681671769743919903668679149510394383305142794804490065777589574008974421510575746519336936225261057456805072645460092143117752406188300505667223215235793190498207520630557646954836658226322935363101990091017000516226916184439629153972782485952834097992872828706975213291260044308215367168042390733333026509347975233335648489736164443565788598674115126670253442408329689989941402965974067922373828033451621964319680715867212898507418531277930878471839719502539986884866327971196002148280892842593394035019448248686479695006228075126523622434879361983107958528211371435750311605196401247096036845343713894746940483144924615282451880115009420850502044319861823068454577896095103632715385884168456883336654586371295160016824377020364504470286646125586227824478720061878612798822288548307313165821818662936935917388253581240218819037372352663536785286029769616841366471025232029882970256688293305269819092118469797766265799932208323401987246138678782481487697668490125872527813674311851978303971602665694351015616416034068172016591469902650992816831043627539216285652378418594534407418878273870866506670485694683255092189273687126629659343307161583387353235919138102918584030653400892530617494406374315062757783995995759095879331214896594234569264088106416789237555594351320490438832916572248575659149597773085617634524085823187919293220417023081110293567354236210160934138527017445643546544948911765489596548354579829378485010736619047818545521304060993702172197434681423791563996481069452558754409845417681841436184282138202381531491584586392385559848974099248143900717806354763893635338703769201659908905386622707943129862810033115443285232246138448402379962557823434552513484420621311672489975608282181093020900563873618301882663789679802471484266841524310672403037375197547123816928864042066400496938065978145948591795789202007668820413529757749871457927156768117769465663192688271601681155387944162076564504046398489526050001256762641577367804335798741393273159587435071825551874925905817458738300749233255946285850223374484382473367319272409738464711068164581440308728001833393715861479283183178855316365634083502878515486865567636669020292369834839655635996101210238314537047917725793629495427358591976772054038418440120095868774594569047746337773421870627484324490059323737195627130733450309838213675950201497345885314393550449460893064351711868279045987862536993294989086909384417142529804458451240010646216881991709058224244794926136825622465611546865893488532287290665362410632769688223390897222969482472246255551015612504727019776619398972041155099865229350225633739394928906133145704262413310888850443298670273422313252539759465665534574373580982179473077575091986690113047427067855110656521864327690552441032008348622457264206358562017911567905184272030740058467484436433707330335139362925692393457461069222655423547874662327835026137724577246474019522384472311854186372660643706000487537609782444667024464249508762760779103508132585433312852348326005271968658526146937794079074611327772262632886921176960586225475365899300274807321250334724515581916081166009027269085297528400240945280406580026283474460958038776859514554383321518457926585998656388059759726766310135801841111657012948795011343112886700300881843723395104203123333361697934964134697928344730647688874675292972293937567414209870895736488363566572142718407658276379480470759932297725809664955557835440481901414509146604870538082352316981512142139837063090346777976561898411447344095182229863325031190009651553379180613638711083889297531020293311265874203833430157001509658957804990290771304475637294657687894042545967238592403857774316773453564177318459936176652111627438222655736325161526854453440540466615562114873669985231642474457665632842586035948133562944272224963522812356451529158957232181213046904194837762426768485771983980859228578820970333514097306582420058702010443333422138156172717858603290371440452233873023871621034021648102313839067556131650784653085738517907184529245486564640498178719706426866624499101200424169034221920204756112672267891317165775875877307257971719032020727475127286532843809778117274305913272620541734207565628293135773052916634464443295585991490585296261905101364259487009244724046214032726393399687509607755624314683253423845622502072061548174214917950056994171679481672314446702701636931884378655935541419952344742900718238422831517840173967857042067265654869837735738097104071810625473236625676699680370494728733887018489072845152152467890523033888936450736792519904286941726118686593418900377130916568456950213227435757164992738899577002296035220611980397285556187641244554469639325760416338307976094311134452299368705007812174102867041029953386939884174370834914097849263929277791463530349131688616526655984773432330912490591163143797643783567118302986045365835261555910301100115579609673272123324704655272123008747245742303515016662106037762665715033440968097639518820436272011317122708348837442935117385751472752703363746874899304780344026261313664655752046877533840048358802743435490059713200160497112608641507082261895097239499622863444415961487712950127800747584898312260431544619206605496985929802907134254562633368574770421953341374137216301175091389300841378890106872587827533262455224887404276875376944804440095990126141408377369455469923600967547675347521064813504656158826089282601130722459967670098156513252133250679713919791915055956560936719389901511005070722145344461504504252675326665743740585679177261587109427896580346669385902669176570670451592213438497108705192018545959526871008008475154681274468759058046717943670346766663990846994007995727500250903835823730500508224312731681712630766888113828384655414744609066200234619312226887222124521801919901329305532000406594438880617461888454599117257047062375113127931148002542114799100263826618622694105547712734472259291281749252986794967629492854933220874928259766171161797987744659539519651618175684649527757427485436240214855609975405451798247327757688225244190357698971115868410681109659957712556851302448567685817096816561024574341602331874621748187322534619726431239807345982917385349132540825534955999341707071023471896705646828727965441431406127360486486443838478028492880683771770421789769293820214363872961807660782387093423770486699847228242723570082727939712535757565036037506625250818652772792471703002506191401536005143353855582876827286239037870549174129657144281224685617593144934294716388440662455328384133394338457339753978430839618793787837894620369831170786791295744062970173495753140197594086955765340265118543860822158208662759530102206015284068248364603708870147267476937831416081628065958655868476070009594934017926815403327912872211775343141234183647345296763578503164590975718439109983577782677533581887975336216334076656817179248474013067438312383052101414981430774564411461008415389864032054037611751045194250528917707649951364816603728677286387840665632182694804023824611916394949063330596178784569913703046347595212050997272309482199494043073435142448046760905429248965814709744380898936721182508322775409816715507415912634904424464722205458756578228174849668756549776665465705311698373633810120602001915636554749630025421400156672175451505660351560389125548135061952535363057497484969057259601742481935010816793995613311261654450294119827238833547914940586688072538739348598661191286921251527635419960536297297252493265157415912600526943858291709420319454050242684612446463820075745754825209350072743824747203922203259298328348733378103923922406403151692599097906005757123392801593283565378929622546631929346681341768427932990046239270391282004904466179943213195703008894021816777812698028123910046640503986953256123898333349814534784034500714432494847983644460489586668230300269612540920257843187143456651631900073709224273180178200586287995958529604156960043221800076077816350311797427382798733500173082354349861188042441123829929050537985117959992990085790292965011580322510344566344563626554848262041520041499755259443089963290898879826720996675020387589671238450618776190890892595852559489401209538034217522957890698979412790688830220573981452725146887978551216853583904801655659173997104378102290942968661961246947313408576640505074313298146146248726808159325262968182473821828548172050188042244122228761962018927994824036429711202684427888970176274158641781581926863656077291642120622330184262376978900626638753565706356860142044964289053043452432660364100352877590471576366264820677146589533289948642691077197892914829702804702173312911552324673564563019702005671674225594645264477477931876089015208375318100734947068013937944753024555130119859156217948548219107196785928334820913934430024374112285113255683373789370988180776097243597442693231694233270020525857400107035999532927088686140583988124207268367145418636856950014768868992014566113245193568843153737232664335973870734049284189242000874846876117510318306954797647453396276821424679974119031413904528261698112499889828366237868221443052616257532805395162962573899481317097186516782555095566517904188384463635742945218779510551290258789288189975971385141119485879361879132805250997650030804701544927419729525698803880934308572436371417259276502559154399614442706657789504811358114579085260167721989302763698873525832532321761838026335060656899906625082521730394187913995400826627244215371428803808104018916101048041665699435285797811671499197331722840431868793475715102317002671495552858574074345694471497493754695923883382460858210850037148615841530251112390898503829617178065333134957545199511724803007574099922640599540650585299812059874914387973823499918678758041441360070508433548250915504101893709523943353442407006542146495644479772081702650460936038911811315562795156568139885717206516703114185794080311634230674187731606711046666341581629849534656179912186280694331014809633179164165478363502123426673576535044695868792070865246751107267965631736657279122641388765567901720319764720639371996287512630628974421073618421943189537941052809615818323397779163014060887794432138598076129148607179037309150028406680782920701249128704300472182851451150260614589632220311033917039635295000232221240710668450101872530562624762151895885282695458035425740453388579976024145378453341257121470872324407820933768390458142630425692162438853135352504128497478937678634915605213853154223346681193106226950659816040801545282123790392568440780399226128055424613602414311062840419346722429709055222642274114993749983011012800827650525346139097382636389404206297331908520495488159637582392329657077072709917798076498737100929289344995856392542422527558511529514973252770495377567570693633040111874653165305592684967028395965343169473558549955314440831286524620263164605355013770783426667331754818399488839108009632267737305553723169461305153750442909048455972725274259280736569851580239857393204856400660200748258429364840487655077327698868758972894562462946287653347465759735130703820178270453090610642961628370365488287898989796108212642881552235225514855547275016408256575890917360507239301127384115965029771285394618698163915349033548704539040700579016326663729815044998872124567133542596041750754776878818973277508185519307514912943501090091376879546747476662294159268683915566436788931381593592636169840523638060707248837204775329328584571598442262947205835134364829283135352570016716744246517624147666852772978628298676857191816587316797852066754886266536201018536514629727843476393472318592812470101486741707910219485486661747883036836040903984744139983619015502801916495549902045714073604909572439837478078257853070061376039103903124260215367476685438463047486338845573260923962641678318725027698031491569136354773018010618001321075638793353473985876618893234827450616439115314577351965260109444525117159542698707589875983571697873498942167277689914547982566349815800748675719085500044244440962521221923428049565577449423529235129784341149891703348499462988379817391173363154288058025625802794196449903571450906811535119941026849408665084599786361782070672605574489592844609362995899699701718113200784345555685443570806227968048810761314191863792229680034272487514393688612456410167700223231400048553618408310869167782843993923129321518866431382118174418682401718163566727426145922865112437811679092588009895683855902431360551302998770779921709881328869217459562190979449377733389912006138765532049502231305583422353267903361334734799411422486813541091384148473475848722468614610217073863836032340055076143050551492197704765773389804549352110958561019394353212550652890068297521210985241460986201532459157631339047074841523106572671401863980264943119301766849467013912088312096183448697368471620819810793885516417883856848544932009622989914352297653952893742778851150174480927039918359399909569024416784179202037462738463475495496256884939873489458212009774658606206915623014325974070530842005135587681263942516936237062214294597449080169648494473505726356634086059262444945133645585866293898982850267988857935562254576942193961551680064322834213822938878158125480003561590313429325856578911371532187395315749792500805353320870298954070171503276448116743875806455170644789325643261552792022008410570439303366465753775253310872210120581257849980504287854100489292217832677823380111330514115673278050189529578670008113646441010858357986284672830399427527380667573651416969001040342101832898223773180208934984586166558635819380423169440350019970431496376381648773742094666373818621182423894916016018119446633228592378154502761058713406651870662266126142569814003634872937482838751271495670430682270484223365593244455050988471164678056905537841494604139978345441962261408333059937284280845707185541263267576742133954829726103113951478081820234776585816380199707875862791490783576326752319501077710703620839959257229703704791468046215693652630636390132232933370832692469714032462295744397877082589190154043042364717560668889272140984851676297061465251670694047193660254606880347828385390518990313208409599746286676885277097098594587835331063099315836734831703596172271083295888838157807291459498476421770081919064340298776051058436835625076915008977143010892194193752164427423487691054552695666304155576702469707649982584262526920540156125350526287427019305910990052092284436980038441401803045530113927344475589079028921079626865882573092870201467348491159723551737642182758282034252167251053864956832793862087993929362669484407566002604334948549585178352172041584036489841952617963944910076331189906688410172902790702010829635120423166662884378557131992945204748561046083561000209948293298748413010585851036785413904172897745547168121322232226521863841427416597902722945227440991054871648348664540271951651848401821301904340722909727399464058019302098355116367690983016847130882849184409050224453469519828988884681752306104458560441807910853577157477737090135700696381811002451235780221116568376745915952176595485915768135548782970714734184633113744356148949821224546830995123709808923034058722472587308182302535760132128866431561090638643243347389240155185846568187779784473629311801563620815825258964957183843461255498955058261000665881488705981134246166308055641120143013258102743231406300898515779742086171497705280289640952395708557338605082501214967885703660115924717573650589167408867272033893545140938615387885603345036542821487569063280886809495688618124873426539987952364766122967939226825988364309450282884823222690891188079218613406043857913363349469567854032626274024906154346473507926110547622043583755873152983403029168421698846130203477642458228903215197078837978519100194935731330123774684169552546988723608907709007873368561021561375737277268328510784774279223121082081482320175777205694248216365109077265367603102555444286404015608628441180211299177678871072795095579962068417529030886337898261185574765951290898815991211172165450950499248964938360802111816912695347624811010018484924638001456064567200506928687286456929824336548507078196604878681043635153297012600525689688761837492724801591982056018733267559004160305218425492625108676671995919752359554457860180527486458360675278184392175265624230669919278193319432130600036593095083608189905659695546886000285752979431681213550693122655565444314200372978009213647911598047828684941385714646137904839900273066718960133682807360675045871361687131412138291541529090239088275192772642414209620935784554363432766596185606740414437399087011854570367108576981994524474471428379189002800292717432669753950464996044425440786528612203263774381076958902903449200853205311634824524513211732696203742086601821185275018069733858532271255731076382358142320141947714403047558538711909779722980824096012008942742212178801790092056213978423979867401411963161378931786023550625859431276833250927432835994377613882110486951892611883554984592471337558540727919765098761900345459184249073466996379890462445097102107403069857505601226068606512856243596394537286874652161066030881730305157116121417021837958195736932049009576655202327742711494446338777210885191125280303909104682763123099410967961726719232014979288659370082543255206688051824011847690859617509642081204670390884757463116185308666582059043103581999786625082450381700011412857998555405012401612720345002639452462803765943770317841657794824504063034799808098305730430563814961383398864746407359341933642051455720232068897624222532007293978823242310053849977720210371305619150871607424920777532976548418905491355265433893434024520021622939563530775569523975585547070433009232964037133809055380031918686357445608545216092580244531435554228410313389240616203393529055412102508964345015256435068539196135192266883433465106063600837245830124941299719236757333707166350886945723241509500112026802433252400053835577920679228399062344701818699010997170421692819150861950344466955723980355517335113401718038830746409839769608731604006201124107246096061843345924831452708477380370908557318370628209069861883126866635355791505608129114967149464089301182055593534846752986574886660933936672414030079174924032782183663138546555610903851136080163112899369861307576622600987941032160759218495696700273325173199740314857563370928472695655434519747163139019392662859417544767164596617060205158007954856682031438362724685192795442570630656474879905870676775630237483372162547194387060523809220131595196022059867993622957789844821522821568382827840759192221878923425309442246360935669849913737035192245129801089690529008974556173531350932687285665040725156917227210239038305044081651492839670999107310893228954059186257777512505075875008723956188076162629649813718692995751901318722833531516378308855243329398428628998741459355695949241853817801431866340739788436174746353741543670419118043125133477459611364568390700057491858193522098084401235146000089474203677724062347405272872043574246629429984573502339685841704671373285166818423618323362626717565502328912828118031620805823307581867977724273092540879280794556908429573617054209900787645890497701624070881105520816022396653234052406841149132861973835399382962703708048525604918855362353141176427929402304366414596776559147107630776567429519247099537701471198634304128677367859682178545011733843966610138084424983820016690543616481955187072645156764561595412440135584371283849410295818545958187062431996834237679653081650401672285387324527804436742670693475072968035759611173108472035513319351477087494826394408085763655791915104672152396107313116900058601510317499163793674980247507061213949446754611674735687254953551164162233892717437597578075030325487802238310470095230896814320080067976980194258956391513646327531231556958436865521241104679374559881912259266519681652685172505462452903981845338060160851017374276984928728147655806529146714854482432605669631190722484883069059764585262016442748385399532608496841116803356792501842251154833803237330938821201055527503654553857982007163822995287549247221543091011074985455168367150799318054944191487561871826943447143904281285766648235600097160999682729203652617051800358173741661351913345865540272793054899655886544900044596099193615573411328385911444249663727726668174555966205559682314673671507339276752429649702569905355830191201479650251228354486758646761126886467711006654961226785036727010540365368014824635271924550234539365130573253947697610255588227350453168733003114603479469209907989871515679131514744824217830459307815841444212879512023200980490022252556510127989181623084729027588969741435745126232902226963602703851623617173927554736891014242343870810028793949654890072177027482077360080994490809289285780363167795821586992325357900888032845205485683710355990410568941734316392063223180173857593255025273121592474254249228712788646762641036890374763453910597196274435923772354720963462494368039531377959571665327911662552345631784573136414486418862763355862732948948519482889890764017479982970984629204301786486613431743923201018002643023490594377995427848410200366977227841678232734001919484135157508707850328858381012487869163062412272131806015324052926695825603988617866604769849169224511531123082425038949682654836612005432196495332498886146722273547758037157242272679774230461590822511343674544987687046975914525792088018665642701611060195344164954196668797847809989877353668888425683905731383332529737447295524252517113390039542876961484636526201503949125512452755893611670624886665754482870468832598038862169581309844204332143442887448368257307321207766358538676223701627778583893019626096713500078600103663400454106488518406884080554265671771118606121200080029385415232801058880142491999129958614785027321303385200300770941871968257518167813305818204374069277451331499146372301682707673812749326366767835208817569460955116732650605347141213459566047902116679993674882591626190063395865937735740164155676245837168229339021522409214518135135142377332863085906911154366147147495701982890428397752763598413666795744942020810779994920936590253070357881269672417847857071392004170024059735098394825986544758257797365736630352627302874154905413110692290334749382410934541171195462738738075586591908586613207915983441225272094207971347134399484955649844615227180481894227739523723658095990385077750404513330534130199650431294285077294733217125290579337479825385945564717994267561526635136855314347452324686940899350046414108703967571171383482300926875558745152681888339096031682461768576096467616613736079871122957175626415218115069773324888529698181317751474996004703100820823021663751709727601187379826726513999818087068919630231554580492119093442603499197683964357802140553332541139118459099926320412752157459445449717908000816192639757104147812192787116284716068906937745331747235057963940649965561986571523405353555225387903408907147944500530364311113573279051544265568518156107284997690145265887525010656974343455893561956006247421655734030884939469453929985838963667683215550059128760809774582446862204301220675081581324834896278221762854331644383651540615341661018119158019650985133375318519939228963301417764162552313201252896856523491200555274884187916117189836906442585632879443911319282404734493953314993895290064466390281759198881911967887564794698335590511653306672966721231613331955213720085209866391714293487706437729695773365328156068593025055830017274587717633587857213149823474901123233842962786585892249867752306479567133776095879803270216320773024183645730965970099589741333509005732679085512433362026524329677845932093449603578102214413796520725079513295287681511502465673740276410115243679874708648401010555204471221662260055434057860884191332884409684594173959773928668672137794970799269521159738541972557689988719964438059845253211734187468688161228775521043696476232407157893967753263704370418043747467330129377566494953999756771314022987023436991712583311952197959208981574733940483126469828076875139726682502981268122187686044462016309169025333217789646725014961658238255569056116568299976353384059199848633152653735508783880296513387002124433965391480591931203477400269719716284450432433174487805683809026049500589696621519496303177277567386834989936146547294423530545717320362950822495920615629828957984111987103858053757079673778545461401420626239168704875152551111850675133505154842401477163050660329778511018846895045741093775741713421690178804004411704564629990830686246941057590256922251177995821015862859608112103235159789669730533159345694318266928311257861702091667628850253347350485750917220832540971147303175294053730757527078387136085409728017769110517182844467443437417768255813609793082320904436012024538411437252627845485602309615079333715473255487011933183164262371316252636187100355048836321526280100086495907206251427321027852787715027474990992423611599519422253910381115978088796509777444420984669734108270301827765503290561312551914672282554521732109080509596837646583466587944844026373451345179364035885068662148407444331017416122977347874808728445333731114153424331694268130605891343199379987567809377515757318183335959088811254855499615543041742419900846009023611291529174548741684459352537753946207596127095980131312799596743734083926070881199825040325472345056724843397806839956939837682781376130634279031049411112242777008599511022904771680687199011182913520750326533824264846196463550638995041736870045270167264396394414496598061107843400236190760474281649905683798619055772898846224924486946920871389144830712293737944933913809182279589933132165768828942342975598220440569059268983843416036721871059837614855973045492538210997308881497061319664145006799822675021536214987207130989571948034155983046626668537067144504813865609290142574091904076285695449032737430101675462944007552885717469449485085792724960354646647124443761168789382110844064999566344709310217011607324788062751162412129588941979597247157100820453747923210050226237518439374612570345551332295804561204453909470749151813423751565963539493557076814734464001173925021916351006697622967264526232445766410321923137151023819750334661752949379945445409259870395651339506136567791519958998229895213595469243951050567751533464218470934686344614926578037799745359980096433503664508954382612837143824272231457037882115713738978932620553765846782336573541130650701064180801097806208180824811761605030207311423604133130329844264020631439369090892665201192670897894068381175339579497694709722115515126736054789575100906900110644080847472726814467916976330794647789976333185643213204477040694650827430616506076015635692091566008495892961633193536990731054335395206273998903374764045004221026230981937278860499409171959082022149264010650066453166650702598584189976401641888347149458304288999214507085680470019400840006042853027285231223419507150611557719925747034568238088881687361175880074386483329025022811666148978901446877863902957764634701866345145957151493560725622099360363080402569481694601518100875908377230093203533806386883336347210069499756735120837954032889741564583736830380700636822742204958891872331839935828105776561184747379437675067672558493877827222040776483277862937730396480714302101775641964733542888786923875130174388029373136306164015498386865918361506322055664234006320082571837682199074321776217516483132405699891364545800319082467282033941092311176952718089740540790566948831393930151984370718789076277485769554162269311249362484840856662180841043187424964458628830275989413483110667126078681081187240358242743850622596160693167636460456158206900677145199418757706642865650789889067445449062219837628909641318524324991483175644986143265896585141176934454713840251234288049420520015696761159967477752938282978063715069290249036665097865907686715120383881103992190761431239070961455148547019379073678707683557996817665264059108382579995331863862373609548563567389265005732742806046892758129447086175954181355783683779640783536297559389326156219887024425959804922566299099436602991786195836852518817816290380211892454854766245985191163406354696754909229540892584590663442294016816906338897531290590762729206457039543802359649366778594825025725083107310972918666746481767332737295625907255117134373072728174846950095925974909429439196017408819807510894295233288273707593391045064682861395999279284587813415110374450936319559977188497167864780114873316296258993221930044915231660525459494372360630768663191452144867336956447177480841431733586871179493217491158801767029544670678185617132507931977522985066415174269278128291439071522597966166633996189429672414082806913825895674775812713478702992369848384519279338597278042572718316066480599970257073596831314573685392935005416947912898600451406852339583287125621369281931704370798848948594694019022047000288729848556468349416198973287986496408237895837237261187238222382730212589812982420025611812909022061134132674654272426120229043395858251911431018575608020007471961306439405582090889731337276272483640682076253504889221020669448336174166858969418710261520645497573972940695246551391330475452764434208164346513858979798442530201541113416870546537273347166090384989964278564560202746236347656084361216555284337801933520595769146668657955316437167624795965815437426873201131503087685871219575113644858058112403529993121352854423853316797764655502248373291562210524212792674870018162071481972268796666107512568494464508585734564532238015867901417932921163939723406340261681969517368246608651434094360800414745731223662032308156722508027388095738097432998638614524522492784777820794303320166593262998937394059947627589126332392013231505269611561027708409341015906849787349160090093920628333804029700795685112901618077085408504840201912515457568825678929109903791259932238349396281711769591638699692638966844756284856161434822914496854695121823196530925023977680980171981662339750814149731249824794267010270060353910077532038558697309672830483446186411523429079807000483317292918704343721222769615994137467034588239690724722933893736759889202551513954620949609405193452342807549079488219575606485042288162171669207221976311196643261425682995775760356973131248736492736334972484542139548257040222902884489925354093832740093517182330164170937704717890019123546714400114841666367210475080729384570378636897764722923625875735887478369437808329671213573195602067764536893680381690035262832760932054108385889954297527392787676015985016822950085407158605377860939250712902173047005857875363518675783392983330001378209082627228021513775752804366020577349332275779074534498095713762154370187408932236253078031304120037556392509024812650210467830133169712578692757483523687473496941034574610116301609905151316137219767480145140141683621958539651401568106213399307829846217816641105243657034696318022295331576580503034552737443748081353164280607843084668841697824383588205870870009972580284614653668884697178298007719623504634647421795419080642909149769831533992729715925993766714683746392565744671965937790089704240645727459365012902148742071094951050937078225394770090570086757624683418709029285656878662002339609316058218721242927660350909373782447679763299517064073195390318751554405694873667294951353347280058896823688783452266761487893036670305501609104417169270183698230166917861090682151991859978693314184513391512144837020780944717047494472945034051172499274874635158018881749262992706472970113272271973944478865626636424304680507487063054324465459141081264594166382622179482685578912185800402864041951390951105098098374696933581750163310379560900067858260073360848151139583720609198361571063894055872059986163381376001381794789893311000175364247642051717242564098946524239027613379549333103653662002169921751904318252961012469115372123438498286472189417416906989907561575553651210028584267447065322361525084917833663657056178490496898952622407822914392053123172085208565296606519837133955663694280976678236536631144861007388692897591558781946772858713592852331051559670658149590518129682382074407177114957777381767433789330001867903627743562396793167221138515935918652388820862806623751881377637022675339347638447178774428442475202807646387409046779690435195920608540622971675363277844889922205725873302966920043715072282872194374098584163892426490094359433518581836044280351480524987683012422016612688874673561460490434798252557074131038953331350607297612800254878893100550408802022557638253450387463747862029789819061607169706280060055209971689164458510688510547249257415212014683015514078404357902789283604728812741891724167731349562370860404073498871379319331335844011141917465178154518411749858285767634684527081756328955487500558559545426291818244089094781653594156055482286345510132454993736124105796959653004908095551153547658965081598404904109237800663156529002528750799162193146402778289153634268087162720879237842834600932410457010742274226707300630635094678401428952619867823364011002265731366322186050624546741823845148217848027758744894653448875203816941457417260558564673307039646863488918872352645050990998841358844521895981436429508361353658819747824120594558460266641066125786978009991517479761119631313493689465670901297432715803438868773464135575860800138927830957326330887504552329553149233433796793276226321931475316186606811744186558023190045317080569907447756707768533277035102182278984060630815827356212255582267901760281648472515284377831879371897697109741635853347009267025832852205723664689287660591006964270299798677601263902000730956113868372240881957741675381065651910267940219996066179060804849172807606371535250856787762242496198691762708020880273436539908520877419763641512251240721786886680833486442499956946753036062713663160286840522623720168806522248720215373889443077862367930809137810558378551120970225636535909258433862418921134600639268239685712260097392693199510318665446544882040418088988925297203564314613109112241146619684171282344279289378052333815887749224582877889354174550539087226925851198540094166666650428042287059720167742401052637093125626480446668349422880513651550065095548892266691673568651382063450366735993171292431285745166288016913592413434328873049369170571343149558164181606291046613452878680421708079254138983022351101141159349902184002039848235662149701672220938388099182211903282657929565190165376629233290690377046571474988559748448508567206815120129844585847971517292052116909484650600322192602539044945054565668121313853529633901270220866448971528826670373503041037398200118578632913261708496775013337284214249766475604657828079857088119869482447924203892989824539364765528628854941318566414354110932320799330141661950481674946284373090908515761941731708313389141603342932771639078246808133950819026143458377859808966289102328779635375820307388262726936549887988871999331371995177025970202854037494108837860510402709302867700262496535535628738971954970867129260823898479709928316410752126066975597751302804507565365002596765183129470354076130141696581017447311226379990139652417150364873647368184164699283501168228172897315332253901278624136714977539695150927916848031517259381306594650338777363709328126023292207869896424259547472222983489527809437641211153920980020273089353321962949059184282839494563007558910173605868901169391885609198713233043703068252941099512838773444180142714711158859321094732375683893269038785763233144679257917182027903895721119299081800167080996768825418935524478985325766890486299337743762802645802938333401974617835562223673013475487758462097585633961045637382006820830144337268409245784326231455454735682969554053709343287951560635219981680950958875568238942217316512533888462221475865759871889785068166024096793983879857270460027179840752601982370021420535912442699317144581925056975758974336168583544427498252914346857757127415101220678384932506143679581353982404341810273641181024765482297209586334795827379586204031763159740184115537484517257587829071400308776840521133732704276977724898686335540183629898987363762447605865967638191033247163456944585708578794239805899011230261184777508178923607070438497898142148101864303036650515974825274585783831744664003873185485604192126650779938477929733429454911967170660838296531534672875701277578554482912110379720681412832101451264637412626354676445775833246136035827957212601963705239342164642309092031839870776935891524936441399642503335105956133646497577179234871667151415303647390141875616219080204849084257138667073657181459059546056945062739812053064777624414892376098455864095316820941224213540956711550535482970290981149047832808014084547672448140488603959398102139525439461979242669847690697752810732179952206244390612126155492389262312997585752103061018603642290809886375754749448914294334709371250248404526893245421211892926707262402489789226595841140683413264297398538658262001301036872027288290234636363082322540943134467518249997349021350553994317792366686234831772616856534503973561128643369205727456867779465772785469179815343420690660581512600624453654395130865628608785352433706202612428825254834800161894146399301708196774077192109992856276575923780653810702518687983259231089986353291236852791442162158043593210736396746889811063583507951975958128918139323397266464121434669066081116416664890078405045560895314713667773390346594907915651857844183034706397875949037911318042491720131202265681940890613779818164426777339132587918635126930685732188758105841075824627261572181201355010755385580531901642027066745208495454180887903425687208090771949458853066435483650935218189055662712465936557847917809609490197247210946960635575031003406422667291399825665302895467776156810126359490688712651189499174822115820447473542034219651488638346022596975640023195978845943704980234065552061816547828741674878059014089421539947264948860236953453811084503208719911970696685235530209719217912020966368316356030953659103035181580296178999363056724983465207749457816419321141528840597033754066457868068831026052630074336502863149159626807240066155398810940659563714532105543629515050261497309501289766352018562069789937700260633213034884579643938048057418198296639696406566949006201371598523851871507662853136473619889455436518722124759034858588299606124910857480947128919340471243292984665530450094571502681355400112430302589536252530731738612223399693762176169093248118774042284136386350908666218043067652779099454484532357068857475794137714801092020708544227823509219652516768197965581546910299790844128583350787641374737590022488326418840406543094049395508958471219296874613719982181003005909646131496081874151110862468253628589306472495669378469010403942177303014472366394780840987055291833055958474089537396689967196988804935742047168174514033495738376195946430229579745511370003245373740536564355660614888779571233772180130420746835457371512739387957367267502482767684759360871991145043908334712648482040647685465838653731087839511060793476053493296486494221814741307072173509089080889045398828550705861750687295118240330186090942859322040726835967953653572162402868299714712509981112257807829985966887025758876749192943919558080984728446317043359018552204633827681690861878129627151946950593484379784219796008512453058211875815889911537222466067830142536528406020649442652820317809520503344543732234950119173057660687314274049690140709530490433206416148761585680595651510901623018232631411883458866510533440373373126989211151267429945644504155164956060172562175847286507158180199671432943520588567357011915641001659178681714132657850440957104736786540108141392337276377601867293419424846804379881463073402231789151382623731327028834511559881137511036127944040603989395031493017695722358217467117580685488043841408263734225456302541415553879016428759693017257027277850673106168852517721297797155926581806516947216541515037406912659665634167377399661723028046850734376891655668009425138401439607859837830955520887167492122767112714390824088929679087216595244610104157135099809990662512507191024129360052110042407251095958580464765974750285289216114537194705357770002370113175827225323932591543967879737514227125864092932154640610102967231563209258072355081380488574467400552172437792846635946206033688073658138623688032741156898003483771704305861537972345308634243420272505802409945899806515095020725047696850246606099252868413394543842933051422102614582036311333574005907788031243859463755336944474181433381147061508009350972288111024166699858209391738042204063006587046059062975156385559967195296514630584931964056371979309425553868885680784468030367719519272093663657075661978189359471619195437700396056247428985190725247721995342289963516265610721667893547160764882383052779360130073491218990851553900058176143098674997585602698452177277212148511116895813355291790084457010914364116768771030142764225472802138512985105488403369920782961468749992008819238829129135628249691085440096300869668764032183092807452334384971830168733204427937693567287139728210556250249321171210290643933292545467547466669838952413123726511827802555639083720525863268234928310094217346134257363708353039451373188166520388376356793180578857191225924195922576590887999378041127689125496437727042309184838631278808519336499076637868201125136007110357686387092145611531957207362392605751452843612885219168416434442014505361519730438154974046168457558917384861313948459931224416694229226963449612535928960329855821502528086247038651319293728142416367011664378330552912071255157165832660780144932835040863303177477772967459923447954368210961687697312629684443050460850012713827816845996110305599607537068771197066853633194718998869779951605766773421060904996249293211602478673946366105796723022583128813909147323982291952688401283499915852037001290222297700151829439954156928135622116619196484127221367255143444271266792027133106468860779388764093802764291425631333369668839256706873784338267846175318756146430751988708031184917906010842470257523619272360284244366357099954326766155084147135384760561484027274090816884973339740142128854281878417486500629186894830820648575558005225137697168172596280926874021390209731304732429742803393730086228407063092897995662300925470795893035619322642245602446234856637753104255788406768699263450163993557564540148540441906784100331855614466489725866802036121312876506458636434073658247498405574059940278117092221603714832507156483599315967041948584273765418913365276790471113036444635659918208854825379973287712418176866243781177311112305395789298928264309853207278620678307054853545882550829348576191154923497613569194822506998705256848748193712844487125949865953529615621663505138518392530339217339553114682009230433071782342711651933417480115526950054830594408968503539988277025354810778854354908445843392160051382169808673509379595337573719880893212091478804457174642116303712772074461174998449697891168719208670292180171827813196722215908744382200396596035702255274730471189287643908765592998922819357202143264016795011368222418253364930017291846033531197376355871378179347839841403270047124750351254773556152164550082306809266892247183491954377979198348092054593436024228610239560669220329637139857421441944490287094985886304764361322377068754195138867045561838178807308690364182919949011589441921024950351959959025180496523154875282981072670119946704187581805207905300816836316572988864072512657173794896893080982501207251750789627205859878411235087836809169778157323425099958439222325949600861906846031811550010134205137129982777794671996872117020722469501701296715165010403959501582859185903581177287669120061478216185743375533882327959245029941282987358992432764015162118241580368618091068966907599614295376936231223397037139338498440526933427432926024061367631935469739121016156327377566699825951684328330364879786270333826507442601285645219551587481812169442063335830796485365883974029804062666681750956808629496406397871210317359614952991968169121023611544269148492826910909834908557994816203748867659490266648949043544138170642606638234096843588752229976532270088413342295057179583784716065904290539125885703416166140312410163212846319666547866737168007989674200162608003597806283038263536177555836696239621074640639990104511525505194873062880831791549405759609419581346085295803982545569414734682520897931137949143804281946989969065723824692514320627943749971675739291963351056610597552761310265372491225626635741009160846880644095635850988479138382886861999260022548887369414598138285506771319788161990144172523198636646953814705950252898153973052518853419172678766495962568097084926133579442925564670988478788206543643308771766635893897002965460051640643809506706064463429120477798426710093247873841937700061456681629228418849026478678274455549510227676193585680442636480691479419749843354079472763196094608664928330405148217413905198576347005207869843439597086436788158363227804600722811089949751128978894716100945146486819248957135927769322651271303068964276255684822418606442280334753965546355153429443534458733070072615564194032531578655716242846747527261881068577924328570695779924225398615869232965517788557613755745046390275756750709103383906706309102158582541170308817441885716401709625671220992423356639756595533275413763215998719023032034090225018949249272344533974634582731971679212627920067709866459685812452861711090681225787023732265946481329306271244447702414059002040254569556239160885294854163063349165761955494822054883901875302097083001407793613710696318451710679109724046652575915777709568965280777432649439075551314449794695102407536268753493884880394059193539916922188713319018844401233145591818176188814962020469747591884239446581445224576536590376303365433435643062733185685003367002829662902843986968661935006450221049790476838098129013588520263893943423474728119796815755467390271964255158376113702465590780808006777280280324877332409062558499566989159541199913857819013900049243607125926676398375605952701313629519435096838711219165145049590384808100626060309421050815470760535763584365098417761470624086252709887986495647638527258365486856145087833204754138571949527004297320140746490436811231075009607183028074413078506037352388559710465869538463963101069514888806450005401194350256053546038356021628384282433755165403520943757063018815058732356826264938808031659343225714944448161554055798154276784049748205824017599895774023083061759076386457676619794986832825021204561241178817019078509828814495891051928586989078075697792873058252674306107502830314241066749382027325880575010017580732239983206378671830634151391585538674388272761664680291270095802725000952887944406316862081663644049489222694085037982938308704408980967638716326312802324638613894119900731083279331542776784420733478629080731098764513528133938761330348836659066847179078718919720641981814366003952658588285560934927171275599106822576871954619084107634176249308282793922761428821028631518073818655698838483604167909906783916553255347841094582276284205347590129910797800736561869022744756066514014364756200524477204186187111983691717431161597014403273587187654385082558338847056951399234695748093749423488596932686993755421288527210816388520043283630688295360803546687754629174646342692654425284968126510539369111414110678207905196514756784577434514175015286869308122872841562313813387637110912006508939724654129210194578196459340614052168374765797463943291110982786760732664584844284595006694913356648910715161357818553533609290436759461893815593924162738353625745832914676088220080390510080018361308197552744173859042403765664681588415520857404926776302631323479480439460450049184938917152881591453992900398429658558387686751463571656847646547963704237614357920495627340351587091910884785823680424452801059735046689513709310495097095076953473373365320868624420848096934989981874676021519788536879369883358185341741142790627403167948760420894246894535746558005359324206995891228914274339660387791062670785340255864178157463640751696509587151151256637875201744488772251937664424362406350853276408705994501107845022293533217805863508968001602386520358950476826151244203154111755307618331875828261078113353809289080794828820605892990508709513303140304299172401659815057549365926252337298641879756681703048577074091166017434701627038931595536304785073350357867158938544675441580197360216124981823426277375101237149552649089315124009649760110537014267431648560469141512674224151587139794578968084716994726152536362941629465042058377715008947352919867248639415141754793391203681098545431810756906930541794272146135788721722988734637929578952923675362080297981665242473037296654918452643707192347430667310271333363063154639829408049573448122799585442796571910236342468301470740808984733809421864958682196908765314083113290530366979070464575762342720766489099335781076052803987511754436560141099476877448565366899053780971119113936301675687014226167418681535685023206106001802203889562518522850633295876333304810335117563887843318057157786657380049561569116862177798443540759922002414508119928660401718634336664239835808359596845719292242957252064232327960747038248974797366532925171375531680512407118402486461558609687040299132543500131784319592981224853871756562322110989808979404810612375343660032864239707669300492328240876360094079249413942843509258437040379077958218379200275555441628947730401016177671898395224177630194312874304003627319397733091894997964711421751264033605743876201325561853518949262394883620407640063206814751328439954308828305968306306103762680210600510823025223727994223821304568848289777285646666732407105777280722393788837204410823051037244358971577164783851884483678762208017913040260265174821786529818598158141442508978624019767745559024544782425579887672829716128182107266384670427238339823647375669145911953311346066716919975965964600139417251438770681028256768517368300881317749904854753795369682283900511903889530453770563250138575531964643413782100755827992983343567812083736844199612473275621110239008500513611661765071260399772259847424202975319515743587316605475497073294058021403022797403382319702610548690016142785783575258978531519014900171168961737015209767341094505568661924203453660461671897261624850768169609793966626426760352381714212808677653690827942420233235599387400192973610735944253902238149456210234478409647656339647260990789793554847649404281281198125115525695466704532411115743175314701491131189254442745727008652240914567951604311851162675681655669245980687624535440390813028781446471582731575052114876381745869239536767988468809342212064346542115772219728260776044862633094117462327210513883261954809079398000287179469317960053611301879704647590644518836010045040136721567553475963584966863102408168830285857289376532817640160092537874580002870890720217444022481845500768931618031383036473968601736162196868247199492201946894431439277752075067314004066162008895028383262003236213127745659588413193196055720033734527345087443140148705846279332314049932375299830747237073494874393554132174189559703300679652387269975340640565343389350218035391438929315167412860453297303521499810981652246149571198697966153705647637201497031131636203794743440312811112041438139264103588471541007722309147309403730708909851799661252262796161636648096285293249001034616663124801785534898646783981435272571625621889582678848104768730428367194624622680815663695170738348110770709819425270752575639956361398293928972692370420419686795234272412007217323073561152527841983284065325399219124415819869440580193268896247214071860921650000119590142356810337352746337859349701178013125978607323199462539698384695667665876417209044982876267428191362170870448525461098331596021141607295736758969681205087191061035229462991680468775095507492149515439371413192314321354877880597020664472224760948513369248616544929574303605430428636834916483352468880852879743992007418589744921517061285135160697619242901891770241781844870127733624212915797804015057427310279727535658622153061343483599153696655947254158107002794104772876963166666267241932504352693599219115207549647289045155968831048894816513425659048345168242890581054882009951441205787027836937317045649311117188289077530294339351915902476944792393096314988541403296557801830009716815320361439118908015217699220847640686949130576935537398283025616988931601420918878883197490229924365591447995811878571400097202278238031244786391976868473534599193829538088703912357798514290670252163244818098650388985899173876635790754110068631744399357000585988174978520313476178333852433223974924859219151369923208685074270062494218435267465632393464438785674396790161559392900005816179391999172602466749737821494158755537936583689979591487452921822303241747238592317037557123696615272255055297152956067165142634631740148054124788788616176072703671258718597993136720067349437346752160955604159751886611277839476402029534128550183290800956034424202894648408352531480641260762215813100556509384584471935729846402006301800272694159401021777399674457894078567737836700570282885651981018855999889667734030450005104650524572031343831490033285765753566112074542765458957421705726067249371519943493448378591831303126947655580033860292077692351660754392560924264836730929945435526125564495448425981328719470337929114199118386175239664130108403253989517894348374370053012530299839957745425955594932787957634341255750023664241269339084241501642117966668702041839623765389719912838592324693323094657771028340913185283167747596064916509252621247235374698895349636961072206863140423579988283235454936781719160410775934303026358729002336759164098284714440357160172990084066251904556289906932240366781661114577095004664078855097474018402753314667828578404547591457202175859321684688369544519916998347801205975505162262780791859061682782262821890974980038767028636356828414329332808371327987257587244614180918316953098794369116481796732510227496125329282759295517638693029091460555252895557294036592163819237084112705777849078723954086163220838680404328456447689864660790453764774814286980218466485068986089351510892961969676561653259341549911337006767064817616342706456747939430016652435511041051126725497729550473512108853265859286103803595688934372148595038095757004533632743144048863868836507384234106810305491904308995262119113778911098349834933704883891224502514838810064572010850554091430412912289932073335207292690902170545454042966714491340307290859797362049891983600946008927672519482519562561324089939657001176628537270889485761641474191646272368198878840881246598099783527138818950238109814785055554956238898917225706387874199146498777017211587951409640486656788515587925318829802294321267405405578247644330917247406088189408299886718035101110828619185556620153672232465556202617830258076202717571203063825092931080153920524187321131029470205145113396611191048563107276587551674121402609250066113234529068327952965444657319265982340565901987926749585640783168453273059245647958078984136651523488758953001522780346329109070301081904298119223325046906349483841300810436330447140667101632060473112318159829676142624679713690918888374519866524450417551021242693446151361623071904025288921323886872374022356296628226798033168766573723876672240947127599929720555581699890587587178520296275505342290426092661989085842748390858949017210760859941761405425089247221037911767920334515232228968637909442097328963067302422380818190169079849864696267184947467256516011339090217394121447603027914809614192924839364681943502928308201804449829421469955615855179254575597387725252355623887659247089099155069371967481234138419292994102502765447510368322560734561569286220281001037005272782042655601064815962876135963797254923234075912462648768656513515094426234211611299029995195513426152112333519346286735414116604084653683661896802188477655934647296829377907431971569457369328217942102722586055984780157962517004923181585919359715506564785088836753336070091421165008659525047448333877153791078071974613012858036846256085317468203234232789592803054448109526007060187350660602845165645228133564875098034548515379234487590449071159366754800425120342737381688399342277030620590222215744816011457138018411736363036845041796407403112510304857351128050932628500664127305417348306466309799283850411119380794357941268380979890479062294383105610636324352250212876006659132630727082084681388306073174632713997051923541197110089656350847853628959734802794917916392909640456347784176762851161198028777344966493072329226717086105994833282738045111021814609042912211515498488085228631683959922117531028092814860709082935062444409329791744395062255136247855804330663421211415988800905193110322130228323781336204316121941780031881936075110439263133062024283300028624699119317273180944825451231291511524125203602972917199333853123667792004493604166180184841367961417809282923889657955863819434396876132505973425660764456910338731667513404252224433553437019334806810960616756255714128754848795439894707914516028596609712230481296733545629402540496456896271660576747578756865006592336092796969764917743345484906871629208914313744857096704633784479870811801868319274359388989111727949756383227923857197715299027563202064592229016983801539127098468985008992109065824437205526199333916601822461778419368909861390460295213717118453756052914227727797660056706893602562276131742176433100228756845559052342710804434157356410827271868154904460100035252461935618436734928124021436956621840774115096972527471764310020691808312092375164848946805339460405129740632547314478979160524352571547556546247311056556249746830208217716884765080356252501833631124480090925709869263715708317465452960323732488684411891985612250901633824868542819034402609934937637865013670045956985658398189878406121444564706155918745789167606245326866930889528271590886942073799709804533140953851279138341095161119283522797527572313395184657989631926126486840719603451363988941850385197879012760877796771424243824240814959908469538025268224766716585715560601644982258885897019248271235858030316784659873162960868351604076419758276377154902921375006997406376591404176763712419025680894863206754858595474232175404830329231236472548566389361416047734315740304728387554592043840594483090802937584337020696579708346684763874560424957476025032133453232066666861529794828907161207154862438723282424505357051968321314879536611560639859296308043516921560494180798220684218907630773352674728326661568958594712233747692876678307841150085537685509489882103808065528499701908704183131311451004259048281592812770204175218939004183878677199714806924137865413004441626190785310115283887250518965296344735837045913332557239324267295266356879328658399159421469697877961953867537332696862100125194542946425123879578699959504777619018599023981644227664489116425647658533755740714579577060445237431378508383958484062997471802481004911707233659823008045948679529679885592904435828196146953020733410141003680198291555995469439537122431522856923493697357060922417066906293971356307036092771038787529897269578467739601483903270775673745551067335635556094643693390137560080342977885923319455886087386427514885681453431686031286824774547560962518117619134724629405073712327898070109823074926010529781418719441470089913368915846586687396829962219322890259271132251353752076015281331097760024604366806409384118888458843183890662873943081168980495345459781820781894400394164986435957619081949916421213019733371312139619464960109985114363370562944958649908301891206957728856543970738440935420431690954196211194157041175961406908689935036678824698859710154171763292373265561971645782701160584613832172573872102266384035575914996558134965416681955365388506218293018651682611653530096785618661474587166250397504948295901765591711725306863512193479414105730033142092209891635016372303235231353092033626136878093280329227629152375787725312473660500578299283753284043396542442127353276659146633839733788761763574307988925726371190985288449641911866491483234472409706735238687723911879197764961541397942799206914938145619007865029097811191486998057497834304654494689587687585037575655727829439118976036375721026240676881348819562429580545792712395018473772088663788061103470153539804202444830412322944107600318828763599738994214085842426811557044285820392420701546991217319500346911006279295950159416540382267212105845231545336832866808992261309630704428728111581314795467375306626715652276126221367618860582535763280569264382489651381902564149538680115224058796383724412858600878236384006009936485415828069974391970102310132656941194753288955741413790727621281388317635652422101084468869965956203500595090952654638260941969243694895794790253517087112430115430398603059087023111761207230352488825755989956107244245904393479043547628828005074202520698328407946597239762063786816012655757553570408764826676418451868229925164185668723255527031644538210011839327348727375138032388224994379965827506677436331159431407986808847355910806393702577034312554341812314255053230595629267207154049025045526764173735395487958251367944917518957587262242480467443153268189096734464849849249505611811616601062874677083676735702852452439001676940798377786472329891561009672043963691264139364590165087507965299711645802702296619160808854756714107899494588054886196574838168050316427948309687111381579907754619059496149611605256709430420785564223355097751432509852337086443887768423476767953876467604019908833720322119849333687318740647365095473547882459102351488503458317213435672169317069310188179163434352811765961178513637844659966153489224097801467484885228410218567799563748047250313218655641366323398890441625513295238484621070053039458818871114574528550942931686378104868605685708689547227404028446010772650044321578272047930746977084073913551300629427111379357813448902911161113326146245831805201412373649753469782801914190358010608343633272422273194812341039271805929031566732479575094126868805641543369087880830709766387219636778994157232433743404826988164663318085577058753926651065640423465866553863514656318973893543497322931960957015092584115123045990242269708848396139658883029334259336379679820196339345816473645979131355231737179198311335527588006932661124471603320710317144710268106714269051863185709649130522882012791819129126525840895740009795609220383280346504667892567497317076938438878048733952650654591889002688030131942543932917509413733962093984882503356033656151346262700391776665507567813887556162090788737191003176209507498954464148300724046804922301664507583330281249751823898964024571010137657562087146735390271153389382200666283872225147149010547451630501976269867036081891558399899972569367502009773628862619024950904103507802681821257299114425522488837992372182336848309679232554142714766497285298400918240930171772804498739673274870714056657292530998855614681096309552751372931911573758531439130345406730021673057411182573342052744505468766693395514805361288043362371912252473579034613653722859433305909841745101577327304570659377425191854402928228725580666982712214907247226262787064212713550737243977149032137661084583075183872468949651354877236192216824426247514017720188798066202598956669415764292685965797342819281185171249349535975471784635155436568916725822983751872400294790288526442181770724492221961833835321942322684640557356303236873677228650784262689420978131669180732787787001700507183509476685609121932470093578678627802631551815674578788357428691789351863551285022192784418838925979971901565455454754034536425534566895577831402212600899007365470017709411623165802904150457281774388299840513029175067008365291130156979875014793569027962741295097859678054136788203927314895338482085886578557316805954353516738339057107428994342006071209496743695525651532950479270960162512749532541177134271199638064828689189925602041826765179271440196555700013329036585509429887441531772773142665201602415116842989046437424583978271429149429919165869256644626666911063046654051099721595667592470227784129772562656937323874590158792336678422740898890305407773487374877976201079916378097626791424081455984890721633740114260781322164740277133514346984451830243186605635302354575692689474072169962256575372162299077220095086426983085939752385239142817211878968882197048248046995972615455139956151811437578893258908290186389937081167505810557055048709240928057191336091635500554255898071263393379516347748992706351195536855331287268631876316230465409536442673122309996375152015405761552714143793308913105607919221537566678551400995075728925446169843107332660501141711221090853403520220744352898661525161590648829086211119862584133417598803778899537665279620841633735764095419383834478903917392082871400738096168203896550348543766686072052174492275464594587158342013015353962051177122355266180334955067644118703308285450355549084124169122626457168564394673166271027145104112776223766573041978105873214132354132692230883808288077813056430981590739150466414791012671433455043587758093635327482715616282077483910919341753620526504067068359535934015514773709028630617432204518949346850466692591974616471272164466624881211064470657837172449039264809678064994780923719382186078106369207693560736963055282762632671632061757446297992881668324032989282161393764575653607312387406698090201594580797712906154968723065817997657827444939179388988301048204539732729712603241057573977045045787859797584688446737444070231474690959022730545619698446440524184033631852647685418906889427730586073296083214600170647469569570701130037456222937173991907824651482556542866558536613301844651887587998333541860357138141750545752921116600795912637345430869812275167867169819409686634390769210884354696787443016680553114977670688360928350789133553809466961746677807924220119129119611580051878975153128899921993609732553705838600551823805530606942509207414266459760336961675691340549032577071941327493414355415728276175442052949383126941561399324030599829566130263310619253927326618714274307987731414319133676341439154971223849034106734185429790008174641163644336020338886534933353529476188245083002882249950681681264709531782062755635778456948075573300194010695879106877101206005192554955396423483666427530274793072523157285225305299412095247856277390611219879376859847002769610625522458972051450168167809206861166099037172914717791872959002852242298850133849906939302546582764612873120248425535038878649824920481376288322765730112297179260057187810964959495700726278084052054046733606582667816838987098699425497946217504587650261218214405205799286521374141933684620754466936437070141001819343107959957919154710521800190523326109477788134314116440659205804139923564918557154879680860240959789342094562642854652542851402920870358326891203565121439901129924124265908773984385362469607831866688635739861450769262264293089810484777707282284270045569185357920190948507027164306146798144060522319256918091868943765359470780261337668683130140694268155255814851426870169985046751533091865034285350073461291482482721971111221675429196999655925740417419587314763655212863528036835747327636501922676919929152407373785774158039143728475090070635125527935010811943531407686515909503081322112273159216816404468535503478559244915532617105722243978164731086758621765143871074792514008517223948656989101341637124601118090843636147916814021779190626465789709084818256593455281107653876155338657842630525935630560678359215130063737366819745771050313643365353319324479128119643139069326665208338300523807847176932394354716185653536147136979508014455185528623744027978058804231957587735474730875036372431502903903018276729445610144528237170512936353348298165068493942196405197938885444353160957612159659386201447639267361202883724186076174335338761233181862756903607245758872111849129637517000405850222930057980769606612041653496348279922011550187285166759145017528903951718480930946143566937161014969729225205422244929253265320927989119493224164706941815400695322304606342031406406367438982791706893505101122486824061315468458491212094721632838269231525920767272823838123343004314663391473365344859350327004577853632139644664992111273300336686459646428921630667830048049495119780344675754206079991580864335345039804873169039949681127033114247791679850461803204825134530617130907156488915367465218476961728893861686049585808852590493335763599735277945507504845354601319541219184847867265967497428246737597334447770276740891140175129904725647635365273931074188351611577911110143366446252532758481947260967176014765019325417438658640959992200872522466329464662639883178833157111929120518822430273765715607811769049720309987672334313486597278332845212375727794504995788793810542634815448755459898485769410482630189958571269034737039202082648482779385265400857956733476499321231535853217037863770811142860251869275112790886880531712085326851359642861586440667505832144215235431378585082393445754556242575300719642725392698452506518245818337581567722858424191974424582813124738601410457613119764192461132297280506170326068330733254051305990469014062394911855869660655891920491232120490121039506673437742707643657385707728301503607372876474646709796956222987562592556077468785232803108417237929347707903663929018357254307921741609163131159054231119261932050855725724637506852955731587072130359442076902922517638165245165367947457972171510264681520589792082519081308618615933676681939198937737060762369692610682253359164599212539209585135881076214802968077878799466995998455084826525323192525713622415893052079675109677080490447122568844364780553567559558515179153996157721806184911971850886040435187991899620181929779115000172002074161336166076410803616164683307192197887091598102359530904597941782074510788074477283964275436636206491889767194317940955440013102089103272913926193232880966911521769747481726586907181036294703705759522259202338903884982293875776863744044576716051495298779625874222571753027768913049359904980046934645895831769415164226893858918784620260110512995260211749265191659276503825996794077056895122522895212327589686756816868852643555080566758509431261912791020919506191320118964020981928087287764212682060026021349948319594024595236093654962788144503207452938215979639286717314497081130073210024329432224992386149952275552057274014720307394163846837174028636381087594599696725035757787338195779564067253754629857368737962059203706943540073957720866759024069208223485590970468036572358628191937273986745229973336087844042874440237783351065783501101436828978375835124397909845784454886442423912413187950648336058587906780079851750546043065710931260396019125881089445358177070418837302435596218867007945573000083266735099503031783373936178576851225236066969560493236826526508752346465705732633082943760295668958234638005317074087903250131447173115561072805989918401525194653292504318296477654636506166814315997031173625900880770449747248162789850203145185683388906040976404943853316611017260426939198587117953228596440117584121393924327074944561171514146365050967806118950937401470316553949448644144483811615038352916748796807480059460040027703618615158677262708542682879634907248608709445775731357130582059270495262909418875434254490805205858680293196538998615157908571271676312341827317878694637743886381346074017443735895740051561931143763561388561214310370434151983143437148553633119337172231570923950416314786864493662812243025564823652838948314622163090917304454592617085282852352769734286830457553514296879236085394960288243059870782823558042560976316144462703445572248013757676800168616178622392117395511611497459644805952273988333161465234608640471908122831062873339061928745633851125344230278570789359998428236044960031087450851387583837850725855942217197399639568399759684880544578072349048466669378312822819805331733893706318085638793847014197283262095714221503013065658095996186848085229430317361770436418425365092806794982985626785467403744398251378534767780755515343129560114603063465794367254476450692675659893286782427110004101226862070507235982403946990576412492601087716205031325711053308521819618536683569622651963818804195467632909403916497264997162772846906699549601602367605652287310835781177913940548799438959343715738053847524331612361175712890798448005003874134914373675234288456512340416216886575062692781442390416057221580094436279655364495407260183266540396908609324787764122743855446091041898355005371448850233231762895545267637019023235364402582210768072126641643823824641230657504970904939268207482203043029634919840356417033330208153635460902282027365273818139639638583617532184736929230298169495072238466441106907682497763136171462101335340673421257662893749244867959124086869178853295448142563097219179017084481426014426569846401619673433626988834575898929939709141272236309358802803519232888812054337654621226142181282855848552546539116971530031410181975607034400664719404883261536732406598646928886127734153637214265816375954899092543785952487147575420241296061560925257025436555365460874768831509858886405097223924683251586019998581395289136038259787335669582777525608400460187379974245033998836634901801015920617322663737873860221721729736991977351908073816090112481419035904858213006430504301024374365705682024163837148057383562905932308186106986144337034512816950531734642558887883204666186579209056730552263313812779299438852399092770245009411128662582940909559292670555266431740787126348008062341555606168636696062289130179285101135890530910838104861301336977360562208019304678426859200007567870412597564066246630422826170206158982457721784910557712934490329673819333525065880640058822615959653897259088161606630952813973534576360394026958456197140502756993538065356428773288199242322346904926864724704955750549845352331721707642020731539751036905812255646874014361823338252364458461012547141518635623947866102585382374600106205658320852014415937472305759203137650012421803587174689613097788595323340204876260699587236839498323804891927930842336958017853268986667175493643655166306455766097292929787187932027360709022061246244192349138911887484386665227763908606813265936248298408137259224005730443382774689037700130931111079914547426826782792382063263459234812770443700628963973021952616699689697154010814106905351602205658854826360051389841553440883540816586500647249490992755774432064671751376685163994995373875671193253028762524711187409169205850596216105377192680900473157912924334067480763968777997346838409245957645059450580710837786158546171274138495340878822337197944869104586710308640831744585330952641429434897329199428241939042194584262160619639119139123029339996071781436317507620658718514455926753613555378285604399356150017875669956260135664525781451278316832421222068833760760999640430690806116706513071281093358831957255573768146491321802774164322568028055412869340627671949199236190158776050134126442681274541557857249016213045385371032933105014459629946708443177340422773147179652970603173380775179224069411595702835071884664689195846316246625082020108024094677781669582565815290908558970376991208348857485903679844331231834937534852302497148501779092240847866437044918365192199922703383128994108214053622060058412870931220549994130621400451136708739025965901496876507806476824584895832968960901874406400582824987918868078805358469102364291456492668901161564589121989147700128662562178201080445069933321973674774805850300730379161423151412839041342847614736704819629499712993809407755205882601881265266131011011508708508184854266142877318306489504741508033344416479999104852398893187251379388664465392540572422612939383195337559132146596165952538342434045729144794970312989027634379177596461849585832085306883762137608957318080027440603389446806233359971450255567364981970656899208139280590011767528617217363948372427083069137326624252464466535090523193241574298066467468761632605323926346327216653810984902723450480898133926720623128812488701966949064359585333167593486845719782993500369757763175932226995167594402695212916335646598407057138133005413035099300060528683823685001014271191600213600010732146215108656206885379937821814834541989664057024596008664815190556179963738998138393895627859872018263141118791958660571482875300930627709059573295750050457012759983664177634560327497949244515077386595469930276783843083576872058507623935716674054900514224414117997204283446029414166360141502331226951744508841088055274778646045491490629247762484809234769386524127955127115156275525439322473116234464925822592716150232847719099398397423425755941106010598574612327104381602645140684509289286874513734934352382540614902912603157860898534302035661360432193555083304683610024310863592312929497150704574917818433335677816680612227006729340560912703720706764471308511167919325109946342062080452431102120498502481682395790348914394464393419780455449224391502092848051743435950513432823377113286723026809803637421719967579215420867887504253226996228331876764603926324595916402775087212066194473840600377814158010964603113748879219781655373027782689121716959151608414154896864297557838217399885023684799636756483262734680532919784811679307601667649173863595971801402121856277065646845837357984642046203962774456326756027355476917072446964620507335735745604894334356212130620339571144934880630309739772200524241918983924626626582119834475850751874475999867429045643745729239616555462078430437766876360218112668036578552638001105861597600410461435406872836287365337535791737305484348001801141332939048847600327144683643689611096032791160148982726906201314569345352111340355782775531359387810443205214846858535766985279165823449385878199015687890850878509336160136514579238267099374940626716382042374486708013790259996848027752133103430612817772234721138583572246559101429734207987696122168865108604547519554456497254432265534374616026157241860747095964981096121497212575975709563258129457712644723889324663432325356270104180068141491404182729241446133778965105496489684702652346455281024252072685640041418482183289919364445741759028268242539755237113682523501840757235457207663770076160985093783416806750978003224531876617904013526013852719972720582514495697705306567330879000976796954381630460076914910004259591221352158509193676318577561646468038213615796220624186559487424414856822224875876882174077054059276176460833752390205502960017545790453204533985702641444478326923823107465020940967909848471329224966483708783133379956508863020247806916648441356573241860168973463804521916120562791484939145444842915648862930736509282242303819290278000606742579633344440740256925685369509954154115893897608220581635426822904534107615089652002923921029018788358035059455684446306233573377823125724446707851785754381995820553689569313184602298601369789791840277865642003023307195768064371851760571240299580462795678641757446630128447143514519451373497983510887679918079925714516273478068725601717044837504828397964585715706091475981251192114145696262635312510424687607379418502211639074281327905699407055582934585860085091254301094784983093325373466985284009999202620457132020564343781646368335044539895695971488611051590190765615712798523474443672970812279265712121281513381602935645236438565047840554821391344718258407568113292136907846980174053296361365131059405833815264968033709808714360518740382061919420032142601651156677545766410345674351731326818379039109772038748785672119037696640845634282172037436922256160928574493651357606619275709104166059198935569249548157485084420612804347779666738800491613479867361542152460434349145329952760119392099878435524689787685372813311713199654083642098298456301671718880850323066279155264695334367019311754907400923885985602203763693501652663460786868436673678205697013968672298423581014543058097091056681401418372712482823826379205330460811045629902976068050629721867306802616306188480712067435274106322615568484201998181110191419840850438083758637352362355435373674161237525177462123772041554486829735469329141627511369503491773361352647430073028009541904602548865524944968231322786266852506901778953776406136526276975685009858285094765439680269128373935432663570664893089508976224865581001997402207788188082704474036831288824795017059633595620773802465593637776275738001140219313517437942274162790444152027803449373441415446037453434449715361940993452457552243728235389027260867175232663983935062864344384584665226288983976746125031633751416697795638987306024752877568843848443278921418354218563890535094343009998462310098809368497854807048142171274003249520115680014068710047874427403503520906417920918373456770527358731835652093077304587477303653332259646553382477618086848956351053333819799398904634811692665255397770518761528537339389101750714120722177901200817860220199263222831105298506950330599243078094989840387404062898947669375602812678882577784816571643038661800366424227853697942961618639376446812839699627979517513456977515671432879144333224898485614553445997409630594503729396162870550160583629931734756975387518540098066247888758261775676262319185112868736066178028458319561292071456736169627682729659166214237224709667436479938671696688191279372935616183933051042706975734353408047453009308333368492292477413299424853987958313477436725078148322243879114677894492808007578746842050520545047276898340711614170730396208362196957762866654518098477181468141340822725863586907719367870122798848900940682608258629712257441333023447753635342196091990791230466464631782028676076342791730837891241801364949573471041050386239376150933059917768319780941214561440778896577047678268286951591953731596145831897507026566028494986791377863850225666927298982141956063459191817035791229599473330078461591295868963835164015481590620154322928400442965487016936314184319934982968735839539600182159362554701190588747474170043682128159127415429180733780024981630392976032048721175615113519499726298493384420996340062131486792178744401643306994048843854437630864189735495780006707565313884801565173854759778224443918589342529472470513346725854587908927390154098160418441275673602082820476225346322346774604113874599617681888271931302021618501637624054435983860393507487943335124952944674524194022129502289808657079313833462565838120069718434563692289237360477662876538307347735082342881484610742824184030430401182154512095082441828647727705361708888016226858503294407614623739819223707002277736552876473394035083465024084101884142551190494363504203508186469761308002608086526490293929685784603187915267922199405223901594931125589372072119104720664951998024318194950299356023913863543013763655297997343908701505511952506415268539901378516639706349749755937484044467487688908751539494527610251080318642620198062736435869728042900979316038053478861937191968042878982992211978220638517943788498051038564675755946965287467090043211364896487851081129581982854575791400593738883063549455503101537647790045130865340952439497440309120895174071412724213284591025047763647506134012268502653890388148747661994141860312806878325388936722015836126997783355107018804958944758464675047963478348996552633238952184865236265336736977488895067964878214222702528016378888473083583074965982959832155577328983425023723062838342093186606981124863424973674902585262867848088224505229973487327924780382678548172952211298391961344444190313255081029276524674719694315812677473132241935249637897889642333524160609772386617452057850916570585635318761647736440402729140333756261038636121702485769730271995013042044710654356647834588328922973432627127254585105479311355203972148283339116035680253969234807466230166222296974773353346621734214300720960226415541578941592121525952544276194126828736145584677179451888975879145605897603918257559901265092700798967328461767833871199249251830382800500095122056509758248850658605110301583218797733965432297478265748827867843499797087093973937188695963645731481183199125741537258160922086626651697538425776295428314077628858385250570857687108603457701571097016489035995910227617178880130797380489521327750795982469521214698190208668007349452646499309793235096831560809521145012309455997996682298249296555349269246788041211507432543782120966571552153472873360808256939298584325001994425899938680335457868152316711762392245052061029567990621752202100267597519670394991502299801970699495280669933069966775793775322642989515149402010462562298833757876121423692210146745979985677025270132249839246781022735003486893891755682382603907890437579974539345043614749978869310585809999535949927475729000229476672995127728024604436464336526370291608379215701083756968436688088104213818725188103845380525409428974626066876505393752956860352585481783909749932814695506718650600124528780521084341540799793975918072691434042740121360755632506481240622195966880994140278836786063087488028680114019762881375433683181581533047500976823544359440796154873229320331150291028443946342331890396074739661293163463935710119137685532300553314966812307801535307214437701752730528108588199548357624805938236718147905185534054889466517088545570507863327402773464387870875161213673578466425276073638311384023130386145559016167909038262783758282991174609691695140283273067075813363255514935708950802960856372231151157774243575566006828209895962621133470354383344058855929062251906385858983283976576532976003263743934661329509980867909979165963468292047322840418026742544073178462874918712401786894217401013217204167254201985655303813998211737249606781008918206138562560979894825550379087572394697500482026686041867246199040707241212032639545057572563725677022138606547499992398826296753465561946878872050722711462848218129490724117375655230474380150195875392205339996776197130277353425924841736357947145296988793115598322599187006277259268997337981198817972815927061122857669567577754272683236758828734912223497315610350409660062481855576095833091424723555049973139623436038610951640002518767909983486869977950862538873677112378090607567911273549758490791427405817363081019907684554470599798875907986641753011548614902785723042000740826283822682882411184390867566166161330169422429216762738093427497385823562813002277398042156539835507837513659256427544737024769667488832916416756699569520960828595764189561079991983679096626468874561144052823050350973450227763904079615145762865184539749648792175545974475930620875813799589205895976318378891354661675514561690900495743639110617769104560488876527174160946823783309018134567733267093104225395014086298344095277276650036935773025469190097433062398092315003414177589347834870660406453851681924337225012083164068114045068022579335647393090388718536910462786620222192109727145956774790137725670834662270764509376096979507343728469755940732148532608934047010898603800909728731285287125092083263379387091956376195918871469553946830710033150553367616802580298975292655194624399548686881794135823598634872609228120697466151896485265082427269785406407093854991727329680265576157268927749867633777237826770736655666759728635804698865459460589169874810583783070836138881323642321823223724439820202610380758595895735391910264296671477949251806270455585998236281745399153599938638225600714663340021881126843285057286957941951876092901877354273370068797887697244231795931733154691940183231874067163856375551694454709115669841348700282898736657525824498358538031787274046375103431186367222687841199260794637136426116008919459800155159787044877892285156011970865472981887688669849775259321489363621083316801825243314029755409634151976823629369289271706903655811486601168764508833943976596033208483650401733367709754351136273791523635415734468674797418901586785533383894892618410920992829709003951603958512491770211178347109026425906768897415127851345237009791579929759210936225215732666255344244079705384846181020019394646319303634777114838007950400512952788731398840451854964029551312604794050787084449500048304176013753069785622277325530297956380239882385495588107944213714654893967295382491733550050138458528745519111071300172934433198686217070414539570966218791098585132271408028668810289518269671962366858339967862266820483297571029907231705545310731567317510092523152441058456227411486091791864955734613235118248625398509091793105528972918346368134750246275164725647968608566790622471340191160099344658005810334381314378956914461328628728537272955902724627063315016847151128571554172971049050681932654136500877706052536956843489388047263169148109164071125147917715958132259413389493174786563451512636046020030348469698256582059718148401780467046095140710535920110963574512531518202475187083105004128280117062232434904239940395147272654308690992552220191169233139814868811322478796046478248244595510953459028468151002373843945681178722817829334314927983973726935698195436379306726191271971549540457481445117761518437723773404652394052307622191989366659699530566112229608475601181713017446164426595988617862116451087736124926201245090690047389605418718256101853186581239263049896723525344566491929560483836499757861293859707399028170134537457001470022923216141533494587787914150713657516640653267326626651612946282899559118611643471695244168202908485962903586844918336265269508333172220049954108211359395515737408668952759143680790729378776572046203093905348619135405843539394808367125898125116101484453746136378261827292108041685406309791230991529825989504314076171828835981587149036321384512003883059855595924332529245851761569578706925195037684229267473612494570495503081594510332251616936535922411249352031317827180363580455772710048769259365209596880395147187363264260108413150095534028792931427645368411375222823137818506683771617653238585854365729254980839134764499916991211564957876649197258455617111012498445835257379310629385523894354027878883144886065346767386002264358716649001668561508994824321474933019699234992882725231390313556406063501981420164936912476161317094150480173177100816234912673080988056998904165218236027177824525091656297066514177019939125615460923633927546913105343642160169887421891395704341882088591193387391877446095682822471282622966893814330870517049221414163005106779682236693678699717205559716230004516561902200744312720259182612640527714424583157372183634198717339304864949629165858108976145668545590534135812268881678130024227575568191431596721729390664676129013786607823992228207984706992223128243142286012970531611565814647389732625232274808061586193491686608049866407747507492111366317231749367737209833297210754480691105324458678655423260526109712762939706054878107061636466758212414330594218958773580630192401934176556943132518715578889675621996385445972487590719299575864801167903157168037660457562008189044962318092084938622218875373551750296566390763591686847528681794322877360107794957004251350700318712930001186697496096444125743499262262054469610912243972812361355083002222871917396829725031871374439866823594483648739282059127334512487701574726558636664550374431440137131502298262836957616997778449317502351153317432000620787375035093243947837203935826434721400160184271013393162598423204752688516284842028542164985440613136987212572136519841211667212319688013476956415232920973472623646416856553937644651849726440621957189981190597445879449102888039241043364038881584089606947832099316966150977923016887017623143657039115457008728339252125263641682113495035267959916103780053976629243280148015842301960738941433509975149688522086825706345447436378436243533406443950220452792789474515283614819745836985842924906360306309656278816001975807283976060610029033718997670201308362239370284359901130406461809348051406087631455347853203121890954537469784551248664747472576442485274291025495246463947060243241382662726732672171541686136193510749817815589084867366280185695387425905842302963345306451340968383039704894620369733053323119191255530748116924178202528770167108335192233358417876433355554636023889826786211573108988505624917846744976598660831785655135944224208673578998890316066605017858129597297007431615293646186624226085294530843782071564045494244580185257409041169918156852660441294130897136864573918410626405141526119486501951453585727712770809229981702736829404164964486699865548997379678152275146417337533213963761601493574555190159256741062982524097740186723241787194829992230732271938489725475203482984188456888619680227478331463453863336481280152660911511454842560643513420792746864475814619517164133982622622502978023440292740997631169821893014932800639986037639246637237147115302366713732524117813174699800863810332177872916215744659734609973194158345866867414668888919924538101256320591409384857426483345081913763279642816456326190884250352899225298727109307946838946870348483585109138348195052524936952848640377599550465742406181477643404325320462219814089183439032902392949899288850737562316601926699690739211033845710996595873790677528735392324295500772622555237283965898475963227631174439187497407158035718301531123392695983506706886158990746556736449719305163346288806501560759984418383139756976598100312229530220979860412759603676595227951792327288848424194680995893188256092970500012659589659841673100451576218016254089357012597038768863906259110576476616037310664393789562558726375517808085457458818664154214605899849969154256387511129175405380965312719178330542217360943763725516421522675406357221168655404781875859388687269478488104061232504688768745752095538039804910043758725304749368292154631399094694529519609810129448389594765023786281449834107150349287697204889238236265787986471868509157200516642700667240965345465462935343277293795594900493619888966795849244757174887875030359470004646160171757430133925143082929083255780439416777455605271824504429316106618994625813954568995379338314098999484984197736636744494117308852438124063778799605677682625912264865479361965556869215949854628327940326516497164585224735870523434055960430538334689584173013833058440981227556682652700289805087600737761227797434188713790196069162100809353179997854587027472059811060614152417500016810010897080172756364885041267789021604013127318918497882500524945293353349381359029967313187816577541772254585045007449165408577113701078702286593235502482142667103701118298171770339148244974414411612282178630708189021374489946126657426294656397482760805010151946671872361621359080058501958213771475075392641958344717345634091248506341356844631516904532557446259467432156396233952449965318784640435163873753076925623960830145294453160359908648166128508175451733127272441332101467591649607409811791678364739062552453885971890013288262519666578834238161659745374481811393875981836944784263067550235876352654504831418487472084060894456339319915057470940418254730080387690059022072498988351490927218943848031755778316550820202533004825949030550394537571647627861339696436035065543626360624702578683785196677331866700967375004855244565793332148666286140815339289244345754210596064242372532904421648153101270679160909517717636425988330758940888433078028039718495946482292885419653154869536243395241250547966644605038173331663526315950015712800633569807235296630526507803166088472570332207777988264897198550743779845635611678886949463011614843675903021304115186898057642931994231129455963716695739830791276847730558336853028098261987307803785632880827769680679142283184898104112540161150107689720851639756209378580091908704009983312448196819090415889895404530399753313509895301245776643598168076700594791179009370566788109567173774558894371210298928659409938151249260417353646590431343008328736309332711402711959208694077462281499425821048031224749129586126521645454440939264367028413383166183877134260745807160197011547458041715377428012858679933909109377658376788651985582306597609770923557083250663342658246147023804909380973676052761216336678908977433670455431765970533051026461444502721863316622856859840796224018892947459630664388017047488170620519405343172342147652630800087903398413114782350792265151456962305591199139453059997506327028218694071350835081173205428314995841568098819165665683514637587168886107915101358761696881402238076819299782665675838441793823187812483875568249029009771449917408347348208985011407853432038816067966452970266412509084872816354974720964400726273502027491962226654976625792691026178505988347376769074758718943764457021197488635691604118680189937903416838121402587167472873287040414778063292271849186361103401180117463607320789256717393785779167941222703250469944127504595267477386740268576320017494254385133223956370828722212266905026368125535732522449710876548658523926276315771585936585113883340047117067934798412648534756072474519705858081961881443677184364189571098535569523664753828496066209285399108642105920127076236548986744577646435427224631619492090505550676408419870893732052313540091084026778294996621507809586119841867720695113155474336280929844521383124232669851452904043700902393577456104217991982479352069203930120883315476811598262053182293624474312931341025004484828490381495701841909105534416218785614838156287482727776378178578122390536846853950090760431698297619076732403846503198378385033226503654929653759205624263231249705206868548619423566432814634216652615903277261024455507039381192840000211690270509787074326118282189268954423315842856184257261170396527367713021300973806777680208506647301841690512751940955548611145085033861174089111287008421736623090651683114805164908466514161235289845286253742530058274666009243726812899079691930262413088322261054304973124281429630177004931406317794916445163691427090896279884864261758799530672975207630938374828818722747195092045025566133294273540400015940332171931291064635106331255941507733412420617819474277220372070785649827452393887183047433417062056460602218497708652257846451634695329671478986004072413728794361473834900969079008401982179944919486700908630835196416821371734251047626714966750556253948272168230438377638939566249540706107977426426324254979262572339216179185430931325721631578514468219263764511943679986631947864922651798815015031416193380453756346819207986181490192070413379387501354047103546327665271566059400337636586339933285622809357529495911750078979495353485310094791140361999494525659245822286774141482271303932115469634009430879479564734111191395426004381275359553824349967351778380488157602874833245045695090059336910559771629502550462056068752808711119045749248312045353514543850279370714842293253557560804985967411869245256266572934375601357535988475565561266385379613423770536142138224782112285620290753766062406623447957722025361792400011256622043170556938840960996142641672174515882231562599464013119604564474737344689694994637722401252093741249276530920379095808607719320518986688537212557718619559519238170834670440870312846078509590986847268619940322949953368648771474616033233058435236713712637462792010076680648874345247027094757611015405473233348161461189100082471371950454144857718850137853999006084178661488202119188282429927991501250524853562547748867493830328093757043043118683796524248685997550023216138213060723735568966652022623056041607531841801354166759402155837157028103834251664381015497637469865968742467815977198155224714099767206187619254422479589654092223352927795787490320248733846673327680212824618815965177856508871079026903124895541046208357153213050972749016308734785013027529385053549533028541369816288323058400350971401302154060820629529632960665092180052135989615167814398873807586737871840235634271819844091937727742588011919993782133206315302059865368154937488081831071897352061170886155660394786080924150593180998315805203248076950179515099947845155116447312410275690942903840125142576597812947734040311611894964170032862045302464876926548778541462513904963927163690590372787128319799244145460597982997653851605705202700019586209431037086048772133206625019293410105983978072559329319269811849219559979279644581468291764841821725644134115396127032424868210715856756504714295219833725353736752366534506814733260196187897882875186118550335820712597466862252092751450919426080679797129226723235321995131658125151009244534033356019495228506912749354248495751759400290197470979707161530299685510440717510816000401680535823448904953628446506257220433372146840173128642832601777639677889401673910583012772563218904744157722143171539776923513765669890362574685575890051700352511712207284366951930535804316388272862696744371554340980788143479675906386863550085746860443501445912199015825310517868216548225603285343273006643026339448869349439736190392383765821124116592059608039470355933855332247842344319837753870095462336246347499502163124795868005897212431653432798624064387324186057670568991423356486699913954821352111097523957727270290905184182137615115089023483018533593494464757254272328452634855686118338703102913754896075693679638250802303694370843420290147551070786141009089154187532442629282234866124206838905160946352841869005397786635671790219571184288937386644625077880601338095155817214147288164973558450620819634377259120842349983812917369533841288670134962007412031390370715308785663408578606219960491735503897149920214946695249465076669860156366226186770970474296436239179205584116086597864592115231208318210640578439028293800533057527043235325921014987585473617044915719541460547090942329238572280156812817775433508821121199321658302518839170683202687214814419418043929581790053251907068409137338483049976863466249708013681861080771628066104569750452686772152765227229618704681887619808159264720197526886322839071043383212970647659361127743238213162730546270113147614046934506800941791740410314416270235172765755836734189124243930929427646034191312689054842330759019334675913978101657666628338467510042923392697485190990705205088227593604524959640047440396098447933471499748527295202442259625053963414061043948811801854010180451104034640019911193740878636641028246282132481787428974003125073139304073490758766194833343295280714023244822156780917874138749332074563149590792759931873585506543681317904336867452456754772799773862456521422944723732439620985606962762357797683448966764792957664098415537035502440128846343621620704520678473955624092942373161336174640741984631472527295679865095454094079069080792070723016113468625773057275307204855446428912116473825284293083817939514408531743251698640014943965149284839016903492506475255826726734507027422962844063089041140956441724768084895091527566356852119598466131957213639594273000663676376701155387798575230543981252933307580729313924230495170640898612669675421449456152065442565111007071775945433481746213743661138815395760346984921645716151130143793855824599745538666287172671119979582925031569727522534613308524181531592261955851060058606772071427909921762599681084111606049500261938978726061543410486196235505258958993484315820048665197522116033214310345631606648410903664712536009799367893338240477451863207128382496655143028341642668772498500944455603281152490396785654436608503621732925372342204159594085952471109386972328528923891746262725100593155176384491409691474823151754033357261389649722165209361767721774957832653671648106191246353947323777376643653789679779352353813937515072035352912796218647032714084306405241659548267061051029170142465644123775093731686717739830958894788074701723347137412600494754682355003513924760926511704400316667456730365532332161353600125536072768133388817005449848916975980534941610858292481521316127254896321917979748181658849129644655043335278257496026110279222573980245913840779365824400456035695440779525914054095275455622220502604866880811880898180015744366986191231189263697852008545300584956412129896843402009578940482410798026263115939979424494628021152603194312471747648689662516410133734937012283666560731192574633201159180263066678300018704620489168911921298057613920381697383107335569164178633727873739391282795010385520059641334592978913168172541734877174691222273529357659775644133234590524358729124739825897483654901483016393585876799156270606781341857386107620134262924103127894529933257784451862988307637564399536679956514483280722734244938155279990349295171714268076683594700252873865011794937589596997284725329172615235065377921890852259160951384128732194168914503622368966425712591735229943403364781060141784151618365853109272787130446873108715332206757509412754984727727072810136078629975930866490540252537403800130233460654416228254529840301834913982284240924038507828406612976191932636199112126430613009502944199520922072971127188744826388426883864995294954466448279368276196889169062191909589118366389916687999017023340554978824183583764559685810736724676096224659023228506363767745534765317225230372560999887417819346948544541661837577885854899150665852614625118510239000721101726874983250808568063633966626422511569161145048888350098244617117751189277580208786393657584933509526713713706820972395310285159574537342635349793548091917951540140368024677932079120748762996671515087026688496100539083088995058411155824347893991059643390374694083075650732584161148408807602223630783243314579875418719177355671510133551063060715521553733911485167060121612125322710754490790660036562455384482374525421120697371690458284105464614273548241549528820392178090614950831579910847785933433800218201175052514715065233470191676448748894639404752655459098110966302096620001395454426817577159651775855874790265327053328882203556948558692978079866593499991532651349949965023502007803142035222988008711906243392169533987301275601438168004835131721788129112092419897228390435560111932355348729319784144417917615621735560316954942545439684780725533717136161930832327709571861568254041397181708920439708220873398609228653611791555312437042963686153740760738441460867249285147289807435331884084919649471627153433445749966230884977312370664846490031864463620543098380548800060890565860546795212939944648854521867451090614754973633442192114348890509759272006689621765279183786120639911372300168183389276887942396669567062658025585681063957216451167332867077107928516855198043237125029769356650083039750759562503069843952312411534421716882122699611814363970640384218889364971877747574008097786191863090102215741952689948933209943685231013467506329917262083030105354229530502406519593016866245307832211745743001663539792551600225644137956449717625135907105578707422456172191906477233792728321519915535857955135958403837696922186937750934249372847007596190310710595604882029449843716054612551000104148792190491788276452166951496515537251751735469498241271411495572803674328833227607381048958501645036575452614894308064310875536738618284803981604106135306624709291857223452695862962527716391821535967606938207319384036112878975825361486982350015376836860415711448175363438247730845639345325925248925676694984684051838444446784984002706441628433475090080916403248755084206537810339571565877776315003502428802874783774476889088927278878682934584181986902546149446520685504240418880346421467791268288368503049148090044785228058810280498096379070153993923526270623858345357246363312843357663780961476231082173681837285625571802951463885035542719264756903921003169154486503061042562842469454413448233301474856860020490898119474449852007586467986403605213811506351193612711027373227559924024667485229996862362745176812362479664721800189448313948465291256946881206712443213893840150649705082256478352369381563446745372968109813173790569930260165025018963167328035729835595814134814549785099597549227483428622542273446091929439108453686441009186477311233221023388515379469965201690205447092681144305080423169015952842403667289191830807201952743647745811645235019453066488489013774226142788606989297509328470890547373482895459186582093732964841618142011059863479414221606558411827735222338135895736839066875264274108701733176239662311831036500875704449316708723476892228751659182011837482865112637173304809336188789199024492641041479997988688572034879380092243685712590416660023717855858982811424208675232714588297847493021758623225300752457602729777510631033298318271160956931601790788221345093954246303577158131475663212760443665035013509870193032472122009271208235203502990344611872160266388795939118319782139858717667146131694090278912211915707901129793755964224372980390480888211497131002258802867163586913012969410118905686059013401128926686905790746608398562045020462078153891328688187121876470551745536496966689073240845100451132197637351907440501334492434012841662476178187109384709056370247301841745579368526639832031682264588679602380522021319177056677932633437346462560357784729657513605185486238693798265468093655803563436069907917210577757405450945727696538839135139691971352282296475318483503648716107837920801787849895143388063496225532804573036854969284340117838093573761975890047872503182561523867144004874726850793426472605972701604741728688177168796483118064822244144700800538636533339337216992465611197393209491643018101401952117442220068816628840996226927890751529810918226887475807125631294920333614257330404306070070985175223449173494461089734089046229615096820145057406408596830980378257265422592839211754442352679593352851199668042304592757939786960636615496861318334189567931499574557325523640416257218697480607792311540794594715226598617587691578491810961933022851304456056045092721324976580659605091516763797858365692670131243334935380087335760219517596469487042981082224066862697309910041458097416573256997358525360277258881731762287710810796448484852377551269071485903487361553487666670748159267484338973952253077549158738931384108495810287849747625724388992872043587768986488205429042255202124666566440171313567997399846962155346051610529605078104048833855016089584241165659755543287211444009798465503270795484594025582230100275153321086918991534545506612801754889731211932583182863037858208508705975577307636326908947162669317366664970222458750484972426777428999471061873036751296081311079046917101996280251955822902740248243068452658775141082969627070990738940700847955224481650452091950187349425334172606757518767583387768984243836343522297318202922054986407469768398869181155747369430610814669262013219936914710656980705754203813340995857107411544683305970632333325909490519725286451558300140149754193587064154235977996292031016298812267752071158950647863869951905234513279196307585955191479585667256565090056358244910829985486170450969846284137325637488832060146661666473657089762068406444498394200865603943881826458825321424407914626944214951878906518984724614631518065741865405918961617696799799314658406438706856956748843794034381065427238596153330016857330940392729262930197767924620577976591500718904641450088387671493937340968765731158371681754321138444183924065383693766361090354285483653131195241349116456471464795899227773409753620573714481475944541762534585782960855063775558941057359455685603522569214639994295233314333169474225661101130758867918781760683464329149590661934760150017671245466413692727358161647246822797280260764083153717276709386206345033702970885746424918894183077713613601587144392787776357480774628771749449931098497338477796696354434963722687262548899764185608438913145949891389099325227062250299051688729215899611727341935283045163958048138151647712758998553969271168205554743630076712322251087077488283744389326391606179467284629920893587819393175042114017065487203742141194411232585568819820897459375341771635723786882330506415956768088496093871575164339558216320233462260635126743125201109042082820485935164365766585774378195980358733864151138965527694248861990818657907994321550287700819054011140521201137533408256920955825351540087783561286629293577620924589746150290785463328137025605665775192683408022504389751524376183398740628941236484531987560818870502868948808393377254721535918409251123368508592618047289330926504053818675233650535112599368799405070378302131489002690554698601179830586364942251496747147155788952092608764104154731602398561377966408061367510044761067686014795335297889934985963826521046942815321553878300864014708662963926691297949732899777422257539512602068391390245368123922808057656627548127970823634138097618087366104522900475044812134198022810062660263434811437271647523813144922281262411362828003884581755276387042016081980186317912047776635219204612457076235143084778960104034364374771083424220774503220130531961533781009835524523563098468534617646068696332021247969104124173728820050673845093637579453941771330418699657028505475510490686517147403386607993261215186219282808502571123787658283702154151839618021917004066612089584417339571743919345542380987360388269909660679209122939992365401322329743941748446030785411739263147082657891485300203698246370154364870131578625059971493750649241020454492766290969150639009428967479380800555675017612312228734582381283265455572164920943377920521456300998736171263407937256070215573414124635172607011128867090644170318183939061753124047962431805175013908010605094077313834490372862624770228490742906458747685683584832843617057382110535611223843996685751226904121451062869372416303191048523318323055144112710879920355210622550183402724479692842837987639581617144398159097722545398258490227204024767678581914395336054086030812130855713294255541049248938049937190171972656835777756498906410944932172915648716460807072840517660664248683238444669954862289970589985735830493473231299753975624453718201624352047260933705801822448243749865225932966962180087039850657797622908991400294332417476348635571794474868815231371583688645812319005524618375272185754261709711557352580803804276951403205119834920965336680873010519431716490233612213072485879502197881482999685595279594010656996524181084304729829134021268012499711604667052406096386071976068399387578032794697279172641978615031702178924683670562050797747631782792364823480844651351373288598096186691913324126399179689339238035744551490299774498844509724922714162623416300747284347031975312274175141076253886066111491628742829386463324913330307333624732143391848539793606249361801808789781159530700822870086884055705052938269232752037898016665681964824425440444240901778418181738263229169648534847595724068373691881566606843466075251786322126929827277401312549031491516474355506242084541463039399771579131826336469287930312985696635792873054567046857765823777442041699648821606960079636282380332292439846951716874605567844742865897845185022684227272732513992474241801377998174931581367905790779197274559336113049903263492962279908947095747129130179196999617796592455853485129404897544011647544790423445362644444149631228617146940316692323138148254503828237384019169534173855880074816599757327813852758025618748336422315618777585067116705933125565232770183466706109020293383797185148419207657309521852070865655983811636981677397001252496623584679174070633272700113855783070034288537070916886145600076052353512987590822044884651208714455227802442907554781623022439828059272148805565450935830629007530959745270636511394566704137939609883198965171630261725016241363676037294633115663262412347372565805921737316396970699499139886491941523929274378249600750253689385305000826395765925399241442842344887497834976566640472813399028071061898113773057411628046906627934830117516790510924461172969538414565706357736241403151285092051961812095397139181637640980732717372702853570607595075282444911007585412612486101354260403452049156380708888733169338338861677917441897673335476136794937072179355216448446049199249825156797382375849055669628014203764986533292167677070959402893636732294892729427212135465086293643904108176306549012718884878627084289720145570334015524001970915024586732023556306148249339420052533190318369788933837500105386673498138275468032023929621784752336552607979978387918232975070447374840989429872892758853491048618204190101616805720427511492285415482641463451265875339166578634333715227784549759766529069236616549785684103828042252375049059853643640802382802311101975396492177993338430587255187680075874544537462778136566290648287414383155382292795619689872390822949811408580036920049762896994808852060321293565787293760473360118468604051953331766348122408244246950756477540683834470313281623371328576295036112733394110687955364238690024916155040662178312355677596039168335681399643777128611597896516472106126012288776355440456706041721727577334422234699895383964468932645553981292931981887859794298935289334191368297413892728491885842573944674486489956979658378683592830385025957655575392777316835919781344623231472848711391877704148510829112993153229669447870653261864270948972185354949894479371106173160569478422556777355743896387057394451702159017746475345441995494153474983275288644662540968821779818879364279539577193607232683701993861748223391747464134567303894198085399931892454118770582062310608406882601204400077609275204176318997995808870992116726161055786565859769797357596784639083177455548098409147664858547922227037389623405729110530784507076616613398095745731924146238685736337560846058459641183069790730378032464524829116084274497061224044257121736896104234534743725019531827846534869431176887346896995682362260341387888145919287495515698127762740225585435857824254062342536067848662425649110326423570077865544035725678066324160075234600209268287925970221587168623180954584533773609781865516181232705870892212775106950550066508577549222440538390024795057829607327688176245558991796511118169841043622529602498030969573696739031779676656408057086559308833314466930388830401042113987460422667357241642431763002801592398532260321984545709654319311972947019239336600916932573118271660887211080376965557228708868419702443941650823050604930566054880949770862529999316431944996052733413878196436634823549995638939190633009806695082855469319870240188556740081316541239478376183287640603553779748080659125703607870385120054569790265514259094208848863885754073467051989362387966501041129136906587548939989357678487038627227635508202927768169819596234694053010962922709132936470850170820111773467019464794799474342481291742485938324089291285142563836331693978183396500944940928120719537384301553749620211248081953911536398064500929987947756623772000481669052881675214479406473325967556309662449087739909271699859068577360477517948698505509558480609052450059630942132978853819020655953087584520276476043300590957289477892844532530363940591222751140415314542493763492444162290438442802804777304148712896712173448552256259773658430065471503469594661845478814997513958783811746507300278706759149322684699505902479726582981456962407835304903471822074743268277183858560971933792396780303077977418376238661202046643522361378920594699490791719265585423484051214866889326769762187130172878297149653675377719507937249158374618508438504155956813301556107832739915725989532839186778321093498685470791669557410542758441942594786273172370964341564351601196883612487546852334437185085694033146833632372416109486022121257791265613389604423281687211228718713076537260904599059988266848584987620482907547010102162208346361136145506006770992117257965115291440182659007275641826695897003533691919019661524983757789330101338124065477429753522021927882567990935106702851383952664344466198144123328389489828953029830633021694000140908350186592279096970026422134352800432815048479806641803741077457416188180123439509351518511609618354278754476315622558686574046061336238000651565538067473746079118939119786480881597470061078544928753111298587976891814416646394811895791488433191304636874228236359154205521857118632851709328959623225956292052324105307928349463152101531144946804232413131285000396401650713551025662593605375802295563737159407211629489562163984485093328623538317680793550191710248400823906664610839459583789524791418677994672754506923546979085914892654659994048766053999415341186097255176398407816680898082558933239996202327614407828325875954580156524171039380766482017889974930305716117318136505571786306905842656633278287403982963015316395415823370323418912309499416121012060795548963801722095779905094613287387011761287495576269202793044662615129470446554166280462733911651548379957758726622846937504390342681952752819370349173187305059590145699313640313944808425407467520894789913947395625386671029761356896888594235451989790289362824965814935546035908974120682228641762814236932677243752028988845075688918616649898909155247155976061589649949395060442843021035302380040223783118760205051189821722043320739061577251811914390190558389491322582873182567500510889146690257550438202719998345088994046230172250324014586843455832954276993902974871106570805073646445769529863272432717432232043610278976585915268620820136785671007211260035307467994985838224135761528315460596867661360037179122453876437469500653992572621441807457517181845888856869962028178077716559591514396845428192430113998501770319737616107203335755187644872020312956050202271901442709073169089029956138032358653390142992326882463438068492285869063788258764494858505024837319376125231798292085423754297846548095616170167425649972541333478191604753728553190987807900499677243997973331413176022173219205950497596851710883780146256422347045638963301107937582467148068901897808818044504571075214794673104752395955599427014599006472053313668267939263105702142121559795544293541389366463259571629049226353914964844800514762844730969215746282454925556641569334570957173308306020958858371536677640544190949532240906095199944345114263075144098381597224353087960982515689737719176790347969687988632986214554293987167930285125395050864340121655933318327401264624827122355934550091029055507210977554554914739424451954643821979692663136665773327150291598298341369916366744201620223061372608839600311931427829666579443440275337433121773414539190022510318275782452725069491371877668752671120103679740045122386150216481509887098680457318561819970884051829107109147679172699146974914356771923333519449259261328539671956472147997210118271351875497754807762683788045447259322506894202016694764673039454223058171055073973382768894250810086542513142551859818686086130699199217105652796628253825985053209821657971185587551433481242413169532266608840168019052820114225101397427804583153400774239371158016257410553824180047341682112068564181687897649423053466480893951743757576951147859696333089096233796650672023276652386854328687898920606336568759131930695136970547791356619860278631335309154916605298071076248134827991717499580416851710904624385463981187428267140362176871874622508200609397799327070885522263037079987916543602152599028600612452416559198780490741079659765760936586802472526964199814664844570527733657147758272748131279606366851398647512920874878129579690293673227642676193960697330363186656917541630497699622645533989375547220007465473808766550075104934672487549315946469804922760723750234842477225962479518274198807362496971552838514503827339990800804724990434750991977046152016442875886565076004087457246564495858793937908271797665340939754306213997323567226628800542026077439091685706803328047908012415769633638650013438175321910899845558909467276451820458071206308712371831377868714773174028130488649755059728867064812736394191039264375345934891951460446717157881486318626516595971836193535113919608250286241075931502341133061306409589714206277845216989122892339153196945559742459448650559668807699148592034620721280275309224675674571532898139041947714953062571494727637148817768156664338610240005531105842605444415445313048478663866482354501592540254396300365842583728383712038990600030091719650741795715426378804126376367863703346297841341245226245537318463964763668984735549617938824249431107743603341676320083165320246598919872007187583494036547415472999259466592627366301511758452933807569653913853913612246235048668801399971649723137420297012885479449029779032395440429443682391202380668907155840945312861871156169679042057718668162461211186163183655328936350327371322584912796110749506370906041750204444722773278964143662908296489155905223325094166666169679838151710249626432293249252409441579220510937365763968125933225288099558968180553662996819657109115216703913054274570499118851645168640774266808213749837337958681578140652012555937279912714165214843778071730262021591635993050365966456807430260323278237315229476139715576766313404602257487207602251933111143480915011174891597183266896097276131665877175865399610857057109145340842189684205269723534199957809847508735148921565553868715021061388963912961255384630092289524555931761120218669752038100671388642803555874873965623385261978710166109037725220652017206693664653584250968919496610364618170877384197944200078040157004380700970697210084356139768020074611144001753360309202632978645166311934791143362960848397867535978598130798994432132030247713041247128689298379447477869816991193143179822268948294087524307777896082792425285108515753074330223535605581181929792100050187852346930981649022797526294016213823697176116890939668440932426127552869049399601726868419879779712750140959223495383745926940625747865409788745503643238304729106377151285570142914104558384996953051192703676610089529150680417640192593081698898133352771672450567604218847726924337426318344006249815609422726605979126478069853442369717752172843808057838007187575677169723679248100712383892264471768585127901504647783952950111927122273817386508588164935253205641283264839458307958518182174098479190784089274917161184819953337388726817243835998740331261817680886739894405762737780762176779840386889577328912024077236395511189870101122297387687682261937974718120866546199978649152044096423391690818587236942865845714052767111033948162407409058745309799023432473261970427145878174380864420168454722714567880542822098690772124008538954462006328497072081623921236262053681524914840688822653834543670366429220791660570069993153479678291063642043980879255594638700462157023974708586869053809308304651373732317280186297955083653977440910034180585935749031514678990563882720694411829314608301653256315488536886362227073949648265903296377825028966345021829453067301896090906747008986692391511225176702984698706258585698484757587836009227357372832214404806456733463882947429729843639069780380688508227607238598106910265493878549769535940514532050782279594049971194644373340896225151428215809276235919521197878394125647377344888734936241572054821159431634432885673584042822632203332222244735152593315929009360703003922289201110378663215632062464898822777829391397878408701071958144515772113904774536581432181790395119606985740978779065600599487601351150437233691320153017198820952335169195895449756607586079474556691949087774063382264817102400051651044196647031860323480969325907206538719761657329672844153672907621686717750433910774544405192932145310630958635159453822071444612680801642760588533833400802052506045359220651018843785974816342309489202086855261648613329523535608855399654833653001205926586263752608509575099363517556294118352743451175374123846664980295232360252304501743130016979082656570341014254461259132300169205041822118686401755640417062263951771129104530199320687879272662676361566260404753803624625893095363481929407139643164251335091521783915796159554316067152518842532909217415789509205004450846887502600777690821349232167546603905967370795807744876954331886850181900382175140370991120598834660464706375196783395459094691840839484877330693002248302514486029828696792922710500333132327881676881337334210951800213856444668781735558630034079706046206783602328713452625711533444487641861028948924017313945857852441952483776169580961594422264538533407090134032400120093991431792056506112173179540811957975405345061735397104432940462357385317822931802478026766999857468196456277869673099147849873941006777383992393286394613295750417319906224161553202236163691381488602659806214910761884096113415316086321474007517488684798365294634622134333953178486127669766171917360726517396818122748303701535700433690291684525828952216388921502521411955054886969699961892988530573519603215910831779206551774306401467714627467958871200229918464659517990944884546529798349369323684272601638547558513310573669335351850451300762970473931727527816604661465532933241013828048677195868804323447336611839840336900105896995222451990087176887918344328472401643132036943368565603918540575784048377794407623404146835478414586025808814944642110992896438033644000314002087664091932897626048852192424859033271541100564653208354450484193434122273248100799887077311732641414927881310746545726000641828495011384327511042435878273844387010604623127472152056235801298146344346776015975014549824809810463925615127670125775607248914737943186984950570321806953050217295035882080834928844899477021554364523518502062938352444690070036587121130655021998639138745144437427336833910658079592171383698465695691850523177354125355474727228640540314209016766652618952721853657955980704604176974761775908314963524655477718479926705927604835033915955534660996130690277880122929636343147987963281732590570781529801762340413067057848521931064444109438574626283213337243921740226964243337178593327418244659323574226538205510816992905221307531119459421864382584168691058425149613673154862991230602108669939493217359161987843874114976167014414466471950475216554743798963864248234101652341996023880182673353446007069849788052844943257650744312358802873922978225157718779270844090965724456353899157782834363436218463762137932944317809921556202550080668694432518520552614955918075746429496759279311072908624597519871749779912434682196593986817040346147360158709075308776617188627871235537171109046678211799967771231275352225654285304685610046031054197792682481321838965393639255887446365680413794269786558478544976539121708316660418356910386355036587592284692130714944568327556713326705373545147776894985202018674801942639420569352348469009189429371670457257438888554844230368520692859331937899884482226919838775300894020004936935546671243194391963011239240845506434394524642845407375503240372014083679714523091165402424951355202822214435647007225226577505072655990757109993381841615108104752803576729067298994307524636252590648348533533743190636790506774257060932387981200875359773567526639781309238963463421130528461377225086078321992751016769708795709534120589227541193712035036919000613841823993981549765380346418479069862220302463806012024469754284939989983244345427231201545831449406525607780205568587350882855806193044814316185757280803939782709655715078210311088789705470116647226094937328685218495105227281981313242806739184133279962503637636711794702786936537570131208151364540270942099002033721844260513163482217559836901170152683975773743264683231849385964708171087702726385762906893370286028146040216285242132409932003561919791376246658328785010442505485951445443860970856459870794463457894016562400614251160254289584508301564604356584308983771280379195761605612973873745650303231873214130939518687651290029623400756395391917491868669996858603912669764880715483099012864215023737447722957719865296530707441315385079288580712978368538072817449248703294533947125326954626160032209891282848505699494899295197063018957871214858324782915371673603629353865724630677598409041368407665889707950983594471214040331014061653977643181838367626520865566216924379882934780014501000586843032185185108531334712565118880433373452057002771866290934547446604951675074893127602480012330638929188099068943245619594957624651238383478478126954958629398117737557824448798238201305429116508684348450022405136564416432627092820171725179004724602384797573357418319984018655677981926325186022400740944808896158575623781020215151695859429127443879580610573736327940193219993242946891944226361710840153965968896648222468363947587799932065484101599229167250457286499260134768344133118602957568124424237589625641793536329368906383498388026029426677409159770157600078298664877273781777258271751171140995225763004871327259837150410549543732660940959149044671850691130527230987870242775590459431089388765844334778005368522122133346877356420000820061805951316944471640139395328803512158630760498490915862369625542693116664626538734334924276836852516823638566098862070174004494819669210723640481865716653893740583633662045678226815879224157950607167822864556749813489843091544831121559383702963374845110963790560527373591715359676955712402380646847204290128058382217051814554091639294319045496578145443201195296842459462568955842041544674262121828628469130573149644956638350681576161071703151100566388123467577484737453423264445224110568049947628897953338265225672813999840208479128644590771473042945618535239780263856671612920659438009161882987601444659197868828937846523774553906517445376690880835341552524341526313162021044899356756694243565321710596656280642472095969355447798201686857620748950630667249433336412289342029682916715958234411180459082755572408325826151339643921763920623448127313494273022958541367431235478747748720066120735160762710741434030055581685387719598350402837063472318574650584103197298754444454383487399818176497712745837467237070502907364897493130442881589260447104045232986277533366648269446773126214540969737117210745420339331177070551891976001487661256712016884137016163452352839848658291748558054792839958049066270158980120866173229789356586862888700759367155712559524149359673654268131011536741942827876054118615919820462132189133181691118000005302391123596555847903683802489529114195661828714722326769957056848452107876946476537670639628322449865888546846408768147644888052010948018193260286742801698797851749794011296024806651056179782649146542435604407615043285655028564604940485866862266655333719007323735656821162275232880059810121192842415483616356134426844307649298682003348224962784620587734986013816810381498862318851716125837423978975398886736051241087538028880196783778408449699008977498162266321241243551797713069073658740586562451431281065118250058307897964786032666319724691897779131945979248792781474516684688737669285352574629810654720586780656239599803628101094567733444426854877736268331729238343675693526162473353404459312112608524675858004313993499254225793577671574736355468291483753711662818373386535406384425439652297566193896775689996792006012354113307874420754543548175252485188805134375919178290308412107625391774381210939234961389249449164933048511709958963017377596200626854073621015449411704669682537895446885188553909474335408589904658968994254445857576509386851893088868338868336830618253443401258042981981401200554236136297333757515165222039949650418584884226135078738485569266499806134044141047537626311975499443688119132973571273753311756179681471204842872174371949357449515654771712387810618398050885326249209655561863973822055171281639063778194743070174371559046014272020304945926635930961023394032227830265050474468175055566002311896878893327078026380549444195916177106970035178180310532586229868841860652305468599533638580026456184034904247446893458553610962849580541514642545030157566090449987436760992157050035397261282165180214266584551646332924887494394875145355359369035125809267641321489307154046422010474055709442162758998084401348070989741030237262932326700066300550979710571434760003060800054877034831796544606262073677415141235426403770414419053300654802125220350882826645093888241207482702809513859722910930322570014155560887261458057785382936235467934288740297677921612910985128956111156002871142975989980649587382402715524667234209189298149880744756143762781354715627133477150376384126440448780559089043727460855404054881727628216926238904464416768427210166935756492777932355710854857644745763575877713793539557259567184268038343013761282041081829822216809818229245320706614825192215108900964320417110327512378643697521603069901689839012824603823234017953132472393285664931092012237475342525932807569282018568118040971718602140042743436687114433725483151800046844930668428288760590686287569624274719162177865024868321173161386740323783655069690290652760603380598520138484503159797003621570249327116059726746956900484523534421036843781124053845526227034293318253233395800751692014731181407889686024458127492953027154265723604866486731012282254371207414757941600272980288352344828166555133685360083099842057141646727174105485020778528936099474866659088462703568761256965699800900938209661506738363031647114627397223389588925686020771986466941521099031555576905466729644145700581107656575757860468876849156302313988301924557316860899442463258938141279622667440890495997797343687230407759546616866657536631101738487901601028768555045093834650202707677668819665766837802930991381352757668844351552086801288160090265544775064583224048765731634709753336689524694074282900241655006197793171867788375482996014108547467284986721015936860367486630954339767209987710255030471185147213629709480124007252377388431807174928154188059876176461831761806382766322529759050920720827926707822508147105364805056767023130619115163552274934275581821022175855089247960323910748127886969533679038798105429229196151347357468143446852904932869701964569755402939644602605245640467422694645974705746098572460724443174288211736420816005516199334998536752459911762087383990166118699432475592739663538235115110044249021836292863232619661352513106808403536152811218497377646394085519618727237055588141587404160775538092057687319757958572634377649103998215460179994579627644795154794546205420720082176984266133027323870299043519750724338520773928027752613007943701830282896520762250018916029188142424437343711637245533611482071939515055027268479745325610321962757521913365807668451356601579230368263729879369345946316565096796625638078246907400936436074161771447110325360810414682861369107828701145033000524575005648912127174845294323001481030168137462486923119259850428659487445627366821111729541908519610265385891917693954295443443606551351819651216877305023901312593673465502335165523548196385410478657011778178287659640265577138581701723991973754272876931818772048575082946656118361219739920475024961984146949863853038038425086913538180704509403818175313754856681005536841844242483828596567156231233559840592273673153336311581712070595607963353939714184877175203912535476404427805198039076374924522288002322742822368662319391918796882727650550228156383722853098606370405827579602616323415300203103668378631645147265564435263125583586953547899591245274903363893198066624142441194594407644210295038996843142851766326828337539983209784361035508278849018236778334444003364428730851092242529587580703643113587965235782196188065594729115230089798013802287072855462387110050895153543234820200889479525236964178326714142434586633166451112403500557011377296609163507239548744327416616522289195378507941075063173294675510895198961381792378924745135756575359980524672079480262561340309350549598174058249796804355872742975288578193150050997132455356409184795406723560946207201353300059192009265072622327747958802498623592185254835329404804545049431483948212783339793991972290896638014925319889385397498408664103160332375934077529918973752107020630155432493003526927364474020671252851021328212615632633081464874867746186106835863350492383269885645657639906394792701926660931628845850892776333589818938074778127884365444816104559545133702400521538460340224782719029873772237689671644502617529998033051312554610964070141663703873041564179828136845655309866876307820889839110215033452184402512288250260001631759039807752225658557766246315405726341404931117217450554956688227866632922847256984809642863909123832740991522559070848121289548253077580885179250297532850595860770633423573735871477422286534179809027455994786270827337732402029278973373155462964657031558455165279272028327638085675890395073475091241252826649722306201757937071741636372326647744875133636392832472783464507335976323497977008569097307759061315983808979601245713442115381116628671023841127178563945437710362758184756095316026446169057368224060292583530987523510989237514462561963628051645491168792747301844318213806879384752185860766108902987118984800384204618874516200157715176234326319059462441679753116274107813442348215283281155512999814493249684929906868056834878595920996553880325871405745150476686837024638892536326496188964629800413709749738327804217554415470742825474377193412250077568178673572547996569102115437731009070834178774981464346680751323147573749314757393431356395661365414046063452676576834663268416446526891848166732228929481168637755174775283890180942404988536711767402824223151118323097668934940128106706038537850996488994655724969361944765512742029169782940071858915353941417460694354022244902920774187578961091010542120646242548392233805353941710850100785248557660796788498105430650528515451161249318307893446975615607107361937938849010678241057568164388453891366481981763193074506202831632502513436537549553190974453785659441812794010023115227177396882187695740910850084424474555277782184089638311079045479896927341103165746453244865530890348249665415971846568001302842496031101958595032797549320153756620842833519408717045069738493050777566640365530106000219879131134793969981768545791198753496485001771911852112487243796036895163905075854213658579164664947992124862406109036298481810050830430819789155557035407069109961409523493370563554919266693674260472480837534066025559533707825466865122612431750866484248596617437936024047784933900249332855463425596815075446055994597353201726267626544207346464719401191560299295308150890256436647126028199247703919527738510131104380578957710661741057920242852118270030614145806138509166803707901602017608521036267364016059487602270718201637489424680029502696718924407076477866702030400831541704676135951560205265550937685320557709917612983917188446377001123084889922134761002814692761230713241880305425016921807869123409290769611687613323632165350403989460108321391476551081756772204652937547419188705450074635475773856280580571138490957236854843355734765360533681909124361552584095529373180888129139149317456226147190144730630534897381373814907319624603421683006469943227517357598540841964476784836316993101190984095437181216944870227477588289820405197773102358369996412846865294518740208298524034090765556027945047878128131091601615920639964264896694035106381097843869075863858936546627644837213320762316377778345623399612421561893239652171164665692017483040620578447315546795713582168096415864992734368744420338213402243784193309104351556002906067504557285071704367106895175131219151811601025124565085379550810552464720354299364973201434398882338867411862384780870072730281492378800657078104548259106095155728446168163193062719982136922626931656680753700467726013151344290439969071017578055070070920570875720610554355513744241173973455262798518171503911994435306251986855468212116397073629212161849057787862207125552089058712937897556872191204360891647628581036319620787378438314654950725994749701357271835699453307053420914297179997385118928591359124845931434307695894003074734062848448147773298804356448179821700501734729665654941992864192984982725957982486807154856367830570042154526131389675476064939713327313771662259257337995903193262719215674810391139303304044987837796142882532697849462870440114876198271201713781274694762294798092040397875992999581706267439892125287042156307801272304099154824029240395844520558547182883569257239769736125754974432372118808891465386783157308399839201405045335822825773721816352991317929862784250788886891813740119886322754302382308561012338290726422969042502194893986558200587997360092738575315243729182807369519921124194363558044485053227707204835217878298085747153099636584894549627031821982649686385369665037223051922921327012715583170740477696368734520834410172266490077784808268518723990972267744714591692404210711184868181273097416768413098656752042984681737546746818484890163374024921841357534887452531007935541420913920433886569947827465376974514801109058746162562379465607751568804065738942586103750575635821404206078571489826151078970796986852612912837675040716183880026997640231031561223242077287471075823149025619319366668314270244943925941746219391840824173881171895428117403573301198720588935782783399116225222212457885143229047787209026366987240202146565201319983780143993086084884711640075732322448437901705629404689978983593454001018351387439958465360318804458037673660282738543982263383818532609523725852010207094358420298063049491509251741466707323755946683949252495310110564482928620308625860731223029026664613118113618882222662000301399052138280745632742610968556500340617132302292091927093392657437676828273346847553749251304499471265518191950499095600113940599213365377839758856362535941633127370266894727030751590047581703890760465524937014858631816261271183262166450265670562540241869012587970593691040387125335625520332660195777290516430165960801395889547901965461629659924302275266424386314247296521621176954916317809788014573995720298364130365710201633648071240906362127942605156070382715432427981419328841007356947941635851837688543436937190071330982373609947792755305121489484706159849643546800520218293806725614682808115369694087423262080904810385581604026781866457412616075234635329827475219586958211830366793714070125745746570453173048622590329932387893579444481860864138729098074737655854844765365456646599008264807431109534322283450741122320760100375394639771198979930199611405981295253952238786880607171697828805577417190189941339386324562578115529151093670335821091859809748720658008302672530566247675752780549986777510677655053108408669212761427229740790214492519233842896754784280824251639194614025839829698201379377743497653547573163915888088510208399835626556348990311693647138849099519825783365463555406377272611494143244565711665650688973505621108624148827183833517863212020082422970096557167962832358430644679801972943974789701044147209399928541989022118425721107443624626198623810392428651800236715748931101200598891957815425384303340486103600425337815184942423764348023490955381624381736496632492771610882864127190643079375504033328566923034939698942628145427691915347010444900114348715925897508579124631174438202432011116911263223026953251665721075916331054256175476090669362278007588500348381275764369253261154991877851230688878451064261142796883397157565605707139650167765594903569006055028897280732145642707047436088147212300006621532757564879105488536582232497074550474890566829566906544813115771544326336830408155930394437452293154338526849741661392377971143419255460296055478618157952807497940037396989288345303648641919343771365205181771920252549608906400608782590291080562671578829032762986140619858302454682604004523006883342033819113531766351804654276551256431183432618401229881236172337327358832839576696524942747235334440766458787518796487497985949952316898031740337068250551369973671941665268882500101573663612248491930351105795461360832819464303600923379753327877161308828896448509252495084351470606738471735226421552149027991171754169917324317908463745532849468915116763100340933145551478384379481609637556497320759937962141358743444188561700127686578296728877765368761501389430332684272752970301410753534163417546420987366284429038875189785113642403931561558931435133155313030606036560753688596297564754881699163103500569856117108106384328906981921049719032692609271861291592934768441517607982402731993514454646272215015082779879235518863120727859154961680078040481129017003359767652036410603025538288838711032720277651479122716513600218288243692298266547912738608415545365828357568156498759770578629449274968216821056356843755145834867879741319199031572513468058041132231500655579952361699287271494925865993628604424707754511361462175865298306778369488294344969522176079415292527190181568764504125297204188760778319060234881734333824699746823301499916391110143535275033231492850026469975183756108581315241986057648632841336115152939274515605834695212126474474412431810717547364734115599853308050238117353011411516447402272399569240897281302139121856288224008660076674212551412138237909797732754763465983253287137278368364195142836415203899095875114710159360775863708349145277374311929377441536419626386841378278731212510191290411102505374344380032387375791180031267159190036839227701271656508392071922109595263925102502050611885289321956936988095678853493082787414806637942309021325326994680863512823342461552811497014080189016634038202512112839555924722615159928895535446588864150512801530505433102101088857400749478808778552401959151688082334696237966557790356835814044825369044113809091747464670705955731559904655299099849933961309359181026580442785552670066615521710751480469104727508469959012610650084994292355359232970663817653191394555485023015005249239753907311441011445750935870948622033258174707273827863688373508984253394404754988851990357320735064471898812793737274957140401007403990193595186028621461571751396849988285374312254893855150736290671237435380110792004963425158330659016992861770609697496159636448191762783684754444009287718390904632286783408577731630619661070298904673138646533826929966395187909211361282271961249365350631452579689951208122813486889702154546162674215275524616285574584768125103359608935334460985766652890132670464506635335343192342613454000245895668041807768914619615903250938733813664039010190609216814181143605240872984189917657683598946948729215288851464727830305113025061339414860843005573530513097736796123083904697971662376715612403089384977962729943765871469074542219915271988487428140000814603112140587126863338998357236041195506770852575671545942773721263631197073969821636235947906866626734557493627251648205624675079466422735899009423490976319559526158785442820850808205461834606780200989358772157092348342747610003935921869771856045040585013720730799955592226926018356805473113656568714572635357123577259999527851801478967597198716073686351998279651567465236987870500519039261006541509980755923235946923076313314124161914238359847412802752439638666518372173814711154513107742239246430603662037301940327681814921912348686079732356607321549636068808821533181680359663168105033860045590842315265670022473335004634905736292003008309091410863791631055058742249321931100334664882244473482938560694678990104146932558306675449096777097204280539929134093091789087975543390629947295664180924955257977182050939070622201290584538504812326457863242378900578554853144493431297725743098166510357815861107102018552864735384863783677335748190532047693385449431216611618525227295982656533226790779760079642135427318376901846853598805209198452403765064930745655942114326796511495437707363815546057053986602704808155576102917471952469308567294996961131676545720733077267501286910641623904798745818016741160106337509759859006239938397413490839544650874862642401104287515404173226246724422558713099819270003172238526911503063347291667519398175172394272669413204364550322362082021367541258427937843233632793160100098695790624427691419460965968445757245043410750271567115341749904358251809731789924927487638821040178900837699917984772827733491927165365788501665120608415754767014359979306836341700498697378907710501687386003784194286391622816675503690944002846535106796054307118460670321736758267649110766811934962183325413868219434860397755133043584836575279395308657832672194674345450507058176761340206772225720743238175923250061424446231593445158120630857414669874036220422992997772263263901818325904151299114641885266787889880976760831186535872364144107912370116994935823397336729988975946445590511153624835789018240638155177472481603420082279979641635384539855735422290352773153002363630460524518364352134123486738904169766024669283307095454794029453069164756233418627181393182800897410607100729710904458391439818407127339918505122944264682154355863004564615470707855587926143888433847487556598766191730242126935214563988994748238369976632498816746074619200470862229922083704882743662694393430207156248117240960864670987798387632452896360190426721514751770914333780878126235423417247920120645148773449260115461411612630010272584308907242176953391984022071278798152912487748160079351616902314616276057920437338208143000705769952571110239146770739751577954595362878713557040990486839509980555197074623573405443303259668638716789904366227648045032839180231379314880230369131697462450306534843288271567167304397118497387851178651908350274991044540711898980333666324177034005280406226650105035866839982896300881513340347616903838830021049482717639891932211869596982510256051381652247594438837165488864058661178881195418545311707965456570389740148748265319467066801054461336770633351812398182142484320223357422378658087823440678490305259766034343272416235482750925972746852806954119280955570282865635407998939937584269584591901430617006734574435191285735797972680176857806864830678219415181167420308138123382322729791642720858604352646409185694948685094298555087282509747001207498427649344163545562985609262858256711006479268404555254425384378209204887716595308972352921187256692131965032950500079985924990379835304033777711485206667751621709037761657320300062470198006722400077259539690044491358389065563304601764406363391457963082339800353229308068147171868367647968996325249923640724262053309874102893808857352171938821761022439961076439208299733884923402581735986297362465296885315407880435338726647800899819689577962568567999888012250397002238888554092214424690671202709168233564588538428456877536176268930517724209645812742258077304268272399185283150411354126735769840925692535492378508225277615147198638892402265483481424393036753647378552482970250838929573719737449579178575215963675559446092784155885552773189387367255209067365164983904012798924318128516941207162638607244556845205521217169271301000993338943440920432714067613122174039343965773697758108399072456501688987305779690980563803021644933418498136832797910323413511534864759409700570606211273224430588981025425992942769407699689503874055938316510223841510435097286272434102463964727070855129230018389078966309786109006695391682248728641512509092416114152726551919539195675933481728566509558650987464284333874645004955916129616774410923804013872027619890965480918881424887515344030827569919955805704763721377346555917137208125157918523895508504464840438881524573556530982159054322527052942335954472237493523504023886607137523929258498399994193939243371224440780978504475501325935041524369769708838084894103394698243978377809255064787767248690589074493399865957508682116102549442959282663794004182025293459624442532889811698469121037638931731330622654290931826134473262131738774492894537325274400312620753993604378519010126274781543837605027911150854795545054248938848571057272003026288502480404966306516097977633476953088043398741930807415046239607653903381933715878799549046662225931358232737329316529546191440012916356588241941913473611027223924297109240372548436039189138453236224289004898465562136929079791345416150722170268467327495898676831304542399544054121501984210119396214705019464070329200636485612482102926631225495376220171514043473474626583890404263755102785873875893140095160665076438159262886191325377701148813922919102184430068818433742417241967686611289389931006455105851660267398617620077280354941285197730174497821270670908605113285078808673771503162481290673003896071187132280731961001152232040875030010578539837164138024095565979849725074296075034822747418558823401876277703060597562262806516421541357578840995895594187732357499239412841248443875356341483042929896714913625220472577310963807529761804545411027157094551133949387917666391377304032631858543435849365115189215327030800365723570306358223381592729671572136775710730084207820028327237511091740138095338225151973646727886088139520223747857996617466167545122994504367790093718973676394309854592297217345981858927402894444833701163019254327934857653146423640892554960565126921163583374366237478641300819234156649863920443688982918995237506324958837807491551439402269333887477765203313963718420587390236279181273325388755362731628059781517203414858612461842278811752059727075276652579139354143467642612820304484223202559373686738513169220911514260999312660458780323388749844841525954846966964085664645571496526124968134592882359710000509999657346632883229133821607014006448043788103396503194692137277377707698050861905873338462104716453211137094132051722618088106715882950389781741518547716264540312678211815077925989948301120211493236193357405163259803905310682996675434369190316820318089578627415760273874972312976757879208882905632268720162512972894548021185637905824820341750213562195769302144611257347060363140856185395883729892832504779199989679964534802776998526813204736356702952274710564920680223858334782832686473023103113504861755669578200147654313198711148461799864530561087137522617405697421036275716038725323682912579440413283737126630733992344187403295049913414917408925813002305509913975196411688828397026951522292547884390945005151856219324921060030834304405902833661723926762316784131099298129474465328934481231296162811456387579623699023419523478882964466358598523057005028931395371270992450836672670510984773960681206171856171790249465920374400635280384087306224585050680631472787540846159333025200809205824687019073646275025687911236352781582684679479604880661492936180630674390759182205784263323066503199946370124065646771574796479682354434382969193711597531168293424281430684266026681382721678041387381494734807986110368075217869593683516031154529150841246236452496637501318111356225039714255948419940548165702477135502520608992456839600830597196893855506609471909897457896400458629333485410317952113645924618298356329997504105526624347379633434647717978753516899323193761274543567948768293751921118825816057916631695727295558487854546379702696987713849146815346621828392948234179090798034317898136965910031254567895348669105090739519151820912310319153650729836254658567787579003061637917586682976278915751578514580025049455691312864881008556815951956175657836271516093051499159602473140448555140926716703130274348675073793696761797799226457616537601245855016862145234182342038846264516001817111399335767788455087946658315146183153139723051820770637829563543356405558425392076548209407308761962099326330227043609561407761819612403876928529290495894204940131934124415585388930545642423960244138528404677624070764841228615564943451877239831047338052081752936903737413373024156959829635308617725940918955722117084761307849786304490481723017085329060074588468288286490616232755920138656362706527061446029218459613871161744895654727622618624204259472275236881601335097389872479591371455172663800848632582320540136631115759122845128487346435166077946177204153619325781778401716292146164962287928792322265774275779287032030588258780333626742137823103760232120639792711247488351076097688404080495784471271274469388033843859330320791597922121375252411069624116216698413849522179480380112521644699964632456718374075015885137107223905683793331201325585312732891486541997667131837644852435024722129386366424207482143552456601341717477304544410439650405870588200361334397314895683616886749550784349782462544341007494985789297139927075431260078514068066179604091884544788202917707114035353024634833866473072934287492420651449903824823708398600952547039551080581944319392117554556535056027781563893203137452088361663879125935483718533451559408037533057135422872500203275165334121064480238264725472792244200209142937347884673026932873318637015596574453726259327179760918754781567688741774221936866009813893541491526534115984889928395412953316358991757725505530355006705899581987127218898198046860726557629971864761412733912054368205166401006965648203219053179024775092907320662189260267848298817884392641153955554913063663978066835875934372844456875448789725774406294517569531357709692766607959776124862327386145125732645285252096116360643627196371105034798845415445504094432557921880142591769143420565478558971912430957539830072069083454878648387351665168076313131718641219599924181334814399675239778287303800153635881629094023409173051736520030701128976879481810469374355464295774928010897418213828783882422687425393464533950028657279086617025359969544350155907948648002838701702630955748621204625310758732319853017711675219863558643787522013116474971685780255177753960274005596152626473795777059970469942403635591793347774367446900466029455174445297206014525323732158730147589905446855632103497669406697276270554136905421536048989397187013651067055271603854512849435863377428972316046305620572368739909022626409146683872912559222994172149828029485339017886810912365687816689103800450322444748643203933464341697970949005274191729494444025184186311266020326149369024622827819411386132411315422111454088466310383696629041280277020722578918322874418057472790108820622873898555414683715476263564116739913316927800120060251889456149619130992817483890430393330647630231375664174827578005626679792279311367136682112442323927052509927102202540439714780230452639873159973670826003883803109866568836121614742902167240913250384678800627751951666414522031956813468858770855968801598049795001150916122453513090957274030732246424107568459339001800002707829651247873030347617439807908906726967901533388270478275280025830312788820045983742406516995878435630427997561346398791059031706974717651074540827330555789042178098074115048546238861203356830333887391553720791621540739625797898516687440361235079582242034527239089986964754962905401238337225614877166541139411569933084186971811763339591780916572448579588245741829235437880079389330870567586832541917147363672338449002636752492511891961180004083889978061747473326923612068346376283271777080469102417975506629908372926057059189983024212702549313450272395222895827697885305875172609855978796403778929394576564308323603375240283295297851291992949734802806719607879889965909539116345324572302958266077379302944305000262004109201792413711761194808218699378507233274145117296888335377879734508518425782845266638274423698721674493539477529665344620740111143392177335775240664400358900899577089954107876430551614960291992628067921460263300101171349793013670213753812401002035005501396151457001837455399315569891029283374807579616521637114037599029796091097756373243433110760343471358918012258440179002682819098913502114010877294372852207612397410709588523691561534352981131668510605866336286921878118466272562956640978661103716855671900194687141812007769478799200542005177670036787186479882332857978870423732612037102859295344965529365879352161388277742508635920329726614752357725302747604857724453800545259418433093417111763743006924969234588334940074788077752204907512889755439776110090778778873946378768912338600206872082711210338543333737375845126326078861993956982995763987929520235097538104307083703157772383092188814739362680549815140050883997258601902125069194045690387336775236483155191139471376796465191229803778099741252796762641300873367420367113965141465319987630936540430216025093034690393802251449893680023805073090516328393378567121380366298055479399885650590676024429491262319085178457742939746027699284437855906210988421835087821207215854508050492625708984709341743047406859558381673713125475254475010754103988347194564241445989193993752635555411993887520526991824344693365878544032980447593411925384354118518974605793462288446592420740619638624536349271698931232705259463694440619979600169731806099965766142568045280282349694785126576128874249783474347853488716973141345298122794171028606106061742549824090034842802593352948182990332664259692633156954692159338791840473998354316191213174618018919780240605780559102626394090248119867758242671804701421610759768398891772017256066059928029015361161307284525827445701563001848891511374563244856972699183831135326854088840218460668561321955196715754011096649582529668404889187361537357022425878517389172918194554903309365265744591286716462444141544679936142600233922798459715549619650034666888197064624316643881516814134676823933551495088148713742785605398352712881322954151250906414044996119401492399474369189254235676021746513469060109727680581642103874592228679716939075211227869622545395971386553443929270485254554256711208534060416248285511195687605137510070742770556371864980181789061589021210716202805112366636510398140831108858973330462676461752008394455392571562498192118960218181505201466948674143501322330108519963009647406789935060452895906562486484714885184367769364894147324261574652165078792862871981868394907867857385123070552063918492656875292895293538526642808065643892550731442209659308119675868433302896689959654937272060847086870556861175972860060738317813580608124105151791587990912856878716357332655579163975218829947038669330373793117679121918930730089274575913539954050148683870101747175892578379823683194554538861586151739512835747960777951814021375829377522677934303561930061597599160386862374643796840271032892382416104391772309965033801251430685683519875004823708770641102863450201674903595870580813227115136085967883910602061871317629154677603204283538124233807420846828020584636262608961305594231526516463365385604318640378274207932760167970881125935611074144523136174535949624338569677436896101712162733319197048710397501613345495382070064271462507098826550823758400581026304855869673384245631672004994086472835877220851667556436535552873036516277900054214680125897918477015866001931390811729245464844086265405269655417175087177622969611128321078688350979007745999041750122748712669321987627601180571028504802950294694232881411784095568614524088739734204795723749967565697754134994931845738440685780692902352193610855183526311252082552073885344196545603127326841059228379006993088988593980301816597045669033363326378721043256525894609932944448551460505949834530505429910302361425263241775247318752749767257099244190495378110787353474233726984533026223199795505138022863992649020534420071775378477596723858962480527266999421456402925474148499707876258672420302314735604636448658770933847860560514355414605793633172817080512058222559394077740712206495080054521606586561801173981112029616797169937862309259522070805435473627615270629002964666026289058759894908759117495374030723575597586023482800229284606631318382190886409495551200774230026333932868818536318741543088550381125824194039337809232391458379986640359251025023387178620970199402207119162333196366937765088565505904991015999623330536195011950245997011957660375840031005225055142205881874747509074551597485445646893556083788595552089549659850290646532947638340615229418201670173037648628695700767042576650298690228435858317413413572264179971376523637553547228286467831116313187075852492496788369512534489037315454114187598452824495460733650926535510463014622457297632211430495260715316173634549805621003690675125148013771387420778882495208296236731524695923870523809617878329679047796342967117750368144147681491410614229373277714315100072255506088267050160540534994484249480452922606660042997334709449115354618433377858241141874933694458589311782194391103443565803457519174823624558838215269134898920612659174288145166479754437627424327837314455603976397152152806616675487759283037030452770232001069671408694202216635198917903057060898685931805512117834243866586544081472843992886744894670393424615880841564481092052946029946420586279517398334814500257939477151071820507075589195960418444532337691693858410987111971088584985718790515419427776097028754629138828162866917277357645020699901563558107183336780609316929296996946455412851500222366058256310670091439828548946400097453378307678457395293054777776162609568303265447231649619354971229832323714277752684775206508742754643250453626113869572587780854100337282553356997935509267943891803779193431265118477629774401915006180648675717141730293680612180338872482613664505739348999516817777203458182174760809948449053289040530369595701796742322089854696647729763969149342574617850555008383198245173965303270156990540437452714951302739504615639576526346905729359023198691597542988019863520634193156610048882317134671739535031494014841170840882134001038558813733980203724128283006644198999184507528689187148011767487779104281665112774346159227689932835775967434820580844476233171234065204273346566887993156393522894199962521010479559622058709220640364527718210352046894788290160745025504022590946983214289216132550710321055425906069356406116837505283624829581760293483966551599236638971679913434622309679477283359967016603018987140947456936449374400683369058118722727783050347146274634916970940550775579521385715946636348765014816688540078399354544108192347460153511933937484335238214601668510943879361246373833727840547598056637051708128691048955317508149830295777338414796499255291983321312413264049757394197775993455656273182939341268890255153072571596192431621283148616380275276383693617930726965759340325485762054819112462665939107570902545607444455319533016697663445284607447101984909782160749012355605696291791268619096700820606357477746116505051847144550151088580371590381027536167039663476495417827724725318595576238260841395602957909074653627814155176902022916847302573601488345438367940542102272870280636160374659755305365287036660119668616852866334939124709582703756679937246260396663887768815220601670782732483788741210503484462373307316134873882857499130788331431882325571940873252970276587518567390858646492174869171248331876161910791397506832954186260700382689475284220066046554226814369354215696115679408532338562400999362716612303861734201848939172944338864857718784114598584240915951105124065948660425900397501408845225981439151055492509715238155535521378970635231122821573207373895486890521072119746719766761048955837296617802230760624339880081332222202775932811504020262554102528105055716726910066725502658096915900112393719798625723085933898156191121790262722201020622946298951941436889514312001333078006367946402686598386933289452351148887623455231260793755836381041192657260111232107260375751897027993604659248225533435619333743237556759566507935481790896910988002340672900569801189856308572265357627990545253935281727713371391350624533034656322004667478104619973427571063881338676768767232483428178936754451248272849365766403361816567416559127818946510913182766931366939440083642016240858564926555917862958832591534731671582835349468589100515599116141901900839010862158602382056197539257859777288931444696480949220082867241875110884607210303860335991140597577261836432888555129017104524773660784004357468395145912095823472974728340222295895894899931403026234382518777720928085058109040093743083441316198574016426729729202622954558179452592912884412950523453278515336603525560048276306818468933979814939679473438794453087684388698970970610625585717251230220544325822995899199205249238682208183241423148471319363345021414865388946180825456035306438649487185371411156255394967117932999047161792194942006394603254674711754664426168477870060030058272181261036130844400819533309185934487856262196322964908613576307244674742323083587095020304326323861726595527017650353586836727696578268054428838336681321768993031060510133776495009195303313280376775714105731598639934270427370962214123321863758404835783874657415190231796475941135809610926436889242299217407918816482984591719564991673065515759080928582340433073248666305083174615676865465337044024537104949212999443700763807825474326397875502319002704029600037954004214413881292118732697191434378974852070561807934402452573283578229704435079891079488920959960255119441655653752627791845606550927532801739107054354668881173134346306695121122714541428980154941077073675696728708544965156043532607709574157495949381925149658969418516062990412615437164272427516874555462607202154757115583654460294330806933653603175704883325709859676652760668293572093162078152299255705736483419807079933590099216412086265535911783790128008201653711039847805487649546254685351067745364150337181218446227956222090309057348935259823905433986667228271806039505681992963602544947812817753305611009756067893723046592723903239710990457973119045194791151961584331917080025528628147583108634229844767329372193242912768014481780817230260412538773397165533919727541562364440178060358106630660819697623613438508754015127686671675814714147868481817206331403473839887291681204931373719153016293770718464297252194470212175161808011089862562268207206815551675135862029069505053816556035060722403415296803323900713081973154634535193190201804497376691917841736503658841106787468269766399583354554019636353722872175410374050026580028773749335651129390707610150099670422553320631751426387218705846311564412787655816249081404992877276402380522787811743488382991893209077072947917809273618497578983178427399998167250557817147103815341003241753215478526451423638743235235560946676222655616042019652842841588322508407467828980360080006085524761403881612565806672282723845812430746965156390170942897270782264030288451409808997054076059413484050625541220458733957564869173725230337398995683199354919752673532944055559620033879912254905703149789316343721290804149478127403399364014927499412315149377521216660055296760746191222519799711763576916940947729848661006272241735939067582907125165259375184150513050881218613124890148190101510294385756723821923405016289409313550971613938246997989928732611840639915940038808927837419158655815432386949621479864237433747982579720362046565954387854051288463127558377731123065835411527589907668197680768797827280294182671418065729853314566390385881442796891207822273508441012285920448607862162552017814200977938688323770622925151051745764003348608148182751063358619840135561331114823456410842782128396347143188317033806438449236398865861255265486439028754220914422134190089093383675029988485433078938040922860060210160472164484033769854080463153705851041282154841853591414146768737922476532112998791884212298520093021963978313274212789239903747757385082513088585135675384038297174098780480091258110022965225222313933859031095787106675404894049944326790899655460682023096005508728258717855986141005863327386176257315396821039740926109199477877926154559840123075011216964043386736351121216565284489655430489112824133904193254339233857515560389086254622229286830291950481358288635676684991277156854659960937787745705926449145691094690401097896954821334935678655092341560498358855362035667529650021797537463924066744272171713863563053504251168454585915914977128062973934870650586541314072129106390255481687489880187157137205490585786440747667910678791659621833713771877766090681377383928916312964247483911630385177564764358850624703148265412309492109429104191419853197739294749023546742711412214435482913327062698203844356994632456996532912106172493747446273170736978927979852553910622452964921930428004130050456856606796305657452402607631267857804709606228374069490572668461911275056324573800070597290725086211195898228624538527566299509573896572989636616678012222104017086778406621988474956826157749455319568084610733060504572502728637791613074066946722184394697600065948218509525271748190379409680607628201064570170580755328939255883257651889441326899327769464292959019589691041055739109430059458779364104317992789078879480022267580635851860143726448560534409969481122058134767099951557907579794594303844050598792481115905468663157707060241173841509707855961269324917730294008539950457389533575876834909422563831866593626818635842799579831118764100156284313322752982451505744751452103321254223418657525670514323772710478646803061441891733810070250253345361142895608642238395339067134217621161963336704248158351058267891550942834040752491047167910222486499419558591033532570061516587111358050279047900731839419177614903114991653249492700616554860625491511256538240865451826788002227763145886998785475556924435253622225790552661513092451583759093893436686473520802302582156205898076708548231376149903468142875766605865169718256876235585128301145366485279021884557814147488090225448778565531296811410115962787825033208227085884329412490664756445195156994977097611328942074136801962377160796923703297181352664011255830889924902399242076866281175150873485086889915533776566360919166261335167485781098109757850991497880313559158332755915729518958778268951734167896571137226527313307051010995379711508291305126258422235966101668965087061596448330821257200163597749867369116290747813165992007420174381660430980474845838552386593479822181981740695982219716956329697399448840184408186614406982241357479419240677439007069845358207119715064947157190955374321617705718435285582925367555130585497827408850534870597698364810961883218270736296328525836997401638343993305201717142991508337995960663196173709170927130614205632976011110134464714238343051043402128668712208672953800785209946445905294441797934063177509555510859200988620947650275694394036358465015147818903265804186024772675875902647895199029027560427077326267525293261908718085208642115504051136157253227170489081796512471990036864018751991881337246888447491452789438115311076138229288027375963521349910965945702980743270830095533313103277997017748863934936790291278069065422804819863508778200421738093948538427899373055423040478367098039572584008174305771933040444172219142937751266249854375239204960076343831105673949013410153266773467732382417532435489970851174889647345537052592827902346649814342528673852517296599642787191340502073940172541253655202778813401985172936924004154187056077192637254733710077496541316981703679310255237632755314384819580150847628765497217008262593560473913884531995987580952552525041617594774050721951276593122866838218666738606212542597312755951287723878805741636286742117307865885090045357122238291740083228879454045504857885197763988928251039595395719978625358813750828510522672468437054739748710963092480358873823122909904102787013381961070045436602254790799342577312737357942827237157157319169369821576614303035085252628336685301043240359774232526742694781288174365985578755857333842203345291278057361670545953611382734435549336230056289444548443806513919491973913336743438664997415670152248200870331215343084295344675529422558234155558845924178417408596413495302499780750701834569277595962924933728606872325460725208862815680548779164989289017969170557202577584271238079285379723460806347401766332587403776062370106436700665987921575531591474286052416661351961631562176879026251483163465116248340052406184450306810876142972265521767713196478934152467107355213004764540291244028756831775387727755756052074997623382912495987456753873776081073058021250941723267479293216900543500624677898917120931569973394563815809199715108016754393983805413998481772803439741543528960624713408921982673410243944662573302320297403988995778571739806486735553784272172880229814147837612041170318262817426764483879895060203713289430443483749183784931211692220492749145118990640768681721955192555153837158341279569706672756010115115962219782164725371060685944828924350526704951613571985242334034521033567589780947579909153377084449458137127005958606014090884817041198686553586134571864990459203843981810480036613257837596925158547003206954252408743848015415997167369931443650919305251151095573657589880251121216113256673383234865587531897649916970076779051907363815483878082932883187993928314530933298078006378417926004645505596842296271318659582132994452496749211108843955284185314658782123841661306937326986317991835077527959853157441951942044534480408710955679922127884827234916706450892166631765044705045699174020140143144580124443699717186467726128747853955688802080144054861471924868467679722053610945943263843352428928602874790321458383075795162274865879504667572676570590597705453662549035910404964073011802104535813493560607823829347175238177971805758617758655166560483861443091957715778627535683526583320209762387795585486552449550178915511521035401606610001796339822882731249768558266957681500793282839442596707498304856133979263981857156550420169050434049423832924411336817706623155376305836537590895846930031176267231261802618023404345949531472663465665705194406758513489486449664184484606822070449956848883370801825663342102318050360596746506585591767674016621509570924702621220344256922947737485886358243861989468567637102566153940320017793912565144855792430832227722458567743461349346842516976579382211407758899833257336075934428873476658225530409824919053015014611202407394062215963735636260401259564138828756622136187186899849505500726089491603939789173957152932291377645716710667072127290038898065700680050150322692211826744502566513971150038819638973110622584179471016130435110479039133793762968691859077047068012989262085057000955696116694452867123632104343458946860846860478790076231830599979511938478584998350254126819038500438668699657065906028787133462557099676187896969642467675838145217083473481896507141017404574369582784858860257749598309313785986834906023066332889564573194805411853202671147975354136146022099285303813402567564711926433152324938819616002660775199639796696426370211462538072486829307017908665763904260565153400800522857945959289928274502152772309279707200250372713383439953117924577398288867607112726464308984174407305287629894615056216275775275760583133835079361070823124084848213114927761952206820395546526566295405449002789958233516508997380768066761001325950223361170421810259817723417484495907529696285754797500594758942828969585225562018880352408785517038043097960281209662592408963189693461243155820268618939512195026071761437743319330204803054601681021496278064700007237166462086103929442444138471871257687570085821023542001712143470547494886354672907171111410632405111411903490616177727684166297278353191922825226104162289002179508955883047146642692570986126495616297601907545774581656769409116078627988680432848430122377893347996733030287825905425525594294130745304261900191691837055513195892055965582602610545505095936270274489480026520079644239952325778336834127788861999788769322280942632839158302884440378603604272536042003344363675977261929872697743094050951277886008735175378767573373460865248493620588948175571571578757219982870098567822342266344580209572727949813647433969552160856800074110642933302301370228819822731535756028494607126638975579261964056768890273403438072367845227431339117081048487475438715205184075805997691590726103323609281911769749725796512680026923150101948657492288967130875168736668200374300937600937170509906643475637356583077106549590025108831082202131414703702407530641177528248612610323018015169726104363724903203049059819093174807038515687469217404049594411142329686813055127924152093544418219724669554087825711126403508857496210806615948608606464201111535034774746674080231235992917844506520679057799048929267301358867982707721421868988687841996477840303032973710927019450323837246977711285600025258739926445829177862513283868490678555813471030119288006000405220505171278978117065745955140668718067044563488253425839800982558526475597602901379698345847824349303358798005421342008804504479698831510603006959942218780441610267051871998314136406106796559614512765100261149290543738548605942879771550278275573802000283098841899004451253779456059238592259337781168919477782446816463379649040771748279457127475067057312505151539350722106670587277620589409151050589167914107520435274693241099471888058126316886962255676202622664835802893497446056619961754827669801470213908828803623340742626886950852773983728366335128984846083049641574561055419491385510005041586889344130049520990210646406131952326388402266204262814235762669727967887255009004372943373808081860971226801337254328280923998302159598112585407511659017853587992588938936194518700948198524071610726084709847431550616073007746894734813759827385869573755672871913987387900959698451938357201150212311795267521524609317909329849970951198100877639172979497253314253962332532290025843890894036936486142640502391693703595212562894592772808755770825929393058806200520129893411410308651690623007082195502614702331503499622781907448294489764139547664968643830463438090764044307133106536810235325312627071552949422684184877204291790934920341686282620615927864968172648112351852687526460289978722277546400775743742297322842453125218743406944015599375643991737353726743060710781407158805406979537144135804414762000407378715737008236203528878442221016298911831899583639793412357794736543757071953295843170221328964068342256847143497741247517147656322994355574068029507117903187637489441371280492724593638493126373086073557652045697767361786677375660887797076780681311646514122008197945486616327623005043799465231613078526018711235514454346503889784911841247448231525888868048257413229730640575599435591476553625166918212826086920885012371087013401401705492691673770039701571058910220936598386945986614607265151295931917651988170486069742579263513563671004144047640496178442062571388358781624885342869638087206395155120960838772010578581811614773669239574277860046744593996442804569648915446101132899332866022544289087709279859956946648629359599465338724715167427955903661176039671385854864302061042521367356195347368004874330692796414404137570871221111179097135170775900701916475229486282545804910707498644334914103001378387790835210526793912581680488970493838964076512203748403197739434510039852249154636527427985925932446353679620010675301780087611510082576054546714645585447606502816271435731863924066031451410975431668084698860094879425085161866522633776413523599942176498995433978638266413204941460915983979763236259329903863575344554061523373316722043448584052538673652654236959062413924054320863963308624279738035048257465020979221059961863972321199687401272357635332217297687041024134945580330019874773553604091985537004976387015814570122133926669674878584281189552591989651797325092861317755891968608896581542556044351999313190544086499816754086396770715566950885641818235982966162942940903066242366428435659372996251838337020312422881271431689811322620529420635302485298967586492022658756244631962018816088133831625295467696417446022178681104280894560279487542585268849003438424105830154496396732443528728283274421560960228314150075001634648165775099140585353327488283785311948317552577395291213399607573991826838776611954279689344000564283576619555330583590685834477969162469785469384935583055711127266592944347734028578407132274338927783878656233011182667502922542855867985720966797000484401809950256720662881005933274120723919832398458344537099128835124005890695887519699006553634839679715756821290825581296348145747307535135738909772716065046092092747305060226695384705182179916491486994996120098876091850368371841601587485955560197911322865260139160236837714210650373634646743445425802406612310125399602819900852657125205786736138438065464199845249644237931508328062331057245818045399934999801304797553113201018580296874424192979425425249755691405864184881077154064427927333453204443462665156835386472104197274204216778704992456389777724975419578224873852848768728806404466760066321083187802510356336374176913123919775832397380171733758165049080164718341608739035527582181003437401602180531340454340598538630313938622901464017742160227037925111484538061092927046255582075453494444646635078684732803094119583658145362895753149832544842190675871762611013732550975382003167632095742739095422714090965077447913468052808509930872273399642449246365113532514876458910875397294463216939973863560144548474419808360778204471051925313399756419738945316514471962061141398730298602589029651116150672791279963821280702663802840510656359710675127154195405544186566057388015113634999859522542330538705616169366186159715658755051705870702970711979523304166670696421357104369933074020531878495043238248049567298338331396082463798660552497154389931425625911888639328184481095123468147760117909280362596053046638228708236836643463560325475308886299065949402793486483104364516634892044509732581608498740282140049341771594170431763650265378866332461511399930252214464306223807942675072239250802350850314976610766732869512523650783901474512840956920787224357533831526564197682145677221210535986706933581082600710852134189335395830715395886341335470417457051989528043192678887033560561570636128074904755078895389679507565499814450360175246650087935280544997511269418259826977745046328369611720722979118809777563489577914253688012922796915476375475700753722875580576660288691845360012439413804650532926863553592190167383496557501368336861996662501678718564254094432499457919831633016013808814286019029073910944119429642415260031065702805679798869813273472514657803658460739609143017319638631810392977218752743300398967667365170203156574776688557265596447554575777347662066520850129358951639228263817275331548864822494832946408714091049086297095571139402295181465695323995341063738982508629076899107654413196232549361343450657750347681916594551670714342756060473223292296845737681446472550009950741412742273721860121154253828018916588781469256770518643684601345150627425070944883987768428423324647254565547435666673238217485726172111966691784758259953827761085469103642425368038040638292437565667276809577714675411173306806083457279716862962208602809713591099841631787554110528785225233335938136683706560114156970403327150139984417898067429820710398745460063197536416051818516721730069470178958238524615889748467297726007460392927855131529365575034985887403019576865014488623645277372912268272343023418530437205723376791907648663288854626973800474847465100870298531566463370992028749195118742389473794963717403691798178050264235510370720025359821965932266161154725226848747577617647650426942247379942169870066838058684755135135956943670864536158367306002496217425628528642375975253261054453085927640622122436157099013578617484206583611437191577441735293417053073429241516892694804806775895301368162730406620077007892273949680944510599617369497624692132825615843702738894313711460877497421188563509902391611914598848256276512779079434335629193182474637456963861806259055969344736467271263046401600414907077041541423772326682779101206941752793538367582428391333265428587301644287337326140597736849262038780095932306751579947938731905306136149570709222666688543168757924324010196313257524523185120814881194395584062601983955210102076297915224554921952372389199251564163168370990962861966047232452562819258788368956824209785324182266928435858790410622834869670642356113946801034275328842344079764717242928869735050602456284718647513982644847409943542964601885513213190158587511781014326359534267611561649595018329663320430084851464447664634219800682407211457717927135696525591701355395625240497586822020753390259102204841778172430167791608195908903397503152945512159846817655039917112459975730673395577671440702316314598600184674393926734937462743712556084067582505732643676198186660503044318149259246661969484369480034605594952382470422005183948500446318104352523453230831124519817644839799282149588414473113709330144833129244898818914958138197439059680986626036595853873882455557557955957572401395837088455706169898556452755684344887921087626041125729716689810922566993041617189651373563171405632737470596570017420986546684302224904002057990445353029548469052815827413827112736726232106180688265080779511296466328506877751150627637211439635179825666326747784412580571557325666292663108448923821144131371852658954920601099842068604047820085888866932599488936404994566768529172013145720859769715843566806385472636070613819970331780177306627115346107660872875256774888735620111281185309560607576748168789409201632695346830957388792667588672574541696632236641528630712231506825678855485475126962448665428808228910042289759929071593354230330128866434546523170002552630148113289660632802958510982917416966464766571773251929855414018917948060750483675164809746874916516831630957199933019457404334650379726343582996567552243471721887952745527291301908278569182537131393164705985281999806523841371969168494605772036987096024323136664874352749082441408135329980950162749292700694619927858598888673005232311951777902509016776888301840255480171731569452437291086113739379641476200791932205075118135008309216292491364528397915068805892122458531002000803640885123658591363078484982275624888066453488730854767111808777576575186730100474585633713411675304742678768002547298999414610901970588336080537847258532352126045043561719163565177933510241202415097339558012201773110369816163757989419882019357067136286940469290270423392016358322527508398025588224973037134877766895086081470702190723384772625268363740292186873958343580519546506005318817765560875798359180173538233844170422723481556302307099079215861474729743599179511927321040624688060652689713468961154237262182232818030444927237048223188049856763840685047332358883787814146296596092193848266310139959551225997891668063421028117934947800745738366518973037922177742217585251673774746968397364838371473615145156090532786752267916956043647509136306243516711542671847765146626706934878229264579470257438203241365251672980673623454900972651509646067496804009150099446236929008599453342795991619668230620431709285453713776017680156310882270351808296091667419011501764349163975123957872147452679325498018528000478950485733178159317683250649204278518515182129885945524483120745447088919470868346263464456498584553124171047929500823161614090754756514121896691073923149561485769661553269539941397357872437653990709916330346084589969453042124589689817092601078062280906124264264831424382532457644674024840742799830710046320067534798375593036784662932207008630506000647262499962780190150579313405368790915834300710963200452245742838779620467175777479599906140884951289822605257972535167478250989546647972535537829895160238763771748174216607857377776573797564642201087046202166146447287581086688021890367500284941527635881083803925927104525945461420145492585403458522772630801736720110305663572710175618288028608323961462848472929498311474617029337204949974697348191895438883011854416671711113949664215362027706798832267777158731623615580768572049715119587864594204423992255343655139896211072903860276214911741674671476459671797260622993056274533085705456355052553661278262994522216689103268317070250374562751315814040922775016934587954691434678101066021247637225385363575516213993465217849435635286959031583523329148017965975594593610493868865940670550738308333341517797069134468955709649157865667738603016140335965916604698457275341934797689519051736805685921178693782923807183200880794679540300194650837781927898474907871871511297128560304351266361246985514617773818947282248375349328400873483635993892685931065538370448290154725454433883328334991900792793354974534223414877391254994268781007422902422756300234079096365754982989670603591493025518435988664102850883765184871316148102740272406186234916251011409583529880100624243556984448643330368462393359836576850637941668374544214461600826577127245043065819045942116790395638593308548200758135433799288178468504035256061598937005094493717095862758324959474951285781217829443357721838547874979986702534247179243055470615070642301751409591138874273060038822517803678089682940226075268581174134121509597692926905285355927019342513183155953186519556594030953910720161215022071646321648072915175047755062202631241733769401529730947829795785056790339642425653863798831373999089383185873138373937909981209320676393860280286100560723373088451120595937142385744236939611510348507157093964241642525008963372125397879259350128637487610782270794892791614893555202183696299695818009899348729372227472342802325562626828301426124433383910477043536848638433945352335362669078439368869244571202249480514093218694460705316351293048638020708854551727828302118282075322904704222496578545341014139187749100970004034628628134666661556832667816635366711131142449505978264678222335508313309087848099838520776236588599508361016544839327221316801674950306772281200964251980547865431476968933986775981264608079362926168896961950778683273724709533620872275832363760653677769377111327522385894733895890988189902424596270180784939882722413071541868400094563303012368889143995352768136032254980730724693528956276403149031292864699254425503472070094725237730417534572800625889641513249982316156913361949276566300378057119406817804197779771221753187960965056602887191494854191077128495750718632030858746658745888038312148888958109217335082117738666172857153095360518105318753514176066162489993930614503942792296976782727066637512125781912069792100291281697358036753413238779251515263204916492510568711931733058761949295495994440016448517705151118611869011892027705984099134368567628320996809778236999829278761108671611709332029867209643332476368342383422519229157485915175281802565207778498837774358686192836065062891568474774087944174713563158655100108658548761813312080097406756338502038861330472958805756800571253985671223358998046365817047495395120342486737792132052472407869232828716284828006849292695787731415230998849687014350785482955778869859041671730341922175344602627716418187897814819088228249129324053831577818479730062316033441585795037665040724121137450773377715884234590156488110091157188106217832263077353378109177438013516283085725349531069860712301902207270452966071705647578738517921088423749779605994931244757547128906502636765058857642989895550783888459459310313503690290538634509068950435335787151776140299151937952526312770279904870101606093900480585957705140945774268474626191733318779128054303610349163484668942203569199212894267038269228125025595842125243757504214042466392729214337807694926900244610598783100694362232331649413105406722264942154332685574182742436451307183156000660457315820248198899184184688369315327433140818144274218611843992407092787862448569997898632952981415059524936273978059165905267087541691119747540629005710468914475950012717289774641769885386763650509136236181865173530147253766365244861561209790428110458448422906568216922596272010397796409350122255792021976936116344833499318620339971194883203128131381092519419072439575307293196901512463659661357187011739498764004055887564722369763659490688606748541737188615660319184019657073379771452308347225312851681138111601533415982437716858297629975243914742105359779053156842719166623232992728029047756197052397123828105220099843607109460508792566293657369983837484923764324846629430799327072957105686741213163652942125293762500401719119269247006755761824981803836189250068436597689614615800656454920217315112792754375236806356919218202392132952344912736749405354791445619868807318697536091061357811514650464255851314299523761051112291828985064269649411541987831561229550154621953662968442352735292829636635792910842478558838290702015818255852805075074950507217033756462828619428387244668801282323955055379722318240511017072426830537037776632097425568713609560639034888602529619778374603239366951059765439311387551031224652048670182666432788309719770349148440542732458500478391690510544038390391429856436900717205950877710906011082627199678914927225481137232546530462760796347230960989337509898638060785027277898010422871617625450363850030398678832635310888987790647393437581004539952594794921817423007052007269636065002224086547582106740105442028596151805984563690903556509784391994344620564401015160759208811057054923513357035834136750530268911200774064848617944531110862227877329307752083423801881310890335138085944751136582782675472252076856247476158880976634578107190226130037739675916861869295387904170414453749019439084698252607400449237766875810271285532994452426238973738690399340286575602340598149249222841649772610763221865582386011178678181009788786601236968868269355751324507758452258527499556554879726053710761780514482354669708102074991290457025731309564979006384880541315273004612675376722369797573342598146557374896185044090464579889872078755184021838071369505839823321571182185822934214436634100624171305602738292727180260569085019823747754441493049926548570090228316604580157372244946852414324869998975003225608676685672767080698318770537837452046215558290551331261820400496864004541828528807928814203680021470283300411333246115680066731910876897659074189427056490849016665264276692018198581924826183414566624317338510433648109928911158962275498667572898603807715965338051250760904614752821274929103221529737599593688629214964978687368178215040994903022365187811192477760688324521100188888340723831149037058369989679921717763865646485811477620862009289237202996059550395897104485352762023306130395919632592368115725324980028331128259142834238424648603051393031280125018994916697877687510291767237830988213832486558719755539780258571715476285175072831574399025714452461470635312719482397781415505996814289076062906889967917979599444528865752560169233106707927695327312521675648370664022998442105001551483648236569477242773898491565856977505395252858226048130714182945042170119650965153789782560968760996552203665643261441848758266533564414758967073472416508620514252174325830305910944579789513975491181175586812175398543304562581390442038627821536065897301491672681743163866232221008350096942558208215174524310862890841730919108966745981094506884567569770344586712129282146099245504005108486595891043835032105300601429326810591666087090444770691830865518113538418868399224557906030050934743273805077334242448738489766721594813765470799091411504091234066552686988641308702845187083529563230221830906015359468441774555606629056272341404390810906824472566497901490935081392166080505027118463697947330320946975785727252652539136638937035515530460537560750993257556911757290786902985197282886749862529471345176559546363496100920288752475774061208395002697082393175277502954499150075936907992629360040552681827084659628899547232630058315469432487476512677454999324826563337870505734008845946434888145083337596787875992143957592938932707156988195334358114049972400877550965273987989399380490473743216084270405177109684986976878248163433620017304361202466885878370486841683033568674184871988406971062641408689938139771701357727120891096070261371223500687069188427846420667643230535349307418989006014339644861271766995794248793594370761109112978894221893647042346004009953426869026611522143881387173490147761459526385561743730178775004275411225622645299601554972236930701372128110910373899123337154282005175356697070753917296433965801472877045116999927183386033764985117446485484330403203662112618982148962056876928647825724948881069746969363520582586523013974029541716371210478384224795847527338483541130872200492907851566926953857147855011115666126757342178420996183180259306915607025126384265134438595385853684547370416594791580238846370946044603687978380752060370125638127691517816028069473149605279419345430106100117362932189088360133159324423880938221225058996346940261951704995930983688902438116534787361106405772013915128494031820342928443341806925056019360897539393254937854434125824951588238393762856075727471878059978639697416725074439246467942573735009228136456021052319605016144674493489951031222559132468921988004199383476272267329326214541562393814604523055328860898824392531963417929029152846221540472403812523983263147314525862033641036798806813983545374678246584699491441117523232844129567081631541303396415175185150422566471154473077295230571923855736962230871055870415016995074697572428409544432550608759538754899374569984464672455040782216960646132008994840950402267885907635366935321221048118742125023157099826136246074912580271875768001824265447559964134377804760281639110549969712035124196508023128170751846531671509235424277615353592660487693735655596817963912474156474941097582000016000150259514307871995970845583241376905235272285379053970341615998128249555063878221062270843911418755316284374076674060422168522277697944997556222344068290071289281233322746375115082549613419231147460719330116769484289155804544000283194839790157694888203331280014208369303244663304308214863499854289587813264528953890127617172555216060743851595831009864792695583754952060389934687867143583529337975555974882165979803189197917471302189724449870744886402814423253764356547625744763619774853741090660598589755266265854919721833787290999220587920347779084298017707120884890422418316381147631425164183160269800175696791583564021392627850730375982608125752517031778525264520466097942478725401445661642275560180089470424447142140830499719070386363032193380555149472286374422271256271848427054702449746294593569749308838394485778440832780090460661369387575131428870552761461709893321954949492260131332066606931046152082611311912580392802199718557097966190388737974529607957605820792890851319716700422295914779533478999955703223296192616476709260504978177359014412803201154510330640561075703961379027110629848456901744110949320400030620577980463520535017718268498865060926783953881937217713701427188808394864358119774119188033000785790648343719941590422213743071814478782762816838922839761738528269465508442826530148542383814520554894146792649696137259020128081740989829016470242894470865950539511566500555704082403871022007664412205781810536179640105177177051580930409615139503173558494186019688045758393443943466839450597937668803057123452640185168348209096652637921512279491325115064750777361851986175542420729134468376255865881560921143851150047965585471254773267471272185430189880960792138914029746196313382907984468141245805736124262818488162573926243085774189934211215424612006174235232971713141691386891486292035834502832008257859202536620730883078828831650643424029135787775663330258735787527789253071409568362720994049691163579208726598295681611860749079643921073425528203492578856767633019532761451428244371089297994299658382701993080312001534241424872902824274547460832682136695863490109473912010400666473939629911400230912894720131072083222940844421016490658724780285623785583089256490983419577267080576302325801662754931569268314024586347050655094442106928106452604188800011058253163596643214695654222923586041913752592298894813502540188062154432421660848844490096992433810904519950673240618240284739182255447930085246415049103072477970369674464712597709961716559980052003813881425701855295060744328764259313916888456479006386833727894534015748908529647022795038496870629011530119965451485168121349660989665919441999666420540695127978728798102233339792249287090894239056881515957727698502604863198635110961622882542349581852365573318149291017513138112642318251943961505216476139066545523277730174558012102125545012451678862396954427546856353159093150182170765266421492874959669902163123651241569643538631248409062565635100788498172106500002482586672448619511832068175474244431049702186258474979129587327124937779999399341312592407654302282440795649515568639129739548691814951325489166039650939542115944542791129302935030779338823005795019712828060414665216380182985811811132443666681136178549832107232143537902146109975652106600917962000338246208695633394908154572590448502639412489260506870864981993935261697395582849413000847591126491895384449282941497215372559461998458379325510672321328798990559267500264631323374944833675745897939216631199520003269030651305932393090185018366745174811508362966638055863406901626514519511549671230627396330368904400715863055925607621257958315403896011964094383508649355122067813642330851963238097064312166601297732817045760637410884297983368455760317750977499210354348622483415489094664969746893175654627263826506798589346368258013342429494740256501916692075758776671163209153542509785814228264679515427806042328371464335709072182483644245112614615824944489651132665338755054315253287456550272428872135925564885048738480324548519096241666543011704195088317771981796605578822888392173282937577930224987064151557595040099640096136512722433718513658541894437612734972137051477256642403196919538313476189580411442398188870985364910023944525344305785545022649600218075847928648624895835820568555726739626126156525763958508511253322099617069105273440761228676715536727694603862404093626176974295656738184460748958519252945818859288565463732703090135206059206591106528542824205481394649280496089715667020991000584092497614792904560515388354791234488099014888992284434431093032471995594082363928861689702448169030953339045842927721010500872972967691818435097451087882366936049859480620364436173625650697641487934194845600794641853531924081910197837726387250114133613368595502093467798422698531862455957651385187809806116363831110035075389878016531467277969268200289707381380212421624338664630441132754291452414558051069154282459262237234337514114365479023795193707898801476651227254675842166669627505976504243248842822735389042813446703710207866294203442002100044001383236329869832871485382827552193051480593719853915404487157881237509731683584334446329645459260134972959883956786109881809818119818824211441572221473154438336335263392948345956564789718502235719458980672751774205945334294029295642670106483504988710950728175308821912531915767005539258367983494050984884445599157313800596929102626126865179603646307992238175009442156505243993579473666723665126927647143881708244434227662685749907572126694735629523102628528476375392663420215304978765175515597546846877026269884237528634141723461629214432051929960823135336136407081789870014928283603920091146374244880689116171414010876924003587046799151181715944290930083183129016814783702829909399225737355004404500468336387770249717715112558425813865125286750790008223821087812481919357301617812109447789488939407169852645161967296345108264206337554642055660406152623187311036723360947927667012760789318405200765919022750678109530493033674694696064920468295605591682758780828958897739962721830886779178752235342349444949531297359861775284622064350693850029509423837895505795844641764423050106017324675462132962716747522475691131529759659252633118554404563532281750319681534520981828172344815361893337055869248209283185076728552195890836964990609709982673264384393328632668224795941421966842723719004988712967087269597306194580179871850664345441516908250224786714029775269837024992954667420604231530310587820904206651149893538034894994168860304002761232132121261742416414417862166509097609395986415194122306031117021314926665269036269346939708252450501749598122027832026072938771077765809922055775456999070646651591575930997356683022463103234774922770599125421054317996726903969228799704796344206128586542477021720301127982673026400323736539989804186166156947253407950662572241989896270420277406088970896060054096982125878206040229161211776372185584398449990920221277573691578387109846489957050477715239959340544997504816293048632264994569940271978946751204579345842120470042389274224206476249086034808732701925205169531654376071501868561668610505437110944369522543937728776920728955890633451283144826794408200381539368444676487056972182461947903610601069487139724288952605636708144527395298540706239278786286847094519130917119947944840340935780118562810227293141083864053285887751351030718739206901261140969533910446425310622774048462266058072156315637728602673681115611539665803914763162858164089936769332749982638590869534330254904038352822309522920239425842918378357582412161685850013607338943797602031279100603328476123603905106449160257346385485472197669599211609710017410587051498641477858270900684021360633493765406702255304933290202308256484138997911298343638930539849482170778504879537514763694673108222255857196803124990041402555575237329623726372893916621724241380190326166211531203203853550241202569442744361491578386374739361555107521251687211247785779665326878584359721140977190320426975103197271094276203250182975418448880663760636141716599775441504460342040074538775237716164765634007518223067131547860432243027080978916444382561744514111701336877902707626862190932053427977809554471587492277909901610322333530585675814746046675658329247861456176721269266065767336418715643068175088063590080030636873992510317974247455343550193274955022442443614003186120137059824101452884792441064518585558861080942147783290711633348088672281880802635866990728897121736278064888476197510902403931454771603867698984845187933694214497056087759664909771519491580540176950412702024792833817927617217477418158302927303803799348651108508307579954699236147050512548495995191076809765922427563433482706820237321328220773529895408609631504685087995874620633555099090318706463073956100586425796957189846779514831312976056045387797469061477220180858756921481772817401900787218097708941913300678250635100367828092958543412695395604883044578132443345853034810032231736890780841342816401034155455125519459714380032033620059282522825302276469034278749427627882830446460529941293750393440500422321115881908864815980412555435730680303198398380770673467229481003304614880453352225245429620258263913331093120963271293249060201540346745224818657025295848534471580591601223955872405207633682101169386622138268452934945461128793971575966128426203449183505608272163325109848520332126683977908870968462929023392467976970261776282962071241818131967027187438292885915134414751891210570550231277704796580791620228424632004229399005234958482427503044572657464985895040564554618129164210986830600779323450425217312447714458276443195118133090798819722532040753931015753993084071883392387414105205786145778932071151965449095715311353492636824980436208014463889772218389014275236588323085190499483570395832634846012357718759237590524822614374751840600222517079506665582038039646236686282681294962947406001355607890470540576924019808825583759663893833561446131986304768812056143726512359839334622832218351016788866760328241557961463659138605888554095132702182134351760004612218376754701489567723684180888075861009123130587294483937959005607309925114728272712622074719016669181335227555355585299838559806084516136032616318829297767965812422190775379105443181133912763095174166767614887517017098336963764565275206005283251471926255259823990400047422200356977850102069608643162603828705978281076851225133419500540940972211303237221175527783046517749337133310163626737804370283424874141566273607793556312914101698875099054399282646646423309700539841590666439070962279665603610654239048498878810388615632295388649598672930890012252186634161908595329117323279242442742569528583923759089501120750946566709610040536442823706965316492234337446809913986471497561528796924664490701241586147006374723024159022454132385484286451380973675566381388801788564753445284633877754015193464164434888231596890678934112389116338074048945478822750562642842550512662989023126417384283360534400440859268965619344280260563147449653497583903103040465683731701691118873715540254261928436153737264285514476796208440978404596365691465316246721411702504117031319098644362798327235868466715289988096957117401078476700682144247846596582627424005569900565439146329986116604560529895267218514453745823126478654587583690027232780105629271666719791984607308325286456026312750145071518022083625929336515384446669073136141000748365318024882385135249684927199550320537120388159892108964713561169194816702599996139400796008466963577616412418818469176132172244675853397863122042799257763435198359896585575158380060269781277271200349317088883024870799946902430334782144879323426392689969610689986819545031154637273231049323157856056090701327779964837132464482610912173230920184974587502480356672047128911411004031773081345235860562663727181408023994889507916899073574948708367958931728252303842582417493735042807750252983057513448099567003477266697647775078746279319171708052094492186213130152362658538276867060793446604825794949387700984825179562766553742303789565197900341510958276797972184736601982896780400911983576023853903461243821485480417993143575972007504131006386071587709442445946100621921430587965200769249492270333159425274408877445058519745133771424765695158001087816863268224974640674745049753221656457094117014811046152736101966991716123971642766928147417003427120273604618417338915465517510434517714265714909108076638231218486400148093849755812778511772503360322342700799833427118919917349157440394047997992427717527951505864043446366950983266856043339358419281541289255527544379316433840752376973432361613692778906710188874756304193380248214689185670592635134526408256477785300408096508283034608801889117661563863442644893175643616765942769839727772490067532315442860151700762694869585086405227218060586574035390015201054567706298113664359048685881952491999643453513792103633530725108156120595542823324988609711898899914701979525073240457267786483817433898028932973999610117488448149732278685653068348898482223976600509998574475997362721509661993993662047239676441769726889718865952786824773079549891409097281562613536683948527871184059741489964736997224150899492380937644904296092791230543710305868708589602781670512447195567478475897942309454057001881442011441341901416191905719608956262230386162369663526110607894817534688434269909463848085164234068414610765771506215721069680474894355260204139626840515550143660818060807997265065591640141042741802130124474422290277073783226662015397807473286658989240953536042508663270930251126196255569299709899453153498435910460553537856842457066768934308439786619948111207976077807904334525053577093200426610659438868018145802442743555978085760004542171094500103199609212211144223797278882914804623409680728314900646848597865441326929540724233514501189174355990209861101492704568479931792365381078029489795922437403956818881947311266406120074269480017212724489323937490192801372889604774767118277508379782900873360252937516875311036921808180666289769944831115254050033952625542129868334973138115101378524635670240342102700744890627868853873283881531382169318188251665445420780927972557373674308804031044491808621160713114268515495607987033430155661867081794604327571839265758138767047378179952604360004674785714698342316610550319562917078419345155789028551189399840913040635911585288812297280624559665828298449404913394517679004813061903253526097717309042674492059689766888912301384856543268683391871762629390044118245675123101533597094170342070050202870220029228437915568601680897266373342855886260899479125359577643334968003497907028749845262771164014611888983022365518241567251714975731006949329867663402824109683285026584452723008398242722380210556078344747141481547263950925705143972716699910800643223567313193657589252788574704670579160057867734606757542771205067784822589048607767224291889041683045675452948410004405462464628174948703759428874581727432936598203900010812206935295343785886195187529806665457440781370373025014938038698536692492079777448964797918425577667719862186610010367160691960445385068695560751753354894664617959243398400675526020050187826608927268664886776088599077081070691886668494379058002871088944713155139820523971574469728700840112308353403849508864761363358609814961884237488092254382821145186033033277039924679717143825428899034395643219471676130636163843313474100834537244358355196232837960275466703221335805417143555718543584950259470290410318695153621155243963130176152795775179301897615585888912337279000017352017403193765752114169818777889736868957241794760023415943794216383152036932664647768431745955688491062121937272397327423376369334380652429068513032245564235932059451314671450338222935688177603941364289553229427269579803940959936175341369000600987589862026388832837188326061609406302064554686399708640826519704236693937950079657449932324435186547080730966831744458309609925369563609975500832332298305039671106745280209058599999498065022711287308878800393653304032535086992832910146264228613138120685695522620078409244142259450476453033541267292421807586845159242340110305378867148562974829919105501434697578397535275800332860042952184197312850833150003051759337417855417677989594265011280337683788746591632746833242268831713399388888113442705160199150967062838237662427574351903177264086679231365284319380754216343808388178652344057207712191152011924712800338457207379658123787242651950154309194633083688626468368625696629635433004877735109036676613555945152856505906328687751011999955288107362270287999908232611893136745168514972789111538856122780047554137595704059640781261176060708772649113367238915378331738184169674859861778686999375682876500536429978154159316958268558912783745302347325425837826395954072371787604862573611385209616189057488699203089384510751119527805640255482842303749985040455915292493607464554861951158138485856627460464484494219118222183351499109904364946241413570977772947568495614690490133215234977898489997067377095341398895036235570525212291348136207694301068242833039034509314666521721682375401637344973452908096907936831335161215042124057463176881764126187956040511626714695116700294381860223748668713082569306325104800980754841144848016790553232363415089172235368043301234042877558554343705291515480609682457135029863166967659163499788703164001828368469399931419318273744112293194829667941954701204194548013619982792784987259053160668191520606131052382443062607062118909204650558632116118410053856130865305792515542127591555644524229611734542260443914663753422534341616201485390783616923791400834982901704037623441053016644791981843219727915164962065545018030158749479911151804020216415699365968084044614802274273978648901582061734687941246798774883280612769405307216310408294127526215850632318386788708203370392681625665746125499558917737733089862975991534933457924746475957690697969411719261492625164887604462313354544693476167335483699460493903361090645314395236805063329489140588536898178827243765453936307367934857013670313370508545806915113328623808852889305368795396672236770405438731495273926049620941908085665641969185852018991051053602440628910838509831720843721316668423434729326776273588421768204973117334345518676718484688731516558421093968920183803932248111223813888172840540080825494326731101084350694528557251727083610993773684611858609370791013167294777213628927296329719189485965404055842314835266219040386119918965435839697259468656050504201614556397629046275107750078699662224738414298740918342018188312171972263471723458566315717877961989610879206692136423267174017644674374372361617750417307882635336716122577340070714402932327384210890432436706128290351760566823069144564357695416700396492149004393270554102360985129878213437448450218122387537807871795679208129960019276898579450550669852619331080775506753522951614102117898614488373606217877336523322202668596858483253775553541221379497775054524129651242845903298887010621122080140699242865056309897198973784219395236136659274082191083716944081460113289671236870244260243923537603192598174192696386259679306489259425692848071522729606923896086595478266100901259624907086895397119112985586475533024589377656724728600814515395947797428937002708078969632271421790447204786692624970737828876899069573295642015692198378568250732513864809687295847387930154371962488276292052848504212384981243901133236265259554253274863739896991886463002612473432211804565920090880925126021364815828409487699048383053104605802531963002807971345127672992321802475234353617422207079232812214328693505620960032281900667551700793390175512381050057515356336681940106041653892981906643711353555436916611841844404902711347739101043419182357470574727405112494473644134405216770429759872568352910179067133947406266128119950667942787552158736353637329597684904832229826070580951417153357287465297333484057368580381012764040123300751988133884241578808397552250054820137161637743963874367279639439006063600077642401131076715145394337378618370426674449541592580306699242776452619421192376850273484880563634253350038176503931877256235025222012864318643147148138360972195431959587641684453248223471587121872549202324335751306555813186353581982691008306805942696805873018107865688874700495947553179505314818189946167173980640875387929440445465381177765893324615014289813596288133139845393253743491321751665881418713995517985480113510420487461068813365581188898690235927785389527036043811798287412766572323539823301203365742653032070431531488821548757042324136353071175689091529741139327261066136745930498247993168156180329297476690220277626001994438065505247984642928734093463014824521127085470293956174265440543371757704974235646275859668626904662380828435197184077828695632206716927341596801469846372964579105611279612571563152314338023311026268878635289321807790237335540815254014971421232853380136338207433700758359904420796899536215736559166584321464776836605499614789767700101224092867964605552181539463112431277180987160444591869207550602218838452934803019531941434332531894885908919947710779364536144889417159614210029916953174200301425857492969541616810102213533062064011446195717326986557712518810224079690589760550594190082459610489186634602394330294227552243524275466681827299966270552632290854021282555547919039568184428657912417066761336980663212047736754247233029770161346898440130596240299670155868464477540394694279822741725036663531462722871050657460304353766866869098485492200255453306954479391749719646249039777068865449702921593886049855875686481401868899984900311596156477323268072073578542906749786174318050089437431449339559677101132979160103764185516613358374099771198623516573645901821653144171347592775272675900999579292784392207021274681927042458214511690264351080000553905934487601136912248026032356701458064895631501656701149572763342443297796436900355782854921322735956697712940318492231378841461530421361419114962252905028342620626499591359937185758415035837741035210998774129125782766799225211158572738876103748037115405108409343923162150506829334389917496559084315199426427473349500528950923958476468857715270005769381868483486610622937794395343632377876077165043407708468175458056931738868422475643816715689998627301473988590485361690218776034891730949335102868544360090138431778673293088763697235989220768406051385680159628950639829496999326832927944801957027782827893542493725289294566612459157066399795555554205266701576651033853772441697806178453348896072702774415861672508387192665241997488444142139911607476403357154105494637064743863465886100248955207347560912201995802209883061911282056743203478830721690996189885389115470025005264282397483117772008960717715552875448405947250954363723591355256052281010260314300917057486806148293096631570451422824344867582358382483122411827711899658670890451360079973475400731554857052108593338492387828841744783915528171443832574205782876202018032006435098510893895531809377821498392797733689417407795854974662080692870208441697336930765228468119523846975012886326884569715096715157187405194747628891318561239323406513517311733301135904032258658200737247994274053058574870652686542714588128643472474913955163355542969017197529806934342250613607020103337567324955705560747531861407449384435580438681624417718154377970427691583220142802021786014970001705609021463200534511606109778158681026159522585797604948228382557105509481737641057882122610651529659477533755187400128868165113886615057657179296759898607657586527992039982374641395837632268702815645349934645815689378816844015393046674117573339826246485088665299211395581143735001716320233131308873952523319168833789432593062404137223049297004822434213383938123455299271250000797920420757247884657439837415873843229215277162805587587857532202478551529183933044045994682054505565698643355325842341214144764054310119726332747610312342978801808477767312586873299994408616083757931832512790734279896292301125677561116008175664576517782704372401002597438183865906895743057163437717825423839438528736421686248423819387169166474287035649949037892187935696908038563928889378957791178221043035643847739876005984699887894508273986247280024274755947042528018218710681403816895854317815511971668610268424299409815501793968593867564138616947072913171709431634561732810132553679096604818575656842364278427891087757173558963206716299207248863562662507350322090721583576385081549429756277080230596182816326644658118469366424181707362683020972429683558276640442113727818314225706478411900163011477805671481191954431925737508090687458402260398703622359101044635811210666149869925143215917315120862279639969705532802831236879574983172826143066957773827624146131438716546511482395350558449237856877852141159580395628117484756536123080839590416440278666364632169157420242922595806039675502798105918643459168619168623682262688048873532063115079137871658964486785131083415927435271708183232569729268684057543522033390522721549751981796216901135187420307124069978065152316457703646101035593983418091445858705496427705947741183844635710363249824647074841480744805060719560018010653306561173428559577515356103103306749864596452085614024870712908635003845894236981049177412898633132670860932589292893229775090753588833761462018605506851765771062089470004597104439453615196031373006403480554141062445982421415816347149379229483689223528452803879323796546042270475588330763383944691267915376609395632693559229572648857482819477674062551573299655734118739971669051475340973807966275657929803073267578254911856275274924510222233577072102048730554379732215369496367074004665009319529085550745988796677485342690835857080564773000077894367100756120678535655558392909849754513236806934403343632931296093881345237235502401936629670356809500828955964427300139542130678980016081308786672050582819196229179396904238618750285787540206539661005760386145100961318260704764305182724344957470095254401374423695033437022349622819071090541969742642496054161988665863463752380770674238878446514641100694606197117958812437574855697699594557422701731283257432770592277330641702061194156883265800210798189425027473544968272362342043208834009492749832851812859299769613754700836452583521548561104161619622310143239513702445926193636055412585095063599831241342199277675292500645884462872330358379805722229025737465936027757103717787959912605102809900166336347441463472764977500033447220057153044003131511409477525769926948965855054907841077996306636687679198322716570398462936819799647553889485492867013951700461323391959473831243483525181159655100172720786607052809845136183689819930194153752228247768784235211230974029420923440738242117827397908529150023590624771165602351288562819653412948103214603374124653591680351885554504103779380900152055061020066836590820428800251447256003771446134090448715252116519495110678027457799843725847661760287405291955290832158251035453039803082460332489090490062693905189013934479337206938813977440323251123269318044095969718206229025849588883568405389820966149031940679890801625136072460314645465725483225917121679431500863874432939216459893447347474988067057811539289548210259173447951462343130669769145955239120724911246096794455108538217733481764919381544413043738979303658420011211348820663719128528483547630075084047615501038517953181770837415885487588604650597538109202240160543649218504244746568377883421778116333560243169774549886687686929750269524419428541538049007267952516268419977664624860504606009236292198355114149807223839992148617573714808289796211632905668902414806472140932510356027395689031953424355139520776755273163841638611669709313174465437823978640261292330086955943575992695961423884330505722511311538417306717396525052124738177950182314104396256375505321652237893816930710482868478799336477207368908789304073542505903131608316934645082427195023461959753183032465578940553087358470986009867759120098608689610723096939860577732286102257953390620473805332399598942723665539630385739698589216595922157797750180475169126043033429817240279129738413627417866407696735233821974074099509824570286950053172193658647279841034896944796690844774476605938111425202825905555764297560659671688952109292076721072881078519773225792965413105535948083296371675570176270673556125669353025129244557556836510912868124803176917377413923101038564725655733190327967622473371208019459499600188560319086477984306335733680249620590839054941818413139582837875456268586561979767367484888138768868731624536880850804658702379202603053429781660166691445078352498484847758935679515171954603867447384768496238244923753123676315932284334525627955743940846314387245616304821023447959466243517541288165665859957026997893119135043176555425186407180939896116174719232458141463790902518308531726297142099217835526884207204357610107181867593449038701046193591127741411981237670369477794495840587503171707013482281730397302465868228459488511163827212724905965962616904643918746552708904802005637484345512225651369468208831189825043906209749078651866845055318215463082192076899461488824820986171643605249948827203461429495555482595020544953871998098567327920414371006327816507543842188541841530391671023911628160167176051348693156388282338643977992661592747528635354615029849587264429229363669596716440506303946697680121230120213140794294665563778101878660345879051806413564621879888881623736922877157016729721138195578039642057201677884953584752781107957302078466749121150380584190025693567517384422841906296656057133374043545113159455636173006935978363573099442756162731603520567052039523318115484876549686815586379611359235755956921256946584008467765144907431809392886748016756522957776752568267212493630380899220347402150182418971601832214058406847791579459743222779260600888605123522315719487764496853898195707704831504120397389428466138923612954982633685301357579442646101860608159576556527486637215449550971420971687821344019358656929963952488608692822647847785964206460252905090275595134056540827172654598272861865651760132202573238355969979309981791052960063842525193640475782074588219781978878209086967565635468517743202947886475155862261410930809237060223726861050165551878824834357072595978205559902926056311739782677207737292868503777595490951337109722425227281366777402672258438383755187052566942948067943129044748497845380204664428816160633274601080251328311204124510640578658125101734708134340308672790592409475768338817459633576106443813628242974994288806967510719672255275083288551678111208261632627333300647540413287160652556691074750566561982658140638951790666877375826106335144613230296062933354049282352040645267686139347398155734852455660241354289992455210447639319794249244296314952338770403655667096862462914814871792144411406260037260910707202981448426517317521328777286718346232872506270564207781583519719921652766522724924403867378042236426770390372969388752082142680773433971703727341955485347341662054250995763223348162683703142354778366536937361917549983789076554185757553401413095389262189866933060202208167419913114244797063634941411498884696535836173487949436429384950786959774166709196971304951519035543310580580231359796829064393237694394293184025589205509340273850533622641031263390592011688744392812570618005619465567345286134021135367394405981723525046676447456718982464866848541433084603618995991444843547060450081527418317787827654798955499249696861739545239460950506416719989497320347835004912180953525968889857297865807286702312454424728499991946493940591366709585732179436658504241110989370995617445038970941350252600598203554646254855138409733296356110340643147512916168356268733091851685872606563412459620187681743797273731525872508658361265569732811676854515955144623784675411996753905240912247174487360620585627154958796187802370830259874159999147904466766372285085418419446545207495785272938812362575948378534232808818355977749871193038919674250467093413967091251165771286431332759657949321580549609166814245629367796219726391569868574150584491352415476874581253468366081640466551109257169970094234374250665220209679700025081101887939378213577448673817759913713911487856501445267711363069800052761692729341532281799030538330179929412882302091764454971551240989959249465631778704114473006615731184401280580859520708255419368713871717801288729755270163234542671868129779816157252660361474512326432158834559541763880887182596587606820125438309143781469013949096476589587897957765023855818235757813951673822938247717414133167332604757123895895248419312020659630576832622129570804497057375193964892653211640102417257455320329384048394553584689503346437254852529295258230765269851317842920734981468368953669929110982168110829900395938657068683921106238424894073126430493509064687775588274965702250784365600649165462520597551223673999028608407077545239441884305524101121918399211942651661776517768185128912345426706920899151605529552268513512720392049068004904731817691017465226584731556026277683188278953354990733703860426649020469842671907506206776529612031117879917722950820823178033821816683561288085755728943210484019113596296878366990242349236569072290652532458247036571828860194116903298845433501997499793588355538575144771098934477206183595020447586348331004953934446339438865447135708004274373915825334295722284830773967026997605583344871761957573237793186378581455009040571953423901270271089727568188406858706601845565140069780580807806189863183002491087747687910089072280528112210079605863286907823314214710826697795495969429450437882331675489269528466059124526503925069160178453596028694886148817462886043160694270826184650417552686582299397532083350370205213693154639972383443086982023441983900488765343595125386943196643532010505066232738071309782596244100063563869686038515516412350173168577671807171817929836172776803683895294721714664995277408236368411914388699796829574414353694582347171176828304331032125390361867833960852268240145083143233911803707898112101354940850124704351835030045248598634529835855764446956979564005473899271844029748906618025371409433280922378610604854973031537877092818388908941769188937880844180992836696771319451102775238407097938171227993361116711489649775710312935338863216894523719135562135501500562729834428512197921286122487447464777983338211332435803236530568501662806901763026154665940055757880130197710400554239721651370272538707288990443744549358681850357409528817515839028352294636812556019595528847459749099050466372520190090148230065224833664799251784272498360016728229834605567697589214931912801245260642049030692469888686926231035646217751463618634561437721614115851084419186103719201297803833566279841116062319397181689160564363543871361778816101856214265269954050077152194424833055854799876266985569487459881829358278812459023066315347048572450090738131047313354906861439657460965107420558292594273921719581614498066672219367036830640388100135466834403177030674765606741000566973817434546625389893218416951189748816734617067317836451673480243003303461850723578770475419418893226799736993667974777073694678729517542558184621886422293083155621247482214118009025432601630919242790174498602626584871453356956397511319373758070565302904526348566127348750820058594775605208120490021469719711070204306057400185692262393360002492582103762622219576712882298401041245987102020296684544152853512555659409300045939072074403749463472185066033830161858294931140253206184856890922178950951539059535946114163342060032140126212481822442410356212401098790095714596057380150744100163655560025246672069128454666873397200435556818117582101889838296326010447247103069347954628673993478047185312161224840886915224351018673233773582900374523445958366100651065405912541624444746111502735250059448775308905297581154632050508583947644643827155925584731240732696785172883633247067779172960759231483673525066377028311169747625516032216209690044066597661685612162199826532810842325157145904227390755060247397065500516763634592440838883420339100701661550181614374913255909324656483799038347850716627030579790519694968949415905136551997951598084238168476393868545863448468292791807008004157620889168419729739876161717686742176872219493959801911258909083861283755710013951436630218442584763724269013021108959141739820483246129316167543164862798566278679483423905855102576716468859424071582155253077191872419072415525372336828705287270824317232985518556988931228677651647323955383842900972813849949921315222232621434355137521700254082242847967565668106173789823730100712675646871691368723092102467195217263333746853800119268767072547267310060113450233292810768360458622147191189902704276058402272151218186642346928462410626807146089975209252403778798969472377563552676028951169365600966137881863196472368651872178275133489920697692532238104651695616519913836231247576788032581474220766871951882444157934162777203844311472598837665352112802663298622525722580442944653941912407485265535552765548554238115466754532839673407808219182926351913666634286477877071295928590635581778416925641585360052063576780918582898884905737676041180378393299152007982635597052042329511041564395709672473871042275325208814026507057082614576280997971212781443307187521073234624155623300322826775476456233535639025321689299920141352341872982490027330656496717787733015191300476362741384852180587104768657554908612799362284521136718295275083431883138767970694228742281174151295586245245882733050853813151826157730473333418741554191604175464409589205533962245166043307929791555874612667954588926511471036118616711096724638563912986734240194642114337343847673785583435414579212131239020648304921590591418315134761735163205054693840452861917735435455541597860139557261724216549795631531979827858349808884113693939909437237284675348039486472266800465351890501905278589086910441323817561955322247423415939856120141598997436329406012310985325630303105723996880980999215116496567026589512356271476364076279501750236473579236201603813929787984429686962340204202690336695934856981701495944728077039747716601123264354292730867248842987554215789998756229547808878053054051670172492065411334827392864889418412635903403800231872458940199473238060363992722253379596406234815126231198990934794058345746869946640325172579305482357077837833126214528760103363471347942617028401048370107187975195193967803012761622685190534060451470647875272405187646960967679900966177263830998688731830724346654806536118587386113549058222687101832533138551309479668114287947295619060740398391369623100420273070125899570760760655119968430928598088274609822684350570396024857146933908002079155945087974783615165864383122255391237862136497095983993952910792595945164542526494396837072952006324734919315078515154769603889801387123857900636204967354560161992084566670409269368351736943535212322558801595711334430213322042229707047229850344452014763803898953162876385300464104939507125686911669542209796496123194849376354121989595658367362064725370460646886656230763101068620734590449623323988392842204799326928391957254649262159904853769046155785709682660605092380345611021401013507716357119156075113264618154852397760406351226471801324900951829457486736077251643751389020941269350527589760531193302429209013216312618694500500318712141999167089831442441545018756830912830881931222402706142150548619377436001772347839619463686017894783132427456539051935046525275274312442892333370812371555894811757061125599109559838379199488220884541741975973245203230903243436614197412662407154953643305287887553920864107015035534098052381414545797769443340125539647734316466458969753157083691983909869870819387847745511225553067978377634452191779409629532506370970807025864444221041353577936772206188811145795016116160300375917339295672288217867819168631697514716720284763093173558844285968168610314545228334449318006698351326064235349304982706261896279197041157819701209129075390804053520253436912209417099644254298071683345328686858518430468524334767803842527766110711125511623384502874394030322768627716623820416709989182374239481973970485185486361878879480516468750263180223100574658392923759351060645603996413146758261767991456721766505978556498369396318237480851914239470076411841226487908362344211487962587230765800561984243490824778462389604873597871587003847890943120725805423123624564045011397805712718385434250516406684909953769460956293447648154225303652564552721541096121504477525889310970605751044581991842342629168934768363171445264221942207804385667786246470804481248644520832906473222513604306946260815710007606818643179596865983825168372427042540835874198284432969067523841146509072440400131856589279628518464877535774149267478993273737089390608569933215336302332461403433160949173607011841616838116643494267659915695678191031299613524682026133646373133358403527324738748357240766091789944132988079646412138409332453446195349083180887646948515829377766088400453446090758638382840898867178193684744727589470266438572006067203577783613056140593267308446255666724407313311649984743753935492220587917336778124592887985232813811681155392683849441507456193773855695505743893921170364204604907181658013103257699010074967760493813272518557679715921282086047671280842244684540645598711124209186521196072596616661409314766661523825208201435178151498982680138330410740446589434747191956786146179596691365411845071193504230415527731889070065524568689700165039485944235091098778369865583601007120919613326251607492877381059830768710270459581692492186392310841943712454885879328719294328644786591840929910721355363600731829390042986981309997148772664095665203215810473982237231700571780589820036250337041046800007013378147943377168724611351514618935688810771483801780423616046330087965907466270864478054905328997950431839659749607751802154096181024240813015342081960170130802419720747558073803426315661765341676527012786228827927220594808377885687022030418424354151222251887931517348826582291440299341836826983937993918419980332197033709767468949887912949811764577172225723161748183356380100197233177187055093185623584766160770835588181325217428067251011244664786645833816403596032698120220675959285829703234268963174714580657496129109703993700963196015409918665143710109722812424802717044073722317167699379578545091789481904485097517714573511164488589541862194460085811063718196014319553960519428732698319375058038042861287777383575107595219743155362070372794739662997221314359137049111760591691388415727881503768209955226297286825498611800007793857579066620174597877595236182410335797259507800002510037065887634753497741004897968920256621056959141726916988751452773243590453440559259959477534275355741955743071908861636515088258666066838882854907613841295748321237873377851622718870541061295532473487972461424641444101273872273214165670182364707255826899650812423569042670050947557359119194686528308454005624996261994349585645934290219173200292779019869374252217778484399633367733633885576209541542315913112998744036309807413338410032949222658755066794187084617481631312294141116605429167137655227645980908806942653953237619041886851468336514906030242283422370856979709687609655517480766295656021150425468958794857887892193053745847530057024069012243944925074419366537696282514688750685045281167389060795360648330543318011202747052621800363294938140331766604077129518305983082993023361070589919264641323684109587101343520953392878021335622939827704301082917732730543372094633246239204476156983594747397834451568241806624134978085001330796013273827517281281245079373403250209819084756633931683743388354839764367154297823019963975309210927258941969850216176146226605599069648469208756207142448031758589947892814814373470529606955286889952413349729513138345880513816131661897506416960700685299704402665639570728618377513748778520713755043167270445817764468308888906589399548714049709753416439402719690070419002127487510152813492944708461785481514532446638584947497358830156605551901221825992130710648489502144825095202222362218608830492258523549341342802509458677954191816327769662374589597172637764032401934889755916537780147703754581226611987608469159401425182437863717731911024156321478909209220379680702541477001273603009649424241814559341322723936748586248937291135751445733281187957749601178021096088796740533503344115468080981626432620665863078765632024965109384539246214740040554622522076722281597211172875538477850154646781265026075128409215610725577810902252601136752770597147863654070223953263965681199111587476049764826682048405628839375360141990057584426586991219866126512977569630082674585097573631214845815563406898579948031205685607113209745853407326874831372465856241722050265446311016988584589652622510578937586560791589631009930217026171874865295610935919339809541433733484701534824875057401407387600405411596043349192759788646824667010328396984428625920841708847738825282060101707494987442037593640079856037591405577782133309998599672940683728223441865367183749240338062219622269086798399788049329849314133469142309618290521442440229464011618666783707648100581540619909056152440370628355236085590364872626726193455572458423571332746611546681978821479381976740673543556270067992634213824523830427006877049604855293169189963429998492011063014660229491329672620871613574745313081971650004634365966845286900819713698324282951115865280218822347546114149528059583839025061879006663770670937283117506321637353506083472950118090526759028413985880102471817404034455233705993207250110942543695858246552379311064503738838441510903346816746545976415923370455099644429662552432907036264028295765890346338150299764712359546326296128491710985505001227638324951371384244085386272018158834749550908130714008257561900200873483045430622403956448062081823269964560941438345943546919248952709348379510410943290670365814177522931329844769935224410079545912143447627138197843511787587029143963252266878443493537004995182849550443986731084474047935978588931208056664404550322635748274292697715127720854082576136298817253045137849381791053084556913031234250019376544473415939308824381463913334273095635715063243297353786719870004586942065128400974488245732150760785909532408557789935928952774946751608554137266027753829896852907947596256809271270617617504452635467556446640465612726327467240764394583748867805506517158479195845209367597921755399294542318393841111500062023759624484233117069431433373725461179935706383229146946376357409777620810742255562735773665329402982838506429225467859204796678383387083502612585170804487861596087280221097614218571679381181781361044904188737264389971642594342185802145404381052017075166949040063123815567868321086519475066872205363682615422788028337012764548788666814469550637269064271055605743666747371000873923936635551584720003777424920198564020053752525637491673832029505353910267074824986594922633877140878076120745821688777615205445408736015384002326682738627184785525248053145148539377392447772763128515529322764793026468676249473742268410573722388590187203550092521463688289028377363378577487224115266965368707850645409979492513449411079103747143017590117855666390227759220405812688452552859661634418474490112241691449181682367450104281035520787143616118017561665342099228793481552844848738383502893031613088939013881909126307770908708495219655104625360939157732710123580962747846977577925980782054850111781944460003384175476190420575933666476720811551230273990971872498808807865731913587095797075400821012363666558276681053991964629804814212659168577497384858372426040378387289079050604973928610102191613013725793896940952243179733470421323154859839535260497688966598508152037735843121555154266444660699371771295142467204163906059648889563215440506825350383709003991534732631596406029941284673933859547829640555526347325189974408826995898608147227447716916717631931230408943970348206532627171924841668720526629237419442699321489956898190593865465073231801751524361162303093703216956353222728699039657782717962026704836254506434259489914548742265400964328652552743439881655439368427715204116008393714660331434834485619566888473912780086718792785855086609136173956828181893287821064572326630873326307852997303563127557791292774524984010606632651254270729857340156145686770485136648907900625491607395111055596984101425410083148382364345628662104087991389901348337963476630986812719907433635096100957942892539899388794315301145800411112281030586753955420764927904937686975366626176192604136673607649226807454792499361657839128368060697352914457370665526664955756330298240315281562272940207521283663954354290216824100452065986558940535887411255342013064625950465967294752803972252161084803300095879015071289692565163524295296654736684270478436212316156055462819986586710327900367826749400279678606346802592906048616813526917293654985026543237533485379946683535040076447983241680765442554775629825106145103045787323653235638188416735512552198407649501819391199555553129700158190734446734317699558981555054984879891351738837834322655856963336664755751548421428729852173092043333818252728739731815390083572326414438203601625257871595685965254763606203809395508857676726584785065901402403787158280426462814849429871753299779448585885782639426954734766530973188030984997232770711514038898091371736628907602301337759221665121446055675466459661974873020400324521717872132944657996263116490660964307989296744790080054774209223683902105145550648431412350191083923375808073737557066466590632866119020057140422161845971634313747169379117123918301720925145536006717574057110560678290893701259836446951304256002747754862280092700128644504914230871429505462417035100069385191803025377143482106919019808951769857152498289771261540094064564020541780019030515108188403448777215071795994402198855172758044154026226747414999479255835775394582866630047797477709645810831524526885273224002703886496474200661774067969363028010803563493920538201908416865832573211670728509293492823600520350742613669112772286784846289226226996301340097699024985208671390514787902227898483683239283635477427712688667785048344832499625281569422741217016118809688604447025837289171813700409205571466072163001739353064719118587890846361344128666476967122377370803766471152951646969907731214435968475899963839589997782813576406857281381533546920483243274473385135177345293638973252078554696190811351132611987608507271263421074056521177323851939072936567948447379734899223471700605986660797968032642970710969844711386452592647358077036903156327773458152899160064345480643727657098416691267542912550837857258092252540684451281713004627644895799693369490789319066063501686259652639293364262802212484085496398259188824739424030371103705215494967293657809294551056239741992316798681222092065052504190065724541617710731796141432785674525854726156018369721480574758646632670957253154277825688547073890409359360399168382894557154362000346510970606347240127363993638030825155850004594112298611153837624891241918420263204689652538921168100637194895313811163973209573824186008268430387613958772097452687179283578920411960546555318551883457403031872422173189487915770397511745421952157680785033676054209565478688670192301205006057904662032196375034576363915487843000296845516141216794955152866986256692406634462190902457945032793366412694676674475713067051573436770505824796407938317104187835020931819456257447484966343589788686836448020241463755730535242714476851471220889976263193061784077209442874155802169436301165537099725141857810135488896695323491197994295538399482173777253408925571321005955670641276238134939128304855945462103417860694323737799110854932029321819245387026776209249406826528452306328728894443772536544129894118323508930794365911911031343845820844180513580359917485342987003889353866201278912188995322630495679874693863882756854312273782906572984564540629145607905111865863166751733183854995800541813410392082680893069078591348829882975923138228773333679012406898083058340473862415980961687240419336834131390019414744278191319183400330679882989849030036329739313507407822837366448652557159776817076691573749837040545904259079044329695849490525544841724626239934498792251515990024371274116272002063412778635297024107917308801281961889731396278652078520918968908748321678814548958520382762591857490838513958181362356598973693060792667074165079504396161950062833451385943933193052655661821386360400386266687378725201206881176562192808410646150464139005932647862693803107773219969089640512121592692662183588066065025240871396264674663740252469493320971761931590116337515081795733953575369073310023682344340189866900111386362930604510546568959226325540382708537939393240711910777735556007580470414771155556151436842626689441857118822439790420617826711310081051735545561281565841399802025818780047745874489150478493581173990093422515514998605433358030978804934681574977563607622520559815487916438781916863152100431239339479221763402071989131065493056161203184548664300525284751620200826716052775878463619975816837984156321612689201500668037125602842435194503379911084910229710098482933823081167322627457406551728573262950815952180259928814374571204419258042680820305006261697952181588431985584374853642199861272803672124316441708182019511618582811949690632318962362688682556355511268598092053220892057881578411117852105855842185118705589043034443063977526633788475646917621666113450349434596839664136692229343691389036713293214581865866201501466703959620960409712952415786537703254297205290659960403997709086547748749560519200417159469184335443815249963448423218364765001368126444704000612502989421663164237867524747957373497731193451596300569510121800226235812297081413372989451790264966558338725062801175607218922904106596043902594700841507986849283611514837300538116548426954068031693413544680950201461318504577004625460472668501346363411725430466764769446181733269516135882366074002007240658978032562547161769275267574141217435779557409943477752111527172205292928279487398994598973235049922582411148562993155320433629773667874694836114458155137817334427805389629033071681030702707155284352370262119895628534560671318671198224649500800978531294034040573515374897760884289213294338679373468125131939808777775155501318436847818802511022173883262233400908050083217973982428217354715704181838248760891512363802369294606367786610757229120027297413277213794407458935450439238995927482240753113481378035918306977362736330207970047391377326948929048151434054290709459840681263327842198352650863814728982531682199223092717316904259424872261753142727596395191061290154332543070962648624312476498877866381176420488523188718446957897422645906946613576157787248659909589208837486563443448113874107452857058159439262515383674431336127928531687689526028806640857298850146811345435284526205630304711931418434864837150456851790601223136019305863848459132562032773596354917300902904038435698646546637769642959802402009967148942343341841637757563506105332015103966110866345589522873484398723796878009172223424666854656996941841237329094523264746565653360487234467213952835064578119069687880086712862880738889651282496998358020468295612316688099089849411343188450293802676902604494475889714690360388890666966765991502788723821703480572105398592366037754207717400398082752992569086649695940198691907602833107121119803933949187894583166125598563028395421873205314559909362915574919587217230744484498016158187108171837643580814700235563333336804743694993759159769316820967744035644151677606491335074127919617801448380938698987320515411099092213205104170947694720758890732764903916971522703484735473946949591716298577864965611873815331711349705662702490249404250081967978200186512837187681329144468548492179914342970797567528705806744256452155675565497276835177221370701908305749482556283209656610435105604760833033731836051558140066574679774176131884684730949010067529688906629655034300500242494083314686861275494376536926817322232501936401036658129643119780862646506623268947337736809610278409479981170000945278465305132251719850203522848831286724109408180945764691537958511125308982020688211960523004849063231335928473310341510289644868744064334992507793454446884902978854959618192801431380210664529992995319864208304856207030968771920479180521618565666638221683318141538084502785698962977184249317331118146421364477511613340337437253628913271387915507660206512434571194765739873052376774733627141494161252542260298125082285730571906872374121593954064983727607363179101871676717456820491327902854771210330337638040443258961862065518702111535680712451575762135115969321566541822662385878391211894520807732813080918054325986118226373288259302308153086950056325708692398521373607322811657378642876917608961221181945781746129299354292084566733400548892521346509865402395138314506771452012945614377223070350886893259109761926276879488883515415904191636860871919693938138507092169969548967337029463417889564331186817974792772342162608424820975003458649920933873519617472393613254346465435575562315584022969070746377502237057834025949592155086097296895406349168606748540798848707151240353682305744108166315339868193233338207534421007327881263270421817581971412997813388077905508765800046062879319654838262732878378870248484269866739355383204423428904270112686723604654526589662866711447280674749544794770815976754493269476455591495985595636389349588126225098088907461812292723323397868447901371447942246475299792231513918791175586583119706172829754587725564846429618266176671692273248585161931999333520236531912300486197151946268276153105713166930998885733187607288580421470218834051206566675169860572942333043952167028431892379174869863230075418075682267623918440107849936054323438853870191368942484057777973818231924733557693262269522430914971303488822480570914895557219373450178461074326600321177983106590091771916997996178937070866202452651090722937366577762136400909332045632554802402449738839222038444365534465996252125311097570461439569160230420335928683462432875958488896500714903387991333614027614468179539473940123291527850238273542177113379228394035353511207710258756004360967798593125138460184694028626569041666430636255346141052505733470524759961107231592855326618705481003405550090694065484103910336940380683433783743399486605506380100461180391228316895140015846746131619169045098335447982707409874788504176822823721875085445062425761417510003943878478265285352017872744916191948989296907779735232627432473711712362764936977710246681847681414767719342359149569327263049404561958495019339209032055120843324778326185914138342522311339539565087670531857492585201501857293707147712943031238989196469498045246739564464138553449640431590483040825381465655542634312471523341394649006870874196260090327090149836017065403792881775143714060491928156060335824716038696478135826084644333683807803262384976563938274202811121093588514132923181884625206245413455606913120939164833112203030161606966235235877281954646078657242658059223518658873821073238771251896598085319648633837149663909313233572825691191905505675747924699525039741717196917110198333049595386284262744465161796196070511135803325196114680257626681174177716265365846459166855801315945854518330876287861600604812003098374708084484304654949949091589079067004012718554724822215963869732041345795112225568999588567807647339366073996373927951091754226591543928872799824019365174161271252436219849623287735917279045883980588351411871045410550106836036321642832681405412625734028779058165069861576861417186809274227401538848957531438760462325802291436117626689005391482676983868766115197814188452796515329113974746986586034961329257141972834739005742554711478158452788472150056840147421207223614888240519792043035418916274258634355691643414613976051490335560141517080576888879844729229347908328942234886757797197308420095220075197297307277639308530169338299437797950525707154767224515819895207450424929517654318650354818123476738698387627352644875298178904817613563530346394096275490944484261194645563038059276744514304223632724639730937621700797367130034560744363188181416771787149698925773821605781218709960681442320221398377836884296337361060085698150836300734130321917473353376072959060427244900531864333877133226221243720567086101170170161157286367664627706581943927944275624792611724141627229024203253676251919540890883617236459018694210375434106411583823143296993426221690013092907324291796380593644613860732607649314471862614178488020472842678829915923118600401348311869971669787966182299186493538253602167040983048483684698942683810029853243885341919260037101686629769480896349685493076130978314842973145492705371076315667333040461101752628636905546487063094373654181457340409119604315063622230217517316101563059112654720310689461857592913650505301597138582637564711550774041618330671761986875524120527802725712285189768990747531724642153472929552275270942345411446257790096585767326235139561143983985000465240949697516213300994500410906779782918722838167369926015509929637078268664967140702045710786224735450529269749031280965168573686565400261678301299868513035202193555951983950211012421239388848978936796402917692799804996966006358575286492360629201114241108437610113219063069871156001130024596949252518384404609463165813518462523883467409385725306028609349646581214676391964106474592132657059684964955454564622142623078275868102447767841609707259383178762270393269292269201988297232123581508634014458084515798836963881552240983190769618537744929125603145498895908549268200989805940244756202972378105364491240735872280409353595247863899073821474493114321481591144309196423726006471122482089233848321319402495353070385995619616656316122906501428632368218487805378078876119658190099600673713766734129634118497894076570112404910132053258724444738242443128536983069055520973297948158180271314224593260595622721452422157657395983501780440561258750578598525199404714661565327263944855037445948825848769652867701356537981907801830514766820628885894550211049130395572386743395089958619261097450569827584621339670487135179756903240239304028758921586067999782342093323831865032325072186138802446389567224641085382111987832226978531184464699463881932344762098341338714983800398530471627175290098083970185551705692821963968807070949078133872807180562717190820855300016434746526144754730219029945006480750221873575633680304595539313733716947547647562727200094651280868254414305306868201768854456926662605100738673140734841962876802760071898882303228038065770543215369183511354205785215789241516957815134450333230301705770487922912159696015003451526112831419761937298382870943491976737649556455161622950968665577683851146775773077490956638260784833317092957891570203977650944619420097482085987801617037843093534870364506135433108684763065089683283590418392054508869195544888902408863166354562156827063784740461488110976361374018409250370230369793327609936147265511360060815290738106398706762344749150883277006340107675905686982971359018201128995023169962945010746693431313587733396521516209013135735286762680421103210447887884083184270786982197304934131629102584744400279244157763653871489947233966711141546265137447156918835051149596597911499290249108572716511422995063657657542377504664308459253027977651039224879483130402651226589475598299219864570542878266483550233046445622179683379077919062564173882207589175670590736315288224890685037009913658181829653680857090763582036432081135374666184166619351154273029877504840130575648006621302096680066472260920254085694211332566772348978597943400045296497686303896707165711244465848073603251839842609345791543595656124764021127612553308094393797705766802949190469890593752735795567444938966674599071582330433754586641183340565268723588547776206740154397422761441471810377412962114746279770995125064802290814080838508792376029810442701714201335738853529653177145399110175726095599204686138694363310041561178608107714669584343556339647708550428002788433289707743018713297011313577026701507359954646046684638760894636532119140042690907774885647771344318621965486255144879504102188718667391264416575209810347585732261352390158948558239825963511464612676369938080670781623901645905468358560836033629855468326825233394362452790010957850837523509871718940219474705930226907649286829448569836048649113519850406609385896074970116001172998255158391591697496553431549386222837770358425910051366766500551194939760804595799572870840952411174082452239763498992866082369503192555273078084668612333174306720229037358548713835642845272586122156705568325064842125350337113890121874409482839858309663598563864719050734030085928979589955542527331763215387562847544843725263902705965709846932451790521385507249260944058685879864954883187880573997875891116290673266002432229620980175399071229131956109332215592816525095621666307235021818437347662070413931014826122718853616212188657988980374686768507379339614968499114041642618637568557517738403566537677034069312978951083370221204629444329816368581392529571120653432642480482948324682551225498799098853806553663983996550970338022709990655298499579266020391299427127730240532340683483768537791837105215480983450682929893464641370680540340257931420328079598404112916933601891642295689602997810551751554766595155451885552104978202106816644642708983231195782500198330513202292594384040086977601077637604850994016319479810016731298233903528143102460149378200267372425887323621240051287052430167944482189510777506804348481571777431347946015316861855290874884393347618331604466946822741857228275418610958214325148167888195829678866417726629087057416357098839971231601269357272902297002115596401378666033772492517933592044107006149868456852748375110082410222100795918544199516765804561327187974360378401170264164786619375140026777856811464189687512141161731428995862489696500438232583814707021934098983668698593385572016367551785981642352823982505128388516719584729600363462407451096497181102681325497442929046159875577946188112963154798293102863406872404618669627357380094779513320250845906360910292986721288330599585004326884030045119977180003271352178912355089323252447398320761410313238684766233735422044609101102555910642528566455015033680952345140021115157887948846161705384740317933069832864953058530911006079415372027648060647421499766574643943994451957867161489011491528622861958804760726296886948342832071287997399437449281817293471566099689235752463231698816647685581006684943132244111689095061741836453600425086111522006787678881572473326461757346575131317047250222542065777175043524951796433428805320205968326735635721554181451812641562042711159514578732863835771760200301564661188819068572939085071189996655826190714041797264999584516011837671422153222926384489598169782184549539680703227565842773275251269335899377351522110363201561070455504453071878936624356170554104763704516644293914512726848400613995074768277555237407633537901790693084406203892157853712522774463243753334082485970667265412197218193476668736308919905945601404950918544399117835712232967594105300486283093200685415266188914916288291904418285309604582021568571192188850922538507815696092214281708866034535193927737313966495257857771966823444605383529365944019620094595124538527967515501156131757204978373526450911428110850075490823255659820097240454937811426187739776307055520707557711036938343385259209607842960844591095042215038217112709110792493762473233481870224047403052833039110400448920402556723875617228997977977586179825187923169569395789031833764666064066650808834731495289534692634947842252475463548647025204855874258995602451726655056167896060491436315504951195887011933963550710464671091038511362915976018221495979072785157826989232253352435629554603493306850659763202554999191820602521881248467538425806642697290705958175904438995233400833095143409821925151750303424744489858240634899069783118002799763621446072426983666440071116604468792357084798075786653338148146029857493027399750141028794921894251089310547487879500734846930058233290642585626908197225787386166199982007215629825844005693502374017096325353843856624964931148031718439610565214000313202399154186121909078624412266322218126542566993793354120937056450045260306505030887851680723458581993730420472263854305291177676353462106694011737290058359010665926353546645223541598073158531770925625095360917260472609029146754559662017344347260065950898946497177801157601470295923989082234804840800194856463618063931383577736691600691964574813213432903135426977072178575790027116844013685803629981529746354098873797263815612407973883304630493419257881922793142289322507268396008366671318522803254710071669885792642144349268259068031929519603391366150634197357456861551238187959923083732894167559267597765118203348187917078728873652776076633600216504564279291093802822744206257266693228058411143555987179947660024347726508770214378920226394591191512481867254060987721583333912070489269858644837806424999367330665375768978118747995497046697800380471773323604500292860147620224706519265612787970533815950936491471374905172501567064142231907134789688654835385227558896054299050000017223862799564260784495733832462299474382861925225849918675491284202504852362074566375299390830983762740096136748636092896941051454278321444283064618247822238314847916129465462708803818017656848164125375211515438807759486620215218453966546628811161168874088636537162845811705042859849339125618192073831272961339967529414850813696827205610921952017774621672094708858972677976198233524668045554388564682378202650845278290441422496869332207573606094605234248795590855379982275107147312201369778576438672316536615325138756280565611187621508303890044846243667810908697499700156932009671267798583142985327746988153443721382079676439295133189117056746696985425462222089079189144582252553266446574048580975400239392223651864584628274295648016702425575662022050759259843761297921994838704189852337885330213612179342281368575908953629693851285084894655903625080735367998595979683321589756371984174996755280538376386698570169090602397666592795843303502277307347498176767514975079432393811459728715955878803530944175315562325151535819294864121356711999420856100948026091475683185223652567737687748091155766079974131558624789252693830105068109613491503560049778900244981208807775243512643806218596528067085257964290275817746071873275468217770952743282240479238009152131008863138051347039697188681820721615092153307919542500726115363067757062811582190248283159034988638018467575054888864665574771274868960751718617254095818927959793184479341322955247808355685806734725892425376275419850829104050971226699103280481109150239429560435964017583608408478663765805611211912553699798299898688409166557906613525785914724358592846185501706337244946771430118924312495749767616364172292816194406614396387519702512108137431533192880974048597455091601786162385612894940439042122018363330391440264652997802855494673556492717114915212669732198755410761224423422010233475730494337715859872476610041917213429423498811651297209853873710695442783759452865762424194182942231080430077078756883948034284446025528397740293992122235216839063000818516102410775141700844878076633595354077959571132917344271690468773362052605055918256783621466064352262129728850721364448885402876166582267718182781962433738924923758345107033777322231834819719626660977586837449019850357491671856606670068125909264231371480288578988475376732803558876565013195119142978085081947985283712031139920258811098631687980234677683221883186018897791106497732917882586082542959987217907022694317425408584148736484917852998598172094141755650356545924969270525295915464812217239425924308445851003059306868939956382191412914411880959537175137097824890498592966842412118189838937601426342909342171940861949963883138757522113189340195057461852401770934071594245216460897458534965436669945043623529442125157247477597300885358068874189358517301716661562250036586721938422865201460490470327708422983262009706259262654486821705087585031890693026129780731531392503503293291252833070775766968801908418559524942988819333755017051794614722476336786753100973163693464408016648047386461863167593224833301183188204145225404664066753368025514107131785300926522468224675749770016549096529558333464603561392923915711959423953753618074342362225781342675803159921703533535935977699855355919393512130435011244130406804838096258047866653254318871336173089830002796951292170992354768098998689673506610155656104419152886052914095287064792661477694638518011121754804371543316461621189982584946560134000686004468595607546435116379719776902462117976760129322226498667147296209636092982940440683938263884382355000836928552778810125251285334955676613984579631553559559138431847747662636394714302562253231818513181652185600419104412574301155884219051382153332111765831923009109324820279658562925889329081600513284537290058949044667749832429045910040742965803156133262852118586351294802877236411075196396662812496544209761687105430529432716423756669409690978183352699384047966620745765838195265673426133923121234568038693241596537116135119626968677117505078475451577329535093854058133353502504891443156402161519607162671447446147897267966969229076562236280688976817390474744158899244314578948098448756068655967285718604084248154758288212035675943265728777092049834868081553589976883206730972256535314595743886173848945065224971075167394642390590827681623322550670877912010658349419269526940161303073136974812196089109353729911538258062113946303720517341211754778047304634810157365788805487098918713815413523980420503662606392502291862907741651482214293771853805783577324429236255014376935547847191342073536153448900962619146260533775426269112091564018176619661781643693026349938416477414735872603848135878071524011647079973548113436554134425210904976955311022120117610744985480583646047406427791456080133238732777953508568572744398318859249554295530930435120646055116873211896727754207092167784920055612889631127417238380602179814546146853010649518361766822215267662631297905545212079417806815051914744990856972690700631731998552555463922686068387541839841189377276491662949882812212423351178805344164257838365536474132510281975475868955474549994305278306752384612209012515441189537642571238674435591703959656734229268899505789852279575534104943144793132173369029662260666458735685227211910271609374729862212122428467917710650344973490621932727801664084856210960144773355118486333831512871241196028284521999066933727808737783678479630122890796417813967815558543180132081763976436596294721295044635458458021666963994036333530192972597005127426495905571018248297272729458441646756756544978935379860564737697504263776328166593813176981653142780625299637912275968178324570726867503401395565791436375737518754667955205473416004512980206064428931278917457312425164978195861139729847426910499332576235640384267462186164860821505711174017777628367451642203448552680022353327177916397894248962577514690653146174692196280950533164456908669267628460506558739150154698733424412447246937858135412512137102069735450055742929801731972039553971454873073730774422106267142451282514165763156000940621688892476912275276181974841152499913580953869917414097029079129475741951755185780252763045773340516942446043024285444602754991293418903785221826815432298518584789064824031598186824104953613263154451160784620400323065423560771842666022591588080117869329669488917815803082806039177867967316782165694230853735763221145150034294692295237580869820426319294601996836107188464459605585647843207289035697087860218873525903850610387115010273874998810981903813554721626235674499900258177129743251969529540920078692884502500223951851914163473245852212191338145403534294964366804598977436791232638399603053496358087000038147681168114633430879639429473763773414850808502756970399686273581510117469927883861192157204973846154377390533023747719510870926212709644469224439308822670997154089833607028215776673232802070117980689093391481977456152444214428206696715366768454713757188639195994742853536932312504337567825503028965646987850038799026888829120545325366558374471296840092334347067449139344498603364042956047170491865823733776333925199825945635185746337107985677548432956582026580512024060712047904443243106537814611018486402357519131288195032375942292337771799872809613066331873835682046091817521407140166569925148302192357018736000965162634360833497524205234747537947856798178285934158861399501755979503025562598001014789901574043174099358416320816978544020481739380815867736955944267287882207739063678616497165302267421914282323517215728006374106461930752428926715899352296149052632193137887480494241018406791296620604131871461701261668338805363215753774729058276748571097268749378928157441317876637274476005097220725935207755498516260697594890062368151397766061329173819979435331058390850761492459741163932654530806693734283325216065561314615722033235751679480918343721641728461466316281558307176073909253761213275648162814516974713670547362190252439951095075304888259205814121391305155577782941593558472229557197490357137238818731033662918653025944396685615614089078364981823043278960082534145093658402889849789671906625147556273340490736553398183614215211786725514119718103121081872509497036382298018399503740092424929996039962279539246053880949792067120593645164842596814757108834794471778001670099043580988423582574629923372522638775729839169926928507615608126833156668268739535617082475702690055479439824785442156727938014343659412877716294785836082180896403912994883567392848910779311397897603797591891771725290469885712046690458805056419825055435371031237852811503449029726623955442449473429407542297388075718701259179760532741009549613493094494881183618004506523206127722449482460554202652252703219380711573804320785390189368836905611985966449697949692512647744974429968620235116574991592385188409293730065786431736979930108802942631746897160859023644130759890688800025996917651197954648902511425629125638379129942296813486554665359770711228787429682572018498283288764046131779563904668835204249754975287376726334875642904441610240711758141792188706042962417875657176063175476280785356744424590004230738506996996636669889276860534093229340376806295660501820735918354259149680055894452417221518742187080129504868026392234479828010625912382266964543239752029798778821338334883310454340824950058725510810886853978208046908848992146616310727231851383842838117333634223567857922955250523361487153793794729112125971204817402057575920332962565191929200592475349864945630174698770770775383356112436665354520806788433121822706185939099592605895873867121098068471773866839654237622575793253245297769857989708771172933933929175423971889563167080448708153675194800877061290883491875061898040729675427295894046047207323802302490149899267164283593507434122787154822379667020622354104419507568408655762906367057506002212635969960971807380257114216936703670091089261165400769586788737633027481595145320741653860967380397260559146199666131473819913347782943267819610231192244785047438053075271988803180206047857031783440359910254495045001064672831236999076918563030341017409610842342094296313809820659939491957865608962241605652335812712947996006956443960307697587300809494645087787013141720651293405959686467965198800725025534178620896265415662265726900802354365211782049021429382981309481660997498746799055521022017456769018292328085925847936074287666331579550131480959171022834141802041095817786434007218986242287280636109173023063774135297092898301420986386662328899730123603398061651271375939937667004233350662642780923592610143556982734412105816172457653584323507264520538262670942478552034432165744670130759011836276553092570576730796056395494213936833548674629930647120091937059039470349967080100269615248962324412179091087760292187495200439379243449116829555623158744257843774267729172647983912055300183761261356573944298920298255620313674489542548875482538601521865656815770564090316853031576969336258108270572463245991430328979734918755883498305952878434686197826904750679557663510236033910873233661801918460513919693010263093383633248733345562636599932014136571474116681951188456061309263111776015165393478372700112129014757602423338176811578384303688793511445703064356047007613646820476171533721567859168801376933569125946710297221114936625127368201710155447074577555744099137488010772555270600144527141485396504100287824305801714972211445267807605343184831029409607803296440480922392112445966942432460491152994454817817598657082694600110701785159944838782007240568298549537580853240126793519888515565245692395724193560495134448462836993354247733113644977957197380035581857241118070733189332334103936009014604996400313839210813478469146763199394426134432857703247593390465763821090385053573438022046976398810888274015187629119303144216456293779248250975074675923489720137323232253630119565626328338444570336211759904402972691264647412878707647470870586161283830423163476142126960366297544263452308405799056675667878805311173465609327979240646901831647229184684183238771099530023766791739209229354402672228495307592050664537657424053084010046966303188248310896153764974123198775164781547935313823382573044106355645457444980783926281338351174862606410791802114771747765685028450175174051843548121104769307050318967620011639594221521845226667593310825145514092738945271145957477059658403201915572842929568175136644663288447006748047782736575701578280338693179965139284016875208243668218146827487164745255936369072733669349611230447045475443207514702190499277127467293099162888150539952468765871661582404965012702351747153795639581602818206451600335802850048246677368252591292992210719829825089982860656896033761805783327676657005476985577909727958266404067057883898338039072393351386567685875245340965380299300926492420528542761508999893129537413409438639676240100496139014977284354933094816031398684965105437910848762232932225203072091155620593219013710394026329982780606734793027567215988528898488955877490090798287156375388077746739842576146545227345335712004913947887130566545804939892266082535830542955181701559594787427766627062819889600136638086465965413694073551985348281596647293118250267545268412385483225106492871114727849071655678725754769475021879938923728370518819296946791375041951716998338097334383603797568685619306677481008150626100061672837841477932437540065005987536580849276092064240376290818688813144811118802697342562504838871659873949326875449304020426537590239925315424896202934853550224073078730883843830953347910002989222832993230812977533219056147278691429663541847046132149689468775329110934402216932477793591712836348226538838090677816270824670082383640342249072838136825473162856496470217397255602665547998538488558845160922781499884220129114144199189866319891085307042863827044408148525938924381979236306764073192093254685926603799291812452174769033340492943669664390582997247804614366127142008114101649667693239870679588982881232513531870152962964964031874936527173249711427041549379600981732737482918327640953081041250711800614934553245435223500040560491663720231088470961762065216328133762174376149506874562792658017531240863949164256672271124151273898725394079627351212447730579628246387568500651265453219315105683356921610730067510889059575459426768321354760033835231778235672612723908694884080862427812001109932441700448616646181017172213978567672379384412894770771701305035089870137488937675728484741430007975475866060004829844658041647852055194324578524808187352897557982149535467872654479579664033220404735131355031971528061188511329550995239091583396186831956546555476113703464464768504736514211956397895137820281305336481029406279723390682968082218312312475528383507555624264834245757114126966141452549747390183615735167923534405228059410634539152580877409344129609260073808806295475093871830705571542834572008581676406230274037255375137179243427367373290964648783600008042015518604934790086725709539229863670247184148783470134317996823459502835576593714582967828821879746341757265082622793096654352493295022641623756874567688264598636818931000827819634385730977890630641488607280122616731263403418562213910260298367399124773787136302225879001435341608461358929788389792746536638138604439386189233824108466373886207179008519424389812675186694195322903842035144444514860689152137033164416565341843058968352827354689243787430528886128442344486132624308752373384956132757882446255662624079755381501673950098545609310992633783744305576716254874958111731494281512533111575224158868888107519838330809028973454191686852392350999784191101827813764497160840103016157479366780796274736590169297677750808241180201255040012937475657138841225505519703459273190720816284162869005207586687107672121608975363866167525746811399398606893584138438612420876835157293272016688636973163792180143543011880278039932338917436734991971929542688014294163653970477732886888443799432104467834347749333195984854274052533367530981096809858350266361190948572634843568846420846773135397028339632452760603600289491135497225349823769639912847597287821399049883813788534286601625553797780923493209459160010746128627078004307989896976396061792687302268627590129397121382017277343626966581787162280624997056446160615541754981643729178251724318979259225891255801839846780509062569829384827383732778961538930459219183835969344122247956703754626781045240262046663026559961285846275440267315529924140365279638980552622107687366175871073599625194135245440893474982733974979198767382259535263221364926100619124835001335054561547257582478885466581978452840815311267578670423396261498946628829288926186727753680060961305105561539034913018438350639213170176605255106418012454593819103068673555956213247884983480914983418082712138775841667512410038935874141538871342820971902252928103013549736595302812631106884386090523601263745245895588198314255246033080912708472334759516830316559017562372885777454935079534396059267555331763426809917643781003438258307733486074321782478779409603593806126850804455670399781917313334371963711381692581113421124100128380689402122421436701713671389198001278312899603013964319509084705552513466803330432841356550941797901282944693680029942555690070903520012619305179512971425539093820569985212232340245595945155969183402392728498702738168749589326665993601243312909396528415172532944907171615999028055029819063605283545551565393905848656310772609700145220581376879074217093603287200118528247163197217111313472559502160671844636334791892266301286505735928689706752511705512437723606221761292017179123284583645394442179164421830955375222400849405944482083168853365749820588742870951260526120139484210981961552259098233596563313689674495900331516690400919883787395151671870193231043396123984253077305180377758509271632347282967818812801514728152759422296230865376892677561380202508471644352240046657483572972048638994400398291345426544992473301518303152385569751060974045182735257200231473269546177015240980168283100254339305437932785691749214741926658210095853801619759653845597957820459043700554168793578538709190395898369518385768535111246327569983578833147361845639924582659540610364164170571993828327793559671544107359204054462281673007577933951680309318537286658868808302058661444015835090609298203553917042848436488115569607353898792226191517265775517464409661464607449395509660856259470820617138954356946502794267324053098949695079380168222527125866264537419098403162954858472719973185641599663737224719362027661482903400847087238062244696227395040566467267479275458666648422418233524255942349055413857952542834531628691728761345336504212982039650775571216221370153490632317378915164804057142786546516327011135278856104216741122466189303946486237440415231003598872609348204299697439750356137740838365567574857534691546365442468077821606150371049599172148353324670823876609133943372873380785332229727859919375819414410181444432562860381062860584090621138624539758376410237577126295435049953484835794674394096681007160474880713015958940019865033694198687233132017815265267895196041190800351189538637009379844145646024869300084531621343923718556130506480521001977696050386232060782457784673972002392679976591579084516914582447314016193563771784388225723517049351094187817868776154740184832073783854799890388581768401494154917620106384352721655478598137697631285794198792157617226324627591122406507048758186785614722813976141082002122693881684896651317438867259200784518106895338808429128347090531785885009696711970888620367364497256007465328790055247762861794934452586080967394259384791741946738641183993747247829626398480848250208658262815060488047743336102807069327000714117930050504783977615930097320594876440732905884809747084820976878239847009442431459504866628104966726337161200913850738497532392070498300308913941079267356863662152066487907265685243801303892182769841756899581539049782905418095359064633428141848523807831853875526506618233173479623701641310444076063811466321084996095347989014752320559909784984356246748749298671505859867249501409258163470895854740069151849653216200500612167439271048417903946898032436701346101779111011077817362057532686565992644103264807901145647385079910349859964622598012429569544584337343801824096961850924322011018224620350038888022960226422374840974415894094296817107417937982694313180464780847536654225417751493392074141500742774110025972640201475177346010856627916915876219058106684384073089250940832750611086486350444928884272700989484301824699487468443190080256412198098262822620221074054860357899371829712957568248844171152324390292991473009487201291832457212610677939057759905748750351763466773672741545119391896759266633309020505870747464652543513531529866448765073956693239470482159642637405551247254880088312240569054108002783506279122865329096111478758244746371462061410799479983362475784967501860477747327890939668516466539460463887572460089664674357162600386128318024413844139842704491085159870847333630985581613885322529043816603564688280213376061598784869291548337255427854088056754372445438385058026292704408231636572066872379842870817345050442696596186017470364830986708799805617449342113595321894447953455037570927732220304896544590768056809559450658632000629760370158694087148643763769995229532025385073576922687503768444155415838934694453532213437530778171338496124880054321108210489359268383362815368032193523783592673047165830262920779263390999345621429533810554931292306525863180259170756422678350096687866927029391260741546055623199179516485164920957778978279406224034966628016023754910517383545085422694680650221023563314068537555451442587554018626717163922940443747705320571086847002088092339369152253156784232933500807757327758834364631299276482716145416860462968180634520964271094313843291688389187737316942305419398341922140277153283569258437912602863287725720280013395445316110800519480196239208669582768243671254794762424299163815394460859993230804818131086219914097767781330745230092179631494038150913865741715955843668500857240141184457364068864324157842533355763906461825875377697763253163043178143337277212515453190201957496153031484687873481523584551576573911308069420781006610805165885835791396235669148075402849965300935360544322635793633211222868546633561469117755536255510214775562920177232893982021135354583077462269914306619118373351811047161822836271127525194242993996297489921789399430889900318187225725603139469386445185548204306250154943199990945466171587770936856398853054955297517739177755224823805498859610306212091789027230212731232274435627152603068247795380989955908109244833648927009238845924834849117882513153533895127110371565646914060061085426657218443605378023833070011676669498439504743826682966074753523341396992178908622530386836365360325393236816735025157267017240637616456546971391362500776805186667893516708319314971423007284908190347471248238650332700145634806415780539139514263209407083549848039553390296065385878722039308199950791852712830162432229606090549579600196324956036234847233235085143113369312986431826886928398765424546110359895960429284854027044140406425924648495086229256783862174278524053715699175704537149460559669314024549399920638752524479160430377591244070411361081552761215847395857903443745756710111125691185031783998826152815996465864989856447395108161080009215052530793864967806920467495510148030325491673484305675434185177042994307720315821678631453501213994635211350166784829585917207391290184013718540556162570285076918326924001433848890357608816580213205411443874981483100056484584432446641705292034166893126970561117671757304166141358334998743407986005950106980239895794466086060304327867550098805641321387953197780029160809339720770931144757238534719986927116395680474724790869644817725888798867120939403552894122954040591798426084052994473103795500304949851552169046648678750199248141190500288628617864565562422133495498945249695193057314032790566846445608418465309751809498756275157081737976998019556472065572056724843429015485172057506165151809307389976317597883216486939852506369265815297635188027800358368021071678943811073244616963153010045449857364186363516561486773797304888630248606824028246222570354969527971406097054883780852367633249184718979552606063776770612169322007093823190819086465598709047720924239101510150003493340318706231385835740039332316151017326999440885092356203536316551381847854458353921621330460447440635212356781305454749522578508246178765670217100873723358662334360717697126075827906041749328926296018695592011039066342214939447097102821864908610651906273592031011348608210418495655917687623121442014174779010840876354015228809826449991982282266887614144701268287053391926313563109847217591566171176341011616989389626670273107138190596425383338798910880004299591255969171016738332829563868480255286914841530860397450195277521859161317268819698654069545579477770562731541758041195427852732464477192663531381956082471738129599440610914643084790693336643651514777785978068834941694326954140888438538247624266399217079202792269666635306934316066147958539848739785108069785578303204608508888090307690260730282961282456867786360460530562158978817850611170428381052349329121349650580433508024354672469932492679343462597996837852684910921345432962470162664127712492455180241102852100963708663580055764629456853995321048339684549492258930746169496608208964008946437503165419301667886079560381269049425737631079117156491879270494745015450978361585833513733306335746376716104291560387266230146500228851502815825781207991337804307940401391808522567531048648574817152581749710050477443339914536066047589897612063460399250904646935259176115693172065783695923966893345872069262309774995908924579180834414040501340782230581163668243596672548392143489638694953584780543372968233542016864038956378412341063860379848623559283244316514900607514192547676450699240504613639450557299160404215460415561662914555714079107652537554237499668051735946152977697017242541639984807469651352669035380388816841445989029256665378925281171228910489455491062607040645266974949608377974573405015126257572094015900762378285297777177441658897380488546028489688883255859583224216893105887442114020718694895676355013252864884952698208126565327624400908939846684508812752067227259232672533846976662454036447740711167322717347976971825505508696180604456408849890391998559649502971073255311228507201970937769080301382679887956634204103588973453123161239591184772075314529521118024461891288554823982466746096470541845101519676122707547236395595638971376686027328388600724641444594199309968492864776805906254314563882447031428039665560912650049205988475634625823027955287349535709975586074467855354787284370365584852652768552817015008626594532531125339166615275237906767370983690176551460119259125742789683709488263399275478269032241604441215889019872831003665763487676706164083088097280955393346750152150030717413645951120481696229164648759318016804523423001886522084234939615389267165447215037525178446205998534279337733947883791566227336864497284962357071093362149341178391893546315874789443374613172076297178515893556406895107839659112260999469038687315763898817456209813110125344794415609343400104593757818465206587521040590003374041607037604956124412267474572000951425457720744953997459634849209146341532801363321890306547575593710615896206425379319110696729495271245667243042348162999892668514478326894485960529924630869191358049532310596954279491884292371376352538098787089822240341076882284196357407861019454747586450580555804934271776020259765608767311886552184029392203510664796980365370889907404574957043133853301687148508312355513555762723507039964869833199964239797224768576639592397631468863855550120071788924844524563297742487464083923727717516662156411056699357662455965644277074383317836032519790920108099731378301623964083617456180228335332188840308706451047380010123837044350559740532603724040908371460520464406976883450947869622925051345285036629638973115184482931115415852638772391267396773621489751623905395991844778630897874329735495676364863028537675663642596035184983232658790430226142936061470197406978746484128944769765101698462056744624128826752578386718271507255931900760530610251682611221640325625888707110584624586459685836560277331909905941799669389083880206788852653720665598781962440317512577472776707764557201834459968000167309489546602646719619182642303635002176920107484077146372166836067551094747989143371184011590537318137044500211882322514721521711375904586320590634540087034624084850665518347755007443896253807410765792035494798668622370193843654480654670579403800940874275410143939961372089269720105967814675040564454079285742156520703744206306949832410910805028788401016121816534478113312907125897888262392103624925616247133183938077839072666125040420467196625836446253388177161598570302486580902978825952492029745850113625025432510391402926632031828666211723196767599105986131347162778527901663147193738044512759071925676431028091292864102679984683875513666051773158629041330374091328967433332966020360765571397047794700133882685125186590942752369045322293171414445663053439584117362038561881494015170960618900183169997474930315343988859954854844823840648716689867973587450597248951539845110413332349899495009944715406367808279635909948824648529450206031381398969060032079745010155443371175198923034705814907140965544808672189331724554903621739775725001905968279673220404418006801393754946348889055607426675759289710946444244758471115259871825491786767043542178771066849190839892989579681516221888396432991750641510436432019940043591395268367435493390253653369032421767130065493495406434736603589631010510671056881735792199567048873210357241183683199809873918299438524529765622785432431298647726735337898199102632077278775302973348328103009770365419975344050782306145852848609884489869604296274285441927481184536664211876963099669876599011629234271127706269799652823239685937003740604997452256665645793288221742876760438814443270358861335942285147033150526771910921693650851311031464248821220343752654945587068814909602748688555364500893993592732041596262438036051747385536020223922137074365396821224990234736661028938931292031458298991562084841666674240535255400450422607790137799285786433546633540422333375685369922717959959119729186334527072698246874581753546322531413770345843884754737768096090625832998887544108103019898679772993287051341753812781100783766535629488049713913922461030417092963855016256741291384803699955626014761822484470008500755187633310725510279339015181243511456775489319694544685178311145549931404905258931551021803669439788463181843879265312857071676926428005411296581935422924090299754379860143080687116606317242085168570749842400720715213419544726222049314855881724218979943102488805433229192279992446838968957569932747884098419029777445175791986783009293961856741789014183376477943791639110117662838691660880954586409816580009538332459588544925918750540055529479672921116615569592097760646138355923731877240866247358032876825970055720655035728189228374869523956553404840877496319890831569234261405588738303839492492266283701182414084268385560032899374943833259060057459719990286232929723394620293969717703138339893398964771578243440433486135992895592270734372477107758501949413758711290026047085728165922835238708161779891629959223179807129751928809503510168425162331424302267400534079202541315184530354336232808206813678086137401574709852443480062158297989099827545542450969835165137891953559180933356502554938880146977020117718669747933063074200816010717752996730876909617681420614101680638494466398182298938063806958057264174639084943073634215427833900346336827618792926053482520980579140481698663924131104346726821619456650403093457653963144519707923806866504937420623738780700763400032723685552882223342641776612541195846207313384585851986914553936062993161505922159302704221922764405686678832844808472221558466983695429718238119328765229565049241093751093708796568192580381370254694368168293302233361890349640173140253217631876752522343753971683958865937424569191906250547311502572858375066487758863964316649758984346138554802285762251848086656709169534881851854934469137780854947441547740764195901173247340971095182681521072981165580228421276375608349389021154233209826704027774102103072996199476771043393973118557353325385093358239622921162534333936163597542057527317214519118305026625475070458518169583287595035540736600748931173422745487812293708833991135038835408671321959391178071633713191463232893971776953337213543888892571334955866946958760790086330793151990374798046363766551751438210591742737541109428536721002936455626845276054520834574279535064285597771837279016227385390674989976998504146616292525798993515970094316606647520610719465950439552370131087353257357904252417779403518978616283225858456344574534531309294910670274463111971050310072577147664991311440266117158568542525330018049541355002966237212196826603238899484311777716206275239286510894928788285214565174845889333892743455130883383028953354964475194046283884826231685972548341623921007395738543593149219688690797507271376440839917306989086114753495214048195266531274303980199305609397883117461854478602293234478675573268858833030788306207900057675760733709807172872106349548221163551486297302167533100879131935830879952152799264603666361834508010822426859433124278181897229702648478858859364854444280862572254809744866863502214896909069884930560797148979568865023993572230965043293871847778582396515370056221637005936682752330801009721775271018872512573866719703807449941298457760054445816663040213735058003490364849511151506232423972811360344717386663360956417915050754158757059711536133363284164108319401050934708605959000948773133454135151672479053544066864523633545856441418428449816343076910781361616875449150734894703703150720078359555745063047438711110523550655185488125246179275700183003843409972310229894291668567165330030054683422471997472690187648955645480038059577316175391575587941457249070256208612093317640771033524811745014983162119548691766161364257964633305061768336829110228709419417404196143248882808045842032468698963032950073258927092369825279128169454140997277196438627031809854948873293706461831127594582251490427379214273510384819474455445159006684783897213013052407370022468145948877231737194747765590378027167047198907357942667291952452351092642882873912839033472464314483086124593946870241451683938028992458614870755743149229838646274648510287610487404581688519835787854937283950090241283110099692398209013971569028842986667354158184804048154039218402992615257164412336537501697938386273744361250634996330148680823671514787657074574568846393314989866549328233878782182689718762701372680715855800920703657307573471291926778156428576389310760610385160782549171930028434611826481802479276317949392148488737298730945824522143269996815982458090234938673795002981814047277181713574812389037387555553974374370636462318997474149469691278711620682355531116320727877562314604323368794559115967614953737800008028233572643108277446566613991682294582985742542121523480126938936537678308541183008379415697541142513941829507345256875852754879449804589015834419207637993722698337437817757165013626482780565570457199430649909076239131148231877066715131500059889587184871242852760691234078584298185191663466848447549731778380122620426560436648823653726408556017877753770435851253146540591255181642946961909961290546979427779707471252595399643027004788002176662615344957737173836480085053738348255519828358578387445732381609229305587453724296316273451882265470752991948220006351927953930152098537664729105323309282796727638743246120356000394881412923465941646453557803636485404580247821886535220912192352511149907280711133487536585826973995372267745926229094278346804462785685725033072774487198115218356355497869827288064075327920781493373464503911200927656239423957861219491459857793259944672816346471126046302641483211502378292273269617787349410496340477666287214659147964121914310338856223078318918172575367554136955681786956900926817172369883445113367780115789155147097249675978422264085382606636381488093344236136792790258236264337488570491275371327081673342260942015200652745707125787990764706265937796891930309744042443365170327840426639054784943706481413992241577901723047692864772272837151722155748910761989080110137091402801143025468992210830997763552341607781352588874921973266396316107635322049038609523713590550176177288877209307424092178463068172118270845723918779010258474764415630050961784783006096755967151671052919736386316740112336058050692243284534317148386259197246475000053801074263088377219823382977811518435983155789863328658719090383641657778394724143023206540764658255411167126290056519523906038307618664320479391517434968616532772044220420351792027244817659177521344189224901683974549456593565191586872743305115677654631759510310729069017452079666274057297410512177980144956072513681462388343022053642359860947195001812234839795572675458760399461398678941955807550140679503745963621147853750391281898208925429028252709765317941360721815626408247413322563373796404216813694483037987186870742000138895618622741724656334913395149455523933043912265768643490424944706653713746488783042928091345844181222399573511493772752581898709170872946847244387528041933978243546262051221457388825921596256227520506469099911005364362985028539201045253436265583313646473868268345655209980924772743566884415560196326439984249147028174964259438332655351378094076687536593041317999786678239607846484325979353145179222887785337754449407873563704833124020845865461153839375499408746457971460228260784620322278876946973536800774873798612613121425155239450057754678474500791188138569953410016679038745261761161066038004735287597782867648496493855979711002637574496863761228709904246588661410407665690118337583051671837025509824974615986549829144072771402147728964030740877060193719041363319422083521104010534960769295719669733793184216382880791768343494418904717890478534798958620689115701652450614674536477291500768958630373918085352776356479940152376367198143566665004504477054546968226823580367609705862682914866136786850739450519161149496414177142583866842224193821571697423271135457104976112024078347651919827114238189430639607363292356046258307411064934923631745148814051337721858509035450747283752030268863568239289516325893895510372150847037623972271972734363877183748191032322915975685862190035172328625121673410244576808038460018122337598129338556853407301114150489805953886830660235604820250816161211577016011098083469718775191751910334358361499088103713344248921839855193219566572041105125143058854659955809961710047951305936871582147533893085944416657139474332799523814785043788039988788711287440752556437741758704686368639497350026375312605883952327660561420106783086936624079895524810796816112945790696067360277097563422931074753247516012318335932984367853015632661551838312575238780173817633455182371527826654671685462073247558258118344011697620255165252717382900303696034424206930772224240791609305572252593822827608252031982872407007408265331971553072567651568015969055535398140855703505184126092618625599109711687992635552672645928405789795231091298798079852719529530401097927021910166504498019833949699004445305583968953357097827428901157272923308170210847276913762384096666528380811579900832515533716935573978189997947150929857532237937688615120406534568956430003749361122055472319386943587308268583918687784702000148971674674276633570821704767659273135293726501062407150142036183287540118562767071742196108233174717949545970177659766830003444387015281251650129522291506582092307803505307457347755163980600871154845568779567657689011164630633687510146086956902923315798904206736564177046857200886166572602807568148027569315626634684875401065303250295972493642212796268354913210604500714853853088907939293294501664894829644317349085338515239966715371288283599872025041217224201672808402725460184915757271646356609004267402918746678579359049571118876627452428851451460855793454190694671825398819950496961309133842762751900527277103290453661049040032153174949051127374188332624314521943483527208299309057413386235808226633740367482974858440692682505862285592019074034643030364185126919684913644401169160759593352042679084834126304770808887645792848069838539478536629782678564076197989711071674127191055237819833304692178885302355653514834043562835790694787053446016752821733243284901831730991139303523159658468918263319681450809796819151649492025567845016413255804597222428754367375802150797811162358624882794585947321504844327155920983143912116779757894868967673813514833891241795369868453603903592240604051119593891440465009566651860253597953870757943736097982474568436503757483573119769874920683750412156952991440608283489204920220941435841184705859849480901596460134369142412597305719288760755040815633022840011114455155073923184917837643019395182312594673168597422997023282497486066954707509522438931140178998396113922863803421204863802297230840135132808597652528793727684546873127787442628093324580173085007949931386479804942847123732520887154323812315326966019927102558947461468832295305961097002639442589716169758202914968661742675689642853127532610903973435310373577636438744604266808867140815108984956571398119145947674430957794668568850897686000862842249309474746250972258231663082375156171255863798402542272585195387441069616352670272842448252246017532087999421751210830779962664503956573904522947935481460387948817355216796133692741765451984949279860536142417749167229994471442541313097304356907461806665790495133670639780544125521779920641793505509780150021559697410433893239259491907212152274068182801402329257521707125648380293561641016912015591724935981235337358742852754198996755020775325279615731645156807965218840597156043677997858028056496544923816965252282010480813872662317569654418405503917478768704516030505857456510301739945932624340859276789377169530507521015365819767620018780602321571999166055728260913172252239590292480966280529555496810022687978190035175932362866257768231999705381467764674493145987150201811905073989291113400794978227705283179499282332268929712960708117534270575051281966145417098894777615196270632291875995556828522943497358579695837380517815978020688735837014062499487937962833137736551113205006778431452590257850532755590821100419776653096390887507149270190339403781018448051996167753427471615218760294249094585352480637722801786531628228925055962466669456365478141182276310212567600280901046792373808083316311377162542521555100632093975146533024587176272559880853752314305426370183152283613065470416522366799316333621204858038824742302230697105300832713651656397770796395140285570684749838064825553536074430520988958480019514256908005561186116505142076327378744517193988757735711963807847593518376409817675044257253090171129563022769132867920299667681869261212670097287487498199733704339791274170555893408204272398138546309725778771622506528282102996451973951583731479155769952961725323403842898132437357882618769170362049190013643186838968819907044283191054166290898532794837308883322467720692340879955357199420397193012390867631608920439760592700379749818143221765571712313141087357163031818560002092136175983297657826763372868120209825397197805250282126787569184704802730418750639714163753629176380652683714728842810747647271590604535059190398934086240075719921751856709634093329831025632728589696916899566778449287269342777910471954545457303084917068608027589323356878432398989242248663746761724903187756248224312855429296102314422066766373374945731199096015093721052167933305450579758812620241284438194452268695020155151120126105947562451581311710016115766880631750662331574023283226369872701521549996076728005244116143305486309975253784090682766161229383232640622001405104293436378822256548274485718317148354512373111880772415170357563897108249475012366152066878018943749780440152686858652257579516978348490909760774492870880929289543483030839047753934599302151514308706840606509146927640068071469083059099196966028078030906981112386476996486613465918909466417215956596759641478105367293584935861458665919410552689244673269298211205160194314029499873912253111914249991229234379136569907301445511220298013328553384967863678001444073579838441491182196225582081902592327600366615991888407972335796207151339885818909182652513605701713522567527070749281501326657174302025555606994875851268910308095670395038780403824027890051589316936706763370331020315943081999749904982882183552352128353120525598928115778783802466115244725842502459097176058962183127174100849794591774563322617907515080171061094427115516385293305338000981647713684849154913740265511513833086584738446549271049414552681447614074703948712005526786015309720740456037450913909322713478513690955391041976446445836747408659138031675105095876829265477119746965133471323639906627385081726002564434380703433068741349075085284485121432646684637757284765446437403047530239537687851714101979975670685318142077533637764426468146471314186297199733549695375129210369949438405311010363209583500779803391218175216794100076791507468504525610063989984915589104148798746655667160462591275891311813805294618312684077718778146929492585992709580938037538785609908498901548126514792373783390205871819601966092718587013562137442945605959486066116691986542092745653466443703489409986217716454661159708589278583096119017512476843893850308046256650413925554767701323020429975676907299019863484602861775495204174353962328715767720625854133811284066248487705518410041967206931388431914811199111667101724330107550266740076943829443832439279357234276561901565098668378451111969418742552940604351917506854176893946531849092779932626028115457630229226191129021055493216622051746927659969562561830672039358342022036305138673772830674836941333857416138185407764211147903386678810297763673549166365522246405519891193463015864924023682055374853574894406632602478068514125486949211541335442908586783618240605579989939839064504322982413451482066980375483529627707686150036232419690475744424362432941747518242735349404987104638280726434966161767006593167754319266209578146013388941169307968732914257558732457825976386386968915506697121111754905720717750211051513491801137088063866331188239803157933174415079927714764335052873164257526600518907759226104460564456679850316484352544497733079490393927056450590085663010300877243560286661694059502029667562222261353222490928358249349350505349586867758617879551391736843274082901956889153682297611474532590920098273569661900719754371631001549629897119258153477903828939843301731942741809286413675221962991777275627008362052450597377187346364952117357798962548674120817608765093764261631500376851156729129290298302864783871901113578571092155170446825636506333771491080682790051842571665189475742535579239961610409950917281890387480527143666944582383668306775783207769884470618321884677315858991990118680027529517898049084421870316809336226492758518415969825747769285098727093408737098383205903610992050384951042773263278404993935316964115350491618792724292145844621783619123147014309199289693470224455948598291483415788570176248699245765184062664425841643044409790397014716480493252780044914141317584891691576366260684246148784929605765575694014436514867587687248375886258852048368513660287514653176665050224828458231559529521078054070648970777740382975188911774086316789151795364818196841395349600456825386748080089998482091359089567987014683628532283424963889887436979890634008758899986154546104940602280955587859609681443235440978044716753826443165377629579643894067533877063816595597208277340388876380740331992641810689472394717425815518300324574862193352332977761259037073146529597671899667493062093359383555974610307013210781645281516976302400503489895135640828728935060366214141631440796626169589432340673254414854391009341461609250781157870418213457960604393245900344295708657272614294564296213828537806522884124426407932962562392287382163167499536336116907167254405879026573987916811689566912448676840134933495369553334235446131850111905959755992070666980893853191464865577980674227418608644328188065950895353746797752983611443443769025869511075864553519825899148525615881563997218876375564724099978540026656278297805817045556893657203698278817507486967478740953161168006848396639148491792201179477754861855945607259241151339712515511190572435359442114458127000502057243421681209283588631099732765597434867415558462257626496430716805746864671896954078682807428506740793372000895737782982473566424423216494827508379952363494007529386664444238755046113626273057497879333900041690177553286405991725767584982576294595342798874405423476569439309163101685636154147451696483450485862054106307404486859748309781779063719548417235005265151358175476686485532517893716006877033093311741704536269022583748555433966425104140007323630031905662363129539014430900028003409526984895754707234858133143570634900271367008955681610444590928229143300819097829681473997445414599822640306621962646142631092003321218343611248471973741162949298680455841678224883456713625218507453372295010621632462302510369989791422367656304338385088128869417490220477746958390075255715746788351562945889982901250088115995543866455087597989626290707566307944071341231387516446946534339186676490210364447363478011379968070579349564551691905633623713997269906845137275948960366202134552037804392812913458157726361355609905648688824192330477752699812077479744175083545402561062945367278633257610653120041835371716586696890093257112295576057429935273787261431586736022413203028313033837911828581681423688434571475751209414192030362498855140357122925404345865525482931750163747485119487447154384374595908136494440395847685714761341845547083694013265578562842305303647303445748280170035499621260527228839746432701570761622815063801009515218323251344358854665395402635869059714816651166848941051817448943896751211087592783186051386394473185216519006894052451064433579704385925706870751088060076401334125149049041858946978486301863244268767478392145980334806147253814607962573869203639830177440181512920893144953535640471328209861620507097651939682732383463919967765166618487845107260724111386841946834287392450154628302274450196196357481341415124626043565929427668941161729205806140176029188785543067910734468349648772098656150474428606122423104591711355044082377063503867196498480311171563786059423011028782321013792637481730589782212527643540143771244560818889399114072960041704385114697422047725622546603953830735125829840365720637159310534647792806166060842760914489684068210141612233781061644229025660625052247615026620217149881251879781842952892401817456061100689483685090071058854491487169589244811577302957166251358353628673757226991794400346967256249499814628313090305341076968407031815364758165205213954229072813620641643315426253160571532194981408882571878132102963982737526685982321099890919190922367335516774732687375865079842866030328957264084075453273499128761097398164527281879599104906253265969902182451369371491928739228006507376145109072947890810552436304251610958660029308918937223143399640124681148889432336165489287697878823463717796670374898504366690773501293457346552155216228269925936832665487640691264548447451605919573019123323742968471691003603454386756556820068545136765344009581038964336159576312410853044747473983125473991518009253530444276914410023068663528333289843452243962921133626563958644234810874947999874901713928539946163612521121371351468463933590365763405582311520947095098351529068067077674878716001311694574985645329580756552261092794851420701214334533557011975945157486919508993487266876978434232097959582621017545423631508736498253634815307436990711177366274466600966901042505560684275204857696531804250219687309051804984171019694779740056703914888962608589803170164530630523293553937397734387461911296063487832628383554174953180286800288684430405817843093920148784805600001174941706664503377719178426185663060522919097627837051613086701106069638923584647941972119032943804636674398504656867132433505061442191671995995609416960838157039409091743249694440152461930593028420387329309565722230579267218589630188643185644441845201233442972232152033768160621611364920042154221987438886248047341086248379790425693909763379847932613102042521250490837227061744647339330552657261462603208781722446970361304704847964590685063447539818495826138407147179826915275791157385943493768525372743080522946893973985035324147023223815657281084253404387766179013728377382967458843572764006689485110077691024575638052607815041017187101358968301626136944777417127027500241433764084396588767416826435473461412914792753041726535372767230707535222890632992159837102860073943340950073442222277222182790146645877935037627653610154947400923889835545979414139474487168107442833959962012929499221049562807347435969143237957594175485004907000216282782729782446629628899797449771720109506538318602830715412649332230915099893301472779821598650917484828892861354924175502332203930747882667952756140634175237255229261287212872868205138049357667382873062341920289819819520882424954089384305113216023939989217084204076684751284689425419288737012736037467559996412882712775630919287498480741646138567656186167160339180295486577347202067520173486279835247398778795824512384334784468289808226579298388506870773043728642397680315147308526571470292789306176115599087609881312581994569036573674419251999614879752991740371441841235182924420574332076434628195402462772279367819461913932947470609101291841494101351904206317294660239773137565657279745424156531728181365926727823040872077418002170868419456690626161661024368132469750813772983847497322262051822136875972142944468761492264960546626254037433702749585271091078317966661761595186876335666596756727562438883162220196724575385567018409307141453603233035520089294644733640585658411548592893358850125418018190907327001968045892280528023990485864540498108478762949700414681300264501277722668841134173402964320952943439716272106369985522302347792678870649734922796608285156583711044907139521376817394321212884391705295166581956022673737268405620695458546123509348438758676549136877105750043882040165709500630809915534910950755600548694540671008387824280162360991870596051257198420795555989434455006814373031956610543333910557700676970913824720772769946846845908523677822689024781857506631728255172502992336880642122211700455409187170391699259866928229454271401802840180911940311010987726607357686095134815320044290452752295910548110293265721248542820977534273739869633572643091918203940556785982905096675417609337010339223283497606869949298357259806593213269534810088858807117475100997655036103721235898964632998322766298911346852781099303158889447648554049916827708145755660540148339463696291745584351442602864707733407777663704100773965152323876261899447392627193010219692994531270795743115447544525732318880955195267164965745320047362359749370764901110833587119869039574175584798979258629696784520757948917128292578257901885904656886554005412826901128386469654606146027885512884882315370949403066341674250584762483514479616560705491858886760282380745305174209292239860141521292950221260318585150762169662545424075674312321557555154147925292962911029345722688294067294278026435981354090913272466550608240061261593927422566429223573015872653153515415515871348231266513883773885379060225975777953078422756593105076511436490597888740992656144458937110276210909560625729470173268886406313634176438397088259113396640482579446164677621094579687602702912198843351162000951300502746963977410982735465317345516093111460950184464122311718565435357473378039386422214690456304880263326960836489698776252145258569000580762291138060712643063843022605273096350179050903013278794062147683987007157873353307264167092666283906101678722367159152328808508550854226160146432937542108529577380339251586104190178917469500803229283189718216030327702540031014994119289483994887486300510447272630379986283116328541884442714118103063132501538993519092385542400670428849965360302709131007097510564864150155826591142161097936319586169479704017394833908021490624330227301628136837369885622201158825544565883142889546362484357538184916938937172341666683715422681123529033973190347816739842776290246415594105678401758751983551586374674937922202730823181643650456572718105835664912800352545003906585078824750279642590569225774690564783411002167027842829074030600651679338216594281434200722226497723985554390059191518334005898799020894305279359114654545974355556329746697541961173036681585278388230941477151712688546886398162163433805697068939616550279326535011069187826247479709622922935571780963185398818762217131493317829182427157995203787185344856031396197362729156213080797333617225187115005638577801607456976019139648181178300735900356460404322918708758892329209815851622099694318802725632705920475441841540496369029418320925240192327353108885294433637557876769768020385443017032539508983810564787291585997381691589001011294418887918949103718271612721260222823232555494155540973470463015725344629147560491965947772089298663862399023693723672535226405541662904857544090119829284295282603029624335676706665942570832758042363919159581558540378784903170724640876373163268243715117721664682470469724323849745022672364654564489391396702363631741496797451787332426573105119176723443913012628684827969184992125940242872430450146169878235406123417854859319092860778420817801376408406963835602965504401353703150022651328884641366866455777117172218443781715312973839941963471871896268647198714451165823683018841122774331961491080406090042388582313631301327811782253704180154314876635462283400080936599388307230402475472081165275549222533927009787050913364141106583671435609776098004472887896098232991467068636671184225179202828486668794003604198297944279902164178415233586244515395605075009968047000748221596915742535812306222215567195181966206855477255064073893585070225089663357429380051965763612528808766284708127797188202542970404651987732493250388965606037051218972459101232645294809949111218802795185186256470811913538403453891710278553628772014440009921740105079226111754574978144371864857931379757999162732440922108415507548487575785750605273654099340394798154182011266467370697169876873249444636624344449742417146783805515841441296494193334445535271067106333338307841449481789363388827635622566806680881828810544385249324494985406930214407782223734256330530867909380887685413043296204731774107709704675354584952938248307766053264822148169241784621976934441970581211672455508067966697750103492161893812985817518040236308077355184195077546238806979306825525243991978701718140353397724247953291962708767826750587589940342607183222509116993898526734863979333212424595443005839372363985185159934916937662202912498074190148635325193003922352202712915072668988314422836433566159081638654310957463444429535705056513557755657167354836299951707265990597219374982850067519058124362536070010464328161912907575394852705048099353320627399121034692966858028000151268522286859015873843624086284722273647687259946535938284595628820623141220991458625521073203359358527405788637879131070679197880316143109836715765439457490554966428067164645769441030835527894034630586757022090284910015650263728476399540221840525336341603651293572483129277355190179281660674560796354038793370559375900952907673214319868238447326604194308385935842788963265334206879524104479194674206695174133708188636110932668406545077459499918495669305114629572233454894835987824541235168939248558920967096080429865597037287007754599384319151994667209041778108904268591729548068573945483412738125826931535698187070587285316059151823871924158829487806876328851009040404156660121249797344504538761900784945355789079937831992190487751443219687205245140344992962227209339160402383930454008232106707441328043429890197915903302706973798474266943726168346606370603254854737643458382806086912650892602838647982210075284586753576755882760285999160881743497277816149905314770686684443081852313147660548106144986249936117434995948680769377348251331886921121993469580162022886309720106467765197467697461144607918668499889157634709140104304218506996325826151464308394406253840045068923979900798823271453504683107605451008242543344693334616757863813381862981939129409972587865234111363337433466024266196771809918500363962488454170266924997749062713495965637318728010893303234679857143368271994312241533848529978300026182314039514206322222522861590022485324907439208771677953091566362390599597670138203111879126327358666729428506314989615711377858316022542664688829117677645800195112834836083397149510486833890258049593286029894008852145305618405881030996257634799235426237771072058380400319427824006508540224952293552482910923134290028572254212368957129990730742195120031667750255168697167270738495111064998843403389777828920534155787519465331579743440051196320223290170254167982593261115865820737041645121777669193408056296109548335637438733783276177740262991049731864967974877124159044644782857623991230323726198570921950959180246522236839127388486286850557034798190939138786920416715369671253942926582596365698023348329801429258527741394573168915949245233543975779526021295230347250577269498894511293216546084809592457430966746132252031525842809453340676056266601935809765370870261575400128813902984458570401295734364466886945044299503922809800856423776093731173983353675607607943644399299599362774122726559971573711583730735440047840113573694969798882852341738015761019418979285139307519887019106773771208585859228074177797419923396073896260165011780612677036803093019648291762922413804617048289301974155656398477243110467460539424008811954483334831232426098237885955504566276537257458704326381416023022316983514299944488024036381334112217571181977170370672468264231504258616533935705823126783215212320905352487584776290805224744822322138996922667721491952267752924782816971811070912399000076555451253328435741683164787925498317641213829724409228038828146791741112479320232175592688121239739493937276716154815268008310176288103720787900697126832256184727164301591914029465064586444469189897025135409788808809298345704627102365018481920507477602328120481477042646514246520275741398891574185256230748981237085654970539514551225554369911724568989410681653734157591053222014611562345986134749140028570395455643909421848296511744941893925104590836687223797373738175458194434321081220399490395296015895544386894213459877869123029418351050311727095234397237609890057474886271484872927221863261979392928658972857887777335588239828506284315072254530801137616794601132130773483348667086199877160976899687597366258571256934329570740151040984145300628282473216247163211275176392874364676187103445182373079882536448041466661149741453857981030468463350172757198848049556123883790063680292781179797569188020784038523601116865420233955783769248287481088244491969377539529107625347379354273718630008148772701962369327989277878967538828904011792535989290228111781578946276968302130715300250954694531157548705703383888905996134180313130554669106609376399882981686391771413094066755889809051884140328840225803415569169688501032167818410917588909654131357959523396658167337602014193525566310518413435287769348971401619020969483558102996813058992475105019263217479828026136282719180876196247262569201980158704939455705180998484887110898894865110399139923482552338214318992459930959980372331329373020663375270779982123719624396238689350267740423594674610678336080419756249459317289265367834136617531204849110949270484567805095381071596545003523491577904863093093145818711471014702123695161291583886102744992971071865998849335345397282123375554098155150478682278789509692165987037555222056487515410972727565027385096178385150661160964826579160231119840383555459024463160953709266209187383125232400755752681169195053064433555382283136640271835718682092936097975917309034319943146154167369554882792778070399676285056202719692112605491529815487260122942214321703578344245923876353127031593710235762819944714153976747472751201840654649913148242054062326603315758336782419166249295465323346354529819831586266808833390154440385817292459074587793550394743457350744028737758008815379993256475934027851060163080148212327002930496976255422166365734660906135124940990869821797076780999931195940476160934693559608441927571465176358109499464012397901050323038676467088645144711569459200376047463026881354664688756192509016844858736822210359339532951867148361065646881893934007941558095023393500119550660430827055720384652337881787130214400468285735741783807983927731340426601834751164964191300790263226440527978727477484784649417456468199509393350291124038148043380407969564873118702532403909121409303457734440103936882118304619282292429793069319635571545257362653995094338699802013687040776719512968777847217542773752852151190888048407212899297964435281723402277493905721603131806047675119261359345244986543481114918005050312839153108690439949828181927414938407444787121052094769507161050227745744121653850630342756246691862679928836011115183896474410553823431601723663140540687312539604386851710605537221320809858313881153997489084380350802975297542525448540295123858389912754503772580447291919892586873009052699044633896571511792120818769388612322185176706965055194016817604042949682409955689014692629390614937572528516493719343443671796119222999188719373503000179757114917989609091297703440728546268236868285898300696607272184242225744583590157870416704728563381220009963128735421909720746167131151096187421386282073727943021323844150185090415703476445845926877255326714818311291403693330999400016425825255149376539235771361045098921920785086416387817680097166352397312189321635268916146388986968154481219916290742319578641186454147743693176337839999052616430658930318959040004694345355930225666962676922240630206504677773392337985695582500953686581475365464693091715127972574379739125111065832745335600357564426947918970538230350439052987239005181233094302834992713419819366909509777054845844967569819272503256993594833236668170267753437994713505997396662370339954717343349950703197082431046750670932208096909512270957119356486429090973456217116981304611772785324497995566313483588458457758460221581178664793059504340794848394110466723838272051984242490230173280932950688492399745297256759728644961648519471733114040026836085920868535754121729075444447730297472866239284515183408194603471115291432375887460973642927669543991053349922752079654524969209495798161327172105873107310391054063103405638598983758373103529859234783089625296025672540888553097128378905386423910259947845164587247166920423339760762809438890086647719670242179273635715912826198914565349067458131056933342385015041294285688259491289324621938271543738747493315397511721305895635398682547547188110641676226556969357384175732751892142759189554542372823991409664200677733206269493939718144238698890051595638758607359957861202612413029506301798970306284431139409044084924580159979757946015967191021192109748655942121475093491654860022656291421546384356896537946262835569118451931563335003906603485333748516819428062498619570755745058668826268113875068869907684472708121854230129020700486901446589266291541635741739112862131977127290008260172292388835600020276924928023217614107095719993509439045594587704524700544082367796569941217005691400025169450597049740186789204913808336345847083597988535227551764364710322391172944401213048603449662731379324591290127288017415864130360083422415759390620088757520419675937308511714309731904734017669071644779166737958023460817694509109008822128281981783501217213031395413348019654724231909357508162329662758505742664100692192022145705092170651720672140479588063793997159171654987489122291028492912143118533306354965709800611069629884546835218419083981981236038494496738888683844656897136133034530143237640535544333537400211277546877205978287692614857054862144611925540439465970263124468989239828391979767054407223212546330248927842678790763906978532703768351614811757144344865958853546240477642813658008004985739762626611413679910829767367550861308675100675007523296931463995766349809734318339322661634566816731787956877965983456735655422005615258376572472036630256516719913850762165404274052764474766575876254738340000009020004757894352851975868157498862002530417442333887590954904107041173697779524926597768399789209744227389300882991494300115755504926688674063468861705911545183286761317494449338656577261946491587914337155611227402985856712302108319988007638958088105215298622227860717861129046350342421881314690038998769832182998930392447305839425600220124203953261617157874473230976847927581065702345644537344666640042815443519932990556120953824176184208112456674897030794906852458238459191001223893081057811310058208805771700620991011721700743423559878319532506844327735001538155677597908906086220352253224583739250763597110608365425933142492781795832262889237478088744739441817612444318897009370706979953881827520387233929827714670558913213427982689756746019118456856867558310678028366359159294334158400710820448703785111889969754572441187552214148196187775233399106965139973070650851245256332426782462205394496970749827416444308992515969083788470932838037074484359698721233481013505162802199830046778169230680121110453345328128862839789123500406440127699175572988752347831131168156649323390060996705167913874692438763552307096638309750328060172433452900289301673319398797628977978152867521912480778555267742632025431917609858026645612637888710336222632484108359170321986372573315622294605180646977785690904761283150082945330566559952517643699635592619929553896338429127249089346437270579118293473331698712370148121548496595506720254452012269360266322015305426878854740600259285287942300222415616859718220392368272194089799544837803132602256306985159997225175085038858762859484689883481484510506421812894300153750677499954054793819175782822816794639030548002171773789724441465380012091609513667691009507663026504307200574655476521515142908856115384755967319768306129982561962797578371375471499724190792735600495825356875988192771836828843930993816990130656521217308001068325259750935427357549159798190228722777008313601659991796575399638400120092592147870304944431191701609020026442779873680754910398998508092909130860109439538868337841339047781607205944969126230990162082785909904937023621772111587961903468142686052615284693866825324818786862005242901252012157836629681125639823642164876173407488578640958786829647602012719960242090004597209727076581379342483955282858716709088136415638008833310332267738774547825656544725334044368431267419776953672622143596882596222714178149582702958268846927103969136138746785545439095229442610735936116312213827228107360755808984534866372973122333629729116592849771724347463296536743800805050521372390886202015557308745773950989298624499532552044510097977112846169079268117350141432752852881657507777750414844804123107652152997925578601717086186541724234298459779387923294536153178288091012855116613729659383762151738585409765420528254902100469935020349693507760162503642664722655746226624805730600008728738204772710031650791127724356715158381808994676000220556511486738931945419365064562064007601211014224010265768994411447544150663878127432631427076859760319408486995595729131724113827860500126531044032228232754604767493453025057766450315322633943652466353173275382817761275740899846896893176172318146167516853235072245730364084529105373550850291375990510663778464927803398987508878839942084694022927578991685651200111067816944082897490762486230134846763645380091793616943961540106297407127091117821416248063969464685679249453398782486854096553992089257695519045227399022343770241035829223176399801244959362392248062902602903514436161514799960624043698722325180590319515402696931699990395777830960279312911684081788992111705866111716494343222447277268065072898025999805592514056810462621054153078490475094691825163750685101175065262848069938833205723012867059135384202528666669328428374598468025752454189820809012715356914839172988813526969475116377495261966936907372383050898408374134267459574209491577062156560310489941970838794951531192063845718512726835484895247943127911526737474457473449654678072344288155237820377646726008071587941662907889336040092470468274947791041493129649681078626773042849314330993244149864921479109933682992800927341333857354280329610936162897972372871830578831095844241672822521456246105156380085166682341553189559653205975878654967903708775185985191113822942166910332762200909207455561535732360460810720017250536531103787091302038722238974748052200747095099196310284956819935912709168723372844717520377157301289721584218729659956847001369058826896311899690250701693936300364032227931665608543972362093772128914999065517373240290403313307106566809601859226447496120423065748821531116305490932169255816651648352290343238209086360868010561808674474211047353698549712258990607871987498830256225600974934423138257815256592422780309408120405088020501736672800851324785015450272936718433702398786392960038065300577879081691934388546795113940110682292632182387492209696721646141262080473997466771319392160889952710968852668277627372696901140837599129532802474753351826654645325712284063274163863810721178316599000262264183914736341220656435261280577734190188027938512536457987479612823769279457233756975361916126348410941371538324921451756580588126216648070441231383187743667460808120339901327209094216690548323352575845625879862553008524448455955660648053441591521080747236622631826721285392129444773331304418407465070827219808134593110885459808901940733341402771909651258527060154406894244649291478382102890739901432997315501600648647952690331829257044893844061051234045955755089963543166353494945094534377287769913293821597020045818813515513414176955905450174560550041127898178150997954879072135091494244659225908833857777210233750668951040146575576552431009174357171417834495966020175605651439894053480113779287450035667032829175592290536325750885479884159200606518573161470455010778625723310443677373115616257207948756034916303014648373614149972637206937176401142058270317471209920597361285012897643497368597756277373213962240409636250473011211228295429040585725359374022649886949984014632662124997084422215237511934438875490240770372522320976872081147445872507373951384512548835332510213001471175549152596790184856888494052525704648151882980562955070038126162719103396517195608402645870502869779435380238265709167313052456738644005448150144593156364577666372651998820173685655789461087971665597429308832770111821103306639223015809207636866718888856257346796062738381463262863283212272603894686264604319639599109443329558655294429898606042251603883892739327401823993327815865897493664277899121950000331298212293895692168555093861403539464595591944335031996827897848497389402636017890439992263467376715872361762622287155311863243883930095975913516853666923665014670411136521646115054071626626852129873167073058824638339932881963045612136602664543259327904424005497244867274777125146981812053580767143004197118450222953337857995185100980567272005055535711307508175172826596567541089343826928245933154271886439487495748169237351715093635122184215832672079609695681362765058004153014707000453405196091431908375812439288275996896093989389972961945807962499307676823523452658454227076492644215826584981158987045444132097764894327862992907939732320305621898637121889042253360066046463358149176268970768656590203491578117718103474073805864446895388913684340441313575271983756310388132921513154614731883768623423522654509236895907351179674422397504442260101859356369181196282303917446498556912613887332609215299190029838291494278706774298973679126928478627747267214257835128051019993849828071235393333769927063347823358475769217040435712004413770228467554102463895800151903754085922270830866894216055048942592827125276261157919801386629154855650714590334693077358345315426202080972948520896422668461299012415646733993479899129925880392674677536127340285146797483331840761379224604372661010400939690106602765466719994934410774309569885631660203434635780039017353137015960902199560248180230805757661168498004288821468570297132487833916412438193498663356704346150893987031581974106926458635978443461303732955444718361903584198343487544443988856584343899803708864306100817068495526319517203142463051567576029686474909683498129646134443957182710971864366442287864343245833443067749026451790241727622914935256097092761308460119189159778130458033196599168097182490934116818171436991163507946945383066501470636156825431239681138054566282708025189672846101639236929066652574916792099574247099958831721243993816630299649625056823432722991559081380440680464178120359695477227114585305404435610546227214987816120367445673536926370951895622007821244539425051317111028885273824870893197100656779867944351690216030849880514091434509399861635290077055761572555513062032916703744308375569891331649017570741952218303161101434615276822425537251019038072176596240534740136192808335381958853249887000834991329117171665498268172164551717961558981494657029739812212738761710157532740759785592172609473649580447177729189152325830166924917766260562300652827154793240953932065522778960879591503616890222193092285245055230513826694583212089258641377256245457906023881505734508666946388462148059850141351033112871121306262160999273067883218925637103117752369521423339312218165678529676293442424754770400744987857738140856707250761314777446458129217459240894830124195833557097178399986416133280520607229843235342135077090613504200221219553739068326558602293543102824195739676034018015728974829624033629861612298216632799857605868483992464711721975827001854822651278890944803788881133659193216791028704223447688876170232038945632874371713895198370445099761506441093113225206850919097605194390314164243845689148120321427310410763793701873454676213267821815879552420074561194778550809652510108604127812941229496292958459479134887879069091163975756205432095306064071711814938200413326940520085619456044070448099395272197416993536413596102071837202930737927513717719922897488693040907690445635254703070691558256881907929668990868233953368139909490812669437671200513388689853799657013772439823334374145513680002300640906701971805906795882063694893482368165916734893413331075045026001958892662355166424936538312083622875545019030381576039034728719276370036721564959529274370675895513248225482373225459831905738850655433860486740389427036860896446542891785280605414422774512791177230361305688290007518566175523982156589679372996651722141437752089652877731635066074364805136251777843465384394959366896066302693690651662956745954150632645001968813903171012094553049872476273113719498644986640533201849135287310736172751506940567826312498026170818070454161614322151911554212861264998233801408668319620106291673378794270886264508829609598948700376043145262400179553379278264712635010182123731884513210195287692587123582822626703165768999845531461032101203998622199176299715708311712431642187491514806422789191331478420870230695660620737228745014592904608990061711840736624547237688361249987767579910358789068874520313798795464539666275873350905457475383610296300704989969525439413002238733206749013562560139848983956152935567792815500916018067063812693912197827648634202208431838866576704107390427936008893153190639743505192349541037104747670912139875132270781124161558529791339872647247190420872460757074201196160512511206174794391610201864831298021356694406714595807714328071833340930846109588736344218500739504963181654412505605724695417456730750045706137922854376483747019804730092497256994524251848691246235504866058842098273508737175184577199477962385407458053757885252572550758617061748604891882540274475722915943208078655640584144964899980542264421030688739279063938911167240148437689817580722823564771520107416013263670484014659070587220774654420285508886496472147234856110914672591040726688032095994387917786448696687821818665443224924228911936312849991555797101922516389932992653572055195886890026245089206369712803353225733937273757211038949790267592795380249169143047844768457711752256140769333412570623123487603324122483906780291789799001940753800291533367977069826404190723892176875307861603606415654843500283982668066816193948693488028310080183655823894010975002590757981775528634376997166908762467447325074812981212035396269698307256485209875611049840241508361924381238515039196682383278521268803240286335801799423125147246614524153189521266292309439082520308313113741669918700719634586312696630813617261050635297727590452577635083645155493503401997038165988183909008130413882605252201362263594404915290560336783522941278732349504381807493815219452291228199756060671031964806048247259113759908924949362973116584284398183340985465664958006645874691161190842782022402196339340632258205534109164931360291320868922788986026055841597458485327188024536920068160465811238655037936952773834354133039805298806603065772891050491669552391185472647692992005672234278419720035754008628116698506928101300189299524995059411905328958919931196338773365999106834414558652234205213259875737529560791786641149852694543228514375958908174108937550676555216771204268887851057215642733731074933547300557922850648935822079256944578970591144277846150246451721048914823215126927726323048674419256325550765717740351892321726399570415545819817256969034454961288886292366687633648691901906900148164482428254150961923652085569288116729709620247996686548521883368164992519060630355731438503842088733791756231121710645091760858431630514844487413295691214897527072010107802644604234267608075485385037611539425706408772315845984108520024711219056085897753058440608088558603707325675955719204702884607399811917820664113858327272901041847608886110158914667549343752245391358554179229085620718391474863560009474276660958162530429556237962497273320347945658992040424648845786748453486570731299644595127771556464118256782347818576792970342445045166407064176153624455789215137643303116053837330300933609639136211043860061319566502595378520501686379579627530338992705449621783948644456347262562587688684309701719708840535549938851501878697420962461406892612544388296808235975408151257304247976534695969313783918944353676621613869638704598220642918832028969147944796315472582429266334268628217779502502730838773569243086203504433415637309896428479877568148406393790525643291976764023057524419524122768371375100424738277376393584526322346388136602917384453400326945838658234156595518035422567510522161839045721826734912413813528908054366651843829944742591147806195368689932814577579623455807770919547878361038588396664396205737098432944014755910337417718503634168895235731003116288724302545789414778674816370224358072803254495844222641140350865670885540676496279352026562936522966422458155572741955128021535196313937974658991926208801148259006808518021190078427304999723152882166510023317150982632319538602820265114258281670638529474929873986364639251790825633181839837852962234602046552434320387989543545599516458841225497243804851549680043575554880336299252056871442063688094316074331540464704185288223879596175934076336844492427115610015610667663940470293192925086738616713732034270259869458648317710575060648886834169819535736958725271024496319763376548293167662767930726884203064817410926908669831550137592305162963916426583475556017923813530475627031211480649024751864833605247122500762717472765987429807192661619823433081874405765632557731236333469735997904765298799149454116557088532577448703657436172462982023616702124544105812283271485553012888574907068085619411431319118643036530459464345192382500039424907260675387542964105231887804910137409565654074683022481344758911906257241667146003575521942602934104479364756571973732808095511135119330234635172911290026042039992492548948768142078726527979825964046109177293994499768249476204184805983718954558260135164181155269745622941834632594491910299505215680652692862951664835786294568346074836625572714593287777591871464220982807725670278603156067448629432799192542756560642247047965675736061588368681189164918242510409418379696633357922876267544888002832742560630003040245690364018275166330446706712631758604705424427966885076536986618201679486662524812084167834879079127751531964919524129677154465610013669308975698755124475385348060263580838318939733835763227257744567301609520884997275644149275411509979322102588829837791959338204142492883012335156582138390105854425154156828040196723903525146632671516287038969734679308900510802180290479774566930964169525835682461020119796630322174017235173649013217282647742004387533162154349154625917408443411051669651309222887134299336813032203484879607075040159020559778460866736294809255188525428043801977964773661305891016180714539256315697774827853101211609658538862645645463986864848457539950747289547175774860372178229683639713908553456988631050429332192811903428583134752706787235306004826643238925424739666078496325408236772497705412567766056387890477640446503800137079057663435392110870805314953037147393401857776193626681793919727777815985045304089017733805627780036408983638943082154838552185624865928258487277103514587019822939407827482667226080369639470874586012487597576001945259049518339948403914302984573943477224956700550909550327072820645504045639968723307468465405220102819166204844830772857046066009989873566517128021092260258202728748987559228077417866539313063036392442919073066023772817947222635279959349623289561968750947895015504472499396219198607052122793241481531127843803458818519594568526938313872785993379939363918440453897127060115846267577802391156273369420383139877269315499382243151560051173960565312552156922298589513283848850313831557881314386255583240201332357659704288763807468154814226431783473949436887874949370491307638387937936553752622180037718052011950907981575938211517668840466817062505953529793557637036822015558591008681873499333166766764297428540846797160097938890696644427080788978633616901427462482602393441652060723238854053797848028230217377016852174021932684969377550269072779934689834251537434065778972384914985251785078166200244181041812563755630190623019665725401612120780985038709369542139172815335082109559479703558183096621216606436336050543538031250394785679702224790747719272637762076015579504199940106969272014613250615784161366893587225466126293602601114865274221348993251155159129784104785469275143139668708023291845759179284427466832108765757832359787008950224933040214299557488980194301037794083747237637323654839359676359922752978202667540982248925552706227004302492397476413213695847442546100345656496361923814630129008127016125522065171163480318819063089747006420444166375365682439018415783324489940111698366189511491940508449468886021583966613410947911555869557421627566348065569560334033928789916545733830829026753228981075820974704630472934876056290359954078975533234572340884101486541223492223890028026936722162601266051852138499237531548969840021864581886974837413211982939483111147172765114445634303229500084939543859806880327047582826965650977571994255290890086844845448156103794808829639920371738201329289690717317959844490466268925690623390630352046109988041531778908972288536664185977250339915594768283018091807828852954349227870140635893313934449245278376284622284219632335479208443729215164598295100934752286353778309130947564616504636139371891578625993075896997821025487746772223415546713725451629076145311961242854941975585375676314959669250355051355641087618489873076297527373608981928435595837749967244952471017834648877976905713646748482451797507806216447818424003876175827177377529574422707149235466542558595155718714239278676696010291479394439168224976167497524179657844239013221387200422027064898764641297313289083160290592075943354312652269458734015070676634920764955671393825190166734891536008640968998579864501506826463018144450946622554664513422142164462526296503218725390186183894085753287590453368756132325627621431372102586224507966892614120244648253762428337984692034768781973685638168390930782324403455719246181877989300779231555989210200302993746679336261068925608218127347247200736301591070046454280782262224884615751511497333369666193163933759181770586468900022980402345879815410220320670881314333544438640590356900742160488291115294549032748120846686388419986396721745687724145735544695328980909175835217290773536648123337955394816523764033295631891226676020068775240896827227854548533755336579763238446029553352022793938236832721966004947257316098379385183590180093156702387365249027205694262806904694956266337989598807965407898191483687801998066528704797414301232468582149483924701577759341694839018724187363666718364143890480427581076163839605266172080869594154473920247961949490135206238165852190713517335795437791016572443258570725169242953323262835975529472631328567700664757552766276681521408100028616184408648870412050066618640340111150530351493129183807958067479391348910236633991586202938269566622445230572179905751140734223915739443094046679806408039387492722300819588444580411267166714836907657510455961506324364321938425462127567999763806206952967009142574660536261851010925904921710613173272467663021648882812786633990727785888010552965419918630781593265100619961391025967596535530180092103210961938814643682308382446999621918785541135576255432650430440035650891892394659825053777577574390351414845581601454617372809884334026209097936975912763426200005076672558167277225456515410281940136004902724215334074743073407650962892008375705352093050956261943735538798157745496929221780036361677652427730581832372222577714464998152573996442823502921754983270114688379707373948288993527632226440047072528330044356458319069879798381229329500899126277346126477986227217382659223912032450531343893367017159151935503933826755918470809945913673134076024699724852178489689220720426406193631824308623636822850189435854940958805325108591255749346689538525967325819221770625318341949662545257696112291420160818784978067460763446293647161362760205321519258795909133869053827158858868228073570317309134857831176249650398136930718491013917188775699091024900050195805552367887912136790397268024211318719130558576913686315535223534707606937657804557183037110931184106299933089474715109808966433569268751547183305829608373625659599672539942361550223793876127336951918084591280667526768614270910612765420606162860430770237382529361321072637504133540085081169218053088647578311317993307511150626215422341392919244103823244767839918508983140117837566525244059617748496282344583035397006511503504551806962964049268783562934480740763411196905053276825166830965463928898764149392254358627034546151481410810198245916869924278552901860932729384058580751021567016833715115503171063214962399265828888181249385110965830381703968059581252908400224382168767959734737569144858231272562036050376395846973671900313958016166034522848548488080390418685700808183032590220674397544879409873280504312142270664517451258340587531468570449574386577746257882044650010994658579496422456686214305437244713880904160830273144466772520509686864574519035717904701125073798882080353111587097746918001033745422428943580265994154344753749790956593744952712659747652958591486872777010893512998715402941223322213670884450211563402424621216721238124358636485137272082195666567037756193955097976633115897040912842307100431830596235793304087523920809820396469043110105543732181413315317298887215050053942894807694365831029664243870467089025108741518847296885909879434706612734527364323144658056827909477012431712003703801951169104749386710832676192986359839266343286530301006499683582727513156714039679453223376334765123824260605604709200472709495845284271455863356539667638916605347321352869097549431640334440506416747219464145358242663759759936392761795399888360698124666947258928340291839269005693563351392647097792813795953491523762666286686375375637535276835846661194687655396400995186628067092303981765761705165897578498078218028741733002811843375473530534880114903496271991631565349420664935297533786055223944027903893411074709157887697477750067339381880816898395221987786376200910340169730967352519300355309083007665653791990781797996999674401622443066593461882542201286482315487218043189688345883068180876982995236549145793593468754472644315238652857198765584712771597079264103841918303708988811539708149320565757223415736101324026703169071915676976948109043148236985693941340533830762671830660431756550931495363816873276303482742589799772529436999520643785166297544937552011544335862854605666654242426788141180305217817296967942133063520159983001798796283301848286110292839573235922789016606807122823517820010192485940954997123618376285361588269098285087883495054195557449169933736123412920906886372010080514916141491332443404695927816976751095151924796112350421080372960413295581673849666068446150151091704300484028448851410405721079480708226106925942587608355067659952294519761724528141277912530619032055145047110459015085442828786255540916381924073713219839282812336228234117162845102323519922258297526611503512221415247046564076112262386508803721039630521313570320130690463939592351847296650592239405369751531898722123310196055704886239649281502835568143399553070343009765846443171953483271546579491520882953787565603527732689736738455082840941459475932104573704969909171885975813682621244611416142050051724115881609045058107629245543984007053266857652780758068895891559290400046948708146191774491193678186744950006587149435049755950808184810085749471099154865732127471622254057857666279638212352250729655783447425937900155096458739806558706253765660151931225950013045380333164118010737063055834169082624568797005000302653139475803346525390534762581549842389325032459461191870311110397499885891510087293366509376222577064235776158469106502791234347202845067087519362541528255897361782541650265561703246002698559650033340377590475634416656397447792613609556829475183363881490286679928663966766245188338108336432144769418082214465305755512450482165302884420944096759047442109191029004432354652800940195121582429527997946145591059411693371740861330610882097606923683801834269110252879863086051780921384052073941295510658138019880466019257836038474442092261924570479909078137673994795629236045199196933004987704629441926086879875896090214881261163009668214939552912171770066985380498865939347494598643144472009243536908096035980674645856287312508821383429589607992806866521365664885557818110251505879938504160422948250392902138599646622190369354020501715178850440020461529384126363299577310168352953948271196697139326472749347697216483554556329286641140988511120853839789947945882544326618357232580426061046502897862076434221614019707089154288832146329426812194620951811873504231617570946068515157810393335792829002621059260301732753682739334217351761066308647852911665000629631275776812026678340920135949457894409452462079138646884257843943354112537143396507373029964964454958695312103634559843377659655195906192825330129463323743089756338446012867170663467519048350170142839938728491044085556966516718567754304754534171186682081985102002020391773419150679962104571894857650198437101195142555815248896711512627061087082902026115588329854827387175289421252229289839059137750867066271110829645516841940065536249740357430746854329511810306097131002450377735286550087469479748632094169294822084813415207261654745655325900932803463743458678428233908949455625349697290444766845054007588419013905507015828181359504376437097744790387457358984296302051097268942216806861186119889254514785194573264470471506543847653766046254594297082009391475355144238005626061403154484248092803220636407626074380998887057267216344029674573442458369101494029947037132931174879222983416966615270870329937146556242850246452096262689756916787346089604212781557965575779579584375201837349348938993232843170821192034528379832172844236406020226975845652658989125534019842037275287124644841818638030198843677859707089634935443227905483236125401219224457839695385988035468579317313880680558434355030428004660402133105227776371780059256782883780897248410731459285601000551147749259155214714545146557211351982215142147052715252530180966774851598917258977073236560970825421954707066558415794584202943624643525270983822508692423301021852746193230032616959354000911030339909329922449086848608306297627946857283080412279775534080639957041051370713765632869123790392183800389042711845516029940741845057338765598113373242695390001630445647807701177308062741320381209846941228997270268742892059640923398746100210691672051256585590982780941860999916479596599125675256872661442751958471607692161557754215896024201006892866100013011596069526462668866148600509495405872461678846153482911620718377446181647109130810583224997943418523979126255069212707072806016474541251569745517083411775721040056619803732527411739232969950570716202247364093028130696228142791546389126721925221392771418316981340450780618826985182172654358667074126889861630205573146670140661477553123691703570986535279178496490203376483682612066033225549108140214922945888063780636308632388687030613191877642243526323611991220947799085090038497539007456346807844236455350286005342766466673590093866831424715202730999088199713778370324980826417797128673440404609049030417792041388826919013210768090970613449752979962012779127247888082556632611573280252789220392181108675775163834355041639109750260724386987854370189600138881216211226367541499951150141007749715190209723117490172503946269745188337208847106276237164424219354036647250163661746403956923338101972930374529594650894513534167024073456770336656765629038290015958671088757116216497712413706142834019143626623489624940631064270321149573105567524140628937626800782702143886351519916048508958180787009247302585595841201212564611214394278592292716250077662059631915460766534640982229231138903937901803109002451413221588134467243802949794291395220091102967830748942501388250265944646096003057393188562247276343336183251777277451205872571929726198011772767663837675899491234758590354423468002361899679899385606666978064261423085742033230848611816348586862873950992764653705910419230083148119832481509658280936581577302129318373307067764328093072796437333904917903959561101494433150843009629331418845107109933809349622525452626783638870742305007069468537804445834931949463033636320099869362117919152857809189970665332016211285146805493479474805076896459826550131493410618764991460243158590699347091309458162634449216802080919244486571513007015297844539235973034368517516018986186751584936240002308283795520474891123625263282097016637856593561628796508386376185427256166401750185936398182641242149240140041291916808596526049423932748556828334570736228711848685020923639501644368161328124137583559004969941923410519325145760660395534671143693769871477438572919801615204049217947493966152255869168326940094986952342162423718350081747867862722093624578794353156246799434877678906830516912677190859260885808936775347099775707272203952243414775118899624265190520338122475634218696355237331138046040671357786723216362537923854122178172094937873794982335389928077895170390713680870612561211984551242573973872566251692640108473704528167739557676417831184873532259440470923597692564579155399994434927243708123580090591753417947592019890971580578891495603480579535194906761790058357558552266482727098946772954141140311297409633040313748211200353390918380290824828162172419730174864057400605016141619709208860135237647093889253607073205171278193433888356031197975224283889532106801549434519467383614812201843029787467912027435706993383304182540409368420316169609251682565505699082101073338344698507272888644704340961637889334422115795736644942783924074620573071623470871052220037698701260816102983735455648673943018446291487385283491456422481254632473580963294936511523613641247172472613328271159506609581868178211802881232075020257702864390769027343101828141134626488277605047777425918295230600773933559014538222339788512798357536882391045463039433607973443816664831104207691649566121017762040887813761888429117438834914107137885449053250286655346278867225334236868206526510221099479987345241402134354278970880972223843196513892031293039294654734154051894702066018828343338264776356862151070947014663901922059168847350995367888632497855969832564692632333285821239992194836309143508177485353563057755275960549561660679319547119184724908628088495360097834927405192646815547614368380682817056685690938550903130408906349165035265048064304866555341566824122419818665855612500835842123226908627362364994258115169722739165956038353991454006923625842050677508051241165130554668677024555632088831850775476236010397982489119525426471831440285490642472381445391167492680813903777037233302739655887072215859481149205303102184594329804681882226398318839425822862206376297798565343793944749513696894887586593958263983385999801703934689328608224724749422520189238141571433583861883746839301588551989012881944623623081923432412819578246406037917417550976336191251758462126150426959547060537295804472069953607957520762004849639528410709625689927641082599254352502307476907407293124286882225033565310801645039019297673540764823195383915135022388802041713984279671153580847869195031894300792238947164141665534193759184312983887884733393365956394607581974235901147478082589838918323785457376099339910075576279339602279675456289358436652426314496687362492742403730895145821875321414041727065360933291278012946031447070206977552102811317567023433516602529797969592359030495996662469175312162877296929429509424410725572917010780525508861483634010982126675747232538817474424957171430431280950450530250441262907440523479409979605912328625216338715740905243009147710036769767867893966894139014170734215380768509995812661264062140062677658197251186839995657890118487589294208144638326009955151760348946084407217757279288164369246565544369002454774696291539461258864271375366211927254718513066940314914460714631014997862815690893691788741461830622908899681645841518067230021001844975825924551488353142118142612215814342476069216862622302915383500051177583595091466963806472332390436803909011573694640268737939951126485683031319874573015964805065896121533289455039591492821518472593571656071547583114139891189113441704843353211015220191317273146499742875775452114411614247567609623195815151423708267184913417863440802090906292843332099126826818158982439772794300211340669525769222181664843436018391877719990039933587365258137487672475818326005556258184033778391326609363358397540973777035152717455032132818591749401394886455503380094108292447402147341214600982579257443912725968002319756320414055874854673760358750538719846515614544413434498638593452421218280288231073665252343252039642700648782052433480960897543460182334270596387115585475554697981929131896682899599800916203311701307469787051862782143190719793084461173754536997227925377054542510307323705889987157117556619230914117007521108792019627683387696402173808821900582143999699985151413867027009411461157789458343124773946078272374058795843161992745218308477103317760803065026222232350421154936351142017624516992177581746833186269202979438014927437211023770430509228373258447364907771581461713282004155354628646603969781469520095118737666192521105850915572457204054479591989905016805650948386911796410617936385906277992286056406190770220941067590237473526628322375291293804371225286513389516304949573828140262160503388210259104288986171778549205665721159907255809506804236905664179103100107603470305229227741514094190541341235564294221720280901328882018144875686969383978122822906944136303076641029442907562080124971359983870897465660883869024896921588743542058851420958188017774330530778669821655772766256044627386299001641085610780884675190258814247810110202945279424393750732180271632406355148912389602958923919442497675270032936786185244918159395826583882970294685379523633184573247416350851617410627902096750493927283337559289386699723589251680127864739098659147964446662776310376033259712711103553888152473872549664331697406615024178185363096215115438667996091050980952956605947606183213638652089602352596481148360721452609363289770538860835255180913008708042806205041983532739474599595395101379802779976793100211394407447101770640983639291319186234623262297656834959864139084201371782520854625574515732057684566824064286143124301413275921992773356551504274133314375037280116740037092565235232149053811021176076721325293053365792016735456605679030623014087675743021017601259925207622954984034820712272920146925315596055323332236577504638029041505732238894594827173219242590809270203548386837634836699028309109399432974431697322148720766397319010830647419040862510130036002189555026173215979658805817547938918697024474285492627334589466038040634949808203185163298578797815225063615787272766774354142840784445921288398996665748640377651902093947782799075688549372409291548633392556833949571581702611059270726092990171121487684936463981804224204643669319937385816551627523625236120199404789258508438379977664551618167779944942309922284649379941654087997918606949881663424753709307414074062565870971003048890726956544574005559890908109248794566358056086368567811869597966730210332513728472480467396429127888065220536798745503559206184996599346327705317021418136566117289056721935578635334589866591546787595640130386743940790598854905979929850878544125456188852901829002929162264133337645904410538056348236827369774535681002424485966556248082047953054847847810985262765705291833793953889492347551023942666780008519044211004420514857540532626518680326652055482437215038367436401657772638108153701783259778348362892779662907784715645402910508819989809911239316724313867435651325638681779744263088019937865681385937820643543719610168740896434827285166777747569833164946606128474421754597698931904542160161188529026640292511426324409404196146413046980383352818517786757527174290385490265805411656332068614140182165292017241343523833569084399387559221316607431834008739946124355181929117355813419893412583298953741322160127547010427295217418396186269499713037111231844273597301506579029110548442565494633291805527699037582289323681313751549105320978653397470646450826579203051746321858989221898490307636013793839228083157431505844649756171536078112114662503754163799310954028244502110412973313283371337079630610312597881979821799152151810874101040078203799526369897356718412354073055263925538724738918626696038719671718958349208813926213497957774078506406711695895332066632180670917964648717444293102367571372040390131010309569699911109809274391282709853281566749455867171938917672288799160490494410605349040205314212648595358593569417215218506157968342055791265595768347057783681962614091336293212468751748534873245443559972816443475517391710491095230620885769969338625561033607770685681408110281630093415778573009587234619721517813357178634104913010004249554850076766015710536420022796065522267329067326724434577428827011569422629110689924201727660438329636009601472030172748448441169004628471240961534302688599053646268756820474445923798751097441753195058966468950639278755603408080664001253039150589032505959519905631421902707699623347757853694524532826262639061269308886590269609913544861887443095617787295645745361695736473270722024363392786642353636672797238912283608920048722982685702529357347248606008942130172044113510065989551802194708087665524456885677616026687244050116269707989087228638896267632886924789967633505452565017077975768448684651761893684052342133763902070771263310431479911002653639648164154197003443563354582062177072734530074450108505547891338201805512279724156333072407820398881837219890940098009394273112063712525366745564680271918007958400787428434578340430868702152842614848069100214473364016061468493292455455219275997169529142176028886059617955086706343683730024014459391523487830611940666050776979792203591333557523873340767049077151288960086010917451486230380881412542802123248097565499630428357457007917794817097741886818710969415848439229103373546332006502579085010343971661324422039436077256503427230933483216101207812970819894880279895857865324015299054698306789886196503619378441485167461200626826296417115970421192062324490765252148002401978259220362973916414380021577211949580887656110229177474835180668191871675180387065504607212827200581354883506102488716233932960033688184169180501303734203502136842396482450221667529652092271031599075562028041160098133564088017598485446321069716307796648465374563700884783228696640770344177559980324425072153112305380961105847668021574829915017111744760742110792885462363575838367178381577500189413179210577728967924642444606654469108030163945230821096654180730128068263565745765289337922915733619941240551995618588273110066711899858535893736664874081301099540728744982860974229921029257706674851134327679276166494364552982355241911555361555614893085325927762315161114180104840434513275382077546265692055159997243181838929930297229953706448434750134646240180217594519003671643755286921873355222440627569282678191670954119804089288469112737457578743631021138516790075573036271869457476891830984747153518442162514876595161965403811231975979617044522593260888228148210505262743269948587588098118718979804226686659616837651218285131843070142498084893762959796135667604724388707204227545051336505534010525272658752684837583140906661361201256232955014289152671342666358363782594010502542587986380292995448309923368720263864877986836172623225952347563894559998131597659964229001937049462410893059591337303778308691236457049228850815769693778445614921428723471069095828236673307219074672958821813038082474789932993690046796183253941894833682869919614265846655597877157093429244360640293740587655123550023654556336124186881341855176514438258160443661063752604395461014876234917541724496656039781782494260318668991843156574007416304541948116964180387719529561424598583104293197043710510077424953613313049464420787175209948257204171572777316886067263192240011664591051371885391833726345459697410582738499675150468167717678832562734890774177573680992094612157143754870936120738350964191240256327818774136316286862798183000674575769143962393060206118468525020836364167417277432442443914323182353647867887406737792881437662998246773486615615352878380513569584037628136142944176033269261154988538006148648023017525291939268878270361144104724957538859168827495401717780712289113581464268530433076232764279092253699629752095508683275034267648942563099877894944391473716318420380365627918229759447642955509295065763432641331589071351688913274606790553967353492685225560766297313654679085454602479922551459324367310685041319218920455455822931562026490359247312354518302606247322718429219866662024643085562272332097676847728376389314471924142218232613493400813647528590696722984874651230678281544556232278046155904415965653576315217779520045916582965882839800387651114564938908184708873327848876484360307424041416528652527764894275437501935419700425727272488346217600266690645679493101905394856628832515752711636638818089130620425531862754115220396737661582172921279934245970760253701418697434819539302527171570245362412822598832991995757197046997251260306635381701555339910129133933709955031705664596134010759290008407590815826875074712601541028157616747512836579781653385052857113418934749451572077864132682732120649657129947627268678354939913368236696145460543955251114848460543211799071120832146843271324682121081878524759299471994847790105184729017877124738619523030357232317010091303738888071296621789931583456822209041030970008634517166526581234954308834110936295931231068809076957165392199864714061906314421562935155572447003253866120660272720000382343622206670154124062865805549902956218474976660081648901526584734735726023097664048920018243306029270977286200423893966601145272075786564562848656809847048059047458002987869370291271374626823906494697537889600965413702022953405699648449733831144655963411377529775556871655764252125615659012321669391781995751085736060181416752219062830856037580368592811479701336366574346664645457277238696992942514772293642600760012276697449673116991206314354653207360838905940428688783020361155110665178704470788733373260105837220320296160487005552110470885419699271478857294871166099818119712296150583249917195580830620919848906054393374755257861970752811286971281941770992337470619875615368653346423469090536985825759737845658129531518317728302129140160626203777178247401681230168627103959169780553683250882241047091641238316998545378590493318232206202660622077243105275709691781972969206307282454944433711346369325747777008911930261588524327419760130057761493774136828820971674432887605392180179678946335400412158357921578171934236315259315280789902737226487155513199493872276061554881730495892379648590501761352108480717256795610083151826947239544845362094360396745224601852752505712224295321828140103776409639033197967139912477090407277784859879236970092037683264666530722551036283084210981407617900160843468004184058327020788931219091207342249071221752045647550821665764250588050108566680934026305642742478968572187617340823938099796987864348152804445635122230852663720995648584623089820758542514951868880047093711860776180328414218494474974429758887885658076718686930766963104877064047372018340784355017315187980376955754318631188815115538480471162640427479116378266177340981460292319418295618416426042023705141426959762047259769815792035247974450794360956508177541302867074900540208703033313412394151363334534934655736300258775878246226515858497383163547992254380959199639009319046259528602287053297838369336244859791537440803732969808077524223905475848293090906069121697365114467546409864052608661093995348166705495166768799203752689567792707898551989649440482740828446591479782906697050355875870949602612671438942810306720393643462569228089245661305902801403047179843073816308524165183748699857822088030667510854350449223689889619048770798819143127071937081807121501445596483547440953586971652221904149583041117370381460431769502656571539157864129857513337002592816867610395263548331416851276942442608577027124487140998815838378696652751925498568675365053999223255403840671884689684774555560659085575269438926112196616457193788623867927261939608191309963091812949692824559296588032724148336286714883298397258254455719609166035988596132745741731891132070438444608691302694257409833821709353416357233990236501489664391464649193441847517400687993995809463524429542577512414179521016164071674891985870508624133155349475515443757760508543984700255572462641080429038122221200759174283111494350306587498680009950861509066202205181083171619499775942667122748226829487069123897713620910252908509306392787176014312616228746053327729311598979862571116659155460320309698500614005770432141864843543567937497991238435526766928511455975227415691031406030042988566625249137584917674199762239598180974593256793417268229021421374868008887694259157718585721340014339211734590064940632412930029386345324511553148139159906661351188120628423775419209601836528833892325149897017306249881856823605444366287443608473070223558787224449686639585394520650723687581401915996845261969125419542828766802713119618905652054751751975636942243828015994514352722524369562871044298678827077115248509166252900006334657437692660107600845641429137126261162699302211155409020833021363206250928285153580482273010127820694074539879697907073722985616322208795916699598795891301135024393244404919084743050585385091462324600274624420569068812182409449470332772698485979236837888445788265202659216437592187263208738644465830499478991876856780197184952882047708768237814186208585879660091175938963612557811485755594670885992015324193915626560244652320423893111757504379015880099699196590640521029269112942978972299651781187075292202787301204165713969210616074748027592408277295722932168097482472636133766172876229749730859517321738307221340702855501097796120665153037621152018977198804796696963112678535532892913969749280637871520962526105974044028944730283201688291019278458112130395670497861704751119084166603292121630426359176700372530412946305569926211117301575338722281604024427954931648267701089996447468705353839906794345577621430908590787097551844193140972415969583753336857846338204134571048935423555198088802318091880878600787733171284613786957811339995067623968829645824147006085355060818847971968762947843111364601407856450942532826305414960217558840909559559562461154125613361333134098046787177541080966808168113554437884602257382402800571932345468469952991014705800451314838672715277712509145142160551147060633569278570856527438758581713833873095661554099628886885025499043547341131665551748947989163498220232264391945340634583556786834958956952710331727504840222092691788226446403299030050253026017103542441964741221876669438176736996726757929740112807492876375953343199878845145588887524649768103713781235288061010568166778806955772437524394670445624901350471875015150353351580188841223936108767849356826744102239910977754167385875323900521542751006396310518379829337266001528846276346929561238483731971901000386233558442723679516054723299384821661028383633211451603725079076949536984366267329868399715968684721017179711389740458116051216694888927270189000218889853772937052103401780331459635089736999771610284264626389128207472338525914059009110028444185661529066776225943369223834252188092078734583785412172787963288023118200798724503691147443102777562272267857182742357643371464150692419498681680763111677119310457979930085116624212899989116023121620209628637022734531258694293599549551056862899264995487345275414221911629657591699841843692829096018541207372066267005125925845808442914569521745386889760969244499408234350386990585820375610030353993498721208133314090141209775186037875721772250625456469109508221805539522345573442333920919493863595392235482460356507278826991385365352403159949894170351381127828954488601008352519046603127855089300984768212518665699993429637302284794478100094828293321237568959128963482956166459625374509308526103700515553968903094364402283584050492096899256255675480988695891000266738058042891980168168681216496218573780059296702517360405302504971832566986127837641929803009583238490853366859319033525386373611590430681083697019505147445907723598412254837493611660256272103169152042419025590537700331543568873909990880498254025144052084245270614741883087746418912957282827199038553719675089443470285477827446603934685317747843408319595450996096963667087434044149787241719659306716126547654014534998093572777090459482285451022743162635888758566780648984901207650806846138191818982389480094326187401995300173448731150586842944645872441663895795238837795494977966460787089303554187831476972591376962165746216088241983297422673865062355268926337270672335875815811280984614402441946540926422061615286817408921555362234774249579009324901230352433483186245605809147773942599760202922350211390932573598538780309520495259627063010006435473041808446779629176854039047537043447269706843677620980718349429764562604221592969702337084188817719285366770172915798246566839373519286809071779308900142775278399954644453237383678540622960135932227236514984862511000173271730013388885151995287841039983471535023692866678095601958308048709098073668033105187257802269316259564246284158406249758123354566325914246010805604902919069497829862906690434544298786583148964524919478261134769269412948766695918057325460526926757774960705222218588061297682752358425229781868329348509117228204334076370106281577289035314456294377679347007372090269566978965249874562838762423542668953990306990940161785284676849516707796117806161839820527932856115230494179023117226831465605698793249515217936291754954122590394609210334814306754301241931941983740910568344932117761370467844249641147579773075067422339800216634431084400626335996259848368855742351388823716995682104905956280972758909192676231534479517829500403731778611131110467193338117063531201743037772481531283418173378553044675613610741444255603083026069581182225041873229364753200754746840226329008722667479963392545304633663692701443789748382077240879745294706937568581286679053691715177333797462032673508132472400438465656508520572029376967587431234515218905573352169858526608739038231544350401024209802896080234997611945172653983241190331728142872590582184165118843198093901589639691895347935942395291145252541998137199767255712700554330925791657600538663822746120303405116825778944951778342998509435887927035812480350273576768615468028847955446642295040690631521936790385905781656422038943626427218075670172318033301135067769228397014011279326309444828519496117078291270751255642813342516653545503344957939177042532386877570991901063433613470675201693468821717737595659070949915908863401795132135082750494853227661885449535979644634152960963766408402084912125794057780030988645570347961612337054001166249181874469898877397830840217283126373433746511340803184912658839013634143570836748251666243148803130405303142719707452795344606845745139871589827363236983281521163741493967039364101100915030400146930201275721060242676674716311299419603180895903681822720964760379644752374862727801914251114040123912980422488103786703274141725482615694430178437303729225173447379720360728482541360232653686703130495939901071198667349811223056378748857623359101044587807789347746922554100385385599393420348207894440709471539892786633699147246198593332594643146534092191960197877013102031891566427801708279583933226575412025435283539674729983052510206405303969639052568760627710801403335922813784970314333668222428560925546715137531431050704853583498075439694424467412211528296704740203060233146177105750595768320124095216454634349067109826469705052140548971924319085566663629405116983858979596539984728248128616274924200790068595906103849061749955544317176330203318917304107095340099974838176603846157444027994960089279876638666480762612031736856594737824084809979604648858657915358575324921269314256650334223492768603731689989760723857725567728802576558315872152919890812467645482166247172899467712502220878175568907930252649515255063260183943391964086493766765086486549601179303627736512656664816109040028867010435345834388011119501564330948728332379535622768511557561787403768417244982617621179386811975995863628476470298394992778928199911762884268558855631829180450901922422221475817953533891417923264789605320057229650711386582792334231001281832553785883115560448128718481794598970153660085750268636592666031631159274743624677259971911538394894899579464254847756845873465240448183684342071622873827846773847501712651318114918038348362915262257084220019321349404391481183216355308226490487742222916054026854799908409886057909403213507830634746060228254459227241740889208297225991602614140530372695243420149507359021782429242802955650193449932577436260854244645249133694209772212349532276241592433575200071031786730859886334195202450809417781020055458059795306345778011034511872130384460423395065241225535969696533988346351195772414579215788078180481432080236312438344850854324816260855466661873747890900694114714890709022925242596861232341511240715715752145907788947319380833485270769533974545789547723065205076544471716466438508302999120775832873829367827748410484053640617419594055478100460863831921818090293919816886065537005231177289487581533782828678579963740510435369027574860619652909277295972481583934493199667017156756005753768133250423063957157436002034307213811923375666645799414605548626678771931163323997395358006805149102756187564407768877379353513905217176795321443476832143193477769957500419246837892435970156570091875060304183369013526499708980874272681035120054357435141315565544586720600229945728537896337298384651196950792117092812447505321601299988958444445334920440735621641747761937866492815262300179664193479754797925740423557489540054377114541218600721811714375746925872955860662858389734665860430171276052296523608719215152478985042763664771578579953763536272004809863375785242698350862380647604480373497531792790049979119244892843766401773863141706591932897636860717857405106626316988789337817998308946275317778389137868197108339814420918924776639657729529570173530493009740777092412884375986406889601767886152187600279612883366675580203839482030653082633179793757087221737863453328392935869419787475003007601309367750541850963746885129304812421768579065597840346690260520224678609084326780185459608734220858709282229174920829590998371552612619193054387327412802009460087946186693724583123561727725786060129755459306150348330688133561417004377465106063586689907145942612442056333131598545623370787336288549003895717885909794147435057466594260509988165531724405824538803279614412130639264294249936222941687195237799004561199481930727655770271980507795872981254992507293531432299889998446207953380251476231710004642905640301238197512724784053074231239523733049058279433279854471818076082777650446340419962822825248037098122836550760177834557982081933951683025010941080188388383605525944343185879671901811713297084799656906502921239420556851810504032445909040212014422005906777039432491078497943102639153632430899927761138853269775841866643048812441309809895688031713315175211184941326605474008167074814583735567849070166610137182897311827240737390598993550722630633186208827371257499564861905360922549785310126908600117394742807074059911622171975730812961675614615410054894981323945190022862189181409340881406182605540311521812230308859629038723214882012559775126208561638366891894186764120707102313650949890914755141593684767621547985018833342470313595192370891767953736040166441679874738360993770479025680267716208100134378699740468336316915902755541662322127119864790983648617025773377259258175626217464925457543976909793540214950008699216685023957159223271755261757129465215226071560122715005880163915133309709620751641721108257268027580829753389083226045582451470447279136720568791436158019851422849400326829514711201587792855594280568808733858330441109470520666393206082528903662125230955360542775003603275145507829102688408081825864783370591238611429097224341307989952081113837899264890087342881295535122026723595717961088606450525695972170075166306794584743149576759194040523585587436122256455591269600766206922813859850923759031746146382874174202221800466025284018551240938100501096009678226638014005766121805132026376911311577492690816437871662047481141518514335926924054414746460629081361333511334154118116994578940139591237181914357675614719189086851096839962216076440190223957627218784541455628624680790641269724243723690547506060565880463373615354500430257748609008054772830310935700096217854994816633535450820274567117778510712866648484912360847094098345051015376371726623746511786551806065639404256860700769337283263605745967434014250421014078824840553643424301374601549381261246216746800042791287487120485858260074780229014950387412106930766898369223087662092304834386247466204551541282025301209967537275340020863887811872017308512384713916343794436986072052575628015598858003617802645495929924125825868280855655932397410482095367427340421385380645070825688823899036212516098538497446326578808878125577196596891925073141919873742898031260187032744899605625855374460587459095103729461810602586985397931561006526787692349518085332049052682733126179218661900339020471439850742046066084335655464359610860662481908578197611432348145181024902288912340804687298862508357540416880152200979888387129411906169255023223293725812125971590983492345311266938852955386988552186156224778722035945148711700063635113026851634781905152286093165636608353477089496634566292908140855310164772100514970146854926870010772848591347228309466563134293263941971556753152528497851765474603134853739666305360375403748857996169283416490058546904371491087399413137555623339917179958949747225629313442505594453253138684286688869583500072574314008111956931809755177668870696040005523913383204057045312533217153870964006362695472641768454891297398220422485225115807626267565529335307496562595822582565816271583893150766732379820652992751847417058168083489128713504334275360863009003669703229866982490870474722849784538680063944458297965299589017666765665092799652487030733858079433946951779187141509079257516927695106276911104422126589156780294706538738026896257209750904846903741923651870005499524781027182209828645980269849471318151632893877205249706839552494136791323876870561623187190756526978625069992647929125858537984793350114537633295122502988929633149443789627310408948673279197728815113589089307882937148241250494500088309855471103406642882690342470405927452533085225391335617684927645425764566107636523974786285170402123924467075837689898030538791278210425618276562377935564211238901499250759648987546141790585044528003781777281176015885870779795774497499407519060769744792645997720490667667012506441357878666099743149890986586740700187346890091157290280251063377341605005201146733278807579764981956648427138270288928290093086083432574882304646028878683673982769812212343702815754700847755735964741578627351216909535135626195068418124550660884656408198448784302388385788376459800544751286179440344699538647313996753977076599349672420966817085267064542455300647939159404538704649401555564948612390170141108809404730471270297952777105416199992235393969700624853567655698656399380762030287434747130865512159439121310801006012323587974685265199955489017708651280502826941189348509505948703343879360765939768102502336807263172223605977284144025832953709366967554737012748495292853035170723258333136852596530637332901008774095430051105563447023491929836733157269251127348546007159217431796596759881136279416252407264441711723074857297784011460169420615907422734524743798923009463434306668286411435790376809067542948141068638106817254778416623339032722871286399908249123518122310875716205363708776547829698021709664822872857607788049090715288607227453706089956368514701658229900313971068826506458716313585102002267206924669216167595425972486966253192067588672998632264578889590855084511477535783098714357006277418310607862704630421096791302481384568594355465049842310828376081167080224475382785000366763240638060080455621411798856635705877938628442705540170778020010526811214900525010097758691506127071107953854962416986221657270581263474276808752681606691229796209209954947166939763057035888182661252094924220320503146711881484917880708895128723206042563624079774216536211911270906292123489450609755376051493623355628801644019392538062016501644740159182497047752387117010698559433865399800991308899711295905072297480781422307800841906340141793594464574962614859766101593726841254699494756143095921898764092901864595887464691317935973826160674744418988746002500592710833335077268040425102523664813235246498554648675852067661816021547662157053470544780723573122300603316377591734413751984250467349256639489226636768339981605870248884625715861944877724121414440171363811853768443339309024332352091866707077184151293989167430066019918312484181678999462335743364519038337119999981638479449652944213838351198521299881257364888283708227049541097412741689668361580042614793868736394108193566974724002454940617302909012027028868959875395293041903374339481242926965259140914898925262031179144739697914499291350373876365573859252842981002691832528149996926931218859540107642581552570651681304136882711658066718612742683772193019601454171902902205668059248006121466640002994505864426202115493035399565109455424336629499747450220223428284688738547923345922968325287509529536778690131563648669085052811465532205153865097027574397193607785434130811979695384494167923043776875856313452716867655788873131608825253841111513582185061391681398282914705325208527966854040030264556683082347568354854770068243292961471198190117663987273359091420107794174608724832122026722135893131234804053120508297004919195775930545558931583362417494308693295181564042442694060213095279864405895893351811951922815833955459687171985600922036957974237231244877461916229010435742960717761441838393960092992910908306506553554831217041287689937060439474046124007581571603552536281462290685095462588249578123094210037185364929028260284508972077552033233941648004642346484393088889451733225034137679353487463430709836854232479213318516894331348846126406755195408708803587617004707354158952384115722836089755046551513332496345010407902786087433347968643493613098576172905478120885519579507774497662662084479240791087269460127595174867549650707434765930446572969043718221730141053440696994702040450396524362788597655667010447422904186744246995427484106557181188767563873255477325616210577881028666080390744881118766715559634091292536008662095629184073995440158997772780473394039859304782261783018375192602857184308560285991966304978360877785104173286783020006187130488926954721453695794279888270527954095615120650958854926697567083923937179536474402190472799053844596162630630648265663094343001311505615548185175657453490303195995399874806605150277374876900366483369804650822719299999205306724826627431621319334163448418213275528147114113699826189986181803602050101031396404012333563226495101506894309393247947132898761755815090289910056590335643037827529031162516650228978401542292245707892554672790497574751283081148378269961739953645063585337768366605167905665626688923521193234373069163707149125546271129237832590371678694849150818775065909540981734476007771851889189404984773513074807306428928454982524369683968500015642499638262811772653885916821159235972762534346030738516243405881124821839450919024582888647907122865274716575941838953139348072577093286242087130073060289112985086208236349293946682188356201967292390322084847041777130721455297792480269418876559860091598081954710254878416011228798902499703846858618741024518052936501168419726708288272311342513914120478008348680995363854671658802758872711968752060067599969265851927507665213485985098758820807606359400691834390715036174051512296257737949435668729125090733930591587573332834928669507186556489813023721780139261575145685135891153753052823822272964879614888609526579241189427587501579589671362944589718180666780197196245136148394929594686230782989835188925466867030756378117761943243341155266876703821329813942601162898198502602260233145390703997993931625045241370718356269739740210500994829624535049061255838844340777279794018817973253359793580154894406000131822138697370625238454601408922592094488794558146076915323058362359182868002739391379200308013731080839052989985378575680247503367185910756603816968279146589626767683892638829016901424739047963624659493461293203063863148567867568508170552015668831083693205548039050723646215268576066000827996973471288247023354013865678537822840755333282171849550076851181838647019952033409754775680475525147234379112782155780162883039534785589405601340442009080244957695122797818089387974623189002257610379126684267523657586104396843266957487668018621315383375163981050791371536101468980283136294338502421397905557484129640402896695780522787817601460596490190884301529082622196197368091809043085422709799537919254735190453058520148964423537162691599718838082899588100276185244231199067994002808720177703893791664119196285428383724943202899479763588316239011734704325308419040664137042735252119790017005295665018446179433430980540740559846071502151511118033559038100853227479041067080923585285599458237490635942357461003956364520296534650491647204798626373548687308317669878288982250755993845933804413665284718795255523323587547277887037403806504074121279553799762121872176459876844516651351936835720282270806987607349745977809897778969138317758774294778011559807947891782573359017451008242867511588012610674839165624234941611767293251273994216531380125190526151862681837786633862854107476599672679883075947539731655184963426213148606371913152882976920155244814639040910320170440906171517122264112616336491716283761666387246626872564911178589633660462416065723701826429849880314295210610350468905194746151075403399805328419951753521530610814715479285714458952556477726179557346658257042134194828451198835966964327212099344842647359204973461223036856507698971194948300404836632833091809382660910821788267260332241933129846146697492291908609422486910362065801257090604411606980663741705752329018891294101166279282083069965457270409788413988426483002803828106367139879561487263124202893411894293488488183138141893487804558819381492642289571524505713511045411360093115550732528902551995774139345343852685197779836028910354307823216356388850355965773921014595661948917107727882132756126728452445366568694853895673973489502300836204885701321157293832183589403296146423513742024421704018215526028974520202646092193948460102385356668655166063407038736698553610201876983054900399763773086628432534711070806734664247841457414187310962579262134910499705621550067209134079218719686717975230494246930545252637980580938959230565046733736855609272163109523979409333338632064229171733329072978153411169937282703282489682236085473964466141102851933951231012411052548262758671334772791888094678366991949290239352152252633240562806725342924841342881379909558069830951820665900146713913894428694414217657434286656734743144090034333190668192233608973789839929478445347874854877324041681555647336308873394361394833518869354187260851945305120132259136943437578247751524169809087718560756777613016843879163439152142148153411283626581574036354090396069250620577474730747364962838801543822082050526698056044952971151081018636483697440065014004916974380210240318359956087818713142314007469194151422635643001060125123737802243610374698647505851877231638609688015389541772911256134470611105978434783119146797254732796806698011477799498550290842015358512372421123439867026102602425533316497457524742171808657734643169976093519733060515290426777997795404138902510762193310572634241506726770816846327803152944550732773789815164995285803265088251096426977506662975995317375615237331377635222450976107012474298578308155366854549853130953787224359214341686478033986557899649861296581532717427782137221231106807512877032119082791353355383094770843409009699466522782254177536709652312463691343849815998548742881499944349323866693299466091532020713087837467323079185756390759650365137844840540782127737184819248336507962142903241242013834461002592837004227084978850859554408660951640296153622367169786131214711223147472672982345101677342056566538856222765593820093231369621349574192065932548425192355276226019311784043658299458351061395098669646092648331912820387709587997962963934814483414964518367085771846643794457115510939997643566924925484942614230566711916250820968912705463675328366867473210852894123470406412582378772202633194338936915785203697748603751069151063965245171526061430999036813323561797081442259935730887999417919648758522896819418954278869141324439636508486393575609879581347291738972421316509111573636778979477996608062253047685391965183628734073378311594378444171774878235393196246325980735566518698760217984355129837519164400525280377292861968778322912704696620118149944498205528626849101783748742212079016293009655133127461240592576820096032129996279690011557849563015429433244409712364089762623109575609216405093251204506046916535392596372576295354759774063024272607691348153490280851150308254622919718457815985915347500064059033773144716122679803604204172093405282065919647457804638062866992925883182853795787984346574699001821935417189228040884357009534967589799338210408258311738876511796467033247344508065591072835851615657569678112153598640241833658622935564259896353866245752857256608098504754646933054361243569382980613791801029254350798543351419082749067305808546343028943847536258528087294537415903587064216820793495999292462221117859992687924466998453303982965883083654569884677695870326500916101106112365263352154422512189152824817521314105592239714199106076205222525075660685416321887826423671662109828545209747279192005435315972440320250159216237839606727785427663486800781254252707878079521667614643736927022332721992980071375241196958063300942816954907457959781315703605658911804141138411880571834364931427085704322742313549578261534586564447959932056197765657032313108519779274951975468996200070120848541164425949548276800168005498101509268336639158168303018670150871219159425615342273073261774064833707897928255236566631078161171945815060881444618926759342669102032348151409649083288792982425777723448299435949612996734830073158875751805015385808750646158027660803764372277333257296642984980899205984667149660445937804623149016241682990895158593875250340866368417671271554107758586262316534602436896814360249237084652631929505490020726493231584774017312597620331406708349433042548253672730817534757333017302654566694672164657053444839954405344485646435167641559805864914722469985018805073628750369687288751705642188343868476246407097642753278101267289576366262127569726652313831770212131884521133433534852804927675045653883152502776749454485894344888506659222144232133766582107188309498705473126941895927021207121068343047663595003547049619789451146835015017892117712877957771404231069278151302785496913647061949975849927362921467841603163778517945329003465016080577382876528474182897112836738601144661427408139972325359754866057925846975455275104304956476306769549844651440322244055325840080401490369154211341868913577978378542583507400867236770201058008206160453891289257414906830112585627591983161466624738867116393621747949660108615396757154680090538376322946764420986820152379953842477194300258346365933593245869003865550663787104753978507037425639442097408452416584467639141798050654078309971372310747780255767766651434634411499428835686559766361888419480105205861945114237190784422088131250579470266470374233251337160959953329021112161128829128412435320577715509327964610838992611071645034423862135440308719724419488474008455599298425763195726368526414091574525956704486584205513911563803442451785206327050619362219490181615050871965927851836513063726576587548520508010864162828491918287999242880836720081504331516204844480244914514487027068610868942476306561927209205287219786957514333094258410819126017612347162249545647350931917031270051037663254751922660501477984830676936921204390314050277757803151729899348794804123098372391301188381755544301943983562902924819324189124059772677256799588503081941616154773681229506929926162517122246332331486843660408596432776399565554694479559856692795601604333854595213016742452923967023195236032386279918656288363253936317069894025950144767494638045879937331309896349715125431500793442095192456943177481642799971511015872813712352954333760155568934577728507319616977684529996718755863979735241414324546816266481382023578386013005670782224715067308898533168380329790585462600826770349511615489969798927818464164811372666162375758431117584680270790629327523956801321270563357350299345255801902843006631388596850419011227703631656651144552250606260540655243475994153964926611780826753621810345928667866188385950273226399277379833881676418805213481249715006962783534619608935183974650273684665548297405297566828768636986058973428143051491198484549494930651444647625408106293765968498884028921409917792149259662196375150501799054604349584763271609340230319637285450047387751387326895583166205868213614216075577218728544452862945659787681599795149263710881102591620800891985455150976687896311540525519730770932499201405484699872370196165154333778811264644428190475808139120073413850458107630794233034806302689469366963840196116190266544433090145004961085025301647893888373461692326286519249340601534089643594398831001498787112790120549407332713363510204501591191399739734310936616446481234016404913811719200692722054046803208629616139353885799151844576950394615759799778875007251753878812682333501017895011807053310603695359307494218377238107161217698563988499204604756865805066952335510817277925617948515709836618165873252879828194780241844875619068554373204901289092709645048001722370970015132175566850212498635405543495098542516572142650798965619991260978078657090681990387868685332112543476016007223355409894804665234765472145700175109073285178214842763220602472247849229870671230097030285980435264703805765202488368509475845544358806530715169687862115233688508760760632313667377661464493650754275987078907962252844838724770269969158137815567640938572099791196951102689842201363568154739162098195466116088416580264499308193035241998933872672773357428281865188690642047889701577535284094901252508064121959536534992153910286323728591711684371313450559735215942934751453374615297895789782437715680538287692509099510079588075314972398071326125047685146624978767597013227881508141213637699967098580266257865192249518520215227074003631531801746954972295621827149628413144713262727285962937541434095541128993948659539274741097863018127216382956085750346960368293722220534825305828341691342131442136963500215812104905969493042681387695029211701918455238402518157586406467369888520928223624681161541067475219158608954166161001243156927954958863025196639200370482574426581063399706697494879184766069484340373208093126287864854537838838441054178455582753770778771014976318682172073882264313173767292824900097297052675340895833921091263517663901064447368074144221453978542653973944871789485959062233238629245159994569337467208396187686576297618205286518321682717282097787043663061698936472684940773936064327947177106287208074253209897407347152939026552745894717432795728900413281390223124655003859744373332686769917893831621097834138234721139664534120403916989519924376311290668224494242944947602475345767073205571330903179300667042376739781345453211668701871352287914150739785861474602392939769393658715142404343420487073659278673572195554166450335136696150044965994623100213230005967184456710806076541262419718567577880358792067325338937281103566686949568673191059681899523348753815848167910380485546512709550433683638737068962335499143440997248261078403191320978957691838385733462199898868611861220591583676442206523963229154239330789673909849056483218514003632199562761837128805237742353354143941728581663296009366881577971158416863274276348908059832628051584968337798884551116966772344128481029832102904498681037826371966063821233700770626103874646822419036589763783982711803070689629352251388510285745046999812603886400300610102163653358823271326049603082727152735581059855857557195642068745069514719501979410740066826918749563547148203649585175822159893347727499806680317322062783619989490195049090575645219424617315870892713403593613934006564414961477153735745866941775451808219588894729343549960713987745814479510114599068427398976921866154225651573256145584934557800529158529141840303566453187471109197316896809525732174115739425757223949498345138218282595435300260090980242290622797421689632609774960108197630966127365361410719221861813739162392319504970625610437214175110144822715334552071225694596337349046371422310277601086634552951986611617766962685151171708818007844045138072413315858873466455401017065445800719081494424012181298977355658373134208099833845376514772183902758234215781264083019305695746147564535324477732667774877739242351657331007591679039136503984897440600066556694968533506021668301445913071382870992355444125608081918279993040784651260628540429973710807813664852472815343986099551772079341960096942901709347255861686539599359934396263373668883223145503013421422005027513394895732996117812830321625385634097839635336044185552085563509129904055324885499058479452517567049950096282005412348716060409253102258845560390359145674863527503873603051585506543341261599180824855824169466912966236282212989120133519186885477124862995742462559020609943475878223507503570518813948211258294097156148380518068884487848129154751898909857354448414370407545303828085464909184138998194458533919840026929599685206687061510014669720252989388206810533808268237805181789978316545895958456054529076876875584370042182768981082829971239206171112706881606035785411564211259265146327073028838315138570873042317937480453912347521168435076087192289503434512325059402962967381671755401066592508538918058256227113258620715797707549585397507911609792517164786541652339116287051710411033979002569809854949064600525710807163540090121212936594890691514237739171936479438641884467953635689786981057515986865119999340192263484061066532295392180310984967011391418964584239178013173226644516137650284156674083027045787809604259647890844375267488425406295714650039967148726718859143052152610195186009785241348343333215000331445806529104232328230524765915942266589406483761408718245661975139563499736010452799510735468269003797887000564768908012583666959976882670474962870278458288268659260863434867559841903620157714628629316345370574734813377942605289204281450245334625829716692852225604530451232365853746083769389687056818917351886738651198930700340537801096660764835084356696656049472011265454403433322668877018782123567361413503244664566775403103529288353022271926931771000345894706593521576156442900087717822227580997628307838139311168354770347670961639422943338298338942377511081409764811535204921307355276147447201339525348242372291732283820961790163557506177760761513519557932764117542411712858201164470779461880938380237536004421238740227537684319999158300865319274750921119884015720065610855689965911344015461499452443284660636855783554593669595637264966323646834013808552605589170775327757111344424743387471207959834729382873638782245590924137917931396952039976924865871507009535109342386126716157085958612450244904668369733253777928880305223691742846941788925295223210982704464196992620011561046468588822656387444984986516677876895538272792521617240587786851860112313691674904151754113229205855215720184687138879134086020663246963694000875633472089919445929310030245892186449635751535866386582026910299100712321688833895265763970414001738396019966381294168905908292690895274625142837317068156867043114692134399877552325712819953775214229578441093204520652381008188698423303054268367697431098754502731292968978538089518114100105438520825224086009266880431164217214943401817140543205890654682036657560024783667152748526116910321534320395196921892565323544294974351887707460993201679903827797727966079268508661156718808604623873718877346793335104661775730279731136706732506755582273785023029452099987197473489912857093693556835054581734181020280213084118424909789307194439610971429892729359736002935955005228605894392099211851074906346870192502121003469488629302423846217781771546993822769811339119929756115669179867361875833551418645228408557989153889642592302253873356444736887367882187668972922923561855094217754583170757042039742478864162191208360454674835130843100690960883604867276747810592285369611525267351639797595586084449276977424106647327294705090776560152736874712467964568833199296307393598248157701937946338622633126261790609987593770488445407176731868331261156151527232348653942104575505971651659354005774367182873278771066352137315898995670257861347647973965183827836657443967946502129288999786742808320855100895466272807862676750821750918228874344791306313933937848948778476069304723784800940456153990750518770653874160962361075234230644775108583181444706249453708816745583875275204529902873825360891749367756262688197360092294492103084700050432040649969838940540746028631642483619775297116263302474971591256685158592734328339516384569137950595077357104364830849972945364817944882520315903104378375119142328733613324010839389558344112646191122191450474782638863416237890294551962240640550525651181906715119236795272721084495616194446140217664509799922512340127297253595125237307177039095632040356950600144025560854943716688461435482715380364226273928801470314025629311134456059412841362347007701121956390072398048947816387929127247033113961943436441223445109430632587745117280612837939049983347897177141724137319899240717233743653073134517189709031285458505446971479650486595122143193725128402675766083647264925713390833702455256792724702491375564028024422821966802059543337114738999133202305529581474565874443526592698447234037963999321832410706463046197670002231219582355123811869843287606313572923576752194336268065245470530810385901849013013519970846664770555909709161008023675162720883463045808018693140105528525826772479774593605699352646075163177369740356692698718676236906711287499733586619916831785483538092658813152752457792147426734159672489408532834613502515251101656612859823103470063095421900423673339677093821904294112603348860814454305023241742825859215613115451152583506570712476426419906687205627439940826833008496148476168459075896341756667480756340871739784068740250395594411678255224692951152001485958943313228019838494329165394965310131878755757138853397678673358466557326504210533800875626399138816817219817206279969467340727160669914526302574260143690044557993722894071688666701095126183717561893682422298472305733681623703673401803147588486664990001346932711865781902984241709792219938848697763859591699957977755926972329129648834811624963904037928393800323058915280567803513159236127522643757204789896214163026518265895456378077646174775093396334606131935338870947456162187860907159267092561220153581281751862964711725480997214624604991024702999972048373694529343523881181273759833688891762575099199831455305909770638166037957401891312104700079615187430863968788068409036836924029279666203522291099039914620474987731067957126918327472063382558388262868762502001057504327221634793410944849790360240694598604879814959368182829220090847079300312426418036041496072301387827020187814409445652015214601513924160309137293340325644703191084096717593948057942821625379409289008566413032130432804034337557489378093536919977217319479440046311725938812394849481287881428225027219031226184728317983635689741167178347508172388225006633049536434994002797527025949306811933177768491679376775898314120599094533586489526953041664111379455207839900128182154561450548039146640788386120409045925148386978098366599752232736053994151716762137135767964438489570945572305835692097899853231826567307801892331291127569028647907533598068628844313109538337462743591270299868206631509318202838329127302176551229685954629065030787164806664397793230446359589927638689108150097095022356742744632826102162344236903188036954291916834533691389300638619175394235311000576742246659699780331420841958608344479705055518068763288715669433018975311649791454983020686831450083409346700958633070265213313321325049569008862049720154188926969989834839858533087423504415544683486052947439648436630328469261052940458353870258367733663002542463676494368490310685059624048952857124969377767002332824716980914516499877747326414482028597905034607519823386002502681026258273924040261304813091460437662900476427579421299821629472451921763080197691385111490957338488287642337084297276449148642526388096006935047774474112076441687954154969155905330207172520782463062658273897048715588098406227169630541799928204361420492884432659792053024411698280443733517545513342584967437940392177727924271151360377154418809712568972234749004780859802366532784593023594002109839936301992462853442366515192663697855520242983047654141116255234905151217616304305012361855217842893548102305657583723906403948730422197460527380518230769070705793529437116878672875476361510490488343204687447172151789158941567470006815283815501128395858607839550962109577194885357265035721428399220693407617328085053914634291451142886657648801691966290378569982666600451106168309444941500253874774316847518147381444240320914764768847248569709253737031743903708827534505920262361318634338883074136979868571330861619020856099736364049253523633523789090556046037759433773175335374775335316724041954318814008986702964614453544439803012140926163582967381917212903385672524964745096145986797860685817778515131579048283592218366208502604557447567085485826452907465783518825386639063637376595978436933996659380466304679300066842910214180392073184277567452995828339653013284228799919266618604709641656425994991133920435315779044256689751311454564678628019593368771319305555253851910613426672095238204208331917805098253838842747088826313158338104523773521203034179199887188647853628024793203311757511054010237668648159784696008540307027586444160474422852535912856229063592850613839525372047459223144240344637334199297733305051576306463084504177942414732907952660080185630739089962878085607452068646682533747158754330162617021729170997071821874510663099831120457570789136326801952340208613652920915883306280118733990003028102788302477423993683873779620233822335419037638915286198366318220909699994478717083512351894476904921164709042611521080482785474267933402152382701981369512784032484946326625525289881713822311017692995830525081942525618316379622553191743652897903552123221353439607982097364811384993901409777619808693382121562140926141648167642824039810158607015166882889262795212247786606087445050441490926948410389680096690764227368507929258966067869479370729682060209241002593157594756549743897809632968962809544222525549897341256281281655506803825105785011059593594857157919837665844133795942121004974818712560595961586586081066999284059082788993835569730224668996621426351774553318076987916126280602118864343020734590840081295549557225214182093529738737886126176854490958228540488498299192986052292926207135990087438665710398079929107798459152285715289114765350368902692899671344313206768878376371485315671369387921078657898735438416414719779310580021958220340311678731039251651598251898519267399870924945706413054541093012829800739947834013395564509278547302274011830782604844306746485075472460654096036396791762576757750584318332403061428281474519331919175056502590924686996766277123104502573416157590962211887584098718073643504556356452623340248832090659953728718774055637465446021989090144446524590174541740400953552771671836037340189161898231181458916821365244859466102386108709083727012301520852813272705226178637582016381301080072887401910527310554221416979946041554065996746844218269842215088545764434093414823204399328415025284024593897114559733961235045987145000788925163183354875573851308684958707297396377221857687018876371480671212486717876877640540273175262577283605739934912355145595826534596803800804135555098742503073147647399820788252537983978459519616630064078559699839947604430965372920924854476280220494298051693518101981079530466353949100238350980275076089129933163404711224440692091344896101596206032068152424773572533227508385456964807322945826864402739471661748149921119343190157911399427398672011242361637233152288080586409833648651316606639809548913525928492037407035047838418851591971876473971161986404837502015265178850607379466414450012785945855862467856011036920478974468140202384350138967487466732676291832624271828553290406739563084734981500882736925763974526735554604510097400597371705439414823083558380578372515802249768758853109157685598185109408700813642647397535847216080268626587552635185982599762702622454299830750408371453436040151476152895039615755510381026786129060502503780143104144183311315057079479180384413125952181278468881682561554737714008832206157307773962421959133410594362404979629279893071077537797331257109080906184383476901934440976748931876389304711349166633632088499146834426956878240616784931218756786497558271684298657371287919335019970896110009939864678259421302280754827666365533413344981981260842966831826970856928907845151636258683875379348908405397320888507937449089959666062248191045749128064390653287671112982689465285092261335933430230610139882645248409812472873477332286523286762300198317260863719706687595287749651747768156726946241051942350155047529248521333539191419433326809035710352323770122067197020506990976096648015609743546961780520328611118583827981086176646066423093556820848651465252129584582526535630397517787756599849394820864982797600028224435606499506012432612518874768633196259292246418506133393878686336061207385380372508456436797820426523553630198132966270963345523548313398146545828043184508402090806626350572567127358975880477138621197967178788860276603096076391941584554946259845687585607755475212970147193595953789715555623133794071758464529593179422625977540337794144963375117364818772001402102809093338359646316440991675033866948459212914290903506334133081451643407408362735095332594087355184849287664130774042607170958692826412352798826074936932447300948226912762309980830284907042888640231906831371598825345798605627629791997070736964165220441986605894456809076183669084797003712217786778431261309098286832775538249361757250464373144044249744842819102367675096680722472517014564705361542586746934196079792157789134595018002290159795126819099870794094038107592213200053948050742527827340054900300281597406103495969998135320201610790725542879831204160911140926265722599002195826082962097274205473229904519376593116942035346930746951378067694784119436481425195074070116166087635718859436747489855915189696605503538204538452027588440279476483342923808232955279356104848917223680387464790986562549554414825219960976362834796607719749621985119737180582613425479643345061489860803513474550475763454813980188973760348062420452556392357246816626312547788332777175755829131005391715326231140543430752475919813571899115829895928519113260224689582502112754517729546598064051026420050385760252715713804883316507625102128567838149908779794041001029048897424244647606723350553097655233539409632939474476190700161933394812359843773709802900615649837559715714939070581516528739533581482209911166705838384575935890619608340571466609395982589013440548039246918490767081653900345656298848774265756761483372652175729230321338625568266953093499585281266843266035152879225333324886368554544316997280689114550131301605178640201670866003075048192693970950516205069546197994265901624019553902441689691028233774033964974810924788770053124865944438449720053859897070844215249329483583505985536836794668982430298211254859554771885831655658730224437072691438912895138236644292324850880684982951308970427266726154287950833664787847251508932057537564686758441231216232850978251689608318280808732838096577373100287770561564247933814025164983569292949139697650059352608776391072170806155184209333489017831202660609700218063927237991521477280602400929179131457008507340601886496384457348892735580727917562630202143176638260949851037361299026166159886853830873677206695950404942850458232895742923058809441560957285161665614007307153048304610844959293433430167768910982790870299269268793564335714984036474368016694591762981168069070220009811702475100656033604046993144575155535709872982675057148591039222000363953712961257159947883169500722823316530760106210055055161638047466329055977396372405274802004697766361282483260393067676684692423517105703934211428997398422456950366464606323934799092643925227401080826766494627186688175538167539432235409166160774425747764593686431595470979184964623113928195544918368616715520181408858014554659437865333493308204714199276836291733977066761956901724448151692221543760884143060716336364150599310854110691961698812847650940063408169006072660093739530984380497522774897493554731131601988943746559966241924030568535049611914196906733139623725350488312439677171388354322643891895128760400791984847219941226287019668539535297664166730701722995994501831779516500748233234701348191183287557713881883603242611007851642190988001599970313225474848887906520603819405496321074347650172537451267454242762995805622191587319217643097368308333425749498276590780616147387851879875048725691431026026853603790059505191482806697133642014479942418541004999906340388621207886263218419107240076584145482952590182708490326560939811662029689400446406780328222159938224685101579444435254930079703701510427088979911779362825222490099333519139535054542981980244999719568680109366331727850913988248891109698500228035024475741553959714026294685908217664263561913235886642938560279481428171298606212068274795191207587857315794266696831003993242523874768650142850975275525319924295949881058053423008706288790053929921137265342893314084852083069867535200415992153155908417206893263496933197899973074348274660380599364048398212669957538256048553559552378398416949329900314982980440134019098921993738879339439350185764616962179726960144589408892790122326605879167361015446238422112371534886281305125374985532952094968498824659876111840310494262010939566907022844962812864017130360660041617155867565413186801891631280244437587864753470281224187199408982845513338336173175766698552330208905131727356688962524933052414694892634351154587828203537390370655207889045862628632692102661156687200204710015639108029768680354866157370357107121638366851882476519985571995261787283218126316236869533413383234825704589940701070604794725158916017491903206013162179346590240858080030905758224367763574108735302038626925438769093554599772522680733166174316945155760190265968001553550481641092911618690175102707364440783900369060639568682865499002014903218068952736274453125921690445354352672116247063852857555789055964002534548575519228380887855313692446890891244282753878157302231061157596425814226086606540608216916445551189221800538743961044874457963093118909010786708677675594922124424347426366848244740768111641808645153838417804618230905238735971304626554696194049517648743355959736010215413834827255580111491907732957383847549263026451180564603533115362201685495832968943848483106251482771119807683394696865177557092987382313376361021140143004210539251773660055556994782392300341397692145531235350062980994821585272293981400022696946945278848608601118121092618923830269650195054176051793433329431385866252946390218556405487497529590743804510019194717693029000350706869519744127725540478198003716022908697501087310042442273796640249029330459265658654886489223594182527047531984523626128771086492633791899206867668607714160261727913447869384929619665146909151999537158960930113833566390752907423263602125237819656924137454914152968872518179696145803453266926316665193661988806579061230787921032695265011107191445571855477998225580797051981749272252184596877266176856302858448743715832256835211692544984550261463225970522906353081124919791337550997954985485369527442871838043801046553277035078511330779620573401462762020323684928324547309856563739502417260883650261337566313034876266498234416663618379025667132523148653822298203579317723850262151227318130093699442292004295062093940383749746243692368948083860881411787592364753499244024372149924852939191276351392946485465468789891729218994138226244492506685989476632560064758052493362486744305032462589425854189128552564052763877941259772212892248944610688517170844283948437154753507100982291919288795827307146349142953825718336550987591730224876319151398585947037561202955022851514741965017877965995399622146650334382473166432894039924368007206888180923717948126427854672611743844117058479351652729559330065510434097790169060038375022047454017399206368572119777463451688219874783466990412779527545960440108022914794197967623357360204801081405869409900245281294699656891744427124987661354817258104314607836009791723334688911563892501702171982520045872418736371810764142031870630792269804844351463746150473710280233919133043866080271139705879174786069818227878579961057265970873205905952510718048950894789075192966639146025161032274329039951278180493335058020280353424211877354865879996242465302277017237076108910792368928359662187279012629650758665958422934052350011193740676418653809375375750311436605273898830226842817632882518857002479402851155544767966170051221369811121410500603087190778342675876894980923943643880791060767583899084021699086012857900911834200026396757143666972046584802113142063017170325413194158056193667011349799460299492331153630563957533173975599656864689652448299653280660073089506919229480403350729867644998972092090283454322538911914391038190197335024565184769357062801812186731988401642079975903997101885566372616979808888089713501388694595182593782207364450285813025104319706242342042439112941511939389328196794286184574973770065583595914634168145365438438612950897535469610855401500464942720494644228585848245830312428322348887931949255321334051784591287449735119933422939728620489623110005655480606427842531033652377827413543636662899213876149765824974837647376052714683374387014429201771520173684416295836631241451054119226563256599506373013334087813064699739024741390545219594567012472757896824678264829200317040412363295372364557627964244982240354709648633335842401675941294742564012562100233047891922969482295299142783828304025087581714671799289127794109587668817665858737179760780386778993625842702837183725192245833290407568145712482605732845205896000587669397108949284124070878592624916520464562552581073616317151860408285529065204236763625054676041379917955366988055512073639269040472796062752304307123549429218485423538607463340260631697409834531003748114185721707821325318603399175754999884600445273865288245033227703130502706787649291550861432380025716766090635047273239631744078964367499276663893201179460288618295832490377270923789396834779098171665635744576827420482584192189606632930936249318932771442924527163060621656619850550978366701965290175716984020226990889460673545118362599145081867854906957749546892364758263429988299024534757195622707909991887744553911334263862603462582723753179280784180575922217125747481154432535404602879287952962443708494847505266496647790651575791425940331589472246939368109728219090619647637384356248616629370647278544879431558426800631126626826879940503578941910953075175210272257885747328982972539944627312448171255801714704803864480937236861315068274080243179517645421146183225508508742089016579762219632892376976157011129264426166353669203707801632750542088830300823408932935937975347506138463216654593704629400398054165629208337074659642054486447266536114481249280889291127548627893933834925439246895830004758818775233056867559406310604488246864149719986594668039776446229963240176333506626019764788040028593869585110119167638040282459643946069803680085920099601410755443284869168005131783708074221392324490886700310296460219698032161458624295614156082229471837410352059994552792185827837770680117763271153967109913236730020857651417174697447571432843715807751221091474335818372392786477185955431528164825978142552528718901629334228787749049574695971958637453107662740783893732020002522088320198253381397700677324938127379686004666202021971943581508707687633712424993297748918131035986260643790448736800646274385488429213389043794517677587487862756887140763043640165887296806516331774450431298382048075462648528213730965168981984315049669565182631158467339977386376020311854490709851814897092676924534988339972091228685160446133046104241918386966445028058529279770329765025021360318161402445551935349728667213073555009998515566945508284418081913327931733686267792363291816871937369277003063285301321112249105404856068101442256778304553770937227642874915357994460480071498226468851366166949465516516172488080720381993294604777472669217707779496479654022647029809785612677402945112366937348983591091896091077129216399573953601978665210172569062449869527829189924492784287485035230956012638492398239281064344698070166942630144611248606914293315034508384539306144950696388159497001896778302239088533355310365415203104613071964963694774522864775814797867744663412469471480815508078795869905840363165783998222656631753962539985221403721431061466418810536777738520790229750996628082695421689187935341737683794232460674433204036693663778209613083979928394258534200046062532239122221497732133612492900289733166872846135290364512419414131840006135944706989317750969448532942720026354944634443954388662999286550616937689473738353344557146419521479404619345805291024303104329578962732662586123931249091975451716660810540503071343756621458980480002407590139757015959736025194958055888173502534680728637212751396043813217140020439826383323031662134698965331527891127160569402173078173041746035369611647167345757523691776822891002715795596633906593387528007609492332520716666795241019109937957051150532307451107673215854623301753003627795668854624890367007501307251622977875738978570396438464577970860221676108770850384788068624077537977629921980921174717717895499281902281981667342984564729892209401989665856169558928958945115910492520538417301174046943465299872723623088714975413791509244539870265334721303532050078280052940592814408758093474567172291526912661119519023418617428193751147550457002725127101363318857524946167906510377128390670110294839577003965998663384756176589203184713619542243773345645878410954252305758036200651088058221645372670743592961221216779313216682991583797152555696824175427871792789087255853244925689001060317184430724913690051269130598098297220284815328368407820347303725012990352253432941434449796880841564507698229187510026165089041728068179814957112669675059610285291711707512245801748143133327457411819546235159726858337097363975465692044890701830994650270407936609883967582714383010293399416153832389446085935225706606652588521081456179192091138374444239509864519540235551814894463831076533864784934993121584484325750762343661198565104547433521661877575220926453490783062661861125806794407740238112644631631589269891522271162470964590264663541798840359117054897738387686699989270048081246879542171952075434837623097956793208984512661259799210678690634306353921449985477126966303724986874891765107484893755031870720628207111382059039835229071655834066652030483786271694086528360487782864401665444870960145136398237529852960177597453030387716932155896795300250714739769456397762852824716050991023304117912317980392792732063478305314544419940652707648614203949638578176341519915216136592853262499371071764733284350326067254705288448879181448533328911589758801636101647148682042256540084357558969632325421743966995393086836689350379336294172081448497666925320666249788951010252986597690176380118801566648573339165195023282431163624906667033880081679152967261075319035705824006221572589263143428114118231178175746632689982313299463615007035999555991195191633035124040286848417237890666631363839260364891245495594837158791221658183030989309924208722764848598718599436326118076704330269984570789806334388443663439504815977198914268982701549805317169400855367167509407020711024281863936693076115130549908238614985386453987307612215718013308081574971974230604429435991199123795461277538509824042243162284358288586916201274605656017991217997576775005642002282984674222980572405844414118355442656426532448129830580673420207223278120923432208618349880522896992405591075912895854883070391184903203242968286458063011965889489901494988622093407150550175496929107224533743309928637637274209313437769069068900375008028763966106694720443371150699052505186519545009592325787871023982624064196848860067412063217764677223802859987878497149832945408495501545299413063939710105041415675470287206967812894105007748897421871622238430876571579363278023035969796996282358674175127757857775051254461554302767871168516206057361430468974499479767035251830963128907354952682189533953593850087944579358028986455950245675801825775818497450086721465057168750707179974072155527648894069821865132473816731840457044553632332638344256506210935445174754668035013433759786126416650271878889088354170953621815092450301199271955593095126045068373444072472826199534787002478630786067785028794627452742547275910153636514799420126717401962217855683150957141141697356516084726291049977915191505406458594745133793524525261258652427045588252628896989644775695954406943980961614830230540567383257205901449334357192363589036533077249913762690150087466720100277612330275435710111709878783123184315571026987199876932465838405458386676738804974965296306997772883428701845752284636342321659503914672299608701623219263765162592852442682928264316120031322763871554467106712486004847541070049043987526772477849847726479352853813709405206202112334904583646696568387660804055403278449023375300938735329453740959966234432279133431988013634241405603433679658028659900312581497283312022609966735368324211532656771761600105869962986382046167290243302308435429855367336039917527671692196132263620158558482727099561563390259440939534238083389520441769303097325636192568889786168887976306090454950113754734551054456775212583653462150433746895349711248665185139298133219691130130303201623745310073576713866680114459085781211942954540182481251761478972565397730518175170022364996221696965864290421563566032422933048343626626299193536379943128348340842620119441123733124531287739075301558233937774029355455528472928076784161929547019263448303058857842542380478902591102359905765560351200545462834406928385292666388599995299777539201702589729210950439225726257353715991992202773844949985209665111493462690972545121864656325560877111122690398801514627339775612091772011589169438527006937490985196909296713376044439677138618955911110596793337768754349005349373594790225361062398218594918564066877536368098655983346165011948180573238040024711334042133058861338425401193239599713074341351188691104475729720910484455566307159156936032937311784401485716076710797371619393835468571529786600949103608034952647464878348431739958658152450738409104916924506776730816250556029701138967326737035898411894759603481422773623926120169755446561382880533903037545299031039457558851034991045281135687772297536327196041939953344816648832962677948210880819460874693939812852219304825101020479815563196117099392353593516961461144985856514593766322024838407111973215329138750760639112905599635378067727301983819952827425150619414973051938458410721419206542394024898733730744722134270691662396390310923491763703902416778671857697484569882994786753753063197847788814505215729681568348295165806701381744310898301361460260683308496292550760906717207915878511136139756461340260021372605846178748428421002734981414059592968439357026700770140407461940114261109381268670376825373788328395626727909075382577818017009804274066474368044359005608742472110290211034035354608310384189788833143961924968179599677083284577885534104384327246795134468747797575135487040638884005550595221281268002562044284616664601041533667690826228733332149192366378125383285371930275947707160887826414485003537848619185461339266203792485421026032925960818196421841214402345220085621825509711100794258856690223851967816246801558521748207877844546595993302612930489639572254108055691994758139638226215461713971636584919399037387806602917451650257964905698283492079349047218850531979871736845697023443092998001830338646575738950983635221791937247296376460479637226500448943898786129150228310167802344096252074430985936780430372395873429093687508083166411803814388973785584495230497878501225425666831045157121341629913612912400182971052521716506719747293182250691754765997669067119935896230827840575804052591816447617941534666091851035231465114124334196942918359813884504847343068062126922592598932918743542408722062642497435023837845983090072243140993180028817282280860879453859185915095307226655011339931425614614499666793033389750698604389842315732216400628659987119233151542972452647244622270163691613272297735780937314450145827380603388052552295885007047483553542310916618739237809018298863217496046129308974255571967353199823774593088916716483136605334707990738981127364749126630212336826782884731502865532179263984669001722694677184720633038892473376356559795592453270188383355001921545062619018912562338265884546288114052016348620946642203972399872419338798825048163519520937450522157255496005688748966720375071335609309626887221425394115265058720778006192917349283080603441857664948254030230647354036139553878037542939925632081156203917506319693739557407200749657995842001479510657436400806078686628538775336312276911733663746502984246187807110378399377415696634523091963726186579392494376098497581921341201064056267434728733377455903474350541367652850097854152903284260174587457153236903182028954031477877021845458437269095400719873671237066286395686174591970730501341130320292615393930296941792983230447062705658978828055329912315681307512250816236789595784093074698923526924825044127100650149407027119364684423833576169073726656821983857771692304937833173359808392552283444860269043895486734887009035383415008524415691289763865819806142949255782945495206017169514521597544962808442672407664310911060166297662935027721789919909797154036730876326241048607898512370803441406310811438667811007662485749667109421065312310261118554233894056800878672108670789336836590244157897045107128450560556675670604156227524142603504716098801128749110182626321596959324952164827120494221901304096561958267405653934618978727311508260732224113005024405386155025943353335298609374720769944404925764977406072588226488390508422264758070334324870603221456152890618596120381854303505429117948607884933755109595936451305835202518120057912581235242215524299451343232692982015712689082531771378266560101758674319064203042202464597792618207883144545153716818727516703421151359724963824896132983580280585781492893998262139435727189460442645451108827129848438127471536337517074658688513981792076791937687910257407231570787687054116358474505869866079937261610567354499091446492412422214774339563077850640079798583090940968269638214012484174262710166671888444874328061419870011747849563291930536478396684163549829289739909987513720726473886819079208498832338810425463782634592279484428376633365274938575979140685728510344461198537790403261572405169517962221573140307313088162951689393988637359124526469452936232366913182854537165307172731223579088839969151233736144832982403590066335169252346881952375819504128907665606006382851221360905138699770136392408107338945071699456212212810359866019795385634094908544708684476486679207519966880972546229888706288110436906479118344271211462635700855246349456372064596288698949414202776390142989659117936908329011228586930533501839473382341809049143088002233223041434409126729230187310857411653833733223591717967101565982231639852343142631345935718659648848670066591215958413534898301514395698040811513767746229450310949974105058130517178404425790400215899149177040669780683242148054757727805260389075449494376879223254741020848022641911595414073236399000018413979818039611338601194580708535613174640009651788464471830128738526793260774027414549632257277135185431025649419932822903521689945153336207405972670708558680860647357916616138098803321786505396504573806996463387272421219073683108838197429667350253457479982476489797365263632580721612870142253395285711767347652951050173353045293006937589927775972280294663964310752346083003996791748196423111757157845760239693901164216648627216958538461819717043239078771661704938943989532356330119822876153076048616618685873944360323463092465144209959017514515071682051356267485249897957435545963738370864552285601117573553405003660481131650847264657931492785456432646590243338772549515368066829398952406789196958896535312035525935458498096572666283740457195391361715244327303790820944241975174087727340899514638021450592955919110926522008090076930281507732574668395787136785591777498555215226278853576150718272255125613672391294947263344796134305678162587835198893386467027043998507432966171106226589099789145063167732730274482349098259573853815325340418558241084517186766108378884094192781750588221045349779522192956964472450798825218457659026416909043453227657503952218178165259888707300910253820031192207118997960760890051558404846891512569721717144028532200683083419462623635068778984986769332362722441927649633915686838002223191990541453967177822196889743513820407441426998210411860166946747443084751781191516799575377831776514570503635280611951400771990285379085684248036474120898677874374270490718140826366188582136152847029395677536096393346386817423857398197029887415865743271854986104308215092555315487474505300962034568683459124099296477025968314597804237569059947804043815265335387926105966212972026849631064853489118997839211158354992579507315780025988327764561792397951800176154780781313188513335044983161980897464842916875193591783453463032909838603920254681057770446859862277118469346197000995910397210674383694085666113666100527809547366690256064590398835191075889198856899314473357268379010355064003434167707499920112886493818451660507734771225277511408286437243385209319060009749982719412354579790909357817597275207816342281496049783887734646969734219181643290351113285663545504495556254724359277459866548506535494517015579954107735703585608664609807333129822202265640766038509410040123838677687617581326424376544323873863115255392844692600835462385718414789788805362314911704284062026375547665305713950512218424895125760616441118647854243413355624214667393459593298276760925272949380627566315834016073982764862833650696910462462529183089956072750940935837811240783762126462267273406752396227543148139886621477880640732109156028220001928946216422612340083455150034653011084204129815774355403525423652031200897849358182565001882572921926135538112558104041796332105006517109149436767517192500892078577777431047898749561604370456849698298532669270484699625487130354058665968186433124189687050824590831836429121649297768237947991956093389092478552255193589850687264927001348046758947989388468242833792428679539684996058523705446983710977800385454137685254955439943327226858128462406024033971829782332834950895286973569544146097110614168865336995745048557098131295788610534820405100490597980538775727517033176091037216180408974351739510831994800932816702903391369722126619866222915931089019415966831059746783060601713253896187215608204377338223833163987331726984916779719272497166417876628071757366173813597414971161707646789629298166944845600600563618764593580764362962716776241989921272748194577051644375570000606746067197373159320252178451066379398864183377768244715584048620492060411326181402926353655168381793011546467664287267150884579226923001308388386771137402336065435629044630918499421161865674673047598806247949436899271837648632686282263259704316083004132753191591066722064740742405882334695320479817356963748183664123909357130110971365121566332033775726628203369266411516415394713009899939539940333146833762032679105082818690977527281417920681447887680041446382278085889571420903595390660866078555202676329990061938046063580174038407961991120830277552655414429230477986700314399131072003571392919594062505248796714714654777732389387980581955187879906336483273351006383656157578185439928142259688334092938357793071048460993783577292947297957854019765716833250209808436164611928070331976942545444936432058054465034786589095380713449339010628973447583185677867198727671653662766284266599760691247413082387880895683951471513886923627201709631028550986017657855947984632533290449718253492880043868987507479746400432837610996070442825279375321060744606733406307214480914101233047934972592465881702256190992735350664325968083675947640438900390403523538772074058152875893959389813808598068449517767659743528699930177450918801269666283792392985902796261336438076733158936800698485248382793226688835082777100812160785351713519838637885599719182110155873941364374707462486322875323320430225264055925948850170768874626328692329960241812785109933021721988274681655487814831459754292634676344660859227265338281833917458822778758829367795482683981134821092441183014483554796224275255224952264412489905871642798448376017583736736991798610886119845896420361858546354476923789690208932788132526865832770996449115558707553056622044245922904179221103211606580511471024029618098290165432371372338628822046039335934624927076290164064461123639596421745987243436059440797691975737228516587498740426337744289391540099134487774054574628204490160679946167567638091497445410918168090302244420385450162859382523181810369074443482296462336781559287392405328658096703872806199159811225588800817941912297366969660166155054806855410447365947981913820371535580155904649353520505043446758001545216864604955918411372547945209966989043152689500208307502151979537401225173355783540403816371555245675279454862838223712971519191368828257503642960790866881826638234014097018944313848421329743669949272597131947556903533336146603119271966773188473608662198934436902519643258825585575271355527244593043589459183857425700087924474694904586287257321319979453707761592706189918115440738119559964093951063582241097947529643327936315210844317018482257908826113458672428568379614819738824931231933222385958053379072972555676938684694629998846572840511663248604567222077085595966287607751113122561414065743055530657351608956477142494828894852689226792861907424661151171606054867149119691509937335920701191095127187357147130849852962639101901646168300060094417168714053556893058637562526901736457443471700577107646841435707959765892629368326754460666382608025234471657818327545630487062744945145941811642187044033459931838062025413118965599575979994895116980870459261927157431960091994194337869027112795256894817475013247227597967568849326398575480094516104565975299638491398048487754183210913151078819123243342561326929040365212609412492192519826973683757612329051236152530936467147270147277874730650459512908286490451374407807556329588656739070571584416603786021250843493793304342594892844044834560914221475519692434396189474926269744859546555862653827896397612455112675160058684357284342679909370108892085983604032476054505721559085627314520957371691277749093552643926699566841470180343703779618137987067651759828786885831324820412188464764285253418841833387046090392086178322617045988894606454816553072931568149464166599057646087074131332574613034895756970097716964641805218863238372429415186751599412695345400838097243934285256783010004163562516708021783256715068536149745438061578251164322458451545278794884545031407809855780523126253469801446335412856266637641759501900038753006114194904094823231150484487364485473728098785466893639815692721360107450772399658824914478226386953459442214912477462706525608186086614079412276961496974448916633054351144646290488348365372487010955673295156429736249655854505510381518019636896960881839386010005931252702494845210743696955693954259547774601026261394631057700724098518223778615148188960902879800357859297565757566816837266563899518551982335450374092562384167350034386311769751381120816978596471527561521574608240410185332301848445772202627775229402452655860134698043596486549373280476577468141385186222276309447328369457257928878219577593892555358256669746276194132290094165915171188199783581441439323491922285399451613369771258250907103635710319541713208683334829002749639115284702356709917423523244889223301788919022276940499904756587267004390371606699346436086914927947496391769159811260484266404331557001182455344288614919014254031049950395199329162808027343481681114665174202578853334890663047627986038168020220875192673559774255679155916856058055238768765942902433687755520075231465687627179106557795294001965064167480741393873324097986248259430230643329587150729195239962171757304223545657521155847867760211628251296047805462230410047592118212368343676222318423902650511779335104477165361826954291877260738005933386481180657249129375158896906557104980484959496021223923495423662204908301185379196729572139610170188933650746303862130580690314457548121246802643788591396423885316892958046115550624964470355541806632318666310461050677562129542339268528505302621681118548764749307272919008919471228977715389164893831192156896582496066788712600259233477253471025555262916936553706900785581816195841614170899177164434472736572981949554153233866431299851908580657711750740133585544346781731859055101279259946996484256642934179765054648155287775918710675156089754870996462501679657513765803145422577234858376494978215037410420737581087387289982154006285268802559191926013649073753469999204261035294575419272281282636283536495188737566206274200561680724727813268474978256589104550899331943853383581348299748915156533909978757517159654788856012964257003465939178629331105893712807869408818698248889550750298426145028216937427805202096691641249840030061867162571615721204657587766843816188572374053924278531663868808280341187389446860423887541701069137776505594106412463324647630880362432166475380023339046089276728207933291706165729812456556389006337282011784753299216703590482402204754176075671606105621128723136420362383065657920912868410510197791347465659963798203588352508324860749629500853078131137849700627403521180691500347109064684857627857964543824103856116012930839640068183610920001381207801335160668104392074742634047329385207010884914326479288783042759637956308268125860870088004122078020496855002940053026645000302880901588045029200494803755044219851215310843699755059309394189179362805804623177482282204910440551161310247362243300867099908568793765394542067763878558859339090440850879115554734424045776691672570664231528688202906749042826424560383402497610084741167180701493694130426086501542046472581883461683042784543049437333083258727097379014991309943971257509549427552881569674875938329992659777689282420670576384195052175788953705872354011742979904384766589530008242714153014173905826333833903628793410697491737904770877907868866560806143487117942552680636663588700364812143360779728422720887076771036729855264466053286093597839726161766742418722340081242560761667479054872456659950957280256691977345690969927639508698767156613106608879567860497035053938957857462201907600291129661475019868651476192408604562182268750629904013123344963381616010281768834516913417386774635568914651141096740428925889684281323585328129692171739268280807550986866469481527080272734440033736136082219432899509282224077543550531673753893889583252705674974588203830502450051440814202715206988514304567451315284314503910943060118069944153943098587685548195838843956727250791185623385445231753697962965001884435304058227125346441063997033634478907745827500952988354548188876832165681744014761671061670999417311779610038673846468080688000191663388652549972593551050466481466117071853577263717741469594749304679672915889364546115776132879537464116674521759805747528017931817387316406208289493037036095237560671403355863118470517028325610989432344055629996410405534395374800736105303236073743689241744919417814414704321166123141803687443770834819019805673081319816622748738092455133128754134798353234480763180329921741438149640999772078710338758197764889116101178422399895893461390210084152924015814335595178462527251204847158637491582467408147347089838399543418213371400645866540496837931855027355304210855284761697168962693621473563042012395941023679832170803666661200370103641901737585394925534511821335684311427122016236246263159005784223912595963778875376313660967930954580282941310628647936013096613970855033551665586233870349848883309384960352287029184827736290012168230361655864708707117265355033740938731678397287109426586903714383322591144296776489472033704207098554474843847408538354955983572582690800649684346279043278323841891817808286611000339522845998870287535627868241487677696786730233288683113826989476504702935480684479402261321920705049083776696454873245097239982472006375651965135757060278391610176565580275625459980194301945979039591148383426023663060629070688461871032368069620018837463501056259982782299163436422174934511761621755093955616698585970993455700672929859334133616632169581165923604502284550233300081524393600859011102795228185116857631337087353087530584596945114161742579019431874281248579449937215119973346148093173132868212515500008378254895253887260486243390753828706956200533291666468692204387402652255243677752018265279527772782818697737719162964771004858253547425624286636086738945126917223854800262233036591510439946184687508053997222534343452755036250998456117464058745289797554350184100772696616071271209464057583960841205402534481272518403502238717500066251618546324733151713074700360391100977756724473782808984410340987950537073681867436390150400609574500972122811350774374369491879816759298931006367357575364794949268963922266654772263486542057814882039269252560826435509325773279581326288257976786595928794642562582353049205739404680409164159209585348874390189859244837767049505620242785506699978091621682272705702679772640172115040715536509517995792710056665879292146973152798640628914458456410076466102876017558580688639345605705913774954465096462645280552798472700049709899343663967796594742502398344543713942874910726593605447933600059911977545321653342312021378563550348877078583841539748281546733751758449304164332314770602173887430230417536697675100027112387789667536628937605787414791332092413274296704382671089583269140066208952698044760093151367089802384051116080994632896841628957774941158575463635753678273305477718672907851745488967986533278848536434767199967783756684865467448099782561872991532238372878216939679945743569947403108085154333911342265416479073902341335096450408550362511670786444098089032164275522639546105450409288811136848720653031212174516070264644944171374065385396365031250478639774464116693100379895157912535646578790908679265858394303424059377571294732283335325590578132265284656896934935286093770228128553862549615248977550450974468145508148771145172837172959082981869796457743573779586688858873144239959304202922541973454547783039677391990493093413389180190983151025847809932462540404581323749271346946558937111510424462010910665494940453960972017483752038297439000175492467981669096861364695056675365849141710458256120579925005592019398815905923030691198014494830534747759047294301227405608741057359467005973256933305269683241242570411835324948356668829694867941402773594818714949266597256783036060780295409237375153104614447370681622409658005254622932296642697455057201209513359097056684340661538498370376891630370748950763845990872442916061787955140155251306786142228255655513101916308399814948262781950474560246667458889010295915186006784648427180024129879093914370787911055719490935169150159185933825544086602957045452457674017841733343427251987664336701678800582415877829663290909178599100951560041328699715526594153595887548806285463834472923025203415258051182136089469928968429489601889545889929463848458139855708925599059330483949441563348874964469388048854827292563041633892194636316796434894134544515124522224753647435004820237530657046986294893380276335556653031854078749896716903886416007757743567776448747002135579178685246339237965604806748532866860699149340837220351516353251491532520975694132083822965312113390304493210847838612689221722456757998242411177000221175918071748253813925112896750931838785959527823068132623603611483772336071009454494098218548838546697839195936778902017319449453186660714957258099324277704596316039832587886862083896462706862835170325917525018068348538198422682770099418323118296360493630953313161427629979191972723056250162974356197720567610812849205459570487621013022458737637674734189123865988930505391060077424904685451488322028333781595787517523559263550910409474537478570441904731053777647981903660223034222849397596091378843573575399284479259882254031980908386217227140149877212980894681485253844464128462480589753448721552473876657971790753544466371268067469966705706363059756726752676449204706395339892145967406290795633504510288317358825530131173024270285354383235312783590062080931682635059515891174783660121238558194297010745785717765969925736088505638042911543702546383293215626135677167590285835977005433800603959424037472385685295909021264551270148440793167223155800372440618651798402933323710980694938198891019977128783763954156291297289948404149516820200414213786719926890018928227331743369809631948866196098064510488151205768506337601073630515736833102749398271703656193139887560836825510215413042806736715894236917794739233313043881137593411770035884306562326593347167672534053084755420557709661440793862800256513611291543299659147097034436367478914280076382363973413616654000918692284756361077222709124091007121422397552424419090065398990535199616326994164889186743431154878874063209622720100082468302786499655493034005394018421380143820294533394052917895553760008774591335749645143617704112955814380789856663810163313841740834528271122411346655530424475920973545644005444159933751809969431970145573991382637045946212138042554998413658379286092753489583675839855925126115919930917182073579925056625749882980923970886855325552817107614368682812062928973277565782824178349715523094414659181573523635725347851666417026329001859643496618812945644906441504289670876218519437637741937507278470153508557463555273179541292774200443576063251992754876413269218759516811146786857399863002756935565451903803364949626489679435000194049492401218115320166245105755767641531890210817768646265964945655489978624875277172916834820046079703699421487177048280564258371223654630897675037692990703935173260866461965883154484305060872948390869077065892081548312120353243231458438856727421117199415506572766075467659966094134411576837298734343912442079612535101535419450094176246943621371912325687111596389635086198667706408827332281191637745838562919433202535831619870010149080808137522610262166236592244113794415681916117581222021197787693532229061203703288474934690120071705725587267731934787359228920757606993557587615306900853049024526364350394866144665798110643483114459833806893334647196854010985144713871008292723935831557521871624431866855948668977646305400144432672232996824442271110866706279945473906168352495639256583800456607061913504411836802095409409468307663015441366529742702761882386212191058112041138457520481014762176301006244078591742569319296698547260409289247335215587104355782852525634136320834656147705587150527011720174160599498551053975970952766176912533024010271645540076847570379196795021413128534712350882568224225051916518160328024573017386666581379947015382912825663271262734375155437013437704982609406141189865297409221913037775537596898916696918708845042834251090232269105392325050596781996934305369685864269668164073723011572063790971095518879035878836707490683679844892313009007517476404676346817294593923199264121778114029568911909185138315838305103173471510593903361818196882167922597856443204040449215366562191890163472059298249212598224329968944532644749839076242077183652706604074250165031281175709726891152544731936320302242439591472214169623601931806673601332055077491834925080352555536413191376346185674562489293484006352091971350494418736511934380504560361315892143351486817909507440270234825749334650384445734225706755396835947093000828338286001676436853085015522952417078605720569461433609601281522403841150124124409146952164380403563554502523117702815478102764748893529133287747225719099522261804157545853360541756080778124983407404310189612625028774474723622410441084584640923998691567846781836830142852795516433824945397960755839940345303016890470487723781723370718551077567519542262549532275590599893266991140316502014159041490168585213504987186803511723476912059484932317400376152772544256437508521011649530776702800171863077117980077431104519987485492815633195915171915358272564870367867067951374644845367362604277524773028796950122626580544187079438328627740449691246856917454915501645004444034884884914634371625751621611138192175708160396601676371246387691077912656617299943926514541417292515601350514573817592199737935946244875066656814145442838443987266596950009487417299528075866811403352915842265609959716437330895321957441659494965599150239378811456179271547660252139195170236756123477733392531956906618997185334889892667281275603548239546569199361377505684994321262028109915997174748084978475069603819239204070468757356116852130183717889997027077751503067074978979008103643557182894673541779147371320806122482329418830608921176152114553852744989299222481993092228977483613266233850477017904387631000595945702136339107871154537046444399514351380724620389356057883856461054444832820006878983285407238984498444089668198193920555708533077486262718973782001171837324430544943532328853773463018778172535508777215305505443750762026513989373772308807703226207594799647274202130027991041303887756154693564834115872049546549298458049195189038140819033311844567303964658297036444242544162780003345483912027130683554662909418183640479334914843350871292916559771393923729882047278849897947934175055852416649911844480191685351090618131230129484419699448030084602402152634658981649790059893449630259403319600465651043859132369806578195414760440476767563353782296947475626208764874425830133884886149606548704254652470690660708973276039109695328632759940350753592710101306021926325709055742039827400166329884759122606230375281863615727590602558409701958709057324827323703358244673749380134708119324161622152175323541415529199202521489099958210203321538625240460483661307145904022387457805521251486043473178688405930871938529452106816322207774561406317769537355166071916324171652020650312692626852491635543154063370845995271798103213162199408589054834884409635946017204643277398367764134683239900429161714203889820549862035819254730460035759125711120631266664969230015434649205506082108407868683926282562016443352139979732579766608604539167729996135866289666773455766404324909304914697853967006081737006887810048786332146598199697684786025516985033035517286169935756645726952903639416954960580354546614973848547952067523750974651514010640427589556827030347566166448029260512057503656527060714001942658149980980961692450057615914253073224110856704063490296919389540011549313364835445420141726381602382775940595531763203815597571229302946456758326412711735450945788721319733902063528055285651170898259300326836441346048542458467364439877606533056614164038736953335687997427058746181330748378526586270188013973628692435903271810442214555246297454791239547699500849649607845497322423866901310832235742692885443939546300580843941353339373193994456486726965894124888001554750320693190028152551882877488148634949890606052740840268297759250580584933724080872413252758768710893149173395694669702918939792226380153593272667199099525473035550668439594177123665155047593792921965447180288348252520316735139762696823317339262244916505920046907952394017826173745582780311551277306175739185154344858697906212659419996667916222649268859691752289458856996058977008996881257547715107667707464966846455827076054704968024478162510621569207982540589647013408599231700004512201898598960745167387186923833658264523459224074920944080611306605018248627788575410977437781212074905302620126969417979335828979131336846857360175529441929452632941453038799788566240725877148498051213167016664840535619635677599176575168620285829705027365961342522623610486905628393868891884210940052183869831529197192341628708260853729539314294716501781641908907265858393740386425275433313262665621938067036773417232090205017449787604321446053215746145983646036437716421252227721183685569876395515944115283856255612477414138897165545206061889060305707299714745031922910164906987252658735013901266383400200864158431025969827805896232146655926372216265800499145240335763064516841565691011580410631972122504397765118532329084629100392530107272683137907928223254886273490827345649545121585375801599822286643981301236245050172283428408051526697156396240266386144147247928118364089650738007449747334331708675733569458583169749218216889033087297558350026896945163082958580826434233788218738465963233593338547045660050274172245595964702320248481672928026857846947822885323479288386308434111422482130196048733475619444641167735624682845836754922541368720255040773390878661373342686776386108451537684658092115002030833798448164295364859095760276087448098622160678513845528261748500061779213794596497776166102111481999782271208242552707658311760478409398430531120851392693344206696333611585732060567812905128003995557201631394866824920752954503058632192373089847857626447646743374844454753284798559833978204638486466260336063757165875205219628694084451445525857037577126719471858216444061731493610357467881308738524640802772349727053057153251599677653507339317247922424365411112945047539157272323438836683128157395461658393139599865148292312940502275294001777487629832816645420130400397892022101458112658433233610570557423594643455097084545995973552396054948275784303029628949860064441739107748851575460914547380060506970126599807999822060375722944453490918628804544282664578672441826517915013131083698983430788919096636393047318626886136200512170967618052506734757788058124971331505620807410142064809015829965811798758810900766243199389330547037015523450263891826118326593614494101153685010978002368205236028769496783992242450298302611740075936553987307940662076344758462822213347960011161825004979149969658939917071462451721727097726203315619179735560661258672191080334409131367924124897890651899467320612947106221615450285082632486696274604213466805739562404163458686793062392236382809567220150605489726502314680267251579750358457033264143143035834285376644816593292314734746837908536218867430462148796078054934901896899523810937623938785759743785924026250835548384425412336133264217535016286255383008118014918220170931894573491424208921028164160381672474309821167820947201062739757012177892565403547836484338902424517201138315121701396421639817180114690006973610119752881341969350223652510094347479692258988916973822385909558372024112205305591628058609989912617972654463214526256631447308522666860555577882126235937898592008255126843825989643640000862105769129699235282733738712934609972978234326018302848812715882983911092767302311444918714316902956039567894995253827213521952041396674545856994654833246556586732433107987512593134403100695327894953792302704740925601343135348075191800155073536904900293631552592217922014479057819371803416931254764939421261600483010319583859513836874876326272805876658639700979950456213461981608890736202905563386483739925297868220884034762054745927529672756911218910956282085244791350025407435641648251492887943153857179182025937769864290447350018581407126687587110042243861291739852245211109099836279173921670547758274137723167704679432190189682994868289678837333993635623164354446823721687963871591563516112221442792021961124191166875315079984761845190105942823125333114130987765116002711182243137427111525934289528455761163272518008280898316635214063442451416201643487518104087979290387493857291363118995463356820969808484930977635527208102031805700352820553940022000557704984055862150444154253319283041355756267436268113674283694767182291253022645173337874966141129757804825264388099666206064761640817934385038323080188992313428482520117814152082909801661467145487318248348855206482446493291089539800773862602027819689025830518672802988587080250391017672821142578273532251379491522391305151029125913897844287179761622433829395940744354780928251106439352150478092983728964971961110972174836145364017152887998622481604863101490164904964886603694022176771859855411716316091001887068151546626333969350313007125813873078360214826090570332323824811946094246423471311096926596054015967952461615557393610531531356033515125989089527721761082157433468393959866503908414644063840423610274034779053524153370214090276764371669151409385363354039393578697770979758853644618183517941396680313633252744086309036949443692183320711446127270549899104111274810885138258215588410561631127194641707574128019552576852292917150328306126058329802770536879937784133444844317700584918254865374306783173569264346107748812211224285417073761317801252629033559510119231229779184130634283511751134204236082802748889734747002931679395568686709042282653404892979796167997752478186626767406032186779690791321717199476688688962161666830535933141932650759838406425135400891097149153407981769083515150099712601234218893332474910094235982831256157575865184658088299486134128955386673885847840533766049052136677067447289413871361113564438155341825016784357079918978746818538091355339164644866005995101146687705858705370930558121516149324796347375736346796257701632991374040001294850739176001899289201814928708936134168649792083802807978074131410183475254108773849799900008333555428081776029285224612773012606725888843026742852615181588301402913732869059502386994169453860992449883227040112236361109962723739711712419510610035136349201569949779862928004205168250267658059628318773005164928582242568060832800449721451448771220072970377321644114163003694971456289818196642250461681116695229946468973928724149277240406069100526743462094668426832257107472978481139990478541751262392008648805594231723380881236714030570082600673065196955128384601110868564693367049699005679648856924703404863979317700753018517288226686780380695129128240418783002563669132569617403837235504071079071941032510315479512859249496914223809732765093615886984280846218793927411868070698843995326809936045085297928660689074467979388141163053682361604979742081105575002371553005410805957159238406423112673324955690577784726906586938010136803988779918556758013019302217820464442373270483253813920570612469306991959070114781252032169569129930626439831671153363050743276003637086793234562591107773257276580548485186875800483549186926926470211768074247710042405867214559537859570070641328001552641646103259758973115744788513520491183625810978914423003393164306886888228207687053167826577736714200480364868624220940862997164804824292893533671979817047548375364534039807378961147851609180094961912441726997251569353485366990058084743224277403665819792965791378551327171707373650649102617645943763373008176695079449836269075639533080867174862787267757276968656145945666661503332069401630568760791654321848397822571664267704003493128162483010071784774748012862543151911561200648250397899628559609872544774084393503413944481210504437031568076121995015597406283147210172445696298838972029906824076762722156016918193510240871789816100355896521413871937336545025011691672968069548544705557830453698303539713847364528258191863941223120100651634958699824934211775335540093344293956022368991135350621939896486464213790019549263020019445599733823513926079786712987489382287674382310823711687060031224778992126958049793711201241606711470203576928025196009335473108305218360951635704874653334316441369019278313897801249348747158057454178108812815201416415906682341681351005825737496295127608817083156471118785332440707597606225667655686178194814561999960558501383054715839550191769553332316944736816900513689514580168021268731369342759121538378970277952693779039024503788898709828969006806661129950417983581639715427413182572899153012740102302130293952216246833210794185306493720732406833909695915490233101179703410339198844527581035550992106419652193985358137761380402368386492833278234995112557163516486383247215961478502161149569672737269844604085398190401030156703918396909209276909576843740473358119382076516395798839223616527099257805948542767499731960022054005792054387523171589529199889505401978040216285920883731630738133269974482224029522789946870633417158203401750272404471558075359953548224752941541013790381554456054093770822499051071717897358568132499791746968036736252713100979434980577731565807842629324245245858360595929732139899325347119999889762495387107042272812410998361321471778111001546743995111151942881487891275124954622560196536815117431223291089698438494418825398109787330568887654592416533422996169021715068481067982683689041695420816739710206844033410893932021585058083453835008115138906342354392137699750594369116316880522717874776089512902973067496470001768397003648899794768885706036088228837001380398658061059588299299826776305472285653017948888061483808028283030620847950343159638528805038425126205642905607293958647804997497397827700208649213302971528397379809910128253164445659775340554885250755838680097790252164468063767068514220016278929922182950017685619055544926975252186176867238600699081185738316851181788693246395012837950032004716258019856167942193816622378742942783767412268456263112787343223478725036061083623737946191158210726303435317715283695170909704206186918030595943138385748653800286306493773865293616150436148124481270127588386237617218864373960001268755879875602526945298036868509917518871300562359987032056331712502606155701372572315187839654173207690960492131073730676215685008558251134951876772851100212018531191645716007840208297017684402823753038974770345712923909424952532983377259825923490348219865858728531165395414163624284514513162768205278642860525470368164177874047526045773010769649544060970910348549798744417687318675887035471875867796289851055889171398006296147722069963676467846682293390231545490304469346774362299185952844548851258347556750426993820004967252194068193680036344314439717134715025075112105515328613538653493081242245449612351526586795997039512379892162577036301052941001350132425004019486008390781852955150304100540785382526263826859851705142661242556342455678564674681987815806769116596217351122652145843047663937637652290435064034730957166412658229103828110915490524086979372137853472933178729230746341603723903546882998356724253924825768127110522589885676042477284212824576193365981086117789801826101596703979789396427673793455489508849195354241244349008425264159359471941034242710326255346016891522393084908983313534304164106848870623273227135164090650319350908898318012595739444895589931074461868496073861966157675827389711334039893640991428922762773065727843054717385908678828338746946221562593168007408064997093960697292688560239389781198063006857198404260134676991994327179560496673734367312600049194899843189067470866014539530764132096616244883413490077573489455188185121828213685907153387667830668478701299117102780347643234047343320831622692476486159172706623808473521990082752396532617854682366388817205700298906130800243170897017974308893432032868429807314761282317781923619492797391630276585708616863367574059588393970334337833861442537802523801645666291660045166313552951151439144262897824742088175403397905968964011487582938190664628332502804246445222363819899188198636689098218246056903479836890543318366037626313911942730571243835275547944884130046533925333560938974165760777297114182067291756280826189066379914470813258047399143963246244142683274497075385557059312294305243605265964544032667769757086907397938581885010945671667180684467288068353953173836368106657389581374945453013309099977966313182098559633485209345319705047193131369823231445412815357724611274441736688302560013553001267004121595109765212065299279094857494651466091643741890331924798380371194248918800908139003439028353151763779351229787088591127452531243956072308622972903772350741457384222384824539831585738867201159614760519931247570852326931801501554794959546354324235080861924871976692552425436400639950100665685840545477062789719218436875746331224534887217868466237911778131565692497972554595278475388170196198126987725778487597336159013031184280089220139295738584841714773712332601819907862571205008173995897952928264162632686830646198964660554072539493080418772024160419418059448671420724487050291198568932221512421450206394359656204226400840780084215773694654755677973602598768179987825319879755480038127768681064637493167229929215084605601470567824554662003685154240175652143482237313074927447946638003120849599337782135151310782926277840336728628190681571459240617072212774091232116155656124243786905566022952012452424937624823291673277253041689518898248348980609944795445021998608276006781588649506508034884222781717660997359797088838812345795872887564825569752175929409568622284109231713417479117020200096656791339609065634095345643010539841788165079932328736108416140686071339964759759166309655834347362608674956658440727898245436541776325320153999982783095863864099378870389016529114275059506800421636481099033995631647116734714053684336718790401120724084663211627997122829990270840473461471510059634100115072457693268130910044017310264300260278616474963833065563170518859719209790607248266004993665355237187545346845717338408234114849078091120183852275231760851821262469642459685653645098903501139720249713276287397475830805835614385839321810240650188891400568765266956132723473124687070072026663433965937213218803384102845714756581858198149545732862498805473871072322846176217760590094792278038684441534172955632532732128108765407987005204630471905422452617244079557313627574385654751355160390379623234979918697517006983977537554002895923739829417903205815696625170741583179195055406923479513449534801069258746552562848897377763897348622641139498486131540012141714437256794091157312425539156427210986546119716319438444675140751476140696783876369541178663547091750897596556841515651114396633604358046852170200991536156709068231977245352193320109867936485507613206835023763399385839635561646997608836425335149176919780625985902211450435618073156882476172865311186639199330325788748587391362228081664396233509915529089208746244541209765662475711410306849159648274614873634589655714037126980406738727360132566418368666644518133447062182418534552991033609154448020989925372981127798228668523651341238045215300678588168913025027496524950764426527860637624902248650541240076062259253560813738309780101381047966322679796985188386282370101439173404354271715232092158229723152141005124813584724172880835769784986604735507710928380137115219193420300492384642107925360895474705049238424080397492464950748627840596059282063916287115178406718831876511811049856518611126885213411995037478652418755307903688881161045682553931030427181767608865676149814159945278200787470721795290572805064238613921504048913570630423313399013851683311584513138875868942048954146480945987194367426085205582541338467750784302750271173315313458867765998177751809470187094218823149436792306383247227737433464534187833556439461176023314845500826625721676428847968931795780507517736421334458203648136472492560201150992837528765009234349507094404538669492033122327410788939457328315817976362049997131476086977016686225840006999216488551863577317886069943381277279157539240062254185204793811324739364333539582936948766271502521385063546826329253178604669770852766223514322058833278996363287942560862675274357826193340826356043350293739753504444661623151121645247809520651447972420662417099489803347887918099284257136390460610091675747973592977334352302083039479888813827601670636056826679189266067821095202970058985289160333491470813401286072990670156604889041526441379211184472657038060138243091858682443185375505115832623781187613282724804195845284149543164726109435412315304190362726949763732848275492934051735862843834401112987302689836026724455277023234449316423170643207106052721466926905428383940895987068106806147291534087505094555006211550401111719025267978562589857314211731397481509204652804486186391304216071289941709464599462389535197402997415553675873806092958400002698498250161284060442782727269852417729065425238586859381663868585896273581130899348356362181083947806403938932420798513096664554459961171726540671551496491353380483098665712139228483659628273452297814849685600026784373740615522517838973984093742237129706566837179294522217131488581471150376280817972828162669013402456556318320364101151758606561818412100052668598256435154135558700521668014873991639379782375942953132382338817424660671658858475625153472455021668851125702078487546935720148856553612994902306084707652401342683064029583290522880496455696307553790029036361553628404091617315766536683187188991389664475528243190473878321399556474878007275865008888740805572989836928612951974424784119850420897568236477074790717429421842570230502256047154754261151303143747094480033169012466497390451227497093561040046007997895066071593757547170781928773284952488741125677508217864345966897399324674169502317998742571636763135428047937718169287601258526403547362219994180635618371723772387915360173815274966223115319702354481192916047962465403534945910924418389408917497861628575553895485705609176574729083279507203927405017025604662653134114164955677926453285712061783779678709503508407828051326101326303221960000675371320700010751903341249576611533489691755502796671094819509318211198391824627510804350326248013186271440625184237060451894402566887743219141004475634367268634618275263857733560864626959810067389595806009090159601624150576585053316107373554865875543394021824785750457825396162128953303410673265343252295333528124596330323910855186342690153498785710626119218882112895053865014480840081644683996796305596252787591043944411228265789612092340723221043494247075284984229151594460014725741674832150438342498678291716704231920730555561839009459732840629254143501615156926857689189717357173376041590118538237391513161903081404773704795502318908788604981864511619903566356334752716811469396789262322597022009366365006174327910784622524449040083133808133602003267653911712456772720307207906314759128410575622055927881512805630002074673289049747485780661515486233801724689260707231656520897488887112552090237186735117409553906784126404519451619111049938165411577514194921651218215776319554098933225573330323454763334065711933791779206890616782140661464921424755639596422266613085157197080058675670205401899550489848981810887556636968836038419668317034496371111212379131204437771511626686225566701232821023758768946588791278657940884552368332408493306553124998767444265828587761993969549331863609452134894043342690856990333963089034178506243342842330911563781429062329484439160994353904142312078991416264461443021961134720520816344408211361495970460977651727442407482746692688937237090297943985145056368170745557526444874904509318838396741732654320961018754918072294333074140575422267494585795697484854078527298371038405426670860361939195068945701082791926139993576990024834952623593402486140391221845979725305121085977668328431220108558991462831533369947124061861993783785298315292253945019056785060749732068192358785036598975804659860896761113830030319718594214543591899003501478424027797739778438208703816119622663592234732645907194856200438399859777878229118134675792748642467847392678992426674323901011707505584581902945723803246319953119625313670312361502558261264481381257010593858705996895891359583038044925311604147093048141013968768201066352291369021640286392346510874797059836051849725992210542002410252018565433907723440540553597692212001962918524577275977190717556725205924359108162306520513679082454034942121392380551671989460359249072285577502187762915889479212681778744513440478928293070082654725576660942543267312758564799788764757659366928594250447620906189086119221220303165719117562301111470364072568761916544326976747340155611537464922677545322034347836156999446867567694032621289197464692451773778263736833886372865986837003179631306296166729674791655889893756715319547487333327438433863303840795839965695158418988629814327264904444582785250452923283043713223792701757276728854634379673254130313981717363007094790251150939801891750540247628288308969206124706722065136857879817495572262750706025178973507017601898292010244923928997226262993044526377243441918376573653816734021120787923706802174212083069597084420278961794897645090954742166797343613015817966884564998059048829204709860982645278629703837534272671686924812504335582370400815221285711730233447689398356972336842534127702350260173250701700600623587276201080514132808063529971454415990773515647749697286143965651350930513545380408737024807586086600796235807457462895493212010098359685332257154475248787217006003308599146731483739406804552579466941844708394812829956231391264178192280694593340630781423019101853393405725225049909240823153255948355915212155701920755852818266109555111383106441899137810274958371456397151770584875925247292637980866852016137830519679884429588900927266948863820923766816137405117609070951366182655165255999376402115653092494603456050960097585194082846792382799250692952020163617811842478228127421083768763423189075518378077087794932112142427777167907209132557011371112594803895460907159646256284498214680600413907873229980927481055835676118829236804032933616063793935224054952635683041203243077047379581985015305676947737022239674933096084923826424366146315986490251642486055408246905042644641878464288225080036464825339790768133094426022243115822354037361530840859236725139203357533591984778415104659109812884508313730598120427844954203429927825360810696922941697295931619465656013175959552474145228193338326712354699066342004728522532680979121598605993629116282879382289473403922107974993237497959346918143427566249250505252931772971204814695581043755237358059033479766837869877552046046984896393523147211701903738053913971846653551927411911204870649240331913785440579418183199933831161657217093389277553489012166517125024759794144233862281344785274078047980483471538398043476985574770268239987082587287207247518521215714218534611743562445018181097609133026719070475719027465948892804989777052295041936453514423303178050488628068548861756115553039595567063459515785508034231854469524656378123620720868598597093630587684348123555441048621235342900118863253155090287805767354581962149191362604491131146564442537142230222721136602885305288393532420697272114816109653128646946940706378277034338175172355921376224359909963775832177644171266335447561405418972653332402334121118486418302169021296241006979735195881099506578654953950833025692383264966541657776275004611349486257133854339541012923431073348748763631284253928225032927807659392526343718886216778737558297500745149266737367617462341965171917941279285591934734473280392407295423549085624433355502132199272066839122998751026384244805234024183556243706546952724851407461763684585533013373653273088546344283615878698431684168114417142820586286598581081216699604765430134219710245324407139210814677101367961180276892899889095062722621511078720732692219465896765910005686534774296977181405104549973945368016786763594104441018979674726319312555578011230424262343958987874431310035167263234624798893724556412276559466109641748616077998142217936828555720754598773720465077277717406605379751035101236648254327649910294300116854905637590311671703172038143600066985860776446224792988575782959729457371389842410211459169150994346497396670773635338067213098823239158685914705102383258503426989137360746870940680722836678914907427567873478873734084897321307133389048063471225452162952128761048762908517427345177604246334543741515499976157430003619957269373612790847463032609497314785876455904713412884632749514710728204289734641557346876785851074866326809373360901742791144211712857537991933002719051654560343814551935345335479537068837349450489003242657722669291058845599888025787619002650193126907936595056033798845887176566382061942979136074376809780586517453407419453435539880715003425544631117777678551348376792269206569242193659227870620721255911276969101633046642961854155820864364146372489455623099360584281006566356815152424664278723503137276688030887730153177875494915714441976992278312321482263654670004894685554153789123081989499215972635816993702748392367527822179396478484201374825262408475985225817662660989720299408116875265498487519544989665642866934013416826062450427478855151755883603700293621466527468111200003163203613159799829289733277218953388495176421192179261780016158774154050212940228681198251617862203381131006632861253737031325925311843108434776525035879781323899507295672765231147033543785855282322345131635384563024007716239589578282344880592179205422398037350371203012105900988944364118835674574843066766165764342189483385636556667300510619905594604823377467981876414623056485359142818954911403694358863105612533620318091781889262658992355039852814218012497993292588137128280849873935775873943682937992666449924596957939249299454184098494698551103706518459372999311572092822831962508053906735602553983468630041556726724563792779919458529156450238897982429142057485312149990904016954105390363171267153942758857433822245725964824423333060133621794919566663239410034920462682803550731005812107877361031615593358433544342682387502260547315282420585547453461802553605287792571798237333548429438359313625933643920636346529230373288054937238912051648458012601308662933901039778241553221145458461491565136448193783433050836058301064090153393380142036990672284942276126217898423106021043966359729123211776138739073940976014868134696841320753250257270658604152302706488329842522687366937451055940078600836430874404730214662401551680856694913736895416217429501997173302257621607365381047934071187898040551994520553021824743413263130512507350296036956194115258459372948078194644974263355365359090973214164208788868183828785670190627355966565112351993660824183332097852197149231517044694411838444226635565083639549515989375050092438866125985624098507286229645728997068981993572720003988791497661120915285856307867401393438542874886034567115734349274811922231405940669837303485147579502387669987539862921876853234361386514600753667745874868224738246168516907096627679124196999812106497751686675257618437466985527570892688406997230827634404585208436581259089558107582957298124347454800428321860829848088137089051745868544129484512074972070772706332984440631954192734299810134507907607095514327117769640007324223611920223402944281434047511845025485826512802157136801918888602013844828067297987743645791558174948429906564976010836696411910460584692656145246240292412202908944355627641881129019904615854479554464607398183823711609416811934450763124451485506764726712332727214875684973270557927801685329508931255121271877848804085126721647314733998871777867209077945316917629588383232132130413479635576681221870461134119667207595864524299360962703507687063783639551091202722285254188663114412938959435427969789436114214642636807929662423337069372984285784720983765415411638669006215392736060456448299511332852537566999655545510520403459002473912547587541810695732635003465170018962367077955861337879597718064679029446362959528001066520398326490902889959128379508628519615445145395380031776355030359804952816569576554449232976253014591568426361220836967108887654066075934408483762255609007721748570723915842894937477209923928641872466621410869308190876191567347447928697557395319808434408079495624080229964647853706788162736955538687031256790513235038994854345798972033952623144369505949528818118430916992373063666989076291556678745700021140347917669554959286920122392445023694047630612678921689729052805991005973502123580332161411572126180038772030865895876259192961323425861965900415377311923698015464100736417113939720868324326349491623232568135581323416455877251885405912901006573870910739419425070587398841982306254155976890719051553110341357913579606252247184011235873192963055561771036090318600790603717849961977628334113471461641638374425953752986421329358668946564582559076977453027243513169683615532343153010820724164032742409351734519211887890093988633429149450127855989209303093878894049666553639083734862646033547943891995037017304090725223084040272413085310387681106906980933804743853282988700560293048943106855379260890714901795346741127174272662404605841844406179689756349260226362946612114510806663589807478855269658485157760127352386168291346268872601531984654971150219096270473329739472796623193763611261237005555093689868574843518458103622546761674190469451527950842980323359618071382492619651612515534291173954126576594430810217660249805433684934255842757655127769999697947443604846426648677389230764864608321785839870009578040709953645982247582395001690835240331076492749953255663138882181890582232786558499721266789858240098117824187744687197545243145625490270554478033788770570859638478513889107284766590122325558506326294968217616310716871618398788727464383970334778720266603690469365613334570094256990400189352276137163803262391115508430106253729822122255379680699027529812259488629625648226482122077187466247205891138613170725001308644831205108416225794953112422842548311288160524075097727123865862288135832962579352005215789592542159739760735173744185495267188325045997813748193480492286449842621429520862354159381931305621966825554483555007963224967795917125504276762261807416943197673845054344661874214165365416117077380717118392420925087119188011740587734529967796699143695146478029701579766343143715543220524264639870616479514160519530720205865451434658534396001054949338802154007467285827032059469808450401399686928069660132522211564077042010611655596215334793910123097911113940245774557251861328519470140792608133000602577680213936865274242911849084438459417364322942921891628830017058072445275687487578474814345474924995468287412672648857026867009780797506256486794502206634058198352690598135802392410472685950106860927503076571588077482957540504848833854211985800839292234307073385720559123283412960516041236920414119089768022742922875269274332804745400138785307733827380058680976013225346233213467408504762155999292533286004240715602251511538547826423846426661995632497203084628421581036746100922487551371497696343173744747195659683229262640842449742593302242942178649531058075857918733991318672074833948268315756876528126744541524682297593885049424270498942470185418499495870650304360086069449277587552948714906500197443637729172829319345574713371622983844172807496307569916529059057944641646690640633533669128376152524996414015833789443735104077262083225904954942313839829709279540399884143626889474421342230830691029700132122895479245724536779634759007707167985383642553324948132181475696700424296111448897699115537522771924214142120747883756007474217676656440648200730520659296715838664073469730253166355242396776863089429721447359500020557697742185127265726493672813752541460013502145113524768799974983249697366360961900236180083551747160424952384585185471578574263502990257085726914053322486757941128393143877950694695606128305250177633921098851212701441447654232473927619137818961388889613812883296367533598917944603673095163927119932406069160509178863741503599713408600936766614354513438465262174566218044629073354728609440636952425793940382455251679998988013552888924580373369992725820456369860610693086890108056930142045992597192999557687914824981420837788963479971525811042005487379585943678480244662244731545757171876134388760012182099594478814627337232390267979636818284591168623097618630581141117109255631521997593025108826013567166152387152390051152968602383106208401337917067692804024461533832932872816758368778987959941888652409715765269938749950830846377626464016574933494384284527377602159157951897904269351717218864525016382613428010200436523263064168924773769956534925815582289371099024556463280466723452166419613805651676254183342815207524942438259160471642236439144091687012047376294264031468464310097307818428024298132581690852366729288344974561206709081284290353132575269937720495588186500606069187236481866803846845055296222378967771473742096662318782658072399728144754099572289300071609439379641891599039939737341852976121714658734269027351149651991777057267192311013637715320655287657074887179995131691565037724311113112159627142549975990697272284618140356346536906022724690260504974925514048564664233536885080461085306280541682117042534301800069690713941286094002782270849398811549751508593087357752558820985888304729937880324047457875101110212774526255326180282919555548520043467332509350589303393934394957315632631581239268587873429513575830887989191036783193796866695852843806899532176351038380749804828193129918059572059352094080685020074373380654747620579743112643427006648512227763223352267597129492876049099934278945462240904531264995768726830430882771241033147072947030109367205809153216260458898722491541613052559838675276327979511448139352296464839346329647464547613603975369433784425039443184938643767640155838514192767802894491195089097596684696120669570590172676665462260690635011604156867054033963939498319347389956436399024232939235368688379962064058101283386286807597669472835818024616371303507540065060911839332650386284146064040282069633925551033690750850417383639152894907116095200948461505749169172184814187443697998376064926262578054414216288806378636939317266355804109424466777737923199405818402504730758877435883680978478920793790656793211357993213238011480099970205819948571049340980254850274958430206252421817524445954067439380238742593179165753888299112556343015846938043368775644324123334079148543425290030035433392967424586012423413299637115550844855111782268108514277294737138071383704641714057594946747000523994738785873049493324063468246640564646062542463054045123052241097779016698514909017465054331486226287708948774940868178776941441277615217396834080808351024262643254927837132288933026504938837022760616332092182103857232878405829362044811836472953403262711749024555813449249552350130503370811501058579672740476021795750443784482338025343783989644739996705023291868284633641331709519506310260612990719917797624246997813381033831284522057106869622748604066777908091030927487208745887121560317461493204111173038843793018693848420024826224590553404373938817221936079084910969753637639180803117610850709810438081079345271408368120230818354055853181127969186284229430937508000957022067610045892117827526680618439831757393831497904779662301620975913771246559516762754218479161069877728218675520654611845453546957898934935490351460339464981236081127931364883669957829890608292385117793419079546458005210938502506236821642973794676286276258557759528888265459978567613546582731168640792454937074547765025736277219116563878999961989905089251250309922541593405050343899114861818886642058141238343780021152022930677807603765769883624529028183059014019096705652102327108139740501289713918099873027516940887404627703141824950319630397608368289871026134165461699415445025203500943793647094419105556192275490557051998604146005681523626603131737038843319715141970935767845217041852399908180521025293706067887343698123375584560765995284272169518813237231114254405449080517849692573810403220619582790319500182573809478610266970884586646509655467959292367991900495616141171638999701275585112553788483383888117924188898745758079496120809878788120694316317064392692983207495104641104805387298860795491565286953596903787323555858932616486290919674349020710598678795530900622571966372381790651806492165086398943751735914582437003750081489640867937874278814746621397245980093368775298824884044273677982698754884061163650757123900403596813515309422836595460227723454411360139377260890989959663692860783906672267609810189145294670398236078563343847981212216780027914272944803508874781530623054839394773948655036342068789726858479835244576111981391259732862541657025644218383511523146100481926774917285867337375766518326419875677915123439641715795574809943987018300602722606625208712635502765271423127103795083082894410657899883557474456242282362150317444509188554017722129267708331655109598021046326718678000374606073501709623483697809769897386907437356660586816911389940929460358475797632483782046149747462589555197994310020507276417160698207481061010228135639545896776238648575046988000091329073278009199186624894808057290065841237100773481813154077420921693696776683305241453735506382157075316985992658257604780933814292477312862249438874658000994430658075934692121602136587187473500032012561183228524826190081155780523606430572454730912839613450845878622792683336934826083716794373600709327470308441625897077273250789657931707839152451946485219264100974530806765344297054002376130039759428683586725694867067979572753581678436366455589577374536484362892207319897977868657315582754682488027312775221863194414447788229721508705323386561787779547617728880136009788394898927768967160237634265797344848130715753349451198668456490389749621295292114253913569708384969743398306304775684473567250458439938409951409478309969096514566704640298794424446459944442115823285332609927421504295968032833752254128419495152596738592258124357380538891052590854229155700054019563314215200626983883086740414860417566444294196844029125533143363075528569085458178758088055367478599615164632591165511054083069061907908120311439441901283205661944064187462968738129494872007275977597909460016272333493110753095735617651386660111516723026399154171121818965134327574124654232480711002790318594948830987104142498218412616920581759103397657551254121000836801392762048303360802844120081458081387181889990758008844449970646172472107418377547396735483435394133703284250513421391152564353625937248040497739675047464296974977880437271247373792890568215331876383088444017082857491254785176052988994629605793117167090088168920642099994025425308929082695456726481977657949858727782669771172904956242324025481451480856381670748304956074782025065803388490954922157212605451379899973857704517526974284154246458580108870736119954688568585648266864988170076797451596519794833651877351801080866306126935218760860780063347211722451491560091533275629981960486776287842679700074602550292512328287353257248177990277230213588724234777703278672796250240246394558603031734227559832577912555168108836103690184146989422125646728632203941709753312831752202212919536987165181840231652234034031665998915875716815496829603790513653733170895046492292467708391579919573285506750326262652452588847628839422002047206546222353424623866531900994367584804657837403515088919789141933270746593761214907001712086952940290503719950519244181092690734130512219751864018156537240090783477097797478257758824488092087540004278651097992269883034043300077190574966727465028055198436553595413965543402148657257946449847174784105187614723250857294202598616905576705348062016766122228500736777485312570787622688988296947993559280152058970779504702771767213635166147524663506478665801571143708778060164015663181007894472505365869456895025823922244721218984570300102621576980674313094494020105319360624155338674701689286752896979868480839496075851543427301593620531774954254366956872421620910419290057212079070186150358354616924835524866894883558341447751984296390300154856218421944209635555337397209875458040907072547932378581896481008126569318215982798983598255029180301190159075895404503417802590962831112067791035334759065179009193543639439383845496793863047674126776691357291872448187375578531209228689643655543058071624627904860365986766146426325679922340672540249573228012869741623263829982838972485050558316888624447366272800698611348807877815905431774507892196853379727184298654985054447863054033369192955475236592981273388899317512770909925422887175251715374691156785998478819835526962280514566704976690490482731032526105155114754705443383468495177583489866910903523368246240909780231138696423885803766192181899865031002555310243741528994357554984453225481566520593096895956486198792599134041260030502513740883628583050684237535506159720966571475559073262290526228535988306744168708488580279084628010951608207667981631295363815419481284328186162458255774888553039826187559771154867136237502904292750894930787285223316687307951675670686997659314949832593889643513225672917925056070840161130357993502351490912891401129177915497395602660874085911164246151342364735817767959390630523293339287944390877251387810724301484126933090390369892668070816368590775054276715306400889299659219437834422084004998457642210229802516003462650860637479508201904996727459026205097563410373290519774789828249006592068788462317466549694598960169590010674359160696069892119250133687137368835526630374825802646708737125349236772627814117218599532813624193014792064673663501095617381549096988422338229405693286560836922711370803719076991320632722944563976740180607669749037238194089500661273615526162305127740373317921911370994210690173647703517353762986061599071738054535814277213805003278672723989114542541624056314982850563040116551096862826361681879542185940777419216175790636344482353461560568723839256446231170820279918343380535157315687038814429710147619071132713719568812265491184864293398846605305441470706568802383619746496555462769838147954232815414258881388261933835257558542092372037339578021055614972617043781554446074970588569354088393468779647495394104464002349077727798150789035916328928583016898637204714106722176350438564171316065211945397733815167045944168743675077747177907465421181838452170550622573792587026866302052988202927987798226512701825344482981956710956165655127720804263798951337479485647146135585546571691376891122910795562043624968226168741978038220131805372210154222624877644446742242223502521244155298621054625007625295109824049189295598058244263067793066288044012828171803712141620157377083997560675706037224979783983876640141958241553493863381474591377922630623670915833013468860903774008580732644485576664273593510715497842073156174988851920949531447086159549970849428842437994839533343756405124685955604845413150993339107332753803420219257218228033448772880849969836955851048671512569423964493424441996875692779928288572382968476672979223739388843073381546578543752388911248137410902061607799204724076421845741045052157830265568492976607664436752639638353212230635267720319814466962539031915420123033239508935593443592641924881114177210713614122721797647825464978612550478651429276471977846510818875676741512152566177333994148079844063394740091251798076115196604010430639182817624385545712039242698952867311793079839782876068682113814381668372084793189459865828889324151865603476905222195679169278844113134347169261831388521543899500068990980036497038406553364102734928016101561980660372252019572492345787799802277108206127653933549414017511160788427172455551871661150331463678295456025715443157352446636905345336415857495940896734946018890089836411942756277695851084846376912689656994456972777915363331481643491245055117899168780317604072359826924429390138655954907196734343506327596837139231379289514205929348021624263598670034429106502459147627502393862434356091247322989999220204407014844164467574230122451780006591993055021545836839605123773906371080346754914893133153879094385431727947054497910396094301735648098529372885376657318126950820009607293712387107812672387512695268961869841710219369335937402660483427899935492547284496562437547506031551215187152695977774710729263275907571038892166488870763379590520635200841075852060451150145320191133519260910627110495198694282186760997031648249131809972239672772053633703355772461921115960214076939914324324690739039655049111059498439003175767136211467448357847800331752776984322289900696404613476177159442030059158322402281394601390216303569440726357808738310494118436126617498853723457583266422534872987750942006390015197824005748717493638772259948981721402043345734017797262779886910357953673086064716330244882220455851443814414182598808663027103975189077460387437476017126745840868480368652723072662803972967768010350236682238567341447198413695177053735043249627657327383145635028039527802215225360025607623945180006248024794368341187842675959445323812833485391528806206545336859242560356362196243394458482218048316131514546341292602585830271933627269742739414907296830082565011942591665390549714809854645384111503109656991303193949210658665454643127615664394741644577417914238894431051430450347658013428888541436715775182154009644266616246509337145787044661893250648894656145011947307314714160080053184796220296461249595009086735097124863850306429166776145251365722563714181180320330265514234511941441145015005928015341672561917663928275533484896880541117429457847660260693216212092689994812955109708868856691363999780882760651611390139690449806787090052804202138978329167268866199066634884963244687099122979180104946479971767024269403411070066882230121636749276413456232498528519948749700172095223725700915260701860712210747687116325255215974566671482886232167561200309755030551909085960300546233322408719174698314800371641345413816961981552383144069265297304588600724972309561319029848960728766625231948441131570121997234944867045535370369919807024417789227332858007725266227855748776380524417274405847534628773204415813744239196151410448106271762965365570305894853841036084570333925589525750367148289852563773464845654068682223673231722400557017925586433220945792473558173505150050490339584603933761646466471879144835229799888544696488201274624018218647780167744285261899088827265251059800611698115900948659394863580435918018495854474540309712162005481554309074663521821712061589708907412611838494907834067807324669889067671851437082452909606403533843355196582671428960414205202834381899176777478056381591485656748760742469884955105265400925095038174880584325042056330663243692525449854188287954672938731902117339882039066270216469227291390212137067836185278155112611645334197162169817697735692824926788824042590665670074223489853948995576297467584196680905283657203073043146876424850644696429632468447944366238060330243566167015172284936440497319789348756172294126192304194064530488834864011769353860130269247750179981687518624910037878950929042969029741416672429251333609753730585264102354927457761444602793327594899506114090098681274427613184432929268410594623547898638208029108994664356060629336400403838619232512323929824489343273198351605321249338493094391892744847043452667093976746131678185999970710902026721174716859509947328252546097510814809595206359434515150638424169446714725308600588453306313924667986962011050963476585550460408537093588474130720007740473993227085447874879768956292611127809757999200488604846206932008638473686038159234564744573002764912651692536645550433477589052307380414633213967815363259874639384467441115325464038029511110733647902650764620815505016762476327342812906178830753359858283399678525402958137981780329421779476472883807959194270140491140701225227018170759478386245528565872523163179487285417438000896812877328347274147931669370959636400270533211307255505008313677086195259511168762493505742689181504402326613259942414500909845888600066350647385209339088268710171378460488539819976324600684541250594950244545614826533507883742290952670370033402115188652225427056087804655881215836188150949249230899912096186601768547807356108505287187602882983926240040338105720969369062935880971413621600446829770261232338174767315754618213866087757968135961087240936469530614194230785694224179859542216145445855540605413867346476500093990891702773171663755229866888037084338960033870078702976265871639574423040802417893870216498683787326996776586332263252305422709154272661441531587746428168127035037473781384841286492483643374297834150108838747936233421869137285128309959828926260168699429870610461830408559807332254187720182533737175537629012809432243612511972847634768615941463226587925431755829647664716962604831994138513347544050666635877689142046553913409499104940891919345786806291756397923318381134536402213854713050670923664546654224160567078895569269293139007058653051541831770830926732139850380421495214991170684702926976692450973269608991595267739788062168230480018757992344076950692428706594935971316903615536870344848135590494591765986942958412021147451067025341871625705307526581096655323504106342305567195087990023734582803901684612896311927824847053977366604285589200072414583518173244408197255188249252708217945083945209843630694814219006351916619150589209612253195454436226822423322542358332828474519095271556396318698325053815111291390909839589757923371914132238845955681889055043634081110767318252939015375541576017595179379603046042510228162246043681408979613938174223252275359910653189201638871410160571618526804726595742002426483723902066221454553005927132980308916067628526476286829124882494319091206248755093946847024634128005349864476095541919210426918608559809349636097031174379105403075194964087983842255257625275825227203494896621220575670028482449644332397258622215091366897907701048365885319897524066810196771041800563255692600550238933545328423229212662359374482780123786030633363440373833508802645199296310965163377767718566313303312245264917359656476438364878835601540356891238416159693594084886730684133969635784223340595597626796210502157399902611044408932778510864657818835814985305235802530998666015230653697808144196176519347240499554943790537334794295272408920198596622463706504736539664200231522770061512286631124834660999189117354481092344387033885444542218398546627327213767036110905149637272236903168265163412165488350042131930470125733602063205101899209860202700344053627790070494964178018915824966299118888217458968212162472331179659402593624891211829152660609444551195039645434412469158344581557785145255264410862387836358779083752267689544946486683029784791861086719144295386492412577999089903762268554968698708147119476132320709996921548409725809920426528264483840221116254309604020044670069994105523415708100611091044808180407255707350977938748713408818245115491324766633981759483111500626294774289313724707117544733353004565641007987309218099124238693660511772115919219114833426573183390506922918866590464274883278415252000853233380728422165083928608102267271053071723263719270573162964593063442110179313717097708590265015511484847911416043140626953382223632119578335098309843321048435261090904030439090995982288078207387760295542356596516333884820729363096735215786951004182190821598324149634577863331127753241044159838539568424756364663880999593968319451152274267981782685951806276002376561831815920801808694661006151502863882278694648450850515357863060270784627060368393192156336809528383481139149687833394046533550560948708786819686608044966645046116561643372188480182468482517819800506142496462306323108269692259398153429016267914563701925406882079829985121150470292514996141412478904452771821517341497493030509774267866440980971908959270613755207093401497509375638884859812599466716247644352152561361913923878428960765936485534060594181656221208697999183176985876498373329738156781047705822297982252558318624027017495092309933180257997724784156885853311263966669633637233861562933686603807723335945370217626350066822275116065717994347664502030693299894570786004952284106907615407528737235632215658341125627131150599480375493706696933261670021586910561359440886119822733466578520310379672211564303621383888233687867249845122583956752925367154561650206110591546974095302418692494811223171266867766514106752803101408130934950036335445472684517166233350332879706353118239899444616083960244705179354850997633367874898732301018599980718311303861898171658250270086518416893039787313072156103842024836872270796301376314377552667916987037869010803073072355158711129274913932246364119331611542594052527274004349003157635674465211698388579577435453227423210570687385781169333847193181172956218326711325888358458511402851056083737870841792675305541446976456649329291006353671615656772828701674617561300993384501320307136048670591366381465309147735952569072300995753093353341534750914278246958178839727886450398884489168659606508412989672888754730700134034308086908537430057940234275353306764490921118651688773156098934816680207058377566001926540180799497613245998085211737231146606806718515756002989230320708060188725699114895709828611723742305861622259794702422131742200493426548920724387902563942412607141977858128401984863781900800590510321149841201970148525030978183061544937756070451873663412479809075756342161977601120676728535831430087146116574266535887056945846778247641216901516920550034614207179995005226538806791326214727827630810806820185660029048231762038959771516749930935335213265247666128815402508333585862730100354693076369445772431267669737466005747347730107678577961308525373557164171896374959208196743643169943730760153261148952376315392882303782279664016408653391481155461196935010098557089640507224448789180355318626403496652127116951932577514518036050325716171158118617644253823162860103713865437523082855211205005819115931663667385366097206065173398545507323979240578535349135022992353587554209898425624329086984389283615820451914978252194513790862273922203975480001807482619601633531593412659230658498016005923000235078011678574727187052711363038409495697642425853080232265095803124687124017683627960599667762551606876840668815328738353874363374495461973768101069882933997259835244705236356473640030133733683426694858729537805490907345377805679647683575725900143588179683210791144117136566680939813826501786459489373956372542049696491129422998623070388257803131706672225387629143243307299613093360375698412231289274117989645568488766536580695458418026941235900566388535617855559644723229870398850522680639048251209454283712239609624506917576717187908863582462298483382676642174657315708655515410449042014160831319168111019125286766091609343539667892408662956943559848397864062713806546733898832423119980179003632632894067544462335002872650837174612532067345617295945556478228450281088840610860978239975990365655447585753092860687342933648708115698086181957691903761554804540892504163654785101785910037921040316394196516056214900589539581902994965909615195675301736329109401511668096594628513618594247624356238041050913455262682282958606609130583316465684540687365085485378695997943126822148112866514894374772173108284462898582201153485339795347016795381646494451680816068972102043820537767163551598143027795808832121809269805267204064352758057154731471539129440385680023119515543449937667220085619449622565235513853708651118760335378313650431864927398368223411760191627896040603093246535210964479295555066798890720181755613199940686239720737679465684541099771159560002654287780740080818069262831597975324532234574895136045154665065240632453005186601889277335261495677350760227622402537796040927190120011626880197600189177391918690505788224556146491107558860479522511961315774098547873920769434235685247653696926267691215359533874035643292062233006120186414474744354993795131484918685048237600781093894467433368198322513154028700731467837255673268944368887312006116273094735703968078176260352101082608532671522784252238359018159914167557221358802510875786253558851224302812136296539436921012184186677350127118834125396732178072592821923691615172464434008453049376601970536744627516251441547270041087886542231576067883369386809454897181541903915893755323920312496870429255615087776623680586276032046706383088835243115006789124770773508541432187599282763503678681003029493163263238586340562310070225443486055441943891598532396587583472255403605789876485645205508302858286995088360671642991337676336183319644933339301963858270970574861419284648472236991220013572121616728894127181982111719025652864474943010562312288598096406593698693126306032683835316325671135508421022031173787357747228327623469168981255479491481381067970129576829609019563165568019856535708674047157068769761892706490230734841422645401647272526666952285967072697004095138360631464694211877801297181777499335417691973363686950150452725618907462475670005552149678946467364784202658986375213492731587695190993625882978984364815192685540414485368061091599710434441444138676254773147727119589909604773296005704135775467158629604502729432000965418121157807074242049664599742826663109579595475643851266617786011401866268086065894484370721002207391681782351820876376023031900071963323374795530427435528364751431342743364884785840215935681377271119044567622014580808508198361470465608989111116676259828407372202763587835539578738983999239553093318907289898556074939739299672225722321195467647480355637200233213094286557640316709927584338435531715133216801474775816806225799071738525621879117417004481354845781011939203529993726190796981016810608185299066934824838861397903808108576214355596341994272952761036315456813427272632184258387010114385559089587252274722895278468370283969985013470038664116581730269548296400449881396493847132060519594007251637577175182281048190182635323355718821736439905171901065561105705769201969357704806127909395708314650083694042225230255141646178533178318175989427761593912768271281421492980815637660509075257549302590522083892472698514870335553629541203114309149772991912306814816365266466591118503447138982933503065526808129204643428271701701004825789024425745539733472069067397164726810238283389879422522322275981351315704254119695753754227527435313902647344054858501590786720136081942770246295534404228048589080906808886552909558607962168420281501929258948272948563719736391551835041804021239999332202548534209359506431741429018067806739693145471787182774074858739727347025331465047415972073965387252550571761456693828084689067791376977152663974092548359535813774194640237230808299091074286877115380118116545291507470291900501124966935550268372375287027584339207694330676688610315036925304654008649016586626613567971024526368311510986919846027816441987693276176021448205830174873481567485780042717029642761450199352049370452604425506317059918315133082875282327435178975847353262051984035037553498400823604165710594807884576398955194120164235445589517750967442522269630541746039376687900632033671034274343104376970393219628738029749118861080716868185751478598461399197160881531959581222576236588087330698046726673520998545096261900994282144601200644353901588600427357567428088376422024689457313756317190541542697186909386282653193636099790009478054319651827193205045865034085442111252435988225414130109658986375120550087351351670668255744572049318111021945538496174444638973917452820320852814298397226432423304262662092021118515238925011029836798577215892467926170390290134639039787444449316852787875435560946213238216094602524903819609226094401706748575227580421602134890690491931350254975557908757132188953282903302893129032963563116723083011446389866420589538700418818353618794247278581200801124025624872423881463322623656517785096194747547627395427959432411541064146464268437667901027168196653240235889523321609898186129252641908373961228083897383918937575456587195873950741245223314861022795381516325908715519060452871570580129443532580894976407337821138068964106661815090211810892875441332015157239481265082578726404206577920705139062468074604665371885808111091989805520917851475528067275146823473769265453479170804698531035620802106764030958695310403630581050102018224290933231518925495871332234021826536619258705498425412329090600602177931731584217216316654051599010842585439557001040497551220300652908014549350629185873787617130342447062409577875480939758438321454372551885534734696533341510926570208515184795724911686527089398836558719993668179293590695762864291125709936092868057575021707700385235194999225254538754544989810615126066349996099619581535533990005616207207306207339974359249718124401193042882610136556831057798734116412143058268164244422356870333200109935917370546592799102842689816914864073676145154607936064151843127362072798420259965677336370584274095583897206413177595602384212132619095008408304179872692028041873281496273347815425109776527248255492919767072197524717512353237816805662494268618909451563435160129576261360553887202873539305153577914555442043497704728421404418811662544327883498459665382883656898035163529362004501583910463058386985937010944367482924391681354314721915159758425195376945315225185566983210462491963604838536465609454749592501291855108449790627287761460498964526930582664219759127241359758275039443325727249318910827141378463778193734434316723101420224399436691296484751078926082031532833503842384492209785246785524695984332668205764834059120547596134972035511536032563790508048987635242295410769833151400539931216933620458292156775566397463000311194852021574458450720548099001264196592653385642500931988599121201485488592639764612263135865238036478362530868591478549040675342956133501064010002503191443659912672378681854556695764779938173667219027236592754138750374144112567696997333164402632219161796306276426334278728812094906559264829051097580447904633259706901700564718634079353888713100722691036618087242715396147427215274292065847271288580768029667231182057252265383880209916153222256356323994647045769147486085734524204374409603026802974933099716008681337765516461287790662096510752221758713070650110525425730344803909732758708452660901898865793621819193761064888590322885089463021580388315959425575522028368023757715195832545969034273795530568622832738794080298346385695872642697321151401348165581155443420491405406379088846515485274931561062121077468081078107769278678957435952812356535639376166344384882787158610817394252436425506786214056871548080068302536033897580659472214246265625469408033509292875216120339291688141114203758392166069670010919122419275420149910264801722897240160858933838940795813400220432042741607002075177948113018513231951252721547069751488432648294260661425397316068404274744513206785392210271473891515165887700072079091706377602430320154880311315837394448617614096547597032455196704388130201984723847552001891492454315590209275996547886374909983949449933783597701159691398694010932420163620647130890339210534605006375646522359724051685946239217973567881400991305908613089438922820997212290336983736844741890036168679210606174480591938102628415933755659314867939724834194006828720364091350361120563625412325572184840359647274738099371916357977485206558502136403634204480691242554985580771928718139170975290612968643957100501040551077865622509944125035603481432461629798430877273287973304085766229842019674895180335655887922995653146725930981435629393892824873883856059979550695043523562023698008418361524804816543105226369249450295052154729242661861192918166397871063674294137222144553604188496433686635384397274832706389104481953063843641518369563561546803079443483049875060944589263881073418219934670159681911314667081223197706233585308096684157636807522648446434472312503166961547674705019079738028582444309375376145974775733993369195570703283376772809878641119844560056109938895606194738693851507256110494580969056918285960029770847795918248176419568143384427513876657753871861617227444986441572510947169936500535148582214207462436704217536588356938899330813136697018364634017216230598655118719433588855799171183460549324542187752367918806111838254670342420153133849318927467996358510784659319899050988570478644541666651172417732238240133028480571972521282117023694984001417024641642214296840583045799584311742859346303924330920895536365562731790589198605714846250613048774504484182266532851826133535908138151764372991091623965345742837528392680815345720774570683802915582190544333536537788327013521967651444100294416875838285561903887329329847525368104740805751981098759499891547872677353154876923807195592837370886030908226689873029669465838815238646330908548007593593556191674424183181342177584395318557075484278447848533266168099132536084774583130832278082248509938379296536498433531978871769768867071634702338501540133209338060928950324601879021217362567105622312648493478281778937586537565669305395847979613193728027720847260673608700436623085682425600164395871533453403291217977435457827970278006922783816515097795124673960136813132066059383451888723621920144540124493487629855789453800065491175517244961931648888058500078628395699950830858255197074279850553265029400363041449237300760028388954449361722140909489888269047115071473212367104713753801337414228072703712866706584138871663348788162845998738629304273894491055301556508628019544603720164766404179904353716082893152388014343466348524347272639221191337297812469862712702185108867980825510341058923402941988293241842468571674407954192077932691724048775891417943960746230385349713685357191287533961372228697808287519873686604190344419503033987820232990697425141409339557705070003392440181363985921022525159338286057466279638793813321351054539635061017814419053495353962164847736731450551036406781715549622892914355989822040944175355684271427990301479463006817668059324100186525272182752832312076688687574196227461984000600476292928071667490082446569280904242321451460609666630503864510453278460541601438574550972963849508903736972064458462497326657844045455035092485816931403605327805866726884397112623253725544417083464505994465987330943221487218213406583657345865223198588798568591830424697731128508763679831242439813868498855813680925426344428509112666943848196132682365333953421874143473618954813398785982220902487930703389058739505457537924592531434341063220143691969228284828375487446725723030943949644576000617380587268582034125751546469315285708792650347530709421541153960692169212431244245080478490593290615920967893230466929559717342161610535213545866127220906324809620374204296858230377243310012100494906274672830697500876067489587990873238004363116072204244154562364185630238459831834091253256527192171428451722086784712713281657451170167869254969540670894942068530509252597927339667901274866252147357821974152369400990968726083528803415266880337355746413064281917890390139273881436048329911964204082386605347051583582670251280594777355835302008748145969446766273581206353231339300022130794051371143353440986643767664935672631877125355053698690139312543169244531102821831260032677690931626918746001175475679957388013258580239941452813439353930178472313178902777595766066649923760237679245728640351655434865566051523671014065020228682958324646729554079199735647017954597862670801705292438110203981610538177382286156142233515657914287379356708525942383002087824395863097839061075895205307454247060288459448655018974161677141245892035735941669436588278167016419708658948894676545773215009057531261595227970740504834596221967037448351204955157912435317555859614683340381926725134871007349664418976949984583306008299575953002495194065495436584949813286844256982947077982609608987334474070792936009528802964670027123996496187000604222442462015023181783942895944057720096427052117298826315195451730420617569473653165342477959150546895578517978086847042493207535546223525627838690689883815865333640777754247965486699962078403526137992066537531399130835816046688060706331426206124056896300311199950075407817774874283008714106278556416420554367787767212728111796874415485306759283751708612215885819861180385236954170517340442230395491175300233836748389036735184235861936269827947106536073855563725725402419229795409281851158857989440897681625027986209740776758568611774436385477143332414064666275448192945603352778617855719707132836062186281757310121974908430341120246278950700381146536757154896761885463349140618173787494361471182001954497687456890477451342635908148157055854389784488942715156454496065419827809314248524702990491864404039191925357661216579059126799097552687965712877422368006336184952906653810699319637532774989222912961328410102011293070430062068535984014905304161976558221583311590173766756045553226939073651973261355848028008120551142338652113524154782446048968996040555807945813496956555811687107586997276305182048293106606393128682226508844315264220505018814160259218875844798381300612967446417398104039265834547800877256845436522236246740788230305408601154058073189167617860074574045210486749468809211045050358429807799365704563223585533718394479042287868127218931583422563240747855723584079865623415494640161145096092986014504938693277821364961743146538185608143293531675998037940097204050501988368570396179895338100459419660640621607002377221350907478450521232173179057754966334499847456373804967718012410676679903006566359424227021718216902870601016054064567027248995362106551818083778810294786275433508328315113479003079556511466020292916744014848806174680685977181646147591113567028650482440623418155696693596255403150073262315902137528152739548699599463391481196152750487578394349464143551297028647645867527799549592751935801455138331083626977711654167494233662914373712605133833162103052268832118112346961138567622644757130292977222390381067996798679502491551835010941617024963455013014863980726848938458913826979551825341533724818861747313985232261448386412516233324210133986409838319840072068729490995762199228422129449660878476709013856882617979360121687764020297031230615304127449902533376114945098228991821838642122473244966708013908832486485231535884003089553794217260418452162708925795233703894528983725256658950739532441573686168382149734112132259992274784437886754599001035447799882827686154962542173552223802297918548659584444311621888767288040433369863629845830151696947667146411486575150095243603694510849619308032192036644897415256927942935974314087168391068276752355872866208285357589708174093220037202618876183960968889557701516966415911375585463270723173253506022559956898704440060811007785130361147955117232358085407709419494087912804594254815693760310011927352282337356276117781455837153424376054254802197858075985621347442201229663350668797827614950103448798068661415523399800135264420387616872745990742232843059198146711549337184093858273017536732367717296680698417662412532072740508656043780222155875137795285731623339966766079826554413580965682315788832214798225250107727135778980720397284816732287045027672034665022869955440039318961722603506435853759636171924181931626957786170424641614657068861697247992202530140473091167400937963922997503204423178770764472273187927056034194510801505608108192220069170550651441054582555180810134622972775956585488087113853281468424460812362484636106643878651034321784543097672660239663097042739762706243400488541109290566891553663550895370552901374296444114844260250432069548749453640248270398940953491546176944003027215447200113607816368906380912152328573842876263243654415271458119671986245456556576781067716414789473114209826629069898564517879798537979737067057892426538043601791771884232732820796155922087804948654120095994849519407940593524417923911525792239414730922897609750300333010690188957400896103967271630880662032568522449179357973016496298297514374828525404521863408647898833109457623807078922727294478777266084414298037246700682460565542866043579696149148290307375189843541000978053654909712383685948214026835645937724430703809726771108368779517513293958938766578643764851998982354109172108513291608951812505500903669271911227933685126687275535580185031535008881770054350285423728364972204385623764422852767852310626436374142353179578593220039183706357841266205787479429047033353657694673818621062954614764237535668287394630055031873662788449334750260922230869292657220675594909101850446363270973342760662512718547719710991843338588306809875856507438031756460473244939123158268839793293641032351218614468424299844108556222921460387864471983721471562529423564070584676481764257812065957072874126348652537578126370276497890534392696824112684529390149817947043600966728864044260728681772884569862271955067589089130363382671657800379521112456825463580287175815852548007537041458645384396850481678867893225386176548995505303174978337600936382901658649821788804258535819568038490907797746587952924767249378354132457238502704505107126940973057505455373814304932819704388649256724777094246510590968334107714494760117239993928178329496042466531993973444637635062061048206496105048216857157972482890679175373519323545831498212961997508714030700643684882181693392509766114729935507453484639460313209329927778619711264029199521463875194170543241505224110676549306078858640197676365647641829999504707906802219077004953392476914338030295601453369993820300246246325412884734812044155516119735609608614379901574934531926019750844355762763295239330779154480063423182561342006303887596377959495643230993950180794963807062383635929759334806832974983971050092415794411761891534690364433783738986905656214746705178994627419370195319336699366165679663745417275246294398100952200044252143149637789732300477968728875006536815774273959731181212783714535226064820543912967064905834342301079135237295394300067261615988320085907223962446845294491076071067881783255987775365704001615657656364737684043396257313654100710966015541683946663732583836655933023433355331791901369325347355818618543126805638845733989957528381507809020166390597038231346936095142873531353418759309732738060968262858619624243887862198904154416195162250833990938907632200827655157299049086685417853603860217407783359459569682747890799390642498120447805333251527518999743312333304072717855004900148106586152488579410421152485681112078695779263822485550235484433401058813844941969060415188697343557599607311569904033102275300032153644095105947475287072710467382228259268375029850475141099831978813744192223329139052123484882370491721616554459626076452988349950338337522188702807959021430663875245791759990458470996280741692462902540451453036652738847344562198823939099043441374161261010872836170425654734237970613608845135484119261376587500344996592542943524262003484353592724878748454264832676132547538234811497399710736181581960626137578834088291437692817140472407730514539871245432780515128466921989585855197853821827963225427698275649982662576501297258701991075829065635818866044220708981272626556846540774380659731786851649462828620774524896425760732546353889555612291346206000806175429479863943994997457935240831015516146363576101610441820241345734208100354364539532467662383736245874449655318880392865055067317424453769365151268185898932395678383458125332680067994204265289230716603314572555972609738590260572845885554577392494896888823197262573241950009367881555657768583393253453982137861833591300267013874271314924598251031029360619412295432414199743213205233109501927319661028220222546438317930624418302065255599539233152318878184711926594700833356369842791553415990137494212736730883437810813802692582381284352786629642754473184311420238402280707008050647986837995732085548051358721170143627997273783865153528753894804250463827803319332565397752791012050363534615607515792212795534713224139732106007928744845548219650619748091981192454159986932365780528541260200480768949201447897969427467384303476143953814999192754913652749161694799582227051549245379361753398738003624787555941147748530094001437755079091508678873787234378224970117092610442126229499566175623557837960628428742556855833568720539035839372481496993580199591971764426917908651357379017332611425044722066517078839738087217169616989761560839403921294871878743488290175195818778376852175737783087230096658702985332727816139098551861153917527803604793308531443872097771616019360351220833879846621697431168419427202149694332061044555072025242385222091529827650302423661498116163447083938168495170470765334748431321960924753460877956534602923266077666044850188201948649578010601795626299052475004651153193801418250554301918616516746241227164833725162639090524336810169397524608685129884551780082760637456250943189206804081721255376373279221278874325783301879566685096274554931228567520376326037944677283029213615670425669889065826248267407390166270507538146884814927643682629347978120299625630340403532342166048399414416041232720251205673601067382982716060198873761997491134670863147119916702577182262336856953365716597535957679124859026988294692768969400156607302484948651325786177092037891113928244511321250126358095640809273261580534003394755100373738071580859983782196165614665081270650260439095315360556963826392548851546585315314952419681189678429170009989768054608224065882851469784180113293252530409860067612265311094145241448054318166797381563671087649289008766015557226983126053529309485810838064831237145157705652737995282852377091296321048260731044378791113627269745832754119721451776658387910708996515812961307386286155102121495574628548354656839953429583443813101741993652330724085097952261697248935340215748252386397621337734809286340309775154179936922231057826605689455063946049854803049861091572033737821766348136123624338763218249218322357313971872862585723885610626948642379529617749700173421739257633735477762118292514051573077724877546723572128382618310894090445522064270537903028932213066288526286487393225678049446764993260985025020790932035400883312706789876332917039939568709849949880241440888574595221518815756266230259644005013355597510337189800080805101144751141667314706455425566269139478173833349976252160151170941551307501353915978470283051047822384142850519890814337079724111096319820808819377590323632316599025664533338632334739326333436949249582134441095791027826041768655334775720771261299331581706588031029806135910754386991981822729583016600678063029493365899886548072888988291414518196152267812873401659808773727100236638811452340652596606429124180945553866657160541186872677888553773591593041757303510242969613524645815052602011466180027733784343364086130518370943513989893452100611451612966060731744960987508483563879264316831846808818709462021709234187278287703013619070292437388608258423360814942330977161481244276140788000188566956046886526709300439343507202151488942172245059461397665885198752363033668431814004387010152425437663908400132870501139618446122980661296038345982682950696170299541968723001976050794530524588963870607074468429136401646184442870478850385685282637080792118566330003979907609126462849868659027845216762438821690421212841234847584420350394537717492690488708716627699574275924696179139328657693821136553682641772558765217715388370308588295389178876861095521320434593866055501861550950489013215648855927975513213601298033497042786417224197447775661945379676804776124466406015772045390781137096180005747177852121268876533891540133146911403465994129654903911000920685230485466857142992377088375764859739556305431741191235334662608182850924827149590515294320634642968769439393930086921426485293913663032628669796386042041249484554085361500000488284066712923028822098980338238067512714267522611691628465747577523373067062985203674992999338000367526951230860730030640110913141725641397103463062463645960443543969571448014777262622948372241243090454318187923194022849499164582664599723280216911474096133998016595528035936937783093576311180773745346141632347863300701815440642773991217761169069879530179266711882785098310661558764333720034460419460279959885612516841927894146243164477301553916406391066283248636012962970967016152451863782215708923443834765732854728435332570254281110749293793696912211022063318606365542977905286887526972794522100011513205790037689823529291877723947655460352583621686529971956596233267984155523920912474007489448185408493153382341744827561441813381994003152956786977302715227280205214299530057148528538915588861170648425586097580829772968695022065506970552085788765878748599404443586762558455686330030291857554462049909967833667604940200244934118659104593183024466863449855932148027649330278046606770883688416860721727642010896275741951061380839169784864749691185024454177091106794697419598810393858126174877708163183485088130072143853013202367817494157233306318544717409096992154730638652688212462796391025483551926498764601949381676171673631985502334987535026015795664709996265163262323603389974316011964090106729515468840618603142071148412943184608441818285707512258016024412369304523225100207536885609287281123901369717194539049382928097260701475658229604668963910585635537175689175291815818760676389608938854147423217549096230340664294247017799839306259372725608837762292799609301617014485353427257828440295928948434637512891149974259180249035795898196560845455107668719096877453316141863315361569836975670198859761068208048962829622690469011114776132851306695044868915565398553510471273232729169964059665062929243583277617778968206628669444485940215488545503161984347989042749010306692063139092725441468606916870176769375728802959976202780688537484335217662882816411740706130111467503942272395892927061374606619142865898560046326157355109985920294051895033879855402757487713513309489581954975105122462284887023316997581879811981887151132434247453715712517402266049278824175644048168773664163189923749858657661567557622750851057476833791405939423133821187542102886270216891625085181386854997721184448669835359067113683769342988967713161816702484476725843290395364745677525365424352037150296278043576536313332384365530493343852394803875056575323395849993863126698895524479383565898334997658502649113535384180007736229120993528184714785937799092183550527374689914065258845391785135762586931795977094799836168447864671056953920401542622286948730567249239121105284803047123971846088620853092019024605754017921308798869869836034181348091092611433862304844173457380101878412974442632247069601465637555396612389055166207707203757559457807557651944429372602740587759057769221869058613153683327901983758876486783600881369767923183927403619454764646763216389459809989788228155701921899679563107178362796058259961848179506338882953508982430002530065916368776144493997967024514788560926421636163802952044830419729271600788942131251257450879347140903534288266297903123114847149185923802695650660596869245202096609293195815817877113063845222831900139310948570551574523898820803872635530701335506057307389659927722965428264727652162446931687602875886637529226735331890499763590216145535260775923810960982125423355043709900760008705047582945136763263556992625210291378848642084665174369735159365212830336997411953607999934391836486963489352123246558296018225775374865555977491324804916980266011298444761918366628413928767166089093029764067254585281283628585867970213576164011225307539011746289853606976381496864611392133546515281230271822087880174771112767668539634899240142443641975816959259549786654471791498390467372060612247085814172645166651260021302589350603631604408468598766855444408060516416007256071857907710288834309437779049639102764050471624843450858154847388423303875593502552889747060118269333004338247846677267908762131626493676956298437442535947671558020472418047701751379615826091456792734027062784648610960668994712100631749007904594909149203757821979398653067013907929126395954347959135264870103798251851668629926772873995528210367802439589817013855762719811543907245607784528263334304433766064177484064416703560522170099622306785157685221120434717242381966681058738419093140221942500495535466576766072763885911956327827813623166092323408715105282707055489107432000793034663057794772089618395419009994998442964561266618567571290332640823038014575479294870099144314383725669701546406461197397098911130518996923499838265119720535888292925722164910673537325014355221927361738255551281517855089016474460908812825226175787085023663129591103682968002572798999139897158413806358745829900676307249432667693148890072300369924902395264784322444669987037864073462326240653396983940792843231307680249259922934191273227229738317727550050920650233090899974947870468608380757257320645399835174370931580599539446248561279192498240391983503065535810469254558141044127572668076735930083319407245218510107509317522718534316956442277878588592640792940218066668811821316476021921456373069199078065468254490768744065608491038736361352794030909913113340576026938531547911651990879564083212797213218099728327827450603593107804624755295562643355668196447469386312321922274044375710647217982354064716445227793339547451815969410227832418261837527720917457893767958823894177255850643958129731253140522881113681911378438028124313239234765844971048310801470892559330215923625384548440708881703182669434561626805828905923532170071655914634105195598951824633217037869670210966401688938049939856722612241294216562434882903113903257599425052493508953332870576485125945229913849381212554458213642840044141996613592498849666076279885285870094327485832140839177577037472974286325512245839515994705443133522013123678404950086707826943391091246203665944274104399073895426694804320212276908360047402806885474918074529897110292489256886295130126313515739484205792511353418553215667917994248896941069748989081210842522086600441324222582064652086265638346727136568967399572240902281674942790065294449316318346541488299308282057344344679166573719631806849259552532387885209174821635239767214455755593158776519362532201163656030406673783878208075321261641959038807980822640280726161631812607773103170768858954203716576272054858228960109321989327877301812349840643193643091158246126475706073154570342193475337106090987075960268281262594242617306991527852210090048485718734216604737920213619575231036361776503315482876375070777158145732325906304915587297738493903236313051454816865414884008325568193567618147085076469394494565524191910734654331616919148653365268256983921943723548365015705382680018369959383225182048069227222843904153952459695972305664236652970451520809092177415593099448570745649188694029212326929200849633938622127421838465745957035327040758518801093109415219663446163819468826970235502462420162414642090699147882089190913747325199510016261209103345525505017384009868000765425844874908962312849859077467429383512527458774287449114058600434185880338711661433464578634890277007593002535262833816123569124139013888601007992989649858153713504465734749600904270778251655389666867295855902794715035356221501017911902765850352512907489424499626486139506731728128096011090071250193595448819966466541025403881678036755346338081825269375271997188839048873954704489902740996125040948524866514753582284541445503285963733071059155598548916178312979275167845787354145344098562175530841592858296286029419928562841842549577454304904522833874610240591119500700952511786247889093151255319997245658134235113951902724084837817505915972128136320990213626696379188898054757512340139241805904642154798033379294853321118492997229278072166467862551347119716503464660250131812262128890297284614206589752263288149350875920990673311795942276658073664573285826623280930348535523106347934586658768503114900990310811419046247453052008675251029584416656782331869421558149303440978332281858823148079526687876659251422436678843266672809049762326662767545667477494314754309386377804177066469025634498723042992350021658822520887766566797838245747666810638773041058025902885872232771402849913616506284727838758098900878287985691996835230084368136652723147026755562808683361397929243636387340796834831552399046271286731039832496518037299588991404543625976967079452262840937354576684453904747317584836676212620043815024871525155124678035341009948902306869721777781533802786331808639563066356189849952079397625285833655582304251004014623232975518587051271393400774941221353963137079585051654660465023279681689221092686829364952700482418584450206832434762695452966871361122195479243104501183280832403947485850035978763970420846250423004656047256997763559090179398602489707523749973285753853790558889195243784828020026168670594882078307064475352143573156070072206910326988512711266883247249679184857734782177218715675835606783476306546673939150667621823134102600612303257706818840330316133195432586675016851413966697814815366858728157848137093548377184151235371407758085394535848660433820138324356040057162867093002161731201355680562344595837658758753554100839768776458780025449245958987053908232250746049157092427305381613449792464378946137591119567323220543476737092338372755723226120839797517523650838614762488144064879861059319529151309959289836414778821468043071301976782785506309496176864105565101802703400562527045440610713889331606552341456401170484491829586472617148453866704977567181131000613049063899030140379068559178440185420568753437491633068532463094772545192854239005129408825345579939665624009399867547630745555595986474568126961061913972553306977849935581991522718952613169254392224478567514837326906421119957298477843873799519625857315352202852166096783560193351421933493207321295323048267097382003775127558682801904666955255965203040909702867588173410732879265093803053629267562976300850246840564618928688516280233475895798488272411244344156877031801356827544398623743106550771934141018655562305037632775552704638034701420571171587514229442142713153750970445745079493452037345212328340689664225351724232435245938274162452891323449186660535140021033043729461649741855370454759982780880344518388461136286424426737042489145926904719119685705872446031929174414060128570522589256387474463895297025115822507217794446930581821780810884567416222215997928833737755527667495157335042600027662101560187880018338224348517989683851270439948120477227965940779746562398766312511598025576752292804196528361174413888003009322186784696463370435959354149553855588761543025099053816646578215177265941359701062540014000323775733807586227194152163919154315922388413070497290395669911279795685096608331616932673337914089928000584887258671347777011781515473343413788193054758859691391220263262705655174530185580129028239782525162251970638514692160226669995312209980744768709822443061364031039564851863486848533490641686914197500558112249878239101583638451655008045121236417146718192162027482648567625310212455654799016639005922513767274370488819777128855651427209839023091853928734804395027725678337628068993475520913079409207247371141937781343615209145574170935284949364703720992774932655291910305298110190292041334488107338746201766790111136323753950791007141005740992634502217488308646032500818379134217328709604803256668106630963012966733999050713784348935804406925943810764064349853158513699723390314449306024734099604052885429035639993888148877599345939666030340915238361381098919540898378150940721738930845079893088954182622380088247766761135072565904028938034064381860064163004129110084701065699329791313032390080478448702475728360567705131246925127324977442273726184814245985804549620653713420463916385958090740941343603758294330644278177274053423842134638121960820731759248641086748648555251192068628829748067988219061888201189715933315066623028838685703370560266654720499656344585045887267328379839562510946365234155970598213261617723270250123385854889300971878490594834536656947283013292055334822959880393253653291352885017270091907992133001436053541777142619734868262887609453275424081616036755638069674906722602345208798618613845270021285714693587244231493953897123253474640836258004768685388386530723052814902091651145055441777012648040931434206153312377462082285156121655976349823650810203943194649103432292447733288536086319261498567801403888986749217830517741940543518281105882447935116059109557658810799196252374047757199293091458199246177084136069447697647394700783755091791241584840243100508171166747388840616778789618136996549135831265135522368155837385666610017772631266370041162385025291379942192854096378828481047441177214610530092361519132853724564433071496164633661664538035095167939770834934420891672388868723051895085093908261192933658001511284006325818000849293614270597354957078409326370273080703111410709969880161067956114194372518521619169285122895489969760883877385588622402133969933722552397604101785544248001161023999469700989022993569292784099133300616624046786951896282541114130896794490058311181994131338200042108373767058319421212946144927267658975710600635535726566191436229814698024152856143475612393263846305135935134051388911417247404789231244885169493183592283747424830278850601952017065968708273767698514844812635167465290631475026272568719798979886098304004587953623518116836020667009870899908271107554171138343550563703196099059187507860510099676600276915410002909125890548233703750789670177871694676842643710891174250564395383353566409405560963631800347937874915725036388278117917083163149443270279976659987732368481511081249865461524297043403538047275449407908338560946370479456446461020762621550120257883865574859544418052291490954552862979759005340091249404101470075306240529592192847797233339758494201182486889029400442545292642671232185993539934646090786631566031029588679851544733195808571458906536436381626941497371515744047354329677449141245804440474699062562155679688298483761814219943422517509890529529986806252117873565782369601240754481087119930992005416181119042554349337036380657999980378243480411277669920073760528905616837357428767387557249177235313850894065441051039441217480643926219018394816896968437205453855105321431630009714465701832811581671959764617764532675220582722338578759785000660179763256846470858268935799288391413653039903923850416171345615849801375215928104900184725215458841410290124682084478045721174756752939205955807123899640836471584114744496670589554838964951550078848261132254523899658736782283069702427510793460621668727799620168655469262458692029046808426480550174021762213777582053950678960148833852690405961583869482540415264445189738010176713233255906834321328247370081794980790919609922481525492144433932010737242550297005008004123929140310483694057025168410708572687852236729513938484733278310363219381715312310273406246659755542245509498593352036681874972515212665028569376709814472633244103767152813257979238760021383196530018489533356916044653051073998004957413558050176301948478708951252162411573643668169358142272217456155499254498373234848892888562568454521783397956232966718939868272870936896284786260929226783704486325602041773094503929691906850455209180378610837788534658046598361407979757485850763035902780559514066743231887771987466888313933418616850742702209924576237241823181623041124521463026083932170425987723520307364442468160689381052334756692741386402183981456380359755777732987983288865651627884081486813022501291580925896727297492817392209682358714189149877502828005763711581032845737747547225279511139789823136659846832574395693722821202508695588031365860524465564054515096099677953946881317169313667981372579277427705825779129297292523325992297870722327200305583334688805986346633415611895528432597693337923987325875695411167290494174707629962268781255749080744156881258738681663319763582456966058230078779123660391974779892782806979666522109079271226583720609089208454468691123995788270674287474939265125559801547996127972885075345263220011206550406907277678194068034974678737018251519427956284328591063321811100349235982233129369720655825988365837213884633687177608208192931469801191183396651179432887074909900362952852189516179172075033734291640087136121234501457427160007008204821751171570941451081442056135209433368339261210842123791857824185312117536133335904294613259933772553562017691872796120938312740659197368789935289684993943260981462674355708669496869659352676877795720115049979611751976478564964714651544486429502184424718079041767123165321241195911003563433176574353279183991089625144981559256833461625892783098792219363334170386493834965253414199082567347102624274427883724848458418028918792258624166232341817627532344927895731658725186103199473896031795601699373469569477855880906504796628317776486192820560491004842532135824911006903200712098168179185738337351798750828220054565247900402671356440273602758763860278668123789891708685512938473013934316700937953809649523744652564339370873300743598922160253763254856466887784836546135017735927799348892945270503329649954714515453102823258595052133482092844837377339571545321506498044849015543839607762740380628620093906786103676221534885273539192406367668390218404430228175448569644975752730225871826103603945948726278525031684824473113338734805867936985833829024689061900858959008168336893131506605466449412207158945551452755211840711351260938677406607018594265199764099512986352471471235414365476950479209286242846902643299596290863452464716787816300998695056397741078172244936259843109205332706187742557145839289552333728841854602620371934968510189873281434885263420183942672146418542240936328839478573191068585975652005894806894756082107311413696158776925611049150795732045037689539085538941475470580509318986003976851484180918066142650081894415089700589243211063878901983861151013464863370606966127332718322434665856657863632812332848403221496716005038359045432165830551047794837407650133407931351159043995360955504901548177172968946655208279832019621221620694921157445243491374970927369346985924854864580301013815839440967136307802208359404465768047873026431630718433969401808999895224446988508882491708821527583501109406289544108002794790695726118369606367510796523349566902094769854966798344000590721495431604972243043609096535693096809330523904610999771466049285264329946081782990469740070188175933105473309680858725953934397008437027487440048786461883282240168692938031411573643521824863305725759072039960292632648486457965613479539643024429489175583154602135620059426836911181736752543484265316047025076217244793544532510269960648648585468311546076298976749039864072523183226055828788348042057435815778828817505862426863837442646408087191891264317947941940072303273383167455217295278351472619627541839651030759017863467675182577551101611759371449802783981442777048489675941465429898189028966506974212227100152541566903555219381643200586924282307490237696456474602892997780487281484161712371171518464680991266523561670548136646195605018123702650964644941910245541459316656512566688196780253117847955110338272529168027663509418274833587701858539434878759074598281916306803424633071900655543346135873555868603968910219678609848278367251977554046287534278043261472316679362064896575969986211946273491830603297310209531976817377613098770576618054284418646004266477462952288945444284441667867383739207585701808794752928340825462549062906019404710793744110447771627325095389520463605035623038183273731068305825801474899684497434517593300111550873470025838829185458339439117490833151198693813363583659396743985425956629603766463840334693210735694550458744445234992904979421037344385349546909999689255148602657439071814010510767706032050638213922970294266966632291907269778257285352051204546771587553853438838590114108388644811268269306693674059500554133647334065730519377609248584367774598234024965323366640013742140943990633869079651026910431940374470408533615323728321369316427445027072467642737539092168501939947325478534844994484272280900219720782870385767175158543550980984633165621622657533488246249914300969196068147650839970005070392833886810383059083641597554197051726170266404199346776972692613984808598130829849709057276955639381769159032716182683705874857942014179198831766115910206684211389002367004779574255394513292083138197576577849459507108611280245052533532612186084261419840356721166928845791565496276593781457657331410090622537036832237816539737739189252108531638652682240680980621473757348515213415485679379092983998520975348963682609936919125563622853062163837728431576798973939992643396836798907801715719171386816996241658994520983748147785311230945760430602568424560868040142376625564530791418204799056718238826091671329385419127348745467172667875391904544387608323083454950699979201859804490588031528401394490537801396843742591078486025597070376019153122446066859163962748496890145453244514834328089391585830447933029395754360083962729797863665137811017919029111644597142934438860277093131289243866040111914325106359406662360407376553707821257680572891717357331595743419255328735444788574227717469760751332771945105461608308531796187229747947632053248532022457048088691622361072678873573143809689082620730971077557459047752117795305774642934047859261824558317255062396135150884953719005025813445940609486158471772748818006896638443949294834323018806009313025699955441175758944350578421993342561133572559610101678069881793347454626736585331532804267541598655465822404081944607647502624112620825506963775091901059909400070943468556984251048746580426328686950170802252483730874935258927976668538284870098781852114297856108911988447591176855171366629902141237699895438206010092104943016009586969516282208989789209677014721863037182053369460405118932222355182885422147855988566816471014194953646694138912840894448299732095979523946184931810151664077126478487586081668433480631472643362535150582869798587292755762848961875123242136436718180803537627482991569116648732071449342365029160464016595518221644538703124582230887699542822544563857286764080978821883303372416773290998847267277498969428739305583883369121310301418296757189298041120021072694919982187201410940311213807382288018607182668420555791417394564440573840086775006140212167687552620449698167952071903258931344906034449916031613271286129601429222904385446163652426851311724058897668450776096420736545595978720308725682104767385845192763066172737001036015327327171249639500206959343334752725400651822679618519879173792688555698189498547062096667539606905068573699907583528499862195433510537613683826171937014713543793215042374184329656320400149942929103122823562307047249041444001034554051455798215871334600684808022655773497791884156057826460856769810505028791723709175178559886753817474929804090528980459454715366309089167005803632263557752100448078284785865136779714414611903590523509080167563260546601112562819139152564688292196984304958062349723237955292245226312121621587592477599527316247208492295122597127944781940525320259373491287192116863239659411103433374657070332079263888489783136170699916732229386240038800937913064674752104093087462800729347667829920619952358467373384764022947839442169126154467394279162350682210436531942385102529939485094507395205192478974688744984974272046065214913780845311585762872479961026877311770219975325606096934725421312475071860756757509124127718450069089833661087469259651748004488881562696328579285932024992410401831749863837127318932398196724329688682649406057840070982179537967471119498705680889852315313892024417505268023983460353429658767484028087779157612812804089448591706526627718905289041879875600380706159335787388371543913531092444688264227810974290362278078817642484208509122928527467760901739712627361431375943673886147285617470542719624190799855688470993945090544152171514408111361465251985334607899425395229765782932363568411470180231043780679795016113184164268105430375322150847743869653139259064415404110409556425100853903432391019219875404475035935988178569430019850472874641272970194380198210190287906962987317160424503674677640634818452822894931194295495647480625112467702343155603628697582888753024570716017316427077254343911368879511541297379049169947991910113609039833541873099768581631024324681369663490468360463436990307088537101446884727696388085315798946572763435098401958756999605835675516816484411687452195839436936163049671886794785321954364260566830806698314583556053724633353184174306585930841745734403724163157105744179706542036972610479617606427723884610492266977116566473402771665826539877650380646638544926400333229682323220709030391328026452059492716379049697745713837783027984925281992091033586767572692180971925037837122129532155920640665735953070974792042835018371030414139005816843542312476090806325984845228530226413492836199194092762979533423013263516027090074509491294037765996815081393357825233376486674372889462656252009060432920940749076519972106600048199036881307278530393077774567488067475885357517931303075462897652142789346701667825861900734048557096353751861460422223841550986992082427427847009744917407954128977522379064564282107671265438958326725719775198265668777575478245765879184980837620201095884929709662826847369480363917723771804044830404126029724209392267107700286438213106100576925175034616054117716471783011415758769913944008815341067136870995703475314647228255142370627662704619119783328727806831715514715457566776999179177879034627765377232451314627292649679005525351744752071828005141680037593529519327872482994811971616218305898431294024652752192880425804889571559910067890328543896209450748025777725147462737070671337185007489481455186753534271567704382388097739762219537952262923435611793714085867784219506815196312559420946033134733195644457449662230460807242772201790987968422156438709888218641331190812778925246527850425927210124807464531595590022301940600368417232510128990642153437687390436172136639760501300028511776563993067307960700163639593191193947914686693210992745313625523407725820884382944858235506830386748675994191802375879835863157908951112513364184946041481212442630329024272821366587709073435487762136424428241716848497266060893937548658233021771830089844087482783520359278820249746668193258179553532586783001518626966058792112717783788868454040538889522069528807710392818730955777168776526846269740947074232925739573372891847845311691482868469631846485593226563724167661456433681924422539410246536566479776033690896700888940650898709734721457013635945192541459318912958421584991961756573191697602686029710570746570063388809496469937284738114871964070138079292574238935324134081919250592173875780377898477439509097687955860391985110154899477429694398103948850612643931758196797767376669855190778353764017217831039884801844966823267189052158273309217347143558107242712444340147323069426794796453597422307026421611037350293031911780475587345086559019349840730936566280011401167607725242821826467699576068843360695512168334468455695107983314099671747672946820422394254228447548838105447737463198582631303800273408217367741954214174378338816594188050895577282341117614829048466010572849305002337025580838633087181482016588382479317868495534325227524037457525972092341656684907968660673282774815066610527089501967973492080627145325858315387593122307132960374686423445805348676424494212539239337779123164660732774699863697214085424981580083212085040755636667261989668265485375142060243206572084308553873649938185348699452797208691140700808955858348232658291901410582100365699623874427605036685939015679223967424623157046784989119155157788893664484684037173071916454848878303383635273029949547492836595476918089990602606349563255646197654295522434481107237800730462063370716198871102864385790727049028834947261934144347377358541222701766746450762465614451079014008409007294048515853332634023213138814593470643662400397683877109036850033855429380232624064297443519477277859601725818149116077368407575204452403867845660043967168659769990976716891574579939778758760704096441940328529903187002678599978568093783399725809860579427874583999715801995775611079066752583985091692761579159153143790027453863854579215983483801096786338179642147427996438013696451195877169902609956539179017642108867740355327945712991110232770192334857654728606467383896968218253521021462817309547503105231513779204524698366004000654197381967751599872718436910891865881420366230126058916637646182852917704041311688222980886566293884007209392813690728573079348203339857857271543763699037091204914194727116850779427706903217929589620867762030496804181636894935156634334612771949534674497731471926121447401601382234156079263928801203117699242809522682419360325887714290585390811806163923101266851028994917823352534248512362037171060577784585088119007104788391785288484910025643367585996648438092608093543690688403817700994793385566025835864136985377461348668630398032406122143812836921219408485482671339196082260810001212001794712547057495139145760957353970597785244818666410522360997609959734996402549604367678206440048316587834955673777426827602017765989195755972696894410739477482009039848739293283197368869916243078857523074903273248045770492226831667581555135471736971054589635764080533887714607733792631957661843781882645296170746202722900705802157259984986750079234837814299120675247854392561097198361534913004503491611346051856024088069765999672237828473055781846654698679994963467965573716241314151462407907002324049949917718205915090217057253322597984459573501514013371551594397330438649628974494733279889511835892881089291528921823456938427835634421120382804584570374720255856656738402834362475395140028400360565515993174119780129325158870280876145888142026356410751954550791870678196836041255226232881310423902584874000211366978070644451965584532709044480968265910488205847898738031920106322052398063206162746554419269542462132543039497659213281391308427932294587963333320244199944825823348035455951524372665252796511203261841501755936935797862348536501327809323353792916320249194118538882433861016291149103853645390069412467542042655350503528072600892220081724843452820599692535044035603909357964003636708213460807568154060686715603822467458982137147544752879230422356034338141956356205497500973786169104501568298800125830111996444658680887635944185560008062059516735400729387585636336623541505560607929064554830864282473399369091863942524249352520444281241407289509199852536583020575856140411113318288891364864490381082353695505137812734812733373669572676457102733714969031571542706654653948846854966912816902455678308615450117066121779986049512576494394395598023574040726532623482992414257982119401828496489517879399324778892967695972206611270112325898461306290590133458008088219337180785469678936441745448525181504567643336351083420278480342447241396779567700180179528505932744052175203357820240432484097565967802907242713201435908897768881882669321515789679562019739675505309281415098583790963117889265250319614064809179244402043753861996901624804844417710819987258251573166879752324567476759393681520508155598117269422805355386622157014647161827446882051685724631210934635983534389667881235987480095302182364044966824408679294639684387076048198579345681369845982253746865928309760238770440285044659612316129015802289671941484739647072107978241268431041538943361455146495562796658880314785033230047656955877639467441654767554549194429277921458415972996788250873611799429091593842892181697553937036120009857331831805883680272372047518282963093498690065182284296102697996943377901704582832930730497879629465815827125873604624046584390661066705598007723910709390630418526143859672527332673811709709916028474312888649700460335727016808938978582732101265965594063815651926067986415086527004727190363326212808234951204136136409581377161736635044126661320342126127341560039539561859933227107298178624678406132902664828191627241934748181077193139184945496431791458223075131915684708202126566662090784287316533570660906443228029931491528883500045397248752063191734931412029074560363868494574748996002082803894614877498195365727356917951809270826089562483770577020871393619374877202728871295483784363357674279220783574968252211189193651094085360094225914018870865580708802448123640624192923589092891285926860727198002434343127978834268985533569116749096235399593381594902000219914478616469740567400802407467917233972156082593692771806956994587807083779758924692707515159546535441239093108192123370740521786789267278990827278869966800255271539991976135556445227872956671364218878221535437216386491932079046470241586099840865550938932847187300589095672998701438063310273407897637696479597786875404181549544476355172588037081102108933135340012354836491327122072333156884378959116232915191075974513734776701526363163680013997234535730766078278294330371899336999082198075301846147072635179158473043021351229461741988531247166987307897081013097411886749146849390059199826376588810120254338073169477531740723850591485777685645398373939750719635158761986018507386868397101007724006024279417443963344573020400495615119242885575341032560684613358018504218193330232907034222518608343407338246194138031267024726116432667723834093345961965662138831364561989116201709493250821841830885500231528692731852234951338357836237945709065616768654607017270610807030541982400715525726523828265873131894886550033624856882569366773061724113299769736136846128062499432875487115953307476534910434147072392477164648488754306270603526986759509869434474812693533032783048610446116383047621544979356356408044722645970432744043324188685631165577406558728510235916824886436120317515358438648462373340271605520570611776568247749630882829493209456538537165077832263808591300512166442554426851594239858885286737445654502040483849470145657003345284358388129473193778245962757027420611397279978634444606840068407329231222407882439466374458957176807429980810958695654088889249478647955897211925614372518874651935141669266968036732005679910742304270860168052605131564720641664106157483439593155545270376351049773176615349132590827423871720312953455261264323954778908923659571321445911655673062694842142336598956793695120853682530464062824006217969546031603328428273494795353433434804567156507533384705379069197950413032993697837485445009810064668975337781838597472158541324297456243856132244484194595517845906643820553697100952798391656756675994710026980755311479382336862738677702695594538570105131640776507609497844994949626399320465564703389441301573938828675171714071983340521714687967266215527481043313062624826603930133083881505207459652616420148321467958239050436076322787741560317178755024691413311883686150293373428438697214383858638276770308987896546879576943065838057361691852543114863010912526019502287248039994640245591677471619272559504515646868099795506321008205769114727129180575036736268210941086784022960599560369345022669598271077282695925329765246523871394826341992278893335839832185430415455287181113507798485909481389541480223862544118025905381307767334559124180108978784908259846599733167961937665209351781639314175513985812053442546642889735972092132015173623027483295679919169011007666171778092367182463072096739608770263752435948988626169401345631093170664419258136586546538663296729741470379503424130631888877334360290935720516401349652739871111129972597778577727875853013068979323203636594795026359559960670424111472879625953043901180692013636295524797193675918374916515832699186495206914875111754055009378531856863619024889372907084952364353112346230874888528350848998486998813299276909723212279218969908472563565171025570385816619847350830027870335349373266432422702278260514816143389864405352833881113860865454714795573546309374890635594236254721314504455717207604627925158433192845085149772598623952943418683040281838255853117964953812501012907810154608218032567612988036867017838952003951028365843679452577040843211427316900784563454277091215349127286301725813758840807192300617513307876847908816981239702350547365525781340193126965714132691429146007196459599092734598379047919774461846264455365873613939136931720643128726305768975370081331710029124809118112465006647456635467718011373660726638388384653452394894209783992978050891951930937226189195209870698311092303623211927090666643119940279895218896949608009812801149416221150442479541016255143244871976354924710335284757072059014394612573752366159814059093381329692114142284177491689221984635559616468311817741523349124791485288342715495949326224227992047580527929574059861514542910797915668285148930815916928936029268751277653994466694526183370378892715988095651773924059254851328794003939729173426277027086256241357397366108448291311554610772715685264661340413201212476972219781628205645248896399523115655966861168670327975298054613985273059725753371053906191844537533313604902618606263559189435541342144753548448461226525700945166355797853430471414902330995722429783531574675168249219822030585793205220573919741976911345127072105605402034053650098029625129058377922676301652069856537703711860940922197381386575113780022883008909930464575029936326742295708524026926343220867829951412272961252457119944164145497074922851714741098277752953697199646616839745371175563959003200187255532012671296076070912785919179381467230488759356557587086289663053178798623625258802816311445525467881502678164653686090639011328762306458932229974177324221035953243040008045730539067634138622498480218487435513657715276354482183822719380143833606233306668426257524414776909209119537817155086881862869800136721582665010904067613616192852461588559967466950702207570724705953102685826266404451362972396807110525397674493430059193480775076038619854326599441455309861568236069148998588401840158704859067592387628041956842655467206330654407121211190584469335607521042838761905960825877543757807111593202225358850806448712387743016583216118339303854796282378454670469691382418759992573808299868112292663076234625806869905418445023399559890113835834063264780360174305791139209763899016718264530513637470321496123426185251080796664300707042351965185603183671730464799809791707233090991518506045841531857743771067970317504591166612851302065678700801160867884906425198943666249382348217660362126083448331580073739210724002134087856027018307409925883006086315869036509063057365264856080310614187251806204848001235565887113835897461863332687170006681662530521977016004066198069475465982936774355485829140783776021444230053639879445347889194528453358632660433520568062452768764763858364851410094395204774595549193327038259748523304893828690673024290469893310574810112637678859578373628250670120134512849693137205824968566623285563627297478275082754080441780176802831311361196103273358931114551285951675230279656105391145213770724697485648709259327633907482080198839611699113992715586403707377336981303859851791242850870050479486298968761479959382352470694658609401416733390349275020345681892651961725207791013205579190546428551229305420034337791201274902141820634592495392369886505771525271989968602149739677311786091791727436691965224102471375733641021490850438418926293643536463879801461655586207744001563380981295496542952026273397098516568654334955708440806353184784484945468280632991997356447886393069061227637243860784754507567403443342957860940515131629038006826160107803375880469051120258270438365817451462533284511375751360635371019870238134751267456825966350584583553030225946231228828490692816556968863657979070220504694823820088242055279343946179833200699247392182434073276444934318453619239944766423235801771134896775594498640173952386261041272747785451869488326532139836361522388866861127264548619993949840251846289617594522583188287699938633060966365616611274481595664897939620242668180961084300566100414405879288107909804368781754136057555174613671229997703348835504374288313445221426495641307660174644158413060094897288680345655455209949913873219199599782085182444661651464476438172314406788967934579466615377045783985252257953974664745728263677212639901275578886188990668611100484176665770315117621437758305247519881686906178069403641362124854830722385715677543121029963795296703014640596034652812365848628394718204089974123776214672296198049995139961195252784094808273251591473764497500360878003260754249990677062104543425154262050914010818249526952647389936016715126317456684424541548058716254624240042682779573603383930859501456629219869836602977706702569047557562304932576766060068416954890028715217781965161024244050737465094469225260480792846014473674925243875552533564317294863883611202206180731127055739633926026351404019047169665392882216476166202177043436325746875959958144426182534297296077939691118540886640725466826511301377934652160342973109056429842785576079762350913294878760626446746189222149028573539518498100158877250387887231285965892442845872084075631886077489677560034153255034387942848966654650427715160982375245871175295336988158904936855665783279941283786903769382868474930552197620202729940563635149016023342786174680181316945321653225779882624231291806320838671713572057369730318882859702440474537862120151698737998320657051541192933989789412075240693868949873212227479256606560870592795386145786406097090096380424050208034193216171810625071824884182558191073417537821643295810838612043973051794271901257004448177048146548052348871867227511387027633358800379565692502559363536091396630100056348602673720122883504705729526996271567820886498539017148026651503067595624308692020177992527317356902092525932865435918831700454399485467755309004293238226701223685869032118807015939949031347885372256951812304670753515059232260675850919825795666228846734001108053131956257627285635983157132807086893965088070193769651459369835520658459529156282050131198121994189439662499373023926590633905579089646055068752497833982498628094767640862178646875098386711580123083038081710073106511232957758605763628828512801681412148276627100404856139342022534177708039088507243177325497399782924595461888870937209390351768702641682618335476023379647689885991885448958921105456171352502903586833395103569087753775099522732617772555150370040856352002520584950588498613844899719515953024221915820032605436473624439550739253058196527723178074475196011337093456979562398258754155380129881548099236173980759166925814027967495696528037387050430418949397671313256759634285037862977368044262414775793627688057076225490847081482473233945901332141580285486081417914121415859151502731677345766633044083646109529188531207214641213789677698745064490471268122226799343010259402782368432276623589390882301318711107438578658357987048824672522933130459040074349796126387978488539562452858423219639509858795831455848536359386189049930203618331068769984021605434827683005794591207434931610941194313794940721794045851421015915992242889601988824203078385011350305751865103604515444433032722707834989270938421408126352139195707715474210976058506196999222995541681979689224818369142830454297131770702651441905583433822768162947966418655535959360083723579422367588308015352440703809960521995299490274574565282307344214887431225386253779430235127882498583378484246367650991551733765708567922578390015198888092336520260429177858108808741864805516765615322522413255752806699959466399001570851013257149530397794597123320262512230885115482377089185739106090611187119887518983097947477034471661267106402049642452235195257665424732800716843880390769347838081263180086691882418656804023556398710011593420726952704247929428462092904008067884400622594688503837533836671465513219385405808792680791804594063647469304093457023593063013640253287353552806434791681474533597724679996220701787376346712127882616576545411978831168433550936410487074785177977046706089588619736263155650719394392001388585340747606595461801577345286449089926506487635641112434215503705181466250151170298685515770328262009806127086723697073200098665323847203822878081546971241558954546292000360453041529656669806956692153537988111771903546436650331730344458377204843826250670394769728946159541068772979011352612143940498885772609168180184406296284398082392113116481979613212844788752053084421572762169173507973125447384794868930148048693382185108905809976776161572388935363860336082884744084660845723826991669858914923658168039984831688754366619551281928074566851781259891038661524485332435262559503490675219884971330170853038501130413063549689091315784535887808679828598749675372508793663879160199567252393138010479737492472711931657320234906627975607291539558954828958526386583913493457716742130622806225388770309205268123968709235907101064297823300978169189547415350251915722024832483070789468389968311857447059908357051968786248501917052513925775096517368094344964462321861167232217256462100579925842653299613447655562654507192668525988763911488122728418130728050190063299368552958872754243470125170391529937953025270196313379643869755371174382423097520042893702408795566359304911329947164768698773788770164150085223107961221812437559890707435846478456406927047135632780718258215349696875823672473142658263927744444699739148716072696527872626570509290891730214181997448114096173694168477542383072119409936357402255319227002430779345704806865720736758421052581472350319778884043130319561265136431541586165077877831287495767917310452006414431851678905547036234154379369798789565316517422896264682998951492563495089859368391899422089008173754881855267291117387430500807708672696453162539284156248515047005696746905179571890189384950277163980481586543241173470826896325327105730428982357424698299607707065972542205922183356827999309509532800834860021886282819208543746672815441579634696020136182791824912992684272090689908800798364752620239111789124899123458863375334033260882642679516978342394506965172025577886159354599324856852288019186985974898715732953248482556780737447132663025665102683793443395328747935307829734094206318023004659011869146067610676594760700813885500833208423192655394055847548837000249727331107325791190325951804190397246439638866194637052855127256838249096003227488705029276907514982772198615330495725739953415273407158138578612814311291527595673577656644031079789329497652909401345681112506588538624678698718579859933685621214715133073896788135873925546286211267799375008407705352251012623857805119632639111622016944039610523212022828127872068605937842086909297571004920739420490270211296613298784454982797446107619009395662220973408021944297661712796126119592782752880309971462443410431499671126385436222128495911386091917088729559362243692366099880476791073689401593807608471261581202936439240225433542017176802810920793145115114191005033531722288922540684538632032885522532790518165144661373895979974983833203471173890474338121336106195121234564374127353022830844574074114708500840006976083283356279330345883651764461716350978909619035459847608142763125561317037242114294508668820603726141788358011160947412953225283772882979280437534504370440200399290691879216431993739190755027556013885490419969812708524529966842638181889023737824830195765311455849750593831314652915606498363548394269789047781927539700877536019545200226696821320515421702366759904554371025575037776870347674257363049592396444364792693454713134753817088121591475212319753624362258801333405143249127281507807879568591228920893116993830239375656944282944130355185793455922092447266569867073747410002114615226820089492545158620338678739643727730730621162853861621993476651383633209015330123342284093108139118123847444994245369154990419924926004764726445830083824360020934559898302813548354065733017824434956729401545885192924014546345007327738642070741868078126437007751801346259100884482762782882628103102318020983898129787867274922010767179750068623875494309654971598049002013018094009622552323346503029186350073875711030958090634552539511258248254658079208424249754505480875146708261105468587179221336138407654618476968824362199790643125300207995878579732393062672400007743246861029250188468475963472506569891689552305181046728685560256925707651384254653246790260927252738783588289769345633043916819201500118588548600514595716146046186793432215623646618392394432242338587802917626749974488177801253172060435747559861655121477224040698261816538120257285282996391790870155431970267226965149024825796123671953744605848821227628388541186471515945000519038070701102796176947245217409047766617844108268400314760358128590901693718641671535684196185604836862621532211093094408040901978959545755578405842074421601842181188150585738083730811425630836175228416450078956758185254707143939450184739114561083572281211673470076607254083002178751598334172724025932512552103537793295878860279775101204705352301435509296650608596597243740132843551483169654222631426485747992859072189586580056033789502536081015408432081294404413309196430892720342976857423332642555231582936052334603320479905068993898444777910488141351830735232009638007765523587438803949111269837400469531533477141995539042402849880865926381932775588787437516132740597354017315206441000477278482963125832199327402006858209999763302208664832256023707747598465229263515654383207931279506801581012860205764084244993645998210515404290576528763801751863284051549774085980389452342941508364067407530473180371018676991694183083094944447899423709986194568246165134866533933915226976240891341900020077751810286691141891248350492861489417345632251963611116810149411823364507364326445970564689694039786232053101252345325744840377280497020308612536607900360015268690913770007866162947071308940117019856771388862342840603879051101217189960392238936623050978278714080227567385991303732551569960821966019303147076196051487084951565052505800294630225458191501577320359435713469098293507731348202378091048455291964141021970760610289001928545147463135201137478212541704922968640670266382976266586580434384376419079129792550233353071500715889178276579169016622818378671159967373219018665689085778079218689449094452314785709637191360895230638643761503449198923834743890820640183659902053223757268657583932344605031851959595490990684853120724253091963346106724669843172228394049886733651268354619380508450186754694514147234359926672509292348516149212562306491763096333881118652428579759859381215003163421754826180539434105021949652043526213186389442018789201353755671175027642716527634910523365971476402979297054555749956640668868637157326931617112177834593438318510794421442090726096925475850777592235286050606520698629720965757219667821458730347376615970360400884314800672749335888498014373613867414693684195188573947323528475897789435411107810866741106176621316041195008286634580806606143007382199764783690667502113641633303734888308514603315720618303426204921289291811543741124022028396803557403119462271241405670451345442716358550628780377897804584145146905016423187777166388504202118759202140340683264673623356304488129634702053989166849220645353524758180647660392086238656383517693169417984178943081158301224536377386866772804822344317343812782370628503424816698647084072573650965111082806646382907770647435747630888930997547189970068832737446396542695212008659366292796529652312663343676021538496486744050023635486823124868222658554250564098681685888527430296339073903127406574526867509771097909340902036545688293522228412246124678923303715600239489654029368570450487937437022185265140582559519571897259231267727212944000054303959688739155372063451025956479682760212448175506961162741545802346418455811027541800096411257327891333813957623349429067291654044374468710662001590805150845855164825972664861389305592234908976508076906032333664953519730330556207907123363876117933508213334118707467778596848107413133132983133771304938298087711483766982342125195366810981794233286097088489618859253463686831055093140544061097939555687284792515747000227004643344458380927094360232060160174759301401866621892842727620607021340411746847866807869999700809629868368994603250639392207584616938810669343004161130650752505636213077044551381422818648600494363577001703832517509060836348865646897184918930089621876999644900848646234437834395137920308343235707758744661439054556463430495295625741574432206090086585340971893278661271533746714428137390822017930224187009615286331867926524360823072566961383658467312075443005722725675568992722883916369019690484039067123378197053168403416343324464157122080051060615738383183765108224249160479896523854969842090384237430505735919232866762422394852478419677301732212639450769291756708152514311997614676362752167881731512419086627170173056748702610212674261542612621447093668818490647654834239991170287813109716197481105844400523468352775959256862577829980223314380969078694854943515089266655911130847600027830333402886032718752311903813046294463738170038514898217417168241620497648195875868363024509703412354335431884085047601564657706005806365358773829676892433626222213176114545047855123384379891095272910245346817504386468192652380260475448469145138754765579494345896667285032400367204007227690639420823676780680050136395232185892456063958146249031820305910750588152630918920341355605061948701983301587368979994725071986782973699155388200443972320494774037016555153009402743511567074994782258109149205005319117382432917731734563871831488621655920020806856527815597429198967099403396471004618020595479366916955566900875449557813841532346071599367725765200467791716734489239018622321434015301352449556919965482361764916891871779103999651254447946204732530738654332828681062713162637732213981354145845074789812657861141936790676114652291245798690204113779685515579858484805686642902989360538211137766436518958810144793762505665734125804475537353429200360912526800749904588379262937715419543938387422549500865404237826486062183238739258400580075346191050847473263514544023945914221724592351278548000235633323203992478959930781745199687746768323755106363160679162049573607502934948785094388682132843107876027580378456634150038567437305360532200121420139607881561694936440074471463539615797744477643598490760938793353110319152611122273845853490870436130925166640606159651728176105010387773123863415982157477353858613656110207192683564557363087545242713726936629406768708868649020276557181083870554547612512728132241368607684100213858510920384498689882515231621567783066895274252830025531401063511737605107471238405481746883845154202961747782417104757908778782093045243075221913767964355388422391814722344205189595188382384679525157035589363433832699378865714113662367518790059270727962129484433748448963044637584667614036474269497676061131974772174161007832275721178876928430538915203955512745884432509815208411923878842572267048856312945017060113414017864298195745626901540588673627144892400893450968693538829954694951201877499543981251956320809981169177519356496186005633420402467048208927086191404629360938524798577789786387993039122484078127018767197623766284607916322241743226838849619760996178875729149542288042057700417315928654226065164358054935110366598997225071398294367025320356704358864159514539125527485949720249073041879113266709344839210256555763412739690011898952924848492338568394748916236343055238505408500778791420582278375447690917684294404965514183639788734546191681646866335460623241688640178558275478749037816743407770907513081718679753039287023166103734418246890881087207483249507544591971274960723922818938450935461473872168622361163623529189937988024925713378325815606180475312957468829474972912181412069835304449949436719097293218584740324817972640058701557628755284936308923665302751275629175766700414994805308672527608888513067324430248421639966843204842112356952628604404258224555544534346678136327384853904244296228436853017682463191243089086504220253964844141284869286101620261079105957410667973728243052277548068679900829548655601435629795378062416493670655959422019982822563129301687934942912516594682789411433376598594381911266267832609031007854761156865921999391264961802930104779915613985496474047590637461722328372870256563667604529397310622599543823266867443230333190445448085610401905833452205549006946768150115172098754013167108298037453651936891550765428196306917790167136203609380077509204477062024814012283772142875924126401569183264175323923638197229698360305110752792488383835072419757801222740964239152778176059413826301050304580152419161799923021667568981572977037813852591398805602620242740756292894536404360192092314600169161515177408871497397968956513412682545839276681157874629586026739293762698333374416856533586955371677358248340582701012127596994108984994149373334943495612296181983587408584238716266855935719933868314436501676705865881534583724907629566112871144394723820971752690938695255725049720790103353905591571500376882516342460110852410487463117938556816038066144499468702206969877804263361227029067100799551903592960348382303771790572421201911302686670292433118308555428171462682567319210712688566808882455602860625245904714117654630069344514597054811075943876222210382842829574058991888152557228390457505089694528136728853121653497784082334175114731715489981953540321713325915261882841880483281513793198805606615582445749859617529233004906626352927895963540932600653131434185502023719798229302942584617753168066972740139854080778146560342716899934915378074809094850442276984954760105426440909786311557557418355726491406114616170867532935357563464478860528437252250870660536354907997828504212192768524819130719327207558324644309831768618392617595554327974220915608201050388382511462204393094676803062425871428692356553587749981649523752990644451261909772283950056316063553342195968836105736425626264890492627668839292156673437499232373612377675388078555477322142677064687286571588098114773920807376945616803155471058718271606717721573820579007168023109355330211221630120745333209520977598003419518227317475953824173814887891530508347812056057816824763941690730420240153230628158577686654263853851856379786374296297638160250035539782404138616377750998644083537937249975364425787768959073778979488143142443925426490941069133690463860156253538558018894755515121515490781360152938644738810555581192551247605022826066855985016101905625344342037994701512875392716373569218948550381447395491645719148262986264702583157490885199296080437626564485473714528734107834461491560374295616006860245121793032423478983253936164710078941755627039314499269625930982700192742912447473070855691937078667209767318938895457193966413045426064267961095502607237048771458768127082071464043837901785754701507491849625217687939616118515830765933278450003488403017001263799661448184450466464978364795224377680886933016455325161437318482850477108931680784041953717277419156234190594808945345063413131031705074966772558853900720584225130284470114690103684224471566783768870816434697936603224081075658810990721104366831103993935922998112404932547791415041343398232818781794949141538488473907462956867613865790806160590162768424682685562167724915908528901951762423819919290756701837610250324600615955226584512303504700925618249046477786848885033530948902607607710646466626422312876783322323403363146195503117859228968255744642995317636877325263167239189315732150348714677710990639162904989218633461871071602481837871202666980441033153163685448666237177210491747109734779557579021879981790082896673288001448008301576831489972461715809279783614435022547618130323420771612172559845881853441740669460125093667967946536485403672792378943766572094753516319806575897725678430104268637089624929535714230006550099454776487096221559017914731336483900775229551836865265374698437309714726891284719660623216990821905989942954534582105254110163222925754674907173289798566548299369445834129037907953433795311964814835329718574243324445463803661328093787306877203114714790832051620525752159904060129882656586718585001599451508767400744940579398656066516353759396680656530209168707953609755225885823145764494240433150958702502508384948806451788678138121180530213136126342352287706904650445468197828459013175274817291042780719265607980472204219864510883733524469426231873146242438138715541565800980053477978117732462686335299984090879154587967371927859374397222292072255747165300787224845710814401025763088372484584610653930105635200410107429337623454937412019207474101476852747613332951737128377837328602299717579482789381204491325104730563674638208730782644629383413339830926967720549351266327182516583141371002372860518972749884153025618747396177936740505410265418924573840275762945013981793411007221864374042608379776625135526805761754763356435591845568956970785286037210919291441318243051412257974436110948596271927226938341984829748577854219758554714564207330928169130754450725590179263593909378267545878078182268607219496730896988095707890356848868442352225957495836756364442988395544983426507349282032136063497508310990849999290238210124815548398209078426900516299043329866714742837350776790825467174057558587375852227723022615607984273705163861786246947846084061587896820702489452989386768559488468062861104854125953058889055719063160782937473585290476026443661002815166150274487125961485224135992681516721818423839353305653696586044272901572600574281395038694546446969048188956722964958069865138716355272020048777756889487052708378882075998210904815796923453131822425983544512384675924521961269073918944151334749375761364066591103808537140755404803689495686787501100577403742884652928135571883856759682812226586555497320844361044808418339300499232395442515060380940120096593336818233698796651624563603017707645082856611699259199650810147482847639680564561084027588113638630976066313626482292622860730219895100462595341741857723696854218955587332493913884309588628245224957959885895901260816098919961752604484326558775463862918484719438503758603150998353747168994283437900302069335563409980873013465645777365886208658429027325441556414547033039681040927301896733286660029139487182060644348548563008367855134988799449818007313653187744319906667552224518100208785634932360908765434584133721730611714894296199827215417598634241263943827803539490774111356918662678002012763132410467831525606805198047174810879163420823524005379673535007879111096245167180403661533503395986262542714621424148553515637175014422890262870851724144732602107480205570387011404209713720999815912566811007400203909108038570213120649152391248551702928081306305220178149718764463907323945922892859474697280150910058967512930642861393969448519369221766174663831734800110818453019969561304606406622102169801415520840434302121284583953843894262110598942786722716962159098197478529694713385120339838802995901646421707034925147354268152439916251164413698945387318026162576581225947394572302620857768342105158306871613082110190811812105437857975727136728412332381996961686874434218858542462818446583050997887783483349082314693253257570711767429527979835458633910743212840052146565428529578447421363017009397251386170250604358048478106945738128091547423126120198989787367505734083552575005531858673148488006554921614014764033842800938467963059645522447206149274105042904798837949233909772746045635899760602122460329390442041899496599391220690816564572974802466042140854217810789855576843545175528860251199320406316149836874735559103742013887094705147735162031720703511794859991822026792298217347649873789454593435385391880167940705267691370610977093154766448139189234492949745042931744773708061062385501495832365864957056630191329020435129887365537269383517387309183932477092087819788276973769267551555902286124592999211179648860367689691538585391724311351423763808952321614942787536432844796777637766153380965952623992910957140043560470504937748231137817653698077076613632980842003139695676129007375369731508118802343322787618629512856843322514597472481346987350958357988976920123884986006071878718071866674908867529151917716582920179774578269872115744862908730893057832941244131226752362496095624435447729253389125563217804258942552126416464772721975997232596485259501825860780370979035516808510720185065407794278467151886120875604888105847296402933047057917155344225267174552720199128442194926213978562111163234526587279808493196711310746525489746361728194896222883612815614502347523624059799264996090759205910626182706999694434390132088456600838097697523406289525823755492232681288823147567101110309347442397290263690079640725542529125909268743212747160185559072904111023920829510195878431879958878877351532488115129807770923669896179764902293155769323961176431339886338685404213315532560721100179789531409780412923467642086727623897410382844800572541452757256216491729817363545806452636695552944950071790825888924343919897434215255145604122808605592091921249437375445571927221762062935647547164328371726826091401492350898847039893642104858670093855429023592451762175886952982214571951476738485190652164279174547738377320064971553837334373651597114956780370452094788800329956350196470189492659633543411457243029115352474593420862551358033200703228066356389261966604097262914745315949862560589168696367356486357079080524702254533846098628464194085595538906817106479330634699607204395388348381241752460682036855970556246009805009335049050915546950659926621835925816168914707462351927449824953986583118471507542481494295379330760950645688996285392241439179782262646775378609812767093426195297625769360284865482532446515939503346314328148648199429624548399728192749107210840853990458131531443473020511753891055998921195364939058547995175795307806882810608541077183465668826707520819802221600508290589494641692310501764503374884074999038973506219184243858082901382075676268489830031548227865403348504587740011442110513279966753683548233258623146975690731978524474005832856293472428404052658477391375949623421319709730433874523653074553144065861786188530970233089309345670203292058511097477681786354759389732905424987101658461882153346037278070655025066835060280326880762604786987651364437601668586949200794239923799426827528189948887986649601091431455393654377018630985220808625229949892639897388606085790194685291082380783466774377350083417380258521525220078539424490872652199867424286277270993638372726242873439039938376466889147491911985288816306139853222958385995331350926579829162252715006884795390937330080847276808622002322089443364686321314366374608799408546019642964758384257584029736065094624209580931584589587583886067388449477431102807988147270583986334403067119059686629612719044647042232537367160701482711651338199217730702434639344414373182871344240124338855531657876544583067029868930222344489684698600915778521149960986890338289264107936210904283550546029238232771953769250302241737510387923481484311004311545391188512743523599676349489084678852380230991799214422380727474800121672876538808284308490653837988433481224998233644055980465638780351484528007240930654463398500691947160261685353395310983656071172293704016992836250899566755640724671025767215586469719469909585800857878407173954954411507540271946023839933596132632690157120344538007530080314882017566558163081338839967109092148311770211560732821999229139036069997831396349169140881315324155089840209658034446902224011098396082610216659085898329802334544220942549307685413535205773561457762821405637597640790065079009175162152190723576254474514262163377080203640285064929890030565777751091100728998960074850953092226881201836588320104004806233034593580632297100148980192154397381498115707952082838569388486637858882630453933003880966369475932576464641060943934710180528686660259098914181196311251265371267810590606269425177913893435488728608713384901175187545995221826600614626782221079344285222175255418580082294282922726224411575212691393883637311749756941274436388182269555000092501211623899876024407415810584797444546493107099227850038537435727538307567489703920800551592881678148395726982095277159903773403100273384725426221300742597226438849678136079081670631746790921626812466823949050083452798967700984187224826322353604266856317319741476839977894510599172178923427840293265265654217575698194661505916632880249894638184678444585154917633629262222952782719015615644052707595038000265919328426858605899331921135540828658934645890385355953579449530077283431614630818749701011641498964933361143280826176168026895637205787801648814129280121453886496006779359476568241704943270218210668512150971771472127733189777297549044481012456825790217941277119175954236988756728691506170511367807908906394486459700576503016968332225578894129664677704386467732796203744790122541217852986107082869292787531260233369087878704738946754084737274581966333451943477019593773361032331521436445996300625769448026913069945608917619937790849078202018557703940939510861465113384914438740921545686822823204843573160681027897441041160453168737215500098214719396527869859316387682916859068714054605362493304774410909504980347931531571193718860051407251656710191042304475927558322815222691188264716507007153536022818495766895216009536798898374534474553242624282261490358221194174025033611608635428302285250289515320118195936984082351525109072493520681834009650361529743610335556778169183927598718386032799657415378440955304730670597043035264338140137095678632319007711081533931435399602455319472428306734449288703088228948634297062745012987757367507568808103613218139149662993990757202872700418314493616111018639924353903646485825387531754957567646909759484710333608171263424507449423885491414674597448611592700723120914748513445903160704997620671524277054817944448088901164611863861399294662386918195134408943178660909951956759556963513471883691923317105437542664956725636991026714057630740838064194397022378948300107006759351491171771973223065463523249231285943334610668451759499459856320776395525947685407739657954870158763427943242639955785909037312829300139797783497645066968159911407923104968732443458225237476597980265348020434087290284452482431871463254101398826156683713085471183940466387323578189936751129635340411509729150721560252769675556935473526096166664153377046047757604261341553220431782523390696253701067475375568708234865630036019021341667453215726516588632927393615206430596068569882436227727029161887754406926728665313965307711021574372822811096191055512491552785437843492124766795604247411599548815264516562101221356130901276634952703306165517613381117311917257209263688958064812177921008165007628819612155239146883235962028646806608464948115227119466697306874101674381325132847189735194648454613690586386644252865362504892164465557539954723103246102423455806550023259960728923456852569889750696166867936830000563967505444925199908717831796001482950148737951085361842139084467665902485661567398096854214716438273798462856693989168693126062450828879569335818522685998083006456149172510309008264714437145743356123165474249120896211737560263844336404167641717524521976147469394871308366970978904984041303478514724183136633950920598545148461002610982857261210101095368867723689304599915865349396514550847556785996311642794497084685901990097574534393441459805965446798803503516677700026734877078698228934668034492771346126619820683484495184618105533278721622425059121196850638140261611005634137669549393018050769203012287435271539348756680535025110587394055604217103774573566573777567784838965996802707138690795015495416546340373621997691281884887677467434409745150657539143756123669567156545657185119426933457312055330931516322894909740533594524915829345258262452870893417556485281709915152373746933562458181148308593065158596865145454740274923535819577498014488896058748141486092264928533117758469609021917021091092120420698863714323080619393198043988167711324490228722071887599407149545705606317163024600404340883519601947783904563408886397828225517111538554458319997968049676863919503057640094832376965473029562700178938071104459767903328010252491949643300248021413867899485332144356726435053866791661619228387219465380882648731150452555745337903093483325734609810429004062600254557938578696066764914207319844129074098011807901545857660044890000685663059786091506725631006802217489626706029472692873301272788673360485055470829398553750206363841169619646952505233428749439072454548407666764118491891726964227592904357040121957048959474896928875652684684490124268899515854705767315490385485380162936847118306867224749823118386933789327189532953791073568656410618541866321165962553673250425544465388465435955375751543284401221044758574554037263627115362315675121280523983856341179492252652809125008356100623822305102907380193253244571834579045017373790468595059493943043321501480787914783144659622862078998205565327319285987723259500383923645627917284497249709264488772695509915369134533996507517873995527385075919619036470714349809837776937343627078761271136348546692989342623611137531232762069863240708803067825060822090864878016531738768304771368578234434502302240122267522398818647220270439418413779029105249064897426271426530302765132233386768154755820969572165258911029987120937674014762168043283680269573205026533909046978826489554347792597600978501907099909149343097210770185462107893314553138707921563856774905987206223912090518587654726559099227807780545332673921350740338969310416166521806697313260690261512907787377505167206819764489500011476544719521387465137168453648449961296617357398149540098844708495498088124059209405548247147424766915084760243167319200974107421992045848166591171442450667529677584127278617445450585917057197377438400253831747654725701908496557326217544179776616995640083320834355716405075015362577324685707658855248099809774546023420432793985409300814228403570224297606273110563749547664920988670452276877587834205211101929231947617045449149337719235977061396661892658565942512849549516168943902370556695511456352642624655423399541517996910031963281416748698328657636849786187310485029204050419350636326512128145241701622199498819693861368434323813776338322070844519897255319760801525129465133042756929828442711838812689796505470251885004210167294121239489469902112968154538341987343266464459573878255298783146948568087140857341926908944058100300230401517832825390976847586413224120184875725082349844223869667932036338803292126408587391243017343255555440541555435821378026915711596071566594639526425922025615949146045052985659420007790689538311640407351567274522517146476918468510862632077366811933569244805185704077961379597450974369369122875431360043060275238850208789031481386093296010335796224118165076416153288901767869429892377163767646213652344869402449031346957263858195301233778892328504029594417150186504210147265773281348495924682004244932355061553562247417492006075721840749372059092688821394587572446785556509760237877506071647043449425499964310465951946878693390370544741074132315823932501553195832908250257934023382031413624664535987453117631399978315459914681383673763833931778194910301507601999636655870233424550583765048605935156999143773255557719749420681242900853761018314394110105669309274778372701085471790285140766372846585524152642075722770730672460178003456380589117095355927511239160328424911619704445048975998477890551673339164010514478307649928367896255257218216322230056990373761186040396410002956531813284857981611873912784781627578453876849734286212855928145263416251586587225245280019539004957220611074463766129784351731926335672155644859680701111645450550969616517640702599214763067836942514819967602416968543341098462237401491349960605152518269480409078777616383631449344199910239817972543883295292432008792920143932473940488782161879500626465847795656512157354554334976164254874527681170295846174060982859319509565681967085149382835692223255141351801807321829121725044199303343439301462906176618366932321631535460337669317071126942287694217670961001542907047579222493565952808884596924101784109905512999230692217603384429997477787958223196050648928690329717777089328269860684871479384805525430092060567294257257887956172483072172635437753371319542706399985224769760175458577627364129995330751539665040159396864246746151778498074511788687440632778078077521033375128740933669201257790856455571851497628807685867378623831680729137888900832841792319252086944194850275765123412832583255826272699827879986678205398375322171507906059265251389524354369979614490711733699105486698573209046049116319215420134781117094430029792351392551404546105337970049375473964286213620593930845973801613524374256478272870092057852006799454505919783245057299681513956604432288115083554527534071701746510123886813388946484763085467102909227300527236093837900452062117145322053031817548157721109572856080056329154871220152389296482330739946833711335157539589115563553996931593304917116848201681456626735381386231162547299339345601691028032092778161595401961183981036021886666038424913595925048349589664815290400634587706192608288870402865340924040502516005529796231151314697265208709846150311049538676894532173989586144201235861947807827408393969493852195832766374024470806755352580746517139861590920016670656907314252767510946238012485093982223238338949534123795112770704080310784917593190341478730214543337908016176192234237350278509540285894296564506294347060996520894553930299944192492325240887172262555175879683781789013229439317898058980080503392962134097625315727188405788678908747399747269491535014920702106922548449348047569414739646855961164714396571370065048301729408287669947672788897482727955945326573916025200933992508581209491001418335162397972495377777420114472344637852397119313892164372075294195630125434887698615260050827801416540602270687849511185007141424021662562152456759519669001083551884154130115238373415573151973594731008936132021680399588647303094654899619110443304126281241214256115466516961534425495417326849540421493622976164974183830903679969162583088082085993524476359817602777104280792855019447004620479119988140052567135117996308478539643338348678392500574712413971707943147786051655821142834364791635161342298389394061925910858155923258233709772783105170170554727650217270773470065519765556859993833196578193732255995555813078956437475505053276469955744879706196883909769097530519593978793633861920272205125833323565678758381210782061314728126026176544987442734972083090261073606919101446015588108081501486591100471866057997858614353097757162741449789190217145492009081798148058138379110988064686241583215644582402649745280103775897808016706099028426146490805507123630830247531338659001214778076132577243473475168005236729743660338863603631109837099558391443056399884325548262170983610279300367741752351836236830143025128227466065849646742837235383014828424773824542351867491105791614944919663860481110236701691868168483545774158031797692073936459006889751464738555489427521531702534355309703900225646707495418406272894990640069338557401592630053924216006574316355948813446356229958096123726188332524334711951553389622117287753865847866134011873940282694426417927949916589321189865039846324678540961751463550153338003906497645915849402243376421895752626378121658995028547916290368877192394393908834796712029248645240671187556554882600369411964362232539558201200904675558799721329011875581614281962048691300816899474143572623377095015548449823410887642042435101019160559041751324467176529749794638583011360285228648307127460809893721281472689381069030564249515004816863321948787800456856086705376589711029782210395258754126944164591504528455600448135820294142048103913207757910974608576679713340419177197919557972042662302838299599066380394417398172541452343731027269787528238816192023758662262163792109363330596142009407691264196192532599900623615092232204168528194856923361869356533851033139979175569053302734530849507818170041685508990726145946844735411045907018723386564845917650205161960500277951397970126046671655001119607022906640458759759150136283773659044271593766458308523613076303883098187192445624712024153380810252073198083521842169532031652662490470913005180340696226056531199866844259997695773907613179860052317545625696232836836256476804689689628108645975299535643471425858730669255227046665068068586334588161989354628639161410971000937400095464245999525386128848089587493960711415387954873772825636783372684253128855753572349621208102204029389306902496054469973527778778955648780498573509232328927647928432015307146983594848323542408472286040557765517414231823963690536101522830763966261261407722497788170873692117734102521595591739652272193877488740920473020583501623956417862278482988238989907729549303237243795249244512607572182096166595511421036452754373163288320073332984229292602554149086671744455387206330031024092874002475992780397221676931714905314905370697040476080696720422813873416211959355004371622818950334466621463859010899283045333704922950621784494255980838598755605942675838601829038651767301222803575290877226159655909172588866477848174875442280832727383967466957125510725810388875386778477878421977448512816182956789323081340433226089902000922142160771217094745011302803215130004209175827055525809527800917155011583699308272225976055150420131615750567930569537663088774349122963233407873785029267165283595939257823105177334451305903890042747212957151327971459140203052388187537597193630937022798373844724275949200095921468019808332473434369088667305367141470570309670102848072613187923359187126172979030855011206757297938973447829347916781856695055680415556129314006791415315774449332702473325395102937329842473785797093913481853403565903056684976623531482913850554517672861112960538013594588174899791161725456028861003710275881029140388240811074704879645981623025522402855709995304234266258200327803165576260122655203059071185823021915325465932146087290088970585814701721194066103819148053721154320598665920162361499537458069335986867051259807126483206437995266094856559700902965155030290471542782720299602283876411570397670768674395680777781791813050804760918681418087731673205500228574684659270549227617270564711080427809141435311781876025388904115240228675520709362262906985978641839588983253924908082368581054158003079453729938883163375585167250194133557290595503115258295430856879368175273179014069829835510788737454130423423253701158815875418029147138667641442860925115756176819383921788664348321844087407218366519834654772903982603169781246644715693966436484762072560027225678583967782887845616101355253354715554974188318155780065305234448164764420092039606280458677510907033645158602540468357599283506150978765599604473302998283750157442208070304134390975857621812471490130576393656658681139394102899728154762286096609613227010894844936069191853175425641413934973464752229048459622226934186351999292800776330192948168115295119786608792141588393105487038334536928407933845105227695573289842280838062899242741720051829307451131837432619545171684568431254521299557163286381341933586737815840248478451542769224470858541696339073176599774405321805653331796092975745137283524193373056270521976754735108789432319608016481042206595795277709425450332552093631550191922351184083377725751366740428636327401977066995615506613303040322292386885892494651838909228940870385848717908395525029200817783428114612195109675629041537834784694129713633197140799287832129699753199646173605938703242701933219516591516788055150572425197311360570576844868377667557717848499801997347613606196209297233372586636808894802550808424932864005154885525225880834741731159149083872108788314363050523387704100893565519597227075243649400004067713052667693930715604605678712816556952927173693590918776420388310965837564319525555590739975385407213755040548600609544385391321319311856601255006919532523494508129441371066596261000038004937510569738203522776379670481202981389385080390953661999034174094891540707232747265652957769206949045922828645108195172540435730272672706169437393252774393276546187228744787301152289733066869198284531327546991913538927102075949335922965664211397383250053396156580595273157116510272417547002815734508670964957493419392546685311161639723115288458591147513675817380517443504207892754255742084328961094413683477242135710398920558115040378813132398121972902739190591669367932794240810445740928104746570019245449967510942333036059880647981396178349513839435539220256352012491167872012075054892150696658751685607470826084095999053585028096657707554529429473255455039265917022042140493422641779440838779405101650257807269766795483366998549513900278170081389290299569589558028114355744634915899055204146410363272902544488193517233962160368223466102521365159670408000882924982665264919528146629672175179190793870942954011470609202969670641462818210012798814549688101270088588144236173775387157150561801580742626973571517803547929724350133321200886935254391793215433646198299685472768656751315004352373411229092443595790250411149146789190546088112213942639077185485019314897157740247071023313114327709637132026165720277183975601963360518078443520966413712110643173773428855431803503740748155744112218740794658595854500555017821291587823700996539481907040803807561168411210619977395766690591598526517901495488136496026154676977492068102551692395583849629856499086967897551327441562787397506479737518296174643467542047565547095357458220216238214142163954461391571012282893769788456101229888047287952324019963413603716053627638565273454486310337739710518195913755292110045474230297121888979670023545930541232723387208433531132139761357316112197568475163124029715606410743776668405421784654768868459836663230141174137309994602842112205395168767944053531158036921207654022773902172970452843262570119848318364632823258703878316562375440806773181216337892224951619559249532433809154187067111699072989202375137469099110211486681710261387486592730138987741465881955951078167167038052591342902314278160695626676625675141001901911570275542368684039355609164399659551461958763718965581309542083967894467633150253771934795483685481127700094538110216052064991598614589315773813083606364220441741113766752664497823409078654306252400156619367855002709687363321964774449720480312354086127591514379111794638112988818463574400575348246183947045518981164926983477221858761720175752839107206525013022557362987238638867902513877541608676497310257205500391088626996535344482337001980798816887411204017902755469798947016134556461723319416386838232318078028441742381994857733012645449739780552619348749096502788277174270091132597942905521068576733917555548826262593156340175201243178589744828599828769969471287118909640865464298188302772090290564197435183222258419283236978990832760125801015251265261403586986310394007196766677958838789942021546953919602481991149888007619610020959695921542137323895267886691762328396780176956622579152753124750015262444224487431089752352647431496738564881932190165390604085028744922502511446125152790835391020994039574634470944971977121162168666846153708374805824859361367816283213493398007708194706524653857103528307507724692821663095985985116494730155511034376924753852795522631096573645258344470450949226898719498775048804943077577383934594088460117618904594036119868775104416202824495195687378456590101454336565692261334321251210938090458321716666398360383237334669399533435455461103332063387326514924479129091064375088699223708573006426749519516727879125650635278953170125538146427750385886245222460471464071059985255834094409387617127940030692929707421329281214676506941935506412205773165164487322308851474373845148037941217886031010158359307307219087837584721627810995098613631188311765640859610056386376035179555648137756461606545086431012224367546284943885773890936280583507712546855173460266270101555741517344669386243425933242212086353377027920111502664540786150758286922109000047902698408546334556966571036157042555145409483453184463161505533844493922134436616618391239365448823516739076336645595280906136961367666149201767945649475215812240482137190900031829302316205309470320483463272090381201313200524293054821633331857983246673277781193048126627472903518540723144200621857178890264047633009307163001020868958022511668774128996939898137853263809129450021348951413352046909690913772784402886107992721315433705739609522315371636044428699378890116330686700760097176902532409102645440774729822688917773229196693700057948930817145851818860162993839368757074606734715814393346187486088758484994889641044573210219388225714429638329613757322548814526386869988014600924194758319612448283280688570987786455236862144110766515721200018120182969512622859467207091735633926802438927319437790563435689592867642123873451902642902004806115461395180270428546641146580678095130904071978571990742085694506380726036774078368347783769161554818407187733244586276203941756005391606958706854191269402992695874799121955486145256006874096356133617160700256417955947076888273861556770865858071208377970620917856982667299815257890844514705639747533191445341344714720345491194316853469290256811280767715600472382052859480259507990532709076209897302250431050151006611411805649890321554383819897744377886992876813347737731903129318756101199964813416860215368733701251564615437089046228058783553604719057061251668908579150691038291380648784415630493929152683937752693084869122317491646939681205526968781035288631278071262068695506931971095584192772850606646493776801169755104621393693949097112914239329841596746994772066017824217068406852652543625280692902490536478319892257184024345174855070962214633242576760923367365417637453611926111789264756055092715773123555286063289920172080817971368900734828188030731224615430043117632641884358765936576588923361724209333568817241300296035915566459169237261175285143289993629546294115959465577381485692586846598955037567174299119626038083557134079762878234258481870748179208772286712225872186881719370401794831295744997458923479908201249744202394204645712875389688589607820762286742784035874262977318383555351248204844804738394545493183028203992909915177171358149750439560612686776595279018048578950622674468299883544843272385519604318040163620115494472302949107967186334554522560518270563483169989760522620218069505923170265689097809735650507162048802144391476510477789739986351087820291018720014982940504982821448856347990061161330306464168903414709261244927399011816061176320762044919937881660419781476612814424119685433216163712736736129101385864867325251316031550438222687395981484422185888478969286474869911567206290729769920446796878540847061331677567808447369041156711790523016807228999725046392596958511396758237642908521657941011061544139912854128241803389837513120431379225842536929832850941403049715012652167833503571234603750007554192716315386694073824955590663455711563242725147286091949167472348682495823270337167039632672993950031570647623457809583146151862036319445713604424175251367434276896085873497227108120604365290543442202229175021716260724285553999683478079560952538434098151446906366016689779886426628432759081693748668532402353558663819811018581074319910536193279814990406830245622440758773413495844747841498956986800649611116150558327388514839766836748447944255740019553176050118665266239260388283892882478450897356920474318341743534508544375257697040634646353028608752156543494600960189347870176229062721357628261447243457397014340201271576066036498769523208904963032703322283632771659430829812074747086506617866154520704488035623663047966652921709616326188130048312052625111739059314785325240871723596153005549060909104022520229464955148766686180246281095771991609505971661577032432796978833635372233561553902911643395568444555570357749851979481843378672303475299045155726493040098799571163715222562896059582256606333903394906665495358140472579611146484169534993093708887835331230092787129603768374208916249804491766375880773493701125555218252997664750118161987862619522357659293957031721914135265591334244774633895940849691278537518520023683882828718631237296442844659854040475098474521221603280181465874225310514139780303484557671043196460037460763301067428898177569001644017518204721340380006603628602948114691406330936151209856507137511474575423971562560161932126775719834106411896068733912049655348076869584673316298110294017716356709647428278118410982013973866895503337625650964432029281650868796820554726099573749770886487874173102412236000514874843111050234479609227857481287056562595606826666547118530065599307567776397913960202900589296150451859690233813931599503813795919456170553103356932499083911506174645620098853521533842620146202657276130149801314296360202350996341266015896744384678179803369903152482875135126364569143283648694068072694082746822536108876395861110942192740162025287168407051555067658344933141233274495076708824874623773268457973056040520380345680970634119742202066129102868018462181818287627882490077876914075563190442484352177268226827540767241600011587728131572503192305410557324665654576911796169455030211832248527369698244906274474214274388810313524539746919674718619867275016360812125087387302884560716958728367813855177174637559792317494013292159492095709921097466300506656726922137831242804157281248985215484257229180339378221177280364310652908671798111633150761882258867219297108641759144951945829672472184092428558498337074469887531965557985754157028675955264755333484712408435216279677291609112972495289667529386386743132582422808033118447403351645606486387315984542328656683161804573974188524824861917969234192284437501850183964790505526225184466490779337571448428536958864567617317162596276760126865581487632169851324123710623040497854437984596637844010258623463047445897194087094891584204908205619165957070196308453902365721034052383572366935698975922791364255302698393526593921437902160715346361627388175027142360878662323227046062497134454752432860369903134906099439302745168511207228926104666756396220855236764896303018627419548021179698800063114295596862419711656304544516424998968898553128727871287112253797586423811632341125381175359987023770855196928002205010587524374651842756588372909115305336870024673450225322502128373166706431038902862313350753634433850913921538983190203499720564132580217262749578998571902513715633632973047525667323066204851590036968447470103721012784480844075393825290558827169043765500089789096098327889610560148738742835834293181404185771645138155819447732665904152573197453007033227410828937718601389243947334455345858337823573174264393522669589934215718954563206673661884421707143273388452053688844702936984874504794833038811591230638502969240921243506629645864489723521490276665765908210772267568958834141684288129791698918325174025380911782997881486288116475618413901855516808038594253500019506453435228117053054379593685602606422771991624187445989399010941412667620075520807223481247084191176121263277172894214149411355281052323753335855404562673879295920241307244140741088692030476204604272371918649120085712379332997492963164216623908203329060607457455043391524608717720140492124872640548729790697508797096000250124578303973640212001176609116726255492681326984585150679634663339326012413644221336405176510018139215469800072798874621949709553376789842812050436464042301044721657885973607864965406871635772580533462461733227661741892876993585618400398372755377431258218473679354901566526209955244091672883131584379212808585225104186023535863047208720996734679252270356508247851867230453653859965584462722639699549821404531521518509646014428052588400940834658590616312782555166289614473936475984389073930965418498906312425145500864225219069409172223323073718076125878624931103519145715275615391277178375580539712618654906010890441708370850851837369608266217509023406886054028490372166858629869272178246942216388403463228658935331811288565972395928371363559749158963138633107348577158233712229940582142156777394323022917767636881872166619059913100624361678817060332981648969595926249267821656008277924499459260285298180135471328015795122290874878658045268103527338503281759796765800756806202714911237124323579607192968741935684195829368217497228279938676113993981328599656319617820023058539152638797747134113570777884350272916649039473510378823698813486088935968385111592789334699598325713892756453765939781138801613088899622044230551519228439425757530568387689020375008220626049097830002436076680919101029235657499652043475261424337335637466054368932331683223920428741942204494744338326776411033267879993933506892780337003079891763652970609031132441745694401438501269051899307828727620487243268069415698461935490253673989231783083526405654876109903430134156050025461960238311462313114092045777677686360758065513283829829296729739096227828301068420799026351759728936164980929117892102001943498725805992816961268549819528492585036427256286336574261052277113397153320591502438446223696193330007878617995317142239433415654524978641210977898475122146139026946156348827152075691426152900459260633889046090097697057828049791700593528518717032605005267666951977437295225400988194377691934121645746263334310556398049496833793781824497022465903825312133199927649147116455480340100722447675328787451368097925057790275286595547452885160095798422004453633637091692336429572795928583511110274139241586598995303966119936575163574093878991260034047806821701750764582825660297542494640268359592258024861198366960461337025440961505989347094788939172127579942071128749363148775386044476288370566042115125930575987199945767004070873734794396355819036356425443216967215261629979080472942144609590863058926065378779484196382615401869789809754287940796813502524587424543557221800250706169157788664246767307360210467835739122357495483495138836408397788782650799573502959535321007372383252595001500712071073159683620546360130824723128332167757649186177763136313018684628653608832692067785879758832344500786958182637168029012541656015333470757322276070391537760700915951324646955691000005670897371706893930494882804800249322508711127302167088273012136365957329422720202944921548707342095866717246950945237366069785784951025000029634048688566516670211982821029691288436091579940381565507538461032175051743026646750143115788232446487243884380291140812621432806672971950472586449541247273521179610451096708072758470664438975326020123666888311671933145200761348852705914368194185240787453200616393472419605399930888874575976387069216828978503962420826819810421651441930984131485713564148458593487136806676157212495250884908128397334834438671140204955077175382164783008296065561267334079470500459881435558390592467426921561123023939495660945489387217808639113309169750417237460094457023019497973818832116008955268446105935676018359505474255928024130422028710914334561860686385539427394741155865814298399056064219533177193997941145052832589796187323544744803550474716143313413095782316243526398733914563873360834637443111846004288467484916833743226643929716583902014951255624868631583633876413997552333021884023547216228227753011379068720001355013034554234271432876988549205041996131161944340908929872472744171531347317798829934181857384691909651816587182859276774954069408208461743590093387259088446251937106805848453140146212466541843049320433513675371803661190827496777443562414329778815026181485375255861626488308181035557411575432052971042546519037545362693502104695089241463232562647317837111699068835584520190203477271059125144154946938031299160614021720498448722763052974764470621678992432372246081161018084427249014561216569575561291148869276693200314003132931132230068108937404913881932254510208578164805609746438969422153821279298773135011288649524933280720921324024667279463614998908486384389744615242095960670753405917401842934220866807242062361180095072712757943263214497850088859391091219903223019874349408297190213927700926835244534943498911040559788128239920400611779600872028246087580593000598134221348018147797233249661034081211024909178246737707260863475242212785328380744042640903014301212486595380916523445507473006389185834153403050104653770962804793964946554965563889004879561947369550930142930650210575363483234273922102422174506193817793893721173612360220972184879010432701086094343791113975611535083004104818357914104631426257393941302878779140967416267868715076855063000139589026517990179545513510946201133191299051349171748432326766541576543651295998255161029625098894569173205973246990938199210375399672537365466006544446647256111887581021263179174230052647023677579310313680797998478447101619408494697189447045590375129907760151449424748466868710570120586907415945233805897108068743914187675400389174933684466267029865505027821562877543466320807844836167292806222691776036670326679186812100898432893674381915046573457966465456267223398944187775434801458483720376272404212286696767030678377207446897717772716843636217154834472927302896706031802645087659679385683492581968623206866405458405404607824199615965309711880649981296285821851975032236937043863157101632056674368739347890114258090579372327606439725174962337703629783270455798595309986774128927119603952773126567515955281622279822873426813785659369109200502952970061656250787480159446359219763767356885526908855408944261521434420464850802407328800844926729546814752539373996896230742224325042617453201598011384072434735294178839775329728475973573644347900351634814797156361773156214707674237447060587364137265740413924869242697252298454628558281175802738976695545912501959109219873957414554130466222306997948513733701206578439332592614462581894928723972360587692803028363287430795402212955329449024598162772391095941326237296784816667092148049061684143049017634590914684218217763526838370906395380047996404788724884118691875031224365448817838804146814588768963023285434105707215640278193458508565633530132568864982253112415903275300489447660776077660101162357779875840576732749066615762758995447412762835343844691129428832809518806870021868888612323048947132047865589202030296675277152308096041682072444661763553219657616708628157227487316870032238322764687713308747960913953871955082535600798847688434821156566704277119649515861144067980291380422661031284072533074102233577822835789005829229569713780635786685587488656196005934249009537352331069155425538319727959572354131364096644216655127489200745806405301043168378091759827028077193410231836492613719268232926267593477745749388353613088271977181129224825588619526591374797048121212630181339324409427347522192888988058132152667345850196071274991204347114703303707529432869265574329976813664052244444822620338085495469687549555890430801297967311686170175195496329339396339326118064015197136584055489416640280253434365048469706302748895066362028258819745870603201140142496823575557797534599293432525782053704994562599810440465981405093894530690977282814940980429578522853178576331322168897502807778845488046284521908635386979414613778318728885012409620961108397662389800140907876244125527190900524468225694369437345178240626149009563178739147985773347625166570878980115851932910891634259594043542661727185664962607452757902471188333768840607463695161899562907914227421532051694332006171828129601763786210433983720033931688777444455351578600006856624575036603315646761030042805263227503812812412037821330455622723043706098308649786213017097614502185874067059573554117713847833322409345026985889010254632398828842891321386238840837467157691221584710598560892418762599331644019212780122653781463726065734606527018491266125390537908008681186566641655649851410740643968668630352581803876091257682623216460619008779745062624663942553760921782263771453535922918056122928284457081799376106300175932537108043964324726342923510942775663926466451836194275709847790163143911377105725167272375633417748578588502711728920584079903769178294169364900286572030813344500631697457920217073965541225462144841886799801241231404279529797433725823690775135406209246387335332412301484956810341892578131169104214517879212434238223899359559026582628785812270488862448919218158141370279503322597802480947709604376917729866901101215807138130670758211607556220550373828701681502968612210518141290908057449946114523798397577495592806187491040523662084510834787564655862898213224775074279857986539285284612532580834166877780072569591157487471943446099359715822043300861575451078089413218515555167301377710597335290891008464970729487945024067887769934846017028808684174876730544324487668053425149453612031364466479610701941994312666002667480948377559462123220917924678705765357961247782790651031995153240471982388318544050911295389034108085366388566528463018433147657016298852043787645256720905626644789371689578235402505405236429456396038364947157944999749850170228871129022907291917465750895614613851138701547380647969249329573160306100171959217308315267548996921792349663653252504545516733447696975145422770577601134518856299758239979982836538472802115545362985118410418162108334871252527110170931843760422218615740760846050176438910198527913888334012362985669936942607432414941556723500608746921886468470271804846642298245672850928128292763177602138804137997026242274220881044697830664528711868346221869207284939173777265792846800900319796283601760031104149792712530797026821066410977345634700546555393458259372058995537008620935983116358617293058814375679639310795318592415438800368315178228695873775139245291430632955132238271768618705776559403542265591499458396240426330025779103358738969290253948319187866772748995210033256380972640183655109565206289070147571052723975176107486397639853743141508596176404384665702211567438472815803860379840081955359847504317821318760699935522770857928063779145119259821537068785494578348208137299684964352243448739074296594365763126148652350463556662801232423608382760523032655234679271083092139520072892836141136415512592566566405067620994608468289731021125313928301761951535693424037228159019688233963348888801804117315587666775346752913761417081065470975986517481302346704457874392056347596408953165503888250822983600003947886551178884873868234088638605943396777749704438375757522547007937909815303800398437660621087987311952922503847599093079069187679995382764700650583672932851333684242224545769162332904056999548175070108701619633573592075242315902022205814672293216792824556828255423890994076060629407086874528282914089858353002128907070734358135678358241628557428974661470703869218646557088946994501343013224680916074963557069119257747324811001050170548502057593988833320353461840579862978471929246150312980879694469019074547191997351340215927334696600021877731218059893688610385856588819227340388868201982154487612261935190564824067827969880949684328517945636641847384772698342595292120597976203026808105061435504003094356373149178155771025593121165181159941529009706912967263008554569995174843181976107086394744304949867252778537766044169118816657864985123077798671911027690281650678790742317537437695422471512826003005050632819191226273711941043301037430783813664170802901282435267151924538903575126246633530771067824105557401994925034986398089098401755811249164732568037784967908823259516405375448229730663793016098980919256077222397257207527026957454782127320124363406039120046573706306372506431832783190531703539327716230352474964349067269691904925464905532394877980182032408727947899708635089618568667779767336002931489213749368695127813537968388675092572329924243994813671895563563127357564181246104373717495508507582524075301971290942193501238949361859876947694757459978092994807477437785507746913239854812308042019872543928269009330688509438883923967994511316735637525938743686514269119286007263538497368557501554555135811730268952295717693352608089051006512641726978910755327412525137421312191349626563823387463499384555953707345934484533984554370968882643236198760240170979415068233967048765224312977414805259494457280389000920860329947711042944035280200145548098994045583929276250092214970837337679937182957425562112885891800404208520875712291313221867519308821561830659700986298486167138251259505602327182168230331153498372646384899671178949162737235740802560886240624811793010625093741801601298489098519310730350199521221405963903390331239685370202101788703227040639328339211294343356816995279891504867353574810935059661768862892178989526133443376084969981057046317639885404551944242849782437796743621446837773016043469704749214731775397366363710757526317206436911684211787659606741417169012720528849235344175962293482662014701408898183731077106978482429893241740416802041394231267875300400116715020231638707565754470416054508627627084414655300416534929794374133946051556866829460940884981831466135294030786821166381667087254047970663333474098446895082196635002369489845395128873425907654882117651422554418297191453431930453973156088474103610805621861271065373214721946570574594232855115427932010144486672715642934629063836744491847185019977730770040487297751000385520135089788073227662001328840561936870044360443257443892469416320666358057103554042665071472189135163655663237678694785179244200071975850757617679937095589783655862532884000859675150276687355757116722958467583584549079665789838495077125471915865545774662097010784240113664665118918666706611844562416000464486800200444301376687149056362628213781926971082230897460667139345073145200186088100667465592952631759299291574809005676080509120616333791897073294812365434835106579677655998814427539096613693175316554639265459337338664100138093865363702394582616166629903575995506849954931793725410061980324749575348732861778564811874102522471026464404868039545918092422762974593497580301923514770012604864451382420767101846351416790482365299814124465859912110017233179260356374613831266936099693587703711139664245437620483970284933330228581607603202104812896549102605679727320578312679119691916978765197247524000292161775109868129682636899059615512065764430033316453786156688433632707355779866599753383271764015565221659707720441580179514541382150087119658734752622557174418096599389194716594297740798307696856013196272451173886517996709775340336718799123586204240014965030563639215926056532178266390823785424393949893708020897580982320746633582450661790794280078923748189147595551503984850859989669270107012032500661014059814365797565109826812063770324935679290356484955453123667406867027216631797803550021229465697066539715092832128764838826258320700989984181577545355918341092940659430173466554995092070658877565534614787221528206012111254619635361372664280781907995731252482253037006976932763697024576974210698335079266179134149473069531877242962533869759899514597647603635821408256845596007337387277042594851078085244043587475492511933316774576095043346304781263092245647284826185084949127212443957134901157428596907283603945547344617626921058232002426854790836308951811871236125565228778659966344860987820283223541674556275494490595384041115622675600254963341570922842755227070303497393462237605839761999000262793918308853647558175511341781928804469470660360881246614376180035359240814090527563483869103124561928725904759497480649388351830615601385996361104064940842457143216220316612836267484239807577853968112177066471173446392852172926438217866673633066687185174230557073706934634338771973128329264916262760908248499831744868383139776106584719749875979292017770938230651980240578492817098069164641771878111287048281092580731217488620744849307308580858726222716418859532860906116022769168108298665896958159216671586363740115373966757314700244903280915635009174103312733847859576862232865009941697259194948170723366958003285559190500458434419319705513664329312272695498845829714370432914499492583197286326841996051830555504038481091138169105003642845974955890911419035195578775315590050805481441894997909568612611317236616275561044896709846426470864886216755565570810046868036772853342691675195529603043388080846524400793556077312313062759510597722487815108357370750068588910501879329259527868306794139021856256543910793471254840758765000955256116040453078300423516019619341619867927457632419876786694241126303470086258943036204179741169534554768443376420632834547785489918250965351396829418689611961406258386571535324486191349790891681211280182963093849240810379835794932621806084556133921671609879230146685290630089825589365662564834187143591590943718964080481519845328695676548265506971377119748503326060484120600437273324581192310181461662429201040722997472275539223584312369830978717685598740594745714026556166075845186913468069393422351025903928763233526554195179162076400874785340530307956323000935911291343299138405302716891180238537811109841638085889262025578281073626115218467333827710993969748835102545483569927502923131515538396471131130793329000190100298711169211933344742302165867861102215518901571903340764315605256042461176124137541876105925786595474051609144973911813254184746592622563098182018209005390548679001217929076143534398919522662851921485676909607042058369889380900334506233369814450911689949788398587168351638672941122509506355204010847200514082875658907087823416130083324183355652318207193608209404625825340770869533605249203619608974090034813123599603881852950050070237808054092939584924876285038577077411428268626951236819603338265566380514486283634201536659374352978760091354671309643549196893133935885236470195874044406622279547693069218441599905570672812366087137274074399256914085551790425639350172631461491346966012446555465481397469389096977730108912248014060108521745162036877230052689892823861903575754093972945539595106239450855613788688142198112807409710108532387299953892749162901627506507133788963740252513250722985360037907210476924986505634161679212288692072999448428688111983959414522843968374037471024421183451690429426830005466269576330975329394989102936654478053706135063563892684858055815663520076673415857977622692752275704331947009574712139813878671070285781841898078492011391466107734753840701550397378714293681568593312360968283707467108354959893335803227709833478949607253971631815191000948244017587382409104217110739456980941073826374002119327740700509667613955506639842828752679480206754449597094922115779093822842486207383026455447263971957122390530108423629585890980343962855608645086588058481490039112661968110856434039731874806511185808613052946642500777474633764856420366706372960568539555276370726301965900117050767630176828956471059965913032811864454999053702642680782108631377619819460179823674099066226537302652284582322694733325404166030375801616757159363189087846969978300079713903924934546509982073109876647088026968987669948774244042617345671522239902773098478545784226082706416299956075175199051192890018200812346785871359641546873098345380222893979381962979936997746493187499937233807363947296957441239739118223834633775233204331303678322504826410941993197172404673350840945199047314715415339249888121092838616154992940181782329699143170551023133387154299145659522546685434007275349681172893016382283034345809847668224725929879695687773156905706402805449966695342366028494001735734323531610600359191066047375005609692554491954113719220752002742948263151329072432084236251177827625163014236577401186989568837573975560170761505004826017435711609778197623095010863830696339184844994663733879706006776264072716052299339414988198713473648354733887926278278426911651149822685587998951082035931341068858591008886107375597610402151796548105887111796221637632696545117536637343528474808335620539188156832844720387428421948255343747932454647375385272158819925132435176652511304513618458031832443596373386186364181466812070992096746653535542286370530983619610172040192662764719752079420480645949215149900201982814313144382983857864342753783472773578621160642674024116347468015272681351796228720627346756601354631666098963353360767771620329000648679470711105941973378837396310097200081438002032342558364940065632663189532583183302636509315135987984037763634897020832076380045986705605727980580179931706892340421042866302944020631931766022793587697182396583070360152729758901292255832164623786288200653141962942861692946084156472257370493042705421626013687824327384865473515069143545002071575309113467776573726388135544995993343947040403065127667431640334656724172183107939748922416816535060096997185111587606366690869347760578705897538117930922130277156221913127313677843715255152082781033310801768960612226470367809181948474655882634200870731525757331997210654493348236741286854442679400327797643145225721055843531187911302982828028538358768065859648254058798654661980570998836238981893656955205501667131311498261290222689118140288722617513892207913069244814287745247675861447544683218872448747421188375179929342924217213166688105343179866665315977448572778589195121377413538111968422337765487600335615736451733030300334291022069405344824343562965191036656458200372717451551279490677858787537327697845703145078389744793387663886185478460735168256166031696849270352502347994303402415673532941194989193685250449276070110308433554604191630513232831103262292951773629593413117211201005704135454786085951707645175967178595792553621349967557674772434590549837139089769689251546800930113022185544319481839443040013368914450615804978792384571912552281317168537753077330183996726380484574745144441836109809755202676733546428059984344747338017164980838854248868394122136795765516349827262482865415984737503058521571501595451433433321501423537933124428218014360633014307953649098029517690046965393971729574261669935280956000128166386778750844475735596762053326855469438494314921790373844563444209141386004766703836859454031951462389731953346172047130699630970725420228294360112793556797018050108277142907773018121124754654922989931393863230233264445560464525435534859381640396337954212377473050713831576862509635109782163319416837109364222783194079332038916188414600778837175146563832017280009949713679396592609449880581873157092836643855003496454785954889646353708657976410083893485666847281411474521831989400744206338524510169586733174213050257221436098603793265079150191498143836335350586350419254033148560246818360945296923624213196913061124158929692700607980691444025483203360817810292950965158188257425495996889496395299767849513059057562205485432330607156304452038604300274147272873067723314706967846318990998990271641692214658048919694381371189488762430200857113053153472307270288092142370484940661657370526211127027816355100554084405542303842249574320890184845787074727447820903419818966932749251054278496489451470299595019821851251342731165556603756878936715193628622470890052568248908480658640362993603216508835917577904125387710583201641267147874405993681288223052848824847359084279815954080786155819536738645409504003015326697948985168010881409804646646087802932077943269023137627833528031678312255996934219961627512467759582510002627211893426302481675274127875747907640273587537589033232943209097841593560185199107294954298814770338688730412420156487573383258725297432457348062861673176658828944845531282597347543571428546666125406551506081326300937735700988603231263463647703011391311441995887154387615513321561725778165962919711854158914528233787303671044062279279436782969747652236451104559794620232984761277460198339341328161756126928122742292815226766356453539384070967529139430897542079955280100204485361823209931414919147858045074232777838800338998797986264012833787887593670980101296602329695324446580400963027935991814537572747162047985015842285450492074003006425710949761014658365622850836254459634285690890242596003261980921155459671960686986977268928182317401984878261932678245337095759296347592811423954702628905110519097907025066679626902324552307560371157331263677061306170052426300041909890166192206084303979457138370909061449909667290712233588889815653135639109134265766397224379172648335910046572073319917710955044436127675366459988318303550644347329803071436863866028058115823954596273870158255636666597998517274294534469272006102538009452665844151494478965081699676399853223956598047618737235411572501130500935569038386626359958868439794384551539474635821580470074051141902221762820282014606923595353793603030336079488677669978911567764125077838358329498592569469891088647785284330491336552631132400956568862903735034955095410733340140787952966933269418571901674239051346808344043721927015261953697173382872322236452502299033587490553894165032754821963503367519770049087698045171082313039730649342432106642810917495884431691555973616309677393155954179292918371229706263721128014960608132257927526978615914686029369099143407949522372059764598932407453257424035659966508818359951515704105792987834053881243680363657960286348945767633024069645185587521643414049992196811002796682963823059298857830743065697395494818112048149631239367619469635710691002166022404726297899579641749859110478161950696126506461982072575210906291638888002712345157798342415820858830671719709974095982481934203545402701574154041236739374610806790240791233900413384875835477878124543372803130944894582737336295731332789516999974920758042860427799737464315357221235168383720417186817584026412230969571892631074645171194204985584909143557375130945534054660759658370437511300919326215001844340450033359659055316096202384401658577294110809644036976687084064836711427727526843557600326780758101125491688394510548632591406474159035574105462262097438225348909617592033066840935133413673963619581316675211848239949275787467655755823841935820532962479489365410595783972971348972542877895413006657749833486766426946664788747910098134617866009943762661778416976848710007711976377325756878678294732326114719212422109696967289628596682488538599992444464933316593415345478892174765033219341081060605334468216225996822538606457128959577092384843620149229981608856937140938445509168782720043730246146750135922575115950150412861928253519280711606162600028044607571848442212060634077124897802740197824045373608927042090572394376416451602829894984869649266129973620245458210434927424640691249328084381833124263586548468802713171168799097558713476733450554538752686669488924979597807633095228605215224789594691657826620648261119179739842401704071236324851094210753210647717559921600375040792691774128937226349513587080830239203215443997353447565889522854020243580732154446183745524568784271019546336814718547981030436003906189153915350531023340322427166411286661013031920668455473642903197809500990282602378989128219920662134428298657236692484515782645032274610052716484601402345954023573656611385274482145943228293559287947704344811219141874483023709672124763065038213184746879769423865049964660550077440412438375852974649659300419334348047169306940124853575956787133125152090876700617818855220426732639770835598162418544142982098703077340464399735580256837646951606048019432909232154429896057598802667931328831580136247442074098193034880455747002870856939129883190434193542657115237860126265749551091291934611568703527831710087405871816497843574031195814741277651531722646562270643494920709653101630783527934663846572942187127271511825755245260079127725005327199198208541661256791447546085138788940471341214224735800150762624318132802261935819084546966591580456795373467570168838064676702751283047567589277817964746338383859283990293079854644328723106893259015711736507955681247930643766871338104282392552025989983659751098817573704577981304943285292995735618689396194097384710524996292403709292953213644741948341520518773127984727708594800226999223379674357203030025661719568274500405319974764404009899396076952452199589165498960568043525507708398720403854895253947863867331139206748844275083940823450874800871888382883858988615633398590408672912187997954708970115014749728366106215615185621881475339036703963637078301594954556388793027839524159411180260274712541556928779697358370652231086254191067369189584903711127374786438190317286138846782003570377563653106860520782942392558481787153322049361190571834284560505748611927780788756525691430073478540285632091902091323319550950527966122947621835275808044188784511109708685335476801253979902872510266699149228517312585871106561246394394504145379115539168958516441811032677510800471149334847675468390183925156133487202890158801431315475366401331717641044261411872534047511563767058653978997859918576731566434840969251140592331594282113684339910649653273425882803485613014678915012414641939048059114090678935732295388271824734212023053252180345432039024102292536382534768263395863144826765330440018358536736102065417055240084920955867663297328755844070114558936111434531452134460179633897328031589085264222900621325525583612992660059782223907513628911182137092388799732172703269230005366998393877075311608583115840977380705115771444236848716979566121930081633090805602659844008800615637522611876845815025372204601597173390173089483787106351849411198817376539384391577841269837552809109838360381004743651109720337643125899171357916599650588898734600099332010370645315533127643581712062857441887467166190674169919984054525044354216111761822057810952948785380715368106289203380942345111874745733461996486731105425756522167169413516502535722678435476370066604190849241895000314357498307080394915692224241131442917657057258194335947140174827789325955287995483745104438941652130860818519381737197778602717639131863294708218578034246683857823121190202490337807041063019035028622204019043497853546569678951648105298187428494525836206660622509159187295565109031484999988841166047074323139446293372791854297078753753788798136866214045831361375483560987590908767755202986998746912571275292021622122516853443051666057150701657002632022157741439480284391082419289412230000023128926567123708757633569322722968672926067712115645273605851716746179562222710996812880556865480193544319092816081033318130634218652029784514541873031797216858682534366565328763132891040033479765207694296979751894054991434834257564473007419951479761004326531706511962153715484572468943186479980848365888265353801044567848513042774488495388553050700128236068029752129854294337286707467537411156372427636079383857133497653945727136747631577423045325913285918268010717784149778558965443230234677580961908104079435173812119129610536348825674782144588937698091599221128790353425186278495698089719272380764913781707519530441597613482765686481308860070009302944047479571227789912170275156437766994435342154785846655617954724710122192224366609494798562144163037101849168372990003650710453735709388615525440238810690290077495802583271962989208318521806615411091540183269459904614110989745674825717947731403853689375941417957023858301334378890037436585733767353800070760215191282258867682796460750492645672861633793219248750705661322492948280207176371187530338661679921617173206950123363284894219067930101419213448426420379361545144129934882369356471096060046595841626844773149184692207140296758840993570767285884099411248664574579876295628091843522089546527950027293589782448471042548525131022383589526392042195643890673877724673283571798754251814565568013429996992886194409405885682019197367195721030585649181887945174938777084722570798759053693106400485317493543972637803318126736369083250974498708064964234849417488797788800152568935097135377534908282007813742034891391269085376785128112190944026988153935883663289656325394504180634636151296949142350701932030026200220001606379909203729537862391517658545379723208140724813933621114772615777233687253657100216698922224568361457118399228263874877114037448290927467155033571697458040737322538658682052017729400794896054891098301371732449460602942373079963225705480870236659416209077392280596120284976949238910288906497934568314352819995804766307759924339747555268822595652333735291549880287201649781755220345430762402575024781736137098441676818536161581944601411233569987060506133466890566106454380211071930388168172470708201372493807006668653199178873744886135219007247673214328043450889245716822565455050013945217176218309875851064936241553149096849144004698376735098824883330354540150806683489066701611764650385077104306576918446920515799540764075729326759268679026381150721089526575269160812050319708738986917531881826400742372092591904629106615020077194197838930297538203583966295868483838383139713067320123297798718635965651927283519402695616438601332854993525472177298815294795389352997789260516936454855679642074772945920773979682416231140861146412987268987814523262320797345193256093057229081046751228539812049377138395571959714883836415722095048319632528556974926735427120204330085495791536417095430878327123177472656218503496919517418235826834434210463335356983458081382809988709591476926464028679682835155204515236489195956965334856634201919465933652995485762633864142867825925491490685892822949822377773401065540527987957512072188384440728365907453199227278296365100355709328281644541135288221818505078883097076765057368327829726419775455631244982414152730714703275110750340594214815643936134140937024879034509003842906969132146105362487639096250113068873103641869996367555020121846562297669203301228772024654340233471788942751087807181528519557359223170846484944166025072832983354136402741089675414180393149595071373853872040843629260294082416282510552445287964855351311969772498816698837718877562888504707586432490974053256916125859970078429940462422279755672099956105486165667052658577931362785024285141095901504007157598767225481639421159661859918370476166818411330187251819676948964769790300870425565567636675399948409801172271342425946558642614479969658478443224789887926758962015478252462160409435468732049042966476772807926939516260595372591981657292441341824905530814066821037605995701230747963555816830593983627348089817751809748389630277920175809967777445886865640574586926920129520572343588297734793395029577301213031428408983320056811460066408064410512280499669550042404945250439724501728902333145681683932761915640364301136410879523391534881231030933007074137100062256780422339324345151402567396828539958554249499565517232350490831854914394355995042063717796093496190809642883434471536459033929587691064942892457916476127788852536802551767787369909112331616768601458209583414754359662838233491891726373820898536476521773225478398655607939481876353481838905760479323352325782318828439087137670545802098411501013546685788266983951828478807558457875498589022565771633067377998346098192302470817302162781983920012814032863319671445613325785829505882933095596735176424069242563699577635871660469469388719537015811604620998582205386812200400992784474098778393744132903819486939277728213104065167081024786453016075386455860492819525507037641752159565123218634970760484809135727253051722963669230924048363489062828298768338827611843777794374747222195526420257098633674006684209047740538667318234548784827330897581430995887450361854027293976519945918033781682097035082229756982972136009343755113287013946036171498437471255707560175213696107557677656955357425216443480964145257111433410642294643994193350144293402604562410608308789565146677705143125707994984367619308648865812010289822353992361196451302455938753203749586178699804309228100589132787675479508202795358722843376650290615432029210171884981733733582348425810955951026557015754057342126448978519150120845061847900464491606457248985836611145187996258091016500181253444266570868141960375473557535907240346101751753164208191000930000545824802076240919698815210047550900384159496467339907779168368220130416991707525318452579418693662899328243950628507759512722368196835382170648755341019324267061842810108922588579723815761738632970137244593347718862139405376481291016621760069989417925338598672032961463788248083681721555766055921627927507041818169569888662002684866099932813580688985118533438257854880546093801658512403146088354552905319848997601355352561923149816940157351638244292987002028249449239668586376166303370973961731869029117877972608430329850312108689283707081016530977094653037551512993530782552319153732171952126341634946490719841716706849052475559720219916000878984206181488235243386300283641810575754379339161771318984432124778558472861080735070024239299347294772146997642139383741919094208114707425399121985022113412299852567202529863641413308962902677943864280176633034522826312063391709689285840254029795640886817712681637310344307726807306340898016583647990448294310482363343108590606870633381877072616658455229320724399126952499672060986945987517384645728656519071390862894373543917267706000345486495042526768345490941559288966257581038286608333611961491255167322998735486740432966307047905409269553801695752529879464141253538053885954328640402830414700973327060241982300708201835051125410326286841730898343334460752958123247990849562023243545363048892369023604970500728955607819193132546223617410879280127839180865283253157704297253387118131590082535187460734313635811567553400207593091075989328936346778241616687574847640969445617146909080558576222890444858942902241907052417972428419898317759512598428732449722844895447306366540057509475989729225431902763898775927174307845591801152412422753875476161357839704334109594320585131467624393537294659386626080373645556491041596802950011997498278417284613826271898419523629621048508473763794511543577697149376237535088641497412186575001820935050552232859340239227962666109754937944798840837495606726344637515764794100865921652500290405467184046628764474295863618116316316944032709805651181285266303934055157530766596949907469804401465905560272355773509441458605796170345382848394516803789240643146427603109154013452682363765554025263633154605860359318442616282432422484573233199501564085019333871659169275247843864790151387203050837491034719108939758072472441047239163880968829449040164970439913315303148109210639441626178250542021519630542650415306102163472301237638334684285960565098132428092881767575995508269648175053793166006343413314506356629712953192278700517855311518023208787163823186492809974845259301268091719464873561782689086482768300030129273315860251030724684461950151444161434292391043494687405602685556027386651332957287740137228868169067223457645444239620403473809989952804053110809789132422334745694364855832025949820778072999444141743618056024595860067626774473164288660912060417443703339219032325406513880315126837656010640606507060148078550719650623051904136985826410468317033717176722752750193942959576510309901670342092540072958943535295723730836204951257627238211759608746751509651611737565851644867344246656040119943305327984555994782706896005928864485198797681426741067009487342179680194740471491594425547540746184611041662037219908703627699005179448916452870136128643113094782462582932028816939622281761722388946483781943610820007479127404431562765272997872706812004933535037489612283595898409166837735363362851477855033729327503074482828118522687604689311791305835334543450502141284625833601540050961038662936529798691946665204839286598258101778762184338917399086929647977766737532363315532865048269241406477572389308947316117344999537545493582987869494809485253306302552167907730078945942686568650267592801573844949289088840387210477746584826492705977154829539823411749541498461540691404498633785090428930998407933584247952921132813181409742294230674575667459230347481325920241742750125087882916331344906618300275263210348393874293848487456891944923891422436633763434202324583430772517811088866836564237707410058372486531821856590959022670279817491226259515227929891745459490422531562147798392136505309619424327624802658420599332494729564696861520475480647826557153867032874848984035838197915464585790256474968977329254367618431630363926133197195920208389465915370349613475936982223782171096714544210995841569573359975482002708811305086828404969108275854591262007544273139036200388674060033961795957166314966068493327969210200183641518194541218171588470481876094451843143628109485580085888522551585252192569191835781874130398087356145846813642082188667519071894000886202924953011140413283242302784303340205133863046234054695445789164692642230200590745443681586650733124551964583503455970419695799378517316449338749721026603781597692667469580222123901381158045496433762422181253197121720671136241184577352502096815705507237693664813103365667320544284461058333566475915756972775645901734449259484723674364249494652064000513022623819661073136419890712449920989291988013728232492900427692632377066582143093440507366103035442058459654933303164186780646095696461232037236747509781990777736470389988952804025471875166977355245385442822478750180522225038564348032952250883887530290546136828467725644612296001261616606711696759159933427671829857882362306152317934816838409807505814119497596571432271710920673932425703516731031910329805530433429412748403267042939858867292632319241365812566450616648562305019284425098926329148879712641249986354706336061614686920332787086490499268565280833311929449118090718208469736308801469931922835436366334764464967843141687142321020002394061544210243377647897441232733711719326417998894403646684304705206349078076369778591595723278520298512290783181939456452998482043790674855463478777067081991109830649019459093396011319761355954047342347034057413863143097838042123193991799855196411454648447900789117115294495836115964123081610791199824238679643562007160332109031430571332264467447792230440145267848354500671063375333786818440912270654049896510571618428248290969079363736464526912976189528198491238938961746782012256075362412191965754514580984819681387222577435172801635654023404070643546751145325284023641550444289013703995132690724664373906996127479150284986816302096938534770763554048288238580885082110924219814740435211376021256771381563610196547863796228516876616683257131509070852640699525461364272064331509547600155299120438966179827321106750750023123137888619521534037656758132365379937877366772985185312434812338387086886177499595559204532239628822737144782153529434416276111300034696344630190588457954938179465686276773743013430218472199898192659421957270793208437226658981921233784883582615711230878331128283281912874251597597945719906089931925067681531265645396224569426038695878970833553273243640430310704341471989321610137979363350621630524638622068967929935251885694306313792141067544941353397339549517263416017544914453167226754207084522894024226776020560725816149337700433312632332231913071583384216198504027699919534903159829641181637654321995574467158071989495670946219735890158162224927122245173555401622280878033334598778094819878458718051484469589394727663689661670609315234836787185202075430136093059394411280239671385638036137991472791763923900427761076557469599195369526289922924949412313502868364212531824463940627888978956487741183286518007252450753821841932769166488060579999244103409818837493136173897274891828596516627888428349231741850907714677644966526398699088803957298993282062212424084929570395834401560613422863290330377534609264338986593517004179219782317202306617290317371160427399116209640613911556837864261396770556177939057379629293778389534618255495976503290417303938271828534339493864666700371053157269511962001806631248411675658662937730537885037901496871695059929256625762219452623453125833587544395486846870133034181571674535876170352698185613208388392002117502716410389893535871491127935479046905101358229584595468166385722556841738637337511874681784994918140571857996132199019615342194281531402167529999521260723761640464599319397766940585339328973458467181596476731342199286039658140901751428936864897539970982440740750710908066653448809824336362926593797125770986942048263034025502568702948418757273750509581249611608996223495095973909941657188177518065726845703137749658519409089438103218968539866880407341758255654918820731420661532032560206703082764618030931828562105405308364353922018889021081444752419057134440102600444350681943404174551320627381229493284262025369546893750136364231154716156341465316927382523785291383285079648172250764325801703598086829836527326530981638377681360487352870851373415584501672193479032297838901553139812893191401625278364709795896535749787696894419817079935746479717901928980518209585297341241734834364090973899367229253699864156344814107507537053720826699438892874828772128187693308113841852768833524489636105032418480581115574769317911528406917646088867778931310139840736956889503519544160267307857699423396135059751305074870365587350798596203409258280291522808738843939825209586676404162395257911981438282201235475863058153193062679570953597083718482263147481335807525295932554819459466719412891198189259079737968502836196118267387330711069086201474697255832743558973795100671333614560505116858252748405725776055675987090954120060344020817217421472577695507908960692193185767068934361332789704960787416429347922843937470999253343119644036057388701440239102776124734410965901712104162927200571084004497829940128248721337081804879602699308040369737704172613039494834024348517023081588101138936860317477418830145589048608144756796253238838153268264246135916158260485705652112869569741344278717018857037421493353665906077217264105627227454304571017927545124987445445151196806445511186137155917650079698080416492463825046573813354272026720894682746167515876265688252331424187579302458750600901722506058840389155749724401923475191729857839446438830637803397781979291068233935295786691360453117590709351517065698108557576084852043011110503497442015484820586745359824557789815398591102377556709074107884971175948683285835460416761169384677707897776443838826803057673488210779813965471247817527110724344535809448458796701528223086372143913418088749054874670722128746256711890597785808478493339671495312613961699718509353051034828684390744262536802053403162605437852854996422493113353682881656005564961101666875455837534224150772009430208764872749174762614516135356327492402971980317901038734229370237970122514956661296952545320122105618020028407934484904965301760080773884584433422289400170457991105291822109743760328508970541327422331306997818760369179683231595712792895550879352436457393701716474151281040955952968257739952411942906614582879027683472100260614417403999612953143208379565317312947807971378219091379559401834559877081972837185827976336378551976723386266893229724397138410040049187722016703029783542876168245959854880432337286922958313832310549950389689416369409785846862602469511734598555027864970977184687876620620924641713132006879133388462825623699033874655854362177312270887631917221365875475071015886160294411349708494787927884739384956547039036597665669132302578546759713698441438921541216934042855658723265706006312121271930876641093009621204110828732020298277127655357100771312204258163085005196836605399770100574233845320961753327325335220189532939497726833278883754236839965023918544311179209321486163169851055360742519032881791230599723043280365661289758387330946116417400322586596579422569600279737654557295938915025176372434352411723179462843595621681824697103412977541711619859642459623982141339515149443660172130005602801742959545315996083329594997843645281967613322100267577647519271709107621225027954418860567524273954499889433389772008061399866660385949747294095012231990200649228831660696730341849328686392103615308183579810492048730777339053663702409162097865417985619608429027840368238395634206446786434067538713624951223561459335686904685252267438576259150526865871384834360995886102955347765598332840021969812691815800474589623609685584737393105536589040252956285032313728017742350482043599997532891043912360705873242073752999009683809256240613086392839858317822619968801439841892617268824377424224678564397355535675740580200838254558120210364156551250799871076637813493057886272681436150630227815743033785441531316237718266414716882916932669944221483274569345234996262611094505260416281663930010258865196290385775559242468637870659125543504348865531550210675912160280193917125322560045036331682047231359106843723882273397065426104257345724418245749959428521274977766594174734291310386662224275029843395040722029638510058224261192711130237773348754609587827831823955585011922409637011096240625846051430058570322686677294118386213741176173257710018088470743221742898226971268093357789529615144286656073990109325153842497727462455718434737935776864336724548442421723323535265427212521707421190702466023731822509564433556573221880083960852551330180906543785700768551757135175882905066340989968262783557152283109190115023557026836910947068768936142418943553095936565704401776678352066337325602120809607380919705190735498294211903314398470970747114843709251346555394514604535298859711107696614173315755701510610772818007851812097526182857790376685415860258437349721266919959204919949785501346082916981407749871368527563740934793066892159908013412825360924313566118427458923704089969613570587646195911228905715167758203639375774523309520027468103045433871042172343555401455938273862594843951774904180163138976016927078524684523546921943156867381471790182125685325880862333264514883889470116515653680886062176805769185848358407755232313575964129022981645471091717192119937403802011128384417966098339196426665961744876690409767142997715762862725702695922812138477970604867978775287409367927134048257030188749825138714831498931312837692624303983496967449526904047368980790566712156199587129117397694196521766600956510294412511755180829405308175503287584927529508528190088989270924228856639775428623067108036356556568145308345261037969619784757912286937718276875351297932758333278102378519988282896923786316425774111854425990050503499715125329815745505151420193928814195932095166385559433056104264525564343322543302720657290748738907300286215333246436772431241967004263026572418404536323076307459423845966961225551460158001062484451994659906335547726889616225409945004523378541381377356607796629359241098269982493743023592068034169372885195214504288512029956260387645800273319953098497778690072359907559979953958671618888784993964309101259246621227491911769600908058772156391938467283159988713331980813434792148851271024396885226113372260607411263172383934849364912259573680190111854965557018956838779073710392553328111724173300092193970402403264921982079016784747676893584055995158059014616692047679703653817999645697556820860564744736661469754910308176789968900649317260504030658888513814260455947674082844982745684481525444229220552387082651604859233989855189002145127620503511914485698159979114538715698719900880014095270466380559221150409263182160297278723281580499836384378159479981327483315601308070337786576746075846063342681875063456201817936983803755255288788333978435904804934457789977967242295895904706154005611572718563647930130031365494116610951409421641000977150281816161508284411191595904899663331608483805864523513407087622106976867757197329789250238328457119681907082551759060594727773079760897359826156090401779882808224634592383432814132602746357178641636590353163429385234905446523183830023615446583045077699541491675203878622480851135030553011206729524089597664693381128018815660995966994248997275043387761872662051463906743943540267305645815900420693482049389686697279734943013732278813126224708016150541082337490062689361759416744906059961414169683272856482665523081680517543930651356866477486207934588740691416094802035257349265575016078895619764224557307827084835180425714686215971032348098923705336710641149128945693581559682763062044227591171452477908005835381206173756909603119045661855454021814900132364217672855935439093354627223817076414009040432620833645654951731009082437844530132375934365807359043972142160801536416637208521085924466672597471233724413537245821083125197536962412319647864040817848827572258750757210365026200509452743631951373563768821710760863163387916360917604525601713403060831175404002815213473936197441836936402805779747869070191152518002190368232237325938897731764185264349692840866723979049363010483466024408389196613326076624439933232313805069794257662368787122995519220081228926012974348261059000652800258108599770994501421659941916001124874321720322707163825929574209742537794205152581158600037771833257909319821422466139413371792581767777156861308834611284423167972409085716245135500571054685750534932756834125143860372214177973702521763642655744925465969698960999356661970148400983234472520038248765560151611897499573601910145910718485803945752673717773805691836051270707537790967288445450824058290131075986170056081345031095141178250299129963881034468932936997057855031113604946194360274919288864119094411654507620288634874531699329911114597274173142129117148575866884515109290030355718622140854990441999718579808855632526119748617450133065778240880355985719442460287551146133961838281164668411971684893732172236272926115844757098842906424880155917352301849665516787007864565349164897668080328128908974960019167914514448537111114618298193192104857329430305751309145028167550326283270875533161869179994487779548405764414668436372284879407981784273872879710234851551455687319385776725996512859482777861663667849110423364760171100514053187592045493970968644336955317068680176673153083342364258134216351536926595072041052501444021562344636993861977560168316345949854043929494019187861812412437158319973859542046153699709803961243458627496376129205240253902745929546492478622893173436028803364405300072107978847018888397913217089040636684402037799672662513780509726707698144195118099802938141763483362172410755523986704439074516715557061380583042483836673418569338829507070454280730435159852300085776174126754644466283740408441075070329339783892393431538404743096715386425642693451048822070410401623408756563534698951389776626810673296165137722857431979359180420015731653533630530010995006448376044592722643547370343581992236510313571301533920617310684460087242175708458535844865166523027749080534684344424634061230206464150951644474124387430747202554052331104717002437969160277276564611108915585049841716307065809244766674238560069126143925767253046420594837897320157084667270274822626239592935368254318818469885906484550407186105185352002860366052503564495259498466625248074658012477682960454850689519445380222910714530358672894680154769022375694884867437722965395294226479671337503406811254630477167504539946042210556986187977647028903601953161551785031185669702935932186074970948507680759634906948484901258319181839598088723030938519762085818866867563684123038794614191479629955400594612616067730708538148635892882159041521109430873739698503535624485296802218046616453514184998174508712462003047043629466472463206266566697020254760371311593873354617734651145519089322963850031647280682213849227033226897196964060090057614297569071355763089723592253955944714191067366944331052469067921564410183967656853130601844233110567163572542737875341260445889526429763193093085609867532543697996527613955741223760232466040348631294067114156372204921934933896383972637015000154172324467023385232761022383587110048049838984527190929155376749582620593120893776656344806025319406690274017076569115778975023943250646491480061658667948496500223169598620065111727434551373810030469983337530084787607468873169719374654959938037673506162483092725257732005581610991385327894657079826540636025690488086697233580782506365197055423323278232579356481629356853720036747818595132747561832719707801670905837417518181255720340942971620642600539952102056529415712520936947379664079010772279957051855176763153245125382349107350396148300869833719189217815342443407344970098977979370053742854557997750380905134795760734559005337673202962396823203323024860108267292914316036881137855476457205205569985031122982353519988518833705262014719661884061937534008318367663202490050095958467106659540395430350283436307241865069884809203823264001527516824687451187267835400960962519604820570313043497408340310439453750792729360215305868183130242595631768784810228927699694077500859121921769754134358734180826429512449353595245777514586882036938238778909643107080553100069195075593175715115103952176868134604882614792288116540079238639019570300325381555986767689906168558510418343455702098688656694170538384458450274313568489801890938124443427890967806124758947955641379088821518634810031919156337633164253337180498666250085201137629132711197879667803842781351368381194200396935160091418699837322019069888894825065487860335028298617863385301254845222902491948458602196918565209582031705512197830267446050232404873386108481760480276774524651171440931036531780671286954513125714050992535418267644469048605299362333937627943413595708344964064725450498989341123037982936309017368871097854935482573519192160381083887555127855478921372366502998400743479735216614619921197181863763577218278291936757334304458777571698999403078624655445420214719175181678032339108493316915040895251863424336891215553900604935024926235872580694942141949427874463945640314599111803345795420501833817493250995659566831354427026057881940854535692010627173541278021901421703555490431479640372272615560701420539475256648948803951724118921114433824658363511961934148302815357671294388737633007614684407093434221697218775994023783712132476684716955844281573592111605952573333259235178428906688967987464823394788325072385244910577884900759625114731282332272552502081424665790124357266707829726708487768375750863384471584507012924006907486944751291245629538576657278424798805035104935381358263555924232343178201860365195461519557544683943694677224640370567381320631707188395996847613067245664396541267861132449514174479077727062781864865024829985564673875084655420456049822541624989556036302107816738833810976501474732748691015442461827721035029797933466291612449302431620359269033462486445213477993911626931696617862397903756236345499408146800955766244053011264897198768350612863121303347436690108717042448090815819749403360789229235759138138038960555604941703458650081257438825100555445790929896060466781535900908018315866669558629047644909692302798418194320112211463187262676123499451724844550662575594363310912855297130921043251600128780978315508924041456102081094697980501722464016736952633062447937232151905955682836629395662740025314961130145020665537132272176841150830242692024190104411879786055147826668934339552260910485180946673857352257081575319914102694125067017928451299598810290779124868843142848814510242590628414970397756059042024294238102169254503049457684897357280835223192148491068355397016582987745633866680367345581798293419709920635446714343431228829052170070016794785929042409774088442325717771174653068983576538487478242483633404745723908755986608449453671690254892383332025725346766964657978972859202073423691820597107415497925879331291093736592018322025386176816957703467047415011963188820297048695383558182309145801527412923823955846999762763798809622471323478136757827090088837228578580652537978250607675868992857604870988128103914116373404640717375651885897702250285841318094799518158187004308090075777696834546647296667550812012375913377130177578310481807851789567964840201364769289303723512171685184334826455581020748632534443866347858969574737135599935681298817771089863283707659561188043175058066253288740841665609115208552795998919514630349369981296309572350021527592442094562870112484862420772285481154879420751547433567742531203181260433207131956321746776340417132391518044738251053563147793126267777665766301442975455646676489327429034057636690054478386487381297424283889322268600900342842867300006610212014450724001370458790512418542761345663283147787109735166667212034270806518118825864972190593528224236579925270573009676536860520168755785061543192310283542209921400833882783058928053748606165377206209861513442700793637465036659762553118259924192850966214497474337596414916778080836724884320940710919227258689290346502091021174595111025507870277350417191529471194060450733385054429201676113112965140296778943659279633174061957573239914560559875854325383619416798806927996233595107259706889450694371772600484833363126609420842938188441629755280032804725086338819886601505336466435659454791858316453798752478089169832771168717367933907470924198033938963856616985038259745310661192743300782944158966104473843630978472440523223248712279140504179417719570202335437770204688772722776246375102526803745808217397773511883334846054971384453192614769542653533323134192949382643950104036777031670249609502748204353431209925260559841734013038087073066073209095916657155797204104437103423124670108427034319449159939026037751924583660790153107918614571973626807746710199277604645837504049943439026002830412175267535641920248497704103848445044821399149834656768136017649695050787002486260690660520585503166668510952473337373196257461299763928905223739602980636268113047335533254019384799338279726280574830124088230849384862844512142678981760783107293512577655130090820450340271356973941672712530689081825271433372565004721571325299441629773380644665366614842312004353515963501911467916743280162061135852345324626696573952968660284852535604909250918703680598435465813704107421389449548942237467591785716371690685580519081194089109162354877166858493748790806165103093604355212020868988367632427043600019596625977734436355928849708390734928487124687286974224701873363409600006899752417960904112560672670076709255510946173118333357721115192135516970397850063010057667305330098615035278148380708384750003822585792848731772226413635590417631977579074942518529458319238539668956821703903741080272235667180809372420815451781146339350182953335308231371541272906339268098088142191120768477438367413020486529041397844882705446465670349117328041328830177008334547038169642104032217301770229509603960351234730084949555263949047525584076581127187822996515675536856947030940690288612488993817483565613939154635302627681401617610048276364276610591787171920193842961267610096526590188044028685869627348296285106825716704924861621679410663521452960274202185764575804517697656372294925693896587425935745760716720497402306298920761099056247060829589675801542406725730787137524743568019921318513805486162128911330440695211313857178541560210084738751355576968967378761015324214282774250326673568016791372367708730251572028852585805280424252824957339250453767364791610865479701401567140117913653585406876338900752084434643497116899312615998396750707751902039355325580894846150078383516455728122143685562260352828637574278794837621628090635622286263289651074822418208481662121422093422890440592660539995491496086701909498902859602517562883358470218017851613796636963564970289094314378843698676254841992853704094154517645508286142859796302788506022665003029012164342434384823852931053103586395282771820353281819215269711733342412430880963164446596443896353574754292801087167805546239882413938450094539765880508952051696575249258815803817709132037999150301200031392431741953460960010784023827135719165646197798126910767950207707679002576792066901701965018082691625098215717281820925427124533370477480807358262088709311731574086504366841505948716578318875371439022532202121279366269435708663183290996019464921365142347869932722540724114792535382506095910304387078062183124786856812956625797890954247855846721364881659049063736347052103267250318730562462012237325359777009101406686204346154749655630152695105671534197600378807521777853997903337139400875895487001248241797603349947694690341726519444529606872464101106372499118508105508198619580924669192336723454605434481694420590182865522437732803359098629206439968075938407554484262589365606087830330309495013757917402433898801914264112269072133041100873470828747462578169424384293460910167467808842882340425495887420620153105467006996899515897693565607604205476406071498178487768499945447055626232724320880575364861493382127405377151446726687999542807871216072586705783332965850577355246826426432272101072845336460059453503751050486790734316274631274794917586656594527364318634257613809486872608170326164046165900797222968483078515976463370008616701859167981622389538058238680594615529078157187451431639038420380432788033996016996666264809456816893291620072796001857785169864568522060997770110003824882328324824870532772529958852936928849212444640555117520136994204035329242571270051738685149347624327874391352893612529863748990019633012980200584073832013485952653395908708948110075581266304527903019288530347483908733512778831101361494651593755093844749720874888696976821772000370785153066645945283460598937322057112235893537805672958019785363374742637133218779339888649717856605926572396058872353620260107946021991289018262567936875702148282307531815198532970605897278145690293810015290856192523128874217679759316982816748699671131634657734508786779175074530763111494081369506946076183010886337793660789682761347962559871977293030270124135870127712616437112361746121307003734770317891597212149781830132656656846365667074965280394409142119348761903638173880256110076487357782290539448164660778600242018062544079169577404176558706209469977453950991563894025746731856382691728570862296650338169980745230427346628820982903593194210371420077139001219125104368080674572743614150351387541921483215341610332191029301834206359081621844355865564601753201478207443319960994206916103242447353365201143552837359903568051677391643438024111563825404052634549482727264712186292714862626887817469626768268322541295774465213504868910987990069352564093818765925341241623144094205892137246076581295842044765150223024724798709306143041027147132593224172437335626940822108663169622152274185687376844472447709327932708232198695411640049630403452799651753402582908380218778639686915273898274434120732560025692179612658299795302409046325963535168666435068672521597653601085055918477536032944133621609449050811825855428283720118578063004763028609110767262054049970872641713235305081397466431524060937986597134359536071566921786557243969157060046537600771224961950709558052432339618839733464039133661283697932426363653143689610209651042388820606976621791431096981107596937059655573527192693994497131955003936912190830113976723217088459860325254135934840433085573918978143355990525766315915963305156363315124715736453644630891193253607957003354802642437700849699782154085467803904523928678930156122736213105917658255332343282629515026490553973237058912065481697344959708217143279651240166859002022019141260138107551832016385663119466510521201026179710719760928395952877248689257832015488861427363645153568512929525768205144279412135615730041972683949459922763224820101383673506469354690727358893992352887917093756797233054631825036300751833673516751000208264805020286321228144909453331587479485693478871117372784016333035450430138854211105651629679505006045154487542497260006059645126691197546153706933238409896293758021475569665356983527049013711990592056857717383912834746320771532803945243764340042493778856263105744915340914759538462657544473178324807470503182723763391146388381413143951036588973870780848067824224586284402963269436791491613344939106148005283991348598608461431870873155269158544043990252294350214810496330548704723670375895576983656015099104535683383641015780491321640825980886475050004663740773675204303242676504517052212485910117676861185516556207622186933102756775042022624886631020466452033584855283785371083286334147349547845682621028064617009252198236349061282706451646754597371126150365925512735288002524795263500494538149215582490557019160116549143877629884160515883415974144601303507503817722821101403272572300980566187322991002064687287648765666414708410903192959772987036194339685469379183297231720785576199333140462848017620087894966456962849525712204208675465513021359295300887695462903533554606035778930380030781053058740836020466138646208028332956311614607697533625222134716787974685047625528450743832849706410576224969866398707258165738345401476595511965049289004271404207808866835958085185810104781510697695301796215741670420227251270115366237224782633858778659552489049092107834981051958722234423197194642282516248747728780653003397546040817398936594703384774595658530353792849306670348856744664682015125931184022008149348659002371258017818948636784897670724214863442176612228598867594549623772294784505491139660651264128190494527060471066094597423071545071571090441999907057561948934740843686728087266094931195952361272981119838585755730948649173911483512594983298133957679210001346151504366442814453835348843906940709935015455770206706021068036295275260604534154352573193146050085149927443278411288949454881820749125353102576642200619613799974043147957776163413466049505110253716382868712348031837305767687952304329586963000714550745476871095723423896552098940748439745980177850656942037591388475872198725027479270690673955162673694120357941657234686081718687779898420383477922232538766755293288075304506397587257115369894845860752707158029625823570614363460342465285598507684193070282620299178856747744925210645202728566480379467354746944923832647880178747626653650174406377496706837356330806064701431586560343522765688861558590389182515432565347443148368247436697251707089266041180226415687043483593558191451189787099927650740483672150966907709539800612260556213551855952613885234108855700767438421744593600633489765789026911712285873537561853178959868982218161709767991549218723372868234677026682296701655132455928986535508676139189563133318894258201937467979288870447066390678257772160958848294041196924476169652782910727075351346402714123114133881807944998310580111229337459739268035110869075329244357186526787155139478566821336901204652851670388150574266756205655207500895280056833979775426074236025915588143299342345538736267706016374268251973814640184261156940229718212128793258252425715853071639373971341235856920428655684011676338476495203372623904202655797732036240534975446159652565899396488787415413812496425682261954435669551550935283943338970258675922329231988373549607914453540307981789660152567720700929507955132919295037775664220760633459814990410090899242330136422091720693748154486711192200467508790807854384602139276928412558507148791607568880261385472767424453692528453917428442361202577212839962532381819482361589491840749732607038538447588508590552093620997587233222341744110621459333504138570808076538008664228742620000247586696327623546667399083965499441044058882526134102618522553194829887147244005601755721673541918412292268454654062517731554663649764781965412952018318718189552506956398275810560452279622329975127971951807966532698281958890823201350228388629766371993372322632682483107370789403675588629451892821914213064148737996546707930234672800806421208167466048852133873001068994591263785862917482708026986278883750656899758315948825030580213476778250156112321385239011060000110952446057148212967237518521741055233073467766242574198600070021741760535027900175440267997454399690661834670847731987742660842525119866468110043859228341627789189949649566964982471230888742867329304628269230646464063077692892257714433326240936362075213457286265177039471816704355242935788885564658781585098884194666716857870365111803555923925824098570766096701166262990863762461158662248812458160957619437588401496647857963794256686230886435637654564128181834117410622317826669936335495913285390225880161073015715091020954320299380548099637697024223987802270126832008144254247464305582508812801591330853551481447764212405889226438476444691055445172395785680615507879670516218107169576222079632669160085873758121413205921845638129681863941085674824344102746087903262770359477961782824639627260388737511366746770753494043322771461780279156936823993505735420354663676276626700431369845316382080684212888936160174599778488674521441165117638432129213719455983357842686342765782882589453161992684349197899668785417146037136555321009846255628192539712492880056586393760216537719992312216469178149218607086284812155254539182150760581553118174164765762669407082155944549873888221005770055947758797178526818623574790228911305997090950321838554369520710471618901709833401700073501442238551132402507418217994189651973042285087887609101813969348631579414031338351782122544716996998151261038279091754535140050095793351484554353384427569310744784054079503173642978874420917888555956029775193738941424791955533715655659431863441104582047639489253460754831244894744685414959346589460342524096484765608889760590428303951802965794555354277535272378683944080915883415313032217651472589001884811584157812057106770980407435334285195178938066100073068073949743711829922545959661701629707152056996835772331038532764864146953279225663625640962018808638090628501004536703203369644729533785722863470183336359773585720179963370133390831619657134065118921332814460231268588750301824136548119395345200980823978798552370446175709100277440711722368736788240375444479191379558944542941635501042546979961162542472912047401422521662420767925912376357371110982131822886653029525624132862153923138191764580144662162304366789100282864444690591238828306406867334566785875041484670872185901938133684340418718420900909520067158828934080300254368753081436755556690223159142989722650059610006547843257534209337465982317857097742157241276965161581590628197423964643906482858349104807626172251158114172316296255359289510759120503470588721145925138514571817801441462039391808405531184357676178395238917094842584167896986333991873542081660290087478689022436553531790588970288374230117408817586004104360595853251228122564779648033871331338408695679981390979142999782568095501473261809313546919641617078458342051063555069924743514255654867509927077615327476988249820666812436863697648556591105542311476889893411425364088283201335934389204961632660944092421556077666001316858499589476603063865164465440073478104106648811601903996606279426922331293848108695609048829261534997057054562024559566280750037773635766888228232517598828348243323730771204026658887186531330510585803964350509784468683778325108031668036753553559983398777629919748425802319619949008689553783138949751319200213008110881445412038681628112677954803500345770311906076303959363794232516862279858785441318107118934028220466335200178050631186974118252448219055584386058122764782272406404994998359191357892704651063184495607605235217646402937147219072592262501282041999667951130141888781574851364780992617525425242620440742083829657019243465774630170873865916169228846990731678008152849930886844403193378761111073771554737489825209626335306221939098703821358217427900181261648356064650863680234925605284080309875139323834041862714176332394763802695536971237601577188093704648317371614154822848871632890077896867150055644539537371451052256525926730788373633935179905045675920534394881386722822000490252200316664004292362833685072938679102681107488906066249110975417373708841744686318452744254363223288892857985036097627433753147545932672604062446374130495683229266483997213690080357651465499918702706751053263619838561933165555173285407721759717631983067513644006603101426621956949026220612042551141302371430176528638529040263336402220919226470012479108231401273162619219498361583760183034845650466434545319929889839652443331186352394458265224638227234146424520236908569452243892283796197307147358870838290213335415589500690772804486100111761757310130569118870270226612551269004916519499788043139436906204111193489862647300466437930302471210313193211826183907869126050785218590536751347749330748331012428748297121888329814847704805598521527171709548348993092743832888694957056824922627582212958685937367864043082488275484057343715387073108776354537702910387009870580908016253444736388216440765633716396616827375949168899557559260800523952280973000725949161780060966377320972723018074872171001001945399677665339740494930418317948139973614604698459960185500843884138360118648060316146575710721667706982405724197188629558779014161638907843021564827164319194258810648251851158565085647094739427564297432772606838985141374996667911215075997867907079431784386271189284782419646573832916177987722512011456591095419550437520970621859708410828373437155467848887827679444739578115110220545837282044493425916856777576547475453252463947207028823127570372287722859293581047604515298636699519892253463026057228001526117803199459209813937471315663778345864755804821380282055357451423644995157709622132001640814522376800034399708816274008710599483457909728115477528183248022081932608097246729714093931723306295570551410270166839007747167655971352189157338140805240898578092513702969803756523194001255689245756980552179510558361948737751660224204201052788697615374016953830057913600266797469982150377390285846087704125761452274009459146972935307826232282626712129867513612733868356306646848077076063745695490761687215176309633937155925301511031120821195840255106731487730279297261633752381209075050083583319868438592090362539177343178714136211596944936463892887962878273454777187279811552102150409389614363147092810837434179200702142103171874997144803543021033515012638215988216978390555297119775213146943547747278915212580666370938774099298533058399607060188018551947663650722028973033817381121356768581027323231380281293671169327708060196081980019179674545988043758276077697791428842270216444481689343724812193180801515194160306376875242201278817694661392535955607466459849707957867769470920677232856550525991282422609290624698760996307955721908420688105397580755218982408870564385526101774852852857218880790847772434197188360721567611965753857096168880201810393739303661619483097274072771226724085496382671541274189118228710523759284970030587939927786800682324447331137542328998475854640729307623476217910013784785347206360825726962931858157156575515960672090004929742140991946252868635856233598453289070215128294277131344488271737663671765781349988048990026828639117376916566738614585584298457209509882969322501601065555580916975896027707507710995132465980624853843426791128223267685792400074981120429281502189874668573151784445122028207075906778149845423236336845328849446086842572389541824172821868159737629934114226811162996915217643133112834062450838665800851344342956392343154802158950204838599251121323214974505730550687993280457133821790951138550842493514692332707296807954470320408533172524836134971246945938980247705612748597608715873167684703011169524562798986810950479277366354702455344615207713099679697744245873602532382679831151902801433429392095984197423341942396324933062474636314909856589299029656231841221276297583586284888836983311814268702335941130034995147348807147292712640704621405458992124199775297102613307128928157382801859962478399519353679536457161759664044046631306207382746687392807049060279359289171023103956431982207563992342802422636651310461063229257379236858974590267143787934471509471789846715856700405406468718304818577104508762125797210087914927828005165521585248410768586348833684242326299165833616371348948264907241636954462079278111046503947296087294859881216962908819876143704528720194958399503011578206541398303397259036469967102036329910338402700050540088969494044134714953905218236105011923814069874786459106193131588336213705465911751191572253213346975865733644781277317908716100637051226750202227842267747016252569809291720954058011337777172689025797631935364079474907095298258581434398251594780049860457247638238582923411272545961043568078584036281287865408657143725812852710817226928388658584431381711711081307329935847118435293251050450741022374488998575190737304528308716179760326467879615185835380328847905681516917144901036564815406003569460526509710364138278521674203084508381177896242193907868145334581396239842125817995432414224472983731382481961658644113294966268800168518603569735949111022529246510146521532250495970593369161502950441854495067102652989896661811186238399212593399698718615633635647935927778366049603314374302172246802728267964299696941549844458085982920536408778789125468066778617845359330159165282912243794106810742390910233883260378981595627617018181092089087547083862058655172952950760666321189842003165972940886433523301925468145124791446937323612185158915831502556772109543867491997529053402249062974362654335476299650938662394648295825243555952590061901227921728531507343391091128760594565733771966491097191134093489798539083412053008067903764264207532835900039942403406703967519948746316833471247237319985170275963241036967666221943623327524457694480359186396427592570926205403640621816943435843986149972889265768633142341854055549077805927289284569190167142926072350999003245271908687235873350523753633627026938131717634586676478515739496551876177101907542780663993562209259057806172977889485973451361307373079789789984757560316412421894497235388821815382467278502788473440617083799922782834530816277653082507700651173753566951755897958380219907301727794358801620443855609889885241740565044950618753941968157078259442291215450995176840995321226348703709204234404443817176116051563595585471241855018751476615493859302312126168729198035505046447520962027749058822690460015480331397120470642751572554827771169230523944132909834477797023912753349035828466296572128079383047240571296328419380884730215644631933776087471798999375858958548087337022954175758788947101888872238370781151895909311591987430869684211787461587575595050782613127080999767561870569779789073397705401975705530770508607133016986218483227280097251963676846703094593400984444280858478528127333831097475902228498812153401950134611178683972141377198713726983922110611862386838447372786786531204661483839838695018119967855865874470025419858282444444569548555130500884637750696488389984327411746861612057564397529402966786984787679596200129319941941047062920557663335435073724001778018944398661206495049611756626747119912717036278308829050614250178213690419546698421708824121339050893159258170087798557435248290662858599488007617759423030016273187287631206216057352926034272436471436748512937764718789695602238193798612703402578878316211149644640646657997533689872890676576718060510725939594727589216392930777070698110626063909647498892311460382271494938025494569931131459853437930874078296306406079018256614293910015795755027410525940381587024737531288897056692969626748626535283826344649916556912174241244281392641812609392625140117314256004526804932151385734261267968433149505829507294744031196406427198298779063127700845139481460754345430836838951096007166648602490664772339290970954477233764568923926257082628678185901112372848233580815003090789564858374976612040087395079785030719852364524217378926955676716926592325428691716884385395770559417535419737363649508534906054438509798886530943116279361917449793709488479626630736132396443543591171643936382391821862659959281438209309809105965784223567331262865392527531474069644729237595945665741991537034049219439065692382339532066004730265045881265633869699718470748480529172687602954934034272971348286735054995737759138455885422377613964393359102012085479398461820958637586262461967602643080552251479823785621256295259042069270756541023840544496327709913233783960707498641156575851425718269020212912092287698485331783646104469792327992097760537348264025334562533910442637250849526067562541097236131843414990579510733135609093214086378859605031098634569082580232907999372566816146886339804208033086459629506731499709299874912040825704239213605857480222274592839057254519824481298182772221806689144670921463226091540988941297501959447055617670344430208228540370530642106467243130169302527291976528367948396375295053074314494924729950267032756136757495802058814388139358553176670661428351973004001556007302775882561530637529773949204542504359887293293553595357822917857490569226579842755465905971181426687736855932525601462887953635856857726824987002757065765811709575076275111731305680516709622033390466496958218527326642667064660724888092528580003970680781101454335360561074506364764768215162089619424674234326594504173317103698427186172882034382540014419096711359959042254187358480249265987421270068406034328458633492793676576656451988341662638447688955137142553332514825963789039060323845065701340679242011965530344069006198105968948720953561934081753170612186156315817909294503948204087250846187210988716717794442079777465022154409589314935799526214224846845495677707391239742805126078015682082108904857191018162043261237553888231646571970364335891738185530892413605736908579982357383981471062828983196397385510459621273753560247547359825752345421772465336502982319012788788084700649313028534026014330255035227588709878358559245450059843043113063035589022227296061762104831309811788437477008172543832851256084106862694069547825027868422811409213518929991954444697487337057818071218849787334921032508965948926292192788347059954371679139783549862018728021155697809470921743367856906567028998980483022928619370866422765861709777836357609711009234112337528066095570184863413969529814933892585036416164981470998613307109470225153640783207658035229144432134858600991488797012968042430905286673212673952608024838321773660264870202331712940069682886281024175853575717268511460018001449812202962848440165554074852765862568224255698092971570998762720470201440564116703122107384320013809342269978814927414748647738375794533784785077272126564765717411370769083527598777642904139164863295734622911866543215656589009221210167400938673154547268372855056696306362769115745687935562345517365547406142175693055048921718426110997609349755076147021530246838424375245555216996528415672991236803687022534393638355246416554320741157797190524798407906670182120345795970593882008250689293735823026367716034653755226549798158437696870359876045230482252087993220142744790613788427363985292303373123103392318195175238030285564591228933409344387233152299617959601869680679273628046234487389921606526167315832435889060166348562704943306008431412538529225925264547164456330166722028146245281163472699171292183974445093323657394287478216700526495427550189790760514229650873864020461261468227370513440845476227260742723560151940802304083250586463487017199190315758589449151384918502558200535141566627881264353551490375846555522510288944204438180747897885704053948452522667169116096841562307125612397134622461405242827573945114481169067687296948725449842407476255041709259292059998353980240825918538057949363769159544172365604338575716752909605629503278614638743556607520664212413219265349019122305598300034732267326561351124426285660164337214724078858953911438570020401464870911010936144881821775627083542151067036591889741422326789900903962771016188333069602596417587516659191779664201429586591079851158428082318534547566493578717298529437157050233385959648310937308964217947982812122599826224304519843232136061140175621338473873550974629528169796470842026824910164934811823148020059952509097160395011999938457288390981106088753090268361162043041992658833810823762803837028512921960626220311908471272809985206586280524240783991786452700290269750272048725741477793466139446056574930908368882693794913415446495682570965646448031088245771181439845529217546833765016127671971573848559700830459436583904162736648129024079635043332203113422346609960422800776290011267838533534465963086686055142716247181816673818867604239096385616662484699423419119951836632324274909288286645571873291853787806959493404912468904653762472870742959319725655261462896336529904904417121227568362262444364087104605486868077282782801726852667371714994619171507752714702445977345790568274648891525176627569136278591967989244921011555431411379960634335581834807888632236417843323381931094792758295494860449008877157843006281132531728043666017766237642728056981471933911965921814218675257853296661820587455078845790204762204877113154194460946609954037818426139272789100339655796043981773365606027647981834468030550501644424705184332418268789745924335133778513127567695592823607346944484125119238964644631119341271431432483236775914451225628052877881506029426592114202439877558326481712093416251478879361393160376282459697440913379967043536980791667047598908996275465016858313049011451343213780568188301848463673661529862900599845184195315762519525514161525352028992044565438576709302310073199955496175613766504182296036265380759445700433968640024986652961519318273223925421970096454014801585375739260239677111767899671342357218503159991603082162152109731838378210143075585659112188195303139240055668521046569598256156492463968418051842611459051444581836658124101593028962472478433500511307553025299635374667452685543611377792144985606908217712761991262890523843077871285862905571463686123143208122780779436036659978105356341035343325685218611374408123314411681625176213491141100054070215442000629766234650363133473761418125322322997898144289814725277121900568188437963835970969366464572828247603569405956290308447387525798682761960840073950288176909229242337709266876449407581335045248423222984781499732366279860774203566406314301058458630498164895070000775954225595909666399829363480571519579130703831050278391949839312085238516353005849227966655803351035209191339517821050250516631526167440607200425540895228489865024040769849673209258637311301105820947444076975330351925889705393416849998951987838066177209943168081252020923896021609848107318734846430730331351504550533214466135489340640822207754775772141756170001077838619171776997951132325430775042470402956012019642502329713818981605171620123434551794701966766685818099731957238690021982570310355758537167323707359470538733679665778110449324231143047099693964500983023778767231040340369371245521335048576147340853673496589389772841547330119004558102307586475037812813732550152336159093491837340906503445984745833360312699280433961000095999944069063157278078496529343466033663227067179757026408192666149008947884700871570234511102100208879226320542833109867344070444522065868171145913390655090998680015603736369948737330694109819384406566213603100537399465007727535898089531180466643851274310878196352547578286067654216386076025587572555317477388485506135643266389552096072484886925175845469995496769079978762768574669587894370453316797250072476155345461652538903516178956952393899658492736343179209477584319379429767085553034864785750645759626453127326961413363981115853898411301736535096267672875483412865589794391992861220139913278394735955966380406971763033235918916196215744849320634999842143197958636710562521204799461701538084622429721628157297799476222621967428360391549227974186760027389886422521700894573647665043632399555859261455551858434784014139093765072876930893933229177750598561586715825088834466036934375338935680482092348350219364207715030465918071990427441532752490782262059147638024243969786240369126797237736049828115422673144459957283056296887736377510653084983484543702955919304028988140607977406123946811326040365657502374684029743772258199094153244570539695117174982821584079350782871034670655903591610328277926520123100784083573139805567248599436307964430148800053188187314964119208304777353521330197220909260843141437103587972649785159879224399033334373162373639568496033491050086905886668850822967943809278660448326604300404018095379628182011321709557470578931121535797749884330675213467903320838614087320309004452845053817245616159757460447568876575600705882545474646205198225841168023083681564052239349330420804504645152787433166223927147336118989500483100269276339541760580177242330310452378225185056494039881755473468331711835782088020512638066357709344256266196578517115811883198552181374105559056221591872618475534679791456777523964017403176120375123677563119640349682998599850673088741384555855032980734765553898910222972842907412949060421405895719253195730392689055700884301801934205295328243059951269691891568669136761921044783855745635598813293279950969118663903985748594899852423543200366768392327349983900534608809110543828649493896689715940416128334319241927072972973454404543671099947006793107952751926812868604587410564292590137753560369787630688119846937646808838752648460397549970860255656416323250101910708638330708970449915900031288079500050603706815403197686670672269504068773243450684721837280351064914381432373634687245191124439830330429290867435728800261902786863410183969536653901715116070989365791945061009985293599357547061496469512655043335548871942610756067878438462690390925867877782787973419363727342678523898327132794315922919139314048399515048381238036866594923638930298083588813531230330326416506155693854454654754026021592699776343475411517602489106761437422067470731225989751080146013610402422242710782842728172692463004439004504908902053326660878000251204762005032762806077212117713804382738283144696232472236542779444616745600351685103139652727853431138012832951043695332264628682743760078164111322414661081482818170116016855960188986919663858883606534085254771889373277330846360022738683094248134495284143463729356559369299149671279098105512860208360697176234002002698124885566680328321272619392459145528890999516183677220063733547511250478344533661728300716466526037636605364957866594428644478577635336936368578266149732057437294558933337999941588925479490501883095798474290719662493126652256411304141652114679613507617852319426153876826518515399239490513001559595388257207082959812905751945705258745772467793838125589854136397947205895343192618445866591560895676767367633628745771660813122902905791560093421986079436861086101965324799124592933318947039111913424146496805032682953261729811558904778740397627872011209105528272470771933306927668989918196066770781577278860506407849586611542311520898302347307588528599775083330040682911668732025833570522196124941561701308782776175509918983046184813525628003113227608140343985074470431985630562770338133898187516005783698779130823963745005040927279566985590473673572301054166732748069406454844085712207797368875897546066067407809097801070275534159935034285430101557047575279692582193198369484493431021194415961475643210819616590439873322883034938750976551133281309557935964617615033046555026081879014578521670616425770994621478645700393714296409709721018228369494042620048163184396668038235043563407086326832340314054940397952183373599265775180807070158873860449477920940093420015728171593664797438706650166365817742791742768148183112660705620750804157590332064808449928036202372892896304038287264512073612668250680804089834143259208793493475616712227707701996128527743689062816874386410350619608461606347271983848605234772203313333905081963373533992898710935689053215233352274626822975593218489651060693112635790295322065792157990046508664910948099568513172107548999299815750484201980423074537188856175132886508635704675889557095545697783425233300249862796443191754871644557106684577210009994428352983462134476813027663679161758926561154418895256613009977367608082681783333701153141331099188852446011353148198547423354862751281702444433803169234638544262856995140263337096079118023967527704476575209066350631860909650164026931954567559637933606959480377599033240261280645971049770129306996360635831437267179028891990553122825523123534129617879756704603059545194163215284618102464331788010401485872575290436588760360830868976413988573439550460637641427560030180662706684260451429944654406985112986699266222812973254779801567090933260981163813339795245773772802836133540436906150435375822370210093167383230854609377251116666445583086144487530408633264797287246286280807640426657040796781674176417653003115306479509088549214640624247228995436286542918641424130760844178355166300296540779086208856565035770559518914746674938650537305482436561395312282228299348726559109099627357270071734977989127361341817714361868042753011071440356971097712267272199873514402325030213214801965362369472638536576095823610867514071675326271219830681851272981746893475598655763778198534925511439063059341184905012581832794597592037015611640159368215105528174794027322543945415024319562140427857849678842684991379206393394871639817372139040642214469684764839429177075187179903067468718097539761860899170869360162040289333831030168905499080504078912882850271780549621341471414233821027973482135590259294586057127477619496518967527402304588343051569589634250463047478752932193126566441367117508009314121347406293378817257892323348674905215946650097203134420056790334273360618703438335550129494992431969336160305926793872363089039441549042409783806725479703698794640806199721032895730850227147918120057728454901445590233153513552563191903028831612162557042354550874754602066429346285690786793142216091565668207417647356996634050253472133015502861629731544987552310690442929072790220957173692435460037622073876358624128042916385207233955758910224719351518495889772510889547849513251494776301034632888582243581907731086741162248508509245556817935498142165761182480194552313705835683066107406676327042007871161343219620968537869532988651279361842008075932955881416197290785212338799020588768964936959430443905801178325669650737762918565096774973187008018910733336857146568634662405999201512912456270627378967205118047225016095732113726340695800707366808099329313723714343547586886873951409160152934375049823745499441827684406170005051431932378493334993785033214601461438268048728322767982632140133484322887312104423876861741323394657513248018164220688981758342425712984782120797928811749301872002600378258389519800923636951259319515794583174065140596191553262797062369351302490504544065653026467534059654832598924492223964059230439069278543228908911233073359560083486383472734687060009897997185213013166741272385092336333664372679781017216942575633084467445011796994337759678658894311925056050347977680948289780025608413778695243470539467652284387763990458958076351077541545683738212189863834538999280274575845087385297152363618636459796884538374642851534202743268535256084398423456231307460011998399568375617284897754860460618582783411192018536217880893876608508186294858396145974520933212363453605315657748036499765364057510888830837281133012875744652544637497460577126156124902575228469058974442868595445538408162293547922950359481117981099393825391588723419503881760005932550916153793648458099107909291607562515316484889940477992272179681718162864826375002030448184015027642550853432544838527473694123535604721301656556027868414021475696737741032630892608342425772240803670506407636480813950735089546163027749945103959748822783172208451993235701609025354914210799547166362403862188586258552736673138219450641649253709818069488687190144855578673011194470089403461360803297458208938744518475162419866207758503400506496357117662633355596520035648879340980153279697978279009232223256050205584261581651967087072463073928367047075770327659352863586741463403477823005727599735717777196914313497677471535810856761087794359992216911117434249303158993672460179813677318557145973613061434570975661492835755894551860670130741227067033782692803365518706853587239986698579805684474367968437225428677369905236945059212771364952638993867119700192865242912701918871156661609539525132835539294747722671167297980579056143360291498089248015912128020761509934420474221581696593927796642186308002313854876936821922053576813179016838290146949385058501306369940535186711547305980377449330031304661238149161067831833694023341937870883124553783375035335785858262420770664245628857266803057486292811730571048483592335626873675756461937712573468874828057383019392391332330170683599849207528692511106611897110497974732036260841569244740769100267542507031661372710892732837484805799249235802232996085926073387653739126039474339885846453617405135105143360365641968903127796984113006484771410524142892444483092213457968873874392551284704054247723474913422417070475478376163746573713229077430107341593217649960325524247947789450932835822770342722894368595966968335302308785185718413190392596959360809539681272463427555441421632160659463243082596374283576000136963834923823270153920411743873590800538621556398424212213884958627448218471429283068235180957864639286136519584299159504657714083624382867177756551873387261252829136761512721397150620960003488688762756278110571718493577389943314334113881759238058001298537493124497570654906103045027099863606643555022315954133654530600503410554177798329363124890075422699345030803710879051987717455159709282683005535772299449367970231118275916382868404606575044450301812463666116860895398821139940647573102365713141853152769501769958401749793250320732701568545284583438936895843718598262352237717139567932338653440662126534536072949095850364813304827829081613684316360292011059754251297767201295680227705791568623202146898439012213855897824554625926164114129072668964354268944280489976036412844556654605682448369590083334879149565653829452424886793982317760022667437868662603128352339879836941709526608015336008688243208705067685017712161489047530577957036043783651556884874143586086047093206397610941350463819073249421933510743318810426596861051296208132641496188428059008247723500027427810898718155631292873901255567682266621587129335813466568611037351260798928169608360548475665818938233100069973242362652863692753903251258825961654147111680486926006548189653875223866010397063568025832571945824307773307934042233380667155785204957172401705956258456370966676518445571384479982056527675057560990184716649220016978319349957602149354462526267631730787744126630018846636217476968446651403128351939723860715701413252808738073455329736162518744010296716118595415964979697609612202036618108651210060583596807188098024010460910058566808349209397561417636767868186033390199167022602294751425047187425367785755563378205096430084328361197186899937443569328044729949617891582371647124814111606218122015702406718998991069810432235638765683292958192283416912218072821298309191707500673455795742675152557784543583667572677333571027756781870073163753175462026133087566451731219116776244623751299526628584353975283262834286280559560970255406605815837118285502966340075224611428331194714667818941872853097830252944285988878843818111663634028990777753676024605557128818359753215466560860347948900977082278459453801492433554379669709729470274109587485659335382984590300913862851298801943219219975504300221766362199217189510163736748556192151634256766662923013045020633460926655791616641348154213173955252208873961243972703691730505298061474220672857276811887351529285163956401213597499569897382642320155174526826238530053925363841142387060075048939730461470154498451787719298326701678164992976688733485951771897015652023265455638663661014343760573027204343013575274887364003228849834638471282930901903519958404553424959927054976431421124151276554056655904014211702785968747804925090856406124982317543800011434150518865513249587782482351053093855868045641417349915510351163800344624460190478641831951328302012317597102792524347999179668066236629745116169069801500445444114515786267982341648011210596490855401550520380607733526413563511411363905447546760641985387262571243559113692337939878859898829340418219734065887521976835749709817860472844100351875029548819416831875196045743769048070580640296731373195427263531081219825070160627778795156517622812796558667137659865168714639986449762404649242039424367348946840854806417953941969255718682514890449823003235864059987689019755872219497351488820936174315263209373146625828865539902297679848022501196146558253871978792678234811891359580210442802737597076626309302302375643773359960193099060621943947763035580524671648102458112766764267955355744426852920394702987545605638726442427520580570629636563961236771640251344764765566501834732290205837638135436378169479978122854970125343127564876858072965849456536415659212909458729540666052959505923018685710909340398201620693055028382298996909980238825107788595161087241909976906956871786451209608927496622639279266427564029209682231387851125005647041455916984793368736439724908952303652782901789778316753241064883102115960798491794533108639471914737899132548662048910051599330317100148532297564284589038065032695106927753914144035678499749316162028596488110489707156063557369034711460718479359600955454800791975175672128404886055188841149092190733114916880941208234476578146068203042486398281144167317006847411701647074538535239694084510226898000642260906561146092728954764558408772152228385194299167227147469077957626457847383145681605982039835516922846335040093249973251023948474496109700839501440029192263855276340504944013520065062521108513870024677449463412696300871132753869957307945091009521858403071381310247081355066928073075127646679539857225110217858253433564769227310677162216369948447911808911056174389894213285789326277167845899915999547334242416048873624318154500661691058598606840070922529403666025638771864080657280535618670252177532811969322572359996195161649737103627483906432742982196278497700010447256944163810953830324384535871949679528307690244606790011403966634791867670912064763741500131295514291458523416306759036546775658805777030741376795602669124051499897640120860889683761013575608750056442696815391217945176795080457495537189064984202554848288430002139933410191465036494624732614895067398434435048614630899880732264158663031601317354306010144672748846161608491976418791010110343035842947799182471536495112542839042717978847790240202184658365324022118029718067656540144238937787617602854532545518483123552209656492850710712092891266692805055589750733830394575520660393690643332298639722933687488824137583407192126440069072281599573784100041658671736165795575628928789075200191715964323421230141060548388136622965716893455726302095046360780851086514044031849322910405219880648210297033402851375028273263110001322577694993998628848139240247173088354170241780140149792930272959959881826690944326706795649268155533544743865612560868714638677110348345855532242235768394484539618535145090876557106095084644690970830687389466937831738334713253540556788178402304569669817826246379875730742385809944098191837605166471355700346253791560841170502830483828151484700986376662217711650320231561247711238192547166988956725031029649600824129736552877405058785566339227319397988195168306295460839735294335910583301725979162788846735055988340921045246649173712958035508834498906179511742809791364569305850357816836357684037933453862177844937261065823108482355334888187580876954676529473919729464562733782958411832535957140561780115137883178239184531884080288692824133645485115105968651653427863038728492636611703550391077725514613856296611064110363224044951402294059329285115619361167824591157807039710434855358877660650252503351532926250699253151984624683025122595039138777954717105228019218434370440483394605822395089103629457558176738711428431528109480887648552852426304193397218220843667356057561189790192101873347182205585910526588638397531592484692799487563400010188584251178549994362808996835110912287333124462094669954701120342269122547381756555886313298624263291116030750231792606479410399736096805221150297643981108102250620084457934056290716811739783025555880905540516207456349095631306932096917739992917570199901268814991414237997330229796172063467569191091489633910961612895382498895498850615657572498074983049560100368078601041209939262497053522416227695518888648509353569477479375706853034798958384635975204121336592393722958836294460545014893681650317190885988225966476826205893866612176897927241569746984389970524862545706382123171143771299630540092141537890398917366189528105832707042795152804268353423039726250953506017640389964954309902903424070060637719163840637141181521379478142989667758913201240060674720827149692859174521105454699984393906500563044950370299390102868551336410985552289634815161055939526896393792065144153016538382817097172136317115792560164541073449517149440676464879992057171000731182240413163862633892642478801296338807022144543856789900009696491913226588640021180431414292112447469706520831910473611353625950008917086786857265900397657915844195658621671453550146772859893444462675406599536920745401003982545335935622735932165415837045767119100545883478710763441769671657079567133193566910862457852353422464462048336962894098622037996683810263308964343062045753852682726552308996960638082483402462596172855867565733527823846630669686697266771781511212406658707057748030799511578035884666420467035074069936614767948465438782342083726458635168015928528157860996311237130721601645394647896431613646606332102623881761156774018096420499066733523169152108153168488188980537865640463819853848076755305467396940298814128457400996239072805648052090727087973477467492669974987002072656140290783014710812935245644159791387408806822346425858689702873937366389138107606360940483134009917333035209483635507598076223079161792388811576691584173556039995272100373736435267965828840511572857723955604279680804405884052722387242691102438124037914360218775932609655586288279968688814902797126346159058733938136103233847947937251458325165065738733003525412451601182670219549879908147757898131764570847726355491203102110773979495209846707517370727949765883063622266774733399455786167106214363991476932480426316740630040818705690731941142845061208119875258867416728121087024505130566431883185704475609262678152164413208789412729910927294366642704477809108118787321220314751437797443547124498041861030254461048891107204533626656591474495674137901047555070608115073193760852287168570358895340941837876532690941025002889419424928642560748284095677133619683813209677374264339204965814368525421980744718836531270653169109057376874512346836959396173003747895021041486536756840270184714360190696827855540641422046960765946984872420111574708554944410707451140956589364045768406587343152514883685008473676699157516172088426304259694967631775895812063205656904455961317369431506385021377463589913928988163874566557587973402341491254589498158178610648403182489005778995630960829842864176865903122568626720263757686769412838293351861744930977519953010835520309970238517661253345055393116086268619585418354876313384856437541258177059441350925872475587606290081634793240255855477913492930439642840378569255264714774660428431883683538695416967116149021949677913311565625404359279711417839511776103282506220721026260684961545340921129315903204961762255530064448448984009155364973797685276924295987274178982755118354079694919064575075015550103918049713188730018844483171755051138550496870451292519907544236035639123046703523353144278786644174539345781595673973542322553097796028459470895539636834580211550145337948299260636360155572216283567887378326387919266205113007254035305453044315594354307100226488493526218207633411238635283001950669773742169954567846777941392982676185317865578866950660916166037216423723161022801328728883070131733791776022236528014637739451193594004364189891001783441263874162184265890786509146114173885617055592013183292548063961806824363472914514924336237163557930988707245713138001980403881286039260300603498415189752576852565049318318529217462601326717975018094462456741147271615485801410610049217614476617217281402027135292211682920805379204086090024842593769673703108947744275457859913717284432851521700655372559052507928490623855300394746533411171847192229794759898777604966312494945930554431940806763483445240370136817344110128079484159500301417843199005523424769821949472194831465824961118934593429171565264671937035639591348657306676247912057655621751791658229952738088367634429695593750061267930442364669716690331496543261954267662658147134699985927266003454822727051445387363924322819788334764037427353005812902779869415730408082594132630356310236906887947746751626773838184143234016584939030880905799283022082358288542478215282303593312513542995924405196991420268362708751113553982895951651557282774685215815506255788617691696412571817214308678730950633950411727736247334906926907269289975052235766203305758138977090684572210194860732954676313291527601316002053154266040735248081902424160152473530559412359478584676445938591892249271095208558291550142098512166628987998829718777311047503195983033382580564368038057774472171671122425497543426188894114964179398810396206534627461621739716830945400638964028272038242160459961636654964322050581357685101482004829670421752889666799961094609056862145548941108091825653867827927355474535934810372370040165324267546855084691512690701789862311096415247425630184127081486791857541636326986209609014171938529028515713019214779244706356674121731638230550576593698028042524260235367211342317474529492228182969519252708449387640496342382893242205990537958601906661761978049803168398877058690207154285929862923005828707825767704068462590529569448285802802308196401166252510359557707000422255488880380625539805527601654604523806110816223254248014740342535851443541577070720905935639473443099493162191915350779273063042657399648625672243191793549981218113761773034175756124833044979192471091638275546686768810667431935248850793851137270707933591619571100308728175535770806790067413352872746472244583030970191165741501155642178955735345957584149219849819517538926107234437835553835616378201440211245720251203111448875921758840264293532571775859520413514008557986441107052735799239050370109260391973200175044051031531757203618882122991480705179288468077285885907033164184645955939428690930711706230478053449954632329713366606000136330215005441808594831786153452309889564333185116298816641340408357511392387291325567148141074938827893169435924929064163112349614959350752297489940112715340983617657967305746282232135905791111808393997350975596817209474679313189010503727033258779856474233177534932867630448314489224982754821440738136570850712441297350918834794678952282598020629118479117898973649515894919820456460567229084075078849705482989099502103522941383367670839618306506924909441779944133335346935031531061378748900446165501659408287825844257738947971935292499564860239411974509500815697759522755532952789950144074695934060419421171359290924603654898661225451661240968424578443837986187324987049389696306152457633400189729677607993257093835799027380959057614730842729547327242203652192818850799874539654104002123030779672526239743740471532163890270337080600548667615607944852647303402502555659613375360128318578553731775927566748865941247135085371393385091437302094691975032718451719483165366487751504046712253684029304242138040347885470012073270919795145917138991405633878766744438575473076690776811509515593103688652085211382508464025542780826940034703911120685944048016456430151430088078583141384145558734133579138941393338621317734343876116110330935102007011867892165313099386871178642674425062405557252042409156564739376827501420831496073847135162224062500407388282867493354651331258970013069373395806663505981469275022312835514820467176941811721853910939126188772264407684606400095935142846186513737668841121336962994907342735273362538332743556057030089635294999451291733134778285776871231597883283885106611558000640688391985476118793012859830394010746840406418514980496970621852733487094912975680436311650244437388340806538318719691777881045963491603630036857955646299520469760686382733020901744865250867069536752821398901428708711104380404357048016250272426181265655912456320654931333664433016854235321718511763655878365053165273254539762158932270096432369542260093844703502687607460881406543662676899379561814212013826203244168673345452225433102615355529633439677470207281749725810460688770053400415532398110004878858745411268445178308916511966666980450977819668385032914015249249028641050137242833580197160570200867923347776884980360020036334814909807293155652664219124155529877022807583726212396391258022051946004935179903265724433633513383251466853405807930467058550866040717193054575105060725669204178790172929343456399207414990572421790539923284281240618106263155306599285972200963853530842840186605474506512831598520050621385258286606009902493308484275700116717294778587452829832602363556987152200976263651001444105589667811016710727277415416888644908681055813279853975254433115709841676043557879301152539235236443104389450164547582321071368910225564268494970541979254795470957656634335282853424368089131387697729976689515541952581123061162151641283720543447729317983225437439354510750378004311427129612190790046876142620679692188049901199366378536350373631337165948985674236341505426003807779119811025809351319677037571101386329756992270697171022476242133019176264760313223595136467642225995795775896017202657594097165289510287845320399969217198365655569036089187384953517269805094306932990327642753451035693159884085835780997037115999829650189384827817050676665186085592106801441833594583773308462134894962278418931691871860003252715206695369273243164408828973353371740029230908268485549934614522364793202696625189078234400171798231538183780867230830287770042854357371128442848415622909047145713891638523988280096617548621039046357986474881086573998216791085173113259882038238252282163500714279254581265323196151033188826935954884909084122957118981682493199042691998596435851968377606043354903518756273340922752494380436536853433734516275280525592314435456513564081772497138718352733777852564770289827752185919940586377783395882111175138096466770847606245071993697863752304368145229232828445564526862209871048316601243500972370499922563684469888184668163021987097809710239060013981896928957269733723476631639609568590877167356637723488730660026758124351809589107658143570508959959924704808678227749258679684324565686833263129119944452474408894845649565580071737331411195453293950562187075749924942689353663755762958284512565565767204022066734783543872060783232828384395233990029953063897426216584166044430069735469182436828147522342597482790296915370861949002929772239745614092885657014746644904077766700917669640252562726739489430752474481037013605270865514641481152489823544063032733507608931864906113306561249562774866561651825484886093101463096357296954999507173634501537156224247793385806317713045927051468170512090829139030813356348794577385005042203631601075345569409703490667899952564990440227842049913377261558910595931981350680734038673909472788501318996025555594812974142517268062217864143662849262420251206670239012750178092771612329167575891324914703914973352441690588341745553269903135108648243987863546561104703269057539941632046527884925002916953048946480664900216381110796691787550518166618551679969087981163632374967720761588010228417603358671744395373065578564443173319831805891846252845396767294276263881775961156312894796045956048868293757852721400565412488649530618185172239011709614407851228492215626001952432858517174309254282610095455203948809646839128914783869458701859524280110347990156658434772584829016786761897726579943324931116295674169029487058847077049361248878597635281077469623561647225731850546540382228269620718624950892380268562302640081994558976369890886140928148465338649602248272907341683770630907144599686557154772107024093243023173802968179559477554269745812779240991596069463443792580532111121911384943168061718245254796806296479743179361163022246032575735617467433316450436692850696472775819247172789903625006455014827161385483872942745355822675416713952703087106040645272362494443407216867289838604832325522783097416283489132963394475688249374813773428656885053035611876288162449057723663626043430375385353830212651259568162903377030724134208766031931383826025242255063122733430816948811626996027817691969852442126136528183020134761569492705185676470269027773621563736055197532052128017276700991807784698262315526347188404314146268488511193900789535947834182759534267348943327655687508647463380311304457406222810042275531404613806753308626799236516855867908859068300776811706195474009326033192842194376828177725875648880074752206176418453061704076911645636703325396418705102134467757286231577124994262837485099286479004282438750171493134520672174463285628096299559219143474819066775334373062616367420348670680493257216249692635089565610599734559976746615564405046538213113358044902347640433099562832985742154138114144246468471062899436944737126445598317585879143555084991753911816738438864335575379074218396293822217996347865184868933641339323999958416528727722816715974331737260992082540530988902458056967319112626589237341382666923575554498717490129460538416878761734379702969812124292353564313914838677382031888093748622653494429884566908393640406122864608008442053717485790656474604210606108432479031193384729744335096925715899112140145591963352471202421134184278115504680152359454676964737426173050752297800377846576415656429655325226517824434875295847885208528959745737792598941071588315360495339017487493296415360397001649520265966873455117810826877637575021710908088827517787688625072134883643940317587898548991385624309700055795429937361654421950835386217902636707819304470100224528092730051087454331785781688095038998115227554748645505399218389502549648067082241028552579251470048065440994430748819573652814037432824353698941608063248462533071246204619956688229418272583424220221442566704837074486045266811627404656958938786133349951312970351309532087234018163892818816949700026953290839663558010701274544286932490361409482338248639000006044880913520169222363062741609474001485810059801844225222765223932417344196326296397967581726829503938500580991541253188273131372440828362182700839490165975226848539603420215788854497190334226761068403017510783811246165523287581513401972976631275572824783166218322292941364958679191718413738570739392265872500922631371772212043610301194292844366057473099725175313191157130463135456458054580757790752167585720213363521782669027166884361462178173408498924260416557739567503297692143146438279109928684265162092524190066976406830785206738870212493337349440455786410707929325344511340240381895526650913591694105828277983063491375034848943685883851637986185899392733271936850580861346273851430032258976413284044998660937185300324626160561144026805127197546566551087597592562838968486394174402685432772426481044647677586426978681439014947458404089596389357391587121766585671750999903883325153253690753984839177275187884097297258134430665930916627664987998989199292678424930740818254786107188807401610300772511495653441071041995534548006015554349827472124952737801054094792742183201916323409780587740637097168908845679492085014045674917547522857996619671399763933963739160513861722459731190828577544354489760158482260150777760627270739393215608357636226290135935555835742120412320113200724106201178097546035836093428046094150953086540593524665941878656830257126497840115920608955500041927184447973362886553919653755402185293876262991596433365946659538068885006381738912821172078980379268624329388122909936117026904640330524773943353997286135871714266222072941672010768778753427135895313046275911285784226660787593447386422537204796538865658615763701674802365636881706978457493304172094976616605783097317429317356208315685312995088554964175005874390030048466063347255068550415913620060166127128044507435060678208150714396733438824095290693676834871204262280301335519698795069439906204533966959835356014341643870976551413435670584933499652050480557732445761350663942996131550331477980808485712372478408840597286741913127693680597168395018334892118385255312296048041148091049039657645616814291163021638214406622699202127333777994879124206699355196312449107101908784549672740457321738314092662712522853010738690424793903398425316410896953651084885460618796477236681926796506176734471168827834458136509167416568468647343888347906954748102736444302231946002978933588098815897084783021846665935311960957485550934996423808586599800672377875782933717862404020954596047960309140792139895228757907332878271752805930769952575213360885708868564177423089132839748667170954918910740715737339246615653432572964648667522084656669581849698721401648143961026960368560807897031541010605803761947634428800196711949476384558846416036181915781009882544358721836447431215048982478337828918379188757090918210062750258755878643962287840811621529842980224611655739028438392059141958237499558580246747570804367573249920614052436119771513623952797659196033281410077809505850288950690079013461849404734122468621667482010917819213310646491743440376154574113726902295147636419097811705831180520402803100304425802574279497132727570190272156666351601796817817315427299692418294753016914122332829859994179367369209908876018779075711420900790228876771735623801066205862962944624739816092407162319384402035736229740180759184101801502860869947785898461909761233506813363843678420999170621153912216605534938918575662991392056329765708469624468447140868408881939931684751465596998819293813423002116660741345229612668359826604678646691341487915192373506038992415897961967467154705405992215078144023961449907371243102910623775072353908625196573373292384750297298379091279398515760775367276028885271126874289967681390638594809560278887065390834219514738901804010994285986822011541938749327491705834648170445085782860399652749459268661702761956197429055071246123973015738496978374815689176997259768203411326487523244581559944667824319894436096382524649977648278888739580380870754047289939555295745407614854140275715767001904343419710040635366036776802759903129665699268251346493024664274664022669121898792543524209559693576840339566539022396587549788283081076049002572191159552354714169761936302039593080058686837825645777680561467573053504864530244511380420156496923236520746365399643347537082213159223125412274743257799061427168150668336002611523531670743120237793180698147087516844743900315740078291792466927842597941941713616387894822057933439534161469305707752429269043572623607083740716599626028693844478929880941844900800436930571596771026116495919855203752543516318441213461724897120239195140526128138183270645311426115749051927689969620362383272795615951697634223514576099557375287787429568482147666090307429733583356572628706600910711622239394215558458696732015168052324311777082051631094300090574348867201017018305670448514566970687931486010912078828372162260552858849163124873497775497140931926945416657871458028136689743968806677905863891031425470382479631737278703700662185117937656359978478764369940308066371263615391110045862000438983538493173237359037923013923459696769671306479270635606180753201068074761005160737193385700946347654415931550681765439930834752281806707113637034490556300940784520196048337183336699496927163715989158046584017506172489329337296443182801465199861763094128917482109272919793201062695029022742250232821695309115412201097153919892895554026178760962001123340099301788969027003802328641087841909039176644082952957489677445859949725621575283466398073759503476876512227539576840186849634540458523956482815227400116288061013229128994351922778059336756821580200845188683435702422160903302500308090346241309823171615984431843883613891405683480333650235956259698715796340466874622157678811989330060715354861777590511082896371665293054682469346628548509198729035789150561544886511697028127679373801431106432778584512579760492106801907776869275486205456910999739047126708587337539883201302901358766490507942952791494178167842710501704581825190300162493293626155511075813574046112186443807122667906491776443930927695385331209032989160383320729847932688412913196769975574644164274355563726311048991577362903857919581145022539304838817830525783473754755586882700250351461537460395582174357366591915654768169831807230009580845149250562431871717744209879031454437442023979790936650736600834891764108938281679256246771004063135952484584888185757280409483362595765230963774553328451801931260175509434190248023299043829227453798020790208391191427202542683961413319536161598070889287075752649206188310138513156005803098053908971942318801156342503423370678613248760725112040910977915090260371222148444101198169446519051644796798314816825960387047990711102267613800391236075062193167409463121854481784427412723863530469213615524296392514856755151845004626787754438512323991239662790625526002911779091570050508955609285405998275328562722404703129387544249378402000595332427475101530176417496695810512283216359597490301937088833411432822633581183491114856162005219784817734560374371137186648246746214819949325738811697175113557085337312769701652347093627178279946896080068551890974294763952136252933483063349942367955196083842446599364046390938722415262500071690553699430605431306320180139089445808322243821458280156559148410410230452711996861698399235748625363656891287245220812540067995330618841228183231958000162150602449499288679234488710846244015259314232773607615518848080322616746648038532894363257947157838026902363834110884542006941657393726092256095026394437362325913126232348190724564732613385177073744147001621288395134416571100182957474266873803528431934241580031345947334279926590089566839777479671645468909160479812687896166458970265462593469766896420109044048187204483003573980960874641254824289754151690506607577091679817033869981214033799455412075112916328071734180675543084839018401023068170356303265676201807812890897494190118795329080341967126253671447457687888289642085747521997086936933173527841887534522460540985416367160293123692184865036999387549603703131275223508787823981301815775842044644473221552799595675941929254283552434759102187833734640755606141198396747984395374256953816293869328614121223631096692829561230556570153335253733922115146479242102886725428410110317859040278708010178508239808605826083494299946763012554217336668364031464012620998095662514656034927745548302504129990423451460006428843423139979536075501859416654641112175845123605288521263704077973656334712604761529721265823790066208389544935779882327485337702726413938182537789794119381102763458833638226748486001106563239596638359343878629533329716696611919222974306684989615954826282345922185723225123140611320389154044501762065058936978188506958671063733106675648116269287857649173454795766879446379575868374678685757589715767003858331833113911420710938777116343780807237833281363027491088135281700628026332509089171361398382762118913524231871751251514644569461829008069250774967990697236501233846133122740813843340046873327166971168240967960404221009247954809984930888694571026768419864582510735792605379450903261221585683711480490411493066160607226568231169861768454231969661808470733154118281434610915660306678641126849355397327725462885444357907079502484244590799897349741203916620123758720785323440578099547574961403832695230241856632716907466508397651523648210189863597365562899673192667379618217574616741415896191934688941848660111806325628866039695626506980221764311426567522369827970591942121396737198265808509377246389035171282809281205810339547064156887360876119972752533976748551985743477323363027754590120749059049546284939691953952736737816158918551526829885621602610866607695613098852513598604249572592107387559497223570124661723708528519804491486011152299856395637099098654381557838821373438240587842329074431598512254401052969753031375415017327518857432772885527724703348964264190208457829369333332240505977477292864189899230410016605420189708474922667101523771625537067263603527961188269999049109042762933963031247749612460758633782134682138840225965611555344214673006999141823548959960270776121273316238751672781004601370826900422974691839599102083824443148242364162704161139958592202569518250808301618052930683371275159729515914073369983414271262563369347990454922608596704952158782737834740010682569753437019188300336342690931017311732967546760098608623318420992548386296220214182022587942199373976015419602217620929930249399503629092323439534310369040340497633944057863591611798001576322336613883390414400977250594674725603078003260750421467904597955681724579372371949367871283657170726290033393147451559270682891277605800551098000561697603375648175354253299823733041159155226294629384155297724837923874557016502778752261963538468488667292151888514878689729845956793758488462020287348964133265657549511549027472703198736164620452158571590391507842145866104257254158977693048493369708984716179833955514933320119187360720564622472403206176298122349483959323126487570839962050249133394148444109163098571188188627592876694442232636219343007986035077883652142756279528804965520994005500028901024376162133282892119830254672574953995379125234603723577152434264884212607555186563255606249572972453200673296897594609738453073592122252299818925371392474038175860264417100186691124443717218967568385027895873656852122332296533331366698942587423066947373201927072441960476583158932417927918275687807259375697415489447685826250910835625464378401995498912294703135320751899033371217085728530782190275763391956475980811741054450448041976519150362452809968831040460899130226609238198923935474282098727255776292748562267839465185745008253389332180387359402492515004757692815745078926265754051803223728590478957342520475361188494882354402828791083113891848218975384667381877208727591336699021760034842636882608048563171359731800572705054632624468854748672832900066373407430637478326115991060328399270519198537803642366325022399351129769364233129129191349387150663984798649333047884288992587542741525540694737088962704238634651475593625010485853159053284027240095737614873713802666857189199485528178613136872565531091037547210475892719908423823722911858806120219417641691310453118208598957937980636352714043457561361449309321330998726479920031640295472710299495964117931988719132508581781202356955277096221387212616677988139634913077506497791906149041822759574018541262330829030112095511943867958326858738409172520256019745922047123431733122165783438035399971014666439729314786038041532468842610610682784432896894568849900787249307730764883133771416140538513341329872862739241680431576508500744333975884253640979484095088848316375141213059701389198642595485692657674843359071147724654731798543833165007797562528948097225502205789876483569445499307219713530220951691070877860111705793511309911900415190953499571153989263251203870883260788984650170699744410066942514840172579826355945547169574469201374533179469486330661652627635223540423573798275357615459258159907074586592970941265042036980545330932857416785213776956643609296984437595154649894328302157488408981730684459811788345382670409172379543588146876255374785566833145399727537344482024639370056888270427067262418727482470364244091874629380071411362025082223164165824550890861081883669846680751594645209472682686828438172877423595951104422264652799784635346579615293932593989772753883284733701701213140141182867911889979132093436107894717217987101647324388363444105052326158149551329742462258281342840140859648962802050310959391301629628876493672429954535664796848817732295793840132287325985437921779074428040362609355680561797836081001451213374695497181786069485906663954477243498755461250400670004905091210379728021192546785409551020051904329730658195387751427321022845339477990690988972818149997719828450365020162055510641465155770423689264362152771597576604556848903851433987553217119548836094987457686106041390660732055841812329185525972960924523701564825604408046280272053336887698479590278950366745819092691396058752586635061620302748022205508755463634895567969462033632920111919652126621004889449131775404563632168774776048452792047881607611240415611551196034374043201380222456798561244238704910517822028246602287972498155383954859629133967255864105081739066135212736379705535686688387037510572721518395016687401839740524016333017497116528453028348267294473420314675138403599572816184227803921094899536577945900819096741598084886390702896555463027061442899409967309306847831959554968782776232897551794987104135431492006347441982464804016627086229843215706092597390703957014546422059564676456828833720297738601630792306141666934227766221681141427995964499549284570431137601367584110030518719731852485653984474375594730743620762715975956289084421328676613700535590391627786930273769084446872798549949279630895303640136077462850962459554830983796315151389950231402414621152399109886024162682160997211719962028561961749393175928923747304635616627861325457894901317112749387387976848451532427842910216502769040007411449969844466283265426303648993929089778306632938451286809751462285284839805505771130999391715114891736184440395149386850750611536102188092081751781202446216710293861803016183931079904708033564307656488929171203690222381178827059213728130661226625112567924752040953527095679877401298168856259067051969361269458573583875564438913351196767127926681569927673976302587374655544196696637418342517301955731197212596932823566085498994230349866369704602096208076355344659031481876800081140258590104108283497652061806756129051282629238856513386248220856048451695375665977152107056542568729229768961823280476066521853115892417687686844970647976391033037378328844816941696016218994567166194757265082087786126589886527008066269659785143181267579297178315650350569822597905301103751070458296998190194524627033477589412100187893212620171781746150278143887500672483730603551637872768877427940296710744982075883433905532229504799393495154256606052814470196076390688558801082264255507839174095133072949211846790844983523196831451858788307174315018437703024092457438881911885112420505169248213661921755651627447049730899930228483872976086270454169889510093581227160289194475047438341770784694719026802464660389370337192363808176404416136556329381635708268047792426993982192659967370408402811454261625420576717694925149227843476518100445895964036573080257892241413895670663750528904614387819952884576483004122291554329934553308883098447917390949021200497833769581033136585277779573525866561760511929103740120225194505494214910427240567345638361832196462283566134019983243106737624496185622161135083813505958052050399712048636564401197555415355218824152599243862983208049084593042255249123022916153521272372070403726558743100608175219487075830685574361892658077803232984817240442911277288760912476647240391867875377286466828771129114680324958574384568007055373867901833645808958796072503877282648144058328701344197659319969437149727792921996076381842909274957780793118313795859956580083274401593103765424283178750741083814215009198579886969905561424708833026347041898796067720494299859928118791886517902810022859974734581849012574860777258587017439414577155990532879395700684536771562603289115584909447423369196444745166053203993031348223444692583294572073338254450713659674850086368940380894236339661890223672576921935466756331882733492119987706081597725478020413717559285381172575695930392613955154306438803756379788592836202639347587940897566047756667489131966163651086890728208185666863679532106473400437588144040033724582567252986636413258511263142496611006878596265284578068162095148290314038032092735720013473032549846116260665413626086135429925380154018862649294629354586901148853630100866263795387633548969011095664846174839216953685415690551476011545477328873728024754035212548371552317792020140586014573398038422856285752835790588543762963604696083470731130981496517332562113456066307899452574267483057015337341792053330218571028869162009056693430127526717683587295444912633708925820094600880046213553737658052072138058557952543570391762825703450861752529280790586115163990811094327542712134237955433053782079598811210179027068170648982893108602800644575698745778521011550608903842680466816894120053742632837147914977541474010785745713540836896805211476591063764016340034884286334542890029017148614981231895887663919087985572099932688162731599830934443336315162937437590335185621774714284806703014632381983128469132229973240317895339068124267316518210804986441489720264034622864906043756139539871016167697061503455190908862646368119081140022011763862100689222879894543468003467945758540589763680848177876633834030606659927909663910623457137386382651347035321506938300009341850367061693303153923345472034575417757129792923268204489902977413906117884625226210090117252960375878842386607066914053387513667230429242603325291652136399670193156454910839788246471392871155765554053365226599562937510207858704844564085151198747814356947785995884928092058805096899510690767234727436723485320836136993409033780708623402758959771887321591202005119769343793046614546106760867412022639115428136787287477711481146336044231147890092893780520626531032378527764753277543190722740654951408217938233486447794817237220163604221512005994544055681293496153117332618100444638281052378204854241317068068880559537937064078339055159136681370070882176923443178796663407374120407536557955174731997502801810162640575893164335976844558306635677337641568302434159023945395403863789001807709962014493056507951132625998720011444449175695598338615441687403499414162843685968844072424200404019395932911452723434283644094138620502332228456265216802045623610120014176864760180731464076179301440616441618091225519176154759114410720427244266753485572943822218502127482244240107734816734915764576119840548135027596820774052558360853665891204851369594893838598835418638852668161551226613955191767556142466621181214611066245576861002699682606405063772722178296519381498314952794795537682824610366587573260979410611135532817390180583289682464785621311098032729544041304353618102806402687357154909321100360797966994383247486556526676718425438420514788943634548133260961182413988724550195529583104388420832206825134428118464081137666899617757942195687900678626182517833482206095413962816776845218756459151306851940105499903900813607008114685799935466629416965561237870897738220550279194568251092478826132841124457886519765896991310604325268161448996385028526124603875723298798846114194848791701001924980747326458522484480528645725965334049052292958082980660578444087150423587333420800108286495616607410690863035534332997446877410169945139217692594706954298774483931486782683005167944815541251960642981117397591317359696969824303922509280880427461076017059803290361330646189403175847334620524027893351034507184677017995157415325997112338987785844221233638816662546026900312405376199590824895925741111306053705875631006848588215664062451587918356302572932785820404455102184854464990520426529809743609046235534574269089035341870757021736719544171906666905176423797908180875859120863280674682964245973958679334591353122539284388515115578748510779996601200876193171906065125244108024034117487810882419305343931435009164067919856391920919247589463916039041065353230141734223969944691748350047647825018901215834943304673693586591466093553783489308790608862420831355259877199221789133163456823788415249900608634252898706790766579150091606067261790962527427741381254491709501331964155604406306691724100017109998799727382020250241833804430642097949927055421241809810446361311379674562167492987133643858628173363380232718633963573076445343806896567400843334741013527429260013998829768734785977892883880485476750811401620748554386963100087680209924579295487205004657393316531067368843930809979525554217698970786802334481515076187459715868871764486524608295066690653513233737823189075901649904712279926271276331753562173880208954848342514568046505460156138668781503195895733896343477799474135932270676788984195205645132690505321746164988938915713103022191531467097806547001920485654001358542043157806585439457989047375052455088634760553917814235717546918216169690557839879935474182951051653215196066106162384652246984639808814601595319550288776489946528083736401767120429145528658084337088543066652768157469431188534359217331408698919803854587844795385748706839951981853352111516993368747575995784791305937132543324581767226476225440793625242941373343220270758762348609070326723841706097606754312655576314294279865181065695691532580083195458238085810897130257292940090710577242133259125699924363373040431005575697280473012883507509845502537129101632466428926335780001120856397940702721293608723720438228881050136912171644259139634714518428226490499876849862561052661543268734552445491058626387037764216123181446564544385899640544650767992496697695483273623385840150218551983404000219352446966795425345145653814566057805043671452895613758909398196289808709307427806081198221909377084176781959652701524868174836156454499880659702985908565583805278352897666678749846796970330302002394076811598009200318746033093882828846265927519525023703811667243269759074985437433773466411274391793396248470865780936436194479031833136196490476704924020111583382867629724838751387040368648492926610950690664260267131055678084955577494814349166503769732786818462550475412207788039864175252484844254356801327434247070395479259950119233805577619761270458397049199467875549540939474536257948989789954635477049418726905702608024221489250484003716784332966260508528103351911465958120906716919821326103732968186015108039022598361136643671312776475491739396230741098546049957158824177507662479786842192215086937497836572591878081855749864945605942336539957523626066876168342547843226007680605042922513864572703179089510349175608040510047257469647578362529727177090719772404087906725741797405820364495538017263329592173609874263980409021387425071641453562367059500194429523359723563162005013212561690927719939913509898675065976022722757743210868095157293941509315942901299671909331618650915685609906989359334831239350327987463380154774515303143634801949414398084686632838063223915076119029433074783295600136561977325729312704395316757427448264605818670971308135421595102398623744287730107285067201604421483024393789538466436698322188037777104804445662012872505874190977554708154502262832981172864377223743808758810316335079653445337283439515243090729155356566372437042921746067396593368781591264919494699155697721345555337938247571679731048757109952346560551408625748343595642101918827581999731799066979451105465423668907570043009237307542546390761820029098050687901203746290010752457278561582462271699444439402844186080325904663472071702603018500268265285809255382750358415235201106074409279360045650222823411413883798988190717691526100441386514488942616989349972056052479716507002683273213954648265364341021962320659475124295036054811270844674543268857335554300862999421976227367908442878822490157570461230906520390240102915614212850005769430642136256042106309371080882256721564306464288336136468344709658583971968534682046430310233916272565650794302313634733769227317431065113621961301477056941752350655807669168432016522029097108437283285305805117140574378462983442440899858716880977781062143313446804576343580209532821158441487257871612415939162164743330723169033485291880603673911588636269455662340051186227655456914943912659585185404023442914346712835874756321410221434771003681482626062913127362470483644365706840950610310066855464781166779997910644223684838555376940066467522380114359221710265868757518972563829018729913545377934436288998818891371954054232724589385603497544377154803515091471490739771893600705212566923317304796684523484498929474182505526621305980992289053544763700041560852136010432133431141485022529315829240036987499663984653844874878826699920220391420057551045075956927729658443946452175344565008288135438996935406111375326194462221602383721239573301291294388835326337905344060102843801579416263146354240725116041961652822094712917064941568362525481531026911386263618121576553532893747916553912595204971500669696871251334255516519621221873354154983116111477064624922937013559350309749073912279425665074887223663947536552037840317867766286858513505112265894593950928977323410322688752459723608888914284130502325324276419371884621336365419920859147846444141072287793875601224922414553961649836919108094567896589862071878140895835986300914315794316026718982166875668647463544285860039769410139987752481032167813863357927854136456490649885788151561101829961469255729501839277360146487736343178955394041631789481794711426474994049286484128814968420321699525875849352166908014281013052085396219850708356385669998537347406852457466274370390563504075861078484052310934728295356206536516338238276797216336768816750157524748196582657733918489755176055045136033850568525389031961594942187225236387892787549500293299345733642916832943627793346644895768925543824081530891867297605966674116437426456234654421191445679303423288617106971363010897332023720202369936661224896993003728966938473247530815783524686891294061313715291522284375472945470161713444809742596409684586489713924420015459147889103553286025749515468664841719030748032269065076517601603203050552722682367689872232678760278321116595126006588357103240138259551806619444753039000600543507989428709980625765968217030972767906543217735659801493246634066254550715556622577074539924538319088487645527753423950546479171452330587140934299611278334420768365657593328012317664202155616861385702127400771095184817310696394300351501396842748297144353366186585549403843900102939495722738877343468359096552716397310829947048230776294579429207037147105708256071422684891969920988670613378467581714876390606333940776472116925827587100468421040522134399558185730024160499594378966745852405767247104150051765165236502892771468167414918601484596874987213618819791357569531640544029484088235668548586682273724495867103940150019847698671040440604546409658874977225465703798341059135572844806602447085506918467407485773663849649334872315503788268837863096425608925972425523204165335368128170609174902883721268021295643753645593755901755847637390215857461949221070200756118390131246264825339862603636181418351815720866386854171850400411419582935559719667540591638145531539363114578884205260321467760686789444810094996489203277338438677291723268735716800151750596400529902972375148859091669263199332152686060223066056033839328434539367891718585486791993548393020660720237519302582466988110348402379352970778592036759233924941650836708340368919605852566691158872646972926362265678128549369682399932665135877549714226092091455120782031811077223242550312934804296325764206456997022162882784839276000525847226743965981379999588803473146937793292866534911215207144008953484337749334879564693866549051077079608208932862078789935093336453627554225833592775114479154658786119108114424554199639788372301023434518093739066699518602182981776543213706424043271505078961981813578107189994082262920162465585881280750853044415630185462628254222401130865040758236709132354786404454248940914067314571062237741398242132977499321652772331039810576991336436816640885688869123951651697403065400077345108091454843732128009185368340328880828518627111567938397604341398427630085757893283561443655422623010732310493945978893923601751100795213855650204192683332062899264271007564656008974411864700117020236882807295622138302361461377007882374285937554500875742307525046277217360449180690799881960705334713186585483593745168931961835431509496742914076972547875618740293560006179442372997128598861495587295653838611154747438747549843132249267512201214992242610360452889929808035801183551558786233711769963187660338796836396627645542029649881721263491117290329269995703048133023516774818639860864809924254640947846672790405136975596763419677243280614302539704774542457603907321333961424148993167810068346100084336688817892381904005963579939843517552980620803869579652079290528919811037058971128362859685153679069817106506422636860788941675724637654971972692647400420537576349756006373001934933763526718872731865409148667356649010809141263945489744296763535226108879423816241099467343623416064273546971466806493498099257350327730337682282034040808985386468597847566727619249961701724348375724104599888254689754951572408770586162794368689961411255845206225198703518760393704930942849147038128835908603217403258843220688202514622891829184488707152767080688024590756308690971809974259641446493078954525029770218925665864785927114775646337885453202745667887095769083479932789476699426921035651162286929745602514811965415371834962398236284867737350894357849632468187906088116919843419731983649287098878871736192948157893026257842121984076079854744257121089756117151199529261175083976312168360538840073807722407391026528716262044086388532667185962641140307189666615661979766854730352631484422940104589340215151454577503928220915186275654114951192521331224837684794520998496536548685700501269650975844599990874887673707794631132931222856704282516720118088418611715443714556758411586236699116194855023953458395354563595378038653884694622986843287901599215638217699015396174059067383769948996758507850896759925219515493894199342872801137814915333966590045523945539220939673450987943912289617704147513833681219610770555209365611353473046098269500516197630868919095323110085192604323472918976671593861769526570112438023388152584348012622784709373203830640789525496111448942994427151647681578295413162804437240190000647289516564395365339359448724998660166038516764138005360640884730792259415850351911962873303560012502524827009398436498182424505259544154355457874531280964101962709047800352049499046033098299622201808726674954744625202331386209056481449238053307880477969897748687243161007772829460992705874548142986046188199746155803777935446354497109906168701920699035141824912524285306663846291124853938610491322400040536796344678684058611772632378813205628801975000828460125567843706806697533826100916247294183729718432184601798825841477619127190707580480683232231600126120991389008326358101165846649532220793120158570130557009612108469841254264681093879649411037168695289606818821479396430946076375721051314237664592311090728547460936121039679492434227999231751985880319407402866341664951628580105434416201302451316419883081761710683889129173033235058478073590147727613288575936290850480465873555301831271242183809881415607544327658676854231107823205003266103725797778324570145294993933628058639909245992216684723023734204302880942994289033326373601933338899161034921160453647316615357231417195899246572317475286132403937204994280784475632243224031366384702942498454200129020848127673741260112226059366881489139149845499552076009901901140311457468205610174714478405978860800267749229405665904466398819492112706723454187924505252898706711008735939694986907657099040084504635160152685359226739705289728745817316065605809537379352118199501816441733399405765293061690537809500220616213423768155357341682019938473962978666583495670833933349621889999807464041820666439291677186270197477146980695301668293684938255065897336273697858502008566760319167186002531617762973185415416166231364921516484892137423383904926494779370180871563901631066162502898957969585775254326228883223928302500244950352627218979718834814123878188367116730229406194932676573246959340333626032987702451670143404456090227734222455716022542812499151790494316670853072532108709124108185598098851887954000855511328822166234000024998655588003476236039017479074342199363779302095427669333167347714419279518691729274467448296016356352845205731233571278849870288430488437088603115064969736550490702086319315933625102343028246640167433276234896839400802094869283387371092239145033533206647962870757364128437838981990768217434738798363667705873487772664344577448746295066899298839915019364531929427333681868121112408155037392721375214247742842133444299596127558835103132815574972508769977299789198699558709481796413148330082616663517817657872198195292247994174660493523970570739394429343441110165293603452157406606943504110031819910295336910994459130885183900284365902203638246335993127339522612503144112654627331252131470238214736025100238205140355854574186285407286652630358219576843855845402801744967038497419657661159672474073707737843563809589783049936391662200200959987698790098519227944962118314843519629985778494897846098100155023921882813774939287609175289839153726659437201863721753857225457019418152884534392893617365660994496340037405888886440113806841332693143293976625858222075506359036159544594167206223391772518925284051938607142015732560827966908636532516699209146432392412864070803893091917443421050098589129970474466659506886792862516741569017445536982711131071280030257559739746200249592055513866444998352343452843381748138683842604432665446556478111674892092533765410679006068664119634317406513997304921333819239465558202915297650368130178767803806519148548574696972688951165715054257488274524507575017764415744998405654136914934268682494659581279336053975304830736502646096775013689127097650105331021685601700053420313128858352376268791919239526210766782336379775089668677325365227608341715134618067450759192420150462453927039276402070257656896631697921658698982307404992519672928441631294059879773986758210357265429770100281056353402623636910192603728841650493380638973773749845814419699756483063111012316045218356108088045958278331003266791477949794948437353779215541668854853075553930247890678276307887420778416161922316546105151352221707663332441556701598707590132001649752169629778406432423729758891698264968531470606169888666052861656344214619961250128772979248503602283176785878568001848402055659303407813946126005708852583281147476887270157248579544553688724627444896302116950727668353685558950221120668333243932518676662758981285900082531970603343894007625709165808791809779906307256927546001200880691985044390281814143759386068549972668964681570751989052832518221562363003181393728290101466791393569853171784066984183298864682388523991400432863224581347692920060829554599106866677221031019428836986993872941469316062705905650579753938981431694925513072486342046807372145082823403223186773788748484789080851818460150146406016721949250898146941646616814397242087816886792851117425473200532325328277237042671095911528116251100678574251775737244239357817731313515944870275616028300794276561543771337087936291085298570732661196200012049721136811298715963898371532166053025221749690503409055544132387910609019898315405296008377688102286176066877224285136377111838622781042219778879166934301337967428302078043822231509851040748079691339305736456743304787336871520522221251050889683883510608887093783917249786335473308128676221481317174451771979961476083621543149197627060757609993259424157415953746748083130277735398880421133271579322539278582474071275867268141218177440249649663069566591734404611757718777656601656379800996063703130625186754563304762811454059977596881841189626203822891855321466693726304649727907578501533181155522819566962048659794153213987788718969227679258163611736694660995071823241646424209318123202033357006839106271613167273969765765315302866048386572722596853770650649567940764326200020397989666635692643377855926667573180838005845521906310138082427871325284405796206414468011060832104443349176300683486251987470309669153017212205976142264540220707999278056605783365458654471865520040610217082566728766416828501878782656220830865309500095212179384569741596928903085087177875447554433336144575644414181290418693154596179466530586118878366531100520343228239196167526763359680966584676442827684768321715659246638892889280634328609170060450864385577695404459877055982778815952183470306988540008212071145133244424211531165055224373199551397007277068688765259858546426685649541671469837860091750351034462301431142546839940834254786270935762164946175631631576433561052298876515353421684811152361323099127322183769371597813006202604590214922267666356316760338393418062785505578985163294678810297025441560936852744223923956461045009285615041572384597871467738852066181486659293757993545761076779290821111344336638126301913881724813530271049351508963953548281589882780703059074024005276272886879818864526486962429535687771876200796805842543945026240255027093904175611161500074140487573424655877987697923232071496241383815342002820063600263533562962761007714791503519235361557846951483385730506529120952071753999749526823537611480187589332684305607686889454153789476670943870891164617669235423704933601203212870840541404863580425134894760155436714393464847285345463433263165657471810109995051262072863448767161734328970016802594859393515345623202815632198979786665431128415857974716056548621569647840687384626517570851775732157124134585056118084767643289954506442872591360098883201937873235385168159700773423751734541443668586240495566472855375705890507308682270671663167671291813319643909911569608178152163027928934138952921770189769254296998212191672902885525048647194934043115930818589625661847057292314290392357952100779200980467804408405733479468291349290645322670590011332546879616223279690532891087260514772555678806858234369519051575585131536352497289793556028374440014226006082167827958694364237102774797035770641973969620871650803986822730830570387040907999585590850662447316514576333272513560361220593198769865532227816427215464743102978297785622322308722211849453594329295975813936435177363109384538558317878279514550016834839792401897221435759088553997060403741023786250627220988482354433330378042782492963880965553075004362793301844003467433933246825216712138553194148423276289757039649444890257975668340429107390805023372304992243113567341944357279468470685066547443557975132515809549604693074035569353059756700355741089203918452821298613599940786635846825909064719059736265660242872392611969878294870617555195368353558071018879619994683933600705310910736126989618736641536221351411080338620404565975148987976169547517275189841838063426465263808279992066784994252477377420499599486878842622971260750737205584303632283244045589903016022697083189307554483144205655614332337292613042579186210588116006418057367005312036806679630488476181218776528780699690330285202108536888509724272717064935313296592124712880792290782944080034180763576467060031848947751052859914515727231732819534350699490689080694140788417562634397076359161927405152285961716945571921724201081531470128307659326814944032225177515620974696063489942817738910905182666227075679936836887482647408051435928128320385660098985359978097032300018488924365079009985714956146658336997193112887221326369626515677476789756867803278515900505502706755750733774824471040972657954314019650623349397222991287056078247578837527024897806631976616739023511043911248539885189883860351495841103918452520743107712913076453395457351292058690258810447721036751654958562566548033802670659806969343936370288130934092549308171210747008138354129102755363009238197239671166951773346094122685858039651199088211269462867753654425508636024460591632793748613307903102919841061805419139285445314021394226222700541409172246673822532343815888935315335877483942784098257327483014877675504789755331505261367038999951637182989638779141256909454944631611269868538925598384617353754023347012479555142946156353756806400508846510386546882008507375394390115515940768884803814904286774876552327360690053026189704229308028135623673486756506686552583505419989896683516036486586373583085325350298071986797348001956405760819159659792201427210667446294805728242034904009549837688918691052274827948835813397058320457040776464119443662792202268104857178226729205434890660384146597376778790736682418916695061765484586362390331122618445954586579131217448181051549296511649465446083263830121842177584255738601662045065991991762669298408586427181047788219693411956673638043706347335943545950570496234428014505976290372805155821065969929086414039131569010376224876085683182854702258035518183789003158839522831757588766139410499096940260547305707211870569409122590886568429804507097373661111808903838238615848468871200851569659016269996422943025964664642204088003843075191935601271033250135274452257146465812857246018556289640527760482085316917792310152009288894747172838243506075972344116349060629495161451310376644480011304258604288238480256593557441283461658567368158118776480380536095755129256685348190562220299566507529761704243484697816174446477190387606807706232616409577075309194018320519382939393758709773194949278919072253083196522677242101722641327486874143137248296039378500420821527599468199306009945109910398720484967300936841388233159158271352717452522948227489289310258390291741340885107044179043097623975329889933613769791888898042640156474948656715706222583961929115016545050463294871099240900244412192673856305770442871787787305099701140232375635684720550371922166738302408930487127559614252230969421548969337772059533215650724706751032951309790633624468445720518207426165215858680168425991043613521509661338890175947685906571872986062698671605178745532975658843073148272612730278499238501864289724764778338401279275784006658275947657588578045506200482127773896202135769803072480309904986790303642353208335616786319400610857686738353979886082419037988204221693455785569559676407754836496960544023487830350005017082889546628144533944869329405771287055325835494996115604006134447832042148075541898326077505567477862801158072160862379402375853908286990712020534266510699287688010001742158140478725585790873744843567134915987306188076413952543098037359281163276170858832709982510680647653941481738329577560745735167188111798441927184746202470394741444268082759116126431470706692757101823001195968726430593835174692335106810796663774374116302902784855811761434345134261676289184755662624473858440483493837099774630553506481731378104234257481630401362113910064909966162881335406495806442787627516196444317670426550170019452163439673754679369475954672250502658007235686596926510153453421343365105449210750264490550009648473008620852085562334488335334525476063716025784215486269136651641267057627838785638462399731717029043934151814215815010784418081421399140889637908350222386642921706086126008921053598664591893596133648910975263386741571255267739013744416711912604739136430314390289153543079026143877729191756063648647099888005860645501837213030132922872012137518713946964252878959167649485419770858908749310202657190335509413627567469468837550979004998340437084173226429402129670065368210332287884839558307487813775683650567121249625198782074054625943070847639997698488808845198394316798333721881716532973587150431442965626202354385454214332237499135044922834791150904337122231302029325107973556245804000483340473508628425853342519040168040979213797492293736450199104208867538978419215857474011092824583767617047937875849281931564819845158906168640147763834312977937236523772200138337760516188940559160424834431224504633883243890964514012954092622701797438741740623798703218796481676614923380147000732647010097384918002283614607025100124676879049932343393205077521935910346927853817238351313475205628727042218969223295146814267168139010592962615623424281675124643332387223581230005432554262140736107859764570029180455910478671330386827509305702691462137929267885591103474596618903065201554616139344833670144369644615712974921481448355185829937849299196441807510115292489331288177734507924269101824077027573448593557188012559684881024470913731320691978614915110587175133416006849898572928703992883708847300574548238466372609306072200505337490082303512721407237570879415929141952518825275979326489644228185506432215735093254028136867608485982389384660969733147132483968374581545118081526511930159374491970257801955783777604453643479971246022248187609487799070427303151172291617005409138385731753923859386381811427198888351549928590912135330793200586762832543230969636980442351198937164271639604081996584021413321036274858408839052317799753555083861476733755939165902675439098777691082714127272167130101839083893392946978116348121051066746718555907026999948190768420078544437090092109943873337357077207101470356291346637360121325056908891791234645242108710709915390142514633581096616485251970594497469259703097464686018048155503244221482789002309946494766680232787422772898673033389633571905331060694674935897548703498360110121438681169810620987567054834389010682914953594943279382398826578176679386107292026365164681307961963215338038113286699787697078393899235792984076763025197732282301410943017015176991580498765807582877530307699544473621066960772373886221844235330849660858460820207670656375318327978316163181564087952853829616684260504005903217868431071909292705915541941952765414714881340943958469321751016866966393688366854831043000883520339178951956032875669986034174504959371775158224790542905394426045566482311536890921871095464348754677544241960492739685313513676793978641259743458181095253129911655431947220820792569569428815543473203282008171615014318875937267632050401937916177231423895124712762503259422056742706449151542122311187584088057513086621635183874151109516218169569418695011261102696614093245886389802584895184541798561629653045819681981764515255918142580821431113913188649136477113863178302469676630787591171959677014500593692254746840621827094313846377806457513314348935821818458423755248129710677284917544150072115604797980552509472008588488040517903174922447762504657947956315725605484879876377196066242076295052799645418919147341193925378128523427773089058130578565645197248766187541330614380258855214823365044846694478347163580537879712365725401957244414940643121452513482563613481112571701198563047937471657506388770748664828600632855314795499285443929030376892649557129412136121968977535223670755403630677797702180680369358740068883425308075161320109022505298877091787845285361389337363474109095821556619630411503105286544716998225222249262604677555181106908736062141739542507832505346313328479334933087297689477727037961559306491831079064500468791510530764195851947826028414062231212451122344600554280116637636226647807127623448421487459562016415807000574972281306405329237259783468335886978648849323566992820486431019101548398645568165036924441365193213288198763224123943151180973455374801407615483974669205178987777230258603120362970686848580177234783369940655322227852794888648054756731086110505970623180605095088750903746420066752371606355223223076076342090587659234648046324177432311791541005295963867753584401498092169031482959381145474017504665935044728016866894126856689951467651945084585966137943291806502120661732644471719802615964593328577907195197856178481990929829334757514886321359011876412097763600220612456399231313753514960742390800563919964908766530953822462456672478129407309686665667734225443863127162815735055106601982511348721846807352943433965531367384943595113370854018147237669657689565685593912323617631307926318100159537872661701774988245396527295543388484688544741657541349984508287355173918411188804409316067924095171828404029038995351677053378728919074618898059372147520522087983889763125100197215429939785961986993492374978109389818463875330627052773863028445615761581650387870093711948120459427130284132031304572140873286990345852693715525604195191170665046415260445319577801226468228630850512708873594237293918466593399640216637206338476503228244641317815087463470889311959456068304219432645750509378013719095040436504810647300020374391953911857737953534513455834275030766922116115651806953095822109606543682121730494515198924332639714884346909420146649228955054265691641894324561014304620456381806647815777548173362307372432077103414641365180483299770496348881697863803532206235488958364350968090540882319767744755509948161725201786820657662990943290664806381693903058706944907900287824094242795588185047097679357785790659871666903991979090706238733192511990649823389834217472959982932031298053060286213587552551819784356643010688917013063551864287400943482907566714692965073739312073974229435934287752120065400128248690742155034038305121002209488098352407055752344441928099657757852389367835634143491764139078554356299682592081232408956354545404792779676199007984991085931813040524024352349348903535086237823369552432883112903679677165686706591381997965151988756197084854953915202070780285840427858630617256386418147873125129466519005515164732841820055226600890440674999545976720879709471919614029837720155462176518034838631660674541574201080332890345184853086527134720851340656925211334049599741850562957782217372808299959735976347384651636423808163847033052636186438243508514278986849734701430589750196278982856233188828723133336199226021426590180166500439943912083663238490894341289135930257877194471317824277711988265057466609507066466235934785836571041980306467372315903184507101944212329594616855844782570200536548363141924746531746354588118386884038843847077012336812246328090491902337040232573649107929039732874962320831603672645861564427529145516261540519684447417210343714587448556866622985756506017214417486858634557300086417280725251912957627089395155888318401157786224412360072924769636591011445702893119589361971078570185829273780106940976863874841411851273164283925117783127452045232765816909844915184950174589553368825114221181983506192095543730495721116794499348038293527521641044711184047717076904594634235848198556219798439198809971634976460155036698611500229138388347834134562751324974646904516236435053383579412922171758676901942108658896325783198790964720976329609425605528332077148695355386448952391891624295744160759992711188321358730633894984440935258483525701263193562503982254863084083538413338878318410825989895193227161943397669021435985774852569963976547804631593276387653998484044750298281089862078719159865114198311411634666442636126435634864574414671175366316458359016249418118929236490799439416706670361384343986189296779425480107803294990556888420504800540517136706724063432277263246717193416440741645453114007056109023900576138594254419201461679371383388555766340886583362764161443194407776085523331729834214844481594768136461063983011605457852451125383478198573926808880566674276598406995556782539067669102104985092715717545894925235616703071976115116164451867633567528886449698080770068231548138103401861632253595896997228224856435188411877362746534606596741040968145453003317901283897817319117650408379301264138611047525160373231228187801213188017380222549214721966222045137036825404470974004711989353242453329913366912413011326681089885242064458894592021495199539609864882911793112126277777429405046505423165561993417887464210942327862647793642367168961018513501854494999016551294234926366521574216549176279607042147510123354089056159907678948058276820317368580658023063602204716322665055289204380181670323204804460360331638696260101303652992410581303662176161596355005065135711874532659277341368172307473369858420247356186308641576738747508337762953854080103217290892227127660426519541702437882205945558431113019976204050377143493485419969344228635586253928627103900225543593457356183984075288374915791937738879208880330634011043809094757701583267879885543038382728940553521145413673183015082461853443529814323289982112189082934886081860308363555114123194568791976607000633803587075677778721909808842846371653262011004910450348112205787467460159991974489653220430314193455532578845420933823905456181150016098634030780472116155051891173969036127888641480951901750592475883693034824235696443998360090635339617189468650951249137624900836439890895988831696406797016111676547396200072426224829188575712548479271458126070568332830518027000727348804313090628251539252808906632366298609844707259102968487037644852589250675094814075814501265061247691553730860100428812486990291118893761099698440279329989640712834373101945617493751594047539631714412137936924809736544660342240061372872150623923809087628530042782970075847387057980207035543300445747510657684070167106890264666984776237394505547623518209521127546110051586783004580331217213042518875150201825917404858638916340526786662382906143196213681495444174927974225542737298556115084409336791292893179701327712757014563088819876593064513616747876842881378294682864454082799694116004375300205614431978489114397779134412706076333834750301695584614987591725171960769045548655235164460083671581551627879346061656111361528262951474971455471884454218134863267576672691837285914931185031074491051163808597336746204125271466203740325930403505615744251289968973836597378888964203588223916561726592970239164644306432494163187413504637928101671491431411391281565601640600017862465479413566593901926773016478785027748382470716850171768144534923935194158384829776650251242585682354737793839088052695587475468669281566059026708085603754504627869448586365648909995321414407684740397142337081129806419822570192346938430971097572687826459941876867064235853777927832234545722562878164029590520581940771299321385789434226472165518039242306960271765909183840922993606553310648488031703255723158428092943745191593399442881593072283471962174179490273549219201421132919058716616229767758475631456659697413427678303724619673998562514860814838575454111392718576231097117607871979841623714475444726919402922835642520323747779747925486476448734776855567117503328921560487601203108558052051735561101882004990346610050081569332380176712163047129262765113515566844207327079640949734569970335085046081680242723431057626188577749964791330097611271129678703478828960494968510626368916876470149956316674408027892757296409585040312926097546842838356197674040514161141259958246202548792979765182705717769225361452358682801166406183539970150520397846967462681027198795324373540224204685067463309316892891052989865147849491824506517129462086353131526831520366879147175931616088242409425300546147817861762336838433407029958935884402183825991838170487313534085093376085501456405676141226490682872695172771045687309318660403511609665965870620915027465419850490890884304080567986228176329628399634824715457990388363796352437322856334178355165984871211508319231812993244061869255186364872039873499405269021426848744950873731155060452644749928041026143518041163846950503308025353727173923774050025296147419394101159275481204908691728158676481020657234650075835497809195930247242905326674621663390026464426947796849385929470296293031304837869621367385468948775475675750054655756601210966095591974563410044042332702682341105241122962250063323715002868812929036896554394675033893122927792336874646841619390771996158768066293254187836492613055647575614730986431113684637300806707915280442268122677295520324385171796075885721054297715406318386593709435803230085332017436196626041092581045097854974555584215507636478028264242233393854588719936936031044413095475784805154079988747907606300516272168880562744529160230187547276823853680783899587450868523995782935213186377093025907394426382148084892236127014501008601331439472559933162524004512094092192094366234064495085164138741854563691052844868904425096133240276477974045598814630344097834780923539959829101386678500353527810934657972431691145894797415889025367872899608484472759918882520565479764484685347460770207430416960077564694195154523640815176823732950856849424537085773984129348356633927500390717827790095349500183380311780807915741756814060281437341600807433457406910127396287443305945324586674415797552513771270571968383119063691072009179199415189123630161359234732984824644764188051442480390684140637697573964500201244468842968102446367981828296339880509820085856368032528425313298295806220682872946766895310898565389167665518229155526916603528492520034268587404256041787276743146056563920413920024184174312894954188714499371083922226508884667287591174233768755168026166258740944987329932613457457029196894399023920666130718303929855439602538689658873507548951206139103605662071619893669087762502073941754010137795997191246607308429664394837035851309644023293078716928228681859156200274635684120084610383436643015840040681581626468717227807830831052965439111270728852983275608573113738956826869251870570989717981492063970061431679199398530859433853400782700626592507567512064294594405082074945227591983571864014957183552625299179843581798676955071421684996663096330252459782438321488769723165427495576866873419690816629574369756765182016467646462461426893110828427903478967098793633943113068290016111058037944710356595269888776050594236194498960885902803236064154263572669278964252520705495097361997514095033792688960389335948157057872582353698076999211214446060120417891846071880809806525810657661920606484593907599584911390480928947094687008629153571877814998286089247305496533039350824382469134301701819314651274079826002895131213884584722492848129310453104706015493136443441487803991265929814998594655679344115328501277569830434391685158087473551686534027580527709895495065202095516425329079490917548356170656340659584412136928757223545387405123073444452231889652691898014688277668528247084538196856208999249198709449600862468261403156339378679317649071928326033153496452580325370965232254470714799784286118686514702736693327368693225552173259384901991835321897477216154332694581973268498255141327418825355418595901385910962894729107746455990128979764408843630894262226401612035512120367208693008619071042274965814577680695627120702885824897502054893408445000632470718982599945785396112020689902184847364578820349932769259734290714451077734808820420558202546115333718034006037203928752877281877854159599454998388085012101206185063504853355229524408593698055661534195573482596018538331642822814071442451187982090705084108358527401196624427263145736608755126490888410471664297662505590563219606732460045278337946497907153185322314149610026109930598558957763751142113325678683068885035884101851227349864843408533304335811126905597054712723589482765999113801792945490710358225096810880366849086794558009210010183262683428151482179281862916031017771165960459028091041608486705158349012649223772377697439811513756626283527085423165326901575514101596910384882694560760330824752591237128563944477746210744724517786192158405188408182063059810170371028297401827197749290551597310162261050819182506667318953341605076706172099841062375029918710402314434164842881506765520032065093939082241657886157448233081031497687118648304068391033934225078561761331558919281949606859619401350901478471416645127299689278170646489309492229576837011161117381664164630462635642018095719718362017335687831439443774171894064351172261951488918228064377947658876672465340050850329483720060126971826847287046192612727473205153524564118868198557149860862775361845022410228359747126985746314524690525426865842066962326198288148281288335491945025839138388023479081352556709828507237895191753901732300011404457840578271521957925936168284447585919537974750724735264343251466230374755906144575669389307523651235390358008786692608905688223053604704139792711662384856117227604190534521022315247113429591207191967463679241741879494204669720734095197064085408231113079153569124912948411571005849307222804400076302246332086165003258998439543976647735123259349782602740151158860417978648592068564728561554871739228411256883776613642915205315094050957143674414438056742465381968613223631010945465434054402395107850375775249578523910457367600342359101263209647631124604384554438468903841494915790628904383926278681068722931699147074874546368951842811701493937900218619479725141079861942244733694619414598511238337708071368985188997499361719720979452455531971460351071001808870198154346735142461433408196712961174950464732161695385611901397676858693718377292465237830954669642484082585176912088366922337164390868937021744234815625269430736207761252696099440951111704157362182178511661110748871020772991224948090014879616015522395431708137437502799983523016562292909266799561158574751155063790668780745413215587700018845138737190622192812007007654057166003363889530936237880803264310483726980434533535302033534400269899587020404368202785078029485851990735828014182234169326141884547746030278098390662505773670781198936542242968741976589123201088630392479239736671274826470411454550302123877611971127543069277798001073495214603059068835618170395887628915541397297469987443813360522989484759209770942290644688587777440871237501286851042422948980639507956434189792742065448168635552069788834208546285294163379136426027988684219290172469869739932076451047674239135217820674441531928108274140692311614477001654514719455892466770509263492480915233966317015173768677962517468163669315071214194393732800638766546074753913305115295838653814956743013843385664692360578474698299255838176227630424387061548101477791989603799138344364654773025807598882891211582722091476923342546731520021143870058908841052359188815336292373523152671990578114374483821129879326541579618547058064488510106889006543086518658528665341170045257326150181025906358217080891839826241206963843877724277794188857403963515291831917136876338671901918638988435511211956654640992171533020700057974785189066736053229934784471439560088357825038653163614686588117640077256416258555657833532322788080159694115308853848219206525485453206456851365595341509868371854864480242136960499198250070456791815694700675749558241573419976915217790004539781473020014918719249348373201525389092121481534748566980080896162080021233325323957127254979463686783521850611631541513875748512311359615062838040060155003411538811889592923845003478579185418468014586097709539870309743027964353547641924502173922170876499272815961527954892351422513405496245525588614593444427503855712679204258819234766975072482420160956606899862947223699402140277090856937746868079231370456146716563664851307608300717306517358681089777333623610515333337221078936003074641812066644761455620801703894662073521286352101846442143988138337721663203716591009385706787828945322774666992103960106437278782210496705307934107348508612103932613511785661196262249409282754695282412778082563471716639834970012709399099847937070395401253520253483396286678316731913034621264557352715325704543682863903569883831763493476919084870807227518745623330204075616093763373604587430096645530448502054297306963621907885259952635393044947191940957672796049698660416891687489529028520508949842743661318318777313027829560292891428242269995257875321628633873318108257373720614820296918353198871902233026623898831801570569294218070835400529294108853693930535114478843051071582945310491686363517777514421370991353912715579189580972722311785337235306996057635609024055289290532420353208254963347943203651376768899540198690492081958911831967951603601924696193717171868688165420422770996172215976501664660106823343296846150949096558247625393485420255959170518447734556368334518067877242892183524091348634105109983386392968969661805076931959954955216333586638603931328136534533255559450570855341639607095273936665356999181076925562306975815850634726421558953366093517837647468320190263671273305545153142253243860023233248669072102858986120780153316798030291971548285635570946375088055417229957530075049958871902580131912834698615013778888691955867138485244818625620670075832961935764149187031303343271727934354997704955984604975954371873718805459676180046152522397980795141373982076958020313818996777807394902149725021706695118938559757850473252436879215151507662630438005850200783697672802731661106474892210893179505726764766178116160954938984023455811158436524944620342133122062360305502605643029305723809177238739158243632854499584789804584839456663620241851646242458007330308505535909358749327774420956893531881119327851588486084981988441870401028602098970151513885903449059583323520087458136841429382019437445530846047256728658879531267706436289648712757300148586773659913174110469282412509502354954549176326274046056399611873106508068051829840116983318508990672670535444751068577470149698518415512045576714871833922324289626530224742619349784405818335243559840017034120338037582979139561007150865036858456844022345560568668506909187770139805493774891285304533694448317709412165032624758663229319847880467049909601942872060952293736281912782313615052983655424529071895819883044567968253286176487795442019197356783793462373335591287934293252237345366032795328096504195058281488850891892176137670502246297697057572980365541397219294735819905902943896578658998249391528867334886350669191366264953706435449495410917650374482383341545696572954171945179065802185059612868376419404659523386947829618581039415878313698887773108615118947455532275437203416707608755116282413958187466428952809079944246978312044958425117771886878412599710516232658713417830359192541314901130393104236593095817558168846735413050783502610875428200516003180869762124513428115291630487942745555842607218685845015696872302820400392707948072823222142293363293471796122012725228147153841340356840322634873656278873434830133983668693154155668910522860848514094793375056612038135751724764154389409462492627322196257424170358444941119769709881221454156335548882553265562726957468728564459460942975456438523745080988039263005440372743874475537646934508630965027928048240978949862730120080497804681737796943245484783600215500284379770294083906649290331944723445731667927736131423550207571819539280498450852423858152799639459318854597207842183388269871329321618109159722884875728211247031783448101086128719987101101640511438342552859817740943634095351341115171119573591813549215242435000340745482784942298752686039019406638540321973738351061368916241686223948608624865653852205155257785836954028226697601753788009803823148505619668491021935800251861273342104352689043042302130182862800622900693929215309696083172567088151660329016125026478798928926441117330532896953434883589469426162456255395449840043369672473684668812842201066561927146915053273562853459779595513521232188467453135447925873936911728573354405523567408701760752093006372723969255423354418115057607807609442725485692010926563198866698289275365680890044788063737081121542275483679142160414505572527837267158801050515554140719550102411645232731328514575283346484172176097887157192811828224803103720537353027571283881360995162350002932478103639726978658304019008386905263694648370956196654711672101848404929299146360402626378399607168223672394509809605218839647867654798513089976418386209396258844745435684718030418167267225783729958806411586113404828665623466997144810623964238123597688594891919982031190282937103987221063598532093299967217766885303711690837105862895293286847867443245936856236627925491953929096538928367516543568845972256874741304820076504093298354649355455683155069851092889089362237792253248508626730742157642536329446291396424684797525890013312391654817734010807619907013204121508669549707162477004284833164352784781553493196317492930663256583267046267225142654463756716422365920795958624106306081537961181643431726038308712705302010191494122309078232442362624187844522030453799471864955411447158854143577926466722257972036771595946954867119331817397907483115652178868520383237660742059071505778758726327093448748462830645476234548048998163202695934837507693343520745355926339339094920109889236316536692296496513744643202020720942239937607754955657534458008764465154858692642289993258312556326495949048576455623937270890688567764514947312747804527863235495618041884551917608930261797351684935018658916316656466064288646868920399842614631695857373135967287415605810468018581431879099734263984942941968531214591957063285060489124447654152846325018284075288342729887249479556605294100015116717706448493795821882022232104370184499044879110867966417559340628189736115813384244085547347133260753643825582410199600835112882499566140796221003538801681611902118519473423946176168733856639960689442237043711733834513582526745962095761282883552239742176346545375919161616483079327782453050381498303106636590059105785910471217071161541725509130355923225199409828613141443927404569954511444059340998994704139482883830769055653575668015961213389632663101839966833110017692323011861887237552480374745749478990784143708882669427520465836707956171461876687797635200932350147015087154283912156093005764046515536005936006252935005917668383860085865668581688884266180075568162073125158629440336596801670294013606252326074753724607062979087493135400898791211489220688023654160192706738359444303148114465235358975079614133907796697223247140308184759277708019707423606350543271862852567723946863234470907353614819854786759105324646090762285332001538259603449795140183690133466073058073325062368767272078870790104164615717946570480294198402760307453941525502492005755530435249356485354180296574650533363833562653033044789817107618491243719023902124485202948130218061232172327140044647073988194658136169923886021123438866132837749383657304863742268300438924205459203209416502800695319401303018438114201231820995833893040119063832338312884993004352468374970071562506225706868693519860424610498352282019866897540028710594970161974055405246384944798615226816283917722946521186919217198656069412949877599653453005392488942528470229142698346044554257544212579525982566730237619149387101412036464575140746189118380850894111837453698339961051578028956457450652060624614036885799172897610070647661727949872495012389817017637806931015297271387709856566002757744730243940658405933512119150920563921437265996996724957984424598757651851431317188670560247117647976985604630655588200510766913303385985800300758949618893269594268547223553221889341677560822436304123774722001587144881943973279889894098440158250908347670949495258250076690601153798570898036133849978809111130836224267548255217115908040298138154443275314588621443179643689537143223636303860527256695160184614689611540841969619657751330422564696966797232655586175676663763019591601032507469329720410386367417124622324319501092926451091060671333738671641872646960191025551713939457486087349450691047518474914524255022738000555112495960051398401060327251317684243262194878896310541596575498078029953108351022719219500632057939445425629422965022514364992846911219868372924524896097713428661657023637291259696235958946408896111951974720584752390063952139445163176551766890390397979848895802669463452345905716936837686884831482644614997720706205989196304870447824719215951113362436853121833924521407902865106928520725343459821662014577667155430854809909806933984867072807313150944536218732771689404847535824147815918609995287385485340590583367598243377277591484062677315432097496283822831311623714651823218265716414094144726325189310849025662749009455225217806302568675585086465223560524985503853866071705196117856658086812515674618678526935739491192800933873156646002025554104126810389495225728267456500569128477885123366344898223264913931402115370293709298019624191120063796022329020381752801600804834910726440685642470415006319262310717946211864868772646454883409789496604469827400754647490864962372123807458872119672726095730895934113361989776076921952556332589092727057018192586924892834370238896279425403125446597712261879494319994157211791108252657710440585588812743931788087570778123772174671479017950144269460055847467438418212154910470208329593078822464222781038049176583069832116187542312125607782324435741766454766434636363596768797511787811888523927113141790246623751085911201734707079724424457505252973870524936178224705067325077764164029677872268365014155245795970792688631988494571479034838545027876217615391750128472133411720860637382962381050776124267791605048139450017587752766073520943523420632600825065337966942432517773722392711242628015685258655596393674748175984397175996344045593284059121085463606064053642014480001340274080248170969851202479258439306972094573697940646170837100155132492729722125955162488344377934837771930657641539870492449363874800093898233380379301197726948608216191477256182103830544451864213638035873198507806923900001381857807723273135042544389671601033532186483060739638820847470680703625295014643667806816732328666521938168132813558198384733784252777675658489796636990784810994574148469960723655790722973955698085406566274635641745787215585664898924587479295433117125480878101084799288797964691042497283815434394469499343821095976387249256592510409850637049891588114654925292434270724909358330303477379387315877867914842086286007239495011228699345309197594392927801475844699223168835438947486763186307299878217599674130221959250437387255123136066668750018292399214601443692077410938385616954243147167372332276105389841975039184932038754426560579039326230193848937431859457185296375514536628988989191554463257856918006709839537734378150807615686986677470688293127397172781551994442806334786078630501862256492082135187014284383761650234944259940263170446451076542333672373875356038418059766419365231706685336446098439305788906694742838675370632896997176056912355293758607693765977988845852203723645581832106464592236256656995795054818692432336190061784768854668019846973214124361394988311811066344147656974061074842027091356885181985358817460710682283729533119257541098417718440376125627536780320778135350011269428782438513251237225105707380119910736472809937702291239544561991937691694003420508799196999581566644976202320526170334744501991307116557850374518854210961623796494398473980561384281317278564516902087910244402878320661255054708124775657637745004289049535250498890966696504824476864147752246494661235043879349842928954877508734287345864001515802019800148131509422439704170437621436228067686586063261811772549099390662203802222969569542077643529375058130057892236972867801405365601195733428893106893553641023848700067332949783786927811402661315427235250685871914920209017664491250722597821944031327999406507901658300425585909422903760512364266301599493224157206615768457721262370328352903172881745478631701399300045165139049768710155185715532971952020357428793748600523830816674316147811161759219995486537678489214766232598737645117922039984315918615486546100565465392735515329153657494557527458555590335326040208692636312172361581460746849805474830421309668878438170680677034311745063975655832112178970844946861904598461955251087056623540031344762853092698832116520926087271667476652473811153156704415158903505391056070215902525663026346758193622675524071088011312659390179710752601782360920645216069136136585575106158358796388724857374252182063445685236699987608500826646916009702599218512321193328824145731463832225555345951963716014518791194567353730840711057649482433497618550609635384882053419834403940457123147502497898711087537821488242069601754247269463432514406790466411459572022522736085935185830565840478589779401337523680096209795390793481654856260213765206231899839860045557001740384433201823548158477820917108792777240680425508329354491862526726273792378520159556231429661587069524874309241930069161858278360103775260076077486057875939877708902942971187246515028426836470159513997026943467492194230397034582647760118878533228907687337417179455245499885223991827050480023865394655198008701181735151423513989075500017586145294502665526544674700557070338088471758867043342763175435944032428846129159127094091090568919242703705273360586258298653306137687576486852644767707947481937637821600728035441731914123288603841737285748276704433238855379486812462231789392957316069508257002430183809023485535190245016467281000970415003568154714835466954495680976128289463582688185513576560948066926517878944139300824733220530177189656560939679270786663357072554974498761223891238891112998017776585619483628872012546572262504464654662045103901723116134701824438197776266448333865378295233862494959383187245095884633568894658538885468605400742737074981694103266823600357239429596407520140079914203758374947656697585837427776894607154360265518532085971374457110252509922809994588283080389248692718006984997483250846399169486399957282074005087074770822969127613232906832926739985873029954914083061127322733828226513713896554141329529842255136009722870669067465330739496303506234600549033588508216490278131152813087393544397440167939938309198947308661876538897277375337117994401911542305133540019845770387144774061062805248743306305173137103252955190705506752569281668194644218478675304097200228338616231310764927038923569652578055984239248722688795673106830597809578155916597861977809336778845633608722550713654149917484707046791288912143422883388395220196712787080767330041806648062031586876227639158226428907913242075326729622912123661990415397447046811297659835792597609927673951316484601202863365278314449867179167785830695017718172088763223539892541538444482830094112006946813863821260883081061703421636200402213466607397069800807138709123887574821327231816482803896055551459557307814269660226032755720122701580069810002285852807796529876556520527454883273777313460120016048782407272865411663327933158367632851611367216981494318740500783929340880969922983767516777909695091315307808493825354929383182547123519417481778976024067317159340723500955368967499420302134347799333344277402741786838084500818230803414129112517745668370376779156727123611288020947510138947173764397450415985833666273901269547305718717459105426494935164443594102042438664831754604088972340256692896203885676734825618035382544268747563256940335821467752943854452892856306187291337967305499157102995570188097357143604484344368561397645637873267459268487747384706848241444195298440536649287091064323599211689209033791147005892853117776477312522971612183258656486587344747110234951929671891070066643547570842213837599891124075504251766011688285821485900254905588303434222501604170583738523754419568480394858505853315790003631993970123601999299633763866186511086630675806173232067533557144119461288703317947838079773869883681928206589917478080850051441103201547513808068270620796343162311955778897211055184054946895969354843592434129607333520015539135450073056609451449884192219651883211784365098742633461589731777859013592955325052405569344947581601823310519024320180180081433229613571327128439132016503415623571341013934125816502361098215514711530219787138349535160045323873596278354501187833350907405405432909093020822551810984649853997616718419458122581281766777828248309013077755144278238618775971609107498167613910965289330952500929165866049698591153981207608518247191831759769908922963162841788145161147533069171584553873359065925570874378071719706215965628227498339728792990411685770889500447879279403245899082133212944407141119030417045667654572205852862765210854661420195153880471836807917856729435558162475840774164622426070555456948237890889397768034887393648132798058626424831249334071119737390571414408674411059955044490166086622664355764701643544011362390323260112676774826895988822663850442589857406139795561742787347909549133069094927531514449328821743423472243603033183581577861392652514095082866288947917159617495672631684177129587818535344457694364983062470952755464376309860700150821435165266681389953345592161911821029352130356905274113009136842771660179698262690910990702204732725848564978298892101780183879978799821128873134856464497801612583375263622877264608239159432827302548545193175226223650025763720576697867793452849176383315451109250305656648867262082168618614500524687518521801721696827953678899554746770369800433488821389356574153699811414730757948129253078623851937790447379498352480556784768007189540947487010270815410597812494871782648470338951464087022772295444212387646539221763262478874489021972923106282112667332261616702458059678291803424338241207207818311976750542119530895400028564494895556812267653912243449618557313568844953156301213283361251784215592195452574186219349751935981725485955322374943288939904326305124890887444895078960225319753605067237006586675806763241587176709088865563221250263495189939478359799271250204145929393118089570422465218785637215378298537191272572556933550261088839107154422135933036741111374678964560112954967419020018403868158168431095833990353442590342126060159345900000665462482407484965858015568661268851390651613362713922051454439805924786004727000521606487444721792045884158898052469805097666258648120952132819796817657973072796786639950449612789614545046937863625564856914671106314973727099807985129476386949188524577809324732239356381163517558294261088710914309776212374691678919014367620579175108034071763162734346670064751913054762501259917205696988155013888410599039727093796502772935297914331406743848264733784548271028462384669820870537454649434336964559215237863488357836376059698694624122698608655976300210985655987563289868232970572193769727234091210635459205042850807575532805105505722149252796126011258233227680922370899020155837972051489109851591155242725477026847142420519279074949807142053483268584382706232366651717500909585441840371158663122589429485997330382423122234089016692681827047224460662833007468775918036312057634722986299347746869774588799085874453726736903412391950999564760740594359340068285700851712582731784388898362928860537022310225018275773179069779923812787800607302208293065525949448048691442233876106443557660383936050407277674143050839128902907211843449928290989759403086659132024845342111173502164523454298947066904174660257919500786042272759521758382551146523345901006487924813254328189039302804696366616223801773082611054073475937182745436389160877795216006730428727632248327825241493709975825360163861863130540844022588584312088694027725437470808078446174604061507910345884842147240231346267232635796749060348345605510365056220338776745526697065830538797453599406185557559982152483772559332399656573971715755706574807893830965084050092307835383548362567067881943086579933211993664450646333286807197934433283530894050236741526983478376968024418406297440620916007534786175448059091728732290361415646303794989590558328803044265217480037100962690427486358641466059252647091588055199841129816862483378961681192945195021306042287121456937498849833969196744883154349517680850543119448976541544058961979128198448857076432930252476411202381914776125757456448075194950515635879306852653234764255638400339105709812213343470201697795899261014723256145528530216655357051881246288046293780713013185773739854828469661967773578265354588445953376258708045372706747533578413099083050275793582917368499755924905006999322489996874112940522259358308954459778327842718862507441565578610307179315918051423196001677084727682642565912224083641171166328735311670474809700878679848197277650311987308767515102507434276407825476396521555261380873984026337317053567397987560722010145286763073860653922548456897721797689909075922491292761881532086691321975495129312883891126434087014853083398516034653887860535059792171176247332510355662858849461372019401149171410687029246492251215129644206058909984546123849235785402625243060980334341469970869941841114652118226136886864407183329589448888537491239405664171553819000199655984125864875028797135473500058043694279349877295236438561017998438245409018032696784470987742043589447631113063252455555992445365095093499940390305660585845090332655540955078929349280196696286789500003674268422557509564358161510074165464981189111495339772560819734489865290475302282613768405149942415364371607593699062850227994875639040694539538825534019625881653923207553151493428348880276192595618084956673964064911725737375956144473532315844799218733265514175124313960159183176020190635444698658011352778334304780194511022631851918096921690166908121328104325958134904717968142056661577934646611613098614683273696317997075360348946975524823534574325112994238065701640584525645763925360385624173708794796961980490466838313231344363811764051712880784808498256247438195095806194024020665265433266303156491045197365033717651030102931190434601410734156692897380669402999292267979448581381345534494574123546208742434809669372977190503389880682882604577400077921387534164284744784551753446140618724710294153006600434424336100299846557341754439569637802999910629439285074189032369449172387469391473375306939003664014206607869481531050037761824982599245212281234838077813125215825921961792688749500425303347915423855886975824844671733231768934278627247345656559751634944914206002159786033419924291955897895379359849877484801800587505807114964188365907635525266063490821803121430052552377184014967203414522080739877657846574824885388842722601311849631984456953821479708756448801642976127654410692391119539522011191089573841379105698774140784325670013106411896245093358737131610174244310969732088520836559711920820233206593648200578610274959877055609930599788159003222119581822311584293134275109470150622614057954039673118670855069553059683262025360397605121925636130520095599946025744764641781929644222456137822722268837768792021295561695003589678538987117286871928967904909738253782351655808398055806933298381085840129974338725658190072241533463027172896366977573237363470091682569005091744130206583228493995465180720146544739494983535310261898946028132173240393265831296755421889760526050310234479250320182544188815742439930276003564136088661167939069435474776519997987741755788166096759101669082747239986450943885590968805698009375075342383573297552452563093918008169176039035680451394530563631531783364458569000060965940225767740318830471760861214406866727221489618882835847528553679793369913112120511784556808998286227463475193267081338619220015204920794746064138653408615943959267461503559391244665191479713880342284642571074652371699687030636501931976059837800558964546899776684070716233638137604625443591580691658833355170101095042054900472161360789835590011008432602096319820268158860506745583465180138891367521703831926694656401574812726222999661410508223892686948611585735757885946937969850838125312166991261593018665856455525856420073318110451900206317693809330606288912235409393459468704756805452136023979792127326998107978927763405209764680730132922918590422335247399381560013632963996557676345393906871125728716084482596203446217363266912355653579764325898966060256465901750992528732700865352642840979541212007216658442914855858249221082850973656978178305713994620285053132543509256021374440676593406390151259222877127712327099015702533103709898053736419348267846467243181545362022472041672688851795447406352897722581663688349498675951166905332918342691970339614884029154182038571175448106790668220098501272533277841561329414475831763177707926461568786101602464097394205099721669634755844993460319534207306115948004051964036679148919295528161321564477444040598913087725100731899738211814893692222810078665712517406224499131422302581412324766693033510206874889712012749482925397659153041852242874419148894676745011930345392631368742787891950686729825132658150149597420036349206284109280135739258312230332552712611543448855582152632147669559254430309488884561765015206072411056634877407277589320246278195869427338573476323535771110495102942268624568157690919741816215687778644061205422066120586331276717447618342495812557728279416985873994027026219533610620147166187277739017569626785299036000191308498746535463031610926405008249174424664372660886862582204825735055495519129957029725145481319443302567195319792599695918932196280336563599545409781423949363195299342629714033367493606378928344317688999459288735539107213512133801568587294169457410722589801241282710896854226599260071662235739386155017988835148203808679234493408806431016861219561579660729093667629444860934004663312789661197368673550366155027201758930177326856734285534244949305692976315872256697163309589143361651463023015903424007831740813892083207281849625984601928514881556739875488192349686981549763331367679010845228600965306204092571612464880891486624508201723842369402494015212550421209356338218990940191833248448773639778971680794989496970623762373400469709754792802182004166136411195416956653964052298950768965858100473146710839091863346993955965120403205498061424320146617987598621993286453144294113973222774986212487975416359218810918534170163967433682041073312014222424380975148902201218579634556126634094951827614300575712947743485501702898578320450222938039875946039662042471649012704352467608329643487418083017373548467784839512825701328301983096585193719501586505827270557728023081309079104433195911443402258085307120380167970775387004258759603052959898152091144431932363879112585246253502040178168771570999092650861220766995552305976436398766712035587264902858381553140761297406529743137547889729101931657977643825163676433784636966425117945834889569909869190665064454733527939970886684220009636573024473615218914718658556435408514344195401417078261463027975842531292891436902639742467378651572664783197503007072770732435867136655797429120042710480547076558205469612902403696485770771659199871199726161050777716188965958560380094964580590479577757851725459752200763073089968462083077027009542015678300747527823070758809177053353144554760022445066446634707962220454082606699267188462659723762050114594394029845491632230789771322135836162517580431691118155918892282581549469585472148562923709037940394765215996838209495794651070354304173418317080845464702456344202367077030148418590932251808273792840812356828388381554329121946598861462687654947261697267390740932270817354607841419228080636296095508139267640583713121430208851719637280535559885624486145261941477755067684520213493679925318960166031316813590423850033390210043885470104442585476235081908317602037712851617987771861912726610174114813311025704135067776339114704910196671702148396379997614776152530643136567085405387879621740285821229590285699523223509439136838170996444195572514023754665092363926151598573373359475226761122056379722203808792134575335553590591509963283659117993575430446902840637392600099495626307807822268792280213103033075637650665406710706323934905018009473847352349017748180024127165128531607034886605745508706080926929669454798395369429150780467214803020744741143683167768032732500357237726765353127267479787891552305447524400528088507223372881883656497095385055573539063810644154270089912171330156714399221490122012573024818360174036625843285817522860408186410623639896699102622641081995590387813467917674320156318299201465799854023422377418410059849645667547410249581805421842251538893246391447804231096408210674664781888554755775227984100348662120910470012392735762678191675358253942804916645684167355839767542544972441796950967423412860617856622603432899514950695302416291982553463904688981876270640137612956569904062073599129689277746514162645443909156867209638813458940481907428914536303448218353251203462742783861245097180803484916545297705055153021660588319496920461305154153667096894660625641430820803664730868086245442978064193530365096414734410650813923460129608626083269787781846776455628173155464589275477096612739491202474047387144938519859110761379288903204643835022462073292208162619989243510527211937257162069182809305188813481337253741317457224100186754369594459331232879798664352901336864025044721332187478603160716876701389539927975974232077454408431459563533207710210270911894673122256101618788811413364057150395533458077206698145901759448664994835236089948127384627658402886193161915030573713348565654063211587606300308473176106191850891475269548050694613431570376051487314359990229003078671279355377040425964046441972381072583270546194746580861576255021302052114456106139425615419108364484238592239164269455764798817465896057626487597506892542635230717684780733831901552140367151128707187679203191730482271440168599141812738355954131203129451471154153399869795421093357579343320302681866607246357450430045546591029387441788703131015811789870786768472492202653984095354453382567926416247444637951924931780811879815034140891903553624380311452811993957935589031550755870976912105230417606445094058525053722926075615654025379587584025709927375929932936731000591566183861137143657838497054195347905033946306249378365039393690641805730820098644549695939277487211302595297325512567138699323402740393851191086873282638397713782838428432211395395173192143471675721855539423149961925791273471396511839076165911505314747178642656275545494356210006286043710329378782211900465484043756035434654994961565956511537429090907567105790582019835468412235481051648799540616556215382266039962443057007458885878854262832088155120186813695801761125452129106905213519188214357464020011051057688737381187745033644802404067792264762821244928575775478348346712737336538174308615179930431796389704977073072590521554302382873542371484814873120886279857962012404721011504650125126104521117511735585847999299764417991494043551514253062899679058316261251927105804002433949932055498634655394722431360613219402476977345462155055005467262643946632448216771177378712153049865008458822772039979983923652965775010896984805626603647473352553690981689160859054852302386816387465976900188842014843527851433962340237221424433518979016125829646305320576794485286042055544469497445177791277709235038456352825088447442198788553081141103620051026178852101998108217473568586028613560412077172865576522137474357798184535457604500079043909587995548976454231990607717184311922558454939364354380617318183688968929070289752108419256225142093285958243560452794976897281157098634164720648290848669176129287140553127660107783525366841442797960996681695104995683145214148817216601238336047095018861978114355214834252983598006369533103795603557548605260957496574647946372247221471115062215244654450750060806083653989934167177168743798306229599828513903703258668851717890278953689010444016930672743642097157832271823718988128641640013990754450747327834523867419380285482424683985915283569442944660009710315606795667794459950256124437224593012419799265337416457301550722251362609991183918417626962444830533907610335189346141254652197078927935604173090926220894209193432246351198110151339966765795528724123442287090052933662409212045555495801218474222839578161276698207260492025893626064384637683205456661805861945560866938831730771889212097516641985091384599184292518953075902667977752241444757963072155370950714710062098471182391256299235170513430765575500166108976502622772227863726603078204701740047118584580415624604989172048780433886360838839307571952049107768891422450298624105076153123052896857286851081501317230149175548189328865302469690277462098039135644991437925116682641030326641193466271762964999505158491088388299063655222847167363757705042831369757971818102755407412940469639137448185309694181841767984550723362116512475762160782703725313494425217520039308819722235372938311837038565781133867650953065231278383405422119061460427729391840476345212370432654795591872847851311252370794306977195312675768867656131727495291344623767577969776724626747363616795542804705305107382314975056104410040663377881099343245789932805231394717231381027863404347723701189285231982742235156652868587995536214519406750672510977901046191653669678011988672498150769512959257892805076348965213774293168791305205104978579880696127194977341954725000308575277686480703285005651848024480428935624429721161861692942308106916278443402587619549002071799278019224423276230094467347437873693845088711283133472289475780999175290563025943679242735138757942053688202739715640845843518925045800955050445354432917802443813203431873389054431837883570509592449067161606814649944537952785162954908506159677999260007401670497123776508039925021071870098997525209562264516387078072496199736350472123429458719731909999475229719712082891400983574796177710420712754248427367332409416803952137148648058467656958629887059485386572053658639779687687333045494956013057520513397303921440806425469114984458703502158790186967385433877207421709210532823473503405332450100692123370218958910484946129735290681864786435142731161910532283540352084652342320885899879589002710448212605165113102320916905503172906258600753485564237458029221059434636490487959338656228462198509403453968686655919548125907315198643874565810024624546080126743067496947659248616959527348700983276053894564490471864863307816549119027980355200172194551672752629380284250282472503834098180658241218341207981155411390879406423025885009638099389516040515226782644138911855010280889201881263177867679435497358070866299558421908605701844570531237730052195800914731631736687434528547908780655399826394184531258312462129379337312335689662244093600046524949219782145245958074965779911022463012987145315107951778464382665876316689914139493263353129865189723501755673332344383781249184613147407252874727125178113481928415347711412624406362477396174544179154216219210267393866706381140633416531884738524603937707545113732592050936693036607889422870059638481477929086684159614278596267284902319225762422248668130559579632983136376463894338712291475932869152682418300790783901497951373510083177385942881028494000087190993076142405300854703056524396676374898288501476588726481522422014634863392783749413843405293799998374538233124702728175199161559431163355844173070002116731214768836271213239282192593053871948925545470690569683839951302002388281759862806875344977159190819564620167749842624384595720808178362277020870615699543048008365502634789539810071175005296538788339227326140566873188834949023030920883362050720841768055852863316516042423687411355474040700946685344248546935774349005674905349721324254460929533234617337917027555728549141057166291040502395496035985190667982766323953897003110676659716139202606163481304735988511498390351274653157325010959478651026930745874434184038271940090518721322558705984261074798829353908992648763710482603670187638443141802505001907036879338303665789535027776576736096119155106442304430949431199320532564002704636239266976567343096134409315771057091152381533797046886916029187707703051699351773655169379833655526411011497368229847321618876518396844132671894893794250141534468337126241600080115059488256296225390609344152399503608161472953215025266845263720008788548118400393297896926700526722426269694077508851286504758660217826635578354933026762449125750843369741110669859730130436006633682011368456512818694234007531932666174002146292212741849443111975105655212827974415029778170840571534155642062850062384165695481096338891900765481305351612921865286998368538458498210327446895728413070734671806881055700932871528426749637035931813101001189097755958281996509482543794355107555833788906676012715384902443023447575171074342717011696782331485565117034015148044902812999793825952361660112818874866012387647209246798646122135975115868003858498987386601992200462674164784665209155021157371435968266495174840329742929392437623432478068909514439628111991904119682220119678506315757434873446120373518059679015030995155957060471283191626323834254891100079290174279005389096033516581048928665152234675448514420715976176341009581261816581258090914026602498971671374004054777096968471854434092966663338757832639832990187617570671280821980960249587447236487658949591391956501669554157639935026346166761190296970573826914541903717168790477186219788885770464992746964960669178185160873559256681202366326626305222430233940336627893625425272173546127250995792395889929833300167193780950043677245699799126260978899679070375172064567889164600801554119698907312940415234840343566815627098610009822195388983849555833361137422202122569334604984742974989614671742600266329917205508154306428085721000513115889450069472549204882208958323234634273048591427676441478058713920799923369180529373648996106004116032465008045623836333674146326311716088535803657442632127218045074372680041996369259820633907370070737749909561260207207309254990763169211527954661224733159167375410580322731138279011786849100778322018185789947939701911148003373429247302702266182459431054945263839614949504447940531027790766626619270175320472424866574304871319681363432916999764029772050518291396603213634605230778215785069110796138667846773507599872761794046738575898822840597258237147248706756872576132658487441138652891579025469545806508514845873646246979404420954519219895519902906433591788371280539407546089848498882260194275643442073166402826376081275920513224878214906288862814267346863850958253437370626386977097078682360326690619629710343284018903435186769102142660000695086826403764325624373365116407956613667032677273049600463786167597619411059584652713048459085861848425357336898151141076893119822205698817288189545358965398787342252189026112935434681812572191263491435767975504351334276096093172134100816296025884687617160342446728542038541029050681386044753157143379538095156442252747593123302356614781407746981372947393712533333747787461617304830919873159219709680819842714792230252703383743473885802374456685398351992370489240109375286558584050500618660251496799734835530722394101932934486731307373527614919945914420173103700481240908308840126145009241262213450622559926302888501741131984737671150175478893215860359519178580101724276033542448624264094255041859833986980803246961059344556109898192174547150037813598763590979902897074739924106869630813691503019236188163445146859541972222308646852874703862724841311886213186239696963238898493324257250391740025223180251120814383179457634404283029108275826260650606094166440309878383139416593035557715208203009098842909648504606161015511158736552069303680016291635963444219226251571311772973362994896573722914882982152184950771489262262811123894782820862194538169235791246821917880139932310860484874232398464337830084749963328252905361147774628459449620349657054021312639014097031137456227088431704438835370661597588008533124031588441674879960186776833714194587069516019871353355643156629737534319973616913868875619921556676033146198179342958172510192876613158300533824174083291908371525924693445897385033357129828620690933474389810576269090765244353234885352678614674729881623728728299602540890655246098526817397087405925426138409162020363424872988161586274293081369706086135293275975061970640915690741831443019282255445710667552184584163929628523679757175889602742947266146356815000920571369270189568242341001702178412265655180272626001270293380633232635379487391187813082272688926989041488975694219184723841533870048916641336711309409489761056376367348322491463557784232753448066574758925003710789213257032331391036563220651313259832323248403404197885402011042867459616734713479556241623042760984354236841690630021439818438772744108807155457498926451925761147396598369402529044964471625219676302651541874053226990564321608858339758787985698986452364154792020035833590143604345158892184416148505603317474495327502954905685895191781230737301980552239480120115095458465347523290285782622572104644198814785886476912222485727258453650869328577869033851926528679418579301830666889073063182649827160662630800453632994389036017038279461832606410577224736365195516169256036938352168112564878729313503099431255266316831890196777896905393316994550022668386777065875788031037844456138418138966994389921068292389304253928624636578294685078769406073967709562033966564176356223552061806689010028544906644363980588676407557457071515037194268346216706426542623146711362180254577651378361103918369902598304752122724185192542116406177259602241944449650937824179444011013804543440341128656123630739610475754427678174468375260518808807182510894300120295679585915607863907009708270388501495626081932115245780757347803043101458038197910368820322987417534995330986156288067529265861006094095580773525899235556231312297719382840623710655606563504661519008586707069590978717489911443498160389376928500767274916940322570392733779975481571591045731670125263647712209922889450691113513605055127299259905212615048505296009665115959869019360941698016253628590942180612133203093120776201526640327354472863214165575599676946184253136199340755911010314656390789377530325393545940499708162352724331593436532461676795214625714958111282805442788242234716139607477186050525506999887414973157119031640696729211910251653949659126424830565033296551651953151894500349872571355333067569955999402878562018368197902828120121189711808369912052847357074843294110677845763259447197459439771510216560769722731035341268080200405534065439295037085960992676141921908149510465600007909314871421229172845662192046509137859633634817923503055252405697664724856040888289227603826366946256223605808735186086651895239070535372649858128356484288158073533789976824195743111593205676426290230446869274760340539905315032219490472461550732876062252571104197131998785196659217995263990945695068983802027773488429650047387920781871922890345660999973233577244294569917018537341085068713896399434959136104592688408041889759306345295045111288654136038661499020001038623747256783632129977453030404319110168947213182747643233099541453122938669792019353027898993885031174243637050232797245228657233254841807443902321516795296481586741483770168190469942592365818814789423945245985344605954926490372904415029591749529502963130518835214909929731056318724228275888099150908991691495475648322168155034063726128364805699804413858635836103703005463732495684985281410158621893080672253201323231941332258532501203830102421790374857432167662656186473742256161637442169087647628776911276680151465653631396789460339117831994087401347740183340930406373832461986094574324513721429288617062944555415742360351024196331437520113069541953390438742083128783599003539261017576381323002786673980386242667642888755931306756210518915426561015768407961211063475245154256123332801457852580706681043531349698221878896063098898788154508780181201239853161431951658040615100021775526755370955183934738642673788904116281446493862522975880776257880663995973384942677575205654607263946339696424058490924978594440208016496629294345473540205162063221279179176841482981360401169123126658210273588464739750412977220259313405712508042305532071869441284746051138330440617893680557360091829835373903200415123114073920749726181289892069699617664889681674018736478603946755496029227334467790951598443068674194597016977446242624364331253122854771657692739393957639922928753742162206253207044013222659453851165298047647888147511813330222165331973494340207735444231725032109496970572195987993481302597905754082352570677439085032431859792851682797729154483663797258922751591583913792459642576578890332240063334390079892272724864232907733884886150275467448363857756429821698239280502055044945828736341066486422342398927059910868260745376451666494227300285097912152876763314461813301033343196693651130120300842414647929231625875698769693038361436958741386515354972380192557052504370172706133228391758699528932274253509894325905463472698856848707439504012136986515411195475120231331909327454831039861120509304199054028538227273606838390025786124778761011789936174665214577764286618129058842688905568341461244180674932830466697438823125453646722177631365101092852155721634710472500729075449470156933368126144591914007946808151799545805358280776298871018673494861078110000959402244036017722639979878998778387818119042352741137367514998451412412083314138238933284820281715562312314833372655275255646848210605826194608578038294138982949799920360765306048782653150615146665686879132071368020460811775079829772237601689496249558413989911628686674523825254639070594743522740565974904002977107719983608688274843148619861022204386888326155373020509341357786792547665055731730223999597917850281098250332587076979531132376057205097853365866034779937917062621433270847664888688524379531299367434247245447730711076203305274963954331939784179444125793522083270066361858274451499934927358421911591940817710296653819956350565197185646061596947980120679050216961928159733738952512746415968965902692989260810072148681254490568100427667478168381085374273125984862727749185189135940113354952910510129417442115504620840070703398696774499075361869008937063725152746598494085962263242483083059428367805149899838685964337844065696259534717566754392000997563482405506652861120168506051406995368713219693161522233971059781775594550952351970248672905161227632375275560113300224645835878420230889126357836906738848596888778218192439207929258479124692291431278979654261398136544398988177043988152613787309744163883776242911886874136656349066521593476629496921176319731078186181524196164830882529614025067964766406394811132177856022624346371583345931636066183046191302505517321394723673267213009673764390015973182465138345047496105812445102887647377030666881779535830292666513516146507896313928130307337615873674629054069072184315748007997128065347839828627883112775739047427518584928003781086788893122899725258449345562553232469696587984891177815757086851623764290041257476418413414198148009310912294325033683183633125088697313898943905661076122272089318311479537699074457478883344572366834492328178840505668388024386566908366115381848606610162267534014559916847201231413308757519733485282480588488531597486635857624390524970207921519106657789898510411445899739703123810521797688522823774390732288212348906786899781355255861138782455376525767478190988870192779024357897296907616083876700413592223682689824182184319765589110940827823044448097761712938662055410461142626383550479796141235493965200818713407397355239666884832176201224303658479288069564706998429637185354666375746478671069551874335576143219657737092421199133626069945556899834142235160896694361146380965209517535163299871326800957221566875637047630905210455070201081395832079661354193826781368417752461865590691858840392688625358986310479212372101830350708116726671137055532183178766293406003788268396009867887776285098999428285023681939331675944781765838768248348454478290579627888528889355196356775853065183172492948543020604967869086970190771372392176017053875658289757521983972000120992077651437361981293631250297115674512560527959486262866906745259396938069900005368690655236731471477681034229106046176418759080704221086436620989221491937417897725628765592917341767192226237568889301917385779001244840073465635384400387737350332840717052493067507083626276693674422896579483272210694634878721077342999070229640517400713984605079271080704947270027643189279919403313824379931272644917017118756746076236047623642433624081297666992833649038343912790498200854863033114403992387896202892179178865166314300127303406400859856883796435315287414739398612951039680476048390197574317875057693386542465909144343331550827452808883224504679592962289489145819174741421518162291803194339879135007687681479883290374365683639373127156023204855745035825557497471074836827904595549547823539157473718143609478936380436155182216086712195807897698862816010605449710488811953815326994948796362928793759798607546942696198223829024407681113670949390200339115840319667723379577130391919910774060305995630011020838620279090958475940456961757353561044114050266899418472762139137639955556481525952913539871912562130813475786098854151636566490876423331187978297680163525611286954239162284572543512015735942428196269881665860386659227743091188882860384314084944765100037790031588227404722478536588013853677769664686679255139398581786983697313933435634043312722187914550473564351492046633866762071446678225139435790396728386944625438503108339176461687144368757222926584801177465185214097900292788062430934504354232833060999665682783472094869216024840622575079872583113214032934833089816587478507784195332094355076504719014360415313432411649840889560857287827121057306636860654523678557605206892676027042723957688707236001272826900499340597366184570581722472982807982271793546174904928532168953639312276971774205279287256513492184229508637997255708126878930409166045229645153812680931324363512569162458914301213060501064002202042868240988941173918794017368987263354759207022296868893780715852903810926143717789200256250318386269124647596246961001082249970449079306270166139713070866027536163201051343029031944150473685101401738161970308182899224150185940817927282754390149338333956378865069050350164700510109713000780597352965831864265537172222160197546254429821177857259002485345366648613448321729286624742986958854852010565008589404841311836280738440711201502389343516079279038662536899163947927013569866861312692830976385893225749922910147867281429320175572857128462357356584778722652981080736552680861482030682569250914163315927779210327697849780642491026292149313334618136398145880954798528107549556232121095426903098590698796326723978213792536881771221869899837258708811340255851391244300699304933411839647417246286976396354463153027241539088565179993163811737993463935105416046048290640744230074417572400012037977649247742441176466550505414982771076063159362307784696116576367232786195919925702629964656590065618564054868802927621113468263551190620961215710694179435739865505151311604617117511186826890399584890923138399209238262212030483842313497654436781609645680187181561411067123594556548583793372190748007384424787689571998885220707140398335765222755943402086946686761898831302209358011330259208809973971956719170563220104568955549051031231911459447567585073055601214677942976881213057378441833960601301235635998414126548338610587060075723167823643683812503540367937228039114293400765229870638412716979340499490564606896434530125050451098053435005595839636264440738313668498346578837529136648858949823320207416974192003849550619390747619043245741904776318221974561170070556069439158302902211378150250564833495575820121617958819700226130595299271129475003723327523679614574728260690959723545344743061784357268569716873219070595982484585550030277050889728508299047806498429059221832919869257333054269959514334963600781288366517934275489949136358615532426369868404581224902667793348346889215709525109640991669489302352584577624569385589205163001174003479182099826987443258499178381429529996430351407382870521885069889427475991626767692246516156463106994338873201828338361722468257989338406496625109749452896991365995209532124589210242139805221388821211095727306044306891561548535134609923996792081459763247581586300994625440219112747836411711833959537533548437060947377052438475282843686885903938838791259277664532724094264056247344805668152485268469675296868511934771293540781017366769782203233367424011519080507057985719777788845176840619763233151671258529685272630163791956701936428488550988402240733311434670852360714528821080908206024560224927100570126455583131243437610805743051762358157024520272954767355679208437768102796834959192890105878407477428430046324697110551376309226762596436703638876130409337900903608374643623915533545176763677464198573171674337032180720544403334584523638776569217364077160016238263382180449045949348632510785189187218563338298326933935360711155143052114606435060953293848200519105125136185499722005248181891455270036945998664791068762947825466518122471088379438611277486483983200934416360379845286744999825003823546038438160112689392567574480371439342896055969684110594448007937067633966047559112157070749608116700054337891042316770048789372215567919198926242610207430425155802323551631284605478241555304820650156126845120697250854300248120393593426357616020865502914810579617332495028402401056577357530915956578873630181907898506298071120377411771696523789487628965572722315119381213197403792317848535572565754585104426251640186029759809272132050252036268598861860374968148649848532984189148583561163348497360785901456002125405721211826367863831596795913023149272274857459101606413319889362882182214122953603390077843722341389578140622684988756902314115503885315592273578540172663846434655223581339382737766594063618223609808963799456764243694438192040703006378689848680100993390141723217452025445080704651610027152226922746316677130456322961644560590924538898324705820614423724888151458337563563578400324957889866989101203772718196609643629514564541106902556141744093804255301003766900351898984355277849093414291975441491763612432736772225054923528616814618861463295242383888284077497924852116980969340360313508168797678127409470145235893669212762496765445404437248130389994381557704085198015928021396233408729663471708158828350285870807890160426307493607025531457719882824242818531186667592912614679334313952717882345370730579487566522233466432876642948595866044425681355873298395253112168786564365224314861117154648184304157470352897318186971857224358895566330717422309001215480973854733050644531948310872785381787746423235153580902043506641013330765433538060996467268991470461083887547694984876544270797746709224109028292036976371216864876046595857314121244258928913055688488807785745642819588311120014018240940281236156229251767586202896434056265468214996272731984046913365923783807320818216225393679875072427577329500293119282016050395413001668114006654905847086491841982860095083386621295288830795005506370857868260346303680400478303412269101572928400738141731699047348113546106401905726574646332134892647765768313120108979537725076986142409700558237589341979481627624587374575595785038740340885807688363672841920156214592389288313164334431606229259515454355501541418306491297324310711749631571645482969892503661914374911926013551495866724603253602919764458134660874413612993147407253147013404833786729995329734917691833006468031125866165385191828975580047798233036140737031535658057298872174753627004626720639848397466316527232167225993629511377856924482661631131001426870917966564869556766058614042158674174287079984393406554760458411462034454899002100676024610200312842910338821681118927762806079602069375083382287792367750045790132936662605512494104496782483340231352835878655256929172917498519361037516124827150965566995398194803329293241693929745762071803937566049805404395970753102180258058568374252160829934463328969974115635693645627012179128555550317786257154163209588824916343057970731004088644301717753272306090272261152599482852042742223420800376298011689249564249511375587464284944901695273792846612333889286410393439943358959774390872250448506528871664509362274218996505031674835926594381524367388452562599771819607029429750929616266223264148394161274493824174191934977914044642531974737137065344616697844698291456235535724384873842232460591454541189815418239818837632394979785541619195802354397103032693649908286959998130703618994895605637593660100655896524144402021799504155159633490725591336407495801969905835190297827060286453603931504474283239053952192914278959446102597842946581025864330809808514431853919887202594422608398038255490155424031250273069496259291802915716538211101551851349679976191181300657233640797000932586227184256759469440764441366700336200560715938967315475079496449926829701200931082317089119520372408660083004502401007504157205081146536803137627818168848103603582234472674721282092337067942567589479800500431630233942442349334447453312136470846250357463427330068913443648706084087414544529470051593738989492943680655541176667157172802102004799270002094123201652440794316682790206846756943842320278673226116993994540879632425936851195225525303139290237544980001574435526654560936990270288408070656943406830631867691016800982134289130304811406546741602914091419980295659638892859622355758067914891596110890214920406707395161755627763889668094879292731515998364489036233138966449582251970725619810431845386808653592481339140772802627102439328839977925823976109064187786201909250439334984803075119948281200738530799632454470934505137967548868750890777662317895271440014512941738689347566269984126975622573514622006522835136115096010080129121032270763313237729019431152696490502622713258336220441004862891849322709786693051627974335681315284325112541438969672829800933316221098629629485319450487939558039447080152959140582177319818886904270201182531963916117760085004952210821905309692393182725711158904840666958292085418131870942426204623565270009139440471478102518853674876457379446418424597148660794030650313947913098911628628703001692869389281514760582065039202924701948688410471602748307781616247495674534765617304527744370549352556175044986904266741914813057500010667450899626113797116032292734119310109988974150316691373076179097791427158494292592891356778220324210794044932632530865450506781191650880229153593838594333731647855707610509201036442259850325774218246781874209132777283980838530741685481572182280261082901786299134374779889741921156768253503764177195858947854787055872946570204416352497696241139775237880569266545656120182669788373411381986984141826575426441987733183539905106168225224614109381505469168092637368803771236540489550789978106962265858412974382576795692814024582003534969039039642717479242585685917794283275554076503562273768899273669974103746770379712327361788581582540229227387213283882845863804163610889837314211779812169092251331950171872301371908914924288920314616392199887218507896733554751654320157978416431066867097455927961476934315256820061590609745145451202209086990833821270197603969688319183982046081089319177806956060645390526812805662812601462740533824906672785422810671999839774147892302844597328142711247130575672970355018351760753571560334900205554493544435962947925979227667875464646314703334655558806368983917270608106495559758444938027901840624990499777450063696542446519761772695707117657354138675709278049401879412079159707203151243477795121799949219263899105675869479386209549912875547796339183815230253639252629838194220728316467243680973917050957335200393004521859791098274846045561651336730306233581652756660184733415616076111041484296840440551117526303846366215096832228277397867173828759232645002583013699156989093730145954722878831145964330291170860801001463878216283979614948234077860154139774489247650301059917561857276817504160820844878568757298688304968248759596876652346930497986082597907323123725947608906029775130844828255428648161788176765891755836059850451135898838255161255181569647496784576731688908159196325341486699300873708430538557176494916315880887760181164094431254929618123141309927534472421742204894007494382385958166057400952553839591262504790684226002507124467351719779745779096094841804647856224811189921826802668968485655491002726761711663520514922683829788835266831924946174844551018853287771358696168522433290001048567014838816338927140564803811997441591104440817554452777360569374990586326468191681699766588885460705493035389653256774463625720130453023683753357882928283897512158630703736209274619626712480635239953701040778253987561988150257955382156603303791731328030992180696995999790433900631736503039024017215159713818694731998534890918480641499184596470292142835924807352975695788527108816577494638973705362964173965591937093040772211210827410100306464857215408210675743644634383967268163644466462916569233132014400763525715114832674340428316771752893588847232871515512291516548050123804414072281312396398241498528947523358714409866608530893912981967691565408861727891456282337503306676656227004358114858112508238756671509537662893213701019666109271517338181966354587012695806477402549456559500671973691401649839147206939171428058967828478476720703178587116852651841420933149965025464972365644431528846609783608122674712819032329156382366847524854006421479358221342124563921863536232554214717047804709470781077444863679646415167018538596129143578120823022120288571603474551817126466189756837238243474676727786885945829812094326950261005272571852106682221274515769263785261031706617576093375526896689409991495995563485052567815672040384293681905877138571389682522548232897778098408132443230425865326067205270145723543800413230249785571686674237303669970375938931485167187307953391942411260335509096373903886166126035284541422018737392168193914786148879445549739278438521465654512858568717473558291928611673005370423007067623349787597791518895047955003869888086587867988588302220861498636354973294734986001159668178174614710016341607910895066661756544317435531122075979422067834279660048364675127900443184956971462858369352557930691995629089257625929659963065145980771675180107208167997510342730062913082012045735924323837418610676842952315782883134919459777870070956793249242215217502502599725270377512471385643191138569767994912838145003224150889834133583205216289535728614335954740778644926465839013796799892642095374707766435443056489748948740432739637521897052780439983025214758899338698150109946105536078257587152510027906779842766026418843137039809899015886893196386809405592264608761629296853906027878026887905885100312580371181335036615790232459680767293302783372415770645361880373107809293234133389334111625581960798118222596038172987457439160864715062578275387355422301251090847256975662031386779687611832368154519242692180382779384425412751407339524547399837434870316817690515815152701450167758692473517485422386906403586797331449351228980202550829663248486681751490089325368422343982938992950550890168000044975727354747339826768909793540253633805643308038892665379899555418651162233672896817734295040739685433598587813635810811526127622464301545600598272962707532385137871618477695881545352381912617901335125370601114028819062726094303314650733925310639582721969139445278779289452590829255967416397715772780227702645497495906749453742701663996275207866548815615779742398432365520018386729641579771095752283430109114597520120820647191027485811077763895382771035917415299577380285337198673898819029088794696924204896925483730548931770009819886054039100384459941158003692028503866359821432573422015286594359592468948150012796120199928441409420908961085025935285659689586271636883852849862601323655509703011313280000663685638277267124620053017740129037615735833585385870588404558510414538872077009093195880305267473142404587839763302222653514129264617730352385473329794414590717561554454171804394719836672043788172937210491571769856009297224843472367311206295440368112553739941594796750572021752362276328466972122698581451167362991384167983123072889596388218997682602227759015995472143785958753236497273572940775809080959830511433914057568607211141652875787574153559448031506634005577670720122153565367077000639420608231233578105396578293677893349069654699589947686968278243404250716923870992947935881980361595135879771510197107302096174052434956818249053767688917852059340680930760132809528724530143054818121409518912074695585898696158679176553211620523824104839477595046809536940857508405001063869815602552790931240736606743261019051248349465672820743042087729102039929323014588338785614274515595171076471349914696279868691388026218473548477741837124433111836814244382627250072203648173782169091536871070526229678540646287699114384103646556676159810503905253670704479231494434833119267443200550547074187109837185212328416847749808024219263605427316830248155104070340615028423687578522698712760879753941542076260721720625609596495929466093639745250809330558803669756862027547999340910790750784502624575811833338563297732767811262486958881334600457578899149046526633340026794219363422806913891744525084326444521511110799331347069256051792762101259868167997110943982850099723066487935017416875940535238304475739608249374285850287465926984590141807308736805808401778584169175635285247784502539079007534375193576387928575350399011507861008320129235891778499404862254670300718328553674337731428305736037379077626720881878547152118519006298088262203726680773827035525926020333170160765032529564588496004254230249906112035109341100350195296157449531421964845310787468544713926530150167333567849949166732345298186719405792294314324217810255968286658119613211080546472747041262922584106136795568747209135284218191881642939557105361149862444182175056707677606303196720742085279328629523774894897617874861090038696318136357522359424782697618678899368119248774815249686688338724459041902679978568674483668768613619912782302886226992482134611990186369791200612433365121016456185909805521372258061784499347504323680694737014964043264639326743850491977391154895365656768780972262064477737340400395000464387188929983041993124127273320582603320554570677960424131588988447914146402306059589564388771189287779446439825051050719389188219869762722578761518102425504989798762691023118200858337029536813484395124120874313268944926353263983914204022517546325746852227063299660635305163617943463303915715942468855200136799646769331091019770492366150297952504160751745107192779691992515100835520710242590383281127596874989827809998160447019718992921321357263539394706761185169647667685350413535138498428773414498070604220513269203188475821839638226390829706555143020437460793859673015607318896796873530775647100032154843850341095166339491774351650344214266742267143922870937506142501649730836074431361506894162954283135032569436196192196600038367309708720175073730598554040993051314862178168186517838525060289935767924605560907576581880501909627308374093102783275896236548107938357471802612597612461308478010075192022325445420361298836099701682704979806838438424200917429376886995380185412904101779091681770485302197954919718972339644556454061040252799288738390354050526871470699203154985302092766321029072913304725253828915819630277801092017942472737289240962790197485911085537029467405318809251472789673464506777254302091256416140119256118296431370140566776237372620473352070739116215662063706644033148792035557518325424351260867443960653674308008730244475167783748166040446483427210358768473174863842309182851543298627262365323531111117379961433690664306387573492516736680657542856084251581255098360602533359026571037293010315291451524395175631650323234701250322227136696737816492965470471539476153745419879837919281142419701175564552008845478353661974775556658608118595584585271245612123314282216872817231880110071930341835633611219380478771276731913020244442324795731853175151179132414593868707368140867287457689789390051229316264263082905586514068764560174025375472180392349350770047439442737044268743774258546667655715146607098119421120589442286007225810905395722044508964676454635884910409121276686319146237768084235332019463866142479289804278019224871584400448231716984263208905246745036119642605863090762942456720393316828234611893505807617424427343024404933495619027167650131731899976061589239413199163779184942260571400822972871699490164773986934998218125875294821441506694968579988055102160857411997384957688385613994281799144346255619234847662225921906549881800077968394694876703378818288810669849872776572969108128534719390771008143065108328346632044610174872272744453071145914806782305021216103238860472969787906128322319123365995940308475551526144583913492757121794211013955457695398427931994409743128146688553222835359632454591597269353458694978836599411102554551994997564273339066974203289947588728276437683156752268207818920235942923475036918961595354347339328065561916541507465826721234440306558574212447755991543673370022862333930827762411121645903104816580350860161871463856962054795186587385365516403218103666517462221118648940812029093691361270418514381500577689376556877568225895089147969956486932409853422510609136302963785016213413836564758946191457864763442689585722346453555062528554207542955020308236799964633671451599443616431023207692877238544980688054738876735679507862012259508018549224308074766375773732616903992616438159515620988154700607440267534868923055369641606652856845662093289240603225335780090819360980606947947083138602272705836684243175375446594476941242907765291948078238592384815855238127488378785464886090271510041159979967376880033991734877749313555901772255716518205456604770739392760835103127009273062368734256840909034605911114944856078544553176781631996355108211795474444471516569501233711866595824878597197747903736055029596361480154038264394984550042036161520119515399503453542866017559757284910458543361458642863758191537492745519287838509721382420526815126259921721709170414512075377255281113088112547726860089217638342624790430969665646873150229887676602914706600035773565306245064572131873437392677546029211392170158024324379631932974635487307780401986718975850820968082712373366232921641489673790228462036722206526709271762117616375634775740206627533680492841086275093485975762388482193092675842177247953152719718921726954974220778288415888828758385691829693201993789365410426477854010103253366764262696760437966788658150596515949859952716551790464006386771555932992373025303039857592438567459395485510659646303956200430750320203549081109798145171842928213775163881023376702726275219715665079175445347340222355885640900688687540213949642696320955236601807134913257236689673458619046740204345338960291230811480494090966976907469784730703529629622578344604992023009680096008315714915827103093069160247222414244171214199443361558441459094075117546373166487707362735398814033096979505176725319430901008343086568883934719624679517263066447781737214039886860538719024518422820223059783843139309443714076896534814908937304940934192581278568379151948615907109248837073979804914687398706867075253125742851851775446887162571159417579848693583515742552600671093304138614998773032322629099970752644947267821853323337348440813398993693746631316800656576264849458913536889371065919010468996987583133381092603750652759430455517397992229053484688922234898376381773645068427362170352290853862936346446386774842913792256099863210245386635860697149712767400937152852316483771947182191625962765035656402793690727315414054000512392956794933700159216308645707192022200378928655573174790350395849822930200465659726966883024701563265645983397157140188494151201643609884608353896737125705073551170965655107219722162272584624739210450476762708767152838475900453549706403251971572616846823391298222496339461737529382212765290502997749699489361800151616517059104941378360953343813157475217309568900375784041783160802159065706060590609132294324796511527258065704349035914432520633926103526615213002869931700692910631914189045402094636199519424495081983584508447569418569402280015901789372975250238968116388587053560849547801151148961983498527275411731236344709043551860016751881361034658617485825521033326879863326289715847185013651849806654712362707654868449445296584346502298906267266190573138816831337433219240954827589956999291847800081131794457260635807201279084608628975826674448197319419529295356646163753042434660217818090949915132066694378092442416107709850888176362890773492173043510417553155300230108498858283247406578233333768242162161241128065101135571833856031018320721963572955102941619707020973703310309605472206117788300126512001891035303328371931732359607764082264800918004242954949929085665113101868242901092174128592657044774015361384114970422454256877698632248721850705706882128495801336725700291205693773207113066059492375503783121929877608205584015749559693002114612742710469076119963701120954948094432871535794472751981177075291859932585630064095231919631409034979940868179083501465434717288572559797208193400632346747167042799193139663494098193695657344078341900639271873902720152061548515587379880787289843137983959578032179867835758834270840877213566523003393510963278127092912310576098251863675251360799174195550401695357111762779936760411800977806983510677571723272090022745721856375887392353651010436605498015065047673438421678021323143486433599823489815612934896353254992897466495431995066592101879840119135191339815845985819429643150100075550502108039783073244554565076750896981072771998567530014747469815564417811814314729169365824779011258551057378934601142632651874494501032470923940360843489888697962539430401122041109979028953043761897880271284812448482901560927476404369558908607325070506065817458591615412672328746272231182756273279148306917309116761493523949739335699507581838310973719083417434076770791651749731009868461858459356140734759701688079729717439753556034829209053234504655180795533020981509431461348227384411063170660695280383535966468056296979419892607090837797074712988581946661612010469577925372121059979485210594887532342870626796891281033051806424548720717599253443278219529874802522259674149238470602242090837314073846402715008153136176539836277008954913225198033813936606831611877510730506484105931594710825852079080979984621380734041493216633571522742166138509066894670296701925820128822244705934267862673559015660109018745211732896222118687633344367564683173257495957490078825983707308947079508852164035807106784400550509850939133364564695962841337121828284180278834810116341188531584658810576361766993872819753808497536280938792136045328028775535993489832789085259772512695861673968433537632195899619049679473511338460038858822484545900548233952517606642991506425439552891912199878412106012192455175105780838474893835244947806234337306364969207992769385211084600156717262500130637677754040240788208294897794499683061503916607008614128929853012209755356356674521249736532417161618466580524866509213964037778708167691830961167636300945952971484925353098326157140129115799892030814902817601917998939626603346997035669409572583087658660546630073831264784278758762196248855096975352530352085122174241580772986440898095657092969307511135753829819661199107433411357562070143632147726055030022947833997020255858908983621411469847749769610906758373115786504284582659732705471492630315207471683107495407415371639424287160775783748705976099136584094124814705700104626430781956851416030572083835522902644045987576208838871053194874233768026217940717775259377312595167835009050396165530502125140200994728870266435630796660215978246861343789404014513570466773779352185144664234515960492262603896007843094385430752285554011155318573437479173175906870069642144327503781520118850889588570528629862389539580062005247542748160705396330226073840390302776129556976375869319249158516932150157975269419625705767870561508037598080840784488323116600399808362455473891719753349461214964498611593963095335009150643958512985628889629100642736673476081871392069695490139965024119517271416871457417305056790236575400863569025671320544058807686015937159563531093885289041664052202525266348189762024394108386135469779761697992022204360108822637704511048000881106863850077874035948203908300214905940020138037256799715747696752323756355924357251055084238030509824642598253114522387302398450015062229616585806339957811001779769000266104378409378581703523040128691314271056993748112160405346105213315743545268800364459047001521804239301605902871087351744567148830486130726724820934255872283802809814753083353406905888035452061089293613246269627319926453083910452883300867069546003037480900432375813206556357652531200063234038986443434918421490425649795813646312655598217527591830680651936255315509234560858346804510776429545194197002587595025107819950917739974002106695131745299299556864634387882576224051247917264710755023179234364869577537127012467333912323596808261626645752606025943341791536509896904788554617609451675016351488852591131768981452295097552091999330366157550228057534933290489827380577389432633316931788115403866872396792525302123074580331041607685912867135023511228809435533659552721861152478011753216758193278129185594639605958732959723427908125589272346927650971735744939693856945344707369439786614438408183602035477056816362356432314376414249870236325086553726582462752713207109219742152091266062503104316605212061497627774051192907518597599866533646798133823602661892514722281542882680355575734505800147827093587659377793982021232472301409839537745087549873502762568899229984068412655242766739459134392845752162200257370863560678607948864996345043143218901049274655584351541948281763466415990361430461997000109148463902456477212942082439027028582955666736523457938935261900409753859406887477466343886515416877137355799437393499674711705886806151131940291065294365964922377026638264188017362730099646352559653033449278538379175727102673536062089090732390072195688278546743539706403985301258251998128512852302249041795083728927149669057937431074083322172433704390599520724692384537348921084459514886789471552948996472493421098754009811946284201298431872031727908066392007440109946322871510082283967189588997058837965881225122673381521760534078082467725659144820126515624775466700433127030441480880595028773533140208416102163135557635084949214383181333325615505061327834390110204683840422160055899256363793248502918776727305150819620542201657064395770255826707622067892289753710489597431378293812590938913942350782647303138636254597776781572555242733597186888104536596999514388401623908476185536367867150488306667535340280829023445719202047944305188625367647837217047733510315774369194678884537238158453037657928600378978794365015390915811125561086578165566033308023070021793114300327822924296096765139451612876761146417525640140512335279067636175932870230822280179440233227403392007606989047633701086974885249034269392418314700566154064377873717090433343635574588290730772496653891701925268123381420874975097730317131233365066198369525508520164738675873561611301234997218696381982013124213932236541467419529594839273233386721125458607730529809027783534344374650335386569036624893758834950748269909114267316948125026494209103052518221890772968633780374594634565186288309112681782811294786024410483461606814922066646510544631767815408180661556347582372144640603486007325684951183824613977749521443329065930005164127942213378289497010073658351506261029188012218326591808660299449871974816346076811942891158071812400321649298729221035956859329781719634073061282691753933180966918037959916286346635792009491379985337661781996933098749959834092767626876271237346897140217977450393864645929371737870453620277384561302686262246428470828863253962093248881671224916701760632911258459920404449836463796817161831723667298333478817997439472533270668212121847317424150091738781679528285156528939421191389148688384400145966779541454567664310511848103392659955429914171312003526281873501947694283888510503726526058974194445125026527849082156871559585841050649328355133899346923604154842876545478383453930410445407763113023650266562765284145592688175546341400857057652279334948050999357169091424525151313593849458270155404783219604217923845355703087911738827337551042359240132031921298073253492883348858257866821254309546487381615551357406008307095557322682949972537486574098064265687762330948637124169853791470873093156751155005347377640270738696169883718123419638270756567053675979322715060588077547993722690752372533828690471798019863936000751834206445800126231318510208083244566018292167155516520165836333334036396394231354684339814880123186590896481813805675984544242060052268064885093411083602852023626499381577842312046766566503667721439763443603490692039766154533374824783143643319915819817305267527964951981824737512930407486477845129552130376619163006748083132688545467026626766702996542947898486177767106394464974946688274031490940242246990060875568456760459599628038881207980435147010808497887620454630399988993731169528713733121052608332246831068449038530714415813283483281570609302225244009155587509670810875900882536531924140041013775354648556467824912859683128769124426787411373473283074124163798789287636517808736065327360324796363329366042102625009684748476019072207954000055920813877117224220168662278087026027696851280186163865434526326245142150082499713194144986079245643502595712509309908562951207198532315564685386315039993905577392984508770177393486101407143030134669553864400343388912279694850616869641151045408533773086854261481512532871973926913119357422577000948009069065564352466146598602839803670466905277947243803351690882318006927495278026807125586228603003624832888625483875735213098630825129008565884680323573332148129266543753824958511760142873935430279177948490402100268878511524627761095578425700233782405260174150143971689287788678275482304422166214882988173373268915546045354026502034259747728845737354785491189087347090100681000040578690449332183733627372935948110342044062128578041123789192152739252290369859413719623358200660209553063801579017102915342540913656955274649823721178382327925901109208279422917273340073089275337928402976263721424310608148060599720850949720700653517903459362381625474054871319748280565815044692574086216407978153291241488002044430150194897265776807747440112969183611298916625498893002281392492104236419435342941929538307610303768439689112788678346299892305651883884422012465658812115556106314573803644422639147596515825516753185003143364319457714731375052626940267805871753254628706431851846053129663703571218993321725054469272477132116807168934945799353689232840841175631121241998490200457010604026174179298507161228697614533918911421990165700152316482346019391062195519717741140640349012325800252061361183012337979853673198277018650759761193956133487276650426008920082113508709739466484131044185446119262512538808974822477285035079448512954945826851133353430597677461987360769160709147758464250347447623820320169734448152629320307606204793298347118155544584147569792395806716079910862148163309624920800538061921178224919955749270047530395151261601654396996702823032927627497951942948976591632380458780658656895083730084673109703309445433627565643517979216639649794733175150328899885909311922600137006288292073836442180896109457224913479034336877568666097206036073183307429691233776874577943844771663738174295526722864527822852356911167092888911143631394503837413202779240671969969732186444556618053035800887112648698276927629988561952375540869977759488084407406681445565976048487548492809544823157017133858526042219494556281823439416398306896903605357521169930542173954273956987550447772142604008240547849763775498161372907613021927975055964125060778411735418114779733630622022897641533370985705798984415709321911759225006544856821881094168032558764924560293203518331601698817900639476481892070638234119753160138540718173454569678783058300756969885491715133347998510518451723491446215376977908848837696295387087511355748953097844136902595542663821707551417567673717338559721935323097839930588752418500797151341431099562482606814333486877333068634643848653313547436193974873197147302031960704398003381717883844481755818475595326176537366360361357984764531827422558989338248118745210356409458810722809614997108214670889449778674406019059215464566527300809235232363517352157932876484360586091382294780192004206954795475611523545902785727533074300270917549471596422587339343058884867451993400506460082926142127019773307902042694420768453322788620333651550334664150451942769866065443987531791800624528630782007178588524796803319432508962776343239157630678490566141670752956318983314454287951858697732832247312345519039157515840684811572488285310882763209740874977507834032133866316381878839097536617886070863554448165735870363963291475693460128953172075649719946269374253642274039934934180052437296435926893359766380808993746116718834777358990799695643982180295459528416801790017528805567130544877754694916495871319067326171768703759524477125306347249214190611560018051131201661528396257288629890337587338408200365301202295047608702267009990649494040757757146343129253881257792473417982968414601748374549161485023428638802646100586449690178823569693575328988473214891037730983152881669438344094858170345060354925286383495405456144827505486144339501268532661336914875066427439849560786738779712859379804765342807183096321024310876900887403100670815596178958488736219488538700087690473564156472920517428779208395350035144989315186340350676926362108660901037097657879639423604035306580260465116157217073804828203001611350569447303801273023557142930402008117688170364791197587460045745915938787988708199052659950400481650656437253494817580291743212388317562838779008349448688281383811663631391911463176093010619610243348665856346581197828242172508326259667848861927541529953877031848574954495478570922845792683858749154390595167034358065459549194681611171336929318947422437076211124222565322346351520372240676594758755475321135129317459721803661138281694662830960394909147415006406213726140178177583846520372271861312269801191224130430234086688712172957038612544605200861659388444519174597582570818105720534803015626460867964116241516125606809375736481435640566141516449233107610517757385841569403985662927561422313729734401251680726364067497180386695896839251820296346495684639756695316076447942945773032806691485522005152067475263201786763686146989914097993878299666629435936902695037327362811736222940145148451194964056772105669206881953103123621811567964398497163871991251705161015443654279254900959650758013257762477509194905564737588680441141843743937731492759682086782617681049945476307808192496392928240981632844462290160928380469018300661960097379408777684052218811656948745317878784707281355659722403232283845854281582162333899012533169991471311219189138456059262312608416349367207818052788353258513321982224878973485066675867099271619026434726855718216822057922808636145532412028353029552582064821958427971083224665411380858538608022792721689658531022125463102718175720741689006952379302439807387067761031341761946817760557573884973714430079123810282867940576544786576622545204000780760149338699470868183454309254714410988587307927962563668975800655553017386233518537678734357982178569367451674446049740402655425873366420998638560111613819800307691708950543576070600167544698933338730040696207281259292520556449223024599633398448308897338002611750023960343934692370210319973907102018424887876335463305003831815902704650573959862546624864850688654194093919193959897578255135956127660732032241014432420247426600250243692798848814865156217967266653907925296960041825193972837475134040066589800799005965053966422558785356732176021144881695189365724714030233850545130696024409993837227366188811415550157578203178196513687575672720534700339080935130067987454297691798670376060747184573713609144287341798646775947522281574043147357403914279866908083888057711808002172571355199980329220558022810855233941751302164041782644689853605270733427158583270626006787708478118441193621375475202455957316920972449407846531164738681080962124019448781059966290576043811546751799680930780427638096459529265602835966352376291239604060232993045512106852135860483944098985772306038123294572879529192567800741850299768946034865941458280537282011245064053949752603424460391812176857250757269124334821085724188239146024798406440193913371816630263593884260405495039540814869231746325645337232885840500366990532094405589699443968889797448566371259339308303173131307074643243872260260071720714492410719575680990800878619287415280592713801205869480448107709378694101823067492087006872368480029414904039114812011453151900509449091789918706834910891803073998174762869328303179288174998211739625871425054604506034757103397972535037635701350058936694979351870915874145066409888331053803594481464900922670148768613650833306041696107742139174201510750045550869888327366051601466835598744624143934854994467530535104211692736457100695299665101108234342326004002253331397337228764556076212588581082379593881003320730457321767564412442657180974376497978945655176414699853969240535235180917706334908612822853629478787316766195212522046111684379705287200222327521847909001852759684486124732854093432087829892914877409049116918525442685675949341670154451229654907006513998179548186890536881092174589660318527024433209602218007590125483588409668741249204252764508477642282153865529226975720410350338613099478101581706393983833784750059335551851523380446346552643305472479139395499224843912874905938201407190795359635508350283716498423248859804955023302948781251938560481350836127235814167479519836169927010244304084394473384529219139446377505708396807098715436570407743833444004375423258983712822605236780530516914170627248823039025351110356681579484458981852542419869251207786629574103960931697812381600707760760105438153969111983925240941550555356132082330888365206228968870635657989002388836462800757385235958304945851055285937871993844236068442956565890434984027056791451116110299758536304429044809530702275090214120137298704473394272377383857606106033154246754938931344174626893562144580900771926076849786845855118906762283758518920415873213097349994282164908642670765095614385990782218742454922259094737768005338094990254284444853757271801129020709800092934033843010694299772370049853308721528510114605951458554568544685857331379314760572821323948376500959225285729226566640070113128948023886896878072934415884286724141448861782574167715249623717464222878696050087822545218947311676544381630337270390424939268876875881605952468414175991365525831776834392489784267505783998306460421266993726733670179151783208788228118873677793414569736573024563841577704492669973498510382675972349944962777217293402628722168765070719845893845909238304027542426008941538407973109865538502221457567891172735687574070468596632305925709494112102573883798970318375319452138664251628689945718117771737317318195915039982452875083128751200945651050553336230452261351343630847854380162262389988865987377337598518480764753469747987861072649967324948937980934335358641070880107761674298696493569104246931120407657903530878045793215259666884661099743612250397645929239436319744268447061467219283071440374547907372334699076983937346932670450893297551839326912609138922656610791129911414068572181799538793145507348500932130083819064530473015640826851034959662496483109240233104659572017513983764477998367400669237474452037565802277935482620139333233407962968980935966948269899212335006926029226258605500898922128246012985923278212378093009222684547636654201501718529045799560648958106955495204213574262054565229663146127424022072958599287077814696406937507792146941485088514072494647609768474444008985486607093409360519159809885016047354501063548094420749365164658029757438272094441199593487485645805859409713994085879351287652288255185097467418552873789654434673838487581014329553477511463425198793751208702135901206780406649072767111913100597162740038919154373858638833811174580305520893430512416823466619713026716395741678847440701787009758983725200652615484799106945850683933566784200817571002764232446347158589207602737955547362722522383734227893201109592565379732851392726079448334109666707270548402560718084867482471920909890011348541637043053789441524574117808817203010508809322473017746584895781138634509630343224969412852041724237823487992008978607565401895728208777128633469929969579494868522238499332080223029898048662976711542108121221732442499262669559089995650578117664197107961755629425577269062537683835728310597621491244018517134633124653874158877170486852505943166442606289305875325189877037485389967190546374091585964542974382918947653796790968266148643337953682182866995362522904653227472841335173332457747118523175741866541193335806033762646110869883466046740162746272274774926828101618629140044487250562022436446246289103607892581842292899218926954579694435755739301669991630858562396548936176872860684567209832031976120427934094634837328778962930546380550665541578150964731602392538473694922039334534357235542389156479412420426434373063048686247616143839038586244136351267629495480376388667018121194996049778064417854552548289442122402221389205388088328814049731770135071906747610375766204223273063701170663756269158753327123115817560789211751076311927954592305709932564652321142567102258246976849699449578420097750801393488587466801521049180245048750460001741382293195266671431828630061704090896359772489343522750040583490305242326270901949320961670594972837595928167349865215591803122100306780844808712390513359335163592999092259147945126201588459647899774133409437529251826470512372955158304463372639613712876855708508531293102642653901237892360485697704694754768375932976755506584958008307488686887504583614068656913341009542299611565133470463411593312246089332278217025464410031533522481114475067573067704544654610727555328496073993974147697102666862648693138254046673322015093544684798495280526876017283208108392874402816646604828075340573562113712547046696421481177755874835113627742041917384656396989040443989750069736169299521864455533885737239741090657713915755628917171088062246845933909234173925185529193414862124377887785725392546963327860357598452084854453226874278227624401928356959167076201178432417733292109771310611464457695913140192873912418259781384288178361444499010469839497093617556186651866877582732468038620927306687178540398138686385599408526100900182327951531088067198433801263367999174777564009866087524730374424598439892382314751479104698914841528166431068582564213249556807860557837918782486849094918423126851665931688107304417938755157153568692884474394024855385777315562868938013794317044009536335623462764565857034101516967660346367445328288939552146675732336525132986145405798989757560730068244714260352929574863115381543779003222866768208814815864710996111842776908832128352686207618478486418947404746851803038492048914975069499118431554153654690356607716784590355314613609028412217917735494128991123533570303942362662443684225181242673937505207501188952810658078639818576731484021480466448713755917011497481394845123251839442525219507237200320758021433628979657447815493990908796417759300557155458362427696138789453052356431579660857657170230154378490984987636735991216853496099431616034545638465536015286943359378932346992925755174803031841238526469169321019467326468100454497030704770258627848867474890976755340580688462875831790908268385599712291070576004504030245696364053790350040692656505811477350681436379364005119156185631071697539103997896751701069312798007234989686095872805080482604560408051516086031464384164005201256434852261356309965198017375580826173664413309146797467024691046509320038222348415690089895079395798869088613434332846473700490052282984123185440555621184221709490398669346865224571135901402039197136302764534422165671070985945704075247958251519726362656590631096922342393232105825337447642593380132143481883610148157373310034034578684943373599545849128138135570871626140150112468821454879687997850061824880154800473150067206561403574161705276255833984741928037115342288993969576017962750895087475797864591833297712287344441306351614464735491113133696858126335528537919658263457662897834034995721892475347814775622902273227479331294387495417400250219129433604031977036758861126431093298951747350157906290264655555607262791221304040020777850231564306301141539526974541413733366667960300787492526660173791667862654813428967907111280049036419993917570774960319635329769204038808965350432682195358846738987156632680560943955695223853020963254771449687936764775310640590713362678692749260258668611469049453099207309375036815988867618584869974506860125909343647766027845512916882294649513156274099982382505380415953793538112816748175951782499260574002497116317096872094089195247974933207515960226884717134700665250714608230576135416515473148757807795603004981172619747389741608809335354095458966907247447904136387144657635265771097106211010254729713504662734888802545705178882027918249172567390845659519623993590320876024278710349935606876312460431044963370297216466218966347989794026322491982598110555033145209486114077486052405929266271791271669957937160054421159143871012122431542829774354448864336348131368253284262295938383589122431221609727599753757270199854668664915648612025259984603759030624841070409525136611006772476013523708698762498137586980777095304085934295293415639193557887682101419546931991933478066145258236645746247151031988219070085041879170114524350822378107231045030408325755682411877437926433959758872930256194135228942435128633232160426395142004361163769473064972787922370446371662531454412043347100806812551961860736450986090900742438898181703073384500535808482886443658362314826880924032153371260546502850029228933978320299688080557435978464191938993442245186281070429899448044141560113225039708997246802397706822633042945761825454401377509356416087116175331152604158898529474009213257460741931117059030496852573511278445776456720951382415586915110268489301609582929954372025262841231493030119557262524868613937517509987553196035147329826920829272892427972416235524677161342845412340704884597349865602327078407192937955377529141430951072479214243694256168493661189191080255780603954925314619681905714489228783695980340900368891213476111604996818652822439066879304345819717574004606704165691810415752427299730497964032112561096135969954168125677488331733528536581091419742210076073321119255672271185725483589665082163633876450732415968203654934051454393069774741765629556645592812864404103086019882559994272281064654641051788780263086204744165509657155219393939627773168535059306520524050276058799030384542307427616290099491335850289955170765015442818666327094725402916810785940434229916092343292606736629784086772760903148154830360819058934857610443370789993854457476228562744406258485407152125340667298437251222138032455328272394610389694120328735123136819337366424749671488879242089384132621443887173348290740360286968414359591772900080550587468069027873426761595866018084485959202070293824308728430406222673738925821888837876039326746423973670748809861940071828683085920500359711683731440915836034990875556746122216184012277455977788021565612720260979451874506593164557180208053625309026926111826691496373892724036996716795254451826777449688855835516343365615011395120902420471995403838954281968255882164550283276008752648192596251116535918269106843655182346206758776917897835330817670237576859346869112691022512079671057433801914605338560108035276241399139336797402258473492642664952872804468908917847773172859659882355911087381709802818705045420602322444019484498677198795872030720447483342660970254446843877331006892010174840578895459392261404116932958081549515731648404417186021189330762430638943453424812208255958331513613319956912978996884855371900094061915639786331574708307956570216357511524839153687367392862511056965961100218453279570525614719345133887957332415656035810089710078494685107371881222599880621451257439545915520396461660577035318519543259739939530718346251811903571611556589492866289102254332824090333878868260320490554451751406403055689072175329737208384469791408746478288370870133893690200974536550242242442402222079774788996940913977913334550944404060797710061000506112629910818415111461330116502116598373068054578507758772093936492481618746107618409137111820661295861105228092981853135619117349663124360668334534594107687456002638678082176218996907833096306492449007773286797938002167551872910862628311049959338583850470494351424821882542244470294595698232553426682247089427506609965342037738717153067995216634702795998301050195108408821744162654904690694766281286953526579038501384461141241075732776288161707753173290103092730373627102748487652176171036374987103716791417547572929276261455239429598572982634220047882034783646311876659399690541181781164503563485921200820085041921010467850842547822477428259883776111476919668210390830002697224082873712106366423842325730915928804680036900633138204214095570559803286491088932553174011408133915812081964858516213263981725460406733417565871352720383172870568521667992414479954720429573959049636279653094703031856681190668935006796526761583111432363476585012974636766702554836656431783342998850713127988866642076134187440681644047220599112502870603857963519977819525366821302222257423842780289208365247693822600890407170299723106626266853406977706642565773569626116001023799900531574846991137414149400954908361058110123881283309941086727839714686656415026582379273071434288919539534663559777801986415263499911404104339928895591499689632250532050829543772624935509853309286432458669324881493265133779587972700404237552737414621836396989110859140756170818271806900508357401921200636431760265728022628083905461639780097796572783857799838228948350543336537868196476003444556213618183768858513734981673170908582796624136330244735306593467277380955974523757975034013747555654469731206955217414290476178651151061618877284617746855518885750448815329120159513901270562346847733726458245799826325399815826789202286657228420280256273778778732343851361083021960511075714677698533463654967906193353311888964309819171279649298426587335052296849915607822536148878249815425027458395763933876726564846141244741082680671354325304788636788342129086940221501932262144074774019793276726000466956067520751908600507125224317229067974137289799960683896103492553699361805749771624730500728633673328129408706242843112903581883831898276807448678115005830518971332521000741502660749334056380595346740390603311298943074967585755014750486057153165721060643291757292272449615698030381735013273555058912894565418797409057753665374974188647759204225248015623205997523443138366048977868892932480825665289664855457204148906545445220837699834916554166941761856681829711510261680467634613392806510301065256024678373305157373005867762008400045333432661807270011808642898973829070146293387876014002275934030334248926738264637582351679451852989833054382464022536625994433775302876841221342008680706302374435773282764623613252014392487458948076390573892689323523024957893723224903627264644930527981645339249243828379948212742472261241284405432969073333782706983188763406961397070265011930458564189710900883550660523595664010853940543530697708400222421835252019469440883080391946307320994503259369403017203731247870395063392248404111020857405760763812125689595344044351886147848030563670008365002433210669451045595886521875296688880002222082447131811758369401405845576380451590537304256234801798362245093914179596893376366295949874256825547553608749445918431230336754907099048445886991317421992666849895677954330124098472390739743713258654771384891978580390057089182241631678166922246314541933770416868816651924686711350793964241876052279777687803869645514270764645600557763175117959878924940789486561408594863290955660996414042414238418156950203223774855542771085610903244609923438388123953656919750606380743870701157494196995366394734788500801848744911886308698975912277645388639264158365713814424964582072934105910423729569798031628492664989348174335737377158602911516624436744120805105593168265356409748939979780445722558189988866727763369922199708750395452242372634180484281928449764573945496771372558106473126338398973404493098241535739768740588138442693992465912833497627768496301365044396878603620974805853884257822788637994764252131330208451289475410395546508133555150553749969714866178774387219004507021188711352309294145667804970439353946812567123548636372812993630303869287066336406767963267780725634308940817347985650005289637948070463844418786835577241146706873975788738279500838701795122528100803792697292727392391554546820098977269845818971814784467751738246428345403826540112882486788981438481601575268113507998576710194086813090456496408666577770392019496296807600258415843870081126470554677804522434877999630744293591564688874938134650969443870846538807362745774454042987192802496413231192862052491580008680393424925784550384634966600755146011654152043453099444128576161678064811718151427732886346438513556429558045894615769117838457172040767828243167985345925980859864860307737021054315203457053273153608427013723734376927071090309783844161078215257906334368522247461596467906350574697992014787177388438518070006390186315379189270127035613489509779711793068907026383984569801902012776633274798855084479241359534721035776784454483524282343497404223581796137208459213831480379159830427973380947896413797561451597360058191313288642530490590217986828841982920495014394152237303825006834105638109977074743392584233661697270815109792362948413394079816973177161317269575673293500608654275160630969194444768163565350875853466633945028700050746089551266032343896731370725960863727308091890836365190088697513714446634278270910701301780655884978988027380062518922239831262038686572422973885736992458228492203303454374299482559827023398601285140235482995235881645104280050244794955690575753663005977957722876828669243092327920121913981463680785556475151077904696317262866178007984920194257481912583407539548711455956337121406393074233653687394874243878663042875450836269869501663956205898905801665184154963837162802909490636018052535817331542225855592085951454523475924561625781804906595329394125683817009758830037833201853519412632500493342888632638689495374156715524406437212545057177910259800839993868659994856419683190445542225735241400057354173017697288158005267027450936946140154085247283450381869827361030676801442262681616393848213937795672964170072932488875985414717587366414400777337306238832007634060963833758953904820110917924080733026241769417294285573338861572620420230474386771209463326295201459857744020877949016256709012036543093179069326586917683421198437792796190433545590701409869578383360248084641929342456466041026692307751860173295126762859462996357605139160385116114346403717353927126796753500923288668138422448237890660819402799202278236411081304681701972143109715550342040106475312280990403190838539278437072532983504619330290141383657881227241648049777193531477629281911692901849583819964499368011096277493812687034318651822333771635919536092926280429540345658749765299448847050603636759051492520108058678995811451760355910858272147829451205844154129731145775470608714796778574601518061837625603979615326933168677147726734029147637704634868879088074755938737586357537259308675778346117024150094003533422096496297684251547061563311005606206269264546795004217158356362666583594333987447855330210462334804548425695899594896442829255981851852783388406187830369841074748329404086187101353235096005166492961293659049571368240056119105842339723570807932367416379220674566484146548418716185692605204721960740842264078417452809403731983754185216754774962144609413451560696263500787972370522171885373250262205039657074539992002018072461092931202380186841470168410746611569341240718349114881283136953897570770876590378266720992534287287861565284761523641138298214071542796157541468009904669808054482083481641759094086783486423970080113788512720558304892539498590470176033586188336669056564267556497078580259501928623119445478052395632693900709507731399007884028403225855799930029417619181441536484174407902867819035051082335204023206432375038505019042992145873050295063340775049175036882659097665466595434497021990529837494544739250437853681655456906626798940142106211385826918843955669514070889404544195704559243865207476749785043362482065403285597484305981261602482671698345243190603649626487020827198894360845357104271122907450861657593126472647572144798026923166586683079086700115380609795889323556821230264018522376704860055048813565055069309322252756656008588991810674833937803264599613524556701120775886246985543410846206663159754712309041271994762748042094800908292193844080394128097302029474884652068069387253663852776929563456829348302871298960020628772101539244544278863673038207202846071809094241554835873762254499605159612516892663373498945412219505990185095764276125774152460615401561776343994030845944573791208036502295510736668065490612395897752195253676076134349956059440050224014755277779672627885142830238817221357822188621398758018268101405138503815992720485543465897063664063908525006493397903480874889532264475459481531887087023846090340411243875479911436622572751919695559989020000668082001681610291025703123237489868872655615590786301851400779310353327116020823823716229775995074647972404450378954301636183844503001966885674626533467837731273712757135278381031712856588838045477191277995348724907560547821830523970837864224285116516204797142677798281182725424028231059936996709864014002121621697194875731148268661164266282086300595799289341191863203143738027765757149784581352597538755782826654394384780483923415220251342392069578186259366595108463959842567745046861801678802706341214225586631931433221933599853266091447100697972338564953123150952166649510299481559869894096295283860242329449294828604756132783252558823993435249911520208742929006342296309769984393914312577066809664882645959906560943680587041539640299520266361861993087533892700339669849929629476103706863749588249489746625716496411048880404668866460317071554070646878898287873035283878537192205960081851567929523164350151810700267553700890607358773983714070575173275861440033314735994514368057137510517709421464490256203389183590526996756500036400347032249710846853048629568616838410252288266587525379458183359188083515878327437215153294337625574002508004503167737486192896885303536434189459738441098696451606946069238001965985493959275935730417804021442142669997897160464444894239159459861190967183076982275178537387871538253546834464580120827306318452240188167993597724192753186402298562889695110712513282208151348756543802527341559448883139768723562712761281086053106876690584000220120957979784509749065487766863749146901960120147545609644665962394471595849641746541290029802843026870349755574698789499494883012365660478278698942014441790061625190534531812308905842939990752804553006657241290319136895204264962562373824405306326373201247435330719326031182078319229362926721175960793356018012308242818471629088508551897411191667246477550828941449735673541473437688004875129544322361725260560137767587134694204656813776353492810718526167579930483795186166513622829897593244347462864538049591470648453791323297365344868856993974127495154628099831894765476526413253909477216531687134434045435240523790003249393425667621828162900637422943591972257625114296795634117988733074548526843610062040690041971700151744852988384422263926540631572260628271270709471716178132190730331593474547559433524364169983579650931617874196666235143702759515966736049389215599823025756456905994714292538929305365437080016008713011933442222727097328707227867807917693143798447139747070215595142041610477046184977365339477693724659173970371703650888309851642823825244801599041768884124708043277559945440034773929246545757421149365019536100016386847918151948685329897763939811026550713452470700362769197794041097742764169945066974995729420097454518481492773584014960203617873525245770806202227219130547161484100264091375104678731495260178241525507026052576108630029514565039267973083361095820933419596344404476500824440846151312236951373168919332644273954033968183886892880806972110498260340718066070811085889666962698195853624387448746328892772525375352201939391558019674236365943724293303537937962307754661448412709603261287463428826230004446655183087268288713051445442772821955612422639820515220581187305615747104165422830525120031933444134833783579010624232416699386456793025401656530352095894303701086831271764341933551183051200297123789978820508289107284136424478891445777623520123795853140565160550799249863872574418233972994935970569116814211922594807078791822362468318495177458125392715053319131835832375209251591761454374240098115669751922647760169783418301896321858599104175627368947853430016886709237055901707813225377345277584963123671919136525541238646526413748015952231571610980976992313389795423859482826336744039297148966067632246162721908309897269262648082005164157851145315854789730399775836650625676575386302166695049109893182660266801997776216155972580941797528177773816167626785449488347840761118391610053980582163073429386819921321894741897067393443411640996755877628301513327536635586541288379717959306376399853415155365715875910056744004593211739507553253136132187517155421038416886452774376824982532791007158203554989267216673010524886053424334350966680940209701686649453368680780928029474464000893235249611554186690474423326179288327908764639389134445640441354408253460172811191150363269300191782223371076356739550203508574673795801966031068443280867489187760506242331961912742423622728032655633898765813251088386946393065592190169386350976883826662787668902819386623428269400286492474798247916731381136084854378300712603234540426831433360813011359112770820924046596947223866508029427018300965619587188014518543602872275214974938776541436888428028605639190654647853876804630002249309014104158575126670294375771685348208140041884902122903355379879852692086823359294751844019879293414974580400378644763959337837950280000359324419929714443970477103287025057358082691473234261192319731127852226370117052986594544527787076968762180249914344715524429578861540907565300670840158768142034485322187544814622803015108565747155837591483170416274397169582437628576055926391585105919584938942949044674637985404732027861595709430631274943677021834994114202415365054012739921046941456829071302507520866057233051266584566491021846766753995675174357868920059073344819061055970369033479175560052737173333328595893670374961087379714984452722469514459001511308022624611323073549465137974330708284088088075976936397991172813199581019371119830497350030840670400732712122510468980582588404093792875554446412271539188256067329794686580023329903831469816521012564757436626970609719088630861646750677930212836129190920842157011897572450901451458304300141959596989146127613269009468407544478253488288484426487620593864367944438122087218603580720997288035550335224555830203495946597900844944749538311336533182239616733375429473452725029634679104312448523523599963877679950441896098929291722711306112521096122852007233058733788623030919236747092776792249981888941764644936512540693439516622633272363245147694569590836272978699110785417404816395626345286799364851337595139734838020528887383289273789182040965654403009154153231973964696132969811305532610775249381922758037467874433152414603754837137593695239093115693681293843393096397064917288893970829765419802200722985921696057059926378094956412557942234361234395918438394581141781294489541638972201100820127579742129450232818066569776814325117529970167672846876247643200462590752191098838116191953782868850038301332627554995075164673393728052911301793781218749659092664265662450386662501240776213099556377151156654045404771276204135466347403012440901973124871415291443551723600818433338941195057379417031191376308802400255193207133644262599815472386329744525484615794777831477403098905858242974900856842748103323042120707281783497742689744990174254693526833864554890564258855030261265750799940797960502553952881086172499439078862109552516808319950855753737997712936672684533981890459818924951545351000497660954763975214170536551573637237092448860048731110228037456776265430401427819044763166314358195222655376804438588562842100608607465927241789824335247882764137686938612101971005857401844493783654556890131562414638175941666278945306629129434865221809669276557378664294910321308818541725055258868131416328477326177369792569704703175223258448092113773132175719112333796485258816652915519771056629829554488157549475356070278907089243367896041642344529573583013646960285597757675662742305903386372281745706751741518584604964450592141993253045846324169018282078904652645004668450042371751055066828112767483015553185231778964942793193240248475680710554249012233919593204250438690998651434269384361929192824509463793144312439703079086024731176671649145173927819057786321941521617806008041907698425411313089029233802619027886429951813476530501549578786518033245386562347737425445234090859811752835207616721785265999238129220810036430862796256960617386636220308010374330887079325232998610913504074780509443431746433866455253967368858984981916743864148922964802243725006817227805944096247221683327667538097576653934334182217645818867835386570177274890841527985318704481338707726992840932866173008535949562538221432873046812022576668452890928229657668275054264555062188456198323318452554240132446875776940659491197052228133486726138020814313993983870499949807902848437838721574792793431883768075204225791767805304096156404539499369830712672179139866194490868487258009101342769755218550324908351209632850845343945534444849048848351668960178087244398277147460579658313884965542474193414256816285015226058679409731476649044429832023583903057218854480293616266915039345635250623576784714741082475089969612524267447691383875957471809890155857765272816082200370472549158746732856174865671792794418140739301783547664392924366002618319058389069455233529683362113317691945839152217124998476303240206532212377274709580942687426148433819770661811743168574640389826232956550702970197690308157862659823674889971448304593893692742917540046345577515574950635322924292184539273842577166740508938644014647653382472741575380378726633863578503516313522624040399864823543813651984470925109700827281000582228764846451583380764043694019734484829183474575194896803565182605136885612511844656566348284198979507188595822053416860251573131074682201060330908294257786110842366267243004003503427012116442494144754074931854616513242543782070264350095050039777655437895518078059398824084155087838505050283502077107880419176549179312048058864866436423243409189885012864050071038229935851616146711063006950536802942481070886354581673392472255175092989795244829852311026320139883330250667720025594337655483704149652260380785272410512282193543801517158296696232330210205138385746864676377120102513686342300071222059161371397155207132374749525775519170295687057032913551933352284340583380013672381612206470019190838375753247059101812165047448294764002493765660265123436205876861920007124399772169274310221286483652401779573549478367751235465084092174235497778884180340147270136929077128314374315813398058270180135480423083569182039651480167986474592544742858369555540403818371205025083770811650181947217762823862561313801151545216229886017314377388788733523669904863049620147611148485538007317258289486333872996921254569597455254205470696696428125381660293073612779072860298837649215173692107078085550226665768678346101136570956360950412138576406183416120871938623719472333646924185552061550082088225470893699018276539779160446409545124418912231955111266712236352579164957490201021172084759437955733754914145717925833187051133590754578472096596683751938799200143247253630559537005839149300926627298162446039586993293846831665074543060857888765047344221544689166156715839561569276754676198336305400577476301194004685091713539484999677566257283798920289839624916098356457771016840091805041233159067870853389442970423113233792498620592679876589021912849411754553058483043835160129690864404595828556546111449327130384004470759483310862765881901248783651088880068290794559560470143727795753946758412938450063526944827579033444242679353991034930002269439383015455781046570642981562997245053323907188361129054502232320327104279973135202575833333082334922244255098430162116394911691978399899692002319077380743879549381558593497114874549646260049603436734216756351601397734879247766180797687672321428463878083937541470323598014725541107570092694394719342301027618518907158652864737721204270837077355003396882932270027026100984550224228175395657791395358591533494412263033775530310872107985389475024623215348906219595117550516887696000437969738246980985206708652767897964497206616855898366332917753060016795739521566567833845317355852470278485338158135106150322731104438476528559823485990459934093906944244862334754547766680842528987252278441276539560838863202284294023574278814415743846415337984036991955299121208841864009504042915146408130020599932031383958794127132624926405880544102741211982517237912999855384052700655959126769426865121544955275093507340811677952269279437870930981741143698636640488041084555637653690594235146404089545692981130406768630856859553957701656379850958839740492644424743836509187691344587828388263878976886057942728996038955357023957342376819160275717836151876735130851199927595773606081122988065358905562214440197179647293413243181282688746372149544762379570147669471021826102637570777138864966250723045007812434194523243735495083885092101346060803972605302449210934083702584650025605613337318934713899059752430925157814773105780757744379285256732712524005307205995157882417101588738130901256901894758010207627161436465707784006384393352954190353248125446285966712898404031048300147625244989862872657417147727899342016231268767603423187331047747533609336768212138324594474687320215682808795807992733013026836829688075372146418846046813874986211235884394376701268051598510582400457123773237814228345857273459031735992270324972737561917246695900453987367939503333052129841191803389133886729814457418038913230518531041813889668306875585163020515562776187799676588312570496626074208797600522162855066172079573699420699904888605793110990610604736962529874916466106568393982000664904472626808863306325865694567185369896760358049475695468288621863387093837191545234026014067092213993308630296406644314320025251052940071781270631430489065852525113170194410280994609620155416463568297560687939667837047908896632440523731234598277566594507867444309019144032204936133687054640025736203197452961005702004386269374123368293102161667881699859011128765777928529970194525055682190807721977645912858789459882239136137942639109092795210471049703017556105707694373768141464096196637736220846919020055138672576404587686858512095610640070273679717591253479958651551481791717220849438135674175013210792373089207195545787392284790623739971701567501984424194434804094788054785592613093759128912130091989098007273390913391486927453399883099271611225978010779174249134607215882904809741828366777577549884368046520306718506324063790398676244626638502551051097254976704266572807260739944283699503749029466859197364666871466951948564615328737212538128437705469781528512111660726729240623605106869543542436772544683665893024769356282218980271660078071474707079712639556780206670017664676154909498782732877165217962044483286159299066609898121661184687400696458743147768218132211911436585074217414775086551354969027415472838455725549903483194109899649589706944389035278308031539552867899377396495172062921615542553347308096738465571802472681451026324711063365582320111373511694396980881236907319857138929687114842310904535614895449565435001141469141668972030879671206088603169338514043572820412372633891525187385066491709738607546356164745606549515935020545743142320051409739868723027531045758137419100167246570207159285704404684873130223071247115244378512048829245587401673783209513424736497068386713888777076147263727356371913154638338153541046672287443383097328969850161015144702876599910699547690195491278782060950079305937136488561440577534732204463494333866681565044235836980118937307338649312947007111688842059696368014755592088445802714310252165681035442541852059062519150900205463809380278760928861545098319701991785349599117474385893624276398383346893478305462125432700888001270246566732858199045889393735128910302017775397984895932195188260785682667725361751875279834623822097108079825644843732822407091383860565953138428484899860313214532782995427064974813837844196097246108988886758178127013608097557504726986522705185888243391490854259312532799268386724028020681092726224175179242462048743184553671471596896509159166783869700714017183310082967067306019231181037456455272532186613139518895212948901219332693075761753524614248799153515124591867811304682246870650226549745253018633353841859659396446941157459352304195737243413499616948587991907094786419026956386384470053864625337914723123858365657975017826649326172153435042146104418006343752896941281424628289093232806782696827247595672926182277066487157848804303795777664523976624417852177495322966861189664476192440027835813842911607672233025176880891244536375819005991667784801393697637476127497390335774113003932627017776485437007939492094203081938370425395165746410307376887004441400990312664279439854619137430458458923128155558591568350999519274475338707670186439550484213636535773754462440256786183719534137832950001807927235740181974638806413641713548731497106221391430615622585737349014138205098273748790291015875975707460261355668397761647543173779935988400954116648508092091340761788144061608637897924391516887821613675708523790995517606324806117646201404300744281801971813178307509220447030410687988261482069185812531994896488040431017372468361728152330563051112443190147569327865495211097423459144279899031214610814356696558222518654653371290130264209291055541228106114732144128812377172967843117510899395170824560619236406582760318977227093915919568437849609878019412183069112219648834246091961410502631160045113881143590022996066639582486331741318100770678772927801523474501107098296165596948073420020868612323316423334853555212441614174990956688426214320272271924907007075874677048656686035434640897884885251023972334634974476425046424684809950255541368372364274385373106411414775847356927208534067264487624318898871933095246492369610147068166695855286722073955087766253838924586128203982583348238985415107614671566849869118251888747919962044520787902076537473650619654509647928231110895200989930458976015365751828690574973309764017083232264628309674758568298691362635815579277716357434047978887857377736893197884842401776397809333967216550948283056770409224213826510581208338427995619402934500192976179694213225647891203061889555944465412470377560448310127248887651352222735201277352080885112433407142327500943686789455747128198341753528687851848579918162316462207517051010904826445300182973345339943461502602048320174078842326150641459195923526110032970184307798963436137813652539089075289369536833108718686536989470501284996032435986851316362440181796938808661493303870023464143504375960960153935774920733277360193314004736855462438693677828893309924919460394968575579744883154152963777815455886906244242359608124783740451439869088872665066456262387388817491244618410224948090711944745872292408360885615365955215860043392820384843788262403483242801286313046790663205731432940572763621739320559463198368753581012338655230898744565445682133385273756725761005866387260055297753854477695753784679036153452958446437465881213958375746631078761902515739601780979020014774542165987154290858273071856599805716797636372339203949037752558513485234049474534728861853413714055802692902553813117519360675784444806957372175346954096231440003695348682680869421819529015075593897418809484261273931130496250021281634565240053388300334685687806088667115495929554597167534460978888514090122250557827321332499615785405494013395411786646977354356109606055272028443537655254535683554919569409789667988569206834197336367093585443424732300220375717511571005754077183138160010375049194669620935713562414600434022323045679115075291360982389349063863610979913105992020940791873218587408173903684810751503561624571017191198704991722334367460583295381224449526807102773938933556584387586221923305694702231234637454155298795290274173973877871706525059652683030981409688794902425165007458914277973600281888576916605350354211253565946266823990132204475177573001625923561863146732222899468821209918443107583302233632101065993827902931595781559046764691568808749337488720228502044152506876819591093566283378160057096881783899511887119479849500981234835276274918168391741886545909141561972267690537137169315425246194058906835565063933568738014993443073006988874530242723202661130100362518947086996015722986861064834706107810935876601092560828251998680324422841504761266677884489485773472840408218183817421179214180925908667922123950117330118186751008128072746730248373928530398667729279789738050745186086938726435651160675315909808119334936342755033849765981764365674757395445803002552609530239258529654606398672618047030550011781955922772248463226917686941375312358591548988714333032317634225133112160471057648446716505944967481619604812651839097726829234781874068000382262077005650261524822613684100807068322071018261483960658599625499723885988952924636657375658377458028286162951219834211289377112637316132672476617343339252839665438254907016488215826861734371430928853478737074872993253137294346124485793862607434924458489012287308604042162512481708312695656800908894809305495376544915487107880632974194670662771885596937576682013460712845546172707792593921829343431378094159734378851947766577682955443007046437921823387382918002834635547514465177968412540289678257830806090982110051987085825558841477194061242299110843549112907858858538596334762444038906914524131615567787840493083553960733446528550672419705208791749700893016075615940184094707968684418616174679274032419999259242397862829726728478307679583925989406428112571240263444777551109138730258005113206558531764479554821714320623396624077645735291746250095585947803801570741190032059947074390794948420961952306125973910837170764434605730004142218017781943478223107575220844634073005967126115124880507395537519144625596387207300301916505228667532561035889680046565997346330867572925053195849640364075049494894420658807503569890235172064739879044306322837067351760222893521084253303953324227740463476059846490968497084070147139109506205771295164487064875584189584248399459550523699676682796345305013207518796945813144905702899211735559281842286226539735615489472544904765922360356163181127421133611407053276713278666517220832547627811376868988930335291515837588675160261468897279380880425541408959369715878394145151847900682811982526924925343519169285633701995025545984666213293952809091887283825257248224429850475826626029797149635041331602454596398525812389689581460243177102166504071194824066363816375663838398531682594680647811067053186966481788915305031217918899035712259014798549673547498588634280520265661060467328742375909828656290117343765200094360693554473769322837230317111378611863519707373140181375815983243302865817477363142634197140861379632540099658451667149444864262429001341164272667493826827819802776271538619805176298076136198350710186599208546178865455493759307316834278937936161822910232110717065755460552501623645296571235426696402582249478424502145767266591430026157379369621352284004653212349688534906977467331526174007658321942446707605823056673169668683048537359699851848539792448948313997406500300535441330294732597955278390288961452562898909901470904526188933362049366959752815471657417787287864321596022538894693977556500966135602724195590926161333035184913245051548937681764547686482843771866580501787694403475051855889207284350556650694452768749358141323796858925473145195903660714959252781554101308189497566646309491527055065620477100834530509815794173087239279906357259411788923846648193033401660264286047758327231758651247456122821755030648331145167947492075549301359938953854947430864780836149579952543599547167926626244657144703273203548080227724840396773920699862216131757123195293412593699383060974465488102274104240238332328778944092859607570615327115489183463245422463499119569707091184047284181889265942786860043114216135139453001103353401905329107362190976188917088164933955523331417078543562662093275342089373318518372795242517649731814046216109587320750465266330773423066956094045658861467490268626850632245222213596812091564651059114569507864682140893977801633699609958878143449727386707901225445962502835253678727051329946112382509862562721785397579255710046642447713397095510138359723040655532088125356606290867956536398950136604269068847307518082424829610928931651971782686681309184187575900440511187858629105266605199850574275037851068258949785383369046771727906460587994543316435695490877328738450788705599780110265099658820278315747755955542907395255814345476194277009675724124443779402353599337358631536917200259540683967927873955769364290027190850935215984386704802413026834817158462652087652597687363312873501783837058297391358304850573287999653369608795072958726718831516188478689705216102480873614278065285173333434484904128010257486441962588995910068464987496397283376765665042618160628144030907143256441714517126103227056962636437722450571908156941779922045309471959031780992594737688363859364439520850845637729136564901150089286904140991373254060462054906561023218208192073083488981850981278747865858463263468165667686106471153033347242981458589806312911333540535960260476504338773705727878993100983095273337379145330133025858391377256323193859846119200294666614515332497403955016775239791118790220263256673341922480727950310816924034852162511592774030094379584327990084729245331096859681066285230644199457442743140812213827017319659262117636557133452464578510425643994372002947901719120279648367367636194649762011447899506394355047696159432882378093560334016115229815728425751404905720223775114943950252804557579868969092056038314629588994923244552633826061445070193515275894220813982008508243330042597147929748778083284872645536261470962357066670098099898416837489544739121908577203336669514854647624055695085726645143380703399421125018311586078562742676071330653004804408286716223578356305449662838642052710442581891581627691260922040875013836718710553215945817884550049103464833963741182478086671304892584158727845021540074453310104597556581488476420613342309597612001376379454393939569873890410269187210248512213969334279751013731623110013961383839782711429834362528001085161864293618321501824742798308605710306159283295074979246746319970489266181735338232355169828427036052703682758169670800216752775863616716763066255078571518879881549331632331631956322705256296133710943897077888484418894551038580418599229448638061269842193723427870192781735742169103466988193673758344259378521608353909325071460851457089467972834141588794604300516479396856001105973427887821118854654115857898059498506014041105540647784335738675500112529860738715385979510509393554177193083322590267136937638595334301894577255999128604051442002326754128242700431032556304918526865366903245189555441040318356650652621291298181742041242196233533089522009169770343837329294357633211499299555376090440534673650348387714144615982240666032605976715562484060550201575841882152613666263659429871763744453535551525329994030466415091011383571055569836361374307034735553084901292474236400977594574622660531087835698867411698312133416875278604987136548632653877892416016899722179358598516059441394587930504257060652449686337565674909236037621206184654156478212543425760674353225045874565068540568522173939679562828488096846228541974858074184985200608211181640825470245870370309716780726752470547907978953210530536045304206345087410119461321522719207454129284082209796645954998603739392013567131650615774768030791998146465229343056396378905254223919999211143323503911838038105865157034097979725294290190907049307347417187905424126804148725205275721013778889166730218514788691416894609443823852370432284711204529043997705411006563627165971683378397920007883441370480311762832301802935872801850685777878788184427973974880235010027859447380062778303228812399940061183799622284080135567280838041781370474051262967994700222824060490672555297267953245334059845607080003026876917281558289276475757247815130408556086440565751195419454311454674695501928221319850588607445509709334869077678055053042031293733767123191725843746632282395293790117339385050815426293800208748659390547503245840257162879040576336953649821657702750812831451183310428437522914339917316331345763756211937851820821767447498128174090788649555668667300807798310722403688377202452922542921070915984123297678231592007136657295217942515700649607002097002616091720787422626669988899866022577556455288020924574574106586612800320700438330811786956411986479092048981873488991650566072784843948015371566590644248052178675865322646369208044143614641812165155506419076012150911333707699810355730474677825328990432563006441315581684862638448020844056428613471158281568629119502519524302277686342177170831699842749723012086565610626533719962840937684778070603692388756473148875554832268126229205838598729501852301749658108775144368834054232989200483810074730040101509375831106324894406534926696231926401426575922166518774330068501129748011544594026033510747334075787386443808326680565608450523400030609974790448212050172375870988598122018066828367186713542097562794613510774780272564581954549734652670115741322060085827526799260119753894148109172474367382429379200434546538867454363318837364034018514750065154666847755155159675705245386130876853147192032813464286723570265396608902767866974357120578060185367903039344990374896321133133788472370985394904548081391364014561101779089374694180395432576994337800540602528672369597534593452767225258918610075726154291556378039708319160694537288823275299321062256877526165919960151653077341189914740475689978898651512723597174752505797315825947578200885964636503713790277723882355847603533441952622029611057117104542668373170524222944446268257496359061672566505351059509181639147033401912433598436011409230340312759810248029798923382011338067514810236682132305952362840892886483035578562083824931562646437961221791514796782438070355381793543588132758168705158725710994413584227762108359134353034406330606472545974036647525307022191969498262066094993723330844661890863840710161511002589618077315934530346271260018318832587917774293517602853079462528463356840089004323488431843072907845511383319265970257856178017530050264906652619442536181914177307250573642835781303979441285767922046879893552206567402350432270286681754242255523443121797687212407493336121641929233778461642483476392357359097380524142121601134457823758137773557034914748068206710851749006409044490793446239260194803681078498775468467543610031909772155929353571558860974416377841654402839902988933909694387152346996732040992833665246873455925870062353965731323325921180963269351874601764547156588476990429268012487868231473935066594283623418790322387251938792557332637489226856489647707402962486699394826638388778609325753791813679899999423649758292117586152003907325176451680275028565658085548607200572801404997365581933157693095598961064414765513130748222020950937095745852740983770525405783253629408846586785614577940173611317578950165586366874234768408940436150064272377216683002508115810884046043411065960518520984064000592688835731308414321562430896691448197303940348749466614374253018584710333618906016812706012473386588176014949950733310868946188283341549987712266208523982508026633596360171857870114138604108412054249415196168685983021412314568724168505786898548916487660082613034750164101898693833499489734982010609068610841770930519419948848244610889338851554751229634103195484994529409221663086343635982298375094540158315957660818761586263346356237216234705538053949642407944695500608277787376558551774979362645751025527375540430831387357942210222809558392870742758701541981244912242639908640403069344030657950802137459424787446607465759883022402048032996783109815238846195979720138134752796983172530105877076280295150908447002260352553422919387581106984388429795576604119544606341190248853116144788531746478814476474974840706248031760350522536555256581303379299567754796281755297347231570044770426675220936032810739462023560117888138589034361045049886572329570701862880631795527195655234152640344397468954243435261355292971386431432084212144139602228365614201655993938691966574441311788436037603565658303015361867891059538879620536208112269145838722875655139348382069962499182354412436297105490488204025163904205013314286280576284336963338878820124378355804773326929968766442046729057718243993366846926370600407251696321775843945049272086437128268670368505501675920992035813736236913519059626169134363089213397296743697205781070922077300838443888290478517341219077871637221991171004270755766915600047279688950740165152264122026080142716139879802706473095136542288061471521325483289470368342615910105861344974247743664789521487655686483501929521487905737576595204985037195351783047997206949230796202103789429467109416160655600638122800104325772328332249647627628270557843963273504569779197061282881789904961172247798955488349590853499670223962003587648679372770587946176150008771543366638617893217075689859744314545654947011835467094779488016634260218296066235199445551587091564400172124697440314823319189622826092892976968421184528106926851343275309638039038228495059805785079069049239605296821526904215279210110052326497018532276146464656158290346927856985515286799948000628438294520073152404952978327706740840204920539935604364209724260525907673400056520156677619011761413612544101507205469873628200355713129964166858996243752259238339142397525815742739138308626462881628414378374402048111165824445599471171826462541951329331497588528374432938543574179545120892381117966500039510481863481247638899792661819053179821877016600751277958942753478220199914434955457415646001523391208985517585478168846187374541490913423828285599908096809349548348215432004963890931462198235249891996674455765927563515779173653185443552200612319001680827219230716041442294436000793173393674521670702155380964207184430327977388959706443648791066947676386260008545521232793721481860620159688443081456397647343777208118333553835169120612108340282714855288707620707984887102739438237761657760462069577110526677385176823621193629924646574772615633457198368067631809755233887539442130606376328443401549026614660451617526418722781129649054485305702885903343810537999516118636176485707806749409221631558511024147231008634593036444508054493498624665069260286497019559455345695435785891518157082844693478447439854243145052911878468973558705057989069254203670733747603379375713244664465474739906667816956757956754487478076726808631052027940371114816450952740198193762163442183227845784294646369633079617494384432489533956007265348359509175024492337301283413108059584039877887742040221140945685448730383782148113479544425015389433396476005349398055318833899139123976985570599696150656652842375209157472781609988787321134178287665439591945064184694416378232249480193013498468565417639556483361138455558984492037840667967576243091259362035574049349488385449202051644394651932042836212390920033940648503264706686899920030666706740610360487865660693984167235555878218915324787123740153095072773565443389749212155913437760537691324388084534599158551250068159518787117671059401521616855422378043389285758647979814057514812180312743549011048453232402136743195898763483356008430087094515822473521026011853023968792673693757573792404561380748429469880749000491970200712365098580221798465714337814509630258912062537015991959749012552396763197326577250187091318351754999369988920114318968558227421029823364117383520138477304862371748753123389933102669514951824011754701342215291381374581146695615676992227970281401297582196833280940645067311765048601394365924316087211478522736039096490406967009175928340970847446874950100638994834702368935494705925325989229321559828442499137168065362291740408003123305175149253368137970833444671970823793610141839403394729854219369673873648536355647718500385173864811491717496562763652944982855702095754883659825810267463182870050249683615730710754654969757185627053564841615709510299085667565505306715399126951589016026330535142502187197110546193567319475664503155416076904919188212199454373096184405936269684233459078474534334766398816579734716007481335983950624699812495128030168838306791922454051648888170132962009689053254048360977921272445709563444191624174503581150885455962102325633064136524150804598531315321097911049283044041787491641377823157584772064224874861223979208047612719606234013418453008583385381033010459503733380971414879944833937631002221350855012562641021681959110250900519236914228428733569485381330748427883681452378065734850297116299224363688609363784376176729190451533551186667126241955783366560151366108603998533908245959576056471136686192533705394602212864676160678877199811784912665289921252419554857965064747550196790471994306827709360800203951743978898593941163245845984711653407908616006445366363678119318592910342586015623788325421361937243895273862265442277026981165089335196520206212240567697667537881662468031418761623136758094008127834739499566235058119898370594548591134256121722462707743097159932806883854264085267182742590166776060551419311793394348387874192217997826125217115169133828195665982635014967238728738136229836524185284750897766351166216021700685231222850298545353324369898147980009602748192883537622806486038747504677974420041440587157063808570299830127141811318813300050574537919767039862512804143128309012644183616159724822137068908032702615314307310360325072790159469784143110296490772590471705517957831029824796801801850140680328327280500707739639909258709023994762623086374878549577435214746376451418716062623426060198088783473989457294372294825077100899264221376831821503577354226647574782419997380119330090501295035699157355957297180094578970059322629228333804108415470514982058627367740637125612975758799646012621547248987635565930741834076246722689037424732534120903289410269890338862809450139432527452194791832385359850861891211270511760695375645007715035029239989233477030018778147675434112099174783273130006579613814417560405428474553487428396976175047334524830373679819962640423095076520584297046162292339869175883504577227470657540230869097474360519848774036247549183363090637635424746053976557407557375198606943479022971810171499412534880661272939062785075452826736640929491286126032519847425829041259656537188045896033946393491532587825290259556727114851989419260077450750682306691237051967847742518335437961100530241581237059251677331452235283267843746843528536137261621677500849116299477584165130046257839880532929002488401813804553707271336812075468891459692826886145961660712226514929584115394143400593661010969718812028344464691886859484915650286278198377131856805067533935248554136236105875154986325088004988092188337904260697022606830504439238203633394778436254550316507138438535822731979211921603032469961061266708525158754260087461704791399677173687578348306328597510290172217626449712660287153612414906591399346097449607257984810597366675769075709434004713262231983281084452165664195137739049831267819706978626224952005321790538689331983638444901155277225107607243809068027523253189596080541900232646697892460109229150525995841948749355487036989077497986712722985536204039637793504048703343527597720580397825406485904626408172345276172352847726875183828576480786991805696775865729786861281093029081545143522567499970458117360562054842813837470293604509709724343232436002517585673654994399255359330484013637091888818897474526862541851241780617763563805692251039067242725056973041035941723292546574026716951795545570557481496842289817864432864121514313372812782852762258464154208987387789403529028293479133682096627559367716967231075203645138686070353973484522479155629114241613611749269774727428782407011189395487100735000701590784017318961327076300641028320383230010680815234438491166845304666098224523422648217763399208074727990218293009905783165030922333294171211865107693522331939975438945558496827171327780952816782827432094085142039720974430338851987390704658580957332463665445242085227363343711337070165853771436014542265428612983540604554978597594189912074252845963888887809845917086695338425300743833615772898841763686728720533971174397119560660128304932832267841912231222897854984813687756156368982598343292152255381766261430717380302347413995129143816843824791710015267748626428086660482447262971769109110920686639227728653245078517109232711859001583729707545687301961531721330223720087970003779087768557821497174238609358815911777612130899932421902237133067329538590012040097988873757283813548352755023198895735169700456200293555939084726294226014615045442008182497517115550530320530403757308568327074300411304680509750248498265299907946894942241017035256993278357616726865340286877891980636176938406863444616409027374367574894077690522557748742538253728839817898711622699071901138318668597268296539663385150303760568707606959214295543609159829538880057446574154152308779732989332949745568214175121633431429533666229743718259962447573496713566353239011454852694132010071760812511472389787514310818386621884692068001940020489293606069678663921666839975981227363432986359686693001557858991519952928270108595160094750507731746826423587985383841277210590210858204020233599948014654231935300651966010560972563217686066201212425408493288024534977137757151674324027333658881739296632099192228323179881416657163415411371507987957332450862928540706422550600251087070112982534384017483838754477946030510881727946525841630301114479401183681117294410065697402107741001103024642591361373235073429666532181119979851547950995818520930791875841669882025889274600665964497373543554924844948931654571900349061348987803431910482804512567929238914667347472126706973555601211298472953277038396283491292549971416070383637376997671220228335934863270828646356748196915269268373137890941471082796266521683855086723415953737836472740124756714779762022427963028058919913472036400181298660847096651678135783376875575434681786386034173296168460518578301448091551540947453797093539713101084788744936098809331569291276838129395922196048043013825830120816349952247819482549291455659530503341342355307319007958277180196340172422647206434951152809194281904020997845617824606007564642684473184579482413276962033008606151990875701710451725243986846726995846937256764876177586541642956223483399553958681645690782155483175964915822489352481655362872575186708356148525381924688268976561696326149353995063966201115684051215732827404214741528959428054018474582743413326005852826748989108334157590874889807295329400506854658912114685716546050683461839124788153438985868951477804564131223854643695105961274519462024495620329345389070522233169419138242523760770491934655280241474014532538804162806752646973526532376544505678010626257601428906660150083429045125756317743751269434230423843793245218227013603187422297249848521851312789234335996750002137899803866625607096299855241958753671264385909072805708566086769372866179527267176227479948103214389255106310307715498816926987200679099724277595303543883068512913387209776338850447755639539307874540686182005173844099974671106267306745245933986075628675020203290990703393648563746302302489269467019509013054258689830110041979646641278198856738721559759709222887731131425532441556878036665792927506906187189658166130121503660573720659643634280035618622672086769412805604273972215387322731505652684057890929743737110772892556496968000771316409326720876392019938666256344858780653725428607423666595741735932635081556770269911760040614296749389461023435845519783367571342014877708590182478511915721378694343092217894494332046102311198246848585597189075724761815496827755068600388637528594183147928457808350052501229938490345475180055087623257968779341442073866087581396519114806298973491944905957565967710594370207900804542680680564660974926112667365750651120069421569452954000319779197040204398999770839703460136204450924526904712124566503585256904313480940569690615705685974706638681094933423074127001813208876139277953218403112896226768555510289704839582232028703250445387383727201460210203849692709642874718863137785535072906905612887386396524575183705459490702836021226522590316998558220257866221830326858629413533032462594453794424462192164188008638505046351180409549254320929437391829623174810092410837450958918137663688089171636097059904076082224150608279851185225727922429008904916845492117482163143815146422403279721295111805627698435609032875777880812061294648682316364509451539119152279239194774757758759478177909686705509909373646138733042089350651554371231326669169968534636372397682349688760474278349580877531801424049434733440590507690593232565107997586186457037027247415208236267698876349127678167758987065114775162154476210430084386148014966312101394941819811482638902293181890152367830985699606679780734960715378026258576373361369719981608365242849473142016125169265622973853340699527239399807587925915582169664648486044091397406190776764453319434854717839703188646442910208521774960042981746242738167762168769569930989258018052838833572387587022576436579658158938885172275228475774447002854161572010217688468387899221531489635421561371468806997200099127857542878607154577595611683234172324763406630563804076919626106270116036897236706698348641857649514275248763905909536397002739816965831531212679921055124025135979121970440033095949951229194918574706521918613749815986044233007290081875272774570329630139863910010529435998785966396892812616856610670492563492023582925881661471722701732832819486283015906937552978297406279901989260120486918151469035521021009461823919137111088924154132264064706829619722546720814550344594642527941446921093770159278351796766104476498043226124129894498882178400488392385616682548660768670698478250299746273620761001434805856835304813995888320461090798588805397278762812927713847040151046952839772544370375403374746537018574268141499697855849933369273054684917420148476386414781584893894092384622523951580702616059539767012731695802674315690325798371242529239323493006172488002919308805402326044623352264777848135866610691422758033763179523858014178267511336792657930496671102611562530078373701881473359641803420252943500910046549965523400479816989736259303532538244991526876653569080410569394303133371673148717575129736846475004033119257753444511324311024928996087269727770283725758985065498822079265157230171512029940054210164827095062140132293455181887676358154055558382982315824448365241112691826651316899474775217669783869853232216034373346526183178958930813462702654345916945266158870391323739908468317955472912057579904503167226348499260407072911383849859301701751810295593644361397500410485911013376219811292566241558462669566025775666489530273065568654096690578507581972238816507005773059762285352878849348114045778371608864798489933132582720690256713130587205295314251024375467553649121352261693680429197914059721353533730183645129772612239711328977364231530289062236240308892911746501875077419830914867787494495926144355343026652760529515851356423064340632131033311326678227268259946422823658501168195953260592580888089419854883461408351220008267580557758559087844256419187928058339402592924968924313659161063429062955948475169739974812196406353067642615372785323692229567996939273177766516102747603274931596346254758139447031333957083972705915008392160663866398665478319183982760774298450751211715206939777753839153610652512168697696356197496003425929278678075872544229491814270427970889969499193650745696444294650999740614569142674909156199580348498820553704856508026440911977097430766645511722894732638082498802099213198061959896413830485290531155109382254712863312900341967549287304076125821529802430044307259872357083080009348751351775595275736472341617637534214603960006530582941689610656813734725147904873898138005520863887751462834999423557428616334408263061978513843685042070314150871226862774407969932982910297740219529818547670540955162251371596077987872183747871703387630620788180032858958502099490561381312245104181114325910726899858035050612513499659113315234479226477617116631257566613650388245924061480719016406337728896684560456893372469646079805514972755135538586237637647436037543442338742743731947999343811299310164720492636444825176514639944180273293195161014783898112621025182480254524044981062181738088805818977384741285500587182575144280652206676446097108945471843056146945889433183735401983620712421913739712326874826158306691214611002722583589960208812479389593862403387752739762902109872712891934215539210001138463540836431563268448591668125522615554833926666621419060605053192107824659006890508735398670341529742996262817727492926794853323640349480813066730446327340610704950977605907318728664749128648614167004396260598679752454229050989976864275589230336458265060280914318228452830697650607067060140575326145651095187173330151076992102581308472014114264681682872827713922513982471926972718702051316648044886895535123965284880584547292365309755049114717600626160030974616785184779585884968232015369388921125448746557248206816085594437915476773626757829532622713076772588486781424978015935012270764731611663116713172961589472954177449814880265324924211233945756717559001371811785096484541737173426627294448606695545088137562995915640428336102302013723927183592910692415587629711858394681858635102609229226217028785453837308945258307423259313036287407737290346213064643134561095692600293617102307738914501798801579717551356156026651887518664204392212727252657037389187887093441073238426771893892091101821885625580500793878443945205476428523927920266606594658888377163860672133938452352195950189691170369820159190737091319651374050135619069972276800857026215408114196727644271873226594387459160174858675902205497532780953632478712179537994266076649160204826975856304232937124032669484590958260952429497501030252805707883647606664469543641147229957194616437909830350071134107539208315414046407375162371132436601430364502460064306230882735397893589653459683509353718601473096887518782363214971710885005645492455965934807836853090999245303564306421178013056526319085660240200309118793966138796857963150717819978175794213944030151298118749956332619434168885982920710972824350166561233702648807335790154774831438464882936941116785861450950637341589089749514903663899266597568128499015499531789903456052101376672590041168011180781478685021005693818271605014499557271272305898279704250420803431311759294814569210478103540298149337258302907882771425174501556883884188276577545781137751787540740497225720681735734312630554703095721511872605603129745309014148625807414717061615749929991094904219017516555046160812162072821591333628535851997800145666953254849278766395203939233462236109049126398456129144108154733017994394698902829136113688186504927424370764119841963372522161969455528930092390133346874865785168083223843968840806116731883296912253276698509892236047967411007121830685516896001580076984503588484662509509417731807728431952970964444848063677331497624221319608590853761414973098073527833420277309323682201457051504515557873073395304747739789062462336860485700928071307897888695915302470815189877485050920755240604643192163870935342043966211246693339466833053435480561429871094907632990084027172727910967773916718224277567359172117649315107190953970378581623660281803194312637520180970412237407248652585017861114263575325228278399364921262187919359129807589453274872438638875853931367084102024765102945227092585761653063271832796389753661737498971347581061184204268085929143084285041898558969837885190987444969322626321024246050941787563253001831263871971644440743719617223986752440352794935834153511670922950705177225041643444306047735396282331153585358814443545702943846963927719340016287490144649147924803445480027117533731565044943810951218536359348419749423658703763308217772419519082360204069742086705244949799318717113964730458358303859814331733244436363345848240621991482249132417497565824064286625089836173970337028307839103830854817228845295026158191653555226414952486079933185465944798877756292948467924453305392589833412013807661044045255136809700175745164139965152733045977234670747391787408500356087186485288633650072330782914336638711654099818894880831252876404677025779117386722179138714121663736868887614189282185102931293545305828567586100551057168192183665884504342666160627188122160767262366651118106561500122289326265146802158531485159787246773112750309284839469571953271417127222034606248272209240699093617848267434780470851423208174399228305183207093539932676930853954773345559899776560845268753309323293095602374266504310839118226961192516405610782840227352503409371953461384612943790680717532797481950840067105119934753504259091031995505419227688750428112485246266031345995619663923750388583255908348313458844895281814425736113952909785777098797516346778943122370349536495929610518264759885951294649429844050209774072342491908172960449510459463589968790093862481093130369362306270763813052442573280041005275120410598467678046803536220865128740405414846963617362200907548259039473346276125664266604850827580885551782283470415493920336505705332191733861972226032601349058141850420902754328539458817450847806728126202754906797591310848922873916269132643856623874393009355143413629978820407345793663125320706222533548422155225178286187811704144816470107447629185382958245625885908502690695590185952682068208854288123178276606455928342261652282459508662004697915581819024536448336817872528517408221650905331274300300951756035105264389855807332904114079283486909599327791386989901614389392542282491469173643991524582872541978800812555014222408781663466914550881655119213413834568897023692725846472283072227275501877048864277912597473960721495676275143158178926278887461277226287876204858562851993191688807570662869596881272544157250226664948298018516109510024947262834533725434522049315118265593625311483147437979078227130742290396413285497047246420034304026679522769080059123795974463383560088782747864608763807080725981590236965203051353526092315714895917600283580232526920926274066439197882299904101513386366810575110766941727339564022748327042371966268017682286510344915884096402658574086565592222890303024858429449173345997580299585834662475686978557509164374790042230278013655679737195859721521035642151647949559768417018338893335485608858442438419092026527851115297687848928010539730989436246158767633255814161731675216720769635462966024097554195484187409970320879530173657514537012170909998500500207630166063302463134853796047613744287564883574095345475172527337881075163952286154241858327941242147729502061677365967752099953674952043203943233944072512921055659318295064253312895036847499416000089623290462893734266688903934681150195308112772308963964151471214673317665706229541186272608020115296038763337514020576798538110566836672326709706600001378754545746105542398023713045743415460213125011177858622073213881958589126601676971170867518210691582101992853103330621369020012724795667838319612007544413202460765726938870906585787868348017546671053306507183279283640466017893821326640729811058716051465434092229396108739134658430269316067025714747343690605551428881441053053180532034154371435562202343562163472514163690617839391607599889821780422323104200094408825852034541279964020994384144554570510783197735270465078788093856256180068510431780836926936308525739038108749638065465083238847985657446994181783010864093806666453960596133395065671280218736453072721148162584236185459801056250587823918167242487690522266932613295152277006080156154172402832069504521617813643580101420314428844888114934354819562010326585547320911023373666271745256749563065546181592513667991320391578602922333981395635120710605503062119238155825031001039363281207606695812663562308651625315028762132954053803454282726305318311610229880316497429198927918665599093408431891605232397193026563787570697714663300364518673748256032110177427166646089312842058845782828508251745432129504351361884845738118441743450755249572474004995081891766606012819061313823914628737779724201093656345210757943369772788160329766695297815783721444266829061660972479730840787803418856933541214348417553002717909548427043450122187691425279099804161826400751290698407349590696091686074881192462825741882607663585071592587400661465012506175959941935632266615818494291191440634101880316695742051513854329671625887679138481300469903079037918183438007089581656109535568802663462948173190181786912734030873997569070036143657845174057426733138080297154578783801031905858787673309551709810370093587879073806385317213105806191700158711859180623382605870146094392206031571831957057941503568141985547183547476934825757691960752411102863476284396885871471113448023158635900545983778739208013326966547358874405152441051740933124437159843620473817760825725854397816740927413728505950886739360292395311308330711802349204176008199331774076621241041626722170137087071983715265035945379180003759332803793267127437269387877418848538389237047281157158384463844719283578083471530494153124760350349209224719894649976935258026685544404067066041632375621657330467771079299051844200225418944358706289118569894668110556972142144799715960568452655882083724106584295440636037622810663378955204732501152268346587252087660847817262066352777937888731715448689098675374443040994737522271737702626563144192291434027253408772931858762422017427889591741302631149155923828879646660699218685596126635017482730465566187556529481550456040438533802599110866447186130711048691076396256069194783864531914883305857611110206787308891802320482060409697210309121985997223277562324457794603584064390697715802359918738093509484061132181949358779012244708469944983506983714437775667937352001021571683096630287485900453797963859651567969592602614084255832201131536855342818889850560032746248369643646333441415073480755216368745808964355937741579526698452953999066921414221987391776399474523285938053729165855496917376019581691264343065029509893512250215689821605451724779101102510383888100549742988841449603557563840819547887151194846416349800580925847625874413159313640400621101974888919101988922054920712320484857179815639777459482138483871651124835020484155208765783719579541120541965569816850466949757752344956985676609949133418085356481232157920632234220695739894627248031111038638782028757972258743008248660821710579010015748574814472625023711694145276411081930548336641480774400895583324182593825875351823621053055072448202770232980291921695020110631019558892458955723916551287011383189002083056353923346636885784504065078265954179414760608154652361274923711944880188369811834185015185104001624519207524992216881636862042345812254851208988255535403839943314313332246343243797907818948308331961903535161909596888170118839336153567562454567309496342596137776787509190603477627908299854582955012095443590156256202032557342815583713799330052956162522168220421638446202255627570347389564049632148705073331856901560423871309036943471158931961615491994541303190153841627004613489746602756593027372407174767569911256478215094822351432068168537001899213713686742235950543288096150628281186716789650587883417419759434483563250675087256132512086065199835521857856258470327024939537911007527087274855580337200887782170401461159568728482975329110146053958658359013511881739052706573099615067780228300911747260054262195557655607876055288475279127981977893993777499553372888024495453247523239937304151767081531672006539668827594409773832365870856284899761578512842915055175797422572190649107682873098795659026832148315981715229665278144205689795330337339034296149526221216458751224581185862218295491510686713826093547935576367900789756230594335779604910965955131997980792045986483998222245919911233885842187063880359771823773346700969231582899445272228871383548141414740637844082686099183741328949492246637982701616287257710492182147544578434619379604783723656965993566315537360443815624770675722684858524143764084516683043175929695760725953697642988705703910634295246006635765809772526366077010421578115125827363042371136279366430308844800087714993605317815777786712257225800230764872658337512818208215503056657663810420986400086139936891483003157561430194146512074075023453934366638321594885124281692532743964718153476720568086656253717232783818779921438915822951948473928464269567801254639543811328146412652404260453179208874219954429592437612748777433808578819341233396525713805394532393496876069163191530693130026145199126582210536220209268643687439796589108226913999464187198593451613094733567681109537220802013865883195426111143078743480946844281462179778079993909653332258789072395025775788760706087862369813276221541677013465003291851231188386373971292737317216610362325146162368027236901006649173335279020784651482445540222142453609875968128000663228614214444517715740709738979054447422544955854802770379578123289960450357107413298136450342675213645095891030159104952038028137396196632500485879490869083819637952393686718289088116201439940148344101635617566893105915089285534953971686781617057983796621479625445218624914597059457508214790470564196184558274880795596204320122730975099601894882309134126938538945794338879785078047396470418224449649798996048514405876996100149692134291299541197446937098503466252849311320491160811584224805649193707848231972508457553351399866626684751883004605398931046575722136414506672173189221412064099776641644092710818891677654401848276542083163208359320826764384706875740146499072008389507899394365068876615946911808387648737856946692084012466296672768448869698558225174730395562645097075381361208596836066089295092266620596416486581372213232963885898072378258691613444564647164471311170188808875207290160988307550264670369624516606564268418722817408722725982364497174392399387962103070221580047092155221524043221581974811440874037570247518662822836385297859673334595713714991898746050253835300267984866548159253599485051732858246615136219498060468412680595104188636468730285624731663220953250383398586857527550627470291522330014801610646293041254104079118885275706844573896935762027790108721299364009993185461633496830267024494193161969016981609400784652970720857267018300951849868503863031135558976728395728421463554188028974787741109130554423296895221282748288036352627583671123635265636637784232677166194126546779126021112634100561216225607247876966791031260334849137400874478183274070084065778574490031207541172874690592007343488797994954262238052492029335776427729695639465456856561877462826195165197618385928511525305320262499458733361186560981828386705133540899139249662300884328455957531557038931303650837028386606584734116159572096608473226872843299195362763006170492621573230946286467097763016071690457264754629165615255645918178282924371962188219254050405286545715031657531890694599062265309537240269040047115050189626510728210992781161544744623359383278229861559174802378133815575669054705166039330213377420078887146160472934960385857126435326863008820663526853722205698647255398286357507586536285998569397133257841684847089069209364258300785767152056326916089427350868113078289885373231128993711013585465073857544653685960026585773293227370738926099503172538319543193123828176042219129376339847743421900057518192679131855020224960642334829182085537177683761936466996973972248443961144379499800093793249787223471727163062930553001587523012064416651029512574662260404702302146087403117352652120073911991170745945500176617832744692316950652201286396239725700343856292477133624073016218234181873984213290048995377669816333977696198448129364829360130273152367038970220709729752053527892686879283058880486159259471761871282684028066795751254545344279525130311711827783266155097693545088100176720599695478738237106859041543497646609228697946002729019539509534412950512345971373959294844118995662581094940500794835407201053190875355548602606991314989236515587026224489637529851644369974898954599930979351495941964723078553619109658012924064061940305455921042218366314867074737248675744305390348238370877182101715966159078641654945450935404037317946505262924988425447103759839777253094043606046576038610259248344405958159143779175146405048417215851572128063999637110995531661589828543494030274653919763497337777867602069811149409218883433453502537156739068767753467559769872087427729352497616647115104148378852639501266762728828747011794510943878697789423015865981680532615588913830612788965286508824984812351744563402635269984558245548818758927422884481540141864033888311540424789868749497853909801115773877115809056750564715966830648896690420503163567895007768593106933465064869860467071873394651585110481802426290172557429722345121805720677096288423832993181624997782763178209311468508961364758763200786598484533829279670521392368602446866723060768666328607400028908766299175461150228841257999697769275195993507297661129103030127078544508563089923997924893595889622310342674603610207376805368964732084210936606745657398950529911232083753092845401787333585612720735298494282573662397675747368254210831531330827477798873190434966194365898866883604058717324095198564038981864628807146692655746331983627393235383804671437342403086539990276069345150404888242407915953531479975191265245785815988026727678419666716627228733492125349047358732387873850452706899008536384189508907161899848142246991796449983945534285236591793654751200985890624312204813974131714681964950030810344553267560045696766403436095776984189196345467690935064003048445659323239392193024581602103979873621966493208008744751279675312177995009366522386193380715757159669134843198546105341905299133884955264863537933538723561272408083797115821639759587496606970651727422664129566824973088491330291741444989563680323344642205478512895472382617062850090649408820496131466505287273849821298919519408608853828047617047175031781052794853015145604329764709021198851092584131178354901375621867410118872180437302985720773776195552861672029383560270845210026657996197232466836696683378543844158539384042759209598796341454988988670853592645213909384136387684282623186391772615672886917939143119288346529551181745213622642942407628546641648648642966213700309351922723452589329887934710534080373193783155391223725591945328841214379433338124912737952825012045084501401111053819692252633036433180469697490510194524287324157903310776153483441952118548705762258346723463287343634473760579868978546827913573348143557459206195544482891517284664327520032605655815616198000725290357054108361859374360970001202187420479581027503151951188227588072854629195968807883808639552686473578272872447843388175573002701125957126466044790332022113914761822833421639911410118048658172698533124004659702418153755901298379298899885102774597605410332686905969124437204915030531941856983091811726537449955527390049646169098058133505353445040384423755128807495174093115282785390964985875392196163104199616563547671865582914580128529054825126692858469391062728477353613079989057276747319526390215935568504708854984114736892378258185196080948191680585689652048116781240026936287040268421411388152047896517898758474575818930733095691254808086044710825767480443957850431153129062717657298304796563589038581379780253716909472889738727303196872987866392619866959391153199811430821839037279710663426546540925935143335692560785654000202390928435705438470804231925661730442316773061312503482989800063274188143212421907932912686395206865342747961415466662853514336339466393823733313897679265081594997933744110644495170482087515710096741533704565652253116350707139707558076039079390957390549133101875378924597427453633909028857528322084491825125012158882614543495168509047576464477135871358268351547411898310068305786448854885883010854145468648583657382920936059254167759227193432311646871921521556113259295203417254564046109967555434262852861218654554445218522617952671815121989544860005484656125288946270712988155112910362491141377929617301718331394670824464974947615921948544847524125812368088567916321849015397965364191305026287200771947585990463517805685641036072296691806560351647887334525715539102521330259189228273638946226429524114900717429735071012064609392684471736897076477222512661791111690359862107881623444973269095290278960792569161252333655382036290789227887338420632821512038360647341328157578067478159740496928438068222686807044007255428319512019062054074588776750514945201172789890295692340085739004830246654816666861670359003751773487402909102064406115286646804802499310388647221233656179254863076958602277303106383245937998448134116729029095170144007834763936066484741455908789127670211294546491928401561154904229224909543367560746949222506754043198741171238314362080585080738609122222584921863029185440416712063744156832193711892123886373043230111870819511386829372232294122298781183612909584592843429616859927589267481802816111268811244352723663853225861195017695553009295768027459184508290599937073836066015254674522729944259570288562330685864212291080715278417591167192743593609108372152785080109644957809629642696735013541972204338014888689868053644533800751909317674782456788711694523897720178407105781490124887268838477534562319146179921734518646965911406719873075525043018658275296200238978926781882328123577468265577062595471591281870503774398968706003774288436402831258086892978958265131127921343275950780102640468053559726145364165929780990540640718067256311497659147843886859210876152151143834596038459755667078571355419269273844039607626505743242614744419891256477783430442957039522910515430090301835343873848269888492029863620958098062532279921131799620368288339620885981928519094071614051354878614439819318100706049114982983940576750142547468290279941212645850702927609816041524757811511583840542135491291611117270838460276334951337962595152279101154964574545178198768149315140086678769816306258255504243312872561616431611477405592732247191106540355141956143397125179583757865102664972874671595727232894076194155034611993677369099520123972864859523894694784337815622422039541082142610373959922765273419114641798682585832045543225936828901180068694431217479386244555682750213361887194180642790720188441153037255735149480370047207633730404566444448438729985234846593076778617831092787937108098029817349472573030253501484599654328768695816738303136411371595467982729175575221227131386119289750328656585628502125469322691448354012698878550638440694660189693793588268345590974285159098891180995108621839245251635357492309684429169951681675055514341052028063808676470202952845033347378035529728731281086730392937582809510142278387822300412540336468459881732854029869922102014976536116756605505028714971191388845269225043538800731727708872259897265391275241633740649187958724524533463440325055829667532847550680876549696121006051399849169323952429087632598273108401337487642919948189354152018167565887989565263859584083653741444482645535572408073256860341147831382915298326524711101939443427750729068955957969468132176457162531637885503303286757525957515285399796649506255258770161675492233167728754541911452438000494304228256581075433205937565101303567373081119104751556793771919454170592515780386930543922400071943115460333702104517768320219131286602562121799465718203377931389320120472261745781695538739208646144581012879386117290102448210547331979027041351377129834409123857581379008020482617018520772872326570819558878826861697716525430837098876235677232391917580921220881043157562810084051147739504321537431037509267172417889771759367227167991228983420839837267167526357092547230344766617806314683245586872449444566113222108332085373722152152851048168823980179596417361388362969373209013112794570873278724033154230150097164356694626268474599478484733340764371908468022135392186524853585623378771833040217466509049936331416289932718892685807561011338966431651483641818873305454007939532342729700293995185996467382379791213065693196611646369678167877225231515409958277463082082823708533683290366040097551000514475971847093134708268025744714149630894050390559865930113080629658444160400996273596236019701479883190354360822459643909599503204407954992855056899977621488571789854285660138451800483638390044262129911456600632566113734123666160554881821986597769568538395355104617262966747178620393707771302722047323647813292923669841809666075323170355759916485342919776700753934732695898478496608196366864801106230642664230248212341849066165271866830163656299010150510054058562799259175858289001050162417439734824958480754499515416939763978629829691438602471862353862209568994947337021477119500076197452357216015137071404597521101826651510010260261366294606275871460716683911070106600509131795053943157028898231603600132370381359844716501393999590494051258384808032416607539221002408161822911496345143034293599112799123180515916348121550038182482229577899345128593623674704969822191487588791329607506358804621440254697546240198694062097573304393964735040729999858982434136360920583492493007621276396770027185374850155254666402872140864791579019081498112110663517220888690277942432491739451269165369635511192408060947560479773483973736580316743571386853476119612331051909546237417054564823959274110814885731329822053705933318439076585670807429791813499119896050654639994191873175919286890755665928190903425572399416973126223390412466307392186133167105314734588295284311331488634179730173459526440921342144003168771315994989026493040567378820024814454458005462779882342811494926819561000666607883219171412533040462008224575573654170757944749440676649849315196587703005913904866001649182028955341464759598911566789192313382010197193846226475577500972259187786361255604871126535888802885211351090981565341104347482923332842570535866179421526534656983526692423060658195444010936089218134882435794807124886484857731327627049633921355587738293173767803613435397753189236589746219723610694552594474784820420211635959435473594130335692054486079384240710698403522426888025238215331439125020678202808150625341590029317827028531258017295439823775915974784483947586756278225944078956704685498950626801721355628595759113097742289586827909903748808318479943841707810283718324904406768102029096994461431866003286338792603726886156653132424331719353629818096447617017976416761285614607761804645565881909821243338048088075632874814208400998666009686055894719520628979838114701052860776916590670003115865664399755579572585274752235980976274324824599891244993594746582836972401407575180281789396770095018969715588145329830261333136152034665577624481093456578916582520077931479643160135584408357615539056416717078914417773212303107587601710756192451751845592672598487864154888666282338575390165744764672204866349222217050812569378522873022294090063790511401494939278138674504457776826181015714132017301439993444471626144784963695587502497015502673463077982776549803783539508229581159348210662646165077291771851801486303619006180297781726667062779060819925642765708863461767890874541814952556542127702087926020720702253258393484800820333560893793020340144721942564686361643603023468392370380587843688426965072539298088010229365753401202099739127792232185928320014147436222379502392410270469030657060718700729848939155082572813648480942294892380387403206826520285738387625217729138626536115633271663893809891038805461686000240580655074277174828273380091220219253995631016333022017723568900299460116646445095301096260163885977400110768317661955830703974369924481497180198196502379166202900158684370563301992316963501017435968999027624296358336968014829192872606428252394534452729693323082657513430508652589376524305098150160249146019989707603728096550916662303568966217007822745776678042196040960698335294892166826863370341017460557362699238284196966186785050564180280079708895856287593114998041427196999202018183113663103039249093072365549855959782393675335014865183993616950747563014103624685300396332823862150171529283277433797193160030193674437014038367665383149326950569214656868231303721000449524379278094067598913629931724941969177720695296167567460424185209222683486930503264648364527323715479924556560827999572663244734894020620195403597806707488428483891261692182083921928158583755706287786138180404316245629704718901948429470709014997030555705555400604573515584799717678505568078514268725587247228645717196174788568448670195890997275520596846209713855680775984361340595348640103445503486263093528224911227116389425122139393568293534146036616229121631700501814896905598550965081733448295766368747343648470036649070313071228095114730510358584637484233545095847416800001722691762514375562301222701482427798172938947820863993266207630240946124305486045224731475205738071849174383748996392650566449250696564002597072377992900589050302227934295360576078629728319287076382275884251192734734958555133175570441787335184544911898989917210873504253095890463349271673867103902755385605686557990776990070517804898313461324770045177995924688636867459613329242483665943259755667874281929177331414283754279399995417183354427118396836780749064678105764581613760154461687559545313619992524990804942012674277604217070960451924106035148683064142453627947736804148419517264278697971155048453088602929452928934710444695248219962097052080189584771056986156348151485512886651219282671055007755077802370329428297845595464247396306919693524297306205478218552485872877227877991318314288978949842492627415267281669337543361610923821500283648652253902032460788860819773546199719117656339780489944931988577234863281572778007966691168782943691325992626335038635449244951673736568220970854427919253629132013232756391043105760391030531020236272370000523680375873620026100197919908338693615675006763487618589726196861548542339049788686531607073930623197637184413505326000795835234350843781137593353890833928336500474667731485415566067142524452885365351321275670758119344641485133310870273476715259122691157889011021452164849148128373444829041516913194549775140331107073433813881659261418268620591535105083456273988142271276545482257511432371621047526758892888075075730274079684863336546954359494336930436453805624260401611263597412047267128787009783523806396260912053210932473514486430032669900213174175399981915408003938764586548658186294432958263337593077807308334010342127709557851585044810940725331694706974146455440435678832970878189001838068432502909520058323633899962835635523779534675523013037318100383378518074086601033535182459978434990100290482663835100205648237516073718885658011049242453342590848781492454967822341681142348704696655256050961295672874921996523645686843213115677936235114418874409617321239019976244298179528714135318237246321620524483683900491189094367207097380402460288765686053153345063673375116908959466540972802963687011779410885992220855025573407387099937731676952252919378097957457893138468154298015878027754604213232429343501769308260548229271880997901280639601671474305405411606705272437497305694917134276538766271266156848861883895037758275699823993823670043185036774125063691728823498718655594257195818721895902807184758589838526744574474311085398395385324458972640293155399127391743456061108648475619038424424607900238072573431607268036018593144657522979795549608538855995836265022393333480721989488689175159842956239721254911380804251726052231456219251947317430919753124807194617282355800325955393498401372529951717715990909185307790932613674371714960818101675674060169503968773405291508227134068056624452689632602889453127811007608449338204880580761884111891501300825542750645831986242997266621131364311810179503342017689449205777875120358081436815315249315396594623197914384116541408690362021261147858185184299323259020412559308342646992583947559223118834782301143394088913761140093799460228165541560114580168023388363733374546420583243168406842096739815486927562164298375931528375996559690359663561140132799570224324720974319108688788556615765368692495501129486055816625268547506815960168177681430786149068219688580849811335289851887433122410171202979355160372876499357267970351025537027771426037515883890857991625108312009455109782973374948682756064860217427005448947137984476788858578757792834698444583993624461507597320876005734070802077476899529971115372978345294327763052737271713146404507355490088288718537683925863037770285216104457785601614430294920444935036331942494911381722322275834144832726173722242971331614750817935538997774223632108397202491959579289385905393279880807012401297919730550597691969597537938547099416715582116232434516823101629301428254223347883967992258968162738584511816791570130461301417284199295264093402407911723533353952682381398153452087316984588709205676730393527849342969880763138990330032418440071004561319547229850261939240026680159013011181257945215640286831975026583308627145856135683397380834927546881756461107672883366410295710358615694175471877760759521070435775693598093060970737325983585664095255255187505921816963269011990512935169316933500235839783554892696585437383807387935149153641087176559650987618221280048347004710937282566134461437248330787510154084714935704305094941327749901959831299533171991517265748880493031902149149722416253562676580556396360164423312441496352512331013445837606529098159339637592840038322746666703580120546624575969429073905775472108427305657577216134204062202486013874592230619515165322662024564197176127854352424623670448924128400258489180815244110226767545017090809723264337704875164533437204392533245914626643284460288057924825102824880302876299600310262214216200178497155255764450763862864485073990574228018356819113888515733179903177483886924615785820357159332352921729104821155747660738561211251476204376436666482341457298476360016046296908753717785721867814081305810954820821284459937345432096486194178779713093224693593732540440886211978069855358772685647026741662601902396039079225230840462349610069198385906190623426584658905913019351536004837163096007146051005978413203133540337023567228169128777904692309563804239929984933883438036730370483261055485220994462392435676736777558143179370164375587457761569690097832162796745800883879862677694191232425847858280657783989385588549919150738127605845281037060044868313977061639274830823202899329674693120147822702419650658434732362800650847228858976383144369485684413993869258787189126942985267777546121808339346559966099794299589829091197145939804221581711247161653979829975831655097398553927421794747391826244614074509493599274742871587388253085213787991847243353898340393904571084692739675919291074785437088678587733391584275821723823528007168164871223364837713654060728104587278053847652107185932674926394430160947725644352338224280150254382073863826552052744480600146603779782047702564660503836628023347800407041031903610071083490682044639106919138502914909178607896793169714675067764289082625918496042607279956040338812862413615423705476075370294441663584332136048795693097591529889036775718417280495651933829472966719264085222396731883963312679935238997349372674690381492937378688921691519232869442071154179904873064833384625886144191464095912541078625835857075049280521526089698341407712400528706600446815125076807373790667659329907004729585734460269926425487836052570807844299983292962347570823275589102113641102552233700361137308969679654394335844674445154923512157859843756053557189131455945064666672483317048450211338364707070872440136295256671629432399215738743903786495689309640022406928623156322830060526607213278896550153298755499562826926956355572203462947533581037668463537632797385000807066333927193638542267321948082656584204422182223659846903545328432633632095302364813850799966283500836118404462923704670997556492199637128435204141616935982441784414303510495915521607953337576693535505001022500725879716572241165113844343455657660355573672770886587470013371838538440741495113746352283414383698036144036409728117164948795051508562611679720019874688776661921401013147367530399200773532545451691555479914059908088931155553161864988526358111472544665703860368633085255881550914410608384346584550158349951703404071175678506499158789208761592780049261311463764326665666262207387785531819179777750791022715173523634729877345575973429230903689127163393580546747762487704380460197092700087381694110691164314511892984735188475773151424548589965597746385123513974818908199888938412450409728858438567355033614578276561405754491472923706957326758715706033192813451550679585257034596018645761876437379571942738893228384322284339498488381572815565737863923906362813780206408936566979521145369816280621481981218874055426833839751286055949926495445075177218373467984590460646658405244055280157954416965390570094208700343264847440874204601516353653299099053008217112186379559645313630059792529456798834887035572682391236176259518333730331930046742781657993345988668353202472311467657986668853270091401161266539170880653402027730138642802177033466402845301168594431008898013436296325362391484810846817772201534697467058503854195773147992138449367793097375939801357415859221805118870016965369248993858502295263042505615115737032368020020564611072655969132633345829452225542497022522986330629139850800402880891307210893955908676257496179495496604055227375403390295646397374054131753890301094260075772034811955078033087653255680315591538980596221799890023614501035868552951450425086173290389343472978781521526312372591242537644621821421348563293531383888904312921419013862330396370489235795356214321328402539255019999410500587378106933141638390401394080992574032186245929838297469500741249124265136502016087948735675319728965234087150002370657987356309230697909605393457357785146368912521046518179602074198570726908648927499174110123804214067589930000705723647422440066270983350249080755823528091559899836026859811517511448493853518437296219781026482322693059614699653541794424894977568749148209836459340628468233234683151309456977598493330897529527069302732530286119854227106590398053487048990559973013246465312109021293134049444700229594387980941450519865825584943899306444688850007588341825162247915939148905269388366216306517328912511299868682660039822646690315537970192419452315858543410990705299720377772525909720946441834612177545782225434749420148516146721286751259524253955619054575779461409502224612333952283843586359465170277426334447299239974031591704015803252765303854777700586806907202012446078000938853283897562045584824848874254747071750723940103750197227828560373287633999480262899341295608647950857333962273728154432168800085397432809234728044502572296769255209802319757094758786766479633231408246317273792975138785105195678472610191759704009367782675751775773554113242499265384168545960854616483568850562581242238774548854155083109640828724278729674291859028926411352338961749631480792755349400771149335610335078526486343982199986760399157166615396161909824070590764553735503323478464235653309842202985417221329731302277112155919842435096320473160074669923584909264938929735377584789020444107578832373384740187349017277463120475603407525613464423742409412327953445851014806427062726907325900817208517228637983621794012870544440630453691430222810638370322991786489298803594991700062121790662280188111760278252769742853419353765019019199717923339056117808552255407780386249682220101806507907756247534759509767361067996829362099341007917645977812054968433887795077103490242605307049864802820430833114359161098365777916372347175084985445226146776327913070664026811396567665226770735257830561285974717100785242799158128300771365534351894930892193285640440362928425814783341477453071140716031858681484379943308907852038037636801825088806245125800004511236164543014759457267777920690473455825578788823015959167533746701959891778794457992396980393820651090846833418857238846787551812936491019412261801076314873660718586693461770634680071771735827362004429910949571743891267342882630706965951707697304605107295498273221185590651415918580027226254147176281027326012025198695662034694592453594118306702773148255758116718116388451023619288485254353278204887850132788806155887932161756649787921845128049457737538790171057957445397301149122816333247988348209578261923988070008490014807757305168263550582590947543351820579262733608105693636802281990048332730211231113101084503429775717276856750529457166202716349755510766594094372277724921389634321644455390321201727800472288978538741536520779813553721183470176510177531641451235659039848561036354702905220275514115621927814698928500228393997266675504307686072621751070791213464028638772003394582502633327216178984052778823391642902326716196435367962999148929185157662470307084167918415124216938765945672782272501012836577077800583830527573348807590590446132806211523057103046635691180724215082038711025343663969333748235274922564181055379088900856485379307900006604984257664468917499104038310070620028125893158995523910576594506488454845162118620610893328574234646688981332626101508097552461274122236446763745057311759076887267652854436387875867322997081473387876226663156262448190925266400421910370832118867740430203379301130213103868637932119159725646883094576558739863099175732941483943186533888099092963322091773272637734654131333300659455847236215281831489006481026287680994741377828642585382897739053193812263372109084051509505826597398341446931875496165155028763200505514200685671926037008215179180958856763637852976704345369529360192829339378441246828562317192187582688960852440132952257689546712324422088084725726706567492935485996355497314393517715852873504342749233465403811374882589812602260036270194123558430835169601973651744834293333427806037137676912773614280887110107482365720070081632922120267634146410908090673174590486009348780115424660860567512605036951145520197140614639776155179333337450214866139421501003105687715406405069178820501126584361976008394146246735001724116402487463515976982991379982210458080458417730077748162672426887961978402670962496461906019794035740445885734737024841817295246648450935199312935675531568108319335522061952731892662409420695341694451208598299980008575535842754075499958711129011347641229289866748540767398009694665208031439684910734871832767579397757968736238378959273633604872221690532269667298652540836326698706178855116194022321842793217026849858565395013146334554998489853057684306489199426732505873769357570042837409229100572798809655872315688217475056112317904292433522804524461899761778145305641777807322053544186103349505365981302080037956519899045514651793487909003571583516327261964727533528564536655415190928920322643999842232586143002060230564055688836962889635479002601410135209620803139496932147468172177415065986127513618684133582640243601277038307515873503370098556739109438830857555809659757588651738777776115632230010124726267165028102627081605531931862473565066055636838161772028339633996233211003993666350979358167127510693804647325643350019586028561076802949155515239688190223106814835790068523660211714801773243216654642447435176833561051877238018960805345745507247503193124046760301482984217096497736196634266900864354440973456791555951971711969708559061673876704728053668269440162164104946318438450373117807653957292949226386726065268501237599939809860710034889557257602057166857066399689970071548036540882055358784807933863273643428787904305725346559742020186694487337497099559254209169908089101381957306400816228497507865461091420817260740376785073442611259987417669454815380043426842172093859141407137298940310470454176055499295431245412643943388677969628072290242925113667684330120532894138481384230380302274093566362842009876006128948202459416138619048534102136833919910747437458972690003714178631730409405855120996672285135126998803171467074435156515024380870223709050072948921659049537462378368608464631782042449523638605003914838798570298182747188628368528243757649440139968223060303372865328286563050195942212456910399077791867025137038195214977995302474414868383854963294786756808475840765701335231878575650474851812276229369063105458448869171289214377778571304999700615037979155257052202791717828543722338858016340278731311265408245962964198192893701110355103163294600371941986602339655516157644970506753874112196103019656290266132298506196186972259385767522351480114813632585057262809869526341395243312296283573666766744638540880565280967733461291971352247248275920684624243222304509523558610188292027580179097148155211947207987128133464267420207875392053249275595950743172775953644755361655980633996036218462616951205061009162616157964464033377164226261992333979176337067683019425769963432858063738708681018932344664531905808705317389529299767825256871192995943029115459203833166049694666582379808924423602360155592224696061676379695645991889603444491555318163020546865243771918668204039315834385537344371604529367234957621766796341541721073379194265730055583992142593641602262136222105901000335201509682574803699960670005091866304762566978486485923514553027138168020817657757979688020312399013351250034980226345833597675522828555617301141569847889243474533214064734566351068615341879666250635128514005762475349220650192790454851856143761732611730409409008528190883196110608739620241065321819935729791812980768785230511681931741648735694097581679425760285735173851485577706120517299807018580865465383358722914761869862121320329896130468807375202844951929320137477573129549912140604953131984250474970800568017002550459809500613116765875753140089454427976487830067390758660354020525379138996399591572777169907041403260486846904361350051307113215836268084681054941953649341722100754047769707535830613457639266140127649460506472585711765341674825675131162570136250899013609887424764131054575562918599550679210289882432886619927089695399543438869493987030127954362988981093557150941749207358929683886891675659507528368505268548001038789812802912736864597075769566128211520691181380932070981686369864022236265671038242449152045373841656871956364841743303310005107507151337156104854153286311495838965496254699908117165771181703997084738465369768063711879159233017076698595167405276139777042852878141419153275872896957934597569648775490943429507670832209961707542731819332190085299747897744200865056964687375559393217148686750168148696955501798088315609293071521161793434582815847297915734226903873931155943856853303265752258839652081848003472350784132462687805373699737031707313780616806508367140836124060490400321032514720797637466186920594404597408497733812467178816875702766424844269670019829546811728769383153640095795836626805089701777821450848664747948594124927075310765031525288937132184931215785379906299762206194451200902164930042321242587476743772121052074976070942797569651807317152386673566362271766664352052279157426518643183542168480838626508582859594013431272531762760535744470291145839305984353118255538425997395445963456801747974311558860873816880798061222483722532399486789263838442321322388026153947101498855310387688862009324567509185204305390143417833146098549839308032302214178311611876067883168324592063014010436424516552089042692369201697063696230908663931901408684297626271112576376724027555129719254847840550764160878063902491613077300772304929407657027266009071627429524614866431456240639723866572655575402556009435270829494999143496098732739614017264773766494427442052760227831882403446839674526042894141017994303723537462368927925021512239348679127264644286915318319088208611474115869121582624045679005407441024628779595785201008606904116047870955901939365254601326280613216164770525673944454517357301082034114511735230730395492318371946893267432886347427425308930142016365436165689770603497803303378000049046769193161111356144282065008852786601375697462812929511856000797314452657401944518833184593456972916167044910736865366611140411846534604245882772012005147524033506323743877546134879132525280554122245808098088330845941706372586524150026640996482005210114939945698317847694373098429979102712889438814458928444133970799659155135010082547947221244814951361083248572919849534608500646956568489431519027862629913540115186106793633294635540908149369573751196499802535621283406693609686491798695627725416661834117193518424279024362717544200541637078817991904537797564855736471883781958545002569429674041220478447736492768941352532044469424854076475612796755641095502905026659789957086839461029044622440852131903681210863915013401630750472949052233951223669874211055150367001673902391718297129945851910205104281434062180555322061782672641430067439070637970294000454031196396315132440111262546312065472563574585094538684147375459649968760348741918240231742540854106274696966233178641123193742863779368319187169925726531115996519090948654142915314250426586147832179994443293271931566225056314746270303002349656479440372733718949220550109279596679049413277217248149297922904035870420714664433686289060926632036510360688168266459559316159891132070644266802721553543151326992876428845722799764343511967274375012826523788012015554542650367228525613274465113900169177669487175548216654689781339802420877281617587149404285419677353309359288793439062308393381630534156558966321511576592014249740006732692917537442348303813947929296824276566319366478011227102585237856688154184269930662737232370997575015858923503053959874825964574016514337868909595298712747767619821193594331090021872233727553939106848083860732539687911475780260904631746722675949750943243244417577391365399850912942520487443956980749146441625627895926311797801332715983812978822470517363606768632321415975754411169784734219445543459453638969928699302433453812562472278083169289252825943945628829376421880361662221213408997160152380100610165903988867117980205245557487404910521869625924927032281101506980611757370218045175621186215341131821959502845978429338466321388323472145107531457679668520701261733899180676410026435949566956790846082753895933724075767598870801928535276527445557706253916264852031520914114930145328608067720641445238388340406922751214906617815131302464044207425514528396149077039616514141531679048314574453969546733579964085316029781664191987440719977045661556412753704286405591750687445570609432256504452595623949385004145911913948346107180081612766940609194380953209040042492704634121366188559667343089835960507438724759962661269608990433541894179545111585280506589082126621253697854316999571728040595428830938000220801976552814056488763187166267220084079284872629564187297239312843161285919515192266761812721709637179239632186052967265186784110987134381972856970722807093526618710477990375787711863308685832765467425781460980739541712546858945278049303913061436143686793260920322190703427575534174928567449805462433891716707072459653424767025134244728190621177724988754269905365834225597773144505833892764517996194645952127855614842317178154523024311014854094728017342329999976134206109888812066440560057378207532130306075544005008079803250215104139984423223731171238002744801767205867102011888872578449528363945963076357418594013257255727623994837058333091181283108889235939284716026693882683571342163763429944494169552402728352721023069301188284420044658421583542477552568719027431290809618255856414160896840787725477138024099544369585851829697123919114129976131213472318093403190085274722369097750115811407732218909787958733867670279008230291361997394751818129018761086302711852859395685287387050122823312940336854944788841538063731910263036013783427902491473742762660148026975228818616233227460553063756381628078480956293791673389720339966855496323623176870463174187588153276967085494361407089439123560136289793836942925862878948560035458849502633991391001247475740982280682863874168161976555999969252403652340636942537792576728146948497084456015234373628516704447443933498534646827731753277230953063746676757852484043341765974771465034171196101683271416898607030519432888367692021583286776207250390708108850379056853511063448042381617324822043766245771410572625258188262146288129941103151322783388627278134385804549457867662394682274938325382655470852723821242164170992230916174907257363423500690835432068939183953694341071166174281535875510211960280850371382305368750201826693115604119226991110543995691411102138334671389105094393696047748746669871745284641144405792397347943203841765594448643485324259396311031668152050339322744576620711036603459298638368060898299751118449900107436168220666473771477031939746279983584490534952743361372322700047715590777702532549091722580536391919969722474254979724878187690522576079435110991788857921101281112807008645059677219801385875922884042262890065029014116706855637765732108839164168377302948788136779916572170595948533262256737320546728912838296398605500054585381085308699950973904996421041256192450879645239605236022334650969738571285976103852505851534321136329847220720061105658542873962200565021094450768144019063790410557978084777434867726214345691921241610351023941662605165749060499678875480028575112438321853150318434413941926376953836325796465527169782662849056469013165262710782695437481264986121366860354197071145348913627042600132056143688450428139113256622283402340543223130981534243571418229153003422350086147054609447127366524244564524644393439038548807006271823588980552516453309888465676033661229001097342958664769167945733883387315202829200297661062683355865035445050032768743300975049015352128476178122511726662881271349585277492032898633971618306490879526434079352077152275933386190766656046982733794746322948413988776189533768926029349680034165293347093166661754272568857385272626057725512354638273188631186708362665040144995015887410662673290188914432701973234434558113253183010603083967865336725666866052285728335725039279882937351015445089080206209971112081464292528201778768021451817517611927061705786895751951381739690170571179476301286185471545055217195694741031643789869452243375678920128384609144485157711211594885409045617345271467394015079207874933815645006538992401377489706907383276276689522980024098541992480428843440425447599040915800280589287444425161723383927617123840593917931012958439474050720691179951177914801061474608076047621901429920153586384203830534449867529796460900438812021345846837681329674093558780361698930200741902122332703023523453367839130311577153515626505031578155355402115243918273389978871628099937059859903190766534012517807610996445484264365217564397579070602451346784394182234380790680959590003782971623731329779188804882394092264523632477985927412125307769986875185802976581943849686349164184066898874001384501093149691456068027596371867481568718924105512642327317432988053657835883170405709497293932128043534908932341150750697811676027336019557592299763019151976080824477933936434261939786147051490830563149044518478130633952728215579492834772062713394368123410443986356968176439891782380972762794235503390454204015838658193903604900903805928266851681145327372405715470425612339009009599543731929462440947636496213831439459740433638252114156914034629345855010215521255256564257708711385349575838677293582919338791495726404746894081387358800664921948438251015988782716645991571662171756443156720549207174475510155210615230343442306465737871484670053166464565768702607979158728445882880760994970059295001412111801135517956343708538996962926032624004073286538216512513060576836305903025427904903607744805981790351477460996298425894710404806480938612644670151658499262354792722990155632613999612057554224229460045749559920456852431889135278080635202941117486648058916741800197799255374523141718046402657138733230830793434888790375011205425606969643452377358812621054497217872418568703798898891090305868413468922646373038464477017536877917072690144021089545507461218416152543738527119229825209722663492935293006361754155682856511012880310057138153874549247736701198779947317014653896797142029771345473972705637961375864573558462185022557615533207958715140373849120511020774374217335294217011108420881809491720406818636900129975442766857985141347966626503340414728250488218925289543641829307087627349155183248780451269109581015480773636851597246193821398599685348923481014190427500974646753922504099691544710393746227416983887447960097442893889501352948065571973381355923584170656517159594513250718541683588558454695155940723585172050280129387940013959053226025028835818376301772323756396441599753682335753681849044722351701514465308430978786870093766157240920475872407472423574799892214398976642216607891845572447789809947311595133176286002791180626920354892343739804038533779064619797790071108974737180650971653422432964331411573009500711671502727977344812585319296141468611588446245538966846150460286428736630455641856858440417337442325006468233112432055440248752428151188281156839879695693467940002912250825238337668070359154272856818333383923450821105691466721040486243408225206303808915512610244763593232304563769667118775307053060849330898610704549879141033669743148642681635163118774938430442952987161501810906008563514490482813940995354981546854980064535417915804248475595129173209833043385220221331635542083512152545989550960684493249102830974994002512775471284026727075481599754050746669980695867243793618386546979266546225101526048803223148720593525496913845662362135131811394646151757535998863989596514487212412609669732127840231177004564710787941851455595943235238692776823502210423165917071811522969810039688124560597101666547228689482915946168986075353609198600122543948428805138377779017874090862012870953475418516627804302994977842936204305750865927594337586501734600734800153848436107324617575369963461851113631482403423433914552332349122659604586471279504672786514124570929112265130189363041437899357741850461135651851111941359217832226664731485087981593735189087379395080147654120254221089249429300712054226432583249502247657782217746084006562398510078492890608965375187075466629015270566199882162756118854834582699381426364856977147997827742015862399798525117718367349859571222657605611485437098121528380362043431342613113820555802381937160134188368232972262341987343942288652318299814045425190690496007203415059528060402103780947788874126503530339450717236157514080379405167999059412124811097029939103163463730547587777256718845107724728107545105545060697787355395606409985569082761985381959655545924197870808429391503221803039999278330429759978546553676999219217175501605304468928513220805514276529852093177054749096695093799385691153589014186247780672616119634045334455300110807144379886031834509217546362862526697956128177616891671786312475786450375344807636664622150819408091471572219183056036055517239398169788692028467062708592634545109002042441798000572337966499152488737838802806549488489985290194854869275666363481046582583893015884549243048843227655035442868999621235316579144984218840351022496425352763743124984784774497259399628297362574945125811271462841225587621487311665178733659262452267054309107841660083903260785126439342011042166720852400889295926476206728237950848764767701599649325173776707889111804127629150537389701425466336096547109639717195449255137994295578297108952514769144260653735526781985430669934587412566988541312843918112021649598988981695652373388584830279072399121861072453780320638896580071312897946469999409528481712229701001265028950092464161789676836248467597980502168311400492768714793807006482219608696756847649424070650498093168910898936361164745331693820388903264002997498509426446171394722705096816588169238842159705707803022549883770276569813794829915294603689191580875104244151340070604449942000513034162279774735019445352872699015904013741584496069947603904357593353217956190513871009055253953211161727395101472922734792710799015828136819189958432758845644164983359236447378525135910640269822801473474107698006859872412332703179174656890935242972040718084983348842455546789160106778338863112471419968750214554974853135153890983618005105050885668948549578249775684969715313768162155396102824542551081535065940706508505532912454766583918544645378540020428123726005582838856708939021984927597835152698221424000932221626524369640354913711049557292127819837639705931210654218998612706277331348718732668023344211059006987786402975891282376039907135736869808041358523215581377300369468726996383324510712925734067576959177829005622911858284239515709795412741748229960363518594865888092077803979290881587110070727711969980056290845113479366152563169256752425387294734695629447984115007028566073546834896630049008534782179294241646396986198993959579760668327189142197824581335944889155970295713441930124581302950743878904254289617402220426851032335759237469766216237778970663057556876729938230782194064728427582777727491344511829158400099792895573614740268295999260780948832252023359138423864017408671813672914461194039749943991761981461197320409721780247573335374463542921642298756494490135739779392622528689709216555404160855081202420802925024842286712834977380781399887863335144510417480301785207666231363377478300638106259678146648561810892180981182812125198333633733189210637390023713167694548564128558645262700102181916648744381604129315271555715997343459237464676966379277818837995873220003064400822114354602550482755608573706536136961208221694746711880227400313244698196381387355993297082436282453527362062435667979560558914585546060428851203043746050363409776251844814390052631423145024075191576325158136931737744425329023139119538383366252365811502542289437034923457836207112011003957196462073030507441373965127320270310546210796098426543718517081891348421499006950383801514560863544595837121540631955285631614473551527371679419704254103977606338415936836359662344358158586345115513942235554640993351507193502674639254882564951713191992957818227665815208971997609603119113025702248759710682300985952001091429286607401067030373422140634914875860721441934710391299995496904545939997129199232763983058631229144013394934800747832449134241977756633945192196609732629878100037879891584567367688171717335405888071833318951679760571431857278565773266516475968533820209244015355850962992483478662815976955977383618061946605157005624295580076219284855035819020587180631560226278842960574780117885004587999909743267891370102611312009969032229974943149175968907934466818229950309725292882856273629647945426209083596784685815178545969601076182693220508943818209475547848604625686539706689352952872062571226892413146130518260933880241321587180851277084242435641732775871857043990339084704548809299129910528887721781319133252700036747520445973224563755272669401473180508302286254406010007762038629789498028944719998068165711027985469311820843457666589202770408264029383828536848673488996346544650731555216144700376071551314163534694228948619505811239220496893614956117087839917616311443130995682857619106025836778061591259323078065591663674652182167210561929742376584656790114529443268311105871906703138246777270362227325542398065776626003715880111378215483309780509208113458098320410366457509534936783790148033916622049860217379900501616710018470328651939721659951896313929547508547060922842132509990417713827244851988952956932162250615774469133782293634320574611213093320414996819542494993480824456445805634399207227738661524089930440239288994297732317925701171152096788028543386327546214510676185693403428524914125908419422174464254589407946349146944156784105939495588279335302174850013789238241022355880302568655042562821670305154507495974997427632911252470396922052185781756463413365253916454622548835178387590245199800225707167962240431608233565087133325760494413574229773460165823329685210521334044606131435065660599163268109607247922005422179218167178561166559036687297471143251417193832959005761538961086072802034217920507612959865296967782770977061489888406390655492107985004450404459639460812825615320180181171075737021863015253745483518186667814624959694815401223063902825923958348183427605985806733173955748295797271019524593798814689486898660733064208494519503022862571368680853271628798476735702504897539738783828323187383890929315728953030355573945155559069885544721569541652967824039965141965171728066610740328819344710428897084061303495394373339448655945552744535825788769670624689346530643169559104489397736376759125951918474383196384685791887240334290278569480323966843746863564982672580912892414603109817813902684228617997959865506296826963215784869875650321252671931946307098449952116170758088676588747059569018877451647629980444819217452862578298556802223517630237074996151225784299346822889690774591932863068193849107164332905252521497963678589080322755855831446512181507008144983154493313350321802541949188726842860643456332736585914753768090092604785881289638896950679030351822134152713089426934758295058835798489897156405081946699341419244373829013284996442375575656335264129688385303489170521217069480014347573822427063436363493175298964095134060834478472213911964469280113331404889340330890279543882948006922991828604843309537186591280657562590725439682951579752999968877578248554789425913348132956031021680918247931026767471632826686383839251515644788841627413270648046437232519448399048938003018284215895702951588809481201486823572916769691464261077149653729834614020395852130863530205593328673516497040919433119257345681249310595532513817328568280504472768331008959904962222631351075759747061347482461570717819786969053496392500141381034944319826484037794173928296213690769470660219370719982358821244806008955363230744584452085013846465817001459928058032833113238459495101949967464301850602946071579696064477017597780067271281732577271020400630909107573397539792014240620265768958893719990573747823597895841936363113621668026026660432170516297997100714721027014411184440473506046797479922065678087533267748812209138471571738767385580428063653191526566750412975879401904902585445076542225490900856896955593007259102938013488159102659243505795272465180912832585194573302713422484585844602871031968969023522000446045888320409224419675188062533164068657220756880392972070529607279022513291500546226258398145503842455679058514682664466735193283245976275483216648350903753422658313262247465716085692559344241784819021985441539484379093647704804640876127254288333444262233421939351844488150008253363335311082125497772009690820478282077466900584296761481195284207359826187646661452410343951986509977079467508635837862480668992713427779755042600666896853448703780543548676247949576898424634229160048744527463616397401279934358824865298796830901611795859076048100463484049766390444304713509224761451365317554336364116664742549150256999923812245694717554590473748927356901778946940036026533871263208632625753327740133077335113727610389855040730471321204827273348615695543121772229472788334913664509371527636263209409566331702338389724236461534304796164148714776799704328267653351254256209476003012457173652274417857766766718473572430054097041751834484140822943669120932531411280933475060810019702588661534866637815172226772483732289507973938105765556199598484278447425557209575966688620468177246117683551956229778454982779169341446363454962724304372212707151350687788491076008957198124378725403417525335574772591174221271319836794694021171194865132752561338955963525469949262995455091988333732300900013405378755648076683008094461443278537569571717528682304459906624024127315155813999864205703618170375267257280768283424391660784569614961568683341980467295370267217004093390255798599337288900475997602925076945305862598797155559432036695559717784844515399167491052135315052515610376251607595853598784524236847108748834016727595070580394505018747991548789869092445894840807130182385804241508815874791107547309540070481666432365163326453033053099369223708560374305945381817346561871779873715091643891621956670802326126119781914848358459866655676510989726101836675491780888807615994184092953972998911562993388365809542475165590166863957529835813672307718992228538396031877071814734712769207830596373957575298503747767395108220992269065639396803499981156985965935762473446010825010945841523679525544797934814467893239272794704118094295746349997430733795789679491774377162124591622678734157622885873086767316091064868440762695407200581145014672098015543519226568018160770628759704334389813171681563114088940677353664678009218523082924140074599488985484210828305949623353646206141236322366129339244871670245850283307544593359435054397387366871001098247565691207094554661673477063290772277076459366203683235222071300774852056811900997291463462859711063341548933138886067084843924888427456731701522892936560662597610280099303345017466797487725935797525038667434799385593530878772455447418511251641286640945544190200108531661403983822154481568854026598262544675671399560947159553957951420015582328418526947192850882996969444649621314371677575583551223394057038709337323258698665369491237621418663343629643452537238119079178375734577590350536944500599286113636089970201229285301022639515682599591932784265206315095949292108552885375549676856417777548528850829628175401103025950797703398857835892834818074978482548282248730290223049490526248261264661149390313703516334404022885140702168560008787692835878718920448043516795398971649814471859361186897368872672614538523376919276984440618374778464806273346909983170073050564950320168248227214129489549366824142422420019649784898907541372027989046919424349146919034445458264664485825170810885588572157579151376808212689495252678132572150971431750279931209326762844898807381663208491099079050666699099706837973116992744141279304430664128610985182155033843566469966995707983379923222023215791563755744349203196573518539294644759960072488882451255078081703266525474532165848347229223788388055073684885298167090524472741708045107613448931201622746719531151737167313257967113788733461756032040304293913700385842478706604272541449980597457629784550393120564428760336399937308961025795211189770176813393942613424834558531267236337560760616184067832039808916264600404137987553515380041840386361464779619852627835991126799732884564858456154481948907210812730875242161574434498040046049961044676595543880585818152560462458315777349797365251186061860754284292447383968880368879039276690442863131752654997314351856007359544431855955502564333356519636416203763131032928625776065245882500675447245523563813756668970706457263125818862387662771988849652485029346682069906643026105545550056912518207447614562990684439335086979567488740798104959790576942579952084267701632520162938822536420627116884268618507779358099651296494074191912533354138963176828557610726482316097461034431151867343286035481532193181338438407770884181188732001622881947735248154769162789610504846861058832759748257906208543755718417730142685907038279784215504746510408448974070004683203204883742343627079357158754253406736067451606924801749613498100024828514257977620844133672778645995702287469756997228826061609077987664495130013017912164684426449664797469215048181149617567581542745606183731932582825942969929352419232171862521417743869608025378008458880492401178511768244853525991398099035674901318522445593860358365380531858681703831281386220842961482743127499285108100708915810812721863839018965595572663101501184538579218784873463344759598264805721197596059732182732887852478066412638409791943548666231878916386041729586149760690588477312579422032990472960291665105763142352700238955481940732873039551424048711579468670107183859937959454073539035515443803542088792341041131840888231480868498335364107795429366967273401346434294492315573100169501779739022234931911541694967046108547973623086079878679613840339953148752072775005188946204629699376456238520974487980875961315623750684404606941671460491089378828225733086912404663989825098887665578477269683783686363368591419155034866596120949879488346602044135626534158893558105465795399964501311069271347095042904614060070289076074081610015626124916605590560000557027465561414434719345136054652202386181068174317484647968742121413888883251113782515758016170276080257494327718600902292008988017253775394050688117212667363452471929902683062168567845755430572579387207704778042494733009854066491555876279633998433520926751944901086522136445697035373120700277619561666514388968376111530438444929253875229600350355260299771874573675864511962444552539738942837884507106802771316620659681090366860561558257623436586516836207149095996728574441951943728678336427301564724523247264666848585241486076248595567179818409561599180903324527795911855455384958191064979904368765428847031383473843994834240897765257193960974152893918030565366746050617755078803285467354721986335567455227792781388937643407990033338411520744980684956780856492860392609341532833545990909841304652678016487162835340297429616297505376817703795710861013296849595947034605336626277247384426409687020976325644037552135740386878628692069999451728504224807021888245567313095893063807501534706428931009292239616212543900263791190465980674006356941202228957472884813449198563630791012983338892291326047532121165954616889188198433650247043842737637695590128772038611785722583377750417857902571829480072187094270224104036685694472603103973773916041899381384284161869110660241542038945268555925161368603990646214905749285164798949150383434704428893569982364914839448316897186640263701205353768153120171308839390790980776917749188204615391728704305183943824392515265003726961828271578654929055119213292739422645728507140674889094898300704059487394273564810130701636978386025727804773730037931809406443756376594758344751599726157725580569519380338707810995373277548182622600381333670187558559186207204835213663344515323304683621290873198132502374076587256599438734111163869451600027217631416538099916156291361695065309854918705530058600978585813130421806030908559488931612883090293142235739482706000324153986931513849711472010396114514410914451065483014506401163381530895399944568339314247303234573051122828007668514594805138710284338635092055176997850327465459776741019285074777142988521827772383349401820809130842571422991808947209384744394319255334865484134686096898023303647802358449289354712365152285603596761938871652440068662350967130891287839934318400957217758538765795061217497516724847288776874359015847820753637021307933591643147031530244042779305863397883956203511491380715077624151488880748480624036508911878239281689556724145046378575173505780234506016632204208245944761392406487596785750305443916643276852544051156430038106290916614738545421259818578724070145044088954100686202528379346179960887243168510371317020568903422899689267346594067306378711914016709495861384754850836213388114912640544507061032302909655497902020423025407279368068573918631700793672309297986670573590443782679922775713454238567560465077480287176744469939830271818623063002689449568367014240067551850507510869823124153670428185001429177568600336171659622820006026015584740315403706178082556653222583593838891990465249398653516782647005885524730781491886664574933646728615884844963008026427090984053760976875390198624064262089655156514060142838927096221397170098913895521356483477953262560454952116522681283749566771934218201963948952490800550973333859088541256810192298527283404432677429476060563658094298003169343451850298605849591873655779282666020291100713241630142228408261049230125568563937255751047980509713136461767907795353934987619947226368120863917754924043843628783461811431193703103345527550662923029364499639491462745270752604436838819878090317261678027995139549963214635611191989287168916830489774774460202170825706094936133986462299713917587140208922656927205104024152082653951572416025696439459138033731480395186672981446390101790575294249257717234864054857593811651941364679464732329195835389481849902324916090432383390177832697437981156778809040699671569517621426965661656343392815445415802717956425290803915023793585080628143219717080418404508638926776644086067889440433440703861602791819723796545866662573453270612237600821529306822209219963292299318338344429627166747351817994932970969954783459086375994915998938663431125765010693895899209689355157044130148322784783079169002521679565328782748100595582424520891695046542347388238722464806232085847733625063105990239416250061977492167409635502486411971845074525571027447720420976690755699276218744654817979645870214960067146259948016932283496380639259904973008059539894806901236385369803245021294430341197560394291649661918554439288076565357340196287755217768345580109926238029047950158133291673831225609793207245113591605571135678961000460012249266060746905344174652414826583296694040777308745830779848388543882561898815937623703553883349909860419201338510616987351483800433299057225590284357980373246552299646180336014316790289717283670544124943296478942075862570597014589166785699807289313502086030714803718569308040282048449158381781954631044006778362127646432560299144761787043190950348826600216879893387294993317407041093509505052390951783614033718406412132400374357028209240970354354345223719063833909126067328742297470139255733940064248751593174679524242493514522107646258374180374583550691964726794434122453991050080115604307786748722182704550659732363785718582559051283788395591882638254134316798253976396225878960812876492409905409921503824437600895580039426866914420010856019792678846917378295454706846771108907442437193737586389885960107648859128866083225318004410028219308976198771446381309794363372617027651906066988975158583591998779014861225919694920075607516330903116174715470931241521689788897179320546682606165457568972749680022875137024688525397626778934189302447967849447606454547539739388080520539229326479198568542301938354877016642243308598000549440643963230484340979695827092930944443479515177872602303845751317647822053888687889763270659072275745121601419509069998726872419689566803998047358516988276318744917289472595261890561544645261388175059868322228857970218251186393986403628478027525003771079802483712707077762130310906635248317218967429703731883716412565112367643652565079928143149748227789432968092433996243325492830634505049026775459373089118033133432124185129187705426480444434714742578246704594279545742033083674326727677554794130606585158580218167526536318363059440807467797982527436622516291792222753271162976139306211452946024381118114889409023285150556617108001601851495383127568709368961772560724388977055740305894102230050140543548213349205812844703576937586477765471929185020571009048473726014025400023651103034052703321742218986241250969047429739432073688141480817252174551509917093283910762320229674016677231790456010072070295347355086773774571752154845382027953966699561411376869664174537816953152704822073619559228503679904946848819368449681535330417748329357715318219536954407685411073881179573960827548359041207479144330223163088623844538868801064804115375942523963563479530077505514677758235776612658778389035115768075509561721089781718482412298452530508736113566541298879508719589840154093217858270534099304909460869196027299797719751156229692943574434073576153117327511595823322426837557855318107986981165215604951607547103261611992712857503685711125119949688616098549042627617219351758135146056539177361679891006153399262495143689605512039433414671369501844139817988993823094758232662773681150040329239226767564674433878631017358465342864950038420242323130283918665300560525420699691071094620906486671667312621730788156610404586634014015986631253429482763336747036056888517985726349245233981703753621499930921381865391434720055927342732764387873543886443647801067686395449715796049937152346541931516805454506790853659462487168847534972937353889141350000901405400162361585713728197996986318242543941479858223890643289088070223813274245373269417966724469284882605380505215632770100354986857258918078696899719541751490583047024559312069054921445768568882901027236303784371310799445417716920857516650642926321554670029207754851930221886217149514913870808546992328188814842579761808346652057098062882524353921117678323817898285959574439654412834924366544643878563306986140714904325097492750173667003045351209943981299304411182650160538786141501115191048513353512423314329355656405144092240202953024404522593266295758723352334660015028845798106900990868920915505138841902906710602955050960585190433031818359298270785014330260532694363666710893603102799603582289567443783667423686874711396591503700922623750554588759463982651558914496347416233971940122220118184576937629027336383340265088892182710364764864152510901394471438374151233339659835142744733510248500850037617509155251923993981738337576464252133747182774100574105470371723017417312880880150253918950436768817109071113876474509918374860130810892434590507852926431543600863229312465662688507567836277693342562934212721420061394463270850580882255026578669156565141540054779909582683937261350991473184039474905960796180989347430950069993981392664355022720217726436801889662894599952941203996183012997551634205501913274726703512186539663725304581990075286555500810478986116247725453132373174442734808737889087230536707496672297219194194405177198231197970729351514943982079858928691734001499249192510408651847273313099710484000912358155854629111305556770393656642387624522972153377513842040320123445825023455675007590234554016522850548204695323764330348870903269172055533312035631410688607156193571231984785910797612829544801962348322857701274758480128573924423620137519794178186887699321802791625170376255641420056886981563993465733585116142643144343962795185952316058676525543410074066706667804032430228930897258758002384796246895249100645448765331122927447762787834349272905015862394819854389672101790597800172906861838955542988462533670327314480671147823136388719964097079873304342286759718047827376942081726518215454929897150758892035575191859847987919693650219093659179518723376392824069394841520306789899471803969880412962499536877375473450820276230237105899191594865661674162543973681652015196888214082517842191546011729733924450558054479215779278997752051304320668568140314120453572629620719358813008772985516930673714410012837539714234178256824319517525288488677441077928848539400085285294195134883958063135188735081409739619258057906689861895025670924758593747313566274432700656321236785473542262033996688055891156687134276191649038141246253471354785301642365970599358724126773061458898223956495351545440844212392334460467325376834226841059229862545839646837306601381599940101282824405706943390781186832934771226318055728082537799163938016463194686227920138988967894826215339123184694124495751402372054883062771989666768441347790798961687027538071504153612272864775570467749300561663594355314185457685620419878511471518333734778806046583280424738267106431763119878342514652670940536055166224137549167452625972221038345181179645123561974783305610399874582470673679792661732898062187762773944651596057720798160313338040860723844661899471568041975594867738311272152318288223587998354376599186678677099289728966343027282451726477815025869545177768833467698185157461696772497765866197538487342252195453231597431334851311936199777170162367963233005404357046536196048373594567258993748317761977805408296457149848522156435609424280430859207514395392361598870782739397253227640207702885922734454353857215124730963443525918334727121838533665936447124354498684276885536294553563610501636244809890791927001628221267144549563494868053829219564368728161342280632786046683588156111525563104033269213770265327892271398718113227077590798700407431770670473892359490896778374481054845996153826988055412177122941445744651445531012760041542113786475151115258540225094800935105542573113485784435290444744470992682926933987945036652776884741808825834779134906262783863851083476305640179503052452841637700642791899696795554747067715535107735127655192578344189409964605528444054742519131951691393667073490707961979198085808335942156573717695606680405981007086631204987942831031092743978703574335742792802497803231060195131273082299561055307123939940799700795488808765568880001929425277844398083890823911895469995563930165326150404273453729944503958732042356374212489504155664875409890889591806654201004206469607538740965087203614349598512132396512983961751649099411642218425229259507428414976843998345786164145310979499177656820981118772687004701716615231193882778250649883299078481180741039592963988980713697803171093389406270188105877579991723982690386837911595211475878043460269104393744065499043839240032610288752187945847552918354311844332748702893410627224646372385264083213320775215391286467456714614247208459440025970356356709790200435131116617291281229181525681184069501300772903049439011371925484378076654847935702396312788319894916167494500604648416577948172580687523076758946385633141159139312694743375990438220143524368862250115276648662161870027661092475393483947625882031231044602929990040432928698130613788541566820978285295748527200244443230054458866993015299724564647502393858092467932813365550275383750349749801756479664762037518385065017740613108875996396620550149421353184026665631555633407425122673022566598492695420052694635675678990674667885141142147617976373170595101535688751153406343277193914901142458132739240901918324924024038805894083344991603818346112698085217978657850065343263840212138642268479027425391505310222020418426956646101621714873166666772410512129284585992382672153362206999527004417552539606663941114785180038690992230547556874783845363300306866272976830226013224381274963003483924800086927709085766035476336652777470495130955697059849120937554057398444796978984767395250149561883796954882939730353658218916372491955609137344583136723775051067679512466522720515090476564914844169530865439168476308383356547503432198422821125232443234868303633939386501290258808912959762668307867851704171436554944970882366951966508830647429423077222968943080794714973278565601264668564908993552088347997134991978146132017191789797741084643590733385909090527079143443395535701601523001993291519075989853324291903302723760180753005093800157173081367466950645904245166711290913646485676623928140932058014458113661899933274544914419539802544533143985696348400646309842621560525962144891091707543048164115554322073276484577785024273962217203014643190963029528235097035792828047243722886219332284173801110297387652875690314326703419477138958474220314835519852848173452690147347344925601332831115950713539072217957536712546668671356596233530489184084597757236224406021908970574822089245943427632667074348012116067618786151160413879508181284250396174858365525978272888826685219313404719154890075762926718935443661124579169903810110340606900811387406204279252418726594076146081597173970053263377622424490034315031835291340021368844022718974522410461539562080624101537854136689584681407388887692043654475591841015089635830903923185980769745219133880071474828541087376254214978357138499347853358516699351763602092190001456647815195703225917366103597179060272686467056623126265879120068973179696023072118274153777858434642766584976231109156909457688920314025085274657956333410921025481121311070995569325959352234350650675821712325215814062183128693644117618000282639653591873744701361026552096817433452056353580231123487284480993913024240520157197219436515320683597737362752511340302861378803011157162858858043131012854563300945277943765865473459097301456455635335386326209023949290152316302240683347482644088746041486255479662082989956202112629729492390828825751706073791378710430658192974771126021787601403216579784594644132163995254659452671906694654918441554846633968632970138020878152153550192072637974217560107608109430490077107886563647050869284649597796551098377844206848342776074062614946381256875185076160256409379092552666991217847607781258281933773142533808286876841116727346426811151765278795628567449292949515991282787183745423180901268557819043752601830510528629831844836354423033392269640573623076424166459896123102701822170908312564223702492162976336250766755610305849124935785159058001201218465493397908469542520827474164673039958013796850001459425135297935542347433474981755978627083270634303536871333750735708876687577598433167592139234353427529133091729053896755823748815464334192840815457284210715017014850627008755674819870950122341250210680773738461429658757070200026056540835625022550358341616931289372013955528730012771690371388720271340105320866632242845824202612767996795902469244818920330006697405071170409747272320034426258998718493491389464190425278396996465327569471980798486437457059914696415162857571269159397756387939144252118464364386709765044123153288048245001953487366023317151693262236591051516924052409755627664142766794983471967081413491945995189732143958937033204758439656601749788303833694442293114496034898791937313619072795631734055845533181941611085262363331960313016072589122072479766728641846995909278453499068843721610131368340146180894249630418102162616466101897423469668665360157174010875343870914107637825136700316238564984013466001793782331296335692295823519326660083686648327178695614224089616685303691416370603071653583300993598008095997685585287738537057281181516037421331860123248770221022184984580679502768123341680702100564670736043192251913266970068525138659609370881030062312428734666648624305264984460842355768828048955352609310367146697945866506132770324781573555786005088138874324001939799721440184002925734758039394272710908955240253224696045769047025879793479050449070238048447276012525839865970041188076691021014137435255102240648241351816524885529414384164636069760459341280298870849384609818341553974010561241109817207840993774658939950973342908465352567854261824679988823855248493936369760630718575128753238225968338910386109691913342468598007028784565412266751218243334886164948114639194111606207956954149944358624850423704809405181115939105792389787005645461117589978814594078324087428065424426481984884202405577530119847413163078927097717073335191947073800418285076042024519564198817416029847926481331910150593517565541993791490723655638436192257757987327950217169146892936973878405241615536065238191092909228026720074585587313137465661806715951301576686728943851668294925163640299881117029091538475179477296856680781879932921899836876174909975940614723467849394763701123136415542192145627488449824016606509212211254224595991264176441494470160846194394547835749391348691366943872051829994082743786555828227199836345821820721464604795266532482548090600445603076738235602712999407768243833321744473284176784281982146757116557779019061717940490024692573311341207513277199016088159747880761148525754191104819201033741926189479165783502900567732544725260484116199055385389887627999901159393526607007905889446630802339832300614554380115894551290452536226349287853870446828872219987936562770081666074752785549651878517280150319668305850921693079041332266649472799204257189968981486245656651238370813075323465957297678892019993597831927796343413296974854319337287673919854721118684344471367809971626120573245791706471199729725253648765429584883602237215820653578307685374849967335144665426280372463550709116821719757672123986339298597884574167749571256111326264548675255022602013554625093580249783743070725309725307914393604701433120813521916589148816131936785133533642582455536653839983841972149676016388594415927710111127353179869065737912053103960979475592149067309266773376773944474760378880376184431901148363183359716170793917412898694858732405252048144151163355135886502764427322501239146639193803215540249469321688046390443697859350330430804570434228342408828484423701094903327323743046472151769663143562527584215740026160962708365360289214844423057959134708915229010425735693794795448109869561472519270139952987426723060816015487154798341682110005437058066007833079771597551916955007413302493664715710584524526573865650354891584599149620120116820111889036536766164015263131721310575671613660008597527713647197232941382683558700011802545276219605483690796532912541705087143152561597729325037745531322213948446252082232406323901436142556079670272582628598494911873404373759840418792131030826004676901249832334399525230655961214651093719413492159731516518564487358550163233481716354002715263006590308381493669300279714623895038888485143205947367179626970025458589729412122035718947486254136061906014656618369653702662832292578512440711413515819956323828329505551959199812271096045979933608456260419353483669947813212639534072393189166152233615004919135409163307000033068706168008429537763712812477647231403236481552269000795046120700484263020624775347310101664102044697437213331583868502221982336758557283808383273934557227463950943116726188350838143204966464233543088150499904915579484203230145756523735030362772761637869352477506727015143426677282319132579825764804601485851064100451126694248764362467044205412828151631281295480316964368882810015048511238879604737983133324972498491067710110023366232077890428396239713296232159320976112669504067964802881597853806458100953672215469370366690648202788364988158083292617226243079135178737188495592066994568401059182450177873782648846635342418080219740737497660990896113166504981415691174203065675112936918205631386745311392355883105417825545530885574472725949315478194519513578793316025178655220779348182383589155025514992473611754773461086219956378747282866412251755807375208241471301085797487251879017912892282619777719177393557182295601513575382751689279623010149929404539475459306546576264972502787611508697690901658955683884715005761159665303852666479335310795949037089667038285979506729258204479014224186776636036869345667407104184644372665551846152190840267672253280868875838650920869999316689503256154419576343346197047883741782048551780413372509494592077368897268148376210501101330454550232047527201769406967431365046256908064767113960369684651621920203927439150644146727921289141111910988540083218703681858186168866891072014043389656759491894678998473245121242975111235598766835550870430714724023585516423888703760296148950560138827115405251224681875926192263826822538622466123740690153474041278093597718706113463034997538881249824108840541316533232817016222974500915646189403668239961953588883698663242777358429694459292292420343436491788914439168238839801468905764553864721498442242187051582511277612497755615566422033313617193606393203819279203414789830026780060617332062495879625272012735582671048946185033625658158782957657457713553684508391864626720323297221462352078173489229916271093786091486448005751668279588273234393259500763118641379573724079299969263538288367543967583821865766586960248093188077842894648641038025574523389718852120972546377801767538986175437695561878021893860270078051649572708282935469400641597670854683576994996140311415790411871963629443493819180677289264966307587644616413694695025114406866674538322323465162456023766098097457006522586929205328425882715190773595866777262627630525598322527257765273723698137135573503270594148153641822784950914853043977284557481357001065106046985447910101888984438982071340744197654950771982180354088859710549700822199163602300845278837149795987164725073571494223395842174475664935568149308604349308370597709230331518558036276085091573806484179237118311792232384011250936900838602746531360826663326611932856584496481587657052660650659996094826387342897739951030945627214320220637507028864906411020714644233204714826233457582028066906314116046392506562277571199241236919977051106992557724032458975079897899910271525370030326532453840426732960331559166992300182763711908822778104770653449524254656773931195785326271249579708799088801823133974588779466166858333504719717732073261719647636788614983104324095614868469647717947585454820489961841072324877723198827541167852208996662057090463008821309148182776877455057632754355783938473648646546091005797485932827900172669370742964512519118313216023838986192703653874973407413283186206379248066553261585952653504829707238946989585175467112908299153121870358363323578848605068383884564457975564364223542103465368111726728717377432260209232710436457346351507555465948120607364590650329249771816200994596002628830124360029993034607704459176659365931513660407426647052539922691191743595326444891069090001203912371321869076685475591590922549151017479829746290606235936580168748293258024662636660019451787109152668963642613542260014171981991510166274336054470057380049196019764589664407819674452196088732314724743246456911744234048817167205793303944004353662419595901463379678088809666647420079965746327048801485356526283045881760595282821633117427143293694704215378254395190375531720326850521151809572446727356471401108515518264600651311793095130701141295433406327001557433300476736022700492572358437484357919195568939064722356881974097447467478466305395321956189801194962512269003818519782555511312876020778786236927909296850240268931824817236142046036455582710512941311104519618164990467601794776377255020797040138037794765056931111639909623314153496530312418594256064504227224526194460735684993043693908486689565216346893060883839039651636793501748299753191662703601643858069831874702711988090449371842206790599157064938315425828524684862382366677547776076431790415395635495706634547795911356332951663378935371617272207271727391080301246084141014454443565891068205686298101178962768369447528483898083959259078971055699643125152752512418264849378321050659808612341049373902216970456017400768880955158351464663002886690891962270033548688772313875126705806067396600536304523712993476842508432807824958966735613623448468538850675367927109262984473360549284116637682096670154996875527532397595251268039408805657692234864078075911725971905868372414762704222613820402593458544076586121886110256916168383847252085863076083857540677254304325918137809260438303805804305689566098272358720526688535199905474668763088771555189903831013150367500114812944981999049200303121888045685864182010134450773892381473005151438389178419566184698731526442466480801504912793461010075827732078388303883818811347955798018418515870882520087042245935299978426079708606679350134790535374959103492709719095653678301222558294151142867939279415712832353042277422237403818893004978428730630645664752000155000646891406473265454301771660478588238191780413456690763203323472552859892242920815224858421628822851337309927008124231814700650716275218598543984224195102214089067735600293140111277360504493801590615955464058193615009778863872555485678436294913515290309573855557262118013276990371521575406990241000243337946980181001353991642293937398910677190635687563184756907422603963455203901936234660055365885742341564051487678232638684900121208838110703820614017527223247350102124827278445570640657193007194494660098520965580031179693361624430220932955011232388016662668199464431029686051348773086609632210421735048304704669775228648844949054780212043141698858765816222336290336881316982515376422551935687618386837425130150756086832153997047249592638791118694432091397548994350947814620094521245015757884810657934316017986520539277672254470147275412929897600324272971864154620724283366502663471701271388418813408946132399616574753561332928332544294124163902024470324776823252063610039032152051621387683478197561839982649204772778881892767509911564999571134090687219968331685841576537690423328641772157578563419700714724917505691559456648891269627598373775294932803085891416676226334734658174166965461013335776590148807194286687193332990757234171152636217139214463116562865824218600486343771023510276652711670739310912180429637852602516871983681411250967091019142148271570477205406835314777518943011654212539286863396048918735167032758337844221731584155412482378780562928286066985669027898679517211204074310561491926690911639968710284431120826432222070259465453242182883983488093958307889227545562642000973237697205393007112130355568051877626610799038176122279913563394330596194397951395150832451157364924577515283703535109299249184156381797978604448086435927685664409129352290833169220184523570121917186788015011712533759308990108973312351671982667807413628989865824975341741820140919963111435424246791780711176653111834478719927421328568397006472608974642345903659878908933470856850378479858879601367400299442818928627290323745856323101899079889562703134828056898948546250719256691529450138525628626886674925187781909433023278871088924227770944216486215770356798156168204548005468531272144512007760078202243958400356085167652711418908953721355858254124509246913859409790768869094942544756465007907500646867814361461155452692570219994052933101647156846976815571899753963162307077071992271570046350232658097355900499130940077637395560162648030145823676007311983637630577706511858614594404665451633358572032055192084608757846080933959885643622087226759155853366624855998527963595811116432886194656661515273816743523662382055720862635609732241512414581720055530001642303884645292899967083601184877734690479467617637408147509154408708128669114056879245341533779059448217131457636309920396453438487069232820525990332352202857139255402600471753467354134470440519122187521367067452997569564526096171083825622255120173304878569830165266090640398727787608591008566489855991059639960303120032751873156673749734485147350930367584207370230771915871880129370928501735225562242558747132290148049877871248668927933018376292881589681932123094635100847953314622664817834631170610696054498432154498719976285982521539836358507701518703050189382509280099893118171925278391903536645643441263524940839207382075915444013431461530534908508924990104194785313058638612856331830099432050080967012571176969170754931141897124791191851789094073182143371305137053676416327765798153315034500867225496618469524264221571578883892525591910274194259557859554904065991468517254236438044602132588584763549008217617884717117487804010059135606437011610484342117575465513073388350209301175930817186168780827430772217265928798044374049709136981282645982458611949262714596746113716693706542045448086708210437259474330057595861030734064716982957818727964221411108536558883693741185237308930986881007092441455992153193563865978990832872939358345175411172908724856297515579714717286447108849610313318833861377304206648620730129441573534662073411454730473120106245347630229137393381741523905638026799844540891519597094059021183533061917820028036917451055985752961099566467024898245953540448757758348376189775281581665515319299514741264707729256473706816424953761420554496966684219811040686292240154376356664234645168926205202759440271366607839330563669235729308608159814519746920869326160662140606801826500241416451042034004458991117372727879857383112574906040157446062785814468720422720490262490523558224470439459955859811891954251363934503116523178655914317987470762496906719047093956501236542483853648148206247611372726764479227748362081853683321181884372992594195849832654453486211653017485008261274287561440263582817160449681770466332501044419939000269899493722108107541024717452146434361781203923964017683061217804875696990620783059066071581051628844013192194771415964400509432465371473423886577859874270953957108990488845231936198040716086797871398460430777796329505820542963281177333222177026828941337364779091393156476169529210883541593928931034004859331113757641188085647576020335888519256920498519369831393647685838857820144487743342389789082073763768171438962240153572729898433830755876251697880583002090414360863190167262112938050957004266552750751758045371472469392364800410208013236058829394167075578807366303035304008037259007048383052429925992388088670362751032913447044912793165240278364621350265355379152241139300490713885017151516875659542716316824539248807995778228970601084637507634604774577055396736591724031531516737859508442076887496509038812659111823259182461673889613182862931752903614101251172444202633267479177811445012521825238217016158928799198211401328348671480553488937921815980798405737489950774530001334103822434889347197654539699690419034085559259556431904960879743323517973622288677817054201615588286053470500352039442352475101336100121526710024664833547561729303064389568040687576333649974850168278698321102245713063419156881904933618732644789380708837194278706012157438332944417898205452258713690923236799050651910060529899540621063604319740912939554228623198784428829950536442483600018763456233628144155400218858676113549055164312742302008736008915312025927515312947609382635378412451857192171937257921913738322305703769231576577841354233000910710798701555568462492000327387401500556065562026251449108805138755048135129747471586855115979829740144714320070722578331428694551653727071644923110880606664971911765286635497070029337730571442317924299773929202953384759708758772721807759734720694015179820250251669243898016310278964794905684405031329182075742313499054734671986371845906542888588452712413040545194604333713461580663518499411055883938725796489811287480882384003022016508008194415467442136197222901545213708401385983457254685378072129227541944258788777378043045928316837053368965339753467052630524158822772143848286108848505451492547785235564746121694143738963754061329856193907811180343760017460585991950319623338051117077650374182480813886813768373362806817925272958303836429956944776296941513985531303522397771420084618312001659537472281553631107107712324193330552694313511608427190039501847268389128839665813343805603229583587976270171709558824419315731246176310860905571102224160689550759777047186763176067633901703611498540108601943197417416999456966384443724347096411479262080535916618334902599819913984750316601799226486998852662479692578265279213528029972044254215955528800253976138910805637828467139483543388228702298677403281215648239481252559714141594833616584009858445974749920795558306498937912613059699569841951717563129376175258209530305056698726352552480734546918396508194034532924442817122368019562479890775916934758889919518588258079431954147651183493290059744309285873803919178383064469942233363178608044828749707425651081384499180211491265953275673853281054826396154920662358798748383015125221155450018349541544000430195977525844795395903442710431381032967655070188637887758419894022822367106939629870556856527264850666043017468103552977362490767680180927494954076833879908996220955638294486576771620688048238097084334466601692427386485122974357702653200080630099778959122926199262854383685276353333412744310306306397559830736892711660149697188222383862084531134582877114744985042565481632839664452665852693483699236306252244525055534598069281935193684492359231853342789501779512063233321774417535849440666892251418461677108863006719189363318311694465736950319267411678831152481672477002676981438702359680643916360229092954968076305064058942606800761961280973732336109636473238635878226151959269484843564379432076046383362571982602466968145500104288598674327320122355326568842595925428061891774457945283325224026650214203272597048945291678216275551813820287113993387263430344956421301052443212062995591312563268905657339577316743976827210400486982841287747244004515148897684183920797552656170988295752780581053481171971035958529792848733780642354361537249045242321312397382955317786865914519293180493620023280615849948319356299278519553110540522776957632211168271621856180309751115270307892144760399570735527591375485865782200815903681546154986731911743106757493822864604955824600034186928006125408859464613515210625974301901333279785882205718926058146652783472089469085633417778333053582387078930972993851310091836674743091506422740372479854621148103939115544615403127955870405443993512914258119007875370230873288209143366010662692040196880263115309338582995840954614809452117316138369188482007717402690251856629207134904226887539446851117925794997011580107082344919451183842198596196897129918543884022147929525233366780523608435671750805792248429178519122458715148823119759775253074507766754015817580029289802264925089921200953378110847212158901435665369883342132316037509407434402784837427298906773507872422249953968375757724433510131324890748548280855498061768620959766327740749729999943711209779789156818682700507301037256962988943625702017944672417167704699135233437110239191840700724101281416318147862353553830851247757178377669170439547012705869773390568681210260345170369862790620973955561299313809274138820514705426551187779622262650818080830000506092092222269850659203255950613166849770502314203221335316497311416028344738598465296893584519418195327055633121085964844664307430231636041804543490434866234158146123510895854727348547959522913189736703358816228265725029816609911101783255925165055362837489144318915109318206201536175304105902879746585560013640779049369017206429232554391349531610884218525932792333903479767143497332692371080300709227323526868133945266597916325752839307208624214632092230357310645354617914090757952254380121149025644001345816821817226407832908047792657123677381081348936533171152422278066755187565748339695309329901253109104502873849364050749502581206754457827155811352199911548029276352207034448332731314646712210901082930443180385586936506291085670808341582695682941477398986061009020048167092234887379465284925429844673451323310100628764189438421638279729029723172078954335567012876764171350782210736385257345911186421601769160315904405779439235569359347084972445675062196153013121319643895186860494026366295188345971152755331245229014757368425398918481670246316490766667801657127668193364696311409905588008757835864089908990050855634104602556899947004471982357432755035567215056677529286499078670195974748864609341310338001233895515888407343117357846252213422938553037489813164856534001986424791474063228029023583018393788087512848500744557425362277595581529552383167555644442726454419892250940435760551669317720293995039406358941963785032285452035240387407636120015159396142392239148226809515591428666188146941981535151119808328023341673386363779465194138926039393023423466187790018635561138124324639426564057975506840898860834670281057179861517604368897176680362880161432108487139010933459357885281093516155961113210021336191361765710172757289343939281491463550530026755211991843937727792947201851429478363114727756902047612953313069174789401255706869401774255771518241192292839473583248857574919133896320820495526249276956370738065393402491276105423790820111255970704044453422729850116895032400443980342512643386765371047750256557215499002869341774704827891179150944792800781626916233954624597501470253832783602409246804588102684906550260309285278334861576198488027496070834216117266452486770407797004689715061127301165706170520244000599488712278967651255642867657890821056268481943878043594053661599904591428632163290552088355026172156946875121788988691568631868747864121656981064701339159253394775549490877835452818457681222029936630701468390605954134837917571702863385951173308123733975241354123240345278124618110585487688486445581340897907723038335068663117322160926626515440604995455271261595048256440055210528294859894233422567672735304150139390460496365515490399640218041138241811263417955632433441001460321888476630238260376809576009281940117496820685805180226517618779381715623132172057775828424414176865399065726560557667912963811406629125327226674834038230937946975227529569635470452934551627567000515422178019221673011252433923390850870009996979788039736407473918160148238612190559678472776133684848601237853540874861540806328372811611843676475672669609481062278717249745784906107382922013125246505162981888295598724631137124832720119417667157413187792494730304891708702193046507637632355801301979538230278199073901938607392492343577023187443016015749216599594613122142477155742560889952328231473801952383553454553304228582926192156726881560941787378827675441084530988516383269752476091084808850730214518242010439776347542831624932337768349519948148220171897842207266203698999397488748022574136224411760735419794468298555173171938095423354957029461360323196779634350114552092759616305500651507113099533427460045796514473327982156674624719485286218700133152247676303880634865095064751063075457574835525069337630908351015400739840751567917530864599029035023250601369017405650756475517658283834773595934199051690311100014038768677637710482854192920058882951846909769693920906198219294246932798229040685189567796671420297360997983228376164160921129076458161254223524239763989687985338724513192059780212640546205885206085047858479724159904076399759377454583928576160809475158940737852658555438298034293067832077774008305768615156167116610373282526166247636672683277571078605774726911084883859896757618307570502143005375482520646870592205082086160818064727302285148960687832525252320412831812080138639172925551063562169771719534050641567327546668198705758641814925031604276767268816086670770798957729095751008827574824678663162964612862849654406011129664181350830413296435182734391671093293010660100951123120249865932194072972151891063160168127055678417107067315269519043642009207477317535234431519661600330468062402374867793402900354556921832375652178017313842834425595572889793129306742811090817665154079416282894724108514372146365393778522046093478868701844484267074221138389200446511749164595837861247839462306516576971853404666703080290397148131084245543112219437288155543172082622252189741288958939192126308693094732772959015229829303622291122408479599151296833181984893311771819900923941357832422144469950237359273064641819900992104934653287491310670048374423191679453537921200021705793843652179865156458775103025911195017709716387273199699984658859025454844088979800861532392381833195444251923612356824061755507992886353900439642536745374883192497926301194895938539236970270799980673491055772541864247631638424466819764442178202924050037454352226174853384573762382014204189969490796802163822878458020218469269546617330486069885776647932916574438745424144516333509158528841105403458400650851768245918778178469876245146273009973966168196400825925859331857142716433309151803005882513896605015446540152182357325019621777695479325814528604927156334862904278755579924515260026358536234950997334590561213657506208365977106970668837028717945371200328654091729114841697386978207747601618391055503569955789510517708327019674119923188221023661685327744704192622225653245225977750676644132096834433559674678194761876531074934090789076031288106754367807525105179312170448960998193613507687173747993012433081272766284736775382583204097364240863963097090556963675017556881806780502086523111476791167997495086726795493747855374916937869078739552990996523193401793271425017773746100392410926317465648868195208584696206627299873856460241239808454827873466299341265833482695309282728738065186573559484674180127234501721218201770278443373232553974188322186690575529001334333268714113320319552338787869331531154301329560050894448689954559408076173490039002575053383237826850338562223014359178430776974707790889821116223036147040584757984368533523133636026497680384966107746477821831674484826330714434510191426691341522803772493309203936020033410654308210941842041652126449526174923863106579781053382827340625366761484678979891472648606284531897383486678421683323423743986436884974652290510704184378535156588125386398731526597272185303806304108757080752484448884921434055934793330507974954793763618832420158859988640786953605173728973779713242573740150937919593802013957180925546731359203361596686097564051514935569709478436252406854983483223575437627223743363236545851990523468346981472176601759183857221048337430569871999770626061383210056360949007618062781317927130429988086236586665501401853536346218347233174818333277226785665651029886879044707895518031419736770743917666521080582015181723404000327796771025245227541456170326519905781920397997248191464221776655742162727996556538467981613190515258252371557997093532076070464990644872134455754766515172764724353392128707917509620186085077770653092222375003839538274003252794968036042603580241432304032432913143963782737715427114840422945138746816586139926490293024493773676991234641858550533092366172771744402297527371977004642749861831937898516066718783557882739561714440503383204788839261017077511454855833783540179179997847026347044015930905381082859607918777219853372047114359047447166351673063147008045431996973081203196306834349523986088572689096841988985167040932747116555466734276547609028413754604800123188848319483281537354056089187964593990757262015145729987401946822992661756168288909992437569822242796109264280040571168173782417807557363486099214969337751280834707523715164593038520773116849850148963001475054600780078501982258214122244399229449592552987145275152174495696032527168551179892078113616967670532124500111612120047523605382343958990820664865765813010072364784033515555525628889551991383491921783391541228526103937369947576716013700726316541467391641115494894990615840822741735227482314806537567536892275475528903606308365327700820000497531321577111334025611241380040042691016609268763534808129798180529114404385527855520305292845340992403011915125330131853225124866802805548393290297136191594155698371125164501774154447384156311139981579063644561485079010609835355216935576702167242283797384633028448765234112705663829236472325351106243553445839293337127166125203998804460503550489311300752258393319339620608757493344147777193231670795247038919238222644401602024051213401832432718201726796864226757179181728033280987143669441136727296004852941316885641205261994911898571163566992748413533365241412157185499950793761116964534427196967985329978365708728480506341140722249574714485010851790252613371006354006593925903571312862950331710276799749186670209798727847335053501538975790178368722536010339416999241760937888145817284360229433381753057000770251697940366765771196095171186251858401353699764363260873999774189969451300026756711581854857624279403363333318882888088677718866975210782224906958082575453837311081044371876993406519900516309895063812285410075614253568988570032105264550613212235157730068271286282091994660815193158033169419724113412128600619811693111572784845609022080695820060804358421533053201314192698621638412252477025996333056669638128126230685375073427513706268760058188450588894096713986527468511406442339132128131944109382503300006156375341361504057408895812171321947272758485273840167844379327948808783504866215741702729905379938986015294202809353208608620119182875890536566706075898406962455757451907823731760456821027704069683563979172841997239253562502024178579203449161130837261311420415660614659790600112963276799373640339214217149288594323353094758760371568628348153556213388941885517234155895334360279128055167679391214610108295152797557649143038962567017739237875264270147850006681877310544060757837868392470602915156961177855241132898664544302274988386263220598312379436910904489478388265066931076166802758179232292626274309415140873137676148640085241617623859382143261636090695953799454811962730542921556777970288649762721966050697982009788383924091238717452329817702337314091815646694662554914812741991494873913032162567566654720022237235294385130460836525531655952321296814173648552453421985270680696961131492656268856691999995015983577033127330782765132833071805189656883382273743048019972327216367517573031915904347732420537034172745184208055681980130768293859198780495506469476285468211190566560816355249106879245235546374853281995508313855321015665152326074038288338565689691108157679141790377075134705211094108580263711277800378920824083287344677711405473680182781239735571981336175669786901911005938491464006613121694766803822550392208268699665915881113082489979714302242839626102695060583929281719924745764672361813255553976656456171215008067893674437651937055755021334748524870712778409332641100831799123971086528831434343156564659215012381269159193422054082054883561472860825706010423735110679235096503656925665709866789079133013017046789688546018264356547731230779856969149034219566816798587942342732229789417410768415170416357803747356784486311807777572121027518716847721298668759230393823933034008357282569882962653707353850425011891176642715049965174609320866328135924142606270798919615218862323948049284879339475680275277782952047746209589304011777520797262340314963522059591576098352147256757375061625533207796402857342876783937267385204372805882149213854592700064975380525844650031292082447489406749871682710242367728561770224197887214619736399252915747506231736551880854989867570819874785931317286056710748689551942100671655197981648242220709004372441167605073248899877728484531016876379885612019306067163571388584044305652132543071048778187404744655462112870440801739677153192075555469157921919664369731884371690831058324361338629739141703267169109072489492695817027761041042840052882247203610037129725527551937375353672262671683825125732024627668594107656146135056888180610671538734055355062966831862309734036038883012302707032280003489064582227419692080678201171701662280254544316634802079904749246950795847372777823074838159560500456599333799151399141673445497580846368910139834424216691653503958316512738730694690906414863398874167510150342867712692659064611109910099710101190366192765503347816619475113092284664679175719787527509082512385948723130164133345223686535884026899665386790396647257850914484129793343044539641980203100453967757722814941891927723651489752710203412964065713504047160018161010740753696313897975103072237908466364511570389265883572001887384917829371222591877666413904154940906730563693618344361222525261001998730388921683313460412417253463441624727287120613316860027356340404237939909662989150528293982516287782918985472494513141630622375074267123719784750079910578298687998519261120415068065147684222259729885685728907271396649347124741525207316382370308059363166231999295644351792096088592538782948893404126759419595418809806799072106781825701503954770339851779711869234888886847677663548985911283628474279247818536228826628311582881970597679933223805587822776757613161068454944141454848939135260363721796844282624653720537333103606460536988338489680583133848308494315806384325582968530950437386671296225389897639260164428499047119443293922754698847027421991051160189938287164302452442297643890189721288194551102525827950401010588193266292983583089181294555021204842270849097488386177062878562026473378724930312004117829049766314886314966498794189307413694466565294945716475679469712667181939838466996851918798645124725574859744930550061625570533202965299721038237364102033814653278374803070581297549973917852952101304406464171673142860128127383617940544356245117351081502128159987766495225575136243916348814344040265081225888515597942696532157447647376386269476631179571864808378151959864906854796835148788326309828527299784591174470554789049451725920334858938419924755433136950917403278676962391559397578462617245847201757768153640095086648415366602969549429115473240361343563288195191469456280755283059134878811512240366946017873280299502119984854975154294850721260950911392489135233615406136374655259285351751923026616811982273672472402800024200882497091377694436687624346932113318130267373081869839650344620845360791375065505281384479650727266923426891214686352392487309808331310598218430868115628597079293262420176351820059336839707275539695605693412683711499757918977914309686718906640999844963648899098841549994395053668616908571658747195959228730440461328953896232230748051530175984709867622248451558397995211826676392397624360771652984140087255510504700538746215586904552206709032580783259629613930619708819972435828688042168479375485437671920807367022176824701152795197832779752446286240481668858543507969706763041421126534710087152137982267346134415697407230979975161211638003727679144469304891172071770139868340095932878654442845588974619495101487829108967625367881126534139438734050356707984783321740124539785357699024485758423823907885655637434213747898337005463911315040639413135500303251478534861255973818415396080014482454367283128213669436098597504291123206957972785066749519799751099669669035288503035776155588508688669796958182472005480289341362653555055652420734045887262767549217123979455982580714178051126956301462003255669181822627909663126145419935643750598358234240311993917603472652196268824632199900185966360421743410909681106340461222341652031147152876306621609463432901724590759924905006129701379122786685746387828373769819794292025402315099628633339069217456547726963200149001947884392705805282527177906231807022794350125692106579737375584399701448545644963834921436172071681958348369524090286305290109785685283503492660201286441922689490489919930472070821101359587355847379299682729458765616111391702184065181806210403368254188063906892037158214800540075525797945190513531475102663555297408116311822110253599287596151160463031034935743416875457477945528856859930007545999409184988413303903278590209108653687284192207709228940631188921959677044884554387192405438305062808917063704760536370090095079734835524286002355394412820788551983941572998873510307808758295240067599300338082149240665070154156421638723643495385370374265453643465139989948292764957324171435914878146207180046706990336560082203641507825438637215598642187910337747945290020465188374907482597592791779351955734681204130290960923462239493690527866852598232027356701423225743920830518860473717756834695890542195836015332012183032671965414163210488950680411924251116078015837252577140408981664601401489776516966954164743794715221073182161243760863596354259535733789099049720126253549951504690197425351013663605740594073831398052075358700493873489061506872194843982168256591027366786620888035263855778037611935895763034827379603030090977549144969715356095977736475317588372645099834238684795604951181903853162741539006678014892662317224949494610665536018316527379036105184031447896446452034900799337152123082243605629962748227740960776737013923298151922174464678927185644453141579843919308746463901725633774594503348046760284778146205422472678599139570350363996459977846245335879116321856989329155457917919308438653098938122760321961183709830190732903997418387340860980513345607446154325105392253433009689053763112247143684384015609434828161098267844877029932613993941844427503320036946646000018319710199109802664006468335673320421632215259979992384014488461945451011572551544415545576170007685761625025706297074678528477481682972430010038600430543371464366290451744121116144593948261951997150491981216037695050335705057525999238647831936730239673677739678054991884216536066923433829743543457193491939546842829433372142180972815440016198018695486914809241661295667028899691132829082472034382223954632731899155416362373358880304422026638659756115147607794968922388828898818080715235415359034775397930375404832885551868886776996278596952020322391257585694906767349786605533892552182576729754544027320637908538426544045056598842170244382865579749312075194598326071572587348170063048544375753703649876978136909386504904180741002788962422864466906888595392828943824122867334585335968710400774814570703284977305621339286825740951162704435044283185855789912268729203518191768056993162762977179310853456502230460936132486997613970473951970868857765302459245147174031087556769508575555840849176748400573066358702309949145000119779419461456226836895087157398168931789324619969943963354949912930905958904464769265020662842430839165760139311695839791722201550754083429942191485360673320026407642157306886431382586651837596688644475572808576485629229869105158824395225020802313687823822885519253153219048373929639537825565510209839455810437102172210207095457706506139070042291078157197792621040832797536755978935682796963927619609555860767504262998406107485927675400856220831328422192411548626484920362944127843942970711137043057964380177633106591381112585596610018297529161163226227354481972568223006127390265363989845986196470405855784879497593368827828018041379968735831379017161744780266228057625291962047541682636302096355574582963786425792413549467975975882961976021683728148601871081287426957067268757563215429757015561712235375372919162106128101719249123381030115058888597606351954189651346484166773479516123625830389570585865810538209080487384138745095078409048536343879056999103870060232627645409069805186995506177272314862147995795160244241589220313403350239730807471130738496339057088254884875699552767149695083888828327193556793907595920316159175608472532317836880342357892142670404029294590288753193939053173419226720118094252305836565867278069622887646080883011900721119050093448613931850411393615069546908162605927168548132415657033559227366362257193234072331929577598810382668083633839063367067622468403624265490305830289098204983342385156644565630134762227119717978909640933086639165051971826715279334312779474519433955595684082420387347940595286046834448265018868168792653633639787467204478953324344951141765156773072334620851493551395573078446864867375767179868615681795501335131919598248817017062924760083473038580228625897632821147668199441108083382320444640601784968341002980852790237030529085701568567341606918542940552250305955902056906535749260903672473624417833116924451879970655483752504920004163915181973349840383723109839938436761900217456955200362770526683196959892518475761208731329288548719635418818789530887090222450143065346299139483989465441364553376914510058939151406051193164977454418535765660806676525327506010918133909548603616584923606569722562853987810125726765543185723797464787199348431352917450265823460711478401190144556676090950962423671994396153792250188022315628349715575929078866515722314165981899053979555511724398665991078863797676272778417452741500693769734847992111344897134413590189064471273036234163628679091432137601675968386653906106237250093400469658441027093573227044598499514076202788393149626229335960341529996962054812606303654933910698052668270115626952291695511591842103236446428852508453604357631035701326430524976127557330116944584936141084289245824325576435591698676245101836249839612221193829012626891603537450264908433180068420041999187763903337325325983538816070711453342026087098469200602682769725778329158830077058415208372823252384078724870155989150530855929720200718143520462569466474494379132843524241477736461093816418274670947288545120457812176900037813853693386286867922076604875745102438032157009728383615370275256489193968231218533698098554493342298323408108616286236451964014809297488281852172144008407524521484545290363897932706016083482753193994287706384187005022931245704039575347741639345524955054811581988394362197685049954286055257998783917462521700927407307021421095076647543627008148057793744545661848211630005595653700441752615745755143334175142018496140253582593794128047420987711302597109505855131154049751590270682936181878374388815806815082810536468738117789139332542165550910688696178922967127366371148262715312756903832490434010563842883095986128009133695106733377862692971540987224275758741691446431236982885388311529116932351434202698318537668867326086291709723452462856180363471926544059910742291009449997664915347000537522366133773790084256736269203359828403707740995444182980354955854549912340719614464921938007168940744478672027884611740330974104409687510245706234001356822714058782909973638769842148754550229579905477817114947189582280085467280179996339859256488783649973465410699208832401101222181191306287670869469805338159163620395922321719124073036273214196872447006023358418168920119542662564469398347419618435228268401429707521415970261281517399508126496955697516563927728874479429461200962897141246027394881046387549983520498950700390907351694025952707888239271570466176233094914737699151996205671308803387881674522893011389738674591554816670706444349370823523004521967349366116340123178168949794131282149175468071116258114755038227469645965519065645399283311822886712342830720066237621796786401562686701706960773988387621408281443611457859665021791793155442937229991012499107831726958559098265092940904153863286055304723344815188781472802024684790236957944898212892320853695540584696826235476914940585268136224724683503170380085473970604569679598349211308506219038855628850047296678153810544000208515445287746219746121836263300170057157791786094696615095369125492337449712543577284261597289421591567738514101534246062211541186736042662753923028282463881802052541834704551910752886646617711332475567063609222595965240792692605315955116739410470407820955644424908749242793068479710966691226904946350846883055895327600641653718916377814856683618758539511353307711193340902961263206987662716798310039717875647795256811739286637327291927828841369780917594682871629717963628723290222792376691488994558159730236541574389956402980838832487855567857487510343519389597603035474337307909624827980184130812921232446020379555595469875361966343887253038472015224367087517558201230796668361504672153414461776913507908805887376096360009855721171406763943318669932134876093621263543552771531206628071661282375207900323421334209859746026060085356983231210170197836167253803339867748999589062380058692988326054604336100753909655790610923504639589716495408726070392439757990959587832571293582163080656344854124752082081691844046333784924113760965861513346599745168423061912950185031080235371885724854152013875565582235180237006093812213461036834481113140821293936548797173391108085439422609638471458433792267104460960636981628393756746786668471787480278672958574365087039425914262368514846008632101083212787714783743391480736688998395364442412776927785098762821587426042444091827676134421455651738759412492085058626776437062816906533861457323154204717363496795429632918286867087046068500736466069784030736760662671964279319422022831787636063054485535899571538184345629131262842281417579246447444761429767041883572285510578009245355476458903238285787240853791680302878058049168385646093937099945767349867423742794072464184437370320867080420208005990941241937722302807520743510389454765647601898703718429252205088249786466332298982885509891765559089686604753025969958479398559899019418435521528645009897053821138896519337006836600764719757413001045680886200262846249228955158187455772301249800856900699095270590189729778421740203475965764337981950606099579521060126994553794805468076980748230753337861734943793697314292303650087487599008145203184192923415044803925944898384731714121257305797127212260562707054258937372090212376063933945898121230811371520913114179455806542333897907490272279343139775585248034803668987101248544399377971743349578311861880177191556812385816829501854912681328966694471994581863575003189499393151051368385681502118846336508035264599330423777570138046724217910922881857225511977209035479572439776468558138963332501408927835330199975969391141724421812429403315991788160436335093330845807794328914123704891345372993869213952558894419448001625174755661029209999660470728028861979202280247348527548155531312927490680743025688530743122701853406193955573942808529223936745096121466552725450394328322769146378752312427059856092991834864535905887466688074245651383594189027204113077589707543532461425878397179248630011293210153648415031228141136309634455148713405852914458205906622963435954651484276026923407651996691964403282483722463050540084791487529713073629173634798451145820099948009983686479314920071838940253506635730113078810353242623226461889354826737509629916323338238756376075767040085183377720843584106118141030942113277528731554518058324103442176394421497170266881898328819363348887984798909648243611229327284409981166402626440846697478762817134146257226705209997560445527729928748837078343415283482678080968361480956379128721167765473605566634828337427613278889407130533979140193538743282338086714708775671100920154290197602386422119440461699216958891635884873968406867736709412394124138468359816730858768468404562586360800154229987739664364239743951918956102237997880103620233458106389029401929731822249481414051831171984174826125147313163285673424412672351423665779485742436502972305858265859408064999972295064737226431722987779215804912581053240630209489122004226700133546214429633691336494687280509715917598413820321346351474627321968090010722413714679379821297092943438042302366081684983449839544880393663148108979983828341602545265414014824783132454204367432173981224019738231725999366597234724582782770333181926394826608842304933572904492356042531049713961900594704836236733939851872975422138390041615626150060108918937727452281035758582285936592183325527547294404683301608948170260224808165590726505565670676159413019243039783305028142749750521364267499309526510258834418933174904429565288861004219925337514744663115424234089140714123639564655652515267594845690374084438983951558278376910414924521030629522108409336256725692084259860487757916199386135455529781928088322861296297958312489129865638473155311990492987957779244195412604057433243603124242150145140820164860470102418402346065521596706102237732104107398944475210303179472925234432642406060588583040716833335418650902306483798050532232843889429225680457596030949634229196643670084660017294275844213228632787552943816173288848981301951055356585448428204876161226585858845904516611710729577336473366727400038481828317293949934347292620689157713776186683619864108955842556120901193424731619774535130796743998102207668773434478258037356384184403122032619006584430464792171236434585736977691827282809270605041285712802795191011290717960271705324612705640002815573080422270750273104846274846932146517226059399470234567280877537774947192665894129712378760226589991112527786644777245526966471525517913184143075129491506338109281069194044108455404461591564797713768488333397478967882675947625975543825007311680048392614844909505633028372573240052408869215120260253571407709859260329164016755021782764099356892421407560476508263509547872686906704998099412580799303822544024903530910687173354847444124754675590450136952839808834448420106974481314691166608809694040457543220361930970603416434950848814929589557442242689406863651041966560078540205659687754000388138972386699988181365220088294075933458784005982207933821022114555790643696606367885030522575779156640465942507276083960363137324339263299396931813090826999103991513865597600581967220510771604828724676677718883092783657256129593224836947511423491498385656515124990494457711124679844938364773018614692745132334964349624916980015066898841855130698519731756904710665884487510207907368529408289837792322087636874941886557720127264160699433978188814671214586605619221007816415996706616447369809615984882460053376630972062046428546599486569528774293535777363105342533884887404158738804768324912801040785900905247266678750357815575179160813120558734441368051720198702573994544741142471044006163559462513522216555841998576014402633873692747697802971310252271772455689679444295604388146133414249101381859011509213975494599831705245080805142975267394859303143374677607883583003150237724188605800332965880685191629120097751549710974234260198193486939269520076647241070580330309039054592986615075575845907834159131150258695629267711922245957779901652027759769670078022929000343289927687705732937090288758883941588786828469614006440722896724312305264752534893765160118196877377100211889834387977180890105522893269563713420952167042219756837145253845704760283487739658770625417348030608266789623805144585216461344791496156492850930047692662287878329763901264656931074747244659865252849776962935341857883576398750900729796737999528558690738097642568238860430163370334531260626185545308738432957047190055933980782005241978640162496074806610264578835962250560056651275263132260685298317480653462754780670434102752161842552008578559466409222745585638868758509943350750655843026332065464596502694351241135213436306401579978830165745758192303069613252602249581173355911928536605312589232918492601377742130213190645479871681978191369064194636502040349468136949182580965320456182162137289977390543899430339420652087418162079563846212655805498004035419303438725443168678964971978257589122575446943113983624038729705738317638680785555676860353272219625725757763540988799726940255461889978102394938782545772368772908088284990917247226938326481238607458937864766334851826105151610879350263250724214957975122971546954525363119545080785773444784073181555060069294883374346814894675141107681443858264100096191983922964146093230592926612838805783555993634004579823018840136536734404725160248907960620852233839074084803385695761525313958917668847971661017665974879086810102635095577478694117998601699970336386993541959532662543041093227145805152529742535574001839822816595664878528742620461820690443892117058271145297172669919809815766042112126307879742359124359972392753447266520984611687641363978515554766006138554924155251678980168315481612467368685974087037887546642834034763643168671199773497199909328772535571798468231975163543673990400743142295488180409382058580809078066811055124593605448548729527414840321911090806355760217133630230062721792891393560133005923265429787325098315274445148004047615306819182568831654119137707340529108671868495770423864579856098894596994121819495143545126519953238620099583616856010070417200362670649591929785390921421927350494377055555858080218736288765935698901252197649541275875979480297764241674137197796318880300344116191545067325892703589917850603553113808799153930460065876512781101948657176847547162075990387439811253600180521414187456173649491427343685033890975824877984149461399273604342056842688158031508894157726419111130077741595824608871501716569945641102734684763099037906122264343362293815803597344756528396465212878384365525245031113097118188203783269983323400119078423325766427554861850022144960009272484373943846087381320932190008481233491643576515156882977013540153974250630119952492830392272979320364311622952379505683394701457998800308148288996522471578403848715187446930062263810419428080076967299003400704938942673873409216028412738350020288895797801271535982966865794566225924203630051250008764612641182690928332167895560787155077892776573613488893970322275068691641730460645123386014995869094140329296372579870508330233867344579901050937555725375975473917000145162163101932049175528753221806308994303073621733058098875254215585640604549499814239705983982788159257485259055570737486209274373941028061437942539926207278667832270276390488508143294385440529356497043269639207180344247523593046107329498261032406045483283631058478980770258383572984758611462321552080040049026215313410697991858660995994257123077526764176768914532873995625069210586528947446551893906686636903333244535007217248299820373587882148783386467474956121103703838012347261603488716708319030657505199823819620069632897606424281587167438868728586878506446217692000504809300178384666042975905061856372123225903790775227901690592511643597933547351076105340957611347249230874061118164552368009561415500122940880767991413644497125773084460902714227977354891363138865036519660973610813884565084168042612201115254400659333993114074486548761083135879894217515897844163151914321487795215525254284564153343493499834947055267164915468543393211407401433630936822588593604644176026396418551813208345056358390065028262084385630524290470982549737186396034655330026888271155303750602930102911944424887853794267097483396883525729297488261870870239599524701656153870185874153899536617161832581527771733314837676147351331713889646766966153967805513030324812061720018448405401743155207825135411836773737978460698948771951737678089342143152274720658694831290638038310532101978601602568487374344033570273094619100911027264222641262732177735082901358245620480388263212393390582298744273593379450330766747574439687265244422703725856914798072863053943397402526507211855673357987675639729546170747243597048943905698388156352761993552473896447989516799712975998362280893232846707419357292239730678309743910481269670445038388773361769128292910662736390552926606010127848052766651787338658747079090514062639546364947918938413501874361954485841743262170993301968894834247925304878545372527175843531021941166253249073927823880266793957113243970122362946677126233760125348630832465733443660556795828503605242496645803697509675731128863478541648077027380100898180625789000851716188942005178539187078005004018940656670449059497229654904923470388259077301430604037828272812588898557933403281458954147119753927481359756209789394280113221083602615339788974134930297421282681717244283592242629136038392130959874512321469916387261006686155305331829474318536198133147999342952818093931269770297767238678481807023786923765910707907466433291237749827121059117076310091114861398871052742656074832692886500110836341271946950601853268317752488561558365182303232674634931340344185675218723699880782130691617182284293111643663124535998239598295016351481455452042840025452671496112803456933513720010146417683201463160883865927001566637249249409501546849147197885065440192366799004541960160632380002548873778139052064508432330921345851926944684655191449709484365777102195552493662502972431992649340344803943871000294717291569547371824392265485193773780182491975925971743755208360397753594602732672886780913860145856092021525987531800697663921623992804543116727998235963861393637566352130489591625052469990127624319860633375995886645438050286397566315522855150643182082075029194509097648928962205831056883402349116483370624432008468930280583849932320028093884614564533161641636832808141460215752749630698238605649939719118614557817669702630370256703337986707657267023767000225874836277206748575340139483934306350285809060618460942262258352610973178975569288807780079115283603480047735830000182546423498260924742975370239194545708437224856688310448344752786297133689380092569004811030664613263846240633124018092530304739438895737705345784439598976472377324301306861644111017121918236666489829959964911169488395597557888798833911162295676900609580337355333518711749674156165619640847036500615656276776810043890886154651784854984128909824199106959792766248358847277464102820869186728374540239395287085733796903041046046874304730908907297463583782157885575635120460071543690877806266220868192334398546564245396987806867871806136206076034202150052353269860772818828206777871425915542442585748654298083453985127726432804922519223821994842614248718145025891564896195699592335862966235295769971711302660951220068194562213217271673087895972041100293999142860474747213681010817521385783493937293728430109137589217491129098245876368006682445830994824874869309098303379922869910497377730244239534196477822110090485220112457842025551556903635665346183964185559361528180894859037837711611936818494218673650335561725029657287992817342647645432599749602700723184057498965290406064447732881166784598477604798021586132783329080655907974815258350291648534942071888336383828444667839952174458231907406344039343602411981762182219482297542150289774004652752086631077439888712081101443261577836108998389055596649458596423689417862192703476754251763765766260128441529140013865197036984893703319474799640480113400980314771441589848869073827110275431319247244479021789134296119377324042442583054960673352073424877004869262240917005846312457900139387202406517990142017526462521359202236967838203337752501999767811569629894373996850295617587426181815563303656829000378607161559529788821141244049244110787941761572360380353132941952957310420425817702686866120281040767470726230958297739213956454521006761082087355309674022874338153577881568268049195407627498691581740739608448084507507903111856954179060990430761163372866126615119839982541284986826480373074836810541495068010452521323810077179715242532017763110481728562795482608571550736703118857275098176892717701703555622764769890718930480632890707615433815354743607183923959389094200289777386465894592762276299089000062983553815957102950947610604398988117997335561753590616988456731320112204659306353719892527013611577370590918185284879625301905753682880599247558274701980629392012349619289054390463283892707866567122477661542125676184513429524721128709464682713437903541581837587483535773144353921795663657602335902995875639927016570525780149291561383157434534383531189392737001809104218002653175915381559504493510133973568343143377983338873492650660111437080835189086526517260640638386410140145394979089134030766774578536995180929763419575852997356096545079450170962503542210609593670205071487221175222884735225575347473417473232667210058555763324737270715984821750926795336582667632423051294130424488080237761441952397230108409572687316308848341292426582177808107121129626260052867621081735259323471047270813088852585581493063268484962404384973159795761143501590822275200524048074573178447475850145607900966400044538589943858249171099099239946102499955376621621238020800103517554285352797848806593658073979194005249290609603356336506311837967239106416292161340694932417121259135655540252955215710879925420775235269115519874969223321043495293338338000613257573852552157394839059385270247831450101505371874407150798127532795862504423571315478024277973848823956109078122899054934127048372616454347563248438745262813596397934183165431361301619596835762359242224097984431083331517019345307340365734019898318154275706453823112362450163242051132007242068397832153041498803300731787336866544307254174678153533700107288611391364379968398748818347818933975915708459157764495121589851283033452492693359546859300210770167651006548936612488897369382861935963063680013378160044104284100200467596781807684421654581675175355869970199823947087805821698973923000536245400174876258473112862562541567258872515269113296656381270918130776141725830460384611863476096895502960356018908581348576904766104522146792689982888478081910818340193842022592260725671315158596522070809474927003512088279496373199753419348326985340487883866020693880852032244053877699986900625385927567143771350424865071068993518709604352695718799072355267158891330753327148437344038703289437927574199817668548896038581623656147996386574699115474150289016211378681409712906376264275155274276512207679367963543593255339920086663183109990667419152318174878378049277284351049178126692671179349573504415188322377143629433753217719998358178694140731864405409698567767714911998582587913012898234937011263941480293685879869819474291032340352697562326328622343337488938605054110932445194416163652387411338657346995527418824129609555877969660726377036299927574833725975401360199077217025929929024907270828857568514237691020779573234810672696237633288624477595682802714359973740481155248915018620177385985098968367153898060135713565808245489047536050269381149925964016479127992060911045375574038155422375513409564195565171366138398354777204849221409271781362762518574382110882203210768414949292431598033420580173756282500274685531581187516540726785115722936126121136988580044111161834760091052764540699059003718628308231278420756592865020969502888610674967687612640676634974464798620877848628270349045959252976282162682265287728663839188066213656718565863193458645699436970520905340903381302445319736055842844903139613333457763638054783086917758050859204813503617674420679651234728242299760957106978226647116417563411414812224670153139342906960892302036252274801118643025329138663308733442089965949323100993101504662062970223313629180428327810700945257542429088574508533734407846703003066106127734138956238760890265619027677301418904284540999296116937100958663882757370431190437931193356075626203165226549099203626956311352437046186554183988876590974694501855701239810972183182799066957815687085224690135083580585274918480988034660760928433248275611008247748363702133235476935845398149439423954374578526076371866689856671615252609646071249487159304511387504368964359746008762486383650781496907017366556583056158107239259728714790103041206189844299978280190141172215412869798019278797531235976694261863376213519573470596896879460206447244556535825024878029911888451497255708133338404628508085456108725083527796684691918391521559294866294046623776194105847668446651772183379551474572306628627744118208663778126953914293967012331541082923585311051286049555331666957511388929334044815517021110890354277872619543917345436726834778543401185279855432663191735811653865699469056310366116713794302561935314044995348194766780338320977523081639173346075219542592531277564073310367857596659007335128218507673441045806703997503575873971115590886293544853914968679718955362872571797982560385950936217072103838816749901945887547338941818276155270435206340519832001733792728047077415913819864129926133840048680935201840215469791013785613447203161468680829296372807084952741445771232166763481971378678807802092740788500618980138245725208411929449066967317157760976936402258190567920204764829035978134836227257512333879799030842842127533988858899500866384064357696513758220922009695139388033652971841715562290905013556011642220904604308362962768131696868050362650062101837465739581015030264013168146309882838075010196876795124309565454419038377835188013983546249134356785052647958932220068174299161439769306290696262693209881704518203240040567876036339757282072540878119938053712744978911505081216150719398453156311964076497672566469636999149574400430673024119053043902158371474655557104039980456554445224648966524627505383489509981378146565819406770634868075016044014541788430352636730281904492650402621276031410009382340356914534652569217817002603681730369800433630177636772123440934350120242067955636403608337320983078354658458593990679186537574670663425628708080707117901205800571230505276043715291269001366996478965760985081533985142102580014818750381423090043954033587561850394449005330208345375056610769700428028746085727836144495124784193329567896242829737784292412259547223248169903716138598666597816574864282318628933247445707491117251451301977683543817596579582795611783662387955342592434190257678232212375375543668692374376846095024405098325358711023485148673983825653845350380939389139241895021881688020896879444920067440258398866209085350008226757681063620776567932684257309510056477802694780264176592199226119239655802663152807058851582437517070514113177771401737293709400100557347393928289701146157348463950285147085431120812841494572160636843819248197709990309606670837498325531111114044172929831952036950051129850437952475604844354802087514623516392761571494121707637730002528409118321342247954292746532354088721030028255028963097031754307941753882452337802517041426402668080647279010028856906436378988696499084430908342996848811547183450866408896566676435700009682363800057742410115824139071903818994194048270911841323637073381968842579015792283536649450587136076404749704622685395845503207961200977934819271494556424563285543731684372885656053342096718106091584602659121912749813761796213774886520603934094727818300144987034301077693552596034380715559288366864908226589754626856784406432431966017211002088247515218595086591039077313523334164284556233787946032231160677263447349237473970467536442524108267986908729287744644367916443152476266851221075131374352842037893573417066792912811110620190249676382066612263825415344352130077426107393552236895776822912800527538900406467981083374525254137682275048550731314867783726241338393985943473709148922853891105267494402070831644005392271322316473880974842356572576560196792721484356941130945324655325306237302614962253273128485413083617647497061370505568272701957304975426424046433381937541147878279624528082414624742372956371532497408490546079551779001328578974136510286106016109616922827570444759637243255370899998662729574952904808849851612822711256745138856838142355708254841198232604532535978730389430004296117693166996897351711701568951031436587692287575890942186793193517680183305713317200187267802276944786312481301667052677244330302443374535448855308414530591410471212912709744445398627505626582602155866574885405046087858794302133119421071107417298774006965889221561714545537684741671300562791035756201785505635181990949404526059390242044369818920464925245008231232406889646243088530001054035927365557775308841480716066516080054558106717066136246382684274969351707424536725558993993733793213749421463055179057579466035778506579650217157034973912400929619470326289032134524791037309215912829293585380632517849876943941052168730881161269783442587493305120770271494591528435929318925767919261681198492075791668763629790649351223400359449474815284877204484074705002333435826914635788317757622734552483363062238680051905042856770891946800662931156554464378368323452110582914299224711198984287185183100777195317708617622427034395699225464602994520988657874127445125256699417813419611502444783906841506222120992323119828430781694932666983694706774880017615297212782617730540623842309825048470644561146062992764573802378929035794110370067671617391172889036887314223283679490901274211748340073684147062875915787224949943300649947468408183366281767315438608954925711762422242922395864006417026970489670937147947125016263865356116078422738963744506028699305866802851366737888517880256623479218416373188802100540502557130219539132991538210428567209006361317971091453482650373798299775722515147907883314342506476347814809977571494140663213651331279821508305050824092427423095423044690636691755816074420514689239201704114368440496202959974969908907662876502303809969014079216305004864932000690423537779515788147949239972456594705043838620161964272485899251156968253872439282561827418874904975392103354785655990917489790679904763400448159058940741013883856888715013640409550171449740301486990973735103246820865385491294310729758689296530802400560941284316659448188584474779824843132013516146522119396794160937669360755840266265282579837317978295201433158501653744402034523059802452590492945261847354900281088589933244815455473293584916578299522174428752249935385461426434479650899407789971169016201670653066921029351405720589894668536295481443308249727112142329249208213451171984439683759461265580044331211213388312024778804427856280874202045348276127953121890654770988420196142186702560089811881813703287389135352327852736004015670396393998289604505219878152244533175993800830846831757107393142467473510281460341699266287872362074412591081202101928065561923091680554503930222108819302844826585747552255848067994660003472671985782646088720179480259492862529263674957691615914515111729562055417347222988705283950745277559534186074897578073266645104853796826598304508546812641414067777014305784197165624922034062192988699814568167626685061291979795012654266211137748784558659889998437395128326644183922747179709541336266031219784686950304067268368008826157743118877460171031535033231753542562223432748839676682258897384164349079202856624393833025621507292858836389983719655735343951516816422048111030496412751816758012972148224363742294897042950422527501134558080399008253600611400944909583102216979078651721639846888259200063635122498607279639640400131099818751044362450815837834699128497712177521880236334578103454096700777420232890940369841793756279729839293101891565123469465990775575302317741349744190729451852655639626630164631399684198612447379510529487086337749003548953138351674284366420434947793883821833825289508274023621426137591262905900030850737854484810125172041750869046042549877612712489874487116973882512213609059460079726875069971364303560846586042576376333220143687722944338911749197884580514267395125391370823473213984257454219983154039835999730447961446653661808248562208840331390145854851064573206091585678267123506356247617508744505023654457787375861364870130363683316704471522294782978537416640228610531860439696698693355035146590593394391166905363748046926899692634489791466608903370580878035432697425744178098580989072893455623807755178762153394405904900976397105687342493748981248863086400081889777337617799658574837523117599381717714391716847108824332302939252692289963365414494073805146267976715842281875766455902167614557778343302052089323788143805057016909869212175281279386690198503233696973504396258895635094092574817581966496841982147844917264020218886171971339933955553353183665894291053166083850324820576354180693210654543484316577621470876774747121938470053224988124454722952463799357183010285549999291695075454436133619167472064786045058067504430721826080220589849316544641227330518390250308176135269592212115536961079814730562310045663683472811325183286434435106002170986660436250213529629525221331867242086332437326179054957448569412608534062757469001003720340118463159010379755842494039798672589474222064261641352555820653689305032119533151878210695479564354827151111465398343175639626269869840590048407518686664757884123732884127893514558595353585369483005269147195885260028218692698117776634777272936581550560192524768913533759533288867808738708406689207037283103573204215268609443974340193976186315747845717774656245112709988193767631997046194132345750699990169591790828621254068801988061054948737864526052725189717244096945299673934031167785913743835061212107837099300136616610141506534568159796305756689510658010873108533846042155669458142525385019220061224616098344171735232295919527156749857426685029026550542123020943850457092403080132178484171519337697204573570937035878396969933528038724496118165488717395561883842324555660488825926464384229267337290982120586419956773534366707170471388676701698646949347085288669227792253159827702114121181187023163415652406307943759752335801183591932739141911146668379670728882666918556238749776111929415583312983967620666484616519566138633999949262895055590591391435513055687205260251367196496762117004496889291751300795291225392845218979433639250080679555466085711813268023977596352077916925809455708543974371842545185492745258963381514997122186103942074738619885155957625804752932814505249737382809388368740857080923695406416868423050871250560418331033012676251445261669244387208619367102453148556095852342880684938032902961356194815545779567500627315428780072927102532393185964142289213577209922742159457936959057809606803080042052994904410643935382625955374181456576364061488975116348733878177133413265837921501799570926808694485700852167723566973185539018027717536592930228161147131908930405018744607445281713802628993232406671785535864555613427507635255632713378226626818644614946631181382643314098302888204030998085381478632377731713695621792090761538020605136181670636193736519600515837825780474580795007511034620715379757511053939200294068739470953085989934060744864646964403095043958714838152395068022081755330817132548427108693885783633499501021416544424377103223791265444770336503256606182498480743844070807500870771519347316539502924219936036250897134642499523842472848194741113659949934071810347471485759702347794144029730710487462191978273635187881207551525430490247899098213081603369808699479377411157853891057750938190334715926212303811915324914446158834012624447931799547775939817305753573306817800509657530058318247272015845885177552326242452068509213486183083406370023629322034052366692692244205074199597502783912239124489505052362995619541128157696191781771438660989399335713544894458039535495733784445257363761935295637439476217440827775708689280307188446680031653684231121811862422564568897948998148676021390790066665042324468145302119237481293554461464450809536188078377511652125638524885234943568833994493131876172855709213952783665130906075280889857497640766084445768230337241673327613831149184881134313524832247590940518033671895068043432318008683969415698689914495977958894546784409672273042852699212891470015126848663090878935088719405028032976782774246199871797277601611750803104708114811941907027065574445293222238777466215844146161134613100606901381018795935683289481167375294924380493305927854919794198122067100825266439126285875865093959864022172487931864850372455463244412240089380355831902698622781151993519257090099659717545450831847918248356522214600358420308881914828100091047343564795504076802379144013265161056381143930937491439035626211047941269873726423996067525699802084774215615091837523195646084906526494259475719014134782625084203194503198634884692075095349447806656584178617540635013813207604594650920580409915837983533109929505327123722328002425292368987348010176434589675302897855979773801574547396009114753246335642756595849088245002998935119357551472718107785515069320389885117369864003828373664041969877345123721316084162937756901946392380221845278888433203802425629441679621465961402431042095342992711525071666785383654154771710464932537744250739444406929077868801956764241128826648145355856978515526803038170940456294932601705384053434549251017963143950988933381282499183360365747561806429164406198877470884846274181276639870064957303538490542168896094705103828748915285745436191899975010191199184618100773720772926822663052169067191722714709959939218289444329939525038197758861293737857374728596760866555399731702491944806633736623329934149649449619301676096923020474743558375694488548723003017120435937135444701591183963376445130258493096255618004400347453253568685453989966389419449540636427364749669455234359932441211372211700956196373322235655209587585365047720182492036465983256781655816590495250729830262153158611091460350761481537903397890894580542775496762655736035268156633138708794267027105042540132728279326745971430529742240605735601174550358188516283209820774736022709405259147599901481322712489138392472889887316767058443351280149595777962002700463891116630339406050844406515969105740700575962333430935098210950961653556508900030006763686453419043767229796498036095199021194300437631396030844898778947749772226468627929224145752208300476047194689912336565391302638289340298095838456258942797456867263967186858710840167415377995833480459005160871722531393081256458943993574756781538757057582827319615298022327299062294377131118285470071585474953177124495777422622515396082193915214041511997182644253214405639116360115400386351977368121959517445050519918581358787142701253663984509735216324449824819192328192269671168518894467394347515590271298195936427065078923353823621832262313399543976897470351592904970395818189264319432415560709885413949360696640932748756100800590942261100425361303086477839432302273977749183305834139970369564161002380985827785940478168016582294712884937979241488562418438655399771056651163406341634286551740141379486241302951110368536100419083639861180489111695134358811768902637358886891380348039628283005652638012721678486618748652543586254797996684978815478981102427859910875431223554972814329427250853244912140546974211339527028721486089417162413401584805355899592068831145396986652650708245036186308771298342466044607234686841944932906818321527122696139113032914323313703243303970962705037629114822901729297898903252019639447451751799567668512734502511670133944480495741989134263694734518684838586093799535238500567914135687092245615373766821553600367641771095322526929185895125144321434519069278313553619444514656786673014308446850573317938392451138034134376154688271607038880463012030687997316169521851135023654157786119275623994687806650145505008794844614312560408335297598076674900154577752980043666459942272370217667132180358887978677606020864753339309216197149946652361497721168453372864650664572208753115554005262892146096143893387871335486808151811970891858876665333424630313278796209260443213158873381813071329767700120074816178404989494736789240659083601391262018051298701042179206208306399184992110166079876701706107129342655561863615919816798742059922332086201658257049367241897752049157997015503961135360512056466548212155513330172508034634183124902979229184849682887108300727353955259119132504640684282498245355991654702024374041681381027237296700301123430828230173096701575249611105729153186748680068676465638989951338874731329401682240887634467047034932881168219349655600586159493805369200853788986433539325838089822148305110941590311844624805964168116974391156888640665685317234260753468161492509277423070235166866643671274434625093310594864300994362081214652876205503035063235483681775830988563439025476494828252710148352618397979227306904785536327000106551554630304564233025225811324167556185579544289013527252086550541249304403021695795032846763504094627898634108289392993987510470952907339355740382144145086737014008967922359268726936091133608433811614038078459591136641498979481570383159615967239917814074422852419673372539691109738483192470653341365225432905526038703582272123351381226074364065434135711685391513612427855790083636891453985658265658285948113039501532632824323261967045482851707407780505271392475625325417557718480717766077477647015674932729617653946294559787604375113529071347787778474274155292536061639253960532877130127368550443928639316700903644252785370002787906475921801891734103943597718848041166510834353439550962536955207802414082115316539140669088286735874200446199403755197345208937703689484961952197046670694209960151430378434781581493933717206177125553486236160181676422660653595541716898587293077698979927653438945204270248845293473109245837170263000964411217969122283981466607606985712629571564575512408397393515025741629459648084330134666307015765726311036749122776537885493904074668094464323049130599532561980059255735122295488343526069119394371501838362667026726911760886346552670416645553768907495819508374411206023855057239624846783556276427698900066265225081706696601158322721173404269759267334081160412374543988545092070706311205965032916424097848015297093215255607059010407212328122657692761834940315522775436551966046372135446045290309730000825334351972431487199594284506856622621201317028565843398718282711822067963401277932161238673865946215058141252233547177639537663555962792800067628604365408170726234339151011423404402999693130247509516758171380704169725707200947620140074231936974960041862836848307242430731202458576849911935635024565990216748546043505157343715163533427527687312078045504491761379705948228983168237270513775413959521501321275958843062033151147568294393742575329837559094733644910236120051786719489761081809915300517485861105572307742196832776633707546170469267052681085247360577669296012609102851172854133254448740332519102607871978718349103206810067349067176053903605132097167375626375954917372188188447132444031754307366348728720400207305135330362782243437713864042546793845649394253179388706260598640450024307744300919101914228953063001540606111733457193994753396229459348856165891844382027693108639833454509557097623450788721968232892626023949249832263325514210821875229539489581652072183986798441127545565037964290490711833238753470410731762830308325891130081476452563061847899432253569532511736576732476858470966308694303292181536674359736143308779332504607426897795530584726047480861394673261958976289336988728483737181080846866261107847522144897924647054688247391217736900690475509231019750674630947332828376988284122249813184279902842991762215597473614272000186920509026500265904189863840293449351167098774043284901161970077641796550805293666252653694551591872445358722758626521472089779260475371468387663529686711708608327391105569928616165693605082825031007187207063329776683601510715222418907792715605960039727515919053667142625157053736248010489977761187522122076028977598210087558375911058784032251962470476423357178611209894311217150485086406135584713119072601237665195982455098994162020938216220841527794509337462274789787689853781302809715586518977735687977722435992703207457712677708498534385683492589237307699228749620823101266535778110913127191320962903349368631364671258915370069479913900706638910763830478211096552896278369925580279924542945674860185317137711761566893435144372624925171013935665524017105799773291298872654741903803178789886028172306273101654415715746709171788911158350473405605061327959618762753952020798122367658781658025358941349052467611826169817423053026144982642992707591701104028644024437437416951764556877141177994593837185991601241766315224869171053698411108786623311814657517688919884889507637765929874497109720249923838767143645171178848982082256057169989820228910962767582806376781010586742711193673931025571948026930948325638889980108442304769010627639298814082705135411766211121315645016638624113220270759527859049058010985815797837052753580907970784529796633691632305296205069867145230161367649426519526035701485355607567010910240999749955395638318240039700270233174064985696338851976807394931692818938324337305905144579678743319785327584022447853967720789108859776688250901660481876558704751057977007995161538638929990553642190695666750482977491631227144742563962354222253457563252813042114484073959754070413302238331153388566407959940527233918183349585608131998909154821782555935846497234612024200151784684092415120519985247075088082950851021887755485294754922503414170601285363312744184213984506128820839466553401471589336189272876252866595073301401836837832740288598890712659747790727819629066992719602960428941348586006000482205412215973136179302618949156214104481556649196572663635634732736318765671012024031010965840610888735275667382805392635518470539431453306696370920672005529181798353909476520866349494531580062319404860486185552099397423090664557584649853311252053024287881892091272831236226020449594275018214080124601052577205560134030791198684123911637458892664996595664912329415960867525907688553080632644262268994584506203501635236799820204348984508766643321379643527148745526776909686713575907539260472097806303424401253947961899281024345494815176361651611995945608545446056459210520325208637870882965120292409708412758669499741189873931200073649295253008743682658813925012995877972045373511739443439447131075374334269228946057988816241175259131602767383069188584855031341068809893078306788183565871954810336094819989856509006579155031570785061279214494692753136843069593599426455317104241738018693364895441209028525158446687479300848498071694540592776893060297074320490016638615195097130149378461937785621965456580335453712182657918922593828626334694929088630696895288809993200285940494354435919164752166838466293202632326993372335043658749511414979861659758075869419299943299753686743371566969071216323990369916217686219464050261305494672944278000990132775471749518411963399316757234161074078139239213604966951877764183110760766128467100454520716470746944374541607448093590554724201023911620175534977357481081971982956799057727197647250377496928097927220990680985926180882599813954430338201702565677959544357373633701363520486223019765688972171551985021669272086262810795574616207485758865904423952137291444817704963723910430734561490078040033867304807209271494493210710083091450071768348168397437610566380048195338479020175819767039308918496076254981873365416124212085860674239851611218432902467126277280743363349077654485867273353139289724470685493462955117942359604068602498490992150442212031870453501071431943800007744838281991664859525959879107907869782617970172416099571308576505145517675688548911666989726554240208717260492864459714078976683758617472300713469128085834315094561840905047257380889360045005878546552832827289115432480909795406802724285051531460076266038588050112945211665948478900220378850917754320291278203849598365872704455906651104414299084786872489981041010070226032214249008001852803145676023016768081277607921008161917438261842906214714348010001470351517108593871550442804347456824603521075176943651818091489435816072948641264676979109938030106186004577194228410607870022647770610394583574824883391116630967353379576636295881578812855252999036339199322272289487040333248767914742907069354940329601968971155157637542489267847431555155243418695648345314363262440017783428034093746172444857300839258711589280735778305406978592170289523980729795272515837428875643254567388000201097060222251492378545282741194470446249144440033683779006193063783061132686021393487465382223883414515762508285577352985091257880785212197912936797479809591218439751428196423224399788402486796275497505293171536887505195905924578539988002265905612621786988436105930094308573528962161676629243610469403443863982626011397938570557093969669013624020272507130989387447821093696975157759523272523356157726512289302148074533655002843721267215530648017231668186492876094018288802241376373918403103734406191789282633970151829246068472402788561756295713967142934462184914943513694328974831835198278026881159818399446247766218516855598674802999729818222695143563902904546014306335301097675997136081527088585701270458512957217722711170924722939717772450073516437016772495139620913947239886681645354983058598051907146257861714882244808497615846461028514980264015697574863184166462206009923921259382520802541394507408763021310425940669278836146436188228956946136037135127417891404689812578701704056149244180903919054273187864987165092420143339412348458365934947407846950953097619420445784806099027872635196911523640229265670676743554488831429830322125950173357524709611731733242803589753654117945918082959539578325833245273641630862664566386338581450982075959101185464854750971671998621022218478470242909902103940217050848073768180095847108899976923334548200817076216065998273470602717266620655359359373933105261902685182340758102770021572885825673553166519391469876059663173909402068975012945916785942045835953011817937760816186701102142211521657782262613623882116949281371258253906985783718819204497842954364372294253772597353498009670731016261879670247025462140111668481353408673461053048460843442097659538209683052696918801940072718628820074285166776527954020029540729016125982833474339198654953974967987955446929892850885071616818042343039823491974251505714229081824646944834998792811664847838926695581985184836382645339354662830310493274698634677288007935457825877412205454882502350826898416606532854056743993879828660551733280082682699264841003215387126096265483707813042959889224237799054148428812235761212690685599579094618293243156979572387037383329425864734565132650062930075190098828076462190788578349802827445563012095263923161543550009333312387447203210565478232704281655414254981697555428727750140437853423688692640448265264816244252852586270512528344864449935233987680226165681524109882817265849157630537251563361999301002663604105843707365798105853351407685193857247873124616145034219461525825146493043004324587040522531509654257459305617513187641836341646249871279226266626877873992466242789521817360169271197991167786942559649487784835188063972589144877584663193337573146940979325514012591785884997159025345643643728943716192372523175099831151304119987381069178830173866400606726672484711971741622032637824492735914867820164611545396763477739948085270397392556146016316642033101182629040106557217354707670418248223777149241066689274101358956084216152495994444911763889929080607476964131049154539111729528757050560691025807961351055386220727303894397895440074480046668833165745552729472171777910155628609143403730306313164592166614980479210845982359172128568027046228481210477515495175956403298203734437333870217721973351847820993458418477451203857444786260764671889338484146488542640075466767635524856200433238184272313367100073109092406878885179221493309089095351223253644994993130780973734550697840925921896684755487038214291915469038347620912820327728510084457835614416873799016071067502310229239779560978099094543252188264745617689261752081193078499259661344401618740384146653252301843192734099801778934499448166726917111428485670436224189886003187224500510413478190742014671592636468620391512996588206206045173262377253516051054977535889875911257801664198425174113977312557581175949244815334236375314871799135428649874872597842020843840049562547191854734826963221176839354492096247942650405792416665653513290743219467867313077592151008045357542205042955278202103229495225354592019541344803819114664763545929824383376212771516817039186856352558673803793234206103414545491728099896516712595973255814593535803880502113026365349627488287910697343434905479891146679368947452184559213231917269886170932831255794086193597137878301866512370862733235791954537667902452516469920957561448631956877411577866240158886279595294077181481648209500143573293701456801965385683816206295032337709930328065593191196422010756602209683705424544379520214337391378212021522037789806566340460879168893606883020315780378756305429658494455869240431730516162256714264559813834488589850975876351024783107738517210963125813109155061628979590207327464195029712353470648062352433238283197697952543253137327762425494209398207828827199374156475191465807595247530765117687997576616440876260113899607882470156303987853143401118861293387036906421749496153683218491068555020820818267145322584886933841874019679871178577039647883360826614919056107455911608062838028445579414197699988032403448251316094797531233393923955998289126993273329935349994166542674134356554914393032164659780062059461452172965998119616784716856954035299591879000129348376308487238744678388643912330320027342628718708182815492390509002896083757643645089252662071784411867106225221435710290429148253982756905723312390062363189420043225033832673093127438795670619730090714734823695211225487104162459048114272575633566040153170604001400272157065354982175708934522190762780894112961284856819242434544306167723968989834003447866663267573601811408880645595476039533969182775344208526135927270891252627139373112370760000598777124088629838159092797297844885866184894430435005829673471204583970793283116657840329998976951226307201427453568053813135682483093383142072015191713778008469149147581190561157466771860614898644072806850383416870115533929016181646254782530190642973840249975237521558026512958762554362824841952514132725365416107232334661022681328998323460311343819451550084243291174169480781140121019596505819754074395479441842584011624276919387532523383458453993469973516091904021006197950621747934921543464993044428574390998772276831933506986521128012321964190863910869223491535078578219604053330243997736377889133807103153833990893848557692739909194440624921272111091675118282839280426740528668758742762983677101657219919844421677312044774189891349523565565842993133332017638088656643509003619824159265780981120901927486877063892139186322977465209802118813221256696662490284205260189434698493766725015678395353130086521469578985546944659152737201146167798423636834500471339355283055046447514442286104242927258442507351799795308474324984500602353168500623354296099455187606192369565449442513040669493660490322646379685626197920154736411200925879795200577669747258154926217677428546540097817470048740155206964888102074994746436660866684772526664367225393819214038857885936171866867769548166928757477474580049170751075572034172710484625802988155672637837926684579473341751333455948125009633796951649197906785794007842104168568615196868345015809264342663037633067883130404357455769256288210551835787595552501487940190088944685460732091343220574910735290246770951090152658668590166582534536017260819701414155111861741163289817107839183144799006994047021665618991500615199632180648037621807695869882720424009815775793885278763494176210497173075716279394856968066455686131081061965199972695753245001660694661722743926505918663842030999229461085436930383885210908611219953901856319750363898029310471442749280986216302957617621039356111621995890072817912204763999863293458045778082873556541273998001051911313912333981893141009212592358240598959948697378409024756708908012026262266409914305215264959272066314401250037772718838608499301950076075965742925773401739973500486616470977734683782570501519998046269420939586285483617757009178403480928650238274532852554122893607891902198720494786276780717694616683073122860676233387586575883913403390200044399915656053486408900130647071656752085736150654445563954352654904483458920510459532037597945256684589301282824447523323461114173590792571471359467241480336955740699296960080897028865764578791369627309378792792962533429251950633620661070556711633819217491137423546016061360428166296799285251398626369055163470771316697198828454226944326853453016613223500633245572169636757989126035874454114308813267065634176007624771905975640717959427530880082019363672094510020068286117061272937185258534412172143010466558269691893695094769421480873253906052815133384386280842919769975631738175373005562549911453003600472514802035363452626885672932729489486183494415081788067175747609382563982898362546704406851983532754998727458780969547854870347323899959706721416031548296039349581563356124762647829105769639474632524916463416254854958533182935059861035921060793978373402391869219990231351214808707101595401154398807045044622732745832908510285728508852040711620526256738073325525087460275507040157338483726120315544280883969998589688868780026340180414902124568597643149283821532931720409249501010071541910300259661550485566795816030696554981320935216575640370971579475364846847177233096261630013544470095847679472252975986465486631715075831613588160806058846843046963961054908336457589815396290167211424119682107807465838090577557923076992188442835282682016918303048382006634663307024442007151227440384612887903530706437516380072623644048795691152312126584991073409202737246504528480786991813386284731689874090046592198792136099975995053977421361935004509855826023440482756707855614611060020566966806121327693481108301032819001193675374351826600850728505488501953718178104211806929165907627868541457047371562353724362102028737179484044077900571317268678323850407217694278168003333170293422681099483865170384439748604758825142903904540751306403893328283403610002297041697280159729315638961091668377772876064934344221501411273751409611651421961939789166216445727790675186388382728192888970011090783533283111087007795206382574704878085143410637261779533114269314698290120592455276059561526269562792339931335746930949722058501225286847824807256622612709810180833531438587337483728696857872348125058769554082345227841311646674825941369222995934468970033478665561114674755824358515647585314944985929537602735442141654941591376772149290995733128623884285538224249499251921593665871213462267009074712110549017334517117416998102879741412938768478671484764726973570143138966840516637805198426045106203092136118767238534807150928952999392078128746220828218551133772886509236696737030325384659014499374474724830016447841092648184106001274784331883911537844581873262096355964377340555427782752731299423928889629122307730709717157845746046928618681289556690572740990650815321427502910720751892294608154364524477986884552865774438309940522436581572867314121179649769324110085080401596351811339759775842469703908518678681557019281995277452383139301137153071223270030263979977861324603417723647723322101194616568233429148500470088482516558013524550544084647751735765708986642952153470116703149480354056310872845335716541264894161718598386652923131666000539781041862451193511400485392614785345580121612477114254957429068400179538433645660563001070338921823716073333791834243085751513444088199821255326226504608648771039154580193082203874873515658317240758667258226285711542801559758680683167153498294690707473087197100560584241799172463716620413254753476151936506328057643833254118756945849954805128370504262021694477571946822766697174877225218410100202656967868638193717962190598236663545192299006994036217490723558445836957230913054666560009804950562303293959688619347603441456420390058801203038609076806828584667219420775335489180704135815731573450261830715440760384937029810213881274926125513807309882424166493894346733583011119883786124626970666212093183397965143552725674051075956834791281777252305419802678558748688368960395765244285298374271152220516374030505214239388890042401750146270902334858863343683158414811008996284437790076571028704727805368913776293513769509038659564997547928661620310268241158631994020400064424616205546961922383927137058504960100370706391107613164856895072582188469390649900044493615130504139650955464581867739509106843700158872260265565507611488439393843821405645311458282632823619053753184955729580557110309739084781604344767741515241608168779181512539459498629649979930176501167598254488333630561010460888037221743478733883500171987114640411030596601060827037714866588707378964008476726588667688642727915631921081562254854932788253455976638693307432319513701905339850440886715631111526353382038270793730242231954408290924235520565919016739061584491146318405148873799494930438461425031933868113559025959804817736309124055035309106989146183546360093340826114408345917564272467991917017835051201643273891332950266682623345452609536009589804581363341862862496714080624604344653953146748483955138553125542200684108218225805563510249128545232073702993279457061075463337857911806922143409521259322536427034011777188093818549481692939075117646769374496021432840371420858941318792524524111350479657175742727187847595081109513536596154433666113879652097690361836483475337365857068902580603203529133212170520826939348001036791721931121976699246512537579448256987156110640378487995468202779693811902468046230561234590458252305376429975887205675472618370475259592005722530083688250577944588237115129343526340347101037107560183476575634044390720140372983454731288455460347667842960438834378628329154304013267849575437443799140369587670674913153145901464160486851229679644142095990438273727021991731407208403077400974119985511738392350897018818583443344760940566406557335849251699627035392923854289255168311246093398348744045549971188826940922864521469672388806369122965471217231027992417148250679253877903083063242979987640798538417984259386110713326005583574793837865436216587451374062329762192427667142370340110891022182021964274145243449188134877791974035403067183459677630230380692720708525316512644316808281360033238425988965966154449750110302020762728501234252243600825794643581212314863353316448757296167519622589659742043331424310183413708584902170343010328461149106959857756291609380219695866359275457939914074851820649303759410818497582970232842699583450375908343851880793481394465236149981230172796175270468567553462744234454867465295222461109020239685210650139619630930678527406584329616463162246080591211861944563999634413118963604603012498194987547238462959825152795662606959562651730767225425460807271719140706974893014970238623068578025472594580287364674261691068580380419474737580116138250345642468341771022097623014797908434140260116687911329036549603350915053720291404630942396900010304057740437302881557417075638404767790003423845139689283328251407137466163749428435621495766115860469289105188883324686458015575522058376019359214822015564215698390360981462810611394365166703244716948140593279086293875185007299001329164657970495447288512705444817450412232104235367092538187683506727224035554330149790653925548163536048531519716296748472849389687189614413105015220494074620923088713810637061107724977360693003998447192771780294432598262938136076199272051609190890881384379482736607782562341065067308445419071946359763923136859046075154398772552733530538160550706942245554610321166411993801923919033063081197460406731767416784648585548979509197221169000321510486513962040250668411492715252344442158932592867865180312634279371856239188841993035603362581235060293579678375743145114788202066059908356549377377893249624737357355789616042976522944915070439801865303386720006956113395360629591329316429534573053680770302125893147708745704866154414768239147748391790251614086130954765012547288505670282917274120659435434217744740932093364402142129577979481026205910253854586277129100749724487079400449574278285052735654253482512341508274802801728678696537569700031612363031628273422152996831133581301899750247899333549025916019382946764038267912793519670714482646580687989677406973535281294471214388986590264237227121329162204771578442501617083316352145204205989282544387657322528217586230839419058027803352215617835639147764306408114390630097462265973911362312233930943709190598049230663863582854439065344480763417282587611590724900630293583308989373938812891150803808027076870328026341315400958645945221354168570534266680101067172627626860189414259328628603260646946743808524407679352948199502425692574963372776437410080191049252291161256032298754306311351958558325374990385674655276502666685067517557111210466153239502878188614680796646769017846329688105110107845219139177074736755821348954586581995188629485305940420166426445983587807486628953176139371615627635909996262292140936317668518620729984843463126380286767865494282801752485768861983343747649671783168137943318634402733048628602729969200426168948225625909272118985327577461233415605222957264639195803679754896379524463515615989460329427768379703212853378363938457532206392671987149632258616139453289716177748647360485711513572342108033188031415874713279796529879125329076221290702637646686561097920074283669760452425936739458782275354939184741569301002593696480561838591620263824761456545567885401171155367725534646437078145792021511162823701792701957934995950910624555158584004425867248954230950445105660888837285482003397227591440159848862957504855036681289750738181000801584813221901622817916978130688761499156531615622597038338172835893144748877396577687593590406739382884081881838737931432115995048053568449628833329930775508050383301763366900965263490181489755258168051172987331772642695337510151486248669627426017009303301508663372382395371405326722484089176745890318280566034416306756963780880078235510415337538740978326017371491734196579136935006369609512675228784187325828577357961570808524650484165022918722165004826427579340964812613882809806651162625830597517279969849178400254379337036320514562285004792940941872245575381210936869693486421767967156354101067122850513991571583833062207864863920717060084101226460061043903706362280045118450090122968756747217772353918485597841783446701232863282636756625885801478544172240179887778270754584463537142709141539468563334368087000551402662635835044310773408162290654023623080771564414298995175767182711337775960465523293971474002429602919194766784334477751789243569722759697326297445796195011951496593925152486072137087253373670385258274977068778620707952688117180602550035802895214736251993240262899356295989642614199017436992283706047458524935165930285377887802042143545502078909853376884168522431854093765642775524817191443772998612659210720980320831487425924255407859029386316527328893916317506903475961320942121143842071943240944870401159945919919832254763948145050540216206597380457728944291605606506948621712045362582832848522248435383851117221505858877442594542956406793816601754658879947938168715899109527248126814265006983497307150547390960899865924978152154299410895409162547712472038897786377811289769326421222924533774343853574264767879447295431014940354006653956902141750813382616127223600719254794450554389567705724992194461519392658695532555861729917346708266529703254824454413390611514143101933308563920703857150474039671424482755289956543767468980928907566141472511454049020436265914601856555715333114000243983593923169949754161147311384511284977769982740350700091953215238682400976169660547749370353065177018677158665503709627020715752060021864214096843039700845343029872878623941953652437259987073326790859119755496099078829427276957582807896177866439789784004864927578721974446207070099289004567755537037368763771402906994489619197749474832168250924291236468856104836152959792215785298346443940787196473054270688769052362576581095584355005852493627540735373404528413494956871643467553683810890665594589784579885143893915308651731965166903521540127764499485067445852676584338402552098089748654562047550350870583176930554517647654615075705603116353440999387302835225058209484401789925234292177246351515792343640528773330700611190178044259722133705317736262351705700337353071264719826149541403171108478632314313070625630742302882565027904526752730508128137407068384759003503046337422495857950381348612106404845741725567639270994838376703593344671468997680384180388343614478403799002502313600348236493183524263868241251348512997723932504121469358965842305288407823401059844512465565566638429515452650209910676541077773761381509166552094357736336605857670249739339914123805981671202021912428735774412514830830023727101520079427302914789810769029383735009612535153130304834333189983791723440106239969986593962084207926695051513797011827676540338384246298178921731374173036245337739207684750185966238928322682012989645470428274959981030462342247915064690511253652287570142264924696311496554340656725385259644519210659403598162542228320755946726083498588245345867851739712390048164796163636918421925720219281850211614449147442159061281812725253504549154900540701182923513606597893387419900734699293412439394339772210381613394169246961827152217757530722280179261509923235125818585409618786178568293907898365442949295104372172889809572441742103569034388232134654538315926281324568446691679012881559499349773860877194670173528984683217620076985490037020561662742966335626889340826708436951922736576268297690068599134261660000814341954778505428291009399652010485639248829319030883514955521202371191492661109943039261416883578303671626841852073939815221988463951684152059299365028171256866931271844578811239825668843162565956620507463244650680847331451738443203942880000583749561822878420458941886482131257498700468302106411042921872608355925558037828128802373812656580448947925073019422114823726862344688441100032700627411288561141414650133590440899307982042711847549016845357485154775439540484384960811062208811842840791773653527598388784398406345666179727819774898307639766851388684889851516899023603399023688362447254915121522544298572209160868890463742307808673053252914385386436351087649065535488337098850291708746007248487766555294018439464004941658570937043466536498929885966118210205156216564952730768313996619250358070698440178663952263642626511173707707001666644233525924207865471247835351810189784444753709032596578090366704246887151283685658382694608923010393834711271429859261531677207053073105282422116887665560422245547217098726278287824328943735218800187439004340980201934108830499081003230910475752523085647808459568908447031652945237199372129575724774224021848829434574554583932127250855044110558888432883866875478325033617349064827477584782323955696257120318859004739116977358929588649868400725487882726549699903745006704463201983691162119000562299994297392584200227984883287048724522020854428853645071766834866617611796973399261933234086690941038547372999118461473082730676218945863573231808336393253613663288756514463729788986598888144507920825814972225564896380218918306801264723301416822725152962538036823062218667670089789432322555269695917053759120649032002460093592788001499045500285186591176248111100367450236478363935268849832118556599899354896170567474055781429826069841815041414941363297033422537778017391343219765236998099297644613286886838423238575139554950694416782878701651163458354179321896936625069500862998083473102592865217935396203315329750811318213527073063625255150651812053742638418319055847468674783758834959000572046582512062125358210649878574718835935260808330928422691694356850873622251012389873239708842045033320446446281958252287019010743978185869107456040567713940847701669498273226078504953566178194724723706382193926245055298357683148187817676137507661728446995042921993704598660796568866697513198315843885820863442003549966006781035190416928007149399551523742002763721399950402906946773812448150477738411375197054419386016443331372386021265161288961411310138138560530139536470296133862257562676357869785332798827874423974844799575189013444745275298401133688896175865983012122165371793260095307768742749211172820075493645597573082134806474434782375351472549254518301324059002554310388842691414264631284900305513110621462501075923155954153433417799235005479147706602074193890467688735389788243349714493004521896588034741818965571386543399831354588100427082372212297088341313164674562156820185576606209059055076971642742695937317782936049891984368398731709925647653952263342260318751749222801366509877414170224753718417180699505370070242177471704295144816258681245924044715289588501667965643969180241538830778820523752094352435364143158670785487486075646291783207770881060985218344638951359858685705182646454652876309276908786836608260502773281520561742375812784339292883108622672268996134376711137851513582032640949851796522129197966717586768719212404617847728230268320250532724735815793974297045910472997614500079575559376650773457255800524230029546854342214216558407755853912045743078029908965961549707555813828017138687684201742067111706797930988525493520024022980687865166018900281052752428897876352565054302755148547535777711131758098143713222581805678942580157821337334832060807076067211721139487012697808166826376080880752158576680114546066552640450652664871216066132920582355047834422508218431336705676123992839006818609313881346063010278045974447915854628677861063704679926746541107869506432979190964351272407015111822811393606097083563132764099303235636415444607771924416211499434553808034321337820778452753884611495311112969547572885155822713354615384697549935770495293381235279281290309341719021950877736729629721710607222091551133829171228128624432731479715113766719657653456183274906921112747839427312519695613154561953902717581813039129239286908683329350969568911141849637600036675576652952470946689466727874401728978785921478532205945153753490958511160470682120629661437918608235962576011041281585150519678337970142817258403966951351727074065127492650780689300175768849664502443693870226581210809590070006550466532119368793455665084156245497974321674336109194714578380848941016335557318058776547051457000223904200958987515482100765975562578561835698214499429065028689890895879240450602478684483978952898206758556808839125721642831065143909842678801561289849694714124563592253638898094660093923502162599806341270990823925653291143124178090169249027707679976114161673097298285608377630869637019975657809280229416741345277545395546580171161959061486849312196327439539039028710393840467409809333431788126414357762432673165308814824289661729731236545318738318684901812030023833985800555750402179427194327452267470037641632946458333197021082825673157179532733848429045289957819782225589573161882693546049815658319090105119514091071282629732831164781073618852807123359867385781458003315469854791392274359965325080235905970728735957018985103417896217619775384257059597327102799615388095841692109885737435405921035474539184543895154267028532774379079486792020038261137493881768006462914491877297635647344284957152382863379544392326676796568698286689384758227922631095499245201966290247760744968881037370583241582523253318025739025110683622787293080423680087574197837936142717685763990100795427340279426836320672600043877079750883879083751026391078791052123540182890433927257468758866533636635136950819691972862021672965013125134992145689114708245016033083656169457124348019685610432523234996560837852581620441840771678364500053166394414742411861977163596232801190236239580442800819462836921227972070140940872686704691568306331278192816976732152827880973724407586573606733019246518448345759188888998778972229117725079423166026877445238848888468749333997453446251080182393611779497419364187578856568056580743380011937664901741686377156108123060790013694400861885654282157938202838378982541322866297559392413285412073912257917840275412760424139437008070782684049184507636038947802956488221535232466226814107578103078697342472208066526068933787742931528559906799434679498145168327730002701529787187810473820254317681672752118141461434691195681306315710690878072683117092268422490279641511257845602826665156578210933085163528702271948606780646562435756225864648440533082743992962191660999596140428568176922983279343370174307507048516288514520478196688044996017553958281103512660768235493985654687630416608652062651793205619756440442288061550537385973498388484666648971615343399681071444380066138355014971684771607870872449424743720147982644529641053018309275630677162210736165153758629067199274761419444470743706924672494133705478054539364510147932674407949862563574467509342977201922704976394332212870605267606274135968291323321129590456357003949410953098664750373638992170116051283893850310032097193394660597701441549033376479846538720039534246853990124404633369890040009842965092489415823545038537858304210761297135518862641608080198417606949437174803516663094146149031623900203834876159976375673829775574486159404467539646013122698735537719017386996332297962122115017353004253272773867036136246816196684866412336610716761835495148941567651830429842686490111996966028252855904511790267610739136847725233260657653027617124370531741913917002742401265511491805190299579355484942987378230733489464161551993005593544387077928554575883544745579592110863614996071473228200876018931545279921301700504180125669253330971883015139060124996980718288895529356247773140616080533851279243085066575122852884209797301555970820887612111006143906267234569444166135378545204374918009681489922112815903482703319050317075888074966470644660864388144902295391511221854181338261973688892583806163531380344175505755748039293658956320757419332252535781831988902545661562869158433896102690745987045791727323869814581708979825721840669667775650076041833605748925536571215565917324671742204312771884077752749157660251523621268345603827010420601087731545341816533177482552307371556097277732744271911804169953509095928569886269890783255080207809047066930333816088833205416679386790279483637310746714949527773291979018426725912488567943193760757507691377706143557434911555669699696542841932217159175210095396882197054467956607726597369810336881122888421880416073892232955805803088589205069461108385034153633242055172202526989410561114995135013781166707727438917557705782280313064388399730514012013664440879867744061758556326017223360395427034051743481417221837015728870749709229930438023434623712831124005135646850168699562552836048670269530400395286640627714295063318479457469036105759133917612718425817556473927029112962723534000101092196143245004602613292264161772771449648152477481139660548550656297353249176785670457039061078597974978369219658010603227022422495529197803653729601197585765410438800830238090468250147115592463072893290559899814428109067735914988204136607409348021043699802143165609570594241155413994840143139683158132328562166796685224415931890453385451383881517209642484073141337291469202214568874005958331837169691125117949550002849784268430311870904486019382451840680897652652176465930690237251666972708841692592539586027528563817660450907486660942638364855816780520160420149795894235497782351269241206947676738754007946536803104505688435039521717120336711272336060416812040328857532928486545796373158853371168421063874425830673697374390402112021079199804464263062571586252065406142455383270988115092503471780962615863516716686687497321024214257814180153734266533474920729116220119631539100037332242825089793631754506403346171396307463298996701405079927237082624351533661737020367256169664550719905180479159906800912357982141230175841638624892092851071915274526901043425353339282702629167487427965339280637127273577119459493149672653184069562370821400636584277917751938830644946205762572142958292659241979632462233159140701156781561808617138934978401476292065386249912504335303534603918430156415528622414104074825193921800722168084234719294734623228345604712869549823456845508142759454022896665784763231060261297913156614276576841359444814638712441177478262455788515316197638227559084557471339717965908380229487175579830444358101467583916490500219151325191644584689649880127179653174082674743049203494111544672250069729984927553789019783425914699942352911901938073440045926077784368828094964413696339004157820284051541203192820550268782550654410380267982486343291278625368320957325808944244576645350646091839009464685351407445721498749308353192696492649032047426831802311081576201965265751071227049476684605110542696968023264282810976107454821144274065330475538990831225759022993975770925007133442975138962031783834981924828685509933672804031240600364592051733023163064622710402786801597574977323590025274278705353925974322271872830646254895629226272771721272630472222298800360869670099049192864398699483813823942534702687394856688370560629675896604659622221274487330411000722293148739770618466462695398778192296444282290844690339818790339512023708874693326585287900478983904673915941537564343406193022621452744549400716905952135022580993277343651215387153856472753822841433303951242447019780272152898265370296320743563051429067836260966861866812996318688463306108424159519310061155970075043770273642699979361110746360976083341995248795193122993681083363739450385444551985031257930663452107485577543778667289166938985145359199858095626272578725929437861025623988432663326564691096057731150920083525654596795762531671469874481863846019311290823326864388678471443000759817286744329305992423321701654286673432713111687405069839500374628589372649692075344464601361062638408116112897641121429246482077150189671919359654525912190690981352825067955478196297152257573185970470948668551596310014041904001328944806521071219666312327101238193621164928456279219773714948826272722361629754110516360088389910856540530823479835597940383519338441897237761863758645896597960802740105972507370940113004751069749809313353868836300460542119703912316881733717883082203994266746186963183547105419763090762911783768442803978422147482644919691607532650840584571425883441826292450144209965194065610812007858903735375109653345649917028054313499409800127827139783733412839355465829847732860471539258113493465589111181941459686768215049174718406431883207455299192885268683412675135875432332468923973952197220273897243918583837452151573626644997826642511807442048300751501049504825464106842977186130715241840087295354986703828149690581617550895490879262541678548737128651904027987089770533153318178289944371996835721911300898594236103038485528853767829529293699345970093572040332801684745812055133952343674049163056945741630088292833352637546677262488176558812227183962559134824402737473593703627532818612792160147128012710489325092796088098888252283419917802625335507889095548437765621577973231273943054031962070410026114187920047417077411745752796743443551941410504313275612630169616533135643407402432932449384368996432846441688365784605391172061393335873751907952141216492727133470414235982087804934333573979639778775109831638385399943697969184868079973680950457525696227114621654390885155222683469390626214091887248862041738308021776091368864962733089454291527285410362081933469098402771058712906627531166719663687851642125055570265601623689545394368430397336441644374989743694036942774509767270297933430486893698481611636506560369733660367164504951467088710308254287257520802029545781195056573067533181413843918095647502096060891683361646613128855141713957541041306472623639478677331573214393005799827144003388467813642000706151990724608851507768425200812225974463955270042205086926950687708774903747639532252041247285983141850823641839989156552008874421607448682769637519238155328272278119090211738050466792510866535470136463066723967187597930185122377810729614738485531511509527149033412177067824102809875703516833889322224836690310859863237802971298595016085721040906312553606318611244502217749833174774049578943594924738910919821840752577661418256534165880507871273572483446547834643000876895532676530081223778330365183089519763146293490303506821471624819242508761520036444230175856168943165503871821579356855940606831652848842688553070421538807088344844527635506385328693394420223442608565191131097224600290357171014259711525805861461065617696974954216518662172748982688963014054539549864412250079897786644001872893050835310953605836275971304700587437003471226038909660450716244533069361461282594973359585013494338479874920385468370231393833414634493321837869453050059116339696811244153489159559640416533597817500612612363307727037958975250119013855079653427085135700846770802561345160708705046296339093846740347861424337373528191094868900331580823014968690304066892085586526995593745411226194883275586048610955864890116807999360625875556363286477029245168271891202232528089285200126517083600350851792141414395599696758899328727412420497351758358446906922847707339139791051164217542038909235019670263954255607336016098319639966185932284420976543892970575959738815671329075638221059766990640445662303178116121432807097506006236801931151891673389967610031337033754729252294921879379341051044534863963545953019529599944563860022811023261156310231832758370549012072265440943354277022963916972916896438415640029943209740884042395527312189375674770988943922112252090140483724032723400017045213313194518440528689068611051730169825303046036325964679290210302651117323602977949833747852220965516486220260066196695523694859078717560340054736399391314198797638890431015596964535476542729336121086978242612854447517914270423235294526576396719935264318913684593170435991585658954191762361707540759307733153824440129838490575094807372100376061482131064055439251228276648678385395991840163860790184463084814084707629213322505316086987003092664631425456226305591569976907053628126362570253991683921785284686140296392173690610441000843499781230203116651037691739860668218233099792185814646852758666821571104227553776453668824184508092207926387971577673305997823484585172624143163663608875435413938516771851934710624484915602234908130510921879031041738131550108408565469737553583973586111760869904521590199148829156611718031288792687666814980703181027662332496354474292993951824266353592704388730929549397785226254349148094912443590653857061677696811212485464443492804199015467575009413758874730959697007254200760670346511899536149493369436392275877911014396782974694222354696384736211084682326284595164344433130084717424076877797640809191932584320631618852883844784935656722520955317285821239932940664806917276862938097980233119040403190667038364549245514382185030391839204347369367878245518284408521292576436884065480316526280373906396390230634794352921856514126132595000318061974250271329189118078753042704731602060352116006274116618870612397660289601569154409042068253193497766420558668366309495120538862274649463774720021814091653846928296243727436200602465026091662842131606707416442886371161709291504125464569809314154419647556984101501758212007270356813300241376171757662861523712195249414582479646839903463924325630519997356272863148694778560029020812245129797556098882160748331716194657353858669757714525575554777380471744226336696943905702872878126150159745508080605925167063411498188682206742549824171463291883689933022038938370769415076936952180627301616569830745775772027215068342349853245161963785565058928396645902360350228029332816088974702434046584058175982286509634843255934232141543759757350576551332582639282489618652927460863859295988850196355077114452678714777968328265293411842821813536315228543807932685056103149905416065688742225722307037759004007153749517759956132429742434535487242045567323681233831495505832500352733210114259886898162445982422891872612980350502001608622526410566625600356524014493423881484723046637089648680045450753170470908769919533046850015473371571951682966441125825253610463201213807816437393349831052541727949946588152410830084453579933874335585124418999421376951585271382053508645343322480584098085348508064874048040120400052164888626247859175732598949071698957203601686711895296981837624490691883076503914855988936574709053092186307602185552600150232477367792432031857441760329007404979668752623804496951176715327426636511288041574265890401998388178845428210857706028189593015145853946372845905914866186003425482971873273795774173483789284543059212515167898587997452940920973898116445553766334537950500228041885242869491695961198508182382949053226710893431409499019378480100115184715090182844693607306382949479747187152282096570011006653322388541542970453985933727218495967972736604170818831089294936977359266301272943868314223303289558632974095605613629073161682183624933439472707489341218813756405319338062105923885230919326138779619320789831780818635664340061180203197521435013620863431052497419736663470260304418813891876255774787969705024950772050744952874115700480770573398241369502779582292090530650927485180013802843991985748436184188893290060793910576872812613759280019001293973323468285263182788300882008933710212540844124715326420407127897665706615164164160385360259896657661457647001124430355725571932311425060728081879240054397411552090126534488996610308822200511264324195437435661379162526863083917383297771604869225638028683846757896154818743784555003850347175787151610461639225141754314708786976122796427575238573611459005947634114635410204144344715392302766143288744852560028179950728804327150329669359883351639676175316477988241594933552829245454282147113473562925513510308102531762146111333825713326035091339062011884632216362420756201397951156277368943607724505079830132127174444148798449998555366610893914946409148751207899272387024013318705951888825047944883516866403816734380644749220006371067844149108085536773867078638033998785010920532658104808453398941320726560049251496147255609910442879829515592788528950372610182382599398750799670508400145163032491470529523026717012844064774442866935607599838044416182689514341882258207606819017803094638275779001695424014721852591409585647764926100076758292010504861109864376535228601874929849121891656179808440839571560608023388618390041539118341339710582849403997157986886658227554184428248885971774114874896999772690631545628137924251526098755771071464321096733870439362281225001593492260463500527286652808402210410949339054894141609295121057803740934947483893424028637629163094251156517438613738686142724940342705296505069394172823395872548387462792605071134077984021038612210485463136062114575877371752176978239061187803238498860629761586318664499292549465634707574189493762292948984133413175394431960569833185399178267118809121209846275631081432908766635199255478367334229170976917624532266913464672103080167784295733122115182534638466710918698943062649831037348056295570361998128143993950168921174690196250413118471455088592140569088424632887933305677154238516214495717469271359718476935707804136602543451996107510707832364077081211911391550213362188166827365299484814368751700946002990986199090145395880802538712448158279530996694606750515830822875300736985105759408287031687829681038934455741383958495896711722863788659618216845674522330564698797340678180275837876978706368783060536343426246679448724320663739451430491969705568713908194350569492648126398532325750809470593107627062870614860048829709384589733898556360181277881863890732092679306079420838447918719225360378752996126511713399856911034396630287184699443010373931344964017954888671510700249518904213369692653738239326174223202534160641837710306654866311021747728322798066822584723308914535722596985378870252308025323916744036034946741588730752042663649490371541877836499055036432461730770808170823712757235269802076662889844890781989098138916360240498456610795063758112288501998333897016142541056059370178335647649531081299776579834384776429438582713815840625083622693590840642210431549019703375607228893732044472028866543674667650256897343381608098350673480106587297201763684340903948853061011520079662784548690282882283238660557191167197719397422391533250266138313677815135085730192244665630936292693333919805540602393240980173142265150354517905842156371135416720400144240663493018725061969036590584593857331194819924335453702884606599207302830203639278360422763075414134099394132200630429917345421467659634576771543725338615423008932231937357545209550166494589622976193840847061381567655445861667155611439249342965368900433667278003843148110932106980743861164840483624270744622830509602948154660656489888172732168197078098589104629137219979064935886393128725341027557738096076460825845792265390532847429192735548149804280655332015139392736548923292312116204921156544547815113021924668537622816065295517261094022852305617019194460371428194372356105145662043807368632684598637876651016581431144295967477659501695572797775559259992608837154212727353191651200478631243084141649553636375400818199286317936943208464925382358308978413467041336823231978489181997097535356244876300103897373534885122064001790414696487519989212409183790254236498361686191570285851625876089090976648732433886925954834037838043117394961358089725145634931787373473126702676573491993473110148364029093186154725559333878574372491039814237512643675648596195248971236316008645969827364168374911993942237208122224249016882535355795936633098144543465751269240733468922131425811102435072676473165528521310290705804610440896862672731857156100912850106614513978878130564152765095180044343198967140777351459084363128916253829099554565545748176218673189090266485494436592414574049152902278322518099489962523125855495238263829714850081566835333789001729047154219200042419938017633831643430507738186192911290894054846336521090140170451822993774242709771780675873634726759276002059833636957191474204769312967075189096674205943798410321503716057338792248867533518295952783855354409150408375044671940341343414735195326381230010358328191762497401412670174268020470093314398488278826075767629831789394965021314557581100488723689632262048104319640067731229415263159010216774796567688293411622102629589089490651870063815323465119525268626171492735995614389980239521475937894977861001023967497438615080286431723203986924320874000654610074471891145962217949880485213907714491808806218024227268456429726773656429780819232182863497130020682183280433332959892139730422480287029238190420125698619217932132559987867900043824141383056560589599057619148727043986478324135178202070553699224089096078552242539925954002323932079283107054128048952169625262861430195204708748064258431201185001506514152470567707527003808003265407673415817094757740828507534261412247637080568257214942630914466765262565047391120793205621768314097443913557766282629809564356039105703981988184492882893871029956068397752052840630467034393787946814680525995345533993601840693135453332826477167760351543009626711332331070945969152066012422538952881547389971247592561028807099845262711484569378282393277903054565297128168698368550627950156075127240007428976682638964471469314347506050616192201400954443388900936287637456665693592900457947567022556783894251804492007051827162134458236640629533876501050607350795793391330736627353025827826820156132130683464073507380554260302955860529652986002793417143145249820890796305017627005792743222323368321205742949045059574395607344762082565212270966218996507382069745249569868502996677741719466818855514745693037569603796968878295868414522136565412184137685265878691052517274245668508410308496644582445156617396124594612776261557463868562206924064182513091484824068607117456651300854928261202567409533571997270049308271417761213972881994070450363322124306136098552542804314607094739564677746334730106292745637032659531094735766567229216670093043845900041510896797202215826562228476440222096792502344518722321157907845339577863540961655467077814346355103244106959686250259836171148925283407425052342845803088899992285535145472095166052284218645510335346159361236038418075399617460054180281430451311535074920534517409855174648200640914829625337493509083957142392784422184015449590294240284204795653364801096105224999464947843287936278685927830931596403111377744604439372149192562921565954023315830797223788090500086263347418030722973878221073007141994280059717144330478513890425010142311858305988357987515889714534400434706047806341354654748253768512906353971096562779584109562575195956858534221829348321208444733806714353780590170824462639132667455486659342424429552899396900330334675178865381339957098073286615671307784711646927673155813014503325280771842688170385755324212097864774200135463910058143360361773554248857944306066666302335211176198330808170335853016952221613039980272405929476732124326729934477329769038060822163731851559611662779192660439122068256538261366712360481539599634429440033994433760765231624095906110252305495393869992586028748343882248356731528603832774270777598819364662888651804777961417971035187520019440175909939423582274313095588510989596891831521916689802972003180537434756794879669238162111746573911928159009543460673392552594762695243386625509881594215744691870670059237328749620419279041993849903150426881822966267548497189309948449579560968199691375256198136783361578963156671592913717851391893930607625321180175323598933199349370942930113655041763636123660424935702900465942778697267609921345873205985165230971677599109431223385073395274314278814130235597800575574665757561486611431738681654526325437343951541570647799071824066671775145094407586023214026608235631491809853763257612083372177519147901490864362247545488406838350275722860552622008966498062582771849619958992534952354745999012427507569030088197971219971374533099613972138928373939839854772164533717306246213097869378605993169869398147088239746364716927677437128757740836885237111717942810834915404870728790128764390631470945230345867797348482348376707958219699001512147078018802566545638758139402071179273395487154192083499761777163993510091694899941284036571017817058279783600724913197458268443889135698151648061685317312099429473402938683419373674125581199937819226021481163977055825404722261873178388181696192531379958368014701454376356214397349918001362481777207510426257056695515196491114957226344170287456856147485063411356423740823701098186115407014955417891137963486769742838813968253001417868665273318847071238392187552746233510201239813609982437123559088740411476973647792174248249889788786080381035097907431550435283560836381554643278070651453305870947228940643455259001479255347733188579051889941898802418677862923299045774905329320770069146172894251068360216824899194407931910613502171322960782176766794989222859247672116505033794504226264159716457598703669202361973808113098238531421972451794621277669255828180001058482398349338712717073212809324218044733980480091605920415646596795169025851987297407032042025494323749622127945688760900329563975118340984759002375321268027728797722603026667433825870388422039218172427293973540500691814607231372900881629774441169049898133408111559935547382561895274998941136399611461507034921245485852085533511788160336427578946455746894794466031220302877308256149886416790487163094851345093395847484970488918558692874751153049035438399677092253126495165255530237205332802689109853367658425067841390920290406314026772939059494111741399679945771970488381600377325637624748582289706899305695497991346060420638392465262666732343706684104560375261866459748054948708420738411879967457946430919677213490674080134215939634442763627756755672710661591142518326427667178889537176375808587222444056152894864277621892752551554845612664585159408670930219942730898786155082373252489021074200639606373239052622652600832220254043638019197230748306978819202486250813843232136073637466585649013231408230303050851453087758689950681935759882322201925474134440408275264225893573255621734078801541436006507676433825818656337577821784136095898846903198537342472788631226247472103144384365528133404586367749504020469437769867973394031423643267127960245359173501195393681525439620933040774959104234351245866728928658258497424587815056422856203585500769953581080753404554575032381614156689029110882222504487310205560756670016460123134422826180024951330314925310580436453189199713927486245727204072024427131130143790582274339687259119665858894737989150474220991093120837633032468094548024491146451887771211640848502179632839089155447228878303372962664033370848759374676980188608118096829905339990464745646728880668816650202056938572325042235601845205339561020689567834165722791378897163559747653707788860727419532553993298630100832436174738973365430031936091312289568431452105823352409195593259704737126500970177794013277876757777700983028924890355236971433328330810250248555587463845673043772157435313750262656512495589627388543150463635108100316682814545707440582249739805556524034711624614199115799405512642283346363040884432378280377812179365369493434914508967527213198153558902679410055164179461347702105557188794003091186523749442662525321613611558689830763409380591836089100950950658354830356729450724547034308804833493641909031721806548382695761340229157770323370776179407073969393068237377186319856674240285643328383691431291557368170232173354098071839823109203684299552569638217175201488851341313585960984934352403734922751053340149121441793290689752118891852658270231060368000043492003603288727677411190321173389068820453472868120009858815516902830194142215502625320901662452612433482016009981627100452031030790488743526994643773711859102566511405523786801007285008786271803502808163914010651891419866666025255314334598216979491972396476522047258362762517227946044778347401316744580665004522414173512288211628141403302851655845009009421378858920916241076287654243277342032533546554693748187237232873696704046624372337174820932190442841264701907179856669944155034257232372348414281774436975639518456043472398658903461348526448811360418412899856131311731352687657368276117377584355559751859999777988188234261939340065861939040350663106713680146694631453097983882658376525867212506733717999821182765729846612859763721850061163029234358133434029173612773010479752725063069810091560005115307382438768403748517911814477262629808151380808213943628556771481045457175826067817577372237036591010779439228012112033288874620358176943242402296569781737886781583980795446665023765643590106129758460599886213090504375738988355182087689291436933959554119263677654836790867963434897487576708716784628469429387585644363902008219478295074081464981252493059090015139938692319327839760084441316183366483413177675930879696675910726828825645343616686658081637364339369499500907366523187537263300525703779194787379390429595868158628055423912301005877586447186795538750611092665227003402525020431622440044242264239270567855880159869525994892652546038931354476418518867344732470060157355208560892869631899567785149648998891834198211190260210840441622822070627625218108355536157178996104782501221108861599708745409149047081302115236006589116092919603956975541969280042826267511080597332540214046196589446069125147839123033305847924932211018286160443818012688721354908541679040322220322056985722888050865973010732705942144651377927515813632753956178660988607430840658949653850740016756798893455820815943369990866441947345587253652499721540210121006392869379414410501532166050426720793153721329512045764245779020696030926845032305608567191839924601577322711975143002899519040961507174765875557247783143260785739461328511272282591064363020838827913097674324551750355849000826020841847281065200576254193373349519703099505651273031860165817272097428305835903766189574097485511688358168214926632524020253502049322709107604724984610261501768914713580029131511315006748982914535544106403914460882861200484563264152982139644453222146091461718494561300015732826946336315008397958075702832017381491033449536813065990746011020363675626426004860484723127088114095366380302337276849500249163111005923478399459518180865687534395005961341461458275165685501655469004308957550619580974020855659668651736982983582597593035895194677405143456928407529917155497390974379111435325144459019470342088626792055116711732937328425305183868896007575957203357883348562221061844006825433408492091238280698794243043325887542986732032861772478786519147178475065989144139632202384503153736058514604052969152873740078118272825779963091105536560179064070386560527480182372907672959483837255980316299983038026329653121723220387102234788790290795843487832427168613511239936362227207351194465274371647186408570577217074916349074778958214510915830701422769825226897806638694367275901216169099646804242442055299252679271851292750614912517595458406665503726841678161388350563187330415087230480680309648015676914657643257706406232909574258131742594758509596057529394759526347426954839374382249852214827234318570057015103571147262595500237616182815062759140420956260528266682970139832216491594236964830631021555250304856445536281469565129496921906407596720781037096008670045837438685237898426392319194894572847982279662257990296614626777021406144246026314363066179809758475972308583168173994032021630318073563509816891514810409170150768729699542335070843518528346109233469514931107154252372448070673850184376852993913692190475461329448265079175254264712226835727157189238585609115759199283939591507393918777359963180110648606925181439117386799569338300477522190707244784376416122180966522844081007075163604068537149759773213975887971846203767731473074615134282350163594324719781685808302901552799335898270488838983465380293200244720062243605477107823721344950025660188404183057280583043500929431412305104535792853021456491197678259551773242147306819434249724153540068257147126797526149323433328191772654779348909234336266493316671877854666469692689090828205793411289553962541047488899896937448248824301462862361683338530585269157409280181166310680111357415058385857624231280584234180411463063523147824912831416511968664066258211467477614148542360961232392600809041203496935051070899444142157535441724772959437072996843111982872194674030663851359923249990125724179968431475398792322664031591488021030550499577179270796724666266576514681155078350940971535652874353089800534138961875691315302633419317130764486975013930069374329992442652304565884324606629496185034313732107489761489074441743156904200997069209133042606505333625818971673880923876028657788868706385184598576770856602576584405779442571132587907205351594960086614147674456041169742497634948989056145955145703908017767161885555215645734786122506521071560546709213399950348807911139742068523497614226300557707228078499186353535790884898868580053789172220013985665554432240850146919529439002236633882832436688427354438150350779855566160900233575590332920852911891716393782482804353745752677401375798914824270172895912484076304462124911462658086995145462321100890447490287555985780774436806825726134646118241929496317233662655667462119597252127844691922623954865486696922002628472946101715456282471552978742340174788933061987150744615040361743234348918385890500914773041269296724175536530669848368244681353049887483605230573870634624935138968960688289855447685046407123790653998221129426339811703746503560105776699679072103761986834192939349365014946186696312663583114317616688793362540333497969241801575756936785725310087766861722832084837023917962376181055919719761024886503275973320182462251908504011184880666639437427113376348742656697113792224454405552767930022491549734190816713951669452112998382450502577167728446154120217635495435127794784139316897325124288248848777249271913265219857391154638562269410870864229238326628329502716267599848687435710356893874075586595675411158112503130296426238200872263919570526988017391549337020364730217971871934719413910858813219201838902725845957528227598947030153476760058934319239357716415792292838701682362000478396670006420613609932040947197445253468177279361784476461628280433387873445970478398439978271138036667457913982211576179428446540648463922467360184909691700448124568977647339747687267971889137879639532369976099278063632269996243957471138317639365390680731088127619381053198336771429675373090802907602334511895235586266409307362208364306880800137796870217268491591257071014535741403506452784151784387007263045985403198985491503262227077277054497969066635875999910274328695126813526755052309441634038800512590794552551397071511724036911359769306558818164995977236708652331114163300665648713060287748122942467630161703584064161563164894730207911029162588379436039513213759377630924264893076254547653341080664467937048526491174404817552004284249354814898050610357755558943080025667295489340055468604451849071021737714351788885203490986242223333220389241088190798430369762789197902181895221387996531159964953773181795998245347050231492491124881648120932397199245036843957101271564514479408248031449182508180446786124544765347873475514434181523950691084902833186821184389970382785459748583974035538226720100691028961182959755937003761510821318178762330695858402135235412292233191663854398784939239890227497520249878237059445965166422629115275426881138491224373168927425126530455221760187932971417495862615402074020939751535157388104876200235821910487630512949145108345575321733833888970418436056376060152081652607324853543628349272024031451043935814675182804213987659948359963576567117081719486348187603037950687314648325515279625412588476660253774453063440430485922812865337805264053849931220567370502007978338989247203581497425383330189575025158883616679168237969522581351005013886995396931445452778613417788892762826367773084071105071497919588353051358411346719813805361426399344588470363770953601743280222795436912420554807399968663656499284101290546990138294320204343812299111127173557827572857167583530013133403396850285306332463397743889223909815885558909894369179184351921563623996177858033276577271114249081973454420057894436124363049155015548005694168823703817602933991983510508889866320528822421412306990759493658959561195586117658934604164211586191539744390625778666150764800125331602831051421046206906282459987636186907703260269750649497314728953387724200051879893305539524570858277939971863112442081610266029804050526969574862875186789594879450573806888919234120795002403396674526522847691754071077815381125008083471965468182655683621175965028519615688117960680852388412578883091902021595725823078236519457582809249393875144185589551044199790318440047558954851580103197879569127884672855250222062324112615253304456135115500217614931835956615010417199186540353551130306332024649380944029914908688174367670364582731651181999644378488776203745197978168594410367605995644061997485564118564214520925439678636188755182917023957414315612296589014046072746072905454569020099748723834715005398884639129687429623519091934780320423668302729985561588142673053976238311337609989485011423925966221426499103098323326564741800755487450242528058216178798461658119527220484750181729573999434838565831026009235479825842876567720524334231438726065331633859830250969489245582498424943428476819430117521704385984314829624954057263090361263675140623630487615553551306671770667064646112248345197805078112360389620461682212163907935648696053072302840385605350690540287972435727387962244134085917240295111324712948717326083464344013654352455935807865169706930049244832123746324315437527867184901558363727664486798504727024122581800468997435087807480151423247687489975706688139806935657302907110185343986908529967226057276010514010524443434376973200252781139793814165719662740002860522295965887601380511688195289899324885747895451213581328741264199390364513881780533130401887786101496622055108361337717470509011743437361685601239060603836172359057416684398827021207664972415951286688444309823435271433155388832941773653557993788178963747634615132553809076883086736595183478931287431702067731781584925957756898439406518367401976131086070984591206290850823940086568880461812060901032660388893839766832655995532978798022554525724006497698075328734154236326671645153528265923984518664551934341789314887916102978360274146260780690175246813538559856316217021450243014054582833306744222528306195765581500267067642279977355362799506736799712536726487566315812719640919271548289878287367323284743052473758355747029347529639371721404208027145728469631375584924466047472831825516990681805704347749775806326113749001857566584138361394416379967430098362913464919509714867672916227575352580584131950965032773521753734687853127462132831930216802608309705545470799740288212127555091572173815246846416781848827459554871476145683809910508064172621492737150102159150728066000090758027753253827110729771588300777781312750161866941911422027496606660563023222361722814904347921054009272745496401023894633895605551460228478254161331770626932212019627342746001806508214842045438747070975675897427637016200211965607015336146548669340378092995933572902883437108525215070796027014334724315954381279484493632726618213336028218775990876123322584478090676454237451992592139358111586002864379367323070525816328979062413496284215292364163538523309407122206366084190872565243863658176480673545530827325879154573972419563276675087864369079004014066624271597103867609029083085622168482768696143041175545966775598096393113862236858858971489213186675872659815666447771130462673780622842937092745253087882451958279082042486890355874832234321426759264093696549097489220141739736330843384917738753475275332032178960002213807794465839639758958258077477170986644547511889144224844648087493282807922297947366993380202623455632645873979231966453527962804538834618682650613409191548895287129515978976348791825429618790491275817258735103713648670962132219914234736022972035272781783653214565023473942967957566240807646257808545404253849922472730995615392048914446057732955244059113858703404790689805107542040067580174496145845441663610606917650362123064612273808604302647419065502300566380027066389947350068343887855073146619476346211230098663092634523635348271010849283875610852551503359889052514266731396457172954449768257098559424773568832607186470861493262020713738137180487176820859547488327818452937324385194972421645420179245265457216264731661076866439874960805633132375821556903567179447177636208230278839980300749242497478061036651517820951167293738913020364162261519946309485778242621656439146098788775636451173053861623897985906099557903306991445517448204760090497129749988331498711076853865543116695279405522059904369047475739163486689984047523671628024622483749029013674688188191536883651029133654161453620897434342141896705842115192604685437652376476949153029661787741404687889482541552303396110170436857463699835044401843324777376378607336416135033534526998642508942177590058812506401181611569909589741581915367368364191662801126749700720880548199965377670071281636078131860179585506925330357187749053714288382123989952165921473929179491077017073757856258706205996115774623641824601915522886880263171344781715084776210342451636533181133952048460943478867718971259386343731039463486783832220686445972449015138152047486343038196835016864801856939782581303553612763011491306990593545996932279997742083351359414877636255005318278311906873114383289211037969913934745062206017466798230838079036466299165483009473653505453058560066718013832721413663203597983546799640484366823174867294820341795401277551923872015757158984034473657357978672665267647363461637999670837623601630666318391414898107349092486186816976881782859248944536522817517662548655080640404510978589420285458867997000596290663395631168664555413819256538089638574897505303480612365432157934049973011969715224956265536149507915931815768389934553070075099766163141887486231134039390801304950482143760148021676954017447375158532241875780921614295686682977971540900746394528087587545703916791092334555406431681685598258959740041240264666799105063103959459430017710121776459025071448912513368368870853778088500312439385606126631707337661287442953391484858179060350925013621949254358794344510533142983571407239903765258022830327650585119624391968261205104164283291093747198725003613977463174538374147787977928188797493535711107284741736827363655200866871288422967866419125155584721653393127369841508168801408491185913016190685305045886877748840380497689904614037228705015334390537608548618727146130232361514191913494960377548222013799774191949498758636766129028759193824316423327700858040846042704081156185706462393810591170422738594335686834733696814885156905878556351403496371537376810082413940677403968102029438865116598640100122504636507097870402448521296196780889962485112062082898219070397674227153383162314639219652374922213183688390192586093236322610526378531845916351475969337251725890785715691301593980809361816025350764055762711316824109172417303939105817709111480738046462517440035854434765050578973922487996867674828110244973250365316602349698275868302759970225556513105038588965172841799391006563136109131424258269189539076524262057554361936882188190229800683419137052626956526007423954714535239260962449281906503091043225706392535207087699756738312246191002374883570955014454235560361411852508951853843983987537403875928013764038630141989428823822668287332373975614528798324352127899008227139973024613742795018731117177618024571470007229070033584897454247577743340885634012873104225522229863660546260550005149062185172544545342000489968917522233144710518346593123390383123370599765470419743621853858660733314488929232557773527590441674351389401759213894591266584758059407076376762399725738953701783708432167716572937349888202259234869054867759698138078809012582845774669494693137557268839897428916290439562316376175032124992197193190589674570224014032067446111586217046164191950631680921882642434719893871879117103187930410454038645534226679937732623448014978459531294121229971828099871386921179363999402255652118770870384593829357491445673453193238646094649656578910313208226340829993750962078528952945044897692647787056081328711436878751694115479466552284668479525962352393873719393405544730056747447340175192525307097615615566924594674744291147626302052281751530663306846741064574762547305981868395241215287075824200501857922173969253100971301263929538511285713773343522756152013615209246223130403585362714856532538415728693050352640440448842727016317142009690959279543528368555413522208453668102689129504738508532446254994400446734964655418376908221932567744001315445142120691668581029968032943961508181817431712138535560133991671060610927597526478247066067690166052024492660093835171634196605361003981674596954502957285603241548058571572119607059487317395121806306495539921641494642460757692558622933639933931888816788677644559053419424170445368463539440913258692862132719203212165927815420500802977114587240349696882123391453016869698452114508007302917349375757164803457590942919122161073639359999493093254465855203971054300576807434888259560280803431301393880367937891016343912332461044666779153346070246294169958040498567045396502404626418118076928168813779916913858293250154101715324278465668647940297179914562064223850565594199804212366924177675142689843140376954541983461769332192110460757540839981995370351182330952904409025991297093403583428976123019388866677833399973356926487392162796487947944472602991635626323187531402222028454637269537584553761309378426041153700145888200722617453222872536894251777062934829824868229825561104580077890692180820958577474915093685445238311194772709316928286319215624855198033907359314256401866194883771048305867082699397783080693949104695188842198294518700145778229815085016513771653235951087896395781878470015112672297347948672467295164410105638909238471079504132037491142350297251440772029706075089510843943377631308703418082546199931094979474250506808373426357086408877262525308503547886514655700610886542879951216304652932663862975077938340551212384694611919529830208558295860053213851996192232708568544596885328540059189366295027267375102762804549018454887259183760213225264730846641521951875706136325328909809131611450909663222734986846480630423878130243474399336072167474097181822450938700729504066351469260187493733867765444503535602693054547135420676113762387785754915764772472686768211421605708468575611814585570553357575089151616085529499607152455877663596438022516485944663834508564730674270817045740105228075744595062198566662617054871396106303290752888394556397337591999290348178275409515570813994411553233903949999138229252745584404661744467427933398509822242163003790213041688310203141226915229969621608847924164295674499763508909468191634816488951444143319045275215972506689045942960713890077841792067566600843261973446896811805859943911706595108159446524139419579353932801865322404240509208732983381622782557877102255724469572504060896786588279080934640694156231592221516468894450353165687146249504260060376748828875847893347610092162723333679621079987509870067868284995412766023496421915599852598148902712663025644180887254187545701784408155439585541964378203084789103256348281575967042738380257876002442779559171171674333319594791031763210833572540753655786747784540922445006237367127730521627128946610411099944003617468085912003191543157746971110004951084696873598028283431895821507483372792785002562332203962260443070172022611713754032226306077371228885643658844289714568384599636757340235646546857419003033709751839527075690939915646895292154700383355950731774455700992213663085945335066236147583209931677908837005164333554776452937519282153962985734336062270823258474994551326963266648445210356653740093483812526733234335559671741449820584287099762394109526168547945494122914982757994286374171045579187047805597101100545982870785138428960038451538131771263156994217333900348265806236759931212932344733531055373537841197828794073287947995205624109477121383347106649688360133408975182833578614358911120150669341988758432002743124665139504730084109134666576143565343948570402261795254925477154579232514899499878908113489585703719445066846230205660356481047934171510180954209595774045646501488271427793025127186222924358666064370710870648518202350619028085151874210722908783682041374357248316105999627374560303071905092889854659950537797274316987362860547548334365277430663668692600364386072642297146726359707724354614857481087053608198077818617110541246074225611981745284476339821289507596786137916159043652013954031052970989085073701414068756701841722683337421287223804250986968768773651115167590260208965654796047745281491540762404282241841122371747548555058470933897736242531696969669585263578599567172057938164879708724933474445737850337331769381291091750795616624847021435828192822296771154228267754902429373028338983111727382674904981778292788118583129209693219014811423778596400799409074792327132423093784893054586579910806794624843223848755320895177526949792417954080243993447764014478012705711005466834645959581160053060625474401726123629715715371797674183891716067990851086817737424021116804354735972205733303310743104360855807634777224386289037770201967335063672388312835416293606469802235317694569091099827120276183666051362097124462355909434834569270595763358307746175233083964015967575469817708059781162239544157647206150723730532876566237959710844014530634757094450453396649045707993583782994100179843647081779100624435712096082504302467296673973230305759344033864784268959932823116126860075808585189990395545671692819265782002727977162972387921600816571197317958158236969092180892545183291976530561736371939292825487862684058915358358054782921355828896044930419584876307139649742386636493813574763712963866382556251041850531297233699119150856067942097980254320257229848125859083918698200554337530248251990021198171044871770406759518821305410119630028500249415596442614902710032204672237490816323777611226101107995922565931878729752576280716379085569535792716369597165854129426424599810352606655782813812506699495280505604566942204072244475727365071960512903120624045626319603927432948250900523879655888419506922677125255657859414415957844427275856450769449981132900036448465939072710603174590653080215110199443285549433943730966643177941376938357667853582255387852442378399849945806563897512100963439223985902718727578688388239188580738615423296707686084639408663973830797962297880184762937197283431004170505565058336631551784168394548933322779596223830940740545801187474504752363142779797822269608931031958743674415522217959112321976101633843352309120430420655689530466183968558574980992960534281128612767943859865124349478926297032884709084217500656224589582121849406619558822151461158237555763718910078241813893525726113883930027675002417994172425176476674750058490678338117159807515276050253092842511779839300464050505591482197229912944144154970522234388899302504686620184609624232757001683419356275656300704140346591737881193194579448801562814950356942060039403268435063286846617098164713149057909740543121085312825691266541077673400202581566473939247700600377069832206693371273659885585468583810329569537213388853476526373031002044426992648462758081016144276011931719704072967116088077672228562931623852613907318475299890859895338783465926738826446264553862254376225478373794852085018100765205587040948028298224089358931047771662948717118463269147204189554290771076018348657280218627071607208259802819871595684468103168954200627052135475112041488730722964835970124002098888365051304593285981359110893974361487660738372566935335203960297299814897525908428377658632783437738084107845060299169929147508964308011773470025389385815387877159298350783077370039356950182028345187053698277556689886920964661579170291720458167192957755122712685460009464273002157357659050410420180664242921878646273674726847485648196473820254112527247091118228864434864017287076909221098270206359875724004781893450840152227855237957274708252709242916382794846581812885408747830600200168847422077625525822732313859431477608010117257336096237954525115812605866473395378354216427594187856333490494446413388671753006254719869442894036630163476580994637825890854962774405582936432565845642423374776894977832493501575723409325672703626911628124754530674298844410314961308854777544075147109756032983055139298158754212955330371900565575311406265152439264513028286169375049211087128459165965617886203906123896297204545605303396706739535055818872620458438108693590947753795690159406674550731920320305056848302491535066897660847319962641538953047445307147381975534278015168084651980609696843428688545597819994148359282191510645795612586762347234907412691552702376542762612945958949472700801292094560456114558794295665038031626682181588458245929981026865579940338734888380299027335978053027926254445188291913690410025714990551437982570003579800194336268556909734832966147334420483068089259834018576242434430974346853781927387906725651384096318454736908095689823871113147000398267227928102831089945895803431772332614995951754164189835825445571969386915250310658146316991090885159820883628186647305455890308880211111022378641196466922799968082916916379500521642453741514709105315365122141882618349072314260981149450213962671419899602142869640493767665136053207110200749599955586194220080035413387098515198518552894509612875454496343193068056688977717932447634463603895148065637338400566529319724344515874411520234637121791239640564094026161418309985486977884353624797769398082878431973537463468921198912963960372132809639411323589413011831174271227615570563261948475367815818274910588100907444198621342452795956363557562598687086021803620171501459932852709781661277546515213243200996357626865126662103085851679877828599842101843813531656259858188503147883417091157230725404391341965971592914362567806484363405134048947818123464250014368772199338257402830527218121034855359135168888410547809405046959905696473449211447401999454116041191162152036183599762017402518246729261156363158667216074039956833723283875142695718609861436592940194823648751553448893443281629327910389571223941747090892352529151384479244157418191753434829340851523873676966931997349724854216273676760745798956812699468485012962515655075242599117315716285442651120380667893067976515226032731324865531384321349295348920111814173385034723017356046931382530456652642019541247374867436423079621943128793938775254890984694093209029933343114083493919705292577582863560446770387522056406598823045601426052040687254045329061884110916956456457896127115218849881249389538296110785265188812604101577481691266361339960066718444891846747193791957026775706985696582280228985726749933152984265901056224882462391910047893182052837232676130249173988571624539059116852209144872461674284686160385558548305534390902631522797410654515932272882088735103932614022883371777097896848666224302882288575941466028771688788836413219744283121535682031368906562741340675809986713494419448971894174195219841506918038259383458129569320779405066461452887712911582092764901102233734211465753574594740615098233250414810050777523807522406048700974004242046704835866490202122481844601634645408499958297098228655314504375965640965132061134884262192702238703324914966043320220609771959544648301737230327489409116222694099185190720033939855249832606637084849755136340845856207501235246941218770860092602242936012009486669481288720770079630356797942478741237178442438339419463472931057633170886839229354168833145830317675060551130764974271723714293289425949520133063862814886659720993032383450293374594378228365141674217471240112892930093496633866055745151477950869616761096554739620427540911990512626168803414307628534081110639548835851610564393800984333548976567890950487161694413592879930084415330681233983768662881967039397138573012130888431208082226890688537558008431628948372968642976273951349831894841575512068599367423795346472216408034665248084079987721389685827230521755414314891619074410493848885200186827830566134782261784865743846094605822129280120598987231913996767340129462047372615788509057850218732712578964784202399476688481485211173955542366856859463205788514848319000167092726604862956701562663550085586012355034917669629541098965022250166387203476654666967240550323469325538695614134646274829181483648831884146581207130415884182640409916798825366619816866125675541869137455582135941636286513123364406466493042339070245398110251772520507056711672304333463178602188167307261173404841955526206666045509960670315385347085814079035606803232003209796562785134866639734881569978321315766739805645554169391963683595627357142818356684984547921210174477838103961946598424580736555663512322845619183628001284554785402307330320848242118625696978840537041171088195641368259649304312079874050737523243868150412572704760165524971778186757908159119093985469002860972443670492072528874681499302925783774252182296480716400118362280587318587861914361585863874618956425778977608187471147304520944086774596504213547674528369601903863720164524205328670386626695723050102825483037142901018899894353996779953021925758205700258068792688098635890721346826745601655192050515125694479675938908868315317381639418566861015030585872050537815212408263290605199586724120397774952027487976492330185347392545119969445533879607129061585799402141771138471352499672316153402138403023908034236498992998489504456678093760203931191143114062412302764692293225119224567006112485742186177561717461524857326820486436105296614868605727623795485155657986270483891498260868353582125135353604527736975538518465776429173502037614054133499520360464812486146854975800794603966436129552056109285926953227527797157351685263304156737570934762096722555008370355926781614580744977920829147053477865872784354210744750058260912112263266913717180980150299237138467888768571567164437766901775585123078822453380703888581730686198452914850905014616719919640806604949694122078015782022220066703916924319237859761792846616492620741074752829994600603754506604407014933025284720830185398458872818435803999604369614334180532109331510507260822398818466816268582947228137175637281192306673564475819618868983130812172292535479117610806077087031649133785918673971612362086073297405359278481066906305577895508966798341568294030945956133849734672671916407168834581568317138324733459589381460963716752129528117393391195075913495759946087287510307406576805265427621988026318513123634571731324939815230598540693501795613473641594165287595286663739556398582580878111773409458555168320929414541989605753596040510254766451724835549615337042514827818943041646826761170219809627699868402715654687769126519557791543529847606406264458801153154623100401166538458326423506794936925640025972119648691823141749040089204108769347446488814631039046181790674356131810146810183085668634433004985505006791338233813913464384172420552974776213238590720639741563585101489423335218153745378782331056136256839028467505730384588960035583415834833057552538445835410896039325433106628437467952720466443796878708827326680249216158355053167621804562455918408731527406734250985098953647393651183296606501110571793951707748599073115138221244860257178959797675288267829545562146270839677207937274190981969080704013238789509024768121965444818547314840004594821970671502409212763390266951913507294247833279885763382059398373489398451124657102192547124113581796327839799012197224467385569978197582288787096617472783245582973239073555639166226769112110008131376890975254031749287615940554537814295598723465782915463420782917108498353109754586043365247397788002877482401140039809232379615484490905465458590218334064909835965059773060383681496081202292772840754713686891401902772219012684534856866584775594233748694564346546894437160008917625539213465717914812636625836770296156923322465460175623058537276598295433893176895889776534553467033504413412435765538983735235469045802182742411263744593762961048192944379790044980059622596930232578066649623118816557924786432861271505323087723251778711261385048982707578504624107802290787787928797514475371398490717394770956190088482671660807012767585724489162647018194175839947367474316709543341208966868454973785029474243173021093924711227057236241865092825551704362028928358580212582096841027885394499229103763708084511583056264597136111293245234356942218465918801682127741925340328244934322610123933732226566235936865999515593577820781166670438807506274148983647151213687715783390029118354462969510708543354691384534972949684005937006223177453278795146793397538060853850258261239524544859885345314376260768120181734078064249176389085355693313569442412221144349778392911824119605503831973526487354854202007689052320674386746547970165999222560431426584440310599624615247489827962506287221080846687849180558860625619581120467112623735386825505008354244335900781224654573457092568448898921352285266676877964657987197424230920341608482384793089113773060851110084109295682373730879761144442023018213998149590531365071139022232622485981430488459547568249072103661218183369799512800434851938146375572663292520972908937022773388424261072191825564079758761340263282559116091000774307460839669273572164139653846257985668001373104894967460039139306050080314244582875108576554815345955997397219205512505320330882317506438442811199062224889847230459807604122476593523670237814247017470425541667206335207866560270742443567691142148730370899360492502307206315656744180013792434206260154690577015466024641522391173791511146470585130483278362427125886570308857322272456180058105245232345153423309236617902930725563561643744351492799187277322524902596735610819972843785645969911244031688851945645185504171922464018828609045920536289288770478665111467728372327911039639891493482279730476319497428962384720485631566144094385676426203017602303414151959357441626044366888557897769447950089628309138842428063480843120133652541540591077022866375815541191627031916066893744012129861495436025002286973640025302373154175154779026234365121916604335066431233110778269062317494687414024024512942471175770401290922496873442924027676538373747004813818670200284707551743135533301200094175327971062251153323974214259318707629382917450555204179814796892674052798402319369100926123770706151447844377584639447140600940994559799179600177118892994885925732599785378087495846431786547764596979137864279387050015301103977103451672041109515659636327267845114397766571114692062825795070552562453965768510675305827745280654322948003825581355504162011595062897218270228175642382381084069719008090831129659713500977006271876553720694564903564517491183998285636184635689591555637114371678027822886482349398109114111145144172914404875811433586988130161715803687889368349060662963350404872988944766231008356819558360473345124268188516264061175430026767495617180227677166289870559218957153298296694071366170809327918746596854658601312658796232260120536148195697127329983312698586155348416007475659331585448018578367821445361271190248630357803200319438347929222911628514748288590285013541608896707478708324640028901572865394552635544329821493687020781046366997289965707727574728321801395315257489915967237807607026828142591139339207498210432236447835302020350131509939712134087746461117565890301120071103699859461046667054869614779563389002581996034144897852892448738198802969013753835911950470015885158366825885196038708634756026217001724484343488221080208279352488194452927264397463474597572440900484388524890943812204751945640586805251341494734782067622593461475243168601013392431937232032776835706480643397225872815066282555105525392430041378761014700737840521107561498003690422648396754120096699255462808255164189567988126146373020251342318543710859857556360266883287832158503742400304557857644906196437692245963430076268473651432267744458195823149312056899734901038825725166763229799279386402843707112988295532259865052358705807232094592778074496516905045227498071199209265816732357947181594082873564834391692646910200809451238938899625233198713520747997812200669171684605581615813551249564244773658973353307035414835656715863462952908638774606255088413807703756691678939662015314827158572834698287188965987564686457402169749750301728341470011981546696199590082691712973040420038345677259717192353217560050699443889515662920155021648931516358146456782938653676581870382141975291420333627242267491217940616201540316972520452277300284514490439373092435272831614972092160611021432100604299681434239808567360716029667818932901705909085552650214363368887636661470255781587965332813946204346545837785253699385533437110435694936409746233744943301708818482070623699052701731357109259171838568718354418183589488788533113303022082807974056652370547172732591475689271135921434460151284396535545706785269312871255170703198235406112992218302414624051720792392802084680632224654667109845920879114903901858133860854966222390527897442683141178666111823929012283121191514015303121712539225063190068715915664604271765625309759556101654046441417446925790406101820395844077413574888833576541964724088072876207557188871187484104807656451038931352187577857089649835252618699322165061181158688533345368575208589377894538745096567689822130158060391378460478110065268921678773471385482205661122105084236268044764530823976247903771493061571305710092310504411165766680027199564603348812395418373963013027119170851427612600630897671422412854707176794129757397931333428604978777078390461363396591947511171371930636012932528623748256761570377786825643250223378385450247115491970983863553322382850033408083705577160450487880794793905035100201027174168773049765351570557452897601774072931194824239816018983901089545332534465652901688501678788870188821157640804760752506138516713935425445176977427469602722181072331390636159224193840028925830112043197129667191759253947707938189743850394592373188644120907231080262999556007871526584202261499422781666518816499428590244579582799794990947440689017416249249503496181793556441239623113514044753939041450194039641358194530326678224464974666961432355825227855824243319610730625616725311855169518402655816180873230442838232708540664838130850590056523205226792728674222043371456816848568510403121282401404945562875062985379169276049417698843223874554373354593369702397545376657527971656502423421299955862975179552060431102709510189647766308121161394910254868251035274353396370504039035612690500987968152530416485720485299954268235305521941459277805372916713775428192455483247783329775199765053351831734994332173330981869862705528635454949643161498263457710189566482887156662348185234266428668915396534415758672465841013661764442652616585427143968679434124963596667130781074581463914347344388522903370818381570348263029476425061102753160091577117211990725779583578894908151627907789304351718547029552105167038822225456405219635422360985292665148277880678643107135313866774222680963925335584568155463604290010292390686169348971789714699042836408395705122494716699567177564279165557657170468779506054245809301100861966734280068249687801591062811741478038562992621243384236724231769052633993379775932816425352682196986540590605546039338208880460062231108794801387718655146525545305597218229657104715507542467295780425268214729719750813143576286244058951727745355364595980400219201775784974430737975867730997740460425248282583474380477453525097846717892326518455100905467043714813825946494864858605692306554365026082443926893068806402930333092667125771256128327017217358596039215757706966211683295981291939492662511179796468944758860194927735573403158274594675355065133661025538174739212241248045989816976792048994562869537176556628998710370609806347541675298784137366438872529655822056340683314048162551522534432985907133431474153031381217613833869219548406548030887052913295570684015893291778134006786711095425664339361728181549814226428946724950460977220074600845631190515415578446966211781813953088724062377073566629960772861980585616900096914412536164919456086688315626074674896173768061817121626923358959282812264736306864343128541414164797629381405037548914918279859319303213664003531920127145602532309790110627908238835757127248308158744236939230210723486731773073496870822666059903481527783793472268628060737202110474903361766709742682160109355503358895646985678749709478131437268340765764761892200449904541334238169713603269334741519213133885552778886488389379162474140860917947240377155086882660998052351573970098866090024120785780101252001204483279023964708563523192917244256414785748756112880914120043201180034867850245075572163753967684096113405497892502795404577550147064816791224707931206718623506360349006774429770673716871183871424494631248075507488741264132349012016603675775264446071281677218043083491881514634647933621488372425304767211183956587576696182628054226491431002615313333504290867487233202956950258909200798427872397688114503247677796309135355662695756145825137229430020193508988950242258265848848519080862092629639122538729454293552012923186528404630703232388975103900422904007321958465388848893976152553669877219541023189800585288403724456897994320550649058977588814601318506913767928983231631112450492336385662381867535612373577055440721908310536783440503130673192240343857043020756223928973244488106718169704399488378220566251300977983862927189479804585409349360722173442456604241041806899839800577294879980702639685094696128316498096593489511390627091405205149331411691057434808253940375090469253778898225632923624868112858202091925113460920314508394688126411620572704667891946359924202601054880872930924278338778962017714849773058254278594943911704482869151654366662847779954893996765735315708042870553243715479165067831227978972697149432976261553129853702667059594492953202124573764260456393790752317006543000198976168067785090741508376006412031284635663703546182100084628924191974225644593408602231068581234725000777719466622909980016327609353768758917827176087670336258360893070055194074013072313712743115367696468600443241899759533133734965180469473685404728645945693420606028181909092243068068183935803751260993155169284893274631378458091578761421996977032588385026641001570558063561534802239564772013808341295528407112784002281092364441147204129288092626174014923492384874281534490810712474343378440985565987202793091856760150849368400537206356229134639520182567736800568191818369404818344117253352782091431571077954830272722507714967724510041996011346325313660843656747214376867151146860746138754772045878859256972325881655902450631001149192156894240451424062209873666866620628006421777388001475847389193868067337855212201525110587369353781491419214870344740103798424692616055318773311342234934014982264033007256021663988051039517799125555427595852353596808644450658174061509191816572844591530960117604386824755947529753121535285266061129772911549906419135168707073711973567907075610701576707458110216405038096762672039122840772999214310221733193313125264830016271146833356046284294178604951270551089568163248139718780529266033492712811683639989885066847330741603764817543076774659318408374851058115303393641421308035912256478407644027092263170081937786129173154244304020755706225799276845512604929056972945030793708111959278985006588394665181864998111318119254336425880944228603826932868664307904815781101768621337011696161319010938704919923326562274534206329545951153887896482277717172592330345056455380652356156937725845575503023746469527416411344542543243992075807866385672606425210222527550403015710805350322749272449261947070651378652673036409285658048829294169951928353023726908583459477620544835056888701478749686121598450838468294311346197131812466178615403605042770660051324430179492284681011668878922040530482036138738788043250606808760119279626587989924479014888871252475988095429876220647899377931690072241458045963250905185822502164301764003407239462402856512943375453072347374101693270325381335231409956070927206918894105925831320205184432872677711631480392636045450498855320079961719892875753305170878703292719525411081435818532762044542906365223311433736860424952463459601287769089518922410416437775507411094286281909921890054682610589632792733919793784917729391509423440712486881007827860422012391612642261593296177318813704556255467420355410112764855733849212968138648050911152865458426157832322138853927494116563791241288996309020315304852935989818004444956929196442505517355174619935970222409130487688431194871545672895092938321360592892680295731604257924807776888796087632671957097823994508635807871526424096563926739854910790576633945002514564154958970071953234295203881390917090462635244451456783343948751189738871259681447327783651098328450413614599595822214990726602845891629703041836360301201370881699284097985781764201325116559099455160324332873248016934311512733272666057540271098906836970001556219520893484526167905480840189372985706177402902399877216938618323824777795911919334809008058416516851689984807145775943816200442914284983447016647887925043755708910500605191843326952036267517558830031996688574176848053687119865454783722959612113573454698557659100703127798859307929288623745376513275719651062862143274228392704391055430383690140792794488993527472078604859165260817315167481791109494800724986176104058191472501081824796488617120730659809711486904903991635500719224855183970839842304848066386318078675320520453619486495050336711972984096550907812445127341697539199445301408630973857648995186498823344732689861559005815435619590715347122444091860714998806386824454384560079773503384133485395537397124746653528312829074242029265229324667610215171174539577411573203820582940426817550612786420032782414071780416936638701441131434538485588615773749369807532567968823689638763237169219517664585632689445241431839199927044658946441898530758668662508633543840076426566096801382176108453655957121361891755310265484927891244940757824453167437008112866499554909863533825006711390430394602163517045571314057329526091174549198610455535386778208162168730975452826563499815006064232981845687064233302347844967488679524357666735683241350406667031794023672744266477072400528229391217159158325212871823004575702896074028527361189661418742074371133793565796326466611463359860325200401242233059861860532976132071503986284113227407395221580401107102995138339729036013168974431044318500636787753924316813137482705411669228551230170508400078069080597577405358664856852200085313600163468055052442919958727450589051194482289439157895237944228284289110322143809435419916899269450884682024304711646938572451507969143891706104969212623110320973140388700562850005205358162023991505593095208766022998947144432263675911894714632974869358087985215460267820044672143945821937569169461400077159158795107233188997174954923449537792944917871220282967162784469564601520838036959958265520909794562409244443776200351680373368209314104502047488602800556653632222196820188185712370179486245741411466736195001587064692460189157411708478812090665497090514446892178567764316442465155664699119953305897397133730493320869430756130258936673419824904522933930711088613290692510699575544380080593913234007133413664903313872366755370495172368528639370936381461370362188801118372315497175518378150924354529495310642566735113091392772439121393359585251980406510807203852491317404741009639104915859770291182441937532953408238925800929714228826237075949767750713978058593552941213668411927206000858475898199004087994101001770140034405525951162169207143772939256156586654028452651474630176369079418760837416404518657165887563497801952939543995734000843396281117135095285925303740715830014892768655169979698782297880298902643189047594081932518768331282417259199139935987422025203399055780206317603133015752071053293216446020263907946123262580766794523923033384031060062559236867192391127648907312833422487524240435017970596862315298123288812993815811196694348711969485965906958883875441647914610979160673443662236097597490166812203372799560682877568609574891825314801074638737240278654987658886778372832112954731696940340676348806245819346918090128343868986746606656100782683128169144487840609390225654276932278407139938550954243784700518613294043020403452253952906283177537215148995999501236091349098793486500234951083405762413719496853195585921501320829011285739368901729604950564158069979573525719720347495782581378639676075184379927050888355113824647616780470493686428656372280070973703206917034443713771999534294607798692968785432874011509000391437248859333603746494900248787302028303956185122869135991229375961987583292011555378881754583063065155921083922010207226427533738755520794012807155676928252853683973907328539721998218049477540378372662086574381200225934253863409492915942890377363466751816716678917979262824686600882411813761856992393995449507424381218876408807051869694754965232116026148851246763363754710183466655509459828119415491268331037660893290262773657932724749293684477809715587347937435538847196966227327446160599185621862067472009755039966099734473769389161948438762404519399854635145004761796852402596381003199958636591446116661099589891772684881913174798403150796701978343790529128731967549568771185740545906989013386898221151375849231756237530156597221896282661489395648504988495183047975401821020468578913991346228586154717360084589065355387263560399126269003272899355401989323867645351201988515153775822596103149647497841278982453321162779386063119682182935222066761990763443213193711090254322958933761458331449693899842186785965496006202048039794625239459145348115046084175633597318605627571175926039351014660679807520464319740618434121983797282122234112999564583608266226742561374642362058714979136749570530117889024004209257381494552418210615404824593458787682512413419968971606703306795135086080245132002485269642413001667113569418614215072828103578915753990864966568352079624651436907951708963491419565068661117314118655260462886652244065967218479615258307572339666224629028221768990440498151303464354651675899009549564157168797171425844090840318550707006910360023697428913661673574978862217166076293106375656656784337186016714364262392607468044266465956587490172043694294538259019454016095177428571251763829675810218320505987934769854686649816493782064944168256565299572115408419451284381352700713373361352777343679967650409111639158109591175917270503176263356462342622552212610683420128864543185461362441905267477428149555441730243840783219616929226747357456332705468655228909237018316121882990036322396166432445392686941760035148200990639447750009576626773863103826672105842129117946907697818527066142135188405094754646706694607168407694608943377659139294923287067982748832066738379274758699317858075649257216876753454026491990212402115087449610201473625459551605963181042530879195845063815413794492876579622680660479295334294776336657579951459129832476674046763878621744839009128752634774255702263230184441137133020608282400710058814334694400087390157419592647127893317610146848443407969416595630482361686350071853793411620551554982196604214104259754973880699725395678426053950992815351846234418076019879308495127137654611429967053159052863550265872173332385720048442069951962656514199424320794951389760470043582510961146406199713916807108456777488229425818472165558283045009762709208368274462774526121742332682884633599246663102969426047205160328393680193310137951489068332225269073365424988985585017683261521126683895442503918651793021385393615797325065506726740390902456022564380817263088016592830918359249724583595724352500312004617141307293461939754448723381035855329869065788320845669632100001711340076337941481022579834360756632520496165106368496906076428819292552057463393131470095166866366564716967522423038550970499479055232524234486627453588520137039704322227114821520105821085703396696433341583145986964951487109381365515565706756723850114028501566574161199950826218588584375103236863387810673527536440038167838043139221551854293700814703228049940194898838509832537224678787030786817437007858117217700608987618757617369549996409145667626936565325902213169990359248130877465459606200132991453023200848762387286931672027983771999868331555128764518145858522472261103095804119938970918425269332772519854600895342352947912236420761573967163033667336044141603919916282136742164984242400474682868442502435319980393854503337466467890038184417333182753810118669275606563090649415049765373360764332665561223814730587729395452588983717391935294517097522749473887361931280292037432445702027500689761733978224294157735656019378266588473050881062979376547977848022443820601970335577609045801083605446504493924664424152025495944596350688712889571060820436694176203161043500846227286563291721330250018938186242167757900758034947218282614979414517102089751880290749607807070995152341604950369385948245312126755079124472476727844823970119017344090852397039229915440481661984691230681495701370280624231250479603386323491051939828637169847946077334397609718358133251115419513653870691775058238625113593127673671344033406629105140266804968740395779308976563207191580877554039588929925142347444908425577587874847773802076725312313726535622777108832295133146689719537043095933314695838139825358500341506819189881098356070334874501326494886206220923614004426306698690619176340639121760112091264597995502931673557240930122556583591580861643635319763743434958926551914549978674045485679640428188922393629721367781580462267233917805291873910156269922253187989766073739449683471928050409645873045866057837622533110042655179503427031874934347512640184916795655437683792167386004928456618614149903790993421495582308719049062956243063701517744774074479913041969226867133016453915380197171748944731174266563316842754310279225745781696864540598373368860491554498261754956874342387653399118180679058199266332553804118762333392839373512627436845900672187035900619788521665832498173597894096318959422266353182850980166711275001490285873007771935075589195412104365565485962879496557168315354420382314280981610411765650945248108881943233613256267919518846789345886595108386042832937015266992634502378315801103691980101480508105837981400372579803046245552565894813578749146633336538652521417893873046451186092020207746090046259813493660207352489849869005787279545472301814306800422269247123747894599483615983301138842161883634458874781768865015250780616081222787639488598948543809324473473796863347480705324628558504238568533611593396115720900366877492899925551520186203402817995290990299812157646944885476363125438956940487284663177097041417229541952598169892231594552292412286386582190440380388735449037344132433455077997344087864087419526650708660377481871818876173293671311264761828874668598480985820070470375772159718581537658995678994363124349256567954681868818428763703266949399717824572320468665963375468617584313945179419510538305148534536128659285152216906881016833418322159836147576807065836388714834097510218423553008372612312178119990373812008772779918969132853866257424832512201928060712362770243923897354582452347167510470602906721130071859965547738393798700745563659173957675155841625962660592418821484043057710478833806899307254117550296832830688123780398088218651778901172653140567229260558222053265904375929622961793273047815038836663671563446821971345278711693834695080002775120656067710507852894068979560410672052818388582375188985981001929365119078307277287560662250069090313739998422560611647362958246247750730982630043089086809646327048916128422548003224116384543011542100999662475212063617102190260908999816564005930717687879073454631950498370686945267552733000295319313547402662835274896056377010010347499785958508772202982174469434789039951678327968250316955976770365087937022579040969164507359290532480973804998692797124745851905660572578115689737814202296208430319249498058467981819749611254171290120575867101325864898040325992584742711072148444501058054300827490006390510253686433879929318411448631972302904109029906206738059684041028998630200821198047078287951875025680114419069058510276582930380720853787565457973466441522215836794074924561230851830912272824435014061752385266880241429823389559206303003262069976455888559305353890695549609138874730197088741971877533362921311182910044595143069007780165243065388071300801676588989583469886080424936816018883617749159525889163477735451858522935073414202558910142799998915207992282804848543330123803691779403797001934869305170263555170752104577350667289237717591605166065878522308131090418413634857541745100793607399819533757958978142594189300610333305869931748053959778446291998946618875951332290328691236002025181444808271577203825282419785724129466471713557126115564872015440533207420365420347931599985299175425364872847504914933369392358855167687854487287758974999214624201666458440342214157266415806423248374673029058426253715362083762297827283759192047629898494505972507302348115883147876437325447894921072995284019639766277064394072647017858782144750992941153910047214928338976100621051543117369295727382843341805455007081535608438345847687796987841048388563700675492154607330719313148852879905839662217873354531016236630560394202168594508095122190075392998631729688665395485861323878535218808610500012045171997524833345050745368369809820808052925412928169149478203226463021724139650938323911861023616612283857333533270809545693951848878913358838386588515620440336042702187369062713857111143180991919301555870401999935581089897983047530424402436651388922218228573028330051935871358531852218403629894283663651034030883903994937482194405948513134690310876784678963156109908840383175328360470167432513721422987397388819046778128504075991258378646920127263509412383042756117222102824114362440744298532515928746673827613760744682946703101832959980236806207522373753449506114341640805535433023773269327254865002870378172090164534579771075488929963286299671074714100054761566696629871519754605467149420714871595361055356856133894811222715109893266811672769894764933049704833500063042231307685161374277624715167180481817959500632812699166966549924619057293786709851213332447413197502202912561883761071762254692776110848044019724147361627246027064702253886753756326677091270551162692429174149574486778187672044289048777150991845614214967021601747390153192935184043911254251825633931778099978104202423672129753556063732247832243311940290392366718069606731390312104278144691450783227735010546479174394247686304785075688580173303323863969137426001425910277114094569479301871532559210708134460970521677438869409414368578644318121245062587704155170956366835206188449582418738900203647028912650949563657530483839688005000106974214766034369561261403830043599657253800186172147370498952791103155112475662752466024585185543780390869941499267598898166856978616075432187439208909378269717036979113682358310633189966408996654582265470278238863697214872790875002969080386916983184618030930725225580596399922603296283737657502162105310910985503840623510878574534233545073666841697086692032997744948505521722928043984717675416899229240256965958554435592965597112085237058157986058906727170037206156500978814637165123850505641997688721758247341274692874179628770877230717793842297321334138984965488043868956226432161431858371233690464604115654337632176017455101777267422122285711414067354504771846245809774625772244155946225879310059462724031449527764250360621822565788860596255070008344333020216276266026189483422288082140575398343373816336536778302101145023202950961929439283976719653177216233842554365348105059424034231314240846279128323487739031891402718162324350572573946628382057440422162310466415700363787936965089921465302346729700828556558377507239606505705400952439309844729600141111913850976183735926520441696423488887604346887483543075143891971056991491767209827726237785829838131865173707887384803034155167564559147682201601884659342680611033313586878525421143836159633988628679183332223505233120494988595414521402048008310248135921973564078268758821617134702435640981084085961868960390536521663618469205398692505201236308097371293045356463684991128296890309423486090531104090731783101764876627348201747521074989039368952517064348495718435222711388754012142316645997675318009000405066120215446739467134271288522032963463275050358598045480277113568155214255571724061149010397801916355133452970692240310160979936887889365597183189437407499670173758106608780395514720884139019588790600848212103377325722058813073407058713511777522535266108387871001647419582450270678819918343936431829177115924776163776297314873377380870902062584485084500229152074408016003704822899366391910149779918018159141718532166651107221272285541642292014504564634635372955228908984111811375179996635936409418341549694983956366609422868133803629311821976092252883037684822659815727754278532801098394836393328912717804679672306169649062104886821667128025517671574269773066207208423289375612999662685791318027849038366092056886054957019351690542705071872448725182858710174095494937595087311038925833763878622245816946707515790841844117632327716728999456079174591448158220404585675039302738084188643188577626975290009695906656053726582218697659512350406112794766975481154067561839866685139491816048160676429557748080709760546284444281082595374024714566069817477189374166192803470335160886839901192471505249865971643264336635507857063661260550630517451290219421710408798001488842034562639318014769187359509957029435487311436470762817284919538597473517129716341428739079300705017528774316040393517402685287971755958231000459001174597839579208525977333595629420345266049456122593682487074836256279178237931650235952787433037720589188675972396731925997280313877802139239533406111226570403129472856127794711584644980077003221944586041338486183861199464609270981241945233609425441899816737510089484340290851944992202871592308535693542362031960039921515407430859877478814370132421911306797230193278956307211858300698951086981575354737364018843884903627133616217025827585338350679674786735966196700233051121635637979371408661698868714751282125018171536740652311411451665034199110538020732847027426508904139810685382801348782959874184899830242356447836015020232218630626673471456763221385803459453129258124285221814409524035757636286281698692340938564321636265619705030221566775988507294646279265597588343170860769981379249696171213067416668349973778847179712354227896513157167318679139541429546918236760112568154649657484828200484585120157722466865812657018807034807307623112799697268998096803520421213357794040060974027725510254196589291013273410550105187001384159634010217954234387308845406317588899944864069521942360736246908549577187169628965451995191328016638007677524147904684862735446411759991812289857970865266537625975937361823748954417378445240816011200240779524045890486799984834914411073642153643274721199023965560663479314352126464273915427759004589612107418009894576098242725069716637039583951757417194494045308048610144735555812339348478309287504267638408694569151938057165799409845291077982614181913594048957299590400901470137032893786370947050518042892020499594775535647439071519562917664671658145741547006853741804529334628535648219421250734622381863284572342423350458516351392661567929339285404971672512317533847558314049957195228769299495045636138191252344623305102432202950976681017605608170958921215887010738665347036391633830446264859930475793920432292346809649829368627734623398156172457568845456825371788798806340223154807449092731934986954711355493575573421078077914988470440660293088657527984138307849334038084386541787499174869096993060778041978199555775380809705197805759184209735444980176851178326229718058623135102929655734904893102102616460093974880050950452212470670650600718479212863211691487963021040738846642432706964222101910635044229789980912983343027897587202517672230467019617625863090789872708278409502338955403492954292346137719593886858179485666702541303438252363789239471426199978760262067555366603368220011621533316802681092401890245228457733723902662094295554218426944147521970378590668599005989321511691540180664673187499938900216508040174569679307789652563706913932149666341038825658846182086642816719778059723498078614901226516558739260860299696988742765690581933289344455107857587432441329720115335521489189707637465315872373975266922737180977239543285434077332703131150316500979193303554023862612037988439202523074081111782988822163838932348167402368353172616703347348432527295958268122012585491956808523170469889298050247640375660990660140268258878158672010851144181709297040697982398006423357594579969290537574492518411485555952423935922177265760582366045406107211569648369635065486090551286953109221370279065012292135168607581328687042766260053528386349120321270036558097136147011466492913023760309810488265568056900697495669396586704024850351608149558222874003640992064891502813306361427756569106041078427531382065237463291932721975000189109637981346065507370257118352649553162200069286519144710007645235875747156932769458419112964695390034266539450344333444301954661844411940843263267973022027365760060781711837368525107279310511062800129765061967888391042082388933739101487724544029511934064683949085591613992282031460610262989986052724200139443406782392992561821770988805031071420121961375566498463484445585721023657238052925269764957826710508494735501874508010694051394838216479750655402627097636248534541443613699748384879238314856627499153392276467780979117936475370998079555933029483815065440305897611012149476583223786667564968556069722204675515266514912489299918916295709681210630801090649322376368472633037598373961127138642034927440391931060358801231612407192602135686670423179454240528788375929026977129036445349871181163174726469275067863717020203328372426581164681733208421063382004266243835367886156417521303290604369136970686917136561633449496738089130941726843829243407959223327741544447171555711466847015344727773446328221475074952541868883034365631123833674351754096133051354288937548640595847252180274224922783399541769753133943291673214066600290348828990780933902575623227900078276563263156219834101815233239369551675568897887132849814259983357254059380015109187833342143318193520843764104776267075747369306460261112873489388838321981801651551413998738413329225893571998443862212512165257170852894437110816852569734601248705284006692287748861408069038875837989540058046631079304684471386592701874310525529267248905387940299971048748724939653854658473727246597818800914372754227714063571000582989919146440388620062132086789804926329908265100555653673150146910659014938516268052215977908767859469533404687068992834584440046440019248882971292559981274787715327592077217614210515263892949560933712234654834485780101015233264083331533562749732078786787058665308571421990025410411134824224175756468374552373159567165324861780364788139326476297773067588048126257899466155730135031252174869785232311288255607070075230653079093927529527133020957607576050738832731792427227200428177537221867315635047051447888179570341474928602315853091621151220278172028439562399023927849965313295201170023184640162602705026141555032923569769471325555731333554592014632638968633301828751342682396948307863881423973778575732830708650681475353779726417237737094925760497268300087379520182243353447523674550481679320305923841762900448635980909403875912902379062081051103543294725186912006344766672118446240417788073476942996405654095624733750721434429502849632562695887303124852027744138023405722144638424248360079345612104472099390164334344894690990737297169910927987340711517166297212164042910921460973471523808608107920480155505701602386000891308178243944927183817415411656510736209706998119108046380540723605938632943835567762163544583518976106637142729539207010214966382357604833685734493837596057606466559737091993848579218747371832472414170723480468746570578650432730481881717598250859075030517644162358955255969812787955087426528831523366680467948707537525824085817919434402651611539963533323261190072688172954627790181734939259925480456705788570811714593265755737343786070501126124895274915067670874990685813682621881741095566243765242850801238450789828105437151974991664982136417736600602249524628219087477638005055903692586665483243215847550591155111012466279846116183814537671653052630612001065955261861425226103245145984068472558858242122997037950838326514659480985470821184732819097427240869672019987688958574269859678489399118427114796713771462311189209842181720835381802933280945623926326364986621109448458128217781133552204879616304832150000769988693392219727198056341192435513633410467067082204982406400563562247968000353335316384593108591559911399674233626543748439850903743582601671626474146127865077627631157216592178083043191147011489180779608024801021954448503511197908942106242172929957714329889725117145079348894956579542279208442849261915894622358309481377282896578980535841724902860207503886897140134814372729893358545526563201452643949183678010877629191505673804454690215820536954161982598684334805075577978358657805525415505801363074909142581269556692062971043824397645193450551160235613758895382000649679976523592513396220188365671131278196323139712006629206776895388829971969147213478787056504656541869485625691547865896031325250818345661957992110649756124622244791917579635885074679960717116576098557604684717708808433146775962755850460058303705384453866697822863653431663031928873241401025810479844426610017001883261275056725980442145602578970773751776496572036114485615246062758561078711185504208676103100787816839691368835502095950167135990978724436504690265855489620356071876872187168135126227751669784618585976514386397123919071389758168476328145683316697736220248751230737175238854932351087912605005797149643504157434170082628739727024674355547667304461870694487278366001397537881974395276219299664215054421214221592349319233774696506997099798679784367101488837536457618664920239788536321574348000550098034733627539158802257648745261837205470936743593020535367096795122049015239250514604084976763060948458427542442464269758757698186247223391539700068912396185536353114916397995414999070088019897363350986918435446145261824038107366381090108045594489134250546543420356427217436264415751029164113369031090420768312415618153799270653549383097967295981147975064980634343292078665683965110512963877330067249956562601471244684660106960280553862730628994146190758829917717744266163244389477080447391549020952483112107578264741510351482450731910598997181304203483843147151476990452381633346229976826583531515296450001335178909860047406868956367401815878528374124052076691856411117629737340648758825958384481504467148000371723790276069952981522904404468506448849728956288502687848609059928230754599873859955930977235316480096302361014893106643195482111592626806601367419127570872742575017795570850337539783319120859853053509927255372822068789510733778662375194536663509528693365474633408768728642764888084288486820741463692407792841354231735596163226556156951600452226613269731023039269414535993052988540335020208625454979116137568324906865585621761993469719335228805308742113154141485158888730451901993081325639405224570120210882523827641047533143312260170752196844793262090140009759284333411995935581898296923973624986853821495711143915757857342772461521870558546627889207033963841924000290499096832168043770854707973058243244330428574514205070458063715661397925742604866439163218420680617904621538779323885748694100254833096611908563406511243104360776719605385986203112854958615192399638874046237539584470976461142037802313120904333854180571332805762114780959412909405780188320258430311240052911200135874904222505096636882925017789687055305852558711541575156796520774045527609394529517467742442076454917646667477028159937241731319357466906654605639614227779875912779136209313778126791657351385903055355100283085499388327007896923944981360643964918786148021839220452862011186855979508850439505105102161254653895745985276545760372713683646850609999589178688129242214387892909013828742218677434296879916036230993338473870897988289082674952028476263906689116696704765712455671403790891946692772946097252420932309566154155030436018921205586512212111129342622469178783454961279651260893325064781109979201249636211744085172539022918636161575642124286267855027450009195611608588287185167625979290392465411888492796971808528653801282725577115355195203515089656721085166054034518383967395920086125016161264698361838199726666840083815920756120924510630131800089797973584691402735149284796699951810438555006583873120649156274171892462018869235421821303119718124527394598153750358602616683876537915326777117185157958304472085066030781247605929984149079316888162199848111061408719437742147308643721031551198116586649081363768174916563024860173327287937699454833832108840207950487343358914913090577861742518561645269885583707936017642268355110951609622756763924615897507849679378411396792375141066731534364110554292778798433508720981809703535635984310553202285823642464033505043274932281913836744424160209437566443928820278989031562677938837666215409564705896946829472566170487625981775329525113698002536663847121444204259009756739766593696295999783902073338692812048442815124263999505212211120600498105490368508470707694296470805503341272820543518478877793958787466183466053169871248368484701431590953582246085255652430060439422451285584246609260317853675514650977951437241035623298905157823829505799491346247268593051632157750512580607230628478943841675078014300971989602312334787342908638507198740396232261499001510022964105411662621439546639666769624100007690561245124372008842863171876288335458269997731553247230575889602273796099094265257215389075342753911253053086567895659630096764392158869269717850190378854852898092585499413682130602732119299776696515060835029896099332498365369292671160091563772943337067695939401521098431616118264825917997184950930442303533068212227885921140945815014022005223938354963316391675873684712547825233280599653354023473096216102795512322448390972716300497028294750021874013319342633613596774525479902902714627088785729601219536856550678930099764130903752628328958233869241541398888049680808204806030634018460023401727886283947363965503288361179090891025611534297038080166386479330699643953058222295491153338538723088087556793927120671867266366512213294578355246328158160886507816914797053398428382344703236734212940567298472621635637982470090550507403692698899218349921845199612660327390104936808048608031842954853250134746591227341953610169776929396321851351115205892297905580236960777854845388499950539603245219484801153193879775031680725286839074487182439962712077767333331321168628587580223826947708504969319762917435186608344361444738047264364330130433932114908405624995846583975455701847675610013853778714318352913058246592835035423597414383977754737218102144169007138897344466599136184663228145117599288887141234880825640930640960400898529695704239512602577451582454055038032605492955270886546779965620420433873516895902830433258142867658244691186505160693930273543781633535613117894310781271979713900396226864553258266237320491434664865022950302095859108620737874459841551356403809766534895306740292308570842435364304337191364889767318047559845920910074790976226238505231036909078326652426898977225190184448794464352022302193950513246755546621931894997479023744990498059186240899854521694955988820432612789823413250919971251765614027965883904264181401717754217378484959043975236430692529816567287595172071527247226510352253405273933618341864317274635333192588539268090936986359722755913665404044795262156424747451839751783223998314027639508932140418047344648721448507410278221367386702265627049747184420217329962780880528344211380703500991706224955170446333367179129377851844712990761192024301989916684359554427068004979983734023690108352738091024588905207403510787586438295740920869552536248770509981833551951625025315217562493694236150991938099382955676232482596424672525999578116860629763328243234740493741546939878957385884234853033594545147688262484012834579332605074312688386889118095001276440355770681613946902640906292176321684381256263660045195221692804019812354075505656197522398228690065532827403068155144478884027196539424296928976489095905553584165806449274538010119185236246719236658371699623792573760724497386282741853207076707625748082071325785560176032704343590095575841817903949470400150789841014841403628025333223694935337303792970098743355191899375474105071029811551496748443943860912432045590570310320841373652992238149680201262790337355922015672401601758518033834209789055786895545682337901173774508187484058080489172348973304121612266556721049669638786528307079327444979338166611847126914164744167341131156873663406926277964450751127316151441321201042844536042766604145746325670050599026264740717961122705305748486117278784181897761384009405189334724034516004706735925917036631607225780826109658359743885563076465147360448552272123760779294046742155262709970974857545890295115493897302671261144089829510834023074701953669691325510875008612454169806241477422513461854607272694056696631114809635912874864298030469267799882863959924497940391142200335718385559084711015538938239288884805490494930625929382925897147167589225888674652916415240162793506778610272451552551548396767763454244935664879613165633130126574207775194291602200553941133080037207403946778258973881123138171766784334965110599668499635407151642961149791876090712207942850490260184944271519350707134170021167739429083847518224138129293577337036443619685340005085796634490505174414785077798163567565904736252415639467450325743794730191679009694037191332239586685198730679720764018618031616233355870221423037286205798225553647669315936026435209933567521366439114393918128940753669772144128456095740640105201916388933256853328967273953433046191617471694210257616838199058817510747053181553321121668498843100810905393800473354264550526269797866245256973980653011986484662083512580162730493232392856874054847509705738494982345357287754463525601119042304426479814326643295196964605830816275627267471599093554410374235268131026321000767526792880140322238837606215230116117428952576729441090341807317288282493281395523906116854335616096243579040546259858979283428187085450848757199356042836251643135397662876309448881609285978659191016534334290296965639780579045849922417843169326035970938837838843898677060811365275194235183502127414965011770446128809232852403720296826716616203273283266512171342330249446398598913165203435469209607145963690444176696729273823535937209923166899257017632560517056971609016564903403256842778251182375778947897682713606157321318409076949425522738055192573254692968677495201843678144708791956137141541613290939018238596793285908782512422771774724407998881388565710950155154190956688478007972931927746122772153488625937982552660201490177084866679583866527353737072513663038889146079371297673077444417875394354422240876364160481196929112976518200499303811074266600729569553522693032775611515100191622101699750713651271566426949219108060946441208313217402413361549319345839835989914013682763236723035229276033207431585536518183447112012114792418440138650885123592972709074036449592937486023527839540324905394970376739389111590716628129314136758370809536090664420381959989546430274776081293783069133643496066738140942691106907661468132249617989327748572156243410695252912727816704999808605968024852430340560368204358084509049372958184772893267592671217732007063980778677622889436542327304254631483983103018194267283427044725795858355584005068383295197237370586851576625587725426503372644288570863829674077052773523254618618943554237437278335155390548117407259558851050630776217106623134155857712618948208852442753680014036550486929504003617731902237733470282130572102265690570740149383492142661307926531880621088909795492254648119746032019686391852684144616299841407249199951971456413527389779578482276783747981759520347481501365369418156645119486174825854611602768234102766803606715805533744386823188512344174967026360374639902105966592635916802137328249174358620195572706089540683631391848740291112131599344456827724312709895308152444011122135828893622873641480483816629266490036038213180528881630635881874626563109814643747078000410977469202308851185533956259056095457532622337325587790128764418451711592698162379842676105901162735711357753150218631850107019614141203599303542994853679478638993031018985281234875048576846403423811072589584041700515457445304254272070994784177258005456478875256835100831822005080349868747551614615820149074896468091020076734989693819746163861035082895719336652685204520942415082677721695200595847874801705490455941626766414942005698900932552505125166641558910258496495844702075900727734953423782016781390312878949982709284912144003354123840025256300950094315256361663078252972786581441417487597799613697660349610086816381020852370577032495833264652214264844185625112057908899812776852065490032755538683645716369480947032430233778449902130113721308398500320610289500196829182720731068819993489573073575047174346924682809892549437797781874352697272260774554830383874811496590741362182392281844693667025058069859052145624901393382430472248608231420039057460393710146306592441485350864161240562365043707383697149458451766744900766494069623151819494655970491658188701841406419217580167688645427520062708710706390900783733653489541831985429075973014654970657041068525921965228713745197785112457768783523106950388575567215849622649497124585715868097212126614710550049475370159978937703307970777193160742893214977319131628233396184534486223170970116920081876001152568717596171692450266039271107899254351049374297120039979195293896457346311950812101235966975787875027214299475797784892029896335692839855042618049897448769300787956102827579254946388462514228986533045864004595086901768580395516584879763195043830714112412901394734621571809413702426019284196884887994477856112639705568018224806452884067402769593804639321652685877564271317656570619352614589072431838468090697933613807154413387546463572218638147054221927797388729960568040052545925711613251571686785833633688841898744301200671801923375672307867471422964410135914481116319630249219397867539083803678757461978374688071112761525742037619958646993450820885419992189632533025772786800251689749421588565514348397816812430346695244001652271621171286603028340020354686421045283358508103888868646653415514431956630150001111929497789635206426690480555595343816388392854584723543025058133367178940643928409204221445255177510480224961891420324373233069700034632996281174066194436135452076565679105316200244916149443439136926603200418772536596104292123960431683735800991488178390188069473617717212714337022724596116322032965505899718212859599248683741360238485437923552301871960027392218461877643611200085125383332672204419265546019520403690185223182118283385969288400858464887605418594614652439192280914760689598669010005735081613433974541865598360369336079976962803081493531916661858793507532880069053357083496745986956794297021613536026279976788525009714005451052110289158837906502914769068901681528135735893496852807035662011782054629065618184839617524357942781126734779589361852807018359155959373944381342118466412076253326609294626491148859557468723090065132224485067781771750680033560447817381096840014086640178803335613309446621291374066147477632636306497493737290804553591034355524708081439186565900567015056521286924096116834102794280481141265238548376756191470953492591242289081030253828737687062010130121248688766692171313048832869742664374592853865762848860475563114769728793367519865715512342719795859455205746040276349545926060106022903612969837641610561796469088091488732975751746948703558231109917724547993911152588126830413372926054507583489153805097141070144961853163136144272484603276315110445635531239943918077227460122061009540435856786179638280893600306068231590957097304965767359619957463979166841591485265949426225922002652229868681123220847571732684908307930698577987266163277954372293102738595179144671677874056145514423018823751035189756137844914539981793480288522409817490111094862696575262073825180238186568269027404985776412023675603129757450487448375520716467479973727591252694085741497401771731854122438148544722058273420588594936610322631770203815986701158261062767241310005107198889196044708801612457684666075476379825497141144574580640016743960390276156498395682302516042749598683121265472960520788992501490080704458804803196188477792383061147402540710435915690253113338520465786717671127969360212043805918871344606190487961940751920979842711544764795720314005773569438336852707434495859105385331507294484924802314005126778331267847769318764560222875176186736157411627510615178516127040964151180480421981809457272639200454222706949493376088193781680147217075775336074955710054443762049481214295794752188164315792977289766446409479322364519373906560739672491003226654349997110072761497337019371404144111899413379305669008064162415946092441056695730966911204847203345847791729590811979655759936969566396621643041293969357621592465733577623092530853813037605655607203435485815818154506790249853110224836595186616225947287056767221572825808860643448274095307153959649780764538562266518489059529323994591414001516806381189904847488616992166431045724303668975382003918809049384437256772179133991197568288325800753385837626589641458376558350686026109969033937756407929357981638452488261063143986474493112364897700539128209277274440627739064718185031843903018974312601527035319327108791817117450570746007690628727873835060769842367322296555261825727485167623854780571329552232554292570300810853257492462763152946586445069586566185462856028612026263635537137353376734750140844471957584777627739795732124301951929646315238354809888402731132099839686988735961798034885973740872538713183497964449874284052031063116711225636857740107402790478206911229297618360516543405709843972706338850811149679156375052984467127213845536148482446679421806501964833695572228746942717572679504503031470738209481592246083114780791244956692343112129946333218267816042413559523744083417840124292295946371605827131483863389217469425908054458765648651848944109867422674393075101901742818412286604129642413137247401841439876671779648848155973494293243572244689692337402260051159102491075989241669853863966799806912087149329578252742939911461904772165821147901293796136536158034476537750034853519754490992527497588439365212168318486584491023988308659378500888274514448747258373777376796487401553105040655891481498280507604478334630572934173181297601019659779900174673516826794095900120060342901698455816429331265612222309773051144452295101487802098985948082530825362113456601742794287734477977495607971409491506102880075191226429456306746953348803024662719236885363972049194850738653208789517358831875579984652271260118829756754462356095364288719436888514617120373879587070783268637671048868138411847375937186941695911708798075791531305966362208048951795570747437788665115767780372198098409093584980372287581535339982281281460917420484681823503799956365372406906366347493140594198935747770846937105991538520872458367190760750319700570092807443804409954535957057435386195911845643304890630170515655655973928676010198041702139841250905143322402951180603748838146381018471575605713616900267636619983538743059171861041887596224520263797181035283317069932435502500878214350096396992382809534960420020802242916976067173890567483327226263853336628171841199433517444951097660657303567194459542422702112549954803778575421041480352858698985359337029323209458792917319349701389400618745248619292294472113541462296818140893958137600669611937530440290788138410259273421311108414585877940933977865741209990647104832702790911370830028548720196568917689975856823128708959658050905452987688718207606018081752154973175359587367068973138236090158601396018399142612932972340731544791796183137214783938745404293036522946464136641174663918086542502508157795450269647404324337188204228655759487087714979129355213928950108647106430950228970208828851320468354127360277498588489576618998368360004138899941797621996520432543725255841131269717867570069284646420154376777087864760688786099149823944818128397512279149206622444012455644191024011204754723304867943829461676363469885726902671173921798068250747756231404240591333850672586856948013960768426283943338404136261115002595694002230991950479573896781484807027330329976248780050686121224197458896275962631629531829926895576623878970568417693038502274425709118885797322391324934661937590916045175082576866669573930233448790672136534852741260620531673963105685326855939066831083799237529656112807829371277155292878332817575740091737071032963066187226983290909801053512792862558939852664179950245894892862938963387357044099329028263687562025379038840693096042767550052960893823225909628595940948251108084723393440446286203806784378072476167556366876296574560463217027218249872051635910691202258130893447627464161430045577629714289486515790015694597839133212622416405993637106528466115894894633336587908597769731632603195561582123385586136005134437126157980978522143222949146093309867493053848016817985859831778988843852642538581754847433750758560069992808258405282972979403490686419380158246658732024333247342770579732448925122377588596246997891689351960856559992653711876550863408110608109180646492380205738573175620397668728064912761476334497021669641878736427700835888866197709124132039739728927139891917959988189448333121805782499064131582891439306848209270863194396612857512487187164493126790626168208653529458078648860911555424261010059744918426063041398255984487839911206697634991735969923043803913701311702130304830168015301569346547760833104902460684497797194584782642927661433291934984562129623497489000417937366010490852258553187643725218074441537405374378306010192865374112879450111535274858590217856361753813996431563904030930805665507010876808121012922711410396568701011333896163392361841158200007319846506825984178094479636789210259062709621230132977186451980085586183947999351186649211871538199633044828477312938492455452754016358979246954034515221793013145862983977840899860571493990005776800723264466820786920038667290202585810957797528960184959928852978691686162306275725595823061840140435532838159793842199695689554827080558563608430731829489098941810945402078729163014550106432523126119092686831991487085258080754510568358023858657668100123621935586258869553529436344210420743771691238679538572592091484609787755689437421081284542648210313580139046626003809525754052904945778769377394098102878298176278188368682567375098007743180176777353131858695233515882953390580201653915787393180576936304300848498137966844164537567505739559059109547174395536151070315827081173523799870788655563254545164078771006166625499665810244488903591676187196903439292498723769381863648148666831180293389118625446146040089380539953978803035574079721666775957866851263877556841595542847915361236620896242124413343702243143206442317094988020976484156259940939600023148629982242467232675722826333128838599195673831986660993528217169240188014663634242495828333965404517774671126512323409568924236075457802036598258763342940271666649436203910701100691869467205470559607099433918749641684399634071116878941992330429993071970847972786792843664144792325710632999555034130919800831471442536443372227730715047447591076474854636350949663327056876855476401804682888545942584622339940626215379882274352850304361719026162572711858932205197476360543179775493412273887305532031123489585094280315877823741691403183289968137708276393699014226514603582770157497903148551219513749736390627789931638302659215100824988941611198765217397780919597618791493835872658698921803089084551874753534486430681359569926390136758106783326000234721401128264454462768916120102514773763598408559575588708936176207963432584237908119280710747648734699625894925627917170543374496001423093099132293136679279818326429105396379686883967393701272721637995840129170809890762635553042877483831665186121026322071029742972237769799036653050904398110203192058576420756622866381825452195934365676020166444677015171408092393304728058722464132769352785971702991275617411633244318768020895857313067186175446897548104318670999228130208975422110367893764983100359041834915713390715226965252211104920982081833769540811996163649339497438762951287347127013312533216379044623139519469618071302656585582208225350140964514413122029370936695908339813938754427169260046263628237467588355008034744733991102131818336414264280586433081945957239314017351775517587501224213097536508852171197728214919744863725106666482235693581902035539915089470369038296525748949271261762791731436762953000653619096429589282794441067493565289142244776367985560010718013512407964801168954072444061392828348048502501039484436662022698888410825013476171044793984871854739233541385079439785824544041692325633039336294259698856187821045810162093108943918894191570787631663428523209808418186361019644436368475120220911842664810997208914547105421197198202708977523534547088793525977466307045136008925221183322444699128471404650762214834095270469366145853903492212460482541617330563978013105493597011106787811912204878507579485023278655986923327003068821456668088942570550219591598199006748474952694268617542518413651285372896374030227176910045463671381036043038367901352063051536800354986594910911341951620609253180468090610031592484476840569677930515453988654065822392741253713806539432383326023745167853723976262767739567943314480272955483137603635398310773881225425331596737800201942678717632664665542741902554339068928183620870812917041372788554255810925806405237525255221578685010264238201119229880522450811849068228684297135874742883150466928912716728047561979282350152989674183464118330403871478149866952203695516684961467563552769719048353838663503665580165445138617313958095523216385488432082115065429710373828313560458531791899190585884866295250314517996368363996001028338339066863367421504384351036270518544249420138753898419840295848997470297952560226888251277769818735789270456264174515326788070404905245837351921206234483083120995945335841402047436753265033814456792253725415895104924927583379615294384480452127127248821958247872158283329414684018108360817636276521800303824352878452909427620071132973430875134871217553004812098483570855074213686607977490700184391024675543288798354188023591937538037082518648207513201013063263625079932364631253243432465316248947211003529365282674272662557540773415456423335887410821202706834628104493783586427443149659734458605731134200781680085661092348073975203532361827537622992000332484066755357066372314675124205562227021102330178574366171961759758208181248174924298545192858999330393308103830394749380243526963204088117052913282302602992071442902500898895727542095638703087212520213255659115268034012208439985250455554101112453042890530157393680253767166223139141903000816474933149636781172621982475222607044897127643909343731701486650598106864076683831204009204601058082493524290467919374024897582905306239977075527927285456973256341667633662194856265153782297926076175136756786489289516779489785609048758938376477675563484093386265114684904010269425533946150241238983273547599691585495531804744029928955399213379841136420391208375321865480347900744621711300746973726346761040689328787715953243892293040746976877287722155136814377633189433175585104565977293180481850586582955047691184450382122887726432074407118641912398946443225894420648512474915134250170243504055242951923759604429007565288114456870469571076145053377842620495001148498837610214217073302114154905898420422457243634482631441574626487838692990560561537103088287762524438456468935434863265888552257691038435330748653952656290344749415106970923719913998981545320160280735852471859133604707692524867963645989864994725786682287475222325270267417631752918556104184045551652234978381966688874198349608238999896240748232451101501317625944027135693278667383477755135221875237461529112287275616124979029618270818200973627857450478449084556986139628425268184356822996092787248967620180031451868878670034231292739156409125182656929336297033210244664398672659639378195224213922864488831377136176172083038957393962825109154073732747952348031430934568054250597498340832639239715300411570877584450764356221915347984216544947087465027568406075185152007767368961923241693628575457911632952605032660066039925766483229892404819908599890157865306056835763813669438158757429126507237348005706250785108170293294027611704316506550688136303188157743995113797607606076272822542147737465593345303363693853353355778192079640263352134109850146850277096438521064911417561683534334199769182322437799591316857228354142630158556166892611490305094477491042557237844601611974330210115659153669997991120079600110599361841599422408359382131367413285014590630539270386359408932212354455852366372735860308642170385809612413532019450115588217952040133140096400895504857556994450113782539699194657914296750260606910211058270665340214463451300759620639970451139308540978789797321294825076363985272598917761213378331805665011166382950881588512754050615558885788410449478153110280204274336889711231682619873561641500932724138452142730072957638491215768542590029228489857856367610159106619032672312026195308316656664371084324910411806382583056294889607151835525467170405403637780205039441635375612070929682294508968242774344584468370506794283199066114299533488504868039664961483749877726646758753444287346252847408961871391629047529967346608923666131213302923277800410004451503533100820286390966033165036699182882103532793516489444120653035384764214612642700305586576284057188751763172646977760086622586861542220940019569324462836636519466911359933404378948362458646587944969959107152639038710820141855127969613517486836200272756009255143985855614154243200133556685620551648957399249851788290190121561757509656347435463682769770468110652892544203879415851287141483444472850724429914787523018067713258185608112607412391759788419171456180385702541380593375250348027418132565004776290859712439667205841975491095469184791582530990218619504917324435205604603134531604858106649411368126931368957067360909405886408754278456510111484663143922438077668561511427902103429102701684901618624178340130770523176887001865720485514024024220451279252436990046714857329429852635992770740035264450308703989266557138170697777871156325083257003956663039267395973768399169461660272294157458993795705092142069153657726803537492681414697335400295687617053892063608083463944529887280739778808110249473959552110394873682311800165086746279702572475441519363096148154962693299784096682571575614163433270524330176549975496741119977608838980473287610391028509535962949513537340065791887335823698004746270962757538452437765391230574489368374702514280649654514529724777261247915263463638035832078212680047900674734291784552012054755523553455630473436839462125616383549063128257440139400839827119006661032336909887209270587189989900232811403099804183588997656480254397878552983685000289557589946719071709097549373664125779476592515717131442401539493379980262288639433909525977619638077736592790421728347510859039989312829710182569403057267979041939488686215623144775266210255993659355359117634374097264888433067940624445027515023526090858945709993243151218129620123264385922325955769042313455522810505077687848880801706433333635624346307712495820636476405877114643657938371559041637763487481542933229527986701833369535209817525670141517904493320116435688528691533734340979545131755599079817837088098737916445723909646747820017336499335923534675368677983352079829336340899570891294019932509246652295082707637472478907405629277256998385576308075894225786249805255337084782767061141686801730001759403770162241368425750550675461787663940824318156062750383942101523520316068458219644415449071808539484589639847787071900191037151188130455288206543830648515604376187374588154326362106590922426083650222105620806372222740467045244427857412488983690659120839289731262914598855876517743153471335094216235867274392253040537686648586402456270778796996281413126099549061285520420922125666637441045110461396088682156201622620673258616373169284012516006301357074482813323242883173771105092982597517837438497073346987828827535218639717425864952232281331050499471831024170609613833779464746891884146378955431528991115208018480543101532362301980508971201846515637555643329856706826667788350958344816169230914648668683528983406301886403053581407400169142508966341586123517378346876696814040727831581177434376590900084320125461096984537694543575531001915260596185231780394773625187154669794917784864039906015957579538971820849407707846947008372215726055993581189946192374663276970666437033806960140929292735607639220553119774199264054652115244847981350387566022553192449173982458290453449104005643791686639673433254748602657970173719443864251758819549460532032187973669229903124370085522496569782575238933579958686619574146149765753605423785180004293870601955487519266671661305529468630277911860960207483197520219026640280212871923704103287926221733631580496972101942187398033039338756769526686382516924078860068673601828186371374221676755619822952384786627691850001195844945395256324009839248294822811982258437288226646267345526914733025272398472707661716931943244844158508242497849855062855804653592106631830728016751413617296459444257514415518764521073009407072875499877981717784040880042172375754196613310835893079240557756977251166136122486499799273587041650241378490933824594502608615993881729526976403427109571465398529294239466245774519933463403612428748551884468877762586468141633536803466694419476445711883895038639740702615860799767628725189304997925024488014458653577444971838765549555387615658798301041090823204861466171414526888603117317643065852963667608158975316850315599674995988371651562299358199641045423945794542479680181309216904300706995692270679241824425702143171677310833138075357975864832048359629859892060798602491077671225123592338505028772719316522611846407923424200128606098834741871485127642341008060884054750273758874596305278393590971093601842159341627353093437682439487308010449004434095695141968640833081022774529139579234829915486560341155954305523416762787717595239574175812979314008884287447265211167747276445655510592635336980576951272112134694127580798068938424768205834241538564897979329828969979872664078169304410265467797952754909939478548321052711855758991856293818385219058202052047302449143394255712484631849560719229028223364883957465429181526456166203464931067595743468569059559242010539483922167043371748576775715067385541154938428237274313929968967820681925674717835991910673188966595871957767798384435889390001820676020239313497146705320092746161198384895475573946583412357304591361315656095270451278601062190466253892220061001103606726039907628981710773821787059666578531205772907166751739229856017012167026942355403714428214485090090632602010127878173170084189880951772524449318835672739920284471221853553248987275864761934864932088496448697728699410128762053099305202848748441934653882787964046103895114103529872028172791624964074528809641356672994957025655712047521846513624702399240451272953178021567061792587843634130503938433591304079985543720835525439877979954151027351876118026238483874080197026662598253746850898376511633500122320299090615309151964448226913969248615554595169536283193164522779645526469087608511482974194308914101187191283495059055944827539624540965586890095534560622216374523519100649875093037466127264837871879182593679848762462843106727689128924442685518274602638609819287794158657630908230004946433530669446104554438698478204739936495356838610160290610689383706740863815441369480927943239642225984364385070993225770448786209012570414654160442958572592727254378584229976264882782983991915501475061407209640836450500549147453197770700909769967092334972794749091725018715403755535839762170155321792012421824392692853576438491646259841555647431604850190807987241308183362512755331393717621235503817453336434357338607718044656845546086957486636134507827033682291737884886004274798730252582965375749934283810087246915601044080563435749003098172538177822760012834398490473190567362844270709529916158244634757671186536958133285446021764096730985126143442890379933320721645950853127004847101317005004638263679452591387867214135428090587767464561938532555020108856089076891706511876454343990174550236566616148537987172161277620601622599556406689404140471691923899582518704588149047046880928087074343056245358221600529702543998568286755105803828361815424587976141896830581901181829244711573747756416024409502567184550261900892577496153822754549897953590289177567946952805422015551592695677193148960672678883763264561610769106404134719816977415769137830167129703747877587744534312914364645270087118496728647259635320159433580460113430695909201509439884349211899331120514599076690628237728216518683167912096759886489836313171347197697285152056239570038384115298008158254607488963503709419981494655821688923874724309959951063729987832299812703074092306138241124077644705290359348108868246773035995734024411322983329175665508781601127344733264681953899015163433471545620689649025098658031266320312958484416800490151195051644878847564121771371298154267889734112607600762573645806747594131382386524995894432388227913189399785098000341123922750606749937291639586995427571804792111850666473869391746303454055490057762656769297968059950400698282242077079693539598698128130064294669450802690704444697086074624248711240509075821434836383053445517209363812005892102584407571421478997922083649901116874950238333243803174489702212976844139569759168246717879121423956604571469972854448460414999075149063736262610782858647515290848787307220574349167319119313730572488364145477907743813099450198449398246890749816078897976100219114816106259561556187027574404762278075641593493805753588761100717657941028838856240929949466048564407432644059146337530823145317332499437424772169167993842628518852602646635111956258469088919336136898882328531788766511310244163668891351197801475160352940107539967888675162315297258428142824958293148710571566698334264650313748225602615758564618963553101714185286361543561816611331525804341506844946137558363760812661200732330037555394822641640800807327338216594546614187680830008184266169287388308075228865930931591638638323238806683511112503886652326899545818176596339589055520523475282642842500076648991912881698293704088323071414262388375722671616004272564120159008135272798786034153202102741330504424714271614944026909419467399641889420021673248874661421880051207039361381266666097267963262214104493936986981347059385075878784448660557403544795950034708930347439381313400253031937324612677289069674062436713066550022883394616076509251022478950506780057055019080688546538306553808999838323617221016469391530273439197276540388777474407996387277697974589807207507769471124752695613980976566137068485614624893330716764650565439490377049160591815531059078150408603684566605854777700883751086192682173219476312552994151835258042496699317370652391402068950912728465150063102235350790406270230877928448613159359564926282294829685357491682422784203243481050433329714364518792577384148420862334124813245584934078125485150979689742182048707939098278179810629245885434265605286944743272166314916382860755660286759451899804423615735005842713695038801945690956055156047864128220383726008001579000307827557443735442920066324009279011455133946939153256774197799509213855651120952052497604884740074485016225063255205585385741883113147024920561562297303647962200132915412922671750535799110618718633668202982148846237393488384481033968846219270860711785867825327148506387634160933999137923812849661971475506722232909929992008865756981168600588455498714109148859363929578015308926788764736047100025291227853570925678628687197966649060919869473809590251679542646279528275394626728894925805629790447627450326634955234149763569562265279753612485449905265034153742759199490771962694143638315823102963359206280688594087406588985933266819739560359887455725362428730554121700814720083066831473910679730429619715572665117247050042145705215934711105021014329804206478601030783998715732478648869536341027957287767037989009991087248399622153857259477661689877645140168307496775676453047164438522284378991852621231213223982829135142766197621010178198833705122115472578777019121065445989212426463518681199223497071507374518027778412103725009813114580935329560655264952585235874493901181273059455531108463186908687930436030554496068683072565638800329840444683681594123845766779558009425563729485393765690508750938520745681067458102382938984874400805656431822550311884165157128096682919679541799325379529982908199858348773030402094739734671581942410433251378951973060255759477702920804029518223305112761262154112145230470582760540079191708396871812833214626908224897045691797503780188182431072993663871059242603314071025904700557664068741171196871424351211172234586391982981725429331496049570916009617177528299618814360180155754715073532411064867696110636852409661456056459357915160177156717514280402236942543444125342092362608152104255891929683249511095631827522954674916334432438934214686218070794935135846637452071686826047417953387758045071381279053566573264300377556248579618366866252228104168059176448948936103022945095419543767156562193254524704354908254016715854519495145572605518373301449562967558813244398746790013192532028642990100199586231588905889980208319246570015669847509641080011611150084161641527205160854148429887512974155070479700988645265405368764806891254984804922187833304746699699197455680158658792071630681700264912347564268853934241518472939524322428758494571010523568026632520118761112508089611525254177200935390985535693671319002087679364435923041475871225832810152402427995113927247279625685216591621186297495479273082779796822448644426268741796212927001021748810505351948584454942891864673036822667645121918201061787186652432680010310173330956731197552731803080233967061032314331480690218286231858276662029076939209902356407942508079673888985150054008989081136855756043751783059689925856654546854922617056871315938074360265370551862824422635979120059465208257673664145498812824608267033314918644769751573942809913104325510781608806629840555228119633056829113193869189332004747097814121457957472560439424370853519936995406434246988223127238733671732435979862421396077328815087430612437688921138360369961349011334699916194947949745774806627294295375514754605582511350450556274882280734082845021000596416479010229113131432597929083259460744027522814782912255270617334715522187645946942542922100739669590875496227256524239541544113324909523284475461764790878685754313409821668499281027009384862667977272249622244216165462817287547299048958042916239161485615012446133931349534765912411057512850543709953335250195159431948201135779622304182527163570228689596518434416979752799258597774699891494184662061586372208066186075667534517334548937109079206369929388244653728821574193626875887729144173774913184588972646044708098956265238674509838412655277968511930763999950263305163431189917302150507013726576932707794276685366511219571855798513409493506874450188344462346327814590205340646947105656737016786690230250906559198162466916232701433122223275911176888073199827710457396924030433550544223238875754804006220029638788318975879976802072396052150906038963286544880860794030903762962462429605827739727697426069060111011253369638538043577628907473169141844430594629086681528221493419105551238879256737725717390053828048834010484248242031634531940874445720274608461646152453796432237978630876986337766655560465759564722247023824201128222227481418996291765405256897552678550076332022998069895543630803044129407866996380960258313586643285244758874108066462588547013062559783928894710785727302084231521951380553786477742772326835874920517988112183163638013364038493904695029068609340150842389360854709296055729486831873253598462807415674331563481526774276994818591354139813706588323171387237736236679760844835074742969120923405106381641363223382691799008398256804434508662422115892109768390307181315462009812565013276891680461526203920916548332447423315921037266030036630978586899530865729344813227558984449330159639142278052185812630754985385922915858098609114018434236266900592289359361952335616974628780382389317482672904694350955929480809670456685646279670995242609931176389661035054900513464168066233836437920395027472249393746697448025354892398918910080102901638899281692433581109725393309449125516536592908739749536185626670392669147261079351137695698318237670560776740482884104884607115324204696572145032231045039200429674103134266438382183392275668855648686634253688341009274599065100833295017336584082128737817847351618638806946533541882365747086889211125379895767347334774417626769168685553321931258322873165536261930506383742193463907685641755032850762264196843838569348058545766014104947848896791264887704713767547508757043094442963623989467212946840459972717353287015075180797031095312736012417076203197007998076586641939925187590457508005087903249220625869770895857122532379404155791232135624994105207990919935816681648174103947918144368204509153643515385348740803199537647368915871385953510557448297927057873717971396029972856762783545367272581315970125987851651808759280564307331169266704161341782434866197826019710710942093416743674971346847427001899381016402736857218713628959468522636237566611365093148124407644985275875542462837436675697912201819873687553657735723947877516084904219364384603079531855229549911944023150651341113703221131853426899837229771555139663193979772312719391232833598152135398349038332282909326650737929700872307003031170835988157106441619617620752727785609918352211887176633645363550859896745574628215195832367968833431943515677967887611781992584459607773202798061127531854209747579784952496902327288701926413911495412864047103320254505825547292641980129182297348981968776200167466253460588809573218171415405575919394399547905001654386408562015919725495973182576649631841695977008512198147359226738450891011539543344327479239907794227349260068882265848465359535398521981776824247833185980547550874787244270367189993691831925658548135125841673627206878219455915346757060757095904913476495275437544672198461256039237938970917857289935153513708743320005422741871275115323982922955606468268943854160979844422948408348027625543879987144872109052253118369797957301015123472963089198989045816121640764178952760498932340499328436523539920936968654036719877236046570885517825833871636185084971964294595136120960354410227981932522329579809216639792131326109940151148461645912987987118417778875704885667488272676499313138188670538318677657214179523374801216094905828336441967748941943701640453905886192449849001328291592975164698080384423594863505960007115172483031442681004184733889394176763268672621145756471067606827728900445760138775657572980137160605667818750157969522919393216009025172826353720359565233038686192245201465865246102400192762752543618371466968314683262141389127797305900272491638196924512229511215915106578050212118266398522365628688395140716763401159026249274479726108078893501165236662195690516017122669982774920052615583755541123032351836392602418831126383244028935514504300617997426057950736792391287817652062216539985630140950823030065886869783803061146986310677687638439194803143531743814196499839294185215462141536100659354623827272188052453725979897621192693514307206425131137150082143046563327234392213075110600457451324826615756921094756485212670510799922373445544736259963898726796788278296850608586369242012541018145619078934490257800509167474367902073383613322847389053410793685359493939463765190393138257597948974300430831161185811311476565697922965738945122177473594540566908003997681393075615698394701504571696965000790334648026539598892613604588231080427032778397908009984996233448290912690157471587654976382598444761389527836889682869189657014789740037300964662588822498277776984774379717467358240821619873618101837898062363071964652515916482810264451272976965799152434705821187072805408925633635062069588374034499952399457268208538276731616697730607019395544380641593260521332203680564674144903122331452112923406286986415683939038189656642407677223157866668527199147999710645602845581157042221971768875596723082942992520182741804154823517005193881342505864132918121939744124618016623419889894556725822694417768457445763710771067481399733385096227078323977194786817482090828408680366574167598829793933753117618459344208311905667140870940860985198281884272673725475560053998462429430912636300236989854418113112505379780392154234624590918031760371102160241566257031168077356640113345833245333596414498436750736643696120090072620012044021371331010696898692957785754886335949516314789831088767196153581275647054739136830509066608296004246688539891271943364633609930142152396350396383667545669255600654344279632841169803159228992506979416072992420878070404331105854881927107448538855669551791583217583026951279192342660030261022259870439642563232850917057877646340726349283557908474229847334706801306305111549172190065984958001140644959681529364017429421032149873204132827706181243858543306288702181640586840300717875793173678215030564921457747154510333175122402707820684808716699680432861404084190377007659361882911145407059559349408541406182360159173000701205625580025601632803656961539853558206545117982225689002598192643300851867339650252696332988273636742415271715662427270556651050902268021250367544524447462270167842395743448259804082685693605982948098647999206036195869591663164151351959555511805279538757252187916095398825197057146844095881603819107238042270996869823100397590087994752562282273080601357591403003278513355637192186521278029440812852095837072277964999588122140317106643035310271417257461701795147957771559789113738304178490322953732965004204144775573189272576075391694055214271282725045012412220174937375872102278346484703825490810677647993647867611371344215633956563616029303974533874048214687431842031363743944119733515422988785760255897694834934777431545690070842491135997733267999217691454734452588311764427318278192494732346131304522862209233077147365790946676644358845193467438118668383471358943189565138546731347221844036953740611411711041647295472885930641684985529893980125187421525396804679545407425893701845816138836480095028653154474828020214343606243765534851860357672834668450887010846924017165782563518339550439835426736656819825607317638764903707884008632899299256677667142831531296419863753947501618466462955343495279201509741917862211708134758069064368954995350372642181885255075031030781568214631864800774098393496960988593411425689238122747540235213991639729132096554166942723619610295296696991455896570594315089019130270955460448595583996608133108477200762639202727071371138592433490027621983397264058471628340933248191749027833421910233868899368676365442398433596881546844985771385610410454492939230679139712704279034699795856163997810226524275508266695322795336925135191759122122017642852110834061323204027471381442459261785265483498851867235116715360149014012517594947247412458451670914471021630110552328266583752291224494995068931988859387503299694234403639061985245730660018798445271125315595255151945552644265640878176906030077538031283764964258067549287387787046953923051199581788583180390882114220407921583701914774758632728414148740692549675973686934504248121894496903382521667515796285994661593444319735719583789751780638535647868368475215135686948996149957345400551199451591090647752825035589518576738086460225326674434709052455694088488176633506812443800199769618533361252994746577777674738063456135725864990530363667685504291095610577999733602382663146963564848543855355029506143344116922008458696301092443816196703641991618560733608491017346388053034982840185816978368914184575785255628620139717162991665502638784258158595387535773060306433417969337291161264740548932691330067358080677532630779931823320701500097227406991699049627793938869587133770760941318902628619662977618690936369922077760016070066804105312056344444923279077511876492877624233129231465473745953234083808837103219824888437945679474982593651606451573871426182155557576181805327955256706760849751810606707007459176933579721566619765259139141131723734414400472332807515888735460404667996747519190276246809916168562373921991206877354895112761267837897440676864207368380079991407143858672355343598057479221773842326989401643622537180154145725431233139891019809960112105575313212854562932747817145819696465272756442125134137967110801864787901902841616338712845734908840500746206341690184137937639555858365293191217584066730391468688430199158403274842864446116894187950937504293592178613556762275299111714581248007812896733308978250102348116116130909463122080207607797576121129289831704818474444488585026389756764595679712250723466244429116896713057853428161536183097003716102864680622081818882620307885187496409724585081081329180078980402476274356339587121903964469542657746021560399362344463951223139734760004867491300234420883988076242530822435419044380231268979662925416851444204906560817967427679914163347374059294414042779012473285214374491878675243271855595489389183767088741692944666704860654967691412186327055502384739841782288708381042900735694884354298340438413766010041994456020431355256742081970844427503360769525447803954614323735244592516446562048014699757877828316405725097950735929890972044494804042221710212766841572487896037704331141909614939213254976478024057459718520923322967268907305725818374718220180844152296047217746697663569654687785970533419615411730360178823745032310647591467202123226215091287639738258961071212431507582223282116069698640466143200208886679349753350316309937417324436883205038416183724512584432497849011929096559148016147694393250166450419677590238550489886638265455229423638444391636807237500387034143102705982531582775139306836798256455694704456586327332590893282214107565186239963076256953960150935631931713682667011687259808340247405966300949101989667656732111932646666467849683174255180344493609972750103173396512689091858129639702095046422529428555079164443035122931335082899436351923533525992418735377260966488070231308334330584528219853694615583699796551834677009528495805858422560417343397181589659840950795721568342440316114591506830740294252286594757440609706621650254075312078859742405699294788557509411332504459070606553360100075234429739996855957118081641276529328121731855362696693538639668389073662408480251632134687729268365108443519204984210211828898131156475263020289888176481423282675539357609644100747656255096093207026811792186276804886859692067810587883258915122416037037422684557749691801647985716580385452217741850612782480052522246092996759297648733784415057131692936342145285288407361480031895486914762519191468540881643225203718398472555039945493552122553173171019756256121350542421233207207921304812639887720241745138073555991293023951273569935647870370629333338018910722959127983182438892511232225724912976197764758401275727177405259745669864302415786264148960034087042139321846860476732652165575530707811977922056694613985733832601371030364691051798293679882963962305897740392505718793982555848828278807308459880041696158550408458560090561008682836086340408841883142274213659581256359541538982365319138055188524239194638578570810572969448026709632794129756629166659442897937964965342185322590815553982347167400158794593444020192449113233500171890660599739822420430285606454765377763947284377428039264974888186374683989223312395723335561604938191729227335832292560861885888282149966173128287647466374097682156997306428163696069202055650436004880678735341535653270633457255321962527831684509857376470297808896811133330570930686787062583256779590855794626097086673602293704116762352859024527278177549636871921771096949340737840629134483248460572017894625485799419767285248448576809278625064258799480080023640214384154071639515033269254161809714000215223641666766781543889523807578701701566809576523532189177564737581331951747520073541336195641233716110819244184745436307633621472531011664370941113423990731527361823145156415898074860516201029788280350619214817116431409103723970839067267722123038838403451113461625897973291117844625431947755038900307766069302598602438435430659020469014694045625689315768165801740651692746788426467894983097425871929995331250010698750695424872702417484941593639138532517227667177271040928171407805429508077681871671295388328251769841229776691165705760401817325114342055638992403024098725327105129937180874934046463017710564071695561621835124830351363113288274702945909523895320584643091937863288913253778942163397589543359109629391713942660878114723961942769600800418107713595154625024788521115306667748593770246447722442338685615695982066965690304934294845871589086075465953097820141536105297774477431316261207393683285499438235209843577422960628795978480379875997668647683277834815165018754281434042412189476969953286309809907883475516359722336947109760620194623365549680515236157930957925418238317615271039319644603856947534188206136047802068080119596456006766131250736053402100489684047968870025435915794852256293869186741013274581051097779247321458296980723836289118660576568931410092788304967489053062424955791986796363159748905568691817367023431910904035945314255070589726373926530369901259269733538222759330752056822016531097204429005089455555073455439126656778802299048899263774411837440690385826453717785760879413479673707379483265777777890403670364662329020870020989997559468450592064214045159585477278091960442884825687835406161763845554848752402741940719388083979763212130152059238976098382900516517599129343120515161859903394256117434140363673407065718426339350363509219958736431729920390396357505225786822888852240541151203971613380390901319553706962670410586782315118166454360578658826533074514590376956429132345635191470892901714503145116955714729263401079105397562950042755928378584393851086813881973263754369349865361380813260085143123410859247545140404873259374580875486800678067547224596345123607098197873173348712514343233234487608916939465793342100799416440654171026003691541843231747288192750356506564853888068569304849840191825332957346859435403209837108174628653308140118146338004878718320152691463276293262270173100543880008558734759590282306290014932001278008316193375592957985132656691155784793452771290338596495924638948638150932367481369214869899175469809291937310913496074067290714595276207913042889868927596241686136323183943887226613404393674053526775306662301874120882353143862524354865181720227566131884268972197669348398541235615792951999578614324372724594305134365182772910886558419766308438172209897556055520476162488968845931604059471555210138552385755638957398522220628767191964833526435047443696590051626606928332070919545204938383275676599744222518148500966879010711714196804973095762380031864288431966197447111686479938062482124198970949434726356451927367601303943876264689506473433643068902335570321163526437246828440974853896355665520413196900835948374733070116443998877967687655915489538799638095024265254528743192498031512025113481974563607968211400091617789621180808445886578640339987043186304402097136096621307003104620369256885257465345264270633937291612407316131871505658342568566169033668114494144302057819962749709123344360990443408150072103451645001607140420128210955188948265536650828100466526905379691919736676600339922794405121390138173295099232206883021812477242505367273939166190576903617977581979988784678942520113505935633012269209297039112047735299948528228261946958709495547693589512504264549749229165906682023371267257710119135425586021366746168073278881140910804825409282867615565700518254046661626717598218323334470266577424603514468577057205345905915699202902616299197651155487107721520610897398452510428640314328468746274622546620163460246297856890364078267218065369882616907886895860565361345875787913152917552750004150393160786847040635969131883954662397369630423470845130680969389849578118447508798581222172038306011948097398202587699645596138622632502810027563859815527508696470925117820674010778435379135735384319300098465745808157419553449645513672736741657263466453000310228207390125508269275294235364824478935495833679430165674929149483827241442858155954594786886695234681516010828699594504206740999833288023751506804376093660250891238726840426318716549479300193996176674805232854093342380645242459029274205466755710500623208642297307840780807263406767781365804489240314814832020354388417919818056013021728028059600118295557273634687053692044398727777165728118127061440409353981792798942175130786492061437620732079776898605252082015606430931608827771915420491756102727002619736183221586416710762313411501916875565309905207011345633161335432403803465175775764976853086643192233594573492168319405260004456706327502629397353395047675252361040545156461582842492636200784183096445985166848940249308487156103351751242270571247852103296654551842580109238386122569244791360339489961402785499675590638984850819496073348428838359628799333500283952670819931956515239682080968774443711601414817656580723200920167159398928104875860883134010077803531367622779254854359060078831950886006570303450767116273027085737082877689877130579660830999242979240340473569789020249649989630251886128343185791323040615132477770806175572007441001775819876746262115799613291933815445823774192970411261223021598430060762477617497867862435616114129555364972760230408505972025355754514360008704808954279244916964710836621003283771368122717814064187509401218950681515967822002716708031885152449339364074927111188338303893149353416676219823808945481827088576582133749126117202952566724158719832003279430590241417079726279803618580134205050566289205108508675449940276536599068000814519817026644670566032586291725345250207544906881503727697175237087883522762541300895681127885238979616974315349119819050701100379483022584344967003683875276743737590384231098221728055592514946211517881688125623393926934882870616834160045801987422223736143280890081805343305793368815336427815300031642375773866353941545813657571433101435796701064218670041101840920302918243302386863852865735722647606596017824081274966265413002681578680452629540121020062022666786260216666984906438787924468476338489842859977256790350437586174164967015134429498221346471992329433172354794098159317712089899241769998301147513685668888441830338003671721654025955541767819949734967702048183377212292415398662532769117479227646172726151453741047338179871031003201734882179235839525033864751831596371812578229799176909806142138042398008959106866975542337777153456564566760195849799302085348931342439273694442395178456982617543542681373586246236290111002348580175111665197126504748923662179009291458703786776479066254202423469712335094331036022848458276286973272888252451669616063312702321041552062419067292684726112212166217768111337940340733819633046919585791356207780812805971375967620283247667527111740650224501827821095257335569284783342492993997035062187926826795105622155847280521898960280002645152037247129579253454268392724349152295862508197834027887053013921615722394322121948178252258847836091709625679928721996833310390489424052246096274175654696124579478619526530024808794376559401208115805235767930322284469591179028723212029971422839210277457783439170019109437855160303603617445479395102396688218522602446105066953698280379860997389686266710083051463028416500069519704582439212961806532219960945236222616953903753157527891205875390687257805606407762130948187353631001539767806468086082679560677782941441830217653861101242505877996978004074933872204692307341335436715874519773420473013523157058833623623158626252677137315771348139810461640063813219822254206589969823570966557442892906294467719601495271279290610534463187262451514200698999124023752502542506858057896591048646429433676748326909932833798429375880115798780902343736585278687183415663434862593097120376262118952797721945948878633647260276716317767215461574930037180827845542943699363532922540978811716611459174275260226258263667651886207838464652051333830879052377618261717796961937593701161624901341135316579677880760832581740504711038513236809964392428492838326926872452551657416056271299383518032687220879049331092750657213395075622403796630279212518613545410081165058392975749846799168559346996645162619399356881160544322988466062367344345064613791663857949083757685011366060472027659061101093478432885032979493426422069753437179577519441139843336633335411831204642149829131621657331164312838846702651929248813363603306347587969655053079958618990684978133833209946848191402830217185513441634909220411622901562829600554299041411159375564453571282863156126540228772047207444532992880016094144822131727716470606909929171360803628646948194026269664522622523806195924699516767954187195943419160692663653798690351291411965712194902126474075345688504127671039373071539924124546888928225462021899658310075637130558453619724685436847065569945847778266303409891112211177195200057016558922542566959022982434726171533331228041570092379885590571554932819842928627654987716177202798827295066086216807363003578213644640937257173236580252719316667728765726392911924951524658471331148189956571183248300289651723005383917520933595145629104009253383393185779705509110660262266734020795276574976430442978985334181229156922287448669354526804986755552946564394479585612742687907111485426124974049485833949206028845880934014288921188782569300481849945713878662356876144644981387457635279896046135442493630362529466368102652223023227308703509405502497679466613621259084169426669142981174806201000130403406369157528081850854795390672733291691523728159899420043611500737719213625694039672422734968205954850064056299532438097614131842437776897438126538406524088343562357482643662546393199208537491871411935345858710582297787638869658606142433142401536198383391816996432463423268929524601331730865207982388183851433773283404935750847943463449822131535180960181095037082579777934464626695523940950780595454955391512094941736897726015640938103733193038810111176132195224221668675878440746721501077644710973527363934175845662812639982068130869709755027183124463442929298260664360481586460511480083341658389016992485398256970413871332854729141643602027019993299158062368092469752963935166168408699502774064691358935569530356569379914481444266870427716807079896088594559967620422928990807634622098174973208824714336052381313833761405050334905346713443816587004373147477135027507160663413225089801819511806238071025505767183851237355935223541059766615000964102034732204119010061445501185363883045117940477434349734316891097130669204861309618533599916907818904636327194089855723494569514951162280356310340019020237016463576724951894226709739885521070047753716521516003542850616249972812901518426141455310570742256392923288947389215347698044383680436015859945643772195723741679314246396061515532375748666195364879521873860125758090333167235684175658424259421869848281393172476983509556096995116031938391132886443966542301913533885721869829393792066780713345640152177401169028974564101088020112725867911305199778457057044293586020039979778227167080321834662672231424967421044384845094182448880194580260228419758686980970897288542855115904548755705152753175321785810722239713877401819886856580888736410334175919125037759196866161453899144361044970245200614050807685246920449680356960133713554662010093288561641351769832612530661298855858699951375419215509927400528038536555750201751591554340602524854641582041961496825791019474732047354769867734313391446317624991911493486610233385292209523500141804913596073734684309839307865160005916285032721596774051913970592788195246846867946215301465572851848523982683398425419929491370423844834902964915031543625040778837033544922056775657957707141549514859430779299606047567268607181247494751884892145167476549571738575776381763271614040865883392416783155420388017334414146493962549311865095068598843079117455287452806372085454788821050766409671731929854792310570735428716884793781694400091044744485687765538453607499018233412463792059343978937259982220792115309839652947312565005449426247411868524923528072030234171386669274871090311398375074436282542560834715853732695538075253426741305273599118592904155143104315447651361760230096439540299850926998359176504773786180526122893184079133156553967991991101908441150336587801010423442319933353138856832219725103048161952911988936855967372383124128815681393514833781315022151963776237036964916092224217628201959497725417453366948823410420620641503910310216416306461108884872728885758544839067436939900329287229971348755603827404728205857175281484142944358573052393619033916783156209706799270843826614609456206513107608635269141668520719105099770354692653368862342081588057001607543786099862486774234027288117369159534179794329974071455718017662008170675300310286389258684238853647782237816724513079383152639790033450709145059587601436618497731703063272323793445938476526005209266358022759925272493792400405435750982625596730777157609039252629201920727064580583920757730782564714536016396445081353749847917955313457147734715295572264951788523743318429494683237343253145272644372636506678040134321539222203821431949536423192403505873063972297130072836456082530131371066445640283277312049583794711034780622573090635129746041060913123546720580601293345527968208475772586003095539190721337969958781292947918835424786022369156285688606205856216019802204967363217910675376244088145716060919624447880436774486983499048569701878054219656867606481488217128390522691365955248789559615047355864010477130600775174044232769428350194042952185167082473598760087593927255823651777837142339073745533361386004363349705702245988717721008483746953265791182843013973728136715953253797267979789447339426479925602363748031553782691243493538285880188823803330069247295726120319629465217436457535773743987720322716978474595302014357401429513113879978579362008914113671811542322148427218030183892965082370420894033740214775472850632754361936479054998309852998810504862310375419658067283056913047626885481185087562151810265779916411430412990308407137080843435621593025248599937833149649026278160241454960004894559141850429676641423690457209469348854775736097795262649733177558290437025892435262744818984086259812090115302989425323549306401818631329159640536740346462670533911806409115911407779377152761451302926594869404724560069266826644497155378481173216212557036713438589344564831622277034104007961185984809413058582837227569771198795531375618435733160183077042480762270570698846625375304301611144513556470024425852021360893200919600347500503906074662395407577094421297977557041507067041499836986088444699576099001171305109041273847386832159158059561204763963809546782363208139293981698507526211717191001954778422464982768208949862420212521511965056404454441466641649640163260524435888830161082451351960618114201507368329945312060469137832270142750456919279631542842834943909709993848133825791319875638272517049853914279677235971962486467854609835322126512492438551084535083407513634339169473054937187699440190877669285497767269741315617655372739930944418501417910212779856281500266812064479973516858273602047530158056513452938108650290638878013939292167931252624362333153507915030764896381366120905908584589096232950384692365660392965064091814894518731485958036698827911241242517030886055821900646663650244232093541667109884891942344328317802437093668223352617060083995119485012148525405265523110236196358405355013163072683663253032372952542078171328251811046604653522424034506673533783611044028685768964507568070654999523923716527857913606965325561996100884872704378834431547840178747322944311915434126936501000558671023049173537227518334486939192361366104095137165000590344070509027021929789520673678665983694257543038755973736366301348333425822712183792013277820486220885568547794163714724700376733010402268781653068927700599890723922586857213063137157139808400078163907784372648234157230244637231210066484494163974477947114716064816708276402103729113833659235200442121529480225897676433790720301494881238507147954117027183400627331546687379769156374742673670678011412637582790411155797102579820618113244963085486511809462852949182138163460711647033499047949138627288315277568161436792870529841968989317826802591148936444301537607981973833774825683122965494939646329363827202729571248259186288320070515494258061289306831312771887178873758365933673925984248678881257397974599945271838803108453308636391909051989474250158478990144523619852989380817089353177100436382239362906312744311307119611233518369422352391949385677382769454857672508478126263723021760629829925162899644294879215763547407665316456141724130478870933262205574128969946470963647522804735879442141712124444965160399721414309178333349166477357434170959955812165507161918867569619880427337744052981075190786062875428975090983627976201256635737133672069447659621468421780147241541878489914922858424226014378738694964945461409851277352733752492958789661752280757163938491545813642554849102433262629794368079320986136998806115119086541080228652051651007882397779669737590946145377510047269321345163032959819206013946438658901437676591121841537499236246378804087869741720293180634095150362662426832447755794697228067168356923898701118459482695259162758411631514364715354839295226883014802979424284432190160743165284528168421927973402921877048376631949941452457615663184828871303385912408260216477464848034924320041030177137268742584299818491943607541358354846789767714587539287711404504047463117785936454446819676796123317260337109069501802456120461512067029484600639040687429220579677107524338305021268081340742793744948434327671008599215569913835897610714303286653274661590751102125163787297561757570079446195474616144882791930428223223162995944818186394141544991574333250341462698529878405124412820329806938771809479328732011938249241172472288213008157121834738307571288467826660797144448400216454276152724302875537474900195881800507905381064053937838694474903131799188030844611940041018270780244055504127300336477679150614870769180999576340341425461553635550110935965421244176956929092106266689216923333791429543110335918252219311617403507788993441870412268864424587613642692688861983214398548892427279721775970977810618437366730542142655835210354482581368946817907896154483351096704727423685515019162479520003377258791010864812799677734559152254533327792855900373930673708206228899670221534995270454447205108505710041598258114036818137100649147952305668147957612453905011252663017021426953476621893704165494720274462198782196434673638872021843673064163742263725013126343298272683884892830451693513693260960526113784893500068859609814255637056979874752546436973590731822764631087044299116290092879983510490089756661038059180313553619370266753502594336624126014329967339598765556973247820086038105820431059249764608599968060434759227641568069046231058429916861028800577834673183458464254324748142092722117874686922847810961072948596873715810214082469822034538022000205736952696014869669000077847952317239224777084206574630966448559791592002008969542114184372613465861788054844901955962862458074917138247731236444019041774607291517717122222993210535422876384140889773673627949785443785969148477597580936594766944002497280586960622868548707410547413493617719105962297802864375438420307205129045168705192903880063673039502148276900859933725130914172613723094699350093849786576396161634936378799074550263786477048525758818564574911849835068906154331389142519488062312507267639246728799989345313642238435522383769914923160941061779402086805054808459465930464460309310494464090350275979015103341046625973848713436245799939139647426679344528462763826804730821811447460280267519277798358867334306132277640997693279881870510882312670815119826973102586785540100502857557830370369390470558872473220618321707734764700651478925016834939208014193007636028923375617282062333827679813117123685998953709452768964346093733766819921246389810602151053778238219003746300171134290638812783797398448471167619473253288553530474448990778373477564696872551938083255952340852671536100921723544001927871622991039655955691425254594643940515536035096217294113026581019005020844955090488127197459856587660813885718147129197881394283776853132206753059046130012190355487175115775209869941889368424671041069638233635450201929349406479381116040583044482223482580472075481601521075519657730661841698349109758256541775366785471386335512206630606059778544135165132480343446154856113209989057875176696611644167246587821211347383270930743024253301922310740331365138258233087935347811258599552308687682763022202441654793535672644763165468745112480061724084257577989609644188811475006951735466835799325298801688158817039221636621961310898379322456770250202060569499600373169829025183886877210642446039876528691321209095285119108152641133390179351388118016479884894622336751233310916466015640403810211645523230002386803329936338997704902431497565692041790909955484960825672999026152699372781930647807420908146610197557233799214793792065502372727839161862669703402084545782909265358384213953271073729012657454347495419983679468958505845297333494987894177817927038498561176135079248528658717986968884301510760262158313371607005652400785543298193384885894552309234040381867317839240919439595087635502703851954737350063765702271868398108202245737225850213877232545140362119070554989258208224525757799463735687753285643593655196882858997671030349503397859995199426339108267745150511031918923591806361266503779403327393262697330083179080737932942316402783487826591174435207737027102399737231336566847033054482357667334626750011954467247934092387529571324443831458743234079335110855486308200355564990501889700641394049975238894041615416375314961335074688760303471942139222066667601845883879399397677414054448664034900876233873323981295912585013755991728241295305136932427349474270499262951469958164077896692701231198486386637027364359888627467490568853443174163947299478606855248270856410955954542352008216182658936947745693653876548611146743280310071674393885535218564436456302461525538923893039118905975583502903925692518510280372498534111247101380283271073298654491782209479218274993291290065572846028842744626648034191511167692957117705001684374280147928984588830714773790792419797514276507941108658855985314974372046500100562057522519215178879518992355328621790615142414980999108339615893897061929101591659410425222185391631923752288791803956753978108493511116665289467671942401861732790886799150719339182101139456141509546151351579431169838887409354961899021822818148405690432418045390727347194727149913595835399394311702200133342694121410692643504378881602830446394876018218492482739104599987242069341496568395079664763140509610118687314908682055429805077870419543829971791625463437404251290442370173764656750855298459401180841047090272799119409423690194742972169444405567932751006331984329862668653109937838696974553622725966247857124114212387133941934855614366814031760133139531950181814189692353619985847230613883357527555427213220239185969050172495854793592698975302605129927673291373270704585309347873788886931918126769172463850282528022867541238268305702825088478416522180513946370322659466632058397935989479274006213273440832920125656118841426765651365213622340180706092207652015273742953461347638118190808796682397388544135941391642801901717069292280310707715550409783213694350871018037056918260843293412335082374167725462108411367365688245437117323742381322480487294513807178898565683378559203161713225568282808352227362983781002971518003276359128943681171118676701848543895169764846169926995196277188261947115900310568603051490280869703088580774657558723071327185425456650433610338004900988257867863809860964402209644687468727897574277063691707865733235438253533270209755120520979231673643122762057505878609573131211080390681933301236033606019173681645706807163100651443519048176594311243308158728200159306817903663235284439701398111461502605352709286690578384142846928487729726932232150396202047622967412729179121131398472323432283744849730691733935285563447454358832144449993879082394556000579247594316817174214529435314421529355301074703921602906301057171614583753598616613360864270968368946279377002149926514583124511636050712067850910098357335226062221147720294177611844844770051519734377166380506763911033904640748535929114684652696722336299569502651391239135621494264208646833744717806748355275290868279943115795643762135320815047630625461096401716223702739149159994413418907479806137520949846928068395098784900521364712021586373744029539587760480181551493074308036477754159113450894210767517064958979632799639683997065497448797807110719482934042818873728154660427505612693016955533142563423549269169436154245053855591823893257392816872333601745160678985325693904011768562378588083899572835458058012600808670583260123735918823926012815463820395816814355151803261619020591523424674940817094537717896808384029155988925321621848507852373967676705971204143563994467617373198013439535004567427553819255154571535524024281784812520876928781899321021831656836664850218427125538248772306608472476662984149512931364113446879358540121094852274984539175834835040224595497110840798705225094928646687994604874387060580753472842492637426468454612137598673933896222933319626748720083359574257629539621079497409723392936899719430326666465557465955309254643276522145672190213331632835437128164393204476832655195313539126981972836877078473864638179484389315509179102780187275643499596435095839321042112117745724132948657636793841071355612487726415317698372057291108504026041675603607380718199159376625244346980976903302059959095860338134473170715431245760730574734355882912926477153116971036662209268273175007680734665219320555720149037258292504539779230317384877227622047255533651805161537418594504186046884981764998939478187106916454471253631307022738272353393985665884814298242635428384366858245660661666621359507721884318927068118072055095085623171635808531368861019089080398540266594963993222795404387919633865874390554725779463891788903349910475859330963194325764496513006845964250501149589287160888163061875592688181417199679274597715051260760555667839161904152813392450794963252330021341384960398883421276473596381548093256627807286297896668233549489172848775442297245999275902903055897330847349540978106541378253246360082881841031804206431083796737330249902250538717012896043743788688143770799879240466528215461596994406996452646061006608699582578374674516440679401078909038159395138849793065913598948843242083668851159802891467171359297461407119145052001189895569622338059544431739939269253082703915673904158172056328124237970010854175096378831471575818917839604763568456607136161183832214833803501054446431987307689483234179247410662983146401002849260492557620272472023604622641070994880853364752578469944053566853365125668605612848171672994724515009026477307825519511056959643054331236814726980194430973921384326191407531357635551564579521084427536747574649294614500700258543968787755228367742912299614939881256894301888207747489818095313651766429746085321316761273581039366429471939215283871180645004810183650711400102809926946315590385434500237056247734980830035659104712980039648462852192984006817242370442490582418411197278430030708367408586898360484982426280213629164931696876101762714146312980289923007299452419434744061027620906287636711745367173168792097262535196185326879012903722968822442952456134259355791079904008865969945645375256151385091164616848449227874207982113373991112236523737528927288938735494848176006899179970897509804028281884350123815626630405239392892055992082999081849092722127010954220091758261406294654568793830004210067876368540759723706787285049032298375894454942777942140712844561798498390706247325840299377394113764922553270904038005705989565618909761160862865143864254347278470634106790251831715950485826786234611764562404545088229204759635932355134588743922593619779165769208271484294504186984486119229604627240250802042260195106922033885551866752812227092996127139385841274396614747839176124634700087338662764994852969929845103049366845692553329827593807908528337199184253318234652275904275382262203900278757173108303658280142413846647790911722807213729337411940166166396486036079449255632814330536867344872179244774278072390441061490291297679015128488818999885172767189297624145846232074362863856382330122180107113238265420541862757358190363972326840829458629297799124349788032385980994013819061730848759216568711876753049357279117712801641688889007121996341364654125450937730152460677048516846849357571152302144776351409504468087505850895012253577414640841213015515695194265144755202525799255993364437703619447393313450735535197141835455028588803709252074088584876302340478546099462108405228187878503702554284572018092708077666290525544384247427193733252732281025660242391217410203100770520696430381282532273834271119480901492353987763255448213624624406693557739568342933165514134533982250306833940974946553535422231136113521839842198637183626852040035832539613897450173221153016338537665601269789583527130067896705179361893216750003770171011624072840767030501751766100712531762248612643818932376638763099371203050545426490782702124560359529088353314721368985149050169773106398668104110721041131157848689768056318540815351949575825110534167639030175057699475168714962988377288067677615143568982766847875959603185225696856886529456629644312192223436292681643978536302116374761439829311378051112191314702168959440575868817878078545362993993282069093130119192390022589509085593898355938063589293415200393664522249498483415198194732291238729340239891012308219565572793458933986530893513251954267682421188508654488019691486045993182671132837478372910709427512116774360871011715505754908889064191467676883573278470957152735745212755961181621845410606708307555371371432074823650774854931834362363797231509795323073811606912292174885582883560162421426984183786783426276520316540431103972677242785506750687306103161461261354875333868290684454628831039185869940811451335400021094341855596923601091591865996459120889321324980428420577309996295436907663611644524887088314303890161878408899648819735875161484760566858803625536592768042967768940275254001983342633484348284030107872372799445895615623099819624041404638365805727241839501172287298668233588778686697446884105219105568459285176554146380163060539589204893586146671996130305394407959934667439725295472117545466791139814797060956766727876961831586487417657780574418543474590975937977380522348854054594747234405085168232833626745563005757853144712189766484613682700731415783645842290045694435540778883773216445707166672447768309178886414320378847828004452740283374213652858257491558799579992691851723888972823067632981091510585021732094786721610464882597324386347916855134563749893380846385721441124953275337755430549142936865281493002391626882088696984911482683957144612698630609062996460633842656417277129592606775480720119118903435327487737423186255582620283299353210512570470333245805791750878417074305428567044780517689426052673557107064827483225906754712576593334199756080578439484636040006504052860563194006754076911915407685203466882872693190305798396551325877997381873707750477188602169048693330730769377164329226493923126644365805800269454546409680587086234012143929805529037640619568137702810459153600547055271722770429197544726882647025517365857453554000023384881611033021994277908811901705809609979118863309837141488423309287227357085046132498571906722142424296956688836474830362702839711777410281591032831906796943190854452513778470363247940882938536654060813304527579715628651558386618712925392950527869459982651001326000568410512932140688365560107244945841559676577992158001960929150072530646202354077120042869977502801816733271988908563933693252357004617112590305179603955030553545138181012671405513758305582444012157456418259580818661162313032125991808885556461904321280762775564276970663692996853102997665861790894891953300994597820310481041050857417191778848786700192715694027919183840686794296295835714610875222362835483129976011146659943937742393870589741811642246662587707573130632253771375218593332823109664436613224590952804232536215607309504467104729526188852394560740766134624273382786250237470972302518267819399111896147952099188531841372775625126265554650933023796177021931089281437798313561215687201683610484282526892882337185847390975973581662903952782290973632627942229983231008712765402553668632218070903002151605618117589457811777698983743613423324309209533719796414767745216050520649884520839962056085424309142377956086941288379036871757285330949963981091849337528948269621123554475838564938796245552382829976661734540239057275313871118088637965614636192313998188275003017033858499558831309328463755563067388129132469162091989989820515444017322073452201656273967122823507753831160005952934252147998719773040201245637815190943929493673812834143014691741473988402433801855434893833898098236132204746930238858024227053381674438935378500774093286353798967240431741478268288871797419820361181235963992714202957537135507292776062444666400396543979714305577734580483182392168226755786072823929713064924160199468545400874685938517066287234026072189819252575190817351017934803694060958740581759726885369409981438661194786024474502149444667535587780463895461530756408260834249466646495163303206295277206042479321564286202883649634891431114365480844721717327930621379886936823169058558328196213181637557323972092850075470237897257686797667740834200940261541971331595386313692819334583600911247554156367695186376328077593856206706506022445664794127583193266813242280896667702629597122954731571505340534942274281906935380232856905473411942317565242798754342981901070988533618398102328368856998402955192539450575875334030997718286490640167826466791020489317807296275249355407447967772718437489072014432811553651833567523697451434924860037229258034499209023019149919025255941830271026821519265833697595357259830757900757111215266925681414407604551485671288404133772690326295781575061785822898195509787120115453373077857388437644289142482060350478235737171436275399162737666574761966453486920110837285356933952911211908063526343090214272620768647857719329947090069315773123434974486087054006641238060334609229787366595526402001753002714930865037104690297204124354612659783763503915899154352159903749464195129792131632479449189957247683349809417743839697495663892820075864040166665044634241721111461064572478172182044085397027005463890285369145555549107652984564843963923793586704454790321002822892593355462906655933894194456938418208959061649547942857270693657158890867802234159532490503402572609564276878898705347015391748184021754759563571268091646156810232167662621637047562300532458778685329499198694826153840327627809850907674982466446256583113514154233388526753361496637755434980796021884225658228632662608931047597970890769868419443175319275884565709295575936392144975362195246401910943207738037104493396623581632332770041041903856499019397942491854976868311737932144674317225071293157157366943652879517624586242746746996864250330369195673921268803445952445611455501206395957442803942413078054502277315903840114805833116996034740885983523744194620191209364381594291007281330220276677072022787772210477372316305784094093104186719734187934840179722586353154180155346489491123803780987690975273111127286485864084966350132183510286334598909142141402055862335610666092973973822337050815786640641790049390294183199376354307688350437981926263459064745436573355429064455381170621914275318572646975416406225288245304673974321344171102179242285064194732223025726990514958070018109993417505505814806226578490498065693910993948619301867822555429545100790631069458321373409418819858744540853314471724910613896309344811465727883440571458627613916418725879141162519222896256384808195961882556336479826817697218223699348125022806621559396540922342492534514652115469210630894865126396158912653883388487837591470591167582566956333924925193009188002940335788152975779614190555482374092524683000227252562127121574172526990663411743406306092640392954153555721693399070121171141240218317661047220984063570026348990874576026161587376557237274506082525595174955233270050558705539765595024981081284784205223512260213639914917323925680289150142282803956851831159153007435534868348193546637862086705726619464741734700791189782728315341939400734863012820208258454830189764759102601875627687783910969280359388651260000887268035929853777043474859086914755835521261096042048084622119193150060324052789213636254861229935128475730603423219378038665407685664364608756906031352986428532943408469928084992740897200154584784410294402411372765638800751600871683918772729994956479241782466041744505133946782471601682443050009950379339594925190672214128150609444455106922000035139906849745492508989264574472468487469812888383229137325313266954646780732225759105474172558418571539607724421586129346748663962700555015348874399811376452362453474982905337843713794244451058979577501793762700997336289391089913649861003352394707098433397043627119460160232864598067906918573035569003266213359383851717408059840508741754740535509460546503817554757875440984075444326912631163449614048368448904366695426977037974530301520447612390412854690295523193960163222473962179177164536754691551634945578442642640167061102256950868972221411599340455654920491745453580081006748717698314487735854286074504693382388635131900875093059191059916116178086094534392892356405881188576489577086873402724711062927133410650297447063368429459651334421924845048597193381633155465699408349487327957677411231975571005578958953264169042515634946246825731438049572051291484633217790773372292232781002557580718265197222805762335599735813566212142986506075078176618151103687145829944210803415933978558540892769367562476977857883381481046067998366846740388873573462138549482450603422953978301044380684109807822990327083146871503221063873941781177122121706859544566047087387358873732666390488983956240114114644093045932591925721521736547422621411678817092427864297413204643437042583473651936115458293196254864761721312940355172688429681922640139888729187157311648353122789623310175233892887922894877774511053109158290884160406587339937967212983215345026609929050819683041105579355551368257871896157621589699500031346912011406671791669286975482060627578822972466121125452823409911904449344419684184144348430629982488382598625586495399396985356219885922674279891153914779301445100748801473371655141141342949443011561790637833147486197833471431742233190342191677925871365580337201617555572886495103954735115132679320443995431310898147194274179862103570358464921828393875985338947281204020879063996737494462553755094153055108887426862336799263114796632824370820839995894318109043734695532567438944591534405786992875979229023736972593953921822661234798234514011191156799881397483961906734849329542332554167824171051936886836655065050833160202120489730012698714705139942411111586379297358965983450593322925071881028873180203761096491635842089956764632376343304210870685079253595823344361474465213221796546609698058884078250998399089770397627494724913591448546227241744664499004596361542220813766477089440976454702054600983513655980039132827735796515883218034240172644720357820599594066483001393489932383229577295588908334130771756093830650471690843178855214950605102915892793852737820575025159489468955728316382152185372042311974791631726015610785970879931719474177186909483246845724942010935390208368255922858479515199619373618172942357668946947692143671753744520398506542853430965764269548876363365765819083351393313412526307386221063701470372796988045444041492381251365543928378367642172878579525813788869641521479336874291262560594148260794930677666768321799123795019101408323907667394929570407572242432020561895050472329475641999388999075750966068556191070221273142833723922753728779393230412852955636618589207758487420319693691126723573399360892256292835404526520397947750532250575238303521873675768008974205736074455294503308305853392691460840155999847994685467710863127877287874740829660398240133261618379401754264754623049671490061459254011752178334269573044679607671389117596898087501678563916839920739600190870221158307546341296691421389732954431880579734904854641481113275351425107383888633791665112686252851345612774553890298829171553478245612422025009200997689083240895515592278095960152708443515786346996547760020756191129110088591502022475665277651812668778377459548744932018788668005999062310263263319428276087127624697693284011899999255177250895442477934574393173631081327928777753807580557738819437292278284267724060459947498181379219559188327436400791545308510548127210058937666814610346149545281868207118286168493298421106308256860154890638547029574790878071825439706892730136108055226078217403093618197707999849866433050664837268501720976303611739834465603027951378571315833295506478682880487443595293335356368852612153337582431682515885924760841626349989474503203817372529747467378529019904551867715855754584565974831924747987947192234484543843094275525632385287050567439754040596080747436196311764120418864209474765763132810546398371428818716986916482837325294171448755428569577228409610316781339616242332511725830997343405302669555680784823421399344639473846723351397165837130129475820563252499705103779784340176725998498842992128487489229589953903581074685520068266629245743239227807944706309126465359407490080841779403078222271603136376423262241866147794859327808037285605549580633009604521247187983011145289881808452580007527245750859553323401466185730727130586760730648858175256042190534566025497617129704954279407540938167221186467482717004215001039522831877321201784856040129187573754780688988486301777209652007812325080505053171744159280282406567683427391272600947966625085322924796679388894383144706471430352644731804745949844207948566822080519962142778502654315228286963707440746784375657189868752934663499597105090041166332984168067925694133613254749090680725480694790964306200073662925490635193659946095580970601371587409935394423939639057457084745267231958728670894326547650906525601576532353230092725164468774367226585735429197740663681908786776549333544823006414209441057249073008491698103034990520824201370778249710243205810034835793408614977590677726519623645801809260579070884072053999970962751394813961420439440938735386195407115914378212013187622156793211377860065425861637463701858117482270964530144582192833232533328926387529815846096070335618262279365846510874249130294058630779389224941254527883227619244863651083357438177130783206281726278709425063704449000819408015067284070339077842938312889772825099470671442958199374821964551660308377598983486576142348262181207810665186703582074949683461808249191054257324371470381718308142422466898026414111678401100325842088959769233069353409896729826073630758896452632802315261612175233767553775066876458355828879943089818652395503851324059059409747126002024367826679085907527687880880097288139825272335803766996242770301988098626526539250071956822835780841353242167722688765439715231383561919848395849607576525526434224507357836194762773720298352606353395317687963835866165018327764151868124757957653101328822828058342646072190185661715035886198042136268651199716019196932440720989315371521780873224801873965719004378410731724372428396636525676555774049658964975442969553717484957844011075121372832965779498820032898390195488689979077343276511465834456466559642923824482601622890363861321327772180925724404637372790726304700549272912658243241042604422142268789880269217022216871021599986963367388351746335905052524958834456605649976940148287849278984872905705161482665328982493836808254438847035473558796818509900697395499375207599431298373931143652975404642473477082400079821684360557720174045124057063707402622549413057340920634823729784035598263122676070025889142509983525858916908734018573758290567981695126294923061123352870913730426014264640336684881692431519431175348390833244330161501161625060071288948071992742025766298174695808573370577092379358806992718900685855795858053740910010102133376418783479543428674949958563541323451822394080064504239064576013404238147735723501412525271003512942658423842849246245858542482810435912647015978105685215969720276126286860027504698352620360421633276069961483191003437212721450954318929830281781308718673963036680788602468852826830881644169140486648526195895118903079397126325333960673191933622993013868654058247413699151084424753154269441960587345595598716665732677131831352586128588029842412148487872017372432416354607820513862914219449982033142947958395413504161749153866425688588520661636059537546602432071559671936119157658959502277631289931613794569798478478805794071765850000701288455100758636759615015719888299744129841122201320924186193468246023892902041304117490367466496650138946332191739994882910724892014172063316681507039903030341215830365709894938286045025814917608779438663526314479517792002630963409399152557757675093743753407619134586899440541301320309859165173109359967638461949669362263171469592039522878378968139408878649183377910041705298440724041571211411044728700483429510969158729543283096884038818532830399059704528802188397696356780692577703299935408129273587540468644724784062663238575750516035412168653054596837047854656728584927326500860009843126548932257858056526925452943360350626987255866733211034168287335274135565617888581358852235990980197249973283206751198711750509649462317320834778147482690623348745684603945935343213006593524738892930175891380203977304363242657316013048003615885434680634423974517300298330230661813486782889274015272561672279811466188615376166614135660421161727410319474777328795762177286485567594763609277685688078553035510517757623762912091250122702075116017262936779238565346679759091700843918314534595133900597773874322770799441822671574657498914404425471528286891302862864554205043402689502498763797656843900182616947188105711404120252884601036482528329507288894438137045575471205751722242047002461574560637061414054873818097269572049093551877328986500395785211415973334444065064733053560581579165094362420709435067105971719872748659975210131585742897696369115809540398903111241124892055778596552171481141577763842741208806661700996340674036544249578848837751167054351963996535182933395742756878618196785874090253113012881665993631623887293531995704079053540021753939712000145792375759940852162268643156172991598155101164958779648322818530709117321376583542871141346067416454798292893862846843972506000220054870332031553118652776660248435363146150804687234052227758993676656067133201396761730069494691436873364284022738551734620937350454513638427854354761268072270494179464822343720166353228544436023749756360842654091556545515021774444310298073154997475724525451264746842787358688731864713662433477876089814010225593010592954805797045196904018313471671503136724688327000678508148702685791715966296935499938167741491878816833214527128161304871493684605991222348988250034820218216258827706696023227279218258042345472715578926488920639961690363736059512179018963575021905425517555860106107715639447700344324143559000970742115509618597351972569880807161064062460075350137843863034888878459773855908837371465465512773252534738237026247399371649156934992112765494820538491623357463557353080294524042353370662203778674740354650179629006679975336378223656560661249330875402879364666548858352927934281463040772934142551237302640044587609012949741193028555522505001664939986906248396030759887670599998011643994213678872107074241615920595387123785074631633781373040112600662120384902177715570427117014152593050892888602774326381101672441017565356977540968552522065971909423451860945779187513970646350651582762363318663679397733841806088328465043173069847868720770314042481081210672670524172737689472110100129932489747376339177558859957998126897509878829413653436907577036674709744125051198923154891623225387116049322161008499290913262628714416675575335184460006426900838458245487308788773761462521839179751991975141870040995121836982922902252455583874416789508428473000818538512146109595407033852974962939569358091372304316162352910214464413254428797521571978063554055066963985559066881244810761269485212769420685296744708512470918103506496269593833036881986998552030854613252495481156198396870669706870917327691286282890121783280685547559568451024388804680649393854484266635902541546719943884624627522153849942644244306323081153663484294804066664688369104989266175697571699360177567082550585384918257193830713210435357837788790193623388840072536905617448614940656220240815811157589762915236090420703247235645854497686646407952545061014528198613045111769253916690339994943387515981884396768936758210186647685205859741164191551631333640352714316348815936645079490183860665233504773643886567546651184157327369731179990269003047677591287058420922042445403917603346380764481205596312640525433558895634190812630400158899283144162235355837271149957313684522592280756057242121632266990578668334839165479841705701041501004745343136455458275503174109569726034848355319177175837800625565546134259785550042765164783795930043546639554986831979802476328931583047278026805186580006519921855107239434219477134110665077990958964783691816793162306768035103117584682926340282671624307090902287688555202481468123596783320509451974016347007146396095080236952589450745531550154236155097199962187847446557601453171697623068733892137895119809240248067771374412406292717071579206818489705238321383264085083765412383993718175562428233993233831994027210606699086789010072388377122649401877195689201181911293745343341353774499938502006857775972192999187092904388135258868212674235834095165048952345126656590274354912383078344159365540188552565603180270708712630823975706805859492777580319481965689965950708081588325132436192661482802777839698822066460673982460521879499595963981392149619228630414516545481112306505906641842412506367403492493391881445002732637686201252399992756412391648404883065342778979722309343899922548410777877747244364860298424812893528054502339002150482301967102179567574925401581805427985777901115577958017098255509779482874293165685497841118920709369121987936605882946906009815945390741621036508966690256166752028614667032963770268869978484959610204359204935780859658250679645665690754345226712039740851341539128367682483692753372912107570143585280259105146225272399405404548775439130726165561348741600805080246420271831284252690113219597220495246547075602482643720901711161945869931307474920588540598396377884553927767764054111688305742946524351859460055097313963258716854916521458127115202059186007841965817066633912409511211358644708708318397782664790441483850892726363021591289769601773143700813406330591904549576673033565303501483431345824134984561793389969352858360682453145050962165085190844551462247686431053316164804920556314896461105990517248920594623207368185028866083545204401031777478536204379631364827604300694987133153831821885446074822327318603361180197982189679890316452355639097796086402407707792996651535521217210141595593065137912476937355748920154228714597887133411613147123763711579432968038073022807530510441550831429050060428223655336802656365661421948835934020515268427814468197135387601988043675604518905135773121158082036725469278327436727904908895143096501512854895678192908875143539011839912498273416504997784793068712140109897446893997857708110957936914094310746903416700992323070449992500695408695518682028214918883979911483296711016939471500205131706958356386814488173886841480893836657988958368524648126449203242002785232954061284304081008731217740587147492287154406361208809553717197540457794362975635280215504846032688505304355429409657682815402390802804040620645341562795429406086098776580850096216035264091093594303489921850641239435862682009112284015618253401760306091208092272478851305872538625312292014220269586511108372723025294956543617815355204604041006868374717016198086178474246886553611094895763315068677071087633061785027855807180187418643179933450584402598784978373354197502681409987558848565327308128922529687680199674197660442670993308966210578943289196289720133197125394037667729734986482849822387280740191151947457392079760560208650534821896761850963813652577377620778879962174950281947433721114536200735217253967326316654684094179891775812946426189729681325858715117113911746602186698579250850856425037146423124411899390970772059171368287184395072639575650895050602412162843145596958345955203476588502233150219242724782745958456828621291723040041503005283085583969529682135996412182458823562383689289364335800227014049833933941422976670052578486431695196575999688785185355415809375533355091634495895132859686851228590783923368724488233873051479000949507266680891470138296373014927591204422431482268868443643843630553381036664481905236089882451638247227897905472833942396984982138414187245294241337933436598890252261429980588763084470770552689253810107207525851059510739189369016128957600379449767114722905840991806452585713764270332627417610787657770658064827905983059683902291037828969802657675470526086361690656261253285858993218771151276226879775649638056227052295139077030278947622495206486102336009458181631231652695561925299416047680195809257133316757747303110522405003531466729140006045779334646070633352259504925979036585309204409545589646439435752983525079403056524155073370973376415786768758280613127192560676340463018228376139488701907278032625152653723785214846470232867501812043731124840466482769228258667085724123579731833825464438407712491532817606502524537156761765641965341072759142003447427822438723375565692154864003111048593183778320863370430307238506793975052482811823654586874144317067019351270415126157512717836038606923987087630676343065372120930656342496633469109264222632073617562526292285508829513710334398507076439171002093436888849960951158338833115316078862390490449354328387304413405403790229554675912196798456081260216825802065977087130222819651877366663640473144634258098916632004421684862906478036732400970002496392049728303256199069708759418353630423846120501865415191003820809807595105905515570246997949776052773531165680127794661894143594230934709760540928397306837958076579014282468595656908785640652190865741825317511166042551228735291543315541544746784933277126180978178031876398410521740234654295713900694963547949489273838426566868761613767142219682317968486925807356122494894061527585498402198949224049161247565070398067480179138900222928179203042724529068562385097613223367652867023730616373191866291351529875857443356903768844630399497335171651611448616764039710082227100223090528339692953944212692313915095404932507063757001688428756853921192246088865916125600460829644707462023399214133484660826216567908872942426541594667716810904137579043753517070444428737231941222274106461590653478350285535516322436611783560083682615152317429425996229981467006584819339381932425536719459113452744448378403892592031089385305623340943693284235487253627604157326901146340065005780586165993949730390198011716603723780879870580620842216353487921227840170842344955270206054290364357480442206459490107807524942437656345036584242330808737434124867253793163079603237737337788236221070770994905849116116053120694678773280078461432875489290875739166715378233961271187223344850055528883001168486598904581798711228186670326712570311066990532478189921044688861837069524681403258815358488812090727896701571133856348099615271376985653831375904904371216497294154390558571182661365885648534287555930412152383421996355491099302251475213122727005274340597865670057097398045953030721064478030825329872763149499132984054286493070623786162835798320399133071339165515752739884862777413527920743382283877863388503232203655702580258523899327354912090920393589724633275899794801024160829165748862969318482698157583565031435734628623674881864859873001519823781754800032003888315437026115588911619335635970609856240524513884523076687179393008667325018877716330573217078008966109297304149149239453124835593568107878316884624257388576164919427346108373301714412481866709891864626091356915328239716730127805357474169652841263750419780302085691657817587039649018397127768475532807068041444576792606996037163288880967992903071346454256667781634304833559052424582747710641117648076764702238936734583866298675393216236565276127501501192190401200008804415875754855753803344544479399852981493231952157570367928042909269638920326436983990280752826908592340130506455299011620510685710987380202173327541173214893997549462952831127531560033321014903791948643462111829530183884368932551003478781426984681064306446928208991175751348503202908114400995357519725177537327873003890781457632841273297727447223648339958750952822570103048220339698180432814449679183534855362347236694418793453850329076861937733725199510540246147752660260473722848178057268943425547946770457269699333783897250817975825445965977999673517478835031259761913415168300989132712356566147571927084064748728506700907324715719495657666129122406778334927761927341587779954345451900844756361902842199355102269912168624881608952354174908568999469432360180073096055117306072790493889945305447919388078196137980115991551443741903922952798158713072288135194735742464518119864125511673967508888023711340687199281400746824612713228541420472938444651363195355414376592518153549424568318777315359483571351065641813961978687279965901177263744701629823462186707585244820208108616307165802798721163961927305608780194037295399720940970542662221026553058656004033793049865770559706610840286021771129082047850281102794061279470572179935168504986846949902819037832990789015965206540373399570351680340046217499794125457664609633422109438052052678183923272266686894447143044369120232271049988919928317130247495313729784527356265120651582451734806485407714640628443771637265920746376428610592306634820540604795873317738615854098435472849580750928034368027682141232110784641533424402995586940303844884338294517654520535602847664502547952949353334125170088282666432607617422738273389364798645972655483196412019392937860955048376650746059367156257788185289416815487925240560756509815144008791861025195928051174144931057312330541905180064585827319058982378016462831010015984936166461575984384940814801598425428275283488905266074955556584770941166993618301275844315477414954607813787259424550579244257150032826996099352109444095909472881185049975476557685263829078880547343434799231224831855159470116823889655394213427454957159975491479201870192828437302031226142201804825315334843629100073422124237482762405951904968064035597475334608972168253089292808323883162279044288609845200631956000787180976741622306088694936633741561013634857228992347845836070272813331023080590644070834214205219868083991288978044170532398299405301427330513176022971189133020799757723893682412565895159556892280565587131098556057302903001375493408191866647807824696550503644535077252913340125450433277395716198126768815352910521920049904307039055236466297262686074951991003107014182774617605694092333815542194813876759774579338636626927504897267811240440978478683903192567578205859979781316745122291531303223935189512995281581688202945346850635917269880195148237473800016826307980122734128553195546989563143595491411348097929152548184670580189461163201659733618053468653592744474830644599202135756817249391399153248047427420963014512628741673618411533005102676380222328951720382836882734187579215375387554601020534472355398159373180448897388289446258639289462717124347442365678880205575301302645933572687466034765649419134108123428202556026107517818622432502917868494756939261480318549814930068079383592936659502964767929702724314429718039916135466560718519805126266495154988283824426851296093823617787973989613697546017307117589176832005003137641815953656068318344492422872999176273365475304721514380892376430364146959764755649915117001963799636697128005533058118370506672156832879412567433905298557084247871253862245867499187549254057248385748558653224848028419254253787917093078523230734597674325803540743451175117464625816928875632594942965319847485434626593275961109036516008371802225650377861895697867752500517111414413192664729580767422247373062488548719897971650901996877143469566655130964798257928483454862284867399326772368612333982442473222213538323191269694072470431541466593718654882604168158502212570688530727423988018540070848320260647868257061528830271955549177793778676338329429968413210337767312638123900776434655356498953854393407866742568243999789855559404127452163432700492271923466870644664836838387091093779616045278215479652408673722207559690799928565249031578688689488077325581925290182425964409808000728575415383383825304634565992952637442761788602297985984722878504871231367003339538800006187097092790049146677329942315421988407345421789107405876903556635028685406282768265166183298184879185566071661933676588905520033909616246689082688267567437139380576562135455450505826082854821170808678374734964755810636165596797639041923704056266469074857410450003193451087726744037774777327552905770334111433335947330497264572758482380955024994980969765474794582650373729703419557591384344054928139995918139268312694202650188305073849411389161307995779457237598392623368252589226241008040927334283102264575253644631828684188196972438559656507333097233576400864545866288851428958524826229418975457962326546080399076534537460588540619739535145965468771285081656511542367117456320171922268915081252744109842086393791718849857951924000947040604983962405491761928047271427031758387845702194418184213622268646461504530424266239963315503470087562179494231183653371800453750421627570677743653580586139847192780853738132655405656928238822585451827461278266944555346094919529485363605716547614470150895962697201019354289719327059155294538273757429753458352185072620015335980465052893215720791547758665777114328680284285014503254264702462375937463208888335801731087713074762650484870044819061252143566562541670916252591508821830178911139209714905699480376547372813655218893592042287841574433520168401745256483581982934257233000410300670468777131693135229718645845620200212519899302845010651704415237671612092954659538683222088264643148640116583639782081596481591317281519620380226608792284504503112315447608195181338220018328018748404803285690732387396911799882305285451072092514326020829030571554031176047963696493978059549903781165638623685931652148387111679494760128190349962601732435466670221215601208798352313357258889385628758144568593577130371860274927647605945301658757212761623251432180713444718865772037589718218544991415417304863823495688141092193604035347279594385546865998757477277475372783224144009137888005876080110824104341077691537638544434002297196477532075090382256642170366754077465646218849988232235807605745148140757471402406239174691704422366440722861261053891288604912011383092626625302045497077497143413160707902639344421458197192629713201745070078097335875202150646794857523452694583076796974644785995726680298671328909074345199277244744964981610586920996478064354158332793605829245861817267016511333419076899755585942572551226149219224145696588688867699634478156499631655425465799112125878427099453066255402824593998067268641925209371441567541724400244576184836511720956274596960675076481739716798983924363288047617020372614905168132969278612511168413949286005045095284654080392188748905388110582464599564893611759372755836943684381980351591118928705949736097738899551933268809520067868545998268635838266401480999934438152286434720246745592508157242286051993961358038932258337705203792263366987491037636667996729855381033964503952179785058917618262212548772875560527440442822212428173150971822847185210727854089234850906550894080594910842834202841805615553676712173395799901461242463603547712726996224744578829121781299260112537042357859663533832304120553267872142757399650800673007184465446127246739210305739026150900502368059887505948020247792125364383140973245774686689113835674394371810951166912962566393619421814950121314003697247906279905147262673623620142667527809576746600677073459161785059500256738110215782566396040956906732724960869378281593982049550151733300492301763643096855375971748660478577591077188461464162309473513642315867792820278633178727565470775337783751735339591732410843824275623920754611325258635697518202405130029622895306157495036981902389629995353271707095197871961598828953297617706854992701550620779121633290382369232743958731224063287943963670131266149683956802799671846104158642583978985811983819190821211794682967824903118089123428204154612226961036202918631974313080345907152433274674093629729194950030523001716614155762696284906016162469648435286317458960049154120494509155867347114299298693479875138454930706997619931743875240186457855754082712656952331271800694102751113560461025272500547200724906855792004615397255996015693063810316446113195462229496244768697032972658606503115689421161515471319457756584908431278712620794402546462347962306378477266453866525458463810962907938125210836756849734908339237688133858322241355553719998428541657540198080406042490640275519555243688985338097609753963293264171536888165879002931094715246184047071697345721790660757023369571016770965473814996331172355461275647031554277316187845646908245596515278678016041250584327844999548488636318934025532676607023304599185796640733367622111030957711754432334438882913889813602861392196044885568018620049958084498360865227582961840350395689066653609112432714089498345015815296921194268597931931933432537909861027619075440438495504453407640385155737902240704239273342170416319959603472998948888539740403381287750408968268589213644872353030078729863108466450334213712676284343611229508411279320262678049796975245720310612556405758219739120606691487862755642069983775808601819199568406710334442218201231999664378079570671658551427703555162296710501375420031935902658927771554074546849965186081715959718275470943732408494027229320521801097482752653908299943535037083989792786557976913980896700210363112855986660396559801961345833669997714964161899689929311906855509543705186797313477954688757491322435164383090882638251971076779767095261470270564264206705836682530014989531999478997803717033991113480742919222881913472172483741680066718620633122688036887241936588501184060656664884684139577836092677783472985062651779284895026596963694752464720960689063900137924718298741451233105553566546285376919685120913267448295789293367624949711069008149876180142318812152880575863350160933202435574538144102936893801772746250716544990683722164306933234123865679949529885484479329190061273859428698455442002271962752319214705364750089056917207348880277102418594742226841231997148348801475970400090621552044155659867597828873527770673284029001572687935479415760821819926055958893665080302362109025717120309736773646405342067139169695784896357375256577399524920437283390667596069361333698083273746609623820679365113822582548605902645706821997426803662351206719437096950011505609074851414953021138492005919477429096806417370497484588884440130825266549934996748481794776925319906236720817399820132888636807848296030515743330205860490397570341338339987256788948133424397451721253139399532124321509502173293469226572601884759497523017884642656084883122625593812806397918281522421390409327166993042043466721926844263587595373406524333090262162270456128018959565387355331631804611184339573265001002713108012624659190689787752655130830323741847242484723711079725772503783592466472949815889093124790926587614847610047703822463427046381136111265291268293326020702970741641846631829012417362100881822755792578089404580953593706616338154636591951360404356578858596104999202637638396512117003833028140508403130708674745736090313412803116276645923128960779913915766087484229135951729607319664282565558172531426188186786967749875517880467727884140316756891073305610269230216768512169690042482434272809984170611510198900663683615082691015242268661210578518598543248851931623947844755856946361164513254265443643979808010039927608171893430554119168090006576144417349408519835292021539619298420213782805097869273848053391526842961426044525803873411195626662122939862872943816964072836038191643796748041406253476857731588133593584343083527484274687719479282973681783013972970752574091471132394086851388106040201761173968241260214907216544084017467444283165372580853007090052808220766862118578143206523660779383210484163426888591952943484773676852215600112542944869065993484503819298074905270431948314534576832111994666960213072001313997716406990112023563465359096965325714110803270919711721355905797544971656370484463727437496528370302945401689558652676970458941754677846465740878647322399963189973929870702600313398772129940356805632198358804984065052761698375662460682607719507987571134541907577433979223001699888888249673185882624418637445498639226607949762644756106941451126525217267829160964992751671260763624595907974271413448388603989086316119712077899197161219396469525375607817118944346497855003632616006150817441937104602545777760531620414593215947580183946629276877837500492163838554062506199724046577668708175019579804807040286346818852110567587059760707813639797822461907155557666746968982851499635267192278454637240044357646176034502078839430367664324851230897534429480512799781688954780756901640546265371552700141808901456442438526724926031222798752832056182537952722885441237017731156231661742907698476416811160050933985571264586633244929501340595096974722154089431665362186006144470247034598339441567978892451861933549976386675008989629298646046718705217351762103192100180426550490191963825956865578945505534122620961502541755650675953605371759375408000217803164661477884591686546576791886310054702153317217337789214382811343612616663326876666805512190368175171759866481102964489181383399652532993013034712355272899738585229844824070475323104483424118968729862980075927260680445099676755068882218278369240581756036327865106097290320250981373996709578367107792196425613890959186387853880465842731669359723227453065838845260726357648228241181971046349020634330204286660363727788808679466821114222340563946541811247675181334276805023879479290268376842487172652090992819928893579299458841293934350976481958284632490093551893661573244132850141872184021543281325921937937622399784037167224398285425402522901990495309765299886938799183606275214536747808098998217984141219179622623695571680189125980646801658267847570274351362079266936165121062981015218913597639425461158114171501375352652996926587809177062866645901398397347699016545962796970586890813509170208727836437779247056949070301874958936324436645377689598314935036332525323961422240412837736810645191457165258115247090772140962921080716679007715534852402631162110448698079388102815313964371160771359142078844446578278198929856228832224869536041755472214145335837957268225919534480382112545068685919882479033864420169170091533313587232086717710192056966718477723534355050388340654476945155587495659125278663477893213472553625486373758267850533474542671774806635009614780286082018450578515366870827908769473797967906571345835753152556763062081961775164846890108830972617452147898006479525295700794489864670423313929375350999898741957482581392483557169673156704251127274081528266189188859881311625277623380737275519715599180386664988193191334518644682406792050346428120311760452758661530107086369403148346537082611972821342726270871777587922435714016791199938010107170933677251942330720373895058771300278635451926137268198028991355084850580756725684573269743894568550533829062180127935416325545180989573546501368039199930300426463737906722504590308757096136543390552934723307498924971390001771811946153858011707261104580649672695331064963731384483976610051415857059928071047331122445314407815142581888655198176126971230569600919636832977448869659804964206851380101829642669264461516585051683591443419744059943708762773029397302994794852903120781301864036734418644548798807314238146364121483602738071213518651475952425673453258754716481235011326809701701584013408534292051467298266154187802825124326783195637700775603899778354582342767190336614108818031056987462191241648685711374809244576605183228803558179021794219643832288650330037856273407634982678335840818575376661027402201046330205364382601954866179076342279614659734344028142753763405990840167137957319748608123438546244485550956103234547484679783134554882377933466412026364411779332616193689902550675182785994171786022548195358887542473633143982383681404036267108299698350199606651931943476022135378314156539873909630414718793754550009536067099905765466189125592019084771452873489710793120511962545171435067085090524925380654030008925628690018646705762909780923538921495140820554933739172347584459068007898337943838701490505114505451807464476572840335719901007536711055769882546404088004171800454275030000967202725635534268843660589593693626674474457008368476031813739503033581941262509168328201584022378352124265047368393249516499832589831069936805360334211729765905975225008363449896504571149399180179337984524921117164736417722585331315503977739026326789044057926420447001187870532557629764568096667368999175404256791999742351763260839687585346807084358033423800435048598775718015963775530913839045476442212898829084695101461572271823067859752822210929055919419853077595365839529085352087385375168295898994185032464561756450880114030942798066841972333817427410740978880649729830139452528552005957640096071253532552941497524831324666901808722613144852400385886347658924163033629053996552080438592483671011891973208512333527968560267416253757175138797049908217522341237057731189148307650394768980114601471222977257820781011332013310066210364703137886536367195334938371679817907775473931750576717810675755017969735386231830377909691611469602637684151008309957591983666941854957171490678789755351820513253460800145241520589210077427432706574985533831576555735261843891851020101493785164691878816197807887918738050259731692368433787396088835399899510516806985842369417747074911427099091629785611824528169280877030577329232182499284755425510957747944693047873453912706892864182889712775001462544291029997838402572976863270995758212898838910642692420785903590134987383248707885848712199866833679382307628059535441085126755926793344310057388599415495078898094801290532589887544765132670367404812804660185789721902895307286255168382136370036630240339818736302491765834740234129860230234745445766144549318539790866560590999330174974981730936983033025709729575736633427483112489022853250592472440986217912059196662282941012501202000182445826112247487333611391571577624551836538416914965313123879967618302238993273349354073010601913909582379645941354288754121885121204246788083779223631524141023852918241269731717491058034346826189906778322964713093715899512170527189387524175945661425484208365087674216706057325196804818623574735295071066188528195086013332466191788041888966311036527091203015072218901421044655751375240329871461927261053698229073065114331759411631926140313107589565781454377299692141899629353917982342422471350052881212318697850004469030826743769615677833928437609716420567137220229065113457923197410284989295167396979666195069719022262785140950686451503689167299868181306584838767442756373232780575680697307019820502887512905801764977147086338236005081068004168216578701426162040250708138435002542835678585580852006719917208417800194691980959938549788558553882944232295776291072582654406127887414874434861243530841044707267660818296846228490341041564683331420652580301619498169423822828839998059769809499149777695001332920672768439017211518055080176507837624258689050205933924093019287885065203060896389995507872454786976919937285032758385501804658566874561864140450462599921824433266957419776297623343475466116615879492938307885221879411919274593302482021601237546074817640389038339364891270112085673897234698620481820134867382263072558522369280627646679508840337119063530867073289734287901219795301976798177278638115839230587857660655328081305805712099416549135863644969372017265622059209771694033441616667608161781653967887075792331423108078391837392733928832685767695134561295165781036254754592476782911934132826160404082122111941671881684664274892226290228778778097870838478102058678729177192740732258145889874881190949943251170899053130108285539640196172373088309017229257399416796205758948165280448923922260538281168660547540577630682285407254273809275462244725602948334083783212177374963224574359878372061422631465623282089696905635885502540826592857346920315874997895399004746428839489632521482772076420849682583129491200919136466100642282800768782495345326329745689044967231260866530699981390285711195983035351939703902671626954149557999057120102245930001663175464182573092592431574175927715888581208363262354045186430983193362495438612962731729860205849653520788335260345807571219282283099475609555576110470071999925004900918727463405098093151521646064127241538512547632736182696226465505124810465826128423567910862368777932899253068819308986199485614229372940256476411605411756218577224735799171319754191166809293538474514827447803200233489986281351844111646229004254035741201586026688369880426156391342088701023922624001206965584897907537174986244192398512875041751525788969170884571994558138358349604964513710387797724920788078380693273640581812221374566143299520601414635199221544308321575050307360564662509257240894108645589430100192977488039849268005015895603647281528665514090623104642842488313436095437969098808346194449811306217941045338918035579334249253229447248272154501439418942379520974950545714312182090721301349076694449301937923741889481724481358822730998979455902607159418801401861638054711459129173959865552413406528696418306496389833253043454529971825219759200561534430924263344057673308806943458065089919759644700763105183179360638958584790462035234642048143809478703721148100516128193262422310543029322786309185814260996240808863236826206652177623807925370607357371422898504902191496414214125445567511405421542247748112419413624822852693721456685326260200376047403110704014107414918932729337457820937731056522213596681038968565687197451863900808607752895300853645272092999592586961251265903194525208083216520985450091807121008719266716124806647212126578497142382238440804329748536804146760023292318560630197153670102334963376066428948622927513615078542992048974351276409069652995185726946015923570467727352267236799165809366696658809676285556108695714024946948780942422158892136266075669796254512962379083861180125467065778459620214354586997421219905065874377592445885605983066424826004121779284019702085062585263278737971086414532931543938748792963314181740496668684687787831810540800790047911168924824487316870065814597163942040191610021977877546429730175316198500722585371709159334505495411328754788067541298516715700119874308600032306345193962105271414869600608879247665363936700992261248603792676199739174826280355260710095205448381484073264254943512452248638885685204410174915853317415633195855143377614192124051304237671225206986706971199713716503571752612422690709284865613045205358775429182747753725814997404662439978958730426187430774194069272319183281893068934550419393569983453703606095583179752376762648983115264053909371506818927837251954508358870550071677012151198691313396948874074761236696279970919251561794458030407162751654275951960265962425397608244477229394100388971237481293887974653106424846122049796563446173848399681225191191806601227657288215512236968617084677964698932111160983494834929251834696340808401523350506341078811216388259828914368947292109346354613101100199985748353173711857012216066108217768238057715673038019852344771593138517127452794164853333012389770527527506891310232837655764321886138994185503944210614161883291881687771521562360555250087817600020483909470510847372674706562391931034152475655544311866576014818911317513131892000866834439896833071045464214924000097694873532541662432560367534203716495931967289811126254919579238401596639091248338199926370125797212593575162269615401774448843111909970530922460706418057171901645131406759261704523621414932948476897386949126694203918767391127123224796380668825494117638625660644555429950559062727357681143154105168932686497037874880601968808627634104234734484518396376241575133806006836722159021922351946196432434188635800719784070548623847097589331690051106399319549066678500223263800710223078367514139936887722531735863359166217212453568421890788456775415212299740146373082413103538253190149429265989571832688553844563801855065876318145849235914486866767810085898713374632501824260884108567050011358180720961605821816853733380908855467238322023290296310537362770439755076785518232977541857919570114795981088486082661837058933084711655685759583329136886483167735566690564883169824946501485321858794373258444782642783940913511883571304488731073872161853134544350984803621110778300242987733693573612358309179150991647727519022008362953651982973109395166524898090750627774962026389233140805422656281884992770210061191731478186781741407397831667785068677404617553159988639598971301359452658511639077394849153180573608708356113849029205953791506108815569481663814537141627399184357950960555532350125865824285631730546560390267315593161896660213155819911179014720819211310789670215159506732330728580996260873867024832441998518021427824029870138915400693600363559597671947624133137469010529438888188004661991730830388491138927969080470721595509321580294824254240648700204511332809367736731293129687264190226464386509899148353274007615268739665074357231317771054843893423345704713865014199118496415397653068140762321039843941123084059151223229853013491406526163509668938752168550126089718450656976247794972939567679762619756405865702959277007251990388715739012800115338738598448500596180929836676470645137078349609151768322352624776868148216838919612017860228234597630188689167970310453286630599492158391479215149123763925109679136672958251942415028079367728468847723187676900901255089279147647797621642181562776706802160138424389652080518359328911097344004984024110869618379855871416154010757406159582616036278837307779806923001277490638637357758362422681927788523590381601975988035388992583048587816811203792058252439609700423693565685827151356822717939808483949006410369278571451959873428519230616841935970988452784930194476732597531234946128188004745872599481986326162982921082457312894080703235300029814496851800296436986429026186832258790125897761386411388267626756277721407622341138203315271625007215414877991106376140646133193486796972683770944262726917908045061522027871870702504609795437931800451073839486139443732481686182059500389629561437194373596644620821635466563404555990652504251997787903170965101916655413939632502852339358088579268886500822091156786286424675163078861799523943013498788252348321075465183847490403390521783951931835732684131813384061450623979237994731154550727613684723557441379641333798286274076026414472874831351132562114149042467222329103115319628363813205726908115637829539106025479369759957506382470392373242502901433495635396667113666589102283024193233199298817035161440778407538835286149512895052514568953818932211321007629730924244716231444389880965379974438220049482053735759681486759527434489745810043787579227869611635245189711781235159590773535394112372614229890337027966849263260169249168130543326927122900742485869124480277793749591038808127232829911998965622516073577134915029881593164927563761038106522772380259703014535289651874198838809244931819942407553253634368408875508532259010153129210293433755408286146421277892298421013113385956030417048464669502192812973098621067139139092074035120663844856659805505539460669954703183371184473916961631105446192622302260210421150484420089618762369806813044269074773274658681895380361133371043429240160021658162396953412509006196032078662115578752193562745929294534567707674297600628729438955217625307689184618587518518508446993492049937981753320173125212799353016089371095000150905996938337367119555026311169815410647784617298168010105778772094987474042728586498424942995210706200865006343631824997933441972529849503557134575818581848607628685979395479058518910066827585491197968972678115778167744253958949206414340453625129255862760968977307294249673414989479915085119555927472514722968354774229898205610454791303123969901749127208296168194619315209939605749315018923539703539209871130410979844573999751612034244231312548928762948640231094995214305475619610353193883141297385969713587578957241044348115203701792555194971689069906736170221880164110874404049486023471356012033024428388573112398451847793632491185988384432772181788431733308359266514247376811376784476527910730276772254259032933169897961907211053798187248793832330052676905307543206352042036712108058644366528354934683265750830236494530411397723122848562274397695484591736872637927765372114638497645956582319943416320402947692315766534293980548635888189501558190067435023316729303813896602682812672325618548453763309356932005508481139964527463393114723757763366516465060853237132264889440278575855577887995646157225601147350816500661478190829277026675864775741071339363933856247945599018259755693359174405649711544192273761278286829390275537808861679859551363191782246187380471365027982952230925545313367565349800123649751027021927186413695781913232624463365975895473594330039465042763283332593180018311193273128508507146250816102189776132089334793549519210272706303234048462115681369921311993826135891103718218457725245129294911113112558638765331033815175029795683556903988664066432419104396362663185197170666834691080654650866726247542570450842736967948480754679094770290281790913467620756558925734081635868213075954800756154580290159038963392946469235269069450664948620867070921585297915269616823040351110431028240567179296804509963239074363006267835276481684256091602212447435893913405732845387118302631180263076784386097871489259685526816353002971192060388481784677836339371013597202681631320462998729314049814790721722138824588002914558706828277556323510410544399737753477127641094416710093414373716411679801377515363258955932063520427183104703046052995878767648470262503735548318406595722183145536727796101139269682905757465027444707070699804324046478249173376039190961932646354661623369431031661895526034149838233646525434833752981544498847921478037557807652590639725517452447684344378531927564019584967498184763594340402351539455247072314015569351983685521676401748827097167319167440175544757791545280670027962013575551259229000987777647468758707023010684532373439163772525866412436896902204455556583778748285956013499683563976743729439975856811595222026377052467856450536148672248082834819875479980198379517394217012619290852555150917630920767460303555130575609633448729209184296710133578637470776007508850468261956667650816295740378644515007735663598745548978795044296526161673582823263040327691607296536567486630743325019154300627060819338346908654429493934479576746028701349110277579419916258330931581254144069097952434655116377548814900078104043713989448770268396047053349057660421677007621871312826717359648810759428421142680308510418733457860830395780576541391101619689421106788003016626700436603133195587093170642350270862556910040757027421415702790791353637219368719779112957701863605641281611461884568276334024676730557562359719565773504926708111193682773264530857143163489979102873211942874909242265995166158190129694446125093292907651248035840331224495867738035531293296061248596475297559122396390726647978766600027079972701022870126953884022982873987298676367308687182800370563528014521440578436053322311643906422104341194406376867982094080729900331281525210829864701510409289959637116859391388621370540413481174376938048088752391912343362121895523692642313347114261603535966239280334277624370254953831446898598250303327046594344167950407035063035900311584886124033116461033512016219971224085026051062559880996698891968823360934824547897741492605928220049895433779720248701015855354907005484720553491906412440459125171604925080381827363921597514412393090145473647736846368175494130010897934341917674755269756981103422210140132827596807054781442948543133162081004927904548027671058464726761696599978105796276531339181601174416547728066009889643805599403323654693932278327947131017125500300037135567829215178231205675802421933434262822147953202883530190247800161691397269610507969361454732400496634536366458197115931857697153279434387463765287697597891016906158849377437294614220252981324452822040487234866956242935282303391496814328734813026263451656580196036030241475141159464738583665836969561531363724963108749080690019731517855210934699251999222825027758301932852357905730813723348205849880057085988706652260476149112935594348173567576112619694663655946432020541029180743853777467439933696149679115153466225981637925677525901342685147318780130367146630708194557790833169410789703055670675968375096658608150073781111242504926738424520130167608010569112732325881861203945056579551010065478808383940250833625639201255053400408532759102756502696994760476821449740715898377157422902144515931081124743289348619448863259864000316614610017240194979292462310952140162321886623822672030533154950264804407192218803460166393900547096496688040920331575216692429026086504160744042229327735280368423225006230702300739218555917450300353728617336155305325598169554739717338080599386541810303297697265181313458592704865872125864921124158854053882826263197303850259145522274700430104143370782553652378643101981035408627025428029607918616901908969992299044337834781612507244887833853491514933856280120680064188001927438450653056576720575526908326075948664964726318295429503107131935641348042698420223766292669817813530233895474550247483920258226945965478519557594981767252196262619457753728558098003684860453130620975871268837450239169590945451475350890163012271011776111386753174534538608482843265188689168175820547528740568147882562304799726080082487331256468771069630568306904110401271186442231949504975812635277134698511863169691196503188218624393384924317055144795740342924133181092327358562074929327042923566968936704358882121775097806786002273726147661850194072066818697261148585754401411524513966492363545920039837206080635938255830768153492109534217730854399026113789295297072043573844494940754468839080333477685695583536467109008670082228842835196224846881362135382410102366624679298464316653234458749118548946275158845376997180100953018346742238621940942052975492577412392788228605474966176183395381593722338613903795439474440429560894849139418394693378874712793867013420168161806859901142570468530078993365060864173592884939968941897441348011586567819798065246436968781956067965499089581213461822845661138159700843916422979920568522902661864906441504147643732681187653128188659815236707885559444906763506976540824534939550491640010179091300395421482590392366665747302809515478958199869221186177904395501549033186949145578824295744902144859044078923889581050086373590738635869633361872485059060687547093887076403895601265504231294579154877201697137572452240867184502123767043679742757484001490140442743088777012806222302867277667965615079339975778952113382676865211319800932302628202988079066666057454522272356202283675361128647393537917187965852546982973895356109383684603795295390227857846371144889070113451411272433792416417336876268580418039950174418526910472917387040798611128283324415670459981387384191583215655134676807766792151873835595179230704001222901279074910102780691933605994456695407435375106573575784003231046464549028830616910800638769240622227601266006274376376175813767041141072791182523287247654682712042029435879199733799964924488373048357678722461693668432028173535160850119381146315767376859238873731242654201413716693845496586804854102842617697325882415355292213879595459040291747048548591776593936936689076638300860861689161029902903833339073378632550676456619258670859927545305863190614306309477813275392115608033300611274924100531641863939572307472449634275066894339051484724314625225438218563979043670759811750366474299746926137258370760105400193026873462995269540427439654580422649117198754814594614780520757384961666438735383450080509172211680893758370432255636739991555288835737340517875033792499725766955631085053947047313088821259349061806472894990733198158432049051554584745812018817504908554706392646239516435477299770719538844071806176635325845246273020224167540880029810227188479356884721403665698284077395439069795338377118553928032176683286177330934741347546500163905288133596674675744133062829352350081618757717856752889226563676843551810234713858844497976522256698449451896386548936887476295583557110472298324462527195437016372696559285152414030056806876478738825332876380031048538077799750665993829742674869052291605473655565964145887249433905255237881892705901766704578857888816443770351277930300868256266105274114668810175037200837252657155105512385590770903578488045411592188254039182999349046078032580911831550477553956139948211853113556059946739463059424917954421171746064115639862643691698509338953698187187390933320630333408424496219628108892310780502366965217571877895628998961745172437818381520588598654202752555970139670774769613322835502879864278792428074604288487647294900595823156846063289105708103434441138586894405854224152939325632912245283059951581050770006218879694700538131816392185515215288165104031585481916407676483547974104269596321435361559176405661865678180172632120297117946079711799303747291505563776224083566186425155004526590765447180679137274030522957786080592097714861604667334348240652217238162675628450946617301606516878059981332042695306041453684615399055445321696573415643549798863708133541113253795083336741169456261903200421612854121017628634417736785618209577017266074609414298988057930697720139519983027326885277105849202594698993862368859918224053922152760050146021322782854116521713667176922652469086036121098620466057706219714333251310808261219593562567333855094322546161749059229494107448819263910187993371734938902165393704442846132584600053467840786044095741699146337878784680634623314568768415317373139062719376564849446756999742230893083646630870379707974703849161132958095712112777917778401647796918492250638269130722551915220153661684076177951854114482454110796001049861669612404327745427681471234168906834613559698074949608286232180654578117095845835433733588554715068805949965554217193880182781615280500312493863031073662550306278141486207458309545264504863905103764068966212597900970500028991883139251614254198044027651512454957118469195512815920266227151769539561962415741840770029692312771677910530971493155531373445949642861562223236995349857741731948119865183535643951521773169709107513074380636617345367432098785513252093755798837836502823630602093015970463934865930979647803049531652732340993464058501240184433706911756632663121531838780501122655355175704020905208170691181423745562007434054401015486017875554566596658692478914138162444105401586496328588606890806525667995009827016784892890955299096750578135783691404615579330703346950006708924663809237698981150000100494619347686501552574198187267726166214244411307362878243690948945969587855469512857339417988515194319659859376128042505376537215698454378636250200966619299530334295415841555814722063426298248316354962927989504133742984868025011469018094460742238042110286938653285321838864642303426549961653773070371659864923169801219808934862596379055772776584778853553181267354423387067863877961310408240573673940379408688270526970795438959480926426224279674759033986239891774188402190372362536704539735069931105369568643726650828557774123237699526987291559182146190084089730602402505171946405993716568788763788617057262709041275284231064602520765347437668272555644412142108344811227369435970262451162719326652254812050880385253615160925801777591029254636060378581168269834175758774254224186991552590228662645627113351247916069555052082512404507311700406767254209944577842728677535850098231834303296507128452424930934692058145099806964112098467943751615516568515062424146553123690151822874772924402036827051174619414378855702173862154018557335530979553919621942117928342874097434059279963244828689821855865989430829854903869332403085145994011441459110469803001490682733768947295025699295357977987693368199162843375981787159399064529748638187348274094760464621738611204713504273733079296136996149450693054967182072430487631177080269951676334285614039317650050540759207534365029239325025400872551269359171433848855537697004527559473408678318962775635371249015255313855036884445923043143927895172399553290795242752763751517180632074467834664547721011732924280554291125827683935205506915293376563683783533811221960914526982553553571530431612143507120786045161887659830270130136913865235377266450733072571150782468471610233038365295076876743200817879943290161194652987185227789764124128965559000733103631140123122481086888575663149920752955722884616299785186465867916768649769237281204406759470800241136409288751653004815739185707489619810766705831999210172215100319169145722592978352276606178677834003559063415357892946285044122228126628230973728219884168741417650354046072473242425047703961308432606397487262460943065818063096159366335542270710576759242448256239987138211643725070315217569046840358994234960528083074353189205634365459101070681497160552869272345813049231317891199034804831735546706893963486017507902983985156484900834786486766017131982050275613950243658825358453460002925966979592748079237530668391248817821790876323915721196788250817502629595270395083095831279936365182001132276550859881575471800881149547096950178572700894873699524519769547338798344175888182109015948180712644701452531880185891840499547505042704693897013498278426586656952571201473787964457335347024980816087543948236317229104974727547911876345661036288619939324276724916436835632938004443407334392647377400515348182891925225112121344753552382888788297589777782265788460236427165819237428165488052685633754213338522742683088067261661743576342921985091145071787206099800999070328137110448359618288794521265300257666682436865292207005815093643447205392937668530214205068138456607065610881099940413086063600455463215156456190980596607632280637089969336660501163683094297811952409722458760054419415121932026322573643484912233437255564221448124494756320985046036576727364933680402480003984013163960120955395122083615548137898277958252645607996665498593919504512758771158505276685070535776339777193623655593820444850644854816324861361790561167516172554796813246530850086355439203250425481757006457442612199346374738083176256309790905025037321575236514590951086799254885455867835879135238384955980573247325781400488004529944202775014352265595495870938927464143241225275951218107714515947419142126554705848055121602051346191525249912333139004878432634093129830088473987233412839651042840749128880774209771158396932589178450274672335334771614267134255411253538918776259539028815446187781787272127617972489851729461487444178571413730461633530823973821545333351785838637282120613005426457874594412295864282391621945945271019316392253084685432483154085465398143485930214385217055563540664712773741981381313685981636268184949232441192825543934737080278907187475603309684161929515394353355174071250923968970703501375592209030735230352646817150431081696447960491189775239930352259521948250121448856074393001475464237350020912059609463376764939118544163510662080659577357940572193234071792739157737690197254109110520813980901888155988649567227433976035860998953344824707727397809204636700868835397275600487653117662804093189940735319362778696422382634814879035512321025768927760859899874540546508505212917810589516163040155019486356583861140612207262930027984552866371729908145354766455559304438877713528166197437582914815203704445023221734687346996797023787239052393224368311889133719946965896171228874810777336255538842088927252615442983859168016339338730541471874744484640575149680361921371647297026822822928150515133030916090184496248592401711876131933046890145500619642960440548027597988417499201638753309210048404329964659152491477897365247828870543674937882658046623076518665988610002912926905582422759248000754031906108010654966256603205359285030588131026970026964579157567582602226430124538191419894324486196078796619119328673820382292478963197706039615831345326376398517052628589530868731207697394695147021683786231356471425428052690158063294380170478279015522615437258024404824298222673185203648794801354327007438000327127514866621511854040158520268798434618425131023185502540172290126185708229391809108347539362976770605457398486940584125655350640301861721492164274347525438123456583632384349503870902705238431836475651939442521471448904529472467634826988631123967078851895896423301814475138988646916091624702323803035430241362186240078741294859063047587263217851329277845131183350627646148147358544151460817288244520931141449754151981697050567894541139170592710702264110568940284196673080353816777062049636459735404238742386969514953498251239315370815757147922158053182643352476882774963353366753113418666444856878140124930942599155428428771671447116138936466502949881139367586081729048633818976277752966677890811636109027208649323732525903353180119194502375453042562695836650812212902481453561392104129581817718372246284317269054852018822168967688055310508621224782267653513706105551615436421746879871108503101686434655472118827566348136693969422855815644668337558464074491814741854343111823715586366071299447319907502123490232821536001968225396907098384197276711226281202562403276631755686599028513111578932150836567107141654314219190091458176612544040318858367739618717680148996300243469621820679386452558156050170042808684024712314190970816021281224162814365635517295172758544206525917412087586086296486484361191101732098726158237339728703222158208241857068862360042681727825607591823981770501535255201548778433244015782349097830915177464234722843240066549176862629371820165261881948365258781417602565596889512341945282515704185610518644182379362011364849484786314880059083380392503978137219131375497261820662092616205963649843040575180775689023890117307358991664991002229177742275524313964705727542419454571376098695165899816393178657096405664364825302390873674614087638842448776604268798620395310021081168993329088490062701321694484488483127386482480908915121099672646521437265375886534848561274401115274410562210767176371785290416053227138837891650569490572297072212381474810753908195413763202604928609676457694516913640335465507383923802783413530244447448894918235119784277126386470323937321749487749309828644553061791924571691642346543018039202186154491299726220848754424894593354575789042811693706664524211729855762309082138548033757600599857037786642691627903427811794199748042991002333489200179015917309169413727439264383474674110063093303403247047459771997619736769234814751665456234871955481097267306729557019829739422735048793734556243122108724557542238765195157797693378462872767164604293557153527401871332802705192311085961941804416626634501186106612265050907254579433953570008029649073235538772546603426327478059079353870109738558104040903010402718385378465814132507266398613062136045473055666670148059537273584407400157264148196402508533194169310434559946820413868162096839486304278777268931428475794458769275211240735626445266598300181374400939076264072113359744189218297405052727370570461078979010171116400077381161310772906856912685118065609544447463136052683769313897301293695641947896446956777335218950637439672686354878453001890393638503421945311256216031527399679827267555057398149742272608815719765138366952842426126036096805090461604474275583784260887644349773072987359822558702070689950813094673219825283801463977001320170864997026372885956020954494502429475593594598759506610816858146895252835313933890631657313436887653371667231305912777915333012868792941062456714071262074579812445358848369227666222495166556341017561792907544645543676317291686369018203415710637451996226899808884527004192965616628128169906521554570380622815994892053697785712304904487418029988327822822666132048925921132216926303790176091393348602953671476569985055860546794014860612050000143423073752456680791625616038184089300694129381626849209913582684569434770127911869469004568253814493898094269066701615881216438274286588064148864648018331213100683808260632459057464805086116444497232816772316022008144727879381932314901602846090222154964157510286966705996141086306331419682088535856772306726752813487109251024975004536442932625369037775529931642594662476229844366198140889742016234308594171925123199152898158714910489769417128964295483924044962316492407173482828742395028668150933901211898866465300285129801806138815951928622708582226816300608546194513731285634492962163674438812423720935299019387811720138283148286225850509335614582920166972878624242092707168747449878267199512039320492548857115822556616460977127904530245035201721000974602823718830465229381042111642043763155048332987720500923337344254685069782487871843548599038853940956874486480481702531544208186878996374981938111997523579735823791322627883904402836945854714588425413696023909117556697591825102978605353045677609222976722343113623449864985449729717157006532790999880041838971300463862641938822610528254842722666420181995048945918402994744113024596411718177295772910015643999342871566047990152941310891025637836380862001057955493551391331391094105789022613397711208499843740152404446328323308895575129136524226815354891712892631538302806177193944254736793142866008012926904909726169676159071829495632409937418809059989191468003774018416500627867753766986150225371116124809442671097506695040651369815084815936924197694804047582813455813487182530825539594277435326716010739233173161397354078916747725263442621921714354701168866319379019436469504364459453432719423347329255237315664925013793432390623403032548375287164302066567599168175433370478965970210955358092540061862039483364664298950204552913996186910510505979658566413782543421882205292482677498558649167496075645851657646702388457211818271409521356928940970157499957277950352775970886499976522332965236885945108669950466198958224898555787923950505601441618504940880829352158123808303625604936027318677321013092165695088499197198126808703016622193510310672464162233362609346400299712984779084354841247015993889482236224569941079716988487282065681907345645528235324156704334643239561355896949153377035275196645313556124218596878651520631621714212253625118868367308054824512849927875767101083646016225616268696244710340821924956935314083491608229634721128816663799339741524288197162851564318851014096298389896331926071597586695242707344922960740681746589540980416643776867547711274494913967487547005741282920426089195548342076731346704625982926317147409539124503326279925608661654426670376876745943710726010614171117766804335617975114381899689450659577333321675454756730674418386666445851366065226367823283300065014643054142436947480977444244803477142450335876672653413162732080351832172640001712679509175537701325445475330383430580308035871731687974656921781461357944074328456860934967375745894706704116230547405607937595819558315707444629174666311818115404965250325333210654978380131142923425338368662580698074300794770405514913810138097076288166028764071151849077194552859226403455530897553189156019395468613145595810194187682582704112473037581633451497900692661602475269269564429529717025012454347418441695802784293174534683697939473439322612782982845308236527324696178101921811037732874116285303602135978234006119369905291517017292119147662509858111031372649315442906963528193729943691579803557145485233446183129168254051327367363133391516605595571247735069471696149560916438553573973970122385630874718417343785034373382306243398188711887074607414834325596311213498069008304969679171894209506683708223552648363937514010108836223119983547821838539803136068197261497547397060353996061645259093151572374622001129233420453522759039547772308017924544175336561492916754638075107043687241768098721100993687755707246286279835920031440848670823170048867375937753165195121342045145257495217632754982490928855289254456364485855138318026939180993881331677731264378292810600235537836594843617040912398186160975168098137950501088197511166229787522468655409777709395065598681680068721337052018983009745633029382220200740461427964988858945636472829082985819104218858763818254870733774449592104195856436499649526757124838875747107916362293546559693724980589996359353769189413197754518190319653883792449297033962146729637096342515808655347475591250818957383486706374768091173306746679818008259785697437996499217295679082969103624362024951186672902265378483545841651014787669280498163526257910403648629763165816490544632258611233392733765499428927321933865602097344280460715794334305309352991688103398321795004510523047994812126989776684151309029086405899128323055860013279476634650704739057306788157078564193519020529830792352608051864601076902789640395448009122074858405868973619637732667280871401310815531861967756711693743534456065504796324031336877629874550192626939928757152649159643408808659893342521374969339008639171127605968112075703262089874069405253188087317476126166824559011897931524982645015647817020448353772971023729769224988217670624003716977972254740492444741884437262884265271851489471538025249514974794343148168229806837785097539665033166427134966141631224415107056984577370831868349051673996024378776637765120517514952236276617919286039225572877207722699599660582006906216125832193209479861584995651681179943843933132981170605062947782350390524398242256587069523440053186202195050227186628365385946076725808890132993855203969978282538825274681548337347559629006290750605824885925030942431506642510659751334157247603592456416671407110683187761249283166011234374808889337911425221285967616612864098807387355389791236705227237794757806742181813250745491925088401124487931411384204100229368301049872855776973641218016519732954608238185934345976504885947009787209997515027629474395037337068279872772580042591306721468506923005364756738185696543116548193896447513504900981867242650067695981158626296991444798912525569562592908691821438193695886771223083885483696572232277079604252889807802596233707557003756109339859353704024259084533634180049807906261360618772418778623307058370172021809343829764791576358414898651282484061496549033620456814418647144924423393811528432301076006766952732560117531038576574647482767763432220347084560204362706018030673112914817638933041885667953529139149177750024960321987614277523761644468744747008510841410421192646120865689362047091203794035428961475797524673792227414044493801211645382080335312224547292433777416577331022142416310491943125591900048991084578982119899218456198953703643772031948967213536557685542077355175622604428373434819039195236933408111164730015903165274257090708869177431249963337880455785811472730059073610807471652296403177485309175652603756578142073617360500517160006118470618714203739924229329655878509678759150633546245244956978395961003321799418159179144233863982198268558094743515734505003135094886540470785660586288151407605801556344959758341725224993332765981320948224386873090875758534539994410169725257232167067324025908694160963440234004727369748725619319256467683825836102574241763945493097492703976852445052813276393739261860590131469184523211661707994881412380638059504402783739857539305429288938202048142283106890352222741273778501166129094177660928975832379557686147040195184284570212375174694947027877101457966652654233057650019590388232364640298122712323341116741313080510422113721678906344254371109463494179623274180931505625737545851146570817647848907638885301541771159450278757281642552526902616056465160013354290221244407575187296768488530046549943400008080628408796599487096128082792506609137905054204117257365595421788951606871937342774376754159007405051974804147713652675740848576358216340436635907242308731684398436646093290783428937932213100096024482313963339853231537658601858390145986863196161855018208785446821031974088821399779608823906768073156972032958255872123984192178505396684204613860497304275033326164539750955052009704142229408113137406870303487446336460141704252684229377054783231600055864835323198407938471939518880634436297753973835369817624973029024226451373680888894711461263952424645799196254971436073860173632879516379851717353918124754056274482610282398304272954562464887650261734766302292456110035009588380464737046655642327252692955538230810997715405585926161048497411782670112140225855835937424084793508847473488822153335311258673521698540275614520269589434372416172151557809562265062344004063366931835665929629907013958791523333419786186680802936859886511274111636938309488095146289273313040216047267567093145611111992975239756356363808062347664822605680597352029675714692201361271871971666995590811769819859441826083899530261158029687276166138793556787489650048762086546627053443650795921897016409821547523606429684960856641485247849995717200774246992124090060037368519632702644661495133090111337614060173794931349413259265497250626261530712077365161112782081979369964383356872314633891148139841641915163888787903411360331703628642821777001760006220689325811448053905738980659808688226546107324659367983752747449158487515885142203900380379815015983984040701884846850689436878300472066272452777573151286665116888203873158442072870625929962287427615487669975312030997732898579950461547900079447753141741437855203316974691693113592634254181755968579192332526318919661779366338767933330570600517333032720198240975474779866907544465415843858867941548230003341582323967717748481565717667245202529550946422067626217184927837505361150121704203062421742652268398708458618543066226153509656926494577048434634309805666023284070390703938254144926447425931885693028404128774519501929318808504958363795134363315059579045152063119290611100782595257272823409686041668483107994912890712014562172911958724641006128738997144528647715432337006289307990272061457315693005899888675195898617360731018443622458160751929775757704406161818241018727561779919621103707056165663173978253242000781617393268132951004542376518012647170298103110840721784578386409538651002901080507962301779338781673073297697498362396470780481125709776397259401959875793445680449715178154835090970111832314582039248094606007390803392743757136659774372196228788692614053953018760315492462871438502456011514377123910985639591209515295470178750457659856635729078227305068767937886796003720251839826947729641215006297199942363224939061234578177932273661346729413451275365155070215330965690045893740871370595643559355066177428701554397681187325836996079905357342253838061950988944638669180275424858536063602328351515089430234313261049015603658092049667478032755243426173915897267711635757215983497768669570746902221159072716392871369486602920149328637001647654393689067584185530203030623594919736191706048066151841625219086281135213531560733710409331183187186731350823672799043813533968175143215961171930871513723092116879188642971650449591866333966015883936376548740798775756372549688783892123566043616792592375028684237903522393392682634600276270913119957986728215664912196957996105323556758993554526813451605371239725044398830448656128805151441257636657123808224824901703366238182893424188339315254981692816336771860159585317708744595410177869028680883883343093121604521012020544092858263808332713658090623019081912438734513230363339944227428883993682244880386577567805749629605521403775806494105843810003586644452419427546150169956440087174435978387594709362375865324187092933836990337759819533354357893199821304585476341630640529723762084842863505154762984792117475895432255843006689204693821206554465701719084921612507249072294396216542256128092773502842824661682615182762971891065526242562357803151965339036660279584475716946806417150764467598528146661864983186146211723165838372047140330173634730702800304250921053099956412961541639883688620209697353655397745219505728308304259066962616631752629560068924674379636004353600647397079605640859610713547562307568696499723490485744842152173465850482768946697112873790518801321832430503893414273428776698853812247608071445503785351086960980665300130969485441742830147579349699603272873010708120424078280111118374174142652706629068769241924004870575939709568960583647098438563717943808363100073151409284191999804677320438653091516912037181808801732911716426439361798375156543366671917118824229042809403420523581557672564821325383780731318493836548474140849129904260628228901617692313603243836555222984358551182601057632168885827223530211171367228474340282500295328707028227931054722444322394539512097217669465918932464013699579993069720835675790128474699419112598315464430846679371929761078472378550186817384536118990051313852760412223389820141749000133325188107545659330365808193328381568930257424818551078977438020225962878480909405766359699060908626308903899139993577878422964956514079854334736016929408042349410554805395484007930801065436251462949190600408199049522354735064440291290357970351117574914504405048762193884627931638759727427778305046090135541015495176678485391065258826670524065699661655060206290309865352631162081195560486249453503244293135426807304043890574946310822372026556785755157068770949958590982929116497130024977856729187841469073952008378151398237998252456561139837538930844914249424621061148031874515237366512633025601630221904778359750670922894457226733279586505865867883652194133336508080315649251953843168427493134675733974039368138812544742985197123620830223157539386663353295787880031462939767834484561587821444169389845800451133035676919057330756991297334660443074665476155919703706494487426898563752286358006424793275015622837182825087574774589086192073940970178587810108421433479886607649598316324692453134757458277785562599361844079913505059914801917058642736801916791516241881811329608795957897664937687843861842500168982369503229453385758317603539560191212629256880220689028120401140543600117867716977959133563731262688753174341759582399129110023472104235026864895454096697477359389377275408666414674906999685898591034986379492350656153280527936412513682699394263719564718309297555715035264586982416586215776426933970100167342256362217925973297507009257587225541180216768484098540422432342954029836110772298695787221849875932861725591918710346678966632097045152799060566717961113716286597229006784315279208350600307765773925895788399473918977082156962934757910620547477981325835637029876435018656748476143964485587696345249426977377063652385416412232352512720935070671415332154042748858151832856368240932090281592071076888747495613696899018313182788173502898030411445582620540524863441991764091289220666615750870039310913009260688662556209876244903721484742110771976285667753392275720810477723533869170907676475487159282134706844400092639675636631057543291569588351510404048080257646722463343428627658941543072992372141304012537310980966505899044808991715076028384977225914026442572539065931718302296726564729131754419201970800988292555122784331607505776335333763345710809447827163526413869059277468143045904723518007605785885143059956649982412632845370879502517522061520346777859354104925657679823902457322907153366661096985675770171679463768657737837249348657859225643971037096859875032384819968521516948935169715791734926167736057264269922133080528464943986327037067005891870781467392795968343745800167435871111612024111984036338546842491205718325960966012437020049209264443794935398885021579790374227460072742271358540311392612894003808421990956578205461278506328264420236214113582067854967172419815029862798064270764850405554474484856060003202807960627236755898660548968484985633562608236549351661259323710755737051231966773763659217703616378637461321456363492164558510000687215625574060001912650351593222164297797143578488362087181814297132049740618873106312737937110202153185511242108174257149993531232412011372753971108957169642716267581269044199783419745304139484602214185788410995345492012691817772873243069742031433381269871303608028339726619943355779473254622232749612792169006386250821697679677230589515962344718797329747266749530934061570617655124108176280933714915588649329029756488508296501861488537276222221843353668110170986147135382268908658937576322856456475452510114697393469617423658829264789410676468244886370394151940356991019106088354563598817858807247236687398246392360821177757202354738310704971957370061057456227326846977068243030848083911007001212962601870790325815367442569002021330437511929679218997325026726082337321794203109094519538791155710101032934001294530478243807947351730549098045369207376012523209950640824447319698709674666633585811322109942677138351684866850832787571461868114314050790559237813913875980424699865908745846353259202768480013452911021857766900072504005871548099261687201886064981671534993251907589404450406884228603507989493778567438580587865641737456904736598968184542625801722777479633114353565564807925725440569229748709749496912787249645604793970547869466773398917906371961827938309191901731732055006549704614001323377582924030315587951728100452519848500251391366951863078400047197237462166596602421690535929424028951311130545870510358600876105807473887793548270856991280438653460768490785369859603837473858921155349530236830310572252482722777439619512729681445159094080548360863194714365248438104773514146788783777334153628341527935958541042563465550153993654461398899602622333960000109110563945918051943514647202364651664232057575126333487867083896534427804421153548422963954567319328974233664254165682047611321346298834054324702347213998925357754075726269647684950532316846628798311603920217652894127506731675811141809336928480797312833923999139371206061910126249735276705951011291000812111354429087765677983300098530601630006550424635044208338530687244322675345202329224075439148873976760821806065682971552375340462757188514999004416165995163058334645544294463253509100415056974206997750507427033447422461098631824314251142127050929177311571472578889593808808625234285348800289224539118026720756739077920937071534103372502278867255082761961962338316079528159216225612823995651823276672024848562053266628149398492819860907025932183309769024228397126375699695880969462218912103022643854801062310762454655376101843771183389353859226669368152838380292552407598223944769579902268614672199090416150242414258128616327235668855417614243392039043761716597582243359227539217202222443891205644889723519342883016448020600477213459006096439757595927427855679089741935702243736553335759845567126014258299860355817392278481790640440206332584844187556788094695754892538846292526227289821437985440409790609888026529620779489676775033234382660442353850053703453137706967449533944186371255658681520533367010042277184597562023572681527532331212131564970733404461642184207518403544250731228984820300462331819969047788446443138913979048125799662891785603154917429461446543665391231150826114414306397631564807712077850719411310383111795207201155586898457447620770619029739969981015494374165621375786992120941526692111100189796969513741213936107625797977890281603904838885419096115284305797274453012438400497764409142862397292636301885776247407587809885454815537922669193678673230116825039974991254624849192516006613391526367968120620473877631660304051596849906501760472064885324522419704739381172429970949563543939140637114012775730175080524982924447004175780848927516773895012701558085850042269629050717510935786893674884680616426751984344126132888768264331519692584669878530841463277679018486501814167739225276721917088611921157639913438920397283589221202104795325004460140340365598032103032266195020915833963688853696860954230478521312058399480870601858446513636633464506666921751074687993205054944012808790305773691304955193499556352907830374195534251390992421793046124952341701458512201780347165589940497774816115553720401960762690334082454956672660687172742012718139524299316309084927905782489862278641287067520862795756536951143304133361461232244402648242310815374606024157666048444572286232247887208333000896395940648943876336359748285703906218970448171983007768813715800115183175504700963398364338298591847106909939172575465813841667392131055609186323393879419194755424699661133385446109196200121594335375409061569105331548805242929366947459874426311792248571351789724607135592966118677690625276015979995421453402631951891737583844803568937331906408284344913394801089113022118944597342518209806089112562962278731471966903246103358307734906210299282583357593174874566047400013505930552396892307444357805528830996784583797710220999574899994121054024138159565978630025536778299930009538736590439279373933556195061583165049895990696907406947371632822788834370911519605894501486213563300249433149542752224963024718813660642507483113700433001744509465834011956675480061383645629783454929043976360010893252196520502973472434661888233367044959480881149573677568030271085053271796750153003443856773392435976392927608167440033683988290747876543024668291247560838323357490456894718137587697512451630895041224238488388555102139594031959863002301956022909908445216923709254781327902392127285962861233518064535378450926527508823726939270776372998103223436361020514613167624151978701911171807241196561584034127341809189091549355777695828310798931320733908075967166203261613864891923344053654552910412642802910111983415817387985457223215129861572496623855349978674692479563771648081934422144793094183244210835229075953678349276523054614490896468510518022494557206002072251200184030756207939410879910242528025770336470621981795167287480937801195076122703118801491957224224496381549856572139975682667337999182296367166672219566696064799224009777911014725202948081058290428703933052267099216775124088326668942619564071613755426728192597352594349174721310349521702722945907125477888730913191285846539044397530368025437129494547034159868652537408434048605243565106713291694558617444434970982582174005936484060294920569388176528062378194752200726743361659084328874364050472638561179000809859233374863139669214511414536076582947083835954033633822546526343215837954571819179638294305133205103692494367447745049674834140839622981173181445940096286126069824853316139345859742690439833981371128035621164746878479260433590030000969924017759004259633671120747301243164301930452050294918918851567432811568619868715812458194821380296748157073108688095054868863183936380530172675128502681669539528918295820658064947603686594484435250739054931430964627083344553305891290724702734837313300249616647661568442554403280279376236335766705246576713598220831332575294182838313527921029772940455576860351802495161941616176266802249312228574578024328318782980042974621336598362284840810129660460325461204846512145472022076024446648443882553197578465327022472794494460087517206337384512745965235555716220399723240310515403190733274943157180806017532131373937180426466562560998741698293630837083259701675071362109747155565952113855272169055636866701049568835303549650983261558140849568504951723407167727973323882918459432864316640322906916200027092507414637823669634705930670064124509979707905700652665608740226648032717809185091112737559856281550188479315316307110557675741145521130209670026287872760556193802350986841076688025188424379489502634273620295964395360651357408849465193135432017786620539997418230418629718154113063299392155364039867003739771345963189878700128136914098508960059518379186065072939003078723332835540614880489175545668762678949662492938229790990959758258091376916550052199946748750210987226299311646703144054956061527401463596695401846814666822625835920915110311852290530868551005908202703926291534657634381299375339900209480485343982186783176323560228479398490650437332283714468627030199820907564196301884750830936753363518360073201031403732695669236407444960745501636824454381520138317367975651018237993979027625534257263515482473272992645268174024206371877930472997427338743185867924094338802432329425173339911658539816471269758334723252491156704514672942152007201916403341283628486241608930504846208203328857223699431376701165016109499512662944963324369394538682339391372752740499675120518992147663250616243939349678149043990983150779131341810655025337487762039134076153249418055872280011921437211777177444053334168608378416943833602995443234256305230620979750830366098309458668498228732954399722852429901996455319521565892998360667509452347474507297397043239564385920054300599539412701978143876503170489595003186010347683326524249417875311668873946071360308370725174601988442553911361008404504712494405369102193116162313397381503011422686422554615117558192289359970572648334362875356047047679662179988458092503062362114633265568577423411648856775399344825981356547369269250779441366163786173186678546684333877518703055795473311129863782849613740745222126053832214330529477322730471104589175755290925237657470085893726849945547008620355179959722839806970903508457667030643655140024376226104185755065122647194681651401344473397141986148394514389295005943839567555254884042035460821819784444204122288231316418734264061169090404349155789423711711335062879686440991916794655201475228613325091987754700458633263763046071414500672734047415483420392146101359112250157417909495177091767191419955192034292206432343901021477684155422156446201432933275769093495489812339115775004358672533128008747796537192980222850251729006103806253332872434298438249070857969885657948643305400280652485812305583561172375395088164937449589971424397014852349288415922838911762125478415410161442364564800298488104553483883356619042381618706739211868094249776617221399175995252474161967450894646282162583260662218718034361017662494333257635287267780158060454066556477060938569442966062001397514910070847997212073259257078160355952661550576863368665406210165944334298215172691610429819807432551036501268566799859441120056229234174974893932430043267059372618844418498265929246986653595074107347381577842614193851494434891598315326799152231345196518061425980320819710033441734841075419059430605063711860612567174118074554557118292631822054281434612311186457275079153720397917833105075561193498805855946371335921154666164034292152425880086259600846766015467143242293362220344161253322760848391369937342788976243062922727109775302780986007654699427163045447905639041007907525786126200213704068077346475954596459394424992640407409267485866157937712317803416003838641704265981272383663592056169952094935916737097672049144568242400359057776915440825154289306564450759334102784630158235447525987672854554214244494938936402535327733606963515867853807860829566409762950948891177322271220980000270056536067085180919093404523185610442944831670940928872738858024343437671115036985179248623054584443852840928665333071388310667199089203493717169215388803580117474488575073737794680151545809180996247340438882720976478284537439590139917015705109162925754483006753911319453132846812801507845277017274216008344914789144214643843378267592190024558418450447815750490545501633152128886207182119767101097689049110809205025338517483605042346072061430338580601032765757924943416593320403059624314205634457096872656501562352985482383400481526560340286973003274679680306589410598809799449965014638669467912509391384547492069888554832155023282887777098668275902427260679065524878263182574252370165061124669609328909233015985998213659261395596319691204710396274973587798346221020082724414161548664079915024010004164730574350871977345402499043101727744573062020986078674851159180235500665709935676754072037192676237715991140339677738301735283021962206631773229350054901931152202187688546787814599154099570799805883849993329656442462900400211487676342876787279060020276322214263610619242871276601209548656659650042626619550133248338567958407157281873197871966176398652307441515404329096715768659613963149300895877154774466397812951538216504163760940331542847741369447419935303641647401119053925580039560500936919411813295639860495918096802558077849397077274393323166766535204488485035461145351854200559738891048062695582643153356044859451596620364493782184776167118010804636077249437904877767299757499902545052231804237644375751938520785388865556474286981672639454098444938667271125953358855462953697827795697623360015974664852411089176250105057252327424454028110416915432189937780938058998718197354485464921250029168392503609329257364174013422242575736002728495343132714015594189859549743494833453715813006609403269181586214230640428789589217878622629677588700649365019591222407893266236857568954779104068588467662664020404317331339515752576570208291304634258832878192622870690647534653360686743282281714126904488687740034109723743792557247837557222761777221811961153911928643021585862088778414209849406186309796915467864958553983541049598326560107483829372966017375932900260072625423263308429298116276721869214076008065088534729518615139437533018594403842492260137401625302428743857088456371067305637197413147055849245262893216095279483391995144415319504779853983320907280094973176358163463172648784777141862185007085344691330047079739209601024922872550188216115158740124827134870050933324281608760256785801501803218454248651112143222611528797157929817902232026568026292487552887567467614911503734212421163085193226959516787856026856270294732910825332119468747680153375994074437152653527311209037147985065561503549897419642554091232428924256986493093903207589897453098962472900699387148479805081153416780841520777901751706452686544371867587426452080648011188593110063433740581691819260404981779641627723595702390856737648270551287161968665024109043757322114654539609885002595695421447200973901200737312711337953067184067738182573333599107187854509879914890804971108274400921681015860516328825690786141800786646503855452288970937278781047670508502475561313591747627557684697581634721319450624787447769181294524965726379494816255593785421297879308014633769600324246527060707569913678720472079175728581944603407440172896302490796251890288626518610601182285408005739660588499660708376940196801784243964572400622287645003771216994005041353125514051666218835468282501883398688437525952303378767850094758568617851914532016903011650033230622243101875274572126829948669456092141925559111475853061742251076600863084514040222315524525308129923976658708272261973538930789506841631377612932359539685166929829502489033935344517396411578153548029647189822053795360459691506776189798874510755980776207457579370490645488046309931275182003294266979155956546864420496956763501404697973981217521772754342716967429438471082623478523207817992709922269287357842406626866439202957849434005453592497781197476681719594531571614293069825589896749973583496562447922860201760273636493197952092994805494719026185674242717318915950573792562577063545225186800949028044486166843095629675018639614410199656380783734561788663459994501638916351021644384701506834402251447387035109228219638623892880270327760957787128415404234473053790052833252905882993865964757384773196640609995061731025771968181187339576696792179415090449346545330832280513649959850025502856667891239854841313261099810792559247974341913333440962104336899539899252299804190786546866408755068118212697659582449149234322067710562465478476808118244656442529581126925138394784164156463496091261124048513189691232417365247664034457607800531269509171111079324987732957636926270635612229066728465044995346930062315681877565935712875094877297600034316621982404666645056896383744174316168847238427891177641331355823403930621325660785466730295794154400433701091448244414476121613047128148928378733193767822930191655042010762142513275919403628100665988442876382551249711426662822543644541233434324765984867597520706106162752904256492896656769898030304090177360030983975244546538251259054635262919873501376171095702702074828223467318286556533002213001526541499839924678152833923996748355865714739317864360836385275812491465909176224719676640732992027912373487168338998551124802003015292140669797052337381741405156931063969766311577053213986168386514195232672192520673496967515801951977154638645831751124348363110420723234415278113942724667797403549482209703361138764749619461102626142189331868277696469495295241179899417858013079741352199813804056152156465472668922562801011201620892344305678347551731929965015957881907334433616087266071386901261124162203851238876869346260713026119855392479700873075615066892599894534787030726808022794516344944146350750308100926603618907929469808811816114738042427501917178018884637014430649561881285365504058136340950108021709848441020278621086963489576344602875756177033419619637058634262935259957929293346753102153947502122570174944870036017571373534793710857884585671627207429495616168841869329640957882083090158541876464805420345483462486628803638950290965976713331322461967772019581512064402203035595759843264580063840475564832904098773260691998097770641511856050490589501428008993697004655823863425884437903216366074439883385349835875645797983942182081627956805614906710590442666192396905321328109328971720215712486422938895827754735797409302940783653974208244312231412605125736983660841280154583165166078106616883032187946233726986406781578252370066535699970027731140914973739091909338203077931044904395738893816890177175456661448103586745239354575906277804937380692580706958261280837980147280112147941286386604662905809000217224008767610319904094079264377160529069009150327782184012557528940143177528433628539493179207634090216179816109436255985064065925884638147413874097044712449443625874884196952153562541527520944785960517086816077613158937861311834965752860435780937344220452730979684489758266489838755914388160137775767163105206872952081444945641793129884639260125774648898666483431886499228783023184943525000035218136348025526337449290584124834762017945588088832454457435706674343998213087794803567895177738722989545173123797472972592241199284222609027171779739515208310616447027854398878668110355697425332132425049750420087793203606018262956535083953200191870229238383576198376746345901656137736413384950838881402906306611137804247268728451583627806556288687609249225231413889292334942059469817943367174623765164287010274629628818346645369986464679705695172475159313992997869440953091860396590636826254853536855901798195178277262127936149499944680189431436335496041803114522650909130430795791596430559957833448400508085983755180486232279497300476810900503447926996045097045995822759698192843818955322350410250968105071467581859910206847573494018469733406068111770374693199770346110180288989580613743146273381825617310875049541511547329219062710030987870400358078737218405130422540260095430782318465680544126804320211065026953559726274308331672613065144461244769267626361229059073911810544791984164241598752934830615528570009182873534649595982369191136237500763127841867832228929010560811797187788764324283876074300016101330486524365583482829332227252598877139166732904844353885224268044838523299188185354454138759660788242749162012882553847714712386948047432894968971074154723534349149808138609854263952290244548807002589019986308399330277848916709312777077494967661976218810030688985827949365482101838884478778249988186025086891394842026563661422987043955360005613559994790452754301801243512023696049535161516932872175366891113126950939913315509375851403494778384170997449742816434527543125245222459788358918536537483996166736724154243410566525290565581525957054247438680818917759858671396261915631951208017691990164097831671249634484651986798958739938456562573599582362706898688897418952957368484852352649457473850203993372381788740596652632088464582896358232282329659624690673491072713290155765638495278117965273917292426984134256823074706726227727955489982488296610724110767772119406059266255546641469443553424138570602946819439130947657213880800840915907816570440498514393908520014625002360445164838521176976994892398301483132625074042075765604362959717846987691564538862205222551241699793376305123323019226792706691188838652861149599623345412615810115433093171255194989457969020264070353758305667749816390830803083120273737024759837171255160567066272446903386920636522709459156367291235850915877939689551685237889414971946609751947541479394937789391716881754808606219419993624656847845513268322868515503400516165741494732479734134204077288284355924507302321429992017150539836260765197197615288145756538683614186741392500094255604896261964352413679764216704491536640307646889485283866885553116360845534520192341142740846654312218264192241209891906225914894796630879795138847678311556411653707559119900059479310973564502806366129135665427191064586826677404049278360660981048049748014557262877048876199137983382457179859602546654110600096580118796131607437105309737547571209423628597328587688383544246140518381321658834826692406624453536835900945163876644439760642926056015823714816031041486386009705346170977466837032526765037065022064388172329304868984276064624826220615663162784929617947201094754175886796029673125733700679669098761333812709760877819078302057455294750503069925068033073992776541244181325320560030273760203798331807981691299336591463627136615697296324529265987275003735478226692995606141250251875931456029514364317219046268443244027675045062701126510124635319766132518104802926865670444306185797051505316792464520478766825348926280183097734869981073881757498371040335288455119761988267754619007720064051674258108801886219661712989752253581709536962101689661672195885329895477334720828953608980059763325931538784989169482235752752598852809688946035797981318367555167084526815824222810716008136849521205766912758890871636147807050664416562521819293947820620293329215989518688185553357388201602603458612105912265186165769174011540296442943240105333738455741805868891529308009850597660703409115033444632873305109972532734723631847538571871201900872935332403192570522645260817090514183676187407870638727164280350261002844957424144220134053638607760714322847650260067163456075417467582568069352379812371747678580154372221118496135090176530924569410428958719816353967251846032160918680764948362715441276898657980377246399488543829188218858661613315403519134915846329799989125636216063775472766476991794898891705743962230675445737454116844473893265366404276380230745996458902786684888408721741256090662780709019887597469061220679620536145217541471159908012069012520387561936456395015094136083312719057951440429177391892024216533291775019353743458340096659970720768687276727721619888180045542589347510983514735199179212076251756669932205167229783187439837669758499835892190463643818325621233870581630590294946121049988486167417200013654623561996469564197479675624220795838607442249904477180297095719390577880267455215338591273368972786197754331635106716005191480710276339126519078232953697188653590802041764591529704273982943658600287385333922308188022828794866700363804135634978126914961952496970740977289026290833525128645711583909553566271172739201662807334267638277421398609555172358005174136175865521554725507579471580954914175178425305864603606919381962421954128925062344173283722272716422475977662528915090897908093810507069418212356580727221164064610502496074421950420768172265960688826188603211846061997010759686572316858178162847457346736872119475952264538414015757286091361468740988937379595156623085193812319043011196943425295643442982499656611139336853020951356277784518297794349694150765431413824135638357867720807704456560165135705326593757881420555449422362446319514607066986061038366380713200364492348336849593630315525272163501068619731410943872063721654679253844228973396546293976518672769612608631869438576502498415189223131792843904024824539849411921343512707883395022375911966625894782753184449284726510339363505952428791429362415883198938950364405376781549104473675094604493867583988749740625766356404474009600657165125371580702864002369830219746019483576280808722156009841110213562276103119963393824655680166674490464353173979673821180928664434602400878141930191077036233161477064735457077919201687431648207661792070587495546417153389208111341218889970246981446198289788416081385696159734689102296176938148459421090344710275735840807848235223741230756992432626850038227544321661756143738118608390546223931964880274063331442159443350040494317913948022280442295308397528797643929812395261940175672901142796579239909086795365634977927537342992054033427147898921095880521108870690260558157541960006023471516423915571717982665123417516724701702975224172222380687490632850272004500188833692289528275376014302829113563886089513569130955570352048597576116112100157431768350434484454531318526466429337499625068678766310304183554200239099078291340736144126393011816492122980297470232103969582150474129660983266347676536593994447472951595165066501928357169027457828925063037801798764511846144184463713881187013673270679679899167510592056161548783819654854295489528297828071430753419165037236001010835626519688168354783043689081559259423349079021309525406899403493598977240477460010343296619458913309268934986296668169898962125290347908669419828549358781671578605674222490114967974103851652637208485844824551635411356281566410251658485176758090705277890445743160479105968901910585434027620763933807643477612837466736916787456124249991768596193560085313682291493159025213804182485038989940822465106191686685378539965332497939290917625613142319293765983898771623397724632915273500802793676897773507945017638145439140475524026264120749809964672741642967254313887912356222575989975404682018146288390674860188230590425560438362717157796003949647802234464315130661698854199640665681968240208147911304303152884733676440122921910442992265648351559114264579713549888024215941506298674287389344096031292342775184550988349614106180698409323418307179854988239764495986841370548825043125217491493924000488862301561498208496488553862278782229611438325709750121790542506597256088332088977673357505065046668279133172495342720752633205929925763024022795701156391560810354077347261824036207664202340053341903168302958140862709959389201160501794625685602417511404525823450462097911070045258239881405176453515433799411207922513735804830834834547673537951658818938422412941021632938517066711495701208912677132351506128516651001106278802875815345165700339705768659595069938149948773168264853063617771468591926428759103340703765866056228053218446342853607971234817760038979504972946171822639985016415014096044227818655528889445130205223347470024606470783238799774723046521903714753857446829366974262402438527540569007337124413712039213818580162264814948780597709483621871737730604502280826022521795967589810487635193784374274709313703946234073325455815871247760140357458286194870879487762209519355685778899740482681737022676634074307332071821836195618617226492442381423094461146158982747505468367174652040787082777149199398679323890867556367732429028519483276366085776652984690407512604504138264199865388496922975891907990514522436232063147175787239878268071447646579548654017455224242511244401200334750396730565361370054726242167361648797064040030550376001237893973713060114261429576259785161357560327627979363550691889139340687480073829511717223454157010484669785079301998801398002056636161541197540517275215546895405091457771893906125669555748100054987013221200775142930039072218874628585611090864575425798457766145284086402010041550621002827399128084267475503650484268223109270384127494713791088361054708930851492810433513291248787555030841943812634578081467617195469000424143246215189109941827540915648689434440008263877237274422396380645020024205095728315593759166845914483679060292992811325748779998256225059096711710920522103161517243530481688669929085054161216284537424417821427931314609907926579830860920616964144797964021647516903650407869718348089224688663294698148916626860456649718099329388822168024715080651674073622937333946867721812493244606148688973519465062677128303236535842786610703648305072386698671221882046725999687904265733195608419059866049583874663089896494987808245701811655769399646322160876179535876936579798983105155509617226017788356335908246156635613554584873391623512083802080904943520066635132923200717814884909718847434989593189254962550619177576835811922881237221025536867337222372526603266466081361747831870101787616597693195887684473335468099972535088428701634023758799749047333903370719290272939988275287260999669006766578348604181776785501986376090283109074124077509324775119975911168241821787093946038898105419306917735958754780501149790521019274651798505208148744788157955437747283030577289621957220800240419836680513527711468249848563653764969672338737570331966000342766399786888434816330587052624397582817201875556084705580266942726926548764862384529441164505436660714536190579632882872466741729451817022707714722634467598675956268495555347125453623801989817966018892492135617785419695187817579703083387390999376380290785288950065696693679947547950273537624498894391428728880216712540580871697454845875477593267240918930328653101354243492456839385192066519782598065274225172634649943173029704058694224692507622747493274816068141444603817573796056879069878995053908307409126670523868374381266530055281978010320698873471368543580815818241691028848262898114384056556034236983863190812513609614235748779471750640074320119516178405296424256014898880387178866697313136729351609422604852112816887044130414651472588991299891792182868836053949601901074766214417491312703620654116574471580723511395446438613053776943692954454666959031555293386343180862939125453793984319394596219592182537156199963334957621350805110776488038695694296666600615848795807626269582034499368526603392035759067129586329705436907286100690000067259441679894755196426206768841032007111806049659053222138607596806385095911647437765647890322336208894718348326439005713170464661578320227438184017666668948565882932012153979571838234789047611136091793623189771886573595330259843755741154547249298558069644716625397094080704355574336883425169735254951009613199259391731689087094398137809511436280888838405997962729229152166124017629413082147460889833485614551326419601551939835913053970608100837572711148820548345889160366763983721673444885595619784063088920179138926884655836228244841061255511514873696942013108423826445689955761265503830530014431964552424604280706475518459253050768939668041505589271164221337282452731127270713508472952039043804188078350464529950647769854999986173694695549704080597057043305098859686164821553327860161832304104571317086014928966788525880788730363492429741556148765674757747287387711349595699707029735387594027406671333817604380813186743958361356026491015778228685875404875363685821573119254916056097032777884643433356436336009015743177236505423244802821633574309500297351517793651675036941932900565640933625900552376595984369369648558565412096901561119209637096749510223303379881591959774576266452267009734678325934312300731047158944555030888528707686315371499482112193734066841995031372755311467182168336743785422891460617508049603626937206371868848821070674602573162416138054186483689335371424673097777625585227648298791333670811830840397848422667820310582357815888574706751370004912419237307537979096923358272205291518058322593423991129632915338463427788662313486798370849954690832556917529498218517622487836440854896964858999846470709231913401704487515943199793658032010953955370727455100440776486388016011339163484606409671393817843398144642908372570137012494538226295060695416550843083703217033712654000544530712469688575030775284162216080571732023100852208855516204805383078496853758169802038189070713462630452035013623805357520175625739167458807503665131518345698855389634048144379021350777203578433830568290315902559058407332105899426899393965694236047126625066682885008245666692822592313817749200520545458574016509551347565100297714089292872888454982998279600112914999359911218443507933315255073687014957077440933315108197208768645277928305768029590627643066385494330646074357870162882962738303912029813253406055979036641465651401674609517917883626898012605454728361435740273092218276375599618775541265787418119342779582090322899328976216121347163091732044472227238627778006527309535187957917573006773524649550165022793306155070751577492392304611375941461161908497017984993622338252641101720270446559403983362547451651644587689691992565301119904467419916120938982186585064842224766770287284147790554144376482191428506153810008407866390372020198651552020792752096734189843163014918112064939847683581867519453356048348064335629405509760895719888256363218928298304780029816782764924270161472534510851454241318251484057844731059652179802510661320405573286588649642102864462417607140007375490505214892943100093815243410452267167079513545884180153410339104144961033086637227519783781051871394482868285618864769591636636790016956173909671219564424855911496990987034142378341838693519558077236251094009202605221758538891552567685939205256919088770739821532398278399536612275733456275133209921028202026993023906981026629196439592101232635098187565860286603001595537107869518974499579039347088331923470686765980475541770845007378794119116298656291641801347162536512688531078400052145795453884646048250492895267929285559848910574522725364217420675971937788647278399220778730979072863965216321150941330722822568593309107869052356750616128229956251468312139955827940273940880469422575081774635123508658909081098706679362484941439768295285592954408009999110439923168346678124800068749421130568041261876215855702898409834644117040890299483173172191164626042751428446103859874754517697167463135806304591240464580665613464017444984118427436821048042061011897421932185229445306253396768782203426390082391854115406929529684003773146427738076278470246699416897273008492974437478855392855404951345606222498659312938483775204501702811165733750119482729038494362414864792341087184992899250855388858284882158705158063277471960991035249786906296609631099388004211802997866956821990547921688080961591237495925294351995845659308660840051921103545793542672816842465600675046405577156880908148437827474868997351436006575087988215264474195231744173360837235726741057745027835464974274664319977399043154869359998025588442024465505512882539565335114835966129391412257425042814538055867249502085563908890336237312653629552108930117635905996324240914537627420467751471850888915184028923016206312588171738357337064473521873276207271789059475334781808016959264826037627483661036140613358663169278958329195341019615381088566728357162094440662809361296417508821124819209763905188110397172364356918123908021552086669064651422594483616171687401686028792031474665668338900902263796665187692485388971601533299556148021826670890895665066056550381934002276697360222567833445804505517724012244503657204173078115699507282617698034131160823583174264783174110259712330943839878034624301833088472477729401447218511200297916045598539388645506157919633204065431127094500137655224947485259616901978503601718816211837536321120561767261064663542058285069002613608370679225968716754561706039545186044186048613548377545330163870633430081836527443868836376476763073234605908760830484821788256477181728819952636950260358536235675559808030270101035676491334634479517914157969506304165104616875942977213787762905449669005539437106706617028200617267448231528137135881443501439913568829531753413198703272899152316380290474635500141004182010661172187275876933513954497458306277663065600623870516114080698573717797522656790879184835559235469529713615465649343979630487144201445412903985893305766844622440383381106538584192567003882815946458040533652586861783548306732427786083342629102987842376546605299151189514527600139392006816171472225127110033130251783956428243841382473806851715901279097628166121117594586963957847127101024688316937507289424028841239170423662819053045856047459903365659831659923215431615165646476024792251281106378177709906223197177001435431474117405544576697256240344291064123710947952486924177446733536962246105278463972282086073434730993162937348879782193968960365654577303550599606061500422232541170236737754194430833672673472405255535778132243606881502075564068567609362849435256233309323008899634377079152995152931574436136937594244850217482856572063090187488008416254922485426829490357411111122725323702823400560706887299290419804154697859536075620185931132181299180186283001679480175519941268488046600732512999646070554342255955260308093554522298780003569454823158458258662467448549927795072090843184689821784312155640825194022687470586170552991746773683189546730208553250489312866058339321067216608914931691750081370356635322369914435827765296498842999866326765062017745688061076535049290639783146494688056337965298025602143248627759446637492141556386761592475138811730389034539272929805001567282719424301347238317719287931071345641634409052165713520935508042799919340393630139953838531749738714549187501474323084730776598567459197178685636304107729267591173995291573498589897279419218999405202143979478779117353495422979202779583514800330086187187879468932006360370241245069564939687072398359563383021856083691619809395677406139954050304177925565743056766036722540150390417501929481253984040849529163927599006717969658743142339179878118796920087150082926521755816733799454203546140372674951482086342940297867117990322132007576801298937405351742611100124227317019476045114441418310550020719390272018385250458971307543921686818245496232359167330049500983834184584204260455306467447075323722680199787562789500412513973770617798982809814488448120724797487667351223738484914493620225224935771314334326026021971392725385377275524332008254746932084554176826080744382720039063838208188498313597532890636956235602789301626038939744557498005210907783612057512575905686479688345313912615788257921630164511915233624329196304113949215192299118190430068579998308737727765199669904044220616582461077596402226435745165817307851001520595287538988815377305849185219901060203778077925659752195602932651197893591078456426733245169857137776744169374256889361124245425377802103387455146060533665320586099566105154526223855310616733635074507807992878150126088107329556329492473381252940956844976154845216386224847725113023087280874367068924155400479351990441469779359065147680050633109552674025202818883437950768529149972018350379171412222912097474440631040500796818206953958035823015475671877462517847175647958745993765930286790341177191668235698100155524802369655738249245900230735273256633407294880658687983239576787678056416396009542334949028539373497634566097878143358983968694556350748734913472931659629022285466867327286724865704912624222830691339232912168423093072214051627535679682838044331518427758547416709486622703086813925887396527080402401657640405342619457051562798704344563432987564920762492631769654435132422067937302467888217139986399269275922881727526412433640872070575978838070755866808584158408688192330897156846671333811515645677262878889041431415262533580088439760443667771038171233712087735697125053537446421561588631246617550699477509026837875455574641168239855736164893936211842461227695331198283553684318970264189074384115896161464114803915049109509686655951353664840470857974202411935223418520428308696452193788025974547617146033985590740535634765795617464585675092206907460291919391839721991383414706003658940065911238366948364249634626342566838974710443548055505452750295221827893717040167251657265398080636359647624038743358233409680675878796126218933572491356306742741330854921631324527497911339454939121605639510083196120772847805776233133956025660304571459258814402864135649322138823715374474447355191068953656235178960219218421151908570167494016479737574656981278962601260401467556166548215773727407571823224794893464031650653065249909182463628396904218479571710518166517113259739460453904624249052195303468894393134068612833330331702041122834020661388159668779921843004903283962469992884707234992820297654760919029633368566996153604635796022019459056390799360044140934307034654599495172942090731026832912694278104772186021034361569529982150413947307783841064858155633865325164789849126138003272828724072177216945094228150406820305048626051117644255490218464014764691067332387710543623909353418353884998341948653444178522743502542138504833139473539383503329569562867678030304612085111791703908966510623260044183218343507172252188661484985557798072120845960566076558907734072020616255719852758255547134512585515856532738837297673569351592965609841849948306732812815505437021158218019351266471811485156206199639845079890899460617008979293577072149455064436059878516431566599142311489275488964662360920558757256143097008552177015640373267693534377120132909096285936591315237811722704047434107920209708938338700323688021363947182016434864009972554462917542075495972706691334444966002768376004587128099970187834569016232845593396471295215167876345166877759308462452558149697021684535018123245868984692029181888765628887845833349340825961369642099242715307645229501739143020975894242074233836354136757383535291951126685718722072339536810013670110872988836803010246191924466062550662613501697295336932150151703154296955352322301475777302205151548272127977725678356842712616477930433063695351447931466437159093493042493082912300666716541025351695894325997314242149580438892211806714943941326738763566942395025364525587537717720300790934039791011709026807194229967196408263643128295791991646774387895922277562361619729526992923453709150537258208743596124045084567626741418904842133767351080356859307276710722397800806786522780985077600087905192568810156885874631298441217190367455521045371906186600619003126853446634258635003711208387272763094963520733283951681640161010052612161208719919889432688652989878081212011452927414375523278278076046902275717361172759959956751466661968616852246108141078864926494103555817995997226192226402211623287328964599932159859113664683390584682490915887668663473082421380958175582694784223514812049201298351721340835057780033008634102465050765612939558961321562070640284160748498213119280431753868417114202017690743326049338620639339549482332497649601404064443179408302615412687671372479622818648852931619631841560108058332344293412916683731919570774350804712268105993666771590758166285178424952710730248547601934051417670343674710160863138930526835357959390733215939404164730792714203691415865940205417590412267225540441497109056964548271957203603750799515394554675177733932066107983063911020282181996419083059634193054070121563763408914487171578393650742767384602040713930022826801083689540920411409546094754480269222345506480241820375582708971718930628287436825123437794961556569684819560107443368918557320575500050625858410412385338593177542022206098425624099307298552025962725827879815476319813819451631716286286722582417750209010265836378763200673072158107914872495508436801127763108132397704458327539925174023221651784200944712643875044565638937829951112459289525129831358130345908853509902820227310359368567901460528016046971961962617947439748322887319962111599154707452757186927131559168159530099210810359513003114812057504749598077641693195203452071530749622692433361635908776169447928178974713351033263634406690714054382890578413890419035791616829326044559497626380826372499423618917402132610238594875121533827168704713200194531581032840785853863309630650003383779933503484013624605750030624518652128056523180041110791027583540733362525533271014740527931808386117287338578082865728085031945959170249532080288498653974652061126747283448037978769319898404496740640605685173699463319972692259219896112090504414741023627010606915353878525095349259282111912398333923626903782997358436946551294182647908767973257711754231207509325047535934427307506688934867010123226266783635980606325196237991039233500780520301600288010457638089907639279018344726522989963407415758383976227898638001826900549344521345385335230228683487850242580049589786171806644408928480648851084709867477622702996563454395711726502331103487623302814677044761194033808129747673549563839609726000668510340541034666642747152587453361202656949543154588118329657494143197242511199865437222581987550475289944688448721640968208575799959911873776423959580547589625109684098786045386642476384091230909342390939299375957983652251652910891118194968710910768226126168412703599558584577838401118909663615220472942364229474100671925169011514934717565229603825000483330509438452612852142134051583238668046734918453043640114450394049247616531266317157801291357751955390382224792072089118315274904425497415514763332757617118473555832944411550114334470106112656723682441463671915151606824335373856926041857860832221953154419774345411605859302666735813278015451592830184528590623822101335730025706991140275357271431753978549030077684908959459948372328180540834287064004942215892667806809526524737413192626287985609871935075124010790033173431417001422521875557796087243314904466471530856856437649458023943457419738332608102175754747181620288114970951980675709693786950263703553494890866153977788079967202498154765314559674811533445393606837293804063046295264969613828082407092381347782731758562389821883734556209683756620303580034920878328656938746392640517780421265996728555356785731616435562201964142078516952785455599991624103551928061543545092424829152118696265431396431101421524559207942623207823720767944488633571693446782951772524954001054235713165896763025788012797271567064226154073658401051696983025701254080613511974626335565250262982619494255750486301372024240233402285562747774895120362610215071990011324853635502924530532761783438205799128815431607354064069338372967735379741742191893886922820972020743360662089601647166406561983827274496828906943027910709527739915376159437354417253825601889387491169216385884644193221018009116326367062416751994885977941943498759545669660417216708052287473267239601942528014337349731605877131851792414331061784553872548873586967551460149830240416803894808608962919345376053968380430230843429609654812982535024503688675178219948153502001927627177628604122644490893446044173023672073327887634846703703932113437634127898618231785376227613709785649168959648967165737733412480773418062489668384520874336862878563838592918896355544788820460345595380859989782467685593407278292223317993933459961112426763047615370225449422813587014196470753862522805380136850912706205665937635490683451177982550546190458329359397415114307430017510114879997358027071378292391586396725460423485776991207136620803174348152400210742215240309343813494216875835316546968830590234948115037165986591184510025050527230240885413798141128902767729799139437100119607369274656913056115817724060683015719117686135480602852514025371161432383357292509597981549994871774760198370472666278976965720165723635038570111325241692856947508829760323497344091676230451102732327009122310895099396651163201290467826850578845050277738987263247626651493110599016163624416779980421552902918840415672071317850255542924968955957077431241541775384467422399694053051084684778406179073001567867447777207256882974307030779162668823107653386011108162854956928546157327554093466417489671114526428213672019431071133910737024834753516751976019232970587656183711007545267384471347072705915664656368287054938580258682807341839690340161489304101286964316943267688451046344328240234212097560329906963813843447218623046918502275139547762308133407331328067817800122906327683024918010750141247812871995303728089310677042680100183236642519752044141797567377528706080349681624114311716020870553594156670434361622961920253619313398911952443912479878884259004960962211782892349079608121341238774864077450698847517343720530481188866477751577670103065033534200243554214826972042695337608738127951882432225906005257730070995757486358744716959566407799451420521739008398781521354972964368174975066822976112660966417485749193216127952796622430793770594840100986621911636892174663940544795055542171522209485016807888339820701004610794370143768627113585351450144650217785722508259257646243062832939590064344456800335627461971162931071485496307606830570948108419727614885857673202058710709894835500490341540637905583144249373730236969190366125381876596073908828337137983935484002575386737135876848049889697221790393020380138702129488390817353180077690495281846465915614986882238133772235374622111626566786639863941475187875949552377820875416049265643546002133191182778729010482818224938954745873135362303589471173167044124293493958778371760758852389235826039652025619582012493596451085162565781010329237551379892796916652931491333441287862977704598299252005906293512753678398648554121791345215553820476805497285857783224572533025153776528665175715529296638263869097838419613323371220264497165874974047638406520416168138040733512661173623442163282903460457000915846725686401116103331804736876429804958326205100154292908851625612198134984161906947821784955146614910217820160408412461764887262645673762251375495966005917827571772777570607993474704953187472140271082553447845208033855739386116826919592102846227598207256271431023191683107788432727471030763495173349957672891893873416496481033772640396302060104194032104453251662485126051641406592939192883742991059522272130131285322514990336143591733941728074732344015021093202319704884847935211429882191311443181608909751157214180858812522909833489188574815669149644450946272340973862026542859057790614083967230053030291095010873956002562000673109685847381723248121043834406206021129074138112411900116930024230044645994447890269956601751977661324309265191517576768524727794270548525567858823161225688238429742066285682581222805037537202772347639059077666243928506209133002752789607870499890516258703666464912047257527839280640113255431322550905908335632616850459122771195078357741104111913319092361225043093777684031600316135914306738250196255493806481782035719225008549341583212093743506361166607412550261311900291502693168073646962657500378978076212376636079665907580903073038519247143825299778069328555475290557469704193213698088238678175554701923103262043712580968100034361317760458291187590232884071862018337384410876167364584478886650653106223998638581379208682023161198832604047026083814181668745947480356726774862653091898780782586358853063707385442688063854324185880500983029713689567744845429260476798219461861786956160286812811262554544009628791138386464288865894406676245183293465346237156094805002118195255585778278841024435949112574687761264151997302194648199326079651977793664470114949018868210074447558566744742199973959606781484203868994949071191643960223124658550064346707734525550660379160770118069546516523880315402039002400670818993395499660212772877373223201185159638441177625490225485094849382757288067063657614434657721080964592336306970847488262862592214522549816326537950754096129189239787512669326659058409731862729465056703672843548820768444488042854883804247319184116511119114686266032828007440090537686947522468642091140110470602573901398486461397223305859659520199834408025616968899450658156369535438695550422956808222272904700969831952105148127380389033408149057702527468258654591816147966715564112174359282999423095772077474193873853116286005675463631691239432907797799642435202949955362667692183104986374399769388366692985847453579858834906111813843278088613256127587290639959653958617539388025058850536494473239672592494237890367346872752603884912906017132983166381650652175828183351606662896664595811785567541299311903474607915822556710240409031372638920243000362513661769836295831462110097227164607547409836889747028465994316942392632697809895381004823362265685334227365976063249229946351850268090144931616838087606838556930122145714272528770674059672928010052327192491583498285779480683348246208861094556288439462611939178092568887116519728056228549244415777664629695166637019493981416281969276148646185078561491991751707450658533468577273030449545546624205449575190991397947499922366161032805750232347336278827113832197674910633391398790450968043276476109606324961171994713612844533089526741932763859801603781893521361730451790359225223927633038995644084150048477122563737106155630779560641382649979388385498394283165596552864635688373261317316170132019900992463328900593321946206086106179366806655905307786557353038364592021690315060547021849751777852807159881113567571888451035001708551189004837300881466162506773759636436262082286457703227735412725674812000988854449972563897560241963328688351028098534877757778006543397831572369940064258577727466864259412701312534007839816744331208662730800838413351379669440553654678117295654773901809943886261478285225737106845636659670172508643550255080343601088617192641015412609097244433813767082234776295920440013457742632630272319837030787697912810779214443867346838624026966419985733417663697681365300663463789457672104488545632026759465219651382810391379413247902431997173370804148507618727924429704631413286942355507750718240189347947152801896771062351291002376219944849454072321322559008927535165013704311442524402488218860006824668994477371392478222608943991536812374817904977239254048330864084599131754126408582916020141410471598324310400228894883872062811146366454833649058760684348664725757026926749936057143451344497770570247486971510156035097179766533214633165818817506341436496170583377295570354129846283485463526435163742588687032881900358433519370994372601656831071934010706731049749811313179128256803400806622781752715588076539490678195741500496469245083533412531862325383583654718672283314204068454367890670787241909151992732498547673144850688327369515484844197068689015924296465420553654804967574690216364681503405074561373526835756390063107786913202184554594457584413919747102652969513285115799922416401739390091096831950491153686135370741234655958690804302603124184759310059070293087227793965343511644629037874108852607513706219729185521735897226349781242373890964784173381175344825717706362365617332425756269529059092234428665967671576390011159742641485848511957079249095188542175730429503917716098661221909365711116291800541320004436419688944089794333562089688949841625095504100704555190409297261936898447283143540371427505951728976566465740021237604496533290991145905566067311624177648127618634491070769107159696757583370108457824385093988560370692741997103589716336743953348407037599618499320750531734741317775111163171382060150362570464076833870564327777163392765729741738696816713431557885397928468042862597263696465497041172023632788037983858773512579095454721061605861679502164083628345324214771592941835783833256906332553177925910583158641105618036179274569257357599362910043459414823139944792095572929376569784793456975131743084611652107615622102452191096412446329704898306680158516180211518233784689974254649716275526208068087884843314397290475061614408908885262817556184350879649860285767725132106767581304092606001895455219505246398868159261408566727532717401526099568662763029151864972951806399800764502505985231016574271670448872908177987227227934301473896662545638446270182635129240025914183379989299417064899929889237979391063511630464340345853277820404799272338904001994954001878221697409177745925685848084690271256098483792974279016840443099990491757396703336765364663826420447815545633759783755690043907322068136380948612779626850805485649278788637163136728411129907397586092042318911468482736607126210270694449072810317375680055082115522052934025557478125532709867010129747376820781830665856377287534039150809528787430729433640903500453918307185002458399804961166204733744778583507537384226295301076302037042503174290900023400652646384238910511612128437906715175959443789550186498041818652432344305137237131464833877279160603420426096296332912974980570363768793316070099411333059390286878097983804203548414788160398312369243716520831441284670524746963683053629274953934263039001158727370047566897491011745031754474915253813666091261966852581450204476311576447495113050541459606295576077107401817533868712880431410458770411690250645886766507640154617165801386547538368389679286341265296607197183082947165133391531527716799684107119864963888876517043706794322905035752874319853637786911334144551934142287208342857911128921306396901071654024563424117645028558280502693090839039787485437629438387169267201403518501137584614356773709638806428428433155152861190137400838994913672286971646130185123877173657252582241139659565903681809730967503816872750561329515983884017297105615545826614485636736283920256341572348837825274038168647628523838047911713243297341392688410496377046841768271214608028560011738576969452459769157143520475004379964184942878548003271789130528734482678522137218308403871295639676322340285206669494906677107043546083034536025455887085484400364171746674090625687648988518599294966413702524569580966743602305161431647077000165903627072860781549282123898063745020573060126624216768563368276539772717242770301571295434037722464456640527400683431997436085838441365460871806980009591225380176744228246797171939290874738523150734403188817964218041094481640391475033574444608370772603434862073745309113838774933472703430854014253794439847309206861901261911524621344811635637396656611989855995805146022739229928399819627642973233114801252334542710066612312498182899605583764693085692176676965905072773670104289971272045306725793814400263901181275660792175794678075242618024410597926684925354026083965156991377058673346441574252849518456003834411298762489007694589835445027186664181768506027136288978635591963781146781153342565194604598531756135141157167183172245442141021185962887810989275649129167929053616074761110082297908526615243462328908111358394694164092250365016657719288116608922526643815180066334711327044446529326066987506213614728598671039486922223312516743214435529016715791410518109307073321713311598765897654370652573535155293342282366209599628361100700910617338047444938063452517600055412813173891853165285162132712183589333253236039901571130992722197777565966780245984721350017460202761935025139512879531204635643549319309693424732307922759615703977695251466166921867786684946339459631800164699608668508475801595981737028197979697167966499008889344966633449771088728343975474355034062657080836213791197084969553248934653905626000929021055865638895730849972259139557277848280219619516868493984431853702987515745259775111169244741908208487660462281449961978408062595144225944184240805185504055458595555640724534586165272829895753114985306957719326943037343989677261685259396530904281140554419223832909921907335772945497864894267293446256028505458000249217609488177481074090932045653687083421011748725625965841515744058062509210345649436797504312809573220259391558078038863316798581294046598782858532102641069230527984065571599712746308066789209660360523178458131207297914072845527980207982800688886246546355053138721133146144086983487138990709813667352264776133505549166823147415075513155927961517164324500627801904517083809388356827547765743390384079476849113758532316730055002921987307323243057194067126686251641737137742959427143453707693498697345310575757404043358366978190247834944499422615215363467907234623333340072755045030928127227345315232351719484934883112678212178660645174044432631548980138449191931846193563991911846002754106437536080232099834311677109869409068491001462485055963687388714578401601540621033767520361806615861875115704252753359159966955748927881105371533333468227654039989393387797123224406146990254409438840637545528408379638794424895584009296908965197886322688822106901526257281552115941489632972560961329387790422840291447850122320734125285216507679237203879272432723853957816736788032320285733539445969240397836330286973069264067830993454117882639787456934508422052782248866479852863163471788523738065665888923020896765248537212223650933885700619297767981934935658412581951492512180795384199203849446123707128279636399720663597414035802638384072651514780796793053822519773668913762644978522619818274588398680206899768332138881890218609705838986352832867991364389863431755302242227010445209633524184679767578095106561558693488764015880908576543462093525640828335602566934108009677810338448492665434341841075645760855099023823995122853305155898193399157212868503603805081140572445280082389680386370377691960548509447676576772241722552119847360309344585734939667388129723630391724427324457791744705457242353896731605435291402248544831176824241923334582465349436095928592710381156128908278518244541412549480145537007931847526307751489121583541989964810787049386367095277332569238853600794723494352263776918363448098047761248233947433849714012788751798322561115755589882776213751353088208600421504915973765172331135616987833080560898158814720892138821339074050762273448861644242820236674046832705627876631869506493255947460261622176477748119358737496708973835049399437193976932972102271970690610803481515784059611534819657554318281712822993457239379950015387343384497694131702566178053382591895681355616142343286320247328820030766491465052601941251590704696769884228145819182957894217046291679531339752416641934741001296173244057756754311722170851943147321294737500245027948780536611133446380076289405737999737701323363483751435566997872957995057793711702274985501799799414409605824402298421525739225181288458147638013800261097395648413895474458955751691064565242882463905406216868555641823390353637227522893800785887100169399774376480601163118827341698820182607825648006248331386190637498597948307877949984758478224253474866895058960848147290822660596457504810627974501773659206264841048283662907853032627984359126642998980906282934588532468444140645528672496662697612272952950025692093075624801119655145044795162713572133056271019721297476546269338554245075138082086278499575390429480856341571318273434710417219366928058528740234951227271163714467541375495401792390658602099455757651952327444785226910725562168029051147058797850148515971920341823490535033098412330295612375161751385234480491839537099343932895446148940290770279616863858452033323805249230360557213638029136338592727620257886670472472060849654123088165307399963287987182272236636251493853323654263954038280039959791611336711921346171065328162363189136771903396726309545987113421900012215932329332810017953948250840811339054497774850170389324275250977949549527220711940747780480287702905391401527120278631954400326221303510139493165452743081334216419715362578494935847529599520654121352248895755902977664222187060609536136264565105289126022425563964764446068816733247374947068930294094579756657028394816798817090111712383385257894130694548673393119244805270086945594855859274989118227246099696053356019953125974057157270152288894028727439967816793689913800069018702114131527536168457904711393283527740993558864140701276116163187915476041152471219397368317650039736578481633416053645666076205279161404175936940584184228335627882632772772268966111595651030107592845577021701594633186466247663005808808768593259388034590135956299998934423379284853937577042296663932212694261433168127296326923521089296104408452204618389117816393371367019097315940302217665313081954103471709060561780144181505896061467663350402357588618130721344911746921086488585206929433834740720040962111553457047498392552028654004034946964142648647221097807841259338537039120859776554804935436331763923500601351127424265285936941578057182633406160637215981195861219745006070832098921995868642194425722193872607935835891104321775313350583431439260997210978820342087887704070453443743468548089864906490679878478001802590112078678866780386648762033651197148899444853002065519459409241652360697622952629598653141870540752307436283443655025747539159856968675844815014456055872252520174446525681864249028067681467569058874566959119715523937122457719406854885241755962785776303141304623890108742786867185743206711965163055518489904265859476783579014973170132451440258955774760762177367040401612035635995706762354579101453361249179808242837994217418037900144703368469055674563924809947475467100226184577297027305403317576035737746867310052085913664234727775820347742504743228579493945364172235416934002460419911585501302961845690564433078710191209772270396066635720654515509928798984540187142467491301905206592636635517090552846532082828725187830485441092030276512684582417265148986226868566182793823539368077255587852864352421260843991252121199119587694513503454388615981102970834185909811897715779370936740505262503518139049577862882609368439431915418475664637227169365668108770499660010495579463989522744114049685255438078485473133610382218266576110251061426282304041281669634425965456910273261716745636366715096049120523255812977866722777297667290573955668129526866032319158137968554101487900544874146277068007243559180056402861798086198497432347697416488178434884862375769014170613469669062697501119681026458219866746998666855165390738331205132753609510523988399292837818539005333131322171808461870339929760970385666529495895822273252510925572256225262726422489344677815089888587314020117413621280498901572281535063923236703869152528325240753785762802485819393948971997257262476532101929656652329947218050275193180102268610072412710921166209071114260765944024709165678520648803360129183794148412406952111935470383601004408863492332496953202127293916243011769095459651695814439327331398147920011834181795709165835761272414867264218148990979707939265001370446034252906214988532699662067338609723461287577314571785454174319942934934613700573854508480934164229851025699921418582182178362341142514717129508893639306580466695804972583584291026327816572616614188646571095794374339122149410752533678717191275308592536811490658203360902278940690189507478912001104023236489745513166702423354916659552334282304328559334429451863996011860759272030542225113011911905245732189733039977744407755557049859601032981891235922206988650581403642141751841022736559628235337277454386750931178292894447443304442923877601509214411281442420074732305594650141649817628208672009335186509381119557924593242379695711004013820755385303397430605758497222110907158419941337132253388528394869896535917350614916264100260069233783911056986901110915637187791638341426408488754031248848045107186921005141919137952673095436399487242512552935337168877382056188932202077251758932707170788500854686800341792102272628783828369105865064876357886352603987918330407944193815459981275199491053506008833600683678618200226661973886833649402825093109131865972018684967521391762558300745605998662946850261862545633945212942842347163522793413411652771036814081800179041227580294155285381957285564695062758153438041734865394531070411899040254432390282185992485510803145185490019436269085698840502771699967329151505266860805211386551758791786608603482148608042716704923004177516190453015903668570992752539942506434599045549172076564362745089622229486595648293925553595232471818626208023615835289781470519188635623298160900587954714168406058115001411038917867750274237540674208061290208904902012807887685553275929186781832956847299537327992223662687088052294099846057349410165697837880396164031371735240467537947800755868646908039891278194755111185227900732669226571851993783978526808976330944247058566037779397432331296860595415894022668306661551691551894436243454196304780254487500430307057093426620589374679834258781036157659684996634224531247275748069524868523474764504227218387940754725495328232156966293052824387364918903584382491594944089868268589484648867993290165118667095021880538413642185660619984197740943005603096239254477915345247056058966862746962694251283818413348845648347560187151814746205873577306253266944879714372180225691698820368456922100019160945482068127571113896059846130889884415116128120206364135364744261629252551676304017489901226949958288598706928447273287719422320924901767629615809397109751887315008282589825880256073054887751064888734517732297731760739578397007617549754413447914516677382231677189271566193246463508969366616639063772680979856840328628995122670213190228990116167582305236823588432658011402735559283074074098611257527243042858683885490133012169657951217545740571036160955698003024786303823663790819105782631145898253597413396850591068915821790933414367052858648574603544567485169902852105474615050144747466607091789625066442850345073604182479109498067158706550269224652906606321258037303709381855463823813297961588098628193946872034127830517960299663267598100686639330639526853348211955891739316127656085612781303642325568426646478514781302088006104797883459676637085737259421765407955261756463201530519678543343522541165979373310874269475522026839305653509628651610913701815924874386257259050437830663903009522105437665942403806913452082371215769105043009525788103246075931237188050855706807694247126371034606862035416094511938546166789576714465023920361432716241644610967396397907623243316314989300785422575759833115725567738946952711794774192451356258453919614733002448375900466075622988802609176628608660538679522451831385893278503117481028729082273266742562823072934364434849565141570774417320109817532450016656669442148158550520686797585416031514197336201180698348670090482690449882000873276945536900001969831531908097768750632758046298913069798487685969522221015401244056036745419642957387992618746080988200443916612441932904856637564983104351392171124212869692173752446030407702951281749813929722907155654182549865365315865767031026300788687560872341354790598775611449901325313223080356438796565918071920626855003739583205741675545766503929953019547717108657409680258381039998991703769873071547285813992531125464240764977376404336838271398925812100331032755921410154983166194305726357549974808861586956426236700901020714130304671028558755578539415488078734478059181161520425823391542039782501769668026077374327947031429134184700206151475185283083559970874881866297680729939438327538589254173987216526606596027127003909058580056493081968210810548664724773176112836100187538585886964880484480816209399630915109868693746297611756006587638184344802421825272286318082630778210054895781823035620210258640477347248589233329058965251550429986543453291622345042590310858513240763544189501345551862554911279786447111465868707909611312801012502848258371449876324544449402455891389577495533508357293616833485265614971957099300794169372052934224993449584783417367991091846863231416960076345198788810132315456598719429645886244095579563274638597653514974133005217593059305480557602242504956911267363045708484860506246744130433519561410180794815584383757077479085915419593043016869142337228646143836529923915259203217971749996082797169284168664042950208956150704908242071292213142749675826049976204919348743107716292800537319893114528208878777113667835063723728031308309828123187744719442610228975598410396993669130096229865865246985267800361365474521450159932054637240102225197970674258261739589114375691666531747036969938135401066651964074867989199386800953809069478632910538970030317959142717966877357194050611871249532175981937753589848998990811963025645372474355196794002469312574161184626019790907310972128845516838831707656799987610027394928260370251891948932895223537751076663126159510783788483096808329163211480166440683394638635674111211956276886989987655014934203476511677027491099213642899547744552913493743793052408617499269284951044036522726372480494325064635672047769609551005967426189253529154154795332332739796730718935019758543075756305896440107100542063496309361842388865410437129809903696230895148691953225104320801984726328419670137219857337110136069675926235222958265850836615020056244667294505462746863778949027363375538603510097608318432092208073041158685591950461230442281323601991443724568448346027532146128601639165474414180738121994505789618591845007772241436700182935193090060750288395023402188672445977885511245746328237071598479316649904887752290063756915502745764554464702709546340966138822298809477984813972755126229938575257119304393208712237439227635727704346993217445163652962734634820308191724323874314723488468443887248237459750837922240977173545998622500938086957566588745711911419568722394925103552747788599856117778747354930516874974964266450213301883563096522435404088742376529139557896783489777848288022768297831661787280740902597503861658296586312448290594618475259055153929202778762549394362065763203058152880675019187032069347218831180195214894005767360410498771407625345212608684228428468656085652260346893970018845742345024365631669484428875781012456942192644819425473258413617991102131346844398581279109564185056530302575556965456762834996275534773244926570900059173782320879856358005006336362111401534804471399701350894853894300053019309831153262177736068910699770814449804130264682577274032571170818631293045907879350159290606970672071718614016921115318989689281576666681923110204386869643381317420729543722564638476829955256115549525166946820415167542709705463202284203963173518394405899631962704119832019165041736117991307760000950895008506425310745504849538438797523888093888192803598089181130695169840996020334346629920499511584239335007759449061073799126925795053960831923437666526865989176184130006056580841162791790347305971056595795352165193656277453642110722107952815294570156098669602739845053834535235051227497409364657230174627918340837165612845458075145418716431046794134352824622472271177717403432043529395927189563959419877901501983131296522124886389835718537470920749507783508531801179811846677130608917236249460858815619122015983579109626097153875950284147296636056258770177189533611437594358146995050101420407882342463614461662787926538817589154261872838765282192260113735505961844330999024334547477320519909123719050068106454491888775841993437631422008340514486317336488069587644371902806275133373519783181266646240207974510876565432582306812424460199713865561939280034440059050054859793752738912799190878103890338824418527250327909200658437572431368534903916523054369630995024287047136087919830287160014738054800626506852759276031119961084898854375277909978883808981607605612578688886700056057517129033286161962933538720695617350120095475177943436782090862907981238605210483350384168313562317913993414101137236407407777791353595614904906819892814462081177496730877707871489108289101489125950269763746655068397275597531542955506300509829611971152750637496940906277372986420326132432106318023030304865568412083695015644138212788435824762557299489134137721310785782986865032442424533139463514724910183922318623384621415775712821699104389681234953758870250847251820829993274832417122518976969483284647042763139694114903249746300485775776949439916706309517291674989117081674798091715646007123665117735329521404991932306463663930327322866337119265343108922459993568353878820272756084951271771856101440431688605051050115726854214081286541096920849384633957352241465917841890256439799839504851560173154411046682189392999192280857411075473766396565707485786632389853333297688063566599419600589015823164999573670608397326725887781539524693733798574328900379883120989491183995240071596546773859973390717125520833064989071546600512482724784452963863959713240330413307433632662298506842004812635567703154568602199946541049495686484788590591606896207657585931530266780258848421766474187388164964811597411029724327445844913188721067479344749206664520833522357216299280230096846943284201162010733613937736024375944114084093216555465829674407902070494016014951290512661317878821645242027917936707770682511158216183962685509299624620390865704298025013471308069732779880587218971398102465921581323592465468733889834892968051478665895869111107316933957287879393361214493120792440064862740124287215915031600226462302025787281043255840763620232932479680422212508400065556392195628729423424620394554783125209648379479018771336890794389998025148632572478771915443373502351654549535531463498339118945203590356857149812690326658235670262998757165024855449258061261820629821147998419519659436419279755704589584927741271881047353990437828472578792301554044324783716527991522942029112580656616024007446784785340503254376257540769317963203237015847176551662195308279485172045003631451170614366213900572451955578415323093615633467000574271934035644980427996570064563638479614759511992082725112142341895576800864169581565498446698242849975942119186700129005208615038691332349371973209463402125083260274573294962130634847038632086827548306009115718827751144812133224724994593651652061246325066130202762290559014615221983641437306010625122415714365308254283304895039509594417942308921847859643365025148111145219076715342188053228272224502773894418467180270076095570495923785019145948815412874866968111957184588070524822511854394007428159315052986417590578897693209100488373541488202814689439827412532198308463948373906046019597834187859283766032511564501565595154796960637324664108173901600438897370759679606667677761779558744687819594847395938634582567241347352781964049279506026855637708517245401167063166458717252447964603930408949152558493039964002171016639444253217135326974075984680490807788703283778033783826531901680384623877507788868505624789809927603637769825926841865410775623011571101000565494663234251663064045620805739838969543755869968101574891842776696627325415674583447148226833589727818294195010185905956072512837526469560947210848466312697788756427929994837387699858669350105857543046572258321181009609590561328570521215463366530005737968928567276521904865606367997128510784233304728853118124439257006160260129614086425853758757083501661495631984998572338105341386284628439079779354829940387388189519099414763849287481332482302000383881568831615844819855545400603508140533729597046339597845248436981812208564015141383093701064047940914777346326341774557730070350325096885247829340635042143353350545357385739232843831687133242648069738134327311402708792018240468094179881151045107193693602098186599268924663505033723174305984969970161715629587577237425103718089075900069770448804870119992605949420373517424093886620812608996387500350650635526270118015847934338384963243119191804130332196556549022839615911302586966714550784278040207555642265449374598101356116349553364925550448083900647109444831142833931211287316576886121315846441598647764920603380400228506040670120628998594237485183640562470616570517655893171171483114449616742849926630645968399347239491518239328065445955827624946892343581553291822957662059327496876471733241303515278578989823592311526216834212189574387539997884043124739220814816544421696864231220876617186044985563465917493279987119095022549542209158317894846017113350437672574848089988484508780884328942978202149619719342416222473658684412356025956545042499173970585357985624411071433667521136296465981267460287262872550303928271597758090380016556824833505838499870014374734870549355653638429866652851770654770547473317293170267276989213767034840421264354125026124569733463560898776558203395957671908075642542615946763147197838690996740416963296963503165363421836672256690967002523570841329230670647255656042859721058439735927232599990399448444388836591259621942648872140237948828045601799592840381604163579770483492046066013308947728004259579074544571482114509492812110793791298749017352208025365839226113335068913398639299240997726509816832660429522787921065341593987493627331031164127872330912726939868285654676442635643248097828444522508475327432077541143200175668813430865373394557045680169469526808965686668053274036742664375421255714095488192216969067302572997309639259269305078590348805393273860562442265901577698382829627442094066108802345271574348890417281450424274892018223447153326820675251211248521921137284293055591984829475202607747950244624384651814187466015222874689331610876672780102421650387015612819625059617643143455227958095483200194810467518587413121170138339711962436582191370766015912583144708993735275897106923597244807617578628856346856053676919210188612647900564883937316157479144711901772169964089620393947427112604726346080000753667830487151643811392792501123583799446733023142809786679126834551335415666220343618165165668218667869804016445874616566482797147932497328707524311557398721096081798363934510576472461885778949200062134736662313748133148044067509989217220762680218825987387405949405677196597086452869042151667865167251166775752863734410669673624678831422250109756249860682194959174685087657730035864114181555555335908867596390244799990680616846964366697478206130225736204313956570412271423493751309613411905274478061647401347542482656375554631111674342323764797226439969901076466272607809203595429253965207041324177491027364152468215261237027878515116009218311204073743648342102490070947995250274913263114165877897099286033800413881431256569545733795095608974980787289280592950963836239987452815377745470260029912327111080807238582210535700866016141374238140415831575723425974569600495727441197857599501486312747799690985728950440292550241351922823851569445847048782792038014170940643320568995457362163586201211557636955583485067184807008531261681667311748415213185291731839367308291123710103829958169313600023113414294032104009864164406446491510352465391882395439677653445325252351703412570565538588005948781247297363115369330718895560015816373083667556485016097992034101440367690311305795568214895690329738652760173978002383622954079181592167802229420153669668462005813901756396761380626392094561534111474535500548930784067212213611954465834109679034478980587312907213495502536018314628133645516811854218452017431966784999973867187991841477957851653019039274343873524723732547279126905271885504002697598129589388802963527560702159119100433847354959134458532352285689260891021590431377891794122984898061051502922048639933174923284675605480036418376158134122536144214642332025376130422838898824368716674757633888863139137221447187247398124136918004116102941363300659634740363094871408670243121364450769532489855319982375314388823893467799395463532632414620575665085170232669196040637360305683582949231479118584335740643565674849074342274225365120962210602143027968792710630794560580335947743111121560104139850297358960744351035465814923575577952276136562828320044180879470201128376095891107187414493585616571429017709913131788554348690521579808503957446001076517688924898297884822530476607336244643283631368302038104358458235464998273816908059443839097731547512739228356478744931787301291744034506911048820621410165398695686216625108356748770031058272109439151544612922383333029657217507892963150204856238760641326738606616933935262604605488648688365636532196776598652684506677137360624375993572260758459380636276209705111291248576111912849638984536515419926898012570080881339274888788390221264030559400600212606510362922826368534905463669294873447912052199937840046693205308576610259195273236272821669006300172561108351052180647591587648866182960311341787182687393716208199928793850027162417433665208234890370989547517519767724349746680553121139201257371314821595639961932227606791556318852896103454070893069933819343738427941484518773277201892006919264693054830112844145409483165971683183807479472362696137038038343789655478315146902005939294411098616237405105002354426051331049307477268020588638276323750615151409994930205603573744576904998661621047692081522600566199322314239046285728499706446255447528800420207683362892335580365354323617001583360589695358372565517174345200135107437707880345479145610521140631807194584743192185313435283765864948172198703578397293222925007901043749261188978007223472024693965248119263938936637276108065794246993069124212590383162673184202024956273643091739839958008290817848843955854943672784101002081209518838323829597531451556143760221763698940288541292075455667514013046630242307768831539160899143038892099820809371079538199339230618099308367926124380087043732403621386213732307089462524592218600408886933904323642989239581930097138195676186615119641861139044596997700984101095710015399300767203974179518107833367084645747312591139905063774195168118939214986146176095570550517259474919689016090874512564200286705295335662957985477414297258927733174842776579778743535352452805564569084004274991417389014157464822945954546883059436669267555153463057191931155231362283121644627213429490549553148738578758622802254660378160529931897953527266608539014039174685916558676609716631219252274536524984674927211030535075753476738371562411162712325198007850111854369923262499915485120470079399293237210376622862895435705805575079508307116348791183286642045036073233572926522982495407138557756152774870359339420583142499417166567350042370595717021847077634321023160383208562522633189011470121864077040836637310207730514584689651021765397271334119866059311074812890246273125100045399665442046476743698477303701741222505382547495931263600296992039126869110443599109070022073922642672726114255338150567537864121362349512559570384831457560910197620872983170594036659173917924855755753298680220155833607358735550717721132639318968772043783295985007844672380686357556700296636845273026670189188694635717931882780129839712141575959479751150467008595389210965772386583171980951740389966319480680350412879691819174500214620342489811068339906707750491155520024316191978133427165324492612648791358398019465563149239305770687266685038635598971612171401859129456980700302690607192609605379899836412434667613351472811682067143255062332032530911822500822006768340262840538356289342872323619594877071336291669087102406142488645974896569118246607135752726846356173236911288333425382417744503705180844501948288900742473073440087352502581991967364463528006004830288504518873519597146226844262521604498452405213024767273022307714985789816588257467925073382783955642841375355758112423010603313884971704737221675032501022972594535331274676265157372948682375389798306653953411589996950905139484583190675839583612343845861090838549828382462475472729419705023347339352715040002770339982977522432979974424335716818469927200892072144708406620554243743597807980743214331855732766496913820890405689342114172846141623556446918123158379794183275176395111638058071929695987838566898156317547067679903450195671248958937631392610140313303207925520717098390785065266256736475853055552727065727375549062859214821912403358279581043680170847338085668416464170061693995416171951602141762677857764686460131340824236904398235906900264805335725542551674030620101642898098405404021049747791607446973151720143450714315301243766808486839220918761219831395503899349092539559593933911345751855339068219617017734071290054073672064209259583471085282046485128860869047945688442823419029571350498156450239940473368180243080979766391205524958457196019271069785973314180391956610552739804093588326059450115715354918332773160644092804195213534336044944681515782097492196582123514932298023992465190634425803777871543404371275593652497807436321709754797747255345953929174512830178746569336047321544049955392674331067297360914411909071811034915712747105773998763129211000229337352419187698638216677569486533343235366909490224750817438394230484114352254632854785930925041172459210305221973142150952336724304185830858061053461000555677437882334681489893180022389871996728746193116306343466820674765636085186811291350307421966345253262629945497021083579498780582986095465046160479116137599096712461342222668872315091315601605782619192794950506624131522347003041263831248146916689245526921424868254829930044955600372712736022812563509428714699279114874622441743972172319801462132335319057749405980715257587925056967770835794092637734793747712878344161388391908015687556363573708564122601454905523679541097710461159324367319279482162482425858472083174867414255299948273682665227247034228849582825005332136108474360124435018577513817543370641348728906586139943298350892419373018726103135074928344688615671315477221105990945906240686941802116832661210674699018793957745181959140828579407881002041577416249312689744845973783620013278074910526358753515510643857665909136752353343007585198528231942132257544249789438849959573784909241457845198578928737307414329917294189948476209133314142996355136596235127965646305665292384067623147073743520192238533248583846181471391331940751119526608040686706164937023922117610631216987869195198639227182325792948852939080061750222496762603687121175111876283081523082657796697015133484809979223557052544679150401623580561813746807423331410089419553055626878213611277373652873184850214336187847100269591679424941308381346470205224650307326036329062695596986706903138396341409055554044260128762594872722856346517475746741201013261114558338216275899640485192768717048729165215404404866565216147358538774020138425493972021572949927141522559183200478833816345239434530289781273740618949512130468213402133845642602078401190893794977477297661324181863797677141495753739923744098257426720736307153742731447934019215226221565729356341246496585021517499711140781231081375965310712001698723494407989639531786303318096136504673148228395922804595121659917978638251459464635898318998086041138627533491876322780958203137610519835545096580608563821686275029760021050118272781622614056607579191154421219757327798004911553982247420059161528136943836169914797546813471958382291213439856137843730304074348008105706218424072262391200074429423589989800202408160044269834070488953860868548702558329456599354598650108442476944785699032328413883595361677557142485205791176688044156179435210570701386806812200628634680524873352519188564658396572740957834920786473157234620228165900178600453086168927500856782002169526873317016274227260222411658522388805684314987000523833468661332530885930524123279543130497487190372394142597154325471567538855078098011793590002608073375854165179954749063697210997926483640535424890789854306369777142683499865933331622829006066783465183947101449667001306094940690926416255864289618838790503739779922249340817976616311910478521016321143464252785882121560300509714412672686992971250284454362744014055187094361583924731521744115442615710793386971980302552796992336084208867659115118185283910452294451336607162443421486988860737025394658180408736429165760034212608388938644000994714764667214814619646177501390385087071139570357075514873566155985924723561685101021596108249108826351829249698985869990634717615201179067113394629305615713955600897708087647263552638104989233947319051788834585866225624440406163562971968983072414445506291419298267789936658770206072539595304436266646575569945762132327183551495527018786291133362587999005954725852132548555966961027062962201418695154923926038044784367208905088633833745487247438743062374095275944638118665184668185970093650790094722888840837672736969321321987674660461731970978444973736830030617327903959974915842876390980545387472687999231213298030461774374241518017637818639801764610134152915283194457177360087202263507490007404843177819101193598734207452123555258624521521360099334806137571721130390865272389231456299450154566370463214677497356503988155237428259225700215189296983532491501516706992851322237596565974323134878642263247184656915979961545301085147441923667280768639359866646269637415851488489429031380449796412755920339784733431932239313280019541054793397907714042022261643081513543400293539872649458574249750143370682996033282513421316557750697736222451929660124720122339160979933447178021997646351365403898056808639582477179475863984444149700314618508080864926220794410733482842309011548533297128445543308236791234077456999658400718881022555828911500191559301522226628630985645163632950159003999616329593439220947089355953198594278238493302759277632111725367270766198727929564620406202655172928122663839016218299724423915490684622560397716098210395413794473785491645799566688237414337367552646575702079749911682231585532862530758769801354142827437274649914788643918200999151119666481448134264470686164929882667275908983451668540932583531795825687440659186682551871904016701768773901066907334766090913176746073110892715211870286301617335805074197546707817304525681181383556533250422436487026738436670262713943467013287391250015300459260061488305886302046827800060398198118684632533317340087140764524352079478749748637605134638262269130471692073481730770516798727815527532247513692637400728341621031992967860756874839958231805431551969739348547571014515410413918109317177579941717613108572975301559283338670974948018107110356964809780033727850290734631363926337693869789644276599276606479774548986092710925379700157910001959832552637355927548761752419657431786240782311202074155390930037988845493924444936172554856931780344992199461263213558234168641119158781361041129644703531610081478331528862580191924187029542914126706580383178173745894856723354817266863743751574358263899207260749424270067173675569569462096008066040967227245757072456425178959854896042901068323494624888873036706842367459445039880703296049259524774206067279901873805144769905447039183314412351437447005900338674966451685039032652846698278509402544361352789333739651113250538618555195752905063458543224309775193508958531779047113364871134396529211794627629555158102119428337255408777699295775103860234095868986726602065699207562380442661693985287103263630942995258155172395784448107520344725139528304107509535444818905176001254897008975990852128386476708222395861875117946956889198152255147250596832922152555401121632015548256173722151604254552865618214208768320966639877452086956709947058527443089866495666546656163426465660348746154151715123452723536932312633375338817629377119097045992642312628137078050017851240296120424042174616374457235205447626084539489431268487932365304877112898876010919386730131773597338850242819006120010803396776194192096525860970906153832139037502622351342056782913756870827289181953984799467971457189031896724458672946767317513214245899788294665478623405422901020007341401391042869174618481250295168981223644113852818587698093133298172867962816215521749773583447555873963338886679868858430214521017950413491907189570372205328078929269847976712740702522858358582377323276072872069360826449692600122441938121936507256879613637383069351549719046941812360840420159122454809846706482126188985067388156531900080561694495152754885106572316389255154084260101548560610712621907825362132090182041930472914219901352371072925523653156388829673499976247294187625317460325170425467591483285583771740465997766794872139480774796716247826115672195686039244184995604109217448227450417082404775950237592337475752042806043372075986992502780192900842194183614152361970197363554077023481102602744862890144838309788684644316576529095492180672130323225261188109183125171305139377812810353887249076139276218071659752912372667086289385913075223433203338561480510598691379089160448177139891118413143982561737429222210811573912952694834808110720142778716904095427664589077293346431404037827701826533808986328827944337205772537168801093837745786767884793913382018933561955242227463779205292026976970479720384490496253978558402899761004323969940290837870035412670471758915109570664663982062322696264696405267574691780923467160902280267105102466595486213128596595382023786624396123482507671490110387974524157442854543439780948991110236311155716448545439159443146137574116748145910911948482148444390880301696868079715876632495488987199160000395884978097248052325660017476561480503398443420122197254490479576845236437636998142543393386009602149468650950210688882476254646582074628208608577960112614174686052120247038502920584384503629845089831525741624706512131703076500981145296275308325069843178303799911970006201206661498172964433625431170460325855419248971632532069752133104482819487722553919508573001943168118082619961312399649417788607957864960179292802214043912861280926532467147719378716533602964829429431138829539689251328489735978065878889020130570560826991568218946241380244882731289706327908829758744966928526962732587124935639078488448503596783176741098411379900017525676241589612456700022060842525054648757882855347150801656250090666288236701188480095995707634057065355829593862657682196242734462713704214396398253422057746385524167140345067355151524702495731783981866653422916116783980315191601379593603803028458639132438782021842366967822075257204029985900428754433590177145918512133484964938315255126095886933493089398861239447978278725278627627619494604443682437937158057103093621524029304845813295612028906219324873500374708838982907054338663211367715133018477790782496649983720287055893169055985506576058308085698912966009228432709067555077429425764776825701471435001520991126831912913259007226546831977255782600228640719119575140354207188711512369599837017956784493660627706329534372603388127994179888081704057199796835416004011994772670377061922712046987188867012777791455674192270435335902319247519242476357527072311712264136645768588581573407424110024969865756734622847948003975319441625565515660858668862393071900114319227692744826541046160424640585933639729394264073494918318431725453232821656613993107644054412775559907833573356964627452819186971997716009656132331028775465411031584388861648280118689868491671064785741463111262200477517817999551507497892292526926560279107514857362098652134342439494077046447779647702563653679792071579862317220487916876514307973245649551181937509826512733888421562144438150306022289679017561437620814739986219979429293058194999756716906403584331991968731810042327173863833012163534840408374379706410094423992732924494190656970456495419761501352386255536892769207361429349911099406375571331981471560908837201281447518622409069080560230976768952561578168713855484171326469793960171229483281307079152727848729547270658280222912253982698039469337973813487468329395960783456815998845166060937957351348250710382441942711719155405854450930206375610314793503300159534281156822801591695537998574164407755203101486197128419349872080481875991781868771249369246093539643608710849652141423789965597056298972214613686478997390253814922038981686049247123928288598705044524618311003066069494201715119638705300841099174627626574126651121894574549642860650457704554067130206616194185467262123985862160728876512986539116745365801738379681033684288337678984174173734742607905394254584680105970145470164710677740304520455218428733740490493441738264311514358639042006673435238743226875590230904760413491364397218141277876623756867698539149224874466430218795332031663603480083197870024918590466576818584271346307321823339721254135562584237384157715425043858022281852047146780474561187457763293171282401760047282112440839637710792821873266717421563679972486472409747782928626148902172012897730975632519761107919760688888292779277882034736824000228831110910307480452092243138518195200590934214493066025037787584620698190098438925080539146102707140512000928332352012126382930104471360686483467486888081966677583517073358188803829715201141163873342627529947974426384236045952206081712032835440774217220387972973544582752608315601513374619327769602860814984931908457780821792656586251208794030052921078106221624170460316064677695556256375220251278657880964773050992600316017523625919264013476880879250608773743293841411931645579419858490084728662761378895975315640757438309984788785007526649179257447990246882630975453110628233016665825460336430535813291908440659117975427578606741471432909006606659552445681135101526435655108553572706159686929252282706674469803231337296809841591311390098261486347609582221080584864714605885184451382972572717345583909068179544926294082188964365573081665514379172134662686503162655993769927047949665699106345361236561185171881288588356269545112206254115340169490861854136449981190154804899060270973888771800536386863483849521869831076627119108673583809723526371894692854134873858115345768432486889388166740766682646020301354681752233465906092292638226010682865586329977631079223520280228850910471196854359711381755393845123362788238183774835997041365849739163019071751182998277488015795091034547131790419092342230082220004067309557771673650671197779326714193039067322256333214893619572351317564028554633941765455546718348125271281119135743968087758003056131036540735472037077691106279261537516347840181165941787133801448917734162455934532484661336699871680333333059096062600843344267637957437323329291378336901097911619622657909023377086667583976768547815228369695875085323758775465605072205862759538660563856444702908986055089326766516934972167069634824445124080235152122051969644041289011580856408684611790263375684354923622308745867188273795003312140155901323976253410154140136003075056530696725722490163588420672216593333907386604976428529502664708787491556860412329192737808930631571006386108687354892514823154242402935971961140145249711221429715885246990783835067168210619079684444344634248687207071472405878886442489156798482704908544639674414131347810985375092719643035719674605583831102295468170139294034903321923667154491397215839098419311529976396315680339266221948311010408510252818277101559295304048296201736653712552489999908747291460932998051130448430936557720796482283973374159596123076952074782856305230304711764572337705622719474407589146045844720994673554216590064836987814012852711196310216821972255032346170182410876723503937685368490457412700172922185350509222255515265325102217613468623431174997755533066607653359981523694254311672736588108628420392058431038512238902207044687354124539048119418868035329412096387307282643175836675478162313680228270258929741480329906907559203510172943133019889990780648330166233656127501077502252319433534842362763018349709047787508719951526382035718903805483985878621050884206889294219439711657280803518076294408081543321060669276436861349583932775415208906280512134440492736999770609166708506382611830938637003350803753841252848149959062259976990106700072380251528158517506569718970230935762095988438802736498916057161783098848468997501297519754065078981312109224862869915905831211296562253894060446791482670884667863580084018284717144470635525239707588974393682584259081217381051366539067189076931326748108653892869667247750258266209433911093694542843639847866729142144779698728712202460058404946636706161555019655755882302888415813729752489482348265390934869552875924541537569339725131907056389051841946454313488839523657837554850506998708418680377218209452289787769728045776628715093319926207085285364095082186516626939017467085932384698260727822597767121383560833459635608381919913601949235777468640206605503863104604040623754986006067957480174527792560542980576263226846064782423685015801915618840149395235631311002731300410559302446351898853130355749893905683540453761262230295560227886240235643416383087484345523270074146735137011615302069785751819566920938349469933144751930026632786578462955725117354717739150590223008092611305364694786648139953002072576514825798266577773904371388428881045419167265212591506469304356989789065943407555266622223027962413349769586494178836615782601735287429241360417408130543697249247071703132651283121364034653836896369153900272116307082737873257736842908587626524739407648880843458785474750647397888318146499168813383425669441517958589280185838636656713043173091683965495678372817785840393253357216502610535611467453219846164218413751783092146646316154735637479921078032281704750081352451993648340340638476136063717701116239620420464371131820964274286744979929494943108465556875370612454477861434715389672474200429922316065075926937765622235599394715688914103279700028087282962643059653349393947296853274011604774320763204517902074006403924561782153214543777987585280236744297496258963538328678814675669312832185877178830845897207305778319427883654335876051003314381123917623061238367448447947419860884991479230756335625180424394617018213504293403418245122469504949727004439697721883261278997737281995859284222216768819159414446268882690050237715035086974694047162546991012213178791671384870989830142581657527653817523616603596483568595842865713826865949834445908672909904894955853331878967616430887931389521829098562164002194608891125924039091305478314813216119709819118724951551744325244017318830018372853200899353839160779912069723658864699922953222143225077694318404160334244155089248172242053100187959019789717036830177445708716800558569649407545586996265579973808473995490777802405837601772999908174045745796725816039840932832008371179627230391966993593932939629652430809238249513062189320248451234800552638449620549645897353368773227681336224038042089356333322285391275037030943273291620261015107005241367118426715368337310746165177051700863973268673072931186511006559079615484843482204911454132659032808182380266595636618065909778602767098343879965753813280196402362107816388426662430570875852608150027565115366499436052135288473537745727949914350738167630840777225122233624071950556524163449557930741400520906530327361340684574914079752984212724916913994568427500265682646715967183745106796957576597328117778236280869213417974315461192785224349510847068012417069824690851373740163713038339551179349264992835079832582354305730086191020804525736181188431434228952593295688532710401272019791504702857249019168605255155504424069849456436335051667552184503028067790955868958363174201333697315328615302458300191939220810456431300142299071709716407729202630926704366878868264316405318192313456327699281671263382664301776432652174925561109201291599295530393973881917898630126794221953079510173280865666196150447258108676978493294466518731874610593484325032234946466865761969072271670412316817819822162080195379912772329671046563413812828218894061002994290596146805897077684326064655082433478438860036574821022721957749207162791570665576176768265768847975051421202749750551023153449752603011236903144243859229633018943983030575780618799595124523135470402219185585011403541546925235391029871620890602293487450019437127374191736276306425098042309238131927376535336286196416436203869455344695784163533688414521610158488528132386563571782370668934545128192663551848678741898342584759185512855251682911942841481704774443815143643499591540771767064525768003532040005596923416853234622486392737199282562567555353131117769743864079697597522795559600421466200148665256708885384870886747770614968846583013679575497958545217019923339792279051879311632339038830188606620555781564632497284531417951927718579466989382881105544590933901952674375358624651193176812277029006308158287467285779703740448363024053581605501927310326219576066160636791808171478648668742295004555323522941262441049427093548754562101824797231591129774085859288357180892707158457194660872115408474265268069707196462049582201045466934648346464792471247561191474474728745304174713931530541986924713723702313747302620407324752922099279020837701570536291307780128460059365210275278673236822775605036602935488611969639564018033498377991839704970149290087811440550621382904413337245641418297358510137024114807681905253751829942890589565702590549525029985421354908425021187055497558914128937464550257829409154395153762300693470472592787317681715823589413845538940162947224664347040464614200658661528269136774646660547351089261829440934318598269601792965955172320596956120851352456591998968051972179741094257388571535884243856582302807943754442748389667789297764699322483058984473529767951841107069237886699609445097880035681838556649393632498830576967574480721525367480082695212773818529064483223980559493792941403326129865154454243855255576629890268585357374577211919073914861963716970490556233286418204725510461380133297985482692896662159001779684904170853680820045998022792854687022418793922735690035893178546479386294500878230523086226219629364433171283428896094816927498375781809103308931644401674804426535261986050323646131407884158606586414345969385415539494195840074540787328086985930827371781823072263699455660094712734473152175266758947844871676101205864867807570124123727672227456666821157268815163462003710024157826975203393419110035451508759234128749187897657877323396509937229561022482760282106744258531709808779497738854340155782483855241469950037859765814452932845534467262036146880126587149066457086189008844029425214428215421259309655589396376096737738150061714137071554560685159651512242006711887469574265883210975054863978640797074416606222221134315974876700895419016879309628266628317542317290875315147542655366435363720999122451338819121259155780854611634836739411880214683576391622926446440143671768527713981655989587396539462059660332134092137643609691496619222247211349400241269085134675042777050592211004175344561308857472385100571584441031290328484898168061954582045319512166984621573431007936402874500560630755283544487666071092023747907773682047930511703201798899425319525933223166428087490272190707676594766289482926397530757628636161391009273002628571498592520361128210493027472280726682869207351114780862656663076982881863879373913610062273655949088909794601354060336510824855588068143184972731918697931478066044322572409712663331366103041220008562614536420333030942449691688747557948031876826314056897431195980151570652812498404961098998069341881577656230948865664311681533804330865451071143849201449218218396234337214887220693786149112395766942465175874750011769486085573229402311688848527731647430537473727526665930020489697053357609778829383222973260244770129905171768798588286230991173383685522900092072325385080559597164232466189481285215394344628840142494460710417718901112558683652024446215044361329795179379283510779492142075159544255242803410528756120256525217038053174217854018675160581237023815849505457065632549603564671957002511589074977857584408680973281507130778946915674487847700850847333894456226904848623157818527231160047879299846474992050913840205541962125572091575086521439473475302220214450719924467390298019513876491705219616901587507820060561552162824102150277034255523822516316461697348551700666113448543619374482267298902809875065360360079303871388312207181728594856808035896973004075014495441010748770769819630991193632016645961252584617352711041658842224573705115009199106077399790725370666319764578330738311107151626537283760514059632254730481962889324982180055920574836902252343544962227019903112291623077786442831803587973090960105304674854355710171150060306378406011379445668952446876277828127154442395774804892147522506810832001612373944525032045733422566456176331888426003848971776763537143224637965001515455434290282435083234823693925170550094424157985866869178249641962180423296871932095913542160173185299218893457535336171063261476589173737982243008516701037531390429542592329604264739276793334274954554088069349712400512866326224481503949281256682466719756204510396952446922823983043739040517053288709441535454416466653446375563825760094523085639531497845564347565208468282402882091059708295619334803057412595428891808677223432647961358249839300142053388579385717288406507730246901272696512538444764236973171125247260507502628790701154860800328130198197322442029185831446266424523734185761821804625152131363564600340783143296859664999490950634312484420155200406103239428017044460139109761096840523985319788415566650474232091185064974156900472074173198943474063900672738672780299724624524264471940185916438624068565487574621414180183730962612698661143197573661659955014454472947164006809510888959384661393868371637680153645653537715560810107213640552680208279400491265558174828136487281247340663663192636035547116620074738346748709960995267726970255777878741440922112164016766151058063433126592786635266295518351676250295257783441611461303279785279561932974921557043705183279007757901788320496086367516218371815095586046118497122881319554384884250742726932813163468567569426870218699263176100227076652533879822959007995146784537925428855261523075792555715784086095618543557317708233684288988923719275405462014397246959520274546512165088789290016047548548143594049842006077374221650066224524118855817199576773794851800447116769897118001913176317525824482141212625142957399041407772924494165272460402120523249396167793627594064250994544502663785168003488281121988275313147950297294913937098738820302779949088685244197441990737733498669088917497318476858865603819193759533658185103989226975949385271584790766237296283177453396396467878475547712532921333732013855727089988984102819378103885164599416502920748344051835999887916942241858750060420679763480399859123879781439419607336919125194872567642448823695998419551776025343884278755816402389154366282444258443463072885200573366409897894414800796086021506830172840920489843111837376399972699177617286423206889748945447862077836123616397120721699250524455179564378940588759653776550249303692025855095956545785985227566847470485533137705455960198567668353798111397546164214971700556072889406565405341012914451371935667121064963050345707639622493900302212707007218302299854565597599110440631539985412586280664925622424099074689619163930220820827386690348679655004114909550513761471446729670272360238608954673102260003082782055929823361326022127945190293080116955758817841694138801670088811563839370314726349431196562661664441213439288412780603539456193616526961658818737317764596595216722760611377032290319199958621511275893932376260332064672748421713830790125306096624509453898791616038693912878289425746116198249449396626334263499832931917499028333382001435184313757808401776425587370737011898025845273884928750987866788963862945339602053429281011964847735054057211179895032056137265724876653228412143777179610334385382779362733533027905187824671312274912658196679818517365608420803143137068193724490926131827952562814092233679704505069213175676286744660242192890926709810003225664493145494185288801663695510014310629640359815271459215860433469034998146783292204848182671815849802889290685258504232823131279794673257884003038088100689933100016775774929137780533283565310556745070972585082902877273368298975821645358615795768649858137715728728127472530088763971537516281336348807016743900699790761330243741141311392886867209603428059063624679812656377267415656858472719704893138390354265417412337299268692030189628686143406236966781247709885710957962234913642847891919405886637173415415890655615511996112093345604669538477821890376750932834319072875123118906420898030452585602446196757241556812960926294608200432578059487103867208158629741228120689715078713693758011303027794484831950384590554516446745460528281311757170319886155866340202352695329706650592352771349797240660711557747465692080369209874423648261248655807314538604319878380644542775592165084424387477398949997246508384319633427356655941600773891003831630933730308312739980330497800950066743491410994970642972038457070161696770534343025375023310083130229053597656617870375664709204291802584994411866501570893497651978830077829222335866293180541543628845314226776913230204868981394851316549415842576552447287153579085259722374887166401588567537422696136493591781311451240401637813527814621323208072632317761170927137126104168217506655662261511919732858795088423774050191750385883163835283338753607172991776571549339413765152534398781472360954388432214584994189116201855398222655789476528020418683149997321781832278198790351941045629912066073062763723379382680610816629922922732339028634328288701093205679537855963285399536636447860843596756160630192507714716715630626916269437945588935927937709254133122694963449473074284565833652859335747863231266261863612933908771503875865137406319852884641390981792398580265103251763561660215300810441817423025437214245987351407122259650678062031860695650000790419256550432602618323442651769495843900479614829661498114050717014602630911085013614225996254903737064814669161230702642616496036913241107214344849743137271304885395932788470401274222393472557902415693301897811185671053706676331626672220310296554280418950639025194417750491085392487640976491649958432864316371032996798139212430201074837141900947347830560262761089954952713440470257454496873213884414832374248120863558640496192061036351921070267930041571263857033378310639407530603412270139800751409406354994548026660535744637117243244946165000776657011700435335671690487686550609440292964536332923870377421250553473293521435129072321700571064745738586322286840989530011824069299684749944611304333238436711686439929161042495249683980646843231289998925013075126600205778017207411934841648806366342029245170610170335554865344255440437488630660583209461130217197162153462866247226158278188833679407918955739121560794624090028000336529461589935795856655888992423249850877349318461546290166752859182638182889882822155571012947726016283044346114525828206954002235534749385794973141805991531797429103945632396255287397638667798545748885304293191823881327399416130440094545997308690064247058694042901449492393352090359102960997889429409896058330800078620276617861622073824268195388714850230628647404218471717878879828656155836788776487537038200979398348314459924701062413967302266601899203260523450539621731291240508624779294501455275958898527476528847237770543721472765287448389653777500701654500545765619653323505389484715089776603762154648188335688090318891455454875494665234222080456354255786559073932998548636010164671416831321471827719736271995362044671775152488068797646469312697746528727484154920209902929904739223472135469068431389350908527220905903146105763195403262960048650175850922144885668279128326217401659323919157939621097295634063293968947114605519951323278390008076610569698502618515101621893600624419617475566263907105596536026828260872918571107994104462835008902760008197715163399664906165456174451445943131813955447038342172654511449353993477797038794236683819440602969000893076096424314810547053566857691150275441593928710114936682467401615970523232578881085271082452051587917666424391686017196430799937014289181389661633487281990334440106555697615190671756422750448382167551234946742945190309470067589793165964962303436492725153693604947563262895145975742516500961403901383775822812675744301785347116490732989018436658749933446886003371184230293920797816128605298815584692212855121506984570948478071266148088292752119552034647536329338161487846186622790098474533240380852094979767964137405496524765724275585376857295023629187351120672833374951348479524783670440029543163180205290091144155906393095864686735223419428848613295406049125339682103762254561076136504522598394808986485659057720511455471616416304305522662384131009215498970708345070444049205691461350872054238419483624116139805011929280293265711858745396793443977074212635988420604110847049807325482391005160258481347642400535986105283502221106555716511921883294285495410503927557281455121372215006339572247603845498260570670194512780240844554554601483458494915928332848640733841982514801221578843332479330851667284636215907020954228891230385201765891489645025444072612403445623726676885201773181995373614802621932462035190237122578561642532470415537478950995664916670867252216850673496896782469161675461310695740779645713855438799223923641591392929603900392750507018425078028036503100132377648730453009717975836522126721087944684999698069446632904911278106949967366806422512515160018423101078072475518799349606844620022647043445777417470837600211837882714997205428319278014131211806319984018031448490329482684419353434166788871573883837583542119755802807533757297493380815867407769970298648289321832280010041937460208853946144207748222350081506682867067641536204703264215413903612199373924294491899484349480597814604068658199636734949524683007427400617953453973364584778647357914397954066014975679798208060333170864164448486632951484774594881545584521517588160246032209220971316503635889165246038990333283476870727770907453612764295932931853632331606911055466745684174453341678557419697534766720279223716514443084415099811678241718463488757795823985326700373081806389405518341927061178677455679816407059988783253015763587911489911215289929681059878335451005837664283220233922350146658770710990714468277371921904412681204850469922706495554229525119624314856339572132310091989276938518552918228329703249881413908402377105408889392249092652219928647422129197820632225837074287575375121896669046934556249152785611619045501096205488664608570151332298528629588163601032415340556151867901075152257398355262987782422119357765191926079482422828487848232857251670562786835868045407250755693101613359933714294897870330021665504609029134660255302659427839640815565717912900187729416401410447747913979140498515593480052297687266611909264256076279655508976613041172683652770231123086803297741865604464361174566785443464191180699391194101486346771209392500154848309601776750127208447595701108679901398789014974759513316983146575063691013989955276201870279993102747828017746758128047120859135126132955660666162884822833242609831373903607072017150962466972387242161875191190258513504020324866843583277599350227846011121804497376284868920701829319908969247486769150590814699890174689553951078472178034598688360426419803722590110827465763844097277818945141234584532806317018733999579916433032671353123339851770696321870831955748765213617492641994884050410174228109256835114618042671620851497456884195217483560610398326140239460218074818929110193974321109465620999983812105690382458076173730895777329985197209101462160723292989292457405690833086220222122973898955948208955683797274420588459001547169730072152252069671640844155056169573598685078013345532773541528534072309419617478473316627591158572383490028604077619493849472790584305233584329034210428817514641699913644271032960718996248284570083274426585157468500031358864209247814210370082826380798382744957589508503015630445413512272841068381826277616900000072778104581664765480121749857993945556611612409775241670653487056663231260662795907855396704248003317419439228997383664755462419698202908535172948091899997140968720671880433383255082003582264432016216308247304799112233061388640299538065775765589164058971856264026539338583332567363300957317662101456875529375035309950911691079011773468069957155639447744138377707610010582425685005780055225464653648462144642464380249665548911085591280413237565765788936346021375022706199604023255972353391203847864504033289758545578129675252975924104152555389657438902785809350080087511336994390385617412864532549414775548233517880452547685767298617893094847363374042957535028744986222424969010186054192521201159705717380598161941639715702717566057940752348553542760304002117025515567350263938537833697623144690744137255037034409617458114537271700190803475284686685863406807636290320149193927824629807606845694700332704864659258876139909404774154933686299868051486376574460856086334226578525648467453359383175803232978650872382009310555537305404221626018316051256038282193304611591623006217471279522446658123654394512846242965327453876686980739508330416985835513951430183913217020465512907273420568573312289562781344212067476495178822464631201297485214126382579636308747932532071456118789415789333973087166367403066369019929014610200577798029022666680398371066413298251237675677170428614165204110097231799947429659556229191915275451447178568124684586196051896220308008888701516344130943578470412530808138827563297502891522564317532981362714086935761339504706769462416868985586738799235220770304356253565523059695678116733582728964551913590642019570589927886360111864918414472659658561156061699502836190691115998781904928627994654854869838250022224697498526954199315235920381307100749680065400543382393149681980244092078579556511066090931658669306629335881219501110613576506401863691814403080243669157091484475153093537673702129786896278603747118230728491532712353047454971469803151196904346429752608257285765275141921922548686802033638600918761717036047245321318068700064511250249505509044997133540423403605899063662929461078716082310825252793102096653015614829980697140446098029656611258657081785275203119009169251547906535775407758810865047265137174463529246505838499098393954251017053312883511827758476716038273624860179518845250317676871410233135521887153408204606770436917740363782996368197646172891298579617838557778926404176999118610804938214691746315242347992638323221339334982374048781329809257469093122426095517744416200094703609073262038124845666640236351825706733816293200263002497095000816060240564943748024398384510993020134055056062439399646211062579118306331925708669361260054678594854435034143435717549161889050961346826252871041652436308795535815907496904582441186201452525379235432145067850608592646314369825307223739438059762363000810726029152173385573508662268794360891746253434651217345182099691939864662629440726580558843834971930779251248074903204890193755139947572455370312134292264671482538475232487519680714739272109070807830755718668443588162154730285282911030008443764511057154845495586633405666597302607846461435477398398565741412290213978025467329935580372481720444311384620534209558244707409273083804015581009800132191931796989407399912402996597400326983400173793355231463005999148836378113743012589698896686609105634506314792116644335099988897008428775552852317761204615464930339614213967460992363512740598842551993973064586214977579661880428221393226660802182429261893051839893488430569019846913231489906402071153673391368952915138556067932564021533256899038840992209592118626535135146730568247990719961834132394162490904183358157539538693661932568537352179424761885872021684781345351671161056739170746345112754734104166346340678693282392543240089230867939864348578217059941678060801799780677103374557910627959252351272526845202965639581529753509792005618664628996033919274452060254729294127696067389155683707786545072551310071810599780078721942202056126911537916682640298036961534310594768104000981493149756813860692928985702872294031228274154909222931425769244165178530609478829775968250905474818275410034970243599969810312734306205850730069283137350350503822281041188409115400156235753881259921753186683471286705813988887326402808616173360349330215584946762683208666589813964852013389965368943202442919462582006738590411730327800674976260260839366829003664663231235190130030348965218203840066018500379442957192090487174089770594119023979898176069250144121161897044760282191686921237194584973511731875455828276210024995730978656092485831924501430082013674255875691251118929337520372435855218090932902904855698750372498132632334398512461511062729813616482898752829886384571808748943580082718581823734986433713266487936468567084723039726672956437003845134098425227092847857662047597379018442464667394710898722349106831559788603103565128090339264246177914890930530759308758987517210531672242656352899193330422577655773030819658905504870184684829375223455026691023884551049811226113426720484140383862118984144324389697351722217446969301969008955924307184977810764528360560808187482594804939841342745894328127111073464163994583540294387618591035556548271370479102068959350047638193044093477322920426401921995554003094218970544936985877347569796890952962619406977128316203823924249808574241368220611452308698774468868627367785561276330620713481086687942295349575765176898852659904728924233148326697120665688935810078939443786221975099345895642980141505302323228467738263669358324409912386396229367811144335934637063600635414543374307365326736533048188536278631935593526149648084939840244613224077296495926742568072426663588691477888018171634016566973777148912469480354640637591297920975058469364992152282028626542970001124567536303816269744616003588382511513143855264719277303811683104639662261547299301506874938440661388110618918005019771887145176153513742759574094489567281376123529549420226883088318452594807978534796104998107445874918666322305801855027706590375877910166452248458852665081886115798517404627854574105132721725997531586658465183016237615189210098299947023529409805152848494436899952015833085125286155869876991127353981705618627636720058518614884203580631991370869809607243738565006943170761940411074590565748087919445109553463747573324608346411178414658828952011742216173404176851257059093066761941632087625671997819301668773666996829916843342726898168911330563571409971143858477474069860241387060718110753315558623494085725127589802099204098019980970096923667922529730165685019898382572916333829226599153606238343157541296246902260210777068705708510895250933105562280036137669024514156619516650484826731326247846550701849438120030031797625473790764036638939321439738990597247963250212876444358345640480556132414671127867191487881152453459743551786380955413233247683634189618451031390310605688278627870935159886362153946220072459581091236919565371517544698913761547746844750956804945349490619920650570828922118692025077053843603238419788104634050371724162503762705083725305942971587460785706055488839393873401183952207050582081691277729254410664306506437217940098746075235800801195049830246852112266033942382209557509524546085479262562941911977399727290945805697729281959485169540202511189508551035638577131839422521471709487320561502629216869394376931968611598852639157850825340614582702036112454009166531327269139234122026372896700459307468124955797818253764922930974503106868553941416711670928265246734937682000338939873334347620266124781877006526031385065299627271260326983088537195705111123234587637204126968713312910679008819212080404928001435008129562489072054925088297160560795503153579917547505423525383234576533921110720775548567183597465288348134558485924327442067150633843335210166806512125085055538467027380994506236157111418891464348666672748431653085668028489370104651899033006150719406860434648423859276979581130718776951320166612071190591799623788083239376448139101131105109670896727633511031314271327897425994348086260746890240173139043635771521228310327763112196640365739988497317912082443038420908310778978196753976145904626667803427587570968596956622950864687693415295163037820584996133635669294727474193943286791335865533285414239222019003502103955164403354925593993461257275541680956763251844049467249766423563216262004526544028855509688961329442615243726981603820709779130879175313369944930592536015508700783712191642590793536928105823112457577447653493523733787208905412781089014945110925000973599841450972785862272388611150380701280975240831990428763922578739189497930195383502466777056646243605797493496793236841948290355870388592703083332849210918856466253682492173630185400654892435222250989801014365917991558959659949144009382667556325065838947526113131357792515597007051083913015138202597469963568455230453262178104611802009422626121391180416137111423846656500664232735813614387462815133315238551340512376210346785723608302074404405048787012251174846540033581259692441286990157011663291953180994111031078496109793014274831821276246038682950768410650171801345388882920556405285565073350251528412183774742112806751351983619056949204361133943941675053412927570491783786535934123640238686700622958624330145189116339138595013598119836582657301434376817682026981556508827168899534247034158702130692770168465070235358317685870158117567028232359102518365055390841543525311928404777908381285560028423650285510365609004888246101894340308125363137010710846901152535336714941965656188915595758481393934937651726107144035559508277428096406356847937661756027578259908652971856929137832715422131030620514123866593585691787090565784488000734691315021563325943446187173468717481951035835451451684150725533562213364935865303509635903032410612393117626921778306185066850180373544496954032722188716941295155006194611166691423460437212780983067445045097248363563451816773122412499110677801815788923724009285898402386726586815264900050451060364790482341013619903078827322406379113813124359224272541485329918129908248615768178205804534396959551447593698372017789006819148202650083764287857798300409517707655617277390941102204241227473726876547406782521298203484268181324297877624052165068098589707700153093114683720631959434365052702330451271518170424233282563259805374891847469658398427066329576756382664276819197500783204060703696844692783522133748683293359566452240368687796163547120464734469114747138394322712427892612354155872078813208656537760370646640391669643993919023408213221898757556768388133682801325901728897784917586817028434908821460752171843610113093776804557794807035752574878201218703617302743751639314982333523393620076790468816528483591174272860982044322182369186382834147169346964851134443968619816299206707394318756852683555357933564978967803898769866528726062737158029370002136217806272740331504825117585072780248896790425021363570256329344420849609441622814742522001080738490651882657220787047032754232487897928834513083542369002690054032043132606833840543674360254913848485667423910624540297708285224741566976849008554598018779076240439152408221342654351090933799198102439101638877186021922750218872943604138829738244083910265981246895769487079000798651348588802303843848208424517380349334088788757957431381941505457365634380246687063063741875939794624747966397756961551799732106592954093115874967804513346905457153526327030458226969740815936160155200020368966226449376781209923605016316315450439075148430932956446118031819774851652194017319222160372085837184964013588856408356146071447310488349010490491544101677208163203454103336360969810601817229091644710633172645986091182071436795768751915181241808090230180756235471227031843242592397891914574738161806013029316435431066527273228425952400439933211702686674508982338121075084792587332896021951747951947182512191963480601440146444849380714128774878916557335104059750546716607791161127912151219972180755459850790317318394347828146262018573931956171952547979300394279332519367737513193833131870340959545422883464609611995920284738543590131845509693950765715768724280193868654606139585347961107037749311809054545201123999136360947845472561620715476412857390104913985963943256149569155361176245894683905579516718606376486492603851917550920899021302020669425440571868974765673066053463548641318733149825876210027928482315267067593085154933998052536493422858119663432808708582595110994901369038772930136591747311486809953274416215382710190689025985030403078487378460469949084459462740160731674585547260776503541362527961197834404145865998808540827155464533475432296929928942801342928301765882132622239850852418383351753689254542450134914249746020506814155168259082808282796055627090985928982389962730332639664905659077564010855713804041349398439925221937981627496304147422907423630665533005985866785909904003122498532342391301307406351912024222379628296194865849489946817592137151975057052659813155517169290775347138692117189583721703063055072297371436671456421975648058629860032336077974185217110815413803978558762889869679115581013589665711508225408584933112265690791674416337478755113156942502604431489772412467509091500553443428556983724283349298537729221403257772307505171585589864742116376685116138748021040482814545783500558276196547567013172626994356835620265892486823868594129039346504179597627547069630021829957955375690075804489090057178384269920785597409811384763165212172230711797505539364288277067154975547255265844522114030142220682285386077013745249559153164202623027776043546757124579954454319992728391474720124409957137968699794959622420482935089325605195656485822497641952220502699582135135604860663029375557858406220048035166439308930395441224247345656014112427027496950853917772347685041697224527222353970592354333878612027819596636135155882921855380500128163716940306471670613660303924457704343990354370432726143410161353158167638182587142998456234611114299648900512055335976320793670835857898083418135176019239069091603125195782648326824628446751948638021214967750485885888847959336077764726710228595873539753587742292074259976571352684944552283830959435201623580338933418971141779403015488611838384055142047380407673215392995344687921630131801918868749251893095177256041351424441187898454933512786350135379565322220505474117832526217362718427315260778306696439181008548713494076327935910962078387444367962358727990168942853627517183371032952037280042723362714835267175711223123457244456601434874612486797266797395179311896281939235838509803991028879333775814502922251545211748408758476374457749155375825279150180908141067537906874138236249065611107463192780738221526906792943192594331917235074754832771237498316241209864546199412342921274004574757378984384939422235068989404415259303986074382727792119972060213482307072980518888917602678086858647343610114104027805920994046394059465795325799535029823355885912445518164118227218662810268855027253878609117171691846486504310608918199751487039632414576218074122029470127217334826344083801554570956604201408864518637585881456186127461590920961044011457409194363638950501744490058779760889937340209243251851248965265211487864869879490059976101712200582244569642085510306219226376821026320442452415308411383757310725728505017864644209859163248225501109664283232772745509266013620841970080041673687052247111642726047162141340841260213968860132433608978774560212130669202623995963010064264845694716078087858996503401964397440708417314029395247991547462796288307376662064298368541712364658525639214460178808454478329768399439278800448071557392916628849087674208503818486506069984468562575061474273642704973640656346316872470437539269080897149844670543263987108684280802066141417686631519719246748380276277699819170274287195370755146890539649293003337977598255342649679046988015891288775715743982709125706323973501815392560029263206970739269949458853646332961394154946646656389721570544956041840102022179619439303923524961862409274964466566728997164216219106998586894008581201047594004153283034449969669156285241963155070094129925678039227123003798862230132621916924624277215992248962055332268303530794244980070399583920334829190217145831045070097615079568470900685408002346175395546018865831444648032689268367625065775383505148022811566259381896360680970358128518283312990733641507414733468105965111061330825838813698251111054960909307400839702218335152350840451855543608922565458737339862961968987440988386443806436537964246109235324583619432105907245656410290787826292426159952945071696076486551548292858816414571276290848034033336252011590699171733743581185002656703337507586625278250830200521372245882339467654894911469121260315243403709262636349555290910294751977900420254770995369069455288900330132665708112463982204873683471801318808318237640345809115296878995636806413634424847484382488789859705121521262250378938932237540188608461250639323113820949869245115586188723426812363964512729106088050426447840737257741256501665320423606301710400717621316734654859319926448568191304612879930715622539729428293646320358266484287356142637111332757260534068570548271035502015997480033565034038960350254030893137292972238210491781011741765093462219452140942574236313563582283600801421818491401273483383908354007569747612737410017189252137052222141487406809347183066802882495564263238781640967329847171073502572336358791461373634198668064287816713006085492408998510605648290419510312147658817744945883775606872777098084743779840963471241893084745000685896209564433740538084803294300751191621927881309150891083626862975752441742349790552407856260160775380608019714258513465151376313655329133035231928971581039485269008401688573991272462718447442566451749161160950649152445328796326751112743680004144209360376835636492582242449372631576404493965325969872318662814834713145871762015919641020274208463170890764960591706236907101632952062579044835733698022751684766997052378286485027475435205482186218599159113290289403019853851560167181628807653544189079976108464731962898303466453135387182131921640133619742540479682034117388135550768551095736604385354068451411164156406783430652900743877734038574299527427972728345917022396957949702872136756080210328020006248766609701519593574513318534505939621156948736681688815408664614628794133905037111152777935059115331293229910649824077437776420286368075132012964811935480192354617605560795521281598369701363083623111781122781934055120794692095115745864104888445992123247367107546119189937859723942243140821040992622489663966899374974929600360322798791599370710524844887471376523435316059784849312089119160923892199798894795691881675628402292683264992152456913310718605127064730112734365286690855776112162327189215682232625842879974335870286830885767957886167573044340363303626345854262088658424757440277691063332825050029287700251531275703344085246140283719548580749999611439150492898850355065973778460020300475247253201234761903259161548083389246351127580573016981931055099162859996773739943620310884937110903000176027419759652302028024948033222607953572652228562419612425434259225688628585478475917438707728374999322069588251201452092206311756321042984779201852696270104248417020977155471118681508414708884607332813971952159605278518805088135445095445951830261739798818347673594916561448138889596982874323385809770514727376934079564882917473862156635858211812913198065594262464019260919423445323668066116891356137376414523847533944470579766790582760686289189559072578187787723247952590005989091951167917572732385001353277756977703880497222165228219853946096545158099434985731282070112542794486882122796438974496403621779770437559808636434652442785191107557575645280997119635934584025490362670186110600369451779829879066761199552108977743485047250962733204777611913381403103902574430899480749922929047672421345102691015512196206966955819346966240175374921493710423589221708117669680024857728707779509610582191100173242961506063606567699537404117725967868780903193543703834105040016540276431488940597162840455651943526302096567208239699813608825431467757547675714276786469578860703838420614947520016911653146353674914041941171049311502507867192370570426721803678885794456303298514840396581526666264329557459523727344972728008058668226475647712168617943124649097543225878886233298078194537835574899768204823708158206846044947181720056996793155213692667929835044340033233389081352085460858899599843146569981624527921489997792438587990621283262903062806727756820126815715700760747785139595480019416502556671903635087222019856639124135620328752251600125536680995142603158572090439727680207790292151250450579637838612723720532169425970248862073332694114922193924438593517025088210981677457006819329608764495292827292684952250319923343772750452344574254737554605794925490935579162823694505229650255405488920137752650372763537995430755140354803589741428476266689293610386676099523914709046061323194907509141794894009452706902443436042729703810057433507847224669205754269847052943267655657727258833299491154125110927927985998511468919497907148057032637036006956388530894605559338717223023519931017025384109421750965804135407148060970994208202689213251027431299637493629651889541817548804535717090952296794737084337396038075523296348055691964973337958660834654084754322240125210456863800681279719583205617981817031915744627902286213927429731210348958034541943048637306211689590738279731050301443632782369780379903458913802213479478941723231364121957162932730577891252972407849173200554622746820921950385250623293662216244430801237762118994411075601404891838396245592150177302467534012816927343835135950760606425440220521298416897073022320357807904555317234756562898266936415653770502348931350026673331168276098775364384552268632851119984995882766581079455833950904515635804891881739166522774830672525484670392145619452754933911132228903713942352486098830994960730707364680898049620724767827887333656464098152506876683086347860944604306642446721394784436930985819391278853619313550317562993420535652448059511477174092937874141868144754622682133848039884929624788887279140526245484589858378410068404193152834911218286515484098871129532792689879748281159839079410012131443752425396431456046817932796664384293566466886755942812443595377770567631893336858689210963277261622568054483239038619435417637034125179873955532582049888828653011043970897653543280677051602757674238888502818944924959340955752204205276758522615639586522543381501677454818778539813635566153064679569013140585777444705943028596429796551552682166923095341162789710124853454892924968810465070068824926615166158367118814001610846898747465164339693380367935178114678355898120451838657293254824851759852311528978241115146544101241613840378775326222783365094133629505151394972674592392238663156353800234032920483062845984323308181299330250309509889376210260919420251632180448520999025843727602002352645435914776456028108793756984399155088054441136992281592232942395280309884710428175178939917398178876630186464604994980111397513507778448725793334379427444873248349079636103320349229341895950057186398008303164132993133226149325379710819867098192374101049138987531285331225332934210957361944107954449654023669981511896044289873842471424688423131847212396881851233635600657364555669918311330890174992969544851113616513571985083096157140472767632562919992038445323675602912069936116164542070165003438920720590140779420275154637260255606513516151111159365660319056865127330577790604989476281096860459675197954410269315935635532383314460781826609703102285490687030583922097459910448941571624244132442226276541359615406196232769846109383213757114690121878217372288234141777654638521481642500754770545076158851028712843986954721763055953346752910380890018016908271345845642455559519112527182180756637837682730917183051973094079421774859218221155366605706747829927582397182324643539782697730047550570254977013932109967595101343586593200451149214949745662990930986527313608477101038264937867317416130542434593623955616358869089604606903612323613603404819764781005308401004137439095819056468372719927915939782450075808106449581498976224675391475400723621136605988680379179311399028570056423500134681764430527966004324947232005197872524094030417550510625219745624678815404347236447313955192303909684264006806968423861731379040215294498676994456410872388095663095292441060644752423624917262091073152603394751232543226128906731603484421346438948497347472675229520144687003833050289306069227317247121546980682015093513461794284720133293729581918759398727343027411974078563014708835682299699928604259574980402821901185585110568195616903224527024201567449458690828065544802653618270177059327448492864201970122033483159135157501656457355756447992738932909851200216687542059546772967526447714092324095946418153346107170504761298687719706837747321044167354407821680993560409372925879853108266540889734329372483926828103336301931069187532846225005848046203051009111864177761169630496130730165087986564926686949348287586904490528441553748091150848632898127300534165499786596652520411039397334763108680116469125756254545559496329131516208647627829839219969101498629338368689058163953494228705432400115992543387237010031092773769449118802460707372468557422497512283450301839932567506551654343688981323275998615684216171243537159915204951466451775499300410719606079472594183214032497847370772357543095224187476167546206973965038727554105241303909378733570898802323980935775939501385520984342203023116323060800749760943619443736220235856312318665513992766152430834019424658163818714601438335239583374168285836016352805237028381121404727136035657436021794422824623360184693650042891193948172920559773868594937041696403924289334828399800130945486345514160313702625993579700862583022318620238143728880512088467646264833904403845035884262769720624161909323819488079091654394316689473924909395024455637729997164878098487128263904517867274340013359822628820557622485640870103748065170956042486614442085041332635530663560593236257562168252488888155832076015416684244318753866966383540166044226090716376812498140662896146411244114454283600176732355062521166768619616236734073501341084176030375980342714466384501521012550310596946999837929641101962370653054556731890445751569512429273436568688295397792765863760926967565962596790286906589806394173847438757809272609088482782327698483696015752284143529786107753617706004084540650234662043943105573417666928366524077725391238677816029444151981463688347649150729477879826060442284607785373577807132025662650477792903444316817558689004703054019101238620624912079735711656348176042376074813326575587773679817828262648022026768602040693197943981041321120237694416476597046603630533911298944016777248241133798771425333106132200002938117102444693598738043299654030430926497541700401247983452294284836148307964361414958861668994360922066718402833853904405800148428805240962794225682323678230273045696073364268928357290205949588531423948669278217891990372495862373493937474509998746732345047463478336143041682654277202323710773409378566702130038399292269832074254588502690082360868496681319463622272814976721725573947342228611075607993575552036734027601516503044199126823878084843917807841857386087747749611514177944755375505611524657736009965972096354790624356465546907443980396147498829610036811957550508793127727136861623073270765855288489434329105326842214742737045471257588364569485933696431765255323057392938440821319341149394137155124818354452933840126496567728175059103613120557934407056449898042528333887771622288362403213249275805369053543438538094778482735323962880700501166359676764180720803398945879520433969683664384759775152317938591393083111573286210618796869016593264983723939583282963440477404246421596169195227352284653459294425378454099854947786999208041500898632860639326248144200606654393401503798831931132782196846254116637701401609421100693730297019420635413104504276799017588771820783999705361132127479219614654685792300047141650526171367126051020601731968660256319709809434644004428394966800028317598945298997645703770201667360377041524459696847845714386893482040087353512417569469643581350151720427339088559849376476378519976973186562104288803605906805080807849356732349219557532460487622797766449645597608773232191187931141787588465746800510972071311196303296633081008319214795140171392331551501885548528865437893841290494956890690123575482654703524431418143215960052295321631820201760961410823033437621728483601285142786072747233307656870041750820416886117403285125140463276942718141547285102211195212576743487913819732327386170119349310045357368036950055304164043914768822928038179875366416451718624417117887846924298506200156026603484652705229301508358434015636664999302407074347394870065510549404545710432244923285052475376339112697418992448264379752950927735735220579690492550334309607732800463628621530755840271477601612174447748688414369913961321794328053084189768800262837216329385418379437366819578446899859783810177204479450545639727718850553563821269697585295103856099375891827507626970181644908116449474596919493924337547199771440391004865539028112467924994583683483485605197136013543981606697866381271381819159827780223710167536085635093525549240187517107212296490052103829176017243612426400640024079666108069921092325110627197896294290606056143610953688309054897033032386270523301477058146711391809849815485317299745499358710934686628231470337533205725348747844308163197108024497498090455599839667416712337033235877374487739751914716426875191239427640674494898293561850537791936917549151346451485184189615226322707739751582793117950432006058228433750397826743858089990250647337271544378954064793923830035314983380832658975882991556467073448532493147247515658600341799081307780482484545881624434759374759153701251474275928224805144389630166094325978383029702100430506776279916083063852395590890122178031298318062741277449713825430051230170601000291633822031575947611252465515425839891444293584938112095627128248284546924934255272903263490239597117067486297266852215090296620224480443721250943683594944562026879409513444607487875595105290015045403945472452816929950724521007924898378631245957338331488745630060711439229669308177499913525766605352388068959639907580101547881930607851229917118769805593570815544488678267519654750260206338551938409973489315473646672303608953317350650855133027454941383996200794789735182144075552706240424643541322300431410615830517603788111764541677093438781587047452048740768708488251318589115184631504374848552098458199313665942112861190761665466888697096255605164208123521718879015477054761810113936805464251096413502784478029456327114208181338195826313497750332098769831593745396874919957817836042773502680342720284158806651798380331418906381420716526379841415234051464370336748753630664008579122076494179951222253753723766480315420432272949844978951699795206249092052593203409929002628461124115797439639077395316656192134564896599437848417084540294295807831891727728803748456317821191089734177378392423731959313482695288590428650892975270235234967971884902530276674989278435294200241681221216638548521692256308647877271896410224489507588467622039971850408066022288907107808198188563768897555047888810221514240786366417388284660195141546605140780306807938717773679312258002051612354295885612065729208037702905005368065506847811909106400973823356251214061324335751581532713712799145804694260066498498070403394072526708508739978770493214211415093251645967924466969620189868543532138850276180250341068655074345727335880581543104164896158112329597098644906036394857963646679823358381740994638335674160474556133673726093975090122469430973768785799431576196884479370940946853167663612053477416339441964811681774909989188107406591817723233349794081129566045590983794058293720582601119268073467050915604801087620602664726663576024133575622162102271284773352758516952591623178550609501286861818018180740701262969170191590871317313410010821095515347219425656364682304585798167880464004231584635258026296800748368081179395532815635299215627201648907267846788861367734434119972828010234005610056446432103561644501444275894706888674828506012439018783109802539670963940866682644193938244804905766029567615575967948163988060964341386241502819692963378985824136795531649428471637948454869620318145045649029745900734673504967107067641428858225167145838971143520772350858730819021621863743765954077446352868171742424607086916632947307864272535114920367755075607069591948438494508343326709183593370923923894934775716846620634263276768599077791745547375826185898310111761069339815777445446698306379900885828799499212978754261471512366372975338487331988677063795726311115792180670601636107569097319461587302348573175731283427290973939147858874361888543129803423242133005801757997748301100006438275748093693757404137057185997911429367078817158158573235675944854301970743322371808350161365153620040298761958871165149702755418692407126002058498360068270227149841197392278643758252237557559814740436097325132985061252292041129511619273562283971887097311683842629436916216577913123835043370037100156234889193252466673990709137125290411865372676673537412536315184334624674671422474802516309436751113328931642716456834833298029551531954431438548846282291604412459837564539197080133578392914305634911776169103005560777751849810819015911940332291914253385683900169773514279416306515798966015704450726324990791417542755797160739894861001643461649181583378381898632735507976085927883325108723819462083922467906449494828168176345008365943936163537460223183383186311803663684483864253279332390220453608283937640139716331640815325840831303251619493821257332033969709686805900934036581045137246915593430260348293832526839298882150338408941237903832968021034770917848785108451422139438508166093776374891437253300026910589250803923778300015754720098092560409431564879776329203736033194957731720009139060354568342922898635995600120884354241840472459517211283848342337440375693496362374868748992574155723923560211839786006296008857882124280530940547438206289674988893241975703179202670311325004930861122378630259109307305805295842169798982342011881141824770442817757728442900780036853068357134127133392030760641145029782864589743070563967751435090562318199973529461270109194575778881352410401034639589993193998063339421263931605071338673156859672397355585489843835562772662499029122726117046288350326560504353579011660175223011010576799188322637041210838044650293277937824454053542180462679143096298824830183420598811715970668692573716035216274336909319608433717150103918382435033831320325739882785559158862271681861841794897858727141278779189330741666093511309210230903808206829317907116033398443725994588074938693847194343850332034267735823541997732203724520505556170557868186714110229798083583643494357858591349861898621677915766172871798115639751690724799753712748188730947444005187267429064267418376860306099140991337109588923597216697130573087174434966595014618324767728245971908665605762056108857011936363440875767379301343994319838859269323534201494381550150152352780108991184412310102206367074644973136347936369864282338518242141769660474020281018791328041161525992308450734724611460399825774398748623897072756061103512638970151466916693625615074014305824398708604198959532720212096127058124161400756514951490445200447395560330909374754962084134912317500120106235323236526403880026363858582326065841834425804208823407353921099112780750863543914570526435852706200707676460169746636534329650619742431666214912593184227477463852799396431759730787239686048867666318041675883270537854080690880938910800407994122092620290391745090692460673762629154041743952279411277074196320924780126504082823304359233928182628631911916429556053957440580003583335517651254273356913066767108817114234625060256030432964229628896713161819748387802001156846345438271413852228284318284097335237837882397793765277561661344776901123438900363231113154595604864627784856452603544170956333590184395522149023530692251327616995793474673814894259864549105529316032101664667420827567545072866339831464008328237445798213798374824461850303231061450406952261288254847246850391677390742725265781258962807975671912815659769714137793053431508065262048468893098903157781042256831487278462705279110710377901519433374675225499735750466034753764247165892165638162268674709787932866500054399969727251869421578567881956726138038804630539836506177068499494068881229562884367266436081364271244953597435270166976535047267257613867348871469569983229831683809689101251426314093996388843356653147927228076845131729995076532742034560890491979395086713124091641115279395037772637737061719435394889440494955761102881128831123424514109201832381723546102006518849810467883275453895768139158247072156108403866530849428185904412263154420569894388939411110862221202609129530008851065554250190813236926131317931485524809325638202081825352619724454595735101378722723735563240315186324187212345695153894445723063290955062812529528838705054035128678098643216890298618455056391186881234387436692764760620230306547078076273397484436482064137292896797896221532746722283690647292323674183280951725544715889339756852352193589572703787048787649414278325503415785544613942701002572323139083629495864050765392642974904265949824447338466261420480517135780891810827411956602629222681661009564919461640555796344193744566171668078371960140010906556967276048016476761913488837966791600659317346406026293346832458921378426964414085572794628762413804538478399586771705210846049327043939266446430738873675560558577775763110306547475001011065431959322211085111579674872048767277056621119124455031855318861959082306114360097723020500769269130004373341747077311756323273367676127653132583155256704684449736983925003074778493082818248537579955684706395725165761557919031946803736600671562137019516894289813614964758126758083095315363451310694946735267899233532723505943221454587262965802605146533241039500787817987749401822957849790275772391100389049481110781712867915450940203723504495964021475959122555717123792073620167966884644362258218995598005140591363194535787206260803161770635972280301185605491720652700958704737065466383599330457581223213176977356754651323412535847641192015693960888038074162108343161150174407793748266550262018296054417903408196770746021895866848283130556308915863230097922496378159669620890067771453647206983275118372153007894578727354965559395345814022859350982633124360671352099859917484911280813710603208099439937341092273079696006540727509778378219465908258472982822570391214485166996463659920678971232964220927802446608724064140128409289296156878547450687089685568788658567878349339450073027619832718034209768263613597606781596234210848594363080408155017767430779513847831802959217448511338179454072839538658123569270327339982543982796821790262985560792363328758063644970967626214067540450399486856570355869041746587459368421138928619288354704249928455700136511530846590726755667537470506552058907770344112921900419632273825268572447749087061379928952187675920605196102984962564019868720400465797526427129892284726077586482193408222644493445806911271069049674431870760868724234944784078454110786246032914689807062480941612900351713575004197042270724912177856366580178747233223796780887633069616552130319988630102313278219441962290814011872103539070131744156517826159469797665676401599225913061337138825405539696123755586434175335866251131736675047856258392319049589870647907822699810506729077187900482738938862051493487464555054237810034257762068204507211586852980994322223094164503386468816456923071129615821508581125613067930568106731547238973034841174489735806653251561477354169728208637737372678341456176406343067624910757596311324336808580605150926469809129678190632786265804526632925413088683564964005674488962461854335707733652151548291737576915656690286714412579502365496178586090093802029302139151013672786717819447843816245780502214535260940068637662161226398371745906522576267523058549458112309494410413112661367722332100297550535929298155008081772585973450697060389614808334670489021218270929738641013337865520759451230076567112417264270558665323851243570841484361289597638794863408320172867405010005629968010965429094873042395746270407668185584772123731498023725170327377397714346061089296513438687363900340078738978843205202211312561175849065343016188265103182994482028562901170540944210326698412728939245137059169066016922209611966216681037518835984084557331569225789831615276564694160342790697888766486194712340725404874363014892896900002762417800325998073911057232443385351024174308352472971243327422996374986212607143556048112405011321435244665741975314559043217585182837199438454981358473233184406577695358801453956331016799718383820498532193419296818093792649607253951277758091510517394145414714276666605383060599052924544846276064466285310675946168157452358817811642887875681658321747590634696367832189884589782716745609954088256166234321222731329263499740927768139810371631466293893660717042967349243790683969608305188998498500754408594063350599960766236962712129348353542209034847755863652120649460224417833798067469025332201834784425465788845253159618176835978310152190718906453701352730567022484347212351893325398307053891379961112647925095985242463778495494155179783720965402803421006016450412611017950205876940703111777692600922814756918398007955543038205988156070139790849700941882352000822397759742623874860437213992776086131064548783972917069242062050127461656471306797100982125178532240916283974017564375903065828762832181284659278546692784410935840948592829355221152711575052092079849174961783757271196470282846659497965680829963731237230184525995041078372640734820581390986141074785844609070510217088617723483153844959919351890013119283227482700256968293475002307538596832902673345191706941805332972277414452582413535119237316042910672697498734596493468410439864745586514017328194655759356182861912657774398048601544963741670569953728658759993802836127176674053757875705025294877913265213658168726345247167872496652879118718408684126816563239069084276758574989905526043008885510530529828784905093396881210912451173108531071041425525870928163767555182153487025069161947668329225613928375875888544214681595386708601622098554943959266849931557015543189222357451968623011967951147308639453561441719791260795743945305135618048268630508689015658010867592857626886354346735398436023237561935314322176143864893297268248944331826855734132103791304596893629286698719931801718127372831377435926548870217633290996914534792820685378678219392398484170837737309993207348599288237054699955816456390940221479638069639064479617196695917333179288000472919250845638242179528906734014229879295389928681383985655850663793314368033829663808799060828129245698547524198102184048360393674373148661707127615180753218003983723799751010964294754490222670411199758643220590447634803322152678143644649376799445552327287823130226513565175788504258051165128499946737933171259961644544408355925109385008893566604654984492193371002461349402007927196764158728921625052512420775592565935404552226507647133161355414202955509733155778209609279526471323124777311435246237699110079603961747270264213126104337130917283782895741460767009365419452335208768271028526439930451092466875198267124559425920504323526178807703984510080676243786654042968202499827242587655021520771052605808143855619015966622851004051496112319261789046064270503132451342155407108712997653762875045808315779524620053267717138336034625696877419053862619757281866651767994630810258782009841756972815615471459881331814406961510683365657730067418672750883870309775759673746711485110053933891899702532318018906617696516951505362867413671803929406290393101205489553167468616568588685780100412397110135710698688611507315929533037930809045481457287242470716691947748648307727973116306367374002915632148370983617852333983547855068429051617147165203257513425420245640517168797922068560916734017683165117362770652659660030996629166262378927255467532272917423235220437036729472369860738211070488871136346415461366471637614510547720098573323536011078829627528577099191223395158548456967740329428066587822198521049784250863944674534890491326293167150863535004094968445416818826838419797449933493570896472736858080657403885381116005658996803239516099552419466917952185412585491128902928095579557351000971537712412493405075767431339517186173416201994354582439012173775767568135058127358357373775720759925495844159298940435947111964339563703147126671701013283658667849584066908186375305084914694107724919657910175130222570897185344373184151636530899484657704327541119397252202883654293076797109581043361366889453193709971420964354285620345338443455973351275096486252661571746700861337900291788170898337630313476240800241344267970030919606762166156277662736824067331484508199591357209810530967425553456600633949627579271566922984099539985888833256471446770452793949944124686862015219683377475712825158045098779005635958244141719976081007430362596666865435435218126707861001165492058717124031729323671068190241288692985318205880253845460299810534724064684660364621843757733190969186292809175847951924126166544499415381616327424804678719530632380148917525059713495757574134575559081325161977503513563395153102050756598558190264594920530982820381928432528334076746167824485877075963537907281770643571920354915607425379009406985521055514066741765464211245077545249998549140257212082338350121304354883837791500471036715807400844684200236955982447975563648849278755063119345647028795428030868020438423184110973515302351523603615971998144610518359895854640641660650756496135508853377652715292124497874456912748259043403748780446933000334807039155371753334174958332507381140549717553023695310421273698890852847964330671671340063073478407154881348204609818052698564988983683861805460803152775866229164819776483743252108451967193263475204566386043475539784220195148769098884396809398360051940015707368130923305024293284094768946518596075729467665483253349608434285737101267285101974781590353495239155805953547446510427667595492851567152444622773538495068784484397673414252079589010912272581004599985280308403897390885563689059790162932685272250092733964799182149245442044506111014407493978903844979137725481182616896655051793537747330455831433571812241462173591608346433089261691965984902615162036520770372787813606234990520696484809576649161293640193530044964350310655836947924712761436626288095595148900274746011982003628719679871821119190426319038467186473105499774163600458914283595214357187358116531652360487555459993566738575024059154745524870207108941742087249128098726314851675563001501251137133000999777491417764908527604255431306258614967576714844794374728560741847547168363360262222180103075051389488150399066286544825397934756705503449712810241437315527382505395574597291904506461703106242193154150136974642295563040016390451118118221282229645905053707111986175162207305384923791369327602123479474761880915060003880521732700804372283149711115396635325267363198681710928417201609238006382990067988634045054472372727139622804038793389249477838400382732785622167675176162407823957907326443965595329546403555983143890444692391616528079574469943882764781696808494856262302333915314795017353950161340257496955634839386783418180392279466094123004440764249034002947856069577116823096943916909618303814314557301260404233258000042867974817550823757301062376054775376765330704858048674299334465692123266936537385529085707967429883802899050565340310509062806484022138914738773812888843877083130451960350042885874774263975717952033072817156942839438252329549012321095054401133367209737836100806247791650206758632536715894148162554153899633143778528611004329109211255925341582498196759574799876356308940991508085560338960878003840248663252726552457258340795486727097470798348000092358259730508335103190050099126256290387267027279805586744553495394857198756556059703773102791759434481415292502336691973757833491810769685799141979010405795037305684770234323533954852568341632104698626456718227060596895331259086158397990208285480436212499006883037136457030963492211981906044615176001215542664006817213317451209476017581175783757331681684749234606893712420171408999048183803749110354673401067898483744552067104994809398837642092643802791204337557763377872851089415746113388954791733494388170980128629021428268098601750408200137467760091066506335248866644331674104945660493818169011138834306751422827554723089425495979701675787844422293424968666309941687221103479585138243908145826336037090651397334496418109829518590534456023257428178499551218299756862794803284921521465882548458987791876144415880633203096320305171483165684626966116642742873628651609941869935865330147236494471866242534110889695708804755530454294869760427100040209235872505989096866905313543387089729118710811940469907296410428327302299867082811559934981752937541584835097305716546094490154467199617073749740978859573816263390663436400082306252190405374962905560270492224583642557361659934573685435947179960307679293624098785319366168338425226097071847771715431090548757927438538787709080600204459954853998149720156409413461240826455217126901576854464523246622196070587333946672287321683422876609673262536406641691332156810314789011845021672204677808886150774761480982396412007832957614215897405313703124990477395160804773208376038704466031487243844719058649679642972862553768038467932581729089327245598713115595495816567082398795717970268035756305197920554036110950572381670073193790949332605344931297406081172820159769846874648968048370907268932771450833064632756549727545567736773616738395535781931072427794634602198924660896848006344436504649320150348221537867712542156389881119933557785204926275049029416502381427685734312823563814370175685596381530657221230967386904099972623696809428309044288224157608405971952466986969888034659818229465443632357594010394263217126904181983820133710193269091299935902744847790977745909373693402838124999015164186280065973041811761542323970188397897084557824241714599459135576301814627441533081975517837558734066464516184232098592347475716279839352731033489380229094202943026021358296124360585029549292980092114149289883544339991131505135007353042952079338061953464983888820792156305645566918908404550238472285135179923752792073329483262418941682041314555948671488911928792411770546934608936986035896500699439368932731991807308807745426480563423724480651604940633031898180382225968727967086676632094980040888118461523159039724695450959380308519705394609348592552580773813607481438021783848324650630463652985581445346582746159373436066468850589502776673816468867475613673704538563063913851491230986461814511570020793339481452802631986682581196199400101658323436050498119965032936118148051101332174241968980711070371800945959243827869991067594574224263888720959435612630188016078230839631370273982655121975562571417940012447235747954013111499936749310516303418553929859878618332792982577524902260287348324332859749913463426286639065012605702203618075707105749856249626334298793892964003770070679991710725043871022474260605141003405263713337967759400956868408241146192794842960165990057625866931089752500552500861938508628202387926962107784755198491264140855030263266764126749003640558193817557611194482963602792932847879817896220800937968584270190330347337637806144980142438305580785930754264934815763184982518298512454579617001276557154496949940581505548854763016547414570598886537721354115051195356814998357213123332163661963834727424718741742023713708926725996417080298880697895672562859911281310818194299397867475762429836773979579137885243449204210814730149309549622555620002118818603931595875895001937599937310171585401219383594317699368279676469904946020599531011670006443529585972968944408009374988259240991618415247805203548515296299333503761622845306828707507958299441433269012190925277070341132805991656574736269508120056770998725182572020875147287229858528446997841962366315460326992876221292950620949005379662425375774379376628941621398912858526132362156676295607805834114503688640280259871163519813928115604003320825930386390045255225322325256150536719335298476311859051249775778494152142643935998557110476175372796308375726978080508660624028146937117142722455346689786611965517647199062059516993786445037343727530632475461904691217384295349566199031449075428579234366060005703001291496980757075711073754027503126139444376972995378075166844825672279339295781910735093902682942200141204180625108154028458216728626268588412761719010942658636449036286006764752020514578556194110796541495641713628779966833078068504211428715908337285131471702815306540777670835887244667653429830831376982929545395464856298955309637234883823148156383860726465852953728766263955193701036696243798658140090099138569853085518696000772622891870287726650667097381912149326568845938448763460526107525085049554135132845856486826829632010185060086581821805843166667756292831502305747845379734262951114388019680170454711993671134241923699960655301060176229503148721992104539201612062635459794461194464821055016739330530289730539402730159835378918273908367540221838611752011055350718903547113763338178955763598063955476318542270824713800711519653535582661428028614919608485235536245235977085575652536658510677698018177609037438820033386040394499151089658136377867214539557296103361436788230711807956700431004003328194707436649345675621492015255365338521710742458650464780706511382593190779106681444413296184042925238078482403838634151516202209526280323867960417574659350314515913919545769340123779213751972553711565608851470572447167366999834350369600209674560888406765295431680449108538275713234020464468146079865925004083944756313097539152810088555462744666726979760564745719377055590419570465627079947936703788401517243163553636248037630820012975827558379063839561263395515610071775007169678665137791387098229365997110292911807288213221715302498697391778251160966979005320483520353590700967256970534729671090343617355320151927506476462908242199596008753669891988684389727723940574032986199215759912676893858061532712125166983484069229819789183971010205783639038112438793595169797664643058315714132890182280452215111805508109622696569614249061545986779407077521128984623488064813584014300092439359164771412479259862630495381519702374611439988728329025053699813649056924258589016886708414506153721055028508321077007391469995916051696052164734055984961512251411662878252572403407963119205256366180676698332184374972000406810589478067952776160932611329434371988191170898061552251007022209628120772801723190023744047469503894925303971610880798256159752031642843192733287489246051106337606608864908603264725793388040398148454104471281408749969423240302076591131965093436342701809899808650464897693677798982637835269827820509805361123673893700656132091702853052703716890647661159402925822010134517392592795705145432785376433674981522421848211890897660546067093939929879489722938191249829405864608577617535803214708223736247823951548326849893367944689471513788504346345923061034411392422112143630945822446383547078263306533465097198652917469155972737571674055031207175519067680505650404528376732780862688279299002122867492875799731756678633336247263230137513917334374537612987277787297776505591023002597471191836122226051432545297912213270078126376555656418492540133839209926948847217597773373943415487962971858093197484851395346357969556314722928658806742880698267385828678544469966103080756531719263966064231970418971526654278532197034585593061503692127887796150704411021769339449113398557823780388705818988991471507779012440323928739132172049066031136576559435028725041611796736519226237587174852004386067321218144819679469467889784870957874216282212510319220435850770227616872917867309348422033714487197727279872501682015306741031684054459998801895383644343798485251107100078445827690362277562225012402804356169569064932434526842345307163421666827583341066774212789677302013265675499804745006393056228041678563805450898190431149240226383123472124032849695777831832818544282614819277548668135264831477769022097199036645605542977200748999519400591244928000668882864559686347752734152473413129856758556473022151578040849243603332485636524323440054178417556994547424530532326649997774942928472116233198902539770995663905351112839562231233709152963441321116514591236409693354749810297284754402295376861585869187545325273234976465569714817181977838874630820949520802612815655546639055410323771647988847317044370830439017132122414872533242111685916021891583928328402675333892771726887648100332502713124537901725326442177523364486719934897452379600465605483944872854951999941164380092536710835241388029175720827435923544353074910805067813492701660231609715860738369036878172287037372417505925823358988059499823956755092905575939459395472315836898816359380615762196028127745241863659595888797926827637499350354728352666984402018221586605877354278235758888293229382588320549773558520581309712591894428910292122039978969964150691555521892992146683413908384597766063164169872174763097594896723667626376847748646392784329825742265053551664393252738119088261947853484239297382633036161554808516129451704568360805373231571280024438077916988659773706801538596976394419515452675155904536884582047648198420056844529169335924344667448474762352106601056009831055727260244923667574887661850727172301391946151920444845155452900358087078648910416008954303992848427726181501626067270156475984950877377621406382202583305733210948162821326620398030337212312442381564109374134064560121661217492132350587251933485716959364832276048267203905908356223876646682158468465978511254962978075426806015899694464944377863281361220017313907175217382977456897360007251030517245139623158231267806878555852950751470390793848004676085283116978232946653846680542524216683176384743806066098178653015103273970871818480379675636410629534548291428153319670393864136903481043446229877937004455183436706811944689129033785158677486725327584617231250086966265845454343294558048588752536350027058488347846253479434717421651098901382005966126271680655131076106736781285704678068235818053245343839472596993208212859332693878655521123706167668209810421510312547558128210785439128389211531738815219962523237411623841719232534257468068172834156057733189981582288436651989146461267320210070667894536918479730186619462546137298631583776147225084632543060767392538726921002764565544380723997960542859292553987390974618571632745574509732419982075167271063689899007864010918183882326310262584630958152450980893626213211719526174117711030132417453815022276671205362915761810831020064504742842993581438506034171408304069967481307038672056503481274349076181954892939919476834755646559622711591015530445301213692264265349275256303380269983532495841524147158112889125590577085973114853082977947487644193709655522067681549035193236332621261756068534063711540010198485140945712632288529320145920121418633569868829651368952290766839934214458455675728587882894127664813008119980816257862100316089097249543557628306487035430243589037858440345953936438742438571114724806264949606776261930636322186400070640055728160511862996262777556232716475777624430709542675805824015787038537850289113681402879489769531003755114187317853002665458751867422708666150774091091593374019868495806182088835296677720031580276654773841344325054690473892651519269351802964542716364850856622996881866218974701887553487172544892029332676624356719835171666910707969498999442930675510701929343397245722556711720974709401087798258168252157657747904298433988459578895339352192788309753804430668327300810900635075500775817396386569715010235956673404455617798646654561275263995566592239944360195991787399071872559236234578876723559762611499877084822320555192587088450339666330171556371522140316811967979249522594447037852783384536951336733582500073507526583365589604616677477969196927194093468001409068109061097843414812059819680759684801778761167859654274870169230398869593195881698895937369202498354361957880563434735856496231580789261909600118147340405394045594740193076011884074582800976866643352833169417314498696427913151144350652915815174346654770140763735758404916870269603972511001645402885488303020427688773479212838757387790255176604148187709558511611821533451034226421473074470081828660406241783079704731165216189360684455693240277013815116580966577258477722086735440064720790126106925740982567542344960186491123673421238170802756593111643655475136792367331719245164011279740394030072179410058954151564127608557345914702309836602582376090632771295872420837090240976151883739146013305178312806556212995587724527794905674911264011660229518986707277905837192576687298156205255904142960542825949526064030514247904043752129825620897087976633598011369088711408869644648996271107704491330396816140213316110935837742470131128925147774891269942268855085342964964005329618935453653648744285870388691609506166775883720544495922647668009006000644432452101781995982177897622282071954709864469412610231448269831484766437701291453288683707686115347066235524446811981139506040263680422480435687346246522721696994995984054620834092273422979763869070594356257144723870788466750201170554476050595474313405492628070101548375174579966605023963445861760099188532611672073713238493273267404734054563029867393873902577723670608356614777237897489691306913664501683127894348544768310392774824827675923831472671781484032016317192463146604772748638601558468378401629497658397965163198340253759006376947952402527201771588594335471964947423233444063402698671534032294360773796047328529762880626531333381335815716868344095068762890137769138602991278640265456049050511954947606701447679859196447826804980387742669650649682149436538812757783478752146025550899563110214918199783620718788519408135719032923246072032832057828108362577436912500668774831293980477614168552116080275792798447826941927076408055295896981964772171606875201541477894510836076511608211358271696017486593185752887907989665707326320503291260380098882714985563612050345740787553718407992992491132079064043669518976191939692498894719615620935317139596264961820488335438875527517454855138334086027611273822609740006820288615061052657481240820255549566380770455942485260139295621192439286951816234260771839604677230849527992137260362808484348666142622612069648528987706489727315817528751839412010115417530361464453292614634266695939689358718298680011784026761765505830103504078179483552736289088573333501753000497714774345353527318884457904579417656297382812481420126786386899686610525483965456791177462927184719547441556375492783365943732073358522905117422927991186713944140282554912234217098417329152334032896474883077842011431670932217413974056517893779165117452772421865094604243728318997624937508461893520522922855593949602814689600199777922690181629278400379091307296464736004663566986217220224384714613487170625809355685519004953951906016251073559550197564392501523678309950461421482477820796069108631718853227281438127531271551683873626523804785497120858445375640469399770298328182736411017671048975291485449882284231653771589656564613854332552127134342685523072979868253273050773710602838695325617608910954043034193105973764424103337396709982396185719101384045741432008433294303786310341434686602149511323785449886568836638841311373104998045804307312960633602226981443247260624241464664813953504844499867784057286002338665210224589337188921460847440015315312614278391856691298082945759636727051072153909297833917125556185373513838203580058305669383334886482919724412340735926341610676520342653441290422480292170110583400038003536998110499568368077389908864122875053709068972406188699914574975789866049067297681356678124700488329476412861428915054583904907198228775317301814447190755079869235937973798613369890813815151850352272805594167924497230509362959919838294067910092504098714420611758383767068923352978897267691191343475207590557347763720339858360271975441784882027537001669673043267216220553488777379609783799055648927153205779537826285938888399885151876547603461532651522248220785036155853284351369830055447565058069312805554549502103034113247968541648656719723209896072067256440656868402122730292803088589995039758766714401172035076169695411248084487709238516361946263188529431026747967692081085583524701729820106389956194441666155145128892696923200535001354877641048751891324377135115090579402587977967317664175947631117771632592074251272487364190714662616207040913580659150498298855729132902954873076131592043842249027300464977772252977458254064039728383928153212298303968750886441750538899682227805619103771976467345304608354391326198788492522763435565569665603439730982169476638417199696615583919804949230671640667373377323679895199400316414157163966475832315202959549963042835588531158772324574615745267979990332763469868202629001671605025342200829911279642487852332893934100631093033112335457762241576136744660778944889700854940828129954669227803183504765738635751740783655708855364942553512270888191977667198808205844441065125040033039828860157887919776661139177029851612477747754573958986822592396404434987957123306484913909471966789246748253393780287746283793374313462261707087838163211058365222862254865283718448984605764465500486906430919520242573901103645638370872144611214941132084156367331119900667018750368944197238379515662841443847302181048960565294609869226415251016408084527594769951746407296040710131205176060986996137748690534044199817925215561522276629673090253325594562582940454127030383597263588203992151229100664243413384334732684879921307414561854561078189230086231422609044001556785814335634387979648256895913192521563839944256624533426337243037187221637966628370312483452873947154950279960630721527726484289337323667366927046606876306727738016971872499043484111723623150411831284197506413274282947219853424183123657907268403562110901414396467933274864511521804401615070432862004936066368481807041650308000356271989925437417016460467709922461972391862502786117069219961582492340173240554746562357095746495274861587541229784945766541682557567285569825078094819923433227463474228569054696639415228706975182235735241285887643840298003447701470527856172841613264110892848898571691496053268647460430519209492662874580754421254450966477237668114765821597601562682556047529453965372182195479698463900623515605335884061294891593378139897352880504591674600357874207166605035756583085644199610274360282681375026227837224609506523853591446715343306333769353062637126358241314557611302040148621004437983992333245391412937918270486926631054984199370999428209294024332530006015625038941754794668534913609906183365116496181684702687499823080554656434147037103359972750331815925290421574279543238780350001770349896024978648973492490882876693760168758725718855186676645255504013084387252349776076132815242165476375559311726358750346312303918914573180602265362008941365920044109114970299850219197285385609298667277707457085649765815968742233926871053366501569219045998879559331864629247271733509806414635712366606324282898236895814336032060660606748891775227170466086341204724035667621277939600293110692181563923564810775711494577400044358714128506252273423145273050286634147848754444309853647228412657981992525927740399310006880191333647705891714325722678922714292772957562959799360517501141660176342773028997698914463314216308510977904049667346080320978962147347577198681569078010349424597343704337478933109346205270048629269047336306833332508067983696322884457311574528848850806435857940673118500728746449918617377711266440541060458899517936524279072912613963552189558579111676281394300227539145151834086968153931065669930858420793962777890678291067341446997506060220366864564171583935214625411011868019623285238855445447304518851868469104978697224863337040979899508236077720261625323248222349608609480801790591092168606187932407131699725700253908615150618352764812929698863872300380670436932269426021458558719415715963436747873717405534420730921986175591895669816065227952463502830128150722523266995161031595079758058526519342598800226840249956990613730040103539439817075738179551528979036285784451209997075171681959678723584839174296316028548191840082779718512575328993195668074905985598880869764068200089763776217942285787726234668109958744492272501667222005804031187720153787031770975193801935428314139662927360258266488420713364975682012652623288617987450053110734633421143380551618863566879891332005144183317346286313994948347087941804867263563368229856725363318878031717715161598030082642681899459763040597326302530193707717997564644736139229830083023545241499959095411213265213666980665793639591714169104465975257272530813720727274366648161266252550480798624611010260678623737839112291192282715969432846020744062714807606808551567882779845438066150876265669095604908170869323182805782530770678429016595868072287753655860101849221443298494617407850042631817082299258128686366936568323857318570906679389087335467258388779857287449672862942758967307683460054496148231989076489412754271226218881015396478655118153170924608660290487879948470451919781686324839440374659741969061599900983920972707292896745715597464442831253480916665954375480730504966629247583093063597153047979042850616466318532387092465227591940885124874621000636432712246418316773333530143441670107823460575843450756742168414530284365437924218876268100624821974735242315158962439525580793662947322111894403547445070212077612978237909616420009300173670523435495245853040093606246835919811280862385800580356079997830194759136857114576918509603011517596298328194601598030021038555122177951542062650999317052982062957272939809070310035928908160360598092863056616522411213933110793862412520776637189247609299476265339254212766329299391668468838756990727469917968290260801537115616852758463118866732888585861973144285593821560916158296783980018976589177104251845825602677596222915975172246291752125848160666481290167406668452552329992606616963748886590759936534242718466423099461404442412674905331888505079381769924812969112861008915115132856049330814031353213069719569731577517110190496941064639003135290113814266080483676749376406391325243344027087199252774838782898154780433281841081602530608548299721366047305972222214707909139021373214025002926430803279568057965171046674445106917385606093189300648964661932038523148750820459004395619251994368156889643273379238483799502631841980722599014239137608897909369992446025856102888215131243966539673045320356952127651406627086345750275157194359726835116009270102104245273737715269699971802398028734756338886738449156444482805351277989943981397228925189307729906353044167417365625279374073427279145237320749438596179365264496759034086618890912354606895723626029800495634021669540919880685748287971254108287939905355949189880867661893837601910157251325968640270647443742911335841416038626971707134053759862938865742497525973795652167838323895878900143586188939626224759160649968557752275943582142641364922702969539386847940824902296849748543113818752860094335289197750558669090102926349940540441467175990000992730883380476296592403242214795096346588933658759156214042557218674721863686099807723700050593040657946376069739309866268815962244020570278470401874820235201541145383663845177981172396312599620834757262613553825560839276866307598780800281290751767673795348680232110123993441238701288241334091628947200743561783683064133118527610987586668597727997775537263556087255462029885768410185106021373810225228593125162875698056034443126243309350353739161598722834330326011016134760313550749560399263241589999194928537136462950515203457055731188484962749355081896542849954162640996511090974728169062092829230397519650952766954788948998299304948845408772993496257557113377280136593726451036921415046356752479838843251082764446144152446731043275631299146528689780461209992110276005929636635401770086346803523403662053802507721591241904297788451065859138624126037404504761015016850956931682628984949814512652404129071949287080096210392367778264774828537077835330139951391144485154895987856901183516062645351838685113793070357550286808527615508041378537841057971324160652595137950119925462828642166835431451816983428677046355298417068256725854681490355323914805541044749131676268240400089564782768527134479720140777676233579042116951563379759341582194968836712447422878914119324837341463339279915476283462542528258046628781422501176129578005519181004948233003542637987520439676935290299774453122983229852032987108458671675719462979503010588069022760347097356698775116338977550389696517024423915563244125974673217228392909367000524482233957426001365317184174696063529691928090731612269599502941181830907136609855091580962308428865152882494711641886366800326536841611882893075090916606807122241209529848125247584436951899843982536232612685438253534732671959640637971043815497095094149608826049261947935268575440687918446293983707869452626871717778513093906361031394374400099392233074020070305855915950016373108720079918302458932387861320276622676930371066347635545883551382825903519456757122454451336766742208855683200203609706184460132922726499040361559288384636190668605370538340816495116231280573024743610533857815417703159598229138708625373531668693147742070758678494923487133213520042508459975653929889529589938155144191343899691566682411378590144141625900919943879811272114364704796938902278564586899815081219404235370846883503577085786246555544817348877159231306371986279550698873704296461740357819246679532018517163615512849554599788762933850384171142198812016750217595404477491506215675391626555524106329094426100922280805099222546454556661344924809465605099901178632826430551100756054558774401288055530733624471085281653799812640644507826224856758997885246946394851141589098349204795222418676548828741126737313960173372573691539478484418157841492517090680658165384748935051906556728236655213044836202088393784096826705128236107803860809406264321532156011064386081285213608831309875344945681151876297471875788022362651920163700109553882565501771614530090153956795288508740421769179427030517248961759186895074724946299709764625131180948426706621407107127791200800321726880301273468081353151938637905177606960555127527443150722870150957165542259314547152291595658102841611374564489232474751321233843017093638140436106644313129777594987971091423153439827727169770127417268660934492130153500430760672501799690707169797249613289874217687672949201867448027530204363206003870920144267085253733989555539178006280561752969977302975697504422010981863346830006480665370247667111925492307298320564105165271259327640967446778726875913767284599916476085110405446824298685423416394490259828666303857495652077590057816082139663647331730811391741544286925026379442611304538360387526481677155536487945474737595517872969263400757920921153240326666850510787270747703765000597632352746761025219176654690260329622733686222125317498759149161143673917648613407504939081197358121688120259103730193307273904436893531217005267728612857048621500427892160330848516602394466626740122369048797512269687419507501143828043404196302159827915440310824019374116135159785745916439732607560839931706948449946769371097280448920219391144976876908172888184937758156115856498741180531501245296996715809898819506061895590641853163862698423426554905186447917109595009856274696858469867668935413874077094010262625825791467795432331774322785532459344773028742544783935752591358111773382673685729160454864109314702907573529775154149173919244281386643294870650179307033294162303750002306240929823647344290094247236800852302421198825682952743889967568647633442046461932900308254262108892388321695462447356579587827080813579857435000879572120811068837715510984492682302742186841074815027576177932142683364722448069802700105629998195832558646194719208219669156105058171709166347837912222960906100454693868703361140007405321286788241991635828423862505894976305123641061961973992955939005698981966072791367328732659081595490879246220331655577402829003782448648656340373732663775303334400603881783982899502011410969971145955252934861267968939006973402933277181902759127532230453506559579954071649372754097858251661802380804875596230345488710273942295347682915104586386382719580598489306362611782876180156337765795916363747569577306727284573204625529804969312025650228509376293305588922377735159213635932466322674096469679020301193503754017429790518740736651886778584581619282931423802795818305922906768382331077446305461550362885368467836723914033248075363804130379594019576487720566567914456989016970821248248847311441995120464438893371874904154072727748001455149230979180080229464743984631473329970117015207148203093701012315281046843501265532712864958151715112273155884715173313323649434427292214739617078001147273458900347834321495090177977223901266599825999881526924047443306906913064923570157359609054389302806233718925751139852424527351747615924818613138041277329434352381013324215364737040393048080291249492311411467487098296894626047854176667472414128489622503832890116029031510816846220758612116912290275129590404206340401763256561536626637378327636365916140971080466208554893971208125291032304215413254044249163943254860976797059484726806963745151573910140748912179212096413734311988576664192396256602138112412645483031555067718020404357037565801217162141671773260727224072055212725904104131451905263617498244030590740024041500424352926084200490124101254208123452154888087912793880746568328146609823919482185096272110063001538699307413186907499468867962860041212859767997434101215276968604357405398288682763043697139849369455001981792772927027475486005848578710720670799724670013175504017460090747161152448715682007147657971165982851309663945696441856605606887548666017878655805593367429324704121245089851824070245497161723471932936147221335752131033629573999371373488778497084300768361727227635533580814376860345164120333267062318281984215466828397351724851501508548831443491333266245620449671590734861163670657676260635272533795205658854208458166655482939252696044368168551996440402063443523134833373605267750090915316634048732519375698716415647005023166534175895764597178375594969923026019690419063704307278421612409675817897855710707172775159823254727847048440662263838709216849032630493606939425877364977983399147282040202861503173777578466000433069191421342341692939348494873422877646940315654052416537915581799833520807671315113413262809957454816070500756847047151662014979720214685770149478304966952661016235797497816191775196207540216341668021064520069123252807097231065119471219393859689460276172726046471097833408502618329265259880887446061160021863899533804156734170939079155659757532328205719430221854628453201326715549399660932207612031057568353018905834079714445759955701304146463701819184449874609791573124910256854528281793861007874650247311466546700583064489815647017360109216091110113348126483646256916167834862345103251086978658853131126513315229512139729746677688221833598103714640049931949748654613836016307097593290686816363108227239085545024333020612435903891462135489143343232832100040381392484670743140574989037664016563365271933183025608623411673269251714230134584707136302923625499809635577585882698144420631909406107261412159041187724385306177776154978997103442352892966410537057296743605855452836014226272583156164312883318265890441837280430958275250342968988535107120504100643846637176880129311249822363577521625974040142121097681953341913870914953257362860462572980886377378328675164546853568380540833904316409042463750299889641543801353271660331800721423523577597228320119838172653337778938826556566368207789550961165884426136401550387239780779896078613885822098442127517420048251560579097515974247521200145282463520679831504888306981144838526612688585054886722122596550881333616952886108348997038268585462265285088754426796919171059235082059426575142639413420024187749893497435403420770452936238725751595506618556944664701643364114868987319945403673651856728872339213941051314245153904676946551165122534559481260794669670537608064071181348057755348933679145479990583081139499875093460097260343809378041038776749718017983606669596187536771628921518546350227494299668845728964394624094674663498863468833355934389316001192148696792114004954018315263975561574303147602492731744633540451339064565372325034207507576897644143312241927353921808560609664535557969664320222325638840522469519279579555013649001572569294496603012955470873431892367914123569249704781924623511254182612159966970848362153197285599849189599158967357121858390194485726212361611853499640455438462181789392982781631211823627693484203068567748359693326419803637080304454333913721534018693546698909840226060554147732496890973445708624156996274660557995264652492111705157124897335518314609906514544011747991153448112112744852717482008187923259112667057248710761350269516209110619990132301098088484283504573249998007614348563567280864534741195260489625707101155981275011654261372674897635815255718448045401380580727574005536545432681455302133481945903732120874956887482793241364374825085134727355097007804991889978501927907558265636442443635105503050473119212980195184762095323003365468922300155345630793088285324651208974717684490104870311617397286749029317121546986149725074505466371752633356248849140636310522518837408550495788464053012794292270279898898242811818598352467241608438417851992286887637127785281815192077071653232422269887589327438772925771108806878751252404215879210881306078584988496657663245136656093877947599971536509562223766084001818089965305193951414807010364576540099844240216940321757296911587748968992791054374242502921383553903350056505685013153603762453003068523643113439184564741888902857252625968435029761850860908113119439763544401600285184035312625311235479336271801812828777758050216762106966704970408400324475276197806495876017228251554450826814508546833091832048971504155475180152993575284780812214326824198051755804336222548530929089215284717595216029162513323030620633975288479513448108713135087958739119360533226707413756673318332423964512788887571477831871255508375006488914507689710486316366557610477883532657118236963655855133066659651774026304173077539233806434385102984272071275862270333013010881514842790521091965917675446558682309214283507910135495446724132137107790578565969526297237621121578429691753346704539948936235127921694581773114260866006934707926626542940965057555731568962240257527627663819002227430980400792968566537079357792231035386525779486381801169794926362531714962418705843100343746616842976964696222282362376622098937717306566369984507158389567765365188356911149861761708334322903892261652156289662898031976373302594393729240180210208705564066158126643154912841420909360586930843027083853365244299204378812147733544712677803675062581712619652878079931108838321887253283315069366349530915746076779633663434823635121826359826132994207296769250364866506278113444508879586535675694615193687015673407875823935853802092804781433499370568724534009810731769808897256361076581393806408498152855014023836297188757690879668117633255865000760009455079328995000607057509886213381499839861239628325005582371309046054799645330488007399831553724784217433948298905748818328937986122529476650541475703483786554866594016863718634446003359297259188394308486192395295724484977083681272083076029001897433173533306489242809373157410223605761053168053959443224108939531070516135831629979055172838582083810272380834002993349900480489261292222787661730491728852343531851592718026081720045380758520081792823953038959618838124100611284366387605778907820179738579540357102080809718199470990655692470282712368200688971658059095789915096906034705579017592638918233379267220483875842083866732129566182105549426731232085808671888990929157611043316427640884974328586401077274626161754805128718830600607625615413711839994450932788158843147922096205758185795892028039565183666009887144105689175164994005136462532612310620128629395995878832604164903267743770763261885000651665779671529689495395716232391115737053425090285091168845440594518815135383490047781828990443528745893905150294860724334738610316351813768382818973473217078626298098250865290909766033065141416960144823375511023123128915293808436493673035724624576433294350511086506878456205102981788150831962730161276141498185401081536372865045737800501831185227923006188622000499076574545511278838835638228481458856669049325175142293661187612991246556899887290486035374668257134028068236261015205961892695147938291633948835140683222719128509323701359876257391842449714116248539291927738134647615185472661772382445296673064475900801612275063432125152756691809206693756837694900569013241085376917409204827179461959871760654818474891085177550448699773772688138920378899761876615941934168238368129004656971245709901751785931589099795918237568187154934519360727273725937880543646114243323822568040771791965163686729765689371815875811772209407657919348991547379428644040417613001728986809461002937433910198529707249679032223435455472028128318651239247288105261833714667627266152140202625836777934590874891117687554097279958947109709896201730380881611636052125178504183819707815917018882601532396265192959701499135441946054538970214641319508954194330913576327481386138452649544333865792117156961114944470580899580401235221960421472745403159216185688314054448478572635403072753247713202674296782743121911625386049273279584810475249191467011826852728662744877593039609671329615666468250390148659572174107719706883334640175075491352379741374319790153844029495523749029186169697354195081076022005771894249536944003125380718573711090759441376213842984996116717279664874681847396328339958469907568168319565467336259603055558957267342263080868392548088287856205515916483848012952772777250276936635408248771869638760200079045285572662849211447696740659782443189276092510498717588824287530128138955065399496450391244440201657115471508079867972322481441639350308936072906700097709930715177125156095801242263085617496515595069252659729680105359638666098887940082455164224388608260755101471266319292334523471496860444750864106619221831906171385622285965533233163516019656533426286851482421481104286073044549828760241834824276778644025318961220916453049830953225378537071132145545039488274705640359994738807069636132622583564564570952710626407678090034636341388522006416940238760141288801126632485091213864069871632867910041537321893651836558136663625919187875111132476800933427465995200343611117839163505364748880259643473911304884298981299967077456107889790984453578439613609082376492155261297561579092492988490289824739450472811549801595258972750671828134096647705551959528266159998109628793243078340236946719457277368685175176751523398803114614052633427477581892466271303362514752285088062466954515446398787474152076713824061652642248938141816783975332312317617664535282206141117122150390936271461665915599041322075761573713748093751566872757833723997256371145316219081293798255432177700641159660474518559745096216035023874999729428508298754814436887693141403960978798427028579553078973812511416470578038358760284306021733484381111933449146801945164828272278100661608401046852075479411605291347879068970800235039378855527487184353660589528521482163686886690380846222143416044356433622746936904229946214108808047232158051940701420669366925834829710718977993380765896991489112574511088868689903873480394164667110621963125201371210290638167850348090323049343757300493561613580422365655833333719750897972920760780687475016593474701399625722092552382847272272264427610715410319886811364500837509219542566862159235626504659192475437108471685032232402204874519884589171911071226125167162087226088806001768217182014549696873686893156725277560934493055577160128847778107012145360988128801090245067911826435631318824971195145324577086859712111206337541719126220521605017883572624196135596817891483248611282975338975027353785401396123466931202244205059638039279789113884119494731357423857543055619492811336834438769942926118715900369091338435406790574748134889198061480289799464928780165422879770141940271711723029341052892415102267680245938019054045556831818107954597815439869109553888596925929778207096634071144556897138814555369180212123599685464745485175148867179916916467877386833207078594566484559853157728696649919122842345017750742901535672542299337041212912161553050193409547690493714163231075888236843628040113571947145927604163928826733777453880406317084810789547058014508750823195708095900455329072137957924476328532466254237115685233305084156172975510412975685370544834579459442554442186937626586633549511756817085007059592079224993142591755145766105844711273325721579547921952471194559102239199609084744518672692121209838678348630175070466591584193985310057985694740139927318977759057409293800097176912539730455823019430717106497522958867132386200318170943518996513893296522428695561481000526940435331907907409872818304433443181592043760936537519731839480216658381388345315109886970880708745636262861093649372218298382364810388467269607658178037863265163316667549363585927488333175763411685567388407589900074721913728450650670792311796944872078105120873680691792165599453879568596836854003884725020374129796308563695222879559345935005032695939814815027028484229418001661123984480508484913913596257235220078198400298739288151154882690380053404012632222644759531225839316899899672257433159346753823190906074763589393929758559677194378408100528094739323602704191898468726672977984471609752448420108455633593236036952070202043115519505253126277431008093983722724564506658235174035054721134534739824488489038030539998792353195625201107886282771295299257770676701187535678631569274898161467488478405467827859148864306422296115960959382858193036210384894055859428561474357002780640703485183724250031456140414908400379361712247759466328211672704518909685986696457535341895962248732356710059045371752912301450058348949116678813095414045729931910924629108638689477336069233386880159817774925867758733294577074883086087021930168242192839785647340987487570029783855351000681136688189062772526612691285286463137937430871035689437902301263094138428158346294017333499936076104767909616926177483437836921231289293124111695573268503059566297165681365946487109693632392987140523160699733699325038986876720841368737090905143216355308165258408243054231116358936355725929759254304124025534438954236427968006704502678232349576297776700297666870992071398432222815903097805356673976449591523366664093637525066564322827744670633056758431927141280305354026293829565911091124331378217367527435415705504691499327781144818268122398056819809220441018947111030974638557460645508907925311542564778520546034528534562275833430976512449632639077225071526220017607434900238236831802948113179569350599276812523148320948975008880657613527132208184397759005678389554888799219658924372588268621403598134598426087399401688975715905769484338691116899730562781459225085575747982831769910784829045752439181172101676579206186967697050086306855428089389112495815653841942487377978176731989186601361834101496735342534687520218164148972279087171070994260948913913221432461250489454713333346563406687107348427793891415942205087508556491520301701941031035772545679670058167607422312970818215231858013769703768251187493034381939536159928418615544697433742367698078720322640622334639856122701706994398479435227415955168162144344349024675195443015336347725682795815405517652283873796313144678900954601792293888273258235320955616716223014288266181712811991102772029172892586854148032888453470144609170575642621235296249684242190540189950644954913671469952075344254162710801130506689978020363961460068516126443756023649160797935185692092849920896393915950655304127451550470635299823125018334469337832795006127779567139207061300162929695616777180854267403654280985109533104133151903652982395060345263666755519929515318083774896325373452969639621250119186027269523756926650328600519271886156535332410733911938858245122084645074338108877831919565689071237172340616232965483114145886339344929275205883407388808760872042870304813854031225842993006319873271852747644975911713157222257348629392466896185392454891215071222559211420888386376673487231115651699999589884498025250977569312253493032294308907553333306351598996579079150927829362531594995254695188517975672078568328650906497526122356353905014192051558440583172615912225228300499656878244235427787862215641781159018224583012145362070865510345282240138519967577242155115863624098146499419274280993824188127587126987422462374945797130822961718291510197106534413830055811113425986640714978596285025818523350315875522165296405475304019282037031597725045037153691439300018771211536598361192748883915949127762820931720197659229747385587518280835102687533588699823284704618820297818704372009297928621362729480165732940694767549941754661931126504300480250126853328768918317173276944197742504986815254774217522588287805482943462892320242905261836329217513889510910924312962359302555684554552289473502891963957079410694205133473181331011889484357553185322775531815694713995578551263265612848189859969418318760450228929520139978543765038038561732587998428588212816759374521437230524363136321263774630115377438999525075035159786118106059215309943717304570999023144303625258427717692956923868030293056072564906382978325032689236570476070937121186439691151552443516240202371590444035036273196855039481515219416771812977550782843777496982737309975848852897054265539798768380925254564759204829973018599757210849619431970773654421730499123629957249574412140146204749753666375077712107340334000915528948491461367010994679353028352058346555962806648441390025444666740075679207437650896301318449442159681135215194628121884384520040717725529931088308326095369518971751146109410824468305998466497761358904190365818804336069269087752957260793512459748329997792358038670995652735003665231385375215246024992130061912970304660902963547937201296881175554023990479228869793281210051404587331649356521221074467963588301165631437306310636599433303532213932919690311995108592601268034862523492429036777241692797716684168088622106928198050566285948954373891519072668089549958144052914749966542548745803746941420524787710591709454140554326678605664156050635750306037489998285790976089044928299336362671529361611335354532210037868578253756735495633867633950319538894953673877493145675829121061672703504396966949973337710634293947356577276547925146435099801824601452573595136030905710979939629475772004644948763569997790018432477151693672930940575106069261276377583814891811731234735008312370795368231225680524941432657219920971827493725708983668949295363304667131712741554399529159158048363920728224657213590742394545164127458271059351660521478335892052913426941241174662813042981738484887204733021738997177712040657406693116894952963166010745608427621112012084595580180168949531818932703015879440242521731563412380984214206274971021850336810216072486289271569238166031962685029101687999167162971062439104350586376537495470197283751631988092393223219185565637045175772804006027376595139809958239677995820240432815921865507945937853527822987300954702928837337293392761040863638367735835199390818730187253151220063863783714485038690795697126407018164563671922054588452772998542634384707449456017627972600268093824246811009816002522424793819774972365583432520918270494579566202819386841510932150945610680370840234504745236077986262908502871954901189119402270522039469606900757864807325319695068761808857006526474784383013711006830601464384501881660970090479076788572545582705892066079681919545730438665310845776322351292200070885955815156161900492036213729911334079775447633674168169720771045033424437950534664032321461045643589277830272378469051867256635731501055211812203687712078686477210877838168286389569528436465250834534738741505290261017338035944028745457084945328584124937233578298676183282395472080658291237533504051307473561616694207007776747478825892793779055467319543074701775574371029066100631131223400982870226359686904791511282682165748902395720426392077280074661043417780456246395697451758560317681681022361307353164175575199451715472138459373852186097583342818985742480554065921399570198414290469534279127156696426674960198833650612243649116196138353552975077548236817726343574251062995517735104129798224406080166144078812714759724310362681594218832227978225412710629310362117422220102063994699008082019389741273540168041557155701435390213313104567308587428976245988853450314576307768940541767428743698667212953934678990625145979726176820299229015515554577272712756279317387746581409836713592481489639104922919485492768763799571914642653783251033776432418438745739069420174850011215129819341684656242292273707148907053334850468377528070819558481465401986299384861272436856835212591384784779271490341904801620183580403431472420675188645821334000399912279497240198953356393626746975200301619769865954854330630806681534537449506059552442421671500186807349158956267332990652994098362882341990267752369968250023780484208056505795151678843028381544721833170362468076147884390736254797304466450389185710975318794718865441305484769138484820520671017145546831145584756946797830721451292366574751660513836253953016436291540470072323401029659366873103329484950883086447450135755654138443891407529357585351114184470919149088588172216908908120145807397468830445541158798958105144547450884958470582191189153628107736285980213230776933588689941542766593659861762618470146447843691840097822944044212075855651026579425119544629926438161916924238568932000505332964668559556516273445988459332960220788512904297182073778196129907048293738453078880257707383483613752027463609489370383121297154698094463788760754752392323241478300278002042285035088683412306197554296406148486326979544980071396326220494794579630391055221821572835231008105701878153466767496173594908722980916411795787745339953272291731444675513797508874999829323867621719318375131325428346526598980207471516707857954324531205001082859688236138370171914192826177509076213268257768414192131248522111845097450456042160890100138259363562930771485416702061040834720216476815806700386414694598266672748022998529438129979883605823520092481502297374239052696276608097596189659389062805683927833788975657244045305016493548277105568129380404782839647958261118837651642476893151608898318578133725873020089785959913119522083794375324517622094620179229611652655478310790527576909763115194662065486571121150898362649998165125049549720625721844529893370956913433078505854301669516159360880470722938206781491422111311431383280177072074838302410104599288618600690187865362816236567748566007334083937996371570900333520700636066569072162667608053654363340389543779229851225474043442831116170366302141533781199223139065454009448133091608676855539263427702711467904841427958300121794982963000621039598940974720710226048857369038765013507168365290477210722429948684278379037394678557049701572346506465818889808264761584038609983273159721648770675577653698228582369884820000550951196181915161819207804960541896186595913360126910969328980883985018397176263938419023707557114986344463990315755193706792087772982575950349814263330876897317051690509685559667777671178223028610485632204216254273230446031749122655433828734002378190540278514456237973477041419123140970553018567816948186072415617919656744170767530130910178520839864344590148483915551671720452959864238476367802516723268482043517390786619872580469753287938660401865197547183551430836454983642459148005332437686941778748314316496838342817403411570223701373983958215576140678261353237937424335831512838142542506122624231968906623896325855348990287207011110819706958618385826996888413691991273005543847087824752172281985215932922549299510613055494645112125287487633418427085163304315434886208298786622422361771109520724067381763265542359252067908276378697271378743358185070063097384302991470531311481299937808524467384496879917144792034226109798779910158334287991406126953248127890419660407399399099898636735308029628608368855035417441760700637827885723362150851029729356403344128941587161072016316588872592724463030793768711909766158883221966700681423339370617259403083967968122799865844376897687403673028303219418803898097767332534965149986259321589262870427762742565112169933313251795956904550999894542856982017970610041749027726167725280404964349384872785805442470915752913764922825072109635805299383490351012483988362854503013084694957391176680265317329603812940701960011902176671961606652880413513941267237332628273721232112796969490236240538534873698647304833409162786569189027254632049590525217022990962602831398537557005741369795160039175916785739907172422229931054222116561630283992822260039719183498976964470389804617968198747061741892578706660021928768206620132459860973568367814411010675447498548314611831852101037729012576145720288126187135255500596237773649676520231247410967667274345267886245114568407425930569583372059831791247380195572347785215166504899982914262235455652797923440958505514601150919343110391539440841235034887530046658943701902316598123699642967368230663215182994464027987016134572403968979326919286027151144165935458042684858688890121102174547191493451055922516879262326992639975429428210690389953187213525278258043560497259314096626866902519834254697231807521310185327958918693788671275848967007391594363731894489355072059355090919046526902313333462913308234271699992151295691128674420036358948337831003544154944749125684213523070622943313535205700767708130941108515462895781800561776977231329244324918028287023138506074141710571776601380035124226529751258963688017682529293099292130090993119989863291680765566559899764502041227259194011467345379746937162028800597396547652193174777636938305612983873907016133888107300211587973079928053665088307332530401030297418077957710902923377308592070479174944986269906809005930672112949719519712447638831122694397821834460302987284721319850270049112386280453528961260788265823827249943819156304513233600592250787622747791675152874645822575654475640244911797507551808157994957630220402183589537306465167607204538661979848383640523864372898970662521254198100012248107479906139387150240888207920054519176432474624261523264104661551678160177225794767643759854231800660810858887656882796865622304971054465924782789213791166192713275746946992641099301948914013827826399659567305696935640622148233020718050258944181960417506387669662936511483663172100937299850421583171359922354571332712662587704217831399471926046368897293002059178563007199472166754969972684877699979040125731216956046324016056144762506519120478293354526047905472994799139405589852907054414800749942817158295746083980306787908803726545027646990394436555037727513793432764095370863547054394490247522216005535546275660711357103517807759002002144097232953971082270786512556967078927335531554438882806827344665548963846645606096345037435136503869852714030868843730410149466342436163881754290368585738108846427428092026946287414746438100833294863859839297448460916370329897867228606526126999299626333257035959809511071489980233819420519400648756417739054523452535699566410024872261798122171996304830888755280824290985191903011233535841299263631995563048428410307245187081824728053666047626096134650198301181891633682654808273901825861504046911404885407435439095918295753175392608623830442996690076308695106748398535340223639255927802195482531832891821074085257763563548689457097764888295095549464854231549854567385156942341777788624873136574079158417666272406795209498875337583533949608629340317968703475441490582905882619408985639279281303807070096808706349503916657072318790253585127207533844241247251829682271913502742739519647306850297548887506509250270015209348213119831306918878332981695223472392624090965584315240125793519929576891781029127523211137982870086143769921532945397314971096255442099366493604960954895252938780511286743637481750057943019489148909564818215364951071213272812212506925214859599300557206855582414017509973439136552292433477999784740870836993246482758961907919346156826609193429994869713385185411658686821146891826212808701160094246031729558093168400741109449183227505694632619723566391430845173038537072029989406345273545641241247488682303765731196776271851408546011241121536668708215451513640484276457012102182852098460550265136396336710517858221604495270086259151885062221111405247801307464399462921078877643545754537854463139241191835812466673043713172062081804078766047451610026724070746325891884212761838510089942801916765480526711829413676940827846050042622459456489823194306867164010143677785827025683709521222941775364612540522366034996822023933197507188806791916256473512643746351710519280833298564250227118338644297552065201461948859800378721668658004638334416967511134574006709120166632425082926924855775589876189162688628535240204932058524269011453915217388685296688061246602813974027124758907830099312592695506762952752464436575936441648773279186262376433980454039174677547064279447802436817198991655942050198587350118133248249209011261919443312019809781878544885877945045972402225152297382566114801613307051308527780096807441950255186757377601718767824427925087845005299224484642064171464189259705224321684156337904060172993454693486056256903833768964899952627308727405987583047245583739419338898355252727773761805881837939087624673528886056244411200483768775972704888408444808631824937833590628005565361628389269067834825673355956026391178691117398258734298401207480851802234196379443702764274064568383866178216889282000719891403344506422287291430356423140233407328885388527532201319814460259449048663537880808217611801971569388925324655519959189369653546490869810357988106044303197658800479963383336728104050952428695877376507572193735130478014085557976900711685442757878437596673169592905676155010929602070798477612483696726133858493954809385065201640134921749544295855564659186703062187844372255787852002162178143933320831883066820320598546977740499364199760921818373871866798778625703029399184850961744546533373129417281000118436799014842210144873525252860061157755270696448565013571685947062216840584540273752307153933538657985466879607716148378517674423499026057639073846177404762708987978745537256244411067064651539888701411186144562349978800817494100841154427340110705571857130343552400239485282960444678132678126884857793692605455537449052207001503720187749282505619164414288146302817229751467610723395808686587055569185369602588891740902371909629289708603375720762794957126295840136263903763761491960862758388996783674023375801167059298035301050768281033497880574351633280933680978470020404700112367068904361265716823635395268988569263441977125241663211203304380049765520903244533891243520806676763360480671813182578885946958132114221590878165969235333058893066907496950506407845517457709491250730643832662196874804208805733196360701181498442429217452904234346503769922225000099944747255656547427428420395995724965822408665169293521902776577278931213668320454856024752755971600085475174401822706364300426098138882885120196140610368817439540745413256312328929878085971498440647515360712538160764960687127715757967022806691220350550397149936885477404810591102329799473858849383391009403166823920650691648846645949172233120271930967780939109548588903266973914901041835554505874984166876671000422353844400035590146893697966803233262608513132707921692485911225327667470475239120556598906212791007655266968184480819919127559067950623479078858419334312386029487198773237442289736448097151500027751859503791674343012283825019276283596351996210684323078373331209171781823105235005145916459577437689453214307235617045661197496692299722233662278204158652284505414684617303184668991897741410864120601040779931888412314916907052977954117728157296679722152045149530579070175563339871709996517082023630023501644741915516579225264811896188112040470278364066040779945563594132613998635896291250567423445857989403732180947523641968655843296582181815919275375203442182482681623684209022871722691639698058305990452064679457483725573367361266598777542477493808857063790200523696347236131721587198441698981506165744355009052715779693769204225999284965755707230624398312871676332470084530528487865085869050554151366359839800901648505500432344873781617902390177041515211383804126053757631638243921719264733130416219754835038851478094475906782072789464594716494038690821056855735601351665207423651678071647240949560825489333823520438423248370907168692639901014728978939967989932991095141303410598093093891958683439440970696270802687080900435334011660078708767684379519958499394148598720662332521461100422721548693309418112447818669779457624840558926295604008958535978981458708032314245645449336113008559387976037539408336363786023675078027447715590642080703159413704923677930305959417358036436184355982396480364590798575044234210470792396612499498291479518971012060783589934530589351474289787333829780971943388637964024725420568316342015757792895143068895348957284471525381376346586606444751754134136567754053900532131638153010068301456587875121562652908431407388942166350365521564463522701380026578204354609391051516678617897956624846712456784403698053121461917938942704914342630549449750950776512237736352642791225246681025892890433405377839862490349158844398753919416780307235224497646423941158802367970389332536182963567792965970413086794394647134807918617049503118601692778753851271210392951967673195431694142961178336281424124227965975886032751807153291697800918551685709616769550244830797813457421947788928052721295734643074816372271508283301704065401764024713514595701753200227451903881817769533671272892619858383396019402421361193956347342469052783623053985767773943867032596644601971037661275994664862699346140612750600564912646648367836677720050743059902160639582168695572457395077164262392563091788597773272664125399178789746424327236413690827707465194797726830349290887595852726798643547576669339868601615471407466625722684758517885943699826170760252957205611929953034065777938654791838914589892948538154453440701548676803103311085958103528905383606013996229536101701632043453591957739108030547339812312423505064737370872647305014152776949070973247572271047730196685560444381042481328986466499562123964677466979694134358405867630797306247915830362602383460478471539854529275514972796024314914239699452213553611255030351759803064236760284148480239604329317976522412899610857542243897732825482351198194172277727794578719260764949752651782453632982516020141809384659259060119591949493910583326825756710570618553564892825956439977624691480610772834562441025052565498931446702368902456165054765279107238750926246955712602590026929350223429944387344629389900708006177027685715308491484289145265863953243767235710874840005151062727656864254203543494420308496819609742137336006160278990424400427048024973131841795970490826239777898317978896843170185255244928743729862527219760290804854112253578020955349917106250673298913662734328631134379491087566683211604540672307756980519279765568123838675739961132323821948392030669786974820313775433355929513553898739567535199337824267059518187713200621714455886818606801397739157211256895509946690054232051039703104661819649520293437485761861029631801967011881142334641472254014768859011790549213118488000454069726505837281036602814193254602190767745450513955687344643890789593301870186278560101556019385068037532586339526736582867323575228444237173364103609088909494680327905813223005714549066742352443099676789899109641136097864403376739305873601253270417205482594541169244896689842460662320877951644874115938373280795407679267702258750599662429393275474975878615784514732123662413304976562738007716087671520899323183454691875576878694603288701889535986810324152125801872931922978779361552260623868842880961554853290650716330409203514132725565300106970389905521270390938497482355561341105286839540172753741805929906213426660687641759016770491329006733901110524407147014734065221694206544801609201873514559517074946107350447109450430837230976883554338979089967993938494259102618653541868779308474286963524119467300397402090437136277372342848442770740908280245329707578261000648085022163787280085123893171841892927115880306485114346193208771260108703216454549005404649440861470821612545435516774207257396891338193864753794317373014531755559377592641658951796631667632777731486281244806802359681683075672645371516623305344257679315381899533394994874345385141405207467255577491536408680879480213742437771032987835445062431769909613048333351765699939519063034542738535003372710093703805611348682654268151273661829916796482538816823707739442414382369421106723248195350368153229648140465237770539116575303187188764743306261608751167031863607753939103961885660693268524480829327450163619170634552476376379642673802236134692008043153966012574791599238090790681327264720408759722683705432919977824203914276315829869822839662109918163802331435130287823633032309895367196468890972749339276238962325602878230936043989918443467936902894166307746885771192685787926832835314146195194206426086244295793852792271803072098569158395748631395380590227996908030066732086156641625840096754323888673558938456709058847326440414692148972325439276811942554879848980442120860812541000647352338891720983847756478671977274362338369457006363411056806073892026096095874273093195028779549119322145202597442001105443239126507887429949580908335096875946601583463518043595308136488053754202045535820281974858852096208329809579388232526520821639367608436596840997979503307749435337444738306374215261703377784509146036533865987324524036646707571270354883634287569452794844058066209426019283784271285871802809579299478997248436111624502198996645437218677372729096956426380740282978211977742651534365816701601196119188843760131660934767014699567245939298769050729349901835173482574320096580858005611464675730018822783971142617200911372364075879365345732469721077053261003682140578485376101856207530105738704874191882767015418066395082350509129200886773589748170314198753154242934877954462839620372163264939814951220966653887983218556552892531440623398760705388522516619712063863910693635527378444036068248198379747137615385210628958679548775443529126434929280333322665115214827129513576405547567646006797261433887660593439690589818107911174806213571348680937273049265919802114181787310530894439304744519259974474693358373839161096763940866797600712070178117104205147350158578675838037309863983602770125708137363375452906926569119864934291941294760242788061416302527936334099988436551385870968121344728718836120753767106425026718313701177960385677425759605301082849175851990335135470644870024750571172514904967040027620665569916477802391967891500247264181139945398751389355494919200747965207639227841548189692458023021546932779867179210384550824165719084324970660717705440034369316488290580027315316177531119952300766445260271999847644429167950754245459379378428825020280850865053943411861322780134064684021589149534197260767226562639785841755397245274071260523640200473444725865717311038295637099091371624984029639342252453918157272684518021833556282163161799097039440551791457139048424234102059508458621595091916146116468338979946409544962113391140579647656127696547937403785674648946116926447575595276428267401760217247750448105608358299457803493448002299298849118900167711576732581955016660584524991433147579625898628997209380320417715098365423315628046519941745423825743234769865373038620403306606899614795793070055080614814064603113431841239333774423941747052589877563825940528733217415634536589525048773193702722232220978773578383414138871039327751293083000455633377697802750683028235832231502408431315624463165398133119239410992639401809981054066885522869399551512117090413152593041830099290609460664491160241798826570066876960719505648387249826104100276874269979956891777669546205172174195987451695345582304222226728641264261406470846606421701883100091499192806502738539268028588943102983815741254542087732585386826697218886460738477062612755328924250566688635127944746885795513567623336453339695753001092466344762170265522423072776014298954086650328490396558294154825447322591165747656109782568325642268357980316059799219464361890919962137252617888874994984396825701640049871987382693841359441277976325190565592575369436970212219182032535642834327094375146135136543305743474562167374347148755043929567613802988058466466267529314377841342785605309220387498983588770564672785859524192819409426991039741873997002985716120827031039773815119083812917600659603810289094472965478731312170389078663995159777214263125931205404177863697635239825804254984078895070493663370427694905839247284786561813822855363248759431937645346995057050878154302366091022577770123886698811095622452183429527513604364378970087587355595012947044805387036616791048563185492787127586311821742526988095064895738836678270894903749102077701478938532839265195188712795057048716413172429022054273482952422340211738121010040788835753565443452230932330288756098565507969909910623096909694808449532024249251446387496408454360292699441669031349575889432289819270699676861278969657317607833142186341920428485274292300362873842450288492813482095058411877728963476337367888933812296565465344398212826376499172658817728285941855487225225337588356177377150672085282241437566232342985317657839412112242213421720840563019629664561251448458556574017318921055436802865536610707917915320503793837152677289686477799986170381900581618119066548314194759142048139304359155369726455869691809054901479171236559749746609930077519320291853723666270686226509157915126589902197002871785696815433555118404650655037559666710110372491920730701525072764635975618257704604701404252842196327154664061451216345300262839961430306322042126984396677271685276783391762555683319450873752779398378279813748871458777774415826017155775333441911654399459697466636807674559668560424437295566956445035771639443953042585995564957496252151711461419622546921263987984905269982960781917762066303532055903679008668813449386855521600012701717234247041624426000393298333070513637418134284534057194586289040669343595883872271552728578770311333027129097539165219757836791325723241278132182292348008168726084752828835997020343019761925832860149407715563236181306161512056697913191844808546700226236621461952513848523319032933773376111004469352142197707370914025477708418489221499138782726636909033046526445756630157905724364045058261736287953476919676578732826697745205207680308371466273135702217200129124946382136349317728968340300717406623560245669405517505396161897078338205178566727152025845340017819948413999592103194350714007302078920999302982863004075931680047111405175088134144897205298001906274993633319183572897480819260616935652455475018777263308830906420434033282260301534837235459165653621631219052235168614457663223407735474538191052292604300027399851360344969518285130918309347739356588456677261756917130530925095218339231953705006941898967257274382923419674932584029624882769986604140039050350538058603178235347734151323433572306108438768909672302209079519518964918640354644889734927014195719922298749105943554676529120366504650921829465374159736693086722366771765004896797391668478309179655563013013058685359258437816399465763434928899749962669263033527884472232607510017971539354997045762462590544359845917076687695462315627237591342601395764826736394241993799656443385231716658537611189898482314165701259057457876818139087339424480183310779518506945829895320047242014734543472555733682538976049225593117791292305946625793329328392638423113974455046082713166748638157219767436234916762141494126639766568750227843711846161793041723609604478617178898515498265255987780512496360301549699834596851680799136430745389452889345289029903084478154308388668918097478708439916942439586034386099717859746383974018986424378388262945374568216621090775093691820702575201838804372799033182571933166625715402610194406573770750692195734746119601611823485053755913663313516919215801327762890227578289019720648009333858982175082983383589133453390649793577144376107660085047558629170725039761625668369331512886718817124543617030013006346312934331292501813255756238309238051242503076919337411689420804523053698348463918068107245344003398240743857523132774954812456550005168343701840910411652706800490704758569177688521930532513065915471370244497223385814833546989238049478068733411082889620841630574414599500713201250034441767716026096901342941437013584996721001880377656696795105676232409652241178369530032246444390239248747710440603215390186781685909021100283749882144750560631919907309014419401589404477858607978537962589183906608137141628692680990272049935772801653131945292696841295615246641431257469257688352164348768711707344455506709821506662312393471648140938900205285967166196983484055022082977708884165476026966413313829184402761987528164625648358791875445316572428475158415127355042226508935838348099536261260881325991850930943429471592330937141539341082570526702488753166146143466292657145701451346057169340389939622802187260308149256164918025491603909091654200293244663673232738104624639979635301433693576789433786431647773938460322295736473281838654595518629904284895351905503368016084919578750137507311474085887752232098379101433176859135650042235519156932747333506345945268551432282568205168139790662866725161582977239005001514131351910010235189364984596933554681482289241589656394795221775912357752803188366339346475878007964730480070857289736281768875506406378425306143785939034098667259902677515569712469305104165572186618013385600772710271398440464319009852178093049164090783100450024201314365125375544294837365968310337309793295682045409380265727671335040627452828592165256075383985678278650730458587761712155752985664317022715388109377112386685447843767270433230729476631406923976672660833298515760818016774438111133876816292644734370899318526632246244383914970508021836545726678659814758950011470685289298212140019061279456296637754739700383269003589247059396529415353525240816907562942818665636895265716706262134977787275696128684842669577261447602521969009971041791458015573258109744620216335793928718425272198854357142078425623613484999445571034446676031120376681537193586993392290193797278025952276471524288183199037080607044460778545467544994056448503088815030299815517373869297869373387085546969962339803119436219635075649435058297850538222823587808408192190073470661526951124971167638396407032591390024662293968664993557873792560614529248369913962505707663925784418055350766708314921737250408424765125744026863906522231968327200704946458508471325644314786204577744028601536512721111982065361420385323704550414333539098597361285115922449746810550880698103107447738185369349611201890988875030272964162197212856443954697052061177117741274133318374294821960786040996863381341662768479412899725785069035159722353814194070605964738994834224418922751337261414303371815132404732755493222781787070903610969996015865171857733437917050238182831950089698976159183045808792628677299295802657765259933473593568476338494624589249400204501952248287295979826882411824907358244837282907869199570463815343397441840489744834576774769719445041139850601350516704991777197155191978786823623032924010168555573243304659351180787722637198544658121118342949543576508731667746376298915505462307331741034722943363827062572917163522253288388603699749027783118022262034169473834915991039995848895160891313778017926750214723790477043566615265961106476626287690404729719515148293964849078803852425608392605969641181642637057793637026946295441568773346389797278841465254083005312035289644107196269658593511477371341672069959680991517930993625725254591370278939637904387547461727691496721656834487999789327658418662404086957117888591287809749827549518309022692709028565103498850200554392413728649012029329750125760324673140497663974970791931419655420181518783752872050572592990886756538846336574710145225407926196444023656192509919023053846144099132766162070445485607507340415862178660394215777839724909384581060678214729215638680218515390792155712047924882633883006277754979707858202610184846780188850834291353511782490468863589828338077349660200291533211523986990813640071705647467936110235023109123061489579704997328991254561318809488432923401764960720053132323079960709743395759113802942994952963525875027122548067213132078128740074378202490497988453674902734590757437643165010912315357032486006907645092363674470341908150153948513373264785242123069700384630338519327915064916608697095845358360210706325117767535558588745686133241970969935321298387989649410236318833947308040374555269221965853026338312460289831559109613493011482851631915320082639532968114226014061074835908544312537183520211878410822314383569725643369216780841320430164880453416436057639194594536346559321243307170695324385116566216916246717128826447297372195476826053455885183296572423744322479080568591276950883372195043051054370358920336000039989504739042246349566464578593602290193433278433301156775899357387771081346082126218268950603199979002071141697889722214694985805969388339459533699185885714583149752992194017521473179611184338915500008825525168770803840438191660121064029462631187430170152325549272455901164739936926228998525191621078237939315988233298017670282311847248802650898819526253868390553277658604164918967796540244130792962097280383339475127728767930592198339745389891246680116109917011545240165315607208295103015566081483307676483927117266528809922600785522409390508980754677551857760826606165529471194396617407855140908860419487721935794210738115511024837066625200994992689612143832907622950987694984432351404011568686224792527145510170699337631785251844485052748362056393808735097541815803792623933793638685061316967855758571950759912679678856717940232620121123454149855602850572285681338067106846398898887588211989592146808892613455869547737549146896467526027265012721936850640236106121809526946404219420055703188445602381777868551558750650796600947535422979393569474763542385636739640041284227604449367088225158129917996959355738586096762755219173177645575452146535282680444111205558618900490854982426956735718959825237680759161494629527111910762529486727245613992691954970803664089039618857687855869902163088459494012013070392324055521616555744254005217369458159974923739029700239412438882520179893609295529432341070667722131915747545985995414975340709110874181650010730886549071394259430628333190734710676519282256653510094811552992710346583888233849103286723695236715318795040132383641781861385105507004380231284539817629671843016321095585542432214503855095144226395575973449177609544220195132164124842569665396737157509949193808555462372608950845835230050154899937127881486771905958228431136121003911509103774473378447668948916727764656574183679592405742314185464598420625824873227748093851330057102909580323340963984017748081937175080423569391613131665735214179728204736543426508415268230830641036586311962570686514100011926841450319848976881403256466766563727763274284596660602935270126264781648914135705025564266134116247931648010069760756003642036617197602799300675550703896650177746790098077150847328905147577575958389362735731154856380775218772881588610986367816043295411265390249584033621152962650717568983690462725489315679763786156324058430131457452585865078886736346356051141470899779101787289671900544076690161276092551777984687630192530470602724550154936303406539638009229158092491892307002950912015684460515984293774531155885981861704815947912163858006903551544502410877845403295249117668759593316400216626545336522598459213789256184627172157377578236214457926726689479384483890823455009532339612260639921436404368341007712236562011358123311974266906371528029392736518594390248272254013022325790814901667924979818394564657828892901871963899106985538312067275522619845171279176562823140533556547590997905397122457704563956017262105864393496136005708495953862491976297138492451209535657370310036785453588555753105378154037148745221210499790810604988493233237097890905594512599084418811678532000845616687746070994483634778442233530331721652568599790008980066221860109050776646043154081828873204305213394427686909707692291289069276191515956344769923924283602259371907650628126174900797115808727920855260185762668036144672955114183892553004319670319731023762322646738216076144522013131407689100408471859936499902685425245272839407744848041487650939386275828093034638994554349323451661861230913084839933268554576224893323061004150802679461306836367909616560354195424440989076032777096081194005330208471476489843801127333736476319586778782170577693530212306452351847680803553083059182673180498640886139606653818222381481639961744458368193869503370076215380226469869732429563299667864532994911725780989081617164445199770690141102981174159896826085546597490608393228625724316269361779407889455268355471622695663098845366216347814168176279660317122793101007214640655300501965110303960150715393441149228461626661597957168068378355189541910956620272195053525247125008492839289502881003305924830746061943797972011102860726854423906505434606654305759030230967895834554795775946018664328703723554870092331907198701330017355858294022552918015793509947812441692047625457082469927126170967243065565996810025940115777383064027870139691691072590525367482280227516669673630099181565121506276218701119362318632124401375489982001303560357430959024488633127192475780465013455158859259592370498245935472297010903960223222252264824934999787819325985769195542494009999465083339484052663530276397576452972152473841654960473224785935207697070978761775757089962147727728901953736475844369838913138566075698714169828910208070054738957545932220061052004329062547022670681325737261737936104466037339467858943838492094847123455284029495849961942002304738706639589492115396450647577380596590273051639198568023750328188258393043094152809875927102919292598098526142189247843244721323520734680641911328316865064451538285004434145614021260582400481808076269377367552805595685099221368254529014002512882866687633986144863142644742884717396206681698295201580312580580571298265851472651298511840177314380837532827205377220666140763537984814406259555667208184739156920828380106499582607587692273463033505233543406538352329986045294725935748360006947955543806224047186021196655211280380079742413067887193470473996132175191059512312177559113074506651426598938378925622025618960179685985336151704859409727988320404719769798244405510348461360166674447338131006203386513194313215238217886845499645629725367471459019427014582215135580685003188427381763063956526902143842616699468764073662798744732354604972860827166123622135488973029189498493780502649895278672048720124143537091003176350716318607077067563949830062860382572285083159907422638130539849541214227217703831603581653191212142069909710503266783843734232747695431222786690001477283423758634108068290738321077391969205857649115326810947404910964223375146739613208987502362954816309337289413508807747181033305056093967304545978891466792546382753054512619284521053755426810194715587592153659532026523821690838302045646676817326064142344014386910882007140546242682169245395949025481980052182728572580719753733564919886986649694625307861007417299148883811679512261028936494856964149783729330571552269600689978729551310723451938496137141804662331595110122739918097613611015152659091225311169331251167688715239474162729295327774568058526458612220722053702453960515448193219412448885224364774341189522364294267650547343950892292348569384291670851736892501951977148433286064608570244244157615173680370324943382120706005355696983710807430862136972169608631550121822077733683210839580969377726648884584024456597331480818200213437946483443342578001748014678604849360905114060225048040369331442105302797274700151198475228288577319758288051884546963106234567642989256843232943919246917530589234514528175812378781320167949527051771406812403115583003512388098040043802562966699578739196739134872793442962455470798953264831530134407962159321643859493825395221320070254138364812849817224732371412304852685811230456050608464279321206896781845906035655389766693063960845022754638766546572097398906548385546196487203635827443796441231279954922136234218827171181250034301045674626246432357603386010597700468311783423263747200893164295990993191610205845542214948327154294297562921436415850750200825135372479723330822667555063320298457920410820820193179699965685794647337681804421325595028866758884655308767447009091906954684155554852045859646518124854175515978837921200060631221918701698578770598141785165168862073739191545383173931328067484303152500903915235177200348560104221202127257620316372042074753032533433562353962929870577106259060868314350788330205425223713236954932359216510051688411728794424921008081136122109165736416154806690826783079535982644157435974506705479519978751728069259279410001083352633633725507977278271189862941014423010260257761831982593500025448409847295416533354535931863593368941340590431568432084009962262488692011702747337285752550922755795163168665528786654610924843767623185697682243264224698797320483353170533008021720446965888703019112882398570861499923387098559289736915763520245035803234834771712747661524093097724363048484275822613067156343404697174059471160339200098953064122743913551947055424016950686728133624594095296235787760677961407504745968285613219958508070270596080053136930022999993009574812588208635135153099852276008045068826286003986660511928648487665071626534522658169343468492542082051561002501191898996504820210854895005390657283857264591326535609617363896783829872818229650306721792674152199915610420699403480406894828865433976422882671084543338730627053098655622315572615557539498157272710803644726693355987056632735185601489440254103301902288054214470150377453164713947234885523630560346586358159786644610009412287057827845285603479696477052766678818832456698448047589496544001371073172979860097296163611695771835183894318700864387600943897376367407467878550675132426416052942422307732140431394001252804438326442397008265401238124190329804831962519227827433053338375046213678695924110160097623519605327785279529370064591745447270892003830651350972466433652388475409233575858769609635550178086183323845778922329896902993139621538344254341553411529096807050291648804598035934584751038985851663523224478255306417013096036633702915581429594425910520863051736281097585626311653042971461362054114543410316210323044901329258650073252802948237109728490618562077870790215951022621814855263060766213805121319232662295913468892811745347633773780949097486060266326721793930647477200506012141501787555124513520992124724834035107904677909433460404994331692916853972491195361384388119098264024831103704749243779501117732083911217756750000541692900095480188195658787888234815311762529388550062879054701468542373212948172407878558909746514658276817764236110669906975548703547738973203737240868887419592665536764253452402994884176382737888424789677276486112145891721839331367087677069669947781279497388061090712073729219841360176562788175906123765749457566061408787649153311852170234144312676707701331169659461838638388839189888671742557022889458183988536795494836628228917562618220918949159271735024086429114962567439233418825975729595720435600420330045818757406557635354740706760198645432970367584224175987113151168817553562691206691317746090894633017721708269427671129433868089409119427860086361383763181740109863076228593950758091156492568858666434265769182502815302941682148582518665922403045730808884156776199350133309821857141787320267168109755255232823999181264433834896945977525404667487935939770535505625798770363613832584072792526881513000921169799142832375991091838712544166067148683469359026379315787884614113026996201876229753332327917054415078541534960902072459048188155122711548872764741624084033365891214233015684317958589972066171765233666486027006889471114892297538943688109900614350999634793295820083197433741676885941770396724661159654382812726282059450776090059626617628166596101620514860370026247953001597203132313700414314697576302680495278433384187542413305098547226148905375411253905413020315812632204231632833186592016934192302508907469308927887420532349451664230673871909654788860987990875393748945006240146513725974397308768528235564705628373026263028786053975444192006747321382493930100143091500074240721609572181552818095204296864670358406668863343918426831930081270578400221724795357391197983054123385193776800205407803110905026566277058952676941687867229070187355753086859498777794259464293291286197660234222535449376797089030519676176861235061153555327323369792374866641549011094388682589135401948899817872713147954756581472927198054842998822943764990978988380913307535244481385286167628449326380786073686781059413532600531830549949152986212355708163307826276083733567753853652079488592511013482926416454430998600651032524849251350476355750259322494312312123909174993547395813094053231601459546427425785144456514997408913622924555184569077256235848345193083682139239956366428971216672889242597239833212038443241246954054429668216428085627893055754175062733231922629825648290663752617993808625198907001673060018366416128965518329190662801956776460960559445607584722244879215442353151588062411088094982900169862066225238153024856337687116899847718195528956036918510145145259037246183905312918074571689599267497678352897070328513391733274200145882037636030415931306886842570693707305495549375981751739249902853711864919572674523985937498646637275036682590598717862599436400015267336112117511073690691054973438172209743509093064998347007847389969297170895701349517193841932792065414072460052376456488202294039993101423936001310167450259648115362406225842951767328978015771156960706199164287748315013377592698828666550837869602509708985608380457689460918826550783411603857990521032634949229738115688330539485286663247456962793609106568981168077364488144766607196736428417404073991883751464374890037178058033801968739710784855510665201636951150464698508732024778521549355513644465134279985297123909448449721171897818014856565572393413972614274259615312321452345169876317616572417267368902822465194086986990099317680639771724232475211141023107963172184957277197708560955108715724635868350158915829259057808980943664074118993948964573965568487847461981530931530088270880395590050664717759843909372730354770126295718153084872122282171302503615254374458286351196282373838470979185174978903234675533022460080559695144215906568639742317846389735934851306475494383871247833911017617062480345509550679938897938371443059755387020855898569575185078768996678666351343645967067185532816186919992698969065198665271843467135155689611972215521374468542021228184786515928420236115044218820514042518552102453479652866897986377664572437876045763044552724801287955336585220340851826995522896120711983273432595034088953881792641409135917055440907153827251649762262067857049335802555771564618289443048734350805326575792766535819606637983083151390132753501447721192743136814677105761493784839096988371059006532277837715651152749974320503193589218798689345017658309482700037359702880454888778214382063096266036210859865461367065345957946652780786005135614995992318337007024408071534408750572134065327842516518205775247716497680866820422422304846496797593104210062275913023189713742840936741271755018530927045521538401750008770837191063952546740918019277260448201718913039353649993711674096303847006243680231347465181217994138365030905319835049315576701177978567461926435822386013265789359627107954251101774858378923930270802834999941613336899052628653477153701126603148127685612720992202646438898653673888819182570689806993022381276591428639442461653354711483053245840301830774395538518452193261529528713905738888481696713389145137600081775524503335887563748941115196802688873473413796481598907047004840478172322799908156261551852331019743869560611550978521726058529281177034521936561267940891304424885755936024846631120003327906841548510133729952665385354195718127133343408742098031463870351394882717029070521992963954230470546482026462324891441943898466972373522029052300196281465278001438808597852412610516658024287045311033770159440663153864648115678386618361335173121351264314505390755862759695774074624339841503362123564261811372528924542274592333570083231639857540178979242528090414117718378381417218095724833916979776960619175268324625186655594577842252689954257321763128460613128365503910661649907852776786846341957254649224694703588408160782892997194336171243190883824861898771519787217402460442411744429297272460231973135564171834337900563452287969388465680828361594994182660493980583275174872338467185548667213944523003289896832131419609880431780110918820049095290042163906892735084482871156124156621053646939860394860185069102824842871145094710201375242948842969293240187403517214563844710716290420550470915720183732782268618443814034850830661459825757629613993875716014822165644383874958462981095967566554109095146846175623270918528186774073177095997293116900837022426252499687660282632955472738686926737574076719205773763020556966577782755165624532490029457694372625440724801727078963002921427094920326634254088326307164623600847577203113843131845447115525817171412280679874052660136798957279051688185043263380342885571116954250946239991675147540437665878503276822786747900630174207906864443371554251742902871530367317527247775477617699365727277817634096205492749343287479503754350673757849050714956823094171842495258375283410642711814470697306735540464275760336684303412387317018804305668803818361827497376384782318865454583912124875572950534713321694359692349879420809068020539978163840941573749545948426908778763221233157962959606901534339600913794967027584714508422402072372133387888812677150441300175447012427679114412834687151040436071628729044697305891938909881799980131873161698796520732457218908639932927420132018977248513072607215702664864502914873182809205419309978352243916931558434821611427692630115592185328369006269976850280062929708810060023297396582231448194792647502583285654491600827501741783509630715893580379039347114117257414970148234774621897821386018795797906853912678163410420259588120976698037223880942893807393051991241579572025637290859530050292753015720556819739919105838952980637517965597925167602513137117312299767082311139334351075490036879084123899592859749813889978735964722558835165202749160017472785263813415443008001694283977647898655748443247494499257241648258843587226330716368427172800697284928595275087104132856639438625498897796606310308507348750180586144415589920914728818435328952425518958990616722806785593309164090011770849891154862882472339007613308833655975818543985293898260503354382975135120249017210979468224306084825751491852492932774004606933987735749501818187727924918259643444120238707487268380626604330298224900975276996469704243255400189872804385241688900782635642433250993065345777993851349492542017928631205030168947108147452480420987002168785803821073762283928406235412164172944170725121575406518143699123128617954111765228616181773300913050908106415010293827115554002057051916744879543673850992284742906805989270629532459418587135147887847494555667503469603332305598716646529028929514750832351658631564306338537972165437252559807802317946208886707789311793622252027511123855766036008342796797698200374373210281094724648098765353840458638183080132498162042542385917186139150388490227063477592969288431687902510368145434926057847900055113928370942471496616225621735830120855587892282111115137638719012316463232652923771078271975994732286641271576961590892191216066322354624809358724697827296051573896488808710129176177852260878982085528702592903566412644319983646255042058911104117200851070249742004299152229878932783919365506776678933668226531059859584364976694981250045112121640140634786858327880219818794864812935549553244530273459160786527422231577244072958604954231668116819279733790344092981782644179747687761737679428307300919324542677345546768370495698334196539138146655542934024451117125117609595222537960662210748949515248705185225902606678999309221155770113140378569492636415983148124553554896754380846381939736721802669281543454344637267660026686926474240342312980414993887143788509187466034392748894693262614000535132857526040292711217644044090668198045551053339393176090654076945433561364403030742100990942081100324407120319443912877330234559357803435250644171969164422184175573402463166770566890053963415835266208917591718863827122124077899464312041253095696677087561344841455324206308007640748647628546232690400550535324723957593247376882708998498698465405950902091351436721882977228639968426225281333380958284337962775786532189845034430921638840371400770730040591872498884629897790394420523060784099816241188454359578007429981398438961556466092213715245134570419733064781866911646395180563638054049826868076811677807964149121797306457659035835821869734329998095417066320497062286802702225452167227250833348893346095539306734581598167791358011818188964933184735739381620855807176097513944883246756541945548608234571879936960222672855808306696963619933922854013958540467139803266913182802314560390770178930789503482788866637115941017636501399745806889396294807719676480726849328073521861195055858527130001198760788768701417741610605001080902425541614955697436297378742092857790214334533224734256740902152807554900826237254038570115613654649138797414295806692517994411199073363738134509242383895983629169285235955043899413525069017751865078774808235735392789843982095110946471583428643173329174829641608785508210240244276736987756997514159323873105002185107894881655681866584793988392543641407700404048978398028337981354789897227056306148990561010576896092047240565356231113007458263586545847140464711372435337700812783961382732663618276599258403764721113345536297873328896837544504105575092629341863833974440158775978899502603459104337295807968104294517830284677216103399848756611961264442333328368772678734221491331418115692295156781695158484086765458127065797365570976930302977713599890568198947419055695827934967466901916813068585551111180342180053290084409207673610918259642477430443920316828845508918721592023327179410437449834124618008463248048879231112410646385720085015243122555397070985355592835406621888199022607709315918919094847626610390705985593554078795788993273205218965005177758205931057869355281637357158780633560190570213032299176564283492291341648435759420544336300005981949288946392866278390819656104461874091657504424306727356477277120861261672537504959085093149816607990510467992305032101605434525146711367944700763742350948956302374753540408958933417163957365690008013892423058077845124295727421314208908144981469379134311758644841839485076980688151561203514810258628872888475682985917672862600457820908079634057721970179579235467241585022477809951211558707580443282830837145530815847358463974925275249393564542207713072756174388303721159151295628618451712999578631131651280274407590765801196689725019051638397298360914696386213095447333930349638489845354517775343182058870567529505560589677996719572955975892033015118086588566627772085537022777217950116495178284549557592329308868804272120060402492422797500228070493766576500960385750069858782841893152608781336488473294574049522845028693175910877186995224898291171608797777091377308763508946448331757850127270209969969238278033061970793128587137398881266960559875569608491392009007013952604400706062766318209647578273129500245763967473291573904153748104508489040461653363386660232193887708359991391067517909355113147916951045840132851625957002285627911977332055738103352798545910590393992549461121729492514316996080525330068977769014808513412253295554371037311112419518479026938789763010445957347087322781599996304649793346729992842906478579549992743029871768050049186030115687159443354340728043226137028814125104948805497921538381014951664121285689634676949703514724856914016836713197831020029215450206348398830752271838432721945299375605979230796456235676224062495425668434491828660106173401807686178765831917361423962675278007968406332369515015353209965205306963022377905651327062699493884373795879146607170849735134310056021278727378497055813725864734535933704355855164945723935951784138579740530572513677243700125313827615232016389485367167822459276812265306664917717997008907347727392171993354280741878940638679627315101813688902172655302271951372079489727162765741939201963922335202891490431811427544208262753899005064640857555609879008354073814101029416543798863965237607051837418080283362993353657713202375180938466776258611000050001422436803037548381162655837470383019548658121548597815962073682631416006463027575956766843681117541982589653310592802144385316569456573098816123096760169480936551275526461607717703961408013295950306826225370451663918036625602395109093305358835310575229843592387588520941346331886313870649003873809450177309840770641680467777506915233431189270007569853619414416567894429542946481888055621722432529121711977706646515632326318182645020488097842214263140273569247978267131545923311718102748179657496074875436293620835080746607291726141878162110452833426078814918719646651788901422622503489379062557115652392226814681200513618221515141804494068278268448656191745071854111394538027927268145362736893509929921779965965503282067810307808195082236984370158667966154452748090671571410056172723156902571331943349660267265826568296299029314975421779808999982276777712333199778935063915329934512321484919578649065010938425460379847662549884347893480267269144899323596359177709209855391507315431570033182312796866117025873887536021932903694799722452858771966424682242410872515069076446144984661825250021577419503603078443268352034917112967034537370977507565585137315313391280834188634879409373296220865626449217164360709013717141560204471400249928865749408296896601520139706862135395524671206410508911485339885738119997137666634896043261643894630622098650792868036000382253770416296995261516538711078696431070435843238731316333955966201725609809417509986336882627334666372570511392233457727222081196551973049247890510365532096164879438683397818073594496570583822094557774584845316396939683893569048699428581539947587812505922588099993012936106414939338466308876232764852834664088290890808170851593583852769132009974982488656109796904541547104554428779317349998332508001121153774491244388255184892128725484600914261710962790455791094785599355054779962776934686379230318131732454967553577153907289592059387435085004342215308743799686546050941561243459802196723828056294307036041385823541882320675299115370050485993410413591458761420559594736158519829067137611558921126941745769640879183511959468202575641144815206033656732244028298468774433095414995468372885766966353319086221328906522286080209319061930049556445849180020932381715368316142400223983878418585183965262677897273479647245241202188156483207921093313672238383722357383735032409615771863226397737657906211580304634355564666081534680188742023396073831964241435330736932121129503927502558515822526081246230496674012231922666977404786812234029727177653004427667095143207037380374321219332270112654129311464791604561697615993575818721381767443079386361833595237114264225312174579492580219769031330628196063370453075319755895636198828120179141899283254423937186980811094805466112477548800941367905174502750162703282911410799754276883117185926755452935975389311945766678556195781327917444887074108920104795383501114466759265209669306209061389048624506964168835017404388931226204958549520720364337437498044568763738362225384769931826099971249644209728903373926349132746336660271601440957237260505334122920409195138466129596801750786282686181459064421502495183674053077183981402629662023354193716957422086591304642351451126859401090072649490098191917475768711604114305004026887383875932476977609530043188121314708658890179887419598279121508886373056041103955026001167672162033259789443538295896762781228272081461046894648494435040995615987205787276681896066540769498371065777279062842649864886056900239946134016901552403680808141162263208526958316787594780437469252073160292226637986737263105304044527639331098808564340933430540150410672956411425532913551397315501819730062069418805771309755332828347157729125844320438715849187089471211552205473406699083455690756491375316627203583937614302618877676808943815697705288575589165667334107081091635459305773800714298075477746483058556737540470188159340009611139021626074792279727840366879024458697585479674407598905198463573225247960104917620245455870781123984147945802239938132644023453753078717857796520866591124283447881498442911294182823864132659413348850069876126310925491701435214077679851869070261521422658953143060393757200170369130450191615174510309980414293148574560261782264534597723518462350579218086492216652011451156489717608966213352946509044732639863848382064210491997887487434293111675964798078415986260453628258714845397669924557197954482667727233609097097983903916719557476547840140456507285125359877989665850927069004432908586517470366591905464867765662927736216844616097882646729558070364346821091810108153001765330595439982190971922246069707613997993510433715105069628225582711397675575226079613274932280563042150078756334198869981226873918019828364253265297243245970563352520025256873076444818830638105340743855937925934493433738370742849315825598136860757509377341307488521956077289987767779226896351405629646297806377431249254679269606022893588711854490770808698829094679123333013487975115134649410467122161644649173341851381281986187168799694186090422237557209923098952296822483321775406532063786088131009481723719676678791815189268548740259070726949786313246373291165678166075684690436025018543593860231339293838236235376929616229261381253117557349925069458888946643856194104308820912941123557337061981592993993799815551763312109807063487709866988332348230137772792824702682724705186839943961807753750992522214365913311975092831541956030870414144623109810744241162257213782235573048914198510987249191728377507802445113317709689332471037729900416289536834871305760248889978813769462840855025647128218441674885289109837420613004959308861301444797213206360899604019298371810652081534329078678829601654536351768982035475234460186684610184695859696907287217592892589544418556910890667319008829752243737050510983426872762619444440619907498328984217617424720744116137161503777093936632635669981844717561202230578381931898891956776598674470810965625758321338332596505799671571312355145206582076701161767087644970449943991478603536689802515873584762900204968566319169019370061819735681100501515592623251490123230516997828196296391320520964602185936879899646868305682624569728652504490151722192136013684271640880003501481318131312923548321482768146447733187603478971575542472428240243547205703514758714788309556506014720128128928813376322939126447839364888518119932140591711117258852986099128656025038500365548355734454711946835571522137318622434639930770702809481837342897035342547942483693246277191886412598965557112502411960020226271673553906656499150012177239632992599344540604805206860848400857814882909598469808373782196204498011049683648292812935596067648278115465954348941356493873732670712071756868035085740925891167071571392606708736603698685397591551625141155560758720219969239813543079740038040177053776598427993176276972697532953783404207340447811700481554095822815953003936965939309950654946471785791753733502176246485113193648155769204322786583891441441516436719430402079443862716934207843115135470279697836969126844930747456439950130055710337771270077353891584504690046944295830523090804132196396624269951199379732093768452631961922882597093527718495851114692740008708593385054418243398369178744413239044435098338529373100302031232361839814980083401120799997837862418008945113367342448961430699059496075367309557833613773005693668207061240159361603426324717815800250511687548520080122082172703532070257265025604612123432216284696335625463767154130473070999474128985534635304004416586117381264270843516779648798157236276872612353252636166484962932616426600505816141393216792764751251041243081867820523779219128807640068977017498361004561812547972623722352588569779330152175313425741284963120471655574130616392262854681866681880392495056415961158256324638961996946587700254986934015012984479062758109351063873790805830551915284454751349165430086900939411054564776606843708845879248038480573472555436425323885474977765316822074312246861784836599764653994665554766610473424419930683500400391639429595102486980383141688928297242168711360460784499194434584784682647640701276537952370596599949906440069956539380454366525332490052632153276813624794788608229665583609601987057760947279732121660927302601731528627814717218107965448192984566484673173618802541463815936574367928329187098611799797568866865535232878202566329949094600653289420802047184795071963275942124055728545907743891639761955776660856452852320163084366706887266506379263119497775498496155544107295570276575911363478120716891042370653703865905207489700564063289744009789005430193221545064745293182693514811623476571043939182261413977444109134731825390764310937711984285863851385692304705394314558054831082846767491336430838315246646561958676237463223990771373672917983246125309942547216578979103418660340540259458339162824293967667875269435347233788748004688476812320998912280439835204866421030317260679973693807235856946609460190832933854947751660572826776734650192731335407661738329591929828739713415843424708657038662979367720737904907951438956650264524115255726686515308917560977599482965403185102463414425936768590971222720557962892234465463442910627126849119714298710725878571688169791374076810998596900960010792523014059893830766928641297756706173905983947018379844014649436232757083578406006477879231529231300233742172065368702984850238223134191635317199135753510066890466740685605272338624417625943832976454704837453422246620871442071360783811051998415703835922166340379223340644271347197175014187433707370458257011382468832802521326333488117112596059284485661290290933384531234508192324742347231983883126409341954018863588139362313329093670874196722137315412570164932092468533610725146610312391526790177851712423686048208511234037871731576656639316664565292478419642247199152836176033246081555729107328758363360189464901367827944432863357181776797743445374797510694181490440942337246724183721084630035633340883513182897319157763202139262936719489557150522432883384119014734534444949315709780211517874010658930770246891103595465003816652038953781947407853071696969791261704564691125494849089580706049380113040274716933581959240416432928811882319034114062646253077006945969872317732222610231135811046037844858897574970076095986640427188376953614813647923028517266211546308707357610681087935097167755941608642779736024622675563114015363978962105518672444146442850071061911989996228772893701935902554922378796212366265781547336852150191210465604483162826911960029628757596944876143006165268349503683893694029499835249196685396302089885012979622129413007249023981442055960390717195765624083785171648558601908470014339106896959497057265558456790616464220997624429420682094406841711059542478854929625655437885621404348310072930096124845963564103500230834279565407626307861070078332338364174380472604044931804627049926001259625409302075520081481261738280845025421897936383272084684226645498073260915578786288281891026821321690809981764235238260283563768548682752428919918402755063628912866210286781053337194182916184566127927843366017828698209109838154962639665320667095220297184624921159892117526978395373934561392728016579565796663566239150439347358632941828284371325545912507811539513675099014795890251483091275873938355779466445961133107432850003371955646191339096905772481319988511062383119069180659463444846816371829302949107446931584065919896101867029010025851036844685837437278858775980514857617899421099610222032738075459114865869032923003796523768065066161178179029006605395446154957802061833188223189117686891841047908614605449792094604796609442465440121679050772239663145477954430161846035333758411684325067353821533982247892629933539130406449774090114035946636537286827157647934817969105478766633999667580928424312232252932465613281012624584927185333634081692723745387822000685537371491050751684524164788303890753812301047344236612953745839795824384215385597034690598366052332904625896470713757542773193582719417368597773657788911184894730987012598614492404127063117460866612656656590400542798360575313838368909831161152189607720303089779356713256609630605017503821247396632284956927231988731243142285381511430787794265136367286348533025256310728752347462882174866679701466725762863080411589676292680084845248465901192758706972928276817131866632604160149408813901834221818916659314223679618364993613878521978291374049038695174101241268643049144796126719078191959007289703045542680942606028571801711687970231356942063795493454292401414673881457125927970682961247685393301777083512979423770292867471302201146775057191373998939846364358454709465548591579521821822714848194960850067255851227423714181510666145225822182103616922766665130353838918324186184634472781527262924014248667808853277828683550873643360187900261663688883903554240993966117385455332297029396662825397946537987791744650073908418119844787791454359469895101622919975176851778855774529186626974421019469402945352678314975025114924983498934515647026998539441825186586101505015170523850406242115457730446945499003393646177228985709286812995558384578304295952281859735801694419634387405982189191233497741610673389976433632340728301684493560447983660857920326864499588706167135565471216767339383149617631273962720822685683960447724558969081093213668766085742018593835646985243037487575181437447949040913197998709246348850577838915034238859897259520148295514998417851952669635835322482515790392986724222693250816596717517055610144528633503238532990982469119643259667737141358043646442121169298467871022325530213749501422269477057343602968950602184876216131486358465056882857675759699095001196854924267385548743301850334898015380977656663545706677229976587216516139492239260134731186948029608077054256690929093937441796236958085291951964138273198887088291195861038651612421815613850116208105288898101310631324399279705470613443130881078992785283886826120302570300119970248195045937536740837832015128441874080546995277070667320072994964747580104217196301204247926157085612210324699406420926335679947721060317446318210039743438368026986738045023942466801304387922270806360327922157212900173708866724757760906410043054250447807347252691349963478606205466877514262340744246130825795199224701172598777595731623306316836615298385048054755431519591815096379817691662601374395354728817566370037506345022799169897571812327574850391131974696668322835461446916244719540964139816758596449744035334721373927156876630039586251960761232869961298728243906200791507013243962248737673619292505893116150542222709138666844983872907768918836265467825951679074217873625647383037520741330554806024825345408251141853936990465729292702298194347376566770707097518608002234360806931632647993503951837395934648910796128706879939508095365667677316843835848774131742622529668648567435898010862737244569469388510054955591087995005705109879392990175367731399098682592224995319892227570370511621335935587697667546589875995464157463047831253382410745178700906387997448486909728818370679316220850706347044305981076373470269759144894925225536753508598176691513119215032330031655534071283500540398143996610171002573956245736411948972043935576335416394751202740885608388607260729787253723962617784076760041790762487017683026525097117703891596000106424329434391515854498375253649483996335152242278852037329867762348727194069135227106943664786980605081958529692299242628478416571938042738452278815456661113503439052383092414397431900708820393727116538193746863462981694991445240063814437551536875365526449768233099182841646200704142728334341010922239451879134230807554967850343762989939184705706271968182364478835822644295356702951184898481253604147229399829087050415030728998713997578198895062061351234343271993351638781200178325506527875200464691891800500955916615086379798205709116575208156710471355573944081726137114015263879999410835858587557457558730956797161128939840561812535481048567692445798384721314621800640636823415794427509086987583996600042381445421661541927139574682085916431998524466584703981188316720746972140021184513310460320983333187774258949963300942944582413270686006609839917197602604815625486227956383586186470576737799736514929612178332345802322731275061810401131150280383761634232316398609182582440413835155825176465453242251398884683191699537386940776956827487895202513125699180023847494188957215863320400934342910236703877069042183579654801605747801809336627889543179060311124926814778555749734280615929132048735122721719353861975626834504578023883661824809016418583820829595675992948597236300145369307122600113860588678747602715117147897358727085483410912341038884879250564869290282139357150325580062968308343620040345610465646987355769302748487176418266536975741800280771968759347138086941359374847130419523345079565040523715594251149310548960382808587286931862137741257279137647933015097479743943503160807548652983808532222264951929156062960735375589891680718062269522672515304301378282288630921192682161855547807093286786547017817977547969508761292358772007721159757052288216869036675397685394433331658980430956565643786996836921165370675122511354104957116958597825551091674261235805373126015447220136689045583012165850630517552375307666240140711298951184181013193190918437917222640619002942170916882653280208934640381424611006432564767899067088747169620937495794881930141970353322813488734927862555600581983357160383059335661987101040244573513131291459736776002592592533036021319153541560312239729586698676254840906212634407358685026062081658402612316838310413702420159833871883441190267936480320942974776021580907538981903705036163934790851527680474958305040599395920268177089092318702298904105092400493146803254759531161126259879497820099948236515705137511528863794853311542116811130729330162822396178764559652342328027668398870421710977772046145959406169509629869607586908101566410634825388371215879845684301602292347986819174375766937714215844556665032489132006426674352399581232302953383809416219435930648646286317656742525047131754812618180915675369325622324483915122904190322815808698994444760143189350083538393894966247152260186525821748230735813785479885112235311319277136606496836279993949867925028048163931041396947681499365730445200715862452836399906043086433850866651614093500601504933543399245488854993212471943576175540498970735985189583848630098563115732128669091527456297708456487465332570798739821259314481540654943864594093349707848077579376877946704526055005083811130178302631795361190114206509323952384962839754188024589873095160292562889322213889005490640601356622278353720594827753218223186131732776871257267632209822213644241313188559411157102851061881600566130213425789417209407047287957322046583015202880507159254099032810295007886046387876214051419405501622706907941198708051620126650968481205131267718806363675936403015649187466217989386255876115539028030494742859451695908583888962809835902808824318702668312615448106625079515114250548737135165780253798002732690394707190874195128221510328316337922535522238272482412571922979404829127314705879007961257626858474737500966458920673847223725147610099572428568366026946865318308443786714743338706430072175127439337523011138358267050883852671779468030090965871643287686417403507074419030672907204429518966899752053075284063733109495506392765517091791090493901008088243238993097357368235832765873920322010082320235371960526048536402010375056699988883660201069549321029659346057291235619060540349699402736757592587441774168659200569020131254346469832015510111584297681411693846561743003663530131329562496289580461739162049546147448088087790355801934339748864236685649777100952836956336521350431137880377742730632601275392812905352113851410802082378617256478193132507751331985646389965095922156971762857767802195499449698816251367394016746429967898182886147097592289223913588355325168408782880063595234309433196240983409843659834922375688071833975536173904839423114565471408960379120123373345427805082285886025866647002692252559974146336170901593844348801109432889352160749763805629877657105976495973231060909288293008844354356804663586185187099863371278396778174479439935959600454500123770859107350674788788962309202034129447397263582103788227882984939827491232302172578786964156697144480539269963531102537240559143727064576481700032012297325330940508726503922282382244635046445910993091472142687227977342836887573533019285939436146198949809652194202482738355508387085969942044814381508510617896126712825701610028640750201679000086296018355507847595103489580367117402856012327615708525306182114005492010964801430333647066742806590672022596011089867158556145163280408994403244977717530456280225688587773021635155965549661648948951385553597411174047344487492309418186280816279400274845771872673128759369764892511494667399322139752589783920073857216394023872806883422239663806436404146452911727189459191656998736770538289115783991033035483878169580250334673343716437224763912189801467014741969437493552753551011492777176580122739596752367136765132308454328000513890846014629460137908907006774371548038498026841535801822808970876394719006208103743383816475225949694606786134966763233857979585533878804421611844436950247638675796651934372792879571924210170773192139329943932490207741316271470282267356890072758425538409291159515637761732401679414869327572670172044455632299818129062792362235755025143328527108372648589004984883934289491461246920268025144382726181959314699048223864500159141059958424427786808440427771124333747195876814492901467576155874231767076770831415699793070226148489987889913961087107647547143079112157448274827698368320393279904887478901508046004333853098127287953203134198763069883127439980275844576443402148991688979110192950848694076721647704123371448249219367906758523803236871368990751288200583706468462471805028670377521976938851057572038730106185451782875769655481807464901613633012937650525259335412293948656094637888480354624675199906857910916134904416972145568081303038976470653209003439199906911268582660491047531371001784646819698784299210674802456223872062293133493548716218577555771342754971257202619677355356242195471416402773038118389575273315953909958264758877038232649851093303617550377018637458325651687357703584842213085057485718364836803573924910035517269224837380215222496952575349285701158679857489822218455882139140152577350396053262740829360430661510204873954688483841544976600421521629491415964863793733907602894589049361203406735357107689129475824314734179889363365173223482428620906359306257728918854016221443370470064253798801037479768692173912139526942811590744545617796049753812296247445217585296226967998064457069995432975660177245526681269188251367252693855771075370569144547999508169331901734202606269529273263185060835949987101849573677642016139347308848448184361036498763014235695732944140277301057477033620078193069023623904047655228237017931787785561566507502614801520328253779590722871253444556207160193328171314735985116285008217972854843740434117717616859612097226801459786628541905668391174451769847663768722611267543882081079301493700283001492941017478689599947553951759424422827469585708594467688861888108596234491592747636071500366870043175087434342916345433309864810582503593105741835078022748177028829119707675774390316871676338467262860547213807890654041999229094137688269647110677455404171110085668418729397026802539116454869216321657067613895412697116613236247067728932286619573536891326758563584155660642302572537511569969690910351481214464376318554456234127175531404006301699045888045029251053451783405909663760927765233721020439479681490340145990786053387770808347912451123263548817989474170552154334666606828489916783774297369437810676174284056188924656319145244731224104661195304312247041797559395926836160531305901078563486107649489823121174722608206290709426050294151078913733155730655088810160392819877419505449364360123517669374174131730731195436163568822769825396174538465774981492622041483295003042363092782930311222771698579282556631374105541229885338174114068233475463560699500863686250754686766186841144076230020344430343642146725130322109011071808213069984649429419464516182909657059087485185406687457790097621609953478963781840376719636919201164004513361944666509357060816307019283619545335472915056562696224684300845159983788420222054422117390709464033708328533661182200125971228088577315477428918458575907654256060842427484486517640963136204067663400115877533928543681470530157821155439783707162457799333621479058176992088297417492026212510519350571396624792291022532272289690671286240380717267623675363648607405243504694714289523117333774465258642860149837673668209904803185579080505206806798780090673275027146628602733680543992177544796570865535502556455049546168653161684122353749899804725436902481018305184384455927732093679689475234273410438073122611855525739311231745238712909908257984115564548117216505524105242025046159600387988529219521237136227227549149290326160802854529695098976248582074759417280948622803154068436677751904661374866286423899098510067441366464208336865562452872528959448224171660309155362705521787766591438796918925733697281781038692628606403331201484104242779287725284145284157414397623622210739090305584501790525872979002592248991369155622137516360043196821881975532212626529604725138451265799808185228910877953990237723352123789539801105559580347989325090083417987078167167255567787159417970623913650778477309041785317539446443538876440214368352155841802307446763184504016264974041275651328086255154705949790400944382866142261985698376034580649425161405916148624031335610624752582603364324278788819849050207058048418241231529616121991110778013577293580219189088157555842711317436815082416135306020176598072278023605603599905250036969613117031347822818505762056120333064340284714419347806659883801016261191066873979708950754042998221907502882835363220040091197394770288892809896668246807988900015224835622487818973041134699611456849160294930051822511506944146976408155584083117514138018767084550271618029460593822391178843224296882521530345047615452017402353505712676749034810086370676709091229442634055153530784338266128781553905180641484694986608774802653020337122000923531394643202024951764171493418359943115599315734384599099999473364721109120530727559923525395755494801578645778840380747531075911927170652724503272412419671645985119709310763553789888931038290592742611628932054791633200941746130158687418323716996684503250248028201655771763673139005861015542824098989300294173466128013366102334865401166387284389597874688615679426481659859256960119436847641522684322649807086567274023665111730249921903180296509749600686849489149760698384331306938985590643841507339797336926008456378632179814377467089200685406306016508466222566989683179628280825351194864150106478929927622465685496427657666027083665140959275595474739423220972273935520520063189371593478905630932314961751681732636974742452715226406042499414676406510755621333361456022117504115907568445004291643871547904108230951083492854244207709006683304595334887293349322186288808312390772526001569470115711141780168656332086080029965867430633689399613153038277287220188290688888278135443715621313926549045651794439484099619442016466722830893902419842772186540059446967351391352472576519752474930082368243018723318448893080143682086600403970375729973533318849596858028490263299426053772574333674605370606844430440439100113066352737845751705401280410558375717874526901612801064036286342620998016846247175723183128736491024574665477283372972094271412510239236038971228760142366247304951053352091557449015604235513747397451289356823348948783302606117713659393674002925082516004314432694556103327649662071748572335064401365653319972378963084992547556946075093151318023706479294761538809816382379906067719792660265233551938619960140511248315874074597993084566886218204286107753530401179690669729215721580319926054136966420753625421500567507711846876334686975793046481275666501756463756093041705606287543493101296584913594258919126893533475297458819146616170063861488901309643453888239807693858454529472711460677258960430877422113765876328253752070882493029057334320698943687340392175858690729557800165217270920070111770879873793923705480584672645853839528477570395653580127408936750806679826535619648554127309626707511970146460628591409779559015899900184996283361622068100403174810526330672066684083404608791926877943632422952224514462118318896677469701777439509816245977962130363995144609602961214787011082167506137863594933593031640492837728278635060197884880393760891948445251415149071433203456087350194187131693084971892163383303251608700396468508447174566126205198053698970085223996407610361754801545563295386696580080594053891155079920863182198222154301581874405573016384467439382659305385376043534060205177876543187296025838470389286439636679124384924411048883566321767606001800257723679107598554977420929967283025520809758838980006537064408113269758549149471292122102433764861386425362281473009777387566365014301645714896016538368352914156462560342628232346575987090392521749120923817347172215498922550137447284543870438795818051970250608956624034459857113904257899903005009887697668467995328308449132022484847076607889801660728825935587741080497635598056868834432044753271176726724284033489422486888532193224024055725126415171469148948845105216446225981892448634428219960411276743208357219029822404812488948345803906020429928293689440016276051005785038950912826177788316929748308650064015035677641523717527711780044805988055834167335322926182599620511796711507792062691016147720895516366234075278829398792307702086751577852847754610316857132693913334963847430207555712893949366774078533846665813082257819684593885620395274687534908267802524146996722120396058847202297914803123009869744596397578114040524786265427401221050030723464534174471846230603832091428429766067901284236881251757052461735291894398481559570452481196254421345919568333552053919930641879019532317359134959319928754410415180456428538902725332353212937751912064384468309910627941067902084903628280300745622036154312847631793201198540382256962562293347032452036526061678343717659773534931364838083591799916281152999688803474885050084967058555102037147297578016994538067980868341095001436011582075382150144961623159669888386966662767030940244308378876941859937337198658065304006658123018931633824080824657729477433848377223083565565455712957245525601267240268744355666868037050924009290543756010948449038628349273762494986307717439265737435399751448907763084882076031394699900643071705248690142476625843493774890874088843805687612439669472646363551370911723471021456104793168019165376550102548269245254138647046359603852032211254214249277572184959105755170325668477226878337522739408638454421165487628380676690725436342996543383966288835547011272636364718701688227892430021054688372930496808289085709520478164185883536870036298088185024956940768217913737423440753020739120550686045316170819471280531257495937103254945846338914934046415147759015553300113033043542032770899917929998802938761005104738629306019237156523434008256406546218229499923018800977880259227856555270135971632094134935183264998773453039433514459561596136525067775968816846053082303129279394318634846704270434266445223684848479840179592478463710353900249679716179820110875849575548600327124472604759735838325519900518491231307663890295800976443622430050564899626145830707584403845527437033937742316469657578392500649755756880380545988572957752396014984194967706359695013246895597131516418833829222973787844370130788599532857606597650340511439282987831673963730605472707388383343018388816983713235714559250017612336101794258484765188571008196502393213814354524805410031649161836135314543201734417600098120811477517160631844139084357084515033376887284123218236240816678754726116364869592975055133060524716490896096138804016769964242215455346443517849015177050498559418417466049563683427421885236601398267411970300056971821197695291224510264330883673459582983648987892095959894463155802268580317158604031863127726243244175707390854648580426925877208994937985340366890747493714441786113631853764548527129648304897758302296428377685089277471251344854187841957073788664232465773085439409207376401836181855300130836782571629898111706015905082848530070456240884927687852136850983728169208139280754862652852483083460367084316384072556347057314246196462475447267059272279290919072352897633239508120969804057464100597438161395943545749775166754801178659711270579628478392972537728461715408618899258759839564641585770087207278242988379685924678166883067590050503627861452039799242209195009231937758562650891854900380745837712435700584393455808602341964533906748750609386320121163411209785332412783200358899809648893051368569247918925634912867032951856008908094143386095017593980556712890356791395361151327572931861426915965705958902215171478249364543681796517104234980451407660780675741876030564081109116047806396902811974441946197313297406582372124563815151164486102665994397816191084295918858757633073138300145373877538184292586965275466315466777841570251751309430467908405657937533203402475064527036350630946447941310061215812701895817934437892290163264435523382596480932926520918348495411973824435958551045170263727434295905003408405728070380118833678226003173059460789653026026383795057512428511823071916246218803144229793633504071819397920441990225913794598708156239366244632179016143900638697869208203690206748325455442309789564045489246908825286203708350185787338991947100470225900850437610649459667846318977421382634104706979248300873451266478178062047257116413528854494923620345727175631495474892009074216815289482044928485651261790924126369868750087144367063608976259118695512759009934848522952727875511924590763518258558105809622805899522286298178531221780153762507234023529209469631195628614675306272197618347498540942527214383169438357262270482427957747387076201177437259392111473862386448540216940361951989937999892579543564505421460435997700824232742278593253078898459286814372346447327904631790282339972527340920500570357669413659926613838746401329371493336361570198472994686013657312024995624565777675860493127402957308053143110795568050642735979391023727105803442449374949178898690754771313735694767588933558853888112374757479135950706113104101251057333747283018040867372585996285181230353027967383983657064006388672829765926100397113564700780559064673571015067414763295978610952483651047634651938028916574353180982951724504976247223912231388215680220791046987067397450958478374688044855722415339218629231025316052043895772739103708242366348012941535130685687278921304541587543910071570874461475936286335841554952207140255441411003955522436887088319894080668818862872723270610874714983619887896808856288597952390399433205341234585163052713557534840650039154577799994859082734805959851284168411800636000268354946551304362577777552486917483712135863635563521378802577035564238074966916195854845840693465179299923543367576904085245900560183454394364058426974265807228501336610792107135183791334966728285154528599195484638843206906827890001337648490840721170461872430925054200246023193472339680999501064210165880279846665420752974697240366890252230861058109774787103968500138365421559737916968477977010953590361643349665427576792112368097520210522027584049871289639267941308258323455986188833882194116321581082682721338671889606902502278573150316927006387539411799768518610762727300758745628841217316079181713661255926358297267433340534530884896120392861799827668013473470502963468430733264943640955627715865311800320463290314955961618832892677510742860140741485164396989349764567240663854235651655382487013512598554228783256596160656254260904815554070327763045075862312753921672295700327613413606584877156295733446219193859635769295999626444817774859095861922167601561891826796187491676319999900117436947693805887105572311525230034790411760557535949411663244352948276518470879289693156609630819837948774311419814009995695167630351201474960533909711511318151708105868854450133756616185298075062345431817172454659169910829843094188452012104645373944793596114262125553069109482633777495511585598684991860402165213484414129975049388777885214088736940018121986398065083483453657667830269745500374975638992505854726064098900238622320993515124060016704684549111638326401257352361261029125304078253413782519619082307373537190312782675638241235069252693491855407788191869116520206169916317110052962161977456147751448017290246477286921581862728703486551940476480934171023563084534631097787889725130129313947970575508751960293460234593809870894525858036295940346143689834498702310781619361864308999261269808719954051470662985775123453375342158625920897993566262959333293885532632110658865750010995400924107958304719992827119242080825138357538748806578440719396451200316549897169323576435122577860557165418404350134922975468182879927413468303721845211399459420494149545801519828737864281956729553303382559659719318397537597648835228581959063638129515727440756848257354249077636606220288157760769115284826556804467842744123949584520030499366951486083152469566856708947453999429118309042818004009957700448768747009705145053313516738474783688497689089024952158257630882925349265572105344611180365341968530537958233052857808985890779125224648819986332713019643922654336191824960787435816937751388013495291699631799351736672937398639468450877425578715048882084893072830083415755741603504777258604308145743069867519243672738255783114339746888364544608581940174196408601723268099839419320941596396204898862828001113562942809242563784245819541972813668448282824595377041881871532149892623975849153275404556531516041587296222721108290360266260046429344174067839895138601680228477680899509981367216670210133019119145156249327944360928865097806144377088079601702905607658598114105442597908578361282220698038613808478563466128326419307121036190290343429673004483928068089001839445548947687560663493432193844275548003888228634290392340991943963669631964585810428621503765166855675151341983951232622029647904381955045592810476507266412333927687843194851890885454558236160643167581526116814467638416716431569764418433324102810516410338082019170842792989681665403172325110732598898478103218469954371066901156045029958245339984206244504808391135662653831269147072257193710725671866475503311341959138399121424907906408128652578077413405044851828984475701833127308336409822854355303211071967080066236299839248404557101299799870768439101951719613215025987725414735981482337128109705305368291530168744672335434924829304651708013600091931816776565720903806137762202048571257863162422752983866778032062502267554813117628954597242641006296345266880823583639791875107783594129950629913427958428177187637342176970752290174795560313529427503766985614475647814776291226554687895306708219116859770829745538455726547634593255343558803137208026637192373975448680639795982096724766508340666253310228293726282711755513072730272194910290660696736985842710277082350342266463181224247316961769497689074655837251266840361535856311770893844199403584209343698620961379827681257815609576821950349699096910291607105133609952992906080744844207112779685903273246864904598031649455612058019848585919964940562367718298397332369249272483953474608712391412900463602322949440958183474218173366013263565749046633011607104922921882486590889448561206786839712586164138745759219699959949619694661217890736021845878744473588078197525361721289786076054506243718987726673374992469954478659999934670192704220430052931852678609495825500680075389424180037482550384054138434598625683664464429292416513999794068715435676022082905631126410888793646769892939234659095357886492741698114449019339155078495271338355612746584811478699757876242275629829755495698976237469991374891469309118986715830898651213436602907186937581632036551687022152025156012107182814522982710029906050931290854531132086161507001168435317513594599892277246348414916748821389015582224900130237292497771145017329209166862351377090918099509820855863954647184350215870058763819791577907265899292563469873819321416557080457654082626218953513052038396604277696110773562665530485622903843196421608848359578911745374240766776963943002668267786331545355844825006487659944931705527380956223517780167208780398458928936022267053311045260964112386271675456385379728123785438699207327937935950824817516129791493698444513774306485060698311881828598016701353891209474047202225562772675905419846953431828971206899818577932282700077165787869488347531284639559330454507606331836782696911181621075267420388002756566111326455700169772684397134801409151226893449013759774929029140013666688326383083699603335288206175079560343772151387276963175858835858922193873306009487714805691484142682004183272442673924803023637913207454428091734817419984273262186090542231524180524905674436060402193554087348329069257300483393030049041981148179801328917489742445075100857658391176658587931930306682630063271105037037785804553919515633132534115854815577736361541542665466233930835494299216968120715661701459598736496016526313995624879516460852877445078215322234291273400175709889093286394642382524902513091275719014025660750487762404309424386337808325586314480617930662237819477336099726547518762474394614573832141740137238111016387274453807981844380837541071317237085081823936700785868668647852777305400684257301483799316677158162063227634765186569926505836422092878408560630770541745162896981365527603606672514773128726170640487918981563307383652903898206786377185525200411565586768704569208731982444835810016079750282857733130610470413436541015670541831583696018052390536019727297539403856794935219414529686227657411454244498473123099594682668922691268000523226927257381800555649260937186901397336758995611743777528487400092800304600738071616067466957785340303474550168980363344285217437276077664345074384695675073147557701248066382117796910936571275141072482805921377001275010135034249717612474785514249670421273467357987892420532936165127316422510184978158784785450771054549996068256550503331911678995174509009384515304717800664913836283944881170985032362627563855305887981524172477756748140191241465274048229340658954499441400553868018213599462678057339235820174609755124216201431802897296097572660684839028572171252151990595964649576775083326140798502420604690738977451382229784993975594846299647050537202868391704133430118282759068916093241015536413192315491026581420954268617181971249870317913834587990839861805014406765625384522912298919345700744763327119757615351302738437663181249276468254909035909837316044384974444278892388940450224326538738738971731481540684532336686543776818215205886703217896336533689812635791205582985006046919027237011387936564783796081575989485645959186078891644571530375701715565252083677385234761764166938054812902534765818220346855136997155435410682314754498950525544816287030453674115234478553202824485494978025062199779223868628177580450319201786684157338273666828749300877474664909205054051864557967422666216155054935998398288270643043696507886772454294818598839948799805176994096114560338378774553466668201669913509465578115247611453761958038639795599780346670912505117575501985629829282662933350953294475964378263052404201936763726097482288882466809380144716480014494827392389351924392568242906633125183499666865163986280697689016753119576641821716478106092221356419766146823215918168802551702395395226260438788199738530303983019015046115622858297720116780823117758874400081928279023139033651371560639867451648147883969743043869732699576148049593682658641646927770310006051200612794524841721523524296013653100397169582038453479299046151087787466716246670778494793847660098431898273500854828383788841424744236702634503373292894286114792284108580381719644739001105710630902400661355364039236636051051753118037027423133018498891127309318299362603524005791397486282414949322482210345931943951979783907277783047408277719408650282665370213987540519818279133172599152418716854345831576401314699924475694303100868375096173589372294556535697521023745332390695696747877561388044647550358522926196017388946566146148918195608321698057949135921374248375623033085207815842471420435902077671388259885220863700025585925476298622895483259654528238762646943395540132692936778482369793773229014036706464662928611180183238906534526136529225573946311431393302152452424046173641134452588799545837400657748108758868561595338511412404920895332091673020225254466024389185344400025829366007500907031554410493973645237102588584055756369049578768346143060237749343632528263673480790827441425233087430150201655828408786014681795603028916926763911902635087089059004610355484016709362216089887950004053070110751855348660045870894030458016868185485605890499035149033419920642183078233728102830887957528518401109689815818540679234773741229917549641316648250025811402811972128110932672330873019069609254569702079924307105678465728541615941306128603626534582784709339420511212055869874823938673113773550315449198117209840781917656482687153359992761192673663948905642195492233370143090167164140128162038719874039365671401682470649958714758384908843522448072216448872352617886863776974799786324387551076542165753360105126844285288943493220109693730076061773242848854193463438385507526856806751919063095024290375099504096325535549077300883641567282135688549537096306911917610616046610341075675490435163242954222091230096280691942107900512121174495864309940284009665679977580978850105330560942988262473788790751565028764101589289755056275396306199678924073807157373261175902850007847365404869749629043744445291509147622854368800074035593191125328738588334118535642884094549964774287272573148065678333126752874519213420200471729898653212225053233809507794124452665967126864883873374037049107343120086042587423869842547558468776926953593055879650686973848346990768301815364482915887413554322847290408561849194771938842729754994475621456103221569079797620863311325833077851622034905868632736063505583903120857407416360151374377503564791883216363137305042551929156481824642247953352347834807989109898441403578633748171930241615419800783346701767682448947427629789132702826127937237046746390734242521951523005550291023084574971462741693745928907071924240929113446193710830759851970982808548729736904321215851041795397496039750944434441955145684958731476236056035422349531517474013550101819126182646046640697263331864061309304557888985227154069973891824955864608341996233708975803039315793584609424337481583249765741828007214472832505228939207206713825181734967025577375558331128629197055556613606891468350184186560613896280385506537417378209363221813134644320429958534359087776784265868016818308897819292270724685438107640329707724819033564032171517426122929525167370264299286102431206464816594419366536851911112573932502614370946043072659546317167202048125043358790782435394994588236969507312740106194096164456791007569430872524183194960587376529128712249211762951534788552043566341159692111315412801022635080526020849557381407785603161192736710705972932369955951689176411530264170654674192301188457843001082468793633312843320166262636512503964650792381533021574009681350533640204362611485093835560824054844845011851430288916030953512310872287969526511667886943994620731991280360204749312456245368900729572916268811733064529245487582357159084505254704379873268477725404662096078890521250447667454150458280391433263180395438552073041358122967729479817014160636577940674477214644100136257012427655280868406281872764705985929837586062038082302289321361311385105186806400931134628807325096085758733885249713755844788846508402052912240508293692719086700196221841342012520215627106856362693436065404488948009572541450751031567929913236088547385288430663955459343510223269195130462593817610056032652243254843591375432591655389794236082861623277894717135892543442020263505163965203471971853859284761496355342640443144710607879354730491976495742735526135797217252071349235189313603679875052754175236230440861221614939558529116002497722388401993850392753887431658648339186451034978849516072092651999680194540530426361086345126356870254884158044120638427662020775286519399724728996736319088940529388778893488572654139113855220819028086831730327058586834240530653236851437207747391888097730653714063446810150079034948117939137919932070753963862229679317621595139807648990445666033482312787204528735934591386929235040306460523740758228903462414146713196412847126405696327742687787397230261104811670838877394562402595459214356206873197542196351444457336260498416172616146084644081985921119325227327904428908337435137953993344088046549356373250317602893518558893896647412663451991889963866155394383196841361847464204073209506302025451523520910507282436146679120704021045857843696458608238218558719767293736503471732821974010818594984175090487255318659504927333555143676163510240854118883495744559862311768318493024808336277696247970084635377523518821523319522681603893619733396627520093208815328718838194372732845869180043500259538626333659599516442285259604574118648653918694784216029468970448200159308298458892396650323075614748634742013891847508484258013282059512084313894915266920648832183721083468308081295425259227021585488829535062518160577058591169018690451524507137060686894544233410064737810289562470579768370710132564527220083935557507998003569870508707120666458641925177724819498377520615149515546569659961530798338943721363428657921881829660964056113429963894467340430679639787796371460338551166001286985071356643372241448667759892256696108219976711528982135440596203748378741195736203293312222287572468121865976432756342265289318796192651944833580646056609146651981711912774787542498026399911045425562633197672466867016782469622504096169020850440802649031176558452542395149036894371155195754760879273360228610280672909082118882315989549337905347205966092172397165327827526937842845480079083038914457045974157086577590530134202648093918063951818578415562994982678254959294657154704843702651415997508129582587639362893388755742966690909754127066731092949949737346997969559628956257375137936118830328664816835078993326507593631522351839089824987247079322843512487274725429394118246075187026395607091402411948961442090738297191592083352265004897485265271913686870113490781618773861664549115325999842195433785344105380184440833877388803851805278332837012943195571572630192303987265631987915885380634806511042400976184437712642862308741689710016757295102709944307999840755502713344932801229001363063499462681406947649979800288451273668278221309748866421114174041465442391846578714739503437998702314676289873233766869427404648724191027321290540441891237357299289874917485935148067659014496582112567200348735996280876453573462046262002119802202904413780577391121472486182687116293630244033840069008838808517925845090452463821716838800785179005440991339727448050441090068975919379661518684105405153110307329443519986778791410292222113305638531320103597147837833601911866552021472767585063109052765042585549774341605758797749647356510740470053305564009390453475242155423364939073819735900492105620888832506721015533652934196697807759434471020156637697180279124392973814511684326462827759335540221896327364528299785103320100638274237502028498443866921879315748860411890895455781071649626161954400335051722731067936859903507073396954137582818594315000429580666257099464397442513462880808565581877602666962828043521121762262880337779568319343108320470544085059037088667962916822169318354172041996707334060117818827119772335271604033173425992884818109560889443413834739457853861264577495364336067108489058788383653607790500425128103874710205830931214020898504130566601976198683440214857830673063323901823324510400802458730972084120306166618065704271505726995477185996804266842521013644846518675531683714940321932634273404347862135153163951697990855973222460057123742457648660282257816785784484731297497551158658931445329707664706407812458851672258723130810969744106188044898952167588268188292888304634854923752414155314741015386045002160376410880469848245591748461764105990246105250824631287415756829498850283588229693197844676892182074114816584709542817255935646182611051852703235305521604209318214561467605713214450564052234323064910769477348941660555212710577336258147163319482918730636550884591783491250370668009349898298707958287430852159044405026498253095484552175282717146370763704065925553253074738786268458398989963372361431024279067513295780899473259315620088818823149890337133455316987330311879313847577889803833526227620937077645721759654464179724448993701433814676077478021774824786374980452533387955303496015984667009161338472514122109772141583231874422323927566832721840508153305495521002033485595458145616711687399959917557740626952992418042884069238057749576531227740495228864203216324701847171866666101559185991789378069249097006928446505323954152082313719518522397991763448481827841128236810564892019595103647581671861995609902977299403505079132769296535703264804215669108400808899833651752905928450500647287602866221339493712546020665492395050633399417889631497933247182606325525754595025471548196076730850539637684578559848667926416719727470477471355827661337170659350322374761208302275704346520500842020663456277211158507864183523993781057575483580147379301210400323543702130773059623908114402521331701523035976200319540611414151582690264678121521283247880117031309642600714806086748969409644687296781380937685179838093707005762478254462161642138971117761032609087781417639766396663937301969532971102873680574376465000525260554823314150724100631171340326340162853490637719436480549146175513948320566172916854970960663159154073327049789003834132172595389787237210645800742412565810710927181597113582026019379780488023089358626047254772335907713105576822661473273788926548900251053465661192799549206469323721207571711498934384927034566989312426811624962926064505762386212711187311971606306195795228903444960859500497130025377124722516179807073160503127350242317699514879796934971456019876966509694635940113548353025059249431670972146363248937973486523434309349223115034416267238897792949990123788523021792232230545044958346603133887430945918633302816628496466196429524407015500285359592116225927437802702723837165807136803647705319561558987166170640350523608545264184258342932120860956268648717841917919838318022828236605107898851177070577135663816264938552214797322671067317222443939965070562752230455769993281520571001598509379316044491949011094024467392979339530185743765514074090375742954989141163789910273561426596712769768114404956761598046634524134059767273053933055722406819029588952800174180203699754347484619599146671632490710482748363384078799075628926165048484271271633663017806778063250185674558559732625440636827677547167394632175392316852013117243859125064369242901771742769975891304412119149030240380156488962058585280382481408336689326219067021421539072171778451407971917528186748576000808379902457557783415610196557422382243805074898460088169276232501288496721022777524126929905228704368616777546909067096012872318063643776624287448801221171593540566671081198957318954755224503019230684717032756626232899510602151443004786915829966696658092242352823818161097260468145757692281107974066494212279228291396918320837880477496107349208425722141766910615909708838251995028727484412931297311075303215429921747100188998666502920619908035309833919491165568899608826042671568377238945296055299362781806344540048472392645774983233193802055529504926843184228501972826882018906323873328937472406472661078262105540237264322030841169530000919592409897386690499088218445459941175867705650650329949644441174604181875118610484936018823763393861574288248095483590205460396319170547628715077887571562595786364388220153807015934861626530554846939265151144149131808374256203342869139248316998764159322217949852420847574708118873386002578107222732355800895862218603292429195917271874203652596100722354760546144093496502094320695722354648850286525984327810944256818592523374276514965713419651656300755216035265401319466042610291954092035704491094489844884227451683616218240182733816626366467217985430649316635783978199765723462610770818799732127900879240229987299707304182150519534662696050598492635988176337735553183434710044932213357049696206672816342130374499165068255509129647014469615761918677759156739085507568582256009351943893643441109776728828945257106761261688390657526272583424287480473555307838770981049878188906135758382940556693138331405327426478845260598361805139801187981468823230882242160721094700733109489791772484951801250594344368339222910305123461031372692852599093767140268882846253730100706195403076185108109098063821265355490525956121872254218105699946977826094362165095012483937188222159219148108876862490068819831184835208504043343377512157804040430644324325515757431473344577239536133782550571586542805452055993874255228086216462605240487997410151810422724129383318993287087021912824622575959065183783011192619299177124918247629981069891618013918949949522227010131649463909303800324559834055328476498645586328720169658457831527141138324591105630108634541741753155705007832666588931460969811927939747421817287163034769033353024811920771725204328350606598172180686506672512215457023630347031867629017297198673692821091488895824784988759974094081363362094610162447554366296799679213839792438578089173051520929169520098548124265390360658321501067795429542074442410675661309676481501636979753772346118154012413295601529545605031178914926488967385147704658100320799822532497711731674499439464415044146372162945944120053243755034760089796980409123255763292761631285470727030238640079721193066437349809000463503410705804101459682265080362312035139029775832157554951351159628407119519659091300256218280256299163270056361618202113884016751718884788147543494114896900791049183147788747155069059490926248599224670259382092332547923224461986698721989617287551445926371327312358880310164308350868546717333470892300374215588560088917910548113490209464871839370780699331663151632421935969205118152540475863034820399786648844346457217779769474803468039394981290019999467950881373319386774129012713453131670452431262266693084354404244463297709753415941492395681621740834174925664992071976251107700799291673008003435513210910398849367052260199940884028091170819017693240810879519822636035803826556955678474523580666948524028101980399196618194796163523554088937676791932760902792317183742386468469402988136877982270091534692224014314126529550878415448976763939881591028294749555238839478814376410436829961624422147482297446349736674344262587101768405521762675337610531540459237049318476589297966142259287826228246224256771120026605858263312250878248245234122796764968515688452553280764936130477752891633099399879690170680568674681839155822379997462425040443889247032320936781617752255487012650978904975835179613409817652079166022399807097734010868026061330283948896136319245908271150088752333824984416409833721050009817270190804616402200377118507629807559357196134757311866594523696024461553072494243692304713816335734032250574539193913756455242754845911336758778848003571490396324274817130082447765095480645048787375294214894919614030594111220952467940518149183512851241445985536099741548047794860360493762464333599781755602704173099679794420061890921007608657305439732165241077313576608735592131373377869620742847839013066756811579109812990676803667844171445481838128390552395471725491988282620451007290765268085605278411033307786215463461960527303963620335219153656129913449750408389280751104793154422131874461078212604121878835196976398371074444174872011528847575490237556690649342774381353073182127665675828310495861903185440820407154638724731264360688065430112846090287011810596438533368938113777879444581649132576078748266048724566627791877685031683453091256114026355321145519582508915848222629387080823836436471915278026024649662310170032169519535136790306412138394736522112157463829730753073529868494311612339485960283024329094397528308614079003402709155718976597248519886808460222398982236267807346522595731436651438042760504135083789801223732963226628597793924598194997909173514617492102655098668345597606521728094738000578211218744972541348897184484270974873653867023378463706535883841773548218653923786715819169907283596188838146394256514124452507848065030654924087216755897643747572558019829400560544618815878156017924259921946214468766316615426278903732150025928726976918342493270352284328479986294610781435914734553894563696957448144006194415917631368252720170548254692956411987558684662727000650761741997322716384765353044628021362933962210333474106989785866915450421012673647796685659207322475944851033653104420840053204432174760847606997135158575769715462948547790343947950021577757070435620826237257889799314056060621849311380595315422381695937373764521950153006163060324166556540595464612735308650083129503555734364676034574171018475421507010187010474302285042210475976953307374613146034797746051794753079145901212023049472172858079891911539642711863744714529640113861561106642653233007643861300194635086582227058157592975059169134499682948970550338304020606078704361234607638932372831827001280977378119335843812972556124259898323975862791872563900277237574936337812289608058082317326936471545349933875036102287526000929082356460672515743445748780472813454898516876701184916949275120678803665585557099912194412057850470500647074379136712746863642165646503663585025589345392408100101810291355554802053404729218940851929785695296596679437809491946404147539416601075071301847343297639971250183641171389145942576448673136292398402764667430693464882964519480894278182003778677993171140261897651920446528850475307226723915887817997895159147975087978512107382884220248594541917800467759982996761671601013396362158368760995480616557952245844363889590271951680852646409608374263126559280513829469255410957349944064941040591593010896192781646927269644851567363987991883258307539460175331885581362644735660334527105817081244328221739844441649357469460826752761742310216219082404089264296958313984951330923635515227789362171473223847381856291788582115130344287448878980039581545191443824464667755136906543334147330775720019219799006658125866732046593877251517420687874899749694580000567921307738597216431194681218276188501832569871539283532743589434881224965892051944673635509594116801233375876868322731675484968924618254744557375239188074485513993165584482017230368250069439555615722356778963601255854460036782844232859188943747166050550499594757693250363578082553137411830827109608015028158316066659103357721591907610228453328663086869172639954139866451327451691922874483640604081044058238536322125313873602147361921138386373463049128130282576619274392084487410692592930790379481713551093005083391293713943362486971644074842262411614245340947882989956676229263472386290686957154837938757127497861375534267787367012887362245169962023178168045963197431660219610448167499771058636559500102251743935148681281520067674382389476829968999185324223955699126673378630879500588286523586910826574985530748781318982360780096079936021781667472542299978730730479597580512304504267968088562830599409260840832680926366810050656610443859920520224890489537394958024508425592227851853659990916123486577033226913667731086547879593180098836142327383046720984171834836615474414024037588524927312518975480288182548697938750289648249028956991079957502809802975837146111559679479678655847519187168606413633297265232950846990702292861707380842851717980954107384233703790567656381342147893487766869945187055049565465411893898557013077406468119563453412228255537000907944609631990571476888879826535821978781399110888641565247768012470253221463610174523481964073391626208286762260796174927320894627124456673980175209120136746092639679194909098101905850008924887939715788418211320649194389603751241480789452224612348255837508690319704485693254672700908314153960857807455685053821542985840879468174518828176663793685058850598206109844184800805596386108416250763776966637356330685016040129554391562685982768103132458060888501215227188994210321880588063304765389143304687221445871152043757816151867478296551312380856825644663739658656583640389299780792171767465366945506258896970639385791939977339858247104616100052634814977755998227097210421197394674757526342918764039732084145362923276274266705399610065461660231760069811129218831609199193908214492471794944524828840567821552654506210885983908430898963618485170527754708598495576672653108892890452129502988068242613065091690006330468583045144960161532184118808912954592999618536783960828612510259190128923955219192609717006912009394100803134394745916886288148746640422864721098859139636894480150279138107708988901484014235974423600039876052719236575336201649961453278957970891679065159803527160790919481156139064045707635408344076732620004348773253376491448007490512158927215477146916087996975811864684524493611481506224763829017608925282155762889056519498700592523314468761459453313952661980653303539326378556478953315539484930233444762214792994161590711618550614646194274329231434938661753678708527388360867433808288516401735280998564163257289039442384030559826364020449174171184484402903785685600113006433119351121807200685889539225325178162929763003964695276994387777915455453156094544235259745810759290853651420648024305539172437508697907154626114096562425565452621848658117773308291028563694469119421222313543250504706622871540026130249794106580153571084047543229740587381719935060081910925366669918662843527257083569813278513687816624600644761827159194826821342522740888106104980273328587472089875852740556966986178008819527447512640540531659028442776281241201938202942941762100771141935069718083587431366229121600423667460491511010836504375369755414174029567089448815645636974529344327753511571767780806891750004705449187645966782699297291167977218216090149465730645537780867580824139070843650372914338567407478660946178474273531381316113525346889672750365660703711802726677131645492229529620191750979569789148252317375617371581391578058150141781142307306475195944383603706390516683135674412673845642904069823109324718157414395981700755194077038730035272237742031689940528397088714503331874035115029405598902776805874561508530537523110320629245316452833565142697579586459431660767117568062806396010596203182009575373482986194127580183513862065942253000299985975140137097240941990117585732006555103641138023448267312136312857511604615658530416331707653426404067488832681342971195992610568457530192976334791281837982370965521999475226007501356494255841171642361985473134095192575114979588723445799092278126938700128443897180662432288264648461556153165176397584043007554651223720456385389057098835789431252930249953229092532490580305038521751900003362135632436641039590764219797639905500021421171984550056165342027956348302985368570450973192447612752413924424701321526222901047242007560799936744223082427411621525310660034069159525374066994323539415787681084763336054436232242840468520148293825946429647143776381135667437774366386274027864099844052897603015319646504891632192542943263640957767878131174124355632217065803849816627250740306528145946860912647229741810761149300372951040597063794287217623075813393458977285901585836298848429160738988392675731097086320102281173844562911074662814988515328270900448635259707343610960134211508079261821784246525551074707814454864699387180753950290161488814327916720321526851581526714454448802434890465553538320835342086611644060388061010001648286871935750042937171144764429601814626490775591086833962270267795568617237885178107637460140543077240467295389200503953364204684848370618247468602168222702911526369700213822933722252397765705278208699886206967239976023502805519403754721243328173917776891580350643583190859291232005960309245047711501065254991017391271064789729316013438853118451931724062914225569761762166881866076436981694091789957942675734870188362110945239012473478529468182448172550979491350051718841999270861689991227091328315698806888628815241781395220975701356326679451612467974964926563233085154328522611089754079916721879235164733355282973872070294480201150333834331246615969425641101549372876263838079160839189726779731718154667296990355042487184523091569987187211190330092850263795444383496728574372311614481532924700949599345516843245739302933942397127092805647908662763214362364887158068169460245671182734622786831122081006079945127480156196968338050515433290234859000870388914804795534342374282003788607767174989951464616793367750573527843287492628661430203045295662491961070180182668482028405254069780457643002361763384252038003477958353781743442911187689689556190639907776156092904526590749141804041820527944306172787707301782547140860168527288661828539682519596708834146965111891977668668120863019195253633222110151923585926794615918600618295878380648850352490084280820471121671671804024194257682640107179529622515791630123935444232419988489202156682069880690360911789180685629828406442604749041623421735371986369867294781714201377217275468723151380878744141512485806790639417000026974953991208444151010939203801689997403718527052850541591929242759268639713263483449326510315867871274366711344907502949532390605579381073048406675314067024247096242622993180736327101345003244612787599370633769291695903791906614846678727286409808154840775637469222460530795744760375198411291759233465269027980758473614302201803252955821959088688294367096272517055194969793150809548433393741566924999914366478225655429871154752801532852214201530394635770931426005116967871987627481252177591438237477668967407988228469205017573583916411923780180902223836670168056940424671899023044297503509609006087082224818217814323288394806858038328406911264839827753529258277886411211728685407852934203581582268730457791036630054086548989515909832475095701840559316349378526734761502217770916640400789951969541832232204232856849549050948755098919041104028798671386396142548609089240950367884585097946222937145601721002756784956554596522410149677299547749517471098954661559072293852371389928917064780051390988801485466608768162531931131060727597028258844325159751172944676679737633855907466831117597068290518066782144644240393590695255504558717584948149153164895593978068705485674558239191433183815161096593868429254912169070959960115467583152579321498081925949209034374838799299633806067349042478269114566595971346854348348815412325526032723804483811001096163362176075272869215462104273197310281904835971532004818582103907507760853587831638141409355583287452135410951717207908074095474141187871136252224656398868554856161357091985482507010444839333510033868327784521387650855885327707463179671623723146268081671436719220459319288224366193168806979749222146168100969232650909979488065616080729804715541256086292571978257804964367051423667937010071173934854530889695037654630689246808330069106378546945637557876892858489816950752671348042496731320066007533305669682979665862866748573403475485512997805284520244878164955842922709121961118962722159133345014137267479904686375174873066124505660156318980737796921228206242749870101447426542576521590602342809308640347864748658069399004947602523931224098765241073812833194425651014800280614156461088025014515505483958024164342177213432049205571985923903062472767082071330007291936293493750510334402930845146433988924300292753057523770996836855371774422106877052045527262979537914738713746284129979889946767027755553583439566907120503212980214771466262725292215524573177260555805654675972210587714241388499807809045644385083046076372722855024839029973791966589243075552534029958251604963159566827186187754299514379625096529347453879454194238175413638148001154357645576467954064302617787590759176225347984605651881851647068369113258368974159420496421602813482014879666454730940818983458257792188147448714084937955171813729264902609900553548512592129429690804791440464450169003971276848453753931803287305521268206019230186354779508314138796918791928973857606316177339801442092050114570391928589839201795614905212111400748984959337500515479520984681580796897309518166178488315211349030613985288894872924698383922395738607717120392627837920518186106324296847340857215498592382501680714861230265218372863525125897014957033872733785572646171839424042579779102916020202010758541145590533335928733008165072192202391985955268151909607923496334353558932328404667689197729330308841165608598499537699619517073559442372999078809459800963020111391474596644334341179669337814727736357984486946461834013905212817511635964611067545305708722188085687762676360582480453514541338196259757503853602715978251461924157078041092715843052734431623968758419033516254918659126069429021731142852895098957918607100918558985376400341272975768830297099243612122606703334207424540074621708320821560551150519100704471024289100238686384482927604295121669242187157534330307802567957195570678925258334972774635992511181819080916511889537113548368717158528037285894015520694825621358926005883804398239818067634855984023331528409106717233159424944865708883691096531403113449228428807731654575884575959540777943113753967044258559547170442816811420822545713202270332254825108524013633545732911282005294157040639043790610170096235642145599143306094489150342500465765539992082491112731241085297577136483744681911167325688908952533177490062653891344259190827435612703951089528516976257788853543610811548228734741224012729438023192725545542568588017456588562844262502894034493341527182949051350104989370640394055278520497544852475106124711404879657853556218922889991569164819500407844643714629249720227153419799889255532762630404559642446475946802784315109837431169307470570227691049268036207251269041082382078993879109765362393161522489071950199186968112483762124589602371585390824587522372501838242085314539783874043756478635233101882339791104513251156098447425490271475026715642427760879581860062882368495206112906827949038702575889949365329659616041054657502040478451527724617170376598359822619933923571301464552432172697897680068580957792271415661990017656732107675554276344088180937655570331112681936420611967211117274726647764088784335779669505802373141145136795154438497567161480853761607343218697733185409036640956650079633296672775118390811359800323418950209152915390809514904885368874679247991512332342227409771106544455345811368090830175948553179134938943994789482770986473294467080261307691435354858716844536920301627192144092180114201531100808110334968699671897745914951149826805117293411801304185254607529279993736069971350311303572342181037025339953403716129105285503517056619378624360384422607710342719968334262763941016943409854745765625938604749325009583513752168604690927871456067074290245371552088690125207445333312058666485570120265757409777227442810323174377982784679577370680862989489678737126477354561665952122725493209921906711209808061533762739320241759245195422477887266987984594284261329203941095054486893681618199904496169684968595075102646234178348336420129971553487926548746707745827447769996507515012398033462769213230784612362184811172255092635201420684153865628433864714123699125910555289902240502242042106593077911844983646119999021741364587701626656392839393615418876081868939364841940365308264941522593966884044755894650289019899360367576303805298383170382493102228752115559092484216921639308613488175037355499197873099877984432802370716986878211822062654818628040890248620292137338344459579711231447170366257521605797972699668097632543238205986652446207257070179005812419127794711816316285642072041341494712073033065455046250803592575549373999122556630916645908084227677276460349673717650619912697977289599042660572033324109549830775496070557988844876006060022092407536977527516167361171501882600281013145476212669641820301676086600899612655346251532913395325534186792698134421523048086746547207540510052824261562748032719898756947775837496078975273825284125964277468395034412431297876058814401050342755001374791554159750471515045319299519035854292890384569862849788185362855330633601873155849198002345403642161374852969937609910286770110429194231425374317476064670629793885567956739507443806968980486419360992193692260385394894671092913397349974660450474305594784579085025172019603629240485802253579557712644608567733143201210549079908393146994933872157514079572508475765254756279093709338956485984817692312491668694975804290987651894634828932486546282351216111220691128073900865858343555729930037617072859688201526087304859324074259600228999368715770899990571596999369088767912994288121692575525789704109625048753542461707186604218647418872594063845516290025281748477573203135248983037375858927258397933870114415884471696097309684088489659393864647481356264010343418514548377158318594814946698759098262851369073207699804572791360261302373708649417680672168550979112631872770579476726115825773625425442370464128598707089218547200385319180396501501249445755739644294134508011400834593527931142469286930354779319488935249111031837614902296020390595697822572252800838585931215214337026302815450844857021728908551750545155069930315433284248056669662804334308618011584730239022401434682362860206686301552602210124691379111323176536531483915262347573662739041229354522365259354723497560712792177914419661343347294349653373444602205568169879569489532682488548289641051636070022301444222400629382051971943822575623747427729922910362677087078363604806480119511352438926026855955937149632033924177285988806319759328239556608280802283286279472476645915361960562246419558496128634414140430697345435615338197634599954938891548683592260122156667887536290013512380485099340066673304976542046435605556105277413372868576861425026496610917703840266698838867071170887563189162768043364280540702145034263415167964689943170121105451049421788067294027616049076247726364933462903701596533526656238111634558178255191713615224454311997397697290422089716718497166353113460413725152106358901950355339826532440381617733694892883092367416555110011510227013378511872305642904965141281796493967671733638103844264538645282440346742147792217121085559424162370143067394915305945849888069218108794493938329503549537560000358638292607085663596058357129502724404673062677822191510597042526663675236188073865196924843072123154425115674476483667582263905985309904310031544719978689719984140936430483396301087045469857746731207082864410335981936676268275473630899172919143572141193080332116194101241223613749534187164784578735161466380078117569025467712244108720742345558171268109166530598562963420197157443914276220201272625698281211137805701534760882075100834490548945481215084419287579510187252891927142064048664444513858187786061743753902640065697743871378126595674371917741446264945744199493856375275567112551862756847840715940316073966878033782942942538205253528246826105954756162889843433648438213545797931095993472690045595612142829529340947657518515984604360259137764867492404312424337351779415071231188708828327897195071390049681724804590958261983368881044002060825143874820344548141296271328439157953729520126423972208837703613753845067251226392444462473098014833390579790923053244681813703303023979446149436305256154132829054030696644509081309238885079060371803460916249141770961967911433566224036757230724899537539985520144054340486345539938335561864278210569863256897480710194271499854523526349195835868256174524062637922143124587261929705871492381724265683176242231712843459634526190686254666958579933558517325735163818845982406776849191758360142321556860359532419692753420133345878059018226114785676967909943611141477424601617384022482861004387451862820345753314782530090440113270963595160441579238840644431736241411447705913875419202964030791397142757134843251939409587835375690887091831688890442270253577965548270904001699504019132161119213755600724306728532477442873516460500871262263296806715598144789604773442118492020455445218174074048552100342560487842976383149548946803214114724976106643708389632964241185527029368490482664903042811787417045177380490868089001971698258638421900986450207115449009848822231731852478786940873151050653606791375447395859953802143583023323543221605179386817440560656153738511342415880199427551463889249760338776077337252178203623569804828768913691718303163958618707757698868595094426744012988695062505819357688297294816826475025017303985221382817577770109610858001840536516773426454608865370951535484629626080318408534403232254252255740827532681751582745990632135154275387514044260625054830640457321431204475313644302351064537540616999141227263383167536970888246507247533864253138797861176339240498611519193460441533472579471761994511455644002847053136649692648117195809488057940932451796687724556639764669449105075018983260070756518482661471968002528497393855525748088550639193669671312380594188583098017264479778564442961182211671234191320499751297703926306056644724817580220957773002052343551556090549577416249714891993495417253932390072221369999532385939070793245411153848565199753207368298569768150460480160002711497848324013533953165207695544024978561952576885208071341592685500843376773828009267472068297502210754733955192926366069289759042950259956046905409015189383594706894636316471151304823513637931463029820456236172716301783841247813670396248094313293961155093075285945835902857143187531372496103714751962669913455367160752949578917587721443010150339186646460456619100451388579398657357451224362639012729203968924639309197156824438127591976829868008362091803781170621081653342116681521149973955139362283206731762070116197128381510986642496467649989727135210407230083357335769089787855682061955212543752475746702351513579235094288874456820442987704053082209520865355222807783442100490131672847875354546223416421350838100505140608047762658770102653705022341318691496586630546011055050179412746462963477879888709437418485766028443351132347310384203070153167903539127159196145318224986239991481291936924992144329398829646839610770628980806334628082766925942672471669313815772273089208694451390958606818527463119136589094651439862449278274300603760391908221457325598214589358807978986710988821407372454098293243310878380131421428892787254543665754578079055154483557431001895832072609226873529095489638817972480797062999359365101782605750641721409612327373756718074731814867668773027158027579454106989969202617507247922842370410322363951620811450558143426735444219574302204598996131194856706248677522927207073126902581913837767888573847146161957647851572161515203253002824605184453451786527429867734608419213037231949194792975475971645510698268533502866421304383783525879935071757082260106773637084825270843594833300179451282171809399489044236169337268939699610092819405551205152516186591064947929225255714739877114756876168984917257869258051507133622509254282427943677097201394107822360909409995898306232722627444789030100363710598291707283718571546992505552493519091122927797292155886149400336390132522546907829903026357233976246044991891045061214133722876534042016415671882095177877386200107843090244651155344191583020287437547366308235032124053378173033022366135095043521709753296093916708456090517051543344320915116113983632086959173509789908799165223511155314149429019176220202056796596318504908599070118848742111436665864541459381018402183059086227390891148325540090800435755676193940010412749128406942807259118625214293866011179904680863301680202121210304938135910008425907152717077830985721724879359342267497456251512701744949938908732096543527387732955935768512303813924973225030476792382307437203980933153866599169464779919247531088830387783121474202753206988993494350263196362999689047594438581275648897594822654066255684843995807430444266082466735385717584029974934038928760924494079122096187400252499634732932309470474920278557462954337864381823352535008349305565850434237900450637771857240036145752098079142292928586140486964425545906438197162038132271969546675799009067370729285678466786947891290777899031068700435862318259336494264282193178002448038055917480424231777169897353628561019929731658136781254993493996822046615698501874804057698961493122449327026154930874852143372112354037917669198980694437022093164739388163562265034766399229027885207141271874565736383266699315812780664985414562255004996781893211604952387160605677123580567984201032327890340942717248001252462477578860011195013152507050743563720594329510378266633092582190059569211661443765845743413602582750595826041254491012174036663069930469793600720370967608602850662097362639860003033470328477143230869968298934327519925118280305793053966352029128909077198633616217023653391421858081367699673597877979262164391347627851275907452074427583323207692135854347783784610715992751645813579501630943438748798418373996798240234172634530106937537759888778756528747288906552933646583921817351700433207041059142858652553129958893114324883252922084650801565528744423880731268460304759201347242053414447418568171986331055892224960594032956923297918392921673389401419519562775368490859339038282199341964505667438774570474789647346011212087887009241641746509491105680292519067301932540623048885630199703261789458156336042621387868791572668702719693246107569734195598282124311016686003052516648675841719327146698570940595675935661421712381015701230313637120885611122739993691526279163649455460778132890390573235320899678081659013938355150953501254685382973818227960378797032958952495793949568408100766501909295952819977693141877333377751232568189602515909209439177840243748466897437047503022703221106241252627120699329566972521860296153018189195994917935633024625274133747308431874065427051471196336829975321896051809656666617894445258776896723700145292700031055831018614186189281613376029575601979545925975711309258329380919326344147633232379181547862587913826230180405095559605235903375475161407909470576360213788636050653384742689783367385174368435732401868923562044365167546377769587359090409816542910713017921384208380423736212793859270160395097902637781967973032893167616260184159226883577822744748760616194687951942901277951745529537329413077449727585169052283338758865337146782312229986264406714004843251597486057964835428055475591843850620626349739429391324189811747477225604069721228856542055023722635867427870631237232759711050108880524841338915495469823415107325175091572361398972176267206801296942149730681604285172435956977926824616887015691719225703446963959681522890924687207226263960668101240716371098125571755010092286828486826169191028722545266838436151224092202724205351763924689768178204388341930184049048695056357888550829876376785186336854563874786207592270240645048927636392829112403700649271592425923975765994134540856491055468323285506880542066837796634896165215217861062588565295290251645864493675237581958869492267066136523141249541255027641795361846152643467462946235812234237361839432273105303979419365086881169692129256105960629534341032819497203581640991380200074676877622391520034025610760392924510131190804217502576884165473894432665009638215668436915732797501053843216399788264312628313247312070849119178105829404596727872348801625254868287476470580900179758231111486733653866442522619265643555041596705873811265222287695025128496349957517060964286539593193781958508580531696387348394281141720550499250270513216617307993811375151323626430861655526854192393183154836554063460712852758181404764999127606924770276795898932767596158155763304188062118029259345977455269364575931225638144896483808455308700504374213367811155412579573627430136330880332896775389256890104102821806610738745516289325759336317600411941453098455144933051599094425062954451456699076191864548372887209733460729139171163317354253642097545850113143302319501474455101698864398901049431023917467846605270526944585101110331556781757786295959442722598964815676562748818585628087136617004306156578337713343544184766145266070372411001429812807128329943210169196150361709446751581960237971896367631345406879082643825439707051065783422007640596518245285880060069356773640758274935149913942894264031477574961354339664298293576594177305983649953067181041849272409331273679871092603641286513469052492187592961447236242827534624886955738418789880628829245903441189418206214688675019721893701423670606891582334093832575272111486664366635533482349943959736578441000174065689541449568392253700137123331047001833039619012883127414524877116781716332404987577646049671846484596606823476083178895182935575434990571839312474966712870072928407210228483395734648185185144667685004299918444714089398901012301416710681894439081061802477076197380444414744688167887240067655431541248229923517990561832853261294209508956442537052190369954618585004624559938908067224756822106812726878452725457487333750878672323678279244966139651297394466898823341755535476372997834368437371205903508276927799011838040405431775771210626889317560433924314266011899911788709320834555016786020695531696660225987713372560945647337161607141779790694379857059708175279415472479601696480456760075230668818877359792834117776685164433495872930799434913716317920510791724719307813107869966906536425130145440219955086756075615503793355345876932510032978344655659936236550119400556601707200728410361011786144474044945547666623481231755799568335119392341297092906823078721624498491061653224700543011709358478045103312826610178201367144292143569293626289852569038138186099305584740132909936973462524670987341037417457036058161491958256163977494898389971573041687544680027788103027888312764487267720552289143076216766419230314460763213372494137757664693656206172021594364282286290051106134745750990938611828665250432512523688235184363464633264257982790305198844427211516650009471025475073259132460552588474752330159125125981699163314808591450403711623964302867180254959619306141768475261193777760620825508986167730158387874909037153682336177255337190799665553543447100803853255175099660604554387944751222215056799810941935474178458584586227148489177375063707194232659790206739688124535773505932654256088599931098919774635314331287297384158912112406370060288989846512000095457686792045344252145667767421703307564078060670961250409463515548349486123800955348523940539801989275399944401679408189595146189215010236524650196979777127490953838486045676816606650779372457131624813884175739367053220708916923540167485321667331523337786279422827137375047781007389000358003520430961350644157220285317781355107110837518653168743590498182432105384455526197627696129947519853514768857851858329569161053264478410805600478002464766111119696136891212459237927856620851590898207533263057545566941458227809213778648157457357903465190198441061685972768024229031444128115437490925892945643304200318532701878439679373747610493743652525825348510341571168535541031751975660453607046206802221468571768103680744688590454987737040593421301266632669501250701823849312576913638400936375514228855142922206194039074255539486201552833030557742352199502105625402227341569635035497891362042176282083746874796850896138322640923274500072963287026207063433831678390117709222097528193425093288689732747720438378756813632039522748105110486518270082641996892209493710808249456378184433765547071189720673874915456213421160880249628709226588537206731968869217335137684726474556074338287636139169535535423965183689633803641437810039523062711462058654372191910271839811854425155005919079498452667299392741710563359291282025073905584098057862552057593810030622113980844869277590043639610389513806559079417720901346261586040789794772024340557888353113614341237925834469483167568979423003683960732503457872614605913532910683241689097858077001485107712193237722708900980740462650211498234915907352136817202647119558305637173561053217019405354999328513372496756399932198415308148046854696947819166225593743383424795872961977662983558473224745092093332671336221434909581654330366947669757392384112497863992361364586445475500347608498831955306980633261253408128056440948176270118716082598958901460162624836968594824584809985730930454797508079572039934451950354137834843413849940230263769078368523754268569614042933844487840331915535600684608041971555133448060301151134524591817422931887599406014257994488129013220635652341239302225450298206308371737974252746254645421481526118886133652712642580850669160075196384573785897091271396627377196694755070959964767859992413287837598593208624941239871585555418863796211469933782921063815663263438298531660121107297671084359125182538317324987866519675404678460578593763868749039559712126607860654725076119084652813265108086754911217940878472418996433880454747799756655182108887773516877669470933976581593707835982154886538248497918394685057274603560143187992559685844522942948749795598441722015353584748230063862610918452742285788538666789477838470335437967602295981999101323873054008273548619176644089455122148088419138182377590981405507354075484911790174443859321938674664097390166213238750260120854601918591762027257122341352353629484209009371250572055807007301562525275017154243913775005655277210004623709762088959948472978625690227285320124600208602446916932166874574819488671007570708801296489866637237737160642775368355404709761147869638644662330299851942198818629356626645761815836729132220828840149548190586063559753203202134942689733728923800037153243930898611446959229421161548610593054301860762946230012413101149200630530359445907008829270105466221382909420615676321175258126160617541875481350847355716809083121258824380609490521338251710316258873031418599850565430430106786326824533884133198751146844197262550808453109936653772460043315313070007558395528528225387471695884916841976816456345056361073429773224271657830001962651818103209011829781990999653940989350383443717115157989197621817222294307186139375645100576116324698485711640653399909408247821436288193926882522336696446188002519581971212746641010422144324251159530599252330418280308955828464124586580341007102089595331987603462895354161124134813896526872803765948912006812656338210190113302796833284758965140635970696640465779425448826639437724404457546542153132298239879490146904027808647375066491481035975078834670104150855849589243852885046804659153643119988995430562425422863150993873116612082305637690216489034690530767583158478246635236621783009465273842567833240167151390198094925734997896531347190834589818872651166184467632996805544055184183549650708141546737004135155379656348140661134181062098352205454289881087565677182050343927418305825726306591539651505600072930252867135487015133661750374945274126460116665709589254578522575952944701387083090241949621662995117468133658361901561465050864228897376220872683245168154009201314944765529567946389976949373357813914785705580144369531565617924668069447400862288232555420068135368469746431886593989049468171239333575882919648593424151338378081524199933543274682665640245403234433287060096466040785291139585527482486378412975009023987627506146002474911023538273580552034066012516012732351996390721285701688581497733562823169772535549337035037189825388921388715697092001937111654492730173368347055627796048770768473867792335458045475603338846853871525746368316549650287859432663805796589370638294073530726792839606585883611244568702587851725034839921272224438656722885458130083855657616260158121705433250389454623683597344527417098258031219652897556886142316214303055730953005169052643295914444504600154125548910502423053893932470764152721015750742822904786654383501030620237995896424696029165760706521958640981475886721256762014907535042518290409655091219631849699883242164569169370697037389564368984066160003069012262756645307106404933587260791890333932898556484044273748771862000721025626073549073932738710039846509365858421759269360477878101290862949257603970159206052524850125311349450268154425142395420932233184055766247113146462251110444272966688208777814413201139376663763731273207382388642511888135086018552753425629481962180360781647827837978558551839697562524788076104209687541430368552662547443846400751124559096526785399658561152312398940104527709274623724111082466912980479584399477590482486254333743964918502147408286187797532585172508812030759763879286958823791543326977903313718882704258875299969316239355221021852265871283128318269857464236145331079964751136929013881371480305787141014900964278360251023630945930119038436035130512342428683924927562569619465393628305428933467815048993583562992540031980654491145294466678405299710498009479268919844893995367388929779225755468971250111305300886433681035911196989002158640174191928767840363833102026156775950343680981590862720466588689096251802241893931252761674290911973029012361902893096235723872994000479953666727651357281663816158542092286566132955267179532403294718937687603611620210126451909687602879658560304560265853268635116652145589210668610471372918321207364243866781911491135033989639012473216822553085187987242290835899545365142450041242106891781586414447780310201560749235458487534188085699077029056449964845165239854827629316795009496336850995733721178935727433513717240737917802976449674972060158334268333033215514373766741863197717515261936103969278480144145676386592237277453305065580976653703918510556348760025918211570474437701461520289005029344460209913321456559730899332111986529891602612365285468781669055044313816417614641104923738735538210094793369933502388970145524825128431230777290083920769330728737194091613772743019446422054655362587452593294902337244039176419915402042639341649873638314840920818303217359308485228253434392651527261373099085140710748794641072397148331868369370376316370603886030142622894870225746669151565175785484725635507492607186328490459674921380203401718507917955738614330751510288077216717314410160676851528512637130559400869957519699399600722633453530110173433841520582042689701465076358499233557318526539333964303393357790633860664955197237182611428027488775801590795305564889391789509158038031313815908941236463929109861740646438213848130938666866351554208921038340582971021319535740414615622124532936056892330619013259421752729262206707916672976878208566133263623302170043852428042501238728955349959540027571494978911487808256918363143216022600363859927261223798444944036437446574433880254722826596748479236606006915247857863258376046186346908341241898478749900394378343858729500105689143010814564863606066577779708601491617924002519343406244402708686285345851122691557217109116688130518970220631305898635626534350818538730418323384258563009402780448215739390258319696036314539669584476396613796869791376177447046046955683241390166167623110425582742124329344638832787843335035287170766024666021236827783293147852172708613323360136005684035939516668781244310277206831303065035775971680998679508107083621452525137661641641852496376978579439873346392380609362978989362191305927152822230907492169714347897524704279319608701226307325753051565033623134465259908740319822428758365109855840990486941279221153476747152150195599010982648724868532251140329234324799081352992262611982926450088562569095450018123619759492210517724640355666957554187603034041956089101908466551691127299177684523375360126427696862589462916096118393057044022440586026597424662493014209934054891267713675875472030323297895912099491746510339650288300436273134560190608539710730027999851369759399694140031556413100368417873720401626008616368837954278516298564044683073057524957703291855838703312383981385921084214017348782590913407620717561565378481441284276747036528037579515149717844755447796518475901389504041626797296840327970305508200890275305272833755624945467722831957078339392739644496029537967616864859017686069961596069616453981419078981048639969724892672533415317114026554380573888275604418836363604023830353733639818842302907621303861964377235357472141227138310053289455748475653376553961845349473306374185295090953941068345713907722083780481113188236959378339335152647781461118939708640691987101221572226942597375731928081359303412256376618770142718230218858936962608977029500759872206009730331253469778401906241124364938009122756386526372807836079886850099424921935865691200773134644906507310106502928526979570267544306528884947739898886675893380422968151851177306679324760800710119935116062920444481001095740697804338713738391052950098848838212102576531702757880896551787232637918708418420346129685743733480792702907790466061401724855257789701316191559424540477488030378898203367128627989922175620167857244071652332706323136482304414300496507995338467510943949496533915795249292041697552127985779754446190132475014514806068993663506298209282309610234351428492646596860638095549375167615377048690460082690066964102777904992744608757714503517338958316538322879714542282140300824542243737720520002106132243717788614916239024977301533746823706536683893885706512913693737010910086418572134473179262684941127787950069420074053415385950406216311423153580460242181572261420055389741999533847667090638669102947854939314798386693035480257228227867904759188822733996579933500856648964390767256462086859744131195063053551715594698467986417134720583290089467008392827893176559765306731619735422682081931473686533542554532289535667294523670512661489633688548881305341420948582815544669616220047580876873767549107709929305864875624517299163243228564518558210151476861852327638847472690212433859311517080551088301208759696669111217794419342700688976458221647679157981549370327840938578720616939381293480987240376305554068441996185638545712318976659226322315301851187971020341405289038823129207550696376996127381430511189075215291490672538527543528591490225842928884177374648685907968986798443818564868448380064616602832268698470923107209704012908874843831186325369314874202270968179267047769135556517682909661223197686958068781459991775499579407412624406549870936135873997467444347937577235819720394312550407525146650615217629764577402739148902209061370122186436883497521950321429914126101747420176386108608113593591914460412658463615715135171848262959104159749439159060496370209051862909840867895421968261382218480873666202791382701028100739287107494284315026886814885002410428085718088504453612944821572452262799193989599568262426600264460464667541233640723471301337299677254333335437806563836579528948668644412642035476759495223772040148595561217024909250834031204837615832376399966903708406340773036980029959965268492095085490359140363561501443604447352948641144468796462946245258610714812638816812611958260362352888681505052715860424773725316202773603981854639016900720441946278923041845628385726629292080821477170160536074771717042511114742184941242951806130206298603836320018106611897352006425488608716951042668914027891339120302052978598037378223251877651006523868243785245781111893965073636904525015241481933367733608814357430647224085847335051275219943515014353338117845833750017183940091103349563923321586285329626306433723633689861237800296788873647407540781810356686854105185730334956156582845755664851654845262050027576234024599918074885181394438542046807737216186831332998345005943210898522973941645448845009332429140126905509336580805721469480233765102905959493759945968482207049122744786398343399781224463261238929208815461326726855706134631389663857160321348900095081046210246058536813627793310867256183603726588807009536262988576703587887208185810693037022267526339881598615934862034805038441279406785661398841566145881376198247116586432922628444050960701227125761119719099789215984472983254986108135150769619108087723057906935514347774910299570800555183658057121898394046845505343438623783802269095707287619208271737625512256736472466142998178669971081830561757805029296297207417845636286491577937405683251236399847426895756563604104655932170301333515421042800331775647079756743384972387176980047457726980122439788561281479034559027886971299175828397169868008317276519246585510382600828113473243854588592390855735694942740136410787076633381306473210038129524757281271905848526835201995426401276714770427345620815811956590030141358677306157284200667970165619987640569359657442517573126930673062121232625617909444668131024852595991165365019083397843349745405052097243392329109169684360600336330330152109793603080374543960105474927265363910688741296284091064401438347391162676688107358942639849042126790830100937598149631897493307241114011725935250560930262878443704600287515844276315858027441870827104290592811343909978359370558273333181237605082012055980358513599262383075490992112157836230199190922336530562827585416776254995819239411834090160793926671189516408197520988005233258137561909587860786434565364235539587310411089299396754702768614821776501118528977315663011089481157464250176638598462967154311100802959230911683088478718933249042204565798552244454653209221960930560614924193992383024495950647378700016237535627552847049847060872762583071206954307779897864802538343057116991161155083579003793757872289848478367458582780949411692178677009894663377957843267978685481794072454789399440231226079758888707617970303345342519703458190973602138536993664801170651102864402162658650082157862444734550466189217373471013556917500918707365423492127486638989817877517294430060619679277889749039070271669280049621456029269892039938150299560723174699581216083137359493343868567248137494435215573552271608202336670175180613717363127813425248780390531695104928684283017967081552202830049461288060826393577022023416783598395239765142559999120756345474144104794598819748493367500759818204265664258109750402911380157809007791339570980812011108487179019459960880959669300924875992762580121936390352848002861699458093399443923688066375836701067655915658338064805372255656613879563444748895443317613999878572280714632845145374390464838668867718661058646596473116854807620370657699579210458554933013053678923353391224363478758633359967588185065951545490618967717508990129843703226516697542233328531669425887612650853493047210667546914884558969854231607433089970661040414411660145861272848149018844691417354454528972054370974577828761099907123413318577046279083330754470378446611916850775397858446095475948175852725115144141412836411423396268730015049474109289562431769082763698096090071976529533543313182788704592615890338556131052087051947027952927200770370165145240524498087432952736301509473443101212588481904898802780833214614919608322342865881774676914374591896522438628088820196795725160641417654120165304340307089620159392560919045436124258376639371256326302167078633774540717529491458466104745203413320565047165773565969793668609336716682316031177139308533326132784118069902864373408692175637837119475942640668515537259464873744199278454236652445199800166799229585091912122983878605010358314639558922721245424517556259039732674006491032795494322293549035104796202703995180960118870068440951691768354795593576299798960840694529828090888905201364573246327666732948990098565885823914842111909554361519046471245258051622775911620560212952330320698222004672566155956223520773857345849205881012649757064048428195085607425721662705425886109047824895203315796143435990097543463977530994028844307799719076878970908758960562734338403170271582004819490204499541954149339871914460150171113773674205303073829851860963046734224748433799744199627480269772927799444998604207036501139010459363887139151730386334060366982381390904522542442245566948228358379756287718969325942578042517880685201806455449913623735397099887217805214337102940776759203492394644894669682255955146154290760050951227993494177614441629348527262512684091718322183242912336071441410181467214869281806810617441376563528115075356107788268535617191970612546364844304190467528673447154754228454815957377999637719038313623577622600328917885214878716895240477635090691438484120950584226827648291807933276582477956372005665607024190972251126930965342809116451439158361905258214576890413177104752570633424536195968435413627636312267265686285263847580918058324357933056336797982106759747694480589271005020100761010046058017964818893883340169141560032015165916972527699824359717846814134799574768321864281525917006451709621919254704126196363133404982640744842405260676171562167752653907436206484414582321703238142925108669343369203569745203161459905248583768234485868325357041915740741152067750973882400199710653940229701902720949454048265671539125109427307081499500288628158202515253301367006746232862557997225905964603252001795679609331567644480557408216839304604260741582881622784927307045005587261024295779845861140944426282136065151366188383285637038442558635690178202468060947217038499654245761573378683322923988597595932055366811435306173156252362534929045800663095286148609024420276615053388779274760760209571608864207983583194079091783358495836776218939578864701763810696777430745773481486343953544605979144385588564066721407884687812664266102257448677568361092357054971067556954532504652441552074484807351347817505669910700592991241511243997962399585571899783904553732588781332606775965799388259506922703747997387092338526511601943058949252307036898040080872275627629411824494013851576935721418746661945837645739597764190808445892782163476110174109922133646976855354591321158902881897137591989465580084431017114149486514999038067971212684336222162449947530904775271444436428678720330363688867352072946221147706504555829228124061868611406120788648807716727968396019577507709043025769369970231104100796157860701829938154227054139315539035288284324416588838632114480971170005936773857388391455687164213759731041065373891013000084334381393958676706684170426190659856928243068082106754457727059645636147336767306533743894198992263415216761767047497492732519499875420472966259867219920666847674232686985468722493853967039289109434230182344682942115327057456880507959423895763285165271264602366543138913507904791068345950040022881018736246673662503900012937566427575746006575536777651294585926342822409644442670668814065680376636564966273107877165914361829918394536823009946612358534786740034753181973767607757235502115443104766299027506940155911330215456022736054460851294592663626268635922602872943207841869231771135714564456913256333375265560565025596411722853139433370618313698090128182265598286407495042873627587822680339016128746449003219339549174584370895955798933537271214543068938472924423559544627604306778357778352852712290361916710561422359572716623915246807684365926162056236126358328283642340836942372034387794150357172048533027573276310011267807371396811415546809669019068572909907396690913882287202784555572769865292996462943901322369800718658312774744105729616321630963773676769999322214100751098088960233507917727132651689991905635944431104371067347391555636522394651881199430094639568213675448821311102903074212427035845831672107989403988159399669015923306747062560393528328162239999022593675267934648893833594560795916826808898192351814956055080673157608955949293997491310605810030981286799828256703637577101853468177613455053016474673226771365279293809960345985766643729673822758818444448437235732372852790729181758418593149659470734653675561717720975572842157360762618294538465445437981443379321238678240152345155654261420135392491246171001416161691905378060733917342690146511662775877083694672714877779941695384112473578104393902211203594637551986716961044503285183442556729049093615365803157777103131617560767658581896627373851851014288886190669771233274077723248106458844678620583727585591756744666046709636885766607136194914948663446852208559906895934500856965952743815166855523421078361464373445038355162184587579889699217133558558834150575556451913312526315504350689080036503825341702402291055578448165489325656703051582820334186643475649428584463485827400438149760985466499014504503149375466326801625884828516957670016000420433755786366214145816632658613023722403745962740993587437575950676457951352513092469629913632263935384896009252733025155478371654911741524270018581640059303452621887248224802529116511919431275090203022670601680920560275851800505511348218599610833474987287345012853347810195162093746312390705735835331734297222046744345559774772128405400426077823217452191209792439780831964139171880060378199113993692096151153226825008696101639272012161772797933464252782039581371459324495950747129190498108607170652227172109646225368763126889544684004121300670623013039698823353159082043006670089342543285832801963074854301728470095123194864127959790159621115848274499473092999535569821999075588971716006468116398644581700691921517868883545698237911580717769364618777152001913861690983367000015502643657907905974840414789274608915293588048472860889986455159666318722453751703760911174643577690749079370257499786426788620223197087751610337767978958013671690190527755716020823550219041619282072805516557474310085207095029574469051255806813178151687853546488267319780049667881959658712480749241682293275560138309615198086072020424039367512997415059402080295123306554663165720473937020457125233303864621847486227153452091837684977566226694515910047547811885512465366656958672913777174490112875214432402420324581595282364138055711636617919815845275338978833704943956826110624013037521896554467762338754173701064012358805662443565759847453309486163753960700108487653471817748263883482405299975051805351916199963394469395894212109999368479077447851906318119542546673601014901558701025768555029706988325867440080139400784089287768285112160252500450055064851969116355219990906300538200065304028041362240392941651846502331753010382621200518670241516427199534470996064974959606638324108837913863757801606424743951933983265864114743008762568091221450281788903155059363055694627941421696341593731920383528200619727903148328829374310196226105931242213010524590210345035398462295521752305895441246076202098755107564204290222067667413978874103703219963954181499699172466673007738875213970415259486266461714341938913792561501796585959104753560063740117948648385573044477429491795726905386851435563373939072525354032101658113380863419320176506936939071636780399447355040689971175761487826639817935232853185240968173750382228908466472582376570170071352382546584061022682202424460507387634743046641580542065714861118034624938687604235910784727847388612884581297136092481168097414878556148567363886612120438655954286556696601472295056181511840633004075012536123024496206025598931327301433350612761012116898638203091220002747756225489358877022310270251851325097480646300549961828571699079800428111923420828733403917347327782145068535838189129645445671016676267651999162425916912002723591701573298541080953617235375502827571374472903431508990923310557133207916212101773851453648736798942241287054529257576630941539914930234169862407853172627060780297758833760464337276264822555048606730675288179759282404367820540545977318195521211106626617658824932147592994446994370037494947045646310285330085873385856484893079068801869765185786692457584436328127762241486705788054152974387309465743322926112258786543652846780834401554578763980646653221096613002455960693326894658406622857792716534088616791031547507221285863594613314308310906358167899778544254464704735535627855088318306472112983416558013621684489543477083490341368978759871502740944726906354256622748490019991060664298814555900869793594032418047547203972202931642685023759998600657887289181982630885515578186065176955115718887045156566784213618305157458470638847430277047089562709882747721334340696162457733323587598263490630771621496482663386582570103092624093093567958158289675731645612923713225202892399243206226435607242378586858694660285268234951591032324888953980246941764527781406795771924208571769131661985607207611972022840386879706814194439070182011628871248672405326769019334129874462513062690816219850309157557865583065516042095938072610169836092890523737207411503613776217958742491103918706027393341812047002231454660856354439440237570975970841908134611978819739528199683681256600540215962837243287848074893791178963126704057422998455607010092087822649767188288949921697285207143532249232541587732591966977144107410699385360120355274483367766115260435150128695369625527212102265691691303414093228140931975441597697511550803721984679166758658786860890039056803337137379518743341358687022365245157792220857263118645500528144370524896413841606980942963824191271763636624635285788235689444507576406653779846945653695017907233287084948012201843424795115357894326517696681485936177268810539889544338713312326615655029307565780199324473280728768500521798695085353060726171046041888124764410006856972155992350730959383445095704214568264796524940159178215286342861304015981753321227081813851722247879179766594002022184413756122845904515624725174149098890403643974791341741305803983677124347657884529151363988873374337270498690558311884092906062623526964864464424056375148049018127945450503630788824286061531232317617452858309691838338229530229787655984588017053964347550986097793383297430979140170040362078398182514272971948673270446696778748429244347536340726740707614648794484658034956082866967835872409958545638129385320631472701391704944507061066321302484011298431884057002768072550000396568461714173779075848662454900593455862680562409531187860659192345388469447009993815758112021133313718633124860425985756176477019421284579302288260129198470840640380265257545707579905396330157191338932136433786326316084991843160533563373875664321870762694430953776249376781411118428159331789761209855104421081440077318717366881690987173699224845119748661639739052495932380259067885523619143824654151031525799088739137076461047617497115957473321645980343776686108440948328380896533779726559703151002207147278444434135303891988246632238021619181415684466400861638378273027955817745164446899742780498731120221192269799868294640363476275445229204277098773437178309080162779226027022334342994653062565490769742038782024765624269526874674872080506166547460294322981174079403038823798677920452323170621771641728167893364064464498124936075720142325287094616591890502742718927006223521591122232221730210861055403524359464941895611457819464231030113466068742832891457909878208714777782671061681495443584958007703006779492154635422972372993074548985605420779372397786118783289427553074036474367701554829806888824056754262373186592095507565844711786386937979472306202747176059680965541716220081364540664039209497959333502046288582379073745561895351984870304576697479889964853806202606294185460744272524853568541325683904616952860862269570924943549310566458463650134626311060514088670503858487396935656003003881544246411947901215645571080162198002636589905608786878709971363347919705889715707141943113450866214912545816700863605449303729766098072439605880116451226918981545489665607317639518055520436076297467947145296077999827793526019506646692481478035015816033798767568697523388379789435149246375055539005031924885481483848179357648662154079572157476829534328503779907152553448089274693796838968698992309740386119650493331808111939576717260290537415681960269086910025631750703081432176231161937549690380625967708703759471883544359243467165919963779153805572378130432712435152999549657925512815898489701185633935710140247726177649531454148495384765453842492252853422730466507353509364695834666214083864036069060003443136982011756125043224315355132790222337027838074525163527822502717603280633555515429811789205928153928095119915531506427084202152015469079901683343156204365547140583150625756950488797030553059429939107575915488483954487872149404659857196380128158348826316974298363894053320725797653129848125513808121896472315110011382209258402987195406941183027790380427673838696550073718875119459628658687677874531483689632331060782979874681929842755089604782493717231598370960833042189419912710690785003529872963998918281786247959628881193734172173656654460124930213058907051979848289116324482875331786103706553279230203789782287795755057506944992633537560158761828874987929097480413678204577037976014951379621557872143413508356502891113669398912347942791668271890687884579766561893274300682813165475298852917844278781027626592511706861256259505008563665445183335257855539864432087242573886510135560268151055081775829461955411857336333027754877888145700356739621158551955979336223115713838161258003742220312565889548079965990532041677849815335465653409751654022889489265815346858084511643539621828820940258464824232273643544548868263194537926053483493284306033191524276460073662010767062058443465661514209408504802478576157368630451784027801653725750054783282473356024221775582431989382786769080614009707699786746710520731791320073222529512240409326373384206102960700481715576106445389931732265493459031340450557129538461759320379830621559451217877614117094038980434352602549527270251646035825206576949364976974243556255906093061109427976283186751020551579618949427919897685086283225540364706648760501615595055581013536606558623061907929605669239153685302630996273416086448883139156010485082026615021254552606204115559528424374177868946557418969636424660245929600737181814684040141399603273928559864681588923995214032234871696369464486897509608191992915060464206738113598386272054064491805529357666009047691910337820473012656564541574495346603686040097342713069952240926715195786170915832134447835811648741901094992174375068121323225029670916403452058087643433230551096807975997009525271934397133819682494802432457636034604107846909710564484586536954604058310635871369937894739431625399539705639989921619930349241909098029781063561921630284251476184043108685745896424805568310216541245112794879653055054990675167038775449595485370458035767757703227577507742630702396158753985307359490427482309045000194456326618386980633764130466168114974112681535905091684101459496710863647627986175530692739545077739103680346941552062257474654246689586609575134666990755151313651261445019368941889315848613318538961661508772849687695370461021731861861220662305218516560814835970837555674020009532430438529416424888559774702852351881961771601828029553814171679530428082013246866994572455853963485439008371107464178786159210290722717330227604653566094754693368837132259937131434116633632641147414172813300256730486898444473211414996765962170128617512775091034367361684895011955925684733981519053653542842341490515559508329580766071410990557993552220251308839841699167789100408779779377515338504352159611182839817459950225683459854263523360647271498063962901395416808879730337838201244018024636752927793368504444528501240429113011544288912601129251085564013347208989503855338269258611332939853368693434322002234796132333035822620521394626545894421382282419893518730227692301359499089236032760684189904359815628754061240774744774293608503092825892253832522051863014456064152913344855852084289107508496180593961336471121571740918219062931593541590759746679316512159104597448132765135078761592094692475969992535294183425666376066227235334360833000306525804705457670925669915469159542025010842992586556574365837001342820304216070053794316138026553977397077776429162073306378269660556512411157747445411044975418484145855310741428636944342180089590565073023114731097458078899065931067177278129006463738374717301342739725650146936493802488427450260985164906641113926355970723347475834896818766286018715458740848827570070418673616569271718698551453251156487529172564822750171958879615798958132408103057949968265996930696931118093000269939545380048751969479553146123548387866693407862305860081324647610794409512945424245257533386523025369524466181388592485321274058075435211386988296634275959961563871947733847187108063800181752364230849243010468899751604715887836332693356836903276169796691403330831090549484259041247955902354738511473550850767911371507831397679491586808246301772849593101240626870390581949340908012715060179510767848918205597232484977829444977650090956774586538501290002425302107116011421174377086307275068258363431142420532602398341524272511569545321771564027007207070693729273237008845656079074720978974522500752480865119374738958212760142421481373652364006308482087438334094513367033259599027257275462323414677215095708148874562834637475127440907196392120645597323448163143807974982865131063831429481833605434138510913605599230170733666798737368298928635107039878316971910518740396981472143292740705131991074837686799235514709670568814095733129210480520642952239192447642144723042015361380261075884945120216597731743248150197689807627959449348328661009932023591358853223553592324446183031487044200693643752549824600238051694824219970399234766019426122507042407974439838632495753812953056272492298903197368503966626822210153711169732365350271189354814553019897996254074304540221110495356026793714311829754486600071628296081454373488574680229359541987802559340842337285209577503946228553363096047594307025795060381078704780651737598706366496207479062917112380401926183807734551501918241236358450861398593002163259207167684542829405929984999178849562104182369856418659121816917003923404651347711876065667397278036490643794623629794309214974165535166278188964597780196126680719084770051287200983737728469858388452787650300504511120705857605205816319960918560707804352354061547898589350586053699281490836667108937150003034162104448864232969942943718229029569189232159163143489585552163159049989544373349303717667564722191066857318636305980093527409010466868666532428998218311803647242371911312296190298957677702273196269838151658602588585134800296253192344239658952428842285977207952781562120037762836850985307725931023710468161870444493857964373707417856107210469379926962023268699930455149477906375520296154293072369780445611427238658364491319119260276344431923205990505595526480473976768530413994356745617375210093669320776529091158392565195870729176357900800662503059973075308613039696723529927126075594264883551590902875155844392051674682379382506301340716424040148588475654307966466291541770069021604140344491006861356240575385733813381468666128649829693741576791709217706442516098162341491559429710289878476047858269559114250304693238046142324707450646022587544435670975637955190999259196832912362299334244192799231563223541009454881136410829873001767783787024317424133623241237323707451729810240411056253841679512523686079481412949664265588991147224247952570930491561119253641698964767080570798980988297057505964457794986616282508300406488397701345914603092684650767765428664956221012170132084156674447346670712578173894359209540146477551417394487721003302692901381353702287851793208489336649904137728313184674868748040190263721443835972706800342316114408795896758616444539002174629156858579618854521651041981323353091251315010643325504215594454161006596227494209223768150623593282071930075269356285582836735808460599248816728841364588303528650532246596307955435741850206065422638600447307898268103703963397707374021210036468907732573968105402453999429949915509891049009949732665804032324370927147390364833725551499856852774897067172472055111664345971160766718253000314528674187972145456955287597511699247821128442966132481037420650214996237597725463313254518717842022149090405300606275534067438935760771934785059039633788501901477514563029412292176179978972266946011039961919179865053605526139333228226229773265989342049231294032364433592600614360178441720328347616070647571558468091875024979718266516654578692813117570291279522522647185878172695279944826332598437132977838110994347495606662594093307034322904496309485011563772158054967612558148786767852417230682467130683959911566371534039379057427377094937531775922051417219182976364835202980086248025589608466903155928269834877481776888336261075584385077156425259011309098126450664039208913031999861824215205758915165421167180204803239395579634034547704466405679771297971953888704901755263136517928335451299593704530758749239368775912981617152216963384824358996196658008680531606660686122544296381696377784159916898218102899536355356282206655795491712812864726294916997460765601880100385902192204386709212905701136674393424163437410376471717658680028254288309949716627056323070161060469818809149951094595800601543666266215082133265968505294002677753884330220955422273471748540473306390296521917319012583677912564749136416577934625252105251269900947507465228214928797177037851044565458162762394645244797557921365663181423893624261724057448733255767136265219608223370195630740781302496976889306152100456169209351901060845394217388808631924156493414090859363768891580939734203063555496112032055217151342691503273263579159090362990794620717759816430172492999584120186267009283999484230134789122510157349991357585690242854278894727897996005933252239926984309337891095781972793629085006706315717055097084664300351848488039391350842676601094953714540827116009335438257481250963795758004124301538226133198097355703950609438560415141875322705976578220869917161051559801551978624951647032667524000469336607058007698216601376530845352261922687231460006876203384456698008603536096506944155284009190709203249879811572076027035529919461452463598108330973591817322897306331454428932847946986970649870794414885201667393074928902216360142124791442045891377493958785360005256500544051793190828704773206145320290341572606588462076053064033577714652423642108637613405260187916888002697369938514883080260154791902631085495050290040501632129128312260045762426369055961846590560951178685140401330646674615654923103644286338248927852703996240701826746591310514222144204578576872089387703242093135492656369159101931024945433208045077947256054769272290048979172792874013563434968955178733306861595937813414040337693680046957104157054053882678919649081805182764247161120886353507255430017889171805076670725213900473814449364475540340556079016857407612894963690270348059000405230976555081164947045947244920906069510358162246881535311682401972891653061587198784710249165726088930520767687182940499330413551555570691259489447262651506324816847601749862210540640701384222755848997394200242112797436492816514702453061771496319235972779472353581432927710833270204246635707391537903461805871207623843110076076513335359061041835159091454604853885349422849798363336481567306578863512519494598462482490709728350430386617025460638203837156889094940533526481728327507195952795144822935240417245744610678021106761805069865999714211987317094066186890935596807501458953418482997379727866802465428533631567499648109591550353577111561242402018618794455803534152080066334111003977842445798803850051792413163375061790259794013232694045271479027350579818509180937179856089685925833231208695467456267152411799442674141007035144707322709745438778209538662225642763794280869194624734842032545526504670144988062640661426686364445398363036405515007061949139756394874130268842810396926824621001555387562681728219127067932042396249851126091482000787997350700362195863456746495236971128513300028621680656149479277514805853217752884979370082605036788867699525845336921896301772521149710163655770848858669404908294881599968907870024941687516652521672288966472653905177905278469829635218392498788528034248881819575195362504947921853906712093827901234120444335381466562763864842186170270493589661650236189329376446587485392302468907614986734181320358460964308150739609581084291899417826110384055687103781104087167565976632985318550830043336506221294921304266682442734697109098477522411063964340088531218831392811779595681211313026461917882708221914930530500234761939157105174813835315033732457729295301121928510132029791566415278200418696074033725889508053072230320729125878566550549787916572551622477103371061083846730849897538058332551635444799819715235679659613663774927504691989200896100107817768756715995662279912763376724299189677674180221073133304780387803152798580213956891741841272613990634341379494332458813551256735091199126105129171527320288928439199826893829945508035566757329280684405791916842331821522929205986162431661041271864279435275647693340682900760783552653673392605083122613707765654772682756197774933787231612077524637295056488779721362330872912874950463119948531293191431962778278473991728686678913705619190978390388821790073774219201822632610426328496524241583927100316711401439077288943592404241862266831063244456584616899426710090968165043713013748737196169755559025959300260086887553698073321328377078599817150391480973140133532418753622081370164457331513543904760108638399532008409211420595219002966643045250054264951820633466927963942702798043375363246154709219905165594847552317605672492890186373735425271817517376077400669820924203462566405906790640863301179704389232128372093378184535086181518015085945040386042467528321214825259576822788939405451098467391064128979677261486360335929583579100068940811841313015501733434376441170124355756826760143872842505207723448394353647291480144473092252559990159817229896130512706404077185151557940018435841637457368726727296981862476275183364050630400564912930379891786539363178421642709635781192377509065486437407453704295730304345897869655347939103015414827521814670999516344607524360901112226903955174038497192496403808688317462251904915441097196797506181677229769866521088682529136344378929100052774575726922835752460763251427412320775890639010996290807808385653468370584469845079211081728144489828971295114549496786536887533531619807308902695820581239680747779812630555216087413543090557299741167007343477097827846577435175937574508759427995492152694617258342159861797425934950722789245007887420651115976741271224047220003041749441318771931800523975813422593793722476068587742233479058474405622730851805284942172611334510997663589973518240954406754020792048173375449847482504636446311673160212020888406085533309733177555307248236975683889813999031811563747650506931501318672694550585435017740915094618190854510962022935024740492945049684364627257964883357967857953918385296894414723068752197396100774009460502170327124438004856673293367848893812417209529144348712369195518087370665666164910038221207216006950769289016321390925745598721778824268866183319896746633308692667925211752428208480499408524106999983674270882668757050548225798662301780930302860093373891742380001335666382178432637793543316393115048978816215565763319836992903746754090280729500491857547364582647897799238394388254397136690684090246586942536752029049635295276239294564973379004192183129375937929457171894386849834754720867357443685543701490607023105220308375073406163416285954243431110127780320716797870790159495081459826248670870250744323998769551380174867268280260396475835517048442855649515734662643130143067436847879715887440969071240653229743791978479416540000536511367569957698581542465349106143120650838946271411950316386967483339389585945313175105537337456928499001898132485168617265738056178077328802684978298908922378909807496612931822476300098676926171340013080682202312306319131376845058989402775341187200287247355322625465009318170291973126065035822561277137953683473907827886078018511678654571933521765240198889338180326895919574331470443154156298286139637320111468808724125167526382367404285905962547428321505225249132643535088836991502794017445441419653706073746789291181709952309675166883678840302874048088222879119603164930146615722906443644990424721243931132745164364552179415317368123362138510057620454402830594830605381727801713307311288193825871909149395807034829831297541366261185764810093095745935739120357107389158291097817078041917448915617162555523874860688367807555312735848770434057662351919206608164081007511154486638856842790223242082827736440544280212146744300182771503063710273816704992644806331654239611064074193222014633781625874967032357844167609098128593014885567717673985133233440379535962541518956339066495448618670475123071304482453756558452619463375974348955742056193309379235363387296683748400644775324427838038812002441374434595084348362676689992113078396541345779754699282052866111282870888304827633701821290209452238671731023342226761504583826459074502624343730835715407764007828509274565214399259828223947764035268961873795955712307031811609654652111590333732245533461764326869111295979942732958252563635216065082601456174473266485891793625107699593564426948459140679053413687542038916690386917471796450209432068298598059816692708543544523360377801651277428489999953271699700724282110997193075752616205352871051883054682578387553755108762282636843423183879998650248231931840882100680320824388517993843685405145352534995497175035323584660149205644599239005343019849157131633960895237189196937119887298290359312464942465109761690039671809279669756064524810305487189387695458507000149329152167695476843317281297082322567034934926842979957636019573457816857635351886000743447525264572268933345870067711406681112932889198103120043898030081252947526448349617783464381881611290617064963403319599243539737963532040436304276603189445026582277010483665268667176679467402294011822023351381788690794950718792318157194906866674002961555858922538314548901953515721783579543390626228835916846427271054597201177707451470724936136079221620821939348792604421295674792902488579214587157513759400053716674690126155652951972203993903113589264637869837560221243172802978172692733111569316003884552620577070720145626496118533468883966965875838498933211138768993752662283686740280602204442573708934194764313865151459362891152945750505361470451445239496197914058964802119558001598632926358140862872156590859459300965268518099638701921279747471541443266666182105699427925930862589450068023397965802227521163568361919164824789274854317639896597391310403085044121284719008709046069449184922026362547762655119555488797209410726535670835258123576386086399808303519892034508162157792427635357424933606183814176383593758570179117128996525981594874266690824589567901508000990085404876251167857293125069031085410049177455773282606590044873134292484899483516775391159819181378253395190053286843677705860427176664376256088460110888748332865468720930429531597625913024189768156908629440340334806282563890226766597553845017647938506876943205547769843822025868023241256465477521806377768731276952809509005242046666380646248589951775825554739161310236304020120771136595680194675146696302626820452197232365378643651156408502231893449667564005015866050687215396909879552341529494007725886269641300776344297900776423307933905654014143980817946639722405822996556512688919408240308972622813244526028244477298640732877826278708819156843452990778816087257424134298062776029924030175380338519231703623869732256136399467474965281084553510006085306926570481486359883918704779742601045315204116844281702391212515445616861170390869639868251042240700735269561917977965391406909008054908222642960031462735450644459700304666667055172970021709646157657316245621584088271642545394761122848766271852763785960953209462313795233708792491495759467140670980101929527973401852322722240553491489650667845641875364599493793404262603464432249099770666052640545868567028630937851725906521681098675173237812468809023695742066966887194641539962906592669968105264935875225905354366504684693851633963850862979109420104893230152705703349372647997074961823104093849483005818116537762840944606678249868604294177070622255008490932124165365741443337753307889047833999157452828029804056398600504597064371963187530310329306581337296986751372241072127389601374067201744078386367885870299062372530528098576421645487048890363834456756276522360220391911827708307957681106001680850302344436858617432426619232090849733565281912685000170594756921478247849905864090886335294592734478535731259243641520421533419762163193168185753134816492869921474714318961920554555428992836225374881019249911601196064764504466026386668140549409430751603966120082664507964777346619528109876154674737324369076874965770753305838001293361518998037399837399870237824406974313343849204375744760535268948819447122693787524671459920290091983372040729136908847268296860219356463322747747499534097454997722473083880798483499133897689682795537900615195171078264447110390072048154506383974090094852757916996496967495758824630063111861486893018437704026022285978788321821677491759087110270920294657811555773704316404422522391868546755549164016019693096442971051583197943479270285631614221434288677769507248621724331982443655297340115459084923507302537527498509156202341923454385241542472362192873738750699422348951312188330146570435052168730078819630861875157993419464274432303980501388859966301699863099986063291029258353264425872505892524001212304712163097953049345560739717440811272910017207010154173909063131761848384963291652684275749760103317393630523959472701266511217386043932690376470335023512912014858050456789957538498077821898167534423009512805439082136228321577062783803629171061269346010495148475587305890521062132383892269236076230652472670698779507367247790551980813580547382279028296293465290148511318478737443237217196531601141577107431906884953811554555536811698393766744163196198954063460968383488216163836166968649989390363881236077132142021105276842596696572441126660928293493628774466646450607442549897333504112561121257604471995783065934990387625552500358569299784925686539699966849014416786932517004957722870264747438859911604201677998018171176004376017642747362164928055183181802286831471249671653319975240190832712107027314915887648471964364827412509097007278168145300183342724722175454919699256826062390960581379556776471795324391586998215066568211374300684670399135544070465880161241524028766673812247874075827820606540412053109521970139994683050889054941821871111178718814242431949611749451339704540242719718949658237812410821385247356264766080449675424110565149694954224479833992433364701749972670700695275541253340397729054004581143487650107272370484140631836718576193626880268337480575809729477779449609511334368393939363272902777691406453986672453878362140034572590024737585847612517732715890962999486769459009421231883868478127837083169102435215046252327375118850110216326069670610811996309876315022405204769552640882343610601410642723807848958798182208602301221357826928795289973358327097671695987694339027996712665149348679140953473071091886146985308711680503455401454677776199722578684373557789674035294683087306360373554281639123107578381586334392613645269126343830136002026290733272741304373989996172815554024913898861264766998810684583893546338107639267385352490278550740891046180276635807010354434177009515050126863941348893832182357794122852662151285908565458683966419642357408071830618491064179965341034274232521701050705696770308255647168819955128969809912734016959521443460353455038720588146430273969901524298148263449800662504251022826274288248554059490217416228613658520024870452166991229034074073692335988580364409699997301838968903931034406586499176893974909285720362283015505087114317404323513894748261679143164823347017666638696118226394318556542242775324262587270122507743701048885344196636930914362711389671057861375750275606901790033679500671232548890263794841945931318575620400718521192771001222934379840825736328085050147600702114431196587420813821569090557260223535233919389053503335083737462244970150818112983603048170599865483615290189122594852545961151992610090561354798076157759863090151517916155807744762670766885788081607870024653014901680839221073113378910665404164624201371008078934886398462691016482922529578260508663361870930498489882216190255223528158153848183544422376080538784542406439134007291722951778972463238848816462485959531461669168440184306085939362035374877878202344186863074467693516358218350390361996345093180656728731292031773200297413935380039418265051097184756634630918994824588408880041076345757847945911819237138089895523455133850758745186752908955280512642588530105467225131560646653448487461367082593308204327642674476070995343835645442347438949249430896948654293280856200608990926488918670764584657526309488199698149976791261082767745017696844843467670539732914561142338044083076089398236373536709132709166058685449810368836589962278079961718845504186566180728597699694573181902337334950054687462123668335086549830098550585312915501663339582810190327986668451979488908572889840011307416530565933686928667560813469527755052373097477591800662601006074187071690124953960662707466575286475890394481490726640676479670124401692733358070001742383790468812536812289230502913600245735453422945233704884144181774609664129983393195428303246930268374072983753671227483505407294638497239350413014291270905795471057985471458634313304192893968031451731774057570982363790050732194332306578446853575481628460937137942484874850161422097535952734869711428225054521648535074178481607422150459918493434904979114642310344652506254747321603726156126290867885359666270501672114842061786222254453926850622356905012708068809771564253957745829929532068401680255403654913715394376242738503751983797605480949583014866877860717472852133534941443981832806652008635704762968976785671622285470505659630169849329402929180018811927473570969334953228887624938158196772617219708232209487652626982241655463242018544510817347316542743514151758732469358924300889121804888731797727389013144139945949609926268858101635525883028411802702486513522870019647324905354337053158972220109141066825736270862000093187423815672056967488070201602076133975115195838554299565482548393781433477501948236875827958874554592093195289947098735768079448740244350644744531445771629595086386846286855164002530517464218316568041242980617321589174577855810891493474477839756306541894787923147533917603938331246929516754401357804616113367866142869671337841341254604146053796784224544519612649159403456514216966256194008173479491352785079004563018882913804350467753295375248816837797738650775859461302984975449225769451228782665446328162561957172837034123002663493709500195038847584817301386789081830816379823703366501624070368418295877740004576219727487142925410516527888713193316971856721397814682780084665359313721969768673672658456556115227973997321434980025351919562916605129524246076564743128541182224208726056927342345272484437425910921797480808009501578081867302091478162676087114667368000570360189815761051491798555244611094202818586607130914244165704990931463427230552074476202004967691626460170358834182829875275047223348668441340824779590891063324624720911977088492405974654483372993087453965913064131728503660631749452857338916436922719708002784556471210735725163969194606360505051874095851352357969444284622830924507791115294579845970295486077498760703290875515304169839435768239799628607205346844774847101916989908173814156088131929189961882902021781953336331452264463745572420921125781968173082881566427899809944413288719594595024122123977004294248678453613277449901230481715262138415363754018478385750199301587910206379977448945568940127844790660455932133946454402326711769219490067838821056545308812829207239034023727525118333131692885729895332581949955790861565867666921249225342329997451846889689659459651527058007831877607746912294100141080650041251498802202405490048394521075681097345338037986056305099013045254356911732698660855286770001350810948860334744043141929171246457994880707327859620228651356855436177561139387476617258369195076159758004050332954100468779230594618923838034767209249161214865988030725336888911128121484191754613879239064479001428481121733910709239911431640175699208070176900530727907990513463290796299491742858855631970054156421390129219343809749082933691134233239892651503640711241510309232460504252374179899295926294155239711612182395215057813821121951549101264498738198501394186500329970023351923629747631414557687159621962221449717241342873956766715631252843551437520252528680283164111276509192445997920662699296651595960852585704532538808929760028098453049059995706897369393349080909545468465398201912621548725286243314309663864917802335523813466264114799861368072604409496019667711222661757630732022948718778208231714222131028278290706493752366942249238563840896488540075687397283528706155876021788376580921663552749472802896292150490555024149897850482579233831636016659220976709027035359102158462072886745501842041480615938235185570793765428762991258361336090287481025409974801336701512465065801985669557116492665225566747976792303840738911315512685401047747387011204978173678693947451944143674327547613797959285590454459935826519501512772139645823101769238933897131936888783357132785573259324408265341335653997173622551035330669010175983757062138014291798560941706648589887030447373002290434193173275328525480424573592087492925195214029627324812572618467794158034936231726290321391793078174778875885698729532670342389317973257660920408025222719369052244888186502195659443301372025010866137359797552294888526251486576158095904186940401609058519308109906131701919437722417392519181840765353082061685965070890438693835246452739863046352652312495941979632527685921740194032290897956454879428566948268470549152958238141607018760095195440026940991383971003001187044603536796641617702327140073890617753309024642294132966763033993592208343417230978694227370883503963273937004913658134442322131452119029541590356914088019923887378565160110958334270760214848548360980908570830986222633650448623179851048761370260201560882245709879193476993445862743195644046103443116914926868397008014051901996436498104687393489592107216315655971786106469386622274744853439867097615225800756709647265811221437530945168282976498917344964415715239376829016591461267773551729393169138885048775834593255021680733286445199389592792641659927806370964556823666111604718632484342994210923990898398038725868892784487333086762071594597428986871967275326071464138169666562784853735058646564195042570340642432283415614981670664643796665366349348984181959504373510390345874560937570679618379686026837394661232698939860244302331609466493173545631971970063380333771772831484160028926282688911186123684408395387212928261197243046406405842263083630258390895714376078858077679468765688608414433265319128718554671928764887632760293898595745180783697708558281802114561808488729463110819985043199059001005039613513682203301083808703053920297202349128661792032822944832376071049217563035211321299249591192933702586718702125186783707275299361409759145468373309978898303622446339419552706570230756462250605047933523675013710023953131742291082923556840052569654331596040665407417560460435282522345896653695354528424675929757430121121972265946980393828479892956462883661685827749087383118026732381707526187903912809602907713731430138238231397091723625010585422674264393692165068820470133949078423374166262739905895369813943195832670533227454782453792523569612466229167175065914093186025932517644506066165919240062319766598284786859774535682787113415435639700364085017091967333654841771381602578234219008859348197432553013332921742778121606929649275977924998090320512123985381152767051347503049616621309028881669325123294910145464639636307892518712294460999763717953479802693655812959822317514289391134962074281995081168938278800037410524261530125572955225699904372627384942733444223553600089807822119720017056546597593735307254217343841905990579283156568839240365914064997251770187608848688598443137746099880916532858519293821026295275324740856851201937236507929972759192764709392843785210792612884765536336486444327732093574764859856661394601854246942531689386203252565401212982944426732932034115488121598470722218133873970828024836145799965290031569826366253134193321653550408480733345249187045228679254813407340734993335964179331853190607240576781969573710461960199475472813888101027852959368363473419817501797194332112991074537336705916507793746919722333518687051832974854725222022842097960804281281532521061184173719057289540256846700603084471087050506432287889200492479484893385180424465138290146345166059609237098823204989773558634703768866929198460279303421240573475762925866715592514023526583306193353520598542559178714853681219420616665887446099610996703416640638534916259300169324216633065827502486731211944926029957808931643204149374192107324272321716657284032482560430051788986842007930511256470063965699452436377724896893314244194950110283051442726283233888050587314137238937421434607551525552261856954681020168181185696266654342810516837314451733637679560761508047794872985566471839295538427759562929309209091768798769132953636357718812538847560924374864195526500225342094066494076235264730356541569836003705469206225498488170926302635374014241544450507847912209269697272689661603287500191769936956951043390209578040202494022034870032518028356633662501057846428747781257207834220129615771782651541835597990018287435506278212889134541573961753850094956650395549491633591072397043803090308672206004528682393264420463034931139720008144519503103314949092591314540677480536335966087621429960366211816733320877307323503622944884336056749349098314587781385138888468553368536924476315813238151118241576965492057848960603142156352568279504937925468233734220175435012724190349247124633376923494130944522831620473554274113624184229149285750325545966214504417131220453618244006226530896566807359356742408201954157458005210076802239830196528687460254415547347571418435379474979914211071444182460972020186588248035356277411620046296075116152519660674603126804251144847862608942026427771438414433744990592554490641257162131311418477325587732567825799548108467139931084226610602030349044110685023004604746375070705710865192194716124295967094517993319498597619887664147127601535492919405740010548632774461762515103347763070577418976300471197137807075647369690526223638724453972245561829405852938356013566597946719951388064673297649060295977747819752524108046418469747872549623495216663964082896908592049332073016404094612127235976973310522423811418026748939754303946854444752606402582017642325958256386812078209094138767754534631682725648969787043001486945434453446184051711494276170740863745504050293315343096433774313856135222291385192533935115837611587219871089189088761657324680074867876472296099695745136873942958307954592615183059137401074362404626066226116828528774076686615747505722522930346770630807097095323023898912147997389075810537362655407712935700128884988788192876821148862326210662018568897115619493673451783173967845740859084366252320771170825147616869511790998155332760140801243086278444058342806925845159655181903986713430994219470058567394856162651511747015932923970277884333629269993339090557386250285188002152039843674012214450546042692971867912229425670531512375480928850743586886207461413704837819236684652724995853284314118262947664149301503650816573874078674917292582804399730910083996351965978739752351740187569667599673091304214317867160830427195338198007298931763340389701084646225340114132343340142328608002345128230246167168837061469772554106980354696104972143206469511699797241764708053716484692211291759712548965265605929460057775634802315402741539911333751870387612628385249990883500492342902832147879278038676556100180121714758180770435699432003876863169635194369635108262792710985976586887579972790981589354251602985373349015716110330716070722386197724365387986986208891909705863647616054365275304052732193122833514456338059274325506059626372250328491307017358801535298354002119678521027448262831392170023876783373179153016534324841410959515893483988134382940021297227586209880841798065538490119664096339813270727496697465959971133124700991165438822726898253942446680421677348716797469241170016432574373100307511737032929373311275102682970926424449338161402300548051805434042539810378519730304359641240344534818099633568160458842157107147970456753583228671744432075753212244353503264328988778781678312556547377311528651142561220817051126360241601058823016953142542653565576385827487214606439006934065708124105963602985245778059179318091389624707797062426125989527014456847876299773372794401055004336037086437576677960734184636794886593260606410001840292441380174870027581066972909660186029776420041999592865336832669899691999361009573104144352955111337029998015956957353408648462361120428084513533992475323214066278961543508054411504350363004153460059950496363407646979511228726916864049076898900764922115903905567847979419160976707106419792867584326641482466244998695015736585475463689123086499028738988839380490411158029020761449195924276112258007704700175036119771954923220665933465109918518318014595172198295639189942783177519622869484979101398744165188952517294956300695928983622719990710587220416362609771462427279342467741948910247871816889012663496498925454306024444576254591425292342673778642267082264892337487452893886936048484444573329295967497346452138055724998053316159450602904413215241468656258554387002645039933852086858122837126262212545042132382551882765150675684641255319408573496013257168987582099119498474447159852109861948471710301261263649373812378460478866665014234335457706891809864841788912145655288623931913666763613500084254492935564600963996113775908730323822231190687592060826717553511596885485934329422983477798704879829425595322919476844178608081227697518519221834613219908673629500582058775937013254859015378719514106287159945564184414785511238332295573186123020128344590628145789717967164897615174391097385130741664818329860132823623446066827543798157068719066818218571203654214924952367842741320182662270319285951831822290162152897885656384187331590571314242716981092995474330939732799946577731123573249128842080943482192152883940754278716145779593730277769788787788948978974203141906913405688528543631092020494130156466955247422534327831430214783997066372863613580132097611966942106382140729126429026062657077312682776491731237474767274821239537928887121332619402242985456103337697335736631273618458745324339958382283806648326851792796500429043796324156227747870396673174014785177820768815621400088177791781021119615273232435600188664681479762312587727111421208527231131415199985370542615590954658712566659189169390169152709045648158907401868843306686934835755529943298980850537231980672180098968086570521100581016523541523820011520365885579334282106808081789555613300236695431288928158316546527001795992387847131939548953860027963070406109467968502085785977908386521755176151545535237308775970024766186014224842540563970798085054407001052273784401780531616072209785426263991697700525499181130423887122332667867093752182633149716108112405671339205789296833508678718284219597819744969093355712104479885432398885447785340087468920414183669018351844354401945427022500111245432664337321472648531173101415591038366665326701289410684825265226174787869105950754269727803478345522420242274993644416083290839601107747150807683009804260020328035185247996658534818867542189490410593105115425619036788782785524718186071716646663873465089071489854002650077415411198127896203003253697140774817252846851371348064136262935357567174835611812139570789169149096604355062211330530398737488536061769501635515184468805773778841763634618816198866525756227390265156925568432343812673116446982177345280962749742807129048737025190604174406303124908536075821523708576663200040395422658611019329399836327748307914111432013861741059824029545876547602272911135535435361316740707020166663447426230881299342372067383493090071125782639637847261374039138634760860890979583309309340756475883413080781262124894774001364109072930520941872903582888609828884403988058886236173255903567160634997714748011646716533528104641209448447335037154286549373109595921570302999604175886743497915222333734717521033594172371264636797359851721801207218844949562757850045509212293283402655044705867595571847027250024052388977292139702955695335255475436745255862353165339039503562409686840739033656955287444755638754246783683957357641322609652329051709279823000415766740774354452509402832601470462830239269782949151165095896226282855590393852251283933701279327667622319180364549873470987334094158600623948900254595884820163306866063042154292032941567114633084411921862667648748595402680781609912614530302748511751025087727079116395829913831329611344222178977384830402149991545484628021920517512144730964118509332905361843208398139753237377399572723075891092283538239625667861316353260638783563407168836463605244313608618776182465302130415611198938243148521929169082754076057538614250648557903463629649160348691005390276539348017600195842809451058078258238596494959552465134943092038452512283494726836511259325821748029743813989363150639637164370147989303869511672483461283985009938163929455620444793564234771181659688762892818931280064687546335103247894356032275962058589197713781924755249010491999079770817097255665700959332527458682010568705270518317022746631986739682738411474455619887675598818867210864740774391971141685958705442819214512572325642740755401623757779096473079672656358101055479521719571985173181874261740840654802238523001385311317111019818344763691859044646853908637496877806978657576501984919239879499128137170020006342884302295817425432887716463179175247483562656839597927349042346969229058033559848889161420479753851383790722126365866804180130260109235125817847030279780701260770338057108241420584523642688158716729593841744040205443557553624016161478256330181493178856026999914387107719158756362712019795748191871765997624677734661925728955817824802994381121919003046584999552265579189394359547706010265713339359158421632817784879165156183616579514073723907196058131304394946140604180676335935556835501994408708413465027090511353741912115332965708876346700795636778362446708392365690336842431618776253197124898147201794224741546680942455555693419688274509974975004480090503041061019200374694654349043134729736598910906904399317946958673903460012107579081401618182442535640068198327084861092102911673190778784349115065907706252257423096839820896420134336301830208359653784237696580125500765979981381130049766860209268623122047672991864083405849864947051153863021767910309576441716989532057080499400375268986739447523105190378253738749627439389470042103473987757748265201873927400949904273795894394579027849909612120847791940628941878515340838214078425747112221863949675291221568440591462721704108302920242921174428353707143354322746294083456864824606601511952871441757553162990081701558043503487496247160187496715470815540969013049363496720882480278643031955064238512110145420443211586663701135698885251147173708829519343231294725455083688794213071628725519358196253022619238143299136546661260759366221229783188773860063004724966205361945046139548991607989971139637610786919080377474938416872863166791467530685598129174396507797722873428211287572312768835157321010057616513620159577876449785947144647372072784585639619855523455084177564671338127545819338439146474998387959741696749086376384230995154161291790728803072108303771260564200682031627727632704203641293918093126085548474398116673395315430540017191094185145627086822077036500750232288105346198837430917879002256666941817877809841431505452190420371260350895169587318815933131607329845981507076015807646429360502484384758429152357773587412548651875565755215579144647599079244368478068981602621963465406892089039719426122151821468678789669672312907330416526457359985604806851498454173195086265502209102258650405241228330045387026453562621747385160797890167136755245187926569390230778263797832057265202696207231573945222024098435345176048750534329995910835894378261363465387438673385865870826344933889299672927020159120415141258902299546660551727487607076215085501504626299814158025766085113149806437019326052478787700421834384244456557546963726348806338811995111459876601971621308820593041921113714707376059991474369344686379372996612991022899788515663625865529002335878692558389007825411050401253898506830812794324019001214210449445310663430858493995823750863292543735144628924617970864644260222519636934647215421620043926736061836781463932050748020801114783573208028382695598009699474716560602783697731488942334065995679439105333412713688143003955470906223374098118347791084655220304926186913178051393119964091244414600238922621696296798331210982192437151141367634623489281110879683086009492952901538106406027880529007273180090933179335596083128007994970043045253628055703809365504810416599352008086241520726369572492712681854347980527315964881968541942280501304766111094701993725878228885864526779307301672003545690960858850445325246947120884299113529756687288643618349642956002209957041305552854680514462404212822413294754682276197226627580861342847236258509898682465966368855515215848764300465093203111477131472911238447485941468476440996907639842244753025730456079972326369077210835225390027030856868853801468463405858350163983073537670759750365390172425356615827727070922447432508879371239935411074234803289380804885367009814812233471937491709876889757903632910608388912170468421506437208721316472762881458041584739921730805582124609306283400579474054384939988886765325578339681642345028930354482500389592489384651291411631393103156472181591749148407371071161978767160162166932511146045764127385609891559686503626350236757973908950982541965955176669400913277575424225872113851334769930789375693306864196224774854340868315887584370856270451669420822373906358658677509831708887761905177977552078706432734942983621644223241527548196075190122815877910004318452599591541855179188788793000487288439412249498931688633654473539842084961902560490870663380101663636908906310770805022033249223404265983189744472678078858787947307558377813835914274948422961840333193287702792529688617283347572122194526885690517676671037393781084697604835337274154619260900888778884852045028655459062052836940413992758154283161198912257854284561898139638938591879560831472855139527899100504670700290935719167548701419646530659819403409622819974864984650476856247879490838207610389545828526700159404721539517109593718338373286835124368178200937677080864505820731629108994392361436351240330967550507650503570468151043952850347298749692136656237837978045289858823626042849800220107714390955587955391619255229801437199628566514226140972615975624210328831775571612683631151702204448248280897424926703447507485545142316441412126726140651548620858638996265743522565005391926034602086877414325486710711959942602293950673319079148053237594960249483385601068014608362853268553386346851307690035124086968939668587191319752655971702389938097304242706910226664613441716673579774041619535879268804957665312574019200852077518616086781611849033133155939483518321318302813377041639313568613093833991491721782049024384831318378525431739234158432237907661628803114724173625861819546174913274856766086686582062048789685327083786700960877138735171459708907129440117299781707928880829228551321700948501961650039564634198526843953239181508580382281501235842546315930682669610144968409664009813792851416022453764685068536634443219238414807494951458252554722257927581039767645436355483421508176463445577212238614098044938962489203465306247658632433869732720320973625237664833933482235046816198580246598384290117905282652158155681344489607448256477626051657456265102603973485060820714106682866427385327399862629619249958548130719593611727929714111675039483253912877688873038771569959114702030465821967185663034520992637506737597705734241041952965794300731585707957016517516281715937934156097311132117846422546267266197754562260367176322894692983730963139726508955380573169068547762621994200301526582599906254607290359900956094061150540574636107058154247609988767640512686503681505319414071381950803835333424242761225547643704148899096642283029906543812229738673312045494494135172971052146886097388406189819924502930000238321328089101588301226971686993250758875276099990477783231583641913878373126425512798541960797335186064628781420075289878709143428057573402035578127328353829764370195695814442806681013421056603401115433476275931854782177139731836818545431892307625231816279486290852670349108798310118991354591925272231031240685583639979019133867677449090635866660469786607961244943881214243423881279612019796906584269500287587449247192546943786364681929347553051105003340591720277368193963255702710861767905170532657798663740451395418546005472766755344799954474933525557324797652008723153724799240805929862592109108886219364251228166603888094691500521912564932530241664987880533281869501803246620749391662169185766363200787478613236056815944987345441149362028824602174393923112427898858966539993656989291081262712151010502912019906349062610539257459112825319647794542353053979687481249867563403169740306022130898252142923261899998304019835549229622593271126027356597191363345515637219479332471383572429145982477432969602676740688894125813885775664184100635260993273164754768486582727695823987376288689845250489202514316858771554979376829328694366152724372385400183273221966336083729485721695533892857590664422451017640087065674025888610429282469823375894145828800922183767705857811774391393904320486256494874918081109113788972697541737800561356147389434452290274393027851521861117845946082030457593886173740103334692505195059551193476186329918795187441985584914277358634620911408844798622389804849150831066480679485064815133519839180338885564945810029799766284951096039412664624543549458885768220019103009948140180717199269829754929228015120341578948153198379672406201047003585793696478673183097539575964271004556083634640882603617256886045855823115855927089823801247246610175418378668653979271478834509105269124230794779922353259112986304310367171116400483144675631864551935564673887075460240341867922917859501893279647772864420939480242097419078794293312064069029211778854872379947730357131783806397489299079104274307123919505658241759535267264812613286633180557612999421380783037605479343679122368673047961344974682201648563510839942638713557060263021478411122080038292106790205671889940783138192258422956648152812153995055174289087965224125414924706704850632499533079569369249867624184359007838972942394838935500184884356763729552964055657409130806263831594650359587572745317252920620161113138634329104130806989437125288361893044818619521707853142273626149852132598387447276137938343534351340437964157715684160061804803707795709479714832511968122402342718056644814631286003180692339735827376096119154338630778728084710669913680852302975758941984204504476766712301349387038726354481397166305767050518239204903826640080824619955817848887096420105750327517711435072510653310153986309192022495279660368737063106845660298105951497414889359791051750095676895545306213775935491015080806653203742240214937679772846140275573996275254034877605527620518685077222249080283666811981987636754025652334971761375540522078958421074856794051656372987731128835923206402310523594154383039149891230043391026370345290418547279729162157643714570613201285333532099203668375942918860753842196842440387456575942012755154301958888062469324918591339595542749460521847670416093807980038259691327090630335069648742369799462622718907986606585892569376146000338634873668980267547002564883548781338563748840531181333258926796165648568843276919299646779244205688270491754279640423800330802764392931772667000711203005465302773435366725171168768748662035411369634898643195976277140406558792321058807308714914997634944033599887494934163640465763191064823659138395438176162387548422903427883830135423354316534335155953178741371796667726814088363911542154430883353435881768401234453360340633186942302038922901346273102804564846474562389570962896324379375354055611792506606488021059439218406457929622960814074165713650429047256826404444272856968542693700493674829112669562636698604275270876090261979772066291000934580441149343484305960099795155794417251853016027737409022930542855932706926636395285078475259348807467569723622576750019853231751594938496528565709062665390662783796115275579540944974290622186820484043124602344166184384095499378420439449045031889998478448252478901531261769008033008242880223484831090937065465550962869249624523282846388260448345999259986142795236534014832182670451354558249763230764013688254429832425971512563401733400549120719929360807052904646521584576421934781249539075866378640546222754374989405584229632582228472321330067074782194642762971815960039130799537704470539370928223030887584625226859108460294728593191983761175088555934834808198673717291714659988935847048720761428855368935110639570396600137785009151303675705731101834568265969519849053529070296399361462473091582643254668785791761369369895953275185207451552225566060980308592914421193729028449621736622879036307558818285189147277297493584295171193323820117972957967520193671133074028437671254072582550068034817580621471809297470180210476230953190062331979194001314687769054917541995583499997163531920070843839419775602620257389427070036611526343194498771255993792813056553778307530610655108036577996657742187942792997026764253998782473686819132977664274677049756735979711876722574751873652375891777202940724989508796194195510403295833627424099629267564985909189896964826556532833689045090677945125412562556071225281812627040518279396628139675755698135501770844097469674268394810790774427633175979306244147976869012549891078432941733243033498209196752187831263567982943870381353516955684670553992504109819074396010278481079246954438683703173912191153011834514488811901498256123210462712514022996158439951622970196228827416156124232137708615438588946154492892222060103352608600290309150980666458410940412135333853810994287377485891803750213900009815816395724245317204631740369063036166191935858276186904738900291635914685230419765208024246617843712863325517430007293074478374250740120952897065921045639630641553281678304262260262060117659209321524207516884010581850394134627578749725327223030378124052514262001907632849379426670869689729789687251485586958513663899376636093950054451774432091368417140159523978574946620906099329089828795650363211999010437330117805214669493543054424867611332729789699569275371894962241510011789870927794888570003693076916153053419557317843553336644282041332585182011527924756586951881833632636195681234347098731929233692032693778851397253258898651496997752957744119519901213943694989286704687657872725396660359971555031749259483848656058051466905636982819652886055233966140644634293896911909256797795604153508048727241092884026576712993128944524654765861666473560565983526219219959497571132826921708384956362375818107910242519690849462192079390431311921462366480755695097068578216619831821368200863960496040778436697774599438932342328294142111566337944033886413995664312949548203490598651474767989186496706816947437218565287536576961255556796348692685453987151946005555856780070271476774457307027570034516717484981085979308459856385963192548405938200823074984413082738357975248852110367665334247391161482751839044864089178896505656092146159643471571341438664263457693360635656836198212495759632524743089106275527776496117775700363420891822976427048421197798411695682422531029262408672698173106956521482915463891314645693840479284076990521608824578502904913741022218031208741534200331614571825895950660601897447752260869524984412474591471626121316192969224182447101415706043606295609832979234067789231192578265052126925802915582411297972488371935393011529855576839539886093013559392007639915819149067838539650086637853878385245966051570411326434231677508272831302309207935334523633964650446563602832483447428568982717031917880687389749930084706006173423832175663929942291671348537255442903047778222965860983025157990624686233235650013611805755833421841437863715560596993335708395522433165833351693719207609462546443424035064695443425488354612593753444794021038318265208267697660605391043738857340911460631522802913067044156083725166133916133016169948688134094071616758485471147574381807472126582287311653838877017369880907132520616645797039207001845989594752765261331210882120229387138015367176329745757993551793022159205582733631581900494775180742120376658267258057946811186928461299705502283200756507333121354923100548145586466184026603173177383591386368000970896630526397629427225951880886844553099129725817970038324733216840474542637916944420189199302719654441519781729633935724523893377771205903012814839805137349396252581036184476978022857226327183851635426875692384691072433133034236165261774081083594776408921772980444711569385726439309135887261928584784494218654750980964632360572878119318302064215376355493390510344803146947506398134644369878126683680952935591836057417254867456200117096150402852164732629020945688861125297530069954502471554577315023413572047380133078853898028206874828467466678083965868985557923610546036459612315134239384799794765510605126175688370389731018236480354225117015583981160857399149431069070713646666839741425541317914555674423452974634568283332674770816345549054588943134934255769638639321130496946543342416778003066325519267008177002183572493135704078136337294676405290285667346244137132308866501600821684736172683657380151999317885824951418074040554854194633374418181015403788948954429382837114632180596599303206716487317946652897063430606614208188852811429544918598116406925713271610097309469852452786623760737685138588014763383024835071440867760086260521771197797888014292137323181753378767485652952305921937539431665368600599836794242197372082814329499610755236456135022296482505609861115499988835444783775203116711950810861694517676266274331906398910077112167928522406043412498549549582097914047390933988155076477761895829341985548411538690722555380968438591105319735901431824300935019742656126893149716551330180683384499306231236572087405438185031762335345512770619667739689149024658318139572057177085258871124354230935109225842661264810494290299900851710681064156981880297441898325976427599371197461565838973677251585858024545535039725728914710026791089966754909554067163750878879843084876127552056292700170129992435681853641020679292836608210968102960255196278312090491508775685094146418115233117876912214413380112865268303075989915437578875925810018407686176424633249640703113440992926026214380031995165527458084566596695919920678832004628935988705306453150169602171100615571690098107754594225305615896636263288595647183450491281963798107281183890148170987616913388503981621919380321697712517450268778862907735884278014434689385270761671902132145724081480821185767729950142089811914471504595806182987789247683509729663712922120167794165622377131730368082888996249742439706678101423648560919823529703789604049570430926305132311115564745916727089904627477560869392290652492911638146745565559229918866705412651305866218029727149195349479015362930872800039107744967758942538556287317029766594336221671176043908247521436771668333880900903071693309355814970240521860165597883495389230944193100172159193274286040622834979804818974425254740795198845122517141646536836283361529730020380860868811453775331417990163384462929495365489966675657376016581227648917853395783480332049032664422099003310325692382109560050241327695724769352114286795156254999265341560258392550501215788946854773997116698881374359698653970104952008436330599540584846425703462420258044056452302473366114893452357552472192447998094032226586616033852544686656071497012828886304378532564900102897950921419993955047119870628487265349069875363504537542016726586699309200912399806032322976756640421391692239456670878125244865233066870908268717143763007545522523481744116627816331940238104300511608288747240624057402853388975898453615509732793051677832789893504126435819697219488593411127350900229412653297795936825915705434991488662505931612399669979517104800877293413635041035732901415127655481243004927942616339995163829438794601390272651712952850012093176231102485679939355313212077269990674977860267167717156822159661775353031057035286711021377663672976173648028841989231767564539101200328818398781480412442354275313379752242492115693916491947392937706777095305590893028250384565419103653423389481790036167908640239416445675393978666799458081779380684585015233574999638952906827597144837967701470204819598358858962020452619691244614067949871329020042470652956659041416935566307987090954444101762188733826482982862273910684591433053981274384374904636991626494272765015340371848623419608835343385295357041897578908511243387161632892347915859248372296204242750462684141974028959477269738390541653645445686315919365398913363709487408132276799238836740434332720459993740199353099626738620579957008049521667284139454613282961867705911868447410954051877872514640838354786690496168112535194683960092777870361480869118649563680099147992793113020828455239819787802585580334167441005115839442721886172868561064139529095492812579175709736833633170311689129360113067356396120087988317309147144915603294990937657973594121921237712452696723653128221097238047372502825287616663224403903982244757198455753495793052760294421043800820657918292339424217094985016156207399226267528881120739623030735156014812699553169687037574780470101778164503854954387688700612432361168806948663502199617924153501389341111376742747004169168297556145459903213101189637674334037537213999272819367102738418326294538686612758874677683327149488361860925242779533561758984870964472583651034315073473409442750951681016865194971904549950153461847237679722003378966059556411590911763023583227540773130129504341738728322182431677283773508066679983187006293719101855067231908653818100014197496582958868131700117807155719263536908428468755130477139178110052594692734137442035343159718551381339863654681216102491578820274909949346591482504842971863475608435710505492078795871427566076161014558519670090474313608093082111025776435985664504664638335571999973357313921088582828030066334030627527273669564968341052790320126317922401757415360511960046905527703382178969470369553111493556745322873134076327161711567203384585198311673586372508140860983367044580887911821520078441822069773382451660444748538421975537782947537989940187506135794153480352620541344110558653347005074903958918583178715600564357441859838545474234094684908902019664531205075280994356741731634995768231383244434693333618995831296914485308549341008759111187288196162787709963003388042131389499416333396771435562936574574750607501502120766887315935011548182061525784058747191828969016270371963225400049126153742666803985200361125140669034227002507428040139932382498859379874530854526197574193321404514167473595903244990328350799074213297253374165878754006691780411647584385108866412808603205181825531753161615035699649698012749022726181254605216041493696180198015992233154621613797096776060312094019448975517544110308209095760422336059615176184306681255313274704920613215499402482009982266676270910673805725148462233562708649252400334063765379477961384444383985937100577937591665553273262359589324613772583427410615954090574823768802068051979180780697992245054019978451851739188032901265350766896787229523058731983456355832677965246213980133147766240203734168286461228846132510134560495520728302977805710212573125438692033217084625743116920249792760671913470604207510237854361162265703321392779133730465001315346757739346246792381985089419558603429279298591658704996762864199799056684059504959484570230276935560862451463591690199764980184924860454559714731818311775007812781173484973904090066396017274507728975899549590139774171463093981582721179693942384877042650924189676330452862720154456043669106398050880686146699920610577224884127844389727174007920110653543022842506365598752877096728574560734204384484105069084373863826816721896759254066070574322312632891514008726206180732989732648102509689129866039291645675019497642322899699826624483816686722201939882893767513995510874008111507517050338482855056344639811169667532117385838885931036621911257629384796399360612817353690483960259386943242037979863060854826293887837578510455189339087821936905215259601685298758006888448288930825701298233196257048654895191775408865062891147735824220905868279685192638782912384337882631500397402280426238131615080757871695767922519038048564812208612478035717545068250951267874562660601497319676912605638581279403408153458798080252437650165730166358285076030175770650131351532180873999642017752581974656277487414532008640139648259805908175547771039176540481860225734202609901879334548156813263352385694293153041899993091884756663787730188078467246703193622539067617793392152600688819952337837864610429920696343873311609886550586552081925687233833809174391790119870004474009402399360330410522784813479774177681078158443565455148441671562246908527112103159462907494727988309527331964401478964653407947126254967142832235567746806765588978066242428128114064408666848647868736224204029114128464586831413788679430791009103017992625186088640228118073234894391716211986519407203043588177547780688030703483860175553625737757288519088834770465858506737234394414323463506713158884611734114786177121353703403708634143990500039829695975068906020942550860578906366272187561647151881810061413921104299067456968336507744991117720001965880735544411137933465637766155877597765248844275715486960348660664626904120385821134299871592264005292281167496405433292213616080199966279669459539664789124803522861202234796705141659382181438995014849837271814476516076382995325549504703385743340300445678670765613990024877614401902673972410430126461463671243132775827591871775587833697764193900220311659346380035921502849375643951278228158679854642150615818860977088536093575616378495473484044541666596311870340997663512359462068268698373046015602340610329908981038654433130896483323773723672460292742623067496408465167734935644625790290745964730324429017285519031273768943568749197344145036853545063718298295247478592488641258371958037374071572892700010717181283159434183934836478331920323351686778243580098541159402476483004047757409704332752070198866779040236828503009309513264420701300089476669132398686751427185207446055596245903742044752367574361409538322538143912803029577135824163211761259840104792888239908246697931863207989412975489462331425459267178216405814627897420828305857520288077350997538534886428249517173403670181446915273718329486143787050197373999571345085589922564606936397100710507006803804186166504149566048120582803768859702462316661502422666488105803657167539846656011728780890892756047759855053262572419054391890087342815857162838570751846668239978511830851511115128855491400201950135993149238848192481382994178564698138373903432091177960376799478611875731180743959430527380992580207061796993098650742102999576794298846291072434870235574449903944701627223682433717674392372452020024279004223379169897541668845040271985157509108849959587022300102671249954878613443277005144538746972397622354050165467364842075568559822418182665840466065566637572987340999176460008883949346801286716021888990484941379644420404673658346302295838516250627080132478886887482618798735347356460416948337655694878913783467542809852642718167649256108415370200298749118650893479171947346051227910453371729462133716637191166200389640681279949580330090753916416633726008312234145120953581936339293162453369080325288374917201749251513623736907938306623684008653434164121431050685424570654322137617980006909290665063706049774403458772105783401935112686697627008229778864698144708490135615912785434011768751904866683475266298324444505089300951283143148260253460465419496583710553845177623566665568899837043287665812224951846839210924164671913688003412798059030850344843998546761256218509981084227708286224426865538984025617757890186904414452403752241491783401302514583315555146022681877157911313328839999719220503797790316070791603999930879598966630904883399901926480486346154335188262721469241282109840649983567732381352083158912759101124796434568763064936768823436062630614979904058852022616748836591569872433853347489114192294385335528336407329478897329485301116345545653983104638906157309280982368980019184592955732953237362507850102769644236270424067446634032209822723038749034343210975239132093132889018711020585005752694559873747626398263282107649272241812993423231433890709784180320836141119714290284821242520668814507883139382093555895036021150244643225561754396727380418265709704822319754245848798180136339077621850245554788987252342463392651645465153574185086558493636386243233987948477720097522119760174964199367489848879687621481249361362153458191483921570232850226575881688978348124478012442382285786611449033852421990085360920486294892361995372101478568607155483019365972448793628677528767605391079671414022196029054577517255208874595875095710055970366694240503255052965364086506743725144801490088625948284524679654900675046224817898665518868301214570143240119225015898706279898376313551157749327117556709917137449048164353035252296033807645282908409927199968489906135177113391630694643371733378271746261075440759836548278876551706581770009880064842108733805855284203279639854512078002377409177062604422088838195199024804074541263769006755131405418168347386954741681581424078020855905318037908557601364968734398617504928034783306484448188010042780904223849615328117943481429942401951156317678793402708310702678983450648621402807114502592088080280912219360140438512521645024928865701974576719920038053544623179221852156611453640422256308694437733481290386047553007717519226476426098290385802894315563615930068064011815594245880581726069614548013715110450963875078788037557913670866140194311832787965971679896327917841737835967300094386756020753954417213323609287503622393154565960800717161564001245239583100060835222013084946351412594278785816763865776107399264928428325496100462936114764263511706147149698731103665112625781416092492302306685125650677467628968027091803265071244069835923586611878415804822383222085780307618569916932040097702262743861107944044344782239964110443998735293699585605823779349473917785500794692277788861064521023070981065789173841410473217848235345838093170226369288816370342535241422192422939149889845807311419025050312742066568156416288074510791100816026399040912658633129179615187386397561344854083794582309002554604864624783684750358622365862518877673854960587930677918446948142042628184188640975244751476527690482476011732737702308150645889532619780572490418395701180338707888377585713211050306830180083686605130499240535311030677321537058898264063982037177651347516340552733067482055743055173508494920395585824878588154642716726847500435392751554159775151406748146472997002235423644997522727957364609262235109384242354056421553564640204198336647651066722198367729905843054468260250458730504127369358897238756881163195225395311982630952407235167484916652563977260868780407817188791628475145100283842502117671625673725466324818072210452869827538390447631911156207132710617755213147247968701660379973394236012420973127314010826195441207272113462511698260678083835931896722830964354211078354986384599426914698668683951567239179823903623885878538164535394397829039536250225329250433414330312961588586576791777200004297217171757458200377660375755887120798569471503609770018208605851184588239495845593242190575045233642200766267429747589474320066354737204931883125173035926959015636784593754375478672772522009695340328253619104627794945096603752078266814913463959106809860455669024973892776562073436466697449867947064115341673462912297182070588694464849384363942984599332965446759255171436106345625108721320368576262721120636147481458747891543601677768150302054656278903687078784496066530733699479865282257646687697993972105698882737387841057538650741970297406958247918099675728479583002568023213461012438151829111600773666514766177405940984972808512748394265128895258853167297197893176086910715534617787681552814463442479062599312581544373488108256351860045738855688817524111132904460282358966776429525586176119250081579442631626864224114443974879974497037970858393422513846392811399127195586200024354661013550157444065814603152850452275484327895032424595280345926245148276647952822709863841482794659263813519693148932456949973675349558469770413251127870288678842073317757616239990102244132012548217340328988616871315810799350585516245875160267000171754309089780199787792623358698196450442860642516863036588441243187837371328943348304746761872325260545835561223358935645386250393403399480250649467706263070545737267922140450894022061434497148508879408099320320723771556828703439569216982573678407904975312302809197924559435976040616631267475752946712672624082056074522773854173021469280306325610811575425126737317901395254996263436962391788668343043635195691479831861213649565254374205903517912294003421756075631953488352833032484391199574165171518649486167723765470358858465405093809986930051721614901300585002908317597297349525667641705130521502921342432669952475832915388683155988991319617238168400839763017567882773840015987621348190740244490416343560955139700526115904513654525504126918371450547562094163627394540474260501587872171904475621419808298977706038345626977102704237983291667914975972727916567611527475619916712510992758531196735465895442486749408701045927915522787243830876685770887395744953163047232175370821703597495267504380725889683014149171494729021777768652741482797202108468380477793397797112263660979769742485494377002589288820676190015533302157665265976715386166215964911604640056734444862889338518550710750910530960553934800124676016035596940023978827400288952648850114656813565470287229485462102770360617307137598431647646879393042053833959833005691032044144923405751329588067117741881181970359378445482583044496071990572155794097126597951010961696460072010289892171928444320375697076021821018383085484206125478699282725791938100133064822400839972535624946406630950579124163993433014438246489855013126430080194620640146186859494098460594453580488032486846817245956379725910751748443010681439438713554253637611651500899606750871344514467323685379186836283042112524602682677262547335742544601478108886825338087522927067804977812498264186844228212350491459744039483643792407090584129748936552350308721267760053067548212992306187623940206686665254719515730613608480016255372623119379917944410138131370537183010026594810230251161732220687042897740073467618953863787686167831464641446832728999839252373162974163638350205991616155926975990128728004350993019792055904666515322768434400607396574638505426670381620674630696881994475040094554419085220539501310839179967312141682073695269348688415507173162345079252250159288832141336393459748373011053832702151286071819170490497065354070316462311641611377242173672066857262664733410685076761489157140634057923794726417542575181208004742425330795896258503636554473184923985814902985381161480330035858606352807964787552857722041797817464514201688536147175892680775304756229549832218401719937745365594400067812063593572797032582064084208888834970287196266316490559556497142671743267248969330686112285059466270810503190578723581431896941423557285156105647884451745092530304297322971985298556981481265209438583295451412585995676206735602223212388797811141555993834662747625881487176689444574544530763756972689621412185156114882508177938251373653140148864930203945040293728045592078662127468837336059450278266188588803170179703638975653722817562842419430016258893232885742702721981196185457189605949399567847901502872479607717778368762681565282283741135241414600789934144823909853303472246409608990718583192071967619064868619007782043375451493317826063558940349398540808009981345898234365972075538885760864516705199993379890610640137244527782684084054622745931214507788933702105210103673496988857153046716135822237001258824734967926010496868186017928031980720609396402927866675801906418530158371900204996226582705266714207566191724102694647005473612691953867837528863704822575504387793851148941408142639821526677301737249298216960046609231901143901812990276311833892660134588616198448911937504136767478236133020674817606037941323703719023423820378577637050595683550128129469338836197585689585727230076148316390383524244076119890130123197122060383989268870852676544188584311265541047667617450817335446111901175707395508577133237316449649636787145070961661903256562209021887684271057803305623012006972757980515243218422992009834851211811761099320179087950406856971196330970710147640960766621220403032405308121902766620991921461109976509365061786543974034312346784185196931611745582070856072654884312382547776498084232156876977839539378593156237158576616520005235585258897210021036521607845943947306629029458471766499999894096102103956240836968950508718464131802354694133094681026730566688111443390160025188068809984327957985185048746027379474621606013789404866983758459012694020899485353273110954092610218957174203807287051188336192718768080653931548447171000238994524541629101493094403108434245419165444495061504086431027474530536032554368996442161947960370661520089073047087248188596038914598997977582638842478109945896860390436083933448885789465668857354643718962044970625217343094949469177483935309535923058168235119193438710607663822020661524679324469823563507362627709153309607165075145482239226792863629976652509046946538508596205109778890859824520960187345248422558760091872846394726154639623160434202609505200505865032207945491188272368133072882037263818992217626662791176646789366999735383895694150678832899741019022572975243667780152953926635393024173664744260783428034388413694059109566048180035442836455620963716175432519999084408208298955624948784042001838690253567248393766003698267884046268305875534689075648322611507756920112989370724210349869400466583858945989221300417480940098267620568784715851536602827771671209164446533464254128259503980057337408376416164275112102793591256942214898493143150167600063659497134852081929917225825519259239867245431717288811781385942060080079326005837095939309700661463904277065057187705948642127500318374150896205562551402524154517119794603102655265348094301392219050103224362502685041749994304903902367467324174068710092555052910709144467858075229510681101153523522327618285307415754401090169997406200020975552505674657679835617169605841058070276120729933053306564370627170958849615793836311020094003569071322752493334035735797908212023669737099722609193999581004572797858196644703879902592821591767693239762744364865256442973245535472004801064038854669561415651833647539839729822696372848379452830991208746697044674204482199286987331468916698599114941564532642061904970031785882514496091629656434721129872157233044595655656111992056573855273239408045296644632166525882630485218488610277839150961253652673263544612831071688067168340615773334748073232474988967924766346598380792122193190407350656205528586026213577049780957767719202735705985604504249631695651118888845548148386105169819799931905035698466245569032326469848633575755279940832531478442149196935259720284530094754557004178061579779442113729602284805192176248367481956431920935478440311503744312085168572984566696069863229356502847210240201459992668713047674282882102586795838746050006095165552240688907749856226267757591459884266656991650861207395638900842174623399085685379840484791413235664572131426317054730276538900826783987408309709685333809454788890619319576816871557393356605932511117523954770992269083010552120609078896166490812791057096806096717469712906630317160910896147904921009139061878641507784150100179704704398777138257693683476734401199032376806857807580078900368276607507021833197855218114249979892071727604417627143763059518118218598501773598711317048868414345568219449215711703150957871388657723109783311527760554484726653111827596727925386799987685933627339027016147913265988802230534597956559039731086433047121719618409924674074054550472311253228166557011891934153834418400681029162627405766807170785165952166911327737840229500005937538078616852631956716423624076232277458458276535933213874883079771659471534076547529575087499322451140420659009826119911625897559920195726564165934665039234357660520733491925730681821826078090244971627764398511638159456872459947221280984388406851025317990269007624768300086636836962573232520098193431887457276512201945538336675636145089610175142689081381261691139002278072897270020560525335919485968432581638489316230649449597562810481635741014617443725642757263643086817157123858263381521730064863819174308003239163642663063976847793630468458750151005565554051703010952334622097252467290944115934651703197715228928949155638744233995671590984786754803419139645901906816976281168894562142859973077101515178322566429051398894625555160865951138032016595306192612547397348662048589811444837802797505638247347628539111845994613532532331558398636325864981519649973531770484534737902046143866947956939643369371222385060112594773259740481345770434476484895001799582424445556255711853349989912821460778898504791793575753908179762280445882271099777045792799670932299988329404912975290173533366119016501920930161050116782954744415332745405438653514743705145415251018634959140341148166707127889432390003729482542309910245847268063318888338490790816973474151047267643792251222758893097221557843613230719755893577249276588484542498462357416581996432405993828720979355338087209339127659459037270846349810526485466736628830922802188697795332446273257294823509626062466260712762173959725881628933778733797672731719538086630653852334032017485836782336801486628446752042925275872598998110820078869133182148359064027884977754867733878041411655272568685830443359931171295132419913092920886264868867374799186383803113619433413012824197152329426520853935613670781555095960371041950059020110818295738065051587177130257534815289402955943009977917137554703936629765205060808954855028146120332506054046154596028040898120469136887523869400032584318697764453473285396437130293933678591630635659620270994598572398281711822076184298710484589701743875038802668146835995235380973122234561568827456511035099697543700252521855603055709531326330647145988664900097414773482808649790374127450268896300516762602793738644945834952558290718936096846991141110232357321382634455948986935794703425572692241667879007717300136963265099935588172473239905124154745280411517102606092649815972028340738631995080773460734047133885316132553415439869835256231886565357960189620471226024269801697281736869450657259153152508985269528410654506826861282557849655557932909908993802614434379301075801096176840403353242624987796608981239874143590369630185055323494990446332653069485750920221565316803428786676580445414588851197261549365745622574766600994539593932498910972102066995636063746117245560488015253229921916512118862871260507580280888420355398069910286939636579326998357936648674390922275885805461011810095691538017111717659546893715156302497740207088438353185430337151577247056276552400463696478964742512195837432796905808810463230952433919425636796536981025297596615438160275047678754102370043079746915067547143343003955200834419482394856587930054687757687685957969726234038182634435024225376524561231362381617393332093354509379073973165465289401097031439112122354281601118218954170110332860821741015994573695695860084779026066016988431038800498095906181967209822585115060046822957521238972747941269718842234119493025165383400229646383553419639161252706151520370778556281707860707042768164380790904036001939954297070985585300093777148393191177056876487675748288979042099573580660600132791614743805197336406957610187011179805000025393111298819998619162175143437446651774736206270685093514646594469632287587424968133708419292264019313332963581358942970122250880466902194236964511458453297008213528290936786133383946185954027430108243146105991051783760250497860868234260069534316227631330649583542743339874547533422712612899146044552990689900212169323676053106416568305709938844205990183499890840146374399081690934099470470049836331528000242657894767406530025567434411269090708179419470088610029849999007460830425127653712052374756153162106836187825701963669831478950049660832957787269057780809079021110292083834935957587638731717702771227511999601163124355196645001390646366432030424967081035985545416051811273607553923288307332462430198580020549907413103883860817227850759436026622479218326362703492118117679193984345639612997831040627416988440517109042420268488551473021661390561562111872461599387342634558068273574488146070743662130695066844720354880497030633752057349831006394046364530566166571169366865126088834786500710914236470173020674961224041649874465139138648035792079547668644153602815891178807014422750165570914530541528982537736051479305476396275163999561930881438302366922410321550624122995533737688786872952814962246011766688753340780515429870236496550421004358925429350741577303192999099713544421148626556146043380834229199920753125218428048271673006344846613763698326013821993013031886055760436472313019995573663655552151185549451718048192057202518516100197265560903625593290512387301763523485572940218558164888365399500927508275342810571098393900429492819714528783852501586528816429716328069356715235263565568392656807577539902584872823480339578452709198485117637225213057098953950719778021595288688619066097090130234938496568805694745799466123591895576929582007173940168477833865057963479858587834001614098949059199606704738747041043476561750303247061803814923269344641970783904431631839648803188783028625598484900751148298515518737850457687495939446259105053438329058184473680814375546444955736247327379748933595454945554283354309665426755109971598519043308646691249793442781765393075293220598724434876713268499203621138279078275070572206702839457439449563299372633553708147748664238601810076492793978478462084753572761811905213116468602765831537980131562268085374368311827023596423776910773931860504728631696190562032774333599980185170423104697105586326166963365135626265411730939046737104313998461276712651839223902444328485034637751761573164379020198747636804512849905625192961533007487301895078466471918020930285858035874704642415023064715486724042923938262890095022976786483753073822461460356105375958952412983991376459424045372920164454669086555730379484384633279883923046929028565277456988365856384835376531959568189375909690049678084625811189778973745109216910704604538787047727608254696721917622645567126555182031883495179253764146201231975349368149080395165017615472612778923192107603600052933386992529840346280920853252662962961406276046803916368978730032091255366284499546804944577587356318468251676018408841780359675128667937357770738845846058573544938302926098762480803232524347256645092216106302385177029671147393985687562612138960580668436428438090710135547709605171395866217812535103713676050889533469664518853460803255118323906816719471579888282588459495635420361735492372812770762781627409420626991334967780668890386147643902687589520316880988905934925413078124440525190245229991692131062260499781897453121077852731418974013845178632960557371447160629475578527556585182905706868988810127342634564243109621039961523937153328453006059117702263745531686911958086770353534450525100321036063092809781028249983416688790833501883733240836098827791737386786076949526111189716225910353412116228478833160452144589323447540085466792487392146386998420295507775803432147424587892365941154596415030539161462057886477430312133446585638903740470077363193479806920715105780817253330969606891907953675709161549317782928878608142937476623900225643053310935186946064615927964210650667702472877323117321235748860303778847135459264032147992272675560646707514111220367430950597620683605633313612720845695840701675675770039342122628337675676278283803615893785040048729773098347542164870267017809116540120304396117717602515793854674176904903034257798677851982721411438050034632151307426002230708468060598041521774136840132041047912065919714482441795400637938727149295143449547517563629650840215614535951799614818931634413812949113241556370844636465589268805020947534968055125410885531447906978372641842546623465427940998287286590093184134713993821498784902783696376228097456292326681889015655627834444982996588702214445671446399580687672462572384807616606595236573671599639699565513468108634752782013737858078500256612260114962479493515385549280501068157269737359485769417035210343918312857802797002495410776933651945536598418604357171811079065044466929153432749699901154084220801482743074205767044947043693318464669338085146946767700927539933413632383005671411730012705270379688824686850962960753046771269701875337110300395997765940500547793446082324825567178584170970335917965745044311258138759074337871547511893571363357858921435565227261297355585098512341369441792400324389192145190017310398945371735615287511768769308199028503245423050816463534147681625400648101099787713846506294067865683060204759791747597071903402263620753839603472340246065808032721346913219356952676682279551680723726389364628321087049127832566769468338388856925528207397972732213975381967033630478711639193936584051812260150959490374808258198239284882755469727665469772240908695473244469476239206824193820976425620439822975445550565472419249591334606682300218709896851543178798856016868090057297409676579288986207318647169183629339418524783021767158543448480830247584334204323505135441618036944497525830472579284988176933437819067527352619057365111591087220416314657297961832026922083611255318430601895039638572067775300183025083584178452381908426005254991629537581793128800806056108333560695262689978849773476940891294638863190065113573707075748508614789731091393617369956754443890429135022809955065041036227457417548294598424197426854375344053907572106845662327551413010643816851637457684365673851412370695551741519359447240665792934543494206287610737733153035599013914264294478666999249709807424733952292349679272982289100499084807456661395256964455206831633943690662442103798302216666276124930307425068649860600053494262019401346485369776110807728470401914295546809729328194825016528777098460397001444204645916569925620371547015907738109776247338705512649721130800974618117331743591297382442852955092961491440280135506945581435830351725095220920070225331214289440036382423112218304344633508100760079527704635437962342731420482254618242065203040706205885188161872978342880235381241449788263994711786769997659871232798518447255046608744357453967842938064180253115979260345387554221356797558363632184836572253593315927841899753757783868451952028861094296255078924372852829123206705693707194550537730191532627871648608146450240114055369080013654238700423042187869584855076299071228022282444834069305536626539856738853460441879436228383834733962246744097370973261714938442902463331995134336096403740433491196561883286411487409427195112717273093136088086331303018683811899955996485206776703852619617645495724452701873844116717059814679930343792571971475605899337188288188399670839304956426524574214356471855774547828957032058539998491396342320474121938484873431611993597798548499533933066302155603422528436204494828304413900086423907309806997576439157067437334824002461319267954883236832925670754118733177484779840013412623492895201731583074909723115348155606914634741314102505882494915639918502378045373352540232916093631708083312384758222489108617820838345254589394727677189396933291944843400889033704949558648545371277379176818509736348359212999772050292240849479648437577475837539051568586035348917755702137506570633053720512455178528438636130755018024885153528073956941551902256511934785850070255123261950133531168210374007339932804780970713662599433859461131353762398982730937309687654265983171708698796068078867841974991826429211086575232260461665877770987898391863167889996337716346595794403281272628670606898592850137853900799540443814742566023436460328802137647297595483945304469167483728591316937922965374005260043058350145386670832780329686906120931554380097101976450410647562853325195017901617335965544832132581553098217646728264800008150428589810183533639363717383264693158971946078210880386856229027451890885960207897012918111316360937171590021139487180326622405520693423268431380935799276605858871844574812099811401912351812483715597823867931841336269809152694950338378977665370429012129997868482306565565306449300017521958647181576021123451122801654186214365952047740058766432664753307826731471197516011874443539295781256625530613580812758624111705973758966541240613548551605197938400466271463530574024499773285027218876220166328313022717831351749500876187362784240355655522303864594964831568363650530563736649966362561981704810625715323723625164911308409645350330000126393349014977583753648793985828180353290434824162708026439055212275868432221890745039647250663401482173092375923149305054474060746514678273476037185863264682701822488476461467421207443939009755190245557456538285459186866489307463985731018292472358680020502058533673069538695837459278048350211220532553595462028449007615682498128328487847382702953610617551779227874144231453029096265424123240017273285550212954813964081235516266567754028485175809591687092967250725779552012865946708673597249390970715655554243341884264903888956080290598265527663845815632275959972885319641107899165278552260010542100809194114900311431081602413212275819852977604633258140435661541303240690006318360093091615789080450966943967455969740949641791619220901751132052478664832758882827757884689815246501504021262158315007841761221396157674098136416300916489083867236239145421975114116726673450316298343625144414901360137983186113522871366525554145259001319619122971085933155970618415734650546349035380047128046880991588354486782725118029102925194896150470302361521324505126198582509673522513930087432376771244251527151993761253898449540412825246653889251837292927932583027014317518453113050962429324091109610467143709315686113296508131985346181635622754610190865705911416712122963542336703924565670293056622320391022539545536260764208822806449592517224779081134355658794491537811099053099675898690737958971499451330800994903022378502244177894568399526236145519992093497088768332472232374288072183289939715031250881542027241904064758978202990957150249901470419062649787415166682095396839844705636770070953698559379735276715752088095011466198223680180894178945915312296241458347051812845696994082454127971019420895371635264934639950093323282081488992229683393044102572625689051757456860262888682459941704285244135800457199277734095130520813977854954173328998255055049657964723822764224948658557540348776888555069023106863483703353493030067508189156908723964969937911764202857362304717423608862968246982708702784097158916404938119413615714363295913809776818944907228317040168411824659418190430297136468379388598383721528889731373038775390627857046910152727079323536106830673262903486580054732279583190776809230057928640158446171127883049991913944333318942130833259882399097802993185500122347396807020306446487287354373420680594749359057203240590776942393984212092999548177522910474556174353212755259806672298043913545011836731817172264154786673278646196977482539724077358599357887031011817474644032168786513093780440216938693408255400613309556777703584744135951423364261384589725687099883982807529007756896402773978365099936662880622039361873027981992636760413699228991346973877094755277787655938323860368028930645924406539550176375138337331393424382280048198650299225283613045945471473506003816980563421474728106132123579858751689322542841330137018597333748917732302915410306359602549740028920365621042504684356992383724153339385664468568336914237360608066085981095186926958969950844604107090525358599590019560632677248384753226962901268415341314323009037438529338063174130365820369703719542032454876594175340099484743116075593199105230402299442214354623594706318449511726467044637002569231236593901324032794246471411136109175818646486164463231775358900168370040228035642691440729927512618010259681258591115382865102913402305550890793852864861779969746738997206375627250789903502315821036702095096008320127360256740717722823462150771960045573033324608291832607641275946611114661149404371148246172704113578798348620592583691676160385455588179620575324598708884229829933270752245263501039884153989804680822948194610736767545699631382567482613757423338695445298317556534316497410232125452243326047617825307070573062462472551153346525714511738546577568369266453323224005455534525186833090610018996390570780252863291800324818103074148952848076675572097662568483846671680205091005759808703030801919885087800776020913651747578557054965868539403668953066910411787575662358967934415760647972249620988468336892894462455193932895662528582597303521973953278009673663672893775394113201783744568795009100832312029090591292826979708122781703584479732802200071170280965967675931983848737155980808252600409433947889556092385841370618741951709383846093457760314532445526465135237118979222676765020561714947345843300146701572855420886034344991520974232699023426135749761156074184203542347657120100600218804771746526494537180487899479936459334319781171407339385339978187860793353030524494299069936612018064498126118383354910282843056686120333350687145410863554391686147122978808401481972480539129522730825020901143100413351494678081854761702515713913729010094161824831595494267509026994686139065265760825805236788340118831292039681825423513270329908839483994750066358733651626102478222008417690584284862725918720210906354152383104530410468197549548643311922141120665873159376735076523638065299221683315252189842315975647816437753558467698330304575404443445797047708981992769949123850666532061076604515839576878978158056314502729756092243638780866569919898920291088680807993876041629761487412337309095629660305837433794421672026846261024133272000235135385431282662987024248236145929404719071074102136327876536470200543856965333507314675499723116708216758326295336271980412399430911045955368773132658157306959306197382813266063128086208348902146883999090460947923596807313297833133842438263291084259261923498709437172180797156673178428729680621474720341164079667586918097737421944035868515595280528855292044913969416953044116169167680006505418656432681682101690091572526675410412886498715510639544301693946186644429029339273701005884673312933262597027692056330482843238890688387119325197566167590831821278849013381276050335087736249538859384139946572277324410118831154884228409610074115666896674127075965525651909398669927179805463879722912941407064738968154040057076036108464006101974799482616956134421620922301366321544170709905952768101302190647663639809783344358873854943152929999047442781065352103807408125957091303897046446676680781047274177991070597081197087141397149692815662386112773093974804783946284905182621790319592477314292538796715599472328845297764275372727986027235902825407032055836117743754312478902606122716621899777594279334328668725432113256142141114382550697939943300631059724357349938902406422170912537406570956755919063670670541931047139896613639485221399558810312986667115850942460628560702924929906423449880002017928998202432415943228447435499114697293627845832063552665138187741978753827118777343349326397364031299935161068560977041037594266395334241818078925035701726460454517559702215711134305650870590620031425780421613871041789285610760577126420824544303975101212739472373584555383950693223133828485563706575033324202177829018720161661082654466247849713753617270448575209151351482764776652026507998277699864574062713013941849594722600752081009742360784108905865032848735841746368210589633267891008958357819109782334036038904060189792556162988528892039319418074497648380701790294371971452492083073155606845399431347383068883138456503512220799414873020332583992638079447074462216928165985490198394744646396551952334861282090791396008055917997373753936605295443167769500790992876929845498496262726420909178742906220467612588777650528161105378554835323816990515883833278359604353953204928914600380384170511419993931108916106348699790852859506399952407071381297225505785400491627961463731680172470971999056873243967178495307975861700624746900610509746264434103536287523633995687892805340981618557534431638504613717074084264283237663162573522732562337439998095931070020750318983859564963890669092329388918977375166019109240935525154018943966037540887186125300121168816884009842208547234566818125874098615256008219960909901946906453915416042108167116914430285709491602021272189577527332227656845458417097230142146611546085760963834376320730626158934219051307383867933430384703448710516627289505114288076185478240343794442611549291768157087868502554802674833924826796809938394526863664545812079657819149816570567639850192541935799184050370604997941952886666336239608366417375930458704680122067640325605889379905144768265284837240430006907653592938236827297072538631650788564002789947990919773742884216989532154006341657470971431544079789699893874619202136782176110095432110474380200300175642460401379209349828799500712182730672822947783953139434777554585713328312582706619442761293874165143782260761603051880466334517278327657617844164069439461692393340717029151980051369974468856860792086109719632944557489203960092833164279992579361770860716520989878855309801151406889825713849786925185941122441877464482401946401714245487740208189744194544710933868660619068533761906031484036751646364417445783643926514104716633999750489450857563659296483967568783982819035842435710178683824082842884402883242056758992592014267099738969177779334902435723987409852541051396651402208020754276184153132971712287212289660527074725712809860611210297053374123851938157848796948950909768489963120582918831057308570014412277505411764165355781735438223898835455785726172758766383251348539326872212701017494933031895512233994270936643612983637956862901868944728782657110331711591916560460646825413971241982780744723095570395335434929601474468683474700407571414300464501617368660529062323278618887846709639840276887203384659549996349425015421400784552520140585571587223835189762913951220459185660874653268571710955793896047782291945910556579196724559927796131556600240726927442931287325330724189626085528260869577943961692618829549182249901293073197103782710659478871094448990143858159218727076427080577545890525493972026592117302909211881090993446099000122266233318774263712893325870911262646247530833096397279289761750577787282924386008783077063280943804611428209886475745469776809354577987675769808604658442631096513572247765128042895033278310956465308527073313647246761149433671524112005060266607857606445780847964307328601258772897485489470891766078258141829189770490899693579954622969156751451569783826030945656977828174648734357831462819698587683872144593073108605743082708899368096675866585045817291226452363515135250487703461864199251700072307874667261400964643488833545225715461982984059426965038941794871230655754257611830109280340787167467928747713375954704104769237853591957568960468894939482076813620038933469274437710855665190432774405223053578066092505073285154299869215292488088570907091767050310774847173095082645954735296077595383097818262580492668310533161825012027239847279705531873278077103355976833437489003210480027408167456483021096324048406921743284424382964809601297553056537840995257900336828114732731726782644038612548183735875628071866005776895875981193181126364856451604614757478439049105977071757151441142409064292852062917169640555029857105130176302073844808575806230686450935548638496133157592500747290038631686765937975626581851793965379607573458362553030079027348674343882211744862796946442069653693701883583908423440370454093952531062913029121720707731440127213264882383188784813493657674752685918875206803691106375332574163369645939963412599680503430843373960671472520554134284746366081727310027844120934431989909868461422978671856888214086269995382545058088502868796382779121220404883501079163759496958459756122317969220917956089888855218674082558227651011966049018848207461630860812994618494733452930281592727937702256267136541536005394534263328494232799329813905850846284986329923779125744101708812434872701259486178001424716426901002347105545874577284594794073619464661267492075705168566133219219079910707844642781572559299237308509430237341247276369003745503739651823162625636743478073529780383476263905883684221821996388406856307871002917196984710406688637870597812274743575354435055026399579202130429524335572563674751191179627944820400566113244542199651238342854250189163745656035157470868703170784483386700089121046239523232869887426952435945232737218097447311506078212398117335334821113601884238743945868187664973317035312242186865964768103234633124916550318181403759064321403038990387410530090487546870390019289521171786848169960295035162093318629293478956321795628492489326845738560523978183691689155261522066717288368262133300191748222048895580849689475230700242635077558408057798407658787991371660776433025562531554635105126793436748645068919676775159418015122032606393161031431525895511716295648038132355240889538182639738195085750042653739021612964012030334053015519151404503967472331056416807842993375648143826701192870642292553745905294565320025274362299770927598393870387898602918269225780944472625665541160463410805055733429883256316148267323372681766173993897492792945799298646299445349137162058404210955464978593612765634474123357043043452715653111335224132636210713685139231798388274118264415236634735683191530875665449143675220846511038218069819634301545194897100341737876992479939605958978487592478234047202467355153434132518507436676991282832124073033841482681670962353776336550059985168244436158571690630456475119350144565678793379820949600698419407878548338050391422384425120848578850793185351522402010574737639758731515758744079779985702227322655928030867607976362749796005452213781766999905173045037263262925704451691266793409272859089617005268030615015493897234888288989054400842089689578312153501141733621273012877826503927994839305135899663006057260789569290838972742589500704595236858347310318226812468318527156551409490419355845858160778183860224482200101272270130370101544766764241852139051125288396208889316526743431233964871552008714030968553429330621923556253047342449656895826999493280998988283250739520998053313003156305554753938537764710717667776096709529420263701651484162303205552308240818528054011561945310998797630289537744228701990129806088299528888993512764233520702310990998425682573606717044170931977058323087729917373160315037353381058150109035725424128254027367899383786640519878598589408091492852843923730367479334087836670181970123544749617760565494175918410834096706842406153289977291800483138652278052835669482310818367783737284564135806355854623527649669726629236109504507062406853731320287818716370817911872736136523539411158250057835425470840867584902456444945483722972009303625328319096453965578767828812304911348163181888690038596398929634273863355653925572631512891370568716493813339722512596686808930654098547733240870856515667617863877435102878231378876578777856495357303550409827537724829021204633871674283490718734858773126126791597548252232527813834251630828379337215963546936607221649501207688571352831290558142817520269018904740405081143151503512546028844635194560886649560421884438880784222188179016777941384137717725307605806186919133685593471633248485401380286597973907340593832876895167928674424174642047605027478928386909145864909337340043141104036782027257168732815091396023557141693947913263396812731268848516108660597653704679641770143486005562382559104288398872520204063398041800303453649522654570212625652970048499840500645512148561078436104265259841585282577895530678106182737766910520486982955317430982165246511246390788687664169305566554878833085592473246657260322214944134424258030395946557233046798645828337627531482014007945049071344506884586275580572116335992813616538556313625731303107249016449156703754609189322379382606277608480019299428480195185904013903200711264997620101788443745330081125260645178872939338018646937569479498665980954467438372023276289751034946244058949364841132437711231985498716489386813068468428689702113235214889753567290722345401084129760358192265999165234672035660495019267902236161981166870873002687482531912730051332821351787850323514692327095504180332477577001236377545711716979294582293309041171970917452409216123282642012751179839352740502376516148154063530786518387131959449730674277000887134555789914054257294227634042606004981307194748010805088761667789394437957480101525436521370138569603888574868329113294772394213644890813280815942459642501729809525819501686235726375392694078949609718889530248157389148234296664717149762070025199256695692938060848491663010874585401343786960146593654253858186406160990450017392685086490193401232597323571537222542231387954672228944983801503417525031847890460039765374268179895112837377191555978878164305071188500319313622990142909656323762055833824859079739206321198775058021884274131307238024536387410948330429625952809991569759301727744657295427819930353883375550767895308771925917081727902981128895332225014147333472322709440586684186419553778582399560505122231913286336724822630112828842742376943646418825940384538402970254939410979257260339983586448904596012092029299888809547456403182721328147225099742025379814420527648158280304989791588412393918530104644066089445546244452495830991861717054066709944135638220099586124691811689187845446114099992631903877954504395229972129535120482588945429015305448072345746823668435622047218083698043941194217526039845649253691856874293090474664504631670451223579179964745831144951948595505481519723460005266695009268408741943337901423859595629021555730063251283719213236509611220406356795358529085010709570049448222828838818689304982203301623350018287777595316201583682076240593625062643653639476878489531788312308212478237499264981024614014973236507358039044978729575241938734965677798428114546423186002703913232809324221930587364887436237779167215760425373371402922667894658824694051223506330684072805911958209941824325527972758174049557074422307011472069769540728655872103085710113521436354404550839552023046163056976989003641409722296844588574870046746417352773926107367410738785987586060558985217934864193912188204907194955869028645409414615711657030624563513786623247656149009121652571452749012809013276058127736036643088537106018629680915525348084122181599062461202228294841530598031805606028642496141621032420801462236937834718704876109298644996564621269451429363313833245499850868855262508249143918181483167946286936406379550037622065253543683704592511394950315615583074361669268618723715537943624852253927731178119810964210782936298495638047933718307667925943456297851375404733245448949087275810449482126101740109612786613388422776820877576547028740622481958412637638954105866976563015079711656505069348054647468753723954819634409715662062980769672741338161286856161798385891825181998798344530128242597727083577625697057859235648030814915178458812468548785929352536015301835455141513642348791314772208945898333008912202173382641113194727014066089101362041565567704031578263487296520824399597289968831423980434466605523542412653949230597084783076016012909260097416970662360732837302209568481850657141823277580896609987271545826488366448355246800775530958120233995598085308854479701459020379103608083840624913085695977162108454652443246121212967472750647546634387829803139033940690575059046217013316527447312781357334063950271815151380323460581824616084234422855995918009384323406449503775984390688532263899246861076396261650427055258007029317092319202476244515293999690542527636941722690504933267463761248783924200328072151495200587236363171407283985799053526803443233259811223845864359214302384051713881176564059143336047858177539865716349897615331073628992770094530153478792289392216110478426979500210962831805701185685101713726016033654899278376105771368334060614320536384218010561692794906803477708020172070760689674025893377605969954737504401139959130772978894533484159053884375133347873794710016118063278363318549765829714965313697761500009987686535347777415068259311942285767128436399948353513599790319234290088157528485163813399199738115326947406759765046477754654125976636846835004274003794855770656426182263827611105798879278220283336172449786414583232778164071738418325360396112131628699120763914662339959024324216809657157992851156741455733159326883380161345410057007545550445214321555813636098257560632548237761813898840102339434225143159095236377087443268223593675155476046969967742999575772825275724747343388836179226198255675939091597015833984902831631237869170504946305643939800432818188433466987046847565349657528281770280886493810533426630093898853501075648301324314993667118910588968636525724207504238809206141827766558500912241836236203060618870903300671911879045951696482124433629881573885693855365197091148487830322559288329540866809507741874413680559069310207730553604064105208135737286263844364755747436960783854901680402412397228175178300552435690329421613452898324608467308185943784549779800509917192955065677270844068568103250576560095271804127220313049072592311797539093793932955391942557485190649447530322329041026629465299728624315160047520842778229264747892039016349454950227238274592043795271800585459540322417079883990186830842487920074066413033282416630961818032360371768978317091808923992648330966074699538265490786093761154792077681089627437197329315445453020685470314976245292405275828413636850915889243483789711850914612011185426974049292326652286540743880621907820656119266815146338865330632135951674524463829511682135825314021593565316775026344818416075744893720532171859995096234252720787888872095440318501629907097718042751683839128896080736463381079841199013410033510938469400548402714923485631057043585751475433682401546817386254935550251647442814950979069300642906642166531043186361741640887995657190245027039919126605130559757428517819996562994969590243136747361792922109802807513266843164331838490360951955736770472393948673163815128474760954100545056602824722031467400410382073478401834505291464332049151689651720119832617635275653600809236476245283005117637145687103298724497981273921880967156046058379143972111576909797772570552462960368332787892177447164024613770516313330420237757847624299652509018873518151724724200627040789606841532785985078079263409717622652895600338128517827706237658720214046912598621215390450599580164662982624645530916340448926719200762258181347095250656472954580680377106842804746170936553856849356736654851550491171367952292170256537128978076015836900183834806448492404552750824973417203015250168683292943320257018914185720406263677663145682389872577638405361402379152293866082869493394808772237078240757236222314990272201463573742730624116204570066974654143549580689673206944769661952910704725531247513911434402481991570560068127357472985255801311022774459986850599376995723320729932319056678140947218480895422869916073478863863446912900056681604735859583630047513320261501276138611382453623517686370749368360831592629303079483368982216088170180747352729310281381209451282502062330947416169392607211843676247802168186385983985864592497596485404407750252689826405759983325963320149439116656785746051464924930704031622544824322359227620069035504984138066120384403231221689689951992879158954195381979098835227438028837928993760124546420033195934316236419889218599054424150883176382819644902389481006202592327823525785380994039345609648995461802098365687869016366600871008059644808022152641072461590758001899304684099344487408752506251507690503531804179017233865223852955496174677552125289372175649871312465040790733663905593825695451646043650242163438814519505494292115231513068249776110252537723438423725529421184800385290217493968253909854763439882649388224970274538825733265573386329821976721703597267503703461692124651035372339783787698982533170604592985365908142971703864786430033516458694665759309344605614691658234040508109288144016269988084788279385296165998790761254290298387843787500546701409014158011312650535704783372069935279088482490785439827081540283192552437475581780793061814221005545657170592913434857970067334828171857083478532641676124276128499916812331066927316638380413100107552680081144352383648217493566264110795197796122588657071552541569386197395385392243910097963447345298501094837631769760549387215835118877530359093144817204357102532082775351507177874018267117081561003946032847920347998361327354984932462045863469017080888027930739299039638368192562103958604510771830965672769437791474998341465985361908072354802629523853363383894726086742696287284815777800288735732555362906944368601554497897947302836124134968451183056595777172197385045158781200212343987360475498413402492898045048400034691613672926447934215099395015879183624036327028512713573624275605282525604355698898227793346391548928421569843826823809549627039989754267784140216967157556563476225477634176318869085183655347114218075383605933866373977133820454439496357623745796326644414141335554542413706780123014142254797821096284982460220723733461760911072771381127079039253959352403029814524295864710666146611945426792299360698232540813527316635152411211790401177666608251448284827026299004464078316735974067225787921211485975582037804434905532058391707223775566909268996755825458673767419238807190044887045560896850796021341444251601915247154842615901458294188745527893288937869354094769169185203359145751560391472582115002546589301057681397938550460456746824348518269833134052000348215441054870097371248289976144777777579080210880084621733130988089895837173027079677550387717342870135357933672293896611810887950959210633764667762713487450272344966764229786592455596689456695485970500088440511570281141044287148166151810523999279360372822113282789123248000936538099846767530347778810526836315902138573679789775917947746451402325063781491030742730961318210509463562669692212116040586608202971615581409271589647916968403374638209941019319589903970681250591066443040355895402662878734411476257492136430509547612980216572050587064124908107560497181828679326093033987971206542062923341743231400705914411955912359961082185794448886826984300465112749098048752773510148297657660725651463229084289241425770973901684907131880021129174584429100893515324050702548446111315236365773863371147840078314732993629250356763933344512580706511894186635915701593571347780222715611460930609655908872554676738225152266982523390658223124777574128572771634324699434204300615578178492643008522885324007933553113825379354975525909653258606777527920555367698092550236875304722653195908982392593652808879964311484042204456953647860068534962629012418746382742975590271498167255897526144011556667100000285567116128983064617012811589081026864625405347522075428321242410407320143558667773864630706220089029859244727385483411503190744235184161708080877416008858042392729387623342667461866962032353228933569757541048305929465863715799332849622436334085198411163785825272282051726320357155594722522543241707257871385800541693274333319155700383879116195593611924081170681821188611894763623991832323788663440918579650002780561407810668561559384131347726509031874526671331102026548058234524065079210015316377438738140535009376535131172063476594984125771095986671883059915286503921317530952134536797558198849529369809811628917860975066711973659760489814545727896574126190667465394733915592348090500813147350350253504687372789150052752346581024728169553972783896976750245304399602270166318363831095982125250163647506488469763407705944578444463315753399521612165272020979165673125693390902748485521281435281100800174086373077821998961063657115104626991785652587049555795282581793389465956212856980803064754203542598175241833818160244671790239359255879065337181023986537713250140490976939306256224029448440731696669355674236262242751254101011339187562654538977790445449238265305148562870749179541047706612463142325918181527779584814364774431473486475290053458266212970197134673535713289103184359036259244571989844114706694059671193883445138754647309258172778173731457624350367371288937808611211219327589135614035596292069692764726695849537595379364055986029083224997376571884877759659308107141007419070720939962206118166562292416266827733242290244062083142736630580838474826412758980550692467111053511617642266738820542610215929528207803910197089000166027500774237598200915994398307232969770045480584346482754179687775215543781765365957728832824096950811630210748832936291018982361564449676512217502533531838368163030562792615573127104329430885488477123524820703620509318196163656917367128552839758080558426896426639450813579068789776986684755191563240939785639099583778939850123662795391279513701204852267353450943393332388174289925887133673283635127865650306107172749767013796912510208214764448318022413853701341465556686810818991534128446934104054514476561184592290779020691143905040648577616768084095682156285509769161705501607449903488633230326045167701160262581515436771386226374189866619287344200246704170222208098555822365864660601535296167638615319096767058701192665185433728631812696965294786650087338212142902538165703152184530103932061111963783282415174876161199861880843311770837889715020442596612319119203420883256366658497937379609590646507669952848898833945350529753836423986514898943378981078236298495694219054072167867238672720991781168083780800802349102632301100308224013418248578414528423100865593995278654143935029769010667270321680523352275780835099175278577301375937239831993757519724093654777000905513188051197074231795829774298868341125632732076928294145506107747119497361877197129358134903911189051100820156747425590431253707175410053981217318961642357184578949675123441916459544453113206936923333357425428342997758860984204273039973483513293835449013529561339471210260321358151908581863282456764265099340156506331808234887192936489580391283743859089836508706430517398762683272601580894835824699500774163512661869790824007674369441505619666065174428751632849641622705036001721286535773792561987112434272246785003391996692720579265654605133545135796546475328439701528910474643977317189106047699245252131702788899781547400098394819942901957693385630452634856453346412414359549508207679435873477528650820795034832348385201753003324290323430580142520789073059758843794863852737758103068970259480340902506098790852538656201742889840198429164615152669013886625487903136733115055250060814312084212196719066745274615154419701728817995951980127045407305932777073742428004877210696617231180629432040185115526163452818274757189009292721299285186302080095615065642310129995922790573451246656231625215675587323692127305315457598035407832534425734587064157218387838424616946810057402158193134140832328970521592007878908470315388725595943267280200381578275617647424017482456260383029880334067950215876378672534660832748460443677185086831821400642985078987060194889228462472869268997380154710000148923586451183743406980719618930627880914391728827264404915327753564909276096712070406323505739237581577669072601278518198723507769409088296916521449127804097903024712305284751581846439066519001561474659001088382461084206035102947989615659515264347196038226863455012269728974436150663754833964960392437787406186525057010392291470493615160341846840420012309234817323746749456153519089488582818790567801512069980202647880142854538234687122352090177769239299206676707690175590545265385301030425839736548578745804395877310192116735895788157901080485142573401755220360503542934067438184557139408359338751044013518209273679737150434760540529792034041655380244630158948347911419854603473592970262808837140409471794377441464559780324089645018059310207863308524196445068932381623094880773807271750877586112608725411393236900992011051126477626408248398327640380410210747340909118582962996292841177310045252022578354381649696732834214534644663138711376951195129507576304680824436625683516152834024895150990472320098172994618618707171670082246130336718978424795280330209405284977436605162564733381363569407558487961434440432175822141207502596254366599103485959768979047130636867359972002944928634660681063989121860997554060611749886035872054812104390199485067187188632469640871213401096515643065860851202618525059555068508012229695421710448421101975453079374497105997291991968388931858877218171051610629540747246817980855992299004436454214870600998903520434994054517599157354921938273965672431100249546135663601475869455279909824209254826402310013047155368165208469735427009882360424825440420104413371389498974630992863500277561625076119814399892279909872435226215645286664019496561480658932018025615241087953193214354825832273676700560923616890533854735368530178004869749299061521459580440637361949151009329152293371598198113635630577071909685712564691119082528998339038391464354933136341643647632294201579181909152347927842158923388857496176043820954707467572416381324919281229479615266908568808152104475378176275217508425528910535811749219158868636998203295424933907917433845309230398694050539412739370112797656596572264541085638367985996266615411243480890566498882430793511784921037231647133960348875413918003353729402990025506301418610970181340169606524599435551264191245167237166389631404293142373161145529602898549932213563665427004744383145501246149128214086329746162206667395692702807941998366574411778218291246205899429150355107484792542170870462347392621557552147441079159725988451573182451833222238996691362338879936544543220756598699794296838679015766798523073112108978070084670205482070888501183135512959717388777469378244025154703131211419427258482487746347939968679422770800171475139194659105438850040798100988415432632621893581034316734640200181396145205413839538635707108286390895915060369120740626959525514826056450880360976277190107145455469170701215410345677736342910955601171595060111609399067485059219300139007348579311523686518149498367080322813110918369319950132991899301406493665912765745876884486953641082896406745440152258635959009364684274724813944497801547477597919245574052743258966453557062327219707223627998848326591238047143625384653696600765331891285820849320341020878669227239270540030083007909648385300810862733733546239696651361302221189999969914788350167567518738146622091836996777211358422376884932509193630326441421880941242728643385955404259540816310275239697043804483721746349795377143458253672631353933639158475475920384279626583191546129041853844825499078803321799664894915917599829563287896595634235567185957719231120440185319004859495647092764871087860579053128474830336411872316307205529337687182685894142097553522346696376280516497814412267389739950555748107146416961711992661300804245889403284085379717121637523310156884026187100396773299009233354645149054438477033826248734609233916114016698670107865351409686502719675015355065546282728924408184378595664585502909840060533901978175031703524758992327321006085502622367802875287775884003439905027453133042182597079938539933497695463436665530360616183469906758853045487450235665912291447629252535931279664277075316329273501338458501474645138135371480819290547449817756764965017816616888561961693113289674075433902538384614469022024519886233470319812955307654588352210229139261148528405153099013663116775982254265992483611092951853767993388070444701263008924223665220305657992450020377430476049574307319202464250266256562138441386100981996280789160884247249371919818830225822077679362831373712179025894396739821153703481303573545861828559655369116201688120721795736000488549810628453662300308833747264572111305798117650410210185821550932702402651600960348675509353128737357735485236290851683686595554474519474619009082466209847138339124695100282341398517787261021701361641680989544562878101703481300978320691771652267881315928698551835300172050527814649732003135734905883093029518786628667716566036016657637232133101851287274620043315152246208941262511847584132394940712024037878621325853234675102546842775292259992559711499744189779776716446224103570813575775529703428737947410963188918267685456335362491353323165336166831947832546027967689642142426937551639990591706837927203519186769826299866540138787046502392009984392137225856932911804546326008612244101746554574382056001966513446842305544289135675298276782722702475397316581866717818182889918826068111728821462644335575982094980677004076582090535682062491939150401750891572319574674649198001696863550334720289739281635304303245735950283190826450772860233223008533503156314174602252244950119356689648327612345635056222879622078236275709200479068719372104334964786221660839922693667336639620086775250176140862609498930296655360473160611080152980679535021722731563652960394172538674848881218475440415681023226382521631989841890843663506296007001642839302283054898867400626665288967217591230258006004950897037610343075581113341501168070987662665608566365677363995661615829448508192467586270442225422234208856969287272170099221025288228929637663782574159628495078852567090648783055422687714309267082191575565345401194674991639905227165900947744274636671685236173398261224365176842407387423241915479142289020066217295579820865923803772886264404995843065879258241228675000823877182009773553240320806435048650142865071411410273464039290829681651070928709161043493796002077675404175413531832733879976188404480241640675349139315687881081709793716780431332496271692837379240769227022404133590868570548070164218728893464917646062246250110263158236457719240263196282854035499024463763181774357684936667777514195338806548027089402483293611614712510274584997841806277318763398233315639022205794032306731530763837427567455092213695907407589471241452984176461421563150779182986709493092731613801425676048030271418414067553607711899710746669726816392154373240904386245529815706422914520836986200429643380233190702230561176557380034582574838664120501448947507183061329416951786450709473850351587964117226858248648014498541059903096352319735239985173246788919751490167719329448593997232029081519151826926538320004573613537164780251874674362826910296610388833436511791350084988508848145369640532292814271620673172620122997735499878961807416547449491301428531870072242575572782394692759556937117463106146839215059527253685008418347333671683420687306873209455131087392184941178091571699613009408278848593818915773285069841562633432652918228312313627756462049903466524391724420457109206238876854699566027482518025919327002374843838582228257619356593689020209077323985157138793878749065271794498343840968917043513907686122166949559478897928035080657564702769644761449904124951919466906795697945550005400600337912141594945474070317201776326227003276562930633510716345509391977771710328974109442154508665784939748529922649898276042397935054912734672786518104085989408158127049491772833991285095698429293903081924700126615754953523019616389188089700195757997003017949762879949109625557973456280718048620443107278869895843104909308509032910502542961888592115376472930823077277929292057360130073861856710484773931906693022863947709739242475226078236976849704009449647207258727697373928894400275348111660285890335207285043090658741471124528591653668097545407706410781635778862705842644376547879303502929780831494490966713699856537794146140065648350783214428995606545081677302330506170864742760174500580260230603304007629019909605794956827417664378038626220486039428624270138970954917284900943015176102078545078075316846605039413042027458932399472570041102583020798215084467625791561313985769860153037379713418710818362175584970820995159374409569112541292764573590277453570008271952140199375884388575679236166951775854524765727829186654816533252748583970052998005501099885914428361431831221442483221334178172061604978239731122954431411220682651979756996799138796086527770383053271632260324119721574409004175973880236340888479449989963460210692190387343657127785081692335541677733932686733957234487594129222908180082731576058727732220901655404512421966126373247918091980744863796375250964245305697226014287354494874530246839902517935538911421088328500391931327581939171208281423081723087802404639128779287433706496532485056212324460939921526773748739342874639577147274720377428782998094085145812987415942053528058996027628245961729628711087398617707313933553587649347256351261293619375321461603595206551087497199063779899175987957832201787229134720223921829004493262950024912068566793861282814176405765266354650314613873295533845731963931523534029004809777579144174550977482869870851463573427225141799112516361027140206571936275388687328897056312544514742835493662197654688373850471221313940193416213158483393424356904988116020655991902684577789297235664568518949962978816140394770965721418793201697129773142124987222302590055782083479897778950225224627038124618858245907882074677551784833047067601183384562864153399660896142623990961571324550362793342554942521432873941230143435805227503973524457198807903987336367544345659544660201484946330394422653965226738097832965310842839671864061385826541000924762122382204470195588250214153854979909458070986231031685793185546785876044078865254396214135006159963110659692816733733119138169633294064162729597034086349774900690937430131448671340403284536469733027353323858273798037027733461731251789997461585160971647021550630852806728224963836037492629998594414688586111516153966524618810887976261222459278067193857790186212619231120170106582110750179157879451440953114292889294158766212526454093210053845107664872918503825932409043767578682641177559739416474866926762451126055804586644589028367151329753505869659292533545325367405799526396798762460589205982110772854755230281768058743568941755718390331426895835525050332877797994175246237740839434465345888335802539226832456794334774209048646350043911232137655892832188661174906154789797741851309468542152197685058384612757601682753728996811727739009578984705736175604532179984639144034108883651078340982210280729850477403346802684141690267341472357889412368538527708561937438084563152630084034241351806633869894188118096248271390256057913815456324526328136638399501388256078815209555025005727225292306776935701965936593389879614363226688890455179595048508996769290967080111868952014450030170206644544852591309833958658192042778645318257269801559481384547538235452528790183588742480942214768166621675989266859819391551265158112867105771707140465991370468820659964172613172645632568722158785792697185563603410455636607941411967928966513809366909077993891965579063482037286548479884509063039444589424208774947016113864037867372677904954554277291161184135137172490733655075798728754546970224152042969468484569437489055070216073450480678952631894143793420549290978498493447787490083479810629039446567507424225017220543863581573161734220759923437591611846192036890022889901550341205372283362104481877577564596887173133026941925228642426197454708476269364755223948192730281380825703005796769069453018982957203529719739541156491118526957983436622155725271100649115545798453450832405810354208828870903235601841389040150412241560024037324367136652934380207092360040307732932430900175693122239413880471021173278820218704794822998887976980078359814193579313999497300347988078419599638611513054067325558970032028337746409695548538168965557121706675773201039904769671433993437714013163974834358770080893408462505880535493888647960402235864481103045096186174462914728853021812427963036863210540700474481458351905044299734351983285141999486373457035537974412415429577404463398737758131141038817033054190623954263755551563007609603755015971365483693157491834349210022257383112565859389281588097337912554249692260707910414282907900115823465558739712386553481086653934572812097445993728613186078302842153933893007320943186060519967342605244931271707787253626171232657895477818971019130033670973080932878023998413579472482929125877092846861251825574357565245658249011919352100472261942403524062663026500016205074314886984502210563243683956090757128437422135768313267193885049836826973661867819892747696602090033882174544489307908324193608884265816689720454723223278402132459020808229908098256487391070580928166538213593113377262816921514016570438890958423918083552991635595355219648019885213498393220569908695824252023740218198292289157179908508656372327981252501962129766518791653940872990644122858868350388650940246338943157963642924973834089125824683035733045254707302516963585503340107503768790684424014408130842872457422936294067065483379594262087627244208751486630986812598248360906020757675136751572478365218441494956905923835184463934329408845408994884856693264013954844802828898984735178131432478190458695621040390447545474605915075581008737722132422019604434561130542030304173790650648047053195523415453444057339742498964428859026341473217186022035259928407856751732888436492363684547259291017946479235396067299769294987587369037839599830203687401166671976637600709679231136952618350018161252579350654313187562795808526828041327366577506221565256392556685276467889027698058938365296196695275888204564005522866657538993574100916499242304080459724873010237339188602500918914607009604228105961512400528731275107904785127985073705644083416594488102059573644142330388484464568462871364460604658965935465200849734674569049956194115547789353561320916597911476743394754792381797592706292717434547704631846838473279556999833558670654508321662710519558854313328974834271078240407941110465258403932843118612700237058250395477283504853920350012879019323969715999079806900823570819941483088764351960013059512143537258313081568061831436009155102414277237425301292946539023662502439603117851512709195835695246239077981689063685650439704433035046004645166577067736497537133858255044123476002810337317929624882864327133803539987147868862216907985586243474548442003931997734250873939845202602787368876092690365822444196548050763530067214676954136728800102018802481643033959449482194634174669332739246345383629063627491819609694471463239121491899764299466357891194060648719443404979437514677447736793213621677321049242144094386971791164580038508024948957651535480335948521138499546532191770453724687343836366978954475680180465967186741756278033778353248386990483516004664172814746310339176419648253502812781779009863139972451643570708832106781845266012882442783449876215638291635874025736898725785505449713004162468082334015409045996575143672557255576782923021243526840261245501611904527480022027611278642528167950254498135199380128210797525837313347333695088597106379519137920260003711118390165408556332009505372868954314928620959230461308259542790492232979413876601662732632558483014732009589429752904883387570917432228527585195037865817344542563491382216516973302160441774369576871490721945668953249307447374481326393606752136862322779945510280812932778242409982349192360150500926788636344721469410650443532392351007909861951637761143801612427841967491378039345750047485769790363889636671057292585053353928758057853947112769518881194906839199765598207067623655560808579774349055002200123293738992376339783571901938559466814284324512377696151288854624373343239950037652046563419222823794517651391548535738905083035053438562124338390935239449842012245397656750354059600120344371471836669568727944319432063183951795121028059029850179527801018322459977204847385918433290641656032479039279663195692540590010262835092882661344835551812588602780479381687368785199062098774134005817141217406278877645430483995981779574206395595362563354318392100373405685557561772804546465454238777886863229123038422336062588993504581388150904168841061434229142980612547907484571863460806066693974396566063150077925576173380519962376867496963547526200843252997146975575863346760945560844034503185583065400419795198619172012455912379271237439210881292029529891035104968159908911992882961200334557366199800474853200811470358766092576117288977019627425344559977081614626475250336833918695869367804935290520946626363942563528377981377631741972739303844877246997705154846745108086433806554821833782897729428078233957895008017161243681256259176180299282473506345289057197774798045491029802031383343260236802125404595915952274788803359208835703146345396069129829559199791172983440198592073084497523687403347717546618429534847813717224338939005907162375909983155764448493969563383630142703630457960191967192494581502714369042822133675169440398570552957647811281147089195266083745746934776044067549250808380541393216153582500008244392242913777870492586294329670155764626020838062295804844195698276807942694724831332330607821822695096020778033352376831398475494717315029495800725472007578147507760293836001174274627076521504877142611162326586077062387634701433104507336811193691255044750060269706389797778280561963264239422919409739843883303219470973987136809530002956828393789838873324871432224066324975076393189127775483371801244757442344047887572415522819339719590935145874753977756948005947220709690801230325403783515134242318032207394189571490437170613134223680449781663781387859133907706321421207069530497249508775635051091560516529904600279911682859531912544084103917763217068888448343038828999366011046674444402293636473358735381632054084038091495083920529699072292343786887750063317291217526247096615036306313880588637259430266225295382744048591122354715281129539682130098626747054045588925471247449612431372178705975373299597584002663755981399188901400795751522242956643335314554798567130250048213380951593089349733474453607200470835920610932058218554096450773187789893664069706827410422854552275417876700450000381711045301022652223530484767523763779527300621411639531267292702879939040362031585059016532402949168349720179813010787471497894819936539615920408421669817316660271551230569828776982376335327942333431415005859244634000452528444082126459726712100759206329433634746040012289708556167418240901026262633202908285197555893637744438584804910306807898428087677402087081043027093597170046617052526389419484249672230624123155835214205062113142170339084884106023707655539970920913704894188011096530711979024509834803376052139529190998052300858431026493176650678466149434627832772100716383619717867233559639573290995688516187694495581887278866827390614195711632370115109916707952551214491851115487373894505756036893143047600272410956227972521026901235259299225940036342415404535784362216183583402670347101329716794853480885968576719575951375021688018463988779659345442245763626499982580456085530527391507744030463743067229769536138520437926965353177259342906323560109131074710748044230179501259928717309986483273820916529520185699273508127624894981419758919858694031129390529412167182338872264758361078229270313152918567708814601544550458576191161883451001676748308676426272104898698751964332118540924462175474961527155217129284305747630893111559520851324218088737612978733811187178474453814231683504464853329689427350992359057411824516338004628292462536510612999532102409005801230341953329847254401287879855088613100811931276035616832422514100796668318352773456146125434800591306183425972178818523461569578633681424726425663485415579786009527247216992030618327117675203941867851515731931773616873535411176775524351164449334847469761111289607645354090304511384640759552227452186030402217120842574917233656847365018898826420091910504324731528032854062830070277565352010849574733895718104900660932876392665871710593943776320404632596375891135651429038699763820819423276966834947710969838280606864198104694873193843926429992209967161260470537219551508911344281712411698462747727425008360061194829248104139089594121545412141317127453813190623327429563246297044602252298822082358391304320677109164974218202450615011849684911220841919862052509180053975115910741940450089884649894358488363681766515046812222958265623178256115954916067322140574024341569133283895707896489097626368478558495437284752113371003960032045210827497422722021213753229089697652279606583562858112047087632977249915722733910607411672261070927827917976798439037514855716210330698532727649931943599527919014166216817594703211987235147454397177811370135969141659044514316187628238674490812189744674285544912931046586423450667226565840594862233963451750877110821562459197105564720317389568941236379534617311711246478141855426127790728886857818854698870955221184633542634659590763198226413449868530346334262211017445873686286195556911898280469748827217761037009565209657114656057713428351006733597194020223089171498877077834107630713556591183836492084698585536810477049956572739488874066627356808689628830471765256571002245738804307404449760767384168105395904904171613601644372566196877064090776507582134085726339932363029581288382668672461959726460303345252439785137338183696657045170787603130610918892194108165208249727139665104534447589893878097912761772299985888929568465116673615204604629841659322655689174039945948547305592972707828668353814607924037647346258745047247670937685125731230657656182152194865317627502963129413666403799209640194599910220294954393301339207191480311602501045369820077142660519432294937600751155168960506038171368665631978718821121980415845728311189817621077519819570647737339823046730739041416421689654714120309564467507990729148549094960113679205583098761032588970186452513704167043733333530141848325010967053128049508673455252953776799532120372651144260263609826082201084592774734411535933613585863609742849476069666685483156330454143700080904500892637723273119648319644133446250357592433678079336070271464296703120331234315410437347999966547129606374697245629869405071793692292921806944047710438641705215963232041930934181601084790804725979087399540591929202133750576061952061071523483617637383136902176015842762168608459467106294958425886112690251312559510107404859710287965902519121480742261581452480632981399049900548927422749313594202645123883510067197123033762099807429144275095934462735058747341066770379718456951149129999824729710776658011884155499469342638018039152718548893817604132581847393803415248341165100755625675988650338715520637230096217013886582465885320951193900774175618298717241628044566303415856491536188332115425278216374333189048923969348368240170467515932187355784188929678561619938031843185017916477977663011096083645734501249512224539626359937734566519295128979954534530441185061144767884533849128718562245772254050659081032490864015918527347149550942552169297361978650260424327995476293121638823241369578155919650692047420172358825747406938145397810757475753902446624442163178725534903205762310341054969826212400379515757602568742190099891371507077691140445820576119599580624550652758456127915298462044861796727376496721728823812194407932826348259419215829842712787449264368294593968814103491924792186838353447966673771640931040678468268171994482935099739356077528077426854236219279246596892836742948697496996869639541109797443031243247950167523458863206307456425391169291854465493633556178791323576775042697673551079936446620930491499742998778916985885709976646977997472084559756296676355116224396743390128790733800299569530315634214140172726869284624975655398437434773673579672402133996556579256449256631550584896221869996317036886848356213928010661465578026769952888400335228888133031592497310834250624932682398813389250282370546236861050378200353603937824437412343507849054661960088561977033975306200659762746668473068146998573842292791325071243249171389423370334421830624106343782526604421543389522293204831594226685541604213797908957069894863993033705851477863987337805578227955657753960017066521824268754190353931504254986662624326500182396769104245031673533353763367827912714742908162075292946776751020431115169308870450485626466059759632762135768226357718594160822192373643274972253337409536344713055966932380625998226163436878808009709883716151060139054412397189401325527255588819574806980343895824009074471507397211533416218061120051735012193558930345601945776441825445698981213230127103258692287678292431920536056317897737316830207779176794910516456007519712460229364748131425076983293604970270937540926181578666006056600348560918604285036746573764693808811804615795002184618501728879631281225395738389340070941678997017190067499008692736032775303572483727809939450522549530202981787714559639540958195501506911004583003156388948204886595275093647809524413762127732925069434309201751124617812103910688354629484488859677464452172367981346224648799065496876003385175345288388223556158239250939520378381111535439605282309217991708974379061275257921052071975294175116156696548648329725616161842266680908556202793068640515179046879427388696006967763023425847572379239022791251528263236828843554663552990164094433510528523488207546037730214180081618183476353700894631641868175917818275331860954770777125122571284398696668197855859519863919925110055863709125004137936659297177544403047959788014840228575316139364029848456678034443635237929103155403386864622853837026024974205637387876658363458030377976976041964887138920427093397119482865096448347264106150598609624912766647636577898525016414893440031859770135696431464840741052599837720860624059032940068291101982635067574998314995288141862018966511404555582911945039166197278530070090566071677944930772679143185261343382905919066311511008452144896592944621431690983254704436242445133513974753029437522897458828304263242516711939877473938057027483638783410420212907681314815470570527259538999493957720741712853056382267236726564133107470002981208000087583983975476200319661587004419782408388322926303076105758610695389641050358180149209302292509033503896071995410300898547450701909012187641991942243513844566771313231677224240464675269610220285510507127063516300351211517248514472110972059328577831307484987574325506531702690446238121933330242676913449033617235348447536880811412339223342275284536606301557989246825433284518862830892884999619943894519806980264978959399674897754212886785977953589147898520708442459622145194127780959025815036328833855796427106015491533483353471775237009873225321766919555155304263100851307539849238503823213094654950720277843298473522246615168782023078460551331145985889239657932625347913899475693860340970446428904038489812794306205627239466862724904280142902531981257742798732523098880142726567630960331750845348430733091434028075115728001545185578730165170358647026769326571937672870145361797880762678201899977015303232281074994166564804419342203885407488019427669957064054243253909687460724115288752920597954359811784643677826262329487721940870008987783995254124832078085551653473707458721372007914283977175483961641035518459328680865400730197193981330921893297594853955486009812991773112094336208110494691812216864174687981114053764263723862169156325754269244895418448533825769492680414916291938545028391911877830070581669383050395440945410857378011149730662589191509784562622190523112224636527299780190169368120813836160378605052296050462136235687487041582004149419095938427553414998425170594645742828834026311359866887848473762512499794400054640981872190650532812133523822027473579700789641630369046775640148546401261328515151590097045984326029012061634360902873950953273320359044355887270288490195554373572276929961667448454554003702149670505936967405246525529182348140756826536125359479906861528265315662711528132200252634459157234416950883265953845917606428867204905917092194366888910648178273429915086315890419432556343221588106222436545623593513968086358047592879434703274428159624214019789474246558859431941346324259543447358167331308141612929146175565929398872136136789204375720217402999117284818250402318370507050486688061261559390700025716178494174365329052856965208520584292196416295783783341972763316990570796656167849563492410661295328044286621024050703919710661360142208973279973183229668276339364237127691357338575566023570151468525687321158990796998705987237824786961725816028217127813879239594762696709308097291133139710555352748683355377448729139070377099108026303619813379494377166490183147538144597938606285939000048799284979306037506381048562121915295046381746160457731606092277602424525808930967841754408821224577863659559922803448278239334377446268891084537494785383078591645593760455402422594939697859597417489744365901616372221636780347668141116364099557803282870773953323466553968507517997655760875310694370502231310104418497309547518323809129837927613001373493374719636281832371716722314298121887419703749611983699591877084634252793172523623206389064245217809037689994056111288677322748290826629905121277428544451347890223024264484143673388339907160094223061469727919228817048235379259886628420202908811685031487037489385226180381819621057525896544616126567443546691662615136369097508434345045459355805837141350478222326622079759447195814073743584379401915584931109878621369872851173980617002066708218643759756858157856270831309983625749188392406245370180249897388687578279102350243091509696495098311667126132879970587319349151205216384124677860828704845964755076055083623692895127998707248230732116329393166702338053700248822415066246058782466237584080415322884858477089587000055088744453573656840080561435585867922368747171649952335552252570861042948868108822856861128764819463890186745746088749158843455039445101822007511883236470964765764682849567939388285002367659885046208482590374022521397823908896523590803066753710408148480595368330085816963041772666122824221002606043582570856226369631493289307449626118631060280768234505505966119713887160378218035804466209382070537507650204515137716440771234078841622293533026741863851025615779840264111696743856632643589381245560167523293409707644822951161555877446141373938614607272529788651811770694904484227778299419641758314407679404719849795210949963708420626768409100060466694985000194917329047711051770894639383574576190504592247098920643128760798073255757487348026336062937434438762202543040214915677094394118278628182072080181141581158371222917458379052755632428317062696306154495107576126163697765523459490034746061966787785666983998471233795214912682734765286838476279297374740748017768126395895710413411056166443726495379850072384512476179940439280380205757018609935285989152417459993471729736408948351756955721327965584127836201893555149221488672365905538052919702859597088415778456896175283590405311005490487339201632344585801551419536767137510074892788701655357996004507728637613316426400206758859775510011146615189017697510568919072613558258611651518127586120198781956074428020319841695666355620993051571282257230569024970441191910780617639288601354351155976694621130219267143262833368488654414711452900063293397276543449440433380681850341800328764063128059330502067165846102639730004346836394712443534148052407343925508779780994040373876218896077065425180600951971144371370786690669017586249176707904983388756262840834174956059095346415939818796430029366465235690966956538195889704709977472752851615289955715683047519028430153849418419897915960100033250655137503452873420255523767731964811480471481542448478960406491479771462414034880059862766269973103009714713167575084149408787469715389804173916243308684203520658731621659200689946082821088057955308479338423462731817009784701580075981373536595546016195859349214470248792438633252923833127819149442279528302726416253506352195805380084888661276509453325585583722263186946351559973901732237871703896907420586791168721538244153799297080604576682895285183753740065443549281907362714994439623549674093099633192164481217653000957294687535906350354339079449652245638079382839388491213640999882114318123959889105785870561050690935304534853998755151618757029033333594017380039331173685197608414786035341647700328463632962936475290096794077631294354839355270821928193785691379226550620718862940108546564073300012572770205272266207143192066675463575197617043288203508295959844805292591390285053372107746003410099954503739571550526508295619349238668681622376862505743584742802262369292446743849209812162506842032015478169773270398722273453426998526830396136407592859364836209989729157171895709239687041281162539012275068103643756274113950638605494274552415964441720617691882857627800873695471995042840003919484668159355112777658663473142602463418791407840565380787274334160147602613527461385046967257718515701157661124145003090098146717294559498116328110032419274294942104129072344316720681598013338818599679438348066621171958447353824094052483642463749096860402877024210435361264877603355410309673205517227038648128150911286215130265821280537535711887625848143120137919861821468512451057701755973153126246031239307208892476888240138314341661275707365523829181767997752506915825667480310420097408551429076140465899387412045993842568676815573829833985436983327652227753173724584499856919954383409215683848856994898336412368244498350306539446648698882866087973138408175660805682456512953220338624729232998816982839968706033363972211608711728875284605728089790140959108217643424381836927131209269018425933470716612503107038576663620068995160906294890080274432213393483815098285115604235403956742580829307835201669624549850295511507374468568631753541054213939939520778425557187856954921377685449694437199042043810327852841859273848891650460165147382363572760774437262781695030465109923863304539202897800899762487353609650401028424835397380906426587175149999169239704686410429583831800645941854285780582823150067454726881083735179445754480021013975595334461550928681072272358890948102013702758751740004954302741819623916104428234379942798180496265814179361180021975495788635806231527406146017013671090664592032270942075289013065931872375513246159594529620180862093473642275616666267974901415615452729781490310382835208558963059735871075677973366833638181083075622781532263565975090630447808934007929390673590494644174854815816226058600305639018031072166210287804648392707057960800871918194460445684828802364997160672739558372323701509654368070584729247075126280519211548144916962822494135738926115253186098756224034310731685421807734010444615003178059107046240850570598049544010660575944227954862587449832129980952175639554992125223288341782665312369797579898606871601188733261969511863581266928340256035738347927092018395544864476211221758524523488823456088764614696321321144599245027551941602786882673464628825581557092954420349897372593854775197763773512752659358414302789159257620003806789068397830281072910850977758085097958771513980599966945010426227564816170693771806493228986333622906419525049762853357715628841158626207437752753789932094752501337187713849350777806664672822993597295368814786033510645053908570990573414634814987332364640335917300466002154231766932191450001848199692483732019184244793287820923881171205002349418121084286911313388110327170883133901375139801693129706132969393581938739422246810586249349534258417940045848359155487793995111565844065510036535748422833077936103476771687489675677033411545358525566441600340887826093593233105682064740360512312813575649564694539886229936784134152956182539446344719011913654197363082947642443689666601066928490524741531933894898582452682252255695347981355441194342957022478776322430597671165835282486451264018882256983861216799398741264347060592559035749518790179898161832714382240511390730922288701458565586178439612159075122425254689914758030996328685530118818411571615420530337124019769278712665906983694395989356724222438659144516297392760512060016281808979042687089986247627314480410410444857203164430811186917010752906586192741860075647051260918963729006262311537510994529451107440983857885307471837057835364095912744166902040355718686997736197939221592453237936179209775614035786629494732658393355606929624275332406695898068246124910772882203846101850381431599655759872793037342686172930544238730964051858783721368385294369561511717773520346819270044774993421120331989479196667704785811340293996138567454222191535213567584764819748179663106241342708205099742426363145314002958540804357053688444679213701888254892047002045517871726576149483055139620240167817075140896175169366514651577933737137824765683299020924448492083887946105051139979656767777379632318418956665191735759882731090746647211722069652827605529061818289805523911929267663123473534841605093371118918201942601600402811706655914477061421547370500727544567552682685432394300977454520484698758211354982208360920564490475129635854005621509457297351179108323818189404447183832449764374468415521816375742089492286943446582548457888246957461321420272407579044893338016856724698133552176796269057419178027377991628462705298455462284020073445557783327893935286187246516323441702145857481486220137490448519345718668175278938638756368277978206437714527568928004830910299951404528800799519544871473043472052058795921978308998591592211880739792896696601903710548356542553886073560193013292969230890054618002765866008407245174735431500140681509247929650645035213134528005408394944111484682749531015188014555975405203154661503202086424464242808759567855145756773486658073607463027667272882005332418828247402010848098651917500454657009567156151476568526103672685336000503379628189205596589048996612891117564068719497691478933926502847954177883718808863486086192240851532841848073136122833683130676613018512708289075733334742113277669880768435146863033571985525627029548238628624085953114230639943395628432350946384899359740966150937893441294752917959005046825107276143777219178230724013929694486263435339971444590804917284316866766209057116996977498821311721896154585872570828757996109092733564032852646322240578642621881172150966026768789177814127011933302256058223770985151466880269158619921728356375243726823047312992601420992646130626762933477484540524634243228541380629980484400753088298751796499947451464591147997025913157615869794023087247796214120304216967692992812620690596372088254646956966947914094046046341420763681537697280375496240074875748415849248706975781188580099794813550225614768228205807789023396497997385803041459048992655262362753756864139676217278119231895259638097569464309508233958121987892742145390959082962325939212191683453038068487921481395514640460407076332853896305792690607711268311891484436774275822149073147937731209069917193342314072748305320249045281054444007674422910610170247511536044945165601628663892026705332790504518082053620973867191948850811580824610897427220421162279259416108775051032680768814431224239406138774221682828053281271149401571707668231909780035891900876368858236027695239786695046037345446682470983089080706772538543232776145814152264936841550946791241545034980070936131001905358605094879588093608909236243396443311798121123212039187601500158198004424650939803260155073551317203892539456184532116846078292799545951533446251019959587098395787684417856705791617566213996517407735843078803141544409249542061330578857740850152362955002654570513100208074469520155991615919801130039123611471733743103879799623054553112434066448183525161354351567470087902081692845050563098428565897280898004460750743263529103319452038529046960469617031114126862176069596978690265859758508266132380743091775525976704463982970735478342114026002260711725703917238231083986221508525239199995804240679414072900474171032269209588120389227031322183541384660480689771417067901856113251277342826017228249401817679348891522834117689957846566161326362821500559435175652718274100190693239833814096462800746689846813485681913885271949921002986308496575560226684118879358729608777852810753023704910605898701781674161869282407204850807959758225991099300595209731693720997343737196659284777896384296887875505060479301552274198462357289848924098725916366091960142473571514235680484701637157864821245665483548821691180734983734431022448212709048288546901691933878412982788448909576049418401946329448442258219752769644759487067566511490581907782819023613936538928319933663640769899814953810502163166469009040770958201200529627127134856367261804957678971426093373259084240803225507947462038794556217105982850651707680536291345297284451926639212858637766702168501446104542462377668698564224795057795520725211113059648193659040627591715814238143698760356744371883562236128533133712102756701225991893705788747446997527396406197396147817999705209595613025782705681902621559514427281784182818066174047607740651895399942056469982246425262615706287152182911381153674973774704363515063365025934775646119072083285397532143814948879680226271698175570582504467033272982192329955256537231268693565676344057774458290807376535071361298490448654019701188774163641834390796086913107608340153426224883251360359614984228804652510664678531033102830846894909796134290730128692569090688850871340630485502414811488428891163973175543379208216974227736279135984960975732643566531185622344113128897574372679719815566968507005233801895771599769486925253309698120398532001261076642262895857974447910592230311025970716091367434384782617470174587175282662201595545286917991484120082834941671710688261017981174985616926417443511243930537136949128977844942036027943491635433003120873016039862592443878563330708412136542356674730306412358267036257349824881889736517774316243388990704585900945753286540449237873573274382383679403996358502881510630850289475469379188055621043038957183255848782505998776710646291228189100087574885653011512123414341614462987735206112497085694283618251334541169335669302819244875123357427340494946180246310151566870810406254425771128396007069083815306600847890581939658978952843301762344721544994224019103904409233839431791691475235310563324299248761409490065486012471720831762493809076341584718268310623660925361803666758546451755256490261883278373798237455497059303855015271958225068671510047131518673256575764648826984843838288023066925418542997563230896069384893512162308810585159417489319287339210431366341985252816533220228468389642065210585514836153184584915724180246706671603104157183626404524206780036431206671707978988192135643899922966826374859743387071174786286194183359586334816314162411583499548519204904389784211635932694452836904324569670560743292278929274463866035693857668552612865578744153965980496407319477258503267408287099458757580519303689622713618058297596260674473789599584265100916357630410892545180938723553292459548304974011522924986846431259295236244394859745422790502460059681367187758935220302494653601969479377372968319518277282074761352125269456715742751499867332602570557671010804793293153444205006184663171121827484891999937818062689205822674312532430835817239887276285918478075052954882456398247357351711833818469159413076902163009080437137277180164527715850807756008629421878300618574367564908868316477369537142784786180805639612582074780987636180040907239130193428615527221755912487776445134123145269927244530949380665717089715567639841491591719589173024972053213598570165346100636244786229154792174703482394704870869160237865399799621085670735598112065708367949622178705295925367061991237345076113206011091032173525012931291526091691972480939235404739685979431489811233480445571366554979632706780924341274917203137099003034059698009738106889417588917350005579233484398335891968589750973443347544452169473514332578395664684036263792743896786149156741044881775270211741339852377302981709782534629461637719771234543697018998090861715908172341500244316887651731079504349928349393619299888255374956489741770960576388599509340778659821111102496376145571006544137640488584586012875521253054546938799995461362017244211053212035702306107971215560088863559209168924366103769450813442007932735971640773812559513596445553480449104610542060877930542390370532847170846534299597933117696569751283036538519431544965317577904188252930414475133247749418057827163068249007742331910594601002370080381338098029685142577636936563411364468731466099607817950784997634079396476605663141642535720598739572581464608268013308330904508006970583244585634540070697168150679564237068835527418419033658327830012039400507538853217767838215565718636371429227035142418721187048123660318496824520953915320522667199762096144228234550727183439593190915085988812182661897056506623652563226703524469191830403977537439793421564231686475980345793743671328869597883604202642326825476284080975385620930670363840867826384631590279067356519434010092471812766019345370304680205911781186550577544543169371937300947972223375787980335173141616903770342858737119605763008550406994231765240847765699144052081244469326160673804074778902679368300404226399526624985009184437277962449971839730814680034297997332998846996491463313254452160237894578806498442572998525305101875352938784260022279642528134192754200675039318704105558615588831295809081768500685992978998416218543094185829253662904482423765271126628052013501799377227010514597713110397333368510234869124022936161025083542695564292854192226692091458939551512646473416383471095844570785546074039487847380647608047186257044686209435311153094874023222978443250450430449924460672339236277222910419699888181471326694466727060802833067554758825773577169169867118811896052924043476322324512260023870110125827157034091773109972091268651913981873704355719507247417858835850512502660003644509216523489075955344840230022139893854625264077596540886474537995631670219738840068676224610263718289256927619355232910559050077378833889449497462044208336084709370051316231459543559105860936926125052935054555428117228371292831085595279656777944571107665832536349066254311319696614245699738909793884467803180336916470474234382870462229918599979040013747572908488796475588019855529429684701137512950190274302851659794647349611469470868903949893237297111725749735666116897601147450008863296028134710126779669092429255199622645838659042411744015011312752127965272214219292914748840472704517599034087997641796025311881148780525842504785651343173465230617839187321550118530080339462363184411260608096617997702898162291256433180039176591940055125097689689377057665472045149538712253316319328045186646353239690090121979021789245530516368569790334084603778280360029062014977024062804708469967176770837160371319780080871950655267690493766429694787092320448903105846956578038195905265327734640207340677698036270786695626016523340862379007667366958396809342149721461124787934466016525203763242473005516052043127096017991552558728740590384273951497991188759997073438319268837293259959422347671723443062361691652582246000690690309498293241130675281792702203907375683199718327567333896176596083269729488928430931735456008571546144908047985556264333309096427386340494703093818408978119148323373413883118725003319785801866437013928123166757191116733042168157567785554093557436392723423643922495336244119114359387061420205626659469420699465279278099536654064220669260139762789630055876323237987652880524497876057508511855158106858496131744811963674860697664751100900125519548171970153251767830658171694034949469641110713668807554057346607858070302974552127001345533427575605951974327703441797889519648016430813543479723379989442064657893098607894856177207590071693462009130657146015014852940925204898677837914067384680229953718380296703181055833918001441725775563142418360164211823128245272696329189720149423228962916783422618885409585568662951456059589779504813791303058868732934264440330954071263081551204096782248291936282204001769495704862197113644951102748044843586120765739889999551705083194106769685318765844955488749074147372153568803256748049531360469500184236462240021021743119191723874450816642552219924889286635335050393087026774735382550284299274470475473355050968043704662069725099125387020174059563142297328196055826578974653889418538029760494316269734667947547580316706841438484337712943477627304032942199262477442963302323361656364893517780190533464567982346645627024926695760214565841714748563235763073577660503559114903071867091953881649630261437837265848635354196031655674483180442901475562453020626657974759232520515525032954663491037562653106003707007277789286758133028572923543043748877029490189190158196253480872398305864592735065353160020217527133648170519941668760753975078103428030474109516473125004367471294877186398039464347806254327005148966084853976254114224135471607139691476628736955233176033323195154848309127043787302931311673942559292926958763637721853200495740159057227496285806384790618759902419684879808054469766863646172682837134426963323807844409464085646375792284903507210881627256857726413837155818417954257991278527308471397241055094777535675806191636833231231347556581352713839695869181596565696057012519082846440420553244478581216186403665843273816080778449865290581670176407640905607929151894699612577455786698023857073705839484698256333661454471087331350187062843079711699297191546691435493768470905727894119198668653970557792668182519677805243695225378790716120484611650006011330488961655555727550214506055360105986913280189268248295565950727552487189190580889428276868944172321595498630251782637502115992107262908421755032555936796522769427278387263160270327252140117407840132680307818233806253926658789606773027374029765742673572806945494337260711213954259339282982268456294242906627906863439064722337975154017007909688029329691882431212673214668866242171794007280294243204682538100435804292688773491535707910272520976651246408346606713577021682758175941615398088939704899956643676650443153859021498006205464165730689306157325581598358943739124830496611226078896442011727226836916259523351342057945453260218778849747424639334697147995126010059249413405997021112809896079071830907819356772872651356753748724568570997068130276254380281307716317875885265584005839400285534435271076144069590583120880141391729098850864553969770279326519463266263114970037130697112124819120620295803945431438618087093068862869773571853422148007132588753902846657776858012155488250629859060701532402100426534841046933661669826774313578332799191509772012423910014760110069916375902279289633006724116272824261087011721458854036906551708517172010750137358649636728727865686973564607539927025906383979271865094008501161167513361938278284857941777579222777806394141077539172486078961718610808800440973536378977344293258129001706420131814042980373382253586253171823845297424899946874893505600068065020858510764757924994086533161660779924022731051749201415907030392782073200303383723551104934375902831821373408275023443584253321262615880559986427795463480300737050173177799907478942855591021968739015566958806366283488373505842956979797735206743427819407237318161359072728327815950135073213125209388521135882669648049788512870964025052058128414168388068607288480807928500132506829343425074910210356856166903571336404435084506753755377691390841989720920650711194819838530111022492130538805562661553736545042665497684880015914249419981971446956382364096001470975257241804595746755325547758790865308728047596383554088175828987516346454909106176483288850354978626623111855662287887566131321262633066713734687929539183139631333856746983992656335682772787333027811472127400875169324294736914589223782912798807401386949516602717767429026213222840734321750730051882987122095856944225948436528728911565068666579516463774797009813397652157100810600455211834057911543852297090071048585615275107703511018522899815397685735906114836105267079693411285608818486807667974759370862164001074487895796009337758943005812888566481385535260674050502416722911442337494299708348817018192231865311767281431491967011491555157895982306263218043893894803905589064801631340549899534211521274065630548300088363920439884895113320008543654560389222721510960181150738409424873509936567284255667363250032979901776218305817723525424102602770585465004659797462875139041938403754484550527211978316380264828419384342975063057376554316299777493897353158155456866702086809143762171687892382447087884231346722799184500153969431853830385157628548108274228025832965408499462722376955865037699599822862661842678900333286991255021264623904090857700505577424831445720814430297046546026006606933307883300796042881996833629746951716079970881201976086249987417951452340194378967744780303551979190560247840220293790618473254098585056159959394453358561932015398558969005386725178696741580158125573704518539246526187122252478146978240533209157273706888342252355229694964626636770057021747664710845489456367824698885598315872281219554136188188082093904248867085077826266721886039123013634267509124694597376630373537800196878904083060108494291782647414087302834084052532663642475362468307690029033563022353478774487053997607603001216169474232314060530343020844912280905449658457064234828114313616855605243733833388477169894130355845964843531448078196891210937584856419378569867313736972184139554781219349864130115351943510935334230637894846677312816809755443859957574707027047845344528464636071450876652058513983251569207848590740965163648644781644307852269774915570675055126234341565126271405767236420911231368079201237326580804407955534071498604707296801419593531752608355007125083955119751021347824991067855543429880143929563362597793465994343054760798312439402997413102210003734132569005403003083781173977106150268400063376474888116061305807164689176766109648548266539542706490433839737461377511175236998507294643270708714648167934035582767550835181565081413575787359395459659560184555484662987113952907900589657307708461638668127392931763329265636803499706048307644497225651950633048775767590342085367077756805308823067685761110720817599104565485215367234714837578478523234980916638326633552484530424039055636602494835789992002700831818665659252785832533002056810406164645704255785789212937428019087949568918838604986758445883795417860080585167987477062757832862250366113410609623448528243666077613196472246340243133827314867580448684755351879505297723971909276395792795274970827798546199252728464479828890364230622785122806238450442715087320000146749103149271240188300488291491578236113546701980264993104387152068187460131773993470458725440818231439754861280428473986551028565677022548172762082855422633769488268084449032055301157774072972348485632655542305913760436918605035939502914111809122667922981686744785698492989887574421701886422465150304000484959301159342600609028824308250418309885371040173858517903002649778982887376314922344475944125452102459805636883078236344466192784854906355073310512111020935347795171437713528836212318094236769769169008993459658716498823339369132957477466742377968472261413986228542224005226510903063036543178992478030280223414429158335895782698444030371338855326221227329254581169136470371752595319905468031980070856242781626726554300361752061629119067325918329418744816956624849937542560583254222405714656252372900241869913581002268934273391027197397716445479704303059905356407023691992893110762969906256070394875724165249276454184562760623757903961796901560003066328909851864045854061340410374755293594093895286970297818221797037858399911746563495558555221897801937248855040069481646576169572064186077556711501998045281294959652138550943160819395478861378378297110422725984621370918506543587849540981377387095814854657473859204127413664293694735079056250834375178137739024880351584886563589161702838385696093760204696290412066901520318545152595021551457750617720917046075596083901968825679139963908417457109179896381246916967257670681799195567191093090416289672494860286197453955942461659398696773280832897791000637586079899212869976592446257820930673553906360839456666560309636890431738467242682794303869613106116775264803949387760310087816433229019736369880163511254583667079527035241125509438963157653866393514505742939839416757531041224603407266490963851535406797036570807408480808520555067478051643672193456674573479848092141019668667479724661037981931903342234050929474944881310794902356212064406695731198567158552711502021622938871969094171165422909820300372418619689398632610786968793939335016883694462211348606769169181197880049056948392686606313332846051451599842260173906613366467574506509293139848369804169153238118738038457704097913703452088303493828240557771453229278346329093964330719022235298626601022885409613602549255829411850310730797372550984661246360585977882385010688309767422826366399373910119932332081051736072404460098159057747450931721235520912012453125935887610520909065926929543022925902940439409850976101281684792297491739005007305716198377908340563103381575609260040844039182716381149083689908612514869649443729490103802139872431460742302700474278904749682592225734523340833806667389767146138674275340622362838035569908965366085708580139157462593021850877661205662504317653761455301194746378721474740971651818962672359718071467632451616091586891634783325626301192909728681877404682420737280087242547757422348776025477008425949790094453752959465090072641632986575345370808077161855527721321129595000374370174971830050716121435819777305925728895676791809377759799502123602900438354879617028888561167158071544045247347300376128004357878768329938112444505892444173781971786739985753975325339884243364616768964740530620295463757639089019117029921389877134836838798148927917172494150813956443981584072809026059878991755488032347881812190786524245939859042731908229554278983607574028936225853041105062963386780451388250625864863621716859549605859437871495364267830444506982530810825263585470447084746926655519987407219637866239635699174980767315756863340613946961243234085228875412626551587830776422955931049539427844567209079188284800434236334824083990848364737749799239930669389890377797256086751099264237962066501102694014565071963919756864542421146348721455061993696756623630912791902119059321549511385567762855629249718096372999479577178255551552545774773405437591188861379135730845727488869187499367049591923619037411266168287899448853050515292447749848121323282174101826432471624871617907249855723588033707146720610255819832205939494220568040427141569784500201133098228336008598937392203836315154469639723566142324406565918592072953213264215577613577168830626667498326682883112413192082484459057550056199690691720654173536895870509566453516828986819429526406313199047089334996502290446133765163048519382640438441048284207847499015649965725155070034861350579082458220794080492705356909452883541817846139989198309965944316708534052256734838482411946855248004507744011350378150370615890911395997750852576099141462309793495189165211747315055352760645275500013940653371618788795401454349791292978686483288570232733936182279222643560824280541581696373797685539291481394420565060621123794001379062726449089764972052432485102858237997770352085602515486834923246578653962832352705952533300043589429951665399580299013312760244752737744313238960332869715949437600896341200344243038898173213297491962855467507078470090948045607721114574183622730887436350662660607881269850650440006508657609169653513997445728947593029627366503683146736381583058213420367557706309764551531925182785867285314151887550233708277518020245997057049052731815719274872811208195154349921039483099697580842655775889551696780434139247546774858077901434152855462689599299374893765817713144100157780005292820257127342044982120116482345194442763023554957504175876233650917514709626343137845962823778699730555047706167729815089762428915596918157781141214697107038195826587664928715527732733849502167894310306493502677987475447664024072824692715590119625788830715033157801291790855315112762953992308456993661629680569723041296434533723734455443004664154662988146031670465897737623371495162800303392199189914723328227440138057336567037170389301856154235945343685478414000702824241800339694373367710442312647610894408917009974463476202547766291028789188921099672242704941755059573542177175168677569531164785398307826274770752326593067871923821022898608554913451959836613272180865836665199375703318488890573132126016019981391711897643178174301626013839243649883938594569360307170628050901924713605229775192616877654518632602252426161217760304201730025890603878991910980223437858406221801304158462245477074453918776704271324191316270380262076247246983539730574394756030261132071692874740100788035012593312608280178163603945236625883051577350577121440573596299241804671683721108942371633388965667005637867019598239844224969862569509808129218550868755488608725018891802389036302906041092789398791822739374740138444188878021170957687161901115064408944677532237377718511055703033365724639801388849666749458478739743624592433742786537609919467295769231737575904514148658430318556891334922795376592225091410437685765755095814859133401955510078995175201050684866888813293889818020784565657423776640737360410490396954983563870076815205018184939384250825585450690330887935921165959268742824781797410113478751532658966039852875699192072864187469873396019725812352682767226983083764089995733016271714583296932702586338794972424693065442660257041984552384001218368929675601505276423204731020163713655385867435837072508794765766811995183964208822077923766394534630920005259890713783084032913091545308742266074422064162872770426571534689103705099938654968314736746156005080617108723540493542683603454520598777318155603763067811201343336701709061650283089397027591692596191244188470813569780295897350471084507258712153848050815789083817097531145854162815662586773001834769901523471947121495026889741270469563821145336236395065783622824501127834544212365999676003555767362818603599615873900089806827779088248613339591643383187636870183199874493832467597625102410841222651261115079829228646603039517899415950648109457958767869967116227192961045780401017684100849085666101905505749975228722599803538439670182037578073161643909290525694950099100155337175600466470024696872867549746049464009828180117237148881293709729311352489838170443718214959509305928536981394324461955247301626961736825167240212654374905838617660589294666447327563315545454025586279565416166143868093857044395285421013043090700273021583256457246147371961033557390951281900497044213700678123291914169122615556277969891568146987650946627256772504823780796859595649800898432019580493935814862850223046892179466386706496018898896219038413828852033211574668448874162031033367241096395275485252062895426008152941075005079938031916239337969453152040889647912537206808608643939696077298077412800257913986435594631793233593973992062632605180471680215001914056617086925738873574028501276593678863239724375489791841362611243086315060090158614758720020969957710544615003536181477750137900427293549688726436054663179694012022753709314060389328594719893745024970546848888477573030346968457978483360557393764700312282060537598439526936208237923642700824415011602475281044986834919748983600639392540935054363287743639950648516359924413459509018118029434432000884422755284374026064807294097080424035026976027310010624679176964180580036333922681723131007981433820467368821491753026144101488422830915138181580734878021137846772101909237575933296751926197057219960839133706649020576240051225525938574609711364971198744523069941695277050011387674225250187264922040527560443837599541509182471983222654583860184161532333651972467739678936933674304010464045877636607104163777826205100877511353634502252449876100544995854225995730442833593463186597532873162577731756441228937272995529546866459233667118730733169954742332017776538767529987601552827022968177990270824397013368566908526004701790720212061640533855642995988287209612510340591947661229248218125398425362528363090389431364324869863061265019256763444088181068067548628242596238510468760665399037298194177189887820213495983316014656492294266621203173642207915884691987693602326199929710341366251615231808019125288627817622618279990442717274606654601973396593718997214058035674968876889460888029072523886384635914722322656118124274690178789663059275593634874652643444402424235601291847849534040535524615556605257369995847045276627453838863789758538472877806870127306190835961003843043624013950256568341101553854857297296669118949130161012759861141379481811165199866514451860617030240252027086137832026940008484813399129908559034035730959446282972942813361125556701411173440970170544687947360725537260971272549107122371411967384341936816619183884985744856514741857456094768373965473503487928320726265702049433151049887649683029271260432616434528728445020104565014131793330345729783254272337594935087957769945911925341693199903804478697423813524921158069687829276700335871606613974859324370220720998726459841574432313396210829851208782923201842592054043462091820614862516514578398353718802303275895473430810786084649783321240683562158036170457330060490629661509677302132578806200508683422947583742670441313378842068735916464051294314141448270465566853591583484334824767436025831069269700758174710349447737783149780705338021502919040175956439406889735541853426949629135181150014472420247349248756317796851721802500246435635357772151746779465748081637149508472155899619345667778454598953616436761658746414643566624997399791340861297102968559390387226023682582792214184558342128267263284425775814753010949841203250875448538673579304535879568736473470266841605482437205963598544282299063134050044875393332789615456489122394298728208864705462694674778525495618722269594517798493625896433130422678591478961859611794987416142615648493140631040787725392898696808783143184089484211514139553885602480054332015082371332535013193653471559447768077357650372041983727010407217601683805458925248238690304447526282939367299367258763377281379377211719166459952565518053728967672949131069158377737319332787351655822566550534972402251338737402704878903564365734466978756252592166103504670312707294339601589793266899992473893174573762316571840513610968734211655096854644353228402312190080791777248317940013581509363934957187058935325155274805863145047309021158196944085036263419949839044307375141776603924573460984310144417169140079009480712422843967290679786636948452755027907679868348048483888057701489987440140654733036881640059703299758804160051375664372335369739424433430624644458506152313309602122478526058544471543280488455880318947466568494802471896056982456763425147862586784428372176221824924524960681185300370412894878691174877388923633612783368134539602995225133360759720483002204409499153987796318498425021656016054063985575083449809125886472171073486225801413462132513546496120869214627262611466104199301495525800090139753461751707317959346995176521323979818263946608271424071264131074564795463128571364592956588685340711044933140806107801626630737334634990112121192654313625555295797698900578878774844907342320605432339158253966289795938848571060559513055246009500322369078314012793644271536932192165814877518447607073240523165591160201987882030512665284748935589886548813292673742452293306692538271617214735427880841708356142653372533211989539762901073405352988122174104292501191359672167890583778932634235928787265463013439812877578746265725318737276776710075934881498986715396818399695755643393592076214646288002413983009569885098978454363176960198406164408037110015492939868534243651206328819638762537729415727291775928837049823479934869582066852281847933535127798943587944747486640386741057612631482519336335508741495747912468269617756500247047129370636147960249861251614858331442239647802539672440441414477698596830335629802644227003683889322197742972082317786759928744537874878862773543944611460671371509877689932215186416708599834262121767451167232488730140179099583493558403985589919412652643368278912658756213110101034337943247345554746204589715382473679184207420067553774945310269392445991975591939332722328309638228166185606773882443582230325219314125357732846875610807680372362780076591319944163208654669956979869046757755832537875875162446337519899522798579169222501470969653848968609310279876641548324487241330322551251902120769662988832743586433237807224444546735618164929725096346780257498192950836503001142085053258805875844027040056815090213218085699780701693262345197446095226428540225319087589434133822977597461103434742525743328569054389004181035604289348034513685904263080815135129937221502448189025550922319633582550704216132750775510780768785049851451166884080945611471777890125163412087645571295082213577536320939059406788012141744670617364514762708206174464655199713657842466929315914106963176165187838791588991660023888855792260582476942917458681628302052691590764760353197052017262597673952881515449691119629418428820654950958881098196074547488063555365608624243594276159061735049637997066156378083514393468076797153547901413515087428363220968798481881460131742835035305552038568622083699236573582209343131670581382029731725886351852745716763519535706728671456629581517719713249127000908966405354269042225990986180204760119524895880268552695336495196268540761234778565197016318580217775001777062094694816474542459753579618147029201039692648849996034517416939272142358999928988684957268499702574964170220936487046979059013899757635435676145375583306383753202568654722616759674477070565200464604058560542048333342190636542409514582714895705645605368247148157411781285588169015900106289833130705347383345846703041228710242594606321869928037517009727548994978351058195219210725774201163083013951153749963607460296740200591626018480333634641727721443734571817518713219821270262406289377354658429658267687459007353124630637218405044963380858087324784727326689577524762860822771515471183902650753887734040217106525572057957389105973220529211656103402967030846685642742635105957249894187144246947060541149729547350033533144168028421673996230244539511631892580847373728546052406876768107039933448671225574444436694876381885765293412791099702954843316716406484700789630088145473356689458609844502191142952141641132506186579272123136772264057640176191555422446940649207894663153126723058218582994020443435697522591888452386377069036272568777388737338069943637748790002840861808887332653840499115634749917137644536999657986727409319574387296181675807467266803109089177280299776467938418747273446001046182888769940858976741220368863852251786653138402899384909533572275837325456448668394471703344521507062450799091260060483000471862031396544726827199150932146355735669982880352260877132344067836055672069526577514315409577481772998071202555573842063879026498943010228475612863559550064921388802868483926233466730069473614262567424029210935653839221283845898236830318667676977837340209208322437792624792655208920051438355950180692757722486029882129140140256094273447118849131707245134050423547715290544785690557082713557078699647237148491881155509603421506631116508685756014467362686532530086233793401009090239477721341402968539900017865625597411780166811053023308909208587742558171005297661061851920013100203182362033261644041649747564014732528744997996231218831625957392809738013107294700716875745823862417377059797335314106075478204066843101658712979564265249704717061801350404888658520424259310526328779138632857524376637623865630451892024830530818107294247022239907565538537404932732201012304886104521545536849729627587233732752434713380910973820087364480813869778546705622276213128903040145357886366579238296314207001849234310081893152790383174590885551502707518544453793379087663878035262822436428199010350766665253488858261326111662984759209800693219667729120720415312420161596207313809131693126690023864830037783997803613955673744572775248099628402472085690962653672138934752151524999158709277298572329559647150628843231426124813813246120480424144842672034177883011467065003243662541268068761731944021436055949590654587258562114182106981745129768280544293254564309757477004534229698796515442579550582853453069187137691309441808035564057943368868015960917597432036818355715425785214159609682309091884845222761396727935126314315360498050779408433571338481596426264827794616589273787704251537952612832909641103757387934300699930677373829062334114133894453083475259276008701418254687265326333353712721372164949095773043067812831182097100699239037123480042701553706891389103933135136907507681887602502832115752894328983145927557774403010231994640890990887467706905730562019394628523914431788105665452610129992233905220779008159338928054031037367192392026538970607473066536206168762777460107036309566134195470499865728707924352100216726148383404912703889514094717677442346158751893895168668634030938436435045012468942030337826057227117321576545892493903579288743066231025707822562108021237393900696061095248233137611013508218346976511336148284302835716955663475883314954606341234849815226736524816139761316590914017598786349614720593335146431590266926862978701241863658519139174378286579268883835170301865048383941258692206018023974317168468103698859239245036158365853915213767426703287287590065536503608596096919768958769519512774620229240057989039012875912612630691963976710366576490145587934749290484459701818464627738521614953720975776539950692347479473066527858754483200977677870253389325311025469096470614225752681933741162464560702690552232734200001640389022130850021969718645578625668424296510466555978553675156119873081543652603462901232705623720958148277310524852075642785270674661900236019247694631707574261822207981693453621970976636420641005411648099291526655505479721075512733736511610676444443611637949929689617037353452364923243370870917776278259731181967862357611575568198142026856873152468433921244098682887255878301595725987880113758518691684187650429931588290617782824618513860611329849946548937372328990947888413903340548081104043452268495516828684159107148415171946891611542411336134398570300738567944333517214546900787180785324149152134740691028577404008073385921673052944177310745414759761509129418182684846253265380416525064944782944142983087390343451526897923491346539550354373912979322315393528551603578099154546738872378224214702039748501676699822497341489369663959129628397675664531967814058976059190236662583239721907889178032991805825140471929599786249835217782721520048745103967687380180482937967849671686104150659253796090908407261279488407935415393488807010426180483388819807252588384441782664093508158367362777780464097284541010137042339657825479272418450360669784190754656205627828804544166473189062382675179410686472521355869612907032948558594079808626500246397362558155351954921602675657695593961048418615555214161885857158060539261588924658183946231516131927068027229476614185561674491314754048413379333873995121417587099502915548875554122716869314698657554510860453251897933692570121299611154297902569035954106025220997695947053679852315949202931659044269649635705346743868157863145549103930430722700462616962329818472715761727429946048489120682623641047287320876808750224416337443708665541672045632355229872941165042540064745262677616696355849775592992862819493673169963904339789828729828000911761524517790413344725476503513755300248554597848785007833924114918290833884658274163603898989948272888716321280443494129715809665114594743067171050621583061291279134062107085058574854004435379465806716820071024294980957670874851473930236619886205843581622905619921034946198153785187691654166569515376933946056411506380324451801021176860421482610394413401555854481585671545372318267494295520876978788124373637391991844843324792496041726897769919376026500035766003528693995425159330604019494656412771814303007881393763676931996788686817550656478597111497472409925256934927928775383794462657763887693348503481566274185741946044863199618024940305125334762377970128837748750732249630084903969139247589526486764487589090919242497335258547772966198592758823411998145357120389108385752793307733178117730387160532607716556018918283886576502794664356608870344173240652483583152468580513826412126021363622953343503552230602928993121776340609286407502074293944368469366180716701397732029238076179351173956040500780291545086168798737414352899454023809097607814501823777062074089303473483560078647808790094325486751290885816426786427459055498262521102682559237678779863580683068446825939256770810209253559231130813289788260403802900801618863177010627214307274998321293920708945222611506887746761987358271792126559753899826728047207827776115096841961851965158551464492488514920065769065547738277470706856954129208864768688434300907760308258862982494283669387471126253073402270086997489920508832222493000940437621289520050016710110050606484039549900095355009787299992298997628077060152497635028484125567545180540686598317325538316983476351131810553446947517956189188591115622369615946882783235589173146897714031973332444122114055061497153137010059655039590405842856679221750821830404513620865544513389134089311286865808329009129097022549072854294250388708995095992557665994185474771459962143737767391649177456914296884652696020839117814552221764041718096882571408937420966797192515824325749435582808117985502381856238984892077805874251529306394966221229332744995886257340975409166417402130607015840237271334670739991133692043180748794042682412196929865507342067850311422693308594872878627236525238673401107956663665479397256554103683987354832951908199525977257381278669585360959741774245764125201691965715868448276181162757976421672041774568885013405958275688011394532692071742155378381961863146540200392579911910980832407797799285567237088968429320134159496196363011890690024996132924082488423080184751483567495224627788260322429595684482804970631946062658735436407895236573262272241905367843214396325818824845248606256667995218590176695238883193159058426900043559995738890802130740439207927193114810059551674125352080869786144935844974486234544053901714655341250171185621737783954423024464452178408424412742746815729077649769130056292528050955030531904359117693110352167967968994991380048183699552404824307852602443051963951935311864838234067798664801810760572525279407674399378536650583749715570863735831286328851830036042695891784827636127068497825665058768478584539610481128553203734805360093372442498235212010142310548333265378894478578346909902639815906794377540360606220862256774338067377281403069812040264914383993244531601196485543124590504697386535437929301564674729145691516561968907734484088407433914258529631250248501547143229046728886011423328017443336344074757786340650108236886840428504740201916433312861469554830093118856927699625173563880696378041074309165840073291673780758134528537724225753777706633120881530806133441376102539439116963558611909109575044412137745763228663460371129731376262201834949742052577021853802913498583372707564417930598127481488166581725565145522815927985277467226891987082262985666638085116141005785111463448709412809263363756115651939982071419876825362568055193712794651445783022646983985444843900632318084682441461061157870968485473944722079283741014767941553028530304140199573399954978540267614922917651059898950001756194326812767614985791314954649461490752966279105454318543366478679416618093213164982682012141382365041117591718499569196526408113948057037414186234635350828710452468681877148593753934138863673387121073764505004595177642288295159326427206028346883348663700221664487910532657798127213740591274207264788838257498636331150244982328104743042043198360553701453375080669721874726581910080751814185773362913914037326984007489986248441061603428773003793643095003317539577264519359146709198604154603929530798161688341001405719515061959736744045246410366331008251378264367067739658335441021386254302281606387583116437610766736347742667289235669681370806447197226046930372835402426852643865182598544983093028763301453211627524492303993339601387860974396510328714105512934382556567965675114168362894585030741119463508334261700815075171681541751689113473028650154665570932132358174537900221311518443756722895179564759733295825885040499708262533025208215611451151743185451032017236156557184642820647825917318953406629411175833892356897750350306271946176628578932680650899675118706907573852914968129608560740362879028274757583179861812463731209647882551779256939166724121806238355442097461471268787218347909209346980191633912971180698185293928975312164279895717794184209862829538364657750172922548047383066719723452363221992808640493066370174757357452010040832656365634644511876313190157585237589942632986532277440857154581028901348701288185897336012535715442340414856462715644081249402816840395775428456033881719150248567618232283026426409867942412656558868949289239052926832627869612264054430769749234023795962757647421190856918205008873910260486024945494852221648038919789707330261126097512401776177295159358474166999363564246843369381138903019958163920762091361187828823374671817233603177154229122718027601866238664930398934944624970707901821345604478170525025906949730121378190511957954172323478203579245975841151858231129683816001011233027064683315760590375691282668440700795245747537507956173010636528945636496012952655834310336011268297711133277619584822081346741584972671496607414666412526176085746461181542549806199624317263594276630313775894053005434152401286634202749889112317781804768279793857913510091824103682487994843974346055380276829232937140910167539439115229632348108309340215758941631858837356923470536340204618537431438910818866986701234110676719241654599254546506326370120075869600566136019145887361022243371837452905937272988858450860214914446962282223494451470691781345516790201547821012713547636189610315815173731810772799402103649934564981507369512616773755749351135875372384410104225070618762443513237830016841707159440081939144160783629711744593474668777529435068424290809949562966602789117741709733273567784025734509271942079335359215324119877576161658410829484403822498941126207789766731792237070825120523363109335920918465650982942876579686294790470976438638260628553161386278324745455894372751835236810521381196172392958470482020379307794291722689076471492887414413656153320901162962610151762934768752878690897481000648092009923827623917947856559196504768456742585865201324149576285249523881745467777988003318278366903901504725077070707995659287243292457533838815224819195087940392881356381311332816831486759018368741550282101983211646595097407230640070868082489527050812122371470235834925564480143168568994308753972958727083646859025328068170700710307563130685353475433508426479948507525025667256547273566099246182623659263507036626248412880194302010680168194622580803375041170455365144765014548759349647510037584781843819941943816348576131699155204793528909376379402132140520238001005279653467428756159931089994474469545994172888369501716050869596242829352334448097716536879940103085365471816962164982218596887181157269282378111997606962596835732880274642979079497201194176577501995114259596056243808862844816129163054097042358132785697550490020292274267000074831527596851582094493964315052690702738041848914309420536124515218118639645827635867672194313511786063035770992801623591624193737393921085305348481643949703625750424724370227531419799900698521047773151443347281337975558717192928202732932339534475659573095229207465817869427346940797410521986939254774783557048282809065518368354135318233771470097036502346362622916719409894844780648335387088520486338453304699266536619484705373723581780693562787763370859074629969893046223571534076856653730971645416024894804995421378565859461090231115538200763337766531073211022420122730236380693767170831591953572449704646694088253517700751359334218340127419285408068167790661285827630556368362950237970317141581791476375682095853458775714404384876136261787738116725303663380795257546286388995565285143043724193447206003220257990552934170566942019977108925874629967866473306017488836344221045148146684062946879920534676928872623245516970435723899594061429555066677934969277869689402246348770168373375627872173347324673673209491700647612526338576905009678582375923979496900728632653444255420238950261533375876327071911734826563239553818503402694401534677852510608072553729861441190595548402221651357319149135157286158039160759392556003144571705704166056220336695083046290528439719954015290446728304039727996921441689676506289019655942157505503585082101872796829525315294383152528939505136583240078637973291331189444864276205073437242391902746332893913143433513690225385258035626930517579655380048911516954944466303392273489477553999244606251843436656865490666037691892635206006983886375313812332214674181408809577730886708688667442372202185198962786239601940117233001308890700801946348653850441706249431891009334744755829265242149664073447774586089850919031196765010530762816959150160371267651485332323110834306458309110854234683302462200998353194648696479524738469914039811414242762432238333163417600062734557505281717465770712998720693714558855838341953096128409971106991163338552707054268656238488728914201338958299713805852377422860606073478189720158453373632635710372621062722724160925112145723181997164759323077068931215982728817020610274998463806793974576539933441882160291322186222345039619609915399635378915538811912702838206929260118264626350919814670743302109429686426958028173353939927124253924186477806156672053648625702929129101550457832153931903941888046137848838393412547281138407512125013232665585270155793694513869284339806699507885536207882253318161075861501488153754592598912292423416799229044733675121235792020967083703767943532158687717185140748254615778495604658271859273137455325527834496247640161660275814193572619204418202321035010837297613551259998047702663692298565308610532992082908480585995644312573949420940647531383710413879256673121278474259160746138300549799279760403881383148792575310903849714514276208550616704099469520486996177580700787301373067942850202641734125563296346405449134483890858049229956426423824373968564199930390022986946837757585824556663268252733323820614193586990146194465084907390809254670613241050131434020285903694259172764837730648268546762523885316528485620183601674528549068686802971222732657641381397262415224722626256804332404793050790513003667771158357491629574998211095888666927702509868407597418513036600183553636831661285437168089348053848489860455276227357278883346509246753985239512389854330110916376198848468479120686774088553780893208498262337344900559526500668279811973664164549290184073185162080264750559436981005376225860342763252133285174269299307021766823608960785147732192285260986102386920809187964031799815365394594554669331556083110480290235298840091438093573141185656657668099214493627951985915273958530941093958318750574485399608154112685418494982620557758114388499016859728632357696066387473032351204914217090098329143832644771833787091001683479376304375977812882758011689639422247470158793296132985439610882653325678337735042864494044463809643840370481756615140556469078652121800544734812390612002421865167385804667169213747101718433096799034392375659968683679957405755150581774184690036043922743585151626319681313580911960153331259150957799200841700002885368309065743818816673164687404678077068969195620565816866735200026172725494493787521230875893753125611987954528929552108846680546484380445683714220034577845433236346487599540226204689877829090249761541249727644201611197218095373391817629888376342336757657389400187702458452811663809705643636454718985947806504826539347228814388717558516710174893405874396695804337407298390474483590249080947011492992952702280112784809793351573284736342611084282055995825481839050309645458387521523973236783555831489311272997070019483500290854594828270469415045784167366496949591802138113265596926849743960974217944047825075625439007246841651437210779673709541250966367952603011587338491140648114294158609791183327799270373066091878571139124273492273612967679642740236037295745703574010610287317006422245277194585865529624673567403317974171085045312984523415117505173869328333222283168575326311645001448132134482183511208993783976657837873676143849359849337302083936084531262912307517254981622143855474181098907325689664815843899950040086702441075795035669685434967772126758178727904746172588361862041903788234837003718212733262041421914043422751898356536255814948361392818369827547616242133203908257798307056622675480307040357263566525248676285920699422983545909444785105954396576378383705878120108059891173631094960590116896708373653225418017350808659489415617436254772302626154212711794562797892657683840221170644494745847454403051587433120491378590922834347320947806401263022544315599148085197040025889963214624613643292924981310270160207078208751126247102380795845659692578171574942935452400343920172605674802088435147887147212312697020331875844735211010209469354921609818206333434709167479644938353935965045728160739437608725956865375504465876854876801388714570150134655222694152807204034425557560749204524316162921309523673529743509906810639798441124782562834506380037021836812854610277720885644834482433215656923340703157550514735285623618262582902467882938463414295983869750048393367911737743029044243902520316582605749320019548736807861693492965277633245202675187189291138774583663182070932279591346589971275096102556362838357911590029487170579955735286779337658146960057555232240930641080266034670555292684866808558373350788553734846064994288667883338335826513510868921854001804656197383254011878517320222631342588646876909427805649559309829607374149236680924261260137612915132681771104748279066563807327954119725035653292284844610653014192719902960002266039579847207563463374048321457671460574235174836461948669605130633067846664692319656604935218783550671359419772882091920351605594033892141454972586190096120906820977707761454337609377647170012852746517833976100213390559264542377567010968590576022976944106993439949035018172244533923303080608001839530580885543290156345904330739608921286311352965928185930383794228168417124238136695281461138594077780459472404389387309550965816179322025075734888246076202662989988295670559951820198789869077733394363894163576082154280035153212789096365148697964730806661040618384116923500264918885465705316580407851262209131690747113128447123016512745821203790318654288104742533554853277380854564599469046958993849522359665438708333367960146052702286155002971372343187091468587839861922118485926484634818569156120591969015367874568538200123250900348333937154029717161637995238784768354865190584616472360319933900353361597319523523633341401266528882951425099572962187381943016494653795339946944147887934484009677405574560824182931338241310566459230427521400963943286257144168254051210854738594250488172279755786299613663059070242162961921371923522087486520640255505023156684792185792086097334181140681844844199117966257313958491901076260803612315267092869955122198209785598890978898744773590901303100244871837084884836349218276998209647841679565665279572510071112289116062943658354625341102000912841553813329441119123028106428512784356461267737157982252690790525649710304425899032564064271170994734901175866469510669675653034062865038142747344883146356892119379766500981243336944515130649084487344635134453815941753729824979852889821102134012415436074604907099015959752248533018439424365334417423805565838282090039444442083878124052627614933432314486161084273820968985902099702856554833388893534791828747125738253638048974758430727350642602159636422379268774874698178037315647400010323432699114365989781781454446814523236664173895215592148973810725895042616610112666201385932338508622033108396077656458224894740566581380642409352405868228404625623550645282612669895084605910815122509435190719622152834727556537148487951496969784240690386330253176861724129821850973569653053398632635514188806522900978315168302528988293974641280426555009342754123296748082411412295518497181811213676595594057573960953975096635412802174394598291032717349278506815269622132163700000822729003424252098210288248135556340318023907053674524119714776425179643562397233419907652575761731613336185044056969154513097274324660122377620464961599796947656147293574108346552336411266355125222156516570197178460568726182632154242853600293436635077853976797741545896707296094873705655696604015734521570338025013130176128184075802981397699188998365393322262878856119062717225915955034336007491596323967369912098930744488593944266710969689905168259558518238412831759175795015946365014754947087909549921630798080589437689065504860730571830753564369128902603107890517228159177650619604629011236855466473898158706569965142314346181188629113862080234841603930392558167032032294937007340674880254850783111521362610680860037080176689073560565682577173590270011952306100505581002725940513925768034390444498290614594657268261167037518835727328522961588148584794407881891703895768209696453631692683893754091437238343053902731568641850444449405218842230527124225137813807615353451124130738225263798507702930012464481870954248082844970647294859757966103524856861538237304767081831358651281203030954640175248098678066848423134847207214746895393997310379633581049250977465983774116886250027596796126955242585615882813228225442389981347753319080653292312839762703820439107459202662831653705688185403734616694632360113626763818283925741995785699579160372597739005686480224653172502461293852798394011561801656466200836729331059339954693486354968993027845598610577335702748700525872775775371619925710524435414197869924923347027610803781277510511634246360221913879596871357199716794660088705986539635256742780204659361974457323054014867981382316611310963494794598561777698586966004273430313668945365189946433121413476488587766824234244017132821259329084122692851545053600432989852089934803775362519166042269286923794064491694208888221544605890122575227051432549219962382430370215686660759239810936600894696084918461735375673737457257696832226924085157377110651488143623947799282235819958031787461992458472912523957041442792879093140308416535751834142305377394631094904234607493047608728352331906853891529318472272961821213251328466050509564173411100877515996904907240120720737949225956985645004528213433601203029615787442043727325671173654899452175580424090984869218484152971516738443992824606706065287440442232904986112157699806847077146349947730816960650983545261192832191687743251148657176817853331623889985151163041642103681826015135383467274916190843821726516603909027538622665508266735962022086427912131045767569459424138713289071589392593674534291780705978371090928972657694063029349732858210708821105068208178482839766523464365057524145025391648203184389372395985466797209255313269450519661297775636823297788848982920852252728163544571515979637295406537044381078163134471617792543605187231811557573747179296342753557449999431599465114375732794141370582376501967762954529083125847342046015141693474704277706371739272629119915102297059557429654955864908608736590383566743178635946237851508561893321327516683723361200864962854778112497310147503250455324894846270613848377147745753960061563260221918976749926826634611020701361380802847962026611670152605511827436564846110783367320748051854149031659775870257652100369993385602040543159274625389234239592751990692998214339080913081686318096382626126085375132165758504647522089316694471343206006121798915987274417404168623571707857477475063117444764804391067454095037656139951104808802171504590893003228395802227484904124488610808930000609917533417583701460982959658185850054167123508209857354972652442112360718886212782858845203759805443774922114989223892675014735620353954491010441740698240053389034507638823776726583159794464056676679351232291160084439083884090880298050682632945877732499926662120322030447857255108887245742087119640221567932027022838949927262893684692722899565953358941864426535684010653692157160365350648945010886190293842830326562377219295648306235438404135076082780365432526671015908450181057227099866657258819517928972382481438955479058013402636814777493099951594383877867661647483529979949953030237177561187610658912228200441286009765300174956312388342987163365113119305602887786314669241155702128037650148621960929622117502698366895686859030487236440513103933315162137541364111057146624893799646899711084688636423671692544649958761509523183368573901554864019846804206681188059652859822701349917618471013196308564057272037344896975952461714636533981614908811150294716107924262547991744384313874697840362206023448399101109483004132520107533653159537838092514049336416744722421538933758683851488542114651184526163477597489721377793779830594964113647251906265251740625640229402687543586642298170347588161127998087785802233175852404170030506115417804385572102030762476668704771605604652876638688615827188239643558363035563964377528387678466579107953285301709443281015020457233774578669418103742874973660161571148588327092322503728533650614703970056485117642323153062553829379904943467589420287043171219783488250408974914746395649094242172274227196513201604359313037997109429676562861606393817050206871583720507193795890566429606782299628154791246123257633025935082828266863208794617270653977901516349447456716628430328217396482019083871421884382825032449166216772967821578995478238804148936609166162936867503975279453370611158195225930885948928353969319708750094796760149280683037075681589196626252267997315279367445888303013437667562921835760663561374616196414640952096221752760149856250056948731460072959336964477212013850611056650788174305581418134022595216974569809455666412695510913356358866689981746559832652055615957016948954486866006973740849990697151388722055852926752604398550632256403567105964026149211497477839669095616494733370232619335693977700722352681038417725150234888315155523543268944785613498846858382677872930663710494704005994559435286875899438398885143259104170830079915905172404269234710654106950397944457770089479835960276065541856590490002199855080916197306432521502836142818480860936900198434432054271498622794621025053171548173835146820927529925763774301327336235350896304235577864107776792208218517405752040600236691877536847615803254787552715219861163858674515071153355466828860110877142503657810164067897401803915122634495864846906649680752262072717844086474786400397858165995391142801897332680052893353488415616443857614494900002235777344047036192167261866021740752660794387830737225141121226754994700810087254817697629422539784256051831040724509723824848271160937379637370966302905964851198330019296894831335799675259007151294882611953021287676657546837145817552670230191482140449168059849831516287686497588494710714907137501474276164646506295055739659338847495426135104272419498812218779936912817018455769449208693357343211204270565516757334148752603438921867444266386349771715433469213414891196321294618465466935708537925572874702113223583777688121206703333945038481605497589525552450802010408942120558469750813640113559302455391409696330069742699142673774303077856895130176901163174700309815101222128369987360908556760842350865128461128760344705570563154011094846774494752933676434905781106684841384066717829775117476684101012105947554280409534017306848706616625599186893325993076959995023602403503091982786546084396230499880841353104761911665908776027298066964280932968009072992393552921485690449293708040248326830510523948405606778285145352866014622995381443944526971207954343492339267055534162013902875437074326415823044704838201637289708719496984874912897096784648160047923382013153223419390216408122892196583146021613765935250960082569392535777824321052589227847594529465544775734350792789120018428955297954248514796097913961929829835037633728665631942170337581008371703664485749393542608616487487937702220915561810852862022059788533933032992658419768701879120357698305997429216568093730156569469444751573106051619167909536671071092702192788111492668199610230490324841471329444327096281897530225574717328943200727903633799229015113636549879559024722016480767677053227970038017419772650979788187208468742512023863132294787025159408738069930468077856514810117076477481975433808597020697415697461031103934528847093269662176435341871829395145443096451076369342042769125047841080825853017007554849353154961473633193704551661210457407003347634706772086340641221328173836322450363790041965418258373171706228838490355599029049098671054574497593336644982798459728359506445184744313189972743026824170638940565831925721086251210854732806991245947170638764604841468370676395357258643902885766097385457960715979039522170325762004751527792073553937757869734926187440939781613503056631526880552249167024855828296702636667622667336560935946050777246908178884191096569914189018913789321603256239614224916816299294593158584694440684168842890276595269962873155919408382465240314493873290631773766907610495580827299411911196903886479609929613511466880466272566490514664369859540518119197651360539378515814316547439306173309799987257863335998287132003999952199697673678136087335310991381549439508516477844089819339912798075798010470703608760083169505919782063893308845196068291387353488314990923287820594322935569600089206237077727852122005483827525479811466109400158516484290858665341866704474259736948891298322282645314793134429182873938830059948619434585539504808927059793899218697701477770243437490245336308635279442817104507351235366833113383335781883410455997133894134113737165618635985086889025540950889106671700869292280845994321055038399585947983039408081346941933015410781953943224946688448400617970449730111978254098895413303968700095639543209686240086915773508814882348868303711143002935080207801731597269322783702497361419673201153691955717714350910560117355492396600471970478790884908553378441708771734648365465397331952646859119161947963179013884783441505842577484967319014246009867690790052938039547783567345424390594056216810193065899059073107180436509653927805631601264204104953670970659632599620218532491772708661487539587222921824125806075288113896768563091149426591070339748108352753859508783062922550000338660898950677011095923264479084742532064133172091922413895641912058986401575529056411514665793367212540860265800532132135547573652114589445793162703129936567090732709271400675310246420937407132920651043157386597150736591076910372241390003485366037970699154248416344885055041371137331368232600339200579894594123712310125083945189717257503163510910751410105564258917316708804294571466979507495903244811814623567233363760490929811459844976039252982378711356390297472988015814838335618850073242392943215800396292763500145886381767217579459354190798261563947578611021061490099639320401565374029041384903069554924039652038546062907612913883087597633841346095028188249607586256359761571100559963447478890900836539627279960707245068564908284575203830514339246607517207739499395373807703388152980948523526203616200657020899768896280602098337435182250776945315570726687684376489458910351083829008349523930312857264765918549669715118689257178249780890582825361059517363693913604945149155138126691493388111872321844220099169437304191188345504673414299902496950422135271812518518465503972998421565878507457677440331950540383383301377186328211046385786801846856409753572940953969596321266176271487094941409894825217720659184072471098236089907684634344679428640124369430880719285148572320788248391400731597852020193506048166983885297971872278768113875093387974326191206223297793797955400414913123464904487211302400466785643017044312162076142740440132773721238934637470900351752766451162010154928375279904905814648194271322301356084370959280828082075509830987389154258368446102264697516790681680636678834637403727609394596672849545979064430649673357982297905992100177251642007672175553828722812626389055774308556196844972238068474713785270993811628487532177582264776854561443266154244351162077838054968753626912945720847804108690920813377237637481494718178075285936584758663648371418256085936371535704012428713955437887050464475285522796825829508779737760962164709061799137605042690382950721936872838995563121999009009496664418474695680109726309438093012915538073588897970438614486366221019463222498911668885693728365688766683478928436177782264963619066765369886694509708460806417376363603605783419024656520651409310664594745402717968078789066694144668562209011446015417272046092421072416896525239858277750950164809106999871756459905548237402734889962873251327209915607797347945220383134820058691513393147899103558052017795507599980532191965071688405607629201868795245529017321111719932476277479437821250311383308486486066942400046236758686948621847995229648227921503108859882744489101734507573074058739893262120506441570115075198192420496333137949603814471668626290157727911803267797897408542788078367963121973893626700448838011231792828472199136386245496645537502089634003071502225771635616555002549580549552973970997476035143118219042138014355021912810437830530556136469071887500730877381139049770208455047819228220436235520123040112087878249566716032101178352810967649196488424226429742803587147599029399533556913401432138794955271895257275431786159586824489228693545739686845619105188245772669111530702759799428877230755816082400148264444816359706940585222536505932817895642586698958385718291216549816945765468078404554551947623563191522159712216496539696573749019562609450803225397311615708199904738173854688434798239086962641294989396622302793250645936978889689875344469444498276774716976629571440573123611291671876060638775197536525702643051483030469418307719591179351041090632824964044346838434183517971617493202129831906466036325403461991467978010860676156733186512788267574986962152127071548926922698286626039289229723972664600418654302943814724772658367045838271301762053314834050706475032946853328870495166074888570883833936161719842113910307619102061457328688881494270210721209154850922012635032764185984546927936572577335577255547789740292121796277830326002511050935057179682690415573564178079231886555347158348311430711722685604874499343891424124349983221710544266029532499787939914488674556729281332349822066640736636451835517576165384419577738137236043145396417191621328316385113057397344536588501171726027301449014573490930030150704148757508222220280038566012026323281352724547550845735193414735136387512254893285275983653104726652572209970727304916083496559063304848892474970454114630868648979410046455468084481357093633990782275479334359440169049571856573999476587014802508277302546617199806792055064604692794958544216953818920864915218167865804116998668943878524476046770716619531162733091283686122244432300552093137446086372098063120912326232760025175915981996427989806800786649502986469965878851517778967167876126532741398009706917365177815682489143579915195859560020602212187045994416579383796380002629257584508293717696801521778744010734013364545858078740876250551984562423102095197309066128180952167067433324701272796770834060941839277817384013773819274612098202153336771733584975825063627903230326914309461747119784467523545682414618054032743436560333941953229719108525278600757767388209400544097878773255105245258638909182530324847143338039221857143455133149917768146198300987067834894886309689986455994026380429596721127702249054830838140435111827722859384161309219646093108476860263510119077947076279114982205392886000625063967942471373071582948667073727357795630767091248405401713681818335988494197572444645009376469550524361250353374056048473610676323084733078685230310031605798168227008617671653962641127553827443084273093331313827038813195720644608934047608042874774067390720810583235244321252095653171868167673709726408031824711295241220770886094071538151188738677710643931475071325511926045077294570123615208363687906528813014726572143242375397815014032107264111058861820992466010053192589186976506334396599424973886955199956576511439515868094380949759115561367223854620277531185983862260233736458432587339879808797633445715780770714661517470904018976182693198056429880653909840830316756881024346661556463760328893831787957211329002581887968156275672044517834630353990464178956076809496678043353263466347075400483237009972364314405473267695283964593486660184260903576512809769132802618166362062882560241758207592634411625440308091139966120215290086901013608519223176348945575261239560801103908978110956716611274500105686041013379930986433461785121339997296241996895490408901236938726537026410670663179694128777126920491783770368922327784839878771399467091329072826362998065127276084032663821376449666435172484342124693465779146972873412795573171861129474696442395925061225830046982912187555172095230500504270460935685301491427676291482749664264969277143077879616938572739687266831142936939877614477924414408305514235616309544813994369267923552810838432439004102763292190805795141280722212695496155061304636163560368777601384536768446287144097478858953506452113154256336821358206263882871048030409173165761407996285703789430153349669496014433359690446065525601613187946458712558651744620828463627869756809557797433686559201973609452658689867690268693860188622719401062296488803996327539492089318437591511836421274765975755155131382601535826991056127191701431064855270609662147340360114805685592060833509923379601096233319263983449968630797810885789656459375591438540675781526722479132977116747511929933418340987573330416104718086094336315671546301444497382286548078996802993976425848006727804929395446461584995703411896420691395641816095726098922925787719782605135978080849265040305775231973834706670188451289321833739798672025453606970635324070559107065185678094227551998278585956574763866126409244348989064630440345097763945945356061879901845087947217353500737311415764666155320759974909115085854764468765464336063679366015330807890413712070977373931993490817586290459865699915589825206224723210828845799900191879339441282701409179008282634499695305501849487267345809949370217364414346753273787905837790312571637033118202439702290235037139704843801583790248001949851838992857139566409014860504279635325262939563942533055103623270632184327596041745064398673811415271898071028752867995147790920107718544154721234893860781865247555768902494918648607911967765334370270955317523483476451779743289477781841179066772749207372543310396218361525113611917725547371388068287116623326075268479723877628004964627863694737636752461933596019518067644261919346728140675972587314752955566016641922219870602149044532959625530029615834677650518400290066289424954873050804222971488121297572375979177500636914056798202410501911753879338847604056675611987884821545806943200153208756118108082541895813398112890413031289814617040496612532000166895244256463795594493658194784224615917988668505155505153289168780070867996729061870501991245839752288263801562697533491311050603891299741860929080655812811945297209680182281208345195466957262576601086214927983882166997374667764143183036476880896394061149970702825471112840775076684232626350399898366561651674972975858525008691383237125765680465302420857243814161324374706805642511288874892169234692126901485691000230631314061223404303494645022484346009008679768581848615327077857401187472160994956652733101817199278406750804974319497779426359511693200497648780504294223799587570906089090925548899422048855029712225217365796780392566790772627904953198527333240253835159522982341470149992651336562622931865752598801770549614939010877908930078698234343142233863520601360969661359242847671420235837299426626123757431380417918070078580484577605363580060497463150236925493623118059436151688693459297096992399493465887880091280028642570299606781109196203701295995482586685486090600967639216051781869944405591308687644298315121816538679724150191222074549425342972531815214466532793170344027910508193455608088651806672925567861930901840720421231776292280926514535440352145863475248256865032394185963320857219964196754252702835118421557274552712018098633131680257359611453006923925519143596181884523328682668939006596100914750271277296432913565345392271396875357593528056718736367122609752485309581163460287467561914122681099279303722732235874844456987649976716194082688880113553506962490228100955428754395431868143749522180195929302996313491829696273771301471366371779858778021209099975229804537764026806898485157080119371551909319762626239647715268542695714211104525833302922171974710767116592666072251076746290795330362486110500416357497649234380486267452053238676365886293079640069890685879746582677194886243862878674241675299960784911950174904175508251080956225574883774704078787768276963930287517973503314328112474211715715342164256266549294788759831249453389617831634445624866323095525123904262035603936163276259532554448805050738805332322266348457234709630404352817972833690213913298496854638618358918759618082835806727226175643432173180104842424927444109240971679941776832023138192244422826635285252198084649098931840605670198979414718827523736609782342567831523158819575850696544014984544888941588780887248214265760322270897592116797872711274228415336080364773853620123103574224919379853226623636883800286185462890226434386388893672278070489286259822777106669951678824794695781533355701267220041862632411128898316950453165177502808621103662226798283285999054776209810344538167472393378054915236504947958991770729716692275263731069144663557929420150146296769028976951376523595636772477933355655542692460900474086953781790921768036053677451858243609410908583490167127822540536346319795460450338452089553135738595676678402875908169244210243614063020228581694969514730265695024209114004030310895345854144169960669605917160730444036176508862826433361447809121112850702779271949203958736047992534859830594554962563922974417783231001688859414480761458826316936246429114845638442409403284065263408205190784584768848234429990829558047076818001048316048948745648544446897260732376794360883621800413400791115575349098444053977708644217517413886381577477849549664265281149249542374367498079551702376814074625255854076625693163813888313057150987913142450399504500681609460580813246261351195784082884175265526929815623083083232100851008747191627666577997126309592277158464223480437897010829546380456965380261917860321701722882952800675189175384303890454292151293386310940464301394788465827024283629051690387704957040455970983593253346817019332704733101406484848163922248933907778915145548881652978213114935743861201393995957830932699071728949904697570555106123124993091628747152231750184877924844184341688151188257730196222334047412923038052760749606585038582629929474491559558814507263025107960663445119084469814017595624932431255966746120466246820428671648051887118277199961684356978289037914961986850713873702577743245092168597114707430528967515169684983315987192624792505179595513696362350808853157669708677541227139297663265876308030136020848352574252567241220128938187872943887700579873401343426658313938696930944075203974201115955121916187776832019776663029778252853139363010921897711960452076685431178695043903554112093938576831979999822366018123541193270663449971155073443242430424009645593910866262498627424076102343963717624707340847869745952295666479488057628789462835926555544554167485860860632820941007174360939734658096654061279307725982028436013952284096110070976304010195927977116420177140777555108987020031036704606609526568378296370025025353495022092289767355705337141632997656599504042745274988096979567796117821498520617355816869249793483203003318203491736726577440238276928128743503098518882199408574911350194267945805040839072464442198707696501377129454863281368135581230209933044576395895453217397731080109706427786040487149920762260415918806526248170965944541886904974003041507315402261830948579210841766871918775674490620224805404270778063323652103286821358138860157505775685163134124985509084369402601405610714449848505567521562077944599521359727072820882719299203393374317768158990667414514639945936556063029668418181693871984564010001181126278368367133724940295395623203168366231564718407057225169232211338544268357815905523824955681453012232211408706810665514852113728476867481679027534023120180257158896142227709303640543586911740544019478943519482633956177194788702761823011133956767388260383299750044294622506896030853107765213094874958834004639714120999478652434610099958248454162408548969725445386241093185909716517357764220933750831890957004262946479917768678872578362950251474832489936919506681188312846082126325553680214691500724693052575156167821802828544053802358437492070547293507366460719975076249549763300268496377910771682687833347577825780985614197597528909406587194112530925991053394616255677901232302036874309097599858675913787008137402280277179023852364138186742106303022894609597305470607290650396659042453275180330812907962312399424982837632742406710683835065515817398206968692494437402028829575612296596160254158388062207967653948932759667269940302843413744857168896170116767543029951253223269189837808459697275760037557372592049450538000061200981026920586776986821239140256562978416279229816930440130243443624557084082152170051551523026670525394161254622246039038022341203019872739931747458351667145568759326141638403444770138946325238769789377233789621538973419274030339498179121530549969946498336222282408552466369100739108425230369197106648955899571684866852149688814619360387542223312439645838044244741777265178562056912067119613770703571631934386631819387726376615902307361948026271795456366134508103878047647967111610701692934564941705516483368097625522967383290370134762191962915392868353137050413707941949540861336400470338362392257686123967557775394269550951007448741301360755328558645441660968223189477476986332553363289408563610205013791596555549213001807422280836711435427350198777244983559130852271090740233748701626680920850463339893312608227620928467323559580997868555341708452711044523988032766992368170094056572093490466881335281235063723406213652525166121643881130848711872511362326036708338903695771821834441209636646541607413078300674019325375813115464350736500754793362797781612499767477699699308415691986568634989682074742470305170787073630449712743979412473193460610039590492405967223621026456847308161536975299445747399634899518752816599921271790500138956519422313426541177424740657393576462369695717918844534429630732122462724950656277099801985713266547804713518892808656860112561035060153201395680193175389088563745620276188286237113448509081506498945494379029380986460861014793709065780412977775561655764312616873254090772686603919834773569082657272043346270971268571412273666363224730569007056345554173219302461397237183926678014214625485726628278189332180144467473956165944386376902319419554534757931163540138227879985086015751284627274133468122794601693236540850626056170212873627212756570356069629786642256448129953221121645892913780237274228722759687169340637102395090779089543255881252582601307041443349137124657000277063700399856584031491417231596239840903915138640532771605668302093819739897314848946259159919709958531258104541897597076965452299190009563001260463870412881032193615957936294746485442325849756518450528582646281653688930037354189957145601029049195988934124777769254580090991140064461988076098711140848748376550579452035358814707271232851285367014257684972402209141848933621188358069443880719077861171147111946618454391282903456982152216081694081646949644682685382250835441123847584198555729404415959247610455800319039391473555932121257169333516626202903368147406897925887524450430098004003450258716941058384424340157954887970086431571013502732931466899155566600675863787477560452624507674241114332997071500883475348430443200597655538868090284185749280269750242512945190070380273178578200076752512299295384043752897639113297209703503982452277859409190050236873866368756278666925251059012654487553423126923645960628023840254557913511108883376048632050043988829626554449402958298503707077484576283938887775566767191153394916912635112273010896602114796084474926206640534478809750174764365196144880694418747084169156770878050811071117191891161746012892750379171532774424447341958618434241776227353051299744261380331961110433967011546349793015262409308208971634648234699974657301758293884559360930397650528047050325102049619536147265890119870301471822000049558336621178521441337229096033717827623109664469711674260367703546787056594538554210030616256644224060142167146993268029792296430235415352300729538856202066808350204763325980476426343431599957943267698164304103953535604841136028821732665777823910894891445678858843567643408045802901819292269795364076003220747684069537650633990800134325894504331849992433618898036197796770163900926704940601136255197066585842306250343438739975147349106443673848468051866092944624875089606335583401720947805186962874097014698516960824056776677378808773689187304837938443466525472215058221360567570467040305000962814325262544104963069587080263384344012531329181379494290842790777737441016728095978105772010997725659739513107885176012667836427158350744003333692826203095314841177624331039081248622710213721070169626872113343698264182902382202857848988682851033123018828630776118945112017242782716930440104730189880790526153556691278928815925958966585604971205039213508947969608816365090765309825870966001983440654138420691161581703358491643203080421106880397712739339179315300308306183030668627637929715135137472768986267573180950916861815721231737103431177464046770408957995145071909327069539420705216416030668859533537692334565940681365451728091242870722247996116967486092108086585618107872859681749834979783695220123970442076435867796983344471462358988433865894133600503068393602657568552205852296959320243246880035400934554442635492067926091462104707717936594582479892204057420300260722119616856334384819292847043114309656246880719116208527369400264352882397737605424831747953045944265956415229552796758837735374248373782327752045521229680155245379563070730425897758636842843402841861038628737759316443958205566849005118374789356491212182849153428503664169580724017134171382779419923934341584469189679343583072740593385553403002395841557069600462140674324106018065201484421766505495037085119493829757868383690184446552979200110194308917262847574789235865834500305638975456815259511596291769904007548797029841529157763466042688649658677065772263865093911094532668566317051452588831471054279430826009868391769246000218432640468172933079165080827170774677317398009116699444745915027376607501185160675252854953748278667094981033598767794252931452032825071009692010497670368202112179522569900223678467865831616836309998824150914865152151873504088013552073560753409810966409368378114802360269749619325604142488433419521118917130988646772778397496900305003879800669700511234589595658340033326229645276700796041059167500611285928752285017039126157258565824602229206962928022995586211671377842580170411469151880025488666932266447970420565721111977502300167588368297230865115807506485483347927220249179102309125368923422005799276940224743865067414301591943566156722340720152863993230186924588468516734279093974234166167005230374325855742983511278173857632021160929768722786971434786882840117788366419616695905268411464894074349314438080178968760860443866601825035602827463086542449932604627566091148645687702463107270216392434694744262279669574174131848437310035206977468155028243210504802353698286660163077219115696912664268464049921366506578148695602699044222780870691988067711070262887613599207765870584742162532335771204144854875815937475860036635463206075224450469222559013461770187024128252764377279201043097851970563289558754359601461458446288393040739559305063530767375952327423154855313788102847266927610177252316188808990921146772384329878004236393553622355397570722543496737043295068383103516023282200695447648320385386642023890949585985516911268171997559019189628024567254331611716841695299890750902959580789042012403910603620903917291375525594530253931405974234365667428750413377947252145615508605422668464172254534013049024545761195930037219307994537484791888484135828794806812570314316784346292971908205616224039804102664616199407716019172519842764638335589673906650533115189661081893358766775829803020773392075424048148947907530727661911050126294668947057217767456837626624181647693361451900113190022850728694186640202191862478025058313287418677331527868972616251196621576675170209269833193650905803674565130476688806039460124404440737302926068561234115594934383788422955718318750801003671029457593514955743664211991132078142629699275756375669067256025832211925849965587082952350755733375146280343766630431272852221445846099226551243838420814866114921495900646389757278095924407209895801372680371726483921209608647090155147256748318395061549619040233538373853343236428059693991696276663689759939467504335661686392129654317771641448779161189362973670821961795864219582906419669876799512720654428492628943548680980239994996059151623558952429070762424418926828872950019470669486072551716675348430066336113970220028349542155480364518645358568642544498976346015905078962057817297725366200016902391902750876663666421851537522238880018658761089555367611080843129489093206288249206150436690541195937314962257701852240920831189233063619131206345870300611396543740867635872587336673464763174368732359449816844510349277977139468146253469274120247519579174724659713952113730324421112597040321585491403918520654075604929495742893753359480554595192357014161609470324171463611392340581068075115082091229191831912210794872862461728536119972496726931647530329134167132335305100174968313284633638884206269313617265517966853110991385448705545975474005209282146323404188583408165124888023750413599700292777722639307758882466732901800209198495423137465526324690242016876126247857436066947053149392815571882151008180947696021327422916828208759936297442990366003582042825083028263065491104581432745223768038119770941602727246994859395818133374461205761073526939359931094728197210803080352250580090765948670906569382383156693742240105467532420913842942146817275648753411201367420292535348782959373219804405735366236998431466937448766650290080572466732755441168115806281391096753124760432519395367242153056975219587068108788248207063665646460750639837397004369921139462060333020827028303900012469059523347289711469020728223160715108820117805144564660850695580213246781799096582680508403505094576971129498160465450701948081404494944189423533730911645851223104231840487990707160968600657374980878744887536645591245379217164016725785006538956228735796427489537928030928960120310096243400926304624651771164951478138815239947714295114655395464712506867021982952246792202142551176746511741991177437537219719086786270324520039841416485604932830552071626897002733692320223934802463600476841482704008681312797732407924020835580946167212966649547418053489597934479902786022182161277576000781653619629129596865970610646824762594719393960493644401402410482170369581090246162200061213853375974637311802657129989947501661987269140313495380095628281804542312082168217614329770237345596424253055532911648086908050737233420688628978322398335819676230003838912939987077698787501221197497874277147634502507934677833838359058139892798943526901622481319140092173416158745545947769588530862634052643908575923220233687466046313960259049087745450481798019528924312346706617583860877055240292433417865076863765215516382421402745207230124934757018665244712285071042385322754318791845951197235488390167701119411408976037687099948383369342153052615132011750565525015140930290292375988168701878667243513291681316617198603295412723770588779920398025135401249291997089511826516060793227168169231191801431954904460827215362706127835133191218480175370751849488843401308811242452071324271042649224737350820018528008829660423182069486430819170004550411054196853779003128549953003590765041527144087092052367980275350408635489966980548977760578713105980003678141431797303787728620933648526490003419374306925961882168567693149761859200389104809377482911338303492564137212618737363514876198038634806701175607530319538392327393197301146507271045103040565845574422176412649909467152095126868715488098890517986959584343635387718252793174907465481349618132069317661382768304121853312025229893177501462564759211181588106502256992789178453964231130891834542395598905698701485134097353852305817911174754374256673431829087545962742538546588142146503088608375572804402614929788560362806594782847869546516333912472355116818263333208258408863912180082148946131789499691958187509448458739412768775006924127141971507111942635666373033140679021143535397596139205586302286063578941254154280019167219080183091075967063488535824142027883011948078217218856791140950129566316800135215510586664678587920866349161278015012970797406044411335604102335928512284390991613256839016854694152963309950480207457824138846890063504037838169121245209333865736226091900135270275204511560290568909620666546661882316301632098479924087294336584894192995520983873708273249819477231572861660674764033995319891890253738661448814290800043530673828619086711652047802268535428482691103500002896928878143934658634261742487657255162181600917423905940650509389903335100481622116200166561368442834981900619581665481650215676228507436926572774211835273446536471901690821310594934642981265992643933953306392521109582704304366474708627628739931197145554628826728520174535479183204694084292326934455588776959942843122046664022149201303386147310126838425049552906427062935077544706929476639305502748743967336220054890322920769546060497684004629312897671778025089414020717724933494535952642361242866525632023073645665269131225265121716187227053165030319064798084386703274219028751508359844654117785854998538084039820755231496641770425909710554619145083001826266663559827658677783115932035262317181337834902859919976055712773183236398514629676371220221464692506575822710447826177153604347723991420686967113494859716448013998925912931157980561368914575067413423044631442068743809603581107601896962813829375265738670335454264077005382207801238089210783482027509365386224931270933661206985664897432134602236043695143076316519541017862198758732993449117227403632457948791699773567218736087198753420771826170401105651841295068526676614082380160395676713457148928864214770342311660248797768803789372072105110521562704369474783119967966411453632615523154968989926582811132008026771024961181160040575828895394358520200537200179600694029299055955707069257952345123890211826131009622632291688074680403882834829859674211866393068616133550327695924785884051785017627089015875967932517230876042167255988846479945836703585615259604342609425334729884369527139067158034692910411714148564096261990023710900523668985841883592509970145950339480537886649006927055724468172347815301958407803070217029083415785288643948736390741582961946568512927209891070822458381247250057486960893988935706828373295106880950124422763213264816177858905206255349974961222669240903570117283708514811212180679773176046113529007269671941648980814087779228086354425296489552339384036544136789188156774581872945799277205609561979420229201359405885125109976021470431906585107890247542905646576394375665555582930305204305046374486598906201931581754819842433548020522028595739395650708903791372666329508202547417288208223717937898922452973342172102982709207813160520002323181155627217229870765124241012441706164522321783756876767591540143574686432122417874330501325208211995068300680425171271151891915086101440747711280698594740815304733657642846361442398978202273352939924842570262717081257101044679909107043040512291091325549227861538131713658982877242496780812879256750117642620528779139661236794273334534344939022741580525826758581333853159918389102570897069869846581336409028312750540594366253513137801512477975571715556234192580446536815485197511192517216121730874217772280897690846658692069106227611393483869117606949664254758472733306819849943707845456005118929707811410367112491122361054241024238707781523406950116221820103633404543398911529324566075504677782783611150556772284031866398300594374193728466752621318215137135547049943832158843185383174430447239231379735034195354017771547109551433546228709345015940941258775657988110775061723790480983021772978158619516390583490424122274291277825660885716835273345769011163885498545535024978605303975092755943632801275669696166669665138298660118905828333987086881596375975833246987519962120618844758440829241990063154786619465032596944938928141189558854476038306026174550340429844337053618843342972993375692050786216551206966225567296041553326132165953662540402950482255940153989981745123763581874624757996320621592488533961851681430729566501436740260420403198658333888005762666301341521767213362423644147385213052765857865110216378944387837904125131336100473934407129536443759856578890181177426885052520831922984786848264854781046426302625692517162279232983143515015270491639554526451535926544105891933897951878363223916694381142125302685330877755623286920316892671032894312127219132234082511237212296010757785042854829842062473428669637054214283607186624052144754392259147547249261994024978572125491190910204024979757624084235319475583456239596225353410297115634903809651372519553829667629819051730126332441466033761006559318361262907108279379549892889447929057998400432927190313852748499225469330249390376362918489897577678096746553089702060727316554312273585638468830294786894505553695666669490803552712970173626264101913292754887100271214986058548423279859870322215191730526959053075301688358938831591826821311645893285870596868610463599166995822848846408159252869119109518682747834453748985053320920160881690652599629495172782462394803919597053073327765799098874689902664943620673909835320561035509822267577844517512153181271565121465684003359113099379936274232819869260942630094644721819049912068637116863597598901334714995575096054797621405636602225602562611637791631977073174023433444734789367157634813449731705229001316862610630671340405052900817327298279070440277393103479814580104301206815711896882664135485136528634464302569975953270826216743820722000955194971087671123699169011986400574922559263777977948243519896520216272511971146162157597056713741888569578815698130038277862562553786944530627023177975032173451629152063768726711827386860092704069927198365223536693641719162276954696544301022199007127089446910892183975198340437560910708021252835821505318927373990375149899541897971394116764008497336666344801578449267667678205886834586786823411817447165460689716418147953327676232577124165927608730032437832186026046946769142959676591460970295083253384487551130021360322443828626486196115479169019760237925825736715623925368004231923389396286196275745004221358296944011522217555714838770955811829386717033838306174017696734786818229124377263807496240692892438929611746855965360900977379836460549777732283650042287911370345056940565077658970679570543628945690527013678039209592315123582442818777537187847256029795591997583228801713199033414512395839694409556625368136254013510358682571481248871568746316303510527496512161438616569799662452984951314065145961057778334494083913297507539418797409594580746101079872676866239813405616381374164295220614940164340825315295504483031949799033432711208563872248681643937804551242939190281324937952588175703274169784238056741786366191021620245001862831576468265405409570847350105404366829236250426951903865733855150613829009580644303301411712435492674020151328196658539395282228984541574892766163839677742495626948868570867132453770169335762146502707020948761247735148496525804973431622246649068132137503026801133685338128559257302220630882810051321745597599033493571822959554876821818220558044632177170449627152386626932588977423913540578680236752575611795618236436101225348680249368037696654296527192811578321858894229825529992284101149386681190334380556503227044857993095849595301690228520424734011520482203877115218940148142674932912789816517750532684049953622871540306542675421537204868690399968423333731139851875562820253807662120962740311018147224375120567482518258214944547603930820684249859979522041552499455727556627113225621269907766799639113589180442755519142004799048994943321657275285734930093824349886165896440986601612339093714547541349803573867633382679255662143639641456099753499044040320064730024247432247849303880439416762186544887340410111593837455761287547612015179897748502806221519892068770400219936042812946928514961944745914412130464727855915337366495730794311925456959041852557281418171313761207376243596572841012258837766712393709052496826647066076939830010996863652142745771579105523386039953967262014011040383463068066492542515465898118225794746276240142505599455820893169116736997298504059723112346109060826430077649261841634762153884409983020596556725072159815305780006333835186707887876441422485242427745076473465085707023734584875754677271261700137574622510275117714018930358164510084629579435777416940825102277930993993434476094698708405748834471669965951997921991930918348974815872036933540813246931773378994363493173017014184335579961451459400705518603050721149201662838856855662461880326403199385499253613668454780735640579795837376096969532546306879348842868851658752430022831877009711799460872754884214125991230812172397913975556248270497997988064254527882761893592624678418538740480944689193995668546268930973074848630371630894258403786096130282441613406485912166210949983202305575937539469066036545180513824264866273066513501514991925082858140213555814378786177157646245013012606985134198816229490594797602589140434779295821248506965875310182773608371085249350632840092844672709893553461221461501529327296533720846742432160733302453393160878970339565669726974590780300671822847954791807474767666368397082354442765953559031160619860576923180494060140554977679753398249635694416115371305171169416952331305069237377090605843645084532131887408506251282777937536744261490032316481732233419121614901517847185355193255979063489938354523090376129760367955013940751993870792010979201924661847830475055145556931030620356856898863105061052960570386310847145886250143297199324447043340924153978906238581911613952040859860167821780739140742485418622361912913361349676506632287153029155762375282277293567530433909669812874367981895215620076276106519850323113065681122667090737673218061557705746951445029560170829410469609182856878562809803891293400871599469958439669921223785120491122862004959316842601944934609824844161893679587064151082708804727146713554802217946463280159196296780333109059178418771642661501162211505583176245855582429709986037693536838371371064497299027134471496501207693070890836914716413321199371424753664429520318214057920022292773720241549311996805065885787717555980079760243981656499237817169393353041467920442424585708640215903092934148041450025847900483435710856527640362576800934108663798522224262087335378678366900590853310311994648995055319098590654704241779198052931748097239565364874651602940095762288285443497825952381039770890634810177848350091424523743852425462996579793344120660316853900718831324792638440137799982505870464273781531131339696869145840245927531547915901874803185395404257676685752599642566206639599097587254773061319337117366333565729210511246078055953267560384957989981603663503158042349336982958801560540992180265416503796053655489526531292844074525451491805856450149019017119907319425500306274768956557505985715669304069761142473692728558930699434148540566608670207552313678782530761390319252772490712974414711384032735383215107374501536045074260512953963970324393516932607640324522930942938607463317730714907567128579058477882466300936447401738767496118310631195385038725666645966770728240780877648480582832034631002781344707816534149111835661294290793263795280676472343057564196260903257126909840226689015786875016243322235428540169850003826367925445889468079026678848446689728202207569965864976689440347152173330016390350084395506213139074198701483567730040046346268279501422992785283790201265754447092350619779966697743986119692372489083474558976791136667254441746297475527103138192271431273309010941477253003627474405028918614050350616388067299066308250911867965344551560524817841215304621381968626135436740183139125812197930600589150649765969840719703859534272014419070259845198830801338768577355519196748123578326573788240898700390426066738448852898214394115065700874782775581670982913192456717532298618227181614282589189984796512036897950285062384972723057052042006182871729001256756593457125097604623321776932467187810523262844515732512519762175464787282831376122240408106392970642909900588998928349477243724883404777252346381498133649741715586463465140173301739618698195078893577842196383898041579389510541012653837463425942060407044165297764080117768940639239175899014934958162124573090013665238562468847093338073673620221416481285888725489531258524954552634772862916050960000910390841458222821745411048917990110774050974017142717797676503923069815479015864711732847520330316464921207881688396502185973630313934481507155343960073625713509755536164601994887400497860987150186276490116177210314399899731481300208147892088983090905891393683699445384446700006845125351171356269032781009172676955778888222543467552965844439087249376124756517287603625106286419095781529479090482665242860709156592305030001369807606330687017574191527956340910619710785519737544268566090214910432943171871274653525070341987686679622296450189372449560252909029692199931298678837604768129351847554319600330031757384944471095374412907344225269965200234652283601458451743975564106773885972075092826934634877372678351117339551797233253614052475605763145927555835680861095827566089525187244688492013904780823798940393387061479089429175017349549193908481537658265126887148180455608023328545790955043385513195243185666931358359888957374432517710567955483554526676464083451490140445216532395912815362944578562968554232038876995847778702465221371065686048804344766987362060333479222018391206983978108863733631303077486126782503546464466239116311039315321174556054616868217444896631032185580302060914279147456215894550197246979342073789423381722585018500325856144419107671758732659155116821449318029186317682795959987018963469200759554537413543469851133274717816669216931963995134243326071538607447382588285271938490911939672486617598588840399764962836307734835921815296226872244130958359249999195824694372624660013704378836439744082002991170710687269266745464049456024230841074939476137556426914002498586487997422780166707812798207619380399326817018819903235072582892999684424238961443413406771478902932572469183038661188020938265407806463194144664807151849583594174080235676157899918551811861860515120288790444508949676251448851403004818140672081096537598059264585488817048670373186801892857214626959900271182077421816074621228382984758917300588593363648347520702513810976753066632708333396288405003102587159649326537522350545645437221157231566621083428262191356280060705343472364143029937254811733737316026540953142068386233344962015419951497451071896217133534653399183566405130908963716881833730582203771318545291258120632366972319690897515082104485271755147832746756544345144826511902902887019391161347482527486525062484648596031188763938996561927551201824036005032573752671808978737491764355624337704204384790431591462901027674290138344954992029908286689350937913336894659220605531541986146056931769307483839824099189588880593289836138086133958367251246710387777369332023083992560148461687427542530175468148029388440074688701695415245761040899512712430550020371263378854983114871340638764283228179444389325702351161712434527101886817185936006588287095367158870695749217599938724395410241861533939444748966241646532027505220532890354655453099638947242398974078845448234814638280123987804699148038785198142181258398203448466921728068059967577113045522911638077190071963789101851401898842123023933382904576211025702024150293235745192980044096844250570698075040866087753753906797415276456022020599005616797983784379950616164318659493693206197898538592051011853547028610110125092536517193258142468965387845429541463516869544233637340545037467099015970076113060834454333982461854767966313736742908234031477643969179371065478438227480590697545948107257764994774082866687168145895234623309190722137966147487632031813584704998266895894568460417068801665894980982559180740618919738966266473877623253534432284748584359471281051535409246092736351044525992452037853738514867898245730956376785935897306078027583905946018900829768797644178234481146737059145462018250972295513054822357689408763158625193274140385844079709554482211485449923487797725034019393679231225898573236499755718778968923919076054353123428171469884192971280373929899973797401727795203856325152795623347819626588937105206697639953790450288228251935149078289277819474469729176576297432557364740718723916747474005608805368371642336001851893831307706779842959932272386592221074557220541201459634283125002441477171107971249322999168257998521174005830358829500838547499867568722793674856956331476300824551425039492188942609072432503877403757668900104574374532815212342577421966889632532217612362555833035134587219292455236458488156125209546700493260006233812823457119153407145778183006445565570779344457633816379110100869807162404218803110082078750484076123859193005737493525462274797915503886961287080415724187989456158399500803762394437966596682237642371218549057237176837308556840412125775012370304769225409599800000395003950663267658277134911609576123091290382495239415825663003015868737877760090089677215330897242624983458545241515586959636654498634950571775891568117186693708626803525679406658719123105719301420464173712056184266160079453654067445701362381937263957804290210592806391653444342232642071748673514918674895768535084183529868966228365838989114163100751298779405116379392942880836875986667210716943922622587892825805762889494897212597720476268636734182469320336620950517384282498194241178990699731607473111128528916546683833390523607916352631023100890047024053498369941324648621496650051733928500952564044013644070170210657334977010827398424478900943736846088874138920360586487383861416736360367415740962143301691248572764361635953507245790672327597252671283858441862596661616406050250986129431606920362546093554473979459677969268787166709319415432378064274846939676791104182037782801134899439752016423117615980014818872782932492217921348456070512548305144865206659742910563878178253477659093593555681328971585411066258064773485640287160721400897465742774809121743666892169057858113139653702679482373088884517726350914159187809435466258101419392991466043904834307938470402264730168687859522504739168055833148218559726505396000088103793560457955990019958385802120763074919861410331580927674448813436077664646820459687859959895756729415790060537276700884144472018072088990189164637252297816628497703321812344057244584436247768791867209618288305748592894433483645345624789579943795844732799507767712188155183550836592264902919012350364293033195384500244166622408781665841473823159951061416408489294724114508793965801459352462286904550261312814455514291901857395888740557945050513545675225618917327396365713498346431824537818028251175965442349443513411831755861638763236807045252808961817357619456693907238812185319823473914850413008017465342948152786529113472013014809307022603710409093425870523365948302084421647889141744958361702746544480411410130122942162225922376595009739106227929947091460495045308085440547922313364454467811135588322438941787448965096121378684995419626621411063233815697892934237393699753119851621732834695611484246608708991521693092487013328829669574311489754550947191547463908267082891396419195397478783002133027439467581527446789941608280310938911169980753420265818057215325854759297451614724276656451363417309018576623741542916349762340500486481999007845328477208794617569665633703886567515192546354754323587593687699841752857796894581585971184444870094542970732290943831744995990608369908361428000627851379295888736564117868714882249093162235109266290785365834399808240531157730695223154047874701282903481291829209163771630904545762329793334504267756547166861258220086524598379369334588716542117198621204026364633019745302282596520871761270860839975825251930496439946702114538169821571449569508966027918555550688086958838703773240030772265942490885968775296132384274283981323461745315399027072327421270624870635344233043307242706245921840371128249664754806545602296309028811886392768891131710128828304249742262307846732272479772741921714229788010499532755958598242012122550538319554190706146334132375115327569792810455717125793256765578854015507997683392871856099394738385915830070024787025511100812637879625747290984456750884208864023397626977078767823096793277089953406142144615996649461484532122055637895498262487150687692909124499663328491888015544004857121943765508510324294660294866289594362379531920586416724757863541065840604754936473016087634937157226305900121592106294503983174026733807015048473358880378658531995845170668303978780002317387402543983644624719390506269334189405693366528651794272988839356106909530585693727329848966003807750279185575553361848088705650151681124300027701562896348500725572215799685516215498166930156893556357919368372499854939637316003904764716515753904720259644071820855714919888213829877877348048323445650047138598174019052705434791057268364145928817149459855914771420364280861884588535208272407983749178831172835258334382684761848050854488598768215472040838986591818986042688814017205593558391409873602318916538888712193256706339471488957522404380319540252413293112074420496592104173856461368797639930374445831503881351215620312468802047022052209673097067854517828892331437155023513813055225995398665628934323152552276621641033526077271549860315780985669263766794852588781120883959370387535514318293498928274955318154273239590980747989120706390942855679428392284901597950850025662523039544387770411251029839110016941818698148210246282069612084816061074133874461534655241749663513399618392832953044698553923467680925854892582841570504783099191632379982285704118578843083476802035169380176548031563238332107650917203837613867382581146563151885934357662493352477631048190739339245596891822160427522061677373445421228421490361370394161105835010046330780936414224473592008921066172204464071226722677581651274519281663084793222397426847214742181442768170437403267560011662936730333648860342598114450069963026580853949449036128455449742856627675194232300862228658918159155662855835590167433486129652130989191649313607167313401019449250185654448954114674601933222742660831453307395079496276443306903491311120516361757351343191264748782821628510472690996483732690398473176159475857655798722609910366810045688258082421954708792637609767559446911318117536107416988060658493982447988940812083368943295688073765929388190498221467596816719120863402007912753602884502242419195656150063821759844250801219520556856728034470613511535754262339555722573935232192641395516183385279305092893498217291016848966492133435081309361039211149154046231295240534167717051999949754021466613761019140209943221484842458567000942954890776614005124333184964059674517244757776050038497404435201039329397967905368844390333010189945210609469622411768279239136798275562001994568075672134763550811626470171359688027643849362892391336463141285609239005118290761784805060000298618583774187088718011799794204889080064592461882065908201648703521224096862923371322554728058422599736771317798280706601095875437100131755226057288660369178475980733192303259336491986086028769988717363363875441020624280254875826658132706098620797271670927266580541489324710577988834820208351018086792140547420959293163209166128233730377700428423317939957724315129623619654603347703335765613039882173305605811220235308072136293576178101834035963962013328940081257766378963643735341634149949078931753302263224877758039899965546213403407375744853526663154643933612346640097796338204996062765110634342031084113318772148555611403585169299481364180117627397348782054246022257039860873842000666628738658474643920664548966359922604033406053788273654032126604628380013255420610721696217637855993543178663643967286430998161892253660112798719185265388790032286356980446486580570385042951512455847592589826033736836651606056680834707113270783482191827613575804069075696611912605675159119195622237937918364739225984221642094157413202882013807446045243075612721967770961683646959654223955822232822683632500470138744234250359978874997973830918253060433343475379362192845163356717698363600953681609581525675861960386758291765721003022790036083260492945975953957006865897717017485274236285039673650695033523762679386081725872194436062140119095978219867162179993556114029709352933413798654491073908847195041828149873658728723443582299784784942052179574110713334356872066702265757090387562592337526052787852976407309164123082796007629863050732205922070723789047255573846578329523357182268250510427923159822678575908404866554898582394553556760148247524280403595189070141699640894291542026322278241664814039323669304414866913610718285585739987959531001790914339386046152167730774506095358741959374709186279652974606112586449283387269023941963334749277134125851140244924624508701350163096218072716650517648601907123915394904357787091709293068194031823030931457634049307504190112536232568837549270404088743138920997866833560698539366156605452754744363000052430013934456708692292158962950662705787068163634726951544637791650425992813497873197561935067668100623148682586334501047218724175576855342583572415658940267582468512949190070441085461447443018720759267912944927148771132924906021758698693686907970920695398149838337654813895276496568756165284978761546838229623833988321108591215404064626042521801824801813587042829169755759927991211577370163317283548356461784165268537021000430144060832353788779065202523613005886129231300683541338524033130204078586135809999046584649991982927036912819995440593939090568372195807220841414964706865880129673282416955590039218130596285772614294484420126285464247137735957833644862805438356611761254548745311376320559851174378003239323955902686492669933090497320777562608280482386776270585536108264741387836612760357755644070572831516008507731937783914832264428045950895757877321150413438941137220653376016437508247039628769340019127751922217640497327213498865776716874342320556096853167753344958207082885932526311855001572424760148383970069495002000163981452645099482354465794618986401916378949688932517632264589937038951585678266272571938547698777097121542349854419658639443216441795044801368610784023652554929209750005475336144347413843519579153255405669662969840684895183393024667819598492003878357710621161933588214394307909693844160663588650802151917492945262027435940285055688901375546044248355935823225237740583452470045402488299506960918389303552691369172462014860142545875553377410612258960786889979487353287686094645008499303071494069759139650447344213911107671045300992471502483714114643495881421293700864038534055226418801094113226302544891064864962426865103354292065226933756764956067292565327445525356177356028102898545400927403339074377918919563369141720506140758740415066028658905232173515865387536204000615693605406556177678597731044243013585022819612110073846406476071571303313991626467239867874007887822477554459409271737114371924602154629873576944881805802192444929602757075653256209227180445701909664520992108057595619726893608668981949123099845468148454808085506899396808661758424122187433342985862484116038967030303740426245733280225817682352862247566919737830408017045856074857732162179482564983365992081301299290769082705695361142971424002011971122838341294294060395395050481861908843638822906570406087296304126793225870865035407362330167962748723835314390695942651203974332392554755947287791142861614635941843418684837522361811665924318174111910740076477042312976884062004616261678467599705217135405226954292059210095910843650587289060846992287398547382381889891048111001875649880743543781297579908945814874397329857365146943587222732884928477544169992547036677957569849034361764692471689729317403952161995934580063194787120426084465573923743501250049618394609514705501199466703350057753164272356553194930245511750844553073591172311957211975606066651650638845361538788751828614724402309397228532966992690353867186052913081274386073456848529263653665118009139830050735384804012839039938355605238243634918819067034202214830646644390088361696488393223467911668386679064485278545555923384528102786550374937036181809711108493831207911083688466517902602934962976858599325833592603693120422211913281877368608550996267670045111455294813803810874232947839587208619790385324629377160751635911239714503137606753024850694445128317520333028845397783583180008060674311781128069274986733541826880284319914647803775531420531453763481955084377091813216762980856100337145867221771582476457583493768038339124133366331215877159326801108229705375474354684686299047852832498032841438837929419024766591321632625317964555716347878821884105630876888062323941658354845104419482013749420821678814725693909439152300823365344955625087014113757475890265372549888861756297863845690065401390437294595670053065152018336657762811325995278556643872541931402278511451834952636010109023327800351100085662429421324364802972476727077196570398977848218628793874884518034011375866077310143881880923512293495513109568976483303789620659423107189001350839628756339724996193164082101265648566261927032993904168709375127071007381269097314664970655762174683611411477855565844587600676063122552352687626302474853078974422561554896468641405887807557870987762894784404045458793596206206108656839518978216260220987607272054550273206907175719716851633175574312842855984244066651705492401683822576968390031799326976981896476758714594623764447773543965924928288494581093555064205840409909199213572045279086187461204845258205929044327204011154118313781560061866469986306529019349011185923078180052518538324796940395023694088607884543475061679641700925598501305605129853944910598913707486328666133307368851354361180891252703665492834819417792554796346163881309515797188652633648849219167425902356138749832809774690247035813889847765893660522516190165261235512599135662707503531178530538544684052603108812898992409669147755005169679913190734981643179718348408077442235944994867177104908470065027494941933803236058182340290395758715679829166938626191547685616126910392614511878417295020397311512870764523505894251013312297301562860351961428459343588643997513790685670385414413110002345798066715625636444834800846709818837743490901527748059704882110363086467148882938241194786797590844019545937470953114187532365675164051459550196048473857661987695245050468015555733473452201220232336873873455556585029291526668458097509767918890641762296042556311001699910793537941349529541077050867641678705543758575457848806010270997235557230127698776772515596437701534983363160038243470928166715116220320185755537732469478858973537618384440433942511079625512880873576851332425635592881581528009628045206411391851517187192745995524900646935338983529503428411124139414015738919032777420877762385838904446569652020502909576306534600226939982971636372191413158205838914673027309064459443820542504920902512609652972963750043872529282548075372359370990553603821806939381711165069930442945581486305451282304499550803544401173402112027255589043934788424116069018615648141679389112234585561245993874643976167184459146223592231136286181641195238564555988479816546660565193215187336352560136799270822786960115017174789056428184112947153444573317898323331185641791908488632432924790143745885213560926333338720284140605074905678778406766241974458483915184710862643979190716322126160226583634615111292622335027028675174533283680274067344675236653916197992155071484327543863684585254732219350868518099552251802958535984332135039975659047128038626300216776932087684910363650905691189195434668561300143233419504529652469755562351145176252795725785866698726715356660516820408963270503470333041661613689484105528466636379760939178997985733389206438605833672739335478893781977882951052775137349158466137992582366616127190261927217546898492447182219705319814833395748674617554104369185347260770454182765716649943544883103298005100436371254791523357974962731979527840885319626604467129296328052530174765355919740278355006226638289506054173180437645892874600848055085384957472280069593712467027720956254147509083935206243404245194908559073587403146307116375724661444091611953324990303428494214081632518081276439311218547856831009118632062734478529612297711389281588878904480259733572604545916100210712633377442443528050367849970217514690944870817272333425278503267750502175254086237287130344783776687582803522633381526015317751340383102224799002334127136437474015179103620196579879301302045560631916881923970691352147487023701407686444623580394480491973950167140895183102577940033631918155240771439138770384109427400324983946901662460460142895974271025113195921071878977237940164602422521175496142214721009392647166306870927456593842523943495166516995336354999314719490006944437072008046459293899993937054375333871922352707454540404075672718792563267812735495504546613451240301148289210748385760040735422728411139636655908355150899002286807664241791339459266890487894635624019956900858330625767758498554900509564695414437762057092432447567188965737142071540768144334261383739060946030356367012198600355379726799659195208719307871324183422275308790657263779746528913876536584318519935258610706880205034331233592821065947339738306887504090875964023439961683739325829070503303913790292294491161873475229834740178906688747773799254814463198407527921006316909262294609986511078752276721965593392539884595383411849343997342324049054139634581859401205161064443894280314801607590228057514150544099982481539779501496053407815707383955066805731679682953965555701593951623236773948557652786086782611553347417002107114598034459649547197277007268285313228531640919407091971966235987309118842099960360887141652797105784902685640122853804717492744864189206196958907069556214799324256320014792547161783648950123713765282901718273659401048897731551763366811222570216628200769094894904455459061209668876980148261457563559796933293242741120099847110939215616890278750428066889577823808194533798132212081385746539106332951996351425379965189722898780755598752358066029336190181159962443833405950407999914700581842859667880355802481375084706534580149463407933888072306928371128509452638386287157797455626897787635749702994117301386941447400988945725834547088238575497909207868939281235974450999374462450433530917994321743093906808954149922919526603196928767976424606707603312703903015440776368797578362860321344103863045419244223789152168900348707040835385253403329141605902977261781932066695381676499349412532751362071804051738536768953209925892708519502464278720944749129253272720796334133741123523211234323309891567905035052407810906969796979604220770420362444930200646485470596837673458571643796756498043400580777697320929113730572900071028216224249484496324065244622009116375843451298170089473266185692594542297306750012491537296743547869848757265312021410630600314265662021812397727952706418104608545161329608740341337703183838646818256362854099169022232719750730146183454198162512186726540163569369132878220881404846394099318027270681472104237854265720074919400939240404396055815891607044361842276344020571123493234152783598685320468861084246395799552815066053102367962379368006662753410664163313656758196348410326751562411673794784595431849145734473863971725644239528344178883952560073120141527078117295698899058432409662269480507676966380348679071783137478955393927189068641499344173228475100883483432920111156029883694129152206740205399757614745202352741936718073367949336552699916244164437146677524873894807478167279544202337630217409273546117810811800331819782739196906168860948285178420773341738440560235935113731204584789985278977284585975191276209837548027965203371325362948127188577775651835751950234238011070594491136674572052124067932806711587964524603549173941508515105811468172442665709511980392158466322840931260753095381232453905283316128627370517630032347023228710749947156498326811127673809993573065687914929942844381527365371960436324980349564674506684608543868032598283851310697248702794977458876200397727686187689264593269314415073509717228749627594429711972021130089076724271974770447603589817836971688951077880122938075303465287735956531343779323982768718744336678263160827441850530983807660823121866741954884138688284135657607053735085167938596632645347009230201631427171446052596003844387205655128392326120245990823905422705276852281374104771374636450385910152973716086799420406481024740975847882991329845979031273399340007442252581600233318936240893126180178521884547919722390155008403632003560027142061508353508513251862357616134306428428968291446540820304206068889737831250571315994799161760340266598434096950159561547226022006125530450964544305609230513211746585934920354548561696100349256353433948945877590836294943744405457523612385040014869786707132046153157419389925533659630141397520642937995742500925890167066531811246167823108223909527187882048162912174604232401339944936404255489569506846493955014583492664370314204855922459931722262230052441804265243746051796061265960306809551154436532700489626289164671069317757182517145970226204363057386040477979965635948152748554464037323041346467544170974409968221054102764243980969157704402806796524680919454578073532490925707787357232201133234812981115339581173133771725322418225126159485783483357099346178492202607275473607452681906957725595104869096511522430894120157915542277631760000912612025497893355982318856145151335673026755620458891131371139781102602379995271080270654750049151262469552621869490326508681103517646172082671249484369719042038905672995252101262686031679653479551141778863886091718447618202894241018873595599182952011288743101191993827745674186303717686295974989264554039203603261940857547393172637356908540989505727783206062706305730814205836206658149114801891965283974742217953758067383868342333598265673156562270604110218409590312678301266030309233959674662617466011680704546004549401783858384911584778481682664040580309545839542066555957417132510495824047968661361165474975606121659430914880687755324775519859303887818340155410944505119174463401654977076870940452145141293025710459918318295435119771752810178856527698867495988819323836523741144806492796691847572806509724922159418028714180258485052058443018615615137336121248873815820813695365500997768877269337347707654517752188524565611512612501342071533774660040659674938040135371721977818815916512299397767397977567412978238941685552145955649626185719084010589251036305944076832119166216748789477363930041040019190708919423421638938038211976284308236210816043669579177520221307675382247655763524058734248889747011440843747798905110726337880783913080538751864711452665072279659165626660538680416076049574556299990423870051909530532938490447980228097761443491537078319822313083629202205690346546701714536451162181334310941854487067675771808203490711868640065977801604432332903602269054142952135112646460918039563793722832048435614238077959902322982387607655239478722987141893606107986441596452849886179735475344654827679908829338557345106096289989027024002272385862520368092425502005137139679369024442733282424670232502242417327078993245398404801388073075809029454773342475539743612630966673037072071001699203675481255276067965301115613985821868512179266984904854478460538240506280104608486649033255126212509033426728249088206119527621285099628331350492523820163226193033228795551691847751236171116864891974566138018070107365217498059718031816325455387597406580957819132558834554346190153042608665256233541013061044841240401735644709958952873318858598933778632558244697013921475094625368559603172605414121051718746455626482337508114058713059752163938677147951556899241059143748470516063968224899450134629172435588419695829544593937063584754304576875500241004261379660852665696206665580989558936773934465447576884962917796130501789986495338768021091611048682880807248971261824100410202068952151291137725306016029080697827632599000888608966209464093103445526087710663290116517996148665554478010139109869806021587423603805778237412184716662180895792281004456912196157469993605029771771933395361744265575504520882872798526381938962177106575739473604822640192292803217059370907013413169633648952357346949403165731065752726261079084908456203722272306119751055208791535178045356786908878285855498899110609974416103575710813821413035050086347048753868358017923871721848344467395164435842626721761216809993221583589008859434952381150952290238514777773621120579268059449246148775935430121777210770184130085648911754726543489721966113249365941439030071321229859811168341802640929777800693260388468011765614187627664312172900425012673613963618654323410518852640489741023157643502311890524407378105657300169607801346844831675171435813915933927114569901606725260554229883626951674274459751553735103869662356092198403055461410531033070516382275106779642660307600973994045940895256045909041840447268844598166853079556925356931831436005791947838240241722439682539915596798640677118561261929642730270100550707500003814737311155079410316080392027913584778014915165470529990387406508087866050112686609735628464147586826198124827704042998215184332216470589358678255172480935018709434543295120365795312845280031824531693293396991307572795884473664591850372401604854374244577328003295121584335163327387232969083649378840507051475146389986085967426931364433893396679472861488772548301660569850797898246796460117159725248184491719972152587852872902086341280469795739616261311948412665586233272147352279340927259769917523186711955681425014642712235550969768617654716379652910660645387696252567831667648338912345306476845041534975699446536158514271117890963936161826086816504233323985253521781792126631521246060597267400726546337842704340621783560666140449461177429339150114713216740122598698607408509731042698253306404904700587859516032401768620754887291202554691311907401695071253692446037294781862225262120344199318404758364843889356321963129012383107074377978702202516616584560869323729768737726287650683708974906457743158861895818735535336847185562662751894354456105461209636447990527148283113464958438500186784058101021274022048770062663052629125798344704694044748728496464121726162937243382143992658254949180980289949706377057472878407420661558920551701598490613120371752794585842484459478771248288237789431875299803398159944221697211242625203279534076774368044810817353903272410804995826599615492533689925589976732075885218030915822229432079426463155059963963143652582860707128249198660031160726084108613181826788817234388557223398179555528707388702276221301269012489145088707302633920852805574248307338439558943769104565494505793557572671150317516429960006153997003856733731544396349010066136425544628256724623683001279084651411129323198987345817829596896747672464422989508552650927982889247504753153986765280693610796724075467067482813493563385401890926083958497268865306984046803870484891333925607844226407791909812830065328571082709239850865471081916016803922986402880813859400688760686417214369658995255464589933456002713734659601996240261209626482194504978995085051583066656429165663580089906200791125628745356879644458733613812691052588542970510105262105852126743921047825944555750129139101702527141155727020429766922838406956794079098810190651520531539125716480951545594159798980780456035033819168264056625354806737631173768599110917372121436422928057383046186511679510163348637221519835942968850984650743508118018389975374384308229761606500454360432449009909538304658662440144717726876506674251400239719228105012581463547126288874180483246014556111620125687814749360019010701891040751546812636316236265107777378183500110191666086775595604441688103211224679551383621383637191633508038433393182794896160788522482158718075872526585968880767821766441416528817955300748321259167749384536731037590259960458172440732360134173375432164628791765234458776857722679884107677827099696280724031939721409558532968817397559576453754090084688710772636972213139876229861929654102078539091408265255153203521933001343595017228145943329270575121942484771035617914233582431393050936996450268910450147484937902740119689288872094129312542719021280823628447557814578285757363296352390219111236678479778139951355435110505658452437118711144310578231533717277400659349988116985718314984871843767613274317099934388096647537017875512780664329698798032893180771251472610978280888083335115432095466106373470947353563900301209992524353221509048567732062963740150765251022803912004503954637389761924000455200437236199484782281455918303033766365700388509456620107552346636972757979414083924138958685431292761884038059842357240829927582241172412151139090950030587126078715290436609707014006221923395513230416379572505700964317619618008556671068399151955164268788873746249233969548883606190484607742726982435742487267633821128428005793982338493471738248661125810396815272266707701892231309631280345336801279282709944763009745724943797774272300021825717075134361724221848293831353178735021545226604849159696959937466725011099025374906212245865457007967540868856678060657981403250724031700830696062202965624352125171497221616452323453223912461077867401458337249274922609349524252689238238166963119329314750770593340460551419223483219052184187391078387612992737661024502035811211811394615021745167085999665424659963247292105791321789409880152051060127791165369247924767618896294938197765741012049145372312715708167249868615242139199595568492668370267697091985142556065479230377843038065459264247653221607971996605578540624513347366044565258409929093868900281401299330106030980986235113337348010042693596204714534753165005302536861436910666235921945175098620256803904474323818736376308461922960720720997075233344340601688909725524623559571493233883939986314552506719644432299545031852039944096282761398529212474655076015797113076547679063295182163337799428054854853553335864963648456544393927265534695050661674593957596504066346973977549358067072344657888997405216733877224027322616945799240713864303966482243009872700054954919162886514909831519763869346491291150747323312975148098299014916497313724632549148431572916442155233918393016109607060858928458035845565744027519032333665747135065406437698905509344734506557288276563756948443927929853200580158080732459905555190784868783786160152572017220059854878382570740952137471193100752159217018654058724798734000511876781715000179561493749635574713755012926626890234009018376477618094713018428196592763740171647437455418768776833521749330519152375739111387952861432964580389074754488445305156536482844875099027624548865016356695972465928670797578361538125198237820640640845161554137817746774041891771023573483198101444829558245762514134977293191668451999005738282466339102614790235921912172246168919216792903364811339938887024082885825112859999752211899481229964497899011885146310691394400610080540304952673336881960918223950915443456218453340478269656771689043740703012618890618960301156655138042144979338304829636666472266465761985872375422025854600784379024631549889528672511090196812181507758373611738916393264077320048370726538155084044671650724704027258738577261509821366148309447591561551024998883594487507498012383034695310534677531702299591462629873978981723911947307944466060030903778429631821539821340008582228992102814974295189732515782534696651710572727249142720403298833241350872475025326346445312510359511584540514436738469152933976043547767981834500075452413243889195493439989503859689974873869384421383539489271000989251756970669378104564948927795260515246286875885506067295769869931364388166166528146767946886110065093973982904682634681227595063291553243940240757753649629683188341455318302616669908914355638174525094265677783431792550620711268965719814902273310741266162152218317798901123088628812154963820061048479279275551215257439861695587562842616447951036468101384792936457461251076411191605690258558215883207571632988628284898582194977304792706504312110232609751934721139635837902047150086810006808620398144581061031647172351434844022326845151547693783693442258582348907158439149514684190328038064415699557705158486686667874110283259123397714102673826387795456184526396729880104087499827926625529989147395259709048659438440358490997328261388747224175557705580137832377541819084196563723058869833653154524092913211021848954355676492876899353591793404313375312750496212130904932698121687633573302490499822095628100722861361336212431701434379156791547713090194903359041408506396798363033116262891690767349506487589303200935810162885598459698549877447445264552491576507929280382787111451178918492253149258314843309287592898471786351533672794814744602412016210629216701871081144965005462981661645454498812061332564806192628917948390245540840969626708033657605207437864770471075500553587827356411995841348198161349790128766858783249583935699571538096658850028508868830303371187564127053120313175817367874584126632278246415878581115745068606498109970408469645522640063159238044461104432430695448762432741164507687921134353191785747402789559275735687608264199816549250385984314194754306801901362590652303979453263714376974686225482313445585855723069281577288791162380748674784234715775047808968521576397746021471586555210199411136654580810680621692674862525627338775824963989704145807235760208518947505851851802157659899476375818769853144891676967307748533863628575442177015273072949359714767226182776555511680594949924780357884899968262355302876132349967681705558312771702924134083772725765200405447294909884264927290483306985948222999086077579138999257723477352372314616097014301150635328685769827314146881149128398865125020430374814343215765865920311070166130560419828602137612122635194041107162088987930623037699426942738329361554228426006542868611171525869370034752037364349687179364837573122952135405828519078148752030300121668967648916508196164934519579613435336589257474480757784616255888160728066745281434546106878129127522603018529170592140775125564418728800940321076372677702331075366176924109233079952747088993583445028246565314827854438114551426546394366912812577219355567824971044002769566620958460346593908409569816164238154306687176885521487601422825143026152867600928188934064912494839653598524714531588798537629204359856637297752290092866697246160051533857531906891997557532944302153660870779748174019951125070824881560223938388385484907881477816989113856444969963155332850187964824008799483906733535871278578738889610737960065676324605865605515276703024221595578636414549636152646848511819702879817059618899203244038021028198402449370148427684972301182199395510282852165944984518278112332768373079138425519364158905172090360041630834555408217359170552210950119966278292009692488655819105780405535531594764575908912513005699780271551011396384600737475873522009565324791293259214711460713637822734993639072335300423481102073812450543264502328119115090028752873584511990053244495387839870797230766387844679690436074256506257560098808110785385924619429214006551031962314267796986125364401924334670684172199877462186575777516593180931723696716104297893920384606638001373428304088053837532386155913591929944444852989385346490105972640533182974921380298189749052612477516850613988351245403526351818930378414740917655229026351841304743553892507903974623078662296274463843849364046210160497835074413628422686896629917072646500918437632400871319699014665376269884401323764154265257881528158068469940055724890858445714981549242088474284544760883033097761322120663516958838685104321446939178726735453648834803465882763882338120607362299803471156914636500709164457226937482480285342091625198182444300307799610301356280814476390259285654729834670081887058539323076219809101431270164006674740236658243075925522778262703043187946480643185169405808741888014591704621129517976610473801130142868456658203655537588889922545074142544326213742212493432338959560606228732997420725537107053837537006856700368504213659495646477980190173538528558229869877043582851202101766752776513301067717907499927497526199516200888628647081786098836562526258678734910488732224822488767320858559688263086072516269731617695091051731134397369979033818163032484786352140775175949946953614333970462951005437521419507040424267085487084727059223468776645514371036985880159115197693170265555381094611260787901668123444016632244598655371860441023688726626075428334362658634946888943207424398338235041654824492709260518142349300069661482420058667528345419390698591946720265774924092861776338894051269390368399452688021421604143779382628770098093592302865363182733936578909923608912025071850140805542534530226561874189120107798130514935810099520626522620676268895387072753950943123851834500767463360540140444871051949046717187256776255292066889500030290384018506554967206178802045432650904131313983600860998444203193970917231834310220324982572301442250654923874478579021051725896203544956801537248061274223218304067859258690275828550794447107303612475413173917013026467814795394206909886346273574959487027653598648109996871367517568649306326754982537458016197802376472530576488343716581664190497289367210303779002791650214835794362954074656514938227364928344654766438958658137583353514684235830348550926601456128691375480392927432041911604265598794162396640153694252595171936214977827482627810425574879439607136177804923583029557848348592916813977469028021321970377203969276039955853544444848568416248806845434290128390960817729100383247332825674131568668747246322565756460542956845781209849985062661817006551219844578564469466580823391159137138799817170197925108868055752471833557394797994812358349471299156682126802275642419639940292489299954978755561820095069136536972767928742507230293548505533096409315039083352201015812411625417796219410873614274490284712041918601097231349047502940381558654476755286341713389168438534833767910654747234162829559029217450982876098225429947918077673609397116252605309050433530962263542395277987461255197241773851941299010195069692346575946361433402219000130302616729317094796423537559603074069257606575077510083661001300667856648248544850607913476298225606230790545850486964421628886430932306802587293322006446150391693597409911095714549921640297114924402901959208051814781483198379204245021381276021022810642265460131120538323079894168746764098452600860011985381375979542504895628763099347577067521683341100695259660939561807522501219441851586556599957015399411431627463825922234994901265445669293336406789802964061431889765685843141121585173047733902540843159927031562312989520174878580336018407173815909960922621641987180035711833981259551862623620396989122050275337987287101362761795641659260861988025696644978980629192950128867165736857938598842456478646260487430605732082340602928908398098818999723713252083505964112381339305703027394061797053081621229709919873186019451969519874609198831302056738485702708825622077609121064529985140139000365126958569998755287388164712032785573128728206106165027471560937237732592822159836142854631175007433435092811174401006831691012909983008701294648160908837230258375799300378232065601229541921359310608508140566022245415286101605429287979220448291386675872504376666217438740381131816652859914190086197645927543485491195313095689300579656442173029764951929885829380321433335025594943835934095672854803826361915374560162679310668482587345049167220800547192229854581047145039560283242935625781214547404446929814324967461686435515887802788014289533330162703150638660278737163320437354170555491817604190811372670815097996569437197490814323668109944886435061230426358378401058221009919496169554724100344003896036906381576078123189249691030183290306143301048889520757454085373330371439686598219348341006753844136857906194565448264684471590681082725589393565962154876074180317128898168596790365763602151246477412612523553188037988847623393813578165749475807186514175003432760333390662594002506172299844339996395995689035788772032060227530883921332182317101348439195628969061993016020173938805329797982221891471808484405786937015864184037679265525255713254649627901776245172857156236929810636746875502640721238818599907105338365674927807386764002016613445466154961276614551021913634552410198557976830080125571160866249046723092281038382705705115598488765423828683725854281028385447976093745433827796993571464316051145206413760780975128299413680700753506968554029529257431819563437606895657410233717006003955756507518859475353809894562707719849348411119021754495604679142244582354581820412151038406740439829537044398583529972993527726275062433395219717790080882023302433420917520498200961134226951352139526129990599468186101799659616494628544136911375049618974672697495647057608250763295174112342151000419919455442341275173446354792013597063545239028759301269833279783229616479950805200200472511385537143319735458632082093699513685643723097428547865914411255423397304438504263315707680079509126708637430425498066134249153991817611584279364848822448101661195092677619336146371811677344539099736324526037013968379457061197233106392105709802408500176854973712845010403861476641776749057995753820648537078425305482790278177789105640767098610426330949235961380842973477201183696323155972215654480428130095863954563840022240568248960065702075140411933012617062308147341370364205552781244910653626582729678228371108735596354964913676596619844568029598803021543957979957426229121145219844827411247855727962766361583130310300181781047324609897335359495378581561311630861707337815580627256787034062207644935256823406751340287941822838544981629281205099914160367930691596913316821449451174018907108259616544823599963915005338853574896545606428979070985346043134661715979149125201269750645789422087466985931757069412827242688136197284744257122276855622462633775090609014886325990525133851400979521919801857317478017291424454513429039768796571217982555349606136187718787001786762947395462069356891236768512176945817797043838087645298710133570240933625382080973580021918787988444692091322686725898797980126628824172360187804402253749934290987019494417753701420328854435773410096926298249005195370118244114379574313765655480812552352788202406967462249554842683976696123518024710548797224253362084371948735138947260059308494376282433404500005882170037813281207113383996761124212339905783959618462644117972885315564442976551333822925701188904705689449776491203918128830249612234762144181797997743972664681318502594331816017252782680052797568638395836644076877890415913962539414957666985164322505181008344657677394512005250243569634362042728359851265357401622678020325690608650694089623829924207598978993802386391252114107474521170672584926179406822023773003876424828232244470064469602797843724331228994197546756038966625391664452926095089395995400366596881625907434415458823813645559037080466660729142170975812626907417440713459686017826830029558781263424230272961812009420253534749849916101525516068366415230967898311340714697686390545271188280023311852404675337470137102472093180740035417506347254936388833472068548082575609490573231175417049518668766029340450071698991848940129360851722348545591101408741790129320735218821244478150387709399118665152525255118811301713207649227728601483620786039967236857357669272676990150215692395156080084005012784428970036022144246766954945846669037268173656076911656183902248552005074585743631564138194581372869103112651546649476784160812090463762880871987575328714455664406175945338528632625179755539441741700166563347005846659269289343434820899219434820551940200312954315282656025123146690054250587627172981191222568014380357642943319253478839697974548217139099874191796233548749623141587970452496820775241715969747280136003279002624143808206959254197283561582219619193776721475765346962909056948117783098285219049047423071652472120883729672792258819802634835095084276679655402507302703722825420947154040823918904768098860219663042009871607459790651823754425045886647439139181919962981225719421655411629383035474550754407386714039886275518739845626313476257411458467724913691311524508763645392604927990658762077372491237379386554305688382215497218796971868756793664605376567553575301358622076507400234577401142256589330799956489042516994868914877518876680544152511222433427526365359675216057398864115736183488318351544303732439513430228529953386654341955696353711255642167186268244213632469924974242689226061298831478706811746744190768138522305969530966900205767114194822393805424327543948665756305886769404764013692423965610860708668661519149592098835401578410888986110718948705525449736050943286551458174772327625629879816363851464618371277700436337706450676254132739998833320206060282725420816923801919270604096813547533518373201014986473745270767093372536282192050611576751358676732338323635145232258116003958779569780208494691158654936197183984072681661476154727360176320819035179621101586990561073521206202877635552698267346934106813738738921043370449077328309174725934696138833686819421378840313801311248192854044114505220368120972823195766122322988754195814886660500754611154752883480531070533024839616281240739248142427708803701128195983862867318126361062705382730504614370325258679571071757301822096103834325054113573022342405376680583295328597735341501698910506972638893192584805069739155060178988879702363633835152811264530629367293239242167126931802678560744933644816993632018624903066134723378343323207719870064704534703125653359185241453064656102378145331681573729525231839375811597532102514821985221912436981149944778703456828229227169787769882851566558531433599325689244190152254453729298995224495043745683442280694878970971601354321799341899343454391111833817494658654815266514109966719633879845396872235250342023702714349332459456197997336483941536798507095882173560642753573327707663621083774629516928026478024569411776996657976928363515658813907396869523140186472992301971084089801451779178841286638107604987853540459406595799585733839245539170408617377130823790261992331122803497458912196766034107145568279829250175529103809823313744188181383482164167637614584127100113702884442917131270525903757250079248328928209251322862102816603310393147884753236984961735235777846297121002480623785131070244741819610925625095867961094147681349776126571223920091974871676524777897159094023791995041429521391726932162814830202709025130162353517390621620354433734444807742973291028281831987501186213864560430232260412203215151110621240975670666647732741868732901171604698228586375877576501863088851504306187531150179068784723198187837272261409328478133297760626083978312136380691446054453679983987039285163737276250080259701306477057919901511562218005237582344352560696544692073856190673007750450286261700690338346029121360183706347682953226509879482367861831598744599988061212525219151917371997929456301563708367904137090859816138206243506937077453062174869811788959250041003527984693301227323638374001832242375536641304833840978255953461539092897822904358802188014068815277685683649473999017674577252450516923517171862924765535665729590233166454109270116339125969464898926509788367701303244329248118809923341144063393664471500346584776337541242929660211267064936737739951363202727002960426673463194713047825893369708351699676984553001363068778609345259084154643901938711403744442989391899499978999166738112045978316280131256992903182231687485651171241236246526790476216282544443432486708072945315094519647332440842920026293684762833125202940365517118383661351045535804740576859091870102266621827470134869624539264912563717534742464982620106359942171169644688250745584442464630617645449163500641865111952646156969046648095371086352225725513292312774497331702424626558741741682636034368213292219266612821878905238190275967980100554593838749393702963024872094992700757966775588118752213817502996644795077028134691981176485614873295687820524554679922597262901402656583546616940321640807724360812462608025080912637493579082704300823779372402926191853742174224540880468193382650040406766057266891975799455462064095723386822261662244303843961744190561386945564404782061718038153357497066118915815226274034886202610774308074256798376347049114048291552663733060044851598248279429106981157850681154771859302678112319282478798683973645640319925651109726071738723881814135552286356915283091464238443085662020117472908403418715900344319551172603187696778924008306807586006220596473874552012206197200547269532966905157351682529797013493287679962072512069107400933780847520242227608085739278841941532576042795871255257761252010011903390731252529671005781724398618797774921225717794200166686123806292299083673948869494500867627758225516764649157151395663069375362018736566614659888009372831623795312706155980284593437878309873432875306804425602107447880023440051556723766384405408619036742750214839177508658382420900845050607171593717564833104561085189332715813689061660329097808884038111822984606343013810351212240113679289174929953531138588997998489808756680238044505703892084732220496086361017459359383356001400509016074078482630299963519065415666816230575375770516020522027966891787308689604042591434422354785179615420726805352452696148087419157544357409574920551771764515603535101200788357126717062604059094662436423700327201187542040522988538650938229839819969738313588422966481450749312995833078550167872442461603143731300985175583420821941246859918322652082283186598436435789033520697870479911338810561685236599224744952127591353297285611880455315539248449214005614225279449531048831517559250586290765792612113152489099889815008389484512511651548794976698476550934318374991363750394047071483419863971515497842022033978546558283354011298565350230151745937450726448201813487141833453835830647993424950553058148169780817881860312996306392992440174392404063673846474384118446281341455827051117191271441323110480157015965381379441532229678474207153893096385881462557940598128452418791401975394389973310571978525636958866622156620067726391104201010839480055507181326405311205317866448851698912986450974442015300862151021471414085554076108473523699481584745365609624665095127304007958784930191777348861376226485878675167974927299509527324693667647747223792300595487562120804247648491469647771392945857000968154688542848591029199214410604666505033074815534891778704080013854859617641938407665353377330743683932902603529721107297578589631900826027094786208074149561532114254843458910683664120096208846344982303208482920800731650469723975247540817196805249790360138353227211737034918445154011094384291035264949941583388258923015201411321773622011173717517631064847033126844748026093021823129172430133432648804778424921202931196853534495296878522532927009171336442918371313584649599443773278000874098495817683190422944831558120783534628137975380648219500628173149210825579693743030079711611238131902166856849024940943664082787863491158158650744438912046156664224751653211466824927932157457585940501023182352944817492310822578663659352163186081426160007583172569881076542896106854659372962221387416735431240964767463746397043346908236027860022019762263887141785841431205366418034134445589835220595019995399860308135211838598248046828314145377476035785170802572717948379841214207010224383582391314081407263131522111123860982160050169842172136258423496452963748529735890046241546460134444578834634579439927607872796399180612049790080630881874958164841448977370963508111239763211722270541442468712687428170412667766049240679989585345349957203115508389668792992765048070414038318150420916645150849894504084076510843512378960598968771107584211545135984841787068894499941128424179025186968717964615507982356421156066926101492479751776315966169004441088465802618712167378755535036814691433494609428767491966036587833105692021959801116763075637438329185981065475634891152716237406253263109647982636210588355024685669548671578022651870528222552771338179479474105500692708199098082090744634518370549022465474013087801737582398684698914532988255957841629716553807611456753367764513922727612978566324415802116753924361472018364167063159098344818376099278894020409655372854743947940876771661793043288676968844360376739340030053787794057917422281226779300304566722744222301475363442039827772839601010173559696148455955275872186554415553699553503448499093808726185074599127298177907418968500761403837923009703497500355682686382539853714534965946966265705670877984915422394112447505260591587427356617612463678911543270581511137910314468020702660943031036775814929066430842713910838559324198927283562332197202094326476654204957340716611156523746329713027018562144614106385408374345015070427450971512880471785756026977947826161073350935745963219189992213556294330896236374457489540043819114382946338147316689766509484723167002400080662988617636010432888860212476739152964670462547638499825362597218666636340778122314987440726414364535889299453609850553046902027604489160452394476543328204528733317799823438487975913826685291528126524663512680995111450909972638661866539345909462218470703550145402175776500650540640695244871621443776954324928440996453157313443975747015323410379567396709703593398105071481128452606019993530594175784063562876744712195477944679820910688951143617458635477220260999103107020747877056075084877379236619793506090712553037941407621522077998038691710753272929405890665958543423196930116359215514974183023159781095181388466756001741215376279613415302079752044790392229749666372391284132634481376953667970835763337276608347795338315144606463596667164093509474175975592804506610895429097874123614291565206438406576725473108890933966092033251686037218288293737668702961256555622524831015127466509071012842274037909011443669501999776814220534073700918823458398885763276225547241055225263696529605360451216906773295256950321645025027407265258659373233099585463448211148359372655463166849832098312819734194087790681687581949621250773248089881303609267156962839670658195131226178014938363773471246281627907483746186330621274451437342986510548891903694902234037838533331192279972966758674976053384641853064300705205793102534035293433522693042570044488852936064599694854015550878145245254540319894363305658630244743933601900565306464463658784958432649343075927844876578519204517872781068429529495301209235403067386387493680460669842632693045847675256085205607925230033452840105537947679605995453769230213800564892597716749055257660604474727167513486422500135099449010212076390830537524238727616087038166765124569147348006947353436538411450612638979538676194929974892987462611474266073903758115715468226289012467870441590994244992690937757886228847802906326462280730233061158891461206246134506780827360177887328207285042445371659224417891690934374934387515782797559570795603209107376771752168609573458480442597921282405698120133167732260064388084083521356113416023797517144559270127464787548432219345065788335765978986168907852826244814175540502771629901522351846337548337282996097287918817525091824429448345969952390115712290199523068096199930701125130601413777680451279266515368853854485256559389767048620801124221861520424184470445463306166820999774379724629405844972451996063039143784475752677199150687466291120408671171545889496843800192479888298734060833964381225330370256102144078811272059657541330713602142517048620321376640159674142430889079070294993610385620015822351879554813146600644862719652569298653064150458385367334649883878813110023802334943920855942309957239967865500735931088400064600497140599999826453287928275014482331266755136051820204940097429569350920738933575196511879645593090383238851173756951127199191388513263654599835250569189299350179890087429153761904554353758862632140672966817258505286425912335659290663218107148524257976360882301840092510859086633554102546282100783050401978957330169835344072953750636287983596545302977603272252628557548990811171651529044176069530705383432524162724237395599304259925414374863156242123027153928703965580155479334159648350503304512346328530444908742546471581690456142700071537603805864094910455186824158875262735972894255046640166806553598204558885427685080208224794191491778956611227375948638922389530502151904540910178847924840883131706339450459534261383012842578343542547821923018531537678643575468238230189126676552966235264142231011192527298510251989674697344066998365215906184101462846497148463138088620145775549749669280502657549952039405365354496306676858690386456067456078072179461093863814042157604842431907259014779600941008095407133161105641048695502997018809637282523101124061496531884346981361333600986897894949992711540277639373600231751915558394098514323865111075590010525880870345099313607324663781333614779550238505959683650319130931610517772351625318495925663852845734527600902394757691966797104557135028054276156016141643362639204208840130114208127842648959057291130692298037118080558687462961851982887544169603644323631585261081864506017841265163999959267118928436786425898718880683944576303214971598080048267749365795570660878214672423665462147171306054993085185306973150733907140158314341564431755022258213458720596772689132303151691264536197204488095022665504998996235791785985267158547174102979497345692787138413502983855924484802137509344577936859030633173243156143264462148081908316196733395782529389528269830789835576491388956696822683893527084335856537988692894846926637978324786806808536680908335136616564868474046429560137646552958834361190158227246265119570353513232660107473671772191880378509248957849479988294811273196842002507129674873786432823215606508193291354434982577217647837970071421233750650650333722646206728798878853657141753700757288079807833534523621833444274897926742542885251708264765735517092965756798820083962295203207386381417621498613407762885052264170229586798779687683456446304125046801011652056111792792074681705777204950118997488427179989819481273010940540925765609412405892007009334825750552622752417620443071181790306290042194391494379433246306816708914065333687283706087052874252060171213085000426188418598287320558527318864106881426654047226330727619052473939607583178697653565549730809491048468727927576055508338491092269808186119163305156550513607703962326818365766156434580367242152482040607109253209687142218983168376254768304021968883757883301130969302783540476440342634238155892094048694764497149886811455239742293557870240345768029079470836906655320781705443594905259988999335116933184848512388395348152188160211854435158997839072582766631972085394539465715990257188349508632168565315350743916105744219096709376975231485590130093914337465442327306846455297275707997136129271038251239152639312917171988517543386547655692411683729583961054183046991411887386384765286312507807881465408893122518245217089668439278775116943161445076850203285019953273531311182884262863493037671058214344973130439897664667228047024640055426993787988688249927100423832255120655925714213133449768895084395045945977247644551128811476808684004789156670962869087274920677570792653762350882333909362379304306100606078664034502725920389910680518441802319595935605608853793878828828925809326343376483359740718917326342182145361143921062022200692229571149297157522856028083851808001877854480468789617689644481369386570249733667859250632115236809530174016825650067609994136751868392347959459404501191554079988785532743143120272490927363253642382754422683326287796637180576735217479535540503853456291351713141301488096436661827773395454086431249198734859092675867430958496381844013321116776859533728934286869464213475962968522806526273926370764313627931869812743328328458077231804695392684734770495653674524577793858553821491183735702976013697058417946016980679102714220973278586000635636892843135523933707186476893219552346160507772354299455598486348608045888473847496073266840736681023613504003047971136600615909842515432351181866426004875989533795463908229649196784438224882368448000987429559195336050925297279822240762884304686411075704706566096902946162070781015287939902536803635909219930797158381578211153925791862105956795032033819764514983762019964511481596774949631501536294568138050757856626474876006164721634268291850226838966213498241136881579722644993214091498099429518481422934567613886429137309764661745721104779679602345480778540420091968677710105688149959465642192823383647479269502661187981069150911833488172845513953588286773343027961756460844875230701052741506296027314085468875083735597900270652391608559013684779340642792547556082722531604840591248614154556398119492618002888093835517530585929072915885394712095909764572506367743106984694870023341605719008169895566224726949666832466321743196503048020460009314482417365585871540702788793506484596513102609044028903210141586119113074424495858609615651038665965061269531994907751216260810191975774209107846123286949455785882653044324679616550646272367776773122600277340872067603152352041590239840549318901357405157516368824484236520356399330136510511792337707397858161667595661287248377140034401628495359897234948083877467470144913444837642617215409781152097330198140176203613640356680850351142209228772890694243721504730158401029662526335014316362716850933721185101556831109341607755663623829224336295746760157471065176454341717665555598078112726508889445042830614319871168344075583091440500952545939224098596399547960676578640709961330910288518676615684858834492712891103144315473729306228354604575126364257783369055800554206016727817159408915610162846238047927660855186409881388624524328820191092242554507980250801164228512675902030312424286108574894320006923404768672690817690981909301244483255162688995384190839505563719657480308850383636864602933134528299007582795522674081225666876629421548645659242104295101909844871191560947258421984216027116412269021054327774130374673123228568631079238221544563645278183110977789218829209645727995314638923280140436200973279127611990582093029762931759062383988502967426514448282735827011574942364354106331783013985828965903800704635463407810168378615111685169393459614775091595408937115340215472944153800381818555651251828448346060255699385271872508567108358352791134396864729052513536358548443456717254405793623928785808081778892191266708571111200020913587564219549745042519364662098340509221606682203696741403422003975338377205767108442791806585790095457204571077234202762392661167065737208311439779497722207722737859148812553469869932538965995715247293091638356009708379127182825669882294879006734769561748812716593019352538498414970105091837545160349783360054464694829104623754215621395136547295437629240852113386998717814770661761075766443566958662052195660372734472488065262366638413463748775530057669166073641748179644701455557676524426852571446572198039694995360541772952155150207826207908104626065198981232751237058248318447159502908293440583629973641726032589294990161084982317159701040749354598150564299218798973471051679967071592156022387826788174507741270130734004140898118023098121252919662639605108296193718942908743273169676156679601713051954373222032374089078446087811895756013623287287076293600067004564514962331825090855960758558927488128648219045714587228216138287775969039308034989216449993096714992612385595028483801703169907094545419402929944901905899588332738444491801908731957343386870994410021043844726409208987889656450326834038786107080964196426100674521256446215626733144424677834741326444899126348274218648248286042648648007144670927356499524632050062046154435929762553853068389425820263345705675483252903229233430761044835885663606052204756134311228812780013656770676302599711245512860165326198795504656731460781645405245417328281385766996502786566377271315374485533782158848802924058828161842983496599610507164401374913281868238699908264841111041279955923341216733516316349917176209214808074156056778589605540252820058213896552129265976543595475919638496284787155697803335223560209712348942248738297757677118719851981097990791261477942901332210900531898644946194712797055573020716345421272360938901966268682357993990502991673203233445792846554108807475307675875014617843007672715251343864840211268107338929657436145187848465254035574093813402740958630173633463331696429056518547354417791254786579430550090378947304412034341848338389855227651570010441075914465408406811726947497862587840247348209817966368710604865620303643289302074214231536054924667170008570002484387507192558944666238944209997726420816211500476140112387117446997213774811382642662075122777110366488729613444161268083540665882990053405854254214970687171103883164670744059705711753466395589494114893349489407248394227947199497692494060729559013376904290473136571542293734706664169865585240645016960816208473726703535746209504318833247054754376351914774558408522151611666593191310835728418627121746739496231060914235105914382179753534435625360772453155264048939928300147476509908942115919884835654493204970599149703626938947934467942689866436601784410767433604234555441525127962595671151845172879524751967873890830246130752304826156592606113127668138823455238706955356751139807609935240348459533060062574723244423389833665961460193129463465943438898726896436807906706986326776332518811577056209687268865303752892857475878108290034100513545332051357289416946279513411600872346759793618296299499227139685192193117884248924694350442103008703837347891316726471941503330212500705227891482387372581911138137028640371228938108511386762712590634810902630772308096794276367380794880471708530444062520289016963388442982023377498099580396600913537226728191302749153564187101418872477039427413542850210277672266122377582152312355932016993632163203612502560623884335649983567641951428551154934163373789038244796137001815878317853173117686565661692722324529777245749418004258278187417294907042366009965597906796096574215600232413900325208970567824037602445650185680409865876149843047446894524593228114265590019861554632267480367189081466596157057865077953461840216059956136727377985043291852320724407671353260018897983041331847437473630283489969832579335430058174717558342770985706212553431568794069741805178932330431699519830218070211323534778406649703330454989932283146685221132570908108809843259742419102626963402658037317684479487783244707220078373070416698615382925871265086380699642311002556114497077916175318633477853708434075267544447170851649323639417969929970298767444183715278107609996907558019077607751356483017484320722062639892354696355791264265218323213720130013954175268908666455279652362987338670030185110765247399254864330284978261684969036351706430003268582010014452000227129580774265736403101142411851557073860073207672417275284440185644396923153860664706157482196430900178450348177731602393554928169690344648998979607453300495376841330967076874404931005108565043817931467859052455884108980239553584985032086335285150511986386870129619750216688124820558122301476074165858918567557496971352773651310527261420950841165045384001339560376781269643477405519432930078995407669335497699754090656214918070203418897880973053023619466482839770019517001131251160026129963820611809078327570557188241033709518076043466753662124604973333526181514320235901582238039362416727490174716187852600755462657095540908089623184239201015858677101062547434184179359661551157667236890223188141789994110998115742506744103704655794339390364772804474560586245508180840676618822186856386532488740544833176791249128803267145779426484809848034779520673063378796542400161167033199389625682101082775201466525145466310076105545586362512065487017303299234546536751058789090660938447823528828548324213139929004222594034008891438609186227501357467718645156339473640068918129365399046475153844366166434954789604622536338404638774138578741791328681904233914608091492692676950828301571186874431977881113631196684468165222792608988078706492788741935550619060349002970512904818902158029788612771424847440762675138095143884674054032576302445142617403463733585798677213763823343556807480478049920661356511419520988779422348833651598400064466125895477028890642746393197319998024124117237538849168170497166590144072202000842000846321345064358922233875652480944840359380287959921184259925387045631219030725155678473089969995041878859774697740764204521008964010358080018824544735229398108629460666640128260215324924561257105358157667483794329402575276638630890056389333313066739789776396001681366255836062075878880929270340204145945932364044091852830813152717749630326553764213889355308280554907951168552638499008811938277975765081381838116472425152344296905389432384543431116960234527400588709156856601113081692345239112273254413387126007579215903109102630243568885620631367471874842330388869420374546167559159067564369915501289648320993223969451290548497132706447710891731952409835973693822731231425070269984607095752112218879614152566201845212825253109823134823131121666701297525210561609859583186595987384835206972662252001441603924757204144336960223134655782103237015132454228526371592025190926956854366235309152519893856145030958383036846489506654383845582106325911441789529183835322430744399955961464822485243223470290800040545081513748796807892691907227334860568898990607231563816758918923573542900758837392072028325760070840223289470163574940947552451088418364349850828449587089426117179997081002746708711294688743665304394409476753967896396038787366076881543204777390856340584482881174833680134613935229351916314832013222754229609559556211681463268322281522663188259320217433546403137441908014943270860593651832278514444289081748514260620973908880889839067578305842117250556400011848359853316704557359897163326429924020268667992690075601588681159235129219290831073066359012187365224098391671287856227622196452132545915869480147289027498658402619440130642647656256144032007542635891732677816726670178772585925516641024470953975104976025453670892019828062181980838722656085996829096798101334270576532513875131087208677141306616676766481142238690620941984966861136056141774597305321427815817889753051811412856638740477616539347442918813691288258702069442646527696449475691845575044699256879059757929000535654450715732184026413712617079820067991291223510208023029146758208684275503800939779283064071462877608420058619503632002888283272038332407561602482135850175354948376726813899853134990797379569130784770242446374075892485607830650455965220952803493311309010040448521395754688755808316623025429208611304494314216527408863302807584871022888846563763138211887306276917075201654574790265934032549208088349934531088395963816759712387906963716923263600187047465764693999783650422621814491485103871342949191541683462230832366988875141744107858268731826290783652578624614855480780427172642194572424213017051312557403838024921336507457759701068819585092112075944498025516872612468161618828700478295673944231839696601810307858439671533450063484038238178415838403015714730760305580240218924061277767664896504878108155292672895847991037869333742307571913429123677201522282972846611268174755581547894385741218714574242368510631688076785260735496640425303340316243321117482102207058873349980636560673309166299337849670820073051691537422698844250775666991919845122324143852729264796014251029460669970687907722717457930140994724366369184176561764074202088923311607435486196160823754644179463765604664388575926467292874365311515875601667835877132794033012079551230148822677690062851304577575553360758747906433346846216560313816650332472816033550247590311257663837256685765175479069964033865403802844201775409488511739945228515209981538911223808565672520400095306816922540262212069136252234239975533782071569499834101407848904426742767399256974375101059534410822662884129531350875746795740912657714331155628773426027501493347408822430326176093146791189430243158132818555426954993288103093325576163004402516151853660457888192911748341882813465102309775717757330291082516455921954187524752403750079829077772339791622166231706524352823902227317549902722662700505705643871607182695276281199634836662876238714611303312375052916439688472265702976890040589040684491726653210798559841890768824748447248712344858362750226974640164083568332161230780490513703278697178595866802873631578429950758945488899107542904502880490618327719005423286369087781350082745235330844157866367837217818172142882983947763487355108354096506772579403178995898556886213449971228655894456503748191267430468215992368724711908115147076198706335096104773687815267169995907679138124227012144443921956272834705771645632297710347834744252840717800666392475978115486816769314613767042902932441473952772017177667253807265662047913419340607553893294879300512137480744031048180817445971823187562636730158399644941488243977675233210117718793995281695728700572536221419301658982219786925407360544935851058995507623074546136275652167445550233251344393201553629182055050243319875987712161092709064791735808230584969723054555603840095374732178469987912403891317825262075530934107083432465494871227279524321290314046840151181328467604004368600557095700568006432370211978057527929159770380381732207243001959178671729037599459085263829509627378553955238629133087299985025691024574983189739053836343558479543024812507161121608921243616717876503626663557156613554464949557762727727219622661168129593173175533542092990190597159963981354548008016707543244936582994089097610306178073981516323520531891474797210055383125770702788946162850029968253625759313259595916516264276110311886575159280972728214690720584556669801899445732325384013863503910832683653899755793862540736235799345493777790357324604603084644367503461298740808858409619666817006871292757338770631979343906313025641643735899578001654900938461104057438314250312869661070525108999037625446045084133302056142653128590600174389664934805830043150600708752336492358038020392490959530730036499285700715510508031511694272944086453829498458643704510703337717756531846183165227835249710811533036226275129753236780959009206846703065654824701615411902304061585588965029037728246370755918092452680278430742020098630746812362063561836604994003498893317640941195704046825085770039788551219252376966059425100710443917790091551870351559758637081592310589681968971285434905431632398917753631432533864265853879522829427329031950962565097706354474012209066282313616118675332658625750855255801627400335678900105744101534727358475290658427088320475022033997291674611174422820830989738890862484947820104515325497586644461546383313708825497044299713623158878795044475024234060150091081223612801538288231294280607344163663651190342493168183679292655665633746689619850741006970972738641314210084874717805397744204116441277120473024331162845283304584681040890385127117477661369111057378666595205986524049397403540224124334968998595099557545584996857561947465801125031738063842573937468738667479213087506563327860758143832332927184123391118203686263524105194638960422912781676904068315071557794247389997837334209305054794463637853700110446912352625645297009306442380357942117001834570728636979470227104678030574039049069757648874897508808435686391557089661302283869804928111219795777648766330231219963034614433908040687939017777230304926992050005975672503901859611347082630348668489925472717890614770139229479878725698887498345893305453423397431902053920481279308326546187469519577894732117871591288958717541135104660697164755422280308755714797746706112855274971431774522123702824153724255072338898493358049611277468890844144650440117218802818274396521490345807271109999143131372392289946204736412220875561066567919034487473155501321828374017314975692117373407796900273142625299771975593268511120640867074452646310925433317192645805744615619313826644021576080648037370654275395877967510698005558011842956574799240459859003013944183442380516271467730595240251268935589260457982945873111817910852547325831724242056714933540377932272555544841621717625905454964748007947891026280229176404312236772199411318121795440778764167089148119043642065540568723332305840912927943054196866967064115829945592804948692919841938542951266306593407913193085563866735766700112781813341201971906077966245758534169089661615733770284218073606869522470665754730890726820809851786884455727059226423173139406061011900107088856165597268090146905450961346757167801778044321681792750862060709280769060636280568669806119968813411174051697666485110985564644852080242812311082353956555519938013079990756088216621228061503705014857533236976438876749835767534060425197569147915986853777475147061234844660614767285166570198941264944976055484853872501317755857358172724674258542630902013408160326601809930520164775239099056677485940843652505920264103088709507550742376767573629185202578110194625153703895700469227151165488522611809634112381850229406732250405735527586958089943647380537632510878509066351010671162513915423155378935922855269461063310193906096342685598432610222024698541079451129653242651867390232274777128147577500166512970545411940453039779418778839412034779845293901200763898161262543618626988664324342939883211499235046701546373452200151780556234204699548611732782272532708383113224737335331482091248942794306321490589190841592421781806986279043474903719354013450332428204088326987407497231328685766325069105595019660330482601162277120368797461721027601333844082726445324273962671739093781255113859096697996365946954267792688204313120593125899237707251942106126172042508974611851996355494043905149303146319148917236498951260789806593752682537893888959291973966585350497458798896011068792850972280283142802794294090961373014073262957866319098879050546988738964053409372644814945272508763856562307652465014404416342653017640794542844565021774196302535515889337872407117208966805263388723430941710543989488642474291656741423753542310145992424358692290135712067156132048757022708372723681427416140495103219776308045273908428207945552559351901710414878331912178587757992207177058158377638907634422699710571658060773232514863136507291198396029511156465009907123814122682647278784852371807338458506212948725050853440013210877927047930817292743015523476180954125720232642392082066710052410702570050821279303002526527418218031466052319729228002124384106564110244096290733531453639220018254179249544966176275178884785325328384223652081438095278211941389738917254555185335278022100377066113033108332911893150676450020464358058112056354164791201220998592495153610581087137551558627674445527311664718043522231373692223577552372806851779457461836060980953814480429781560240382280595505938937048061785532291637428148046632506112651406126791760981591759864510170913398805286311043809398590039124892703998523333884674284512473314461354404477919061784544833138604313248102978798983409334204666050670866410560189304652070282358609025227124962446112578668856409399091034387418055873770911569368776050068022474941096272308618052759510580784380901998138999240432292510005252935323143066941966206649383149913594890162981278296548623861813538156289145499294977472964103536472910345398114285252590877330949914420620250523438561985825884918121235068406768699096761610082271280624339538113002246514410113655006399261702413317932576499462377885582665593289190406671394883705239400222750387420592360996440265432766544706950590897412407439789496188755208966010157704494240007671331819255728683090357909996001411147079679026464248778352756838247933650064875592935190534426017194155543654137287306942154424829225621209402526580940631210974391735069173301170839396902702991419745444935121130484513640583170688682436331368575171051495229711868400759659949726312528713911417946047242070982098847754441124944925398625790651935506407671547083304747409785123827917701753242798802763461877002148634501952662936461917528687050798627212593060648425799909119556186554011078294653414683604227601456887747488101772886301361359112757076680694248192314221025763143486993257528801840473270048991848876356640835640014363150841080200718279997666237707695934466375251111766665333037719694299329159685886887496505744535618147838445977398650761305391130081666959472937310325430428541310363159800549397592154782226465297871994939397532764414180385393533446434236177600473173981325354934970189074678691315851160261922131357745549289026072759087323645902349268356708159291057969787825249808032886643616358831557770119832444012891184335280125062540330543868689682194527270751712522819487376048263536735418805448611223106590559515770242370099815105312810800874702933863205970115769045421643014450181020258766765668045699168178227044800835451715384504669011045938322448767237292400177451658812201089931963187202924656354655326306414615411535394367391493767890622989131736224300074987226158417873792789553575596226323875957273852704501403444215161168667158903330161255405336479720400338120626906299566789084246609552549736583866578554964849821520620044371667758081035792842862603992715619683201742321388273656090492492575763650721846434272563640111988600310741518745596104304386607610390265193492894207322648727633780869599714237058206244865264893999474146978939472399355565297862621351835709837541973154735795522884883716067656696452496324112641963609159987425451395866121883682309227756391406637551734679810437255857105653769930222735209848299244997419802453318072879412263117618563910738446475115215469442264168313159369793845886744787390534234101940168531348487445427619391262917233647105979436864854480365954372488133902797467467321504874566141223634305197723979497969754448579425107073706736477125022568217288676630558761461524272893079503710355823297233848786699056733115698622870211417502865227520711664692498009928468366988114515772170847711953677469457369768671732965294433272538858859175718226440510581827479128709714303070474459004028773880905405771213884731161837000993357867203594197000252304981782532716065569508628849258460654426751601173684064536382100351225443514567718112081275608902921134275070598229263685022656054736024839451641405099962578226591064315687334018960144425184082405780722922899771025112139229240832457544957864674435349402357155448802180833583097132266360241834770849529231681401559272540755028525854247370399309972183098024396277633774923544766481934542010797275600306851688397881232959639378802756495212227827949251507911530711243540526970957561699840069144101598205393773027592121063608131415747143289361587968844635344766768713407707529328772882528488298532562949654524520697815182514863638130222545136358994129534971572863337406872006384922584308139870630896621316984350899127270908983402438079626594719620817336407477195319464871015631279988359161179198689004577398460188891644547276439937959291825244200260833199090458636995014013408174599479572135949382530816813943946992105941954993524029008913231268991641717554906022546841269060976770387562043198651248197477860901778149403634215949420832578707260878505137944370982515909881694388230616353337157956567708327848247975730038817282129939917251871249816629264167011088411788071186290900773475822565946087985622210477232175589789081583852075023635504634848188529479626478048418051637635039099934003650364878938236586306691497655623438209252113336200282176314639736264062674282801063241050021509232934795636946895575513725888960323802704913990378083833586982599611868227531277108508623642845104730417836890119411976661322665378787191456485171840232807332733428327847673779808825590048151784326679375401823303425306902901635337317590755602109038050848579128797227454191530287939622935535840336795333219975132914053141469743330913104639508408421539000906887877414954300236897576135710020426531635402305223316298442297447446300671624673724929622012535603306989912660326577604372119744414146095646982114086647482050137133475322852865325642831273368024328449089799275362648834532022749355102560769036403951333971806977174946925188416257322686724972827009699026782590712827551550541901650722339290923885821670065854256306955078743996227878135668717064131505946967374589273713766807212940858654106185185188571770453891067689102324639343594681335859376438578626097260687511653103688352729888343396842135415857823817807875337924412875250515988478436106017796151785648073121429884219444448059699807129356400405975238196188570177116319159674331428870726942637564916300597933244241409124660307790879971813587845994077582433838077433446475994497949552780040815049441239781043763837137293133935365307899349971503604248555906375468761503942480891135211142860581936962512951808285589409239399406704419588915504529973837266918822572430729564342569927782922074404465959332579477592431587331720146537027785040732042618641359792333063916994265931253410154255835165911295454983741197119703734840630770336980454355954976635741697217722007439366068570764198309231822775739888984295574330246412225111202313000894843446744266824176335914024642143491795978965529615390640671357183258347091828078553090654506007899851289340616197322233331973471219279312351759052616370603245584161484533093232805359373404909129226260190902582016060784859593208655296440724017950505861598341942705559049096166080652266140127462214193348594349491307391522541483582108738549040253012474377587473417383578690117891503409572555677838338224460743639184513303202830905761756480524322075150223411567930667084511254743507592671480890845787394360723546274874331830801129829661743318575996801869611033508249952539892763636583436923050205851889793495599474857145013977696243027962851846093572580646132322314227723822104029314436899198472387289563742188706123426713577905470689651015073165964614689401522079457923262086683195953245133485749004880458522357429935578836094057455627792969650794048150580106835566121382509773585718882091262142953717591680274119658406898878045838279155281592261766022263331288945378148907449990555261856783344226169937315645206183905732253944085764948424518454364851089079764904147095039701532732821655275405149720818668829242791497042134124111747681952700062261034006044368871921486712060951527982719357590610040082640915223308806237997511407093658229076015005067757458364337433513229076996954758201585488835756092989096298392562858222353090438673301146630433283583779905560521274949617535609804197948627368145165076224785884630646323846441679299104063376298152435235083657850072229960207283079529150127794849172968543396028486363943086536972099849457279889029794015523921057198295314493129362759378438940082897076148171815451320734769215132411887751296565482730380983926733945546775154265592457726562074903216953788330409815575930746717945600819284437942518844010548325067278659783956716625551850950490032522726074230979972526271941849076313463376037556962653092196388372465096989266994287744165958980530783143883099769789110102288205601428706439141242065896121470006960085560334598008632620917195686180565345504785760425773160325464980247410898917750590883225822768310801542046482280370018373003109006416124546707708894134390130341765153238607569767517418609885304576750623602876100352848221839887905809235693113623235068490422719082642199514517468090849928390487998000592704623852776744488283196778508704221763916962376941968570786178739433392138818356947010591482625773102563098124547956772711411707614609425646020878607111030542567444682522672456089703320409339702315590890662711577238509380839668727230989906178457654651646954840364557162455590417071240512763322301932028492979328581254555866882806772404452717192459606672138151673688638466672458155730472586941157956420543252276741570619877835334954651492717753347540340527767589284490544601373591895471063330793053849639637181694606076407352101775488473427606457832292315729671714098225736596370311462282233416760564419866546078693659234295908961028771082774596073162485933106577207002416049340361623312949142199870387293421390959766266084065424455694758150994412576253201983468352274933512743569588466535137605331036759763792957586048621555222467824834481988378135163530782728933621432981787404154371620029465458915572950127487456369776981313475002851884174285225653386008295464825810000777686394433056966918283446351175009813508775556141545829336758238618676433419993175045957537717800169730723481735227630293466780285344341850073325094874375917496404600503736891393454598228533847597749983644938979956406684923174909662786533385183974067457481930288001321752393630792755620908114356071884080253440272912645872867957081469962214468992662888317233688269650376593271557301255867014736807338068160005468783302987309428066655188888092540328392587616673020106414621440013380592124216826913279296040093910897143056999560052661340336292281831663836704026615109526004467891605512193399922796646480779918185824272805594388447864706325880783603548855869365978479743997900451077171686820211862751912458187498956880152365166078242450916059927598275654629212514276756652370922199406563320317537855088450227538601721024794022944915880538651876415990554938124974678566112756479535279492349761185952221440829671848122568807412203025027378909790007378518158762486415177007830161876440573959923883900105760662481731693437722629838595847140397259476316940179327957897998252985748583389841353536073067146245754694454990662770984643822247366196183617168931499847140443952365392560637612863292858353796594983724727574081214763763510557159511580584405452562080755537808717941350060203824236659641205362175569309066305904735350321288202648255815006325260582111312290678721003706959455271263163648338421870077622280089821865385106092920191306672053875663086895558862313956866142504846948457040348430185029066143538460053814757677505309431569916823295718957723088092906799825861807180293135773076479394108230506267950551739918675869718913614472771587271614545133909017973085704091209434899588952067003556546211289782153245964316000715628730956577078026108633219337629591690131003905469369282194561340083240712306071155800492474834049575707757536433996383357701778812876906778731752476811042230457430252192996197402411988732512035005462031512808790204393596171957737815083455276957649403496153792442727927938651334888968793801992954484384085101260174834724190978439870354308750818216144306140525135036240470623551106446866105811242792940752100500658498539262740249899228295658540392371923488434520599878949174757473427363226761474023819806890294522407394668900576282113980446877123840597972384918173255132552283712308487310953663395940469237077976163514379366369631511978311725141939577371921135946252225825159704035288725599792845375635739924863122253292625340611281309945387639421692219678078038632662082515516435993544379023101505538332642146989000145244397489897101345715243584844220196290428408708600946791653069436779867513655635669276758237580066188296335473755433282718335064925943816568233246513395545925603579749475249265885997033394174087411258149211033073348537306366638781233104944748677083776992678328423445274774199427460039480517231263309939290071801164565034219525965921431654530216983291012375791069463273094425231533890671256281433700463370725292268764850636881021855819008188101616456699399338514052011592667897155339715321051521526406618012633975458683109447347217785855580579022511474149513877785589429282543164824306210005221216447331089807592902331022483141998510274356356514981599856986589766484552145635408235702995352321027093782266242523661998882542738384989818243812358161513439888110468500968117560953686229250386684505845074196747120511512107954228864880458080792832620762565045356833494885104590581893395065682182111144816464357077758159288373311352465318949975483480809794167665577200380864651959397612157667633524037047988646159624873475117051004725644584434411019947935755208467066490706699393476170210025688477800885920468691323659582153975538488939161211699544441905778898462193189389925053628097428139826480301567175783699524111854910631188388645847861367438270071210315892190628726988123845851508577042805360239921565594107850954163063607026874110789687316253105758814876461361107035060574171547396592390722117335712788957795167716173847709891797871595358559521191912552045592291811837427993028171478532384140852524720176512134820959611391905976197953098094623494016608434109785359818155354998994306180344631478196716388262623349282326479561386677992565619979497756882905859528516935358030280763251142011024040664591170697319026969069592688563557844365104391978196296925586883660809891084406626740975922023728521896436510553616165963860509837927251479559142224939487215334300884923145259570754110395448579743019923443189974628673998522207087310942573064867952854020602512287794591116167053039424487894511234117262696188860382476092150043044497239167276093250692342645292467113904417883971369529599039009954800585454120217049761859570833949004412245347120806929490746129810020255799472605697606267773531113181162213775913788887508979658816555074799076116837501055194655580354479786309477781556192604177683720270784541766583609043337193032167968186063288910739878003796970247034710171783750133105676083384559695447553936495291759713448371894140479489583819627661329626967592002161038065678373858455805902305003720643359112407585091324993215863879999776874397333441912234221091633581614255790306844041500524472907321466325630860717763510394347841448686807839999107021319901990894951284094086493647321743950131909396492020835569519580670649420899393780009671807225430425851371267046829889598417130423333979633502024414551377157778953762323600455393080375101362371768741987032885814314172143157754813201314530163718857335239766959874059699739520340747291570672653356037566367438795600104378739932589892834897248656023973538573960384213972918346236331280956708935806253659059612038751450813358005962195220283465953397770682446188579700234172571133034948726688855830134611439369424572960085212427240857273014312515386771152265642168303890294857845730519269332793397435967672708143062765820235354524039967988215968758959784808446757961845667950792468683404687123876993404494806306872648973550294731517612560028079967470687609301611305432597829768186865872437534351086864356330972710261224420323403398954840606055119698858569354872455677776414815374618302586306925356858766479844110690230737003837173849011779019385245985028791945091292756606357545403336800948501575757919379317831997629905045170524142930307228814250896664226356865083873319484409539816394774747349236310955056632438834515829576513638250430036153006913459704710401231211172439976819619481118077784181935411113420708398211572445322132151019197076060223126785616949526409029269530109241001436622204518439358354351561024530939046943713291775684362195299649339689529112097538024607794200286845488000173132749860620945352494978820754217681461159341191186855648850272343735909682332978589171500458141594246107602551809723153448601331054123476106700375864140857908258374612260441257549106578170611569479206911309594892012050387156859281741228407112404779641527309632280092469004638525042452488936870048005612743027807066849609614553367983051206560552111297801977552776703169137438411685764466908576468058572605108269710432982536414516832222058551481847334761953383361782130236913598800515852067493941561678106801491126267268096418112051182909107787001629300429842352887265112780769416855756313327075181659212972620924145038639406631917597026320689491506937986738927782965977017603790879858366290694472000940762884130628073339904319224254570260625903466597452023190595923943094611234371870624639181603002234637085324036284633273024598191930349692658450588291361212007766091425692087363220017251317603457881987237171858002899948813690773094543088197290072240136015053415423768155363625079080934896639844099101985223089550911360800118580218684440868860143591615058619955335038802365754015012608800241572378624713735677136926485496066351527667146237976075100786951804751922437245743621834199665387677952844423851435546160312270488976354874554359503354004783160474132555096852061277439662398860055727361888944358331145214439069629272158603362501168011258608425318779725468766123388710566190221869916291241761692015792291936665776232830306226125268757010778798579455865581996395543207540321081748299641928054298203825508876859534677500946764997171765570760247500797905691588885095436857305802879124221701251374520879210561155002918560816165523676871608948337515920415416312381106439780171170559039755828002218295913087263338455713999923527584172744391041087310769755452533950893596501885442296642938123974259365497980469208065216418198677416946341684797345489576165284478252267202031384099782029062652030508549504826638832102528277560183583588818434293892507597207725764624896232997192495412588937279812463007288078325921602848786360599637312808225617579664039228963667428560094528535760968037146848522095158177722150292448379255623846902273259913780806735900471524027950778277856745064476221929738513840136732520526586806857307395832635937429621439205881778727894638587138730642578281173217864542948308888837701046207291300438165192560849999610570605237314750475519266818491431146888841156454920712740119498560165877168629111267427919118882800155316863328642503953957594399339126130513229198085841154344026835386409409278477510755380409784957095710362249373293113990001360117170842101686168949801349822256756147264384433497185809085369545795990997817966197705622751578181661665198208201637184468000684268743862135623700571070228947529205338328926067424337731045569022338634859026533123550781088853433398245942650959186399076038256709906548646678795978674508540227748732987710539403431414028271017374805879895197991961322281316350172835575849265172932353290590450923696919027133851936332256979683863374135691979375310312085102934996235673593608612733978257882037647187177934341640225269641314251584774930828557281269625945167964141390140851062873794509356521813433457655791873691690441994630830021233903789489874570032683703450421035742924518537430233524978165124154710956752627225469816425558221302500536393205613803088352226256911861120658856213168925448196305213308613933780590845927205599007791842643839822597599401258305515579876078659000321756263222684917505246027626071682477312450043332676210554022487958321979424904258294464334427045217744217886167005244166538582153401008514564037947331349085862095390933734645981107552220152941227965829263052378988174753725012557697982538007112970152230424332634923953259332646805778969602993766076633924438255355994587203437809474499618459396726212373583179483432914139465849375012576238659502720303261158119166556546766797479165103783149914538389744889912629663937229832411936370495668255954521414920916417779972466544609678750469851462893089963843807351018729964701411376651297062747744355866744745135168699859623720716540316624096390658571610690614324694298702208494307826821709452334234844641377858341715862220817487994655867370742106758554250887788589489351491481963383019675716255949361740976496962114090309528118633798086307849612698759323136839233563008665229165708404312140361843348025372745613170281824271577082878738765156798271376064382270342087459955461256332275190241478618172992581631045911141633064339397533082918697385279789839727022312550229679465862567717855642151987431294274419575600608027911987890870930772636717622737784442251407704683077181834098786212851167880253665158777932972805475984936904614288054603263102563909989389098678616896233913620799222192059823747900513097026839926908271870910042880105783734386173024185592955100715546979315280181958505580727341417535234128262215126546837661403609986849046248067385883808680405714822086911811756750503385539606898261777316594236038918199507300124155963588628675159763668566806461726486276417930028354801404442871628215181752743813964539557310682613259841090743297534809327638627529714898621031769248186119333049014899638032073427178979916591350876635886029144369543875412053379882532733357477016970885173100871549874560599727912480502155838832462341565753280477279942395929675254057370454959089670180487884325304426447828633473868315722529227074431692226800195278560244089469887149514666665070989412567429105747054152402689383512398142742194643732884694902789834987623127781106504425759402915047444043518430377197976304735467852176114252981217793590631890961514950540309791533130216926196763500529218908999326736741212417243949166930604369216527300723419099921878079044186706904897705563637853340752437408176399078827857719850799267679708082690417686813848221190847077751039855180910570582334566261826955148941878560392346682131454792911434967205581891464579815709123503340481739821244379156691797612501777765064869835005601626325219813956105887878327366347837995889290381485598515050842388834817098005464145883267253400933045749875921715503231544066670504731016297150403163575187973049697922608673481400581855926823903537727856449099059003804154869038189909152321422283360023983748796144214329829644222747354650284683891103007899446139280113007547966823906403466567398999301703091668074268869990661264387332774947096667940661424866988575794039009631107153367149451526862184939419486262685531383066618259192877808872072043294858965470915924029832826425931094412506168920834350500908447371969023913857817879245682532103902393745193058157147377184683853931656457005322865390823713052025766595076083840382525829435676006855767845533396327434561587386320301429949326039000748182552033708276511032235316467268495801176181392934117406261708690990161397533791348700300585149554457216209000752332292944512171906715471083500119828283390914227620212559481676215110963641577191902854900379526360391063359781417960325208477795134844207238208467413892314024230817806232088257240806743699578128147949561031706533761128549872413751521442654600050475775935287932830800983427962780523971406638839728775437567063724051489236672897578216057977616536812073405690702385489620553135948961113262923676199395048819909362991376507658302766154645866189267038250370019515731183230698736247996893816001843025855605239433280322308487876793822566390612239621998985645916864732674490325774391756863434265035590614872801285531438137607531385764709028126312986557015264711477725545448944155831467948633611960617339537272510550630170830415854918448820616859906540680176411273443244184435732185220187114143297467615900503861059347744692285157899318344837042841947567140916571259601351927752679832002005532577709229282796221590139475743230707760890326780842834087524288845913384230366196065441854403986853698955322889363266403165587545493504234342948691839447823630852052058665542530388900537526739628843905546613730671249247286417027706800875562697026162372650167439487548900088287713358878329362613450244559335279206849620935611137511222515851721564390864157103307069675118384588483633345692662322512826141330069472168726426596899125952299863264510873006159513839110114899852366019289353134562513328808348594376810577007440810856675369541688891251009013477447455514839880559712095979059387047683312450728328776343370786521351976179910121097532499248944182020805556248274327128422223971662264731040987763588356795534728238554983573092723836304124266829881188149403716834926517680851287852229901571065062390972409728044117305934353591224843303668543793646334141762259391036614539613892947719787598835383418912815615711605597503066228370269798225923310714870408908956577316950627341773056909445506145401306580783087447255268366124839832502884229113493987403538174954837465028547754439769956928516659567979134937668010004140327362082624538308807142898023220088766252991385236836101114036481539214671700143915043504302944015337814767695892872012545793858794457373905968721764735994596424222884435178108138255418153593263951568672235308320256853602650455592934633543481863783262179993834478960472971461431888431003040963408447355746219593112849672985883038817694883414206429595847447958384891473477120466331677200073057968642084223516112031174858565209217241660895828426277333787672285712132338969820703734828587287922020876923128597660915365869161975979022244506840099764117495374376972298289865024628639390823694067478826315815661580685817355145914626188125507641836230397388735483607860286461635049725378398981054200412961347827800248129948234710081009651193672167546941372030934652684805142027169193521478757563328935751333561519483524860756963007910305753607101279479754229076684101916559373891532069424837840381135254856670384188488308904298271489690147163096810647066473828032862862904352880779207421861906717147387558175278790189647017962622664241727902374252280531542522200175884163544762249098141659466121806356854470606360190251872164990356253612164839202851968800382381257138085511646017051996075981260570140273306491560790074519792904913227866095090928511876721751317425929106104362810881443857854333357063593136332496139422489355635431266846194603956588931299426763323086682495317213727837878503741553446338126927620714227166922730850531695894043930296235229738354737842623662569581781995135867800321199656662276203103857750036788207906739757950979794215946078365787866155803313410721366589092226965268768145446571215889575591252360091848788322350891626174043006682459536547715224377477607118305461779984168130561272717640736344188229855605455369658420462175293878023044687700996218624360632446586310078552950040976515189869319001964890151611943974544642235367980221137100090329954032743590200519464085099800638026912861885329542877640707639772011768184191594220971367130888933051207071050332963655045620760315226031666771054673042460689899219722525818088498449006571436842273758017652358317336881853522555793550747813255114274252215529612627134805423222772105046366104916863736779836480054621722149720250053259702152060205429665596706813191596870775684504887327931344280999951159662346693911882528079780508257979892023353555187111282066498293477671277777241008996964249362826098949498157936127185699279420846089084563671334475212583710659626305855574525612507134102351620356753198709428010641020500616380944043028910575341007636512468399914919746080848916969396227775392951586281952742056522337891668739699790295302210973614470023002904739943097130361474253741213873690418759677857130444134021077273983019557104368519612510223867217175910200268778640111687701703239039057500473691470991141113387269745290489157899071861688845529462670473259002080069256328265515853531536531656810493427976285129347132163856297823215383130513438474919074267665876891295642872147702808242273745201587628842996851510203932322638905975993782116332178898964618759234269142113366080948297348739789533720722610054479150545595905777725309926262958700881719305924695460173529364018085223006130749593038349836166570692925903170066164655032032797579998041742403334648339027639900814037987633768452894444576713561651831811890592265009294088401347119633189004193348008513394153485506947629165816842045191010760316271667931813784449921615379910513434130829189060839671066083767035743320326625065234807102054301268078452496797371329118968311971836695126682496500360862082331408581558820165112187460585561295480350860120776275063722014030705071112184605655584156275638510417139640911566140967304613520892325722448469199377784781249304402623736857687793679962419583154089712546966578232901127343586223669975188020957035927194046960696305225977962022702358026938079151190552394361305083322382484374059316654311915544714674263032072832585127552584484914658116083407845641488285366319283018356524377634774558547810803466937828475711593995536529225680707401006867499343133631061998030447011356843700450167770000572819694093633309572655034373465965240952473276220371787998027428931935895687271506208188868556208529897711073118693865856498414770693290053950785130686900430294913265769323619839944656755076594148907521453585473546459120960813112956159891768215635910684219725288385862884308930871839731012592511589229715527824398354354592431805129443043419295561883055906075044383704390160759734892968615724760795071956115808340270004515642357819261685586366379170442164437108881582080823145888955367165876307102955080040409069670766690789269642942031974824097448302479658449669130994828705168977962950427269820441980596393277123935545017892416480914568529851219118037667973017095838957902384026401960925184001249887835913813404842026262737388651441162293886806212779937090579646980711462523476196930260307209841118252854164231678590792347549148341646665810551128009287618189246720191564055053137577072610510761128711561537838108361835602196527698744786245621286495877878975113518413195464231233713706084053336480329841155432874644320976783999854525505807518856495876727199509667025702764934508519111857692999132469205945584836941819980383031848889440785883023376574413442703285831648747777501505904713942421452427725870277586790369042499241453506924952387785761909272313294633507045837535002797468500011967378773525897756095432929436890635200676175848529380929197349172818138896724314866567024309799924703449290062062400637069114195110856598150428057049305437994201685547744553173994308517389412225919279608243530261677382458082292187915666614443733044893529424546545159773812204407915602169660629190751618879965896482854404024962362666705677971194621666966637652679831256850592011782638298261649095818955655193925248899626020532718597163180837820349934861099585598156993028695274531323403221061053878406237257463316062802996189211626341730289732444051787573431649619928523097098151813910770841491641595298521872780994274190932426465633751856492397326789524443370763626634991414330742938523007749690780440737739398350515805739907738612919784624519777246253015795142230706267816836508332475485783099365272424069743877273695156822723078787270855507851860767715044979668409390248248391753230741699862752503086917725137775857132344676269342388670617228129113652698250396778492682869139406413122547240648407574509695621710474602390737801313113389332731564567403709920439781646728936421789564606253961169758434186241988874407936473774539290111591950224699015346959712702950614358909737263052642877375695185525088788885325810109951362041257342037522140933836224336876624719461247832597796390071320443391281444875042592487099760642209649574113326196744291164504129486154010040700358686403745882087343256811863991952175225905543827737616837228749959723157070732542293599654285016848511383821151885620002548362824701278729615596437200058940513458286593053863117952901475368204104406247302850920680741307928329806661313737448352405935239884398768020859980562358392133942946537814150607121711215951425086080590518710966852175013981811435230322522794834279554643297796221330655280652999135982471324340206473039654134079987387521677432656843678576772135951619278757803993227117259316421473143901556731779118970940482893563310755680954848895466493241821467398475038826010457317183287046965594863788954001407692223624834721957702400315797550039415581478806362362478646885431226480283810984105642894015825487715965000303405015833152776788752446019570701863585371491302387137705475534458322097139881956037715310094305376155997104365011349725258638629074954618304779297668725086388002000969769420150848713173526898213757479937944442526014941875999938221718046623092907254421010199671657062025514791331118439570141182247390613620349836107543581669313382843935858768994967358544183153860832824809189697585359897069179374291489020759228132865337037299377707207917802603801164419414857741631547499368953746355729563044258423687359980941225242843676252285274106037465403033179797336238602793990726380550991250529581810778621270737903861694091018912726075383878863679531871086875125814578259181295109271354437020993151417495817706065051622801300243415379820605351992045810026638032554233755089804250286040889716874359413725404006244050624833065400120686406215887661639125032880954537799989315418429733849321909444078370360257937981356659259835666134318363590794144465056175806544345497526022241690631931536433910569622984108119115094540428988881790936715884944860379599892699647038834855135247150230668122176870382229981715786237544046448297885578796309201508440518323041470173059362471550700920834380859969789363215087374570696845178227325611590985625644604365678462943527242014315844713869560624663988823429797473281741548445664700223281374698528927285733327297562616918605512345658155282856645521521878941407303856059519629968308360791307984040163261690826521995353018835552119836654450574723093528539311138882163158749287613181946291550829396089767844183333328177058580485066359554076710747898465284609200258039230924119259979290657553075580655820141346864811154679422267460629980818022893933939551670296187499954222643395295811341201807466682041439448798446480058961155091888827096397561949652396078904120138435359424028690853654561709491807883158971810327792540689479284812590068785423822568274084977861812604980996299427443106965344380768454559014325060724095345619367741138082012388074722843088638831476463273481144531148301010495550932330311979348763704619231326658347324094578067203354115157649734227693835510613633879664575846042552168603088693436972356024062992859154167159374031698406962015873491924523842710568482030459229960104333409474068574480547654002923664855332717675452630542410775357564324336030021832923474484479079767991668097998853885778593089027675883132936766899934668834510805515746387616198038738048825319942838984135407090970413712915948741428386579695825931215906939916700987425100458220741795685570650427544521406357530591661621328247242827524180630834151106431613053899301960551193509896074620425558352706027804421588151628953428600847831170137832871954881394784381235502929418645845074941598013809135776958900616697366843124971252757945961054929545659381249538360241796139701055672349496070635646851741021986579816160593264583070533445708095175788871383239721033152866179319085239032752727758708637305072436912366316190413314322500356080058915276811955337051178242864909725624930144553207939706981393823856447663070474174764990727657472926369621662086678822287235557220455686287445062813387549210605293212528911887429159882845343667924897591978894075277459625531312306640305027305879985682934918695251375666049408356232309494880074025952461786932870623175195556289616562637171301031801966343933318253497097869549970585762757196918812118875930948385608488392253854450039839682316557449385667303937298311663191211728035515805315883267361019315478741543230439273479653393855011799347543095592019977043468901176011080310763447983640232413371838043772185836335276229243101392874123780009765036916881200365992985539604613899089411349430370993225474574317573573008055746630696144332288398549587964478740930357172116393436626747597740025055199443428261889450428085157149656781422931902850775710974162070184148004520646815004397347865099355059922623570015067370459413106769864748304372679409281933264438768706508728044723754583576717689642236592404486833233828179530730918500563347163189111493329953726507700186487488173802417451030726720153401361360993115950964812193573731714748726067422670005308637242189937774269788350098862484385951317135178501502188137809968588203568688162275173974550590421448495113031559059756620565941410476873628875085144198414600051415589222919146394792636806768025436389197722140066418510956729409114545596346091247623422587609526487542097752227446868426195106551219299608493669868414723166839834719264343441626254586681579314150972688202043422802975561529266576717802034309824040769289984101170892869031675825838853420743356546420279245164841443976041223785290773146034365116179940292628500578633200475974326893114939199745841411284755097180094951431467880308552786443295517619279694899079301073166523183181928703830483004511779295435746434366906128406650958559070632755348253700556123813977528598859313068125647765681745983901805193675295275620412553038337647651698378836384685698473276384085193983342690558197118043967992372798263898766824997606594217151737238044021098598988794564401712112566772233258176970402361904943089944966877209654957279904431203212680086341003278412447912892923995582823088848646215347090741167048484260999714130788667811039994694298560312480764247524883946258053144557304923070981904311595712396930723120393740537641568784146006972341404964748921535277889575567785480236274542335056243661458274692826466201827895849976297585210551531381112697988726850850149296438379846488208388660857232997033564774611236412455257544209741718232794139074524797836563023085944413993898652732900934646737557278505946398787838797620726774915311906527554021023294643183812728173054814780855263045592391027443821107334667940382348984510213505352010176055454204143106130629681501006400979419380690259461306687207530686734273136151492619814008434422832271501150370105092562015870789730006737388333403665042570704135580042843964854814577288682059455177570408855975766938136433057119282860757084655659318487860986223119766627438581003388280150823786864561420274400975438168093697339191552330741674447964812060095798016050064951820175695405739021792174174472430210180648485888432163982185949900330301537864160817600275732170561817779250123062429231574400701762462602942047528959118619389198413605884312886817833786706627335291953386850486866843455778500777362484727217187675958982096927690086858420013830539669616845962700802622359838868057373488991611208522594893872556052345087573450930706846750441180366223550824101100398957423827342974942698942578832415062831874519726036032943757009283977557718347156844911701868584199797790944601806396149388829040988897204772135458540355877683711632490795595794359659820824247302998061016245542539356844436053218637088452260438985861330438419954852513532737110061174464818195053902502968774125132566856326505038662102837157992461639331477095560020579314825464325471344992577879047931189928780557506832428063850970099196568554562988881931787206506676452000923051902793013961144032316273739799416755075366585482050270277331971428444728887750573748558576536368464844682675942379475057928644831640371347858604732143289695084894411012791737963025197411225294730809862796111886426081524830154240444609290543730474176906047901686137444527687649321693979065830021344025366128409845708546390193926672907410773023929941834995780555303205614068400165114595716759983998538555992319902332040808767719386838906470684739241452149203286632899020589950187674829651092449185122625025899551051121486460692333602919047952719989000607590573834289315176300046157379876210925110682879827820679728524556157377115677953836679979671051028668639532674811799586741212012022828963569900351422445848472049615910365594185400989447051759958731438003732445664708334464265772406312355378387509487389026326379293206334348920887551208328288743018928627723817837366922344637992858831107980743059553214215048077219679070689756083413544253509569113388817977333571114044539851223632046285176099610178603031816507069010723779754566407999393974400090901814981158328910895772770990572107546640260927416891933388655318254595108909526627768385765758869384309502473616217199335807247414683331099205666280935227482053798054509159216691552580351723404524280234610906375488203553112733357884129892542584696769655627328507727918076671199355029500505292333431988932818063385097452662446332507552024484818185374330575801684550794636524080379657334322514618028329405213000835588638093665504196027792104980614630037502246717243144453011068629248167147910306319624065339267298952745154706072756367912213110010276841412736939755563196919836797795959051721688043072560182704639150514318993422490002986243953907255388656041230431735621411998203701517469194799782236076495271694143324049431769951197116635013602020781406177839396404005528801236182133011872774225934516822048041271252450751281886642708936104117829960176543941897842283283050746902185606663330915607768349626033236753735304108924125977535382216512689651433541254843442934505801391658267559739653670068172910184811027994025024987092522210249882021385127538865639458050938577325673495658464693800148340311122274771329776764601366811848780806733778419218456940311717522581357891208578784648719911024064756050403972350344562277121902656476387027555794973063910350685403958496848090072197229634238087328347967586100240565768023511484011408568506146628948799950986937721037278577509047420815141649551358144306441844781620837726212666355974856390329215773646688793045206125860534535360092627738080299068877634968536295314486923051025608499972845797411531646079780547979772338033469947400145150634184805663211709525954070442932902442996810621404368145944556490481329316602367463347950064639373503134505540520619614366569057138352133841030698675701547488880942468197861926191808960641908496518736297685146882241535017077819003120769093165834938801515650443606959901455591129198390362380823064711485996528902757353507846245582487199540320084416742227149988777878791946644541349581070362053266189411699955648987058052992799324635630174800221875221979306846664407318811914786427923339882173303571285767868190311786709473880404416139870549264211892160669610594432313549295647153037354848261404110219778031258841587653094937821780280550489514377940010467400533582017073700772691111741729513748907775600083324566068755846148286820418217421295670491100197914037921363456481221580100275619244274502742890827945552234874357868563925250905311667328813044877982588036813536122909679119213073139671297603548643619166042256399512424614642666616192273596576314508801546458163930468460888500748931272375726937392906482739098759382710387667731551002801403332406601988392109368443445538224385596549078486973952994820684464010532166468406895477393434084155725465694514994029346420346213581696232713244243786078047894966100245184995775152316662311368539134151337266929853575179270429070558528152843302731335964094934228658303679412631984373169585801889985789309583106953183772828266034604399479130599229038465053531652696677642705450879687897882691198539613147053677072815308835906193828822630138480469448190143301682818966549878653903621990211145162817024366512042685091801291746761090897951340497927256325101739626986517290592435440408823269704564778190193911844890687097915737064432716323696537289049305091914680815134472328343683119969686394179588768737751279781932194991222913230388818345378004834109783829715947049008346809862278152174905587583659640207668654409941855401272975459096913673017285759140062894704312027620606031721978562550092825292972738035904091232765136702958818076728736887694559729812766584618871878133606556622834968363660886413891289929535618722633585035390326288320250371206267423627680146974758842250262768665243065331788387978943951188315670086886192510958319829750248769131786418339646931242076933489794219682683995429781276467860081754488868770251913385091874591581117761517133931128368982999692383569590818130682172425575948582549855333688794391366089308217537160572114698475047649338353286781278094212625910206009136462391248818336296190598105757228933809104292700020060265158777746111133647146362112945158773634071207808005072141093207895242894633245125811796067589847912859476060593156562579973945817306603272803940490118648316903961757655010912089157974349940869552509203284293865535844183792859560113312933059597682174600966795828634965731363094242261895033339656960191903523192878742105831924908084205280071333021816957364173442715412512023957443210786119117574896738224872348434146636001444071990833596524624245944350491718996645140737726967843735456425077695716860484464972373032930852623527468849937999266378554672239340779415678318558568536050758511325392436132061050562922594330420095296386574058094324926523132138167861518512941413142685213384821064651630453991408187624418456345271688525338416749625241116871904671537244562786372332432867915158455694524266553939095094474617835005537563268947875426554618073055977087897267894502016624745245185635237779159685247043904664005617465915680461640252354008577621127071220406024571441434901562056066400664938201163783633793516792320544043644298045390549280599293597528032112760072565149044586760436392149466076037428667198466363255123921340739000913130511235534144720673783193255466462532410675291459331946711504566284278588127053117337352584114232642823239789024197501699901474255785026577076771025919532326609736554248368353222992013760397712215381180345485327659093094960706107488519495681898897308645159790706399775921911718792883811812187800685553334993381687083021870172918299089264996486467766790706329971313220691399404522643708157287446461411741824109430608559998894350474738103491164996166300196759882850556934688691026681695340291055808498026099372254485652319509829575834319508224325599603314491275777141968923727572659156440308767279784251330966854470315187775643561401321927421152411265219795069535542308279656095384974824400786823455149840670999808628285156831500564088263702406884643678009925901777431084875415944632220358527263005174243766769750371516731245461334713116685141261328695684799104860508008810650990018347293785710619558885776622671360141319841286863269504816269636280930046029486222946779087279990772019037952539760626187578279297023842145738752218685737605944554822562055823980579722780489524613442639768222304115027594309204049773849193207715157220510760228721216304111085706353050577927995058494262215600724585886934002691582834558448508485950972279544500332145367737231385447550224999657874301823628876676620925895791330906609048667557370763286893022022737498522509213405758553457388143973029843453355480321367582798207315357551295872816129305498772601929226613556514258203361595078972154457319671002883721949092041121900011969913324095519249700991902576164934254935054592856975325384444124828495497074404038223455965092136671932191402029997564457583055083035427995366063318752733007748775545625344721791800850292403932180151726669392714082734894050343850339477251463433248251985720041663164291221136426985130663009612583265114197782198602153069736563422528195165058638664752767868703351473185694018114429640940479590048705875004917860227256805275590490097548523521351516483802189345186232093422030193646836144624390680847189933462794996717371868802085739513918756635138421694776876251698090770709535594903617491607238814981316834159527621050014975277712584925547913069318186081248604848465428979858082248084450168310474942907811705767735017799400084146356783652768239609729904811147976624769754682548392114824547474889626964359561436684226713881677841787673009719169299097827891453715379589918835360939205399488930083305849473959273196581406821253641386847510661978913781995442900715739468472929067641065421828137713827879590311689552955149980356537857774135493339244201700110782425273837196558791778155818450359210227715267650705243881631992211325200914589274267377445092105995964748640929107237188352463897089318614013202324277525715081687935500470456816474254968432091181604542344422625371890746207948129513619232930797344659365077118271202196571753852312166631269156237154066367335694113065206790351017852255081759758087265819286406412994565286628527345296884743827971115788241902564115114320534501769490562666253998890490953133261688101331989717316926982899861430314329063371908280972461286228757093846019491473155308713942605753295115441335125386961531039915035484828030076379494733668598705016869865847048166267616504968688507128062820315789509055181435987848140978120148540215811325226225913206513560419703009032891081794629967924806585312262310625362320781341926018933306155102417557755409629531011084311399173161948202886823890332317025937308216871793601984736541243475478773480115338446245664984128479932873661659250122093702199295308979910441561608392396458009540876555263952721781693157806444852393933063422999398890141971767519983457118737508694096276211554469018745000330413924834497939299907224090620078646913244648199987122298996884493464356311622962958671735225854716272711901927151732813190844302410656150344878552212167840575456860885031966579384212278079711079495261265769188698744189027434750468518225940430780151158250158753463949134694525727997275306513089631550822474377249162667426428618069335903676205730651018175113226373228814101600022803359724470125909790096607845474799530865380756355218026112877093024983184823131517904202884732855554888119519940770787390742123181412844869247087662471984818492854243325460102652013935657646813027719492371075036734054740236706663076921849463965761624004383897440492828524886618679682880054111817358627902297245514523251661893154181020268482651645890443599411967975610330577368384060253134547803151094037296725965039482778800374283237673780923538999749796294717517748758382647573316789556234420892298189802624843523754910364526605723559897616723161150516046950646337646468729183474024769493984901354919577257996304160492272402406351699664628954481382740162788300549124444205734989669181001309754875506303933955579908342115172049938491270570726017749020491370249163559813634603563666915076605013640228790772457113289987366291195711314632586192897667357583341554356230283523443131672517803682920493308982111937636628961418309710777678446985107068688796994998188775423767010613739035155554989488979464200403897410782412678190768470524717654302201756834147984921687762652129879553551905426269326223396693136695384826003794752145493402872895044419426607531907987628860457608488047757830140994612970763892829701516935480778191371320530987204538853429400151763735438090496977981568896920410551829634854105717628215907139515594633783051371953418893005349276384748316498172012400586133104164138785977657510953075185386221168660447653581496540802855035168637404853981454165606905451729678645615365520215110633651799549268482951724349052972859271821520582997405280759713890056772418354647854009016872623654959867438781960918232852216073607909676233975222548105176948754556583620426736290911992503536472717385158314251274811820248879279200022808215080425523539920471420439130260158459446917107730229362344722095427272804277621249372950978940569308966092497271710051982301636848654786346281417022969175254734272094619470296221220034007874937884313413487075973769098938546063780814447118427808783923926751975913537433999687901380318404302755891958787015500116084520151360871321678654924424901497591831317856247952950271976807680327746923211187964130154842435538117655231502408240860114094991592720527053929524498077436957226648446938844362938196705416618211062093769574836557379244691521769712454401391130903482947922505874659112539050188815465276081480489472165418518129887351690161302480415525561682208955651961658667409342426663025566254629035355863405391631961126713043325861979998402664422902837499224958525468918548002910624588264524769419468944598392205171514485397766715772309545427678825597463054532987681440736552646893753313241152001158565255229095935263308138755714140246491342368912519716591106734702758226112967954823187477566705664957594955432759832178007318090032262122792424751141056803186535418721358944746705976050686536999411507207164548537305660779001759499181868291413517417429528992307224866382915101705198716252230161624886772401155533536255263967765597882421322531820416313028948181748045443728090951855639734860888924948556649572483419316252513952315890027562956808035173517975786529410789879059173281793521954642697642315169121585800736732065430137838258628649232200043413698837624905339482215863446957647901883171570191445825138866540921407327311781633307054561036795869534415019878968464520927709057549789405081977619705318413961725424786326145439152841419579441264268049903662839518421662612527550219334939275733665704788581728105704868049470856578685414514479790752997711438075336915964414008040384703602035383850251183294113044348685758540281286985255615480223634946951166500015451767785892808554386694275911065018651578861682853407218908837875480447302128356771556905706688905709142193168494533400225072134258937270675397181103834072193887477697310511176334523777713818716314456123857022740974200819899152512282932571662455755372219339329339431098572988070678503745075221574264245785677967292858481726939899900044645905692740890541639271127850900885887017143159292512223301426817387351088356089088991951384652858337968678014184157414144962270457217357957170030076660505503801843240928095918917781810111946953541476666199666805354688810080945536976359044781054389796257062879926556368971644307781653502922273103393157361623142931806759055843925408594610276622086602029192687009772087642689502890376377089976094002145823442537383313317021083313741562387857620807340638693640247428621592441162437409304942287679565281270910063463415909858412183917086985037049520623137880789351387175472488535759947194075833978804251824559214727428420127199052697243730362383176648069901386407607153114021004915440610127576325231415507459425782938269663710632367704548130118881472617010980010249675933142592500539417598025872179570689970990118055192992236546193666347696175551583588863319202751656296352797368135106173585170037592220983073662548362477412201011213843247664994673222231961824730037459739250658691652549880870435167363454890961522357587822876820561224467126740861258156395748881814589271193589212990535122435415166634330363837739642576326869161511098186437097418206353961634638557283868489181399032488070162749410531921401344689250517969134819935662424008446903840433733750258542645632274455552140855964109271016443107598840962427269769015507790846301551470825419885314011121459447111748663463598442776122195992369748970045144410024734888764087337927163359995585671785973485580449669015611704106593901453840638741604149445887446772797279294188302794438557262092675586747140828677782500657475688017945593453515233865931040579214022786528259569951103469846594193924000493501195855761039519622326784334284830647108484482620643330841939662738107423789601082115204530895774052701567739339997156390440304123032280585830057342503359983197548536395629796907110584427611714904531069692990119197684512349407235268729906419604362738231991401091233637832031331628101580098585728632397138488502060441542522537198443027443724785307578563242718904227444397187915040938309856510791124932859443074259951195510997722574170713425405026485046294578292047290284372605937248534427993056470447036801914402345252175754048273803438182746123740540466962540140509115628205546965352687031694359540174281084690888611177909919786819712593431644780921805128642575574817860235887237166677039477801601656674030620930332163684945546570374270572929811969370320812511313525729144364886839286172447862744865192247996424395618324855193843416359109717402121660674251559459161742667339004729429924683288561030491863640470359129285646990892724030368750674005043830884590348704748565923025405254430518189764606685105950584496579798959654486227622038849188373365625606854115654526491514660566969381227390256272158496689856404384271387922172415284265778744517221261566052266965705572234283452354522706527933735171334605523567641138234287050292952452964316424126214525198488372306308504261847841569583699099412340697023379467447593381043309762577117146566050518793840631492846174242992697330023797138212418001471865065484161341382561752483402409573314614070856613110677733167779096874160948318934523408554242516385971156785500476968118231724147799804835832802135298503583659986511910031885618896493070534039456268888599175949946746802128934191583091329426168201203735539683750492358585371712536972677334736979284442546887049106059264410759478417192797926507783860940540954180292903382605364336848923844043717504418331624920034410510153375675283095171696085549559104635587039299019660977653962742884678959446678772241150821359457108904988166636538332268975234716541916641389428414098957615223116549615393460903331792278939714906704725212476497767182353882025803431789621966949784375905190362863715303917116317959528433663942997611220686284991759372397782972344221399071635270463059225814948160633425412565802784393867784567247139562826174470038007323189454367111946174013537085808235861384154915689970811950226448110089598112437237188003053885025353791237613406191964815877835812972449815347582435881840201626812991027794988569076473500683681509505118915926017931470790558090681578777002724340956296551799163933201048187310147517896217122331071111986586059124768340289628336579475156468279903357596821985583843292947189227019461802266253356318205839943748627575951512460531974883205075024447467654416040322387198077990644988212629866528485463741867152714771143091362969434667150452924644446370213828087262805027212186992208050239287624859337529516847387258371290936630066134485305354848833791512595365238338799195278710720613881726956564410580216419751516589350793710303990454287330348798640541484947619005056980390192808671369210346987640585690904183104229467088770605914634849013214165965385055406630520622185087829493202039802312912317450978956940818454581888054743342278087598406995569323751819902510975716770640550952892853650528467341098494806770176456561019498182084877032283272084887890239450681658405555957398634411213840083624389906417591468466526807743383795446055485033347039155751899342044298457474030463950815557959157466293948870068834820719868690971970683780773657998324641851347079024998431549440460614023699993017582331612929653661617212769079026076634093281295615156086879379690657446953019337185997717618503389534911906985287196086726214520228329365263436131386551948392447311329889101539633809794065510772594784626119009075259510189703222606819553648992448714973100296025979317167242727677122309303321814148102286281566463215026249823465985454117068254015185982979160979224130399003886570322447415401308751332766784344228532691869009081831417057154190902671121023319999776707789298242766367814022480255430376222694581944009439278233497498618800620639045550029096165518090999211672009901579399008106804619039801432675476113871453321966028138548387427498117222345145913970771237784089635078134714876471363886359839060502310046811074399297145074852871077378987559477403450841849623296507868505108577770754841949274548667562474273598360803577458346045767138046688069528735221407514597778632997364867740035915156071707954947172705416757728769874764503364608337173839680444996010872247019381895159701205194961597500556137341664821335302325636743375595512341499836122420114600750373001230230836512752546186534808668977726121206049601681994033481584375920368649733425087440475407983478145593927898288075194735397650585429953055528216444313410444623278199319746631612610775420824672102148266601952798193033455440589621627110106744863271974213853056825183051434981397449054580385549551802711204310111833473279459884540654134025701611633271143343754780752260121053470782920290849252814623073668892817482308968886214597382538332814992112208311979062650777789121478746460815529859477987359340757292841517996159953245743226951780199464511618848761492143398908289643048431693266510932788728346659633296602406974559405971896650911114209374207615792909052630616727019006438581509539987347033714138545148735795382884668273505292664030367960773053919948041183866619814994621548951007724806794232217249158519443032214992858591079033424493310162556977353207365832602528925947110512237576529803229270011701264982649663747822727067283946067642014252557134497954510155320886081919230939422660969857891531557779103578040230619109120705243038355940942841675791250952024861314415474139798839041241771296147606528525508459481184933406191380347915831221373964640755272264950228733334616724158060933029565713146270220935152872859156069897166703647161072062192589301903371557181834670919352673054223316914726916249323869625840330808597116644406737720527100395689665330495843462055481505002163530552791448377068930271613129469482789454374100932380400247250459455446699734291431856719740641927803181611246866180562021871613643021261096269934939540713155445658063856724485982520039685871173151750732898604474572593871147896509741170625406875644824408018263639374021110328567308269355898614777548912024443838038669294569749420374667179089813750451629354406948804327359937867552998905684662177405029464375972415268344281100956329907668185563259525356123175774259841637595051495110767543898418121686678415518400417431927827531756986674205845350715938023136668086593533043373558602030437264476965182705310490322219506265515425031949361795957675138824400219931248866534634884050565928627712171844461677815476083393678193471832443402959859135941751520637530986018708309638621518344516227038914680071604043746349667022180161561775476966417488404732823110411599353613354875456833373638904925542997327843177098343109328229290170978409178658250770580830191717665418933937787008061708933414922747192159443332995019930958751629708205684214178393061291232814983139104837193062223347837628960340541356756916681921069596986714387768068697163599874228618973105583637074687575792480308564929811689288019255321622037774614773792959626002497585538632082180254702278459288021600738271428209369327013298618854309306485431517484537985865680922911736021460142952870652531680284733042946633009619798738427088202153496972421525050530082424147127892310693167136263648033289514383513971229738750375289962272607229157301220437978225110251831615292048096409260886089554605703050244427877262712508697229862438125016577589713518991204565799988846935196135779173009867846132739855171078532217801055365264559985901352269808425799627181649038642789713371927773497450682717527905530907245370042836391031808926693960837479903651677006703944802891739930224225559283782202885503445199219951124602708852982356986979914405331277663885129095478311110575778707069594310420523065330339316240857892049658358614698630057237295047704802896020172759867088088086628292942232997197930759086061034851055425635082252993478276119916084741331490876637638118467174377513758839385797446595928373424087096777893590875305934464717525666672316723108345792110442142006404929348452976319681927709309228918143859107866835542311613555681724974976710106391510130911681502815089457654708421802995682094471721727169711058071597630347105226106960216992335980179132286198297652680382348255394340451794464880400230562097406942630528339179073376814094856965576029455683743887343002319060045601511606346252001951219741213140955116475733173009203605185288864977417307901059047108009153201687506313224011295151623535202642773542533620241621594064491748961287012755114516029443869156986321103842662559074119339236072349419873816086385841577626341376009424369938608798490444066690265360260638907765099489087632098527182957260097945403793577810181570112747358852181207037017269012527108031650846221810651385364593258098504200948425140767781842842144040720819552446528243754058642044635260304929009898109206094381389335079852124636490276444121983642664313489119503223834001999128460046534149035322989596098190300182461029522933837738541273467659216952927950774153336045848486742192100408323274456490484432680115392312577912584642236770690551043471968574724671703125892194617836087909221739641008435066953403637763770661771275007770354662455090762546985279395806164967256913903582369543489231130567039862972290514314376063383860210054094736891464660231883349950526860958961733803753567729310560064309305411292348710087154143545592279076198500685830307916107549108530424502762834804271570787922328623475092328078280021487481875285805065490873705598402909621967053163450607139701744347305240505998731107106873162151006994063133428338232482416399212529745444685983712002748416873807705104335470077478215088530684283075004050328434652475377429263641949697275303193916642408430793491408885555508165897133183410954464024255773022476188362957383685334555349230512882567435084871688732510981719637069506842414450722096441693423191134355627821805142733025451060116524020993758660971766933562803492614997775868004284137125353224792719226441547273251404832803445362523814952283188778008092150226394384203420969303114265513052012053805746212084501030981868297821204103454933385863338532808131749071915578496654783589901925261283935311466717161876052627356576522948796174677529802801046755937065596639155076289624749389495308669801112742079386825336566673768529874526523934786972550851632714667359420882660325984671525349013995948623893211509152173565850521181374795190808486633534179190216542482176428687559810813450406870960565533352279835772357156219829928710674466276052672226179043987134092837080076767537313911145740352837317552573465219288400724991516297758200184882019698213114032767827106077857871706713732806914435545343763568878856979195507189586748614541883010524882453221091911059485871996380928306889404524915139217147681038999386310476429068358418886621807895690260822981786718670592687521816347829814174048318303267743414497424665847542526208994905852708223309426936640191987246377803805224087120968255058260269406304764085778631041927414588097965261506952030709228534023069657239873265415708591505388228633948018934847171228451191243351590392205922085832676213337439493781381432101451619231311256238745266267761337314518587791361104325557443352359991285231522302640185407628798752857062022616130166842955976849995690376530825636912057353475585387744556681341081714841569935322172777795948332390183539964087050587261331923820604167215095016525364117174598468528660896858829217257807462427897311005269476344234718103514930607063391983219494159237249241228730417776081316556927967530220187947054885516659921842753777653123041560369899799736157661762630347130538354683000216228815686558097688847410442666572335078037816864550687435132204834144260753115703712419301285378499956725243637820533409604687438642147231727504955799541946839408622411852815020922882749092463042588220183301971717758785672497823703041268731297838246399990671124168345998128977310935517554389870670989720989470340494934917886033480765926365242049256447563282565372921125213258140956861537259875008997254044953476044499712968170735342295677289621338176523744099594722271336723136308949367765997918035454565324490880967448560046342780209984096955092619398886993025575853994044842998867483885874300690114956742178929949079964766392254509252123388322783770913481502623088090301931564067871221860421751476099545719688512985090319251879791776500170507011150619469326410173265158666968449808408294128443270011202277796413416065736510780888306863887003033575200223609615631647396914984971905718873605969673181377024415502903897329005366085297183181081702036562184031787596704374127054764159266497208245026363013948986630957914479553482148404939964009846237735591241519945959139778762329293759667644510318720365725837806956168392232448144944046662957715177355880336208885726448384866798823952083722970829920790765050084495246768030852724572431932466928831406538798715277002242623700849933824603149986755015262206027365981983397197872851215729286400142802097489080097761586158785022256563028627458844814736314339516243358683687360479237930805745247516281596737757067488970137074589564774953967641642402261646776134753078423153024747255283245015924635001312469120503276620615645940807205561162102699681224748612612450077700946543826415475218868393503647785733100920512499217631190441424148608967481966765842303305947560509748768965560349422830537725957206894789475125855423529475868077815053697785346495393926388042261872969798363685717450758857028369301998787393444624442498939254595752954229455341455674798755944519512056868602796383453254151879292891983380363724203078500363352168066997877504903162526930110475804656901816523324988193853584112961378724092266073113985219698101611232554596730839801958537539746335072302325214945434729061770567990175965653035804809532688535571978702086524846643716320350149833590034282300436882073203914624933808631888633555041808034686324544562942920438952081150957508229226660511885947012450992176609529656773290348894249301657874053273774984836865555026553296900160521483810858125008491955753870231691624129754192468425170889170389201149716073125956068390919820312833369641058601267393623032124830314037531067181466251497921939598763749003761033222681556945034705549772261691106548364962135735440826000584462608911140545652514073776187112929663449714047770610926212784826140085384066882491499887480472505009460744206491970274534493024962826157130816271882749865386066011990164851192233809674470740137125928337675303675421290347398017903338249196787070996318002108550771142414750149128194242471680302642076384499113455438948183976736311927021021673303811005543279860937044447435595163047266064000868917826573477648476053571832139554765771431464686150689012351912185290732862926027378809638373427127813713109308856307809986736771458353549256719924736095371083554463780140891826485210566467219567157776188723065127298238110720648005189567800271682489027435222635650484166805217454013155746157077225475585089101134904132898848488252279135958781591808924064988084320666075529428409320678681079430514316330232835375086477023764810850607471816026587309222316640480162114766800239708234743228490728421119724442186860003485030965560398686499350946307645098580773781006443507574477212430563006975734567030691221271216679159960416218802313743956049048849645204242985699389096205898447706489715838294008919459470043825407389030460330608805688421481429297045253669536920878925998219470536243688659136345975443632300662168552252921685706923000954722996535354914103351401654526403955980711697143645254509350810487773443772461660126786040125880111055433276573626928311560344252989442779036243704449624463672223287918859745570053932261825603404787478159202767479501493164228414733444365331175245671336125913015049122374052563841868209319023419674158708529103126206775076078114209144991593942747933170240982731681309728987604694036714606017484519565643037022607933791099050824152977376443100444621070741387686565298446314889351305519631297612675704496397604509818512066999458697961449741229348748750554661192484825458063340048647395726482520325139166592608161297945093721546576479542128729761383369820568797429163375009785087726222456297444294427402213964381166606174735568155650251679094350972555527373252374712478602118863179330559392242782623771066477630008787711783685900545654679020838063951493558921517752315127944193174864840142216179037274732245433311999318129109103913031472186936573253979727416725875863281104831826096586206714757644173891552099352873969254135943507976041458557541117074370323687707718671354747679967845691218714522224034421816056783182778086263720223061461690874870552274822231222052544143802469336013169258427571316305154647419552646285485219006435338947968279388757399382319519662438957489586225301066200615728176726892382087355681851047719745285557835918638581746363794586730982177875508410315920145498270862821783787636032878882427035594198407641422500034288308316735026668513853086543380974137355165692072109879900639666905425101196667852272552205521765269167209840519033925734756609498881706642044169795693624697116742126532062800523843726828764979481582582316653614145056979633722986458610391593684873354007778159024993295099674025662737869168261306759394516458780280878070663153856092810282631988581590541648525260948684275396883905124467348787294532860962788320744200109814239266387510245279757159194733858942180866149542373199246232833957753428865858506085137048325171054826291177196604521840703982027713748011527968556089008886848417063320851490851918622096478946518369967795367952731903332675022744307299614503357913200875128708596944343709189460466063907443129356537350864870383201794168108823201196234788648703492058468967400502575846739379244921588503660239694402366459949092627738304783572042473586136686353915114320044456822027117350147743231051375208833230492982771102017556569290168057494727066036079189476009556502999287896805356779614944339686063460325065555539565647526708172900129591450802190984694700556154020215971400202997525443904613648833493221660739951129999805779842155589555913696007001100951155088778820567776693328169669595271482003421372576442779569194524685849338175808317272505147700901652209105125635419836751040816207798970781628883595953466696987778691438751758911060916726861078968304079764992730840978810573803263220612837716109810516508726897013998418480681519127152439896477130813127701226782373250484442058101502090582630032926862081452999763652056348924632820301432507826434761617345093481320508173646810521780756334763118874224002395839903724005992290970774834389232302124340422544519700376854772572246199970301741649497292884165503134281135022930398760742292182998525605710848663672957560254472685916055105356023934275965668678783884560019190836616210398543906538842414174259141820211684615217740527518409972142808208612924275115134923664024298501272532576884695378058367346121178621481924082572351293218187522110747234776811835021559927141541780928536008205499873453495528473210944756169984319588191488179951359709303093128566087416693312183134990466063356293594268914591950152801855234213624684836879260004635293720194640502120223101648482081697347400888236506265158885361580061371147017986393065594877392879035644516239950399487622137934979976411677977445496486647059202781215614064578972363594692807169373241135673459650573487083714147347709395856861389137114497366607269216920540094004236442438801525773254231245911644914155480606511518642676335856775223579863939582657549112757292741923516033306475072110717816596613322150917628438201499678499604059268082521541386315383097329974626663154233733895770517924701223267130276491564324319963879924324665796509722120611368612275008862679873963410143179745930655217919581093243076290656584860389279894253482121015055870878591326479035137893883317435531917273034107079292043641654993580836814982527058013968452396225666363296511420332503688994738916134026307455591139607545428153578069111136719702691445287670397966897950126159469909765391578186866653787748459243188043798437827910870044880171918299697085647044090138897603499057413775201318478621850234287290518641258976011767682275785504569321589355478233396116789741892172541632777030756788663870667874029088331998927675517910894372697297680218176691832635703294571940191125852156322334525527683634386386782729570350011236477685989255173663239335120577602471101044078920149381247891433600785460429511046746803466548238618949306065964306334810579592491563320336783385235710688749152892377659344364007106108626552216422678098917063641980833778902874838604125051166169703895850457560200356396847128198795239881221014357917391708005338913828564396697840498834314723281977700399866096895649447309418476066987115880921565349053105667323856107121514610403316953499686766719966332633460194375237952309201149446658907418464760483736063812609073828828181375178443590184296254368407934092434678781239112085788674773597356159919048710521638050185953140771528526211835869571448779406478083156178676918538797715131163517338734276659846894952954292795610606845043340169261342762555041995249259850087283205110048528409175588927887276070245979068483659493498500272248338870842361989049788952502126056549062991333692004149444468456217339040094260765062786386160628263805425051531421024163813921659145115995836195349758811589164040220669181368097934536282492606453304363245257563770641351366149386575066683101724424409418840382390205489195942890060338786178848967050301719750833476685792490125840279766032095388914359142094431044901398400009104323072642042844861066073176226864699076298872443364852107601942817216429935145933755614407168125657968867239148518738516378148949486947464260209155136283136036171677420473807463354374618997191390660224013555230482901236613745639567062335542574746430979949598101930565030127470106070812076673432514146470139425912134123890540223187675441102497193930045872090837909923504272669263315848110527426830217024964058362177677892437038639934319434711922258256163954479196191247321193377148047210519143385710751122097594957735811275809424018713429948908024021464073633035115677423978260738872423191559022041497506206927560248428253829209547017206272119348511115166597705018491581161498520526967262625325655973305076818589938639794925379342375572095672179996552758639368464660930901449321241738813598167717488619150282544129601314597519272674557433009869238137320582938519348927359718066982740576408649192270522310736724975613819358969437989112209461530290625004244902289550439326326419981193381077416196893596653016230922685917711967054195109230239745457623660851008868102596469996054323085357348560852318050770230790791740989618218438598904889072745351820298089937778024538143651244438659294277495211923795414672854187238653313352150541840472514392200003048971666074558544167485549195924025875423250681137792576986832692885880682695726308757774180833452056583961309736265012581377065703164002777246579412151803941734225929195350528599221627376547547747950129042880556970468269546999383842163393670003272752336555390499586980910739215195087872741527553098716694261574193711037141238366846818583468773616787304064822009386099096361671760828450959136203771345455923618205795251711866572002147631047393114593741151087715814758122098162959287042243785542625556562686641855688637800255882880886364177467980889541468793669152652073751695240057844158387432873835596508843912691268136498807724076548503025517957298869702591068150501028888727928112608825239060088790751515504929156500247039973380395039134560883627054336906438742197024571168457914714713563743495476500837196763803529074632983851840749244395845412283614401973994093387255550916967122565527928383523138086322290926600843539184487001556015133373585035509202329795755578469419187410617173296777314230316744074002837629655387763455262622743164131051528955589741225604668755166788351628876273200677139931471688283904017156478556590587877652144858015471024786492262260350566881402159815309046964699906043193543528027050249183314194967204468254534414335837302064292662138708092035812987849843043070972041700784635699028433219515328148463440741614188595617315674938482589077346020686624776699421567003047380323720040914885700782192240881480581565285307409567209853622873729898534072356955836624987586613920769822761513067017596511403065054673960257218711218423006119655331089284771238232706858152070269694934131452946320378210655200845179109998501414059487060355534501862083424229629126276353095114779089123033200022646720878298686969607497402285027214122722431738205357381471955621135047242041724490054612147996308395518502401756410137811603292266449864561526363162645109744144577881995242167841119602706976359535277519764656902532304926605944491666478593263327633098449453725726251558155436491126071785756873134339674925069275702293743142532410264095675123995189839217464969338271632224801721064759416669430470849880990721968183689240579532674360622888754531957143561105020841316666334998024143125569328857184880228760886066382362830082539808483581632903726917239772505643234504338777565675102416729478305745881820385419861973383531351405199398766942283404681007081395041840992714091601691416518959506042614614049966405641087452504155539672350210447174527525862055057058505677828460925723254987285821945767470861831638197813689406133061964215380118986812269726963727290117838860238533217553508973412984210640614771865894344699248225049815472541974822562478199567733946055616677690685107110674212279216549036958704609008942422780980859648106497332488366046863824162355298608688725837608811370021380753066864837130593447796337444351585789593940593235184414684117083150413430385941577149310610458776783277040689553358854768454555909185920769585086996089535170908816039293546761710343905044907892376713308452591786478176199887538123290418195038841791762345880388556968124475515904037410092007052946154789997254779816622448351918472475513415163791687410762453948569325754590210543892175655199013829399232011580527882152813051894932966494579872509390030198037991563192289538421865737971087313304478786369613124518144760071092783881921413382320741231449857550400853400709912635853095883397371703978270456514444653090116394309107979382790473213970112169179311106889352010584836907923274038348190453217208631325305891852465227182231510803468553127948900294805958007859551325749906241299206537389583853276507448573013972568048336865102616142996947813712389787661086634610173049001752122020262862756186094272678561071505570665455031828663245165568943834209013782395701690175747066467074072279786055374172657147623883601006791812420414603065305978660755767132084707325561362341260250775290223608104553731495043242338028374698915623465182181056404422397314016811539643896347472567639927872411799024978539073527351132948271132940707269310034426787154926495249676168399166311301641019950275094642240533800117911022893336657345925337255731226512955092763731150734397656289818487382899655565917304033110414275097927942106034549042213573870564935439325262894647844125056928696379072255011696442771681142004761072495325039372738970858109362313227862674015248679917676022432607810295865429234987755919807144526489288953013180815694495426238224647675276282365994326504692157302401168606423165613569420027490410684031677825904541321303230294771077581187594151122111718940538830811231500636993602865840090574939542640468881352000703422203002265857926341354162999579477899599777897205131887984793680778291141499743803222827573280118561612581262714243514479646250841916325664033351464824101308535265649310906908703533332289297288216512181141226425323959458305528448823961978800136878815478482858658571992587520270933178732538603442636297011800757960766652896324855061429323699878223838344397991702717132342794827073943572809877065232394224776055333103649069132344654014897331489863633298110979961785288994958965773998705446347078860098958448596910792785128221288506534125483729682363570145509285637592485783522402954399354546772150407177919530525550846485628133216059426695980357066423064585154128032657859126977378207552119944576451959390774739640404337526390328850131092587656053098207834805418949010859728469581854440052592923037854157467411784892839638568823143266471179321673878107201836794232689199655289916386893019723555302508220340304419838147006246911544351237987888430277760572781120882480327338322945528620606039480273116150696823325209730300786967134551912478123754893439166656270596162209729146910937916041444122922969299270594374274505359538302773445834180941783183486844571694626421610159452832537911517240575534851178794827458217778021704614193027227970402602503765028940469921425800484786553545987278729937518085196980697320276352479746984197542324138501172743674923329371926407847179282379199091503981312994857333346681255992832221320326853080412998632577023226855790950211833989461366076823003145007143704623127256993894132161018524701007828485168206704072702636066048208717268984219982310296630775317002798188011855752624022748018819302784099982030351749162899691977650369128882683752500717531104202845069557328574793879317126805079621343023590071850595125897019593599200972970239651499112378919479615569759817695740029573403020821854030060567109002325260586415027944874309275030438109697481169766299438439846272390323525397990554164459371303221220998687710152024888901397240422638976758188152270126554806362839622335823222135420767072653657865295517255930777201061847339001753090767105228070258712516860217360799113004210512586458893561522302735576989713777598767644777587544905140452317466720145363880285388495403170210083962011736089464679264445897725702801825719528433825271508933469601898552233447906371263441467550394935760912187822651932765665813289283421519502511081197123719478508503596598790942501142816827129151040005523115307767452519606750231940927080676737651164317587101007167955807396417463842302788879805098330628793666790046987258751588870308378687962600042443937570665319887970321639640417378515237273125808997207554137073858127494439955451560877641125692595084748187266227876152467330929881919129809823445160028572233275793483161133966433695858739124316909864730372333638128721563290794896969979079537705206160197050163658652170591082349809311950856087773131702568831750441142155874632428836289258835764461047502456810110906298640524350819426819222739655788025159372551758214722410717933346882656496519086054361987788286335345766254781005945026333222062552422344720986670861740669064779989485811305093084395120560860896038748423945806885602066309562920872547587836801471840076215706994661805501181427835197773232301774096708534987269794695214205031932448291957658521794892935241473983050074068852815897307984700684497793153315419804747866830670322218707907007698287833670318446261343841108668450005813003865277899394697401135638120766538122606058420261090694248567511404180765377375754183013334942502276820222239399309893982315723183142120685331526472061429410837427797480548912666278183132106763155727518235788009487471507511592867391692875112548527452548635190080638502675374351789181655790169032005678988382891564305477602561223545765745715709208680500519276377585587916052708336239676381599059122984870557495896203287502346323942007394787896370356155301955786847678496056956205677466964450396575792351906612668486709004299872171713156773033808040966472618170836777593924538279106796882167288675479424193715076889279196371344026254893347706307029020642618755247709384184859840279321239805811285109395986077208772219446428820786817776664131027995879227832717084849445489819726726233818614386072679718563003418280413189135991701934981566266549544495770116705791709199893746739910120806545135109697210011752217529038050837017913275909650129895492990579419500339948491227957128504838118646711390718996167130953970295718848384209824881745469055079457067265021685440720051431442677865725254971690689680511270049531430532839329545523270910195796135078854875201411367571423028700223556257099728751175299960992671091982051629941898231773186779381062689727955185322026682822399285668691772562335667882689920387861460496096007523981433599484594821897011050049493886164121770855246553717190715414322011117417430718936054476821768275604114536215495493950294910274465315181697676208324479548136622003959203664485640634849637183378131556021953094663669134596415399814451799935246994183449283542630541632004576241394917618729599942752773717829586210741241096637446592326047613959226478144789959529961476687698129152124617756083279321345548030203605444532297492987359934840940239296512617338458388759515038122417427031249040985560186910608124328693153184480509125819459755288125914398988228787439581438769167174468330279759027601926595012699412560455867073133135755258949552417095949262485987707243719887632156846952165803180822548302007866262664079032415999091939737823990174537222333890473803315557236464524369711039055772729784655601086844108684187143605623879659235973920102752308582083416614020185184156304293383954175844954683351104427549570517787822668490469201593027279892381068624178594023607971046515969424183697180135724165356782210278578764835333635487446265018306318661584571312965204941535761860652581999233203365097600954941377100254621763255069743201408537551595756554775973814238566841789081128804702896117637308960263968564290142695368271817835903615470425175420082420507925555327310521821109966543448560175306311371862369197754424926603971029726796353570587764270702650395967273876781227001927625945399309202352103217756656176660798201443488940407955698903961423750524501188113720926829502192300706199316654598971814660178735139637496301185405499190905107583067173056240951652121078633775865050683249205947320720742702055180063574688925447599833321217939663383658732509464955964444611647864529557111616461814145559456774056002000112030403742587234268585063235592473165905250970528133480024097387878166938856279584995707324745243641365126896023529503532504078400059418833125765457126469141845789908043830762404116237749509865435394331872653082226116631597561267284673024079619740574498529496462649178423440488003197898427371522583639976059445508415349669966176384340023283197229536174977072101551753578296138961095207706153508494951499042707471391698103436645311288140152304617412077652565194113650722292654288898383548670352320021765400032008953633765508947251379210865769362093362016824412905870117207748075027658783957409629791847442493716338900142868640516164615939997164993765658028832156932122600704289205506479546591137357490370784663890309177207941064634708700886930801921302330683547060291913944189953002740634604378046774169186760639590419525341018782504283973255280673439900380404529242044227420545877795106947547061544602924719742906099967332510657959323032209587556723229467161464560464305909872515003503814086448840252562161377036362374406561853027524030645691784029981720790692890652123041913103509623693256130505752164993314923123325557081949817391728848242665831304983087212161662541809410612975946444135802211443638026923194344338487629126382129278930671848473817910376792932840977383367574568884855292562379676258075052498464819726788975765090644692057463265515475300942827209521294160278512778558732788863223742157770224669669065654675081555203307476062501797671453176429865242022463195797351372606862839885284434233403832949458828006133335547481278333842367363922221212948164859432578790457468912833820599225344909126996963611909435206999690903159247551531976732243052440894294590404708056576615297033557484361399281501059383726165568762019054689094247484603894387719777876961141279289995334328070507342469544511255187208722591970651813262789982900131658137121632396062887730410744497090058810216796784257911193518782828102030302515749045861090676446150033919846784462269510869563284452600990578630391854931953923317027401898680840663083137414694000236483997348532335836101594134917872835629878323956749601650480491079677119751425788590406656557537744385448829554128802285263854567329439195421496333385519510549709629751312382223035496904495357028021847089625061669874595871466596007449262656643306841511815914015046946882667336298153350900702722205938826333334640563330380242858188448567287620706284631839238439174101671613088058058263692031261682813559147130253081421406880072336535679823404499959721449010073760389850077567190306908029142911958124201244088804289410850450910752803567565838440773021793532066940461800122311758986501878699715900456481030888553087718510603298624906203462223766228167540838141502903414404190065074774595820667035908625162306143445196850428961509345763082119772358315699830654142433364346937640477284904061895564212479447360612968720949910775205326212277222004949920859753355199772305513935986210149131416829958671859005411851601904935687910771963320181490485848048742336385935534365361515154586195691216575615435571222440934140634876091254563822591620249406654548293038962102787245162732793452724710235243442702768062063092256768544976227868075985005822352831654775878479660255563326712710234988611167739921747263306672262215476539513427336869750801082519742638044320694746990242184994923130562951595324256786552633687266422525656913430396094911953845164561748690239964366498208171724154091621099026368334327524184761945978578135001296111051111055429775753880950178686884280235335868569667954629396997015849378884606817571426507075256523271692610993294396246192996254853497755482180578720460156462773242130555125841165151584839884845140470050999348176009652676529141008358697663322412944041573090099578494361470128810489062576065427340175658775213111946978293150070733798314763305346936188933751284930708465897612457237431992984939080389963571501452258575633123190046964552590415917627759682514219023260420227784141660521712774477352303931999275779875280194243751492791280491486394047847933788602999362254617406715531256061347292149356755599691312757274324058760520805209276824660840023927237573576644858455783240772009072173188158603007814721314262524207401127322353405342217062785646322273234595880232744139356166950341603986923915424022313720861230140188132148259524683620558615803395602039807581564475956853000711839007795492266813512266932236224969816855169876549104034044269775984500458593086341281414025617539769781133357557447028592700213344866081171414579875251043778655375528160767109901744837664166402224358107975042385704235415995901672487136185561814254708688896446884627039550456388293810241589647700055734217205643576929529401702361952196666424037317993940664013475067198223585815621381821566078395651634058993979270857934595519095879174350984283115868961130704242794360114464538302475189323968404023792738593796021492891523337764700668249579237930096101972850324987681767866041292982285874077528959023230856079128478854850154363082163507658385276919469572450133602938496946234605439942627970107089294029811700193764150824594786571410946002315637713831462801048371009695087111093252280363020919758334072501264038240860565803089673770844566371692851513156314429368437671948113048710064764221535470436785197049090619391443825475172865197213631988846412557805374250013842094589133245828664677541127963839565282643172952190770073873611177090516251359322873121282045875312220001062996671079028309330080683969662580424636299680239880052977093470638916548388308783635762889063995990338648473198259914761783404232081525607597746010759566754438367942840204882189448833932203894366419121103223327585398158691689669302101699511772164209879344745421190127028554684745882964694920198131154875588216138112661266566601553156600053611285721431062735829544196437209357109077192615610429110433711690441105260354287810495638678126063058035671628735550545621885425620863749056166999436663150079675488203801449917991352656149270714717679030932753152527900711415688356662803863359378225959010555388856017882646555063662948864539816820185191724298188425770379766888180861461730301085549599958873307352814809405577056119322303376177762187205859341252121525744354719693707537632354455998105757147609360845885871328483464385520046307777070623290958229035826158486417875988443947095386387165259288297297389142884956865098345234137516288721722360872092779278363879567516154905193432809196708590677666298033710465560365356935739348853508982372691061078581646299603340240817795912864767472813195085425664455097340704490131658280168139730870459393322170962497190041300032732575325811020068550959567545491807044594385907081034669782943198180954636560677084286836022631318004867135971206821713947808999184366036964435333139505517865251316987080605622195107681710349809069075660352451278224577879590619709783562076106817623893722611226655987400848618436107115207400187970465285614320480371617297002455038478905438096069099296987324358462442029550762989681308879293621607118500566823880275994860735782173071083963579309116352767678308925925123606379276823960478813693480072443402900701029659389078180305660422446147695622186444679205142569524075417858713979347382730331977372195797621933852759924827587437216621352523772346099927679691548167961820680327144305917370802100479581834702286228001353845821125857278929121131060784284328382293797142959451962900191234744017693070521533928322175436548085719172224269229214266914580777285694069005698154802635491576082746046189052367755781088162113033427926001321804321947356314910476047091383891780804938929755711037572318787292632755742492138489284655927739358114166635932598059768348047064665528263192599949336128877784807257984627892465759948158429838884368399642341986831417613098632879128246628752518007382496662887831042711215819883867822884300266732006856855338793015010074670587388729957611527742172129935499812721875222289878302610447823518489738940282133150786045427634449947881583338003984089608871356546983853241173973122887654324040173046351638313786182732598862005031112372799695852429623189279157539311401360243960364714069759404017391439119802974092425910888944269119259345274989060008557394015677103690357701253225000189466476030476487483066666042870570387994830458510336179837589775750376235942544830548924885669712504769824092527543302544507004693531163244221878517306760907440580456133060975855915930357496040530609466270990253211422805512351596612207761377842155830229070011588025065674349997611137440564390002582723201359543571249423023492534284335256274567313053942978116134746064604194133724789749706338672940554709772582880560288920504137476182146830581322684244379828480331562352137045358918428481939187070061070670484826201679992242579352905217052964916861458277695087710389976737782500429644967015465900897314858996059165009515948098507103003540984933618580105275964783803975911996738434831985956177208499978475317100335580817114525384972297071412029302306986693713455616649663906763820613513391865481807249344781620867808565173953751007869015603563095455427360460336954362651667614292741483807616426320977643834505842061318968657259184884393451779926857852129616665758158982578140644199420586021244217836199559853282764209517871053189290572414862054892555168127489648915683203774099421968153768981245869140767456067063974376333184680165798884830956220646131707938112796199166771789632124068924054927932254843553748469432070205922979507828901276592193807066304401121645062989011904172222765568987837020774547219094430681595626939174654527411784690052857064548921699075940752877270759403397907176731145691179742283958991417154738084244543388457856483924297685489755855389357672148401086945065896639913566994462869716966192391770911200012779920185570128255206960086291305572850056793560950860470586775066031346933529594296797091413668044149368587488827807295927810128327572257727004801909083863915034042744301449837766920016874858435468453115124521547776764878258812080442555304216765178377792202550479124839050961025541243277122889493349216523331579924973853471514506056235576811875863771067237180984303790838985491872222946988410089573652053120024320575797855743404638596709014743165241349181100389518784279999607121166037947244530405089571525892345771561934586736163444489530100545724352419537873404144802157293219061153939280594701871583078542830913255804924890412537489099645646979577288630280443037073715556257979128611656808333445081231582967120743378712529387686429151872030599293870183512092810989267736602586298622867243256499171647278134612182013048723025979339617734823463985947404888100606197179931535507564346220640502058853103162582346749547416174951057926079755089891445196252616218323678043189454057282617285413208814696165849027009494229228556318903776883097698685750696177096185745188575707964833079406706042193450372603577458949772833906507489280120228798863424967385918336014167002209049405511872726443183532017505778500583438582097013178497198271564655310923400592956898048745021050643556856554831245038895574781422198863225621366847185724411003460964232960760590728546296121959346999091180792262367898065858497439276416753958375459750774738025969051202078273790521464704943732946480298979409492937511448434307942586762150300119342208522911216432589823929338831123437100339767502877183639546802055681067977937005691907857825528676215308627719579730829016317697718872580008623802904043620180305976996334571397588603113926815246791303081856489389662949776017467639334378452079013384063868151930818653305415687579498420774540166117929662048379751321936865908718823666430161607456311212705664086447407673619033613926010204489577161274823376692020061691377166376443535611464771567358636945261972570493370760678933699262888764756344602968874903059298026159111654628833821182122540927569862220702563988170850150246162291018565169233664988418510037169934391647891261781681708006652255614813883705857128379642657422345365975173637872192702657211122112583220504486287470184889271428856777043580587418924025319473412897631443647355806308202878343285162849415716849469599836541712062404420169242064314266910563367148265285080876588658224290471549996018011359403699230166355929717688217192438800975960614713515711274666680878396873953624569390441462556647344943517369061125276373696767930260815735595645388371859984970812861830750899749448789510318434929701853161975952294111447068130175224971955099604678262382823575620189909752169031324065432590923397786540590543662526307482944706943327002041250095526286980500176811270978408963314977774466202594153787120922510702436213236466421173010215249151945451727587836616646224484450898513590708732528476476481239447308402714559212038490587594773165165928689526116046004157705333440072821318672278700258870345860799985007570107673629118557915224531030848449615663205941688412770876127524626417051070199836366332591879692233583171426507559465022367414803674607698675938819464469405704193003084988546886405291541843067529696544666662573760670417279486654468969717527906730792861362203207418110098152930615400047870580490611981492222335117009819895701925616161304822267184454422459560138102467674166726469579637479596383202069522432986911803110954373987172704336400716041469981530642299774775766597118986573512988140850774944952936473572892119239850270958876085269556628985028211208258638161179935566409324341932112387328598002541533494429157439713894214023928381123245553293559817418472255145308250648583075642156681604546699569675893249153280133802177323216751124655794987902431004197705988557145605234851431713109208093241697528989846844698098103537483880185040389886542564651123411430558936989592964756597043312452900483052837398140685236731606722841906940867528020469131600690644841624717136459813620719667626057196143535197637825001512332333478915506645847882632821099792017511725663820223303697233563628041712926267858816909073940639313986288175552624919979660106757958343454661854424437001682837094699808710272817666989015688662374718265629065678461982777283154841434009850591247526049717353532480907938008747853962268257678373275962809853194428682708774136190776306378046230507525095964117251635613330010578713904206140957891271262586150514523533244174859849292094357772667787803881388508996264984489507052317833718232517616255271228308492840201440178958717277154868472112321982652205383374981657277236293820967417841420459717887918109527166637195742373419733876771392881882820337970394064178445567369032433485107559922869448108361737707836067011396466513038477816838136115543156433573492129199529468364807248160065644349442414449612900804530979479919616072600478493776767287430373033250140244974115779233996409224524090836136813306189503542019563478954650543713857840560469074999289624669901916000198968122280108355017299810840243799171569405073922729336700531991203352744265500934882863278585498290426042632691844347569498153384160871906540479275653518848933215531890095266319740890155117091021630713125442218118580946044197346316524039889517285225705500764339547369057158505174455106335731058457464248682267603329230684218217847065743841590325668318849158231912720666527838912701127771192541811508293789785365945309034140933610906551306926480054820017739950097421752301894872840134808373639995345537120974238744489931993145480724249896441436767795918944550684007719435775872142450543883563972424966294254268710969635394170741275535186026343153529810667743422888773954898000686799913341515905761546589011078759641585741592145187929973797049522729121161476790647870219543661008756933430788847156881821244432841837199169538372792649137329349436969492091737687816409806794658206989507446125652132490418108982596455523750716513534901302181271451783915314855746560878940761945264832322148748286686115165404244174901400070726178732394647088608004979814792819689425254761201998993161670303101576448948632420767437393476374753292877136217017538377167879722735267373563751946972152420632150608762805966737179418223792106452165003748074829660770147983918514370948060638159859777840503345034841157578405579480761108492366704689157764955311857046777530038409257041421487006012886864625006442012952603634410084589543902183696198404939344074814248591883719776150834867951949836829887165900285472414771915150286521017306607919510322991224421756170561242889226269479369345019408500589699404572376445772172867661959559482382755970487496070273775917349220039960919622382267832416363213586991974393567670165196109403628749569683752034574444048262815970724763237654757597640969323153135158384515875457070546256292164601069583733946655636726401532327894388286990628891200205296830659911730662192624491510552546451502877388690420725682191957549024240989334235083745552414067594780589895757103309135621873009816565894179772850264744694732212756231564591689572836657351866969603232866709272270849594604863186327839886484669908964180590457825163856891267844357135893096080779230960994324456179319371207315924299935037590169004738180299462252769113491847303923746987302367352322012946545945775953348597641089568402194325742342195469519248035392488605110312726345779065166127010528814278743696531745442421133936548842754794423765047814789347961212082798695025567326903702551986434901043347211519606570535582587712913716162618562809858869421322970340743669190453094035035263975477707054661533548240826807682923391674977948181879316365032476711811465221270640110982491338587080570350218828323541835729953714953752914580975674437547395890234865156128926469474492552313269384681499835657045797758766212696578785722010746712645440925473421632740847069628296483503064337425605999188983880983159488058104849692338568492039458876008052744304391436987230275427960685377729991925544659654760659110803045105200903323427004050643358147483941588115873315926923436283204365884017566077400302560726797312867119631676317104137508776068270530961202306090980067697239172928646070145419538331140701077729682837736000688692080329102645407313733869429403335541198162177975312461349803365454088951307902866329646100318448033925502489742587299601830340165828978205554160995379361821863090804681219708262482897565083692977838067882686178240175164449909947748266669495531368107589345738792391294754987088777644191605920742997108426096864754271239114807304033846049714988740683502869520197156632693924603017739555791790914604519758409159159892172503302294131698541461173976552124593532923089268181515928088623994848388444871609586403255725423223778931422254199906161598533903900765775237833308116131939981678106685756784638507384866945502670887146227928918528425715099479234566802908856070613578112217314419785631827338128273184855689771091341077585650048662169440376878643617757439556067861875311772190542944271766894990374356524773679270454188883689279777303028630868086584483283853826851078043236813742809380654594858380936211995901347097429313308467949585471648721957296040808003145890395886638350250291009341427957630511259543723775180900610615959366005844018315575708735709718280463724373695731785202913260623503696921792187537999303215857274674519527131394347415883403366092867106185678722976743916490724831377831387007565154664103800083023058626625217537335707097842004431637270727783010956100443191905704486618108417417682690958022041590197220092196951398960936013591322183287095525065181437490251912438322308668015130674486932011432173310634434208495182611046959546143722503787441869717606946378564304164543271310369552011946867105026232807207521356418315279876321993451005121556887855668115642210288929107707914028801800010587457378722159683360148608809305193204000109050394587343525057583487738551766556062617487269209897437019430416681644169650651497971182129122157562687213289706652552689395539490789032541427636336348697684585012541208291652448891681486994176079988745674000869981848649466711905204777340600620489486176738350041700030213991046048633925912418995060296111725375439845514294924565282816895117070573697302591195127148887006454864958938245762950362713131540529018965860589757869748469217407474795245147345852628002344588721000532816495376669637036513005577796556453926865224097021249069265441924838389731284153783047355967192671858736780801984661010161610778895205759073888436065122108366715865328583912813499296293103403229552854074124094029141510151084340664117954688769745240968316788637499456923280162900401160017911987173286650832629301036188240519933453971979172812051307399780945892772747037659886498685995900936388102694057026193134585789691826027097202659354943157645866113474786257201277698198700204806981638466336509179833020730296015539432307405247799655805049124689801374463057039806283722978508931105030037328285441805098932464555801862770692973834312946536156114642520270937258606386216729851214225250665440652103099250907613354897433668466726292122737746312210047058203427168916037893881119675829179683462616060861448930141076008199001053065165421948997863923606200328577587456018673499433854302867674016986561294464602736930104324798410673295485588208860210354095278047944161871786423675961473833237474231785153260055761037378529663789387281095261681122902481244925591859063484022555513645046368594719480910429396552057012710088601121310992358625748091518274335898670766893915159334336373713451454155422064060672226008746383986252970259329869406953087795221815025117496298903150669821611378201655460538369160199060570118381113666778919759017391818067913912398908240020488104149493292768434559259737484802580646416469274965008075279855352904953445603408237541011573958508328249639879567901755133463682179993675509454164087291218954200996493188351622563632414548355929577827440164604476482702237451560270190643916839613498578639153102611103160475433887692485961809808338416284575074864291470398495874949582057300257410311160477715509866097406648757019678438323226910759512942938736705859588803299046099778633405888969242948014547932979080597033121504847816117198020780847999204448122014019739991868118593827126285379357713943581665895398731963604827141531539214271389816048740843513359761764285703648394115649594381507504817333076214000935610202101124162633750822702062461125699247043623084796737099654912800164797488429642029633380097262613416452025122972266923108711745197381424648247844629651907112395497193989687361782026212861176715650830316776872010500742006178036819976020447129934561765200660656281920574220839896720835129351831263564421304102639290807486144850853934925306632083859504992986663618616586521203317231290841195031590590246379074926825965338246291607567153583175486336502602294242362530494603425189023318175137346534424761490524376757046180384097761507994192503115625279418089544624149747731793682866232980150943002914474915765180933928532214591504851636560074189893796657401989925843335815042991565301930159114853300704536211927638017305409080252897712669525163171543849655099713108993722145229821534369264187861447442102561077486633645073667496724404957299867873082450158182694024012107507647287586167568372205327569417322278416409364902746505094449529727268856873806674199088932243450472171744227334506336349761410350574782784307303468046463640264815309878256672469775973781854306582375609589787934733793099268767047286623144388401585639712745087611801170549833382203341648500936504094841889622632379281168125689191718401410698224579024354304668135297042238379824911985504620000839304282584132429513052174169120000421075464207722578757639995655012142947237194573616827245404028900125603948423274480748869845040132646237491699047143485525761915400675014719732930022454480210520229742587026710650516386061249714737703019882398593669862870244899938773830565085498499650258592217038961075601374260927553739121580124934743244474931537425634208893759884062669601914961725722158357215617006550226090935637265063837497680135385043538098296556820484032802354321194041495826384819706735784379090858579811724764173875573733448953050171147451149728798164293377032898449749686490623847244874163471877320762475181500719177516925113960743806108395832208109894503482276238783572768489058037163841554431610519432544943653051811907278233993875748049017323148021520216422376770932479824217454791750131394612247161668049505690106764079373722155562177643913090194953016102874704487862827703929985016318716928723433441369321746025156004127307989984499769566181966178496057051095912209552623829150383616053553582678665130243584969515627486769123785741309848189818504106179015168085102805529953350057998144194481921993072726351433976264080476738545786497019263237012882668169171718642468746091237430135592437968406994540558329543125567665982736118100708598706276257687912606069479150376453586105593715508284956454699172360815507217045214126328938173812661580948741213761763775667322360409301334921757879280084068198930424101832120097520313379714867854146577161107363821360581115117585449229986579696135784505233951928762756423404136061990079554526407101654737783661646516621371313139078651995139880514256670909723715972621322889610173713416627426437387625177673515167872560623720396255599893517031377484505573295463110062921336842839931423298691914773560155591659432786813453682876418248983193758559632543597819000113371913021595644323355221191125620145244240473358457120504207197696335994686774769060798442813311001646578415729936617272711300774207114461703110159123397621419353754185431723269219832291602366900711485166701929383695748464800454615036871584772755900367990632282330016544264439611660150486067612350410553044265050654206709316447004033498115550285203917878380945285647153902464186899364581731050882526454895270559841597503295220173216729590574801874279245444318298821962944274071422601151993710862000157308055759542982920012552454846400755177420140195763705643404596780001090355789862335003616495238682122281881404496711320612628633524463229234716688135018446408511013754991561017601127798585471240532488795731594128202656765178209914869983495668678072564666351807623213781583994606809133195469621792804937248627422592264153540531037706040667927824956829103270340590464618970289201937166966637884056216304465114657415981644648147096169632173795369887533552611360854916645953840773037345794117679543832168464745958575568028707704412036850782904870329174288028919216167006102443040082211255198993022905468243956052644748812977384994636150123309496098040738561399643520944429741052759062599304508573358552268252650335585049363549011607852189110645641796306823358245299752308156996463345481853621225095253642949473760227991319172336383615798585758718078380764378056615328127863181365527609814826419730140516420319143010871765531834344424492871892162070836496987026727363725525815767252192263857168066120033512474113815726457633522018430533220949572844624504751976181155812012889897810639904559953583431041205858046454924278450054544182557036760103759664603142091506007124304979917252986492571489103064781705120810221260406353480469171047348288946362389870562260279191596058818038621978253130528080163746728211662785018084962197597782917637784101554098454358749787574956691728753374625900489356454343004492632159269548212126522097134795005597576977233334108957535626906658290181777285788263705951150989372020783755823447188489892564390160852455479606436892188112735969850365281868978695328186869931892693642030710441908983184134766967407484625778390510305236748625587607501795964659199990936491850145689239848987393229695364968973423545756240281603874596879962076405954720226019663813734670206459992281007048428416083166813644970584573858348581086452890344953447544383997686507425973278316335610658307366480240423797896919309439647255568944703888980320727179681784676015491610473803861052508249206732901739301390566287902698310280413208869880303006118353227816377606268389978078783044584641779089032087097323356209461003879098740138817339535583105724562086411451629267103078292621016378014651619859856733223837882230453769983495633873664400458685429351936790023531998780937134054353854303090013695543189587573061467242319412105817404870544627755245684399695296850983135446650784238621359679007597068526986148833393294536847354232320142320071004275072843910679590088313810686576391155705693677077634319423732330492645479863508538873556256119369140042011324773012887489508517644720373503310202167747990152678275894823736729867017670424200114432336243717417778877797792777041733690912061048057687811000432040551132240316279477008547788321800347548967054223432289080579645723489109139637511203418887631003553177320201390105635711150383709112112886060495173040516004544361142814712091795435981236957920505952532680109391231308500267113215122096832301228033283676420690159918694242048248031552697303778341011675617237694907245940191009190497293587418251456707431210894631466502250580704853001828787979416778623160849023831426784055374508327548286965455744798068042348160177403316753889961891671404789315293498601273467106100988273526964467375222203340498454812013874471764072457589586677850637320852681152100654918662088359336125718193297897115700651033448154807571288764997855937163617481472059548526009790278568903146918347457077657412658297722698460868581597044138446125136206505703021294320963274658545916989512198653134411543885023796100016663651267004848782815590909672979749287800214399679377007049587671332430083214546096041204431340452250396242716474251456044505191577035220620101071518172469495867719068898449571271595173640626280018818586407148467562082292955962358772422142420657930224899127964481614088666641409432272711700440663342561133419524182818070205964675793184287796187042060528895956291537923903656214382412353979452231096998374201811229756982155298667651601974986685331764138401080549652543096510632297601762421550894540357962131930856833518884606728747113113079459069688988847927234304924447685337535708552217321825420214464397954421319656796966178247780770079752045905986404625116619864089208407432297269733540338959513021866745130848735174452994846958545057558488845247149487988966990552835530105106046328617703078453570133684015354661637928938486626734342729816460172279016658069479820633434596574692254048812122122669797801096238978849098525937719463895015439874467930159665078387583127427251150156498483576139993216418974437489683588462740082345703432083387703226893083718353959761139976610481352138050255501074335240021918439246441815186521950021102621903958105527883474054874295993156675252940729667611616374481740418137365068883517521639744599166948139548651484505153330710522600871358338472658649251439381593458029305072251113678160833701310310066352967339623112786217041380015665353986027230324676844891288851242167566207029753687371117518056748909668573629843419756716367646037434921924513431970096789286873881970525360361211464284033994122917715382389663511243718707993694136156686345351404664988984671726084476750909447037624162193375405575509628645897661128075657468197203705489415783596740209517067138146162216196969192186674775069208081394197140757445680763693639862181435622121366456740069893808805461651089684054510786786513797417719668923622352265656806953154938201256009266507059100444226203782513952122904467621045142514358927509192374870939035715279637442694364745552443495424703882491746927782362589112450418697434238170650552647267614991310766464740372235318555395788687663426922122347684776875097991296607142719935986635063537345543404298181175858000080247741622121495151250453177321437437387544043008401080929065963133833332622051966524382512907284952780014770639184886619952389461377286172576992260651562022722140989072166649736389211133678515166599376317399658246367254041923577325485451699110871009822119643364979455652268085681964303771977390552709712725687360816095838519808186244734790413249362063176479462184829730941395490002309152220030090573594044180509545642299496783341408004638121413112208555001925931066132805682534158614847544964386613643948851631943487530828628230607918191424401824229273368759885788915560152129906860740264220281222322484236371200217145188814511803256250029731579948570937427468450954596512590884636392736107938190815697022167390752114739227433159870675035504580868621323545863195547781220791528574011067804797743481941801103635131218269850933966860267951449681809010063119339424334814469786418462605682101669532022074630801670685970605761751218815105374525904339539705762819979219642672970215133509543388179149380482859696234336140844645904224727368494339200693918600746214412082369001286497867287779657841454273334337823734873681635242307942086663998087404062459346360488074052472029320823262797071624553263404634687609680424116370841497351563213576109555150378035413042736255814571182983615012841521357857803334522559854242359492753017869320721959030335757266992501975592165977405699272014881573239596172013738698056220815365505840147874023353969052546224463784644947567984891283778644989178816847365748639725030144733246880407245482255932296014172479740552346046869239230342522916314993220943475019537064767048580374511266281714512433507539597068216930729405542093328285542518302661086252375953134062158750195121458287600910716797313951405090353843201222042660467509454482296833615105778418737815689864780617089433860040516121748232753523679793434045766486088046592889489784248146707835423942147151688175777051213429773006425209953596737666087525127561807614973598156966565192568561993131284791584877032464542055963754590083553621673370096184546741879698632890203228087908800227610388459702076396957305242981973614146827852552403610592674336909895694706882558058474870738808752506231634298861949052494704785304728582373083803102793837042010339381815297979328055582023097372709434945498780018811004429755967778486976427382887794559647871934832639909275736082893837724512994276486403629575656299751630210894367553134603492036658099474359587073212619305096081447324028019668610169478384212292983560170242385922724973595131459988721185054219945357681888455273633767134147781668292633735347529815579486445306664503483424746362486174726000084807365809787772198061235810120151137618499610458890931267489365760799344918610753195712531989631823319061154245458714919144958858323949618077387532992442528251921576366914187872046296771581671292262295285685179698852184949442492751047857312712944114349382623844850207673816195063052097758573565216272189488583614961000644004088144530360379534664606267958458716205982045263397352078542039271148174921785918606354605412563192410695944393967599417547367799434883920588476026580772592519591167536563736611624922306948762847487873693380571316338406456074241889637847005556626225455293373777081477082653918750669352168037788972752940727629361897833267350452948096252852628278648822566487269303131349617267828175132528032740184482618941722606124126744010704491229315224805683995333538279811101215791257990498923920532945677425170738523991613250365005452555992868927277209636115791124834233636502523656611823073786658017511161029198376415635612742861361378319478635099301593307547024916609431364812362302381105122268832745130101332651207598010580139908570109112360744359848604136474213702037262180047930073991278381233908578790958882622128312281402429811815152366865217294547632656819921841207686017892514984992891279741837430848077478853641120715529358236474953886319220082681668179550300286265180487727419966553177997909184479109242542903539556914839393749635291756143563071581630720776079761188231234319970747360174436093356099461758709561848262595529447293444037765388492709226777685737962684335820559193771961709136653122941360087701600399873760772252513713229906058531684132890183248385368650734847948946584703320690237271241193314602375618069591396788258756941712536291456549787525703937208874618544251335463603488279167827693025414099794334862396139912718873424741334228328165246034182774043128614983601348083748775541729796487608898820688439079432197069630884837824569998543651881184141272301546964566567175151578535912772053355982767035303874445935428629917322534148305766441776955558201404445709411964846463224245652737247695075498178419989248996012794836840153202002366397814132886322560897441593287026240630817569009731958403092105269870838478279075701995968461005802576929018522768146687142452116826225295838542093673359118222690775162717023770269012115182411868258817720026633290542838962771018183743437570887554539941264788845930401443252374063656997646071742247911829049070026860933843327249765305671307440458639678145627509718991123783662540631486351882163041090844948093437437867760532431162747488715115735676823485125957802694082458426344100223017527924443404500451580611793756198355976790630776785842984889136915944887332194042980599822679549404891091837717507344397368709004845647621133874537442464035602072738258151201603013989781697246520289617886013555471973440012596190336395972618674331582264291593902404063361257115949647869164429759373584169058732254177100771221557216412656039703846723018247067517585112567936131948607448625744557905766554030947470797595476095021669639594066825025761880473582943009518829586590430120134729146347984797943984446441253684409598897310753542739133381406043274095426454564316196735490083346340374273424149308750185901015029642183751770828490257231855145554125940767310485421827771657880095818159700391236018726723322810608358893648718992818859781091332311269429687057285070339758012613966575372569324264515029307606014799924617236972052815915443808791560389442126793902810753379788279220650189616044230370183736411302115635559206699765452688131486524896004016433137346841713377151416945243271584609534980469494320362548793150343661019554195205078658965096664142885936614952551218251544664583228014252389348687689126758896981425205608755176946866646804486257061408642226957162942531117015384671712153054326333692964077641193214788775430395203094400332958598769597072358462142694812681833326691664680595919388762046595975223879635483690531412144975691731850450382605617235929006078622896307165911785906309276311708478055147296961535452758805923456438301286215596130910916922268460545448037274095400460671307542766169267942172080922959427358150673302849544485729650505187206254802600737968571615784857192994054945358093466468286990532910401308574983489096353529168439712888841205696181299164977651342605733393065281806407166867975731808311870534271639995216023079020907917156057437642639931754407642191844159527864782610357078946806849332189347864351141261038434434236626596564743521003765302814096558167439395044497058780201952317531126020337763453079360978160154852804577059975400124973197638844943400581888237415070932380108866869017722310493200457717030342281036022858785253505503805714569974584055368756999765908059303272204609253368724370232123060005611246417790283757301573115466163965689211279827323539972275424737107967368496056311899753777480846385458086260894457133440045601603716961512888195194569751955492359792625601733146255754435037651683661103295376775500677352059104383124070333244649871899591836582806083809002458446158124774105319095266353961140602322708334515245935361937351286734438980750441765881665682421673838653270252562594224893196137857435775018508112929844035285648137484936218533054115868087858930109768713555177564013858881721145882952851623248432393197716043527240192473783008113066439191287953906078286256363300698436914909428810669003505293305438346065278447589075698830326646411064888224343499035113170226158692051813600955689985171919632884742896359384293242073724656320029468537381200641642092230380975171399712349184470050712394136879595755631405808697956379344211227146246619127356024726656999277967571113883170064537309765647282921642547926200774243537783159145893451549741263912401952611744025018791811215818553561655721674208478861770436271280469116746392348699828833279452328805645483938831394665644273047667294169656438954462817039182989032087590585482207939461465256284114088431370779492414900230152144413710599757931243887478402587951869443629686410535598359960780286943462403962718276527162603068136569899361064445459917460956832329290270739658567319900380580757333617470829006967676050129286737565589214415391958810219119479768971260838127987141298274570113340896082343577711891107688234548725112558172845402337631617922241213900538043044900666591965047433867458772950593076057309223283509307616591973786081554782468184401713607710578146398456157345328474970849766219493202098108567521000990177639979635008848931132631657128289118894290395734852199495401173466977754050028342880031972531458045608405749621329102865775275688982780917994819299369246754097832114526956105219147580100157700707198724593811095487748280638003884451819034221063081747778722628938830723269461876411278640753933946926956801687716027433197220507630387332464560717857412102425755969227117761878389940965539047566855483954995246844464108505330044182597494607851189376599667844268712976076595710538209895656714611870793406882658378725275142588437306489702903086002200268712440075298903282926505236375249652085791771581154566873890854284493090235525066424822484949470899411121912902884453958813480035810196599815725492512765439584059349452364656686398611166865559980027382235508070386353746029391111602981952516270413133999811857398801033182756684144580177249136146362446339390908311200081491030958445698319746649727530063904956223740211051600499533467922705778444240420754837701054123235273432414623027327411675910527341114307716556753653279568688838913283498142985938596287943791944294282121630490198514146513443164070997555742060816487712836407714568545312815405847558216283830105483211751038810020169709588538158582039123776741956464789997826190005584105091356107692501247974536526083889226631767900543425340008091565547240333186936790135971486176554917807295318788993783907497159421176278522530863856981323311256705023347498323628109292067629216989634387275633153006944498329705222003881259679086085266063399941543878609816350050444440605990685332242461065971514784219768061309336286336746659276953020767618403955553945598162658937524196726024879272572482514571843556609928087598139820547762496669430950045600814229720574699578070447936845702802229518500502740497248489266108409739504937995532890661234905338449061126775651264449154676140234674251089534502101246839531303013202092402021576197985638173363357330590334877112339931456483121083116464626571643306824837758180988336546220593256206936604084655770234188217766398811492378157573754259039465723326575492444347168893863926887070410692971379426557166883488910771671890616930612216997282947328040463688904510408742073027355967403418705623218817287876288185182428431936877861371483571415520342015847984877832305269758498346938998320371731419589472477123820308035675869213349739603848523697922352357224424844057707282505659211210865255394208582722768889218610085405652380934609333280241016012619454940899139129777659048188200992602792522374425893209529305288024890933163442854622745102732655016782949375248195614382434618641002830985934818876402776991718642096013952493615160460538741811654152375205870227376757015656971713001143152941750881454702257239886873971162975558398267865452171386009572379374635304137170509696563312344054615835367115874957074919582559859482078780552488014334716876233904276857655586061361760406253978323393378949133681251563722400814529162981218965754021969096936159704069280989083475575342594524412157960557142185092453755898212647630052969370148692215219395133112496835370260938425835462293398735218111695446879344601219926580002618975501577687426092451349520021089882702680764588442571468733012225120871044743597489496600056637305801064457448637578761328420442670380352433680631909832351906754313691640950796419432731369169937446439458477033534153840031337127361606239156242963175341569730310473351052647042293008099413762236791072462431048223952766646226709748333324705884396433919413828162902391735899781064714169828865508925067471484009478252812584935814229635466580229803597163293602231939639918469046494377752610804877875136853948160952292938252654521192962827719819870838244471327160297011551357676608760077367463809292595099208773511691088824901379145767001106614347408231974854547701567305571848030439138752476869446064432259596710781548227573819324739777738881183462980699684801851535552960036980540906022972134455339441070415918547788994291532616863870858220913048088942497415136727956027026608392919668141938838505192044494057820968564937751255031068642118129748598647322000400168377789877368940552414701563077875847453445031463757047262445880303195789119871096997538571471182205195825472896547106998068100864567754569963418407620501895176542327918126769769931098831649906544830488375209284992065812003941497422263885867765822173957195224634904471485667842704721893791666493794056690441386054223708681511642757826973622790373532552774442018984087753943601338147564064494708092612571746025892125594737409157710570564042544942110375334587669887177196282217276313517726827011145478123796604620986098340204434412305188853048783147921486879916949703349607759878057686884131730919346943170465741905474450000515383237008220103934193105720714959107834600624555048991525130020434232047423715616608847520450778104522808018492082716542378210822764334281168539828358309361507780621324735654852060216854582573743838482102819692602143998165979171839044485718517335903158285134637775671584098829907619709856104281992783576454972780542111648426347669545047453543423280391580835129141555593994647034644147195928203915836506696732715958447913923317727395291501683540586369226951055969956036051848335230507051361257146753504814925510463989673223036306795323783966600096687618189017267086296523788499107207006995302588541038774367676334139761672355035175518376807488024994245879328968852099306155979185000816664515014944268841325047469791860213754879655782252505654824312212331589934860518507154004270630031602487051340859964254169567478621882629399675900513468009991507685733500958837771992018918864245196926490317717747687281229637729532972797659276355532852825566883640644316944322877736427881123166238420633719420340279193398159171897142127211545838935484112183907818474207376973085982334955178924087921955383422157898071952329618622798685551867872163742422403867460302866590415668667805735780480708369250462749955866398101059646937015515807966721251304028835609628727229362966556999539569750054374633693827050651332841798207742941626108869736118308312984801461435203876114192907164044278224718248487716518345856657341243707551987596334940681184939690714171249189284114086503576726550420976911665929819211130080216497007036840491261073988299255213933769760317790357079557878942898400039553980074163300761477035653563401469940750678515551201730172362239457093592101626587760591365538810110153513938796680583175416732893202149830546657292938038149197727823611422641848604373005519805014475947278273758092995388208339204824387608819807300920672745648397274120911490088073903428469545106139306520084882559045057502989191702540537818110290128298757844042364019438733580068595456658566994843804612842796871119412646486393551532725979026826432666337859619395927010976008075718569688424240056437832124732633729548196292704095041968302394534104490015279398603988276205745257233772630274331695515692399844302112394799983917585654606802857056821470230685173493061112080139979753570496028548034243813705770635752626431699267433992905734503595354366227486437618012823305616003753886204514240170321025162640478143824997735538171763006756079101644980330204702595967231296863747318397660270671336016544510478464243956058061202804884910781441891392263005679763122169058766217672468329342187381442670076672138722551434700953934284952812539650600464926603032439511534582418786868714265197152832819224465113710598284127929570389747055449472901815864969675976741128946337143601937023227644009568581618603396673977010745238490999429546711159820640893139952461036042920942944416217875006191278684441483392741518485213230047371065537330587251016739463382793076227229537889033098258022179032185515459965820273823610376311293670050171432720179533796073067958181029050416108377268702901939448582707930128479892580465480960254029409666330842097845303178968132681279172094242813292468360037072455424718578318364097759083667449494137960688945744161171089054308485804509906701306785457692513233097188048726150242494370525157617890123115600194777424242298002343014416572280837227739030714934369041458904550647140289348656552261905238839427496603243403139625728297113925201699118754455812554284014806898543092735103103931839799922081639234441161917391294397582037971891526056278018931977062032401555541847089830735162290959893620670501719960727641407651819016304963561160495698015376645540964199417277578697780786777939344770056525015888545773872170974703375952619443875168963290609413622958353786238124682396286338009232326205471919271238690781462582606793798244781234634930499230436579361660951509167316081763516178300163425483032483440383252844716610826157573560567500398914191905329654610663064760412149097532910414452747276574632189511768152391238346975881976917982153585302442069267079114159749497959724140272218544855285773287419913281704425590217244899277335911247069889259710927873310186090119842976555418552902142759393502667558902653897595719663775588953375439499882957701421029616743440399615139705339208557675562977066223657748634140784599001770178783488253690294729473790710070497928046803251863342019648340658985064377312427964057796692562786338781419020305374158633200883933165267880956476023622162542472753166924136686766061978342640174293588172690343502105044810444841269514665187432507545823277502719004982964794628444401245435232637767200722957276218018293041138120119876303415578774481419147688581070161273718220766532424346498042292827071345196195351667725635550726291969077454046578801880267077516367119734586730483240180380126020948976366739173003850535113858441739083267670357439737315958250717710779035774281512035746803601568451932711762358528534016126362469588779938397746511383107307452045215676059473822646062317800237635804986695374889923686013585510744123802219766456970748464831353999118046923629430534320305452051092804293749113621249258475330040235810614290007332008796854227292259633625472735519679747156621764387993644945617840791125939563645797452211949176906986127912452691236866526025379690645315127602861780953295186612076596067295204096288802261323815225332137387267473563533678037314356732814651084327866897857532154887639200359583835887652723793449667026313149227793449066953830435399425555053784732325223382352963757846771091907294027937847426363445821573562110342063197868074466371217890100515785094467578857829524822414792472197938288595353718832114674404431542272836471876827712227645880019303195670428913293277545644107234604131353233925628701372467545933122736024512100204948478607582765320009240000737214190359504222868306181186986240902576953084013198609609392664200721694082516853857095698955030191143225468060369491107939996535021059021267511568753423478463755077549530049598605674826758487420043648334203469992153127646849753739767340036022664455983169247887065454647749946211959128531401160529477172533976174358783236632968676401493376744631649632303225360024565157617534460951808953752777709066561840498287309188896195233537181557844528920050869228278549213838471994730162487248806445539578237169734475590411844287412084438301600542666282670621275613419603030807747544276581050113217745492506662496373089586698643162940762036060661975399055182746087714852886241427367381569174308996043863919935733683225831441409516895874194711306843038804093376114023634469923515699813980011681589632325783391102771554182385293299447041687092988088788835306378883072331314958649055557159144426390563826230218024578736134890267331488303092078964846448685800409865264216841056810019755455269894994884807994008937806243470741103586091261971201320312525284128734494884428172334440177070373281196048287648951012204450872908509443294716865267798847354246508677789825961130180150245443559087960917151133633305497592297693158559413395044987149614426648467318705056773011925317212087172217569395111532563677828554168694917941000315526027486406185970171325884435147104422832547091568332038148617335144298337022467834170545327528995188801942742992865061631069465036236675991564518007071871627845044404691989751511305477283915669797597489358789130447394263853005055493612509605551457406578472422691673404455464394029463008116042011568997154465614651379388367845245749254414749591666402325457178168743808254907135491465870926893794115891751575933706145191601051467683386077768266600348559208317312297672921312568892224859341559397247177811944248897568335203971179629093576177614072942148131363063124023093733519060076724597059779962282858988426085671991328881807752090370774152131166151326511609491458501240496099612848390314858959635150505610580026969546780260843282170693095436056614592530089736006430939466641826483628536186951974428937667513963964208278957333873429147797614893619380058214974683918980597532792978212610629578984805516206240116654919596114897504182782930626896444259268379503976490061104766227919193562710351685359495640647447924520020269778131167240098265323341262337243017507024854182543017955907922542578263881218989206017191902127090185491122174400458666232317813843858193721256062420038323101554467370143973574087299730970508868669902444836472552329758717665854605187565296235956590880685051946198924660826409965684090467333431689763467204391785161291212042999768396266669813425064142160534378118397863000606695595606675635624007717730770673879979583021346227762968236391642718040123457993580522313160164862816962202277839247748564908556899535498721437516944172559062513110852589651380980065999318008047003652550997555291808172231674535192747795708811833039779016102018738019521983668685842992513497576015882114216456024865947699199485671826598177843392214269440624298160761339221587135567028286674356988775333663155317443509918346484754913024216627249892957423402607668326948481552450075378148616318730063106623822196157581931566785739517207305593286612756682411055829134225856540974154598392675096287100421444415173603449265375440201235846942878829928273654628342379331186049772772859931723015015134117339807417880554604257902107748488302479580494708879342418774486565070999664563049137827200009475501460209818484377792916193371617413697762093124510316936407401691059065926354985428589198961550509497406583494028538589567367363923412807316671052942248901553880887350498707822274539519691245442142901509680327013444481258984013103474779833724109289784254547205830822843361772639768703131796112302534163846500411180138944891448285706331346047219185496195522316475638071399401439657809743425522819290486318905272387613453168139386550409667909818508226748098247785888189525016364111534103121562467205842800598873509531643709650706598097775332955594333297893306651125365944347134296024234546762983782676699394622470500416299419061381407678039109049418874843795050489708105804843963185138970513731573410732236524631406828206011671837635274498665328704008358331146497586281709649132800366974724086517830866114787052183133690568765838438969699014537851369142621737563378781859620207384154514917638446370381266289903277099712904149312947820008294440494514731104147588156476121816159671367383596340405859527717332959512103913938393823232113782556526149363557124646097865122670417498156090377348743578669981851991400684507744534786704051745674103396124986349111851728722971733263668470649288547965358148428325214969115096342898341252754175871400180061893993976980905819921719274214036541170474056954291302316477875431823357253441717793546282088105845691762861247974082436846861521052307736724605326218205183910445157212554350280224712858944455853815672093837221733404135152641574169387410373858517978423207569899303580685076257674315964191286982611270139396102786217166464494525784648057262179576688723027672928553668041784310194171279769987226764457538336008003124809491318396453235681204791097594521582549006214166673343368861957812785159365038445791317765865154810734240986387230731854380603533558549670776919416556987692346222506126692673168576296013574333868407829112415481575478431506093458267836883671508557224402947951862772721897344789145961611704188313512653196557673084208902253081152776294658319731045533759389807103767415196231560112909076740975817422233177697297521563849506703279982446907423168875078792771272438520270038437175180647866701028454379816312263669907309933491442262786792273452813538353420194636522415555263008968881526932376573302228799528420898250315743324642579960830958133387199624560586464271964150247060163779681362936979585740580384859903884288261473537822873195392635439090520630321216593823105868641896039257600690281586282121676004735249411567013796500611523954767842355709325250740179632839117518458510203449105778392622667856765249637839948888697215469578854130429492570561742814240590672410187254101380978080302763000722948474568232025345726246091246568692643127109521788943383481595039756729353437643423438033202918815830367484823418811258547752586949398688838770416392723471077016974007788963536262292306134601132716887305386512311497146298334401641322942090838533243534954478225576113682414136086120543473199807313994993414601142286090500455208005150379915967045644604745032567845380532549932678142351670883932009929131598618468872436399417107715327703244053772048239178011125534680406850827325992148565909272719390085156783643947210887781441157287472198701609699727740268533901624350958917709192662263995664484681688962349730418680466257972087871514966210779653061402361418202649644375431103427501662324114053253068050503409037715289158425038895852552718146687556997616536740812801250308153042280191294333690352845388619085151454831824141257856866639050652625085997010063380040832303695849031720866953629783607205830125144344082544135215705930542925427125961155240704374614976067789036880689209682431263681296025779495241326642432162849656542606424880208143886753396015564304237059787125427271907406308666951285428687086343425689439065652149233023766131780424505315222226688820704956494581280626541777064666931502318263964874890581801876173143768125421574524574573993954561926723258450381284398723374513116561783096402190358932582183472603636390564489289345279891421174409345717057000531547207175020695178234050178087760877164298455972693438010833154766892019848725812707090161771440319030791635605954588298517300736490759187835997925034026145954932524483214513506704743298464020526824561842324813766240231020955590927807126662460483745835496289246168415109384582817911472820005240849708701912866847681320947711068031329064659798707514124615782276331104480858605084739597128508883596463947634497670457700011770839821797705663018557617675282190970199476714603497220179531707994011790076099926273789030143500042603526215802760540528992107333652435879162034395417335560135766692766582795983954537407840884442885234651022230388156211319965308308211824155927035865043226186192848616344855445706039911906311494222532253559682598832670883387856554741898711382082013941146333567883104013785242393753873396348942349440616040432766767926024454272666692621241286704719536861020286893639338288693576499053575239595070442911248681257571395260825376982214763474793421775126624863619669004985119652469184979072085106366911844126560152255883512927342517813083773619949134265066281383876139321319872358435963006357913110603498076071371746418992302867700788947326943343306863733609777066892900721140325599442636395819920154350294620444899521403308825821863929306359469480500636085543434428111710398151455484542939876947949252075717978093279169018482238617218175194345241774835915143161493282300750897282468000586192308949748460162460947033019329442572782985067694345993395478629231071367575487402097437571220342432399968394651198522861168817863381777785352351785668730952547995103385285462029505148671296249843987944581636514886390031659243161080312010817236717646174786102378929441200063926789634199799118430884684618413539361137453188959555106809708282178812737783615146497143042642739354374825414212390581302062176617214289109678243439241922153961771363079980361608211614416500329457570039516544471377613384097601542552278370372831672728139981217945601546942830457841195852375180189268201710635005012406655024232818051091919083805893061968070050421889882700883200348830182674770008990061358304771019104677798666715740246097150067181213459822461480454598004737134479995603505658512800028774451385772294606096991020536790009065569400017657690217516295773747802005298045094130021284231006645009732017494431503078271120703228458945082493169620783545238122268248787562455139798602286504820509438815618130481882948259381335400071028802626213822893824978709778160111636144484321746029191331130810698702394195583833790252897288224521198247860739894491730641607102769233039264683871101387172885372492218385557788941239279392424985235184501311912254588575584937438585529088860992839164653635331654218119880409238008467075136776559704167667199857120308093555069511999309991343355959143394018202223658656717386458718911390213595562346409908934509574521281698242999948297529363970198981030547032136240994877712585335139431957562703404618367793951958296195526808942765287991833025373388578995917878470631881770921153948687532909945109727747037203108872212847221642027908763660089611397426954026560705529868214761755242566313300085043864248110564211877022026519803676129803042690528777687981396059159098772538386022069352254189939649916684605816038378183262050806716253749559734293631908750125792256375094334897323106022123991009031602402611784643702849270561082654006152077648663407662031081293738433636698088265596817340284210837925421623374881872783287467060509545853530355994754631437915608441682315309595596673082545013710527329167176486810903492604045946537818770294909237968652912355327265248252875923625189193194708737024261942974725269604293475349891128003790000569909417859380572678063833775933021278637099085677919329872357764674330993757483216931329581024116756521022241322778783597669983597903499065425239501528235874359519380417747678352311784147267603689672646048587658394870167031872082162933282031979784340014579641749075917517202329670968442706540427791036461081254923860122055743933184542546682268282390889763031541469804146660267462822602794416839445667162844555216759859196396544832250054950273599820889064622406746721779210285805412085973722783786366214844916412276558834483660668691352645665016910225137730865703915687290827542081798779418235968883836400158522576039622889283655743418661741492672125403491590471189931018860344135538267804776971160682230376940711269760722112896835591386787472386497128463911427907354344235641967447492557805059460589033694365599921130707260216235889810565585367080720342527709127724318372831182407152262419553499910764524607938165681275248379204547043722783208640483796022928771384235490816353803358451894133985017021844607922243838522429524161305546664631418437127314139594079364350079925910340069746374943652631815722043103133664722247831777713300024360510750677995860866183766725977509552929365674286663332386454328457248023969762429627126924470072073958378228562080520313827936230998458433075273256919461165797754999982294668968949116265386023834612822968717417945288452157855738753924939372010179195876885802706400188482483825680612624408592875954690236133103220179466061965418790449821827425667949658097149371845233633845965664396139916383170270452417573502402343945861136246567261937682423475946741321798739478108226544800703798262158038982851033521494728691738783979129407583568329174217934711384532522517126838072550413458514822437400993754471836950845563222283850992217779323962254927153115233312410993342242244397094009007132486916969658727069702122546291144354189178348187003209662327898700825359733731111267131718952173475052189204571108503776003690522001496729898177651134602660214239442369120570235080243081589925067780788353225489708773811832150726529317037965659462581020598718099299188891214102432261318732893264680133429392047236921897009634674583332202504877134125376936310295701151334554694619565289878929245101587483290139823002129737872212595105308363150861939342420705109449487386492395297664666713808951115201311844908570239538752374102805076612263688073531599914243847743785096305935946283928492053434641265038224605664937941968142127734111988726646090400829709714677131064011794079130686425979180202738474623847662158441986796004310229735811601436360602816691994437797255521217749366744722830450466547133441899411894840661569172637066561987161407979959730717220353667825089865407193433089077606968331951595872655394056576652656294045074405726459841579439808915966072866618787348630322064458493411991963163757540877220228106601552147302018660466264493414322932363355435969805933710766499016039618315024417112534030171502347098606327389311613337208310409459944596275912835064527045754857887153289449195346164941152241426710137225793437123475188784369298548105238548422728363004031886701084713764454212885256396639482171054357299394128891261587247010049979785745528761675010064335098783934529857336188444849030848504013199222476301143248259689453020537761185902109113055766740245720580232373167918306392105815196804438820193936632580613473441598097875523512446577189043927566251571895773566333424869444798088140773627303135399847366007337564237150647307061767342227820623948479354934572858386468419855239386735485765796013481778673369679062047887068340773737040999624945586071244663504426758062988464363397475237755472033904992008101283106618195137265926251448214550757402865556904647286278615134564693713568298682208594729027020140134856944871599858253364345117914309935864494073836995445916524336627446945216612366012577661343444166111893219934040587169997177413858507174216987802496795923912085522471597109398005798734816807667807937082119282315757393938589286813125576239348144567459211989532431660664843061145641336862469830077294359081723581404953438618071373440339598995916769300125709692363828229126813633269418868122315285409264811750722176251958191454014187425555484071132220971228788144780134469920473148751776765032203715516563579250848858575567652548543438273300214360033044286675584489666187387860615205290824274369934653786285830071201012839506048695345510567002816621940477975504649458019038035570467403218128619044955034455323491305509358093183391470922689660245050460719946562526414900939649487527973510642021371928674273251053804518088043107571180153156733289302041534995132343484643567466977624032575871700714125345323212976281505525942871969633204803161238267445964464865106589798783553741928200302502361628048495507582990626853128305159246289762683749338327526142120889356218792275086892129891686722330135997308295321444646788813194080592849117394283157169106755385509536887236675177565138584999049045875769438393499780951067033621647392251906089977276163861001615073035287480531523391430997258865961789394888603858538249812859999327020668567736740477839913980630356505996331192478256528807592182495601162544643211667725522226451822501980042847880129360073869813916406828436384684925108132615784689581604758287057105704615654985818517594168802128918674891404801317641768612557106531205952414079803929731397511597124563932970068512413482839803952877911121456226791354118069895269881460748627356629850335662230211754032549281257217516308497520691476894220754825867566050034513935027954334061348150221628666880986261456534142980484677222478502895307044401932839313565644674430393218985515769617908158411986654259809993067128038932416571323542879671268942768991829524893359516823666135407733104144293376226744704040154445311137290582465235676568536837198493861314630373031232148000107907440503819783438948545769707703523261823816691241636845824443432349376517995249512878029177346814285648747633708556083746064308429540611204997413701920281966038419341173898538380859680170336560808507831852151669213330862112629146270005099736553100857393931985641887786520733112791220599468689672220205837374981540021825234027278059919228136389703739001928858466414961081160775790120205432795973868459199800852823936481732504608400187362939165268088865252717510157670333513783251640045252298475366799129643259098731503470057928287130705758331285563942620321916058945735568677458121412115663538651225430456152920058649621907906663553079674146286226183757914284075143576856732180665753747585124433019260327820001109929535771896539476052040707302134032398061409238176015453808121883336827946685596748274065861950575015604750019956193068167342887891761170999695677385981888391678877195959195259405577361883978298021531013081287194344423272725002788091363836509494477390549943030789269172587266358897061447573227965223970939192605397181025173729628167379357947425854235736141368280868768366750356648164675785062049482908245236085354111912376486579959024878225729818642823325294473834100909469772155528780337480425761268455414291387354558889260297187002506383938964103936959318457727481612587356866460740243689306420268881387022385627790316716089690846727057496221871601318937563478074446578517639041872253721899488867743079312198073688970854633985496584921664992424585177386682589306841070150767622006858142372780904455168337989794615571783778094520750925595484056778614186088420448235906253554702306428301099140440233064446803853581504532564573303428475296641001280061316815680414033276660208773560999757721776411057545030864057281273551406548128786743560091120097112837603546041041431702541188153983083641253836202804639795169886660928485235918578332042196194004672700212229151998802540093220020903540755542087133769901663423304929485589519689326255616183440883406782455206838402270401485869530852442549449649218829650115180484529755089739889846413898822004779469513923217315656138360232655842361564489669702283400332275869776906944052791653288965942914856428953376648292163379284125201114777310511412433626430112890035091976883678363355524780184060689300461704365928000898496591324615119514177540869618325779346831922997045550050001070384211435922013175681732756358892355694376055857150985671566859794629513595185835073560552830214720391781405102574317845528002943731558668066646543205346082054314513742830112616434060416143283799884281018038052502472064845548429132957838190390595339104959372021309107225360910353695406399867676961744599393244157135736904278190427871203097408906016719354527269241279376950363154923176058648534153841846955988376550404543215163606169333226545252317294891310788545776551978980650131905821742394921792029631603823852358345511827880583136788820693717616854878288704181646498684145380659142900601166335649269264590526529270984800983844083035929316620651070772450954900579149277780206675669717164724529719269344284751286924343432765693812420247807645173379251878074750359775515888135075755028662764550071229999212081733586433778842779573660335070494822268600022302466832494201545053506391875487353865015177348255783231835042324041671871882892471668950379981349689889158642565016414280855412811167988493904005734221529452183211355815642560427353932823903054431195348234375236307219823304837822342708395978881424180464754873167307378501341854016511764502313972327820487150015855832637669062863520812657721598301580026512060480631189251831477199249724116573542563508401521113633835074680541102660504138711789789753031253324019670886478353268904716398785256594108496844574642064494512836390091212294238349334904115748163779929065820489913043667447924272682350477085542500145560481588683440923508585253279217095926859987808600055529874604692221518965637268457449015530454810758769870064234590423390703245233543902047828260511262232198057925508724632185852332883515602893441238709682183022970883222981680726632976530731692097382454460873200093394481506561028482653214558163669815621986676890108452166347013955708027850299735188508247988189483937064708717451228425845435605627221857043252214923980764319416325262381041341750064961358219376505524251532121962892948034988558505219036242435593385780640594177911551846782852897415092723556603459865378617200651510977086126217069171924087890889217731141619976465460870343569076964956365118078107085828721981198313072731384542088631886760225573061266963534726730425357794229363083239717380619312148783789715269280829181332394520183006207651762805075817009550586038291800614636362487726225379764183741831062266408151106899425825970134132940452248571223989953775304510633180267817850099967481299207421904318624340694027767367119620498719890545111558531895896702703533644900718932400019972443737447993402198088415475113433056203394698055086083748368399251721155932137824178944719388114758357532984258384867414740115422340611590993013662602932543223032079119339398443417797854429906929827175392630284734240500001225909772394805875754499673181598219934254163119230291117556462725316521707554519967355332999301612358389151874799225536559035130738455025838777795526534021705291161317296610133054299315258717927818584741362054746189742656452759208614217287320198206890816209764520735979453125619637714552918073702623908416076177499304265525955948877402151173898160711739934492903992051891539549525200977412879669914822136609763444690437665314432571179477720005234773160379131498523943381915082026637016866173801485742511481475005834505798979289030248468150695611582344197068850007763864716238537793604078673170906066911602312395655058205458519146796550242762518457488234075728901188555805475199826429775095469479998833300738838960781091380642794912510215690892862114982200316380071127159159224232985710959560839713853494434131252379160148860116014318542368691561133994254139562793635555241908838317867516042669609530267806873613238520322382476669376515322801359659195948194051180715725498837105048471523733156339494739236843999198239031288682895813458007421130451253327124929766858880549742027778264780108828985418730719388590707466011918076616208305038218354195765024172612091572079281598096692682494615985601116537390717509551082336474695272021441654266759753645988929010412484558191281242497965499809757614865132568001044292808872609502114672856600017114817177853335320822520885030018676144796987489924768102799478775420587079293603081204434573306956920937619164082381316618065746921200032238955361874909512783090595363307883369202019257566524714861497508039105617842710231379625802055225012572931791985940923704882152847945764815089115557745603888195759443769230271529646762988259442898390478784089451468576977234408395548221491676947190767647985586663706320031109325041616013100403100737305536614168700890700531879579467666227397129206918193599483530747869866723869546178239158945791904946775881567021111821988964072002905616761013551704854484610058599198141636945978726428824281937998724111464289420770784732860529778323239611592880227976998927269209718020651611638051670861051768100660137829696293676682580436852893236453500114301700113056558554626251625872449015284902450774755518330047809755516641532636285944654096456654467882496159396144870825473474707887600013385868149737934605948906092169841823221580220309768363700729190512973874155445632843556371608181519166329184527169649221535787123087002269800611095263764702515312984791462138571927084849817683913230490256832329066160007581789680511831491893766901773053035239113752159250955281056253384915863010721935309573401621789992645005636815687846008710761444040322694050135252096763176073463811063682812205237963866574426718124337968686611440054440876296227086358904177359044661482159732724547281237635722352768544312521881598851572271755640261437099574970677399486416945394799840819221235994356099913841832307404161795762683245880700872497489927825822071719748228707829933711492239248305240451290901064901336809099398103971263168004940132261247475141561825232358564981723069658759855483151528507784437137660206068786596291908220382795145036416350505111620137380993393917459083534209905542157308264847199131884338299024547733271597306511320228998432423361784754023159767936828415698127242332001711538315921302724775228945474317186327001756857146956781437911979995578600436798675318690130749372929443599806908389265416486628227913259802419882849996214604894795494168211654140557441255655740731502235504632734752791952658039598371019134765843397447026628152627936557985076909662619110874167987053315459871028688009298448886240619400959422232342640196463705511735206558551811860677539074768548530938493705120780745304935039359968839558063767353946860671554243833608343229010516986034943088950423269567432725987495291303135379627046051588307626493505409624319375811250575445241799166407430699455375833802725191607079798573105522792900096497928129032031102639985344019244554596244008726116403120532671098323899200032003708739659927198036512933539510212529303956830040414294555631209624065006587780176714297404894508774275149544155444962781414569683625630189318196265080235830107807442136560938836256543896863037042879537503175652912240387942426561894081371203759421010591026782429230351787712714304833473893553388448497473528631812574657556597403958445600818611384434408850401908730699049154910289059551316345484082036605470759068854439693107124644867011224166403743716809331753719442993146927773089990924064761698372329311444712811967172576639624277581363223782612198315664915597447576917982152236145147795574963736722527909299996092572590023746105549347643553092940085421525844526870519962523180749430434180111633319447201804192261767364041849723792000206813806180634049686044633633838669537851241665355521992561905467648884239447892675667114053066439722926414325225958590155354042788932215845001322800630808329521264694607768016540737450143845102077554690839137646612304037758620891611810547068200196618248102594622629534967018345372203066025238143398359263548486458689214093997038369558558365843685765869338591392033763299710207480726275001050463213996950225986997891519887050786958897399339451370256465130931883304533188019687691799845363251609524198310326677930497333558868909774588896807578043584749597974968167175158032028643828262964341479613564494968227084364537076009626061023629505748777177939904827642786273310635731316691158299595498263158042796847402439380273529160744142864149837049578466032616198002855815254690062267282523470391228501908406175068223110541581153536317628858933566611083842915830065533236599708833929462460235223136219305087529187270235452239952999016944126522220683018534246491834631939172064925013928840945123669777932340032416391363885007777195650442434159131998044667592051050325318322329466790066135446912426773288815314242748958685015434296680988612631168894410146881070511007591926109749967487900445961203415893505839980209792799153928283337584422039954959667563979606392227714855336522527830411281136800555848481217075680714215714257451022977420473649892624651750281964684950498223908310537642548378899927325201925001621858783261159719057366266015016238342679796666396638878102865747446219685130532840567271014292919953519875387930430839145416370375467811879794976264131264575081576499262385750202691385750503766616929407574929666336973643191065340115229213879328876614219676807366759871268122306148806138581784875948685855678564567072093727670334322152628285644486854474276760434307921156120219034247725400281183656438114875781548784004480488635207484622210021164515183142709998621995765561061301767505663613571189044189977779604190701107030963989925445828112173837682934275508545686649931939528935121602075547899640934934625325470048908597815854338680161638496702019100842777653325137451838662188807519128377455614478586002687206320508811133401656750794074673855113695866362723922393587195481448873342630068647401794585088554413772200932174620630191677706186768329392100103026015572388131627183993147403086540184077139580288618954060536560990417391501558475965400689426631858279553050358589487663298502026190239123482642448092613374046594547386457370067504459192313640926377627794358568745383367771789819798162144171440874557524807197790204237237908771573062073053945839821577880828837061928014792325761913567466903159511116195441388546435794160298324526966166454411507228274952022248456001229802170599031670346687444343729557747088155331981788953523609369093907742010760680813727141431299546563928122636436078261214125648405624554888538327791828645397473925119388525719689454986795601736328256857254779597108855588113245940849098594870641993465527165072279487456181065137214516981806048206348482666441134384561405729709599060760002465201014028192848135719001054235078285879793402329476900773541348701949328493888574978596518333695960918874088555208390851990917189284282452476753116256972569460312954489972879786202761749873269339565694153311437599921543712778452473142826254391656560469654722830272685573488021725538615846980362480652695363353304961454891792744926576628712927521378969288340768128374064707323811809145473721598058893589985966025594324061675024568523916398028117395208305292582900525176586130351628172232295775563031125075813326540786887477576686093984123048802035578869069381793298070577411313792978304902947298550369062538028262505475721514003483273830828166916151932299830985474856656379982593681775823494597981719804231061501142471111702529041231981527464278653831457479816373461315601376596562625355660047012280883997366833731647958578097698202135692836654619692080287413246449442482256408575188935618642658796149665445809804851501868429409553059685206466537474718190808625100506316614676090869102123269159718368282892681495448616874879534753227853592166936283906858350459714861438255089981545924797842162319504730734051058292157327674701532563941872440977726595105816812977722913473462562619304815282005987182814357653885680274666197560281000020334031960958471964368846286958039899062199898594626591641747155839772275767947384643113531514583058312473808684356637280565605598938214275470090879692892313101020305057977035897269252392456064524310642636603076270063970670862978908801406168742563848363638349949899898024751550855905180489751345854740529079696557117216771800246925828153925473000445434353864114834419804673156157513035079762467537416814815580648919854703007266999060920311281420722783895686408465843731107819791409261273903553090743508982401224955979697362046398953477504004323525765899137268216565270713867426352322801836521796446068951088143678730816943555371657291975527471070482221145913381074584509402075859772416162655427399030336051639371265519965888486625554124892823851231725046053876408733341749234443516607653616238872625053070709255268058168469891694138460205835951866582139319235975974082393307688805871758473714264700551724321758158593169455606222889709735296086021884261301190204361093206395228453210251609379911004748841546722139565207685698378782625790374342666986941780618048834507267250491868021122572383050483943387837661387334985049105847217576485342181639455425598482175669982999729717473968396545444955222632715109033719816911589711498255068541735094721634911903041955616096219237820526008430878725505848949723146246877932615387704385091152232059639844489862195131995250202191146168811116242663834675354190934731168362653932939735003740874210406181059367172665621159373532246027287486529252614514670576091795746597621994167793684608724215444170383254729538743287068029904121961733517401454753617386206581388484476955463508183171619217374667490698162615071821646904748605801259096310550963071238797354363114341071719781363120106254975022916187426395525938988471969089435203099072376650866615779435815424617329782005446243125138146150181154486853156598357196537923530916475582585309303863440217155319444899009047426869696891965875180707736083634348874284243173718143737085231970820701098602244625190595599397720276641978397976428201495090686243904522671568156523070263443070998452380844223399130095526767391920151370872095261746585648232570480597995097219311520287798059430492484749706925002735233929950664416091745488938335498816246679373393485365816262302234953411599288405034309093419150596587727124316859946187434240942263709922266694149863554520158161784770605278444193899549191126108678442057181102140386531557902503323291115390811749968919538640357954545042325951289759926271460206875516632774097625835534591235846249090346065660550526679663409440109163273925724712855335512847702886853564457733060007046512431723991409011764585965304333782038085434881858780128001487631371275229215067523311122586227382499041098031912188928856760207410978143524223202875289168374523835255952084304734321127109166452834881967893636380362476038107401156968230524556253642548204747084622554135536162964291923914967183614282099610694558511661992200510901451503343517641403309224690390034464425239970962925702826155411163503412644722394193406085376526963581302922822776432588425545377763356821564812734709675600790918855824427176614163874862451941315058667670937289831829673632615401973233727060506234541297831211707992406849243755295014502638206382707220470642096948185162496181541377132136908114351771226283579653221088276680484846330903644270923706613709514246761243010817386229218397305254280774231100956004421872511294312116551965255396903429314443668646790327049030007116298406580646675884359744423451959361618617487537294241915003185921466771681617309376379392719751290211592927681708002233761047755453732341650611817167007173978824020941257365391735708347286986049304386106352896111363379683126356237320941427538434284038224821900879454045215331736330501826691077285893045963467475576131721015274859387847113473403470123394357192613939274823098593289786939099853431504414128555359245086685776788031064323741489600781644622860383847164827428696197618066071867533748918026510372558197135642821518844462237938138066777622437514675035556598016061511652087128482390391830415795364140664514428951677409717768685013040440453215543674275198177741774583959921281556239753590351838892938897908562415615085958285794648439983117667705275129087452788492327639017207973759700914734835515032568083965176277891748487159059581774457858526943640949566346220216974336929903776527961637277561434730849161285275341316057411564836386092418706833017424149936811032465729869373013727145218246488328428663422997790386095639891163976864716793788959252266692375359146507393517658223587013073160057304307881410464700470031241503899393051240471612004463712232341987039466628702554159063505042082409663800396658586487564991054837835489323973083040871551892624032714066933072641364823212020727747944533102757533771707530316504352337609572999525290169989747845574774093706339998883009417625783169193039783769203622038841601453176347820568634554397419413678510664330610088685330598978554290446952655357132294168267571813613722144906149365247376879300805505758054125887225000388936152094243510733849834744132256853805872973601424838584233890948095795307344128534143354188949250372093195266474564214515946695796147957126734091997646914579549312610783319143001374529008793723909721863257715566901168327010005894402672052815256162947217934502637389830972239833093545565190425422049322856304156339320588120363742918187073534937471114757784464983914708509698003024088274402446636634527154212815015706647513063535692846242641725716147156101851222776270589373666233032581492394475653176302446118404262151023076463017565786808075654023872126495891521630466521719340053951524421063391888842307262550641873085375386006288683655777463090156643922322871299128438318644946961789972110895820137294638334772315773449940205314462454569453174702122305828290635645462917006582618829750425185435883391563805370951917242349553032251112375260793680574211780441412969208592973436268266493075813362254856205869910746002803358267680971126319363357719646266871125725791476301256612482886618553263696883640988817814088771515624187265255665992513113659520722245511688335582541004974516868065647750684879805613965043509662915543043104261824420253279487024235517585636823362193304123973557135564596203411617703941355639018263772511067438851316913859154362723357760665179786492674864917309271942258990509498091348871135034546606684372787046799186041359783785442923340404232195487175043702942851515330928926186973008833472856809352834069134009139252783352864208921530423020825046935268188492935665238049958239875032451610344990963850035552668834142366927969821943278885701878481495953429100856407264110974384709505155397097211304691245183035095746395815001874473690003559756487829813124713656615668583459999784871960262337212246627005790463371239069870067381086728973140205765195789841356079657577418468359778203781608855608504575500443749805847195070221862348127264215706786922180327128996972796241545832883875148732445922451729642422512871495761681882880366585124481212346937153812005129167478603710640763450023344975243454622637520695603645442415205859159959889450351955531219428088126446303544589429409670715944310405843526811123751051854132285911332304655631471751631529113237490501636068859391066553920844025950200041961957469192660320042545655957845985709035314796875227730956191192216088053166591339310793735148406269548853902765763168431308955234591679456739674060268016259943756637614263290070630733360554700547755221757195778875356834717628305575998164501222748680259756097024925457795691475486443202769841709394041887455167619059900400279315004107958167211752501588079922169765186640616882762452016480875900286520764518947933914801386476258283496091277700948513143531407890075654713738387085995852223612445830196095865474130617111084239179649748058808915544639001941898871927259083320426322701043715591797819016646027732255114159487629592814062303664132257453173002993549093214342143236123867701537780176727903784885790449559913500028945829607369666286067837762519859163651607177951287563612756770695077797198423608725777157590025413215362267951606453099009838002035652694240987803262426063483461347052379846428937145463204787599281351611792446903116812295234016333759329419711549485811568464458125871658330254683518802212824437754929345606861613106300854775351639906298999123203814785521533898358857328356547363806066533419762634798273684599068256542731646208223173438792378741302203083773965455906383418066406626362812941276476158715586362518935646063969166416122437285365742733622750902894934970269416916364549137387053834926912715468780299060769581697062860365332445498294093886496543075255309910385438081216216767896070200391657976524861303750516856989005311026450277107222334900618631968775544301704845320571006085845555267483980748915807996449951048969382228831981912260494095354114203453156758237659900450323113256088426318512939035116466857096768263020904948377600723600482362799921531080976718254687269544056437563794587466610734111035113137676310157256126727402342083087214653606133130502544538870479224433833188183326063582249286487234647161799615457428668842622944715908990114720757526444593261360468839946152784242656932703377837211307133168420526772324697267015312383332005848954038875752483277424965690497762704607687004251927542712267130123409622038864614400367105545534395798265681444138699961597280337513272188946584116683344863644781352742309568341472991582301457501439786543868981039446238151090379173766782037737662596292436925271262628475810282992050726826829810419166978871275987484692947375437823803764033463781009007180493570639040998778615030187372709169000199979825850542702193641618712244062550793375040070375084966463161732535545823723516671902924677216980006637123931774714235897160306114556408858039909166355915389755837712116641871471926860189627920827637082912903774990071851242811389585427188755182892420109062926728110363430550512101204747340701046888108131013976884124837175462213114222639445382651997679967558927127589436157556093089607784132723535092296649571483753502136096206000191122686243926155401318446888752764441357642807450202973377631932835035464176244840227542455916018230428716365116710617642895612012242599379033641021205462586471507702870452318754357088217704201193411646104795981502040383162064709519412894915949479229651372216619099781844975863919972757828792409023484730721223434431149856997188563856680465776882731527598640284244684857461116713948308192874700086018005956747249299364374670988247468682616195134341883414581898523790437087007063027958995993693224114703095016219500137852996080402879834347079250126119284526131419360663944795759957752924548789973237783488494318429739140062314505794015706182027660102720376030820887507587261626608876008083669232713446464259334151306968225071693413700591484172962043609294991371649392106626486934884423344591603384883452415705335255474111504121166387105058858791406161475721924184075094144585240289876755043745133945061264324835975865317606179381686878399903525486966693443462393271179185886334141003071728572147271257945578174563972596549969460780611340007491028461591927905902497569097530874310114421967453499528093795746535283988332813864320052830629507550349936022614707433187692199578703296699519160796540973993315552120891003529717789104661156749488304634178915894134067987394258704784857056922585593091349780001939636300456460507731883168328669368775490661151370459023029930766056889779512942537754502937202432048815057611072497323247559260673053390420482964224287894419980300493041983249114044494081883018435433383006002280349565747961066010996112384010061672075110590000227941873958215908695474199507552530798041430330941996567784266106603740775154769543789122959588728111903707231566142281834736081771159664697567938349352905317649255390003994598829977201611425147069005323274313479780113421133529197475238511063821003130054353748306357069991651407127949641151310581130057585232916210405172335797480431777245108833496807092512675348921726080363207294353208277062608853330266362666520235868925861657816276537594045812392979282808144221627075572722449377731930717515680437385331720178546888833045061631486238691602768283158452951304696984351563090791942546728648762308010098342539099296241524348464590238455667900556912223905953403672378675336978788788556610252183830615213837874281836217514266192360036917812749068750537003423074490830784219397804629832846316238372657087107992503992515671640477378598669447869783737203421449508802297763241711756237045935664654839881739007863600778196971323755027589117979988082512795736287690423788644397745208435578827645329807199445134532811817789710519700869727856407290963872684685872051430311379263939495615566668157129925066285354191351424949861602012889755890400540626413254254737904420966385902053497291451687647087156723943332145204396088127285157133904888538810348971540224033307329097671419304896030479751138487771223551531234232751403705688365439187919296904206449235169361239588209615533150590257892061492058971907010498853572687016738810177543043386647788412016392847340090080949332058014986396785436338735679162152763089556200329429843754777689821848338363046530040096919295447534478449648599161937451244611276317739890953767967458793401457678092670862315000320746208165708556081479407565741720220184383529414894088902772968784834735470342648544255114321963458253972322234748980753692958195940706916026492638099987074516045642576277933924583632307600834208128261393927691538280648763896421317606314208801545262607046416238379109355545680346472864282255749713243835268086344169080985513608861961289376420428384808279805348440407197751057239166094836184547416051404186076962588613480023018536035888417718242167993632967060535393207291888054359845318907403809010330401016418560112416303427121028840808805975345137836916430331243362361484558142108640297368702289882457990267168097345346818777554786232790856854764883606830713617919393829740189702097985508669021704873428204597541003235816570242504309211741367922899401472520825970375943699099968629902827571636762328412411488498326725657714338775207476170793568108927871929287220915809936737084913163632184877768107439511627277895237917340640538625912985440542436859000294338309797564228150150904659579988339431853228417207896983781680892160538499337533569624234022178186325158166094011261042375522494732150775911336561305981779044067691073539381604241028242126201836389380687534535578987027035405002287824802445151117289988298213570135757675186662292743942112057368956159667589461340758219739261633210765283058007572273151588439332427697078411409602894550893236425852796653860463924604087715722626103119448930879312394777592013172468441140034218956180449013036848255521653104439986880461166108644876434089591847135692283626782742321880001324358798832982797324737032551569025847274404216390219357142334315057256931245310929105810773774007868491110160827428222455428983913263743661334140433547765274160360209213564026677390875155573267478009093110161911110544749447421964418231232184833066658371778012239076511614492427065581905761215707354047943195088178742669723279523698090905212589184670114905983105798105108944419100733500147896643082367486214171588547385248182309113889341410665882970877852342765778304465809213019147563327926744158676437308716442221004713440019871979818135587195490802029336187135851730723769652896959026591166938946631671546231540662413504811035809648645446305253525982106611344629531482827654686186659371686986109984649992197224850890482062173439858477538158100986561771870937345741966441390621202317899387807562368242742653600808118404671665334682359569083416780067516195040418944112793910536549076580699613065523087413191852891730565672939145861921917611653817610378988564665082260407822215668279916945529449089001428854691693717894770128370276242389207389624637723923752133833446427962965579476123073454176682546130408149538533988550705994182625427808302775126800508911208949596720590830832212240024926873311330112964112195149771669626620032119113295958999046425892977421784299588870692017938742172533931084369839887616725822934489146103142013510574326983134916116707937772456021457118587299666540232363704395579041071206852550185140975241703539417196738209465175777108250063492288016087884167799174608721601709769327136531029366895580226981926642728545977221845862747750410118614248066488452244000326869351520226697460372379392172685395352802717069681475291847855026791249827381314240570798241301065233339270406813838495029020043149558431072767382343610836530505500298781335600674932819211827730416168310009604652350840086971583841586451675503128434968699859016794157247562459694503308502835234564749035664206378397959163469848719753541892735673353573014399345139171419260109382103566389396047991916430863339036834481503009063726135235265093139916185929419953706995170055928753534988463804246443270516475152614502236869850877626204657372077771638290459067613923634370649799244751393647485016143821353674186493883254250487889927507206199562770154755019226129943712582774451042776159940270985251330210457392089563457395849973608401899105699743917723985396870250101515748834542779917379567018371467147746946611725400144280638985766213670067584838405099227204176155732496180303331071132848451101896714515274741423727722613194631921424821388078530335556307322333663946045697277460886212139590010545154045324946540982581253014738588132442095382024751832555002630640457935542243500160776556116143599557071405926811578078224239136036306666561629296131148643133931967837746155855998741251790796479752800397659496249325897083420280081165423879619796041274827795986939217252668646432311317872251528366720516172164146013358731561148689129947817821359640567965181918653498071060424236831856918152416908389377436356754761035332230317439585262773278753397224872229975085659360454185693783452288958040529863280879983165384808889452942945937312521622116733673750764282568530670242824252622796043002043932644870216823442035401928879956353523624596286597965385716205188716951482738835278632900293884005598650155057040569030016023133657110465176774021454718611435084656995694248916354266421165130502666822218557709632654131731677553569426883503557665648341672331461972478898058222813363932172950032958028905836717779747823829805550731664529555643415358492303973825677691974196998203025519156431179829482573875318223248511000481198919456756505258870640183337286031955587256443643349060030368112750848330491142751658054370546397521120870086521201978074467429569032419975026278075749108193201286622053272857295658220822683590866041767627894515645769202494399167283750727659981848527947026619487372183715240970536754913359378586677919616208416150973196908943065433909350460134608537024530491985450496868074342449358904585948754961583147448106057102468027138999599632726501381981527030761930084173892701693726195930785624663441942392478520400980779829448044886860317070938838731918871195412623762002207881580378567366885271787384353500249110699485496850299578601165850547606799165842610837832367942019201818482115387673581505796626737233895828295215125110256622933478143147941376397779038040581937491028298669114024539846528528935723409818067128299937509608047656021216968683747636766780999870164311404712399073718474889762647486902447932899312326315584211911257469625414007060024854598730506124436499310592525142964237505959901420244931952149771197143591578540742220102076823009940019474297843544289560305480150275987853637724984792235614379394877760714034585187048501132916689627086255469152560461365505375030753928460673702779076164717959129343376401329869736430212080015908195763580554088258108599117033816940744083202718753068921089828611483382999552065116502814311951313526050907605134559572130501366995997870148584965961012216901413141154677180555684410315394947695968684057184431844052653522784591929088053934042135213827737301621792387388003559607067023919509383778279107431419950197397935127348636041628416989853538773433088362219601913815842216872524241822732395025998871505411164062127320130493773918302753198493594516947013755387232170651527773196667614995646097592992857566886051217590971436364163511527149155552250537686766050868509037807705041262617489126274738120524778247138534872932499569000822603609686184043585781486389731075161798793047684604171762530231050817773989122793810691736828793099628767878691243044425933272990500701908717183860240120576497103647231486326679217981533544986201371424811486898881075941580810738256041148333805317573381192816319248234854563910035822325387337750427789544550698125329291781778476921087751282318996840137061512006179080366526774091458991229230069914963721382413353418863068413655234485976726205555340522332254122523878669793923947899170419089185955339041549419212616226907337261105231423570690939225705307496140783043295390533579893834841860295484742473121745383681989369667749564457325730942669765249495348913218054079362806998031437755336935664605506347865820848274792464181690586596458030405341412571447796536988678696179756727919657404131792860009368119597992239598971078993100458919690653250968249047779074187005938923438293179718355138586783206201353384259438618590927886865131639359714952128487530415133863862408590827911382778086031947385537166909712792252697559218466487940889907666006325064484445745167425814539549118548712799321573201294546810666388570865522357096199546189384716409892240876564591697035411022507945020653633844618085523730861069011666038260458427587962164096390192161459950892178536359064088388170118316523260957084696775995889615748816720080072992444018179271572743749431608243594520886748553752666556507088265923352532841226415858501920623395383268899631355595725489935786471697115711017958737915031108067827778275532016641792221116704191076595913354699652644605213158496051006308593832795569462360564447046392334144340596756254505855420363714261411611982706163380611488588363352864677454323075698967416918203092663000725185362807646952533832971730267567330009989740081237799467764950595783923819303876488612016275533108275105427733341956511770135167512796111360567175310780014527707856426095612640078597442442775455804138632433720135571539236156621188700870929828946619816504915260883790452058666693793853771821712814320960823167140846042932963604301050518665988353819888615352058284711110974915660721664615790955566241035541251963224786038379945631191842891024851085118412262819533667099670323908133319573223237572171065341816739575315946782216122672997898300253147806022599835131038264191481626042140803608012518060472942639745620889990959761920114930789016903883363696617765520551009707948586000839931519990737492341132161570946284153634254987999996576743961404820130013807389253212918530521718072405049334468967971240971810890644809740480592897954823163832794663721435315372912590508363034071146283169074738818840613778290127490019101030786997018250406372646559812148000487433170727252081981395673525633619843719333151270133078223289214756844182184549261427227259999602148999619570461227465776806949370064861324341272119143367845773574197527721112244044745275526287903705686294650725328647291776062710052498196165317002970359622915547162842907147875307699455503151064660906018895654812913500207040282196512640321859701033097580072428828789944984680801520330094426550610771367963861708047487345112650098607715856735696661718934636680277246551898594176019201333544024380313969217559544282953946659471179367154551453155065135651531806165329824092634915021840334576672423793964374456465254399742937201033901006745197894091574413133853995944493042941011707928043831417686032863955412161383004662877501234545014967266383285345270522236980043431598516945460678318056580732339099645659704755892531072841428826002530112395748412015382861468067367589024075960198975869114744717386406800064545518192422059659390965245666475493316745756563219714738163680371057150796593789842303735630425073950663428377562682567355224945546364926524847671947936165365768283182860491944914233984314701572343457862218965257868435376178232042125751065274025093976082557408101724718685116239159915153323514396081602498089871729129160771359372083330824270236942475681693395894179788883241456513433576256150995561003683666745908757179788903849521893652855329660542979444837821826072578069820116207317027132204889318011558752188406978549928289721416358446840327593537802534330337385784525538115303871226735162464431832334127312868594306871507258706551099707771279804090195945724446871249170770674373785369851210173890314288089212777318238639338274120616907966939580026240809851467905211581811719768218766111605524096686719082171310937096521033391880010500486760265438538194469633878041250809252583625736563606462200529891139829903688885606951662840789110318246490477185180088530660532445123634327583080514324802331341181333501376313287421595082551480968477388147534896675583870140867510565717737485570338445704951232917311600577295541826819236618313348872589838440491177072960903669059066973069657985010379426844147648757451003073947430884834479180888605571511408042775719614386680051857305835942165119284711699772885101492535335856578669913942753151810877960437516003553929872459849738767202135544368733867694416960659331049034233137485502687533486072259852532585986798325340967522382166656574959487087990696961624233807401569696618950219889922686791373352876923607067686744147418890980836523372121543785247773976011814797442137648445348377484595142991511246415334720664103619324868344474165909684010928949204888328735230082170841425760340806724405985601950237351163825836816817024435592725539922122612368623104948326836364061233685853971507531296155085887685562666765416934084449021043203687924459654930197725962961281140373790820321440934647645951731900735058479167924818413256223500436013131296102305641125155783486348411947893280735398308597202057553977732521267555329459502445721933355849432779332481942892109261174606392925464051906289256920466503665040825097062406734054086264394658381676487063310025203157606968237864392576854834002158742067192672462792588130394602531707184527773386471152688941256047999858009204964971331236027074220411906399397351931382142637546380297866442059096540937122376615993721436145319897060095714311905675847099310396552469357917394947998873821778451684074782954212031401086978065064798357250786469499944876739680477705026671765802914564965916334347901963863871706851963818071843834747960121359436570108608018623278910946836420622650176218855578689831496800569338638899479605691354211769275166415158759818200793696495802799170068075483048902433573218331331489662658899392569764075148971808831494414995742275989630923656530555627919441220328570931957923750079234278602662715053601023302567899224402515656864722386110340636757999912623131442490811859116137334513508411245274994395801777423940627415962939917944835692416110406359010179547861578888052876998241920568726149157508553793882861914821656772105405887195716166235078779284702279209638843629238583876619655125871137269042441243391635212015835657033134218084993173492081454163308380425399159239900382681884850794113545663965754065366105660296788472182057036875410411050607511261181061153265798500479892513460756084056761941279937376461046206335293371186729302569420069384247516847501357517879570059918358128979988111872094336975052634622585239892440014531557840798423391755213054725308021175502022009498922943662687978231626793082004949653613094324285263341203278474866957684555787647974197099157621456671227956471877832520559409767091033746902883933264156446468316633686159525963570824542330443644368554772917379314769179903078323274244374938753855041454586183888819688923062251699189618600943185793421872467382719769669120895019074723046372551026315583414609492492672699154110379172365482477337122789077088235233151019136648402031931243135500844594149514566681661197937251544438326902797136809647277506009930045470809693380354006941167605303417465679332226305695566548895743903883148395251143529005624880553804962930941940034076243106193389728926062163166281652574152317458590679872235535362028405682995784696333289187179865238150979166016194970594277065272773466892029034021817295074267132606411416230296078469779083343409120789392820357021364373679351072072700574722534326932637674103321537960775664144531727457492862660867351722817632033334863457236883463280421901576941006589553460990407498708420822778798156792553365876137129776385338262279345910453359471911038323842979640544111156846513651487082254208672914663971012378052549917883034537386905509389001773557080646825529632138983773980740007414562156453841346080176150084406198311256511241993458591987609706895812694091181683029212864551260311646018948354376254294551051884043201613449333212640375970352486924047027942115147110457898063295672143419806108031199756558655922937567112168992909638254027596722777493552143204149478403093899771665802721781607166875963090928906785767655811652510562824139217672269684640091508981579553167889627709156104691419420208732255211616162474974169966763111139933874476765648024537065869555909149327406213198666393266637340350686904451342815489887619023190051511627070459527778675442575550278480987846831160199172682304305082650419321450133257617059597355992110849556355990137717259778888797836505841959310606969378137894728998847440757337096551288469751837558959835610003856607084530636338863573204357956105134227090720590204412510784034267752416200900985689138110288231442740615521124094345032145465984286364807849178060689887060320959617641539629345655308583135694041542873058697801801860425581895297609165088354995197956098762354809095200354713462395260598924418655017004454255561142745201286502046025602684260552134925872181235191895625561638975500316251140737049524374553404628614289443260042325095407638858441730648612662847311696091506737325527442024530715599875670789606320514820246613116300096941053730722539694853955359802580037993861275237602183018492739921463472048298433126306435784003752679853597619253625023189753563661002542837327301186021715348890999723067856998379793879898101091404920678592361822627425858825174538701495223012332377331030635556869424087713783309164059128952964796534238322186140762352088225560422132844391569533815779125238046276915837417326120666764113615170008683512489925496284169037366189369226682759536725424282187522790767582866829993681317718864398371021868777815514010472130693701592244764660002466202901871658985796512946611095018391859942785988509887432350079455876781822401875685582813705369133635814807093107939702798357015191843213009365160806161833203934769604505656381321180329198640114848771736465019646230200820030800819190016222784044193504574403111394317818965445372383478244198548666433894395870216689763559989187820444585390991006617703124191283926709305206690386512041394906540129267371936062433534254584556675448943247279005737503948577199770538864301109849962321971157780644782518337959344272550737518531104932081008410013428526958479585796288520674573814913594586854786844175899225632040108857823037747275514353389779289952423742296933090229431115586676716899634568830015706052697699962332213069906270121156410046887403566263798097506400526393707901447892291272534043545591688252758159133985804788878661604026439417740649168624572900314451639536271327344715570460765137129900682944733838772634863253481202522374916185540040069060402256616923651622527085791038363798763588482043661154271066504299692045519849197074943625221899682179212031340139162465630859308719881292844687842221303153527166960581823782019090912383966209011854553287349798492293957031704057555100003298647961513572623511174695741397590549028440646262817323198741100246092686843182021707287382940694438686419618308788511922901767911170848053313841313808567342645137779350693630785892622539918190930295166678249686866330498692490079060912346877787592032493723286219541002276284224373789281629458365508962945315403946966995136654350656945398466318355463258279701071411402064799829927366409371446713656244176063631862341844368659436206616106300020242470686019356493925673997650141547550175052442529433703576141093130167641080134964030191797412550195021406653780508403715614442329479932941714267912288285942509399153651226257809715438919350881276232806022544945492312683349508833905516367766775887311609869438399412766010689921593330593069840038418472511661449476069879452833473699558515153818007521634098574572801187119034380061052825185477845713371818015640228815345249830253109382780801882677118800500051494200082252414325717466976895032157247511604313712493336963417053635598812913258362749912968570994101243072464495367531801713869826612150623469822544925796999401600242376783736869180273137965887561793310180944386974836601111195318191403509993068869319167249019396235501976420270776120598024166711998681991258321406569630945592582471146361121021151495633073315091201985970421455012791023293173888657087914532803209684637734945683019849888351200979700237943951912022368830069403084435254370469539239866595453815592293389045644109251760946089235700452233903027592825565730460604136813357141726774016570622027710957020779160317025025842754064809402054283319187431754225968865828137082566098389299321252875951817889934663537360602175303194189956270169350720376230281826811237660606674541455742153087644255555391623669541291889785950493474179945866392207876042002899391451820199111483039210478159270387943383720233361890053603935069855351963505929199810225883031403311023560130274307702404869622053283891725053868548176691055883607392870592833357790743085048761331665426081737406556277627407032571361737887757987955129009064664569983046986101401073117611515129904384280053473645482496848881463968057078550932734789449782318489716705235663794151816704421469315995213033134305461437231944821703081885340421653161865570717492734143238047150546036608926808634426675182040408011889318895284591301313337267213338162417833782722797298251232349955806432516870844670208284956755191263835275979751009468876416878635912920589556637884351792075291931148605598855220986217083752134105566089989197418744570617926875775150133411543911994025801251638997545792311379760852789937404621790938377610925501164920316402397475342178770302538009443485220388267023241770093934309687321219918925395312350899123073205329350108650528673636815741937936124085554465823589874589617074267695046690780172995335792761087507534813279294207400796033375080543192853330345771659877376016359729691768567659781607953535167034830532791233554500184973751632765518296214219514982086538025713733221554101227369192908926372067514279045112817838729160334675352991182859623687094181340918229569885444587100591937175979442376299468241779597542251311478854779051160859276506508101998679698274537840181230359017418334739953529534195834185119466394604567740988949084940213988522418127017011986819128948939151868168133295929254696006823265457332546017714475904401515693672258190401156509985593256020489859831519473663424939478831465993057142692755379258007606358614197151818423048774997969257371367824178185790091386773001534237803938053799517829547313662617500698891994122863537053944215858279129818198826963129164909289582338470965290168338331761511227338679188555874780308924653172757652433803681655147792818280883173555661210568078838365857239766852963950343077146600553089587110193989765746657977868500516722337819181659303421837912424882705252731943010174452045895905585767910473147433206152935750236757897971898121751137342324123768919125543385344427972321734350012155800498641910138961463336382555978109820705415085208514193174105309401197945759011882874895985741186872678098436193636004303089044323786592511302292457337526270614550999740664950266767826943126731356067909924877294338946008281858939139611837450293873720162691232949285473280412113987801211512554736139455384267151922485024637298240644337162912250750150784550882998376111555681930316168977121797714797173187218716339209366958695852557992581413513463731362167709843390490213774280256276288510588456212387517020678661655754552725913909980976377523861598641226462922850247555646980646046768897839308732911359133100222026409353239482364350835527585283414454115422680955950359786227948908651385081283634637549254082561632681741025116125798656999690392983404573485807606772783850476489720419229814857508184303951612659949339133800032704102334099074820672161770357477121343052265442612440329727711082390279479853570304740064102843201090991665058758898672317959025198100474807810043046105584387079706866296582040311891607174566096333609299805562821325705667059081820341849931103349410521204966653961149832318210965829831982331860541034585012818577540306493370536456715680275602437751637158958202901211202734724585257301556761432627922182122105087978091862590461972960032913042324549463490880260989008523787862816429183768879939254565849005129656646181248333842676398167582694473091058838129060313877245794495022670444421330770079600451603266774264839178739832642362523915717345144607834508637377545224457253373657753921261569531941161498647524179604648234816741466635445051894527495279317621467315162820126199737537826876493845111089388638085169518717493256459270861245526030643713235042754541552650614513172586796747754834910236291679015560368749497242992686880401194547314950535566080061754270347897666903543025901963878012336269135065669909919651329221760538059767526439214212421039775856955902825545179095561584587857239986604305044770524734809731769487409629244285645792786234556018982145306608422959605651427201686760323043940257325347140087421296351164507644240706122173836324487115470535549795438110480723405488179153686127702947711665317253544859176445691481172383081463131026326169758078382363520924576050037897119391795250067298752037822251843046459891298415903857713470549853583611224750648956157169263833398121147547958763645681718893565236356446695339483708382940556951118461524861331791499033607804210818561834089069032972821740966040564028354986544953206956107389533484376939121640913029430237524279374960548709989537217386297615369494339876339173124935210639797321449205640602781324963371285200564453883786107243807074413692553502651965797594937977171100192085782967539116602891166816585586142905150425149180760781861058069675538723257690890099181316341165931975265182320381604312465582996543852465754556054726640406591710545669544498382676021152747740334171366526069403533681264738693552501541787273512475272601560138638680430377090485923956917833359940019651819607092953936069869202096974145791004391188157074730523254924184144666384790024039811902449846252774046426179707939227439677637990811920597882896805064159601517346520240048803957722389460763951617002762660054596046020430996698526896361621861966030487280564304821755637556743470876296021377145765403284892256647531651867518271723396955236147669467482684323154211531214960283395243242908133773374105600278727421612261219541790982798222855358337203491796498715220930453866753179588195579324608764441594786571654691885994588678764636119066786694044823822376425273019002169328927133718942992905478087838824009719391632843229230623186898475819248983665249710687402942341794997581802320028112418314060237214510674825853796460906875046022842006388249912613036472724388864937799918823585814705465041790039557800413981093374036080823692067563407710215927733665172679295522397623936333864397259973640019207849906056742277648642461705405685336190929791897211194265933366633248916454093327567393439590079480041868736590637286458832622158833998984924876909900819065322371167984165747111038245889668138515397018424442738343046408078703043549009814733978277272730098710697131359092943046573736237463971825667079801977463757905016890982252252168836401296116455139817783317717539863481461497580683248585289369888338371371533913448139406026402790070446496990599184305012515508503524586463529509340966053780598177193568551504195903119536055727559347866598585266629814573302459143394671234845286265962702571187216627694473015340985253605953484930805657120712538392979001291277428489950437968380455060552156330023295262396975122997067321608907686641402356202726866615695416509799770698019652645604216557739511712417811048311069155217274984353695923290789174514992276667318320454885480980527048851738806505221052814431792825302519063856699428252351790837789872315584509195864992937995803004698532441694446972972764024485719231844502787393445126825378955738324160221162633541916612232828533051976442842402916883496212112448227444046689839254046980012054828723807970835653097992919366044994644380479841350201665409324851678733634031194217326689497389700093270471824143656197763676996170046222106911266456503568425551943715930245857414484396949578515586210736472072329246593382657178275307265250209033858451958655386565539323483891236858250321470851721200553986925521047661582934594303360550594810739808401023389270484080827619262774836218807487131373781177533498761890356784374511093670691617489405508499441974096119579193274569900067634704816177294464174697386643008902142755678019160477895570375996444357736089130743867203338323469643253139820077291304361553178784017117128230671156370764889162156154331416154345065016387020841678503872067574277376923271155325480240064994186065680242360916743378893302377706829640279019662129740539043596051340535038786579189643934494775955628708149715167866398781841575749283797834620348245898805324123597782508195230309247206600680896754498194331084430216607750047474260961554623257880448555562324960302861432089562179578449622768871485271484261460160557442894513103354547095547449836066640198278476601164193770545261389645082354732410310557527746413093827170586253424283044336239979263981094260157621998261233893288959552318796183279191079550664479384082888254817705770531100160615729619619452149431510556528053370935341624953548725660359076656554875950393156107878562389427687824622720826562407134658925710675230614413454030860317276406310557353519947236485907425136375396257643737568740373619934991115696681995467937188198664448476260452782172598150642784265349522241078249329651092830424805795051122374639037861088048103679277908791533498270228580827646600452103794571776687381946761353460886720574441461802548232470082176712009880863702140731695030184500549627353347737417784461314797180195032917250596798345344666184737503680770730979574739600099118832483338754004701690744643007589955070322384905891068873934670015707117672375149855948777564362627164631073937404650816266101792717463282391128167690560857305321979271277344585448257177266462544332903649483974253590797064994914462500706324806679717255423379596350662131800533288066547856433594957713582887603025425034858447285409066335636804529479837390404946480737189524938989715034296249446670027976341490134839077494505375574347447041907134743411920619975877110142304698552666094866319721535548912621151311334953511960529148114956946609378763222456574219336443775620640108824502597057141306721713561049379713447555230362911512483473595890683905250618983609601859920538522698704523988724288899441902891949848100358786518961981584199752602776651614311537325260063955705558352091982348709175331338913074446342604293704062080232856238103353623048493850808488148600445116699151264633924431458812185352173552535926069790639051026054794134826695654779608333177182963767508042028611170933317105791694555174915223367715702626873793453842927510650220516378940037378800107318267882528133463672660721845434271557139519912250700896171380304761355940920329635021618895789801252325412633731040607118101027216773094621986391635992437969425473502457976365917377652445023718837336780345803199651354945406083420016236522029796084784865270841189098528878360303844005217857752218759761615591261600517371256829410247154095389369570210616665304430245718416085662535918283098181787407659294995125445044375365520819551192238631260803640290318113738576856031666653649039886066388028200325528086094786648784958451936426335366685002200691647976187568822827791920221403117530884471704384566847118855077735442423383811423232021693597694499854247241593979285451001651671402331363620437029856841271258874624081527340935638207946531439418297495881890053347518095187602722826689144142337281472657726406941594019900943102721678651230672668405144351590729772657082582093757130652507892993405523639826660202180685940325001157692318216763800754122199882019968150835065984163556496956828917516223291455816955587949335167909422156831634163117171247461481056808282214200255846302538476256252520731653873528120501115853994506561159764599693683802328712173376675962726950733562103842439965060668834168050512989280452645566167459069300430484352347570000508974645913779749437981898763324888162276628668811581570665236927671312334601017710864781352513326085819103833744135443982042160784494159152367494432141473693831374955452064822554768875653461104333670902069267183890242943072667510344560522264603269696964993706811105576112903716372528129497663603332984061460106697133046741156250127574882576387898281056070489492062029588903517224602257706852401077330882238265993507697815495709148272129898179589675579774179316029651720865324502145153789972441852882587101705364548582685224103762171661780765441682587177276213953609945380298862261836859167554026073983465971827371393472097487680037092676729269364421650006261804970784429465095993813865381223366871447145009834712865253734004175893515866346308914812740131937522144791490421153129774217386290879730587520455208614714429378519026621763469765553134074170688829908990343100534416866893606203804415493581213533872687336544391838660140952624904506860220715461197261460698055006136145612339818874023077137485474274223288693286835706148280229467965317279629387366334682986989828497474271177862914045878062709201727595004162456938915891587865299327986907809770981407638429297167498422289466299485975939972360986522765597993790820774608634663169038801955200407680671399647825296566804544083155002703181370992658346684521484987213438288798825162053699667866535903075105067243834259217213901625971684714745523161637254886332633833942784062681653083437625883821868083639623375160451789570193248123353313073562049844371322806490823867970305888480644301481439576347972793500569142520542035408163884636990163473602891377577414081000008854592061584968365350828117472220156797473896570794573424368817023446942412207719502371517404868110398487685744165047633888484221919463358776507200738058661189928370637269138617289826280462779272321690646216443034931469480583850456738509733718539556189760825172963314876632959069669326303189214932192417871666557510287736146872163045283927777804027102335302205769673692746105678878030506998935649962924088427523165250435052682694283350025730605898105880206589269838103537780656241852084947468639054043483402495287080305036586021025264662324242302616131022084164324371529414054416976655906834951164232811674808767188383436862927083656194330924938648174186224092695685642664745750602625638852886365899274425435657735998023696256815012400002361684007868686809386951137406037197324736066400055721172137765268962674464502869622683962595708616716027433636588435597164291370501442015744839481320945036315737561713841952633676096289618263321653768847560670331275710979670219175673435478054253407512593021769968734068682085919176362634680540580045431219118450287417646525759974322334650206862900592256675994645653675209489381511167402533476474910519331769406589301663803237828974478897425230271800946447010810076031502336699025600926318953605734205369509914845838729778687540952448225442588520158001009671599351750472889110496550269757301282140424440180051940854844182872482971473845276908504494546314745385829176460026064282509161976288049912548332520738776110689363479945467742004241548094380354280347607652273481239731935903468240287865231338918258559857906936632089464982451270997101998998690248789581792407496782718610968788640568097995060460545268032073568434372117468999275848900307530458916874342860277577201613073542501987157284114429438860089602260099826228726699671761283709336625393622131233563687805069526180543689659921766728280888551563867995938547236330443663819710641931913276440384328568710325896356605016345998702406655883142771384234822135639868929012516959096563764866037081643724040450497908814883779186537913587727953910188090630814906006992092163914509603574753760281155875231371201540059120558084470125122712057847967133037821689156964155117624870010997943225633312148172312377844508397465964730525424838395104064671842895782706866745082105368140999898248810087285710827634218503866349834224046133747820120679400059667931183905837392543572315747687653359196971371723680814141253546238576713854673284161642667022339674716509819117912710942698606359294248520881724258646724702541723966918242816944281475326240299226395093577823050442941475380612936152242816934675095438146058117373304561829643104016593605194067196094376112727156164687850971045654104811076892818438898535237312277990438502066598033231143728546590170617282172223244775483463937122056898045024681893493449822597676141146212157640163795356301626868454355353816468682065531339385214632530906737186485750552721291327653608943176974592903852651803818673279240980538056670116852716127241853294312455521876099663938846133804829951114928741019948045425819226931513776422109222802629660118540869180332143364648098004801914757153361798404769357835270808171896696566191738848712637967160167122367296173836964032801780042234537098965131361953441852505124033870417015661091025476643868537663095268619583591892096348907456114131701966833628104961642181502838116948761049390101987222497674656744436623378413589401084281055869454113875915428789541346787914958847188853873524527561654206385780712006491440146712633371356249037649592429512028378741407541869195784907180091383089246225968344082019335667424134192364156025569936273665927266136302713807971804386527500591354888911236165374783276237304693733906369477093447390823913679763973363661026914650194718088441016384656984311948758922267618928700890560607779352309050368862958193546219341242085238324596794599398162792983996262495590807987687478969469182669883135131508375427898816207865952882704675859816644170728699955535535723935914660071759696166536121527664602924516900156747882141106413220950419052725554430830645893935866187975458735231032620963415487778589884782311481265889067389901357027619327869824440364958520482390655516002329411139963521855676170935411834537664174631875826444527840450820116223297022824796317332401592747868742646602815654752751402658085079184028140393686727339164386808699189391295185928611123911515988436322028392306702574371086368397245474787695815668614775113515732490821909860922536984939399094448335458648326960283260112877243578680160978597531133537022008886710712735488787852221454901230962898038497040594634333226933737329943236020397944404008053040284756259750997278780817594846632510417527008550302249639556869432156560796509171580358764929584465076421093510960665406612437626981170217760788107648390071964375171987238054531424034611911399370276963626442809730513826626137078971013213056638912222516480448644076869509428121704716578256792754893761953809994870071478527812750351937803346277221290525641425949469642583179950045145806786531673017213104924360978743108316242074188313082694806838616739704434937600657718448445717479000795796701853225858465835000164256040758578643986413764760510944761749629636574463992702290463524986084998416961938132930290014058952146342296395226319721755247370418244710239199517802111230357695910065447353687633751884641106016289834884984766821191977258014666715531729278056828531931841851909181080331772922606318262281212617844499214502228552393890127437305616330947741162014579239536048993000702639909700561091282491054122325436924154110477080248790169956176963139175009557515764714225672796959377436849454494406898008273376926280081448993144288751243883412036454262466597007883828643784105981598473758229639240641138343216880695293266800003630302499706918430999498172162282122154059515589311356680057509880979094281782686075731213938612384140177753395881215195690979691487483545983923701940847720373163491640388647637362747269747547590374497362214091283961573666961030906521018810143095794829180770344826754960699843014505164605466035356328143882875903415968744249184811605651727148611568023412560575679460091777086162326906299878897648901135335492955896708870841291239306500399395939570745878342577822973365165465455857861870264414597172726007861251323867828195625054560615960021831657149106873725509001192964402071409970269658191527213693364406678285150692645927689818886964603455982269060255999404119290841168563600335135589352563305908227078634133397639391732427780724044241526700096775885056579546724444428893987334402922904430831786455918862666480663877992953500259380515586658234591846897878052445573387821711147894102590397719165515651336206571232642159068111880574718611605234053016552254686592946542412762574266290177244476686946169312220684430666757341967076172095904865900474634526816090247204657210624475087227993852505934039850181899077726067231342441464614882977182623664911627373978755431423636205310424540629999499380858622509008384221699888411084663179182464199264049100795144220148169793318955876163046105383116862013410256711561155632748069617251194330986615460143901685291963019607952848804707907160165897305498009171386203390609989020815954754803306436519108354848338907566534633029182887959127594861360140479852660393426764387499984938715493258062054343481647967065477395806864772768848230458492968735993895937543585312216469825730881739405132291050479248595559246328024139118660587159735759397200935169808286182374756773277459459107413101088993704368979268018883268068229634507323481963491004149218986915578202444216257345209174595048882838669581213965385876202547025599169271880367375374709220810752235483804881169769709271423166815765029664434519123235038266657575002195877497365694743340642154617589707835367608898755876505545117218675115451557916123483960703070010658227053483693860410395956387555799237503615365124765825793807406058274925851063023871922899621238385578907871133000004810454135501438695853120845175757628038033685466064995095071249919571798991857112730871227376678074448673580495816750359288141671459722656362477674975600556376034712051079322899595982883785653922446174736018729502133972145415684068987695752759516436991870168514504923025667296828828015420220124155788910972053112797032645770609664074847857159741283328939984964559781699224276625120792761370750431405361713888213965118388190094174420699232053142033757761430981280481500516900538888019730914541374906831933085250864850696755726332495554182650678331377456514975842904720730053472374484780212013027725021272074322938886562807959732301410246838696994029091689667327350467175864529624219428825851428542137167306104358929802512418172328939737911082835464674730645680821488016372300956560057241045821254546568362711862422994592659646096417361958754531242626320238638258584705189750571797720448612601808855018186793997144390221224676019398774140908294702097149401995157451929655868149575853837109625119581053860457424694355736302479096628195235868210149355097121820000012563270340123797618411122144599932266902013444166728268396364303915164022149950303786637291526134156821880233403512448638970318487888221675526036736244399323332846693629569495731464652546867595938696672617115781619565364853479807669965724472274110049628579948069833665545567692302752595191634896789371707656365420908161688211561453870399259603518371768686393454448541484132043398040739161111847685396572298870932440740018465377477527827299783206071339229298277653359430761793014346166313553639957549613281958103930042703366341327778748252132203222004936357073148804370462628267266663585434561336314816234616310772143651873583782339293486849673887569187975155595175483974531256041702652093847871252662281469554657008245598080318275815035916208041891912505277059681190134467241160813211134469683792640906685288787444456456406949488377805748700775498369186783318757748075088829453796717526957299430950284573454835388147225696275992278734947873866501710684705674428309578568775446936489681206125479775188982562847459544384908222838005753400657038702135184721893458600159044041405035918768744499735636648976355403261806671637070665410017622526017073465576688420660420561805947036678823792128301752428302843494553444010169218440531489679014731371830310617933460547983033517185601449063214502597696517543786685779906613847444928690330338502830664092338771636233712020118101628891459057409322951555552398353460741224250427529618270729238245398976346669630526387196322891695710446319290659110585479725878991734958973073183357043304293877832034278250328786800309902367208638087464282192980330527062394119010705904533847383462277606526496612832162053934159267837219638520981830250297144334345247933552754333830701133878151991418976589505612880851098335249287816432915122930060882466254274534927199422945112743542700523274241624263236461650826881969337947632140545726925299072843510727948949703809725850316591992986447515702880201630380735923578039021070811905452954636706411121740347143884418776273037012883749592588112435467200658389887235084860182212145048155256443997603320941229010615059098957897260386833831061197105929851562039406150187468827456644142257187405484983625554603913216496574263169580104973250354304168747118023718504407125495763368967364617409771566173493797350188862839561166946776637767863828901645809141798500437949866113280714107354019594714707467912220044861523734883417929052808716865814889367406719236472784257247280063496501514116286902027225155361284676674387571778303787390889181186612435343118699492972544589916730064551372124000750507478912279775844574619427045263844381015937604899162763979167587258315019998927314966642166016148533938629211231322368386034417187713571873762836538425020609499348283122820511921946667412791269551352165845258772506077877106974588454558256125726313974212976090717354732379152708420523574003250800046923512477381408918733548366579411394475627103052384914927972390632915312509462949245063626375693972988922831238109199042459074335950034522777197690998838555832642399077764845073457419581082998048210747433929936938286272602008820768238499577675402288410746296818034558388870022636987345770412132327513042576792647736067801452162814988586513658803457881023963308848500891287943876741780968920806897970878245602600748864668756119654429825543444134245832484945360866659394860594685033898900465695190272334709747187431845038730251368069564698893299372453864382958780233764424312107195223283014294945886547809396918332171241664464508150749915295630358277005849853332086220569074128344424190181194276719155134783356307283836132093515262361654014458505857805330906006007587430416536448034827936684849920952994336125703813010385560392737206874954278282305924367100385700524533805037182669299155999651038210371972457299288257530257605620383254956794390077033328336413676004762188587724486727925569693899283852954876658249339293781507559406836138856292391039262929170865102264820051445970886534849466869064313980216794023755828119757751604329751026289320341174285966870526885091089198492130237890917133733320636815195117117013222704941539339498941257641307869293177758672458094330639582499255813614714813638905588126709388451214880649999635872242040093630123723759167999414796374138008808200837626051988800079887177999317906245400585822763742968655210594615367395859225068490034319445685953134666944749539764067659415193322084304342173840708029591348601135329070925214252231957640631554144631702936076238736969012784067095362434273129547219362263263686321374227581307020917037315989387975778467914140190236491738746328897337178544700013588085925785139606910345807630344480886737296589014153530517235702589365183779538092109768052031646074582538443664829761221246834903480873637580135482460639904806658262330016815244210924068612470969655978775745328680338249775112218281741000918312251675009193137188428486974157176685154246433471059616467433726685772017727609952364967349324954937640343249235819812742075727584417758735152709903279618878975764762905934113812943413910808205229185316977289135599971180928812287490043930549744589300821937470678685435635048046702823734623808228703894025653308380581547569005439595128291462611271053011381419364613516490019977764206075601747583299833536905197150197001352010007143268959041239808852954077348974618402598817795059118841656135846744330332625579651742830027589801653900223388287044245291522059779927743049098306729570698611084125200477754596126983943837184612229974635923637118417072497651216018972346078608575155771010861042036327542982963904979636817836345162313811647738187246504039086994511269021828619399774869674016248677222486720979129177163546097047843042718711765668054336067708862893065263745443217166787874774215386626328480285296520015673429048102254063569431909716098847856961966580074390793362299486723487995480436922397001476807327163156584344816524016892108135286531359372877841728267702796612280693069500850571370829915439403537027423492700054558397622746120403848858335493471284348496087476695381751697521033352283556797255818528006010759575254260379626058225756103924167722067907123310607647482895677219574916146697124176017685387035253185198601496256060400335029085210194482966285337141366047250512010265018790325572290336124184309510200183936039051777537483628114065508889116085526432544739711778244825071160784483363169192361471598846448262361334694954285762337871652275201639583349257938878298270712134363910141022593112439440971019038018718063796150266419286017872926236926193421766439240136707712994891857687198123300183107603688829713622139376226400886122165048382220170626400529027030661259676116877969407492569534941277396710381467835079310396011787204605263222648787227811712995556974982279990074964901995127774363749959154512312708143866412307041465437859476028230472587861342645719384909303026044671723614862643441639553952880945153634826744584642674556805895655193042811908099745129756680982397265176708226840982896890098680688198111273227212376290310013760928939250769048947303747221211190706947460018808119433798855668709757906272420814938345029711238709047532505647141525222621849944135346976686265955087143667573263474861385051949769400626159117703192708166423256332165693883791827156202709022404172310574419301913126561935578403961989494907557942371620128023230152447888438485864658988727151145499220079622709064731181176700085594152977474476125445952851670604578724756059585616901987380114002944551256237255824593592603848892622151380030892838407352904197690676395290363588890306707053548915582056769530827129699094400569403629630187813119732723786634394532950811375445549992364127890977606391896715443603194733473566574634160308620979150825700762351445869210453816680197054584141809187965944356841200317779523004695691647986738956252273060619626262670107424195044934934249481875918601213501192748439723339354247443652284291310891675923596896384663828281619727510895002158524176979116628829573810545645467963400620216711182747971260471183373969993636506394675747056002857071591007461700999041080574745436406213982329636643890368677754799022180602423908078004249360782238213055774640095268447090063267055710875915484124983557712472066052619347199151002513215973372828513956074868902643127503172348982443864202426525631783619052861891492064907530118162742767283393884968610916225958333294409196197475525261230778861933746433592913832389675392728793142545694351867993105845602230455199661998532739748578603627614367649134850245756757269863672898108919942875770023109865972649660580538049448369647743946708431310542175745472565149788993537825571245758310845761818752766860044158368641138646763716197591081829346346381760032537814181065750718991025330745988761819811915210076190905513639683857552436470423062143883625727730467806052384918232651698769802732122906908079415554555232032241197231938725860432047922128075764112432867623836635383358347379842645433764395992499815596882556373228765332696919675630582714778753974340338961153391813558619349323605211052413787963001895857218752890091779440579841728013339155567150737166154175307952282947145427156283401619691325009273918524659104459572060255420659439901802834587431038983581461191059536347342739842654137056703493471818873793175656338983042414473130932412995277282337550871377464668712209970135712584321043432151216972492347374289953904107419968669145851554266015967147169179734115598527309505607168769717702543328162611031141619061220217057293069056484303305073238407998984217829143371735234554551958162671074032852529761956459140974265747869518934711355497698307543329909529804973489356656425623047403074316853712807350916928499902648263175787778185098170951306265149353259690750773186536490292121081374028775539644649394149772601659036866944352755611752817919047346119770810020650848199706552454320522857891931935622711620619196229635021386777321527734536701734390501831705970676714936079586211421297248439533534794656884025739374569833028050584285424437828862083912947094444381417485469809964321289196155316633597382464641221349629970288905286722042317509744945429452539414786583588911087456457089125835742565989886158899861127879831073321620623977567557694675240554143957690035717539398149072324204264141692552714977904716575999638665344049309963357758448656817770775013020449286675227430410103279857993986187514597282879227527893874636351827299052723007492229888477558584485150448472764803064108715740938249017789703125211419062952950260325238115362904891509465339908724790153611174887629244677229544460753803131699433357786108787496857887952813859993310225190513818048075949701500421579668807006678595066239649178619067173659197176992189465805981080801613909082600589797620557417223606454272548555628909102072206803965648930021492678054659710176013130964034141016934933084099596166830810063662266005013622333944112823150534169225406179970363610834670579729064293081337043746983015918996454111313744318517766451378787965733722923873832438272717967958969430699571213942868364414077772140894778084834819271675435880104525226442295954457149559604949974577695052460680660559948353834083709677263394379878570769996780706939842581872410655251849280847766732897973142679797086515922521477682895285392754237668157734964031536417043070137076480707423607539851085142347823078425102340491044685979206803386621234209808380440833686412858177715619516441294775844261794510811721240467135322649808409499459448605634749065223919794255659204919325765445603774569795731784865514188708045277375084400767834503034420735893168468312967691695084928419293545193188231110257873565887858118687094459885590088618017016527579645526909562284227726667427555255697219425346208750376681866031052907339274397477713973448816152164906900575745296802937284916297158957938868616669570309506954912903557383341583409060171611913823907300427540946011814942756323365543992369934120624814495637929505289077800981644226108291873311647618305753236625661017535008449950104181336383271138301282928025415407336931821431039906533798011697799574125443147608506673210537192776665754323920446421889391186337143701999075517629852120101266872172834233254760097322550182665848370228620708018925432502852991297305540911172012373549605324519433230578847653447386625892304474939668434041348050383958562547736522474566801737476294296887651040686147458867920084435582056671442668901832477374906106998316735962592950751127072078154623318981383932371018559228866672159105301898929022395482000719370957655635430873660502029849473745742007711036590414814583610970002898661949157813742328925730399258125135055718403106846975580399417409127969649217567810733814735168665617085889394044286445156469854588046783377789344439612415333814862407772295104828415713581510482415242971566910459748558479413445946924786509928097715957251816884347431960633711049476595845030585968806773869957080135166607763434554169866275102143765907640290308011672848099799854211978935748275266129897209375468115231191966034479768327802895696770727628846306009301740213973303616053857517577825664505710924351155025585234162720356067031399770431376314669538433701271636452773961908288192423556902713382960960131380638280819370569694906365194011224392737324384744009551080578643650344322120118844818345997505730284819779344764815521153037010159812034554953371251628309881199546777490296070347650463503541615010380915274515307849581950675300146912092031241339329563766289205614703777721596936860951734664323646881035088796267828491364058954023916051913444714711751436937097734486959246214643345786795873614909248969942930072173836490997671362539716566184786495750548042737733731503555872996945712303705820514161009384867992775603363714968959598522479518032362065329742451249094018562210081711311851368075619028409944814382892134674753448298359093542443488881279997240522442389192550676068239710140984277916931637443611536186622834463473982257541485148699613519437906571245626044688746309026630163999539257484092961745306751359727678339433157087935528378010789079494620752812226985129097521925307428189978630401530527856931495737100961198659912159230102750981663381704138543758012846549486498089598484196644347049578789466792079608313243757527624862194884402551321308450303428173549286823724982922181966818543451714003046743343707953278564255082977992783561185822252214124576619984823905711504769876035236885398704793354604825212912292260626507396939247295003454005224961444618925528011802749662406970460576500206721301806625814324209497190891039956837711548706596606972647657024998314662768538299532912724283410674665039537648097316910591698354972936122327093914467255638502135651132293803480245621642270597404041542597155844687613765064494773465361957017078960008614811983503182271422908248486341460226614849882935731929740205153063776678223576256840372482713017453161482016377896624099984759144043506918640937036372421698932311648809311169053712415636507981017785154622366154274748960554464842706240275760261788366699061995964450712471612668008316051973913769111703115730944489761308741631991680586400251203067439826655350202786041148736893749019831524454298895501764612273391127507087172352363995176646034220875877860161685728046795697766156308554958639689271203671884665526523073400085009294925873474064536180992451367598954715208760430741320655472669062343563891631161732106935037540229720172303215266919779876560670852699251877258797814217849159374145103204173410639959542281537445869506224668496606278288187885154642842271298387383149136668417494173274184870292086347389649499392152837702835241971864048887648382804680835118184849792649877539977782784346501547052673861262976017694664737051822601982233291788228253108532593187176519971677028132437468339040843132503263590210409868760086148516229128692416211193149983341594855595307598048980411527199481220375113727879313543461904704379023744463294282085861347274709047296337783594461277464341612709283480074376479881981392007367670480302488366480446134626477402779465853034388984203272064943006380639263142957571655000565214182626230351531306504175250592432196359751574206537689728916906091243329952711194647240704075960590858066765022709107776426160950813113161684714793272823111672055170783064913520522092973165052610997905511473829563257343255071263908332596899400578722909483294679213311666935683809203499479471655779138073774805800168137652937880162097140581311533254872422589883105995589986903659878247217480542277806602127394443052897463726294458518762912092772683523836658675011936004990112854127189257601094481444525659914286955508089450808893471284374023712273720785226376559777727948927080559976829305114047314261400922543659772143863440991362026494118697252561858370286661869969997854879684011777825049918915977320023830904088903841365300264317323910346431959856984502428111258591744383353724864625832622450925181377170684417147318368772114385273226345128134596462168682315146259955900282928154228264822557517795769208025522566175942346419915345161184157670052676061680902985137604195645116442382644395215776488947113293841874499717552789805796939902428857998517302345224559081459051411292951794713089693027997286415123636637013046663539392164831965351774484683385636017365272622175438985112810464412472188298580400616539497943349619587621277324396717578932740757905052161319280920090180209556734596610614414309337104878874669732445260902496380859076996298438886816289015491463735015625172356018923240893004623686670356729611010442555165016043388480561994654641266178849230765361251886125710689015810735671225351358760683259514349233744468207607131544649287243769888219463283677067179995002030467096330626463250297379360414432113794380941904044587628561023825298789509224505992548642610786949698643871983848596554114183304960161953739876985709665466249014830393141140514482927295988184958661732790006547848357778329485463356563951145074170953527749708355976169557310587005627978759550269478383190166776847852833940369954947317858482392809631140959845573340979380985029389432087242911340702044180510503708389391566051947978821971104554085627135913757649744364925644265540581140302251443688700791006699062727171702372592078199944854357977768892241624894078627888072997169977367819178400426294421782300072597557571765477307177050150829205291508015128473076976359694323782383349124364843096597958199976548794685559280977748443447914086151833418499170533282251336940222946142022074273892906378674304986603192379028650277162783496155789653795877552846649836558145454105356294216873313754611094452111046821885093196161828147681027959773192265797645717470604527531341742773965482084501766121356810414506634842146334704479846063343910898004129869809630064568515279561770079361409713177382787321334190410539533285812581446110771107383792079131278175533147384978572100293970888221361985562472579020791204521381270360889250433983814167394465702404926309777958903233545992389716436168480090796241644892007775844377384107491540999012732572396240035217050820891394985016449496816810503455048356889237605513172660220324469328343975869732373922171129613011790185457236326253013186196081851686643693194589762530100073896558725093831396021264965744464325803525057066350493007249395657404046375883893625600068945058365297341553438498637619198967693908519258506034159942170098890247496006394364495553875682465815241171013084002260760148683721669959980344194903809755499370841908347307129592959660071021648447838390124942137624369994568439546154180371352192920271670925224641155562511279960929585419669133722656226469412441623420680507466466435150263998911007412810830027885630114094510058255209937798620663555382375865487018376500295342327283101322033593453797706092425531033747321530192089295470678900011975028069879498277136184208357933272569880461128958013185742319611534944020452151006296606404959191455936398555572224583063163506579092693931398011272919425175071748397222823424541150839629505041060290819225805183150876215527172203016034396389462396444729852411302235093318542498522707788173555722566797850513315342509932139142365325012038240054022453873487192979461821200351949602127839559423848118398159832297907658771725800250975102286686408986443733832830890306152924499006388716249748132049657850501995710786926471303278628237669367904015888737218166787133347261238379576479075961173292843461857183192012691994245528737156220499325542330378515975113530759427215393406393638129359663786916959284902633913812194588852495445161033207629944415435497713590419775097654616052504270189527091198732209396088826738319838180289412719772602517145649578467569238073648641768253361083486290861350177394166846728613903677554340608837801786244156600419119691029419565526761507437646740910016024599211484750808343503698676131685089594044524829619543995822903459860054076017108044713148998969249749321572932369660378837427616912347763444615288646931572337081778794197004511549454327299346987863997655063691984190736824752584534989257483628254064225249137532069351990348052854798422031452845818102653810209654627870499511998496237733992214180569978195917269120815822905183934002931571663963948749119824047053600482825927206589874123250011673590670867169181324216155254443165659327863456112704525305212927001552951765979099867229316784699239651719380471089841375243514001085261109395398662326147469348220757201707141509809454758872134083129436638441610416367884337576191599936476848695372492694005358912204824333400575806381646833216964717193520244487576834058458322749031401452614266182133945305664909470573288559629011625991011216704346796721835592408267284623260020264507738343272319299536878365736978268954443305549251062707522201444582647670629191463738218924699689813194428492555010236295071361339335280961021833609051185067027661199936375910394125422514888936418659173657970944734145611857855530703205260586798399551820212719524410481670206828830375712162002438867668770731270675661954306182529729497955131900910085591319734072005472582394062451337500173075309081174411615888747528689861304991101764507591085240854701855821054911519545293899010100971248951181650687941398946876613043595080968627609471823801862689213273723654737875646790778599248645434421520769384079569614674636570214153192806746231245231519807564693333650356175314776267882499945704755079327172097452460170002652190602013910004649387969114214056313531448505922526319896136109631472071165705270501013912842315884515125031257747338213725115629129600829917433065576123433202520546441725660860399852447684497809635002480384436546629699618189502049078207131342574492395924488914211784316763358747943575944389265338017262766724041006002142319530050397430647389474950119197699786687120832497451462153654905291386475536213988433646532315725105697239979378986208320862350448716431213299811705111192651020652132233592435286327506432397121609170257327360822203343197443595841669162467856984553938150137490580132602625846976979660348591504502000132336257585446052581084421749849028937511213099768786675255688067400102205546241328579033116980588676882644726270824368729335507240753357301559251648051015584137456625389676205253692990110134210717180319701181168374986242834811715898150629121360730874874574766513810000132427815184613437333729635743853100384451807823911851856867806667108589073869890107789435486704118555090337042409301452671736056534992779361209306014994284657628931857619405840988348301896245991107007957901423471457606330751815196892025377872652336664346355776261900405373495247124510047093399948355254206256687732323210387268117562666025760788261664066576325914484568359862004652420254911038481234905382220655059551561417738978866749728985690298146471728687681943812028732454891966023700459492484459452441622397827315138982897005326837552242849081342239560015278571201068997879312848986294020649160270136450556223553873870105508159901736802684593763429685553739752436273152890118892471558005172386543248982520084645106089395473442453617928701011785422589852638519999042662631245907943237382002220972710170070725706213199011393284268148834116142524128084922945106725648917045555603312238911346693116970166499496646093314863638808368916647698689942833089817330576226575363032712909019821600807360402351800209431413533016919626021190102876292415420633733677897230318962580692113898299847448610089812023922984448658497940489431684407969101868696984500109135712818227699250703482345422152783412712625154438637784443765708357566463869985074863590755951996133568421831367851606579818357519088570804976562284502280265303081859180383102092048886987031684210360133443792951624219898087213524116953253606897869954387575738591821945543012692280446840413625280488395552125398060560987460565445734403210384352142118315967890353568697846982731199429446973034723840124786236435333636925964575773908254552283824209363249509115753830934688370352074716334145104314157579726539720243957595892556765426209168791724203078421822051717291005634956270154291691269016838152878486084709104575336704885682445490203180582175878591331243726475425891964764812718138433897745048657426589411104150093295185119100003096752058184261388811770095147323945861674776475801082622013680085877471522347529226746028772391968669752621048449832239599381251240729854470050226607060912100168748583125899134717031504802763852834809863936264194485265217422080242600042274145291855472847964838705205292040245060913407439644500209006519983340384634866375307068958490665743761978388256261087378411524894453725980544763141905311463359909846562531053711831193595876705100998764229669342260113360617154344502246888747508343640431007284890340978241379352627218042399645672000965777382882040548172378138770887489096140107150453657846833221013518896038909927612380188632076842831838762026385778939342775711409781723307782814342463834474386651117616873890043576408756959924336914617790146613630046305798209609119674833412213644618036153378948129549127877457551280316059033478573832392969024336347898706218635543736797571280616155276463209709566469115846350807973606643000808356527876809927292201537629300116021626003996198410783025861689571097306239464879798647581126284419006299343276114242908037001415463141083071017843331480708811073391747813456930168412187358492722296704271751990124617432234929846039750401151930755957746138709698324619907085131585663617703074344036926262181910000465553299885601176348316380673373813182352999926218977869018547547957192706334107425167577717880898996968052897831290363936616862674506752675380082633699053542386827659473451190947030045249502358824140981122192822648573522357882430302290687926175795978141905409643509047305228028294166892711900978347411523652217953026012029218521044060270679354005674488182789198317890682439815171725682381099027270353464936333826466164660500731120931781215193233174623850263396708547368563241825657667382537893347894280819830550048104066886520071132942960929136332912087658557093634060609911679077757986674044653196614126047560041566315217917737429568232831463494316675185918315003902282902394777246900598584259629408948153387771840582398483615512299985100499645445029446511869135174391157650054344361865138213900255440356550999459705893048021752943883407229410026138537705153834015362637683439717352265040370534291277761935782919458868451281432126967131408769378594362323479808650943247258062201574467216975471238381255351257453747641275526530762315851379376334496133584422757184882536923397569575808913457183813215176563290969301695441720436634684596705405979384746694984865592535989959138015120905295981659435070116461310020904605412930667847070207261723773958636265620603043319241008921729975157664390219125506749944267015343813726173060177798467338879335812151378484293578342320885110250029559169049916338287444342845564494718008155293045618577681975926534600298162108217583923289976538481652489048559675671994667911054663411686974515781848113769826127567753027303440741383094770228069833963963141726943372058228144776058378995294182223667340949776473711772921768293809046286972711779397021485973799354036069654154434974270898122009940455763955040677973611761278468912939720782091866138479219903859446615017238077297317731971325878365580390148784471125219764654743434449734560592893306176898230455054135027686024742228121639114769013751569991894083655315355088296792679327787430116225916750955374787403294207543912562419230734902257172730470140856185384493285240966468471565998688582015536001273901707788793151871154289870565656772801229310691122892415559935661418819346878275728174159830054415932588608524561364181298331310364206695629752907311136949509423047538613523178055144899102026244046145981386176798023941103405266799237981125161791082242228681445975169254944266829067224988599028808471591098344085674224020650607981168042254385333856797106374327342684371804773249253693788596802920147504757553625672943909926464579956581506452609252077314196517573670895533072505757081603716710194806683864591279100227930262675266848502270467071314495758764985152609651447237374272288572476451648598237910894978437667839393046279949417813662170454023486864915449137450406437336871009948416455294793344411221208951615555961234455207469996968833308937436273972854426249513370641717063957518953378295305816943604513522304736282775746685433564042920749544398554390481933489006615656888446864696240697761728178129357808989690488971128708421153656594841173832780895484996353220016308273265718931355938558009392724367718060085806117525716723385398798435612333774041884898354373720276967615643957707636571269211125731030175944111869222145570501704951840196842156419866479707553425875573272045795670252417272536460446424195458709671645529479876467408200731326372753453889525817858015145441391855071544139358191726688491711183117612199281072174348614517419719649780522408920766875618761992820065853474646838814438307077373541458525693959706054447967980867683591139290636211354700007794451456786991265075116263294371921343895501460789963395611740782974105553857476957224034496125422447331133940938157223895138112301951257834013302015799906865320744378431963541938318396692537419910388485812222549441213510255574945610343278646996761926041062492296812404463558455044015905023160111716149513102417264828192884431847682374704414542337858521496567663068929023935919346977930776265707445713545849480311076893375313725118767466307957377345512383791621179459632493744069238735378119648668884448056412566047989706011275650512943921013761749672379697468243325844849297639503649459534484461209623617414576086103786496751656102905684434576765128993055731572344479856214201952360466137802037774930187143762217023351204587843453360523337788078446683575864205276430493816142031027876237349815428791061703226292679241478877935714595774117687591778520214929891317213112687740408348588348089091139910580746256369888383207541749260704938347254737522766282266729473402235505512917896658626095197394931784435287341016457743001992852135056244438389127817271405521604347359844691744542027688929692621149264400717376265893353782156645730380374993373437072686416571195320522744663897570038002680147922048207285494183155023891998035457956438264303508594937427787483058434657261799910177057283978759676378586042826219355925313005685570297753433736423013522823457586962730666404245045005640372334933758578278033940166661857656498030555678170899123223772785257411623805960441773498922275449216654470776339949050576333283116368358537991334506585663731906949557323786357046239591295428507704528138837715866804877020346545441725678592914512258716438518687760000891177730388890089243817017120707204193748395894207088825991452959840610182114651280051252724505208792473582980658103633141004557433217788990910602729349443541867551999122031166704642860756493040998168036033144914156697820188883365965320221400222042070350653363937987596834384359478209714189264401032079007282739238830627339871189930886653189644765991051365433061785299259065317603421896079979223862853695051652584426512497912357842599330728075774485607071097455240173931240795746673158694309665167599713117901769761163278041650115410215070155476767355046761945052468533598237114136204196494015697460499885574959008875212137141088280573547144545639964754503638602475262246006985853119087238691148552735506497928187848527530917898151362658947742752365352520109017517980823259615739277306314375412034579413758039519266782676555903306226690149014977560823833895576213750039822238591408639212292062679581238264250696968420016725965387560649865517975728775311369941730728526918576606541692345051382225687232628466614954949147690223002679358854311361133543542491036737380897395337197600642844343231317340866570749272519006241202808836222393753149072146927360024052241639872637951396534890558146650025817085758129912363408294753322919844326029025826755541813327278210571156516547784106496473719817754121961163512430603753693597908969396457600150521170677019700393263262651316222785969575886518091121359866834448790967809253579786642067193747348774775781162373584773118760217900110102304710788818071931891772524526700946759046630466896177704017366606170914612304466739503070936056656523388799178746828902506673303534447306214782044397961662766061516288315602824469306754274111698372839792663837800986079036889834698819742147539568458544601852683849388011943356323913921023132353586754513104709777088796390867846126836509146499221140255580593080188536919706968690421378988220254382482818029149095246741853874127264100921947162335796485628608772421690534289386454530886705579953029424364335834485826410288553891675272740291799268085170751455163493082795919045036097848634072225173692070382502564744795852651935245706342368322561116602521363930948975730926412538465840599289837704969732148791472273793369493414695597191743245348061860280554720283461396534550346435054499689619066175650192741691470283503494782973812150312207093401919616646871863789786599802950623295929213104893847416194636271079923839732014297696285442773291357758082974765047842888056620557337785612891248619439118338329462732304530946328418415884017939791482051444805047778895413667878824669642136019543050050982236604922438502348986173125668103417676115478061625685403963594601541248398746329041212174059113803464579061213371247301355172805947612670907679914552684004085783577911010608375285508923372825421495012491371820428220457017645531661036810920206576951158942516913730807016759695364980767327384354160060214353654734698796691053772078463290581599646387564543650792343346738094180924148315393896171195134183756380755285576719179400004751662007308140776770722954077120353373386715336026361108342855654198386586000003649576207573324953465637416241406460108241873461943677963986312456818103777937168221675195293484415852649402316726269888187254757647347743378314241433935663057532040338656661697130827773417565266394685958445763420344418718018241522226969218525987536111756605409470194628373313326691094672049766511940689438527794021720639609918892027481910226342521936315705119281047544970614894898013750433368928897421968524199089062953017360974325399662332358215406556947922970646031374574211068533792542869306849468530573648940028399324614005261157577789344112674392371560986842918740030824333762789423932718864005698370198098189105473268818731870992307343813400854154470082455788009839566614775779208308985678041045008364386888628819338644702261838524497602935341514903064072272760189295040488277506093577615413231355942323430549657923245011507297013945863397870078335514713096077853622902928115907713216002035904964185934890865130862228225650643647136471820134767426711747329355931109136513504764495523752554342687690454326860130172297684824878233356847764721949945692966721463173552694351111688886950817182716446393798467493218199853281271249624156004089714818368586853138043420469922331696962016114779542676996351733544889501007079604635295916971443854855132868875641033944374427857699774914753777857691314424860943392351441205498633509351232903678822292843556038560725534623378201049265859546817942983915909357775238590027700853722804546310208751400984987631503108845947857534741010804220811083955972343903146911353974843897993922602541669571303580536408011373821123748025561512680215291857244562158487428076446139877054695807291809812309776298127995926877880190214097437289556790570992307399709873152928898434370726638127428751430887602965759927114263132075339195620829305523153950212485333598569897994201179029441747074658649375199523236010064806554311795214132668224819497928377101928240687187777062410110785964738671454188148662138987653751708323248539884885861168900755319279512610981077442753066809874698284539302838260884926407532502470230178031521463234101021280097716280486053098860927919712082977337634525627985870669324274741931046706884195515189111465134762156685623398855575749140736616537239950059959142879072369810340085852571888550464767491684219281764983176488272255737782646475022978320444240986090710299176215907432913915387964721635488994746444115408200647955173478203134293464946565666852482431736220798571972885113305999238761014482696710160442824544849234711471267163988363308803302191667690373661795135306093280403442782348510502212148232848379153786518926668359333405879929875670163995969284143260137134947871590070687784915904256851876218084694227796111841380484293840049080488341273634246605358307009422407586774134412820958054871020637765978105948200467975217818606245389793671760902981877273900054215404783729942038600064265709420031249038378710447055237812648150239458911313443511447034305860100512099714375408362509065883822607897730239438254932118057591601861767854372492727513875196660388810321873345670545364086782871533405112069347579105817223777620092250587035951406539461772415980342403619321401941512956068205215155706474899687016989590786202936629340647358801641433997578482711943248054638744606783068797667784234853530615498084761656550807795599286856003323132805386116537180636832639226429823167641586787135704909032479874819745782862658493102283675474020871785818223706178076014562643709404658334476724476910055418388046490855259694681299851429894354838925876526069516424745061310138933564178696819751525108476646043900579346828141717695083161039287087961099097932954145256600165195936265896988071226833104174370287872131639135775925361639770502631881646255023028557721299168865549449287551710948839625527810758295873091480727918116242130622213948263595641290276314578761147308251309173009386880489901147315342988937124310490996731377545117110576913924393304571584502387796787543332813063073588929096462672975548631346248054587584100320466350417675437939403419773204997463871784987804798155974307210413881090587396439012068733278629179173722911731518766666827344204116386940974119648159766109258045623423263628267072630344513612684130634471092238103671827312580630534387704103298695178729902014068799604166563479890196294375797916414038187910062862510032631468359163510688106748624770358494437729043685746354068116843874416438568303252583188876543323201759932012343534441822411919769710061175950630946712556542097732446276780237990463869192313470505493199864563861855879109734355820240679006884694919538959190205628319548934222858620845874891465336107796954721683248922647645159666103354358261783639878021015553513328148883566049089483616591573894017472490021684130406239389123654292817562648270774494158735215223664229697605175109822167540310545914401600591508520851186074588219100086980209142892313754687835214649311092432412242423546199462187439220165715377489029962713851688858851508741052130662580814644108873190342873153982261240157382958615532791077724791113335375508940211580998433290809876411032753661500357311717590177794925908506116907636880993668190778018321022525735302762220513298579997464073159977903983170927299725829383503946637035534810336685067840625908770545218181959597494095422951340944333844191022892342713313442566428914168383597250237429681165648262615857636872315455382358502294261614929632358966245793271254846336048452568530596130970454369439117125675070201286932488468344849307535122739998925793073440459050402999161815336334129495942704423104335871116638950923440726945411040029145534197458445401146908946705066893230064976184918155359189755433694943361748712552614263004574707094053227208612184976784864108946650483155884049906880853051400760679827333985554211728454725361091618947209990985670576403620167730782076754825986242415335497388858160962182993083932131670402918602047747070190869567595858616017534761338911858742683978562027809119729440056397826614406309560801985507142689889305575853013701903459630715758972048330633716541327439654226271408097803492691689796554769996411609225502229979232595420967412516618924701358149169248880631115504667179314226981604414703337842467888666532441599425804324592149426050158140967849970594081738203749024952763746100378136206695784486073112995297119423017500040232587094655373201427973790354185778834489115026848016691550750403838256339582140587161253066931957224362560569131247321936037297483912031135075810440252917694444020052450485105233272970424923262519548943037521049953591629376446075899761324034637816595456112134061480732759052640835161525558971621049076685680123545238261965371262081248522139446813607531195193471414022169562866021886456476205733146203096585684971320816370685662710150916251554073701396088240459802912777860100984721435534823921565152747723492941052944700532528359137162284338731252341380782682170769936829417441998985891808141178959306801024870234891319586980640133973611506571996063901162620150781837338802588377062865255350997718019128350919324665308406960777630733560282763891434994221372039099236105317025818059432032833646560954489461232988240947589751004760986701002061716915204857311826408086115058587859150126575106461579966392682987799727000141136279801330042467459957042966024858077337862322336272077645196592987670678588089943357921191459192102511387779792187478690348582828330767486516713938393948924745791092462752749488871632309172919136821539477904242414314271594452927286197733465915066264623823905778246419710499316200059910089105702233890427812915934956140628855095605353071737961277647354554046514266012585608691481713380799650705438367856414298479626438398868254695369661718999190931049279780306006348284266530177888620025377939740253750060345230214880232962547213595430432890379777387086434244806482593128984181615075221205878972675346824248695867839954590856667169062658468942649988020118159585570871422107087616062706138158517030156276203277970586551261281562594094156553436246557017711816307383589666243115574404602752232805551109955083304724571914749306790357794383238396296139794094478748180232543334691312801308232346924080955051172045411428142727019279393414042190004513806701292307893119561040451784944367479151468806620444348611396467688514030058182541615934737242404765669644712707160017015674797084720870071656833761553555134216375304141222930242344153366568638683433765193456301043643729733070670118087123120324556158542431477895130049910166790776267952532833610349034836162657755130938595354056873878099291808491755698405123368856112317361140943604629576855314211310624925703038354942392610213075027351404624868036029222842474372324986335751162270906343869102849136329880392088832760603890883523401912216812224535411768523932865226562331387320589818648133165390715206332095740938748026769665816007713889192011814176628837310005609754615767833205402928003396094354988403079197224660125385935654917138003541174132693916491422275000631859603715312773123628402414528856953705599076183112472829754569790530551800532791116200083031710101082918233558414215126048878549442485909007006975440285786710139911673150718228545904828034031944240337029501980288465318827654846821932986901965584986608922640149273120719680665370110210103901314918542906360878058311152394017132000967827937505491440027314596765614883644817010344858586468048924539993960230372697627935178929483633634119368156925247471229492271709646219129254321908570852927380852691122093242064945973960032245247671715980844962981192323548984909785987180358400753070714810987027139277769616231946663712475325569669338602495653397224371226845909669842849431522825094830584547188254122533155049138026492745776698809655184682240763735137043241182733845475263067080227639307783109033142229566553071481136704835158550522995566374441161718667189772386751112487767531357219976784504069724161663388706037977109433805656594553039450988901963918398375862982232279915533057366759924088436427244773097241042090647543042019731044025869823421839273073461639760195118428279126338557106769615875984935048804744779908424778703224969699995409636526892503285955652742898839563046912305291897462941520135614991340435053339960881412322939987129563196350227287613021768360176225006395413552288619648971164153584070473852238266384498500247556210466857708348561102891863509964481133945565554270174707331770754821156752486706637003409494813000185896669717419690589233857139985905162862476575251115282514935597348026949084010799114608714870577493095901947615059779374618348949410325426013662504016514591223975946536013982435041705694726179807538027033189082656605032558858773946233933573975346315885902653503518620658050051722404795989681141877258509937301994674429422511763039364808997667313998355509130982119749318279055425627032277608700593874816793795982136550937690371980091508615784308374838004007930678912298348781361365869228938687737043049365812334581173668460083954936425708287868269135135599357006025471477547641926161622796082512730104628571455605711484549439762390712428517052786072902994061622013597400957500218252999483607606923736975194807329503572291660498091813791893802767219955199597345077870567791593676203535696285007515895186317511061204140305903416085865883282882499897097602631515870099983604484502526498789526083068810046586513552031089272347474900037683171053131038777079134714804735534575514589258800887199703671048183242907072920447792019528956462230801486069941187763770224192584368032558834211867033894775272907765652500928305287802609666935738464578879252779250539135587349812469003752462686937904761899846811311770337142858487455838140268510592432736348563480100282350609096995708256941340580933898293137455167806726814822436227371031866671122991970834730812329811088790656394677934094240233489388386687471356313267669060453174957037055643417540859317592873824837367916749613722989264679611851054733325746816004663179872971888801769830181117959731473638667287992695780400050271571632071018726143088738918458349288730347330314348303500882542832736730905325530497677406444694476632880335819313751273843681813262425899225095261621733857184422897605921927949837887209890567021104300814527453028970107057757128071522716240345650419177768466753210130506692367095678748764846701087117918097271634007763980286090412264924869276863761472588518616194416161439003759016641314932122780226902163146218953398424736816374956248793101062344760256691635049939968566390433942085319309941978984114395781243402244522909246397022057185109845534490617251172808228100961711268485277383524766727016663720271443811149431946206765132146753720773083896350812172081313832093756855648276271060214469008449890672543927211394421195008119471913415045274271233295320360707459530644572310374355897714994366501444295068988046971280782428267409867082977756797926367762634251556966231230907594306825530256042760589890517846001312861351462584014443669436657887502523163266355616956988870765935888509964455547417024984426027213356021284740888867831878647532185051160024468634292028602528221165646499516634083113685932284756053420209094637299178813781482342287583532051912548215097476775403434962750171806494395693956827410115577194246567067623416532885869011282236212620147891467021930164396478228509326502168373010790305721093621489486709295382602355224615634172248533917175166198394754530001444246457324397081673186676839997628199333948178412035141694162002180849316668923991828976622980808179610537153427215917045870090440207042841472197369175029355200880327368794096923726624110562249464263957691072982059205335191528047652529430763795999606762896949963491695049601637957917460362850958506351583240547857553323679114954257900967862988637243945778193380199168348813305331752524671532604072356162785327289196815586352962257198322843670116667854802189126268887170352465498501569989829508573740300345456208795387012893053260040326806834791001505068669388056056664803104199061271631370081794748879026114300991704772895270584157310508439369242187583624947198745646347967476162014092407360602272243467191589578558738583498151531952500289728696968391477403597594137205284264984177303795439529522325486117390585063898482043544844898072280439231070620923037563707875877685607927456496271417480154116684653601157339916931832846848920632239674658370264380086646230253058818491008831326208406783623902600907271409004434634371446174210962929141293845483240593179904670374911304592571508926883152440005685346262825704865880790096776233684891185893647009888400738609703221862163408100934039350941540238863856169871830429262097104337187728880556208657892994950150941705640298984342909139886957133924013482980348368602375259542838620284125540588989260445131444418344355430172749260483882788907002246109502032453686487079310061318024922466000129192852569025717961937243473633799138665961811374610725017031758049180335875035033680448265101609481420512569734864070569904696967088766483858064509544834815362367398307213405280510905808973816511758200042331252032347750205406437438119805652769871027783073553701587189082866393384551686206999365188954921649396331056726331079459843229086608658968178284251294617717222492601024689694299910405889898306709256276896056919533234006681403488812119724918710423233346612625191562139866333137568920383783525032743281352029251633860779209672486067664373405103384848908265175337447935715912386780619346361399660854994913673439816157885706397279022916391305065410150924778528446891884545589162212868231788142772222888990885283392583215557873267029774277483101050820322241446788386998317595250353239777531363806062099774986678141393090033146748983567090008806779626970735397964208625088381253774726643949710570908824339786959207233404231367358001201608872548864248475821689434178662337207906983728109661161117970025094546488961217906479806281395061045566026537797437327709486258051591560839131463965713097895322056288807786342372004465497363393150620912061651436300498865083556994271895355517501144060206414700488082246068681232464588517502055220088542410291423317662777586736042298693172962870141451044622824431447661281539965720036062828660524065163838438173744779613517224233137821408162207300717895551860590727403415524139615510107865547642885852881810043202394975071630613768190264168689011903985447669798246870857940721159336699172432714019445416137463811830496794856864410621311801458110060735555662992319384675231678807640928572697128312374374273495361586477767509862810093713576504527797460983867213773996131467381230128646743483922541270129481713074729721198477534274935142086008059528357819659444064715106367001668288986499885978732882234620686966402279723424751693921672684501722564312675641107831056765662382090215951971274321196064621026904411068354328859071124807902504177955976406512850421326354811831636488373159576112034621708710121253388562606552507292205740077789467066396961342745008308206556583404379693607407164025253652849713205784742848375966950417757865584179486962946868337287437030194861058925041254986650403057466631705495370897149190380685374964661402795975508870854688759102596331769267321926684831710991092106244306159128264878556834835971173697780048777571150634819975837415367295465822541231129071040181275775756913182675174727762371720574419394091800838613288162647746652140358918428603614773515493611547337141683846930072163159319263217061617039520969919852891167706964363051974168966240129863394615463884461764408698868437620833254681172875916059239688370708827976635666421748941669354353066026772897832994459946704348789980393150263954994052068119683078201603125254487260359565518929504382582145723046208051753938692859422524728317523994411831069654372568315620755385297047584547541599193760860461406349249181616735373526757896298888340466935471115871568951214950479281680327640238125101986710736764808549460613263915085995301507384290761598045312023896883744475616083044574381608344852100737272226130034051915425186464070467068807393571401681304597003044636628544490180828123471779387632596835259900863147885071289775607400843698708184912956852051046021994408082809859649665536268270174963675675708090152508845435880178051199849086314692900559085346656198339280139904504789040708392391620632511776265117092772171176006263206573266811604764632379900687728180435266044846136540012562636704339962445127594327339572851202991748008389087399426407141209195813004525538146114467968509307563406804011795727613089269853985931921990640493399249736366835377929243586796389335715976672320289076818241877205444026176056120527304035438021143378429271229110662577419090579203225411489114520653033566524400656479886918832752444732865873461372685878995423321741073766825656912617823303731203983914351415488106869855016374176707133036396993043950860971307148841888958714606674079761791668214392780122194399965023877605924405578616290848465920080362370686410267610196485836309797311659661962335819383826272187435657500516292851282945355320941633046770820569407682088844290459666027331579017904367756378014652009670963871977955400143192298691533542084227693874548545936975790168248375769430913237616432705334166419386772699115270053681534372508292241328966094368313759412008754067378261889614724224841059145336789792158739437439778629365421103769996784105974412868105666525658135643649511159843987091878164383655445789909381373583524155027592640442176378144792297017079097922973665243312929577757449632181442808291489717941508769887570046778323495411672552206988481227486808426617489861428228337737949872341673830254942156305817407701368982491395622186309415277611566247766715948350097830958869027122440460098430073266191903627634039109435010815065315234025691461575724719709204457553358842613480134117930857592842752222101510383122847006971821621790196232672970389777220335358776772019096386869270934164278264362033787194318054773515353231304776300203596801823157708022806282609732452317816359173006339387852559565650228539159501760009221483731645109417043617792574211911451190024662780538176057100758070715167298979904670658555816371471690678157349826874632804842207206008286701853639829337682780115320189074163116957188845098961438191688510209920587779457425932345881352172754217031149585060661362318647014213147612132979118794111869252593551583455441793700569857068160703894548157769443856138062178019231836243599877085935112519298813395709184158331180218844648662925101985092272009892879259524647382206275804777081530111174248213615780666311637923786887247330990269710783237428415192811892354365539154356562537160985952783750267878694220237126658204228427441237451865273034196742788130149111392676614874008447555731028506885734337883767904206192067336084985192824732748532091826884076203793367245191207439148663116297876769713170066486277249483448577752602512923383755909524105540805054645817493339099407635443733438194943813651794498618678097452099103108828827440031075660563016177808554998819486926896378740745649005798651079709993067997956791950583655860535369683947551744099713198226672318689202877439962807156809459755948185405016496423732566568971264939943438112329403418962137880498058877792147822165703302332076661359303148585353628972394785388504605113904175505430305461492067525987184411094776307711394182314999176038737852598060910647028678215140502480279570224099749396080819514229157811135944431947591741259102416837653768428062422315732917804057166435995487174537822517651409097984112485909131182823633864174784163468062053489423974540483753479888788344011309643538559283487651756982202235982902731274203054524835151532385455904890764468545137908299322776346274546177709763895406397728812648622469250109612589275685917265834463843086204740563687193332770793134365805930460599144513439661003738650446423735353571535256094522568208776952545655279369101665855450581452783578051668688684009410637189282866592943533715313604347507115558155420139785759828406910049947278524298025776904347842316056184804024732645955959251218239428171376558602594117955589780215237345424739612759710680334100832789996448052721155884911220836622881684431600781337136034050207688689755633994608954066589851221982669670564815572628115643069147571571528301006630026029329259430522801520791505912392907206560005110826888538841662255201173832154144647274603479558782506923029151032628268143241610757536097689596366225430279721048816352226080266144401208593716446246010752368421918874292992752376450612239267316882394989361624343301945679696958897584418612130054899876523774781176378306177543134144988996879927592974759118334753634524916109634457367930035116115651923274956592197393245350918067710851837002811862585201964424595601035852354444550781606115267560151572049676365197401589101098061244328047458008357844446201305659023491813526519051120802718210118578612678020860367043349261661664465161046328528055812381846429096288503324025833018783768966071749620085299860808318371154012480650947245152323406517383115104951665009283506773312259479573367985021900925484301349602520536888622981986189040082029589022553883078148937321220815417637459330468932826840451443870823061498294455576759898748858812727554290390775931758048238164648333732680697338778942890216061077024725078608103396422884728888165032151469227686068516406204706837791576786908899748519184565125063307608793340881647511506808008265214831898397018076570843336624406925987377580645794104043713891061368860087135145197230941536673376497188105960882780575327573267926800651218239108560609925033065409284159041150808106519128444487924156786971254479002984690717403717190720967163224594764204714547006922390843769513411588373532434319492140812561484397481209469397737204098334223968356075656270701421160947220418201204803176674381924100539309534913650608751406249713413208479365908777261065188537624492878396513095988906630749303176537862078633101358538879590180044332617667505641682677275638714302717593481794128784689345355291271498932288952125174979716193544261772771063962494199585057830453836038244467275722006472309790732574950162682647223327908813510425705810909898800111660618028434611723248269924506398275624684896383587863901199401238676108115669560817977215020627320639712445750064494029989140146272827855690800437029713328700477146937011143576698506123854013045531596076728606013951610810274352067070043445566985785091106598988951655380755821072836056542197637357357954600809133002616474205949889058326895403804682419501489720303030915190546971314744313925931593904754637120270341591514626307791920199276038245394955443834832561630054035561369966101715529555403563549795856105352035116393482217624924649671458282120778974291546821587354279413514804705715562602746146669123756809097222560268860434702840752138032017883323291838122962263443884448633765509744504529898981542382011715278995114700874180619544197109568829137641752447606105457983634934708401023901278281128322589936945352661461084602682677247159405195392084634486690733473224917637895805883114288932056044058071432703827298851073155487909874206575675498318598935314129079797593702122504115293167850273032153144916326917965927203204186822328830239184430194188528241392751913739793295083005177376487343038315168786740415511753529590127198916866398136060025120557714380902344445369337833733688612376865680765155684826809462289837161422423291543024444717235340530232559053254721295229860598841863223985408005626201896326519156291302361306902670300907612477608029289096738663176462292392697545568395164437007439794371680549667863603215257377828082239196903205553627980931478041296143388083524251255988819970653833863765086933827313665780243671044898364654799824000451500380779085622456253569273997995524819807807052392063106302792195541304260345556959957463386527830495438239683724793304178316336224876095954075191436458050939583813301821770798962116464385645699531818250618603834374389860486981141782829614895378789927227163450194538393952831745025381989802675888156360792656661936147128175536052895944153023137778120307772397384197124007983881284767915602057492890086099593534508322622749261810940035209403363598803551982381248217738202789165947544718909790208531098884791446179826136786479115142245887695564955937516071239305738808332626222803618558026451872646258577993700594734926140004841096583605639012970084813892006087680150049505629765761775764048378129240559122414521183079387926306557478728564753907344575499290399584383506960079357828785796332196688177101729438212830560260111824035237753944263676052854603045825381485862613214295043699767795313363686048434512623791133230602463421890519572929690257429202829370786922668915340198071827898211087165729198069545191576666940121053536531890509922842796169572299220963657309674143006249243029249289107278195159750581311571240143777847410044490913343509476723813706623593386060595624242119227938541773175283955027325388963379066375170495603471429989624027106541119943650676024360780924525578525694117855291435663684567019309627417164228291912205197154445926030309472085259894418639208892045073757628732971437158508960423032077120446623070133539931959934563994073590978433886026512199537849706278771181959581154005887361726265738544804972219365560754029208270812767028372464087058144856892107301790373113836413625443527237840583837641039708693361035283062118640912136924356206933808640990075773941380635591376460736895527564923509147777458777338722892707229572792238351530670788213436670893516130086892083616877564964316910819893798931769188606518222122623629222295313714238829326001674547775046712418085174861403875895794509701712931393034937196484612312006000628970985877112225894311124970685960901003019821335630901515079863845178966491781035419438150597536577193695298381293249608752173337299689724455605113323061814856751533299459065108300743078570734655502627357599753987689374760013476380127794971879948480215528787214629781630283723010742841921789197011891332357043017016356415270398997688384711546182064042785909108060654856530864930523058634929261480689364382666414764854298849992289808732001095617097086552282992779013797008051141169161998760932619534652736969770012356687461932478685551530803566445342209537490515331679935597328219268062968080338326675888542604666669017798024313055317352766739092937401686208410596227527101237937500693222084039427642829557054479115876224346146842793635824091841545873540712246612778697168202045635412474241212291916021303806430377594875712597188309980396947775006726229854857186709634236716014006729712983983510193603768060278765763541516209253894270215305417045934676402396124655183400729387231746239021247491434322057234464060375162320361093530791891695078255234266130178564682900040285726195531874820255415350641027875446165192120441837920300670961074555014061963199616250249095460035252373106215216270202613431928595534543045502314998634607046993072438456950757621240642012566481795403169535069719484487433723233862710404363211062990422247068780021692147226566534571201548182265655640714624907397254749156910686178992134885494149649664085511304301367183606032132395185803465188854742081769152609969737537005112784377371660891009725433876923789300955196968185636374730494966021551313278252476425002439913430827921737155700885236050129454128712126913562148009160494455288078396699181515270493019950209392193909609029685564444274897354163181441916116176910960930648129604156301794737006220319424681111295778178680296266683284952197986291623080795884627861641257216317528858609669102752103223022147232941443059445709220134724100725449062347403419405757731027386760127726512313666776955704219881064104180860325383183906635715208711826760762410062240135823856130080745653792653647732831243832834214090617178930828367935975694995462468825078311991874796142618989110153350321419580556596296281362097138513005232061120619182781332286853412021763268102473760016863575057979375997425386730532009489030064784708279446293887563162909886135187945503556781602208612957993293921965171291751616990936658025707757540100082589123676942408437052827615470859172879759931889960229714085648194881999161196880562892657202856895999541178172020431306519719915982350073917334168125625258847018444223827825371797164522919049437271754047922746406409577742101836835051321482605243497931905873421589278608059042596259149326150348354737514817066079001700481370247301143962948232629989749802390456770223902887184094122422786724486708466765944986004950376380445012031842785412797127671021191818798027107639875381385512754842615088011299644272633072406350978365891521981966951473273043803839624756023342557998594875365213089007823790706832644117224825155395900149822855165159552080045593103464525764599451147668134321556563776029502062903733404346943941854098239844056191455619881899805464404561072078341912150095405461257805356281642392365154430532084667609802205952334712726897845315482917864074918116103122172323447793715051848185536183171024668411480945264716494829544626202163215010247519491206643753751101512461698314432866961403637302514521308661195446672210931084421154981673188119417489938879115713214339126780410511310286611704323782980703689208904068768993150391463855545445115678390919240040642550453349343176047086970651635108983286034056027502854023045544704443810810649871753125630843135923809699163050723218213757483471032317508402920411302692701869311180643909237322602308901154735565405263371924943645656439466810409642637385465594526524718009942509447425744684404524054440389208820257239201119571242971557064937666547702607001532073561972779284566088662903581856279373216168929050026953869110198631892570530627369024991089473376906572074043316868643802535388736677253291426879562735791826990921058894064715701681378153050354639995006328390845905555622161144733532382175652326160552622537178363813054697905051248096065228473721855052522553326020275596629591970601691551171115217510986658343169586930415578746159917088937075089563537304325593324236444433855861049911550417246622770633161755471301018266206587583141566043140571297249827541079874578289421188708584753683423903878131387230657798924724780862296948220738586717337809528662998509288004819520053343922905151165870992800725653880280032549386777436588255235376075424083073760878027015426463197469273699366652903735630463330212041487758516677772631624210318926885094163521898901564453516506837022800223961058848341760359997176699414286228825352463169564465016462381444633196086111063325075580863098969584009101058357975228030938827463302427196553754771071394055830291831481177576804470944206474720496535220143536421054557976046480107037938130183481774375478887390623588408607246766758264996852714125866679739290413991457251455100015397636793960905700948939463932084368197062105864308988078063630508192728834169787310007859243498305757326873492557342824664898779584418024608143140822476263040844053332618181414928154777667603598761301946815601397637974485387233753778865744879142636025157676722206472690744345169009543322512843107268972855203948778103395202124874958349795259639299026752961551154506533673787676057266126669255179539419646367372943447126851285756140596823879653676060729285534811015347510461777448206233798001072272821934916136700227719368612847472179123873044171779143962895752473049931428470300693514921450427487404114223899405282593616851347194265093173276622613902800629496342872415937479690363645989799590772944157101443292438408530895307657089162169592383438823848322591136966661142027134370292205107071279942085223880570569038097266768525555030070193893527354728737429965517731106592623456903029351121861731666135560033952315422532598579273761483181250217865514144778105678272782035795811793062404209631932859123207073912901391171622694783658242163930482033208960655431527975518722650495509373677797337515005557942644146694255341345227554768099251313690482812389587907414475542373054163882146630823948970211282085962683527709274366566817706645542830540778783841042563129082859680438876571893076063557764375570763375364575266684914375772559607946953636297762550954304407787227500572787609216050588475061404493103315788601588117185767761644727028352595978448257325943384786347745913412936378524693426851334823539732319010168220962441727883199114994780214095495810089850653821208576606741560769652026680285548230863206955374950583367104090242572643120862617330868021249254585192832522421274783946219790359165277175699157950872094210037121695944796304513100006753314516477876052786728790742943092824484253774210678753154655005489208411086724455456441383353505052588880464757234668114764637341082344092971741761066707913371439372441464895951902630772363943983197732844213077155894332467675536910601894273486993607473329143788136227766165224023626423213926485695668350929347649942540552642647727354355573424376755595120703817529492894176118841574053586107775558410861577493163150611263810034855254772962458849451260008005515931095524259164394423172298692015217361356150826444094577640940353649230611859147854287341270260133900368529392345362545723654918029683538908162602274978708910213164190596109284851043975078974498062050321145707605460715273636568552789759383437282793232777801489789099359714369805186761233943335440869721414771206674336094929121365069324190886594065162887566747059595183346560934929084438204204794872529291219346148357499823068406729156458497875645568822334409779871239888043011140571777425441883991738703776639742864374519768208616202624433716624027430335916829425044815260805318170836038177704315243478037637289867631054864089120883240728560589725046857048119126609444616532802421954246993827696547733214946793579490172702979632903783887439917732541844904013439037259219656262039014663424258292140925703584153302550535424529802015117292423502820230698377662457607171489154940080869453174232040436680069032304511733567005044334685194421997004085560461836021447900972004232247101585753929057801379250984976039019746223949474370585098035078797544504636424839382379352466886599055868037762957790445070691429818771878220264383653654130699673334157659352513979480007566811535259420255022134883686809759484839693566725304429074272864618370042969382848040218610689837372326855998857024713096626092314998003261826567416213143333595559756261683476923360808236041823728295367063747822432426152940812999616184972778035314486248798547390415719129156793621909615044457217551952782054304009614529947691504352820309114359838619696105281636165924823336739617687212535904814174249982051697854795138610812073974989483111972694680299239314259639892045235357354651009147211723804762817399836870286864464545480210153123172859859378391931711739868076005037578297490249959986976818759819136061065371806112222016919166464242065097312441592533581784700080066198182615943319488846850497354045259325875991516905035660146259176391419781865736121895477304489411801850162012947272605466300175212731203392545167557673895392086975357245127014253716563871878245482756219471571281897987709820009186830814669987635533365287659982494778959070312005342651649233202567302919646851704657572951323437061414444528833017964250343319504513750718635384509329380597590077193951975325306979465224878451284028835383571483498328659112394220605488603056559127151470737919381087856944707106747156860514947716735156424454591044918545950808466077990416812176914825751395365695720239007759414657300094146670833733405993130488933165529604449547352180063907386494112436070504681687128634444137789592948032552716370159848171352041291950383743488596128908276476191043532956747421131643359247760067901288251120287378453007143321528060417564279932493863086258102451272529632175271133217872852113319488987657191303135552830689460602382143711614361609357055969645161282061318680519107742546303028961521654751920957739049693631605999157891195486692784440577986755791531900679755885637735424906462128524899824617409967700086456622341476868449158184786312287599489397102627279666713385438878006070612654435085151234477110392898628193395642289759857930092951079119804389002069411734614458875260633678317309787744877577152134753835485164670368289952119193339977518998787039525769216929602745344428762823778900503213851031485818052826709775761805766121987698909157668054380563739418070202989213690131628314179588128662878883359471379486522320248029738643879668570139816528103609668468647691248952362878686341984455216731768843344074884731457444592810677712096459367618578081422221994872103149062244482700240479874019050158733367687073157504957427270334582031509287444340978246193704013456917049725273542454910736715918496671020401090199749064648673010218175651491291833347697043997911519080480494179081716662471308355166160764122737569162121958357124250949872279674899331939513074961860833861546768934637338700626242499712452394438913745380598047844495700890622613621790239743640327908263396585433652337781177244385283907525070881564444077913681672426288145470722825616270007686306893316419110915045228085282413924387851321416178227825424765974507195880821490451072785085110442074035985860462855703221938150585755753391301422578708569595258348736850241646660457779066628801955463876199738760009367297005290207439223147356766746465800965342335607955621424302135817510645688482263953536092523097980095529130593384054491527301797953166303360677709926650269495023518955693847923827439770754058209436271163647752102417030473935507772427535444622648513269241405909284756025617026961966424410988022566760275619107330396219740753938019720689049833130224835716965644060589246861051912099561418055928073571305093759792155861732262531125534263944751984250697595502887740836075330351509636736033125122647772775934467602074566227775358885762775118751465761821209432906381182079764675264657034561435837958707907640596828045114408297052057045362229217200272213294491865198389735242372785150260760605739694675369414688943211632718911067275695676758775353914938742666057750323414882750579119405545442430589150573633605782316392779649026564211923740066767731181166233358120658952205031445373076718365449700200515096404528485282008136911707501921082630571928274330797508390762005601856996735509586486892858795235740795953369985647805628770459211591710985497621846664676670737713171497939971750287567004769347924661022157611945822661265520326547786343400931618765886893856616848585278639323325134625959327533129922121742471238602392082161513133448898941925089393488865281511259273662964582436464912403602087321909150664062823422357339298492059451997464854828776478092887129710052521877363301849120420666112523631620229743897621828259985085077767090856338607586908787275506590034214801651975324710525565032497244000547816505943676421250170691750181928817811204994541970073828992453400041600471010596117951225604936601038702896945876778442609577500614252819984613632614467315232018281734698248930123690622167413091217508446956666734821404110191200448626317646150188150863818589672068805248555105702679007051800256948779038500972266728441528782486938524566221269107043362534149657944606744784378514429201477776897990123302344752126169223992466549460339826321898002910145751262321607586016611718053709992670713667500545990272019996333084274325374344264117825699030114297095232968821891442122083708385753709823459045118983396717449354446025675222421550670394212749076942875321212192528872887714959861800999239865287834901393305042899033996925020616520791625592662679134437159696047729805258682972875054342297399304421449442230472604437523355580345007527239513728588267630420545594925032184231531143861105725076161995103120624006312247124040660375864653184209579218279755280706907252738547685709850843506713620653762742072935233508122159573554517190302668207183660318544737562938292388714528007124338921958263699153148098895465294872949288930921467471373302143040444621197673025810101584508959166270420244539740871737278019603505913567919652744003419622748856683805283006845942783732737717816480026094330113271884338627525299976860367038011252172541056334163086295780301368971349706097933869499248182927112893549522427138392464884081802540714492760025829182150646135866392671045387879812320666703817455645799620532339712420146043721615480868460341536577561319225830802883963255123598423245471768584259155347984255122342741994947181489190160146762840463391202658916419587050524647136277730594501163649583803499880719176350837180950859282999966320975274749787626035100318089551770814324213012072659723074380907825873261992450014441878115756575043252487155932991734367380585524652297800791359955052928638144253271388007067699711285829084779279299642810448897506103348618681639003229022604671291838952726869166528330732695947525855527679228460503765266329719260486954484762959043965125905501242357568800229605595948197502077147074312868839498760383062048056658396800122689585649848533870003856158587944717257626858879598026976542628627843545548064228704203603514186865452539114910361503624887948607250522953664927945867903232133002375883131787443071024920444160552051522375141835958400474249893289617658115700633425085086162050698027017393947524346315273222905367395488099364626988898439942168313648884665539407884391303418959840219654664860842344424146439187366813861668077412371088092272485388128486868181451114794650985716045257984587322970701233207646088353810506462207571723381718269124793723192306732876329270954736954251256116365971205307971206153781783609486454201440111368224600197994388377939841294356039985113637183095074889416845450068864632213513001900350118556617200248841201232453115421538896836108390090034565628869987149977636930289708516319292567186789890893603823155898156569448253814232194417622449543613191433245035005854693265314894101673570770157388640310189746986206976544332541514604373183295331701395351266782860617839381443165359147058955380888906961044373739537117994101896314821926178585270725933092437776339060750449912633117210817773264804166225262613073394611842649765077385406286676281471677840985169677984450412118440367233067406698434395909335909477752378567063080605933105491259478510979501257451121910723914988004381508919521918871072237907789953072820421575194027890511949211083964460153647417790264567371232448956284164192318309531472340271819348700887562933534534283607101170989122198112590103488566844686464578446814566629113874430213819907118591094668644964206103979514775133061984090028841264518847867309394828842683292492532588589975900047927640369165780591641975150526295386798680839703766978316580335097443811183057725048735679160486990120259410435336468070651876508741835804841435864336950121764207879711245438464501790807364313839128105812558156882197547810013481425655378597455591817708840278273653133711133695069572621530314604506829387495339136514717181516626495708115750749853831847997344929871277577312383154774888989100884468458390262483965543204337454906674011226868991919165300506335320606878309527589582633687774232101931400298339383904093809260726530569353107194906779321105787588146393155845833562832351233489509370856802224420283084280058426450137881451817270445690044712848772795265473609283663316169015851222171090557230329360024856987161084494924775785211255505022474337398607065070401678589161048690644478749674402468478901695976833393458015864127258092109847865339634870699440252343711910807101670372677366779343221655175898513622696888441785770780835260837388376318956061398657680886289033905635817082326564406126556946528933759217088123406752279898856044838605189778143471728435711143127061269020112156276030923209345335159604781702707492641897433331577558383402708159062318942780974278609039455424713509416313875513225726524696900859886672677646797604685448381902850006724005460639452873615454984353085945461073161528125106824437872102276071533943319395361665836700204821822452632523469521582643915241375313995270714303106253646437765159968950576161252130686747028321529994957441439004008673781495845439400556080523524014763814671429887990385171030681583962535675118372245135742631544897779278098593661532773737046229716531597562868641594120308040992618584115049228812880330526697423284044460641957914124681731166499856573782221168838390736650441108055772771543281914825585199189086734611061755430178951099095969523669615565967897789710588706148420163563882091876544865992420911650245893948543603392697563755213336098018591098460297125017575248731867447203213805202426580179400921619597107694098619396975209548649197641961362903890723458905808646372751058283442954768229296815182730281268609708275272205108011490467961677527783541876473474269073197558138178577637535304925607704984363125166369115615668914289062644531393314374785535108933074132903310491340796159840594112225219468751530601560577453708780284301785843409393662339143491781576467371468860846638792293830978722766481508386598257936346889598956812491834345697416478142507219691545760043545092623835773696899851521425257294374174108271034074845782209080276850127937861104122950322329491468848724547180318210337503198032396596386263747608441511337510491458954061021464540169467831815726752627387788524257322649884270739564965210224686979873051037545741210157996114011891162568844544227488405352957275637663409806986172857416778429251155652198735988252258957295040558618163976517862284566194355711418351378445858093612618358314914088444083932456905454412563171149594924994977617313375542927733653327365597078649806459037267823776949311986594209826112197410997239319067866189212688967339092562984468987406977394707375123576335671029561634501570885859623463453762305864018996437159154502437260248747867111588290152283636116112766972586465444619105459099447134431758455274654756085113870177846882883203538295479780055124188001661879950125584687561304364729922400480997503487016827838068884229731355482260408891361624874787476413804601674534480504549792601435054880345260140166841487921184089235965378583791043661376336773689650613751721428277476172308301771563117632066932288031863098021500040664363474679572051360212810879840879929600799634262035283310719381374777233226180789236254739950146214831588384860861147275193334466512593984324588550736444736625733851246394086688326879130470953420351147058073594635407134486280913101390141723979554299440927180501882355907607442260183386366728608944072631859406054718922349046760622343818103252834154482620321624816209830346748377509330235977196327321791104393257342409463999661492240837801493265793997373016017787918614141061060770195566610342568089724077935148687396430250053700950076760521197345664703538561316115594647305270345074795179161983515634287828126957376850413481009567096207044919658597998262240613737458643912285512407259227398048844324438447309952270348945077251882178173712388190416555821915389720242909477535588379926947698830895591388729519666264740813927527945686807139273806321027910588296596280067890526231654081462159423306099076758031982074836350349721116816835970305116482303954476097680019913393755980749494752266792259346917591310790469295758427083416478711307026203072251686352939416360274099892600838793458762541304808320077079058867535978497998228415773194508627001458662972100904501501767665779791387926001198661199357222158571029754400496101338796851863649636929208154873212906688256112294083690171401040517439309854100541419461852630880790605352967391235902177937917746785750108284461331689797003129709506858917395126270021232285355586529674580768685686091133439682552159039382667374380584635012473620447623232781617877613927661526358329872472132437617152291800287444466924788325543472128234680572338938112601371988459108754587875294611532611690966534130796434191992950254993388248708358860530451597784636545662244962160310352150467686966074888027369909609774234456223939515987277664103723106527872740676407126643432343138288273809271315443830466302535459864470378697139091474753627745077367434675181202259962910086921394088000241691078366677189317890156518606428155927925561435006331080570583384920724996501002342948620663267789840457499626236005029756344221571863853602146883157695555728069073743837254237938321540626169672345777097577433246876879126257610129265596183309342202392783788090614301746712534509430564503251245335050592626018708747496630520363400238817559482407081672504869910130249464933020029183968711942273574317631929892406832583082789696113064839000149246109767598030726622863026196873329217734893822944361263635126321760657845420319422393270774498193297169043452239678966304427628623341542263277803947757938799628935049781327746106050671528485379343971532759869779483044726260790835744859771851076067119857525034416331991785504210612221865111582453133415778771248153466753775153901816819460652180529478539841023512212991719595927750658463770048151426109178420237273518023809287115880836067274885577756216581145371557927371998889009500720880551178329193052864566482497553253133152968076999496382594662605615699533866877583413698041293242744159987709230851993459996923524553093234292410055945496747332387004395020965827235985120675086042030921133823231482623403510788402230024558101917509897648952560111207653329762839658453777245391446566264465947059769202529431871117017265268333219931419149901823360745915390570429607424516907708869761964534316514241545548041421163559520015674221795274668693605660585614762857090865805020002139883739234987241112854912665130121586107677508046704069376364328377860922452968901997121931097930681658210390390325794719198469249774395849354527648849793935197967606988826429262068583973214749142216931172260236814325192494923968283370604264914177606805501239090079897301260602184254442778491497279373948651938334855934308640301375659200223411810916904446582808716137782396652292643873310265115574819022960676340920305498664447139587859836633987809919707989839450493416200826061361236319268247662107598099999540348911544868716449819230715478965514774884900023894279518783759512443202351910328908689923259134414998360108782136963492138824686966368823878699210610495493565015961704128211418201769818541286594970720079105660819467170335207354013434536320870496115036409230177962511092735660188676132904950866554631314800969231613735010044772195433072950718951254806487470478529541875627896975880425346372943324263620147166730470930252737401767949254417124792466734809001901453039964734211298549321104503778111285450416772112124965492992666418647454061703241234634096844256604964705491459838431472007884187020618505847002983989744980498682037848320668871285182854644633483368731002225246977869393970403612744053809210829186416058401541265571992383119656880666223401646303155830549067542174797503431015167121634977329800813220739261771379888908478390864888394969985826694192516665859270613673029482100263785920955297538336289431673242632100822915976352082748845774339271456894341820675897492686758437862648095761967816998765291334636150661835522956244923220469949196158942025623288858583407860462599876306792766786922207005078312134501283297916660185284286363203996691296960608755738838944897171376829865030636202742507490553612789292597531332707278731525407591491763628579288548107975535086783327686757057089783859075020384169014648683909917952447645842359085157859654336558213551813682395837367414914280195457966037013452216937696267574682758133571016308331944295860950662946260126045489826764367059462877263300382794621831096560044833721712178062417349974023765636062782253027800705383629103557888136427088575289032983142745620849220383092753073589376931787131473531821540624783053215284426138210734009609498399129598145206018663028010821335738146830786505471894680385321321912853977427546205094404772825513164151984078607467240967071480354534498710305890878799262128952078633708766897725938867075095598684137583870379932613557969510220177840081222838169305237754202800469501126648367416529108031939684245194743391036264154734429749315683453203129235472535498176582453984510297799561867111539655522026796857795548293925070220491340109051104316721228516848964273887155328751296381297443624315338097060917686902101327223203930322412245416929941943327575114414778195603269463523487500647709357619226912650375848371209251713435791371403287616388075875399889284532041600887741915704681826602304063017379425939950219003152293049480979639167272199261277448178813776451774030483452879445617330752041054653157664481756437704493345788605130574933922405220243284446073940390458598621566066134454287645891500790364037681841813027620106101079726295259051354036638564136959177864895936926496542487971153143086698633644609709893730645779588101427575435223799027518189520984677882156085742532714641440025604450213751505538317053924086924287596399183903013032992776669216183624401851967209287102346058003413727030336128070865087706425040152532102116375295961534622408264514660785784476245643269907640115036146132234337533373952821937418055130822872510993575103174250677250306119584202538997761961574411472939798872256693675505125863984319036109692088603261523966996935353728437368230146459321645481861543487335237058230377735548998584366467201005117624800520421415322460797530870779496497681856793888063855433210925575328149400670424526387084785456194960266923846100558670153992788556107719685457833897635506857135670417298114939900535693174318741595545104409164709812426753209969174954457464723120830397664068424748131076400173824128778085086259467641188736774128547462017256021112379819144035664123450584031277185237862738732803702568844627775327947941793782965569263075594436019414656258221819840131850950237094558475429097001550961234613737418920111748955404536577020849699188402772668366475928359913675368245308513688911069755267039101957399942063977656945353951889392187734397735475216591272605764063372727845951604571823760108590814399029575295516301494854731236615029221635714606170279618156742064510970330485882384610832026657278749392553717281985787722507261199163764427874964307463031687368543493387514546892867193125644358368513907994931486118992179668476753614299971496727864741723494315807507189094812607397873740929639669324517632024491727862435933813984924915119914780336392565289747806688711513934188959300508344190670533109989245806686726221831479027423095476883150764696239042227479745514957139919105954885144393753916882678283659197778805312367893033639579631332332237214857526943546974121468936324531642954437717550812192399468544133428062958468712404133589860148811117191733680216615541002097125192940913027084638662164651864475472239796682923634833064373241437206349728336460213591783423783254174455801495080039127588641165222190330616373165696181095480072034310633237941097429079843261143374871017075315311312573959515942823737693120697336066979472213292604124302583480920767830167451416803115907048351135943644947891355656077723355657505940734955419356906111520304655201071199109028618947315523560568260886163857287213902949360391426656747017047722834007859951937723828595473169519120155009020636069812826377737905477124602059198136537430729582686424700486694065741626250352062742639733113761809542652571707701675298732932291452374733974235481297410835125089577623162096407612504364072679430683200939121832222934824236802904889274335342481892874113029214178916810912345471498565548331488280281979957682613906067424114585033558120925551200192280530710490116152500218430597741869272787578142234347917331393933478215527975929443570605843112105266693320392971898306693802149610552350652454506524852439757645752126572922579411521202532499981077881808164606001869811462073009385667270551024673096569961952002300183738544029071988578344089150669928319820338570993836225538637210395390388142895738575703068654323863989810814939429301075140664049417294207023828149819963856424993597654090873752277355986762318648002133055698664331662977242660984225786839149015396202910621750603741468765381171081925497580361247321544925995164843579975275637028118642929015572240613585204633222449723607832273834915333302193794790396221367605271423761097420349412323554188823602184629039859254467053859113190805174818247979277527465110525954685940028539475520712531158782369115178132054637357845448207428247329980985290140473253355962387692405034820212429889679610850085416230669514238719906369183266626410135750673860535264766989868660086349698822787991935659304402319935588041538358583267301266320386570326115759629092547817882551394351795665490451797544332770355744582640358524866039426857018961929143458974314527581201525523150712276795531430536938416221968269148814961581063998839856125063885121520355540950936662890102301328998169276809509519853697860932637003766147933452582980333272192881790605625115845565843453928219405451574632519076617592264959810478903164995178722040877255683635514432954531725255994565609584612816217543212685137455028632095398290507977628290303037219209429733536988360584044998843396234346172746500000392699781131629659440917305250559968226074951990687081430255371080686876643827856417923897802545933326146895679950431327364961262525280946824269789312844369108689161207388282955023312877421179171370542750374440068590183495223253329716387181359988451021129618179090726601567216882953064522527907053354238238864091215162359674092854033117131781224299686962314367536884185744131724771401624369310993126981138378929095549377127985605508778331648986352284635896808162013204084445191820714379687526282625205102740065652137240638525065442978782437902267078249438202654400614667941664683106154382679850220042517311087502279908492307444689683141144357951916131465610177688764083282160277319555326373717410481964771782673510186089971506815879797256492938948886577763235878364827729942967852882467525021156509458419991072243920711775942698425092680047842366058330086708635309734345993225498563943751231112186677294033408412955513354180078609806670724758268286829478863727471787696400442081544348532872034436232529852168596879648725523859350869820017111518451793550114239964532964827202849086380384639814147325484039353126460947559768760455696774505710733383242484094906069696292250156633062451456858044269123424890805483590703149714702954753266546425939427960897828676945808132466608961564788312436844843963120218751571030794717480147080486420090627126755068030047922892251937950637820994781958943150248865118613833562148089677676826901846531638926253434022544944757820485385076890415626135368253879214727581739943674072719036542803262603302010827006183415160405942784573019840543339463006648243971561158078292350985747010077472965411241343339601559728161493037913391381250439370094029944887484550388190832781127659347796267234204818839416376439711408111556730562572969891049654729358194143757475117661886356565042310368089363976023170363835312000218255144025068400203866268025261019038770121019776747769084712259178522613085995010588142662128245460300926439748635278359524639272860178451475572461417266938960446042559038937165251502955800128456953591177323313301065648729966364268528658254704524199788231089493379106738622877080877023828887636091517313940718878368866752924374461818082069085989564746773881475773720073051511979974791606868393787985930560235475662937947944396699862502712446416414021607822959569948333009959069000429428105041832647065579359456132993818276135658201988946837692741024311794489281009751994960439759863510281753290876518930372692431518003801357471732291104698732845288016715491434423828225445496528245982863387492172977697655341057608418896985721099729282798281311165107419308938849018633679881845672879817160704165007490026225799778726340773006308766865729580333758465815583939336753370913803659746767391741469454503888239142382253349636086134085871834789871733138530585029299365842749100915891469999617586460326938437281699513159666688906659112924504649040940390536885128302764200187989400596482816710702873505263706075881901168450029700796757679240077996987358247018697020887838362638895463497841707029154725373643410577484215548164281893518765020615027191002360132750699413731083039857468360431158413486934556783155189742553201148975465135804130862453793613749320832132396995932211918494711306544976027854389522461645457198044640482511904109185458521890801585282573090316388055371997608005121992164153536499146234119384255970859797097496487698308079710175838306813743866938976861946786545151765251124213756527266322012654006914887251971500432069435423162519835310251678029508329061387703676171000893750946920266145277919296246708532278823090784831814627555935173934320650974471899960129209477480628054422202210859213942174511643822915293752153408037143274609215716596570061394023746852562961315870874323279790089068462977917693458390834373544617146969916559192181926993055490960586574136442312008294164361487343742569379843678007420595548831301657562672129338257660385261736857167846476225815263407233523985854867989027396521623003845954190920362861260921231356378082562358567027924076056715640320270652035407645980415436885972391698718378036623062592856947656265210402205257690264288459090404691438032003784021760163868259579463269172165802389140359454355475510032126563806921873828543099536754038025059792329686778474964662068508031591215656050714750665530433532463869817210092361399357482393653396802180553882848744009766542397995057282304539526713851536994394879690711655806613329682705664566922905916547705672641708367987717166077603807536993554031283897370424521657889973552713898079590350433176414177102053822083026091629116866679927067113115075141712885953757138437327459728150311286273866460572766763710715828213411812497293616096833537711535011923143845673086473866467039927297556896379046035204573866224732196184396060325885822928406191083762961181704560301049905043217791713593526971371413856523109374183149937228667317764929392502125272922603686535642823334347202385082575692348038329453434039890711766775359913162200994572407946906965323122824387977362004836085922680663112479888969763457064325572285182212854417478476236077140908004117596457745052188816354648020512533358680239664184914228644053197634675036353912037066863994644403139595920437183616551895173302881723865350897312747392774050040744978471790953383689124528336318815148146725110887030170996070891638931970642856332739273182543392196615503975075360391341714174604790208850342789459131099756228590782918442124981712591438888329770281359858554966007736255218246812141686226089570330920314602974431621214255674574365268755262047943965458004590198199260004784905593988805600091737418663750221196897516158382835394957666837027223397042064867282183686438759725055714225368130688721080474099867725598156077300024191772932134669535004442395163439919722850176885846475147625015499872035337745714157249461641786980086700848062489643664776383903032253969190448303705001482806080244271243530963558864414739286695739081491240595840228173816837721054326013439661592537411419364223839691916473086739806529721941986000954182234783588107128952453153148887487762743257916743727814384518183806107775121041910455549330635607963010872511973744496143820194275600674914470790709587286484697762428849104508649408277840348652735706890923382447543947605873332381218863241030495572450377508243564549443971659621693658234074018758195140875734382374599878499623528197604924280303519320524373665634180307674540774773032717633306624212141029065549789338313010206621530503577056954327505020298102452824836832322068553744456532381591882983140437300093651101017885857010943606995213783033459899218735416760138094863677946785774367966184178082643255108718903882715684413414187219586444872867573560555695717109096198481626036661311241221322605374557300978845248613409167582068028862964226782376358603491409840097390320466640756438813970852912827905053452110534843226879386739850372928360898379715756553953254852323875731664152587653502526578284442737654424671545168976339770898170048774100283814138219266378222726746327717443981436489529080915286732882264011188200263377205522615314393545265140152487891399493906639582038065268173318916721312594413457597689142088913560345495205579481774548399766068873049014245025908987860683709127175503399947934159585317922199998832676085732951738978259751247039674543484444408877468690725003368991671902771610260324273848853897912585637447482916924656449540107170554756754275550123059696405661360944491407947898891422939794491048151177586125165390554618567780862932167620716059093036696271059897544278563472390477635944426629654265459440738978660329503117207420878935439222950310948749336435326355911450220206784065854054894242671678059669701955136843451100578475538355496746766397675040010051508740273262824892528573547922470260087498966501329117246600836019198413980932696142371663274126733882516486720438176111967827015954827584584005924079616081900001222184684701761978062813095056546303830176127200156955096367811217741570849274932879536468217586522265409182374146893148243314880355570040819475655620553945766151239291201771794567216692194738137987052936148845142444751655878671605763510295112096418989961776018994916157377620939587468123586027960666494439714954109365774417820083275758193863563511421815549479939222246787449196350546468797727846247769244702656668829207541117129859153194923079051531026442156359276597825203587294914994688494742429465015458834313431171943884794950798595148655263213242048889074921114179481308564390380626500808478284710037318277862225350800876560019233889166382943837856452059293646347861255492061169815723749633503938662030290516827213355522584392943269013175066822245830017544593024154703598526681147921953695413309584314371562900897408565417918644911097436622585166825289424913870251844284685700020673388494689268679292583465141014943474017374744689158372364346057715769606249409471214717057474495378281239248022158760868029909866938614240172297051667445284039589028930109424078902654225239852051173201072546665960325833733916126240532653533269528788375148956004789428423609313966204576878814322106283947815449588302969486280399685994847746902635931900454420883645703869966056185312929868261906380051127395065168027955992407395286033262808043771666308287215797872120457250273196118711864902998065354941137341968352747831992078781674728364167310757954530750504793206542829510657098889040016206334181208101851561898818125326195809404476996533223929192774861057413852440383031013032649468435737121633455271094927115177545334673182473326159435875645427583154909137068302100697465526329593743874291091922819846682359283612962979417463196021761177750308342018334058315345923409877695131205702838934732154784864471810722710285742902896450834334413590053909913955790943502560487140710163150372118236053274350192020158404927219268485335139742288749370722686130111650629882352521401821127914384948432490034281549731003570866889979940357839383414035772500799303894576223358127790539277437676132004581050754045116295067143397312037591132057702932376637241981074010242780878559242225537265910477176481454566208517144314934483127302641385912713235652184818141680536199796177061342632780471759906194878699560787941374469770695374110082429187549424158960711800860906446458692044776090283350583476059631734342815170064301215595965827956096297444378927913429812962937623234517234634480433953970014655045082846728347125023777149825919540756803588989265512542689838796440837467601551669770423638892337938384693527085675085364968026169700832551256758462848053384222593835505521089946490095617361370964843302249659420497255620096959337812741924230091047256058649631567856425148790011427591200702681029958522120141574565253148075152002165594800520885174663994122124343520324104839313961489052665912311751766954493707471918755608091416742500258609429157004850745207071641988537246019351513869927533565831434682525455177324943187495909058807515332365917249338272688980740955824345996351344528246819157169776620337130313030642565396941412464414957811117178552688515316612209098673043536743281400824278107338095299936341414223310836181347171031359092072325809403094046683454362808359312756874993485741556312710980841917611877858033632802053434974428387296500535134803672343830384793841527341605345121380860327151890971973187648780377000911305717502631618876358203233084069976489233684118322629420643962051835927549334786664297666730401629004859807477953292986365104003351830653284267369116262967446028122741998893693568320002938939481419022701135698611647332544163141131387071870268878336194037766618778804427159037293488086871010575470785701858737859349136546100217604243583061843602445873865958792393467096676898001726869539820978891362897875550561746714575994519824775664359326167795331759834837301842421991099124629531133071363777963290817328451981461664303611366337534224516889675949315961271268736473156864231332315382523774958746495669067878892500733479938261021514759149295659091693453580776931281581935615613870470185516889531197574221035084007944524826553827556840342279390493855530634208665216509569254920798129134771434501035569139101021146079775299371848712594994500523299664653216665650150310178647655019097479457537416667958253337591301519689755278600308329331507665217729093909833759269711576772996473530328181409969175545839630287142148314548403699537003990360081659411443501547436759627938037416811839430616238145347586706906839045974395392510015350479342618554258985405203380552582269657137390788409509044472187806601740948553634460377910298175678648133824544838056267501258127932119467327018300503212388199794470094930179695113701900842380368150279680914409457586523282307111925644510049327102892553679222454107041591554247150863370699710541851947138460078162849634538395909515151005824500275709760102077880397318840950669153777860821886823976258705988673036292842589582800536302982154015573064275405702368555252969307424522391910578190768974558711303975686331911621508474402499614963652476776595191972443988701399524460017856619304839249533138762461706898555956999622268399199244262233205404197301992074073287163538623474345520902432740868293697166381046195001712401798495164286042099429730191355778096143595477224571088395325119226765825991776738006248384261269992320405245084290046712467445683288785227767089303903704656976994682474838917633809710500074288448830042193288073685966449338882550438558592949717508011052746963782341781714016518702670324768956674868897268319042718667157338668374654186101633984022672808595907876286521922532165527240983890508768611750385838573978644403400923594910859902571403646376024519332014422822180831714330510916069892991731416785033755148185429964010753420289359529425205795901551715407915480810768348237136328371434055826442594954027627207579369181169108380204889938749083398683852089345198371822095862161661937244323497520543342067878199536902514498245584103255854638096464521307159141953825603464082472382462761771810875737553264209208334086667636470303315870733962520925432249742365573794228593444495383700671633189747816588885494980507208963053397211406703926953770381777401732667044014896979367067440269524269742212962763988371936726101265988903717711019883946459779842535961619598113678112222009917656005297504489444569026307143275206353479480873256218796182320094390696826532571423948749142624393023062045898054307448347605409571978436287582951875805784667768167681471386813833157062322071728239775393710729121686243370602656251877437644412526213430962344547111643850570444898466142196017122712844914740887682697147179365999520998840910290956273898154153883455443142813234288625013009959574935511650322855520265666838493576649215649175918673945232533977551890444026805758344473657628238015251980485390350609239116451664028452131520115966223514250604405363052024922107559165834054369762844855511641051899778627644453672358124827675370216844587941448086382862784472607610952010196298644536177362364174187725568516946186162686358465653524843653012847460953356846967914985091377562029204582637391863038404098668208693676457389572328264306648126396926057790975897463739474900615442028977439495146186146391854433107125817450034693987767668161956108197182737292053029030493010133278767574183123347528681156857071574186818194329139251967427725553000427408978302694092455114616620063633806047528727263676828512049887956576906693504114860371805170406907383201860979896593239581844684994605547345493234510150001260552491394244770322602665589434399835815730499666346143576510463871324196031992558355729573230828491994453861061090879327864877542470931067060090700340395286106523985098855946183684031602321757290462752963211842613818628493841142428180028738930748671957463656422685506435826754283787109448369944506734385862390796139957835094377816785639220571797871325522871452138570456213988687286523465599677314280100038851063623261652013129449827803156094167382943942280032834717636808740814498052834866387604222202664626414203994998674121168831167205539818092987681429944879015580793313481402172217619482075153912708537799382908671926946265163795389601850355294625454597106651702912430079831052147864762897220949153427243470058304588007033345093401842090466971286355464202261828262451718213699426342314907918853928456267134362057761727358900335349491942464068055223962690128747186441202214031000081152913623761217227864083244746873104471247795743582498335488269335464441316922575964196163251712718286147277817604911278106025361742529236750264706754501679440375437425068833716289292354008581646987736498710978805951231541056409365532473257610884264499049165245405781404665129686932571863589372222439992158331199102986942617032955943693497789731597234752405947615672896064039878113788531339416128455126146616364676713856932781157432125096900187780456312712498210767076366155517856303817149325017370833864528962634260481495027728545935164374226468730101755483891170777125090195904169959928819512583052304265956915937090634346845519089713726994876905212694971577465474896668721702893641617740773037147483574669756070197089538826288970350895419241027193019719352341411240128495932838150306307002340300300780644344986680768346982279186282532931973099823277330150134155299872888052008702812114728229895890672326526538452581658496146001543243288073625568492228930906409681514632980056228600129353630155057414998392488332737769550310745394779917584681199099687924713797645857250038986281192464406494036166858981038987749789049742833684697419717038460351742535962232199532070499653984924956583984071131244343033921750873033918896389093174088193572511729378397557084951283958355377714779061987458637519065868644760565144334323697683946111167906444639025594928014196555748832714063299237887074929195306990250374915247289213490989568127651923018818132831187825956937436140095696658864177882930616335868053060924236040173522523943444355711622814410313238422179492224116485656284640517919263974376269355905754632561785650091105953753206889531420827416022783892114582308628694099126522620477078625607884134938005421405334185628893151586378142075316557587993139254011826189921584436883851220821421479134874752222631660337158210890417109031568269019917516003841394701641197069788569019518636889940710688212551716128077214550432170718204930125711531507792676289291714290766571812766497709655626196035777289682883711379749449645767256665977292758505515770421191892206380400545529543315892418921048430217634405805039173140455337831291731603210274574686790899571266078138104749239232855106542733251614529961060244123320550678098312947361457642235960612659620769671024822485194057990382597011391251857782553694524663254831514048035402192878853396639355334160649960122279108286845858990132740390920146631138690109511638142937700318877390534272302184296230288726081833260863800282863709565831472863784240797857511141561812402720384197058981587496344999132689117111094043552664505316775581639913442107918645117589415191672355067838575618505054081604030996735312447630300951212723545558753996635020917129842975934769100503887718052056829994667757708762940040545287246000823099139679595579800215436666636430249664933470398461583210880121128264196268459985526988583821870555492478400450305699324793683397287571538785314557146130016668469281448892821016876104058844784800500514372811238621903834836685211606724495918749249348405605729781523694911361737373145202738512004183338936401186178632738040636937906879795555593165171097993655154250734977296194318522947908652373443193631090195867455384492966883120771742293351747814968717783921512690156828848047575271927460053647209619973361456343501280020943748256556847176127355822400736996535545778187493170408340228649930540938414762829692517246581794523084788767741049037941844754892114137879809366936391436999269109862689332321316493114967827692432527862530975753030821644818700814758513077989794961543248399436224469753568983037853858275488589714313788188315002173078908776182916962476247817489119850784516808745311983872743562757757945042030619123465666300050977882862709086079372833799742129517771063544182840739775044570948940653290461287537159280099675478750969236076544157617045516131537361317793852546196858721171976935414680975499114815096987562476375540756912401612112117441220056550930691596798731483857271908034567992905339786546074539246407393348841502955252533130260784138689200832726672624305907000869275959306506960526911918449940602072057754164990444087976824518807406515658139273131344919582192816758176890384437183146207764223348520377240697890898932388509108773275934065553923986047295821246384643288717577554973045094659298813362795064093079034728633624587624373051258914807936719318893871763267359928336002216633319360709312106604204532456551135154891340218582369552304325019591047097364683326166879530190646334393109525765922998539653669371318500690876027491904715202182679170979842187417510713468732863079429100916377280594019155316556155669103694797623468093172943336277110504204195193139076627086899994608157058412335422265320084973214026537599354608863445066210284540830736254858906468717964173231982811834942287540726777623080186512048095799328032754821698100085634114290049684535217086369951917211375125459248326688165563687267952183171574341948122151841543391759463453262108070409180769242655726461981074691373631152503999195776071441888750226917482482637494429803869180862962739061769938180417332725679739570902362672915193424107530768500456475570399785231334257886231904754028490154423443553688832915764855144421009690992722481884654659976872768893902553237836255075969155141458646140323172350533376568842772502007164578832260863397157409915541355566091190328738367060378889443676398538601434577799100543150970068389668316793362869906183744461295319824653330874157712594168215022894440378954976474573020094668250764147580495730044625926964325126888717047733043268856109208912108071827702459587672898224360713860141228162587260218871457185707207765333619707331790421262819548871107701971562591379945272562165001500305500606947619776924870648104533215740225377609559446686636958759515543560654650740821129200799129443573463383000750125578333342524464487241333168311977811002588443570273776424942279457485153557971163739460573315581594376074874957372048608352225100454482752833250240970200921499611622784359441756381397581702532517444896396783720307024323902652347536563089907062726334876310437490753315899134173468436263031392268538086639878637580968691628647204508846864335769132680651560614032432775423681909953144480543052182015758055470517003664209640411035155752677380546660155952596488380783162099376385651087547876605871299420486689175893329279624976375059297794343222731219591511690945974419318845119823209945007618719614484226022034867807635776486265267873660335348659033417887203639106728264991503330736784240047219865656398040328967683519097060435029595498962575220713291650244019158953799796747509037144626540119494421451561349844179550015878911742563691218427278275098279839213863948879543285045563456204440419245514671236706668027898103102265824333578191029271668154236986747887288192980068566407744555629557648774206596264010124864783638094406600760119063202852618589053541408693956374436275648938395424856882263249423826342884338338802452617152713948552809331235811021810327619223536698760635626341528999471775845613453788054010871737613543269393714208180191222947878463974334334533739291081383375213626604439746132376449339342344697663807948617237484525681473054561498965237624811737857429451896971000867958710939519942058052638187576964213471619372088816544712171833889364542597766016378581127362263107204197368408932723591143823743228533808253064864266064762540955228937853553190328321733121305153985332568084524571599493413612530332317373866215474001257456618364113104528461043077885254782615977903367145226572056245329068450916225046390353630537393692609906512676771813467192901414902791550617756632495321854166102048362725733533192533776095683452096846484866582354785601902209186755869310646328211269119706401368044199415511720623441526453295854129966852053433261321409623188479102478861365248636307573455372727860676358811436144821029313943513255028305960293220141534910967835905901984709268836012829786134953374761236389911945880090883054901812001542086283660167667339396763965017777407264965723709164990710204360126721714348783452649512112427376347088090191451204863831630269340247750045713331992418798253992427632249351529786374275620063123110626427644142691252252838014962593737383521813744618737108942425514594772229459436793564272470270908250207315018719487255929533701952515687758961524423512627912137769479489892192470585309113044277357803219859738355629082013317382492362077603355499157478643961844796924877460119447257126216337606724073798122729695181799482079243777140790417119316838513146072018234148388749351977048977013602773914462579457023440496708989078060918080186094596499627532449778593605605383742413507043691448055663302662288824218157236230512956871611344145439490341119670364870815793038197615917237579281869120154810028958411398454196210318482522614989785312868504277284311497724117133300986902447736475118480747384225610426341515684126095142610802552959557104919400501935706350916124668770447990755463204813999881890372057717974333664304977124745161405951172015733783711738139850379087861561982983797865375201422436847206106261609340795925737439619877686492766561611058104084814184484253709891280969595184063681975737922000658688772650686432064203559314805833152121574319201605213178734878447161352972241632292720570150107111073597675988190827271042133932953211317925759475894526048121823085306536267679938185871497592992803748710749596307049245117180044181677822854431978046547057356805007387083345347747365708651905528109324492985579514923881057646854742319514294112358231303070062833549478441854243930492018491531289811074127467123240080983656566628767018082778520890020502707429849625472938239337032056309768183659101274880876104924912750735909215336631521703748495454669509263527227446445324814203997509516267103783462951047890358796092349790628315891524973186811956808882653785859279883542328730003911163085116289196557805480239969789964539869243616808245891583620379447216415341236752262175282505438759121243047096817011066653515251927303634086842541372982172812082537122507846313505825436082597764365429323120906119689933976634666885708267980647255404166660847833345776217705670051600342113730845849536363743555722154703882851342734298851506515878515954444317308245988681708100282725665279728201310142795318380111001214657547301481739279627815151783087684053487025227468414467788807464827582867738223789464823722906544124245365740758505911457359926548325647203232935159382215449241922384758544711124304944980486643721623448807614383162572351636455008334743151780282731904253095592234415098369105265564198200488689876587762089339671805923430306476028506578386372939154467520970010821168277543273894607817398064953252708637936214560913409880408467250887894431130638657450699788983942195284944358784204053977257680095030602951777489892173840824779971344439995767150408023094909887289564996932848504359966946933890141061571616099955564214664651722253733449063505211675753685060860056633335677859639183966643962026695441225985003463561537017845709471265665057142037779050941836782206303928467880688175136794017698250848917980074000926541102205636930751930173926559976300298509755108576220113862107481896981758895712970454458483030990125668118525798470949565960675298890092273595631018128873640371770104893819953671096055226139553357389532554258050509625490575047349771083403430527987908116969661463785581262998485634262348339155033612542006952354127280838713186647806337544622561357027806132651935208368253335762182743173446531466752732261843232894217687805388281501171152320089089240207347241736508138938921242914844571320861139059009846311103940302310805717676949507818744228166214555207417131895355262711361720265857935302303924797450143311262344821552689904168859940978515825976460493267978532735058448954513081924252932339031615064475888690994673400228680537499827538454476489750787185796663294797380234022375550649684060164461311365825108595587199737171524734081216345930310959261262384080929772797207356954382221593206282770844379063086578574008630156426031622302148987508259872422526994485715229655368368398275811739697945919786448664171705715505067364960003156619791030399934637154707873332754851240427479474063435388350765415992768718751867431391234503911150915160533118694248094254271503514882605661334169724228776211750089171178617946764220070814885018134951288290348506769983691184402693961108212770446586849886570174867022879746814250042035837450763262795873219922445062462204902897244362307899233382547414264437095122789875124029908601344885053012417611583756252859522245644540426333255298396838808164056463092020316491140392278699317492246187020515764159788123084586480163385790533051225802784491929310996342973152361591844100299357651359476386879747490875181182418848529729265410810083270439348000034631600525150538022197196134738549845692593752011502358108580781207628336662895757234692885268870762573986391504636487920498867266305168159093307376616679342865950678036601387301268626061524871217045031634800632294353106053399393361699144418797165161956695951405765031376202292832212158593350639552983207591735540612630143751603365635469299003330998209571579869658840791978871285181340242011721233526156351290752140185219592689326900672155051906559347860400143755402251189459822166881079590020420494296993110862756889423762071334422342486435600803065693255761668574655531783691451508281676186243156902980176870341464819404059107270875015367071445996214243451457814157509649190421753231479105699471868343898448380302120541686929039292469316336054253998634216132994700618022663298193804315726425865809793176333187226622802207495648267060880613116955002150155451998399109362553756021049805805077693055741990460852914704027164976421237264652830171501522205143009501102542718575326096058126994013637771322374119619999868326692518709448562362864893757122701240488365336369937897578014041641181063982678032458069213931393406236955662895703449226579631560893355352272018652435843999171732080206659022499081937359759352097062437567177027763396802368520421571689269209998709533780386240155543268425904534961893317049928962838142647039375250438504490304622206214536878538069635956638740352872826374103186656822850423368402289966891819416689561139006911951849124881023399294833694090346505684545857244861988061027434372661266081869201616334207345746125626023693122134712886157084905895106264434781629374040361112611344505340663035854934836278117423332733259941209499427969144049442869698083402968139913077820033893379922195011177930597568907988966713668495624180202862969740868125854024919406532917179318880200682082619984015246509451378456429019439020072522799747930459657705857129921452256218898827928329682083056364412351074013739993899104983899512199255301442873374224285244865496749597572456384855506950729185314693938989201684289814119721678918123299653502940667050994164764195669310014854315843842898168652118091539607592258885999833770829715987509019280704904428758250275861565855835891651446772019553044557033044542557484494227885120170190972655148320323506732291556718763372043796368121093057032636786110078041615740470441458442141391578144486659481721921581371284798717302626003331732749257170279875648253234034957932002986751878909980774673900615891177651692612178435173571054288296791337518282980070251573445928261360229203928857606191793032973376964281452305909850078139178507938883312965917361667770513485203556683910332141236534101344596554486481615863219505568049432786605705524223338305306505933838855604327267817984029701656327556854911975064632756281739344934127429884962193695912775916285168875884361556931783384694081558676483698806486228450233231386250463652247874107786402276547306532063173037183743271192499849228535124395238388791923011712834720683926779546051880568010995094189237224302718707496661281866691872865685853020523495038846792140938589259525875374679739654892777651308637719711846207656676869417943092478587387952220807562005580830649755118787882785073841044220378232982973919178660686165034373498279786069150854458365051255716480603750950908487281118292270261720022516719753080700443313946507504392843481222837655852493422639526560146265626737405943053685508835616682820880160330184132888571571310591327398400363493120437135434193291135484530187991223604098814703588100621633670538292946398178136388235311529382766816031033423195207102356664770490156442069925480473309426825737610711040948117514268623427894725690815791354225469520797565946476909865358026128861630352616541945658441676673753512382725491499660312345841618936112358502167430944495318270881172996125857287143121251059532516274915966495344029644659756057618264801488325424131050442523935345352766269623752844423401177313689018130087692607809514758447393846126445607937195438720909288433311800948155047185589159146072264525333035431789660370096547799805853816367874242876689546976705686905391550212237205102893956014429843407929094333770725442295456065228536714143887406494623452991014711588449959008347613537010687737573521424594040993139323772095598284596452376999160210610423602508066072043757313288427038956402214794014401689695791895516028440922717757856972814430077598113732443883668284915686350462711948764913756816036883949178963123598529231566740205301717283908706609479213547131247261606259405044882520842194322333974565814288407234577107706682873196989174601688539573857510175363279723624399402622912284683790271576279344545267827984797268842425676354929485915730446605841804959108683495996639889455958960561664889865538451088026485712744489643813041189833042742397299348895922086851908446430972548910814042738812485353759932318955069671423172100670149488604210324267161004897522433207668322333688438216501257864447686126930926980037148993246511638573351268508882982949043678960728765262098520712017717240899599979166935337075111851222466130431315888578781314111219139439722607518591921746085029509246456562912301616558622621924632268680504050006699504223524115486503509800047751252227966682944053987722193059408496298028408628105091088302128363497731085834800063463477758223677472212698721568992159503454537572564704672575266773619386400142357962985107945097410545280138640887994075169227911606817246637098276389362781999556052467083742262825542784019147705981390984403211902366174349728051538422687686462324714211079156615471280146659162770470490255396003851434329147801352091779115037755493634250132616258754813345281607954020887486837925476461425287787405355223766361691135390126856519088495768223104912986523027253783410784795496556129827026825295525688816818739716489115817795452418486587192324768954078614503284078388807302137127125162566955957266211234453521415930738814524816311418619498131146369518192716702316033819545576283273752432169461977870207234705862590591574535050235289822560675100080947997237847547280631912723750902799240575584411878894035285734268660566684861328141300073589136990517028534976342049335730929618910604362525309227432113312054272214197426743653912586112069487931350617036588607124101248746036930289935746041267265399969956154748017125334585605109438619707940861306552708813517920716802900659450231709221246673022337838892935015190920068564406001388571257431530018112749923880799904259439680114748778774989407405776895820323190495231878102122035119068226573794493035866998293168926729458971904778102545325340628448441722643834634809069251209402631608919888995461257482799107033890284567530891080594775025869520575355953701128557970170372680326523926104457381188336555697229041915018893394662999990694627570149538705602710451796865188533321815586032782329520401312059952590024562024315956206521511695581433736007168585343112780552755384522689710511953848961363336931759412026447415943574167083442906240059411593123873129850846703369629814733778483075609672452636555746966579416463955346126700328839653248194673805775801070283180458377382362383676647496447684600601932891739599320513726655723327872450253744923200476121651344490968690191996943010345479803262837063799966265951523543348870135088003303919963353006573096175256474107313169447314386535974656757954044626141711607307126955749331270059223633692856246324578904999386233753110861694298441694824292720161275674019650275508608144905008191068579382684958346625291245991204852662200519641464218155223647548875605399144127913089143817781603981432165770517186839551034923059855906287611642022856034638060833402463041728673843035807561637318909587949159365944534657763815134357420708257653826568765635603275869462229322853123829868455474109765016752538256621965231038308900176024848040603968735375537334565878298640720287531418213084473792280580589944640816824353627402811313489245904920896795830702685447630917203006597688558295977218707058840406285461710798257750946184733463293878762404655637877780748792918073533717768763883100656265753118126461159161815254752644512863409455335936547722356474296132415154230162205497543772031925039234595174794734772808104223027401661594919161054408662827042958934732849670931417796927307183460493863732984833393902217540329806811580677158247108600186590881391253822902924841500603280518809211467770833159530945800205229112433237318986001745609896764662672725875026194266844198751517000150011742606247159371201018207420701087198989867287560521956126608391179280392789327681042184305931316561809931134029947322111738966834125446635643114848359799686547647546703945827405138571913374469672579883594004251172592678581288217378475436797439969897566046385568322619090469601037948578638554901840325258112326287534127628589413651283936505251274990506004891845204203293643854188297012471444649617124899637793089305602880342796823592879979268758848513273207870698391899241295216903530248448832631867939805612823928474681662417170774955252383683768294521162949815545000224015247248977027563970434441416534179031997274592592241613143973951100027412122449961533052748620591063399012258280943200005538996542435255859074377604863767130165406310635915538727520977138753971053067772394992004320265133175361725536010587341642818953999532082664062382821525842143985593301208079518040150977641584414748585622214789252113959677490222479419055787868820010284820094011557540214163410268407823803310781818369305804601558650623978373871906719008656193715816172208168401291301486199426293270792358781651223881040739732717262827877123983165504436768016702588709633119819434475086828226509439280477780215148645887776480094658020843271733640894832796131276292300537732868328575210617941986053090708825074245271854443155870900537382194521072326881791804532408510520682289221059750746133073482794327127306211284703041497552535004805119469162879048847446730316767250649443399552338113827098129091846982476900138783393277429955582798947228163949709260944615715561289400410807777361913940737909333500161967155220677266776905520367919201683863136259679812689221296429815659972651712687701691461317362758328291358403602502212360042372829073915747562956959460016885247256490744726782724626780539277327718723224482250237824176975882258828795944855929618308026365643478383663146442536859841959346137696267120875456445094822569655351780290318826924944375068808753576405723273888516880796533166733817613892432015709206482927921464014310105549590084227978095282581876941727880824713900899155362856743751245506248288057460562139738035641400771518442157716050939090332675745640094985916357942789188928583812126225548873182395633181329453337446970075404865195676434568039125768609201964871152571705740534924531350114411801622554947020749163086483983247466999823910691426636496765613405090011260408160562089886342335335259557878367563220548546807152336314537861983921207122106975697676523900604649499549280604323489463266407409555752514656475229312970370578797864411669434366564879237421306697369176122970354267186328004236684883234457467541075111469881761000745951326768763807084034115737139233413917243438329513517976543813114933388367805367766624173819017213388712533150749557558022231327864693925334477983502560597903982085971243427808973596814462767677932664121289846559763946855013862915426535922495918640444496546068501571303154980384791516414935870183185383825146807397433974560530888770400731313160501086433929383340426435150379601932138121411770122994143424225561862963000068886450959736559062604388184009443433604769358862337366417892780879341510693414588519521924272300263615802744298920847583934342122054772888642860422459352087271374650757028740500857042214484524491251946759299059616775703459651419151969628876174989587042077683435336986653097924735208981306998981503511294962257269324468905999428220511626086688510016619388060598046638006790377642224478740343548240347396922707877637273342510332015918499077762252781750629419128844425101488945995278473990171376091039213236440897636225687082535800705806024973276673394866960626383057722370498350715395329128420085009089121553608045965553361043036569897063078483953518116293414554071401279760511088791535380504798345764056924485384631746070422781883440011573917745526363589978189748098176778053612599814817215317646788271524537234612851765289879162353214098542888465328050059510019508968604109107656740185140504486021730468751324124820346295810703849818719530345319180507592080423096412082174992187366132816519663725955583437206596646463302278401158396750220152921463208552326425732376162447361769185734855033291867437953338347676357377741469122157818189784732945327997480885605683988337047607708800017628698203467634872310078536302191979351923795196202532086343728235578230207394527162108564535072226611813773699918561647039339721273484547578599291696887679500497229810736992856821656025198119677420367962532447673815410951447567009084784109060307059779202011463441097746767842801930711929879741033242422767579150714241812090669867268109503189223012655970188334302765777222381596564844031350124864501323936161410789120751218475513863485606952339463664904880455307127732103518155069947778680403366612972182838561822743108610133055173085571248617620015009270209191787172685109058442230562998446431202193060127289551452606686402887339016853444359278516832545683176337377724344495092618346741605289786560454606356449331132672588162356330814629284415324347846769453602418546637689628713422165156062662251648691516500435931270094165330741399540685404155803916871231020065741515634112437391088273825293543107391132164100619386354998030308039308074075050595755088771444440202060072934350138007782992895832335453957184847341234490602318652072866818602570939189743339206028221623306975055226305867692302130053892404577051574249417273969713271049112117600811526209130506504521331208365866470301829705548058854819571725015957487244457183031450708029228090335569611660036469629440656367890041099065347239673216673668129667806869662664257519383218165050420212600277170184899175542468403284185794867349971863788796563891337064586709555193319187061015198540890012631772247349308739798611836193606730254844833609794073639927868688433003783678310385108996634362780517915252960612717603709981891219246581387894893902034168955716587639549013875657444399879263285264894998658884227033126759058888553173855241863857404316240343807164449225958404366171768283254367644175740508335647981356971923314876493438149671689657437891284733956531242839709849157922529300142653686302597472623622186750472188282859105279424654937207578545075950790109163558624528822452221947698539961924503110234945361087415953078064672569795028049037265044396575770879859541934029411186432393564134683415107205994620457131784463869276954482971266688045575617044887442388937913454345058068222009925941990974125748443153175030189658426698701871728006152532449943618203215960813713013524599908315034906048867009650493345724584075478758488614704053661930811767458429104103060401158143726454548591126453287651328255936449733152494911282508526691884536660680631017942392257046109691217285250989060763726625839998656823284794041492039561513918528687401023463876674780159034014007129887642436841027354593906707736945231795873750411545769572402603163992567544047736258448565319571373654003126119200823077567987401750629976091538909583406016080161504745626354881401622628767750679788195888413141932416077618528181210481506069434234911957055695630210623387795995275996998886845377242732414488088155114379242397422857216483846774897330439383006140400062664502528471529405236583529430500869137854622754935731825059635752498985906126256538297126068858787763560657492329797054064334600298656325762997122954071456804217697504691038171285290428600617157326859173540399365993189984873285718838858639459441759129404266097747507679706437673955390279143581608147876473537819011493081346788393912362366534382831025941718084145461409876797197435704098272382231894548053927403060189347605409558255170737759093838057559226295104077481864385197683713266244410391964472402319064660780996912672271737051367851381270967505191482489490182533717049781370927773839239005997753903446522765327639251211661024138544248341053497622761695002764325307808287650922415038781278491830021848515836392145141143576665584704963608159753315277061092352855911160028374471803760429956378688493528197523751766113978708619850192304932780924785083062564466996356575533355630647618696817905094570851704613209106654453454568966419471021640187305867900018010163496128057268202725127417823919687550568353615803265435982218022367352702083534261334996036303577508670104774399777812572856724349649832161164581242925108958473817497847968042243011605915352829111576149110225333938214752888417922965736647024385148143787606648894269743029191480686212969159283969311050209473011023003395443388975916786156552585307463140202492672287524766903644572842042342814346286714102547443091072877553241780444577780887449987800005037819209300886825649057656059668731940803399032706588361600045133633859763543504973258350872514312180886440322964959191271232845443643357093579781821787545735225093627325541558651197755915448766029204216928045514536520656823566791520578924471889099264346094596776583159904221509379003063992552808782288978519548877277028611484895591608775852189256412537178221382101610610383203981377392215123103941322060816921025816900359404720390280603810331804918246632888923186439400872920882731004466753675601947060221191890353801067714666575744576580186769676188423830827174957043400679578706229843057646653078738769191129614048585894363759756556828163205323102230110056274767143538722062990903264960429281575334522476218809557287741651696383660903453708146640804256486391644646243317296812629457629355124365509841227975638532836722508915079146284193410511106303836767801462135934561506311765645595011382949649901689703127167857811343729956345752713722972902854499468384164962789907469311279609332251438468614866982845143408418904721040670040827933033011888391131033317950995384635726675784332659756603362614439255780988288025658384007624808782601362902977044643126325078739170174351108451924476399959587106415087283828924383889651445423340355613779505067812251742026405675128498658814129699656374637014797027319321227164821603222663385848613275664382403786509598577815392189314554435154614324118360123979516995144285936406589273760211649904734058370367796650088448068724541341504643040705304583055585931176553189100264338272074608800118805894854063039066324792920479004172552312835954726430889451005201928482991503501859393310463182947702158403870454662565409203540438822694285215470011215745246081368770392816840787546754923815751927709084874207257070158657805836350325054852274697382867059692434630637742888752389628370831375783402477114926155388913846714505702162813389892702578193043408481717496374229034590954089819692821126522253038469298257065594035146414333994353965138300185058614893123037569016188014171406002568055325892046304758042767142632606146768510610176275443097850838013164181658813943749314757164364536502829713184435230510494243005779659885089086596294103789223080155726533001065387134348016589267486981883631112540588973509721675917699516234353458425150039831689708576654286815753271144257198671477356253551600706561927833344742415801048500193388357618385883483016354109803971551761406752159973745673077059339954011765592320275346868442874306035981958524259045506220222678495951832294342817926358835021003034468296934756833321345284797969703508924628472236912174270276315323968803635144139772301208689092595001665206272201301093994773355153364050798952563604885595079470490408472570218481414284705383779677866540047081309071415577689247675865385536758539458295411564103310053455589008326272385801139599251979422315751382316056271548999404525765858219094169658620658887568256512896809435326825141996901954121099098866764516241298544585916810859393968529575934919402620756141043089530765937070292632072613501556271494377541162531197277714012437715071887676641547349339964238587636271700712208478432253545325380183966842183123739544875591017173478859661958319301210472921021826316356160979732553767208566528730155208617626647637436484567313135816565507646238180387363712836464089912513005045403869179296338177200757409904389620593217419810480292099908666037141812156317592433849447748398279667653187619966826681290601450511652205773445098332882746436532927527460371951531374398215277189908252562203358594942252789993781514279089679138959941131614752454288082240714510804564336054993298908115032147495267069177332500800578377794245878656217861077949408924262190993012168665122865171006668209830593954707924134610746207509570054082146408198850826344867190207502221661097511248565322692396410970629550806076184296439821175623617175743367993361880915225440018520928918171471879556198477796747224405478122375676631136186313191466822341294170946615483442746062282455689051634349478098851458340525791338692185558504320209068145455039806031295539435420305145652033437320020905694291085341955392031103458729119771191215933993309381362714973889920818464033385997535030420916048014920165814759007157321693660847125361665903432327744159312703905378143544641699357826352044177178876976359520148612639976472580894688372660721510324512760207463305959880027527480307323291401888545685450805969505009712869284390504565252539864518698346879840484203592136729300894759945859999884821391011809152752774988307258300200999719821694003214825978669678582042308330659683408068720991563386858088946257984471220630492665851025600375482801924540891977307754999654453082050276692244011790327549017571664210947215717676727358030911356329898830567043235396430518130204505923436741108358675409673332461945792778016848098476485023860425619729040739166798305930309567743339859220159176441779924614064809733691774973286461010313094132409565496498514569005381718750347742968391466752085566424792432074300012251247902208984858470455532182405170701985450589990167256677279672834581086447059015318411856839532386697109085645274434010078429985939603294862198762794349817496311121440142538058948064007725458626396759513051754051942731529585546819686774776042127128688055738645200595694182691170184534042109464709625674522132188804265387688898193035463239015555515046547125781735450943721203035688357075553002784548495894954962764775020012511764299581448206300077766012903304162964807410573099229859050338014140878149023548165268970861265980302452326928368168608527995376120028939541623463827644418800542614494871118954696767462817319495530677623759708695861798122280842904165578918078505265780897794287076381905941420457155836376848502246402578920357222771641077422460765562700593745140822853889622934621296092224854170529747823104035839925598510332944121232215937325029351602456592989314182027196187368716058027749661812385384412319109964086880381116262020742131001082415306781177787187210100771314563609584787783659804962635038783128047586531024913020275533335848578669686744002039996252912767832170021427992409570971629007708160613650560133005926129510573133187887132171122866699900861615949178705346402568669917498731303355411935422010544277624482273609812729320861195425494070222593990495500188336385089974728883504528228069569380485300042205113091542828831013699357405549537390071408208308373628373543352499342254493366495016611287501530389899689227617509952019789229755113259663315752269162430602068811716615574019464801403725446784392540614385970150699024017105171511966144435849348641175107841580743598725691281245730412882037515877191642791198653089876811944236952995737896377279498024112287422009699963043987808109810159665855301144408846465370582164863465677904725571393673506046646509024963585843281478823851842352642414889135707656982033723480082559470276093019395378241098194289337776224981269017692082779657443479783687895414461396870264695111716747315310552048296319059462622174156646849087949912167942975324151634632214832094353919876266706466323750552442038608157216918023625822205259830535599978970474520556738854719276808239624767445596203469073914053287524456013275140807713030863399734032338951750278139423622786618993859964839406590641888880762520319386523336077650438089233306208469752674914011915475833115619722284227413286840366816734080522968588338843618344920677524457536524807363797318106544336278791773707044181481428406242943766083777469171462343549205604374740460094607260508738022004917338875253215559850237691894888663495384923734557438146647817889965117478162771986813304797700470115822831894023859594584526416251395287474539144733081196232582443112943205156947587487036783862953998889366450598541868582466004688878242548706482777962460627837669656719202834729708529235800775801851985175633862202631274997664472360330581567212463606179816515992121602434998088948649714762081670135982309400039972945104838330664246134906678469821219810304306518501270729132490416492038645069728516457110105148282378426605166940438530330304406666277446629283644191395713860667834731426515752963748946968587021916723652005592859302353687858593241348930962324695905972505905754994988626302989150369889185378179643985252365666031690975517422636767787515030087843899168438319745599212027265574335698018630984513061263922339268775989568530790837344353175572896442979553796798433009495880608795081618095831135994439826856031306135828608036612836280546725466818702198343960003135316110258139712904523014017601308637282565493392948672189661632510420038611131809045473837954591582833241548710335271860022239118111964375717242397537333987867928448982944259368127953805119089066541415979349878668387699733825194037609513196638416348362467319355184506235942463058938859571232357473164985659243865345128235896462265621720850809895031680203970248274819860851766359899281881760597989717451329514804853055939952034712411384972584705749270716212828893750104189580388794963753774417769215723371745388693388612996418589133888071236381739513316813980968266886737429081092296148532226430413530811755633464911960129837954856604900949404780883028199596040065826777996943231714809614778614115697996334352660101521434136756682546198427642877858120941613584091144204706229315441422461251866539588775450505666127721411742857125917935317202022707850228682292325366954598186842217149311885876654751433037930427721198800120560409937846819848475762150905015998202103773831589567837376119889809052674524407765631120968890109576512835627097132686202196735992613996443867750068852260618846456496574919965998062349209754725483237097245118231683912365857456577782055274722668516167447024403748540144955676836853565648340189477195688431909721954011631008909438830701867967816152932210160881278676617265914805763529686006140793995358539035471276177333447601014482538825439325971223844019810117890167267076640764808202445762017277759934152536057694664930790032497717526765372627592338459359150908161548850687702828039852301504365485742149676118746563423952308615483106990637075967627785730786407749701307270026237974007477047909007103675790198476446230159990074322655546794033651738427167325601553934481883868643575519684205920216059755039280696615450655034231326174869323256288798003663900220790837176731655508543542161503509875985846155134125197644561271847420923227929812925341981656490223577983098732418136391344767533683405063145820010177834590064365668689077804460368100675491102184849100805573038923474344615740107130631424252333176073306106731174472588296425274239553110167805340443258440013920330279986512824110694987525513521840412903386257249296812698614971177393637148098732769845373931117857331207701126126798609826581377844363594979841117080550711594278582036541658229995168700088758888907796046038186077485853419613380700507046335816930521735592676096395351112827350411141582720929404661214066925843122125170051057388853769441280579437228622665401425079258044082787953472874417223449546654390490778597007639983928788986208621767763597033914540875015813680054013126889464116803175994442842321304852173542941617745088448109389422275580404425098439896591105653102919557707402285012166084268864785170254657866826637298207590472949210582077991886628830844048852628849808122320210757293909682192060494566612277963067315611378060251900450837851633230567073119001327843567160225426811803176117757401797004000822671050865165805339648528455150273948998268026211938792257551394669455388159409450304755690644115552735730691760114341548131708006186780686103030847742997065488407695423690046062992255247650143433804437296002855023855130895981675300868336333783836382658454464929133150605991119580987763282874626320838633611925772440132851473983734882388550195514279656541157702883360219894336250897766387907627615663296127130300470113699330708324266570727725613171397191331332565582266319249539683954355747749354438891214068258448661396877471292742093147069460658194947015285668934333956557857675666539161623510514396584011149566900843781591342550648889295081812680363810589624588963482623342346702615898837513886842120348713216045513475028853039361220308094194007488385314500103407974503217439769578104165714376236298361101620678060200649025734516741425437386210413867896583241858530408158823491700736953624437504469390822154667281187239009657647670808265598155967161680676841614213060672995474081151110627324365273366243879068486608974654942619407318715371532206640939952224473096894211768278192003477678529697675895924792913734915097791785753595942357538606593896620350213489268334327980936438920528302985047428593394743318153978065629067339851809061473713869899462035902427172067305843402972414581007173984429969199186478957230982615669641899403256220930149375932558952567717862601816284840593384497428016458699228419780956765688534252784098072098145577704144583858722067014274359569922210416047137893978705595242423472519240342939198944560895757665552927154058309256957827291338804459189077809585894822953452283818141125539716550612368461797542973458090527864459798993177091051036070354135227206951091159939345092502129701940392721220576983097971462486388889479273246949109235325967420830215461405113634412084989516863634419463749956713880986016704263466160800255786883856553083393268741305967879201485827381785307694208337717050933496476345170930202941278126674278500877425674680423958017463996759272675149612953713688326602526773549460138039379103787769225119963821609702326098732447663023355536321707804311148561534636469971435848441522386788205271255993142043779975872271907519109778969877993810633133684743919445240783122895312126883574414521869389335105938320712809153691049177345943548629242264043416460843289540448842774027237008457859743615122697623555543173191667550413709917648996172702755337838150719577333919948163332604170893489828538645525273609438506853080800604689231984859104712995074295957716814012283465805802717716309907929379395431484458876784160523229042454628868186689090527199103510069442650352273886731341113081739861175804013287744248992793062360870302311850419906363686781273656527906729086784732649733203336045113259820798126917362455405365477601537448728750381332139006521077392981668721581363668509830952416586788629916681920544335078204377650119695567000613420003548508385400911570051682334372385109745871693868661780336797344732327611480632492012725943896482630521082098055098147073132262088752248165399899635205944351179977194878620765787048040317553683215393796990691468449480218744980966418509411181206308921381147059425158367791007127749066523659796331257961357554737407828211105322698510516044152898765435910993744894540928475707338746408923377129038105735881114920987088824635744779404807517794280755751186983683439124564102176281037376223011564085782599062663002209281749367400148588696247102991317173700012875889332609597498371158276369563644886383188539362637194403376274513804157435171166444584581509358251697030511000793767877811409049584013805440540048811549911596442651740994273297634743487758464005562899044620109443499951680208663435866838773804781938025292343534083043980598204455939835980836723503359185913863614762623885695101012379998227070299268234749651594872588886255419623087707041170028463395859028161196262076233243636842352318396573663050739059935004353300675357728587579956190379325411294977442686861218655535657713455377020230193268258466830351681747725331654656674438548830508797035944441947742318921558246123409343120014522659580435682625012972650028016948605017750469476470759367242137278122727650259687493473893640646414955228524121665358929526337227732245908857776637277824835740572782053916622718264226003849843512234293865869622087007657012405292294974780650100539137000555474190979224268792073620564493862425634689169761251027505738441872801373983866699200569540277250591873090621114984755025024137122017936968680410569884520186969934289607645808382085303960589223478958596804788959598137437228694785084227477881861586362855975020974595074108906491777003200818594523615978310030761364497353438208861599368297422171294824840882469649485900315563904408069999292003268151753127561705303574749721263638214658400020632669611146110364077844802659516528825461055285712435441450332535606816350090325441449517354149071218772462811519417374952288480946564506300934722465179605622782451101723328309426636759214205907927382613476279195166702324943720149119850005914045985223386408541759462567139631677178576235853713733308087557591628875695447905113746947506501442449964629202096281156623657985966053013107748572612791822157208788182182500574388667465039683770857991467107350223695497961964343029566564669805054081741240127919472345752166490650390622287174653939197693017976021817728509425948774997553632585610169465584675154473685927742843770154502567881490806250569418299406231913415460418741593243070289607113896016601218925028629981753015240594685263012093326894170051211033157146091102289856708219569291098935115263716188918224033033966412984795758234532873401861380591698085735972722570879249453325044569117925698683570748278247337262316212487189159503860358026452563760836230743440597171291248745782957540684395156882695281724428793078220827743264884488870157940442631623009059417941438897061080948946952314346555366129031780093343243372238209316611204945004604645331255071694100031448833765973506045887824648406058131020875631503352114189308534742429634456584618964184536088747911461268686515623209501507650086306499327538453180616099156084216725750200200109370921290476677505126130091605012343110356915483015010554128925698352776704395654161283001594451541387871392900604766372779020370866949192135050859170986751844987495956658558396444915991614906071759965263464321321425759066680516512562758548526846126230333203530968581742470212414992612691304796985814111372679932477767556763742592343576488034181234360664558223897821487445781453998019368820443850097704418921192521162866667836719163380686747185708951126240728059216134011394543567156022178330583249109752391396608636724920981066030195172436242708570979055221738514982544027183318588338935628245864697119122741812816715021471849784684642475899415480402436270085299448649110131334238111125258877764983551487784208047481895215581406046529824121829018517789891706753345474341341401655675937135632017098656828900962280264850384433691981178046831551819164940944250173881956438367791163680118451221744538091284186880010532051773610021956863983423152221568747214757929804072288204750248734194077521651880513960513852600720448796025417241249444180929688070225635764522344771808354700083899956027642403354319462667510436412177592346282025192676103813828280139393716588858363723796400493683909673127562230220756540114712197575803032201586416808039349740318956903147753675960643240242832564909844275945384919470948545689868496020431579773219302515081551611361966429432383297526033906755044285835055632646843479273239384312607956168733018044176203515031846191717105819950530327247594152273488297245965226275635877304992715223351863162693594811610511742578359978129771383070975127632133155431622365756143409401942111622695626414631437696066893785659762669374344270921789580067736790071846740865130515190479851754395925327167454765683837412529138598930177184929227059599341999157365586750691512671803741708500694894123552069473940099049071184565775566451397153524339500186008207961139798933880141803359709887999991574554723706391292271409423326323099124470445403227418224595987682644445312459911563358130340890056302765971619884531351443534671085401925030360368993462675215349138951680523072403342262674872140049888347465837801654425083693910366597839005204874676043266225195647349873250988872936133340376907919305438340757633562199332534205010840655609530873028023160831458063969947871765416896640057243149552419079424435541691588583552783945637506722553306823704185003910325392176587935030417939972700193681619280531740546085385089792099959586381251102609152954002356047220348335953811566343076663556511433075118121036783266271538847470245800888744988234693011871276061712583640796651865659872446964117500645442080246493550354682791257207098196434144281982512100013571051598345417597964818269533643570997543856924811784455669617193487255928403136246322870385208682603921906550678513005657369943436763428747986394223981206210009626166654661177213922516377661121736254319074683755657061576846764292116129093037267453743342662055968769007289563912199988352669979278838475236944923666439167261559057622152404101109294988410937738318993746504115703355052335261695419870562450891447051143283204355723204458954307207826142744936154137782471460864250790467052579053994522204606480440151306412489940036074211937561883404836402684274220237432626105469035184756645591315452438286242001336027325772104322353074642517928768876891808275750422025627830914979202911251434427386511949763914002388212685900136908611714456467816122652346069149296967992076921407897104064800972820959354548444285390772999977259861490822721419796469549727689095211671127395757715935616919207481678507039458155561303661903895127300780540560629645319999535087164746350663286433052660728590391291032770107451749381951315979880836154553873909988261635213551790783364072680185608824870073431629258161672728373762373890421099233609922006960878981962970226308567143228573247067081490619709665042065442443828371218419255223750894137119156702167705849332587669776834079260944939729151531502556310832831161984490992580266476942893774816408276087228665110198888820735129163042471201663835477390468232685074831551748307736000913610248706856087098556750541294030073365731777862313115818252340444087774657606510382887776537306495779008081839999796787089739457096785439499626382669149779262981405279204139922424804432532341549854006049480235358285124007810904094237841731620254168106948150461208730876115609640613830995935471945083602476156770163353649638231570586788029511350406971127139463411910120075775720267322228253537559274723584465495795922280422823076743545636877216012687750646675190073494895705795212498577059739951151138236416265467990139059816096033555787530818314147888947514081346356242290015853638925403933640651218837574693986383468978987133071369173826674583178038524347478059165803303002747496475010512208626061992318007286952166261496830508425281421923483201812952287715534061994507999211836486141647673802133210394383810313747282554742234307788487473811647271615679787397608293274743392920339231833814104338028091161678235164707423871426155154808707084809186376928037501003609667141878150875830900281401029165099851460732113356219513127992667828768576865395718814713033123047398725221179551779443961891896275642234411120693422658047995225991930951920409371566034168538133765902779036814906090054106753787518607227902607573158500828629257119043515990239660152984129168122272659107907028729020614235682673779679926807246869018096062054993823846073455694176194184548824434994364961371564695990665856183813047161158725798646291357549044165711728146157598402494882868631458525417239258366821669761658643432952776035663632926222633874011986267382395552937481568531238822081233469919264809242932780187092479818223095808859901124277779283643397502848668036139816234573610500020317411147610922683265745494920011196698730850294108908542561553383206675402462328680193805664455136048261844437904019136539417247394299651475431208413928062087770911466473320975919458022280627259960333611941818980224468458800222217871951091991122272893298479489307196065044635569158919900668477754983292824615963541858374857968354219034781609371130910162172334519565238332041478624918342075928990118287473802167771529740541829602273155751350088344020299633453736444129576692399479810823103189134409145390799168649466791433164899617313445293707660185914311023914460557492656749832192559617270393069109841343295129403307715157741040866874025820099151187071885545983660827307715124628609987848003013594917340945526925425436294915191236833623838350555099939200984960512458580642988379249701103219549575357418495477992458421441239348154822848868762627515594586330822290056644164230437091508190261974835608687816235423831257617582362127020312441747575552696450139440349085967984146587988461594699634399672803792609314194568659076329931821063260933601332681154108134041647525418175059454781783453638218873835013041162160077940779566961868489384610604413519290033271523975181838228161057542011046998064597480726293618170914677529501780772793266617372546698253080138439136284073427980932973701003909481560213641795887515627854829491797459517295044695428507787172464530367239500964727376166376545284851012093299768307114414871718696657897854201857637809313525465511973285482748100417121494375171252599614668279182274802067995830920066227506494469066808588258370181110152831886055730358201758332828821575898585203051241534711626711161146405269286190148794648143326250531042631104627977531012032040541867141481486438563995477477129172673613578738835365070637701432779737750547149018631793286601320136742365396473102703383153304210798183981652190427207474375459799770133968054157610674108860732726119122251465621393204431154111376527350887482954100448167547108143900540601758032065997037977588906521335297126496745477645024745477207551429659894010164361236768651881523844085732484128017337744045719774343947935495581680255711407954693828371868211669175717072556707668104793970534407657510652452771480139551438505272374988788334748440346597964817014528850338116966383275133129882146610271378324294986244507347651338938893074370805509914612946481295791711534090437445566762075718862519998128642810460599346816552209215491126580120631544727479509817105731828005687070463505526889111983624830344490240440515478629893404196628056822133683631315850674248635762462306585296480144259223272470502081208816254046878719664161549034150390024611536311940857955683958152129558867285221003636826282903775069913127398249558280588753679534570172721106905586959096960888073886575161418000022225543552690375502777340248534545039090404559805741521939855091617717049139801088653583176428389353758103040718320508210728371962531659044764581285582487373401394545630279550520758004431085745777730650113115000822573698371634521883418824441169674171672356772536438829687317314624268977013815864252505698260575610708385561200690891978785571149051497799253734799870194340390430778247131325227498905603315208688270229756253793767204701546688086512755305666488579850399031436393552495618577503989881483460464058408222612404847692969009242001944436884534005431474078756239520464148874592854685831840628944354958742059523870706318250635838263890269726296702932528967880739186481338651222783709807898895103271611640420508047982037321076923962156331588489956091752211439588860605451132924938923205733928728828678053306612155524957077952826496799569071217264575141872184501924095533385986295866416388689176841854697979146950567041375438268313377225089929555676638234629395646895789687071459927490619778370004147282088949453474929310188927379081354732006451896250612424617068667026037094803151837714154894497807967214789313587998862202734098529564930477542928492713118714168473542367507263534151456596154342020134905929115918260174407928625752373049412204249273852563762812144056295010617845555885904925968984907873802658714126336032173452309660708647318374582235507980057761177262020620532320033081929387481396378921167609842832089593682903439129368937825659075396997787472000323442118788939913645568023836256193342481643222623773057686534303479903064700236931365859225788826440100714698151802799793810672623345276038522838252616895881917784763656287090143369954071987931329990929533295303829203968061970446925325891614280929736690712472836950562064997671950085354631100449226662067585862191248582463493079421859685054363253535352774549459145958536087422131485972374049811243104204600650631239827927556803564256424426147337080900303462763706610389742454282756301536960971275253060668410833788693109538555277127483896323139951470558503758935777848317520108885962306806324075401379519352441493868916130556189127098789931836975114276459326565164500896367765105609947852933383802011531088298641379055403954570900052672802128457692083607465494503791928385266009887718832545350478148360465155339572825532758804726734484276493484948221994677909869923080238314285647910227598540225573154591181393302791267679661474651819292166627649852215743051407117188018070827667406294104379428546621263187412412805058776311290636955742552231430591314713957071418690952997304386080427124413651292102701303857052350831056217720510744856949467984303123711245838136274364364690789481816227233510574687358810851159735038358408363620219930532702332651040384276247078090244016329885989066185517551861680118613755341892427246819336586209263531213888698439233421466161626220560028850607409425652957873977237913875444733417954503070930410187378462387235329201837439069388180753457747369991275104878462190313403195391566523360768808356914936823699848129701362141179017959893359569295532840169272436821952063500811889220921886633128127164419275171617462510950973527911420191594543385226062929525230806342184056960701373248888122360052054720520314545195873463941081225148234788771171606597511847688305128350412670709244828346072173521586779371543715384811557084779792401212508088804621901047274019377064844937505706128766868580397287511221640586191612930102855974399922968914913223367829508983514496614725821232411343685325792978390900409701889136174562535858667458346470599917301453246327338493993121659464714992455850060216643638041033756760472340916025516284665910643893893403724092069408910878276648264445121777018571591100154102989116819949770486452429129372132500097586625876733999070802173803896694149849822906564468603655632777759133823090139953399620969236115941330667991789844317288948161281690527329532710266047890449147979855734226003415996715251522948482004811469336027792414962796092314572067593670532266414887822700940960020561682961462515507312969511138127636653606209393599270459967540562265435231953338027706424342503919119256298518478615321300344465383477178464698375170402848290328609780552555449511116703159486526519819402702418773178295143043632501728185394154386361930926840163574571683945373165014418016124900513942526703110982707882748399127138195965762360443972369682007790422006568723037856114573000098420614022166878125253511648659210051795206510841786671315715726698375003666549344113585379451461837701436866644889251739377653210235919876153446308701284313147426128836991851110054925466185709965306828096004722384619495342850558926626039129395115844981135742791565949276863985669331747517092527850747819639263526902919407291583727192121556829207272522681015006273763895652746032322543427468085847532980763826312275211831660632811481633780197763075657059651638771330178493772794387451092188361403361689126705547091932589139478140235958152136963920108920876750727253798179658924513964568049835384814762195017888555930285317247292503515576054765552622782633386359320284180753258495182764183911001655000412010054418655777977373722592585937961025827718541963631145656809322336993173008203204597370940913809022438935552046478093623365200399919478378513420048170277026426401730378238958335744284333620246147674173453638719885919087149879991886689528118641881659226638869721746379746382448831755397069532522152792472266525471755321780492392814800680692574599953816589227060798906556716543428245770702218274883368031878233891556849700035539223681616718582333828111057917591555604528679643659898342016859079825090074403417955877563510610737912004239475622772254687729298611777455784965731440966526484655682518970498160352069821640753077865933029916536124896479383764272517249562423543004029777021042870427963388791130781103853546767357580803862056647434520221064810497558757204390144449140236046844357735002045904878620749260847708247457211972989582193666808881692607567577701667983548022958139906010850446412851040821502361537328803669552176883501047886261943417184288195344192799382787494251987424397284068706487788904672174157432613980160104124563279491535573577157813787599449783946882693564069018384993989461359132414691501328478681286213275137803103317754142008043282140619868013171838716215758731129514500104915216695924987620117233057247797039827531311329570149951534919337365743763967712217038526860194358557098857144037825010514154633587957458047887170517979673909114261435493119801421277916961570516369273544630366255279956269628861909033016351327252473241839587677488203594921857974468532571285532434822359837468332490727364329231322227751792097384728048051337014342378035992454729801150377321460467387136192725735046882513801949137967384700811630867951845779494367415388474265235566240147973723945151456847364603251847376621827920949690697074403179367236257528495691103578179685923561449675698785872088564342544904084484144525665446083812967232803837987573563723567873459812346145462536288953767649938879820509532092375103062088978809454918190593681201742735124063180126015358450530878803413813594604450971457942252472788367601266136285199825226935496026583013450571287374381999335313622567697395585394759440900028125684436626058453121352596199550883981736115460146826712409904086686203774984176296894636938452222135391163566265474769265536199809017576865005811138024701601065282345268265090969689036230640729967613723807647170473231241706745071405510170343253998441113660259367672891915513040852017427963618294898181471678258329613316927732315612257351951888862557815337110065990253698076688449524481156159834566290438883781956644441165961025687148986993441682536556512153040107108974388820372314378690887672994339083439183663838015348630456567936983673309483186504292360207158290403797974015777143145139658250680921722942208758691884908015978556747064041996585316584717843713162716311799395001231652760973039273585366921563892963653812837837023738829384104948950978075241233683355701537130768496510918928605311575270960732519911601811265659838030548416627907031846226714347917472165102075476286083123252238861011982256684384345230289363892788782580877882859534311142181392677152623872026388677085260205380445451002101972668321108787875589379114842290152773433946391492207675047985086626967831969375280835132877209183338195659764866919960354827181184638228934753095562693783487321120892391967765422250338079513593652392829566600492977506055421069208874949852558122519468347797071217092929820719719033611150837173769412602056122412253278318008223813869595976774492643092749292275170411499724866353904495034944756919688322779282520949612946890689503566308021928999607147885866629119413144192451171657515756042350925845145946305377491985347990813026807874042537266925181908960300531157825123200322093719952272603223619810740304170780675256633872720015823388248471018349489663969006723138428074829213381938698300586424500930341117392829523435370041118833309158039622835668429191778059034260878958652534342242048698972871422704532882393545439489584242870223261443899701102484767855316903871578635458951220476570962917327281446683147821024449610439625638012687633768711492417115248273607742454110252937876236734386277956046170606252221303995170451187530837949763332087369674480183963087867797617448823492626221034301351851596279067097997860262597435717033973714887256775077538787679545756343201515332744669666558133810295367631445960131999700638991034714629185583142316383407798938796313794119632085436544932187081255996826613393170037770156434047008250894356590770214162482612273901391815216330264524151319795863565591788111238004945941777802840147654887652064392820788063516391355330387255749229770182024282527693789982129715533791533819344936360952448179269853773740013389148664315347364597185556943201091643653534342449246102723634098194011931464983556599708341831297826987747035645334119585350454116500872769143699884858033248488548337716491736446978125798927390476548115123015319613539298148390982583102616948762347054695786844562101257676816757906619836002027387231582502693985432416860713294156986435015429627018494714535998060435102289636282450766909565508729984427215384471217750403166871851361174588781023271214626597077870615608018176796474497204225730861242710379445045542631579563275908582635931163809592052575384399365050838052250493204673755165948717460584520130071635633110604168264938422135548165577232297380172787725756551299282599880728346662559922220490464809101187439438436414478332198354630768233015455771230731533207621966586964217230137951051400006721996772899706328494356736797731710254327832327497295551155819116554903442626947220851860839384726332350762900098063876187068793546641760345079818098711408557316955159185672780538571949214531822221741701716293256077241251342554095824090963327685407327816745977415271118112668888117383110590106414230641816626008041685537179538886896353075569142932718294788736892244277294180116960348612753650022368402076175448273607399416940085558691498333239499618661704373227458039462633342708744788715998804905642526766039594806069605744424339474066962701275578208866864017585874945367657903089098058675407646626437238828411925758760886973895684702675838004464633136367960604958483037117858928189649121601151642956974167599033975904571718275913388549662911278842053938763483882029053621489176727333573096075324192573413606605907256791844408875265213211238596104301835626912190301189288574119421876833468423172070123521061386238311836027080966219255257041251857506350686196061137121274680352523638358267024571452742226015994017670633611245793316456718292313484894237882843465701016239101935941400893185211177889020250745334929873226417528220001052997226240304274366657002501105027035326532109406308684457738812026819587416070152291353314608488667044148319276426623781059328379473026275261719140578252234619756670620712918895651624214225374489618068450670138818986974712537362485406734021695217420435208913119937688541789850304506842344811955751270521163719239313723354447133339651889881813192604033115907145302247840228365800722041417844621622063557606022055285180097398896784970481445209199141616862630629569933628853046131362261651658802500850720269864891160216481090654107112966752047607078336948704591689178418262278212221603882779966808946735576231005726095873266135903248720642968441701710330229718285098713036131065038909463108556326295051562229271854187378606289877254113364545382418193423323503578268836172730024687171941612796898573113406143947004146107975760155235754223194537097599719590999803756651371787549584028225022436831026837415486814993970110584168942961088468139680423549205815340665097242022926253643806658433526880400831734020137279477229456921812068733395318112498654488586789562803696969970822850449358389883998371899571287513007555535019796760958481190205785246160055228223508604969652823456859971742741187856136201893660281604716466027988071662714295778489364996323569887478772155258960307946845162070714052309702097215880862635508541341118413877505572964894459400008211164048074823626742218640817615079190920030279189124016699751101953165845971006433221712716849197320964228018713293885056668070769092249477771763027775260874102959393356122738110410312396965114406013788880686198203043487952710869599967674327083435437655931493412642533648314474219853796181855536787780560865823072049943446648140643409146741294214604855212043433162735533712532202221845807803233194918230016026595780243516795540475205180011533407620984740468500039995320997082768836447994245320535941011986585983557137423074618272147266624703283330548636440286000942278665056949962791285644895339325263416154464748261040828605891554640820611174021321357467647913078070842696962322832023739947940670925877489511657600558855091311375538485944794836919197813227281610931698416385893368806079095906232658288514011254091868315957545336052788275602927125923031521911859109060023036078327060300622561259640262975810016684281552569868633041649249473232145609767718995788902508535552026741923058634076268355479746181174014969743539684135044276546945392809069031883063648400038212061955467417596513737813089927026165981605694203178507697641598517253277860089600226056988992260535195639773064720131428387717296526808269526411488998987043426791488310068142562366504636171205960433316680396719670918960214330852083366362190697259356133224128320211936907475561549357606991420186088710472634370625679599970541230460639818764779465747743083679076329582210115027922077534964842363188182861319493793781816936920022408829039484197750496111791413208679538629278673345479506205106940791739742873716118461640641751536143079115229996613990340596764790791010206115360311719768105316244896902009384044306783769755917281236329494511981969029194855334904011054507683265010539286012186822160244520219261175318359638827000720031869015211901625934153545435587221163684279222971018046210664757072760725060665269524907102663678734887958107137856575386368267589106942303836606155304413918644754937421315034065445250010586260842370955137015358084546245755085707532617302085669621155662064725307670927548298925987775956278236559287023018775462476511313885225350556059564075595626344529048650058800173519568217077470796305173221369713272969649273093922592208872592098178255273349673957025725231666093530739141263111655848890852759009202913372262392047610226491762176048639141966777284205243815998705930981713660210895559275214607293875439786177356858854742868713919486320093899389763690563826105336839104050868549248442931473813988812904619100054011940437631651116529729952742558818353545111018986972861006271437090858422760982510425456477301611127746950690383233614111962878426437454525300558426550669235537403896224931293389762877715407243661328711370793461626443729559529236694349796056876091086754513944410054482962061958101111031201538472618180342811253186988283304913077309908167563964736879620324439831232328976530105866935908619807807540856922212471958361601940617195445508866117474607024440398768237111901760092143634868487398421205590612652681923941305351890420803293016463121298080445656134230132255309710070094660249727213338661398488094077307229769201761027352375153161798360872717873749732297307984259476081754001293358204313003475389675717154319682521673847472189408064815429953267902451554144053736940786474100682014558831020449923314431372144928956288629364177602121698665539611289836440309243251082700429322750301578048976944004528608964302032810691679507017897593383013701634473022147545103427405463997724517629719766080581552426060617821780846567537757867448791875383546910655794697387276887904526895979358063831324679251172841206907294378637073521276179322461159262104940199041556150144977715461726964990127697350747717538384290096140827831835017693008341605942134465963129255497464508751542183042251830091809443746369569523580714680642684893900738427732050284370310013229554037425166165687102962138032552171791291785608655603021607970458437645389705736278829478198934093288916079800666623929429343891614736907014801238902014778225418174646667228878441144821304284074917320757101363633335448835286591378957498285177196186960289085462001088065401611155827695268513202539094331185939009854059738648446754061401738155220912595939008944481621857194981389923283762735979411111258910810506340297142714149095008921571189387527236547980674018009364819031649403124776175286203720568339325899132120973873655672886589506721842459506809082961484963584967047129878451871711544151425570816817372849431936595241585119743163017686847892445247875349327209852567042764713895460877358048316944049951973208303775817784778723121642107526309863613664407114672272865767677540626514350703031293957268879534563626465389563456900702225616840079716965361135565156751105683533375522181169678940801041920407545540310264539983596560517271550891511973487624075748312782105856888189945573933628227290910949604757701218630131623476541595530260983259678839281527398849742502938331364251874315860009773582326529943582921766044415131065149570446637693461215587487522007774587174736815134333739964270477290498567144640258829952645326894101882614073019636556541245275772097206957520457101350404278190184937640158532207330406730432336032334192677092922749055078033421897696586635971033886551066600815592756970625740775751170633681787785310897418378033907155893580263416467257800948807586405301620804478464283968688496608540008812262386433321898340749751732110937554210998724785840930784134331017116329223252778297811975142769351971950266497033592034915085775699373166307750992464479170837751229930130675669444061632199002252031853095963826188916183207876884919249547340978598341745243822760333151150293976967007016605171746299947851460467556987216254779853008796756374930905981282161150958603605285937362369484464226575407617514799536448639303705142143787787822815887712524433998661093359234672221411358624486505462095945160133253193656154641609175858406014515682262611797931013658835678812996000815567464267027269947033885288793778021725618523502011350506432828752714220144567962869189796008858815008653159513397011822584212390159371989045761870502102940078755761156814360050715072693472800777365323779280866662087909159017666841850266202656667034651046094229777149284599301544494281596360594307350982154328734518403594721591338589781388313423709718845108818741668065295843373806490676366839725892550912534340060156599819834094947652712401041364159672873497583873354098865956041649565078452373407110536276338250056420725242845383653584346493154337016861222429864059964298565531460781322161262805080767952498825762555479237823390136917228277239332531625702977852774571474124511776675787632195987350808590338181509099828318293110937209161627282934790080844937888154428802557239622342228184824112025614580995928899588240861592700888199114728989124420069668924407029988740740964589982957374221068368825921241187138017172140580809682525741218276692924143503503145091306937605739046358224900778365292349723205927117138321443163979711476595254697201367137660535754029268335126265186144689236460108837726778099614150028273113469207622416225965782797338978282830662160435333533999630848805153464058313990309119245335104205348889886362253771372691447350057061527091282325499086938013798213439267196212591520217313455417957793319364036140192773851660235759525764372107681060745296630424451461155205985300880654989826232588347264661854960630562481837820793384299943181639699090481393514540848895418138646986737756340640532354477836394216881424740374864418907772222277632984477567640824786808537616672390502186156626910191798805113561597828901160907158988127502103778560141435642657505895974325915969187253753464577442231627797094910591341266430963016752189881879052627383104232097576706132419663428164725870953995411623440668646125389606990058138279533492552813346582189583366460139260029772839091247880008361410747514528211527909471510801731576406891993827529697701382196459085521972763129454248779386615916296205023833855639739920634055498674100653724495014577143914207191303563215362489859396704721671338178585044477806233808799646574179541706566693658794542755099032488206686330497674624219572723119040917472058719810801119523923572984189709851725807596874250036109463678228918796609280645782861623625415823000902232363421735299299614132921926363350315819282689391574999253954813186162654605409571103370448529921314269947438572896634951733178683198710162533712759721968242626339550196518399091091659772412386481367050398756410499339089951865272207936351874012134396876281134091723741290575156818413685215651554300454844272097795827153255611926455952724737551693504512399554634243122636851246774737203730156116055477451618906932560909777748498804669927306305661435848502213197813394189508282884191022417426599026914726113708314605335516176829890725526834310263123118355707160965843879424336373462539213161059875509394237642093340224153628330302348252786195437678865338510921661508401177432363711012994862920646444984051093705331736377885775765173002949667515574561563207568291764387936646919654643241179464233016833722247302413732821189916413926519360135795871730430994957043419099608867260917262891563300190900908071175526371009463263476693938329504282503593214583927111214233534902550184849287328261645023694115313727153083768851795731097715313194177737086319193316713278940404505471191290422493667443547895350006970257267270623703447128957024996701661339363599306314776641239687837800198888137032212470192587283923252571418393128753362419755736763398187550654685982970662068253312426170742416277821440818265334347659063304106989493939256546124004104242206485006957339465991949037769720674038933249495026788356379870451674466463481671936361210619824668958620359787705090275706467267197381603175767076581022867165994804928706705803269593509348993657176301848717623428903826173761922158686822350616592355815130132252655100405980452832244186652419264285588080493626291281567154098653033723652584324284598721451029751681879024264617037155793015483993520843033599359166819661659197067529907304745542534148028052361543386929202381403588673281051385304440197453427072476893550714453888144681908679093047756188666590961156204511811019309035223481365785544279749383053674162355711552699735585395987151588290038595373574306611615785217213898253459679267955575381032887927545063128042389261521015334331387945589204810468953374645159470809551217567230831681259634532783190496911010120124790424884011627347435044639428760243320716336946426304113878931280539780881238586232065880248716742183152249603418414393239203944808274731312159009260392456294593103429992579092251153555320185371108739233758885468956400791839779447116460959472008473265714305056248572396985035194972354599110844161274263746935854343152020872532020544685086236748522841407180012150023238524524095851025299235318881230118607244679140960821416687496068724995777931339867220868747774622193656660582560976519899177738355453653752236632811371296067112630174647032161209309575497639915645402034699102647077274850035345888888082410687495302220948071685778383455233456147192699252932041496942885158958199654081801257694763234632201618422714325702364300941721954640462278506217737902107704335925110164669213667496288453580634588433866296415609578176214907645253046500415872961234777661692577275967355477895144572875737075185482561601229172539185850859189901927853833973956048188055706050273909559556392982170768662792866133509483506573254370305937104588847850621899098280029510791981691965639990840303974855251144190122558761372947846516839100872699069164483738661066620694850172897639965909529157731349857487761625191049126161823605761561933788386057202845078950312376570431698164369250115280078858976797727664358623661878295025181389501163098466844089590494233827888023735964010335439181002851523472578877094265241926499181589450953572108154391151396085682406803673796283214874057765963460456328195568058343590557517775502263044869137203006485984272666786786805567779978018552500008019938366392987309227690350705855942858993155552291762282029917553640856585146597889868450005609409310471456257538934910744090381076623699392571469962187014976236750665669446454439500792198535079638789800773154142325210628028861862730406502767127541776228835646205209537347494763503656182498623497179647047222837758168140846583893255503870362578561520531376353184920980793141162488682857842963194061886024147126198370964468560643325359338292174747271619683792086838667021593479640920048818453850475644138965303145454619655211370867485970597742096798484540823843336488267665308210972580431927378881772379331490462819839888174520494078239059362299026322686098403085928506946031511805965113860028460400486846854690449745329599841650382933947487820188744131076991891769383180710336310717293604410693358820884142366244020167321897486339477506973692199120434723802456928973867434061295139581223789863430305325391153190270533050878224289876792582398843189830549024255183235650513474992892421926938197564965046564565043364276668061010726742284826975901228296853249690747997104175023066395599606412056271990462335251087693061851361691460659431384819704601132968784005910836336045885800141966344685239184827489798519431186144657295066561248367548120180034286734062826201714816170741936660938504419767506226963719379010185266325185561040742242632060264722436978770545928815675467540716128797465760474195618828150298436441951885527514316964282255409745939279285696449375048717143708211255635156170206378284874583615571867547318477336800827196355211701388490956702168152608810591815932463976627494283656336046384182348673825553143656755742562379576958005691820115818495724530616483293557669693875245534590922123372211687319285329613454509199646376276544920401984854524864721129001593434621039093487362564832879645811694287588499274756813378859253557779829998470685838389095556453325486263131514280340479745707216467770440488945915515993541899656797570496614125751209223830466552056538840949603393823743060578673537320995510817779729346812466283633168379452352309120973225652633664594476440382767136017797424636586849788787722389639159166388578203058769599883865702331612019079808892058288654780062820648732392411312499772551554924426001102042773298256863695908848238281044576501225246610316765679828544825495288205239294198143283284625646198632964123544556657656455665545221672047649969203332689704643568987827196264276494763410886675707069035823261074330654388483269469497485809089501619749714594335196585815205379534722873967929431137496604336539064106664863211609489814736703233995420723429799058724594881280969758428370402646320801338633562399387191605249002494638879154902124279760569572593500944726173385736068623780776724819393169695449431227154535065777931548658732830423075023014535668454627593710000195488383604282009407077704374941759440122054597767327411586020065480648169074898180522192106424808647729142389855119619807526392386063865781423093694179958597019992417471323888335051483758730688428807761197919146789994466588651543485507908650079539877720887936297087437259325420737179290981321831912003200815210916467012001531258464866753552051420535664799084761736671462088544825526780583130756769785380090665113598722681543866663679030157040473742745690356634482305840115968420434676395742712780003856666966785429879270997196984787210277133338576197939669427819342869353675201345446853716719188305111261673016722224752339443393807925162073536236717578123825374710867598802965972493183507559047910502510300827287104562408109529441773361943157074304396831464511457527328329150388496888883237886724445135414346643442382732863042156193698856243217225155496797114961627535419250371243416165796021660651824602637048961225592996447804169141574517194189498787235475982211529311069591092239011974405657677178898003824369844244683376397313105751803989303248167869507534239818565511187775740600985228678580049529143495705950268115376193890542477050227082228770843609309268095058289190390218045643476484638909157631763003860781487258625455796512417817713783031489535401818820942773902305000302503909631589584109865328119155196993351468439414753745500388272646883036629519297008907214907533319948456371741914263409804600338586012448964504597074887242071450272444419658849383737664195448611323983183400422155409851655488382714908671295309590931175321594015754691392588666421761698089703611979196721264153790996618456188852937139327687638982054425358540894831093791687021420887402201016823875228170992292787209313038851152823823025758374155065554121447186330046483440672374311692038224411896932767990857411669552192216174932143811164169683071942352424175540158371262188478503400312074175176947708470503715540263393915899986277743634393397898958403051474203626202375026125351489727708855878088301992616617291796341335687087106949005134173810139558255547004871660882113733974564604526838656641746225185685053898133423602647607647562474099885234716332415407752153023287070749718871044169057196238457885170534169875831028120191586021189774059203959728886616618337058069542373705075993495171605015999474884915462487071205948859080227081797111743432701438292742606456558607673847722419537580775056676515156210988146571609493007003341430516524504473691932596960166907560645496330945565909565789185268121304230486795384236041480665147866851009868350440746443810018052354789940317999002214407999838130693642576262489177882841236591343776123538250783106017418668150533998352670624954833737846315369075870560946460555553100992265204337973180957930272890031436323482206928153269972269042758149634823408222443535353534583694820436720314092244660775861334876197633169637118095839344643550645003036655001921493269242549231949643230890142262667877267051764183922718509061045508894395116008041150792671943694195665282077760872423837202631906598786595292409018331651450316962160969024649238296825969554526416059532790476248921022211570260828085863394752788442853999029071192440809009322310500508002132054259028549848172350397590462316606241500884939548512375894541239944554462077567649193110067342897801763410088947275652168589489270260974947599229352366406175473046113586527201409132137251699099071102190812909917880329581408382818409775609655945363867881422434257800647152657831320100591202192567468899674937148913200656207258118516895194879643168413306618209372458950708894568523082582789678573687031334004272339755509962257592924447109358276208209398268016343453329288804046065757419131548186976636854303864671056113919794920670496832361204985240116607658106584436198019584757950749043497385661647736631676212785683232785461717513228056751296133863282181215468837876704152427010063536841396901436251926983411431943956017436436076984828753353698017268574956773627058805429145092363724060475892613335217615191236278740092519325954576900722426674120209336576911265649705549620320201129590029809839245684070724982390646868911252244691428411677592593681752350970004116890084308901056629023412743087737639764393303918930360936351608057764309975895420383463519579209537250854967756592120014223383836220319432013638622469525881911966539435676070114272539599157541066361121103482827051048806203951213745703353656599937494578973732310394454956576947210899734468268712294176313357204920071894679272493203574341507710825485146546587767609615031861521787508884226212892802061356857088366397727984948848704687858676007685713820050846982044604172300694134856437719971929502336983037738027541174505206461449839988716956280159216331181242627932965609859598891333185211145304766003790548509921859321543528012711137217931896811450154622208484487158398936686270834573551156234220929252354548435414087973004275068172904674074705631024988406361485619880519939382937244704616368261957739075022237280701484003122072601377603464211308655937291623175098124718123401409841964207631048772006911203882426459420898029358170469777787270939677461610192705946942258211887955818539056104691375458769227851125344361491443095279840460835584052848383164740556857282325217961848295749011274982976610855814653531910513341880141817248749013305166661911911291861231994455743011737864375207939645010103263460853069282573756608915616672646334805907466149111210440255082196347686995590134905405339914084640004227242794323690149328921756403509629742168078206605573529717015479391316486547805989251356761417643659078498339093621946407679287463897885681215372859506481267854887759768347263719071438052598438382556959970328142917398280742852808899881489303190492854686472926767439323673501330258246305008795692658857204588484777798989340705536316037003161974879966728704113700289907517939613508643548489072511237901509778187620156786660036668589732703209257867195063029244694946956637857372409102708316859420519007255196085739065135956504334627665536269015077702815957880204139174975885648596409510681852389086944607191762577106407535583315106431499738597722830437933425377292357090224339482548863666034886186144648457413046410704564888005759421604449984393629994151386004316446166593800855899754879696715463308770104998077221864961403340257787372143660210008523790636027609857645095651892530933382718614816500233671019667573641720247929209015829752639631121296641709894226969077921224859091901846100074585288538729113154584970017202170003140059550580492345213604082490282108233257484410793760219622233610113188904664245443931035845528745971110684351357521802984672735569803934357170746466300602142962538213093976086960942474386353881680724631767042971398762426241821360759786851760211436085561846049078585191738073935036413789215230470255947284715739655229486722994044335054853066472777458265718384349249381773946533383032283985563385462901939721603720690664585012121762351359700902765663949492805260169891064410248366718727423812882667614021847419411125605297158312773501821076774010851063172753783735136936740430084424327638822754687010412038070658151476516003814779213376529649050792835875801287084847731708711640196079942523358458605824862718867450366146082651795415623225723925515879322455253567253770335446763074070636848201375897578900048082691592731391101098537848965930058665225183722599804030673391206649932686755490263293538187760491493186302090975621202083098526845101918598561666177011221111672123379488583891167993802961341385435870265171493407230601132096117826610254698735687240161788513777080835780974621833576229412097586106838869192796668686428466856068212783387179185656678765919415138442026501269076643755824227165379091918778547083331019729672153867170923122631051716927213080090578070361095177003324714151464718821502211350889440259422790865577833119425193178363572258670209347448537303808456422149688280514751403226221171989647718417936382773556847284498129254985913594148074682474306690908473064868855540552879826514723861622739203630893004268518527255137930195763961405132019618940990246109939470172244105906496709598161770923188176870410331841933828305896394946866073359705949056423299168866097457848221985184004822280668608755646122221774888201567857884608984739426722058198290857558542505069919609958625949979807573008373330618391755081498673900240181947693216537683039613028005931060323115596555946005312515576850375454014999481184367097875156727114317292781598567127460506901105556916331749048155877289013016303845198675172492130710275895614812369009687822108946929931816498986871960977348809603178481304893701928069568174845258821404697651794403474647836203267726183986505327539037568039733808556049536449844158670222649925832154806924668462404992782174031147368098858731841452370526900864425829024218211778704200982398116758871451116264610100800152977520104874957827524266743773296371530752290785457658699242430153869046062283446224525792452878022448781050592288092177530060177423159741207471840333238698453845656034437357502329103791177814181608305716111826695333677550231120028866552018459884428299698712306573955051057346776159802518474968260650587466334221548124764631303829696547800019721987078157391995804316693488462315048012166106352127607454113336841905652898313916002443421122084437891116088180776672507309835983873869742464542575643407115661805712688602656623837317846570641573209284894315557185502587669797253371325884311233502387266407777691880298298374880438328278590795187003182535889512400652236378039731429886953333511992176130680130216321598275649569015796852173312442475327029529957405076188726695179171951499692508627271065669608474652038849148452209724655106895573247290813141004012616654059120365501460561206222083990122044501334388526755466149780575693665876649091269908996727673488246484237529559483388772276903839822798499481140189527657955984317467636964919674171982968356576797833752799371905058634552026359767258834513812834696716616904839887582260190527705811106453774471227213274624437219086832563672281018857481104011213451854379320628994089712930427950482310243160521759309151607846719875000712458882370214998812940899830257816475803790849377303947111892800643785750724869357651319601569154397545564546577600239812103450312382314333990472238674119921430030338184933355311134690400596768395054868654725574589047494690034361750611222125144580427798677122141344698150315878243063762714949010281540288675802687134779626452185328517225582507573063692856763818319930891264661285746709698428227645037090163064689372922208633744709211102616386947717284821796193687976842389463797133720967068349973814670681941983035302121747210466883367943967276325661749879038073734094798882037661366236336553287127580064155484370425934834342820329113515460599652019075557587882325898944667358208986944734312867482559644337065273627967271086654239881746925278244888119078720329087915656921352264824036534921668150625832913075834144784354610611462792245339849469562043692689600979939109134262540879932632014551056531031840256943328682096736345679353216857089259739830239545380836747283408136794145043809589127978072840212548489010854253526601097118578818764276557102080674104066851846823311907398157849531247485091611964214013224016759630949562867815328751914504888682730138046151311932169807037810956478159752663195782019144661316309558783593495622773394957689059343899014041325889616226784410232045977878939387223887015142836332298220770740733715228061933986717255833595696822818759159302652802476584433022665105880692005823900571078530540027054685141648432555568467829995569937419966857540462342333707635845841685472532495897913905994862966828145265836017194151917404818644671779635402850553069299736726262660840896208384911709887091701887795497820982744667998858899004372952136052815551722322829600653397568285179397932892645233768605860204370480072088183344966393771824377246295587146745817834219949734234811066018463586543148967618872990702995287621887324052188226200139099927062013584291656756485571851228573227566327836377645004913797478949991370931142990418987980422888926050274155464425208563904415571594351815862529138557640563911984940315848248215496522919180007737373054395220597542700193531030749665712057832640230736262007362659938978539427510798230648544173879833691427684704598686171510796952994942771292649391244688446239785719042937199896232332993521500036007183968604542416099293122352334553664618806971297975954592709946276279617870012938899797176191788613412902348053790603024769485190276126326657326248947884680072538370044827658030498284525922959263133451971144163439284108579175437184360931109028150408310345271164918314900511801855688248118175156152173948334974325512593810867029213538596216124851160166118374380532846902015016292817820458456797970980863376920810914979808653833295817499744587376003926308715912826407468417974270766395799452535584141919315683183887827721859548084108540915644916337201474123165096760274450896139262361027541449252326288923811516734999128021718424881378228599390989352650308455544442644191124493059426918234834423446649814431581775918946758021819348388064192209395558286745372522716906727627984060840985226986226017489334106109347209826297647375595850897760304635808799163442161111694207911076139768463142064490121151301775539491732960156331601447558732868211871844130063306255904334205029483626326911242515209473311804716383578402875437586273563631915239575329841261061601692774529889640863091761159246396763035729812786825322324400859171008979322704965662780143343772523518080616214419531808931651592027333909648348003994120182163609217241136015695396738839180417093894203416356058231894932106939587476213526249756630202280954078413357146415400885886595290812782705019262835968414441741204927342844167392449588026798565818154154376715320098803524972000323871197092142306355827988559261958869569280243006893935836074473249376547880199159277301955219383829792600352587947301219842497210242066179841023435056757902709396149304694805607761944427778730562847557865286934142095767873771683822527217852705715115030529305753167750181394757900241279400072170163905433454111577615531166164416493089154791342983301706624295036920480184896424260156410424555336480380805501101052807619492502080922065590208795723136175335396992649936326302451273406569960857581908035916535096735738404804527695285188181087247908122078854029071318571011460078822954122790869048473110501134577640751858820427668488016623489270611136129649142503075545976561426094815183524339651351226004241292312328780104771062330165110953214906081550338459846459606099817929135266887016662142492551229991113604548722282708013845209886239385936683514367451165548508226684772463268769554454105394859481356395707472401629474953460452823904819197830469381408511989155208919632830660011676956380218912948768045875609488411660787804984852080447828274804581199258780820135623850492415039926712313338509471321725101617938612396357060291315898565223939780583392846635931760300708940744389026526327306826866906687719412911079094408162525889331356190382887472566725738030563843371835471316689795886167594738468932115506182507518371386731729241971991931098364276322492412657037840870399342522675544900078956167136354786439114913010953851685221415163148211700276992498057906837565924801006541880759022521770891569125815996637550562294007010666457717209192675695211330426486530597588383135390781800101515248310495829169076825671762846314521504533323442348817527416196315546237057168991125798165549837894171035717911091880537716220853870430734425593264600200626131219934292754396373665292987243482029055176250663358775473479013578701202127775435323955223699212658275669734370943647697580610686015029190025989160418033015627478809366165402648606787378433002373627465159115087699702481785570802225735038313118769156731393749366811460198529101366222650099495880423622412499551737090985523419020049564197021440933490996792792438752732985767433371278748711750056985986060664078499132969297443008613937207880407349164718622838286226971092432549972241967342600945935214008131691771923382882973400645082963624091798890832719132541750189237258387681590673727271375562435515047343096639583323933351707948860453358208147527431808407483866577591576283233170266752216328326065578355989481501821348280802387723312426250151001590094251974035707753228271366186960366564654166861771458182868704258001455631698877532733494585203890214204609657652117368848656727334972157846620999343264915886803953256802818653431071696202871782526612072091166847962598491588650260557800809057512273490249739296847327231569672467349949499143594080950903558989069378080050310248285614836828531304775644751903646567152698807037337483024475573803072538379848705902760221004196465973712054312951338031857071024089362673827152432690647972558996339761202930393244528614431026653703681046636681410046900996434100178183247131996106657154464657398457021975657185515820158957573159125930782924174829257304817712878938996466671474541941736903722455925791392049080572919228351633168024349869156895291808099165122855831666668240931937085448114181094900095608656865893821822153423892812532918310501156144129755337944214430777721348650417054697628778541069214173347635048954796577313481565665396984838399905842062490131376411742692370476519689305975086676231228243594502254383371688092933500104509802332126128354229079249691949214508813940398605201934646299670074414892716063822162125153614650475703579623285866919490210642143935655558961198624535653927201329871987128254911314356717749270954920084967179958117212647488337748209405155648253873841901336108185268706155608315588406096422654108890423232428539563539273978137424174760420337514230428049632231170218373557449267684698539916018491975770821090788117075918874027611419947771790299523834596839193310550644233016479874366997974880795831073420091069451168491008522945051017314856565155208734406944305272154979641721839546090540017805350145666768814190660638403298681846035487206673858168468278383092994774540000954665944857678380739380247349081531868543898264370860382968776800867704625826690013573887639144361103895602388739007886819005466873816196124670971471596826059561300350616548620999399411708931357921826074802855453045124233745290056861860004830480890578641246199603162276584139910127541257976180234504972993007125895354593678887565535215465327358475014664708670710098068643741813354989559998024245682814315802085345693765140413864472669273038607659833908070850693093445907557883193951875215750390676537272941311300909804289462823972629021109173792386629365435083884912413731591073106523195158637125781425338399558804160958396647180105826605749892283415526339586057883599959289789649385533511302607054261892730138818399918938477248129293821392949866057701727568699139451359438080520436088968137052493388347822326291995421463205818104160169353726444316491452163459811566606201379686964973898715901911439369812121438617807084224874259402660471021733884175680245449435308893357812649308873036343693772147817826930464548867929356175306866766506720185969422381845879222429424695529684088258851740493365141890894221962147232616755254423171157741118547311485248046224738346775867491372539681426344865845831502930087240696748653902783168967707750900772339887772817089324593593423683176080995171048041707137655063421679498692110358470410732824390601869942563351598543765862587286325180175164191306622662382770889508935812317506479199851551763034524260238269176512104372495434536046371872792835256012896044777908108567837903324790944745329925096717119337926803818155963799363184100677417697916062160952406026442875178181646275829425678193717014940124609454361438059456870916635269088902271102362348914920310390779217102859938775649282113131220587737115565623687613418030263204455586812789130929144329060938046633591507704586052267746188377585848639280992969356219429630427591184785454765987638737578368857697376445297504300854070855238933213192242203744693846104648325173090540214889495033034492400934444000915962010163647814971196496742413157426714008141701003104184120347724142957577835486604114968551848952108300378672238629194763613197282269384702180868099422883433010735792247375323713259688219080218367122673074846293208430433855678256990494701226531468844286940111711539120265487855256988869264174477784698577390256139340913664318350590746356760215984591272278959845512992393952126543289027880401613817131220637309274882941993244602339413728187056559467223728046005172513668778738411078186277307551829676211204549702874681480654860337746677926591183095371998084255641048595382466385745686156283267704621816049674698561177789085919871698375943835027380581968338849023966066304629468287737976517204824223451510556229363466252270907213880304265435404518082871546947907593615922484311337595850817020080708955773559607747484282961679896911652032292020053619298896053957230042625602367714993979312779123852197524536622150430037275327518264780640060697475628766194121829924696627342140029701648990062038961846166382571601427975236340306024191068206465450205077397733622759985274860786000931979303352771876518415087085455852538834509166911977816430940908312721811060157610370556851771446811160170732556532642836007872240856668450886326189532571334614194771333599977922044074728065587088919329709871822041294673021080376856585409322066184704240215584685173340020119458908807961154498100004978267227548557952509925327538257812778314314488917809306875880929359474677080220340066341282171370123420643215098524148365992348457035478808216432302402822141429762485773661001455057241878294850835556068840179486487193423056842706068439222304570912136326479790159412110293277314721194085564118264289259901289262810424486673475644153181942818112642068699462791093646818986178049065297675808081485071470219153174415782186187753434217050941229740946136063166621093773053935986293893138756168211336377012239686243499522185231576787811921604552994448659685906159993428264721524166837642434678310334433660365992010724364715099864636908522585158229702521069274287582383185634143381385363880460270493240723829710699831582972957545302875845433596156843763461073672397396529482443197117618136216585002833070772601164264582074276229982233165282253724971377049266950059533591591277202781512349698264175325387115064305372466333877325973906826398365504082668923699245052442764663659209421663569824391624330052250500938945638294196396537278104860267212483675279402366607903137877989966546528794125469026793919585731037243016795138113436670085366082088096549826038968277443471412085019617846131401234684360573385487580838275154728567556590801670347690887770521410549657078016313488277905376543897773793970459172351657207378678068355635675218442998065682055378783345112061766857179202519747610979054487193145679094380985099861269755145781346443004547877515101498039485613260792517460387921749487130683196869931241351142023772365510694825784657513918808705539145930933114496749817662579995184168669959420992127569111004796513425621912243884230872459517676735124277772455189940896020362984790080398342028218151547418320126885352379868581368123203828418141002182210561426250062100475895967774069781544751990003283247329945825101101176732950860960649025298401866530164520886404477264406764690483365576348902980483460014953194559175026918375598643783892772464274194288784527389608773280883608140121421843380974248915441402292426671597873350807606775255360714483792077274722407344232456995637708759160568015161704703940073307677290958089600009884522028888612507860190313974029390686574668716141974819198409075491066537226158261575915036122379506574716017039762615502320560447186301938394465138957199734990740763669517264129520339849058563736646888967430201310334139089794697585725201544142177629684301097499086189042748239851093947398343630159333760363883328631515347535581914447281676850270866899926503866429277725418744628604322764947417811634216162461591867614100150893433519393900230952401600691235803360429425010483346841645749989410471231612268284258482929842323515209196256914514884714387235105808961915403530122810378337420349313404403110998695961710703057916923537782108201987889953259237413186904668264552564077501323505468580183870000996587486871462221731683369159805136100924395969664900763273999482590657292703480734499813337731665823673144542434745630711321969952333975988677005283890461052552555816129121998552703648589232622745903974065526895013362518373727694076129623002033830786836134053910011914963688445985957620872013995829182523705239603333772339738730643081791756503765798673534234808370997931716149653862348281994812694215010803393795579105215585546651591671376572482516733506133255104486815848871927682526959165588311146397749943817936787508521416728056945904474982074833940733285859985725309298919350695619567845845644467401615873187919080799726800256562235571835824224597306368324463339663502075061118462365937920421982539754218692897830171076701333818568534241897971301045660804843195705482840004695133527620279959194637840523158324053043197616470290118369297541104693149243150428235877430266913895113442162390665309714826105945040423968821183548899190688952766961294388600801821241344506465053387534359244349789001178230575061408200934209907785663519474485452425335376890975657665455865188839479304230427551133066959573983697378568453396653290258601883341483115381322772002004983597918093815749605967025622830642942235817730820015485802682107530123435567133755527231398851888298862037638820754696007635467540411407981131015041835585913412899984608538690279801538372007699274714468246788719636521870463651811621194909058521016473732668963853623188704274252297562705434270673086411003501421943926613854317330382495970065130048882633014227654161271604427908591499046899002060164556144876553746074208406636927132304678028608980186149106484549447639557913719548760994087344924215358465759152175416540923381994461507450884370379320089638578909990959230233710715501794573362975316803045380946206059658076467623468262267493075272007096160439404156328986860404438782195222910607793931746034542739064213536829451530196521820147960177870265168683211175660665992706319996706759575586046030767899168020686512785746289623239517844071423768033746622346225068040912437091616692859275347093607322695555035437486691481308951449836757528778759723776090765599528746044214986058738333786490471420104922017103977113119585794804021474775555945908591574638659753292298955446099049837008591024855898510738645475921429836473264094038766794104069219409792520000237490939975325736661101681154078959119142109121597141537378785069167880958488822858913181494449438137855797668333926549269838102755331311449505943800335265895402485162520071531903539501284815925476870985282691779265056575640703789166334441353729658150728547846472014057101105480560693170817835330241136349871983765713960249717822203558858930691998663669328882480335296686204054188393308330300374880214713861566521144328696857319269384060556406628205395663507799557504311752630996653900311823689571877802873065479625939470013039202519624050915814782314565832450318870137694325252559921166979833008151449422878657585001418342415162456286516256340304248936974370408857617615292934847175646805236742133130282612135385807958783346867903986250152465772110388423761211793492257451909742062754208118784328522359307167967114790655523164531374093460233506428605283881160557873188529110197964818858229962127632446867533340674243659761718187319718609034092644134060233598630827834067907548359537632096609214265428927081082388809006057490932881598463901595884098480108505075032023752376255610326929140759395879181038054135233006224287661767149878353937074412247373198810806095905560278301992802178654823233487934954504485406507315720027106582086832845935624195806695390306273975570012700105638746480263160282033739323912425182360060059757711938601266787804152281668484447508670999031701165259952750459107983406833523544719602166641046780397271333069091723745108771804369819724820302788863274196150702693979190391080921674677213952139192350768311361079039719873915240289330475781027897166226294882937790658369607409605028703364627214638854099475112192151228363073199339608099877543575629136357404748897173740480961774079880596962647229125595196300430485922994561927194195516735427268859575493471211987631056523521365744809783030942881106522849764220645826209966853267944992418639994903974823083658611327033288546823154389133569194835544448454804457876571310162291754028683796790678422446347018054881801254726206200210499370473633098298995879530839938488340261348301897399664534922899235679609857575890371017389526213540978899271039218628921635108388647445655612018710184810954240755176088843235218928519413221458562271802271373935381806200687362222095306919199971662329883297763965400529649685382004879006270191410028177685182810596556862991732135157460648675913143595352004374567109368468459116375177130701729419500592571720076414251992710791915517500877730930597110692048682024628024701865192958338968666452860035376007511527461779669283676590763144097781146895736031916761160785884945745239807750976895150428892067338307620615662647783616423272088653141062341239319732079480798969492751407453519057156942698693796093829373470256938048382834422328422597604088375520218762159924714839912489982314749330745421665740915025565353561629599587890843377456717136448738336979759130880450625263879786879138892104931013934342477021077374628448955403387855770292073535787276799527183182275732020229805920053055646094960394821394969735936740638882379584011718887883645360487002693696978356012580696984388770332714172491833139971635284975089101934803377061207966647030632710624343592341638782275621383176851250040676427175549218911683223760992910771120714561584737183835683422537861320298603807818515069325555734312201290366232725429915480384031516958550142666588552623453823657445886195065879599838177872067298054660785120834953721475127066330744540836835885346269372410385679008320055247087311407671274372214749916771222918952355501892427703582326793056189345820264164636413385127654881038220076432490123092850145205223644924495106864533755883471814058380267114027817494187837717878872802729220807870090774012951181627506519805537582035176258542661901573938572919914436237213623061945330354456009388091192020155263221725005446284827594506779309110544445730055255188747594515713749841703207324885051609781713954509995944082142846019027729788930747688172861846189430306351626379628969768658522435311477619616581233554449081953292649516011691031446153949082291155872920040387153762786829487326518613705530512646989237082859563874989873991926109467716409496994036801992792198211496774332439877835586536585852341330610457697808606930790564426738496938378416019160532716178644239466444760602730497549074680068265653028813992276074419283535289574836929305773738951574046209825285524960995831575460497870424810356080376513496339405417110178444641968330894372220655797004610717779285187529359606264213478937773659243312720563746579703563389639494206162673722823278861576014928806888019643311094211365645614706652013067329393645200446935715441970676502496429937856088669661036379071208937037220591868831493328681680093219672443025092529407564569665299073211880224726634078073966067118186562752549315923068376898549486806634519923128293007979985119913382155971294853914923110392416218869679904088497542249172636274445578151305107896228947429121562495622973641517535689505825965271741832347617748425820828799201075390267814934480912000541403301794001682579087880148853987210161475567242019502555305634333426105514092250780412192221161725493311029624721447943869837407839647404710051109501125888453377557626189623596212661149966147121187618026348109897113393718516636118343358423406612959001518235091799404189197983127046895456996380038054068815653447974177975225018158541006245701022776987814673250210801223221679989933929405317114286890405570689192222919800176172471297934342952566087880850471003964343417757229910377295474491209438837445139380214023400494322592785816796541302360527988142309610401838132715244030301807392045596300427500521476340759242191339143538684234442345236466579726321863226134571739171635689007132237352683100193218047584565529925962129878716605903932558404958543333506796070768039064022692100081227757025168532021249995762944280584358171693214937727868388113491410542921756024889656075275748593498067539371463463365685027695281902951929872250258256382031215504722185514396143608763991768902726645496736137901034803739343043319560983696669890145325649655034921610940772351353812385985356424783675459931147490118511228650673785735576297236668734754144894076091310327233850273333755188841590482541275149472874953141167235672729075514099141014395297912218520848193934245741560994555955709827866975919728687074539171300110008187295518436157461828167961789483735396016518924983631411005470776055055829505997931316886870637207690827968292744669765971572052452810615043746466208451586992115927709314320380988535693831479649983953256943582456728778003207241043744347780043151754614547548790386172470541841483447556731952642463130088329707084431358862163263989738618027730967044805494803702033025598543421007578981493974890831420838271324394477632691387521357297772134335614102447639503529763693713899324805561290277194136333843754268431809494656703602623949133138421813575754041782649331595519877387870201608759347109609709746999339890504527748185194994022553668433011705410068349844441795447212014701590812484621180836644297106450035474441021416806549999523168204101458726804276776819962920724973975533191122529360799162722556350423571406950159101342150692605825418273330130881254521181568532965401280420192523752145155153343069475653370704095463744640493319093553409369743928915610722505071981550356510122355314754263839927689379631097620180221718085194876682331265921413414603993146406513971952689016237222870771931617859422526843299284847147927352664470310294199234556684476031874083067774780276231738752329803647588825133474850600594026334147473496747625476755280238198070564408263989711362664016011515268806240071737243795992061085779901550027225438554446645846303344215756157476122494315092650087877893016789699855843874861405984808088449649563972258412858891781463770122137316378259781625822786753342184077866263579521470675255093154369809583315043676998953842016738174325341139335009716479670437896338223353836721718640568200164015889988972509719974072784762772672380160117942600441482042325420752625280250867041865928995173593054224424738137109406678560717583402724954320308957741539247437466443678992644389611803606926642372208220730774962702501803167229380024886893277685131972665012763003167279213490494220363053788728067160373651883039076009215626964392191412192070516656295273082666254031637746472679251631970612692387804326064332006568660786031857498548989594622297861997834294051441839616211065957729507455057714300284599393769337200695841543758269693919876066555361538860584857881755098967300294214903246805812744303614094773325536417327066196440801795659756714014455425724991494479550937410508038011580700814603162114261690625971617195969076757837439768888938065949318489006004269897081117630627123883758605893489582673816846733234497369227093283328196511436660716329659950932452373606765298297652292669168754790005712620555568935649201861596952542963935200279771009418557072128285477074162099512701265633705864893530543257962339823018663525754049496398107087060979520281033322413689156206059657791877368423106517112065092498915764123191717986103947201346100638821008597817885309996235291303350489047220947137915980889339497139377139795738250586681837009172922827325266563663539030223553523715840252706172292893364671522370712416215479711542114822586690920137293399310232175279538185945942640566185842458930630433570633164328092493099142667557459424401575572259095294246295734744356480763132241942793400040493543821740257296034082665746221140092858897545365645369745453458222583889637445400280358911152951881803394696081735426925305170738319169004951066605511913164753303073893754640565986704542579335463379225054161723258572183887199481811710229345473039458324758211926576906189998918888766325725878005603160849082417064966143493483231444869695186755901238203094157993331518952390639138439111830938799906037051828438332392789241339469773798932664208309156276447970501002587712496151961777110795975177915856894532430685351106601612286712753335369991870482138494951143942747336722693278444588996203140908618011468760687543199585916819244850155820262347720241138477808758473391544295216760871740235907718635016883851259833923084666912800588223081792158452717590918023953647925353368764571088150274709148815332282633199641902866645686659908968554297827870057619141899209731848116892947375242728381328344873125701529197880251732435310420890011074070752010414930384900241441094246949800797795384301899278524440248882433665512963164672126665912417382282872287624778415253550402808620126422630249392501869572472476406618278292790496048175909567626946029298754008177752763156402052960661880356634470816177613404089660625950269616458797982969074749786179658172012730271664683370878057199832551581058715276520261066427155156645214038228766160119988694538184051891865000012378073009736578150113074676140654206373519965715153884081247981884020071531863510565468577125752491153647138075660625839780789481498572013112657587315457874859244141167729966111073636903743091787749885183454605136538174351813563164886750602584225597915850717459671190902568935693211009583389154865992357811829448007013052874797417994990872446447737581426781955482937321974916570097871728852396244788925017173237114099111234988905221941240459737408164240710673714079531113610728777818074988830627868258830002026878198991601765448546671756676433274193793085764877011454504442930459452741897588968403015325937717931595395910161700617760563651462957591977352179354771174034213970883783163078836365790184219993680671764729533178711185803889532729123997076968099305782266680506598356627718668521758614896078796722415276107674861494979922173894780088784454553618074828963201264941306297089801619402756738883724225173793571819269108114515967759858609982299225780784455825476521723996707573024797962707925333251925562393059942922200006530481341504074611416198071121932556539155460456222716116275244294731091707785625795066882883095458200127591446332507187419066472874423536744751799175696806580632174155107156404450759693991088796696672092578083880249904550459334830309303829656074256313595695301351614872960213721130054360212236641836744533960056733181252162762845849933029010564768689039817346064993324953871692570954763123339839532503367093391166708372739704659338024089867470475470336790137031060850164519300818307974008208806912433870527118396086708595195771283957130231838070772218736102489876299122610056519725214863423622272416888337019347752796620347198152805351976595151557929454685279798783292372433512947841694109968491143376147870998967279425691416717723658600407389014985176654384523084187416189606208375066510567982011362019974862589280308691675608407252833982043438393104486404034501360762597257161871940715123249455880956442660051609953058691393330580294709845216416840454671704904265877208362832739063562929804097772031602949851668252317972565186025540385197911431723347974093993694451477138497866081354783529919602582437390749439688391486917971341962735498510440753186991355856841569549204178573119628999674887075769284084498924972393146213080002981659805881144922379458827615566786637418073443340101998843951041459114729948599938008327393085450808474293846221858242847234152310359041244293298843159788611658149698582094342111237390319176810612039810602590872608958692046290108479365068327024443001046008768595987025660021570535781817810070037598873735305883503532659404001367075689900607846466580158029734760130380125368012215738271488383743855054449974101860242507398609210822165433783282612269373941263664883557714777246202462368878608320711449012622250708393386535613344547018753146162598522416529362387995721215713795078605025273393975355729167646413367481744748951548674577051290973727692064487193996596973364267666997066191293424169108729221310799719885622882480521074101902199865544526254680454109147309069485025682559097965198911103421330344178252529312279771783299150956061545903087490126386971953637067402407999203224995013458385193703595981389144257546317131117168450416535077692714113891413134988258577801145580410355051426349503742070012069971234632229249181064933315090795662321184238071001993934594183416346036482952619225776304803212349957414426740617676328705700821700383123526073509407433264764075206566722398059849367827096998235762220324941966978914666139904693258348847176653997294724721357708865075407156803348785075159095827720841491550160678443864786480391738472142909354180714227437465241455412493527148210986576635770624384886366774693255326445193227637753896914082270376198242452642188489481490035574467724854664159277529376549032260262740535753743277773626263493369209768257565553613409630015048116151877444845638899037937751953875773478941946647156562454186351541880486378340366734517885729774137992086347528655470973775810896844258518362972209696834601451913500181724782719565760096212091794696654953435178567940009421726017571612247741825731184881811193986844909536782238528069030787834373480301353882080941960402856303696249079816648197686319257764156575658147257602973077636180195017218285681235615443051577526094419770941162613186022901217707449130850606273583198110936357871327587396118453934228235023758243027900752365094822710030773325186219110111627847080489913581339333248462916254479639283281078785949343066441556235350312322339858824413568059486045128466139676897891521479094603856501723669772423555426854256887368445506128537247372735506839840488913089187073291178513508082648122361101865291249299484422912933108929170571596236835976344973097944849363930870007445818386235484308260950898370926399863617361184622592060798084121727536747801487287777024111309462705395396539245833633582072483360711978564725847680759753773552477954470155680758434946937889455471003022334497681911884298009778989515157991662285252461088998573715310655214725123921582451968504523973010480342997035932564678786376933385696005208322710463904816570284019627151819263736719353521603773201676942884946536365545126962224101438301841982908161687202380059906366199043738627738551718058900259393276488180957358658186170343405801039196776634080531483919515832565370034890010285370639331608402161598413490011525997276256022629201905442735444340900584688663452530484549451281213025839451332134497794881467651342100894781154255924655649055279469953485891319356227234333743975675668615368728094472415610916667890683583655521283687102791060373427216564000966987469969731283358065754276743666828773089966488901025879710424389342007877112134166411774844561345397483417866642134332075621435230371655600466400031198938475730614039745449057472210003205675791019169504145292190661088670669664693254970714778618614320676127856567618012858415781850203020762033517142462337533268360853164939040547057200500580795508277781294336230165881316349208609184790312902280404299115739587425952677776056346366767423241702674969474839478021597030446800461257944164649366708825031523103482440906439319801663243078739570688494019688600004149999825790890078031313197426746898062945133803742904770607923888846277242529080605632150534460848634098840259910625693678779980453906582329615439602911167748015823563355731510977662534657144517755965682094940835823059765407873706345223071628821988847460348578318974346417716726775481479296613860159798848995193901466333845257418649989245204566858032912788995080748385136262904412128172568076127838547213766656395285498265473735079268239088181016919692880545933229899059260901013744379015991553108695004601909348112621582253716035667953527190825917232817145403784001140430276094485074290142340073007038619375996964033040214585042459442632680112194254803893279907618551919449240666653128021194339363316304384706191308363383536747447958991247955840283803698192066730229725117738829850992708610828883578733233491126738960470984594891814448308529356370623195419507663169564000723171721368639850883371088163466935608795009176497883343646126466523098404157615359465641524243053433965904259792884516951417083862805442543263735793782797517454695345115592466628921945226226981535546742462512138350147786239400311647549169090541385194077290931911685066260186821718440362405672419167408318209681900719940785243371270414164184565782931805438342559922890301366258783971013302762809078205435928666683590557813652239626337634887492590138459832720404878786957290741430212376358447589019738063561175376218001369325785391787521671712589397690997163858000290280764933353783746393023119479301246046725015534984144976173635350073933620059755745182337228844117054492184239370720619756750272621365465993748519626598337988943495854605793245419155907296538102047806543449937065755408750079675845374224580827108516145251057153316006960368414405282216095967908076658263217825947399737500117207042280866138491622334260177631456017421797596683600539878239536556892227534223979384601417616453928296551733192658307599411619774258768820390299754606613408708864524807501206531631112272906769149771126736232222303099753297281354994597498221507603032071181167485132902116887700653092961963359186414075246661835486239558100323337687518325199695265102924016652576210222044662693530857114998809434013333415063447906107861536086441617318776888787842699577162881552130486377361064625477568128167952585349338623881403685489560127473427763797846529354519282350698636891468581822897971010833459112307544892982424004443530665130749295885775807924891469779649116804256285495962048210393915865747229078876028523651379715863132705687864982345485257184701256434217548234112772437558001998798152767819562836278915159352112290837658158377163681742274360629180645456980091916195793807060690433855991480305063689333251178917273200857250034351426525229046592315749075395262021785820718485814467789785418323340116093610825998160443252472873859235789835453613473001217974603465285912704797212261414673636542859233348551116580964183961375957820195866861043320002748125104827697869285520178948045239489313482421729449802568647786749927366138156602219112231861668488654129890587669231653242633221960654166266153457670573066987489500497790100399155938441496007018979097712788248167197026232788014181843977290060812848654228237527008038703148482352792679951674379427486844622908315876126718557690425575291466045726076056184624445425631532424043433946662797735542613899297796852891318765938107896654471775290952121897522054900957261638822234257960328821427212229139420056010375200999283330485267387957296190614370388710055117788181758383633231764045285301776991954888708086355482601689238499231071859911904299154740334821440976398099690198073999489734484690587642526052384840919104639739936063139975588112833108627770574704149524770246245025528082261817633572206057793689804007897084924664473564447844566811471995268448805385853939060089172096462184174465578369652687936651637483210465847497913320575428940732307361129309534424365081620103654020072075042180213114676005179952045329286536166722675073781415156735094025524003345847272542296013228863369811388854821080714517383974909068805820503748238475584135825079058321179101074569309277031915075493844284580822765211807276110998354575220695059364301821749249845123980339369335978674882820033051204923356930212189396577367085164552830350078252438450225469878708258672358335361800757266913646356657896932110694494178758616292619594103099587546949854053372761481003320489292956103178887730639428704571676992497014878698525063533496162862696258980275580970960517169327938479313077933682154324899723223062294873008419791130630155116386536263491093301192037350576991049526955187758946539738329703970755474832964303379162562362419043491992910219519106675185456973572056525009812776970728335549114782737104972863908021538723540506944595141979810077623369314905019125100633298037102168346266930718459597483449866329347524466804841272714712346457562093234039017928184050360629762432840111965687470543581652838257740504618165921239874728850704016647333499390222835218307400652522902557251407464380484311307912077290184300672388951941338465756306829107097996000250305498368933643449931286484874991465743584311455284696462166834186373663228107175320402074539838681074746739288520104114143101243139336923310321778920954206257178134553259570427503708457426823840927451047393927781675992073954160961769634396561051965770552048596560073724646886657586189803343900333177649426275090037346513181923946345302162590136696604260155457521126749416016425922691085886753823577653645930083926714654490695190446882569597342347529275547865863435350353592739973230594600013266914932894858959175892142563529125813446941976787004761397192103937037841118718636496473803911394967237151023508967812677238542641923702003273100724775767055897843507472084686855605286543479589891798201984041464703607390912104082392207550822559955956564343690030906412104232803451415788945030126660971018149126502941609858616906645576198221035180501111120473292632569765842590874762519829905642679862650064548256579487753180578129893497258292301962893063004900612485399837017412106050989253120634061614205403904918276737004118215975446066288845968076109988498748561908649142416933576026740896279443004453125714094935335589488980988917243587975260852861576670296780270647834942243311943037507903129746813378252469788007266090673604704874907823785840165774742594166792619394874759592136518321096810223936181696597068948625934231575756897905961541728600174094808872434971658605426714452673176535710353869247569571927915809840283047194698748219746426546281628867810914318036728714489462124670921224921838332547529149924204026779313235971813851338018739737954666689967189680919705037780166813739156851506517468246011214580028184783387190396924020669169677685160181570348055221722766268558653393537286446649518979529631382483864373993715749059782569625769301975936461876845807582876288566664503441705842623845148168765889267912031238297853973553933159165000330157755222229895358962418036072527004541021682764068287054412913210983646440724930588989137613219833840506694703112527421434278852484308898193201250446296576372417545730546617412786677839906800730628963251002567956418527808357681688649997105576677496019235327195067989625661419759577342663321431291799200836879899693223171312043432007798801508176226783911508340509499768208927665499963141923904715069538606481781182068063058818911191485854926476510171972471093053720534175280789113187019397288769209842039793154495731984515068900445945407137910551505108150088587339260337691145340461036826744402186579589269122596220765369872814424756374884955833457836182429368278160223597932357634628941661317774266907739062425499496531365861141798754525340660914872979066173601516518667838671228216641398859017553608786435647522196505831839317821324519009659305441207251910938174348608778041745749516864129429184162677411649991175202834148330964656472867610571124313019144134522722447249355500498590126439029007527925332539482888872179778309998828896357349977986490796904320599926234400884208116521881166748094991185300493207070152067761475003613655450865833762964323932174388482937383026535146669545811575679632677028590604866078922768407148796895390854583714032583021296944317382398249018583332432448445326641754051627330889531875621315591126730146112557523353167924947191670408713725939380305617351686183511233904094589900648375783209797777478260449805446927668725192278958767536307912309123443685153862766257727664901500624416949836827967343490200574057915200075764890021583518199397258181219360074827829370403214260651440268314709462403878133584114267914773028601187127042085194207103216748425854222999723216788997753682686221276670537848515957484957203172979624083472681441912551419702363543403520211459210303585374558349508792773382440593054936589630093980635593149393977086687436812656051027117088524857632863896228438028094564653343361464011090115823350344852647477057833601020476275473818602089853107508221872735142432182631279275042913943929430731877253579047731809641897296622811976190853203075783067615488094978798777005638039510807663026468333919581296372291634063047897206876263102337438194526367222907807528270514021733635887841294867474663040476022648409188357104725659732559743113725671797624494417839046231979889265324698096841488154391289672999319728255534808009070777407395197171807055844153389584628219859913910996141498827715160834962944022427524122365795546065395868676063661433960791203866173915943935203432577318472565195060367406373785249329132730451069163759598521334566767817789222797384965894951602930989763812427142905146430457246218543030113757575998005344522065214813841792053469919998190861187516278468950725484413602697216573358869423194474391461936570236765412157622317792641327911210688368876950714814894999671274218154065832837229226121868783215280365045088747907238978313932348844948189319675414909760412956568052800526089872647582244980018527119284831573752120596994555233757207302337488697473162162732096850384333139118111558704970209813357844737458480271904700876782721489226624462488660360496974009694104811987438117069423886281521360414686662994880190559064828806457890436446859293439061302003899459539578716840550332087198278726319814131066482558367239930513023376582406368748800137330679857553226796393456944430760973426103483166561894622773007775940554504812292336774959722586603497339604388389911356873185631811129622576335344510775536700543229657654332335907552017002130875537140563165058575375907547630108802280693637570197862638632018057838379615389244493764579753281576293674763995958724642764276997484056811478341627026564304958042646174568795881190219797275956921516230992384501877934083635533109255739365313359198421815590476143023486864677434686772900809262147959358809705678557786452886159774571436387808688502551165108395247589427801633553201220601100933279305822505037266457233632102335484552008505667893306386917010645322278107086902111333863018840142546492280265696030444503805196738170045588857763127074335257797454258240422563748911759349417118985486742711010112220369701955639400484463442971427446976404607327502832093779570156020718388127625766722151558201258047086988062901078068259045170451552136066592579102079140675785003389787029932748757357424009601387385130684288693184317210285143017787358285509950961486509748017910673827663076982612856104232412003791378330357420873632930331347700039262864180217278668898238194703803981102936845667169675313075426640370178611007393037822655584046049125843479077197505710350089371180814836816813543923588842073698368354346238118408680338091675614079120152787820111534477219973129497384729576962197577301923498469712422314890645161568292491511394775879917113851737899936180480153652249982372299534262684673470435056283053189412583585769350894986779487816678217984910441716686175100336018815717280438836284955986688536275655438616354293930383630555349761798891381071368567929238070509264616210060612319948920661807455037888545822575642274727215955577939024789288456351830153952459044257694440531645502773860736540866879071512570513413692266975109054198313545401649243701606574600886558241322649138188684083549753159781073330877471653275242145748382386809337653794138476009186758336723905438336401472480759839724174625860784308733576431196963687559738000082014611641289794115597248325358796041816743172311001323298266346122725809476033400432250906846243588848220190837409675563604166107939939022563398687697472970066095320898077321468785579438355506505852715704030934742333055153651476656174376780033513723760781429336697949604733203982727473640918154678904467303570842668120962708356254997764399533092130617975042484511421002186086220657416835952878836149435246577914643950839578815860102141256494445400695242158299946306776315313601024548564846997745028713192789871036465386383385151822441414604819625465014955478141920477173763292478776988258712588414843386681540988937159251013342778682473480781473616163914425075123428721359670607098799004424038790098197140191536383437708176981731962125964348245943407715441354831235078355323913422846430105742199701049449147631900475739831158497857595701646404891411577898096424458308353129081112281855207639877932883037538149340908389083805378773808876698199711185187261379158740446369111310642824892684773069175798270089633319662954879295710860243716337129972256400664601331345555925364916006086115322957037159614559387936487888425920594065389810945497495961403303780185588553719947947069115635938828950999031101762297385157319269150930689563296824555032227625433894126674495770433624729947687963161999333322393073073112797075624309445212017747916817502490261106003023138553001200406262946110447770154801356607294932496330750344806603378114509254770797958224952993099913746466278271778422596473959673817960611724530809318653815656320862503687538652606611873189092654790594930233778000151750512852993505397053607598323275753374742174546540998662836513528510365338440800095144353488255673012436732854238962936549356563465468805102451137614506860588688715242042816911511002167545724728560859689729575367896813983346908786419499422769829696291728572329670712484058330594479181160691439096018224627063495433796855672799257212060623315518370140494059372483305948232297076923096188094605698322515517383564237872914452267293629692152779190006617185200112660387639744836475866556467161844319708279385662888447148500871528612346473339536573946548362189933547004334343958371309381102029177133642839512929227727401740513096886809600780844024910678533743006432654445321729534838272923622140696491792687287244844637474046021428116922325057251775307541065553150127011254710493399266346710606300222846285224034909552832952896493675329936679916267660154719431694612163081694081124032028713365853006103825214913437341139049516607960213045634079766939340771135397335293562940674840688419165231935579378222384802046076367318308940483392587586485229721804430878370109158725168336856943749975352759540210899874979357283875137801913001086185206177501880469276999989000471868848287303947968677238320564284487604595017067448953165947049780030493377500638810680340157003127398195871269463633916323735960258662647901784719575100126209549142191183739573618191392842774238385468570718452313912460320030166568666134296777246968734976033103525270662527112828610691058553747656007076067612625629222360066532627763670361585189909305107619375709759191613008962948336997824659463652162712309290596498841454655259094813310619680862814457690256316340470491159030900134771152996487274904517351745729051802014821263449477822669847516143876811429546374565143887110750698195718195491327611835221336080808673806474152878271851859341986261274298207998132009866948470286074973438357312882246148612789325621423428257596552230705989875613238093647684050413580295219351772361734740351705056670974017336107722480948132346528241071964909873654067190934396488296690875103437394425516671394792086781121649423964381521278256628919086552710560245885736503671437643718612516886101201938335757185110365309897676499955223012208218443674724863122089851255148221509942784522432014173451285449471591995287533010913991247113086458449428269978723578531815819801324665606971099177137135525133667187286626498360045711390416765191621478708526778570352386088285437660253187227550792839605494172180079289425037605739492914375502511126395433319660493184556844975905199674351355823352118992063449921154801065370250323344105152411321796239938231057427097598936944450115613661793386740192189941242807763594483289771131939788539627399010786421248852720678278936895947449184911790608396725581114517662244442652785583318355889049948651482203167536159151265364730122812743357293653433437046377621649993850865518401357151264676635471259231515574845865609065868381640612870090059290698064938205276668369133807915321745498243400394665969195424915345404363534927879239861161383581427673366414074987491069329723538298068119728251203806989537895018537650095146962724404694953233810049805425119197116368621949901666961172418891572933467855277759128630124622997957069337486046992525187107524140608685736820870557586397814718568807102746276718297845473189788045156306762763256982137816341730497757555740567407350321209847361459284403746610834399024933637292655800749320427123363737434083545276916524959633866193952017169809251939033133398532723708570436592495917894969616614702374965655146826545603801782504226349603252123619489811481152238869160121651795224641321048635571385517942172286649140229194537494827509572354085572679042931456124710103993747719939146539347728387785993059981896447515036915986668010881939244699143012424813785937213684266810068758266539742457231161772654532594852089930636370917978290244974027477933715308943155456256034370204080166434080406067857714730880483003511601906020798260444667249265771417329128613221214549944264620761991687931367420992956431006347665408400783045630967950041269666643374954115648802832350126974917483967315248726156499510664063223094504054195224196290481579716307768782741685498119360384292778217343625923108117393805858639317612268761691067794218225356342840373816647240624992938158579516681900510746933467509106865572012025273331741605457599940525331677412352982673452377080106338834930488170118780983789488143726842490777905709781177835390228889206017340826653323868417495939912743944452219610098066125483384079408497203073020655214168410157578723620009012325234078921763601796172839494423400017954623576763031176509205835665821926071856066627712018707581395915659397727849585455733515767511017982059667132955487144081149160472182822852656386236758391870279132052402765822686462375233606053537446982079020733860658471828544669368277653748261468814707125204415050444040816607811933256812304585494794463143162377660639572543178286036185500987200329988484615882586469697856131207980360505036840426459042810126838236055123830439382273383783518844115422588011966671964751383642609956115589939561275575462270674559204201275777933111915819837414978416679273536834019159402440879938695549604055843592326917194831209753421350928913591525623639758150604527301030660986534504566121467846819897976453137385851575688051747344893577843050960089960756069785125811600661283645513147112656877321868807835288485104311622176029257934378720899484483493639248297819013230326950705277567986350495376339652623380493064222019355496744200049473141670072134946845971154843187467518118131501423422380415365699677053491563450999076773453940423245643924884087883667021326691041245679684583990954569006551046230562971811748721698109861177235385635434132438924897552907782911720326208174362336979169098832835597644890893034295363622955622379691187967963388739447029183077589546131804811107815275376801926285637703951415043425661061350050548089177214610996597872749947775699681822022135058877849583629312430035810027967714822178181106041659178962665078093579879776858298303469151521065880996110716360817925027802250474616168027532639596165005037891689186459837013454282262277406249215291101082496437613921040676189517250396127211073508925590228347911650329375131227504564843831869316383773150896453397870729420176905886675890207280229214798425185306729611213962499177230906813889880853614482091756882178963183127845242239440753704164772928866541249633757196275110247231076607704328433056575895467413742540344167372443269306845109615896345080425250305872620149288098584917376846114719754314091757115036895532422438111561194169287666372736858493695718030286933157951465941225057962026735846944861108531447330733035237576762029799004419429291233291347351722493021565987987139578908208860703883180901365071758541556327272483440928451603343566354437959005937190087060357617744115710254702556731134736215156620720328417136781311965125745136258131230375138238711661147253102929861963581940611269252080548625028615707858887952603745764605362418052630839758865960384265931933351796176909295931987623429746806090628095630667065288247819880611340368943171290569052865279382092443388523015837350722951147737233373801989273089767884912636368748647971068986143502150101997629410870457041616324497022556893408792979638026066362371936252996732490276679153389996955538907767660985766151080493901727787245830933815857950359456993335618141394676779500039442776715268451956466485762314116457569357740393119138038251568469828186127868341749657104341089841953976360599500401315241451900820455963961406306087625158476828379194329089625038445836896270712610170698459370365522540323997706615399588397579311648941797300782899675459953351208539623508075988793726682364316480682685232550738409553135826332231441041422391835263004965271525577469622715962220261019833958354324970034487960026038117191354645339346614617662046917052460988273284322838809853216443935218458446210874768755950135825035740848231962463380405960125918230764296973188051217406649943136121133334512979147979063006658550218465361799563530008520961869109052125859196900434918179478728008004941250737157037798560916646433243633138866187183232930135914413656823826633684936651051714877291732908553253908361676927882814837291152206548704714110779577333495986012350001688290584088841111483168960229545327560887738594132476587857677607563897766001498307025610399134960762397428516559382672476904285302911780979979182639646351443034786320793960629545898208781602161585095763047971950786630469914859757991522555439626284345860649010430638249420840557984808138753236030363900879923422885279453435726017036952479621654195907030447646223247093001010227297817260580391748990650270261737816421261479947321427927219773322603803827058559361004725474146552145293162476332070684156853857115827748207473955260018837411645246453131591774042560458309399843985009633913568682908829597458724075646681593919096273113256878292866134923118208779054816514966074486056133683472992810831889591097117754772980243301720656195066887744066649697330944715714311007105261187131842969820340616404094544064080739100212586489388510357673661276540563378328321235049883284535233867938224337929731125662013135865306491710596699461161436925274207267641219047738957098723491073194900454095339422931064072710193314721510597876327154116704703648352085845074043435059537822404954941312420113458528894505849945711394211752099287390252084590538297336230844597603123570224993184094854823784273330046698541741392658563899247458980374778160677375155589642453368383118310854660390536135600450970737988412201493944315940521024775985324900070286221680018182968491549093060325537275579081340473048905966110135296067626791492703129196680999672205771390211632290608327985826918445723396308906138758730783433948230590807599720699210500087032014556467086867315022098642497823634281877554854460149013109253791819047017192523503449460050170450652643137016445927710297039925419435634072672462680095659324219749837027919794109495789806498757652134076585394142436076128192534462165597427288545335230451206426051622473830997264510164562766272655524800474976829148641852371661737240172553580860696998114053030629821649483989954080582456978333078853996642259425503757132326600516766232924929640749686583767049918911459448318430327490371588679158151776632597093345147347338097855399424697290098938195992484893888867928017395688854205663169912855538197241954931226859953389267936212889890319631987580140961666107988094088416687552126025259485758657161373325662874154177797644482816816569751614804715116825881291708669436144745996057461552399263718061964561448372330784772717063312121032060059512386010941366638970069596262384700095896459501919427437733667859148303602245587530913489151085133676937561995322738123016916269380157165557573439122421661997680308639516263182042952829109813631159047694259857156674455812337745550286131691357008507893024371393645832646989278209982114379320629548525308500816729015135846880538955034488078235711408614251755442598530329919171748298407773046361582985980936441060124725648690952296999728969130702387271495278556688873520590337203063337253103963713587418106393297711257647255743759111619251064893536946528741360153960126406711967428119217327848888553335358430673094274324100329337376882518590472608803891989586632630520862323676846885978591695825979969632631666829725514331864115955913196615361792540200053633027352210069635920077388125190873576348441288854556901168762285389523410239358399117836571873617456894893364812229551854779220879353465877590369364793833366985901915921249638484403442353380194071383244618117493850424494337044663066725464233712053235142637040939047353646240076723677325907919363560825123192764141461261033801786774580414106674974821248546913963459231595849175136441000680802186250497218716606637287962071436026742151456813204447022887917739590208274399622859796426436096196569229282829779888029568557068121585854303725097897466394107062763230434660680483405170968440479182618210265147756851168776859144848890860959747387703999813342907214866314789146666363728336017009666414121362732979620860699102190400844676663482326644737510591624235594807593254966899329543280572661865061944145145743787956384302168022095047052655820336042701494790690067141090061684638237311231159028229453777596764315868698468183268341610959257800350635747012202486952273850995480805864967012498662100725226764934505988924248304286121558118719475631113707814786676639062050400456387976004234224578921668507555357608215166149696867318967303239635362999213738803041042699990937337047485714128317500610113068627751642881961638434583744842004141457308240260336336977672748838100368207258475661584952255253594503977664667708889794035849544069556426350576899329757662451073179150328849565330925313567748557002778832214911527719824753144521823089874341841370608257653032105998419151159745026412022815220861846551513852088120752550425244241636788551913498481339696597740312386565247600431752455585108922986439428777861169788620324982771752223274703194557035912192155632735885397746466056482427304065871929632571165322344848721450719526890516690283890148726446341744792199292500178059384041904159884763441115312605210596805139442263124216655359443597629973961022594758930778707865913710402716352151279739659437111916731617234151703583288152003560414262213600312597571270875221962769427752377101211457405005723162942591705476979938146087207312270290252768242152608962572145509756777882249614880871846950641902188237657198975313709960593692285862820654247986617937141479000468203575752646072882503948472904063473798125134794446688700174148962339993654444139108187969736844899902277111946359174930242752521573137011682439135334347295088042215495467513517546166017929651631209726743453402184706288322113615237572573717322641091775904291287136352684554898833055153563272164418741975784805143985058002358969116893816845176450165463382014156946799399710710594171572227683922090853402928867345489832688124234297148004777834218722791798566495663296772866344040040893654832789033006033884095445163483207623577343368340100957899471700395095753646002716381400259131647101987008214281832105376115745396766895456342682827863627213031632474036637452061296264405625335128115745262632075935722053246293284445938841350248540611900122888087072041164614990922437271483431767190274576974106714340415050150417698956594142818779011568207226162666735163951455457068830006957835679474936324769396151918107803631362561611940307832006804891025142401111175604958713183126232714477042989538098612954674386994016645083250985765925487390456971955243251866870677719705180239176151419861978142589457787669603998288413088489763050298578665971916202577842234531161135694775151023413248915476235626058704881541068594985280677693767826228511282504103983529308143166557754531516738542038290016702202018463692375619776304971137931690894968312816272269979199609417532834191961770623141873967300213296296886623727598675318250873897646178729284559987179855093906029790874643874527240653279809656499088287450942594440443487181921953581013484103363258554900786745551283360388853933474960327738491339465938478093120490216809178350029855726964236593513809348750027520238019891489282901823893465007804732129991527731503595678804598948210636407729744606022799754339150126925540190568674926972997184162949836987216871264634857097882183569622498866802719029118205803713372322693138144196636509828288986200710997812438728093142849402693115834537942591280830048141711721721875271494480312662384115100886898359649267696632870799257513425546597256261225059976268472322647950569314354311829883143003397319310056915109928013836029448576008225268241803475473887155256169652851525585283623983575101765589039321239430060852953716716158554064735309434087300265743358069308304520915537616613450239620123684581793288652823918697330620781237825387531895042671550247395410303407790845917389352122181809045503878525053533365079292008320421338222819180493825178098192405072116889254321696960050481619847123141505987717273545763734817164601063189949399145382256554228883133013899820057299956699931886461567834515237005259042563933689160169943635511372840492095518229924227708144836600724820993811853951740262006505846485594520869546865408355873499413680096684903801282514417745896871624906192396631079128433927827273054251088153394254539117686788130489299993731754811560866198298112090948258078010414584404659198446105392933418294552002821834221485226626431119356684308975036128599346166704166280461652937387117925526605706361179558799530543566349277953310335314584340096592349250688643071619068000615902552536816970646672461565081852022218052226868630005195514350845447932515187075325889271733950964174464343762174356499192309103068035939266573002054206921210267906464406207048822152412985822813850457540851730584777651665709696491549635634201136134063810424572089740449844340155701059835067392211989552963239361569478895803654578646209002728863277161989802391937115084159573780039158034296343386401944236767494020194053851930726440783175799884845872899230335460179651614445365190606011513604326593507449850824897486955261126766873632909605029602018542370654311758538749427442095239930227883612391149026485461765296910050065868115935457158009271331741633118027608754489199111090842330350168717543539323064304820516849977656351027140850166416530061858472622982977579509986338067646506314496502538279498890371928643369961315825964736490991641623886510295265589494223128256484972079898729859386659811229627589398145739871558473563077052706181266385380519974892589324669725486990901801213235911182375997918394461731844438778414750396516630724977854758180560716435128179312925281114275279704543106021588391318416874006092298319665740701265825596875400472876964628432455561397610281193026758318024753029182212646517798699237806899894322002869888634487186833997845836282366113505670676842901808647042891250938550316313062491465111365782352732221786197980248983565190553333491496522819410298259497536010496904609730722554471161470704215329881042456512151776067647210677933661747684020039919721994389166224768266390087206909306803736610900426472995113844652724683917047880103847545633760709243886546386260439560926158877330291947308095899966798556618800331932973597996499735934173054708741916262082295964578627086213632097600574535542865287271280161465602833315778272743293210513740114616746487431574506646171073712949154077565458632749307921643289159998360533914442925793531500117205157902008997506607496359312733875743376827168503185829270662902639312629163111742392753274678609379297259219406735771406347116959155715710116958939794233633165876036370766807691800982386336628936696041686905222431494098114389437768770326861321029119013364828115927605783196643876506168440797508456800691454926832444815095685124974051943521178592204038295201753608455302975238323742277885746756810016220215559309387471150897515300220468291027128851776312491697181977739123589640905346185659384666052918391341095792335976985623040534194025734004090958900484493342210989605501719654439721905481346276389478082076736324312647620690875436208214107433073181565654541143802266746107394326379845979598626454053953969851386684308528004331748857770435573503604249591597745577455055954432178174010700970796689574379126005130938015528820753901667088131064828849691427358253092789615646718644424012259530266794214888195839998514474762449380539731050202633164170455800025631558647627917545779307364963041946626312271835248172034482889201844502145247438725090262846147617433997286055322498711849816380057642739646762389473374816724368482627899857317905286446773088915387820175889924801355413405484844332270833471782931251941233856166684756158719779640113162159040931047844071954854230926983503899479634772269223839700031517562503385301321622474851561416430802959502651774838929368197698695645661836803115116363625182115351140208355954343150357736226859884426349229311980151088335915603537044400690528875852953331333812709890671018137947689463491546199077609369545968648051754392321187227684476068762776416792861974962826478583750101808233064580620977695549152298279743673335549709598346456009455818039648127030920111954983476927093062668250219131009299231160177244376577783960174151837125005536671704983824552014735170419502288199577186939283863879176288825785938418766456186068053081914506696642090198383587777930669219393894665741808512836376760751065918327115792438904413234982673298699301319451429293034330400284917053248662499968812241534332320182058170736657098415087340735647521552389269335643100124376132226770126991400012951924336998305898991048964096679490891438283984966484478945320334434761832228938110313957785874770900300174175083024541725095602254213094813038102219416834354079889119166778129961730240411159500737890625621488946886643928016440443256958531225261450649185311237511144395948448988396846495446688932039591492946869713366645666263096243278431202378858496460896976405012276059721914840596657998911223163434422593049077474651262846702233990423613424247344175032022206214213676763941356788268509856618498909074370019989095939093500721708978888404723910383926536444147726124386008633649572476058936238984210569332873908590836233019552275351304313670970807199472142070158550642780110446370498628181397505509982559629306291528697880884554693762630865910069020521503271246371725779394789635198155870095576831021235064651116701085525930915764188707472091107545344422663545167900308103460330781210327429860533057142365242442311429916502538581106423061593347500921738315771474762503073232727608866105218610791064450302619441722163076294632294989801231068789773114533294027594526363820779831177542872154946999690098564206878485898239857375070297843255024179882463829792511686019546822946873554852227616888056612284716544991771129137158141416841098320843589353922539741644439571513172977017217746755252542624115336345516751185602779693044559338351361659897799506394390219553219706338365407684138664021955992097087192553199093139495887308588057762713826959292648453718281069655814009660392397502778943273615959987279456067240280517633881773984189198731775902852357009822036517290886638459406839230387080756156058604026145845917752030365100869892505198360332040343112577489853996578795345016823347870728420931520090155923598380773700001447898437019146198051358066467465821104027766625215568430929027051974462366318529754219827743712962619152976243976466844475958621952687701526488463439795383407448260017680460599572548609174741097162255740958443165058529093824990353567865005421146376777815768662870154399646276721682336203468309148062304963318466699956146227487700993887116849240891187563860206217400116543407524224881469342064569786313971868323011592518686305635620029848770653651963657093319484879092361171195559721890151680140321638938460808154757234951387742296133924083165575138053370224518334811600737180965917396017233665077706779672977578044140737631096846849509044570318750725357064697778969801247500392206184695803325898333927949383938807608836357111507829911234720351257684603676418590783286117492039083467736810207972308712278558344838924392774841097624519267416943930284059612931625446019724430730753292521765746839803956160417045395247937236578948343181947658815270615360860300062897744240761532057557071599246081621851987301001085535628587329370701882406636877527876653559226838185748802099455850542397598657853593209444612929330519586226000714009956814906465463235852191483059014896733356823628227310196553423250842780428175800548809999907053396336411248898785139757446490124050212997919819734164969738996584760791976523485241739714107315985100159601196153723815938646371819667478016791533201334739403453533795744542860277357495649441208836373948371129266870621628238789567788118124029799673483030978586086196813847470234714840837447614799099035535013706973069381929759008096692032074965636304817032917106653153586535942593283258419697410950654899635248328187814205458985335874278870680518848875309530819725239623035819348267928280038550290860450749476255091722669006980794262573763641712528186690207263078326070690931139247503118314860949677924331524664368770737888966048642495571377368174109788178881701764067465064009134452543236213287139449432799401797958680591018200062037392747398916188040039759857872589710006356950130362284942308654292229798570791209331407932347395809727646381096337261855838340595489870362772196357549833974429489761717015003392705137989822687176933800140625475510638101742608094560357616558730154620663839780299048274728996947771497672322790243883256664057693251016552911856195634134039611122691374065904323357066589876487438371968552303288580848984316738207189575133498469738422335450391740455028076423728362833043297684779625130579526858577522487989887277433925001529298080841147987804139559060302080846677475333105794089361122824935482706591531792106033060888774120378141661529369834127878439358313904359407895598660646198279187789654676522829448137388468353777678903166153060019340278664352966246911966508979246165163246137844576883995257294087752739813529655230641527670692058207603859404452077631994957393548823032557448228403309184635278573777309300270219654997420941004880224548923621508519888320064241514379787143968124019663043594366277041965830724906095580210708838012721795438172831532866054762571407980614328429482106628139937880297396321904617829138725350527383133326377029024005150180349841213661838858076384126756862578422212011733536747505324568338893713735839994960158487255358937957653981528185896246211770212161386678388814225432092749419650105087638419077590586828816514165931460905166079813002039399674582180514301600737938754114345834987993127211339874840356964013194807354721191938438196037525480182631843846958150320168074265912348175970497449645070682276447804879147120417968654138700627283370932219284466143377490657951351848613566453107597763354541814899982203310866538822885015412761718739407626731430568231815008151815321651685493173409409092571300459557742108452708513090868445732525276647872729286101233525831837198260718909230202634037588343741301128472454209513587802374493807279071832674405977351962904292357492169608961343569244361324877329499519342117763377579922941892661062164873223275311035063662887411463588888066618699463223609729862079439332307100626995158139295735408387432032477748249187406681021838895811197300830911711510182610869571058460864514071157544808738431134138415295405898825864722055889919530718333980720533257358048551663541037791506199913256110085722266413133481757475237270056511530340985320093500157476678727663405755150989116017534902013863861174856509649830394939349204610894850567416547051988983748029545017162559133655843759844694619142430710246807057236878607134428586710639561210073546089942584119422766426529034523385359909441839162299200740856711711048482225174922738093094399313241625001730969369381126392108971757195503168345751516504018607369536973274960232387477779466921275805948633019042257527133001721252736923415619169905479478658219260093976814214682335513587313131075627836973675058734764371031231349012370105989531960830063971894338455862694437697315740013035716269713358459265539437437215641790790401496524683257698787849875917205662165175290920865810447384206796059945573540602667795030939311397439141742137472709101441382740389343844909717156316726722375313610035304693645239359708910484731536161915078506576390859302455832622054214649354106682389216473376721963333689967552873692967790517552742186137047565233417424221541425456901274135288311970666000531091186196258846783155188747404542478954195664200072613456142262134540640006975725796083579070150012343551446653821901441560771869513860649752672875989123939439945611294570825518714319824802369278075252218404403595050034390560587885115232067187078989461922331872890994216372586679382686351522321285544143220849102133656740723934216846215425435699755763227372740689430738590158062185210601932640164966872002538787570619405767198445992989452432664864515984392853572346337364344120840307202900029888631919947098083245676214680160267692379614272421868279736808384061392721859737645611825211937229452225061063480645536372519683185516065847996035961687739217444639694075375556075259601015474268397777350195677216018447609315090230086746873176200428561714946449992634754841753944811363861683782627753711701898177126707523697598217761438414252004079361968871447327268646223737741025460114199258464556104879474602422178769347713779241604015941133917794455118015213993445554607068019644197385377976318411509360700901901980703492854461539777112543155187052470721088740086705645657933832989990182567280593899946967267009206394891927206949316186171055543462749562662029670534867537171776240570738454515056781760863137763714555780201827818397077993882340641147105451230934433601674628770696453386083119908378356744264367518784900502014537304920670163524068461605716900581494794530713474913095866823977892826152573430786277089574931379995584306715142279979577632457848223359945964488760676249420029675538472753744184997636588114622786436555232375097445257256092200588983757578168242141559753173471423438791188475055099068149027758837162954180685644952371359116285587818755972246035814035323686770788003852701909170051607848649488336659196291404017288499666128158357325130476759451416023382757392668450033880658140852887586585785613184902463054877609401134750226632596235095580071978442049316466707382149734464115269339836191609988980216844229205409671115001392936314447047334525939328760568991545747431620394562538605570804603597244954855472099389665236151649075518548702422377906578778410634533730451270527963821272061518490798856944723626857381871398418127700583796514477706461633474269758059290234007122616827688570180297390080761647545130881202590013054409654360249138547703699414019673945698218573706801661897648436881459329836253492368833652920816892739514377718301108611021602625638752285665229394109489966135408621969989299108697474080400978635335013434185549169818620118322281966178772968250796040496966810250695755184709332246264445409940838427171361013218254600440860162374474058376177166703107397962457190279750620453771198375456284129725425125242282587581519741120438254379522118553192409873839854514845276352321496641575453888819703514386642304118910263197690608830069172694072816211372712173033109910714746660843721153993620145579183089268527714285099822251944844933454256288709679728148272634497317074069929603763820305491255073930646410726370305699207530889288120678104135647214311825488755882742852654028894288584941103738989714179476687502066575265519104458339183285284999395134997556292001824778453046980619437819298723052713559561857437479450332905540959819168425068523854617063870123166631812946700905233678376800356668267892527773775038589868823502233157505763466749098601305315687409005696880742814479149057209177250464910552671285816658038103695812698386433112462827154306511435650738386166578911756793116378595147165054894409754194294094065025599129073525307190028169105250694551454509433394794447802604784439206027551158216943231655439957315280199422813753479205911435325439719849473803227961158477474582378954600728896319072597165018943168348737371610161359556666567944177269292384112303933306459052965410475442410051560275093141808147599917253825280521883787941862347663169239757096765645928736533516774035643204580292570552626169566367717776262869253126744806551798882064636746512656641635148942116715680018047119256752168601431830136764303147263881847137149554304063788490095827440003823583596038345035073100580159347872339058325294464097695732957526734388116641420838936395122684538682191137383511906543880689565121416021946105002480484699682738795353135113557935335268147141096137638652444112398553033288166397334743181087516809895759319462827413642081814570962310640084407648368894941823972217258715643237785149597319334410032148833992186508491858452958747897482270320515387005660392659722983873484118229291613222684410712556801634078314590145283979298842110708193094564921318150770876815447594416656376941501728596339356451475071021246387627687859263716584779036760361722563919208026074077763602746170141339601503892611768808498488419570125777566395098190188368358281412616451385838249954599013979983929113378622329698065554947524959700422545241292751189094838428977356714232987082218595872341937989134138838019686363549819914928192822987319291440652118593472451916297680121072626445430618191201043997151382009235393883396462729710569572350864467654748189115117692712261828037583386192550519503697915221244828079500182249917520657000283343220064969032540021444184197269592664811277740154043901471655912995806689817658727827346375217928730022943442247105216291223867797947956617015447303355122850432667204840611214702010699901464211224833569025013192532358589331461011274480757493978668010373333443649928301886321274492961290701554633159989050413137539839750535947580954980499773335465960361293322539501140666575412390987487683451023547556410445063484812212490445093237217536828095293962311667574995746981688887357371128531620194325371361879671653187927230492632537667462477981822313567317126021148186377356210400127455336099912089573588109868310839334988260431320188283240491227372504724368487040271124787146553189542502452419233792875493019717052707237749545611794633248580973331380987430195065572974492057316004613242617308324206376150844286912492206235508562809091041197839647377509874286372404163387133692600284600647588531732500632781344877887783085450783445940262060417588399588683114843261449970545151614432670524504459888802611676440549851379686491476631546864145324142298828150398750316130681344481424076611176530842093157155617325268130649624319607011182884442346900796756281388584508327232816338001418258955358566715737362667298448265047832768117047414377658751138561706580315841961010932194498752465101767777616319042934417561282478088664111704951725797645252792684383808649612889270450988994817764631135997842495258179469603675558820708964648522074335194020776622214169836174035246480504523058607794888999882756769093704885004460115765761667987471648760514240331649140726925226368873578410439536090015828269782856414437154343215181583742037511240668252108977318973334418821298179119173670042480535341145058670333884342263341849565871137694242806159857171666753947655014877181527218345727004239521193357089848030957624609475586400083450078858900238783466027028863454356192671018398233498976309176512104340224718017388969749698986725434022809872123314506865315974260256789089580880946852019409613806732947216132187699635632249798006130033532843992554165904658213002381882053670135678544227001721741534972350560236049193726164154325782452455336015371898733709846147178541403755698013987541939290563512251019493107805391639811594265190591837790704865705232818123574988573398093050686474733784135123701720797445792661210453761360017872991383235359225925015453712024517301905892635731475969841955705686732093308256271283752366374438725730572802861460330732845401789927199635073283527897789980098479638775057183879791402533247307327172725894667134436181755233620762915110659294371472284804895788406570263620377847588527098089013562712912472671072078148927819601526730478346685656453641743185776268382163765231274961781431909398151203246504516415010445261252418062047035812940019514965932098524918485375820110340343037185145062005638823056971782250435601573819621720354098375664393657060981022894187653675592479162656479313312775507940129219169724243454402151218595615481293229398570737164178639445900149349113886075682681317270096810836453504620448118043701154918493121215034298255633310130260271024468907933139126311043198245441187724226010599521099187380021404251389472033044130247983658513936830359319978257381314753254081441610775952624376391313990084792497020271276901655804996888798755853381662090574999819745320394964330030248429211054771618353944723744186053264673958651550274908505659699415704621863513660393190120886904025754261877933430461689967829650018844493747674037542956657096168466491578518719532666148083325602964113620959981637282103842048335460543915529693805201373287791024640534126404164445195757130060605281728037126655127836193344497137748436558197516053819325922327539906736607032699729994267859900490294634421144811182935038502393543612790803259424496823396437947043623821495941769232823854451268210655842846612622504914571039596222971138768468636986283697140125153159160885807538986703197043603936524115638387829503965203822458195275096915790333940030717670498543476027319091389760320807049396990362590636844369734120351716138384669520323798103622214783435461336615426979519727962190631592807278967003088194461244892120428775946668880417304025387309046692782704609845732758551379747420973524161721783597960523167007668286686977999277461843858196679030269074501804323010195673905127724944567242999058572401580831828452676032648660953325990256361426228320853023642836640862078575587872234574841304397108460288815328931041446249843898503533659455423925130917541480896720414291930819985091550446419124108230915495423337967453621868219636401859008026162309507814891514699701311523736720166976350655414759093318154879784988076438362716714807359003428132846213765209237296409581855624540355890225544582752131485684641504962427710248169554628191240886454396032334788015397580065719490370835276972381359665805055696397007520323267747110946408623853293328529953885431532095893578902703943876472350888949859058980020351560839309783381593437581557540489517226037138058538776738160049311329447205918858422387608015581489974650286679890464945995783434788248135470997662086261639202924377707141526482321391720466593382328260814754375302817087687462521261765802472473809871810377890217463083432482694673274634024317597053138117315777611244745354522357952053873282011629762584557021632170806709389499291994748174791900456296950331343856013216872486363000254881460340452228192428775171447459815661400632664317614518494775156291641718365044059117926593515060791179445404705190315259510190615247356357636205518228314884409960711133879148366817011691770454726882544447278695868761630637081635908732309143309111419970976753521346319703697338506444086164853927662033496927335937206220733504622019010905343229326500384933606606677032328633293203632005580393645903439355626116583511200072635233569392334586394319769780979966710060097873586587383201619870479158812605428200374972583582562421311801067064361220107170074640488901764954505268975128980344247078276945016976975779567636659553965790780099426572987933608687457837807201162372972151273142681299586915343983550350233645925172525776135198624303641095061510074853034778681116897588744358054679421854718780704254314313824251191705992109890742126905363982208355251870865775761212815854640552295578522484105757084495978336801446267757610029893646326566874706250919897186048113731101138163927402375995922071111247212146042948641602444729577603399209854064437047064405803383705750829499750888097544402249240433963758084568439523643485845767492528199029523711996146642771606825501751107420203145234299138414588556760537271327656140375281083297035206423057470859869267409407114368160065618306946887482870873289845560869943548018268833250961171862602323803018972745851120758502136265241056358010560461635138238611988952719513501262190580443129298427389616655015179198316688727812323077027118748632133717045925870325400320889378119438194673825214119868725822740194677439601771642234124767867706453161061514916005489980125350038668917230594732848962109751254571534954686419685273304377887758458835146340685956850992519798570500837820701756687858149434829387212538349094708424710817929470234533622084357350724396764843004020725989634849470813018956128003383734137503745519236704432309301895760566362038153134810023350663337861643829830163049335925234082040384257744804630396147547682386738629482930201981349633745833426328493776980857775834292244351660339805387599016281522337955032365421071517498311785464665821576757997084775032633113831332278537766597931061652485246175662638929958344843924436139159802418268159673712275482622597770733838285644336536215570171186725512061885275244782874805221413768380589743279942167362763151558879828586434437697869900375101036345592812214594388220315784046825304532802621108551439860142669379264505485792617002282637374016876592934207736365143902326039706092852607155774194371416513331229669741603879943246349143018414482981397139918040654535346148997815402097614457510956185797459609381616710540013784920358607074413667884080920694530604539811272916573146000477138942198583674952509327645968802159868861793647789923869715193368667576684553020699558072717020266329286110640175253142881261085445828319311040749811934796765221553395581026097572052905466374307106152402477426133171475525794834296171777227725537798486396792610765088588340894725376775136570152171319304965565221369963457423440123701035514945619899450820539149189662505068399941718330572662092701676343793017979273538751653390426200288496744819757135008058481616153247203357240747415648237974349625664078917874064348657675844570456918708149159877973310572288858419366560183866791520970206994166381350552779800388237094980086881178166718852800256151566082348598623714949679045718251801473708185731912456322326263900563500407403352546697813779548265367676932973765243549347089020163001414307480812673564956442717609604873126781435044666899712278272307456393949462241601222515113178085926800001103397561994898626919376888766982691495173706468737705743873817425652741681693111334510304059104105815683383553758277478493712873845520443591440180096691271414936396680379656776110188162907104541383815588066528078337274319141050631610740952724445182468235864324327662099451673491655158121338763473242912983686630717067249284314232331132614281523728222287304809176863467542856438282675140244191368581518793423460825810686387546680590714617439187462588860238792987446240874682666660064092836688738181894884720922763847923655131353808812251877546107199832847454338578840864777152804433369611591786812958746966457199050101110914504036532357674723784401651662839089920239150250770063143859094272835676788073129820841303029142454690209035436221978825795781229641417382854821706090542460577237708878852087374489991451813445348454830683194201428918133412015431425911864496478625399021046459316762133813302249490161663638097625285783547535727053118478686622737934112314446858244536263441060096628050597175506722723495259899984837297360845821344015975917209180907757609058856812170357126173326060149588524798977204436241942366479773851919585048395801111550301294885404088318342069534040513363431321885320684536241471373606966901327555286769122606666025681467068409116384839512670648571480595918782188325573274285812626585021969180588832287020635836371682942990149461085530353320010756744289631975140455499477391080297674958175292519576643230970816354137326122721512264859211072760705667175641476232950019997852143439536182284720857675869644438978191270782349457050523552369506338544622859682975502626075214885065288077031258728145066960164564132639821390975596414202113604195875148660334406586498125552216763625405127539295365581460646753880367725308976682777713641156230540057220924950450980911800718879959917609653727308644407197897934236910478857190752371777952393929236927835784680220001747509500136016399250472818766863427921819016094750236967549152294142147654141855006396276571190443528089025370639369653813882144817439140245069307458745326825482740414089781709400978761701157796459847485250959235263326484675140609514610936467586383213887377185540067986457540371502547466723918378873466842621184292086169990442619417424578130002348456375022285998681418308883619787100467572770553918907150333004370317855981334403280611055315582110485638897801795261253744541535745460764367494635640141163108184793016265969805887723171031269621173565541976130500839390195391479218487177121983871720075224177250272443469947580767176253302431765871077657877915096618594064574315214258290997431218021902027036470960106684882271965878230540064558260854806227288010453273489015467038166614892483476397596141784474120798046842508927060899842547415577563413396483316903596601323283511754580624800719166495915317738104317021953717270433330779275461674355497730311239483196681739900092103313683350356859428194213866077932097393665886247935242180051826656472380452653327795439352632923159859104700978114263641857881099473142841356248228303363044685197993483281008422221667331350898468041116787752899003566518440631361428918523248239525183554509259178541651896523249810460468688044812672602929111597588286344390275987880422131126759465876010983505016167634006743245296531231733329340623593561040213028473640599436894035623275381930970218550819196347202904408597610788871510885702729256417414774589130626097540508150029805767694994171519430924593650121419417424561748203041499263072394454921139371406349448994222895092432003589186919168292479490034622845974773879267200399045408836024997426228691492346096440036374511734202125776654251401321665731411214591148221391410754829898859417342892174196910622584374425342258444641236035711360749523050433946082282931297311149975431679774877963023465041539204851456708065732347934188339543308059955021009812538397674949939658480720525323940666873556898239433301454264127189637185355344887147806862542120069717117970820219557556002072739631141133763978673521230841153333695104008846261586490137856606085991432965913489597632247575384982680116963813424416971530700936626586914064255025502235212170695648964385024339391411374493923179303306609228016676306647344540863706718491167082724184228755107022378076754189137248968332421658692889114675631989356503591066415555995600039022193361424703775815431070321254044458985717688248139833635304841044333948300580739078533658752062963461659472560984391000814742938502008210299472371975275764406093665785284124985941029668085106756951841222521264776684398716464437020864651622521504111641076607825063732459280806347624842406933370800838517169755278348963433577563007308329975582140682520032624186047179827945942141070185407540772247167176594155403073126189789885075712851680435208340864217309450778948125611631228711747840531056138173657864780336563717334749581610804629559973733338945832502570369754798456295136696209946851461673663794947891155063893721266652248469378203617220706899882807304414998106835276007475055936439162632624421605771231766828213969663243751964024284279724198049764022415115984714826884679854553331102372983732924951118435092025263332887434653570059889880271527853788218593075165054888603063072503981146287938832565507695822521354072479686867152000380466419100553688868274296614566168432205702569382257837684458032830439483385006485684563187478415153977627214213371637314997116786853520218774125334266295688233847802642122123130244558255890449605249003079554498923129386530998727289766938135692229202558504759691030560434223844071444441504345861670882994963860360892502273269634254932550475898154866301346956749381148448152213156818279577714567427722565815450087001508954031484970332140439614165577400158571462669383650802047979918050033470487672450317174230452459268498950977011450505529872601650294695375826208579698356747507037905830541935351345966853924978644176975262289946352502907586366895137630709755408502589694128396174825034422530952323972645732230760432337811296193100449891465033003566841155316586033530237333043891659709050251765527926886127284602016473552148631405413640965921106536712510724974885065963000785006318071262663677354083424469793848620763964045264852750076690913638566400894278086540779214080786974344520665908195613875023026721485565898538174301982872532291440696520349849148765056149172843368570439018063683308748172074906693042870108257535244756606400578204531230516448756340682714565604796043327293833039027148182160263298543507448273125886506761534280625788287485912553448417443061992669313294959882770634374234405505750114818520410163714043513574420721120155147015348343693896354466169506391961652468261833066938805121775669899529500648516887077138767696403393037299491489670172453940550466747458781060842040478529188015353331283481806861637681051803810307810075381820011838397284948276699262894592509790976464308099752369627961553748829836804861903386403026859460382189229558650601925562781453118594141467141957917410681703118557209502187293532548949512552058990724772321905207362330271021631250969064899366197279989143296780795346405731360420003075661273511318660627725351014328943987806648840921877599941633902317606084045907999293160845824702187627831128514273521506763481300397342194220706499778980531191768249641313287102304752708816129266750527223683426577555948874336011273739454332239100430729466026717415483059066917164695406591030394973705805555058887330339448145856159135817063040544977644294846170780555111785177625630606516529889019796985965875329539279952939117455805399804026481618538696293519479758356528015097475640755177772345081966970726145269806958319224578529694696318524609481168690233101383492410083504647062074258313540334675607600045192011075130019739245653075506296729623731663371188997518033327275835106121014000816280750685842878719566925578245069479960360984286716625866863919103116500369578017795666681451586874971630590532203178080627825080471457878171569852248579335753456504379690587651089924467142669987471617098595732015791767369090164075759428897481276889014392363484230032230003956701010547176929094462407218386109061356678401816992913118185929977406815703152995670206809880444965545851049582458263750442427286597688071143421342137995224445351283317983976459171925863582488352585675587422455841041883699531922928009349149830642508406979940889880838858727373351893272175159096122927673593483744987445373026552009659688890220750148425655331104190306289052888388202458511084305874827125319632280185265464127155499997169540246016363315134378376196835772125214498767792976264806001304548882761380910022823473621966156269545081760600962573451675270775334238485201669645919475801141177023029363380681547755477983832349496340296387785456012770854225014591346224879304961296369165173425464425586602895504067593339558363210224954676438572307719410992079143354219121772885082688128986990408304392106756597502560771435481688445906195867822477961675953038491536204979757919870988450347401942663171462557479050922860265941377341669425119627220107543873474416037550252526271528410223981905115770539022817758191711646320845276653387342468392610691851727718400409644118989006249095808539913604204201750037157576044295949700367102750238293753858827294551549258141768743269525573208064970626296954918755419571658065315409556696274230027585796947039889084128854451867287669296149052060023984771457786814091374368823796447787888265494078082753992650011770111267283293266750342540818084170235828941862053989120239116479808356551117019694461138921353714394867157900037763574156105719711274930387422441745605457579848319280868509109627507880693301071156250298638987092463793010793441430513601549558184548572625722529961556855776198261466409021844470217555769019029951509123414253193566776311657746606314997926427826133646319080359495450000946411198892052117407698859377628836415470709545336511130523206599206810704599032967832533694101723732140411532390641290628911481543664292960065652963362477608802080489877272776288255589590962554186205367209493115151094373823280498104857344713842605526823178165505826707615517811989281859162835714599412570519496793983334515590127832761482797254671859881379002604096030806026638080209150592974833319614842003389844183060123749520355170919967499991459217082451413755059727952386576372283045164004697849597866655704180402008414038673896081566935902373318951017513195692210377962319409083809731703366843167632143310410441553707479712137598104093368491787347204952464960791864082318904376716115350314894600914583055191718408503902355984161412796533990983452868422529844582913335652639920595729391399473204972111049356171741831502460377138813908897098768099951136146315945018046686329212416487147141800444779045710166038836300056731792853154681201197074021414908431679088777439867809170169949753006532085282641331422973515146907848814696773793877968554102629568895956954037069228383589402413741128816741681631846356313639595858059812546697758070542170066660444541482079366648588173078850757206574592828484530458180044450579879710348366010979485918524624738133004595539633338014500773900259593314738676458949145198037009176459763691214897659780432776605530464676681940062080954460753638582916169008294620053104481293756820793564794862920536865154972714784400966172218186254683080328910515878434350107561768229462780642418211386614369987870523531712843679686029352299704944395521698630412716575167532057294439272095499116040255829286977167433722780584153127551307162070347049865537272886507042680277767333942647372539966093537843259376550453441096235492467250601051293067386956193487169006659480886000484284750032283407242535298027905677099409774344230550813125989230770372569599132330480067484799590199210341428568423352108940432264303723000821117144870168347519147140437003876594927156640794334983712999312068206456555314799168094522274059752421900743028239913083055112048148493910830238163652939666382120540650189800614390356550452049901572366147572059902835492091912778365232549818470917512823246476525599198894693377907376319504526158351336180190322121152004573116001814406442861129306732664582675343494845281408816974743774593897916072163532323913086479052992560281563943915877321662406609934794781160976716461344983718148555425260499967295290330986932368600690997210279558391661397135247678433250870394264008627608606005451536484732535596023985111259322209533538260421262648999642060058763918485154323590189558114571590629142736036426098353946224558655845851489211103790797133556948020997188425480487504734082250072401538757629005777059731057623014132847485579302050735048565399899758817925507770368077201900059520765672986565703348822723211092638745035212547138944820296817318633217042494765332040778124507374816549154685540806421424199123807280532744584163753635655268275615320228223491947719953094160312634405515786369552454699675254349702437218330941193788082693537498394598491299045479598237211976892182291600765791106175983979621356604923219122071845346639459150878947381917540834576080264883850808915274247382908636749428876980739320977682539357150964014404761534702818055342194516086719324443277582410154040948976838016165624210599261439848160505937146497859404680948885707746970770151001881151685202004805740926581875529881742119653369010511159414105761743838522772026224631633452022281548402241257887803737239561381634112671101306969203412481051496087076982821332105800693659689123699839322091176257007909133116502000375409056856811970209259640426699744863370239203819114181278866050957333176974822804713279521388394155281043351583781206939930490027954564620364582056506667926550396355654958782453139304570377077385559292158049307186372857606254048092975874716143868412626774012644773615295233421637825029177135366739915483185978848786306136101016722487148780981741854201945307333409388718576615800581390741084383122283632402189330863634950614391534361454013265446025828742858252235311086387543734476129452661001823077491490810228017977796987353499073616213911673349298705430849743280792479628519913776114442959844328172720645063287544459643501140498843007593309869214573662482172189368550774620873165323079422525942521777641310990413820981737654175595195888372310885973080589692113194428034907110812220214234943634146624966802887298898523212684479835725534116578417007373480809201136235089930568306612854227445345089360475517884302935061274364738527792579759956946262496552381154996744032651520860733085021585534568935360609516495714145015002341952246577715773961920849444582977363669792040759985900588170004971736113372853700942993720975361084884527989746823889294811538940488914618914568139414674406435289747538707852139233073269924128102984854699058079591804844775789725905904075284517571367820851542043570934158002225771773435755921478291558812713829618905423033607680185699562508410284530650392033326372214236041721003857222319550732628531514307131324762920181055765365856015902769034947800740257029755057592272681011479787981467571070549853518295120657225981474845322357846474565887376668472526861099138111294134448801586115743395214994126234627821442427295294755617416797479011866041364500966415513500177996208658024184740452432584972663900341113993563342366984413965637132939581981030400014180931940622110585729646127077796552777544765954228239352342787601843954429519623306500191383851341283412228791732922873482038696822481640202357158777363393783097512518268506751487880206487275825132822892817138409705432506482289956454746019195263822595446241199588035574924374446266386085788715316753616562955011036477503911748393364064023917703299780687779244785927792841114400144889633753106130457469323120913957367233269562529245998582026289882438514610788629817389396813828204118139361091102057092860851787860172286099430738266912968504434381981051828083060077284752712478669359082125309381382903820713105806568423746068426962882713334363282819553786236670278282231562839461849726269120057194247006942730720996743389737726451362960467214393480764060172900098077149857949315558315738590529169782539970498567561035142474676630563538551195681729434456913853519763910091804840445400564596558981899106214492999474312661908810950998518623057570579577295374291107622187278457498968017172407560638035104499127081337106899885854042754968153427055929485271702964495964287248587827731778332651772186304557158891642930887552194669245953357985902807559351897184983321986796815974562991423747540868598129579016530005197962323230052027636355586987733555841231590553860392668945266773359996971790648556859412932036276714566120747028905818988084566434216608918503075598917950908673796767105943430538351461285163176126379532244810967519671894927498752925035518174747818289342333244246619475584785359005148089041961285636026398219438672677520230523703197565623217040115965672898101064946830137751837631518919092429655057456949244411154348028084123395296390031373728720728811226873359977425275370150402609072703368869987447665353730575480720299301822982986195873192605561291382983987429110313880095491561618393846093051602028235490240411170475986557659741307158701711625521004582047701593477651384489471227147424155905012586030899357164090542313995286851356430235950227079600114269972591174061161097803052702389517028636746830321967702416357607892681119894246649858936183969875684272843248549254025155452754351463982211318542965958764858944651745517877436351393800941948995910403045737740914754329743951064010576692210090777128483476185454746201764813572252844296994916469171558875583236225738318272167514050121878169523002710278322645955453311047932576660730337763552871896470186607129627675234379897303003302850936758864890404194127268645501156517531209253309678248457773887524379805079294969098825114679727348702866043028894154037798579585426060505578960462008216965667641760220147877703441407561970431403708463667299296947257508050624301967154320650214741238253239414952060108639003016084931560750967441363078868812229961237624617917293412729619272428075829505973780354869031556806964057345580354667036736222488658950767458255476489262884786633498144396553573673769698550441079212693378458354994205995945795818542157107173617695992582599968434577721072596806217594912243685158202658162430157413498471141218780293541202209151622099324559735718643146121990904439118984673506031392322145486450214221037815155830896279684268406013997898872130558352365324252729511130580348635833430558173873736862076153863012395490568977033765801252623780249734070180995031629748622456950739682582827403521452298068863183833462260752102751103943411386548536997569172303569243347353863193376787113232126270448508217046748394251642224888699215444185462850177184180789923057977939265580736982570660236899490818722741292580043876755795718409274730404826148310334496111876934880030791664261115682577404255750924138421367411399214571741648714046294294041084572963413879356689561754843039650495943825984142061994951934719788232744769603589625612982365933165268414216676251555696930077925680454860637969634978445241108725695752780406048408366796570540008208280277083245933512757934297454601213324000340545783294509664328057721631969692166102756788130220295379233906615615924315284183254306981754504147468574047861122914016153781847011893805829730813864857266584706072743769369862857243776523725839083016088114666166515637789295983269731723729003080113276636453626079867536304409730564629290293595816376798916984267329814250297090462216485466258888203383347072215721868102733213061400501370548438386710264562785544963566882613952076242920187350154321195275862968877547905722292242321034056222584296047039324621646295527154894818963952167329255603225313871272964803901241205489113451306453736569165343094473174500465711738931185370613699516886829479746509936258367080444301087922785462419928679053507967163690548130155252116800843042763118929522463682634660452202389311777157984591740760338510466701583913643760125411965780378192165464853899480503986676075537849831672800726650429201833734993773764440661339434062239225353837513542240268520812367273612753094163961602060261435805279210870024715399073436937467514113208452595686519725692619286635773016310611084544496425273469400114171570706061958690078189404900034065340347975748611361599604857875015037880402896802669974802017076543910396827705803043097921308882370782028741861141108970536831445918666646102786241516119570167690773956093591605840909734461200945404501909696976728507463349711592077002115832311072438804999704538986228170005353296239270614527502235055744244484917431746770124791832751600324410153416525867193896448216063552070257489141428889877682331359424449707225719893411957680423498659380710858845094448187623606234020321885816716468708230910550679435667986434274478340001355126098279053088080536151847456113531588031604958729664675751262057197720628461498908447681416139206533022826118444594144511479955573121970451868512065186162617811922830645512880918238958731253234008844180354749345211345243523084034045208984225665903411365599293055847442796474149711135783366381063313035892295259579413864311846442659817304725019596710450956031735027751573026295065465582522245907577462092727944034809074452151372609058287313753504142471225380594020595480835400982079227938871867262792169809831635129271109019502382531645561572359078345505192721679294249884092005323662827711992649144398580106158471387254280403058106464568972366798240521541491745815438054929828229210797534701368771475045448984461136197123659361206840705814109888015595555645021470832389885773563432124091729371083797873038468866496301151748320661568229389263321619653643123696196328963758068632125970910335347770920236815689941521759577369901109390524749886230971519616253734078136626127461790662739818731829236054812187408293818020769561876182466829040529229381055634132777806265403408793737379819371887180886884116559418427659202318567681639224705235323327972454363887544324079238283720667607764653517494131502763497287341418709476394707812974674567059724756766226016435895817039557317653764156316178135043692505339363573772836259021787051390052610617623722010339457115954893733658332781859076572653823893983292616439714498080396234659580654157799555915030747578444646718983071932274884385342908323559547175677302602053126361656721534625642474223229883506076327202429266864540337939681077931601340578122110312782439141780417389196618781135669621031020870304914700257242939427208057618448433398240339066706571932061945904691916428224468032385795919485597881442683979439650939057018873456114326128498854731889770430112797338881051993831019887685936520075669590601306489352293603329646512675915325696576544630987713719671229303828116007625624264619199224224308866599047258297359071054005463976103522749593804297721833000889199050052356535644283242843846045373373019664347448826194558552950544686932396955913196591177554275338743406542002625548246873284135935485405136969266443389777687817527958851069141337567548708199451386976006176854637388253689797907536398983969918156731840122355438500654373120242988012568143432575576593680262258300850094419348236575460535394716555848551792702667800529255127548833220336854952148554407275381124091428159720917085947097198377111733596648139207465670548557072007045043173827026884854997592192827717068300644932937197574478336465953788131693497943912071736615575887430747385834037538215348269087439631451928016276459659055578559094283424474145173866837377688686069373896814132454134303258095362310165395638315742014459187333551184113107211513713659286166806896997351782399249573542941299253158428988111895870620644317664086931885968506729666843410044915856866590801404711833260818207219773307308992617218402583294401414598795556443069063077921425611332667806969768482966004181058347907663624731008826394635972579836589466939657899749083881792885127500462704142236612478931822953289288972606311414458700130191787027084177285784212698435544825313577444121270068186110145026584836498560764125030252118882312722242862424633525418202795504464693181882542813774449208171954925582326927136038351363019446576019412952808170122514475271138163092227923635888251626559121016082183367473145077058931622416833888985901721375620643022458939142913970531980819599993581526848937109869638779108751132317381816851989641529930177502897808520286638463014185993449760823813090491101150833229025822671498742214268555155382417553643684391636472888149359995855056185933976568873716847358249249228275165684242996522065609926389186161490623633638161139441663086629432947473768353588735662276986606144547360315840118960925173281243339321173058739672184326306726661981838676642566448570844107744492851074743443237370083247574091806505713599988217605901991780510774210053041388589142899214662965921863710325607731135086141923884256812026069742537557281896992260777533937871600347478592384514326416368221056747312885245765270953537609104613577664473940192275386902881410137940068395129233078271998710588113172617124549841328582735951159250375181337521576271504421329921216742541127539798530849771248601098968143470606503962690794250416634964107442324259802662051311809148085728787986461939942888584142668103371221778993544175703788112301416073807313345632175937992400022083281227344879373719291379471435941041811945453137162359540430820980360732837374510780788410365809250479891470683445129608424655944652900736458380342973346976774676179558292277060456192374031877404570656276177836773756306589838611727876908799101230104634324113530160312811158644749021246124726223366691046020755715393577265730685296428609443307921821981333126389847625576308712721360852722157688956199803236743882727933266808771121198948375869804470235108971107259493910857699866865235724239245907412346466177163058760245474278534855847130473646997278579019908752349100960699166569947654882927837114409123506259606775802837532345802957353269221328454079687787648786024191067499768171469783003031876706072516899003384820598874783976374934672877046459697319886078062299301968503097147466679908638625820654539614198215008744957946867385882268055662032096495605505661167193009279075733913040791734091030995733863750399667362973524091871617291533221873179379513584152015910955170652993172896879415032322060604805558335755445107692163835919174014224534101087491448727833887761999416605817786993524999644175997026244857473702123346957019882195852662731090932741287653065567624344327386176862009921347409016166989307130346318116053724932573086546910881247485949861745124849790947802884115956324389699586722676551389976346525904716482253751800227413809626020347003120122054774759085305371112715277812347913201069852122556451051690963109132718866091210504253633168589593584981689155891351099213721821875365782136867421126375687144344327775591439863181398545336422586655335913892697485132036715806013563003420162107404588089941821056838718315675286005993590571262831377548734392865332500912646344508553014877487964649052925078693675730391650301130475151352934189801006238126628092177950089574210263835421233279708139310386204683357445932758271543321716654818900707417868400674628168671291083791446498645485879207587352956878496366242257965585679754324055441014201335840827958579699119865647799968383218426809232785278532955520332896240278396067516165692074621482645937955237576798550039535093838279458091992551987905891073851437451114624566026261618734356361449906543767234407396926062927664289884274475668917793735493015132507626240116855703989426815431486789337949597441575042843412390285693401978846382050717987155609229000131948731727737788888563998443213323423468306179106008656222724342698288168082545151684695384367500483806333924967977935480673453734545987631525645062901277893300617189832016575166136428653450035123761389618896832214289688069273713939099297798072764570572705117071908294628070692058557517167642702712131479705790686308287873551494466814823529453237498491574571714197751484481758873865259966012990920222417247479875259643562700862057375510371019441982870399055017217855103193623887307234553300490286363582463525001201781269799480607011413249868527562386450989275444630552119740107355116051447069935729274545450238911688279641119946813552102575696134244348687118545144117845750074312307365967463988766237015183978123872993743417092332498839377734531085104691254657930082094917556691112826851835059119813791420574727964097998781689705180522085602592342369374347857024914901008568034818808906846909256666990285013918304465004419175898132726200219858401009146103273322593910795483245899391912744273946473440278680483729893525997986158480739460334249075904866988603029215154794744411387862642680719988368502280840883268425997424059632540805742475809051077127248617196467881248039399241724602655555960184384624555643992756638417358958358026774366296570410684087862772700183723131283020634405766344907011848013399169189796912042216612454094611961445430734156584079286400782391845215548279981847296836282468198807560722881248066376684123250293037210318035364522787007546852874918360214165878234129881479326282541368820302683544247091624844685193356951137910362229526020542741748333920228086181621212453440929015240748269800087917140093820934716479672419019363342653602793037736515687953999361668781761697457923247518443004955448184979166631322397457283379400938368676559001136575161945188508364489366286288780329691141264021257168698725881245292143006020590049382553969268245131196374107441136647720048868914453631524456593335718463195385326030734414264412928973556927412832438561236169378221111127284341340329001877272654234137631984794236107527118946916711728958022480320487073397148599128644771630172957786004661595324773808922360663133791568531441070012952835434119566003996793738227667202704358533284448093650918334479846222709533122014109774101614531318252525399011593364489995636788608222994391719014078037344435147070936356021216673111082193284261265452112629889056594215721502716648854732850789355957334032159451581862759596087660243137410669287300841862378018375693468580594732436031925206828286182739643931189984026184652685265328216176940871335258542206223078879992104787852521482224890945746660341620299341648403793808890301853184301752677454980357748456118821111550054474945342355103715420469442499397325054334020573563166271321232078176182452358244683247701712497592553680073459260032768417690143516470473135168096055720271070699363095961243894024739577325274599791242427693318766338365454211229752056792343314126082927541419605974161235968443744251662045093054026939326451984934396141010354948792313325993290068144737737046570105825308229035398530309418619939563603827888484634665446438339499562370022302562643235837417173835791071541387595500368560292054185135937004963603400358981926955593716374234093714839934482582048590741385534459875500265092060124497116315795149167243653601299329562516680798121723328572336121019405990708315593691460926234598061847369329867787551282476591881677128042302374396988928797043645277036226578179596453864445558306334204777572104703548831751901926193265854161191027020679255647567049169895432886749701256809569655253917958080805524055072334407167805982502561466223248777583904860072923434085041705412945032058735287504223194866518227389114652116273080312317995364219676820995478250029739471515653137513992447736697694904284234927949362048371940128320618664916097459944466559095048583239441410458843011180335161046783478585938400734374527258570393607159893010659785739970121864054836250058467641602827757215933210655557378848998347529815978020985206438141086710652067680276246417297854549137072906842892838403027052930089605014487702492788750520958177448648754081083797741526852021437651958325363208752883253842496931681230076281171015731873233550143692040712659633782221144717827477102716055387832707364860292283590173430924745125416465097157292144449379531142000747523580084044447512539003244735040726073564635597431481126500502509135155493556424961331089711525925319327036386665543779496217086471449989816223164414200882164830574141025815918441456923378391134874240631767187937345228557182744432311968109289732940247347340256695260046011977909354501067346366837264770723875291541234582020167411755240824859169994042949149745176940125782194959419268239205520561031343237426874815787771323052344671298436648612705145432135350272363720500682958760676222729786653097700270532933318688807724589400810682974934457026920758819528521477508110072605464942288347256480423559479995517224431776404645457492882043301138415936621280390187995260160768918434159293282877453196248272719914805588873194096113166597314111301478273036902591345124985829026154459385564266989807400631862681590606779884589289565322435500133013332955570836239153489980191023283124423157093068298018368562693588311536056756022330344220096486842005202219885642414396020036815249983016015988264804242803088512193385976213682793947755149010857300724821007635043854711087302837770252622918591581662933255832335692288725678152978297986033765216473515038151288556630691738678197845767778354740737099983888744997168751956328767517910772358906422130088574805898692841115414800530228856220772090688051244120652780492219037390507152274358930406491116888494936653840529141066579219291030683199764575354045502058064368700508316560234933141016372224481230683304529690071712052925890514697314001970992472960917179675184297649656998536833884348253928747664530510398986944472681957199081000491591444240894555545646289519597577983228810303010840929421332821997732090695360987908404664388392435797796896170064637295981753675948082686544579724811583923177747081704139404902994267878555987418326601402329348041041638476335497381948222099037544706845443839178907587440166009201299676206929295256085648922335040499566112676747909283166801856042860888696518323249570691917208466389033285101039694259901967280889235703830921586241962042322744390132432866930136100695095059588044856654372312577466985246471903825339446763096324745448769978179010130719720490206405938112321434951747020946180921591013561267791101397279302186589887568348349073550360338830727010872232143636540306750365766509157691578737994430532626838950796748101530299067132881972960060629677634374667755827159242168134360724757660987656176039372560783153139677686661088849144271896171063840236005774850718027605511843835623031842922689850801823218455481422960331652045798585081022223287645579955626575899847260830069017609426055919858371804736281609986835513879574051227907730632473236195409889828081812236713674842631555132960304864964878891951779490765167366776151030094692915585684428153409754080456814671579165758464268407791847312239197177277223546803312879058038940356363947902831893194062884134760576586515682685565679499077363548998468348452588053246718958057105690875422818679745600855264197521160260587757937913353424130026907916439055912276676474767283811862192330863212782304070135650579002502047995377251718845111498153757226162180073117309287000277827864464047523508326803644965675309861686913233376873027646658760535050417936507414221315261973200299163941596507013672972423014795318020495204436782914254522340836160982191531945122187682556131501436455123029536864878693163839251357336147599375912608704033636433215435528215985888676044108413438842219422988990497191236889370341216387617218972778867248081855081776191329541118153916894663070472511796960491343148022880750709066195787572633354702765536517526638620902754317127487180084842937874798147321918645051623616976529417500700508878457438836592964449229762061370369288809960789629864787775540548222159158977393694368260609816695558365834060924552414534134260340069849010988574170821790634331288645233579864423645232839761339922153283274589035628635903400483913944408961317685774595454133367743533313821300367982018780654363815992359307850421727438825243648643524656672097136258968457392373562755707944038020633825339050278666599095184540129240482105979881216491983247365264419029272385260836008359547430064175905844659173165998928465903582938797957154817458155889602937972274056155442387768953566631574472346257583729445511784696080154130419623724889701928250496693411888814579504568847591363566374497493390571160756531407192360062965261697583132024036216457085569576824531368311549358161050783449771891313545738856470833712137761541480638853026531265725265875286026604731423758402652037266714307167533354667030885067828337135838974283878829537908136988941246723225199162064898133342113471516541757313059688912884319471326391886578482889253847049442047431893819776953182751901518752033952513222440170116766174677279097551223550642244968422440862879580703936729447426155545315514764947119767394641847781105131924864733075745968831863665747778534575782332486952931493906551237266309795197689157822108998264612807175418686259377553302397071456271813462436507817371570722035833007755404517838761585329089658077950410353133202478443465749446893852639802720711777866997153205721836824832950058969004446235008725996402437703404502905536143012760857286492766391383239380213111499932475803127116826070076642213983168070610320293027072146247773342752481341830803816508561811703531303511243970215791435418714035784594451569954404361624268893803556253558572415621325166479529900263125471354483923883501894568325177876208472864962897687683280060161987919285678046360881192010404414979691510999692406934404504935107343815848608226123986326742301161043659173298969617798087132731352530730528640314009840099609098639851753638836303880864504982147990561323739595923352518025309712610502349123111807787959861552719993132076275466194269478386285442317206880988372917920596560709773985906041077984147004173642832073263076720552653865019488931013014662068150063333307183320979435668704650904284717817622549081322144531076244665104034885823554694307575487281210389221342601790601018459469891073035023161613145605395186303635400417772769166401757023274336698010728149102398163940052940469365768771553063352065175052962604389938396568175370670260541864603281368813132074466608602568308954184114752898599507467779617612717363683757776588949317786230481179357844617352276604302459768663225703545519050563655825020863166058916736410862423502457774343433437486923403984164897262175691724944377030715754697896598915434305960102501331568612419192852556068589166644752577755176245001418379347953058798880714399010800350323619654351893615425369288844880789195547075429195969366051870002001368690845608013463311284604709274674637026802643037851261456330677948339641372250211445252510912933164687415705400386607202173638549444398289970270589670665484378961551739049856010577646222368844195351599834425092356425188856683620448161841655387714518175143972290352114759207897422260728128753851077344191309858052090191129067547730010242093404429930721310245571440721103109641536867655649401707487577294935947613241772554385076781673096156690243162247756941958451126464070953273566373078684153495059853431150810212338966821502147474143181464245504379565225579656131744572043324712595592101514083123294792002880100545460196199574653087736226353879263122608271925334141987171841129164268187731929339964646600679731841782697220517801224590161869974063291336719624288627535096343040500540570792642082156615891377747629101388761154605613850852714178078061575520866264479886603923094739459869791906609718738008549849368003806926676597211489965684687719432170730684564036642507748351541080756683600598015922661120527392525865597954143917973630380538997353089616937486819788278442294830880898394737966686309459318304533349727807116192935715645236574708356288889280166575168909413105272094487979993095132698145906970371186171885236625981355925826727371514016528059807307775908830200550167902996235493311111456330050175002780859141989291103552953624974164854258291684870364446511056683923709000896547832260325920641127576676757553993598209659071867122879854370715456002268245026923542742425090996310063607619881615337434198252861705014748514246020255118773618386428923831993273785627261815921576183123243388750492428577718268066034417115961436904130998836953742539732375887025101707696723275428159087138474693335028758462847185090958943208840985320875397912075484939933000247467074834423453625337020773039370835783292653922024807895083083014057001780409734169494240053008091118038409519275144215701123906582058173255324192707809132974398224520817326756436567976823299615745378213199465917760423969763478351360712854505726206326960280382577597975799977928302241878423241623253832661663438652404243411695769000922142884476036777703631970367871927464527909695732662778478311393476210834967142649005051719747678576489300637503321352771484005503128458784115929302106088725400484036403311868145274787547141602674514492771915458898175364030776372043138793612833014668217529977456588579098185257013174577284577326541651432329602600003179214619474332286951966145628511345883623623077351387302510896424019992662518536008235782420013691477636973239438052105458092642625751600977257302439253020109272530084460397512463326280783104700538477406724364055695794388821021154133670847339636612966578993584153612220677910544770430960976590009171553624134479271905693401627944066544607117040043327203202643643407396303543222059204952238632899952100453067369938797534931684184608216790889638769383406521525035528976675083930468089642989949474178203680619032400294417461772444807225073968101998066312113355331707716694324126708582703817412993293940113217911655856700828387182880241180961684780842180810971804171311886074866307973424623550464138272128823917569920363516903007186784434751798558696607983026820106776801478059938691413185427966549817945539829401836369657566338218364723783169888393726973247837960073914222493793620514560953321772149535725823135403306411980921421858312498538998530962670281855117386516774762487568928472301602467307101401869922924757412485137292573067238244373336131154640094392977118072892270136085097924013151207600777634424057288521366551836551951380159743947956459570770285035615540045723467330671618957489178126547565951117519947584601590553825082350945169207581929157273477556156095716262037825735287121262267048814220001893739534193618864001542986525387605017892924738289808246828005992814307225668181761518826813545395769500170605904518392378965667007267768855297187361667206599648750121476859034806025659758098551740189428553947146702955659548257635618473246839322278475217253454300204552743861612314589091150499777560671028253551549755736504323290315595768101350592006423120375635979240997466154559382848186652098874027628298042071157602361612621733936581393194229759802452797667031632930772705159345487211611201427840609266884060030710882976650402908851438981642942373662587048716697440717672106950369987280438092438389474310121582870390604394144159965988825640188538341873409998411539819587567321074796304929128518508030111493591607210466281829817551679898466523106503938643017721200299011041339559327347168356943496095938979188800005004217405602228038260379409839465573286922463065449177827795336405820127798189334251241690134445378158931644427666751835861620822128797356803461107188146218869354450514793604663734815534430470964888986972613108824343444003031566477424095412919917903999252522095570898337025824776138304677318426834603998547075530290427925746417058782188684729385440677229701311573450558477897110510011762622046788553713556209777395499703442774734637521685732511319926195727588236002275011159337728389696937317545532047237237397539585788773175345333079745971873388873349678850273517676071207998934317877886032850234412227803011571570991685543632944893178903981208606842570485444820760743937440420573389169042843804196342892991143288301097119872190887205588191689436066022289746163603921875326829809603380684761547669176360473372822003757949438074642330916440503805449596933069379704856118532294194145656820501684223405617583640121094789775729818915777597069499295576791066463098772251303415987242513422975050791856188018060413958045410362918003794295341333717958040903234416729422717664747390371825593725299017889677724699912234939613251899306906658141153758471930198738275006626027352183239715062397457172941848400189554420629221881904077059640485046484499117363467549823829348347568173458997163428590994706800030719897238003257897035831138696377289197140160768850419311277327708564978965232618907151325950844907619095178370279300863793615644278487624897508525563924736469609614689124111322593355626876177074285685662332747617104686160533220860931596001120254977902917701147475393376179274332264045259558957921532104833983333384820129510841822741795089796524748866415951523883765610293855360434316366945411091378375525312528875226430316894736998487466388055047408179488442008969612442074151549266947445420849215071110816786784992763271639974479613972047433795478653505567197192088377478882639259097507470879865352508944092922199621458769548984048040859492478581819132784117156394706478259191043694163565394668190852979679906960998599403242144351686103238080914048430343324075641722019243489997597239749057871966746952038674320523621640615136308811709830733800845546126352921782010654356234020529881493682745423959104056373417051595469049302670857193693395273408882455259690588600460689587547808458434814504800451956668965516011481750991088424299179749525377680150100030567610229446571580101820044283005683610327871126348108277187626153963365080665713419550974409088831986082366590874444649775905858545603213902377093004624300551477193579197022666203170305923897440163975614993084116737797058282732885842960589903655521108953936711328907191341624518840803202622457574796955648751791372211464196776016183445006339586070021967664674838782043075779069331286225791533382960288936466198240996019722705196691567266196767555389514185789643090036979148179182821270996028170241921812011052516544325066421043153344044751901517947413552714299529014602230148799539651269542894051708797653305341094199146070367936937459628146680500165241705643466407291668905687455202385546143712088008328329455222903705647358188892647514621781107792429298333155147128993241794935349048016883626383862395066696063374935884877413478713592494298705084485582962453478819501069880843569646173583267131206462722633370679544457712297943438139365156363266805175722041655847913095813363053280430233326932792984732171884510431469464133397742691425804812785612312033144059929934664164282791482099555456543530500823833581063552760352377867914541923663460977697032809558213080576990643183113974155281461399743413025361194761929649341777919450362651953143227884099175834721134961250685416910373677635027319209393462275459720321657908164503065467660088050627790678803501557494474176353883054922063080668914942066381091760584152638188589536598404572698987100801873088908829927015725585936168775343301417800109932824192677815555293409424198315660119979334664073319947568043772950116498917768584002215143134240846245785521318939148367371796923336844742448696218073983658416424013272048661948583860752513295015310751251181749138873981346176960040744328236884463362618374846238909160329517437758136444863301780834207977802061693642263364022841650729775191463261763281625192594846112086810309015918143645009562371684731511959281007193360593686138436742987959384577646870978564811158114932532471136195662427306442485156853535612440150909488275446502775394302804033529037803892660224768304920129995831998276941450101059772650044241852240468190257307019415680301408662563429133938192731315725937446462789207194074240649887994366715333099834637534757829857420377200667295568830493122713553041596490222118961112331494348329369087074014020716355693939885953388628349309156521309999951025822236819916829056028746439817792039070759838725441386760670480234250993146775335737763490431401581358774956568145631702077398877926036389970757400813914587519887045733350939017462503688271787669344793596069953109309346024760928601323877998174551358729077505172057276676533963949802530181309252795998904923829340614281334643909160891273428080608231603934801350456705066779513690664759052746195695566091648800158112807489284737437122562474798527665855496523697541261365702765376025410994113309915747789004657878273482887962040172251206825414100195646405121515535203051547111425204537743412814996860834609872181128014339915823767666862430292448295787180797186796108030726427482446887251888208498009863308997358991296651697749259692486394990280558438561068919121148673772268088996414287004833838847122960458839380039238919477903122705282184128953379909869206902555420198513968279661543585133894410646706417080531474964267545614187248795714623410726822715632082818714909210940117054655431918439125950248380533096187068735174663838301129108051599263053898277457991590479750244133060133886501609129642075800002182780166579372232628518458724805542111333837856985697112444398256477468325033018474134177314772242392841407791069551831436475379121315710700713022648497172906201237086937320344117670249243609142926874544399044909831200532652101735818126285330970471784535135198660726438065951497576011780111627655890228000787910030736311034736960386063055944679486713461835601493331514731529473508319629606513798918483304098151256594385632918440413400011996122978906692282815955040578532545758321926688532564478343073008679880491652285840994948024567293523109929909944275233896004707144477968089010348897780894077033951101194038156056229608517723643372371328833627865586038593282582500705670212280411037160278350692244488166021110452280103535339333125780894302788761512021396243026433799882601217920445025516851872472552472743491228853693108492476785698882506001177848782165365563346501283559308466486810996693543747183132723113701100899122332634125659793447333140994638633860159743238268857090526765789524055332207723073423928603360548390534839280682800960297936854941185060624897874513681804370053276511679857155997425550526437969987578223100820123564162880426573211518424456782773467658114826814277726784177673089151915305083766505345528713444355809621832105015677851917962594491233732652030447769624004995455893093746492829188993726236124280441164025641704346414106112471816063944535959723727922559029042759756524374680696522246855860093195266634225050956178325056449741232099920078525584056980795038172106581862242052922604860591472020935599601317461106001331071184851703866739984093557556897080422127303853127914839183557846723532956330777474666446000272091391086871807978221287044365245818084183436540875211509919859558472471647820268557168625546950231358452962097899463623208921478247603229604621831093175449901727206234624680938616238194828466207984615219050528415597957983264283616807697087587070942921219645670536922959222352570893237332072936682114519339786979286605998948549739595563716377379060582064640874055224694074492862448476157936312869619255335640450552268086840553560527111355797047972579309740542254564388959401891088106789187949433324099084255517489951574387394873482122556831841585192764814751646715613919990386540242060119943362174586712853672793545149721222460231001689762910828810269749623128050006228457172994942526123507806281559083809047882178237145381375040473197081063375380846942466962936915638309259930332289476589144050163388737225403973628291483975500626726551254056901218921995839623821153242655257794187951735692187924020319845398810936725254524121790250241281255238529136713653979972396732290900329232301679717894373754175408270829151533780020216796466791069008651948365675007633535173507288966810838610455588823721369488964766294164470276450329106377670028670580513276275889784836117145495165057916269507049642278426644339826198739529961017225271743693921945602332576760816419075344761121735067079591755829845526974330042034882130185989125263207957557302199255298121711065900249554275661165291851897151120452800391338832516597266742783278576746100137685023508596146785142269216156890245049929051781821441039592543291609981643399320577573213703478508304879209902717938081900505288871288630275333858913841129665892601991697962909766929201658774667696006749026966346430412108175115733285662799402654933907533561663689132367408670305633534668832789340654125702809186639134944398922886587366756379873551405447315761340812501288336225201499714876274958590257665592776679782500637813861326780726484891063248591231488685766790592148553925210498117223634724312461737842885918169508738333037399197130421826105192631269347248928553489145514643192084067639481233386327292855589639747744360493186769519154753430278593645367536681682268640822085736384381324302154783720498353360597876670581730927790574937678015749661237880596785236794233630442985923891112225356044146687581889838690610559957239162894239335769084576298041626649449435828101913635639750578958443770578689056296882821446860586729700645190614813240364011969100230275234796835181746169358933763965300084331063151221694664810460449914426871456756123425139794344426826059937221242878764297892175012283825372826592581018518179065959005681195739829864153406840779978939761264907574671542821940173997308970407482036707093336936400914268273431640209611013799905350454939152713966455875265731233075774703881435785412573405132866297313771678378688307896359053137002754456361300617800252962074759507525183577644529991733688972151401021398442079020330488259633863083948917949876629662305684588842225113250954509104980316368075730873213326207830612356188248978539237724695409667389671905706829805283693405783590069914135597695527614352815698912470675540857776905714451875053078207739695511463186142234951895395805753571241749772668834657812021275175408195505305984131731338774884358449174540093196009828728857643555717088853716162276720601091911820654039309832074705702762734060298897400728165759419879693852898385372419540851882832768931734854514860938448952865097429883625500143637177486339971904842581545829099114289534268145801666398974352290274411554145903199044222071119397415859743849498386638895666532370853352689750532306590376469810598605707626957004984407464755533016334552004681774625344494822943575967698219333546452863705280712527017785238167428296858413479172032912208169547878540749900850291203904319269727807619325205280076785078592219058255183943495934515555057465807059746499279779572733396514855445493824328709325835791526489162741787948264952512379640750087321250855542853948052017798559997858268058361360601768633978184837408022652258187861639457696936163682853726128870429549558522373302725668282098332748492023198755247231998181827093729303371708392846642542425964000726925709556454606959643715753487403300603787985724626179130170184254907745278844452285658566959640241325807357727505776815719951036089886638337968256432986128814702049566624816976634738836679129798719654924916228313596967601310119307138473897531005485622503359925256810233259304814998151927594493926453105966681651522808044957103364013985854445742646128325135809844507852687418693406667263379114854394030920258168711041354503736193645676547605752522620636657837844630520806618168135832782514065402840113549129669113255104248884637740647871500941870599946919299205447891161711497617921470917298466390086038447181555032304788718877779872607488344531560399118492736591951473893069618055939121196988149291192877134843616560062613964309438510685855213441247986307218195953184083041490218246940621071376988562683844246694264757597066631397202202750670493785037740589102297900867221605957838321747104863734543728088867817894640024327036509922807497512211710568545856355977376832478238859480814163046555939156803045529684187258893726369065938886829197450101871712247194863475489057206345903656414204028842012628663423868006646006156310965759045918588599968581975571991145748997721304569774872396184981366192753264592755204236016123812844788471272139976429245085786808418476173412426564858453065703245344165240479314086837826397062615126344385149429052344102118327745166864370943838079254026992150126174961409941215662585876251639429795547126454608336341360886152413284611256570171409528487983569946960321231384917729012770807387796384005759591629640391488959091014793005428260991884244701055937545802797367923829648525614594230423214444626882779521534543493092790641598180788236849657732154450331638034184890917161124083372532109569330360936903836410422593269173322209827480998812926199339203250352270554821606287691445108367922142734648048127054607414395790051494501835022711276197403136649085526402408006883816268831797657998225738144516351321153049316610462981771735978568853131358321776062842992702149823996253171510579655848898041047993005497498195057078364572325371380927934996145278836094562176315118851183657467962471088746679960072577357070003989694642448188108347410760148325768814181331690131575247164688713695650895831691062589321798764470600660598063210002743361884555846766318004610616007143543649213462936922798602363712667248506997357240072884421483877741661926919293601892852127013058259960162448548247891379256438066177871810761336300070650336158150426642568101506066124292302154565154328107091507041952604895177307962924405216968318240290258156853298790888526870494985462194801148397385706293830286276265867007001195979307276607298200611351951608577397158422356444487003476105143103425383994531439022727125706734080955269060392425536428311078666441453548335146540675473043453634754702939302366176658194136428170948301196456445314525445736659627436164933629524885687677838578513647399452962870988408958618970659446256392603796655090112553060618214259757121471432656504908791655559659746241674726482455244533671105338835475208260195263116928104806238504072992636424388154996883595017788492920141559368743664976790816546792399386505124002393111249428380379629690646982027802694890034410504039807696530394673017026504244070918408157926589797586811736429279398419897450574776500876393167356628433677818181077135181647627962169206406898619048911142388982855484906409382079873350735143641773587563338052175412671998323012702254529558756399085574148680457173337638075529343596115397522183389534111517283738731326232493656305092057619411319959842350796930340165401597270602423804170960452085258279252015163826968326617192791027576876670282315476846320988845550665904761971975258801376755670206125135140729874181955815613266613953724421870150427625160293964292062932093175970222539029695860554462700387394309018524904164408422465996519835362820153582124033846175824474653804941676675112313720522474108393862431369375383273146030043052347861874731922316977913222175310184437205325505048404361701125407147231211138384124036358911882842230604138895660791371188619296774635435451405706308120765566176558478435180307658344714569872385033079856570384743013727629230241570268319331538330840592835996824110413312657158419165330995293466818699361108761515056988266688985853072255597971646971883427048149396771849343221765503688852378711100938299157637800412985451556914384081773002604474526893807451515942135743397842763191568099979234404336137563227544714040669058773922545155992195278537313931794554258139595334135305817263732156213122830122717538597214344454343552905642843334965356996440421634403537427558252289517135559299599442636871041739066481247592303148719617881775953564469809252917058956724087633640522955155179588692294470810012315914162494302386163294339214443080757874233099558605388304780132644627282720070472191483668294307278589427484853700671978139374389066666011121378362039066526863661243220322506350815961317485337789941370152474230906338290675983430965976339056806108505598880112217135190378960501355687987668845651714168948448447928752546870395142798375528495290095239918420233045093897684891206860341249901758981951544069116115265471017313615007388415288300397429427952295108486655096491895475671098446440461617449113404896350770216431495841984325510057519058235471996790631782830048998973419844917202042239388666194960547776678182851274699046946732893413808721107570420859860398774211327755172058265571204768092079508719885583836389717884545403674661966346875123719011967504049076223809970798276681237620211773259797600186014819264273434984288930906811316809310506429168435962276710771095432532736433452310228066564706260851135090199597157373087808702548098475431061161161499233256886432921066675329597243686827574485167381085393065404512097378480111617929400221996402171402394357935723209613321894766387972648203919563956541840010007311429714888049064195934640370301115932776838059698663133700539289977592912463795530618486943398257570669376003861115976761646152839693576068477653747482156169257081359534810339057566495922985667032680683169570258541697244272901269348044861801021043411968377610828086578499935660274580705141934115966597645193522647785429775297674326470267744755618564076890719618302058495118768760774457869729917833170935541991194166532013528680453500755740378737412430566191555498983841750467784465239145481369026630507547224937625547180026098445336074461233386087808909094155821080758531565567126024272312665999888240108051479602296525141478857096054725313406652476254422754654222911329588504987764486428846487766129080829834979480642247110040489630334769194185362355749227615581442113859673041035352798590640035381406886723811450466983850341623371767581464738547455141557378924713216890738826215226574518552435305637291403679979485734414031999774467214346448693300756161709225799705623407963891680479722787110023927058909791563418474216785910996136772197408714587882932819414722998336541547449218867329817270986710143998426985443283719051895527065304691610583870249885521057018361179007081435533357661732462059251385787630216223246185659289377594447782985154260506340256906173632694119479267196485273742646704178502552819757209805164215823666446455076915313152296710336968203724767092516932734881061509700361832230462195865349399155224402072508802409258375152628612364774433769197053123055531398956181096848243806989160267071441662702565968816637708385637909977433606049734716200803488384910177252885155540557299833012931604221772974758975850134222983529024538018273201860906449032554787778934513768517759943059135465806472900141870957564206657537496351474984452938438528687403567846632243166876604780766215904790395636189123637482140854175126162017866200813948211471902290774666237556846310019343387106311028681975321793979531150728604937656710071523620490294389121227350972962299616595249301006807256344973300019650020746636111523855697009119073116076087449129713261524980292737177690171954349518326502775795119290727144665660466389040893966060420843090264253588059349417871223733519852782133501886801599559055029584987452236484193875166654990688640833897430038677285086495554513306569333901668971785480564137109382727354493818818417726414075269908200953139098912788536899958781934349760289532188361253507660652413204525294696703613485525946671900428263364640344406464412095907322560684515538771844610769561354427482066071057682128745410027696189192146913348384050555030311400903083220226655346185988425426955007582258743048804268037209251756620878446084064318611427958490763790594871798054101825780770988520318218978326412011413643233870649094482404260920104126821482419902872071164017070145747510360393348978458458596390403091867719758833786962192392382657879633395561732148242571960918805854466039086279668705929373483566047941426178638279078000186150637505242221754918799382575608618605224523947638458037310199384963058954068377011012212762001972381265940716833510635238884101688184102215094728830633055168699555046059899119683663815510621038349983121830320545789252624623377728657299435445999657816580018874621009164192722160538516372712618780711437629093490438741862922234576848037206027868798286216055560102968093377717841450333191569604415173217561520127450022239046084341008264633324463674762042570752101565451527181139572613517933143019016621591512247873740635829591901753210152645363602691897848806368810751778497345179159731533671223197797082683515280436478182695273040484534228312900530190515048409891482848971503790975351884429674839440058319863450956716942358096989781123103891057605073082757740944874252076945942743777933781429356751352502394716652467085544439077533108632989199423782711372170997201728849034233785515631014107304042158052674532140739669648963979851329654815336363947020800566923179663954122940047926377630372250313084693181232376364032372417726972476486870159727440710775469340885824787312053758581977338485161053312833265475444578379714795541702755901785360167316062893613795668005725778623870434789485326514755044589459644297273920681949373122471526230156051354420929249082413617152316970947853971197743374051132901925268587248062746247336362997661886381778631426319526974877439506538707849728771842232783412806285715819384261280240904143741799223966560715671268235433725435239689138197436415325101936577849337734314120198114937472835049514664599026887553814345430830909915379669090696015035701592188236212512163107466375749401769071244242238781056135685239967721531668613574315783670692102350016470456498405959101129185029062659208612107521910065855401776043422687708843553529509529887324942131223332175810497662828809432326219697491924620393422113477185765993413740819983213901200476408386043811986259347027416524753750318802133558118688816159983102854789438679510477848572107523499996134241666174519187618344288938502633548474195013361928301986310261074314494003094169826605054944634400327658812359233186683055443458640807033998030081426749019360373565279112355207477053171665725626236283632936230974124900997995777363941433319874183385374457375452007633084185392706494414804590970144506939372496178247872952779880550019751944711934266240849225478992589172237557734264329013150120026779547048348134148873748194118873426194837649659076277856851671836910049410883237495788537687481541942523763599700937706717288853539003370360710290853799937220712367743981828984107403746999211496408259129549914340200623319387734999176779208758289000177874249608994402241541795014442845864785430364551077957055395844002749484399275734393087708785400138030008510930589051733082749881480583965325340711518075821985025367681096605773235116701880758727760397686297010642229368436352936986639249934206649149061959109734732881427435873685447881796367144508399948320630285560209545700793902856175916907345170261670440740991175381004519229793656915501208351662542686469270764654337403765201982695932274129371792568678721340096173477823886763715578793747440359213885229980133143451790578230100061039592670791526305075964797696841336903756034486311847675556216909176649208350777700676744831604849195206247757935719395381389238879437190515107330318953360639798898167945395876443894818019401134984099142245194580358121673800595560731025808747794862648881766328391691641064843220215844744221036070418506345307019220921750980149237156814454689346690883265992252033255893094742862671934194994536945283312026315208947979807753963785525665910815798520379550513941309810332698801263107242288695957118214230572503769213303241464660902053472866200499144531713585650902845486449807512273127918072551665451154420261451295374094314438389395089428035730746918370681486147167535503803547829283934950723748956920142493903435399769822911758721954674578401915921988058124314844605680507306438876935396098124547033588128868263036915451717088644521076506243701810239515500785501647821194458688498998539846064160580898563742793667871290320531065364446183225009671284219256616948449745457552647940651241761383287133553527574743527283380772032439991873741136665690190650159220195093635479859452322645685719381548791146991762479081223224490694811192570538617650660021627781695327395408275702843342484898452373192291338356457305003313128150241530102783889942425686150583416838051756830210165044337498136969457930570907414605390025858100920295809815570151279757310231805423046065513679388817714306612024223874191685735314869459851620596345703469959584815701269949750096558605016822712449609235218650471314164993521089753513394567684082897014702895686412549166041426635353254980518396841343395959043359749537779872465404656874537930203960563039329181805876862591131946351331204975180070566117996163995316518721352693570788669511072199475740518238412447889309240887154473340867221447105091105215635728691947986439559446714885471198033320927355877686436075363967995953123514109147773929251448556533575455581052619655152474271188079657812294297949564558699610762301399117292765996606559610747024969819404223085750611498369821004762995455507796241334276876212681925468936494726473472255560421575157379967190137372896776228248421395978147496543453649419095498474378700865228502321166999412175149129597421657099503598935060093132480270014281923326003489369722774229042612366648898025745940392993768059071707062457656988208802546886139404497000779001673588208966344833362090878842448525262909886861639264712196924615986809127223206360947106216097044335231153696476289074010457112686669106574750220053159234525650423921238305543953920293184831431205974819981669832985539530157242482039987554997276884869527424513300122739314317579371022374370602115323532748166364616698424662921913440916929897023620452056603237478514356305263884642387520907967898663072175206434007476923763805396405051227277203316392287256543268104840621964780681199961894186972251611300653382364821668553082492119437620221410281690027775763128514003852475779372078997131642617074936058139658006022255764572068006950603077412293372636991589928417323747012568608481847772703661982175405797042900433471252714762356497933981904694556015471294594456102164281601477023577234044260696150287024033381443995619647701915872027612814825064484842646101880460693133355841780031155054712743584781942502112863528658108485564427487117680054828331236701972259862942193379798117651787013175237093684921336911418707279801000541711669686935908235554915847173105551069655743428934547477276377808786469422324496859938977136461350562089629904058891617431606159457866905338670747703561003843952179065394919024720112638360541494350648671540699053189449378925626779361563482846632262333257734280451910955165717846797000426114503954782137330216640610957950233787592534590195981003726455943111912324176014587284678543969372284681813352917056134273918066459399365776087543500295332524197794842480198790968800841423373778388485320490381014954818149181945478731549066414156846558781092177153673177486134168608199418050037351328361108262614905233918658664447321589254939610128214880494262820888108427691154959642729696556515242302092396480626527976237155134798560369601836899915879580836371618061186071767426101169434173781435288128967360968035197120736447526249653046209598061719949007438587952805001560482808355887785767091117931559545382737189441582358336903887988097583423593526893933797523078025498995228961350039546828081815708467557597398689527378885694277910163327818019095736739343670347948475902247125699526243137902649453171448852535063529461511489430293766229402330520045649295777374619063189009133942894313297747324339914581940770773838060682210446776723810291042159114010479060765920473107953506617246956283414835878264158924119630317793779322503893530908575382634620957087674928589486153354784064145531114988548920796899538887024964092678193403745602154241225699790514980821203324382798719234208295993980907350181760008490262136927836227035086421012315091106409143860490372265817369831004468588182553258918539271558104830503824046194773905520031773969857914423913017081698274576988628323874654414126177846821449577173193846735237123261103821633976266968341865582222058767928278818348555174699813917463941563471547657860282050954677783754538707110609713690399827486196842058642484582244903360354003397784456650974527800480744104622590922815778557580151786284880263175902992589705807568707866763437477885720867132942357208965012000418649777524762823041456166338705280491210626560898775248801851941799790552292259442612201541560847678699525389136346350054571914552663136673453442671252211433982059821298204814653065722441488949353662917103691335648588200682099974950473816075895221990995181961911375960207194922413652758492149544120231809749131991338476355896347154977746123007965896430550120691856677222728206991315785778795811419024760061855848665411483226164255711760988639290766458202713301922815869853179026849759904077909344306192597657560624202697918777511307498219899119167190920665609997428116366718976937802004195778114027775480112986578610811355892132313795419730996974111571578843661686020110989500933586442317301679528548394082363405502358987222655621757672089270413962640525068236906018551646884928688660389455907497193397520226490266906424393768790825006374135697941987024530679264990369684266320425176688470036338363680564133005913547548438098218099107969006449739044061917367949656879572401176134122987972215331420474391252244626330188020199142083985106620335224022877703219074144199628593494958730497770614464005221804961932782696324072884940627887727495760517483492906329799044191888934144468203956854514804790515188855616943077680207393195572496674086377429656242726602537162236815322707990833250927388980172637581602411267751394952566855982323129712671261950346253439901122816415042878686214164188967556118213010907987078455961259207870732349188913311358061210824987728828916826155846313565115608125698895631609155560968884715143612700929978020439039095057694229559260295699691327757553485121000274334396915854241146467513388603900700290328355841632539254618126449049445998361866157197494394590582152241655071467195957183999909403087061495505287428555305524998658452968914228495807312642987498324184461628812611494702634764012286231064459779874014452388480432618222807207351312068366473780245651350891363977032959910891052672912620105809297112830988698405078982911938027582785330229615373306175124140608077908758940701403492286586352931518921661348695742635404186112152977571525115486339983723772560363463128407136439153701049362342881444570395562533572167289315775609588680209669821156552263536033953424159285796390703294326311802249326278146570187894881733371103214722889830651846676824463770099201494763292555819304998317146210095117453885470543347957612375167263695908931980069464902487067150599513835465135661589454543152895476523831389367928949013862199066724538000372112912802088843939693593792623604702189051022567734760582115567462374348053038897133341453895957602333577524283235950080790723197081150724373561911843171274516739826241567812544952618086417479924735449971493940284031278995694154836486231583684812845303503595141461849813412349259857033595773434144584380997333085028280440635701995852131476202956642186717648820249186457913417201848242426239658250963610120843395839365317903378164784708591955914407780689373461087733967869198222849146298009114920560838767582514447506845548268575220776911847285665430286952397811117569647913156444152916689569112837950018814377843100521997930484304802114724765986752987016226201477542105189388455021134091981351329662671699274360848235859612765052739151711162351417025086516205788061522499174043452939842876946214685594641714318026783131820126992951248634356763159632561672531385396481314429016126819408879378553118561628060981213974767762243330601112986802502448314002768070300305682674211589934085579649992834334133850349939609570018196758027979131919523479591912904465693863715614401065539363803981543513602739154569028117802992401720501567826436789407130272716905845723084279764111653174326514289686332967364658808006824485285850329495247352972040409094346762558554380610695582488217681995127369731637904305876612707934278759491153741216464377530760992838992480770103037841226802400103784283178783275072334416756260045798761679647370889284537568667600330751277014704223701523910865967244059500280152346001530616341099059864150396894617087331587399976207601647172914150239330058486336091677511906436882520756072775565689409667017695744222301082740434530934477551041523875551553751755095690534088741176527385890703569170907563680425197721495172792740553677174605988494842270539286240381544928981520839442278930206698842302248050835623332707395977417719558701076634721175292699513996777871384898022285258790284007589778910978371222485337450157003200962727678028301731904398202062837465692390148822237967235676653554050381201394119590167382077617343069456983305612873653812482223757799222139697522491807131584117074988358567179258876373250668802777716295786458362263816747108631089204680359727794638808256271861866705234703508616232548640385738187485104743659588194664239347272550753659687060162665157800222448769009180719744925914594748149026742070423889515332560448621733944759342595987672661294150089361551443824767207213923578340766181931291600842452196331637227685459448394970093802954587550433236150635188940720892277466592836473028213365314422492093289560939299557127118902947157284079457971698740689956778309265198119999140706069432630539624892016646033599594626354617166889570167126460654164333895731340483623234728590096835820348826748639996442160099462799690659822392302995552630741032420420834654317419722218877123172915792390267129829650600823093797668611288510597579716662445315792655798424809346380142204706021869055253958133160138122867113457422872269259519926068137824545375851544576723964491982383950536559727622250008935921752242539817561329634798490980953196594154033368729126464381188081114819991343953623895284335668380365075699110411659588952533340062653749369396457861553617203133521512146441906646055798188548187727721086352147890336807588386942581114345963619685511268756705094578773845271831133150288144948702288473667728874407078770373734630844554699686036763330278590093736401376055442509426112358034653027401019631446222675028217056911438659395369944953017824119770642857636028219092305327146608096189193207224629218120379785248875977990160265768132899802843446762671096755192713432634519708251203583881630079803802760389542319096308635316301288328844370150003654390740881354347875325699441076669812468531813847860077043751138666023611031872945314335141386115658950597215925786125347876836118146898676420942361510579506668619707213382459285037654516656338173586025719427677901171303297619346822464764452037097050672669774753084756797749618363609444713971306914048575363001487052744661321485615969986681951989495048083428931370955123790810517893739906182895081021433110723479107362431695707238535468071481607510123316098971710579874042407970883495087548001664698077124856855945109566965176074222420543678872047873245335173115991694513664672821686437939081819970063523620036192462845247599883092530033579583068798350168805884017150674027706054387788319333208827132028420870273560230243708858922356595887331415623393005024990857618349842751635781062806342634421798446345388275654728245291436585816377700413235947400236109181569058297318161111800907162201004809275641079951820885213277922508972118791783477317164127283464977114075586848237370550339745025609790828569394018331395629294021106087552287588673952056114249198538739084020099661446550026739871148554259674354351482372451904859152004307783218339906663983986981917881493484719350237836685336319492287293411472703029708382010755175556590779212548439282491211326696352919778181198455655423529152839653655622701852613479438825730610895029079183903595715195059939409260629186749919799604125738653524597070801816142808455498205887254326142937360806426865195534132408628534971095563728725421069528587097218412379587605019456305619663039487176372082567168380044291859471780628602240100589593866160248339043998349095736677262627645142062396398906700491444616127211940521873069635972262310656976940140253344853913301282180694566150373357792386354841682314739899638929826272095800231246546126031183687316729747573449164752970786724094663833675806476005580020429522981999272324799602878480117315040560284993669803733930634208378716881966302896540634045245387122830532929452290699430093961086758544475025249572210484877581433681174999567964237195268917938373000673824438332253912552055500523612422038103131042557950910115145912035269327108667622423356304623255182209090846584636131731750864618734562435902645963360997299508006502298880983722458552390676306495960193505288706770496157952989491037194689654807118678933985332416575745222055779343673812561565052197522016094561870388133707265191910800632087795635516318191914359780777420751881981310859813128458641270204057564632150752608968844219354658349291677402846033985574851954224486609983015800531923693013561131219760237518502238556856824847082949419926221667730727740012194140571170447312427897870338281073106752853738297739682535412523298352579969754081260185722542489700567654871097778607319364305936077947343525080832835274179318799525677218308210199649852537375969261297661605521069706219060960896563587663825875891592631699535563784652513700668298852920373999222911883211803361692652900441504250755768489424588535581006114573938064292430077543246640624313405254656049604964838139558937905141866238830529937605082104547102597777979458982305164178063339672639124287241332283649209166454764585567094620349681300407615854185638031897764770994526021368218387176058353473117615854033935041737112528561782953494444586644346641292360940110550419869980426333577652299883911657235281456507061622200074324084016805952909420155621412804959161356802609761279835455351396804139199322473109206804833248177591907103049516934175963335747515940661832836713224309695193378763157721608723696069157171682749362035831978866312237782459484448437431348059326677436880815958834378681105034714226239093183578645225429622132450431958150229246129219084590779525306839327897702373772120806201225433057668312327897955104653365524327416724390638929638061867886801759109258715400061425479882603587629137999005165476687084174809309130427666835896094432145470469082844099498236486808717726167943901537866219581355192745037708807606961534655989747135156473149347511031731030915370194660009122052656491852490977923125906419340302301080078968096863165597717745522707001062673527673969696911391706294178748819053275486229642288326048711293934854676474652484489511374559067220147516906502016348987150976552679413805372095279288161888408962093181783659989197676525435612964589200951145015795131902759800950625369918911656042206465851224422841920110447192864123490157488375324511835973672688402298029186319942171012645075119525857520315881028799053250059066637681212178840993557053050118725135418291033819212244302730364944529674885170714420185430602174673877229498271946480813197966205174607161186345018775517477859230772623998487473334367130581867722756335083979243021168820605431013155625896285626759286263496384361840740777375073129546495275812152786542138604061013374109084587815063061439855630173203877990178092573118050078868581213297488968003592681657820960977333942968136379479587304613041738074374717001817049482111059168436258095024637008174962841632642213042224394557175349734912869146054380224999932560663713360735714040988924007503153746162718391867019742143413311755517973756788933954511068000491981246664782607140694010056618572012280633607612625137880498939927447905552330198491825763135979919225632006947639467667274995296048752123660123832636530578210162688960087195063507922638862218227133439737941291492430490499801029401557097841242891716439850623405151828494690304678636352998196455487602645127121762358903697732435637171111369145282939560114547643032896974018716990880003515784073920811143157354376291423151337469369287049833682849287145953564110039236695537901930903930454406245840822108016222255935424360636951996376958933986751448913974432720055318746577594376835136179517337526690830381574401174304386915824698329009231052424733221258834030756998613010326618501617077213704992173625194787982629277733602969703828246810307637518144670304114579297785111508696383648661023253831422263165384488070333835890466155599437692271127146428047884819289665640020398672752804481019851900334653250839838704583103096677284842294843707952398263492992105037175323846915030450471483084960213642976699913993808974827668134080081434308991648386774291439459910402796940224995413999182727282172839172108485243556694189019458876707614227542296934815924424665555919179639904855254320707218735868288643295473794103258306321459799328158749398582403429299999339108945246284441613305510381346385548473360886803827296959835458998549992988660022153981148849362197481922698887841206370591149935924313487724975680247936675659783226762543729495780025075541484762712539120187808935370792884849912184908375648294213979372701249558642352922182184699655254159354549726735668188001648149867643458877415510682612900610191634334173803146269404712846640524689678190987092369448276788395385954379852233183684480700659360293070458589013924321057959172403795909923416032280093021193801309709369977743139947507252440921336509139741581774348010576282624735754064025633064063528190593748062552988994874345098346012980546774194926940494263190442526534636476633266888216595900585498005145526942117909223471590122326364475828763985892463191348363817050706905431146036088483338666358561303912613023689233361964586046923216541573077800042861541753812024862277489080487997368561482216741976741367685054009543087265354079041622577059007515882943917440619724320038056830871807673155502579559161995179196075659444897794405088489268371350802953569873038726764529398582837587810523129494310157556803260967825788046099048775894062614919359225833807598020112738829132039335305652653636606814421138912581324203045637569730072541561993485533263489032242730148180523410527942989635709860225278343259499280900479846437666297294686258349501941162625416331975745900585297896023675855557034258631822955956010605671289789525955310389653208272311240926260998072677670604899335030744388761792903361440876727363788174388162923703031812757130886328496355047140717156486284866033134789300895241473388193910188271097713252211906169487954777851342038022478974661245471917526683418342183242656477884674600023554623752247195185893090483313885696629145951161845942155265883209303206968816812282412646187211722429420281167941782782182069983760693395217306984537223061959145420165765051716423328079676358757169162164929281531213279640694676310200548306464240874775300730298302152971934818255105060290789907415764111215980582181102304031140008464091345517277726051576198329272672138722241528622527594908894985068068147276967226206170738746171678381119865453966414304547986585814134735650960274136640324071733272538365915850453815977210208454774102407966211750843297659388017161402653322434728265353559635721481485383916879438077153065656537616003839621100138055932503727758790668201395100504302212612948783505019001147447820670435930617159017165142307006323032630637091276805126169732568237816996364757929458035017792042329999547195147096989885378988379883351138899548387394789332373388738671723101604162019859622413537577089127531620608540634896353922852252809072336919287206565712160425524145266620186728143285966649411705786544380572155580856280277641275553476748666113878339562687513225017344774053495620553201843477980955362498460838298231267540967283279890305554273892575098853614776148462468566788257753276849305193769132952089490960575984766355499780301662901555848709085707989935178279127946192292537639894454526791158924648113449389753218316824745630784838160702170184259382582087323326545614634680911912569447550158260795040636325632262079156279025138227976160142166819236817324094907726455352051600509462973913631247565145033232826219257613541344149854528765023997655138305041552655283252580466172224395657554640161419610914204707075552957735129851290187448289846012953946484665086716339603609669495629207679344426777447335726622903419237060636959651481736126555567074106231966243514902283096266106758112648369772652517721662702123375518777900684399999573310157986526330355534573249212252234375127373602648165800447081469029970241372295806644743248600033679644639731590090544627554553163290973145106497040520393196151010885088311054291812156265394450021051268054191836635432128435837925930891538992736134424724567281113250295640114843992218264522411243777385914638959332806890387893859715911035884474180089632582113987982884826517050328937458888681855124740865398075754850917495871985599729206169572271303169364765227493264962829006194319103609637610840147025434453525429455414094976564643706328639506858970641878510592715356331994050452123705494466194188926080068204094262823551483607872302657385600260710577440164433812204208219513520320987554307937388374206188353163459850566457094586223184026694331699952590294176392709825047697661092219534532771235435739744126557253642413769973893208069486883611370334364709163112777317114867711544170611492304762677350689982523003788587772448783864354445214334718509346429809889792447349158743298668418073246214293275394482887450946289308776953507754454864710769586939173928079948642546237734517039352773025325880538959316084259025434422600487003013356788012395660920178408858828164729034936531964711177432812994949723938779107621423200643170623841805166335271629495712909128790802325995511072934376994803026642859036180170875046668552800214948994371323321295975003200361520562635151140551451754331614139802079592396979648702047606729701445214285717552497913492267885035173047317254761383886434570896736757147348350587776812758775054616142434855173318078709789380901529054350384122729180371628614565238289912230227137775367003112355923217167720723989731780474304344266529824314920186044617649832724424036226562915373954586027498226052470305960108919926123854449668091247089532071199637724329829818459361774167303640269096966292395459462957970805818291930890493193917446431914680409682960881597967759867390486085281664492614862403809290556204196383736182956014405802347021596707836904276404471223159877737404436186965410210337178548157446848722473303176709276392643278671238572092736716189212014294483978018868639382120323791845414232431220495606128812101179375415828816455248915777036208382513569593239150309107801084570766211515130047247186501875294913996666581694386280517209188616195566524138480861429782336060152655542693838758101046283518395764865073047955671445174412823434350791379403666786308623039525585414758111768909724307500031447565460772540063536096099854026240526322384486400769078353698000244315354585730972292301618373878119404983306546568976923140790733145810448507229677224900079638325442536677384321928472936073158833516912233924405935709358230948447276427574102927444771263828950997880133611006813870635083632851114467571423864162148186003975704379401833337894686930459639162360857947010507208183908677017012387489370735704345085925532954331833830131348959533404520014870971967347424906339040686721426163358802683710832032281907090859297558626215228741873054605273305764818363856975693541302961040387785779935069728442858331367042261365702628103505307964393296222092049369783385822797525240032291907189708256006342910682866166918845086165465799771676105649281987518837795671686256903985532330574658454099380282839457066368908140376147201757437653808394182988506665920296450968311352859615953997490470720491304496275302797015133043939372965844519842279457048235577050106902256634409140507155116731400623867955920678355486048773824844670466893229612697330075419700502297923595843214095388531126051259015253320986097907059430785373411137155026371608894108089994857594852914999805361624339853195582324198581686324036329920511214287099282385343025765793367552337765678254425743212146999725615097590946047325835423205174734530740067621577292094301380191079727042485972747169034930966375271158797391438499938258950704776461863395947173053754061472131213816485309127556394845162240243147242151239589004615435063833419750206706298910595201493003191221447617194367108889715724714492708902490326181210050586564302916767672153208719854518538040745154810173879051131414752517545033298662808849998962545429542368035367758041259697797522849945732141040855075839485106093595262292044616175748458865140799229818885503683938173468414778410230602156502117654460441699191937765691864477472831284248084260436144126551656229830716371080089229328654781683197811809506664164766783914571709012684826855289756831860620741384770039704514549845305237896033854830922392245350174518347665755006171600793812789163569211272247189517149148487563618715155657021934153067716394247645024633803727613138110432902239562659968838638188477516827092250838276278359494401057696521415412216645780150548345054011542784655417867646771717591351204333553976955067173384234449696515324801779930796689231783960771778966860669863443770470115283396769424432771277837431008941660594498849678047897763593800963367486277372050408308365522766110924562586954111280812189026688534985215576869178664917997025537765324423835313871563353576127157637481859632035939992052202941746121852068966607579256660502150985676260305840581922520940756201366906503745183452103078473933055471149735681685912216344814830360261571839132321264693328167076796560525208453713600594304998983698685042046709241468490859847019717841329324936320346592575636960913314915533072485051480051806720178878316037398528619502660899977206233532210216864154532387990754441931281209499767971058097089462653592510749365346839573293831333827934633739616742219227591393392313625352897744607744244814359765748222065967524374198555435546123748510189528520661417063931578581214908350722516724393022229518528161178724017434435779320830114716413747818440020275192156891818038809585914998308598847255006546621835572834876895511029049065821524026641555417171584376377558933964986789271799921756959905999196558381317243277119593415070295270338445869685339902030361080192192513067723710551265622012715317949385622173111499132225681927650295020779261846901026218311950777563669412578449859670161319765794458220228616077917439289826530408504226239671829388083832584238062026158519713777132818642273261175445909347338909901923293704981832984493899626011857160922911082037842125317546462728852245779199062164631252078719516038421074221175253105542489139333139059128500206112748390466587594314100658883119007540195886666416900159671773149203883846378364264089963171332110948290539225608171242364027232209408192557861753367854123679817484442901810868492211589420118897833500495746126559396243619776322267457186892055755080142797898205083561244098365197885283230659458221986767283063916904440438940050408986977562130114780140882276921110513000557528202383564185037839221045484451389618841890611059747468737154485783283106423016283055620581068714504707546775553810908106186806266378780947811583738378779758774368775999889605620037357221771094842698333767535964749192965702403903266960763712152049144408460526531660281996532339552815419452115927687381159270248287924124577999759573976557391514459939830952434042688073686625730174866623178235149159785687945636510141413681261427958778653398549049620104346791105219442332810775652365279671874048374402313887508333830813719379307588263265087516656967931217050471875819913135641064347121567231858839625534165996924886918177100475900794700279369718834377706758795419335261808448068890058956394777262951622990956034392434965701007333074069193848959006065420431945699517883541158469825967689266327251448229332974817717659224807617299047028927627441720415211261866629976805822388077115947797835861280773797628525209621687953445323465183740011016495140014239728842350964432321059068312556750549783874316581390978401273149717249651770882254842556806441569131283957540367207108025016001606754650571706822995225401192317712208590388101313304169067993467250374537957936302217428258659179409907038575874936180083850598890853584872996619203562949975539395861838977889153751958014998056611724643226160716002137479691013821813813315092891562911298753233525100321593794097316814944577066510606072775249605671052985660150141652351403824653118173162642092110574509528748932110443258972836118848988939476520684462403818049376404016878667025069360294294254303606898902875169804423632738901913067249259151897414085954095349070438358846016911254781472644340049931302147872720379444859126665315043450290516672113431595542292067991997857077527946882123695686578904351691432592192446514697854980253205346372120995513275736012483680302315876490973636613500281759875177320793993175485496855871874273415617274992724770017285309010792925061330789843852471095064603118817347538974165282987199086017120505522054972932612114366141941944205239004384334812118545727622389072963291056734687193080116211533255504700247430153403111966324506307543734163184698055198817128076017026912426326601384397675265243932925598490940374907863094817447191293349440327159415200076790794017234275332190741007436778384423256105054911394491346836518120116298947578401532487341320143425796192166240727157265758857370264053717600845406616260270352314717773844068644518492886247424147103582875669902278074452928317543644965783757036465347949282423653811117515373752180085893676064723872075888826552027924024027964797139893723623911989315873047212440105117849219943977141634679314807218757334473453958470016609385198239668322595220955040823638946629788004245314850903527296655024880635420198345056975702059264713775019220196561131086707542900009376677800979138000212722176489980901452017567203754991781171841092684262687578860749027530986449076600186203047579085691208507404130004541071405465049869703401870888367588466851544788537308597122338286105402101393335625270405231551837761009346870548965144808486842352431688484569463164422694247565906299477714706162616706697373570187520738361725095270826011023887310587989904625267523594938614739233453531396057584143341123482411508177897213695401022708322154445604322721168082798359540617346730398998606138161267401269424892178273208353741514461163249541192269061332712022410907745916070972102031827493217684924979007402530888873147757967454181212943664875255791196365423036353662436749800592753253164522062211036767028826803489204632849622143263174212103262278931902026962621363063498295229660562156740318980990681592514972933518676453274638148358366275579095980543255649414361811032086960300475530826931035736628871999793418783153726718270736575283422332167677946727016921755206008641887710388634902326315919220193208478073347794038026525198260430011856352906198361254618599651606161337575041077182438654027148288091883271391055909823188885134581816497348210614367831396417195190923765410058147190594272689686786155925235951539391962500320278542226190370535544956998303141562844837037003759301794651199579727804349559724748737963274667768872410310932836355051561839403532542230818150298949427681569754024488660192267866221038830620103865512962321628103364984303781957483557062959222569469289483881542562830308561521085420564254660616510889236678891078380337890572237738520609458663754750651184577123121432996908753255018356508925699393061121255566138990545113687952239931413092453225334634328170930991287780671454001677730833277298822304575883959162202270437572594656575088814897686187036637374651824628954503300997707693751412042914587492100905370816895838981041387310342481358108798739560420760807849240098546049938233072597912136925516182053875581606666139930667749407112876306513529327058340549055627611051315102836261774594695686601323618594046193738235963801002396778940190463016122967491367025479269512694041128073849630287407762364930561332505617556180298970232273541453312894053313419026616201137223558071639450419882717671591716064641150641611246125022254007183410810547039308503764444241220809396983341226454816206584215264936138170781881233775480148227679056270490079080943025653758898471650849108352518910033151726067929566280407412932299120966932770286871574943535919079434942392171152337844759048061895962884592437655658373316293187708276828782612356960740637066172003766063819025175852378890304559438632698131629987528534974784844528781193751732880963320862569152589139756801324053222340840018464200541321288595817299777845956077149547415764129266949986444296047883054079069115672355558839164148590906383389150971007028522177772836242078199572812362712520406211127787682430886639958688631294813940613712226124984684059154253264118831591134490426068535555127691609630974573730440568217510787131887398878281695724534529489427709717660019533639614020946770876177779539090910864871805582055652008833279140609711540795930709762074121806207939229731511092066534042695364160111239303787172067875145898844219120439066965239525689031015412119688948300391761901329671224121839760878184038134679930087632811168907980085974867115013081927872779682846526226038799109577931774786998335801351350447458540397225446197267257981070501372315130739400427371227266822952587559074074661905114415057272793606880486480625209422793252729796826728885500889511434965674843630775103054082234195631974747518450167670812398417714588977208993296894832470974461594866321030397498536021332405487800623392709144841819331320976818049300251168339981033181869465002647066817242124721956870090260593258222971245685133452228702379955572200142610578331710541281102770656152777004773898968431379439069900992116286419276175540150083727256010296166276299153710398568518388593202533620967809107015585170091937962835509325237863419355022213807723255919161366594648385830585855004505587418172637749870770158354915292920648048836119183206041119157310317478605899672549503761907953768031314031271270897498189640090612837079816334615562518873007878878988511066277666128940050903078912036381109964423239903304236339557300202750355002395713297646177325955195431949647291262714340752873182006820882069306812293477095555177247622158694536825219815075074779999861732097955757808862633504080411178937297389435853094713285152069111937832662480829339260157216344651323538983617254559685319399432290768637266188168523859568443935221591693662795636696889798371289238400412984227633198392249254887674367662531527764825450124279831989710100994978067897194553804008056268060542948873407672129666451799096493388076072329334831115882220906745668855506304022994729592209255616219828193415185823985932216576541211092497367315403111309667657611265214640394629546294644305515939286808956404139128797437317596419597702690065718654693905401155727283687724097405566898215124170641936774328939296792613311218527941506095034990463805054877791146285443297371674153123415158067809965387394608014231393218865095812372217384148303264597367685025658387478160609608401819801969117763657884693403472514078875748632478779610944347187970045815145659543551822630764095239308516509023895387589007339912477521474427432529299883277906553464806979304432146010018562910680738029381593825033355230231110363774877762813711319270478922250978376444429247080376781239561214205741355975583229750400374835628140396781875376018831730054854597257051349769899172546024870809949945239983393195177042388725149746174879471345435892779334475173770390572885411737150435957333152143702857657026833827768866590035212846311440838594159930823235933215078190795165414943564373239392726031406048447947419736847915791187607655326403375782966513707692298387538861606025124431235209182002879083751865382981776039406056340004287674982767768931572856303578593192510073053774133872721053048031669345741940956662391434135762743459018863342198632743076408960089401883112332897144788734181688401681175008046713230796274908420517546686215972735342750192969158500271325408747075492977085885690278562573925459024263568609463313480420174230091541848868582023298161634233023400595647523062946778597339566948298507144828320592313993013713482032868664020992938110120592275451762312925272733442714726712313441078785341946486216441423657725501615489193315433972067578179168286238850118129505652236569254842449413533780391273883611474677763865461044777162393845698568709977229639876437361913873331475691946754872944357907244754111810953541391761968638225117789777697535372896672999138610063781297257793591241193004821546147989791286459329525236834335728262999138756172355386273871184001441772067732011532186529727121472431458407019378542874057002852663995454982257016434326733695859452521839906751425788037183899088238763928527634935827572875421139309598024492668054074194181947067352781119102302527246155976823388654916732061223569192996847531242634261779421309312746030758514658202998043139712456779095070450544140603670640382806688512001592453709573712552133085814447415919508937103007343469537213902671146028074087311376397711254618678927821015000175129823628262502033359231033196249657590963926551811333722160308506234902727137386638452424395333869438785274947287359334104707226508145256694254497003767335195476983955528177428545110757352975674784932814509847372545717921345482591564211933594531511572019412831251161331689441420946912468395577021303629342121901054711756468674053280281228037928867862581921202360376716991137511361394211958242483222511025912190719739322484232600972365806815679671228430905436597962786685971371627984077034824207379647510729427286891131086021269648336809231120503754612004066133586691412838090494368128298532537722088228192862419934497010767457174079021264501908998007058297251569025345996819196304821980107628138368076195542541473517224936163581795851841834116784236431920067583975973413624797390431232732749023430702980220139425800665577346817219209426105920457937395557205436481699672925121790636606310699480135753143332712054876779193523782731795062133242037127478517666085357231138301192127804325547376093219469143128413412031282821965077783927294165211125824977207499453047110619268261175201299141492378329642882035577583518458263264075989739004274791717174312170097442615895249084071962845839995346979823248275249422020089073271689310213532625447639886073659241456962078619317677891897972853402219578149819435107253903661567767530500827714845743116841759750979284765736115798368891997908644836707256232394455823025861403427997077375005380675933307972645400093909377606236629235725482133958462679760396978838675333097019680959479121773056311049191769371212762445645779172787174216040096939156393763950251746852661937078542548192751237612875499972227886649576307922706640457525202201149248702107871367313314089524008160926080250195151517874099284372859265769607673423329177611481220804590553735268779872966998517182324049373246663563788931104526628782042191764432734735576441605947797045838294115481099223512531795590435248998813915100860432287792704260398394968555160115072318492443013596160785499472805885516466631578681462878000289019460813798529106640104813061567563434096635554499806689204480009867952383301369884129035649693448058933389024180744627799025992494773107670814548357744374118195114295719378475812653901954579929602391872199484099686230240464955049710626337761074190098847067128361341525247996936176904440050888402833876058856873847863362484200285849535218253273418158239235293243738052282772534997093902710035746446045587163435509092038522850538213279275006767011394013564815636028147196342084233535777927381188140778037915358466735096386584780635195136456986089997571636908667143076495616065163744254964885992006776681613975549911219736247298624771864411318501786157860796422653095549673151431933812555631447559844805541702234072636100951159854042955335387063021162968883492158404114822672840680019862114198448315060767644026822837432710523932106394187979338474579308628279724867494629159739350936945700530997861913811569412011475772724936838939784126475888345536607560519844126704641119631130615697134639875873470038870240887919512762164048160018435219325051888196770787025544123803824811649608340514915711695557495763936972983618013548116084014419050848451021266920174096350998605004573247175789323390748363098796353253665713967549154459301405969321811288829738856830804880661878411024990765045525755642338838714479607467884327339969657240945927216604926675836966307664035772866528822271705883315413586199441368144068947710345145134461572624388271869690070955101715581388567751560602544585622710089908293744060502459093077520523751904755143515036492357626686013516120809308867300410590339498024313142126591163958527718147150098671222414328594542915880197699968937472268023379714820429986854734870697934200702220780085224293498503451833814843063110044192737274410545532615286425437068267313480224149137284900664111756556234816087090796531337401106792631273156653654325286031098346014284079717205506486642605861320104737233186078001496549169955244338056438144308914966395198774138138537664220167301647021328031514260532049508768974242104803955428503138693417548915090799078509573159862428376286109533172107921539469937624806132474677740433459768092261174095916375482620933160271493285479578821722807248626360549014146846760412743652422210096629395450427002959291234368993272138256756181330171374665735955702904985500789017368713275217705687585196911398552487884927099256604694855333492008860524955134267624099091428766803664304391907497696131242780979309872372545042894059022692849096284826899944699243805098213852622879339663777176818959201004478687178439912642857635134126381431559434132770925203725645332990972073603812436959556390776069213927408499002901159744191706739593162345201374854775724109841040650347647849659789239303394932132561635257212545022112302261683521020660476066189448074552605468551259412907620298802955320362868724980863468172171797992865215782739638162621056508965906296854257823787744794907898382238319664762931443656878715851801179461351474811632046536520762689324364343875134270675554349930822374574151590206927974198394727970116274078048659592470033972872601177292126945132646549426704636178758079214158791469478243108769224143331884562732558287957838967500665987285668583652324266579604089036683730690787733295967521972417702269722109430368087147252746089118854505387484500035585976371829505390651056875169815755165524966443130477736092027799484857343017141752186571154583826435899525653613688733799160953371471928509716351223819968777234803104886011687838391250483917582742398897338256659008749803127134837890069945776814522084227839341111992525295396704679432731525630391704153466409612804657408496103010811540835330919839605483379721414162509213309458959905123184327703137820149775971932223346094392798611173936942961770277191620614853024027940256108678287123554751026229397869897431728333843718375724978059761326792496592527844524090034074584973882646990055235585506465044233983445501221467352190552986322470183474474062770255984695218759456859670743059571983965344356911522239116949342318767824669977203165333512959883319455642320871122622811558714403173804452599387527527593463340996489130601697985584178105777097187707835914265891189895671552237215233007895588127734368862745465675577553920579498838640760305417321048050170056699251190990788627516560791323894407732796703776540948503402384179508963379119645657802923672527173754930109896819349289930296958330100561244240151406053345498418791753221235610169160265635950764351734894616948749115989760191103941566478397629621843775720538592185657882261143283595006063272367028329436255053784591798082104447038067942985022000629711012000719467280734314718568195322466000184382120654438114296812954011475413944291463370211621340405646931513023078365407579501832652997070975048808702261146683202948578616351200358620859446317735826295180750749268201915158270815082323111907013948440327540336887336340282135595566341401656353146512623886104881711229031455002646832558721242696946350614202481176212712632194770256055447414799933494607517283649968593233118765217612610139369289537234405108326879989198487737272070033126731270452067146255733125036792863852920726289241622874058366432065149616088375799787744906695824021981332520515732684429912779060478357920514100134507174459620722073537027595718724313434058967924611007703997626910131100271323849548264236104398950310184171266314669161507761091919417995881759213073262477141222466981611889859936214620257436902470504626097981436947599322459014533729316058574853684655241880977085932733008224845622915029983435781123987188856551745238448503725900192039185206286440528086645003361272600456546493246920037605185645922234535315144022387125823507137020893768330573955518499572739293215749198990679982585229219331615430515946760385263846123711459178292135899577322107469861948176968719436250255569670110017235562542028520414312500726739201092909644561376901142334651252398761200806264637954943623145570761233446725572379084274224885536429217798331583119422241874894677929731738948143454783485267779480026881033009160269212467592988401889909735071951343416619707851676121122783837927543345190232207320271455652728959207819226750127473089202443396776059238844264658245976599696293581458732661247342401170914505406336907951965344500500674854986975380757190853386023698667495708061450369842531956898489983532274400061584237506171272593139887574207350801270364702466597228154283687352948921602033247152722718868224653175664779683509351871108788095022388734749892171187614857408771053523159675448714673490867691401378576408660879374669251630493973339688122719429326030258014063828665014033287095935120147182524828365010660462693338178142883594530559387481958930233079617451339335368976400961844202625730750733341975132804716031745009716178099686065971351914312246892196908878247822648583798925931931811207605870779498126334013962457130455435146902879007286116334558685364147720189457428682293105410887921852990618595450583247009631882831896851581124944154421973650773014316504839905043861339508752516667889604424953483159691183123762007004887631204938477919335781296994228154482500174970971925502983899729539775998351076789248181419915461267562626295294228040709819833549255362584159857493493336586306185960007322996821110950634046720831353183968702355268962683811772633772995961474954122619354374416230412048494946520347085069245897457239484731209711732107537660265259999627913600378804778129571383363043609791102944757265428325311506284880808324308987655982603801109640859950490561313398592507315576746075973018624856078729228906086761240490741777091975529504261455038599399651934070789449586118594389091863828526921512623772464307008806606500184854865825289290885633347219832536773172224444632214094214049598205249737728609419482847910939904175746048079865372611746702305223182468478571823889217735945342974371593299556967936509398928458164330563443119450766638323757808741457840405610356807450362080244615472119296321197379965829336813992714126870664677018112444466242926538812932118223132738533287607907094287587063513261520967497250009620116892021560457248239631823448249909112838459794046899882464792355410093046683282482499210648151624067654494052620729828082362063459526705577221264830952933568167166958451771593364758793865990766260889850789571813306500539379589994542741686320414825536101450989169150097358589769402456076140167966150239087762340969684914328909539576976581866260060887604381328851105423061392935504124522742366861186255946935791642058619530990206393226518882071920843001893673734214590701662592748227946967266733679289639552659555379597558324925881791456967972168575431066016461854809422214658684166050167324171224677707156476766209044178762796949322065582326473716836842529708932363520754114943557250876778397869425828251565993658704051916770277247806953912128001291259900262770110271852722350656966658890592088203846137269964377526219871829792471421860021138840589143984591520294105741092664585688482925616190016127229281620996569520314500669713503426676785086221075173697048172794622041679010200415411657666467617211077655628483814669206560523701612074481622601847554803477032770472816542187359899426823330990169661484264264263521692809130133989074416094456347085079140112276066566291392420971810611241153166503500946207491206208609784834791054746850975694929820792009531578607618965201701087309565227473772681942205143414795718068011260314023174044338882149542147638420645563909441946810703748168360861473779911929228260885210786498436456021691111877725622316343357516185701231229411156669837740123865747892481363098523230813711455399342554196019532850688038148069005436687147628964242069334799588914221109796054750102040343039944157611360421229299841940962368965826068753688952339221757936211466616843509723298657814257903715195717769133820319592521668325541949585705195696457732710471755421648806074468501788057863603939308208951588681067715875138796023847895911003491121858223132877944464265371479375777753860184039405647452198074275488635018248463447461009847023431199247094877945733831021619764663044696266317988659854922220524230335629504828752890379447033139217750103377194656153765995668003213863960848931963870508348964124821646679293037760074228831389933448471528222176809578139149535973112942794360676178199322154222060328052741925673273775128829778343367939108221078860001414798636717343751962188970726925788615365726327667650745039969982325286701237000783859364271199775411272765451220800895821648669341185507847118093066235947510468424572051150207943194725363621814633348878518598226538758854061825556353397743993028824504734786286202467464961512808593609334884483814313904210849900257727727347016081432684166615633540329177031637817521536280613382496743032704830426579966873285632922152085796000389031516026887251741649395545122128425643930339713822081776747990345591644107277348201200089741360509808845986530322746692705251081076756918407448677941375392563001956226888270220190352176910446098592620954462388521790269178029114207139128119832145847486335248996582731443106704372170879910717554613868465892597354643626479319288644668860136923674813460861577148585445923558834820426825267467392678198630656766925577485436515014592657140393733282799480147238693986696991168919874749544513748146030716247378629574650736692072814658926906844104932105422236297504223569638891278341520144740688009514336763963450770776927117592489178409224165281174776709145398675576911985280351427900017888875481724976590840604429064033308123338168321522604508939805869221802505736846198101500479179135194293162220241274800171313196900762134262229347774131606271703182146775773999389415611006596025830335442409321718614966872582301667098020122469113547091207827121572067079687266287430631933772190593794067536447749868839617729688188867887573031871761513597910549085631587204564741727717509833730580503190872442704932058418715704065632074064888086076563933076175865199314026659952835057403955011003442742221290841786609910453713933896909348943483396139691748414939074725767905645928995261702648480901919071696609757391463445061460950458729375878570762954890130692558318772560609616288936129954017357448320913125144767917557973829296857152662743743675915410847029854826719666124184108016898378761765103946773045282497187359081125776803180982033690203971792971705674231496408232825222638344934268849954378323407656190499900879874433129678397633392666249867783148623265367649673512038646284379482822705566843995299577998400112164375177897402328739836374613047956211614542850295166199496969139472430862805732363748458964791274509422286558917405646702349606632189145965466200407614635514147195703349140183393912586063610093920180251118831286481954951828085831262177622257350532764150051749155478644385794871622354127260985852721379895310068074150080276036495218575395631106536339796662414335534393488654801095631694092018046978475644847132849905015074568442043458040647120765074181700008342434266826246602126631006285509226955767128546751625955396449831366818700843409690115449323538236766660834038194390611334923347627076130105114018551704096970104536402925252430235408361190405167272680392405633283744585040514865505331165195756091101941938591655559457388889633111145614901454943920370488859070818346976789046980657916651073859023115912988582127066369629725891476794120556884920755004850620900327733403688594778468058412585452916837758959793589665877267164163676507398843917406467449707795044264122597316974183666223345514039890780276177128208730719019409276585820059714420535848352189278309952706297968759406892730474778741584249388239728106557688415169560639982981934017206439351741192911312832105329978619176690919383111497579396228540208559863831392194567413557235115791213048710992125996022498618068990943940400787076460115894846014433690263920634089688313964240924296091021039783895304694401836372045234726531834723516717230631380571975238168335839251309128257040635091237702567274235981715700358933315157163274746359665335899902417625354155478188363435951221283801087277039144726656241280690669660047220962930488921485553661671009589812863017606514114240796981065718467683234768104640608170320906912465559020122367201773060031793652401603722937620186890097710088513992360105205245846174735085806736921564787261935156877834367893794783086656995710441660050247080504281403763480268778234707882662183818292885598543128391656229317037903951984171495606760413888069216239704915140491453565778396056293559591845604482655125217788453021623589952314095975239906865418218868749939608404627255527857245360169491804940318209602539912670720002446081383734109093600539967969866286025400880547033085618387887573344796422006411265360254312133642784818658262482445458006293065064466997259347959132629113833252525126869018996503675251198377924379880220721348423139962545397636629760321819475352325442230771503134536169601151269826532181284876209615782929140245801744634156519239455986584106882791628861237899125893391300183509760166192961536784643663919528498440252035287205196785210816108407026972660629601626764134220244559154818298332489334968461197914186184605087339514212670483773054256857631202688961128800328793477801697407276494028346398886239829404012065010248894306748685896876460857962092680624402589561338884773295688498348991841334417820340271759968770244052351050717941460730077357000735072993526845573657500487304437029412679197603653448688405446410311270062762801157555175580558897517882487078190581616361700801596678049582495242643503145102052228842765086999604609732042813009743020221222130822451171916992899728324802263603079320406113744062625183758885544686550516564651953638432571309380034247109812509041267693376626671042879397773411465307401286510703164340341642862519653056416201677866266300581618932642712853707540144648822486502527792785283707583367544063771560134875294605157748000982948157413300048721136033141131653822112039210531356711117578153167688765156506680070422868974767118702210119590738305248753466481089989172436079289348641528899350728320693091741275045950124335947816730390784294214212185123018160860048818696387441621889540813138162927885406554410017691591304503276604806919550894833089721537963127131327690278692885746889550088267727822339241015881728551861635384551259427834524357975979086493818046878565696444196772122704200484230409514541978055142173299438801295318421629369734933407458860396917391482146520003972756730253668052128019615868145144718076667010833150740204656326325792947005865108837240401066658451764324481167092759055572469617908280321143959268549533698449767030563009999351842345051589729580141600085872330595568640591037918590646980981111605807581766824614899342413806753779765046985062770362259899128147062528601455997764530596581023648837259043096431042300668680162860204928010538525711132879846496767387742539435494624409994462387316874801569457534174771603929624657026915471324507181284950844914354642550665547279773801361795333607216130306398483539410997070363075446073156421365629894619155566775365099439923716675884890988028239273434329077654297765991757396205446349166271617651564679187012318412750682635584680470194638973544674171552841530654586901360786314008834362918374459615564189676459763006012820601525380070001638351531724753578760861234278150681849068528505726019016089766343632782322139730182481110588825294678141270314619479095323536369944706079633693378631843276931100370528177513968718993752164201199557335418357898497289109762516630985542732459332081427570950742776172305259541610552086677157788392201698154088898711295244067882869808248648498590079454650955867855364910637068166718734997448961704739878485210880078717957972304080659096870095852807222164659704578071250252804435756872506373375938216332257549433863626704121538127156069770979116794948831051379359424919990688469144899665553684795289461195378495257549270567635690140323082218083879507712260194406869356214286782673186509565344179359203833815261492797094141924626981571600639257433999429559764954908774836888701457295211955925666850170474809557111975559781013303288208404851532395915897419649381854593159685203688075534980043727467975881515326006808114164025751031797821247416491157061024706056088872434264771340298023300731720287319000663501383591093151015844258068550262197786813134951167504526973426068427134535350313526945655928677020676988792948547412934103890074850742436721032146581425486540870501026556173548923851945544722262815542263577098510445321689071730815014790128601922861857091997200159893930188003777389778669829740757374467099719098121109935878279690216870249448206654935614731325660520659282602417591388023826432243813463753191559895019422528851020039810318317087390555752920371245228131740484231651578971297640495759536900670968620710634448460150565268319748846209890657638521385774615324706910533674345432969761311412493298039258576676409595609637955336181147996224258787195984570704232070541980273752751959245968016017236681473313902664839726704302397232635994812786940077075824321517467043425835391605815373780314340879000677905323728145332284584196020229282106536158119008184542460132565891522340607580290277178289779513697814421761124394940693352366824826679841928294180960864677182255309749354221627401893304013931151279357569755581790981765821422762423086308623463483218436442199810944335278708230810679184399574725790466219708905285619288038906793026337734945397662015349985394187964823889170900850293004822609628014501492174988463826927494543515858420642093618015343830375245533709512359124295134363301146205810530498410498151959731096857513464505147272508417365899529787032137744408305095134504119760029907289491586580276784360876937502886002184765838143186972873113822108473409744745006763076545504967332502607226163340596952050362593364814178379174130734792826504150996680639559393049434989554423524732129124741649742677242485565816644907467394998366786489282653453796973184598323579285839056402255812075187662794587630844561876772392149452566402382423458465453722237837756981300249763480580763561611536794751524059056862346088295894855332708284201571460848449015540818439056267091627854269512002054590128440603638776936958812133441444447322958051828850024160706423935856818299381340159930921417943356129730847742396905167148607503949153440523815351233021785322716557704333885537580905818756045087294388951681184626891721386712804113310649066199406278154474368260101760328056513321030986543069206153004412831431016067868169462261613464232186207897662372073693513427542984794326558730172651612301438924359023737366077237984547791578130218768209182014027878134478387866660372530085630444313420452071491825990241996893587108515819072797651140835888091973733029005005319832811435358494264400773864946695519333382981242485415301195325131627461293420371700823637121824370550222501545107823553028855083920491853333495606025644511743124812127387397601115925541595053098084091440594804264227398101273131952973658061007392202744304387017023068520582550068758005211544603869224375636905157154189965806778636395310096990216466267813670433905647056877320891665339497809392300328941076795738991460269052800735228663948728635477487939892262801365472930311749403278589282664019177210012175923467798815571992589569253358138855491729741014875441490300473990056686964127525812066723694941923060052508515253089820293800931367004086969021695086637499701110442719609606948088702291633166389785063685557191620151659147900016006559375574832100894328132920065100727440667818290709067587289884728277296672949454965868270445778739775354974974689445939760153363775212218925349748415008676066168493034090139371416469944147107458763900006531892819201786412290105890350980274348450737194902840772941672746039653077710307720500114046675651455803161351689221054777006420885156613976330221779835862539380344956557868572830637167715425622208409463531016937565703413426182967883905292207898255664024940360703754761606438130877598431167698248374789562449921579313556004663368829893967447573957908321676251227102642474618515797150262920964559893359837240918561490529187933402243345783429345114039410477804273316193084800198171816804104077468862377529593319188143829480010617689197210186167052144003606502172103468013658967807451123578806678060099843874047635089089687706708631856003170474020241636489737926598921179938429295032087131229994667689266804970525052655940488737830246094613205354482878428386018539391630987421961787332319894601361028037527550272843589721429357588982900882540323056410047659063943832915608512934038486378282007103244216727759101092374188565106992559031855304940431111952755532653687286733718265245833685504543198126580649618938435007183688752351978026821317551314478755492851412474774178430950541794275948814772690127967513400790325725450079925704844187402624064311463530986600319541593393928827938754694837885275089812222127391063648595196770754357324868875121512077544215435969894587377087456831706049184113270637643561718527695928607855210749529783529983587318415636563251179572002589129361852537473581510543478003002603510805072362001148264555590072487588192868514200015755428791537701196854701048079185645171920163730632239604423650908034472088565974671011579142214506602557339076788920525473135897165548182893362715810895435249264794748848332162773732745336292640904663137174799543997202187900310771716527120854185106333475826595803531277822565535734528087548571416161391947551099110287023578936994663994854621843083591120289030800846386276541195166553015724087246018647475049691566628492655044425313826700938006742946763501666946221427767124009759023732008699054054346563694265696121950188644925621190568390225620222972754026936760565569953177365842705169501364393560465516131862627576293734898545657534849614453843537843089796829856679294412760056601100922778838338459643603640154006101704384194746216464475290504077423332021234085372662668293723710004025717702213094649729854844431499327083350693843111008873996738180651887071144507405984690771890919424339330822666224527673346212890387038777953425699520417807431103970847168832847779065212991587496925263824829506615739172428235831450709168058963961116144328056198069665219091362991602912779873537502138171073433547035326331310083975384206440653848407824504925118808663178006315940259686783687566922299387129068311472140747104492014943989277639331010970588762078572329913088180651362761519951082137497279291076154434053411326932494856218121996172181137937038449635675489322297024390154840622063165345774344942166359298525466202907401071218536499582210650093025243587076684199152938807886265616854702487497913401096121454500944421099796274442832023359227259970832202859353618324029791505813506203559690557556838047425343396696594133042269357520539625833897992343349621355261428843011408863853617596383550456587381167720695326418186089895348238874203661848812060099417752579044010698780463782080342606340604915156048697882041496064451432088361798709700257024192225767429524344930502065415985034430010041825262172596124293416517112889773640677223846225757296276047877454359886884863191960701963891804629433521667252545472972842267447730561583689707706117907661333202321008658260610955424708278166687060005466314590448525302097617542680425839945489357411346802825853281229724147039708668729319074167435033442863267426712330829384135331352344010512655173091394615348621451294462742976392398066040204744797018368876649550339093259558198125281922531632265706456376336574090492504434011290936540838755758941762819703264184229334965606052148387487603662643274650379373118325294279180908055430921686161228191171265567180782941877823246487114660913259065771825057275970251973180125703518563757627062133934332119526781329219792083595911591530081925994621745891785484300296244108399444289304152540776489834947186176728263979539263529052070355007345325655958277118685122308364718291562403266121549576391389124249107804460679970032716259099743328573865218339087562847908982143935338406498884499756314759017687753996768089848795533941452161415048195369035548951664728827224753501139257963366025136076859216296777037838462143595157456060330382338687021356992215954267027037471784967543274292223404175696539753555176819765423576727539007175625116610749097378697517256302967344464713681695607511387545795574318669434357776765478058272289663028822204609529634537246850053655971488496458800950257870867846851954691100187806739935325392948555675113719888340333948024951820854737440769053941183295006578391961230116845394221290812915557434546665325659134892080634644461478692411225154408692882361910183269970127015966850551676586909162286803232573550516103598178428543367655742229806331248961098684877251546759840037123415543407300434834707293984141882970570663635930677731282961289789321818883007036457360683584327444268082725749496370559752255695941821223547493968665353887894480580735193253230797609416770393709975230202521616448724138762723645793310946675290555796291149052407604998963475665009480625019209875152832719548169796877092135126069995008563922583305246989644294755856292786826083615948912608652720181885918661764311883272096169306895573143691889652031072118977239676160505265127952127722117062544748735016252772236565425025145666923082259542896059631126765612000330630080194898581655994970132764547629171349464233607277298717273766094812013281810167626362601396708619709088946969708038732254642796946186979804044687932221753240454851890046697276326045360229089096229962278855965989870085292288438416782913433989659658395448021388917484067140480326838811715760017689467529385575449148857982120134834595049008559729346277166184273024885662611302785009788675745126829661545138940790476510183470843390811468577330435274372749953832777420223377305889630269568288619572803304084949828904653741031447529501185800433151622389681221945383959712233772473112303328624053772704105510906084665491348912002412769604173856265149997790355698519624721333640367337397764650368990200170433149952305408458219702194803275058186741789951998496877492015559866681303316257054340244033817631656343932814158655023198215186650157926922671266914999417367818169665915708273819192182705678730128311700456423301794433524760977154528818913338090552631640763979549082247368780901501795807171109581181250241983075717525765981843285731505927366525681052067016697655116832158469835683396902957498706983191372272322565737141143395037771290717216656875972449904986591683937067740158332986248074425398383947740516381291952542484549653687139794652112449366253194456605783648370709940466313495593904928318781906358343914789767592369323967849379614695352731596285378700416164142327835728376415794278546652276835997827420028951351184284268306075545113266752351174082812943212268505711070111636355195984690023321357822368611784897722259702899172202929909564831436479269175596841104807467802246470770099337834832379707895856124796192952815256775426997430140358176397227776621086006993909792048894195994413758398650187621080695650157643237138082127516170861788336213094494337541836356458231335770038681106353131701740509822369991856891985916371224080556376122708933840867416727671395479014449021162759681768065104169763730677163056286622025137608325992420060813104627517388222771945847997136562879265053832350518025713487904619950195313217931635710752296505603584979264368756291368896326385646542926375799477387291506268402046915059020586074135096651697474366861416342240822531388303617027668289426120187244631398073617610638731599564234969526631794353313525163210808372947247175322223759147416208036434063649715425095198980874111561744800173885794873916626036817193975998427394457365644632150927120337319401868246443431067592062169638999861752942627685188111153680809020007825548104618441902134536740914911238959636831955464401789965139431758819548469289142189194010781187951647962541274842109202340397348374522618573083405182398174261733343137222310708717135906219479471654983932825544417050718972843571590837111205925712520931883315355698655825565976558678750374689231121222320737828787944857165586003247837820925678404241627557708670644898850382698020688117958456966235204626545010382952530330599701780606305622501883941178961267116462890551112159728595252034253513726285956688195322506119685430251426221013416630012580609758494393682728909028585867228769386817495029733630919355287018258560844258075021266692474581400348897160232810494301379517094172516056068205511147852822698158490813252842267924947139320699927147966075086371073648669452438083538871393645917959366520523146235933148127175319384186165143541335016896520194767237400329470547221995472636141558746199739576939373050456997804582607110850333753815849116557172256772542588574879930604019880591716406053643440296763409702921710481055004416032848465347690865543228793011453823683708328063403258100101725045132971347450097059822100035110612899326479593965631405778637902279250833561813220619915084372940857688886467129624110644765777597862161693192275580798556169390569162459832031973868167803479111642555553669751310732776119376574117096608276818929126632732724244478117867776092949395980421989568005565768345973089262669485976749570236899177962716497673329417848776415802890824469164011603953651749783667341457932540430997754597301015715769901735613674284213950295799474531970456888908698105219263295612941856332543376290099113134334951545412454306689095046608531271307098856027873182669313088116494572373212887022513933424289341108403533583774468276022558747329277138396850068429462778947892859031901741630313165842567470012502469473584673092488256866354175008506675778849545778834726562217987580676175631924391278408852653495915524170647518839497054247368411290842057106459809175951289189107284597942692512673209182799513263042289977637998735348391845219540340227165700899555681381587888584273112883159746825228516713506274477071803613596868550011784366936441881914832787516525563213155602017425759823760650229752548980303674082687627139335202852306234272767702229729766269724708784464255858536670276780619766874399832120921522833904546168738070293750813866831370974803602537599623161631038880589135024043943521411080348350386093197525033385025541689729907345325067046996330676460477556171652807649100763598709371135486133870902199022465184154478477940563365930285762756297308026098949735891748142054047465707810588190110907426958410652995031284790630064598912121297517093151762602602444686831877973014545333593312074717833635108068672393197122153579606599875286613434930838385017959170231903635570944154549259461761581010229164895739017139975735451459961918985410561765195506150309780811975728581239511263068375856653051313791763420545436292068696935432568974668105732797130781103648113513957828563519755332541053862241748851678764027933885016896862282725404585632963957841423457774126014018395848913964698598348826303748575547385231065518939240995593188504005286390923893161192034527498836790402485501153898740898820392207691516670633489669541611499276149907727852366595615832828631243408783068518432271165310514506603049144313440868604726668299861492807268381049548759811763945230409239889216004472708111793533901342260368134889182786516654611297855699727199089717958046055062832336881932490161422170209758338701947833062763364951624499188990056071486957967574906005748890504616848194063209479751132483822040559488939849703721845695539774545428619754560955583908565185720952362886161075930824448669153250952615202595540988383974559570930671088948918070577248115001247536040401645987444914356790043490127314458378719491072604090239248752521467600418374851893037853870291246159530632201685863534064109517491456591446582887123088424486623119733972792348440708415803230480595983775977567453189206671171202969703036873869600614795798349730425094743511235831158574445804673119298170949194769380626255808750738162986545803027995883396450103191675051918197902886558833589712228854725436078455684940383676885387208137151103869251378928998704702470373039661632290828486171979372227321515135610847360800537840473536173142632966304561156614752501469423826800046341594195072938577983520737422234049996665864611066854174530658818585848202280935582155954503390019354971285872626999486749089844123288573771397002735083503157603363690765811557458172140293559987957230032369036164339567223981525075099644103302779790402218122141034675410367884306666492840950259428452119871391403198238599860333581370370507173042491728905848043024816306408178088946953952729277775506837228124125030450855288924772860370767263261334715557330066226021554144356551008475398879697661508197760806217281710057011851783762293704012364161603153001538240695869926242597536952516843914106669140595942766411265679606122334118110394835358625206365567039711307210023990165439322815426180711566785927832373790309296823992004414115044344744647712226029955195136444928880200388198678649166692824174547200412218518356094387731987912561405595835404344918005027271528508404987221812739382876542618696275022567330995383711987061648064072238230717054654835868102857700034992923400314677028196638239960848430579424932413380695482334748252454584180452920292650295161169883886326120475506303233944825055305195740258571849132204413453975183051188188554711461726701795323612954212630230592561885140809228148620943614375228365375729937563098889095658127721387621862423747308266337474581371113840596703616307980548047097874869525739156780831624950641370615092925931949012244443274869528148288131039943409214923256928025837192215476792677916028210998889312665862247635786491665403961559289950040978301206975407986482974375458076444856670730425354411958908185331326305456950123267067581755301718032555997077775339294058848498480863817347360445342168904145993643316916494367441760173996489747544222847102529713447343189287125013081475760672808129430393593659955516017677382131884285467339845038562161100086881440230351219994402951824726311128971464460451827919442015238212438597747661780640834208130026380584575775678080110289432271505899659487429928438532667423554146692423412613227576794392214798974382822771182959135903644554543495966719747492209730453042153851273518016928045435593880450403292841442791338989439063679953771128426440672456968458988305320866479123252801667983034972957912290430534414742788684166113846617436124875400950130760292811440388259066626588756985386578675800768113706940931061869665810454908162113362633600880436114300385333749944786464172507985997393220158962876649506577878773137137128953264953117177140521756251553204499423910862646401178989860181788637247022887095534419116294957851580300266445427098388162100001009846071596138744645119764732607686574055968585010063723371178014979996109844083742772714294614446462317683546804956740772194864711724614448993644581494298415068756618686216537630737231035877464473758014339443827130500497830061517983611072318587161891607153442250213131147343958564398693954765541770714979058150404335219715356302139654788572086635490443748282307325184901494509992122347322191700729874315801220500833705366110256018067142398818131552777971103566749556799870536460932013898596440246746949915333235170225072944623641790611847098614346173008898122381152465962679935747046483248422368672180731997096438702454978697238026972489178883971704778807259299762100842401718724964025501074072713912532015415929213250023430228001263282304364137554604845657944791399685868420693063132973246387180750285188892748467834030390712196939736465040778236828411901197842287646787212157510237340969157900893271804422635619483182433104494052815982796360163052091273554612526699083875173788841987295221769067130818768466944268993162024491255540714403926193008160482498197389581049076681021767199789869738637949284718720441884009349356761758827868065058697566041763007333125942073210967721884341095576636479771934812130786057479968689694003208518740618961256951150062323153451152023832274530885437022167448008805262024018540204061655534579999599576987526740609052258143858182783697518283212728855860500885592642117543290450732141905272161248202848515557138330236532477983058225942438198689622378461475864113466653994787735055494207722716793175774822191584496950424532139992356295818846725559616958388314779342670984430246575736045470011106068632647583481286852719170678218123437629268109702254242939330361269418674566561812880757953441664116481787887577826883718596366440266289881956446127070254035084257655555498507838901213401042602596705348442354836633100649387227710132816463932581921024464349934934342942263386986569871525146679486361688234139239218243223318114888508524293326404374564208719520804327921366263315751591750115874531269185041257945429662163178980737044690279106342545332413461841774846064724015581819769633439312222815110959556266656958086542057758847834416778165198666294585733328795813646416086765998178207332659994259510495614841993841721343986927845512267531104991035407843970202321526241354978503192030588229188564123996601757180294171495457944020420782759527433460309613110251050612561549484521167826004009283236465051727562280207746930970374926685902189907877756872515914449430210676186658886351014049214708339609026880385735085689065804359603902652860876645654933642692191528422054256250188584816667503504090419442036390612153476271836248050779986391367690483994544139737234552936986899694440138374291228935806973810115345107759721884882975732908080695371940308264875203800091247493002435517772034424198739258626107217070344491523297103564068821272206655349607983570307663549319685159244906435459757058188902386372050946894960961947808209946942453599317592669479554728359376874810771943501358516268221292219325925150398211652926792672945850812677354088995300483328780500748260418957981182256895353677911286705656685668884666713710694308073597898933300474541724859107709475138416290978162885909118450340081758718182010430489100601109791616395473692503390649831233700056163628532944221715038606026876161654942398555944848172455211219624449031003582408746104701395285966065429556729325328540851693300941521994254931557887708230935060575944567226669524646096679782940056070745492249182211124977685098755448752617388423567252098405185649134436017308578506585561289009892839753504452010851624687197785534926344141916482316880923164225199189312024241011921311170618507710812163885092811303588714019358853312344782610112313760890234128082080565406429401110723865080767876053404370047033901384935832380856371954082606067427185410846849666406964568537856548817642107112687705180369603894415303156175606923122923057273673214673851225010406045687604463713536920746306640506224850211613786697142595100448955873735328969510921055496750499894698816479061552749325551381493873476727702978693651755347083313327185875637850163575541207470014862298177482455111475368361617063232122474745188784481358649262725718818423634878896818129085480716584070904028342559805879641947485872250503193037672828173274695221645437330512054841612695935817590880345229877045445341757001708710708027875400971479328929439246924501247605530711452244324937842096767598786300582088235914628609125952035591850711251077079640948100424526630797718946121456128605385010474347082178426558102294157431614873448638704995713906556116797161893844775577496882830223647499372452581821565737068401155236150114208381972967380196387354649523294558158737987988092405455243497678433809861406488518877551556367221733865823687497567278064718451351383545046417882764276858400329793613904772766179128188570595606998366265388338131099074138636017863997424724479752679958481234289458024370837757290832850820289070578058088528875238306779569951534048603696987981060155653057347708911415184642114473301769466981234764937197981447370395579396893468420320048886263872392842727247193790612151728764139204080037540328727847613470442233516317940719775046438381588864866729943317813565797828786864913260295378251479313862298087984718102024884351065138613681865649430841170732166141765036869826504611762437798449116453632870351452659100809079498364447187448462708627238012922294252931519082968363105639938286506413514787710097624687123035157052815676768014518801880471815693752360252304133584336737997918838953260038227247996162491106347238035596448738734586894088634491754755040348926141550246609871243940789133881232967171791249011129871910245577143562341978587262015935176602974251739939280475180744558716139132483309535800824680263045179269098463965860156417386984149991329399114790188878544872898054021737104854211068490707393823478436849786665090976318550904754599004208339116624829127517099483873417300186773791611298833329633907636187097732373094807291033949613685830145047218733381017137063736169923758521497329504860716657837004600269633663396342075475665060610005782949123741582125529123346714254168042265978606823136779779451702246925337591353727035542254247179506433108876120746627487766617005661100642737691474341902640512936221621163621992364325539300793303320616828294384530664932315004220290539942782272670459633727170696820341517197581227975499632500215803815852587561997816122323763627785041906906902258136310693214319717474213286087280846133744612056962603798211022525971861679298603734647662245863027377604930280305806096225085555070837892927002407917825917812264612068794663100868672844942058857792447409961267817549243466452758272094296029375843231622544784597321717116325526249716304308451134238520505318157333693757056557282571938279664897269567925163901022175195284921573298459619291511278134246521053029741152789115613596900283058240459673016892037534634294135876818083625031526483372899194831692206759571260805565479560865805098347634581601583048001521864266949768842200431363847475640111907177360315830133574742541014617443823108068771446003400888112057713419240478599693201725224910470903247704486744118813490589783931423105382071119408589901775417934373544537487051520199254750903760461289462048912474391581484330730430919529457853355733573194114076552832146293480719778120061232908965049026168278868271667274115272602816927890971647838211689831864423059951407629115591591525453351738074121412322030717221495024506731097571282121437759379750369856335060978592636873249697473267958509125060146772609794192654959665667158179925502776013766804217800122409672943818156114576501211257498639853271438752075367288192477182561620006440341904402414760737377931868325614515324851336416132696787652326397211640872403737597745654308427415487252925183139550190969903115212940329458028850785916505365591416783066616389170797782072035194188564057549042040557665707047418636940284764928193456452123152032882651450207884482018257273966766382701346852468225550522669130568796916035754947828243721106683829396779292128345865755725615518788394157981140977967927535181294093444666201657263216323700689006735792678805012371914017791888692489676149257281106471129990641126358538800879134032485231378232215317337355315541081239912803030178862934201739876627772028036685248986302558792996174140187846194980715026594323047108707673693608584817315631324567192490292766529270319620404901742494422416270968739565487097048029850130010106225524241979943737761055437824571390041012626383993179296929185563665621415066261347448301991104295568520980943769731862370773826625385867565411051892101368031037343560024950338459518671506663368636418962945219167978154880512529941366345759532636140356710083582196343746994133689183678974277063098001434119612102584118288666011525121123274048992200325701199291456067818215982992634224230648049328556785554207444692082144790540952540858077141095032267058159758282918133371832981155166902996803308840309906650790283838816454360805411057131061835789009533175197192935116166266770762325878464256485358870412929816058108300612378131777660397162399610443125787723652110205529559364476673911426652235349800284501828255525447453142765399251526273247622686881050135443887887619842479690376741369341044715423194944421851149072582454227810757601565245629258381062016317278965359392466264813279147258627884687632611293297791762727456788954890426473573487417397003612452245194506979846121840416926662069983687309189409992970719177322111572478669819556730773547378230064111100036907032555208967443600165066979364396149882314375744543765765770937333362225539666650027375606372907376030237288229870793999838354407943204218193930253852655657166594267970822979560768630446410868819123301187730543068714207123523622566095002216531133875514093527874129606766837437479469496905487808528388580076947346697677075392898753232552841252582689825752087653214991685657108030703969243563397414403400611107419609892485751374894871372393795948954739878404477814376668802753465121334849166879264154391247092331084194914094735233373774661980033860264201817808835068095365214548220452579677419809225931512133891364514155487456987525268151511087832726416945760363757638613164138317808858078847910356235776065956490198574833207218826444765440289007687567225707958237167325543902692263732864603695028927638660903881483258366358230984002978569870347335831900212257841937827204806879537224837453583199430041399166489638162745077034611216107635252957896346072150133505291773978382869848860366585452969307870194887809293080378972373391458069149974252789047427405776210709866646820060380399675115803015080644009381184169872937214339522771581665738618311862059230649801385826882460139120929849029613936458686361402229468864537975890359408202431457285984868713787822024331506055580070394501901965725401459278424264947565534643545083920675760358202532058885533590764673094384768308362503897030912776165706707713865594069081311799458163234972783070294686378644878523618748791524072313641613074324855131317128494900051915739862346444457342964113576996247387448716291130438016976060570016984440660857987097171876884696905624022841653736240849957620521575256380209640260641675259025949724367254981161009071902344806838378800593073864498812894988238816783700965566264107765716389618175268454236427469835542456676533090780023951732103084879641118966397710758877011563055132483780492901330599877424429646420219276207400230435837446074178377924613567508277214550260166906891606041092725573168230907615514530006326945675239180464670644982578601585615794628963624740694994151305410598470433523183220983112458042188185570630369089688149307475982783335672876935294426199638452023666910443067989421974707175983362640876539326768649249787847964247508612229794179220644571592605134231391380376533120431745068936257729510888399020725454055170666100456079677929860752187218543576175722811152091989612211881949010994168794215401020913373018607647107559833361743640979379130357272518627541935858002472672250681999537681172855031752933486085853639601050246121996026317661345130106249119063595101051464218807055405223846456369988058939099454408530245122713469114125745654728771712586326934421020377178668560964416115842567993642714233900197753103598429994562874402924352744549625687071637747518049455517471834627462157649581618264560474508715844810529557573837458914481192761477284433543214377861900160791989240236086657264962600467869108745912407301384339099555778130399501247858645817743242037761178812995494387308929697440691503126715981788276145656640008375448549212650683618262907672875834169432067253964914592651277768799786309088396139990586432798849556570875480977944185989116418234096153820839551250234657768105884098733988551116418384106954977863634437462038204094079274135825909422483215338945648323374904103895554807795710048883170270475614417710200792233240221796853064410548866709531860334391450591117096175471325873785409066385396124982659111646638319590094291873227737489624393608152642397851133621681841794515862919920568641257009278863690647832784854094846247890964799954219421273216626555472188209975029039996666178243174887021056805215965690422996325814777818027928336828551733781624212062538581776192835510597839802542823290168189293643523252397269466956961016680683772142308888589159922277287999796543084475953934340926973517184532399524819458713956188179544010665370154045070663840267875129179593814273720449780510091636828092530485143994992433200459317818716040324579233333512729350603049918646924122625690196747323528243648670098742204190927498323837015501278172446568008887587266133998982746735299298819075969958399107560933363714658885182099917449518661887173776289374943622373707733863971404533546007620613829079935053185989633149193363169115911721111824864004105460563278767893804962677407267241214363117872590603484863099127969326926792697967235219359215096231816935227867997133715318745169885213757722129686341125351114978114341334910791905798917003459149114900729235024958349284411791187520325941519213426227893772899988164577750188028830733938172472296250045158600426842716284649435985088880191643406369971532479798190645026809574921222953727742579170539703613654164436325609132954426183590685929108320095973873795162884764913232129634877378198301113667053816874353654614247779485644492377557209578597234815672821894194217200238654432202801006231559285764655466545857710673177701223021117924358396474964939387579522239747639799083467680909240063993978439335446451114425910005684099117418482217046291726895468099567506354151344311899536120077773553221406859345206256171481477962340747798011885831745325062776013910222828837080250080234390300535274030518218573546256234695567013839258635127926609509510525307991492436872824523197142281480237839602396507097988353878844213083672323919117799183786896392121876051515303201965921342581250770862929343823581287929978961965120474364348181570208324494583099140265243283983664735016569599409287708942728273423537655804836580738086094747377817524298264271340802479873594377788191436489681475875994356136788897536734075323621476866923869503902537720073012001378048711630428557533299621729307430582731426587481528855287461847296663424520747815746714276732715391408981775250148196704610772855886334587089753747664779173541404530471613958793941999547650268850637398955344064469819810994871453558028550617615565019763647771029558707685542832676077278963125105213691923578365247233147677153754579598856201954846191416681450316866113493019263916865591156659137493476116166713002033811652710244030078059144443941929484425614105729498012242521715661523604610748151582522346709062319511145948378436546981821762663814262387345576280576759836175818117968156798674869903153340428503649340318033843183840566231564149855080152503033691423828306298835848843919719030833419157820768909180629986061722759668967264371969905564117167926745963254425668724334484438542744016019672721217666976283158295875993063093950359459046124963560992157747142031009657384673380605183489821954711493911407851443032560679989645879752009373241413919693785097633174988063533471776281503648062354764284836291418808954450244915495799615968373286746024145730605857641555933957315697397934895427063284053805674499517765645751072780071867843694625665056169559735227660363369878231756841780099787856823087995850483941972548624279476996588467594238808153052059246564637995784591309978496441785875917108470982262690148338547224496600662920432917872349914136369127936917365284694037317698681049088876712758676399506719799272239926386655655657117288663571574909716759035602371211262890427389050189742637715371180009374475666891018696119769766767672251429118416018736781693991005597921654632408534811330625896955028374972923260867207469741769512230291690144158493861101370362839953758600440493266768790216446243849751967425374555594724782272444750020307016784750745125084668119135357585643580799458347826402586016744453274330786382300801151106636390725968379543793077917293085515454817981788867410170017040933203652017131724606528990943271096964371254883761154714831072455044582887777068600337758515022042912437001464391612496597163263939097708757163386484820147358983910787905122754303023528842268415717138357490975564361734935241325179809511621811256805873073236304399323461411693789186343115538590999955564806765960285322325588301998685340890448021384967158808024860050096490813333408788071870226343873777089215996194744062897741299940851104479912553921374928500780953482022998995059301807778125206148553550256218098338218732807458331884826557571684671326469998648746067461473449810141683113577028514127874365739574868907692745077093912844035613608988780784600098009019582875725374836594830678491199750719592496763006791238558053876688323133336568427070906464770628533804348888500689872532615182530026636433504383955449370426762001779178644375396343232809731617124623698264959135844596222012726852606853711058211525517167367303053224403529632102622794939530301012885541313189541008371987939957062145116376141376493416418356143967543761792440883973626798129196364179705935183368843365124334296828783737645695023906434683065913247895522279732055068152353451047526994737696335695247136031874998020806622987010640541117051787170367718706032477138387356790539225231412129155884948830390640194692991279725203838789347849972740730942194212793257770513041174568519841005687331907910648336556886181577883811432092989959772264796055692809644591201266078569228513764681513340307551570029020703603509840713842689166308674050315825669574510102490092150322067529846931519780690631994663241930933046265100611394350479443964922628089024339698370923858287966361718466401209402817582383225473982190276180989493866634078239541993630984560816727556387714329179821893021038427603533458532805922370974620897135837082032426062803952062046246991595926692009777997646707164750558577632088118101609625622440158431537145483459246208826350977812807093201281904947479165564746554191046776164712247058518316165805325459170184378671076038536861224272081930392098060940789167826143406384178210351907172857353537325301624160809075335826929471940181752691136457067980076855419613592338321024052517273282457817083018312936611633499040597361762025047884536566146824436650834220569874862110404284486662927034495978837398662803845686282599536874909029447838359656968813175028064532067015909890168328590688259734067743905997503175307053454890023778863748628139771570905349695202987990155959475245888556620442982004043686080976996933412960416673875155856153138717713679341025875290723071078319555447583391385302380485047918018433583492144477542877365151723453114744303539805649031309694969035675990819524240740765607139710337415932950568890041574973906446741330176896062725353257799067918713408174928275138854794327042014558466902147575313565416624530742591129386123612315154888660855051792401701815434039270424572484227542844211181988258498701752153026570965862116645296593980589201856741609736864116033383956009630446085197302311615888644090437571956903524316134715799984729897681508119323565434685896605292217563786438250201177215338058943792481596291559121256547573859298254923200481731197950140190320936830897705856696471203650138417356549524173020194140745432171135714290105216488434921070160396434867831535208477836529085529379421834074082382427254510161145201620800269423155264601903455360409705376261642327357026698405708875304845984943807802176557484537250963140678458408504707035598244816372414717566585565876721309672428522784023895704465220000374282288514911726968141117927564220087387616136012444520033242055761544500475444207104942851475266784483864303759706102971737010184720780656042765006515152560724855023644618181404122873947930447909294866230638145374955832105501374029503380607919692037072259812543876555221085503209188033104509000434460145772328573270645567129882595220656764831213869068974788455050330533042599290087428556287599456064526584420206890095501660241979401077371288002766005373663445058626872049530843299953558964523926177635072297558177321379118652100981751083692221748322801284885897400914829398657393559499932694323702936991528622103504418579044977916503760875754311562635107965290792378513813185952730819517657851558937459526000981318798467849683476493486253086992422310393073214464533887016785755680377754336813211996724679615082813365669411176666230208651386514165144312184830792304259550543606492628038492118984575874946170102045052121366392295740915643059635466024207968029073406991908903692216343432608967677257891408563193791862283036456832885560095133813509908846667123466749887706166000546888996195246482176047422225742266225233125525436088410160632653566536899111482208886530397291315913006032740403280464158600489125212001949029510644531498644544764373251716243120594478891441019721883406946833832591431405604191913758047727982826009554773564682412826927009013415175888890722419615955099587163014422187345329196004144350450555406560106433958319146816303506798453752541328803803860539484606211204252066433813646039406285089135865335919741550453984983362084085148385076020431193666548732751735227469474034685091485806503175233722001883852578496740333023999707511290453580357204947255962079913204591818844440859472310409619428755663343154992794633699517936863661973656057611881630915496025921839937055090698921271200896330424086683995967321831412729054464494601356900550021565557143016879771977825015445963090868858435525990549739380952879264465396845171992926967505369975706949490831618990824626392483622957948301739504494053621764306871702047948423592606795355518404346008495360547416438829921229526997216088601188857208840282403777598557931651475981537353383480736985353391496057025914579418610997446977253198203532653633239385530150600812754687882354617749845340637550446004311501985905090637956102632414766965634823610936712136492493237121816238050247931608102133697473451238905601582155840032563158788066616386199047350794077946363913379778837817187721143953465406103801918357184224639243857827323669485958272683375050820906794017707651330748742477010154275984384506574298174660472254827472227411232965765940988277748331970123887790469686079213491636944964436575622787322673804416845892526026558969038668884748118628572299876766332829043463443890127110087712323759266761171636466874657690113206290583319174085050409837300237411588335779318099466989978627699159586236101874282319132078967854836906619756598589937549156694360438966819318896387752073905452668745575013265610794702320132146546447568431017108408127626639657008315314938558107455178974366501556597210929904450399119816195502735841499233214248095613092439389778034833221002952975509796418369507909582600696966153711031288785393472261786752345574977153988204676476753556681564835026965681555409307326554713235071403092428920869504593010838682484273163577057596342795856361473572831230632393444345839362689027171038273583468888290798706092733811703249505193432624673026745730797304322001509822876357041229701200150718777099880804889917747383598739662656098564460362262203436953578583438050475943137441662916225464261452542905309846378972671488089774588318695583811406917064110409107671122495873686950260031608237297752359145400331346991793513296996712743642079649414960028688871323080104507695720568197659563954917501918160611251173211150097886768815283575508023749387467630856512488488152285252871478594008925603536600110632871583515279817417727016927026848310286308132422043350015055692701107694987751645053494602598397297442264570046949083084410616463238056721892540462087853891489209598497259612476262394942073675529620151839901655144012766859162121468813906099621769270646145461969604187082723446984551346516205016548907925355798092691770491325356218606322879999158972500599102868363307222396099430771928122193659220766944601340129609675944593375504701474705159569215641126030516895701442402194973248624946605642158843679561470481774951190276394930842875445804750239831777088626241275239319291879194069968663594728417378359586310794031137460928013129637490626496327637447191309559547822876636035626647599186527813479402583936602979745170665981818342140429611846138872123992702277106183155456634643901091718484424532031669689822325379572821353898186127151586453736266103647443039651170888112505715085663061784994019036881810236812649374497402298269443171768665825370566425682468517577599200285264441847063034405144512941201349027621772845578499504519183172286034119288056031523765344672935956709628239634394643166334118913463893374046098737669525355099922719635182504587370021537964448128170347848533603858200758472800296938991732254967954972365295745597157827019228566610448580615762577232740199483998387533321356202335289195319088532767334995524359745705200026969585310200296926417487177741208930199555067955398356349855326327086500417844411197750658512053540182798195097261145844758286373512046474753629446816997482706904265885973891397210514085444783774910460964803237581147503350286025308241109455925765802119667099109211926488352030843974657841608528288978892770495621809157033535133217551108748157364775161399666940313226125104467047296236478347234610248881349508778547127945058289870739837445835229341150745075101144228156169806305627735699427404912036135238337061710660655440649684703098681217730028324581152136499551080115121541021858167308957294397610964177966398719217252945727881909335255013647453167785414722742278229886189914003939469354727106587020498148904247683333262312354661397633787405768707509243524593857564518742725867953187231095281479699358148772358052915212207139261681411305039625088941074329013808923876540912420375278586261509578307654045072193021141119221524115021542871344948202888405247328294089621646751199333151661770244344928775318529321758983342015827356119062175707125042517808799405696298577205445824344684951372868511354880281270881752204419260316393039745447839031047277632499892461200479802968578149294986706481727447948752647868847144035705675753551364140333803451181828566300628294357361108975015343092796476902902566303118414194873967994549037372177568067418337848001397708485179109179081630467714982872179372407689998907246269170373062713536712992783594812666562191042396357900636547086756968844029949726946248325977685604663420426853864070940550033789176321673917596458263291401368805139922696366977362879545835190875000531820890507519616645546162220274023305162293293310464211340284974657770942542229082243969257856958250106177777221839298706984556321554995968553280494040048551314266489273011939944495265385405789757142773198859265656944853069847926207209641745037546545847320707382177504681859328285075359461778401858571515040695263800049892510154034947567101357290225288876201034911734669285310484436264146875500283408083607738218660114632792000503391175343375113543828118930879014415327439192425500551648536982420521294601988996172562750725846172423185174839332498442018026999358295758234369542763122114512230712824051063706029539987648509738240324764244181502967299943261577125442467248887898297091498167287269542177172623624295379643711028887481689378636467719510110532394942206608867902785869824883132062191089451516872463672935212055832474713494710081105808003692141995705195495994036931778176025794745600030088129120302355378286603223115756089143951911218644612162390018181478641657965082247013292803540264610644881354230777851418795926107123454763244409252780109454729495956643379481199034084137562539964168991475585271244833905783486997075166055966809958034674131619672057694961145386134394973096419241298870550588608374962254332927185914661465912763069138791545585554577181780921524387992917645227484953382505193223153963442215551541146550547510513575594400141190857396125225971604942666131333483749533696499465947529304662988506486384250976299248380221191577906806586357460436527261567499511980491459844960389702472654165336304025584893482408384730547023204663548602419508967008427332167238202320316034047430603657673079919391171332701685767957621395634202001887476007293988041966338420321947800248542941567994460670791448109225400250310789825077607756001741990345450280863851526631935921201973287578351657411532420122489719095996641547836179565036576488981457703956513751849327715695116577116294756845255325757037985391313281292875030778975712067108229212763535823104035537134813837675055868347895953258188058986663811164653290976570355573862084258737659205821594956754685941707135615905487080762064078764224048539726900591513428957019924631240999933268061566753770464443623427055433524000880624119205377715947675996903445891042284462792943986996206548979491712135105011075254188051072754490133271533139521399971316030690126253155836076549030128819567436238781610455024039424863689744021204703871668316676639280102239413957526313716028462514103798191759556537349633694211411214359052016418421055336877182256305662503272027817910833344984721261862988397097252339142157644579634464757443645554505331198247072424582861056506041838596622347954442781035624594547067485789808793652311335314951544217645765411496614515705453767021703443638872650581349584380517769183274383982412315722606206947061911522826450402119069313247421255458272152358894133245212980756075281563886082146487456471698179501100406008487115999604606579583395836336552332876548723370904548368213476446782256039482331045648853719240411128158468739929503817285912407353246495619824848040299729501940015150342208865430882715185281498166261289074759919150469726535201738240871762458439332395011394782152271728909769322461569985342477267847885193399323984060796693614781487785697568059235569833665662822991158792863434544305396617474963571614204739575756544994793448649633352078734637310710049075639482819510572970806104116078510346512294867793440818339636997342509112192429792545042455116247550709115727930970923941632598981275040300230871030078477776706602778004221121369953098749385946179244838844344810842405924106839361812471663891938649801093010732531653452582878683040048670493753514094430812154620078610824857505945684794436617975834969586287795378937456891197584209816312128799735467901679284531574442841064076213268523996403287504718296824125270455873614037070550367108631496983863546045598923599146478428269707679066033100021856816898781834172105371689719210162548814619740321817682660290380857716096772152433177284823900479723024572485421364675115424126509283065757652962882766509151025402921145966280123736501563884409229364425021213901885321915407191665370231377048394152033680082657665631957137065042489619265186674994205366969960426244676889102577336173540552165773353517505723566441466288251243373616734604216064951759392178923736071545237140369083688010830313851045435375910572523754743940481189587637315825092998644546226773625801367014633162133519770155890947340516916593024103913526673172152212167962944802335668183731322012270260052026767047446647205656261577545955062898657093286248210369736510555706432163315781869123757083753558134833611849121322336782309094883013759137866463345395181241939442175735985809059867032313410002630254500021305130132786168379474946877366621472896587238871618827618304577092701912855508204253260636591718784155202351125879405857574067536709447135290577977914807471905244100233039719885856544882756673479901539577467942289480604986260469304438001970668850877586344218162922805749716641579315918197627967914693203268415001453626315555135683478002991118252329486215819743638358401396868029443369928721284543478977388077964884243205601413254223680509757080258257279599588730400041314752701417988933934574593250237492111649421856293499034232604901007446117758979097925707550515617161473921817081716092238077974534099809210774940864053417376397649307371881453031872261821145889328305731301559792181900314143941851461747444384668446759368723420642291975820924609445770818742929574688754265488177667383690591425164553176797640456109730963177781045967703375261877586933249144716438059389718968544316014442409989015702094384153641587326221362848064557333057920118754751897999376740266344354785468174327619812738517995192566652390198640698096849984357648132158622131280779024774336627292192094694658129834120653919266628704686865432460913835151060141648913086449269876004765361847042740505608562001448786661228115196241510134722820250564043980243145866235968109321089799236828461100908054849912275203875896632640855557309412244351816532251898273353805175615041589663864880196697428453798815750954144579404306939330290775776017702710594805380411399886874780136710277056728910179161121366341014920562173227967338632004872988096497197427490434273776222799146648029168715697647691485958179234616201386490114033459082426247342729933029480585121353398832229468919189523462167018140952284020073243276582838942812148295383960177827804155494394535692950137451760395290636453640593989205585603046776376440040769000848525957467861523024265280900995713117864653862374974943697294909245530222252256722919874153810353625841892789379356445042408358906210988401628591795593451477754771779983879428985666693068587157960380411843763512206755490419648481286508484417255958558208046604525155964444877224538262451085224802844126206852506931965106378053821012391365219628173045130101829977799188881289541162819015179489855314385460709093661857822074865340548798650336144562804995530179867215200422683290340147644995143615940855428328675656226877714055829201012961728177095752600306636240150980766125782420655016181259258925757112380797931009766913374146199705872575573384100840713435326834873761742542024786810641935024774648882264488117110984175725450359248076501655943077306329611217315934609400951731504312061913693032141145698947293229361529493627154449119621061890701696100140732056938924186376040198320748703501144763836235514835355895390813170519218293224731571306578727409157590835655361302838356652657278871943486136038734558408399993379190037440935348054782618997055944749619369920326798402652702528282631533270553119262273152762459339648106321669793176723924318563202244331663115965312837115505962862623352774798686697016975840464243043958381456505938795711218012588987009021404832748337123578256971630871507511147912186869228104137968650413588769126100361187831138582695465714082047186685102462119760214621387250044024875238339339645000573276301698895530322447230399380434934662111283460398405198329642926233820016572446977594261480694534424044647818875112309579490724113948712858737012165735233236999318695883016267238250024716037629787682858938721940725738016950076396496530092090218961663147243899762276396687438342301737218601954482378838779074791709745075748086350635869331085748181771307200868390318612662559288268468250754352601310660840093462371444428934079614079165809137655379493736713859833434448665180099964663557338403594776472014295601277738704189673727803614659712762798844921119396531754287745135776969257721818127018285340866064621849367696353803041471501882729936401907682049233330396830216622379477627059128479977153269378899494007530638801837831351097474109286194460657253757298650865581110337525326013785644878174049785788944199478328414529968798509547772109253561732142779752347138163464090217867528624305120370452101707084217550072722473306961153134386920569461270685601888219743156110286263492152876305052449004376567851340288494904318723752574764123783778631801481334674189518509265337940507506867228990240219666994799214070395189981199201237986547639477925590085144230172295728614210241959270564672097960501754355976662940711102174435023276031371538234619698595114465410394937032501277773456263809004417513670166107772605259023432125644767294834802700096627353756750648903758697335496158750619349823296257785349324747652064840766004675208291024949503286908207675584095913149017669280740294767970275868692684081162460526989741877233232621869341669739084258932430963339184877371906682903556814877885838596915899215796904465497823681524557429366922599018092307446623341550233448268697759817798784320940617870715584394905962383333286800216171185017800118565266947844074636608502223019061055806798901841098500089598509234771928001397000459700384704977127918509621900185253192230925875844317649183346621017735576330032420939193305932797442762270457320651465415279306269054189033357427573261849944195952588891103859791035209623912348202833234637863839620553782246692650561538759517298002681850156333853128767251495533415086026950484404738409544245616260265642448119807957234421428975059288801244715614237893044958880102328650889578675166449496807030599161916006507016187285695647307297359339330273433718015822250763634814031320232390527169972432389589026799410306467533983501570806527929890756333689503859932663821619141122412456002936004529503984361208675554676541756125040373906476168919499537906908506585458219510414143655489181706233444417882543380614423983674484945798941576564269569476966375043967859530950957369991380689989022048759878395038549704493379433828902503947813628360617762979616232490190868381878079810949081065578643341364930345739336772110000525876273894729261062870020545744480619204667977467980506023506141037819602385199876976559207689846370105451118997840912540135543737101100832908982840527657853893768794798073002409079197656660483534261234349937053327776723262442094621358568412765285582591161140510760231633603940641824394564865162863316476312390529254617872570132831942909954881376052329606109395339630955309909819653791332290572235675431177241178120518416557364698636854703365942015365958608828927072833927634469726486652178696069535754156627998573683007993069356243207315549303867672793700921978627802397127086185898907534849176088053966239322086346028716860513082459294990453514803326613866376372262269225432447902221140003880207624982975034065786419417610095418976631219556520643672229520407427978559155837509194084532556869040596436333095169582172279864738942200186143353008668981448216557504943266199238616725685791737042540790051045445457511704718143400527038822945187946651477214924824840406195183227583541575352687054443165902706337580264028993382977624817119375230953032523854278010529788134793412449689340415595075508493463444999447135733271790715048358111228156955183984347678529986052078168589229261418234360719335346045634957475045867011106459872801846814740348295928036033660951537077465193161107287255050741902252514829204347965048359310520510040813964273688720614205769620744421981223023523969572219977279267741404701543027098432203649270548711150765758783362276301652470309204737394257485500779636746554967206407523862867407579521412537406523312235663742712681196083992573679727377700351207292422899216149364885734490677894682165590651600780891462454107603360966836405089986706266740209584678286261439391996472972650293060335934149015506146850445974242931095935206262565252348882419477999731882838685413791598833103956151914258814198869312067824139458237621913326022241974292169880640239963070386317062216356831058178644793192051802598287742105905585155896794578860730080541209008021210506214385938828386575136080203316570961231904974479280644208909396028197966501946139504806064074405294322789254378262559201640372534919928773627834529697609630847454108014270074555577096925740542206640934105727471541687273037153806153836660159787561670915862678370864592635517751760999146073330020182893650233187811456578214849532742534287502793235379496921861547087841788169223028576692890548335868548430554242131947008181749123516316104974154950994161294461604994133615455462982090824514821484555635375094679407913621785682170788056966377931727551040032952963440045626342756640780517120439066604845505401923671537477962542834679076570368687190211029562670771345113182056419308730165075162274447263990381953215845549239590039753335367678553062300511847792730559386681452977664717500345415305799259040432430914723468806216992711819176855046089354824457080143063054468709191524891621660929967163675171802439196359027733189121271457807979542236665266764218550559974781657783066902295657930486035294770043342056545185869692185997972341837919114301501347420039813369276652273935111369656519769870638685689869065771404207546017365966724760131637496412972686410420649447856601909990061791278375247548873026423825104757524977843322007636115989661200175491732453548112537011383455177261071491961807388964135868471177437156371369195571478787307049447616556474898828923363499576410954482158432963953108243051921684067104805242336597006241855317942176294278492215156484665109921680942466154536009110983660852832808472270561735572734871079513829519980970727327997536435275446969668372315868546635118283952035694618176857018399123199853971040290189221288947030305138925785361014473412185174819910267300174922313697980611716547130245602892432938981485454411890043955506886858964103092115110484282439939457810424896899567604391459236945767321296772217769389385698999806181733428902777016375930539043411980556307888573515192860201521081638791117871482397955208581322606999880416771762116369018739458622023859914108608782079796143680999870940406754167768145561923724166945994119230433579448488940101609494510351511110587375038272105178051112061089177477711710843955979792913548585266807569864780929911177595302547425409076046005820383311219339408380557585271199509342191533051105581289888220329758170381405246933104639314955059858843575573031638412014018783948417267719346837744298001720183734881736486787450560550938391262793426746324391001642920979944087344124213997887955451317464065735914577212300966948088666216735859595244981402787394503267046337766024901933998253238610526780114203191449716597333267319231460384446866940204540874475116656471859664345833791315852770400331190038563873412842711081588096009776917269587416326235764859402316249617212750235953850222267145474485082378911077522994450781987587816367064867560140105236641644260079958928366692666726476497935224216991206113684329892124657164262457402939483011909837201605740950456945816441605247163185462291873484505519890083691950728088060466365401197684293005499997637462286962657696953095407164505493927653405978379385459567257137999275853726357034609737239967391368540917458661280530496205222141441281117541611577218026535339794442242255513694759416553797646373647099544089261477387223046889136096188235310255874798729372559310470480654393146889638141015688708936069349471229051183295793095055321321905187050555561186140811469644966648688063348312832127593624183385529779508208578898732213516283452133663051249411074487676376401613357562599151320323635253895402598565352622606928074254704624737202066979304029649260905572114871445655559399603374117454304583679393519829229752792326212838837240779084424976812119411375471067079194041195603617754820643132257930898741218235083565245396878757143337553090376490679998808208758837221060760056585457199589643806013577870326254930272187160615409597831760746878057345683965098042154426292391340898555715494235661058029395925444260705743160689137054214150023028961930092482223104057407554180469667904892576175899142251745219657624344884254887663831768441311737269353166669586498635268687858092955712228211663769072534191895400959143402679748378831169611373168501354749980771891481993682720015006947982650294344175033711759381725157864776741391505654056189815132964187192302059880512787734809130798089664220879036632688043070216408057788417464663036968274363156288689983799881463508121538714295697798682012719726219193449550610954063237039816871855904376853221774237174918705009284592846028135118977147201426642109079290655273282503536528287051514319147233237495621643370377985804370706145961417130391098842233930274871235186024435960465774944532196813013128362956124689501459670250967446370096492213345092651435271728827989340995310397671202932634210512490137204361350250770720601620645222714279689560392009685638485917174332541301162197793375034437496146560071167577201415143566103916348161804998317262056232014446131191462761736547080392880188609065385408730342941897997635451394177031750964248524677185582092046134869991153208860929256829892202408496542502537518296063128144848093399122515519765709578706684086764386945907030992532662217218866572828267036118846379843535522835975724699630216233930817411567035477876181081416976305437610898812572925948573058460348566963895738865190322460999932198640361689488766033332374054248521090643321278874979623459254693314088840986880160222758118488116418877864681836207084745765628635593960544516214529261181977866489707699343854001926827814117861415551508994046577227319815085901224387541358943452501265223982397128355980938657778489778886621812809360171031569911570794745626803248141985926149513707370205694136226374244987680108320532870510283972824206771605193693004405659396731842861304634966717214639430710611952450949701063965181864939346059152250497684321919557405278310514631262884823342566018773825046220370596567886166556791709713684182615182520153008652243207905151565619164259817556748242565854586843454383617732475049327977980000051737401750388376713168568316609285338239368836290721580625371484195728811607120214391236563859039547916437117216739029616651004789237483356593647148625905106537722610247779218430065017205744443122168871296874534622797442454820265251628334126049984232105483447933638160732575892110003127064479325037328440870112118692048459095834889333008020411675214083778480561271278426682867864184125882772784180817182615397839083729640918692473011253936596115808381156516593497490821762502065824750821964978103044037656931202567671971907423834778805197098838677341183711627146150720564449254451589200572491857226486906105844750287593578070776436069547929931605301382900514209890612155083424082387531707708712105726371837993950358628829643840819211600735619371201157952885171969241115102299209480165906499916717879394140682367090845290092458085454742891967647205354226585086673020948070780236943692032393133495996508914786482566469043790061463525768945884712786230638619643873767405867909150681975523711466141336930352015789366860533394665754022999997252060699197003384377589558017580677682844093708192786737790805175675125035759951530208461415170016016802032016971268578590734464036306534542081911368825706847162203689918594170916467699578707995292567413604644213602966249888439306105117858496718860527470215750627549805501213444933200871164157469890938250893172057309189694158661893457351863880038940323362548083065499655826796143681872749507084537651175541827906634584595824468335669638835785912543128339374595347707607268785503333952050453963775218390395915383265653016285127054322774466145614540048729497064273780599905756235854209195821899462755550768822325445115554698537132984723277816923856567279994209482026067560916602990850748701685995549224236811382931292415982183789975478714115951808949828306606702218050203425532390944877044207504967941622385016743160933695057796095926204890331612466538073812251532679601014135591633070325184913947067253566277061826715273692435878664886904786002388541979485513463907504126218313500294513010912175723927963579372363766084510065937904211768123668756972744272782659676842593982134118592475285604700734099666243902548153203236484878029357005700756349105473017235446070118871209766256674397341575511050434144707240757052543859218950894949075055150817174604955180628193813988078894083945665389717140533319238601748782417454404792177435479338993806273819931617154623909101326645048800369204413178551096292135055210198494033312612782361469118064995483867674497256519462189323328836646000600288668239275767261733528636428160455415887932894492579560194058568379204042193766324753581101715988162887577908986498058767368180930889887670457510128834219205890997030245021547589605434925457452504081044556407601773854339047942624182105256115215424599782962604359764452227986457517818961801492819728526734831294104184781115850133330568759808535829078825724639090393489596503322154336660010728524228794527604495962300343153844217957513555975502090288147718904403042064182670616563247740859979370501651189898125134888624795820208164499461138614412322564353944975197594092688890307206667663562878918386869459244582895671810887741132438348951898453258879813020728035597998598502164696953947131533188680877910221304846683391655089867760806321761509894886050222970657250156176454964397696913942575147044913187030594034032645565012215186747666414068717359873422799210012714679275233178080374286821301045711129466118136274734312063052341992890700796537511601298461545632575162247181740588251990189995549428325446486084772351781547185374628224986599126120902946119013509330745443176745133108087427917673622734449942923323820669752999233897114314380697379460177410891546996524877204476244181146937638398670056507042608529367129702675135045673961674476985650782218446823366011884493265795876654936991233247720311947935119933636014580777875948954714858666972034813648338774090720546761068948848045204358550914095280132988317116478118674167425375639924303450452168967469181886027969592493189029112334163038501989250761785903118634542624488874133023672018515701349208074187637499828901424337341367767948233910286653433375193533586796380363790462563332123384759128593468919656077723583033772459673176138152433815432223713544388420709763335653376820863233280229944168633434464793756763692880822601101068917537054317563811330383913763591877379092997693617903634464910317239397541248296890238991518629014765967380309476927720486836909942875907511900354242353139535814779066852347321157305201087531170323827002702466040594828076358580907359774359550673360291868012560570651502655854379503530989285189556977789552041758705993436708744575427787213089723472907133348498286896580922492221430776979629843641183749816255587059696838678958934773301382113496392060523935835535453180599753346003915950253684466896547262147135175358188337671549138373377943113459975690067454467045489816709532501470136721812001845238260125263960157120412894047009168401325357772690740597135208831288120232910574868585634457367133905072000414018877394951827168562003573605779902113911277251208319550580002319331570646408215466076434247951375261283675617616920881239764567232074391608602246145711162656479679348032605451406638332044467552581751711165737089006013837820869706484293138471461649980133123814917415353845916288610535389027646127776803258745568319262170812447797572440554829381119339161060479139638803486687631246814380920842411452641657571097325656408924091180864705293298487129988474776563755495325786312436750460511075660739906007196156233716487063610018780563721973402476158510313347031096610114023107736977636568068486732964524930193993838103332957390523676551594917743885563079602334529898418976900239344070641827177164324669381712301506542497993653361670809410981334290049942714111606611386404016736675027815564523613184174901937149271833439593686246140121240842251821052432893179740866701653016938272199114911823231133607291287146862848320967176893401233754783014732614171003034828489309557073318736730467057560398046159663116589845124740485227240084415468676841982531620369687251916644029335801383511291537418392693561777815465638764088815176821366162627229066419121039720566918506652474725174100286714280077563669299084326554648056732986148425900311518168875274986975701583411084796485395361165624127119271015500706357997207083526969046583811947350318992945314547837156272629461465309095366903001750844434926496314029111563028889926463211189988130455268802949489408904289386083845514721761982500633708114476658443697450257104733372499554254487942468715812984778725517772564853400571841615166936871034338285473675074117774164530229629169855542005825444775276084066410183829163103848074798412972866644919784677881274629957795342723958345379440328156379759653697365788967898959088436063117172461145772884403159509074950424868579490974485464748973481399009079097550361087564566888255139375069424647586087627244368079043652501212624305464439636961186765941548917591302577423811804676799362314664722165006808495001296973260616325532896975106927538196332057021701131072977193871419874156027230967023871941249170599878570888624353814680212917547437262397680591003187567016850992110728396952815187115182730926354791604293587797429213750294248782710651903918012323355198048609393563869702612769923990323161495975435903892556254228437900951460795721663178543779762604959295616073506895660907566025288117019981860712253208748768264608558661682169725126019292666284039439603638714377366620651892930524453455465026929937653277667147569825568808889480262639590347057953555508719181324000717874094642433772921597979104866031441014352769778895492406335929009781201951331547364417899279400702395602192611417555977247911351718981667275048011224276136565212267868896324196142515922842137143208790987669417083719831123073843574836187604065158820459505590572107931880756984170143502650735096140467489330477624216394286637322760524017477399473082648246642028058382008587346066109690685971652017395579902721423442687771575343249479640714901958249205627798866732010836436090307794793254705106521021414951600987261733036803022581525811546575988047839150199591230426051582297006532594609922599753967822159779109116789944880214453096639520484747474291027304027620208219573540399821714058780106249190286897017180495726788272740080460522084078511657145352389737345510707282820706306235088482105792491606646319578346199007079985065934495563432744700807367551793135376008593395030788999704163711981778167289909521665475125390644561422544729885773075771518295053577273112083080479983361045996000712839948043777215162651338154960781657515709351374993445336704984562705017761999196848930760295818032986882583655896405260350419463628074624003789120817460337944855340788937495890213159710366994531144560100487606958135556378708916501092870890268238510027024128092950304337378835344826051567993146538768084166948711129957391217429801381107901954414551866313059296114793393481385710158615957819696026671629198082014223575320964108449906443032765026728690187134558261628718490267936516002609825446305190062505474391476801829841048070163096848018758804851552943998707790042798446429353153302487718370889223742433757722703597974120216537091786994439687428671439897192969248972969731482977462706448174699244783816785087601680735582205021482297637074586875200168585323210879814547504001421277202419771668533356442943478738695447187701835101530217859956815957562179123274917368856561156016453056399894672131956073595568240215854897126837471096662238074554123770017223291370428881021557695208843053087917053856588594770439547899859099453794412729018506665773367568446251372005302271972889437101689203099159126873556052780285902149841376786425368439786268494023400355897565542242582796084306993073957231646784243588549557993427469932665441006593326292254785855946310068062056358357755187615977413850151166207347658691893220609806799327282759100187165025523469008350710401495564377498817599689969569304239796070512159415250378098505892407265088562301664845763349777441865580476821176959279250773366243812524544512797178914130267901897622388043142702485192823684600671178700673513239086415981074449924099400113063892625854402419935317289159663295743207433162604341966025578649962691265910096257093417370807005173756237880261144080363645990804303791920732464038249052299080914577072078666904480448433442051343309985874350644972868532409108061060500096361925222767003127827215415593013990654588521134422982913743421090885049135355982881433156333391724433091897730600081062374295634107736977819798781279840131937726129368826442317404748173685237961816435067675777947227690634846470057576128315375503376601877411817955935765944296937749376940286998790713230849921786919549787027906052027626839212459412567275824950968438994813760771889464626267381818958735853775341856231872129442335949241176947352916660081672019391510687739163062678199601459065620682329908239601625326402680676199051809030349543312732959240176494624871610704017351520963579393651149627357986883644620024381309419600355012560686307272911623758253808764209171102591226107848077556214711687870143445082628921400128786170795905522039803070950411039140137472150772211845074460443389988133231575429025896036127332826007663550578253268821904305980544427166436148330387512445294774178082974279180956732346869967859855114610180496757887220685118929830539373929598582596252028844519637839774701261742908886043288278519641153631207774437341149716656772627532031808770794813798052618254556174026234757648433176229267546586768599426082110623498602078606251209683635285027029763247860905673412273791537547772793628443650310419055661211783406296842029812087645737796242094169299256612056827570053742856697053827514358398652883510442241270658501280882343910218918088252166392411075793612259079447201567107896230913463196433065420471221617795615138742177924051583633648557056075225424148008752349765583605306485714256815566828002480678178659557410409924586203724962365557502927351624911821926860942415767245023420955902423940174637149065224030231113927355624830157529410381414111509580486533112875345527889452431307821573833253792794781641138372315760288791325829958850642663333093959805136937682933221745966261871194495217956976555751274308582257415707156043474029188900253981277827789583131401687841669356658658322766530891632773220649829290667539141894232915225773956226152907943877055844121627597068357189271102247202809715238129725799115821705209314324458850213313374238141514191270231468689832464193910145191619065995278050995827228593575703336646198358765031766580935705336309122133227552014218050737371319289181883214658831250680422476379780232809027160737490981732033323676228060779500054540969621956690713342084725157664870218032974251984124715339600621694974790987771780886800242986354562184693242541364795568760124660546180597385689422319574412522421532701204415758584561804235964390521516406715787410653008786235911660361798260771565677863062891058254542731277992216163484837538412632404955314382972318580892662313631933500432480612340392970193759922193453279149054220606662889824004637571388520521179430493619211773734513912224697259206621777587704178299241448955460747735773620825858389932279988631027392160605564404318652759063969109595737602996352529683529671117963729538954526530789552977040637940610537088409823565298022435503489411795189079467703337354516459791973136982840638455679044238887761159127474611720762798692309061610769170700951823214320290221130532423118887139334104119162474976287735913095741651226616628787285410564798005335675177777909622766704090340125785328781904536851368948213704359918777832653517603119574605396538048402239908508729084691633098791031106571535356279898114203342743047578782854134338029239026820293674249390253226792514871328185837170345000280860783820571413616247944343736328035939875805221675526469158809500829983724881773307361407727192337486084993856320052063871467228777063797240706434747316972620530904565833266019494612501626954622350083610162860085620038664249686244969197298699710007011891072322876452141800299442379001048394146542445431989325295934405102666529602213708523723837708053678858131603890023494300477881894563818228544665177037590998923164818879972364026201545218467274103197877067839064959829078091039285805995659502908195698040561096774575277124886999196567454843718539284345935790869792211454561931155961929478185533292364210004294782814542152118216015812975268939738753350623962125800987020683389124760693954560670088133229942489446604335532777451180524484600393713820605462855555111610260071639135681943335864640420588109143185965811159302911681398179994353350763833688578405628759366258490596842215914531378877286016723512211400007906396800677370400405568628434455218261483870327535128051680384974547966438361477146046383535545779353029221796999107200112618863567444999542507785158694912887743292810583190689281818126560786084020986305557362638403121257724402568208631313402926616240303855010528466167666160483013745871866100169704493761544794396585707097931426877721823589460551485854762241684649267280757951942092480119649474684569866813531321774434050441547895623245757756275867556381883272744632208457905758347105374921825507143049117566706576542781303326416245434231211892508660585459366135045674571003718923921941978008678329290056930677699529047422233114062863337275928176682970745388556651756340168457165756953231692798544360791444767505933002391123550357994253415418867553013195363948265575807109688925192300976298633137922816090592919262423762155792440714102716108573124813455563299399826017000883894118589939046937230244532005021763244919288740265033024814686580892226163717405389845621772659233710975202383319150184581829417686272403782111026368786685390642649291647837793475200555649968675453898402538652976912397060427470854956162291301417477588307504928095976588845977058303373616332552796309878374074619241248580403225841822627635585304334339002253039832924093383830941991207925291384423395246233437777987546572998717398506711958109818993266190004018219795108387120593693770992764488677019667315951111257328646098595419988379808135980898263688161344582161781476668389133760311973910439690266002858978738998134844212350490322764982755464220539993921694885308912952560767254207507162686265352194519339013609628776011400964769686405679177110099966277493630947919513066643628331402741875255065465798894994708409936409756075112366355363059401591786780259382232941793263274163458314965887014638649666656078187078479298563467378060637432538388771003038056857689229840887664496203198387928737815764195308388631310899468030985184398292438415852599707258633734602191761117972270790495275835971188685774016704469066610598969784482538847297506204707336568577134788738684917456547187627615269718881508916314266217253161395409449049397165591038697336641265816378312830177877346557036869253511879074193140678360034585262324013135402094388690526542289750396511506840733968279973961373223332313498963221967536289065246089477181175150519051511487431977130942740586263497188483562045321536180460912824489821490022186827334735155489700887824079556471777415130120271109220254173325859274968983658633483787044494520186386058572259065886123511750858315230155472913877174740289920303120422324380673081154277076958865773820512219048538353482947462758728651660328227580124324869140979330141740352791554238008655336714573672023132255925529229881955930418302311252432230373895578299318445965696627325666079456676016256087306156401798891756515516132268859623654581283575266886292955894692740404640021649408728631288726857202125681329013788804837068027888940154460517376037998240393937942189551819842023578782581598369179575587370704673009279802973138868185149745925337337436545521809443184960272356305486177699437858216127691084827131406780567567760924966900898634706237310312335615362153220777557602499526312374833005463539717445871509075954009066509106927019546782041275653723199507248225758118377993233301339597987017989615794544021794215860718568681176034659926212363299250208911061082711998021473202674102241341911346512247832036477447168660990547502039609734266505915910760153711266647677042445797520500919247638325270546175814418599117086567505274705849226652937934522177141924516165240894867584894637850016594316795816082716406646316699630264823667819910900945574495422146640572213314701994730159981060788015035925360878314757667511427453041173855576679800837495164866628377039215104621233087813190685146882032916560820662071248069207928833824377747880205346562327504488073573516604603903934098886961967289833504597710105363172904722331813939238930986844871522209815431733525279137701800894029374954476889396322602552802270328975411956892753578575690031780684936938040922714691661797138227402003564722895393321657448992290732963916266455234474637886715736965699841455991252005875697480802626574821839701029301858198838017700366891902777110295217240540761132074160018896739446327735328436205317634564546620932273117102224669187996440999645333717642849785641035810577416847471398358853583595710199650184184221311522761806051097735949943858584838865138534365312233437811711130450890672440895979844020427549538979444417327937410231238721792843368861965897282621184026533246756548860507674319673432039913109786186574684990811517868157573573134989169729117518622369350453514856334844466470045951516587123621385800911203381412645204436513997225833843235320118905482172970687560382542444682608988086154811588889815793562381870646110397368060391799269056486476063721702411494520115889115369114828145238419447253810982599034068112944184186533943419120800740540834151800168343836973268185251350839071426892964938930495544827128624802054714015177803979731515971037060316798056825804882586335962632857492917877075356059540258018801664613674512783433555355393497421753769700579196460337312490052021763031784410311212683634238373763046972067916250288823769303442639048701703733638699534510344887867444110962628638847741124463914686655416695409014963630088996085097447608432748673090215794223929344908428837741267035976975130837667542865963090401209239249038066925042506251727971725285444917432210893611532585171024814897904352656486129487986408333910542618205757039841198234165848221825717911054142639409083853074433216161776946124666204353341329983442216612685840403238257686115529448158634942704565281090939183761533930404273115755074863679269118913270573060015446569175353835231780215110807918651240056576454666196265064292759311480158892201741631665958850750409011096395705939427172301843834267744348706679647124137514622603847110072562901163594275748857068334222898314283474683672705705058547127966481213554287451883453813617254767703726450970669837582125086852032806708666302279828313949582408609299494379443326289597256049778269382231363512543312097469460994835368383832367155637902379751385892840604283561800508422592981873977824685015614363583521151084992946413031032629483641583306317524827885062373877779442440523588844986836274850368221727573342104850003759293300342084064151558228898105283112278029837229625061141567418826414556838971154502298305079389354131804511272823928483364753917593869749585547298406369222411010014462374246336178122599396965335425494491612891182333821419875897269288635788941723684187838409758567789168241532259822366819127058116971608954127401089487622907182035429491695907372001978923256974619513236078964524797133526975693550151605435372394003133124638837337027599317711365921093219994096660405868274957181841718058828573393223444812613370487935674880204563424886392731759219067360811457774842195672139379116454966317822897531451173506216440415643658970990280360815096913990786024383880069152187210936522836543350054798421019665802458457377194494093486721315783783216292377536636088695911568085289069059631697936605678581819623215121377175156614321014645189150103227637186262380321580214514635356954383394242506194427005478589141196347333381104770430511320658696905587811241092897619078124662392833549152255239649947648166638911447970362823487762242959644341397829331209082192918797768348238940192961483401725217491386298566866612872040669016916295210471622457657884000828641279127881402087025488681940138209151904708114776024699293814548634528413576874975610387934540992566872640414594238968724639154602406183434111416511482485292522734211643009789693165409716848434307142158059346171844983968409052166860697782693421593734908283602304069643705794995185306782002472284216148572207364965454105465360563162494010712196900020264734674845792847708401001545959161314731989672492848233329302516643138992813713264805856595902893130281288176756168743336581472836398002827472392143303228257433265761057872284230949611277434358815345443543293120456556970806406770570786657579287441353466405771871002577351105493785468937105879329215449837317694850143140572896403676764630685621601836210789489723011913721591363291778926186997013402600115159966823868410298898968840111417582101110255442854189603304854848663032207833503811423253188053862811382455127135057930377210448719915338274144416217255911872464303166188037625087575023221487794819303614168460640576572006096199288312372529184163493326685448979472998590910553061231474620834398843678063169835864922394153331955784050709630924094018191696804971246818449792053401635360688771544645008989672122012751739570865001979785742349340489546348455522470113341727164010130128025676624302010765116330711698678027333289662620645798450619326292090577056438516191578399368570155417166707578352160519315117830249666364887013860014328303373366823383989358287333353850860913784954410022303218701383427761982279754049474288169889532108909480026693841951710868387390613554725507602877492148170205401599120097340729136316085245622932350871218571433327569969997458980434642151709213302463616476575678161583375652492497952595898688865746525672956078148046916627072020889636722429344374278086135576679983641551699112450618581740771273590782133107021617542405861619663903075187376713831620075285534589043222770982018628960809923479998383890084183469611352779307946697009203743701872994803458170173332959928340095117801716793269327257595946358581004621451306821205409380091859498067738160039003083706642688418672888777780298649686613103014274160786926127269625684342588875719114585951941500352640336775740779705746537883077903593198169671541162102770377101151715748582268569392073550365419679817924743767414283289780688359572935631907858005257349632371908469134544962879800554488502385376164042232502074037068158285330376049878140271940110487895621532995526476271458832553156307068917097960634025684322244908840346099483142249499744942711952703136210228700788927183271175608540777151088158109678186949499064901314345467381684778361740584322074798934854663886989273043027832359276285596790448467383984476583127535358067869820189647885293357477705858349780828269510901050575535494400878173251065655753391292737864924136903642881021447424586769501843448973256232532921941548373626557034905603598766749948350613262260103527569534568117200862977408410701516632192699279483313153385581778908164620882905326853492389939302975196132462576631896471906881512034555361303351413156115497594761535004480383776888935682754043796811624559314614098323118232153374458811168378727986536124569217520488606051340061976073246249623330939643461175527666764976222245785134444756823011761098411176391612918440643754132129195064999130613988928671163528194348807210672172637462381334525867616132604706188309412685877265084860105366059075046892658759546549180969033627865469524858543229979620072830912983404974760058559509072706445264009840195784175894408858961496630346694794430629430986882751506357251136357027240971419719552015976511185875062026732704840464938544278179480097248880135567771277076717890616615307185908700229358987283642132648577359397249647521922795226114827624371648143653911017916267970424848029512089377152036811074044513611758592905027405441085405848915355707537862582503702363024743696361618211680776934702253557444870265002690679067515119292503308578742457288690401994903774806907164810496593294516123308481990270671254616273591487501811834549657905680490797370315039937754907998163637194000237651795918717645953264340429672180695302970541836627680434507828434571931103688553293232047900602325825292454849895497367518023984280744916402108339665120294167123926723635015953574330197324684092583108678313108221355195283077024662974763539326319330292904243024511028894766548670775422376908175036314739129936024056696577747408934184549554357268978694566127539617155913175347588274570119596492083088837578941434588162190741841188410505521144621316799510600664605113061744950903197320138933230101508120440171381862756987625242313065194604904769677533079658919085655827077744366061814803581264047454479400686233893733827869019005130218436832518807852771571320093384664074925467262203413221170746566087560330220022892968423043847342145417091654104560064041261234111363916083949418515426911138500088387959422930199172565757207226056248844261428211461985248175299872737042970331744931952278370122976350963979798180896437526252111984626237844191503175580455341889660617166809335736994609318198823953354046515096174421669613531191910075920081593754671790036889369632218944868339710483288196887198384215294473336459064613933651704367308643263584353045646633481005480800276734783089048600955201270276231461376018384514913985346969011558336306256398998916768517245367814369105731674828911379490637244977255317255377948629616790181640387190721975369249609850045935485093759958067152087362708312388668244079840904606879520210393065508899977563703710285570851150451090339821576649903514570719401898736626416909284557131228681043280926431161268534395966846495724830369061077907475265916564502123238770000751387680635512441784793385527666018617874744181263962247577378357628594451839331672063082706397112036150739752984616175357340514328794833179797048198421902611410272612359245464318521570007830354989994635602285991174797766583989848810790265079868855728471805529663941226027129297337559388516766368566628340682750220748260939144523027571102870625789968607773159864327386161795803061312316536597824858911362931400921676025470821684918638362276163005552704637882071985829994587481182331431975805223914316470850363174590565962658620170981148852875754248168817877217901753218106932854862558398664853420855121473893619352039935757516036520329356129358909123401618406694354854136291939421552039450613494413575583237081988713715608625124791395502929913310318948853085333991259588352615830171286248192268250829121983134455287152428046583850145148452860839329134030850889515554467466756082161688412715967421367999242741361880081265237075711919780387517876559878769993951975046125299858401576206871513606399146499290306287977759710792599509862822014218641451911326063944426113264234526697996896158227501754652393930092134510707429431982775626098372588926339114988621634261451946273999049328659842625893635913613801011830687626636242485166336479443142325140587524740387960738979549256053214000612032711356196955763689915648248925899786010708292204475440678964501056986828688301150121346738821134035295755063973583607612265202421505348203080540947830887862806318441060651737164054569019965352313377166841335260046932959986951352020941045321051132501944199447377402340933546288271528676771136164726572864789055345196325490403455042278123370430661483267985261360128778695579293088958684345706469980607308749695721268627316808727311696893300196393384113295259401877381356061507226929585788489506357513721842939706624862310099013576397146581625767915839158840446738576262205476974237424185956920631703561114981720918210635465005694533736902071844687116434612555111826098059077069066659047697643816624328015411798578659506344385934280391455119321116542878661933495861510284285834363312798080681854145877610097687614891948090422626254440431355027428359243608401521571592391355286946246313776428435795623709475108823259473576708469004707497357579652013930736898087355590713484329922482003282254368610368564923656973923111445372753830165784710453156752465171779906938087457690622193368518837867998460226215247407041291083608471353026497392663620366207455405510371392733142844017571910541242343300811180720250116372309592895359608898060554050842711881567907422049670484820241585664474740693397104332865312992198330391008863962573320581234624153138236927649289348028318480298246957569272744747642040481672822038154055239058510459232312593622878128688835534885004320141687021566178332093125543722961335302934845587391260525077747857986288416676723400142129469633376812147085619290812016368607668831457369006555149563861579786291900848072026994191670264456173890653470872823554288551953045226405257523499528778099568694983914021278602303135992867402753867276271373793654791535558669187116066592034290755806352228116618050455992183592669668289227580552290545210561924704460215492378719394415170928955579133032623419940244787241505703372865126032476281926520182721030407676047812817564998276257393024352536131357278456112995641201922213671523245884784628440653802728155024566497964831150130802725941726614902482949498203862586887742905285913536285509095760690564516365988081484943725787457357659525607568116553297003889090022328512080051810804968738905895050175066545012623609693600338428656339313761311514686921973013914402918986356333216365416922288234043637414499286827044318121453267970054954266716725633052991836346898430950555591913118128784578349392470159043480871340429061578299063797213009158212864217872367274774398659929110316781785975765092091916138355449888412439726630208288440773579673626803161311408678129491182419747501014505014455554526058710200094015056039906707400470818668387635407937857439533213621389118474421806367193868801439019202787539954346275735761064536730680896492793042860435586171476345579085764750191641073052265858596409194661514703010794225800702810577826462861494453050788410673980356563593685723501966953876718449861667204312986876244036820054304449578320920484568426898480525460999219271202775523909342271607141332657253357016564801655390993187808289971332501126524696695943783100138600859777148345859642954313348151259220662179770120036923674462201201142915232747205529159749701451390836728226368830100193219387057221192521404647218591910706772409644032071891145459146811332482079942582732515959934263973102331561110488640097737976853599572550402248505594483657672349644644323798144521409806936811991477695209759478096579092489546962639060227163855813738223677728229365131310256063673997554064915450068147168607392780960000294663120356811989538555483001946417385923244850490394803958855375366758136748039349632974045163487146498099779518180834654074380700170084437983945886104152203941331391698484000096221511367928839810977639123857357062945156285164646527447830861404321553796082369201980013345022225254622672216181092483782691800403456346680112681394597504665810287022675574163001911349129237979461538365547241903942345422863477600809016650200521119007395235334214006011569111628231429019005586798091545266459586986433469014652871755605119987967652047268423892001130843468363361165894246394465330820029274294610026753185355493953903640686016464861641637541919547573062336209245570233496887226752846256976283648228932160283217894942876768288142750273474834657815702902398519812154126490136624097691982145450691767490219189344013337753270292265433740755681344479325218917355191564153750701330226002933199876262319399680899939130626915082994292317844236507661112181676980957080455416204295123263156812219720046910952340475382242555607812639758404621433673390063609655654324879702967651367605829819836492380086520784991883941640425645355271108768704227130786851326759053347730990566663051234630137534739326419128764302651483672217735250764638597043352248952262108920650475309303503430821485592485927526297758950284129671110863869741781578586238408626075208567977559305090432148781881827831415752989479061722491950999499796545908389725120846691498596360492444465981971554583280722171992109317094226383798800852403640005704376310537870178722474752306528757444346135334238267490805917973702480053166310637896910015584923064639843788890873946625941945726711737430937979055770889354625871006835240763476948424661168771914693870777213753931728048280710719357184408667795630895406507587555842171848120691221783404444152070547511787188833463216619075563334073069314768523956384144974682287035838913875833426986808118436339628435985665431513913965408423379260071703276724410843393584306017302210330870537530117851670747505650614877064232388699672210623179673552075124570149088560187197638271000599322053546943734098917152805848926347513193946753475881750020843505469277162138756645277322636014572572425267200992159350927586630567863534587789826106942036629499756876821167142332645292024186216566060786102728968408352417129783132489465647800852731342095399672554881617068473231275850321160327344668225369782673428816398732841142143634481565597978975248881140134376218046612457309383109203198246160184273427329369364814396677907091704383715869629609544311833404670557128827390638125066953763346783126756807675245795225816881052864190602206621252098707593363170316537960499573439643752883941359342733836143043393966125758636579546642378494386362535874210464472936319731378648889904185069567837539218246193942017548416568439725335893159380265269585731197549366478507048705665755460790307645049554036281053289212922179221360316142645861224868953915498852646814280351066069818177177691177604345159370164537415720498597347581611228964439167454395457546779340382648150745366607673594330933185465920672088466086110212702436116811715868694744679115551449958680759852503994049356643305883140392363496136993688308148309045236543222793867901020299601363340721270652135125127928845974119293413820576974443452182374086535268108349583701459260837269490413321865471864000521643036544684657325731069665885037068951613288226167644679743684142767771386076162177183501409506143800071923977984294770880120217351474710037574635693815963575299977883824309832596814582760950002961524512856161159459651011508090013636055102146294141302245967747887794275147046115150030340112826509690674729112347336375789394720416826643642521560607696220531886993920397653868733179953055737627816073301806284040928030430043218603660245348713512673176799903468301679283260585443294724693608069084538352011157195503828476512686174246456057878217182521538211999324311849738453455599524727514408775064278489654707251950491728602837937117294599914010549011948098083060131879129755218204304691916577270010440798273654496110532598697822546722633610501877702599044947774699606464731603392552411639036858121487719750459002310728648320113914939890620278152952248207456873532151514724965414309024099390880277485382524484838401200142681596827747488950410565063650298873949463942555314911177562144222374275049928657957011456943324738887630923219965790771257384716062736766546640929186986677717458378635482740935848367747472115402849144031947731651127991460993907301205082697925331780475285231811555436016360167287653316656009194855224024650079280527858452359450562966833734814738269889835251331325595082296204956427929667251532124608219403030286781742085221967041951694317263395189534379271992357242711693497991792415128032174521020785289023830145631973542126369260919992751500759226030255229883738303069784357115216642530008975494751699755607967737628277466034051930558096783383037883390036115646164270519659527990957966671659878682180977859491220290033677040615226816313917538061725936131542655149222992628952970794105595265744675864335954452980803934601479352744443316634956387483727191651304511795673321489391964901146439629485794198926287650904808927899919045261862647920716954392891437581048424362611633751736233474282904686409596042743574224235546171689666387205024401679957889032883170231518576627581408130979190642326314014223964930398845403419005122885395713170649889308814902379518805394280950891478228272586443795148686915153184337639269901252144529748217893345174150067976964283827519243310976540768643359654400835495725424310602165103508828275838618647054218525453327745993507748038605735907916369154726168297440929835894315479158666053328093349467651084314326557630475098412189347674888153287324888545118160363345857422390895996406506502331635216858343626835498776995596395561839325278306081816419040177188038880303857812459335637223890684235365574657751935251913449739129631746898327162589749854843320345541758523053958393030647732840385607312460679086748595396651580184682283767837094114445128265899099068215715856671472694789628594594295796992572083537030236862741405064307742193159190271150073998457920367317551193230196347264443549712185102747478675187280342635273217563600608831298801027924400292167659499752294502778175958716580270515501392046305086165866223000654358843352471906944965328046879657455669099746238897982759275688464488727388444556443464977173666796350058559144801086257624858608873682788876106370430148589079787224977911032229100567672142231811511125037166326938909112293133360709795022097426508065206473182094763534937512363519698609275204574956126471291533970923637009061919639013677486990602371233423775692831355779559534577926739805247269228936126796324455624393219636581439143316383630409867528292217310046567244903589552599019865436112570079606018710157166473511805210409935927688674260648059187036599788600858324901490999780142234980693742096147236840910595154489305091381694964224684576390505883563396526232672273448101533980667324862763692554635513690833220226991167703466417224982290368476931845687843032171047109378625706981267790762715081826532534079291088799086913123547920848718943754604611051899806426134492629535782599550173168679019832543392467743312134003446460492351314951221353844516611520782137287740892839396781802060706095239468338642297151319581558523995552051909589545945620604718836115923811476882175535613033000794972980827030480488040124342384268425663931337098239155681936089052634485938986384959169651400103409418502748980664838325518397748587230160649638251554388875039341374467353650204547416420299922304464747522101163122669940863690760242866711371395448407268377561049808904922289405013541157960928242331899532407756894739168425113889659360436157054924815523965958692742083339606741840648336430441102468644747563591919409876655354085672888785022541309749203185086129541868370693317588097465917679567545087524814811053915584454916094489605636013303368619677833828319448295262484979450709472799693154659050041629615638370426168876059649066746896040062224249007679949926837811574356471031106492391834520342662517050770899443702620447689797406452305121047605324493632986408409737602023169310416970562743922429610617131116146458041547070786028500868196778554100663928734877149386160453996265235866172108333323706218653268753958785393946698927654439358394602477734419175606641129276507410728916043383928983933252338353409260994742742414760018893380821396998466464475645896126576719778394539343450678660737188701834833454156275082422680907004584828449779552589911713024101796144200627865531649792157516108534049273016989260830825535115741242545533632012344274698393444571785179979655815398788671384660548580770146298214602461859431640160114825900624429954173709317739441497770839489363382971604648911251354108214548171466719868300910762559201840945957977666951854405848953204996897860321337557373429406346309653498912616959359205785939804495228031731639575789255564495376993359637580775512277464525389770599730557211330233401165128144124586381941668728411066002822278113276937396887883183108534269070626341111345261694943192413463402738631813341528761623918270622114258162162533773715677980833696541112326597961203205925566095482936560348155040457202011551999720920409197824195819935490175464147121744636591241957908944434316281091523682665911614739421163400612023774511924048838111899023601541818814955241395998427548803363134635026503494779338484036066903879150226008640068801573864365450575070936076747626139325960980557755625125401652568430419609341301576864449154694620205070686564370455875679914420368497968989333175472277689750591420736637290669151059888314139938411355150320533825495564717871703800837344739761737562575800795614530646820693482366653462857311056320723615062409283836785952618305590867662461919194968647623193860236126693588225551768782306452149866568808363935236191705344525506192900522914848322417458257897606041781039611624454368505423204188539725496275958778528579523009514409896837831165265321962006395691587285540499585899961320701701220319134550089682199191265385456547837967673438050102783019811699355390740429105709937128723870305259700659928268805995056351349707182735544695818831299864112416746400330696342224443627871132988586621484459296264451880590812435280782166618002451002045424890440786791183346744929125846945372686778034953597132142818181338669509944822739811986266901361631554231554635061350160704501153905817313602277758061966084766811159511498709245175778635110812576191776913117637570245157857939174704696280132949618416291810660748624763729636026955163618089837762951781275256157381998572989062534874490722198045604899283513540933723689954978636197277225196547002436209769453904923776407657057687575584295990865532275500707364094328708083533956130564702375728616427230262435920557667665714813230209419208348711373435576659227660821732351441920356293085238039539212846878483197879859950580211540691543418685365360818920632413382782430065858650062873010264503312233335635421452016023969941208367156296426290215114715695737473793467137600992671194102246959903673712956019340793402851718752599134515778877827401447979047721586520070741985660715559969321781206470247100246246576505933504181071232378712143577082918794964613472413568414969118358039090247867790023227137078226660932339638852819225873413789350964669441939765973745338260071575576725189116951220092948814801069835454969971572978225981787455858225470629405710677485324400830065150177410068186796200381878863616404275602092589734274393397261540752900655777017795975241336571477371763572255202697986332886439847139093727338285355440076897313485811297931812022619600532041224936747978093149300637233696068289733829818513612453300238158627536861025622986474417547099697289629236743537284462213367818061788605800800366977868772149985064994956787230212041876527837577882100778580497590776011564930751522773540984047235226927007659436627906107075477744671827305125493778250375434662471060698461556181706695493847604618678360174091840711660121649674667396324967222138411211774075094394555317435609284256152227175025737441815038599504540135668437410807244221374728326456326694096047603843365704587242063921732818169470886084546245628771708785974053037799946849002376912435991159111451251886958764488229751551059304607171221706681592865666446778563960281070318797912154795008985668793710435547889089996417981992841237364748822640292565543087533257001396827431628845793976264871652490864290292592584165192164277650788715398067909088670439953199501352598711893741563374807520821047316167713397413036497746760170963311653706768807877998936533094080759621701187222517611885768397256129731467031916026886749302615120563664582604526570736374748837294764065592220418672797924445840546971525035627870606374095232875312287400967892010756155187146852181845158193337926393804286666965797924214109813649327333095096368612034292777692033828811608073687181684759288572862976045984538431331752225130294442473715744601992944082925832646979733919669130901824469319485756943456823324315122520529810746036915822764576510960955162155039115348111631680607800257478674058850828172520135950222956087630918618060613054626557002155795932065561431288840039494478648922543620660724859218894284600910366741189805594398706059314247985916605785318688848045760026278025638762014772224116075300985031135720659706891930019534735554414909618365981338913845021885454931691451837088372812370481059834026772878768312982413359745438884379449693165415795313639256314421906958330131899360177827852849337664027620232920704743991551931925438445038657604395649582518736988775230767432219438301922056200882137014987196651231579195777580979610715529377674678583658813643051235371564978920509771334613333053350788751978259517203470879108648419334135633812261666099597751828244322423455541354061054432317272445816907573259266746061257025255955405974004821857271110899182774715447848919785398741583691900968423387289628155345785591498217190527895523045553294383813266486889606742965738427255449020921912475255694509485428581232739381519862664344724522140901307036345613097079482417760337672397726791711515505244806723879921051591493695733769160077781765188650888494783378916184959286124009520170920026195009542703329511447626127654727243878677198981727645870824398074427922593429229002482004407104315348773548638902006531920648498483689948392630069158375504136483406326618854664141305766308037233412968205352505094115595794307322234474794555611553670432574580743438172553222707179288406496316151165237918877479696966461905951403493726292731070815887839122845832293913775072379194639287330833092929088119427949061829391821982786675178749030646210923411687863819882955164142668095304981372658666634713259054220379493561159123635910236669661379243560494163849187684218429692868914455513234782393122562464434162173470504252786306731232676296231744960221857037556023056680493191788315119202846239813655231830495985664831646481574196970220523207509372458184812638266503374411120697014520310837313772970202811657193152754912932579721076260046253608139950760606421215210828569773294082984726388116507421606955880878071502579925565432442071690717488661011919275354347128992078782061439003239207132144429093954183433140710079937141818372984779269015134385182324190307171222188982554962510649766398558372097847530618255878682455950602244856153057196446826768638122761040236712066765882356548306855232209270730882375059232265369769147522384951933019167829465334817184231128575823563845126743792182124234701369202712542257026899647527414898711039935659263672747422348642581207894572841182489611885618156922318781785027172302593680609803398337062559649687376666606747575806878447105012172655427756402984521917611524243376765282921790262453724017236851990440035529969573139484746752338757354836342799356934843732059031623332123550054735203367813748413250108411211294876256161088663593509490574202140635176334200344206882270739684002199266472240878809098975907538114686585983267969543138003536020757423328029374674975331274322936883096214507822793366745292627647930643128099977500795919730736990972581764079920517819930233840430423612818498982056657705906453390296344773686406807805473455750535156655003165588064304596095545073322995551731916491019048532352613465675538411630751429965886197233729480597096019342372538645000102482069557311371838903579615827996194738256378442880539453650001207493032712226453411808373361903556987604818849003206566991524598750601145766093218521408317852767833101571080499602071958448282476032374249365334515458989600205791180206454854347739786285865858864978971391169573481117842458967132973835894969065447318377830399128483959094729729828927952347702474942570948467771448669909924940086171259664046078731804451670014424252986576503308837721554224705985650043306508960527402494939176636978796563407142657263794080316268010521109999492560168755306099312839106095827982979811773404212740069512640416324197354652391345177575479214135669108177762505019969694657033893843476259158179906573353168608879154570289104319847506523855339284813339457998815519499100753728526142371691113534559869413608742419562653983802420924674245294816900897970572843826125059579581907360961518239910249098218345674755134915671604339108346973602957121962583495209940485501997870374204809960433411465580815035271132033237248999457447000546643037947004343496977545691499928407274733042672060789281503726575239048318832970356115583657494257462358966513153512060669299027232085199289880469474399203112447443111304442537796447847918267672991807923953252556210805144661355660122703381728607822097285422380343485418690074730683655537594568512317564297703640696048454519466668539744942553993587769034033412848575428807075684248728610287095501960789062892278204552733567339149569970990561313618112001385372543640636053320305657642057894569615354494321642820204504235776075221773492499517198312364447336372324870602199328768800759957112924359320938879600060873394964035319509174708280086027931552405774402307697843142466315793989390388659226707315236334958083299411054225616104881299000520721743464780665953981305739121769689552927134948408548294263100301244472668376525592486731204413736949766146480486489414583832183810934203959819063825155519146306621351541773127621406749135540170286821687036568480872604327268050103271825767636299320624028211458513665441367056311925383116368680987349179008278392937942628307995780749456338663684705886428886085226094247465348888792561961785842028557177619662723519739243211476713472718598968964142899762672655410518890007758876348764632596015095005558172266374719504179879993707892863743269331998053370138315436918526493068712426964028766734328812467784053090443380112410519903631682295248981417650412296666558386953244751870205250899728975031003483323779079056962330711964584322724899218910631778354250468510011896850113234490191821140380319136246177956681938126177184708070802882740592081984617052553621517893667070689252325599516763442440875307758984512828517334022507165537757894260757467083356636407871124156942578188831896125844188034438521741071305008517708822969456593012913959536123181998245923034903291207905538313418387182692353922362236848169209080337703699441663979019996107294007189814851254158799316618959314938541989990736767155930021392546362071953230337481927534570770933810228516124443951339042530534877676935117591078087994384436312302744935638286573350965542860550454235563765423129317027380983127476600064450857178104566050999698870347591413180956497590970109168446099044096220660401344877081435085613920575285905534913527685540003262965466157758835183056774322805567270739869554398917014790959073836025135803296348050774820063110110864190157823890609110642266014745942080700539490452659452806161855741279022163969225653733653042836608654810191665193133910477617431844068418716686865676831627934612279438128257969502129681736157753330901924088029803952386829287226921078801487752749373780955953473117244610252262380054276640641766877852866917474773650291337972426216537164309816245495239088319073441950164356986613237103237524266076609992728255464830620627211581577321717374163035927187830585911999413505118528852199355526921838505477548344305486977824620480249714716441721469721687231068426066742852448259439898590269076889179665132032204509178648994669426894268727524025565310872876889009973733616057421650325877676145226082837486127251521601031409600428196151056450874791776217688730387499755692717792252600622426441266904317965726485875218717427702589585758168021565515417458921479159557082763147969567553544076128642851962711946404607752644720071147720503511159089375801397567116180182805051466565502338427131882102434715310480264946685248121620160501133299480641405417967932393100156865890680333169316669904188336297969167052172143552685797061079284170236448039927789944260802412028399544073368125927463487049808878884133672410141999377851132518351154021003213265244619810441462212734934414377093969519371926285817149013031529708490168205328137074375883044702374611658799094895449932357847655238264820509359150839376401650277034001812008781098296056604485074233581000596131618890508585560150283310947572899037937520451000493367317133574023441343176245324719750773811195763418025459333133935062652187966319852203822800463408055491721826299112416913275175580419800008371092692275660976330691514428809079769330485698005196559162901917012382699852598934999352053941641979914444599332029825866650071634902852731913389008320709376480685308740531468177914054456014534231923438856965970190185347574749974382358580983670325775546629038158525607804807151876611901696748330837637376857545097415748556967373794484563563413175537468756593194944724675897307154612377282631907561840501152330901802519447025971953988891437202557848627987738639218776422828958755916597266034193386495561956914570303118674000466524491796015237058253752604135601081072337333903400793688034822715877482394056910840325845250752077584036861124134310619635476436034845527773711338895196240382186638293320268893098790410467897144785910278633747630398937400228008567722603279074236819642806178505179025150371716183401093544575141091841185581180796878672407322553381875579721123015193265561670759085186073398505622648711363450900510586567979122936262737666747293326269328291473884635673819677859008118971209599551860012649777935585890855767830846392124225941228857110729400873084230475252133952512804974602395557766658727227539177036350064069195561067955505279523264296606582418220544635717367592484176011873785138943293862867169997032148390047669723105475935385228628628848084726724875632419423261690456641537075212960970249804483988180635297675188330360317342988989783571405015723263037596575843359506277759607783745377890152243752221936506373019479854308604467401282339029227418240816694355085936686834374255329195559407007808115425571701914319839518174771285647367199655667208003385565023940582374689475745297595101324223183524179007460558957530987387334321674724522615521553140140259332291040400588752951401298292268200160767781529636806897644191782216657897188117644071884333615717235795208487359041449143797606541931695998381461567924101186320377736500547168793700742930925335592446301061525937417064835357047141031127881895597157897373715592620213417375902645405830337277887202243642594928861515795511482748445624655592611736216042249580619394282857342840680814831454869785589909744998528157384939869386072900118941987836005807991722805109522094926769669181018803587520297814992675374720059777807215344811011667621195539918722714589371905578581120442210950199591249393125107896403600806999701019414501630402746081382439962782780318564036650775155048022803458600152701895137105300699357468984855648395514700789878310259857943341880722345733564150868511893020736822632867214636074115074737332068909671856943785981207518900827377922366554766447250780669485026936881088718500373994760953131868140139132471460846341284319557011191853475815701898298877908618527582053754979001188397709961144824976651312286417979272064205334157112824409264900229192108338168779636197895368419794949646465060780667391634605566662955498058566856662281982137771373832010561647275536033365049614505826281446297287002544431362714440169808744859833902051557149962162121598965947200981999380753850169003282329063044341724599030618234587882655437995383189360119841320590954544851223324367987550399658932913163464217061078171212446570201577929960456261255215357452891078752495740015830259246981212024134289427696588509527670725055106681161724373316753863194610806687853998891178902283821811701992734272362059524950581498496829115623262145468901737753063859612005022595413221784335919765842740957302892880266821256259643193587836512881646840930623774079195289188877967925287156578593283898073603250250223680905080409078922848455515693487236322384410634406147381592119170590912424455612445742023690576093734451467821691068074487459733066692315963212969583264039800138704583763895939496819370894695070787238753759018535809689866967918528031938679717589792967809702383668619430370718646065556016011137140585055704371291916688262804244940009269523717530507353129763877862971926033055579420848147325173323486637464223366695883375979806928748126322801811460147457592310420256801268625983965433475376404374243124470334814483163974223206192627552247925589167645214129278576933547243747707572375184891057322214180062745697496976050121615718893199906737243871761624663150718972425562011020038787371798649138237131218889816313783395551468849621717379530810580001412052957864977459910008255216924802863343187404924989092718308137164354815710409005316083709749156693054544566019012277093744109498943447269860530442878501692625184784048347587332531738948237234540339872827492363788093452402429123338431465153025425903613829059309848921342635293620167976883966364545211585750178915188425957625114054407628027482340254268819537979389633699167735175105396245534900494302004310733470549496800777687485635968570490279953017400539883449457952102824249131132711672919938703407059726449571047488989989162688364425424483975658540912463386250043904023379704427829440092518881727648263371288184207264124000401824227600420684319468380951877716850300909690974359667088911355575955845283046852238712330737767947564307456705831087630605990047030038344586282914594992379700901150240637193914411666307829785237934887788005253249048865861768023403668487872659874004638225042177827164732749944326205009302907614191778875277707789001428234899745794943823753243930596452037058163994475045774884913886525158003394087625899438444773669448950761181652361686099623591426615161321119501875759755847352200397391920732153414173743256063399827517860362265245270822368184987750902692776174872608738611399155714513235099921469183181121841488320795522768951608774398872102078577510164710028148112812892993970042768085802943523093139307368481125075313505765253635328536242990176980224842080624298241855226234086849732640411841866461148671927025626794505407916189101901224586743696820788699826598413533885081961822071362720042735164990751726636197852715973728392973842943829034968009405178165581567677498684695933709732784714611240441784638269185065976815477765973141573991035127187529266242187293464218238196606543530172890717015549538271042157712276689299137002694270886494943416085528925706824671490572721801623337208067489590307006828009308832364908149106882596896911672764362011674704190640791611919487900014430791137463392748178009118626504746363794468257532684209955851773519208103006297842292979366830079724321138253461755307425240982033125764422113365673436729456348813216981374980830182576859748469623462913396750042382369219281046569921011713095353852017166804089135486278658558257847485008827799516114929572701073915566647558345423100911073610668167618404832998187958447240011435846121987214881360096043324863350938428386754651290251010369207213274381712796302911255889370624539190971960728868293139917979912915090733312800047314244446580765441149266812571772415505829926828957604408635577237869701382918203611496087249307661318528992328612354037360513451276884827635365688548648596146936631118886951200261908443342559219098571585936230503639781631742757780384213442214717756034869844598562660440065147320645953718194780210767135643086839190667047398769356929937100354605286061502705132808653442442101719378628391509578215834676760004394932748244334233771937310749845057527998529605201840042452448095952471134794530323722507159117824633136420369953169752839420387851008464316431371085671211329369364648254453133263832339996284452607886724181280773703465261765618158233143740647980568211159569800977619264850139275981790572250937482289019453300687922502207848531110700968600073010440493022976045659189311053604099720941847033993187187625075557303900457113644609308664140384557618164105502879459684251041150747189443519571101074799236935595037723882811694778638426227988501640009736756742410042526584624670735122081504931273602777739340112294253388102981043038648384724336720526685147561040169550860225697956910453244610849468195939614089723811604461592878082058193443476732741683080047857535033237905635743994804570628364452946210377817914229831166058099729928397029492940889036204307593322679466451622738721652006487939036712902527786699596765590884007797701944387368617455009517473536616761373706263914934618011345799824109886543478562343394609764375475202043935294132676127613370192090942375649619073717163977298821987271544955357931560473564973962844682629695831982958458054563367057895603478277592567101714577033689891646104753124057805387704729615006976844797073023454907990472187151721254926920389826422396711345179936055370766895740889037764753246330369529987130641701031835605103361970120363776388547385543147310004399882487084896855768485837707218566465414945558325616251578399202889691233700950846514349996388391078899621431858947376518545727520117346228212928806048483779347266854892961098749957967969884649274014305063903856633613895423195992377396092270506351375543896121428942823894104614387742492102632293409936035002473276857685187263629427328558612821081323899143290606799616360010061025885051137573206683929174902856724215417620969591113394518778199119285632127720430499733107677998661697147625074900472347076899406372083486579072203054352639746525315481691220424449593748979504701794215790724178661475069783170979205264865078977093825313228741549154641571536702384815671156131526448789962187170507500737921516771952224916859549402063251619063031091980754812910073251541809514732638484301583410467133939700887587723016770847890337358057109957695255232741526035648463544183586642193315570437592260204602589428418861990240272281773160528574427455380812763773109944761118697052691750976771532935521369359810815835693573473095643177256897546230760336502419289373083329232291520312595705682998685345258387004204336640131575109254627760944118307024469669419645092221885551929351709172682850724061930376738990649892836095715319399684266911002622061161087969966451133407786398900355965756254373349411698546712704837452244483202855726248224975143323115440036076167569750003272839166866450765917958990864980754590114718225964612180494365163630367079457033834859695102094794480178473943112594690876474295087120528700487238501691986829800309739840225427138662213038734132292223119430354833035628401806247344326957914006055193871679386991354400878371012712465086965772884977801975437950521224816830062671647995918803748696745185563029273047237657920725035531987082780549524125872809639936217369225353437233459978117387985300514945619048075299074169216545643532920777530929687060151973863053040541861397790972927796209952372653408731745041037127663702842124244345885846599211335007328508611560038316618475888423873975071060950751405019723131472719106095087441668149893019569691334553732857901373169351118648393160899846744518876224410638527453040655865337421459714174069102966649587440196454533712296342796002940737227441843330358344524324841819474603237242859306919246208253596609960539591231010034582180116077560594479293918983847462502075168902705120375306664083730436900275797764327875345948750534065539431721588881702308010659735114247549842033333847811834007457792062201655411116953090244828852792835122382405718802245370798222917374392139466419220781019360165021395089860627644506081371561159480121722983519241624322456676803717266927440380549002298969748942762231579791845886818712489011171512763802473017504691700765418738010134298506868230887382406041941988493196653716646061686495356985372829598267938320080168097762761143042469911794777520676883701456564913772345580725840618340793340121101610502732920075798439154765263886257915714458245579264885218212057930069858638602755468378312796279816435889423041714420786627719636670389355512325031769646961889664983330453818619726982136627465703576286213433582925394244197900765035993427697614062656938522854770333804910799943434354949736614035910958374301946765919070151041241371229447869036551567454167327564688869924852578734552565581247937204409508132646822635737039056709234459416089962325206661291511115847535065666736908327040074186732880146203486734180587284223322054264837032920295822501917263841646173083400622118894419012095194040449110011644668584081057122140843285597855455393239169499268403787920903071561102836128355119923864526160797129149642030848134660760440359090391246963797799126025628572457103828869184978214749710538481940592495906477148421888139524397939124035556470954287018983064873840451993412511669294475011534153582444458086435924760692653200861880430971706292981624478327596162363677905825716912534690728019237202129517487317837662511658515225120112156855179894471196711359679896149002806592601927085063062997656028160790777966823131680772047970123687854586371915862684294215032720571160546771059646874080413795592095355020065461074947539095572152539232442105554835754610003582686703860892936653160678662006850748388668659707929810371278917694360191146086245081527386637951893350967472692202536186629037527547307595949828323081188383158399597563979939970093180979907959900744975718382708593776912131394924073495508154864295928061249147871862265650271430990439200735305280758215333338796362587229340686769012526626167661587689220364356382496174063023783036341684698023241013607519497320225713634885623906482047964185768303800639415075661445633006035611348815842467181902004051288318177471548833214931150701467957622754198266786880711476790017628592231932020397032589228822200510108842739523494155532303634531221579703785725198185435425775157380427464778041875134142520793318999343066680882820686947200713446123803652025884978072847550953960323384237208967226228971085175866397605338308376564334767603955820078904149397501609422038905771627347893670333783258880862021514017093065749529817816810896440177329035266821928411629162802454359431883440935233859993517648733469018740141415048589166214252008605436602100718852400739901243317498317587979423688372960678898977687686430814469169100914508908194383475504589521768034113793017704173486023872550617391376376704249331832592477082853715456697317455657033970542867685961320250484409311525454926499410369243063282031550328234499835140285325077002440316925749264561915330779513643537448265397407632384900935290222575841878349288578905488196926404117854012272630104330850782090339334921570878036739343441920491599135820905719844387288675784631656927977885515392431524598039279742041477548616525019766746350889267315221846013069832716918029399047956851830309376408429194395818192598278956484490152824685662844237504973855530389522005141768402205707969051390922683656695075642537979488019503880366971197914175163227376486617054724054459630773552929106287437987889591291803130637024849369203715708523597864043727532292955787910298710457565960757055279810531813454472322964995085757646027635614737041264666429429004386582425583962201778217204185091657569073964150664755977574275267028074049920326643163065440694931991865916033640547839599978745217985070527555152549528653187792534164191701924683018629547996901837620427778964250009109269384453598655178044734950517079236620399853642294127627806986195521992738384973461131208526927600403988463570659390514352281369903829843263634563854412378459466335533167671960074198967856626500555093031043612180788625333981568209542868736672411175071046039184226646599700301940228097802206285804186436312742020236535055939953182292289645390733779975708167573363069205927882543458589536402413097766246011033397743691048665415749618910619662814547038757016639866958150204509970278653638452236404270598892682676289733354128782082868656448804375356023800418189152396622668039683975761972343029092413621934253603395687821026672668455899843737131627365343033208860642703161237088428479041575643576449212912253147067516453778587095405549904695834205240476429642077669296552702551960392853342167794546406258956853988714526393761280649042420438287528631120368861268458164789493370347262388468734024628848725156195532431678430805918273744381774671720705852363026941428275822744368374519519587360355923820797502840556310768883351706656296742131110809229990648632423108008662194833626552041760203929268118093589729330024684973685884569860937795630539723338805420455632547607848926190545173249507304614369344375755609960675223801068666944578455562129018645675910891929646890935343423194737065958524397939777147600377161093693302870707469629898631700014613536592274533565921485048944572850867068965356678589680088992452876977209955333802312232056171866411655799039513549363108745307647805459066917574504792101057556381467337124835929007390695990357913578052877141430384326051516668035131465022651107829177234160339967699064021332530593413818154003215300671320977478109812078146708745419814518233093034897756857299602217347872660502970950494975366787836301204880074697977246652833785191933574444824813799033020032007692845585110785162859438653141727724604189274417595224345854755010475755517792531672516324758960941091864479709145074063334513481512750341303227105754479723590398489264075867182798596507358805083952506241832891722074159566401203872662867952171394262210993098231943181605546696297322259100526860355408024587991721927220485445326718680811687704104802064732107887407877508890477920335939698527511638262245174679479811482174409695327258819899464848962898814554705208825761856093828806205425601961182243490034058532454304192990382234391977773848077464583617778946529683152185792695968087740802715183211219680801879012466360227145706697732465394242946773622995308072780284235979918292798843917340624825917684837175694456257305063216671477383463970671900221528447556987752857447236317264632211059777127781209082866981467494217376649501829872915340022844119413330858063483032113922281577867907729868749085294475535923018606097245666594732951467929589355549333587043542334220533398866988088879295314195314779275490682604120711023640680520501518086348184828773698173688733958287344901031450493786208985611011490712962421449040880701085427240645485157426404702171738591604549096135315672473405113033072975744025624144052404598801293943039263202064550305446068438638398633551551889169304265116759034158854780748387173724857626356093683909159353297714356486821928110576218138419317551011839864562010331094780819569865725552121674884087352356151094584286433587436339390990301556118497266595766660302548771303025445231539346583114549315431958769298163168567212030417485802173616249504127800812901798205392639231332149315466478967716901705009982603340012981436836942734947304045058134448091291247436912688688403872228706406977487139572000112909212259087925929710496667705516302818250193604176674677140444892595651163231118285883772882834822708798995502163358485755783034568954590353632725442874014551672582043802596627990305088104139087218808686101365061632707071823300237143797807762562938782990865695548410994356006784707362530211627469192455983465307914944816786345086868545995501171605413677608537370390913820170897107399758474783690589155325583115959862450931560023039277234672894698986513367243567995310370294419292939815232173066671084716642318633473808989319320184709402001071978375418592443874183073428593896327099725685804882429993628974690335581701111964021773756993067092257260934551110107867411385969101184174377212678588897496537522324026616663566822067971452924958891974830708436454978682559467505564771568894157109433651288556986428705251413724175859475160048265082802098229078419086702574784214368675527569733826879262941092565471921739011719906306791412103651347575490951689342125475794517296135732158656232439543879571761411591074172950892206092696399304342799610566059376583944097714563351535034439693391899491351496701552442429735257458903383089368487412516916313937164993184483161202126730654348927182056741169524767824554296442385293886496669548948296843022760218648049099825424279191410545790099689417935233544971300184498682413148857922276094631653280685053733927563617277803851028569263131030114092977740828069780082367552826189653329226807276731571527797564553259991778824450523895355479151412695711161627091114661508856597940700980140210872649332894718841896529460910634297883086715919436021044371701854664308010369403632120930833014323204363621403303052033166854660800936025402615155473949792156719880319427932224577602992508286014429471798280989798417897221425994351061791348509292777033206399394084914470347314157276298598310137937379857788990597047814795449815446264992357674140896886772235227878591229123671198854265918486248345829512110393118901333090632204551418223291732586660810600593482651611978629815265929212934327015041074558718769133797581574363983347429512127689110337410253986657301605589562692516802087378093551011642141531194144166358982224305410996609776129141618349987670957419953765894520707392675796525739433680356321321564025297721764013290533401242354125227420724411261716741593189279403675919816779226912651796143953570999781082208414400266448879056526136232099065021281475128961753490221428991629739583546292816727013092157835145509265082596027026954493713663062649167795032046978888888173730028390475162138175352993199036537172050978541400353666413092273066545091911484330969841291298112724886659804138194185566466854866680255789542731663189843969656497443295100780781082942382055506755506542010443344392171033077309014530838175056658246660998369736640689679096849815240673496922368768905946578328090971758838234899054203613972524883690177479848555599573361094388542041377468787519904058616550809050648797440738824875110573135230670472815621785740572875302159870505029674201532212036506755739573010656545385261916616839630785384995110464430799446603869141289265139297535921643867911283486684843515576175006833405158183059746068920327586853888813039636635591978546177573031976624991002644321169370808901029560220407537703548991154186784754470376617478802389614535188108209812627316377759577944927719997083566910174464390910608741323858364732609826113959262729330635983079371291529519446766171780188088757434231684903274921777043328023193275239811701223064490546911011320277655697162648235433858548581125358307265978559600021149331300979291320815591180619500515865591406398561336567326432579228656434162538706256165750637058725024864939108066163163864716752746932229102860943409677165661332815011470419212878195405079028300893842299697488742080432458888015410971027630479603445694078538422245109891296112167783507264863539460920340803055977652805631652202727511654366871437290055572621571280686073567025541557812520999898897472594188126261295179478320452601402488816488029078439427025010356445652860264276799014461245217082956210734912043563507890780665376868118745399941764698260931153306890191293298907705722189519617315373774074863610730069585497226412161071038762064378888292101931497819221503900150139533866025157915995290770870445865413534410490865400362376786617322531459023679614400738592215237635254692923551623152734927873901522845546289962771696140675134783562901587856123749929762187085423931427677060497214255828547235281689865637869288514199852116129176681196075686153790026278301111043463145340970130620547773131005937050421704997873708990249210849481633753225619271778899843489935887729926047078908081228370951374279057934420845170712915733951684231119987373611086774658529185524482368819593470209280784235798497042672322068715117564725586134115830418857603403271493187407580300125163885557538195623486441804468134044884859013792658902296237247732825492573147755583446661453611872519541262428127644510717258314653728722581509476988676318998089380535377175273732637149960609330917241322653702502379654858526193869067351648249056030589758218780934450107571610360026361603641011104299087982681170790636914577964264870812779211131683254199416354746518792350600864767926896759303204400474785013975645711980263305417467329788314593939347886993416192964688993756229279667464115241205130573041814778449524680250507774633363585575353123074744118244776290700486878105490481158131390619872867650321376328935892865971330150139497970578780101635422782253372339836319371581360061651350643124111673079851578052225304511308925934036981413163409754259094418964338986895465215946905427665320042120881688268209085720009335639003928510604542478382524864070638594361187052797500031195893820517459415978955310243461989852555123529804852750917236637962720086690778056203479511646049780157213304131108350116423408851653821612607611650047805421457392428830109661319790254422327027010737447307646393523552202327046434267738973553238805644670886151396725289213671341295430597797486406841653052666014915169985771886067456529940857849265384304580239371447477489022289280288046792351742125248527601232312046911105133118025713614450770575608887038079660408256007036519647399364673819566763834903285768367975562049973039139089460086258240752452003944129712390183967363995328902658689356771856503916600967475796649820993826160896975006675895099188805716872991035219914352131265862946616349171210630259726579665998273043093033024188633569827969627706587391866223531667007152886802154513862777100204936288075524219618049625784087526058619877600939086813635315810425734937088055986139971403394123525420096395889073510413339043914080964364750770421745081305845358591283875428562024018755345497858441253983365318835692497031005045014883789077247449707550362763667515596939756261266663118111912101807758280636527564543507080773899675228962836985971451235093557678795787612471965761608272538259820959306615759035439211002077894298503166902471205792160711121974218739500552524764082251838590705088486371914693120743247263420850102605247414044869850347155684062725996265125176262476856240614576854732837699500611678370011440126991097426307826007885903881693499133015589673205791064186581747848243944801720266477136505476814716760065952592098050379816700705061123119137697439033046426612260156909029443725549806389759341201039535681687636740635065887335927463072157695498938846864714080438440572614793188813858863126372646460997732267936366323046744848508399253911577778864295355072150606203617955820976031612001553373746767291226275742942828813509371320377100004878556920034428528384374836870385153057805722435100571270678045667695887698816690170069654186190488820550839171926386291663835215515081428742397306687234288407977901089985501338579299688585684921593011148959266035736673589004867441058362039240795293887724063988280108979688776045087622333789141551044356894866009119723109617933568431898803790342609715106607677414454701546325053154945999846991439663325105333093446867692219723939896211797655756615007335633951754414096955270509403408743283099931778827709131507462382208172318285758018718193152201681135966498392289384821660109616067132296556892188489373530014838414557634306479640454071813863698047118667379675676607328282069014459034318648906185787993457504976131640504157882386632047370336341974674659227417517249900281141192954021549968167214837656777069423251590667688180476882284851740944177469269710190579708384549355814788037852675760875218648021074836319223798485427159584482073176105491789640542467154574120559160509366760114498553852544147948504042033822181147295899377470362656951030518473502954798310461833612531506433718360033444693665409639719202091559939895734232912666774822027636413815727452513753194454565489298752001702855890588708716317861110312100642416652631171851455755158112017237204614523039815371709597603592076041197552545939668548126737512525578039242672266257808610341834552238378708601805418494353422448279896451807306700526468245636826578894423538244706474671098192410210794385739765503451949666200589116808319061535586183438828353805075644640349204300474606322750593780170920081705711120707509118128891736683471694343385246864700843290775721410649293877040725658434515014057033174729734328878913761927200272813909202055891620670825477022595888250739669504679798025765136381915982823008147156941684246008815182728538385182335780390456404755070442813978950182580561456267944689656419026098565724229645161486443435004131196989894764532535618256590449535783700154168959925728223129558513331000143214735159875593132138542038057193341798203944524776737266635055021676806345242271691713045542639495640849894083358581519510198388846171337838846487131512214238729267440683983214046559511956048491620752371388357325031026547628833629086903904869544665234980867697391856214955304560993646287538502047505905747770185757670150866682424969827753724820844133853908621119874395261033321613167918260083877705928549506212528620673018683611983804517307585935348789678760240684312499738674252601455875767094799720756447651498766789447193341154812791764103097475279208275592704687235096801154125018385523365584456508059586433706231533528216589919781792398678872665611599042660103461979644930649885974442717348841047199237827923662197798951939147817629872203917318166223216183995594384396155420334654216132173624720911078200309717427987237850844453675103523659844182015436785457035446441387952171384869443660010069213315942995421537071271393071077121962647099052242935688998570650864605964751684333497201882962498038266239912077073605269501528232360533255035877044030909950464714820174959784985830674934306366233373351931462854435041111045035969578934297964496015158732710476429648620050288990955107089659807650823885178021772259220587886129909558397261295013603507122371479781444815065116971638132068520885934748124754227156609922696053433504291931000070810342369290661965057034418503092957968607211421317189714245898747499194593229689704992863201551867554506674912032773970025039768405191098590846491254676440494517362601521613469150686959874540695972943783674081489132137107306871914970196644115547431183881405772895128286640677742812936017537974336351018485443376770131501064363792466005339476786820065385264207239882317699433795182047155568515947670914386624620764209876585771460380149632489822786551742452462199944166408054695586196201168804285423886186819523615708539120622298281383562520889839173979920970916359007057775786040068224512654555616834331488237464288193348720964199720656815513131991433434986629710339964147733552299728219832029934799817147731939342197008301475546677011543630633275529420095455063637011190914476645370586303727325530867654724082303300638850975621176648485280585341265555466019968344381509641423534332937618625058792711643337991593568102151151354239735307081548185281632961881636078485693966726016267552739883562874062450576688870852247169156997343242740124043871378605732834249661074951017654054194594079398474711028623464061593202658710034085191812791313836233131277219610689403288156206019216055345544313242730240551666639478194228246134721014530908955662799411650627382304574311634877197993700778656254347533185932871223383243680262382557319060137509174933225494825331640177807886502319857463703895403574872860346112329374123003613504548048660123526542801390052561363336640917811024929523329306269746665850920506696262964919062532606269996114011771200239780729734988657381648437226947456174009917436500640975386588969487396886185409949949897896520431449741540860963129801253246098876320866863691127008180009917263255071520470494962348756957232245920477386130598407364777410621149801013953541784325912641718792569789723447342601971011164302900343781096102114375325829948540324652699571710316032522887470007172419522881394887487667801027300844491496523572280100365194750556731513958004562720389982393578429237892750362763856409899863335926678489440319493884954696712170654386460194858994319035473733324831553269636401677724646643682537854035171709015737088242777078254559063562938794367251201658562339433194929524492042207287427101439830529989554725533392520182950593729754346231555634159318663504402409212316814328051588795340986011915464924189704943753218046631799218983827785528244581431399756198906782822766768890602537893483833548091809761854129915193788946320254425299990411763353712324503044117419070734973197427907849594101184232688518182286681758803156170850268667851583715180535743681018196552201579169121750366704981133601834597124561801410582351527428551543429731197634984100120332163860406587016166511287272129933219507271880629299512216858216424033673746419970794999401629968513491778509700833245130767622696069748417359004757109669199308505292192194834374470142418851621726906774380050151816529281965617772596159606691410127555843011353234141438872264227047614954879284654673836686262364554879607798871242486225560517603443447162322131764664837846547020146926911964050994471187074391660795323693023378852769119763509731371610525896759621863062207146438528221763976594296645787995269754555292996083460096015697106991699281897259545852575147033665010103618696974318756107432030800585000883482086911499540599971267731626138236193477821516072585436977546043022941224525767134250588041046253609419835085562670080757555138858143450140056725343526010139287325961030963655937733180082389433598284027379499566847381878560920793189158274083729501844401361767706216027128093441055726920470395993603772694590241324442972579389664345802461848185658160834221316193012871488757735157164010538898861374624654412362489577996053784647562481992002689983656331911128387715975316984809571684737279671662779734248525361329267219624870993923208789991190135650536077921007317494506012225231046099934880390140430962761218381274297241529067828990790683579748810456041098126814438248599051280693575259079922393372638810879775632476605904826854345174121004300503059611293784893923785274422140588667568017307958867785941311959549635973945132153421612759239574253113102458687506673417411088935215392976817790162122580907397537444956471772967079541572582487609290333893099167410911936326993763877705731589300300720078673979664627014072446480370221867152706797538337154824063568762577716633862493044971261355089961042883468270469067592697303437113568778564500207638084302882516751877724798686809803270789625253862290035789289501378420008612414129524536930236186882291633906505445966655472210901335084108729609241171925154578406093071791451410906799458837762693592797612548278125818345879470624650768374490203730506563970779655284725806790773834355924285162150874154248391455667186678736709106618545543308652743482225200885296856803694217641066209822456686712079888953523634075685453411480654468957130835426014716837492795737085748613331914808680843267186340953666287140643062420264957699660804194568551038896977638541871997521532221367944901694865334899731773579246017816704147416160481133170267621374701044537910092212931983792079117901499166796931847711115669910815039817096342726654506434579984110861724786339346307216711798625019715783512308572096642775650958740497839931476181840896745195138855083229257909109922108052845081414820338042224514441612355518158647752707177460961136140381377142513877972270758540813113381587644431092182442064036309615221603178183905912663053581562169992863036626410021800601967473098273785069881147433228859584961300171042372951803800768682739773710882984746260268221404451171506883951535119375886077090854966610368194188079848299876493075059375322697440140900883919650395833716597309707140089944597782009148539802200738670369062979109803827314630934847865302626389864486782378692098023679537347474929183801838784599938565829926099122277332802679882146659262505135917337228037902714452416375583306700643686372911777084764363729722558680692501764600157262012513023013154973049169544624253986227549325761128583395785672906469664115995464097985257989959171533837859145081486069340832511729868376428430329089605371917849005287666657478201174089754800604853665002291275392952356928992900778901339201677221543750805946350393801244886532107952454556075313866976461991129328589681558530921603742586300691731143063306097955191183144506331598769530598862034353677167016257617983318430380674283472343490840130181504288425123402247453046281580655049191732967715762257953252740244963013097087263777475968637330437705175996361395047297240687898849410611944297127602751040916797202069040733412487969748648081725961916127845958287410858697030756174065544586218128717905888235809678778811044453754733477128766733840034116853227614826122517686322696961123360215076499746352146485981457346122292827115633022080719537219050587543921625812622750290689516780804972356225481257947587932854343582880397609236174203644178741920367236145185600097654607894179346606823052111517931381604152713408453650624140733519155558383406679348408817523709413167220374036755966203156692541614321496910395934676246545497795517858511057320961281858595921960979038160734796849509896646899953284028539642522138207536896336136129822677027378509739055288009580208918204413462205274649957831286384455515039385468506382936210369916455138767322271142747383321267678022059354285360108908798829106246824566936411356453348927497839285897411094528690807320461364117130535022226860151347266585081339175282854303629536848002212068702590316288404266093949305593285901351959574854866418973108340505469245991229540531178741926488450725374906904825732626664949730886787413735766980687706764342333449999101944352121213847171328446302033346917009634254220530558100677317171606323427873260634265828914494741278520667988279206493333234193977610144229085233199121424060757013662561793684623115396741150301114500728950159378273008190728183474121680538144657398500671465055498731540860125663452603628083621289765525006765961227569362455452168640204067006400665993923914597750108610397373981165621413610154712704785319464390414411807568269527853873138484276786973095243861211727908678819429657535490244803677990689172685141712547814229736362215494335817843453655033472126255328145073628335768502636687026153306001911602258714461454656914062160265879796506467991411798119970048654878097629357434068425007899797185404358517114632029051761683181370415381596080256308845172345094305658136906259490352982283743165919673245579882889421243426372499455899955410393270148689847243283804443279571641193603090931661358053493763696556523692394524126057096258942514806563464640270116981838638295665274390398678350169764908552656178869716347846277098503378147590910098454719301482172200687725396294653983871009076934583075777960710569372072814839862185643929043822499567941739029417536752248082470714261680451269863937288020705014339940613937942250305670214687589268914610862601422854305578970287267300635427181792547647973733816775381784959131516632544433294237324598676403122681781305396653763021972374561016910620615631149779436779656795842038099669679141249027069718435323324169193385791159216464965710946277593201436506683609599019169897817928477632033949226996880440419491123930832989219207773097247606770838717613167924993873156522248313372432711460076559296824840640051419813744583480998622565954032531506006802902384948269528960450852929009285964766659830608167349549427944073911446539419610385299566624013957912432068902381334819555288014171670736501617795113561463489857457807279011258714885533759997227688602956273621721317207163021125484665408166643637015181622940880218232809102831026866243843245549160624289482241170665613978263676594493075869501290068815144562708046399011612377296160563310808606438453878718249695390861914081795580199283402035917474920481507205458974860935844162429142931186269295562201715977500156261875087018779379810040539511110917533902917473351877312892748008964396129147024075826712072052483825038063782460309399407229046461504365716011431940153540259909453122302687147056880398317896150228725795497436278787089343062928894991530014516391953492066579686812440922742629096016044976028520256264953815638029607166260552886524889925006378391577459492395331679883447001969858630885037243854790960794520915354411702054486900187808029654431923525700063277533661709362855669611225346620658971640733773632978088140893355747712604028449305617618420845334891973423104873150533440962375668553499833123866968285665481180044249749354894593899997710648793779477790593383557353451614147669226808179403026781475054482043453035184237409414714740577041819403774197180566389624748952531529300792731262264488150117168505370068214787298019460039537355790756853502891613169133248253315217780620075781466787294702881810844794975210532467152410965192635077549503014091784816447324353440306120231334075749692317760821472626034282293399168370666530708518192445383920614034672559076703467077942747091922755662012246487020568709704601602180010315605146207616906647956720959964442364725872222103912955918420486421723953001207920452249939899940622955943908483046359114762558550976112330989068277616766602073019383176869238338409515774135482173829381756826028679763209352864169178312942492014848641241459614315612134711469793147585101843208722137051427925098390237790867911829286065021179755392029956221253428600805067236269829737961858396991621536968410585245889184666391254743772967885045476392839247861727619630468623778469182623520283782269683967083008599799121134548328543998316814034592620910647681864449866843666383658568447595362278646198972544382609872493152866599958389942444099940649926483921611410604358089588180806410118120129015959768411891810125681486058502460440236876516202871076914808042036180045827356557536426234564149152702832340393826382709833726324733420865649684661884933156490068484565811981631804940757135678156840098733653206053930358325278532667287580500580054911616771299588898747508381140847888837332540569973736124916401873705634060974254855130884645993791190795382593437384756867893468476400340760969411257626624886122633397659057004455096269425652100807746975591796396088804347287582738547237350133298943709567363891289246592991041395965721915703687114738363460854951819459601277043781791470685967641419549455669232792817400269192469540335027356143693340394630084052348605295318522042462482701754340206579661926194966377705078866924912616883591401328488420273130809776840159983782787357319891164577192238395674972826928384137200144983584945890903056523321641063956872190934924806744923064087280825166071395172448314905006893332108012216122041211802642482612274525755471093557320854182113745381751370283235592358774628973202534561016138402480949743090892914375764031059771149811941631932905365769778170538777060202385072968430527846622189593154453101249598801832893268578663520383797584045425913073537927827926538155497563967805678390005194355050391100791782001488525501479123085817704951258641929677304602213175394011127889696317959075492010323157315807220899208072026099830850618769918576630986412658714110634320956421292662383285926898470370877333296968043216832701069869507803077580858918313578321592675028256308989972980412799733533768599270695143425217689091047106780303783969544794780420456491819657698589374351132053513760691653188176334805399756654646678172518672273774265612027125688342943975966632946502937141012600306561067474964957887393557722077086671130099146929653542760459309774032049734004454755842600281983933686428073255086992866634348420933341861627332054400100738917531498963743017034785079143287444332944701664751089521734152768585624208228463912623380037906291904756098104665801624861276296551658029199066157464806180510161107655654022140128510213429092793463174360389120037861694264501734927363214780844143334401255770577156974151093029983417864629510640062871429352354864035726278802491175653342360587363176233466003288268143962087192996487010716767754823284264023353578270871371762574396165103488055791374411043610781007378536904385463228602077507662652931443882052716617726270401171552310550961214637786972460372112778771192088454901171917307537447215094592840226425196098914987297935689433501922635808343772914103412339357733844511726014896746123087093706501011267696737626521915033219486147819441657448265138651342106871113671291573527928322209416565916211693689530839752299121804079157310877872591444435191668117577576967146148916956642482858628413301962017917221421424266495140233334718094002606478030437575556799391151108746400312625315407375753434618243764353552218480306813508204959872880818632036080394178929994096480948446245326471657282192201116256728771830037537815202953930340235962558895300869614809514726273408184771864541079385691769669632265511745034129525482000454442438300509438978205350775615678531890948414750839068531827839379329875875460181769719291347612621325200065327413416706638622184521560338572988924162796358927341697538805897977827102288926030213645675762135815078871772484187823012610441158886518613531786381206771830076782181696685602518304241868079880796292585618359034012995634828916363160733133023370202851152191794974963264582256580763248138618056588609038807096258850058036659986422379616087972660991694303895972108089705307138327399263252651454840250510336980729345083434862559572197540043798600510797750970529447902410166415382126921021632976822902616418426896031258150023415341091911117189664221352937938005008097614640401756183885325859477765833203910030054745071966197882090138982217987038117649409804586979774775865759499453993607193243335196938844101027320903769602098693524328904593094248665992840713619157733514323364410638676825336491179910451172389028431464305004373309819233539869013916043979232638680192276335176178760386185282092105930888473007502626954055473855106742974464962884004637587096886809175320961691835100198197506743998177824720948354315937231737886011070058599227360397182265100196142911577734727099465062140641065163243621713483792863811173700089117031244189409364526152585116368920499025270097158498335871218620176553593142657886633232305358061350216300292791493045707058821380003184856227406350635220343017354377909910330039939983621746434723802260558495453945524739617569316450362876629023939848406531161109071654706982695053365710281386143227150853851393301544907056137822932457480291311612755770484550966353745597289520031790235047002601239130198441573280209284003419751129759350922846089480089186518455201098593457025502398171855705844778856687730402021341292677369541294277728351556310779422043774915309379989095136029994807614101851009990374467981709286489296206544652942787186447313119234063991242574075475347951921106404521556130602212009843805744896458447796580148695574098055978598395211491930267142900741125533951784187732269396432617910057993839216107323298572503771396346226515881417475137755458418664340007079701179638071166129875144166262040901123142344264754592268365730280103374702039973127231797832381255308901198559520959378570866965884867663454754195344342541079848030658769487679012227774474728692036025485629144276907605466660667901599311241234972910789258470715649664051687379009121349565430851270192038892997543966977979677818013873902952449438228275672879280551246949694206581628955331654810901936007954603492968876626746556739183569971276527440133028747082290225789949931214990598471484515945447473103211406547346604633167337928101591874732790889355735622678260916793765541674063032062906674805112572670758323072205889418736408441595959318938419196416721212018899317356197033804198370209684144619022803953560834607596601073026186886768911065867407838261539891659325642901054478266228455457750748783186746102048433183409488316424923675072086442568357204082488190573069835161840712664731540251007864233449528764501217927776538116069146878618485386660737621254253757122501501042403172327330338408242353219198459833944448344777721859076589428159998536876057445829927416539241471471227690223463332478720302971570681446212615671727262024460413888320148559829845972266539348549732652847081075750549184444882700448190956062053723204563290919578606763211279091546699108704259037343131173440855632911500480153981984644763934913818593497724038919504183848367620587166106052099882064995476804263935630003420167275217559396747048245308498493234111498469606240240272047484793902560846317508227591100549835978325571953130292522459077143773692850292640298678837060186982812829998640516230793425382250118809736255841191166321362087489177132902156243499532707433234930676210234437112432072217539397274160660891544832786431888113468939750207835521946475825652354126823054309869951267378249109404314970341884318461016493232090843899151824587727432382579752018339267876106185162987120938625886714154744120441939032660792813348170621358012642833136886987932217017525458113047069757104658730698518520640414170481769260357751547664880565307990643651504488362420178688183487761652872399906614504007452038748531946739197075768174341250916230850267934109515193133356651233045903318785861905415706774813672991157315319853888550578187824251280418716415297911763540466822337252609153206757628384210474313657038733316203213991779014604023946953871960706369705144283683626588803569840826988544175722928534789938548113345262870734243852605750488335885663902310766191638601867276646946780932098221361344559374045346187859392778599546110152776719611769729502953992194098894380385447873569947984588246540071125134309014836930245408532136839715753842767466902863145137037737502047865856481959900281846973117162162468430556884663342708207510123242154386128797546363136486029901906436972839969300994187338383035769593777538117152983644939135109970702109029297243750040958679957324251760738673744789955363949311746423755037929576011849675609100154962280501349276091507494570255030444472791166019898855428284357741743249437834877617924670090197563346918938931139785511722508292642399546454267065841412689730109553911919225856890732358830506362380491443462050262021420066150949522946533292044966573278559732816454782741571045744543874493463050144520102077225951507360544957297802589667742381801100121568700095194957027649258753319441584828264947623920734062215425241643900831242013144883324324188423562256991332306716889463442555426391750771238041821975157456887900700294489223166120043643614600635024315466482303404171338123548614422688915610001058275137783525577561360590612472192093805960874891621778173946462213804860399594086881895459908971089960208428390046454932269770458981297110475802653036524591487906274649750981702449139766161963057988533308403325035063939233375871644086885151926291884863199455164100015123648468732419705768321260323152285303652113481983231952352511131134620500952104029751433977571786210955975850945269419390598318871562813601319232649113817369416952233074198132874717394979438171308365619111119730512287087170576306671204956037596285846029010249490199419143124902615077420758920087736696983995524388089118936454148892717502036114562963596261296337482231457320914875697132636979833205113924692843452497690719941555442235723502627158496298842136489461037634750561250094018707410644756074714058611082380428437333850646731867062004183849775159312775984915635251465285748888147930065959425149128259277234695020912206113810385159807652151451047046718319024542470647892888053318844432659535306314045232070448269828691168908247676502930211889131520052949086635124097572534864979819406404383998106090562097628521111107280761728881218141799367181380218995027887848852750028098874021853059539831386507626847878373090766063213625102515875313622162471841840217170678987782476079228521498389528290154278327697577684528326958438918628771228427101019182786615983289071182599971489832360484301683462182039763510636044958450111326325647084046137091252471350948142407068451306304264510360255648983148457009338348970117990837587730783777274944872914726688914345374098717507189289865197266628026268676648807876970587225076756028227249115976367951517629664588998797076957077644461965358924904357154013518498359192548905556882795951639320387992624496851383089265766517672508375315570900919979072391690995687758216756601069404734538851895294708600375858093231702883769132111180906218663862481252124012097727391093053937132426017319534128267420994224886542206249728097064057841367717999181068564444947943671423232319071803241856835590935594883073234031768162671730071859182413171051044657792973952339254101500282264935663454749945843062149352695880928327421092689103095360089745812319412796852532997659516780941284706126239957349599370224698698995008678040101343509301538360090190993695306652224920977958862081985007394876322622889221572354105531720170947397569536001312316683233537143914399989472001723955852207533704265968838249261271701310663319673204547255827736562510387849580836182369271814104388014587140487519563906276364999515499822580012484708356010038251072461031675947372822522499262041456839967307705898623811370967011803147372783880193571965251304360239179870329094317117542269702545791792624892479946369795620497366230088479330444691999136346424250967174482373889292107854525311080436946699728820088539533704484506521636791212270442100655980112189868742864154979528123278117590225571271495506413188585044742405562260163342058251771486691624577252126586905477229517815928563090448030008244286135921828942804901368679214093318930191265294250715073382410652902756870834259100391550389396253821846666509228972305687221787544087534456321324955959698607105046096866213312208489695020877230356141296871362908993116357306874093382493205353545873327235362498980909497498057673627197456220843254439275139549987203734251083159101212331773021075027609531686773534504659235855217082337959719487406767839785504733281770391600606080090148675178099131447200461996285627303315764121927298266488170638402809187268634649865811061707817130744253167716299791817272603037311716589081902268318600662291884028982058999990729982776346627341185722203920382455889833036436518150978677745144718234984776645815109247167064579173559148445596706503827424339893392147448627590241294634488682192046856371795363030679779050044921311254819554566894174138080194092383750481983986608319112497252757680950092478211410842367303951903729391109351029334792860806985329830883885985692974469587563752457611164932451614176549303161993464898719001055817862866014728280748993941706492615599145158239776682151203540465387336674225171736410891234481354913608143904678779484962393703617065935363190744866138532907066908106856184665908537006327669117586929051100976944503150693386852483458297843913076196692689696886800975592989318648144188402742830433082799959895728682616336523289293601500264638143133651192333648729347384071092463409024650416609712943085851715170258602407194132089540237576489178376250163659711069179505965120729402151640231169675271666808062167482071159084532648633847456173973657460128890116336820559361319593310037431490820885843745927706728759049188079074321969913401626513373136753150136907529324052108415174387920803490963830859015616859733887279384859234573986501327950582232102407595086209197328817656206798180997938372804243801687730898610115450863545391450851434573085611048931985497653769086554898838670736614834498696514287304865080256189955597936952193443980355354977833610207537436979449728924262535283632718312841630784635982662898855781006956882276414400261280709044375526186205325571540072605840042128288429344168081777142570876698053490718524808292850494458425107087574936385552739797630759115085836972421355489787575443154532276724349948466014289426023766524349790661611343263769432229908892797701003278811163156556608721200938419074275357735945042436533821565645869380914311551902844493326081746922336080452623480489954662234328809247427797053271618097478500910255022409010194089184814050834713988004792204579224164374990446703716529136501200538667138152140491428253363223324465809150913958562669444098772711101794067177099339097653215349890291978620476149435065412829008104872518853438204565694364823846841228448460119054632139557382457514875950124369350357782253219356188844206232608430150335146118577397481182988708491692533924640915612685062370657941792692769926637834079359443278252327423810965406322014843609949073489308199185685907276556744078641128510010267754705930387095691293251546281852886150794874634033764421136981782594853580258274191029623034210092890955368961476089142362998365033063777996726665826234270317217674217238585698728362424233327294236440205025897831217228474665405108218494474123446863310638527006451533667904626118923347316350584533783079972948429384871616286996868139711464846562574111494678265465164343774122039499445569430325136068004204369735627310548394547740640836210236482091053118079860682940919995808342661402403113165513734546031846578830289085554837465282308434525783621921244683977596825211090175802933696242433589559555701556846155849285146371432115872441241481515920972285654628447357106263523431364695464573171775984215006151657242702462496522317732761736419696732348387157675793224589903831607289981390421020499924905142966736787680421245081134812064811955269174064176740955550471711535108942439806036972836385784178180849819782222138754189279353193175212984596371664053678938976130223691103687923095200313306300037808809310513111478156188317462046095096522718845802695929098320026171076268889388147187172600434202248403735071833996694411370644375652676505632157881862963784487358549593424349538863770456875859355823170892696791965800457099844029083468293682069020577856462331187262946373318025289777735256048923142186327731859540059988758851798128793881066869230062091520040860916455614959290811243147454092051781177513607173170312012514669715363942706977448127891881616001976225199277798086903016009613469006436753186131345557979950385378498438428113084319281916014034376297658854395488207365466601354768885559058282232135050843131483915267401672128735390383307937951479621406509770407251078596493985796359307736711079994126230638571524269508202283560009395124655554625972896555909341616703099279754280070652266649192323512954176102372558080413219899404658881075291723527761710623152217924795079307635563709729909593216341578206988552293924390819432708580782669715646507253972425152264012136230105382496630427285414135958185904231759641299648505076983222291550269119963566914061999223629154812198316906764865403606576301919880634491430358785165318338322856068573469731976898998114833025499485909018910559645410642330258114608967286682478486850377594987367608569584126301945558911321247019014007049949638642131498530250404877366288263240452037477247671721104317561638400120073507175870130180535483122389949042090916688548272506529174389017702455193384845084169536507511581408592836345000241716034662786428415838588593442356442165371037113720445948490065582996855090532590347640014353081155931483194700568989431242919270733356629782987264577127115269853182821215423439812094516051021564504495542890765356867043343761114205771938799971442481967392026462473500571393684510612165469286451562902862133617082075249750631919914268001451924085968542834422837614308476879332999086839628009692067476919120256585310199778833602871968471388337242516152768367860122259860414522825118566036364759166014528127898431933264996649177521703365734547977405436575055795071567843800823632031025202391573373573699701051007666070299800480242491527894694385333494044645162505026871470953377036946080610197497937380544503740638136988102627555255112141475318997254270388030180887744997856852636612095558696434702824267247382119502069307301957010216110534970492722379915015281582826546992422855634219131622423313965521591612315885955579406076813080758331487412074877293043879232230851792949240043634014454227348425582641757850750814972985800467167735788792688772820837263015371128144012354007377056069511073218298048946584670461005925724263429151971134213028809712045223718049593207319487448782043029295514063884463715218460339984746750974327906421584896593244584913741515998363882579818671473817214362047727759443779287064913719450783831141055479530748098177039010728497081068431365655994239173823304154602129620018661772135182467138890738642725973716613460129185360673856784026554516784457536349886258074953766029097044851055751631914957848893117735423162070352914519081332089118582075093185413140800597631958069617564468682706185780813675262765982900117947351151955270363663403730173417653863220377037154726016713499033059309869759624047511531965126068972378240689878326899805506606929611076424789470938052123313527172097871751045894344902264195400011873445611130362191554823437890592526084826513131927862008211180572845785145165868031367007436163886139250384521839054449424894397214473814026190688209720972067365849825215637354451532014845135314000189264271086204761118672602651019882849633465759791805597039246340719296571109792899461040857544224319808563812687899538069506707512489492783100809163237355325953126931256547186138084226864603121608155672145579579968626801632045752113193095347295477725418927362838855518988603413986302856084023748416188056253608790720281454268796727777794736657019985836820081953677386564789050100538521133407855081685772005092356319561476014896950094166303099646991363001924562218013845908811060230713982214464070715588704257233953260298443143076542735068997177602537945717836845587290407015826786534426296910404495011358722895119479779706960172826902514798541456808578652817860681772406213386538840425172507485749721344914391576055277808243951547229707344216084423360891991904902258063142645618982905659112056354341646408743243108895976032774408439362307198232767234826254665428132068936561464793023921245722055496747769460053397949534557317054494294398016597822409010109417173028397775865733263834856047708993039258128125423202214394175027648383673942758608451732956553786970621443685332907887601011970613052339058436945409964824015875668241791981270173857390594840202024789331349866678781293719050364927591496293003128176483139042350093203726094026709752613925903292548977703150065336909711172435900854393540875001063295899534418038772953774947673381306632456435500462270613276357501670463305060140062135646410024227020156835386952043404435645343678206508072220950720436750339789501192104219315304166429490367470758793325075991367257307849598804743837805342602797286762066421676056638612757413197294959296564506775338285669069873803642588020841279054163673375587663585277488290883506807517526282107009378514906894682336916479508146183136222131502332661045611388353155092088553545002623305422210202758104402297396893740746958396781181850418638225552537767377550837392919693246453937564934456748100995785065928250834858749270116876226206215252490165262265542010813024361247603776347338980284502643532868645142030078097918368767071646437291843597822565100686437233464034597879711094708715116700526578159669954080794235567867209710801334247529795796052713613154918032296297416250287719820123328624347848192504490387075212452399678223424058075933325880831062238203866116728182407071687480353888323520911445760549403948221653796814841000299483539437928174948745214065364588944790189271872579687971122433918536392530378456116290530093033863070931335584560892424889802133628374491488647709927244869905291567316368859650761541099595619771393469488786162286814340567592329964883842599486165695693426718591628979599886902644938382867654539651216392816991098936796661417288743203935724653624800921182221322070037951952958099955894817536841271064411907048651772688372463550329519759771853327165729177165353443197230994285042322938088437229195586754651058855576242105480437848370130808852521840815422615479294323016844807716560639297515825415242378079183908325150809495367605286011801640857902955984818920599939794915247758061394140644560401404517470806587776560757454404897455531966352161435978939723002362613017022814876759179104600404882818622199099708238473691759838678670551159481984492353233341607467962626343258861705725321782458039226871843432394202119922822994587632595803994296770932479083742598336371100182721930146553183685600831874263828874175688381351190994374985046493005747569147423396621664834700976640558681267910853185205097484882108224163254722947669755619369523329559406916382820475471937675938637931309903057938038512437383932700897620844007029472265524083514520631574278010088520490445049352460824675135378079871000951756121671078014832977240628169842606145207081928070957724952027788580712023848936420343650405215385291843364169205407744389678267266024047212312153745846076810642457363793093865438469110408846206460649827126272071814942393533807370452004324965124464555057879921940498404275692697837680301059105098861638659206066018606000855091798998687392784232122191339169086636686410051372168658339223956632426715704536981040169877186889381659842376719120231749302403893564046235630786048625538888600741117457591445180692847552611358800118479852591816642421400787057325120002040962841588865464854286772419844124170044907944672105021008739336625464018509091578850323826851099700011625800989345555459066907651739789733690743301950062534878446393453463967242223550127042513876016166184671814995711428804339561063050315628979458768137441147801547267995077084264136702002360894795094936363887632210434845526246045778638288112971042358713058013623996087914900218922514059894014306008305102431364941146144343624419747728866488718419528836387217033823697354318828252664022767973790896990012421118817559461105125100955667999778555089126644470330484590551983687783852551279788215193639025196826068716906856132182651095960531968221035409936161610912268550326084888094406232686590176464742584625197973323699270564531643866359938015917104779442871322181479912772620653071096303364769446153942357133401744029225566890018817220689761459707771500418497231744553610731831626867308207109112351493816043608887545674804252318831131571370390921794306197713430580469323063845412895935281661511166830321686107284560554222647120242652182791992503298497988836719187790751577437207277840405691357766502456879889097551005137586337452645550888646205584906044024450860895391002984304780107438978168533044798015444369817823285730811457217303283494981318129135600523678972356763155522262047965206559174686233072788681742530765919490770289797090864965417070760077888989946032609048839847340166498947802392678632866873414785690146340510345928512169819249970092811385366766102828925354307917261739858003255793507621274297977584017349630934357702025807527137398472708949800661191206750806178458364449921437512420156656939619925352786089265458575983749037104455642645805367495089268243391280474152073736997679400092287254994181068060933002104797276470298484934345477222039222259714677887496979852463187169903596394486445932256048446805128112627892629849009811346382009426767153013237580096339359114064903491876158369528999361514379370092002142697600924099951376028512702987174268582086029312242663839623698222363513798416062618836596762472057600114876679738661504702105696301665192383761995452799571719858311780282497509931305309327633884536591282312971010529560265315046616734866441274331726520815576586124157331008376466481714719420399934934424760374103222376667524077407027435917498117942870521944900983635488737745181261849732166733073566465894458813318591268470647660324081354341902232696255395550439795865423034707036064275375762502456685773249786706841740437565723571558289819370525561704580561832299786607449951996843865224919363512658782060025620199441216568644519250754738370395897507544912140391849892183298585000625569456164016097431688355682143571809819665288793455460413158786191810013276095070612855511130705920340342179192246825936793353502192065921067418125024164046664869051867989342868074709452791425246172647791648061857117944664119722264492168523918811802746363567298050036586346026342683571608349830088685458673645219216944399601360401372893522517268438221304382809405098084030643535175003771795486280153948380910969501532020415500505148007148429519973725979355709796542038117759468680621108658317969704785123665706233828569000313998818697154275632575347035529094201809595254849006417810421795563525374208193024680115858509134579049863838008457078074710528135910784355084566353784260058252011237074138971247742975812103404537359421410650440139301291049478582275149035559952100718985321705424378621182199460104506510375600921187919819718730110808454650713074521964578955731998791713383070785709356209082501000657601704468519388528559504078648152041092497309021378673807381064334243634316445556751906024419108350786705811800004493219819994436325398870339514066876302569357605005920071481781888811277453078172096150266169316885424640826880735716359848479477745066469787358832491595773787790070263880884199561198557784762133093963915824283219016574445772629746045691156574070788123841410916358480725377471834282019611350035346938958860175971175975495857120375876286605402144299187021337413632744490768771403263384632106275647844979340821736290832829858638358160852427728608898280327567047677842335087921559384675647051927171871433986134551239057732542386511552216488145035307781156685075920267966310067712510806305181941780851331339234863189197996996963328783541246035076605947734237029502715762783494521982024011507974445950251755148233476599063730105866903495549897900759204431466661468649367999995607615115954110475238520883899848174307165051916604259474436486836809085871876985755137604367588803005102075900148153086014370591783730203012624368992064518620770285065910690368898060753908180714711114553383520701499039873445058224459836452829318707469519063049488043433374324904143782745125517468379268402687961214395993273488910090355513380063333286597159085382997279594952438741994508398299790474464072957030473285745545441595387222084993191086679923787892367016592776144701910909005922414443590120609913929591458890748722909724406447424130497382202481439440807549442416290869159210048506589872078601051228936071354833280157267142771400369476299340582283276009429424996706006592194262804092894772856671521696561019546532908467098716935657202973681016368535933135886218697814376033233530181762571347395013809997291034125990058350292338302151595994919354528154867519440874363023723839913215295342895698908733545525031969930976024913687172806099130338180082556416394702299572466975842338143820872083116787557935373237409536592170929808705129025700690961047209627575119951489619318484578417889401288584580258356493392056715101688346370651285874819630785864659799503409714859275728330496538104031225828360313722545478133745418273527953625176872507220968838397914847018719225656128682680830413126901558409055570170174544476354249650738236003381383144615619002433276982882459047028806821750120904440243391872762032974540587125287905510213924532531105332431109163485751064407106453419635619881138847286170497493415634916409749530442320789621378461869289546560151960476299719549365242150214200099246951829743285140174191682552167609449989544081019191448655775571767571792889827240822127099629707545905451607719777756290757046064837316393745308396929922246262575836104140362585199716102503863906003935930052493212598831293631842590422701619769027999480815187923538740796236318340881020215502892037337163834038132917865344894844454259794817970526055322588796805029251023029348253892102313028003371831317207374548237627624614317104054598817484889652601008124575033042698174268418693746562835363828429576402047976392413369603752040272483464582800275058399922207742414985613384409443410796019232811483414824233114547602464157521157841061024215681364002016291534647703708092319913082529630676678713584246397785026866464027940504500351478983674838758265068382701761984987458506516127526591374318378629130491229894861661132231874408099086956714968173739176127817420601739368633457370691415296712758695642056437640001317880119757048047614504552563534707711290400177658449751624008424546426094819130147154943078231146288068911727754877899237103529861467761156525788968195710791247943605132402850146795328192122303812577937804177808338007945763202492324043306144324473614269373142787680781526877256404731823908160207455545879298738306007051719791081930593854737386484248100238237609183677358288688650018785857735309049612748097150228139041746351606555550027817910891781201150433260693892467043349623584769617198823219620503161584728656596120474723646923317774421304689175494133466819760328924386905510825448470506733768200011152515712219792460518526320584395939815801387654828213038779014236654169801570262040174059307823452855543350603387885299676724251894414226240503235429985808562269771561397573254006633126408129877023651371825149936629910539079599933266700391857021922575585609402039900050035755043386950281726549047865045898969050825093500973343029887210161914600107904436547235030168609097694679732090951216839430922714946538037828743680865613282024949646141192311572711641421957592205754879117964672890785074151386124255568476705087229418547601308152739976841526687673854825282603521227901735150588573002531630564831092312747940206085219172986349448169225798571871049615762445488499580643063869505600019911423447332637077050577765908901852996388842317953023052615445412477897107323751167871842307646497899790129033978724856673427529378256622997344983078792119147492759107179417307885834181075114935069762293601929206748202750176560651547001493027119327659295526531460465411974074009077728975703496408194142403940247345010142152836981873546089389213273508472134490354543189638871330144258263004732301157536830293139386864641022729061362399887592711864947250149888071584122193394152441792650817856110086816168917033488437999370163134553564906842119433786126045527902286756984997335093190010588882136640889807470483314211939911510956144876078045496863765408739315974853338777356818990839376896758349757449463307477007659130975558570049866754426935885911491441008023426191371190077297198831767912374091165423684976526789399916186168043619724618825743740307791263385294481698508144711133070385661118454130511299074796238075735483744543211580015532689857354152560667468198913389485041814223395321932319672357291603141134805290711605857778404387531153339036085109401040288042825471575709046164343200503694393906552616205952608357209763005918006080557020289938194524485977910397701883656203773598144427232281788958471877334918233091820826922500038262828205064799494513225483453248961032956137818231270308866690150153979050631163098026540912772819990135447808375711369031700870835921522203726880488661666094026751761604862576441931846047430817571881834719446311665115266437046779072466443276010033473269938734868078257318978633200224982532833437252344816040811147870737816171651222768818663610436035602511949560157649591383258485573749478408234928819987625926404271019728774997756041658621465334249487658075752646489892351741294261931032933275014760651495994829845313319393889315924509179726205260253768771039713077364742857048568452530862515171108256139796945561886872978869115175810810553912741069357338321093360036904460114725790754763509865669188545543008474540835539935671211000752143830868377304720885353149162905657607360201186460423991688879728057090878314195034316793517672016916115556965503719141679204538359442699803596426629045430734238636175305203226875685162920515788716321883887996469171917001501007714775615347491380445356762518058572039319211023405477310887652767191829022368131090747984486216972143875436543633175293032362939795147751678555281109682127223612502197185469819174775624267644079191499417258025565672805785140174529180049320056275612387823928210638493627032773603297080401776319285826722984127140236700690762877609417699135210735787785014334459786306563844352688204647603835974619327124576475827508594427237874752023943137389799664093052226387139165645208780792300210952850210888732953324137756184935880888943896993267609701534790611249325791700361896602860370051809464482387210151504370674091281092478533779437977826443525739434526802316486740367681988586926136398808717365221245786504362902844004960748189058040662197765319109609202300949816796553497049319577008576617384913995214182193183188106347241613665030630673265934752882829047763505042716578583973323233588508905686289370642596270772769587992446121632898252368388541101699064715873636557060590770352361403453664490750066744919233576322020883846144142116815149016897872287642214997832612991438271633893976965693400411300433622379330091054502119304180889471330479778739668221614370853157883295738799804193975461942189458220281979838289924766763141605756493755714956799985635096305456051009553241687661202584146186137033860766253822962018818437682069407535641304917194607763570701209503467963954367247525971367817759885923881685049424617695506485027062166658538471218697518936183451180073668532670639827437457852304629218168326934930554292424132607061576613282049012392848031871444373646382923937410673033810438107984005778063023695119426885066675988706272005276988506271397588771715203187628420522039021344665593980912731218604723448873161376116614906607732385665933341450825680593277304035977716526806386269783684908790650873486823553520674852683315705697810788243468626622714971745035375813605189190303683812282946854093641523383131469189560305659199613052807690501764461167123964160817046401251844898071864016139187612835826298795456390244416966888186016169534488434075118597077804011150808618666981930203495802313081132843863664775080505384135744235992005690947904508038179150807218143497641225838496700021578266779917493532824827230666504450899602418068169789106374374754125213301081625246336743399363823074651691190681020795799512461271833027521138551513139410667530761494752853970021875293045602448700507813605863705889278420094999479528954503250610559409961938436203965003967722692349551751179371019818594186846405942416144247241538384923426004571053790583291063439528671981646991530097615291507970895736439912620898185023303976764153515697143187789782363281396759575438578584789545885443724642673478430910904145285191671362966519451971342477129880495590079956665853282975165905009214963551051745821185167970646664156301122294005221731884468338727325471702559354163208959917667828293497915758654917943891614660363030424088550557933953780881793521288654557475604393608799576158163112916353984656830168626520294155427418831349328420707771223324870638451725937937058943851001134194864208978038868713822967823271308681665623274296284825587062437016156462397358861380086889610095495938321699755361770440569763181133167933045270400583181935234132071494803883518249242756927631441029524293212493703518866264205510457249423634650868830132582651975461774837058156483051712857281845489441363687029816329467520761581015235128817272358096731221153963718751003082067331862654784419938086088451555448575830477385444283458264595212293402765936918284683226359704897825453946423100314139467926154267293555642217275265526092666547125907909840877270918531490225292059368964438364319797095171982417526759364359248910218964872916346146607614403695989117962074076274335040552481262223460178156430043455063408958618771011271103088590530370543869342996319002126945963470853755481847001830868047195148255876913275032053399874106352935067281072182989426880667487553141082162585667141252959535467534193414999675494633018818000313357374546950900663282808470926761258581604909428125187926013276912459271740428601389385791417422170552683612434090119970694262164003866556323726303789977060559063886368090534500234414900651438827104467791028628360921606212373559381341391541567283381256337788053913008999994633425483058382110094761996334495042091965261687761271269992606186024077148148160122856866579380053090967447442366773924903304694238528813618350874408774869852698579630985907321213583793819633800101265964800416767182273475606153287025989786994579159148597263817846041168394420481010737160684464155744997091161453665171824970314968980830645771223998014941632941789094930873543715189717813658491531756815097664862980511938791482315699052124217264224180965874854827003546919182491815411501509471607543458181815449682734099083818786909843042905717947553948540037130479264117999417590050525092402246535260393783676950130890178878247318783182793399496578083900981931366781199315160998314195074398980448456171456484613500460022649269237220541675275912851124877638583272389484475942769484209616389407048832197563364482980887991354335596840747971542921360489308035523815574854875168460508928598332122823579327841135034563589381952075117632651988647032890720205915611664018659591310084280568811992567769875856876075002665973295744804934154378386279919539071940565483308482936646112542101797727010692993169325426159558719854126464558546428772287678526307722033387260011921490839922669783410372786912880162276915506089516001415461999754784611499342651709528346421492073697948232298117879610228766798684766509425754133081111084459657480122046726788727512838228897875788511410375537978864812150345298634882573548887522577099456143399511865537717603131729168521368865826194158350884330821365803679962252520937373409030705293045422919046766471062825207476075758812875331421058127114144182438608371571028407705442618521321172288096643116635189876763141025174894847442134711674914328399010212564581493947454967958848818611075349480087563355196525960225899462509038869957147273165700864480377895564004674184257996294968799929637148813371949605503395240606179682165957151677241735910350762580941140105407199405484342890872248063941435364656412569589908487928494777046073100997693179636534672132253013439233265157249873893186087679833840948201435017005936902646360473640095650223033603509640320096886666229430640730624583609377307194980934750367766774005332732256916068527923853321075478142874379458614010909914458777243481064525038346484279885533511253801455147420288614856167070253240374369053396779023122286399682624438415541788078752473545107027509575212603329549294069412263200744402575538246181934633954896270154748527695151870151089360461647479950311119102443248953510157597801854057820604899280516711105838682228781177493705985396188800783095457229475044226587632157402367588617886733487416706671528460539009058982389998756099674804026447212236566499946309033817739199796646067697407665524062916061726056399674961154614956836897097925204198861796143766831593026511439739583799450012578156364068141609764844920356025315085644471853829848053716144480449356371877377078375591055317620746916694853114479700754553974326999310140164500920278034814848267250583773469206298966094345926941593315113407532020412843084838456836358418174694397765285163567376552748937673367735575754761812878860889114459095637572834841325257985521460712856787056317722601717737325343511721224788674519357295024770603847622128573087949222488571397365131136810621043780565565083893663648932199638374367877748501568444336563919110875537051057705529044385140782816724721289480090065870091622708201088125032946486951791959520461821867472799492159910986038889733824013549130924515494123589012869492703125729826153018852126013963505746256666563189595444017740093456058201269224103439703197033980641764987882144025146432629493007236404164550496735363859690596759289145913003484160181180994916842836801356301694207409529648635404263260372916840295238810379625455793839446823882569027856198889531356381636330193214882638193051729149226819908214678113014876615308266625622462161231326948027878561579480930904908770070170144471500313771815091086300001189927981165161271352672193688790680764642977307500479169277201855075928335424144116031385852585552040768247352064089234762246152756339550364879847670382204391992681691595128587171291853643831335398294271761395521143973616956020683706051606151497466429864122761412741071831663935510846857984595752182664690359460153492730076170771776778951614306408981754967177912904955530889318519528982357493017358291905031715579205897228424841501932749096165075278606563920548645556687399898163184661086340239611744019021820639856952518620155061791444244585571294899757524154421538652818837790073444807278952093252148100999209298112051087954517635289993959292779844205772967615855601257501065023228450701768698106658686741976533396142306453742284225265053357960241281291030487174935354238389266623983912143856139868264750114263725753787795551453590864791457139049236659845466929679091376396829293039273090182314799599646897930545002663585875902620187492979544499743460571787942050135282954933839388603040422003939095072614585861611612589350587273353744051210771990057987015376988846510563071387066865111862800632617464017284402555798611760494080289501022783143553583926748899942122029119276216790457997798533782343897993040321800173372265575228441913520217121678366982101225844447494786457800755224163353581042123698144126042612473074758508889183981952056835623859554063180398536729284608604645330528168232973373326917215738029528764545663145062509272373265064187083886926260008311012221445098949589926292921214477138583237949195350252902128699255284614563018602050424899041696752343416714282014578102739788395430306849606341151372272915799170390131955439947609409914241764788943596992705639640136433993951796461299601905745336559184959240852260654481637951348182283167627127813096219797135982572956401442461330728867393860869523004550451700918581628764033596423932867596953137797817258672501458604627919966888786530047642249726276639460256960660713027461766149869242950445061879159325737189535005285648477737273456693657123209028791641414516840042389493371674548745171600796060128080370223042319896525989379332238211425685850482341918642256098570825821427761387452940763527971751945369211905240241100752582184556687295167735240912431050220654153799190199065482476299504204985100219069056481777718098628279605566240079693206191229363606332666332185712025245156927550350899046836632274562186353338690724080950974167659386772732555871365854804887183038497724350479722717290727041467771494949722898262767849104665271925786354872122238361806043742051503614660593269140317496676414818203071096940987732192494143702311714076119897623907578123620338711261454923100771235781054142783243331462004744380719366134370221196187472464202027203623975907370806655623548444357672036744415485987796133738749904944392540944581005856523278675902698388497013024115312070950440247369486101868665141664901110481352596381640309796251689811610262098312346066644926077667963345874842397558682216130221016081159991087823050130654406107750229921307088067828147836144626261168987877335415040621392040188051586349191894489719519221061238849588822091387432443959868480993823232114488268753050508302534285934732310012585008760100187023480669793842845187503236848700492012089672186446402974778308881824703690615237234598546396282642089032027512499510784661302881551750590225957176644790080489139441490462589629783413782563700020664177819207965398324021187125996374436355418512945101328577212550073081466323848113139493823279397395103991894813657867578307392045456648958715198970723150209103014510710152311824117420896564156247986871322624462274097404789552116403535354227911695572506962228987219485560604508488232494511914008175083591243603846808160211595639734608735340308759094591423579680738131934325561036604258150840947295703157836479082736010251236933602913862478758436172391473316851099121748759791412320565505625872868264027708006569822508258313783131851450687428615503891121264326329051302563100985736064750110775725532102167687181072385095493319048307923996056875232204876191164030839668246224294183702484194627588680358774871154115574074779624639102445306585485766498208474650689394478099238009610336179923750887998800930604560504594531886081829616898746062768046489170072322840887524695402512520473420023509749857255979077697887977774846978251449031812410826316396789001719658341388825772857489569052148938608863981306391415914965012163641402655490626639304012408121232993772801340966537549048440734115562940388770926396831109366243396805862622468264261162550452637139971842513813091993413212978862684033585891149792498506017103854746015764956499780583099254005084683100168840683856875653949387503640140254997239702242447807226774772555653611920824446162912793321042419632904211537158036128585339401293654224990558679366910387184015155193857151426973971343199315133668583406095306907429316361081399105785110859536872328500450846617232135232086091968110108621573199753641593958664540188220759691183233434497873332781954376499118415658097502479003207340142569377476546497096974800995876583364574219617926123941667971472218914871484874479411128681970511753827354181835474080097377997825272522989738468791117140393795899855831145239547641749580074749929289526845945843313426629682291454258340368541268099115860263265205034308475700194251751028681971920189752810179574282506793032932454920538720243359131418141467333983966111304032042613842684413623375873527070671458267869587869953027773191492531289184989898457614257186364987916183851904491243007609095373305978789050941043992255059154211421060988063783336304193642054889158636273212122749046563385372453313087314572569837059820804745143970864483859739450146176950867006825079486609939774208707270881342646189313638036324550099893949897544741839606040232847289289171965966055279565572345715049831365099267337869345640508223428826767488718671719849741573013248529744184842852211172032587563956707777580878890340424615367004447216132796102553775497057280266494155507485021162360046435150811880782357582994330223147474749110621483533515124399778866753499309718245866523421986236185881408583225380305492667684889512421024812281196667026975847039020006635383340202668876118087676394372615276008963748174295323231296109937540584618589695521098247609912098270265469892552157184203363090847699907565722156334760406461971358242895162892993621587912309739443815387905834676614945454575057538358841740519286249079646476370420573864307785734932851011850184612683772901850394599429550073174126523077036348959945711295532942268928530213906397354231831781663454847274723131113774734009194949903204893505136815410300254305413867989315133951944618086579628927938945205599396223762870792530143502013162077980930136592722120397954543963072295257086393398377977931453644494680217201416072132385371711968758515752357315096571307335953290426224513051325561878979726043926695910798013151501850684961328334009699162131377063658289778344891086708038838865976796065873513568552873211234394968803180427538197541427358516944019112265540825978557765378133897498677544885930931090299125536866159494793457334118726195679443516872846937978575777160490999505143125341074931325464498039876572711869487669707665358080778892643004666327222258239180524157306972145808185456377285266493252852936008624018429868026577946661325335529395500143134300997176175990867554491726118219420127709365011878798097117574577491542657610383607028958620809804857045986034627261123677686681898745301125222470950876311239074849304399914487394341765028743731952420089123983426605170424343986877988758883570534557032604760821674271784107351937250345739298631803635656756092522837534313216537058017697334384562970933426989390661058798142797413904624136736963393296008981151795066426070224564354779707148258223234562483436263022284534387129372966928936255041713319740363151039774069428205450086284770937747302059478823228694455433439799036668408968483123683734174799049116988504978303774251271680690772837485553296062348536826327496620214045440044526350620741755413066989062354539509371261769800794081429522230081416237980856709845722910103513650306389970647143174263647021454259430644440030692801984760668977378097622103082513303791170851025748518107004073362429405602503952188281854220301590905280093899533767311556561902912112715010263860539453457345924477702756886363195270299987292355842153495382491119491024839097508344162025343700869528587632098807998273700524732520134331437805653167930239563375971353106254523186419891397764435040693842353577299437938015408801254415806632341679499720371665796627393472777126203097005006345896596722871471011023329480821163939788815606169789114583318921395576640278137629675966874135745712540665928974213940462928658364230131155527496828685050167291899551445694454511973129311660430535257656825196444813609092890243755855706487385255522919209784961109986571932496362655240124250710391060662268156715252373476408343869938797365602739759245052188284390916666297369553667652546111577089715706741648400572207404672374736134440151056429196157695847183168943415754697812158913808159781352708853943324935621242445720788475704346762910527478588525386243313623394159809320858762597254280247969908255343317931371767058990459437168912972328786304312485190482207896731325863853442444578378241404031344011810038704110214361457881807005466290063067212959649360617730976714407999127180352597815510628686355177347442367944709378749022832009426584342992912178990365779502537848005889737729211211475466298311066260409382143715340172760985192531346276938695617291641664650355237793323846465682354259389698436019919160176247933411416854550076943710199472193403616509828170436439598914293998851765243881541291856407027062908129807997586877061992878331339511705118885133856905098019441258738570973726270809576402069053818028937154849543773086801590937927681287950814868246761874405738202137248995977575306522085402750053381133658249622966965494415355748013534379041177578886620027965158792367549156711554760175055879006121854486241972635269859838244194733797219413396053803259014538150869792936664294508672111701551648396175654297684612825036214228150258765046287757172702748656401114422915244362456580972442373153404631580600483002890619680529414717287491624984871846431151314185404709313580193454640845367688079280418680371652975891546878793481662963831287687336263957650986729252686386158420713919528535119929871656141732148204808840828188869912361197227768404203991114155579155413960941626021613177877813128416448972471269587443453034587171910787872293148917862152331713682712771525656290382409502749437570524007481703043895156568512566272061181665947341191306411070413122993268657812990940171938272491076342671127509847746316754379089951083267378471874349610703525202506437036729163805206918536082760968137508971862063237484778113437120872588081379571881008840209560673112860673945776571245657845487995872486087102003838864943249776661395673474450591005178273387740652262024629406211644474588554185269735659191587973759213952263920897715085410191393193420386430531700295114017970255189002316808576681046909116700349613522691630718678644616393119120952069827535715605212118105812947889652324871377310725444289455527682293426536306449680176773914269682339923471746827631179303789670412351642601521811118611945024760236567434748183105084548406089931832947086607222744296180497411379702875754098460032683758238363676619122601820201089789859660783891672743537733554874861884759545397617493794855530340538932090649829241947923573758726288827223648808128270510600799065454631735505834988500820138392885193394873600764536809633074593616173497051221728175222625920092244790849153198547215394953310340177669681496443785422858140471197037897696587061774641878806395295025485085632936776553936616592250419485635785932017846534431376941917803502927286115386487849095656282337203490961223985611747416517496605307119371266378985337542190955605890724036957027579736635709384755270343607670400190866314856392758269947635573194839064301411520331228644429375121431613948161165817196034331969612577697004592760004265717846924854196005878800977333608539714814232925236615113063619745771342164546225037157604029115489737506619114311175008697590282102198940135411839871162158141393963491676699130103930211136661662255062527425837975501933977110904221477661850162110173226169455941589914898312738120654302111123635255456510219826284487904327582319772122651126033236445968882381804638968992556235102339448312809644021698260156526626654057917883832757946439897989098513469877964688392951790371006689833097131130644319549998532813732048356996844671222716498494103862263024441605562152953736404346797158396064630610911187543766637684006138022209874759683205081332049835402410252478465327331675761112933221534044985764324984873876231866920436667638075228455287949682453857043295153972310563168934251809004937839089195833159636193304566038220323255510328980261669353513030862588450784905342157300057736497040141875368936330452275364790741313866218705668732648263201479930254399819993901070928539864013335350466037115720330735338638278795437365353105918553921679137408399889018117186725595241501519875778400175775155935916583504079317079691981526903537495097418733222787047951686165845527040233473233073524412958282295875740591205332555089275476328554797046596817179082980076477023924472550335388707490614140918041249172814467772386729531237969887759984326233155729876328402824629174403195021310164553625786859150090772093056181115057509499808643588361968799709267397499917663296874497910391946129140016965289954781448320467482267146174946750845191085276597840491928474461226169299388068556493925776684301050668139676455823603250560009933556841998528801804087199203264274724487538660761477440523398042613954556190175983488316042933914581782039128640046805406419853107349112467619630105011178413740752685014726886629230785984229082803732122954743437818908085475494306525824947477101066818556955243289232479634998875421793911479723214354794878171516926083864934140718078407701438415476795102910009646336775456672171862247905280153939107017132365494153794201041895970541556206013025875032560519752331581030863443105688680702655779875649546538009088421341325537194672343465242328069197390010720731743166219357016022609915610057547591671519316986024321963154192419498412046969210308918595106001413224858003039409693621393353213873959603091847709622233677577068425255603358338315048692602699750775620095867990946923705809329584651663947383104686900480178228007880358159773730969194948761725034208431502848126016646926672891775807097403759104753745248807931819626899127983295909382949800500084714005119024526358306734388551873252679570857099167460880423960642927018560985335184167467364441180357796229858611490134145493607034835427769281018753933963519779205242786533271893842275983105555690990793316549730377382424320012438134472128716477075178842263997765367329483779439197189160895923268309472088229807088587963893636439474513589625549454351695225175009115141186405423741382757655835006044740933111071484293603966347221737877350122290081937295315055689402320038181869150581802675459163390151026340022501459949044624552067220431699760693989836020665939620866840896011363566302800818649263332637530798361724680612840883205463406711853626804561065289219357153125533261333531316782910388703539786840892912539507348819868972323957387204607951259214935490846367116371559954475851627233152480514273077534813524904803630624745749987445355094953530175643950541707197161506845222606415954021644981726233305218728389484743709030516269522708449831712606460012614993070556659442523506290621802731087921298324499459206805334133238274906727172285395020083398144693375618356740112013585133508052993484016998207356792625049104548277151691211238358529346199251860291860868216214923845157240818454569802870224173810559754430367472841427839116085875066932390287628472161426993459158776065412839890332668601497087633442688457648636066517109486102607372813616779836651775723934963682990873098189819085833411217119928423145115507441990721534338142021498338873818616077694809124603631389397877884829737986719021691596675307811926580343092780644411161976712207823664297049841421791056177099552168216857139057405683963905492201690733594393850165094534745059554137671521538576192622091212056446002435732302653310314447915743716001581069247985244405077297739106111972992706371532736376684998729666365787505404384338493642525642479655572693660447728425568683483797274234716512078057406519798785569087797772696681479178164799543997688890103295659830491326440842217607363599036986215439233326298034228578029184562778288573912747175032817842296481629700945818946075244703645567206577713849878758373370806033123442470851216982317067568910769384986653391671237461369570508284362967922163080762698802758983685989969176860074392242936435038076666812351942196797937166484370111251527954102654572141078517386823040708849276437784617656120285400222355008710066234965180790233792990564996455355806793431669302187061551727792869242536909852037141936077157236092039591935408410021727568820061391688324483004082997118656839830504475377408023244199270179986921859420895006618285232260931718060925909408140887250712470020004820154443874145050036422540052216209009584787092529830313103370472977666615073844365550262937156924058246888103203720952525989842633386295394235928856068908191837780698467661302099606608033623248157108462541165227466174060940354649228736636001926929026133646854252058504662005197192137803457864342948661624039355015204129094857863767889660754141214662088814555082608742794541081530929648187336205122777786840752519636262770404337770994256976146920298867099696315149473100891604399485792536747254571814280124990636076782400787344765897096198093168406449025415477529690637665085831271440943042195283220219883870917113267637932707097184540073637318708863559336058156637083068404244125179000623429484141030997007914952292131349103419776421541089013087837065572593487597181491994697632857584491151622693136088118526629812982556929758926997185172582464155374810497930620428787872003177668619334841918603030728179716146184338771434324136977514355825032956519252020521209320387223941913157540115208973687858073372350052031134279760453777804360495832627258542772948744919907405740069571415721882907175584140272493921254935249566879755721062027520260720435692568727394216824290175731238045001538653791833682696467785293089234873328066475253811514460723388524531731641667057809408073527242126373434685587311151763039285168563155284339080036495157556392640623420058747944095710586919493077066031166069032098741631392601906995158644128183881126571757663683051705552575039167381933602168594339295675715787803631675651768631551273282828325782087462599387308628323829893958192714007490297820339320267988133323980022070398021246234675747574818654425779285525048494099638824951241801509236589775047782380430142452451676408684844305380239885158251091023784737351900603859397835460852832410171728206015018194894812544104130497973729231028537569690506915634855827497792453344631389947389342294748215959013672002986099265273768117186596548474275591827775384948454948564863902301968044101927253433317749475075177735198373589411824670689181478630269328093851513585610358627870631233012529070667702930787920009136815806553723322610834879880844717888184361762036165427316853816440140366241013278280157193362777233688922650324418077494976980683794145768106221829284221758475640121068116219534526382663821702388713192499681307250105283826952551765891340305023142317056421601720266783410250432279301268068231473642453826951431427384990175698620186483489137737112410128894890369849159988435178102482617849537459025490780238964994433161535850521846485203502524169620410520580164913649269565603808381855439420934412508240357638827024476012549216421845190493649564704363681827176278510511888502550736724083009766452021480098458423534852544184587958075998777098790245032702387080230082786357880641298474042228521608161673889017145255616300237412169983488033570744463738019144176112492240414635200816340096876060013103526271833700037242250909687267376308536653065734431944506427649231049646855892687295993156104077935569951251955127774559563558296859658257158593124188507847496254264489485230625587985095098168071339504449078488584891455956417520244907455867081487059241411786089868883910631346432043626548247022192624616517917072757469092553458319828422473016932170261894845021778535806434803569112489679974056977483347491997327942164629259236479621999260984502249285795768140966187214284338567215404865669091597337059205498108819600696629940253304500979388856059760703103600539058103095091368276019617153297980216267014263774542057986297561064923998313840407721704090717555023522764307798942633673356568417167254930753075675776704303868948154456981371421180311474490620315620799402153556006926938110830066890377650648131097329572676473661508726485089148134157554363710904847988972881486642582936463563063955545788455704072482042320258897317193935602702760850975009240913337197470046951065937378724689021149140538587119569572717855353132309847765065184147481891195419140313791197232260272847589292688454416874045787168726692192997524723870273275210153460328080255236796531858601946304424119070372303331617373567124468413006207942199004772170157266603731844750783799928307439020571877990438291839103244808877521151081263949067067760023616717498973612554218477062228275548997400239358350770335762486496859074434541191854631842800851556789717754337707935627171228731706664105727258053454433331012915688468918634708768871569757350947204545393081754853172954271215030678502298718735462013283871258347340034629120310151465014156188559472225321783439128919527887709002031622965350741328268287639734996377337512386188090903232249327551178265034487278700312624977893141689005934705627010585709046236451563003737864355482010811816484568646840347655729723765932140029405095427803083492658652612188256152546209078892142219053379049435326079314464612874400799028635599773265364935457592646729519368444248400095378700819814234907689019410131458428074044541677934514783922833844763053167917700637445513671338080692714204887219338473698736310660687332841670464906700788109808904418735457366177752947447059464136998226498439781615204708732189694485707115826112768721584836973507635089323310186789353446122357794152826639703333341150613950620129516517538680961896679132018257546294022151940131369990771206560946712019009398871629750813420746643472031612124135726500075082899653024151854044301728198995056842098332219270000326675114501997907432099260003713935914989224613678482063528655012584257947880754677163539218367331926381786254261211922460364607004870651263384891255371387659008654485499374927048123698738727038864963861938326881751587244840528065023029141736370614902968312166164979619723435842261787240733859903683261681738487382790608784893384386701170611669508222381505614926225706625047851469082113814107267336404004149855623977793715708048993872351882768701918511121108452162075537417783273647121986128033892256170336111930476825241372188899604263597093095392738815967212905939737416491486221615913037072183119178421667244626989506889300324932687026739109173475882689457961868100537484343468524516854697767685947884297011637958075628602277416088518139348270018794421115488443149623815618539720191938017505794533172036771999184889081452999478157088488067843697642673631347593329754359250097967097345085753176894596262731172442837665796677741717469472958326668432915862704263015181745753776115079182396698193583050248374250483225843263317710796266387768092869876235966730902508612984601212153743795703679102561411591153852722048927871606309766473438529284803317590514770029666166892567002630010841497422725568437168989130455070326289498579346907699502041113565096766729177977834128975886480647975572053641182586539960099906374089315530472540570191408907714759348556602944943742356173867755640389809988331780146117547382593735692301928764408203240535449262059113840808761634311434421886167809541247709190638235863327520062878322446300819252540337510624791717468745445941657342642648098603301215152497562868398492760576811162885791675422379579953644599944874373507217122810525086440675335563478249956437514470433509452953853496253822016326133808683479646951784402967343573504152258324794325627631495903776343957770817501695691560356690013042192049266323302241964620625358128952858331482101819667133821004539049548697177078346971794069822513267384104896464588709480901748991223451484435385818685131908646134978247660603124457765610844124883009907122611268325288448901415323176620896595028440472101564875124963256468899583384731068880711547583177001954097745707350094054722148411584073717862584524780188181000583175368682402173210729983386366105061694384954132181910833794964926614773279642514263320172282485729321052290987218044889565761394479928704430042298370553526124761905505775557768217130126491130010133650798705111782919672919835480619220872302843173610734407253651203055742144856982507525850677063170651259431797178625741962515682422639370679301033968437354115243030342183599846622611825655580208363965312538258294924236263625470094533843676805020842150057154358914807589292712288574479917356383347881981345379500071015907425972769897662420481947751336193557692975101518995334489140369978171828355112956548032099435427305319054934943675159865312399350333806031934259732083171035537239375207989779808706325409452273185626914886006288841193885499850011541196776763202877987672315380838907916960421777636108464598457767730864771070115548380516069658348484258549375688290346027825813914401465841446440617464787191897133626421206904792238456924107660343922307781077347649208754091059577618957642893530264258228782429540132084657614449854171401908935150576183542849107427125667024762483242366276017066206643685046983070065198429185741233985860992898387498108157342767598850792890945798650869027938686021663774763273357409346745284485876278287344913796242492052088319417173284672918810516470222501304827785059824760529879286291026706011021834967947303269362518202360549605640937594662265950364677053081226355294533215700543686895136828082932479425238343119318903730622415495723232691551389485127375070214138388284316237577586322733638633963980179490146154671411346539712727694367812367664207027654573232796315464318572546199212619319869113115973464198409121339213190807753073941773463162842573150886763870108012164157185662734353981140420319225176381329385800640196732318850044587136968181968242019675373316138840328741358946235731357192876458270752629260890015139508509511068525525408779304640855572317013877564982919429891846716182692468257706554154818792362403804619579036360449036191689539471340116173745799825243925157823304547398992617676406964569776458426538433532063777099449238510219780490260778144636297685195348605891915165240482638537865028434345062784911029365238855868264585300941927583329563303972160743414499441653418896797586108233799871264581671960383576446296747300328287432713294262019605392988129792442838355591100760748473142636853241292975622913452783555248162591795127073191759581087724624972232720939274111524405706308989693228086997687348061558924801932284683262057300163780024460337510245414745100830869716490584748088991347441459350785367426489326325067642836852391523121092426495768158771726027929039011615701459254430658724024429999469320744655086691553072384807694849255142261703797105889681954404196426335318190692427617102669313030013697361071738745396020339129024210573205445623687744139402735199666968948501863824977070827767777421776555997279876839684750476282156400461469959147526394440014486251563664386564545751713296426311911048740406505445134852882134684940337402929311276373998556391301070143018689345332002944681505566752781598486332555408748202398638676961261089234125750598071541548934081043871481438628214377548932809256071963634002191525543369333368344661430688433136709924022883168659331224914622481431808629478084537656294197357613522978014295932484887628639339288217884697671941485452980384392921921506889245303874031781138813200778405063403505928043655617263766708043811530680461333741748912814544581760187941369158298646095306489676466725667559065537093895606253978603715116611379630309796085449401293179760130307770785625991326583610760808771260711614965913230712422894495979764771657254277256341971052125039505597946100781095531618315933744574319290157089452448224212778613909341404088445591018955432512096549451603998862768086527035012939152107058311005172543367067540903652653158654893982562401447548295794877131105182372543872427813926540588427205473189445262578103985498214862768782304142629149836971281698924607916368841107942606691355920531545859844414363909923555538495817509659448926268556043487241959056072398190514764353219533500028808873206829907327870059444719280170197226500904455024249199957520675863037664179737917924024005053679594195354338321936002536398211492159298738709708571408813266713555107632220170016834275323920482039462371050880453659201367591013119057055230824974903908730658578911611562074252922202093119505996520164321791360073745910274618201275201116439650798761900979102123277151879503871006601258168225230158444828294879229965112465802330577923443164923069705860442247786559300293508532921019355007021868666602542191027251200336010961472094089218293167520190213258406169295627693097502405509894688426669077820825996493511899870295078281185467595657675302984662171123812977095860914825737768456788267034284461212046009176923220927496881365988787251459480015025052733266670685608036715051666311425858761929765940856146023607263221375162319264110681964233322169926937160941650060359499487435436572181687554087369168753952804966275961504191043856493058470590379222743549925183012733971566257823463121027915526443965488194161564165954324996572547672261950564180532522708074404269730800428288149293435222443198069163695933878012450314847047923973914186290246481822071000820723218263497591977123483968120024589438846733262784552447109569514044047889911388078678061288446240794203279204896566085036942408158105882310588899097506514671354922643494823054292624374619201911198316825047562300238839488332792202193723535586174874137573827608326415367010728258105498960785235011792789823916894408838515111376994001929395320808230301185634803396887232068768078883094686113919131426721679418488957686247448522820083278869789597135070738284365518480809880338821636571682697701048823789582566695371739306529511959655503087235380378264622922606858460481731451590011444368893706035232012739465435421465181863280010430127521386734944621601253053195311350930318649869746595242846441189284534031331623876312214187567407706941912043715991072601918284094633765573938633374418646455170623127114638970992192970604161493468474107390265448002702065145722110478033494363816435872699950127723097312588502247140803650105516905078737540971006868182271946048523410056891472545805267716512510225554183873044210569934095746812236069479361235778493130437327251278677036727768839711470629154341182820915185108803260886633953784738595147843544518640390532149064994307332480787951660758262575248507626776808669077150993096351904042416010282287161580804940783486728556669311439335481264530849528567290932286140081678850364761836104119159162606594652982714323953669877468371141651485982754674219915057382444840867066294137063543857091176731937457371227034624211560249214822439407337393326187371105339476110648525299126388481940918365058776113021522590271124764193951630915402912274974074426602274050314927812487117468341173540546381758710580716691166894875289674883659350435293345968600247833912900226107779537723307830466519545633406442468582272465778299155719882849789095643139711954108644514435801020857504403606498358465066564051545159037929490934302460390094474129960800284230602106965484235344530565739760616034565761470599294640803407165931184828353127365956872257185731596162004878086412330803076196927898421316003567953768739071377755282694066141958724619104786337029757847120150347712967691191149062504117674297663419561853058993990134938085368863174737885571329046617279752651561346162996613472792460634565703020586021273081672579221867155908244490355462259087374944198031425234247719877899975051713520930089286059444151285611895771180618585231875267475833335925349564859510734771308410328707375146740104288732749661973802654318138188434460380428556486300085686252899229666224934069332867983023977125114461986356291253371212649945138289350947727647222015272843726315016333827310709510199842826799817678245619433053697714689360627040518228679274616884528540496635234823232046160944236830152026833963186715864405994150477055509364970095602083401267554556836568144878256552463942725595678453598216521954241726592468258352551839010277153074183362633938469408816332637422286622569897882277110441834835487786723222113549580534470982917680765996625067826636770662585326016773406416005477487700585915362600762122102131464092706439279854820090183576454117769265953214894810556305060461323395250791590255934302198725531883042487165163251273865621943259806434612386027608045245267015613417466125813818879878378543657339940378399585937172783539691428623676509603946806106039048703409258709231668789882880226988188825668077132506328541764424918406524626668264253607720854160061250022113090473255717844577682606108590450025582957076595247382461829678834034149208267316033341714888114754030132318451333190526100723092948889363938762588509509820948482121762843310404629545158686517066320552395585684967009767610963716423102339421138504508526102794175893575985387544613071602487477781429684493491084699556026090118509355045564080996535194699698263805336153031925902890063901194746236614402386945415309649897705372333579015004206336209349914745043092167174624247714263383154435027017339928510732231604718049281064045096687805161348798421950903664415125751671747742882891046971051028969970657633304323838063169232170398837769761107855520949977945573460045399049293899882440436133973219281302483590543750665202292297743105399296453386074152354370401584624690814522542036690945233683404496455243130780652490594980723646370914009530749534583958827340144314036331486318733299211111708820451787085184991159833307438721553166261787808690544263022123494043918326996840720985243459081202574113358501539044346564702734158676243838721112339993576264827984876601470987430140945022053479346810298129201149601038402635953429162342769064857743618834597209185555974679389228511302820306301874302230018107541752111456800488575017686748701954914166450858248949628282091214950002731283769107045404282921357858060393093326916784434807806491927768170771256908142301098760678966400509122242918980133087757177608599359200268466755388754032798288482755674327424840716592489517579879129567984485076781492635909319650418846495160021290061989388286098872119671365172241145132034412922797367586350210324196749401373394234723012898600065698371217846533918916177527731153518314197267722758376353208652655370476257245507040497219433450340679210005494653091387140851054158756153181858665682636998795069806567341067304502741836902097532475271106937566365422360036936181249097093654263445018811167598970192430757565569842416532355275007512231956150914756146304107922119958241542236948002216152431949647038758302739991061865710795541427399910357736584478623839538449378098835377126844479092913342965113358099362510884061773427170834668941833008359968094676188221484464446727418654665986532626126613140077381224287328237713670758510508580547608016149534951129087621607090350586551807840976486344093446077787834883088472790316314957737747712925290004576952645339707039323728026432595043542986873359530651808607740012834400627531789091394574531216896750609583189961365183760070411201838020578236212889809963592048799334190051748476888360005666370609734433995742479220131668579671269640987320754390310403907763550781487579477658551057881364593164332733713696068104622527681824709824475645149691689228077629193424850027811790006485109121907253201811411951882663852498535458920199261734977523281788662730548554105258240903009934213898593049089011006727346004855256423453677246903364426482518034694759385470946109132272935238887544205916188304071670564802765543191903290352878554763689078387867597821908785853525792319743798317616327311251985105540422219655254940736569486819603304652471601303940682910811947693275004501144843712814980946007457593356364487455063526052400162441380363085062969017512148233062945822902566126266584327017704079901543280657014099201372116134694906376184006730369596681009022924071421018026385757304361206428522127052834440617628276904735779124375660323286498264590016330932577679212614690933197952408722467378967369983525291180106893817080457904158914790623180294114111085687689001692160330913014596292680374038252272304349389876613729535602759613361408364378046590261749029496464610965469973554553206807592906999323636869305082732684380571166876759036815358971506281171785885290212934494564095881955818365059143745972237753163992768284231654088472867860273519802890983023821560081346379996125345957750377844570942835328677932630555367675930688175697828782964459792804801433658322975665079527032755194597121461164974603935062240944204555501470595147054735781293823269077971852341883929861162392514044427656580587295417433548477106634303393702263927167572477532993389673855732308694855790949633952630531646820453571277378302990222476591757147009766684300871868494514421614379820214624829873571451923087247081123350397358855099777864246915899482426307126692172709652815510223367151626889670025218155353863657791090801661417528099371732918158921346929365206639235528278370252930596753534098772755229269076566267216881069048164728181940899876449782978847283260280987767762591026836255479308663348471631176355183459200142314010662411134232718107179968132145914532797884363475438580177005097270962061366816390418331982727526005766009856269568585234479917103562676424844174859853961143431174132489400952989344597614592737993441884627582763930897986183196371442517312954605766818787271502249913036597003012927359584400845036696328223397437019633716962686340711554521074863007760686221622829318639547077456388416778640933683202806607806450799638966077591970336670004560785885007771981004494083136391429431543342758890364055267867705158655715553064381398195302724610257296382718034516489975670004599697364539586375375952789580039761828767970782311512329814709090924663362005287280568805301506796619775871824843526833594131840651696879898833289260839419216330133108051715745057149059539292298955111830122955514246179212814186587373469643558257602416879078058385125396725987548457196932155465647520690764257500262732645805070388785810814574110315927506816781833761434119919022906833729062470436972349846094101056931155304538537309428008702308354485814397405541319426174576207759300615600097526630226956552858751457731534256889227205506606495839696643933141586585711874687323074441486802225571301265498431486515991144610924281432330845749837777185448070816821893282723774948835796811811834264379325125800224595325435389459016876145952162092988772403916938486927463345493890092573633296163827453927461543624436314981032526677335880018948146996379540954030357364201787847310709629904532706140246041269450859895066075599165204381468320452663903158477185905152301317674613391879220338719508331984642231675351761156028920520637200295110754082315668789565066374748386863614417752040045433474363751401716695527953672907640848511576820496826229093531724879605097684217685245040078421620325457923605946376797831846861204664171779448523258960681886598008989447074812785447451305758170029083891255516371365364703708524262597288317111689084036254930485837439607305928603671810396309248732636083621127761685706012443905446611948194282904796171698249336432668822989422531420808494849354674883406921037207902063722974955088063961736018345584164912238472954094067229019060706251211454327822073875916504876161394328673644370981275214978774178370438794661116783398073085597232038663370551833634265200880040996702610139796310713672952898353216991001887338132701519125313908209964147090153140598084911192953832021853029680087101321451110373893861638855223684189276187803297504794105651304413166117658673917247658912992422621069879111320171908103833764535020490475273673519242311418160387537116052236338754291803520557027825168370366978824946164326077268613287264122985076940569288180052536323326314471570326523412874845586885465597715727178320717863083572465339574885108523198062720974341505697833088535965234004526453763569952086172788100247079494040376144298376002886880509129948210412983009581941953174537300712253659140420633996384974011539110268471012132386134309174819475130114249138732369598118439245793102051484711840048552429618594697295740464296898123772782009896537332511164790642007179371987430040817245080827885583755273006202466658922231815549723816641760833027937991747217179040662248190035073915877640878617395060856485720513435073494694063392110425383699261118808749761703162436957002187210071928785010377611231272257110224717681085933201729517320219219925636404828230824192023305232307094890613029617047741790573643886646173380812907414102437889133026666263195157766557418383589661576466119426890751002033155260376264763540224556987969090614649494608900309210031339812556297055791259656790399786178472167357431765521159825589694750566460068259717589602877010331064968705828091397717648731429345740454078598766625875116716395894270883606662865253090978551690172707457272487761936578995808938296195166435897215747726706873699142719439395186766412784440666107604743129114416967762216099078464033187590701641659628020041610795903548899202559407903883284789712237126779191504558052589530559011181099447241206563610729707920510711021251986234425771121817257280400158953608722525255353692472321891594539149468880024832112195416441412903640984862601313327622325326325040203174781552091140498462120108217594418967521666591851694732690258805299001239829953970548677503277376300641925756912112974947956106370365543080578713179150834758307728252395467788583201925025674100275501933297985404404894492615950694149457906653209220885025470960725121954969004908974418403957073519249593938561266851019131847540766896233922106847075318950057612983296534377026783594593899317423829960594192511034057235731778410232412669707033538943047441814682129798987022088285532872347809670983080515802255247683124384970435851584542578197964023534020246909578688308226119064555852272969702077499429408687603415898705788807871851400869346466127132152388968438784431094427210399679683235757025643967035752512409150325561211990372074267014714724432718431181901611555449507862636167342331990619871136067163493085562654246939467301716515832893181977062156661288200615750477340288688121900469442156161395528622867649318535510618255783086646916040706202438740840642024128009479554265073676118232975847095640610592070861236575708114779948206198692844053846598790520347524466179225743260781372693046826688150069981293709074051367484987244839653432387843308776600012789810715121791362142202350428266438836102677588935952874647040780501585570820117032646817654102761985100142798706816658928692208265670430908126523703699488150066184294614840618586253418791721458349833994331396218707235221643176273560044659579366217145471479085404090416760956424753175476639787594599176447828519807360977784026305446114390953479666908717925502378329996185349514340412559609603694477346078369559310143109421731967191894530428909142938614453364762766381830423528416841903135948855624939260010617651041237507261063805744619822516254870760944759641297990386227125149582500087834816006889751684614768531060587997876736582185746272913054818104279635082298805847655991134673016393554337873743425646533666968511613335210400838289443121696070927563937627463774339708082038537214387738521621231652507568617574020396308179895189325601645275335352386720039303566373631797178260415789110832204521610315505440785059292151201371204819207644799060577033157016952028101445524026018796053305363874952307324929180630692352264942495268199161398387424953170565801329470844368487751579970784204138074759345351555747529707233175862465505068531721289511487962196981486477480182851493127846959459396942230414143678858637475659521169607109423953817397876283698409953177783530581094011513033540235874236200447297452866982896027739752052535638361340878246119300248163776884358544922728768971423239839083670436186322161286371250005878989397464363493624107904516081660188507859610980736133736412418486610135754343663017860170914553354491737512438987562958123929512668337031516245222465048956828729913822729126280263383988093022291959217919130833947302429564433560407614348527646506638252386682873043008747880273174945301438313701937838431097978440872291658088605844453685804725555136079579582506818092015681801738385564813104010917071019074031772813795932307913257644648562438503144628941088046371461279096467912702205867800453113906735639178281920506674751787470111883643972558629790272930036781839057276134640887883078126407531532996858546728635911066678775008697194237998919271931966419230859185347906828341190489484940282270942505595255701823516716424661200594921787883333878502073750980843292103634126331284028238187178492252626206698693109675953152295232974692356685894400519197005336879723876496396478681886678526384477363273703861417626392721319530322695772623401383682874710761244221144297748067728209080163579488560289023336544988357018169852226837373310057791383398757942294537616192511766027909755180797959952130000337525958973248276297141485346900902336200925203234212824360309506838077455535806996177520301370932681843691750558729988699810379202667908689520250778498117548395868173037958404242007849921091668855623782728459353052286106571581548638589672322333981875294251630578711812249560855516029443004934766619097476843100875034192569286526699884514888391072608301484914174550849324681552903089120704015223390985312934787920018368319115666056098583543878526500978867004819663931660474079730069020079950536215330329687241910248299408667441328735435543398592291486723521108488453158017788830501396874206664955654005241233342620321945436854437019669896257703767137393937105595062908775880837849223917510556724181641046230696633520205991354518351478684713315535382122933643425824855619262265156205623526192472423385074823610392424166226807949367938206071975632790406417176827844592811088347496076643573214673788711225905851023182199780242064429049274495344897415746950429867332637392506888091643871316174622615631104636644612290950905388755339758554945664566397965776857033934129894405113689034941826226639050634519936721313075441562752049268907751031646393464518866460440671311864241991791732773295375302458545029892653315436137431138536314144221425900548196550667447983981237419952146470352275998491029927137005940907959318836304272386241560317599958016864946074483444648502887950516942386437153691555709021250108943192510345385573099194491902470153961331075040601791657519683043668331372572388004730332704515811314372045010985123467339093209922050384546865582930819865645019848196584080869268871516783545388594637117360537694568720781483025721704010124581658265392488426556801540203434027590087213265305251195676730950618785771648856408786785749257180412092223698217793763668100290161759966173603116349318798166310462464946071585929856390682768702475361663841277704028955333988240244280533325801025388048154734864639850508456055726490440285243753880037815141236623706238535599430752024192041073947737425275543363905676785135273617412125450643246711846063785845347030665900035454882209355972709527306216594051690859681202830540824157735977155166780810002207022412614083030320635729821741335140129639253458394441162725282997947628509688207909996242005312381908802351375332023298336246731951903667272625832543931998838270058073506071547204598342495339582110553871077592463284454931243614996658252590544817143591716645051557074143121295677297778422922168994216252350367961926920492025527338953578633898132348647518730644407155094702669652383641120646410149426215943944008987223649068172652486668460673840490139571416933606969103276950304409699164835283595293817069122868241955359094943326983733148416660509661298700583785146354068802012114547877002528301195421708537343568027829201002749302110737016837482501732503241860926758430564623172631577775071623565062449684320745143520046436737016655127790702532760339246088124379441058194279699101264965804037868293960658208310003937360376432592367143375161194861712513636519523331418362383214779861753655699930158880541828571935254633826362732697793224547502437527904618385310229224824121519981623390495877686290591015762934067510141688052906129495589453725703995102470709326765256762101207965312522695938897728783272527148787478778708546241611355218654058840328053150453768016655084253477409575022299291215057540704935813403567829035818347896224091167266981441507760035216893110429983914866815587958478208956291533288319679586966196090224462946154670156751560804298318516568888966777515326508210526303596940984243362222253989314777431174355772489221618089206664112338436895034960801894057910619114965763273772721633754751485361627411678970239036454980719279426775860834329933612129431491110167029295234607271790764260820976629837434166589852136255517293161926712888768248315602386306089527212074130561006808954862142283970391168251066295792860185102265307802038007493607140325070664931912308928711472464932884350255381488539115398839929499931693028427214052882266449280016066031221403109486795632833080629609061920666649737429293306461872610741031468355302232576455767274843971284394596554621651359346824286804331667069594934682914817185408035792309402854964442709840872135646975833612157942485973452416114390089097362995144689981087815335172634052053873014081099610793066062071875765086174552859119470855037892983387138502170099888734021972290755333657826526103710367061253186689128099026125162357143750100284139062160042009493911044669263433387257577176692586814161706539968801543559642442107281285464437988561331539244132664068770677807425903891305181056678907163663348579798439252535613639498638175307509542518309804717165393892445121093606435027660623879359765597705632817975763044319054399535710970518543176287957095934829538476763368280633472020733602520257062788500778367472629938789515038993417308035747582881063909753709111840875314256187476776123906712031111645016708102012953763889521423677663431922640755664699863240487477652419714570671938885759833888885936609343714399213647486670100230237348255753512216885370938028825787818182846985285754890885297834113996766825890477201334864016735441186788492412718479106194449320334829270251019265202793622863490747579049110498045878130142214279209114388904832693689443694196343042851447067487492366207676926168905305732171680487544337379282606689575009038131286476719310037123827863819225281259899404408561965021571843564734997116468033257640249644243710562879028879871202672053287322769438748235282858620233967979823009306587842946120621637333533456750131799766276136872230916949229079658091870784558010119665102848218587159889364856633565532147981992090921853214231138123104664745788023948804519711801428792551735498451036495471084341391843061190079774830840651747572851557799243841851401648592110708537219098512218840112512886321270142852208115758226149882415159513672070729611361339921247424815841256168971814470600627012729395883500005387197438958644661171127251527544115281875003953486707702140867784199312569189571490118591474941995498516347056974816203312361643421295901604846617663447432307011030369765648836843469158687982761076643344092568124714689919649591163110437551741380857750243036216020694857934098951711419333306599153079055881412388724187882449293896908196877733548662116219741055054166165833963509642018923147910177662086061149424278252294681318096973947904513926806365727810560398662159956796618403309482329732416034180226862712532255861672777856325121812465630832469430552640163995733177879025263525050302370775177487316697148358634143336632481828753436936309509610476236080406026237040480129155490205792689231117538305452660410905622377718453171894983189075192351304470074100623102826656001349361911819578934792536826401248883581974797413842347289249916053143294336795242949340087660599516682476527807006637467513792130564418994389704582928867122071778059122365346355924791578416843080527516538416797559575322633427112431832891911107743802562616786966287475442509335647065239753325740613735764752390027649225269328575459789224780504280610639701261563675976494971891879134799166233876148090164025995892826639915683371161909158375138874377723141223261154036559457158296814248908561673553502520020501378356412301433573865829427844500096272276870266718688202242678115235684748976012048186502615494634825993193033921587249620211633227875233110650752157491523312076310475895708544562699871629907186678206885190284073691553535661730875424614370982646367141407733776413251251416339707600003569516897054757341864356819335268909174189703725786415926656532320323456164287480627674332707251531316650810090090931127731732048541052825027048387450097867065441909430449938834222637064093777055781545738279611336138590648923817966454644092216057428572778126465948258346988422160984830273907246081931386529504518216818960571852909208365501704891770042602595614412129546601107132824807225646968672354555057150685784042923223710060081222455695866282178711054151675398917310876009711214439995133758851629999189086891688886938802808137667709888979946477083668893996375546634804042790167528869850025031110649842935562864139011897834160953555049745301425639083563015645848213405959260658944697382921056262493127912807733695347731561949866730776342452660533238119711816796001543406506706370743636228779329124916259110125407463610301514119971326068345506519510493401300950147001301513240037829439587581931249411859847104165516902117637950641373760962510111337299699372362089127617396358670352271426324793712960556034640547329368647788529518285377115487310011864528861482838816216992682288542872213313595813485640375510431680086053866390720296347911254329515838866257315838865626515468144127972446569028929149752266348508629425664961387729040934465289899270387391528807829347022696414754489901716427159242169141941124904245555546772976062972203260638322010021458204232369332442088963529767191156486973513773672493244111207031369265189846694514533677852320044780737346526684942104862865887474194848763947398601584266256308469274738681254072852531279957955588303410427594753904269960598336804183908890549782498621894011114959908230428292527984595133302879489321955563814870010220046313275689796386691731631265347029257302471839981087229996687821298064881895407563324116671515105364712319167188574563255955160523987432212418456005350404617237009167771326409361498103505606183719937591803452046627150375639038478580161502337592135135535349423706040293189617241749841487621813942079304742031066637487190378163995511806705398588411587872659358130385563241424043352513723282342123183969945701236570349010013915367452327170074519660163356391882979223300329030115891216240026665117037369382527698857860961513043108604098308952506181477209237502665258514780542335591835073127005606725394995928733377271071228168882836853452853592804642241811524997103412228884862341170175621543083402747476382471772231424333172217431229343171871898958197179761326510475870492471918420238761162975378147218000295843227143017285623908744702115467874984180838567252010567885371499906440568678671487916709596453243415375886529248127369717757042271934977496539576182113277431811117824069755780061039956472444214649224998835093274321119133224851236036656397078395099426521531545800691660595809874704887473151146661700954666441021902732273645359044704756666304730719703863569742100779578354561469495412926247016781793316432784857614812656716137714927536840593168541320568080275101513123417516858320425872457712728352279071041343725912856695454473893292990174536627723601963988753913687552378025904246728094094868606691909841127412021337101611661157931938773320418753087899327741727155965722424085258697063682655584010600268524840046758298985492454165570614722718045071976222155967654361995510275659151871100934432865236684231114954297352055558119218873330555618755689932644984458469597499066270587244054450725013781129785489806137684896808569151412143798137395186298385668509260268634661113842452524750481424108247621710445954367719877847707304335481163467387033274076902016306022431056090299184464421530783152058797705224427494148388134567079882732396147719763972863557684629655932555891330657496636671837148414492154731319999509783330283520532207479316255406111479329582434594680944005598720024482477595718029879431145286383416443512029944302090627163550167955266717630803819357431951056417697648847970795129851913249419653019246121000864732708383326848106596848745310025363142446102833710479255959172781785260794682008250639954624055842698083016528018065108391707824077629595799202698598134690495961341675108520804768676432008962049729727223898154775311584531656406675672904704529313622649633782947969994265646500633775425456143422582741022533729874657274874532206979863610830817793668207929986340064750819193986204023628324786933380867407664685849009053986030374278347928274661885331070759165235997045032854637699901976116238372810020610393902173047568492316342448722139835899496509029176334639966658599776989574010361963731222367625690581447365361328350749327234509141696038155894268722426881725954648648285881725342752125328860472774411406102394626574981837133467990100564623713996606647664803514025406967419097693635906709621866351332874633873625746494828720245638953432462865594956067618165700514963806611089567554072301807988470004121431259612272377902262600708329012436880301268693876526932284632744405570842409812150242322729304446155321623950596228429723086138427212236004249583029269280661709176366610199152033640070603139393110797396187368884745791800731019567714317988950568102740313487652293318477656784704947005697249185688329994216165055470235313429340497242205931199033268703703848746979352745183245446867277123390366651231770258616198099278406635570310723388963656169229618631154520443873027614810866883159156258524803112526229729074317129299783613713801461175357217039024291847548568294003982192296226312005018415497812689686379895970284665069294249641974219696350634056693769677224651185360085714081587998182240757280814968973919105230993097076833573425661973348417526116360460162954224740339023905760373149986589709842064208227119374865514924968707411696763062263957307451180056765679803927515998898301816055952184066900548962239734993931824828240169277358022092793618240112000595297397632893499575656008534302806644045160928816171579002836105570378811008763085592561882015041403280576505910539379672103627604503955207580062823192818938301052473500135919792520501472490033534131907135832830157234252601783639228360205831747777592201950361778484820270242285671130995369034511271877769230182039629379541599069245045829530283059073769003795595959239748856474281100271161351645474796209932309000213263626794892818971989713825305157352230639165739715125345498593930141034846296691977249034729162598461196186329422575998506650958995110248967068733866261860162657119569845455391236343927591177493445777078517332540462681559993016208927391152999525059174982017234239794214740128710293084561601246410994889101284064018826340899464059848012297839745031927933281648210530925866008194778338808439510668831034506543190420727583418740740086118700134883331865731605444098276099676075226244405845504366159199492793834925620537143622420404190220777102593366539580483258045269569752727263264192426153186043656155785428449503417702595172749806187517364303380736747341323490989814097161818383640418676069774909872343761228083913319768866571678621849899482071356168849955918931852886259390359404493750577383353392190461887958194519429864759891671806304674702937611275050746504679992105527366476168423429323049162642660221593678196177469047510382383333610594632991306747043972128953477107336532858044730845111922632661647090417327010522102398574849421410083904359620903219305051608845184922550394421156843062525518648789486544815467282871667221539933144117002310568877088161399426710149779618716787829569727742029491757477301191951486480760049925520601471034528559876208392305676909604587554871929235517553868374379484132101431808804615107189417933433084080504097842045080698224724001800937946981658505508611976521641568410071486111292138471694489827096684510557438131148212477979575411268584826020162971894648896087196201662666379899708404285590074009335931807083700880641596162943338834830981684319961161895903889398326338711556548257201883349950494533125820575596753501247126853020754022384949264286809764860385750279810316949333775070232156326813960870917108070260106470785656770964290540843556431044881724047869965581141663577737036863976029386662272031950764761076743370676044591367384293889634707025943538719192785210346793251993915595162837449798661683086538007702267502822686837436150659111707138034919365967930600304374246697543397856774862128933590631223892347918440783384326784317207951996434723871105612979043435643727839352160717244644110722111312374061163801339057631595680380523153314849707803517683277638132961455009937876905287920545201749707577056588074032902915744869897339330111608777496657415009372620135117912763244418632943026966655961239760167857054021813403133070336599179791647690417027341868488486883090859686010627913816682683931225462400802257897155843445782038389898744855409177293134870320298302086393028108901609474154780063294890308026242097201196832894292127008974860297686917674416271702504954609143074289698184365675735931064108490668739185172766279089416020166891855843794559258584151877895880781250343650623183483465095815953775422692887130898556186202488622524606238562157674446745577897295802808454332911269063111443925558849653791574942508728025461810068483022203558240327823985489314673949878411922997373020344662191859561864316456415187631058756868886083125372402055737814556175793895573173488298914572958682149055697806251060915769251420004776401289013348708720149573578750246947981115424181762762106390537875564008931393565837845964142371873855392408250603326754596219854629167434089498305198343265119569687881226715808300469959335596052853906528039791104551856152822256026796940274262974736056629425777603847424762451864143375252603846082955774574428988713724975274638285474858710500786258626434497444617903170616429350849961503115894021322777241329245991488289153568735536996344701923660624196896003348200320357173530157838337461583434942990669923566649340733335957126834551909378026558171236746717401441539071634659886859660818558465972765578714251092939956625909580605800201164897109071150805717950901896491117490116284356070845810144342572503545142704801247703261637169735509418091939655186148555783018127710650066651145597702533421883741956268789432664678992207789927911565643840703945390380050164999162041247444387069011688390314994734847099927313284043017228816324373202638669675763658887383309174061723192250234453795825082489786068743872093303880548213755051876595395840592782918739666234992992635088992316354400192191613248909858479132462040360773707717624362963413475607252886658154993516434067472648893621657047059734533399625729439029854480173348136772915484826899913562598281278393249691234145053319887405025999936963802374450977860376806137676315975334361299447542448457824740456710854584525039405419755085375071893804509967200967647127021710425464006288441248525235578643812446921991244314233045395221900986885278799633148534145013165305340434636563258204879063672506107209252584202392853939692952181194626125785624218031668978688652536543388033277940726829091291560040775124200721925119314136300928582469790269329561945920381101854652541942072767556879529082730749136593526729639318784577303124900275070175227032380352471108511329956124427625439664985221221365033302386295168268366523075416370429895796935828442281801627847764909083850334280487638011285460499857450286076025440192958223793311407420421535836382431062172239800029668218138950681859995170079962331895431539718824620950801742551931264793856842392530605609846050993803180161949872936515526283088832784967466383587401112221035915287159052696169136735509121313124241985942981287432255880139187670432398291005418481824178430666033145540654379497646610837732976371899163884657717710398903827096753939888498391575812953727059729975144277554841886660162493048371515472253013340014996128654903416104988625123367251950369812592652517002279671359469248369811154674033553615402011694176100159583239273783388526618776543996400728296618077190290636139430394900089377279077103873166167812679847751610630139034839907701240446073152715955020563439126862575594811762443578220643948883086939556418101310652356800029368648412705430609426418823543444162678557922593393926633178749997907454977174974870493861359325155186144001411150842652047698803685563836611195339190169947605717076229796956160641004897537706141113485276753854285124000900568418872903532438015150246802046746403714348348742380727911941881871073859887862243578450237445501870131702344140276336165248008837316155428202004155978269034054141466211581874260847473873417201501290749082911428918831179229895616022806655546954081724499940654435274573254854592414900910725798365764779454720606771739365368580816287532993498145346777248579408944790077295120125365818347237970386591685910826955419743493866430767227642115746133719499161083751111680572400448175883501831450947356108724945913507831288808715883918633688415162744296434666412580919561557155437127767074322236060607333833195425518347139585355214388251771918831957428920492455340113478718325962962639088096539016511936166571006204031588608076347648739670040238312023806698403783533135655404675233033545751780046497123281956768451663343205013731390383111560728043853675398185674528793707939742046737134878976247594644656294728047870517416908052780093857738254055909587184644141681597128152716626439183472803192960149350706601667094154811908040412788764212040006886624841808896007718663585005872283098994610874580290906987586353340690464583647334024415800476507135194342324716262317121100409069552108192340502074236719540805634881885487343220942082228792601217314970790826831060795558020198393858901435269155496950853419252304374384656426107081126053540113858371500788266609205027046809854655856868590772598339263743456568567652471409589890753705413951899416043963950284301261411322735891292478576744056592406269699817134466223396838512958542087453205452722727540253295164040523762308912904978695110917489247424620405915692766207166915973277121682931646626155604590847125044481138615327627040452088884766860375305480595784249701252863383489532509970657762900331306139479634033254304570239279014227604044389657222131038321333294798128384669359042858606460376507911692021992681511985734956272778051407708460863770563761059235727698088558278004282765237438462441828579377862666197906277537428768868973278368110033247817565706935578507834179975079214055630406736293263834329766236071039641525089910355084766781574188548685053838301541281879642977943236550262511392593425150388056810149205928043657159366452162113374659224017901824063001566407218852734136754145591539573110346892049261280718973614284166320955620243973393006790528983621251785560956755612521040580603378472773826040973579086551227873432376663420137104785244039855168142808365442280962941828028224329650621553115386627602895042512647198031693801602190345027388191989713152648660799943457556447458469449014267796877045562645842651458679836201150271294762434910075303525440477635920025837911783672306634972042815328393027907586392793982468525221249900483023365283786382016806542672379693524366829373376341414188735887196108621348006198573779950724527869577281636445566010389053666090325062790733735334096063111582866892036469928965905456112991154561265032842680623361143556846546363903881515824630777921362246141405707434448491002127275166317609963349013758331564060770555733697834525308138116560361211149669892300844978369056798433868612655605486234881983184754833435217506070223139151447845169639308862394134976103349015040702827691280310944943926985471703179662532943128682238705908433874579235390521476533766677883512900667543770539856032597072963732599937800816021917659638892539113376581617681801222774632851021671451385474380521416540464418440255591726072402165872079885620794602232271068824345181641713769382754457724469929130640215005596433093999605389801158957600760705851183990735702449517559498037705416290357555231158837700868016787074852451233810734776061875930547290992738054276765619285671917633172048431487582256711319471810087800872456724036442482803702302300544715250247698246072849251019334825025846542419585492465213259563484809210772890803487402982676223562776351227003322728164323168595203855984402964255523811114852544879237346662590329563695642337127220469647719469839035855874519249887194890193558871409213821075798932848545493642947998446242596381623852203980660159151222191059388173459407057999516612535024622753577804909924208648042853667649573313383897416184836909816895437767993715439747158132120366620184297154548247728492466614238090524112890183259473588823279760424238183320620117914656334019248487414992958173276051018631978888504440658030811660441348025650679308357494718382862859159902837173668601998416937969401162309018668672402565950923361499340328343822384357088511135981085248631297852902524417500566484057059954504245227777078299450943329314542291065662886483245685672573973751373819174445910921238635236870650019083679843120201186675131453539525360750933270939811216658327080608267068917867485732130143780653467423506151458163235663270741084986466927496599139830655938822836918654341420051199203854891431127742777505778133049245098226879655376409526363666220530498766222262041637968247509442504808295730201820378053802853625056653180313115558156257095771503442541139994988013342417666031388889670556045096550227298744662392620093063011658286502243892826998698147351660223986423694613773366572580528469591953046051839752054155039170333069860848203329032214310000584626596582710450501651165554159677349763466262672088948157100421761904453459244311057253259251284691075904078640211338204620981527793164989172521640615416258592115899581983429436922241200164926740159676173890640528853772996525016436237944335560927046973818683149230867326860285401154028498855872876470345426457718362778029619141342811013194264157908243062863945535312367186998168029834295211213758746850204584101346653077485451777119997817389813117077584947409483711310061382637509338915123898180582987168488070480699873145682603811467207808610314933895058863228917554924902230202893524314977686249051439075219140053093021089985957953776220116691650109635381703982106981691680638827399507998596262523327833873590103508855897969633381062375696696234516234999558899290269297878326294363343426311064168000596627485270292166119545382758895829800046172423442118268478909479930984328327190959872502020926472795063923072754662730458613459368268378912048794133982428904843455467731154729877883883915622593855794245976226874013102826480938402824966409576892205191061591512188893015856601188941948660197269620137193679261279301489055892093454900708738223737899813778862969661503384821423811915138884308788438486631398811731882415474279374489146168297459308506301824777321272578411116875933268469561301842830556599821596448869197024854366039061800419208377105087014318062008517648443793728322365660505237980002014533631539639687482660315907640461023317269814324419301881181861682356817072303409196521824154472620343704889707967621285342494622611318659615826792699819834791954555322955696222560822974952916911233264842388819311494830251600114586944230136753360499591730995630625366470104807942947969557749292383269123722779325207038294780608929013505959388921932531185224515583578125928345521950106169332268202018019984254849329922799902959655781165141771481889194112955000439171389603386554312231666932943802591300390911209938692389865907772114831821885929732522725331367139819908920830595510210740412734415631957435378539338845628181139305854336078759557507417493200479444621850836731772112143609421002254743062819372128769733799932473556097513145440067987625825679339212205722534826665706715949397239815987960943278373878448443429277854073313411041536100150435883978940922340442761393974180796411237365917538576805725541889627530436359684248068812891258894998956687851655973873609225705055132662180673083893728450424585445566358420607174917591046735488571312840795326569566926859757946324078514220758248612659982942943769868209404961843827382635099668202736612838714948049491567566054211746095393631059859029187803239382981306471049137334729914309943504905939338642514697088568557675211432961621549451943097991147100127671668573626627220068473904735776963556355104149893049586959270760665150976243962721484825687165344944068515371524303856333306141899534697823230109287132771577994539898479731740324747136606807655596727803646452749546304110212867279366431011198362759191183236115242303920432367774397293304618479386725701145032295959914820621644178378689354313428775087215451077558377607688108671486112908102094802997199493871303939353040937881228746928575594334991318098502889021685657287606285070961912174208315820694276054619896654815174667456522457735848412042530944816279004178103892772888010630272875763453282572674892654171915540711927767229906262165980774405880520712368267326364495482131252323172997504162879050927510496116642107910868759380644390330875709427382520714768030295980750707105634714478381928435050785263869503690414301429960532393834201711397864707281437862107047876125483928810241240347550051210259378889504901530853849859329519270939897010228738172703971137543055811346113628965201584092819257377235257035538108124876330610912791748673421296623044538123011984699033891221898089933457832852399198691865698875666163038399281061826746264490713470988223460618684838998354005234612756783983647327237249685957976648704875028630379146727787063321487708647600863758455314894188642478595822431714234325629750874307989993967929933287045239370256716094538881714055889669878830972158301713249870472536742077299077026367916801162289167384340065923011516864009393603036085127501858174838173812261049957310089062884829744088449426832619104759704284779610533220908703551408087500858058744529724438793049271370208592521265008175564418593246465970584680581187716676778274697917556844071881292225348958926410627626197608299920927356622359063658780790768478856165845307485463179487662198750598207554312246570504229935249331405604744191045222908858357097669621350430093478620587920384834830854570277934158414254711733358812338090670947476267648005370180923215097516074623413060527613165349226207518234924484899203867162980842735067481824778933372041240251388114751287410331586829472420877433213271620417065970895973898109206722833993402840503527754357369940423850423989155956830984015936831324981527367099248018696446466922229814663188184527988432504407718398350430887293159144762581108334367828492453708137964274478697432224056320305972239507555818877664609559369746860647383759328548358412175724464236207168365202136124822823500165882815094276854365847810632818184123593709728516481309976536698908348750769603796043335032067451638573449639762582574068324356085808060299878589967346584606340124951011920880036212594898937240460812955098535441279975505477742371783249554005821465009863031220828344340269391485105625454782854700657237304819851460862604582238500445623578652994985264332708773011910584646789544949791335058109192566280587699746533118446851827237454323182874434313137176402158732150248414765103680252630116938761932556260030836948010966147357160360277376147202715489954854864329915880844740198237218856107685385557416130425747168300445890701832815313960083034318074653373046791587953752784015636180839972377614470421422782834388795012951632804738608958809998175441876884536344501017477979781712720317389020836863048555222617276796460198324770955177155077856464011440073837576364199493939834773805085410306961612538922263382701276271437599116919979630552062457362580514930893080142268587228712234833246448379659553455909426658712982102912129827149950322304919958434629705991585666706098974021260541494093696583120033428051863390724559450183677076963534749138711331905891829974537691165983674504052511492552588471341648152360119883823660407885531049376624191683642071136880235844120627611495001888025044329216559454896791050571508677294191870579162377969756922125048050148024431345285217420742319262468411589541103519190429641335967013730700729808692909225428342379506028338565246276063008194448731443836796352885579056562530791472578974135832135376678440524347981374667468381180474729449881566030933752212433673201958750453239472038051066193623139802921974331842548674940933583555068202393521205412265566276260394284261187905428572480987597000523088660047101630618961387748985917194246629223174914050101419939859937830899051346134910186760855429371527270444808561993651147021296523620498549044512363410777907701597079345507290523318801741219438532839719221171004378670644415486633576708398471153278009149004688095835695140094106386623028607329134136134327456855840412681536474465197170224064252861403825372336163267526532858744775297008390703472360190735294019518483449873407593928055842742716514615134803681442484630228960093200983552577911661495590068010799192342604286767443702282567770869067586899721170228303740495263989536586488619206258345699740898786419292264724629790193527311189981391420645607559171948972045355202520363716842893584696263022665729306699770099439474535814434118338360331427455548991147226508603392727071150324049825408843782169945633311865766127557016219531083817306985797481859117085963863521120207507597068625154088133538736361415743597768478556931758767536876902056492937595367422894377605684907098268906512865167413566227225657821315422844902425621676553991572734519298402098828843677946974139258767253868704113892284700267832872004958071003954550635619162237096513202937605672693939057635943182949151035434137387079245480704769179541296975489172939187317189578387861190949792040488454789640704590727377867236194264194037998400188457401852613260984081388399724016424929498340674395929037610144275936005344219073514780261319233041218636838219672431205711149261021438268129131934511743032203362306237146818608021069859095733710834956918841010058367704306695352095099428533593365785321022158613735390406377470885583977921384547862417407729203491635706657835405419280221023477429753119190395341284673818547807075708972578837270424441111863882432741699362518874559370605335412696345665575584951181064947860331646813358554660419034735957206439371946352863541475798676502351782447845732844175061181994694209405392204267034956695576922943818869671828063358448617957363006980336881971208520402192682513499132940625488921542546172603131683732489322595680491874029715755993642322158606043167828088117249535794704703721522044139917151321561088131435143828765354250978893014903477407796055022510604004622399064162943218418018511327064602454301002400765105899098824033635806370882984711578578719425524644271765156616472420816538581127354143102383283722599499307067385688626377467806728546731779858267977829728366500094012534812348903571046053968277295629528885206914745503601983024855727047396669822484530667920315953033152327540533620418877061040292346540067449554646919306075094481910869376332700148243281761378435430260530656082554777774935584774462204553173582471574403243777200704634065565141542219643624126061500566986939216798622176750668107147584400760320938345302151541349299132612722316903228439494904127181077574264375457424833877739396588963036591376341158953931045617979111340316859381259589907908752296868740370692657340955035454994082600898968918129121929009193766434114074576361885326738004093884957996160008757753472725359675195137656234914178450101294176915771811286654368613692582518160926863092510692315674928622835608161463425268633896791271446866047698989504972335938393668268979261338139272304003805002705411958139759745023251653726491692355353649675550930623870060886224141511845625433335197113924480887289671424312343982541944919995787318112594869544741892802300279238653272985174143833954808902738302101373344952968723067201653095899602000969010187498697492749280484357471189706535650759598565353038320824000380626180669033934767781113031278961736994146652209291057989640865604181623210741308812753205961962628946535426541414736728171946288870366626364428889167367767071181399018758602161200847483478571998179218447716697138891412927851815273163717484117370688989590495515052858950308029430141099626952850104042373385007321404142261865180706272973144232155928555693696969302650511658585325033760260854642985513118521718027210214816707987862644815001272170989418872757317782398969389285707455702160101805157397808027748386759695469480075287039119949587904002627494963778270726151909325797834020702487103116171634324519746944894398835757619304376705383524679987600715840568966701046221436774994334815081511067198949751368184037218649493971319040049017239270803393361401583182519924444049579946119188392564558591603686149925111887752210244663024723541755838506958573702303429192646254807806073401855372851588765471008888355074169099869534586666861447307162346087840489423803187193069972126009860496542161738501493196064877239300505582772520179629572204851223650169751644079684329133494903860617862564192986107944689921692778820156628575500770584199822229722067275004662714326285172591543562481619561126319054133006827695824222334981013630116906440555610417616902643969198810654113053554795224692880186296400925432675096188580003398676196771904245990180406329103464387131067278613259602596592650282940682337202675044942076717353316224960155235529902325502215222236565218972377996811816452520188574867788972908770323151455734068497335488246777869341758634787912856861430540743052816624310347051797958150589168084485270519931503452858353801081538381848930170157593427928005397033738789539998636726292759657705179763078158530928709930470867380192370180502923082530887937413930468408092010860592403737869946973006273393375171789399895142793230398541224841272045075211903021789569706706791715760642159908505221053005921766501560577284921117419310734156399649813869228136408700955533230085013186520750774662251206261793790914878295353630640553583431798583650594531678237988356316012379718050684145986401888558470495095048011480057212547703237161726543895802866850088660665449383719329335686442621665987699182430516777578833861087431654767089085279821733479436374776246115446978523083982989909610554515519470893497287757803557983045056959014530992672640760154026202429363795232938009572046403576676643041482476073320490378266328263717275475657262813570630775008756989629283541546069557002142105428180270596257031989482309953287631045335202352653816652518649203145328480964217892926422195073480125825597415698353825246853910076102526804910754135901712728793449021713114275074538742445879503667244592063235051633814202419988645623949832172661272015586152573311746770711133714653125686202590734961851668411016607449347538477165543747839498751273021299309717910991933587622955370364850561902228962178757685985200023183317839929133940560694583245965485463016531266727996751686594247351663640150192813130495973514142360265686771398640613171174448193326843992854569110511613230176675575099740292539420571450178644223163328446222269238667323049638609583575565318448469599983116849216540911918961063003132666003476839255535925078540013264494189315623803184221226720194059152683986512121758272694872388862655407979972554921673323746062171231672106522684386296065854414311786985632720015393475102343467515478265793836656320251417728385131057223894685339893476409496285274197954336276982658517292750549570872192779748813386331800329700924787303556496886531717499831328550559784379898830654155319509568208051331975884354186318504854055980629332845612496346732471802447920579276156050383208166408039005405258014383947594074946011111070026035309764404261894892783414833212660825329346430997369594146186186181146594950432571563285009439393715669614142243609968628961653397028152256515082358009456254409630527918421550111687569110517356608118952639609791489082557012108268040427632890664017185619424237673013778726136865425055878265512858353292803422751399007676209310223989919593978741310420469788663270106133395552948591655600275326691994633087710555557171094158048193746478950091839651883315080205017661993589175825872653997471942813309742040966563603156704576782071610963277521654610460428697412670936030442251393613225933170942235502839552692373678925271083608432911640357646898077997918241314700777693945203089375258999076718363682153910387993874770624021788212694671519357056341840919074239101986073144403341098304341724970436746944530365351337334087078325612348639285315228695394436090311333406190571662391913147592747568270575301594427059174231407969764656698186490904929618150561994614076305894558074593890407153398773147995201294462942796480748403844778505027361776823300090574320434611354650687252524702702955639496874779805622075929824861038290868566036829577278453900262874440996205566746417358666242326278242374081280024842229856627555768160981308866207263031005625991204754159683534233691130614411878207089571636975574552044665913224814720804132870346093301553884670879286905529604855336696538173305177978648299120773632702050679103529684108630428992349708479227379807316831281442600335570235925152482579431103495091698287373638284088222183545829740436533573448635854060136684931255318445716617474713228567173803957474604942652984233600988742254540270273520237745255201086687826059161511233595181487245150184830221814923452759244072367046172955257627511308467643799469887493052707961427544856034562000201681631538968766048435588623486844684051035457235188991037863754289104632146861143155274435951245221921015399407355232201209939509522133013195107163131403996708380565936408618162667872848355125483602098438260655959133822005884129986796368298972802700655505376026229150654007060314935309235320536398743595421966888916666519938485576973458931399130443501826595967396752918454848982562223048955466454097829702745901434322191277364891742126322998017162417168933752863430540662670646277704013921211907706695705041764059128182517792476669905521508657611023338220056093947594126188039285224556321602894048665525891506067627914833302976506412156881191211553874564691228483634079927511023408045523272895988796553320889057626921137812823132947292223656710628725923157291503821542646083990517359042607573184078573878836610507321270809407704684755334404919764514372390657213350009106704493845176747438564342130742865045326517858730358840791472486100525503032071748634489168679645459871548189095756390201291159214256286474641124755508350005546822288606118266973308005284541662338867532589201629289066632543563708982441072148960234173465486887613057489783460578309971043798156571262612061712791713628548620905916518242670873151864895186462789789552221562995917010834762095133502898811697027425248762663817072249025166938698296684011207670583842260288531489474137106061965179564481178355630325377565402912217959108606868629224918024420259179911816116664564527091432900002360199058204324385744758401454739423655904630784616828515486764298596677756192204258393104312777641083482379359317263054602259129924797354601612145245095340040324962555906097433535299994678040295409750359895254314863845293995630178332116624562734389836674956275081299927484530777277306398326496432602672363830295338830351359861340735052551366500174405806780623564949937422885095322728375593472588771590551771498451947669238993241480859596216691199970848627807935885546430112431505983468179350140979721935894292061499872733256822512543473911261420308986393769900407028934274092324784229120308809210981650640244273822976764007662935032479165063939105164822533469935547579661061901837070662812782469709433316092393904349781675901730283078024608252058419037014253029303222667772067938021665826714844959368434210582983624466105562451526952129967533714631292945843256201896029549653480177471364606537789414630576500531366321531447327079064712667927134669453859788238340049277698210717769810618058814763349128159385657481253046045602613464209689376938047732672232270419509376004527888281047568396450729879197110446760561045545914097151255380943237397403536944820981754617714669104239521619747738281909361868366025561749851812021547062309754387214397577280042383778408824610061300976322466081565204786283959174156992051203782078604033353871084836625876601025964961012594185458919201354618892409617117891781836280886447162652292300579243440270852282032207852520853574656683331141143628892256510924792282729318831970498935269498514470557891077844027735951837641373853716780845017098920594351761264221333297115757117845772772960740169839278404979225258180606333003392325139828792312201163968499049069254013182246006972085213194218835349506622409281590479864511529613368656455482434581824340450984801349779356395268367187991281751404256852161904964103047337801692395645622039676331981289114511529201154486046369247966957449369909730251144217211404608513918642786143580346021198737416975320778544852050637608701324781870261118772472276539537646900607265102353122970392265971220379756837910003029571902426298360003507838372555589432460616063562722156475252289367802357915935428557094833647533856532243443193795555785219275996709109252952817624909461366474928453864324433602591691239891788738243285140378188659527428808562453390924143892495310194822115128807193969473913639821852980104762727876934095827727262654000316770139048877578575298893862220283791257537462106557928331815411018232641103119779235164776979860472250687131992779466717209944446623462199482399859780667592223381233642251000036390169401476268582177777083584231270157121052528519358262742969330836018286054104440158560720931277748026645925585502520292040375087053375399009563436901828031067039804357116807174921041493243684262259371725923865454438717178073288647529048406319189194044262666821489244110110212343299525635923621535651064728589789014610909930569973709420245107354129945836619797442016277110205816029764530916805030699687636511692585810194076688886289305752798188505232437129925015684021572751081470305850754257200358050584912532887691719704492354118620658355292521943807362690175902561630002834318710040523510682342646694004104060129401939804392117571645686871620857549909839194305405756117084387164309108565905444306606880438960705783641176281511260043387718057395559646673892234832188523972880129070114617569165854971678706544744617338896881832385145913223408899733735660467418082537570870506601961694670788038216883697998835933464602004522073694805634321035820467392345411340652062034092431171645300827160347631228439041870038278434359373781292794309966427713519826681554217244492701122242922439835132195514717040627254354111649935510980343164244274338167040694983695354309522595731050175141901605355678050323783921395892330053709075228514760936953628354497395773440885358049525428828893922826559984274279370998040986535095800417107303174982901765715957880974822816213464815438982926710466226078750158214326588920165712442855998348526982714060458108528869810781730371011260692522715667637510794300804350754409085607943020804802582199167625552869729157591814409824575543349131917612896371916530421168945539691978302591603436717241305583393312594371952115960359019343801737279911035607777828936250866476750430632433471932114240305203638198740094906836871654325469952448767610841733733071778441999236547664526782229588132927413029279410025721387046318868949880741629528864233475408814780457348620289183726287066818427469494394046460943343164601555259456529591220036586203445798527474990658404763889373808818618046015734536630203684865571648520348763336473898177045131536607808371074406970653078224547053188894868303418655691500766599147106666926336386046915959407989108365112996700298216879075221756027475503615357774286862141688484029193490623852219226237382828036644920238475021335288967344080522228377877900246135540829575636824224296918637761322142403963733221885766039565408372594094790342345755969281142337373191158076877277660615056288606265729364605639910386670639854765937700904706583225107890639799403000897596172423795017885670360209726703176962776980037071926534150796858407038070720344276674793192030892656577608381585355673453026486412434447790265802302251290946666140409608177416999686663535969217868067744100515449537831096901948283213932295150810890247862263156548707404342970890744542221761668536630639661517504644276474792769658959216811597333320393480435311140019302792650536748224376310039541591145692057045445651593540701003967129894329831792448887363589174980048275484966121244469977404199053617117525389047096673445798749813511915803315992101408364307755549976865782174694101047856636300496090058883628433638862922068656867859288257272033650505173971654573560538049212645706085145370875569172187864707880805044980502080198025277198861546993270503039954614833350948325775756676742432230581743893450364894711171680295881448243545451880971784421565017471257452290888601193599631310298093100744688772271670973264672380383231837576330457754846032987649071521585271410466384968497993167299687120565274358215199601860624870105286343088337421642801349509379236448912653046067043336815161116615095930957762187744112737542491294610553235623408520495104754475044816716152364078716123750629941438761358348169007546953705453952469088702885860746248628308688362648916627271201596022573282568622948405048877645657083100606744016105720595825830076877861034907863211278912339212888939885945446759964048909144811245292055846168540657685975800880160311790574489013205201654068845691634216225802588892451330541956578085230070342771848398200205537711532943528023319590916229938372130350185256619574905811592682399351912544404187001525254466884216182600843029674768869603887875191531790422684514187856245917721155173519086368507151520359793727646791902042074300688823582785388462223367198111892874960958072801270089244188248929682127570861809727999908365552022582022548953371519420363216125354189390474801975822668737549884288264080585935743595310269644949780452777869508054181849133811067838140726968321232363130729333424262892750107341607781899861543856718224027077685051742445391170744099526035223883940679211271054746350500864505185555083980322624769594599556595073319409220049064018072930007660907065353185156924668619145904405328016302078999236512733702613888008655709344413249365988365875266543709793666246362577322375698910212200684158145679255287904056062918403515091938656773133260270423797385757017006317295913197312512004730774723968185116166060180455407161581666216362854736127684985840310799951317746373696731877702427990566411591705717775351487730329119115863695786554979473509942416538350681606268772188612068060247146943776267097709825991094103166971686447736139778156296020377038284474574948845452426998697575857030628751861415381538448554018787218390508462675128475892953458217321979505756858456688495428600791672595151399751118030357874723379824640718180638257352167298214942918154518532170741280585855957049214162385750261443682603804076085175187877576075064214479862459450350711617823838148267147947792011802746785606607234531692031737569189330050157947541009991967918446549610466911546975553494689828574917001038709285855945101903838493939887503564030811132164074939602717457032086452217962601497225678514094253091315197307152959598474399532263622063302538914110004868231004900411777459790569948018445959652087589374284290174011942082318137352551620971179195053923180020917794867337698059857803896526664526278394272218547423460400801076234125229727686081549822646397601869371071043815305094550632949403239217604752873897339477281504718728203609100591806787232966124996065740084394215736902305830726032082674003208422678103925374563420740991244993376326089285111050580643944803256501084294625898212141945372872623696727688167671100611515746246652670565316512399284732079018519883545028380381412436130412371058669342933664666571213680646532721827983407924315811257063523647483402882938525147853780696911932918540138589145294135197736379246176559012270419504748628582530190079162180027261510551401904945804246059731891254408228602460250460041371603948422163994157399762549726178392100675896469713355835465085947318464136979470093243104291889715460954152929950620986766457939535156857219557815634276452916293217685103976487183808272150669295749326482081787579920666034708925499224574307164323330098873935148899597852380241633550873509529601172991863446305583090906054921622221543759635863137196454745008595600035629856455579381747939901565361476055664940671786818271296255127312648266908223116040042738039432350396698769317802215556712823907330988164509446834919683148870286510387739312025313066673159786031710077504632039995494414953346906603662648392951449442191339921302531779865487393263944527631584186340896050512525425229949046708845970041930637039145826226931369217116177046162225847350594878386026807184278675344884528258636518893724954374619540260449958699929068086756808719304748155105938495148822090018944755847446600862985989024602231746420536366600033005931194162194718697539308544813369056039547113220000036511756989863005229591026753681259731569651868884066457312246130279973635875165779297993958540895181108192042453698635556231213158019618568941084235864309907152720289255382847721482623600638120061716810489868990752372953495186394102954862407890392213409498658191708518612942585369487496558634337460429107209830061017455628341392320344645454522879611681607452583601183773236747730502521939034467015871231203237327659729418436726683165214348294799949176293113668929425616841950885311708259297201717635641017825077594835256881039607077963654991296958049819833575179893702257665431684316765298715042007967328228515077623543094777192255162456252023233482819686174209004561617780528779089100761511845692216109132587380570681133116767834051887647424177588226058325674783680341730952591313234358393335162743563815295588726320775420073767346437454919710156651070855935649804634490995315777723520141997710299169478404830914664734526314586996391083646155333922888056297487550769367621828693350068522416169362356728466487979937573783139193591981258592702182362389289030582480646460171524582500944220250259557366223839769875531597855594573056781671035033875515735880825309622835886199739150217341900849593360609529978045829400071046761808660031540849914882703200947162603507558726774386744224573617218663118365622805840538464222372328399095984939211218072981427946316777655106064712764630353596856168917092365919739079177308640434623383311613076115409438520975501791306468707046083938135667743681081778964787337425360410155041734654228027579134481235934177034170382038014212113144438765839657841298652038727890854250007832550200408887604013873342090042988284286723424627033428443501809021098937398924262484671311965093543145112491770161957164249438557919248759404192155105128055356797818220942463960149096473426861745583407409386873698560120794931115733122981856051770072944492774367976238064475236049343177225411609943683017508028413477387141423897798062887851376670098227131021160414901939933003913792985191156256603732918423204246088045018092976637222610991250586595385841882940741726252442316442687407389985907622148281124567059509537388189105371233637960746365811502093936537310926080924861928841486581918364684833311371959118357089484758911269004894668948030545816889723986703447999744100220021771593178471025220158943024074134501319869978044373241948547389387441838265662813630960839407985408779895557653731100418194517654792371485899673737318803216483901693677807454480861555618438901411126359469093474883203619074236563088879830219122250897544574873517057546753412838842109596942733615554996462414357357770758540504291082844836349783448376886159552183699796755116583263441240465264811499918773582092648340914765134028960451124440815897691687707473956802962853798919556624980959969962748102027756941155912276716813040166266769850962795685815651791204834634541052383209287530417429643419135570291204054774265857596075781248080372059383237058223913939454224986985724115009877018146684940407061685859848533530676843441169364096131818325328773321553304800197710456070426501048691252989748754636344013949998905774568590800679143947130415222584365942693541957040693156558042938928838659017874657627773284184396513769080218186293968107538756115320903009988925936704272588432482734805258214149378413031465054405649529763614369926825331915497274976540244419785314948814760558464896929420023965704288144926952853609481192418086833873100632904561177958610921353571140147757325518279605578570714159464666990079597294939976785779104305227289489612857422034125780342254141499432774211833683001417196990843235173394253920179688157132073123288122173876395448455869875975105237654910361577327466399705980348484203578759952450365223833220259424187922397983949046998356710838937801906376781216091026037792956309320972904222383444526688677603418182297809274009014547953047608742153190958362630783391976364102053321523894077791629756804274141595552400252974229630836066469115685381249048291341270853463873931735745648373311733187982028783706748820453385216359450594916751438089327950805843579083850544408789423281407779578836745416656936256333818774428142686752137662533846836210523219516063909700881451852652741615796968748727318081230694103261410794169019937342357908525891835226805594397507129484721404566038303250124363049126005679560229069439919782121608346187747952764100289290913697567698831973362075580832472568915326501243826050490290294034660830452322078948406160962933473126710951357927933983429156995580197813524997198228295341852987543401849997466393117858813218144548879380143644797458531467282146347377478959917165735576923867173632641407732905243918377202852301501181331746915600244118838173697232001908916715985580046851495808176337362845787207925314490655854935911943345926146250954084137006824873780492861884471094505336590772997832159878945063078201717777571077327646374158326172170291328293502837533660916492914688993350883504919384465143690714449956060151351191121217189924910154734196657609105129506842306939460084852038886853524460151559181380111383582484266404920157845922937441481824967502425974286930834523947598923120963041797430078016363569737786303111388313521295468997535193545384743149961440707065237760158950191311743900092629240014182218160764579871759047170938639967437674273604693647747103843228175838243698336609707889690240954142279339145252102691612636151773786121766005042723609124399776402343358607768587882624666621218950002393141755450834251198436872933952563238260919596854036174514508317390898692517755597613890101507348568933105907718909837520147272269469966824848609017350667257929677432895764198031488652909711487926028973384369517214907514703367882692877873004194173223474101142484894222590219779052835859255512987021234288867024438330964293375743735257825374619384213531547234336894389479015577319220856383531535638586459532098966813291450346664636240640514264680819125439817213156340163229658106424168035288760669677462620789085226031519866916053707891237824455805397524634033469523049837287453200817288048215969137552514502275169892665328587436955373559258372936612684676132413283653816388469779571597872900942647057926089031680750098173778600115371332530719745790620151301627129079340561177744203951167555481204170620429718930100387058202220127612967486859158337293116236775850845005886483581687458159877653510007699771460842517438302143053871352151563854429298356220469436179909531017032363362928850323921108222312221698922344238254619729836246543436094472032826939160160275545423780668837383766976390405385637056237680207341421461268133277729718219822137376492992161007264248970468559891908640870343592574448327120725719026374234800694848728865611947786825038569591692980174425330208943395939135687467987834927553348610061224433795462062813592178343413562996918040416273751133563305133399241217851962782241626696363211506353415095595739197130321725344560404247913394302471265957229817589930634496120335803624876334694624181470630247792862910585098798809786249040354656898858320992253851296592290175832772206538627696303520069626077265961224451581239393062091449810862256564243510962549960945042368521262349451900445833563181313100357555973906304860106548541536901631587060404072839271444367418595361250482279680025135249049215498087191027689881085384788082413376867033858674999925575622153610972968115672493476417430312236965960837758718149164768446326518882057014113567510356770738569717655603872191046149339778987398605290749099963702110367601078273213347280740897408293277721429402860074869706253339869650404512013212691398046342780850376409125716716429152627644461053444030601414722973122497188433792232923626392397825391339954418099095908643383888065369254132771743371265859724272369438787306789694784199698015833905006864380341763680470773407504185676307743879813907946611913273335650597009943761825675425246092464254548843051959303865427253812962641729937003062674701903662729518934466636106270307368935756228613776461095656152833139650359781198800760586782052315124111086839992124775473222789133840535905490753959283207345805179984457123311165502257318073037385096826970889401986890928891789185992148715093196014446216678101314383085664528485490803013680929949610812927535556166601074250179912024293814186371803117151082616007771953445797557714739225537300732544560045177388524548970688241098012976152263622994621185068333254988683478299206856480888223481737830052362032701066660482415345724339619294006516664036460858508280969784660935162525717382690731692924388059466425394163728637770228791192127313882325847416814853018613034058143831036821442436196053606969929842642808979180003616443001715129617625294296603304055749382319828297276179020926807094746807540845492525795269516235587952576425804785688113884202728896255676193052120853067914743315913705047604129792678500371111322638774213093600787226743341784992020427849312696353452996470657451037631763120509264232731974854362768462471299365277870604885370661844244477959020512118681771645940369763445321167282004762212117556258744962689357876135478321234457619790931216933245388854180233877694930476892194221954207006570600669809978772631040688741484700357080544187606737288024479451265493537240746920969889655186020672056424106994983431258161991259468596349146561148404472814290716963209076347256522228301131340754241040219474591705980666113933638175668936995597726851417844992027636897037368233611346484847603889170129810762019023768491728188592610849665231547858991617329518296575958060374593367363813605155881394377562441920154576823934579756593606261664327044196011695809148275801125905310596839679055502529648476895304103572278398417006808685381853131256769700349631797287129272646063336163657104363172655013003052146670022108648347661711409549978173050163289892604150468244502032920908782824659864070201265206959833677232546297148112056357033034903621271229597393750812514577508414561658444022958529855034166143358271061093912498455331958203615046888198786814520559583530681936222100002211132697461006102134346263403819480716842308884989102745357009695694877251640663652292895494233609267091934912231078111197328200210243670133348884600766210826924178873612726912250144014082021014923397407943054521758163584705897204973969879015086854836471442075511405639459906636625179237678978760956234441301415212846160084289162890176568397080923399613479888408597964676089381932091930370073553676222345857749197606180273575741655655894709327659281108609991170467714806376400810731506900522561509127094824890103810577685449072251904371542748962765559817751915996245197210046573353593512028026496292187334506705765798796696435768633278884135292999305566540973969885354910428281956277797074543327266913324031028383098490056966874164373610537444217775068078388242964521249912955983369517797494905035308582905198310139679550202188169060249854300939798728303087366250869818683070480685782981517743078402870004385774719660252728661501831343452911247134112531793848432857921344155422141836025920255827533354868342914380357716821010589804977904876312407563017801175071005064426363617562609003985131239653288942420868927693235666201637837546033788092411665712684890372136931363055445957862083616708339685494236581653830046020224695386754565295484760323538326118335143778861276258104913506172882916041153894405498898340874168111726238489790301725627051846490159071698013820887300371488548765191263866052260943736223286264049693082331988744797247043424628462262175069328686539597526925010833300011967860568205892054248141228069478601144371158912093126683091548633247462590536906667739160209695862013510859793306843624820799232236500658724054964573576769879717051963651932714777166738454687822699663864011894363971130920499927170067863585488135331014637206156292836437991161130082351198717807936366912337151969900572535546132232719632429587475033705816122905939565167131591455061718829883919498704446406820120495227453612022076456866118995758087597349455088510115647992013021729433875475821210762434102031003806944759251024281662608362251782689620877592730551675895205036595153983367350429312676639363714397675645767132285007473753770756107104505197783513355771913681309645894221114650997770012000553982037220915176332079958349017420824496918231680050270840459350424053219623854303104923260717093885955640577249388224175411137403301461077733135670723458074246991780167365922119287375519388400184736315903146697795395427952496548115446308961864427439406713260219813468255777884576192449138755799560257240252566751733241264913838087750726371971329939069636109056465602866580629541052909808783559550749431827548142294474309181157789071704039271163393075950883081736483769698212255942937448164911853965358511208727462511817601160505855941893934761847380329791280684780519695107349006775601237939386205716054415976338296835545491678796258414236341704750616218593021735797063082603317290591319364933731457176833392234732926111037742781551451033153617589534545328917252745476200032542984072803760415314366266997446638991989686449811150872654394189166562814416531372937344820663096069618218368638115613230027299723648087083090342317115545554463263875642151070288040333894241341338849161542695732234792648226692006362983528534339876923738125282831414379313100179235543041068303014039980647992947285336401776272049730288550625777842060335475704752008196523439548126811017039185809067874224165527169617567952557143944882709995259437481689946877583669603237938709200316982893421052859768940237109831015357243967607011442848568657036133346510002992148277424166512463354826011454214422634209212312384197483699755250561869222996585006735807589754812369163206703358107646595622426909126706028946780847115001299384123024281028198480728512342452967562613237600103406090414246622358346990732299529398148468092027561748009140689232662660049479147090439389045923062554212636125548927059673302688277075846786301827610691364285609019955579368309549177346350772674340800950402857262331646210623641299302071652284612493960901302904554568453508805112649530128695199927034529929045047012877994865512794265839130971098622761776296863206443715053525491768193452763053553217547876001052577561593853823780159683424956404146835050290999968161625048293434384293556569494456537721080106045202540125385454700564389745456424856369178626560917603482148758324977792596440457110824403028414105709653534482855399690227919183234483411081710258088351029240810203914323162079089287061749368386810790103547330091045410707787422754182634088952320413959551937689738995038933345360902985053791627033017830770831769424117149405390939403426538836253146279167860142237710851122521256131352204327062236296831047282437969830574476125948627209781567360822108325369430471066635782442001993308110948422086755785654463560135945227363345998154893476751186835576386304132615859473165921872639605040704867817222052118444882819824515422914176784212418751914609602473434207412787492228004789176594580515540665622369843180858511703791809626647285280081045217154133076389487360798798041369986758714338773818030677553720382953547606652320093184485907945215651260320226575816530723571664728263052435809249231914894260744960622267668502816697041811344705022126679088379916926157209933311988935964061497633007022952691234907379214664088715282654953011045588115205172315094539002945544577856368196650839596457594870689018081188939254193363636515012805088267331099277832140036234046163309110793341329125890389381008644828192838869824993958042862444471400295680543278354982213087456195532521028175707463381222157451687606255577421221989995788209837190968681168180900612713275459315301387952898846108372681129118440107208754646644781137329909719646712992471145618185847871844918017202788220327003109298223414940723235625041214193185041411289092267567344715400487892755517393379961382104284064769762362980628642665483257710540059483647285108575283955403918753114059147078480793976014868715754761569517451102636863226511333515149955402209974262226834254807392413015939705802721975206982585997082196322999265843178604652905513849911323014267702297121629784818549167859197310724139989371818715444295605449871008013995876042267114784875890746560376424730426650009501780765545422811520282787759188149797968750069814811406753362308114537711244994454825027838060330041931609101463227768601307290107405329199754556684381623355153678112259661475330248364060740633951590350870926759797368907536072458924236723796868623028068779775315962711257257871456234100393867175117879081823338136051146412363421295124496933427957154079697473872180644136823498390600918564869763686391608354184934434247869531735931973431122086153498310596093968526006889915957888959409695599688584170509693632218193594038082026840618522305473953136704680757129227129411235767817433618382644582880152233880497149678869837617241462861014569207212524389108398045639733190761880345378178104968882598677648090580720106339795672578880551863858532936556678459524519409097634445375478046314648831589328435660161666466867660193878897950401878004334258109344338011307989628130685708005257913038627656938601598654276221780843190137856530281613442467475138034646795137803442468051691344611503268899980350301311080069167959666446096592468935650359028774899702394850396117267851158499245040375526902244527759783660432416624910440161103646299611755779841842575662500159286474500074481298687131214897030519756889951701861883632777741773218497299683597151538013027026986088437439635441627560604516555536120296935281437245000875435853704688283144750174667577684729299986620535133531697984484060364866797429437558652401885644991188968230447663994924036841350133194829326117722670069758440134381170124931253225547505697259574197079362837661595190042155832774085214913946627511994792822899614725650614447086170105221127081935673862830691680360469446239056438243448297059525473645579616207444972327673710781545700792491136513382980399663516381463983669085414182393389842157223185497817854694705080689399178057508693529876888898861376060706928861254484630485447537145728430140447147467317950870703759322975537222650504936975222416342566537348502195445046120660126426408894437971325383958305575834346186069997530150610056361212913106127453787004157479193986530291480164842958966642316787391035485747904278882437276145749179240454924563112314887712762835868992066732998249355993633391638573862935200848763032939665398938166643891870171166172127324803819582066616158327346930855285541799301422424129460766678946355289792966486042110393597410491713313146652268828111024195224510691795481773203975759903291351771416614981637799350573727296867307977808066845008787705196022208517536596520891070275058463795282148421963754535208549510695670963757692299352446638418616893341572110275199441128620007313880641907594212756165037264872492105963597726875489619539117574278510291006969543257807719439754573173550117598507803709206368640046214296494763475557371056858896128697638389709363810046934048180334966944074227110983538028737094651565431229432497275220622264955218145318874668583497703570956039913727098769715549430758378297959790633329613359430957345036672989617995480657614169618343234834748959210533086487218510614624301519095029596737621784445231909939956035752797660171273476146552621139724426030564651557155081240630829843727348935758290913867495649451191688255183550978486725008323367168689008736662029893288886121009500172448273053409503430878144850283143971435337409524038949943582346813638511378300936764142631913286091755030019002463978448488721561602519022625454954849497433633138460071194611862290840848828010320444746608049777944641411058138565421447564019892322040632930125763917290932798468939164504100941378125098273432222543500782495377446412106360539616406403199539917084616914177204456759610046406339157281126864081783114829584581985710671150281975148337818674243430362013989346670552344715945049948500023282688758444519836157040527629731059856867576313634219037395291810138439383974127303219719747913288798489274306587713507970959694484648640159224688047700922609712229296535353944021100673761302276543628161881042067167017011204200674948753225120132856058510851408193189102335216933019216257982063253259266794865884006803383226089327243357787841095479091256197620026312461846416640838401081712078939809751426995174231298455148443343298125116398343717968903076247387419557023460877210499734053733206290269395013983405595311839653038873000329201832482360935571299824010831177525125695679006475314692241223103886743609573123291412871177275509650524407672305416222857527950885401365345288112099956829406701212820512993782559514830685300403718853987902430078019365606888347824215008421071561229217586127566856625307749725961859111941228639476422341337053823840890532030370600353806150341001858493262235423654986582762631872855830470808453491738385723130980677814996378927013915372429662671364554735208857329099387312465126278730342153857726221537413449370355136108658356190262978662857549834620436519246022690804571308263177824238825445649625876363879980239520422462547358649643413660068309868434437988303536973755468469425468490737496253579886475262785414382132614990620972482732510559472282504815003507646388903313939111444657834804746239190375951793043715129411531604493984007468214575930464281929513333608092559070185468350213109998887809274440975784481237285968625661991302910821085409449382765254363457560960271466435702310913075222825373516202057576880246936322738172802972381492443866374703386577172372604702851804513503633322100600475138775081869892462590526369165288230504657735102551411783972566078215705436745299081791928243247894817607027989761634024590413618066703652813246105842901994619223361938156034525046871964194564817159200452722826179562159382287355722264965493959987797042420576023470210242092657486015936081877826753816341962479894095085327954604442308590382433699693345600841598233951627346346041376440372207851791869539891571566619869545908920899521675863281524238775577048461912852858968991952893049096618635777488799549995141047255024242561905333949305421180081256861951074398776186644839623832179499780468816601312676076539276107929353904333075119239232170106344493149132954917504339238615295184261080320863487477749360571872724029740428191892041790116284986608137015503797777357993323987613544685874065839932336946990586604965404493051811377554137262016468071841275303765247529764855303201454063431744976019225826935754735876406788981246023068899329378597643492891761035622656769119163073267227485791573260999452736751068509119610172296373163139313491410721997177937025301787175572097820577894177551370299153474554094897302883342646362634921446883494692547202537136033845889609869298803780780305623286264057386991882491725666278350697067585682422661774966668101352937401605010814450139423760744040774769895709400156227400508167846129409086862244681084461793016160448505996631600300051751169963230013957380610934178831547764627631125852628708062112246880145617580430651533498560421980264973317822350623574730256245925547036562669308498414713223199143986240511174645549399843304194324664284677908597283433292672099472717581897938265983956005939814478491827469951628796166056957355216266531197990855215386111666437951992318192183526229588092041471277716029572577157907653384706982937551844532270742500057800785201863536008186434078833924682028544841598392422799011684726720546720420743224582177371788317443658051208836491777489718214492083348466364133123672265090494504705519087664555074045375401770175539708243544489986408813164586062151078588225742710234027249136840975443210170741478357636297162404275748052719871534946547310595909762336933649183811876235712632757371987820202193727235321237295190354276025897924555380489666780106285898372761412062009392228804685122651624437122288502665534754020443857926072173867555257909594525656664491518883886768563091116868749529133160739254163519201793152006456222112918842074518156229149838546576361862668154966734209071911487061821528290714466985626425534273522052994687247108583189711113925140710509849075704402261881198679906628909539086544573847570975229101388003326619570545096632587674062034451494648837473527514260106944008826106190610144562542534959450592495803313066149796566808243628670677524077478042913910155960755569785281392418299841607413116021831746005258529845666903732762508542855527051110627399984626622758159967837565932062931842769843639654235930603974371682766345664937503781776796967691650988125048020461541856740353928015320800583049624861753512766862421788825660666966856508032639726564862397968599507011326217203324263401507028337530362170497520108119687871311150536489293122141961105781573818310498074814943160015285812021407040049507486096304153645119261180352008952289745037193324992918521288570769785006519273041013223291372559279430695526117842219142911844636183372640962280572826891601019129552083227637085244780653863854650966162813019446548880361316848468645948194591751409891723687906867094134661906181705403473538777040065468518917385211439519757188790666148751168938701178591112778441161325897713163520461629933363817598879305021009013418589480018267205113974771838802730061703293351462393402026132149541461618973075339949315950526130832909622667785560152109656120462177065716346913657766383792741358190892205052324087877649160825846134289852199922316190624687254500014498906566130121663868010731744860484439562602144326203987896384083605372387853910749477429540630925590151327034476146277650265877492923377008426539159531168274836208328110943984321058402017502877063158503744119346462080696474975117022685812358409213821563453831182172654855508657101341216930550552910084856637302851377194949939525023641543828721772884159880230080027492486571197016956993650985843752337668799561011205850065632186404268640962442666545394700568714900225343956617737284097487892171139639150849729536512868250356480652916702670204069800633377372227285587587780268019961605413732081315631611105229061994913787140817478867828434906581615311949687678140864994887664120043420348410848387257661593790139198200033635317122225061033345737041818625455982326860404035011450807910294766656939864615355537116381802231621476924448580188509428614693040617765477063968936008221256276619702903505842566123095018694266107502167393922413792834452247189112957011281206626299995691190294191440569182984968609487847984152027257288769753401238758736063807783384263304557118412384631207797006064116304634848904228245511338101139469001457516011340696014266013454973076863253949882349918939916284989344676606052231974214081767686514709746847122195265427712916756488654976839380952633240765724977539427857637487793211923710330281449766314124231297974757380769518446368704242537624414321569685694160522730302680768628330911312600658004798632531463176785444243091850396774688723069940393983058255415074032476440522268142731837542484606424033771472643960380914140655240555734377528411519142107093867005245190942430384489735020181431899668422650380735403685448653446101834920890252214521278657019599848320740982300097274162332409001847192287947260870531999977587721288268857917344948532328016693094533607100944965589588797723550464794184954187959161515852351667725663203624997095237879343291038294898569562810300824335215055868106161811944570814489577997124722022629602701666817847590543228124200604025367322115461904748605163686763013127899156788196241266368209626517077515411983759877121940130480486266599403221051094390305468728635058841232894527539508419399100984518720835916996447488424582398275361435909119205165017597321224431286414942127822593391877870389774368949960491584902271470255456710823247526052255769296129942724661174769937950112717081707332047267134818415681205796243840616328430775986252944595323336540434351309992512811141990591614046685567899487347305430793452859868521324255619050327778220253358374722664730008868703668496499113547587897994108140983015385965317265964571567321133152506619206529188314326198066487910381703669185256754577837017534990198173514035015381431484563960401992408206265157054324834222064196239866414697823974644710121375423005437535077759526856439922433641973601239284771106159087079536445299232486771842572122673331295529310907540114780514811162527805261226257180324113497322426666175171458444687347133381871024739477283538329047458532881531197869002781666024442243219432499628738699766763399466010888338668663957584513808183315461886886872604342992684657907096553974478141762680430160049494920668248933153786873618187167456928200899505414647108500514653621212495192671107329711774795680572329678383488834560323189507375149835694437744684522706276141530121530992312157017507517943941487539752908975273345913690991895381830044937389578573358055181137601845873797727275784756499646420721916722751231621147060707186890645969278162455228161620647688625392341287688690619765579705603514923372359280457351864485502668181016725005561905458433095857889901394038051866560597914859826863210178911928217809358010508105828742280523820210842189999391365229800472331457969235147244273787724555223675896098165400032164926638843175323848867686001615403390175441237639509357262409984815694725872585202534046386791174591741198218331024999765761104646367503649936641988520424439477678606540037030054509347808013275646697295303043763496354778983208221697775933766293059589715608501975288509739391399208538579317631015319290540212105704218037803170001236892846717535323736227873029543097070733668958094146568772607646151447344964122389120214300353006756874109549437968670150388235690068125702935040317633889213543897792355099429947422412222264086776816750260259159526723859950738913389959978998965159523802909373271370753209494170186180266610683064854921905686004009554956998072092455310435825164319028209747391302996406534502113788921372296818075101095502355540365196545179845561342520505833011172933464807587803272304615989839863031181270542846418687342315203746536138871691822892061487650251463937122274205528301699143778536484800381243742863370959045495444526025405710332719931918182470190641727142248853369348012755697853629690036368915691288799151773276013134973214306061971467529450129247098412054159299611557724272431376302029057191616966424601300450322459830762802020589769340763614561911040199848935960577952047164761981784784052484295316996254096020269296427543253202116136718287367948765448082806416753271469553680245751045204760641331341411365692298850068084773398366027855317721923198299998091116975925670164921571183592498983394432956874944302427957489329241880023937071688092225186927662991475361139623038089932560578298929244065187296004139006120748636085657834715361008711128405853019046064350005435019133641352210758642720604531972375951140548822380890326425722869724993779097275051501609618064635864549069861934731414934393142904708469627252962939446821525576995339245202623042203057831327886106119893669688328876322159605224161912973077100672717148341601146762253709731779824376370641237267295902998926534324540992849130545655647262668040273646163531228566176180421810841702915135455781125258149095842292661744772550194536539038465285394003990803042952239172920264116018376093288488766546305613888224211921956250518642405991717177190373396274846387739623088931127811653991812395900020880386893815873533822222956175166063666007213850226758371909942411049488964603134226936425834994291093132817580950501653665686635213789337359914918088364800870467828514713622821495340238582561824631573586105154460351724237331829154538890406072030301894972627012412488413680466581551981475358849755357714830409059871209934798116709543994198221476143649605693453506850918871599824449176013723612595370726272522633384001197671922190376030453470541887621987777251862638508528837106010049579085608669802620599492189367024718276074226803124468842992214078968796351825082436716013630675980868281900540398377358587674834120942516163026548195942153189766094131639891380555971155623319031003991408900786773904215749039305386344647236525333746393244295231898054878021740340914988925697461293411314002490231738436415160442892132627820759801671874678232180004531313674413313913501781762220124315168204819857040044414329836005343335279969923864727408063968162170305514337197625036087296159316848652387092267234899213431743736740944075290581643454765030346033605625417090499839927758648175255220270582932065553459747967523609676558292309732394367533390194814855903587074777142939581597939614910402622663545038145597516970132101059698442882784904142336843434252431846416148257547522426805108588188999484272835091806970649387577242873352822801023401242986783894632538337851328366343189110923049776002848035311560410799810677907096082028707164799034746225427538500341280755406136737676403818573401860779881740624107586400500302422822520076035445031015712573232622160350942157651985525043758463538843793578518303889389119074212507529766718851589636909162416857225096223323283586860407222632638394617658791721066486954514371792656081248291422557151160516238186568690335097859366111729979848967912878667100846285577941582537754207714634729528183148146404328262707020306616615977268003591042530625726986968942453442080715446200429162661074415747697219449507969188381308306408301045747514724568130843798129686535397592106180404898698072189836802274713199973844198398714309374030342884493846223010831769431417640377048603024603084761744479239097607320429152974135538345092934596204587172714855501615819158684123153311772755001319182907291925984468920281017185532430169042547681938659076277162297139647167111872471823990474894087953647052876132159456560490795183813640713540551268390404889239416819016620852612645625912090138649361812177981904238587205830670879903716704053011192781170518757976795671588180185235586625525296365006620692005931155711849514863909611110482427301123403031260375693996105533103097071384349492941417451162950061322505068048828251843962189064707922698455993579899483856711114099703924982884427172309475884242556905290791392532457067869779345957338304734638191955651679136864066517533999153721675267094184599157143792452541260626687701491309200167507731388810380529616410896947922071669330515631578298779054138557682420375451877891160567934436212686300386175873665596041265631724558435636068719177366761022249450420872665610609748339655041799627432407390921258762979853861822640260934761874075712555071940323391950203707537424429855879783512316211734896925772227593604449472903754657351318084687630720579870868081432895966658469967446931009320858159317488023165821181920198588209531642196010579163004929312880967123234967364414997857518418010026648918592896993811266854592006333049801593839774372787849913054667940897072709214840647916012293958492429390982521393189873452988029361147043283534470999911688095614976692553296779238160912737014719803036481620303877310638656859895781695113044589239748728615489852177366248971195230907647539446247677147256829295801462297843817358745852486285846963890685160422427178096278219437508951499667021853404729309522860944721787453861838602433524409829763161827509179216074843147937147410193823232467969264832753536428905486877222944532816887197504829982243265798949618492646832821859574256219338955027416190719737347382710068871612738943577484851878832726757128256999559893839385830138756912542850979218659523740021888361771143371938154183273935719008004422917979171145814835072434667863974064675490054858676321657579533169652339974749413177968935715480674196380493457184538000904017430234889538180259244229621257898827359627882540705079944256618807784524945939323508823014013609728384761953937372926946364506106280796449354765389235700210576550512623809476799063415025675392224261120871836720575137996909503059144345159707616481678562993222296480538794700654800833152913102383155298893166920182615643569952064122970421688611123201834548062464975199420340607431500271568978471185997293457132517533979083925903494079777801392920132120586756929694827074590422763017683852137766100551967029201573426019156074277163905990610652133880405687367586919806985613498220737223111041448383420158925411448794787284826301625057645343406694881646933454936007520889867922701156829745998932833521622069996887309404521129609148700321477934246894339912530703334050923142500158920119466911240934212067932693126085501031488552105465526867561620064730301810844719604215428515934961062358491579990421734237086961945663337577747734454508497974351700933521041906305539367552346987342667267108620192759847592245319153596359095724873435724295493723490445071067590380251960043312163772772880881015800220255101792764981580977161805063584333522134441745231452410764478271208146237861504314690780142823898288254299619917321619680534744957036208388356384952739118860516490167946799457683147513276531395714463481262802473198512471091288706622056408208415903278080585445000703978962091049341692665261973678036239582221242420959515629594038140720018122064063225679090279567018628722566544223496969261058615311432271909183427160127739001918569278809752743640116056741958287925098129677064533788006519859215385928062491931792541119343938898433580541955746086458071273744473581146143720448626414236416479756501091350971305870627942567343218934737440700433603525471850747836304859508614483362431204599565751824486504830923604667425617195424884696011650849140515359379329257499980035025791662881733491936859192664536355912453608479861022689217740648931075826936984219783428851550487038727331642160384721231111358576703414842472220475396967188425642022093872150530692286328594519709234295736553107193002026242098170894127207447301120287801078618414677905829023768471649282409868799588577348446060052444036777934915483681067232926231622004174175112181660829062570574091950472630107389886547513644870093319304779478863414186859223588940688232897100713377502833976970417478636206187925948104031423847610762741743507788413649350108940035633153670451671699974848088170900394810012227826294512357986651006969660534312184494205547764608833991893773383568769174903796314703150449352398443939983084404491981955816890408664733826671134201677956109639997674783280771919293609462173009132137531966956317660000917297310852462222036727539057133168869666169531198316048654827537532355975814945558920259769250312886298832122530754322250019264527129123842313533745285084943306990938610572858937778822100337737698527387743408553306761831633485539672755890834239511828055946226548651430667060555039292341659981215737548559904714644694816245982350827392531009446248978862319246673097632097752770787748220474612146080210678552466668694304202981401082722807162427299439189173253023544993331954475816674600805216195715012955106422323130593887592619417028681640454312684978879994186337851609368115875460309342869284053884721941412686353133012107982043078062036609456048681576258809489104907368660981049876312945487275911716040975293454559919423556142639416277140648707266197811954543096092820959894149263111181117043506276657958045498354659413915463312614373206445529888377148333252960007709297554034728679651736030474443226468686252907632739371912574138070250206609674172639382720986500167560803803729669980050271316105209408016674223136472635992538677698034541471453469485331518544534541212029672090834292529754543044862542625772457156166379138788937557141079657713908688267842685132469792155578385643178024192327808696631378156695526059723777202145324414090603625788213570849937635955809090741124790613137202995968436324895188947012442584998450211514151660462399938849844746808822496985667146659870232041542802299542862832998249500929546283507962906427175416841255041590961773437848836267326797332136073740010917067693502931631536181778318646452331094691012443034858680311606123556272307372980049356175713346842303924565575961970822715079281550894239289812311471243496625331897727927429916775214993233121791504951110067672609328165395232698445065653994831156493598659697465491468833210891966428047347256895915180818342643922373482663795559293544640537075942160053867818858615727280330770543680223356013633085158773134454921642317480036137576941831048855508056093925198825869911825255772154696842203639381280863663513099760662562842660243276941081135668005839717926584123977780130700091741007206855607670299846458601559639963288326508984585759174469794198652448623685537863141508713996259358050184811024829790622353178443888026794253252344179238842692969205573735119123330447965926224735285077263268721535234818510751822292213406964544188687422216438820799970196055064253536840686670845125943110596988095865723729529979304483806215500615992684902645149768489326270868258286366836280434497134873495881986213470736080376637188941571161697371990578939845955210370302904513311403461138863268473904280325807966634151844250294562677253846726471645750428410077958660931854051771255919337460640955649500085586241851598124813818950351628857976611981356786534869162349140742594432942572578916640796539898876673963011332005154331629147464460584317047244370102782421101500826843342880848531747806288332153398945846561662211302965520518376286600920509602322467753204906853947796833529533898931447414673200636868928785768875144296704803313058617402530289254245258021289159411339435494927193659672768880265044455580460889001073129408958457519175069251991019281502140774729370839848353914125514357024742128273306593240085737024060182168120287491520525325785016052486404561824739505358758282741641179766117543940560188992417150266771336514568074596586436573712181503855580880116014583634205619340134832800811678320082278973163855818264591683637784730443994884714300350644364249275738462804757552137154211151603185151170694798903204929011414678932359220041300993127893028791028991315849134154377119612123876925902966269834024609502183021799980798617927993641107694899093875623064052992015993848583491277397984556010908568541997412418732346538861770092974198447963809939056584372838978975662533011334381881910458368524558218300950571038593908740057943976859704699003020240181328017464199917063085861431546109670800514219497516924489994251135100719765523522377013379407295309642413701716891229375841506686781624652821141451211884927277658238543414611852310758839949921546989151517439097132018207912125188013258007012396453255946891708642090863754822925480305995518001414322950581533836768025212759894917206552548633133326006723264137183869002668028737087801790114786995236480970128807710145028508126610287397162548462216713882900064574381293735774144549651355288684524107876372505601954751770332693724030092510164987268706033819013071895768352906125576579236971005781136207047991116596794964082277827919921371321148562204112016503412265972725172050045484658375105528749197934202403280077239824929286649548884617626688018654469725383159502049581113392326581763902809064707266584308062649734029234823163122115083760871708495206110562311429059897566175656809575451199358035030770024539728660093660882629108258144449695404446993167072118101998276071732401530803005914700951607885487679822330778498511586449663475984319440273332459628428697483003583549385989612001572080115921219637473967585926634815699461609277379838707317519099297175504173412106762225765297788470797744242661192488146399485637957469942668626247123938656530400335370446356286175097502350893651312040256748838258508687539101743998319507647562714568311122362919316373862148766906954194312126872229429487643215119917943183410451975623093541398395527290913843125289438553455617059724953376627219346262165781199106834176602242093269020764478762962511342133837486487527091007550721344559734387492128757803105911522489251636406524258571243964151517647691359008959613014432846355690655153001529699692697038791465714860104123601802313332353161931247593291371185909062121896183148521760968587111054078374826702326559868482758399639763291355180202816927937633194679688554486300136217230582984399452305333667236088515317221334526191261849894870620112321562994197903992125035849169353984249619427868208370383887672561514095278594627402180194537354821012251490399380056488862171748488388737039427086524240497478033753837937490355391465808865492102500478714455061754652621395089787760590958037499127406794144920945247632618382218773380792928516112052099711668609944246498126945300349994962960590179833753341713364990607593869121722949275301677732534801139729319279823507535020755181762027646371533684257516187604741840716556432783468225929222726449183896385065493623035295599758148870111273978931571869685264480324800291216956040505393356263149859084511508590679634143440312685547363160064594844828341050559542649170707492611030788084372426173779443845631584085954783526418223251622761136384131445070693992489677388840193400606184169513218207269735897980471796618172163141206841060857731812136128154511142017793750459759785644557628558017429050971283247782492097107853979977290033699575664443999867005761241345127585774895474813367720119937337194964404753919101838599607065368570690295271520772142763912968147607623795552824621946913610218966728997554724992590677802658708252550329927560738438670735860810501157339552034430395693981655128427364240470359902073087871307208429166611229945988193750623251498150343875582275025251931187307906026834292160391642874684789111797647696320720778796079015290658933610595619461764822181072195055960971541185920658541110980127631533559612728725849098779215912691891623387346817207121317123321716728877409231256668582279739364203117307184440700258919018152489353441385452545089508767809487996129831638434639116064234483626996241425820805774338424377555332861108625346646062929871914331884453885043822956657875438541353828171656454365010253078474797281714467974295116089215035449231380198209784974776341829040638907143777768267200007739564397239337650978956628510994421003098211351068213988455858526110962515359091922348017232894105631210699789254975990848970072845458987031817273539234062589310787235133392006501859386342170635494620585610402369455394685150016713323562873543052176350677376838533842154183985898437050896234535349442648011221048140735446544409628324082727865952051183160785382843382004803094615374896921274855630034981907109349254861036891117995008944111156603192480543366550881847999822617066562628894480917044369521881662257563455981161742723599043543354073831503629721009964553629564853259521493589741635739178069516369069762770219184840066311375082610518175278642366597300552022830436296828789609135905681125821878928934094073375161624522626225451370771247435844027611743531944130262466510917915982885803791544385838376272706735018110421537026778231272718371115286735005128896989053213103653963246969678514440554722173100742551469861759007792986457269215720192308220941584575676512471832342873919609648096884612239770961186762341240316799227829984155750333168234678392773850705341565142278234182528300007975471636901818193223465272362444362171068417055122846220857313125018802932108615242953111443408452301981257819852793464459631467778165786883851917413025614768700388502388982701451076389893791448026586212628709050343734340422598094619580048803668075712338257736472844244001921326625019471142227768361074135485519113824092968684955850260626518788894990415153685368998778458497913739116962688169801502948320318543440098240698974829695059072255980143087353567735170966194520745578715795726978534128298020715225003678907041075992590325491223832680937874507283875399430449296713386115902372020778373436240996131267594690823791026541759880304490871389023352402907432928392847270162269729284524731806926844465494250373674552740804846636815510195720135058457849903145805889709271442142498058001375694893801267079567841036336454215091477387711938775228517442904205636760630906975977681733532770801501660966922683940020670586457529933981732841083262673671516531807705250748067925618892320393591626264673311218653755361674813433071327533957503858722866766622113655615592299136996618319530785010979246955042873882517563714454200369681882069981469057206181691287733287489136378178439645226766675694214464600511917403135964536539098014037666690245722999906423363145639537112256107658111382215039075684216819358746882537074841423932055230982468317472564610976790048204974010239594785457526759545096040329365138381714380475981542780871352788844364930984236450181040269552157387173108869490321703996952023988529714182849453632581999758161064178983707174563100364584571880128016959023541760210928809287732541576005670229407820284856705582393763722448111561968641693987397799254362674531405619027754637992983045906198458187613600310933721958887966539701894086563536841138066744317501982057784680952149140476383552766431124191563507291647548081341361610979790474034838816355802234309162007519134507238251923048899810729299223333529552995428839672104927289144719517554802473142390427189997544766426194398120717759484125580924502900598432769163413931453585302304307248639147241730058877566531459140729128548711328123519889213354641486744972891234094273666192175294116614859911906814890269326625488074306696329457190955490705176472510710240381143196599846728693505357037331232065125425093227259008996945225647276880156441006814901218981542159122927590573977503654682591699459542902964959955423874330962499639004244041406621880384376064558511578433981329925103905062757227053156021847579462302637602048574860939070290596888827446789606246106524411713163177409186392709330396596529970527373645012196380814015533427791426773769849250984001835558308788898030795127889939054753050363170092748826358420959606110619615590231015455999805061993778051337445270000336106084472854664813338111256358379533051841603688036517332345709636071320543635310665343335535231230392492426648602942848042203092760787450061709869265104858747114720801215337136755865086982942248701306195927214315860509288206987144092684436310494041583162174517978231416747868060052170159931759760295282623296315364722440079600512010725491789519449795713982286347745826699151231124201207703348427368833536465318106533170943106984466913585305435305428454609160465231927564281291843888089953815891435785634927107412625363313774768625146307705524792703571423622541687117972273849264349234336022750599227599950124858711850987008154153473948052822396967933507631021570386387335392793546203771084954107383124912377180300805102809674849580660684337724865257804790862910304730307212710233617073405146883685928434490916828539976824983803154001520126606743011579030993402955212559336700115540303514952858636198272162105483431000986090990554348644510490969547624383458564162563411863046027102041144451986844944217246104507901703894059150021655756996458014522119260938875586370865469015646499052053625354010240056726589883174957665729005162277596821995012560789093913138796026147296751310745652245423764466762043526963486125333752274221286288746667564548046324822719174639608174954755922534467180976227737284498537471187856483993664063804149269310310728041130286105811862855558929403752059011595368704121994803264010805118833541016343792449342210042130510936619358651519461401591694484566581745683197693346598692109303616479011456485947925396881774091763273834667924133506778061125905091655413823846250142766119848234194093469456367156090942213038717113827498886558647503138966121423723560433464285848543235139584466315713051830844805536717684885072626888895356522753667237984027817970452602105372426359829180414111630807849302499785278743190447700326417232470745018020125493460976723816169483088520010943258575610422706149364035998715275946895805249978050333158874466277746699025137196103339037571151301276289580735182790936687211491468050665662544235821988672778859073632876163667185638424785448923224476412423090671581320635121693599594341561268742159857407940323226139300431745839709439976320645076070906139227413640935445739690695977949894226291484236177790727910482514641934655311907619004515467288010425684464621041608981840495364119408969716281159951847943089246850916009270214336953507949889872130154375362464093329724025450579510386422988751617399611765460270814625647061828657007236248391234928660962724113892603278356315312477503282439227498111261514912278550004045943208161430989247266150988034147006644383937984150066456962971642655706130828154451974163704343772347189001535070172921461095602737770280480606676934365616528180167893658080944244426894301130560066626397362874150898555608513466820099154014116935741277527823205393812937891645524132473517852231065766535160695961643131610838010901780247815813302765839298129268180528447140336363817621284350194625172091526963144824360489321065955684677448013159742148677186974558305801492750886541673427311030472014550691835439337188482763130231985409137611566843908414219215908573741679789013373914670796712035567079140569120624131447228236526848000443251768252078915407397539485254928816652949284918947436610257170001515238644819902510193120314857274815272461549299899329810363447568861202275678576976959559766358657921614519801576813514394618855041600773674472160177696957580748503374768157460821290503223471680051253027946714916924109758409197121145009125408132407376854585317972837544838580788193795650002940699904128606863606033185898437467481707111828326714002407090206329606457215506902518589117333160929633470621894861861475856684283211479210278284415487194804698337993749796910554254598549874317791898051758719502916639931865976329747234515528794636043711222437623183839913734242405027600802024993672235040271151347858561317793980718762815187800058293789191030614277290999151640857337736286427190990013049975153975140652167756838290932175751238927711070215057492663985136962176468203789585450408962285181547031094841772248534333655241706987660382587552425231804919549027185287841525652796501658993503384752174035998056381625506134225222208732266497393356177822972301721142158753271067575386551998088312277237847901691015907253025006577376362801854690077271657811072350245390867421388158938614160492114771165290919787527846962607711874683702781080682922210434548477666179819322293188081991484531622995791761016981828425405119923789497773370973312142409478846081999686964032290772533199718214384378045551089048958098499438887577390631131471369861461699887756074188285225708540120145352980141754475149465990021376379370908575802257979133119021373609433711151043085316487711324452193574245876268741377169267177305756792533674025105772894178456647334153143359340726091637704567488216453043309872638891116199643689076527356336669852023548537776926690406355715950464282027573755059343202740705898905307532772824728063398563651027111054032197823914643418067087560148499407035376764115477498202478769291841614136863671714452560095184743724210485852314041426697271546884755438494867277883472933288430718886883891660626727968624932088956221243976885594475078253517904008539955835543750940199158991313929450574922765646013875135274045538930116468727361738176070406063146457166449371265353313441375941772354559981847488706147158654450808271496757407711308750601915563393978627387390371995707307010723586657305425357039645104942294796359153153699975487352027267031165803659736746087054559172552383854469578567755582145849589677694341366513553467732897818673485563249350371286953465484504704387108109651173799733340749272084524006713291336633145591234406787546942170237807871561184791511460959939652187294105421380522031179553524707560161252831903616586309837051873117032624110724335373261354724692216598824373287774045291450508730469177789620619034018077926121559057769020981190087591476567159561050177482576487983809250332957654977483544508154091895044540961131389206010796580604153473459248086688497890687943615308445986566529732166904480792751132292621488007302910921049838021030027957357048543686934464380711357987777311350995218401329133375075837617093944807725762997902898251445026614215309541150115785212813825569632745700272897316412050319911500895516370649139211359729345587777059553284424703099212793016490843542985677927215657973251581823810226255556064499437113366570534421666882215865314080167889653391648555988200325667206546509504014676035151299015912400900903341077832632266953590555202453903214371612624177348783381680833632810846091723724915183102284852128289989833851405989911515796412435985706928833227459051630718503355592209737194921404732857876526394160505330958050781555017672419984049827509334771737971351188527552543574273825726301299189023982820049959855364275132240476405698727654982971944188387643690681628896145666666504175548939016714600047715291687629980036215346228369819787046380566659473194739696397750207416719503460206620058618704500849277729371725260551875427570865534027364968041226579099426587467570427121590563636921209554651102199479504411771746749922100764080611098917855522517053147939206041863706254770366394175922360464659462643924608197693091087759731592430550390134592979915536048618498083831365125545962512313769126691517097382563546332670099853162738013716821204113905545961673052437207125646574346391787531415797214736614578891635605554678871098067788783980389877501594287607111240060701446601466888303784326125286217094667736983182445627693512188693386239174460706230155972281189122990968499634839647887254454268722435531721288584625681220126430616327801512519440075472466188789981074259807901015327802191770258235402476349796289947154497646636894800236594810476318126016802995313558870774593698546548645898045768690073880313257022861401313033401338158034764676675058876790834995740026180267826738809494898771680014572328773344532416755523433956667885648020127026372665080453832770799477427064019712374521130763380809875494829279881913472051694217120689870695497491407967379054344389497102496009714261652475558289767481304780019525130242032166805068173663655900396561449266825064175819089978601142177350583265572179250545344604884986235719757676647611651643175819258440624335089520239068704643354290446133531998796979768089666220393468074491968512993242065352653913078990525835797859377034695538378357710040368942852401298429497559059928178945475124380938570334527533823080120268039059899585844648562021088774933394306669087180383873936432084436717853068051561223945032560897688398521320007425412268490298650789811607513100285259445676339756790196350277992437200479205250384276461713751213235125262541149350664234309281585355486221851053656687854287440800589096497595352575563935644720518806024433083888755286662481515908333304271252696179097607261608971515127977595800866755708683912305001208337597963273238742513357035501834704910859413447387194193124284913036842225473697609765847908193441669953537521623643936296852045158471165345864092391838857298266608650650017633133422959568644820949213599981843670157008787692825419377628658505976498896643170025345804386754706230580683587648728116291552604751464086895477172548691571890069416761720972763518226583038165077096267117433294877205456424275227331460538827442726192636055783471477041012289378900175467210410117958196755012311445200646590489391746238379811520266783179277462987156910051682636116223107502619040989388351962022546055190142173670756372870834704225278322712805425584772955335735218203544559863970009870291583578932452819660063167318780759233862876276895811661065414695539479514722685960333434640988688545278641870964448249110903062121750160316081100967780237121477927642167866120946562910622692723804786378298647469869828286222663716313182742820663260894769016112986761129561428068472305298360769981741020807595232675909138721309528140255040781533197939420979082691933733440569008917325190727139642654738295521757942391474610924625978512367631758605136094709233222256953424691528759771563776975463882471853391770945446995275129775296736030078637846028893556876248288338404831957414191435695103991119846658287068138638641775522505437434833613074199897884091621133404190188404878993944910244993188135540193903442769822826932944053349285172902290143475158577408078860892320078256098275365063011413107537689849779441945834553795981510673097484829387260331931192883716721044932016250255832515695005108631384570675674419386204534116260341229578132270058449969759532520414720202531302628146685760666806185323427991673186219529198007479900914531324321777261445099908971784144617972383129119918446215805129819367580982456365335509607338393955364211565553533232025120982313260099195777307718483870416134102731798018826492759203561911774804280141893775196397855141973507840883446938759537347694674547198861685106088308060949136027204179305331287087050480464376139948088163350002511204276773514024629525258976520866545097437834180893915173500596673257457589263104086716068094592976224099961009944665344213263748571692515345707726318735183310476656300029245488259636667387094404703884033451853050425495963941359160146320885276616008939886574906185131524518973622197047683277250490379113309082244268495117377982097208716199546848135875054702917244344973869815249183623729362960186985408976405059172900739349999377336842557542889178136313874900194742754821090677181875306661069065633042355075462838568812683084975738625610534289235562796375418588961290888599397478588293372007275340237260582464731887609332591196973161459470880081767304733621986451753430918103865629105245344120838486238486754220623805083955622903774976304197178662308819342375337121716781824163900626206677722698124546626525239601860573582257350744480529358357285575648292026276079968287933909210782843412277090789179295065034358099499997626684865078370625945288937348625122668683945426130187881354034271353919757737799032956261487935784685549783483739137106704819345985480840375997915373259702708888409122572478040660648660726563180761313907385963045873559144356054188173753698917043411634938082386952007270816236249022829909375924469955182948727074366257567454852496746939628931705087310414571410911451314568198018919104525272155767736354685375193659482098001284983595465986778604144161633017675619488574731268650519632741729801630373837458961453235634361129623485337398205451086808052995099340224478444500485417537324350839537016194865833816309373821810474760511302032270256722044990942733288936222920091419067155294171390933545983438475780775439998904455115859123319697944252684403670052004978983690949627687030688022667482889927185406413675855095939469664237362428198009197626755680896534591545981219333423612385515376432477901477976259540020884726285095347355020657033155633838087275161879589948640559912863338686927276070707447076954372952175815355652839130506445351704030584043161618083729563698723986461783397063963593965260363657282529592868394635902327555983135520731105831702747036216149166389749659303255129958004800240520157962310261428133729329300415425995655745853384320900167498985045834624875465498563734215727083928092451315889463017401359762432377470376458075888810319097094481351674838169697003915580391104504629836918336727709848709573910886114812526286227044182950402274541170529273318588128615912286031662482920138641442521927231876050390692204138297746956175613731299450212264083642413064716538109996188076076531785939966117390587506144985443216697499542920806524065850609122390162728490210097634660568516652899113076686735155689375398074152784902653131897255031189090115584743156586963289632082278759830287892114759095399349636009231775332967346654457103896802711680278613516623415455080760757968315981081592958218701559037886995218524307438710667187507752242475516937247956635923163349764933098088736298096105087558407782457628307155310381824187102020012307193280119716415368081243613607302404261348458433426857122816433439896318032888933654775226157477774062278944396207479709024807756803335061277486325472519219182442197694937311354709414250434861313489169851796242432372560690872545050002342052127430037070727901953409326638419940564499171550383934821612031609069496517613977969822070335864642787463895942719760774544075723935989896191021003845708944438092026545763970054800612198113527373505913933960108082732034147177222286570395962645145937071219349204264603682585690766091810817929849029594557324389934993045914240582259057287943911333913633347494573519442245826425193901846137509669339644220501786339110140781203263747867355020995761480009208852081749428081484015215690824327425801571492986203186616969896636562721750376369839019075700512313622688107005679718893241310617668149768365772866963573700001032437660718882364917422424178702101266249673459341593561509961857864403548434355668251697385725320642738320775444470207803784195231119924880393245569957145752474759704051328196246046491698819349756277804189348304325333619842298125747998129955588815155242634019583549540170517701872757384386123561828720226904513066381334112104015979128075723412943750869564989964550743484302553514714587456396320701273998511558794137798384359840148787038450282221133739124744470618309770551836493166040884900392133915960420252831712090466830902933077167024076169142107967175899759525994398810446770608129241418946591081965226515920454974224736855517693141572850054162611143210957836294763710811099745387380203961329275594777610569894089216808195833941053660182685195112808261520564808426152525384915269355889275962317248673217700522051076241687568287937701620539769818836354007178562713135915442649663851811699036540968262542014161918779438045153558476240019777168326150984007512248195109076515672624576283836683137749051732591425097999602563510487688721134841721366786483028257325037982150478180311321736981666085192361667104963029356513720490890969521727526556770242565647131960729060637555744794055833932043139873607393414816743656231793904359521274742000487584669081560523680192344348389553589774584461715986786824156233992610145153547259989931521559528416296541979273739790592133526202572766709310443401041111750169395717732110830729981510847121764924603205399461993643631568480823170599361475359929645681485040834146487865397316734226902220239983892869742084337171024529915237126649359775398403646963892172711917271659086815394558132389444772951677715204310100987015541082799046364285748134879042287716047133318952044968035039734962656580019886349342653158192037005199289615291392946940060188900635141138962352079753260762172152336280848317659252669085141632806263552823283078949055756640777814021212797172321633164732445544890907593293468715340801305884584032082555079529566755410456303113028415791908246715105312477506148681806023970376947083455226360063588469814190036498244465295911448511605561624392125194103449861074071919173184950283760704139632359546912497483070571577275054899704405322589052621489616152512064147111345460776597326880341225530828054340675572580054287540588717892829359074855977006644636070523294014279147189294520702674823404875997780106488065997792784476514686969342053839425677467169750521932308725688717451054021013555977361552390584149189082840287051460566116833346684936481716230614951977913725226763894144710711259730761424260146049689066511048883799987360800672762036197025668616927077750311211311707785744646295371057679962817237381301268965151995143858099795100333679041716601649690155611141902365357319571900224178863847247528393017833255139674155096539776065627942104445162495623010231409191730867802549316431169806404072440107519213815054821861708586683722076703126157851073043627782594987651504012154505625986692568297040790460202323749698737986923933034247655194055987463849300378680109117946926412056645022915045985121618222268363232904378994529232929395795618702227886588862682816438636409662890519050955315074945065490720243911397930625692362001178002130173547022021625081280960406558741946029754946805398317064562306545670994989403474035724068882735396659777555290769217501812094450283330525611750310320853513099223638922727331893701598093754364002500782842272393391381740629800697533210478911887104231216998363022794757895582626818946399188280005042062363661405670777507708929009066733577335277275597493349849998789616260705992117278307644662199871497748641467205386744798985184894023117011962653715674280794035384535003016235888880543019615206981726111238766621901834934329427063080887452934559789100787989788010060908793140134641060685231324153997391828824001466892886013876815866946394274866753997772337283634099566476218928107619310306064719708522899354531059770394691151631063906112443276901928856215369589975384285566958448370014311266732228427698818130540724267531284219424778614160154165156347203254184296533298079639263787787214134940843718786042188527344783713636327550482408454938798384362553796802416148294825951758316222688304051050368280056996020772325685088864703154490433213257014393299701238038612551066739906879037329122499149446547120439158204371113908700403940164288987574843281362774092827613104264831840445121048857629095117625024299357900557885112461516537904558321673153460094961853606030735193968677503834453737942482170932185223636505103433349889228780827412921975443304876375923441054679858811232599419156209585720676212537340627213499439558565680057566599555267022832853250669102674060343923529474699939417226709005998697974674933381417465281773270081200801690478961984485397729057331683314889333812461000313300780982030577986594820999492670206297879827139961548153818501660816804512951808711203703798571291913196400207827782830972043985656151246825422325543267846818093080520843892031895194852202587314995917838526631377828186437225223765935689660904994755969025046390199296085483584275757993458791315094624491974030185311342885119553915803327843156033204179583486653368284400286074776937002964571084856270573425520694127211468279970187538698026797339087090819867210964628514733138037133377892136879438384421117563284171453286533982374994989934732808144167386937296466383193674530747041157694894642886328849838344987201143764442268390903182087836246574538753619155711646741306706369081110364059068345987308775146979311578615636310918987897597943807504172780065899317766774620223017535979050425857646656212146356720861567708064214336896643681880984236953124763554752986802191700575831249821808782859678542996208172884933873536531230001760852220335813511296002834820516138460433408165410574093469995627042554092139737634103987288510984839062307260310798417873409249204340836901168231402964782767379797074863053477036805907662894382874700637416433880657914425461186623653648337394527198425440744724169534281797169018588871776622530566362152829181760282701693298852392187340458936733973485024646134783681066236145957582101538019894914199283063345423630323303209734441627149041220160454264056806761753109859253865171497931113045237381244869699358336154865005156035917292062148734661224475435451585754135717217684207149209611022382863669380461947880621022965662549958320538897141405264626248533433675709129847576793440057726548592420861197691140072367506425541761768273995700908359842048972461291872188102534217710148192220974981989692993813022878342593966433669432283658789522862691591039206686794386953055067508222059524730538272647701754399168713099324840052270184450302533124162171891163776667237636973193350805491509528815376688158721456608102278661850696170068568132135051237055147309398287669251722660506770464591407568954759416661051646819619112478948902117356797916226368445229202701932786079838919259360146914408942222231086706695045328595854531031419374366736120378157604247488636650941503061333886076181589208183465407544937075343748200224547244909769318043081807264300006927514235520375765584560154788513409825456507200060513368259125408198435258933135398643313148935460312500312381819325707986400864205657418519582109547692429034930640274189176393975564905662121063273101213912972018922132355593461295841839277478941527267078763733572645391300208739626759598214089056430801889142675938343074052117110914527728980396014387032793205968263861633880842314038917963353583382462485043435197589012807230095513591378620913524980313756700096565989317438867715894456004320123580397680672906830975447468872015496778842800270683823084551484745180845888241735239052371204488820502257884422735028075510250603799194583757455157960551857533415747228326879496654631216637525045221830557818648108079183336748438071901543031866840386006599927777825801548640269172342215549922392998545928416717886324201135747579439621734654335861274519604110882316700536823091848651919428711291087980625535711256534708602047721998938284353745574983567918112324560616952315146459580940035969948911778477008548457524422700801208297508834110633041543950388372442608601140729738710799909561175458397890039597378061249843093999872061946563967545170586514606808342114559178857032760526957797944791503068328018688263208935358824107644135390026962733431986322042003112029484955648721571043780098517889122905672595827011066695565465259200564910992432068909334211345520303876103003367771757526105918768955070335231289317768236657583526601968810205943723904267240555455861249721094629292432808667510750537235345731680208342903771873423844515859741268408974789863999046413950129935214171028663019146217549830994458713394147493421693123551851978165379839930706314571473960284893365835269406109713145038069842122244520754207502281117040058140149164867828526969447051019403260592370343831637097967270424208245194429107684881573395916128192703022417050595424009194604035322636886825139256723803711074166861771597542075297018697049519422982953437759872620379958854388381628373531976265218118648718033008779998550946613255932354342544880133334512351359336990235286953107557243857399631040830580205452800679221505856236709529779924187115457518641622383212389964239325088707993547882206564169738320039415948487793969773278553671266196545648796433862516400883729160663863607924656185316598578769379826628786106688500920948275250939645621378283599575462619155399676084816375921333299519461913831462691629581762170625580075582067270742417682327022298418954156713732856072695511157764126339575828798922123995909403906317615610006673744659066174357557626728885687207467230667138164097151556870140762449240690009515792466041597041323153471877759699274616509466583940851963134914990689793886855687024601380713292711645601357342989255816302739897280638350696066837216773919762822308513135709184039577507747757102036762182871617503741273020867406535031965813953460562200196005323906010877610795680404631110181324264906687921406536719375277399379698438329168316932165690401368696716848773512062979095844613850500892317695040102227495789315827592765849235750197461344032568132815043759371883391419257591602304122380410809159132336088842597884064582931781032588376235817482213853714954791113029893089075910720419721031814607273520294829658966945147868735180448596764240296353552863297535729594046598008846687689958258349267405696242912383346754055962282868543866673897514985639515566005344514306605919909535854693489184239974152502401102599856301203376817802202922105775588363864841100585137280286429801433689193833239588306319609750045503351463637943674604267852021674253563433009288409564861044914796512650124741162148210052797465463791838775877657375791734654996280174511694752991907504430712942212171245844195283036899526263558479135860243801864959562304483455286349971552484959819747958932105881279868660237166455820592441184252564688537534325685355858030040008621062478500834040651570959173486569623785808410815205164724370210705516756080628119098527698909235245459104562090442727721419250985761556615762243197463908229775146027505917377507316127453217255943601519348671284578396354889531074284431994709890353396445490620278014076723932900625307088745351624305217199839978171484697342107642294671876218573263246116780304131355385100376904958659137042754275357281392218712490782161043327805398128820337880025454318059105025420143927613206209141142029029423668785767486479239652250061106969223476193790902095722431915117651846734121595940416345628997621241901856446159638087879464851340056256049224320261052794036799448603748933765994451592536598831307380113939987308506471035218519944723137678514834334687029403929393449742934653212209408214449227516854048149974331733040441375117969720872719266870614533308063805173427523545699405001440991619081557113688165889250967207968320676178403114535200138599883652816175721551137051112054007946401386258962464985846467378478729644311703273787496600056398253977506491921202267642113877872077977772874621193909313325788808980188097317696699177785470822290660262763245751111941335470900004629912404128201748758811953316473133398413940176944919485015996071578071924694168587365275218023667154281307655734884142768067254782344281580105421271741200846195328537107107455365125742999679533556233487515875435338164991197759353034382121288966875487231115418897893794903102858282868781492859952022071735015347165940571222439081224289852581987782949292200273799282837707667138033616513464132090567939088469744515357076898332080692333440752363649946738377842260394872122025523030470277975472257866858424112750510139095197240655381812800214029291377609731786413108448938607025918341962572433941709596906105686117756589908045150622813685742366420685474728307693809328245323899158142092576604915354779596058701782449942900940147508454076363642043980465129813118400534295193617470314492018900304551563897701139726990847047607000861710131513061489590451542090328095858714729177313364685463454189500205586352634580631328844793211597026989873889693301011325324139937614688158834770503112740851261831967201561854559338371382270528965892442374642403662117748137383242643824841873262894895866066597686932199331224525766193262713833395392166138760908338775264999076314910521634090347223688245772163024775928930333309189575114564940433856181137780331187047149967558023577499867054902537364968284405565148172126699401505136150443237244623299955447710736941666841172568592545378062474609877511969439093926269241061413342673660839004851494429605343268601132799664752684257458980883349586024202730310617003883323003573702779193082131823056571478202690379506846343555231076300041516293968052677870904275475749498708490287399012564908533717958727316684819935645318996338171251429531856268030353069808645668140272435476331961861168807584971613547059657362618712354804502267008690499311980484886865465534118569999901277116420115598883093068337488967467549449133474851530953267993698550849682288782980845468741276251809162139784279773493806320730518723918600357468514642188196892711176528161305826342742836401750634731444437627314283980118180577429299570770853918446305289725339845591567318981367824622649704381440374386254437364234588832034321994235493720695925007320562918806287374292540434193638224222268672302699524748443629643926168746277269433284725572755348989365311071601041035869879707741048399590310070215577790821098633052028917495971691240128159348601864391264908671062828720714291007501496898654340115170017826998108341324354071787757392957284865552652976522042380903486688377560185963049035033486981230845747247814198037119573179787898891857595519113283352493944483715255633987677429194975655588023388379966445126914369620236652188359312960890038453984510584962598664064031093378011805432534729848559256938332325341884978290192083096481148463957257036788025998587155667039448349076083110306192632035521164356735678569104452422260903381786420134240231523924138114974847564501974339961640935036906161221523337437137316629046244801136342294947907819167953654829906854841571144712605875261958523470281680058031676141280033656399806452251061783629525353897996397857648192769875926855358052925706666602780845071485639588879215867408643895110146454305504398347341863862624483266100511697715404732437019431171722974991317100308640840175016883185420804686435438206026242402781685733847359658948104876102701059324432957477819974574120405694158008215455435495185101671021919193734249128534908571380005618580187560394862897377569530129577783346423165594551830297816439691795013223823924876569325481270182668871746780659094164392090930477684232307909789435127009986334425101206338278045231009722488591657104384566164572242659246174651800690833557385887320648523814479618785850137182047585153040411697457115328003632352131324644556562444408917535011030925587465370002616685753416829785137181032443259492025202703154745088955424865456114261936471788664484039149927997067870611165116967238789255658592418295994471905609028463172816509394453510311653227749054254407312713384298261477147102042234467008630059052054476408572268488432695012577070537009760180421048531928972820650653035187758786745014476360669184095960129654131686888910759344987038208606092022614282867359881852655065012270521579047222260758081841106135852536978436475230800456980246919781259589606834038078954620125232666499041774504123070462120329577752075778447419794773784811085186708320945074535184820112843431156750457472257476230195444789768977828553766706926290527045143763020402179817925832713664041021862728788536675832002406171132769528469702993469871753745422134469986694002804878817002757718939288307458056712631807869912942912980664751206009579485099783593863661605403600665868334514109846039263136941496631754198990756978805219560743343551202770359187440452698049306688252083689185751161775670016782838663582648415108931914988307151601256569358167074767438207101650812390246394011076330861223823572928616678971900135723674764648195714391984911619696498571759717918188647954861333173161581081676919024651513763688502283114666391653162783314772440741505846804969806894056314107281781753872243461039133328092703892765330211984929611919921222591106220796961831949439510235062554473957555120933541431684278449546417674060345955157521797566359270790847116937908568721399427943455193183147072086803059864502746805653766703115281507611909193834007857553652486601181141743989356400930705188628443049407310277517798320737297122449398489229420870591392095840031805173405122102071290755885943742325193016421208470988136162375247549806030657808549042472019749063368974795749533278359956044688751378405300126486877771079625495383055907836789301791719001545298754363084867888254157779430963357609174680178808400045469596277028454507837251694723512367335870446145221148319209844873988050031228443957226535334530722332006008183639671255360695795972573406184429729103551233252071244665012754061406250606936810092595717371059631900374657626828540056833364663675032305869317636940759129109765524625472297184772066152265135380489128848658833282554540364449959434578308564120583938197904352098947929893883285009116188045310738834145925043446658821774571866128581285199820668449494317302865261951323284146492055113346455539466027466578924135866091554169661976804719477921407926552997967947661876547702376878800967224416814495907146457043731171440706262927753747111054353043468499434303124795229923525160092360109283522126168015055638231123241254935370255074089560178743606613900313600603050358926728052729522915728500717775814609440246318575217787040530757839142017304702304454036932264095789858781791822376708564497546693447304469070994507340012587453540404096918702102522834174794291830935103780950113169347291822641121497275914738839995505143729184249238591734539075611568544058782700292266572086735261977423346025096781709402780066357919612041152678311780344626705434321649257518900119991706120745103966493950525196799656885599280052732192643373341946955707036011499962145555443425646201307312818821048365066944018616218118544229400671842639714637227239708822714906734995603886605702424497326563257452059190256888948547428367695003996749349314706871452984074055469767431426631039177998605791394882630314269340574235358339282033380058400240436409760783971362142700943594793467490315241207576699655122258014417230064596214345920587412621222941830172295942074094766426585916678412487071195961827263272216750355040525862439270320012299952289112300694972458521123880791427088050380157366815448033273624775425283983157459178219488477010367217760917807541125806343860417276764964131494639342274286440314585387826676588291068072834788506552019364480013705918310479483607830224400900928022906387171550896638701781781749482404337302926206653528667935998432363834293117796512589006743599953822355650232439292953668121998542507336142524196432335063793055811185172891563628992820938444537425455674507026629130085577755650552671559127069106759897709617726738763887671738686576560992816310756449891748003049408511195407693885601119256090792451410033909199798325938235718161868520127941383878430246959407127489285161876089783321479208162795150897117012318163571090594183842403955290126686964922505251516713986105644857974093033745093096678911367352681014137867318967709600880537976448504595027241652252432351006785736679490760675258540305062261613214790497968321189153194654784337629767842851650450046680850307219587170386607375232499894678251857290424727793784255801864516371186409414150972095908009070692437200051720421296917526887404093269828124903053802209644213363426238835315799730618714241715602211897050289453549387551840423959698793914546089203885991856328064269701494694476888582407111313694507991770790989949591217948946928677962316451494040965197750213814889556453827277031269595418135335893418012696063882056308935161045685730847598007308265969793860605187179772951635999030498723406361339791201584706289768899811233142436179510301074601142074439455803638480432603073721175953418403286973218874724596276448201011529898706549452490850626501227212276245228370134165537665004318366148068379458934049235611774120222210052600560039980713675764410055986768679544876979286681896432589917456346583347030387756622437062891101436319266457128623874764898888529025401044445061234277561221509565849284363353756783775072072077121020243375438243303833735279891427307544414410139615269026954427245555687230610305322217445590995775041833949160952354166754164472220066845517834589386956713343475125201019399944245178768784903489070660268678928581555546063593791632646154192856262405958228927463739878048966525063417021656892704620896420234971198030878824864652885815238093921306979714198776068061072400698393755865909418788462983674806853795215699887247672344474692776208686793459769022587569682029131790825546476328931209015058447568007616321703153164893880726146503522172067707030503549339729260935738955603416559085983787363961857139623790633084705713048917785106025583616826207180968626463404523417823603515892726722579780607450051940824115678499552490119365187278049974458423755337237836166615784419363805806805355226035542527015876170069150307608826547783374350938032087564720978320630247606756424129316819391950537705100629492615556746732420465430799570134692622578883975747183898431251966909964582364084822553304420238020089472672936970944471812067935445591724755355099323451843282418402270681944149361438695454945146547955816069499514811683911244970703415839293216734567468276810809928442448814502753565364094311839750722549773975398657021884288707048957259907235847026548801157823238607385993442015715558010877020902016120601392101656586011383736764037788511597849701573229074043158885394133449215014721917222200254942633340925793370270345003755069353526932749626738976492406300617798409980836174271812618959065453312227828397971813429549922974074567113974865800050553527795189239204141536557953260900645453402633156044991976014486167716600041756987188121417389047131941824043653581667519728053352908627128433590476192557666287254652153862874735417396250507016760107926423801706321878071685382354501915081482925240379835420879937935139563498102592481297855052320286345080998757662406286829024341675700390628635571086799483726935096797683314123473560908200254885255408918139669674908371206089833343269903185039701573607588856776029618861943684430896464232233983416470804133356475754950589212446020655071395707621480327022964220576408603292933434724887917748603735986985075169555181369096320012537012855382946809716428997713284392478296393904072146897129342140101340037445652805200972341613378077350663455368080314726801849374809249832031405346124654313879764295309486145442642662563366358071853925513352422098250811272868327757233365727150716951387361539476582619568201135548756273534327916491038328148550637990621961211264254330957555795873690880578017647212191823995512251324584220330557789119770280986416806714907209888397344272752008728589203272197546661834954418102472295454683053387755845368801532330323483390371138502200747079470480193028855540451100790667840281746166219187936099067666029587726503095266886530975314716305411578694309279725235388560857000873958118903094270578024835784960002461500596296730674732109163679395151983411470150057212733289936132759683266867522931853255215334868407770609518168720188139067985443820105877863783411436507350112936152276689122873762723332198960037854699665837104708707722269902076113953736320567413198425084208810363469981816118192376892251585129690004681665457235163846501773914807594248245245746781214785043061928627824925918028569133455423217482062192415010229692838789578483821319645209779968012917155451001536604765294608158232007992282433938581703847534398662556898816584939690975670326982133574186510275581893685280612154886798705086478234739902355082268245650332463392982625056462375867204235407937778218212047289437227506054357561085821006456204957467402665594399831198796931508843928752758601391526517440522790667971497719986327935381221572185666278783236375301888479801035520266913664951100137107716995370391050898421224496605531917628770037179383647130473612516823047498550769446015956044387916508271087318443571895000149468495650748193317790367415603395373943911520185258205088635334331048462111752787224216231755054369910830106812748111338209853780751693811185843077267748217547037883798220804682405113664325823898456954407379126638229129590296164922101248795897770890806388315719516046193639568106058602456036272308746980597520643066117311939079133933224391005335422094217330789911922195794707040382935214271362968631496584107678255705492465990077405208081559532427279213608246025608716174854158771612205985099191394393009409895826344675923494479575128460970270516804289540076272572727060922330206740831000615036976063495847188702424375785816310913078622382117184242898781402903927341900721192260623467882736093043900835375345040939310495719482605260558379751720481322801730807487957855215058438599691765169328537061078207727890069980821128545989264816540741295601841284196761033961819379143787663664706259395965213669532813069525686077061872892424103785188323514949658149376212045917671940916171971063201090827678220550001373873232474027203649365017275833938188151735282574490862157924755626295100583081800303888022826483010901995381132111399654207966797152899867068609147510035987993661411896362906764695468061190882523403437411065928161676150834542385065998580713085683128300287214165002459062902718129474395141265388801329444846093585361547910005736990182284643011703255339088023448218535317003689626001070651914512661466177907910494184267572833977371935063837772972811561701196022704401927961880656704341405163513363425219759381151271399334742787113564553494476282210768028534190499088509444283066702506098827652140538484043420697621748478734955365740648940910316125964417528096974765855459948269564734909694204929046419519272177308275878914629925365592442240731213135112777896222065403968317633977591156036201180574976067994858406454874143944337095321126532988399805658402916042118009487836329751954371833433866357243958073616959832484505343264348402206308402056838989521265864335635563239853364597518468798967373170564928365765095578593137783738555132396137993431728428874781047065286035427501811600375986875765028483434624462928705991511056232554029749389036948659131408778155431487006068219686754436157141298839934113988131809014047247641662460226267408582417516081348600158487870194674697648315542857663400528980840460184344033585376672812840424491420037739013151678417775608286303738354825900398996916291013590189123142026303437702934840364335716541567707700048447530912816300719651405135595741092901776771285576855539271606679191942083470468588058035275380561742706300375242525995328762919440764458724135568077958421223135025488889436813491302021147317749225632220172562899976867250119425479464807455086456565443871431644626037267182974658774286594981259254111431311889079472739810340192991691342414302306618687727085114697536502293454757816986035317093606721516916162576148840683477392455822969836563802583136360201311735830585299144910889779876153328401245348539451872509088955109502744639840248178844358592494759348733238229900362923510637422120572520847782897802215097361014386266732709145472340284269887695133371204340442993296545017013046035918378408747442462270464989086892874061954722170106586382647529805334726568118792655113696347124081508460549794957394758189881252638772332509581399420513821316408165011301037185285636299358148190739422224100580779272533623883168121229614762417598716237350252082662141345496238258403512313829574843058502018806254927701646742330769374205368039124644480282969167610376924441431685823029592955539555103720377751708984753124547394876618017296645039154985075893458993315273031534695134104252263481177997155237839783308048851713802825628205913222831829357811914816631747664486148866645791655252083590661051775565912309352920604653091824514662517528971727788554146527033140299148590476152920613985180209673240379755240082179672825804695815597013796422691686352240472813091713711055648909850280368149194285390078164046005743719576594084688881235759858825745227935252561950305590450547345718885645792372927374697731174331717529301167980981979885139940194019558300150173732321203340896437755379977466550713590900412289548938984175118731552583370580424726317655985186671154030572853897220716711980724103603941315531301673605517408173321933026826247702729227529115499870561788737936479300531009026247583424771835202408097970738162815831841550667926771196458909306039897884766588588900493486843605153430630436823527506728343062850726281322749973375080389883807192838495573148292328548927335706975547963803474318639086895815821197912250946528769953222536613604419031111259469473629490223464455347882910599467085815070027028349252515262041279524667059613102402939242181551129481345621171406340787239287467501149297630184090152545600293570222094351342570464071017458138851159688542135632697774538190475379033047429810269986297573805706931469159984654537835456240233690972058912285906946862211301141056317059551842134987304104839409870119638087534558895391245984703329252440133697431978829835743352462654604070202292977458293900300647231056864919168949190664271109892130427755343966495447137317007665519697566230230112156618392074109675919555809504014747399225074595612312780348742844024538084047418643561338017467667945530492475204167907191782615402549030950412167750699671911654267911775495569096205590218634155285231259910151908961949160733185372773189798618763408867726582786930913817299863897573137316565254186661212384467292875151048077443407899058696246150065722537904961558649456921665682018766642192223545332808852637449999460509422577963227569605578063053057351737621266081755781620266457855454163845607712777404299350075279327510806458834131214938647414685646159819045416986243492352626261076719682089443480811281177818062028567939386502449579281598901985187024194021470562685180415596572371853883977404531575728415363074936563656934515317521701460574679412175230844179538856687734513187376632529652699976928132456383433522441259823257672038532041070068053056713278570247188535922585170012236028290779771205799524075550026284535335960590169196812344598924326550383963818783955672335230775080590593550924811668794621483077593144568892275801607607344303923075022702687441938879061247067848213341250002979915727399898644435622432715827007045436149639401622370685066151650435344056009182526272835953695894277103936873421748418192860888924512314682901434195845721570713742559804849119773748890673995584159413480969272595297450772431398549347414974963642758139499319930549445896598091355154851537386303076237392494131443351142821259999071860993785091882751958901932631007452592039512837013551093088335657470997949578369425080131880873282899405212694989086819267425019922411424303658537736350048585552118753816327049134500705974377061363295142110820079278736945782441338870976469882127456529694940986740952300611969844310224801397649659886932717569485356212847710548248878043108101231490282893741701536491501415665683162952489874544503942793462364161352870467814780942397586807193504775029855105329672592971236857233856717629011878701935807969706457457158699948399268787624355359653726961937526065522064645431946439742281001212729983696215874171824454626286629230278485075493886464860991201829305185738279630164447511656446028964903884707915060297081812595133714098444987704957815780242166059984744843632159787536021998589361543035105204318057916501029705874159517444096117384751497754470009564802544302197733724883313089000716997344972212826023878909423650636231970674978621333074801197858705083460773535340519210257595045387627178260755490573595574588215009219709880691007093899202809037596177080850906257132423100471626679303820953781537029847269700804647459108419556319446157049121991383744558290163924822704812528255649182156795311340427076307334560321104079121219738641545555898448471076287911655767494604618905445769841302380254110710405206094072094866441796282611148642090338729589385777074872893520394657104316311046755321291511680449166360887567098163496936044780632230693130699110241291537124212798675116987148504454196625112657242851157506657298059170731619973636521800965637586225113218958310908117646478587678096454917906648445690063945470579337394502032612400844532063309502043912255835756852884158405783276338581892651212558603193443114246128875211153751981903705917090472589611730571762120024227949717984972601318352908737357849287432524123620632334119634282242419026412213288489635198356958598520805171479806862757465117918841136667899887997825019443353876133493028211443363319494783389113795430328844782830716480191236230431202118189378339780842834918896746600340215793802307771042259148780288789188404166774802962484272479387669659388640025013287199969212850281247603829024508981769970932475160151102759987796866468049961889657022443015351538628499374636172370081100584612734113297380949323299047121521175341125732459653538431422608575615183605970437288447065801126775785059143241843675917142924260844204439364873600128794837207878561147133674686905204036865808554067013889788218502119602360706023374467842283822146289180429639869927294516549008956901723601503638355786546109416745568075769247925711619172001605671575567170308553370117528694119174219647667438322396785218166032674277040717299627333472028055667024489704151485010570762693992699425122045206704894938960204074693481987629037482884540451331911514183805165676886820081335785401499894032902038851239298311808562940608212725642620169959369272415653920908708004521016295844537313886378097483238154358737904201372093248394770610080272213709369025790859336952103973897779663099138319911858038333017388088380448532372168033557809436242801938500561915652990462166191885467024534937164673684225891311123216934850329506644722277599801403227273742216966214264066370523896359047496442982984732864496434834291111074513738300028909917806783718061174356550597161487877919671103382553277197979576342888975582352828334586027664171567788663838267665218337607477925731029915142124815152920856269564902649244900780419331392674591143801226703916657561650503711670461636832927237029871973841419336109810590227283634351125408218639017049609304853223043944572720843902267933907409633806416936384095648089483238838087842652245276871779105508234916480226004413124800494327100912563938205888673324420325516464041200704890236083202651493190007595549869458482468354737575830064970036085871852137195381949864584147232487165403114568133772218463877938699785801541087361995927665369168989659957301909572810733912711618307435947575429114686573763591431206237205054899534198132025456329311983460205771438306744381417939538963546154254429848396733948155255211511811149504874086924438871386974109299605284102916873811790745919202051406036132364029461240419135317789166025420386607171345624188250072235708594712539497002938178335960942515302143184050485932005668636100202785782768903527636073240666065855298072250453660677379012790969901415242326715809716151456901099227823125794347095725475425225367787234591149211991668959287503676984509008129939299463170557373286297171141417806515310302070924265332959021743048004982327931113857421554642599692683907081232564051770535206635008995238907135238468021469873372110026374479608491649038543817078430915578709608037677512932638352162561817770607608704525986786470530548374607219165457144523366996520866455611849934243810216183072715592648380736274137101904805819055710363372690182385207086284434536061392407388851926672335408800175783390753177501932453840105577745289291371024809013359294269848954186903002637702183112936442316746907676413526083601312180348603795085326944635877154364412699579525484589796282737826361600548285223078886075157953637317801731114406885718091586417725926842236884419074215362858419172075996397979470326252055260282664068556846960351180888638127786566663244648502736243803253472398417068459593897274022313976622729056023641431574052882906945277829248203133291430194132814333165513474710992740830567737306576370906611406140916284261330536838218197181393860116323593688886362744055361136613379439269113665189750130818143316379277164557918127801240645118686110207875260394208978239056066389167847024638858048433519775232411660524928784950483677938552415336819091886381563664705489580840314464959289875826471249331594210600844729985125055541413648319975842199519215433440443633208379190307286284611820740827485737013170980221131009980826096909316871410907438235484577721079531907544267967281214203144614485130539073621829437527736878314471962119175467713525394820108491776117267265551198468659876487449797648635842115166458316846887200116969794536473814052495156522995988140790265968337724274913904325569098263788492865319506871143177802865657579513204268594314689350242114910667349420669286969868101101213740625301568136190144554023403525692916083708581742827146620557312396566852285889813086831511895792624797484997246092272478831810460776691751645630029847597017989433342255573947275521997695064356047535955485038354738779925950553307460990346939471375999610626196205256543839970487822728451072405694802521844886509811187436335992428052251164159361136277377849109507237943767583721586547249972436530658305447783417606984240343704376213462467705367215268471374594665952520525545680071398683671382218868614224617825536167997976953665862590714040733278876795235527004147794749255644303764884384899429348217374481794265391078192966134665816888089664890641018339937371904598460282338491575682512989071960964386618506536662733812450403413000710370445703177205661246411132522558130973578690516592519067913387195090430391462490306478751515958259556918206103163794302953934390547148177310987835277691487512677733664369733250072330269479833012062217682135492678156207798055370795862699641212021405957790862985534604496834885364796272637994376410401988393813506363305791224199379703571415864445788412044343539622900817977624433751173282987986127658076795199644783974692462388854219819526180791740404002974684338632568325377768051769844063071991950248510332013171732073080399779650151215278526596310087618509624016456189007340837696449632029448374964761716339459032399315951423503148675288954654498229403890260330662922727474464835209529823575682622969527969235757178921979082150772913160342809672721542048785952896479572770780040013893159702805236851887239432419506498305393596944642506430045818046878353559812898718616833763478012790428770972872737645330177797363534944188569094488809856970583866934812564504875811394150124148989840646372020495033720943196689911737456982557193797574171267594000889899309262943088534180923773205707753061811510912828456352579842882603733893196738733970725951444351472213112207106802584617664290762225209829594736742781115005545928546310702091495807509607713467902529308009033948825252056288113128304862572932784763513224434680314889167254348215118875375274920232854135545881785256028813676491128492084019223552213814419686282189482549280123473587051302984442778526374212954067777465686131111533629327876318353337568582203019375501161635149502508055506806403903955044409183345672634926369693816583366484149392968525010654748744417528680599704294206581427826302624095467482675095199423789535743655811592458577976163445731232912514270594231913532045020640720149473588818787972388979154931807468001194455887273532712313765606935021127617213371867373486408457031348434894391620053460620567180867737068985017313747189743790722309834717851798722702351335985683312834132486480500719027826033553833199748656657336883463699245861273276056113290822456678609588715309651335118363841836889458038302000489619279916949273342654578280995829484720270122947631194016716256503325922055902021364784720414490057835577750158303636910204556749754042544311735828838431450842814694767856117234835365570392144003353465022955431737258465557701758972188613543100800320643131251670856675888157811910209472294865286662162291020035153902482850721668919642608660842995419955607266723359592862141863399583929077149186214931972995895756232378503485281916195326063067943427233874090970834669226780192476184016228970777140179694238677764458168638169317284515517674608226717596854320698998384251398584589928429836264708392621160301186665591127112023525681301104093096350747534376333478378076254273497092722605740639785323438143740588113258550295177358581131251586315461128877901246379997973416410836690632431564825233992652208523948663755705342102037055815787393269625760356196166314127474967648497130510694111954576198597834686060369645371731448596598120974325661954930688987849496677415388612641529210107606477126746587624366578531941987372166740346832846459298284617181189109657883577325599660779941690163593356722272662568532473982687425218494606203771067978173956596407527972760047190785173652032736463193900788914076493500893588628798174917758999460229696654617807928943170816079283003501537922035455388088152820017125963630391592280195217782874642431038440003949804053322145018156514106784996814325570429497838668386343844683444296116988107145818176524327408164660410679109959392489907490795269751135472525559322086735353057681049247903626655930895241852992801904717806553674637312823249660771972580886099624312948724414548422514485081652534077806424173965237928106673705044676554255143939232774561356691526218329986881490359191658976033573681364031260201673518442088709175170392277532446665474436607537228853832830245713816557825726064606355189011601174264669699166450200590730853365057856272776836664155079912478115513609824196823172733424345603356107492731797224990674142172777589031634506795242740878026105387041895807950897799932943565876921655732821141907045087464440350361889924834843243422682597790474976773941286073204480025440563899902791920399583789104601491085559366336716508601566361057641784151412495134719000299193072096800252574505372587640254749990802663684833332787552316548629503714713947913797524804026835604258394381783374123542278433698057740268641059127358613574687373712512516892104371878100095301970584902032430171768546028984657957581726246385850903427058196226182280572159003605625448137959271137176865579547174248351728648129912184907091129084550489672776916815440943877230491899627736194802619902486235654001422388541606144343189852560482769739673457045101586654610670207109840256582744120367739125533550689113572083803301612233094077002207034182775559981125543254703657907503278827957138293119410055747270590777922229572842183090980673374683823186330228075611914527152771226399795444112089018896013314936529243161095841460486750099200286634286421104414501299288118432740955453086633577888971584097996948878518149426869206952541400618693260607717557091933167445614863375734617818610740941221420628380836710861230309510871847003046867547883650055139089599086407759559172342321903711192478481265191614231998279569844519759940158718059414723407384246948812829213326584608635100286191363166963410404917143112356506808365753528684537915047370954622025978676159864588254990708929585795707620774380279071632370731118287293572707920500597070075303859524083097338722834553401009259604702774629923481570023988817226456915083871223680543774244123639981135606038557120973152218989308094386078685506460455377003877832654352277433034785381362498383906188423390119095235807420847517351771259182593673434915671739295271144678087533297791545204117890162572381410836939801522203422635604666691761177457109170065496104858359055515293641752275843025322680107091132558015255652534415830050891007318456951677352681562299058800993470639584956498179257758161015388506696340961835069749345813370825993446941479787687119660236932790778216860844884605386452397936922313220065773648807854275343120600891775214784306478489290171498505694469628146165318781281142760193249109378935877679122560892555885839097439920510940730105632543583800020678065038299445870378461588416121324366263670505873492938407539209168740982798334701183598491868462509161813332093252452632879368574114853649277072890497207524219866398178421473970164932044947630958458829698929425102186739454109722313674463225973895765333422498438893373129547161202581010886485104957856680873919606524971157943791494175771533665258020305312094139117523806405412711028707428258226370554394752015236517281380974258413674479515825452763365485517209217617019507618973625870190004489086204732961668498632699480647187087384649912125945241698994980517749445554234250617767833102288910121167795829634131752070213465100699386321950016218424409937749962470230196283854299537324942452314603552518991417589558483794005889409409767259380128728595028538110692261849500458246705307364516379431711874144560218319241392034807255990262835331373164399403294701921595608216927708152756225100007790650611013162334893170030782481492112980128332727100332315190876215326591911461632490456021197358290672501728634628006253052350168389972404386477229827716104020161125967452370320470424653049671435262143415378402373327042912555160130847221223883423975840500253210261519566717877195817322177634175755696048774693059348475802043880433483067505902378692250246144385274647161475358503529794175594993070013912185537197353549796927847962785272759018914478036370269384226507840977227114069284960871705869602966230873648128452131642812359725998603307596702771618261020619491152215614296487692637768085119211648995331108551464618556192254108081477285183779487184669559533214854718636413780094120062809979506150254736548322456897336229513353325268869137312904470809122485943531437773723468553901366729570097680853105466509973359759259415367970517027096509097407617235116128281937365923430309759364284453824920216703919577243293210275776130349405817583366019553762778433277678765432424587224646411983256168207820315834027312381576255741397662867439662058110789957027826930776351968251975271887805693480896285085695030347529497750419866641355974007021930278748425200751598154408412628411560407793741824995029354320248885446992992412143721904726447615390924192326535173948855083015957251671542424452537031443899363176078246260943131273298870915785269970169867318934475108808427202305467931000673009688292886829775630836637521301385768877105485030197002441512153848910749913324627815105302590685188689242138187845165329448375717126435165123627789884240901665672132702935445701500515150319585251471910235249972770051199677043356103957728713433960332595277418428777056888866331860766110297714432360841414346450376681064029841963643583572679702201105345094915703197568409087534462513488753877728835827880689808372606377917367629573797252575991710143793673868052661632471213622229211593894198593333040963256220618818552497136776768662206269954214239179273603831286926649684332082938166698348987146600238793494445173645341912033753647298430924052950375647165216416621481508852054492911787622800771592101705054582549455556831258925431476613696351324793220544809358291742127977671256830769713159479942093825835589079491833049173971955527656135911894475526639684634590200487487980521485889422357756637198512573836628280537736703002804080439030311280094678828263212008478798964035703911392830038999114246496794647408457985506726590386032005569229965918681267143417639273104949957995894888675379794243244121543198180619915277311028758950724560684927551493331017941916110052868033217593473111977405113184917187445531291762953156952272078844919912650967995763044093121147662868460919691233861794293497471671782164223206421682026853356015302098820782369965414297564323390842926283350950314669841079783658091624551119064106963053160089281620323774865688301219597494781562722514480826985368661456152540074170424918344563882593821740216550522205836606708807974213876216837450160995428558233886581385720718226605259427933533554184070489591963559262672981154376458375714060056594747378132195308945276927141150257181858431361163949679625818803447117023218487017071764594249547450452059146442599425675604822147464843491292183668719944525665546587387763400887355307879901977356856012449860938621202970588157267779095705544152544858338162062900859704638452656670587116711957764743723673122216026803423158391267783287970861134984032147345419140019402009775659326471570912600565454234244737222697413541312028360802482362418130057455958182067677536604537541344795698864733395685198490914455036796037375600078357163364255124740667422376821724018270901934328986258936077051458829059085495741053205704413975454979750461822183637839515641459169679433153716686851353651543914275230757010507177260463466900808543141023833512145157980310856889025687291867116314977444212169913903746465744538962651681507045535923476353473423644767404551695110012377190183693908961747143523725611910960495158695866072391290710149104356214247320876758330069822638972295220006301016470460039775242485578896129809507078718200057606150370373506740973802225721839795987543909950117764419813477816603165700146407503506591703560606836811764021949649534372045187605333862911538311220477680692973452374825071957304695808326602035054860896466244603724705207472765812109635746248476289510440942511977419182729337136870433043852645369843894851959643573660406340383798497171767274713455521600113999078990758014952202489869009455289980033125723201525279517235561881837840705717557846134963636269303593439637354296654267980306044509916638573609123393566812792469187239510027903037323678959882103148254682955700793697892300555077303404310442413844096549851603299050500224634641086224772468273114382921859975364031945664112391097803845077475926812759425626699965503742676014859744085774974606862453662333239053311104369703730284729098639023772529591289532468052893191081277689934244828035742893766964617376578335849701731883407684744535496909405454337135638372789681686578683923754026155131239132414192912392155603682024876952968164372438728205173056687515511859210469903700189380379669104481784971016740728226348171049956381096919532774046874170043740186232479390243410220626374021209391699665512524652118981471045239336280010679809402735321686077431726951975398584283343818209295218023690748194178765764637878279497330791975302052907092821891566986871543121653602554288765995423661415401191170131876274829556386465062378190551746228970624968374023072295040290520649079554866165565184612740466168952672967203213008820083735802854017387758871945404767566936560702991883532269984911515342251147762747316293548689231848174183979327965632475919569241871786546189580337881589078208666337093411999544801454161485708619129053474155851967619218730851291375034448234105806354595774676939325387022434846730912192058909101664733923293923915116813969697886058706697711622006761740995738440231682736622181332218245344712559576159200034318113464318392728559834589333379217842209186726606354925384830367413202306881042622308522775687823205588259552855677471706007882204699842566294014623679089575820262985314493066139330960769951894180070176511295897441571285567791387165060278428091906824389231901794951908937238392916199744500278381480986681068819779240461393355131001214091709599522523478672441283373725420895328675995575237924701052813196412182523187140506380221900287047602324161763458216968068948615777119867240727556431115202743786418207945088690013918675722983448056866456993929733373180005601687420448342437735526293716779672858477880849302404933616162000168114729826416815515759826157952930095793893246375044891261275445656987280110384496600128031750823014784645450727434859360130001760456441566704245988424129109211548422254787392991792577810292605466530842944163340941747310104767352196071374938199406634240465256657348881152700514929959384069779777983070115143477192501361683502465186210221020097781912258388451008911604897368517651166760995157600231082615077675333155902703987235228854384740830578787091555478254794738850363585270957051019181208155371049303156634639872255725541636480205168587896674523760874618885714611122880655369847072051478950293733366883437737476906345190339412444542042878748266485215903312154831771545849820427306819727874200375863086036885182140839706143741865757293028366042043097612126976567885166647391194752247640447421139706526650679609556727715485346827958590011107488997048756422316712540986348269977365421991533584744587413118077598691042444919640496507152437984744183794263101607599541932994388404166988913242946165297320772311883405801393939806033559721421726175114719858019269689693114241289288702160740344485262238434668046147050151189121904602048307659661670004584971540618449711593940916401156611856005277460275880252298274505846378327108453696226166677095825352447203036870670116800634163295503222942858444881790691734807670966555211925876376304490363940322274553416395811628351413963072220636045102523123956850737592672371966834809042822809524660743184964188470133763800264163294721855223416065390969165779657767652657705300905819579323872524537898171372760320771644974076670648918126662516262022666672179644348025158400591474572469475901060832049613026019986081947716092249347958115359398482686830498476519357734469413538534362786781313442968016489131861473253516290542388685243929239139249258852443483001186920912459572260299919120128118860263739764375788474521962102763355072020669187830658688548547256468675557200897588638248956011045935615110171190559141841993823717513489113235268427668891800686915913958591694369781519698428349992330571788729739367080688716344849585919744025700915716377681639740439344870943144178974302877834632498794379476154592258114209635089072933849589667973888961813733836481235488747684331984709025637360738214131801075338791818956901096642891667407979634260013565466058797568194667922185321327344777888126193660494166004112904573507730093399584946141350055909933815440453213935180929853770274190773233006971052368762274690862694910770331143079379354063609051772356864866251481840877500981547063404908658749372739523066012431023398850399022928494896682391600032066333647685912899022456091343546063549092321875904367975770505076356132344925508167281485419393668068087530267086671022873542647086335315262987855750314264040582560319427578739676049125520331135458068813859609832266570546979411144302391445069168945354289191506315825691707775324215842961205122429468633956177769020684035665276181341113010621888239204873291831070025183034676190329645729020461015291244476192189110504182724600547796850865481390933433352574217551321496431032425861714228821943633662117639029575840324786086771629338935027725271397985591681603393872533338424935007681867255513269482282314255720865431626288253388546828193427833722445364969000699459102660400197983718077051501684504484138685930809832872658513483095295515357770640729356508155513003013140256421856644432651502712810764341520979549500536852859141464763609928001557156383812529528358408439243611141074413092614309761253247440677477769270874969936103006030070918469965696367408277095652040935626237101842971592410025105636533833415663076379658785868466389120037217810791963618624515894832310367170100986735533746905217830161478088010164564705470199762358093693204131708156700862913804147061644546731291399035965551428303455981560453693282187554667919216776415739638751244632158085930980685754358809257920806043089300846079906771314107703134319114926889845384683862958136787502395565008057043333217861880969405998569357244080990174157731657554442169406551559958166072475081933374654022407244688900949003457536704944046226845089460960322248733315844770114183210988655206195024311158301657005670155373475184825533519682607252165138024017817405219672035333278516407335499246270490900452161216879825002697839831808376679862100829086463012955051277186248648561218666996813291998393746229025048037386172135478442779870348535772756683861506087906589941747345465615955694568139843653612486830591617584771393968656449787329604971969711539907395034253493559519778711196108148576111505669362934506082039371168195372835245935148690488571895093215722862489113799340069965232569345555077643924996534872400911264926453832065527825330209257280829153289764010216924055318557822597939572972038438055387708394032630230156687745584188127243137758822973040399074006730672698471318386505151480288741670405226423604274395097688577324202401963261657592587429961124944680903324907498074940583357200577941192453702500014231709863694610959966056864686066159064253288254264821048774453439242363065952284709937259492359363501003060979347046019894897657118497186024071374133335422581448034813680165241630039154315628626264813570325566083526966010001590382604171027681371811622233900910147835730787267929463630793506093156623852279696662834533504810572557350187772067894297327615486929366644360880419229395262282079625358805992061941805851986210090428631003852095457367376828113544020364680419686214993759982081868416266827213834168663495100742033584470061541516841095540969763549024044309849749019988144601930992142637281964497224652555393547123651357336817370699629896726059313533289264601077029506905290294964655876882378575146514843488329536844866387726934999475089349700346250224111030825498220032169470729633475215491618909016397588757696775133389448769908169822325235591243206833378364560549592615921655251900379131682680443028956459126914710723722451688495279144694778535374412897478582746991598428471508807938058367996133855172097119761278285620622185625914450852258096283525679367371796083276131400097211067287261768121670516145482959810771459220670204117864563483203313377456796957404135900270505002681957529018024095187581222782504731315507051369869560407979137052450334392104097820104348217202585038143087489914227301374802622575674928689660892286125756021482916449835969810936695753409858204212502850198588156533452164262354910857394393350446547258438630066250586210872978408169885466961465161577574600666691252116136165037156006295653116636297272356441656219433612240777691330027517385143992237175581361075181351795737394418838455164005785418076491187731921214758390442834026006967899311941654650590467944758689526118875187375365949394196919325000093147562373794425347777855383521397097548285011916514376445361930607162190079150348603239238991535721397412397552748313505091353268266614343562268054626203463452931530013082108212839763530466324348486549794599829966521405748668136308837167314854903466465586611857501830064385634344997758457939281228387993456440244653865291565579332878570559170770931068219327999288081892185123027292296426237745570379779047911619648618527036605911614551574077595354833851072722363037403266572898050588228671019876804683521044409287964161749277580681010488366360798431125972704964881547083496509464901870322063071234784894616211307703086215738737697985351540439527501247032268923763353986140799668457986172373277413185923675129700881709162497106219427750260977785216384520786823199697290682001758943701196975844178567922686916541850907006094665825810163350060031255651556354747308074185124708167817764001620243688301576752619367196935903124741889134143622732963190199088715343663526905816804480082613152221297411733379105405072437086340578625491802359169603127733068823318384730225668437173557044651768180415790762120854282087736193502402526762304415488501597649964282319240354633000621891315133605583156283486863216084231714811709055703687871304339296417693981877848864077542095361910237078678174020030120336853629496829419719630219689646174391107915443906067926199641524563526237247924448528285600089193475689589504671285129719624565232468768944018005220558291169784200828560979241972608139091591069310027159000516165751055707940395438128667311169236723691216080624741501505960414960001707802521948243005847564731850311289851553752896203325115310351356509079125352149248618566180430597920892105705166665736669991843825663121490990995972426669573778441568860852364542745293490847065770399324444413603679421628253398592458207734623562870596432028454611857499000258190661049844139877334399618890388035063448584627268124301893563388223600626123328821066461956876415880470131593649998263957528286466680728335320730993210142661662134634962470764005644295807013446459212819648367672253895737161739585192934672533703392045837106858115593806834405988980954874053769349188425596884781226603499321974890562720447824903076442542322570543593976919210485851064392266832969281709889210607734276751311311441378670121973825393959374564581494307507802756689662499520522296008572137548974028005635687295887949817913372904624445321541324039122201834847373141532393022575888760337074686088165737221326144420355396515417954586168582578976278844258641835818330345365629630933264607453725721380793975906749993850487944974870636743367898551435306175623504862871348885977541860898083929611083542972831659308838589350440654961592475491227056618901434564558449731331649289401374033410603984372673742350563128328091387448917742907127983582274000855549348392891181300351686908806504299663657697738302754908856075035767137730543395191902250744738138903050503982381866801120330947765181097381902942137624385217712444475117454124398427849964257155221109516335687744516815943564288320444758792964463615170683092500684392324081890069866334571784525761243178439696641654101880247313432938287969273231200698623490124464855428862257657673574362573567102947776936297489813013494820637414526122730302982408214343996850125356460376505446850317619131172524555779745685974934104337683431182826449731436477469260686606384807162846076210030202109803107846165737901740411456584717064289947204295565864204572195118087999404053149603345003942537359803339008471932057471893190875173129925858480547187123295680616205826671621185268959331534138647988566597335017505090813685670228639908889765503117952105778251195395329558746755143850740077431859344062549970244808531854055375749596179916806805415863360860227051524095819755412567878414144865975279640126269907592951523280785034571736103609329708088550507016633542594634609890813678394545745510021150687888837847568949090838394300587579181662337111467546845032932619531111643576387819435530729837977509840318349202257578426436899111926090502016260653092791657861436971786095346468535495594363878944274737118790028279571775188219001404660586669855607871335574163302605604482169201631356596051336343688436906971527333412717931323956192893904809006715021743508195411080743216617893516664388772833464642353280833453695030216173543135100643742760847999949202896344638511756957867576799373377276069860582071835571642902192721835913446076805281056534993815503029278671557839819101084674012503872452407142826744201210138957472555653493529476700574833448488099825617075725194709523187238788559867161715371523072534710208704635568883894926643777406382960954032799587272184778122329803643523086285560089674647151615322912275390056200460377292423859663776697123268185074420605175188558082291171573228131593056663712760619242690687563186997844019971215993459409020969937182922345791398728324720572208359091801120139770986383526183424865780543001804031962056332976266747376885925643169979256330015553044198626816042890962682505798646760206037396460830077060910137635205655830270400276968850261673438737743846457903758300007458984427857375934528496554940833375042247665417107479269673478713923344279984271380870260748608584032585978496841907573022838253445489691021294667938946063724237024939677085378890484970206805597478288094283819202777348547531739977214070776755113853135208744045124958070967940188021226412197149698091786836688391052966746743278492201193071444591619347173812945828485351695143097534862145413173195741227956976851753437448513386879560505086663510295190352722898895569531713687971806508658202229699472881680298591699528381219456494314645128643325515587486581898244032428233291774263367348563855227850836398547846800074985046281296806706786170033779329386976928937220327498007929616726232715739952005306508451599150564962444810668215365901895361631474768978777207030368781230162884241691751059204713788310290592345533126627193995653227704362847604191481653989257937363966187284496925912471976623212281548726662270489799462777407040371789126852719395578003253319890423908666488139528671097777888388266691682396809462856045867638212015441412463806303333751742377566365809802994988722591323376008152992478265320037687242259726918387491524948292936514159589037755285943756506526061777535044393392587148952783856582950792715621557485837725895154722814631949575867996217746262524092285800691878005478334659585471189282553988011824448419556864360700153127015629076046907773263326379421106784680236388046729519996066535616039537853339191103792907499240418066558414295351026170001485632622078095998158956646097460082715378765187271259926008061310670987926768130050079720926977701303746507679747345450986155949400250855689206282055131557780287663850610426102616243340649424746378533705757488835025517438280266729648892904658422271882208125140818775954540392516108800169772853784772741689084399359162134357204619338823936633462790101357804474453601431060973511769399222785914216136964836743919388958722282419457562924778665419661349920212671798787678161193867092779935413605775350716435760527295658815264915752669269310048163521441311972912217630716447477858198819670556074255097588436094427423574611957533419617473301374179777782872867567687865278208600753231008434519803980276831086561313016900923044268622762444413036953475090069427250241795361633581410315443456179883350056159843023354940191542898001110318427607683420199148961507488694751588787486857221336755411618786166450183694940877738349451032037166936338278528028667725119720527830223584089023892088756483498004126937091828184553547518839847805566931974483111862491349919904146262689249607657896020751941368409940909219707414419661878014745758070671040187212349467597988143043308986010573356659520512358284919349480456226213423436358276140818426792510777043301788449841496914376865622188861738812599335916219477045340353012319085928672229428513226565743243101363922883267944663336908889767989757146056909438683826582965819583664552196743716101983677668419110751373129910136441169315719328440673468940609525527342053421383209887612764625939788947556770018449948953274507274775538894585420350062859424635990547853474881422332322891861048885013048287617376212195887724179392958163757291860852421807952534417597156880081001564130898395237556030174253264247748789105290894876174969898890464381146237511320140755525056569654344582693116387963852172261184185853264528654131817451186493444850272458312378935551299931744011301663871502675758438955376986099554563382372071361258383848466477447725668483253903411298262221343286278496996898951046906530562113851190964982862227940502395692813578648251178945968938258646404644624147055522480111850596956888477132409420551943974741476441229110999244366392390056981312713618509419059813822069164870998398460032844994372189554469898472028366030370631570442033615792243026066492508869975795679534307405334083772045296234306828345405574166471157264640516062665426913749659192049610974449178642000972180181487998900357844428271090671612162104774963082458691297659024311863238534743708179484369744398574612192108017650390739441680613787211483912696444400324173341249183948014850488319045115910818728030127940662844143419297138542807131510789355004480076162352284124516544983434442740078635648342649125264101223607940421575315138662049691801472086719632235849150782687054066240160415109634825028808431174968173069313815611184646830740735125539118046711856671167112870024103155358617751060541342408353065274199430955072416056264006520312820708837849575395895116711473279661770770584067098116976369097968002093362072831253437521801682215836802119194897677932837235016239610478058231452146780243321653516487357549962570785574889223704526913999179532483732363890869517624859934903482690615009247694337202410888222178037513273767426247107068654234696015118428005115082449588642536346933211112220820196358234282302878452694929595938309722754988318057052256780329599736011867813178688881707225572077155550630028399082538023704506214913107490517549593846178850172110063072511282158604566006301313743227576284121773517699881343205263324178621026894026753201632898326518946604208235844902993672707667395288537565484798101074824367215695619916440988653036387236707314425096320084459426943921036717646819895744056091800760513382691785598828482452612819329793680265704857100425456226518598094071622792842226779539921635333105100381807389573862181546751309765751886783468567069097955641169837528319256125645590237574851580191750619060406830684722381748078515911200847606164412125038813102461199645861667147238081899965098891968607760169382340507542746436282700196359763648390823815946757254439794358482580519524607781616806996830260201116028566018105967857734198876491845515721510654703406246048223356524167187956263340658109493534758417037747328445618859235545218956488988318699546595658009285329091507459751708624050443762332301885585970020658567934785409319218586895426608316036187483029235935044566304248899185616871877242840119051715684985406334845005795708597264300180023630327565468817025751839545726391742345357003712822505190929134680245943187148427548309886809076916643937435157208511877753385058461799899508707055905362597998570056967895997583934103302368044776434286303658958962985426931290198409146934853343465666981263351798778830745916678963474712545130444628408176716390303604924246573388895738187487088345897288469550266714610545301820057852817461882584540215842248362245706800066447749816467365586756837445989891936434868776667627064553259301908452127529866023410204877779214316247407446222882823130228464943105953803191439413884587547447073222715045538251351105757197686603364804293676188519016700181748572777501484440698609215529106984051074430352333524532021063182176120961412897713334103263290171986912156071813826172003247073149561814691984779566831107441327945680595642035270904992745287874678196714239586933139882433666411764341220482576015003646913577374808167170696234416290266274106136326753161369618540475887354573692369310112202440915888434313654459452282466950607109061460475861673750453376781818170426498777465547504680588449304476764465141836631557074598928962001971805760373154163390625647901570040948075941669994257159948794581063492038949636232377174044979592423696078789010621624856470492895030524271460588971436449731840796814978436601827683962616208908988217007994992847308446465609607299890295809733217070795211034641479471811979413145479390281961739944217168742757739472012468387494881330826093251135819703869190900928506328140530573035821524455115816722293702663574339990327152419292783799869804511392181020686980864538413723232613936324352665337282882017433245447707221819092787272024022580103540232841058022812942894431965847855723141669684886813407305827944752117190505658139121177095146288199551458452752064446569840142924962037740836349438082375717534431467679648535472201236747262938298081895951534143434396558622336466443531116047429452260343424274221693818322738634926909340979206774105339553745444798747967998631793369381549747261550715960832162659522475386425100402706812187449191053297429570268789607123544814536414810250765545139235757524658030502056467597689340180989501770760680228502347509209039710071914570882259978411337290924907872454619582568578246871692925570897014371403515701463346703031465058355758399345760554968836583594038335232591451806961885907405349529131624962250664524821286996093411427138297559431598771150629917805364767955658752102177743769094473808359534030654364988559654999481552613137498674112049522812261902258653618427254843371043191274679090153983327288754569414184468180395275492668829022649817496389166673677987749081812956980129051567125934967483498763001043102676742602189680098570681960301219214408314127710083465198985366152435125090244442528581700886522628108311124043950949704377120350232794167991814223615812422210263140719279015398326997816128045450504075155246074017892417996601891133511282469320184556353870734218567039433229661752558825391999461953898435939121486981293211409967741696707373938039058248177617252583911239413959578103667252658696573727323155702093056431283288868356575486719405025322772837889267167920279826728727838312038235310231819938205353080079219514082603599310480217494139176880002747544145026361668054488391229597733729086349128903571322810852679040152810148735244029187368625792187762106371778120268943061087530793977812888396145081187024217094931059417138867795479878422708380947551891208590212717947263003886044975442537919813566696846226802634735415860645688678131224729173752919932523088524113616713109393641844677660866502106343044155855399356857847975297265301923145534165957204963034556911313190805741753832775540746301830413895554228794746795613774304706455308213317344398518337020647688332201601604195532736345932528591409987541251528365732634715492964276602225314041929914367239251561067952165686253955092820976858533767299413711415054630920388648739948116060952223472585529828050948723691368810460313071498726702447550978359049538704547003196120004678375903544509001510663590708300706305903900458113632530713350650712404872018477778175653992418347906673384315066468839825564483109373121421279415006654493027086767927281262245704878667945797837645740772613761958784626233530502939493497810931260325604884561483723022131101922500819081137431919678784120122727592617306626698271939802177252343841441070600411043066604453389559704321024867331971250055261217012834979419815655052077322043620318346788823141365719743882512339882091465780936719478782251067501040392333770311376135582442450754409785113855728238931531594664938850007213704827712049491949222116755705048974928639540713503645275944947674256807657321806367974505268052951769159134513317520598682319184933088338810639833173814876970201994941005126308572372058748637001635313872327239028430947978662328480821736887092753494196542697221359995172677241535323874116252045583427162761672668957266735883141567491987813694179129080204389588129504587280188287053773843268458331451261837547863374629050031937919388189970587846709033587104933579913215003958058692571129342000116927661857609149339203357860231446155412787470455064148747427378728479037173972935633848290269928308446494004056977738645784024311819309105730211966410906309880853504241679696182046731872684871801425378446935481245805527971784871560195520071257714721861693816532171455628080277582330988371059502268002327781515036546575000430618137493938866500534407190124516891050493338423187341451679116643963010404044239021682350412436715347596945431810329600550309994834041285165868357000810698279936975776324337945676615475427500980483103137214297206063898615816795686041020901227325175588355489623180376432843142391889962492702298780722185670296862448233389245316392397579980197744292096820171592584391838256287735271863924337120220100494401886941677286574467606060072308557778800506947661425981663048563406770090477522344826601835919403384099144041820005281458980142763769300188487695051520238865894267477871939371372538913149833409032581579010442012634352046571106430048456547010727132464554680828215557232887795548970926286524473493617636530903384083359217098420568535568550132376873845754320369048573218385996739186248294306893136804631940955941515137407547503576887029190790981224655778465793603411277413365854534289511990144129291687724259234207309363143218841706004303086958940091415763730528549332847304474794242107265500623417045422367205062948948031833658988381277001336012968500210409834727452475210447995179793779360241363857641180237204093301359426067096139523295262880560168337744079774525964309038608226717245378041908930202982738413916286148266168916809779250298444034932310105238261344080699845919390782046120731568754989676123389553103425051353498940742724910455577939751483560093492954788427145110016612029279069527523665797631796249348815437370499542077468655800964425638627445783333632084769926678778087863931571454265867489178212756178179007207794373629099343931141838464734853028336794721245414009410105462820105117075006426933198706397251733056021433250910672064167468615107719732324133114736039591380715134407131135286498289321197500708915346760747719788660238582967269684211487195832498063430125364941245517365359824555462859394247044863298755830753461019122424290333856821957106105446672003728565020248271574535159303474312313958528834689771080931225584323521591424750422185434522076992202698998223959898071478333002519522221462326814275995966899559322507439491074628152902645377130229079145470259709036457412139817752450752874514788016355489508185578934067581712135474849074823839001606537991753026208693115967328553003489699068286404374191626557653629668801196937013328598836179261697354207645697045634656952990356565940540719722043748091155492705532190323666433413394105206365959405415333107226375549243583887554965407169989130099860539851060503528926871043958509369974737085287610558992599295135744725375788771852342030305345751724354067758146253459037515681500951735996168207746662035183742774528848043764887907479666492815794817573466756470396545431769741220696104008982709292992446356942905539137517181950652137489488543779973158129276696736960016154206423573925666430826150440410835040499917085555630006882173732760143603585953135048188243843052384502374192789919910714344197656720279067162682564135214478929503128811671213817613304726151169497959336399778089764158980853410749471921678825177699770536805970824286522825213368842324854757064472513234994690174324418857902608151902763830372142796918074129073942967374832296515310513853170578937183411268997572968336932964614629154751739508262207187911953718588594281193878960857685772388164549867220177522838669346779165573319265520891190043655073957180809922482992842333581393370917747268548588050244025940855388936930590086696101084479848498015796135905740131118967415506577374454393593881248023735718638400378398429086028518891371614461806501275906189506315508843782923182153180525212343424723715392285171662825150880610393097106557256125343722629435049629982225297723982139790280473906551284629165938328899625526704908356304963534498123795680507834924960648657155286252311709724525760648162153963534397219977256750898647027990917129135594870369800023276270871999083317274288365125500055549047011096555853647979030385733899340363237467830226382352209254358384551994326099992846533367012261054287271143440785399105051115213348971185469458166689368770246183810850566554839003796496562127978815258659973511901309569429809033338153796201189995888894800382062041936624725971189384670663326050289296278931778574594857330225518668322433852605130260943541429759283434862935019422925053317788642684368894147950512345323996708932561865909608220724275793052153232189880992900801070852188930209110413161915512671459509704564773601790717127111338042408349171462999989764150198541440079244773280532217100501852375654473309117621277226620877572195795077953794694220405800497152322120953619692788750529066681534339314002474385192720332052195806127375142130683069569664521852551832597110513353535340476701267504273700635244776393919033034182852705063808550621998942502521127045887683457060942668327552151145279230413257291868129510532015095865684786922902682281765910434418704130210717022442466842666739897884222060528186249645686130005169722783451296527803259850377951983528896178639581012145479302584979890524381750847998063467263916576606930278135322477566512216888412409430429558441038957510760632321805180310945632997970239101235173753249294424476411006070673719661968725984076392979355339381758356910686914429630602956138995368487369133082041456517471720827408859972842205978602239857095563876515538547314770663826157874385473101274685869267868261876698623068269284885221592408107675657845128829969348913839162137970381247101592587961994237377840538202085640254333777635764840381360898687920941282278977818723152620380409785642228916889175749058022208039285828689291006211436969638208119589855307903959498875500927106895159932948591322543187449825005443137095915264039327325655252442425215782224178440098697617641338744602918503992120997145646626712427865422886715507617400571945073592493624729579508548914380593276200914267882398432543275727092943046744932748026670951461948733736381514251330371858779951626899703380034267297801031205730674811367154275801970594499942088363963533474062453605869928105836757098810520709913966007812690136842527888443259623617946654699371271630551983940451438326807954009291358290304848210912901103681525839516912676909042146865931649795112720354403399045009459795545625532048395126551167761273447763841390109111216088381281350415095001410761150932665040579510158742076154685066266907251621374135206479021457093790452407481752138588598864699337709227332602839104665248591388972365575654612097379750717753078616357948994002878333802757978013615291424013470830796551254514955261104819780508881125126922726917451710564000960876135557620675208607394101628292916012947736597115167061096697132171564208987906272833815807575884650787071043517433285524022915817919261110726918097136008655442609416869951785454513563357416148529152021439589340633930010371247790019198876512185993924361905654073357380651576205688652981784169785201163668008762239604914184103353280643224832742331534215154404020630739989003784183043667510157987084965115232413428292023065258099107458236976425320781970450314239575430870798397973082172278645357925267426518345286268115202809118406248948539823419194528760729135195631941496225672013097935336030965691686576919061203736592488147661541241570020310516070517108327489515242361405045789223938036823768523733293825802160007240393669041631541800671153200074580911393459212115279162289914494349070986731145844781577160040285944569649591985375892949112203725136171336938443612838423592880842877827659245919607282734003115210619393259701633155358947526733616180098370031158898545686868506900930287583060548871280276735115902426030753076717664205037709316345438418871077883315225000855619427791907110945425522916381926529325171133520340923854463333049721913708858230937713952416806910228615589748549762038732856603844811849608580821987388200387993112351500969843488004959456312163232867948521432741392871187609641848949196899271721825546004938085876077225585646541040110229269498436069542353175284619938350837514340308649505154574889959046215597457333586367888975270466410045374277990059714139839289820246737472662108758814276071172867161974137632281677584824259728486613023262209255996169798850572379109216768426605308885095344422512473925902416239695540395805943298051321747785461674882501955072612202468732956784674708332311830739386971035867806100212616142242915510281600214655962826664434956085434571766987579140239462884046878494535860047881589359040183392445619956548634880788440282017830981382431605944636498558273753525609634609888807180333453592039834074207443884420888443236655288003355960717843794836817199634008438498587192469237643774587527778178289452835331382431019333928932197375267048155683813329027201570341208832492992970465832244379230191025113600612690788051644581058551958091130122814554476629816979837987698302526086106408281567833698850018096319259124518769979238538369189442277427406023404630340284541560462953493962974119424501210307749848304458931648103857705810431903142541241702360039536970715609503115910947501570991043142496460802276470029540075373530245846893374803313970709621453001372900539467606051398308272180964442401090592861623285022159861054637775761403080980920323324906697559223557580374641250188305633899456505471717018090009455651161995566516145694521535260414978457588063088385631815236572664715253669976953822728241415528802518997027980321405531441916999495784873175501492357910853254298915588110755889022451576008813933600712357434393480379820373127057713168862784288534512760277629835967579534683087333418024896855709730432276256207021046711387877626941772363525025865799531111310935240836478025615979599203032584051175850312939052913513081665606779635606562745143427829680580701530649823456816829367435092426849389648546066743479559792884536813260273531195163037578331431275757664444146898996796225890948602686352984213829049347502291374709060357995002224652149863850253499175376638098915856943750951876893601679669332558576095300043118641329582956797629829638727436200472523410857860607832484783334539223782187316184818191735298034628275690503948214711779066579621026189476480556470619092979133533293102515621036988000674056397574150953281854107100530170249729268192275173416797103880869555068932126289725578693380134646204055964460632343916110669896917823915395768641325640548004455098878709190897642603666068184051961100761664222094818719151559049987338668129728818277672770743693577047288792330444790606453812688981994829536751833222937859381794884501490186572694514924696063509099864558175831844566597603624661240959141715652366090533807579143188762250671192511918262347517020019538587747000268984316655865805285565519368926682026808835899434240307559377360353675386494498432322822374213318828207725180384338631626145389923946861031508167593772609049539098906288712164276459860030356809582472785549005707276993838889780902589491199707094571372211564760377103984956522594941622363878234026280374110223990422660105270365451704446191343044223489010290171020588351516630522497400203420626773041754348044353623671697068448416390359239161088111331341702083477193225440904826887885456975468140336864075845956510850686926014670219233491862289153422959049476202073951446686325995130525200212713755971450758085289829260574109786457745211521297490848561911838762611043834145107653578292077011822158256719056657199165797150052469859390128796239818105652916876546288377936730943267434798536250295497149663208734767904030669568250632397487789312455873078544200270697680602990608120129110119712336844303360712595062743054953020267387410165178485539594496672243467893750336324544665686911422590386386252726046875445705740499803549888906180228034353136376358271057874430503892285098395994298257131700050983996119367811841060948308116172166445136290315347627434712035501630781214551744539394346836095714961445351066030666005414446642266734883380430846785237335471115543882018529738538372944228586784457131056789549419496597602494824828181868113387665868593951254707663852793596909620321864289841490493842632302425949831647595894254883703504980849241639104104247424695131176295560902991128629246141137006555721455868720541534752166550579750433454710745277549966998561718518397435228783546182315252160604393518106310031314352452054132509208411199077033524846577002792179641771331524068101517861377954117719270389336678576785125598497619476294490753393461911211218466956940337515635484104146547229118206244247859927537890210564440555870638782338541905417119727968315406191194481892460415668232388562674142829924284564375299497970963656320309431767303516252247336054039634029531259999390531175821666310245214135134931377089466428123143038460624277578696911354296535322204569930117260298540157753537186685293404976524719482447875591901843871539056738453506553084884757653974768412317643379149879480162938767847848631326555067982831528000209352104321978167579266106331948041384356864651085581168886562706009259068935141597884778236002914943140412763543036590788380952403865652086307109411853551127040209272684860891638018793434349487382577717061770595147493261903210007509471570325820777207275759095047352832610456991064491290447958132066169444759245938005582141499573147730934671393719442832314946218411477841503748564693472012582831108999284166398955141915207361506630285245285487826035231606376480905075055757582234217656169738523789842992583794607906520291794065672848787521541389037539825487987337258777082005299493421823508794803081631023052077713357626245906961015270794016636325191013045928122230570493667492653889840731806743013311298041899799821801388040439524454799350225172255722405609198519921527143029065051729220517346680819461985777636486884043201369329459918388942100241973512230011799023873351502551906018917793489895855784330076118534357631643026975086379468541365767639587688084945943416445314803912033679651189466647742867495819018297247497338567820979061157158015111391106582497923969239663853362046136034207770499377153872457012382825903327646231389767783312010446562247248144327343873151738428588899878524773633642300851021399145507358514864112240007450800954799641239012865931694369714446078369099844060843746614035143266435306727004389898910881310191679225198457129243896685023377243737647444362918786505889524656712591950947106849938444619702958395105969134340351806858017854272488126585924600248878199437045762343733300848157530019668577236704437777533662140760859463067916682609405113926579412373670050235102293867399977277277314930711175355458047106488288316766272348320182362821690246206215605915865653587391965828759487479771297113928862208286288776731022277524869453890654940967655505748000744058460765554351461054804632064049193538439755146368242325946299918056378953481875513797202178042930973995188261966521592282967979797260186633110212587217999521167519645481004281056635434272487081224341555864488234405603150823942118006611810154546995261239018275107772970447713355554127097313371529540466694165073046780874739391221360949091750526384371812744256123600990456305239128799087346328915247158442202125166569410147519262300714291527530573004758955036365829840461922942147653979858131080613392181970288714590448428588366284977274732667210570697432347800298088852246991096877308982758838919909603643251541700587369619137560664333238764708999084097308381372424917673875226022656922982495067730636739373486125291993235363023507034364694463535595284970177026368333109751419001374298484753647262778009083412102617681866266249619014722485814203931688461933898400471239944610753950639532879884419178603899382041517335024069272504712353384103784320689299590537313340002245306380257479644091284695347902950335924982958542366715012482420451602001331301659055834541292179752991999700735500474042041530902321004169459567498165850301508832304186091486713125383097953152652039124510647637495759863067856594409418233902831857563643384488781283523739151068876258961889644534180362915135688518550646057497593502305510413752591035014686632807605248372901266270010673874957343574330081277001417484093272754006953289425711310762850316204643144293691109053724952366263577825466388080124594614021303602669642152854703349194812109726667566201394825558810352863922230481347153025529916559856666466108827126970371355518335260676052864034644884486521455641289698686841046782031771766324051203270213263669292622333120547912791305805539157753251017322695068960927254205443142816014793153321026892634496484583052563427302889432399101144372032844506770848129233869142151339091320105094346936715237694191577921659961480896647467815416038731804435682070890637178968123957605329692028772675808167947956381887762885246431670434066295952682134911415672899850782188688812170124668023196041032187754656851396660067711822682145017076365275059721546064953265381151642129479421354996835138573962410011203367309784800088929913387975213001694897642875523190609327070546125902749997931904102323017427192273098292676148570356009031108700309708946677387456533795935436673743305941491745603285648545072645416266784289605721192364676619671545567638844493873560916114477773984158295047088816846201092593699430523139726942098124252315966645419025395940194054111277372623434679833718029379950223599998995547063131848802216673597320609317292463910115352821115996796997269151092498581840203087207934491938612339085438540009878234744397031565467413120740830926669950095706573766862200542974065977508749348038180186315351051891476421785721007471774369208535995954877074387467906658730435172412682748147682008456555847957205383638498975985054724932278957549027083270829966513328249371446968499460320550449893336248188446259517452077981400675775526393203330972587922750505248502839773613745573020995874470121987507368665927823667070684376806833106629443352667169182872675466469533892117648206076431394893975281436787064946130267591046790048525768958523733384653449310307807249694215658249688074250109170088578152531671936010321572191277595820046172278770432689007180738604221935078125711747647380465527960660244309942702403700650764436378833502163598322113195461960784647582337238788279548442638587766783794748169498796439581810251038569192318760590902728870210456620068032266359585891351179453725440722406729398747275142276922277240554631312927326571063684910946912973841103194742888718760244426048967894651669881624244441845532818746208666691218317823219463288467916917587262711034527589680137589895352040855583807574256691893391638430835318293984520694960419360200496396874228959362670275287875297311994035938768700293320206247400294865948949381097129605825441589813074482011670757256361767027247130847606628402182608620466754442327510490569507115305828275725275690340925094844806195833971475382256186962248988368289369521775512435605530584925272230176517579793254319496466754187699838379708573333325995797247250918956174677192394554305993976086729135072830172132936484790796930678224751946214945448617814563468079695357960663041989200749925283447062410531727398580143525250052606895744771829573478863347039694035949035225968219479809258426908349532395355843591210580074069609515278940178086827495679081159989399440271494618942488387054392280168260978387732370196387945486262038369118542896758104634478588604996132139355752328746663795204060498375853762927718178987934734805786458361647550272409445989416723062894533560709595507106113864064262466189951798331157663002748741001473082368522716605678402196511798364234495692568480520269140304039328420099656919496410604923382871062428411459354446806359907736194322314329072502756964733241358195089279770195954275152476879726503728170207698568087157400703391546273759731632933337623924115503307046020573604738793090042192522230988233955648871242088102519413393565327815929337224636116351215417729834337966089302449355936021350777897717987990191637175693928564154063927479759766436370524057244528658710345726117230355807339165768049904844884380476604086484795811747787435384411279113562049272376289337699223833652664234735133961301082306454617210467640951468559974329038353234033716183898545575859095712446971039450509985348295901980000222521704676437931694064106561620451132149226618591768712597174781102377906566891744938490984107588480904155560718710784260932349301245291768755072926184613273311682805454248251462770776176765997421753997723161259012198821939115678085121900293085373352853487419129614677507479160540480076273807453800038122382543416211777856486383449802100285550346088932363391155218230039607459607596189517272373208244738589304200839179664879050041354523943421232556974701109682771106158987421780088735430639917488334005686288978301736248851184605678124131607160443356169747498816822429338841354653505787285396372193174336209497355213807634915711810376937102738819102852257832617124387307634176109872284077802207064630832427018174808989377977980267847226274316811587607669155502647865219453850533602697410861346241678851046158193528480205463861852245462602770353777166398854859842172678677456717541213733941793077335322828343716043190764343179752199818807848498308852699517027537188965652194823679468645617401424209258525941674226831407606621390018941837797293363537986609955882304494140599038498909610473586432047304529217137591350565285344681869827478093243908769983975821488305161803636002837416984257995883648256799155567882661323965358420532761370318693557125015767304213693333515895152335983096125133585151023964526076637435346878032978723126295894026196776960027012158518032346194505750549004809248307100849346304440567471812359668361072980665775237275115411575547410162232862878700916554960876269388021855821681819374863416057150188125472399531133638713724233090202455775267756356850283238876316603358279325531877420987688593772723120200630036778689906115257208495778033578839515481148510641934980474709837903523828872541946564790234987021061132657286699732089520647915333888316384006646864121630727232308821119185511076895741797560982272123198780994724936825308489585710868752201576120767176505392154137758601879347202969628434314325058387873724973128464016739237504760860256819431288912927643795141358146248195632564047270026326319737367107243734303208365607999811352567139238715910478516126054206499557570374719760618893790884598778073429417797421067742018750307031868046953864062212903766211862959975992968953663027256776480341476088414552192772052130845235370513606597562429901915630359763948401906792996304301887486815488083956021691192309590916696601071699283204659116409868955842519107669813617835742095718931872686804862189398782786058666156984246559569469788466994981581844959913040996493315160994485534980844762552747339720410244661817919198803960025098912936782859218996869476629730601959417898851832767758260745356238159235326977763443141335953663448437840828797502507860357145227174569055920721005243350929847655172666818773786980402533089134503076238635037898221390770744612354659500957391799997938206518303034185769170419469952644426802794952554905454819028568594341738211912156579674457850966036876408873117933412661537998030527336258448516112276966651554112241791210953471272263895544345425049273520782012988059045878130792922120932555521879290824871191856730785479077649923987153186001137895175375441303698112658700214111317821984277801203059826164720368232609091546710065043186885334350394024362689422518109633331295273759734807404080037851214569070137873160993816145987547017613919986372279574260777090352837180358755193314523363329320766772724746981001090485590169811780361893458381078122173480448750310135230066682811593394166512842562507963120601142421914098517511025723517540879336366247703729641174009950120478893308583935408611121373135119722961929287633337713853895737301783611477489105600054931016593517578173289465853349974913191025668123688446217141685821573268146048461429807033821772286360538777344392020984623103183012236534659352502494525475883034026998479014297382449178129562963819651284149785920464083128172440893030417995327865055963278840968684837085236874431700082992610637897465554263981263569458103305499777151110856003361393796100916064784815959151702188151807699274307625899984895415874637052073373510061127602336663677068016080022300463847936037553348996982421442413738703258639771239726120282452402188744758326060280673255508234564800865686583566654117058167678773149547962873708396027148560544387642294375581284491456144934812051963939150905875038677616607241899030836594710602147507836704774007942601065389131915353072893534408304002295604794250537204956923360846845481214756985053794007564913752979339241827444948812813184705548534179820472454637340800233905457863859164718190040867862509224030157404840925936852915803103762015390677468264382825281099956624713650379997387855920120079819568855108697403195492641008239227218201751710818835799975781092487694941777000555819024316758673315615392813648833107907357834291116373320223986105235836697448171072016242072409692534129358450655591027133250676694670860656639600366033528956337562360967571259153424387924321301935497173891397831015052663852124523880741577574552135599987563821524341590402606057079998317281655626858233519967686942045232064883647884804215512460207971052331744075262912286727041153350259054105864898126240681893327955138271110717514426182155393239164113137335582376274758265491875116708747460474410743693217744388648362201266108103423397450407666176140441289924228556436009153895409075935406735058834566704322686950470350299282218388701805380703051649513189477822814590085267312317080821507755116748295383483346677533064231926937260982149635882857041101283152293075989075150591118783662415334106066779860785197070776452821705536982656445253275406435673416329536922637499143089027042693042363223954358108204312872776003252617869521364969526186363610761044252908162559698297096543871847073492808689505247727171027594964260712161417377400293528411427207799856736648620688193659449105750305268048149293572657873257162379709455757435073518347241929126469940076589533663808180627171218511868908728516265378603646001210730737034955910415411644221876285244499072500337597008379474653017853283568278770996326459187352300508661375398346410096514608052126516148624510753224691740373890984202651640693765832925758748131885222631721072623340866711146496439705409472620584813281988421813192121065574257949310012837639456044150196711269173971680143450641267492168180796306082037478791350788632139199933136173943619540115387378065432308936585003076333613600494115241827652231924998753836921149120431590326198112799337715124922885927849276633235818715049526165537831034316346306631736010211559924648555982964324131572913279199073918757165181776272459677485860340765591588015812800642546085019829714539028945533057893300429908019107220996841240719721612062477332685702837338105149041780992341499292339800187877199000752398300100358063608826972025709948127080961566067721944445703855790535190244170560762968276720839995142193628696116363530368144366465184117042969941130926622706643535786466031274611839659102768894940712891330096076095731165064404417162460292542005212837834289799533848453125792535294284089280312684145360676652935488151594884320490456190748982367277267748347250822272283535308419438910394651728306718777499088509927219840075935789713038910996652870658886645955750968721291827721115374842936011434576699096226298445021009127573335414824846391287726434307423552776750742205821071544425719049707377236868388404360846489040781002644322675883217442149917203117259700140363239980843184128143905114984559044629036229115461429203517352484914928275655294167500761186683389202008934462247312397218516695233957175726802723209718779235069859332104906137121893426672493180512725650633419850615970393529708764051478991236814293596163860752506588287016631423220780706440471226750996616727594752264014566317625349619381378926189577909624124053654511211945132804957878082103159466829414113776303617726703967577757233340061576778707827949724752751126054634528775787964687525425346155343176013361103638930063277850757831306681201576350665117209297859803421467527712132513696412419914988958438842511591468953054965280296503902004590755656685692233548091282172135338860327947949682617554646539267079535641460343810078940839698594403270339840474042927917663801566665480443319599060444603552488800677222199577667060769053190693683658475410393637476872373375338848820470508933661291771696624373867093621021064344515693938757535353710107675041815419590933033551894607500104481768567506708873722732471338115861948370430736580607963178790760842594700275497493388853670923583333129206123853819224361406951858093748482282745248832994522572743596486204253559618639331212703380564360433889135339009194735363014531551573060768125693659616532016452236647647347720664522469922010882815491754298681564357049314048029932140748004509505042113047153601224480379251970670155367248853893640185358753543272820626862943935564494592916826955020074007823694438244087322255969054308344482008016179641515863190284098197616381005308359792605310996754101937589716710824693507074925738952169960315739528938908095142226532475243642780109916940081370169652770539893510054269913359853189797375542130191172066889387506152153862335397319034912678378482239492271518003507431224876524499951770519442950455089542165389213847817208336691379201084909388234370148965364556725132401619906804611926745239623415265759851777173197769594884537030781328627029094819328786201551640027791513390462674767188185940206689406172884531221922741825284364224761466493113131444171956742407681632894822573526367896965547640273523642514027764869201028981661800395558217611553207476393327793667324702640116993165255871626841254040200394457503078955245108781567266645850940391528255551302197304418968915643617071505825866943767551281194232179929842014107425739143892301348431534981348700745564094143424411798590415979700682947290701520343667742954484599689757077784492751646856391346149066000796281107307173574673054154516637621501314180385542451268169656035096192690026340859446277429859603684501361159752609462403765900444944280542621007769775107856930894198804361453049320630042689518381281822659696667899768486539450153526268281212748642556566067629047989880558484908328289837757598585620605644296301765874795239544397094617516780331866186510935915431725494760811116748642843301231590135972046567351218330226707940473599714345282105650290683268311577886394245557596765471567283270368085146872713375427196781020066673584914940999956805769172743368170826079239903164525496678350136611128653083801656441621939744669419627512206423546418747880550359924008627036664858013420203999949901508219421440769466244120588867650006167443461724881415015934659614279733145896190631978724797172613376139708896602225586471074594829054417061777459260437983904322977486149870034771472610712616555735189257627496044770404549319178249485458922821953725767586124557328648525000793642092628052169740172312700483542847721375876316722379680658723341149371590960630483891086956675509328301087359948740903989800508599440893447032296011780776552427552473975805114151143185441010847722258680644888674485938196295525419340014545639668482857075451049792457126991191250203929526240553012601668373187626497358795349290918452864077578329268409613601755803266489763551780347736301174539199245595357612488190463899739745877301677260895113830228334469955853042173247131622721934980075348338937737857251440364438331151057967652273785147636514192588843504290500907115312693078379770944962132846220971376339482792806365323248511131415953012739345203381522196639847163777609815460165806741853062044457527225433092880626160410265814698924455045597589742566743115417994115803148191087582300374759420028632332717814618391334912360500950296301588208007727767372890869608450457360497099650214560790125723529812826221504054771008632238747711217989254509779503767032022205781053617831535835237361635689751477067426194223326500242598439096627562563767215589990179692929808695217768611340813457890641936908218825202523370522939624466049911756338431828754834164090130334051495914489382995448722317561508163579502004999026090140260384536328567644048778450073423584764611308921711763116750971905419718296514116177239327675518470234476769880195675751887030772866256021862918765353111173413353542879722089019570466520115530572764245209786100786952790560443736078148316376362439682706184171674324595143480831705642594788466704380331636025933462135609401201422257758826251611764624876571784797277968568851692103000323195335891254922973617567877419801351385583549460835983723125393517296853990961919080792610000548587584184990054293722319991394763535419405901130156966946650577029064303356551522883312985331736049318663716905099092963573589514144832479699809203355931800087316485040672918710617855071515981944380483331086473362624488853764539721477534267328443469448809549753216592837416605858584703560773915546520250366661610938676184286241912208630010475613011366377484209320573208912041128313338521912755815477475648396620135705824488161267578517986623570748915647496027270784577938843549825759196671249269633048754491907481043203384344381358252365967088522781343153583334069752054393505818780037376420702990368316990957644452469372676555139649588806497084070036707668549995316375534901392656060608478643383946702455120467119672873845001498325741224790557504872623576418219738294222468786389625597166997160980923639483016073485368536663816412675632447611746768791508095009543566534219939662889811199696030277377721092014557777956838523169969228667307976172818495679020527433870626308244907582891108044309758845366019077286660046121127708273854486884086459563194592946779827403750558330027189839450246260204141914103819893680374006042864741086959941493288211124262336989088715747082173917690488748746641882538388707100602008651740081199923400631403289467297387567888772960790573285588230233349178219016664643605545879847499878208439067996571497986401585020124239363069577021985384722854864503465944453307115907808684055141918811994506518935126755789387866756616671596469214314874840154687946288425992577659020053909383147468109024419644270360549631725018801432161060489534327407108863120132765454885234974695414096134463073251483486227797088806949283529792771514062206726747773582610854347605807499992434003008843518055531269479434562850400116032278042091760791053852153577436100806337031834391978356799714540368439485306059567744187604800004518713877126054178492768365178941754495689596488812734103368578776803982753153666408898396768369275180779465301090205410743939749252154565918690889508246970619992562738482900029130235354582775129472593604861367355258018050977633508997878526131539669621660335103605317348110181815833765213925216369673809946242894915895911559321232033664069023204776197378755854252782013287493798762223827935481863224574950066617248649483497226656985432467313415889380091683524772607166365463207734898984749456969890365805548871945730279988205354688904524818543790151087777420962920228999729338074982785013960873454074558051002694330669460946316930588264978157136651115119263191482809432633586451784082229408039790897670271413663959911141335562691348492198975548831115414573224955153880807810193886022384036404248960143016609897916105571688429102458970307583049312208798885453960630342739882794779215023355174688847397376193928053677096451101909896864878187124382555795163076351598952541904127048387603959108961151139350440271241302567061185451857502039415228571684284979953196855331787179049063903797448280771451103988218987587540400952980297434766815989853271790320731442573299826077075092722328255956370015106275305533817575017658882358818089663300855009720251747299714838297279322166916020595727039950646270595504121525811285893293068936711684926284019974095130077236574397349620835785157717646544929402337185250758938075702829090799641463207022073606849519969375615856200591191478207089344119595914993106541634860038940952879374200620736535464982300505141100776900623390774196706516699436644132839236449495354763056048306073179425845434343477744499007843385546278137167841020884581081822046721124477115761911193423441962366572961434693452893109333661088421480509550323933067662190332535124835854790100547594767728346652052911992409980544678115773999246367710082676073500204726175162501504740080907621719033397121099945971424609484959005740588288291506489904934271487088264487606319683645277557944984043196311659324502723997517199735041516816743082741145083105182195547987447089451124274205974612908164848098226346115921371605259595054494480134903940756786770527137683762136685927301581953368747613371488194939522277898733799897715445330283345946360948486005018385044256255005814703432724612410008811040384741170339794968774620961750403491316120082220216569514813974351483166252760162601016018755672735680000510202070264392328202622720261346619588008049707840326440538519681099692583268529437683872967544545513122495058176848038320055754559305626218336177540773275253706081032696658366197761452708637267622892250403587543507709628249955578027093201510418836593506554911947789183774988825818475615998916061497253717514741489309142636868283796472647400449063644794115527940720498107930700700203857684202120398537501721145586667108687663459694330674884610642827060864177812841530334751049080357385726582736508066106388542369890045059763322798769955075998278212070965800027952828726953816022480042077573808379809292201886147738479560779236860888624295548947435644456141023610546792629752949129702678134144620361271407452486911627306041725881167592855838288503971780209102241569880871849447941924950886315699190204530002936496395379196633148404049403606383614300076875388530590952366444392680828873310929652759322868146373400536966956587188643551672365424996959196257531981485372644384673119345177467757890475999375625389809419197827616031189789740844503918980238838734585410260357050927058921141257829565467058495786543839714314998995704135095936852234920837417855292091614929487718515262635155640370353281186394830559663771019575715551379450003331832097624982533522507629024305135209361484586952174947001729648149575192247702042903311743132685658954518161425438253352428724977979541919590361944710894835341351455382561724802405859659691060541455389363980419219669279968703276736205229940536780363189436266134489815683813085601543134143624002201112987833038393839801740690212710126921612771963626459482398494593148581528668148531460235987217034878268152416223371658100370249681689869522760511855493696710107927424609885480471907171796421187668472384020619587846964342269163752253773939147620476153360996447714438174247309574718899476725168404097617573858173421093189342923897920586366866345574076827144655418633003779770126079393153835232899727000318552559687730822313692110397819925453032593045667825774809146936083438466981459723653226716117970029368730262340478827119569228562335034052578897717018250120471777518152872354529236774891231147602004320305543099631372103216695307960401811675598544018160219065922899914241494273760812370932068218665920877820236415399502086354331811570292401690348002634471513119499314229853425389286434952217658020755447506119410441603813456968621101515063465823616847121858350679788818612126847547105043515856424381579383188426639800253104964523254197756909800222439012872563299335536818174347649576275666663546511241433620747673790646988038137746441936773486213711994745920966779843153468773855487695241929287412980794650381869900056476471665407355319104155923073731675433658516044767671859802430257626807137885062822195638075096940272790712890670046659385189387371516432879512413982932044788072862513855404100438522825526796115626416677109315316477297322520236095867677119999890936501604082269939303209268875377023273296863295200062876307373346710104908061907513549654945044353644477778914202077531734936257054048075340901275899079098119650346064563049561766577237384365238418181982280761038441208661926978580464010889681477006256765477060941572325649495222804014016296187879772487659937189116815141365163528507475861920517224986606886110022635080405784369962555869631103958448634042391390490673847906027682097136644838027727593190835659196962753456605374982345369993994487259791311615482305311039380000790744971428107078928722490222774524465590774088269380267818924046961234559420893787534801336005917836871919556663803770548923010757916042367892517922249415740050869321591142979234289802369391959144583161302513604552783491715888694858383295514060894110504175043915903624549883423189158163642061073650936460520618531467138103431447387586337322749234230230535808064922410215295217839411914594273692294071516461134946879421970464497597844139942290697608362384847859032850266452002875578029917115477652265494889340079129924717584541615691526504013551815895617204169408019837097637286590332209148247889265727489390225991328183664340442738324457476697461723069441715477255738596885433747908347328436679730720355834198374103722788230008631863707247872779177926357423122560668444464216192887594354198955869799609458932829080484795469365776375682798270133593727805139898490575642406364243462536446560109492534402466746578872899691538701798636334016951178245379782978214484462895741340601685937593921313606323959428855857355063820188483147172845920827558256457329194877174207009261992236433842721535016090937507107269995961770985141168103959016908434908796676408937868679303205771888274151272218893210307464740048500518288412649546479448074473238938057869636457787015220043434072693378304731076614004260524002809234258687921987614226900339540079356362947250881403024158881576618349458163444486604932845421334872591354886882408898656887547168911839813454865324843014339202929532811221204709463929916035440419316109356156854347287188279180076019927177839775725904068336579522877755091743894296298671326827663773207589765702589046012185657927088500199253910161063741270698068489158903702458806823239196274014336328450692258229692654172259480998132107306976989973163462532012936363165332960224008136675113446333969132861354966810192370028975342067307002752831049318172460128747110633716450394786771607461699019819285865426544771504597114128763208845728117389565880263430959540453840081766485508585281463702566674657943214615939389828944678211528942556611840930101176516650545687075357251746447247533495863430235578471025556034310894424945436773369590378300537594940404693756028624292839941337729799210136905913642901093308056336169360170446894710686504741619837020790392577207428151495364129634505589096881064826357215127640739567747806084118302136169021555241044559715885429387367841689396931393018010245165570696598710891055530416184401222916195333660970948278532692297864869504214643224030036356417189919109744411839341239590390568454596144138986794365826174409460210936012559073692910614749368866100979514794123270844485954993877039957467346737531312909423534884551917035063792652088881502787334090841290294421869544107759042118157878743165807282063548438773307914569724917160104870329288371888016424386559450618144314725901889985130378334589452017912844377457862685547657651571909343952866661844596092776618562047691468805070923727639306825754798199620681742619228491496082210857399162771979254284303615797732448188899131060752372098535195703740097884156470183246859536620631140798769022399992255170221545518224434498827922135260724884857487007058107048670130452395782822799054079923582117948999542502998934482938945717071649960634965216092364255319483659512616413678817028811331926929613795986627859299347137574072192600135399614730497282970248235093046391319945383282541401325207765671167007755519972368969551574501282443688149930514327127482448829942257185228729428775861185187938375951592236322657800248665607634320400644323379270310022091886987304067360903524489161886723472357528083849905783617027099554741135238913732684300957168268175236811632258714939563681485105885935276137219139950442542148908397607681398533871292466046472989355813737116619381154870293968906662003039097302226662615646858613202211214435154996096746994230011369806553058525862107012175714592054879457715520608339986875360973254341026313025720756442208874685885925548754464829192626265939689259078243528979718621191498073600642383822193408261721813246797338540567170445466665644998325503334238428702138290591907620146642987359647986783683976067272436440288657215106247321190949891223688759095552381990213546438560475880914298395668656968471317305253688017927736003575358353876199218965019892538617485365051016248046892261108706516597661179151448654797060696473265021791938808280519110236699474477953355647943605054941576627747979081419689227001175929596975468964649482030536965833454821485328371255386970058562955551839148976690559496154924573602630722183535589442325854372543438592541147586499224047013153512359023390917084475506540267964579584636670072629503886829255293512004828604024921441624332116640382291756989704598238827374330507237654000528492485286492475588112081568414841278807088488165153341865373261959758210939732770885044472814215578943901642482870845879449655991155909096498336455411600931428959338661942604200887770438249365150246246619064659998859430545009972682181019195285202830954637524909848081955542854518765748703979935063406069084591678398889070272180831136708372687047750100580995857078829761480324558077363412752040714660223402872083123514726520299574184848386659853101883314797177057082407841244642377730738030123300129548678678973629018855064965995006731080658438334080119089159500267984318135843420317205495085670616669853302653759815806070180807771762204317013374768522418355386248994319215723313876286131575906543890173291938593773580157003075142261086346853764471525819006413276293445017579206773583922043910889320155516307595532424078595650803304656720401731749013211446904327670736714506864343632719256103632815093270858407093847914151788983926288440730387850954096119320504074681269432272265484592429896169542893080408165529647809327545854631043737756770924700533068271943425770108922400483233969821449114542459627272736612714503258013447700114602841271152542380707774648435886043255786373817670788871474935474289817135407073210153439937061494866237994861588152028092696090908431776772890558604949405485506279339455987004164569641112224191200828855981831593100925226224870901959346136535757441773495506359903912242125726122121485101523825633423378499151523669488669906338806606838035247995429452556141183409241294748595590328206116036862600356309745785510461883313384762298190432025654092643092116047349680861693008652198075234478055473077723718097089533502211722462032277915480932978121815173471448291513292559745343035228453105633385008800850991341423589088243460694887217703136772674929269452238319349306400658380746855282643950319656658105200277479278304401845370390821662193554415844538134230803790222665952307333308793684777225046149228596697467677382546805519523154011608463360415605042809461248129562318851172359545239219660941343482482079647852392780941914666533295198274446902680111029251537091457565274570542024760882593952159246156832219420851024709397658921747038239432155153256879960348161859646233755435070234610561203872556941349514463047055674351523428341191564685136467419564061711129105595402644061479713320883441362108956529462474819873176412167516196244610601025547838174222135487775533114291190262952076601250440877361595418459148409126963630202929481702793558180498359996548887620347418769688138066755108034828828229345970147334486363479055805126422461124746135767861814682880357026837363782888053238477351443871824911113543122264748398334411823069185955998032836376350090395834531520862171808728813020804915736395495483934464544725198396095612573842292614056979369466907195810242974504213143066965331572905139036923813262932157012598204222765286935671396445801727268442279070311140390675332295309698358455703853987256044635354162911671780087276464536268496343825884738973710486241682982337648523857408763941373834255666467486733821043958634371098599001649537971421698068047087225482860918493946330341833495507383639145519171405958749582739195067475115615110062093872399802974382576803312971656449230771060028063218600113010457508959033662396991489503311245386373029481362167749114922959911212347754807218615629130772954723604044704026750504497948266477865732637998506630447247395771620151486404880211309176036499261485777664595440857021106004247009076024639525824174093124448288944765630056415261113392200394595886161476429857865900231989669850016792617231798822211529282500314733147099120468080455372168908584172800423749141146101164374813607916062683155649001659893240988196437321440991588336500787358372937832586142581046584378961811029317537114346498177462790580738395832644024454044040742212222880143145763668782660926022822158204552127971015968516098989348698852448635639687926639290692811369321547997373445988648027095709868655912833726965531051644996904202256041481347324166624647075034778034681274887805741225568168520252887780114077357333599435269326735216967698928430354489038323289970212343594775203913584294193433222136328742671967822920957714481064862428106894244339400113280099682106982312232983831374278920812576458536210520327539520603964648850215368857905366045225668026388335087720299929125195162715252346038481906083944786570857939628902123123713463462893016423933661339976963170660758363494129402783423764781882603645975555961650224211865064197189672317861621753243504683156537300035642897047795185296274550568273187789041188407823283010628028779630323523144368758144769632561421753074822998287743953712852331188291260383341464839226603511887470957572622823118327694079357490869867521094938833545289624537584184780993341260863965857621579624059199924473298103598416650038720459348600240668092485753747352467413316742806113189684896250164377728855866464285729643853807457156255306607143004369792904456065388272028966480542375764123369904300834343706564697056806149700647307280513209026953837918921660184597901698909407490744700452866474118970761612234533668246997239303513369282864240308524092724169671996938228072426270068917674439462258091475416007808039924419682711840177566925316655638365490138883671371905484378493367084895065479855750770808964529112693388286902599552275916992256681952715474104725652634570815074427184633014087280718864184739914348336317166973956237487653931689893800126158075548423899255202474569039355226846927725643483384774546576235381652437047143045144472742819700277298751206367737166845606473347582931458516059239731165767377849751059182449194255928212179684356707141382788041030286621487344408295963467971430816438045087576880596755270799566131877142046482265409691355578848894390946971079352590163948404974864018324242236199599619070756727861698312495284222898611361194419997857131614954476655749772385204316500463076533940606796042326123324300301572193194074082686247467769487698869906686757646321232885404457825500214559809732587192082127131141060043258661891360201485480452167379889425047532345268774882916968868704098018891976099968142961456385163730061317337457399491257366394925738182091680640453882661225983802661280365571243402892431464364869644848536609268056013550035185182153608918079753284025157772804124886581705682659416384219386062071592946382762210166658218254309776338385391426897876543963738583592666581648670841267256468148395041630769620542470188581364764626540280925828626086398881783657074837268800238167107939860257289312411831969004465798276462371047156818820058184357808970427904681512992511258611138784968580780788775505493519938979605534854464216047427585283768341867689389819062323358538986828619961491828546585382105838203851531009490232855696180977307154670740919369202472955036147437645980578477613085197758200502105791182192710310364686254558592835125485489794029658276503957328079545657259642427820118078233330479780814600457365701206234664036565999910563176786755567832406335611242007137094516590237391285884128030634482972091534705706904049278991686156231689619911120404315357825225523039153745183330588922778373116548485983089081260485575515941117698569435504519201170270500086862871265378861798222983203274938014648978667083898259206911893886338341698052149316129444190198947863624617187017478814462172384133276220254792032788423802292354537016315213846512476023600854706851380162964969312992388288646633028574271215332759486568004183524294106753792799859483242401365307711156154756813601662033030543994924938438134410672149078907706967450927312601195474974675603929697636761916458918897897428329096241006472909333622391383373073582066226184142235476542726116070297980606622532604553436114192918958621556975587971295994521231164018173976703338047922671197740001529197003496548431488804387350068236923278608049966706159946419289865265080153034220792667271209369516321161321533996449635611757228529550882785980018214836563209550490052553269404420343284386845330404631487053214011435203433452585886272862023384092040612616355077134785232126696480691265278971660225920106135049286126817717516977284543024463378922370687053423534577311691110074904365816869591022479078429379873278294457530549114905785289481218379134110891615916747854838663337256936632888937489012163968957329030755269758548824103234498186351793811970762671716599481288559833918059114485765393499409154120184281223322419021964733701779183786540964371406455115513063550649019597091387257783759936160219917824869292152442428879115162177782160230804261413967243256155798099770783539434477329234996854344885587482012014931802906096448348702312903762404736302250462896060522483033833823150375239358942111078058486746561656759202096389754860310189146647188976219549156339026876027535952776720036419570349283213084754774430492851972230970440918700162922898438074931201215335586775830785037107055202401268932052670006967984538506569733406486763705141250223459914118710850713883778159224373195437703334067233960044459233057706951517446508664935262143306280059031395738678837136822120955825617170032002109195258526933795011305324476196675081283163326714837984042700175450321626138291424301813592892123448720535916192390673784682857797431193455198299750458982935858050655708546672097733602282430679648409268396874245141980053752228051221919611564664332176824186535829153014956037280702453009963479136092381281884017735715431036492654928984965269111481865259064484230269272460240318083220062837836646445478631162101848070207196125612722346517903897104342302083992422928430634662309600022782328257914106335785476964044288961303579117859572853307716932723518705215944395999746870384831888802811944148529235337367719685370792566774663849290969297876535897972813740297807156825028824163699012026671108546963095654526629397026959878496131756203407104987695778493218450521259925281736465172915537366493374876485095714293168921587902200414131928412560710990337243658183146812358492936646724270798258644727538215034359248244591717668660302438526640046305073900771753657958217439787182284617654328570292062896831875362749216641616595805278405367044487476775671306417539661230910407326980261302904878802263816800041443231813468764822206369708117834976351936252795098106335507301586598688618370747885565028379788826907523988005861057857577374759312419562139697276927900012233702635821936182723367961467830216715771880089083931925973847396996812953070625205997408193669963916481227253101399627070008981385196894928443294958853495644365703848781563266614822979923065074599570875530487381739824731692934845320284259668614857521891238129439402006744075136405285404973410830537995079317786246471407181473070825935712803304107432890608624109221348578747954511723906186130484130278644028493354278168540966774302631590082360474491633859456835339098474846370550691809030310163365925255519740024114064339539942456500803436183340951309269438124787253098072631667743279066913297111164789719663081510669325698936121701350768979309009733289229179420228539898470789559716653579540335563287211993932778286460548339217420942771679574931712868270535627762404402172022064245729510264288805199553210932845301220174063300009551829847004702880043569977395130078461669317007583769535744010853931028489694854104800534604625984934154707864854249241896775768812049762013293688959806183282343283257496135711042942671022400474963081165576444965190070331506435552826940767256537412838866242690245314231813865236694901462178598135192777181270569921400760731924223039221249837917904743808053945539605863454093867312892403443848343411596310513561034834300623764241637600605284309373248543293627649337002302980564023737620375940771964789192899537509628783612860544361280869464943195769754648331494916678487351733885437125922053531474843588807556648740885061199703256660176846162427609875838035236270180800789807796880111973610717885782096270853753153001477430321426775069914411983612151512919720112607230173212754942700421843326953978550976706737814222279545809803583334846574054692118378366277958130052152386810363410861124188472931230726911040327157579309336873372453288133012734045758236494359059852273631767638833029754800258215762930007304613615550070079505921734309077849257325508792882681314184983722961821519560379273688328639909008226355073738078602082814250539357622035086480551785860086685044868304737137651584910187573913928057367704308133466644890864348724022426395574952879023434783719363454597581729201865987030328072237777848915596674243984269638070797087954042969232720822090123573077733687316428508297090860163273393559336519762989536718183750145532745312624241749840656611195990594782141928376072924624730082776986174303080081219390502187720359788930724445719169345599751903762105321107597813177480175134580492014322928919815132690840789328888766072966342086181387192333021880880021025454538614663596759385500451419665696164171226911626301774949490167457820942718361708109476604134802136230918527927133362148545057857100795384264781624999054096663240931808001009904749402824534451496950522377197082818405784967561970136030274596903342132806079653896124292878255951754330721250328035986649410026719935370519419864547237942074684831261159343156736705693751583325118982442367342299046278002869533292717731157145014038435495581454963134341222569582908192473188517853798258565262917634747295234141617905662484151145920694385638945319772886405366272855337208038843659352560073846067853857402165722024670080977348256496868563508199272820609628706533956523496998213800601136753226479135441921604194455797130254184544112677001801729648579048038265830193014741813588604674904855410079367640633816124698024001106224386775551242966913206960208621286264208849718082562262842288530324582597776968921189987628680408307280724895769535626538059775325109299688772521211630746480693512862176614397819849590551033219823807777946667047675231161001893890156730953944766277788641568259160124584219640714490996823105243018869305632646380695583759652072364531603854353558584516626496203814185334379815611251853908334885751181984303375301738155087543097149562757153615150677832332041515362079161763133918575006411811121879421574555115083655711287061408769537555682152187976285568041365461200262498920296614438759735409678214323938657603900991074903250268407594202258877475510959331406685912924520762528860562553802428049201100695138152948633705527395427008817402124241540048311286036639776761845481342251814836020754923837051843982053042437706932791348439292663929762462781479392315292420987484729420265295450784235633222741818838964568679359283679975504390922917953457814052642873340154868348800093810352646293511315635871487839951833276365144900035178840128449708249262515655900904765045100927756360496213006268937395456877066200633216760771663828149908619862171585717598728355780753124429345701040269292541720701054258320228979892529093109831318617156833284302990308063835225512310712683361868108041962372525939035492689190372776172650597660103945567477146079465307455996113488402947834780308710680896488468131764755498593375971054636438620733702356092637489450329955278239927600477786109386933176575102812059728250759434068462243443719501813508643512505142348921908629636680404779993115481447006701507568759695079954043905587828166483347579475624113485440931157347046723316049388726413199501739590816074380443798759094657201795022222384436737450062389561183045923242091946250990890752762947991154339258755628282537527558837131418907312271984182849039467685736316237246993395171798592859703168713783000220031329929280410088340219650870196735519127048516541957262018718790990439933080324147447674198236852285711245388080738842761535103440003795516749498026309885072009988917647107521385211210963113891717512209163160310965533583552889498179331288738821976808948026337369039046729415244512941572706750809069296780028760974015124219529007241325206569067855220420175673087782334060929285605136205632913301928348746782595728113851011054159048011703825039763886880253252379359527227492485012544902836202477039062678375328150108239666741630126509703149733325662566230473002435397604341818241807800389715843123146637598148520137402280094425178710305781154940061246144995376997072937435216600101227448150621132018811981628600892725935981774108105325843540270134530379809889175675249041005710364083505797428283680674478756114049601869896051424551354409710045745903352127965116744946102848579876144268527174460793304362215439305020428585212161384668856461492032594620073492233619894606065162907582868316691393012873764451663273558625394428478004544422470371746868560288876260167433413472104104771265918901137467907427720472741401834680223920440522656730558920346190223594915089568379646063070799329182962389868645825913667135671187993368321742770293704638952629332361370384404474964452164149113139424474725885241919593298987582739449693001549862500671607745774521463546967472805363534005238246397116947336455616151155142086844076279442212936651254518287645353368015895925305637774689896018259580147610674390401262566880421004194731319357880343191738063978409524134032994927991993890530739151032988461457540992634578401105825171854550135765779359115690930906630087720267454522729000947043135262577963315819687036476488002709032484623485665513839806240984665211913207459463456900638756442746380231697499252270810232010641814935698159506622720115297342067573562394956245090055822602889205956296713750467952936474792274763268873408054901148837382681650790524761185261983594090496244424975578053043913582391917477501502479770247537358435003230281065226814722591482275525754147528359668063617376982263266344348585147344351528437795837654694156517828459352223385757132236433473540781691209596506530377259008923343631033313358590908624941264535931276621880024742498430144478243940887012311536988937277096819993692995194066318046880500238289218188303011821898262140122500185109177597327540930667749593362943984268058556652868532348501907937379723624516748736729764212124364244140731428373836198714125805307516795232516826774476812809837026217492552976640675659232196674494332351738128297132508631480901519140983030824699344928960430690113200955302488041281325423342409528099154645505370275490673025948142022362155165694988751347910229809936504196842474917592075462443909048630909998662842862897599587945262907440371541954910896488681682926960292312205252067016599262180573670845481540921571701440483354167202314374729442588168126079278657004724047882311258704885167127495589784975274979565043978355160490378326571002100583795003962723733406573917185854353938371928655879313232845551450751114967136469326816871106733487475429134051922877650467532488542407923760485218211602289347582258035167626203179535291889448297888645112829738926188772757248616511817165190719909429526807750451955598875473777682405248602768413349110881656097305774305478324583948346473468468869722965656643725766824379138751454610336359090486724655200693641527739035219286448514520987996966941528926532312949387257377904838684031249718497256251407639879893120597230047030185013211629713036793566380201371467000009946597175707856718637920269268919627904217571550795113709282042446564950337715947637366099030083615270167975136390647627383577912100496785025689689656960593284408963114486297726105170680600289672044989300597687285156906368347999543503935083377546613418654097460121319841391809878474166156069669980855066989177293938237389023975371334933121517475467226935926480499754384191748317811635392488297804646263971767415904623503599976048673321726763137157862990708576793530170521423721708503004656495469889727293659617335872176213883727609875916643866965053960230926811580594889174043568641805152800163402123361800114666397152830338139338785794716923520028029932425135793815334275973749716930156925823994994309130294704602806531537234991482151970642897820893535646253988053807043058010666116580119928992746944898853378991914079824530006151091402341263182085991133721839541487423695921989639914495728418378495880666936845448920288880247607372076012587629725267642515983224996794930157721432814571008594650665381083580186487934861582423914195069615787458792376012226493846597659131272425837719491022466404657423213517590698775951603518588619133587135995778897855413042484743363972300197414256381902306885790077800925546367434383911087714545128486818321888930717032671209943121133969345315723575081273409871471207613731259323536550110356989591795252102394279719643135446296898247957364408554706265214571147097157001873488548446086434690250438922015829722976668377055662757585096514070625518225563273324713997119824493479376715028400998089105470227667184007151651398508007297828574852336072288698540584888389113041567496227178862639598429748490501159848497880535955361288045440655713908893054121153326222504491645097212114663237389691405379156587833377842391232790099241530870442308774629874253180671170065043723457765032921280029413142397278263050095626702123205452334133531955555947830420285640786227277067554023348747721752134750682687336520180585094926246966296130080019693050707622558952199189344608558741813232968172639661579388865378682066368801121433177580994083720791104832950251236369023564943468028927588745719507944031178092288822737160628237321474827557605364598724625817552372716164435040279745865413897242892151067865489112947027942924440240829520959105072165555036098250450780393109684794080331763295191137139311133134531088513889503452330803499859347590588517157165238653732132246070818064415349783127400606782244573311621067753353736072001709973067356913844891969035199552276445777113122486274843492096081896598020637319656811779638513814413961966257965087878255614481711439606293501863395484550749002444540164288303852051816279247572530743976471181908224029864258084335021358317411406597808322184038911029931298347281635173500804368193901635222574457565805280415445459531711432266880605524963854942235586707373441551170401430784632572351632893652593382265049679212306303159533310238257492612394396552526627456743140381280727285630392993957946078378702056281451585620207967726413055189549992202575021308428037319896148977867996895445068645980261428815388077045755333404849210763775269961980829551026778461193859573874162487196749658236624037496054553745515661507398945744075788355619978458880598110830412022806534029147748033631741037719791124675737242560706907809499610236292040229871749704252477826243790027521078852217679267531196694046521076613737280199686802447462056826389414420015781038730635526982682373310174543936684897685975328645541645728385251852620935167452406417762116586333996486489323239328748954089689702129104156411658830764703899351811589125902783071508340236175772141762158882789266542832726836495558140497581893596234121840258592045933007224531393383308987630773220799115470348829815750925184647838686453385808115239072883819206280795832279655703776757229661652779931560169420857898867596948142211967337841365132325389969834095485043918186382010596019331900241706892383219427781756463716673140468029295564009987631910999178763064620450192748969614112040954338182973494559708253920187004868540072702123494736090871936947366510629393132702603259022210119067807090428763121925540411797864458338001967316799349963514786298662426570294701442225050869458222380589031860078563360869854297093256898241579769544664221763603477584313306301746359377512418822053440917849190424109338781364264540746451538647593911596105173669641957645926825796929746345963046242406083749787421691792850328394469991907259428272648629432548120774507212738105189599930204047868131877637918046562762733639171726492055890091333078492231153657942584833382849905359898912250907748857061802591643431988284773025821027772301207196000290414710010837313261684066627127074744277311698220261775602318583160894524729478907056145586299459099127384814515074092961044785640383046980098634184203941472539904057173728511815195189298764961537137111581140019686943941438922328978950955143880372441248682492817227652769105531107749409726279805288229662449745376557484967246838902672949533694398839018896520240022332078084084950625708808990706114355689345109760607500046476257497808515991876423485992616531562467602647276838915325201761926916034406255508130396552813734221742845200024971297679055667394760393801678863758328648824803865435896882348356886662703513876123329059044670737312490565748116114211375059750002220025271215492542254951057088009887073197013315897999379645629412255444400699397937096053785422819017414485231267769480056726015355741314429420636005358143473770619844540180124413765842464867518002819815067985769607858233262077686492439341363643990585258260758911843697701229154417078789326489125403137997122140090269056422142293207424447136185391190218153240454750432356725041202091100717638886692301874904760956060609353989999794867491035406183190853739974192997888746797318302855350994140062131333497062479942665499385891895453242294343664861541094528503300201572722702439493104127097794027166035316052141997632879716092347216946199207437496599087565498549471586723076077534860544473089907002042835224330834786261282214484382496519045068932371530043130654774895300827130868698543814865620357554898396213151030532602006703403934991855126297994717071177506336755042491274044258349640250477166001499385792178686540892747410817786742410160547971970580684616313024558282721075731830182774859569884490004726254614205558926046073300444385140953072871421022912762420767491083697032321821793999930085295237008621655466437334767782530761131915475145328581799310801105035444714563536906756556418264043567708831519030977880503530250332296130543037896334579556106481627274278315931178688696861255745121235511718235912915324631655115100725332251557533311557652065531170838477980143551796323021876137466695271705091582167377330482958084761826428244929523036600921249402178232665698669717191027258270468551521421902968236159776321679105757195676643251036212293306612139735279067010717925733073883248451750170471553552342515097567018590567266390291899137822197864251519210454263394984562991291283856774029822328845036835743663603187997978134809818609511441061594385178854009753545911261749091798287956252509732576036755230029385483627581184743675724958690601534452442921476244453712098377688549807285595660895391654311589718248892614367802494982533046978275777781200285427666871494269101842888378945901210648828294579686093260029765671641288478212847098215792033518126814591408736249907327601717580748199538597344539936448740264012488126882800027473604715214468139122560443493757282917782474484019905607632502253767239799064835749137586980423693580067166832748544429954256081800133887264182832652833102185453979928874039917985862977198966191973736225071165969365315922646754201365211711811562902035991067632839954719572801105762396308238413453245715222993187718874927026562679520608007859384288428095119908806178820047360604169405908937209082798131400984262869586298414760651830382677298265858835728589911651848279824046429426596943376711367513575644757589345042557990999482858163976579316500393668723572420334017791687109229588360286600463443773850309249335764357057582415397093484531921776852251401224279734263735884460041368260935788037389465595345403817218916988789605861798193419493349094439558672169245302646108222384160933338440800271682222394507096113048836502791761253720214160984794801059988550809323353780561449685662021975812121148903867586808330422358045381633076556136882994306739281533710483463963723276861282340059291168251111621507395930896909403562483779773665938607027892255914973607171384567945525160329776864149621026896035237815271271120242539802562460997945484266383418079368602843974382061975959977599703143802332026407061818479853966678101210066574401609663850762991638899192418102076424235113331421063011971026341712529853637372060761707281861796644623455291198521715681387912449990408820368748104674749082792242148025309640520473370593307994103179195432396849936178827029331692303058850297756816014076222809628088873547667200804606708415525927970320349019185725707673410411866958225684483402974022596411778375420082278762574120765043992891109188040997816718501609808443460147586927330899621227386947937925443419787496329671020062531725040743039835820478479787383984635827945197643886230119697149999211121733062964154387848795968231329000163002667017185398377632346268598142688970363834515257591927546788301873886365525508127048775768684531956435466306314667777517997657751570046615580225302121085718817018690433481457074116839691410823963700116327104561405642232861888161978031155862806711708889985179587668199887931770372259134898216764356521855318243511341486511526079859531927653945516294094747668610931897143216920168946585410722148701132892428026939438062953196544809279875637682273725436179940157138933323528973229566444128887042334382796708689493519098533026903615837985970448333649481768269003817509228765594126452048941443994818326015129170955165543870115337218287065734017111547385470747831955074772765587861597677742982841060103805327629119727186046794612339970337512342434541416976825595453216954881121987707338772312098099702677113912278218458302598991902536962883617669134523498406494255891541817082617754657146353213411480790242623727904846338570387617448916673936842921865188997897056563401884015443384589967254978140374786679326632021675025956498805223379622736079433712784236207968048718923479176155166175047481760724452744786526338868111782685067816329317246745001094495125167518185087603197294851114707280312093686687372466061800333362273046641112929322199910631822054908143170232483529749737098735162072639948089961131822305505627309701701145258852603695058500010254396173689192333831330510222722997136496560571380675600461865484445337204458415110227515007646162284254953648402291153788476830323546366712763243084031462017110320838341418565865998486190962170185391477505071671105718760169537264151120594884700986794945889197197048928707751599222406496702936119705249959001066185992203870803673002604265398819977228641502350351310583167101706846813180438202770380993338213683116586698816708452993326799650847092664442316709455457920092878974981964885432179470375296144953786163733689884479012089465008940768420565335853734015291566234392027393572082131846483150175773432448048934342657732646747836645753070362378648119308122794216865329067432022546683367596646896511115104557172229476909779664594512198346953096521495897700754665303568111076588040354916910977434836690186833354956986576640037818754169414212099940052693898086997045403167551474563180511427854738705471886703872273550807578357513382400718695927883687260284150716519453020183653114837534130271299356259344005085460758552123932161303863534702403260886782039643634168925070143733989715339565510917500637666118312717153193022304775858081450811899326149502940842165376008690957952798083247544471643433605552858181809505834660329498887237781253559575609347352758159120401772824851131182216147011565258246580806153661031727359055437868594668652337369811062887852702232202307761321488569012270137337754920524619081998842948904558837889255406351488697150557424163469851199042209169279197815221770382369413393349226995088645195227288882500709165193519469237062419773953701863059718544008893083022876965052753357852834698192036981782089850204832129306441996655926611823153364287357828583507341553358158019449871091339937149866588099259749513856799814003218692874951919206960717655284820940211164562105045877780275539679415408735221203461861724648281345707730630451917841098151487325015439689593115420439295360059483032914648147809553960809953845139149376937600239619448227332074918590075258659815928931920022061749103679748391146093377019503178617950317030785159496061791528991881685369923498878999305034199837526838275024255226630673702488924006522762851388718557082900349629181059512466235764549290834907363638456408521831462527300131920588926051093801994140022292272728601589170510736013806798142922750852052969318789125535076613706377174706016844085928486844150469915015880304671635961051345490047653476979766580812248075236476947555785154802723054292871440766553264148416325254751545617766170590445801509717293331740012055853838663192177642313245606055426343907156792465478582873582905589833634581840375519841192035922753183996434587195488027505061388154845828258969086351689415627693657542423832723332586848085126606940696367863882390712870251440781476720755018071667241847952365476640219113809885586249119895469250209428465824486970095016826053080610458757680427909813830104825875777073240003066769555293580662621030886352630291744501230175345038167842510879872206273723737617034061053065016943260630592933303735333806900992971978978712462251205132299351763183510462857964936275972806353099746156329534245610530200159014881449404943356893782625074622263756268554085924135929220741312803130634296035241020819114711744193068279305955902700680297229032361999005205760719688806373551525467125095221500448111341166641992954637398959705378601031179605702264862834581140680528776760750546919823338834233205260053268342318994207122571919244845206878007485384703736889611563255106551679827681596958279618742404362538293439395312535895163268512265703533794065732839771122504312871944632691156969453720428481911796266691804742252216981079250077047180315286806444306050923659837234939254542662286226615755978087061343704638288987067925684204436829375582575410555523781045066107282397240429226214396336742550691886126093857012339971837716440573303616029315958570522291860266383629905286566249619507346305162555652973836604560345657536975073419499286375915606541739844555166478095111859544662594253786771524224213195698211326757933600699162286228927303932967250480350801414097624796619709539716338009799660940469266105138078359147166779911888028136915871942972094470024172347657279057160275287013470349112711741803867016570345990606000425259117848830144251177341019601593381353341843316312734777838224148619262071626984633992061076860278001739730803643280423023254675575943252829179432241491800627691681402240694595779340332723129268043939224744841351559839930735909496115290763718853978169061873349658007849256871791709153309538557674859108437810823492256419867870700190786489464036481033217039744114528183155477168096631975319016072044955920891503706523440901365808424554628243392671535404569632773869021236811052667582157341355342108410740542317159022434112762753632683489433244560289465347970170248100468894690353925172935871131039850885219350299918908824968570309828631617093082005540338342174641024079189792070885437511595176569032654509764064326651999105735919022785788973180740831201381382893623235782552404818463719681350769159666638592344090991239577311500477109954067172572509688698885963503892239150391281125874922226953989342958149059021759216177305677027003177159332521707828990942774888756651707063958241642030347528236828444977790914202151042953934177698358156008775441409205290757627960058683391250364451482962908505584510898352867711742093007474955928758703441823855187147147619851342905747533657968328490464849502771277544463787900442687764921173127269829649237132273718729444097121921772362714445643403295230549077128617006597733505544753981116479985736981047637199248556819902116987817741521975698234639062082305832513514719099696942341171459940394230314417772172843408120493774568614241130297344196193522338434262906069723228399278922878373330245566764858362953690111887428699336557818924543373906705558397136221874924870653413289329960456440179052508447203618618174271990505398890589683701130200182972449186239919428386187212817918238908505329893201874347155169857869108443130210480852462737639001489090282100835225886869652885034805892769302864187620528672158023731453692162461538722797738451497796659894905772357300571823596873524459646823122400506864610085760820480530859569703273382828952708999448522695455458282927023194036127891505238655253440151228142677705124681085784176150717674054059939723716273542765109860236037492017040473396602316215561634086102514844006308060586528482289389977979738859840869042566109270181376286668539471789752203261917522932064530723583456523868595100202477495465705100943065713683986638532399931390358551942488006668462963804144889255901813609033882697279158286827449652775544290279198520016509431737363952732330136431287961999029759510622049685453525505961818331505338812985498808539715343102914729645554018344812822656729772135817254056992761475720919204519920530977940528869108945182300738439401636226183813053005491694420062724229325786955751678249834221735178325318800688520088283159635646260766120436671434258873776300542772529305341412140111235895247494128723335821541956734081681253701246567429801225282580941170771448670412400332454394188143978034470315139899872881827101160116489404066838419697076364208079290818106860083380294848387839185433993382261643622684145312785973634863168520717389011316042082285118150004683996187946521718279153651786841155216146764756637824402400679474900239096365869316545835219449850113870078536586305069576257207973347650503051103738109216521094032642054590648045944418539484251747820460780942347608861493677565807908141378822178368727834502491050152455621873634191259923526328417276735783219070661107972909315506091053308176562732930404081138054005842754775324439191238713944248194472121119005282580486796483958514024739435731063126767234344996512899985507151603364939745628834019616225133557907691597784793837416698959560272761395919054030686263196814142074289179646675131533885507250541680139549439366027932162462807606395368980510203296289519989182791951563913133217035097122773921433079497165197634961423265836689165467097933727109844122986286533353727367591643490982199702213317343603693056164828154766580928618475160824546214172017257654013988545845313469667840576277252584783440752855722545170450672923534482282772370769841366545124922717843916702758336684815897770975452962461656466263248806626156048360326681262031162278638027015122065389510728477760655106303214151549666729826355385483291383789666670856056019995467734884014019703498868222425741244260137817435087797959683612094863555943343412999818504127215644331319962848674411766882078204707726618840151141395173361357223511882884903582862410289203391342831075851734367308123502544709628130649267929619201355215600321692676534729779682948002147079320023769662357268847187199763661118869582483474508187705493730093175696664025242377063078229354795531442773237215418130937822659758049830572044765485815064813620793728057814773231839952187048672908270342751396883439675538941453506423136703215121483854278375568824252442743581763241615434982338340606215153617369710558388388718319178166474771592373896191316458565601613209776946667004936177191957887801248720017043909556048812883641805528523397966266959680439794398204388666338617604591494772088620961103854683550407901226156290647841005653296917198798376808979910065557223363904116805165173381822328992672308317349069661418969682338697122021022149916106952450334918225619663383833793667212174859083896577528655158127500465040225347769078636057429310658453636171018815217954184618044838342765628503781085581675770603444753403240309315120038080659309448134415360403753995709899577777056026841562768878225685139355408402792007458906480976062598588369323451694466844488511753803752255383254628453104092366397094179654766861776959841009032917417482696495605464885502740682357498481818865729344466077352785007627908694607277645489975704466465106852474046770737550839461365982779080863849107782084652962729339850449448100015974925939264254743581587318296195724615026184618384260275931522181529498024338841644054833076582290062457645609818650002382429953103376640054839785493876719347352603772480520265702092426700647511611781378912543216193949722280806644863395105866315896043795300267329732497630891310570976469193647551188958340667196992014245991327785545876369474610199422318410801096565695738097568060999024604088909627695093052766410052890991925076688916360779140998366007231901134052890042167761070590884421015744514371488550625848284641198374067599852703781952437178531477548913406051730493023320359220195020661418331807576396949806055072575285119084219540096864535206086224391242313311972740507460223246662094157580397174379408234542606736218861510332996696448746512469990136203072266845353499956957660970156750541195487645699087312916814507863878654345136159894061168949999039248836717697366944980905670035665408322980555875826445702621681748091892216721762387161175542955101442679532323211310525231812931278375409477154322452882252738027640971597329674095250519367019705969983353958250120579625901107528272731816343274480229771469358166997907053951549973333434340128171335052532552709517113760381571972994468332833618712544285381383077036559101971006100697494481340233037583653610280011645270900952240845750807694557003901740191621384971480836140549274074777661161829012882417824088854785343358485569913990453635757362216154599749668553739036709858797752393392650237784129991803344070995496586808583240944794954696005448042938533088416586690933622489109069703630413050944217274843122852253782451954427335898879233952641812367981029595068992475371897179480781086635699599565844935102150435443865668737352662023504684418106866980323632070122703089048734840460105716549657511782466370694491949083240626572423194773326170946493144077583871445447051536940339479742760099953993061562471172169726015048516162354749365626664563473298479854676944188917404852904103798932116192720960443408186979617177735332581671467626865327851300867197237872051112120463279245883025648588604146458182106130398061107484055250948704608866519185214946773529149147783351669930493590150627841453937414242759996703811337086696510135428508137966597262500671414579831357506577887345916230865790986287868589671114802507850893973295524247103539957631464095909754298001595425159683697745970915127131313065390305926573763204544078404614595629823525294266318432530176455844509045033672720678159861414780022962499213847413497644832548167680316878485406728446626294305356541114787469987632871334923472822349058525073396906272347016528463397856925556127731375154404297762306335884032459424997094354915729308497875863577283193278524338162181322804670931595131782534302516040967473002133358470827603635358219385634455596185808833615954915771867917885552471316317751063689198799312999366150671750713521874501829308766369319447377665599450081500087517898202477336361497745685743762702580008651971055126984486423973298229813891272223674426496130154116745236016275946323995687933097535815660888998512380901632371406254549125614357495805881964131202565124862653614545738897723540497812064329909001502121796028847962712275311506409048033871134679534117246362613653044571301959092537749439034730427580954948477976636879831133463795601740420053800319380574211848017620991994618075251849785049614227547015741225274863799846007011241557641417368290769401226707279855101752491971154880428786043634033376896028050327472011905184967306339327022695015287858887952337514580153883744170097152271890006296333239787360441454366278809861428457135323272494529630969488483647126483276420849110293655818758842737255214294464325380560802051223665800190188942832484197224694680731303744576542372265283589530971289763442247754078529877135796480943469835406965628266727439311517368277428674352018245829041410341003726699225055952296864542600964929399481295076867209396985956210585259077618602214531083112262507748944197474761219612732920758863150847518528091872624700702298177849453653028575371725970617984514372604362247544098242405810753923906686894999962170781786723970265230618318491078674807055207266880230716109973601733350154506808864629195499064370848298258979762107425940840316906465094396009248101594424712419023543843565575596571293245807434588731539717892146407747807353592343615040814491519737753762652650749295951367522936896363781582190658670825304161292732591576552449656038718169201882870411798204605740772647815714880722803178110884881004694374172628067055206455414942180083469880224649682543857275451441953127817582074839234628500543860596276526901551189554945699146335581533874825919399789873042717608420418709511668239568185574790618765281881896492470132046607763110173304840391075344522895387222782671370861410541348044288382872240265175811163657338072906012517789086309124480888796543448790139978306758549392991724304086569479739926653415411427293914557363745695523881726636476727757282562678699216259393475553940655176038193221893349066322789118267777554864958767381787889519092387628484952783672743014771631675111849430796685297598671938996047920248645788493381726337950874516972522406726234997448284866106662126721434465114366048423609298667510395863185032679095787152317739170443461530006616231152539731881101849581176735380846273980758167853375292005021304681776930868731502599697179776370055073011919771035697166008619029427332478115055857691934562825436338810122865778155226573461508111857048660702119335488232349865665870165450009401969876099590857614410604754428404995647530025166591248897592245712434191252040717272510656399635225713158054101484190895882777480456248811097818958802919265344640503316135168952939945228434989618348004857720838971118648539418697912482455740004030144651130342701655888049718014280572862259466983939975662483393859796968351947419766831418011644650567182646477216323117906837701300614862658662633145132052304036088268693143423787155769519206943513444251111164617501575898739467207051934344853622221517436113843249002671604956816330285124319750565451627361228287722933446095297690479088989180329872856352885620859597551957309009377644158548309546611391780635378603301303796196381195958063270510076059059598338740977023999396521338515576629062506513042653146013636799379655357967700710611391753568562982812589259231539660250763988184591781720151471354846418398362438011653776952059371615049966125333568667510625777970689073582144628725054154337680987954915019257610045040026615719298544224965520738415139264484916823396111063616889445523472026718174655993495914303411104920100548286775458290418763385603333703447620869019581422290509822036208194635438911192892977798790415330046068374066367664076127745251294201956345150555789259249269892609652208202809364710893373340812326522424344487410014077892270413378365510190389187956619965806794510232791047597764235656892249099845748075557153163035707677702717964656780772234028800218340691852785213482667319878680442320528450414957652930267749149295396750774653103006966945579509859712934966235378862045963790967874240674987823855694225801671766750727191084224807334308165573381691990560224492307639698423832670883154116796017917701545017907775299883942264183642754300757702345975856358771107659618308393667910830673459387734477728093371036312293996351542366458925583301087671449341088394599122052003047115541107194927317242937860314659898997232444608404111246817591966519927346174716819480903406578370858959177433012226465619960165239002391800331523093429192599263671058827341376879755285251485231589244825297058294018886904394922393339284413829384837694633853373236157586501562014957792335957085204036681276039074428789957975954711412906146210639498608733907988779038158414927937232627082664550005710803665423831856510136376120713480037776322526996279502532250754827266487820029796432382307987715360591328071905729892408962941720139890608032713851180630625392746146448073349101612668509904071212288286991946906631716221563623119577585166943217287755600715927398531468865106491721689647996770412508321950221438365141613164274993980222009249059114319421335140258411529759085100911003776380598872109118213014483410862462698790297263429667560618774489466910702073514813043178135900327296266299986352624977487946828131629152695883244738498965530939486780254681842823612283290340206621564764354403348747002882910821663287814472454989205935370865414578500366718960202441143017217774657800499324594616708359786222170253353617677697980818714556599166799972558165633033845725633947751171078331940640159057433531274555795586684446516157472302972874059885613162733222175381636513569133128587053917879348552342828313375537369863027666685000514292259592447965401220906530992857173942242075927247159891395336320261218522786531589550193363429800075868588824077449819747374655924807613382602122282576344464674696109842810409765931644351420972279132493371188217082838123413239972825055151750265958598076778310439788048038432781223246667002496715908732705076432753470334956841422824919481320766668591612527532991281496872400313240835603575841166972874837248703762297511055235628328800954879175827138037320136003122869369993047060556308238263946326102450006758105536997452722948192363490549536793217027917520264884694522400961982167524903828235186143757467462136214052157259109518102476127113439665027484180405229409699402361846238110858461721555713472806490152284125160365707475345356394418247129468020171225758686770791810792552578948863451435047712415348108197927801813664579439747917821659257031158054225150966320485159510629370840871269201659869770481578470889305126500679578212742618583835911280149155491047303034356526192597245632299024400199832578592539124304565252008072502474572046457429946984154136053031618144351366922601771705055929176952967617156939701317618273030983606710401352601893426638068095960293998184621414933478258082774709463231796349632080627813214026142168169695684382352347292290278932393655111319522682623237069693193552611807851884294623124389268191896915392806007559293127423673601584015856422133492725413746670231542517204189718117709369711892346837465693876983294381175113661001613782548735474609136347083734272132650335195529047403067784647957993200165933538214759081834903774508421576937723092933193157001826416892602556743227637722231137139352617772724205020652206474045026199542009359748168257035155989126389487577541385866574916914923124812893217699335834747682159159203956150721951575000377958910890603948251381156690596290068306482864600255865863609523929377644148758265756079639940370946673707669413814020822075387836714565092861907852960631373038619741906626530668977469648514463606682108138432427124129554940592056271316846478942663701958310470968358170358410661431884825252408233458400415395555569407335515213925116345998778153792242524021086233720840719439362289812550677229532496921628389994569421962268546917365089447514250352676056069140239322894856674076506672221005176169918107949063710236834063725645497317562408408220893128377221491977749484634722029333538264432348654449785501209018695461599188286322577841812202065690731595528853163967120068454654018752366469046781519352219152456303381116334082754098943399209840685077329162578944482746191869496229653255795225212258991161275191597167445334373060920966794743165901158716728305330001783739653549291934723720893963090722682532078890607946275823231816040737690852255491415724231152388113417751815770879887082274931249242514281299827797143554356477045372943060867870097445502153280182956301773798011059326424391062697001505822107789114724482888929174020437501310529192095039679904029322630882116973999884587301300275916995081067452225630672627731717525239997703353099888013265739473460688867581393317080988187795217710274658961167012312939035095497059306905623468212091966035333872148101066561727700817831167019177222368579565826466810403602759838795914795615304751646045857702314723202663956323102157556112398059661400909454425722826580964025291339417095737014463132435206368256963414225731019715700484912703386313623020031178100573349184356265683180004233220836823584558294271863817551628309697674342987820372871526556999680482819806129841652324328519651890471807510824239694825597818473615626538349368729585546165950703588068932934499121808280920867456582771516067205536701366563469431931853395620803367747756493990839053353453874788616454731294354980772620181491131603207243581630601101005868752794932059842271369305360430014596039173677802588349618353880307422751166449752547488955781730677996951338752522720203857849511739411573310797960856483969631786418925020719260558577195469772952577801984380926410215793937633012740488362315582115027148836524030143073331331250511274331291178849381003551232591757630981045667681530193270467635884225371286757822525555148368436119219476704929885503166285546527684540071663000412241924499467805427414033027271200056926053233442338271996864653031320754352264941036471981300432535648367881222693561488135650853021412350635443795921277180407614047285877304274252532762742789960047763028126109755327162255674606628315673993452800368351726423973322992848303855770755925191574963480374332001109762165854906432200905881525241424066662594209494117898248151040658488985701990364092273653580099702250881127357971244646059207192027135748176201406742272247613765213459098472846534068750261621666676629260605438220495399333393002199108924021992024647065878258896279787806630210620849008278759843821552870521592442040903757889994475754436821641958239908344096057725458678497146780694859372404065706997327679175952939929263119110735456877373696801950763146605625519763984329896664529820805463218639643117089088189902161173847279356765300006133038846463692589783113963949008431768625504306735967991123217341907439806133814401450924107792798743812177767641442296722144568392577709685540140333501758899129547395698996889010894958593515063652970422953105753871751991855819463871044881642264199192512921059941198551273684197967753573236717759420632597269810773820333438475066740574792286980414305511597929673291905381787498199451880074943708170798637103979808677091908372067328851411535663975159852828730692728003817184865551914856275613514467349892207686965639189512698013125713358779439486809717632795580483104224050018510132038840670203955017436788995625323226777364953466110465662269850278093129996576311621150372219168209491030486996036746880428707305542942174676073266829785254241025416852338226963151982617747684607250852308265703912452558542047127795515511592591931743596878694798379335617513676875231759388560957933590351683121867469468232931758064107148882226926590954124748506135566791397545274442124425320159822608739050549891935328555582877928447098251902640757003429596148726219497549542622425428211143395309450556021981434434702506918031298576308452631061119624856129876178988845152256556008053612899571667253578415589072599708153819461954626294073498956806515913038307761012121510483761213858460885547740713978950581925079988223637236441441605547432908683056630215273391898524487298536281539417225279423151285844716560304123905747406977018087196012350553775052757230366278195792360988031259466481022858623611825064128955219459426750587219829266418719258821876671844194206321284349209019537842765867577389126400642343386640405617611058688544313585913156076389451860828647069114350845563364982216627761861120781884147621214428156898886556070152481891827870267905537537456807524243772598903438621763849789662524835608867115092948975669334080528689270832220180447700144665516521754448714614786084272282915093648974651947450841328864915019616877857799336960227454789835051929018623794561373627983833170567283914003658132497976935835432959934371474477081132086264105685110072967966272598777289192176649241239773221333464763620673096158956077559949535544193778960858676047371011653211669744755855665180719692853511084489703396946218470979793041307028465784857131043959904612396305143218896893606930911365051118429396013012415826505473668600968447721381414886262344796769106886627074919528481231787176609965361320754878428412187388982071794499235294268539254429325168276604244919808290053579434115501835928474413326545130032037989484967118785676919801550893558188907342810460233692927415533531406751729811643635453249175840919056714696902011159043654447836398519625353900944712089228124412921560800485493941783265056535116571411600548084699937471208577100294556887709938126883670163135101166603113643912214292963920697919513381739143760355715117303382469203810307553371099845041553207322665157620386226587144253775067382444707826603123896757381654753345202816878753537812406242400291594397017581340267039132782706707444424756751734967224256035953774756913645936573318499051307336056799458097202901025051467358563087951345912855768386161875822895974031670522746825627402285599158423364864669972088713262760044045161206930572661523420918663744046498592025394423451788543193906702149350638378922956264716579282095061530244912665857744104624947576330839486218427833475743800645245320377255872933833417837449430528465885506803793327187156691511951719473844005713846488746808686683108778023410788440053654385167345810467949167671512512630113101012980703081358045316353681560417710722795572134561291487188041717507544630076583742852992187630097687515677022914111353365345216022603619754562932787318543796043882782888472747675930898852743622732330733084912374018376630870188245831864442589209066878799828357260013827363177563116698041175214069245271132393056515722893144423689665779177371557788373245245835895367366087633282403861013520119107999522899560709346910313186751822827539873162764271175092615059939893890840314737160521043806036517975084396444287015923864092152653631935758792166914530737544787456397841522399613031754303140324107268095921377682073442023338609114457775389130674421451424644699984704926868250782476169914111654778890626707233778940516222253820039808964206222542284615252192719967953088181348763094710761589697975463067266447255049654633657109627551425735185697184309230186008824910401393683292876276617223815332462289815875130977607396004048279999254712663130441355879648644789484818457212145779390032499219732200886208972244739111332547497817927680907004189924125219467170004880336814103343434367528308175277666205980729120947084275171357550701846099741767243007568946663637642257503813400475135103533992592515115022291597275043152735904211999565376789332948311126678932112334193807390480200420295322991269810358684368446017277907642939507935947184605221630761952338314753300186520406440646003245344574567467568436232448958001108272873577234683021866082402098379410560817071345197306981016175628652542273201769271247627147732098756861117293838577619517743069162130365656487026061658222687420654019935683321714256410839511877825539152033830109618289667835411369909948815595500207953125739061720784760121837322766256477354732433356392040619469769233659419978962055923695156411465863104387844430704051005126112782521801960701993218072136926912839185080917972038933668273938215729332445160777296841128332864763791369788674133092401086174885292554722705374837771889663750051911687155459883245718647585646251112508872891428401746670721197031328525281181174532322262948424758123140302061324726787496459887662391767407753595712545502222194516311861706866661515639708736648941959505875590926700681547357724854102182941190538394839824020162859067562166698797324919041726289703801994910035429993577970844838200796708361368907526525198283677020252729403232442819975686437929081704542489803355298139122892311060048412447979603472828775776471328950111823276954433901801283089214944676277568451809186311045344069004293092277525198761288794439428182129422225686378533305860584388932383387462475622661585350627274495881724846235784776833185298183652258948565608912896379568822169852525090707267909931805579415685089666718262745513361104440655096411712727282225177323761978796787233352938140361407599081290934172626186245977673660951255135468340663090884999354091160293069522282385719322769016190033878275219610643229163825325584622077266169355706685164259396371438478131601722857580775542757963509584648429420316619086253830135399528481992739452603711032192256068675166617974881681363384423324193471327356633562807094347330747653811096568300832925030804154831736914584599547236830525726505194127545114051156608555169566478654948158234737067936593917832411149457819406853798328640855836393254364720297120232809793975010594011909860392918842994916903956241605424679101614739205778366966384770104071697026977543541300545740792122263305733821080465545585561817863024777855233139598690818980424125755153743481862184337449352707513709099534388898603979003754693459412899937829420940580924554679326045947779817300884013562782373636216710174460695934104007874884837866785960451912336127683841049359831904881704953026696517108090161097745095298400175173340273859975570095404198758576946291636672930142328000614937985403868137768538121283001619202826037464052890318325430516501409683206325777797187529348779510537624318899412555480353552022850563458668239532256166344380352386905574433913854326098621556933110685271225743723634988433747611116184803962897236265201481213922780678756771492927895879938584364067291721161069163952641929030060161700514319920173997553830833843575784052155557203596793860517734173097951481050582617759884816673876591188199873566972276283155017277575569480184672275939082024428114198374211479991412060811071380981313463820203737299606914567904240242580128971466879161883071023329545425111363701924517616498991484933482919341301411017017748546150005553071438644489303599659906375823009494974075012100205643979330028580129120479553467873408413501727583351308620870615567031377108497497125043191635652926038134392642387500690739417150044554476064432609854009358025702538789059713141720498520806187823783803184524328056515130396396966480885474511067070239790156845316346612005747491894331368917912177841483876993458056585007170734124217773663362868349465680528282211735860421429225853852596508826083401826046657532784662123174633041608287279542365295526883208141623619707691847812430337369948264038136540730276211142888204644246872730594354351942053592453249213499874550971835450608283832938106224461574580930032692345867089069168241982242190235714545725982149718631411754393739266054477981606144431601294520495482454008921162916747871087488800565744175076176506185199922634307671293833893391789717462564233940164607698279768967332605137508689611227957562075485790131480240670089005090877248992057601783673606692816604836787441938179194982269072312374455964546740093060005654981452015481037146208993789743629932345474273939016556619648358827212506011659132230268742772099205947197934704576614040865078500438696946767546257225373672055040928947334958073797810423240142896704316346428562804562236207994401432002274809123161839738718305758699741166286410749901592937936176281018759784696220755672914325632376597212434198231663361055663985878465046741094223998820670230286588814726897727431733098324543811107541244204280674451876659765999989494134977562904523757981065230844171662861355887256778216524405844029381360034539913344311522690342434917314740843697060813758025744983462894228922678447692303288356971931677412498425918346737193169678451959319921387962512187964362413785524365362306407694876373027317732388426286534577007745493209997320509973473400688728190390160808889374388575010080939109161218911040460596914018109020775134314929069016220253934828460894268936091960009136655847813338261861908478851250409799134961814697049690193044503321838089077647298355933890782996175798291151634446112142656659172559708158834933797355544094493010393106916284286178196712423506654633084391307517671769988843934072898363997168980465240724306914742474043072380423347165933153468164261776310013555318936362682218327668277373098983383332505401365785881246864446072164125789008097427409750389871610764127622874847117466795030447120837068366161668801322435165836191345557163015823671058066722927569430196705568500449229299762007646477020280564706550747278439216845332397941295123648072794548007039754337488090422534613136774659701948254258542509992606289573170382609654197578299864637295669380916793740411466808237470099867147865829180739133655366339131160891695255148778853154712956272163941248907182947871533516463202331698112844313899147000203295895716601705600566081101937726565693776229115571002981873677223484802139569621767684028394053251162378229036325253956921067578718771383106839323249832601880856830473429168560435248191036082021032621848308196256611260144762760915496238977765988139609551819958341124259131543684665057875472747531591683530613891170262151734741523858318756994128368369866748851662560977607656440828864642981993095228741324392983005343130484244745638447511044630399058301240544186403233311495171641183451213880417426162598949108421869882160081642358221407760863934779837545392656533828197329786931205527570271441754921501946275879831910708915040965448973300936998213457007690004524952694749012891333149063724939814002045510127570033180579340445188850512963564245483737882647192335924551874513423847729597450683133192559508965659022629720462743887680913858549476683766529705471078964384347585253377122717387882689919279066859855075828059859876581372348208584435689159192285412301861956863747759047673535649089880652145307634446449481062994345836988925937106178310683432044239542855923793864480996834155824977415903743297311903229090325777352760519892889772761414716338449337509542911976792111232443102363708463591264449675557795995560486374169401817445314907133944369811469722835702636008130674405160289622389775318078717727329297592716467534988743797439528031785508143102466391341826415936468971251311091972024402272213677564897848186850191166036195733574532222458650831266700151253748454200013961205560716209444126161081207438464647562232010305543794341114143264460351656026248042805097380494037639805820361436566774148592975432284422974800054036713613038888117588342616379177562249001880497120664575414131786307773501945519553632720577553377122567168101433352852804132233244512969831526809106905342416696739011933978810309706019941158872637526839106108112973353800921664161128394909887691912349102560507582715377277937962028041570572283212110914941737712473410741530619423741396788467837471038989011153312256527977204872059957350691524540152496155192489539403982824536276773981889112842709399283329350809231139986804210968572334320478931402375546052388150865433511512989776987552389205668070358273469188183367559664315104897246111102686753593478476255627764389608181174289325322485588109852864372552718071807572074882647343996243308240073647968981351589418492103161528548592991731506814364475363522618015225414533575639438281523961432550149660482008185049035427353503084357398358924176297691129066134514053933118170882546289983009017249288509490307220001590217235688943950582414062155770649781074182103692453787748027625760275756584382163469795270462060723576779204455403144994726763604972023968067272554049617092957909227307258360395130281571251625761923877115743538920627978480680498749429489810800800934747509536986496482195746009602552668170647900702722782801501736919062334151182001032607449069935497653430780389490650834117519514416901936815366767660917309543421809243438355981402332384955438295101849458001935375444438107605051301052105363894493007067718813316200260058661567138390555517731131884987387835339017322432782265135574134664657246858996033046818688547612423592908983373077897623540775016010465773969967558615677528421947291820749681441699931935440099330271909761333264076124584249556038649678414278063077182313121286614021637620380951394850783539575852646524956059670320543220092461807836321468373544198821913769539091915417257361189928706974597526178166972928812654188611004411293072150450351622450776432388618932736335895512050377054834407913288972107849831642566597305254096636219698413515560511947094516579816523030940698852914719116583313358924350146733606365962767807656038160330659631816922292457030735566154314633450483804647545431771799059888697526728793364548266354503452683665048707648761409300553575213912836048336805081803749799036792827919382461989554536638447910957027386847876816812717139247918271676235742084980975663564955798350865701631357360260198983742627134652510600942951713551004431963433407006352962780447755793092657262126602073929856234469939231913381336918235070069944794537418123302193959909502090071800079429693119966025245585645390243764794425641205741075999977601283663160380683537018588679506408401506401308091989626314094501517663497934337489111672974901792292950698970145707903492862173463520132117564253695595458366336475855696482101120911989021459013916600038260397451441689148809468493615228478929608245926442665410630447715718141214350819487144665014230600959999939888718703945502131155626863456974217565985337462938384816699131692011935784386618978633472832405319106306510718765797658203891321636699001153497411194316006372555435183345136337458483505325135512588252065113217727775343914848586488702732459366309091461433997910571768540934993547371337650235556941301946330555331621264858402272490926061556696852427329735601568249384717880771827340206464193101808640221584178877757247134409058490160785606141359963606709071000595230804220255314430219358820598244439984284836192265152217025128986228829730835669782665615071290342280447122776195500162804982495257367599119254407261393037521408697480478468220655710955941374029676694698699689986349496485741502840506733101171985694272001196142632112160498491776945445455746844775499544980590221903527457106266952247313677426364844430921976388835532056386039694581952734287644834716539473335657832729689310895008490550642853904026759599792155011598209495973496842439892925547938650021286274305061407714936508799182946407041470479997759260782529840068082115745334606642330553483074562378117565530485983545034186328599222174657847479279697779979156602291937727730805786313110136423856555020716763175091402614682272674645022292283641874956790427145670237839456491875686590219827449871677266239727411499438474969419033379815611359426149962635545648091881392211130034281918280851127345892508197820038643834598166592559953321485646369473054464867348131107424175755348105861967669734799064491755814505821101632669012154565290151597387018582831582600888540749645646914158916175290220555526145918825415036696884061890302324118970395086220552311730998876271994757410433882978789803474344235094381974124964395260519288262465528339425386930018304110741480339913693431416475314461007318683802242243333658305288532403920478981147406636706248933932018848213075584701912161663393098330688536151375979485818859119316109317674352454969854849241620015635595676906416282182772484117541874380695537768389783843591049453610410641576135260176088252943993966493156134598172929039381427816914250733075200659814043950722184745549072734975675100929100369733415491174134912598722044518542882513963951175491127383452447558859718626751475661853877152369805515777017505869829862933346503275585725089865740799288112857758251588175931471372764831396126494121852901223763091094764019452503371153403561334059286329538202482125859734676617830730807980320698621038327961044713224166810328397751129002052103774156424755860833474779204175098181459015118481747913283965299464597645504447131623966095256977134809589441323001944442615927905660745017297722866144197264872376558818474289943673190486949753082066086443002472257530333530611398796432988686278581463674441291327066687068752803142395543813463730818724505161576694526568438161019056564108070560850715438745638293365935279341120463196870875412925147950197417284722541339049571891455993738763455706241066056385013502729532336503496210428061103841682837901431741393294534481629443381511192099579412045913228509443039745587949190522255058699479204462398008278545928597304777767795154515633492482185529561098445869868253811857483162097283880473018405481295879091932501842035415063103770553370341703892417570486440426904863113409156885619760481436135116592760738483902252389103842387803509526259437613764601980912193227740706410260477196770845296824785300021374184183450335994909018315705754935491955854606895461922669707832076666023645072604646349009657945263528158557988594066096054897910674351548745950297426425894855392988102396331164587125317768261961051707946636272749586908763946658421027864482483854412494283578541514854435553688711725761639470605194428581263064471367467273534084398715446647650806575177685934559639440073587293254883123265812665156996356662262687647704044988374988917206411627721808528402330159891727733156736417444486033038269834732580596707561089383158495555463210985387767641212357790445956477887420661424894052333965886569612671262702977713321838215627825816757023286824857037530825133395902304226328606407326952499857546406501557633413047219276429091065359730597778381747129354801505584584354967465077393948683158294017935620670648896988087506653035713212671529561149149852015095740015836737954141039574995453610201514901424283114860050842358331097802009028640600872162499247190602504879871252155216190986680365332178303093242202399298947783951944574500293306523912883920793167758169575831384164062113772017883869837878654495367538062675940682831514900460678194198330387484089538417944860046388955667788138172650259168766503403488477260853195900287564256918938499757438288945103434232364712833605133876380356261413786406323534978544396474545329091534641215937549664615318893975792506258085446985377120748098591463151512585165731232795296827228749204886245622593180218612454127589072055885065381885370020245886057718729007467151118806803558218633709445482846961007793188234624903995872813731576904910190782504622808902542939497903338954013866454715350325298009693996662503965466751926548905027244852287269626550422036078524175829347136991455170024203361219213316876971826038780236882182712031469975589853253658943139150954905890219278009818308608875174136431884973551850664557638650231048122009841196883014250629771889702934447646786969003085138037304166447949120282701144524469844687574748479398359000576904924219585569452842746250094225278015109159912912508385351352445048097235174351391578869183366286744180910768932122480225607996462430452852117393208423366229459856314096930322890451297089750134582445391654151144879855023932368721220783526650215811660259082649858033323775699588804107459644263835703222477378125296006675607432452351940522238548318377726896451309975560223861593593121762213233549523454942415549255279009140374678381746773050768103262757357393975005471395140616888043611256831197168331063317302538043459060822331560651741028240883993726615059478260688355910549791468909344249725531549438044175532503530466870063849477032681907915691972498153592730770631722660731969052347820954629097063085971424385123089494599794333858281157034390660091093756146243707331572444943161388765988770288430216929804908388924747751952626801197118742931310108156079436326587612289239149917361997867406069356596721809634050909517512159460318916569672479875691958093954330632302737869990698803271085941459140803396937365176516803417030620398882192198145720373526070234291084225750530353957548090687970261876969348733966617574498970376532603114063976940655032788990021776541746283138390675279878651558976307830202280132992089346874337894424175296214088481193232761169042301679317383762364351701406429846683714313152491783168382915077888274788756623559188223903698392271983384536769438068602115247384323244813178404537165760880555272566146120776028104487526125868270625326484133959107564233856573572729466739329452135030066519971994776776834717288326791334370085193245585939335300252540515765172649413388746323047557114427437212371752749305884367595319384997842837909469523574304928121808220590703754354936124099226795961907951480059774450409826913502087244517905587877531533539284238026378487279934652479235789805236570504245695616822598795495596134578574447459412405084493165480359796611100912198664683800487949912853256875794146323076179760416793600697997717845750118386976549535658769521596714980792296191900661099752934597659204302252078448041071742116362811565776308585258473471661000106020057914193830844481813128149928008678093707017609120159754195332805124489397344336229391546411270579214294051783026254282373620499936064534038637960087637252610614009315675919146659431723487241413992012636835078072893440575035228597978997260341854326846064492315522653173830813678307518599949538609896563924297135656647657501421962749080576513484366825681100655483753964775493435437504516970394250824392775439045305712214895221702873767475630055073646772978628174102239074697515469740822285011824669511064786764518201759323220043920829507918481356933392558789505170500238075048078033238163169109661959844380386303233228392423566475766628264517273587226139967866390904113418678948465794679602057149349451456119221669666092802611319689423447623889608736249649301752358867491691380109368125103525972610035263556529610911444114382072952683954832138726774547483784894875027711895073822292707000711475947831506997437000949997168674735117845982582347273719004429438860019327987764319001908431202158451990384902427934927460838166968123777784133488766029882818563154348745626300558897214178080292827691238855114032777317645370163046655193019511405800996181442944556507656763917385825281611969621304601013810755300914681953785859843231341219055398899679926387611740227241916660420805171284608979107287807578658595340347969884216563215717364650800411741390122538069250521183582297124329715026732668194484425707965944721175431756777936537828566720626329249969731458956098526537090547727296612956814666703162597698935251176898832306101015822705677698107538659466161712066334515493792995991276372015221456807393711920291146077580914895551479861383065574465330367501351740323925747434157198138150956087237665940632031366053604767776716340741926996717332212353069866883498175876306840447312058994732437588828468425802924981388943593532910113629549553697686098512917985938546331731004851006182519685217073326604631208523627793240793452836657497841660919779930119003233402154124506017098087451684910060871910190128172573403660587859077810029824465193012500443663363229313097532807424257194836941776238308671608808806101879738349064329492364577376819361678128135364560342131242955109667709897981234794359881094323566585314505043874892621486980880180506166594267377759322724267102649217549884988725345882292914162465523051600452785028099701416608694057022207198513671592991066868971366552426846634068395873028264765158448949795066948418232236050970001051274958924152478108457065356875132790652528043687268240845322440189826986427415404133864439458272962476788444116400069806200461438188520163700481859893966512280913909807364458792959471279536602862587244209726188633702837221216274390851177147365886954870484369392830096619575701604165712512319739991357778854008944446817530183425411637457313351040762819454047379287042550855757572871209026028518099400184905625849634304943635002247878041504601650389391370178333770156818419185327807907157193950313063772778483930619744681604215255468419737684789439378458940827543348066964313123008698495435861806392274256766720064312639659960589129138518432081144724806023025730338460400914003821156029643941297421942327651603090979924476759507867716805745135411052027069955695989300872616482668137957050316442623387792192801100239077170249546880471983901610585621083096879740029658436848868839049332668030665059496013435252272044587165254314659465511823228323193301497727216100200417069788138062303509508478673999084783391267506030317741610894953691414449900409704614660649583820901930767457287837149657474926800672409728136027313550306771542408998994849080169205599804317243455464784684179944220894422406730365301622917431110186036535100251439468028542912835220931520606393818639864536828267132865074411693098979936608318958159615409465874661386558705630824662517557618076999038000714946162632118387740929165799098357655793505384689612353012997265213676397161458112996623597351626375631684834526912388553036749753755443670182947612112526584776523934474398206306494340624520209527354532913568545344608764414036959433926619285343447666284931654389522173760131120041187887949376035432224333593638708407894976417703893458288777336595824327294478693050975016301343811747123537790480256633250952062495132899695405274482891040910987535247612480351832529166385741905281324190594815496559180927228804873621642966137739116130268172636518615840088425665378499142123051915427549621333871985383706520240525704788024275228904824328654945422278926988036716403078115711365433678114955678381680140049501249780953094293574129518596005736179758966203168400352777779867630759507300399950902462933254778573962386820279973539600548281251617773745556404894278775129131984363310836073865777683718671844026800444551131477362608351320489925113834354069371014775046711588953619960129376646918867163891664369906086402564012137503883318642523748808353419828216015576680021957961547619255904429693214843564016671791990640983377461121354297376452122767946651039126890547972557938142277743258039976827119312535836755991665249629559350411794951158223441779108212827899205124503994521321119754646681185719565290601925702762283491652136529338541586326422406651001433430115776044296133484270329799134163844252365621292495718361430690766360044116124226471089317540532540456999690948278393814179192065530853762207081557405486043709527275992968093637100117179746400059726212384281056915496280709097108593771384994944804274989153659855616370069693805933449862422079980233368260134993294557505778986465030875792925146274314056076739412999887785769872162448914275757001419774533784225096741296865252150581788795474573658790405656841962326914806244176674522787852088481065549244783844745088119082283835707937167342987091095695716143206142480052057181552246413929660572082216757744983542070441295503944879712015310034263723095539201413195818999927055242782074809683033074052498423906371015917423367720471364965935339973852267319553086302599810565238301972786609945210206503105809119582911619118784662829616896193758247935012773938930837040081396383731194514795990973872325628758675673757807114884434366048124655066221015490010104860636430550726968210930971047591876733495015525509476505081920693642890974037394708964862443647951656229231549166126174487556510920987022145492527672651564430441071063597902643980322249757632107315607896735054735731178051335864432926680094972436946500784069715842775895716721111178494861097737796976896061674115323225746506130935015630379085755727577852738143414786179231288058555489365746630445276071736145457161440872519537194884447591147457583307689676863635360868417986779116750661470399241622351842610364176334301766241034962547186021403335906180653279461523333550894725984207570814059580848480090261948593144103580992178142992869756994144005011542093676368347335448893334122962326900205110042552330614133686847263016680333647189843891046161959641864606266762546889025806932767138725318643635049474563072104989396900385206258099358709410054135753177753743574184438200573143962860200699864474259920680622707067765684872112582638893071910404398626986752081144632171004401594981371472415948414977369155306601688633136756583632754431327042228778667677244176191647725927623053493139516451179579345015620881121551053223296005067392569042971847345025615683094175431186776602831186546610500387323436776951239250681096529322499138614407960331404902014855699619918552865264157150877653377818228932858522063030460053763884473717524746268907072907031070187682739387950920603125949623234289756126376173841820068434919066689713955198544162773303606551217226355242336071630185876911333770938792615956193565784197259572478497461984634680281557902373983158942658576709430518263113258634287920707279774364932991903997646991880749902776900507675541445522137438743969429986455278188309196296165745632310883611600004237389198726156407116174141812513504824459825706183613625611093747258869706335977107884110970874118460596556939071566331596178284584793200462686475543329166094667705057883639876600535042179046734324403952688462912892268440697244183130767635020911121518562035280860369442888780168253340867681966774117327504320269023027956320477764428844985355911528399769920949039923308219018810375170796902706767447139674833890339104660159156903474542989352391900917415770583272395335777272971362333069457459540547557070847847688698189268283448180856219648342572404695798152871200156264394042476962016122107241226942583036596012935741573915818893260253801811498743718019558480962586615345937685559345285834267066136071607360166839502193707334665334711428340361801494276104531978163772740785236540728515481273187576864945563707862620635122996438311148031487343790802781534640275861079157775927562511427079328763710965504762535518743440174409128461531817399918131167698994775239715122803797664374599983762986108387479094886543095140582520289469413904495934061038338233942530759108670979059194876150572512517694896208088196482112710753111590905444709877846409934443869124856458168769252624591051335040408532799474824009644947050746158291444620023667507030228166076038196425810070902904268384302657952723670376257188555244845150777566873928187999792022836532631226128913725234590749007001639767215573074200588834885162632224229450923216831163621834273065761693116036828109134771545882380948731744274966301621216158967138944295016378527314425695513808682728539247458273016627484187878454080181520661198436251071346485687982195415410889062500506534773515851130270370750575254455980291248494769305691281218693648121690822163267809442455751355827884293636750833542470665300022824393171940919778890706622802991521257141180273202609874962555215531882147672685029395903312214170000454597931210026453214885469056954365560396997817633855822328008175422743361945522780363738935661609824110281978094344718444486663156512863123047755262649069059006622750225852448489421352244189825666620341912003961828644815989097944203582250348785424093386123727646483295608065954922678731376843937623235142907112293670295027671323700023434779764197305367800533082781565683987552238494773027482564153186784145733731451718912007209680981599974644795843327484089352054312231703596870584822952275419143765116590092654312365236316697170630269406316631547405271437129793958158385762494693560347691627566829498327217547007347775397744495591497689535283869401220768209232173899567008841447097704777346548983143875236684379513241040143198053154950750127902712395910946994024072559202023073587234367152406321908674758119592745253518459015663730410354223962690992073925413962045531695143037378674635964802970899327840729734547900661027450441092854639222394322333326674967702046557321555564936233221588494026493110019540398715794694826517764472394838147850263306844332328099798324726195943144581985000573217703548082255323476001747657007245352720041645694777502110624714858361923295631139724182947902678124736288051766909853348599901848272088179853526370944005248578560943743459684884535606050068249600874429907381434213433116074225823739579136579078512942589398345537705504429160689842164316557671975431737328319836019681852765967580767436101849899683684713219504239649714132463909425342263951261436473287233922109564270453229883447463122367971933676933471303603786207731085308531237923617058374677978653351030315202863202600310661460173330580303246113869838534583195557604150739956648865211880634583459053207229206998612366442813064426035930148047688102949640663487367085144001075352327547777770251477971983219534346594606804576159647551397999391330507894046655749164621446178089027700171122459912355539661975963800497507742145137044354306779447777840836648026055946547884091552943458174294627477687812050591473873764875781346138059878116165576243984688666920595335898929861548187779340490582732864782272900618630398081796239905486838815234512655574298941067352075132689125290445905327376233858448554471277221096241264033018275462475383698734629310620750936297735260711117432458776894745663124681125595431750450297234605284286144901971103308523779452254224726871438948293837410230036528608526150195084485271102161428359568850592358381051882128643065455682009437509774027560935675855496839893719915593857324190108643518461945087631667305607888470869744907645964540869477788366341568285712943781931765619221378143446881004513951369222538987327532453334535792055249582402724825649415194387565318032486222500813438367586085382341873116871105398664106024185080648733021796089575835315598740375024842602229662125586631276407468960422178651262420976042654455633871886024413660306470611527582102061032467964268322679419003241904695271367606136213649067383258139805786656718541254041291870393837884011639578167347438212652314617481539813856291570863856500882338196965095391257642866571109222007654953944340065815617679419379799589324548860490984184408093897893643774081162767372358011043495242618492930385287801339938353561807871713609871074691490252203034595885603279053803289408438059073451116621966218274405709202327551577539213964314835104085079791743209026837430528975923084143109971590286891944117578379368495269245911681697897325563844425266094279274574460368005416435358251476338843643710587020509490888835629021349080785529145844192210393363877369713216643989266213798695679892496227113164618415860510185672444722502216415061881829863167294975793152489965333670185305135598632226470148644802569400210420784161152216089481952929856751424817217204683894211256010302285592081632870126824977999904872013400914631016178532455159967961836062569097397339207442485461085099676883494116790844778131678625678458525806407647144325292491205506992534078525691264667103590332439180225236431939483198670316561135015701428625123432912099616386614380047893654725512842010838360238817785379195731785645395595428601322241233377768192085257757213245558507898958786532561035576830392651858373197454953274070987509927481823821808873144547447138645400699124527531266172786149025402533931696353521889268539417571178649972374255952113958996335186662600591739657033393181934893467546751519845387704995543015641663312070152456267703785143609860679195694014799213454253588387760633220639813066716141619636248142206672499460022506790970719603281499109440740690002937230151380827471173744440811823802886691475693827361347664911584941190822163469086478673226897830626562279305238473145662401071143967863719051979823934655330334100973749196568622179777137772199070800228684845638726538296289264028033087485627737679190757167260845267757392874672013330276317595007979809550725283580492971828370957790832286799695534307261180094278760719329622547551505000249821846920760150814900442022202816250877352512559352968469889226577542347962870986609459034063780286830852040686471089513267709108261588430321494714938102686061879607383441546939817138790262702625645838567180301728329484231302745338821490216126078526906661198052474476222941096484716148569657377392047389140259557939561255358266713780113330250224106422956780306677354561062939882116248232052459023026036789987901974386259513481844283542799110913650044605160920376691896398626249927247381401973972460371199439979285160648147056705648412651037580910912310895904821473500899291274819433624687790947234441075331241200128217988687152496318691210276502189160730982617585091830945134618340886212416599631930687923875984369502183088509889740191026270916342256228178924997309108336095030709450689527952978843330177654801323248510945090834283533435043689889034355651407665461376120940410149890855633620740730794068240283641781560618608082529816929155601164281050176074979058008201547317952861366268898456321200908793144330567282075525689518148220733514600489706432134115279190805818563573775161028558196879514167495984206056699805813151547568095941106632624605551748229840899271535986768645689923625485241054151507151251426917854383515650826167759992723579167474762645766516895275891361526267701878573481898789639656353083997422400261329375721177991501741517764094855110228105581696534648905693513581315906385486009830484012025791535667528904103618755756437550680958457705351989815314043774540370499676838262317363751090850235571510302785626971460016651342818137692057984008446073650720781258015165936059253538428537025926038246895559951450372164051078026937315006421022624262704416232007534714414311115413454426106421451348633328968882351552079586675438327528985491532124116446045577260044450847098593983307908144581038223986616328265362533185947988700094824365022741576309948951465234621887161677863512623492713658861181209742104930336895282067954053226842602035046520915740751196627994736769522332337238102456625151736469973785508704119262995254881813824306439311241981929199340957698585711878087634386860252620062057195487218358886162501573253129789274695715609880058775047985108133387164829144459079542666098172916919043437682592122848639720629619922190688738070251976856432630104932070784816899891291155052844208282555660983961433628440201286106440438676772700925373473977676645703507821333527095685195640053127963097960283669785846937321296727904065432615408736991910988535618190560407780444722366092230535244384822464933953925599268041555794621775726223514012470857978010666543160626297109457281208399926560644605421258727293700364592198077429201157464729189854440262770772906011069503979548044168215557190162506111944118361764411459886188179583104533767305533010078645469575620079395534433225256957993156701785198506798891476497905266913247064625053948569808406722548597627539356449967095185349070261261551687234237851786005955910571778164578255595493339935879199015090657395133258418556907789799709332253970475720836082470706276624025994963857648692395790749383829057797882051648523737159282346455965033619957839715872280822674754154600469444914997741258573863403046669551509129898948537026259863313676596705888860954666989935888500482751782588740648169331260852544875863864481109344118261585766590146606039089051554307581690993977042024649199342640793843494030367146196286020450084323738203432047540784296007143544881386265120344102954486247331958272355255158511187219345988886674851829672037554998193061876848509326887389151090086286415231466147268718683539122647525699328142333106503410456952621849393461818389124550566913823348064660859366408833988773479414825939356996945281965153800349056816824479560298597596885099464649696928292340016304083691877531047645210378666296148277456150941116082837907553606366870762549988022649849423250008641830808813840246618326957484708499448966458648319560853433291187070157887485663402438608408110580887436139454521996205589919569138714685766223940999063112346453244233340632346337456628528164642398003018361921672791427815234627117696007019740730818055413834281370487212179172170505289374999959618511820645977420765769869826825017587603079751942423006358746616352535841543850480783070365333199246452186295820485817766093011882361174745217252661949512909657121747123056990788475531995967427672099339162399829780351730456177580195081416997685841232218263560409951487112429140871394730799859036622823650749176193803699103219984045425004442051103139351296295718647559003530164613822141602953544501293779700606307514820954701619394690896219568417911392301004247964003561545563983267623372477082160221579436485462112842833232013730912091057103650398404359698125960381687673128816834903657994586907240970595616253038977358031423891443408196269075783594214226380843042108431823276471248989598373024879256656682670643020933016532178739864083585802941052814444314392094386005399371937057033128117400825114514093197997938186531969410853113230946721850166729883135580345374387858133478734354563923881061672059839729306607535044183279077592739797824186714203853198095579254107766558808303734400928378733338777207132557566333580581645936322653920675050572041744051422790136658195213770597593665702800312757145791419544605433635371584828061901591241103027547935542055158529769461052020182149301384332944625092596207567757382415914214104669596503463197518026083782337514204974459898858565545171085025348085690643472075151559300533405157503004651307411412218802367882996632901318939858829104543673842529294602582310261886684770323518368794903035887751235434436636378808655649065259868830812993593280145345015124017886766402688912230621549780487412758639229735227635042671104810590538362961702487566012076891841546766964972946131306724818615691849785317291492202609649504158708181802518045653542730454059550515223227989971049689640808515180741153183280810093189111761659443193459433578057571825422239117810930974356765803869315269320672394473486999665644418185297506901690732349300199855771803920782426544270202546634464367567613138729377341107655154711022245859032365292802182632600522282900199783064426625822702365837642345435000402342507056768739883512619006968448177489472098243786540819163517226203727793484536119947053629021095263537800158149971135830141366128527620204877673037041958064226159354985215242650352535751366016469963726331834483453171339431601921670561965704567515232980297024972669719949526824352575025588144121599664869207632268226285613466485893501218500108384307802512682997690560505801450411317514692121625747613172970628016532490779882483048166091501061284543727875636336133002063075553760001149918820883480063292257857476931409049204077132536671951609201547755530662161070885259914803104591075008500362021676898858395672953848240538043449055944635634977636883694024471173042643799886084381073474372795528370479291435664330940251655922518131511176641702498176254539420374666866115121358317877140525117853980099563111658471455981469025097586777628771359956436222487942334921469425752872315103824826530205486328997617473141354826854709262383454610167822323213864936609618591288954823976411751185316814075991406230771556594489111558298457929575919095980457739869199229031924660041699996980880211212336643297754175694420978673196989659351844149238638616468440030120850304544909015593504562173633647277223781157219995648145083983519524714318560779620386268147120498942425421244816114903424640937933046150174564249079318971546405204532584589129107920132560264513667992310817091307989492432134232026789575448499271664177825937299341934390527324275300690489585579803481786458539379936266494393007218820393906659988245971870091577857348667037647598007515727269082030668879992375947440455486119979552633031419700018975607618610008469242139537884650783560340778255395343479169529954867660229938228190171705783139452506174235943702334575702673738040753219533055481051531108640008301901576063252368842091460627795365968920134784731163775166858658459913718665077036510311877209031751545026399885423663902766367007430408927010453306525452523585974172176607815233741332568519706488492349526060867984108471412742317471437620193217035003346404815911507743646427263571023135446238052518580318747913571017882801279562784341833597846175929594490785948660765804412799025661191195302521354297615241219957043614613559308538512064185143973038461785489345674146058029872684825504160923032561543127194052988795156660251028886188231550055561605777602730699618066259507875732815209360814157043217408577376224813819142781675745661938870814718378248689739535585426479448170734632323014144890722935775239625620358001841821757199099630485773475325605952713663156333530756919407049813326646271172958762601002944669082247440615569388915090284959940120141792947512708077776272898909374761453363838963421240597996316027134818371293826807782366561927128897279732196723795905912404681658215841895423509462723838278608856383214571789526490451402010056613881263109386341684944320711787792165863659841521100376697138646801272139146280526994831275044507919588102763256927126138168741078108307642618519227554742641044714151719202880463749465176448137937662487384070471873237491027871790788884366843566310314052327041049217694001246385754935686953758401169656699399271116020166102286347123361428791984144081096462916784506400994334746528430573390818139933224820756702491338234322333390546061942175678449582185042586541506065128774685003881551056730508817888042275653735576975056295511359258346289837711966947550073310240868062717930097160055461927467168592944140690132144967028996679888278877508614949801061097631554696663942979288445921913883981495478004969014132424739561907515934711538733370247048234362923646153467241700507397890821998222690342300622571185270804067930391013253726192502785492740024517967240568822379351116918816094390045767150321167609514530055768999030517389226263291067138383832547984717182083807942157313436248158530269660722380991732242810279057373142423724155434415057718990882322320273949982231037586024936615964549341567550377595896816898872297571072427453807187507117549347998480864809408837808855133598786376226752070049773628201762721369766139189864006301430397377214788690251556283172676873205660486258348666819288871638129656049647394311250566242621084973781314341676381393800583923407003327764640918531634497907952396837410826989592489937534162591484379637023021507118356809904694693452578467147168796989434307380252299624625258158202452201220924196704380780648098202699918559677940864591053999225290430939261448257844750708369143348441359760657762992348518453322910289389234491653937551977071236239571144802201062408054766503734379140158819962638068547010778105852182617111469066056959703191358336823432660426558458255265111766489138873552248529540774779037424136698255517862416659213047796641930679000042350685354699619532854372747527037897623913701238212410289631080160761067570805614707134077814042112398825584325631400786318429990703259260847182590996918852306693368051255829264268785755417727566772456936532100582616937583116059527065407702402177754609320326995163927792073824699510718823538331818929331468037881022638017698900674816369714349218279951219109053988826717992429521598884787089786366204632526141290969541935922539513587614565294191321317011277889118132167238729955195392037769515310824759279898769871676122064414682914781416571923072150822701427690228735035798286140926196674268217723821156021146405265238931168516598224677281891841154719118939335101976378433433789023224634549213182839328860973939840376323968423664556258530999293753649312087369492245374749933915814859301495566779613014676757107081980673656204870829675159683948791406269920210833847913439454414362750795060040456685850018146251140250373082021850832690158795152337314479471789451818447657595914447620151465124079986422696835300385195712235798118813754240838220591208630049358391907686899965694654000540199582256829195596461779233801498743952360737691445697755541994036492234313817138698702774088492150746355082980251088817665082497630270823044950658329771094283881660157372558997634280636566482049780544949192145218533594604930444992527796491813937311418336864467717228768118762370136654449372019303615603187730262713154863737919622416167009907802256885065222518388422142600702573316223446287885930524278660335265089096401273917465314548856548150410461627144367711222251355800890530949524725066282794009969613393937275543460668623815420673428755145593899224116746786416741447159966929044770320950359280882465248302417598461231545749290892427962145198711472162261115299243920718376332741980518768240962805291155448013900578808175432955741590778234790004883780806953434100852364982962489798920393641618126079838201221405121338929133549125434010958537468372424430105133347689021858781924413221241047358295098023969860437073000754901773367813261210131624229662835607169817500282409236687099719083958346812994219896811533790412741854868356852765050230025226832276916027460012985743526619185000594468420447835389140554922189676084066705596904520017414143877471252574179382608722987201292874069490042627250712868664486681600592870328347631339545209522740525941847294042335412806191793151188959857196541849304121456607603248755341005962099706159268566088878752914433886236943701910526409894853290996897342753602547749786121526554591636519567906094576157561458056665844057103050249465421321745772191200673430785032688360081275769889955996878861124344740935546206464343891899129352413069428078767280821078313207953131215013625075528193087655326016821405658891722117672202145924509835637215848906643037941693612822438892470390375415759673368981920926988005941522746508708167913321550439883684409089716256049591350051087775798945359875842036217403640350716214647854865856267608940647858104801757721035539003451099255560480097013465432095158877556441204104456147605298606067300585811205794243272835990153648597914028016226220833477951462340690288288348004631923315484767737249730558866313601863500644814403573921906331344751500075481330174896149573508211105194911188595150266381080932149203394936756956946277873009744447860142539340278010400016039793097934076103664386454081513903477338836976893410696036445616732801838077899107913537192689519349667812184342234853244910909216048249936695517781898213662968987972706391422522178914836748079100303352308729382440709789374250797649466822148126062977233495708885314597041040820111315884316754277145726256891956873239306068607230474515057722291741361672365720534233872328990684469688415544014286888970096951590407432722434070171117272563203856056157623731521556449335692842852514033115639997417797970426317863757219125825606605937476869640150079687941674294431615181368123196484745868692985743702913321743323600998179367448390966903837833789920956109995412648881444556301428255502934112180672634634431902431971072266603839017153626947357176632122034009649276066569126725208775118897637394674921300498794316688549556054657740735139414426981925369648954983669460290671957084442906228223756512276751042385614393254219402198603022350037542501192295622721944462264472878955011291565100154198073253678117887655545996141398585139408455731426776495601274785124069678188503412411245050650160634370843376625316867727558458207014341694180000174120030250505506959538744609353220859460902005414976945097278517162479362688825006789265500575838846545732141609153425172167504134531316322114641913264144719825411430751911792847901481857710234028520966125280538428294597843568654201652293716714949661693468808766849420189079370094027920685662988905521189453511121709049223214415202838466434891109503182722108732278330068846997825285536989041317291566059220973079704689176449733846443692000679948292720631469155127833484878341418546511626307128732874333204696590430000199387228385734753993091880717022021001693172431435655625745385599639660734102711510837399339006017605735802799065740588089447100375260999860194306691183768368180237446673835245258593135719631785103880120043483476507015551093073911785242027742924827660062038084625619868828988101571093582905405520724511343928475299156931834383678558851825593431759650033406180307772267073844794450306302155895978835380189631179362114735114669802129013193523455767093492369341018088324700723212255558768714901002596284124076392802476163517451860432898142963413816049949252381977015920192970279147132163849131842013518721925666189467671909950660035747644350186505290840395853951836733333270410295623726434745556449422898016895479645105963347244390648469954479028366606331592732402852558054357455115537465755928496731798941656377240909248029532334948283051002465986012361561332102061889881483932516578128717047692372152838313983030235562561145168640653429309128842022957245859398961107995621359611770133198889961167543686907191136734158695300302405383546944198935989275947573621017333444166704935509335945609725085885723920793282929649804951799876239784088803409348308237329351628494913984785765441517834136950099354669039140411447283984667458005677989982020412336614703097951153008779392032955932362366579787707724298928590494903945826192615436053147552518515118548403559824244631229245461862323437433747088065599939773620991652761887135419629318432044308621724389529129702795848670925859368515211196155670080354969446520904100394355445880916066666232591571182125201086734691295779577423756487191376209360416658910888326927687011906497170591621173300069534666584156666141558176895349498170153148905088690609136291264385429659480754544329368360824283565686314115203179377232176637382268541025807788837862871274660440392055988097437458937991636370731497173721361293346782183667692613748800321017147415656471655935238399260462431456423415297454508234001544657369688806300369073973780955054006793775614711786161789794933546493395665546745158629389552385771176596192082785260124676056889327740890687582046111632867067743884777629694708256559792284960125953048420971045932448566860730734234678630673218796416460173672192516458254357823369490417876245140825325206160219262867766517441094316360370158608782849519191501029505547282237842066438442822610389657323644812617392521683787408200491294538186344948527594954093882905410146552514144590914586684014871063456735770759983381386463547132400138105066221546285446910878049164325205333722065769214833221025842120288321122836400146230459692787594878505788864408304006596715884318164121182822968992341207243764973095624815905130606912584006707557039858396626836396668492783251525756131803665326818562695033362824062883213833823598130399595543188459911151943180949873908422724395526854310156312148231715118339736941049188540520762339205865420806651894077499411677831568652500757929825787267924789570927214829846080426187963832339871171928894525303568716991946588528919721895105050202554375513342593200695984013699440720168764422903331266806741346292695874885144915304747628074692554604556543302739827884749055388965301163420916473277714234915684350649312714575990665333264362233199183327767767737983955364002276453077018568806097341299039021268327218727096119345241708241824410951492984888071189339756152284937907541130264267821629529184015419133059406540977182702565191255615352973368352585213363385418458383049827406597948833263275589074188668257790335944368952905655729646758375151821466431424858269115957861914856106453649516250364125955588305819704769768094543525009053942384399593014878653320888233014333314040688316639307174356810976650731037088273729967775527185095496490152071725290235881283699040984350563839079276918328876871356578307800425541641071869385766683977389874908481568549072457989716415724299643735551458570739137935648908056619620853137640991542483623322338795895905132295081327176942953586683946186275589780259237769522003084245924509661962865399585088264310909505961865308635497318207132570971162679177449803383607121688339133781164179242756654674469003497010503721944641997813468557224057130285722345651645276634195749644999916863915025186683017122314872744404037483695754763245825780014994012236677034315706511448283406466034936975321519860396537507034041553077493161261873821088467282267853119836432980991286946520532631650150992857169148235034711265641770104406458831700944231072036722862964907964039828573879864198069045986418971895318522730282127900944272797214643723805962766856451126107058667584145823895803054983040811119037086811477107746132584017081683986488843800882930737177811275757811816207083701309395216196185626102373600115734539079242563152547440746101841001401537437805903464940714521059789547993983666026617670345446668602132326561193090704659689499765718193354531610050094303009314658305758857913792805460158352035889728773178462652852649206982595139953149135032882763880834631063045344028997344915053554817315262646075196297982131463699339013456021794604528495741516722210092022157417899589536505842909308010243392155711964668311109923103693904045206590823161820877903460146944602997597733203005899151178733187651674658389129762224650115155499768843372344031474615919324002040185569479356275131632845276746466045683248641826251066041681702701585456054096005401241244310546804501625841160431597103157669220417523588508907479105907185338097078808321677529501695369359043805404319134763657729885138185137433536248320699266064987681825446215988030883042165386132914542901345466280484834917330396296468639926459121213897731639203026904205424511214689107013267111002414872049197157712111574664517268642481277444957358128148827738237000204995119675604231924885322051694714888738598168622251148591891376763096745772290879412764323585069274319837638703006956770206752730630967630392657415821449660951567785380820399555582593415366708570294483440491540160600756348667515417911802269797228065494548106374506212984937316309308313030345078076986128246038783683439367708245865473595797878078443441985808151820271972073450263470923523030425504795043327016979292085254336303530667499743369813520640693426995279147968536023400635874498355138342871187660388643693151588074805766667071949229994940367468534305641630436084134251206272542911853349152709529471245401887664933916991294113687512078770147378824002735180403316864174732817322451483166963514065957800980892767197077685991357012212063887376072371619230363254049211267483338486692870478239058205655380022261266999483953905424019870902231633805986324827040166325213203330316169752273731985884884286559019103868511323301225425314159367635267389682618456671125049866880623101176707233047057501480721908833476778839590208426898374744202746533010690042201812367895361923048975105820797166583399599147154928139247589715755133609856571020860284413512558799395998369995695897332136492655509972196647361922676052369980665107310290399459050807312063925219086392700518753193393856121041354297391505660853546301684270980405183731372738259619323746823813678186951724327569864464187455103941919643922741873736707991948380774037397668554356150198539808593005751009895296879034290432364659405459088526193461257689947697057559378061875125802865159725366123969855343890680618633670344830072171713716868899316498025844587984604879209991835880822446280715473285578447958313382459528935071295827394616990269161583473575633543989035234447754826061244532741177799892720066149196323565202966365587981169584966349593794323528849633052022320330195952888635473449792019030967126369112332388692467753933825971270993431315945696470285415572822050187425656556312341810290277049279960959195761948153146135952339686740531744944818976988790886882630442835930692166095884585756373111250617579177231610704904229444022564582185414934443124264495868840938584775084457332468168650175347850024304566880303857398647994246091903745776083315745969001654586180062338325198498096360338509873180105917243550238614687371008725510568914773074286173517989676041492904725890325052272072127693685091628423418502549198849385378034552636461578464018590527868049273635680625913840513881860057091693988655763636174141082321744999602240975540075419070585920466684425175061232755783305362780136680869814585334264986426588852134671487571660626803809960898047388405302996131688587474176856161461512186471028691159459362974500491289723360104310774488099658068595998808765601502697545765667466669974968229272709380552325484878112035145203075496584719684490118681698588688872595813357908867379318511289798499102374922650589438292059578722634673223939687682083445143844970969118698058530937707084189815784750285855748809333067557494657867837555841538493407152328926115391769839683743538713278017975242736784073581563711165316640063916177702045708614900324587688064851233446998911420832590490315628828041329042156270544941173709798686887171807340686369610975524437257863974008217119894017091027914054197403590251734920623662461098084252679646456370027294610871133866356070245153876817893774991895529510441540332010556338235579649489684569603583120539082220294891413418139188615341221822849841945720218469493058981993093569322474297469242685050730181967705978270564412151512848355222890087488391988145319361423755850586685545214939426541123363944967919187011978083896744178355346545939237974300262907062123155273438130292775106681145979386561442886971663935779305347626870836857947658056788669434569556425939842828866394314793240722163544745515497567313420400295027102551936585902130678160986903880904322374345905250083238304972284929357692079716026465621275501361584636830383701335925403579077043785114260818454178044212648275658104617594893834542207632622673334313682595342737277101769690611014884502271280287598138388794469052781659767501548941143065019804504829624234077046392686023278502484712842414531612533285787485166859242319960177681823350348856161631451801453245770304847464052452426141145318483913818034299927913688109732439692573201122709099823746964556656554462624314074036992626899469859953099147629501391337419508379693925426948364418921161776025106576905912832772370697892017539882933442213254576007018752228187012795148640593717825295684693988487960940582126033295719659853080891337076062492414303894630449161586242867655467409858507462774411757017936467414578767623943799313405008717608947412934063370140514209415033700869382021852929188826773595089791913536170939576782745744799277580572475530936085985254979039556865889534086107285002996647010125040519748591937473278739244633363459795198227457327591777113781850491070401392164811682641699215056723411763094124191026702111960233173573259093911101174003842914704043302651676096510137887246261558187883965974892831809480074897117107720684827225624993744202841239206321289069455505250144676189734003509038936764327731157538198734106489924731968621069035054965016186956800466239401945594001601785067375315904737236376652104305172898089584407561287856608556936441812853567944502226885077043495919181981443492021390645639263033011061858372189482823871338632692024960027972742196737582347644868507904087803831078688334993046279593579034733398408114538757687618688505956694728894349201517726688494170038507873472293867678475658406064178806131449323041318245916968878079599962565161693743062186789030245252564245844749530005648560855123861285293351872832070347791758724005771674239268927288918678242524160667452655100815307921767254105653343746962164832532519723898970741813837402537671071896951318493297022230448560466010347996245591948849310784068915902194215221308402323657246162441684668386526466790046446951829020870644759799079975024172570735539096770605724001517717741333366244680005241148138068984084061164336849225512436809779451412146056228796617265428262486426669541570744011814420224760530535145055937146423121718049987031049141627360241046294818407793421935290302006642035000460749927429308520054206827540265662587955775709881796915478377619317890137387648257661016818744123248814778135050811459954403440280866370441088053367571977181717746068519429170766459403214853964197047854230051692963068888756238956436878225178261956931170371666140753167752724824362894776324329421640097650277648657817200435593681572706684128237374563495426529523519423745258013910187907670126360497704991821989156489885332880102950574231618666819787539048700997154001155370295975150190233744068157681116353811749961886142455557328040880670909926003638944605604568703172930966948615588516529971602478234176815686426082110352917450289440277108632099177213448480905449685786779765462393012163887984511412026861742426481201735656012375528596887640909882527910828175568943412940554274519770246055326815545839856611590010888932498471504855927297854008860926452568138878668387014718184152825157648879450865339526968189013690606450654421713292502712809430890186822839487330692613159971006324905353655736737702889027625785272109071196304763503200654765331358416934300211023665913705968542808009774866853192942183775767278315308490594388194800213145740830980856197404320048707520863689878374123674088684696098360108100417769284050489870468405456897328738952686955367039290289304454761197533701468216781555813660423051334066249872190447480130208076813125692634888135931836706995333402059520012591155484184069113159284085836242776056559763309735776610666714092384955411700586522926807217670377762760662309984576700954243396754730315816296984355359214223771168714002626312998338159012316476760442616308818353599728771009637920252390034990926697780964437563971729065225392663930145056914715382933976175471095034605296729643707191156465581433942903264866282025966505827189385434075115844235536927968735714946637697651357216679871523199868271508543375334739669044106669988163892810367345138476369090062200204395390089617131516044709252718554130511810687742044953068712002512472257541003453541705099778081916516496530795062524243198265216635673112180464100576485017379446935189736891908721765813013760553599133243660840424546639301484634779031320473694770548081907761902720735790788694438667760438375472463245778444477497511851907832137752968937254136811961644819951226151115038830281528386822291093226561368299921971473122307869376217807162185108840900211666764063635629266313718902036344328174962111412148757545149816671942925266284100004645472549313835007264575179531943367315343279406611424160851425599047959071773652577271355743243505851367185599060816912843706800036443840961212989831594779222133806136406193992484092053191263454513945528800511429199255656627315031228348286983880756888705156553738368394428479432441856210548238301417795059933522355142240249275621485929498679844767812329552016132642589267157675154989975647137130461063231744018984229515937429323433631428068546742512308811935019503055725460312560558834090363202275242505927060188800381144328817723358027722127630734912580522743686428336689202635930297791678427654910970143913794612461885792006967809105413364777585986920304997793982487294802470278807307000000681595940242574722641525371869263130183493934184009970436124528095400412414205691943852092237156168620404347729659474289222193385148205483856848581988024896040380422354445727906065376280860833380649287675449400760470839237644326543229619254937189921060531535310924834383322506785925372701852111629506905987228748792397718933819126626293119821021560456203769704550679937186357054644769336761370873661091433313029864837845307664432012115734683131258274540192834766985847068313876068809808128924868414766497735466270377318536557309969690930740756435320011196264029146589598362908947920550749222011219661576343492557244019850865842163535597977743075994462503366824970512159774489483865207803053396842678605896310933681854591311301428086911591493203746266818256767554686719118758682658889575494575828648390028402416852421071000472462816496096328496979598948022750211268639482139208922931277416863369000151427035252110291288079702219649612968262029452615452588228463187213376055198980666941017549828776269149986557092246417808811651309589672880136425828404866898417005592165103749906182097132585013078993844001740240842607794784617750333206337530714184686827075241606016835850455401987291989470707639667000275019023666232914135716694290977825177045071744271311039748253122211726582436498767138029374460644820067431241086717674403097858181007163202738549845646910569361579501008543460189549931881843704323974078167892681387133399596971192311792387848771790750041061981407582838867845358382455383236002550402106898181878295961275329493132062612925425968729416068468045705108348499253814797403625045166493958241598775075186160939838082621271747021481452353124707380616400891819092534245121987004305982102766710115399124893838074961940861562240554553478943022937848421818057436680144680608729548692609842156835814317858105545463713476908668660918609720458413940717987007088870130160449265299277005667942929198750478287626543410364871769686011452657083994922456704113043683754393170378084525795017710039418645771421745540267810336175483709743992827305448464709649537788181022771973822930257225189794249515820290990520173438677055671591240397509580543206724804080277601570096945719682903938864764277581285566106865722628948789547281784799491720996886912504517826442147040069640623714519129893913951992462498772478907325245669723060629359776516063812365072459132518015634996288922070312281109365429475050217130531504343224192944284814750393594601450339920290015835597948104909130997063364790163919065583658541601192437716890518728186276855581785406143997817360666889464217322064420017244390031830845538112502646750326249899331277774446206712659555959814878388980184640124252601688922835205769268515048846297687915188256389765758162124218861589899406803388851987920881343639260649234759910509242446250163096653748668504299230221468705523085360971320808301015267213599473563916045648391102379068018538819859191876738469284251658722432627594413276424205931409173638384623707669678396122820869225758935790017655356002174042975137721889227965970048722598446597739332634899348343028628719165202207175324119787061333184375205162310225291660826344712916782346118762509203902177383581698780301309272675589606710020282895825708903364537837649425250742136690679396222063721767143498617443147662519525334522867192335388554337178598793571457032044993693821030741493182835079900879280528803343096674162579109347138843897853935560491949699844920001289956131192805996276194069016314525150019506707794106143423356794892473687575785264791486499465966785120894072351032428365442953742666412023449816648657398986210525588292740856611083167441410033159285891296663123313852164618114906040061636991051982831456973335813591015952845046336005836554564016428841528550350895510339816501025477298991337116450097377295555612066416898318592652569211253783723973914839636631254447501827543449148598282927752124383056381115935134871068979650916444735724308004289514175832190723019537029182294471263891558967795336596175998940158461605717322669801977236326153213873835015635634399473921171973261394553294033903695248082379646042507834707703400211115106915742214342601322108621045163586549884296999819227951358124813235610971440077780684071970762488273921071898912271842492194005866036626230360693719923288807763131916711057025187675950510506896166713634332695767170331382413643574315731275609510801442635957274788966940984630412647193231607496872836083210630156130899551263288900199848003715846453800567655672957031510699579085406972159022338417367252104444602825829954467962244392686173716324760030121189170557745165403659818327723532931782012491045384297796383594686210631183282636620290548470351952997230315349706720473682894008422707279636630494023967079644044902352849259699293036516414098649721396577681289962495699955137609789729990723436148699765110296712129130179910830495238426962109245213821836190395288774034221769775898797649987295304133736465605331364366137682766484753557525580911577072634972674794456028140834450630929493369287320814153995215814790700520073168017935301721731335440720116662638281210680723646806476549619136698732039517364398448862138601918278201986581530532351484356399424079964511869359371334099731085669202257243686861131451357647827292764370146490189510303322418640769477254719217028774894036330567383229728803296081071903429268300314633324100290676111403874040559045021010304416426899085858537280257421220388539718642245494248477947930944907665881303327886121351794320225615655639122117493778446346767475713095487588589901450612835661949350793132428272383202352813602240924618587933209006297380086884031378788374595010974392003631591623218344665552467514834086589464163981683119518344027784659490932508805058279625946021719534371328372076912194700031192014122897473180816780359172228846304917523413892531682316984234987892962296977178465463403023521875624228728617685779206578720234088557973990932972449617381777760496379591517072992959679664229942146588142519534235530005535495896577794592498238286190255019827446919305766745347996635947354068529644918679671107379758133295851220132861033829392293751090781678877623509490794965184482719620043315518238653850283673094930466322263098280218877730746365895153225538463580035779929796252518027939989602826193437313619953018377939302981230231153310216887871573026503741203810701968067381546875578212418404766116668076914424361516918376159797812999541271698937247287695260768237249297966870154497556506798922712680753595809732482980713119482028409299991589400179699249415268793977008508040155480388495040509284935699685505532126275706367398753265666735912717379849722643229702046045874680476516734105663714019672727482385346002738295140515606170665274885228919563574069237942934075572501812533493977330649918778546272185101340303327255081444224017181993356874082306225446894969588125385299561817635070225125968655430217667903699165283495407395519525203124803743725042255945102033961573022978706719506787525495994192596955859903774419423059306760055025000669976271445867438155621685462269687947764049046729375339518492973926893697776058369630969794212494438803039089336392916814897061097028435125978180037443840061108768173315430012530986794757310869612181310721213314656009585681874652482699525287105574458996676174336895010388463526976381089054947617689128689747800369952443086233793310251323167431505788340317594730767193683083828662768817917342005713131978976527109728889142043799685793574816835478966476566804508330543014608870864575407559742118074434475930547510343559077404637745064109019457250739630446968971242481306652840540080589939474914043638898825716369743280973631977541094653152671924015656232428765180021263703656968116750760093989653442051282688427332753986988077130150971362613786823602923897067222225992126832259317876867152986906393431313473016976642623401662397683438123112198131361780874723900696215427342108806993332695548959443247925423455797529937823072545923923616761384891513082865502453829738080239866645953966991293779202557732564289975621100709906344893209493333970947824893051736982324166780658374604405026014423049694674203216357348873363541357619237218195252420521531322306538488255009352572454055569303097223732426828723662544553318995077458649142261338739162714373065160820089833731620229706299038165487092978776693241687313345371106144442396702543522693248283386572709885254951877717237808252958455124972482321900040093466891537922707345377559094710539645433462553388364139980096489557008558739520266360807538374429240492273672880670926834036048074895342134577139580114315470618678494060155939224307102458463108792556635800934083161323386236532492009425292102117091735682738364604701620324268595540004744970349580905968756281866456483959140399306127427202476036423633723437720894984149562339399831447486100241839682252934230193543561677143489281650842321858489519911750094404800268010650567674148411283846343308513822841377952273520900366694079655339123189000851811223490411578387238198672797423727119335404800118724877235442104874197748474080341647056821172206924346605131023718505013357559798336795160996367063671774284777241069713031687610875607596311597375075438926627870667867273202609127909615416274119071113216719320207501588982406785972690088504253812731116996643717502082236172612881277886338778569725585731234534252692067956393841849122641866372966301127861232884320987232706842130095108750545616206026699663407967240254409132039761987951267525202173753391031407682157693578982970288165936069755986069584476574812254400560833763979304677882180997965879997746263920944886032262935598485461822489580321519907127745116710798247112360031055817367044492973969939911041253238995617795477754740046351607463044594642844165531042100009523093397281341101534672389804345429230812201441410919601474357975385502931951742871800332554942467503992710103354773915562873904120467876554920784690829589497513218418768542515108842842035057298489084707933603670660595729896793513140908704317444591602981264302200218634191779781469072199423597462923954316213596073386380189819951697006654772162587147808479967911576548980570578249999054795964904702512300040734773767382969074976439240738267380780467790541051028400568713041566050469247902154778776427479865642791986380539581028134215256982229205313870630578755068209606096153825337114908274919644417662188996602829733342315598472099439176783926619426875848366330667969580865281760765831928634264852102709695301867106090431115241173732681783760225449720918820255312639727920655690907962071840011537725361057594153167036974845906379619171401056131650740875609001931291701395708514271966479460947690067370418170152573362972069451596112605667749517351964477125090755841981961398767570084150521508534471643586467947714013219016113990026953622261631629440392661442508636360244330694030863550532673609977570816408761278019067311446598596896472234205025159012079366947330338460531909862130681076622849448108691105063081541893787561666577117442899386561237347208205125034149994805602213675350490144877347649137124530683615138963072577155487132255115997751071145773953812988527726902053574411146402495070011646615924244229153912378577990303913201419949092585849583500536845334047941218858591285123452404171995830718998785977094038988394261578220423451497547904935807808087197514452875369369500382783652199745071470024499392952965907178106245703306711845047469370113059998678697217805864585979943666970532519065897126126550568529011270804911244909841289826831240434014650668396836377928522386862996622593319973730905150704691414183192521727283505030971542279450397754239102041807948314277971059927110309208763734189218862906032393673928905682849313895267162586478624079176350040401353076989309032026387813632632202054055126380207333577882807728187586774692157674368844831701789870380777309949599263274079053720220506781352694057865685844111121254683609591567768278620889113941794265555209911697347905048025366767304590188108512143917573252895525309775376293187115398085632048104856112973157428308350677558630450355508719289575127874421950899706225542695334799525421648379961216476129905831840916450060020772719290469792887337972048988344597543468231743658883761520411847285993478316948722784000426373486095815837246352014248171290369727146028485482949476106675183879395113166087093394419041183398897183192392121521392892410649065290330576199778391625019139721844519689950040729392039070949000739427961319188023479118526014168314801829141580535538668583697734707721620794457886514152955824781995518121672450980084843619917326178702768424251812639492722277259972180554181016024168018295505896454563280498095017544662412724148777345825431566415361810860669558785622195402267745535850835015303964039159795758199480816220812248933845613037550506242682469270470179798778456847039178050173419742083582741978141265134629435897492945642195963091113447340057420908532716183755824538909361425434235567093436761832020556081244380819478085720880827332515520654971408115192036992856669537991487808335312058834128254401415494113582289106237743024786745767169125972286331379015800303380129671654981096369629265166453442039581873054588835385911425862967164553583177194790157655371880309535751642226725134237658603126330251777419306331185894993476613509117068949752248631292453136094735238620970358299048625844004168174413693036727270757517006348710475992489782880734228000403507611178827318585771846309473724397506906070221866450385266453653002534185415356213540447677807901297710977282643684541791751417171240087667273799177560806666890560446745196171355714803833369243861498677637382999884646881769875568749598183365315362827558399091228000854568868612954349658268866279819841521973925267085821576192432320915725570302633197124113325991235636984532633467334880211812993880834314347090242473913045842580327471346663718945768622153201076922941409112562362857711960527113626197526372900332306064817137269916595230422678051391320096925561305652083090704940533650875993310287974236437714166351782602385203355131812904277089628591732838022459222652550441745137051169304562895931443311834285571788619879560944528117086455472409321940440838084574778923305556262271142201879421383505946504625687961164278496340492043485374151290762176587908333147534518988954043028870643270547050996516404922492659752808590431730258672329410393987664487069225778931635412080245388579061965047861766492078230120765941132826200135400394664466504043255342310415421482931663699337179192297546917546796008548562289185772711447055306855331010461341169710291003514227923274739218468499322165287415749932656796846880985124424618269285252644201956754578147210238443717263134416108601197234073416743995699295965677728087319162187509210271304063453045367180468803691491371515048037002331598182113644369146140159807252762607593687464624453389911332974160539978021470474635069137425488759970405366583696323104001157399619187292736995440013256648362284963925557649521203249798884102011715858859573294990798567188319800229098286199706212689123519970065996864529113269823713190661285386858883122232267376106717322936677842644079335869933898976384233465939871844526768295484255905474709711946023944440750812740030169830255705616326646214920266131020868790935189285465655730776867865968006963694679123394849353955671762309966290166979884743581583709993469574291932058268355319069612779640512371406349383166731244384485762086067981951972487789882076337949057067486296264983298807923733531640017652286939516673526856851330360350825345337757461891033903498190085213652880262238316114468936999930785694920043667458749135277988718616340820265019250954168147062883670773129706661929875307369858852205417680722390523652256052503677643578742497248285159952592285965962200617031143638076282789336576737739865080088333722830651337747522479450050846887548098064480413844648666578582566974623139141547475772360615090868120776850819445597609621264341889045291166046520005900538116772966912065521935291706617009670261592481508401430849682659284196617750667511808871330040992449152953463106027408364215619070614944733861046386072036688291048637537555291786140686058497753104587365509729095548201687346467582198488133454564818723090756741504525261286578524024584877549598944488622223537694856401984837640737331085819895890674017565424733046701985088274855138079893777871846026263405464007843647371342988759705744542664568320004327746741581828285816506397987118151656381645019030313344450687317330370717763405618428619814432955749181935776467194901386283686561012556523362194749557602628739252373434508905893996864961206442150238006808683624190847536577208527775593771639403711148436142121734800168107616096116495216444839208731567677730160520355754667952434207260959014374398206265532297825165393059587993055090389589303270805018295126712235946218552524417836593659625234335547413426156832483111727526840534099933216622660483400332952556574109649971861057840694759345070211216901663709247561622804335217850322688753996894183316797618918677486012944332827994931594785010793969124692534865248002353025637326084679706756874853525346710018105317655422606326305265204180865137307887032904052565495610583817587198511968862508986715623609960579308987428109678519922908504108058723067326080324116729293086665613122851401016528156859503564326273317344225693281902494950147055467700981787588990762427415740620163524721874825892227687702314949209623302319549598909055493080938494116882731742912500311432540157489349645924671839158221476906686632072506760803521482829248858796612601217432957708808117355272377756753054261723868211075206156033195230178476228351585685190086532203312314066494699262609366687707324139855543496453444961940155409073835474448635882081048550547177357470588925886037070530811258369420024395598553823110710402513829152483943788505460921055896074976080272478677279831762681500298517114260596769608986692339939254980436332070600495219688797758931015377475143408591786783289597389457558697953960920968877068145979738693964499439000078759440171812084758465566069755924174862251417606873083131031154432701673544439073232801049975348262726127260827240261250660787487857863083533944251064592145389074600568314648603486938798259634380966553678851263082390507639249753472749887973538039303734560972531860440511354381996539482572539959775351412370187828997695466717989122254338554686507316948503554405472987234008308777797872305245007892721083356100131660507227589558104004292683947623257620203717452312528893786662878625396640260647334561703920144662120831387631698382779726168707221580805868109333675401745667392855487448703530687391695745780576002210398782846427331513751295974106929454543396744389681882670246228626963833477364564159020299096095705665934887550879420658954158365055324738802820294006429468565426589529129971259855886583856648119140980858558609656418099875548553356687475274397064199609834350759297864620089788979607921031974167627769754114526520342260269721117443956703426205730833407680061916785131454556014618442665641144292728946160001798468035808955067497123827778156451370761164130093060800688321313897459411434222430617365793466138851244456497356432007194968423275800900971994195403043623162956138077975214978001162868638940952338660124676421723172640900056875370573576961978949502577732931335660987359553632173619425193627532036926616610458666224127905865687354302825194486038178828681552658840924029124473815205264114477650999584481394959356421261762802435221475071339604075296631164584795734560771922823487609870268700494966270630669888033532474772728512950729780828452400413260494130198201293342209438440291156097988557098204490857345059720289379597538401177264112666413685073998720575582720299802287540251669757052668395841695763736931540122634292979793970063186201034008543667828285642180368870020046601255301961673193580936740141492550416725622768443701292609363188902558469089627398379677800014492916476249844204010968526207370114535177603866837114030268911711386371643663066176040383531003471249831634425580852628818744062214830928686569807971414184987128815285090492698249149736440979514478292940545296388471240043742401582063979970701606672608841822258612182397576749672417850451762637747321542119027955564893525416404672672201491976588172549208509837215137865371927815717982761708147729210755574363002371012925430305339702025205582648766693663379024682517340778548785424489107071792445177416828751096717721751765445354509196514012436582660077382448719225129002142507213008072485255884069080654867527925825458804628213068701775123065598775304247068784946558646123565985506775281368032110181191940409813782139593253483731431620062858110632271815080003546986083062838311431534715061681195419751829499813265915039938024272766078816760075019370509365785259056001698399358866613156414407219985556048648572834423218985797962126375170615325530063833005487218145933019523371502399272549009167334486132605781981889061767114559407406562908302555177514157184051125302633649914055149491207802803170259335354238906512895326945125588340474738057734905922715234039292124734655096195278011381052107012812827423652396229343271986138575929456806468599995018911384049725679897689513514336245945431641048641234347303888403856172426416958995976344921763264199141398399619888206560299145173547405473242251276828329100467298249655667607377326814094943587752590407140462394708837970438655141233841313511805382911576643849474589210759300329635786998185078174034426976221392216955282618659552162771026618309602021717889073545761085690682982334112937887110980379797846403212716841139258643845252829068254570858103415340098248639654198768846227598270897083738171636075572914064566725058198294905956718230283291386775503398479889912375029957390549789417316342309414306552210871564498068784475265431784427623537813880529703223188820157260745452551979123642762165496957354299277246211906605085332575517944095785641850905528714870991848597239436602263125766356600434502096144486989479347291485570453331098471869440256217333077448437659733936252247631057924236245556351682766052202832630690791699076263203356781924861861818797022835390199919858357197455729653051846088249405367421050996130478236500976028943712232238490623863070115433554657701975800156594031127546257149234746481578534225749701157271494383144486364778205254270682369584831623312688479960605230162895154123987428199346696659164909752143080924506669883703341442771313297831327077410995499760577621283448181583727333813162124861347986365984205311388901146193337588112561956296814984605771203539574267048801916483188292494203292689731865656330661769631685249259414608974995686205466383583490022648166635067708419498094905196702976098915977653406027420013909152290964595009354606916644907312980646790243838469710653023943873838718136415716349453858505084832881525585844328707358219532041915237967523412933966452187191456404427613671916125361435353972082584384316015678612232104626074293405324759068747046988042156322817805195639585493646344636665487307198115873201101979081104115476078429730147226288555345793777720827476389875099632911038673276135832873057238663816257172474801366322166244037717683646024065296818755043705795279206176377405885681722448555660776642884948285660039677860890501703045502238911001684337663867273206187543804007584344398455776713453994028806186999931015475599346722724167396782139878179131394297919366264792695239401259963131157334201623684067497052204061251134352683872326840021190897834806970827202375726127618340913202616285111332229621945588889180566952665247244445548157896914640331242881053596320000344840637503094557905941040853177404289831008780113103107230008579551566996405628632583185628853940184868317116298755455584944753996009279652891460205627333437899090331130635569030496018670361042135107365090135988785393687185688578151812196550178825524286871569733743610749434807535822796971915214013189758866823958281599961955295729359801872719231334894673551112751796524950837589699731071160492108439529400167461207728736603226443587935661873408483447456534298442572113325590923816072449651241971373303314526122498983413221427222172786120886477338180102887896935738048935718497389940486313044629675761239766295814023944474122819671555755466236107111740429076286069635658160972913605504238979525889428997649180578953137406466858785239787015738696078106285171631444088798051480628409575549053544848370488413704715477874505823029151059460211328863800465165889061699265003101989217794230289409464052576045197957897090443539691108067847965324611903714256436725031723184012032547771615994041495514464264866165262011995729395386499620052108052448757159298618080532509074078858448015192068928861724113176304804345849716124218439944242809862029135662604306368717314200477510781268700756548323762547143810247102149868868839247772148247437893746198896201968305413753073175427478086607899815594899218733221026566360716615875239429886787709316418298007427820481362093121109128631245940321382994090678452537475464787160714147855612386167075579338493404792184475333407558758309515230766067197230635215279310100904663483504399643077192848266944087145541993456119676590043853300880299647496089107408897493920669287076106327104939810790618152776588852610697859094464400238542108149380410615845389613762599936052575084956206833128327548233865469721660843700934938394293192532669476998223299219214458828074833881252821826162875317614898791880673307791292261302668455754577176558593673923802047916335678730767995633612338106035951325395279331001396203902678484953572489024690729222737482284308192510763912816794404834752319808178929005226737945040166188400120722984782489306657716383513938068035745979033483189983663370837124714716750328509978162418294535419495622241487873264029812378300392475353922343324007696644524395416608737456342842145279185995720737072311609452407351862499054915401942896456669832543204372488041556774326586699039357010073522490290371710984369099705090883117366011872412470021874229018284698943479863534007070655388016094734649517502284189064393830854491582240641766378656996868563254084059193245149245297454968900478411221238120742253221330335703916524743583871989426839253175711540334690238605981500128693177386131441515053997891913025082700401277943861811512244388692072082418811594222611655877328717086913221909693856267300121121063138943596704598868017711032409790530974990903435170742221754133083922421358507789757779882625551685772718438517967655047856297308215593312815576749137681791655398595234358168214929170529533193159855994640664865552046330993712093401585995578463317140574549384300657454407955696773888644468097244616574056224054289594142580895000067545879672320565717414131046690035053756937083331389896016352622584032252043117396059702130011391161225953152762778013700790959608829490850735773889125805873821574065390777221718036996574771237592070135700887700365242160843301688569049929108493133362283191273465604560240500167232293717543244608521325139874736507526561676827375245706776806838526071790918318776511290689067811925760155018609825994476174916093244764973090006606893957356347137259768468313749954921594804989255126529556652051628558890133838391085254818535504359811089818161989145201052355698169334633121924878962567399452253790478355302899110253469457929988540515738425937163310854424500005336316312782439317749725273351590412716483317226214114481944232400184324842273636163226931210890363734752846550677253216412649997921397695739418281822161637156166053642174491954553345750197762815575261577258754555583392183002409381253583152022295422059067938362401285358046036095117178212415024544555265281986757367948776592202697144939781459636852497582058166490917203450758175361050809602605513298909791979503771319473272993463017998234392002074015839866156232691521331829727123810623523037915979765252269533204472355592511622268508745698735433340365402991604983912460555873323204725711433301484870578676073345270466825025832548422340430087567692823809137785967201996623540335198688336418276465485602029200691566687717263035804047432202838721954581161694549645677526295005564871088940223797822065656106532300584671852262251906737027003544833109292751430891897491740204850121264367202611154733734110930518374999545004735169032128992362063156952234318637489510265748267222522763575862347782227507954863512254720753652030089698741775809770441612204275166721274124557184922690406723093268543920539786243728035553392544227622386224603854984494709008786977662168654277161566222868636698562030994515522068540614646126716881961195526581304116667032412480215822357776463883518462143150246391245730711767176441378155565467904907287096144712664920008232553218771127817380771426032919806879681448876639342380272957200991661770867197171821050587559934072429473583415705726728287001207146595676537146472166475789739149181900416443052171306824623598445947692922081869872767835309834584444903539579459152754210666574799047489807222752416334949316273777070746370955738312908261915103270355070559695744977727772410948519215438455995062577718441956796312318111247482890879550124960656816080834733702017634775970408231556476013045322170076257470127861096631703983833332827338930766869497350377497779651098842336001159977716878034298361352843321017947600212379762334029824100675058740753508749336703820832238762044211821581812149661767345885742686487503821933740908881833317009430649080210121794363804544046471639046072426158531012833762555999166924233482653102450168444620903481761560317605440449734821798716053459279075943663113283632341934391350225466180171845465156323632757301093044686185707938857358435228218956425975787474585426546815845484664206875472055061766698584345727375512847765329370587070830829924936320839998870038347612152650861338521549614727541000203963262700752365499520814594128849038301197798310823775868634407735437015546986137268316810517405303993320915922329405900182838998483155029420522929727582821389559991797727181488638817047348916173534215833108969432972572920955775815823083970822943930703597246572715805205959135132983558048927108923272995860807317447475736123653026582669581248482687095038221479189031283430825534230212581291045883545274373414285200827483172565904815247431466583198242102144599048317930462292881034237633398520470695061418764034747658710347571871432663562274278870516408393261902955477856883837676838011977918419158642901313628547771295628930304131961836367181343848953189455881782958229602308466026292074982626879190397594824455853180035995665458398493890695631233751299527907954685106650311197120814534693808141210837596006703606934240820400620861529436034022200337286172571506510601890492753215222193773679721457771508122503697148348147323408722330944663278864772667389315325065441919372329062697892443312974328641396921620428027680527962437230728471464687802067775885298868204828718194023060074014963865079479374951490483952355475856469316849262471055736748643469872587473443433619763154122084012513920519974279954676087083637976675487127996244055611579989977863387109328891213458777363381406382831752507777174808162064159172842768629736521062361589161956468611398240841009437231043742040145379604483105789528166558280069539631159565449346250624258127929287781875397194863170167975013138274932384531888979721084590702936868932096048952738421490258073636050957582765389315307642013993329244429812300049192470084323372692960309842948297564271521881598896534549080859347198468307265047407965212342399348640862086582487367364261790339098174893872141985627527213357211624719599813761826376840708388143489621050314825930964122621035335247965818286711003416513849481099799982176513424860008923471686833668884393249696834929922951948085618290675490622071285004888111327932779077332274061286930884846141318260841369271092041515231994573254395561216854992852546090624290393531106997630673776966417412188953977571278982528019443697283730266508147828359313143929891959911285781688986448860405913392160699421314642689568653374507742151388147579778457353177808207924991196143975068133486045533571752749213879493248295624225373249863822886246392238884556484784286670015092824963704488725039762755118520272842425547563194475455184573859891923633481879448275592953506234160142385612475470819926113866867228349142681317779315800616306651600790029694844534499065513767654557495945384589923429971315468361008465255157872647379778266883465762741720433969538523260328109502436091073827683703879357873999613744327092671608697358498395227824338922491367513251579744278032608026046537786617516542098154988152731923079665767451390645628833547286619393943312080898747589460173348841386949021370824827753020333868788997937077111077415341238794852691874593405690961673311903462864618721424522652429104304069588044876938433482487771078757193379793599906732813736870939616327334030580391016919070450894351013525984919910868650197626799386143200736891024095721255761771754535767554426067726175121327233024638883597272345287660814922858195601624569388956967389300318686765999939244981736319528550618242080860840608556418830926287034163667170677816738426147320485287161505002221512566570087270687705863746939570609661801952088049100171740070941015575588925591768956150279106711814293780707361425729755625160531472905372456603910777962086345792369839502028287517989852738888714868034572385459958355663549821436113787799161443400973773142361707892581224454345557784415338829167729519761174946205809143205425085274039989733960378971408488691046628347137554656817825061171447754356639429803714814965292120133395582882773314707120082597376871130084740680555206481425268428604207294400549095192212460080766877009162352119682930222661521379773981640671020072072220483285564589295683700283929219892285504663577308031313414223145254873655000753935858080690354926771430141701417263959831368370086199405005099821286591293093766456735730639854747615399835296496747091142973424364458860425014003561649443800327433378064999783904201925157014182160308779913471467559152385925819066199736804814359761959684015231088115513167555251535276262728604600472304846615446558923333238213447611509363983957066153043072638068557392683541777259364511714095689580241736597919183071336359663867585529854775414467031703463116870300625703135148894309582687694814957615674652858866304839207400221307546801911042999441642951980936928640911486212239944790091493103445000274418745111437813408367587840591318315505902457855051618174043840973614046471330953376721759470751173697646860881456474163278157900354040750738483650251480876386361579797442117771888848538339725705389284554873729101950489814016667203524186158295783942010492465362339732173416071414208582330087940541891370042596082649469824635871523101494013786164257717689226019596052035059602354133531867530224707698121362625305019560745173457309746136042183053101797957351188130348575686710588897765248394668180113315421985155983409185261219731367878915629552696437424074563458279484691501288524836309024492852958562692667853306178652938325405495915871855392121771482252766574224764048143950019354266974410260263814761124029709686535122762570967895525596791385782167377479514361085978141008409346330479445156245734249478560308045001031169666572972775467521129363011977645153645849686197509794189997905788548901848711556475999506928335177534779884278036674809200087220447136348577631862039101949307859534423107845734819991312071651423767595885184976547267762194036226874897083835242554574126885513852355470406315895064679489702441648481648648627594310516629139084182849960190665617893156242200675790701560627252953959627493503502886290057462845956436041576365441136118526562718469984796573987749354592627873176068358273579394438309131974549577887498960460609041773066730308351867101242013439747813267528794715840997224102077685958787372437703225371295601393129372716542894217846395133168791958068356346738119514248676928145941241231875140122411933604204560446977149993061687567033644263704908684003134852172364612900789041781686854009827163858388791786724614816118608792511800899745503787620884408431998541165849826898425665974911853420716383944417306251010760235808928423903643605060715194518039530742183679417456508179681007852046813254292653067215059741460748865071222189465692167622630486471995133547502740769775358702652222547996944504428022303884320817553898040231170660012497989965608105607581233173053521137008693944321051408540802232777760514550166644143773940089238311046000325213071635748116265713362748975789682512185561074796913439969503245641144196733243721899371842621197327832196043822175462386389004029718483106112985742751734172147962091465897274803552244783410520140503445497685311174218638418743814334968336326903417933691242413642150266974105151125389613735759211661492161346027748128146087900143946214174372313482885432819516248342720118784313248811815649451227247691091592893752936795876800594708276063116609723480813633148703266009444406258607758110556008836690514064197513331750031171427152207611490015837796240554494222854047647699625662240877258215683429161228698988443697741278386773982486362869478007653733310105093206121278495933425687713861001968015258563616273118994377529923600514756680078077146951894590761498809195065144997098995398959296418674023385326160731746786268109594477569912507578063049748843727374852714251981724184496828637666353858749866427394760224592414369115388852154309067682477448597282602025373240662089757189936231653623738375460185723567691494147283006135251926697779812960905053005373232878975635865722551801814273715534188201376368937704295610994751808538508661291523545107455758434945112241456139962953512084728887897243078371365396650882289976401996095445346079850700001838156745543655292756126301161681134429818694437164677011155284210518064246371192050683435422710223247765935430702577332084002221732643875041762439115574198928700259742722894750469975779386251754599131119791749239167757603156434428549380916774502774613539161853371603783310720951011988425002527593359889659995796332192387019607781897527153807672838438345589426877570432982570829223902492199238104916149782892438005418025294879081524115667264007746122855757442210650711633798716852319956479757445825540483074372426677220936047124219381449224174163649837818869478010677641529530379065121116720249224823258691229275946616850956186370364443525634973067749024502544870981617645459641970173407048354988244103517403824225993129451514861295113332924019373882916895036693755410648182882166693623129921185777852648509767035417256880702411990877918631444475184502671084901785331857599013945308175032060801020355142854511596142254313031049545593888298496169623557896243188160749879194762667072898523868312643068088460241122532839076988573493080639692915447027851392592467605799170272978494849414272346550736132903383161285050275826077053387291313661327068346822615763902552289210478744261307507384569419939216358882773475152268244813922098498895979646440085845799460189280216559064594140898683147696290151649657672285583098260916496095903185938989484663489178977911630930394771293280094262038636128629700319611961001736229447086426142349124229995457096590621364983708681309440995111938497090424779652851802668300376203196684401694080470303700729231110767519052748631272621496098193072596129572762200991476440488933351920257476718715556101226275152082443857359449046867461632066231148350389545131750012465080751545279767582349648610476031347333556043476288376244175654884068680392800412915426531522116531164549349587071163416650882104720494186545319183729876660647956127606402705432178153265407664682536164964211096970812753953870369705784769359749041510589013852539544120119124379860898535157900639127792216343736952861488256241474662354058723998519678962413872423711758300813454498037146538325223841136218389643232038575210358801894206675935542776729969148428105667762505820025848957742731769553982685046481352752211928070690432606516658557605130058569977395568532626871980740008892575376308134390121638443655680868720345790457699105382601796170647490398244806602844823950493002019668350209586213347670005498840755674378869738673454199628501540233248561014633967739608297678268520310631462525891592222601929205854298862708603215417687715348324679140918228653430068116539990911237445884347089865118708618111284614469048604134005825916401097661996160567763175944242528993306717527192175448485906354250027734345272294962531495828649562770225719259484712377563559131165507699263673912862153616865866286088593822461287199855993625683187452160469094442728119579442305928026652409987351066297671488762542952530532149977715717182098099886078389702306308387365045297838202390113600890656683307115689497649024809747686798672434209614260383945123737405880419272459290800513631926050343531559966266275226059135985879482290832185470178083174310865318021619874333489858541151009318572130793445593205888829794742025390004778957029768353265069316529916269762248863544358283132079633246971107411608245877014910973972892756198649574435744547884169259092130838879839098758832694640519435462024441733926435501964927761244062199405397170654533518162041095873630083064976338456818460675435453009461160251060010369012839013990353058266303713741691537292231000825014586347568481988298377056907151988342140219864717686073089607362862097404503732253920690285855202666755263475332887340805617602566664252318191124508928932658078211979446807445276211116191090680697794041231138030103577640497367113385907766663103964684634654989815329284030338020972275846053310111476059775755141633496607889405691401984576799636521044423004640458463745412755459768032159239062238840757683797730174623351293768467193922678551622565443761855000003162942547923128183963010617610473508451793505443119728119128249820786297490536559001411248742211962010480191834981447888695029346909505961393940937044830229928064739020922067548389520757405818376376494269546520082599784059493669080532574147375802178150675037759109220140028184462921827282085633729114258446271273681417172902189438294390802570382793890896585754436708202236914378193955027195578493564122313164405631861492530810278860115323982545889880047166085178192459885002686384074208174637960035972421660584770243446179529612926164708804388983366962016921689158200954449556091972349623070823509811218023497091360078752135087655708784471164406951496925864505659211589832491717533309133781651963180089164668446738112378721752457742632495714399140927058100844423884244182283333834454433324355414475113646895491194736974702065373939379804446056572288930180769125542217549762231116808093131145527975218495435556333436537103552718358655989236170296627135237970751880533265105458917707374547794288501535524219274980750922009348174026995868648955678540958666615855372114552165032333902905009124066694192127014649664251466261401940433854959845733598635551932036842309767603675935190245403087009478949752385297390264226837563612622171171093123038235304723206982941295981553809148416146912513037937312463066611028983837127242273177925003451366595190560929273058468106195034037788378605811960878939749968769786583310379786284265485463224611309234467422548537500865270800268518604996875271351872178001030285555801641667236530838071532804852554013540962400262005620082715455207707524701293241828175401849445904454117305767727032991355972589555229621514407251128623482354434652470499216709103329400245001803417407087858697355360423111403967994735306106599617949360781202888773621290909611824127906504770197459095510591277584130852581234789344249763791905020787307365577930183939542990819828403686128352222000119080029775900710108834886229067316824859518585937509094569628793136688647873622739603203830576986351197097983447505335025610888959766997012554941408897610437778457870959493753952552084343193999826019334058701828639041502730244088786256229274175133667633933266310310046030943862325543291719666520598865706639872280397085797860436264766683216820786029299216850121279105261347063876556255278537555495633363374537457123640858117818892326728050557065523780173591573559335017549121201767091876010075200890106953295748151274527137622542386802824014761205911148160133237925536947336397989215526858975528423388918258360156942831176513011429710067240140669972441688879223448802312679245567508806708471339260077423258371141765353393785804998312833466581943511503680214050066253406144493418367812856152554881410017368751000475188509366135890531173278445120627861014973166821131264663491884851779016404321384399106849923010795961400047284394250940674396507183705026891632919101113512233059398741881063687819826411344557674935543942802902846147974138765718617661269811203055314280663997457201868095427128839575417315912218279046874957730878947980623326422981896069160119969007808599725626426153665974333074266904759048178860898413554487174113399946811579701563935391182309427536198354379795960377826638703942355143134059590850925233175067856425403753035223457949252198021790904563892241289707529753215816076944749643102620668387267025411175184628831904149598417503115813741850313305210884720107481089677196561187622301334664520266420619736576971601406777057710604595771393003156669955366405927312783589392092220541215127580582363907731201818115136125908349549219064686535404890252309592123492810813299717572945322571096795399065337253417582656413636332795229132360495570684702163064775628517395173942746128464813510298917850282045429674529405398955238414427783729832650324614222957300766315407867224302868918774765149364422462515277082987691032282028975017893585540455294823972742194907559301507206882572789404557769982514541409449887608406681320965231381118804639933528394281045000134778713830625558902801626950720946206827796545061775583789313940151755716881685572816988186207323247236572475649865817384690593161838508534367425767908536938157600897123971046537384333285373933213764499993385244143572659423131694084373449897496439069309554693333409276758955987584379019618591525438496114863689848351016578885898314972687230476323672792612687670999189230847148806801179144098071278382059953394436876654246305834329985966581219886713183931103814217022737088220678414009162180707001086073453185204811884346119151699322227470800834329911018711878612342714054830797715697885358790853148521693494377123749240794952399479677265073365794107360249677911711690994149217711812830109696878528334004343519683045023578145899544873733287811300251354226165089426638394445767721052358052371240368957501041187615247109832888251544998500364148896881182983566791882958485226656119164607694412060108770600653791563861489085394428055189126937330348303864735195712518080648774677964877585007124553011632115150455588158019536592140494179420252446036953414422221521236745613440278974052207296856246011212623530354084070545510814733714284437068229803257469281224791683124251135468929182736222251095940893903193684885497634967042471256396666197421880638604130902957458257848778743268489973360508895491096224181648758236220461595068198046756333793679529980152969073051186975609965842749133354434322852259954124876800753575726568799493616215035137220158623910232479410058209490443134471304723239272361605290122365107583915357825957243769905882600573810269347038146271077504259349206922720826221659340149055435845341701166505133528027369621741953550377177417008440953119853995578107526886342823340711580893184125834241046206817989560918327271750324420686943073241963268583632547129764714406107441513474287634723498635549520642179023437913955027568194169850084150949619321685449908481973289011558309778687764883559678921155684863189016902411819817537886566243494041695458161370121741525376803467440011637812569934885533704690564729876509441685313956926799646250282231953908171301292602141237901038332471904332827527785009955488078766063930018856703536507864943010297112222614148725050246492364780327080612623238855535230944017606007892350071171888006694840010757847603660568524259050003779469791929176583228674637750423804365975246991350921512860355511114098048849531929675637080548079560793589164987990888268485280082699007471617952048404983526911704342282494901874937862359598294530518378345374881623468781593000174291293686956885240395891036040895181805269325224585023678916188440196967875301622280303687382054901427216348568373145367916279673827337017906870501770621281132772156618090404421488878952015672082751277235926351233302777406853462042169264385269956303122135793846543792576649218458046121981586952416691262953172362652345992611333329810675314617743112318072467083116857076616872840764112614388101101140354355476440334391092699633608718687240463247605237295946630365971322534540197641068612205226996435660237960311098077378714627935520308439667326543298459476117104564779994319362440753915836121669403357621186431154521684913675684783711626755563510355517241591758532237693951884014111264427009581778642612057537737548316100418425970822390202947831608660089290886120330542645770950914963189675828568834850336151104991176468243219298264587581400599587309240737957548822234244393576263389193173539577831119741637463527215170396463150753704684209716339968706569476437157000095335702912124227723914394661134258886289282583623283210449239749577458598609505898211442618772559453854955225232374035273187697490013025528552376816344397359884525966328441202792885434239648396398088222040710877014445644778045586304345871743848490184316879523796902829198939753961720545964423385015975905061387483332649956739138481725450046925253094002392787694050883248495467479405880135924028621228535641470012497858396164241124807793507191188535237295521463187962414987192342450471786896360679955041870596554558322391735483086882778926556624803326507270941213299243731166018346281733136287456391461990797358053355213613098974685062261473560306435774496569833933341485597880591130176119854859477492350479085987155933656277084690554010393432523359799571751353415850159973265339326660469287550629335962423843439947782782361108726262738711132724415896286118463098426333312677788169657859478104720677184072030642916930450811197462242140487241178148264763551210047633751758819136103517702513057634122010089568410521330985229327044190965509073573180796891395197584766088073799678112696727503962124695556157758604446618206916711833865326339936874346144418504560170990521160802878252109045236881546728538884203647752854223516306180444261945627131666433040743190757685340428101714120258948548831479809293610504322794980032205272699235355963825239697876891508665582908069284255690361500378316977711667794539210614565147097560287742833638823845442065937311007237080126681160183983300379291569985977590495128346954682208649409571408279739562241594124511575193896834885617513547483068366358187575271526294223079096142360222402131538172919009682352072158283813721846549998670350736547543738740787222191961830657254630740745232461150711384693823857172317080472837821272563034571005144668648716889674905773894305590052574469229538006665739207754602606124870511714749128876356905920860652410826342795977674714560432575480095480598316947561567740470104143728591023168186292421737803802680487481129026022880212946363988214974142430188271395795672609613989664396852644340222411458883491528524931566304664079022723827614685490122616043725647975038991443228551945177832824789151739545411540210892876365337090896742725868034194475835000851041532758423267447049088248734293981538366963007728298954798780572035096246135088732294526039023408104825516218350499259769303802541072820822211221726475917185333515454352636941742490231549861241877042509240977208734580583944928029239766716433133594890615469716542230177517179209336012301046978015050406279000074193628577973301838562208141977756034265422924165449972106199847579084316548286292683316863300724768855631767416704236318886802052404692900544689744292749242552532768487315757294150351975759884792719553295923743438391501897196237082187653876181141389763820879146418146953959059792505181889304327832194500041194409347331075009669558696395851543679513723091216192367648827566338560567241637192134055414867500432163632539503456023782173150513977146309390735448701537279645296488077337605225857631219498816431647748127211709826910906294623813041720926757220602504760859616686388100307669074796456937210601178177352369441248744591332437014476721795861927549988092482417448689759813223006525831556210975013524206492173514254851553254922410833270414842490203421311050892352272986271139564053693641763855404236368234237964547799736072109026761557555084562819534520861450081596782716959444317543865145458541579567545773213690836633175846463593088766892419018789467887213862831407207958907363900744417973862866090118535898339634875887229447965727548228306851194428575943872569766805477276588826916260892932424533303636679855203656432558329510815851941416865208092661720490561940659140000073938031849478238001664035036991150722715110193511774093916077428268178020563950955675017846512014304189555099920941326797248297035377436296560103004086473798283321245650205872251979341625802686780874825928203457405191820878083797686335715471647529857049779968518493296224625279351815811225238930712625806554610156937987825653407761244907769961621784676024877430339533197037682562551407157208928064852258905683179825174225260941185045139742213707839390713368786674487579341413862681608428407375394122848066586092414966500284065276095485568956564553190002035026299366823630607877093170413447048372149128133815004549326490856005157552204095434113491422722469960540577211540474944317252912060929486583155365668852633153677777221339556423771373920533131278083107199092804372433087216710028371977167309493624664961848663389805276291013670534124655696202024606715055582164896598865255221857662433746717374363759645772667580180184684656519987220343510372541351963153629855854398009679433707485776521303332710154704491730533639039036553562376209894625450635527651634901179517768634254028760321267434595294426995481014361326460235214801209392671324492801457618576094857600529989594827808862335798287304352010523835598014226435065476236433976488167387982934545128861543274360174052923793449300598446964280036076529953856693277689516704603075365066419051299120729282131291204612900581929827837240041145087830936018746227295755493527426353805671577635787565060585379354437781809713816512308777641684181441660452053600414738067854325122448526965088743694900073599193782568982292642888025017547014835675120962419230783908684497236933244928777564607381871761535162665452926248801744052939395152304668251475673679636400338048649168472306610742578858491184412318513391877198929467992725702164384063976048106386988190456721872697150309656108042588290656769445633862887720245070037130477550748831975989413785229949505932724742587429881242477667826423681077931307146265100750281650047588859476183791955635696495531479178525952914032440802643322000709974398293406397118811183106904816054398964893619497272494350397695104499527826668992340615696593010882326401744025399538630146292139233152840314092609384946391506788369234375003593507759153296520934555242162909744078042267980318046799436794506618395364646462191275515550574207184450181281424380779610915154507290672052376690843624618032873806026870480903237755244970411047861327367583509727759975521774719823036263968902642037828687795055421743546753302257559331073044890898026328004589502333452505206755836484539887598428728937983791845911828960507045700464152252189727271215918470436275692946146461205288387226895930900828222699589444760274227681582694307882403509187072603712574920332529063173786686926790430554845153686483874989052681949386686019125329293280919132387600558367625259729325976144434076056436560384637029093963294600276952573857474447158731513698994746568303872382949582002259770726498123925033638615306848027529215548423467221407937012995917557983308520100623604072863141558191031261707698050576056631003004442056966006716034242358943358090496082550855825236633762834450153990384070440383610896758745560222371865056740095805359277118530196930812036561818497566771573486463848985470351697082296400280034138993944318833945255256783989587924659571551937327980543611315198897841901466397051074795336104564201036025677838694901456124828809263418730245582384231462756057903113745036659520263821802196671609246467201196947057441487225379265987227313297016597832669271272273180257782432692220178835553338513034762762071956863477233770262775948810782605877460997689096996839071523443723773250438519283588282126949883212251681699238376007286505940533459270592402559157569405173294121845468311829626251922042998106262861317416196772136452556933595678348835773235678984138805041690449839378336652774001219404976814937945483947916912217237723042099500516515913219074288774226573439367850697418006741992352478098787079712426003973901040683156511100532055616288705475446085211895864364368425123769992889193105723621728626540594567333748311334034843308555110893426702810081616272229271661594503625173554450740266046306986027791038127795436462577975397520693930363113105795955965076454007790835256963273242479941296534816245285145566115271000235010297614453545357200752995301998941786840674112959329543639312207416158360346083026184009387777528212848414721954523185710338043016148518499010139511999678684813674300905216102769198488184234548942123670143511230967567785176249225920529598542961704420728098644811565084197422949195936043980713448187219622297164388648361293265168686099059152720036044887462567458202901904915834285604873784580355610787508524527695160867864347732767406541644553569561261231936321939695988828739062543765621291494391874896594597597136161554677862950526714296002415920214018080239736044401947311855982107535392432893012238310761915797706866274294016660833504669778671448680884995384680288135479698446534191536208142852904579098871174214192164555414022497185860504155985710488546119137845880247907120821010430786650558497681286978786300947445604361778009935128380064771529954151700155018135024116001422531935974728289145573125514144914838644127160976962232778150589254567047634706942390276405102855282154562263415116787205520706379748426017999485250182624739851936361614348579392391450853087703740186716601634095055336899241119125182109396613578507422318724379109789372095274558522724212587898439993067268508554981378103536993196445573915597451705756704459663617111415846130591438004973677711550286192990293170118987805094460532451402739521930417385644058639151588032928027546090145325405128129097360223526745825435310678645186312923349415222114640297015124483569999206403132846562421458462462466777074513376273470581170957222199852616271246744074206793617287298360337572397646415131951470008663240917536375169661358331956449916920584052658195881227793151952569537819373012423132652039960556330853689202299620971687555926105367861370101583753926133631879979632987213814699039512165468008021240829295048740670007244834777404027062309362508728080842445048993676649361113119610104122207483594746555094035465220640401870320826290916475995571985759124716269250168512198823731427257397076336983458193647295530178475397525944702847752678652319703551653826417758505264759390959064523541463283151732108264588140833615584643281603208641056329443586335869484081991811067287227675437295643169105581429181816353672454422797632675499037249785049139375390218603174289149376090521675898600881137128811556505196934950077982095326911194224534751475559569809983334097543560562899203475460659500250970726378635777863466881603206334418232352158287886578324383430730899543709420884684325781869222166089732064210257295506168642492835253134724701834435011770499042329567098140245376112814040721582066164862133413125304868406945496967988771665638841779150752375025659449168554019434440245003309332731262063766076849465014157329586205412488557834644306538146768818721243451600993528322848076708326398666478181783591668494752273927001629967551147688351914753663830373231559865449117264442956888161707850700321294935332768558193640865870942016076387247398582009951155879942976106154237254355305780961288242389085343650455731749260950958722188732114986858078898654935792400941838351288233888783153420230976666865210128558918232588116264966773905638896044890882098458841842229151788516972804646152224377523970344267587579837564851101131601035616834676201215603304009995573407933269568343605464317421036385261986404908859421405993195122130996689494850943520677223843904772633142590304627751534867377228754356820757123822372940813591019480149583192748885265140050833587650904086149472371544923787453800749404319149759652354896551209715748030559266554328872561820496212227299098086133857648039313862337454778723107915402670892212628156236524109150148503435193186819759629336716427953462132832275694294534180726124541399570520581361971859643272055035998473764741658197033221790268172745253081732112961620863941532408601648948317009735515455043267417803276918345198148180844524714824099778656203615396799134942789781412401673161439191294267694703844263100906018878181506862715316402073492679826330232224269539167717354360091408582344269613248160390890570842196151937147154333965587382930837822263142974906660970341243851465273441003089372308254348918454755745048457555412939561007322937493898846472207956538851984528592346173024431290208089105602784423099359035443449064813382620457857270284457669977218399524889707514173109328285311260384367352446459517591759396076640786882909567453780639747676289826578234400742308152699754407728250495914419055699245134820735311409432396250491165172291296225939013630810494796852146258025016468620442229220927445589395460337970137900592379490970405471215569293088866301388443702668796157847634126168929138666125303830079476252366623110959195669685589531910105401580120344136211689051797675222167918194367595593134779262278695425730666283948515847265892614028652651117726218402825962558890355237289004394987839672673295214153122422081221167652333328878534274647254964831219708996465998179912195588897674219343658141251583840526311633548981841148286204540231198092560418185672765660009695332688315455612527792935135188322730214901046843059598203598722196533533207224174865723170749794369202834310879947238855565446956621742258899509847793405887130883112953190925628059830003314918387909193907028635099441601428639148280448832165050120878286947432059044197266594755807931426944876355937599930679936436757664208879193010846478011959189018788118417482959190831282516135952038081464368597977434653714004976029313906561512908512338412858780781108054112809027961533982515011826581821449488584953382206420595145203555188122862032890546051091732306668053086235735954435258693061455070742579535764276500962675501218412227501076524897746635889943472437493399377246603940108191555818929935262652099081330173440097853541408913716386936853754956921226842570606966098032337438429613679035330450248822849998723046722729329594926120909815052074749131840475187963463195710021781005323586800107855510693794681511715835095832386516760390099417774793543683746550767117262436136723502646276262323187446525798872832286929560857338911757012485060979271535003924818274130908864459847267448382735238931119320083052577262829568875756284476459645830839895880588521307945552275490444560036921242652203583762656306501792711017346560872311634802178428969728333738980547348201139651526737109135680225230118062050196100068318984379443114756433780165716577088650034857053303559116996729382859344846789798809967089907209715787886869152312489222054291699651169365317132152569840812292803344750027064455071522899362794772847879026357409374668340503441209905124221694917055159540256769352388221500684510994315638167092918202329023106294669349451227725737994786497972401360989853737081906705226417470465778082799765776575850217496539136567924190390444094562293662543210289367536400115290705445356449285543710468147068674916617182876167787141183864033223443921867750057305914936616279519836059272222834728027677923298677541481915209209826411604907677345552753957522390969313152484019598944850315644749960605957329227205576672804592891720233695325032639812058089638073179164828905253660433086083589457933989087121615383797101049404062843069138603320581279034760967607112861400590390635542796668918583166452581375000458259989325473443844995307070718347737470232056403001871203171071704851450382709990264551905539316953234291151277789115817439477889023394912923449648675392946030212169581682893836235536682713573917935503300307439127254547799996222052977606406157467727936844665217320294650282925701298337381678878148375735835036760549489981519437249706296880806906423274337669407261581031560041749357507274641658939566785547830887175911341345525893456476380787565539110475643694182134703860818206246979875865535033116872071342949833410238690121704500566953665257333747701010614484891889846762447382818018144541272455814621898858668939768759999128456209506764593376121709771729221863972113659046104894522595470750655571754280019276713440777826564909283768605236953794180543567432908956466620827506884657749886155550217243742511423231993813655488137091196519621432113600693675327461661616145043325855884387272823415067680471574150168828994279258400541192325926156082675611958617927845472594073834446524835081809292015529897539158605638956461835489784911723389286863581026726200919856147488287679291384585512445977255916139111814266317120357463941942609483530407171026329546908632571992516714355229431943846838723513991987209639516443358508470270072623774906513196935587894186206411477199709996176117006792149151813753837829254715650755327647213562845480674593542012231657687908486960481518496111725108815999759659774126531492054853741945653540026735623298594801592601588287874845468784069954283692697492157316260741919021235256012378306016225645039508758680927207500910982638403496894180160832433788839813321534912699409543084274455571876709768749360549648853920534867816624685476120670977544137592501079586316890384390961529463553509280007411701348792354199370692538024577158875811226634720508495190973434439587931833618776838376648734926501848862517677749253269723773233679096022129673263391670661821142469143937778869454519278820418440622077028791186103253089889309808045185532380242548748841380262075720762855004162207741950386874343252141714795848663598069824071899599649783585257136114962539142009988504392361431568045230523785709251487934608182041016113132304538292588860822934748638595433151755831979064684062625725751565423099573829728839327565766244899202189943556771689169761438286008558909787005811446938619861858484263795274151810336466727566334852675375430300881076705608654169307477002314003300842774306390834498126925103278406942270481834398871529242276800002463262161320797083217489410538418438448435222237181638850085392121873778146284245989246132243011058269872869105188584641988519026867994543740650768217489588862418976026380051193265984874092309718677045552304441638820521742919640839055477564085869405466384521146049212205185833852467679457597741464748912857467626741922181339135747787902590952647277055681044259216986534818961222426902258143679419034440923278095468775649459754495948169518531942435492233762771493394558682758474485283679760343250413576419769324361134410970584844414959814690381863365203310924978546189811949144673677303533902649283759368229495353015544428218699412680528112757243657038569481691993074392343726350375427254751845934360323662650385805716897812934755380965640689393505725746792523912790395770706311023432551984591751085865448708765495757592363623411657023821858503786789092673162713189319064334785531451178681251432124820494102445465119469529302065292191961945958512606578965622787193440776907192390631852742206473194004774969563898037743043334909491114371858607849510990555289577948695934726044497358907993896261207818250877232542645335477150288269372266330819901777563725178087494580761685099048846962094909306809814487340582242205250216698976517321157195607377188939509083895021810928573890467790110087098553689920825967070814644826317811116696008443741024454117305257221470225487363245487265994635504034833629284483992021899814485090292525804367462598151327941322708574569802890821224588641516598548161917794087726102669296517839873049519988191207259798761844581859735189023854007836901675848602069810470493413809362548710770626141184810264395772459362634231173810498497037009436413802739555845792608805323390807577336416618799778475151963618874205707148227866995337380015680692697408364354863425580899482709937897432793582380033445047733996993039453393360337456819772879131623060466272898530288771185652795492463371327550523169357519548686039088295554427274041594690972920652662069082955842589145564009164767313787510323861734958469384152975517921929502415261656032525674667895224450489796023563054476482588610404390166356173862507394243283245202502189363107590865805367506667689208522469772391433380948410508740453044878237556884177429357961121952576611848642636177656486816636899013012664102210675087075112750536191168234578395399563455051994768529311610538243239023275952535305826805828785283082263362929905305498139340612664882910178544489724396880360459921167285559959997575008955631920771851838975109325420295548257392006493132627406566214894021041952908688714057663982014718872217355517842655869755316460914465161200299062409182261488672347107415846337759373595483792000394625556732389316821619246475304625040446306225563458252244697058758109669863972554890262656439328968459928391298138139121269074308571782557412451481138251295051558827681570467590132319507670543722808731317714204118718674664319279934767227317754966595244955087601763119993054868079148216016003276567399247773202312856243938797832051916677020731544707173666691875914296054449015839210935984642909151990568420779423025665473215132826146903741286009187262056690496894732440430377503378978171621055389145516962922257913658925693308881602194729872558383464307696671250170059079812642799398929998020071248691602896854369254150488755719544648161537769847509200248446288503829485799998207995526300062196913326460543057876108293634471353497602140971954627565718295111387543891984018497868558974268054509377052821562999603621102468211495340098671736137402536518399020422382525280697791250666851415825138142591005661722245892902333430189981305058674943569216510736229372208532863035188973465361499238605367349293219996246569527143887128620095721008463972762331004726527551312673528842679038097890978792457189616872435246876076229688280171051822438141019200917907630072198618165590791964458735073517072216204606947870463037254775724521515978244577283520595517162782131190322926506157998691141479482962162428825632027786724906350655484467955131769778517370046858361029182895130328218993914283593369364044145059547473122215445252893466404695342871006965157171362949316446048732084022421938037883144864571326727028695847305543058959056043174943775905833390353449772912518561071997552166309417755932783224968873263672672095047728215311493992112036512868894962874360734948694816639759837988092790156809092371014802550803505648964047307745903405820715570053643637705457616930646287338782332579052927183937031214041072003407018275606152278621984707405135338954205688506389433849854857674773457238433814411661742339709188578104834923736364369242684411238597244176388040506193758236351658928075317402605964362764880336221975024467767159549762435538254367079833743172290416486175311843870734256219096808599763941361252991077206968516286473617755664753918294149229396502386732852735422544894599584959632502135003475446855433225688209003194405213356404573004268899741288000383698914915303299466208518959487658529585848895831844334895202626611614951000550670534910860038032661037343440114228658200639810929500054056182981976673211220947678196638178535375344595188140497993698637510039246142569390294350338144329347319450631723696136148493663572122026337127926526108387367689621864520867145555757839966621131710486721876483684976460717641541274416209481057716683880530390805647749892346625250204374805612371659005888419458581125323176100031056958091372782656899906073179409403447677260982849434485942464631584400941348631027454277536010931456107196281149136031019629748800150676224149813283400154885636452164045540984187267621399341360565040613403843547784887070144107442184127701845911344893061692570255439269404952811537200779038559837932600822093934576419540611395815074737184894992361733103733672292063828565651018504091156051171670683966680127634462940448193224441618021660321835128143421973706444715266704411443683508606675688818486542708891960969702177904519378508283513178362414698399230815584914617866356449411778048034371725153387727931020527365354291401220829440077787978396916037795574238729999702494609164076273231435007672018147503239090746428963288489293104290574843487127557683658569805686358870568912581069952500449721077586507336400848892139696202308345765038744736111743868047990532858554861021017126208487805015311103693453060973749600521340767115944166787719835699867715770383803139713832938186499928034312799053565441385613704943180305187819718724808140547995636085097838201576600619575551309550736396778846209106849184197028813479338424277831657977516781385250989020812576352077651768773617561202416789729724791178773780490713991472766329643897449149824656563571772893666118253495409483424066639352401762865697341761036686931616030909134027683855201077234463217089083929742924676534136280703861768520352324586931955986658012754743410554715419265573645778252260471844856199360373607063289292883340931885517164970183770950604030782779895666410585680305337421916803549668832474856614892053442469508052023236514038227216429911513011566462823721495112272545952989187422200278417181211444871694556981947290273221428792254114177645693860539114354881423268722355204973736849127651998502155204026455451832998778589530040947534090884001717698849006059053748481905257152091440310078756765970914081760476052784543841220426524496324289278135847584899820439421363060011782720206552550528645618487364404979340515988190099978022884992650305591315857832412341531346985314486583484802352161781368108087491728304233989083371393076714843223820339971393359110614266939881912548964460252149925311213263497929240275193936177722178677688607356588743088636823144888762220577722105437748757676816810279135682010294899569248731904096667137175219044135407061740348952812026893252667298682203745519751612511265947042378315153849829634572906294277175321692379889176472844185084705855919047265307997016300651473644980441649675872124607248748995402284466488609280356113890292049995472603296879133395374364052087666015791339079426901395192162042418728540908600102955498879894638408546647767610784321321540864597956158997435535962167560868613075889525109886311927732229533569999611936606339057632922537321321903214508167847713665813966009362592477565183422648659947328075031008724669099735888943345141061833066828454497701192598261939537653279021439996613003487843063015244147689032216844861956918855031426452729596900943417419705446614469986906994186023278817868168212691344848519138137523721009240009350964104547286904615688069321145491620873201038541111300507615285030269586332484522813017328746510329690201482845389864321802416893656679351678979060205019436419457930176394675692628252041592365777959822031777058821496586453956828100702247194754041599406520960745440708711301240669211903555645131337778282015598373900582651968050793648544519848281434424477336591449004508049276737411326274936230445904124403169347106229465560827301434968563739413577395466494701900925837204015188460758533216937458907786308139808688574386374194830797754742584816912526423128378337226821570230662242947088715222504965534331632954378408395210113907910850161467931146778459429595298378238313602978385204260274327028049545300126201608419626959587843033112645287693011892734262541702214623415502253474562518054988763534054373019231353295333301180741224141706471271034059318727726732141013138531224794465901327291158118996766038821640983355405818326661460157061451533924077845419898093659590392537629809814595237155267639255026191648710987617889647740562446762829230170156224749992103064301675445084643459530153796869495529452782848264891859927448162444056649092466870007667330073354123708210135930960072045943686369977998819819096718711483950277079534407454998751397291467538266013063624175056430130075119561593654897736645210624081300206798753272700621992563425595463486000126154551224606555993475324306341530245992533304332475062936521127826079355116375337123714279340409360595478004062401910927147460666356492535737339233158121732360110702982747365423990485540869538843321100930291451418344458169979149803014966646943212015514333843905400084512267142009908968093328589522986224800770101347849568930122622413665060837097096156640523455029724330121733395855985520953497579074705540884995424773248587497667339318744521995144215110715655132690193131140512350620040187785667056103157492229014229169270703131514446864621828825516662055480614991480864527725940416107471426095059746463185411956130522559110909887970457297161524994657001254485481008416316452252147081153681330628968036982967763567690387823564595666904245755039666103267427292962701009809879583022245299639756558482227049353451661035818877366031189524636293645733766012992840392174586397134811983089117661326696011336703014649830810042747368990773952703486088350944840367321182362858863971228340187342654179443210998054624648670530455031768078046248848906859419278180907819845091667644288716457315821231881742611759874505587860621039920020365762097159361847753411256126521499529501032343953940356759665908805540603401796089207358977137203478962579881628981912677066046908380604053866139764396358449368746606129508397306174256459047797700045326050208760748735264530288598823675447898421248533429651472682278436229662831323083323543084664976886943198763444790159249080447400067786127796007015500881299715003333976842198990784860263746469078625582586341230661468101760071863044713999640634280130600778556524050268338817791907115312931471790174825079593400095432406367206223145004699081336320867903921239926554080440108443051035866794167747175478400805467677812358526821942771585897118950896116080288387456253429637274505486370497961337360621299922725229147593403767280255796163940048609125887449569860701283857609079571052852214693433371262169193506933560004259626155144557470427853094530159833842235761009256586042255845354535532699913887497758163380549692681643827943751997326554319298530032199285441532204711354170171130676654928069213054102198176825041988132067853602544653191301701196224117117846219185339081995535702869941845336497081133764869514455633056778630567386523386992080320485270156695529126823809485617297678916204771239194314596830229817047011640493893952843201410206302310344454625409537972259426387880456145936803476814680712542392130998572307727120047203943488369118706336982302191614018093020781127599866507318960097277996267348046838866813905953827789545752059740259695208646426872232774733052179016770137823115557226251053288119212790896068858828484111948451105775265847529769178037450200276553917798573027007629161780746592160489137707342274405999566829395327970881329850050031677953806803896887715697202032499624902341909364943244404422198654142874702169302050627728939778401518080594848016883335083119637931903527703975171581097890437255457058089950507584186632975530465371777210698943794550337128684616011527192786582675425174450682033241167549454278473802186391681787654702660804552303989348431605631464906198618364393478391461126187472623180967793568492787292227824992600535945488470632549446562473261856230049614657551554729228182554693553769041336156452590625327395622188627535732763605673956566363847768463072052903971054301453718803342010399177715696080234517456584280830614637245118748951478947592517140595208608770167278270368361223119941596872325350776474111220936534834543984032375737741279157312678915189257480411874127471175430150102569924521833041209834626878042047186573569980794106644749696954396363955571642534220850758299838201170861834221650290575519314760259164669903838641650911953694260933123056037856919209352004668963557443990732064869593968854844709696894617521916522227737441951916493923144911608275375231648722836662902900041990051125347960407199590665377706834008431652795673236387232016449967633656132642699887123035868689049864370498800443584576399003198993418712177650069523006000008998177805948767691248991148943422245690416959525597717096315213837266481691760936643457508061521752541542440873662897834807098222093366600013847101060644324783379854602869069595619191116607005594255494604150250348228906005732550742049916679118744495913644105904947282609774647212849385101799366031528225742779336451785437641684375553442202038761665783101465923606950216194419360773797855405362315920441973600708776561644250071054713169742298162074643495560991304367466564391668981730911957735447526618777604846730171600437006075199297336946725394712831399464950288367788407858286658425394175222058999594714105974202830891351571069656075753696778351698892302491649661460072231072337873757408663483346272940984584115873785508174117279041347822959336963716711035593324418600516834222423688348109040708516838577988912545537337228580013481895249923068886393150442985892996180350872647588944043397360346245404332735903170010325145619335337654796780643980367766784183740651849950927926782595576947449792075031046206692013186011984982893862046947283804355397149620010586363255390792609083338243533985366857060039179857671917194349975295030685858867210874900029391038078335493251308322726882168932611903593364528741516670336588860457954721638579434330322946512665269804166563967543068055829946855150684662139639719848706393223504229337195559417125840895330901817162897896741762102716626498848723446133743825937490016318459986990491294776152995896647429460586788251960184456612288105264624656370180423860088164140452931578768064859032951897249212640086663439683860409317726160380148534493044233725289135455480776415405285748206327808493012450981722905673357625113195236593780655553689722450867278771327258881313390256365778906686512770830914718143617526306821705102731652153658238186439484744814588263786669574671220729159686116050784021751353612373341413939904723047522091249293861311795179253887700255207149334158841949406850381469289845935122790264565231532550331766550373287699715950336876044991538249007409884520332205164380762967090079365988297764733467869297449492762526033008317964629368322285378195724185687233822394077534380900970508938219151926217243240464698429936500075832425837332465294670050214367879538740649449814575261290132960778960526431544932070278992469541189842987526792793112169918074064503705131361784253472080084346625954225210358221380949283679194880800402067461849178624356975230505903256989912052053050367214204113261152430298083341203226110363458707488963556507347346944615931649612179460894141092127675796278389389569823046620823030138746589519498821999333204088710140510444680923249889542924574503562018963866487023687544663694618804820287332979499165074885125510396449822922088341317582049869228484158833865036758861586549547020684008524304297070331963654786381825164593010577405725862039371575633523855884357637218548526126751209181838708108069795504123525143974048278041356389707019728512614342634956078672831702047510244241787547971206604537959971302662876826871924616918263913925975396221798792451072379893460087990982988840003625587655531405867535339568704684407107089337662000677052475848424990552683688623193163470423376618673946390369374450267964628806376077812367235135555430781801861756019892186021613029825361229378349676197647808466226816281839604541327502288218614122702264078575187816127483962725370574880588960841292979618089927222984236682824807031668278789006617307828139128140425022786583429732746722413710926088775853437039918459007525515589153300230739338586537530253471974617175393343697882003654032966364989101105853495332667949239285837999056313718706121659090958282585221385671432176168883042344333486892181085482525382364554692339705403733680769868899152226455122358596296812155150358448883053211125601203488461083551806566976106149796167819189896724760605493626054778646088714035034703231860181213748135493772419320526175063253827398360622702272766461228814146389844290519893700677260692175330350277143397112143226409958299630465837211552054205684775764383598815792812495602475697975893919605613372701940040367351266508179873379136881758812037852469266768142467988087313403764645009747580989888127305260119485775477265387157544179843708132485711847983236626680934587232988516512796781753309998164015113166885393938443922940886124093737471369549644461296197219495065835556961021719923693404968457603854967048523090280789126048116936907799099104326403841925128438134508940355226744731276221198745752537909281794908064628174421923656487692017396918211434960109340884567216106877690832179053545510470196322734906563728347422351394681423131693872743624079111437941386394344742674753755560746251736334821877338763372697437959493745064074980378049435143338282115774633980750362079397820902344303608231987171168325282295645310792800010623959267841601357176176572811336044860165883653185248876711353613242430903324343396732029495425618803727134174053319280888929707168581375343560025007231758010863897853380385844149416857119120044655981128957232797191110534017449102629579395613152211913525014009319841182641112421661959265804515396420603842638468201891084281889602027232739815420588460678290045283612300576012418425684092264266888347858471149725562603155670532901285637641661945618058921530095626992074521165861777767703309209468161792899870510331471458562359696727257608442722351323448146857346779717083675094325000593208030237352741082868493784692801835999304263442476776468059867672979209513169093743072108596291933020845090766816869079828226685936356474313759522874419070018859452741021090659713183994926428637893663999904007421470581005271822754326720405028595532657218792147375271422467420412301898199097501535540623255371377682540396571078688489563634714980579270978709655608533514274184288868529583030247463080479663409899771350213600044693031447231125605161771206890399379601222982568808818118650689634298594756448004796812397923592565996530917985191818590938756741446421874093677558107952135044696192911414868801426780856038772034679727839341489243111087607811005852080986188323770372723063905421701449203996157918382150979930934954288652617557104761454681652441024695498299680364059001553028370043318551943833086637432974676654368808784097435825033947811864449504297672363374548205299887293785221335539666019303458610092776833506216602287781022949452374799490648941336830933958228485843012419657849840497453260383863331982608532914866467411878714754483322638097762768608338805905248642187271885041363926729199640230616138115414962644082895357826564724175282574162644383619333732390678563854829964171562382196193957511526008307621336589659747801146170589015601891116465485547530179191353482563530533838430220955744779451577555930522673526945124635412076675178213858246490921587540401622274850518536335893059316878590122400291891618944800469003816779603909786000840362811095495618639787101445267401497189896053059130598533977433500610881379199802598490341876761746162778813669513878849745054418802690802081719599901376830705942849650088432262962739122333242912925883730825100766344558606321202694330683882737115393479790542043008478052534639181413962858738249597252213753895554541740696741156105419078124964215563847284401333221528230267933467629710617976069130496019627233265133699764484597989809118114361548330389204295460217806441804323911482543310086474082941970326723943436227545571949441392337348315592019886740842656669590451524232204533025510404963722455665495702195387798482941653729988033758105762553886925595540532592162978631741470784038444082877768260621208671965097196301269717663083982999121109250235498466399470235351515662970725392855055142865238676508666635131254895055123962468700268310546764837895455549939147206986442066488759019061382465069911461669423675276719044854591983772680996433616375768995341117910086448805211940562118819091030171835404994522855419554013385485839092544905555736579187676852444302692796302254113580523182093369879581892281220136052171909266936110819378542049088008471029468165951161198562213338734537839104559908362191755039428640155445761361776147801508529617072945955046095709343920173264366721327684080318460724560525666369028741969383976551391388911303706210736939326168867198733348218750270678756782632479907799725324045728820908508371698184940368265315037367420085721035442300118337045112376459614344960179771024704909496547784329897784637545667296576666183313729472960027798679991842087268700558895154198098501641361440794440393287523480919949791808392757238676685449441041055469420215303778621473744372054585597725255354549285900260911827350070323973333063249141473640766254870044637145482548510549021011131590893734381739535199867901723823316803289284044412311562714371708794409226253356086971482084999549611893746412962986148141022111644243865327108820527202800622170102865364370493097458032948579695222639209643984618971470466138395035544909231720434244455867268998271881796619299218703487027645001211486123400839373860346247855690558247127352064557652473062361519835576846567664401871948702984771904450296197991953382960471389377505767108715622772969968972985702430757038952739586410411238525192981413695519208524843347569409249169034648882680084921450804772324181876137075351062006071846107150271199623089006210339532396592848712238084726506481377462292783975820870185453426895321771727397643422028728427621362152708058064747778789945788044231266772383168871067454839555092961855870930038388030513979530675701927123368820421705948883186099001349119602618866300632953608594645042077730721042825886240486572892097794958457648383979449529323931601863558674021115339415733773863264273074414841357500369007810575986704686947605029433685932893122981204589173562336848444925979932720375347015692543669165261194103122606630659987721447827985460115136398007779314406764231090254312493234258731028745418553997235993396104408309011468601755239484154084218902454515299926197636017551152660074371208885927129312620792893087798045445031812269379793360849824941259866037130641094543674181829957671894895045244631620729622242949791501894192305227521600003467751286231074150298840985242628972738914430009439300799724232180750758800222529663398787797104322216583169016689222558871792198533159059849843422925187700831242275254574071481415427303338547506981225833961508131176375178682762727412625740138181728605479367687790869140275886154060497072352176409907820528799986254451553693317681235102883567922251104199153190666792432859261470391041727779563781669679394798492612838875912436396656123368931213858681033484050697262636450670371448380454709387203256735261865240285958306162844352911578221373967316571108574345866029854501815879301710672728002895412872823610956577015897496976766757017205614846958172374595345727090770136960482579524581890707037376418953461428071951178339383902464265328516663302306616613890278973564894062865174283777347475062878056358195878028018082230685559820521203484159673882468501697062052172528604868111722340144513911764411516671497435164690126551012884419811390188620717571173697843712810731924968698539809803633058853608295113293202481570390042691564323286440913009394812504307790051247676557469840027241403239585680598496510890070988673432769906327636526210267823291973978895537464673871489204311945192335933957511005656854767884384305028826972665417661165727661625710759484490539537861741982124393501929599460925455668304785240174400857105992246473196947223055553159748430215128556839057096146961943940227186024435972876305257297446972335644863788327189310191372114553796463954344665767364580047335030610251536018201928773712529089492079490702681983237324699437456094673936777526684848605813486464257253108389999498187271276015469954967387922915739063847365618371271106232315862797829798683811540139664594700322699792342778148856126704192883692985949432533345192103102573031048927245169095916881399793819315083386012059582282560743256540120197806118068979691068635784323215964432303185779640670147903441317458220185404018167928317348814368461245139017354205610541593439034165936925179811782037162522302962137643712620753034531150314995639341786343273662539140068485340708887211586502187689308008772838406474600685126867423064637217447544652616043691227245428345901218451889166192224648668103171931747451539301100478811331909564270441591368298450087905643417969565798829268427190897772051701972260085163665610204414577073128744500163925027459374127922386088625346418454287001311068885126767180550013193137877647295205767265428804580489628111100064336160804572190267398818276092405048674295033286600582351928668860779202959718746166356682731096052208348904898030773067080728657329258388256648592409202878520776956823843079136729380752383901490799821393076549578669362083020193851988683601374385129592855770978550651200039989419648334556305631656227840742804793140574308260115973845609634261859042383705662658395665564464636904194783648958278077764491667478613381515513614528465001092176249715818339070060244695628885968832863457844905772701286065770809173327929756152555712262777528607166305213628808154586340176120596687712715977842848430633263417768947962146032696340076562441617396723010086183308169789454151947379242469609558419060286258022839873380487027483179109520290318348644931992789607607657946222310421333507327955739087398055285313747459544504803363079615501912534604704376561562345346421690006790571782076199611355597000486522943311553509775204369531245192092350541493188446846076609105936344760918568417678688250237635579046763306908845752959928937589254499167256430393210875036606786510646583399729907129453939199640931134953941263119333880760248390758932264575203047216009542760160533645574100554973446359341611416612647444524700184202138580230805593260544840542152181218221241257297752533491425063980682264574897332864799970200748174492513106293221089910656748590356009249093515744212995608156115559016948725236976964254781554044497465129643465673736034425120981742430453105791008215584631593863348318932205169692539107037797112468382477693089827910498838158241476499602523971187241269053722576481494526475198475894625958759044563270574075492564235972022525668843551203487751368535310298354802348511132968861244889142501101696340139110013294532442054708037119402832318619910300171490065358923489985005435994478300154261075360609718151769855720164595532707008843085416977282227566903407323271844340562885774449450499097156440350635484757184426997780675021769262703642951185566833089462504369505332453728478942554896623988704015759844319152695946684130623491213046300957666552842138958911922205381195147393352329471963072600373877007364723088538775997896923350570316922088468435085572158086095390883525595237097557739460429271258036411647071092458820202164248713282190911880444316795612298714371646883185434432846222356987895756140940536157860119086622084405994159374843423772069543863804934874729029503640661810291840126358905953403573177896440362981944573227753525269186077187440918440974646525659774524084204113845322129869569136762158922350903328341561868285285057945017820705942594310037877149675270021925608225277533311121344632141835872835801725163472056555785253641464362706797220337300526240928400632888221870487873535373514047786914281902802161142773394223603982599909720209548905741115359263046535318849165768860945460038022307408239730862322417545314040927133580221779984859489760809407867485397009299177541669788219582113623266656235914826061215636240375353545375766854881718830735659578986255951139380160041294973836887367223356504682305043537807136139271343539007313365885315153938657868479839399874663368275059481815019762689497897139826289606349856833435191529573159205394015782417235845598484480719277893364454614663446145612118819835478419305893504860579114708371097353484873087392291842447635159984993082937494686071859850860486908681141766713514697442154236840446326222870414429896468832765656834089257052271871763042291479312446862895311584796698583450184554311577971097787592152386398152888889730612612739727649965748839237953207250414558599996294650271123290762509014846616683090449350877513040861362016328728837385937512254853997886226738712820309955425298277620932491125204340814984596537785538526428785710622388962496453760115973623366013538811998477956620091319781062210597086223845153484292987452030206944996061371297900928096074549044769833020853825112354837511852753635691212412192592569953093776368924690150450264836512883483883450585349743688176130301962957784852104759265895191181030837995408259037740458973729029818979394714096638540910743493740078008502186374556757207313676497743477676944032880311773622841199626298029703779808218564145127421850765997466023140764157574961229888558623180571901643493063659783393763902313778167404040597947490643167202380270935210064490224035130897775429618036065772910894720494874147884591700256667489147078923620108265954537959643237619182785545909908575421477803394188029823234604994442834413788062535952042390278439686860946509824441427000590849233001871708256199859251144858991748488620384059961145895915400582201083355913314028781779804457138628935556418879697060304208945664638262431845599410398001589278278892110317257008178160504119936460462036546975877291675623808873965873237742866998849816241809165556422489445569960590970165776174606553060628175174848420338988034738067578286016244584699844667625766923425361008302021178413695077104985315550554181034427938281482875314335501981036248907026649896093223803305445023308333201309528855199297017156363961053943797653538381212487905536676235726928039507394663933193054048194439851665412593112862777227882225485506262639712430865350128103242201135663489563389010117409626120440219914106305121994461728123056929950129765391613571945450150907143540556715985723744494319532246574349351580196317937175419775839845285381034297456920382535347602220118662460837788772441251276009301231942765608424120361250599491463301830277105740108255013055936624564425478951592630089198638595743047855390391195017781810691163232553457843685946214692475224004633927895183495114752873390810233101028139274090296364384889657504894600852116732365676416968956588275311823313015928561370553658198353516769949989600818965792472126167618876491705539100871955225963801859304763669288892094089470447659765476317502942602355506772619631995966711343951999602213463803441349036254788054469451676376471406567354305328277061048442898499827389247923629990163767515693240616039858262246081687850915131316035091874370773754025169641002495419475050130199349056298475378738975918178947952605871495959855249909456118992206055948322691477716295905316995609471885539778187257081641486369366113639777725474323905636945247200700383316053862984974821104266465717068751869505396421584338746719342733161368266532473928863640906119910106804306730183515350457817262481496167369117536360497747621862677845264585577201329089663834615460346409913714624929617557094253741130350413808319798582653193107566632551259064855878809108164031381934216019841273916175252054304990968833679085762010050822359786762994426048308680903848552272217890162403007758480831707975289176214056944623138981022253499903558031913944213560384010405703848742524353146262778312568355320730894884587332013433626979669169340989665200644025643186372299497249508483250751259565762809192612395184531123493256438021316101312658445395609527545005160501485702666233171511858943626717676896429297006523446428589483750557573879213026181379569366934248534484857604381165801422684907503422189631193357148070739768562123455334091606551683093741552410557491309676380468625831639642946421157363370361765538941112136291001581018525973287546779268613526219279863735435746054365844533323834597849611738672010087040843051324303398336815923974705627158664222511402185454116314162529983616690532524841776255542193209712190125432573610911596676993960367718284020694236788797777668948180355625734844592550142445992888868162327528174023046253519843429711678219000253229999737791257611119137178024800739230533944581622410188995471696693342540938253034766631899542939365722129521338619572153722964487878413290948852647729846952074854132300668707712389160248399556380794388835860551255756688954435914591558026266121047473151588537860607238966120832896144966168357526540356232157506222317308717464204228827990180186213750882435798050119506810362346962001826121243052561536534368846521997998040406771174120510713933255060707276924887737194144010910920821382680218526909690943829185025097158168986739740782411937983694901781466093077436789247561424797773018046847997202734017799789405260114772820984466705023033828807138107201335664147929025291319859933813748776892005877686395446344987953210513475700456929140117401296153231439895604464325103469986415925798126372937635140047260903652810473234409895605535280310507872441211165218873047402411711075067369261143840152256071869607065894944466509987893882330294371908746631322196178750983564300254944303488503470969359088400680699148994503101019379256975329081917240172683255262146753896974037145037998244212844945145627671915019616659900133838107965774334405933207936724675444984775889038489063742700528135379758905089008766281447775055747217109828960667096595880838136345451176049918001259272868750202171710832839201080517879229518229806146339388231915828742066907967244422994755547833915395835459761862298793088449268444190578318327602759156586292637901016868261039033873173365024650944698673160048314765526939456148271568673922271162688089332599165897898527486912570632484007781271963551901802400052023190812459104270728338642769928048746153737727586758688853351713080199836812765088738597677300335559480566251008582822212666565533640067736495177534479881059922097301445576492230775515508849230774265495658038224067856518410964170119849649930286637386388668021678005785437013552622494130581204073788907286776102329468001189701809161317460089022575821153642164926070337482810349729820382986304256851561513809195880212776831738769635641625362666693908017484444211089007456074664220061984450467852099188865093499758201187546253855370380326335431909691756465996933075919112482102649055293292848672039645164689789794139794266725230195221981107794762026224235686240864085787714756306457478327648733941121075122753279051570212891632743519507959761896072358511825740347886487170830322661935424296353769124981533713359796472287398603253125490481392567147664061856841024048682991787212111577951756663476669031401481225836405155229475572001894462831674436328328090773002057259752345200508618907263641790959420516753095659840639896126373852307823419094964926901327076205073461986407859774905128177787527930875282796455357118433133972270127857078818709293463058985613352499792149863893748472523599944255605025793559109536155682635974913375089439424906802375839300073028956850178015636848090551033339672274194884299306217839475645991760588792318608214814116867029192328395400867482473241934431561973920462278253877294401675398731056134369518975416431262414691554938730663290853916428643236070796417249837390380982790593473355294028195197410886600107475627300856998099824254859859474311364053573551900674904334071715273644733168794253195826122890115811885476458139284783801617408279063156536958526484115961903454774955316689917613452775628487735361590314077101033346578390848663582680074264773042779902671632515121098649839180483815255821804513694851938222922773139927267413793674209850565340517207773267591962695443011296814044311233916220483361086158353923308691942866142967707859807372690850933665115410698590330298671336900256935688434877689778018142719190214462701589278617374230681974679844782970457680189036313145557423395971339673657784129458697419252638187299330829760367554275310005438743002815513931682433179921251092859963379634252182390950888497694843089770295604662827448233850952587625484611071781796677594036409767959640010455140971654660486629099675685568875934867308827044634828213585054454584393521665594804742640333700097925056571066796816874931190436255145244711325191283590829838229682519291217253222675996682708643673810484101562827846260675943700540289877178983537992297904834405628922165098760784268350588795014506656636371501654732840775593538622646960099664327054462843418937792437470705815437942632482597274634634290272644330539339984827429052840015897876429864232699590098832071620567866164410572527254580488864899676902596631376871872248628913158221437922446316646911481063297670841810867422400763093922551220605262894419100152386191534884032914506815050636498099687565375453358732144235533189111241902203708238736532857509124622634921971171277544969215485708522430555475621701053231420578404040555052011077691332919186828578068019185454338405815945934062268201126588761041960026166312767889301762137118911797774384621897247175942907198527838584348782577787718807538904721687808083470085150949646372590708077616025432470288327546266119246148572398180034448927446627356147689164528384359412135098235659639127416354058150582803944845457514396256781363748994828437814880510111155754957990343818729265710110260829361478783787332657178097359042319464924312274743544137070921041822093376388214304938522183636347650675676051363354210671597302384679353938507070253252545103145537038583153719908011854733215665728281457531556398362849083829160486548786839101417557579789263094653762636050205248506180575816342052782309535865061249248429766073627903233368544663172946040044467908649680663066562640091636999593304462930088326478637811941855718653135741172772022507551427999608895316189055171303623100244318519090936277735545669445258596330090280836976337517292922367541836552606074432965116779469589832637294313638108700693746787601318573712349407746192710449966869163185990284570835640092541875795693906091717996862898932852081036921475470026647656791340068222888899189849328416668664199669548112616652738775514014727207445380047638650154644698017901184949849460596956259893745090782437418656351385929231718347010537020376117494274468307535380478046329249199022318144036188259010580997825270332838187702169765555427812914159657735013539425959794800800505932639128733241108157441716535922107697844908328295125921149724994993185887678049656560104751744879831572520048543860005993838901643186168516875660925098730910173803444775402760435570956803663995164896598429983997281214299703366201965987880510634776291866967251027179117244461404171992577043324094478566265042437436233403235554577462565710671481075174930631560213410731893090083665791091832544715872283112683602510417359754885365005659574035573814263767079134675168506288237061885213127941907385230389813882779544430345802332282419895637200432536869561042600670805933136659934371817762754375562961349708434416665094201647689489926853338373683582077449916534620484693279931746432832156569988909558367493812080913890930498673422744839450784011660869492312933076517788833869413988207745141772278769337125326390494551184302297798480430218553835074493549601508609067414866475497071599682980744979782392165543167898636389643555581360679316426771516917175035219851967066294339074979316936618570704448498217622475971124412225318739476057414466810981779831125208913070346309760047602293121144386317310834481560441912933888460906295115155968140328825316869963263230910630305484880502384378273909921014822175228315304598861859740964061159591489521387653067462354692896695811340959928372915590141673702128853851873220363973548347665744026911408566876495641085509558576810198862169749648635066871479521694819889702042967094964797069958537868392459910357569426057108906324465494518264318699540767332060968570233467831311438089259777171807800388046146732578666176673049277987853521013274264473445999977866713316285546952593541554517851871720995542543776337112401561118771423425389316492291120219472531815206137864910289849966143234849725009166557050547022481788580020901537698236328773703041041896783796743875140438070242684634467071127230221962321016396137658076654653807685774637634520390708041875258381489182717135496716568433641030962487383176470961071496617548127620091697159954674807366761567522204312064980346698203706981949821953890369904525388171700201399718987599481156900493999097511941621456591776597010562215755121773131176372803387578380021294449542745255778654892626122042618279807069390158948391951497071018946184294566360872381776130061212811969596682157430715813390495518788453311824057273091932878568236113423623733553653240452715290627242805074058378320986152070007541381627264789108622552502661596097573573356259976429776512865464922864747481938334783679034870014901008469153435831928658001430347018856681478626016343702766549121621630862823360011567361771565458632671679695402491067178311057932337756407358528683667221877016047991351872377257914101023346557104483295588721917801500074772198228058911667247609164813729387940557787838625694540663507044418195838750535553004803320812481666605021629986849477347951776945232896695386091848100054134533765898358230666381245047413792980862646906574416592094254953954629101620033212027788787203519632340644468928127123678034234246379751677591680010933995420385117697235732005275691065790320676604432225965288977092865039936002063541748012009513983728527728582877143018266681576699195860108789516760592746706976186034595989199715141994794355229706104597059650457970951131167318551590457565816071790490762804791220114268705707176663999460932316129971585379743573722403137656144465607819770208923744552820667024600380520313062579779437498841553899632462749658158698065118309075431191966538859743227272328677780682068234060508941894877446403599850075560947365126473838740953744620124142561900667613002246121701764458066700702252940104961717327879258387460529293108041566425554777936507514965737819781098676445253494128724966486283977442835318583103608342293698013461451880709504757683775204749773446177243379288849771393537676014085837868612892166680433106827157107133683216663842466747160392713870232802357909322831399106168958637423125582542842268489914308832306397502044335174572412144985099657219387835585746160422121381179043183312807595991946680484690456324032588135890903298972692685555047094346292278239174655467030305138592232192396000584300753259030461090643160156415422325520907578334503086602597870249670875765977157571226058180276820023478125115870055564071415600992906268343336646860160146242351784670727127731015797063714853723272738307601567064589808043911892363429595078070486774136561072201581834478998359452063088643476046239522894003263330847178179738252223956084418798298187511169951356878744083546455663014464133914430843565824217109587750858392875139830005669201710941410771111203460214140187930906434038189651531340338236061466931164748237808617645073972537834226940248786210602734238083281600891497922693554915912680232574492023272243974866126635481603272204771862342549797080146711337991025388753017812175300021094299878663206658216910891278136706007711174597385742755547684468518149237154048137523930765682126455748628573707428943126370844540474427652531117114934743986230609337131772507345325576261972362307904058351952536024737232428424841144195589395905132291003417157448103573987359501438242354956922159920156783195465411798055704983173734516308087920349993424455386201839782009332222548058923676388203502852457018731834352870748617243363137821066185688915236533406328665212753160310628681167228020740097035389937100696309515942450351304410102684579118869842490368035446734027061568665691894224086715919066737908238089155612590834881648809713513751740623619277859395309713704611452808295655905161065491708275394343919927148375228735708022462177791353764184681783068380530780417803900870050325672935521679695444243521398741663934333216586203005281847199303414861590961720664620825469247048403298862548890809860066406815378658191068266723772685304267196680923983572949975244588111039918366090103513861587977846001166209493362353489595043580163501441045914033999198767180656890089418373210537842202903978049023182653881044378949504369059128146763064965150546871962694599723880420337685914358358739973978461502801031167172913912681894231320673925164107582517490963888606711392996236506838235012968557645439467673709280712127789104950847843328853769842540583511308928534901735240012803954400792399616996244910507487575450155525177232572839662940320206981115087795979103816238897707736678419367250531439438667500650074028197620687821286818624953419518167506666389027370928236486772901704917235842398985414088526744922270484887478550644220747355401345372000568505454696352434208248487255554410445352013838074083246276166048663477659057987279977416199188167948477294270415806420105757696778393698101278070681754275288895490866156360533708973519020974304378804620506956853851010668621721260739523231375594617846896859320616944003151189447863947450393699914754888855715074361175258699287790404799938716433419504744985515370766040678130915817723488157301909771573679334999881994410957668937036432496524098327728633417081333277891856889072886921534965281738313873772175875589015449094420603448870089281056847227081601127199045520074673830388455110674386729895166672876325376446912910739361868481394050953405800007090200366454808802327578035398303659558996850262915543470862124104750136174624039980573607796253501172097212647099853723693589822574530316401122925685071685537189062997372166203512687080360060121357474115021427102217399724891025024870953961416377899619170456369648081299429690672725845024337627382170213083978239086557615412221045991386778008116521654042167798550759545622947918430599331315250047723952324745083638439108784307759295159357817574929258762560349048512087128631111794024949537434250886428607419712194528471072113333259267978373661599039153700249330194804674042160293813409340395907447806431144895286672572548255592975175304462152320857183413101916272528532092945665057638063016364006429459038188930198622086085179958330491703582275949412121488027234716956931138682438864391398308766136616022587010651277735920101251075463241248589507363100526881471185319866989097917944291331753709104879728401150031077837045107837993481238027940566484162634525416634697854659774070997194342974722890518267147506913505403270919812725645239566240017818557432455781100063471785001593497056241448750305366760246024964710318783763246350438177960524262510383750903573561785926529147712654355199529784106404220578384165710022572525096183880050871482528614186362275322019370175132682521635254121753225028322435803836275558345650935921310748014630603573095553550365889816645245326630978690982521801183374815044954930780100246787751288483205891054282615903648480298001754195055852525350136698547224843059889016576769124224066374108842318259208814928724478778067380115623916714970956837239240858847342307403908278251275382232060181078443007956819172493732746293793321947477889631500325760099291811600266216072446715417006429018737497349917057625884661898927376172764803833734885766249639866883473378872044209515876210315046267531243021588633980073865656359527864190693727973884539578094209762773865152232652039383117568791453547008813043767659214933595643656628651251012247232562837085534080019746841499871711505968422168933925864007631413619711724192351296944498763110078130314498557521591268172336772100569504487186786886052241752057691374691156500880990169563442567185348018838590775262177376377346935711640123364440182861407324122554219504771461614278493623946652892631147555917540550952796850297013327252931443037823287672930285626387607596535179500335941557704706072033971411874343278197162383193549231299110525452594462149628294021974862230083709122747139063204683065091686096177684551225323521095320216061330599497091622618136837331507137610742110660931351046454471431787332218379322080464638914356513420079171656027532220339711222627354841235468080014895341217719176288907247901687271595650025094643063422554511535478396849582787784397592201034608108395478784863754879135398124550099489075657579991236380882926630107717796739039464632665963460291661696389378594531998504106680872044927172087189427969860117482407162513849476467305278119692649818228520342447231675623467647381476733495961622840973349955296707065073823505195227944207725182874083508610305537560769246879289356374143979623147133314063088345371897021045999888340952885301753743568475505864266937357859124087334797239531439343977067365595724416789542975171774071412271628990820407793384812690175290660371055191275856483496220915116142625974625094881276030140654658246909581689050837478233053170162431275969357943133987567648944038867837431783321917114159099297680872716993070542748243959427470294659876654465039563434434780879396530689284291451517248940725189294471985506711995661280775815834032203975328421815348310547055496320657525676577146820089319942477712883656942389445602176312688735457979198864920961188728146212617445583150360196608639300445490268066352961534490880672244915035412517887305075109401432703964382243985256048003802527424323319406850533144329359936455243896430636954305052031709721889778787000283366666374271580520527496568435369788792990305733119325690545437322522761696603394737020324199683797333698044180561033070053325930376796093330492512325144061922131276461785058909571990584787466567867002958688199784852515761455024116705968128460117665802639344767135934546897314611719187662115614222329908670195564245270951392529062109969751640151124899631793270001377059051906197687528490845837748534432410018656873307982443143133607026340302933999231896738467993154790348150637557759860211586944966087221428212141203795342478358808000639273595685327349476788364282394634681327561327508922753992285473155387525919083467832178053068534209999388120144710557598479176602187609900427446885663202971126059519241967201071021232425891930113504822099932921263911698959823002916244193220459818981173893708029673762826249341844616213183753411552681631179412834931339806216382547114077803213584578644789425427288949781772201711348486720033702435727960102089817879539632094576953036600808897561148386841913844723273773278920202075607330664432254876860873350016094836472254368351845634446246183136758440691986762043381529717511910696247168833787015683046331623654144508315284550062040034212253012546360879525870794975429983523344042576881248025339260463296102048836915969014287569974144866401610392933471990989322924551379388969282967841727656886346716759184467670646640789354979670871651727612759369247762277299013821964894062611689124234226546206743256118795782780018531096409472934864670232320952766388826424771288746678946257775885850902569041633949701361368390781247395923129877610016996985354596522121704002607563801319579034559742699752267981564924616038255523982613119603811108689982222624036391507231228705696219416943286293139365242459694185520792481034646172998205392098580665664413074223826192294562362127564067016891340100326860778834588897900931558372867169353513716851901379721219853096713342082825501395042118663031353497807520314563102980972372388909062047438539206834324759685663252320487157555519992328604207267365560879010753532704931803725743249646005509938265114520933298406680773965715780485634891322618209774736148419880111498138442523364929517065369292555954518190359190211977900511361674385012512712216259771485493167699640429078179797548661757254811121633703380793536870838439684045178496139271589656703705350633590373996579319221920287924560714351727623672934096390599871018335231244566948243842261451581694565747530891885017750151327415213810902243191851224104457215617077648383773424509834266405697004930228720610228711294020223388532333746414170107948182894725253622388838557574710311927806849878464475390306589088795105350744793175241844330600424723525266414162809805283074848892221726421022152355068076357226941071819471984779436399712760015245829122367521834102523862792606317650275568153642059371653339370907522484026064169165954140378225800155290013293187564178403213413013863777298122808277073572728697482805728622121115817981633622061380939922603963757083299640039333732978882248316856743236314868800463018108567568687992358050853762221356606392112655066955089046179008507411208169981337052095613761872814612452235279891187114719137327925411311599762757015035331843158273760344504287911855277626484538815589339280949022586563659627169922616713356864071293409270001513940780016168067048861345496742471688350290846940018414801675559732108222554550322729465496602772041229086311619177858529221297629181840571678605813912906832607090034819168621059698651192067362357107943469710556492581473813582938184232270176276593825977708250104630556038365842216394709495544405056800817250650239418398998290727947084734697491597845990308145670132186020235902088006356571556932277145004144949557251504289894997519611055176484338205662022915819654845802993861098216617539559762179673775845555383709053788049924880769799464603623852336449514887657700430090400883749202160202637682479486280219956085565366391159944555247565254707094392030127882117114690898888778103310882715479498789079232808805576181066741130752259116176230513080880554637955783400349690236491796335597951046649377144696750045328353727774555961801084833875854613962515255911057558790985742222186476194429061285113348638687996086116299931513619977979363674070388967054907015296391872331553928133070129711270229033125538906769831992518279807590321027987633272119207506157396071158072811665520187111805686074571484841006406115896979971682743337240522067248704107394984975359923080583295158635818343876942940037700482200680439477232410584520267788982960979806470802402904129564606493696122432617833461043510214821987600738283974739076086375778981876793622676638655653202555301680251981106503128776717834643159589044708871986252048465492962184349094064043263805734774461395426991087906782320677221584877488245847300930898636830395655301294669749673515874012532787883337354467825673075151711252850077990692202902802852869415742117211526926853856992850744427732396008290199658462748306551806015761617249982625515866348636067634693709152474301395699302291834446567417893994153505405334777705001252238740397255940836106011767252657156148863930113655833188280393092268282683965535177271036677847767417401838196753146113861453052439831831719987353620902251597137519084668113057963871909097014925746823110287780115455299525959280352820006270918861216324006697274876662708076225106329357607348665985577909072248438421181383116746301413405603792732521168295427799378709870252900739110604575007721520868256486409170248081092859955455582239296177916240757831553889137453302720463736795070727816685785718029518140595098997903655682483160101322575217221787042877684818536613748688771513436910593806864147952205818142660126831958474398489433487099066509447458301789457241863835894132608420661796022667364730165848601456859305623600492238314968053021222387999416643643511056448151869643608469823877787540255551021424911737053472132946013468552866958389680592509057356976294060353402435506886976229359517515602252065219833856395199325846586308284984197108096198894691090230106002853433639269581460709139957881406645680007869355761474080643249994498792354646865738143692122981074447291905445431269939926093376388510834812281944650665797776382725486869120852802856173879399848056231395578236753302713858664388260813973351095556460458280783990823227699039140741744782830204249055328319374192263141684487588203323248368674170340139637059988400494682669509125124875649269618057387365239770632816080447505686084116292109086433559597179795553589782067666051887493512821846564517537255900621295039417327557316111482058091948477662930473789752215359406675157586115196048021821881014806273488087642340614312880951549037069563208636756128959552994258359694474645956724869434252237323052180293320110859828658744932993162666789899489491514201026957867368404798121185201052090006527851007480718072335883807831550482205978569428898833826244442742290988422740292854826260655630715927182188819790731819771179127323459333769500497316624153677902132501406356057502579433793770917585380184486491667753830475657101550501215794826248755646092833156606540297523267541270875227897276693797763324113436518904607342109248362462714700565737673851444513196649156833768768881348689379555291512270692216099453243704757444505156012269310214331772250318234772705209306920096376085716701770796227815997747157030220382505481512967292962287223728216557257560041837065615850823543178188314176278648362240673859261292093966312906159735124967754103285360241377537633515019605091549375896907472559412158130725839125188127862987717950608717003175854420834659971595781328955748223582337807512342844479216209500140159366553666000569581806929471216391576601355898861489601179420742135072719789616974155963713278325490595677823783384913183526578587038525687766182591104515420435742142445341584134786110990855664114200877159927779331684020434508624495074093395206995613452493478011703643059476333641539757677774258346101254484414842511162233042749089563924217990390542167198712035190997096619604309892787016513371845100337227218729206008850693873236272106946190591127478224793126192491698606487153134850298635631218231175095869567937033655319402084202360508408450192625660207936416942107760879139048340126179571871120016652699273168644514421419555754211039326321538700895104295184205770210362083161008475900926802993629976077800167367972727375749246022543819700429988757561790223056109177760127030173647249718796836173828995799820787562260839530773070459974736703209318788154112979989116441011102063118804808119084649918548802358055900887844741787861143954972676195223850473178160860176222308956610614766005178988789692824624948247514390802836215638860395927965858555874681958994126941367828339896398203992640054084813346432589245548017497794623542665979327039961602506660868103198297786902672270037705626592650911107518994766652261885356611603779096431009642500341023201576776784831555655955798673475782691377720657214211312944923186636428264652524740000042388286105669882839683409911367643263066763863634584067830179587504456667948327517873455422724790853885067137254602430642075959897312660536406745465584504878954076872176063167457171067442659603760747495419991470630367505217954585299003112997496355613150697283322579225231456496147535559732985101341878494756737464910627126758347875453756728621062058850927685100611846071594023158518271837384097728714454967417937253533437581530899518852298219752203877882257375172153779195591624633383399465324218723405313585640793429262566426169793973180740406756543007036320245348917500520609263253133517801482832412794814671967294778131878800137402097606222259354014546245930690607941824515811701343017322424577712475073060563290263648943350231992649993773293615212834619906043697434904273859098289652325411641992900444417300059615938748897159039272339961053401964605997798762350309656972140628737907546519466512596858562693295183993799701559443486017790096123503576748426571980736073311576823049288362660723408396981337462337736108843645307150552127472699136879598895197380650076189730379960525355318484265201414139271002820526819158850810514378676404184914229661744864501727643110314092924851428186640990341352433697496299075357730387557249564975037928993559281992855114961305568002779537697157115652444699115419628227793856182913638592472403252141873749234707949055141298396853559237537776941372521467734454575393160999415040468808965361310032863581596923226939641592399114509552774369140895090103438629409361998326216921757163846556602730464127042029128489438637316287663956219656445957322904803076969375757297595930791149056286083410417814806686743919939511063920441944573283052604831397474523337751437637262752120596074816481949629146507085656177230434209648304435377225883524851480621584153337844804375711001926011894512746999310640931126256568801416368559246162500664539024487656283897404210231099313703739793006914137069374241498511509727162507684604027865094681225110726289881031924346569172849518816631638537611333883419724670695078840618192484280759491924273570598792815118413729328343232057754087460865930294114970716038433860287750553250838344879981790345360399338415793526384447521668440710295814826253026972308976630488261533907460611150820951883553912355982428645033373504788958279789236994454927885579885554003486378308010045352372862109690886123796093067127176011788227740237132577591387420800439673041122935534685923458976022615287396223491062440933725179481600508054044426476505119880615292840187239168981696383001176313814393631391613363664854227172819366740092584484280679343787793594535867586333008568341828327888546227450195206626932751489020020883181252759139225107737124923692204711020343108938803697515448559305140775186899678829358634484937510278874340715088759170149691449876217540891731757913804458271569961900123772889619088458483902144906983118224360594899287360882593043536853376579141589803270996890807812411365737740229687130600750485917029794827390548191333759583074713653728380946016101834151797398113365145119506315196409425347343560787127367703999865768837584287076031095530244914744917071829512969273116112481092502871919214938537673905209003046208837826655020464128713685035311762153081932431091306461176521864656061284654517471156838015921039891261289772438248301947858231991462440253266949939950566617860175738899126969156116560432630174443689399737284470723784360620288705129954478957780282366172684418372053208135658046823108268047368869975554700952518517167138625614025566207766409116429232511573698623771137265033592469905904885040063788288786171260542590109363898925152515457708082831963522269527170219959153757170595254207124720105018673570901091700839212481319231399895037799660864189935798265472726922529763579631437521534259472634837178089729704894007896703887481240103495955137933605223919664751885408155708505983027565378992231092826747055487186901664411577901449448740764171086820198571085029586333938315818206145460193304345374651002692019016614287349555703520867909429921210756792275762036512281592002810931851788888077766454538784947975896044865724654785077021510776986753416648999825394673126855121941334120291695940085366307746230972931342269574823382771410588234454267974918459540743694070157188501372925586460619895993703608183559644958353585183305445260133344566018290710301259924103640856994894747841454703304587505634491975776159664286133199115762486155497189442974490030248931706655979610394311348651877761002807918313401387416779481448283792329883344197736773805885128422371884121740939764507009384918454757644799590543166739826677428374093793582767709227449730250537624668454614988885546425856741770643469505347115219703033955383629632961478580963430469277682670218845179473784624912911048939962267903003764515599530082077875264740766051605763569697182324589240667688867307246577256593774855225791381376981012505626382961059851866334025454385851507614133407452545557899520364795831269501193981611602185323333142687709759457372006424660237056512358196508606503335169355103510068850739294426477399760744532805647067811892289003493221950267217280761635570841058986015503836899234345676964234395861756526290860886077250881773586179035110721411675384074213088882347725440118479995504399058279558752888441137760613134625546770507475411085708186172580922300564300087966815471540610494579972888833012186813906082682888755026798084576004809903909350791125377954054670423786493802688628958954719274121684255135564008877433317082210829431696724903119769555914250495570787650883186835364987824348298504167157109361371260821724097870351475703187102383318818668090666181130757619565773205942451461421901260933937627635314123726846487082745948584150524809601946427615911267538858307901498860350626208397314825174038962956463104292987606260992418317914368662238784054494767843077269105958890103084573510439625965332247762366525955848754705472938453247540334971670421638048062431165532504687472582756889861861535235608391766062821730328238642020374750286022777709266631797095001816047483609866302723146906270642691511649986454644263790943586211285714460478936290231636716095207853532828947723314734851422316417850189141648876358012671043147998796854158866257460299903611409434649094142162284912658167515567945086008299017555175308156075649674352339418078307063984770908598230135314407882421647458217998400269768858936329446106129367790229686370201465399823199265858950246893648355643550112562497683209077800250412219094244827217778134543530957592115092148587568980488826509160400315111976568083430741871612450411719816624109022889771445578307819059959913921511279700650948504036832677646701568065520203647475197350705378522828328135891356673302585795783436238449201863553907534082451104894580676935215613848944432933221562344325568871565524127050661814744814225230471703152286565280234926024318536159040104381291853189419807776547854534643347268173953202257842355989334906320812824466851997946396590734500516269280622975437358714964334713904112947000969275985534186127506295822133660058143556248844683335740094128583189273287559569585828222043461289195055879436693092848572717565679913041556049158443421406899432555797798897053128369553797198936962226602107639949588354451353168371741085667225535143318165220020164281768628858623096491987001019516638172777154683429927706289986688417487434048394850207527020200767950365587969139864785436687188892515367569721724732843375534869652338414264441666310072176919115407892714776535239305004111749666587464485375136499477326331444801123700546173551943818191522176240832118812966522223523736855526398720077244762845748954486187419067368249098835139377774042009020747419159091237086505576315092735762154056084006185457965057496983165458129992792466635511545133506162793531976080742429804930619090610699502945300004736476263177344918374104949818002224577201272158183567748968182252395321689982060066170764241896283006605235022225271914405502633116377444978838304722437433926561949385152908016126036743025329679380743050569468196464320753097840328588684769672985275351285407150361154271606460653774950519576337328216270560932392897033292768460172091556191950464353893322157317075573102476617902799799199527050061132981811341644021858097762227184968640440497339661493211916544739184892122320496315492317804689773550403684626393391610953345378580551138405397730280465461248069248677873124978485538457392421203342159189015957736061451665740577494795599766362024128546948384081403360998732934757689721875263296984936640563549511239097711907470752068041430553500992972079460276183879121399169300986886104425814817235190496782434509095323796626834671774309275665496617352129435227446671689318917017817697093828300513949126869983619520179112513513685957179474883712185097154016096158288845645762319457346939456482665017915068913771292898268486914298274147063217158331235152023117846397451414084400434118285823329232216692894334440659324936061298401657593958308078219493063230041122530981052228105947985136848417496159521301032026791115374983343974902529079205519360034805593417426393242512832540629898978127365248131019903907270475329356740094858335324833882489653686400074178632349987419104044532882841764276039242569787874589965172526086100548775497767557644043316943901703425704303529299220627273242137503447171730036662834739863900116639414013079273496347207223859140933850109182245512045135475660030559355402595914317059220264094417113591919612928836767873181897759034588819293724153913972924812912088452350743603310048825123447548089418122948576890707004783077023869570336013652767700552595148294173796485322105091609939219640604308084096377862932613323572928028816971270528396866852185970478076273993418906128080613597944257551902290934559182275100064261133676783444598643894064528583305726072025044343509542562515208360799329439784724827671024354375825106603715940487949201510384947592467966033479863439404820427842815512403547607159227508867983568086275558099098040497606381113527217930345150966847799974764986272957805328084841015242400632155185290119823590788607346743684895245552179062250499397108829586175735856795567557350251766086503793932234054586720764072765602528964481983036250537712203848485481647469328133248112302880588100133539516873348365474559990262855550967909781187926159437680857293777924179768588574783153364689039900255748335820263717600746274410862050539639655809741746093574592103141622551100791849987068245190663718212165539044988017808641693068695795534047878363391006852501996919481489589129493850737838185097302690064310061658278598181203362240127943817395065654870821097897385782125597958667659797197514384701839047252814181550142078677265791176305921120073418662785101374971613273775967390575979755867473689961131375143193189667036166862018796176622186944788860571384077208487932247895349647561046797843320545607907587535283505654439228977048363327515849148196186106631291049737416999484172474034660961695553654400126833903695634924282731993444173551042066486646704085994291964960101215893069970113932809747401575528681750747768680970992175792137275377956834069841544458653747682808467283856716708515285359218515813805171751968213425266828741387695820546999818638287255065213821358777822864144486226409034531094975647675442610778304207797176404512933632950371421023970030655781255847708423393739557648677367972537481606362503843168124567319573745710298380577331895797541704035882283301494838346975216502468025714010103914428224379223389372834461070192834246381519153541657073449735087472382847309647028679869411895698040968217027322892245001960544635127240520520041583971621940021964463164739583139035762170199431794948897112176365581545902480451605337280510156174201983904524118017815876279651738595779323276967700353199602649085056643992156996338577431109962732998631737199959517200850218408672642646371101545374730652379661544891490608558158006571439188169657370528341584423668682418931066330511649457830359804133587468517018150359955656189554504872120229585077705542896604842455120292351432465438386871181538820678536957914209095813853289041068240565965534215773297809908220608811633826288011086527878344977473113630225809432163627545922644858971243377816631557722600898125033682981682566631682610737085452001655043111845467099558396371870617764625627432748069656347697281073182688635498746549281223628773144782415342860113548337271076684894385817110393044064200182240176726340421890831902799932014999945402795155612702584434986332938578811821354856575903247177320420865214815587774919246199243844086955448186824630004111067971230343845939734137942387374393264723843751366429588567898685658951303837688353422300120578357401828676972601186130958894093235726776858914699491851244918441840925599947865755474036320485301193878373402316498016145523008717540532796245779181246050580928718951066176027539227061678056427106064418991148868956515650886356751019040242806379145630040447933887831890732990259170167675355142642376214492073963246226971024700003391586644605054369719791494314775650661353780588839976772050038124881449584121165366778448272110936011292759532887120877841511684237761115729434441960005237122186826720742999306359192473618891496816793123199949121068319242734843145222447279826357302242567386150739695274890751289057107711950582138717364831063616521339513448000385051249971092460316522357130803259292584903376232453400760320842967946030737956846885496575825977330471877866897498673844930466070869143092859562503117915504467968023415581223091707838412658829359242640356140504260806008546869688595524806524416244664903624652273295705245201851951199159558955290387248457397564960258760756806687514100134496938763226979539581837531047163451773323811928667831242226423775252952134175389024541147465871534474253437686946597423559532233115628655287705475810888394873008150594406637636869222249870143165184278595139166099509054101936467505107173773580862579991927443496252349670499720889947986542929122890260250579878753674093446002280196785552484784781658612158441286886714903390256617127617972354369786548171729974646688965669528157342077291472446277672485747640613388687261677491486100169309931544430521390257256802764905734679114168769084716597422409727078240796120646611651312191646926189337151885039421286660592963158152414094297794601078846169361845050256977042464833066585571108176993795070724001767312743482949829156420103461530822715945579508688233753220180637613661208768403958658967071460976507395422262631189880056881809184459299733879417435154233028244171160617330963751561064127921470225918948716522996782440803789506483696281010027538704153638832949946980974849557550595641281213664125101730908685490159288132604728869648162642662357778054553440280704549198708258550955884876200334904686758947400903112288267809335365435377494281796983217345259006680911693582818564568501917155870457899577576789005400672194461786469428149879198644276021234791779094241385639702279591663167643539278788298663529976088719491819139384737758639418890574521944678724703017989978571286560742168150057924303869947327538263331135594967840660782999034974148208051706954567444180685572527264687406113662504390118753254754232911964948483425204510781060577943693688090366102707046311341478194466850964847019258231974936107113782475593881011023193956944383247847056756484277479359812544938079489459992027746996083489543728876555060143189527305241452099308772354859290631059064418146075192767092478025195104503140154642720710070680083180568398591651902431979302918841339557274792641004649904387564878774356700307228858949766456728351406684087539492908220182736982294912682354121748161368688544141161324230028960071909213847744561723111644922303682582641769301988145730036846349657102221408263124583418646171513598174257521088324737567078850358400431383653911420680901559076087456166116834777465699656934956340648686145557966135272478874944718193922403341221868381423359490016574295587507672818840231865869254733525161983351569677696782188457102581994062262329435165419402365836394943255170832293571217710812530912679746639974144291329780869224433933187913076321919760681467165263316377666796726363009358557618651687972870695679780480454971223928593840274000191399279227363525659006258819086900132646443876255864527842985038736584704348909940933030143956267884729350385030018045078638342845808438610028461766371554637994695038037772077915299246231177464458051738758565447806156096392989914584050474689082267413637953293349014631537880308700414921059621205792216044720412087178613665190066297140536838101223036797474893474397440355281267219163513941646696260168769369333198258496749234472534387695118739729309245483423889286935550606346740120759162435277138948543292457554275852865096643431556896640227936847537895322789460299577857731456724769975931588507801389581425120448115041888515584725798269229924188879750319971870529994618652653007586773237221682485971828007294746519987134651448711703339953615424387084905840982960516132727810768596442196656074425641940514690499804946161249563404068392190771498418040186116925753751091826736506830600209883763055480385644352503066306234130612939285707477046393088961139471261606401043986832082939310180745911033201538733140241269100070397581341917457593826349498687784389645789643398796677651322586093931496372525088387674673302221462148038748117194146554754557712230578825980123206841965281388830964070932871027079124663499958832238128617852767208334000539982782814840647946824229060042912122106597047490747604301058853454662249551458034752963436468757230980515606145334460527996668203832922077185727063633442438883408782171390042624805879701927405407545749346381487589841357843387182266880334506042590430474499107079233117456107368358822091063638239965732350709920894833113291379208823532224613893526186210570131354364436457244871599277939975849932193257168902679063764133950784657484874527257034337008274527021136294641920315192495407005983253307946077389933764865171101000508233923609744019365925394737405986538865743988135690941978862552496507135911112685185040193966572539682691418683443933301904851096835004357109458349031556118275058281579487982218428545875549584126781113964292831325384082249471356900796366177435661125414328125896220144643335618724689108864640640164479524695882167104926906243955093586221753109061929084147270264077704932186419223273612311401354498323951554425440856816065902340691804294872223921909999452981537034039650585609297788131935967310566506897778758557138900120846542612048783842452393711977208839827448990762696846142014990746742455975894437437090145480007803455259749620606423871446319343673181949268749215331324573223833286706543569622280756808802129950122320054474219809790229178175619453114577064672621707466988159297527523470514557914076032356023938792125802675073645760296876741118992675393556265866423866519772359886162896372948476217092670015426125742124286857297491207697112594471694238493693674545408968196972558184725096155032155792397437633355384035976647013217549886272431626671933948422841227589454651871096170536719050719608972358303271504823068404852713335269473636816507577732159176687157594416313210768089201569856722617088227910188499914714059434288055299042112354260270740929355910884082058333311095786706920759257730912926924919976248931529110265289295122135179912377996609289555454453850595802792488962047929361517580026467217301770619052391009464576400732627017518008263142459716785153224830000191951855168281863566356331820330684235765653976856548286231542807462658095414573832715578880733047009265914516365009959390346564568913094794115322841480562842772517211949364542098419861388708532860043255610396258939487214900661123154908452623387370187985625426610245370614357085520353495161451628081795397039862874478338322911418563890659534036442767508653061356243265028778963811779229229791964941778996632638140872498970562062470487114210425427820545091666986550119585510633600182428259151456095497248729019428058256496643542813465124136039336332396659486263201490115020829908206904992939629046959108037604492712464565042992155343636981511164664972144023247134110851345865783723466632735564673978147655528859059963264590131337423610792408947141492421666378288368771008005365083733133255541902079139117696106673237887408208436065057479295157571236044446803309719183557298099406712219109137532901994272277929322636734365147689477028453468074381303219622156060277115502840277041420076894806263189269470726164998593020714296034462582085587662185883083284927349180119320214783023620370399258089644217479996785673889281136210137748592455133405399689857767611856236231153178529947049855235544595468338902354169900676963763788098197424621362474988545693056211686286315181655801485303226375339149816115455894762558926958788118333819065215398805207478800726380280132305887112958444963515055008199987263108013446925508797492561004244913710492845731052194424314008097761997533467566006840699015637727371364988741482590122374579000586377171498634069180095738635335924523335609684592512131802616865712005049740895803202538032262084326619810440894413939595478509856985769259731938559840624351211345613270688360596496221663168293243701967623447139979216672713568041034751735373755709788995324424627195774791204437925235589605486711003088703977434224225060349423712413061849395890784299493469259525982831010983058342723799478180609748762721653783185939284632264458454656225109614665157645868934581526433099786405548477411600257772548889525327863389977948944893054982868493503866491220735334782741239091258583301353387643651007730825499442865845507516318725376301361513941343904288236415887334626928280533721208750109018865913029812204960791169122542078051359545098027912210503361459759117931520482118561995359261678862460061906379083414544626689366275434841716236313643378893911028282605293261259923271971328081368982234768593063035874239322107074580683242314571821624346426301945425142146194172515264817128649005036393721258740515184143643681145596118820415669053012962174563076668403663642115572395981887884205334568108513088995921023145814053353739671083130149087952136212115380376569731338422092430375230143790725038651227311814311507500117822804518648056785447816892453368744141832112177501839224424725625150785316203820810740383257969984224823783549135419367065793612515563922000568914275068857139469362297088733309496816962051245743808188457470668363099538062695252189145022951754976153202316522149104265511964977520701168502878011218312833292797492336174599196425266949798254476743326370554359037403181773964508964667182078956090306781432411980442654162258625498767466814780304624918010030737023704215838932637187724655512059912863075147063298857128223217521044092569606125037050489876103581203981688491125525885677108194786100243933342766673885798096246586443984646198804766798411736472058297669209105154977052318583840849749951103614927147721579937176837786365126967113601634703620840293908402439753915679872842835006565134208322456093273295713198518280675536387979091282850082691567722083348896394170055192585283514298130364389388570557844066046505164589113349193405107112049816267825365188335182457477910120330504208004311094959134514775884139017280474000608981337252856225367843078818703178715605694393875939898188077120611142345581671847158860786038277221389737646359143520521224835487922283128631281155568036509026416107820475280903634447380786568594164835973989062151018505689109649911816560903696769544915093481906015127574930787420138101198897220528968100872527760556744254194696477946259355809043506531247387640065861651226600760447597561332132179352457784102943639081682225782993283852665818794579140008390948172464676405925161598197268792288796489578650628490274286032519720668275384826416876225161915776709361296460141608364768302280219768679734294241621431310161848311849958827393487307159552194975718022144243426154260446061870527454774899058544219544914834026132366353036651323163544263372049570679859158079275181728919630499062594999008147684337360893097451780705731546034397843577576655169091168950140326514396545250693669708631025439427349000691568604224313544556592162254819451195980462848425749251140651518091055516959575929189837338722629896840123066215008628981894133523613481420881731993388361080793787166748015711844579230441968861479823888805420808388291799429966320364241587914685045628595943963922853364815069649319869598328614237784873988651855720049680997628405639176783487640288152904870125977734110210204252659410911885159993826327347970989520293617328166937963451461429539399368879229359748335252998878169506638608926346438158171909465531696773122004132386139803111824105926056023274523813945998653259321034468268782079921132740010604229308864592101806026134449615751493116127744754773388799891852251035650023642898597352740782451159297409158557460767524805894229613934291389951284484863358858548006629146934037537920978811591762705879740709074663967658525093613519573489018307992059791142228674935808005825024707363544925456989634686145021088593024134456394611183627545329304628540758473724564287234890828683648047242259178238842743389250406393826536419679334287915049559738627082796357875134879821120431716409558925633088972813825090227343289493535646842368267573871835699701543991651730753082065885751659754151118816093765853785491982879627710355849424511346850542816352105472255068028474971114361438471561340767786427906467373082263365617089261258634113113592423161687348424011664836878471635355688331338694216599141878599532260888936511891899895629477863354916566596068048292848297318707049385748662311856800234181531680221020570512682369511982332828754443693816781470357119425420157794938259862920608318015337674971076641490618148116434664148412004960152158501274420536185137441804049041682203963770888451971241677594847533552875269536884335469654367931535411324058525491596695579952306097961278321920592889034552542671721522214928915647159048875327873048325267630750004017642890291791909846524586849104958413506571903610558433845909808338833185555486063273196536995087053933610678055896496723533487546411080914546906722599498840637980485914813178592262504684243339800911629549326537660954047866023009782618913296822405096340304433369414775648030023375276735313236019517234058300804465893483203205967733771257586877852977519998902894942343149312459224702111324137515877739350067611244791610206049721278886228356062663540376124768155555741538298359029163833496801709216363258716635633533749662041686979435435863380438445773096984042435700828425257613694426905512902675066546703924903445240692625934083228554534379599793592270300904712168031104093501126513455745345026848482948191220350841082256337547578301093928615363816349397087164205383359839105314942613944268071380132766580329325593455802837723938805850735197699247938784340632267989024571455859841070096645056529049733134589273216252030742311181453728151373136101017313095471041622386325729667593990740645005328478666944793665017136190984611544543527446212919137645035341939771103011672636339684115622650275311944300978140039917237895794103133556696186433727043653382076491766750615433852102598413629165205550546020195566575649901963513670239221817793775520161466747380535028624040420611237920357434502593041390192486670825051908122982445789457407361086720507483636598770392929985809433659617549958133089691173742245794625113882236485484797590152875455553736764183908631104234964629840744093497962296332730483317448640112193297796554985899323295108429979243723166071552293830482723585181302961527935428938683343719634658082969100332379807638952303654612510654179993072575049839724637592224526337176978075978720608218845792072966311696324826535613861348378042647482159162204400341716840933457690743152757563535831852349071387703622612053342419599998258612575088615307393605192132792170630905412458491232164158471805063305113573205724549801313114887013303821981140807272732969632201306809040176329676911516605336521704586981169873358877839325228880202004443287625551758118447726008807074912046451160774359180100791014568986502555053409465129000152120452252064253722894658667587071334398741820586859723463449566629951438332945197959488980420785316917233235063987296335383681785169230007003819632341913477828708124073426342291925778494224503630952923323125684622791229565965779057772675500601575759990031244688536565450089008214074587417293394608541590566074155613565770452361670868971245830715940663379827324123173649233945630358637192335920169295073785033740704001125380651955490411841994421465552881434493793769345348983347173163888550654805791713178987303845960771036921824919698334516414392112492516046309206892488316624805455747193080898256685635120063892755474923916767057182607425885871092147374961270510299264053576336475725633709868470489143457887924710231343761368433483204110321970129994972556340459911146534569489142529070794798938199834711582995474775268970285120028040136971546679912336455243171999315422360717907160472930101818071335245240058541435927923148111916986039172693233977489821883989719545237945115458457376948423528519481692582272050049721814441262717107860951692687786748748102046851905865884684341113687711478705370620340927091391565408413346729190773460567749615479316481261095731052124137597575766675301452026186842925538264017680857253632343283478664102818444340866043538395959427135247664379511955191819391154921406209707279886524207724011292702981330855475608224859508726875366939136504668530750421486008008303983770791540873586021129339642093338608111555189781521028984243068343421536077843875183066121040334007236657030092118508222533229208045543873696979580377025866284425923153082447463629614291057263337518701615282567776741354385792695471080420608375984495889584383210748440256833172537791976081990464952026395853312392339927668525659500260811551729281650332274648236386201195712345353788539689851206938981719307035305769049292598715926523896345580803864515486808773321258820068582002498715506824644466338942878396125601933245697782732433161233520965138920755685212983188516979467694433506050244667136053061540908617868765388933070082541533765808981861709378255565863778844954783032209249221866764961891601515334499881209025246857254399834928674649151175773534132364966355247696002406326053625091522641725605554801061217233108078199182489575599905143740081677246915588115803089881326061309215708595180562529816209237105749227543251691004952360987878875718717211505022291529255105052744810726650360618157152664037608989921790849067051062718989994041358323964321461887393073776152021772725115080061929383175836281937871996538181229866907340025512801879279087803040709583433903445750375684243932351927225224037552143473867380752194669588386122968140901135777403518206871393252601388178957294601886273066268245247296706712173694070474340226773618757574884661307055000242369262841177546999031089248914197446547051144560836740803325575593435414800679146352700548578941375939719659874654645400979795218218966945845498262986121112536660163226750203173011258176623194600266487331672403180844892014838589841179355215600691336930621417260228664368429562718437365782637341500355183441289302384726849453086453198009769525247418892241191873671613533321366633108900895628990762793796508033334280091372553981562500615656276419181833838924075918518338766034606680762071717143769352396479390368480135373561359147405144053162536224690261394110185360060334169505929698626187740770521359604921042843243687463357285677314527430287818873121609662691743378456851694173358653329198829904775810449042938653393821040861639530850877038386926579000306590186284079085418753493284212478966887162210380793212527340866790313126238908525210560259923133259674449649520602272235408970156239273423449292584801461562419986214234530627350549810508980275019993161859849204055742771447130265462019416183984320079242634504584405614684145112783734031992840495416066666323446120528177074638003813361737359820936430871813233192184352446561517575448885454861057615913369781123028017281704621024728901372166991820235525726975033159166004651887534656979002373409344066469224631029296591204218933688167441410384205793118268639240305815501190175583962609028525365051948799030076177292730607059307483836141774941952641423184545740502993700933461040094641864835676467462349624489427146877382161815369956822229636024267410898924981002520413416471173792304229695606035436985260203579352968834502027672766942674548812986556567398672380308853741331482922170441311516221686243843613125230240845287606829224117006332565620459715050264810092191325275004815746209452632084767112159089284532055252503720837757332885540122585456450568789026971273379723729952162274572981626407774822880473729324307801460266708668437422378045778605849858261054099545636365785905917875749112260125055872293995411055284558381553297739317698584989989388836518974636888358574136124991585828262027861657416915736763590940715392564636411248234945365509676723253237876215460317389005080441197609791611102290223687655541030673382128577644991833858755153152148778761478691203197742553021192999961899813585485387277176076095262896664529811013710632466782135760255253383811082297666567531361591664351732787378092235114640291498317477880617528701156825343141008335150579927217129470471684312536975780270150775060698309646052350385608349537805844592931070878206857042806173473230012289402910283004666718553853515138389894845739331394303507272055397963498046725686065912283966468630260982481990418372731969994264433896784584715393090578734730027222307480527577392125791872089391598007463902469886485026370883524944894032005789738745706406915794868860355331935302530893785244760947585597853215709450895638196693403117641193562666762996684430982401486914789890421013165150687451618303024795769322515020115862793540793433176007462270122921822979249863585713808636390610189794805100848080461949361321600158590642026406188688934969031448586718790828162003456752608873026745723527695452167116805593166426820986944382288175611325663363322801041177417477896799253435204604674747251351167720432901487884476594311795943238697415563837881786193066940190716936015341170697698731068635505410964253947778395666944418094974851801022789810892841971160530581451016506053242164340199791947674178160775306032560340036933820474446855584476713467790581553326516727588743364050439770622209022373192569616983350215089533026429776226011164776352511393665964611091607121929590021359109200775643285314496048397053948650449717467123076806466094740114604243766930487947637080582694214465033029010638181318152089292317639597549983254821345898496588827307310435936377477456394222717708707566563252323300400725935362961444788168095845630834409651823104318361399689497900088596502123607674442181012286534579108646466273798048202151246540111914915832865885268532301895453516337125473775559344978704706946125345016858776341205375687927428300586337903302338391136611677781345905373043498171940440114072215861148152136318096506171267810151395813684822401801546732202534211651146246141524966836684945767749547026691976395981222084505965478026953074701906649217677310975315114651001557965529654868549422857789046653189879586628976379179091636095807224800116861490191654206330719222561212399197035800140859083888078858152985707444092519128065368079652660374214584055184168765602759379435404001209841883834115066485680202237400629559254062119579240639381104150731225757530645916966893504383906079479869469230809901467393371061527171370400955791135165919981333741093842515814371850142740642004082631788186853063275997283281249620405176074254790290130060023692268088077699488073893438070134692145532974141821097612002097828173191305803313782636778566544773260737898579048569111126712049998602577548919862345862817764060753691935909268746122011444450354716784464266633836333517530962223141260294538620508424201975597106581877401904080829084227403557892439243564476637734428505692434085303027924795824457501083579784616126073704324561394578120961743047585841133170827062347135515575993138014929694402428963263714702144565149652398476322237016555974980327621499483492989018461808323111096715418841003871711041204844072004195350789775294444338268204784111061483808655758752030311572529395088359377891278765301031964739321111115673926308178082635621935096231548203071425824497676511670476289488453129919842514931557420347298929895770147571206704681155202350523247235545586606566708685108632702579367194360051115429605098094206619295616526156577588186585898750490800438954876362284313651292243719679242115034317770734765886393548627711025001850656231319935582823339386033444254642736277744796097510179704554837767086238465733714025777512852871275663751553281919922130611217013042502605909504438680769054461912333882747661284022597824089242159295377194244526436323549346543341130462054511913721346551515261692086187186826615484466946531257611474816226498675976709262387639379862104659752302528124764471877567348655918734841493145465088772336530939829453185321409210101875299956401871722950525164699259014481924052766150948918986364442068747093961941437677805647628971694427411764010026774836375558372811945916313507611606709470506530785191143913803991095019518367748300367489235257756938748514691099963924638555747913119610810153727673364223327504935777736890139056484123342739079850546965327227732441651378373346758544174547341207583152894248702001480197787438316360585293622611675372119569434923976265109470832376171586241968003750876971038075019850932373113125436193815185632968961081291570675810501527872548860170607094992483666016318623639498699274892169984865540199712368327424630321283549944310610722310937983974808260599129795467743672686779370908224724486739579931037522183556748402735758773733119527019788491259030497324001764245130963179551672600339335912314337659277887792267756253881869723440624384244005061343046552181400789204806143940632399159685242399769591312177811007788441920440548082939258480918173574595005618704207247526525064127308458398022095181662276183484149309175506025609881890043722148485887221019870307696606153809186539107139545043097833705698697680178511560436900067573629153728283849573573655673586045021312995648216913622823930590726515228527426427999721856110953453657670083682651515170152086510209111139590783274186055746560828789361007753926265649338861727997709573827340127003496481393225786965889666863170898451340367422477282427765741297572558345235169691650200805470557281492410598725105441571511748485473916613980738687557463258445029713973706526370221347442963742893051190470345833530507151262173309074177706292158102814216243561958802670901962713473076106753142381672588252864630503085097912953673113256499600733387523620083471677990038793134881266680312025657062298386377768920755319444613915301238673990240486263135563446029827906441274852774050334627175469908617848843044035890020862719130351018824752769333344720555197197918996047048059918684025986473404713591973031465505981708046232679283737262826379475565914482056497237454239699956142095868823148550759526410255154608250076480985340739528917942618055962067080716301668968299840754463380325449336149709844339459754861906375745990234388803041699949243486490879139445671308058355661962191555600615697901995357682905002101896567027422036181085010908646178513954599107647027704622222360861288729650617510957140181206831763534749993662626859559220702158296725968331884469311226789147563092528134313604098166923870017118362305227661319741775281025220056275315696740769906605324663864397308476077971429710740199597612934223887444115723349822586302520527264937315621507738509035628583496280269044146456951933589415047550144039779276880423370778811964477730206077772344240091892156231172177176059807624542099877959764701979942770797723116531287668178789252019396568866463647981559310133994402747809881761471678267877363914470911668095457686437826509957223875764608460648873859155571466094000632931321817542663365536484918222217285905769723076521140116944979899690528805789388336649001813823957290228490469667008200168130206394624073493091590275934142885708532068762358731090711986024475339400646178173484919274452973666186483576119119778282346042180923275475796357967107310589505335072769136105126477473709507828331515007212402062929897590311590853912956841513274464385986403906036959241377711360429981935216233315621636676640800887567332706894861390638559002560944083228713383587803890363097746277329239714352777360741367980026503933649615212512934063299910956497146476837748524070636932900578224247916648746874060764914113107424142423088846723672994152586868219007205555085419496888543954563967446791165993933606480000318574448990791721162276489139238081028581256884070536474821919211673747687453437789487699613688213426272697664416214919036136821576728554502504896861886228389325839701869361073584552692096552134759438230563350928503289917235093782333479797504133590124010292349117841630016713872730648526028774685678303127394526607288877676061427289328588440828932138189102279696960390581188501254703483305436273699955881725709342993140964058099265430680172968515209552929606583459517919673520028147367592243601565603393553038461050433121887815778674450337516083587698321841747892886725114497711348344822812468639575079212116460079824921329502458719618423409131990961108698455014479283100229296843149734677664049782018756801761672426213878175344242180212057211213172826847525656748200726792300500826847897736875860392060095719281863196747583057731634404204089957878412024678586169291198524769751585896814317962248334446772204760342554430797458212712763116677122053103819231669454500938530013540282429933309759723519666401208319155272494977995955604567307960626986913078226336944762954114276671610335307898182354701166895149907587333821216451348410826242930225999200683662811139941115125461725930700144444632991288139293359312372098207181842057263423575125682653087459963090186730887678334459698928984832002676307848365009415512931746918422763684469552947091423342229977145571043654191974402213173908892936973974933392434509657762933138479757269026753309218452566866108604876024097350435212476571243379349288441521924372353579175661000614401864579434310629293249423855711555935794321634567213586097689820502791813986879442483140382539913668257923633977689264993189934443674192447335264877809476685621137842009582065625327565781199216321999859074822575248030919647378503616410585372243307742604688644658927316188773461267259629459866560772653942736109741033751390937485273443995039765711607076929711848907530153835157174824292045792471791071883067086540534259419792892221675414196222126659343703844441938561307348957839146646754948545272350614000627012596296969703468671462088051480634824844043131022510463431553795327474564137170700210650305367344340838024095418194988301330874480127079198214720137352200302592059464047879828906261249952452660781603922981442054003709609390211644694521631422746587356720252283336260136237428184004806197257482162082429551797727272973073205112357995038433414058511000783083314506753064896414491690562104151861752922119359164065524750154556730150744499486452301750509983619158485705126133762707646063226216779380379783347286075646504354886007763457481555775817622696773125055592185097088743476843929281132862005840883140572221228410978936535797063786697985513803887094150998745829253181872768657463004938232647363618156851290158391476475807892345581473956669040032671154517109327858770871512834172067692988853978428252977926915400050894633716540476033383845459436376875317608275254637989205093882756147927152477298090727525489777065165776713554212364805798399472379707296782491661983578241356393041523629504898828758223261487471925040891530884171576092092305004480110183038551218532313653347948888879015722363178598874765893160010776650949951255229990043667094407303640103722528769595823507884116164916853934144828520300114558139333905808664649015497432697215099754799137119700450486510085349133327350457265603069976093554074758104691287480708934527771644739024558866284909071583241587884795381868510376098605285671355682824911900839220374434626904035522589113244318599371584748794166070736630829086055945897422584120748930970310091167151114211213930540844967018087406593098543220718873138815098851976687141233107041786479598396413597492873754334491951510682819473710532302791987048437534892615184731899989791400977568480693749600016108233575783366236542125307950760097268557927666168932233945114571979127617417037852364432298719514965871511460238217831899526851035213103780148636379446757127516777135005021384596019969845904680006182082169173183007975338739974822121949223947205301411881461278958284517272059464291446933197624242017021964662823875217821513732357693660674028499417101328711444952126394482474567975135459412319593767278495198069733518647078383278297095923706317374413648775604141919609368245093933278789025697838072285052651055850253676620044952809680701293044567513200737936287564954146246303308217843646019953350361820144063232377800985717510519955271627601666898158751455917544993452970075151985784437618124549939173108298394078731168437726304231458613891474945380751170602064677918287191959773361327475211285807160134606945368577412938008387928355804736673181958074735632365015555993131709021293679222320851798417302170038550086353521591167366968644444992090716536852172920010619672122051320338281064678384765136254210149137239061689483050658909292581293546711561490606464765112338430553594138626155135552051348624315980939069527505621060448148836793706413546658772048942718949729573722353704410285431740336286439443371493977704996184241868007600632723100822556629539340464793924560213726363178313995339834079050733670915717617320590636652857409456171213979060577847726026831134523893775884376819162451663585232149230799391832748574997041666537415571738080169304875626878158917417563296706277879056289042347576596611445225908400168215371678085498039156523631330946341798329960110918854384267723039106509702702198830165543731261311895548264071820891225353439107492325152778501872561198611951371481292890458073481306275226056677030302922708434216837889406991018209299666111272015256603297080530762457824728513159882250135294002500208388381241989439673550126643965001962631862170659305565506735342295170646509618194481094802776321661662194080156962483118778668439697172699659470598483598798278137578925654984621921926495217504814892422636771305078417457925873589221004682543366409769763611235864459194342874241128401807587352398403401491246073883620424672398821552914049412694988651175496254369770781940605104124287932420885661338882742028016180937643174480927283578322500625968759031780322704329148299432700392534963347748956215220414140996648774136263673681217950557302958878984225318474609429051594572861915386106414389414972477086184782210001345554873820962014796311899312511010599590123070976193164663069782689612792706539266784080579703242581718311554354723638214203183015376089103631109277243861849963910444675669194557963298288582701914828184710980488396696424682205264081443293015051841666110476711852745809899110954252778404269749786844248737001535368455380441793424045931136723745273211449566685231426278776334321955029482567385165196669312354351388022617759735046836600810653181594200585096275321615455913215237533727738976726315184372552579915281636374323284718237227182702666286437560536858972810177995557134670010062369470781759651354062218481335121680697549857075991798419298595113036272726494551917976967396537853446393298145203344684638134547714071422129010098621496987989852796454046878354084373007799021140753617947497021796036551528314892384349464930971972825652097489239934549515234980392941103774865639377848359998990488120125530546827894585561201737665076285276296340407856188492210693060640014899894850647442034452858747788485614845995968482162089029902619435380880796529838476192402527211086664514590855851215355780032969039269387397476209861572311357708264041919415981089265015604227175360449029620042246747821378342538710005047124660447064402417642099916589010923752307837665118272787286660522706092223776330350730366986817164338667023557490458075055564114648262318661234314293996152764076609952881940561691599127024143669176590748352762741665377417134886123380953237085955883258095490110834813600490140836292296580975118613391555190727151070142991771236953006329482685176532699424807229434828957236573860987386700078851504937582219402212242086488296702145009492456010025220547977930228736258291387847339241108105470794961668980308032052088176398911507067197515765976391029090887182531309240659390602461357636806620868984906723793290432383289621607467166507759694726082176929376158824574179984681731793484932250699682481599356689212116055063510222010422614580370408623844381973630439555956085255905939497516959760481557078654851033356856240895764358777256367729546226486649176571553475806978400422525475965306395641524175017380223097346336407843017815693720394044409261772846839216466020383416296682816593149753355652832431752694305511218542027298798704406262041684083775633908592844153098804916701871255983801466270548639150188571080119096958591587923264228359232021074270516959092375719242876154789814956864765168927857563460417239507507843403122687099850417659220224907084675672703164139216446603354441549822053982549912022532611974693349599824808025908559284449906124514285943541595858523482272475124395133878632559584612548736170240909277141345668460569172731481721763578164545466181264104002855410026924522910920615055859116784400936555765533419975206439500055387183545646085790523069223070595438533359896754903899904917797787509987306917384147653240579009561686707560442551588458190166352986808613184208432249200420561988583484343382248963447050682885731334788003507918581162391416159069128184466048810385062782813294098002643080633072733180592496994145596854745781387724849308802253172342904557290036862114424310406210955911409841855682226361574294779123672965140490544597335710777595859801266632256043608540547604626866871038381978506926614010712955109459840119289756117958355823236236753469365416755464523094882094757649337734174376830982997492945221109352517147459669881328882279448613497517363151569880985872137778673847451092844647755030883347675402295252599912684937653385582221817471147666121842001853568400326077834763277807291199252287639163636211962431903056102534618379026030541990221419416745889963741036420020804960573845021781683757687225922213021983084462030527033837954035621004829023034450835396628900040294063401322244404821740277829301971614557276820048784747064670423936811146117798668350687212077240795863757707190642062585232989101054669428128800480615450289902011313808350729676727213819182563649450227332430309404430364519749591070669487607581551926802629096555953183371057860766724198180591434153883977961991508486051398406640401718429165869701399683992271044837288608769154166218450809679177566529229273929403051838437048647756277399343656745317041573919430443127319809084811514019991086828270427520813937719687966965693489015415910400549525088177102313480278356458407128502707241530916526730238664548931512462422559001190628854789163821144644190256016513188057371838691854527408373187654826044461727746207633906607658420555541024652579480672301136294575542763126393120475378297286491994118057434767502339005982635005978984724234443017043762934703784082817071696797202107386085766174365361091486546682919562954877197872175855210846542161236136134010200123971896775087862926142182915898002985168962751815683025768544305321491165393975129665393368956955002070865498664982884105944123042357361266048866505707842211369056788490958822247852715451923886119149389086308122127116281905759300832845988166654404406637534812427600900342561812323085973437150882323395397162527585996407614589070360908471436143772937874751873803619961421744707684288447025802546309510393023751751332862131577000092127913060275173312812784974714232894104138983478155074567295501253172473671967405506395075214260020270816789702132546041785844676954573397818868430445255853373479780811501345610202629819812897292832518407753300937536423555042056819092321846005555146247208604934434901968262065407190511583587006623071106990456724665435072373736768783649153709615903066354258275354836326205929651639398712817619333254247095092776717891665119700076783043157683675245370917591203357854266545237875843952330810900930306176069289283211711171399372579994345449683836456060182607202842069400951176346492321965655167186221737237753654319911169870131506364528641505402370673503629918516329706686506046639311444935669983080598642607029051549867786768278254197468884115485935783945159038666785545216454101152328975661196757619826044844883888186280492348470291984999193443469008963976029943324283793459765603347106020055340874420867827590751909414555142224057433816661225921483891233024531280197679560936317375144999024200732848847148863578102109994490083078006947579999411523039039752875116725182164303505713623358054724903888223805995159269655619361013278056562061029694191019121752219531066677004707871948176734174187785365608732636293452646490519470209161446671971859192255918713505123340201752438043981345553184567999801264491946403147799435694601685291589388768725415091722122547060828079607567156024882469903809449111380198428480172276898962196823745677511389426502348709110126707325363041063819760617448281875246635699161441044575458374376662425129482884060541597284940738358097639834786434637659701748458927648189887658569952670404253090024907729542367524049401929955510783589060620090040549101023717859247291224565007699332040042889389548117040949647488520633391402391887232607361244801507603155879600111728068755507731615797598716650991050045907032397003290607025569553967235742117056618601400367160344137461886521184538103552249105403991160743856844160782391946299303638741424509411604338773196034329570091550684189304386524285344411585458372687798319772268066038282645035147025016603539535166588802297780052224842854731764624384388013000128679860035950914772583853474945298758306568101429938292473569178460273577469318649793800123652466897179727862011484001935574689865595280451222213824143044970334491435488119369283681102599602292706528496638171489249327943796465051001200403165484843396441661506975802883175484131900068111282765667643770755609309429585338762269133787524494167081572768231016831046311968129333122501889016048817761076033514501935474505488814401785293599980129126001206060427090110251256290304634565395740391543207546218939656718473302771423126826262020159492508395619364379984413809920574055952249382250812895810619605288083594862893693389139180801890293742384390521487116155145822467513743585226386016368716477851538502919313887233731436325627097997287780881264859706337195200934093638186880424533814449263502190361718400265647718155257360086833409652305259508060368469675626775266611736283269712041933276331353964113088817225911742055276176372646641258197456457712470755388752514311895216792696057100993202618090231885705698367156017445354568270769964762816685507120217481629812903676546036987966122620747548045330712041878224378318226261228100843716594492840785426669233059360674515362865963623097510615685321005750849980753385510642626633725828183764551457742826918158692869201567910118988489057829423838016687210986605046724999682786412323070002687858377492840856713105960604834518973880483042734065150888019445326977995187828629009780647685962453553539613307664877707656760897018749621864640108519806349633826949042491979583300851940317562819121531536603398418239201002425635218581058029988050236840404804333889893005283316598815075789127871812755821286877019558322557559740044065221433109944711462024262453041198837418904984136223286365319553004834866609604474856342678170177991376714088153756436537281668300975233104517177544218431803171953078481386875586123451860624519151110238607509401672570955470738349145551983772727623331547122260600510079031392799219864395459423037469527771329906340639264256726119674395305165963408010462798111735952858060917424567982444075219127162417721367616848444857617258396828311904684214000776717763279003596646749795240548390581107487370737887359133408621949704449013704842494019051772328912138516007318332095385795521969512978907683134636862904418799772449047970358450538615857764243357047460714619297956951538991021470688846435331513383157639712089171985291030816033706293353965166730463560793864036839749520596888105869927344332846247090133549975387077164248165658122231243256208173245986386582359462930661464394861520558247619846136033614526947791410718002409164339023259963888133770251077410776598425497589415703359185761229103697613600846569997681258124238932048328374280269453310719089571058710481646946167557610288341189710179989936804588263189021591584240959639404143201846906201868341094909200898396385630047858431420709558396888453409280951337390319701986452079367510020306644571888288781519264772494303594386850438886932639638649608946125906120277309499266515504097276951705036611067843042477020119455576958435203976627054166176755454413793290920526485530692243439039530599345963452154258689507541411788016301658754642438634619681814574914488025880213295018458542805605541378514232400661337928731338272019335161740295619554480408261042373380963810215857347137785957960149696052912384623714175227864632673648601095023886482276437458176276133666235617882673505256224800633196506308262386765814787911450844441238478004646117341845407099479118745157919273102439882130843439068492642249698092689750780183146889057406698173120902641920112787160524818069537489786729862361911887892065839437048468682506720190231458297343491094987066781376921040475740926669448259776061291171954911187638796009564709539351407008245546482069074499569458290916957062156472629623521550116557903238190705648414153702456734424258119045987780559062281051332435147786658200475570445615413016228891688683223760992186175244500689610430770638872041448554239200885242725841015330533825533887678092697134662481191316474409089632526561972681026877505682395211234357139994767786390123646353601273944868352927141253897930413470322707794491925804063060475441062886941825726115682006014186618525515040474314420370803698921077343696607840373501515511543508629446104068781161600698238576811451465305571015302770500342230898817200739233535220895515324125609294231751309090319254085258784529971612416725883720626072121628195461544557459110384165218987518410254929586540717897363135677452338656587909681957156016762784716520295476616939257532924801430171664444018671585033738905419231163029511547452207047920868555975715003710671363110733349142209447281974804183466559068154197961892072096014167545738895973582937814728651679546514494710760900233142696853515226103297251345446293807872629938808813062004215288659517097002549500554541745928110249182261332480650198033657652567173508431278453201205847916818376056252537470077620951672267583168511131282366797520250943507300227314157185170625190434844713716662259459280162394603637086392679608479161453849848677732821153461471946969997804633063742900312196408083827919144681189122727853438608041449671253620859720986542970661361232642744182746054371858548731322534197130494567079471756806817992595138286126592431677474304550198080775077934986522093807490237860370047245684087917710286688559896085111385183597155821681305443997007638108320124199469090156944560829654328334202953317606162721387129496951961288808066350756033107785045401572666128139983519611825156291303644297891566061156109602772277099743067334079044186826248334079762788073571610411554356093182221358978528038878994119758515485927560349447197951917710787616380076293994245293158692107561689694064788673961058676545230067875336552457908492660162166757238296016799336618799608246442376505227751796832531584721238034737577064798537969481784320703615704377329834477733743238811535693335417386945728158678808161255215358974893535079562807651901010445364909103783929733117739642961491319367222796803692593991234349717647674893517901731217243361783320017056600222603670157357808334405195697905384452416530286649617539195007875094176400481284243744257349497387599459725191274292517757903235279402122863754699822762455008814262439033930787813583286355827412249129843167607645716647584977408635168159114121639931164587892335990211140271716339080267660838147025074716677129877953459464189670248383154741640637636555746634076598294013026453370916250393005336713367684246652869973812051392466534508717550876630565211669060408276598198426157196232783121149892442323174409010878290219761215023065488942384194591597493671935465050076807369610371381120207579223783354035588149972268105798258475964349732167181527216022161769974270194409561282973498728380885325280659471540289407788042177270430518875284919611149093936355953033058721165464637643730717274962012642808841677474946331441796545627328538897997654073556415228100534466982129223685287129011431827656816612143181661065024622118302442985279929480302948445543117185132192689608148138518084487533468035735152010038855102470204460212129544778605732319452257766047002882402768940999827395028702997977444771238095315389571921171128646089944754326134816643469408021392734583625152385262322186836912918540374864484603285983630977240589225554132350320124746210828497323147490444145826835104886024242216698268531188470594059467134441189983930571624410783234137613405609816634202030646851455436788079973160669494140183647762346254328304821452648274863685489683790673035206365790393419475165133468139110510398314244922774922167116079589407497995342303747269589390828711437749668463004977284889837542894944694359996735283376883962685817953101378837137110705111319103860401094444515721314102329354350234072709107917553178968417134727349410368184922544669907671424927054626910105818732736843064561663466746775167306660000783149393310842376484563388731270571617296102716502007539842374787566537742899134056056702176925957181835755161396899130823911396753161198551761461489487315035562894924371972603427013866465239462986428814690921843916905559554514907371675585390014204714618760969610849852538864662697428278580372790159954757636614618696763766999929894278529322868665315010479175827371817111497370942305964522779402302727818233675643154301933422643605374056309089360083892043595767210733367797120816513019909087977530921445842736598133382864302080119948251571302335829589540181116943545567746344701095335716373338912465789691151655613698083697849042400363480686410729559322692684198375721491064592870530224791506623023701152174461006036864635617991969958699906982284912254979028216493484191000331839935790713655316838362283551535216630138868918646778717079346644830504850711828741360613919033957465270133644731544394155443547108746692711867663416547866571742348154524370054421369172592281475199239372665837606371650588298662046940225187982931632846334259241806659843843712454079895189543745822730795487972393821453953383430876799263644264909879010152338726101305900727694047641903325836999230278872496275422084767863203060620255934386359876472964788937916596739188171806619608550903920750221740263376711110803297578006082751621710431726330864793629148212261845426936900224834298344649292549287753604170821686210445962709594456859597460784982184435045599593860762178793079513757188908822018201200807260726283358702788492414379384623109540589011365207717217038286402399870039546366779603860371991675882828584765265746804288232748627040291138261572208901596036793394377435502401821341621292335537467113687215384181396126859202993441664428464503619599347549318209299835609109274792914341344673403048249721680751125647224651933008738971485000522603761663578345075407831897272580029843603654238695359578763112250922173068998527401947920086004587562030619480399639102009442276501538935021948381671019217147011980937822467406865434800222453838187042452624642697804976858503448432753148850391473624097701977237689690813316131166060717360052558825553360305132220207879817955933890663035284455797760942675399104142659351048635266993692154869911827802430769851545437812183055900833234178659937849525829506263308453927943709893242174093227136309559981916728000428152275794038753020362254157923987313507523811568444312046084874687795783642333037667003841727431763930213917208722361085137103550142309242259999087914565876952396918606484560897504313433424245847845225165674023037451036722149727575372101741449353387977081805643838638571861642084423787779547243310329036125157703318449447525932591131812651385578037979749920680263194295443376937780450129778713528719600469189260251921976160985054614738548770652261911549106057496174247217442079357158006967752203809728780655986470560800829978859174088515326294953598593960038390307420057435638778198458516363928585113370347928482984290968340797513280754061104001168252928573044303082636584210131855446425218518796320213525608979619952741204893892282487944759618978997882215557646916416005509570082715898992301691615099310334006648074951903079301562818032838401571453974009771877817631818715026004089040100764742711754805396619617015801135757018997882513423688892690484772390879067868864301779811773682872718556993299842602364245223299150027462313307865359875906216186613071963104524102703959399839072931252978862362699341823306230896325997332630710004815326088841576507671155393276612981095460387512477443952272380500981454098242180491067454674565400442727065760381440343003586290824191563896216563286302136838244380814827793420225928421444236063672529046457901643969654973716568143989981665056939251195657180125091055950673360258490537022144978708194420070872979171010313528634337974862185852348390931978136694066251395424053334878418666176779098747520394528166798505226265737661911350609069333107144819743648309641155001590111100264091446489700025619051904598532016113131285746389544195190682488711132085327069546143872296114013479296248640509157343708719782674064413835307411215266358921304033554510786950026088846502784443561501465412231298940276508599881107129299628940825685926197706543608703482976912629543456879288503273551573011029918710209487873718836369829120190197034882258948729907466930448148221754568190741846186559969937283149307034418863716581897575831103502819190047836645860312287704504893302297181362667507982587401182840132461679241361522572621610661794426056907969272109376869914362286281642541573339796137707338384374475976767194640792289171457618079624812260143017669670589082368975255101229569859708569082196569537723461844672208187632972957916995134382541009181250602859209535011660830103650066068674025436383328612929622270142170967150286477157424966309694316946557728445899457739450616341850031211675282845726406015055275591774596615045398460253499361978371071075187942013166110173594353696504308460959304034585188627519370160465664020278665074395958958356253592096178357684724039099502234624321133870436180160896617407667971735212823705184424737902281478375406217255855772631186222975810437299456173331421773128716651400976792949111349857697359121191199056714316084573990009408914794855627477809039772704829555106439118390997975004127800926262014628437762046545528633670642956967949540126283443625382095748486943933725825247929657102199475861513402695488552048173796117095684957872167868858023145357076168028333329472240728256479522984282064793693136378115661572050769817369316912255351067390502332751028614643358130372123426193568141825021964652253522081880051534371505488267423660450031149159017534859437395279391217360225403070930795944845038365268656990313048530929824590176765629713505869577193273235429156748985069612976203337818138329003799390487028447282299987215652160450523832818890589704333947965758295040143743967632286253409088742871344465886848070342502510856736038972398960002117416112865097361176427597484159121910578790700410972995937937157649436200971769892396890798513676261825088591351584086468671689364761364731959044679581080235567315184292879382010020420706397663163600312565968396297712904605550704959472213674761881539039314689645681833598863885875801644924076480476981865042849235926095790994069244936466242094105180419747544457835526572738647571258884726791787151198350425043585325452770423730993697023747071961970995401335579736923555743390470444870499659964171991405405229379488850319267404044344671761113335849149202614495039084908111351601427494543868626627454264684313370898951416463219176948275788890863222319887214088876382622613187471171319655493649676941458684076402621849022004308648581929639999553756535342681330126154876010361903656776973173965833207560483841977322701642440869593540509936251861644998477987300113617029545053564306430872017771092115567915177687506714889275589343403784929055350241913494270176625476690555953852507076301122446428996256389952563644008837852699717206986992788049158521243534316467427015308305561590127330292420619068907894318641980143147464919045274167160147631762322107402390738906410433254351335382938720189486527728928401539882809045360222080929529826349985323396042412961961677255593055011142353356015178104668803745494229389695015127302736949636174245857062927771672994612328250501011216885851528244398538737186347883522037888196136019254647671835206788455447264434625265772555464917160436388118753111840460587389955779781140778900483964854660757981966686353096536386962831101577127336743256000908337454654159878314762733817904395747198881719237500169694818208306934533990488932598613766628011933439399371059823207257240426920720189039837352698387985256073053223209329819925575063965189817073253905419799876754604058715846855602248433806554190755518701869427948139589301964676637104089413603366800359752655617065084308134620237870351079096565213425841504748112734821689553077673998464072462087571527538712413271650736904881221908098573099699977855691721062982052118353569518240320960992177760095390540073114119156018384569555333389505632847612643100905989994335090853934954976914918845405363925016392659748114606558160567412442521201353966141856343306767300267537569811872238634488259507553051224859426115502361841971209342786760532121198716405294620209710694291696145249890151623080626327434461993591755572296582202261476771395832995851557931426941198384397593229172988147861760381825839313447857090413535845116616842793545191455872766513268306809516196540948134959771717513060732369950822666705981316465893548660795651934858212798733784659338664276041823161389472904890517785582383158510710997714870550794310665563125150966805383885492241217993143344056550549456054990163303758318524074470388686195530145312581818455344626041247849133830213128264401241008332076634468955918753980353562396825143392630867970235496484904927400405467665663858731324051615052392648126210968466566427232191857941729309415015892776128450902405137038720388310771488322815383377415429675903368298255027129066042776994614262137082851169310061569079610753676890451016701058649254786163956542210899280046450303071073310488020759562667391869147677047624561937250561641713614455990212862978670211353735230385754175809781696096440541894748849047053036569815452058163156358162738646024802070847905365841917939762557346300878795361798762037562226460381743868557935880348711260202833594130725479815028963662305348531204805699820949365570092256913275899673571110781082830534797200497309643788719378302981674728106473305870843352813854850416206031949785395021807351265721862153445245961623815952360310327769943322190222805645481482722258195781679884197373662640759545371049560401487776985585784293545279659457212850209240067804332078381755244605588915558940894412536628624751669899501490735002206437760151249848062072293173401684606853023233838488155801937320796503216820575925372770388108935396724097675958991426886151391545794672997047341504678367711617639679129673370440688852446721221263619760443434871959030599482746963629076762352207055982399813392399040268801172384957486267533022328865203550426568687606619451475704350830825071386946427833670337513793013750473298238546224561428255790094528395074473767808376204861471322276264513799487212436958072526417210313685313637485071427173542831583547775593082297409904394194187010103498580800939121147682680873454566282705379717139177795793854745411250633416738851684659424094024537394110605329237712027251962597996644215411904923823676132924385158339259025123362040560526846858420087657839316337057759935352370205712588366426914775140775332431758416231621214403563271282346140604802880400938852561033117597084746524232796122247755109594957006030326571336449072968161783212886671809428335197091387348675949162234118669832188471770940493495903411084381657189665875768449766556778904235650734688980335786392521892118100191621973111130292710474925818833843648233020509264840889037666529812284780003462885915121843842777193947399439929294701413304668274191565362493063594866073543872973142276651897110217404716279598644597979555951264702910363599188774512466562235468893253492083117102998500171862522099069981447181757357045787400306807044432940716488071581931970630263916179693398112547429503062061670408669744920343618721898222398648080452965694327703071200381879937029039171123786376298607141737827464841741650289571237492757920911579119594083144999540187589234032262036562480506712044762135668499512802250407628245519610073245249120445390288706520334658083013074532287156107234671445501782228741570103165878987182197889039528857084964917406054315714906302135190641694766017909877115877598898217727245696981440709674016305353307299369550612100994499536372367739275905132166985802079601153051422066481081632982527197039414384371115573420511644117162567731939988116826462092768640398262119188850733443386701986991036532874206852007471396081460061664185078769544920946768656388238657294597285661113587184469598948397176679610210940359474502853177959892879786427256205876149455823185865255541313497161157478682533416287654244921376847280176683757194191722634201142297446611470413630928719774525738601684313837282368448571118316774148798081130083782022832198650581351158038465013113385212801160079242553768155285205166028238936366785840667379183084784988561386047098522491649204911438079361397524023668591151565223748329488582710749804576853101685542998433676597379814543572530137070330069536545341516216616449923577471884300334314370814646664784875755000817047238340536252405828828021677721389926454436735110465728829500854660716227998425229695093246730377898968809373766735802538439359027188252690712159492210819973565884089472257282634123009655872970156883800145161961100851013328930471492562768462163973769612610685151938038078873132412722365123047821908955447231008433770284888641336528299078344544246409558787290890337885899449326285029337936095514793718005748098706055600802940439180984400530221159053944109689337457820926906770154986510054552178146264793478430281567773677170415058634434468180752157090465106335843906090582334186663525836320515545755989509725786110480713891355931602271067343963681679165926177942957561916859984686439860465018385119032789140577103295440271926809605755614166988277243294624123841830789314425556614328206808116216165670095407402630645350262986817356075527606365494021660472637212111415848875345319930823689528867388517083009662216371528721446047746492846145847840283175827192747518723410871143389098944550821944703390948297965558732377723719797453772060620655098908338524219650052653528159056882512713292352359833898139837628113265999744756900637870598546527298609888781003918363931655506367911093426070355190726741275532227007122895933955380762340081836718941604560372561948684731697740711980461205440796511264454119977798393279786837268253945815960814666667991595050743828822982235523672881272811379132751171093326989917807937086937119143518902427701768156785023695668625808409933513407153343387989347192136982118049695028358711719278254649201566925784208877125823735347521841413911129791464376074040146283502055250774578408545728017094231627990605952622898443670724810179072414024081587944310740301517572803163737539192716677302987279887079397012759567832138644223036913944811361882240461952695925436616296682619501312378332699838418679469388533298094673823471290733906508177566638824346743393817402731452542661516601535662809440893931387282999505938988178825754725518834032005005804391347842903823556639893659917501619949480587307589309067101181273275735891075970605092522130077410573675395922097853088814458500524875288055450153259948731880203862889109544968814428370297662605645710768831743496035695461600668101703708968497975239702156517643811414547035902415740276774594056789629885725749355358884459791299906229675033895097469475983146304047855900434166471452441765335173833081532867987985868542610504272710514479025961133183698785655640357490541526407872251693315529733427652773182153194070302242003435989537758998232010917725801013844497229269038806003814266298345615573748046259673013809004106073672832677765581638488884146587471790792145494659140130991457813439698500065727084985977055393889536582342926633200289537101094583101107768219026089328311861127083672069131680162838079591627972678965625459287894769689286053090561791359368785679371615554501511631255617625702919057223143240992417694833803888517440187762836486811459625893841070094611887422884399068563236867145429200610026517763190641956306873603659431827912327789913928407816106067344741735468569016349922722658382779568555550562332547741061032681319208320473081286771919266027093032329250951202899344600546929966711669924346904544290185556141888054046582468637142308998948623161584349104340432188493264116701544181252738015276544886554943041354268403851597008626911565945972462102464076055246736152553939136434492447265805961200020389232284162848109238581375920284549076502984909326057402932801546769543943779524736404988881657009904739871215697477720566517792999498087252961215614226092354253519309707016097128967767018380178393398729809578468602388324240372380103161879152203399581395389797178125290028712550662700269052328682568304485201903385106661969845609828303613413551913204060178963936946327703795499616460785358921336375769085811858827606209871386172886814757592353924571043610659039585366577724493346964508010341461377431670422622687073277182746671072995727772894191711176221812243065142255093390522081082418094094274139510284467672097637395886431692002641789327142972855360785599614705000449667601323031949061223826981051257662463715383557675892854394346176003665786021535267555231637547788952177327226156923286274451782482425616323289652943070779720067603011196297210587666807893186712310434468715732972677110155672513645994866667991283491842476275257358674962319839241491498914848321877204785206320760975280373447160051593516315325849443034671049755243325633358600549758888328831109973737042946890005292828155367296097760582210009899800977514470595970951397547333484313418003041352687187773711477298603319104217391884028632127433951766750097315791317459716780573997438519304070142739051644215428287469439830736720205863268464251683086063414113694639362601044522468359829563878395045336062226120655443267172546110379956702042919343847166562988277222476441773301885249024396778211544656795967476654854502466787359173570803121207246903609461646203690978454891673349674767573199195455131774552830472119293342342453410474325481502735261613512681014603329772761943414185688819149618290085096884432474513738761360350644931413843433685602472722538482262608290445431531769771224657565539066451558155928166764635178575486038397427787811068212760630910996240156045163561936993109444656015538194542418005538422417255641620657068209834506768806650278481393188020823199064125857149482164400363105009195061510633433382985217259013569896172737841669028018297932693542215496428180563684792733478109960902432384883825170503800892026147761793293161641767071921088968497371803148805403431316948124074923865573214736228849370176131419960951044048259823854424270275736859272766770684385170712334338274279200254602593410553170204082752394885262614314142042524062471368030799402234547068737825064566197410210391225698703985522910790629013125192158337499461006529285118225266607826875090454333787769168536934478778358166084416943552630118029830079953972552446648561203624405345676864653515079746002779301467767282620496523702212921976787579265360436870024571398367606306906370397888126344674027746292511687578611465339766979668225705935166867242264775142034751881341794444725160197536399680874275389482507009370042006884814584138664371476557464863541116426006789493901768765440886283550759289771311334039762376082166787255042287709969665041652207675663022461485740451847103930734268655691729722623037677730066627488518390514200831626805490435072800686643441309902791544451404302744412517137384219865528066905057974098734961075142548884938019568923031074892086486058398811302388202080757446734635113436536399276249915908904181759523690467190428521839209349682962056609709432392076289378890810914606277341617056887919158487211302431310293941601627892882054953271067255891035442515657436056823303169816037529720563856770226208761235106724733473121513268261399383834538621879849674202781316901973435719148392215485389584924307099945945577799846109058621795962155180338948414043827973189843139431615508861615747111783510934504950198810838827111991910135471036941444975414430968942975610206905222646072385657967405627110377360534205897639080083034579322861396162263642789409787014962792847598779662505632838501034369614138722992242725013643296312414065734779696318097286662886526731890830841236009352655891877379253866468690003402058715426996078934009490300501206807663893853718713223620382291969729262633684269412464911950705450004576070274036182735209009296343190172063434000550958117446385461520228866551867253624262198375774727162368385167524049255126529880391893823455547379668983902834297455256742271545028154509980077452188099472978306213394420499255281746933796456557690260842605855497158334400287540114690900371792799701820213101855589205921363904570653626743759470518142627128093708496258097160051534845240083803692057023106282132629657209438436524023177038941282836941133108634982988111259552778942509445810890590585376631254962563086195350774575156698767907228808734529464993849624527932475971929933974697033014811278647479590026672717916530189712249505851712354581488565018647812873739856521907703852055197054066957678836709559190505300566557994501474477011129077308015666487305339758950016699055781836224681945709576620255464940600238710042988359125196005649407092436080251043077693087315153478344193728658752937390339769324166117074561453922949535078759189104427714444437098568411147335870739351918692662281975032872515155204595103795548428861725829491042651869838038122091175609107784676432222777223781687921487553378285353521865926494235468156755932575846088407149256356749618047211101356328012317668128830117856453597159983847847997394571715851184738800117486716908958520168164261204573040992166807073059849393499954486047048652827316882007441895236351053216251716617792547009423253481455920632726308522275856439045192265525237110229859362934450788068911229275766134814712845882114000185898920687096809876547746150741860204903061832817417894358356983795326724679140820613891359753738137613088028324043732925438452006649006943129769781841006938534952760646902482931835986012900816827663310224128169325188507217823979134477875820507784012437523171857273100621625592189760026351507569175647114415589072952072710414488530524762731076661614807937691012173295192112629523326645014634114529548669055147159104250414154645570138232865752187490830303743456881531615189218148593829648223175180407684408930923025619696191605725210975152329000989987577367786600949819271313607574334588022341146611304961392169427781754676029361983959768901648151850563055348528774211763169806200177743834252519810770782047712960754674183418275113667196638737332431396433684954396456374116979635301754764173461107222381199254452555974258380081704396584897852136847540474286137871272881715330594353558443262478975020672872161626507187083436409073199097800644945198118377681625147408655872290707102781888577729662650762417065549612654708614102639702540900597918311306617607460076268261696044431660217943105709213995296073325865654892352729415850353022252888654814900945975586325582149690236667148159349813756947410750813002230049299138410657094214811343914477277795626565115050988384957957512871934844252502933099221624966084500531304803324455257974855981390806954238839045564040688952594729032003724107061564539331817571359810810752215079498391787985251018490733763360057288858441936696092743319811698867980383458584122818185781684946416439103610239844158740241654643288013667722530272761890263652484243967000158964117999798439480947152859419285809344823858928274963217468141706021495969312456951361362146938778202555625529740596639224941269947654844541395172536388954981127734989370130776807090402862782642199973959738612711072472448058196133056258753068854497960006162971632521204132759886803019029281459616051787516348400266812365787764514462508821344838726279243226774108253115783961193300183584407147362131955668281068440161868413863023020408588413551818233770914948770065841490729320909779161869250621040941473833028743274783502629355047739080238333522026379636517038896174224321969101498198348489487471422238145128209846909905551430166056844962307508376509279496049039436557980078692571580179136446018412083262455477483046421638692106336409185055391651663142790439832724751683624395966353594927661410551364756097024598188465360038492924268642947862303658014445099397831052721941076969564862372015046786617485604348987745739904984641187153642227394476928179713431567927998083835339381364225811847283774449396458869729553500345771383394253882493778034475532993949035076555630720639485852473331673542910590262348858945444088965057681715243149462450614159416942851111076461347932792677725572655074608383971179267288101166556369614431760418668225829666254509645645055144086587842537216203593448865507648379165561677081713749738341777532538939496955843120796539849656893260570831753997621030388828745813556778724245943939987635407294228210303329022803659806922403241308806745184826555063177336993357333159143466417595160616419686726186546554353889576413775405144725685957669465651748913635837862915217350404364455696006436718217572426148322197685900102208900464672195431124762148493558709524755919768501664898412892194285832953541108860236049212215635373996885554359166820451030812965789899033699708815268807370828404985773883235490612359390874779308149367064752424707150178886421994915755493077347711683280712914171571376226968215958783717248756848723761110939213805937988146273717738754498958643095785325944412470416237073970898620217812164067831564112569264286106012735296026415273837138360746482672942706172039285351852598503491962051343709059427540001734144351913439031870233405708101696248659249578159788168578663282732806381463553574312408452258946647362104543150147213636674867790445636213864165481885131036355333854960310041892455622148739105748925129739173149196426435218059522547890196763514801010176732416248911451162219673341587137551877479606083115711276937840443568616176861837696050468794145833618770772640190253383665439539050842361003138516256355955271936181582075100725023215930831648928516351034931212201593128819171272221080091756980406864843001589856919651585099263733567290030527616964853691363756868221137153201801666995665774107147548227500131037243099580293573874286499161714214746846933928436755613583547272627879583358714894001741546900662726768539173915295251348376590111436913067690881774737189286487123469272371173837514851934086203975716169150980082389651102362295496483656063293227309378307743206984193854159927328415499109635669172738670476623437822273422442090168785553846459814602033180395785659752494130034204883695290896805051676688438964092356668075663377559724627741754995597022346106743473353370874838944062341012008351341082311371086102815306987345694826622343214803270096829060744345830138198257618523989840146994383867492339536686489327780962730799601048349224166831546241424333712426155284618811791438566852146671739845112794418662174815340005644948492891503822172305393532368392783238352059231380802902637612772258556806196953734689327819518195490297064275257253394718564819393214776399826125868694059213372425765446937058090573063435829105122442772458451051107927870927190476962323444921064966057001069551310744840569387430341015856443880240169312472532349960113583842822246546969205621694538004103801731717048213079209171690620892245235985331502902822831489217700882623618195966378794362609217837927082944648323217133139006623231231485547579908633716949510416252112097512636811340973968415538480598989948596619364884706559726394872908086855337017216447160528551537336983884264556403781387403603085523238011598509596355948018622102769053051346167050448479060526542800147010261428732974235903976429882282318477113262273074692631655932017806441085314772663878230884047192077375234701174131126803027515430241106997555602978380770181264378148857007531328315769504561998372193264154884512672314713804476139675773871530089949636724289738997370319407565489659764102008447256780494185976694094078829244339582559176025160516346398991788731100378472900167541585441471857450833578217934056363921308670411169756501587350995467333911225516603104146423697047464835216442107992327927358259842407892263362595813469902474850232979217955911049511485879694011439032991107875600171070217690213109642437607665241025204795364003829619612387753759415921937491779029353160011856207511238511211055952201808989677764697699372677768767308836549320270687108976299712203692563302401118896920697143459752004384877456801790470602540558316116385200905877254080170748563351816960834780574599441030782342627880658791861220765464838021835513292374599419808798819969270017423037507824336447262580451509304117610368690475025379429128736688758044585885934897020322919767085610744784106131943587842501836113976025512539136497002948870039994433496810198591025163768958714796097578648400342759684922550295225331790964059971632775421551972347799159681024206630626909811074554312330008457467485496084070474964075014367201810891333021743702214340547911670099705757026338308585161442412092438674686841247484047482292100946952558246503554697718165189916668798866647680278489966174200313588451013776933079493273920166902214048309023408424052536846013539714193066450641142520809726972937574639419599857381058244216145575747115094207283251052058849419756649196817754868980321642882845235212492379683796978677374540864663502494507972405780240997114630328155148214534622699067803143566918855362200837480729001970797035431394106176638569721309782293028210556163461664254451981871348857362272242505315426787722889600697494487532328550585018639819809766905325460306222929223308774078203979928587566246838580711125837740219697965810137958175056637136527574292686612316986609426564040570560426581686865826473855477491468383925207637328063965143029627503800697536277622043834842016744019711366912989157817061010487073226541846804384177888099701869093749622527751620225510542679158144462654358006176545188874809370015195612537163183769430779369346195553486026255095330873461791506320104243369019760151157050014877965277166074408829738019508387176067512854938442909496287847752045748508934809152677604238299888304719628096221575296097434475726228408254423017395687499526778475430514497462159140146260744816204814535924886943960906731479762125482328629329771052283908274293787726301041682675026691446735510116469645421617098943030301817536091959896595118742975038219955482557783162867184616176312266806791082775423535686916984443543532107548131175559363974158230660541495144533643256313611904441121823135999217344406079662746806133545476309677800902112526198276786999519838834222883548793320121598419960485969451306481368357680765079748997224545666471154203716938923357665834496438462323648992191300072213800627883660710785721052845456923227816225249810146402941639957633985457646981227710791696085176570529397037259233391103093213056012971217563404780887654960562028804392680399497536894497835395621666337149635392555218502147166444270156380267822417787354792872320927963908095515942256604007107077604390620227551865491627263828412310692775047936369921914068962633595648524876520958634007785492418019791212079358118398453599961102888341889755279060043204683909341336276864238726213964795763468754955542783797843328613707235741941311112608889829671095587860174344698594862794560305389788859786680803542707994025313791798850896202345618227941017597614825623156366728473037856273005959284819110871962895168546795566106559779296085513109952104023167009608026522679956147799002425370120717351870146854255362812577495903082232033152276074592417286957055938464998756179519839551359429312787619731729830848915853556325840294607048605241102880356617185795185539064075344165125843013232804188270802145397270130772010240004674890981227180367231097622780207089457884693644702599870743959551299225718175939261342406899441167805758881356401671452474365864139908575191562337955496865805064375762084315368715667081585296267998490796594167458806454020933154383210522921893232367484601502968220869916387611227659142390293247584127669491123244616861075988114312089915070260798911171638848368039938978886037893435573194376331633989703190855474554160583043277946816533195472862459527780892048098603431792924844058211903577889747426060412748154602384804045612887239315273989433951446327532042104726285911089250187152884638161186718358930161532678029859696841978283148383610492969752391758724337756250319210051158239344351503521962879024326528332858196651053321615867686757456396777224670272230314839011387074065572935619859092471584340884970039117615329312869259995644554580290513890664869513914038292549972916653753094911743860349698294401177465951696247389871526424872162622170953330758513682256951776800323437345514969233078928118749864426480210899740815742905626541799322646926564588308056819798275148158603628502740496130115457326117349419835830158990046330674512586932323181405469170476780181578870245268250351996172973866461180380051062140083901120408156904368627456870130869100749019450209102243748981155338004485803124611404059879661058402831222493767540808623360705240984829853860250689383956569917332471855943432716282859951330455403213372035170368030282618452236731793107370485277414184226977061945002371780256124744343407752537483826689694787010681024992672733638065070995394688433423158252624570097330734949076767183855631771544014694714383871357659977961004345492116389349241020271607093310292828888116120144388505830303993039026643837521400363065654799532111788104103165662424674055335506714053270653255224403538219637349480910591072362881701557620523541580522279261399282350640148338723679300010566857884633182620423970780994999576796155139056715376121990850998722442803763026904323255080410019225270518247338957705219080650786176106676804670466222563585003782311372601100179152781859689264781672897139405623128401862736378633702873596796738355461148812623921815298886428484121902102356083065657767886266080591312870010979052968323195562074810150881097289248300625893374807288170274531830928576052479712556842514490903346080712926661981794353915882573357562630342170093614326909387755089262743105986781088878405864718890273986971170832489723556991928722643787092669548726007911693613154816099992568328137021606679748473840027889636228179762300574535048465134863835824158001715587271709167289683025123857864298126730802486971838833423828970293702731552649777166392981304762810873926055875479171400092834428142939772210903995212934148134706092951267887232783324760797980549850172381557978985701916430068943982552057910855677469675926070337181017091659369344050860631761066549436701562583496943342336934366834157376682450008202074935249461045659796847257693349344318290021572218411795649075497832487151290114552504297233514376472846180384966735052696328075375361972066099139418964956864913793991906120784145257699959235383429594519313770257346403033025079359408120899296445832574620340395118635000815414410136793997823618372265959471806967153947046763946865973124140779676236638558158784745548951403995983033269986425604908135997541588129190794263188780764626934105804406747246221824205166345265421192967114570296716217973057597345985631742068179339043798700927686574980056766590817541777540585660842638831002703705621361738162666915540755458030409308721394139523751474162155114162720889370360476074467783164549369821175552894414779378510934970315733216520519894001789901508511058616458951317442539503370898407236631515048016352332650984485729659632550134660968034453915155000993120131152354752727079850079338421982816065122806023182767041744979868768894366446357031823254055850297726309631275073652531861662043125805770653025627755438621688642687092774719986469384341611707609073142881116440578046108828741102732423348841073872034159093973897936747180628379665435997522075298852176778975543807790524442033085874866127283842503089459628089117364747976759578587097635006874762270455946811614332848510734380375460955691894472621047702386166602171542996846101753445649758698482968799653138470470776098016848916418545008652847083142281358977418455665419321026527267729154440921771033988615230939843106799156863972562435629511123004488334232653053381735298977241700538624346482680750029250115278076138896662756018020002308538844446816428580862325808812160455042042158827647401161858205545554109632243402086350308112773874785599775637373415098756607839866662009010217415384270254947113269752007501660049166810852217052661260003383299037902953687937074539205746691413621775257799318042893005013390147226507684661579120790899858055069678770216412847173614957609152519934805152096423882114929904489281648473135575471026844069704595086121629967479469642520935676046595800821065079595670955839385308505095551008165970025548426402920267788106739508466455591203448113789513631271350493768404296898179489312785190161168123630358202022393914728306409944585879872226889014119802353590485483837052069707097345030764222674076756187712602371220274556239824077891087302108140537449234732508294140652833191149501832566882008756610377500619643409829490853116932382361253291230874035978758082137648370612113157268005643062695523101321926611535132649950643942450971573768003663661267360192614992135267321283484558451566370888751217267710447902001449821114694722088735843975867853881036462210123649830864241853019773492784125680810552825753072691697189458030456550547033316231026368996431962379011688840954757615876458487983055931067709751532445991801047720686652731890538807886129535560357870618342872251263931016076679513067075363621291925183405601714313852705394171182224579288709415886910866485856175294447835616453766924301822835960955514957792521315666040350311228854030877449617392807139727457105663018931647591817470527235662111791315264339647801857343287528954241713160978401845138404804379792489795339283931064838603081831970578717973851137702110656966052664086367957422150432108899465491349879967377788258874902756085773087882751429263352972050640826930480225464386982730290887658336634674885065244994256110396968862787290923948827170716219426166673009781815657990439617529950329494524299143773195254388337399969025549232675435802007932981417642094782412314592358352550507540370249131760341076492790963789681219450324970592536930167891956179225747722286146029134407439487144500843531656537800915310962633143418554921792093932382267029136760482120910899743624485248517196557441898571576519103247164643183529590828612072476951869066281270221340863257449043123001409423318769933078514102517631436501681065751451911919864016783958842669467482963077716998307887419124387925034909810286974348964926197001503032763287176315603967485233533867417668786566870740488475029791129291074507806503779992596024018973810705209742643698947866928359884413515959113792676907191921549313483693706147806206482919353972831341019424424718473735840766889652367874544472100319188660255328180994558279110727460208375670010471947412421870694973957690521890646614374065297335384362792845826614227199533575711535593765233219865117367674985929200792979568927651963573998014192852319667424332482436144679776271422207153810844596899761091897129882621457672186788846884572291949494973458755034105538293333100401459176769430710042215482136667442252634815281801235148697785443469083499012150460732959154904953892483233766741779281768820966947204844324062672900111377936009630416515852704224109289451633973558370521659768342519252750802691702354692044757164812530374017876259088861983015888204485113127597303420719702897915184928482325239364064063830534037536127737643053372794538660668759742146304023339826319377474522167065761434185691897575334053353979464863514406906645977344370669214484017764889044223235370983913588026147871428228209517916898166421663276064994320545865216226894448826095257903604097579637954905059254869397488383851986627512385289467129304932633610791300323602350880318038237330602948003280648961884076234412094690696965253334189120930197794864456112462912833284431382629195486041930299994766782616990277865519950585200353617311415254196688493797210497486377717594559624506343185125699528496959980410381478842167110060273051979256518516146627614718247490429676950581376353069105873122762804668557992538472647155296522026341850914041585428252302698149047532232381921765379337207341525907994878376640923511161760395928654315364550424344166287544571541284956626787677540184047476062317695703561210372980250964709151670242278456369605521071742775718249061773990629115941153551650990279588566616554734011608482962837050684907756570079752087973737662361702909928388763284613428766758960434850561275152501468964825749609085220036751978123193259685909515148483572948468292394813464372336531585297635778903316608352592423419997676662252306120962049657286367819368680021847279252560761107396704954331703297985330410829574870433839238563924894467423600977846032410298365036168714302802934311865070966103474766363841723879104548660428322512393227712032908744389837148552153891749044331791632366762848701656990115427531083816206022783276259117186567061897558973243153475969067738747443870879624557398349478806619966766374217915157037669653369551878512461564222710633484105447107755969648598388441874969334379704624457051388956880328607905786154039383909724755624304883962569228140028982616220447081609973122975894921818220874374845297552389067020344599576486528825020856368174948762414246891785838454716160729768715290214781449958511931926012050966244477379369562470606837963765546324229192714563671458834237538954587963291199211016480491424576841703560425118899045043129793285457637802138203335599883427571741134200831325618316492799503411268421099966952440486120325166333387081134992786411226949730907120267107231245332112833783657594004106852639340123650203815966336403504468917290993512776252026658707737268394373020133594207475174074941139545387391194725366718597036079670649299319263032845382817272301012354898067400798996764815064476811478883482749055049339584688384866028001179580895100515614863912128405925077497170441148756322214034105170449892692268470417387374436738506031433728944453101718426571316320996807849735307170978946022618440339550869027632041954882146176821433086935482869912874659847136632142689132433257276043530063577612151324531545023497515992285385897227289873178689900402209115913560241279843585907785582034503773419359832943818841275867371404539935115639652812644254394475368051727356513443933481462773068194947539601123543716106753476355740248455494212934232456746959875887843498911611067767714252050206363806759190274493354481830776708547095611408551147429747979836937602397968301613115718875958247092376354991406333355153954161620880642716570019747428433863894210906865252033294505139180592805169793110746161641355579960802489740620478076140017994269779884331911964189238909265805387411905712929278911417473268711833604780015976438614040296623701553788772407694162593611052650708849242120519916401911235558863630389718810710650857071679881637111804055663950741554733036800906218726572269657757729300830653201953576904744637694264530637937552742026818465613645662464394834975751086683137585557090512547242654364750949958849636560340906190970668098994793034105875064792997142162328034419143656360510420978345705584599222545793228713106990482673767601332436778625993306220793078130652277818826721830332780599028598881911630423561725005507407224976214671143478248692423969678942090250582685415470768135325886522398279298901610955398377282103323588070533252350125535226457019566782394656136835823063893694886804735285703381321272452063080480249343584819309323927432835168578510637547902871973555507544791865099496435916251281725881492689458248394496325382234411568584466126103637954850179553062405653069828814495622434956961810123570896919749256025826195576435174100741041784018291043459071883408176896104482816302388750799274957818090144129618722410986083666158218349397268660989745561695167146634921416158184608765241751651055921955577707608414642198821796798683631930700742084403939279499524453654909811967335246777570998431216147745870917128290227918333273162110850709253721753282558972010042142592843886644669832233938713863909734265732035951505763795670036694139501364674459342411310903095659617506606830081335044419667720541032877477666058144695817817392794599176453164484149537771737383196498535719233454759639364376431461798240737385923739266344706794397505001236858714122128659873371048688724972316864082173761920104986003209210033345385995788809521477920107004637616866224690918837553346734314866163457681307143671548148738764734708009419026232344003832937810914623698152312654760739150221019908818364809570657501815806944460447972820061208725855212481855767447229075030179075227887724493245495722567782595232581303875302559662188213315163774249484442785897750728062226729120219430331318575840036418708216783164224517671309577670455887575728195275423466687203955092893293268388629809649879733945687597379084012654419841774452215005398448502390445351097439143318485410405981729495024875742230682441587767512253605665436867422386995360070145777337557021506668114215156613482014208465551881649685341693432370074179803145631370022037297183322472482317262871719727388948284503142615945378719181513245866244930757645585138178464242661360644386609904941176579984789738012015681381038426234765529136059617320343767469478532965998411033568229022683905288444137111536580031975948250320968660311083334196680928590461247107256218965288021653000877113395620370568164660859453955167015722325897668732615691431019257542406589845067025189650629805312436597915989959815995841418410678161237205898987948387171591870250067198369512636610056500599308957003003128768699254274085102438304914677200241167748738538177384484890833393079259954445449570873555435288180661659623447701179684745835116217651729778930874068798518587913338788695166397235126464663049156184257160351705708826493751578987491859631179101526199773398415336557308430896240235552713216738783474880705671039751759616290454676010520686184608173502136106402149433277048597556088478863116674009122281260580352989765626207389554098469619287753544920602809336152581437790368245524174094416829921309846051046841181411761288181214831725477070407876985417143652138113309597011446186105084839675459592181984119871907907631838843484241472789116491001585789029686704656838313445728745358349368688481654202511567779679524499862193104108834031334350476851348364808265204534855818428382430539389508563936105156602035510226831349092790498796582616662020900393824848779110498402853133711120428414889050297620953089676977558532285445719904864049482843237302651804051565324811149200645454004433427213712825729050431241934560639824229998018569350804531046012158473464110842564294034940503978305740838254768708510909608288033847620589802173929485444259038551350421022178188366274720770186621845502714426138401745736499489001062545682758228183162850964237504718569146891695418704234228633491591059026469535988471780486930760895752857212066968515011740509668061526858988722028870129546844422019238772295462588279868421112470849822976744385918995748977075402928569686435323970019944642317405123529850026943671585176595512634131739545934276496859983174678042614143418549004107327803875327318000759871052806564365730118758942545230941719752470656939180668794342128927422684216528797915081675598241494801803501702355068301601038894226332806153940812323580988924165411407004712646640705415464312521098129524728184860293316884528367029298683987453735047812200098218437239205026204358350876460430431480777139545428286043541092917891812301948963399552409361907257561863810089126743631679735656073304614281492984182815540187006231597404240295480732307112259065916537787027319533076461718313161913040263469207647206954166288356077447380010663905708767581441438385174485360238887924062042419031754320987252396381006941799014903310045213597356296402450846418745584418140616296487935470373980114758923680579804314957169101097091697318356811111742280294548813816468752285817315162636436876489646635180641368961976683315137172904207013313454269898349228021474349187832705365522235926772221501142572822442310772991196293335476465357689879628901085456489193029301719234932629681331931381871796254654010551057244137434558388475776298742521304944016135817678505987631473257569862962679645167249035952524779537882832735901556866122594811865837707802263024985056662552061347262726577064684429172865741310903580783347406491646899531300424322325982411083438983423306076523001202404589695987886571860990223863937329954731914281637005671448678148455796943870844758542822598696428082701232119019758397297400381644064353396552332356285918864328313583812577806652072715934224761934091458578589455139625970819464035428762375848301150374278087605705567895867194887536016531293976081446966538175503314622239996971620351978597693962237511376495424350646384881215855328325109923338467682732533349550630479784701528572682242063669689309659229559118216370155850123332340768671748651547447371763190420669721467764432868800066766766548788665123327744505514583658633236663084018012570538172835339254036801001260107348043181183683386924148017372950995674013947945344544319815170033964124104857563331500581979831667337079216380513628090029115504083960395661837859766345229137248642272208071049143058846481358604340545156568140613567032696591235511234246234280816251922125454301307242438872372040218135645821589316510762217448399155335357892560665044719437540072007303861704853130032677308547878506895787969818384760002505891250822485630339436067326052151632473848890046545638953696096216641769917975555982918083724193378653615064332477777653454031374932434223649527485949096334688667886324530616228492099384782190163471119051547901669392111102620286868092034786491129119950260482326645046365454018366442852769730491024603977598128473792828951096081868322937103905338519388149567918303109024280622590584841327710012477937715796694408169476904369577516548959599953594162762376130497725663255494740149002840818300340815458773417935725281269579751637213274308969255923530067832411274030608149823860352153523365847584538755983213278765275469369316862364276674591896439730795358252314167683075929472182001665985253053521362302433106935231443821636868708630072110852196147910370703479656235912294731293962091386366046604721275450386718687404486480179630835029737252910040986492138627094131950590389936720145905485148311530784474923166113251069416028840615458771897591763830903860553759797372070366144869313932573484592680572374077950477224039287167837806577328314010562792072771685671722595493443701766070932017667428224658973289131748275152516427920951227011253032727562036111727075024172998892245127798508852168350504480152696405530788550986815086639412089051856841147922186573394368835117110227864314230525396236608612590588450463043481058281532067297869142930960359838131570940351903297221896084604123599514231868583793853193493331294674897396399802127263610529099781991105501617552682663046325795696583340833959616540082481978187661287720865021059065262306145042174479238063361976866450075202253534674427474948036224000362759526825470482089862047219100125879690217167456118378200540992639338273563180495837930258341274126680554817932440085747563696953664914796532188938534461074110526926979617937415255618703121884465226123067341801643937787578365097342222716858353020904476397092701827676374156489546225508853248489749441551776323827423796001465328548946827954171797747899328429786724745298679731032249080122416363323348684976138880512978256656940139883755901343089906235388368719845189427638944669875900623695514197351032875683078992606463591737219511071549691152941723180039092275851572095639875188777979877467564423932473564404310750782576721978913730926317867783821068459965332436521533384424563926106661323201272774881455387724044976097276502992464764195676588673117492675378579578402980218216684023896674356146922036515481553931057353156722033210351254384420009799514491273067615697216940279825682194447892192702954736538528757376087125874326529763519595793980158930394711544962024088867989767075969620462473756143866135205849230334084895108083612539640913280887486414763433007173650347173588090989250182819078393561665964587919871241592909531410902914005650693789562992771346282472991512851466021299378840032590486853996703567646049428129778245124768956413968554067602224721510232679920053275640905087956644485420716810151415072249149949485737571497310087747067027777073954832749547088940397673326346723901247843371299055638469197813679541551535757838675694775870412697671715694195795947992216210151223636828111634124932943090744355751468542449525126311559638263605127310760284746313340409966498606055231569739257007000528482928806535613600659249232564160961715174553756192909901728244719571145886199964603935360983185437431734199657602180232012328290673555904755592476987410028383024614520921322920025744553645964257526964385814206656033292043605095821151645217166974659708370691093892579210439530842897059279158261655913874276682961803552437968834767573666252898292403327756569146596517654857025668174290450557889753156698556404132451730170731412886146775905872820398348703836175056690841819383619337249278935015784951248912925485764483004733324326840027765023531245270956142478836480921352234536661782619565728522174449967239229856920107490626767907732651959585883989574513623078366757051011344593850499678489681519535465167594778094994979389787490844655187511799569995633289834448207626713148560738144553350938939393277921784432378971719115749714983537262009649448629771825612819745746126466342035891407990260935631519013362203741583725757415796686830700830621944825000836373441315105873689704478667521659506009474508441675495387927815969563986755377913484695047171289821949954080470128257406078227198950278680117257359730212584213142436872901425231012472797382490552844635806775242087344590997869149284886535312983245221244428047415411001915338176587887333373362840256666146622170468026137639848142656014330688506109697241579751643047467258849164081896093694799884354464306000007615436109105920052661777411807249697693001179939387130942032180274713937295985425096935806486115150511498258634602602327727194984137573693534245459533933459208671332941669640474276400061073805771559383546408268805986537586441193164925274764898581901362195179129726865759504910694866483984899901366137128454223334262081283051102034182811907698860781818035379214619818806223544500088907368348495848975418920569312953975541972714920901969712928101062908500315783830029309559255045397090158185644769730152419993258770536975199544795594109100856577179320077791132875911225435285585550833154126220918196915436631744858805352179952456101063027567988549956940391445310190203630393192702274063488167846586021966457941314354047815697057825871435217572945141804699835882832667141753924685747116993962315725009911468720915674927065694292936640005821608818324430248137826544481704243756167336125843231237588561508703969811461047892363037220683286479276251320145871706751987376833300408361810528547972019983900643008769402847952582797705029186895655021607104023593338399930963446167062503017911587929477195076473907759825201834876218382926167923101265267402835057656139780421365240708218707118088490464518221128026751318478621064315441141678183184178827024864765066918257255858424164574377094607664738824560490005422426372772559813395154302664310818323216526837658277197525778156367861531971217012829623870453108614404264743734370558924284629955289467719868557150910150583936292462591273435457807201239019944695526631251481497057221952463001998451909804423776690470455873036667671746578256236299218071602913067288516408034642240312285698264379254463824471779567574036276243354539457083235719490619641349372322973816135666650069855670423312730948211200515181026324087339209326372987738111351614937076295291062912338856112547347174869993800637071168345963470628767220540086469886926078090400482807486378751145737657791531968866256345511664084891860016414113787226054298774429047855419707913123674635314615154452637045819562933977267500935855622329468535856491990323428033447622002415717650462009761281900756137892392785324472347539921367726048306475771670299047194015650492763921012587164949380938647085760529052326506676392400478915354925328189310088679137021064276326656877807232183488414383471098664159129272824866857717178030639384360811285992993098110621854798659635407101121813325759537432793775340431494394969689624720056364285653026197283855011720821833887664799762907681152352032826661751994422530188882448722493175360866806790273885822154688320713443028253935720704045805769506402780412415643594366619698116241055856299814782311073200040234094850675868890350078584275895665352106211668637251187974738990965209431652807317931877769790089496329511798036794919989042481811608713681260010202453724871243810729121115288428684768066269607796332172000330879598055736623962923440407961449329763151474468599752299331114624495820061518922489167226504643741492640196781049494005933770565061008196301068158473851494213554233629856664058780092473903666482193268378697066570452108305339695239169762623850863135404091288440831317771852251032712176180898079130215708220394313196940719440455077246845655833777705417166931743905988326748887796726388402888360154629811873350629220452261581687196808764093547278287442280715408259986078019680970308035034586034900407681536681697380269510811328378073301914706475479241672016146894194600878262479282512013490580596000448040547710744150883058509469048652662915544715114728662811792298752994099703686122454450730066646716613596833919456513273853338721433566227949673085373433836420403277455510677339638222990397775185813551377909710850440431134076564350786342876830930570475796431825633429658908289038904390937906246300351076614557620981601873900000793938168217859069556327280176298023149489140376057320753152174437571150266568624162275740895624801649961956404928000471389062912118650647870330980323022947894612302662312937300203388643870553777137622771331397560601279400059977631124259925754269240256642481696515588388953659855536170927619404601455163490852585515986496296987247096253202927567123066122218953636271768058441597777659953167042620091654559830548311178307227087386371011840213980889414657876983006365333187509317571343861339564611819345918534685950203744169110266370334226237120522697018028351598392982757206591647995201887243795242159173514258290745614723254294161128939306354326924404645312757695729233683098929301413230259790103285901875389216695545251295175310951868951392136907449463509287696682051393053564687400895080863247196861352875735886749773522989995764269490238645561420589627999156748065485406972389075220182310090366803753127083613771170784047634878493854813819034715424824943030369358273740026757117515712356868858919193781537115936333608312327660377993473290057839680991204194253989249093372447052495533547575130080791373374174904154716528341384025331642946939492843495938405876142128931918695251874424759861632203188425739082455170571652341366698525895345751040871827618102078936403561571125306359788078338619660053667608731163209681926577773799937324189941712946293379379404133424232338386143129460270233982488672300602492202945905827909122583468720056537496030353513070105496359275949672478158499876848239791297252634876600071401461934237391731101360094702533415584176372854981069822753054249428556225132148208594542276240996882474379601823336317597367671197159866087112364779168874678533682563309607876452798884399632500367966917741091894512003337088885912956754073221093316535387461754566117989334746476131386309182314485317852079959019511520806689722781317587743599500188984380709800172085523025910115138274407713780852368304807621606490077222452064282616805802766014559323429746750804658645929668508597323619026701628246288440071894492643573070464535317053718593921481872688029925971500347345216716364128642819703566566110551113219954485547123227204321500197239931227107536088834962295321982012591042533869353475917271876841606375724792435252149180196426256323364541862226739895415391124990315284086571672394961141930696733287593752775070774152217138651794568877805738471275172731920206846073535270204189330775059787447091714027382580157696828065355817210517797835306976604160805892984365136004131428180673037799144821637055408164106147874080451866352123988249777172789359098938319635883264592263990928746102851860824034214603321834546653853334931960557453824698870293800631480048028798496013136399965901846831163049843292393390582093142774961990299220148422998126427795797191446798849194615393049421955766748546425163370869623856022772714599592848464473480142901551336412826842018916774990474139872380818457696840400360001364619885542389260524514405144979238710125145065630139520952664995603150397441669273365132284793044661393577888353420371383728849748918024201620207184063747051132932325079987325283130449367481192688318920770731906963309133345733818961667297150512928935205228106534109598408381975974501981087342884022709684493379260488754423407810759638586577658305684327276192768556970790006053389042621079975555156877254580968185708933399481265763763051381295321127470567740172377483902078826393465215451818935880322508907078795874119095999484366082292825073779116834183048897940929098515082146951380206542668789293208996512334277747559250216835368511868275122575833335258164132736924354725709164811535879020134134761409107843894453868720285503996796643831131494702049164567619658932775746704042632628092867550318798835821542478511533658645329380485018053595126946884919726234574413778428515398833335806336865865187639014722176325424576314094619908053669856342627983654113507018382598890426493062501982725997597398228920609779948371947327748683469059162867001674454864918350982516298494111890110544316021002419199924367491182372688047827226520115768086684777079999586144158158050417476514317221863999896082386230620992504241215947334800938173805313277411185035115790615075416147985726719757406233634590670300608866728428796131541675930417768157008063912983404581358205711198749520195885712430514253545093610111066401881248756884029207204552762667427395256549760071591906801123554901860191545733964169709612884909316438688521820571045584401471125317131208446067799337462888016200180406732392096692691388582799314804023961212486192653305628039960035162989020701448687499194714174996714025295942599034103402236825581416723892619624836823903677376200204781705304517496443257981227011414643225268986316022975276838314391146495217387321263559398149579134080985653096116524498967441260326834190003520751091384368718569615602416508145824684504192223633653482176533093300410430775055744145935777092595732131245949129595733170459516728936700721784031160269468862484233887429838877127885914658168344282635324898894123798631128648036663335254711744626333463702945856794031466699483954889845200641176290493073976344367576656481190619973191822987742258793403811394394400189709596708339939368599928501486912604828116045258752927810927232403719934898851777237307737026942127574655345836888711394392559520883025700268756516008870517949790148613015781983680846568294230535027050115479240096521925100260498833391476250766333222250354643092886148741865639158752369862191125902215150155308654304205048309490849688180007757607447205234104961491058241366436316806510322938327044629756755455459716841490820786149898861497958062730065825039142549350857666564661337409165343990028982065377474946159934362813263631995261248163262508317021470269690368666742079191097681582394626651704018684810458174014804234665064561479494444040225271673655150291414302170938100173876124193374787530056384399344611860881373142397439943912441487014991267918768200202988675821262026650513887756514651673277111958299240833116820663260948648144553045749857012978225831341232062588418737370000117292265603749825159824793654856816513354158370229580333143823251709967776271499535310098953214053096477809504396299193221506508624357607731978075036141452767408053717400237031747703169649989876170307392218567518551783546984005128567655194202964531695043626364712922132321824224302077105053224667158131007416622731182264593564447492491719420623025014977805182670461376418868526109828557085464326513989533357092278623021861399747700307040901665176026121271886004997556678827555055831706922834775832159386774121816651766204411006016649254909281378192433392250431074560490192035196995542048401135788035543534158422960894319873546498626558458032077997958385516931776626398200927339409261331781661405825474758918770375563687434503359221516992307970431760537054091894364850509932269433922604589022324921856122908410458235791884130066462976630261167734131075043242848017998903156759201443761296039437540059183459172137888222088123110959017520884215070546526501143946191494263351900572761417972497071991626302464357920134935667800499546833388479015537337881524145931505101585591767335477495942235218469786682222908718185355136629518753370378082675875828775648021438869465805498008631117502501632592713869782544002197471459243649255340502301665449711473624109878267855445979124381845334731255971748617952055068096694918429307785761160858346554818321889720107083401500892672425247174101829945809411715525235312472254403233726960457749894307165837978255905596436931898683294599561864219661065431501467803534843425153343297984176803158916501608663390148309155213040806589748221644137596340242839746317787699618707453360274421278127199138969607380968726872405039926077109285546045873280763980949105340792079033141670723036322396932321777560052202324531620334977528988873422235092777069069921196220246733731812977675534858185144284725031788452592521785356034196455599444063587642577187555461428143829371557271814950519051542845553250773380580087028283784602089086616874217037524862512626353065795781652734228516436029552681231740979381180150672781119318411266405815289029448405590606977631523543732662500285318060277578213294052400456807796580656658853858046551931597307965850690963336443160501436901439378425556585327410449525244332922973810605327294686522499750336841609771318738721747259645836596502011341913677871022128518059398619773510567931951544877790905344236232157967082917624152616406906770580645772906378882386417662243543596873055046359054651046618526621651644585042393275272692107045843823989836209296023721590238615164743673648816958375091327176388271199350167753497839724671786764924978079316266137796937390422519731885163521971288992172246983799761599962026311834717598571206545768368508904592618180687499497355387603286123028379244591265758435329310579861417830849232046406648696377976360123296840892393558908436750282221714836128008977029003822680899827272284731563922827490748819118869070027675345834225761938356862950086790050337409765433448950304258170185940953590471453834591779563482182448117624648795631913774411779230767144653755125571006817511625422641569141426967028345429486297087281073236872293555851725901739498484310337219896165625368821190812407320310075559117319289206477294796490901085660753301243298267811036161631787107567227198930175997184884410696557614556321209919204126104520519972435154105107305368260574793545773658638017925061409874217063227828166173633367523497462767594577337901551027218476047407639448216366263563930967337340280375251664307008036538034890397659173794688249147501707838252394410944791984934308681927773161489581173005582422453751111195641999229969932302305739428397848009949299021618203228045709980627142381794836853707987223891319298226808947754907795490436549496359519666363551362766572532964230248696658573898371294283093266044302643242931895107874206842543217477858702263499803355631836624203355756396440162211512244861709388518162891735395555862497365825180130074513938228451068974585309695079977305843192642043621445182693185412410362425000181652318331737278621369972647989885977853055567529859934229069050710104466536029081161790620835381072361082540633356492194639936991280005641767188405985402796732682308345118988445872357622875802029222450556535833799816187835917242407141278585311632948557904475136869268082953756785298871389594317144584969409729116093111104432374297748318655852224633782386856391991636217204264649668362129435404235210245175024315809224562837152777437134953073789152341383003960594070644815726719302626610837096348795558510779744345356231586876517737565325269866181978216239810541878271739444092644544210833222262250552510620599069984986095019378055777722012944355217253976661300964175555015837165194634788411571576173448984166570518557920156997811619557323408240591996362146753266161024067608208975320799150182598038934332158099110568853011331587793850143244585341008025813837115540323040119863511856226062067085615827407602811234522300890380354266085868323833714238662336253859301528335573683219866345469638803917938731888278271382712983158944098209692050593633515929933489958150766251714547098315293521759334947649833822151833179496673020935006843585983757228269303930519847370845367663895199942692074006497204257108648086154560924514620984539566082588947428465538165172935443554362720197990449853775413633249340050535059205238539078576578748219068187539900554376529664194079277657926929713801968714587727512682220366079896917765481052683001868016120624259465170859613731851405759328576976589054387438911367001064702181087069547904111678082261985711919954665262219001066776060130977473660499840349567125565449300699067713234825780964423593192769386667649704400775819783997087914392027667810330125911141155429833085499050494114333934200029898121330020336886968409697510412979877650517128332800335204380328533383173862654176576760880453010074461237936313902284232417115578957973777177603971451161927190866470948321116135843166136799237664353508578074451505275032697888555469465971569183841705235176178517242580926777803297347283396360705355711458297890621516004996670763589514212357049166189263397626888375154794620285642260542560246663041092706632444741565278944494883906324558582598674076046396837974892368072472494121198599703652512059536024737232546910615108363081051355560376183469701340399979244112616378538153776676719275191920558588002971845609912021513635499674859690867869653078386969413087722388032035299731264902295715401075223979310065101229787347547678399419420213743867615538442792002866767397259389671972989451698617137874438164997742238062336273679226942786681366212474552060009672419318004919135208162734645578711057851773579916119410712161995830172706935838665745795422956661012752502544860644490037206844825118243045378992838940120476470608411368609041957385033933965521928897245180283661212262210142060725881728072405919990074738589369515104207346303235277796658476095443583960725720894990624386668376912958308472627420845300618547098692592329354048973423345801065600482028247549645700831850084571055479453705253311080887314881803728083340985248099787794768440569943511895625784000106243050146351257050008914412537443796558198975395443664102344035107811244061279731639120008715315636085975584799318894830156792778182199379518756915520973279256929007415180690243156547770835760903273102103518415646568914322821476707664220456652826733168554571408144583735331569102235087134112529243866008702695158123395933984967875845853910981184330058177475252808957875484268576352966605153772542478980667784075600036880433786427265319706432954587153313046216966717503926121457012721017782848406649012575123653953471250208294531411185896523084245970294960914259832349197167592970145640952417985172796377719551181060740541347754241331846931760111951506329933266133669696490814637792336409087030982130856433494046969950086457460875264112324361773676830530547034201880356557181758561153726557622694960162147158945690074636837410259700509629336915143127718929909215077114380216600860687535328762886986102912715188776370836390511767064952093370109756332174354357960938536702537848612165918997170870855560900029616818560290657159766312241755063512191279396592118977641464904280439637777207970250768902570103684760018846177765835985783723282360595934939941524359450877667411176143166254933984785064177393068377619057187401079258931819294875693979177768263453227961491211576793531268003980441348509294800993381450127869353830230132595828657672585191629413235764382711301819159238467376382648830547038712997762680043715306266150159567209847836398929156824539359298839413857248144046955333118337228870152394958623521350028533935375356646831904768453219558026215202977720934834772096839814527434492069041496886721676402042599374885029119616387035098256856534973560817458790517249608974827969365115425209427653501486585686473300544181021803020839588801671506477979202037618772643079594004115352287387968282257972253848776014653192698614540408045544655767739695448156521972831511616051969049455661391478948277265912659361782214595930966469268225210783997433992077840052483890360282372491803507452389740630793968435127653905454279138783211632592959210021092142913204144826861740686669458778147937760409221778528480275017886944054858362743617574230172576260584991402291543131695839965372231741654791299190897538931271809287162979555286639159218289275382467223397683322949334278974165281059419765055153956150917153693775147459634475819152549965815624046059333589409131769186460210201300877905020618214161475947004322248630067336173341968913208900635147014871008491477839143951731761432390646328135200156636228873490813559882754683789303279136225276461248733857128750875578097518692156897790892589040765738296935180590600377993673378028209119946982690427692697663327668913321682380559433836536163912852230834151655337264509372889025080516691087538393254664082933125848876086195592458860977459149713043201823361397254144327544957217445304125127154282453214652149809021541783257959152426750897873720954475749578258785041144556121080963444296090375845588676986583734271872339928581236460608551872294339394765042014528100031556013899236556825771794402757634988120691579782369037303925241002377952171802726725076045766224813666107156979858619065258370672911138968205740002618405087798958248488078810057879681236714090630443665731517647098292979743650145182635875728538682335931063703380628594982823138806966046284614141496064202381881843347092269751000989930452321934122362105117563320667759112491772961582852208026312453233388277071309448558243173652409914031206736814234772879576565646530326800171854730418167046707945952908450864176109826393329189911849077777138464024792728694797667531991671313717014856151318990998324874838952686303263131274951318788466039861599484072144919339927008085177425688206272284754987153636172553095674227766219774502569066887281874955222862374535404631536930578155380795748391230044209762913258266289128341796719352276414864478945237315463565062956920682456357011646967566541217679699637770363636530642434277177977780633864548435147357762105924352780793467292964304849047033055335176132573837050773380493153529179709924218984114160269274120466209431139612278322694071151937710503059703589284164548372737697228644594563221814990362915493544231732576445631008873888062082667499846424243082723561062085030702528470606668940461302212489556840319752916593743631169302906394054066721097535506419039500239784138946051651924560171221567827695045366689122839305617260077884616705035049585158585010492723626584835327094455598985510581402164810222954608764182484691937107409341561753754574436661573073195151302383595910647044431854191271332962985389807944964473537738309496819750385162683346400897966121214708740795372467417745163247734930307868575866492277525760813016513491461541730814478577226160207327630690629933840702470644229765597816420709380956386724350105418183397956648327897458542979123280854911773024826998176888578972751114615613569524883491000125067864483826012065705294769313053159810567284737950994199382811392912761215099672853444843771557254017708578441380648110399981256529345047103450113728813928284080342383731713961494189650971054081831094585795536308300549541062492987044452914122424360783421268349428494531264007269241596463290078063418208413070459851964715277799608280815502151800953199764946010973233251837027118109246627645769228691989761060590533178841288928396183864070967629297554030014450877493850177655518224896140440424275949141978983677976391620350711232959679719530512157791221174432598664572981948146946755605681879879489875713418483280900668598186170846326308209687630699775076818411898555258370145543708276372386443734752648842214734373907315252963503595610873505309947226082272428180991042920099075648309623124482672281135416159905632549973045280936356105464364667562943835329115480856126858243836856553804853332056562658558176550055552963618893855143003296756270436426690747084676431310082954145927467848010444950938335691488104976883006490983295665412007860534375158862809307310301932256814833327755504543607733244070228017942939008433245136318184358778535139277181041634243195078820595681209890113159082071512920278252792140691805964601750946157456296692342731862604782315396123099236825586299385620147727280352705335210241361264653271661470194128189726451444446891821578532467465578067917306437818328496019537812870921491180925575033551087079667229934067235135687870119915642927076776666591694362126636853788155593219349405000808387921013117902728052790349061866388517718130714726883372202749801903062628170961339444014272173688844521241556793411917232004851242085021487300398916829872754342743430337390127372128608502374388528762333484213728804979939260475660909734209321423629653646581529374694812389587803357937492003876538251241197410805254773100366645652117946508859742753569484894855961130390056798240828371465520491228580591735817985924559189238884166037465415090660120934692535708202778173985255687352278191129163315792012208251141025226486794900225448196412609485546676483687372395369434838580762079251923558256223862970596638563567704938877523490497639387887478197375478730274756575453885150037661360492717018003982940714518727902231653492049781365722146934487683740467402138425459850665393718300523666242471102027279640113672113953260865100141258501928928118045992259957917861209398050619074424796645526240740411213294327770989513252165273925189085721494997631348000113337469238694103576595500022319224205087960937388505905531787214020758879768662087887845924332286103331665716497938775543704365426438224703066470872617230322788818146775380259842902141615429356727512800748604656491261607453133409329786978561838059346606188402800824569924589172254821438195041841229393339887983803560621477428980859566412817952738594693513687511182136105042877928709659581517979526011210888784519699246498819277317232964741440209249618900367716030989937999434882665614719921084492968169625613222326885718701153217197299850577431275520050700446724091422041256395200983788697642347304395936567639949152131927935871204019301970017020964147478449967178866870748586941424933033006721741554615052998047089849120528226986453650734253588593038227136848929821708996820434948326772438174585397100982356230131353140859229180246846013765871687450751453745524383894562677114218214628711180500241007851489033037218169652634595112995428108245982165273977239002094769058856681289879231654139613518604777740840862791563936262278827253597779212459180134872206472248601655513233450279577385782591037803071635343077809986248639163063591831050366763064491778480808297941135719866322726029748580219925953989656173043855361339958434203137345393936690074484994833616306708762129863694462522704816830660083595123264331821324858028469786514038458103007936470160449089080078798255621500539604329366680403864252909936631422852944214441265033523449347119834337076460574773607524817283231834552862662384136726635663966754311670864663256784229404165887409783227347807864071420769597923450255293315073004445730488453258801383919059073151223372014369963061603346516782896773688807713491259154003252977131660285566075707142515151465981588621256660469757058580974671581231450224986232158651607478665628792144203848656960605732985730637041568987813739910756382252920850991743863176621452451820244161362338744783353255543929864760419835824471692230964563499616309788738788495963013954996903375150216047749805923468288632073191701331510096590104719474650596460717463083554217482172877410172007693134255380799770346443582112804688490571722772009944382185354172717843462027132741200050853302554245834155179645014320841077798230162325049461225305642292944774083287622571557007553161034747901764822370210159712063058457136955995377611921998795141417704519777372666381580052896810753707997865512089482077232512941200742726301869970195900644351536950564083063719016521039153003317772770675751033364544820635160341818392290183889854855687449665007025193696896018530986729751098047048694492811113890670479879876016073276574195688370938145501962575498189340849349775974744219897577371234764656879906878954626318283199858840479006109938035666129723519709753895442783462931473954074555185052153980565753364467338797671534667971189191459566892909330791289439871916361416758308789781635919578346782063978586167258362372780043551907685287210872027734433157287499440115243437013056906432080019934439394266871800681505786065494393517319827917643421614025998562267445385342937435648666452387445113197430901585102053783914760597116261300304939356660813189816252848989546013144661843078441889768624123326301865387923271355020196330801393268293798377667957412902296136596622317040214376075197504891226084265038610088090066703967233026536102339111556905768422107277368658424049654486876536496905666022324024107781898429943883433156380308834498565164708246925392145017448656603998133854030620732183844473389731902784476630277312518977508702369946106147571419371530754176028792681849130638461297514383229972509434557443603144597953630671757792012667698589181776093474366456680007598111348091409830632686437870002851198701500310480137392237257147367203104052512684916610506669981700328342834957891340386432033752202106989101036779776132399691586049261012269137551788556606161108341106062148872985740067994513986933695903240890359734508335615962936647819940156931453856244001897670317946626818197855361927490595044894833073034250843282620110421010230043397018578887019088533372918026944828145244160114440207027132561354092280991807540887893257611741511224632197757159545938082021129504515829689557550739303027364721851320401528912626599272790333032892677949367981029881758536813553736381012957569186548962841662469485944555003603837936464433773801395229889545493251672324204484638048902496835940501721505539558222395517093035394971752021328990264177602697118004277205962328691495177999566790749362795487305734336595434748205863839103393742849703526720892293690221247376596807385712709688773511450296477392048716875441408401079685983276568010213692838561325098611932328327610879123918648276984606698122480348875161554965480728033694154384515174500897738737486416668073314779977871501667712605841165846276388658587184251129671197190997708083572375704343922838279756226184806990750304590512021079043836038291884792177161820358367227974240313964494851636809068264907472536120085213979825794050145506383859388658631672958291633530733675101009932235258512282603164657999778449384462338475053731222409583632356408065498393106153137778533910147313405530993146022705174844014474302386747973954465812957722293893816700842457079851358126974249824503236387775530781710255173019758744723949581577012873221514768567338207020495613132731519556847882552140520426013375834483700532399405518012056246373048695995949643266423474763411917044919429265641694418556616567049078487292321399279711429127804909486041953199079974029518645243960101979758885009425210992638825614358774532569544716012017225795898129572405441538792350875641680555584099306193297674728250639905286718263834246111368815802158255027364663904811371030593242285826577431997935484495258779581357229619540676166325827433100784123981661551617593977747442444266370819861425905873021401407174276267119891911625745996756228529258168231167697111391267326235998415385739442781920270584881314545181580221904254336814994439586087452243543697974877289370895568454084129994627422843170870052674146168651292036195109091565402152073378328541692357425874392204340887923103549020838227521768136511651100864522833026512998875630147580511848279583833010803864854582151943240680805313102770944672300093372215893751880180010267898353800939036840093634932053666169963786213659809940221688890242969801399832488475975890375891597917942279705140567255085619920525417303765669426661741734666446231000613023115540566244941605431335295641527623170268321252796315175549057702121867207953584750702801726407279881163024654316560726671290506350035949523317317589958952936789007457441311611306367378098528301451525648280566864349476322262184533655330055372998674849793018307304970880007662658297739629388116398623315132365884806289889648726392696444578099630417858171047225307359023680344981051303167705498884102267170954474933489996650837206987167975932392046256364128474629752294315479552471886747702653273393629915770242620389138460189433474618283474236964948489003337100605389397821179506666591236374544773114102480602041461558192641090709615324909880432070163404136653418845952061767630233751197830070298712917665345480697479386788279982250939835052873455222333139497239765710681144928197572521032125817062413987911277577782820042284751517876848627185586360464072450683326371229013853192355009537007374830392278151357019350997540698800060704340111159738153570473185234731438940484124389653767786715086731800143112314588334003343635767216959452702821589774355798447849077631223990582566413546361095878844787004254980125902354359840453412636997317764533576743785784260637385384252099296005806162318176417060047551292077742203474294057071602895063233165556843544612875082737521887670003852490499092134176489840148583914052234104379430801501145135478444017033230571486665198463055464398152978035071086419018305866905043674225440764473331218568292072320323424764063218541585597975655736811696321754182121629249546194702619485334410920507682384696837278210556876066240604948123160513933689370207335028314497006524288685188157974978707323482527581643732230687802202027089150309495882186933574956278232828575164566592878813413559524944500000369371338446234285184628365101424896271945594351065791491598983042424271588346566503464426663473146797018949745997798450606352085601197052520621717887527220687414603753501089491593433969176660156056335905572703287819078488845736356702857092440357804036297921128243372057571499331929554253810271793719879446049164394633260648807061697958123683896811594397947245990756487510792254945699923009199245728060805359899677327477776754630360471069566381438470052733383274856739852941475647375741966587290166669364602659881940397640098072433621106277545796755743010325796850794905498789925915785119415970823635935145590809385391267304857730371103490634771932415351490838842928814481910134935074353307430524507247434743641670986228871510064181487905411186634702012168294378519060308046449332106737219289004276258143120311882502068605258795973309653506249580408695857374283486398057127222255568671602810784928796214895761632692794701280380418551739296815791138588485240283433835478529918319451944693207714271811869458514859900190776768117880580013270697629312660180248550083206678706762332120487712236649032732847276650319768002609747124221223782318783755574500073244968424328071814842602848588605970204986953180953671350179204163374693348993940804928438159122936466000516930989286454775260959277679011947301690646237611860456745339404615767855220583774531111351868476761387782413120504410052236455674568523387817929728447698400096621862983975853908257244556168288665402516633438874764423940816335508487791479796976074995240881839343759026482514764756105702349776377401939396194491541532282245339745200218264895260445446698086795112899744633537621063410967154477878266033248493661980533043732925904522105904022613280301983628225222011806605693070969673923788722810711943469222434568066832280229888540668766227911861689046958680154551825313252776084702716728394074798880969273534189923242708866792466175900132202676348629369653335212306404650628160824537641849421587363659959243453252900039824800744187857432832865460319137994473132589274089314909340336776031881339579085535180359246767483794058318338222821092279693425507871530778196781796952070840971167491950133969658739464455271720410083938410113478256916561585520223702145332345221596688450873441228669314133673151515817461261635732737824144168470801325364337877906288729521172047624660068672718383323806314274945898151847862854614991416198308896943569162813921894986086521580068897763533220341834149285462504900142162494559006960215110568415400965712943169993248457049898864116830082173225887754033672781288888962712882441149410132737023144566930020885636059015652854922478956553422411527722663846341366249735999565340893231282423529075801048507516439726977327989830222116945143628586011619849132132727103105315648151263437937098965178404780274739801483601886507587821573239433358392149227843447404582165532178664296327530790294140264106784810868019620675485485637136841920370943757505787610948458291001707309071357191093666950064470539111504871277016296293955054871933356084611588739538959426924458312753606191605265369432639114657872140144687722961149158443105820826805132562327296357919785864096414046975787207753790431968284392078408708498130021765955208173506867448435260143162431087308587928264780998302223590326705452149825868412331842386682542321782895342634256593130184638830233921110447983392094900480582035166649862620584051340651387371176637066009866448189748611782145524864028362060085665703362448689948724176543301400449289043228476933070038560803834251047029652776240229002519046244356523780918242324364405207464646238475663410110612933084375537379032575263704090463890536785185343375024857759454752749834871761936408448025123472399042537872584472578044287928365519172448961770455000535628587367688254208977796527168415737806843874844536201510657631070230899416086962678735543181304512639747180505173194127980260602176229527468674266970822742330108373266746248060990337200574661040920126868969526963798695759235409776084194186482990382568667158458210926611998611875719350513711658249262508418450831243357471904560763566377150564320629039552971483641413029328192050667902496102814461476982171818093771444445104597780690588244344316105748071308588564337523443286628615108893331452268936816471700128967403238155879835997699945827206027335633570097296780796412944299750505145590131516329168771664078546017062740388019594113384999364493378983929986411694774373022413307408242279244321974268124781470572920259673734315341730912671569214833390742795133029466240640380296888691686077415199111992328612414412707203016675628607229781306425387644121746743906532768642344598519808292986359352578965868980214238670348132593300950977485443768150420843094742082069716239874408100094423303228842834053493593878334986283055486760167611977565957770154662246468246103831829168252276269006819320165510510767901062590657329077272376200206594439125728148961911589868357916621324505527389934473464156515514053214829174204823240970158410668952417958338649264345862370022925251822028274474279980534144718446120499632379327932245440208204047447116645273313222122412463240606675294532872915768339780636941673956623638287352595845454563569825573909176376953843764156703280120536043386623989356167381754327982822172190219806334514957063228309807301677710832390289499507936247614203228231269581075950103695515095635885674100091379864008866033852412180117306953743889334604548237990124943786129545536898078861059060737184225522037945989637954525687265457175255599723445199764246995884578824316556947892720595903067545599497240294473551021574570674662264040464315204108037876333586023700191016633583467598837763177295836556852493308534930887919304319578291583302344756739956704390220005874259584300264048685652498944143028588197952006553649021597188610219297624342626897720032418336786217813953521559736002501202140645855368906543769787045644743281663129199323509246635260141261480179802124894844647004575863517940302390242860036328905723592910810236149360715262964320641299830191745135043606732221299807443079926430205644936970632982221686766902722697205051919657339113701813902335982358361556007510919411663937257860457500057166573239170658125758021482220976967432672990129948057259802733476141319004391315002385030075354293033859137959038182512190991125833577276080128818903655221231570933180700948521969360688405469047748996630776075674764213038872502242182060896915421192924458553148886435560212909104382737394568144590535186435477784753103622349935954221661067007917147058341523049716634043742372472686891912378723031109598509547810273468554896769127339444039903029132209118879035871040316728119476959854117294290968070267685085946668135453658627976865663740566200100474275540382514862868520326010051654391523614903187183645892166242700284550976667761071717956580644851669932860707914109414711541447906189150107176853983782442394644860995450267209315446480992887839834458477713332252092855049418656445405899678738471636602727327147593823803766678730065571731486880962330206434215566151208077055209298806801541634815093271976071325752059055375179036100842445262968094857913123579155447923376878120873301293051711241739293374857219005839974846533146732921821801899200870911853906851666358685487635670879656327388062438599146779034334940281633663530658202232105957340504790530019589873338875763236801861747083372357738870710264803300587454228367826885427062954506623280979070596847081401271186160544646217019924456073206199172780273610769860547816394723064709981007534132979192691950946603991530068688198288316120545435816882884576979247924772134564501190927518003221970606858069818987307380340958160660144258115861228943896113565971334890794237528856103662095117829162538393755702892595367361743081271285818344667272593174399476981905535677247927738075869302539342139270168303802603427895836763772175209838435220969525051973047692759336317925774441723056345806785021209121855302329395141014648491654881502581437441893194357800441835869962735141876224706177760530996052947644922751853667254844802050754996328527629948101356562261033127091636132391806521995297765601428254799394682940966606067307490044174268888105273932747768130654561200770969890374001576759275041994437383990878270719713795400654062487160883223945681995357263297696172745444025416612389218557099588468013015900012345868538443632376431790134147040131865393190426746151985722797730166503598169003813467986817497926969620409291084644399614589795180676215227719470491631610207161646917914918658990726491939878428655571443380145735077585620650350524263186721611400901344794291104722397516472889992284569788953511699066394840082834334023667732337495057844619518095958491789550908614362220388837251864356025780070244694096686577817100292760857851493268296575521813897699606945905156193086988686672345220199236252795996728170245105607869322809983826670292285204944855866745963330277188168514986361186723213533716909613004542426573194694689948384117540574180574640421834976559405509363218327656668045737889694461033600357070570454785700390913666609519103596926540239824509543725338007838105190514755865536541656944006923766823877312872703991253977995285535219930645014468720559073415678115799066699570695533539094579786025154410943150332809230694783078474428296962851469381611541891338658888991542535008741243789161490107571201801363587306556905038328705747180235435036465319792639700657601260893701055998393016058006319753252560813007107630485884254888532251518350775357065104016286742418748613767474067206594250425147610942682977213690426193893745768068981201075005945695266769113647518402713630963217507356561212991179789991672301708696203809869108697631827475429586840355274511617362121626401722004276145735913608552091219534803191786218857279448824284446761840828326374409245268540112193791112980096095603564193678755112972304954206810674232340342421278930505085113838429029177878644800616273147525265849906663719581661912781901229415853071559085550312303707073197974933281976120989257157869612181508687506766676567855612575419974479953766813551487580297779966920527739624231904118991834325276922661488926722867094657539575578765383206240620737142079537843891449803774841868087918371254188346235077216745196393417023188718122996134673902891208786767175369944160513291728863366851042104415833969896866478596012338461239101562210895244153615373053120120108649874031624010403032922740599973113975655379751190361260725018401066099856655272539129834263298459535419918759461638378343216445026554958077719796856893190005846885111379791401740320698887344020280718378049092223751146105943027655749841870124645800339454800031080575188183859519825224021363293972200889386626045682054864190647833801063509014799072257909708996714659082045502218064170173425618466970563071579929481998019969551570958974593483913619352860848209502564477122978381567887881851442772743035548883884407290019402511359171608399759965320114228859065899974109098056039427166861443215427968677480191788287579843870360603901499731671154628715084578000808475943803888142651061138746915377612457633876213229908199763578080128199805365384608781863697865672985399888409477858982655050678662625205724350217340231214769526397404664338462932926652625699504447692135243078538896635313744396099294275772935122974149352680093883590821476434879474706412827219388833400371866723077141069683307425488203374567191918826650025933882282894088911112212500412586710981798056017724240484054747641526594405396779806039043324406000254325195866156150311255273597023086750363775037803919373590476083986754336323104907130607398446265887646592674465133153238732745719538606536499270581975838544044355624304712099963484435642990523889482055414149539999819752059669295846871912094331864322625771361366556685891812215781568583148513570041104729817737150602501219372278436433841367251250747801207219185928694841027275934247795972610649384446083738693517995660896720704872854890280396658766473552877762967043374870809586645068064441014788966998092282929522897928205891949130729891312915638362962050243096201791366971705668434811414565372854549506699782798358723212783948686437080146387650609312302003307432268045087322832376583947490770962400868350470064933806550092283483308569848190965067449631404035656842266192332332628324789497114349515987483629622820226731132774882530648573837200259955322926616970687590090399537286873897119183014327565369653293588024547643345631655379706166198660586497413935619987051417728597628544984842812348331086001286116627776143827288176275568288647365047247926049980019078446181295473775925852482388479069053202076106985049156132546126228122909289495645560826239114866760260560615822031630722084096163645952075301177550632565859515567605251775401646721444813888457732489217111377666375338607827440421992780722396309078126484914184841983940647520046557163453925714338152418571055604935302122856976090432544684672570129882829549607413331580357654275019256216847526736799132871004526527234305449619326183141644851505168880435411410306721335003052088525399198920074853059724052927358256864407962062215499038115031573249512590667845427748766284491644643943570275633613509649578711721031639977296136887100201139915438489842238299035990237446470958920546908537193580301413236383491255510871262430056002734267514941930744028560857308089182854960633811560445946325531244256679999326947179523603034593964993996826376385384417084889285093298601783476555815619766034238866660054654251887204413191455858026655200824136254571159716367508967087505215616100693724461402532271293272483286509414202668797028885377086639119425559920258652352319968132029839635715899574543819597912976375016936528649477601392734018841411370279600851455760494594936005867598153634017792270158909948391095908222264809704107400939363052663360715618297902829372788747685178599444328544607512350190501514743799175275915880331552424458188242314025464707222462178610018153885966056248736840480441575780297284659947196193165658071135587252812918949584409297019925326993136789467394717457066438580296153718684805924865055834872047841434812951115162978870625788570927669663522430347604562131887118345279380977026684166617764930990466676384298151028743908140882178768368813379982905989303345160489739214446079644026062009283841810446723144786587876222250887206529545346280381214730482672859034182801191454364426929308022109952344756178762859962785312455720760162754936683719786903910017369954595207914848208299572671027648406707192122585285885075362856076072235308858945656060465740276939103907975385466998042255141249481308669641150789870806311781025495957631928227642213956194985100743988892595407876267200293048443877551825399123116306463087048306186541306031623304047046643619845078388994579345785622362021875140128158247705679662595421195883455390400095739634054640778789318883238788615824694085123696272228938970216179313083472728098218922625522892986636644107127282237696786793537755686599530524061203573758485426259763234713168016610112427249371186226551092603049660160455414891225805901633252834420939961298927887989026553279112990986199277596108651685113960331788164184928038593196028097062067715501065392505725845591843861295926597857186566203316889630474506027572018860375396606495630566730428630194342992029620909129059346355927729566354655141982215249111636655704504324884178748825739294405798880334991261464577303559675796536415543925934145916879049894411777004302307007060512757773980218477672030375434363296803115273508053737971401317668594921399598358450512698395505051207100474599730763450735645858575476135540552306602931036685561878149298597498955479643864121218516336100272539767409892909972812661064912014888771159245360077809607996952650696342664942927383603350630175851791111685152372011241909074282068978046031485553809846079214470750200969217400213091053920006838585186686151168203256608839762930188262471943051087926218586911589189182149820437594171450400273097289204425170810774300813986194423843587569222374223921745765229499614276450242746966700757635841084565091724700900781920944968347734596434283008884107762824339517007823695191879617786631867894010696050613038532395367625537773004217978117825575484298175003161016495459913600934843173450563893175531963095098655345309796133128255317278757470029848659583703696908316240115969555077543406094124251825568456369841304912509640738977413146674186010230336651008488638043168700890595860817986032277320919687929152331906591743463477135760917548010890181068602235750364714437792675285672560676411221291726555373811749491763553715863923933966491616090720861603376026177665364755104162200721191750709398151238228190155172919056626617919860235530122614681179802220475091096461175186846100300235195313493547078237159906634998097424293098844727694885311312526592436282025360995172948130092347633462691570273438012504847309624811887371871200942471214034755619795936845625116451191090463019375173496896468885779487533808387769238772107287491154390628359872769869168309589582790187199869682965454031378744869253636947889419025257825619155529989415986507585759235118156173305875795600858972659275502368388609184228405855300950095924111642539691970088248095421870443480714964215851636852380990281770125740132240086791802729984966584928515878567822754034595216655561275157622808615227882000711474766621303963628277031434273340949031276031191951225378451112867301150858416866056608642477528944227805963036583654585668246335590832635359855918785970685347680011286727035894199413402677914971438032969446602185449044182991617404600676950410395003373719585864851226215842774316377309464432064372059344389884615630889128605493605121666427799139203404097071144600297176980985657680521666579824711183178686610794859645178529929927325009212968726456673716301971772898887302819562782016607890219606907070139991978686213229962450089970318070364918733419438513683963905170207152694595003903068888113815433401819821402765613246877587357605058342221488164543359087024435695883446672954416625672693194130515390274923692175751315555613013136938126634501662828487557136935133931613395525853646060598486042173630273296699992846829682201301229313970867965867197697050674685666348647623050462944289725837832060333585482178620002875497945777262411681625088651173471371533098148906771865551686533856404810209499400918508047295514237325369218987927033812576233402139008514068391017626172545050091374751359038806913996736554415663979462368871522429205429298899129218979997855586260905319170231036499647358100264635655556305056944175038723499997911754762508636532882187301845029797519367017155528957888354989435059192797001260025792478028261229181341797596753167611846316037413736366406819765297289106690982865525364742568126684397061675095963155211984607632578826912983635115300416770108101397892885613890777011463642565066716741664484559417316796938402020630759826312481369252677224743462425572451583422438848108323790337124241486505471377119795605735226127174612859124987499456142927909172619492924969778898022705795832463283501510560245647418318454216259175040089262290428447679283437493883046147895528241676216373598419886745242875140899472243577941327351866532164174442992163895021683240802101218007326863763160225979548445645257737878218356315606963087806465675727040188979637016005591799952598529542583794904978052698196696947906169669297285685541990506671539791860257225124124191912925468825378281331288109277544900373964256412941588941765233576005454334930946393780844469002484756932700893311070075090936630388648568318024092416595920661939171949976708140012497903053204590546102617288843941494694349908997742797845760350317352377747862331317235274464824393730940943441469016039670221836171479572944989020797512397579958133457205616118363605807569811629199468734003915639315278434350722633581864682452691372157652857562566945677762973866160119822306409242211887796505272029607192382940995985237797834647415691781451688487804061766632971665102636415967104195349087858513252755882239498352098973727679290068989537646875397221139819144943181489178360477509068492669263477646058745661651601207691557013951649407884566288675652006995437586633401264400922492785921170498195906207541735906850652867175094133346383055130853544741876385503362192085731923380366317204846179312647540800924909158474505895817327627670017576802055475600671405737126354776999537643240744218171272908802467821400013421693839545537686652847949217306366142942751373882657679108292067218872784668476684835040662290109097163586460402471199250670585002076775956949535284966851053892673903607675718409718031140534939949299020960346316373110599480682647707319084402081908580314346144550778732138010086115787591756233381051361717710374931621156739572467580543756879144206267302834964572680871017609295300687543257821709881215146127345541220316724715854938631574021500870513900665711140773812445743395117660266807316102037126921514204229667815920807880996680296887046223360238912112951208372366042889065879858599560825886289928389239651845843266088610718181371256541376154499831259907006298070446975691645106827539265245318180550293186363346773826823550392154080671460248292282721506166162604317208579321019346325987861070252348436938802455950361782529885700897436437376064951586152493118811517647164816636550159777278870088705977325215015542279437319225237495005765492199570845819874441403352859324239352263617821504960740033785528716093914763281011900064282044108191021735509457990295042176700909748493301952105603885044215553825564693865908475341244327470561931492212782362736049255245034027001768193832878021703004616292826129172684709123937501527898943309175191180424079655086808619788280331397029748334012726289364821222189008907534432203602513976731884177533118332169174336997205650834106555215493041970746180091210615204309892712524307747993296242484735481136218842009010380915212270917396383590523863454260539845389159331786431349859543006003321696181440140422018133610060606598139146724455226429428216132609427306712789009967338726441121122236720231938463867151314877098568047332716399334138420936714028561971496240909079417003982907320210097022626977475652975930307398690823164544623015233350818314060902358243179681200690296997418135320033140863973477622568171185212284096363265188574406646892254962574316732374641124314953298595494101753290981435477328315297086402954045107173998309456076898461108603414520341722311812055483074083999446182672789908007279908214075110124177556456296642176641515765637512426189867169076666276785386877102239185393715533945690411442471146515269565743633014660422180890416318054667790080855912946835752701798745927441434076356541187033634676791383774266648640850967670051817820831603067921252378478814939199939011011289830475799755777130872796450217789707624718752759650957061209968423576943424765662635462697824623225826139590416456335084410524637394567448205915892957519206832462423586210062559468304522476208227117877274120337002893524334701151962859627302738195073108451562362969684948730835349555553291889674366523362940679816871382852025123564640292768538097361360231830991634689752925284768693251344450959515478296894450949314755284717156751308614838617961418251815462632263821936898861236135853081655581807692061637687878030183915774756839948746953518764902719744530648350970982430269320799754893365191619620869556954052912952779328271163937741328184530553038707987233681416822557561237806014560628264825194653923949196078231061152166554115235954883709325326314917855496698517421282652927790774158210160084850787730051847002405646277268964361222598974034757329768551908704753029773288257653757392557655376913691138321647741615638287626714301623961460422953284141640742127149268512572763272105110446957875620512066403733059313902651005364733489232184888383371013745192813010390885694664103087493298250557128195720029997846576917919161610833457137464681000558350260558012668461545584394272392632519652358591269282133963481469387824338230997198740137450615275366902022923003077631824590786618474584686441271974899580499261367904031824240551444090582821861131151319384584894851338898636588495496660445563385499316837013657515577013451211378426580999939093916784364382149050981940395094745866930576123243082356898144737209152785606567125385223968185446316381798324634500927844576606661887590197096589806799076470644483271883742266253006614504557053104237351472770933529327563235956120237532657522506138364509736360051720466828936324362563061765886063307884144685396141833099364659266130126926160708452640885518463404026973179958631779836379262279934071485668194628837207055494535342652167546879198205482302726924562773959985457991679091945421927472607987304371391786693430870339463236302354295952714135980140781070158660493509594739810988674781929653812796992315574208642458247281826173231253940017307062310931001273075343073889578633998901393411686745379129984535800606669205555826770111841318419071088924122310326264801699225772932847273768739222459386963397006512445277072657727027562752075142099233969855012554280953207916427428506163550597640718567259638206434447660978009347538189465026366186179729541239940474506267608364920812698989670604979852323725480934695465647113522885985204338838028043233380342921984789774803100095592860102711769982440499776372920750819921071701081194522908005709010138638207309400813000606561929905764055684483544606292676541378524972491949910498281055153423173009582152051889095809353992142556620715561557838863483119884182847273087346984131468080935570052214123913577180779571089323635811078322264594098812080869612650173955599818419883434417361907071524276668586581410373197820708811415187857487542400433681666199305568881712788142336870767758640792622556781549359533396808575414964399369961558738186901081674460045720276530109670441787485866266031744732459650598120677332317884818070128213043893804212075146234292396371545026994917603942688986518335764782559379682498492558614023144824220286600765628452503319549916445686153344277381583621344865406993204952402281033456951919247097970173074177889047685048838319113724949795337988287290238566533048916333986584961383080223979916411755699248873839758893790512008410569917326678920447535972057125140091908020119559336612811318995281457681362581735623120612277776547907405978011475852699355452677109516693786764169838516040623086381543805521501501442793855920096771729402985321665960556028305648520990950937025192737493548045035261399615493815354445332583756889681193553723318582541144339548789405998533799202364408957875185129750537630116023745372669838388631648506724746616878800694007132679061609161033882274759488954334288573114783702634549864277342020829009788355881048557233951294349417180137462410483075583947182227886850946502876052462941377377003945203063124691803089146457342374694622260946695667074887980779395098453806766449972611210101430415036009008927380653543406376373105117276560947720547556401839930094053834981426549887013528522310161525089425898439155640715430042395787996663582769671830547099593174241445702694444217337710572565200247054528782965975700180458611932246276612965322946205858845108581366354418443412740169911482747409432747514480871921276990723552491540856956618046296051904144511378042254334751307515225595452026440018431707743147761534144327424836443921485101739016372051649680335735283862795435910980136517386219880881092515855429337271438209549557334966856066674815240755446794982967389749994578341018171276903299668644499790064520113571408828887647800870266872328230680762477530327203322173301826869024076682122819322875046228554778197633008753112348363239230299033770305745953906302888786751745626936266687872315730301945275419851266637955367386075035590618980471400861457303963448738545475573477697503865857928909691300900742481338635636520398415601502173870337131006436260090640472581818714586132269262352817087500025821559450008477220491509640761440072405680300332740891162547494512336156916401493113044358509475895513173153329655771897832256202658951990722647398765702268051418949590530208112685248118552673865468586273170945322825421360259512700382788991402299429816958958690090604712213971157815776313176425231744896147440578191411235948034041037395489704590988193230101078072152345728966499234492820555052056031923465202241273881100107239092646660577600874381872057348395378753397645264580063918059229081710026856442834650766395915431934661857958562643296865364439533355752870125595398022436768683117383435342530236886559609811516759514332643505546282261551944638548234825574786330668307498010971022519585576189346755406068729937940621871371510169427071812676384365598197947149896118962960299692578427977688171307917289559438861023583889575392530240865404636987845616884193441003994231442945095348124015855606903129289633288712696210424400589966840596055513703848237240365032215763003182980689407167957003469153986733965740318746325226457111665204834533622230298409498460593046351656154859153191953677880137233018202938539887780092153920047743747335632173026145113206380588301494835548126129403806818236639069445255510455932534051281796708293548802330089636935792815231432938998611754064062449939059063240288260946869694596514832889016345770295414459817026753737096240121463280575797069007668518219816939594088404537436929022337545987640137431437111146858030528469105375672613713919309195465295071020330318372421074865159515561447665593357375932156223633409686164331026961578555760274243322029031544019552717283456547802776815610991170858670071669794792865042820349889327967922496064865762441871716708824532513111523253446961093446817187596424660240029812143209636782989381458191452854340966523219820415581321347644092819763593364447644324725933576308974199356114914437022478543094524489873357204320217718876589852073973811255540972502016169811467789072555138798075003568180545184963294963094087026934947348107420751863165562975778903350494580920206637108134567742155395928992938668597460310938312040861001287139289651508986942358869677553365130872298685373461809761120681199921586604244238259363748601991779171274905185858245604024685699176182232912109803990381112024765649110494612840572258003555713656044727484058613418953786099491876836333138393071984060579191249574316293755545323872300953773162275554063031474716009542442837812055260848040517770361630520302818433929486817545076096851575962940394573439394574938248760672647372563750185810938615940783815716651038178742433697757011033773015901014930655200341913509530896051660072302213539408080866505563855128417565250208827137435085980302597258612230102146473118360943741858387389450835903370165075713305274447980831097083325975360331342656386837041460753943457847982030898913864950274380803719580204820876060711333993603789736739552672201014736899807662828032964130926826423356971800315357665035719048324271909878332181618943976153649090996928832611311778672290730448858144650324275599831454782132433870074960663247012161647150536770029359508252231394377894470039980521118383551388103595787958969095527119211147096521508378436314104997517504245972039359782996694270180696437157152831775938915949011388517446363535167094499076619380672134350677588509670990660293693986589194282235852614994210542065096943309916154509388406422178780157084126455426674859126380583208497053650930615992436534943658378531180310921915581324680832494054484353401868985172730183056803734671156184906979688349733045631913324433351738427521051327724413060819315233573177114397315563124253886015626393043983099376749441498175605642674553249259601390521230328669475761548975779334773721843843198173318448244638536787749374460317444155458575762987564468247430679223437675963659730343521985808546953333808254097881113463278702094818571940758548630203084062393977702450126815170175422811734250502179564289214990687068967550698825307488336977375267923765730381175054626025299915237863196285129192061515955847402054956189054639488302177821266736954802856440025577820263558958056763479139684057834761815707521290535785574123290456665373346702248343823830242867351977688029202165493596866086795866268250955979020464599847674834825565675700534254852648306950815475661948003797732300307952107577007032574198531519570160270203830848582614669182021129747865510189622675762142036155695434323495034562229872559452474693561580562839379347099613500645880005945664393857636729046827301796629373730044174112261622788925590866438198140826700290837718756402676155198163226118939114597553811230903558752723911446187048355247005951411422047898612557970029615606906487383737104040562643692274739845830212881485501627026593038803962570288790547791585165398707047871507061225474582639976301513074443720558402024641342947166480524522514429762872318876183974489753563245209154861486292797604089029291318727078826631128893694047843870547496774462037622121868954658649802392626752053500093548234518445722580880855058334063929200251900121622163454293353649635175106622791379848362477341861694661190251895149932580734203531143953716633231039141407787146482279627849724725443401393896339636055215126095738628714679840884254540653503785933413772386992636415353189745068646995736023491409053733742287424326121809804309276797508811873809604834379057109281599958563989577884440665918029966406729304003083712368115347559146951774179916690703539025982681365298909238325202864143150817870530252726899442387435505234581424921764562883344359865548944460406969889361699183789299232302630190086212870537840761438628121354057465803393965470770369631518854886615122270995481613643919202166586306512838999481867617420370330770717265753253926584863667071801070689316575029411597801948690181070767129622243694966475651632434928849042082873452014679856659648828619928623542510741967608388852893030620746481915287562261863604498036150245568265782183448602577945181916027259096372992110266537961175138530007597611426586957297897918111883436279652922978572435070408880853818523568811958903315749154290503263686437517971744042826865778272003549034131661983677261645878570890087739258815911301114259187245946543881863933710304881485860581346688130215305178776071460029795540185197949562385960397178260329745826595739287755682309242468084336411904482160321361508428345496297538329763458643252355862377256991992434456220742195773468515791639572456152940955170852563864772595567576290938129940461625260515937271998931000547815314298994835196025054274089559498095751843534909554346349466247019380290471413123810729838381548274350595047827109743163021283537343027423089282807240561594911079328929478589361951826724887672691822005045100676775200464572301066237939764246814819871943956083836301152749039358471481893730925063353117087161801306737642716466970273198243007577396782762898988436675019101429218544346914226664269254352718594480194239614031383346610334162650272366182154804851164547842395587003964400464877897357859039495504883067127009649418028685207429884213720146311501139717010407311657492158269259676692977193724064341853871620928061848131310254681690848361074571732874259459910309425149317402078123019992163809297727310481679761190047878568334841154743900200521707333672815441960030434395240832138887220322229262618865711397811603098417972221583796593641285133676755852058108391343813953786772113229730078533282639374573032655995573760808863704803025261073389759630895506198034132704592606310682539699890170758967684504328054803246825523584087154927832690362786777342912274522316931935125690791780760040373222423918410407914419030029849675558811539133495689053245486487546072291369829764165730405645057640208711248917749518332952537844476509900967639989918018619523840898858965508530865584355481724909318166623033702974225613170109373462382157407302470414188111258909587477987058409111127782578478878433331555814679058195360304515905967966824266946357456965004992610996124446420477749385270413555694751674536683384445534038790084076950721240173615645248832399486877543015931196039602415829106044813840721672229461285025010249631849410661590905515839826278327668039007725077392861248065050602289552044190481570112904264942422557556365047559738914943183122728399391430180585325133246575953448992577082332015670574612021256491562146655436914000017173978202796340785211593858546920735595218636257108738154951488088924177849247140988987763141267118953140587007131713379354555612806474402709412419788323049418777048154084204121485077460547666414598779748171084327594002862307636698771020561695902683297590073202684565647056354022394023265958458087763303808528165160364173505143932696864618082608614728350952232992195649221854285792280079483946678787998456766912129121538464182282650495149182179470270255978355229205310188100716966173998387086823404608221640166263036237955713747238239526337351624548730814514475550482649395696369726639608499403634431390337507336703082185453820811939854905074859511463013460189303830734641110363549133350527124682949689685540302709951169184485020590210527004235208733964698060871326284618424180083048703846234797411859436169500707539776656603868752461552812681969994761794900855803726089153492993424207364355938159812916590844503302136328420490783791765423847815544326847263173764989659680212536544309285572565507763426743741363982772371658863027445446200217855452663506505626040671567888296766427269008344375421979509660871937260499773992541157714583448554737829104977135819711532234097131218275868892442443689644803872161884426469845904619779184282229848493550403012502456672692945294450955058560276583061145885145454292116030007971802759389224388189804248885017921196634630830172732524441534001145277509580049412420472616344455183991452601606804147999863869670775905201016301120378995480546342103477271175313869454320258206876744643373777615809239074543325509658457978621858966353881697954892893036760718394848425671710714708494715536128744992275512524392101307157591881577904249194588251662670583268203404708051506426975067660318746926523441298652426022496800642535778413946048655102513459719774414267787140774414821369549298608365664279330471465919400568667297870910056516286935403523964077528996250358750393693842286383251262676647694557317043188701208021980537789875710421545744792653165953959321331412785713296454268294160702224485191533715650840891896316693148119109066378064861907504585091406824375406229752095791597870107747338374829171264854225166708157639294758161424308667952458218353728538800327306439598047349385492392460491922686734390931137048051465450475959863006840831977973287456360379301577734598892952982799412751595379179928255546428695769209191451052273021231390181567447666302738563631659562465029999654727725915046860862911390899857181962766960170934181685750589340706677666441487556499218391370705903606519384101021189708653210758429852555682302012698043890257960062809630869751032072146456793859346604934710962208466977895409880143476265510285555697010738939147746400451859487342763417389662041135440378090260740379265661909710794284444946338388340577782398404827410112164620000154625592557416978806815956912329282869997201768809642991612608151781428055303662212110866343256115737381012259278539424901243569175320774329795951748452117243215058675393922237588983168160690645326683559877815631233742686725240489882069594300355670054171992029963041336956495614850925269272073954368786976642020581894919096380547879260190377559595880518384293994908656758522087993998509522359036554367169343412136957774950006720884974944801058341685534910088901073835106259687390173954682628864790077277109569776273248494284874053413005907833438498022187616558569030601758666668908348008459001588747405311761224721429955460835243918970878292298482035797651563398220971441679027197569919844110436671386487716970683891941279516348608813074128239331691473676837317509030870136447330493219253442963113280335386319030021072546527138091802811131204488470928260886176678595659998080966244490214033466134259446287846603866930640405491588954553210840991598762746802363650721626038545853131315710454353289454256507914114232577776484696903294241304791307566811924860917702639557835857288250413888905089819770616759826731982485664501507269468521625198615611979122199586320099071747345577811684163835362924747636958367801612664942511778710246925261344854363003834623246972825326893573860187625505981006598280646385928382807497988835893749665043197267809769650296260071323498333355192693576743924541893960512212790924950752852495334736754952261153817178887232721185901890050366468300802427106739463537610031822011215693668637693717594331824603216462769974736988271462718830571031967025221838306728472306553487648126464048822093301026260314807379507868813858207304886987084927009312297083988628378349083535333664086741803982885811759566338755545347292183570292960914143806302419345389132538815496767303489581640051311509200927520232282128020501067330541048964557111566272275981347196802558454983777669760067751236581257782276768679543080536465297876285008299272308773493891014822057779176034920529276987571286022896430751691180118302373340435750633572186480836915005218466023447606199249185300789649928205012688374971740433733238217799637590735486070544759132047640955574696462595745679286107687164752519868169904429730814699286609631938339574653167586091426512091484830788699726729417907275513181344015174244423330691631806749107579772621043015494010740963990921338015698804055409703773889333730359253146441436196981797824580389442517372911442704925843866636806785035068673284738692989478817386809974280547175054285536690065540630618149798743611855275778541683389298616251529148017417641072271762773236647177540024716978672786836353244084696898542038067376072124871498099315492088694651615398168615047093481820908320213692476965102376426549544985191799092637309930190723520491114839640454514427714015682247377535823779184602724346391140639326524150160847770762692937869626615431901897831316879005659957013293687259300095538027511459869759572173540606889234747835440051682773157605452248795191952528394837478837432029880538537624233745926133285233375444986573129736621033855747646877795120518224934862646336644538303892347053407970981615058426135374648387091834563337773696941139510398519687976664528625389211454816531049828690333976046505263094110875700363441317009915560379198960073717690166764679771533232752478303319990559347214877700787251520342525891989587476445691416261586997238396563327247409032953178024639560954721133915850703258606721124052764540130949907308702411168171441051623019666457808415211723784940888770943944987270192820292323627364128794764343586171826506167267109565821520101127949014853872157477800180209189200788757217356301663275261405270919551347439880687407974732810125501920933344992828659871690997872419805565258162408155497942777006514785798458890447926753292042163122502108787115851218018052952449239223113597495373855727248657556310996185215869655755106941120902953487985188704987588431861790946526853446299610832765981293374994555702238205114631914513720034491869555595521583424658509610323217443446972177486244570826644238789858567834144267377994445354634353275502981601276206753455826278023293546532259535625647633803664334399924128828376986469820486101044518016569776318724445450711396437342355679966323077607058115844133089918536165132298748053074258830792293349077367372078480996166995948139981756916715400442986121155755566572076987782430144517808270092517382090236024942254544430163702237568035829749285073836677651446690831606324547902439435138203871350179712735210298132315800486826845860077967525971841592715190880969996330285284262008421020428897175030282733508544844597973534217839592805775473341363694296827457328307341676643622930209942676817116507621376095687349685380326395709670621877165409474481372814442395871465949943069222071578542002360780750200605477750585357806068854289837315754139493099415478983681944468093607636221029314788265575832788104366792670338819039367555432564741341487549142746824850900580815686539750990841973058112971717992228593270001864835260198717836362828070364260131540149221923572516219842005351256142406944495463409379054273637197327910352497772825962945334627046410699051352683889371908350060099058509934530000668348588273798546316860513696882297141765322398006395728065695551435606113776168720809485658316148370628789515387084150398472233688731389575382717645083523520817436810405898405624173110331329509851701641848937004637549062925519172315973423971247793114899939261739013562673213950187033277548950896777361039025443407602202390641536516702961952151851219652178340924783605165413892784096452946295611460588038182969383005587945028694499322938433568260267486148442298651393071090243614951809497749296086760627456860049715110548509152786034620657580624617530410727400633602581895895262905123098531203362535401687754879777517290459040955055342670284924138351766091340395842896868329857683843488362845635270878817042255630622582814352760002622508600986615716181705790726964845752358486907711587607104838383666760180940576024123897942185514028502243362041848864926091474739819933833789644310832580696955366028155889031010799349343723487519059158976430169503617679442237718203823073300658992667297515517812424380663442885811876070313650569679400043097127897338320091776669275436677039735864641036377741351112874389909735733606746649953958850383737071768591496340073410738866327435598529615238118502993815150230743127047219894886940988806240811344386294378660042110342218122697437681986356754479063469706052193806132028394966513137349531834675866871916162871922049895187305096469512067714986468855592397787665274169268854229634130662908800621728725184895040614632120340031742134629222444671731605621543247402978231215732029203184127287843444746407843584647592517619467958947653342543451245376158893353234691699862651335410875537498893845255767491301333266204534675647497803531885442612751818563803304168494827372392194108276134344722216444499854257110801582864703902702511268566202854701128323020933479297015822952216343526825186136802226298843592695537216022800950236734731749032716656355890538800400328206254645267924491591942144369775474988584507260505558583553949837808749693589545789606617960230497946624791823940733167663476098016766128875706673491723380135079333405807334559123635967984245282440377026783931683232589440816470692601325262780055329140772489626551915816324215928226264794034014671480317180358388153658466912105318198494572572661667012393378329886476451241814766679633486130100072952688796175619906342798953751600073313913056744729843668688119458775371981258539470837457129436752247640534793918771492837716287144169663211788267537192377705237010922878382910660243605126552643735392632419051847761419535687864430863286204176743793734251894330567228620809241777208228923476230284308610058886211722016729298359549503391812586983921046574178690962866908794846016505839498868132681018045161179970319739634978055916614038953703658809449728723341023071715938556321851132150761369614680966467490858606081890524404120777674500823661569928169729529237250187397556073414111477037700851072899886500451835282717552979068230787690877472146648936427291275522060902342461081517447997317703978696857874967015857069654793812892010887622508700392137223181857966604409943325358280899447796870354386544851541952498891565895728894189120719625386936831422511179863585633497870063410282352412478880767010561933368302906864463325913501760482896583917727966938808812671346438576926220428549248901834112519278915667613273610267755551096988152161252862788203325831615376023463797389057195777267978951915987871416060679763137996138272162947465294456195208839242666397529972673680409715384046991824058766614044390401673064552268153279041728530962715948216433264399801514374817994609090967122505419635130636153050289983430603140887166700598288682615204419900607817579781084639123416306805800582711775992815335222354916728146318554187720127357113046036042767324824557345365640365461286439877643434496269120050506069307726773509528903332889328076348343575415795180964999986654298348904149277425731408819998298981851409144837642348441613559442133813445896604990470743494675641063069167429421820272768737920783211990828178934062665136165121600728936855845338090623920848878482962978030127657100553132792234946350122836691477725511706349945168995566706700065748036120085863762786189165540280168499308692421482463907251234742626736709846005663959298798309622236749732053368270140715683242061097419859900914065607065852613599921741316944918832731850879148461903389311923887061042826906604827102487083373069461840956231009225678979929396656399305598140970182577074426781541691258096717355065779618217968820479067605408412174051257244872242682139634084435864843564148784553591529442091502928680249266343035852834485857126564188016222560903041265603259639349533063539369697582142401967596506090365442022303886992103569947645461853752569812172644619359923670462511384726050258101335897403854460234187103985022707509098438723242031510426605290691012031629471050472454670227801581193346212837655215772473333781935882200172336625659467407110102317808942879592894274644591779177638455691263963462333415584323642958421298180288642314070878261864621319894664380339360583870898205261644955951558116701181251644913287002624510413830165756215923477618130067206375703467545700617109003058222892057992481004248431014434048539815692955883855671611455409489268066167957357357425119099284393006451884531097124112563622448398908018185180019211296714020211853562334914257690071113017757935565146238750476668907883682721547177269963473755881596283247406755825035301899019294380178441355702206188228226350098310845145015756670345686277846697049373309980187895468280919965790367517770832449341655346678787714070076568106536967324383593346906773909206365375100543242195832979503122316780066971257914668964588011331033070122611641026762780128429274671388285185096144247316005422145101723784276732461644509518799623884525759355225531265104222651118489619436671209490339958264235127063207016151773052880916949185465820189969641460477349956344410737100673476275121102515943255693697326630616019948337716425791841113534979438762352028092722763298104613866943618297256413009396940001648757606553441419670141602666241579951403902476907167904269954659945858374511226063062003628911724560957289069850739022644341540428066857823368280513899656518555779216555174495707866200168105978991493702265951959437989031821147067156646470999184921901486278460795714388663367030755325831494360826962764927289824446652025908737019963629096105521762602960445690859556917770225221296969886020401026284910751749150308908672458576794549227878442547396156442571102089579394260367671840806469353470815445271482111620077635059989334773643140286827872205219290049003200149599602600174255484106885338409135245339587735637227427395836378935803320603281454291159517099662088793932117635800290835536199989856893001795551944989327992162319710942277164199889291035681495989356321263894799885597274281798199083359624390340084501679702438537814740230380071658996442497325304604235270508217639263092898218731879124504526170727846399544510076943831412206713981827849588491776362885191270094919825281197633504342293051345310779221966636527143369016034397625939001964168300958278966371833630105741785345375413851510064442622381232958527278028227297820045316158342690345642855637358594521298745876691466130628814425045211084398255604721516462040970533427677341388452826884469100436020704979046288069316645292824414280441858009578327441488498783284007384067804271352925397933231198334423892942628752285539701006164549748484065000265752586711234537299250721315838835443808245413942681796070080169534791723573314908733447369111836313440261672839925735330627522065634229577990570574053474857750764442931694759088142662177465351661021855768011729646358873656211112964494685062876494628453909115446532780054259588345145550758421717059585081506835691135375025398094585051898187240913058139108061033056199061470814972367553088647875670437962245442335638540529782888629000096149231728514552331422390684281399449652350233569077661193641420551900781708329404158076745254090687578466284164117477308092213881391544097221351856824792851006248411955928692724573091200080911942060585751443342546669499471834669145182239416997642157931117456244480387046068644020383380541216694083989344415420353112023889500541788477215650597841457092644323226564911669883514889321744084978820301441325609361660549934099287335672911583970101147808400514354654708135573318611626666871276362408539969468953486792005528792218658967737448591118519583985047303554053866130416059281655389448666786851497134184401331461506103612423481354907816059988806308577005437780792847102948521121898022593274879736671056718189419657300562087136474445208468240928583882656066471276439029901539190577387628003589802452781495891477379607276614484001861449118195784875872550491520749909004744116838293709652493721113949610438502259363194006149294145154594666543627373853530789931252745381158465875898016221978325969935046214795824627461925272714389058229356367300210034345602194467790676194044958781618820503202156851527980953644567759144176580111911539937395284422725624492943150133540904165177753733350261372801422560577720321147439235173973218347248987918700197513185195827649082660969136383155320587170346866540083855671468850823150146558274863146794927132908955960749777903522634537091959263001454814139898222747383541595129523091743585122460206594045820346497437619458657562713859654657613129652385034749971740184424278353901724108042793128088189902495592529366442921976619288262984542628596542276025572737516796868936047480252145548588102525505457306777037308850993204468977132086381947015569922571893074633090979534132738181409285510716704759027397477780813098183326821449710135839379243143843649734780344796640659351279453122636459311235753442067125210059390834816374390749148334460046425914934629676603169572164594258809276170416614006562499136656355884479280985427131144677751995007967936957327426622829269158804959702613444297162327582851532603500742307756956916195729871807015146643034474861692994102273470850725686908599976276547979932829001304415793553581577010328497839246816539361816638352596360489472576516031171672911166438378558864259522536114568812934919983227212882816664410572991632786805185840142984242243653776654300697201336457843447696157338123454811840357660686339804572684318842408575447794178928879920889623270823894481128651772144556118283004752582339463139038623156890827077756291285941405315307423537872437457053247271868994326216938117686546049808403461678613114921498046636790764074811297805338821621466896202681827035887899683153166788605603312776341322091403233541254904921150146583236043518262480584660132679762094592355656799480345760844710477306823505536846378021260487039236709726948156760417020565194016319164277278324891261123283138362164458885790033173394139196964790736458138869084684394389037250983656679181259628284120307496380137926894665415326244346998008406859606891670058213737631307626149750730046061384137248279833516239492323653501220714332576361220880928553062532495882219030421564634130418236060394666544473279378511210260673567654398644029952366647661634291209006489878213390788312625470494538426320978438043294239367547364618577532554807130834788378623261301177000766538251290842657072527095286881647081615317384046233622448699715516516992220505685892940998922126611787428895610370989166599939780511177481543923599146458932995568491738254497621439807006327554750454328180311469821704243393329711488806184896550864589607982219693376039717096124360597025367573903892041022730777999676845481296667225268381426803468550838981690290065661348642006416726884501200564562791923073905066479026190719260922968687516277062407977051836127372454702913092591432068797677826055099215299275175588510704126541330027970931363676918848333466813060520965013663885520834254169040292890762054643337309932130270645971865827211058384042359063307172192516013700746895429951998375832664273426473960585222133034868179250995501706098889331069992554843902747223597638458220518835120827456796622556728707003261220610640102963031264465212845446715278852479514582699055365321688865643369746010421107245247969346831831483884266160307347777829278568288656610432230890836326419221938092930581109692202931219042835475312345842869593921463828067390651152081038209700727132360067233457841786524882458786051191163108293848247615031479128458116038228551959525275600630089626749758056071036185742962735708421489432464115977650568078100383690162600293159655002430401428374431632516479969466392661027920009757150031568447336095609185360931438759145201929440943079267335557130798031572984711508357380235622247690497934738908299553575950756291654058581156597457971381223119710474174638110763662665563803086304007678605731457465599527515301735387837801545465869033810108751849008720291194030950221319182833042950192467754608984188584694318488132662043693343604593927827212245700899931242324179951740410130848311574877768688367554649413054943974109788474006161041557418687111637339441462441203581648451368895631314068042520928361669146108241177021460803618374698347692541782866363414992982197350907812484719035673818192311279803944837993288601647895922092749285323746245560863197502318910433657178329180169405628981805759837651390016566319033766435255587561313230981296582011785001905520779285505000640966542070771035634366440773525647317057608192417813423596523382774523043970407638635657670350498422893005289436205125240604951781746716824263612861578388521966571439169175593796498729489142884815079941550015748586877057419663488131798308247271909577024213178781152345678099227584880951248243871546991566919872319044572515535249529926068552306696143808825729758362939418082915614532268259714142741379865109691813245281344857927359167773255143917928937051715044686603167919644516346418350311617204888149178968192172034453707857130128710974709027020469318469521302963679544637885620363016687636851649266542946935301756030765436055939660737912143526765132749997890208369510516243217401210576793107039693161864509061159693867620551708676892704749124954912022753890214631930874811448352613432681553860718506674671680206450089205558468207558664097663633291525886697706071361592876256577525175139680639766450060220383486421971153145798345752458221825882354493021752150078732528669021987042073662953569586372363009019115505675564368721855100742755056001217748130480864457478081646032227824553783955155995067979552115236395288254295996529658948954845017770249219220197079301566052750022793200470814937279863658307926217014608536378285751883770582998679724144582799239384473765968575030518176019672466883773222660390392040699055421757109062904859742196525496925149928020307371679173491176633974052265317162632226606937202206902218238238529189139585845190910034568781647470690653108860487282910575427139446690239836342988001862990217528632534154408941960587011726592560577809364635113837044639566495609265772273654940632691144823875755341098062617339678349750331200205463011882299104948797541242349196862301598439821044501662772216664951655318926027826303940077796943660282997197141533567491582044115572365475218033333691257385925773841764789925572018291896243626857531244735427457166049560440666956539322044930809046340220901426753237516431829026742634591370222236817986209807274347919495862992609286784032149278197142744790049135826945203413488156003315306912395670642767306889274080371360425466621421221987523586862124228621163760373681404252377822464046309689645648013322818820843550517229927577599961592297408601029041101049082117532706666752533067081504453185797580083701076410200476274022027021922477910621464990095022902675830019872341984223660631546096715622485136286736204889001758666297920036870066685890223166663114653417451936307757743604303253638508566442435910384684910150110995084150061290735809856258216005609152441270457962438527326831073250216126519273270333826840807776108057606700752816386595663694568876581699941283504300413416561997160276533183732295764440853049256085105938949027182695279886323302109879788320957158953812575993859160999102673433248134398649874183682355446537142176912802155741173505688858014430494120270259372574465261668879424651846567744682596219179167954691625031141620874899222218130230103508909241055520893691874717475432319300918408519439674878572636645721304530638209624945437568789652254422477794883596875833716517644118445739014640415738767178700260972139580178426247135742784902371977684913975349519973779579091717224223990903183819707174316401046874316551809598763247976092258228799479463130985599409796410475946897853782094902398453295481295268702964279446027666862730051131253008638567846340713913575253653893689663910996479898017309844196549236743828891367525628234936109043210790388074364385496244410077604001277767728720994223155240422223770093133887842176347723628700632469317783746260768315336736976671008401759608608319217909497817195932619062704088072736076157460580237339940431977543921928474406014930326252576434573320646549723352256295523345509230179834847272722073427817193626968163927670038288000283041006404640303162925539894325076798448749010861490731889225961833766089270202973010733191623006187089458487807139677858648156955420333712215773897771929502156174766989562724368501368789460856942420504300560042104926794971221632372842966660031963260425567266213070485284021051973661828918481003709172780065138162736367320227213507143153122466931011831152598213682861080383677026652930063811311545247730849843453529889680182009059896652060405505064574241009042410748860510624205427575154590070105016386947663901748382333043252586160101878347076111616887913248134611953035533596265809206626541286992550063155967485594292096995833264840444336731838763322579889923139608851119802383389727428267471126206974593088755021738777036881613200273153098610505655974351169779419907513438803484472075291467780876731748474259170099290358036245666989269398528178214121339166519086587822687626893968139848733378660111756048143993656920973163325774135210451629457897252766587935714480392761431712294733641248659162416049647701258463558282830762139278157840269110020943404978141830300995273133646727003097925199829665198517732160530936126466177821598554557448586482299209754438592360049043750483774305885303513872924324298015788800567374155809426695925386307422594025396455889500409145479897847267316854631404404014877633249623609034557277997223215254795772335287645233707316755168632495866088930681177878776802106739324076568336282716069778745699325948784783522046511536778210501949685432231912745493972897121453313129911225517079564977434700446441415006511603799119060415896726335030804629884837307550498441723717754674545181658157117779695816437131000720307120107198382053527849565565372368321121105106277884907823899404815136950036879954584502179565052463807471609467277376670777005663671204665357049878545842299749082079173344078535966973459409145830429131179261130755187473807468600187004778225884734343791692363723619605857458697739418941355121569700888479051660163387565990069823907934889683450188903806830453311772005839736078416146838260584375994338818466562224793517325387707238962925883653847854874999161777072907143161316187842391611105542525377844042187679024659695543273596317968185609494064452401856051547683905127700396772309557125550730046630693414374671192372860823976785813588135571679937345165735752289500722793494415210930583207296172231723510725136509911476809471854146712478573971629989691355637529621739469827036139686000285424092381506712996265672026524852606503088298853786903387853991218926483544419556290815816691264806434891039867418950224752252593131082077573303590685396856688496850776421723160063182586771187695006057773071461756159991545776748375337992554662844282291530418108897441853263660100657425883223293330987240198352040456033154470674055034539082587862534844326763227788913418750991916488079859345104434784534201518213975915107065882550711002571105888003022339138085066177852640466662605864962720418222823975653192206521353794132665599235096997719836810739952869353071723984304132746118942970202252484339823212791384829362362501255208791362833052820908417275293496288367643787258286614994601972978123875772201424644400030353540026134654945126215480379155409954486449579345428952386175290741738249037352161791921954228833846886389064083252797525984612260053877586958171046028465951191441866667849717136728661046217641921110520863044143760204169130420064737818976306536026765033150199946291025770602664717372863417780564311132355145425062176161460624554572580905176479162996707371263555403383499209116873122076958137004030217601530552015656976571123073399249468090266221485728972485834863204373669568926459680597341145078176117024703517324136351980716412240227442771391324306304659666688351803750230830831684138701444597409213777469796356205901893408702944897200094447520118150919252870548713247551794704850276037568120096290305336215207807354102174696788940628127544189372574554832509899626021481818628891566279197741636617777340570667941398039056882942832618047811554303982210895348147250371566464647367658437911457762176664911299316474071432952522094227596625694250005028683291302422746439330983856224140771343223052348049116283427257839070250072091364288385911443471327301073378409214882413140130347790446658056599405840884575226374837781339585052874122244935213758656125389848369286484135504940985383862287750313166657187773198948602889166454489212165967279919813479125782343089382342199818346415755392944038256457963264369260664269516702220980201420060659082270902599578731785657858929114639037228539493000590654384380387160857737316719363371263228308048114706585025124796267930629577213314559654472683742964294717864861772059462926688587810234093175008072519563830305578644879135790601098396975468619399052465845335028805159966810613260918181819129875390607398491110236208593676674458264337896339424890761080272789912079210446033030591100725874401527369248170037990743640930618089599643719240382934164308281483118344848483210453151491418245527445599333558330708829156913677816625971436096744900897846428402015512841261246487064791224302600018944137216496991993896356428624872133542449093837830671399680217286704374775996743860937926070930094816265227863077571509915119902393155483968488188366106500495802594512110065222835151033375275060923142645198223230727683469021725956428449264639946787256038951111652284958352241735140082040816107581087546559689263192980792550414423157160562483545581519024478151958714686727836558727814926339842457180038978835921825056860477313339048051922625799742156273174939574799349803688850335193542644733923183375489429888704042925590499379993353125528559054762571561535235203343685834880021368038304032964225538148361567764488328113761858642040669254085721672387115483870362713344389854407215673405759013599337988545571409464243169577571265118837082913627094995417642965581537061207091607246261658966409589257997689063774366031521468305310281924926396027995955893106753309105548059684343506658634230644179308412618288834336065597218285377272732844885012667172296634786181162812995713142209257691414085852072720592796327484035814904755930297699346008164442057263769784429538606363757007187783116136775689765171558567604950537556269346881723826274285828692120795242638738594670264881360208924963665802709794752067842360817266698125028517466401591184967931637318172164603510006164790639835279386169787029115447950025460777199268248825845374671981399072378151556174875672505817050961749394905290250603316084366638351443919927781630721547435812040709755544926045435211685452177983512530654627782315831142734120351195826028763421660644662950661030656672941240036776989549400436245117650340048632573779633508194839152718070102569874450769742916248284765370644225606887086060727759065837089589980485691804068304082164564160697355538610057150452019809927850422685482016201347840891174534727812070929943987663184911429259177179987634645958105148631860268086306595426432588126823676331631562314105650212342099075244830616352067086165453165231378531838181270078315561122322764673814565719434031611262807514297914580763186710972729668501003054431847483976532522535104889341509724129257127920690583514144653514626551558008898312727253655758322752690962106051018729159181787602142209027119879823004300303723715817155470625108999704846803943178404260444489915080474118921820140388010824977452230372385470139469750624521388717429468535962777829462963187357235430017768789321291205767972555010973539336616436607673811245600486721290463668783077529665300884756006610413801982015505965551452744196707229276422872750753796747903786265647086147006722794380626898938101402348292876205963933625549390308616286602297857240789429261854066719773583980356183695688675247207834841151838277002631558470594442483776956016636453366142300287609945153448986893118717121499680193735682961611365330811311445880533818655687879511567334478946430276151083126637964293279142374393881776413182971379038490328330966266809891746266892570173869340646218855030813605216253312396252713666559761208533726161963663919045480909117065959955115331293327014923076594824319262486627469024832358019870518057956662599149212013881126433998704487817208349555687837196820906247097541910742410170061302683454844450306254432615225631825894830396431701786643864753295104868230488490411912277679432010546136896309219156833824473645694094088373690785103190383266226620406141733366142539650212992838115115678714554488823640296851618359666637547206626122551247968179765308676607788377283019622925669036128657530952492366457547094772530342501179873450115736804392829646526119142912083902175308288084624331470669253438283532891158391292990186268585746344686985133792052737929562371835154144451353753440306191856083691742879701767908366190117230883733145883303596757620264746566634356483435565052690344338478520303273939087182278579007349487626302597189674584049137101618292609239254331273008766587589296622079106739764522465507545488741596570906374096630876786961983219047204762006140690373060230487740924422614084067718866203585976314531279445668059630299806033001511750762856344751234518391843211277843880394287931125631457885006065686785669850341772962047551715115286938690582896036829848072026290887585814594439933195854633786352981297087227326249582572215351928860891156286140987050565434476272890724967176294330644127537979549140016679080561819338142464722418029440218243703060417278281245384093173878327305281953738367783493870219666589990312793231915460935745198714732951804443766347125687102297034132192597984869479325086770633098327842644856439548702404870979747008365155599615277940708156016312529039967990260037659390968904588407408228406853039095703904755598296129372133381137048438579073137339895837234925726783641277904935398598342865109865976581061923340886932825957760384902931322719296064109066106053594786626224828125031954363419991615019486965040772001862324175855752253549558698357232068335591952945845526939234956324875559732790087860792073156682378787858013462231457325114879312483311830631591550542631669981177244897559430938701316376344249432791065176570251128258965337058080048415671043269478602326610556536842928285374426180545397294806108273218802959733715757748161773580096427961726761188225809705527667241338633175727500478241804538499080013038318556779239146200651314208530220106521189238632562141777208634632106560938416870800964839745083427036336353500481777011613014410610562102275791936250600523952974220527500091719323778785712373812141929369502486681781097662922343530548004014227940390859666861386375926093138819968668675377888571443520867472453379332940593038462376071707573320941808013887323191258442341246557360728257274776923012512448434006584275811515162404883336100550403002142537790493370312525873830065742892578313149851836833448473952375080108221440333390321769895237841622640953874422262563309776122196994740248734791078108743454282720085107349197941994817057640683053612449556082256028223608926912936728133620777352336327216384227133559517897123729049855822773653439953541483200924438516529906266804495980428632582694808901568141963979284598763662209933024229240976371115732994544137271695434691932919734811653835770386401655027192606078991642531629901337468256258600124925617622895172639074783253809345286988009420415455500666633768300118361630250363994955704099470210200876121808499991404510412589757081358087908143988694039559816684743531009942618910123741857083229030445466273514945503043514125621352115651636049320006775718802751227888012706033183384324899757401165656407459763346696407256353003770079287587726097833465279590821815440620178412266732099969543174243644710209662374689804029623712455082664554151974878884032474762333979167700143270914389360563043725524900386461979188804436331171799164187569476921707710332456306653554612815388801993962714166765067038482408524698820767419249807626408200731149660344792685140881082256326318593496370706785902418427584515931883030077129371543028256188740866124098456980221189434068899732619840048454349894202597697589758949611730567695893434336607973084795985907004913312551704256102054064229075283468544656617458502547224837834029194255781719266681246060862373812171096484881363210716945344377987224080593236953578428856562918586801152197316284766866952027418787226121920795225148201375633349203224833142259067790242424471006774970079699886289600098699227874263753992390771074412022356606209328902025396642612839823730828299362867046015426981896528601797146319651436627811824225938216199581943485566331118398086794810659790127322384268311977508260904230958155410506993911899890125601740019865121507423218934428263294084849555653227712507337757819779598142459671532628652095239756197185218525890045845922995128923273038385659479651628592555438600153206704528778456262288196359087255903882881803633943289774610468106993676475856515257523123679556237048322088874668506036275744103038376881064679932388161799354672647961435460350561382667999378121466349486992439151259235652950960546994193388304445504145837893812456930927501688285877141802556084127754358808656903177074386122196751604324749786706165615512425058821690209313564978341119788674486324365308055243876963774875652106755043241978799455923250574431059557589753557644137521352967639985914303342250296616683397719804063215400147648176516972281122051281653507574356460357173498317871979860993420610888001162106973983555187561563336540306277522798949885351425118362741032618722178675445057879460001799285296614838700818919327328032303482792836402523118115751809792771950359107530211081246515258947125892703416820480080482509302809133281249367275836290386261592256601467428927757029599205179201761247827983081517049104377530652287300474368216039931950567817311057103634921640292852877585783399636005594741910849280286523854559010903065490410572175220984348941726378793732364381120762629373053738822649123123722531198722001506039854754710566342435199851872473748025055056511224436586949620585171710640681159268167440246723097237079317406819687198675145098519941783865104347265933434991469823230364723637533813998204681673748930931200680460788618467342139939047631804772215846505832250276967627812113631387924048953645055607195109835924609990126979593868618212617233975214327268154786478302967041050963428490217961468876265744980630560180617059950497076976696529954059214448092383723915830507031329582871228555985779493697084398758579354802900897915635205801465793164750448977430669981089138480966706983178361808966701266161785230857420888113285627771271728010989822592398206566725052833118504023906728393124605504504273728095863832251230862602851469215688200456211268733283798809472140812953306129497952430415515769389201164536682344200059151924978842071927983844431378845830953154629783061072872500288135791505110449900550825206242070753974778150099663569809041333292535728551482476838181844604236025186480229624899496479083795208705430692005561152673660276457017323193617454982772918933351121821956662147858354920316054378416294972614842659346734967725599943369403982020405360821833630703323486696174493111759477307185300326279018136616211088728220561419070096812477706199911936371967376432091541951905687395306766028019114895214047896394092029308663221507373818923102293880083148739879107966325506636843923224427092077537177980388065062266543590355910761851420477271759325618681651179296194938839141504967481617526972500237163729554951261767871178813058985646932900014763311896939480690696847040645231016073622755431676428545437981394364998474098317699686112861533205801604774059320942099132563376880148763095941889423662569543225966904073999483738349287189586198301503587135942033026214771565804109518345250097551768976088164998846265308418967369157954199959650937490088746877017852639335079758703025597703012411550688765451478100207684264242906890268904628644019516365840701507201273545006970701757433461527907967516683455205122278223564142712552690918470205959997764122185944183567268089541511724069085031360857110788259886428649953126606495263004102784078262925481428589979639805256259006717340236687729223694653466301219718393941136477769162605991562784372534295833513437397799946011189932668161917714703750822911799534684079382151261921451293867728309602619956792252076889065614456546303241113443991670390066175392642650759185592453734275915796994742322975150363971879686488533006918099042453932142698289940661816352330938307211893781167284948015292559583928041302470646605091712297868349490511873560578551707908391914642764105384174156015852685448789196881938015128276556147843734899952534834722634601001876636519965084154757203207483513757420543690316112134047355668098267733693907592203493320609689181905163319096007663507249655750252690066618328629377270586267618615893369305834136249636725443549275082664807503080377278023382687584301896966202996743684118690948450179544726129513163819916844031088170276562589775896262517226450248865220259582949629524630969058139096971564912613373871031588804676580278787045914108161950638244358810206145006982844895589604725339721270766488617824125373546753156242432857424863101259753843373111811916247838289291328133296432290450646999938534678874918175632495143697166338773440054677823629055420223151601664688212877514085532132314938603650869423245263612858815190099677222589613027144754194973942650689814786355892351642959092795549280959495536530066422677995595793671324498313745651347511352664466265009367782600648489635568248791479483445317276797804561412076793048828751237666433195788655598131229134124865025190567186180296424156082827185196744424282671741711511173741594652027145606867950335959766019897829323721487217079111805899283949815358908260275628650609190642178182443237314076265484279617027940824195781451903364874448111594448096434324217422667888971298119913600954467557224907251194048051957954242153463566969663021686779995716088369274095627460488358126530835720649089584155994234698000676297783767170595412110194616896244872340175693981084048814552702031691119260890111246789854632963946828544991195057359165849958191020183619622954648704463377390306314876245534588181833668652904218547947320432278024732113587728441634402408310983397168457795282106822202685162285253957232976419120651876697687546310904912367429582800298979122730739667628611619048041358040324441134743009903002917058126540136523363039876192649374111785743508016722585711060442753350535322416402790517126982078559546815534543503640011519869107360590055114458235539433338124486408658164759964103565766548124215286568904484756561778489820347481437790737458642147732625709355814412057898198529636847274438679880721859986336351214688096699841019903754721672145686803422279335330149457166890579406564694813924501176546397967113727978193489653168946370213752066958249794849882231177477559836315505130666122738499316564094348823976741495092436909170922192752655610963399019568514772973943128908821804958262414548953109372342364861403557457259471480497614332944970492680253484132565283008517234675863518140285097120203250703008727626622019609161014304840134819135049245883188995222975725132697920668219690935873853068442549667315886374473920182380292979063044583209313984064859737094814872222519268923160796978396680192274505587895829797039468034172416974528292182014869151445225209121537429273355441738771842219800618037681916485029983548014825449645837147770690292905118635990415139876323433222012710692862058327191050415389908213940433330337120948554102616412682745639896468753654770537625114899476721110281953147614270164076407086808454624052767495043290526785525699813623237804949103309652704307223748343479869003030645469487698654372191904086279363529975842744331791077190342799265381774025938678153055188254125941055217533306349436669385302055120292259181910896903617625762684369507041891350851844429946077990392074637986175663242202389636841364054902927464908196400916878115655515285197162921501202000011142891071956781150489905723547179803012349085440755865611604107547220920755727543463283838629279071369963609116631665930391963061611268221458222625117619443199078738254204982330225318322939529813223615282458370444995702051577149200466791226683083573348287781794989339707391349151860460697521021908784262733091576811314796231080320917046921353669406577923050717246223735707791904425598289878451982521293967019194717895561513867875608120038557526501796576091877305516236506146980839349366957939164618664192065377730770299455009464299547852760564829755604651349939050398969366206510554315904190143796848965550726343584933329502998962487848888095038079254728162661572963458612488098692079692709770503315661295443772022729874790536465356138471309866128767138718459283697261146767380778655285377121886273563218036560161311398207498916803799509004420514832623520740557692508922145159545748089101559050834705214979208542634854376137600074064226465704267163373664918659472641404671213438045505592555312799516736173844229735812884562897231128623313962789364145896623499218843799263319896968218970279341875507715661097547015360291432189803418821105372729318892736195308525212846872265878521124184500876915980772134324177378374566222855832279675523340908649042643637507205259522606482190340750224720302132748291361953664698236823905534211552783297041226557113457626717847672777637138137956104510826074141175436930874222373358786727313686082522217201565859853624978521778357520794968938122985055899552173248870994975202304368097263840624311132808830070728827136127234923966202562390255927794406770569050057082048347256581252485767654551847157353068458906136469327770007732020208212017130019733059722021223763852216668572064282123004417775976319455190283924239683250657055592073513047916829003499203047553899998804607171972483461644541429075399338118399535211611627774584320133099063828969639028790787791848562337792728321860914999508181780904738337778774420571792143983466478967174937964836317804393600840631653691855965221474799213849460132200793212566343628922166633560613800084177707850212901819023526898716218622773820954626020814971265125104340477901974945059458806879645329183276018447087709068723798718950188434744447358044089275692091298748580557225496739357390490217505058845257488998505125619462571460350596547612116270621370656794998997303294310705040651963244398587948404247303264339580473092107309908137303375961545231632503948358876475549162254914565046667546473944407676441820836288620134599149153236657007456477318824639754667080060331157287237821615515308204845513653917965436388045235299379319132945598099154887665191400684821263094253796722639883554069114641186974151050807874812111026862051742844627626844863326446459704383143947593902046096274444686058504455031482357241070483279367280272447204524890262517642833912583300221883118893482235861122775444169425437947529700422648023753248458932505460018736289140216525348127098924206712161293979452255284433520563169376834048746932589606040673133372562676310759747456308202403508179230463103461004257753590206473163750500010426078160468008451144777988501945350839026650035488862650219035371163731028449212141720011209769557387961655582854439787475519104621587068715592421473600182005782678907224358972258290476711898700519723265182095373171400562203445684655083580794748559463340583665506538098151031914783561081615450680690564449066275069166890298066883877756395856062115070166837194885690198325709627156120436380185597399504035582361999922935996081515987997711634905644583495011924873126108078678031481778724222010930808592562317708251907649515636778718637895964509427969018200259337108899635361349640847407874431741256834675268462132263290504420707350016822114478441413381600772266317491314241285750321105914776862566477541979209405162809677778509685217495969436053133526655475734481845181777199582336485903392595905260494198296209827860844173167381474973957683674661934202829691860284894751788318581130152875417415746634380474567222771225143517202615627388714942048674255924358159143587398914395810522772180052382881023100709564642840108229172034367163241955863874916437555098745835927256730195702733133869136051000618381882452440368201420314389176776090410428004654851549143324402280887592386631742215680781536754388033680167774229338637008680122457795346412202633806394327215530390433842487247714290686498424354300120655363575254581802628557839117222608109374146078791733008596113409811765738601783744251466120169057533670595795037982609776955734497211207658683880442459435362642009294740609778673866204812084531039614768570573713367811980894501228708550867498220272116654051305424129279341821135824414481811910281522457623896257211685795788714995554445280870394258327312350780447905932831671597948888463117444262945912567856737449250087639027112389235257360532171964682554843161681312251203141141430052463967854390680981875476540647102744938240793787590055795118653863495635291468974975196191419067986956688173996310356266384112990285177224322132430929720559505566464142327581340615759562456941606252975767420761631089773854852671321004011376602105614008073158061634958124483189957700991988324222528643393332517708833049197552966585990403328073491687493711772026861614557295294040495695410478733496951450505320591049232420870297941670128790364831006558516111780677077925118121257628378569047807635990514705800544485038013846440737893580887973479611533893111367772144680719692886034733841684876573045662828275658007729057831310400111788915591806790993902390916319112383116705690011896533818331433054011125682724993060617680998785857590335040774438288335668379118948097212165851318384481694731397206357194741547764947670358875640095186689298906761496582828245625753689177638768965127257648980404734807482563686886167211055402327857795872189909239428448130680166114346536765426268161482582412756492839636287423411776561182082714410496512948015244451152098573346644697357541780766812327436644597705237767719232460216814468967737913009101848342719256476516534345439595905155919003669554715776917156958560705078005149473953778483543086761965465164696098032148011891179699580192908594414701936755430313694494173160458154098913601740459988159359821023707904756622896722661245465778316189330648038069887728473276969926594836441706296081870744984193638534997601449085766270940815841042845765128342219957123434934558419488134545466801969516832779715356506607863070763728044113960060224231512657055493656000518147764404406818014161267603170462937777608676485152309325308815575367310141688098013121784170678410254492940858831759152495818865711062749656961637502621425009947527597111084143080376837111301871908930981231849196666514312509957459069568549296183422346901374901371013872618591225111659571491584027333990501512518326951441454168831883367706852570364697016101459301416448294023103729353188392057309152611510993391099000247758248368294771734148482500545100746418113862283033835712837946708045038354436309769454222198516378442014967375628974026053975075243186387936452280003510603919808945902607673359660280301058268640494260661979795118243688738564676629057506500766365868865664843421137116527242373262148494857530914486333235840935661918965012293382046299394361027094774387889048632062533297150622853203325059896917929730685390451068209620347361524563249144463751717370192607973761773073163540696574876677616824850098564006329617429886086893023907774699875400888639190253626129790913810986436688812032073326855111067682204539588207703241675028121302688198213961111797964121489020886008034534095313674367927076208839293133756084389469848888495992441262250951785061333824838174454903498812767817191074638986019392348876091245402483676135696542296730721694662041785177808938634423513059657434495899578989731059002022486136420668878890717046869505516140240746217872671701011419856999994353044925841826271587247360218726941623388055865076510686318940812533296354746106756653118640528496041862169912948811719797678945284457907934462437855787559271145947300772140935947073418602869539906984074012568676479323118418868101597713872179380725911807369971316207208411513252273858930857439001433394036981084626698959521031294902194661848225479203949425516868220647949453505207332329580230592281593303912661247431341588224543336794810036607111011409551765100706279183861213193731349870571636726908996897244787863247490325712027695031666143614696697425361013815359410940104886065233568178307957321854473485749675813394807178226114316118900492198825342423502973710698522831625567180281508268451914789428144753973116416147089832242377125273010024216607324800557383303231125125513469218456752305784622018441811744053564393233343382930899321154281679886586968498506085077189256061088787102311916820792529089446098267226514385445598106433899314509883943844844739276997889210329646413161581279648647429421556304489376584643969953561912967562386254121654565437788132325840085351581367794000869763499992273629505589439691236680912470977352563343676884946959407015997487682533308290000416882259696211178538915659725391052553263744987327494770330097815871179144162002724147604373345140050726921461255378793467656233778564024904921955206073571661386330923799001997626592948464920559170914474388874259858223969300459433407388530791616376492614887441318558798824188715885830361468992261581139398130473813443095436310036318543683728335015906969006470758725203481936593408826844200660033746054374709552971899766285082293738785973148536592602460230872904850896290179674691742727878627512212196042844271848480545059182510939193326328465697300141852866519103095368732609527114671159786283983033926413612325856682412647580184402857048147673025212337740861951721551356890787791198765455769042286627800197372124557538397758105222984151776178379752971400698781429230176433700741218751354848382144286721818266058052240825723650262549914588333947945972201663362697433164335819408490262485271809028674340718294563901933874463667253698755381593097495020781554100530950782744897100793313076925406118241958140762821168605370199417628190364773139412621078055632481893544522225507027676185973126365329527437501193653824890207499168108413193906014443859324675526972424801632403984437818856936193038118366550017802121795202169850872560081480766449377811117460136503523350892489786186886837528158793478977852856074033921086239458000782377899184696128959780262202075194345701734433750010655536254855074773763532864238637702702831500528019830487833879376724681291573110239360923273168456019338682424280575531520172604099491261422676451192436894447522385745672150807996668024656101297283606621973416328943449786007476654077689685592091702635616005111160491088728142257029614482716996937459614777279321445697869629939680502326742482841399861156599541159090972378564862379707859257395168494353683852421683224002327247975122466353602772369290849160684628963268921200869413457751499193551146147040441577094655408201186426295583562028691613728279169964778068449994168896906156476196173387769119451288024071253494849907278412604743359198840178684387201464941708951115312290012551188370482848599980574553750562445795881568398188036871989378723501794814690955229884489253204191603651399937059555148510465667402033197723979325579244830181968168330980292501656757683470214788113304775028050428538900712045990898483565402173895309890588316965885456157975444045527552420820307340240905140152241721948329984161901016521817736092411188904565884133125777083646265983201860743644375230075259951760484980331182831011049759688680826013619741601625693460654612342238445706788533021777484765887149402831796005553634579371251780199448079985321253115597671502030864250479357437026534938201446413004970474857396261979750267336926997123375267475045921041901412562799957816815736797420926717812013098144019809766264501178103473826919307141755256430520146450952240479702800379931033805255873194231774682623375109074933646520161278957140069019202381808181081157967101161183810881829657736514656541309492304811756530071978333730002166433524681139487619145550044166248913787798461791016133580486749176932515130497642748780207060136006747975595754360588395453821707911606685324256950840074643745110700426971223039195589538557823732269631260621449916968753517112807772935448484170884262967471458307014111069281310009476050165897237452966782522439189977033037290260862751497581416403202461745926555599197225881638664465668551285435830349605237378446998838866032630146363140826273932258275939541435582107052797202983951381963709226093712274007727165589411107744231141725563600538213636660417816432644186589672962721152995582583434527263912746716879040076288335468560732269955374634979110428269236237306594012798463691300535504457456945690138656053324100799547689965552961971918306536970015422177033879223580487896605596360730642317572686557355686774545424285115459537299208993953892425195438382153475572283783064919001874084034019039898336948699363952032445400191492378114273869587685158835703483466035908332281123786422266836545629794061390999474791710593081820839182915567409949553280539636869367001272720637145411191069860132893089641262842193316720936799315136111170791507883231436631225617652416665044580094880404357549453285920770562147033579058898033942190545274919404624103241442944744735624298603917714572965839871458966751290352054850267526087338960639798611026623041004297868062568602954780677140269645061836942531289891952672010956659523355997907376076003070992805645962395713378048166795914027245269922311300962079859474069275527329836020058509915479821115594203576984436183228335265806835064479656328500469046638464899554977860358458166067392968828845086981872757464242378249493762109860462249360485781965706966514422336995610356493622068682236966422710369122217126074745799572273473148167506395000399447743278169561909764251367934052566317487340370013631113293718322735651952737666982102367038531839863364850310429730015636731146848983409343295198653796199236892779994823996773593567112118899022926941027506256762296159489789653679158891228815117813857885052846744569552488765746696949452601123982402637368093321454727869433436668666941595721141966889387748284730758143929394499753793783688981678711222905885784467587421615692326628893699441781519155688692833670300796073011680482590782586371657363414277169654172190721434643709321848406144886088272745499840040260926329044321041023655482879202242515278932813330938955209475037332785669665461541093388798468817636772479675221901893226511137140995236845885248603037415643701953938592424504275179786270580079681753000980996965325063595396169576983092786321935460424006906745867434188567008739170983541559400573027850476162485391435165518110636046082784239458728627892439181670748938525841059749457728206443990355316394253146687498361089555071585403717274380664310496940493409034891853237442021892676671410048085272894420715963244839985668046910309347458511267265504782096063437568780550328971978369576348919041699153354094870386159514313997829883213286158911000762202151412724718688269593533356267123507744063813913006588071005095272476040650257874531200202554814293450401894399772397215119688675817659993726187777596379866772447413490822115853721066436799864592592448570570827742466099388424411459411564344999579361372212421638977457709187561471914007944850065308618352540225511872950500363611806791846228121896278652879094268993701207025321630774650624867405786606507841305700770192158712914458880596001882212643292011390995111345420607669186988202257125239813322313349360741904338095335568424106729154191178956028700758977096205804350105142670558479757862811992054822196758632418085902553283544421232849577977671800364041098530103218736577315591387092081040102671182225230039030269253298690773241480576584512523935378486062896456026267570843851818278362601440490662497323717067804601568878457785672868736149280458328100005547028373454138716505218660355800426165624004395152211817841616278150323512420869985255338111383101295502310001061885881074686041902133096739243591802073286189394456920583066336855363195348955119297553755486296962870083892884046101929408362137245652246840452680381177736169522357587324495852669520006573201008745951504830194907935932076705624787193146789290668213432368263846358636178389492505831418960451884993388816362966644189953789511783695090096312346441123443832723572535319850431357141790195745530564576469136206905539860290966507211961836685272988247692557524223532229533811534220630174188546889995157424594283798111386934293165547896927285583646750251863312690239484041491447427189345455595165715559369495643617276088803080504252255002277975657456571832662123694164003748134051041728581702272252297330060460238077452932530244855281056899902883100676943690514133723430837067803571084277384216122802785415869235856022039548235300261557542004728440548579939579539790553060813064299758974805264513575256676371056228296038782871162333821362057845447956340025824000460860077214354914278770114540708011153966689764389062140098364019232151939299320485937134958881102705460635810849512858126657943325000849733470342206280710957307947313174757167660345360261481767560613301326511717266254309303119735196641695687382241140141946307493006803757471166973492629597238793211285940069837717716335647604723293860592194849324032487633060565650514250541862850686366899662410351150765476974305531468113132986967139711170153565498456888071466999359253114638396073954549451875038460916281383800533718891218715297536910041960801883404994503782086946944372710994460156740893817366513717526387671898298101781065682983056883905412860007858652534329692763500348023236369167750352924241247448478032604758423605447172675792594490513330832166050101903518007476275458690524769639797078191824115057800426627459400215493436032000775013932192634802415115480791614357523718739400153104159626328215629370768923533596305695123187316616988274233210375025369634353527297215258296894774365263336633445832681363497776107956171218978984481940904185577211641427890913447873172960923118401734948875664623937877686333484675632669364506596869010137515391789399772667393014140138386967900577097976855488196300565378914504835893591961520564236357511298775155432868650524377755438275051377861699844055143805687382637122551399924350130936846495231989884690620036957989225988852123134901791169186525826995988257195090713605266740317250738703369720417077439416991851181967075781633919115900578312972406147555498423745022343383897109037517051556719826478303818068528930713843721871534260927935104266828121018438016187217629323877004820785754690763953433354601012666328948009394364784156217321532403327756480833616875860796463508666478643667012558328470952258927616524608177441259706875087224846998755539672475306749447112833656238192581297308065312914926582409936715708929021463326085410124469147494982018115263255139413153257398585354254591329905319418510439205455632783315057431087342690592678565433069299233532881033537860045541249480153090880583959911339138324097822536844753640328684988154030680825656098724616952644514845414237948312699134185600829485423200545557058774931323181263304302276064934381603876810801691395989250966531570146249510656877669094657432552525735340642678291438262246322373610132437173105221904822847740834529857345494458720700693036530698399775958745930038287414502548100981881502730123504763408395950901095051447647335466325304096799322617865757705433992527483468700116927538064698550529415517857849951985988412318550171075076230016067413731789568752099405515856504111496691113019629774933090311168186223575124421201679212715404173483474024532532322797171034088692490137870131032914357587099045122189030282452448864789755291907538975505757652962507875448435428634239757670603894895214191792775791980623468713874214689896832131804213739806634309401468312267417797145702835781998853482185387061846007699037654064852917151713422301589511031234823954336238488411307987257041671118554393734079549799320909783038493254968186018165450545636317385264577999096950420836234579643798951217862779077319751913600052492505466848076755549623139160045061972356810823020831729433031754323514972295076589252180930877506065893651626470944172702967384335672387257820841987636323859309658128477934772376254575969985834066368697381402208971790994797779350783759734859622490695749298884532969523864844394626105550117153366599939793018680426484822498068528293179012232434300707905273762995297344821429179111992727852577472028668345396296689670496753917701883735647635130169680353662926393989187326807670390460277937197902665356779235378194796131410524229979571878065037040479224596157736087183692614271480861183037032206634017622288928082445133136542260967164261541860693376128538792886330793119941291158282330539624935610943449066802877228352832237920534645773817616197513851122514753487501769771402536898693580699203009379228271494711262871216633848776764910373652957974784564799508750540580574092366931584852796170227165942219452839657905120669793414193687782463215276764399307077324249511557070338640588090820696157221344180212267012222313687984509458961979070860094571277491270349961800705885949028387208798685831534706735940583436032217628726049237764156951390855602818372582617796281303448967873206776023223809673767508066448714969934433964545737729392067971122734067029694110130039428326278315599670900002481830383343037216487371896206908741970917337215988824131925333971939063018804123687495826452350504103522890681504141712742389161249541012039515767539847089060406842229764286160650983369994265219356936048998783768417353050598292200482671436625553269902225819593983792665823363637611248317145253249841803110779014033079753503846372269045729334905550788260245394671268513336022883417749382061292528281047444645022540084351406142099644457463167395346519218551925784945179107472319269237117996860356531891738199718803063218108133757811390389832178866487349381593952497202546200072932345045996649545720733015706862586714328490226377493203900078223807804513494855712846376621732303975802016024645498738835898711445459992785364797812488326708656371444817110758767550405308562533645110895016948619726664416940813710816416928062280185223966353135832786264734339951431868171479397861814937559022308216137077521939637323630171798810065697712123176050895354037544369661570338250237836112348760787169074193681933114254369078954559700863089443797305341766456610907502634586969063089105371715467995046776024904570942346264644411781664393203292951914787628305559016869057333823281934327614180858967049390234434851221671139690270477309419748330372216188782730632331127639419934386861585478478158664412858066950372314849895812675270059793787224456517154482286184322552736839533920606561557061877766089827240889643942282142836146601890794334418599924680439613038343728001060134961654949431252694184493978481817099118129338717542185082951472438068841856879678830668665337857743271343073465147305788473490625798176092541939043597672294044283166870577455494868551728758924034617274430508293943537945629307191098270172804116541212486978876873387295000489458799304481212836664521939311862735735969748297195093440010599743820421178376054251434172384643490202169627582745420074995339941006730379464111488061187605168415711063412617683503310566875470292165094626587144554372828941105719023489399822266961155842291781203161264306566656770760843741780683956821318498334420683106723965501131102224624596429870765098242582578892927319210500476527390015597192558854340211642027013761731344358342175658364236877993094670724852377235282497701785286998763684197822639770713639252988647736008067987443325590428172033640260116207394069074259218518938749750457256652861236019256534059625415025589140632399557905908952118095942798082424495927313271314749793723954242172293190902887572841878261371120683287471451468073013845624909876499261616116556248831847837342363582031611358064949053368434222653629080949312765405651038812551264335295216113943305181714988578339146796210011923431117799378316872775255693722269320676626502822051958935808468083018447886495148626380639633054750406421543753032242297912142990833729565533596885358139711835547323853049240283361618429868784198754988778559774628036800127844999269806162961255232249477684854773923252913082010109918835199122551664052350299709625533569157629485883976940356871308505488849580461414274870216497244982349231309607131223081864656153062945866260990523452078031356868704115224047080754863006537191290198581953848484345514720464427040356903106305383598635226980348894336340672113535528829265761205740019990120825280525597673378051397271531505550919097184044378329013467173115294191056013503271157499752454621344781137707424580263272222424404746456973101401186865050709765301572501191719789398190014677215577912921649253381324685144992349906746846765450130624525533055912332559982094907397925489088083641771872092733092092271813572434780320933876477086019725267126108406785807025304477063146183039216494320514153505323717528389399317512900592861152850530939294831575563531499413955277040169562849028350027461052406295016645503803217718146913243073832021300934568738760474754925054329643017068300249156268924612886032880824611519756656020121236113794077796621859752434775244679774525184698209192011404421634182088017780264689977593282663804601821735155288537996332617110691135550211468748881795403586182326389399529135074590185536209678901269836673177977723105376848508251139840339891227770192125302632933830120506542456254754925923239305836747147478064903562723836367494876543435467257288056771362860867918982751248377355757249434100115519353626053765217393419335272896209064741296349103514374153539961150779589193926383874056250965914616546750276863646333632202586131385687533851185906843367908100475084819504466327876827432973543845245344017418525222127540749350048802324807258626294298746911669725386522022210066064525517867081153367461979120725077135740577649242665179572952801017537160333608718204984727728706200844114448447197764479724863782376298478926993451172106056382808312293523722952560875140048585214894944845986166818812638895583987197145318781543354044378802435080348042624757030394392717468701318169310141528508186559023197222903566454745690237442453035505160123427825750578123168234597884984459371299380948496589044877072395729240171148266958362010195727451973263891116272776982085113664985200094736347295340599441832905603560603854770918585565668363535964989428675166476828588398266808363193199893654417036447172157713435993609673646468112841776113743529284785959147742796528626592770810975165835315987707080390488530833197256423019607303778052356989461454010586973599687131241038802308810654543921095551973302945990413345521596938463554553362848892666680664842438106429233992877860727735596793288922817949831805982080658225304035662175642584109043806742967440317943219342517285829754149887552872034671183675425127726877430702214443389724415500645547507235706108052780624683273673751935239709073267092914033874725231022442660881235957976669326158364875765050210060471696581942451364383515879806446464990996638379796231002845090226535578530976319007441147805112977058544117615523538181216896633955113277598670133116043040144058719457399039131953679202081114846658842058942298587823458690765179358375150394059305519195625029195400095015279134211282121628010794909946624628956122277856453785007597074325480822168679473608168224866004346923420904067869595848261573892991602783933269318835401470953878496941256387207630439624575099848259962411026100215339612279535684496721275482259446015488054360114378350267887894139046005788761488125649275447805064226269006938096407020706427909955063848161660066120222889627702452464523211838186600094228304651948978978241450648004779914401337553065520465106559514457867778094634929520297415206652628315789389518693505938489106582917301673171137773211222344452597662592177617460911800868809653572652900468802408691901108944596620821580583822789529984991417293598334470624829083551402349262958972189492101047254190380879262241952271939651285413241864872800702733541107635408629807896050369733686424804484430416392581809307549226007184533808536605744713947613667809727997570664015213903661757104468589580469766653122978219687033767395063607809053582499982774468113297501358537552081792362556106220557283314173244036019900775238029675640349494974989618236657168513127203866235547637875282319146921845664477855319804348045049083804606744270551956204255334166825541984230784414067863958100525935998641410957525713586035325640414319007759900468773573430853404200223075585223801181227919351298712136569358513624745628870419322676385158815087431384389101478251492702177535611305397388413576053769776220298653192364158423156181839414369480532309566576324900401105154412223207960873035606193166539300726427079733206615608039949832195686745657907474024081774778398076576868727890653818809001014642088221163965132150760754728553747147683844937818573954919113500895717409383148353841397522474570719895701956205039076482914643208878510831776160774938587570623069522646776861950662161461309663623197706558453928204056995183354610073247564712415318306315412429553833297612925863208573448911187525959808088822404790139275087904515454629606559918593864792247995802607237336485214436197842350166376099372562436820398285738951692609767880269061100607048513106531976157892270071374418517536447250396236885674463765599823844593323811292839963773076708323443530085511658096394113903012535045482212126505063526776866534047161627759418494080250739875756908877841824727981200512002369609489330641617016797903030999741523944243310951702393901646867797255423228587444267787612440009515853591975992794309361463540545053763599077582222221103283725623360691715701935801349366916477330054754407808462668272959940022063074690841743840988726363937689666067306919070916107495869211786765262735627473868700675528277332840667749377921822572642154173512939573415810717493797537589843308831665718810861842281983670938615992494353446353709587257861401756799041251097786486550581104496145820164320191395721740531068214565788525396651552197413805923978298807288413098400820710801044301068053715727252091523243078319546424736759035785021182513813871774458116420801521756703159166506682019434786564763340605711437414071262940929016366748802524043056872333733031339944411198109517343731254902842540762852661072104783928806072106674761148074876781834946093386977549370729989953120999522067377941746962997980926399840343555253661607392269526257167869025328923736510575808031158964331940335940309917459471840915590019992056622115106944546330647046849858326032826396727601124234004538501034678856560833098185285106629832265077098083622330063273536209297539366477506180635904842635773344355005187011605257375107706064777313243840837839130448186830440693573409568319090121274444385734406840005819752211513983634752077000446171780920027238078185877931645466795373710565603606106308501725488953452410236180567464681326695752798785692602712689148294899502073642241170072755454218596874524897554904490522094844477296299741081399533113065233472487708145200204548420599572215878650161396821671882819442455193745655966650600216430319141835453243050315983679883097338379480678894376494872289083337200368798187857805054052819468466171247556371237408990172801703212741964769431807107110838521907510080442944024999112966793506666204217706100848288667925630413307732881373260553010793512011676395655192701433002369133483401648099273752725743618003092615389033583800380023969505476813143631636765266104641285672156184555753111458872542506240167836664235336966110340784843676928687136657101881711279708949259591469341360735134642759447553783970764872863723234959629101626728729505091602503799552968393060079448725353946341167531676468870947926005733599847060784394298690012613261210183941687290103600487841251238033005064690156073610477871971245334578494979794395605340445203545535393046319317148588988375656087398664620820616566464973619104513635154148574354838800151014210942955739827178693829893609659123457664645790210270087398160205580861587690918174680288100607384135592073066481311589298017717299263436010654342616017486438413796804869135528873290744530317146270236360111775712127241353302684716998705255505011424990576131689093352488783647891827561378751763314746992916135696553386915522060253298907976674096832550499791007691803125658716537675824556335266858636079664711117849532703038491099839059856392850740086393751422504256426637549868391650045659010164264472882640439655169557103035347070931742709767274264131021091322697762104389045982208189496266652091268654528678189182043177648136709641862063697206616329096004240340853781524190856027743163366742307964064793399774646981352904736208489432384951212407871287519209421544588373330301346579117968652594494555394665031941531033250932748191286652557257016942329134332016878169998278386740329611957312281214742218865824882507017425547563446345476169382829921186836868198962837739020617784867330619556602457725244885895703313355181345277464963675401173059148482677820925201714214570934805585242175381923357894497629296403341999183144886762497960674800101083311975244825961250295118284702103480047983855279861147095302539295157398101487214724262475331243760487236350439715883860129194105339088072867894857800725674360494460242359714215425327306688403412501342811101735265575560106655864401912207946993044403035447489363412762607890807012312577504671066036653523272850658754022928618563021540383235214966056196939585845012579423664994782825882273668155569332352284125287426891067352679402219847512536478726640295804084203998287969686845969210230094449478232125121916815087776007551050051807011076220061747962615950082113799226437885672372183723901171559613138319708398267938324943741536044341837542890116424282948441556966111555441703150803788182265456664883676252555981268106629926604668161911956404077482504597230000809389157986317773308233350444742287593122793940858869767080361616619887042888966213044262686912044206020216767875048776912447288544382142645549828856042042959999994939803787158170302003112988843584445456281849021854270969828444246893893923862762241018807052426769320474497996953948390329641064516639726246276212258468651467250126360699480116553391237809233405488371227520615925912716055962168413134409638990655170392562984886250683449743980435218224914149339547201524023286657119876910530645980946250774496187120228795909790606294013181744524208457778925270490931850849984135712311236449053533838458853956292525307547014965741355665669435726032250376591245912795343635363277533063385216871325034623939501120310423127952753832979005087272968428236700162007474631346910585054294414787546133807476346319360996896654608541294143233612270112537842583613995169374730728864727629503836336966035617036875275020426531656024643143477098301608892267629467453834189997562552759874196843313275922944323356132773180697728287710503922032286466190126732545044796115722019387595722427728165690626375015554467905822970372047296144054986053964652890175901858531331979515477784264835554098710914120563415903024830477016206719702399559885163282097618680227894215628754799325681650537343653980111635699399008369235145342680312666186968905373022576467767252321727973252015979653631584153687203031427166931967918790754048033729331181457755370630953974789949151305046333004052778282137386298743719231051660650768707051898592559974703115191003149521240255783567702967268920462224905700269142246240946464366254034083215397409177028324582459356691263482025491424159965837761015525370978073466372444009725095218519270973072596595531787596847100197022923329393612867148211198274023038448323495251091351726000921755176970847912262937033716287034095788837958295666091508980909871463425337338687802744121986877185798460338646281843086526335570538607496654460734042065130632723146336691628996354799941770190170638387252735626974828641380934980932797909044219288309822902513722635186759357070560118932263355796127666869718968342224322972754731051013632251076285783233789969819980661424839033208771085691252423443014922713288186224206122357936406739743107796263963920984789021358727508676098057984296187696072247625555133537242007166478281457266022791678773300670096448866204319847931976686095360011253437416259156605841245704989245580811018687432236134666326018526347341765933887401986604324978853425245036836225330801526493499158954205482994512974990143325878239948448224842274305123718407992344250518972069905416377412240772895973609396903962497952185107996627914559427522772124177346164409760402238527199777449341147290285399487522752422203155018738998861854575161674676534592967727155820843189973802352862202769896184115404564332393593757005870791830277762345477640792103663055963804802696203303131656895543433472109929528386317127572028890068972191666758694603303036889387874034693170910662838444177569381425803192597125131865452983775647751731478730364615420837741982327218198432794352042996053986190480697753464819750199607459934650925959766801524956031684118603645818789583587198923005517912394282521895013652422824874536003312717541116018552671125272096560099566779206366997989795313874416270188173151226864352747005792847983127074846454147334339256341891446719114274729732930070777556854919967270840056972078479933258163253949571752933151969189226638426865378253088748469659858836694390457628503831523787456132167146525072611101935104349241246408759724078708581125892261671378693430228615936098141483760808850153435214284475371689877075605641129413639447096470700278122985974102784358931366278287214034865932332044295814411752809178161562670390916570690776161451162914884245873820208824081878214180221268231237015626904805444735247598269957371852527578826286101359682244821559493565925116040272429006551425588975950501959281202652277942740554672197915099955575793214818067810317895260255930247407899045696983370766129825363884417938004195766391790275699463765353057945203166911660367305488503793566740385496144042022306329316436997089656986101382558376087991501782181937935020125143172512464094713248309062669672429562885041007999854318483450379709253060985646221685785022015694207159040192719572902237372967522715990278805379445006294473828356786106790962359603405059344351497154820642600806010628409142825242203249763544318507662068087173921502847540416644655462180441507868638248412763348637825580512303033343276110775106853544634515046318970224797290737268931963436728933190819663746323740539828646902197872320194360809826812281287454299708993092498211895759379444215602075941160023680701820732861231191729832837394654293717892249077920142891808184596786184966633690649588751898694905857507448287008073325573857284026636159979407794276470878344937872651853471414832534741232599567591563588720392206885074220444621170391333226068533481851718475676603260729752606476502982955614213126487037118801739854425770254194059849196081569688659494241159242286266442795710218182378849102914482571756619816170308410431533461552145886030197660400263365077687850010372180148160063714139375400323138727675965723699092469305444502684232094581377542744570676203911895312415845060927167182797877747326696233447834416377318945729895821087202433330154063667168472190682284890609604125617670525302347088879091866036191187281362767161402798093130794154125026882139590759163133975745249294515755167111611603645890383683703473826688616698526937293388755364132016178908968957765091324738321871817129864296171488873128724740120426092523843405657263444348037949329547491336698582115621280415166607141010403503493609717433555432032705001249749793983311207312742386512352056420890661051898602590026950141030020133581012283955705337485921654902865958719206555454153327824621858123466914856436189681661415296626102308495248109760888298408014883782671555494711368886895920053231564315362429769649781189023612481593368722436139114515020909152775524854567851885564529246414670174565751402301941449233713845157569710031393460942190487785125902950166560805523821403376050419241696259576197535557045770320260619525256966426621680164533133812809625014409939948173975850164022692253420943429639392743584803985477963698921615612129225461830053719756758750674331491559203412063425325831436073979205514079956043406081851929383124271936721404895783731803606122744722423573309226965593735991038287731047682887600345611688531577304730887512214826930071368420025583265521400960524529038405010140682061486482534583766760132140357219727753729382822388586435075308696996137896306814862628044605069176254077118881061234338096761757184859226095507982012740853483047225574584867726684421484801596235753664289929072045794390227862632238729994486708548524840951255529623559883141806867931637907633967300060607913550257178305466455643186687129063559437915993475181435813561375239762045546048257490606681427283855319949505600071913377192966277023830371468220300256316462159766937700701811314605634341029075194205662571647410546766770888427283167848803382156658618890593898389910842855478226178839430778707145282775636789889530308902144833929450468956839230526584679633945383087669124172803047371327962938548544315251163800216611453661578050623394088578726120947141223941351886801790122514046290739825531533330621471808302081963835274743279450019534569083806515547118237965236920358959101353389412935782004370982533529039381121600327433620890478067016284335816442903418730364602503602308550720607457491617886189937193649473055115857109741032260599783412598613259092660029498419416192402262922763810478878351143256501575241202001300166760737916145933089386291288602014715100604616921745487850685547958862133086730139384623559649402270867142023355854444445954747288337167970011593650032546012413279059362174454576361095994873899224682633318803278853756813291604779202731219381097475999555658289649128678527793299213447540607052513835018865675426858944855584323396385188890521035482637024772668658211769707723939414905472166825001358676004464923146653085934905310715694472005281849956913211502182173336841519804229648764418888236466377279610980382885621286256764037876319892569113279789864253314923430576412749312368867292199437963332270529926400884589857612326678381149396599414428502466403449025878860136340839370063760446664905663550656341646173713286768702289194299184030368827832814835419456491209188555532763652051853747485640239352123019994316081093641773275416510073173257996651817960706997990914789443076991317477580285053113842390962063333364852466407721744235385165381811852741156600651164098953840511712856548701330368778094421306393682492326758237437843733624453365367501597267461959784438106344030277790505791447891479271211274606560386664329395799467548923366862634899779489951347673539111377356176160768047435676948886404792392395304954737318099637994051062676336586573571833513633632332654166046567498042745930029486539887460907533221149535111683892146962518491559864898320178118352504815960315516442585923812445427091804702809121646621515378925752942578127460706168753330521235063440663428625939552288425830348819682140821511293821791377901108390069384415578376367320121223319985782013718524268205585137331303637302028098433304747642426488092506417316291869708279199217022876680748706395167244382637090678205598569683519621371968472885025478381299078425854525840237315391778007373798948947052441063858595918359252030397377992600982260641466587812898272049422132203726416850959296840811969806786039450620736637970408835880802957503180879057860754400271602564817465881061921827421167149653198372389008488676769686087459724552593144291974843978703767457142510773773330863367062997086810671220921139596326367010010457362676952156418181617960300537085058376175207637837637073876832213663950860294454165807258708482241609860933651148994037997060818656796020462579118803107763270806049154363131592708202698560947616767742434182486712550305037430998589168921451361294634214333920485347658958576950800143415210036562246821775445660161928956861228374219686638475323100504240466436513051123557263882577904549496669407811252602894548996609566915165685488449809903733210287427179244512057459016864585820736686393405606830933128472922506812655198506799957121311262040799934008289153784946257323891940421679785319604226790835354445684479877013356514400873812563415655509451358348082646119939594855500058199207922964071138746381116104767543961073202323591661639597930685659960807200969396111654808314665254087683006068260433739726315110788651569689786870466635199695829416585364230197210787376575892862674145048100479339669714309972055914213991224656173919242282203915760064252675436437608848017318104640218630004345967239475885963112170340022326769446607437241109363015869805018305146827217159433513029429410872094582413080981088537926644011600470821413859907864394372833916335942262487969454678838855970724807022686625435270154421331943350264911612683286517963543112608989078379224404624110089955349695177193080368122119288279159846389401992105762722904526199681153648453815669493251672748286481301108699220195822995546738527646605712915504546438154135783746485348518810338766368361498291296292481499744375719734078343632720491850417416567098192473127040181113980068395908325134014760631221952385393232734271305372688784546751642103905135087643022205773294630607725902155940755039969659829418539513925486585336713846056493260966113282014043196032169124041728555896769357705264149802183022531167552979979227211787619311707060729975360954630366400065823432080198233178538762830159320597783244916568016615506345977531131746654978094179120313184912164139183205546113475027886881256960962765436641996065528183748504825743224683487566536817072527843177684616511472256349290248890699229936905087542886849243168265470925127995154675436502496723279268499395670610820789768100006655233277054523259234124911556376786092207173888775671035424464142833058864008639077957542410295152645667228037054769412405117691330264537519121405004193751637669696624606050550957592977414825526437992499172983016050417358186837228228162388157987951436065034798937881956670724355354974392290866655359751432285342459973105543079397054997452204917577505212750623870391208205114281872899250420553429180592021998186944501575442251554962921225221548782465073137211327379483097030172192901278520560179157136765133875757905140615629467871896100778597189447659461205626963920867498037671735328496053374524699767116303317259115882610621360702991670732625580689094346826578006656690656895030864819718916998959826433892962530583286635692613600545582902989567083149148593808660835052053313824661813669606884244567854203429781041313387589197023318458400229652588505933935052797004739959905820790869749026400024740360593610564457013360599274851702213316294708084128732281992146769516040914891432446835455583268387635430682290008119290788160234603535835449154929837916050306301396748242512600545861989022354407708778079260223048622900507716663363579310368382157979656757240780540514253457870273374939346588277617698834303449956608112865219282425672635433884840729269268243755819487111917955363270457913456912729335814744279148692984727456931164549271378758398764224986193229857418075637906914720442918462773309727893430221662030629328873698810023450677882705569780248068587664487485143760795653455128118848281769319682926058692774218756234778121030030686806698552479894754167647235048159466861178838588617619278636228528919083689493502486770708814732543945021185466862643028805366484216368440889939294313189036436355694270596340457189239981124728648373565178886646448288692851316244347424479673197728464495955407480142604768971260103718909114014473933851191390206224767928256104471109086418289414487934883982885922893612314780149694080112638880526183967117968056952969034036890084156440413579777015775410056164526905349917258147330217784735937076657956060490589552795267311674797166891793089446569087292232179307905841111188740659265426395307288939358903543880368850018033243519472278676064007934282217501513031089527150996750200869782049073870048735966667354751934529971985224705380847890104796909414934974186561067153223705626564149429933497885046078051822759285580410445445567181201409831219165783030385688644256913984579236223372730603227073018672873922259789582033984806114268442021832240464854546380204884253472535905667872009568253223316410352653324887251314016963878723621995525708586961988497700316565836539047542221101371661255564806237869970330012954864990017966978440883673646118893649169061957320300195683086622262895111091429648888610880304433277636482350361418436460902949921808693999305211771235978264557710378761735013153556310470206183797333812569897703898433560710402935860239431698724535045108575793017722991716923859292351939981641453052349504040040941748031850117001627540306343014530229075887947898672701762519338689365578164395995251273000313692754225877062245867326777824534847013315476180374070867404406449613124089607099144952390317471172333744077560671341949893978970593491085678140678986964119828099145374907864698470784444615148858865191741657492638793120344959824056926074749315010625034362917314295263005103006576141921280630234866697113358541206403972901193900575155460366445428963268400944615815732940107908371948685450645283887329307939614509993116320192430091488167553845378096350182145217631690502924049235823209107496241749857134353231712748934866680654309834321341211394781729108109056450000832346641586785358333631161868769089594895197553610538901933440266009605889934306970956071957016619068984667516678915863201100425943647962111187750416552543812469871040698388741378684138131411859811946820839252872738223479218910256832557801679549744660849596311033405545239410678571477222359203186626927177642926279020033956548210845010183130770139675583217553923009171524272760068181920205500765276714172530514326777991476555700367403025460393495038559146112849720285957443534340919319503382025606547782093580049696528424824437240226228248438216501801326729329753286597834119171264200409828380130651187911010310477887429050676131182354969647045607391974130654039854075891753154052662203993521418851235114248589936740022021421736815475194734994157230134387683189225547657765431613528307611255471190231782299149982011481454330645221739940623106275080062412715399172076092316031665051826767067001458594405129958929600368820405069874426160501189462675340699469476850737960107708014204026167508296744153524303023121634185951061786576280110293057636042286121601401331868695860135847095205039980816859123230021371518800991672088969873644453349239491695911971563743016378237941026354865565011450803326095369942847804365950421017210871303646448003289948746015588234224190248286510928029176355989772983157146301665886702908420599752232054388419755110585819310772174722025715113891906779050296959805716678868985688796435691196935881543151337090365518427532863690080348427844973242383737259223535829483869775125467059465945868730933669441753344541688547259766946701253672124696330670374093103816826709124531065784944000404521017083388000774673772219930182911586766770854564329839024665261973529445441405793263337168537387873176826714872966436879965443375458764109115592754039596120889074731219937672201067864559922392324038792505119301588413870800899183962556373719832084982163748966744672612326910986387374244906184369554504236128033726314658205572882926415132544794129003204964129641487273432306894298521574766162595560342159334226204996442295163274356974638057163523927190208516108319468759362443519726707528567499010684981784127989531506383885208553959221975086598524459389433729845052684451034767479935320864679857504298095310132319055114735898553421292697945651065913381201377129849217314549500409701640763233134323484909354446562807154379390646553895097283259570740438948344556598667468427054076394234027716670656835425529447354626812386858076895178880432594172456431627226864022504237429307884469110268479380479555951732704541289156592743444478618632887583241927996489751209709603302289131695952483294829402468497781327469756567990078806587294610749981457475886608067754517698240094123153187824745199936727084042883247736471492826370098229275028275826622025254144594070944002935300702598636493948668269379417729124325497508792040055712317634203628895862848244188930486786272930162086132491485661769299893642862581641911618507794127731841381273021184325085936947003448648690492862215233097776998428687610958023566732638158887562842374601122776911363319980112941968115024643977154704739520281110803195472021871997026222064534671982071845350659050874979527973256562305615552651449296732530021029741348893164408783060541472324907507517016027175848738943210187189571547644282080566608090913372337063419837990504944020288653627756781157342154604652776438783576766271238776542438911047354806276981139675027388779666519152948291873922401623734727693473292603983879410641880014207507081184394608064834510394218316510144918429719092536660375428172874513517137054477233734500949038389801277995615457026534689457761061397637280829459110741583821641576051461591824273912532464718090254105133197368160798450368781365812312983379218822597189865147462035831770195409898064045204397115612796592341484261682477081221149400268097372799515165508336197132564916223347171491635404449715362060346497970158893448553913754908035627697754895862846185388424778064872205427001009102685446126954248718402878020698584672138248730631569088624607550290503011711556386663562852120625556049733959122190456262768176220482430147251430925395336150915814647246559703256529974921311226925465561784107258383807560367986700996784169000708377055900044357456546372216617721042538802202056510241083008406104663671137910776444455850561637755795885887914038020473688036941534658041071962730953700894744654665629645641113602855986359307842593521030589516400661290309789521966530208842793188537384664965261010942592724420983555675431192554258912865594293575836831493648526796831847277199476863404781869525533207195003434073748151102602371129611262005482731103585049966375278865891418139783145198548735292905439856251474367082558543431044453893126437836656456271159097504214288417846120242561215286768262085800691361523237532894220203875959595645888348727644892044718619756546597625009098100524144274724007803313842012408352427449413483008453570867519563331906624284923392571023740549802366213350928443214255007351695219991277869032457548394129508426547943150851224744372732683090872632490503588164273093945546817658508167333380575983464522693509488340113331293812628994201864789744133959883083455677215204848760643736557328291364970892264870461638896282813035169774180044486202919216396768316693197998910969246878131872594348201734712303911730320891258552118559644347490337799478966592252205418974997081493745119282610933495801966624254522360962870329503330001100290552763821743945119590564137989124648745431759058541794767075457463258378501435937783636021649284542848103106243336379532185361518395403200713851365798725153744729781071610462012757743755877657530014265189438106356882017979911592299751404269940919808650827466684387173036034113271768720014531192036396763212351494250273909235944612288864235941662167150328081913480402583917513047897503766337589222038393803014403620390100984940421107574354936935301066369317957645241368647223252773451769278618801893518763691101464052666176608692918455777892519498557273213799669792692769345440206630972863421569963703017841341905039702626327608513605090730249602749123111675785154535804865713121740935831238328436405688763860910962749504351885477052150587573476066356069881136151829698852185978709826149600663889560280458143104166490848392656896574371388914062405413897874487871279215575451152061575447158018037011864663874119398291015735217009638761787133163480945193955520246390814630223065541186928971300012286245500820181520964859376135425384647779849469462138660041025101570638630715418210327780432972596058162460517441746393623524747567972986980031595058652903598597407709321034130889787290475857770746158458090189592669480800097745528567640280063934642677000043924021297930802385103199063423634226286302418520846358319291422801290178034110292074996063472347833006186932208377947632912145045565157064008352234940684366568262560787949847610276771649761268692009528539339229334551238833726578412877365390854145641187577914637782895760416191148442859331432041329873713632356106180275322743358012499466830256676465928090063894321683847617624616447202495875347631634821870690698335292097236298782821543666563850308294465354373338116574586570225288010509144183684373680207067029348192077150488441616724161162689797010545505499963992493139163236139556030828040317430775187951606193256904156990395612823598886249910165714505289788895895103667410322850850262018183958679181560969169607354624623225774255226588211370537650673882982063568106852550614791434344944705106795372229596303376657760950443628000919885985373506547451658895408054632759195775305984179499219575957775109867033442773809521717286869485212846491763263543002864369406066931787189080028691921711046492873856461169910575468435469165957666686666003191679079917658731289687580128486021084469069227695180741061174747862404622077632491459050189725772041048464462050652450167249484819181260444696659678532063722144912232408687203977070143838435896193697652325774535719178486461575060858618897735726543836261917304715927586780722833019319700804838908306405098399191232439647914934038999923745493284039763442546936778399470934296248801371643759754620823317539794924671245637451999746989451685132861163058415111042541639477923412955532172239907072713673305357793341374543798264251385230004937956482944233074053601333672462122403466811316412494230575058090497427052024253728149889429807024030617970275417860236842044964905328173710187844525586830707489785387097341227731303358064912048653050850715342574359144802579694758842782944930517594738389046906825853352884001734453227213904008884932686386252284877981668194630039874492337926617975351297418349647662990108345348048582185656102058623250871900494480173577453780595221843972923791132093048179602705144218292657521611134564022471666089527507969407118069529117141306125904381852643215759153984643901119458652991520330177879229478151401003084950543023140680970648881170237489809347952262235850280127611598623985710313074570718654965959698334864892166454629263561209945881216819007299031865652478954495357196486397011597138254695145089855347237189856735167830236584903896708843405215929636214888537916645280082872304863633880174437249936113321519304838854741380845939875612207076468854455819532025222793022415258762923919435194623920955553121629494103932638373133539602690223332974502691243830477439711425292166505251276039790276960631076123177882842947673868359635100479554514538804962363220800833494224716548926424118944785643577768854500388639910521645112753588492760866049217818955190407260417667297349485913718252050370207405909733912483985266146719986171263985837247298047103198883275896553212431440431420904251755205696502840996328182945117727797934971471882743531157488941305753441389761665759865092596416709930437894550436280018397543526923857581512302737185899872093605721131755966119963353391630648157700256008219039547451437328439271193923176441076509262721991864866504804368610859268295638602275955744207879527128799171511240661482979585226966171090353967809889219917808313581183239386414865075500825651425141544897185004561320619704327388504304513313725975443916466108225992583221220916370988620606073508051855473904437673973735953038250353146123930425655603300389903111511796580109267392786190928388277597848682559735523541495576049590629947113433544604105899847597030096704390649779134484952654195483570245419921331932654292595802177755231216578447713417659803601755414841960722903490342896358833170711893714978930296123187975946217073124585949983601836018219816502104687979726460979400468829594448006660909271966156419971996318738369078349991228171643830264786477525510307073890099002382904563678284549632866601426874310741407558296876218208638267436649171883028999113531152787370042612564837054693650054105707075146490022931753317365520911812439150503047722779259379465927413796332377091201885991163752469490312158289520014644023689898343664633419902241021411628318589923150998979886370949160971642984000238531792086622506855236988082670070986161458780044844099606267463658728418331316261621162009570877393490410971408919370242076096851005240980282427992820981685323440042190656162971772949195381884685900200580542405396624658721266885530253618193881192337250509627090429112781212371153496617941148252435515888284027676407865282209557991531741613616244446372176049852612445957040894499011788408094484592326684443637311087438549651655860115386885998923652581131832323374197321572358891702465869633788005497426555158458037092493267093878749108848934811978264362210907012235290204622643811328702196942570714858966648583087746744337105591330319972777367208892513855611252622496683177514393173263914561815836866285725873276158666231200197482275468656483281967639240225018066517986506060336088425675406414649474725564859787367919138975187813787434102101646534532180048340695651063593700949349667422805841940013600069737757352122354578866983587787594061358312607846301801415857917160361383684112266044770573638303552015007177452345182353733260008223999713629952539866846026476231832631617829215646633683703342362227691039551565112549051114124554005035608397548321004564700727417864613175893917486796841639043532739013342904780980299690782124858311593499313212050082440087035345430790913281458478394796073843890657454930497055595145301580586817555817304202967636852020821979895025367053662885108353301531909483902901115201414127008393951758526646432462140338425365288383638315276946703980395525092020365346681954861646159973312301601766921788113135649034276200652568651181897054952376036202549463735449241766511809302661105226499347474783454351959320489898093906322470589181342879134540299670916333709237460232160753887912162458386893062963511435882119276575895431618711237066712603270272804224155328031435427327910485939526727974740163628840591527176967743476020276362526518589502058302437849598954889195136130862772096603887849734133391928999038296660113161956221139832126458580433032239004016028811384173538988303475181581169580884680897767595003583947920958608923771118430196116455192561327676705755242445891046375221326201441083260617408673368397945137931885342078205825010077511130854916118588945426387948670040537507753090210457441722501940855806858739973789964361298235176488538282795871305044967068875978491488291848163068322378588262845404729102515331329771498301882479251193878641706497544874674084486775323830814504710902677392476764675007569957632288902134040002721113794875620202761831309435718692068468856537083106291956209056598393535990875021821049777003996106115840781545428493657734242220073853916324694636625298226994917761051298758707028631635280536609595721001148729242595345019429545976304793609534287475313804229024925466886921900496878438501808671667080721222807006663562069833216404065716110112563083413278869709062910903888305294281471615454960568427464076961196986231396318283034486364442130744859596366353226424308886500994649280530903180085680239210775230995119299849128911728880293542717827159617536497567412685112262039214614460952231049778401963491524403298401868409578725720036604690769366400374752979993584409441900307173872486651621070206241977372028404456763889214475682519301236282802296724647225711385221768324110704983090262268139051116584599289327977268527133811634887723831172315703844510676025124277662042006594501892702054686793961345866269200298294482715185626310487936856364767278102420579732694087711224268884061077926577573143994694601848254516919879724227261438039994216013755607307916619713603392915372676303931121958338073893228362363079330190123703089175515547772802262584752788658220038453074441198856330717184435645688322192396574108198997386085252174558140167910928706985502671732006607807335892119363267145767021416245254519584122397176497982540757244394169149876280687079668594649133522826385852062458336149379873166719263477697800565349681406069511430816411842489156565520453672161633485879149061885827392035629156465251316214647322429993784041257937722323742518473382120909609213905404488135097029734795975217843967285152668851239939944376853189683761625150858642798935423102160565012122998984028878791448859168208765178284253551226965780951779904708148157284468384867835378957366732583673954772627508770242826146837291346417474279290806117592671540876083791374723937381160710034147709044415954591965284728347410773868415427840892981469274900048802974249379709444426465552840343741121655626377165453477484495139141550152232308651511062742485219056711908953982056388638917343565406469604895369043780743360567337126631208682056618502508557929503993423811194770253813379915165789140771589468387626587111382898122014477675471582166215532423451934084198338546368810520473246363406563683820442040377522729485893288239826396503870706958990179223416175211554992842226241778981775927288537117521799685046716385538452910954581277582983944484369517160898078061077020400984698396886424677347239900360001251931555794551546993793414587229128818091372585632586616750262536273180316059764973374389898411407556577985373883254432342851375035236484917880436521319017421899700503502377396982640945695246667047390448418208573880681210367980444029325586877831224210723938219572137835957003813642040432368745053459703549563876463843584171867031935126009193749257896077021634241913909993804280651827782625049205191542044679877346853803717325815293968658956024701108111718655901192574132060253704879139863757364133359844633759278223909068034037511480085120287340726815350358658192006631920985713617317466596992181531859881497136237316238667885660567882739676521208862484727259695338622844664858384236530115893446266000646950090089170179618839428472683701088359408626222956364510503359872016024726644156645371532234435466888587476451955533757035737980330581145227609756776201733551369509155657698521181882400255944411943264642927385250286686025549821243554419916236589677029770607176643069357041602394789797095134752255954348470385060136470254480516820764583001572863270387138996851225424470929418282661821952708657594318687499508482992177311466346833848211958857372087085579502256893247751670274404540211173996716874971487259179005106650947528623760497050734921827121329502171951550790275509068106181202450165098476517409003111130042331474914962071097346699851673813124009714411482193546653872356981519874733366081715236676082730628224778453843671950839954161593259425075315854088675646423280451896465917327773517231840742283769438758452163248090052888145564690410765775604662132809458999032712666696549620914725979453430577202271942608725107833105589832180505159810653224223775197423725374726607020702145174523615458704377878813699150242100593410132562001246309558305656037134263234854633475132986570080666352857443099096838037454409319817561556795319328565538244245602358989662852890523039884617246304576942107083818176140944717643229618831362329900349960001596808039078753423367799827370500000833968826680084479734788264042579020377420917029447271566251406674870311776090591441257965036325908770143690028023645320794206470272738171392007489661948798742639618368873950220374290925275239594893116639524936776704861750943916861206174128370948330302942289122638418412618419003875381924818412299597936285677050031621664885596072871281031963105912641195910870766840304494474284764290024167394507045354894734779382229733996613060770943970950695083814652769650048525604901519560195320611276580586323937238218851229582605267781178949093847361557775617593945219597962999566930737516878047079398443866252838379320302692595642655240875549873651713578199875555991622603933097475113400444358619945273723653115246859423128088258238357324419991197747192332296888996551354055050757027063763340965877814981532593189793394804955929667214276469603636016034956195816529600243207565323092028575179050857449932711296264115629414470866813879831577020463312092650775641374299207854583337090587937522380042313363771618589494167820262114483343663494259526810457343521983447419777417999047339479740930596492764163692778702399226714057605881481467137817724239299355397467312212745360729839710782806275119868959450371918677293089576232058050008177374075771662831848366690783066067489315429985095380973456483430932118324001965511195159268040723861434744476296510570005118840545964163971031401139243204794547043179277462394970705597760543788047997521261771227097324636148602139628215693640962622084861759396068032467885304189315709608287768958873587560074208360042994652567021612163706630369935329071174341659524234317195736094387640219804635157981802712556206947459615954695780194236240058690164419887390356767756125971106926077070712704028521126950511219736159646513488570166927832313518795834633859125875409930371504989344664911450090880455808060125136797087529996133663506800848138490450161465406713224273597980630090311773911471341971905674211632700295698684086363376177518497125780141001985459563329793806023367262436577823074091720708586269122646041283829234362632863246190796229109870489732850863640901818533773179527685788507545475149000949535962626571759431904158626509109676563167882070406012190578484506932834902244252911493956941344510871862157921491645060408162037823871462114881601876670202923859533964864153275826930396103748357586924738708233231573163222102739030695504870587044663297296207632337419257698670129221930467013105183721043265721670554178454211993055532238224106129058431685680697679360017888739824691697010984033736410244268943205736397409051232119741515739643646279904935563884820439658103711774114981482218911938731450394951990607899616705364105144962385730547238234646437892658032163336159239595542543241568440574142835223438898394390623498197205747121913987310906793703378296286519530161543833051178198614867337664904318224357035282159269665616739957225005826482028033128578349064479330299754214091266760477789388062137537494491506616887658358764971797824712869398409032080392491410679453809262178892506973970837913214671808025568759226625265204110837442552631944108341790393899862172963566800907488899821404205410037678363407574980554329542709126306441753051727741476844867067140073025098376597010889988340363279530335947568662211713284838414634465038465014482379321940217778661959993688218920144776774087269816013134207670113021682486085004101676679527049894371057876060211064727723078070405756228238022710683770228286986362101656478374564770755935989999900263395175889670296145477095158385590493550197482672163331161771131809127752014001174013576221172282990508029950384756068140707262944284333771189050557954066214820585051658237101656003881875453828479679352577380658607235156802176582948958359757348127443305368822584112006298320585653729079360795800717477025224398049295401540093157694313765829495473055997498175031098277346265680590736110024868579328270189193203781063839485948852982861329691582951425769767695819158835275480764630153235709716397410398182600550237969224109335191232386798008168449023140545805333682048751144822720454662767343388798787237898647288147629494194875252440319149866786852092311460000209484479575187376275008392438729745982353071946348067500155312831259527338421572746227494188829294933116832975061966427911519926730979805820552324086326467365959287983735700902900590246450597195303037053474380122437175969864147290247967259301720591986724393242997896036842482365104536143533805510586620339058453098653229764489116954241443158455186994130182439982871121169037154856624784944286744506175465130347400144129349956719681575852344320288776438732629396130977530357158823728232126012316962631714800596268870567256408825799975138150353746044741057881589184971184461685258088978719111325927971499301529210321872718105898358914113782267448542263020577833703111001515894736070742989550636636654836595771986279933311039934493275264362125389696681408313872969608834047252707234465498331322173672461503712704694441599076706805765504189308189357870797196827148038786171426466069465226002515849181874258933149271283690360208482680399552191983490429247841466384456397671328919358227599951138496709292024888574793610837931041044663794378228871083624667955255873628797869731771337099560379736158809577153831530369219547776966932832640495495007279697147122946717123229714677232550809654853802282590563492622216276627981645467239628041844406120093821450225458238964286578439323305970233570932832765890471582445086137457114873801749830160397050740204995332485872212440864774807753937152078337589616902943074277516070179187758040250937287844023302459202161277563153690189152912509097193965338842118456149369658477636583562734271951495443143000843739510624608186600539994213464135381862392524272510035150680899212360575750780700623308547597406239846556109251677416643167208467037559410245579222374771811188244574536990487577733695536278663260348712568586499524951891454921427399013795165390739401425921799539647786005034643324298406252125188470422093953419184621804552437859632149736285158440474478646746208875684499456888327751083832335304413657854687290669702467689332662526555312412580332121665907584475771695834245577271173567204102436123539533246517692762443610021445154908181415505019213648512769670904979223827674878419293089083520728591209197747121493507077857861358129379778733397649374589840120396968825138157735795034151315204643783809075595399804549729371366564875717083913161231247089160220862980883026182189563807472668110366439739229306213019673691553786374602535387701520262498960546257616951455048637090459680346320797213427231297827263512039578907626866070518270121299525960603691027036264400884620851304767597540363170289947368771930343142113030278763474194913498643854070247311398158799449617883086587866270545408036982846632357434661024904218521951316376370710807545390019851589417403213013167350162925696146181008664054820250152482701136049722544655494381090577526843950773172276143950420783586353612946139704245203504362489881374093942258347323150750977873035291686529300798046380457860191580436019108334177668063988425630267368094959295308717884591556463056972891045305969015644107649850080598106515555702587815687938386859449328519815273451941049598011662138474327465433675296652138735826504753224441256741470478880518566417261856142405257459981033021148437049913225709729781997209915123811125735655074770726767332184939054117139183134124113490349619757651836371169420432540419446232356871221172870418656055350697310673077171649597222710861280607491402581905861020597076094155469448367879293445377236061156412272115555710986121979296373613676095790315216295630586881977102114748659097828782015160953781481558261280760259222513867663199174983879759972472930894489861414426722149351181192056002711502337604250568144164866850677066377498988917501988397925310225350255900202890382886321071579755569386083902026327788571929153642943672177317085256432722448241637679972932285936762341684817964352222876135289507221070689027811124311013247374654369604352346292131823064402914094164178747558961667494040036701090469933954127547397850257856078214893082735120374117677929297011595916319662094910666288717727232271905773973348683939417020172154503751773002540467789481765658892197690466454780832837133030753678812514853584954333712379453857017746933393066485804328427880840061862858868514379825673197100729407070018130438745179200340424190933053633273755514839028202653695841725704978429367779237392721414579544091452476173365553492078270564731567002755834375749265209680226937132687827366784688902648049831161727513544030289643645806976535989090865660742459716160186747570972176411492304882325510808841307521557403114565211283379572280904406680309472979000081914703690040696054619945122601126524486587500854004143379268575398085741954543977508798953092201686252474148732857726112824459676360135503213181313889394309203153313317606529427828048619143165412405462802371971463679953604255155206883280464200228541373895194753499738057630373796759059549968312192837585581266263725837216830698008591741645212883796258563798811807278260195047522768649781881200407482442852271607581634039250526863919466116422451620059415173154482013190720466942514624361521654832698235735950735417585334370987972174447009944138070869442631236442364832944556304105097780936558059823651307678781317062289446312798363781187401526757580427853324537268584073037701870349657558427537121625025723532861287561658163695559394170886046682948396062308807497886418676492105542590334683165498258422158855145554004622963668601857357524865066770627835462904992082403143475575005890564168780170087219448128769967495641558443987047527105408198166003578176547934109757590267352717909938255811490903410517181562384464591540780487811745361574476557203244896064289754467080612466242657511839022631801320588190091337825079369650721459840020585251092106521263783063430941775106367805893721202775307678418509282395045093134076041610806464896719867430797829301464937281433530696575068533550942430714988697225088951734956254525948560526371807727301467444876311808304570931536379846386728033725561252589412272609112618423892462063045019984293463566352283267926299738859037340268684063610390641397810390252343624471166570446895719045809940298545104494636820870236652596392463247253720704687883770391220485992810206357557773706839613321907877028473889006207521158549247034311843697363528496202244733401808012056143490357408823787366646226621944122309220463306250936182846421718396872796584502264484511169807425903308748459133528763834307223298385836650870974933516398879425102087503412179328574694923137856736714028512765800595333697517607768531479173971079868924456594489285982647501265305378206593250223936054123027520964863006858335803662248882493987123856326579548571461342097324663258930970992864962283195118595347609089792464970811610936729434453473705351752650580023774523029485851160917548589902749743587246886211877202220356937128754446004639035714139673143381107554210906978137600418662773679249246070160759370034217591730097209506574711756031238260136317584825530895030798292620924002408367386895089517223035448332521864552657952890889804264251103311453493438174335564283705678665792516071777055677205202051127716797130765552799436033940247781050307892427458471905929830600116815711014499855955793518036180010014047758477149759510275993798235350496208597487764299478000200706843644398243525561435942634109132218302932515965967048006674204493259504379648584502065829312399465392748820399092573454574099912316336412368008265279042730745254410087994945668908134481584899000677639178770825322040808218235282287991428366590527454208927843203283738321253791511916584531285770921024578679967427020440666087976554534971979179596392400576206359987382827345559608736024408347001977807149639094865069565198068786899374419136044429154294097451798952399255058304344269103147799848593875670938341662493645558447058941565579012140250474123515442817102949699002584675856959752862496259619904935827428917324915349733324004445490442006597539515655455868540930995465224885199799446177481930187438250624345693627709739615326281757697061087934412072259816956818569426747962321314005573796449487021913963939235514624480024333134945426110395067018830943590285711179027571226976041674157285990888732581720300681815046385812462549702386154880409678279512330365140098212670495681338486238672783624969253616978752249640950486558631253781293297059787465330087112086794987081634383312633608261401764201333427008693344150566229914412183035424295159268047859216432575098863004631904719085381753276658135369499973116276474931103739461595865793156431868741176192194680952355798072394350784930283074719898448427039818780779093368509962292716274890337605060070745444675238515218516576059648653878948172346448701897985245893489269999722116711383309216538448672589731781354429145432860994332021872172845545341353953028775885570277197634058891286186321016192046663964924611543831065365775359884747983121531829260679719434309506104485972790294284559050409513818500584454564639275007348272711444067215179964142350762960754578458855837802065404370933680671158891018713013687133211460702195688464754416038365721385150122402682516287663222476341366730214300260212230328096857852082699267915232669990171673770723463074532762588545378565122143616916429934800669715442585353558292389147280230686105681124400033092090985638304820697093736512363473763430518163056066103238156522824825199052580492000606298703510539305971288092655495607304166130386529187903514053218143472333738414378423531766699880100713228385839654876533730496107054066158726467039746602933730478054731570762907967244439301104116893927874734952221757043655138307615550297379325620517519859287276672448782015150417944023060090818461003128616463966305441671435084157734789967409776351055040391835746810674834421806070498426721436768663373268145576479179745816213445771919049197911869652520270554492688064136479375746538562732576891633258069580514806627624919749559661140587506711005115101389375410165642043144640342362234565790750062652085159098367270900041570741004604506934247257700783354404370083143300749987354566763351858625270795805760503523007205140136983907366202882966917677935137310926875323311703672627397262726831502867444946653042856219159715921155426034451967643083753711893462388271778666752189163279321003067743050955478302809137875164577520751672127709405775456561847906959272561904722863454850697794670176506969043310361251091427654816729849896290007600859948281603478277963270919028809034663397149285368391800535920610703936036448491999079467382963749292713014937689037909858375580036998917005796174741880470892018241282841354159470244434739269854528968518979861435123475199643036050789469797543551182522724201894156375564487556272156957730825626391542137328525890117616259777996191807874093502175676063570215382107013186116325294116366267110108652713139128240360854738557366487330984102881275975741800896302860810494344675072777217196810302054231746394750836311632081531314439102996319989422339158940401555808279522640045685646434189208145086697900405292080148220776221407999766116512233617344880890023154683434284541419479016617635659103231486117004599906975300403118546981197605893569103808646141648367389014777554218685709983130164767432084083749415246143081114587346850146018735956436748607160884770807178704807824189681086068812288267622107103694678555656816892271266029115892011605815559540889101023960808434806751761766011967443442350391827321260478452206928072590858239038065835528262825925436933670049410979231117921535794268232434197999636057329588614423429535840361930134299436120915246001629663237828132030477340724606422805669232684954003392546252509733802537349008997150297614457896727252690205779830685143503738700215729069458131450912880023498495058024981129035890979105593373283056655251343899538486856785126282286408148054230755483848617656231059637516032021163142811755101258501682467899491768733944420170538670247508848998364685600124626296344511084320640173533023679585135130757027222308628751673916483758598849869430925408379655901156991331881357783985307481366390913039307133597455065114030936969843723938475137500605495860503863235291778025254545488299681236886690722853695944788015195119773251188387922876855241956398409840824721260370471768495341273373827900724503155044491646991013343138317419994098266457742179386729846996224874707031526807507804275334561528146245027701028203535281188902740661277075370574687179984019060847105796301257098618866049449030613872965469964445583410141551443874077707375597799728121554348033570937562743097521313964096354801499414031965361312381650317264222194353656027158289141408613113010132304501811537670493361668147307024521274492746682314021721339243905585879437720623192237210285285968891550364082544704131441513792024179992193559867385379988251745352080041824132087987511191459936404790016018358129777809650522257477743348662367651841449511485396603050060476474536934393938346827290913457512798083739127290803991973386973893844445112022124790730355025929226038876215962854197634724757189427631057050319466540109047652146771494387577368731984627762615093333165115454039668616911860698396672251043116251069913436400972899833849468641604456297494627317100183881209187581179508486732088815288452518411221026443199803072675654589597015831681288375769821529506278010517643826586857561095480280464497533874200770985920269647496180540999809107211640948381652839469000712927715324919305552495694232866386541465668077533943899542230984760636304625769914159195352666111602985464738871939272340926683927424442789063685037190287496648757106678938877839503850276412686701080009355245645685633977098814576875097338259179429616065543178245300933845556383827057677282977619651052357550540990522547235521260182107775191666406842231697743481171211732089724175309990055790995766053877889994718791626802114768356445625966871657470316684119394920300426640683228839523328558338889858350458871932371757831981965905123919491496782903262266721733426007250870006129606628460012385058921247561941946834791726703400395045598910213188615535524519348235854386970859818364318453224763974473095978552829105852238881470094177725179505287143792863061733694160636773109119797165071033912709221190419842519653747534121129854157022024519840630984117128877229109443705143058625407970600140135182257546617070461424511485045752461311932694613223531631526569512186093132828992238335051971625787129986253530656730667567480963135238691563825825648166863368455842057532275608844948251428822927834329424521804794984832568950381865273471715091199768991509736098281544135943042003329936518834847602025393971402893311266459476221501039107167417680839406523403330162038065921324067147733172394106172578804651201925623882845469349557345777896404687911465021800280821614564674570754156708722823067042679724687273688105497387681592517961575828934668184727426595411701600202277669270323835584842999509774891451073963016895386820821338608112542544507276690317252309993166054256923899268990794023594221616535366230834097881202231671481199960496507665959906424844735064524072854695219275119230713789077947669054911027625632223511800583678949148536617778797216987303218958371610381561090793906318162493186424008339383698487291129117023427321264146843750808755115217547769569274714185553472623257381077129772546482110273708026082910510522510452268482393045421639191663463662248658705565522577974692192085434074451295437474523967949477641066911469912966794302250448029961073366341607383006513370652068733503722465567993601762318202360571709171327786815898103096811081423587551509166396079330151751762681720104862801461621909030705281192624114568706246830797263664649063139553246925950866301660350665605277118739686465104473468526930116701629295828850217811543468840469492095807659818971552728331737852302404732755620665749734645139216369555722125869566095642224247575794200659426387862047300721430301835439827289956430165864602562212177310049419636450407211374915289571225968800251994956883768045513234105952292464449856860543786681384673095682329243598200174143845702544968700040119640088179088373212392081361941604716091681336444086117969343549144502580099529525352110154952487800537897795277462112186814157299277981643230785813026832052802230132307797342334747881269835948134841427854766944404784557226648592254212150780132104253237481471176054835331092749393200353136284396259308432159530893693531409550344239767189030592302974049195908979751615060850149366793226464674151569761993592537266387131692838145190405004240640645970533339566436578732629430035273048156021711440508872462480533803333868961435146120467750236280797782801344280807811766395464052486150097809504073661528183344925095235773828117919985535366873870489057750266436899703013483688087770057592118878860158200325194132474107826638286736203731186895465088427502006660642799209252988550449274397720098206986878271590599656451396030255308977464100650818880284892563316679626942559362639391871839751808741199083873317026922425580341901388558746887890556058400653986001892247749965695098282883671210507430055329894870510892744612894254699600333595573851297006008166187035315980634621266575172351534728040890605591518934565696070004581114602340317886288468232714045583244925308595420224653867529041398054269251044357501849645250075774291482387162117314441905673344768656612514354468678357167455009798242434111416369758785605361344727625045838751784306242673524315361952329751318335496402128008300864616428161154032102364167459925874103125178584050467852527092051391202738987727498594668167104933195511278027226907276038968539315174470984571513095964339625387904890762717713509579779819302608665847136369244167246491485652798820731095002869488464673230878517425129294874634186253843034815355924206563409886291299805677415760694292556953403667703786611051632879941303520116277540435898785982514218744509831364490031172876960224010723245988900406219079370154017009126124119536307619005074042699502264406827424748321475160262455079622939995382346635796013239580380131756697331093239300996032281461480785759659227115097089550249745724502095425466288460258285443159251162517188255929359524053851976112172514087545923619725746660484687973506675466034749185943678407744094055340397884348267764284618569493117389511351620254065854969832527946436920074156852045646038767143323412567610601579350798269019265034064840310030878995602972383940432230774792243686812054582910787611366323640339926977789007543264894598908430930546387139841245972501766667815085720612081830778194882859964837166445608543160773470696160856531623032568382651566579965456086272326238183389854988896189903440005032922896468981883176896748503056038546577427244781132998775081137711972193290866959378238686552842433875967918724721742130526205092355337835934206399276850594019064333373008887659013021552456911283533076765721961013203744481967176053563551911384065880191866507849146675173499870234276770515418401908265171655007899956842921193202425060397083586254832910474241411192561425324968366395840244340665383355525179771202946974383729828248445779187464381015640870027250436178722214174905803990207781474165381070641629337663798090163035536151937715712261761079314974403308833148119961122550536966675605675584927876431249618819726808468134333805951362842745924204012840434370877729025727452699747976772415593282027719221132606524367941988550576898901204811498539351138728584966253277771725766128802916607888252854485172091929625481622804661811982636504939783037184028912035051816623100594341676998669732371243239220189183988060853083523837165126107958246136651520752118713315506942925779019335056842330635344202433988189896380630284003821706483664329291994693087201772974702119482498893986528363737296610561574901981330545525953382912591368767159273119919396099226116824731860528205023238215649959499647569085042389904187352822242625404550540856672244152934126431830096290688471321143642580261991745545263810914617716250367157508951354464913401901694742803936963644662768522670033665333952531337746422143069116334823882176589660744190944472124807361247037577864877445172797633953051596885319531943481417461260243939121853545142573270668291030877290134445067869804167491917152270871522565193133703694293594285263807869696472836550933258141652230848657797099295840558216537661084113061573628047253678514122444210942775304653091604147284928122239399176139198303783750544834869663393436521063969613221201382637114119115661085278690536108857481853435464734470590988612279945318545938009658912059021186414838112543084867798451407179817605540681504333791424514741059314193929273123117416784526573542064905610541434622528523216596376777126862389516367295294302101460446444113021579470860701900926990074574567805956228097343705131703291186419352427602268869663416245257014138978326602212929925483227485800065349547974081251273513049221045551093339742258161031517790243397830646635766672435437198564138416595952566701728741730340450160900189039607666517342588867116810160220150949308403442929908731796045415223562756582155606379504792813756492808944578508095361329216125624726490579853194880280504621543599680976503904672652023573255719460783248386974343549927871823335486242290622380144284087725123328369263388466257402847320160925125748516855070056451766138082187781016948974542891098800687298561277325498964583991820749462429773312898580900961507420356147530232007601776854584415299043609900311760712305333912499425304896747518145902689297939860046422738905198833814899007816124023488150329151707670601951611021995790594702095831736775131595725594740944235208985279316970838173957241131530494984150573464709938207239441478838830890473098765920688261108981618202978121971009508076329261196399466954699074575971004566958769004595224113681989821789813827587892324063327337848023214400944085115288041168527280268918811378767439771715975221372640429318644423936556369144633847205116515839689259614964606691161669344774825266036685589453309116216670656224504598203748113637191514132538654457542173155331527386599361667841579189473201771458760616861242202181003042617062738534608098427992737306781630753093856144850230134998174195690746253859886681570233470846100071986820046993214218996250093679527754380017238657438012624619579191808010287036515163734574341634405732056257361259662465789451879479185543306775034640411637689140094801702405784239287565730877708512559431767606419153049611384304879030421987707508079463438459886075274405361230296077106173948217762154817887971150319206852550808141218505360360437360918720757895399903934897426727716232469278953567337400303369598920044381326298578592418496437764528345231757551143259555060823875188445459229238299771409549818496821200840745484296641547236989875627397605785252241176894623038173310149510827696551437978748991352832996216028127977447603579750235563896091683509945142073307374166724524773230794902905030071278968428293869370189778683501662283336476014410703786477706608542478145098157205814582971432953053465763429001623423816319233324844618443669186423715803828371307116276696706939947134827412067447298913053785624432851094439353388571182803516005022681389374695391015626116129415729992752518562452964458628041921754638335503206279155251001486707596747464346325054157190646901240888866101005915619494358636150254907122482043652126457803100042037651156253806941985620369047785175719673720318116756173006241006284836755875377201298457395195796841326046182483963838122451020873554703110260976325198745342003554732068328985424002575588758351098425047867813190806911597392855199290788404788676701922207571183859290478022130656503460653483095428096858418685539233900368611978880583957183282040408593878418311455923288449166850048494067141784501708338653452970304213685003418183460574538879363566569148321645816988173348252707764466356944311551158572309031763045002040513762369202157962747521008473466291968769277802131500134680950698135146031170511768758472295828539200817432331358435448190720742536677394388863361722217967869924152184906802294607089439169727106720877445599112983171053092850393630294057197467809019843787407683594455946990094635169709111603084961491245615876045545497198648728712383460191681664127506771886316606955879557245029159227488119322058446724654793554931507858406160148497890477410297804589475733748082159535250259034520762453625462721628165970267379438530171416899871249339972781526922405609990594094372000728776688500927207913533345619950591102465925719135491748688261260434617665936856220268274195941286834611039755684360713898689942812499844083217762851793177754224858660039745053202961521613008712753495222082784024222396031225324146100318805273928540020374683656873144868221056399013521823969225929672823024197260423073484047851005003107768933940414067506173588177755170629957154539573445353498714023783543245979722029389835378233704835122177909026099436120938458426629932728628664143864641693258964965304288237116952404760006570883609162091485897479274726331265672831239887951742076079764388115047103657284267716473836048001689872861110663477999468883279974614848538244520916753011171493822234426986023523874291252604224323205617855950891762099443113769011501612361001017169752223747801624243101144958606016495737890804859389137010672843875926341089890920039213765142545609113631123620787257604764306389876682630454690237328041107063759821309423354525828663905841931786376035629030512626170766353390950821039895133531809291740977247636515756767065337819456233786637094258244893236909951169711199704554807307459571415464160052793454158378839223071638108061561241953323175365469341340252642353585324666148135937753371651545207713336252127045301247990031354542293172046158565626742004759784646080909783045810355919330399246639384057028155517612917390754817985477238834543543288075033090970918594711708200381493727839575139782916754915870101049466256472657459779667426519911872566240494660521938276258984657136963531295935603322425988152271706335902108185602483231358621980442031758740935663272914105038655849347254793138006309051865540208888391602793750702096751286508701531801055457540457622168994074494375499323090471465067829950867440649583267079152599739213316398630007833717749648191742006531466630933994237416619562727032587697405636488972137901170119866349868233952188364432234840116776991246885585745314328965085079497342882877638593214050806539985948011200102329795791422426635962700266371502704382802665723886637935494383333271412681968122732201236242776778159778689004458725991076377179882978824525481317538917764081355075910881725980104412642102281092857355186135145689020764108331926753312489423875234023976125238034534080230359888855906946966913633376142876714407037571268124256722623169445265802896403890589335591159675640740590291702786130277842583024838165418646051314638240025679727904606735563796960882526414646033269242318843772672523424908609769326153776757524457709973881221798421041794476630531055986912634211851761359804042332339531704104034475873208401806654105395100970588806006588286159970408555029698230177842550804200901217221596323511118097207167393476699623866417430490493022943712160540209328826559514857733133388182891412125833132992066189759663727512968223882490934150533382707967708144655714408862556531627979881884665939948598294652945480704964368548452182015024207255561333067416705965909799909658783266636709991727114278427416682946049173403332497089976638321574785308883624433886073444579365132843077479975747236296500866527944367499588465529418268976838642830752074031287564724010431228485840943979137804404164536009485663506998458982742537011480713773458051260439754550557460535979529245213939876456268548056429866537118974240193650874641634241927816482400441108708960919987976683846351669370944081302193960655050905718457060708616135375897085633103139090060027518869955176020266380691192342554556456471916735968695460186219060925205711939756426986503813012829078378318701466135761483375584847367896379796207226476372463350202203371309315495552349630140824112760521986489768880402676655346895008021783527204968099412240261844241585631879805237771136938264409057597539691642325563974591868572421007590269391340764039404135911243941450772360217591052356717548687388768117950126785870716243804374415197633845368960718713561207436580736477992432096111047123011792083898321829518123496681160654291906451774359200172708854364586127309167867334216805488485496650407762202407950076342755021986035564350817878595508920328842588939510546915342392527204130199158457639606417671742165562077986309444361134205763453809243786902761173780524766933196970885214219305898580690874555813143143947042994080196082400152769327837739866190967698627146560849566646384082997231833467391695827549473633482630292025633309678924324107386623800671001573391983263120088965432259443453396596065002185626978488671597624972543223304635767073905639439882871983068494203268071819194752782966846887878719477872505468783167143682737711537479999693759573493093661978593083782306595266646080690254975239313586508915610297916435329188940593382739151977534516671813966213430885121043895634010036339348119593586586754957622359946298746779029511801308029146579243999996733584600850270662845822932086750197497217305765495995196099454916336762837294666365060108093235316233495450217536158014778037874287157291729807069598131865748197712311604348177265124956675257563439868235900203120611838382480784730016628022628823077186155261571300578376133078135779470132146147284215338243157849260306391578813097594056871663480083071414866204577890556220275250065526697425313309604674926653829055121710946717916365001534426878123374089428418322056027695959105407966660280835381169243870743913711648310297663079881898730357752309815956732045167046715402754291775741110907634700036418499400917373495259178225929292259974527164423854739639902231869967647178702378550552005210302901057088672149243657133273162360537952689812764279479694598065437660453322705775706669162151666853820940361968262988506669553958565090472932472913582878266815470991703703283986481877402851427053348917539098059761953978412348840840499828127484659626437748365531854078669177116194867630388770790101503764176279020083794061227111462230122564098346808649442578269750887233534697631814338451480332435161666803761862592118397961614517497421732094569407221353632970229166298066748046652167057065553647407226222766511242663439625833078368367080696670685799590884883003363951877662573721652586219058061039340586995278545918969124555677013302663121506843235228115998336314080221945866152654325203467117288627068577433194189500355858159300685712234046720998886802681658806898510125786810391652920061391621519321709792584678986818296787845223052361668834517907980136418508003539000581181941182872740582024503385327033972649358822734358770934241753273141550695591773858919865092675330314282753725842110275781162312601671638898685211976609883976136104248962953892202751451462678015860154874880441271112805988155848260545328548940072166183783262414838382167782160297681942810562956137021806802863590202753037774573529522835634303941272493161276908411449017952632433327105766560522807439101605795184711874809475277317344731606493594628545599127786364293306341871912102462814342392098973609020273863782815340615388851884510162290969355501745551695301668410099706942730618977805874228215940672253717641300863459647492871935723722360832802748282057704229383445670274897422199191921086886868902570970383559841961186907323834576368917145010697605381345291858146949411054051587623722944804238902228790243831404525935569388345757080420460168038380647030270559137847665306090904687195288205207160010284704455275917683061832061988522024442862096455887959369169390910453022974542132059311354253041727853518900890258439079716320845287642384440036826757074128393522453781588758489998409123631509284685878608720818230650945861472379724031511927783041055581637728468699898211136451067555573898261204313585746528952215798630421443979257800493741709141351771170640722302803448345898591025244587657260045816144126299585806258838839568324115200615085634863732218002117216122931842986992176501070376794205152550026887472041652673175480233994825461996186434582861000845515317827950843648191948047914757088661484904321815290133890591379858505341718710031681430288950589733780629232087976102075087500556582366172033603696219613150933776710815639863620361150531317921793676697799231204403399805721984189321468276172362020388218687194884180322559873725983963138900779276832807996397257501491112649892975488453891706982666537104337170048385761662566447816002827922830373968694407780956071189536372690118609827350509784917859575075458459250911493683955451515823174285483771171762060253228447859983255159492536682312287568532713711482297018687232866372346591510062828446188046447699839991794491824965588957325453723304776790351364989544175429353218119239766685012944689547096533410387302230295571314052587091233112139166677734225466770808870408548831198696611346200141179725187634727738120247545973755978705761411959149747378136580612937592992497049454502010998099892567396786869814802967118538285233112026288375302139691478791046431590358747340270925924446807338991060801038224194987084983540989962533225533861969815060331994927539954307689865182665849563528245406279033635411357380713089046736534473932297590018957188300062061713241486666533526039369972013703083116133253393610958635238030720096327626293931183349318874889272272297140354672375473613317701112617452603430272802667939228279627566582041791907440441345791926175644823434329065539242624775306837313711281849497703081076091463317011525177066239247484833991109674721884444262476229033841420470338137019389139523889284280401356399976370116121659283006803765746479166269237465641244622501133198124921361455682359877306785291057967719901796362518411522263634024345823401218119401154486885379923332470743403472221798641345589208491503527701054558251537033910270613178544655358265233349449956575335572373746250420158403668926149129455125762792173439726832345779978223547445085049903557406054151773861072367209116656196076039801718999011744227750365412861303439949024563247530145527689763397874484152572070611072336601110418366906606322336404333284052534111830758961302159575922574036839272293630928117815444738951044539524682313075203435048182165349064470220720931820302585684286387109313771946206437160459408508088323877889429442228047460645215167409912019588949738718495365589558126190997543094649268436045274855681093397119549063622629580821147756421819895833822778067026290294225236179196157258717561407411055762464409414831472551318810479145285452775380513222607355758796585152682672333024634299747892481556778933895458254056616753843753071165102851532121011052955160828306264399746304733016479354315044580400801879431852910134900242864346308855265032448339040488176802676936068085340944792907000843689015338481837682265186920973901732439960036574410006887248756783956821549720474874628818022272471578423301190533324067188799022201370206078859339699652264819852361703049655565566012753295838755536159358107067254899267694204401598055775447804997799096982355296702753374363575186738456087712697769596381698826756365676457210941931065532838114711225233134001744158776905248695718058422906998628460750058943443821995707514308733516394656620789916053634178954215326737267295155236899710102377612566341013992846837990943770986950360815848212752401838116126244289398030940196620146958133295930511040756379161400922489113384235878060233500010475884643323337295882716736860919740851735346192344284188292549598070357832334132655556902403938544011958173076521095499987684042680375651584911584432660769631813878623503809299890333703282706445991291372319134274263144680320498904216884981516494697215399105847882794678089179272431994974829319544147776513642879022134180317373427425882255713551353376537196252116587980937479384375388952518417483870161957943060514139187889349848211951272029697934646152169916795674501018964704711904762854182061086708356063736781322192486185152206150150520305305534814839188252661847769005181034945866372625648100295094401583718683583083254969721681138945056549812734912343188769046978155180940815212471692354031482846502064928452371768414666091782296193927310046930861975165206296600712383579194961923640378659117769879586053007433497379136284562334347677682377497364933829800842714262848178779053507159912968148836034290165273154847707145847708310731529595507165037505495835362169334011889306890400726018315718246864754283926196583696452723225051554754489406963485914919392248716826091777155757456605446587563772332793036552224986237606528565615139092670411540767920300019461346307741690548834267298335924287697184686481068889584459505550971366933049094004708909890004680475916407737709418394575827459824607837219149834839173242650048998363133110807038077965095371823400080976015086164370190106650101045769764216748634495139320775987603922921389114256611615360143988244397330292431161300349823556756145774868920736782108396001022799015810959692222474616340289274930982597860119912156293309033121555311807259308070791438702927849775213949410586202100250376237518900838259164751838501027766256849025492734547518216403307404266187911570132221294386819111352262652637217919881277670335239944005482453500934986155948165526018833206517802460422489533518354231979339547918932369404709629376165454330382556297882507582996449967896170356372842853018572398084329816503517008221202021766990187145053478411144362065440564206770079101285005825489849919351517674339293293450319166625047590250356725875996869502172084595832438593930025076930977135309897942212714566731273614947934176338094552920535426445105673840663062671634698265343150891288668750385752934689850683929262720164905446393599158649425396958237944935332416763740113731165879157840439486970166539215548966273433249570672423724538972774657112657512146328531508344275421176142989297194513713022934467384450089404472722722121257900979233592229270554506838755547594347894568926431892841662781997615805783999165089990890246957361381054873768171574937485516913812965214341586338835458846430590771937590164407343519351146648003861522427739618702255873955062914580235369985557286955668118855069568709880207581345093722740404959997375022466137384466477794051776407975150953880499876189961000443244048421580476596270710011301633306926356320181249756137115404712774251928950154887884797541380645594298693276947873437424154126298705064998027989368817273450477569354772354066707869657842971113259806823175297564781600849329026136699615286983757190389430292170047660935031746383300630030981254605782324826081718473135450355179333750822076913887327255743937261987674534116056703062061923060575139161166222213059250302261137121022795228701751284040304491920443376204411333876269249541553892722125547717540693956867432213372194493607703643677115045635162074996797696324693368989820093396475364657893340116029509350655809747791274682145309822930575658064804248907792774174376192924600932165555640346536251694769588374858290697252637938835874491716318039908667520653245602727447095794842140684448457707002719971451864473785471212369442676901535406697850101476317383967740654824502324803270802442301689244316552663771236783015639749394439967803020625972355748598657441040968391494022575786053255816907353794321631078851517482137657719085492869726191803988496549454489153145671083585671686403915891048436293479525646823998521629950885267167320909540232939009792228936517231086959831132881627606397732580060397793315448364373291267710759382419437296277807753942968934599274132232418808234176872412949399204633890742749606924078028692540644058344094049182363496493560123264550626400581035958835913639378871784194150234483272973355900614057826364820834178676280066274331354796617761038171504692465535249279687859562760281632920150432530459276501187329056529014152831628495297833085573987807741890793093099662103988626428040795658788143497818570423938851018627189549460610013706568266128211152485096578093892196903379060942098288721761613512846535442571815570122919923206078678654308329349004879448368651608706249789032794450929907449957180225780762555339691854936561261866680513316014981131877702001676586597098212928673661758456002856968890306198986738640135997084282035623412083491583828349206694976294440856406119731539943406158658308888710857578924790043970608858415363987476250872090893046982183045396700958884696746056173017699570046010714619712808371134654892533760787411421497220797645860659548727140279739578324711004102435584291341045768894873034128141009029004219287562889489154126730874339324350407190989116311788321337272825010937991937356229200949795051797692222743023046119374396722233893179187900520637170289646049808781635243119975907649946049420178975174049622094448457558709699508325478149392756022971514678691422807981071039794266830257091841543351559229015252533134432198901276621711492254984828914361673451739335120700663286477479641214866312869510143978836171246260889545734652428925161198469828696578374475739255781848975850987392830807555761597498493010453130935777460653594748511486612417904165844774557851520632432421943272548172453273716135273442087080513783915945430093762937444619284826758860053518420400948189913836924684917078046837469124748325297321488551656145750966508302659205349874908073252813551303440338171564176391057100782886382967457640428273245484246170805395717003666948926544532240876805679174382218502662068426674731829599048702840486508236091856073404443919413416268717955629969392093626878732649549774236216201768612926899375039919735481654052158717109091568327706737615783784291031012076543753638232980133217026818677810584337601086198536488594373185864537862500791040702522667257009778804942044324880325038028305219593569046762203841750926529011377654752185987837615379967962790406957029016586705397524806178979181024133132412356010530927708869418812423833187083774800631087305684472405376878111507968496340908644298940888791440071833822144826921409211291931942524625862122423389387702133122662848417593173143508792421283326796372335408651355028047627545160065779130218892742328261893657646694009263250743375839178721819466114901623523622696327125712014920395862783613509965583692533758571819376739756123196479113474853311883004395829474139840920309596145850669525814761957383753853306639355263287672953672155306362703474414277156877637242560778163203446841578967913016589989421468751493522477686703531953922111331497241599198628689978045984300366055473462824197552930554801189191175143203819893008145155040696931344142376182517584965995462471596682704747581107724478083564692927237854801769292260890395522019958052614227856565753699359628348185564736003803878987987910070332867807847885892920114740132151713340387844400079345819759021682741066269779901449794863130931628159281986703397982811704621944754454044746852168026418120174240493478758507594648081520421560425125655821384379742201125637681556165345145032072105797409010635745729310327923788802654075806717230258860202656321823086957912527284607612448189405697469097151982253247738367601117390663566448946175435415074602467569407410819899832926838943627652458650657845481236467618656290498200664337641483662791615451162011977735306150940758453125992258173070891002326556286637386648839315985999194870299546097669148213614888407601567863128299780818580353021443453709952930052438761667048638957992884563891851179813470020652078002634818256646260228616197847418446041305022022971874558762611272992342032990080042157380278383783469776859671206254660822484290997271358356737217384579202746860154235185554430277884129082848826789998404625084583807523758181526050847410946378297291296070287712767288338240068108437584732011264866798893847415783352501331360215959114997443627194829981159343983073065580034017204529911781276184227265189487514301551166051040309048045135176154383045977453737124178432597864204469259848415022462341992606436806001050889360913617280774148864319853690695422580089834979192229221782839920629070811168231958418666665535964889918987700174815989396613025263238000387624053139857177643720879451732772120531586660173907726468999319283746086603227257792489354885639078825381066575505705877669127428294937021327289863949345827441509794915360187490481436512444556232849864342276762071671418643436808126164371644637830208859725851659608180359240845651526614897169348977440168813314372908571562316864849582542995708560943596785790819005189397629005435219064916022724226630793776423161098026170911103580281566547932839599135405199777248694204065094461639084490675541604004437298875909379546922844797384498623285016100113650545628881082044523801485585762130012871237285804276497535753281386491348655019164372174195332660192987562635576018444411793603761130124320622052626572339475305721867014095433546930092265351552823576880700551230644089249314044262045130386160058930683390704765794113879377950085248564677644928421082676596767980131936851909990619677736878388736079062513356926202857347970375573130045883383938801229138001048511324525983679722057385398493460158873126745175883663560353188104997440574869061751489609735609695974956986184268062308449354109646545058456672759589289276670422142462494161868737146952243880033196819200081801763267217755482002609436719965143429981095445741584934945910170232080106023284141684479802768277422890595281620577515711803392315252686030685678875177082895787529997916782132972730127158793662089759883212787467648120824225345810946595348306206610736864136710889942649503229950443574908077986489572052611431320158268359307815429693161573285047440684382425851632440072058242282819698880476568912903836997117865243662859334342652612921294261168155539678432206691023635577437613716462635160968514049675715359576145144144209394739065146783356061001609853738254229252494336083483372963647127165677269218524302368993954075419077876795264817399891522016463500712165057986873736005690671952729943159722224286774000415196911520295526073651849527707858372353858072340301307509429613699737118903450648632645340969401923994825368853081352997611301425744327931528063976287780176714814764957183679833532498468228588283609402252311156369308724709741780345761697294149835382752704608774328998155422015951481738122287949984328744357608632994322836000627987507075774015771493641118467661358803484026698020425623131639393131166151414793359456276880643893242001854670845920986645967592803168430011000355682733085948606172602099357055253869739692957043017551016169310166963116105038300488410316764696001681100336545756561952386436312103519081084922247052894411180476801780325744827641541937844889635597880755967241583074810134328311822067621774915919388107572771021564853585838019085513249591705326073222684669089462349202089364794116659271889518237604572028733413314905424920571328282656338252195604591138681188133943878847413020965045975923628131680713517154039408886146721248123597364001423660970296667652813313045639838090348847067526327538726914226512708181810220214795598915745933323038643798087858166928896548033683987217022269998161747192423895354297767957964222352836084932777790533956430717839033488429477325470669864857457566115931006775286370512779786343080065661383335677965598110648463692479930022576307761058437495415420824835682824076419327618101742900954672086731916416699708182674426196386377103525914733117183716210670322677813693733322165722854556579452882672314421904551179815075474399370787288980680343477844893375315725159924567769984331282383170369541060866722245244500125221908645174102122647808885171572701625589162824511420711206394445097275717857545343523020028097126444056115840175450864810259118820063549383656177322914086934969309421423456211981702546369926834374672303704694228787685610554723072727971021157063813511124641134521255417537190565822765887620549706265615266768190777648272807786569886194766718655379649169097355358555688531614554445956475405166986339883384620294464803342352384949491333897027060298128421220184007763635122964540216484843172485767157342360461471216434560812395983500230811874275477795103544682142597206011698187358166252740415604638317456960686151407321578105795034575718178019050003076432462580445377266127692112508881102661118783178973968561626587836279910747710032172915123933380425297170577478762212268190139079152154608093111028105086840890105948924272538219842730200182056532865484515200146138423616854574663763123759531023938395047106340813501867712648711401144562316138864071023363284636078897519264078326427476914553261651389500173786902694503606533003708922639669467132338779166455997932322024344916242935877820416968694728673229113026049601724414964854710344423286881944763044129008647490765222527118840462122065669575816287215191348991145564841331541640345816181674558328703653108351138221478058699067714174293904213432390280718650128758983988817877246797136517450087913936434102713816350913535798511992749246567514575575884761152764084526310537133537315007928269174551014313948622722982090984702470093026007215415897723065964818581185776356766139942186146158787919908921909250575263229075575838698697662475873981200632366797407527491142729126257249058638764526624467425302032632248107026907248873543513375178905653737210784998660023446442680201244061317244224595348330858227261227499424203102938392461952547902126428474307344769186261956002082106507744495927920163955160527748000771523912536516635772264578115834196104891876285953733816387183911276466153437529205326533323569582183938010258553818559658538638123270432957579261388795182226923492861667791748606712238807872914080191473814666220396970327973629994947756959622487529747963684201012566282920300299415549697893104568983817615049290606254636138287902822248252069737554944908662291529264933872694621938734156615024116971754392018177616459692952081604031245466294802243065962529516854071494041087701365396475499696632185349628832030335596164190780227450192002881228610605632274088522600432165770556867799373913469101134706563078521583420206853004956408797438242985136921406094141811803366190014080283103103423643292592122933789199949681627098546811795215264098899856064838918395761858090340058525132652724553203179258760564360643259500505578913452385119879450106039810969452391871382215545264106275184388876513564650757462806353140341824765965284221632148259462424706891509766125885359328947328047150710081923872451126734282699350796113533734244014508436457204837912374056305929433413154771468198612361710437197975485970700380195937008525393638302056627281413646886068650925878290395801546339550505565449978286293489733112689303043493924162394004954848719229322747285419195592148746697640847780388600480654143150575076000694902742969120896407409407032524023537318110387728042300293512901235545383510924264230623048297737347148861373448347694941559219225759790060183546246464532561799013676665296278941001519095199969065745461004526499973821527551831632524512555862391719626351075400547957955118627297794852112487614483505203906116183622185157060920177223168237581347513538224459575568780000454269316976874092223403153859633445595988004853963991011394521907690891410305483834681706934392232223220196410628584481822428573117327818431980820796349625431855910394421824237594512988229446365525029814086910347642074633108171850293002727363093341915211270207345705801397865843004790412410108459615871968122147021085046692356956558335426656296368847044802904977429096852053401493577086205603473530077945054366884460409524479654669451213382286966750996070728397375722943331530566272783420102248655789072800151112711522177137713356867895814102464878748209513041332109575428358582432118742439206638681262030636863570107340471635722982750023410271399011423405527003957208738819267633249519136610851031366511788240269669721065493752130856148906704456982629653832083439142565895579223010554973037810616706872125659038768135536276773652819837646832404352525279560125082762598840240522634720892909160926875121414841877777734248210309096058420689699344394362348782897438271850739106289975703040919607636233108110100575675840230491288573306717377222486490673947249238577981481961956053281903911374687746295040512338387535070081629909073375294726373213213098303061390125487097978645989903359533272109253297292302683059881147245369134598239230777350799817364673031832072688403537284485101459036385921402677609232794114550218972296031030711836833882349376337369782375330722289200264304687962277830668664539642039905285575401413029677015017149713487154089464244017540582990555479431887968921144928258642214810126713916911943128476051458622550323152712888832710336933884122828133836628875856468871885380805849138610022114416163686880380568575783112786019869064371469055190981506527419085862892790401472492132739930895197009423461319013163935992653058713879123308566417915695140834389276381296772437177381657268983116534917974811117853613781210914595340522672406818238827811578978516706170002151458717623597518254698719327457477421923137805834502094980893491008819703296433334815089470111825474576752027511157173789390259624878660204962709477994550331136526734969329106414110216898883204140851916057903476090883220697842754164945570664657464659116206275276749772464236374695760263275467436792426249626107799746416614726020634512204148775064575323270042825812380239987854716715948284266361403226349193937890851198335641674646115477717890344196675132451921566277342839332440262349572730615947784001563360144582523236140209174215816167125965948982870744156884116175571837168649819902007329178186120990977175046976103797692720044749495763657230053664238160837357268233745499696459297734950751285108604846510522806362203984013647059003511623547518556893377269370790728233259808615119247182394847214170586330073330428597147840634164791193436850365134396422214746602033516956342726736388925421827885386510891504655684622780861057275324729763384932023516329907790036152908930253138528034523822849353964292686309243300460458502359649196082623036163470998093458326467608809483817850687611391271286367207544609608016411255985819036406958758901520527964006947974140143811185821242924388008165116045984626662916000396771306068094535307566465385348212875317479267368666798130984971660421741760308865010174588170609637320447313265758947913834075803988304062256132232679781894640793081052024018961802605144518522560538468912534271314956327446139750559776076858909450170078232111677407251038751177247005984809752010307129681704035997041236104849727200014340245314952801904132659187774363381565251529797641308972881714320652295146281050056568177674731410280822206001074538624873589691699230290257932084595667144687291004431281485085822877709289856999364354386793320854795336423540682181017627316526780176758378827681699597043253334483318930724142921321118288676648837421897083875895646817496223170234788554832629228748131242596129895445512047814914761631565737027896672158217483467053018960632522895919205035725444872233567244539890224560151631432722045896300485105831583654331552947312072908081290371406978775452012818934278994737078127678919089814022388758033770102561457070753961022178722778968730917431348167863510984319778376371020550024351604821209743068024703680103408495134977861566240746278893025866850509859008932926502135526883710810969677373457364231140704689040931491757279442577578051256266631305794442316296385996233096660934822695141592925599873146705536828840914659977170154309372626344298523732883516167416566782600044366420895502699431005348297174794201328731910711105559971583570432983235405289783302216397810737908408217699563002353012182897664658328526980904652909929274779042570131733280432669926365886491250908099004405205674137460224896167991532371775116250948856088901542501575338616508242826405051759155139538439853441029607638331040001735079175668460303937244009761392346961880975321135355133228732151077360545920132947311258822895763447325467202857847065420862493312075584749727061967179372292373786836720781871951375174817110114740378509486488612572812176964510098622004076403492529942656043688180315948965654057209133050155054655785811124715726305686569292236787975285615718388057537633160562297152484877211688587006095514001216214316990872718795416125786329291991192430828183629169444749551803400789225452724413170387920905778120760578612133470344607585099171470889060358744898240932315187735631923183439529708552326888459058495131302833349754763184192200595529084288585467403313670763513536351660051333095582617984571854265395936490599450946893118556958370230162933933379415054660452472735872924288831026198958392201905201980334533112344657422133245798093016498742531383962048506476843317113231662955008342112958303239999816812105039723675995768298481125469427597504348402148015034353030922128762234581231338087143771469769580974595092253247265315922131196054501290227803153128556137189729215176782160930647898499527935085231462263189207597908992994420524640896507215878866618735192802389074200625059130746218091398178791607353976158678241124164525242105303156625513187245502490610830748606502197355048503205869399781954120596468256570537764251980976515005348763490151335394999107328333874879788342594137443045970209301273331195086722439848875034411625546111735632452804077282170541211408554507334639951415828567065453918185364309821929554988847094303826035998310083950885333735831387097908430885108391984270631799903940195655581948274296880472682299284995945795480166440729707133474307558557306394867059845536945593749325199018854855285981856075795018874644543212382319784683877979551520317403303057674699553779722656456662031296589861993879121154023789111878206739653494531568700719323862364700568445086505942780637283448334476495818656519555364492656424219509678814220598566137266093598049298949410386420564185121037473799386259101512418510667930748163493028386893461845168861216392106077299941074442179544665527842523453723594001344066546986416261520451875311324708381007029754310185335375007687790042671502481750496172361904321119101078900551885537101539281732864386391447640430162597002921010026907219651891939575060589487026957011098287080508023272397861372459048018154605737642971218637961451796619829979119109377430764526955302291192177262473671154478260381643596245740449832136782641876072270939267511448954804980850746407665416935975039625921600698706624927135138738037718224237016542725228821155673161553836586681764451503008319473268068983574925785375462171771356700871166108874775823620656916462156255415101964250792751697472040738666987962556745126226801278056651539987818356286694638799097038337369726929042236108794251634769822451344967752866757947828192506587184286964670260641784459534521604754166839448739040077582078045822869740549519822394814618195645871193006888009802241155367821120497577760510817713639471333033271337813783060356559448193526350380257624074705865474679041430255801213726151588738568408600655464991780175054792660567124414538452665974071406649274013012087559793041826805800970945812372410158025131317916009180636007106926920301395051855512158725159131920141957176922808287147473831463610428798652611289877530339342290239730195710303473950243675377291293488439291606262134097413525240008506359728822535617785856117276327216992453049225163304944726191714646462260652253092658804433000923407139069363795266044192032547671515337027622453413255772409670843340105898947579346709421094620951426492560418896675775248804778344622691353804954924940432672163749016564745008555719113112062973562402405983262587040682968011031371373570260938115779347530653977718596171104042893985197820542761540897545284767546779632946784487877293897904978911691630764582697518425663062048538108721982463423975111592429207793569772439683563015210410276397772160542503046219596984516857262467480301027059450662316159400740427034251710561529853418767535370731009647408830389448725895199788808996937362039838878863336912896637176822564013659079713823292826509984905147602488615514609307813080847161372402057869552960969575315623583138672548117891118446325514488496819576558776615367915465238181166244101260763265901747636403728021625619148530303846331095890307466549066365223319049258262044568176287395616073751973473772859442950986146221039004895065960909380825983116641726140663479405704298624685125176084720950567511702757896190516002264683404091884183414757769685114213469256401085665890312972399722023874831966353235794531939597299553806256718449374618785177046617726298515988889522747847240418562324921805813589820569796380188802117178315426311312325641200899498663556809361385194151018323662821738676256375094852155811952353177637530264367182590566637345778857360006041206875408849042543443254143017594061120435107265261085449821224364997586733281984140543806268630731907809968354977789149549271863826885947507204792864633219734107437514084421770189544491433995806040796245829516222683455867616045145803153648780829691854118008511088208721992355671115325584422824670574622493718165003996211743901959341132079401338429986760919672238764218006569400565684585777024827086660243703958900309085955297488158744345029612291141159978509936753612789598419963955448187127639216464303602671253929546394316509023996968484497033506638747761158871498666615546070116885487870724521140841221167934469384103747797447924859913212484645441035441980184212653067018373057558301084428855030920766841042939124381199001367319762039810208082482138137082032524310925316179094618948240576388399917398276083438804106302320757665109464852632919591093935784417253855222828902263489403153725790683282029409315944931578234208872857586046713843735716486213372236041261239594008665586831835370210700546780112608974182690896165500102547211221224315196603403880037289013301607063355186746212745614425369174518045827879094804601173931356760032597075532540843398882128631515100939031046114619094034688063705732236482691163916872222901560537394964384224703930784213549184277530880436743197444875574126495587839078313408443973459557030566155867077710956006747376558066629538714460028248163678793249736752092855571002817561118233354643438463467973012469684394350721952054054912630666644984321304188928223151693955747237422082311566071727875811483363086223898830557081898401044389420245261895224525576625525315919867342435925182592639564357207009959598348917285070413146944471546141059394111221721361000981984244341808885215227685646939363033376553830754927060107356417420726519019146189788198243056501508870732846733731593325913454059708210639294208042025949315529179023562954463618729592083142206807079668389785901470869319052131863981968510389679014739973066538935520745708156244564458081035966979654058837184811734519422910967457245173901465662235584999927105872955924748026589934969033463424879594023626043292776116427844219720263751884903234356031628543122289011455518406786698556098167179035824792893282904675421362106517569120419578751714984068733801949706948144426142422838337575147570488473984295270688364023256441441368074123568802184338625640088694282775728553909399343516227972278431056730962472911889040590400025624367578250066811126798173160309635114980216075486345245442390942644958870276765288793577892560461566119870928691740812425109564254634740264069947433117490707780962875879261675606531714772542806353559265908151414708099540677208703490990853772552117060939403660276935052407692181061537111721925931758196890439235067636728774096106917765074267109829734808217199829530130596969179007621720714621338966850346166196377502800086345971717784822723396843116626184961956544234170085157190317552968379883680623175417880251225203161749300642824583323448174605739957509880530319435094002159667288729439218542948403521292819130967841782185088016477711453685879273453018475085397518002129606821565418264062533122372749349285057606111964186900203649618738343014862789114780985293891880185390770295874997302294663965520089851286231750332925700874547117521598175901936103519949971694342246970845399628626045384288391020338758384630014596696786012717661232061215316700326686667733477905412168506082860038145173489984774118413929062464027133631238315911125170842323427764486838355765763923165314511894986285176579326513732439096980264068236554324205321201704288102508571626572493340058885430217392994731683356278329866393584901272895675836764260000369151403988199244551544530513527212678762112563993510273017363780762831797182156141587746391825908152104214688242451398131589895226365788179004044284198505675737157419418264310882433570084524581258963027416613298325288164911608570395068122390073341920430993443277153150625617991915221311161699414944500418012619157950231148056831428920588041028600402671642761237250254558295688544013319719082421509820454777117147456852902125552845866116773031492334731379211942559296190576944204479341763889961852189431025415840228922552577618439462209623383040813079967294244474841261164714415299549860231950131888023609295648323220170017032227607564697450460220515945850892272546404510435067153871411102649763166577654868012905434373877141271158295441199647098949803270799561924619408721624362551005922094630379593683336030334261873758927346501749383091084765389965215390114019673750824399653571832371653384697168190212894223823410582430142240095686398358192338359568173314026947792010498535004834343357578186189743230281358338505354342848177522259567558143599923780066362482818143388924596090895399878601300083548871133367800696940468833279967847852920703129600151407740734284875114053106821280276840559040717135454293322525927075453758845819758115597651620664283279214087197286773793553136044378723026615041342737354102120058008697075177933437742476596768320780616540718789663674754969601387852875192637040104981060912197448555590115798469834521054277064571759456585633897577668764984371679693200284053493237295179726409799482588844478614138188433366649078338228734595019036504099053136279996681724563492370735155826106745123574029824416584133703074129579630801045469670346944876159174702413941937174035044337578321300142246628795310174655381227972437069739100212234688380202247620751090924764528137006317343982578033407464772483736170420752345696638207862028051148673472779147038339878305357157835616889866135626548124011400146718674531860187126049106145746084235481776881265756914281518250892504908197149600783940791621460194761107569556404780104751694174359531413358921875017415082282090110400693953813579774063269836038246281914643714906585436864054336246050102285518858320220702961322877963190108853498787892018309445869329973238140388493237984771427092699225600225413816545334099440574863897747389510955763319643414053607192438639541028138770174147149697131718807779172336075278702808139753675885730598254158265130033416165146711861868353362190009061402475970131914692487942437665094499337494801300129066371030264158050895483016898475784839602147097417223855647337215151230693356249864029027363476275285071731837185303360374522704349009452624416032062953598161605421831517331451473973701580312006387381326288388472662664538959061870089915190822055923529831583197301611099039450533128952201272803570200696010550381290180515352638669665221784988455995089488671988380223145642068116213890494348900975608449536278027482211427368901920892919994152538426481113107096885780831460713364445107043876985129169742036894604588277200523871696532645916433029045459507126033673183852688401054089139496305446982989403021135204298208817227377834209937807931323763732305317106348660767285329567717368697894438914645752150246695970646741468658256786898402849494373434933645514382583558445572172258633838895692226639363812882182841927152464016775583363368774724222494732501371619732127265046211111716178782422885061660885668942384872632893998985124398099524236435461456427590588293387722987924716644266261441724518669792466800508030550595852646596250364214877729742815208151337661461192963672598760331386204208859795318237905352425684767018374226775519566778854636854356355381024300578472959368602172077961093437343402824984800852885936565177412161795144196515565367207567817216966147585175943122615714078324426919835170921207486387442511385311087431082832508348413978371372973558772604427092680516217629573123074141936549208638636804138493084329754621725466327061394333892539788352945671227699498231199553565146816800850778696660348173444007819326857054654415362970202014447403345782032482451601227148005683900983047055613201617317638445003216736091830569011176263944723474715372528846696678041008111764922360244565002273420889030642198980198631477284064764621557117195337722828423513678232867508123270195895736979076723206880021803376505787549942422445379405003054836405220446354410625998504677117879441502582200337730338520520755625989065834962302333519426978783519469421039001024128258072922337691351210736531286542902655576465536359017999672761460888294450986545588828669075763187039151120006915917244297243611229864331005946992202335006317307280460206739974753851087143903079988525412978261608820858014638189968167483462874446588019890007195638665709321176286319779752875083537734161345044349162189825555319156299883390554780075136391493649881993068173304098036022125175729607805875948849992444564625092537475779758788381894807393321444848058267204316913582954122650278292504284184783813482308148896311753401433679984624551990371828263764804596674459543445014247347723577518144673649846491450776925711810085176602741873170484127986987598511430047157343976670650747533483845269360830656975224554862950372199245653576503224064120251609113502909318608172312916742519834082286483481879624347112733616809707289328056273975864185142688489374725807164895299299700579735111071216658331172406861185474721999205387168018617249789740664577090890834745505503208111634978280426030875479185471875047268808209173281020571606067836621126307983579688674388374084573101153634845548334032358585902459510182833748837543086954635358659087720786004020162290158489147700813142778503679167454902797758351914397629155989832327600905572137638443753105228898680587316334758245663681925445881389904991400765719500561631928485545261510456065085370209837330499532284927307331760835868042841559296337788530729197427884648389505855195993137535758802988094278434354547548894801940084071638429741057483130764447808827574401571619562711804204690941992555305036649643040084517804275499781023608470432178347268210997747345193939186854139381958323046093236978963062267580412258554691263296562448084295026006196858419830040840970978066884503793309102774960415064433047968604235971095547819570393087177752021147237591789090479700200553071768515980436743184325377882904083119659827919568595597999034115891531792134257204209271866926334598495402926466104179330097607801217874366607272431167134011424701328187022988471207443144532173776462064031468423423083387825533722321983010401726551538124553356496585822448378776828155358457337622717635251074234528205071823657460100701135452687798827777714454133148741939546779355704384519857456290468448537741616212488865312439918323773559684030742396780398091890303265344512506689940589216203477673062850670945682599381952131119179375100064685265848152166052096009797601513478669258073333883777893400938588699253808515419586236583516650211178024499050484295501230151802033416191393441314297642516860328390127119202289177372152653652874229595192320595348850251407241463413373005921320606615225115693147900132794175730978382961472775323356326710899693601619578654219334950301576844833202169576550167516175965395138014571061080450214588538505313896008098010375131569079325208250044027299391228181971253080892141989761015457017011043992359321179709171440149732203061547603470036576984450223724824355743208463578363084187100524472846377579613172008030760860650845280787860889654921382286554149883827182317815623928769910319942856909545922805862476400009872228277798924255004054131180249389230331354760484182973901525536186904142026663458018390199200398615437975566550092761888674424259908650216322928235035417096250073759883401142801567493680555342900298874835128263709648683972464249442033638055917884034231750827614712871155378157642578662955113515127979751600441769036477397693655703647336391094545469355032148166301946528460351025355310217749420439558620392439821906284234463160959881194224942438366420561875684761375346045169142247515125115752356481390050065955029042959052080690898592277359105853582934122849687044529766133191835437565077673637373228705603880722345167443453867298731482921825924143326271378779317021589509265754366154248097237724404228969223346888301673367827250886951623556357792299783512612528699770359704813927337602284677433604479557219417297238594332130390751712022863279716241881486966961755269973714650856709266505992454580490129902489967238474214588753801158416355758074921240455012580141576256922914572699775010658792693571139926307716399927723614980586448724537541625051841316677544686586973217123332394326807769334801817753502239814531008394020007163365272387276599680287668900560221065747779057419049356243219630779289018659626505063205854077945317754322812479410215230018435260509007192817625251101317812294939932826420510926268838859052009772316709857077277201102588386488944903954867939784538899643627786577002081845518553811578777878500662732937893695768033925555658496829843956504600562118884404218156176687007688614182846838938085747458186013626742800694313198203031310811838852212321263940274667990372330009910035071014747759030504695956170179771379745929750069981165417286069844112399771319774562105414519247280685887945208824699483933744982203825459717857534375692757177018805662575942847354063610327467247862346648512504620105222695630907527012298640279570439654800280380368324637162971021061091134032286121467397664058725946973589393573439268088599628321774518806482336956443314765124918884113215973292236399112581388848971752685762778991767129939104310271323105933109008734288574161755537315573206144217759205494461713459837004017749007289879610263464515786992825462524999470760863173549322977939659569708133303826672088309698783167175274214338248160254287355653288199839948079572715535543414762060091140727930257360796788974479259860225904072575188955052001782150639419367866945418292505262194478746615116505302245718536750894542891696143943915101160261016112171694551820857206968811030485134893813624539709706878619798761385429889825627499860530047762185368481312255853227102466466345659067703293242612991907062030676423387499876885308130660416502114247207079957024487144911663587920160466345111093741436356441649369851511322010380177997464955576363993298456160621313284197168089202466583216988977502617204789887570396804886791952644872411535115607185821483278147860305950212452129392386490315447437544617668976781190575633146262123579384268069986784884558969755865597967695802312794433492618595664470260937401651532097987066951898662875748545646816230664930384156325906023180625074668361361107043921442159762399865763399238330615698528317116142445707073409083781545886784536502876207966936801399924206781443535912517817590109968990253925859430991024493231779909889751498612181786100988195181325505565066003525415044873556344916455813128762701470544349350349513328662184650513912309112647748596959388589936680453633720553818211370745246794531721240302432129991858789513557645757642766766457596331346892912111364795496655751830570990709487379732051175028392542597846972819105336220138572195480342520258883797363318737212947025236194258023439802674846844266642395435938880114297156565569207503373876172944082816720622241363338335806991611951523920558981017431248418664716218637181290259526057276081730824662319730560878362149594099673787844005651505844498419896923696543290944862176873311059165448512692079530731876466103504819430676539881701762624383100757563318156787380244935616437604260117178949006923347678720081530324016082526626468926618524240053839075638202866029457240336301188596570211078806366021304732901026648812135184928939386518199931989339762686525395320111402741605145949042107897002425379293088030923280319014402507068788850879370277503705212220952329720872878005122294970366483795506709034791400994904152224113052378856449085022546786731138247485745366238141308923934508565886901598047168131706489307585933248096846533752909208000056955445408857486167961815823230203550951247510532937492618272922178329951353250254665700949116004535934589395403686384599642173781982645755512991753560012908860031361007393437324162411667211849657254324092753064357845982647897453132239075869711592594589063018903957540328862967497258831267564792378930167336840024643110089786690357788480194954733176819098138246651529697351448921723334159184584247288620952664282938477971490703052588695260726086623504661799672962335890777648587549199451617965504087903959514679821867249959616606030720741664405318247872106214328161733465791670312265553079512732162744896963143766676695335116115883776863378088572716762333226968498803118659385611517493670960204524835772938888598712178888222734552821489186965952096807999458895789041896205802458163658991210414633873797122300110122179207580416752962333210071813108856135523971079718788795394426308341767480176589899734176145315118038308339690190225691699132408780282110083615891025488567145753690009453037624662915464544744359179920622526541784034034410091715780189786859061873760940460510872833714651373881252636135325757317548147940901054916964664483761230871962927140469946762813642313246820397887865800266131319117437045127323374917904076583548709511713991339064772631150006673316187708699534806189575879720159138863882886415938085330474915187185401404790934996775489813991921461158208358583443247338339695225972674363040352863273048785476403407855450148314245576160971157495777935143485523187854285894487746290563056699781472162631086393109241196515656188430114810994117412182731534832640859088202496181748639605000921425218114568950542460559213790877148306753171246964948258551629702005225402624614086733866925884587429371695185501020599540514760002455166516940972670826943360821309971092722447092488586129833165429011916637553290673647897466978316609811056725919212768573459297947875454493252561596606032606559310099017186679570059971911422438421299162878496581864016536789330137183131333784724572524122533602390947023978954508106629762145120407134865876342998450666162167134526552953012140050970337134748327977656124433867401470916387150361302089943137196013976012425475949723937424638689388690718813066419530014478535612839978785389980342638403760259264984251031918165271805470131922362510714893485737904613449717673658653392036908972007100346806762238317589464832535941924127199950424118313722214417810509457664938236128138688444399357501446103799856208804451234527689483111629000218264192763197702020211088389501253991041676018034639618382923809453362798616493754776323892964680785733534553063013688674399505472419522719717606714391732125201904679883794695376760437201469377059981748639892419688390860957309625488262738721280885696784135271784668106402788790329029220960238949059359259238006194942878961476158959227721162989684311629175709470399073361047655658218420624430474094896263405014815650116479389441239227291573104997944778268231840683280717036174552242629946433581501353542934768748449843641767028822789629476672204337059371640342466923003029317213580292655247182022961053343584795856050075465868591933666367357558807018737988575173940565160412022488922147612938774221744191408395713841188069617609401176473441831393936017824930432332267452066846157014117355943689167209947276969686278770839300268089139399468945163099872185697714912066142695469320874903294419216856580152309634486350214636600026300173547499438227415034114118190951146749171089048225863180303750592019806199595778899102447790301599854923582502947443655514144941000591157548973213964455812440207693810707635537252628299523670994816519151314180041398727304581293402663013338603144562684212392832342805673091529674415464949362577112989887855881482648255272843088733268214960002787748924028921276719901815333247837660341026634654577349835578673740307910804697223401612687701495983399325192193209333458974597860735437207413524020735338456291079144242492572930069247575811907745832304996157291160854227035980109680483151089517200509215014282460119236847839086194887640964923204220189216471158640615235235168809622606977890976410327796341348231119761726907652483879991446002199373977351939281663467461756094538782227354017347074720096169994423360850213039777904495473663492036360116892921861264445582082699173682714735291844644396669830573589990538589163823060189689403521869889605591070963087456010782832711178755236959739353596180605003153034738854314665787437435661270686714486296641965413276788499907437492131176648565823434543640765326091606785149259000441268566379769023926319980828692694187669963383268873400753125297262096516654504699873127828903857557290613961783239406420694825385619749388900857112315810096544467833845539417717644706381470518955911363601406358360108761623849581703543231819374277946918424398786382083558358817214591061399569835376953312347726803509318472219188692871306941033669373518146895520656088623023635667456283175315482718645345733525958356847122149906921416215954925026458530599773161404859457401063073472586495800710836519741264595246192972287658656714582773453843172179615149633685093995741125247762619370493151369984835394680109366186421613467026145119229928889837832313076602327326979943270813485410608057515714547955415964763905483785269948082985360233766552639508671680648549998151083169433229558310866407654153820671317894257011222718889518928904336693051879840708155355884333970984375261288776758612814302063435644804087555560056183618711782175681640312158657245452894402427255491623223877883739556397528608952376905332518017166888223277227649480581697702671388698601659674703461590840231671570318846338549076820503116162109640394607643376602434822273056030184108863533180177240627499200596502458330151209689078747732333201967770064461029267729454196595390523449322402980298088942692912231445523522871629896019587609346754309067807611427473016042953253302410782291156680344961394568870940455222546282153314739692493413324041419650069909944329470172447671018290812059547899964563877996052070985612361366338597839930927068927659634249798861237814309670521000378871335887725047059568455054139864991404884519629816874178549896862570349792223478676919606514005968447763903308250240386739036573885671141992600506299650392126564938194744293970288359720647608483333882099039985087777993695106813463128361102291069361191536536720790237227497955010890125563283796624236944757760818075042977150738174503522729397062786338738339559029639046912727467918945840377820620962923875195497322829534291206718677096079255699787662750388072091491136487837036798166756155876363782703281246958452823408084536719405309522381041864106664129166161941589341644526406593505255376975558960397585968235270733469062211868126352460257924613738797388411769687151554551091818635070660338572646965428538786218242718870301643615997249360606875314501804543184174800208512673655689448866724914501959263381304518970494199126268802018092657344374410488433265053755562150852374641799239545733915472510541115984792158220762711269778738188871711651738743460424814326246333601711635327398812202527943930923683713575489213034020269422917895955762145524754470802678362144256240754973743570577698129033582092809967210508198662057287022679357870974476529732247888286359790163748855792588307426088126516133421072130621999135272697191659024260052792217442313826915508321880906760895265388690298133316906707920233461762155690409277356811354673399541518673407991812110873433113771317755045894227349040211992984066335490964733942851264345928238981193888537991667221074650023267757908033680506862487530930482511645652621674549222075029395348643105350734541135260602699370090026591100095637307708195092194868716083449884394384455368356833061832986803654883566057169404640847463669001798938113686969243012929514150453551786226309953258359974649264402460201521629708923737434717375291203041562223595308437724308966653656502819979006342371624248720858019082650209724423698161526698398757868436651876412119552486009837442524449103888931304050659109673301195182114686962341939828979973253003012610058080511450676382102163591387938037102543621478063114453038614962979842687075775416158959925712483797165961480380388389790700091350962507622455582010189522827280189728970568026148600992077850912139449178972338792380542167601765815542626327130806573817488367225202018132385988571222470772923683025236386492337157412449758850757811926224675777649333740316192519739537261927710787176328603047037094676095721619766143714364031272537126756550029007173718559765905357690032507710246745090701166477728120872830511362847455523808459762900161056919858903737179656207923793118015074719888655989632504565785554004519432265369584357171744006910228917369525741164429291238413744076735295160825516408799358672022051897857489144839396182151678902906858135120062411344170137942482461827433616047592627465371391468821998263873224334869206198593408844586993498772654708882953545332162836358770917041057098963768714707602630090637675507747774832992735363588282552601187345796064063072356040395932172648096139839347402003782757864765645730080681006163508761050707518247904334069388504452821346885546897371882502488744066375259056562734676478226890253105091067895148901913580294064634542659756954274694350899644505994599264720584357881152674075110520839051602780410202798581322685940301761064403525642419194053039236137834281008688139982987733096438828497719770953189115145946431313464035284024381120698862008086508502439412305553069477674392998071917142375802738737128744723928767504501117410564895371506332978976451900075111592547555745440886452571840709338599651646892116659920635825770514258711466484650004736409897559370270822832544989409709655322994298767467607403138681314600249973466706386507004354102438467147891564475207146669533346419183172656872320832324615958575805392555106787875580165782847691118092807060906140632417833636549159780533940572534905369579855647111528728605998878662992676391660717390143566326734853729764101449054647504717420596021660193539859907328500203463311542706450649421092819125494303889049304162400291515912880597165127704803479135860308000206864009438367938092543494433427339417977530761457632854195879011834637608127307769944679766073900340236936432226509851486903600220529475570308687103852113750648097266027088177729685949777724068565932623966571036831333490690496219309571036902298703158957968737269170688405107819919413422346413040196569897992451860027942556397365022592078988493881176086747990803184627525676867640988584761050860445091404361161937341974224968818000545283027539188760409085023279402192687824641287124908615279123127156429475460466456526235777843910239496447326408113876241165610386392027386844825859317748209552183381088366526300494110388299698998360515705486848523317802461574638342241532846425569278539105373319333956164023858403204815877585320891716846731959867515661658204327301779000598936373121202014118074313495303160797781021628677205008619297887371146353719101483758911811822520793564273613069988224804021074172441949778698870271127263149116316593417851570623141604980871737549542791869796756799033271869595591764956123226830904481977906536610206415745629859868922513143702887497704075311029617930665565077821102081055670116511031770106808427553717445461180681250108141170805087389895615591560682522632136561174034545358638854850842655325398437979373015721616664810529681311906242979027938654617715723441410903805978247227914956501796859664605624157510872292555041168347317204721276855463534499224980086652857825540158252645288384562116100289305908920001081288775118386738421206417131941803713235835085213033258692033871431073141467715920941237588260898522058359895246842093711836125454113509506529075368226952759600545247303523076198221379199970914137219222171714176717104240442973522476863262035112568369242787312356274155801259971589506926351561455381471842229931968987397966602544650907518670269945211652011246689707488944703855112184334114140935546858060182497158434369595699833996247363487771535706244081188727900792170919431852314730788316536679166731072833637785104707862483094565149325406528621281881585804347164239179187915608797605256036877117300675444200969202576393371253304726354447270083122547306330418327007435225780546477193006204985044084595260933255059055037777258893646005898039868205271835547924765444831294860186566175643479521922991449278198649239618609508348151004675557554794563687570020259755815948339341591584177530038003159552926276247493226548316290018253655092097005273253359949589635127217668549435622621632213855190183512337518732929967668205386830660378867863801463207848661942342766687818133644948120878621428528653062131043058081732022799852413099013766141133058314851866732013045881375519830325112353472499693067094394729003246868129616214776110697534096485390690191497996081304937814456937662748931844173100676630124704451004117897048295735881372690988156313506501060076172691642440738456687265616101000556236524799600124090895276510335873408357662680418841750217894283748223084946896489738031646562673466153272053136593398026022532599270175347754555906072674583632668710079335665007217415345141370173043056482004396468453024987737954821644392506044493238044948026800576446544163012310203070752945478438585447466470049558419848030864430530488629800184502980127090382412008927188718347001238934706089034600425356909065723553264789215777141039205888210428605371959072984580182503430929144269229936663352465760403995063271615584070014885840991566665469285107003688068648375135285365950004889413093867243637088573039342266010794222395390109594329544649144171550854416001280296295395144664129335490778792729847380414086503443579695745836579874361140582120888187165733299217455954621231340934454270053072141274035685303292257886084794435100876038117775009632000716249191828388780711199453307718951194609592613066151822800699611573271270479419983377749842128709640737550391057072544936905439462964246704286399332978842513943809853024785583824027803200469327428443429913230400884048200772766475450689275941658023124828025938789219250884795993784782802557136440205308168713406495296745460258603096441291494634519100450851296129207895535417792838654575121069301475116519903710091744859760357486999518797297943395675047243138368264957019069091769963970226472131220416167833212529014494613178263692455154852056607995009368088873136815244715192828990803024695329791413111740090521512718121318993462255423178449313804787346477102579518062018283479266880543865069283360468864816853080697403505755732984158880850130440179987817837925182408192802886322482726803818278021252808596627125492844995744934177549208482755885057038186594717742359212261205299080915331768878703487406368344327014517719937107139873585379506792334684247013535109679678315461025394334169421503090414837310111277417938660540818824822778874433154613079141231262850972551763094187557932885085336656357030440944574967049705368988113498586067167663082864886112286557878945448181814167495790441898669704532440650577024022940931914131375677173062054041173952007726732362970979496930086661751496352282279313827047762357100305211424314329144563190386885792452533836453739745985819740996283985892920199351616466034272927470921442783372881528955527737767829438182453259287617946589984610732241172455259957057127389959347344505571341431643460688680636671518956835035699560255422462208419185943780011088571474760624266798354715269594165561198975265450098490005669263710398967436919467198037451054108687467337111532392672978863144464539570649641304941478503134370235873842923987526761574405084043071289649495164004783165783009775802361651901882785920581931335005763137015825974312935801623514796310139470117029257122068621824702895050433535978438306682366530501404340930592455788809604864122853684675074383948399140051089993765059091120161370345134417696447135447897305449227783286546679651079265661120310749165115539368598395668443845854459735069383045404260958615286927431099020535614050598420918220253457332728511471340776870862595743805520732765513763413915957534336440269188433339492153148014052508570088548582765457406483745386657969157211210874387705853812595769753336190177240885652135154960446913361401330504352975948976471814504294653255557896927318734721536744426831862456420261528828349788354751648907872086761120104622999036439595000790101898648600925916778749579383844433926902110168585357024492934946684433299046173572503712114800418324463189910766209859286996217481841648605522091697074518781072517263571952370731397416059680226147568867606234372006476959320248080137146684273271375495839927957825088816926561060757435836985899716989540003005885393263158332808306615312043091156130738474489323010415628191579221029365276547705739721030078343700316166264450468145230889068492656508647591949258599357904004125400619205382189287880371857458386739850460256093986874027066125800222242597241955015043455641513698088616509905208565144376394522215765626861090017912136326111602749667644313172777218042656803025232920947643162169243859878274081363420115952670736746982803070064127645060053813480778621362859515086825182307337609034464758405243455536597340751331022381479778179458394421785537348814398702124210883784652095650367335049612120346701254264646664518922713460112431125339959374968626672684076020801833913121543058346578796181970602500478411184028692907697649655797388357686751055142836079053661708359424838166505043110807735060210110435416011279235769589498819951250753600675698759023240959098919002268418808043905292661771496644893931932927169486556454708873850063230828238169760404088725252987423306704047284337366432494020040293797127296951574510215307329080368648890675045936942397952342174147801944887280268667252690010801241663430367004299861761439008964158570593908208305767062937487413871701741561632879807394787013131878275308236785015975624429793459502770537280082158803393734110868029631352052405509022305685460261536420384190450764215104883710308174075194959452148219382658779291147435700736205546053130799901368968910110894372309095124719630866905213763349818733470360031275121179643482513128021359441333483167351399500419603282550129065088784476326800843586982702406682651711233994023839989390393939159138188922305097682245659522620554904964677127686360590099472061229296970982410535220286965322903945336050578728044260510116443998284799307107375097846294349163799287898165487084838506710771049110158105961049973588408933156559040905152423975099067610808737513536080496530524032124098960414164441818858262583002710099309305631514557417344207143999573455176709205300296843084526424305255816069170820191312349300299541105816052759583941055979753720440600989925251683288827590716136919551473303735814514386858901522069286758575552517852942815024666927579885595599563058012983444646169794332457092801502766884962435650501487676584837437990762270026188824530196953719717464609789260978685125270740797123921338032064853534562271555039817988021907259406588517508666714830042252186181981635560825426463508755422174060656377804786854112941695629284899034438556797652794055157659065499611281797187578434422763325004252718352840137432082056996681380158578987663075341377983512869150736770248149555168274339747830839723132546279161346270354895446850670030576002957170694766361585476156268594132499236965488373090665001574419727901696330062392888301621975044692923718301363164984840870250530207269651618503612902518549084600787293546554029841839923224744829537176422516215917551874342974364250794037697383158148468575460905737093507720208027773935871904094560307840834022117306886272371174315820130327628457798400567168017834210430317648271131400258717961245927415620928369637570671222755778384316090921875428738999417321991917767611359287806414370423612966903118806625927284570795235496708002558593887832393260782978846445291906352570537999785864141125517898627856117356566977798691967556208180864097962728727246970548607187333758022501599660629911546122376052463341223089641602930196263797979932926822249591941837738276070152783137645517944236406274653751550368679423459426184072674849677515140410559094009512170518404050623448510002484621001760826225616624395332527318455814275073967128167351159088783052164026670202480257530754872092775071823204399907361713782491183620415089572416155114567473274542344920865909090034526129526122979969641308952146475618063301894975716898952348365184139451329478844891963732080543587721895837464508774964784504364465799360238792860905576207323442274963373749482116508753996894463028846017932842361144644582925516263102954605449302374300644378791213227110290275835884147888390271260959487103317828208832921058472380595131122483528908974493413153540773976827961117924834762247729346231905625805801778755101604634154830104294994959881735977876245748662262006626715441245839261460044872776417187513316719412967263457519841372772717063834968074629576153949906246484400342718215068041964479925408346792300686206019449976358027606874150969149191942531450876071425513451029843515921035370248187846961754197248003547953977156887728610514655141750768516789997786743555583011176038761410356563950403764238513830837845358365464207714246794478756971255068294057731859226225408116188464578889326100978207330813005520088135285569450592313308368269508152633753019516689778313955149059229717736862033964881190143475148241383637692446701002722960849369771454753235782335688390405953490901540523091419042052209360196849918213528640039279261228542047806820331163078747182441597235280451320546043938398309464985744228346841781520037738672660750494158881651493034036643503870490779990228595745748229199900948230757462992525200586090514031803674437437486491616147476917162734892328745657127556458002928134847277004791517439611103178946007420848286926511731797558259958326001513351309602425787939598490659134736439697437974643981551108769123896228990709521496087584959890398174874911808150903191313566417188377835503396788772182780097779143261855298598515722087235577638125894863358938293553499088595023281873101546456209971174724721642491929924525261961832838834936012969551537589709176941952819354997250945732331981741414014177948651510883634068494596291608646339763355582567417853611805541299926227455076135944703920450384794586101479894141688254228019659029366843502985345099250908019150024654203672007274158466505531510816742859865559178897462057596106317017395013782441957372770864108396535552929108891090283051287737952200466514360202338138845470378604626586102801325359109771169291005142701859071081035645232006870912269295978290353395023160127040166919970442383233212439117806337888149990791415093246876775476689932981210109194429177795174990060907258965920296423069146575257431295124965844640024105467215360877491345696531069551218906400971636849375491607198799205794915402893545732159375603159125704791422071007107432313684677456635477389373466716116744751632467716769174271813862539313187400655784776071983943259717499841936879860583004853297651112839330782935340953873432175478284149649190185673681991219902052630949043060796429710173769271710342922840634554390222329650831711881382570140334237047737929439297999833116272252268470859141594580327200217113400972950872242244803633856582207789343346204956423405459984475158256795512754842432781303096838889963684590525630248831265650880962143315381593424685660600238758707759617161488143497190123309767284337147235630732292638407411854921898531957213605932185031233810368733242275613785855542196775453867528567117283988385208056746224801509215404171658268803664094915779620661178419659897633221723096817291255925690142858411323892184405370725884760721099201553887846247113665875415049879332100863429441911657431818356755461779308489119246165171381679984361780905793094252445643331346932727696152552116885689393735991047010177992916599523741706570087385235514312585043452884075471581146718493182995473332250760016439222707012233406595901095244114256743507998087524356163881584145576915357949396179740397891260179577960937549455406304565674572456373485834276153834468787729969079934833863968240158869344445061685873256189274134783394043277898733514491039274269766366619213576088400541861225407733805355137193871455400610182053866854906687314730587039294084526003785578648066852130596618061472463900784644239553129566300413912854103514938094333120835573558672521587106350869841367002630191001478137828773726507080369064568797986550568134123855385972461764083763655189875804176750774536849696198805127240152921543954486475129064143325503434718622367280559153508873423043781653305508983754900928139001046192870081053738840192964440680467800250781975803336519007210741684014099502150425084099036198282215226197368259422445624130202836920734263136549451883926240028215216131744540568641732094638256012554883228517803855473034199635162297254298383624741700042834766213276180225689301837497166928681531365521967146964345860253005886282076042720874304105243516814026171563446935528506293932969620354271462299488152441664085603040123080854607109900666672042510120394274170971978452902252367819559456520281608562341608676009329485536248871361188970510446829214602213788393025137165000749006797967812131094821651433903147857216052496783470907849361859677190511722502912899569429610759243424900527647300064291202737829883622604710445860618181343026434610867454342232266279813502145836265522450263397831264803341689639863899304272265903911982512395094525587450337736100367086022526115497424869395103510856257605516014967548761079565870861586212636625236840681887057934438243244370930568174386405055733432349581866473255380782658231458039196682950962129341848542838048614301127489831097690848750662928352981616077262218454615155375736836341915677945458983143923886108606659077751691568392059819699269099860041018246808500266575658791174897016017841357363401684077554159678486233513492747654806025526725282968758179412134124179987167078467317582853867600258493965464568228057014007029908272760563051310505213094679679073499525559234165386949820828947509855893581380475489395873672409724863220666552399229900914400299891540989788567725620795404591217952214149992202505642565909183587852443628574581165551662362090672400407535366873549008611344929828576087466251091834260253526532807036687350471659975325663373429118600421341561769806310326839586351504284969223436162833794150878605353457538801089930153085646096347563568726523350561520045618164123683617216720369409541937742731716695759509452581607511252682102582252878549074251821140531830452046944231657759020161556632455516586840683583104225463377523558335176023343815099223909562109853798281161127824799817416459806427288915902489570145486544583385082412069626938543824082371267791417969565652203976367475026925189728076368523403396061162855904350622545121912019872678173551851646852646308609131267921656928604870228421143859336323997821756002227604569351117003573514638141906405782832339114004431784019369466523821663966168834068334917541457885295895539664864655917160455549792557273794399248586834993783503465490316107735315645749288355733125656222368417281402175958333601983435518800699171762053215885092690937380474950844425345677411296305922451581206707710434610323871734301461078081661827475722595119380940745052626043431590972940155038150041660583741943857935750752985186505209198417472654552138256933075277746739625591927682611182161501036818703707777455444863991058605523058031507323060031760409025158656554313842002892301750082737347463179890325045512918038959458184456750480741436430732928815687722985419835703697581366056400802817607481064163097854533399640593711972987106832399352282592851778214887621086962981706547339341100690429628461894400005964595547677760223309638388907872829671060323041124496586110370645902609530902072442541719918814734178305166303991387200119024186505661237868161602588127466800137920679232779400684489439620993186125538493948254519888887036079082650894807546876437500649324519079572662463149025412776907253890886058093300930068901817548520093221535013958873909445425823158719376150594464700237473557031508948365947880074641895478482442390285223319787403271698822278690777861868337416552599684082657377464499379024788281900228612231612734004923552301849518393055470173715669148374935977043703369850035007644384274145452648423765339183308452103281471420101329867960880340709869782356117064925291868487476116276986272360386074721434304362760512278128141879762273976660146439012762622334341351261052073955982582326503614995575784686825532703674712463436818943073341806443629603832086675522309020517246033537701539880572946693796062245499676929824323812073199009198236367375480194662375626629851729115593812754497138019227063010025042299996147570270042879764773136551508308996156787212338117666902152931947551524426422135750937721550426272921127719240017654237631376644521323815482603693398464699714688054243080343079356446732869630980032128830489422440173209642897760863782372494522459488878407671043489636019439660118742327891393434648961297104677537588169584844356271537921067193400093161538852170284758286817300615503581561533080507822183942617716932422498584159971173941632179176020401402035956496832642497941896419103661940382323122756147800597488727734627117333706491510490826314183711152967712355192903228701765869438792099404668853233304779832929164511345237477155800816300085597770441697499966661129471979841456341430869093258731663863902324028588967898291158434181078304318705291721662702165110383174756343126609836695049021062615389666257299566914684696493533587510570115901393435408790812389747084708351418723525977819154239373020963481886372745824392426119594042766819333989117601762162341095405344131232157070786251975345501229202516040936324205587446132669827048686414200802666896886849625198089316392137947677411672373590325852676734938091579218981527292561655074004685849536120653854658848846058953135285919670496093698351685647942565393122232437982023070620778256269053635997609713962694584160802484620039918268721590140784766911911847143399432407802780425442766622262101877339804035621681969170400053590157621693936714490281314068358797647661400478112195436063913489781150255056101689109084954632210977375561906466968790707395384594932102862446331445933336359904928934632581852811735042871740756040050233447980337153958312332827470548032447371418290662104205463321557102471620906682829380230771218809991426582239779483818968674638884091431561635729558275193133773763173578060414523472889822114180753408922991596357401508628014049848982388694440090142908511617085234323694083372605504680671283221403228881246061045685840685682536458407675380077507481177364817206207112638470887420691397890822573201880984407038022749248747721270163656759672526515319397742540333462934314750042950372952017705311669183351873784462289097854882612427500498662234617040880793553567821241834407672705303217615917803265037400973230367079248685637319429903633484645819824854695173352966753708575833718116172805525211422383331612197532897813668135040183716509013339213200630268767921183678536517343132832487684358067199852555121024415018218845193373422735011485040664103695331739457807063099801122041352258356787103462361357296795268005935317878678733566677690579061489657750745636234126193069547290179745736295014869619895000719930984985903483586293700244088778050582780060585296652148323808222417936831814162183491014262387603830031025415686415163607083943208746056160885339798860118081044036100726080787997476631348658547884216138439944767560665104981774359285928022828805749895638232746964472075053420968381696841090104078761011817465607824947960731430299426476555271243186874378534202759016864016258301941087326608779956640562740381518025921858030951282088249680187301867475172029896647624167861074107169233036372158926646713539585203352637436506700222739569555890632465355823480199093882664112330555604704681390326001809793792615853756421330933005605653824259898246497531718766487764173457225082489319489627983191126665451116034188228988520075595728077636462876643953609653552534383198709996645298131043971195633664454310563642925952766501457649282483751025301219574286962725038014780533280055683424679285338493778939019640759721835179146341730075215907360828462657799256502607926939296405700568850209193836978680749690862264753667142471480920369898618744743545179258287626640472880206929720403909882375424826954701903779462763918714759053119119684352729272436291107162450265247875737591989559886337757039735031421349402595182434452889793424344190677439599601112484497390801972955294463410770347691898058065426375255628459679718336143766128944627742020350103343348368330629796234429334328226308806489900280250464632740443281983367437853508233711606897587099184356813433858147245739890201786688320028550827836811445497841824848276168748706759246326621384780711050250329338813487368672788888363054871177348716185436136328302123633874207908561472310288504170772940944369968810791754397089897728508490501773459022761998256088111006220700862045964522695409242875688823339720626680100088294575459671456328830232803294032740389674449020381596115967900689183383400965223152508241271949781881682687927997964838545468548951220863858873454763994807071102216830598875853289759723506271088888529113891165473563673093333550512358621748907814013982951527413754411263210169022002015345784070008659896671188079863195296369589403913309543440640964569463478277499161852209139434013863926487319546001044892105677930806932015103022979115891011419320275710344888703847468920309873854820730487086517186101399510668265464508702459840893378331063908620828340730962674095080038535966907175965285217917271922365219068700178335761828272458671858432818404742555488879664472400074487657469276831697489659573463919621414896513967428282749273444801285891570157637532371958792424070825135269378586541447390893578160552586952149544884284622342526965891641838922288257561941588573276686484285686612573139523231187586138704703529177794819583553587561585056606595783232813284945809804099253570787951042063380163170737894336806677940812886574123000095698658565993177351018770449337687570087092843474860718062750093229750042136147741404174438919233980710547513557666762362744676126002648110029918011816269205875619492544310685525916366945868758813699215115758264452337317133765027899715505024794313274083315082055341951736976343210305829013430916222469922461879269896251437236853363899539249253333962029038452695408708616867034283283069954828881948705127617951306248667075187073059468158732917529348097461355290900134911870598811779302673841636087390697731579721712675034246333248105627369254139125052468955106040148945129186875949856615478087391644878522113975052516846677380947399828524343428499691987322203286864088520738448483031964048407609000384324388396326919498574027682705872322743431245900746385619441197090431618823575798525594993676474215112770828405911157751617457779613220182718738258196633249942165979653546572380921407565868247640122899557923544452367634021329940228328571263316479886553934641231099109820266763181686349254183315679462539125602807162897021058805140260962256265514912191180483780670508615526167476726299213614324382802974444798861385256209989039494526176871861724652964597838477586687677961659092618917103892708708022495145625961701346911275047278787628004686368099592406504283659438055233887542060338650280610074918328022155631108094572628062915777209697239375118525351784679670002225707889936801453030036999545784496777525688575095616934085117056821574423968276867596372965538539374333279010884730006580985486454511972531970635542018645929571093732359041264438125799195442270974266053366875570805379904569915941034110915465919569297884626811403208475701913691560926585481786150454268242748695702955696121578052284912862323428317245678331402778457573834997892572767424514124690956526140759124460762754531862751924916338456460888622396271906586113379790320903876409677503149516266485361669047994963311536504551440590840335653133999667742405307493862368289847237012028968927935456746243078626012770189327614493409670056383170673104558075167219591536689220091056260879813949888898991748859203694527638718831355122513953025844805742143033009901079194563248310933819970919674552825600022109096123290855401500691732113991234498983646150098199520229349927785368517823006633725631991405070348207546228229734585603067470236659618204004269289893124292812316018010567870607667267306614790697217452620859102954535822092679177783578044642742373886959464440022883731223457879959973170547115649696482608589129976249915316462002617645764022059279401332090745023129331997114886134922174915195017627956912398873402961511450816349706155919416376950096220250886092587272568523834099954668390957945505948622763396639407443311290452852421601964612715444738118777610387251739863254309416102990075163606694940843585571945384840262220270450486109365212512748582497120479635353120755559526133483293621108921994861692961479466002359364382684433731555055668393445839143378896044947597143383943419788074761128987717700691341335280423392545423668127662524255902123024747721584511181217661247305107185438573778261542929196515706366388861747767284752837063728802204404635815635177000418625807881404783611626556892286245982284931137714976034555501162058256265142856463277006921170681420189429573132662975815296485036572993811086540481264782402731889989338709333471826209253641200209360619475849687266629158594487953542664157519341489918545051944890820051041245050017610691825431289794117364602361555205780958988419827983998621489426996848856475351751604756993436215856813072208487127398030273896904169006569192810729920248310782575070114575713516577024247160723355117960595950610094751652729271299166580242863385982149182659951625053580023662663742423082004828613438925189177629791122824299561023001136798693424403076334070692236603692440455383230901252296727208093126629130620295250397954793072773684660955813707461225201176266835178969300979731576338039984417959921666258334107923409124790505634793159248912176611235327011961936120450555129184553703295393549106471131160013701263317627216962829772106171733573334223205969345241339267104833174528016664516866293025095921638028377840110494113022479760253581042445783301409501896516644406352282857111297295623158444185069470298619438710410573723817706622307433373495300085510902655530133766556340744124299359847591495423654096167909926966823233901715796493005567419439915706324061158456160448254117634084858166137368582131695514535317361628672867736481359053646490748159561843807954032852958175119714414576604033603382079395699062844271343046006046300946412856195298848200424765596826634880140532531201776429852267159240798633249075380097216515780046436765392754858942739262515579159362648811845747254309788885429696787981826362939129435575510884925838496264225114253682026061925028555257423997205200364576039171073278164775342306621646300826555430801397931129020842301795111589402379208959342228991293526605883125855133532249759258371803807644894260009782645846128708394030205192058460773464037302967609768599213398731523183160205539202433664136138306331282130019150772360902837093325037892482378939788125735263321374413343443126425337973303691327322999164126103010121239527273600451037305105596859506847518504434965546939125155960698600291785944645863622660656553105381759095390758559705564428725373560781278068023093204543051401462166430372676792981819148865118471936549620443887755239234303830496306575440112898628833800338907133074055699906383570800260730686905255451063187109361548085149079733183023636586213630748171721781896418333527574393065851054755885607075861847767474115208114978226954982604745198488089547241864321089157801291585116088256472740870678478283805842053941603547061337614127610646648474179947699166735831765624908770640055748791371734381162442324128137323041646523408222776262570269451715674040261248333107609535762355469670471966312749184368257875811281373894305127130958530005643110669474302090541172930122368201324214730351030282762350901789355814272785253807537211762245670775766432789326510723377817999351997633021566502307105843526758990739384337644337162825654509449202347171412457829922434537753816507042706076018934214988857394831385855539271530587936073405560632068872096336486967162995476003175812224079021313825470460263557758954222960729494154181810788793655205771425101853675958471742459174282935826391600852066092839995143387815438660063912066264732732532954205674715503529165896272414412939653293193658702566562249888133888759128689609935096474431510226554236849539888082441458428922442527351145284872863889780251514643155773490039935292240925378839880868593503690146601091428678568439614004235416380326972808479771135953136293649191551761630770517935898074942827465823276364118972208575683861817471017844623542080646153406174040107639763040611118505057183474503473982755312918852811644980655667603037430800021889340677453495703397422001281163872527954651169160235311068886146801442507926211164654375666658184483679326515326793621081761735648692953666750884150678246552693659123524975379335072872979800198998715202269228221736836000492912883176274519112401790007612495178824046691769628374995915502511197024955257796435683484772089453898282885523763586361056944449025998448334679187425836844920046469505146773482241690226269653669309404949579617969454635346905971976407096023843852984489938709350182349961891699639742057073368699037526503781018693033276075430451809922105047352031374277865582299597566361341546239355391620740942983385847319036740399974756269464097229930481170360778200332738007038299897020221737372985321033483862410913909734694916012686137310887459595441087384817016258095233673017251198235912844522012558346853658743437883826012610243566800600674579110081504013829911562718595715534428054948953030348084776524904875572489751890669223734238664105053080774565874964772902154352939963695338143281557649977184147530156083972953144744716949434888013926054527110994557012910340867365906646383799342724957865211589983067505137712203290925956648296041403338687054141443767137561841940120990503283625924433872346839978485847868227413462832658015202803868278204255723708173555465486944744103540309570198013114542766013196518222752675132792169136889817071230874397915490659348557497138930782861741494918712239537270186214845151094221385069889293055970295215847043998439296056397828026378015199977256091319415672116580051663407080099239338418009006632874790311099226695331435213731037134455483450798408116384604073424860878074998048362554481403960806081492957927462023988733194238632022983570000462303761127642976343894942924127153417096169890050050078379156334333272235586529131087055947162070454347149652273899647437662268430427218813438785675919348727933426003421064434042560991822570226260185668428173221098168342683098640681406278828848489930460189827000270334141836613818800031094206311549547118680831502675071449208015535047948710052780600287440754843466394358158371724012212764492539257666578661169163844908223241274522697685610917250846404084536599010570785326252426176453503051630000947211596029404483118128489608736956304520333988562777087407959395215780125287265295397140666509617057329035080983991554068913555814498384682192959613319323972035373588817178959226165286192621980758053594277024061315002434834245451437911713179656536335967812912472837713157760538661717131974004410074789915012464109009054490323703837790198112720015486774401384192078341708978597293669155227826804828017455665446436874122994431012632921275842002841137810250358530090685059018069433668331613559283175505518954326574083395561596083162199914005301312461728241056871144121134986605088643399073768113083063605080019746007982157397675154913441362526109390472646381076086566988064338902307374908996088755793981010105216273196060408890633079290175487958371289551676231051351665343338670822539976763417145089034372722149524837953552970160800863445966690683334104081163815550244611623223276408780244296862734985244682867728449805638880303769487908719823840172340117967780708758503669537704470567328135112955305845994856922466053395846085889522965421848115885737018864174112745814816181060743793886716227372472199274996301921850295836863084009868830842942393261034653708010236813487201198773703056928867462640855507110912779729592002658006769324870583600618710795509384076016675673484176250894995968960073465402463752971359625424645442598215178528327104616362251178404881226513107391753478337995880971959435261923521737714031655020893992843638728823356194382199470541779129693557073602521258995983448994581291623746997831823734553392800383858775358614076267052804446879131085087970037335317784526985365738635162200158118692088923302235383354684043629030320499502541657819086858299626845635036923536091577249261973621844743950979394517946815024134205545370821701005609621238215546200368191559022271589267485120808101703186148051821922924534437027578057659596120438189065646676702788651150306232255533427276248537056365241729392823139871237430527775615830479110714542820495371974612931612900618248616029126173111980052992661836849450217790840030348563563314871137334719229804148569927112008115497367133891549667587458564378102286751658038787878607425314988995325563856119353277091287188756004312858860548498167815648064968281584170292968074159209343752402561178560332547122726825973402359755831436856834521677900055274302900625405598293210553410419041154300224146187642048767029453994068151112945536404746480268674898804096664117045035649270786077319001671146345437686530133543209944399737143026652854545234215584241718178241457242130687275441930391915920323598278495600449321626791210718992092181635921426225499712603928011327210007891584301807096070422384546913478921687956189047651028699830443967807191779975807255579591288970628197708425691307270307109035999919381242886398833762072472505440773549395289747294186777792246275823947384934318264017773890978029516907963586134649270245700912471059789811682719126651933238832511382971810775612496386557071291043372112556757418312986486348422584159911952069004173458152887255800368331880087166585600490007892582529970824179915612030733541792038640642175890800379266026318739923061359611379791413875217510107712925548728436601210393583899644204325558593208206202392541130094508976764284775130493738862334478250751923528265008493831227571759584475423799675390322906344873587061700588853387902796948690772647254389459533356036335070576428103717982091362019605802017369135617158787646954528625054872857144179048068348496840012105779500423384106504551810555546712451540065531993331208908067881918963127105128941740276300654413430795587616702724068338053801385483178841891363663169355700429158883212170249632622276870045796254787861214273656825814271374298133794406865328010365103764498094292384960655187010024345614939373226963676274146477874718816280457512175501391744559806022914781146886418792439273767161272427489885001496926176079442925922953298636386830415754281993217434348764022838651425207692397406986139543867616775008551373117394574503391361404817890477271062347821909530764431941776837851959645561684341324661051949140200766161224668355711433007023989105036821489216736269569778025967340158507945279125415527855995921062760788159019514679677064492924009566949877296170718186690743755957231467355751594427681917713169829860643456275863491778467060860292294984335069474139921530438494855348365399284639196937941159438630145293090224702980875008145514813750915979730425805959195495789041469108140859967859927321648219825034682620436118770421486496998197121218996108485462642843148495855599684135207264635374573267852161065495697342831353370312362529436530315449041278085978572897146576063561174380113918482137502305088309257469347101309541049956332575046597896237478580505928642551913476981746178287202338614903016937400034943449806393316041022747472362783121848338759162000691300601101512167641936125710613895186717397195222443171233282634527815205327308696419304839429201974605009886886772942816435456303683936305327604440641642485176495695713356476604521990602365258665847295583053658539509054872078195370313737856640909637903732306744303271338042524472480189199545157669622109592241858875354186948360210019202831279123866576718605836538147271172793416366992371212792685542065007466993871032589090551357844525861825898487476492977982275804199607620764251243069519582495842649222343529900511892609260782681227466601708814084194405455315667863724098847993088850295349134839631598828523803690409400421573647071608413361580468233204339887868477334144684468306381898033291048533680037270233006761392175969190750239726929957142703069068253459173016666702453770124294627738935371241346875740967787804985159949520134627646096640241997033630313708158210829399562098195212861925502824406945674932338112902620924669247533766441829277403030909295787411913321656109166915011248705175674560288369825611606180596769673675817050035604574671551692776732578411255359647388233808752154133805395594297489358563628299057846839939520540620120557397051511281355245855162444034186082406104615213619449462883876320311763981706310119349003312795771752947632093120120641502622062608367292234183207052168336209864599491598649771975179441945115050083363049761884582319809797060282418396662628739833548092201094386265355580727166494596826806500435864471184752581842166841585691905918748991136325462857904433055753620983590089768572805606277427407778375243100218629678272223678721264849625331899151782202284689165287628880564991874428341627576579836551740075849424344473667518277187898001583143676971704686821253750794236590443703010606599371511718840467452017089068557873776322010327156413222495017097201211499933024533898190785500709716080257437926111426435734140228026895090855487210840816669779862742410462996113970038734512076255771893502956608256296655117047484331554729663923869618355300328130871854597304555149761420051989196923870133936690431028806698324999363528087926605343020140603571368888581964085491570329653990333275001040871155521622560150270245372168038141218835674017379987561055268360731696670654278691290672058979025225311777259687473734320497839830610814333586898190226510045541585985542843758058748616824989961673065819713177252138762462151788675502163757427187183069502095310484453465185123234138245023067674325433668180166692089801123628348357244201763284343900542734889339569531084228567856607887193029845012727354877105977260265723012562654879049140047317490560697029241592344317179181225661792505566368297674082915512814324100233784075015337956135598491242099039541130444302796778544594089157645332795539693021120620432647433663828949134016702701460455371748320843245059885410526704051067222599786005976422297773548844599211507789430063725343489595038841169133678481993903933947068587672023250576161081767153704694064953087192848446027325896143082630120824777618898228296422990122983233163563764993387796610444237016632047174029240257018598948193746979443400453324252680708229817134833621996042355601895991244058493071902759120601841239433859074227708720198239322811995757498397882327155034885016170227076662423686684053795342531215307854786255459516284283340803153726041871411666296968091104845051201155197851506206812478173571311459531861826536181892153861522442464255002984933498520636118632057284645548585410539890601820945697946564848546797943313287567049920068256738071929911555685071767154039334499469323772049046594231898598417809685768420336451083355713246279899020013785666742208596275974605808863215667183291808328821336455279091482856208538565813834151242212117924735203360864835993732568364490838665783884917428939231151625364426578044708992207651111579285609468426778218769915801505870812649588316202742755906329757090697411621357839228470455240084236607149198079560954590076547908205488266122766763194185275136907906659817360233030116810000198624993047417003022767884952025828752706504825104288985228136971028601956289299729453475477028684084842637481273927207098013806844330270367212142049263508351878337070430661684852080266904192482290320111877448445266358398934221450420601890167086891337543874103002956287518563674764211549579794215241150869110529231994661865373811879977451468372884925231322660170549357179108815884791630939290792058661728948005847408709347102011048499822805813314891957545179490029812652726375449520473467157553824690246832644848041276761713030665384565049501456224193338820587220073870054225642869341215531743302759023940725928390049382498514754415827822914974711921306537882745511472169333170140251137146133414023018094611560146765718324261378090398773619396937922625219967480986409153388048688166315341056963224343574039802298566960329744486248648000521680617643957022514241901327156498535992135520007666046283114138946362266173757702910891179925444667881650326097568904069233133305807160843434603549265798471484982978143434276219121599678448681483352138809310624302728814057546853245873538289424112173139413088043143509625727878963395922733385477741267513361819076117632894309226767784171486400442724474119406480112514959706555489564151534714050649002773437191081548665835819069866744149392374206594041172520539037500318212716781998556429694226479956920903631262078364411014935437165572943352100583458724528376604379713253937759488426741955666138558164704404189220854795488546162162661555602439969221244720968233962962807986848469859436488356737731432174504406366209131803744724932977207494870145395676888362352159640925234446737467577857952825543296924521851063158624693420600019604227946820961328520216182549295882113787500384113635633317815079491355124721679992025366133738610094834904304763001354086792115615914308959054759234694390916168800930221801623475698125122048520295091131715803256165067352464380583869558395934050687742356767768930609371561542374043487088795152973307363614121737196977794221041997135480721217445772100751530276829331048961596793274192450390574042658258341225125935136724313707216406280571341861226310881584650103051392177613764968668022629418595351293257868220481610555386572674461754572026552333613313242758715122456482642261650863958116497144093533329810112321120653971874942742562645512167155695631581907913093035733570485452471703307705848193086703113048533828698453898415603135510169970329588104329823013746496523714999094040455487394987838816670273133522999779879111247433451243236818146249118895990548931797454097748005952935662436291571586012258103839529025724144949981126795253285876692837870246056412911047135076634613229875386219468731994035735477413208902181215994707808726519924828928764206987865546744147634407030821732558342339769169002707538658990996556163359560603480606805100088383836044788263641204249320943035421452882849423531779487358369929907379403504768403349068761640106092179440221100785638609329164375232051421799657239820584716297292134202034082075635139811308927582817666059043194849741422882502528233835667503099975053855702109510094608223289056974262343242775440447274217117654570267968328788543179512349786591703376022220940788500058896784403840176420120729786040125100747018833138313523062621144259492526640037726439631644521040408706924120369442018258826427403177442664383500325299156461965474990215401977687829721318362882239042486170784767451488925606988889735176812930560006306004773114454296757758336880935371722168607666969397138988502672673098088493458249580866196189709725322152446276918570999116640705564952673766112650422848613674514766767875254314906476241238209863375217315723620414207579583767462664577577723812440806774924491843046666771896919125148644028503418092992593504372291944129914138692738230226023296321230165806996974470084240356566458268916109162283687267825655748655654291821965084192690819302107644591205565298878171845117424092022636112097120169670972492825146685245713483353663968324744117328372656721768038049717914218675997026892451319437628979030730712491768792658455015752091673514890648425349996472233646084144597994508756545364546840126236949841557550275402589047414219222009070887447526577779833149461391685571279268471918186662347117603069365394997417597919899472015743187048832834100424179081405505844420454608541979974366557984225460733023104191085550038514435797981303954313067497417745665178743432606029528545781001726814706594824565628620067996673361792813370679205456913467362806946410734253847602494965438024512309907533525031926567614861658087929857200151326020723573558271624257647131121277102205000925156525133483419942811241564411063015826465282865808493558247267076253843945222009943262038767000267962550970495834463585386053536656216706032460136703829551471113101292799643013367350027456621210714089415035906036513480114867353933968439042635557702449350143782144379487606497088331025976307774465309838107621003213406876450074757552110930909850620622918772876844111920336886499223876020354880552629058554026330280191886979675796384456737517108671793681927969159038112923831377659722550420982532214827693753396199604054257932470249695492098391680829077719381431079640241870427826054111953897367615509469551808905985885702672801956116249952797906544222304785322235092831122878504466206294033149247476262822064520370959311081597265575932632091443986491123894583403062687708725896909878411458673456093758082271276165448135214080341870311598623453066725116268536907275520164154108726312774170964979674012101877191907732666243815438383957253315399703921991333194971911511964694068677629721813787314898470689756978367004991937382120793150767074343022011677692567398710801938388396039057626536545723201494632984547995980499729315119670150911653630971609635529871116266164085002186762096102672833914405460727097453443112349922689724426255809677303530655720275915977730288704170526728082404782733303273128001548927143362150592017085173882191866746017643915161079268991917435824566336882419490335840749080871856761034567275139937433958010502441880262695657094444642583983850090171321062968767491647338580512745945263735922264806704464299917343377805906916701868076253119924270531390445448116485715960799759806651948165793714130425155536455506551375121800685653051314969616333625030708605469637672106614883259078863622785328935853844635043187215466144548903803942236402267822478726827176774772978428801748845294227239220498238391584275345818284442951343847223719265823257336124163047755333753792345767048821374274498490429446873232735100423119008984887418508966547599707935916645084018165814665506439631449180825161736944224966789443874851234349472752525584135226099895737314131440022476009435126637845597153001986189871275058953413841385711360254861462796654914997858020951640270051893132392073641293772667182209422792137334787730741245535669770082711374874847296162214934418419839979443878200866804627442863716598468962545221768467784625267239410753026882843088240807332856164247625551682925803868239484901617126376191541889031330624616442936534502720048823054612156631249625169672269682163289078823956134924389882727620282031519458468063306194968063186240819842794453321182288045082061465982548929068690177380829789688709361663154972635796447441884737393329075501792257725763050763857594385382461798194017575397616689451075771305964456372199545699423346548817957247235667430149915064255999540761725570620021322284092330360413687896242271209939259298418428937444080456393886231857725103675968460229510681968153762323831647812827173817712562057032763417675621783473920301743918712047028722884887123815654448145229944390904128986893522789106265953840184012036447311785059135061570294103685021904881237071470937213381583522743703713545739332838113227341584185259745109212412049398722276712415540099519105369965623621256518014483511928409958408818290020656160427756380055214718468645932170820814067762634744142075148282842161374425422153642230975587889729710719027903738863557457004503498481973384734040608279237889703015596600814160555858013157862377831104307094431461114901459128185096461231251122291092002342230364487027886167350816936814323865992024505482404862786621038233455294065643309157090102423198956507544194836500759661708736003956819568528224871763081633291374260290066000952692405500391842703213909889565296766436210548049925237401437637629738943385594824109127183009427733007684089850547324209628290105179838437472489634019507723090487062055963826916690208899010409187021053220874937892260288527714183272749337475471100516773838012256117169231440171193459582388098261608671032352864760668920942204700420682830465699811684691782835614247560275900264844045844235437578756722942528441441213055940889063699748966745385722995022704635664150393370720367840250836967650714419547765576931244597051951329003620855164191081107634242674268469706039631081186478260712010683604057919798123986432312203434450318231076130821711856092409559937400434807987972505487300244879706300539927831404480019573090996921396472800362990662769239995506992599474775393606751237362027752594762545071791371844212911631010455519812499243325853087647618703330750863318238340168636199767815272455566117315363902867777881136982687976203612942483938684947780931021934840154503204855405127946484354166896918518110648155869357255438809284554002238920050824801415846410434190898249219299397572840958557085941373741949912091713414687125576267845603570675468261302159841660671609792003984803611053697669406854652862621742661057467152363881896055294406281004768652838260979090005816668538741882833225630217847648078239450891926970216981155507933191168963466730828402185357983204645575704685191731832288454549362491140671638999463120678172098687542038965866112519090843506648143786464441479215778959613590634077790380089952551809887875838009048415963684484737413732663717842577260737604190596376428178381385870522417918978663383594975232855537881284925499553372173303329054853232259919974811928167729876973818771999099179632561359928123080166313283345229744651695531488205681736881708106632804990373662373474501564795613804678920195376356481390662717150811590938874563491734255719655567874677993419540413979777143105488828690855005756574936038010771096565851600658721392851400402024029887559848838259397295918847987411406089013563544348316608793298157397490051743391075643916427610766607528504978889088547330411797724946893167179409351589733545065520968435881241388170821594551808990960263164268535706249993718562006766603136859393957997157896169009418970130771296250579783269168991330678462858683583696773060073278601343426389307843406952813209039230372866549175398795167042937615294939645243452160892020123587087666510030663261609865244812222718558804280031659444170907733667271695749966780787872685650967530605272158900418752674276320455848292443406031782789485234475287683597689105201177541587306441289105258208613754844484057511127584836563414008303896917814609354633263481404253102064596097264236376961569241722364469915532684091779310040409311603618128879459624052595839506637554652038573287195963990167631106678707461750353247500653182405578222448233437722216223649836931389472056971390657893523060736547766073583338239367599254958867251235966689580404123968296906723349199209768979606629134876018086862546485707187101756610677338313613026927302229429403266727852449779284970457608836814806067722202876686426730381907046174095753146076334275659345461364607743661107799703253107077747859455404624927053985024073221199531838172544463555147693411540940972309561939100006183138939086008362671176654087290703764333805000743980450234589128068038272899480900609470826583001528745689440449296374411384218133625917550345453447984937241902694937204898789542417314750547286191568714231271097803206117420747479250756379967889286248660296128208470356462940800850572991408945157246749526421921093421067570824220657402267250343533643563712293539737880009931794486966986870022069034362676009485041417964652266644592503758541088437005948348815326209641848388730586815942866809047484433554609359333974538874015513849078083732506197597189474293889039611186279743852950390054280192711323227957285706107057985010090829708157973941471608422541347556302678388973753854320548451154648620893860743998277874548541909867489351586885175483818025222880947866954811649569189733026371408751460910290734466516951912242806148313160093880329507867781068035312199887253428769208628041697714258071725548855231679734689721579673567049957206133133196200318923139805151533656030709974485858389444149858359827796808878625741993901204846745061956212504373309903258021745689313299534780526701098865364829391133265973786713902766554678951941780583709279696312833496621848807068474129328004592231006450576570123950552340938276246518564278899137222518228320659433292139904976889700389732370695622448969498376187804194870178101536276149673803340869371580172381861397081125918832176656373506480506071479067488575834437841910150091408251029961212846335332142031251947821661955976749552293961869955339049144918650261692202576806654622413113755293964145519453716415326040210917038781320974896958232144499832930076261358984497831804269650677524004022645266748376201098742748404770260139387945955361675880501823120333493035379780805741301982884122130399664406802696971890789730238315429995784289728906735658413280329336010834747339715074315761617509314752781333696113088122564409988949624163863282180030206314247001675731664260703861660817141500858831878422876927662816053524707412273161335629301618285005754940682613160659868641001835324657815225596026898246180685445949892170873952592091293273266258265544592724946654119363879349123899462500536684558203805996042882858095612270558608273039275797554494721340520159728542401394672162840112889205736944136815694902808054644899433807981605580916164165162345134403560060258041456749230980676999674722175891740396789031467915925892814599886779957016585061910239390066297152040716579301936008261755850897021324726904736978114544325986379778997258885210564719374796716933268191658192087369798586517651591758554638194655308621971322102710194469037081833423204997602283676937857793821291212179170900117114753965280435221528568213741489139561098151149260301448930420512985083492197672753411210011613262176201781981430486396823576730138121973098575131473145710445397901431110469050795791415217412629486737419382164909908205446669148977691654716458664625693289044819096513017229167433527479463925168784074776216597359978229064966663996829329855658793839068348186341108562824508851185924253154324008990572629299254030232439641891474524812883093690207493982435578253390021379262111065476639774522656429073151224095557676427583692513737692751312414307863001020406939057154146933029776044807337168461906211229575806005535004048842037434499433716541133451688262231574455914315892253946624901219395798888792620988875105030221862427705538973918076589116742485944985391605741564745163204617933777962079095125137231899430689146133182223847937884936897100564528542289296943184034640011162564315238365648539478108088783386517371112616355403675273470847729357922281745829663635113716515085438845276425784053566251067961768877134879410663344378026050976776337475548019236173377303292215349551845871647034636134091096023811086784908291058251629706001597540611926242660353857172174864662153839640112453760507793430190539812006477053311310084931646425493249464697225030745059432564430419415496692110431233499603539822053180848255689153310807442771727877554669463842492935833871710201491848312009150278279274913952824303131141919186856423493946846599752786700677341497202511055593331532954383686351435520518975195531496460867386252579351096138559434187227493805490781837051997482747242932742408553071867988574885452700190726623277443276072180570513530546573152831211475834044617847556482172884155235930795264858836765728036391807211012744627920316323971287867935018082657913888655425611034785596369521811181561211643208053853482041675222856686274340435573340013812502413618952514029705018567298722144360419514701707999563653466569481702868499965984585738446469381173905607504780732224101634005195722819910877584905156977916645226715990812459107099549463426050422238481955806462968263398387192664365942232216692887456418492304191424885930368488426010315936269950833239991668251662182561642382246413666717936240315401293725844594966673247653707215919046721729982166044335926335615044812886530783967053159659681936554315234982203808527095707668772938379090004455256835547459501122337160860271121682131135131989991916967353396305255872716710718494883114743056704543576064824511511039637817139227957685414983299121782048754007861246722303557234409408885417422675683403462032311956229255166359373312611505650875345812348136090285022872717167107007958416866005282547277222859712405927688757276941668274179629056084067933345966612398773143637776011754244210418296785765150679671152291674937451380437906304377712326146106563486987896262091931083007371848203871913251723574725133937673188845648429021667357582327896830024094809476914087741980405092771489595968812360426762393765611175318747004618155041939134594800701429096877032314872947556927335390952158684295409925444262267661971959684530922861236115128140538599433887261453568503119607934545749310232725358401557852523992974070740943374018657451696393496563822630140987391955517499502451696599778624013938521075916996830051633930503835399182868854320514788020041592953524819757214417002568665144042272317280535038530968984543032420972666787763141252032747476338238746501251299027913557506078058731415723540975375136547414162727446391699482583152380810388061261965949878189604571701874817937520593750815362612898915409298234863954513492072919887708405822911309691441355114360401841758205233696073388061789128802011278494910685750499305046786350934833288640087683025939089741112405047064734151087339107961640541442541300671742197587467801904800396942110509813642861162538875640119504532860490834240615234092995671741562252444658426906154501091459021934532862051027300120451300854428409034365633010544256867395298981000326913177718939077953324815776176468997192395358726014399575324815558416693718966847305190113400759454623848313805776995288716458861938069191314420267611558603122737723728094846606840080336107665906372197464664650012231116375783059185905047221082903028683019614477954581184650015843546644091061961633065837096449651413896957653879831953365548888307004293143990021289093827964804839533138907304380183869978829378115228859262194711181095003130712218089043787357548183783469660782486189110686168046017916380995506023714451243373976810962953252166401898025376173589250103554223285744759323483208429546374491785575371597306282518532659617470475449581748815970386425840209748338499587438762026662665389732212176227978284477969633888751050233887069780048107594414568018032027020752651078018966913000742946191816174724355568339803516892369149859353005403548037982460076314745018326624942963949245440037189125212364682993732514077615694928843093477274415822626132815822715900547855885788603644160062033007924543779693355247520645777421778487555435172130669707110211742782858986425617052052460121239129889822817524589830607551564766201539588222636737415733438399532921539533098903625649154735948069966355689873788549725733346948355952975086449778097146744562852541261822504398200649590927575613348408610765454119101021723641169613496309406485119594790863235246029708954023598995330027868316935394130717583626594125591273942652851145886597899707787874701777803974506134006451496388952633195934810349274844518980627501044889695506124291664843578173217882363763544577859923540478781830919691353604902516153520383485620313783504537771025405150714943358917797743620041409951774961095068604604881218985549159151287266334902311381223425209801502411866809289821724033920391918335227244414625993064551313257459019371589616578675291014881848865905930050109529394383305795044923996256486503694561988233003560179610617973129135095728451155236802048113868210234493494409418069297888973416667375048714922821533382315228549162656880526538903524280868089280036886111830564199889919204706676030137579565823564558192994596268961983526440682823264192992923802449561993695542907062202322981404683307923074891348346104390629572466563255749993927813430465162686158845365208306005713636234499005572903853792367738987362242216926629628091362348795152729552263590327364320239615514544759566757523280058928092254377685055880553360439561426808370915147713191327895297862681117241895052152662399149099479544302694954303828638095733216967633117417759872398623545699141253748665435747890477239547638394713599587334910399405764012878926790226291260328816205923600636919377195078460148975881793425044253944515504676985692860004536349699976489790267602511139148607489986692414705902653426515649401322458413047848026987547432873167296333805447225680756696667746268828039445682600287387303628833637381653988759731780030531884071824996421605821881073322723682521789805486546563502806592799514907630058925632682666167419799726358963859119607132571084211485373392646052855128403222441178563984490499617141573733352271171697982020742153637524046851329056762333783645653607154416297516183222621704661267178484406531275472237316370417338703182954032632492278385212420214201406413336743261643745663479592635944647615316934005985470228513179509260894683626196355078192013572658778679011746082437774825424217961554160249994230665022508318880006013772284148492954048480876466537459760114304091697154637860941410054017928190237413325767989131711935375298692305812987034587942487141849839717278031275248781016349325971699375391024021777843496946150663697331486349556657579101286102956877144913794005528554606796323594495996606257815571545768919945593117345178395027075413441393329856485541563911359997813696779276313164948135838151001133075990215637358524171657084419190060026266972502589495021767915299674326628334757585082216729275945952579218472636975272825561120374457092059445078627925556708554337421915515955739980997631450470191241391824640037328949357767960530518612928542038667998568784984392848739824090261214330087438157820523239596608917229610495165526615708220741261162993094117683524829821126774392859187699819606555049024230278264974936901518171281599790125027446703579392182774679566207390288332587958738158565639221995602384072066344692935607122386066212248137168070896311215585114262179442316912810813891685162614867192179979202175739465228239851580119224322129863031175444547785292264394964402190748373270996675731991155403792634223028482683340603826408657911376686513118401741899921634093689599606742437351523118726193332775873709703176927546895444663421632697018955382502607708853835481099368522338380887259959757199815797240199787628320309262293575817097183849064367902629900010122433836350866378725282678382537052488313292340341442406886166600227778314484605126110668377556878374592654231228409424818991156534827545853982633955111736473525120250392910656286132242930062190125540187474035735067084063977425606691694871983377955228200116201767632173247512183299637815927946020049301384309283058447739381686871369689146253059086034968299535708720097355178701164570905060585552198563521259173695010915953699971575857101196494565451303110134418010122435413134174123705471962399217154622484223098634530031280216891793412931862842754244386328596383594204599649327777878463906039823481511831642557202824489076667667111373484080879325879600159358309150190158322760467649505507716251043531536383393405579943769689365864489087988493779263780773737360051374581740412555408764768888246385209107545096210461507189214093076946213215902620754846536367683861762407693246993953094752359398139971122726635734527034181893751448123078202932266004411051581716695359365164913707846533574814469539206182654422177166119705010442621436826987408152482423527652048757024807729941050134466749650346456827833211981301809522715379144646553862440348434931314203999154633431668392979676529466988544590081733029832500190745989172538683322240606388005886063618100988808216509411173722720888666889636371264156937681281768530496943787528094268704068353579536494131941667206975218271557074349461768564107400238565257981232751483903292158244902280638094958596267027619003986820889314876613110287537372645873023418040948088604388415271457716426556427146400802369036530172954001290820764829695794796034391795308291993161869868660929205136752778548925839879568221509609715034603627712750077333396486397884005937215306595959021905029261332561710984246931874639042813150393342920592068511593659634294268517294072772780486190414294481411419101246097505113283395247479370268278874555155899357061487691128714189290732355684355007178336090660515006942581452142756339769092651612325237742198377923982862920810495852517678152882811931623986507717480270422672932616248164772721230297869901871138302869873872898925855590481109519849526643702259231637211231508973101584051881621933005463831140713750491667272876555924587324411872676249327427610956580933988051559291324469556940816675902612898387922178353914570319069087796203395412431441698717937807210972283841932345642898582931332811967935598554034670138312687148838497089847322557880119078291096865370793151358992011275721320210883862667698529013259125142063882473200238275093243082932278619599971181182285524600341159488263206241170326713016308022633405897938921969424053092449250357487711584352996021916608215966375062519482571125218482745204249575621109232713350060567696236582118533113330749288768658551775519089628187357581671510858523036326189279896826156549666869276179792365956066267321793661907492062238488086444655830753803915260824822067209412230301906357595664247190699631857183331076684127905505943464955957921065541341335514762118676647501095563608663114290136535913546620444020115910675077167674222057132616730095546569994506892600433843155685698724363151421388771016919288418218158747747418349037152163025614640404233616759635330190612628359754055517813989904837217873141040923643477066884981024053145896629405466957645272480224880073303282313018840967273580242003792453267837269563969757887105753068775699258216344451043631934191565268363946931054137300547417800887818263818301982815517519318664899223434843933052421136155201538931708290204143447652448280521205774421580407151960030504762135325263778476016688928260666767122809946250734757164419352647531228887834624250565620125088708160580567531872092517079048256370519780476455860884152632031791303769119578282572515172079231419365858293212876892966043670174048551120872188775761389292598126739980689561002156415301154785955446194595076493833599524948240644308046455055028909967225646017486904407913273300247496592047515120866959322172350284349657209107424720741133381396337037952021003196333480015431636423548716661123782519632337378572469284473210862630386106007777635030510791123715644594340028187969142915041125667611210341782597206673038380082474658250535065566320555248692939539521908816235089396647511974748753519246641170983630167799086045895450401841537024119718131324707865136700554546216180796789193406105931125877717750403260843236639638422600210880218833305638262142346367197339492696486860890034062503940630401206121271154955473985375130743375305463362710926111875987780285674578252181992093920526962221933460124226803246533782184609345691647774588507396867371658240013497725714123738163273649504458836286463794354943635722961553081107556971175039768728530459039809800679442842996556710452225794505097154590603493059795928151689568453388323872263829073084301403896989810327850747438753336160868179515539236787028414988632172462784463314509703161372102146303154934583943871374769094040198157850384841836590030583846546681724752583979919329966982028095617690642687109662018146375899590031836134249163279982954951055914634888258253405947304589148521573457298750884411379694938066810943192659873245931218656284605266019720234556528281151402415623252312492107066981015662657417645758646294635679533076449308559231351936434639945658231652783302329652113515653012166844407810056464778779163492554481960937504375067443321174939959676804155532314239156971020756213452452321563759650097720621183036726322001121316560312638993516983031521786820291198557346433149437810916211963895305550555151544917055699064142749077092375209854763566571820539207766688363492983487180249723317773838629724520058983852456226454928394391481163161555881166738865676546831039474605773901025040282294483107065281893218929395784257801297191464059348925817616866286220354314068257669822271962624807935570892252893981797318498382562056704592366515258232363225641998250701097807460873015808362766798861550060193127991674813971491756800267483900024394523262621087544084877773314840932838211875762374377484038785049354179077718818106526171262121573766974902757545291672297145259061420419079987962244544741556671903000505620068974175509412592888700523422879896166036213218916456475346632281653183187418968740856681753151402057775630598045020217963590948879576072292719954717215429034314739920761546618179626168971954984734393525140999092983255969669302436924897855643578741078120854285763716659842135911886201015582900454477724006122747488904594604940681278406880044495902586950007523475535374456123413739580549696614584053472609465734577922297739637642247785942945869419126672999109039755454411576523630197233076808160152294298397585142682949070163066561290626008409184887455452080066002661163664496212629355816602381673301721290515929529063267294336404820445380152318638154496913108799958734619750799999914127648953018786083823200037836458442389331700117571168677055485220127330710414911364481445147647053123257066862375792544139429040066366833387637016374415072411801809033080406752347677676884613836862727621630525271057215414411938704969386267149472092368387428512965762515548579426720746917953829666026159491714479802273566403130165185900705830247348757525242051879667605775727562936248382113197193905363696999209896848429071437808342652116854774656658455580023173640376726937627894098393756850029292031750751899057571877329560160730058675416439986343524966525866585006052278953002696222611051781369712653421430652210967303898768618240628844246740675909992129044527023627182876848251854316072266523469881052222189790463622915248476849833388028251856728484723752592018292935544598885936033833606500541660029183306941871047076479212927213827648680532352298136039145055580447746091536657599331477447074540157882777994093726137809192996788619741133443672928935928650287224622256131690006846051926521741476995608486551176530045456035876300543734901642071862570033113958543123341482990703449484859479479387053163573284652863876676664165386651119123447090370907091289827276227898250242870158018057264668682377410676170002892556935435908925131329344380715579726479590634699535465211505127712157794665694673593095615905289136599122555526263687127083548904881214396195494897962508017945433915585753277270138447263370946534475743615332392193536403338934490887862606844331671221518303897591898356311586749179738161622065453264821045836459850591183529006718645574196620572320296980740453974924762870624927990003873797005125223165548611467109099495961028449482324495388036958656016291242452591173996804551069133122765689262413469142924009148209564601627171498722234109683870679255790604555325423076709098632199205227880599503460887999703371151742246163752797767617974244047069458015869197910362399693871284957593913062321709312598211822977823562415431080331013395651699562979210310710523765519767575186771295128065117377493112697708204647876449557310542333781012102439628704428739936466620811840153881171540653607921122771028774837438320675768083088026720175987766339578738025061129607743195320966913081428083667020427276150615740851155404832225319898722328102325724961466300331067935162803307283602584596931481073056948653938603805934562120808144558119611481519500532616271485037959539079099123998263919416350151186454928847911080357757949558395981881041386094978197604346856506028170184384973515225133973698634002533873990075419125586321723892423927084840677520736669291195580002283358085668381763865029389585804474335489247431545253078175755120009422971769860623691616410998950494712387054217538809649586041215340843394496306469456040498578883926855918889144008948720655169117377717781012911554696191307648494435318817688483107752777460446167994944098041072678927862672806693815008940796335426969047452552032213619468498605766905082954385338357426265200133385265536213124664659334414277912961474366307943342341553401858702109620642918134236458491270304737708172316456401519668314818999872611392070996106582934769374738976111581068919717559359133405798795471517497978054673946269279091853681860469206852692631980327469032108343297465170327789473191365698473888695732465888839809001030511084108313083582860656328182432443985538249903937580075317924571476794459357868715775627152943916479479464499314047806025004569345528941971192330560363764226016428107368407882130294285130073951462399364142095473461544404056388295057585670853766256226633693074677462512689732576112530099659888038256021443128030138861467176883154775183009516089276246721376095938750521801360199699662352111678321631140959003151406036437527603312663372517080873893387800144614969851611019045413349611945760463338777990238252092708885872869986822054893203335400838597288323140163211213133389123052651014339081961735416880785748222668098797248034236475462865509809495765281699509616185999102986100129722177463737585060202302671884320869726226917922032296299867036936638863891270206104264513633447668871828620481313215903971037446260730526561025340909427581266740212048879523486638146342593639100689331994840419218146221223425406235119314144762842320745902981983474686675520936024584716766135694745559338053774183746386403619213141435026890026872479444575676773617068205372336174529071567243981305686860406167457943934379519901388830660335380591974599369974698351695245149062262817121265249928646417788171550169049307731970538606409091294778583100589374522001332700970709484380144107865782210131334920220946498068178760585924797317317912908468943682858995794713504035912375534620987990815603417103820126341426906127963403083883914866377044457333289496535253446578085622918911410024987001357574536081120203222279237890543974351713788255643865964896223547170937532425744280731621063683922858417105781745762254038563156154248622147503906931694065106192342206927819570014456441584804358248234369516012854559265680880313180485684866335085233418636337441556174455721557194883563616062530825153792319029248061184437704815725276794089199120070250298769875418214748737081521000132472796177433829033460049331361119980988265720966152047442673071978809992079688705815156111972383368633853174615743203688430859730973147100664461314247264033114387254923064589258158469516582049824637925711367773307307755466073421998599701881434550064968930646598160681748643959401668711064584584024574495676615322887703110754254044639622229281581733923289356742541380840389357831173960409384910246028457655077659418046945500587442363927644008104483646584645542411940754292041661154184631253311124808055337526724177926266880493643102896024438430385599670534699671343892842296076570974561118566355165408490488757542348978295105310940078809327791885783073715947377709878418093799229562307684930193032864831802742252075872243742714473685893623247632297357246807624459494003636751947703298792210656210825683235262245913457980452442172926831459893246389281839257000647179155634269585173586272309045665277048145881214863923209394719218183438075980837851935207612730035282368538863038537974876485477140181440226240589592032249944202656356324438769346281865843121881224448546209231174124661011345821384471640173714406753481506496766041431980663411342515483605736564730292351067216770097794299103498436396463406120715796390534120650003231265751820912976556133453262277079646231507889825503225243328048999371944094949955870162079200594786168382663948466437195139173739178407191533870772528624110068533416303850506185294640666673026432441768382122307087962108996194323376022678209711490427722830429676719769694669861436876722022040568481862529939293478209202507843572910288377054654323770832024843335416937918007419699226958008932712627015281422460419630029135956951296195555528408324536423928027174766151598383857771208965816492382469295050883302561543392111135552936222704360276649859551096026345705136112443382656925782241478000727688522286484361188850049994219303178088819160806811601158156500467326169039477864299843632591875823981571592672514709860251160462063767613325149207267748033708536288743167193355375114658440041100352821816001868267675425878655513833448281112229953006816321771351828056127469686532740075595882103433350851187393884757562253094410695629918875829078967242089013882506122130892761468315582473223333418213160446082230383505049309395443953831362720578825047517691873621057365106317570927757755893269774083173938875307435952338326966293334975564364659507727871411415502428399941078426290447946237321271999750923918327362453085532632972863125695762072990405877709686768192089555594190513626636599380601136322937244328059873859913574721009798295287627193809761746429635863967940176317329351123008694418640082277883928013959610967253337304126020724504170502803905308436930886026769224304978095812271676717869740876729941877405145500511834992314728217218998453449862744416672453453371999394835773296052844172923642119316252588333150441641414745528523962469324631803684337869227015518959304553826744943674484227000493734245116479029073273951514285490173310619429722967551974075319337501451306948466798496744548296913542844642745040218756425860546940627121126278859286064279301272162524941744480537404653434888878117349848983387588002338611569068843209175912126289513562816423168794435270019586745862825906032078782821860466298162814242944629854334893461658930729639682718961051398031167958922234634388864175250965317406182327864647722422001253446854583328009228610627333105112987589465290223412560019533490787474723714967153698653040789200213207765477783328431279808730809198758632459769848980777686359612710870857536488394211196948136287176562308448619394801925856928104489734335730163134610959266886134783616627329707820264123465023949719602474699964102273687198957095148252354778460599623979044501656265430591790586846594097320759017208615312419966026673877139028639072425774295817625651028332243394052439676156564480682160359049608825387568580647774924235546682970540355409590918884087306908904713493583477165108256275964332964340358987156439200524846596803735883885811171520593211620217698041459490489893879458811351600370707874135485594139514209162102209011180839032474469883380486442573485723070795745915657510394894039117359062956145428140513218768723502984627743864494540747540317117578140771489576192754845003048411113045998930702252057738756186201610041695135224316428974032269510410442343026025278134086348945982537443243284380188619114350869543977834997909188045044867563457373985349220221553284105373629830818026901411273185670978940800225477681834185343198950876793945054816909393651693499599632230213075123690053014217442540342572447319191738748905284908344659843952729537483323945745295505824890518934552101061145124311631548717830429560822893295209405993022171582551764793662426009371041153233953139921020515906735518034612659555228445398835516911582710762516783863454214427848371569517766500909594698236560664889139186138211487025123658389110290258244980593380233975042988636552654204453094078471178261298616197619210657368771786004637596305885579977458645416180169956646676316414939960955213450857807574598858723918568481851926502058521196937640052165043243236394722177324808124861336284712965373826019908167237923290324049834867714253331140190525400059274407069558691523850381144411279103082581459625593705696781929754572820154829557203641231440724576729399415137362409836594331121453448192224555427283465206124153689945691322888349097350067021561656061220585014018120902479429188980014407848733646124341938112167522229449421602686962910817832708119402624589522518469139781368603130778232880017099333558651435974113709116419078328626486111311022627142329962925209326015636507225196712804192969118892256703707205189322906472164253951329701060875403303462750281415381777889315882526627344898562794793056942307439143953639464368458279771755308301183571896346432046755210426589648859013484481783790322978540518681246766561496700903356077775070276235998491789493708031166498548599024215374340837780972839358859059647665116868846393214521260558840632348346021639681224407185874180351275531046451493410188165215939181163051997881874771509381516005650573088990865691705615906395321069730952970076090317096674086582558830404210710026550417677088885089493593071402498721227489488994095111985264942883820451645942596456925893769930061194577221124954176282815653347469324633044079813961079353146366094567739920848362495459945063610125747420495837654000069462801682958279746631501165400243894049569011268504090396895566406860706756591415546784861736522233363552389440026788212080071762094382319606291840162845625287456765381213386188480439973964822295495256798808497481560307468107828714402601209153345867948067331662409301803590272463531126215659925817467678382891941216605117610189871389618655312693065023673268729999787073509875983234874771563198055880868595097660482433125134763888329074764714424450643935726938018168396785826054674137702110705263284659105482234946388030612658149348798134680670766080532274747268228381265569759616742482765055314688723484458274427512462841295725786886074674072688298149152547351735707825494778800563479162560321296772445486688634544653336051980351818331982281859667044122027274326264800678016058148630114038446024342428933059104422033025788783073193192943755499460544056140798801536570883501367608191345006370327659136703022426251633808625292289980210196751910604309744884762908177111859766504691227487220489608482213568555791284836269258401662867226324192231081649077411829543206841860049108291451949284190848204169478388828764905015378261118345831345265541771597017247784174972376427604129627017658952586029345855468344321734040274658179778757301898453995529317923343100898454951740780068533971354991331297096986318074854077579288897700598297837542064354729968384626598422325487417339380661353298293448636822765465567622357179419870392943653669709875327799561038456585642639421836511994592105165596583167159442721619052138138106461282181716995552411567428523882703725904292256501089622143713891866117481738940806775698679871586652478161353267539910224814783043073088619355908134089103934558913186132122933723037466196133669330589665656290147329453008081447116577196280912324538700522515363096176299918714413858530387200171238075441429800714608861544546566546121428384016858483258791231440601889145140002910407614656037283201115279940131175839114505147636161329719469102148671439998166304431380600445975692159838295603912775212678351485948812988875319945542973181672227385694012095431350724556324478220065185537928109393928599239125143420929002346117072628762689508945916727492104587555364102860707336802043968948153414316695798496566444878169084633364766253212909223052760531614100084718239373216477033047332059452349388572283102194855605351382415245903547578804941679089099538735606001720567990307098026611331752087410838076252215098822855211250485502137674644719448655019873046874247569438026245997425728896466410101718206146166822179211813368615668348674061580528196948739761693848713253775425210757461358591576892649704629557458349818636923465974946683581314533318501078568348891549665748312497355194125673209060130793319831046842847091816933270360411735954061574462902330858161276356117188345472339142144245627579292791985745482254121108145544781369919873837506218295713682375582924165400736453545872595449624411345843561803388480922617077615111252443535195840523807283412514027380273803840843941317829230685708103303081368732078660047995934257616943328179887459052777888808824712990949057552799481299652213448608695685773814218839992413545622293388159654801545892086319255186874247700723814975954453033263390680503523747700391199571706723700466757203550933363320217303466973878554001988646104564353850714501445340182408275190979812390757686145274593399184216630090998751645182878702849177017910004144444774861624480954872593013788251526191209134052398702760798258793179650402374344960518450034329775585828517354118866671722991426449843198613896208411156069184111147392064951092185358588273706661722384100044385748771561242439077151966224825573222621410650726798115468182229019220229851090132574614481549188726185476821965233474185659680115972513965767695405035268484821086747914570336613226014405950629616282281574917555118308920263026197877268584027945653102689819801329861950835576208282084591790278707583071599413128755725256202695258575065429658959797874995141601049030773378646048484319218491788858540420652034592989558082885278372748038026283924098924276623387688818282895449203187262111548802150863535169386691470741163964625031732093394227619199582904359296048708481602400156941324680572646237305131560134940136388399982444838878500595666016440761977949560363224756125261765629772985426411510310930612356997917686501186805536255494617987249479959352174006217353065641169131990985866051135569215568988514749859667619675633987709085361049303657205174954216875953030732915351071061868056989693395929849412678295431905610653136955225629336967021503255394338341725427476787353048486388124135999987085056254192977082449147096855195760986646426133691963422214557654624183275287582193356934885315075175274180114862391535887734820721327961491666673376943767226243565219308698566031936554001366520902351295420654047812632249187869264252284821091598101814440709005968644769547076682391646579966998755855994532633081265628162777404645340561481353167430851576236787106456554468506187710592938681695132536267652118997600218920432578522957954929683809181224694411204903524878085329329060366491331187320602588433898844483694092064477106136540792519674157812135903123733500078027438581061085625149402434111998092102566362897486317732645903648293630772422043823020220364870714517733968892171752630879733411713132641770998150933526218023636939935268056719252230305439072999030488916698908889460396203515991863285452713054195134488447870710256738413900406273981404571646230346172220336272279084247734779632033599087461411851353976718427636528934697484159710312400430878085938882531697867884454439624451830535901539272313359798376245615926588913587138620540265818317360242632603898628803597616103415704724630406453156005086159184424581509680996538080893133638220420177402144502482058876963164751055242704234839586180541811206188433484186516807303107433787954785108736441832213315395148757806200866319890595281202271151392753848632403593976761580039930419622806880447490534052383758088655080770383059756429245795831405657918203894824011563208419437487840562396624123845402142232808463192386783889461314820897457331955058789042542413978517282237920877204202396001268606720943755897206337118295915766491901642271246097018422198878052632485694983089993575196888047765685982903964126246257894247267629378474144377045410724621664520414738517261458678494085961392183465357368044765822506533074869967187291534891408620899476957445696958680754048398633975270573841213642756986556935959751872817602939082799245543926795910032671531415986572877178663791660336408859158470298144754962085922361761230707723211866148184964658718226183214620373191003490970108747371451422030129909412523179631820041534465156495423011269262403774634277852034203458964625522011742593100509315314043481050388527985205954523903994370310682272753486501573269251162683947592139135316429980261485584528589670268158872806292398773254799282968458631091718448711590260919942548947097707709653939875583527474123799738062160775722119347434107531206185852262610734105433481238339056641509472746842331641912228666199419799499480423155032158740436431787324532018510942325920444414079563881877313125546610122610452497652799279614437612627488678094603563197475380132773980403352221627309052750770146630125243333287484923219647611196801855855768132073373914456411117719065282894234131083111805970870514198091996006314130542613409030954699570133377883327812859581923005036441019574597550459551144779976371044314256667205991227902404946668103858549392349220883335811031339578974608257210311231696509615883082224096078047644990533797471538638695728020189864669594675806861288760717235002981166421441644602044570361485373437708051123064516071517841801329062339501520472239033475875272824310128300432234511863898425228680598640910018317226408535590038671401061106817443753301533953287372898829069563190205765767266857823524425630430442552843225805174852411020277404808259830589965769695006675090899819663616381595822361370501833904356842971160620914498141427628826299376498316231162923491034940525525467679506676692055958670412959371406665411117749584399874734844463172178185667807628788903197819193710206102265052205546378332492390572461106012167728761639483557920530770242634565643611354950188408592088302134848499392845128662317486344750813536529788326654983787054818257069341701147916659630344976388101044005175313421962024291130821579821581766660957272888551565392096357462538991670439019287756125421378759941868554679013085856752620159478567091082958509019527248451734458782376525025108515981181686156535027199696529605412458322095456075192756154163798439104284441753603029104211702905544790938061527337334176668094227635215836021683408925646203814542516542773081456319960295956023287996568709256427002506390592273665457037357137460125727070020145774447598683593435749348552405884011336308865393797950694602670512901130779164209036578163472332407080424418966204818499885994893572024116157768234181865965446909371192004168274574197332084896620541638901101827578712632545894600206845733765075246450511097254409009929985829392589682982032010146262528407790782977957862699484299340157978214577256153113503274422468131686182524345817225852671115962940000568077526929676036162465031465099258412244509606363051832191477001763993706951668090364682305198223921353305732821400315561597794449261706178967758832397391042296426410669070538248262090155924110173664942404897622093040802460820087493102346248469035374547676366687715641300831935363977367152050989288919159491391505527757060228286110432103750249071772368746598824823919911269752850537866777661593973619384189248218223843288703431028729407318081318338704847847677113348714807956334345039613874628737577986893596447065848809126584444793156424055575039213211409779781906808039676153725983123336658791967110681027589207000111366342319713059175063927982027819218291302715702324219936841854193313522298231362781851839046990214488446776276200967459522128343154852290409234410429377112760779794950875054136008671926391763971076963036643372729810249131008702487917741637373980690986303235414643512890779016561230216683468027265663402965659200190619935978572204677605068179879046318277822638011238965861100725773787681757672629460794673966767742528467170308101235119720870514084883720485332006137996624779656714563164620489819032937479871845349550706278333321779555808203292136242826854078629786864117262451825702896599466231814090594512680998938986210674367791085805767935758734579412588650113727375953018781259992221855510395792040068490804668276203142992418373146612050845159711548563563052145147117080762149721138220963431227623918209371481799897078114316089363021622566620949628080610137598420806036988343582910199077179807070923902461038608947967966917405037838488396934229501775526644709528306470765286999176556804345618892976683807601958195116274058220374955728713100902625615064805801104869402640799301976156434018249693445284807035258139684737036964448895793657226653341548785580151179926792743288572145932242519807066948014303368502819715616183167215024409992263378946894063636735210964429459292028438858203636564870853783801701901730074326933736544993401811813011709220948766544459437144454831417578848056602304659048536114380406846316691411862305181302183575330138728026549642125409267736426601630923497645231818043079390544758830725052531710517226480085743033374608460816526870058869190831971147820733137597680887394451200075702589603089784070914958791313268956760038706792329404828643964685595102351973758131631611450083070312117625716593799055873974407396443722901376680211844917113654720811957955230353078669112572845540469864261666621608499188682362976891002738523567313326532268851504403836626584266820630242800393082771959825201794526392092971817376982573456426973179857496052204622608078588161167477743227487345810022868882136384621902049946388013690901310427323544610480308451346962551876118350865670577825601483691010860105172426075380294728053970549393584142920702866394409198015903640969247420165781848513643060209560373495547883921791385699250369560531600177731167996049286287925602850968167382307684225632802418303999785921715682621154509657184996298097671623505387496091154577954819599114781568566805446109129286620889934945972553737313552848781562289433654463581475343674236873423758131180535711370701012102263510853997443147197339454240632257923409958226308110546142584197778184688910066128579589019125466437071058641771763442657584439464571900871170754715326608013574120903418268091224973642147686865889092744446118640823047474203608990726323762832891662300935436572381620257885524009931748473714654560249974757376229005212923822645378707150054094342250005491887030810812859676197831620298862286371233787589413063936764816510849422885026958044666709339790573756058726374030019196968429741879682161137533355019861367220580452264227487181325503557158597802467828082433835790316281235659013528940757290049307731231309813613529506457903817641585353304230876313938201723855909223353198702613146260383735131251572750300188652865420482541406547346336813357190429546224744430574942980902394074386506233453307311303654987246199738734594569251367432534346933524730030828061884041062692392301915190287005186679545052235993774534840161353843559261579041255743446381993571213444008261943532197987007435218944337184898802735954126244872529762252495347559513859998764072183215132165615305329577706688602158708967744867309499269762826203029662333893843340482199242431407740890013558287180238623748922903244257347010795460761904710521647272237714694542246294323222544299471116126353234993267419834063471536637950372482900274718386224378253023134845162492057571956205824394602519084157206663566756233649334125870696921954949542621249484708373165244571738906107540423436704787520101885602932003754087467234090644899433509751360031010563125346531608433182915459590119713798508824839581870665012207601336525402907367853663955823479943700049607106347176508774328888587070261163239757083397469837648405646448183042494204667472169725449546700320884617268740814957112918621961484102956070628912275147584238081183131451609051460992530911692874648667408770659870870658450702620311242595230575438908165122751308612127043986870510486046339892503369836226579736280942345802375622499812487175304105821294455596342786046682499742841233814780193831873459139490635153231390166095654073410352306132771420000383347160524757394972526463427589288623486629123318018970185196265831666669288915375683183061416533000671728608948293201617062775149243189492737372940893394022346859339954399201664175589415899709904713902569594120108119631195396177406775599518362770480424998462220346891744653152659569746219270427674196544543998443676873021801307406415026614267377179062680778362875803174401104830558705426409121266638048964420074791986797100856942535623511703496343449310533197988483516808952352066632033818803167470204802760622986009742170205365067409524237690362487073420719922076765912806198554730285530753994028959879621981804569284525760951428994345700616276037962093057964043458338321037569325178642049970143133806202006788333300040630909073552361074755947803097453613794706532656167819151720583715176139247345027307995500379716004929063504675439508604825236529403835072532865909709581812679526840412195023874417764305438359550653384054474829738911431590713968609093537653564784296990254313888916594706826411306233824046095321304131523637571256880907343636692958012077411866729245933222313943037131164529009913890384485847110464867736139109887429656328614851382908850709377793942762856544397787904845261750472180802592026763175782498977119536868065015765963478557779984511107060334977452179488276480974507465211413095452895229190116150933860627115134734792120784429894539305153673021942039878466661856969375238066351041561247728396458224182507001216359536972105127159220300348392656917353159596094328955784477625022880542725007208939909708511156366595448051719444299207293371147898458292902120519954788938766035848454803208877960792771394202003563125555848210702078268059289302720508401219893530765357809609607761161074640273580336607957905235658480852660227240542434786235812315109477775935512193013890515876725210878458575744162908418700016848356497148421596502935588109669772450243367759671475499262407472465795596414694193580343144891294006807948891902948363364457384673486891233633540399278976912225858996125391526685021775443266462071335577787419666169960142169171808558691507891364906355032385741487474281605743217624479080478077290577116027534404349449436038381700470278262027704820555903146216145466975571009867607199315862688812437177878294803880479472969014588015926368715968043620407005258769396922447438200745373588903661188451968950322767214250596400934437756433635164626053988489180735005451906111561351764076253355093892866910954368545104276241638058301494122113312111101388074004442472807573321234416721557233773866070194601375526777773748169606821928394190619783278970197950144150550192488324467505213193184788789081916252336160173200781683320490716720486017204751736296937554479522201490650199070129312795560693776621481271725886489837648564850027294735531256934763453785628719243937247065844833556438743313768875417523638506224555556039996535617339041105580790266854193643011342037719265940758673271122173590015705530703221311222083211333042154966664908089471598645458605698662425517137051784057081561796057210063205402421243144721816527161677559910534275420141561123111815582386203889373412362417967200208928180460887417582962458214648144323229585537509135559332729964313327721005473152373061754504973993730633509380787489534220197073080788919846640881140003975950861942366179406043007987620221742252116674550937296669426134750288800962875409011315854552424127999229046136156563856144721421329681864567226816092463549874338794338776657123796053170116245373442380981449184852720608522997613461802388298817646898835441241732426471836262624942774947915611195397792209546870270357298693272257073995591397213202955652623855544329088968032781346313593415392626962697238157529238932032863106108705956787932162496871941186479758541721227578634802459169946101936289667670890816185995873559113233995666611361900992888212649716420369928786049103674384770620413985125804893320903769018937008162602912697321857561851599841832684679353064037637929854979289731012934033875677219503836555640007302453673910883426164083691556659290736989699181294231679490903807321162037917949053622186419667537676239862839918941892689928537685560998778534482982477458478751827637575480621817721184755214083078307744427082178667251210344200591538117731375494477152590368460101850695676862578308721229342264173801496385496132562160058338442310965059322231603976366050748784580880129116213552635423803012059076271797211605324197751662906733482065051535948482851666363552268916973865189321696675654218848938626049247854592492090783573824142934834862316429853357030634013380341284662584071425602081211534783367126070825021271269062192844486688869281024671629746343683849090113277073949197019347546706939745209496507052569363840724025666160659467414687064333636784929831773126485337370032084829122007235402124786679930062010009270939900717242393624249336886155406350409851550896455965570227467956352562916106960452155843746459308547585472169890966865985257221661892724240160214820619756446004501111872981357369297346543484622512014318392809551409161483680494098983689191095641076349586728928634037691069761631450719424141967424913576868390342623124177308782498217521573300074843597090607310147899230095808301053695464900781836139145829841684481874531340565977251301989585881434658361940821190673578489240983592118801117637471466681121290635142574072324988978625050121731251177302307993554145705011029269315751549387421378355474183390954421890584199395387554572454419579943394555074237034663540393540446905602630990321490983670378333338613629015363480305192268451028711018278414329594088242339298611958051132505604724257588973730903632229166744898204582169625543756872944178815791527602576157337410252370970881746954805532736896114372036201398761897792470022118589693498243598661783787343584607556266367229083423762077645192929301307600178702992978250150610974385887022242579502852335988590922275536627664081425589689705241616337482218987165211780964179806726183041576082100685580451932025716486204866629552068245249183302656337006385773112324420020139962388291370565757729407941754589143941050624256593852697376067286249954316230634636380886472735599146845490914768443877428013742319293384866143840077865528151899836552828685505531524866997351007365511156972589899110782903724398692267934779591931054324056086838651741515048893295974098562617944615320017358143936760862822589068051986876296209791767867621762557926300897752275372390654131823885807017451483895161071877825174559694719880214944362752150270247265125048374135622596846263598830421171482795032192656958065552564271010192349774806767092706633088728342646112650305389760586845623639473870745662086956890195240992883269100924826917143641726520860442022475320111547848641205084009611983075533878622375621390270722671660627411930709592322881005680185685455695864083579795396971877128575304851845744562532432999273180648323998214020762526925987033216687093767886612288394340234987187550615303026974498291842765501957445967828717082808259851246992814855664776299845763710732893795335396122610636168339492925474677332964498922116168883936840378515106506389879208379580310206714453634979831679963500611064277984707655130967932582731718591749732918880248069108808345094678185740758782806417332308486726113689993991559577306502301496069139064106979455772935458812372827364722240216872659629854312932659571473436447495369129953477943204691725716572128401544557424933055391489514579419185075510527683413092080719121857678189144816750894689058838408231237398121185252895180329686518466390922708496467416268428146469507939658611622442243907874021516650864602664689590947147668805951514669401150233154693555750930103403473624508837036189005820529304914379959685476507641277832668913280234979579193796475931670464253451591618182297611468160237699257299671398586964477811168567306581770501582077795954633218968409566395283070923138208885463745804065260160184903003325090128144039655142604226821487130332403883863131028160538308760565519039856969198729415376856282210726058369818413184262719533704455782551077024893350938723569358609675312616428319108697611243783959584938999654609888999280022254464038798745263159578430904644354983464025365283233662557459039656707020866131958775855494291787316311178749752437808336818072014404576401648365856419417712360462982350392511633085074968259259415388055198183868205675655151845632010530678746849023223021109641139479838721229965430061451419741527611477673803577339581576700309518442945416739773994750866651735537141827101024005471484496274529110099404577471593510139118621295494908948005965966800312582379285207097453396434657474450063846272101310151232885213436747562581802700701458879377455581154471315721634095858527840585669183352679370852851229162177821668556247371121237650200116818515507804225969033709734199464319588910844674995770791816083685664291929376206631764206680750591470525102451833429811206719226464917677742071277012604191821712130635387345734631831038794644275201972620241129106503474217588080055005996153122917660752775729143802086333865056535640564840389636298752438823256361396226024123694516675192095532422969771769661425638295437765533308230360681302415920177049528174247286171666104980643576070461191746475328858334375573930845323632341905077671973682498299702078705477348733417963246611282884484588753367947592205548987700999578842223838951329358679037170458958272028376602089712128528157547686716526759229456628390731364813742851129296544767250601656579952105049152554487233136549540803724956438899496276797275653728095586692665026167010081688025551406217522577674854815553071626076454909297234021360787784760885248835474954147284063391160942769649706879112602884097999429598640729775017777265242101220743209570494345483676041511429922092850493179583672973100255249227843807648295642729272549775123256549619297557479685026254163706042767571791006523483799448694887856012081775645087493571702921800731906154236013121596203176381628737737179225153975237342641825137719711675586645501712511275212240453523520768047849387261838339879296103178678551261051909266368436921530807152613476353117711531932993852285441884850792503583640989163304665025417494926019499399439466536825126710063947256633821627830611458379987809075409696034278278958994265559058176900248904208841452189985824632565466493959812509231764201449237486925731021869148933565329742100566797170130915098022348196027908151555470286977691790874032343716133633987080662359328450096789937084427175807173579238679922704111018973472791197804066928468232115058886827674743575456693990032571612746577715222165490604694230440214506930789370925091049942321760827545854624805094406944223336911041467261220877508057472577515996240182798686518484009665093073227734388128608661543634973583539942498957367204554716411817205791717246221013206790050636730733993269177196941682693136322508497603513234656416331480518688253711628867874678996813255772580618469919352863229236531171437370172163486631988396180730624961728144441424441250251899366910320128387830346369268094771614666212496164373331420106355799558475914738003282978694210139689657637840072409739132156672504273612004139134941438351064099440662072222213458722262732879164115142752714977762344131083365837446847497252552302504266283177157060925514640781670672730155292202440446294023607231305595128397877205974660558373965142870776022221936869865153455120139565825993340851481141619536364486828624355927653091008650677727597107444826798271822642100425074442479166408580588846642421350607843380446484295672373343938892859392085351628110043255194333788306714758718311172463660079607431233252539500991133710883499984112602224015289639641295183885462871544519100090216182980160486518714872329215712745297342473040518204392233450902535069775646745601896841227298909493456833047236289420217805164120513780499104129211976698053357523514618775530846576291720278415353913673857684601802391747402243958931354144957751667558141683618802094594989251227353058228932457816533333338212374746071015010520990615064292502896662942028096680213794635858820687425657437872111974341322848076736479320118662339056535853490967329813726298458379130409176955018019024860762636007892354851636090067679883347860474562592347380211972805763603881778764110982909510801315783047577885148464180601135777761891367521547145888959760181989589038293529688557101268913034507461611701119211302147766928790634901128061911376080580903036979432539632729075476494279028423188715366022749135688550371507410613629423955270366774614398310472934298389666986473216922441924363118312554834139675604393098276435963897904194004146838358831765574665788431844924689161417570809498548444115942404822917977606070800574907212851090262862149798752152098021858105272704638790327915291830886650800751287910314348959887343705811673423668694751752253240049904247367248724153629435147670365316082422044012639189712265402664679955868133656413440041128702219217022712078767397828460895727526560677161201398667203726513351845225298946878738352702866077414720964880632304179741325559717210410215765303899583689688124326903242050654268695940946751868424776781027234484494720386082059363693711896874509920361666307875733083573836166019599203147647135655259948703663961600785893059978563018534498369497250128560990515900822540390260954892763835863112102102010108841932177912022010525236738311627736068541297205938799315079070133000319002034788623217669449544524188636557414488660886013548274786425774465450558987611161848716037176172453600767312325089476997087486249926070289808588676585898031180756011538195330722559756717469078602546221106998442555108874863561185805149092425726965989496642054320925238767466054403153051433454841475587106648601461442044464865300302597333801675067446247611512532220782451428262461214361180458139951088369811990919518588030053089461113743675342569354764132401199044860954944667963778629693149546824317461315616756450712685339650075191945313450460089719034498960154599573921050552138774659211287956634401760071656303284386346570808166612031116475196914810042090215240203720688572972244356658665339203210012419868570597412641558112001028924569092438768610479251304371317731491878033819408372504100190526642276473612227555265041992668204452053030886156644951002052952408315249003877708187229762395371022626293312146331419383648106588780834069651789441492675872058060013368940893296393572064777105601708079228018728087197181029194069926992795579477440851088698617010895253905177585161433893606692598438385657496819304723958335169326653817594849946003899632012205117549106246679640202981965278565684556237468466321641550812850120808925984167703171694941690103078510496594275890904052982836694333284234329688966125951728801845659692465039035405288952472261956534456634491486029459889222473593690369951974967171728159774125740033905215583237281014767696741134572892252745842592759303260799456894474201087456093653713917558111769282987998710048854700120775113861404223219781208080769346663552960650743226996904681315911076194781553992660413468230973784714798412048612088210867791283840742555868053794014311968079235459901772802734956656309434165466922149288087270338601546352286050903837877517897103516780787107209260306396189543124659610806708772243482316046791610495583907591328005350452202455890114778257697247214963450466960665838632813375711379328197916709320711998915088081728162702609828028180176375480602889748617501194575840918648181803482117472181551687698386798739903782951062806201640320574524609010622337297802856200089176375368922721108674381124061866745089417000367215927969396958274317537855171235209844538665027556485772178481650588922399061548883033797842950162169333283234607401889096800179445178153684067971434091522990375652109367942888638621502212413274336791128668912025071686062993338337016958906110581836954536057587188712939383947103521531560738071419995844255767081874349865903345989180609496508793847324971207656347207878991894398264095079804042776267295155184062620068508400247218339730631921092559290577464883734032580696833266129970571465488955922009793173896378044340461701231411897316596635810572936109969170177461205460162171603727494553585091075858023631219569607684316841090586124243278381417332168959761743680562249760930543148598873267767275127805637166821817713549527008373531416993266297367287310937441732794343034355140127899325793438481497948868466602161768224899780277989569068900681371020335169962463689402096250219802490102377296382825287646669748490302984296618037355490301229696027504227232604049919700303492498671006087259551896825388452287200780605002205920138347529568210379283627921064768805910682260013772573241421274618822988175839815371819238396420774953764190091537734886691063691408913094721732518632950298123216977661971978891382984716326031847403690793477182476743072272631655649851686836762252166480777598615640327140055854482908681703973842435059437646117124347510914875521178241142160913220651513083873486314534384198125823894688474318097186880901122455815449515641737752215175638194591922389360145862677022136110425871314471980833564460927087640975704101159423003786228584252742304021693280802285129237774960125842045254180578457146355071918967681789717147927521650884468997617427197316606874050419786033600707567583891114656625479178105117948876993319803130722207509591493878361058576492048371634907594642426679044080911239273423377324235941942286051141475725226991520903168177934363182258103626938534074295030411037393373168002974606286408040509954936413466019968896219041231355750253539155565027033106135833333531358215650024980420991794004512040302674432819284913851939398832293805434596980763043664396255706996112400177391486417364200367892205043586209252789199917497633760443882695461476613198525368238413376196452200149050305177254180224870984130113224042624087520265120999466132465204180947625799298473947348839570241881170072159848866562198478367243770742514397591663366108602682516509524344026677776734692408773802699753927732008898130849623657958165448568028384435879867631940653139823535261119996593487018836525461499912050377016201058148480313024864603356954448890458546413293209653330198333573934519213622366595349176370778510910801490984032756993081304286347296097395695407298130015945148824750290289090081121231625770273372401490043641981731508552458940132167488322388325393078318215983557026462816755303929368414096691167780872813803933184506359959310149831329644651308753571751437207415503061687870727520897196677833696361421624608527701164423897549807808737689531151355173049385975575813025410561043130788690057976806407142029147754523879654716534654735839000385307748730102003311806036572999303977921052158401763322002005398156223374771364247804483800670671263804344238986208051636634318041779559206283843269515790082374289071474649815306868872667435632813589882802585031718195548658820573229432255336178556461514346459309934129071128206068213153440625358920301613815250212630961428270346477343025178309810276982080488697089279352308415492073074963217881843937469606200633067233625563507425694169430073362328682236399888075285016335354266927567082088933302660142559287769765880350502860120932664955894920519886511076883298702173470099148477885621916347671949579552837078803962757983058449181902630115921581250488684771884083629681634458153593067334781963910842468179669106326527826155257639838631253309065127097354455588823207498330601739486797191978027862857686964007222135711801030157856070184211978337314339423486400004366314700829141247953441386730750476188066169775232186283887734761942336870044795498440157922944854278865356447236605963165130919415148802027316238317083488431562793194208491229310316667578762661492126416827453918210711687272078206675540565398270355522944579652103487229128656787637785426742873018626116776223222819526663018704679715580475759565922467236022375154074273417179918964742555817577124092191901335927817021371067217611503760552837297989561073804262365596235715241451816818258409394637848432144583326799301538222358013678307745021650884209767531939471370087283994660393717693055487310545463179409871218594984789425752741927408068423111510691574769703288853174887565791377636778021360308894314003721818809381987020564842559647592461823532090125582816620888300403004285486079239364214492500989111190724922254803693025043732269807678502569924061349301311981915318231716388386182490512714703714178609605210240973864668588441302525952192503325451007265214706959880360482625866168334457024358294548847480026292775495064406350917296522999078719104885142814082846009226779507862765346065936740242147444614129923787803459086388039590957768937399271439606165378567326559938784296101281726172647187315502768290792257670719799094405716285917828893381750886271007766978008441174627752542274530185224627613340098579592256870485251699894573478571613164893370565989513214631445555075914274487266279783345243427491541623969827141566672011770119372144067348165743346440947051566069418570942335016392006180061939598101136831325127070025860321300945890747746128965983599317512939422194220527803078925543825183172944467800421179043099727948509990153341493736207709015592019261657855013025474635293167302277246422332412677234673635231146232599209817576294688797506467516120467287165783898608792741429173277500418473615787196682949306184943638590151417174661965723514544299392131506528591776129245598034365863790115953443783715890443508411300986696252134862525974901343699171159752299620529750675614057356946172821921464372823576674730895213214821718877832208793666482969679845846134401928035645833934807471979157060791470754012763173333859018483211681331388021449719992183728207682269340501700648596328090487831591521587606279696018169121548242936475806035819057673324310138140515837470438320762954673888448724686798242814536321302410950053062908502203062975508739504543554367236843536380685071924292023700615172815881480056508287457169747472332810417437909129092244523114590894548051563478047597422717998244223107615961921412520107621250625292641957018468511590530834801600993237704981035241328597945942794068555540321226263791437107421519786656501701012612868215499003653115030259506136447802481095232477149480044711649948954442182812973650301972495372202884472912854452982264192158699308249267069179136534241676483422325046406187316012785948932078613471918670569684649623821269819226255470665906171464623296808109372916039885423435797993189191049772754111340940999566119167036251931023012903328522732284786213035643841136683035289240738068229029920245768644976085522664308177592168829965535367024236981197603365741440274179947498235410746060339746602957938343298342152198196736376150068594821834266761924864436467138724866820068424337278277378835482632694258278441311894942379312461665484856134486216064728899840046781177184302193729462435744070071868577047991381853506127471192157268181961247565589814872095770772649181682391254660619303014281342884470546185274192882039073634567678088263139436225258544861731839866963068234152251029255659951082596081585960077640825421986685142534777975504978995594984008891436845989520272820356043837765855093077589941306870925056076167617368051482510788595832596467007631687122880801412970317745540701535327282574473120275488824519445960863705661238194914900446445922838594429889341585023337382094966888958475573804589029926455484796050975313809799050892214833512981490236151166679275925617928508977385597907343574303434568783719874441454145378913251021185880019932447808795762189280272051364682737242663403568794484144557915652937114548822699276864847368836300359941317050345824486382914582431516978828308986274902742844411721033899631033374136690373120260078455414193382213979110009594536820911972066176251943879696806923335461939452612013228442717617629173615710867813852086647354694038993702974358113014396219759647143484949327503161005124725384537242826490271838120944095562112191011088168208739167571674395344710606817298036161677308650638616100402699513491812201539549956391188598888998763738733296915401483277559891979224494428309019383427603001129680664755044768519733759845302551666885915238572990922516112797018940540059069188557489906964982726061310598089375304416812456937309670340058840736044787082353028719546912209869174053333962483997714017508342824510100641835449174131895047907683250098533950246715314685525446140607435814371420725444377560918735608638658250452370290312519632712600730151097828170982172287790133424223643777689885755319790170639228716585308735969562329105319948742498616035733498268128773771110158059458678490320820364894474112181733402302692634063309732649204651053838599555618556018972573089407989754072243538763338211637543769445477035069840612744426670959695367728161253368031598366491597608161015157621435349239870798896741938196504562537845828086891612926289365973273285219034940854080825615008019431840479089868482689750832707313681885449570796862263690729817318771227873926914269734241443077170447890023189350031244282350445484099399442144594863938777941120255169529903233909667285684904306172550049956327071373925110262312033814545609657314688076171429939508663391072712963681781603975340652976472770901962953070680506521277456141152475272966658326967755043490637284279908392356731604317993015821262007261564495510363936876574512836243330188560902434535494806764508578934296492730708000458559232667130012134595375100952414414867616049881077584229767458329046913444299494054189167640187156504843347793010118223600927039499551714918397692136379522212493432315916335512377036367163835051912316002379997698970519620767194163077685964538698026043795619910736653449923656837117351327541780503433562918994420703642741609158827956592795959827990682744740764589173342775953948819347806232796648202290952657188516450702509206656799130948278360122239606679232058859847615588270866906110515014113228774564389246517753972901402030768973441280023968077643928737368751339138124151157377884177220494237530474867024900944328585797181213266707882295428552074981468994572399526061462303938467080107276291346880676704705865075684461752003076047720425708551319500245930660142311436289983335683873809808410090088352857516156812935847359512022826053795677824956680083174930335267720081341521730608122851386787856911887617376212474181531972214996259243256562036368761791185319994643991059095285733386036128031778395953615465793245516977127135969623991973064160133773784660137540376582112779012043940979014202346951527049318129746709555622657357456461571976219471550296696515477740964813589156676816669970505141854107101484237766113100113098275216655330244337330508446434216584151466337483047484917444584840565150743053158775532876098362148354040758378762350177344685673122718425442443540723814872853347339613124178070898014272364177798439648310575842697307907301566629458878500822663184386632218617433826740962717751487342904303267838392909908170164618352259113904064567613284753952706501352522422137087910132315812478655408814148242458031591748779187080089216139041346372922048199574496100811981647872879720230481923516102134210150156048469847477907689209909864875800085670503140817648782816649531649353304398460705266778408030716689880722440121997060561642709463778992015913061410863584978871420996980282518533410651611980940556525140823926997696293749393238203488390959693245951584046708554735040851484821231681850234410191682852074057923725773835873253438409146833084646692216777016118422418429313352522807983965767082715431346251537736068978630764477312061007854830541455960110600038173448692837418833752152246943140140456920688500492480168556699551419171134701582569549960445540991521539553738601807356654968684577587056017431477037306689485917933280318797281126552695807665153880420699321748472793111825369301871504313529668077842563891963652752114784844813780782822775194989400806513990427491524789623414894824588902443906092816956758108563677254609889220386874971064311502934080134169324991822620064238167822178599520254998564479678009470562279372120244891630016443818856584957156985790505799494482562823639459607084630824871126576629164348713968773545513915316101451515547175906176582099668533787983248987876853090874963388396194965807283453783615387896053243848902720312122866650063012888965230420527269866052081409419871237403652827990086150994697287412026550821764965688704725717150929358705399761530841278860125332824221744245382879017039772756127789880466538115226089578356021209696952227339212892988387731900219675948073669105565622403282155350344173967836047287737823380136521215149134987211737674323777327441176702906262137163011353827365687889390845643114150848463029826411627534768560788880635104628917051698555356606322774559710159466232183031181847430361056610686683868189494518791305101489351798864743727969256918437164811179263353631014964151650160921410553486312758565914245577487447530491420293914369454775553029108330338094414180524172868015508468268533424294850152035775263516792463467208142264875835802909359485894534542719145578995057617250238836783397362899867265662271178050848181239489539785664893889752520483261879358829858431984288658706259858045357143387847551897808882294788342678462744822185625213952899679824775112853233222766791178084565670680057213368037170941118385856139751851164480475906855214736189971783081637090724773382864297992169706353910353930156221234012201332620610758909336677857070117943385023571848171922954160942932808789342234142259106442567981973451606731847549772223497034975012499071622816936008704359237115001142113328347867553866434254308830602612455599139937827126612136871342978212614691874541094399284364005350384058729301726565379228968079324393803871057564605250833164446262579714021227504860292102752629228076001610921326968782249119593473886833384219708039597595653101915837248630873771102468974356013945408358484792810010091661227385164947594222303698742634796954947555794191847916458903585505151679660451862322691631145831173932791959293523116187805456494232271726533989954476313304667512757314388671273597620633107759122507310046024330096930621421848255177982256762646322562812549702541834811622277679625136992829153220975600126952527807315046282551507607581551902735614049036436997715503149036320444434707705612832389090154167265459571930070929965131326080830109212246775792095524715806480510810467862144129902850879495726741644925101458967384976841598125560099560620764313567679874648346211720290914653888079354857782899111121625543597647557692435894782762066623951757094920518559654614892644188885026417062189840341062490067541026895293522338941552231129443346175154764685834548677192729638395581484303549287565113697881457002591713658878749489404876391512652360129398684894218387403875232292422417994563650521954413751393856612329412490330917121645251226829616491164166740721834225104024846726536203810288535697958036394723166818348903496870790831981177333913238211761480651248881170996933616337352551573023673668002236307263333121115017076109638916773596227752752701304807878804045859583966068471292560510394317982810510028535326127313498476627759120381457235746613840591314695237805979893841060014061887515194552465942151941727197674677921728920208165151993677413333974067019612696103027952395830692779790087942380952752125410718046747066602978388815129728036636281079549223496658588820358105043135181912418962749545375597237824505450159074379562185511853225009273539630666107596073375052686516086310524333192451219237061534979580759788981313266864870212139995651890517696181555704604032436944540850924896469480388869243614022347612996502503276521079294410997412008271385433764992724026762920510530045206626040393479642778598485217081443471094938057428435686077724122426164048254226713716468318037923646266760392670776480786639117648156051044545409997081224375635966396668380691133987086343693302158650363186094844075240609638415143620298998692999753627106589493679562818948643329214059085925134272365730932743929662054396924891193254208720866462587489702238763100462865227146868386502167761447674362023278908318838339648165133929903805506297539735468138097099931730889437160352851730630938603701495174913658492263976953210279419005458162843883432263925194739973094690710537767241209277744069114058184429577954399041995665760894150671730367650963616996157009817492706444853875667669580767738342298318709675651298333933365682300644317464258745698475043006492188256647939006644542393990220380916612545685139331603294374306610246003289809252133184598665146175263078557830102996401083870137081579846452698086679438801735920000239867307125140513990175536390519475082278676769399010416852428151245129432954585754259868790582563872864970638424034768712892949729991934623198595798789810340678722441944208316321991697407228002485102788150653920354626531064185410227097087812178632927203522749714900544908736667442502008245055831814982102615420975000342870554178224880883876608580251727548977766057496939470450797753042217220609299295306391475886089492409127750730860298029733664294042847239260127807239761791714062477343238537824255217955289200182626298417976161783491381654363463642211829807493131963638394335510461542989664480796962755412105617273771764406390633139349346550690334165529876806503847087746002721753326839256678331593456911210072599211440329669327273421819623995680287922859131601237626486610693098030811535244393505561666316662980053136604949194917557548554293528745205551219972391370979307342870671127680097626028005875292293903758254771389498687084656476206175578149194809009692182120004691282418823847827553714854921980559929404710214831004087735974519814187355698241877007543626104233920827323613082267642507290374459222141187539861801203836466365622321810242611767323716911145478355697386300013240813679433275457711927212392468734552447350865973547192809207442630512187169563892660523222306453450749995595634771451542287332850987468758787591884008773368931240716464801412663837429255932788347528722226393909447439519341124424628246261496386813371137860728094107933642904708930379558271688518862629495295469717075480623625852935863435234890448974054340815814287754900043213126532831857226574479541063825717894889757056106472339629686959921412887965193294817859816547724013826902878884564356557999958304089843729237426257929698281904367069294417702983427269270463498395598720504860546101267925789855187457456495280923035159580071258305885752032267187374412372991974796149001507699208385995612093035462466250114579619235979022436737343210535921998439828203507299286607563904403981241981114734966707173283767342791804274134475714466087560176050631507927829180076805652689683364697307715729031421371392327346532119797730058001135543712703153377630508659196391457439941877821059063651586434315468895071496643408781769690631065589411861451978413907026816426819058007446319140627690983630890854169947108145233732917508131380289262885856728044892876125667885274172135213751630414913235370172852201705303380976060688351445533888627053068914210550214819160630490042394374029457798653472005741295364743101559039150826480678745593945437351629293710867316271101067179598573260743282589273001501161686338691539765318074676258493375030942056166670220393015668956771519185740770169042123750596344902312700562327701429860572505170328219867876772683521730781092550429885970687688926883858035892667026587105806380853205393543529598700493365613289625315825321604678341860549019566009563104348599344455322877708650338222200689662727946140609933185324712426404697396898338786407439888439836320129918246276190616000018528820728334063808555765659632115206964203747916184096543040580142174562568347569495401323232869899887510943282894751755676961107388886083475629201627778489657654140446254134564282693842402885576344162777541811863206535806073590536304781392801283713964299097158156750803997706168200653332422872067305648316649393854615423590037536557382277503978393910825098078421913276503700595821268992586474497976346733139564231507228481101844218016179194732685093143817761395613226645409918760424065288399683252542357884572871471597037704007686087451776731233365849933628106700965046235668086300258489953929680552907928520950596716199658748853302968502563072496148176621213776809566135470656628821458415942574337764628061572934003331930599154638196076142747505294456727588213372113031179328970009014275870447273106370803028754215436391702231106946548863542398468393345003147019040765792295610393559526153777253013298424629387389443808327874837157176212500983935964399457227159241740085715957904377713489483920946277638286443383803363923067945031520480684444044757537359290335386439236273022528610359460794946385080707973504759335719507188223830191278718706054379850793844167855647633506216450644725024364704179605345588353342305416023760282655801186259661692971537089434318445488949873183597088460643587438197048906158905809664794829807404767747906264482056226064721631294996191828989123692731541156296174777173855994727095709653056928029332905915413253153156343998746894809665001205801305748782358389542743903295021895410228389570626765781706218042088077177328011335491779531454464744915648303559948551717522386163987803681204943418739869709265251663134694928912306056698125254263806410741478637634661279920973177277777056538229604465838750494047235698281264941207193295874956636683864961395394953901942851836170799437906645117441772621448915402600813340710819239061941797567980636910680127144292243376997770763452251394893743847641696426118037170430154374870432826701388502530284487410811819802225361395659596766910040691594898600520601125403641553333198338894327651790447033000845639243785350658118893760778083950499332713494875806293874405560492783838113009852115631806876235426633499552464287360733279979033711508408993574228577526634292626791261331911621594084367176178059193682480738375431657702058167594788074103329318759389243567554066748061374428791295540173912105865189555423272968899331954282214795132444154394028379093704267740132164855436548311146538240742134255886012243006856350115767463590877624817418137748574113034090722448581541898997130777405524985794394102160881891817573791276432530833204348139493785548088992923211676355105524405999240019780529991198127484095006807946806432127998674641695860575642843239490025205721653581883730280829883643403546382413582551326746215030576866064849412028737686231346787860971896264346558989485335553050640856088208060863240219239122864456129522751492878534251471527116170844481183822889517671089588165014639651330484098042133179108389714786901919669072278313106402347149096796465197598433470847015648531287223941715247683287276869564661937555182150273588268946215292479129774002240131299345645675108360980431737585246873570929108522345945891488376063801617635826512415816537058154812436449963676061573135713718387457556165192392396256223933552002988769202382913202337018569665873701443374494928351977625703230421741543713727529260664832176123784382514524747022989909711168178490133650850863463278932471894734074065005305606340640654452769903669703818969213710122579717619388892679354054190411075756543352642312800799339826706723550422651630354770109282063839035398669851866212691498618172155072489449439627765490524487429948920126101669929147505927181131046995837197886292268221936310705375240345779976888987742912791453050422103796018584074389333072163130642504139125050374861228626780753350322026522302635535145795103177233295983652812735329000281941037066682701276982957710071866561429366807766643618928962456118324626015094980369877541600133623252858475375887042390455804915398718440846374918629867527358873427565171584187322676394832391483988163515701144427758352300186353207928434417460877212417705606335456599623126706968722206030691989076178837107394083000747459191857255077485315635750416030623436680673129903689410272901708562733124998781262677419807912785849667569410364437031627861408294035385614937586395506949356929927642884159164925901684266728810143195468097249851736742993953332915561324149066805363515546237428431512313837148648189046987835374701862101960430487672844488934793936183337674464539493418524391971995536852485390021781095011043294281341882470935959824579894615213933013177836829266092221523208165005592296725156963085216097639373013233639045699403235738487469234778628859434390797418018791183890492277136163876951393134714248308235140204823280354698699949229882796844621917956865614276268546689238425764256253179658352313808372613595800191910975070690020824059582708917272385773851717115438145465255377479743230474466899363060128392709420136944384165076093673286341754254926911643514970896103175312058111377359770757442853924330321567400677703524866941168676848478899849168973683389654560940488587560086765960235964216941885280176768157805370243341784052156961316808399587612282765206733934657205644120643159550796267245954736534982592398600491341803439159873822202838818120252815501201965277012847616366138717532913395125257230818480872838109770987784554121241331359335134079036465148094780715215240350558875726007336037264441320505915722917632899403804153566674444247367907525951728614597603855282277913916815157403852428635918937833022252383308284409831687322535469496302981247053316631957664269880285005172779323008572627501348894834529121354366921457649945625173195922397330828178520374907128148626269697096541740571081987246180300240245919082105519444263929809795586622744292924983153798051216060128378795012698769953437728762035837874802412023612702524483006132484076220586130233022634205078825477979158557953310462910796242746257207926815097708636979364315556293215837245547732621104869812679809576174095549233267687811737747575900407739756067485377683309509909587635200471515800684507056101079685237099365927968598672795195587564804010426420347318611589986014062861494042880375665877696964664208869394510308132852022667163827038461181186778688237694576987984517500982943246605147743601990521682035276115864019979959434724539302537341273262829485165484866003450160982667846762603804333461347287739300176465727989452587994369122225830620050953135188219873864525305617268898755888977582822574731825556759218353437056763244962540345609358774590183341814236127522574800221679420487191062624847150011163155603026420703608909864464224274276168778271961206472487315733166997758463794696736570805631901805042249032052377887839386152127323571486287585544323613887593431971703650755431223681710127113664687885880169814456669540883959494651670961286748688867280356535106458277276244141334648163060995368072458288181034706204976566250265823337956948214138013414870446587732308986762868584565850545352945024203841027078652304474318767167252263638462941226168239141289490344810863476554595102613763286340451962275029800732255350390370965258892896973168249578798504070072856139163516715418474814066457029050284577814845414471028837290697883771365169774883219051595810113196549273350167021145480607796438751167260200667271323756601547320916042804799549003154272182680389172220954489850719292176914060160200234387089085017045653480432948299503334290196096986253104640454237053376985907183201205929866002067508214900439071415511706897736056148833348335492522292580073910098222657572039044803963851858317499601437904373112526752038350094083018564086763509345185834100311937130389191135592189962402059945942127166880771292783677727380193083807836615064009614352183361518932163171421219394424013129981556954275739322768857401158045634441046809115900330517145273703151261077725089101721831801572257121991210166275833450487304299753812670373615085208238995220803775588425162202754336395740446207555110055148820872219054344547058232444643072234360756388738484744713346552403573493983759397911062559726979276651245887705289150194274153005357267327165600986176548802186676526979927356783933640519542926220456262240380546281944752106291883020769185430522724263449483526362639948010562069078216159095850948202187565313641268022277156716456170671668214655653568045224817332399072522842114440752163487664111561725378161904883017899269944315908969426375817332966553812166571064845024522984982632379848257911395078200163967364352715549525706322859328965185961637652086857964295170599846756896869936336710171736253797464988765549820610310798014096421124357499157891184133866657061709468541608919966889496506216371746769923774514624188013515854959541906382699262909035191956031242463621765704571012760543428732516464893198150729174672776892975012433094200851944651872080091029677905675602028108521681304342499151720375300791949204950661025834263694067739665238413323240504618008273514305257928870942679458162272402191865792374185255036497197768396501054832891523659787124546741128214560496363213947951192935049451421117131261798295107547136707223806941210681078547734339215005984649323632602795199513899167333219067969416648729967558057690350087487244879481242858496088114392947724114123373506117901632471167650682047829618026992799227518148906526629278858959189490810543553249229878127024020248413485448713725411390159597361559051735527807110189248850541931868233094149239796711392100988026364285910867637104650209289746815417150950410186002588846141893925239767012877569895315702318012706662004260059341638768167559181043562434260071116131725997365322762294129781485594827604737879777235233916646335901431326477916995869221941706788013954635935729144970036721673098377309313714378318330475632943986592333637727068722730293829615440496794506786809656317046921171938685351526209084268915169534581251178952509239387979470083773233903293336756965478903383926511441094843930099485019080661657101883968487693027250941755847931593841423395786289665342586631663835819815737054879581754154736899319272916599418060541701115599878997953057384964267869017998328191077218953945167237656933529360646349977807111986172573711544306305998012047146915682193759858511015307008455504036631318635769220606623732867926419188387627623227903048418187898215982040511797397198638510162149001252266457317889878639693409307891916506815825784018239171919979776254778782436127711555146816748521212008112872415118892165975571008840156613255397980485386571435640255235260867657357869721357450985080844457225830634974727509359782882473714087498623405948834497057048406767302925517407481994662268863049805826376117984859696375528573523702973578548193441443703480768184075073884786682378186089072286831040404793865475942155781741378612413865604482016718362075417497784189934257284235679608556252278333364336283079309574711907013733500009645369092691224988179574365930746393017238156340690045638814907856275883925391107478790973693607257523752282342227838355554605810996009164391113399310985441334301684545889588801369307109805173156046939403997602425282302483886308873247792091682690710310102184900508665948692233502260563761709088100375837158282375678493178192638122147230110709133195449306498689996507205749580821647655691205201110005317696337552219214545706432368730111944524002131675876280700998748611113933564439620828277941697895095341437661448334456025547625616304074053250332455062915584928361590256550586614782345996032830103072081168428716705952921849780207005432216729650749308922890776273622271142665325907576215434480543750080562289327528913238255994361235131029844964589847863376290281215093525276977002222177358405630295960479428326787530957462356841264659437849473204258766496812991738112086532638889319278372900865081223602997189696971306140810368859259967300448450532544663511443308299910743248213640992728114209012186948430474460100741505313853475603578285785792296414255927922287307541365490636749435717369511338173667761887383993589930862988685458153031237709881691430999428392648357448887105368565647902604637970779285688728931553130918797914232188524465225998805022678450699706546544550082248986914864689708636087331631369687630190439248595811629307904134522621119646431044987252327051466022135010293010298401905831773690953669431190284702870017718373554079067316056357934398968174799564521300263774941157761431517037979532379008686237794004963230440377328654477952618574406136564244512651817660630187147696088343591172758196710706967045604088296187047397283352533682957415290962185156659309282761199288818665521301113473000580046451434461987502210122616250326917489344651455785973972622332225491341130799011670731783521156006562437905859838104011749129108819748930319309714857479375388133061707646911031844319454894928990607207984573502056572072776761285956510488360252312175511233374082123013381742161137988539040129964998799329609036469855907983885055853778713768093415419926030035496510421940158302159543380676187830750962560186437784374173070959121535103362717293914389279068960917431819459385870228620780993509161794902432129854037260348053715997107142883170152256752295290974494916521187607851431616044814875570579017521371377348301794747037130830027828826290800528520596672447430463905939708382159483092903656174722841286206267729780226791774996228687001415644222095513528719718866889124037068941658401202661790127120548151920033361262486858863032820202386521131504391930880465899187899166202043368224393397037297036382591157889644746951253813199709855160275019543013342169007109769465824841538427060280307444594005604269525500515274733820671552613640022356015043096768243413848154462406705329143220288914149278839386821161844707916549756626369726995928903065098536076715551090443845674297799204668564261010912996520952515591355510933968817322939584893682138206776618332723926498798993486311564293696532888862341165691330620540538727054820399148525625426303059518581063126957813589126258323476825617191446426319019191149663578799944143462392603162698391740029930312696340803768565908946921773971715009593453916468320994224168702270217372931132990675366070754634116856068842088033777470806420460442460918508391133433862500473492496698582593296360174117777009825283384708393168925572117923105211151472219636926121963581192590950241207216015356571245752945966503462759758216096239784728795505757860883425270421366691800374623193431947289307979747341755178618010255336050067510069485634340541704349230891267118530932959628793719816122157684556546790072305262487764608594156102914677221491684491160917468005739445596917228164074923198182496110992355331128235713514410166539686923657100048976389376698445126327185521407411039157314519720958370377269827666137690080821618422200343010137321540362216388379423347139541464859214858255176104934802205842484270807107472132056825063540515064448727901199369987149337491437799729736419212343803565690669955740585958752565749403042111372347863048853455615298302486913886380554883787201674712848356032593868635493360400491935381056508269450340947745671576894898085361619666640479047388697663771910402627331455831360662833628179846582891524820119842115309568723990151575390517733951212042044076387260409107458841869787968422496150797824444226518948928520177152775214008417748076400592679258482018876434538495052236960839952847383038218325588574029929129458539884122294015611539044711387874189563748145663543820424116073643819525998514847992338356820861058013636657070894584381882425507865258282597538307537836761523184055553862579656770425078604893499900489541623317662087576920800040079727143679472581296367889388772010454930010377776318197037590520641689414277880732489439631517635283917655305627405327114695889227811578167842914050096933186744932136120508704122532402768031305274318509357147251753728929202369851536267426715366999640849289978604294515258512429217623471280353158543543036395416102640344061707903459876072255204578992108966685003183202930924747438176511483144352707278084430302868359344161883834671038164786385383611389784210083856534952369854159192538145808216313364242117180010855031015103523298518316247826798487309758807499874127686511862631765880475999653021727562859731544610142316162970404266994933897735689074535070608788637446829232223657585485274246074908959939433184687571403462586874693244243743817990970463932396882350230841604345268114768298475553926547748846666065619134190113913198837924010032882958647882888822555011750456685096566883563513368765370043632631285690715572148015479079961393194119076160084489304838139732454018449720221476552168623083855571277193292131736776802311832549218885393996883912526832589449574480782538395824595197159570948921340299159374797427389411777040437171110829633680834150217854438620694555476920446769281551645283506179891040270769919334970607651591201596614031302880319413590525063125827224325010205886911420987794542807777618533392181184337418723215606241672092284885513792924106770973210142918029199651716543783802119917607812642054371581936530637080039670157808373147058613762708082586575233147120994326658115978047078601974655295622984513335761310498257922228987433626885986454518759694316506775378370657942859880954793833522429393524985275972946433640628214325343682909771126417735009046859544790101091877169163832179518383606347533934881420640656893234572874123863870733202504887013628397130808327467326825218466343444760263561533956241271453380620085347902961677991780669269930172576641622527375710285611676675893238922453420493843942938439227065680151753796988325623005620885064899536092552363246664115742682939447975923386166538486993885788056198472604448007593216984796867210667891075580459739701525215236794204730716129022566609335362495892792564853381969940616119492499162352642029823076446870944484302646964658098697611177028787357438459445932776132450034361249065594123991468934478532735332790181793009345631927833087727199794400618286740966847889960094916748147496201970990111098878658333419516031030005035383771047122309971112834017087449442687944289727478079627572474302043553791169261821917064452297344584812126268218861160798813067818168814950360654480818447248796519544123497327463898344682093517175615472546317626425556594508062158621029567896558517622940202158177873395688447933312272331611967641599544492376539200389613680461936795115504018793573285688722559864962877033586501684283331273322827577586324609276328452965593399672144437659185232205190199349558227653161961996499339802568312672982086454846224763595377778616349214017151298915311891465697109075604616920505325822414980793209893492013866385069293067494396008913297785041619507547864057906907552795883109406975518507031944612918946216710225340639916669630000577446379510218852757161058819134977443500277224830427206861525907297838078409994124670846204339996109725180751138373752732174133587094262294992816946814228819196526559727759304754093773800227591878587286623869677220295189474567591227637997806351424330598898045920146017599665124689384203546668257607096761633048501386320288177457020986536935446104292908192228442699241552997807164530147212564562600826572628340899933335089588648883874741609492360926520013441291252342781732090285091812055338829519556073064189545853848818561254879244270655134413208763149086420855728135092218589867197268714223153571007459937900340338564608490425203064086032935964077495891847427287801953363002479922513858874591469008369730216926002497225318054659825142994292034809510141964883552496009073201252287154473344617005914378673061744109808336785272870356512199753982087299003404507340742245934586665961842553647407190609042540129719148898210866543752500244060500648186031638400588593610005128565598011885991278725252146219450614931718762199111646882090565473487021191673395003511208154854810841702720941648303818778176020962664029643985995172566716664466409353208457119861630870931237140554046940117369077256941031749675223216095533877345778715289232676086326358626130768247659826091374977378028949555050663196449868678721151966674210033471841231180013367609388939661867172595943157258112061278037112813170763291354214183151539053676328989144802404537220206625560226858010726546493745650771023398998738262660645460554732458346289496236588804035804215919785050936066241842729149567579434362577644513097684012063091668268565620182470539080109117085831492547716671163572502387065482818167195191954063054192429644988722575744487081544633405309934889745525778741370917021553338975087435938567770873402738104964402509542346406995111645130498929998410034805648006298680055343430175447682574126822202916968409724039096325888256257360716899086671912328513778761273113019835190633004167054702700700672036990039457213941594070855714771436769432654889429343230479641211186102956452254168778261492324670420001998798462916442357427705632981282036480021225179669554090613932738376573616196443138384210701099957351295274528983546993787940908643509813844498546671798788760310310749232077392913810097456889108422300197163117744992569021502243706880760828249087421319968798670216532153018889705348161178061770887441951971554477252492087381051370855521338988738428284208685058469440371346614975727875054038395716434049770439699727849010663492343025677429676948382766606228074544290126528205080391262459869272492094438428507438711009808660528057548626581100102546210119562654969828765420972428405225975498082419566403189462248407730204278608523026229593289311977204862831604303569418181595008619456840092070146184170936267898824506498954002451187946189685458590921790691858085697699610862531374821931652763951936877658215157627252716806946567498014351015890026137652019230188379913656894676525590609054892110374443755012527628867825848382741476544897663628235972532968355293128797758153055148837018935981533793039645721006970163495410425388925278883362847838760062559007118526359747366323011181900636700620777770779439876834711556799107081860917491973286034933442802458982278335366723252230289578597684556530309461463892218889460052440570477212922123606697952201750605065064459553452009334560156492821174542724962934498278977605594517126311354435466220734096753007431898390164054391590544797195371349442176547100385111042956791095157023244017410838457233658843738872972589404281804719239755019383238894576733478801584798935446759778844359031763287381947113869330681222729063104330626274271932234811719501338058088420300303973038024314574702736212466023543813777413677403163742954202653290341067347252577616567655772095139053395366944695287980023016496145995362745890907244127876781765554403875724748150806862854934521658453001828984491764518281561799719140887134983806514545373948623205318527794810265324883226342368446380416067339336026788989536326087515428085516249348001231240113046236527579132485309664201454998410571456332609203214668969382828972450173797837047204723816044895160327870406851695690026853156109144678757652816370102884932602028427132861231382371468219708608907687705632745052465416971965183617324494990611095561106858832909830179165782564351249261619659471904023401129587628462527408380283800835961332581473784483046952341035469595584243302895528781687444425166105608707497147195839753333463738024792224665466292175570631481245795678457054484557982971765478258748498838480358776415860061993045240904226117607370100832503526542622033965682413269127330603303957695651725320539712778527921376244465323869793844117863436590122437936117903037762875855443147379957741924274087289080559243062633757303681315595698013900436013969543242865307862918145330058900664193076094723693344956641495893043850093977750581267844780729126402927949248211054594363530512854898327476210365010130759987703998669572614461299796830984320879054914617991157816523607006584275116344389319675007226979332880887514161733142218398807619842391204374161156544196215532649184793467877874770794334734906775120691152681540696140946754183222617160801545786324497172689104563470182885089136714501049062025780212116620460592550199607205943206087794115381139047508197816336810504955705494382425352389015377581863857591239705389655330868088574644069771159829410723697301939956982011041373958260822945731219445436334091872933423182224684326821267173162012592960342877530438031160820282272680549844010915490718432435407320490077300601606338316041460063685342198083702697208439544659650580175617759727408260154622520316091180692335938427223643819483185183002167460469845022652396063616079719939450600722066757149339822859012063852480839480274915786477656279152603082294006434210615398698261158334724985804262127718010553051411314515929673505128416962380478256588770070783546570024027875706511701850782807834411000636533204805238929167665267648185372832864687876324061056313440336178661819883870402379070897028863191944332205751545015515175525775250895646901677890970679623240542446925742874948196310566442485635651415475080263567671203062865121691668559468664716140095176378925514617910986481174656193738869916582011120384241083560263001088192434131852896849263647156542995476045288534818753622272562869074660388491411939839702028390575958556637258376517248895469818060905185786938428264932107702417936792677016336535976016415967153839494539708344967714231058698043278580782770209768707455758400110357042812232997917975537762610347612573285075227186688668179079412065185816900735794226995453315190057833363423130360745337563223868735453236347926094721704205882497401983753012255683626399896298173655059341627886325018971619016904665096035396377849269583666569049485926275262107852599056519407736673920193917389139015223158270435151965914810084657803130285721446649725577787973337777169206163764849032080488368851789782447055969658057997682822055136007705448419981320834057202413440271852885537292159458191764566607526086694168117649735616951987856367373887170823571838904254385638399473366586986206542065276002237392719114600163132481867977754834434538075975616181462873234753077277675767812289151984367576286079231139823446508019488365099044907646100573605117656050100449317221074381524441849701821149015701593423236242554637201879299485622119088761100905049801463503439274806390814932185468399505078209225781479814588811234904847386986498585544354800035322306331273240583484035636402290019816026708923086279826847089873344025682672943008928232872217896699114282232304945001059317332082799619336751589995772215089302154852455205435739967290536576567523231975240356681484743466895304757796274643935884598480433348431357807794396974454636813641821984240028742579815666740816809614095697018319600528875031614223206770934685657949974415194358095236444740526063028787140503328297823495614195547484785341786657275747553669172261031890368557396127181015799769952962816252512234715111291032146046901257091082283179805429335859112256892052193462667867116580702507846890609361183679895204894838518298459774827180065434223981931437576059160504053818438794683945056955671120818872487923920854503460309126784697831667863298617841037869414959494069143086070221323028448449872058398500477106725170870589115369007535017464479214996808640484328253671536442586601210242730681354919697874581348920298548159698099434260067843195371240607964531780770975393285245547731753627572566085539149246374975555609229959582235356322495341215392894952925518352262176062424772631692783937537566512677498288941449772163578777183963237602866401289892375994975437867800227760969230191226962055571425376100234124957910403862956714958427990933832927884943451677788221572042789571286855776612249169597539040347981515288813748574984551962440483684258644918915138785045475633720360126091890538640307945209227102451529100325112991383452920129249590194264732614742423934812078295643905553785532370713965509275247550972252643241275598464460028502708929290335883257153016042930320511407975361313820155860953929766784855238618476803970055576774057344449724861272506773750041855239669805164433888822772306913043305627698788442661531383648640622995655503128403277935424562549615808897548221913604377980431753163676207261134111114204477677250250845499403031338141426163366843532174957026918048937888940026696084494361554630518705159913977184720200513292256313592343967682235678801710439421088334715256706098774636314241184136001729580102426729860104675692583002761635171816730774182947640121081549022417449850546295846563812865881549474980503731620375357813844008960523870886455474391347907433903028246173862093369974038813548733052874069645308174491660189924709762217357030609791402131016188634968002084434439675134210986834964848370613398477317017398129615047159706822152505559828158955210222930068633992232085207857832258479183746322048312948824481872753394636941163792312713353012203719193438443830184784827190148343776571702839235116917286974641240680202561306293693570164663254835302004521989833020115721381671544835913872337872417968933497307834068095807264335666265623211346895192248659472049234487494894600616394267936010403798910371061468521385427047982354483201137237147023663990331732626842152575334179481597912896295034849805832525472606257181478894040256333426193094966131967840649240561888762671962677359010512245088347830518427144518587655708688928776547709075570947127960506873740041359619288745508832829600358698049734208624468281721525044165785758372295687213817623915161676893806347608291345870140299513456515806704207140913027984594987920879363871579651896654763206673454086529057893561687283589745625336197113119497798059395840813306710903866472635119452426401833881938134622533036744464891674959493306600702175066982945302458831941669432649717456753292490935864505482768362939976161867341101829976565286170965035624722490824707043764356208031125161981569391839261777131198508128243010876143263887993914692829499846056211538014440529481183379534204452966283127121755263756914878834282678667938092739808613425554773692881876629025863255743934952307488807261075624202190435632845220161233961855483683196739597132837971661965531685277046373922872154741608226940741180374393582998945511593644858855013018287660407719891032012186398707213968700272161336836069778075487841246518467747442575318772350942821304462219250205821072840465465999402538600822082432889422886307876435733652711070805958121558933079399440448044993360991809196840102087016443532903845051721784397153050093975213931320544893163670486474476444182163073388870195618291937485379333955234449914012128707212313564830010704840776429299999216274522369559886544199714765577808401889171939125117358348895046962076209637118867505620802060478583086423717567189152519299686298643891240434721398889551343491996909290390023005368381583801178398021812891470031280509159337121268431722117499934153229245085247293026708132632101235743490678754116260047385910499916036814481209849397344879844178898815194742718769574289990889335757458964599185993101914219556529710159043363365733221503890777966952725579672619744083518218423960484186971393943652846847645779627765098621169215519033081246298359026114168595677297212343120044066075241267432797087628994843931437942833156318054968494871227807505624677301387808925049740123844308729500874722661356808474498103543625814818143317625554568830433462629875220722267613640232241035493581418949427168580083755009516881739615084512426841280950034833234336042688245650094271074910706442270784624443528510246466314331938295406692201507070426774058519622273097850911456065828386116997830424253599237588327549006014404798602006732721112962799535890600571898450123289481469375240934534251832632579734260913861096575394160178779919425935722176791911630172370933546177186498928068162416881481413783383046021575642085708393607083770028008898388131193380921695481120255133137642101276851300208765862271750579586977420821727637410241535481527180355796236162970547539658316586599250598100489137698671048575676425060712236893298287290846252408861584436302815405179029426998716526604862661760982870917246120292631421332081711840547434458809727978545371288074717212224333743717871468104180982404325878603619280175351438909752453105030155436811087899596037798571647433798493819577565890785468031594396145137104569120265961808930692208424591196558745956316790018164820472063187663984720150740105397925441661315993158178753142794852846869495370482249247246142005121027141033361185552688466624065994260392256314693098309580720103283472501293555790374557572152107782255348787262176173624244708299315023823739296697980741245028575945594191894576002054034819382610041123077393051876499040081150771229062256674584234435034106335669026953203289984060710347680949294096040517569721877224821971318485894699678750543978301839876176129731670715377752026725846820051509251906461368100457307479199213109478146449137126309895356867875457896284101815733503729223251971105346901998610493929990354661033116251789610664909480880342937874292202934064788524330370377524004325239839519218283323794498710573949245881279234735475689674505570726083631321302626594680502174614752818392157839175266385250746964150007339232669417408889735721856530140321973199690393336689147196744676148955558778671355598117877543995179678167077299233622691459495558567512386645110468472319687454545856256605370007890534525692281234785134575604222625513712405376214933289366832629865597234859848508534312587673979279152648865411447149586043867488825852851999627903726828406084403686664231268757476421894878787257800273203299635396256092605610300712764768509001376070487093202358025954489109355915793121100344027168303048955275552742744494964902625429880974964468189419216389955762600743129781877651408429740290543195376887955777781884357314374610925455092635177567580411070586664693112749052232656803198217063865673205048895796267192628089572466761861265215367017708274805105680810106828582298729864549528552706693424384807751647357982597444481634453437806663029702584546862275405331145356119384925366858816565522876676938378636357857951381627969182148539059463851466371711418756269460224433241923722537102095493285597465735550412731175929539040698833405923638410053192385259841452828447295321757589800925428507226391714635002329277555132579860522361007173198754472744191507757012428802491615019212729034532361791916678525822695630619571155422383340744197156093839716881183200346891179191055083342589501099303940918717610134545619588178181806688865274495123871564716740241446909886668426519395677852356016272984984998675344947353312169068016896360963095579978897857131667550092442384899150710159024168128559609788483355095662843190873980539675077921010576593568262237145324340002076863842520556180356178857731971174426287506305687815783578576155317501167263518742248264037021271949794336316084619307161982337996085986415073494572487776113341909074370766158112894428073913986973619037841059783695536640679065952420510306364166726704297859030834884178653748970977728009823309163439720706908314662139409643219005635300771408306477017837505964185405616013284626302346173545921730319085074998952820054196203285827755313524994278957993732235612363154972500146264092265171180759765700714821875853670184968810866363261616841422553328170088609070123573283829260670293784714456144292160439415201689339860539924183413701228217996568333285339158477801034611965313137770824363295747688066237247009244008100264169514263707016882230358482639214852459781316094080192653984854101313023706168982219005379626804311962235286817762901524004906305160583752050018026550428737121426244737594344378211756507616861048269140764037316539082881722513179326605105170903137264336878156330482911804772521139750174823044660987487906990850031027407501068433911576280940501980782625287552606253660171152794280482330374082386060668708769636905201895826211373189986639578372431702335999174607264040090967748942568739399705474170405417501549470701927504140096122178343798729105668499132189839823580313794393784474014043110826445564642139114716526155648697941936774358770625210607484757526743750622781836244524280960444564554759264260061837648433420885988317629903011884258818046447277691358560314785819269271017152815514318919637966348676101232002600219309117537746466882885507419847413886750281101680630580661144628841961532546194137719352998905906146598827586291102489598077554312807214972010052475461645324008372728453950535693604329262897154688746356942229188988963586652474310688365242030945767237236285652962055247153180726872830511323120165686469059529523454248841436612031529680690431737896711301949793604302187418685211356697023595455577132644996530782763825612574817662818335412933570462623684943962407539133262440590161215448369374652367912740764217061080277597701986297393830766427134560723549910383384401476219582583400619421245150905085730760786503254889800483053008660852700210021334008176042737006228274878177950199790743801276078223422202680823838410257951728947193307357947245070043947570497870034730171335415391388044512128491928993295872564073943625989675299508766555758326688084186240050569171351113476868274360217834727248284834430179506746674881064962466730425594021303628116848723095316615805832048952819438917355493943237250870181478145284151770548185401776480787751195760873581072480933902198213990438580193503595473510044463525126784862323214173083667239431575668222936696975161253125273816283693524139456323857515158509045337674739346142547923381531437527638735641197812506686423753859981801484798914793094091110751852638533258101945347693356407033725509637923414929946900390448451467647825611583878214908954538769727196818882356496096403324013216924256008363922979164752971204933991416524802413254107189121534773544124260792793406429000759754477406399429358362040725722985408781410661854733920000591514640952073316051751782207655733329513382437317946674607927501876798197011196372171768716524362310927392196749310538177190664693941910640187122019400329471076812558768825169098950653743049680787577979018838223559736471656909423240685604288306805724124658433425534507413979374621132657966310597781873449103498276169200690776214889622063992667472042087988333365174085871097690869269756332106081463278495566008089519810583442078507960614526080308690030639640563300853080884768116744269161988498360283650259456576859502746771252253119112734559654803217015583808802559200140563921163888831323374305913529380289839356640403887002270186697296160956758512652508077738418050717184779587264864553374949987102922972794806511467128860355905205888888936792005127074449698873835525504624604642217382156835438813075853921495176373984734034830925376809808856748469404373753668489241030385758748798751557645477800577806408702960720399207487873160826498154651747402337711466660329204727239400354913856249799911001711781880879960869089705382107779571316826798124082207056509723810742739320174244456420091322183470312806616867708354146664690396214738270265368150493176537025902239802807173219047320406181519194562236679079485787187193140981208789361758403726748987481076737995851641939059071652897343192603031365763154831969137578793627372782339788974419148776937603175021447279768337405674144731903533964682614390625686929898174876244041026055384048404807983561703231271595333095822099598335471764152569487037608235068130878874024073635519774654179755037363221185809722631148401574615631260144182293143339984750296992581444995621611446900820855775599354932793307975485921485146307631182537162153999609964827650041670351002358148905426090954553580873142981582903122377056475604807660069053330620329646073933068190884121053991894329896321698453273513859499192968628236435576509158954434985319353017851381982196545273046161322808802956618910722652134949086658746118319683352764819958415199451952435877402526892598874294790572649924857923223530153116658884748333204496532405313222982436163890441274773191917180543221997522890343736051044962042251652133505383460405568395605024388225865605581863591340680719400589251708659629227739440338673519215849342077723464052611814511324691923590664738629262602756327796512248342389582021274418488694084366157359736616765355649195488321151786349236924783981281600197357784307731890874638633273221124039461711476342188651665503946020690542675906590886747152444836668416767799702995792857082367168130089450436294556630828240041466701627858740893624570125243961472298713723084308209681184256160711436139149176863763051830942816279902324048733561197334141807219689768503968856741057899281469958423327447289048328853593941266389847179243736333718168394226758954943818837427610333934422072874950918256582780688152115331304548072903911166232340014348389800823237916092334651896685998059318921513499106269041020257415162624744118638923858442975207640652341177717359102254428811183789569844654488742800536332349194983133523411194139589781256543997164297612298747483487323262131444397505997418788991241760557270353702237455625165752699898512600082358240071106341820206635515681969313523518788981825419943476991316819004284257376402439126730320873688613008131714102434756133382563461978117931295280848869363567204973751510821877345602214030428024625143223682109941514758505409640691126363051501603804021632221984494411150981857571654624454562665380746052427800058660241983106910956499695029660093937168796985922543360794244597773530013261283530148099105221905594470690214626669613569504601101218619324408781432308568498526920177579469029194233906191287492566443214664484074762958327553025183462669036679119486922525841779597122260536513983103060374022075598109187230683479588502467921662216694113983363531764123508027194690929243397465567774859134296315113042895572500588753680046267297695720609112806093149399676546719229054260696310650069039768096305340326226508831812577060941914621853453075551889199563197406633929489258686677485933780179425230110384852342749649585025207757393033563989152094283411026516402057848251137594478411683799322170522780244221310185011483778112817750799879754540057018567710002293012344270803909417328747708793502229281815230821695330398159944632431576105962748224901723788308221467301228977731156635776185873421455277460448694993731318943329910506858247671283222646875771253987372563980679393062603884650359196894942311016369968214911325683480252223208081629708646571032521269533412525086534939312984737920430861928291250990529592341825569222734284440410246131231790321217517580088704447661475503996545909076200770697223986568855125036341576701539366524978407010202234723780337398727392507119847108686482145969241101859175961479902024463827875190439792389075342388490299487806884087585793982989576034059167411066406940522608738223184307893436703592508556912868787907013977058276110921335361208470144293769101006679914171546813403307103866975981820032672097724358629670820684682622122328665449725405958901880184426379208401071770182104772394711211399022580571847781679879727267516253514566275288360047211713793516860699144618647168007111547030261290650989338099414230243844665176770148424807220619500217197896935577867149605735075033535316778660000781273933115113479617793929566242526865160860720244904486114773199458672526491485690243065400084239907543310786143023477820132845250277654002968064320391053730712252009823636429753315819205589730763593885322902420973327257880323765288397475221907156726692779513617435424761210879549450226754663915855201049591305468832657997411768197177280923340050478072672442858997573819926483256691076783816923211529377458731477688763888578085906957319387114572421413356882815142160022880673312487019160879947068632744852209148182907828676556741535110922428493733332199106190924371865951962100927270268096619362292807349960711420438063567057292769902729972635588158443921185878431401874844291846989723408191963033811013504423745082109700066270178763979234965517683669301781358682618669797396181368523354827618694283973045001224435097626425910099081187625604243838427731532510833415065468943124755721223947104509263977012574997817261007550758391441705738834723038264141579128336829800261451506996726018880087250956265217780765419858336799446123664615981344114051540066905780378360733080393717860581924475134703830731181472579487871571215978534717707418662411944200050571960836197114988295870548935766242397866545950801554412302302032257812962006812111286006427177416382638911122974488368916657225667183267520820138605229039227534336886646762851133282891452222095787466786389429351154671733620945862077141415024794292876365162284969741651214426652911040098819701200945262280451952334271345663404308240326509888143558838296113175244160162740776013388907233771110084094444153605401851422805035538129203918344127064505822062066501805588418279954475311150038832656185430156226226447828214779113645573897757629264060225227515682827097859103171832495977452596573562566903334115390548540352495364992869386200752118111513894331943324242966347552230639440501425478628605698590981919804988456069302395374593249708854615788127146598501615060169677104033316947111106504013207874647192118076712455063746860448799393355180165958458399364391654595934109438940302672783953137752686522474592381729970185996530933982416399805288991207182883439418943879316700791107154120425022820131124194993776413135703626364564936841307826188359197668562131821946324851861518042488399998047985678625454642334383737303005868779585663675497148798187022453092952888502309327079925754933378228753102299157961297156181188135452133386405583704531058983452558673835861929606346900127795528939249809326593981954459602739546425696522804900525465908548957586153489300261905174343590485074708007933457650862255927605660967875157001532743873827145451065320212710667038976975793420413345899163370163815872835147336864799311216438080723392268773036785242321489217324113791834008682612886815391190786059420416354834395557897359150637002619490920686546678505129666405634294862815052004854301464492094620477066488944270157070288429826549890198844467507711646638728045302371821582443771074736172891192764164194107214340832821036692029111088697511750287071290923235900853941856968208779632105408439719870484856483368082065071015877489608683640485581392511987619190722537697880484388547808283715042715971525762803847154359251638781014104372986053335647024187810358961101977411873746482045612938891180789415813287680397199552813914238486010156619587927165869811806980960050400901912318348801093280099216548290433807336578923269670632641895446626618591605381138304618612654665199575379031685290632729960040439344178740142355457474550908732462347635390991866121260282875231902100721162123154678122262519827442383002160041147759859419415419837886826533399700911505568222192155346014694231702449343866630822816961922802591963559995664108810971640210086742668196843074117140726156383667447785282514830987513085704545005658776866698643497409221191287433923383964284261580740922175291263917938098566453922295502946525092127549014206574503213613338595679168361174661641665240771671817704044974476127936385585068019958968911763758804089870296513451525426425461758652804992035124346839254741367202738333185800866708728777117452885951641802751364618093599852661491951027240725024657585616255998625991760279918017247875248406555684894347054844009865802815014339027199734415120570219370276222507195077735504716253626985091136980430968579833356712743247152950623398455845082640685166402406052979843741380089777893507482663464624327003014258180483765264577881135927196599195014365908153362516850033924012485026127200700989066932954797239943509434865338764065528629352000545543704115657007191048849774670027151926920120713077573209979426904825338828538452663791627532553452427636318943992802690325719417379996585135713228966148026551980848740507255379164087758634246201041085428449910954177882465731352766742153521735282647210748411667944723225635441478180376403239564851091911170594505709186472560998914518340328539305520397516317997013983636159844645769105219503543507564818193734472937699249818797456876548484241703974306603143789528123901362225523633477101832638024043491565093735236611418093603324192102039564019194612983325149977856990278041566856958287548674973993570176658090365865189915622898032591993040667592792107555473689842422639978751233133725467978262174815771499754259632429285632332185376657997432984681586347932937707184120552638429106913815715133247607101145786118472448261944461071549427633887878040226967667658681065157068439073720406101529727170973046564205721728768239178496859636539485164039972380064494115161073311342698314461008667736881856107562124280336303832316399573158997889791013809269102911118815323214785032624258156869141791033011062588729129118272296491507533003160092106360334265607079952619348209411646597863262386015474485837625761847315910853967805941169634182871405990705847526867884872651327994402098307048313215654845513887706047178516409531042437708166646768015846674816004056633237554704144512392680116151498833853727477479706976267171818781656121624291847909218341580133902581095494125384360647502125932953993555524546480322588300166549668582233902462739789197916466003288517500179270552776292730377997325594283336993459617192222894332728419726033158068748719480762011317918463752363778822229717947544485899352103332991341216257418440607085647709201839816390655301889721482773939829318521561220714292923502765707805694891287999555535341625841114509384721475410496477046599467934043683239749008331776221178154178015622548512996940679948563037169315749004269219327692717387455644085193693946860633354727934197836854734980275908042581510608453519347759213762352843478091676474723703329471236656829729818747663939476836210983964263476773567818975790570220359743381951836530774102572890920932617462953338582435027417860602216548997360534747749138483394143217176696832633419909547401817704996416026141621578140411850386296185657772849175748060810694479177338278729819192363055500866899689494636531930579286823433435521900739122425812042455559084199968474871680702151987044151106091117675762408989146224110390405908470228205073403472278611074785791156587117468784580870593111215367809787878145661384301076598672485992683060003935267586477895158035910233508607427295290460225263354928433774473464452999648182866749679228207205220848985833963830453340364519228837414472799872800519850556926763534727414257877368895521836303597505251480419401955837206362362600827517139447207997606058310763928046511275726812702503663092086540426219211803287106533558495488805744892033029035089758832060473763477823253662596927978467247509291797038597698420940515581441657592035797001151485225898000862538275044435003510679141462541056561273514047432936158711403933690156365939596756197387067676246768896087431949356281507245047787636538988459540706572064168851240173198035082303938284223165460662115288170291004257032532450566761250016762793092811844673675115218407675348138574847408320445055090309860051284095220013932715040922003001240800843880596283220728361270805804217830318958069533157321145032556616801783098044361765567024515696066564625533638725696270582770737295246685208836080534815108341747823214146778481517122058973518284462613322867226853613949949500309380424163441373461893898368326691992564517956543199075978481511922134557055199831188013718254860721261298367617052896291447024542705703359279960596479027018745621545442210879795026071417445023019796742844611661919128850187209603166866986845945745119991581839644914082982080137645242919692065060909296190007863039013438782757862234829845530136325876685520124942388370686487621460551124701336606209177028845262610842750246486093188011404933075931390419257394242937711251766102299281202715301595420080116958254829062150052182430243874791452404091985044291145739094466458519263565368105506736958130732782911250723170531430264506595042352128753167987975704254008859640584205984470757122456389165122463606118362523955429305928728955897263875502515141553296657386264484791214304734836647153171341290827898485258156778681912525439131643644735175101761399961334323932987912988511604490029254431359470979433109492799695655655931337878822506462409320317339482854396054131002304677947217489948932618336839103586262240877372490550373477296531379961846603395765586319276665693033849090366665627994232758263848321347509449100557818439700760432463149147314449163214355499486878114805619927681945217315042718342191837577618663330077937394454144270553556466692881156750097826128286923545263922296809810017427617915028523932008161034773246819646806302172292843190877600191434412413828142662288973092264533943517928581906071222642878404474454504493546923332024567995980429665647676643361878379420221759423093459999156865704357093547903515103489584532778852176304411235102410078668725875773236161865563451318438640149322218857145882736378012298646423365220876354232357463077406374705329716237363180295995458229662167608612642678021040234086895008501777623395139516812056222865123238297748138738530199249636377364643545482954079126395210688972399563804059463535255465791856514868529696429576299127781355536530910898435244667209774578033197729330352904682050317729448308580192485871631443436487904257507979239033556888775385621793512893273973365705932447972310561308319804224038085316076271686657887111884484773364198558005428527988199210782829523395001717800195831794513991644718247956632827251817986838128929833654873920812970600382323277387882652943944798845836127926437279898014616550827042827133456878791749940523037177344951069083946247744249108624161509374006553822021224379480140177583625498259383531484969417953329786804611443942553467649368410091083741957283901573301501953341117447204620108461163404064738728913858003380052542221638959131635651092693824478144648814829641117495576084838595992362200130505229198831910296613675480490366968405405942149743186894671854787825111391846766757723870700116517519666972811912289349239274538424356963345359437572991589857666337438154199864543978790172788969607833282659100025536206800053797159984307973765888443089906999611649197374154312755497846843079836531073004025000762159657162436572770962317205977430742557420636354661034017281426407543562294111698609158484180225337532079949348327840831811325222983690872735041406412648440656268604414038850649737201261789606372313563418874276399026533862671232679946544001048264112835322231594364554528075708111998713731615251228355575787196685605189788614773557566073419601569637081647974609037294599488708414125986740681232552924137759022174650414859811685658955970905781578750773385651064514822145032460889031701144519329590199865413269973434670503995912312322118867424165469379135421311440106394090106839367957466839935047095478778138836622965206598826266648029471898544087799972132947740446052448552975954858945733328240743533002543665300622312822226793716083048158387269341548265323154014805595263659226967444549682192974103114995519526653754673861622059680253310220839326980679237262578417449786734944845841519152814776889720155087840277495467960772289828052271665400425722287494953169291033630202227807593333573282028057571539997127102961602103570200207563363887315536995385690720029344051452478400386508950498801613482114371988925285716388318207680981238314047869606486141474999230822338972611590049332370102280961487903339801704964167802066056862680730598910434684975729517017810553089199815904377247278175277308342061880638114749668508870340491066595215293819994262923501810064667556179865228360041347104647354824648632594551797380153983339289220928808173765881537970488456826163905804516149642648939715948935513316058913307438400810877060413075865515763443536002522043822242727316362967720673361819380080612968483086865272184669638680769580751997497267648237667959105152107412766046036304801144937951230650097038504405473190849733156097604966037550506992703535016892278722725910180099928595388196796723145257224000182961148791592236927423404763192573061008330893923223876413728810014090264679692139511733736860589571360835683859316473649798804001607710692458798661755712967405980473367826372047883714536859757355637523268300621086594773072488040620501355106243239487415858698812781984101673576556259180986421198240124267290505754289595325870671234854322721727855836824118693735067872919540838136612087953639716940574711893798050448278527647958171881565218499243840380385009383682123245835777041332086353059648799782058873393295952628475161639279285308860291379107275803288694580781815459912983088624566186894397920855815257749796265424968390418150922322183741007903241616259973482522388446477229578994455770047218784632989831101324525272297665199374005749449415713970526862494541314517936094155713387175424917407791155743355274384006890141422958596164385449448277144133142263323705862768721421275754025653309424040069902141964185313637319593730309815830229570370763099053657980322956066931328950241572108686715360954445739008446594080423302991800771670255566890258636575137309250648477496708549423971358912947017492754156537560672483550108145637881448752709792878572939238172092297507950217968316175443579434353156067375189097493796384691603529857688967662743570631549379610570015769771739419622194167915345989204306538487988890134453797858082475297597544172212115025865553126562751227186660090091491036945163855773955968245576609935785890880350808071394758698311069877791806639522653139800982823013658419875861867108821613431801708086108681607541653527948872405060953354833896628032830362448123397802907272721247889086561581950235426921599988212807613102793443786261469824801806537990112320869410015174758589685644813558315733533179683099675490056911964007382326798472988161584773120386374189707840907433525854140753830788256759112462560510692925150633641329509986692957684188793953955925220449965542716534775434006461154316804446007092686058856246316401593002537874154147988966583626275355353818998597165348772143798471368000870725443276008852179299450063801531945383927134818074580953108856023529829590599605037325966918517275648710667688553475396129840313247617287961649418504263756646563000359272797101852108248804826204125754571722416332973101977848206830963216970061058778271523867353009579974071590756708886680267195404433821505213829782001196764195226303276775245599535161214328887695201286364876958487476287882224929719830036418776106583407744522469692896917118736292600619932061679555836032616056682373294962871726465268354401970760037317577244713804657406442979146607174297286778280716486163971213845862531884200290176745276866490863933894038268621743683105200028623728744420687078230905027925756186136848340150112640640629332198048797030744063948610054338271136774775501947600770170834081087449500433381643318655971829508151456746766613324229445917051862635584015149432885947298478221199312826537177840097400486079351262145702420225583609943050603421758182500902871622664230146858065015381730139329853795167171803097428288147042601132960799702802269860587716068723628863722714889913483167732225628847654336138488828427190713176762586173686107764299781057818500702008259246055638173069693151754067989013774068643428036193708261154807078757268521668750016667072563940155040075038878389469257133827138254065035018667537284525735671900527011573726445445313974333316271085067267356184561536001843095473687479528792333102779717812216447607120400396593476079647365300631084214507454201989178906666323107956156238836420961750475656732615220084737967095484651363403461181611708627117723194898290664790983733445726483772708753736049675376125058092916933364831109533486170377894004850054595061158979169936129880565966578047488257451179386177403266128522400885507734357156811245189400459263084464332365877993560803519675944338929356339077868562063595136782366733741111870580593552641745606977867595496623589648820509608371888474024847445740636956263289427012112170793685077685449120385178828302104294271640672353992882482455286192552526099700208616311163351183074033319644309894188918609295354961125258933423735796045866519055226369471821945088329219949621391767279022206372551725002898374029738950731352135562652434449236258474520306167510852740337871973822559014988255597823996029059845864343209523063366854397649422971343875055944704297347363330594455736365584345366284945800942324652450581682236007469617332385042662837080825074955546781072516130269394208642569047884299819952366692493085811388999744451501442145298879272137124475479941120283346413331711000048776767516936439178115534153990201071016418885993731596431740496634829754178929757729071963007697329913132252969853862486593730620584935883591167413878598998582913281291229350914574752616341964030090344778716801777777843293546198786921550158026357251568808258035266058264512110133474581530995142163150794358616575238979464258158400481954530534848240588000880173621401069480145229002706269576476348783967025574142870453549112284679590644293237446124374856495077883830533284021803246247582695605177450001171860839699450660838990463929942291239572273617407374624991848831350782319952809809912703849325762572452446345914659474093001142398514686400886534945503137033762400223100741436846309128497836911272142498666700114656492890250910438356591938654350204885112385435467970062930790366957220832652185677961509864407926008921815829879841869013839764289770529341128380006834636034038256540137505837392557630456208352629143856657389234432164827797300248550495448428600522770867850206360082555542255311686534627113840766821159878125153261145038332168154066656493959563834601103636126788107561932037686062213639515532820668320396528222006303922426665809852612030832980698287230931842612650760924564301704228767762843242453372848808863407455279563169263956871958063831139015871793355153356019143923612907318875868438810788943681815054416959848660640008577585964382634955333495676790897161476704281992363975431300415817048481868038810955000315381991823831256330874461414014560096311782676960010535715736064007427893850606776456383989425690740772647363644693833427594785228969091625275051528722749648242320708849262354054167563847546408716790005688223796935989869658695519171299592281545968095494401556906951691780529308385717785737724824240527269979745312027201185683611043005524685207895149375445150432613394156890461374260947227922307696794855051936996877430127001568622608411635399673376838753744186025686234843440143815464989614270561938559514743489845235011985681412610162097678494540960355671757341438592893605016198283858361923978025380271924158459462669573202720633515711848952841801574595363040896883543924227435173038430405907084698589413068091469507819897329361384906741146519801213422039323358470558656073098709545072020404607016217897352979314733925882107684211269786715887779753459498611443007672609026015671520451268313875646777896029492189499581063268042308112800054514352224608321952499109161557341010453867001769414543541931170125194421354649006873933347660072744505611216394084376180180383960274423593017223654575528283077178008319093127829458470661538008490472183640189474565850338440513580869873772015398572399383155592177611124411083802176136895362946719265932633117843516972612172438284645244693809456977721109490851507705026569592513283745255544830098125393531191092545022491563825038342029630152504126957180582386535491585212444358536783618256917925034985784931123532329490734227089014149096088005721491915492528603015555275543032667078691076422642623649220481333977058643435665718649024571629143907601310029364965533394870080598647994789927496678149214160047611513507265079838882006902451806493078679249218790259537933826287232015322321411244473366760522539560797620777347971309217116597407406794190977287174512901842586518785519586447673891223664387514714090624645791085381868423685483404742015977635166950595285967412040536299603438657584987840267333865810364791468470886855680677422914498408422269563910412899026914249109993263336575668846067001883124989932676453075293629441207229034158438982050983346639661452899029714144924781706479174919183530613121577917704352554142973420970283159169552928900865597577445403715904197484232952546742631431046140110967785086846683528498795057944194145962279877299793556497198267839765853668159657829024691517538104761648094678081733667313960062151223146862829062053264847332934869017074640200187671475072029683294335915975214773439487269967832172801673361725654941131719787101368248431323924194132609610200333469135292525172718349952071196788494926392599021020520979159134631551320485732228745836791111677975144004507295895729215086033028806597919220148835226709312283263143116601252671059488935323868847377101385573894455171389575029123032856574834661076203455673290106276733908215162754611847345195928880421348918966204588758140791804128620600513251696660380738946288215596432071940317677445050341941679590371711165205412346623452387210275140625331665538066725533864490329687562308768360301507122226379896116275987921463932375721728816917010597890343457775401235733295669848765123564712026697815227091390282933138859129027307217716856578964186818057035534599522382881874574420188173642705806582166981561058521367636984399774094330798423617844452982862482342566872696340915712079079012559944698119072804116250351413773346732046880771384346614598484780766763903953112977481832185345931534015247012814353867888660822818750673518500848457815489830803738461228822736659306991849400619814381763823895361244766394079502309502019058604606110644573797536950240448175443972798771146753681354464216548414033248142905005519048992733328369059831086435389156338059480667596036815405680051530811376115139121566757573601238791719572514776856525495387167484678410469185940214087887430103807342667619280173907942726370989808330221573839506283471590522685710578618371287281042112242291218144007312854450557137278208914638348387299869777986249792283936471050398380471966292615704349411965875673379310673507624500662038852815527615536086917160016663771461807336136858308878172778989263764016434496494515524966382374094764869621577117172873175421402512230964495202421554547447398318798581234871403761762109003700674505721899770800556881489405486252568530084940680886501400965129392511737011240774943033510644506806967628717643230082460358193530929029227104790398807610865577108071166363778167047850421795816932358688974051478089029753971433056060462830909123873342328391837334169156657218630721412354440072210246569026670746419460434217651705227717077379504140236281049184423989742407708483092267524128351637401223679318587218664576949689927583379987644745060397278665921768657572500589540600622224820305358418431861126013774181276327966431016274583806570341252242487032535230030903781854357709077855855940305759569693381508647747268264849590654761483117474258438614872996758142863420456750092704616674824263556875786446604584642332457611480477327730877319349822592167809619108651524170686404574361958281115286991764377163980926363889673997747913803288228423318699473668117629772784172665608140570316930327827643049840627921407592823408772040486540809481527095664301822098055235601917208622825209898428089137921749686640264461100149527799761063849466940377903647843756873591487301132736068248625022829265913635527729367254808054208343577586420443686939277418789009939966500782882854694950421977909252702578162374805643044330724317042997036998125370782031615900276096978911509146388896350511103712480194653870382123454542849575316991439251761246949702398813590188963274508616496892066620276109830057385834618144648361134586386012573515245817112186873726141109210120799399782457062665036436338697601507402087780312736267660316145912587869537741639589803154307322501952352642519309425115119967864971894692931633278118027658811471251334699760637988846766157013570315463789894734291463189081458524302514590749938976694332668001943958734409859148674499901403505903976970690755124486618581494959011505603463186625760997565426762490798878932139121197669762032083570187636116692862192566923720715345226603392266655257961574673244860033203593216262219530958434109659271749775743251486117421608294876800983413156677829470284631921127949731705269856696122229830267372829353024840293965003882643443161618294685399855485607821940307457685479435148610562618759504027001840958441803594792664197661315637574378880925176318429001798777448526246545049092364049004918531599073646961809429281956056238916276992303625213859051935831537554058537564068404057177213821817964382783146083733384325105210290950647470293741585020605141867580710600089148808467937578126351417362997863492373966678752667844297309414699158174952811325655810969134203813957223422585820031675377023806351753394057830958279852443903937682028410063582858507767825698970135588985466150504009871733572241533538918052199536880392580077618022313164235264057949088887995872848760031352768113599606794850809529785336178743844742915519076934614886246327994051628835482369622642840171173078375624555972316929458142998809752849377536186102959575412464057863362686641570312787007396726723492854484606119610403881780416811540968080204141756262830612276246980176174744193128216886168834143673965467404450049251180642897579926323786004240447589161857124084967064226934268522722338002342835201651245441138857139123704391822359233918409463541207212947810102451905545398760551778686988670989335319879229146553166411979429592960450877182522783147372493585156693263086933739379574319776196508236401196390690081523521474727055218146432209189359199304023279661327562555644935914466451973520591716910570007765473898738657118897251958449581341993696483599541000014556331146245675058658369168070409586252265584019688185531450163315703013918418309733241677794934401975627407369897436342677312909011020230829426297749489256731380802151205243390129871601467298412328942653109090672988455333940059821791482801569172109843375677260367663586560124356520859895109424544462252129576832893520276782268008192388036270452565080625908597018558194700795218432758988944853385456358059319051699816211797525601013893915652147005566650272341106374927094239073249580491852469866126217809598332282392905746830692659820520204917070795621742080420633378632145252632911492370323384865633164733526324608080793340442084643672780984346130432940404172745457454783936189099064956454861637778507064042695030187854041791573515765516665963089486038497464528755098121577365057720127685487732790626262833284420329283761297540933463960270212313882907452535002540907054443593160804685292966405220084793477419276980849279219421903890014247145314866523370514733460903503905258482063512849758879403743857606329764358598312491367425986177595589518697033165520437677589661864749807478003693552599558964944118452148621201380233544806570701757270869978650821710629697262864946838666878034069144457550694061715216064513030791692202195634963854687614802564273332030391859216093272202722371894573818989701363081541639292015557736928428008341511180768838112948413228957088198453107718465347473725375060271711976206727396172114522237924540238728763010693065952843992189533332161131176764401183633584008186100016053880319281639365578144629941584671205608865585722733995212975399552925426202201730814018949956127839738562763509674459790023309770925294130601821164812814139449277975073995632930706501123464654439680558928639260755385275615524141987132506861312176476878644346099280587330601708914489602190443371129643076090358727715838519137042130825534060750077087029188574115991668404505326876190270834309157571035659935335695759064928860135670029514732325603236640579305114572108448079495186461525972005367934973399907103621039219260589797458634508710452215797722307010091171775257570094384189441265356910902210523644307574355411031422105286324334937757596707199985381659210921289508760169035835027952647507292828340488611934670069580660370529189622183335199413355508835280103440761538845415810632903141992970253457408140796529979095527183082940307394860594886995669618010534435528184901163086259961765633524656317100736679913170835809522143835935197091258813637541067215395047807770022086463571189935381807173152450967321363422187322906647438067142770185120096718116512426852132303413952236943273607520518098232658881078483770273646511102745020995097278930422588341402467491720295484033004583771441660279810341791865618002220058759782803825278757567134361725808430661662055408317861143168883404481628478949734683140924779141286691977359044245101116126504290816823609683327467813678439860300621908755768116994209776053713159355037590079379888112006680084560711527382439079417937654059754034763439015692206281029400213744765129700920968462875889739991668876920401278869931335933561889261719736931461253106169784962252968181669723906253760304017414622713037029277238611504133211257150441303194131365830400207684085704574204701426078730941630465001784576369579254510878182272062768364139830604406463032154301802668126652584326032087605716665445055674947777144491117346663972027315819490407614693102049093958129812217694947669123093566876004567396198662667584161097142275474995653074500422046961205552326664639162745604592371264895881964727270543361268723321277273260017526202587247268537509825301860026533870419949721275138808387152896675849659623386761752645853817406793954054404034760167068045058472781900930359821253165923207595090214493700984945188217206623928207944199151363915714471950803810071352344004795808240548519754629677031023540217582388800577518478887969172624611802517811506410429034738113968706545409777833341553943317408926193148949382849556276898625764462604841667529621812106305639395334058691358183991136781261781047163132648825868481031664414372577605305633509965128397534629570528866359287559016804743568230216756759347581915711595815597108451767370107935721361933087922053364657667065937690333536363296066153408509024398064041172322322022904478568335403083679658897436336826830897732644632328333574298733768833067502842528644033631315922366506939226317651575623063829314715805305831583174305243626210324014205227480221489569833840007846222966262559641478042239996668637683668526693688446888434182119287669532809262087241917138317269016208931815094900774618915307526143556760686664464166540120088213447596421784263881706786441630130226758788159506106327958369852390107629669946626263770010172825663351934714916830473660733502606176546467097932424930413520818522052730573898340024989087802200773361064791011324323306973012167144005897152110107913737231335707853801340643200978570859197135539272374429604396079460371432348354018820685549188275761826774720631214447955180325441589909731914818706467426938922339522219663305447912036137967964602641825199705896818303591606574317621498860033421338793838266318573425656429634438289020794414337672661544808082281028810995497327334849600057423912035937197665140763544185362747410821713759178248493006199651579522717205124740855385726598902082550594453606797839177788695651432447242677221529644258397603798249039366273785604914043972515132676772370637896286337583421812745558739435905539090441496960433579142017851192398990879328379409576908384417866796226112024932642233090980668802869589437704740727457051782407053271571422433568271586927548529589646929375830002237642287109523316792379066670932568663891359897987786206214409278238599880821214284395630502588537588453477109751613267563073644792560779501074138052063095185251875173735879244217882444131421948480913248421551404486683015694509522213692381739264933726430025219306569051615336787602120923547446188154007454199191790184410839534479339880526810989311740925683425712377319195131369928421366481253309149940021095727099598560968618175650393394697811169806226119726613755827654634227287853294945007690856312357395114248791809407119182279040304336056030738382517014363926136659427791472141589424060642021624335386720256003637937952763212227576527351299019238125448773637512205320334543079430939646024912152396099218062659965188970533894960865929004474583661665377306198922630054451018570002101474879546069904837895294654515698041332360201842858561418162601800164419299947780973881778078079158251612131371368397234129098214452005664023141748203270596850826843876612504245378458432451134971751463748085878083687683848317813549253794454232518058475536695068357544238974945590200753464801542345470303620792656805647554555534009393900484540105695801351948631801410979990803046380028856907963871298049789281087507300361218024217189030646968922775468650588585611805228220478188100551710080161574924462561796465119153599288089338492544324564011364430670575926800726238319677671229615599143972233556658300275945245234115922693986264731737945546907425602641695213552887643563738352793633576966902237075294921603419117334909024722770705393986611974273128916238414151620444811265518986986008068343398314797693489328382722785289777520693117192162813559188402238349975664972325394681086521637813025729544530372397837457272020167977000840543527972727393080550457501961963786693228288426390407495916828735040012803041189800901354797297615473570067743849443906114953893410580921810566508723404446371408990875281614590690992951601623355335062016580925197844862596501850956284575850876242258477889087626003202955088324411545937340133658305511774356114184159267180911091832757913540583160979996440220165101944794895873791714294931890860484254349484974627639388734506828681735918874384451952360832030246533681033859388844624700669638162092311602164099366216503933600806626029265984498649403972954079483334082827626739102581275555560406818822223001388285262167034218743822333015078732468573632348671929343351155357651469800712502681256911794090653483161697400829622723025839269173965488037648009388333952709524890923862925358094701667222441710784975274718236868215849147516665148379519672291678315167737722467484547515936521565609152658332546566479820171136570335904001876843691879510317109151517726768564085109984720907685862522269736431411058832716414852666020471115788825589922777139956182264416120557497449142444225879091928866590649984345861964414434861174443314136903853402548615727784825782475438176199046639599310140104107160567086185504764530799380366528085042086657148747070309817748410705395319240038348141583243667564719428796701415344561117521972609230387068962926618115259991199252831521639431168330306378082144478275626888139785924970084079172874707838620380441738245687290484940114461983007897745639077315132772183928985327524337112041319479464104494961272269959048646522478429193444851847694609350092765253834194480546270032757747829764364120128274175883898881703671724621984957533686927848258231493695131517206747856533543945848509711570623723455098805382230461752913132138789779906623637697761159280703806259186535401761944542809614647834196691982724194581213964986234673296192355802818258076073716464731494648722272163317712613450007024548611579150908096022850121257000166219209776113422456373328438327416739879555762160701182101326955595742996350818841084463691900843499541316998569568864170837443875444231312382624049747492439432594990487476711943699631274334402966681867276820775246510637595854700447924438057996509234678976328001697011898065753232867616113404657481140164259411540498491143289744885231473976942726615013778650284318163947778185408154026709276206337715481354418487839682275848182535139567576538773157896341019017127217008800697990425566005534366678169349787232813266943587220552341641425556850154522058841723089629810026148244125465981388701368434623769099143750175218632848556360441442268430826721618280208945115834204361946470593636020650287471852105309061815469604067621860729846717611068593272490639027162380370784544045574690215672250208620656163149890507396448637246314018227463180090995775536194314206035731523315719712763236107836515470672426050003171110245131450049117258513129566603552488220598801289525745873659888892991517106234075884242354438209147002030283944241528984812200456013231998929112271305605795381075908100187551118936977777183396725839270209705933778342857999816852427325583696079659747396085946379858928826714759798400828111912641207501615654585272226192575577601058620154608381183005904039253611184412367989040330271340596302474035347298251203794678005025672117704187501600219821461767304726846566386749850083048245979328461546475573475553628732758308738165411285440775996316817134301173658787366879114593158329297682696014115904328270178493387553108096524145054159308815120844046332232079838370444200138798519924460567007819094036036459841267767804107580901385315763009047211830387112724204193922174897258933508805799436819202680419729509272009302499676747142478734476534073326862740855129764604693211184235754254004460830412459605802876849600820954218812476360723005167845865156861558600289174585316246163255882809281043046339514163864973776088396765463946460760495228886285248128945838243418193830859095963031849009353661885071993348412757092632461360008844107438598898475275125620576725745535404163403631812832758016926854653014335476505230338443568165090272081669220464716370835026361116883228255011328253412810889027908372735004452553425360765162164007449258665113682142825103845630570037656318609975646198840153349442997725212721012193664412654397622001286430069679674137673854981822704885048841315205368647748350972217380604757558283480453510932440570928401520204493628862001273163637326296912436522617547814237776410531904815715629803430615158296698625993459798801769823626367872949789001236918750737721822036132206769676783347274460351739038608559105373066064714274119150725155546814068955003704639932374660656706503851545481646945792386274318140574706699472977940555691355810715457260342565111576304574189948137472420491034195170023477866289829000737345751983366807387536363098741151466602302963792699778574080204264325216105039343678068733348819212356051022384866937387897909498697390512403824163337040158790731104767046007706868843388758563981203311350754974336380053687145096591988877685249558975751461967579215686008025315943247819794561070401447875697889611282292708706914356514513667195816040511668969186663346451613759881829338020425739164708534315059498302065515662663433744982932574797176273791813568449593185605977404692269004327012169052375345328751142780654968325890748006434329859561901156249796925111480114979730980793186891870250305013916454169033906669214697707093096243862197310476670521369130439892479910811400017774589442615583474327640321090725247689406182611514926200448465368510040277766221618238502612927853262885920766554882012582245688713221395273620601292887970602590482524038360148770818294110119905315733509528617995329149670636594390512054238665073461234941997797853528847304581428573261446015704702008094199913039023689377890535985804966663912111684638391963755966572234265926183151620030174354493520507188395557871190758900311128389963222660080188063063586850509162867394747658149590408816773126517828079482142337944883545339879171304089024477219504896277808555208634170985216327840994829374371062878271845810910888715365944055663876082832491684175530654981892764728785685077914575654981308704852134334194751760707554079784767323526305145010874080014254403993447952774073004327974428400761495107277081501322788892484308824775567002141688240686570339948704633068748842642122244282403092994957762791123601718713559187197935812339151476577389546992306372641599124739067206138845016494158889800004551052106067678283398618107201693843179515425440296225577879532565720894796653300797200351472874367989889370750152148123083213587635651957183605029501269732740920277672689624794261109690406968644616122237232371864682120229386123627111241558151450173579718011631715219776245391759746221948762298756163748333909977768305110232697684350938696068850453675736667163354705154990424127866979339475430296483436819280605323766878092097052348201336967491207984839233170513413095234809269850389049511003662993191967684069338610210227929905118540749164855564770773123803919871021996276697005155370735726826751280739718736187566712511736965372928939259973043253579125751507727453453186288174783765447216642200463866535919399781485008862073497584306211612377691407888805498695547240621011523286507636980447164765414205325525996806327222415078521450540177859968240146606230123378213284735411247487965422042578202539808805306744687097596053118640166526526364000455782414823989488770879677970568036445292797869050117676706205754312748694871822210225718532031412820170789749006745716378475477751010547354053790326712209619148524349415035077901871006211345404607630059048760809122956507476873125869088587479762822000039789712186226528224705096062099001364289399489230521106669955703920376127600154452129205382277191967912295208611530590954864631033462062578868494846661839685751873325376017600864341701916298309579600157041251492407457444411407859504290063132338158700659192988929617618752299098133641998240770552905318668603901246370897678844883606263831843946398045422702097035027081214151819690450641419456446092030417213793467964380131310141042602664254883693223142570393493444319941055829254793189623403563127646290405068125577040893276702783005002316625404459498392885583475295953157979271441434942060795493275639671010302380316193351092256386794408846184747419921684543115468064228954988240515478312410599874660794398612030733951711091185768594669780453914054813907624964356788362679100674006637347787116836583347436970311211205947706377267267023874839979669330939881661961636650310256908322712078118987480632939512504457217238836067760436355230406386171620769419133831652965507069019763720856652138653837694362355928187633444324505300410930214237253915090322210805657716894231608404511992505019044760989272236352206549928073852494514846088109761253746705835565873363191820542025026841251424352715337052904389831972353290309415930906333427539324897313108530572775138356517478267479389754552126785376328280453979047706847501715943577230740760714570895661325023188259551959077840581927973058241165075084382764507618581059336336779313902552462072374020140820784398965390077454489084579781859234571424575293836264450881989616619833333247165840676720189780814750261014251655222761837502646813432338126523846563754885638714471383027632214989565141915691493250296283498690913654195921962607717751412761695847627105571540143338783567320584634570537876512507965141615697881240324508036986466322057700347089610655420976304295942598591721878735419561265117347230281748209326607938037712734196856946765189727500564015378599407303254469818116359818811378799112701868038978346582920864315252007129260537012538886504748307747406505917376844743953713500608684825972039088622659359761817764911988467955486244583546741074882615588748379437781423430131846247921734170680363522802260760383570540428945063340976799170513545181907721681694729320276989220001844075882918961221755252933102594888875400560125514029521294158321083936341154512160423844077772164646511826635344020226063562632180338033482083095476271582994040056618112826967190605871438390486021661579929080379447053935053141292915698742160200077090576997933258246424511090125434468741385703390697674487580648653553854875974594026600426558945405158557854520944429570349430377538520056183215542404788581420398783323821849286501828928274163799640552220596960163312441492075338841342345844558893209074903837535040523902709692816709186949530227111483705628457678479185404720356544165457709546011011905629475152362511580604044981623694735740640494003528382236589040955661055338456624000232229413541095859393913918237708241025484076063515367032567683810969328356525990968769903440793068078303631748499815761529639373424924674654754193902449465566748216418290792403804416829468455891822780275042650043153875787677753938523003279035332752897263594171167031217760913269091127705949761315362225035952128337980411609254596167809258990528983023724267212537949675944009428966960093666586056991194571949368811350444883207938150276365695035705416729361605773403438383611033967291620776823751493663362012007117519297765056693446276082658452625836070538896097913211473528357035783764519722198536550988350204775213143671563175894217338239819500732940687086581823811426678095304780964912217071151511234024950217698265372345335967587702369022747112810232859036806072398938829422231151390249706931439669548083143501496035065298309918699412762608447310984275899537778099823326651033865952127285648726728971383657407316602886247304424189594563116337006118208870632021052942336543205798029712402533279560679513350184088268083920876580726224849664603858351454644664759028448256605166267606628477204042582583785678520674274825225466920373255421974966979769367544999872545846330695899598147810112712646375152686312851210998809360048402611683749739671544642432677637821041419830896031212402728970561913753738914194608489569066821868792189001781772050947509260164715001674715897152912605302120479638910686102375327598313232591652313314497705733216347505961087360669625080171111236600805271143129545902889431139413181763654786729991880375037775231606930204336388775979750630635893313697762368356278413725248347350743760781765253080343827904550808154435250972043672548516972030560026491751821639463871795495736259883160580780197350108385851182891256597307098304479808088959528436204118386971103323272580221945772060381713208355388736316226221940451992398423061396790929604986621681129316063397591809841368681375362426985398215457664922523549052465287249260054748702594227836845030737014930336860356210132411456284614550827926778165890966546857657097689561707431689965239786147920076408758490903032460684649623861827500657147673750863890944291712836107275881169458983225855124547796217490960271897041291499514686375081535265232033590072402824748332854740152998979346739110512647820019415914243225853910470479604124962178355786284968444923214098875632706008808045380019386857871997754564119650667069814319221986838402160621974995935267008613188298974016011349540655090875124313409826355764657734787535827188863286453348366344804358086298444335360660943075962792618329987042403178945150384353250830169582347893649197898273018097368685859073441204522132712749198195292638566211858393919104542656099392815009719413686715089700940768763243941024509954683051907814188309733502351321184583924929143100446959932516564699600602951833473814826925050676517715118092932728972079583975348762865060233736209498923912770604434251617763596332424176275198120076698804801584385220615710421235536470082930286786444872007844874830894248271035164145143458657719553134014754420793710700412102176704991283169564206239606329709483968789248749687280914949700744835732508329395318350835042174276318915443611350351912343125909932964558901164297937865127644060988032827906918749036624731208363425211887050329759926781314763212624073225640891537951717510272084416980509665191896173298802827621765645050115543510110243576269659350106760100694600965353141354737266303837979135661642148785092016331034789237744304799343771756177694777054634947218472266506019829499083105432287213598020688135336090693588042322254190644289760351946934973263456506553087381074656355251984610965743953832805409431826301657659426370448210863899470979606754610443938066441829141502010685910193083675955401916482772650093901107351540492032907440134539262051985132624426900258507559466931518426975339424367759291779862596980174279302616243176829418228459374917531286740660871353977073081642312887856961975727811477913784761710005872574570481817062061148626049315893458870772098785829238084911666155131987868389896884665986446498035242914887276443126847674683752944275020398679425930527015638192838304283535620301494225418643659702914555006300595631959740842461538488788950212804788156642486435206580185573294569650354491063186033003181777912133809474585302582840805160119458084958140397860313477332892465246064909927750146173367378350313387988851661609910861624754580812256977079572697388355102431208203610071398245673569344832619116361929083382213374482163864431993701933090184051167805005154238929595793662395960171818015763866285127863211658590945198617507434350260091135636728472349832469645765625797115084756005662752580209084882683133051629241901652528979756176676077728620841820606163262755327466628952590599664179442318682596788675236487531704344874654985535913151117332300341168059148081629572583080821372321980804151558925809862938470629426348040894525493126147987640794684974692454157990100718468694649970232369432821517376093556339524965196631333649586782897846001691779053617779545750297085372928312964877814327125562469706084587714916359966293237656556372962747126868980845017725687251615732082647722868714801407216566327525588010376540206404391550429674622849620609611128696756218574603283769670732511403336941248983381946103844620768558059285362194485641493962980224757542489189577240581834990929255534243490075960952880387013458333842045127038573330715899209938119332869644666860451097846856436155660618756109050419053910255597622367408769630102488982113411894655785477546040227792283081224726308348528275377595959226439046123379564751853701719507677155519291705305032549922419209765092709123947919431511564533327352339809666297770256645414626477876631733283578787177849781803728075366475778623324512524986952575350169177078262956162902064092451552754890894050615876966444900178221181965754176422541972628941703014918404918747617154257776122179162013572205740211211113304941532683245474633282061217813532283278178685220869582715806655083921954364864117722231201179357769335617520096896106615487154888239199691268826866528683468538819616516691694909772415001043073134539278143761534392905594107789279463127491573369911333401880990657618390681414942372081980756581386439284780123874954005434266204730345230839036798468629567654179371518714921769962873527452994438998052417815041910515355023957014547462628226151229646943958509858510886785824682630738054551687748049473703416752363931632758103895558718009624469165370404882387713736361708955963833243944138158658641838176576348488552908166463339329095592317499166376445783607119695189608939480723765732841806665166269335367299256649642429362540257991898657827861737947192360930723064803806530350618032395129126441520948270077206821908543608203402082894181608097944214920593013031921819163075297000873320306778726354145282601539789691831533320683954302464618489320327639795578739645805177773493052371631251704587946823159012236233536903450404164695133334427162829297975632153843580888230151446137100771864057820764302227990025321889013036993902329569979613127354479546238545590069294904966045917582874609228223752938007678750036309771675642935579842469806596648863703163906165582891675246064449803548980910771473074005309018188197661555320422197111808399994294601543563098169339180173671480719588966752123421577363794069620947625906164091524767133530732661473603622611910758088020717738928359061102912029978950380288736985949076455504255541191166274429047655304118801182778838157131324747242881033517592473517721402035311852529834692102097340691619755953722624114098267315998597216031802038550902716000366609100738967626628470038859347075017017789555050784023225231618492305729499368181639609123909775450098145896163934428125398220940950549665580356005299211452225729791077989415106238971203014953703663469213610865376024582932282152012605741262473930857507733164577499209947034278253951187879774211939557590388793656514244845562622882733229869514503485044199736397002746186628575914739250652797712540326896164293637242572179603377100261028130532959344334707982685312262052163416598850266525474118337304027576030948736995040901847472724043258381945675935772512047865749780287899557442669794424088267146578717880229235275774192488666082578299515596740538763952434991251052519108204805792807081334327176570099420080466729492456979488263624088139308795704747315676628238469351563860340226918676924966841086382095412480919677616425710897219160252411774248240250897861113065155244809244517522391301296566119969757664177302831127684455676799406149337715524785726619953617025007672613723099284853071082267227207645904686639390452533574456145737541302734224137536788981166389407457257413695533794371801055389774532373112852013057868459409004991521587514918416786799140175924335299967279712653994899380689385038085845120125821867173961062428970368377700337763086711978704207260354707836621764988638892613406445453565217123270928961553684340219049665912565526652805889263999504276798455078134810266106370970170038281841030654574053002599051797565107627352056670380757353853406990963514537509153958592792998513532782913101448764754733791676263167301882086382112878776497791854106171520174911702508302060733406162352760953562289458792030545796089586952362737457514484404517236170332665258024321119922817678492982908254493158110003072962778129978615420937065882788534602080257615881931458827749140213266489071619540060458453167927521822341109899684348290886068997820215981133254943572397638127424137507366054592142424510219058991163029081433761520396721213015329861691726590467566985665025904969973089496212352971656228471733864394345300838521543412716394339971916691641724956048626965566064237721946172229152550145958690080055747156208694235614191812060048419071750136373647876084314239928178253986676270480472021271632158275638070928837707925955647044238066318148943591462089281434513931737370576388518217805007963116637784577274644723233959085457425777216954170207991530875484151487384848408199235410226940693361106525014643414896995333819049849699356721705858716321127770815136525131376206018499480436367234220168722392059119485617063760858862043205956939637279028774795168819880559738832428853095792056032476617700426643345827927791906860118142523454036287218875415595674203964389120638230213511291897792793286338512354654433349033354596817740825899088200490519562578185620354604931642563836779251799033909051078862841114550525705260857489897976389928097545106808250747423489248832338989459635504661036972030778751161448394849346357639836101972499814900827131960909984905757117944665701102770341305654554981122479198906833464972433458447227376789341594294300753123152653943205297958236856251975969694911595322521297708805570177325943490627739114383651529743474327107074094535074093645121316417937440112676648639520159252531611217006630336085035363834315952976199481621576901161610383073391735028701259795697616214807037069173607367928273015201452221365898319678678915078842456441827151399089062374968521162034724125031838664425162792125052868402596939006319501976236588261423834578764593621039904472324312818905774368179454155512269278348972836581222119438261883124626303248603335028913060619672319441854712597698839543678058418609739469716085885641247518540144374969632382764182750281804197645587856135334843626676691621867387260873172752618238168439282774642502491314714470758028343804126861618131524593853498019445074590268043795578243458030782863440925442673681358663482440234580016794743649572336801896120186614839599509150143958622668658301542073221020206145591795212386044500342106694314439762387941054860037890548743577914328760107932399571926385352361675067740849157186428691220987308420692884360714366589553231622082201274226100822267337356706445575499859011937688258683469374679906546222574035873730675624605819547234462491402509115998933722737106201549707157691132699639683615335278109784083998318904736089109648268294952846612960973268392393737702460535644054995140798693262286579652730037375766246591230854194230140160974755683592135945682455888998303193254870038903482427796458548379927897903042112811813118681937535277269119429999328397290483981672299829358451783137417650176399938427021264406630874367628444109863808774452133723303254860406699057646312967249196308720535893014567056330172449527110053045313828253008917705071982137962451623889091737542821019489822976966992221132622005194554728317724958535584749959514479606390301294319159129319438961527262850383651762340725882814068635773970508898243493237980480893867602087147966144407328054811593363957618226806097543908211109831924396261173305856753825329811301120333720852977441959089465307804323049082677348189712076114612030613404449810215021687888845656689892533694971024410233821536967888458104199082258410491594483287913584344153713742962177921196053027454224199003941986192251228843052892600369875890426399795101530669236897266417052879983461781849688079338103870564513571038173088222642829495037332934111910489891966280154614208847007894455480225467554289083340755923208674667472041370572257639753313660325034865384364427534902803722116137740107237340239394220241024967562384799771568449126929651849371028866610029575028455477343303600287605053069119981420392873536903051580334614590559585409190682480561423803893827522816737379590208008051763001802658438586661694291698193392187598817662320004489991336675083219122113180896056409697603799357851067158995439563400534316948018840949570663787611054176163371098106326922728796594779929701660674213729621581091630993400580939328308960383839668821511313831584184506962620485220170610147928049579504983032382788642071058467833861694346451797142301402954820543911827758946031505385923967895667471419546173719653232501789329326965711515502980906874174257948910490412776899939588299928021904486641406938569748766552536340469205534588887257225269975181898254438009377664196082271601834933697740555072634325641148447057335540832501602224600289560244541503538779566268905828485530246141420755364525182822513628303713370993418664509858958121508720335346941641526263105637925443222835609525284243676939837454147568973531363741582480564565248534730197431521269398885091545760355826274947226979840214779521879359962443913975687064870273015752637321043074276922187855346387049341965454764844677007933569840503026125626756802248689144299037371089969742841639292059108191732850726276534433692126032987043642667994598181600855320074497432007766957415935104043383759691429290381091826726598246036501748356086473616519611635705735677136501002351376475899410311162407254387189453608154907928287011482345145940870753081619540322936719043351545649481848654963488903698396113442943400750925472779821187548010701651714496361781177939219062822068328511585572828038416029861164448047678317099621841047082984111340714851177995755206419024793844378821753560515541365808538007635576387404785267976789235124547285464069413792869088959802277957862322555273234984002836612061786119383373090289439942297988653692090602659109893077784755181764971728802467688093536094348033136031844456941127617687376642219837759379744147643243509329694569531407544138181577176927017138790779779908386923528791983082229158560953108262232519349731577859349552824689651139220305219328022117627377590260292217800713818924958622174261476060051987059865490660302886304710833308706445241572166679375086289449704826872780391509854943393663101574396992303026997452970066441836608316188909241101040692218653731555718930571968708183958374686846522452591189311797104155964831496086309099569998054253278055644594844385976096424718761588034687868624957573162747367309803023937470576033794766010570798080430510059905305796721923006473808680493929453554872955218359140660645456428166604536152795964277153968495349806078903517322571957063865426424052375158035492543301136868005665049318285009046473972132982643907344925323056449039203099721705670558547433562485382157686708694478489586744087235516781692519720058606979387567643846902493656618456359810102755618354575589067710309851985088932628536592050841729062765638095687611911796575985190316002990947862802243100007351277443552299669391257711244758450155216062753621066804488449832584960968328293129537622903835781882079194210299760317879024571285383292259114603071999407193144060592691802022653359053276033085522056797255392902275194406351774350519127735615401131764685850513684223237715105024137294470210171291115620355651811525173550550748946659621560813140828249070207217209319818826793622805604304936119214388969026129310855971558625740166083987495683292570874700598775682850635028908594100212532970110205797565541547144478203518189639599653795757101009676413331216771820693253660755159303965798094564871905313456798787398209067010272413301280431934902016484035464793345540542281645927200838279161731645238772169952977231803028809440161096763160528638999923505940113448025639359620958148976479178827465921943452308708821321486135729185038979298342387650559779053067911160128877446334788365897273147943901390124826337470099474072284411780503321991581317683973915272145453176451233748916407269897065573577212244279679650374479451079019000908490349636701175276567771487775789965203881973837667548054539352763398946748381321649115919060991014638239092029743260740661185511603064511302233516881554304481284670836824746768651752692124260915395266761032867568191217997998933482805532598887007925206322366152727371947144340424419847419012808451154102054233284866244898908903385523151867828941767701800668921638291498442776268338281347389630273189655003821054614763583219673313865386874679856900175854051784483092369050183691307904607473642686485382999393857147696375153944861020037570219815484043439539628283724101647541002473129564882732849761293120590237010451930909124162025307800602717842547352736062204278682138884950742963461433115027841489123532963583544940924549420980381389707241994331993506159433456079722315690001021856452372666819438766600959765357525924730382948822263283613855948057152842555132864181478825907114798354400089089652059444779356635171140641482908031005858459219782054192541997631746606259119808462035514007283322388335929409683298517096929376441943857419239791786612993582445597355880538179770473856182313706165194845984576552868510124108466383845497779625829267108508868093216378312447458189624718236381632620257407504728516738294182147734875742642321528096064925206951865661637881108578476822950446615676125575942684954050778018835902971039742119759149575523298040192597655396655284812004627115262517070684512396156941980963896172331933321473553148892368721885867211288653623172930285223838440810965291998189008043155935208853274133842971563402258823168650010778443682603482034748909514449299910178034833248112172169413965320416597503925569575801261059410344519718430639781821851936141219423323803423457037931498768312538619069644279499727492816040121725076774828692584558259195874967930644325602800638778790664461851390932759368872535952439809962750399490183074902353164248938609630054742247115611602118167962274498703355544009041619588756539646436680801535075308299302654071737206390849672028203654455519190775947929531895477636549591680362614502469405561054279396137415529918717058294283074903701267415032420055259980730945094284152636739013025422674602177220059873788488536746820013668126155289723479221666747088935462123420597515942577100164868330360428479376069151833517845524370527145568397674008922553954007120092752148352434698209511177995143787679017155368586132596468300138181690739140386222950109795075462409312632959803642743528670737461166012206812386565754784800369424550844441896168084398030025824911832444487575671377606165335685362081481732749347812794883177604046870729853144236000527987023338250497812311309267413422114445052799137805786202798143376627140428204353979886668190284998398644029479703767240460715028580085741483396762496238063360597197599578844562946327249436621281801081255357481618507463459631880485858467278878369382949893622609597761640570755956319497869321534101833693016976111336275515547630243443617428075060923825211087274498675001962846025171517198293618168276833710886166759107780290101120582708531553995070688390540271698386342819178997814381731842169410458344339554539209437014605189083908283189391536116355318153027299351985950205345355408844656010673779782660256565397161479032983660764498808889236016268287506447733860628316911181343980615938899083547815495656085580916766424806942912561051381808148171774018161891826761592225558482615915003172055141111649332924722039435813093829729559792955508799946585568745819561922761866424302730773591038523020650000592547788503824127245973321914623637656366746656607039469664679356633566697387441559403669541208313601662813605504208922042909795032922810676010248478823273277959845104751066807854874836722158519113778579003564362879000473977411909478227550333958839544492881395848977459781735833910691356757304750513030070391521666171352658489588694297878556160783691546942279310750193811597416981672778470513940466186223968900247019472281166176025817866286805232788620529928437285089451333510644368548263476568835063357659211380332012118964855830670852375006915915721296697618925444999064422820333567298805847939195399840810217193971030900429193020382297686164504992707422460692205996583874572983797981813074801875945640167873844428452706071147383908746378146711849172980695548442034691296185224970308588061540658400104062682459519248519660774174793606656603178414887230068975528619077309014669554015863158072080821710913671015229505549570151497885972745915834452645891113722309362592712776703657441092789600688430161550509634192826238882870047446845873844190594744551683638654978968167424672607482996611894542943676722913684136658389923420611671353153414326607877778158956099599676867673703739881905300745196613676048645293619137397079889262431905460905265460841697169131258934792034683941220576285479839203601166185488803977054418149953291837210607837856433127178444970729879566407695160020453502094290156658113375885175208859740255896537765593288822687439751306265133734449486361011161730410577900569200735206244047861405839295102323520168098085678049747952833952720992281562680687880543938844408985188873294054622853540146860756407563070030020122957448800464638823431296999907719726615674397444588178113586331019505640314425926670711954632391841523611871431522085005518464623110417367541473436386508520159040498350549970787846205319556253899692742614350051039197456405757730534669564319777031542639571116025572993600396660938741134515342334261241340492604115563696010982385424106005832335648032871514841696595467789363809245259823845614658691686297655012044921701030774337662901233939814010662698554670668927354345756852883520841127617041165031239997798779696825769773238499976642164482038438081953646974277927696908807901664212530504719963216362998440291433259464715103050979507526421155251410084219542977656541313772413628461099256578607092532402375727912548383448632556209497925688463828412030373085124467807446631654984229423948140628741854241108535988353788000285093489394854246583557993688250649878428428966234229890718276924757806173522104211342058383589508322603278756302954710806818729435589190581675964941948739171239048915565212396337379195219083745365887011809137078594942771180076189891990697108098176828067688871920088189954746353800754733390245483270144730401396525425535172702428723450212556849330832395040067759493447315281686066030919489149265462124425181444489928723541423709016384581184936436792729675013587313089890977525452067698377513839926216839923633001965174513787375224078220016741598558476299944008397751361982875603470214976795776211331038265230345748419303934103152811006242110272006858630329151792494172185814440009399173651998996090714705740457780751164220786669315361337779451662960174528298783372422098042000873622571315312471367713525132823707427867174145047632063300324875414098057928374244987741749029508268907842331964512905608637483194695228272130750601119422039757439616348456712841258982856447715838017368649804564132560589648846371097988004024159674552176796069009914404823329976172874911281608774128156628570894690464896865021604341400265526162400635175110021839432864379676461574371255911419179402018628033095341714071543202343540982169631422424450995091488002357398108646610856695690187458159193011469642051703400898227862578083816164806280933480058178225186534907900179556529184865583564764968866340293055192299616683341152952878319309245796475501876962770698723576001505085410470003897808941910707713228604009181545871712482104549435576053960263656471573677819031627873324321418953391026312111410483010972621934072474692510641321205320463440371347896370153146519160175636423641934873309244808399563267857783775376975063505764521355295493366827745086149510268933626396780202576711847282387045803315673119127807185572649480171909175652636240593871838293387084066628334670938356954369728562672679708085910018501184245373970014813627156895610351231804110222523924429865389444000976729608049343267351525882877255944970203926454879273641083823410928189522855825625120116770674241999649907629272544363231111999567253738966044530879610498166751171134337268169000398598966676656308327776949171578640875296814840695870132527943283510170422006783566730347526847850911474101272073965113830914689484666071456906157242930771582554346621862509021940693050225332457333727876259416308604902161123360908300574827894548214291994393200402788804643738900686807714065636053837976546273708512909819704004997366474715317327812962514128645936665182975860205907137175308535703311707512182977965375952417387870248702000870926179449861717777099756485038765013046532441895207961918404274384851312423152420093377814836201989055295215909372009240157172316924504785754575942691638179447877557349072531339987118209391496042782963918051315374323563642394331244108400546566707342256393268085539816565537251748036507061239035769687230460367910358846529377000731816284204181211617812713887730815317737516167060228225222545310141031187208062609848657045947297409627572708561933972875399724155163954266948724772680682743534725555281685852310770059023373800591034130285600086742483120613467522476493608140165871971365136922955635151737054914192311846230854072866079823965902522392180004027828748571828295949047189638058693345882435560365736428808446771080185028686334998099078944970084646560801161086975722644958997849713710853444308780543109023887086025999719986145490097984242901207546033116565341543657254110395249794969183620804878024975135035821456108257131161736384546239587703958914972255547917244810800937179401082215191867656832258467453553657188752152126589311830710768819838689598262604620136473209523640066448364209986226667630145355583984758389028806393201384202106587426672857077298668314881308291879716050115497425722430900958555852898516386626935714527459501912548071498288186765565071323975797121111899429739182835466873047056866991800615822607267214555435492701046568432453399850665770504479120493066179838136465564344638561429083660031350910515651014432558176175825411677339412647485960683155814022628959204218984494007240032235649395444927589037818417821431390894588773417086860707301463819201676661167280393317427625989591676816835454619159642087145831885582496271865983127395554729126797160613977831343015292684067368118695699456959598515436048540644271388007224662281731065435795178188082810210455811579701621904299007795729866379029198136548024158266543901131729274717928430607993606426414837245243098073425460727527971029123280786811867314785285741277258738106290054030339531634792663194797634452328834348875562582719201149833280514639480920566845517262368560034639147086672973545102147619565423155075040239974530219044124150586272056969997640067045449244085915025565988391948514221079904731601818078676593580882783644940962686209066685065811461266597792338352288328443363459440433515970832440157946022116218995221404486159398485164057030602250496947151996720114928377193039470958791179903939598334065635507922887856637833802479455432136319896989357660726398359756138092274481054481413250816247080554202446305312906930153025810452735426668309981562727048679025730234354646984684699786714523105782192081846674960937818602515869113781150212272437194177149722466021991002622688932364218962541632370757875678883876021181920394870830845456724816787440346342993453416085969336906635081297807858358076995276755119256309707277685350897873302450769149065079408927574249003369184130106632523855972559523550100125784407029266795862449277334632852218100136273720392699716241105104186793619270227983583604716990214106254563649870755051690244405929423393147505319799758409081503222567853806059896145172730061910725716907525730190243306562910567153327892795511321368243524881426902646382109769380657834843737171746988678092642655287064599146203948183004390066668405589295415308341847268697375903854635513650613956518082630860499799787950806256003151283275093937612208827250371569009067894748866458841467238142827984934349869919321620232853446671199140759164322894791258740438500906336256863283765679982004303967380015845995238408109605435354039234637674888402642418732404294501734326935738883623859535371876138674568288033809644177036019367840043692626317515390098298626084775081074437851033756857071960966263099485962213225484548000691043624101915874575357507464372240717916827354096289608408646414107542639669168473381445964026381976659269354419389452345244926210671117052761923579413820489035279620795529928089578131979839457775767534101626149791908237404995019205452134699751238869120866110001013713150811612066299769531151704216103918077896534230077818121946349980272499784567100739232683785674088879637985026136169585033773324975842487972232203051537810571399515882425110760995883097666316524446622368799946451639837542257368834040778188412007551857955780027984042597004534657384428591833397449981952982504560962480393984011137106096598840610638267025372500249467938125353924440571577497821246504726845240367894053455506130100277707793222982541041503081881777529793762477466172449787522462034181043901234925249639713295447850224456354867907081004325730909636791235069459558341054085420033536086883988016749700796960897226468607324518765549331715072519642667193046823300903338323525650009730831175073671541029227452103555554645427487647694567702500944647913277343802194368659035353159819658586685717444590532714884584836157177310816588066129569456244005515041206545251112909105179125885711779379214616078589438788107205137261244811025821826683953325553445341757554774427377272024305681583809675704501582543641432443988992533034864380421104056332360428537609823280528719450992491456021122825128290410939415057744079349146755166790814777511140615021410253122299984158328328007336728434804575142729293110032422202596551265158347273301353119481203105149835497891598060799166780140453902489999237190139182014535063072349576530864640788765408125084118455683085888085850901345533707926787678437110668531629003008644996455577805924577825135277723206535309097290326277151551007422324310852489043889234649216744554910468280576065719634273371583234041860598332724318318672601179941181921671069184918932709817803935430550230361432643989661222428328323912528504811464379143702046848183122119553962639901670583157361346150308423762447965294182398129088184647500700392570132725399710730577941318739871613471622312037857935926341268716677982859100167639267981446260631873868813495350631766721421571702067953937987199515390241566862090764475675744423541535643825903181283217565007059619487618315885364720497991419081503567960087496892556355740240138634057557276844879996329487877803905992964635581959500327121373677331106661767418123782368859355578085011451424928788400064542268979236741487123610862325028385280358407387173144105261358570057885869589491785010402319242591291993110213308209008241624894823695768210092156950137013923426931007271424830490905392368912151582209219934080085514082155448266700234137718883420892655901626457729763208445849915450885583068471602027269530194719351817430666540042045387599858461650679756187242492308820762911943693561001421795778422292418016966972857482186141745540950000261061312145147072290613595082656994663992673730884881917466980653858135571226656042049922135883416310393148801374729731165063537529661996509265327002107244487741570242128328520914275639218207740232988682364917903220162615849309792260916746586355916129758051830527490916359896273573994224014506787152984663216982250709019994133209897389172313716010420071614517328635672029548054477092712213041729379469931947023188331986395037885382380194506712423118872390649929337218089290324726934303125853683165179608573589683693487074692962428870184244528267246870547131118056830878492463014532971511381992162762712491873832038011445696744369477543461266845447791465248885514425322769136598718643485038634895736205705787247408174324379663443270949698912474528485171311679072073721052829053766932273914090859335957707101387937812447277149114770220795561374379866632216489165398578015992662764810987995953349420213757384937377599922646956265824071139354383905452018009108409013788531965755962610863001493705234138399995621152953022842502206129785832276229739784509552253305977107487840384568556345432448404344345332604416644369997986997786095149378054411036404509615984560801632550213546113341901518050817851348695394542252025958443357111526729763183154060280673689855621303502715835545269665460275139301266038800092607250537825691069044039267631161241716731887395369813201394785380686538408174697994215936713488109609011057384186075674061493229506967319023869669156077860164799969305565228478395590292833816206153105458129962695688400111709776675858759711903292760123641155190495196061678386150160707596118577674189236361083278616619582745938107045762387009227535501791525512699011834968338645994913163561142443634811131475360611073450818203991184206178322085647378703390413450116178612360202039645922351639878674107981183776480733948657515766687913700951299908206356394258196527021877853058860769807762194828675893405788775133798287784387680498780677262605387882377725882595757393648519439860804275395841506007886086063637575717094101910754778966662204897658931769032707669609848660747245983551565642970256434638650137042833323328716231109045473143519688254378394783291757875406282272008503812624391092033288742210552589087897838479090653122691231041055484815624834403162157893880620493308723273723633394575308775950691545008682472140484183775248294523367357126191673453380182622540498164498321087589346620533909832353743173288728008734611254440450996095842357536399968804389165909273917050718191347365294565180470360441809946951614267573360596136289169090797921125258728159510237241043105131568248245727309803714104460990506575464257946465053191425766577139294430675910944126834329013623090786429601475807818730371746817498868759851721620016019905099428673820537496865379445665317637024383358051006583823470090108826540594372939432245013009074130626123337321188750354672997283205524081750883113616105175988966712483298506114969706618373043140689599267776390607857308897942838454682931575204910845786861680132493368411339816977109254350630918117201965661211907945574501386493418431142234459666032993892416431629660832202771724798613197353687835142989022779328616606466570384856356484668207568604869177661112109590741921014127947413240297884607407329770512364310832608859828569953131489290042722413920091500275536752139472842218609263514170577756564402894037057811206875957169312495012373809439688702906577313490805689010947722048604601874747372316108061423437605631463708309024669486403125648716542805607444685966293862717135051846369103712772762538763911098615297080856852681368066896178445798932838963923224110392811783684942342555759979539421688543978232283836273225340165172612478314268556710280793901961771785119032727161445630645691065016886317009519920241308705064890905237054741609175453171119944286835541741156213826616968893176017259224028796426374745292741128080877686028037003875243048441752824284955998255751590651875989447642639779577988669142569484049701811720426618489089952709337221384922195540789989500643901009387777042828489016204417841214868830875091304206244539182424179509522630602613089114566095062105345606401753305313570500932430240446718213276159079045478840108083406789273979885310747132777682489274390620926195119909313930084867499405024601524249186287265855418700490766293065952369776292919256289402877139280631337002396490659060008094970673630193480937994652361506153478579164258839096848228077700445442089692726006316855548206942768357804656850452238250607294355563669617201656835025562118285333309236198592674413150353659241226226362097776550885319072415007388982343920742953756591381003568708672564838588171392851461130400737957010073068322605442218663561297576522929977275743621605402846497072174120183728452957640578418549593997442632422288196265425802826256399057270967891533542795617953868792958451873897385541691774992656946588777964425045108377411498630316600935532503333760557305884301338948793412286803406940415423107621301536653516308165345024846328192938520962698530499921983448019821048707931492709001072695344883440646778004906742579945473400368330015118745143123998259879092802829595216108615172689855000264239787207054455385766194823723278618458357493378866899546441679324927460329912316303227480795781049242044075209288088630380311868472347497080900393951119063492745688815656499352845139380604677616500022161416264389228826819511539261508284639538808545895428931944151735112705170480179223010559223391470967224161383416121946342904555868217766149693325300272811478092470432401530309258479710490380234482033667334175241318798926030568709849502012082705591749838802714939258910165237408790635019639427812081206298924343809417986260397498070731879062275166485016185278536897050117542587473516025263733275745745525871598285969775103123041314184864600257844491620689387834773576750708091708049890454305958929716884664141914777679195339766897293567114462455413133573061210653193601996986261087585196437645320906577474254238994090939879753315070229156452614853810815258999803788093057326371797240241689792093116261413287732690800549389198669439278351028329461983502075130772126942957385689204417188102256331612262298175303932385434660532319148262801350007307314407702302345407488018403124602299140677105721398049234776085116085366536432292914561476729878969756672134840245919157234152569294085470063909665751601929405578997381040846792072428018973525254078867316751158188532399714703116453968504234595627191825071885483020816289828807591433798011228769893136885276793249416403488516693046886797247392741680746460365985807753233723990180970660719942787262714157753471276671950315150134418710018426718249642169337336006664771892616005739952250428358135349754674727317833564367908498693761139821653893252162619941713778618858749026371112229333232307079379262308702279450627502198616321854397546457318282776835971743145487059610931537437935618351130310628819019909332713843098056930769642788408188744586731975647312492162699412979197627455794317940775317161639562859210976533764124327933291030754779771801104983696788142782735132227611901717035728600941684131306010558749521890941086606259579439689609987088079516319120277683846227491966677638684548787185788772863128562288718190526899513719369372082122415372425812075988211817513552317356300471346918232988813378733397679974086768319331405336240591576238382449554787815015429447684140480601462524438796047547278990881876911514094781423539410249865748304297625020437322113417060713092929510469305595004986787270344604343913214208901616039464497207073198005120636763937905239767246196275817897802365402418302946912428709227074821813204344502729076229147905050400845737194854223523070847737811534466857287359879474435717511259274218321853985292968872678934220077433318855258664482914312937917043380013062069373716140678497984469499773696805436562069824511980515636550913842824413378939232823036797216923277674640589208674287915949393644191866545171519238877573651142132852881747583735627996647749401725811531897461673416986676553179472319699578724090607436122014906381150573591620844754278542704658009563704648840026078047351121605062703195929812080093399209334375212148283568261052221931757578111156679706378727310689988599066747856425510963065875271988101755746909862853669736194674933105197953067294231578144832476584689706552050334190193212140963766424349500472772628268780652510197243854906218166085432731030570279149454531407615371312326871639057179494522995789217965317535292966211400734284290301118346974020833946333969835712539693884091995207062032644297022736522768033720874761603300983374584138909700225230034069420226161654379500124599052919765938587833810861702643942716311586045772266487861458525109188935100121052962454012438349385023207094014702334870280359357506414823719220729067829231593328672157914275945640574540760265452608061411088602003804970878663254327493098152572316084423612623828510427745670904351747248779133366289071162536828587267916999389383666094107381295069278993531219239611411887236798725551309194572576726213476133077889347401006162188601116944649714285336914810656650067403528492122770755706404768985065462675663857620165567553155014550158704729025159146227368313695720660070757979025220359937391462628951895867019082881557626133865249344763578232377663502076375441663129420931021365402246105551164048570341857378152831402555690707798547059919960225130825517748790302117170342200854529054432473173043513057398235226234337977141703856398399126937262742842262219426911438368950221555760163073102204065972977642289030963527263722310433590137131906135247467192925713381840114143167686637549452778108471063880718004707556290947623803714657472520688972855307029372641234345587194362987941107573392600027496985575631042547751104253082321725380137273508448434182123045377594017929509275692364338276490156445165891438033185830525043552684011723216266622393469166831995385469650252701457073101501106904833404671310198716406242108989285462960374713132153355162045107838136854577833424984544961495678206275777207791344123639360522582131867184946968660720187324888861250167313363633824578977861525901501544432506821794252052868860988011880499455473104625751738998130034947436567856136540673176846147533515637605171590675527613289159649066378771892526896759362114759401798721072952368780825751411049469444513401084024322642031525016770050304121748224818621766617414453679515098474925387814721720214198126282109215920727654850712589267058247253900687297307851018803470190359784712767348716449729598807131090575036774093448801989059638164786756738425832674323569533997953181689168201885650322529311889301629033895618999367032139972583335276671201969554860501133716507303922001884529817800481673489923357177527024376677937693503887080964953113599561744785468592284356342325445064893196950620621363090407987171678384273204621966265819086800736863129553589236746560133561985162311792242107827508072342019783896763728762580489444240314585285583022783067263558139143555466146132533943110010621801671229687937416203458348689769253745530293042078517220316073130674636579334857327140541793233910015017257115686265150515818377572595578555733916354752359468582147423340548563381194030930488067067405849461367392714144854986750066453539566346784261405686851930608521891328779827197784890514595470742586273052244110791750071875914079255294631299038135641089610148679457987902786277878537206997027886573445621940699666653143090121408108188037215644884377422521082450285980899528277337078531125107022870928919910259235695810605116404997252099168594292280212822294957369993069261966921790091270827419965342710009433893922604228819478326025794116987480789202878753374032323079018468799657345803174061320085169071247715754654655477879066444238577173477019495378198340859399584039572340921190579729890655996934636429210044563000050015416381071552278619103487295042470258228235755777118114317977067140469574148536931991383211721747138447913662036954757635075606390556170273871644597102672251299305859038822553209609789693059323388612051174488321981111183537037533917752325912425801118752867953202688227257270353464369004284968301033360534590661334920404500844690715382811559770570877236317149110467430050692433967821494535288262527873601259848761101211857482271498565684150976566089306305886530263930677065688712347766104457835394923117116826793827602648738040772725232264817629289569466765064730764720296621508928865077251432583182453053052534692424703931456341389541188154108662052104008614966005109262674090107661191960221095166535015024943334944911797194469151839605683761152567761128652036386675850845738637166898309248807703982039411075021529005983333344290099576204825457593456714315811742026455083941804273371029667578545997739351009351322641746553691250327456809603388738205018176223718608592865118332338667569826552304550699173551536982720180758943846754753639543113706569707578006019158493118592150469093035084628170742545275356962432113157030416184043438537312600418647015018091963152943039826800725735870877056135847128372680286010487202894178940650368106835689380315007405148265915796645765494456286713408063377742214431578717652378174615470645396780849751502356005783416696676638553869637367158619848990702939013955708299576227358860631235020570060061722168035102571558021141511205711964409790828162299892565494444235309232038887599442255770499234016816355764241680924864426333631576325422721531557409926240702861316296733050264428396573268768506055444346589635858199027673415790061839306187269045000647152303208534082490544374169576719990693339364790012812827129700236527592235079168345665221265371434360319804594627379515943744748881867314741551716068722671862873525751903582017224292469379160486154400371911796297229885487850345585581437432433204812833182073226070323618583825361762835830990903624273923299275619401390246404266107569521029939053911108239088046943474741989466547383812339931581768885454687191912245824663360891910247669887457244194706378411130782526061595506123456864341030365678552297202059420257563318933727127581779602293291413507987379964360471067963619416496117311682656979062610398169201604050025614689699657369362921372403747709355150285815372879275112187225314854171786432213930073274808282600138124786441687549262239042122107207419612823706363089007741391811651239170196141293286988076183322606048178572748886843388258904524758044616278800638625623190957550220051839374666931694136057845603106436939077478113905858578872330763417216598279652397474201919179238396711756013055235761785581937581886359109573095664165901555715754341276939367408505765494869327237420032241732275327792525208506676412652137847391981988889674435292552180084786782382461129004976463439604496988839498677242029623970564612591251808947278003392668809995539229578997534491205353182391403235043963080179539009265271021721107828003773650206086153023756436172609053643912445339323426221319293829951218986671570509986480295240819748756769357937191497893195060571858332996413073292060832146168521990584008823345512638318722366950370929636761498780092437374181850452489036806482275751051577616174437423097074965874207591223783209380383816222016186332160035367060970959637718609543138787062732629976602796087153804233903296952472004601928551719356393428355172882397298517848240853682928194295718216497557405996370857774953428438281385591529797757082820409958403263668934296326678945637021237246840196079684726630828204379808071833129925255432463819311325317090368741945307183554667409323972319327443597972963761991342299314948851173367566442053639374754728685720911361497449724158229288162755196985863643956882583913376921860359529314220963398905786623172032608728120617869379297092704342660909290278821193347655713052430193603865271131934308775502814609066617765017880718553184067847943170088159561151333533254295802349724672062291880592935890983317938995479497130888102524981456752657149215936699112664633536275775100006821886436144838532341058350072643409080240494711964984761563159491293584308087130473380982659409148584782149715653428537553278504332482313791188395697224126246020482843703198394438234062147855217733196340835676764130168588669188275159972195846361567124610549825292036973426372221405193870520415857316730154381779295661570081585647806967910789991482576002023397478003674888890829096598564990147362790576744891834666487275149804377110258949261850895126938326133185851059404040624277423958576475324202419854107596608768448051714929655071912682069004374015844575728470083253293219350849498769449975984292895166881964315573452858976507225978289420466455482294974446208599821554477781973412622509052675356663991613670454942424181634041715397657654825239702174634872372399573561320349397573369663169366915692028783237389212833968730903436847765677423768421634362381403955373686853548075251419349402337986721811715467406681299976667913991807173835005942278015354828846803721560571440888023519816568262915471463621763089256235533979630593038195341731402907757595855237904640714764756153339500979858241709655001868233609324347581620388995103726178194160609587504145921024447023730577223547467372219718026858850600109543319683177147691036624972607035781745288738109149520430867660468823070812529378765145834420755938309324496996247572520990175644935780364247630715793898857336789368013565655726530753569441830168923099532623161521366788153412038846126874816010946596959677642767882902083358433146359910574084950888443737786016461611529704196379696602865485797692273218470238303382839253288854616600025806281330235545939166745992705364412682571559659744115456319546394938174330226187477050539965763655240325017440780943709589921929325989943900534834773241508177882215063271476731586273371514835456772631644903830294507155582440122971105038586942155329125114292073298771450329912311592157395050539529725161219534424540787216182027920317505377224731286605860146832122423113933861969491815340163580272277165649705366509348817269692863425708151743871905304051220549914173031524321532755592649532618843451582483142064646027382646928454612298907315037782370045943188393299185318678895531835880903260335377716361597059576818118160206434622784493258769331472638988322162080697998682234297631025855585102584402409007848143997349477397179933782970475847891946046656521546091096390025166508014460624069375969035908827683137552652498232971439115764728152134400749934561803374317228425262228382359929424992450705425276353907296568552964990808523928538730050980681106586302291788897148617225475912102649046082136610655702601763470214954274601329445904467661859480854346397669375545759566653499842224392957598747122369353235467495267515406259344641030152756210979341480368156958634308315878075070501171186873648904658477920461696947414314223229353496757195611028291600708630713802968177195087821742359691471312743136165865744688226086055827535839045852105566905401324425288773502462926997829066729666803718823891873904120650725797400061493127888894789307204488767422350067234226225178822926779156309178134346439430606323170458303691733922774546538655668905390985230258420933701210330815731443739986773063105588532796359315977625521307222574927788922941290877712389668378219313438855904806348338288001633319816919723021075132702982100917377507358418998655753621643555877826474761082278091748662488244855584342346113902293296783528244992705531795735137941616095053506036791742780905318730446823486427984688662368526537292965578128147762581604641692759723005833662390492702978587485228553702121048322110218715311095077764771935737434434750022323790699047528934236417640665166933148350587082414584291247467530646393933539258526544609394812779470443508711548768609245850853934506342935532439851788407260581582221870935274765377814190222368786883493314349835931787299975613379604983329654951983088106629174636199479163316470414308045914814562939681834116924905937876558901303243692722317239233883427793351580240523349033676702198609302419426659224632825739736113676836556652901022546291465299047077010856666803149178925770006375283759224914727820172884801548366164794672867340110762550285020987608766200627332424213569219645154338264589551996244124713897886815694232138943565057485531643052634750221299887566050955476626860360067779424700153185409805995132929150208360550219998772864105124131687411130033328547669899022095130841071921407918279948696064801374195851828894454950791506498534685924107272769731262511505027629183929028312776006851189758749952589165870140722326008632467819062903675202576714474752567122811888413279728489636614142082800732197549764204158295025735650543864874501554884349206861944164154961051220416420290294796131601192492460674492165494552954216698285985973430555679683315265992218015348427190837660966820208907752616353648912355064322420486477025727157782004936861819852322273873103706652428583987360043514908311950496740155647622153847069409114099672685117513591697486530882028040381582081553473340904847686296842650399578772240014435019267719041570040450054381358113106883449250752748030759148665882779826121956339279370566913174255098437945099219776676614909208572623028135271452474631962989796828842453588534259822394293660049295049395697253846811738991540911501348347082549369541801101842896589183591277010363187731319148553901829252525440233796253452789366256656562625818002800442782128405599996108037993359207924307675472665627559405737079139618702623504958937680000952447788062022992901761601639137820679306344511139525953991130930321950494176772660436031213863047533433275777317819908605358622059754256687039305636494902199966345153564237957771998401586139557573023406862813957548431869600295488592498022492990894036965475628415205373508462218199510866396209512542733994107842119343125238554509249049789211410318093749717491746478911276890271365134923296487956038492230454665719302084457858009538589646601683353106807127065232425072526326762314632742267672121510721469783676924215226040624766845200945075730633235484369052171921757424389738107865421747440126440797264530184418111531387161698961850501152496284798514824389575612346684587976581083272367813410236070456921826512969412980734121201116076672866571913583822757561564880862440511979671997698528647873862700117619343751437814538107289684043831946029311813111187072993725508026997686741273127696429585586496392418339239894104329623045761949460278598097309928945240340734812968034547003637437414560457033437046181154490046455300524764736159639802906466836263401411018627222185676297201364644966555798894238350893934217734302788386462597674788727748668643552476750460903431761743747258491630512182193835337235703930705785325261414919474705700365109721459428868278673244777379910888672430170497580098670440516289466692573903957900692043627962494420216282840080409948837223820616460416638146016039474358095548252633227070034059020078371193423866095399626361796933145846710785630198547740891053242781993341555273938651592259678504492324566375512149230067897730841824585500580985620433982964247552772726407955040186365819998181805685939413974075479796288893271389588204956523783405826716631994364382968263206750468568636126135352698609885904388113929819222419217020018708546673935266559515643677450378230835088355408968932277268816156793289244817274287103151335041227453561942577410267030545708759089332586697824258857791732751214332640633276886187686947656629647426338304132081361626325210273207317363285665714042024758026211619965319246132244702999514796080658182013107442683344735592085690246071908679016264134738812570866810827036890276831961473323785495193354430200533148925273911770252395212074760942082522143805425238027581868284061035352872143913242653684117786178148657433965133556258170448452447657171317393983678190823193867920224898163898409355090971276142718307225781214589136044914210023801586037507353095634344574792274704735504255166785686970500712713749563073951305945273371640565491811649645931775628178371054730642664067654476484880476206775892988786054319548235630421628743573913287125750170764749260265707483426702247132790121327573773850389424311393208011185384464435997357700331773035837799307064239277409741243485687256962197606048498780941639554059486584605728877636314421267314530230561184303665754232079944298513717245947993326743525317689821591939118987091744602463734075300070069947246853811097979513193681279705791747234815588044714334386821024802620185455008159311976199696107746926649458066932063462198479808864141549676096637736720069039749080144997235111707455150155839719535125002969360161334646723745430962077202942686057545825833100373062628999927421258499666606191399295219539396587417208253653207567036164866475104927369901692245165431237907155119205840779288598419915851964738687678707654178025909200782033755877181072898109535896483477413206293745279268133164274199682701419406317693873134907111488150334003240445300686606000176204314329075348993033978079094398338365897559003938811218637771359118224315371088517556199117562246169234722630625000853785515088711750968589578232395858285853595000373539559227674876091845412302331129203777745963574313359416981822346388923601322913049093587919123993040317731709185396520791962445796375318551568325677120008649279264001006623737782238018351339858106536376394475766898375804564018742125198049798466694664404034856809381131173508142873909854975331830803608755898319956439898350475659551232669031156566185791501446564691328674097870898040596225745907613010263968118155394617879722384419173842202552376083440125250141536611827149317389564613901487093862043362605284913410523517929669150626434274755117335428779078130737255768651895386152478837784138331219972702125514543020370005134769344548864426332432732377071485627844419575327089965937929996028841436733985360997604986080425020680148198818757632378518571841207844412725464933802423333467062491627917443127032153450817135046393927215633249061850992706704281887801738575923414549528397096678690129764264064469059819625740573850276749776270977725387735691234026419573499228044536667210050484356585439517360461767349136554105004251987607358592554688835122490645026593771236414431253972633400212442825081007708036314430004176393517856859290807177045162194570767463726985641338168710513753321986956408024319978635552869164116520959561443897084674191640930421828745910211319759836905961406460924579066509245387930794684040818566123921594092446203282857633396934984788409486587942724077734086766663971301427762355738796408711387359193171110485840746347130640925356171195008650937354164540030098833357623095886733200350539367784495449894231187804578860523600540066673153821804953387638268873959605846459868388382412086481075095384602866427617637531413385920401701618453457222375324554874116467264183055317860790431024423975414027815129946337549828708555084372042223442975343023396959528823697281599860673574318992715578792474487065890869155339231097445946434082614171796580458189517819603043589321148949769910180647961036370394758424200103020141605900723090226117562069454496368573693861164751341495072945870494495033694188614338983218691503108045796835611462587720415261900448926968435001781306261526573080457889270083345307083583252882380424795673752470491570775174928857061769411147539872604368412691338923695074027788573593900501669888288748635805292355217286020645084289269752360881867827857100119963413487123810564463530902592485455543178268488275761904270079345304268398001817110263193242521219449733487046887416972196655712074199867004311299734726822340384916930568689259631719816867871721827025222715337589504565168757914044322229482715626819796257732017485430720605957229089472111025585184358980867747751208868573618093133053537813099877506765080702091222116368630365146264014592471131801935643523723057381436580064699477684814335680146856183376481961385106699190444062538184621572851651135309845490301433785513386447417065794307485616659063523940613099815303640516139703198433239465470181865859533121999151785234006917613011558338169917429156343777395412320647682566428321374182937466252182668483543438317454518901989126414195010563527311779251899396804915513226816329398495574151924388879638489115876866665371911948673246650106592261576243119526349991481336413444802784134803818129550789376594383452275965845702237180240682004116206369636543804788181541341124148564038352537683461773907287079160410350342367788306438874619457707917625668905156919063380811755724780371844442103494386531649803970158682530835247586022770995516396530774429919282667083302955800983331268112209599318359602898533703987483743139893832630051815615934074908318348301515974660192035781041328327148227679571453890095186504435059586880471158617579923612002891916417398069290795118274102218252781556077787501729257930784215902403983248496863948308866760021642026671211265800023682645759128388870744697043993992435291394947096729604212065562200997447188521132330843695797160003714692615975599374425418195166932147844824471320419322957631132473473382957852142241793187368370362136834903890415389999006287776812630446413922130101200262037262256879148368707280187808013522360041707224962711559717993661983076130325366960881104789994568216879198383364154585248719514641870787731486916035480940214886774080727369928878716028148221653525254551219985892097681491047195339860190077942754678874724395263377480638270235817367223500801451625539786745810977705871468365035248876562508130736839365689778635312404946029646646974981692825480500362852087503032584185020693366010440140613794304664649821861532188009216509783608253545166132057693039192560085630829991678175700570387073303911133113017432251023934852215097174396028210887015443925106569947158475355089754483872364816632900638017664561624614398409355073913211236309459761031461266331267974082536258717807471497813941684568527541158065715815729915289171239937116980455100569137386697676324944807910591820049999261385242940528288483075183669774348432199142104776683286697878213677762091941005703457565596243919070238210689118236647028380887259063689873529020039677790507538616518961922065525070560251735149525829537602843029769063086107687989069673585687560710660418972948620808728827913460837087043787918052458246052749683983787219709836394443230198266155158030579116209093878630836347489151951803189252994256550169813903332486772541338165261661185701046392598684486561719023710198676479984795593843786540059120523571396196982860352287634703722247704472384148623307665874881479709291071411498757642056301333599033365973979999875292767753466328092554658633034409704130197130853824922970651106406532269070179215885984609483128912624852949731702928823938817519445734145401975957405840978030879285919448048972844581228721303587194078439308172859365031843007323438922553390685570558942278646349097038766379008542497580675485847422460435901204243801819426918789433267469666616355744318675529373478278603207751269536936095266556045892473908102626892829870852207673040613555846370329071522958245535231825610556504463125477730890527375903041214854769213382374746440396356205471203824473305434076567787418436313916141483335303559825188201832638472294696570221004308215331288946624917707890890049786233873523068015094010384950361791424379766243771588996362188006907712467530120218116947502807588549612247972175501990405450047082162595926681788522456997092362171798268236702564414519073809095870062407352401022631802209082216745114739810908446288836297132302399284021035969409568442430784861301924968248425005837077567129454870871824182490479448635822905149679801742577158656927327007062672175833886411706958787689483196400017712401896965658716313517675561958890562608008720324995431265415068373517907397141997402100168890659942615272725178615655407099684532428934810162203089855462604384392818426948354344884707421034894614060546877049414244883956740835655906041720688409099914360138327737834466337551346033291825780338367742865138073619056300871130151232895875888067491438485790388201117223299790638077916590388818914432630640357457591180377357393922273027204994908379160696887000573048145495353299931715507695379938626322441775923351905990644637289125890569221075291721153255290367044906286793102954077793115079591080544323064395963378654901925011365976923707278255718892551341059614971433996628920054241930893593002102867462407099104277632371095293138525016600260089348748830870878366935287855167011665743840061540469000711071397976620771651514360720778439583519371608889677323651992977360080300854274578188411665617957361922949985483996872720731102778778518016982987355144365464226652847842625277804473770847949899923866326639841631177114158832849745411113138206654277313149595116211344890260951473786905831303144418940816169594250587373144066375190003317507621370244446653543832462884418904015009882092851722178664749020470967387887230060968316963071033006086844917335454503971516546197776697987326148289427103295550174705417907804608537933453932085397081089588361312270371925766320311615712078302725680598154998219321791943687836483296957293633981826740576234925568151407037204867215671803510874314313113359492012034557128557053588286154514305997183295635555235183878710529195065166233690594651180115661670198321181102921434953665687913509051231406482693589974345190890969617795970756164198570832115434244472351662321423674561231893044797803161830118955488199709290556493442433893682083033796932534687207912371740561769690412778476247696983608582264799343364751237059103028193636694041185753891257283006950791551380466010411634402012978292885081420451329831361200401181402709340564624613182171526169225955612898988020277652738819133473663009241253461659928067364539742983439031289887886540715291007982025687168139581962015459234214416781112466700749711408942206531143246126901696766908112508047387152923346470741377014719773291758707387259529452849882695449184575892026110039170545880927218620165625002453592643458705171842425706938910651149278812407728906806402944928221857253080618536663126392154134440709357730013899926412304297267311725421030111679797412869414816501638647251663401844113907576501228872162534420720034381437454731449567360576301950810313942811650931912654457299081114759102389105262518183963908842859525276111157511312221508349200872457315432091595626132678034479180725695820854063446377869165983555465380090669299655301554809973446015517065848824560003334075682696371340199770492545234695960305535326234605690299806314666844869323643952788653314619190153089883672296262331588939214141654711074598126108463644897422134966057952591137556483290915045535491009362626098604814979106641436194031511116781892000766588897153584401163559876959687880730531164780292268345786007412399813571958397806575616415336702531930285542034801724217407646865674300474684645089110021724700451240818183450667459592304393530117627620996505286316205148370468640713205800830345071512789291617744095930992425622251500560871999255967988232902175207957694209181538587656851989259410341299138906805377631585669044655555121081118955563203347177370972618391353157563378559270046190798559046770705551159361811926014826033533107446744163503014393395647509378676897407262949581729280958728972859775106333446588997284202222249939850543343728707452122968040495575735580638879919356845299319678019005369643345235357884412127508095459272511711126904597905575020270612606989004693030793803972090971269645087618834472193642503966157058561543980013936023212856177131676424568131272047724377266075850939879661685150097074199368056788110701109524658530538152276659834305287215858690036424054334899167774780207772525484599191662754503992975403856015081216663742644759498523567029500085129503546883219488700382963810001628037199730049631662183473105135628883535685148424411416568611176126765044307197635176280929161028058426920362940164747317820345065922069243509623613169813065218761270856876453292624608526545838713406042607677425847513854318501012033894594036267973497178428890395011423204619528375248678087581517277367565172719125459406119049411044108469975251303016085090556849722078217310049496546476067336588473396074756596318114537384529234112343586142116528148021065248259376858249740123183520533989126615316785098877550739359334580437502713187479158173811174701067790677614404778217835419863850747637910155201972254174768553946856115291705875847454206444839936146246336457758102237644509732164826331025059047743094042243805481085431606590585787370324029910794596653585306335984642116609559063802389825481771631631044771459208580507272439880723653253525656166526250136965113088925584681672231509089038614378563261465018122654011292462922406997424692541903572201172757920969799506947938884579991059853142841810563651891142083014326148706253016037959500825574167289552473533149761052228621754834633922116346644588378590502048140949134150910172075390912687128623617703456123736143414167246336414243931303792392822401177699185988198163892215433072252264950834887022094035443287924426219463586138231534330737314082692709157723895237238594640918402869418989733056229149922414153928910057426151498429692741253090564434993515410310537759401494174445694316904893298495147500321213981910279416574218448161878407172059553528022414855978117648287166634949415802978363089893353921982174008827326646706873383964083976041756160374257742409711668455442619439157666890817077707833951951878008571556703328084434803342663196925203225811714238316765279644213949943049103131205044865521555486100295930106894036547309531219225894263137605994716675237275921894817692808000301781225677953209556233821177438837018831534853313590806170272057034254183251511653761679358848558606027278140258918472160570310771753507683956350822158007409548666168978717871497651778153777703676036103849579791721694308835700208387813200729051846582318670845569389888789081104760864852282326306501347610158225125087565823875365761827895324590193503007390557117447338429625290275603161452180389815144431250524026494714265096116844570078345250140532337845125835961270886894531004930907085209709871310039974051146128100044386811381401495417315397439689062710879657069033568685289442678550246917092668562302973494913772776614344143226655975943760520593367627478851795285817732075679522424668095187885828834463015094809993838133075805977705342029256563515491886379226311819737560592662373660023207113236766506400055790912984729453953500696009500694531759475320558757730059399789927499717878477283892371786413709408608479851265951084267820165352608741716124544482047879044772410436790641298606424829392427031500242713522946128092692251318409744380330885536055141329419357047516875241839516379457707310145535906998709875009991880199812797224178503962367673845227642365424995652376981336490050281120154621103855033830312719188848067675717816202484534401824195902007365265941512849874991728226010752317056827310202130417886774010047643710609791935278146159947451870278275751387676511721072419293824482414777027434895702940433740887111437719542674048504454486575159346475488232196450081158268681383358584465753250782414510845804502922483936892075660876317889068621489298009678265319507396806202681345755175448235359539316282925161897872953428668056188151563470326504071833210991792691539437056690919024020651648652765834683209143616569253566427294780517093565104958809683966967303124519793763057777351184076899359972673731359906311747243908125129272835902408412186894979406215476207041536847416799732805864152868119018759927265330552659021770857289578683528409073437766407841267660852825104975106413182578707564814502113555070847696628399778278909158770295089286278484769847318671265229434820775836957906818268611215857735213621185094171747706933889663186104447837490338086842854074981130004492235194990786705691860324209462881816051268085653909640599150598915242879959793232838999716287511880205851911974620439786396457247336635826702466922173117487224162963058577773225825044374984751459571557910003363609771517174013487443046310698026100817596594759423200233286884781065687540676324341778224422406361476406905579910996786605108769111374406479633096501494211297909340166941683965950741948273584922273817351361539661181441929708212233707383587207410455600912556454315135335254449008502396597302751326475785939535333073474909430838734328701226033499757461012030695898455077877725833020571857916457250266249585105590920846662866184687297222386363767883298148185627475560589021062905459871886744411364646556418636617843906787244125536602758039968364478794129483320037953522552476262442340047840436160354004188539944827051511283645452077551423594218075736665573671320269510257322654868829083086221984991251105360466997239201480382407688717113700930663722370942375428110253727574687412477976807710613605239836470811503970385085166910968840473859557627818161933693758951016761430313736790323583278382389512950126505677892637837505198251613792743309451677558386043098229490102861774700271818115689434103741007768341614407490082538647719242092020509765179898875366502390800443892791613171883855224120332325475496931867821591370922092132992416212763448247386023720289674501025381782653965945033192252708847521070577314197474797704980242797894815814010288057969363748750863245483090021262885696829141089768745912199987743709722994815042464878726283075121773075411930375510947187244184361117651860071091154040852051286881589519148760717308668442332636652027900813870787319704480345402343675235310097536892220745363773795988079026958442927273320088385986056110073766781962772903387138978724966337831037072709336116588483135687542746253427627982328550051407128750150410675913525785550213073572723931897305553953019078665974272224861827000996541607770978212459206677544561559577979444586230547956069414425867224176367285762802955766207389554231451190211363042733755618299164815908328558191032894120028389186484769205110029815703739706443100423769800746689598405702983932293564890146412053457714554512867676986100036192863455182303005651913272299858943050571642253138147602563202642129645822637474323751266611430737882581607970235994221674352318469212963536295310694637400466126467069976838167438617740110947839126838242886571786793519842967702977158842636396827439819414268226064670129818098282422473287424982373282163200335409509153914352470399789160654845734590823549044977154810990358605677244773997666094174257357039794841254687017837513887820350446304774397753898235468546820343685871185737037614451171773990310319758734724297147435921112289011287022098561456921783063800873616275158987855234909476249443543302165115982816650520670734390176738933610585042474586934453362558040417054769613487717229798008857706408043803335487270620053043514810661204743511716207822996963313806336744888992530700442291803071854130786726647003323309198316888123119816849173677159844929040272479538765145849751851046205134084946370839537290137653360376184931098846158158393432411387348240933672850498004358479592152464839788543310671199913518077413508248575045111405488240836069090641074667176405346582976784059409816761177965158827073222644747287209987838483668334540038832576814087176592090577385100983922781484415898296982886917666471708662711407953194186715996425388772626563125427914824270767591690555101341141750772029350942275745795259999269400373840699960198527670012506661962179915073082404304344427340406719981492806566106982805600927053247515368004204199218287927331072603947156183501137280295722913520564257384697571213887327407611247827788598323808043147665943157634828399308800406265534160701301959596651028786099382339625085530678410313853139120219557192884144018960759345180294391946745437289837393020920891712783955577487110068450267633628754569624121243120484869292784684700301421965597154460683058431818876262107915516446302972004502487701010319708154755167183629746872930078928820186883106175620820413491089783309620170263964581045578412595318112725716166598200662079336322941455006868461701742214317894334763663609971556767357292598807766325402339769070310891824296509197672951782804253377206868280605748014516085163495149292675007262207011610678985462691447242023674957243922979681962347988603380057246770397204555463080791547576445216005150149389887139272570542250323391523814111465843934074669815473856124299681036327329981112960126125830414046095014075527987095903752118554385225380823859779611807601976967379485050849014376828945541515063303838831731242387748840487733535807397183427587057158626369362370640390671309883935453048832193785353683778794475267317818074238581885936749878935978551828100649470087083248269655741518886927637507923506946778175364461191872654722278777457522046085433109751353657707402766239097318778624742748099501704660368188971461055161131919322116204426811932699826798797528008333624158376836427270958174630446994272017516200703596822125059428345538858580491488779728657122115244373525199916161674285378733327778902962368859042372854109777525786868478285738445882650252448032311472065995521237729412764291329652595635609442928703857339332878470575915320201587963057226133327046558267981487148803907621839058952069911657956777662532807106602487066779955740688601620125113596859083908043540417298340860104825121683458323904818003297521784989210844901690072615146457920987926481625145496172582074260851450634334724586592358442082318086065712955916344289732030036356608876430965813632286036756334437610161325012207587895570908404186334782592224025404870718465163024730531711365847917943733074258114607279474242225656996832701208631090750128107162322558828168398530247127404979616328582378485159454772044968860318541098236972986680964071476948731214820644551281080877936235545411972990006207671548254133011517252782455678183016762183008738788480089024393501257273388933048696382893191473380971864607400562876177596455406296997301497242615829502711810429627118846656200547090015229763533153977636943474241999203062862121060232957419265684635531052251611497492411763283621394240068177186079620827069721177011548576290527774353673167659185748564503431357141130295640104749838801441980758303517921333699178040307393084815620427429401727586863777867077755442077834999175074493470541747530274366625057124501604880362507865333416418066793449409738916330085169752184831078613134128555190518934520794599514779828906749715159935069579852034821379670059592523434266967229794709939723275610982789607547481291106085605440431512337516802442451206113468476790990857135185236697624455431131847747324052480827366015288241333531482247491841311395963430784635659160095790534266917584822478468242900391630285450047649841246412519376063994159834754970936740827094071945259774788982206115482917886301302243159076276703365925771499690773491245179428487695735811635556442368590512590682744706981217680810059854994637002698703453884785932955329006846065759600103214791390558749905331935443263874633945128988290811840901894194923677181580693777439880940988123988436357456006661555871171664305150396694034021022602232493016444648442059377361246902354348576796356205006772788789608984721267208260298740761355619433723222827238848826283508237203379961639974372860370204686151037992067467608319001681471430941190729200356632119734323596044430000850630808608811548514823780584662532876366818559452516524187949871221716468943141214535134970361359760126013583055131502103383562704461250066284702061801069842000495257784970081650453199033511164049277313843396875131510153016652203782666270626545459190408591254281792322650655978911545385073336065646150054548743532939092593812040188233906178978584054411843447829093117261977817940860583060582433656590044459031446031017236936240589640008900302998605999939340078378134354357481912742091129475604654101600926152259944100052002829372716618470898706159300014671968303960898774634636302726339030762050569672585581963162860125522376272210240982746702544135237176484085728630386983272504798941165238268213999108133461107203746800722971367829393174577152910578291032311898027375216790983760806642788002218360903226059658540563520846445467429969653154194041411851187109809632459136173028583686399228190858877637613011244624030095476229712455463283008988975538120372296555531074268641680075542726797350744037968076579753614949695949225071261545741564523198346783319940098771803532405758769010093179229690835561300478697130109645019095705491041964289202786107720478309945807396666057303313893240977152217714921680847801895769839881019500549594788758405555089013933613305707161592580381773994998513850763482483680940859268000671505177871052260300197595609774454717710500392558740120991244801371943166836403242185502657548084564530970217390926909639289137708441433558587036719807618831852359268980749116397959655887170707368914247936277709389904993628873001272683929141919234087002015419793985580502607227713302180517872973857100542631420928534732962268933674611522400218950198011349165570296387508041011937954067175290365285483414468585198191832670343749491072501601034631485958699181184269206898258208656734082735562398445829750043617771017979990278213528627120173935484550058862623995933624056946564334328531101043670471623748839482337110069938247475224927578929540341171495479603552181815761908145475520251407603171959763405910918370862551828892667446695649858589675622450053083150855795566715164516453380389016993122797949897206369149581056544588457789448411260141553368388498229329405452918274094986304676594488720618628478366990948750730765648241899600801302332870167041920446505193957759414952281736579921805600675372472700069804055372114580824070292599837000352702800185552803683525541578119974987103178633220463496732301331137429454803661167125947934461884636205883670438072892679624286361333333086131480184267378383098419261526461909882812394100904022113622115956634842023656461566976633247116015955796070462429872687790054067877494758714816091644475969557383550612248890673482519670222307608163751885607907057057975547791466013095592116362264982404610924787118092478260964732399063977799361205371028376855348444018550038195451063222056979054000182259314574595144523898547345401215671252916419070595359720129561097642087358904970598876807057266178363392790568355469305521057359356342123769037222937646944167887933989805858862769639413016630099849666328323821321290232194211673753099398444605443492390686055329939955394545697033300075947124396424827540870563389753226630274940403242081720631688588010147541959888322914817579054347457724317513700404896325236608986216787302982934834079987779636209870780761099517054189113008642004010223113379462823198822640102597676634986959019457802856524530515089480497232404613284733501875109607845910766097497594736410260349648476474937009731406199028617286843903630302587349765334671313124709780690959411603472985169870498707181072797099928136404618292569993995358368457084552465078655458904955227210144963301315820641904101319404335188068725145753911147353183237783392056812064002324927533692509975447876076807899495207548352958239612211192195507838315296198546713769805070391266252047601581641373293716042841127994227288656959585447555394315182822881662278208388691945501387416303200702126236956134438772875719878075597763701466716906912859319283673875013492855771514482709129815268747592003197105941363274352579277084135590075267730188199421164098336093539429219633036695570214466922429025648776507820861479631698869079422284636689642349786747772343293013962998729297949240986760918775170397694008003707125326698521038077865322420371755880271326643853639759869400293559876059412717849616123210091166345924342755612550542587903914010534604350073828413854490327328365537704681137427870715006346584709820975693336060474868508296521623639128720195505745128873318051100814593506397061739405285871130260169300192955460511412339592246721464049612810661257441964674861342348279215593858321982714235601582147120877327857814346940060522835663280775271593827508801519374850699802932303158852897185577985058944672304082489096492485262317913884969156733882990775494080862955691480319342571175595004546070713659375580222214346770043158512431940739411343011423008084153499963277301526393311261719633260997386456054484862679563740681559482380746684267658267209455998470186832141482234481394024248128089469075557629429550200569382777132076345293516808063423189716088700255070402072422713885603470935601422294217069921338589142694501967460137656196081939563957128448872811124855096423957462504752239341057396978924937384407219629370958916570643997172047712910201232426444766450415794054503527228700097702141068245407889495594474388707523224846365392264434642741477842096285511805489123271262723110910112744634189752498087933225544793995590510821794836415131622503948607391610639899126752509859068464387953306822362065253412602371458084366947592492126777814168169315157221080788584858541008796805925246455072691561727971542169999103998658315693751607659723578970863004543720040006742593129307639992404911180018019592831597270020315425263522479362419223802750863894736763752238540904845165202268329548737102100798585314149801585869505112930987342941130392698456009139998511784093963846870904087309735397581516198520553553225622751087548200271206788005259227708815541317924752043711999975516789295412337563236740480321934146414112309825445733987577430790288525519782360266855884665731093210392279438150562197557732672469660151795772341833675467764276148569912279275919140692895151691461055284116112115941526684799831062737396055870586462417263801577695336779147865865533895042721390875536126659370707343711262512471613137491177669107342703009885078988160245398374660124053182918570652150762748595255019452234654499424878101010029254202457461292821893532126691955664242010153877036978512583412705669020163293275197015441863297995446210322311056895712665830594971578741181674357169172731535105104617475243035333424447520624272918112296448559822577482665452331901464221649991559146873915717840334426317086792387960906563480361811786263206198194449477852081222661824022435081526322154637202544001650647792921859682669500564470000874042284471263977007855298258682983336173443408664572712730117554199990806333015492862566417106102618774201255406798615388336192585755449129248925120064420988359173589201000803249628891974722818335005714337938946722026610737824440310507039475956748157813673280868595029858660537287370142484132805297540403726647202809979744573604004325554874260457014839094946213065778789824416498422044826007253748977517445924486924814562144111601956267828835721663504901006435830345334443094790279772008974479053430382706427312446789514752511287661822147466282600327912277349047349107231989749855033578060798587462506837088449384589348535120216981619975417729431959937631867112095468813752598202620096645742421558353588102041125762777718283263203409532927058367787142255306217828075584814801591192617099769001034241183860475976576794145668340267412047719156309447184303986110694154744103954883967103986738481051001094394380922275542259547417222399044152649384687557930260419575696075047423650702440604332678700392078525147496613349427329474104928990670268689977479670599101229438322720568465427351707559630925879297839445220834728384983824927391136190602937750422417094322333527777816565670578190408025419734898459254995566600770866520960216876852065013576612430333612400838358427104089171962244042522984171706480374555155009118200920815977179315290427291503091070920035188569488207240665138984955995470064970326966571436801642912547209368351358422906851417658156490668699340228544752645099124947978390823669041409162527463924140791800840271187060182758063429917226330383560292238431830050394831371207014699820614793606669500472294323258583368695287073268638395640145992157652183841630301481928072739336267369996040405870344683012978869446716107168199642031031624553791095135410361608523812741178827536619996299427722568175392483096290559340282828881017196391495514210922433332845357583788948627509289154974187753203738045704480721507611208822633681035532675422609527201233643562296000091801538952606857079553100000844357870277408552631075297418295088821652430417159671023720895028623919604805109711602475421088473043195567021222979459805276442821857990664407210805150899363540716694029557224246275156133551707213744334967853729287111978885884688210962324421492232341185032512433975671337807090798497215579475031586585925368187439417354461065932951314530826589481156053144128226858493642097261464850797278905778616322439598204225713636182072106442004913883365092861790341402835357475796860376126981751071103858114520358684744682438146789700863161927051580669706371317286957454812341776087346761140552908592548310795413486574413201282133294057822107016807836792701443173346444517042374377359594286765651686827164340015846713329183615790334694162096135685477365318709039230450514793288917866297553821751802682849311522202787293656637728876294253452909187688175040775709223922809991766729503136065456892211235369118509085369663717769572299283031348211921885149447618156602516967100395606798853889037306514863318446618470606123116246403463301758673338305731630911721891265097209544867126604113512109003766156469524372864076526454780057392504087234330422803041137475329211036705464804174696879211038559151185962684601199734049283462591769353694947690879953892550851409733969997185719804526769402220594400259814726623336298998837544692805886698110065428539008206709283535307148146907896508042296447183997806063921783505750792936570770737668039730082097113647716530201362956952208434627161480799656867097894825166157322264291846739585071706522463889275287142860397765624408222990900602743216898759200811515436345800189557089591385624396354483034668248561860887519577841178490683531739088149806513916954620712855888484486407510196774698632838549631511065856224771853659274123847057078460012727885761702656010838970142010372882627637631096973379336187039938388073125382473958323777162284964316153489091274775424347340139558444487982394910247822091069158093712598218953464099607766203385245073891199681092064567415605740644524997852075252848789812106163163560760986583111050791144459432557146681926169804452277726905479263229518999483856404245165444355794943635458226182860327608595525570628297272460860809225396720350455360110109010302344431674757676652857222333725644279160655143792977629710736266173628896233573081760124561778085459999983616499064101974601917310286008202805548730747344642845500556958186154437196849320442455131055019513509406757204564235885059962255615617534680060106542420689347307443791034800500519582965585298070897987361152794048789587677478279614288345401902883279552647166767866400020431416552545591314910607625608987582543110076481330914857553995526777992776945851514133785712864531587850101188566020907348324450702760117587438363059286432742498894561902007749709493120690187897108059840826696198031507379854995392414871026248574667922322917737999016005728091826272633957101159881369405003221782850260841306291772372837410010167777037035898432270275545842347932950337835135760259989243807164006976373587201443650916328784642507969550498349845654170282162062771243981079053010113194121122919952593342854885072712760178174262732963572725564150193575140581982817463144184336876330610160867145479293531116242460255772493661315097729375390412380681155669465482340193964210133767665121895898370612572854739477425285837220620676965593953882796610459633285625432503701581351671934500915542037057308848812188041248990710415151095250030945852788552705426216593491117976920605351258202158146863612046642307446556633713452425506556404730031310354244497835349372704627583059353213625693597587819977441949849543253144348846841295885991576080967405392212828069209069679121178161971344041276839665538853502773316749524564972386451660836561459160141642888536004640393951001681267997956363722172738843211767157737136234125885367433593233138188120692111338782907690002526734106588553901834902343996988788547110683749725259255234604566681474182347736871366113059192969016115194104458034394072816290219920625295411456826683738460027994223088733887327173211718494565154997360590146601584787246997472946750716028809765943856920906910919014351323371187358757989971364193865302724139054540786474732523399414122578098562440125451900333064381159728752346346925342735633256087711756261539034414008111335603396345620447330865121728964197156500832609715516025352469450134453807756549814402466606314428395157385860937187768205313281504407098155343809213040099875511692626214550449917312323807443950566354910675699668328817421972993986384866662938962576883764240155092215994244375871785840547583987307938639286742913816848843328158091327743160508552708413021011241845023825077669493985872921789751227017936903371260225902054449946720979937460515938921551145327608643149022743075032984002983182289682050076371773677375421778445050692833737426204874928865135527486864467994487390576254842859450141686848754892765334899731114577837711784467180245208457129789628417795542536031400390659903062342136894196055387670981558468270829040229090433863369020717297589219152765904038906139503669819362846648559973091081945851339193860649191256178639148894471463604693991124640958227706843916813007659245700701987164839719780027306938703790193217843463201500471404659686479806449841759744004887474615372694416207454651237937824742977291988049204798209668610029109070112509423470176174243895909276440742674426477025840739772488020217614979047682994137542879330624103550005106134822457794388473942744731074074941282360720252807822671252379253265868399545299646284945155046587466703666395673525283582074207149603997234547007335930961872274062704406220407459187014531068350978627201019997434488737450350389407062813785083341585815581103969226697242242848111915862259637782850282853799604469842957514608113259289647046611022664151751515699714384284399409160015266835987833774803029181477564189998160920285767328778990844688784269253136925830200943209513324073117149078021135305629921727291722163148584565675712921654021946742419765483760646334813078864535122744701972398100555764123810218669151161202887671815618485373092711400175378525762489541267416178841562633453978417466005523972395050682051272090669652298237472860223139250613340622142317350182010089006999899845373464486984363033230784124303129191215679400653631973555655970041856471370919053583660670492708167648127780427777935629577975147873627623450687234843949346698499926548128524189140151816966505340864863655961282807115646800701158207130100105363267925238137700318450998866853110623327415943299208215717212178554898612621250318408174366246711374777302110691207511472575025324010504895375343625467436636137436043638144665878668982041814815763030014736336328183564262818454405685152137941208956136501435852204428799920240555711751705309529741834829733917569089524023430714566114328897697300990505174609412575306716930520196472797593173651560351359314176480196201522524022857932240229335921137000131107097389949793256738503120200686119176974737427657735141674014636547797957195647671325144207381302917120443520018781840983307130667832198247425648285715944266739980757199098641201841264971211046728115527372989948455929224291420617178292591600753009235367913828582385814632556396407105893406419216533043262704431105155620497514779572112694941287236851935340620010985257806247893718645483699451985376073752631466319635204956500961461644721651148393583882560495184247291977249648427777035210569252107981553214740613657894740334711749277756886514851232773312494977931113944746129333489424238939629648954873574931065296599799037559937880611482771231713357396551752891006008898495502753505996315350459932402718762739929544514403024328890950305021160026270114429757487506348954904401540884641386772182539877688217226468796270700967159149472539788134198078502154326810749402313451173100485977750002687902469524356928724559198421333603458840796970238454221174608952156695035895005562280233860297836420201105675463729972720983610975299495914949240532948872163586402356597332011595085440491764697093047068063163028056084079614135297463856890712576300916015243345356295369306363666688291140971149941001969190126779283235759063948424155446912980554179851888293619044140196065665519256052472345238056096029640526800769111396594276906160713605888491089963917490782084163397615892159053029765093516947839858418713218800298993248200857481541661679736061653431291708836838100378785163240615844068881960603040096431160760097287037260825446639923124787163479352697335694159683296213839391257041289547776454047487130072550332277963434336979119652037423717806954066865492344490153143835727153175359115479704848076344746686171337016135914320235109132277724589560446445090650208548245153449381866062539850241825542759745823905576793494020966462761170196933828855101409265025871403964756371789134555987736667025644189319092422510704680116313975353180060301257463802992231151204066962382893897049949240012870572960528796878410993534821821252459585764377466695075964276425069091706240291857027704126055075996239549841626576126223339892789211625596026816385809877946000828021627955263226988294363353180322604291458393801037688618556564147979245263153949097323982781355504828510695959482260137053236519361032369151952737011337052047826351653544095324716193404513686873742759749733523658474652520282211084989626135953895927469459995266149438743146924555070626523622446901244163786616989813288127416834197624122591294407739729887295203883270679671876169624174848529005393875381006155414067513624545273827812960462342929749979358961731480922316332247960447246415423134925221850601549194845369686548533072567244382259891656330856168764358396492580804042063664053198080536518909850951878089804644687733479509753989236126251854691125161614629273416002779336384989777496379731000641680470355398553337034866979420315781991020089225857214983367115261399686004188845475409350135756599775545301665308907985884450627203830770434140437695290824619637852743127812780810557929446094748883761500962154319951689143075386244827849057964941537952665946812057238197370461870015255276908415741901131359338661676763915346341120533694423381537503519740169503913322650499291845797802910666112180227053739449212216634393917348725854925303936861478817979940688654625393519480148136651069338930653812739655624941675187000091725843341322177615409284453690948988630176836451049958245334304796505318699895432420363095863443065067083193281471333118440378606896679391514336482404082253414218708431769939092523217365150319354800395226792258839407036091050848249292511910593790676911787067455055275482022054666413342447791436785977512880214374369653055998192591685061466752759319409159672896589005264312512837937559559023006611620300068936587380379139458210550590082993199006901175955737574139215325690282490807969032833592117357210351018431952734787856460742190199734527828978189599428649840439708396924674200309565474374456854258413773964291284797982280398109798436988383778605016431325752284476534346166041746957173190072502309970763900973749835296253911718183295456900619136949120760430065614522971381434864465907599608555286653466700164597081897596136174281477438104230852330060603406705017083756831750711737350129406925060039899656728879708625199176914146312729969191530846775413110712736826343911069700869431642600385746686575657728134842774855975929380704490461546328555274505530232689605368860491769226830313958353605389793548085301723527614846148235109257022830999303395930861961664168417959915813904325644716558925312591433808710596439469657316558689452595453564945111298641495985005644348027570577750268650160260298368345892702972766278782749449315149578768626296064296462307332905385535605931244675727487273077315138462552809502857160303519533281061173897856317718631203923521186792572372169516655720549045155265524239142797461681452650354697796841649389747773048763879682946380512528392957253653404611753500351887663233774617789575466703071228051193688408627793412915643050524319858079197363156925107984876866177289311771428853438975083239994192936181218706342353519824160059659361425338485158582356029622016508776748232346822259851558270124696390330149255803097439751074443014694597322080138658208759845796415373591202065374627181667037293414601741447892085356990202214417609062790995578742781569033670534008075613304040066651548480007391867290140692304115221544045593188797928794995191923127894816619345498464108543481355470069511883124830292460772854273332684650421928150922287430624723177181581950311104537607365901357406375873053252701464699246047025235736670013083699334960695008494779639346259116048037525556194515051762775081983809297829444834423074718103154202014838083518313780238732220506850881557713014318606547698957865605852669343245472238920350091804167954237501178404946082743408081773588169450082245374561196643165148437962954235669651690643321548710487381957399026956697837614925974807389730152583844699079818184331839377293727526481562666279127148974150176558328989363453543931993846160404497724289770257108598355699674858497412840386291882236304045825477180541569587982287563487609347333673395498221660245884606996503549287323983179809379016378419697205526010921641268851602617094799488922272974609413281797378399588265826121879630854493966615654849690906110546116397496832693060798338515614944396641175929413839708303878258962808766414392754034216724653281672336252812617291539315922980312734434108772113331089701055961823639257660171452013951780607224480117158760183526695570120933981132729078948881862009842952747169678157438498910775425392824796686809600003318243071279086583489557424223446080029503721015417031793413864483584543090017362780500899957083789516755056813588595324569952465338626242309225983565086803059148173698575714719688603823040526170836125273343442674418849692982099136380237063311553811072950810726930525790528871270517695260689433390874440222768374208538752497970724358937081835340687130759874498549714478066727572100699111309597652232046541290303451796823706835153766559582560238867257963694212820832889541800026302210121296791965697439810517402150080908935226366263794133566630243632164076851126575705047695831328347889733374795971787568170690515200158660668843854911773914493853073356448348187727030430301067097319840074805659125354668284290316439192733723929364609561379390687775044537061355522836703324934490214847314277054756048459098471709498237623994919972823914231111604952460488378746338388779856440774962865268925684417299399098122427854583347848120949957050844901439116562613953649661869033263303524707392819493831578642422384626867873681787765634631121226736465885769315909770942011584791090170457538305721439428297472377395119074566945199639447558164362201420264736078726885807397929372790976167861841595075879470564908110767632672896232632774593413290440402226910209155667146856088027577978328784196933018211811279470088965065711374545924303104084834250949104338746815120456758024000023431342644301597594333649296300197065562334464159647089998148977663609268283063527207085280594464539314728666976979974527741674404173186495951342465392000904975166923686347108352766690431229377757274165944973615014363600837332897620522806565641514333278398129230095529012791012159738669651945015123262616187438837156784044050659580685683900365037264001338323148957639355799992508975485608365781146844408829714475728335232521311756608129954725100355499710277613687680238724495117067389050922559109406066915707171904521476599689221239652278298660740624199287433260218515405185112110224339395037541544308669736153305513393345727093928986590859075792578845688846214252366833827528095200830796086631448862674683539593894959965171645866349970567264523722398769127282405431329096922625195558104807720338479014574155649333064745715377556975475958045423986185891905925691769947412292980135909718078349004058093103710050599229874072125521568636896252789421590602239678690794899128786973369107796094064309336298077235731571112999999979594982473462729217910917190198955420269754582428594171040319166375576687760350396799767528019125977062674600623751316656266439226132077083756437971186028832018930223661118285954260037023631374393964029070835633704155980723477906467488343008176251401260691393359555455407891253623787834403414962735269846637754165716763682847074776741822441814534644678640493784030028658218328285704088798965160101659077985470622130171307515760456121262471291494025838700920971517273206980287907867764353413862955367317929745238288280400266789722092988138511882695585988628251052710341937962822150877083634197497886415584517680352645746184891234762827006847013084614074577002276226503068502900572531965163035718099519292671847597207014078409727674440506175800136782182745653540282922654237064989900503623507737801520581393200685492792317349829242187822257199982016668680531884923047995352024662434035575896408825511042953031956414705761869351555998802519256102217796941850676810820564837184228758237115388468477583686497088261291327842535664782435332543226614952300975063046211596376721914890613401625120496030212446629294626726851458572395755543029788965289194402171054810264174008999657065421146560717404424938666131089851313179646811721273124266876667799782186069511711252557769210427246414925803496452144082528087691557754737995157244739752644955037225069616415563962400696847374205692997292197711934241827909915493239173251203503346256471523837271600431363494870610152465155599777913737881300896942032536275776614132972034204645622986091322302123801573026341769231125778638853011874362295116821733326589806788065295076729602644440520466109986643882336161752839338670365549565392349225362006171181574510232274722368370905973419273045585741421896665727785512298825381294973244655026892474434868790059508690881130668037651116246822557293111323713731800289874670408650207475623785174182593822187581782625951059453348507946094222614562800091710557858284080632236084837579341278256137613533676022836606461332165685203541285290928047632398641611837942175085821472291049587341360582602712203326686411798233139991648842668261772855017855268670993365341308473884669788998384624306725495359608778983779200155062606811302235743177861075860959233646740846589228756726748291622540437620932922515969458391526476439767508570910947734361514680374045324418659192849193326889907373003159697581747120864748365857365431811833822659100755747556002766740377255784110293908909873542448635755757370808181552876010373703717931156954149584197238813948909067297174743929712901768687568925898773076692478128300725060395467602795750462301908338625750330993765907094395105903666196862052806330879066396270055279334671786209913752877078764788151764273062774950294402563912604518710884448938702808397223851889008850918422165538325399524713178884466645261623459992437117572085395154483552523205279690514844191459020013146106674630437901015743676854166194974727578989876180864381483625599826625485270568280796693169964609546006222807963835996109409567333514701149268824677376330532710801287880699095103259287399904872655735359872430424367183191268007174206578620657585871258312967721948911314071378665389594261449522173819966655407644284683757597378128517864657805245509433835618471565323929396886703997678795129059427556061320134519352730187317864391701866070248527147128956452586368035990239246412758258011394002932448138133455891522864202730192996540848334803480089538047968916445602547882820216790586714094915505916692539664135051191342711201533291365721036590932111712037856535119129446116380771939966184964806249808484189901408321077093868394397758455313561761145858170781779521020139026698304735168602485814532940055863123447495447006872552592527206535081676329197704578352112404943488433243713286678192305503507173657470457835022374207515026168066781395657006612047574971122675856065154817928436218313970983632669272407850776610611865803569575897999144759345855419061816247323271554155217152504943653861043225560069254992404037944708790460834646376912118860955342564502115836484648378633830760451688159269776654731626798819918073696630644333281152775059767861002045887722594753218793750117655591678233084023742942496465645343389546240441539538806864804092279553882413796712843869515659471633887710179006179063950487021556127874105228811442209206931733287699505145404347367932805826820593639548817223776768663391516478830155042365812655710929056263220655284160991200878026741589734009460711651509631369200678160377151108403482546736711751322783125931337430447740357275024783270686319935102208375668203317328149628786301955306009390212358674977105065176525046934208459803815417052141063781664402188861363584363127814121479472095066010535137314635685138902200090427014374957900674746286016721264905497366573843012881569643608137244288524420697397221754362972220996481572994586459660341349956693883789422178851092009918843917101846490436492080595155249165989227264005284416070228757079624795983889644055835212190164237944319827386032145935782969775482400095769784274255120317756380717716973222394691271341318895703537680075276676909771657601600410622343444144293646840956406072810665983452083661911521037875206761483722268422862409125430580963873549151520102920215339786158779768235084110239801468608437209818889798679433307181206390577074402172206276004706249048418010865105350826257255737628519551043770199409342208115714694279784913310013302800837997971635273942428852884073250489956170822609067891754279214469543488323975617452585749527704226478812791370406951735259944011421373439930584446002420841653011093730432460614148293312551109308374828101154505258122647349966544771664067009417816585935505946994693173262705022629077949373577234407472083462012187640938818110832494952196573566381766550550602739901323947714009683750931787311699789768089543824829068352298309372520526926528643343594260272325739239311579620860788091070920248891380782859242657829365926711618644301739263407460021930319157315466926564368461836558610115440834881627159396837465563098177820340759584730488158176048213151680695498250520641213363822498216292356850487958022229914899966351670301999745807161404071430444636863324486476257170579150640105463433460795808667415741869785048641837542165248650630963868811771489408624467231868206427386439955144730000003857796534967186062489822083017077072965655535353663265732246344568312524352687420803510997558651087523571531593544320780634645707202719170780530248572375754583737121800611340441970452889110238998851357315087891272126393506274189542221128233920331825927127692581650553984154721482318653402677184020260984611182842909403645176196261882571924939156025674321407937481008207372417890875890484085859620311081424050861848182638813571017341494417672181572210065836308461485684564680489785817620283668479867164085856642601398664290801685760060049566988653580632478191503994312148972656532114612057126862447634387724136711213055925126636608055757734219879558749031476857763415689781407240067591055934560026571085512631131585259478571712059887239547617115303062175218707909246825462821867246814407847397590252649224159560794182140913709260506707091819315730791957545290287900457196793502261093434962466884907712571670573305364639502917706827033090446768228643956775949912986026373210996380741054756016345459601560037287429549554155713661700354867325009109639390242911881334898013324938372752333983058210971517359947509711003471042507347382781458794267170374804119163541365658527959261687585810164423183132926979344270589258195336532331801062809195417122425038752394989354786534900298119189831381802386872606584935142002238904011628760253005773542653699405312422407228094045084863179024500044761859025398130718330815955290431088797393363932635159813368820030008419882104499054157098586930621476591600364310268275790164191686717778491495918563052718289054200525742635726137612437459602343656749680158414683322602699486702395333116138664205898912314148411844723751137101490622738810631927669013854732136200207175878456734407644333351109058186016593802922750130016485994746577378756488951451687717787290203806903316778548114472032038256584540427310666604540235020305580248895762324528700230249194078664077460954568482230349785473501984866300494116326659095870725097744840690357614973089368373568809618753918468633555222069565246573746047601839291037432900215970072539169108485074011477534370275844844196047452829649318514025574390839278330026639843104176620099721718703544560859247628348140962521924650758529874104394489982679359040471204549688602498727694237942010599830443798211125137902696041254736589739887374446386492999467890637621317475811648809223264446457061366943621474127384904653878920141770946098704344711476264009217746292247722218363475102803250567085409776840762634606615017543554287297389407011814018642656867047574610109748430261324239456113939767241000377306621086412139523223819867170599112059770450852904873383038303650224383394214135763658619636731026015267239961013837883601992625370339672919593143516887176335188822955507422888904248173220801257912147718109091675748179110405907051874336712825892176146707066791772061650029749895798589078108640893522579788251891761142423846406796375475248847172269215251396628982752714984601200048336505739991466274005084379693591146996139870018889494409076927416929463054272535671167976976434917662113887084821529948824083536795320522867674499018546780941914841998690337625540202666969981977641913911054068552360264680210773424665058078221025382390949698820144692545533231622209920790835384568113764403115404216221042799190436527783094531185082168555660698079579297831952840833147322940634012860018805233958151644234274985353883460759994960378075329573673502634957527708703818152122710054118418025920015133779821248482508742331295711358316759248674679755241916907156835300107218331914900433943585881619176097988866537251466707481377089396411743178004674332716734011810277980128245549981729670471015222123261267829285963023858397378716136905199335500081053216680725798625455452813812913465479403843074899285861687078523115074592600173106379634706553435834241729638178225486938882671399342186676341873291239537752540240543294066405114696392714603116170134723342668276382172297367343671591198681187406185921770703197152317949917032753923655546142773798248043312407560614485317437992609693388088242313064512750045549535487669110201668591911002963054016841863751774614934178345619003065013598200773428046540469824145336256481414854830399427483018669487144896734143959188526583347553595438241683134197050679076573827296794289018067566345908055107917179474942418170412639654905502351141468041929665562295123825434289432007635768620743875155860147099788166829915676325750327993954979684801438073061060707946810977117304206547394545146104168062550298361942379320234098410237363076991794562529819422292427895445361651924203515417326870405878460012404958725946190201774180253379834106933997095424330730247198837663251812432230955994187326346857981947897454001221225796170088508972557440269002214299254636122029388172374599377259105369216894487513849538305547542191770688037929936397829971592365062956066145865625438241555759336794727022336126540398762674770832452483790855393143020227280811064396468181871581459021025759386863970209967631343812859828629088020500955496752655616642392988544308112703525187038729816509816934228121071320820788042186525316692840885322839059317320225441907199244592175487858518773021797108437825466563598084718597250658566995168435593907425935068881108812523225815084766090769816546640236251192668299997163768457234239857800777420504317602106916340389790968327918742769621383891121055024093813949694353189959013647871749726228600576468092556680392068451359786677287484684560468753947699399326955704345729723367391420360380012892920977674659077064132156775439375396219105118881184140457336621368082180130127003151482541232984235383665623685168131144675401042915811126165063926925564215593411486562060967217612249643497024500385012243258210065285655878163899151837751967803153020803962232379509974543455203264778641594351668374817147469667934165601466093370537768102924795125985545137354657443018817966762089100996564358311051211191933514270855145882063282037038901963950826440673204532724817105109982605040236939931088019368588037009436345668491397910822815376840545959370683713413931354580920295474805330782503487478989837162135121144485498823728570901094456676499732144776181597120892232262857931086458718880157654387213638645638737753822595866009387117617232912115777537817604190456495944569611222365993299877979465404726168574664826390597841090654412397236685647461042050201705199446056873489908114558256106294774381384405387334602682381653193067096601266221489861564976772237466723732700962154507150547789597961388760146438811699716322642348696945329558821167758066931317702035506687347906017072123712260497677216081403523009635392874240317184865428938949496564580893406924860632332399215231537110520679822488431617643825909424415552468716339985222078563819709733511265625054184221058681489761314995132576381439789456572895829284277999086477247773847051270161800874561083187026637715887664632062828727036535500078577214197801387411348125643322685449519417812353643648572850780184788306071911744992759043903657189956862990973987999824939168197076135241983398946838705103420852065802176936048430248691317553024376387912930281559115906319695996969119973112497930236172949969160426558903517279814466531142371293129354637157496632546299256107139996952400429633057791041845363828949833426901493239834151187025525002994773719733218471446899777574445639360990392291813451154660461554257980605876004511236733956512565269900117827167624954922519693563177043324626398093379608894092585238221856349549154337546122490376493252942723163026930807163826944500658364686473676866620759595068170339910276007974401653231066011629332143085308727697832154778056683598649251535427066345348010967926584811064007510625926205348039495605468872696197243853652175782971180043081593901915999894290092097470924274586013594403999446441316890071977713638958038629690504830761496449566934676170205316929799653707242307081982084554408756939205708890279977270140184639273467548010469698642586790513705228033493078580703360566016923360998678629875119227853957723614625730169844778430832225702411213341165516708912282947050323892114765300895404918263435301460837959057648654847364965671810381779968955956660061875245368813968095928101194403381138716681261939359325136050212456540322199248180825545699032141447611017818553110579838994368612970328510808109475269876132435236816104817354251312288508281407294311647909407968341211624084444908564275532492246690830214844180883382298506056038217497703189789211348245966596733413722243295707230380641241990326179777143190642314441304911490771044895613345715585849256405117604362037460598625834103900950719592037594661526037580903212757286364291143133449613592610702838783862048871687621394217610067300753971008413464083039975900098142092964981382204444116980322796757501973562363469671578892698514580812705090846726610059840975024019761513446797624611182542376972329746542162923372152743968205783911959124312959555628197391249745654724078085318077354559437582513754670931163378836957122358881238398998079199314895104380778331798917296999584915384615251866536562974468892378790950745148284501392483000846020865055344884393795108161265448402431279431566354367062138611974493103438037751494253924342330290475766788523909755460760733553285020598464893200339259099506139629785237007356311450218666040069141096041842396212575373381232780085176728625524538826416619672676235879624586310764646491515228925469911254389403988730125503752911697837912301984209357733706301474505747590239975472580660878436491340352555385580710850624298739884378943699886038598200232041007404782592771332875140956984788287408749969347728015624994554205806816110936812645544115916430240676096877325086231508376016016446555554025792208392687189449680539589971668957637173196129703456554801067036747559947746427354210950141468294360434258523511811861352900926329566284190718275528754041145030552656209573513748125532921720119326288490789798738637972840885725106705354094856150563025869225675253166509491575836195703540292393124267922586236330913037194685196254168106712464803726111130763766039406450419251439236954637978713585787451757088658660875402487190567541314202314027854996911210679757430488745242393555888662406680646680338134330968062432847963560003892155201948037702775710540681970301561310669317286305122746087605621408538429946722551903561138821714514580194161522866266070215675994458056910112614312174802542090855412482743839521023335037250604395433869162236975291295807529389259089657615764869545194353800839417876054078710151434854696841443938193605411286448546047143319957271874512738457115654520919505269651150927111115249667082180054976267304573449870258785652155060699780220829819848816058317296178347623637953121978089627161849631319579467790178524658773801364952149294194189188442584643506790577605164957058315865633272240266691375455191988035384306840406695963249128051117464772072137082866498104646129549672225113520347460508813026247922802620875676136825736334219400138737869244523579043359203424802148991768076074954620981933767309000721998919093767833631268982884466340083283315973838866099745178083265568924286886342792817473975790257718651502572947592290303453881318117602990745860235991278197167073918058590367686527555474338485385280415137956154748366737603185092515009602961274996242453351837446945926450856030651676561685224737509901638258170924004575360396926777019932931676876853605309744930353417719733739677081268780378140173382787166435142486984648472639966735053260066421364182263427808164702674592387612584607686801384395411514307539236654678222887375421133824836307616980198375575143459164534964053765194757559905290013282387509299568440982371928073135440050521269536373225440395627255687612410617679639401022931725971918904034071642481309629011974684430058199454974644134236211553009909195911096743546594558378013124364197623855310363977860925008717970852949309650816574379774200767847913304356332502714399532577424470520519685308458902130231566086377089439215536592505117461299427351676497577666004101961258636812376982977035326059178871850983570462121385407402637633512546289547674309865198034501454404004152456709270336853184098135327125317817163953888626926514859990256492447040513700248359200475181917065634541181358943902919078041147229118422153842695091621454008230055874722595806839878826326418334624330100461008940717440939140136178175642990897865528985943063704522681904397792845226271529514649395586394534960752655633864880239175756536004340055595844233880624846306074772822971468872496141131743053616192849508076520828972413681697120758891871233378482936384402402624442057189319394734480901028920976566833316993668488963629302889593371865870916163650416081132774304330080229959808789386669345936167298219915631957796429880707010184761910964952700157623236064563823674735096755609668965755328269320951171854976258170244799488494477057460095729904858424761539768178205716705473432727076860834538363297912726546611080435303547659564026723589131107898164908432592363922542764706703297893223141896509643253403400646917202663150418305758449697829169564255498162383921673926541246637992542287705398440470103446645369802932127923145408995776187101964063234484759165977427368429330129199946672669767976388711496615544961582313326614450214904115249400470956323268808134269584063304787769395052365033864474875900494704326189358241298744716387715796475888186267482743086981536580784174355489527615201132281329248768137981032746802174211091492676091041749223669860970525842196569200669719352565294992628103703420341301735574413931560073405353941539204833970213270385826378566697245337406674604398316163304801325180721579389000093506032138377249607607163315762060165114616368433371372024547584985677149458015148071638287631119615534968643380344055766698658780896689805062286951419242765201574179681239881670936803837428006670441397258588322770049469770684533497485480848081927035646617750640451527930613649041813258077615074773714265929578271716304173783502011214657244725403451131508752423909978847230480650487039850519220353815980988002871742769970295452889095057997259440443213539737036674181152680281229475783312467942251001291798223080540310923273461688454837795946933219773365081802296637332528985685389689716079595469857692213929601539212568964785869317588409882812560118918651129144910925728493841565815191415316349575413124131889273424023380291000720203903658371555850869877541288690761858952361052887570557971276689386606874349830975680902739871302538720960842203240257338990215867088316079838170569775848345806186431589276737301538929076278727438127297039704779068410178831179495928516757451615585949697673192770687993221612188641855823175526337795649509587317015912566999938921005193038579522283408358240708880342369600752216723887024364260747901251631605118019581170684632456505067112301519543966876189156386357399887930974078175167661025405080112961558908249589137267283761856705555288415375142804851274409469119263310393168302431251318827430579155657383422410808621780785631725632910034479786841350663565378812622381993147953121199057659020563823863319735885223916213065500955951671623591466739068436647611783888325508223207665599919713655691603975262387886691431398261760589003637505915434628071298162900309752247269652384182793418958090268033907389128202870609884213896243396526067977713146596094191346241279715446578952813359363021703336933978289832886222851174699731061334103512913549894999641510212215365730694504125198060662387318289223469681117298223670258139556923273502895905425827611575665354923779638895394963632158174991263811113686852427498821992192404655293396728626540769550782458909074047546265041461060123866085718894405406701339677338241563404041514443862970755459719553910139036743213973851044408973166901416779916728828555893848509457973065839357826114632336723599325941643928742834280995785948351155145751299121205440269325285555246596807694578818741704799517319499993204656798765289781396131466747278663279452529309794467832440602798668978688349403561323720264169996681271152249749241578581585870892856889950114663086288566572261662393115742623934211745561074242029212398712176918651197949693764404572659647538525762524675626267341237832127329590487637955728434660280464697218176050463190388719049173122243399793712237546073866209191975678043272180218502759484540141366619902828875871669564967907625300486366356287053272881394160731527461890435366744195718762252612871991038967249594052936255100558388081459345193822684732085023199060562635216373795149748791111842717856116417923114387792459957605057250122991530035561422877050496615635418304492508395563383299064269530593890565084560157493032641269725150672439898621524411841775572565597698360072193256659431188275129585750075878173680016073129642377348266285924310152719217136099297146347432533298342725177510380415338544302619735753702013693993468149913868806788337098733005097918265856275834385433849757895949096480121288108913335624178001624554286251629158571705303883804601835987116928552376875794655541291666366413722152794117052857369033576996748656479666185912462339879502555527260706312153622862981400771423472808523663919605087031482608966913632572528541987774385707732062446110626753655354637756241960643590666633791831152153687462517270017808121896042805288830355624091143176436274283666964055275403395463061863286678641553735839010974446665908705598266352192783278255724116271126096663979469402458388966371871444022587280859261880463957342449243033223799084796572173404012342073810948618616621915787608101146136566071426666623372309333194685485785701342017074561219386326344685535084900715936701724795842416422273702119326167162573375784496764454610052817566179328209821560793583195460205518157049600752059113567853600813074086414532510912194543716330461943084868085519651690708468670469122506335698619081455634883573900234012414858574622843449496518731943989663706530540968034013900674195320123678695762786270708324124082610410541468863028960951851920344771064836120516004461161723939866177184188142058976951765434365311429059630851802782472451139833188861621500463988569377359415564601097658246120896719618312535984164141117271597570591253918728398474265586143193596100990361358063666728229856656096300181274152937163646430683276723052886385232836712186266507281788197260139352176854165646444613811821348640249243188269865855928820435185215504993472954367501364222058912600918744337817329895630075546536423696976925680472344097065438586881265073948805989395448200840497343791124069537192841398405907330970667540850985063549156553961301504903765490561000951200953299555572372473184107318144478347213496587304474188144350266994116880072720752378606277995790169251157887683327514938999470891743318384706294233269671543418114680258969794971863803073795308394462165396678423501654862458683538398104688720540626512613936062276998291613060547662528324894662510634001472196900307918839013116109643295755799021849506135439176205373912173131186249585126771513848472920546997385177671455275415668470331515286630656857626587338316518646140169265766552718133796900729446273072949218389449236891690761608512550119633830545742800545162069669276857534134984072434669503867575219715884730932949390672558537521518982384981110713837456879399471468312920802882873732760721371486714259701248052137096329233198883729711704520700999230533134014425474204962200897303757353302728833564072593102036856553744960402609877814955440103011391254236613594548042363655626204391264638725574187618910271265849516288937317315113580974504999319175469842278286494104010672704946512871030273377790881975430325801884159902972522111051809583623197501558037642322276803667499908347555656080387804299965501745976305138952714301836292942517720144263539950365119156485842718344238204261273954701148872737242362080461318093544858157310676037072651813491629520409410778312809152218646673343190195475228734056101332281152337257816579014429198798496221081543616577507219702191947750255514730483160536727861419074067958347798752284384912682694846865646900626900613049618449156882981493917708709229589928367012860441860061876709858525351524563812561951025746197665093600468721585051540840140899888547419107850260393587655116452976721724805290455938939726230478084724916888435836928796636624428074393079617424299599375581204196229882758781935868649995558609052553625412085501223393989558274458068046141418389824559418544535876920385419086513689217238955925766767979205299041463879717340692429290407447254972600573702878996856760876236445429617428768392892678064695158254273575763380795421298486434873727808618213879010815917591610143459141551678630298145562479916497645821447392706048957979013902047535239567528735552323072867684094721540662390943025409924584236063339553184229668124406615878299041004941806142916750232014277651074992595574244095647071578292462246690874564574361780660934958575942420637764244268695419527107468752155351863470836147818564528201492648011454839482105392933591769008722922157471520765542687738527548385578281326790098668736507203480907958651841673931407490310235151052631699292587069325618440569397358070950349186357514910045143674355083176334949435942917070258649507078099352585181510889495900008380876676511928832073327940004190744206137361952728259316117359165697234581920844186629167521941150988102996320963318705424182318832240030451974842923145926538340201833537080462899241667457826616156008869892115095795149627032017415353373513486227963056400614163347932605199972306731690201307397444534328481060334542165983444634393880524193058603590025633927449691578230688300566228821102277661375752995619784920413184714649028441528136536279086140636058778325186376894816471534800742723641113493351343649446751984525837152306004891927993361017942942341379556862503634685596515794753738354346304710735167916993054124683373104761133496031119241613793366852252412358781377113344792066425002475425013088419451066524064988915582879711686364558210689305374689008033966495876717107860216923691865013418308925150153906246113600931933960500780413860071492169087219375291868127513240711484306249806192336876678008531038131159082924722090986788432122191524914108160210366812229374701699392688220576068163810185306194237803645977181251470563067655486004709081180470533713555548804744765307067755280688761063990652005748682829308514776986840172505140630820878346932799529158322267273701760042047257553689842441717051995219480852255389800842523916321324581527392304588869701176120569227520051150550044527567391086242145429780649793595129571863010468908077071080780147107047947201921082968438945861841782545063124299966933032371469909122788195894380430228717941908536002132816451368868998582181779341911459379271394818166079594711435655340207178320319041864666554826600996779646101179431194483639108208987890724400191250516788111351687645704917819644337369554900608239980548826036647293093926025048803368739929945144871024676254693918796886502438258351065693255671867981627278268288078895449092502959753392246856386030798215108913371739037580638056441108044801599293811823737966776288178873585241547319800300564947374198634944354646318926012805072089342062625352405501838910942512392126481170876136050318448100912999156623017907958244665671142687904394918378940067374198946312903876382465850052749046220679677231347912424898942424743631457351581541776828801256777987416329365789516257209718329454726461696632476264966983624746029837122014652874289519184432679126640656606764203368073065828574966457987966968998818908872878838233133734411781767806932578592222808412830427014709651978454548805211775545346695127322879866900752577155167456650099765819638311213477015748491576126107248705396122467480724074029438415089357207499528388645077995508212641836663101964541811712709747782227342493684567385578272220463538629816977979945852999246009648718837621221396814672006667325366976501296255611686059407767136423064912776220167975821468065846913454484247304452700198465458331182772058036712247286486122043925296501270354974322444695927578003261198853319021405611762298497496471416936898425738788821662089539699224025635249367665466744212764350649530400616445825510257123461945663431726275618734549384128272428643199223977162369505689797541716451229382904809523002003350040829311991812963284931127816625321041961745153482592167037769407156697970673236604265197261306806463849323652605364380558758891543319740174262138942701578490891979252432570387506000990661785876006457202650052778537882987216551289294740920275804256972864351796214212515963641955818420374960711390794024253379570085881390007616352508706684281270227951832587636726585516050966775288600863620500279965577664995711941375555725951088387392066112743544808138290701201695329465317345463538154861346240426344185610129551814567916416029180145362702198642373415392704715271984811652461160953071579658517520341375823074047183529819453396268714112283049326142527731878674704082460573285414858748092151456977552241807676293616521186904441314825535329166395659725018241618742502207460072267056093891354285153044446553903692536304153525337437250134680399759377381125406842358334463371157995430006167854894913277729850630464250794234305408735027470330638671784898708025835521044710753904104925432080632124012578070946445445195759083309881700663716988888612473338248201146162848059234764705964624327373239569907567320073842693247252341146635943040155034579784687625548140300574719351228979551967170155807260722799491705938703807055482740474864372797568121871045142708501139726765044689722227593869254317587921988398956888695473481623725797492464690667233070439629284763159914674045455720592519512033834340230227193667340241621461366416892048244012123053972605341789319173319942045187066875033077079627140965867124601927894843697433538644848672340402144871580661216068801687490430316684861987015866435300501141483867042996550088046137140654057748896886913307356532402796881647362491207805444348784961558410786174388727143127390712937823318095006771640319196674239650174299139016985400765849677739288805999149435457801025953002776944675678046152487848446888981582403926488017109994367528320530297681886116639171608594987003541692759917906592757054120102967851548899980663218138455860303594044694637843338855767343737281856312270558258261722170395057926885885532697912021072032854440347877284603041772657030974665549312153708505810439098627709077877666931844322484311458401003095505288228523144291721827566607131966166266926817993820662666191451511712337744612552763647355666365711502012567925791974034515783331531744699249092524953959234241151670687846147923161699367897040995219296071540536711956750188503289896899795965240080922278303779603611641961952400004192091585757971230582457289299141222088682110071125404433275522457439557862445671376092665041222757402352697000462234559928290409432754086289220484812035285801954664542479155220518890614837591925413326414691575078440485152426286624279721069064304614942119432484668226193817179259667036500387765766224828337781060941076694388550266114932037079597950666179443659209296591850507442642762645931990527373311651560367764447203106568963559575041383215100585918813791173343514793622213393822675286623197363132138042515641745204006508035112146835084488244637643747161867731196822467732068579490828773590964097854272308378873255492337336011948828388350548617808047990958782862947088082709999497406405592460360003716464020282090014912586045027960068404260628829445239249745410843858675287476391396604270424402328108195463413391605397344593715768857464630541337702122622766657292730884723195955746270256405023219862020464141253664404784700203772560347844623254081473894505172426186276022071061181225730381870839217740630831828087690666337059647186389089423306599348363605109408603695411140733221656124158167224664021558028562485532398440241098817351557798389614465007783338369285803908771870177660694397541454565277435523971367175255122597844974122371887120849401957402033058401718255785661863004383981014492665490885168883637880358651865716004484380385650097066276889548475806761450083590533473147532611438052576396717746001870413960550878774873357023924610093472193750103463394148395032165464285657193241268249314685056994039172527848702424356680805443410137204091661136487684076181695090368132496116431196801275571392340879503337286976431178442960125089883891391460366750431874333220591364427384378034866884399860552924165234086457587285483312972094761036063570562806020480557255383162935860635871026628358289700573112674147325632306477665416708838266891003444067978455500286329355110011641044214532812375071528830077382948742569230290095303641189847884522191206718161716633297560048885473450353226263927371701996426834053389326042192377571225292600989940753711630404550785734778809985482296137620264792032154428368657207377407152402374325099891668267871901704853567291681760302943807276829790023157489948981326201370168014134062312111569790638307601187257754294495090988806013814100520288481832822045469127787383175829736794366123832803775556073276656360077488273141304567375438171870183932076920212378819936489452216948789309426972243966644692817692027935375973013918726886693029895074764846635007020537974167249361093856806579670677326911785094167379180519394836381663477321481178545795194519068569536873944956738587262501132195226613261972051359005583286962342056255306908249931212502926264823240093359038520864099380842084915288657204913750573665406514195926759154153365631102739573215342267148791772739290817888965789751395818688620890857146680392894129056274672525069027443270559898658986057260641455805808700290838616523176203374233153879864450122180600329044158974448827581795924176110158008591667633055686260349467358674189667047366193435208156667829765987926677455480611557516999382948977162067248556242095596559879781117328823273843840911066050512741977987169737270254314868777862690258482062294020876099690448612367486041984031481166277741865811898641875877704178445725927575508953824863359486128100795347843650436629378140101996578286115866219970223384266856822036323809078498828095421101069818675808714800148082935724130980356414673361781203665405186438398356838715392279427700457214616575166581630597375516365218511407040426135099073794714090302912810986593690053446526813038266179069746582633028457672638002109824263050257015514809701773996318915717708048948538706893725078685758275003650435371213665379817337809017849666971767627314313536572436968676122124890502528309969280576230470367886067362424757358037408402191498406610605171020438974810178264366212239482403585799378241555913679592081745839805305677100599085344215594098793468658160903452764008191147514178241497695013699657437485756133243335331809292387899491697849229062606718367390845893510669429786563299751681161495655227394247687368423419695927892219261074497423652670446050420857181422286435634749891403421749017081279102357257807105386857875804107422380719420742012232393568303021595471726587478009057234454437620038977268204074434463670841614173581504578622791483864684548190441848022052943422285719687150113483480524721905097696139853255401036927041270884915437384633453883645617449688455466721506728001285683720259143164812737587599008820853091710013794950737309321153780082805441520897762586704947566484837022032770962521703457816492513647548757590519453110859229935507069367338671257856908966090224872482892544149739533323146959136990347523823381377281843930348788718448675729727609086435067927084123961108716523794925155351506216038345103105002455874455509570199598356962142049798290533042172839955058110436797751413242391144311266923679772219780018076896999130714765572338946096938396112742806935358210871499310049834832615770666441971136134624170373194397422639274613500086544332763312900548928541523567311748640056206880762869236362726508794897889274996504352867252776396591452474260492705715063685501887730195507882411364130681286547995826433921991727041031637610557899826559707095851035254331299585077989897377231192439101797871658972154146316130314825555811710118603037012914292086693355858173490378080276814674882682364392271214230775677004518205393686894521889355401904987077886303712877646933729530886420896658563737438404534719675660410530938401219500353986441895363732313986784862697460402509287307256001810118406908285757425238703048470264122904412720883451035465350489964140344655508185365747079059640281880893372320455357754040762200741382839771577743912647263939176727328993115419114268384206821822508768102178072673296031955539053383894486853240411843123321269439334278323089176156020399486115272765633449494683725549725820398001670156774387823839245934024707648354469988325817932811334200114534651050494655348889412856596650615085509860689633655503905255871732644654161063603357735209553944918582597887819101455526444356844483797029482931570242702245054102641845892832486242281236379652947848692268419294601395103281388549334408992775483835260822863081242399070314363484956112750407856595178463392657848473873526474667055571238994515007123799568394477160966207825693657724276518913369033249715897423596660960310641850606243268431546273578383581577603549780438487734709059091994380111697020932177658915872103337037494798932882251383934833008005484289668185393978677025153829517674128622447668185110757782004531488379597299430376411739832901711792425367731721760263477836421933024070878549820342979870402213947400046813901233315665087642664425357424715103333553148804675601666633859049412275357139931244923358765162917396214194203087799584271570322825122163254816865571867729956102988810690246464354567421809862666614166965128694130134149081311595963703198828634550515228496185727871118371323461922698531121522617956297716227386589340515330887496394319300516214553099516466724571426620479405260540460199284121686614326290263838383937458446223478608799987431594696376397933916396500359640727376146446067522238237810483791525462796124538388037397421708348185895693533318723410283462798158940872453254151063034951695105836380879693912613212079682833080064846196399327807259596872950197869218274088153738873806770875986529203681703334439211509588762321578597129835181372331359042960031040921275296613292284257188431478063154688382443619579858440284137177587595199785529637260345109837832497579561530818373192754249896851553419404016208771416866597090077899856726524825187859609307372549549128846214761420421683088165022063277740408060005872430819392732036928355362288014251768983851612827011600122754921574810046569498379624621243612359363669636534193350277823529084569575040521174631425947561297306336414838266787314735677805557586786879103626264282278112623454496947661884732760758158865533618176973080012478427906688087568571477655310199312569643648870846070570073224129307600235664810254010455369772284173996645225075650166704866731384040787484582904605086213813112975488333350461163432348420868915826467594259228523006946034937861006559535489073620789177969687336770917914070722286911654652422329901831756799758860164091840824039737304053941502096490966233806658436048353633837583670326255083888954599769035274809014215222499161847472262764875414926840762865951912988296903375511103270593498199005293739349648546730183014978473936061624241479481967779131408066831782306025837730888555925740808648739313585932396268492246660446759866585654299178485362240879275565657833643644313519976995673838497830504440322039314382617454240453805853687942192076544871670574750956450658611967370730524351338312646883690864434107897010911148018500090690654832662152906245180942388840644499471493149316906052116996079999449056340998225217712151062707546503949747755738373880948285388603965233582130672674228949758940147776720452018437588832223614000667559462064597132613388761718540927775410302585862377984378845871107075049887623428191730481390309355554568113454110931825701363848773222598790031164229883161555401515885406209590874764748316580402046884678652350985922115429101494287899841393198683493182811121772390838476753008751473400417600950077448831694755037142838654882915706182710163246968930399574973725277793442677329385510435052091007918977755980204758096258999080363886572537578616510286790087847341948496141235247984134135165664603562234760304890771983877454236688346367747507472177669797994574153092306376910603997001077855172119645265820667748102927087309594861647302601392882645389990940105875089990653892375268016803762761961737765683452513367688298494094989916867468314922076433751347872134068092955516470177755062913556560895491045366032360187848456511112437992533685859069611014638964837774463785648454113223807432077088069388218755511492353687915516978950537329347126971229102642156831020007359691924826554284806289855663244717913227256907424057201036513947294167045656777600837799910204285157875965338626372637041873913820250727638921834644745766947900899919318349873911079844299007802204151269736551927893417398535724739747343438972211165390093571575335555178303888813587036965410341810817014745004207079184235737818972268578597183931568695506803240500512891083845466318888631990903840377484167529876838549197195826146833668730675927704790433544543426010194945423049046960425529222951257309749934294428052490737196100794062658292461075195615784716161400308006508266516112761105264240615146079204628179792694430345621769231984308333827418795696247173045603563728212576911040945476998894357935629185011214541597051103053826836791472867575106561355721221170070011130551475448260072182239072943498437707908954823291782143929944974432360623894345990351640308613703473298476004023071079713238290498259628529997108646984179536162239819329166741099887838934459050997776774152534855406123096343933692175346061678251249671246936134710626299527076687335329715080943043318848441490967214699873506968067798455682726940985784164741156701205161027848185483034749506257395150397295927140933027770064640012020281895071224219811094963361556626941806613898149804578374983364411820387872236452316484483179225787195113666479451967966640123303350094690527266566777830112321892220696579843431163577265884652442798019170392091155878764937622403720966284998709886544051560724014017093973774708219680221334228561783547236947059602118833886384493717801605590687222015305117289762091359376517670298150720499991369755126383477678372221072703475784234474223140136217334920534018384891169850900497225334309916962196650343279872012653511247893899281340366788239233556400523834907627804740539737474880817559228397980400870101755819607766896000354251829013696283199980913059499451472224216505680380887892375829644029230358007318580432408377055360041354974795083457746543548967693806148537041992268349579589047068312432089617891598427677936256162874498130541090792699407151259530896309761609570955331003798252442363519129544539469098616523327042439329473562685412622916838259237860648417473591182106876145645443356229676312041304011854579500161667234993699365673483528996279140917428126072940030474347210367633888051610531795571185048361112152567127260648308790146310761035230790390437870391012555202690149092408210022678666380640970866559288790344063440986313875022485841290280239383206180876050331480354517380338527328951997859759293061453617137413621936022614779276934300601486398987846948598226586722856572850130851098024794857510857874254052962560597214846779106974207740323851877381166775000063436210074794515527394106262064084520604764896706737160201602793527860126787141414925974379000332651538765631620142692591182612180458829215009943932640860874748413583901104513644023514593688736638883071421492770148239137869058144852765499152332245265866529559943443416587215709448575945916417634450384160292536957964251311707628219868061871781216006417782231776029065798324920821647418147486813367961194062299596447180999005787654386112239993469667415620466025915940370228042928070980027473361045704640028967859664051227094466178573292904564957183408865271535507978781866646177516283752397406565138483803688751146332664323029239975537178633009222259372744581557483807620589255081607473758758916275400838439893664971525563803565207301105137020818548448096365833636942076900878853020462248734038306249395535260977875213997859044032025047806381468913072339307355983201746513848875748802692109229240628433769814115718942970588903241923724175740515396086013826706227504799480264976390579809072705139614418311619201871179818495828456687203197903343877314074066148212632231517019411296467640290839089898718830445797607642938770809141438593124018359544464442817043744328668393142971811934353825114634759424190659055473935704524434684678492135850073168973756445843039809699887459243085271826179858601102062037604797050535788622242355115965758781114809204979101519812237397397864017202219030769575281120764230164256978411539330292127127295622841874691613425801236350692908200974537129503446130731624769633467145073988553005473859186655426249239327207309212561042055292271520015431565985855423016128544653800394397117148640511367378332614732110025338020857437238485934910104832428786395911090174470482643744650763413013917917413286767708930117386411521928823258013223670583781538492079345567273640683873323038728155753895042620158189795255809135066140279039597101113395077944792445593755025695232861763835855693952944490451794797337802230166554381848659838427576685426096100429123036402708277432528948039854852247577605494916316137950163476397429799108798713858941759847640381848232369975885931422549464120004185087242791693117112213965874071913035753441402342072546249573336086066568408153174101063843941253270169372333872205518992190281914720740927184830213931911042929446629118003145971361030418672197601238842595694932518315227269678619092559816203896538733003734798807074706439969664738757734790843494577498064002359794920193433297059557118146989098934319441880038350626644260888520835040014744448693476770311201977344747181851271456535461463483459779763137064855634000674655208828879021229346736456651786718221372303358034487245825727036181242514633221112653313021075934954641049787090086547694132490485724511049313010223806166237417803796308742324732229057712316750671345450641363855898771038832050125683876827997163275036384248939388237027704661679401637696650138311423166357733031351196627988591588387632876336350991737018710899588318961332219717678282815586906451885472818645838289912831018740681314212872918980428162389457557458079693553566079875871624478308389811379235404155887692124544598338760186676956893336853364958192374953713861278036423325931043524378035627237697248011200050623377692922246655206174391318260193267932999272120177392045975605396720252025416390054522571769185017000655116594620418636556897495075013107516686901745746615734631469171993912356278957301512424272885612154150683350341380585047766139982492819292724838156438541911030313352863240110300758255566825055366513816455038527906259939439333086384163755153300132707309495966446966875843661872933114556727816514279009312200265175711092205818227264841499165167665938428325562698452798273378413774479496271224649701595815039975590538888769371688313551326185759441725276819546831240061447380021627565181926157850853938466909640209451613381915624098486356123023999133120064530804279137566469706808330428990094780190757949054137528771068449996414374901088598332353468925305915413519507000931461359272909235116262452752388794899592530570021327491349365744467218153651961547660081842743752418306602516734215380294457445561184413414544280067514830946391991716865399213870523878519457726555869508241110365036366267193685689363526812464546614379070393504735767926446761512285880767126833085570095673103680239443830840477043726443130151203366093890704133585780641214022078608918763329155820767901437210164452896707020249574070878605031195168135181992813114427985466183108425786121725972979751757828421164879582824754719073880875120198577217666363479349099238144404472319428853945901571288004176800941376150015403078641936142331809054897304226989235905336395962431903448777363382586639674884885656952667297584028672528349513730443128418704637137262639300633908374055113433317844418195006205480039284712744674798497434156617244021465702681934193081774866435380293012040420109317955929907053402602588061950530613079805087726902424829987591341478405486135803655746709414279777366749898725347817706848207843042996265085558345722215470711987036702314397716296761555904629793766087608941473649891236418589429876382627735865596578847188013442571295064807906703432786145878820093900220095850476480653576067771686738489654266488579785671885999762310819984208740443572029460435709817147902604055420196848541698152011180762578076287620763814230235205245451694146053169712515976323419344941717480048398767887340794730144551770693868986516801924109701293083621056570020306040607352442358282533172733645194905284619685869870467535295253870692230628175820366001390951610497361953586063423361750573028768468950702629689176657295944099860121205115496532552422933146025663235781797112915688056326129992836130117248867811591417319868463075089137091407175744592896063342562874155633405130103873010246813317166508975470604403663654360534234529114442464316695688922655465992678590135194245741223506682718785065021078372668125075638021747349710704301233234077872903481570632075666570946600484079058318096737448598956438763594223027052495750281906712088366059137479084556395834233049646080319547602211124360553017854692960388753934723167831700001852608442359392578688374104527310750397798398089763782886798736886471896902039260214712918768521907107797521217377441765735217674377457779883773565588529987234686660452479890642308576388332932628166062524086528147339926683611068402149240140201184638033050980930271764546967744894118575599387956347878367737529867884900659712835243890395698520247577057094370177360016730998594448328607900244567453674155689079562296495070192354743171354118335064253911932043887673407300107740888548466026152809310036158482244636453141687230482484548100049808123411620825817586048759398298928761701663406866249236133003436172819199732203900769755524525408492508636622867567590271244892943377929002908182716454212051422710431426725625046100399936216729797811877227112756501985714889458573429122804712569800726234491406085859911787412827410230814843022626373139901909354614421392857017544953827456965667304074733914128031337316421529323501026803315820097033573303686112276480876205865947770359566519733380014881828898170090777826176541038647300060908009247574188013334389806088042579860438646741843406215934172803914812536639280185930542168548723899646665471684384709787324346500853096408844340253170713970095357344760998727373938469228947547605695886088911888779531042056382004138218542102872015410101118918235537008494454044547702847876737757728975182348311882257083359492491223549557565358534968604872094831314246486537702969360499761588548052385292804939224570261139459235581810938168862768994024763123857970237568135567749103790960730852036380261829560655491271907534492600748486854297881204885413138968603632225619495102115159271444713289345321337661504264132288748273660808238917519444380286403208386257298680930459609479896815693326844101603350203198928199498880581422935732127204438354841642151920221821981362200797858290297220757156294125794188332976289411027675231568966418220136784979796836553485892706118105891716490881298222700824262825162093127111875910721698702512370566302117942665646857763568495488312622961903546864172728561329281829386461664566182648437180954104259341940521997581557200426962563803041619369666652176556442443522082584197844818672573350784276327280645965064716570960812597908277993634887590429125602735815174872225417430306316287711154068694705438782778998782476867839323444484138792958931452193283025682010703707104745221765857333367144780958251076802837481074623038370025161739018220020487598841605578739198378171505775610866427965631173425117378130852154423323248717680381887406490211434769311073087932620991055523024030228380312535821347807585711913212357623444151529380934841556149600330785937230907610765496185327994948074477701705561845431362278842253287451690101859284158454777843920888060406065970640398895364685081196339765555409245691532834607976043947611931470512896805509742009699935900776511901231620920996813664579821106758238924914897654601314086930412775316080332612031621766746054720102085002961089693765162663476122344413837263009397665486353573482254934179125249492673696602562721924828151497752026313161073045179751639140194832947413508884022895069407747792575955427468768128638253600478103598833159038610272763664565930386037586317544188339991447846117286836579134652725971905912170462948944704712331713228521816766479718476169228807231989930494848974855001599929840700695688886120003410213512034198891597460084654967246550556338392045872008965681921745991829445873049837717804606545754306429778969262394035090469177024853113347681087128248162427190297357705948283205578489353956355900655679473604482209783228860632274148001563553716235436397453788828710191728836395466285841027171820880646504171415579754961738775866315538075350294684642849526676174200698652699575834492563066811821051387401893605920869478081112192640160590545940467895494972681813362620420222713478449015549898174034523256628226464287523747049059030508768792545159746902317122026282113188855529175864659327085243269615646003338280567644627160985797217173757623353000936131094048324761219211372169256939988581119297041558630469177684865074279532756227307945706115107722930072892121508316047037470682466879944402580604955310029240082058953855803075747116557427129448062874213438081733657659970049717773989079712502275313980003162517704811980161434702291513489731757331360438643567379612334805624047963807484725837394324021365175977268032613882611040806425118272725419816030403144680190250535818912382781354534525619233289660521597791926193577930924449601547413923405215846265556643188722212456108210622535666538555602477762218404410212460330954934374958429446374943598120597392241107854033565353294073507679642274312350322353387758556532108916103198414085916241184686465423152126216880660121619562831544632421658180116058566090554168612683354922792265529441779143369098333820298265481341218356674494116030138945259691014995843664495715622279626958028427840091318043492585234743563317401227753562373208350582156122554627739857422495836579725293820857112026724793619202975889447067027815139910622401132123330384674653931001025951517640719279728676696654442593440518792446279707378358728114688598785812597291075971294060279974237077456891020648475372989092649411928180735561944743795687916292825469945324200530733654526852518462636894337064457697973193381892161293932523418990456080238871707449225989436785630392644443664240784897589804869185314950424136461965843589092695451820031071948407281100759274311354859341844847220840351773479814996621332457652658074886802932377647935442007442416044121026116131028150359460311499469434656491958143568507185455297384888709594443877617512141277109691218225082754335584987453274925647813414176012084427649021839683107611734958603300412353365555078845345025087729259225633736666697573075829692212102487337105421187470983448434928610793520540010957539568822722491037573034091598394657740282563840698775800032105409956498474644625571635903382684466144876114709667544809854221803655891711174188866350565357522801492698447908905894390269964861377752361163933694637682527190387054582286447162106559921258678221092952577881730286213757603513675061673325434364920619892337417087695924101971216902463116316319679943779534135817341146459679173839656199609301340848362363124345555712897050843568640248637720449877316469993190789941649048117717999447922835650174564513716617499957650371846349452364027468102369986044435604742833302803285495172567351079661421549336078307372387208250996117442813837235438571227005271208273962877312315131084678520962312144104005371938933733828099232281188832392929187128309308973405202413389476564903530247263684485000760971492794938982352482941333164888584568118923127683080005878493677622355662443027515236537988969294559013816771541440293110808964128070006493023924843873833101407871675231922695543142479033023831556316726094431009547696680484065951529526760716533400604854289906847250546498959067908000062044899682882521047986559865891843037311962202198223330920203633573480755181973392500256262758176672182229238050631195264127311239904528857866012038339405405571463654763143905722071513940599996984406050269972498201029809489757331139927831121781005086181730555018802176352111521716035441219453554713258724886480396189900544832526930989733101483080931242707505245868227906336266858083263766740023752294997447315691953221205554769384742435253033230590420335613297302036690070469065194267105194625807380265940448022288598603641216823104120361550594902585308017464900446429144986565393003183950804170787088571460354241600727865807496342774057124196029222398319458209141732676853807761372139668112028232592538572878542256486861006962979950861641365730231554814958061137842350665021923644194129757373155869828796177180823209538869559181591961454479506923590889821115520184805039055511568154930910741742814575014208352620575088445269849773270386996437363506027095040594866242473180225470890471568404921279627704900313393130576926991325156874624352561395832249754794022702552999545523206844554410471703030760160565128702818083897600062517890760273805961951542483868455256817346504919626070185283058719677258433035835467858601493656750615248484359261734633081450420634758984436805853855913891358192531048700037267406802048860760259252425552189273741771723008118821442797179357722023369298352893267016705631015893925347089183003190222825723572671790288063624210821350327015353865371673715422679539809465111928018493253861107750336766098752712760571626456274081626510531854098948567417187866056945686755338923357234282007284824996760808342522772456859584426583014536118410220783077857712473920600000497942418523653296929705361478669460821272253463330063237535256911007213938688339951209324106743792354490881875001789161957594921398999983450043784688656580422473819312800833070736707448106502359232094304410651023588530934114440116529156053783127496905401053602237917806965313309437379218454542630594557532296712456485151736710568319747002802001044617374116157265766665908585876073794011227488611130360414864673377692048727934240363333071670585890210880399553062857369108208607269040743885146951476597414225351044325744212253957181229889386298399702357841774404529808215630378565166708676101999999264974498516612480624880040118965280823183992840891035618342992255347120248086194506188510546365875185661970115173464532426318689085916933360050381560954555833207703055106831670863998826527649400128029311301767791952823397760004467055532435967792519955572610861049820989706097368050009519866954301044955739277977757995361884531068653319325769807145549560252254849671304734875457480685866674555591920094583753430597923925691049300606870153700728635441883120213648683900306096083646925194545476493220939047606483543794305795933650877246123772016676655487683298359861167367603462516580972281970224868278707837572174442618155100337645165086658458612812232434607033244965485577952580639196579036922804950711718100387048009617356370935020709081556330407183933346785680699012531522614834568810144375004735129137027195587697118544139375465343330706258669804485108066610943735076518996709566979907751992201777447513684253049439820691645439828078240450890693347335852823064893671439266631638849773334135693339029541954301322449977262951970109202947276348988006620165122706665702431175541188918603214263171610014718176096050777636279247411161586021164633247162195816389514673110505832362616329719406630770279685762582857301628286892681624473624823899664654884971184813036257255021996806485062281357911941379731096100859434984534519221016806644735122567008976993821064242387034706616929044244814042069682730912395410387915055795817277052001645524840852698316127086145573750004682746469521442156728891529166006419182269738974271318756999722434552708896919622670810524069597820162144576771737557644803996793775099220628673515505128679532655627402700817920504797567623008224151387695882281760242042156025221030835580974559236633936320229149563007289833762885280593601635851481137675840301934155990340842591711194401040565339435268711711943929111068015925989136060668007738511961800575077828525194561777744057502495973087756545173842102839299914765529879879763013029891410628802151048368387013436318547073816418139655332712686586075981172640211502013477089145016992599705595226603679185415433600814769147885194126176650076969808040641631325311252337482785490989425134408299872591355535794567743217508360667345754229055769256207908587238969110532065152931051420030579180035139617378721960955681777241206687724474265034109338629534606135235208474553930400900059273767924145116894776620532717809341765587602581766342421633230582657410010030046918730779926288346359533189652160521861560707922893881016500252155844395414760170104429935297716827125235851130296210636417097872453339947222572562184133175781899987555486283081092261129873343545351597365943544124316634091124041736766518947395842567530262655513429874587307518930440763364032694848285937752574925095048720369898050666979947368967207725639749397583671187240347043479470407063431873058446354138405336489315488367665771908306576989718501603975163955874027898704062376253420829218105743638366056157429198859267046147785865050879420489163388224485155001255766799910416964814526694718969671214336200391975607869965962358344699157895986305925633181375535514996268719731205477768918514735553367196231563225994274471403264702915783220553156795805622489169313940490142271895094914287428211829998607638075608246159199363628099833261047518021600187902741706900438079217521878932449097625862090767930317176712031801074163998761377355519565183964690692188024655789719283231647584576790176505943138090149284240640886794570118862155679568783566539361583380314822574968842934890971300744905644206640828448529991720807191754713983427220085011002498350979816075197856968956848407367187606965033093659394145525281188648899733466502574594746503948021863293973961662592890356643272548117987355848042959586936766054815933950209307633566593345716949548820946541243499583170556314687156303326885624758667352693381715148481197256504564551671730952941941847489968269787331242223246135424969961570643303534083751446454150746818141808482657648275700448091661211401267346920359144848068665142662959499642665419852761585561758551117593268950894032750584984025866587964339291536668060353059713175826420327802344741532080737544987852973142664065369685736730975394116936775811646068331524986028134910554396825107588881585041608125335085636496993741746294969621390741021729188193582684030344317327865121260708046396769408006944603306109728513777630983600073851691113625882474105697011637162307850070508625401573072084216462687546258391118144560633887570807199646823647777310792899065351979818248196160816585300919537915449489993357169851255504759768457147596563406668556473236037149290032798368295110452816815628681032960951979869322476033833470674096737074570248875242322715807117712010744433677403948123896122450500011843957515054211863120298257665960280981702333328114013709294760356270307238328578573578425846206884996638620719767159092393890626642231572505903097586483482602985922402202227074070750779010430181932924015693395107285712672145260634237075919176704345154208550759457273631835529704556908977571766563277473424431790924038134677974391861191719082865312772856608756001423013932048931637545581785137645246528350080401187618546334655758991161505845792631670847339719962965361140217484131685641222567859535848200736810647747183459143650553761881514879832831778642449131295826962009899085833487015060180319087546654233683527897963292138936327697765247726870713552785520117754406432462493131144028838981043002646824667027685151155057186248442199761552658462938078783090333123106709875424964531989474967134239260827081015689818655565382459720090909148781246162278912371597668878378495238615159200831786785587092711799582524862165738046887200158957038509521904183222282625213183926226493094372735458462942485928480760224580587559839465332008424688328154082163724097904188689269608816922630508142039972094451188589237925107202162407388939169352098809169907764079346517806034386464848578612988335496797937799038379521795655155690186617314571260891744910795881243414687793527004912255622981979440250077648580542159822203248578609905940911516418821453553623102988154465249829315164744929573290825885686929702331683750180712164130733588031959963952207801959655858722694533669050153902074338441772561433515459574566405300370464261888395432335093122833518328759690586367119967153617283383352568426171548457626911098252304829625814917593113289200954896085963644414627297543212141066029721419698001942821493235334720171912065633851142281187105681141332974068515094639194672363130931783788192735225707054600766824652115539468916391997265624842918034931873805895578933437812797302657733318972294607992487990215757572046824214729760969229221597135585102727161768234662822721446266462784169449676441139696909130492604827426404219593528807721739477901567305698908906890600479859237731036577460180811600842016820049914702470078329750741289133646771729456821654920443084408915457976403758859694776725051442106966508521693722308683490359293743845351450484849737935036886107943296502013077119492051964041667942473845314117002556593101973604578378359670484095469227250503074843454702427609395210886877532145977505629586568930291968079736724369036591967050626936335065767435247578900491277649703709702836218685865291672784568742926224072314573635389176133174268747426918391844904915990193084162847818992178276998092071878955942465644907115562421691590133635697338346969199645104392272955490958368564084899956225573754952688579749728850748202876765742503361251244934790739051118436725873369264832028853333864737146962075212458299710370704658860743092183420162691278224131462392285248554921823612505996873304649474252705839545802043264143378723560960230393831945444686762209848169753995819131463954817233381781771402213309583257462910774849340509328756904695431415610533530019954408273090337372109104171635179672970968106776836351354675968461187201372192386613730953567747556251210817418106184923448914923044516260045665901572549027620324919444389452832909281064612688615129138351578584569817485296979223960747119949565679474642518777137284511556618272108710959463028813946176727242075328898484413189964191408991257351769765067091341968884791574921937508761228355640306602166745321294401150467688289233543971553845801969699575663076445398841243219636547696196625912657826740886037758889664401044902995630187245181938764666304717117684114726556202190314832373863640229174417073655936448612900459274289664977324176344814620227374778802091571512409638378680063918717306790917248397565373251991689442913923229559594402210703580977013105698851619509356304342978077981038987800896883818613140519469850473196646381767992738454895925481829936779406858192094799601716060696020386638878867054595261981744624949128273726778979655045979182055454156276527206031577379869616170416910529497123267991951161281166996413924495304725991914403507444011373361721270951060435623531099266168126655350037335956705007066694516106804149882307467492625843852060430459744466775741875508599081972890820608910659595197985340161978142358400241610311111744117035828869463724749762556601826697300109711345374038250065102344285287193080500260272005884169952176896454977174983960213040304645370856129299429599997302217114342339472389310374066881102879922911660254856625000612021146904505280375817443968508043095154069662243910586637957136086722981840803753092856306282237366970460185364699449883241198527637440359381282194350088115016196155379006591306051414494033846807949576022943432347296240517609377922553413780975108328785947967991978107863231314477382858405374820221098310059908821742629572574016714371878351207606883181273668645469173677671512816479821570384523520868162640712780563709510514275328932416103835014841660222102316543929811173270870086521915002254376842469515632481709979451805265845600188084460150223004261891221735700870463912847154817794618924865660548890497485281166636152808854999895206304567152127328084109882582193102064815263930011190823004494572411500698472226674991795602231015557548536687043787194757929176761668183263308803053882168195522741082963102656396522829488730569134165371130221099513667558074238995658381969916201235826965510508966533633368411440871392542105006215648295077737035319624732244232362972779729160464161425345920483245220669787068243289818763890729400955695945805099949750842040064484708763336714449138156648849564659388350259074453631131134767915683499853480929297609580648850839371035622629604658159535868331878359492958366299460963009519106259445368329249444650907615412761577004871825964401252988513168458154054785858816351303958521056962166808835215887898361993175059287607696366292805324146763184174990830913635207418513504906854257902890652425577869602743846931467332958637057402214615948376635677619662049334282426137538051900687654994242920469264317776321927255710165318096569876033346310167139791987844312699700072050979548512203713774974536551508110106489949815539561570327236467782582400718242457823973161616854514769893766793665741521429979995327009648257893008379161920424378960066537395154819189145659073740893143060916431917671289071706312660074417811757196192905187369255223982338126945082065971137451005150291860456805385183636583551009901165086247941988812082825403235437740427659312116800721032186915027992490588958774703262883622329745022874793325323154545528075994492849012273905267224683076667429489291155465929581787942328687484615222533341570943760194290924846850500065018328886677399585917952443552480427085764202212200070638659794342551613405900946812811061906000337340960736328982084965167193408537173231095188208156801256998292981670173668417720704028958283632054695558553566467127413613960305877642222251746954083944578966889600271871103157562551217251543399035549992785931843416355856532396713381625921585365229236821377109521404282788721831117376360376490390399370131323254429969299851671098478969634668712708952415194823909968496340426966134529215799822872913920941585693605295772374789789538045791519390784667924363219244570761754616790878880540044720471911350020353261719213813983046546355243142210800634795300687998109099212672444768204040692439542671944699819111161216879466177609998336199377237499715544900906917337353810521570319446047046733975559671012735020882723095187287391751605742373394611147148742385525239470926266474846077133301270567472444435971284147195710800553139200070658813296718399460153424796231271077883682847309441132000772332845530626283872742452765517564465018234255089240635452681967405058638271208516145359591215870916798925449121912279434672985505873032342382573569052002049592529089797327901211985503063353306898689076078590556169163640982614484925784198115741074574410376397546905091750761027402818896719284683046740307170550549772389650017371863826172399782713013433933461993388967813818796620551227740648855257583018837143579346597857424859618550045752526924438551281476276578325856517743136839137494148168055633257585387328525749312072534447598817355965192059672845838728703034252969120315643165823715576629274973643675150183899397267362023440778710916590098067394731503425006674558622073968518333792356939106694489624382294056393216003001529154378881276839298610494075656202944251722249705693855052973434497319406844860353262078526703393694308755699754714537099171418103886662782586257025090194477846808499327704269087360522484558121444302585652003625506442067773802823828280934242810335375969853842536203308984060674766222273566428983147496081865338182445812612003538049915678439606404529183462814186706355142227913481616833286637038986609725852677888485483738984661816089814751582292973069122305288377206786540723968769094581437235054323281944134796985125682745515859824000727453572286302728198718368985636645251544756923488662818496483098224310868921249240853244405587794434706627201335047619864708972832567902726261162867029561183590469346138235104690124498006853419744503378631891106978026937828915412870798507302824185607633288586286968276905908377657767497512616409264840473880117293346190156149058163283507989595998411043800261118840412899598389835789984304676699609006320154689150822943823056680368057643206744753622256689239604983130389549971643898075609170124765771518535460807348139140422248414294399498944385467680292831076619932533113465805902185995921400318971876027460183701203309958701866869444316324156511227522055543803610360463373208976493661862877563543353553367799152389079507948740840270171996697055544079125254788015025717693812441640106254967711410320876460221951956455931092775388570470276454831460159526634414679702224675513501268163908906048100015868848512741208520269428817164993069125382962957748027466267742740286309644083887923554548279170217834474543819591055498315337041686939453829053891545378666508623641964362348677305389626980590570480904909678355965850932949886594098003337377026746032219472825291482337367305012884186110408291924890301756493737053872629785460514862998080439975070411735696141206443339399332600443248401413042978713566393932553009932954658524240544979704136840858289865950235868621978416726114958213105329114205707000479672851924218018485549241221534651074526397585333740288313782499529785176092458856397896578719486838102323985903573441863084369787170174657144097640686404213109564432797192434931230446554597659490133167172081988429046696918729356061499783061312991360191409039741019588751338769480220198467992403705250411624627834975778053711174231270482895899716335667713978843644050157820619426790690050773673367735701343550112699218689113599249365858796587049626397335456068804098210995807972950885897580083459352566508124343871112067363588543098463266034970444006069474309780884698090350025079776747115485901628456853582847711533617704926989840450545568753730358060596860524829171807590856761762980691611982988544741405756231237085806347245960574596343023948255108923029113638451662416246561514767601285436333540011031414092762785636417104042904074327846387768606470383040202630511033367454219680230043124428218898337750529488230269841498167140346236768181846835495145665861603165705049025526796315369243963902821352433476836016675260959090561600600378818328777518413435685447824078816249017813980501568171698424961008389395622556614928689064058218060028941939626839212518550058721766040530317217342276105292199588496199347964960414740914791632544089362421845464604227663033289283149921250889477266274465909899690324885195948903761444469991046032008365583205817356180035995172395073512087703691005251403724548926187327885654767593137272821725197921391781272594985862394373546599589527972559539770435100752370406948091276820587652109510020284984553654423866848245961977330079361392529060331694581651647669476985264581320109547532143985267964267733489875143506518764441264652881506053619258862182551963351082831927145487680254912250920514976537871804371112542592495683068673379218322013551385306031126656848520179317149231703726653227576741886709815016259246664285120965099433165445731779722967434484892519390303754928156753198778912698461396126496132397439413177440005374386189632017175390033080081095800009546194136116761477639188830762808512386401023053955267341582554183555001604218071949169045290823446057747664408780771420229907443314694840284822652881485453222425821006560905976441513176270085613835448469839332713211392072636726918447168698851900017409453395099981984161294754058204230822815218756598753614794426737476617591883633366181089330183692604686359670967078090071111608160813234729050781989735514564944061718512686616905661466742300781657791843617571441162218151008998655888505732678146176401751808480763385848242902090979755872914932079624281546414555201206686622692937500488415531889160947277081833369585407112516169374136941745881198183371914015101946383417959978743161510985059675247401426905048899774210645276278419448995283829167785882245489840878167178517636780152060765647396757220143260299454987833794021587103585786761175343406405862203194799561837818253870068767056679989112743780471756323650586018811240966284645817734034183709313375637825440234299299144938069276952102204812813334515173195781310025398823298681502749965174587848562667611307804978323480948076952404538669717065667999835108769088072470361176195972677631171262007618264382308542545875559485335141822141142327224642932646577258998137328878086015655097702389098313636395370887213096851071903477260079033932404423702089413441104739333918456417299583545545659085720374607205409629929866942335275976179193557637780269338157187396551422862938157433083426681969544489595350517559628654289626717709498882343571192956367510024410124547734128131803300221621592031371365143227151505104700774750431530624471655839414640926103945828058404645348000293652862355804039813212699263769212947589744548824890039111830142436726864581644146742926589566154794458580775552553530514886171724154880894583711779319250981178270294557709243080151537079321496611221860184288322957164505238622239866974318099858411838206010708321224975536235283554432235489191745283716310933543189336230542070217865578309256096368167741974827736227279957486397068220438264683373133851792970873446338958347806676286495655788254309071328079964119756395135602954108484370205370158626991665753244255364512332300874546913503220065813398751326469300792026259859076487247424021196595585806749529296654736209795343598792736817556732670915791235535014260844381111897067379008647443436208363161957011173943615630690432175795252541116424635309028743428080714678825022521238408956244256654286458671555541139548277118842494543785233342860614581009850086574611615659458408942036439899340451329010573770671202907760956292354142859420252488748876653701661124077966808539700123830710149011874364562877551549243514015029818991461939154386106191854113895592611563649187061846072926420773651612736236664635794933302557485562659024496389395137509271969488955552345298568090335851037630940897580745450035632616014581978764826414563843586754369637784501881965143825409832433549182948189200893552951465503024701137007740988664273518573156386054828577652621174376582498397898467012590926421264819887922051557214115253235617629679096365628615178971186411308522252443693488734863457872465648117845966320292616592984443464316726565280206975434498879390196737470690258964979642634286317470293510537692373361599301806579388936196622137010782467266908003832374354033797006300396184045761499869989159072713243651263390265813739094166681036316872698074638542663898464445792280236138138537834644330597357364900481209951329148393448240700415294887435059778431733866321087725472582951573097409538772927475820908815473832944119957696975728635482589048857671339995555582964626078909140101105730645260326649304146559965706666378463827770990840104158544849198123111593163118129672961524475095178317066734853325074343023539296841132955925741182022402516482879168737320920281874332804705578990633706261656208357817243392585982413509405154088139333779477393406195857798164015430141522048660771328077699787659417689966937272542333065926113122972450168762432098173124451946155474413384624401588158206614904890379076298742757501062091266550066743458867689074415471158189965228698282487142571544232280314114838756122413804715932522042857523116559700127680817665373511062520172982212183243766279378162438447680526179945971310239173087965596312136525040618972504344509047519659737857516633769027287432356724024296037428972330444587384075915538710251160792666784134999345147594010918325698673743649938167082796346001653876882906059583204501906457012348375081267099901687754851981867374396031867658415734422535184524885007229913020346715154251290874721194272612204089342305546792778460385318563438821564208956957717651393484094332365982933820663373051216852142236567577837413400505243569506637453183296110325292752045297997306624877360146939073095269072218953142185394770610757364637699784165289123201964384121174824761394296737441958698829506777865913135944002199136659092546656435449553349320847112621978028841276480089692054303577629287207119202601237661802684784562533181871900178066485748532799207322193061433966599609722079405162227170411922864849678359085042132345441191501845304426746613634142762926814187313495234063249544963655926795864070647770431779295810284752695366005995562718161560707608571073955116500079366564473761708993736907866619359229698642803414480922379816351191667728973672108966837233063787819219661249782486851609891669478887370315965552522776492882777136409045316152739876605244022293415058408685395784072352641324884240060772705016241014162815232761793644000621199555566147547250308845767507018227455029139494266242767882552916039182392238666650922814460608403980957992213654475264174935940302675653422263409147474558165261831450062741735515809250182466995619928765325558811571411972904675858873102769204316461440954545966026273101554227640039173168032689548607140582622154797774424025650529421514262920965979553037202723515266811072537088426538890300661294295289893998164192892989235533241209032461604565393265700571865477108905302034813061553443754147427547081880641877007372013857211846369187582810074098356550221043997127903553448764426593359236596364244380264319681292527747835374554649722447928195144504762022528497193907516693503216068028452308258562289004651328100555066566559619775853493101835893965710372004868873207417182270532169870934262983202751588804854844759388165766899599307425214680519632910017520371314685543714085003934280361805017115635039262853495772739391167774347171844661477192469395206566193247979964052434838016863004958107009979750521732076692955998374551348605332855811006315991190129096377131224985868223736816788159877796149575195340902874224883673719054137657844796824587498529878431942382236933775815574899533149252777331332791034223952564024883706480169701979614674918473491675058720610696611756416477574115468308504206773591965614522448395833963778671401667059766675390257131101194282860961120819085162968852328567568814129246470885533083633666886938838375392950971391565212445905886260976856593628363600788934708318401180123642241789309642828875429125103091904517829074544815518452058235286387777397409014910784065924372208332221609754662867945860180447412615489181679907025733866540066241682145189684646218548947293130456506785413785698979465701379331060499374334824433906495809897025030598410870734015387075882666961099938796296650976533171385334103889317109248684049755488309704636356855916309464508860942611241765422385372381321822580133065189453806905925772299242189863245189033789976657275424842007049153068908266850994118758288088950044338372494988509354294928757078923751755567572643489294718453531648562583547354074378752519609652750527735927425635334747514855883192910875573049080994219970366228567248466817346672370593753284757519057888196175064358537727138161400991660466944540371076799199778824701151698818771118846389837544496917761439056975100733009969717065933842709435710241411583747266890930982995880660682445310022907614311535753560619494934284335010668258506829367734150193181633455169098160925647600241851569666164620097525672850958941040252233598378917122217573696075278335027121068084662036173051847284801173741317012691349637363982937704654650370087923018596717956062704916805191086689640455750320301810931310323691102939463139531551198128809574768573682617108751037205816850199439654644918123345632900021048980037097636441487889745832243941126653813912631761138746375583192666488193168195235060189454736777826735072883374120033286685788742381929226598806147420236971583513144067176668946001880333768128476060756033711861626174556124761260669748750591227934080863520139033225214381333343119967888074057733058566967802026962576634859177246911459702739196133982670167363712684358112819532399194142676448758308923353047106753399124916085235537630738048409176737685459300660777881436230606461193591662834586907047781609024231387507507746296233558080080821331986378582486728275869801789528523846880723854112517738714584482417031300899078976025512232894995722507516150166053327061043321339916374488346798188767099980929009920300105091051850085610143395351432904142568126606352409151160282847255321619826590430415982296539419899401649526988659912879907647567580868594010142371862936543944288545754010007414463269986503834185114907593610824620507328309837108170623787756461184414792742229934765557655252780945437600693039139788867417947574940089519518382711498172926733722814395328551889698011076467296709268939920569068122467833197184913730630702525782693420190102194567465270518937496600830726545194897541061338498230778408123783847511358578878447390611553550984318277467758262128750030154379333964277506284373076766057757634841405376623272001679890325414135113332920509048535721234867490941599583477144231049237158171410822379143878391228355865259165795439347685401585695141615013406208959645851293254094044228088668938946208691090854830332641854057278029555530999305975931681756652539936244797866195933351749585538151749083976671576669906914532818934762648346029797577983228971161168338692090609543867033124942792970089833586353290909658153886992693900283989313701336507947076991269981297025424525902463001395440038852791805517453762230971619444345359663929728971270181839133477274047668931245780122285087124323261773603228799932808011766625158015488019480509635124324261557192429811554745734727644715392233404268443605254110859155239834479056950776831102105130985895301465476652025898292814521732811028303375440274301917836204410097912829299713739862014654102597634161770577504792254073916557138093494076624587550653510387410587220978007665707169853597036015449730063971292119880141296128923926353458583102325748673149062992943693166310817553525047653210723862613900292805645659319966776504347412822302543102154189807834322933597747985622285427101802690805750983604566027907166599958263814647178633826200805717952573358225723411732326708587269930481705815312100707760087257208477279529782436259323221775493394018804809555806549506830056387080435018201488197791423824472845336236182862013987405233296464986784618051358399152468752052063126602885321388324340360630738393961889047995537503243589658500354830855202579021070669517732862752396044649181997002525136068228275219461097470659335311472568066401395744482545045446328352362904030730452839492251661285438340075592343159245948448164150689978089151494935135591501063608264034935863307890862839132869167441485898507510548197233520053110064913233479816451155644701375769473638581727705564036937251262949315974221941795263752465378011850776481774976268748139000853754094789266334468592278073572494040975463250569238215505656403690130754974107962591842791990965566483768960157586337415738068433187090308164115214342286944376674599423980961629397554232231467430873004114892462051010852333345274934649887485838497349944221373277275445678980443856966659730176664181444407677235746718568552838824509804453114425090441592163245968098215963450483502529480824915256178179666862630603517478696077402429711834736472786833503014713376990153316168133988769649711375732691566440012580168492401006704405778865197273442583602891648683729957179326302805757184239204064324190867871041250282433282456419308016497458067941256972089288457570320329219962681546063492478265437421355519869609795932160004242178716043641592406504320369765571676686465266496205252588130091724673896391532753314292688698512474864320165064316402197872147194337103490041759101814096966761802758352591966398404090550593890825641913247426289453721086008550183159770275809248770902758448021398251440174503135740598056640517924589963188019349364229876414909274242815362231964764616404829895274592241003244388875718924487148624115453295016499939372498681146148345955082028829555573733639610664200371644973167590288312030348376869761752611810846932710814780366548603354488716223206718403587871132820786602633597927603983001429516002060361355578814192302441043365734842313099516756356728278048410545912755871595580498190271635140500908939617592213527870987168114232833899145444168189535527860244722228458470812163461305261250521309810014816276427691786695964030345338078065679446771838336777751399580389454207170471722671165358072904387528524506071357182965262811140609376182031260707649472531809768000941377233864308687417905102838579121887751897212259434354908971653521834437352113352791879289341600433018642277429578256814441670703158658810365288016748354295827296197811339375815899183668205765797858407523357175713014216190715284621667223937872743223144758404450934270647103673352543955303358021600673070292562957305334668708222998057474273458391691840241948872275534158399316797111025791123294455238297320372732416747623707908042669804564782926714751385261736918748485278739216840573849496998247947715434138962051583547601404393109731513562742750961260314909623130513444927398944990078409682422416015054152621379750075072240599168564680502313609151510870751089534062791713773730048303536503668218713876988345131592641788940692662389409648892176226447541868008707280588720854824645983414022600741231022068455923268449534516746206845056314108533863529753530238940415346589813611031988283615747662707074737064079746644142810872545321748221171738138323546501254874891577178967401262696874382172338448592238880701568748362609840742171141773972179758053907086844986003001454948850002800317610426372004021943393806361089481376997226473923303454858566224920605390685137833142392848942517204014748624626063938152432149485510942158164240364545406954489920435572286360099808535020882130636698303242716840962082214718896468723604799675454483624615236133416639487362881291213701982626766471972411478882978399961194583105619713926745989245928663602546938345276944596967550698427689002762523222126719568057695724868205597301070730309414165357414382056613753698663417002602123358117784607236461975927732131024743469911291724125386195556632750682235016987186436273562083390176514752345409049729771280073636398855210377168968346119558772383622827715692336109457217186872879121186796545508918445323328960269153722693340610408044395602000015314643339995297256995468172732038277602520757304123209424150245894431675670904451052850172208664131442665738395186606715429052151983945275648765592587744429335895824789298015579594671983074708110605853203052286210179074501353602758843308104755086206015722736226896879379650520657409981916168472656881709876717967256363289200806354764253564282615188507426017852725783551561719163258386102177386528493329938000868543282499954512558645186008715315453813231890611118208541052066943709139409239890353748728632972499544582183343917111752375753189272410039704211180522668791970243660928891279503279403055647813830127590688210041735771717613596797698082167883034839718631243915037149146995791979119441759110707197290464162708736393799182630791210485888222142419001546227417762423060158202383388987623649583462802620534357325869196284324736258411229575629277956078900131856047357959834827960369613412888284592865405433873685526060824928126508843409852083931920016173137235734306846167338609015055817382964445056739405710608311327111914149619117214795132985270094651128593590808456061597299605479004050352524548092175178058283921324204886960343348649632355204908757613612282776980616228893018764886877959756305591731679328434206933353521022578004903092581817113420688160024652307077883811820600086196146531231950950071314891466614921604596644362452021206099399261887928097045374736310209534265699507964559014229031770118213702876469815319291683684585333566375894522793480550805050496635894228639385828138041712971603036134903866576219586172915319071296335222201251098922381023583090913018056428883148491943748286986515019998223350171605909695520918684540161161969605470470414931605873264770080931283867119371555284344884230155760297463757239787702263746749901938987666057779665579582928110115924697089001620131261596088930534139872129113053212427693743731500307554919856436368005206184134778297727233729064491554139203274955787134477745626163307604590946062896563252639353706180813965061459599207350223714005885437817077418160763261911323352689987434037054739105278195069909415313302029216519940516624232671575470374789981907481628924185553066585652044104670426793729576826940556386911787987994088540817290515840936926468003958902136245768166980928793965176366708031041887479718089671495068606861518364208305335724527643797254737254373205798811434696261100486031716024275419570281138220204657312053419545428421495587860636077950772376361031988293299712758138284992424431049146867501296212284779987970348398567809631895303033769975273035887159861442355489041921741969225044060974443337911888329780208600680212761592568244072525962567166276700114534805273785600894620785780129716661618441192040170817996268873582114346892022772657556826543368813095226911846599291541658188122961221439331024750250921164464988777234048439385041036396218456112568863565311025511128879498606002109732592718530252858020034291100337759709441743917572705717997012039926506498429123152350091312775406142711333428814624265570123756329202278074513205640385093568200876979474286319131105250842001792242512325512825502807520963312002994061188296775328537866006692575110071675033867847558521568879133224173187572864527705988323229137401786197465698685473694858205938547714021069715484314169142839597482958829011647138504384597102663717741356193048465334599347028364944993072250212807746953521045551458965826648635277235872276199037647150582787329355778800815601795572801844229230739834292769080997234283826888592148358231864606914197861355448455110655608172484096753306486343433491726874413459164742045961607823042859625134934386995304501620546883543908069359185484095495145627023514925082495259894827815427703721505234353067921683725565688985167472192423055274645199363205156955034830748225566065808093389676891623758884482969015559794541796316200808906124958083635778076044284133095908464004134509532472075483966549571680749787593924560109364263169425960892570848433498562388942374159082926980667844039999584466344242951185324726726606552379561183089281081328189655296309005277936651830024929135148841766795017249521784672547123856567995612811975661548622348714280311190791439070013902218672353344885803417556040831823887741182290897266229722437531273843065164145343511050409771329401329906178530237662480922031640791743065224781299803391504967332829517894429425040273779946399485985223819799379735948887457400010075922901785583088667883587575745646518781054622431212829030134094171758464768017346692898120245023804382542025332699975325447596363508534261358346227844926041415731821694536793527589394138475547444469158431799694205304009865141232482166834549199492370336940529750786717080834408189438075207088995018001290554484068034099431511207208581837245150127385309625916846164414353182682656885751295503566432614830857230571940234516009090703133590729693635923135691004776754698753552465339166789892399447299632334103290509520130628262992240998384777777905990428939275686514438216814490925351851540839838072706892413617978299768795903851888753368958342499261556920237206403814341474830485930812336000226449618948169621292059636386755698310565480163721788215849260548964633544981464061823024962130939421215038205583378474114295808231522088895572703509612766883614802491044275945537175186403749262154472928263861109505729849343468599836028555925086631038724599107232661801727096143605255382744523484156735382191491112326591107532896143432977430697969496285701323279746879001551190933239451890742296553605419800730532315444754939598033680292132180257697838512424816652013279208215703086106338402963853157422713111682153583269828060510857361770338936558138256744190468934468151801508732064466644022856144695522767917920804153374309573226016472380007237299236687136303026827427107423881394147096286409248258941971563284285407640721383396910659920306692204497739098335626830596687156480278456869559131509242510016798853554682109003682087126560813534724516145013774923730170831632232832347552850546978952067037060312715875144331917871591490668034124739401382905436541992346986998044043545498195766709989853931501038669242102972901002902516027577386144612976864272133903171809584752481539530466046958675144469599758216457935020959175783199454511933870006616287858413376663034059943985019475765186911316657444623540831474433923890155963432369523772214849117728944820450598187156346901959422873087698838201238846539781481891496645838093195823320386421467090355911432491336224508933534981379429961714144302087955501370622259726966646677400142689045441256025985362695976926481750907017636303224549432293925693355170216400828657316815001323240978305901254672797142482193656033702637575595194796192804841610430525849276533734630748121621293762704382895967778600792364681226080588199777610811643354932044200344879487434863222704951860584848018959150876446236636765027390883924860796934865026091611621266247069527670080421509780928078676210863466996068601908696153750046314211679464919269841935279457628619080867878581782029601156928166087099079754701393069373592618678334291750054373885542058146771514526796562013368673799165906076560589245230387871653217382476989206177137189882153024902678739326379446314684415839398937031692252297404200061162374779713876020065221936093919415307687549846529461507192095106108122154556978600881356773445282809709284869971262645999796326641063251021566613360133745666857397275131018510755143758282373671048879039898429671418295643191529805451405423708818134243257840377579917486158122469651111367336550518236819049908600536683458794662970723313382200045430149218171035112783160613916420964055127903066754030052419762126742582698542837121676159224625137673652105031368397059165929503471080829253781875472329013382088746966518573591687986684943906413193278339195880771650196616983885894919580920085995147119344382450961053986185141135062687881767000687762487701442196495307700832012814594006942121811940167689020951040667819311534072011011816064713950806342995861129084706351110834475892978324948362735885865268884250435931547715191465383044804584390601740708439750838413160160862576133233649864863408565594290707478800464447942045080797785112709113976936679117840180886228989948486141381368373888448085366298757071126571001157777620244640250925507509952605476963945367264983789271054000090081720499651097422510554596171992046468998318117444407061125480893921613429249424507502376494890907450559018053638874002499270854421639148833246212291819951929345612965176603311878886446235406352494339785253152842003106013621643877851574271867500626259905357869560524650149570624310726578587950187875618761218407905232130991429820458589446722575703550273565908131384953289945882680742369813037090544515782138000693147598748742976239796252924364558740890473755364323315283722250718227891730083527240689132328005976724844480926019447682749388791140938778890270223976921419141544457658598817833957718119313372077143057897861147528342496749154306099563851600868476841272228639007895083014976011952831104657426367988255987045132040353981440683497047879373297359275441253915930322734579149117395032707009667134281343838520453472368742055977666499167319829095844233766450037312157389172152335065909690192836541105824777039339350162710926240114381364534743620835668236249190039811428781430495582314742055786866607033092384155601753203602270171120330053169673075288418733071087446989515529338073321060243070932902395139789851529649588912432795508156754161794672949619454427520837286262193518956386263543078426521989042120768380985713742159631925483404263313006403452990603046655090502457124076346829243740443239974971737982284660995328178080467570789230842288475120876075948914805262079273705841766320994558322969894416063579584728797390715613115941044221580032861520562867833522889123333449012618665850972113198900512933046119546556671029884233665926666117103145146422402321753123923763998393296257211389789095175255461518715838192265656302455856473621927546450729340982574267336485975256684324607791294340033046166462868523469363796946803978670734285232979244295929019167422077009973087911684758265343123923330911421922329252586771351673497858349609087260402475478874180641028719504416596137807142955493025018656454889473289238853045437316268169470546493407158579008768724303633435547933129383624653531650390696512863442627584215679937192389915617025637701318237403560904506599273743715364870495588830648764829198839455480553008729654527069363053990353283598476754230732456481765155063002038099884268624653397644189800288903791234702696653307548802044398595647683427395056647173859273070497458424772470927915244845376188102582577165095915196238444574344626462814154018393564010898306546452313344543098886054754387092098371303849711875012786041000435066998585001674480869132255781424816387893344731751801172862933587452078018437166977008832257301299027295514395963590023121247202859156081965022103277153970549227321342906456188810696371996266895603487223937875481761893205312980253783234101873418766551403505754209426313885262050395921653722617855101599087101450922493297322496288383124739159233647441803223846019545325018025418701522953517990220756114360493087013468405849655741321375312532587933331314060313110993585971216154593022564368425987194484472496695240371375759529529728849460172341941632193377749786399016097271112566559257656272116552615389251830883475149452599298541474496889506057792922429878843723005676517977966752755556656198414145079357753483024199967813098372198576035428636359447687075954365488255704726671815326370212370786900665785545287408858470785725574624124934030362046884245136097185472992815368880810954822655421901974941441139776935587117978304243704037499441743797379851871160599108041001394415717071243460425522164590013170416161244782567604106114203801264827809040946898589011960498799334728109887333260139450158038734376554280135731577228064816086781099058546264810078655787971398266037755962666513827195242077228884759866772721905156763049495206352239288428037543798254598045390674921698532331297409331445792065861042968931680457141632040971881232946486558629866548442635684175925097664187749885015085451998357417904159894489759241604480614734673547449719785259681845865633219945033271724708746877752780247796948848552706479264914437165279799298051424420045549639797617385878237558637817113737392690473769831007584164549142353357046713948858687599485110983910660073952535622291073772663024788686162265609143521816367877762863790755732920030512317427382467663076365008903360285591410094683772188497687300868076322793583173879378599440774454790971677475881738499208982355443808822024565300506745618910279173642360601218516309681106190892029276120659808056378812622024256314625518873806657252118244615065605068659592807340828549555342834884116814869583080306965165904129919244345702555819968945721670010480360710600242011824621968774745297817308367880766741971865343839463236793861873019235723738818410275746938317951295095671264155726402865551478290677554827651036661192648494493948837134389792552535793446406755788959287335652677360690658378500731990218557158052368054280938848061480899244831128524432709232691093417215509628627855572522431524679074297919911902919079362138719104527467637994328366111127322422671030143898710071398791873033310301085793432135423294913510278829056032263324639696705279119856688208651152165760425766526188001512008431794859587306788920247347668519194283335756295471244102664621216153809379362045285630560410792310504153675465518355050186812489722512781882486141220310128040997886803974355594344002721423306442023597910450016981818493109794529484159341000019780548085608628740723930257826301276580788223904532768760674269581509713970324502052038025197739893437538732273671733022611722663719691963315400296878977991144111276259637763855065499560664023279314571546676784571950674552454721339439395093041925296463438364760649709323094936983425903689307910247137777149324677407218543571301925536883611396136146020985168809490826335466852734352865745772718082306581948466250213556950518987107843401666911434883197104917403774391517397003115616785806288516405431187902155605602394215223409337581965058598825859269007337261240938186864654620508253281716201288966989720552127183665813120660062421317467505379815895310237142217435919592108417592740752766278169293545280817879252399308258135331524025822359496716972315852124929462080186825402449520161885219096740828456640617447547331467374075064190293565668753442763596048289933392388020644462797115961985405244767359121909057673911731586950117135403193399524025080424578870881900308071821127841135329375861848535525377969992219084213170285226097242831577310855506376740607796084360880826545410646327257290565011707976299766582394661511528976713926495600353170948384010796323267766465463027692241584008982262274746995867084117548049006984169262630206351494087069340565105234723613482829984846653616802344412537385279078697714823237830035299668246185581798657692637281740327744531809514069561366541999470419761583023326412942896438160948426519333775018935487393138819777839506335369977613161769709292693647390604483561248564582713859725277498456324425800312397974049090800872497728496008294327716202683395842796055489827032605001075227332001886558154993081658481611332019148313745990670607961601030549110933937977834907906942251974207665033146981355567452660070720179594833974519658332730299534013698404765110753423100244469508731986508080568442493423321992869018133164546654700773815526193016445727507395754875074294655728100753135509984520420352169109882471476444426609161408473062911637116795071621338076583946996926033979914809266126106354380275608120205991932294819789098489931976518403963999640345556778301618503940326737896885776954028627906544864039682259887517187329685753574894805651083842529532612839867071326820709800347052811155243688793532153275464829160727085761726799866426163236235303427791072884849380757807043224006566613677947309722790460954439387071784281905276088502364106341411899759648377221049299843119791610324620610601818231378930403105581333047497241139779400968672468291451189283464891433463288242745340266018864101484496918276647595721565969774316669849479810943104411497250635169066527332397672877147426363082741725860353570103587787600651945550576022957309007922356426599777128154324838552609475259307462412092988537411516578731509300935349810559106794409767538027577060773283111505720700723093762669332121567511537237784524925688926464441008628531591871472556429776233666364942221121379723580886662061829158681427798782792912167480403238164113005900847835222573033141375368814962285137329348695776774754091733334943082320612323879310869593265713668304799363172789319449389145752781844928649747350916699827451703212799942541416468285928320885130409443241147583493713817353061534887053427628067673541275402143971611671054369650544325164094481220627713664088935992784259470306864214428945915908359307425846268357292868928996512850263369288415532478388310231934534803412186423747005181501904916795880679961389482550701366920064939397335152278738818783726182899413126162385022391403562902616947134147878787695931128482818119509183330828783853771410460999119966276216729140983977535551904470146781730238667460872428149179930353585564197122398999369379850681465499251035052185373871615713536782600880008119606410634322778289342584732099618469216961237766068199108474885650984924148845521680979063122110556757022486561952918474966323745671727706702767077642269596390398197467864481330560347264611186513732650991643544077905697658593215833836349422394190651812250469632105270781077922921636029765167967952113081816770985634235321838771566206332613891470062364543907429077652837381121144089328095097594100901213481439263856120468213808931502964599092964697548133835801352834898103729325859994812941685422623750383397172497531175942089655278335637138858930110400803491456214721180583748454926800847861831184594854628454322203165627832503369905104908295401174049156127620814534072702448423395639755535003674774412503677705794268427310829091349975938949387538679090587236370038785397980781376742747523201229243824111114547870176816240940812731558582916915730590959934249067240626008432436105153307116442322325909442395587377817795037933388700157191140679216273423104417883940774954544543669605158669337975160839762203006027125308019432264528778495135232361589606882229124044721079069530686010918489111531981993637990534382752010166445385214290728424335545001774952601037981962448674421225656195878653334930108640829170552010902039125237944989085784878750104257444638335672301454270733123076423778391423667972108405519290824990934044210490865137413607798577939730078448369757245448264372218554095727133572129280500525787308413845417567871441518685554013062215936273188032985121180467568801621192932544164170878480187368931334712643947540054263231861977240433605462202610589152705120718894967632625356159578877036295053770276948687923832947600469413200756944011293308952883874853326562149085523265762506746590300546857121803516477505948555822357769612428921124766846007363590014262161134949262432846749312113377941773554243470657280772869202868110833135940880408059906133295865899984971460475433991238952338639102234557008630624006508476498776919024310000554324229364392449913544196870619208839361359659251571532993176897888175204507654044749970376786235154985152478382138712018175148665343119588169505595723932440493725014435804760106770467793707847102380808353358875016975001069272043219936649616280198432219249635652851736256757641187626646184365205416965752394663491957459399615749670807940921205098947676230864496253460223727129381447948252231675460790605096759503285558515175129923652563549674528163107527795824024885300681891340184682385754431925441650136332434675928056917213833652096811334853659165983381202679005140072329252980337521346686726268082669861185098016203816299786984158989571430035098514258568774041856474921700917096444710439875911135569544302308931746176336458263904790300660463811951347915764468194198033238930477092135319225343541343635216379652198055207698747767052353787639871125062160854239414059887577350319765870077069672736156806316482175444408720433588176578741455683274612016168988849539742795209224506346952156868853530116334872918068318297651565407956656778754434158320034669794191917198795038730511000162445302317539281336709687594987263978049592792220102288917341890989719549867505691194061806927086816713907392965350384896338454250969188063513759603773642233772694223959202619717381941083180607881315293940229369676201716041458571800077498202861099476172263915047432292571752324196406396285571029210584413262446641686471255031453927422297153028764731811074410636875748191217127156468106580755568809825457416667924699709838238126174447786419046469475978636490843551018334406628456526732770373592581427513196477525727216291987208644463340203120262244527325308855208059773744610799435168748220842860308812624646311679603471331958397871021546015956734024905811165200883291931667893257544180482790672549726246549872518300302582365400841662451226421554013737908762961789000885760055061822949036613396216564487426147809462926774658777763998814914971063051434142540541497450645682490162963491411955509994941376317116307755712217150964729795557664822700710886328787856296881202494095368529846071451688698058574085049814358642847031075696579928749720839374242643736464225448476036845812954978195669324716316267679590029123907660691001446260498436048829612621499992025852750976139012634870548922620604402294120763897617993084073477995251623651605603143630982947493294865066396058311215950015282526515992485592885569386916901764925570969642180012214720682137168600805464964230182393962700141646147952481031285314002399723333984992408759267298538051766137288037858337098518015764341615618421867348027181701497901288869924585380420176339095319180174366106396488061221584573307780580126371244514834845862560432246948951332855540353932442022240096618204552873734469964681969152893043171314006399143462142062714476550772517378772986506371741071363299154789202926314769629099223183967129959657079633593819065535056712649710044932368553405187608963480978714768448581851152983761119740145736704666029396982631135060835115084333672458982105158037369524349372401382033122951258701480941554151141697783211140929061192163483015744463115908065915048094137721851232713800711625281528043089032821319370623111042934269439298284902850066561075780190776326117190573645746855231740118666641752395047672815396748194216051417875311281608800638946130829853234921327805432805200060829821112031455565006300476685462833265967117501318784177490460812177554394841880498956763904048542692017310919195198185950325501975307538943895814492853522857476128335616490880909044766100027351888471010758262109617882184994901545469902529356492497225484735678727732592379328919750520083029093291304803057940170075029580615480244287594783202552118050047148589730447566584151674081099140647372497405920430158958975038320056359241907553292473543093723838174575129444699798513331930216142787662037624294270432326381559676738735290249115565133027900204851503152732281493804133580029742572795238369869887605507088926963602071716031473152045293573838320972549069077410036508199999748051823748657593121589966222174883932133615562872813092051439031995953903495941799001040937648382926639045486234787329005257389863216168680417728970201346763947209418601201276145751486136201405857382803863458827212552890930476050645716214841552306942043754148015263861142252849631570207719906942112814704350263899657793531629239625985736776859373053451867984250651767860530064127743983610278556117834370919636894585482318678558151121733608075498343429986704716027521120778239100310330724323356728223381784644978581563295633322366919953169554632640207399599723458228732467449030654950177539948955575638232282570469983638445438102976158684218114627511606167566224810784901450334867399681002577046360546249547808256718963561878739906336190262181864857229758118169763443651686255775271542958954940530668355505254646953404429921073661311877224436139687376753941169021287430904192883144275621562532349996026014893534114904502839419797905572153298913455105186141351957228031452227080187290333215539546165529604432885455215177085681061075760710272394632237358840716687345793035383727502392618443219197963649516821100341533719024458281482491910146070181851124379146959653738216527307509694954322391488582594428874330210170145207491067566763007552461091992779156302519200120290807348585603868557555959989044142988737813131374218015121785018863321055309311142633680836850181332176542152779732118321284429328649814466523003556621844342233411315100160215851649595068854500083511449153081890001281708538898606621690751066913381774993429325577266853082658056403313398232171403311211968456147094861216822707741247442114301122517322642674807386583593225052181618979749723588418510505805634730592791044608999329973586021420442506776667481700925013921829320668770476097583744799862221986075292888094067223679737975138831308014892136548491205115909291490531764392224251129536098065177147615906285486583400896647234180501183431963492220335139500359879592972573023127535263821929924617648436563557855201109580634877267777228270001232654369886305221579744028811420703515029224258851424063234970670354192713312973270853197470132078406471324930954108541684938216897616672947514338557880228982751509437715223846760327362650366883090025303775249137445080221804198021286992758005487027563037285434461974528224554150129628571690239646887200498715673381849683257859178382036986580468121520519177439640811436126644498290698721373942117208091932615324328360448335363178061539334911968151936973490587208149660677488646389843916813926704912190478483864121244075458192872179736773085913385392845003100047024422817829883868360483731891507903844334250795809875253894678141114383970560489059874293831670912653809695083515058534703826690210435322087293861819010762935853735573595552736192921670337254078751806315171664679401989958116865588391213162613062600412223655316516697025195386201117849914588304150751885601166237866122351652922129034870410936028022832206305388392565984070002658631997529074157558144891448852576787834508930863892460693790577757535425931565473193379442689095541225957051897598537126568489612934335009143262005484110639688326949307558939341466799895179299601796081332715412457482616639190052183377767145575663497502359678073705406062158271780663960695108916279704397302064817731075960236262247471775119967390546804832642842997791353760784363751332830294883659188925474374237795285824775746424978015418851036810823078952899490346623584571237251340489759714828225472483521413862500268418295580397253478083505786136957931953615098830287826505563572312245093124585292592011102736187703095248387797023905905490070569544025747816965644249903033649298523237379878070714658310070361194379479616189424468794777892585096232149987473345438262026046670432460683156397113048784352738903693322567138957121650679340535751356427791899519741214535345904974607064008982039142448509608247763747685667956184850625826704491306005716174115931808997627572279961024002933915485907123647088576465315685832485380903904656285856709882360578600768576562650219765000243709459127053503378017264809521951969371210541531676596163583760612971192532325737182765673989996839467944354145812966820167006073785233206035014336754036148322782073075282043304715993985329760941938937307211776353555079250378457348386651640911113902640798694225899993617293326332010213471455673157422407089058828282088199207981727449019862049941387877508500504474912283562582748966679263545891354345115263349678269548567293505948172077244405262522437972874481226935394685180977041821617365913027513486972703076823327922854562126393999062780227074012685252658018763561687262762907457125739318463856891555520997886396876232186996223889163663286874331570615708677676588367958053434400977802092593482459327529785740220690766080266194569401415879319113014989622586686365488526191420616607712320641721578127603273653719137407153796786017277683582185865809152639179504350460609720765310110886417969869878570069727859945643689073753984438918831675378748234716332327896194091255957470329285019992463362599572058517634419163036359120880300465990981588180161634672299331891600171373836635402561132974361742586270424652874437493199417300480540892106362505855079796357329107654753793365066647239443974962611136906408861117415824985287673344706875814021928035733270604547144886217205880231175812790917432786791778042251554065420715724935158096667148493410477955386288634906246885948560607411922159265943322289321094397682003060124077973234261884837444286609152191607534955687419822469526101544682337148961156193227055440993645349718181710758767945432891359472371794846104197757147048209805273796988837719177299991003047047192321923528128094313675448807878516932763814792901346320683176766194026494359232385062901114266098624437703346396678114361182704189509493318000430141610488903829825992390795711012374908335322567374896194539832686316769540688938791495773418202305107022370507248329585235955695250912153096162048252153666069547776167006306279297688555847932040155443910651574642707335293701000526253257518465291970258680335738697005811200417159563551886681269668726952859391505736837193553814312939738920215199746906716065129527971421542081802509268695066599055982026267814287415522181020449534038227202244742373935567862841990833871143532159781203010582424766675130810218432128313977526587806001294283556135321025111426345422607631130966934291476816801492545631590740187418228659772542037797762287478991627452010293808990507924983730122350068192566594939893292658842324671373354470756843465912359033252008655057781073614731293750587137240872600958681585872505009817637275855039303688317905323995723898875691606816423986655391706868536140092502284887414583733020521589599020213446265695790215667825203952378797249969374508762109333931904262162255218980878909988115555532592967159000219187575383228440973076560788985007062260863808190166648830553606467488894664323679716961069330120483716829454220272429476151947426947122723031836722649485310718446271317061767882956034441861199712214143479180678118774515957598053388924298151707916828623270571075099174357752955438437695868853568951830227970105534938452287321779215255445633418012705409228074078867388806618208132363509172401129075375087395095927455410031669895389518224950543194211216791368286622695893038944469440576239669513647468190520269676533612315683692781290943372327618497922263987498348230542665949300149757035879818578232947970271774868941755573309456494600611930521923321001390249943837515023819622444614353063168778271362118465390590924775794314598816829958922446519113758993018658071438404189385873261422421125323069296577614946283006313528024605268103989833579928866742583030289039155678788217855348088923465972261841002922161200975186182680552491286730433734853195330875058139401613841827208392629883775288171271912372068883466535366661353633714911739664983829436279093043301389333313277889913675193810409164397442287065481931669604857950950823923153751949060440878981608231380198079221192300309048066043598737393492130073590227800376646629909786087624062610664274875020439008703384333138011906784100498164516312149126470898838425195918768557453831367522078264369643890446576477751978722287220679855219868082330506536604096789492795804145955815975586445574946988253794529302581561292719316672956224519345761344525127858233951322738975841394960339869069905009103906231528712122560699055104712639218849389889886270440970860039624513487732555602035365497906453096379819368653555846345854677671630311813423276619845527475908163960300441802951174202667694888134200668576483895531074678245705383680804661294016841474590653927547427850552714087607991495797522650675456300349367013300293169251847980519692996246049539805382219089039211455545739501600968000082750380409404965822061394813945589385651419065529659741097986709518278989840070881149430350698702778568286471214398577583300757049848448353716317882574692392982133087862077492849570298180690193566752525712713430817726926046889762948373772219190646824807896566369778366127341583694804234218767311419807073412804916031317619227962296172217899819941174182915011165626717841721101612737185437890039472647895029229668950703303474762961601986291598358846989961738168453404547614057612962711254553827327890593903538710637155310194290740609421492645941941712263689731274746894741903326923192352448444040737217452176748957087263149549977193080807160905722732732860156006453733205281988194038312854469401402926436319159962297449396961294954232736422180244911839927460327768728486530943857755169984823796010507581784838808661891115099060549239479325471186180321582264552908946432163870688351029297604709464156822832904382956555760857156104419123955346682763674717821677987989703028804635008941324756916195065603996660346743609669016825891696159127358562600145783989055481394376364217630385860243574567137844744898767887102363471568425454879662590103911055440705516654932965464410797451881944821919004592124395320717478376565255634841468689995768214467858226490057656670438866897843549563241240393262022323429825024744874531174180660096325504538929595395463399314681948340626201937495936470658131115531316080313868505373625525949576809979439935220204223360652633468313319022654537573410001038430036672184800713828763632856586813226637461351828005517400559316707785540795818432481657089994588234892569210840136822531429862525307929635380895846639694277381769814066908920958110900916555792388070129914379931718779617183416158217470994930751169980108557728784738066480787751704694833928016568337348114154810145185231245163181917312276610165800187565963467277007851572496764392441720697448338334812846838165355531796037396161268476571533384499834306312789513875747872778182926151462274725428969839004888589560696362721993259093173796894220823139245666643292499002587375397310778722020460977135560351949088363912431034992246268321397108367465803230183466163305957766162018703141047960773415144930726168490043513275722181370293774531445264082875801177121525319134355278006159439670172129621587605867587838069571746592850184313333066363383496308057292556548394804744788233373319040878652106583389653935629456095189735235474350399084530018247332826838643267502726895414985041751622320223331302379890198966697613866899524483535231937904766591271272315295918986489720432104463062664706486368438553020751778742933442855160900826405324162660434072981784976920680312458417618927309630267456594556314881466792068448253663965929728477808341989469295365131659406236865816093014289889451768854481355206097961108898506557768582179979487816889156264946101883513932030657004102374365326472330936978763276413417521868894723174878734528872551894518736486366024021434619172641047135879084003426180048212583194355164682689368883298321897807973192854439727917215151379159956835404171620261638444019911787942611883282333552465439964676578724103524500235644992407020060564655265675412469889875671120221952898926014751308162489890267724779951273851334249335648249221883886073721281092139433090427648511345593395648200356385890255968481623844645519935335633925371963281235543066493554570761756444815105449126755625081242783364399737144299393579227150190531357825323680007125437895776428425663498418731244684369719471541570702081325927623521593113451104828216932020237589642781960758135846192668443561943065785624881763150043549098224816190193568574207152871873547313932875315992061784184977345845604606741606338246780774001437307577756178014661006618214513683724786996880484912747867707886103516015601502472394145009909429558508382012543637025504252996940365742322640747533415212908193722268086667825161189570837615449045023075426277959940120142364711097460736388194158433994158127577676274743037380106752178748606207278799016391671793639591191909535509618391914764206483429199629335685409001615598714431071156489495765295054050679958345386557777687436224927444326919285159713463496607919477629003231113594270156840696604824160272607266834201610602779519671266913844198044141281815545428078127395533352528446236346034241008280473578561714950520632551180982716016480574471508775664004715119970991248729359412391346356272180053619919993658239762119881851988393184509882729954895473765089846322701903238763026136888746975012400318979980776331209433988698637949562895673936008065953093363548794883318436941722025040731466161357109717881595465305308928157697502801681001706355557218234364444561268237669825061756333659631496421701624687583002544602391026138910428764274010656355435789510367086543530467533735269097378883439679989186473287559416563280488178109893315998305482009760506157752416011982020888248585019055734499846456523035344887783127292673086056770851291532835436725948017770061481717756589536350448497233207588014026869123820179080897867222810404724573785822702637362054144621358620865879179210727597941916530042944201021059374521217987936012049835268304644361050495080399284302722419976013935882655389087088782544969027255486610840146250435671664097311990318397154635865367452344933723503188993960441436347740784541004843931888668386159498705315649794999062246889294801516321083540694063582721502171927265927853537213727601038800440885887408572283431897250105761248433014016541643896230976630403011202747812940133936152187419583882136809723388676624593797541553694018620479976488189691443120865605741799694629489320659722090588533418973734783803670158199275274833801019204140951102663324439639376787951334040030296344818952525349365434137445535707382056641452346998869416783356481945312974076356160893469433617870170576168685776023487865235014762113559973285915785058044737657413831287836157477564086939400835301799772973834560205859717616370310071858106575200653379203010279204305746847528493772924743814722446165129204970717670547052002135034676594756593335651656643509331723470674697492977167456227058583970696767232451706277340011932560164001456502449683625496335810433909784229426828259364309805311984277396771956973288766565104362880156053644687426402559502680858298436802577470427385902557441792007857023739669154052515208592910069213229139195205329578927983200908432308385557259932223173652953709073165974744070296773753452175742618785423665771001383314219063318245430923979856188430846841911546300218334563366711859628353893100203773108540160042185196022813317029379443518663468875855490829646861366423941167384674988929189141045067769880380691711468909975397629349133296281269208699494048624507409900100116744148079218700128921339090876593490857350053672222646829514829404666581493474368523435768602259789483845163268212747825257871886432855931851480344836519956588814802072737002851942246658513264879336748089253193595599237944846480211741262353368763895224020702198607219979455588718631977086167864514654039180398763863770768799945911025966467121340126869926811397531525149787306857541228256820152702766572334977134419774203031194321071003484259780212863610296137897708827946428667851375841053310941378678481999712556503194403811524397621649496693419323488632222169843228823198785022892556082780026283120838974484880397514904011849519282965776599706581846545756988816327419057061083861976145573052010751030909267856551143485031438855114112671648767092043805488734766503412095484701724731169493925437755244773058754787067177040039981576558106274292255084234140513228815354073242322269354355912864481859551106290064536349995787498056520635594557544774120724773126925381891669283900077763193709363422436768765735213271699715384192703802055652395974339363992928185672290796159080959336455982492891445376925527102298458840510377647889202631080242721149585332933368125399179868487250618306552505100241218259635451595028965796111028460903677767600355859771948029505054097029910122524334320542650397047964798325391261211722948062314101140619175019138496982865467488878668374763506385576132589264669399422796734781087293361134972925897567036341216699002381770946405270440680423670586362756354696066392789690436711886102715187253622745196950081450352200417818037062107473476863669716516098284979833128960754846726169709524717783112150475157369145287954361940064454046307707791184760250680364883825074924380345789645084909833173021150774386028643921036518030173696217029452330022784734255617211460798122004712797409893133050192281971434590168365382263250539559967158829162019825543515839524612779846303685264942964418166493697173621788169473813037094578802214811177758188834332890189355988924960465982830045400837769593179552532260097248593964235824638498010242251228808412681628765184495331826890058025131571687204878662831612182256976110074110577515678625589378000280836120271277739619650199787082458457205562251401180885153436290282155529750070365477657505884289653090598655347330866746688233331881346709784599477014458694030170079265813999165222011579825078607470318783214265167835117069253440066786164480274557805078269364385250857866745510459210569886543618642129074547133809615908600732376137033621752135244309823020509780968316560110385223704844909383915177521814613943395933986825297886938518419104919731555286901671042316487425409489404655424996015659572510501644214158463878410207233866914536387992487419712082427271203151837823718500060254899342873779060918217074200634021496384909401767316972256381890676722062746562709648980444821329169625043558409258795442037372217416253443223621256806417579433471830530713852764831188279831347114243789639075387368472205776626820065799612466337443011978763850052267014371014194567781161355388855319820602938433070129381342955881781664232679476434193920480783367100466484364244249360507721615829049564322208488176564696958096358602852018373988353607649020175572221376521356167867115537340755483477529782410278596282440600770611390678653183450465901300379372213509144967955849227109658329174462389379252922721198057025737265001325215254188159401246561243377612210039677754953261445684948324858333346940086495773453272434318205861282864493614789727593798764914372961646703980638687781386125588379644412944077700764203641628337488963416461730025767442078231512855846634630190567245428159749833396466228391804945613760376418448368418203217691331438352760696899045586125527159372846380189674032443817642279795972484527910051700632369380733675715580000836311834844590219991590517375479199346275441185881371206459425190959864714588633191874704169035207924334037927477570035957471161475784647855649116437962085289505394526606875358043445561276069860556525005702248140626475432743589533927590212507593263611799972627366711230340912974028719992245055631785575970724566768214309728656033540116970494532528762878150833695783185159854558275994527931829827645881839292696507201850248716410733577402198721404947198090421644883460316975295402176898002195713073176931971461891233493414450731844295914762972516777887661830418460524555975919049967790501735963626308980297225861105110181987707877957489328391947394847031482039531137205050316114155077442068090764669137419266806967356846639381580789453712343004218188507945537002575120201775930652230126629491236093051180940922660935729378471319530214711766131211489882649414731979708009241359025695751961663045427896429349662818739493122783181491365426809848631295970699966762206482947859794677457487561663347941382713410515934102449540769387394925504829635174265932003960556134055933766801747851597262157975410487853354493565426149854232231486050225105912120131845457857514966630094131940569847558753288820559392519214350504213296846991255239834353432414532867014436128511170963772341194210691525181901925051556089413061574359360390341582796109410396609764605302839296338165196042655425896663084637033845891636823607670339083841560492216338884993985024519353449438970738281865036887023604451072189254175305882646785046055301718031350900492270571569229963662272424646497571906540667579351752895594484172322903684897175740450327862000758584430599118041873658362768606234113384238173601762608712526540119075225406089893708752177287357870966016596171222055467563783950648794336187089540912292852220418125510029146449975976239601881306629332397031367642997910333227781811113455289625928912719432068119214091733866929426066371941473896727875468203698896532644930320912017911065905369548772747825436590690042212112142820651156899479712741289016459122536699691911851413935973252339829369078908954691310831805262859882997739844371741216732749508404238437680206123247704294225023266457116184301563324066317028206238540244792037230162302027298422410727209541201424800708580983863688379758356062469584427853709098519166724150202697177863134990199162609207139186403326795155122726683668533037549579279517882956937154901032995679638282108301162647897371252718256509141504891395526257719463600741508326891570240579351708529575659023563031635724594385746364414768968886682314992991470210128483981075161211537560394215164931241691269249031414773811209574769242072117206895228577945167741635751897602105876398336146309740879879367618309013226062991649885272502678780397642037945338804101597520946070806693828759557267027236870731621431533324664625323767261637642733146666683349479625617997863826554834148535383337075388506819052161385226454191978102547169552957541664110975387313312883120002313166690791495928447369831122894398720325362159815869657867214486608878581831729861457809117946325179091635527392552395302380088954761594059207645547659983804564199563317121305053671891796414137635679785243702698940198029313362358242127229337745648928917231388526166085064899100089256048626935524018119034384328378997403393949233960297992430676501124104550801191345322287275401499049071201891615065868427573374112220357232000098656063300359893560412316457494175276109803210315048818508604421753572333621000175501951219822961116856871039996691286039288258886856590452302046913601266050007805699755725889633598268800133010939801115740637132149630265202103452523496281546383151838886262208101068330621533550593537021822764627788061600557415257818815572493261199730575379759507360022376394884270772452973763428286627716024768396947010995167857822060845109969221517013041388940733031744726242712912859688875079554156705779664748932933544915862343575496625174530122450931075670444815664741102013404036468719270273445725068805941640366968074519573818810858146892274374915393551470000850017299308109429913093704858493278073555826158751218931151107567228592259807330748507377423694940464768444724714328486118019458916772496635355708400505252571117674256294112286067228196933081499405757163233862393966004810444159169749205901921867440385186725199903161828685619552920098110394778921392762426783075468100895354648148373974890207513508020733547345420387863123786742460922053694532479505104821048027949652997551740973849142816707502676326137165385103309286039380736140263038336244453216303275909635163420452139186035383232394102015091353619447442678321261650776131981714074521818578321657533216206765288203178400006300811633971229845135396657159302865633424626309443438924535089148950550066046956972677475942799871741560258335551366601118049342766585160307219726161553243910488419532707042812369269050076921341532356632062657309026957816868870288179199416569849800002092803514658358111893734385545692738581631478691595865932521969232374523874287402419854743880257758152449342611687919701159107225638532662840265575295056481510260167085395933136416711324604270710716202921315154626822258349650600637669599558553412370495438360097967898914121786391495091233734373628874200045301630420850220825929018302866449831972526628851666676967484169486517642242477710586562829331617342986667250053050225119354771770858544796027167805062158185180021161927133090667585871615517814534747314629078834187757420738487020015087332354780161049698945064668409024978696921079245460391486747997764570189066961056625225684840787640093294487639496138917161902535189387222305307428483425727048099739845966970178623310977536529497689034480756880803857184633929124775625714322265848559541162345987141876793634005102295623803805962437525745517402962799381716429940578748686497940886634828312848599731587257014229156728416967990132362300308421773068611065621229350784106346630402199363882196428498711958936103184200001765164339026666085049667149347935904009464050680835719995554120829384775366732367688599438316764172303773548215785280778583676216523773570626703790682320429622336529573109591186062402775676354771067302101840774597088429106941026607720422746995544483734004341737313034736908120196925652208224564041898927490579224923584554111174000808940072619515287511030405367946041167353916324879698582189733110307973562947762228997926295484404842646997708654997598605373086611021112220132352806652386332532746073417837190921229765212415099524824941359019670629324339894599531997450545412409043666179459493989504846408578471157804177698086084052411735439557170525646486053171380091900485778225490290895031433663561215493398846681743455734288119274300666388798624253536708326071523647973437381864470416221191624358236201460695303519480121201303278081720553132672651951422135112538835735112152365936949471047033835235472219641494467955299042998700771225913590503188054809770275754322254908283540920946856554256382995852581741821049007683406575832528635263787651046828269509865196815105125378796054138517623031330476487492356114105181457592213482460523947577416610327806584821346372748220568564629588458968277115456955416627233080478659800388179865113762544424426271641285131291844090178315585455350816658768942287722032211263962419083113792450597042279671364411458894116308028671947410048214640609111670167128516439555616949308276297723988287318933058887630150906442007338415741037257061411911197662800544077655591270218457535913295028232958093902600873288916803486635113081267907688690454655114734524886318814669554318856723158243489183205682024862488218407301184867344687827617488671872847268692877603117234316605940901798444041729176588336106404539857894174940229992978498971175379116233593041146200251785389941166471194156113869822504643187250646439319982847539561913571891826318977488498269164701158573096118661664967700519767134296907623512732011158004535979855332583871042682552898120221106627292701580682752844828193514536622842939405459002555015482221265947462961518872188818796863875129176548367512013915906560190051118226978792975672420043732496173977814405890025307605991868735208306434242398575416282740325746953903375154827889079544124825524368078880847690082884149997916769234268760129980402094331818104268066026170604661292636524544859175959438915109259215424228660889019670779867898567292679047944826241583394422257373209493180672490003162908893338467001106362727689740657617214315874076909628473030361937286301997220472076716541056109833091846605435267884096068228039243333384497176616337848820762070226702735108541538824134274794606177870872426320680607824638191589042914212066269070079932757710392728902949082397975917476079488094581976215435184933570649790651150903856995759302788836989454824862480567315438511959809409866084667058666515437761627831405845806124301232044451869160162669721748025069824792756858318601824670620799293630110726899307440364610376949033799884010530345156216111836327111422889870376087290981014208236293756342564689890207804333138410445731804392776664321439925988228216347912372964384705858484849186624171836865742243999102845809877959864160234995467301696048352719082789801111463812548319190061387010423920264810843529042270718534986705450661719255730047548289763926565359846072610640080201329983855009296404911940234873517091334232794134501404876090444052835922106420172439099255979640300784839167431726616625792917956412144256064147530087566300230488881873318446438226476992417986446557288607062512134470290936351788300568887007464835943132069604248162693522475543448351639445985095739666051863326476452300775818117412844470580621030740004020893131052234209290568730881696428533970247499836936202200074213140847578732913385247061331435287405921813990696755204773309793875201284052285282146543171995188792676743503329967529753663200589282282662741402121857573872927433370944315011218908267210108871174303151025825984494569272391568750091770818150719494471796443014667866548725177036010251572296834341293761472620763988879594872831524667214306834200919956025980496102324168116899583878987722628216744403434874681413523078284546384134873892118868685344465191282077645316911688908807410984144007168834557547844835401952801751171661703210446241656662309522399920885368433685642686818611478463734099922083005288395327386772935178666851735827603977168070670435341972937170157479570700301707470987852030992377281932556009376079995336853087770338331605347097808212920883881778065171004024239079606097239601227145516344083943832186661698493513671624515044433314093667218176248593102959913859495545246086804647309881868282538128062918447506506845144369275572993988756827324268351691547329631913609549512391243295466514892025331474608463179612724186091576738197831386181361580661187891320497085785919586162276616601815134298683828701032029607434620850865314748532410750461413996777479187617971931882813431136071344033490028211783132494551515631480400737537519392866123347470422852465555042404755908865893285297847754594435196559238194802453751978990713526471594677390654193889719043595016980842880250986091735887986917290603138735653337499333112525476189853805679054075958917660755365767455735875604737489373116711635539630195029557964839812652811976809324637080065271318672559383270093414094111613221140427506302145956971121383512515684730027127764217581023208257887841594278231354547405545266903089991048844346295879358204661683632308174689326895676094135754258263560584556603007345316672964258853307617575043565510759741222076045924838260853782514202421504525420043369790958472362907914809013632962443339016914983278764645627486631892045781557357089982869423845811662672273402392643591392724321913803318260294343787121595613764293274815868175592900472987132404213927415881857519173152776357025811017494790149586657052262404877387518804262246874660500884103127379418339398992681281708999043381935857815585428861716344787134862556175179128405538736686767482637136306898589978816820826949315099835250408554755962363877883162943365747499491240697292839855534712539243282806085056607575698701464324746033033856994301120583471088834157180922259291486256709009156540628620368835741622038708846351760229532058613818559979355798100995259626388627497915522380356213178077761674518688264847837537501952830053164612489110776820702040788320517182631033566622126290920103536145053567296543118755951480492276498104637945282367668043983789520308717208370800847165339078733252701910146222298547089272295059890038700186265188639327182801308200106737848083206380803824613695558192953438518362043217547226879145861460232898589041016042716440058862142804756515913080148577750826005630576083227004866324888118405825596000549740196043165499956138987471953724538540974307351929975356591126228680116800321270021723677142311325608374084085846874950649995378927257263234243503629956379130389249677231481062036874347927722023844863516181713520317860084707932528132346188425896932552342778149916788536226822647187508503141911224818824244579606681122513706425123174296357007429056011304170962615018945092284644072051924067746972697521904189534464360208334252343658467291512072967817733839318301991414672424728446482006571925262057286521148902300526061792324004805293844924262039856884862560530551880044279061554595936029168612178728928393330507064659891541293162017268931766935004450152843568051734921711468050176489731597030368907093397485827929985437673713101692353370299856775870548987767041203275159618733565916100055990365741153106510785962706749380310515449007493446311612911689195770626150692840841203407607951195673853017394469629112649324555187250727984054447086383228670144600146726679521867746566020969481715849198943082329215861933321409926665684542620377531460044586394866682867235497112809237843088317795619577271448034544208920166420872565284478587568116336289531001200278779578655755197898391779652836597543748080072268347264226720763052402533892274832173093066965988060431464719593565187367476533474339298938035146813387304184452437385805020922697870066750277517273247411799089345431609578492850634230487027678127483804424091925953119890359452130003750213020052225312881262636071363147296754158223479529960429238396611764836073236519011350351251265187612036970449247946667292033292606297416808684048380760254774479640884086579670559778724287974537290371942327980151852115903036930628123791292302520377256053077364225476304374942721483215298387818568937647133151213096044077354345228024866426148318554460012252984035216445210382686963888895610742695293355444048482748540293712771478292075063504655446892414893225455893289465836430606634496445471879961972621961796252570909630991562735208085376149238252228087318652168209820010156830136960237654534350138161785107656837235948056051255623467371858306812116129473750243220507858986710667549449381573581599612291161418819929190451522699608407538406336809616848674327066795556879499918174060055673917306752149484765229008629029733602588594216616200182021336410147200237180230669842813777782037490251505095633538933848712183640477630738341494217087353523439464468157806972669527720463548613009527223072713548695598390432158807856626260943852171087761728462573950896431298854301291730692675191467550202352223348232253585083634377021390743885399518874130164071776098452828152088947178690331190797488898186143523400752832719937330364791128748952562030750678871166848854636210918171173759465010551907509470739928864349675471494762187089435217668631105958629918251954461667128889509568848887483009866673570830363134797896544709244761238489540564502392214998266260019762113401701202212087633484820243690141265882219324766065364548051819320503168461748364266261023617209373275101685503427181694172106277313307629923992576164670109311366114344812396861544916903842075659553704176650008184116677969365570542768463186287240892887500939027679795546271273275749857326095137810666158282884344955005163921157080014687358421234041257979428667586225358879288430197014635777956658265543020188921425738491688588388918599248091373028955961672698700071567564884272167528706694956100132982950000662017890546779077382834044075284540680053739417589051594396034887746114632318637094777562372374489601567597002523642970045632479032991182136431815505826933343345378762832480408928804392269180897640611331495561782643247712754565337864307707230412981631413678732334946999459438332215884230221195094293754953638840722648555313451076248917901942268074189373754635641269024689837626448806313808021938231457073155462004875564487262878103435441939576512339125116679031106466740838482272974663245887285791727881957470234453804948228764922478406999798543206492088508811358880601274603793226995518107231542415330342066391708511912025898322055416393300893560684497000932899644521581258100836270445948706006820985736318169800724094504089626786383000234450508695391266727056401401602582839969599668370146756519828589508627282349138702466479755151131903155656136093589324112873837433846795970115709679328010974379037056265635781735671891172500108198090342627092875907399618853724787641457099198017262518043829134945551617507032154621268401057767747438012831065090771737614060606733070514703636685383348360221603360231843801844800619245518983513375655422331964262446734482234379162699791353894319132035638241860585161259402429095998742238492167044549255736451286522393392023922491085941902319810963669995576372212854553953515045461309220905090239208991406239227759521846840804725619466743650442645160985819907364594001767210896601471066743661339699226074580475759951669342754683142829775966876126774489712186526549922911628399225976909340714082629063575216059328300981430057025846686310107787921022105145895776047962386201109566216088736034378263058842460019414498200785631474182871914831423248083951263619257435057195537915279871995181405707769238194627817335144044244844385557092965072634948306649226118695025076097613797135817648329850485521052977625344801425927606062720405369991452658228681717966147365163361536327430343841016218513475316442823899204436241531595698532770865828452575737696264493603782631310516873194602266780300674701928427539668268345091626175714879093623469686814311119663814526050001065188386413167575984546012724315206164191223728342594861319171512402824026132806764780733645801925255172760576816752925776257651216901490679592543256258731499484741210888959170517939827959010314110909035912856741955486348368223075167975489777273541881770403055598062618093883375885055700030515642430722556048424696145510606528637121990469284644319516048760397429173052580936296691719237231435550957650737572025435035872103590431653096204692905206219790576962283213352393766105906538136166248569607997241141841640975229039083906177127594953707158795470281271968566730505488093089340915584649120502047397434291101210120532632995752569309040529821747696472945004732085256497686065482812658449610183088704684675684693507972428284080867973172502566769159011465663381507782463033459749863617287685803385617301500486737840931498987897779269132436444818653343485819223139384090532864381912326491805720540458189117258450341850461709008206390432762303321836078230384865679926673234507464098211732132745128958872005508594084386492888916246253660998549460416581309081354995077459857500360471858460585786901827461627206703267385179290338187585844745283971871840343296476490380928598516613930139497477965045622348400219495636453923010296922189759526170449100155282288552130311946367034007932891852486498980518890771063962865280518141929032659008416763561698205700824491306043557060744417811839206779508689103633486319729112558358473670495328079757861864665575666186594907924542799793232906102953598161004215046881413962053588323471104371672587112258428530101405520647200221217320350669957167540620460083843758189809825800590036041211323134184045357645473527816357557245115077455877448451684416657058790517831670559330988166881769412041966428799660443393036518388023622452246522899909513111975082202411186422128509635189453767084234547504831357865739057502707950220046277570777989973015640815854561759791146945381413606543768543384909298824620890423502002171699709661524728994431949620339557809586292021722604280084707501399634914090881140727698014646058466671786176352858821177690297290889369829940912064127600660332224599467834024793355899541437390503673079527862390938270832360185868260769806331169563540010918499999622766628826642657770563667008702750587586418832596231214425151450823290777494308113340991243753517905068608888734665578309886042010283311627458268569963390108493608116349555406105296155632044615234992282818849187955719329737630281696195210226629291258192418713360123720534606670907249174482707406444025055915613526028373727609917423525572483066705054016173725601490388825431437272464438947684426967447437303552241937527835382876027332989741306025318538742158156095574276198636007838887022286478073300731305729704288242810150784286561232991943752256273902185390880131385190545839084525480494123623121831609517650270567612028616148311811482189630891721731362009415411373088023804568312080925496174133833121148192644991706295721326613357162925269049927058597455686002681443594820627946698882199017855950589245830542631461401603937067929571232336699205410888045591117794095157680599570579245308640313973044835880047570598138863197816784216205823350050140613580112099004408135173193974286185782509934261452788162591925481164053060203784733430959776388604550547635929699740036246984560739654908373630639902489527323074775101232438313503565141481842274646450820281197408276100943490387097022437136464877526030876552028631058539022131682678217687181774814221029519326118677184621586479278304604904493966006141881770928457515043014239538784074314873010960569840270762265975953954568182406715637418324180686312830871308509672797747073881616249591054701959956651582722560570044783068339545663266679459143710483890067685369162491800401709961288735618221346363009461409397404909908489791813927955348106950025111101758995189923566426795819117452847737860248731914122935200324206562814373101844508820158919707437053442363248357178720953197652013748617137130873844556640263008762819757086226857603892933043522852297352293984167990610331528659050989136424060417576301856912574636306581543367801532505100646317429395535721280013065911457506806076647810298522036884940011739000940932935156632077036633200086643779887952146668596999582555194255525250429289088269020889969394920741889512642854800984094090932972447008286734154251500905807116263773906667199309898407820046866041602592920855555052970150222751986719814333636187383354214612961031346861325196474807401123195503375413413657418704914448042793458414278952256023720637039726706477472350786883082463820319436308244396079669085313426301027069960301593030886671648090332403619157039740188614307148999881872626515924863263359965699225401874104700859505491259179867645077153875499878419153086888217567277235907752072385766543706223221508090082124177090995840799968464923718310578196533684459425168712351961182669330495712662079237216796774244320205400201714566015506404226336094734857239882833612775151900651361932506741964830900453951074246693007700820007728665926977252593339641977822000148376229177432068679535894808135288282841436536918889287649721743084868055865481968649566942463159662469495030874515424842983608415410485059643050376386623912543919503967351752529300794042270708645469047049620057256871251314611764996139417819834731140994522156193085584132461269004052144840012414260896089339610435551364922418414795352583793367591860661422938513150232838492232259505175130700552422497529812290068813292866550079689848542800547189909877199601726963654817957964803155669961194596206974028294305545678693643489976085364397119626522342488158677968886367917641734777058101564482792978100356140214837085808423004137810764398014557078979484226390868759856741898480409214878759569338319910120604583673726920151739860545889283539728985096364550165602654644941261206983996473755890995725336831889264445960346076372206071239896090474424831915701053100840308955024558700635033909888632235529580533943308505433089957961609164266666526850259755507835318813402277130303336767035310673402357046804076072580812892825500295371791267457547092386928149473603878940713213911208642519922929609760996408498058286845467304497668273155140321611387090298121830392857998673711474564196236461942178762995915051266598323650217828285445116276007069575425818259784503570795244083422717612161115657744411718459287744048845137914325614403211524321590648661352322781879887206132733327699770040710785156342660015067074014682595650597649068711459145379978842590542486967062647646987279981324322103583156683319343643355518258449744318002814319912336078121927475036349995418922035469508092491298585081911873505709228487965726605810510923118155467527544324538654481102869560800106230754139592093739359037878852329891788423407538865581022325565877394886995298690281469778201075951422162818933845550947522174572014842095370222406787845738593754148255624283804249616384612202998946298011990904497852992468158297741541309157500043001886026020979025117861077497065526116578945375046929592100622415723161141962530371306734351223642884320329580620238668112772630985307342598977314137134459840617028707334666786704794150292375151940993811391229165437005462641742250924789350113802997533163816047090561775153680617400434979980379274091268538255402493069396888074313841274400661203406221146651409979313000712496833143660578188797979440092233057923782998682357546158875298070005833510665143222986214063250609670573111987508464385142533836808075445528514758289366702483251978049895367900318690368147199872121226599079329095594925149765002233102710346947255512833732240215297086714715711148386909243023713465743530232229141275077217557289129608694468463635219613559908396203659163833453310902950618336865849639643649298504851556198056350212059822225659382430300500935708536981093789985844872477325037276083603886012949619908389705922902070315223995585339034408930953681469367874588955377667319406665906024127420930072511711391610012864815468631484598064138703322714748332533968983807602831010638034414916096570503590773303999751827125408106123337980437435980207868340736197216137654845165796943177436335679909803745410076343710158399295348448067801694376235209640143727120200484356912041451477350294179416559623411811076864852069909242031161040496773275163944113591947237682502132143827798934535764828611251755947788736696325568313576157175428240057964284881764829619578508372854008154728893377016088601757993724194470421350725346176176238388914320569808882145557044088546984746823589169056832858610289483446383832974935615541513804904488522825766846603308472512278875341475157821305251090301455300844457245321825424788116766738039610359103665057380143433629174765768273987961872077057156849431207054488058597807511958146410028032609150596415934093018097249465702033038641301154363770498586014332094273491181232376129748834650046097390989983113760084760911053508475756057393951041152513689550736968954108568527678202990116554281251072274944158922948584792677449214334392422527880076719138462170159612246251986969506845597236585410419339937745232813110674951555209716249946386870229067059417423938081340668564894721304038618882319892140830769109507012468269001558890635821250708357633806052340315627141970043986734357027122280408750702455553683072673247739733708822787532045405381691257974827838397989371678145951189139017938031123663034448511572462099147305257550031411407970037510885900977088074779331847296376227961719878239721857814022605363445170878175976145733246307749226963901074593334101589478333980923541219829598259150740777636063135091979536745496118329970832959217043289345860641764705597756469555325760954785087713953986488612271935253158103012813475839048514640288581636286836620139340614021977414105771955441452706316508972158171985397304111468888709557407324480585030610809046310675328430361045467417738044824135591980974172391139742727459285479609560948263671425388117794535906960132099145503020352265630940304074755284846983242181588489454611372720513410670436669343139616261901363727588765860474338280445928404614915075013761432200931180220458331519424358664899153541763751777445541905800071148319398177932910436165161794053545501059546386356058087779731825745932620470889538995484516701186488754701780149923943955815226265819446868754686317124657165022072870290676348973346755790356334309686380298735839852799363720372653734539735140089017963149278030263753091572224262537843416946205219439887351363835699248632454104221319602091356051731288755707251881555315964428299613478187888999570204889624652790369397048301518869203276673885917986602522137415828473574172556444694385529120053122495854105049023279188412587562737500378491531761491074088103014438697738224615762151405131037980345039071175288325472864878929286008045242062007550735311798263110985942217965960395401128237697145077507345273974020841279465530765942656785941890205372897068514611768715481810725991537541943222795513703693295756048766841480614160259339398270185631640028225422096781439218079987162289474554529820856317138580187540798335197522482408763444799026804948168287979941765360111674165048869644727376678484759116744291627748158354143896441280313061025974128777565669192138375663895117006081574286182662981324072191557268052105413107459258911555251172574584258561641842727572639125841455557517860193562726846798067095143829073334078386266638834291570392099378440995491266916489961443428003887969939726132719566483453345312940381377802560718388745827231575676189772672693552173558252259655291960969631003212630588093253726401311390748646518204587496798412134108177441700462782459695454785584962529434264387335132229387748742819148387061501413736930595287547046175372182072852825388845241164197362533955955751754492186416061986616418370369529515510218518854857598838833002414417879290297344885590925910493800866287655263043449058571045157170443479735771498998056972643158842584889157325377711519674514617556263530178566303009353342346242426060331668848252709953495047181641691250127039224429319156441192181517682093604478476422821738745400655088640374082719569746605454890982124458265481990313967231294038653991536800458176824001825366709199499015704302483377787961401961751468625073665624796366222956557199055007626060273684814577079387378534239253623264368238961284647907698932032835282019084484239543667997912738391433213650980683915131198831010588346890791097991135919187114242420257059694401225431703845456449621162280250514419800069237592113615065137966736760316087742129059743272227395105317630560332511860324371165550214875593089358345245883527877845692239887184627652125330827203851002469039043314680445541644856680833365892073463321637999650149852736920855321125166108556095681689903950339130360644960048821393862186935229203446955799854847565961788847738894778681290618701251002106362316657086105398665971357194903919569807886259479288032763655093307924815304070884108641069439908097455150389506294168210251079347924809827652488845413682861522154154760516266899184672399212131356833710961391861353931149609314623905762102401471697916314975143055791087383224165981289855642256476163431084441549109947279235864864690429679587734899072249733204809340878978988106864650794358950352867652660757751455251099260860876485325466768652237836223392181678431690088076094213931077834548690759828199416468022373673944232602221461296833697462854920000386188537454277502854919882141698777951567624760965742678006327181368414914923096692251196322264419257016870896464419066773945570992214579474791212896120067333855213816536971392342490531322026192804243743029044657927594313630942561641428053611784290500997577549829901920067585722558427518663952656128573401820727932634375708225854085175834702210232140945023548229792236689019622820045311990454745640011665057082842237535981062862718811399803065224408942447621134509590904064242369413968594619613635714794529853283905072706505981177909399102106136816267069759276385125487458015766953879365379741449278375804114084721964828837342942916732999068911807201989992785809200091637686887776650888567036191172241987046028071004265216712031029187609872793585311877306594357336741010424739964619986931596333586749964482983290097808113892568643627462083850850247375101947192958931438930144732311201343204242410394473769558172616791364331511181321005147465426033510647884708539197858282120977836476139383600700056911773402032255542735867014317726518333368661595433791770687710073079090766303200039501826451350214523425707673590965719138000304259895896210296869308225819742133293687892414580412846028901542398999221589164876469791143964561985260006953306380392751949419844675275356736494182138914705035027466367452427180049857757425695929852468107383115044569836108481954975784912792669687670927898960214232553923808927613854041184754185091718068684278488092069212482864547789761923693447576671540763914787187078653770317229645456169746740630864659577482795004256897360048377221616156133979693506414644444815048002162655256384165060530585723482546814811530613945945010881447889282959517167082097256755642302428778537322785005820063134195862851118724963520041243241725471092382008461449302298884817479448542802993983443529423015966969359727820273227037598710529697101379309560060650199912574331667224061702402136470430197189727237965065241064391566447458015299337203160919670711447191063056509324165450663692256515693917584091791743824209161838235815604892739877710658612540007064573643033658965615089466802379637437268510424900802489956998280547034765599012108912890223124078187794650688639789259374606760646209658471225256046006619911883463857742859173491268667965022859623290633221424411831173135386227791831736658387441749418193165140599388464374499934403970815026568212917898307008065360581957676989496026903205365530222635669804556562394873536615337344206455201783460213693850024685170233522372274927075052188021015878369718723522546127026928983862585438759543159046641065542393700939503091997303112690485551361249507106219799548743184605296059473214270786427533529024199245193625324663629473775968005322949739701840586374133524363040785744683038482935409280299105249008982830196189644080348752340003839304398220807339825472271388642295031722739753166888522254102341396637469264599386226111149590747697734996683574098713945339798391967362528948307069207919342825763646092476698929806677251278867266421290900118527605268663008288370400140397366144768610112041968146115367442541955670628352940795993856702196830684781129447275063113549145790645373321517491779141442617035194800821315682743677249361426526277738177921728348065570131120097504511766915994204043681519454443124989416761607424181311077199481916213830295508161538181072093224509605035371484257225948064707938807032022618469638358415571008410100900502699413777245354246695801814545231624994858596561183954957633707634892001499582908695295711698644928578758293272309314004521883679350942051019308039473943363839197885370030442418104042066749389394021254397375763083464592791169670850463201577978946342657429339605569496661096427477328625530841236335388522043122566061034703387899163250364714597700553292881729792059812593311004422333331036678947668660913714329332969077040066417651142613049983025235898237751312533818388473024643176406469750613705576140643117103727138311071762207396835059387774252729288894398146871827640827782310104148462256886992178466055598734808934762769148285106399624649772947531379863562427422782665215744529559286451160477614966348271261675570711200764759142273135738076368438949244935490221126527939389710560525087348878588455969369440028083833079804232929932083103062706201020717213914725383641781067132857332783578022068001283305034220306316764826355390908503302045365455161517332641000342148147101843353708808082397401339083922042420598130060947232904008664132455844098298431204539456722133837209123204093673802709985213259392556070291278267655414820394391839594380629739008388445820900031947129314536991531188994063716095506691791128287409259245341788368177905033344354458494358067877946154293313446764101430947078604993555915546354224974425235739265451300616655903134868510763582771658965519527394424685976153762335305438981988474705651260033653752425084109041111699243498061741212013466547897954675792452611399455332328457315600293436672924362100565962272376332185729243863765769612269300226765341387019426120053754850101764603292307336858384054667520747007833204853014538238362461616007363020282069978302266378775767293857501256849670069601303325434337985702858922905178785074457757755004797592600548257437334638781548695648605248942424820545542068852398373581479876592975015569683004205913020863526915578453812905835667130897531194346649324645133725969755660274160489343092860287552539419263609499718413637755787807580221893021373994817485170659044500832409701259519723246694170370669735814381695523532031098792365233405071904713547293168709418008007948576657026396572681142743755273379247452914937903787850530963503736124775560356662093431818872384337229547749522409496758520466349936192313329069255769496582078629550488784361370260421898196254840854877786011141264453359915323657277301996547990248977380874359821922346137754423724631532418892418783027390728017127521929506819129856221512332713686919104109935849116126128637505455884291098903003102022032612261446292761752646156906186119992861380989385287379141924617571361346939118337073057084041040197391334470914939704130403119611972144460826929386968132393454684835199294446559100754079188897852985382997445002917248205080416367937790818904226916463512665240838605684371006213295053272021424850352615034088896764891212241337105764238547131866952972317710432321848597773641179566923997780141090893036630225811159587722925060748558266879137882702429242351491131052143689432664951422376744718913235994121842912503621718135072531565185760369246963930435990985022084394014793743376054520031475337635302354358440224547776343958043680834375346532962571531688937924508782924726755501102913674610940269025256519770965952936066928269093784688539592813343697562178078549274143349135992704812820857727972788975661191128005601341615379536106080701980805749844697600259124369578675974376860953953012112657350577149529037554383828482212422517271836639763735483690314070443647078192124165222716996888399957152820311857955575147261121278311610767130527687758257694690571101951164416945121114340987507073727172283021455667860675430858318261835167338033258333492163667340280195296043203056902897899748331660742004561799095717536220503772738011114195722278648860425992652171128583021347566598905668386515746738552396544496972690257301914283184638722741776721494432657925531431967994155732321692787209120360063802574547459192510931709216655972270387883920216922932369356260372396869870588363280083634416909872895071772880554286043328294396840850120232148106804533370598875665282657379565827119850457358148790977328601237255324267608844899343111558789677934348101695678339041046624348345912364223546796620597261817266721523850923922759190219293960755043022116674520712488032023321634164103727158717162446096731691446027213835604031910572258801295201304321441122632138333253450358109347232594364929171920888162298805936306742343529440950046407391798530464665779046634728175886272207841034756607105030274948349680568035350561811243094645570979842601545418448071093945477776473821954831229245654252153109240105808203781298240318758375028060396541012359583072206740175202693645586950466485440541298231724391869662349076598511635519832854838993782140286455386015413415067557381179691081395263571041798573581190697702896871604850967512818265843906091719877874454618427056229490624673473125445654938557376156920097650523165208539237260313698130787051262951552399263823180464309366704155719182551275775453099483518812303787796535258268134502851747496422904262249906274200763767937064071261103814173251997522584648328250644367365489824004519376671181891313531421008219658849286596622951685849519609875235061047823939415228119286338724407567834058242379901732820105917586530977477961475333572560374066946733994703043070621004450078392228414604113437657520544811769007718302815239299598015679684341860166424322694441715122998174555850688790170070395041046999168575094606050834686777952125143340679678877253673389148768713971581286973505513467862791226792015536421378436504183012322768844140551531124685661506348983142001414247767858054303039064258274088230945598952939999374547502248122988973855019150110156892890404482313943951217566712548243972243709515119646963813872539070494892953972928578807235908870526200113786661187170219102380290482202854898705628408532661178583302546181867711980853519882279399254783161211708272987099547994707210937543811066319443444985998992799966436892913339219022250002429355666306204268581316889270495768765034253718125705192248113386477209247556223132917339742937571496463862219847927647949644006116666897643822230892523704913264941355929180498100680217605331924160991137147939305110288816545602564080468218653228520203389534907616649105020832552877926904578455493311777593459420179699730322744854141809115242924734363830060638936126785687587323905859510428148396901810072813689164822004123254546030712075492378713849266701697458653681197724661029359587061641591851825391815319852427663465687938195592272094095126868549151886362709025541055922623168344844229871591667965178062909011328218540701712147829078658018142096397334360943655162984124900297590910541544093639740452270187832831390030198158149903232171414028605565759189665977460861375880252428933773769761576657109940895075723821201742404477660063385293878624669112798956908102805654833799680855556434806168066393142646682745769069789600555272375454101377524148596897566077326372902061604948985679114788160800214485394584059162708176340153242724737393351165611494451861856394744128582125964014684473325572397007000921584877772488850600745810461551924490020873385700871358068957116226780024197900061727772513356804978948317998603909439906710848659143863572036594529709649720741438538719948921168981389081282652490932796959336404084585533125443343733675015317065934915259930386242974682941854597368701140521208480439744910736145174237536658844908899618158363001955520502552709351917164400990819883898145868311225303341514694977238805344384190475699130559244430628528780594597190696549390784927991243212625286343827062332068643709708530656888062272989832034524106617762722071865396348081760244971205906196731035025669917639420895021938683773417954041480280521641159543339067220971216629198092399817323828023773636436788620604098980830564498009444104011014459817287590434008515261706641978403422957735420306873261585164581498072325340609847747746160356224980820117348382769702662594448168053579297772825257704112996746055073055397925670941252608678727663474932190719848719647781819782079694955100440977664136996677725612518356889523459754816900304560603934493621436583165440901004914503240883308747947273007919421510133252672543313597138482946175576973212170318930130817627707596272952556946031732950131175582607795822558726605187379278693951448697652436626695046692094185655504761285962418448465300999809744852255975785859182973095505978775731869538658711073867431044353056212622377812695812324586308011706939373977357539912320360215067479112371572295400756702890693200346931796554410732665883272849984434131073870832338635370230404938475080559077096336124060530103191465373219733992502860988784972814669279943105660226899712103850814110702369770226638528725948927315737236137972636667690011920651147461871716661065590236245911891972720587382445468589995404458528725307137060242692797964373095078497966238362695627505840014571421095121607054967762458861218547608937556364885688488416040818149887932855247065650553815673339050994320231800733411013832362479351670870396050273613459974945144015366479374570403009872561613444176201903548872959214622926593511162378300202141843215415983254503600497273327576757554107605820081765502964080622047974849148396337229301701357600370234814217126221936036327224628748711460536617120599958505629521562208396212766895798954775330175096589210913110406222527878741968887258984229047485462155161791888612251712719327975693092473412712058572904111962387309909456659757889316590795861587369891464180531315657847863814366565847355842898658654747743631464983619818796075273574614233514274007830060608126448571071684937182495956765913771976800801933144168220104194984094170336242065703726550426697869101390865095655484376183739624216583362261023669974769290851981787824186357969565937808750600956301600742632915148230466596138093517031255264425557857001675039998566329291334807937914953348521186341929209846576216821617106656673350299285232619182652936839167385079436659173756666242174078707152216797630495000868892741921874410567973178497365016828366717422350058830937833449191853034801113892519888282603379458757090660563718768297419156036002582447687361344441307536051563652026976203496626886037287433721601204536193211133515034838609581196871775115347186353057127023369086188742543038924024514721456011209312148722896193153312106156731397642442963892075939863534408576063117241578556447578047254863125781551850955591276234908095003921388254358702645675303634856116179778296170067757689007834599572703198434768099525282582863095048000907580179244137152620331214714322331419204111697995893313671713761912543033241113212966958121409721832888052993037937594407417258813389695277073311705601358080505524701801111722844081467202182453089725217846199308533992282380610249925556296275025694131656925588261747946968345949591982262388495658193977521662170001828391381130670047355983170820437140936544275053389624868526013656968993899651661230760940293748941005295181197645656098994951739401855638122650464120804411816629140623871186877654619081907241065086376589522852341735397930588071139780721461973127240821392105856330493858955300344730429616872137561154494509975879453199147663479962339375040103465661471655607568390191507971715890888231090840441294304365227343689775356750358899082413371607226818969987276770213501757587309543660924875843069579075724639992656019652285702637045683349836987813575286584485974999559409471943872111729961132101603545427002769020847415523614557330744544023928776369762505748254523523794568838498155209333653235811288686906821708904990006791784327457763569906457078102602063886767389187912729444099759498675748230239944194512726198994772223601688453987882305312311041348972371103180386837840359164778962854233887232795850588175050755421968371390293602215813425853041357031004063472098841752281937246238656027431695057496943145669364886426829246963479494449241179068377514802162790839641494480918090089444128798852514201495098926971370756867863774890673398604184971425740276877989418353265420472205425185925745559686457827327175981255577241048053236978207634280374395834996584431814607592498419863634293717936753559675053671005238508685725312006242895550185934421869304297667596970292356083820024634740769133343576887162721617591335076213523535243699635610291680638575567226850794184123662802966039016857018759857610898495681068805025011761701169576759731244804586926195351295586624405988250759425637633348230309792262369108701996183433015285243341362111982601420719884372439459100078198649346127324096162544538569885267152747245281458651311232107632128033255756016921999379599863327967833858846668104026365125552258492658578916703255845496582423690593920648733851876300761847971423467904749143409718267434946629578662409223657543985221443070307429426474326531192838040145223084580216092677601058812276058460843351372652709259733177420390132586243948100097230235873352830756496963353973762087786966515261099494807902960452181083061090605020244036143071545698412794762937717237944716375230116378345918637380910579714164547135069638203549124821940521532128622214552111106928780777513572703733961562802055438121749863941129966026020127628780172473729650894784609174882293868283651023070406197904868393495575485200777053853394194048597983850622799322780511337879553998750761261596104399132598985861266293216701232958359552122057871211631539087631353935983938609431341938836383571000649299896526967688566627519917168294165487306306179705563436437119162057080271364833123002395872786836398616728446510913838056743769865076128519687400922751353673979764050204974279546703651105987451895348848540619359866162038621247045004257958552502300252979949265313832294419329956759313083694314445597465348132525651522795265839542262409119041836515957136793814621725911647042149661532275839675123408708170621727153947388397829508445510348648081991668684692200781946308928501213391013951503442180293763060348005978028592098619684623971174465382057611574985533797289081170097011632441706359810921496874864342331618895440563036997329840316025164091448254794233626144462006162602108785151266342221388418992482910630903109424119776140032409514582773925097026268408109363744420641804340637423810080966866894627531355596742076610429247978138535428435182051537298549029224345160348159929865221774355376624446678506514177425889772924263483949753890340299033896662738594022468636374026482791118008562874510957882989273356176137195718848398438021743700713786083415663915296795157902846117061959459091311973444223903427767982024736412486181677034710009988359648640133673262956699909587026252052038127858610943204237203138249976150494135423687925642746604557351685781573560681743025507971804202541573842679392676392014099649737503528945818392497645746011621324676100647530373427718769417204342786511035241629784760828151224046644988816637765742430142176653270775349416903564842805975801605050191156529236933840743128236490415376981841098777883130564541085052289463659643699879039328452885520075160451660189833017917384287823331386653114434880621541908234152364375633573902784274844616249544845551431566683134525097141777612399209381407947602006524167356428264212984556358089508466633473569155364634482134157657972189313683295878244754106358981595051812396778649791141893506298892780701635185231818709364751208770868010367186368490391821923592403848440260082060713230344011906605818385468147973871416111663418645035093905677456635969152766544282813194050565921996795188039924852242726141442024730693556161361169326068471067820867101572511626755189554349208124802200673587098601629365396255650427908065048004201875281620878849812954019034576612599134887294240629268321499151701636410368267533415535746072937351829280443817177866224846640837487008439892597044795346441993415940305531574873335312246298036102724657249894912730282509820154809943482375481462158015258786321081721625594286184304713703421246333076085952929078071449228439929092893754615923311844524726367639771563324144507130960051518299961740686179793472378010476032505153898077507023990578311647696308766284003314075793872960001960440181602176596104410949709822752777733430476740969555206402353903753609567356654995063768407956550473819701047153372234807328825133761715267590756028570828952412962302006619528172200108524163939833441176066891348008667060021776319846786502676251857510419483725146237308432891501898079921159502852194123566175806538982792109429986960890375656738334482283186628420063281625845023124778633713031408972590542025462655061978619156588132998422994891510232900756401083552883349565298098785294040883773774427259585470770202884760097735368179243176757964388669735685988231540420835557331925576768585364274407571300094235672929856572173860550847484196153908459165204610839915753227166760506478681910417268732703775985798006551594263126306259864581291084183065012471055990648738080069764438356598065760617168016610214742302194751980652738586045587515554367676798052912481117088329102663949428398558918463621614716172056390633310868200298007167329514875741515368313676807837755158957202689830665887264088973798575309584553757465216384127080102002539300974158604441138082338976373494843874237103543761770888001482638157676452044060767446529716007628386765985014642046989461042370257700300284437569248744974551714093298294595271748614951109858020238655462630864115486034448898009148312888713415386728132549247150744811130518799623895454581854187706539937161033759964781750137322659641251819963501963306173951968356374374961305995343416127437558943079426302227472510510759191717484632793788911264485668838904641505315780103317885886857314554370882717861594159693171566441124837039335633494171160115173249760237204096232463388252524736172211723982149093324994320910738630371973750245325059077048914579205341807910210065329434304841878282407546791663814928761355554643236854674279952062350623813960054802788018203880250378865974383929199248012395192102752032811663896854547516908752391917184537523048401583721177231668977103849950846434941225119769945820285917741324511773052129075532946676443248963333708050647782151241594047326828053864558148517750172181045075211967989562605415966039916385333939625960867845046884627763382250754130587257176088468087093319449754092447203353984837921516914494182713399161215649407928851673420477288271626547743572270390660830594412315122788659572769924299558736210595754139594621412046819746324367766952984123803778174870184808980170807445104212119197382868443071518322745194414114055286330987010788816797387060939354952093060747996888775009378431962450038614098875594601759069136181013728489707818278708646437981368118779205523231206967549974133057150585260666780525254017888049260086697808599479267724606958732055196060229737047974835459749785637409547798218725617060201101747602705989596926407440512495083696866108886933271669090062113865815937259404431984424644599895643977394133851531130734824870829302765175931478976175734621796378291765154197497334389015092027611483641733844275394760653492950897958723965261827500165664783152495767275811500671285882487888663997495264039395275464603199644402253752717143377893633555668531937871470616831407976636417868381027550641292319740255078912686525517341488489467624568302300671696253201933662991504072478460636274262827685028498432263845524645599133209745568999263414204072841739394138803900152934828024643639799752277607156617498782707903157418408910526676844488966752630638237568838124685170489598240958318498057560049844644375346247990200214411036319486304920714845965990672726901578434165611135034037678716528286167945170403211675529706080211713683466413297502429300271461186911769612960079621109312599006281406334181649029313364159163986946008538072602898694660028518711978608554878249973948616279171896857782069821638664827627236613642840000975170856433889733786608548345428066082121839646844695094789759510559189151523059450395132331863669752882387084495258594741684542984884437555582914567421809939229817064335158180596320597948086481090407928182603843619900905128724015359660954135503045936318978791802741665214517125445941117076770609313314718389013764675416425566022510568030516313874519742510648742904438659705377812316640262727057407467455422535614230867090242100205967983682841307941123926506641277866910871864334131834633950953924609510101504036920260825804120581566340990570829025542703286670896267813783121848277537848109924763280749208411870614125761666072073688318103324394616221793837444513369225504495477483542958327328380982058241873949198414784510301482819955704217797472205562564575651880379716908450383914436768044505632276065682059049497091460467045579376108214816847025014866251526018138592550149141376704439465673015058473990106628041986304558144798283732165307390511414059720684769362724296143084147051278338755881977065778873345007435301782197671700441082377138380899285689388027521590025028684927938942345586367988851020510848326443497493959183550979872518231697049518446680217931236916832236256451413376550060246514914412442948889723640403714325206732371970389634538394487143425584327984282406613906326001186481005058103980120988576014504114997643960442175308669438163803172107134021246701051556724355990662373825449899684145113123093885282868869672957094694593357798934169409024355238339205810232114554876662045052437020090608591750202659890053745930560421159226727255302903686844641626330843137974381437734805877516063857018064154437210420497524133131729943019871088478124820866664877457030035828349924114933365189762049950129039916859839611705203130916402187459706829148044060439454036749204560123478972096403874981344917640360323631040683541454784741337927431772878370421801540614862405098303492707576443897381471404410188279332114767315584766422998722494099645426522833570477596708747343615465490942528584995102299131723400152570559885417678460026071110027199488625793074864700984445049633204317486116783050945221183668874641549016161713574782166994051566056429424709138994077619588306903938211090116414514123602199211761005553552539567267909220663525452182945376438715559935487340371651664999310308581203241671876569590406530732539948121469225609939361131051679841278189560191951264062843297181165714291723314657812063596841518276929232783831281372859548200325422178455314797817563349736202495309350727466798702330259809691983432965257723349073877577050451342612720949453285860448067898715974161117939399564371440537635221502815040258567104944213527358915247565099295512898351322229287117387103459564938599204301951806605198366961480789584630759227094113367244551420793786994193362460661596709306913434274469718421888949631700737631927116576348623418444991653496234691602494451164935704356635213202097526459337759370231694261705649126479403395272380003127158356521036537200149081976222345182126032884459722744063850756748726820725915216650313853324484069968289927193828910307497396239498375891951020000621410551243674588460214241714691877461790828594602833899057004714949496281420995346840057289617356127841850367543709993774339280244704248939455124279491189829952464515323212697012272500119936737889648303700930394148276018303362479204519069312805461911293249641634908461405156946662325340920327450710094776424791398333665849413541817501154169471486943370077775239541176326687617013274569738959875022351751314147110384004621618682622355200874496180237651480962168766328204147094986983564488750390492929085387109788843883600947740585558324577403622667827232651769224927044107666167054644854485774996221562633111648849583175221301056403164955179945132522513626742337932974191776611330216286064888347779539456063902849759426540142419665209422821330547257714265751820902005966829162634591280642798899465183270884435570049745160310001931190543050713353853030269646439795002116257675527883965150780046966080622326244167499784870719133722960076735531476593824347148090341907607640752930171367803634637112001147320163296815318824772713588517872475505263229586520846458275946426602261215489427386445875425095315423422880149062353451861244540138942476441790915006481445243097463437355918956070558522017109681752655670305499200273169754329527626882570983793565824015461645156238952231419315122932258735131776123015031359908585752241728341043823431781452377719077641106944257835796999264337705439984552462990398442604499787418708080967680194669969190228590327929768452640107241746050690270371825721252856261362906705417590917310638139932905149172020412783464234823313608821413729075356057171460569293081247051174440238798677357061154592435671115769371936513589795210521367487504034732145734700141351362769485952644323382605470792973668680132498728232857664953700940882928283037742245736769678970480327875529157251972028797786343403855881374694594149070742147071443642556329826767242597364244619250111538557046945370662921127119207823495178694171941784649577820634311764174488382082958346071847186086388899560837140529664415594334270676313801981171160471160197989263351522169423412866239024716433454783228819434203444994621498871113359406878567935740110917099172083108839241977804348125362747562784828762481683851799881897464659585708786404740038966959182598551821020301232801763629608707371215471913207080563868755452546602954220238274201556360643154419188590888637821033492334814984977539292778931758555898538721273723782748724401103512802491704012856361084101149705279782236830016360898347088833753198349254606332081455074942855491297663656475688610691214066351908492856640098517934011301088452765579884278044323706072468658815318274796871111639102893719768760771567967907467670733778516512949577604705904407415540070199739366650840728994291039252281115788215731067275252709448450625292041019453030482893934090330061930235985877444601189911101284007610520268445951373009361447541327575608341390690162390477548820087749372057252216487122252039638717254958469119366896135105105529549604004206524608460131708485908709606486371067616359427252417415525535223306691360775876037026101803148667005243579062887156521939963706528205872423454485378490826931594694238381008162736328914704258290256223114666033764937487928235901763129584080658265242049555625745103405244726550679567842240978443248499107703968150960960252450903476796454100129591526872339713018449329394935181969427381657557239837266519857028551989117819381798700507376917394964187714888750760635630777563234030333913331372473371852713690001677042582817754486666509850656239415461821435453542007318191002099245970043744646204739224453293683620666939776305104325791032207251552157922824311027366556645749830156178874916563771015711110386574038212986961330617142094646112172152499085681285985204376083515849303766591256628330170067537008059445769188629667408649682398510111455112694087142004497432510298286377774658614460133940876187375482861330962549131351349883090041908112497702513360031849023986064950654844392608268367996129612817130520440659258267302502314928348484186843117079687306442088445831173916022561761866208557740704246571512137704782508746914266034586766508972518090101011266676273748304784461296964717701311741336693193559799155633413502822651228565805839325181599923455866977213217614292203522711908422516143219180440588687765103112580272154554263623883862821393307777118631876148467546725271751350910313533339234084288978772688802677921505935990373628373217404518985288663296230752706524790555374740962934546349156846098758322218203450986461621798653937163141451168828047145410502963236977933055554472590805593447983559536681308444894479571994403074328294460186997772733943667012529667333903852492493487937672901151915576683499986042122668404126465266806163294125814029488631348726107714402017355543313726023481264022047451237939865454582556664156561049474042996043812471965615737295876970805866912915899645824628792876398003295849656548748291026181755465262326314457054366854056033834804353288424250719951593957346169286800285003947937240054298645195735770866254485638514592177453000896742368654609968189116149056667021389207753920161821179871286146665262634844196881527837622836279013721277673542830293328069019089820402535160231425509030901134766730310798202395873961881495191178711431738405187118227828990880518475089559628573967720210062069074698649218149406702293314207461883102493916628863576573911322163218553139493872157204894511580899996660687093904329446313934964978902044181554448442120921049355459091502261417615016959120246059582493384474843212823572794289720822926966928487442054686477871112819561288596200955036425315300042567633846798455296556023913999285755000030988504584904547302732892251672552710225494250663072775225831919780411663567855922164029640029297736458875338761797427110634804757639898625888289995000884526591689986296557034178068874057841844823120920297608159031537967543596955478531360315140539487001931424022370642797740564738331777263779146691642282764740917885411881894213709269374059462074922933322571136502662682530818209957602698166112348181312099005687397761396554755949631294696199617162210803268216567797064569164607969975434982923431357362483761169250978393059672279540538166866247868952990587787146335777085222460848246863887540504630188454129273457065160290132961896021050463006920294244020914844908845794228549434865415925636986825248332339630708544603171344249572707251319938879554102582588033533779675555762446297438901216118474806207078226057574283418959513477107774045222478881515028306969593693133265582084591508905918347540940545461691419112199243299175061144835206419124812521311583443040912249464643856657035364977995598004266783349819692725071970058737811096031078835670050372771391072392567078010104975894664265928626779169366688568176423494513568545224664049274328608130611624316530079386225610228360656653402508253556420099018928755625125341829890100703266682017847009708149740431421828551687234802960449381006143063291736397485443049118413597519678638804033243902277172513480947694269192030291547750051648056381606855484682731882702892562602275118940056756269504660486684772153651000607980053799715690659537308843076393695443904562076568109174107081826865681853016565646472555744282739563010958917977028494818556267376492704026605428714663917699461268699730106036130147572734476915569420251204868462847443010749693734086378613452698681180017270534729056778430835995411834279046666939104081249062579820584793088996465463900188075567580799079492597442671708720600946500353727125854803902754110290434775960365349113736326266521720702302453310501183930734489066216199656910639434365635576032431658089294891715534504826840518973547000901922318573405693885513870586552148832237204407572345199895511903197251396273338615337774088241165489518256264633177352911772937612163814691506291025622159062241214693865449474198861151479681628556355874287200172760135207228278949613868763979804524048227717524093978069922334609778067781518919620059730838742052009423990979542623702165766671192914547358200496891476346845406810033198315882887113065209988241676410529201791138909885285979131739708142604820600159693093534935920428395435077313283380944031030692757773228021796437196950669672244346722331895027067554671716939049092269941461389772259305791693103509589981033851012754741733853203470077540073550160967035993422333258899089422894431545638043196052711211727703826225190915535866156247545838099977112013060596424050545451274633826581548315452882784127372600764010125620541061027654869164204061038927845465345932520808524905268774240074954949396379772791562754849105050088213771423812609290518632752056690922329182714229653843110197462289756803209324486205844542885842918902991121783465733745339872496002952275142337309946568143227056247857122231124156433080546516222984930583665715607872333387026480640158971060443882701703530264165315896446786035835441853438539138705020307209395891016256555887177484160951594957534158530572390352861239702015502499764082514584298356224531021178644440071986961981773708538449203328422485534730393354846593160149187067341487961188355626614574215837293675628120982158188031793291783835873420004857139464827580534563783631803893917138054640265615442193281374644338684221563338430025766850046427059617896224163823746792457984239528684034995433276163776454166897598321590565878338550370230336704182692067732312270506965549171378789128635760728271437542877785554150605934819293451803895164748588271674067972064889892173181615054363245496559644932470241268096280246557936723116228702506456133584500141918221882280598649081342673805717297854126617675490233543079343482992089523325841150850132118389451233625532964720107557148485884760925565178248667362436229979792603661283630153802710990979164190515513341302647035489469739856681723459737924057745190846047943922889203600239754801338924193092090268806033206101669652329338098910865962871253280223612367008697492847505293898925240200552333294861983379534874484631512385284821330658076856000262085308524808543867704632559332897686795683066884642492382234155597467980682953018826133228742285573308822439652355242545204727666007861423385619960511349154437557826935326636975678306654259343374332782754176270855673104910328456102254143898227047782234621342751015712643516902070997201048826481137021792641442167624567388365625675007489549196054328142443146656504448855908471547587093750578301769270008235799966050363618530457092371730313443686068043692840168758959143623125891096418005215693223599489692960844172703189404580929295874466340613084417766895508603498796707918847146990363489731819015049083263443874944564367739117549047703421460874416817728841432440488497625493705244547040212430424434899433489579704516236497748959287411773349877715289790423952098679694814824723636664695344836816325354938672790236357585047587288387695702176194511337992661578901546225556289981670201894233833224863479738091989886442557197378413146883593783217015694310269415382693654324486001269248098372573107340249028687616537561673059406523885140509485153850115786866895102890468840332072897664837853036047830504491656110742100755869727622981858348591983593746252511060470993673202228650679940618781807870485604538343837227769368132309729138398832895381961486812333311778403180008341692988261089925842340292368858899777479080627508284123578441351888204089327854595897704988692488906321670479215561792587131810068626470428179142954704058645630098150325652052499227034907357868423649610099040428086248088784083767981185205344904376707981978986087328216020310728937943145863812502914259437522044399894697465690720432368582252847448703148497519635376519668062684995333395348622101470680203555110230549253513463236468798428949633853892325058097537842339369343480812010479068875183958756583491614731961448114426733218276632299298079884424827376792349241161394748040188770636202122481467777608598297511702104391162461844971650543952646224161112351720164137077562239879948843090470570573684611607224837041926043282486889750484906052679719177229613101602635766438611366840005198347929985584893693114973799639231768328876606442483405633260796873806225159705040429523016566803049230161849007277567002294980115049645850786471445835236182168357967787626885202753437023665503485647323500630487290768473414829290264229519451255281152949435866627076434544890596072427922221954915836845868512766211723652763392465518834608783494660995912315428444969707685916326493901246002425329092481377664652653385353521464495968217719995840089687027962889923408375649693771241068251156641060803185120890381641009739355812126272331652147883710250566028608977751605097015740805309976309249337248146261735387586250304882568011591077640489718545288684818661175110068690119717116337925065013133696646106602533777717405947829514634551847368791609398605606438384587161487439557101556577567207946422531246581303307150275400947235025207505337494190106994583026905693652246184463061069523905658584743440963893800687506916938469946264471717123824472755909196215821703990008156837136339136485593461168044685860522965031938734502605123255579738423099650539721502075718140181299304626723149988566417780211693715707183373367540652909394102470684119697667426629094983137504697815164663157610358930175726268373152890262265608221906315823849882494558027270237351863320594672296618604028132327326362376757178560489007921266290814782256699358269055463350636344577226230399161484207156751666830708778153043935423268496799168178541822417474606334542919044083599608565212512330753523957800186546343400167836420710883753948917609400227768132399296494526639300581563736953081293306048692215095156622931947016893391039126522724147711696415589155573084435640323248194403761137486028925222835286972665212443014718851106027588984204786708612203752349235296956088245999842726463431055723260537018563410353456671149469974696905733434428814481596544864687076945044809613195207573553521592398194206645920608736468185263792067920035765770461358464667939751012912924062957681288477132557296774038828843040502225677788600832988478481984420105409909158132302871963129605944174937970706632958740195599637129788534089175622045211526253737379250957483981602904314394995776100192404218082479936751585934276240779026163246622066208237585213121260454843160653427863003779868187415887541729293153153415700454885067600769701128530871377883468697572337190191069308869064263225501336758690441524019557313531268309736379159055095410686915937370292404433274642273835733163949456269385420796327028515497346871567732278635009006638606593648059137465535105534711766008808936326505978869377456513721411263313025814582453477067153276402381034325177499955523238328412274653057583353028344041437547033037610026671841925887868360678659489770856906061548968999831642309772290524073604776201283282125907293959982018252491671674081556500516459266718808080587617338572414287329469042920521438968400000923168408863727213062497232764412936520823211315852799082573766372949519991970088130563935888672840719909943991504474545548820964942044752613331037992862380186216684783553967226776899621171723193376803556387619621803562349941630346258753739475094026777759427055875791749204707672286095571418425551265560847159554293197565788451262435516049450563145098720110219930372008278541562521242326308086393639733652311471789342540850222113519741724315926986412652175898939034802775152031606671237017104391603073215463408395556753398686574655854142409318768671364995547441272709798486513356313234199967350638434795694129517013690910231616065491663329534466118499971167424707242543979495972802441494387822620114074281171602299484010869356874249887385742445476287913461595131966367507550711441860602076628112480520656500037947579348929472395401153572863818376307696013633958494283659960605761878925232018787236673292698292074263908786838323551423859242743686365205703109501443660094195157049943348428254372815071326817789424538345516233515508785367153293511039067305598361614895593569148804738222379753981573568142915849419934772526410288843940864246611581784558217802752887584087389184011583795116466879946224502185080580616726321752424422855087148372847227417736389228453086004612707252166124655061672281213095250890183725726406271046618739630444696320166540123942558938906667849836160478506163406766894922973293448916640452813556019419132512597077348017691679741294214419303107309980940368613481011652038926631908734457222172946846056925854688774728974578886732449739441356064862682429379392928413588780279861503764482058417756933476435294439089373851752973781783454634590490350792255648121813563987529119550638731044281237795951773379927995596732691237606541558786230216991176543130424978250697176019459883176800005812414375288577631237012180857091245867953645385698634017193455038932055507831047111241153596513899620141784131222939898367125371951812205692672858854877348248777384474041473842966579743360689906143377474893061622528829325389860124713161112524867954455133476252581904179942425492382674655349427176297517741474947113159840795057020763110040641520766631372337807320287339503561043080876657472243220844528479507127050852340563843291676161636710648409174641761381413959524620281022884108703232203934143219794718662686222862967219009491099020600679840390504150385967749275848790318014820305496980869126806834013040816875480665597729588364709152915728183629108425899685430953304645886250564584056337925412525377959292935228941812085486311163066342153615333570183816408486862432658743920718950640613745790660563098750644289574237001206091982777877210274291263142157156281800353963468852077163802309174047628423889252237939665232914052322476525260575321831872623477725544560454752423289766995219817763776420756151374378326888394848158829539806535227353661557659643780280692601379654627220726210457447274093543410900940727459511630081453169693910615249366952054418261321529797570508011395888292753355656338393122372089124403823457594719640115372734857971188919524944326462964114444734230897556293508683000640225622600439126718784788262837450950969986814246312516804851032528996567555165664193878144107004049645301821751031501024726765971825084853796243968669053476578300261972227334419620691982609526863743367348182384924209100495535432222665273357030768624286007309046193318713878793536621202187410095421446745874439095446018994072366988432272552812145012671858877830488652153463102043801446711381250621589409989488895581411633073185441302529917617100157075788750019858614845365950519311425275309900512482925846532842845823860883247439014485735928823617051961068659158210446021726141183684213930890091311897213161754555004901249894897338283290374870531484665378438808950108849022588607979787508537707763365003724029623466866028106275842190779040907341084438726248747065234101410999676913629849937886093693520465773902661814044930404778908107641843082152759213099479675990023028553164687071772446320737717612215847663828776300222476728306566688566182931928754363013446930363269806389165281171896005587832590461739285378293998457444531359100508567107353071237608576572503495613202471438096778009362478146963395944385530572989191523340986678610378657501227993996219120563024802087947169957609884313959789288733171811748460323157177864899912078494281807373212584591730057132946031759447174065094132617573285407053702949910236512536425634871518660722608643262722065439697530173077132736081312101432109358711005023570993623697606386959251778472357867143395875803838096545568863040203736861156740375220546539367665989189051885512221861003829169349877082729433493087416584031763789880993610558553126852404930669704680988143541508280661921385865391604778480105745399087761808536723163050856951660495070729107515353554002918376376652848173851320283321998208147603088437665078384538346075931884919864458844211987399571859685497118379909751431893296555928799825827952586256575564173586278344822591146439878675999840744975803332921621542074029614378755685174064521583085667866185622796224421427401990331230597996133779640772353186848741736304535978993831823118805459040245097723802307614324867726713337334945646979950848945247214760569477090728021571198080275246623038395635033957004923926187613377188773970989216183043513052096569691893035066606519995197251421299245025368431044872567896806791392777201546029296992630447804661143742840117012337688855897460435307975385189437965892798692064489927859032187958751502257648840486561759677634275744467221658895181467931013090901983113305626025329291842867160046485151976033549060389003544164316329269413570470820757519360315491541232953232925481544141399191377486869851611326427254874474921819617485623929055472641279335247774206867448355663703378680427209838749180635799209145245410889537676761277518180684814232649959588855398048339336199614187476808621200430018146448778285819643805336036444633964640064308371728815090569719201060864393276793394115104669338095637252390943940823105929258408517946737536512048327571720306753794944775326585142442600444037855279819971792246477781806854199057583465822123293837311438385117673565744130004152705213825376222700630280833988429680644166080044627533891163515862776922809587132624987113812591187503439908996103724690252697006430385190341198042735419067971359997156895475004970093729133685400474575096644941154391121451148042049204204384689921333697475846489909773525156016063926657968530569464281915338005277739432887487895511414848606905396464666063296555771195700680809472532912142530279142829503987175672363924577479359555741110172077742979061716466416305337703489516203167586818924738765571528526447237214281105664250399376089637328808719742418806905486956414341952204197494991882866849787673746575169936473885742577744744454781779981469452372318905448859647589082729957470386140529364520783276302167888112785992250363038564844407221011090712294831971658541280300035885369267847103399675623496245755823322818201048314203610299903640740760343758973667496450333210791165662046823901868449759718001929431421105381526090792099790501137535818566483491597161645072324053519327392220722662380447362347229726744927537888901405522304019888374108223631530511196349815661150644664355939942766982623606560930014278686350766077976813755341909511067406099378219381284972625914784061128536454983033831730659493435810096562969664408748866026616557021589128326745467441914452756744445502311843193245981311586299227634943372741085011254105629027938488959496178057965937528345062357026807030398815438299170148372400622951736650962117674604505863397479443971597764964529152505151436294737078664134758096606332135212756105922970005325359987462460883162766862222319035288842941991808810662276403890359063868455225113498490748747651557593128275597446161849006546305822691663690530323062012481235666577472848261138093006725709983216135954377227056416161676149830216376399052101489139029742898519488716817283959962907723171772815654682336300453619043873702073707167897430805173085033154684338967042836711160002124081259988016041591792192932680097849744024187139062915246292071219848526490373466913749124904258186183935121207569976945094983282279288442902816384897429269767245348716602365571554889162749045395291940885123132212976391820560316924805932576293376158088718281767360668974766913264059555527690556316402268766849700021958988456995370615308783554265361916595995363175769140455591929400872671418165579629861411995614048486920557535210964352068963464929584444796373915225337547744458274047469811327451716896310916563096284530604820258394106392549784815373187861308748916006655354248286441461633142038067899923070238429486398714948100325350524096945090221152292080063200924449820491152330711423551502723755034474091415707731676923366242987071807403619565548930945042828599079901883542576917987444048092139200572345449258072207907169584164386575638726709171267491021237506936073434368493494067464618279740131647274945618393133518011706813442285682470038064790960641036413098233042525362785157113270913027097062628406284747703020312293388012512482914389743135147153829366974319954932894762224659718956371517081924495516170994437839975657920381536191737321186060153638586619987191688772757601887842327107552890972893103371945474574663944047724403775082492465063745931361648851070741572700815065815154897991688556111538220943339554326800177938495318128739071879816297248494967144587693067364719727405634388857322949109611554982011741144805168789169297071832119256527763824581284027950807501279486391478752125093375910491303534111806849716910250191791997131907280576619369297571753282900359250547776694347589762725306005876222154689406542526117992145315592507576201681802825960973682901476669805320126926760946500111488426720178362170860982311086547056705323154818479939956760803362444617998088628186994930424372137176115242145606137785867494751323748188635329901844176665257702640155491316581937036795212604131360400549621729364010031410889366243077570138809782819898619407178514017596698172626465986069166086299652478552087857384737413732130800294300562814356487791199524137552587873729596626228962596949029578486378936890566805356201576501207322303145901942703147802704593834602139088249043831250256255489177645416424094028863653542148169039237666219994765583456110891185177122460259362560781148176241859000508530397614871558273750300983342213633246119176070023362055412240015874350065695731700585475148936111322030607432507207739170732701181779738412548110986940577424252746251492258492758369182297492224093317316145165930040422529754225555271846718900163841473744072344102525179653302876795074416015294922459259672558220913563012130938515294676001936794403869579773535021037505342013773846333293155476287783325129291082571521834656751686232328783169809673801234905926539800040348551659997597730518333609975032592170700896085960709375424941843591221088155845231959334561823156746349493129389882091653284588134115349509397576987028551655336899774535735180596788280230732694288341502245853044795644781776426014120899149167130925734619854779045223626801693159594458737888284568495725564530602024425815760864283273207105402885628807216134099914376439625876015594846392492136176052799568598076453799930270051000340893998507300101085467735656943629454651095745275518891920554743873709720900771838460115681240176389700978979547905653233809554640577734571938923197711827295013680459261708201381097004621730391424233159557784310785062772899562441365088909052199983194444737184504506320653105683310479105316063889781647439224984490260854700191610981679844700907824244281336405723287100624641976572352925597570585585649393476819169756280272980673594361377634071951570294925900839639486212497732731851516068760920442973373522646043357339852969517044919968533339994005065635252578696026605928952369509358301568405406449979109807836479371807456043059589326674236398540607546263303623819271469824910163699171676486102400437600740144249235419724708965611059604353344092118746365483218000496517289457853240255766189871387891356023616740181948334131614762846067445276332137082178744319525989418733615347291386239434946553225142929462283171588565842586119951450513319827269635613865127402995268823737465215289501567838305089585080840681769962764134076094139486528483983610708098150867257003383251226992502178645673105602240286625327924890670067383088900258091060117154194830709383103068326764810824876901220987493857958310186260185626698919589578336706536946041631475432986540465946167566359090634246902743641875721750097597728924691778837716935161302524109656036225595380710444765731144411568504275371177066079733514048474347293947176378622663431406660840540127795464368220991837384393720902799448383954646345057558640756675510940273546088505978261896379779813255434760519383087177256316760367371645542571419551318201196079592726807023417600150189841693859316888463159963810662572663567015569111187117306218289197356907661104210366218319260004200880587209685088509593638426121401002733868950783156988125521639119169638877509059148000589309013522243514715575213825352804386927429531527486952411827209153333294590883631375443820668808899119931191915956347477241186480905641411595857861303925442909059979196036965433865517911809080969466416221727619899231039500998268862740268842851230494258967779581380254538107967387399137097348149309628682675037306330276096530855780636669988225361640417436313543469607129258469661994459053795995932643466529576502613408110069120953123899780854308182516533608674228581546469214846553042398023796018462868865930980392212873346189552601142996933240504646136062775671907950437238184032081575680692695535244825100147172792992203936760460389712697234741481243638365015304340353935717159530783331843166953793846420773352098118014747108361149391966948888822646140739164945639697857964163908243405788461258981343994388159558677484764371475398597680985647119756608073413722213021844372103505803799731471275833290723087146270616020048710383645516683058145459813210969167823778937142756962228519909250008616068109383066191442662365907636043873095929092214386985332703815232747100865757828945656578941098423588530208924804733432446843504146770607094321037872242012061078195179903662733570721760549410386870082051213960411584853256203208672079856528090544370852522994242702097866787909652048523253307696584411811717201931829665700577401393550707306868599995696894458923193817144552602845737660125871538481238011415587452597754275194774951041938324992634131537696055504327031748405541607280820417751850672683457162312619634636396824081283131324220559031491784484801445239652994535402659182604190076638491136363324050868592438657898014210675802999307637897102726814847309119849519178528052764184153094261645705119293598007789934987088462678385958903523806292969775453970377201007074579031780666514471559997538970588424227869352001718809026613046623652818083748369716867092923745967742255352169500120234114891573253965608200821554210880577671151264258934721524280254028015403423393359409311035891129165322949043392654071732569603286778642942212507492651039421868254816558394741305445645827967345705179775708576633782977917266361858871793642112910115924840808044570694233796397437878239419609231892704090858313627605364415820154912750072903547954457843865043636627651218235910769664111629943418822824637592092729774839181576613673213831659526319513779427572626971649921838345613857516920666877028989691808598663291867337112928018522087086425229524373845540500151025459164524174893896030499702804200940805170334651741428478163900923194315132632727282563215603198637127990302044234288806604641115008677729855887234250918432569282394969604289099057444063204687208113770449559940080148708047518599705500173713846364403826352807615131828385376929201780771040304861612605302832353651953277777641204930202448041599525642332738611974393676971350312685391677152062594249816575845540704003660989538723217047631751425339553050407200787615450521692022641215765965141815570534398687150127233488858027665232148392069616205752165405679953232063953365850748804076016458741108070633693081944285876821690461138442570892088313934800133757770909179922861091487206080130539076564805002474652221872553623251873230812471193609845552385428437848523553734017090141836352693625757658418808438155103259160241368347294709086207298887464194331176027253123757836432869164847005557589387665192569142251680671747352204002168964928776079571619639966773224803461450579033473285384597184881994771825392176235712025119443163459289400464702815422827525151547283194401004949963045400870137298024181589336859058631918227896903155712937871136472327422782233998395884979284526149631441209073179070043005456109921421607232628759705131331866277908376601028343297720344939750242694685497873872949245437530561158346134209782642253215302438318168185525121919568607687928369488600790602780779348975033370708610804552853601950998642756642171858530384002331898110788906700274121764870983488359474793486855961212574536178624653154438580463704303860261140381618025912471003372935715559634194272674827927016501321743129425886719499845730305128013310809063001333708917752638628698620326169692980585548227965581127767685000737613203404988463186490142223977788157445880146137530631996099796467703997451675414816524039716092766292436937752548722340364213513067105394084013933910270797910752365895798652584177352260665453180071046005695063191803821243084119710659983035329940419156677805345331208302196718256230908793335268641979230542227807093658270603787117921046553709542298921047407928155758009085466094117211895301359143425837604116647670022224642771715772239623507589464972356209865811529028480493775161727842924460431407119588090382186933050098714933039024686386507786218887800168997364009999717504774879208593114030528607751942300974836856030202803760254169776884860132142543936579288634143460212334127993232327294058508784517742972296010069818784612047182085120637220690378042837615105956990717661593856948848460137708847675567726104825723340046120328255852212495137196770165369016993640477415524112758824731365793583516521829009754715893403730393449817465784036227985330197651451909634370517872988609773251528888235704651204860376351563605837897851920270565442434396981781688503685450856079355717385821750217915096958236469918752665775892737100165405774516489563585567852963824964933399298207234284219801631027601954989096866007179858734662683780447494837596570590089946238394187549034383069756669953147550380444470623519007893248519989362216384657606024556644803049294392803255423529899194581594553588941767558470056709972301541957708213693445428539275118271725807336534742926260976997400558807248779399222897163351305852845657381001553957699073896180958774132723092610783744675984756063380976349786436742919268967933797957276657147266375449240525246530360277866820551417585844054220473688274081420274401629059147968491192385468778461563373500247135417012138440530556611021210756288757638268366322904245196607321417138840344314355271413019802720212570312404948238952611660356167313389911928810083761131085994454887736275562150855811060623428688028042364725397469726189962104091105284976986089625857116589094797733943554534458366472702751035001930686145659871372343731331532187529585465526518077166543957239146205905197055125082375782504666106450894894861861129562729470525402505341362366843494950971010653605674992247227372825044216848720302442070424915865166558315474462368784075375488471495430365711820942721246420696159438515703598266347282055242174204687510392108515151177086733696884600065147854530243192933726992933091714029537590012418377688710980701779972084348994070991000062810840210816306066201532079750586719388230918681852561060284693897959236520060117583110691588062662070494983332092182971962225422532373435942838651823240493467105275505511966737821320212790424079246794264745473219268961611672919941211400958993861027806000366553755711408346848540673971715362236412077131577909913788997764232245601624086926355999259567455892309056136613763168862977976529073076393070320559497680365697504468875520618390934974342833007570134488122268781427027728210345611955835252239670581243015795098470263674479485497744388234573029633794985545027822216030398628995556365700049238730354632750263764546939735454762256140328158475456092829813333352273907777728112456967909644283664713136924752959445121581331139308014777942747470588112959303166878971686640154803861895836713024047837002023638648659958697920422534080344611004303899485591465360000244296432820945997158705024120553904857948739002042345842735349591006470468305561322192590211915014334393202873018522000110437061947995178168935434841675238303782986155425820934297346098757421253232379304859203574259730372053700113019348856999202115307496827774241474213364952750946069867404924312740444279424792413814297754014820211813013730306402968944351817360237610582973101656034951652330086112375237336244516025503443007557179962297434692459535867178789940579126345696154221369280032070076588525796866049539988667703727016420315677116208548364034108941347784409427474591243714065362975933828064361549629143652861489607894909721703491128166139201527973620233539013760637112264171440747925990043266073204910631471206785762339487275390820957314187283058618156741532794565201309297727268682451168882484511980442978296838815514759975720087468004121229904739135634480925245401832162301630959398619040187339532399763397555941810923972846524248270550734368856502498849767885327592042477376534578398052163551418174733500440535473141883816365461697527208518833671065593026573865451531272881553087270857739461115401896039339784816544207470988405421297124384398445799262526373362858511412268410476057636355154800902616855496091962421921709923662294568004093617360636607642573213966920676464732269745626333652843672250094197762509602049418667303844847041970871471741759012854010756937781382945657329227410150014255841885395992803102321449160665668570730285876809334358981333409600575505352196570436428830785275424082933050684067477646567638789316397711731569439912189158368255183167165398054926402638407825357332942662886433024551680925196085862231978305631661467116216181807926286178828467950930912746368107526021853041691051175220340278133590479891571507339361863823078235297076597665998409370150569105814065683355531313506172976171235319783867531876689283059401376175663521664458158419145958194698788905333781348849710797976540324538518049065724532713207353121008994340566248923041905931070331567192126826394930388648549566699494896318483266327361942589066297500673777378569863585469021293794265161043609928378108354909338282686687942947802654367898887480382319909680664064762021190548109673593500672722650796327923496433520074338918393098433544005629164603878793139242010708501440393705702651311268407480875453304372431762594181047944607278277203513695022545528403559662584520362668718196103107092978177371975085324086004669664124700551696292652037099778230051907751384587274532498487052304680429210373704646155518501200583896875481367348827713017766920268712955437151787471659206949092891564870982285121143428592710056501042999398175821246757639709701148620492812757961291505733465556287701482275929907357356239770464904981607285734578763564571353756706657506717404788330320031274530111008454872766366382803151623914090787568967885674398947779508467900324282775599070466720945513911598904098782121218115417505448135935493959119935958003907372725013089342949351528287837272822815077172361765471524246841249899566502819630914451036032195291585599302382379435098065758601500726305745373572571195171080781984929239290825904355459408341993480257015541332970842808762601431497927324149042529012076334087140026895304823582047927543619877708273526702730023244398011440328594467043979643698951377347885481471770378451546381353219468035865299301569735169416034501009058286122500034940160564520040810936768312496209694836082138013115398082634307782223646130065712918853932826516979799111684657740080673460493231887815746439100335788274418477863447666625548426551183683798453121419312698410999850410466798958864334996348067996242803091377659560849517154572151553868157599871107017834653675960183391212092133639538139314908118457000247387847924148836370270518715903731631408187232955371419968503207913961566571471356144947319844491955386849301012414169997596159142863416006743844451227110706194255952069411062100473315035947810705400477906520910387371496976121958373955967030280860193143895714588298914093221101930536089490584033195792313173465078758735522363622429081776950255229045632968931371792314794533224262485617788492730963605335651237002883621336771982866669600403571516565354941083484418012513774670396418414308533915819450861002263496304965886467327772172189278209950860324560173654404367292751088803783585015790336470105796115185676982242368495411234900608319690739156159549075327292581642490460766336787159738556984688419796707537061984439535733076314840163036545733302488501589066266106810482472158904711117918217682528197031602940617240354049858200411156259101428294442374165542611863784801474309298124967465700295442576853312003774842551831700027368717924830562417986155438177531366986950320945936367624657702845014998793852388990172975864158461761444170650544261660756627380166006099688402484576399870786341463238652925812957827818584972816786946979327757406198533165640732015823314219703232077585740142144915479546981875891286733499153245774532804195189925174243650481377667504812411276426077074673278489902113647265379330073920786313829890056306344033970891953930231255987411146221084747155774018449653593957258612315822310015312549070231525387403370677739076693735593191400845785793104449838848698449352431391738203354895346583010811813211770607769546667275310002615189241579374057900774107474760874680292035502421842101979926697002191703287001022838621794693139434857485655257815837719729610263111182027288919790507312080177098448253326589898933339862708714544364117902859488025008342286713704247611148059207677218091228701879561276180344157352343578511280934223828260755624766123118985990327841838221050628936310247734106463055068799637893879437692207826799638798639341091481707747895312506728031301701860453259508458351085942436581523836407701720864287639147877771173144126146495466391645704604581388932353518108966700373874857398185716789983855727310806031842122427036633189532051036584990124409739783170841456777680173652842070581871591891867812048893087232439463171616307542060974461434754370855279486461780690320016487508855636444060836321635806575911179513220086912372964492245065791227361418429022471312738567691121252774483986913964081250634208939528000965013801918968155447637118290962982311696344456539546492400821939247240748562801923467491487958319295684368901351733998532491963182529338624383773568383208847103495422333530286314010132788094510774393332057007935248043127626963825114555144999867837635119687648303238364047253780169907447187818884667952498492308366707661642545697689412171632046839775901537862604253708357908800996679625358695888599819012561378773393573131226315773083614342488104453365385515745047812732141720406301625755596524932241964287881431994103544480323218864200862794943009173306989001728878310942392424453745374908983795947174278316505947549942484425660410493229284655061903334887123374096405211359365835950586501980178065742846747384049499695035573330704815226999695306548266142185995677406596146921558340279630437460858160841515251981963039887332545017160053152541788895794573198904807467153344180033681202730923689275050615195629140885647875075863410901523380963999750604453889493905661712726115178846770821733085583063538588124941922191995668819820118664231068325296099129736144241417135787818286822706936450957191912781785730037690712715029355622160944027941054529261496590568156657401806888493123340475549189869299577482437365041158980623962556908474021239507949958681601072194381182329635679846989066725621830001177804184406497469001080339816150796614887382832649720687693716176549431113654833761236839647534218401679846105887046900210266155161869427380578045849192284945979310153581110611216150277744232307260918414213858299591951025584549120983294029356019698736739644669524155761008507877902973360161326339908831798256382044560902542546252257289051445797573358303919449597793599754936980975373708064356141719869393675194676113232181483994206689102790272989625749166461965057838086127461219379974250184065556015136702175262213805608004100555187064528081966702180286716912943177784264801504206429463322768571203302488471155104225549692776774698849986565551413653679189318478966607551186422634107343748590659329923692800842816118878767688614051392207999810498276245883660004916026333197180463236013641725302818104429231150811905955005393234838932764439357190405007806571527393740010219548385032353651919888674911780664908302933752602026394919023641056520742973055567499058735316959680184518706801043732086631400661615639894027389508383700700172240043867086383146393638671847182797696043980179562546310116609494632855666221004733341528320907606489720787829647903817727394068030286453312043186496141006305961855672510835939244198472245521790353839326140266185073981949745492364653004683296814671682553799401297911214208107323653601552949070195669166059290026914846092812445438442645921810102264945301520587573316635874896154160658741744000793618003536099664577708271455321211248718538719878797314396853092658037226111190772110302264184009154325257954032437493030182176834509831883579265849196080744842893577231037620935128932435011612727877380294433859743300484271811937842042828959029177175378205988590041499752986546916517713690831216399815385373197616045627803923011446465375858593739324296504652605114266668440550953156402396339307547338553681273435794531751962838170513170834024084341436322862726043528068234114764899645718092688950843267340346178205283006233926068892694687259523137508767757253767738790710034059921241698551659814351400381344867700222395674762856653214379017130370772343111482897538184624502202438408779641344925585267838819652040352996779702965131527484427037426982535055949439469430469218991260970113966474362972621308327652848316929781926937513116024823785555535223011833239927999466568997951351561207225577161429903390706088359819018864723252875830394122622153827878394377604454252010999232063947705197828385405012442975418397014355662381384875743995616598905010155849952926211697830939165359818864128821097002082983149312047679366993272071718070814403816227759650440186976631274230663682281890591627148865406759544481903083971235821082662207344126786142112279340575678294319459530756785349407010948239298556494669801641984423041791454701028516266194379068634733799322456516367380046385665632402196490545095708305439923054013234109017290715541114959470112506032989318842917411818943176510770262329462921052202715282148752616924568640443016416862491031628491086657664908842428525984578168313051131990221866387542163426951551057540911044676083365572440807493096671975754182503946840444026553215556004477246131412704168851420231143418724852590415531526092274853763106340601749941767283760275983778258171318471906304210183091955895163526464305803236125094449927406437991792578622674247757176849910585977970101816737572949305268044161833138982575901379243449992084154708628275698779684466780455875770118165126374654244888723651715442335205863605345441301931971620471994437413005237706114861270150050996637842240721549696358358064613837269319188230391934763150201008110161729846007795529127921517299726306144306740690111452553751648081983229820417588469049997394276463959231568298035194310028628913008939027820248006885350372648573894903063683596253922474567975602750606588215547585156808409128396129946002387163275399760980843209228669508925647777486850809909060882995123299110726217733925115956216038862245186424479810237828293634389947046558277358941794987031674700499509757144655975766944976315959032044107747409402630760884680044140192604264392199983734420563771245752747265184020977050554071169534813629940671279576544627592732559346479755112710824988089499467455748933963060444589423565615368175201504610522107042168155160698236354468078976137770431768897028859572371147279977541532603014950808256155590753434333810735109052702851357715066406512278491570830451256221361667876937378879876593673697301623112586096647643347018111262161170737323944423945920573075267021584789014894903295750378209367312802642199630556398761270803245618379803797773664780940224269739439736963036354893174406423900011666956535295964992327436288555466873983414788249418306111508005287893220605694166343205452283727368708523369605372438613285086273659452039499580014497910706254230894058322771803721476356037742078484656254564981596394287306242312264072374061869758665659324844580165420705593873434096539096201595630931442748472595871096150549138233917925968535268480993351998670693766890564006209971915373384436514168451795080829419355803188793923977069768056522681309796951668164103230386150409377872961926360199934567250386698637828940200410353395175577503324079549263069802299052890858795096745887157341486799082457037652871269735909824994271245357520110245671420125959545781299251750290284424057384329758768431328759224996220842638072078584244971066085356561051989323234765291058814124754421187265575097448670239393777997357492682928612455403736430498937583292680650413896538919079460534800142930557899401786060268862178788995073821926232798568792734493877280906553961947449461903723294460623517977746033023026513130349051198564369632169984325095745937837314947012531330491698510028384518415746285173310594078594499098081085014435192413541618126354159810441633544725051054181235303867469151794221684965118127863842730551123425286262860549724093556535491463264395647208576738287991429165850626041655052541666799474823689941940130506568501861603201525176063063649524689644921769932538065930171847404475162509554219199501914649680427909733324974748725529186620924108433526483138167823718032413731840548259925568990705187917301262779015975707116627752977741181079237079353207640389387054206504496706075946569969600769657663846022094759312537833714466852812003794692649124306468970104639028094374717212099669219765912660566336226313639142359432861121770940396193955785789460322873653591034291034291588277471113825249427751728555718300423819130762092053133916800616285514572208217317161937535774707376435540847568425843771489133566376873998499047266273380094029095684809762109983096124999101911253004173487287852417823940950849210706088661546717279683084158638841736478225741525918379438621638152754321881161800167184103270754569822061648857358171809210097899391176418827437540517899840572702357033975905961586520288359297781696063618893959352889273577853213871148572535187167152025724529838463210626693015392945290834588573225068511168794014979690193280866207748444487551226410243840809715191252035022199964092998393745658156620750810417859239416832626211996753825246064286012323745932018194814265637735241920232426519759996547539150626760716352429877454249362531144082790441794924302214812964237052409557268035589000805461742290695485589243209901360363745470947026641500200607860019498750575428725734851178389374824207277558938945607328539636479994803012904639014718543086301842701984367764919824592603790455940720089424545999784167413630268604178287260056139906874258841119787927116668932727105642848666988406311291817084097106320062744514905085631677940518709561035055370643386598385191945683445801426361155660565185467822754188400032353689356157181376237300082744439803728485815822225731749027354172631957552512028943726079280404989589456723612434192195964624639540067367975576645849579554339495338733216940270562428444278989012523400370497680194935637279028825547340431337241043800445245282749196852769598762934198304997800345546142410295145775991900865366482297179816980880364536112421408575257535430673821194957227835604910082741989445777113027828727551930827806410759731887219157203268232712394443889573984635217972865276657988546439391994012447910559029678534548024489790930759052237067287256872551546710430899948305912200082926311124968635292545859525739303540192486378675935506230338124540233079016096821324860243234841714809596608464842502857266249318559249232643251315125712572424503283458730521100057327619360566228279454827362351538279813975729419125601976486744104862616281992797728048301459694748437560285519775704656651609809575707352536965906739951573428676443351797735648534036960301388478277533974781002569712525642472325615849991568184352353051066162989313167872804779985482922362769374783098993825061838980303879587787077182321435977658012473346214254900658345832094845311009025757447404704364826608251044412561156056086394345536334062673213150472429218767148794612084743842065553600058727133161793935293417787484814643664021805548937102952002566407454672034511295028201543444995441458791828849169869398227200212584820130222595946224949308174765874779309382608166466435732661751047494188918189557719762777565834944863906564526752850355561123982536704501517871286433083646276298761092421041827048098585152780956604290215717372947945691841344302274076056157753061170090288898525777641519592694025744345095912090025188466841632684196030657282523849296525946325619011365280144401069417526712187017154350043665064403114304198871823242565296639739014485778188754007263524581686913821113464784919665697342773518009071733740504377534769352331648204004945518965409955120490396591155748095590127654089629708406136508951085067745038521756240801549514881105886719366548383326358730839170719247162007299505942913067268407308749620033078041742758679135561130248563165812665437500682815090813810937029784330981038556460710388319168808982165158206746442898682644403245086784436299994381312634114627768005795864884695848980352846924815266405848888507969982560359497521869484383817410286934366047023330155704597635313132059731475958413116025727023140128937302951745690314620861300659666740182949617831084476626236683734670308604905879829945187919761128871405061266838170144621824087556078672830088189072791923002753475083871186573007943730972527615108272117060128720112173730759384005370726517712876588010491522787843901273544206355684715077970565136129316502592187597837324256319533903806243824634262061821775064091287119767066929046700686479526414483307708810199123094020392852103578579454571432731313253359280787447283841582200237337860772185274011845416190771149836079355615541911823962400916308953181361162792331951158975334248798272858092381746660773985289648659402340043827302616364974353040187248423255800984271880893713997980536558265072066264695577095352306350069503427648911025616751397614884241187345144084269879883257025185045871476260490905462321935075408575977302999231180184634951458347374012415804767526450729823057408329488120084920863862389766538626622175818835884506400196421746966319712553411700929497007166778439059263332732130248680013836765853832880942304145633894663579798424869863699176242235536314922602643298859930944251996084934229988962652231667257608451868700275662097420913235441968619468300358402217936634054361170356362232379995519593972608976936294646027881371188037718231142137651700786814330289211738554102373385118063043549459320427918345478235368390896529173202969562223360630808027394155268415217653208586030242150418819359441328498698421624192062015055360034423201334684491705282109858412292363155096792697329366944670992189345569452304979382180523850391254729894170341402572934868956280381712621416665168692024169791788485723691080356262511394008667514298503126038578727507254032726860463360190102096603345504430397156288895249603295297901899721815233761986865777135186966553140270282267666291625725963061178373106783009475859393950151795143144436635444141278456116573587918799908144388144621990317670261683290049615399767528994914206413601451396271660547776206767001419802424062371003367282772623043576851321224684231960415973098057846009259906343386948980841939197603491397885037942710415108754617395896966642212391231207928475738540264466971987654577812993461474761010934860850390509988930753617944312459980956654153072342343512868207635771680350998154092909578136412257238899808727047973502851133278924325894941124329849099871792106025457485669525014738418386802898263981943893134136243867576923191609257700082886286176201899664382564304032073929878319499999378509601522876297239044559587877842348963542783483477053500963391940381996345185588308722530593302154883529759470826991163259686413281144200944405747737326708207483503595248533484099046561680507203165967882052550836195168418802218672851841478871025776322728119621797249158191267282384823008980025237974592671476120983053385906300933142763307192927605034342625108721963190615609849154206404438666491720142627748438253483957783249347947164605903856614597564707990573755372597884990043294461757481689500082309109140187653494301232822595105123114437966401164709618928543449181491330164688557965911925379801177897326378184600005221183383271128731669109885767254225867005584400023619468930926912241630726981456008601007069660952655170330649529879989372990631563201679386055824499662492373417459479472967883807597394905540540763861728790667847090434437744920748893848899552123714855214698416717272071195353697530498681176788086336766223888719998568436877515668359336490262452018518407536850166239848574229255099391724481759221114597112774152017240004073829137940193731729054629422184304604357764630670188682358970533420526972030735564619654311991675396428333301720763055049959750365109594488067657772169557057700343841836990503209634537790777300476198858525170399455998895006780573111747178972655761646751499386164150677563479847283593705997892211247371676601659724706603433155083600158107683807853660686574740330596458087290196348426891185277226648808257981713567730992578846401470053356346545583006671688277636691423374931937610987834233602459307589181738616858593777317258236453523108274041679138649950482245978703493628590833733872498611229649302870734431949815739989019879771472629458307845080731570933582415992821443991329581083583142981335429099313636229301108737703418528502207438819825245837577522534204420493668007098527409731754564262473037641899952684848154320146391156537440760181860133827036648460138962714803160741991394616998297434577885877220815800558264909529078286586788181201872786989071443443483771461820501537003745908834308592352422784668140837331555196980686697679682474423836415833241863826105011090327413518292621189421945481199966359059378819594739870507612890542779323631363351237610026167202126789310937662317867223685643673092370737545739472492628211763693748086136916120293154961135657802362080899434949790927217594794806296277955977466057516047343821386603618992356608727500420005153449712983427045373832546240503886907544400643296655709666863207726632157284893654804649103052161913283846153663976464749389979075244421113015695409652699847556757859904782105454378797845206888392791344893284829582432838871907747723937420064271314243450883637229185964614734702042121363506187633474215082943275325370513950220841841603682877415854981830884922278166740135837871150616412846857728342264118787415008822047480696175245614938187156968982784185408681976799508602454216719584850397700445312184125606821876702560552664145126717533197909920413797478284474485563240636967198830897279120965521266585878593489806305221107783824811507814695798426275471676642240619425827064723030318444591294138833079250666370212809142034838952079428305796114009906908079587376735587137606372232324575015785706519998313363530842830440364460355382846192219309013122599452397396091309618961111322026087619602720080444907413567602184755548981058209469943542480621476043245946686984377014140489412701310360957056235520313261203348446068331798147364684072329670826560754680349023879767651920358824088165089580310743414333978487950215790021406393451387027963174854970013463851315736864056722520234429132044980857579628766623906500230207087520987131692084235206614020273570231599467398348045658179346190688639281147625443605197427798114741989792676975516662248788458311350209008225323320538600680568100384517411489104098418962573557464962358714789140584717156530769401562887374546751853829953728550195141667769252308577274529318008006924321711677384259189819338007783169237044696018066004905927484060380596354121944504776635534673197588792921650034765898500813936886977167948410401194765070771257981671635922621867227675100880621885474326089424930669174119622400558384634445828406453649435107608774862267621247739739943031720208738943196628287396445320174694366341907371968072336176638057896658007880912321900155899881645960834539183461963575250585513710343804593214258763174492755254889271760470675032220871605951265082215093027270586576679484474382361534615446270889616632354969000557595937464971442151261862105568758043505333473928617121638972987013848084463813060018997065034243167555993551093521299285411073366854245083488603487723697187442770442876687934467919826016051706929596123009434365660961080520290563015026169488991164936353387133195835803992847392202198183477480141367802047485170140403420107277604950239241264240407859938437659000346370338862992592671869670191566649138253511983017322672238402981266692900204847583351574942670636326574842572575338824678652964364832272416135210194283515022528918519728969713925586847142902897494836194486097915949750234707024636904010203214564458365851060158339593965427776581354303704426657072468774077046702244848186992798996596334018575549953439787539674039081998872177742695014448714715382603448181209669163760645580999493859844494793324048089793764119376586409689786455210535903991692453049415778002427359494111558501229481994333437525199012419009312225433170307511613784992919993393707117359049656042263277674585843024897646673161205092181619382873932163570980714035511409877734727236438074323379815701168429540350561387512246174404742055745123260991037826557428427923570758813959475324578427362138586053146935533257589831760233218671908017319475627546788630183269967097346389584592980628094821408364921369913024219611828929739879617767300062275673069951481520194267652496344691194247073469715219177929133579812228983986980138918960950147806339052923207856069066682000657788515254787386321233536606891749262559443301380278366648125890429077085722085161438034560258739670000057763035758684994007930624783349448626689557261354302093174454298377921816824253273006207383243498483718841605391125595829992591705556653713411830225664482938224678289114428386746981073646484647721249051858908657708860956890980692108826208565896110046035226847595437858386590333947250959026307521578285783096270471301284843923983994246541670609348304668865349922704943400754490022435980545443734286602050911874740720679514833296261454278619677369972972264742379051621914806588167298818623733526490661406595451222877694794743067068110656276331003967786948592508843218886974397502032195190252356164766817319391347565022174642904272659481332849926792736406703347959333652091833743297456563031790877170404824943871265332544385240207659444146618598093666987285742686203128074026704990290205843087909758783919194436911987032077141021678741073129410551540341806119412620976297818688958766756505014037054717057025587805577851749287718321125500963980738893399057329682717502744972242833886385702500025112577053507130427585653434565608482449979161297632049212223282408255734524804587972818074609332698748891677095313304316159352146193382076057434828181911734081933662889832008381500550491344029132514655181714699687482998368321295173606137838311943978760257454178989947806800106689500819804558197205204238612350459018779930428269050608307374781193445296222828945242853584225438731033179835672304954220284630017570918048128694791996147286034254748105381374554044017481205542625998456629200937084526696543409862106670299984859125356034988193257671655889965470697401606524886880920542215364951954291233055833838778910385191349386287976476423717612957573717996944657628828867037612065880703910592749039790373159501104551898541261551158817371374771333662464323500226924057525297459860873971924018106100414702253216992227422635363183621781620073494431309781786146185902975031063406423687360500323729246327664323177915802567058213566597015903856010014960614759964460374134495546427728010116084766397773086167191388103481300251688000117312707907571353945614262382913988744646052084818486008956291149208754564333410641213336001581473503795214729318354075340796167433490923313967766067712054060075948038684967174710444994493176132632734230930540418048631430574342395576817396727020556526894753099648110212465257902779293888094910763817810117379082875310053003469291990005653998646957824531292309539538104481738703913953976541625947080752883811462841148022258396173671889421544568698364677797786173131102763298286098822811466044182642776499447435615094846609907170628319026625278387324936938692700538605784963626152967587858158407283359257552842822632019974192486809718643055035389936712482760571160602210984763293365313644451556395941220841653371311639290694419123063729509615188325978733077319909754798928311873521805980529333615996731503951501443578154314166528905161231838988410926103407845317713531148792009733949841201767240855388433452180314515558100630353839941884465154064649636458747306156127390595637154503205733726526919990678895482682227220331002983539450156134563615016673493988836841511549010934362084150242361272683282827136972672305738475929255356825066970694088786572992545128577666461355962601264363261042880617985900937843921474501589362180042215449886252924357428091852920592019368874756380297241120748400428709788520134876665353459527958231174483031822194972024245423444942000529410441760993227534508483554483899717870191249065211488792260713191090784472062155774028088822719110170237126672793728929793299559581952215860846978209318027924498494093368719157137152089038419098679358008154298531097984659216640250022359642996512790943101495054329815054298644021134770641377565224495314683083244837398027467086613317285545431223687147478654252876790052279448563904192343316163531865311169957972268015516555814597364873864727141224160636552988560074440648238861314727963788789199118091732997695463552769534200277230428942908642222035983285607612209138990993167717072913802654674084914124091592489662182588539965886653010496457115804344709750969220779835606756319386108938905309688841485742026851391968319127621160746984329368966543525338657691238993851470069456683789021578623526407368283695500834210464618196557878455140564061472788796173188700968325279671146236253264917073449250649923833717947629253550987478501712246606924483414743515860773017915321101022896803953907184543981954010804946953621771386845000920822639644446040701058471115011547638633754273406449205782323371814356077737239928098359788745520683687867941882475409637096834540070194995432328120447623042060599745317969513294387167856551203109380400730046681646707661286935619338960820353222610190856273618477462664836364584640795165313924672122260427162544502304297123620895555848062903609158257005527800428278122589305686840624127565527136187161581646267956394940151312153669801170585555814448450997192392893183747832713357391697016138539870584685033605382403490686038638093503346495912598538997723347040940146159932715629384336750536374158112101653965207989296609853818405443317397592897557285316715509512295373456624434326529445400988383699492841313499769900222181026139767619156464904715557071714739954464830920997600491995872423863236589910866382167489850221680406480262571461054545875439312772859945056519301191937576189482202797542085557271036785004804721310601864965796006659809246990539579731664968185241573172971955971900689965047307524339560660091453084786202240565437491195917660768350749628571224955665459821278286468293882395718418446764501551305347061133193224110932667692817956291448941082234725168624958612243078893980995322231448753589627294612786939141746185102440373915398610771079990968025430382413156476773060981973039646258874612979415525430945695401536424894914586142288497192166137937259099863774928420612209044720864351849958884694543925258909389102485488754910010126982348526711306936387937253630328625327718461944143864012320420350560914763399102909145445331671463572079453938826603024593863635702896642395318381976257367684304788203351709914276771483917535404820505936561471696660919375718798881707117085559366122027538828451358738321541933879726148845282225883712432289806735962578331930743525474738279114375824866033097823870684630964697853976226989472196920884058083698681592232999598500414971139317632889501849430392452223316332260270676838921741002115249534650234116856267539850353314966007262447492237261502841014368111148323589361867967850147847855997473383002576145711646298786142567255486306265416926509459834670837426852653534182983009126788021409509603860432409587739217603541284481571080246688173717036826913476130013218322620600739517305037085894248753636225229841118108413609204655149226313543956733025976898168397309609954481479859374672907264162706174066294136536731722258471139086441718922529982527383110967915960189867109347074365845873798575702387565168110050340069468183624032285566867995338490952966703599076742105274703340678589765715733004641795361518935811770120994114033824906464640083345637685768464614818748306669968487820817093729633059502956298336890651671514665911284876338774082192889471358250105152159291803113931585873482023694028887064309085980954077921835995843371154471758830880134822661425032255741592975785519231765972196008565100406985161184236848344689846844318317566181566492518232122892484320773693488497778238037726213075836832562049663971116285489818763654513688364343308552548884594898019762965714756851630354531452393361874535943243905414121726374188122482630806149260809758733074674617146821168065339378513895874125006145427492671212532966179013037681457225295674432515169252496046933202846102194462391305320572731818479522341867230509736174697557016735718545954906523229213805275799233601706907409223947673500257529225341357634305611332766654601046024175981955264944407448149303946743872403802557978977187738597448984736703161132114030744053563402508755399675882888807746699728531208554778340349979450535071187996197475363419865696241759068746011746451682378977987158075809207962174629157463202339900281953052937528473398827651333803322254193877947486695424223177435011838618469725503144610463700235768316716719163902522540421420094024662064817461462324005871881769487866937046245042146773713678394250210455936416358822933768103113921353363119059543687323936850676077157831615624280902421344221717406969198726569651501334147632248652670570380311721506449719173265590988773330805429969440842160831677273461003346460141172271890873542286304650701521938474956756783415474822618413675681236685134690214555617304970918219999798746488289491542989226288943823547047327043690373980822943922258901950378149913396839724673233225829202288071467718332335027009843610333397070825974157503500649231819919498138603924880181003196349999839222772761134059638609258609730162719119711525990332460591061394286452861199003398383563463709242932516216074770717116843393502767431726364220153861085376051245874591740415441205944394403460505001377502596930968664112223360019186529439127875149885775336848607878923596099249888585294248928900999196725318452741242385132467922376872822439248003236154462694319177942838014227435899783728646876149727164086886095569164138186322758266933733384727664700171804742927958725944275031433809635422811056958085575155279175852834517126894249293175856453839854199049351261369202101146453799922631149752944777237499300797878157775135878490557274441441303693691699380707299710871599942540586063762226022208120340384987163686756323734127406968233528162604931223925926134912104256357201142133118084984372700152961705785245523569860208585393539434592336976443211232690322670441243847178494336767937600593222395053717214335647537781034086203117927242528788688823104212161912099664532608254268963961717241922218198924546056784582823633699680189572620973369596649934551231115350660429870970695871430989204021885468739022144718681108795956188835716028647806940925956438493223139380899666817274859753668930525435072990002843204292918280864924570581885539815501370733869067308575669452883507721487709573633088127128400616786021259550347923457829065651630905742215944195303781608916654602269047416959008842632895805031386425982379372500573981147910725399080149301899649995240783414281784165358070141667748946670993606719023345497020753473710210433471059867062398068763019000112906862816698502375826730501486495624145316226715322517667426226978859464035450414937001802725001024183612030190372790502023435790706990302422803425382129136041477466583042873368340782605121826843312124327368513487603044174719408977778648896112455366739167170027473912295936746593856935653205392063164580309699180655593051088667072103671667547715618992949772003119144231250691682786241036063809793024258561877585015847199250785978833454000352111711198358592359305850849977586402550678669064586265259148607175613716083839266998303186807092229738740297574753646271469705367916310201072965608146225563126554871502029843225883817092675932035974864427250539129096896545967698674349642706105659166180666905059756106618620145186118622040867466750460701268827598734348239293166200215395346430498937520208327980009697772983131090868296854305621733598190508856089129296174855260850866303596272481684293849034190574071343969273694349589429466118832917282112258347108780439694614871372744646133705679587748765474118049261569899419739125309096527898283455238377421343821499164751378112056878481981786433308795913371801713971007894744079010192546552633736254400663911503681387012397918319704278443955483888660147554793524622260264364232288719360973071103970365620963487558055085519617415502094227571934327121839242001666329530599947775045796528403643238507259698966840750520498480039935451837010821664137947440760532331630899741493444438557404141977721984680169844860050935618004376467961389050957063992707923783403586870734617485380368362918000116273383858215435986811902104000803902661253746231011234151283708002054120546171729703822767410267079575949683307338150213484035071765733037135227740554510975817434496838724073070180131126372501153661957407865353996611677269655667103660213837619132848735655512895535814603956119467436194331116377578499777010809708932773655593495491373784307005484294439420645533467123460867036996677154217991217469760632209792320342204306871246437659838594205167517537024470290470964955536762641108014775656558796461751799120574206114263635406699542273661551271301249737739020365799576365692270243659168929377472835829857615092785969740347039518608123142732259571130484140496643916787043883047284853265256959911282959290351305293201299951311440173478887913154322253068102038546542543501300177351494293526563893215249457552985958561992263046950808657946384141303611648971727219028224346101377983183232803017991395180746658177429931378155651131004372468639824215840268319527065056992284583571901842763161279583882025696535702784716576256338968880103907665620103409948306058570192332255692027431629535471809175612685323757921424727167691514751354160872010892849710704377835374210682094048978195932768403921239606388736070004391347655239218840024841517480762129952649684819449461371803053665995290673162647332547228902139397445859495302155737948904857227739126562508566812702367388068771837978089572104727795943744746322491472431969874062426384534686166492311735645486068919712599474519170146669305957543898763316314455610773310695206958578767720207908416928240144745063328793351389769782135614785546492692103297314855917952561319079014964171733700700716161875454064841959745876085229183648535681148082699842705525240061049655575482502804055327098752833034472132132740217295390669403557974842357323576741779816008456322896354562188688278068931007129629188949195865333218926394901038840732682266281408559121617957066398760288970787412402881652735377520969022477447615908616476246662092021765891925181361977811266120902995094197816332460623714746823895078822742864351857988923602827128433873871536600568889124456785536487415765454019595782776959246068204651173272897675581289396513480565018720612072536699978707273157696800682950932092852304036441060640410991907043287260812371412102357782613913766065794717048538531926838840522489308436960409812468931271630853628623360353149488709615400436617150887563790404741083770432320067454055003477067965982156266543708425392277460341406992456530961436537061686481983058821888716875541817195103715153321865684749235175736580108011834585895745822908515554961460427693578022806393274071557047635669987799586300768275798102407957801161537815844210798594788240134326132616033689138772290974750758201293202444512913616791500582571995260507693272528955684982614674730787119764421348694547491268745489908428671925589664031942275918685295171045286855171329242263325790134239613342845332661188673669105659798610967231348997231233754423462096287610641111922731327697087744402055186440741027628858572709014705731513911669029550550955998783636563382723799972805131506988779023032176100213547342935886097427917171351591602414144094977062890069788809952128738928776238703774798387098802846770986123602571552601167379886350243315238442792941015199763460848461212706904695896294836334841209136131122695174017669301338826213499215365503883802640994876121551033835888447271906543208188124503825241172265099776467444777181713803889685627102042538852137936457048341310999204380108516354620928939527490982430145975407863106452087988328628258773592662898319392417899372284857280727111964796285397739086885813572478404340295988608566031011648464759675560323481319922650353466951208901036352808717633458543122109592119563507209281920460574595403165520006177686388053282358531583678380176816939627061154711583317634534974468833658189743426529996576509794676845102375429382466660324437779474184258122235976417451450448151269175155042011298588178233349395093072097349563345681951203377020421956204588292277865772191074353080657454548491601144062240651088848309699601213188395031156066192025995985043158895697577667830543853205832347820587923574883101828672529109085228249295967860694447517698081856520083821080718659816374130930012833210727676321651254900405566314599076040259077107153640849811025722011871264416454273112812775685579284539691487706084625157262482080987247669842895012258287639536436385320682786116874306412582086507716907703499086933048648855805015184273671355241766123472116514094453833219735310147619565603810543394419195260765543987853247565729673566626570484356738874427139799109405670602245959994736269662154348443168975822157458467109384536917650666188592495862300963693622940862478459288919501335453808199135811679165942945846522647321510327724488460853615772099808714100199630918825101135973966857673048218141494179659656351462291368130303337332789864977705359731411883769258372089989210791014824377036814807931930631508731407446412808430829694309445206909955660252538891965923117146221616877759788246563342659295579469070655522773241812828454185838126497794736897732069188872812943517444190909425954927137872643261637090178232240913038159633626267896750213157554675214570351988554451537884218850312313807382315852950684656298774596860065881363227506497533205650624085571276438154408510415620818229396329492783717979509106071863644996917882918752394456986326351551486187513207247483839843469565707672086683771913212427106248762960116243845364330444640454725648837990037604958589984489200405432116940997139817798391082815458419380554570049540307246829123397444979190374141291572149962483682033024192297862268036432953455122935661761959595874243837430427529243512970142794218028100564083261608087201887467207388035995312426505965423429450405225235940327906748139512094207538112041148120704425380959490123746602867178402722620175685732283514220599574691601844902003527262573029758317561713661999775562338299347080742802305791565240856314809054076696536904941492898930963895344908555037660951364979866765609341705269763558542888173221381465490009765874729529029526834604733693289387707361091004055086532947966096138972434259436816025662960853436488367455779937178624715056556766105861608386114759584940486869797031376413298784771797806619920760693743499365991578386580663538733399803149146374186093915231938698747821514314699954210815783575645919300912354396256284368444056142528931555686076914961690869554557523920244843869450612019827145864467532198525602237648686102657891643890359428834919953697082218939487870250255971646821973326622087939815707895393301005901487462036522338740157500062767475818495394744045781497975406854357914010495282521484524154813991970946458450466505395061092821876093313170884341426743923041745314754958335490829433529972418855251563345663719998708262742212064649376272394835405731230470711171803838953413622492653819259432184224179335615770187738948406402647623695760384084118196493689789892185201875658382764143157079450927232062792110437085568363653728012957263472915283158162349487500725010363349607161438853492610163230027728716132555132943692450475659128257975728469639317143238103694148217498846135571517012639406005238296807672392424910062593292484248413822161183667523036161115334987956433578001771845668607146174112478249451315076468370589640190063237744167586916418561343597771940676019139036501579907367383946252251524756464688208111377830190005155719944440528251170976978434576363312130849319359540981800843904884344802038449264723295548808595606924425232009020750715582494168329339108940372075300307858602810905885677380167334819345468871830062259793275157431717565787773272651953261944233563017137103175370309833941040344729298784809760052017204962730348945396668644990571169538923250376094427443857518579549247707546398005092244328212290363800217394011998325818460303393439793874690773709605358673066775563760448092478967265344355563689884220573328777644420928102561261770759577152332126960375770641573338212595320939773266339064366572873721375364398648394507426382077254562671689196733946802798816634490406687773539286910201243872093022969686765283538928172270358590564308228601168352587105559949888842223581115827339646648783156730029436656325854366705093172621189988801271538865075265514697259930747199895625053571648300048752559954095333102698509964982750042525777023934202277901551554698323239026975243950440525272718483443497295515602853337597139847258604901331669537982518811518068872649398470132187903885128347024823687534238618150915716743608135938164647982064300083243460182120319359590288175666559431227798253701096364941632797837407314815953048109084426085844027927332933267283577774694465139058056822871354669664061221136884029075008012638410367407481937940703081383831687479550364771200121775847473797245157195313813413318223372176970529652806229982767206756540006832073552252346591016854341093643180362605461675046846720097063832909281461384268347374829385482122370529218115348696548578528725243613826035675903174060378635167504965138475847247413158191385225665554050021392855001862777401849149089488568980860053488529198183549144730155487955808050876890022733576186537515835851656959161317002506292246145691833774853690855385773609102720587372068186317462208366835988620969463134727699356227831647924266613647068177279018069847296803387016484175735633786133916516151509120736102032993836299824214322198211355587750283793080789375556029796534965426715461621869348913798264607404760195045613877366992788307834998738580116076076864266950689170705596756113810710998024843177784758827680330578667663683898133004015920451325488761919508260750533149399127957795860483788562439908595907680001187750670008740220630807118213106003992702333606571940118532945815476620437642302286766572317756754970072137955945135357511735851773096842246076994422090227867214741572080580496282867869869036679350701513730387134403825921684435899218042157631942693742632780151934477600681600296562051813348904280996277998829110161185789800832879788319388250402761365107439747938504063701644324790067546416355419459905132355377272788930144150118410896736062277606721192238419319740822094717296700573884188231692076308933269748310250754370278151892804224015963561873785985891749385478513540719975274257336178037834861223865583436751999317479418701658523122381160383968717408712119064582974169484896340930811658867069555704959681268531523990948251555670397829185254708401710322918732796215471161842903360877439633414493319850206110509133663242528941203085292251548301058847621758833056810126925160410835784895126906422765955511027170678872409932884383061733417200283170782375468135877598853243706357114654328920592569099971517131784738709874381768156737905272698445470237796431872373883612171168164835110432317765271008394571276829061697302741056556879187772799963669761978514846150389369853297803505027606225334492279249525949317705959052468531151654546113278427003616787242757365143228034318441820328511074518721392834513420071694227332057718111144647815912548611304392659836169985147127768383469587359675046583627746545303073556024824215504064686901220587959729624689481000240741181922664781627437952192056569316383109764915168662350571071721337353916215823217478492747635955018310672036113288442744849112069150439998003762494108461535560805354760174818946750225487384728598184119776804590087385286915815845662809485334743175525152194351268776549422163117954058070042933485147203505104916680760728323762059580333594953853590762656463164194915799337719906591744824422484859992893341686571847198797801234020132575514638138959543512467621468349724637876298930345163645333220822819925725572393747280250037550842095817612948803185789007152288982802301070342380548036717524501089692766852709376171955973431829899244786024484568992592242326600045695069761866590335051994964955683234015208515223219318385365072331794786240061973878388119704514027591218140554708540449877223910324601872724690797730826498258268508458632271313913937207441492478782415743237088191363565013804273843102225157351020864139348298117856752570257067734781322598075867364936932577942076569942970677852163189915754002580004197996461178461624133930862773924399770638951489934823863599405909689225360858269473384022644156403391477207358671638454794778914801217207684753986098871242614410518565098966552921943561006202993952714694060823103786045793529740738782724466689315432103231361022898615051384854040285328090811337848408666398305874444122607562927504908917591655471469348628842111976717400266064612119564439262840032014239401852015610164332578978026113128407946437066360757851404574296337870174235157958600099310457683754111394559849551230715551200257966161455956832404647102005023778596362644102257722350553240394663118809027657837526500652177134290469612405679450582883391357419705431551845775060690007219628543929400974264311189120627136075670163860312253897214114719740694550854240820155531597473276259826695931492753489196254723037801942492074306672271108862136447876085820159885679556996109247808054947103997705524699683512314136383633670687775437470753192711023503806430334495761411899853320882151710061670679533014746018507697402302357135876198279626894482408166539147352271215729556974743431532907052094464299628339212901467554671696396721195355648177704050012376599597730414565752676863049036389971816236566006096980673226822330723615711989589060244577978238001097647629713396871155345386273433064692865538074223431834488607401007864597460242763827764537708946941341134311794173329443833414242322552999727587672190018549723795649951069830994399816698913018673999503185274647595668638116744642988885915881673702366986554696639930744485462985562507633838861933361274522497843833339117349125003056849714801991883142718212647282043986601237799955196764664975874802591691291893892843046738350716315736803388349712282355258955043194411417691989396002398863344283166804258870927011768119540419335521750338489718778546527845467316343610294824751814459694715030168962222549055535312129709711064489644629511701352892031790664111323408809187618836893436023695264551248335546395021560644538543028647871941315913475878340899887769191455975424010418573983977479126146212111725596553148409799911844747340521582847690674553572175190463821460226992782923991612781678195411447624424758504740404234423603252217974195634127218779557141440406483873160736588040103922089733460870881506245379449568381275428167405339976085070581799837756446378009549108796943538403484276801222209090884791562421868451692953048491197992425518946057757455771013894671485588814645102949774574049192778965220573370194599082891445873696594897016645545571566782172550943975179455605500151009362262723502989961048254367991539554790401395931537716350959995217315227335146505478178566715743551418947072668329110453706296668519164644931549840373639396133955019974781016906184554114561818933179788207299447021312833682445720279115309259489080770010673149422621326440820279330074983057119770870837199050226495093759415828706165601949716393830622940850127876493771438751900253857030823823293755212196575429904220754310372096618554963299074202502474407038560383484571568946190044190801001595705166201055540069530405040974026276872090758299767824440778969804504065120294972283120821054772393343803295571068488727543600107907257082031394730692524139773529676135132759511394742318708589155657895366485621260621708983572524012449692865461044758979171121170397733495077158331141356530879271089136571953984047945098985416899657224309732098022653724819640998944591428421028452703732717955552654555320676336612123954550037007958310977139419029627447429608398413453316396509231289771169527359637138555690510763614487831859452492685625325791266326179235556265769752487254144285991817892010766443743179941157474063463016039667013498771994379930390520383637141834893473296839056357374846465284345844040351294810008851024143950182320043254255797311430566495519799425751787409359020758678739109052497885078953629602350254968217958876090624860543442302768823867970837460953466255871607709507275960354521331219756079094903012020033109387410264786352100878053777450741980174932912887971826733790467810123896970833284659397839208008562605935902118514684277989840282499935234803206945623518964215992768591944665673642961803761255859052033620193226468898024641206845115906042612267280110746765562028445410050577072106724528372920428198039312677012517565147609210273675921716222420621055195216543060884044966803745400705452258490095536448235846786365283674848643976443552537753602950693054000327692066103391010624081293890658422096622196493266615201261900489058349374928264032207804116861421736690892734166926826412639374428742300288975842651902452350984508822758457345861538511965768261991070657230240131984526047281647311954553417782864164036236187930176520890879366985188180449275493361660120809961681051617462629675931198521539359249076549883162497543317799427469289319826657989940274517885744919369647935618700417498418676869621680623136210658243632161912080020386865298590422709811443210071657778450065996513528342182873896383957175252105544006725269220638639674151159410474256212603269406384150767810253052818955438503414840312954553699084464027493524948412864433581404625177328138140577367402260324500092174786242990832920420847166124596284809582521808019073197300904320705076183066722996074459881060811314881852288529259965702344355275118069292144609534990433265600329347018053095207456474651938422524779608673589926308863315376386472471273972423887710573654426352543525232793980314209203441101961255112887547817049477097764730933845697595093021322968948852834285912113765141859173723202981962563422655961771741173397286535242527177206771328247886761953009367109553804071410515737388507459934576279598569371074038662304785105643180011169352965524228391736239037570874323150876115344845407097507206040957394416076108367117981278912761775172376005952090471985020839568548591057918233685516753202174679515147864290405270726514761863658496026963923402497771504168981028145144549262994032178627999315539658049039377419118210552014427834504687800475719797032892123759396354469624261257637405371081182964234090740429403533401377730216589490670507559651023041554012771913849462552602747069374514503023264359406517564992572428990367772816097121412854154915874346325837734931162497839642037762621766075412889571082417625269240487761050610209228967178077153876209935863481565320464739785003819278211412022049114377396500991479087834976850559438992964969862424403137984548803955184969531497330095853174754585398514627937009226084486807558325359308161872603327989876629637724589143618826294567890799502072415343573188000103641111738772861596993382703978435118523060135186942276046441451455936638558050933905981196009551424639281663702119591225346482003391896114064728813423226860954741922641147274712732869423379469960955289840810134342249974319614112005875628128106057498168534967852348664203881882893409190268030526513678744186060397828301580311070700216970125105059387474361923272538175949004892790954384258690374354035655040612075336537802313973810368875055595514160228274729559853241637981542022267336256485927645355566045684875864499725714266578408352582956878773415699929437130200951224228407252481924957563008617151925391103036221011263363915676831363476386999062235348385165714381470511901488884810366966601480495298947660641158124013130070132985061982421667150645868150258467872441015773078359236372035581244526354569857801339715841034844156119539077258828833629680847914261685457258260569453571743087093224541834205981793403379012502311488696147759953712159396062488833404979624494509275863414937180022715958500562447481326923889409265744244453287758031599770693811388588944542859134794002501838224724637440625345123932956391266077707732213919984859444128015459139528624452718738777787605765404467350477271217183758995828073257707735108543831278159578580291519218237726426991700229432249293688053472658451164620113653836529169682840991508327205931362426690233918864653534078147059222735793415676315068569021721905890140310356039958815681265006167640760797010990726113363389968069062231735560105914403861545598857175151603311543848726154673112948272986102565700242329334272809230810024960297423975214229474786164669104542290325628090706265124583343806690203319047696850135214097433621996075088263069463615787543922921910871448422360479461157185171350799944419325882107019230845468572215495153879031760822625233175452646187275725094424176019888999008125485768106980438047141250249490741891618696562356604717176582023239818477700830282460593141494925034364613945836061657333733900097862070711349576922737891795531327022833226339535146565688822973657293914177195619937354634554437804167185461757592755934416989365602554043982856889168004650360880196722558423680467708088440704597494188659030132681783930676842453051111374127621009488448838196661846692680360980893267815386491348277469610136630337586678689258883483051644907873422763428292941338712302206666217226276200899400197448111298386230503497794133616389996435063161876595996333642831679738253097270805409754595622475374081113736080666251038305873945614143187246332798134941324795211799812664220569018444305329508443042827033774153553148358511481772148072874531484025816487158490418099676482444066050161776774165514847556472485648646674418596644586107574399123115929447043206685704342195076245288178049908175220507923479939054249556330725301691970891893403988109704216961795507036015130322003997285550917016841547711925017287383574385359675767145669942448748598879970318054052694895298281808967446022624002531091238724132286883888279972774600744751686532657358020900668925127139674063481205032388698826423468509726026709171077448732462253907186805496269246975177690830139269551187143325618705239070509928140175778976495974464568392487656770721902207557436640411799190779816456921216615790310567665573118777054438214942408705879881229333477279974989938492785713154233831535004907738287933697964743254681869028299039759595181423351043689114469782830137769524279899170864598666566334647017512356575020880142428951511164223848110910884571934228056510112213145149296786738498756459714210582201326766452389702584930951341286262145591848386073375810445467749275119074757720842474617527276259019156308805285366952926016987606020568950242380859474342740463974097382018377104900563799442346154505152696388162880205554032738179408625060497616249798943501849920071252724535055844943876823685394003900146602423820313572448410047339713543588881811530766549161913874940958410349426476472401550656809491390844659129934654065638684268138426712962953196011935656988770979920479902431011888078109633308275933041542679359368328343095739798754214551124686498592587195653665776863963301794561884665761034409628527631943335295609137296524282314640281507871601963856771108434247679064180634834883859679059455695970471096584439613839043870435778751499627877630411922936723378424582057678853493839410806192523419240017612093245059064879655717470354424567310677192113021786242908182889185610880376367201055383738231548466781255693454143056502666083517090380332840577597252640530879967448740582532084066359300525398248257665314386847998743413466315866791223241338412714481763764213062600856838523783220260519145303636860730875422894500348340301629840228115413543376611026794725035535669576003954688066218638918648429070650984095411512473528974886273116777909642855566727399509785418670922493997088836674090552029396332694758528587262748935048498289024218507248370159602466677709514551216739096355272773129580537118283184959291414480555818066634575570301989597074640262878215407530309846525809201441585941010733985925287120969340417829311285794213846024574634084359911429056360695883603288129426383430891068974639851111977675467799709456690118064921322085535351975740493353254122760407518145302820699803413741296357831026324788412080080459657940263030352229062655399710948717666442086187151795553709646907563527088226376462241415214824103972010763239572267739530397797996868627330987405185007419328794434433464750046883860012044932895410931168276779059152262690548098530420300117323608809842287574523673640434355911162155517145079395722511638384843719158126810047552388706568862339602513368689317483735729904021247525090687695288057470866028599997252584870769727910788956648088803406563843055608131860106397100650028127927524429515656234271579423469314483066209893462170532105352089111051608575618502485563646933656008146159523097028016434398002262961458829756619832050377301620745402641586871427666952635205321834737497463475949701105244936060605099681057551164896982001265439620173642605066253668232912754535204864507822387825625059603039200042091040936769018847118966036333292786581173745617649683628515774618628103613420900349463745429589217886073930772604519945936268000484867840703318546562153322838659210229959950424829671448749702847390302007925021107745711862278849900910152226263316714287276232382768671964158179968845684050176602986629678450498559235072735652731357963402386200034134849512617632143421232585717126151181300720896676886216102273546411656086458598868513049004572691461848275976004886864781341554311572331439364341336205547126052136425245180212485315165750495092187491917919217677256096038819052523152577959822571730318415871485273156590547249765334202107101272785196551108950106629924049512679304121147779343800981783006367005037344083927927153275850062199017996306731542117054809723667280749807978112454575644255790971144059276224059471213626385560627871443657465451114686732027524136417417996674576277211292296828158013409214986034520671320463906225004853320530548777684883024323663248332286261475120121647380256584639746451705009353871413377861764494903898552151942361488188870331142843538066810294164174923868143363593440280640589607309890319894506648304313130263240117869133066365632427158896565396331066050266827097753767643673543132177612381980992686107288628492069912264196762736341677598773485835509247883711428045477064149007344446395132430029026948565991310615817652342131505553983429180661228843644488161948938299695205899911672971223980563998485861156432014158967973490974735419305995935428375921752870916741386028877554213428972858880369332618992327707379635040693412698468258089680549006477359936452213771476255732640490997415870983999464128660893546254962672066397157729836903486086065640198866011939741914222593191230457176233714153163988310665834078693762225249080668539450713032963920971868205191191185945134568806604308109153621710596371211977115413974965294145896283272196601150040055780160757202743066751527741355854141253342940245180422850974139566073622278317983968496337887272731434568687912422292913588590187633217073607133051383728639499938860917177795687749837946702359229390760211762245838278255585592681486995818265361533812449415007154381295781609063694765640154735099201290845817819646201189022715113964226865379313423575858604045398915212134463277417618738454385590204696001284932403030687113801002326194896399180475625283407449885718532165515323593945589814485477935017227386459324037602935154342593353777744557391638707979879130071898454469338295311606546234212814764770019753444888016002419686331102251702636235531575287706673491442918641495037217579349121942135781643886925368236575805197943009703744796293327134048061608115159717386457801976607967326334374465698553990743092094153687467075285034433256296057728691553182892155593503242647824229446037706019285687968692046896645874265554489096056673363829713879343591864236286970821686184685877126180410923398427033333160543875300496345047028634747376998111654768556637921720013442879149777805977123226173886003538340441829258568272787920663690965247118539339362555053798383350792560605977895253532773836183859180170988176078884467049341123069249699700318132972384716751237961832188553065166047432995939907973705227031810901978079344439068267251133297634062280354558546985383972056889716126910947362058931102404121321193263698009413693463926623017347616027376557645779302050752996648827365658569209508619989289958413460166337230638175438589301037532794037995982583545695942985007138934260055324671521516975943159805274951368056999653002325451748407565841899845587170613502573539660782150421383780966412675134306256182530240059454725136618835496427537061807567679461436451013865241920841516685849104794734706645934021748269148673765061643073893570631176024129410496404018900375317009752661854922524823847428072464218008120034904303915590848601007651170310539963338702188754917122794947872789838528824870828765242184742334344760794079839401975647753674547708381566100548685008322221164473242285264091857157220390041909579818046575627235573246610526670860846180919228721377520472383325020842287101637137210652089296281111071584351980976187226083005904428112585114544680698749698308394249626104880659959988124386686767635484694360242552520130353336531933108061610191396311886695810485950542631508775900869454409220211474711219564485110579178869531645023036897337611984791312539211522081315504720135441621684523443920805953908666643620942063377989718695019766582604473713647031450741760079389347648139195930236768250556080550854307117630787922449663988043526905989705695650119654296786473066910360289745707049963433167248496955992838567430587310050510245786383012913175274982943923556658160097549363047461506811453981228802271765518301444010211990742010795307456738743432793085353818125040153673644840500197288469901344629740156201495390991725590413718693765463627257392652142402949196403179942266654420642963739089467910002093412112275133560948768025428490294758636157085520078602001444313870149084169403979603266005305809410445696239188457699344272366676839466838443019085816304846277569962747707335833788828106787238904099885242039228706527038829332075270021214072921292948858926129554970059014393895591893557793816439672726468931449404119097386656256104454099654370676379409280851017112129963123830377623804293170121780958279745953301778686383779396221841713812238768620220515880336255468080164693467017308445417036853079120851371055213395069181817001379358425639005391838306278780090889718027885332258333479943562865445379944088141638747849156618630232613380880329806031066001302403156248584944359324634389386597439069380540953854526550483458443440984598134997637745009327706185029259933079433559032306632089888026954904070340815983822880693674894416592729302923310523382301029947575620230811850454336177873838898842744643395974171830459898983525139262261025229950164695239449843951772289730573553550141874306965104510389493164575079582621202146369776593631586978517556169789651940024457345567630414738994532595114104068113911752128591271853939564332853696253351247493839438543456408147257168690256504527653123534086927285516665425221513239346884063349613997610845238709973063288081485897052240063574766236476880168918287944103626355898525258370505360089234177574947643683916130112809081144762598394902489532810562392064267847564267417219234241849755757301915898069837445777251466630271051023799059594989224046377214050542184144118553697757563323550741696141560548113317518036533733781038543950186040483261640971700073328048142679963038659235978171053760191271476895021541690427528013390265923877812661802061019839620493953907043323195207219558624093935495554965002855478870073991661858682433696217312503973202584512065773846986759313049711052253632870662322888610311129707413361814580181988587296275469868136728094513389700446385664158389079524574189105405203370979869559819239224314118321771228352387894885902132962507790863861166790975197785059315855672495369701994492572255995762895871668261469855503890687441684672789154653924641562293065773384608338799468275170904445959160913864673979324791912315537586894538741309722903143531599179075976799316805260613374208425374849984845103060176094131836111974316730176210524969949498406420704651442830974937012605594916431569574674817546541550302081977088463544630834028724456819333578401593742859552732014451278995035304610171417938195631672159499555450921928749502264515624837971190905769948504860531557047298865889543483395485103614037843713566880380662314245481121445242542351046399852652750969916152942017468421885146183598005814064003719960891490344953542933973075815099155500250463220063213487101908791960978548095786839846693048487586703713597364144825926123486325375695662270983918732996231946181708170612747629430672622385523876375205918507384665712525253144339929360547848558725196396926185391845369047115273519526585119945530043692309840595870142839346488311595557870600724829370909241763244920233396734656348556747328421079082302008826884051345725051196455504813524901797993159408649578231799073502437169704239777579477762301537235220083879016280939117673327060273084520566601358422185463823072379325283828885068081017196655683755667868444903210634284464571079167431033257837038790022202950170364171536155018444500027993444150092827737761324187295284565762113985105490763341660221352527705593593980956744919373377010095636365932424166547854564158787775888479343258131631559541814363437318604812831725702299634773671152869031343474644930034604360931196666102846220525084915249818643144937875005487457047663440202005767333892886579455326332800091860403577841025808473993807777984706065906514270584268311664273770872098430715061033664299987475946229510732232642189466005526182022684436472614370834385076081938137716523663334155570375658092196473116085182697256633454739082638050318397723138203430889348593095699540158675953875733933860567549100123855510206061638979286456916717995821473767639782128604503000851866563286541727358141130250912142595942307611834796675144939579424159361269768801839396449936780515531853193109103134733459452612403529927450235865897419935270480294942752629467488514790100003802106141484426546495149910596101064841166622891560890595307143293643417497036846482681837469714084434311352837837269791419692365806585242825072466534147178727956064112173935619845746349113718077157772097288155980737187992236358633508480518069609227113243746542864496851382423088269235390897194440662456426593373322233500020623159511901080365799933507304455744230599011987925358881652669445275327495828806406634662026500402006589428363644625802394837598503778133879916461313936273288610557863617577025696548511132583316813850727684655612768153226490482568754801659484061102921445606066459937736512837699820155151929212157295134519698320830971438369313778583764339726042080584243258229246714063065692136425520460984467105731666552233544617780448414010542931934967543053887379695353818507471523804882856066112102025691824670975973693228192097467309551494464290318423733867325562910492710686084393643646858359303077615779281989838946798176900238809724974355062891874725453903036898440591061364544414249531907943797109610264860778972410550139838470506309868995184473887387814275706765085272386205567120529085488134796537920458645900092498527237781960889122945908382488864559008689548548005763679709376721178825319921339731878061380289126051417142831851374856386828879697954094703373948724028572692759493425578413632319730492468593564606311525149094472764932122232962703798467934716400137482498939918915379382704777331613055431681019120956776858915487857676233315010936895533533531033069543957996551211014966133053778113778588742523409186127496911317785443558713208698700511812838049196048280842567189448968910754409279806685112575565797849312046747473066433524621640583902840583477549102622121765696721334475018415403235021765022415374075439265105097494294429293425223277485320037692213652082108883922410704598080574434571250562974974878940922050091923673233974108263160573117626400376597250567762450728225654145540541770279923107872978992214985114288124890980203258624793787491284798241256549231389282134971045056469576298627582084098289775676451173080641531189340035833029057993219287699938103636444617144564562710633408611159425877578082379687606335623494781549195481652710527491356006847327018778130886863656436906171541075067644694189099255214292147945066769538708329628480643183027461708504215705202522580326978972768904449231141325085621675679753538610433695417648944738150750494948554045385057165090083207565516356290935157227803385932474714945549027737300483100330424249751776648176553556970399168186511636619685389207335933202850391550323728240681965810655706508734628324267542790440206910798401021822689781136364514474841417036229640969450126209260763169605499629447777372126624405696804989285173986266548986810183711662822687737076854346363795643717182454613423865337655207892323567451478489849938149893402585109375281695432270205967460508692550220912197911043647212636314004050291501491782131129308432855384813844774597919436199315611115083641857778119043777378608920770463679944271226774075966038030720952975531151120572393246649461123009888456915977035094054537053534902629876171528783284068386228495631406972913091303078067542466748218807354794214606147593994774970872973696519586605265139190781197805147149013630501865847147369369790823236950730247826879232741092644123239736815195548850824494954815627642158551196141868851188812702680390361857196698778547004111897367305283812356689229349353268646199155398002413982028581789245320396565211484395423448784701594646393942394298082002700618024038712679041470789750319009642926338686335661829237996905254630598686647776893348752818742514841568132783729086842449171686395752983419820825565635514505940692957175423290606790378135861435778370659745899668638816224694952758514980066292139106583367859204664330740707945169202007783538878671986583938460478290264206169932575648131073691522966679031854447307340527284911805631068858556191859868737858388123622840467031698740002784827352236142784945601350771226238508064979115768993510015892859616951757936713064571088390036996896704155529196771632981029875925048065776725386479140196690333084875550831159856117413525789547477368969730854894896650552384633576466905141471971702016445547271836102344941747877475159262582008753738391962658204340068515588114864175207303904187989313163889006065013719446912151758534589523078412095265790598202159370409798548632624413621485698041660734281518177073830268076300960107507217464187355672933048224387769115469645723290677133086780429781226453825935064800835148762180692522370196941963523042207194878541929716170055782995832393029693926555292880748159083148753546599951632169305162696450052519097178653189369887941143337413560154925345240843166658893139926748784207357878007442103440160651702179220402925266291095451822510055585179468089366291821964091780597716066874981162319888451060909603084115634214051471128949358174460820807932514856118087993930682336222709055723367724043209666387701022466399173953610517903443226001612514990350368402506093193758356610016131826722950117641248695062407190594565014346015432063769613629971068060562205685238670980955036567161920814241538645399787712175521905936162677745292631306045384149214408752897295049503898903072760258602077052343527065819930105773742451787386135497967935887226646196118193159320866505937819759958512640365822103316146923372600733595582802474965062794183716265250193354420901608792845303390392556025852933818319300577374973205627364337000604306400422366852660985123489397392388758927902923106169847333431507266443035010901969828952452748094653799569699633092171348847811077980666437156656899637624547420824162536154798013215627746468759800760654414477099710826814437717548700645249667857461738673644724423567512331258517432241832002350016516571350319416325963304684735389125272080339153322743233511036735225400723742008581967512216239910406507068366102129246280160019464903811553573773400928042747129067306778772890991980201128797773134342681955942926442263609589319879503896065970597703359568772766642926064033302348514429618843499875934612907866859088666818146191567732141426493477594296383467186354543066222572643594640922305585763452481555422761867458316203929518680994793277391600016956078665234919233034731952174737684881901103589609533668521573868889030630463808526400211944019016302851118847200687506846103695655454603637295585323989322039519407050494074289563312806836976842954196545413899410147839173492427782320046969591367281435120956538860436242219594076455613375075546797719948864651728392116035424814795166812157004385906089473065513267228188004243099454039070699273117010391421175656133642556896054375810216840730435758226958468556476523984503151859245127015770550168631833602925100705548365838074009656470145569578436203715003683341107930727923786388421443192871609069726966478784746769232939391841563359659633845864282938157991860023269964803635349461119573908872681255693138774418920682675692881813899291170885792946482802416226126936996877397524142273062476654224799402280629459018264037369275678486915736640488271029567873796175996275412816668781351382721791241887069330580803371751062354551363498677986470061295358411042394283650196453402864344926151772345799461591020068689902229554911123415239573012946366488741300492555306020348004796578578209896181389391824007134751068814723480458764576430894932232862028357380836183346656314686032699965368010706450091916320072298337383602721173362110229691825318012446954252796935006607869619710706290803503170941271083530806669933041007400234957231527058038903524263621314769098294302917131608995867668854917213994226062417232786160070197630230936338859662439668050272346355668606318907538157451137441262278881379219371851207022642367887876069864105470089262239742048232659831776877736997643259980036224933803716770958286288152987490627802822503701007736103162090229958560506241650960166907675266265417711414273751422484787025787023572435299078868417267904529720760074801526549323405103600683055549940281800035074454629542421630369012075314895733188763978035772110460191096722162644327097036817797801504808481602364246286167559438712944586199915233953352074529847022154288423050430503312508496169478838328534614986224063244414782591190223763712568215765933435887871583880275233445956087750995696349419712350661188684384876663673350554744338055983728273404985511736597037992872641819190826427728419839864573732120521832378224534027121302245547637577215032425536966240320917002223974016822761718311733998579970711280276915672732571894107185231928236844514842568949345274215365083204154114521844314464005855020506902654269002464445750013971342800717293333719759102465394462169790375839819775939621148258649468391368742383832956496392091173447854677062553833601738849478279910324756362590024502372259291954837182589990897793073107671760177738354706596757866900879558439454328452200460274138171921969256810762194732803450118766322969677138903280801041185904327436323945724499761109979130428371761243505204237149919023282219639204840245011965892130817854624942993758448704431743596648305719346223578886549288074275020612631995943025559476955936478285230925246068814884446432813425363566234006070093981210522902400334877160598195367000436806139834659122469451576849671861469132766317293609773959649901898842571250237206089803607232795968029825729551666146350156520825265194657948732660422944208801080212331196160613112905244101258887486683087957617472280356572871344532364338683249924278965135334419736067463634182530224093185072967677345657848886737543369323517286233948595306508992366503440676950865447590086369436596690253693745913404462204107449172497830099948427816273702716165938149061811066895650516535448888870362379902037284627628778977272580725493544387228007929122405028653422057253952623583782328553400529207318220260241494071959960538384916608157176432583184780087293083865767873052861594395590014196242563357995452016727349816337769850471374467589506772441428894233192051207587027960812475412007195411288859554408850774031519076357210697241428754306007461371726829856084717976022481417615328493167540681389108472878831400167559160110628815963996855259471476807764513039677233990044214180316120178156012962526425508466831521933739065317426992799295885319017125237993680956899716787497268343892495586037376605562779053481434271946181580809356159757329624007799502520427398353000046280364977227765180488106025965299767394021519357381863785861429767459248036713447679838474843221231723070369043857523039171601839358432359696451241569877954535428833779079163523201549251592926855265239819071458254461178314591439946614887637126954374759501512260239208069610456614051695771769965511022347636116509903145941916571274763565823895360549886253856094699135058223233450798757069853810881834899789703729711693804804401859938170809812237748321161498763703785473460671047330859376942610818071683723605328117479389714305878563794875085997830570979984048977903042472629576089485475113250009849866122746956298522093845414919086731167929984490716330730378838226612050591341614796598063942705112388886208201918920045761102939672455282591865557768317152181393040479005344131100828964495365376609282235792323203767344530034915324005437940516119665906198584709955135282002304759483470155072067306236680349649839728935673622552592022761107736312407865952091800464502372198023460863548349330801908498166113793317947582690520688281245443420569965053873017924221256645715343338973621108673798023224124501047824182113189093917350632885207544747251764749595995543854188814793831102673974407907877380234190938994520937010182784734775319817969468990357041369777398221265901286574072209520053554094695887237828737295389314496944003922416155303311783402333071712579167287873826768239824740882495549404532326831088573942626659633113261450250367566344405041934235546195519765763392187846084082919222856188098600483668051120878882645071941495663521801319971829144145226357358407991118383244490384529092386564654191916318304622752382639693855320238583854743121887058860283888876950711898516896588484160505765951336676000500527491829276060958662560407538968970454146156034902753719176094159550223932048818583995594768891693419493691083839913478571679732325163018535696157686396235834055419071638196083461634075909051274496745792163072505300309468269638059006325536777983000382346863142570110866118541245418321014445391196233476452347426559182468656222487949061795871593061440842315107239273418769308901754367931681801057394213193073221995669269608210771102799460385468357169229254214121679001561549396541422474251964562235258460445266154790673559709812221061224408574356287371348583340115877042069249740041502276031750781599120597255683890866647194001755189940917388629812832139661739384582709453410784868953952133839727758168789311673778774203867408495883044069967838031607035452785609573143973522026885846712823789761135610777499358349990855180134044752173722586287830800606341722175072691668711573269326354959635429197901608262430166813140158389347094241258264536721114589032095659083020284587107032790594359286001544975853902493046623123100251830327440446579137376421583022484023334013035954926195653989155022087704146101158976840990327802899252504280307234887349427383476481048002476521587046676812471729496428060988834751538154717382711711133981445979733222848577650989934980850604748853784647386276646977140763271234630827654028879678936047289605289549660822988799836248590870208807934197126067467040585498448453271856415959763283635769244511839480376650247378653315585612254222839714645255685225447134248660247878648786718174403121144281183557581130911017733518423879513754159087316030734726283959322791086855739367109409485356623525737167292634289620239263483868648957067678326240494081852463615070122522093279256332577512884475101023766120909785980136593841624574259636237805365692644971969448369005839747548207186179739848980620921306037415175246115325056425198624949333999995410751979015145525848479578327337071930954299819203750516535059245155339106550384715200456373738231276330582525883214323139747343878065401934779651887534936523018777111372998383606936387298889635880148706673338520443476894443280715439689020580361850233787708529878295484225342055783728873666957430931729464041916107439193681350882696348001899532137249123026076436112189128296957390985542069568471172074578371680696904140621529201561896547483597948838650751797611634393533697249153227593611127853907400335543702162382260600916411491743674912104970998552556853778712198302501790639313983122898624990178047276367715069083961839901287951540728870833911821393216127513474645869990002150698293769231116075326316318248055861167093901943115238016120722543528382960208394952751940010820375654330967986655786824273504430633751076146022708119023749399087566015791911373436781427319289555582164051208475084619704769393617056930036205762804587609736144016806575525621778349892764583315857629765310867083147030134485217194204156124021331715652563955083280512007127698871127640133696084038439311719786794435965154966604727284161412331806386074074329643268104768638063594371001928145876189798113438530882616845788975333459123650079835430532182222225316845855520022765450097335589390322020274320052064015893057763648611090069184762645819907052678631779065333237446367037379765810793514893290299908634867860566696031803406540546080710318122174833795282392188304491702436621441744830280549364538996242988784055323844057218030991686606645269444133939567790233367663283331397733744155004031060112928744736577767736606119582765600599563473984373022105504430744935421932092140272943333273763858716007624136648960998300049540938800585532551496673825428309729571468314376402310231500924088574302488861133047027506716094244792431740730325906613348644197824674657058641157717290134523051689657113049589338344894236640542567728238666316245446014649541593163266668181320784945999732647524140577444951420241601080186772488263436532139245836912466423663277592069254615172473038954854842494185864077519047362639955554205099072407525011735673507605922789730331839052153040468519309170275715102569263959075569547507921548835026703766075208071930728909536017059613401643736110029528209398082682488133723890176985621679207490908674606960432906029855604343479170430915073258121223453002100339469138004578464767591413067785786488342137792897236376584488688226930196190837844722005362087694409412241387438758438370127632082320556875962550030643735387143098406583271683270186220404974121567698479012761453434590053780235392903823910781337717721683971137129059944415631809287859775764464985473231622921210872969982447484196711888402006671086022048623950675180633311810739594880701453805986987029791894639658327440852945761993444406151845998261148803864138834631421272351057280664356693307554153662833787534711002817882288044158162832921967054738101441324268162820344509003816170148511098540248208717547630749229265832466290111042160443490169121340644697383128127172726506089558653858819403018948280688141080603573189665175428936153043182011551063272721143877638246967246279751941687242486025001608976811356803637170280872998618967344653179710668727003409944103699554747029720214285776831343386481713299279467305152465009782425759552745994683753949929261032696208512252924017406888560128433781619601399621342564073630458228851294190905070116276454897956479826344235181308876908149181303417542675478595080526156727361480724145314152115152881999194845488725826078319739186738571898838325539276638244491660213113812495124940119631713998653587114796651873587208645204295774710170287673556820668900225094023990203131300350527450250100081219104933340251594106506149647083910136647141038778416366177113321287779793006240086658967744713428210151625817353598153507666367427618138434763420157017371223132132456831887591022910923152011301658462469718510625305295447145918900240024323169707759044295209609884057502274765554472296464317313439529316130615365103377719099359257423840863037746368021775468079487416921552073409696282774036945073254189789248665591295233622913109943957690153492002250786425983852617333954384264369519197806394610112274739491473299045782483731443679634101132048546536397773378552564895170943886108809704554553393243502007588266790949341515966368864554306916002270825255445131977524968397773586072131633879917219545941172153319584231947011377406497721867270437767395125036575285031770621689413598246485423114856936305642378649566550272416109586649506802740062525131392418142558875428469190792003253900631093159249129124590134320447055267561661038935309132549186428750450182652929397484717906511618771788102988009523013780437265033689072314807423223765450986364288888165701843992092338415263841945686357298802417147987600098033078384122483997332680445018473613092168069687758821410963544747633971499053630310974630520635905923267021761855488350063909549730315196768206923976886160097113850991070247990224989432392873370368407633043009060082758527420216090847748994710906026892130181996825020332609172226920032393893487914682634838288293553044121506872875567287728820045690939054295915043635339708660379915119542714067304964985164391689557680785334614487396206640410134543846973150383843202499725699166250885436252880583811607635715488243484790532557671266235216834507574363781361394913793148294549462460183498843757630007803109921289943301606869196806432585233648735842403125018765853534460002686115145590083566140768601433025344523143971337326689328551953177836703730332315403706815776579481223483263895796425599790035263633999735611257283304849578003614435532759483909253753215600503955713386071883434305205995341462980277976181506311364796677748955565355822376038718460965068468392078341487556844446051975674440416462598118259846438579156228698627178412230123700816534414497393501170857001381035682113813059212282222642580374480446689308664058659036300812586490274625645458435889275188458097660170776453877722334866345072097745919000298163649645952331858979002224311354220692159780184832116417758378556981545809933936245112139456234849688498673646171701237644580015171639650470182227729894896935519803039929240138236448592029985151142586163000034004661873491528798731621506622911068770641145602945229613255317653955055318365424461503140782212130214264029389710515713811545327333866121147129018889345821015909472540574516472324429209930008520126955855368133540209369302582716674043134449339155530346416083765328710520813936462246241235191145121764094678088900338233932718636159115919393867382250613628505448585806431772261943317131146373955063825204797484300917758593008824915930588894236829205168503619142311458331856773439802700393530901453397733217326705354338014416101384572233842358847816925001570432246918356951382275891822961489779733825322227290588098264626116112606435935705315888776326950874018190014660139382430401150198860429228462461378853247299529454231380038576050270216352936908096333537937289875227802500175241068901666221762750204897264961019670424121801318307393399912875449142747187522741596551821832482789632739597900172938317233433451728572734068409059260596754468069480723108248280060876403378143218816490165282405591556256256083042176792704601208999014753826201669935780994278989981778963055273092673705293829114376130271487873770437047498847358819608018285791991817084126090326516025325508457251697551511451672561742367705439009388518458910505115412588441070618099114119881339323085086898204790055727074849843975243976517669336212029631424120605019281207990879274544577477967095462117809565646623101824079591548023133948786144365785542555314045743846821066912903532136865539521303271098551204903718042700605632201400416411691600152739536393016926420638803853574984381040819245689164600664878112854173886043438429433405184861623219530027664765370035110538263383170464788303780770184293555701537377057983636473562401633522139939779410569207123998859226051533359182852868829963290826659615320461064491411253979422107801154985367072899309597122017307069036958828287857674135796330193707536135242591644799928159058206230762431369976619183979089071514680763196419091941098764227908756075408451183702721941658488106679747459392685565922491473824180926275222704903913470950569089484316457912042666386978103340680699386978598621475705963867577320441347386377608041138738038581696785158170065820131199277517643614745621646112548443486776141055607939292401456238107695283543758006002006438685034886385142068897504989377740067823898170237982846227062606381896752260394409644399244031049492392938827450663419655966293922162729207885106714483309812311453619062610148340922751758999874743949196014049116270099507289763079684045357217998371977648510614767055497476816374034094464344491726597093752294674504326068566808190500039277565910715384238350832636863679817008300656366657431064466515637530143800917716773206722794037298938311591450828851650436986895909304203161046742646198351595281824639892654527207474202890189353330129231258434522359281598438619686102297140028806025915128784622503534929678739545360210769086298206586341274639380725496511986052506919761027430514358997133157871796955646349824295818459979210194951493944042581933713788692017839620095930002021699305865777783095103334608027571268396288309987172148354106519285729832116773948672855183725346469746967118180859094578677628931704479233364567806973337578567147429812023765394667425320004254606706544323456959056532756165327761928013781379932242848494064043258782444847266685401231885129177066970880014994789535368176231097237703526698258277778808593345079533445643578048552440810875530780229564852389090183188560988743084942950665270011320831102924648863228078952351877644550900823871961472325362979224181026383523211747319403738460734541712227720308148041410356266899856416184837822208908089129619561222909162663449472763694903687881901538397543078535250412291783503084145020609274693068376731419486966906179281044001107458325396311249084058723436997554988915385115105322447872637457164598645792192800837575402189116584652164803558716016541217334993692885286890182914133184293564674874505044081080649162297102767230644498984720620463748798820749679011432657719507262730766571891450306622456876818459809824538478294041502298572678652950471013372448150224279006484571810121825041930808659685170838514547974610389918391206028092386298283679178720937218396645421124452907335084035091770605786992062574404399441706971379167105904046306430557923701947696730153959325113333414448733393099684049709511506279416618641099344127253334410435478204435492444213147555406089738507958957982404656024894310038300579361757705364849470773905359308810672550632392579066233497903182060733640821055724340523872258231938678162977938551106259814528860897780865370779075190189214590861810039920889208832337890583177097328695431406525559009403783625874751890748850757240755103363182653395848708002628698785917651198626501788659315515229534819678365786530067046087364630117149836505674153449124156393156493825042846849019213588416574613603387180099877235955741884098282761100924880106789307748567696591499987121692823149337257562863812659494761074493237246414419916115993103286323995294455109157036528138225544252633543505289903643749790632486838463251842599751255467854987464482900842329194400540707459573096977346575030944344973602609407288017326249899217405377724545483691566586062507055322416522481316914936146506170112411016299116382755801904982859212719850839497269843736088760519018907438501924783364090835334300700800714744715118939654565537439553299100214508438206570279408023209991405430908799445974539602245033421369947772071647893352867032338085089383499802029002658780769895274053591006417948333665179657473374719935806674997243894544816524939485735803686142381038054473353719260138448163053014545316502810342033812560699451693087766185853064769601055609240143569366973211926333577101025917383064105946902693184423888259079663360940032824815228296771808922407712937293462625479222959623807571436963702591935779873709528983370406929094072000404579903792252899725492546256355727227985341757923607227914688075591690229887946042214363939532874870648149960548190086853389238558957940473788944447586915027059018478273570883215890645540818970604026008112970725499745497120627694088816762684195215396996383992761394029840529827068063064632204297183316543590367147150778609396116915489990615991669028514696952247479678928516985266349813534552865816634425149965655211364575843119426010104508958611808506061209166161539584901580956634209683529255608461836077473967306514305406949672897759950904935429241602602071087402871653039075622421957862659897231285661655125841661559637337478491157456488420477952023825321818388055119467766069573920130280647664811911253091930688172209612675536638738882054718866711254025066932504846483085918020634518508589343742752041629157108456344293405187425170462417855458847406244177250558922647948598067264352397043268222426742933546929323956026690106281173163949694913534683591835583131556344211309009298750476385429415543843454641510118244185283330725695126481525001210869024977004196187145489304800203369751862076319472597868553990522088011439888676307941000054554447018151703864997805620071497719588768479374203114103861340184996664357008586305574549040819792266444662220967761394839556154761562312098045176959671303773279851401729212788452359775310642424291443182439156706819267473718187554445411972294570441107248715049151848565790115533469112546038765330245831166358660246069581003499120740057722488509756820942244433817965204314837022674545017782291769728256680188327996335735695645968531225773006616910354317743525008576218511110192862549322318058747528329953147774194369914350181424372149705825451049479388119409173007832646704222258917255692591051430521141686356267908088905865822527404845000346892256879776541798720386488420591179952092973375376287667215110308312909248153017977944051217334338112657699026414509097540602817166942087761248035657770895416675718033472631323266604876776772688347724606114899884996022642423409988461019348241136490020453582080997597023759939607719881322047784368743234339220158753670504922053282611555342037857398875028214355819033606431660069526307284589655002146495772904592066043501889088232693307822384184842615380148655324263282378441101808455557445455932979974428376712677216822744760490222412678597689612994031977268403873221406887354620918178525926264861167023505546110440711785394132778730101349971520604963969543749364053427571764744339559232937357327942792826974171243201899989973642343494545506324291733993336415585799996693122230815213210742898023559099163577047746693080597642185393027718387612156334735457202780651217693578731305427657024765628917764408070192820603503519310061299952413373913370989149408891733119151445204121486757633628690310241721009074898840510312665209237309399975584949429106510886543970285156520680059959140208144972469481703563168878743326516564413137823177533320401715770442732690080768650492270810003608983763762665269212286349058779367306624424359225321531325479732936382095313819301614006459597241342584558415412915011781696848336822109355633941679157322371971336687408980044511904739385433292435097091057048841778389508644557091768280172459417734869072207687752213256036778945483895699335851923287260519316795860090647948473252339794038605459723308579965238717647422130830290032094101875489445610117746259162581753871633713066210345039922662397459530972545594373432614560141626564790153455306672277782036743646209205389510520642684444026299560171482584948627827632436196920137855752308232363872902838618718249781033956766320358179748234755032299635571178072425021731592198022327238845568190017324744441327730554370946710458089077680324031569791431051280636995464166846111667471447439176004910240369573004910536725154344872579471165028329213942744601968765094048935705840928859212700260376372112526796544651838430429474304698760981863581111571029606637003295583088542941791270698183623496659935679070134656594525678955093548453138310172563905457576555248966456422255395899056826694645140592021007565670389273099862738046213427223393662589812451134178331084921467303252655268975281928121484045789681122884230903577725637883687790568332848934211529612829053802955788790363579479861640875676758904301014528694891078682775692157173015782899725221668051131894760653055815673307746612373006067282129752863169624860100687038249634603128530454349729082149478582904957624964054378978430884345171482638814316224324493639151382530838072770287020410842321729656848954610048114936138791804802872606768627752660893302485633860028606607300313695355711572288683436432663964104283694397081852050334906455044004730294864047807909751970081520294349033156093000525458859856201593709235726391343616140282391826625997255659817089700603372741995455515281515283877015772326265887696928940539325149957867685022029787560445881841476921401889294691798684271341366316275221287417042217561944501089856400089898420247409223140049485955439520007318874580906061328041919546019298473382588308994629133866450185770218933923564214923057971744701386109594890460422268592098839209244492089035971909236819389037330636426855434687497923538555892375528516496785637460627818560807558639046720240924151273859539240699835101011127549462790622221100389685922062047073134096969674497170386036143959402440006469434567960855718617283684214410098716236715536593269361672377263313715745833024857699812604113657727137388015121021123999112232957061971255819894587509532254518392148448830074634208094775115111805595377223124051252818227985876018409219942780236468526617983652132832200976262873489203929096497090740308185181855269561070728381850798596434978640796414504698250368602871916535577878073713021460607170254508465633169549307766004559405597688884001372323466232215213024149819065350617147953689763831400190283422999445810052941127956812303658208840136434184714757382120786989591562152476381361464277124509805233232686871809832217485986158057177806654878864825917123954717368976969819853407232978459480378874233424387286064188726644825247172340397889213207955108859793319018773655941206290377544412908859150165569832284124457089378365391589784950195616629211801043453764949539848996321007372747258772209685429180817253241481629817181496763854380071940197536818437289802356294735332639701051702200692119374584401358834499161955207131119441967361308280137546367145192674224041635194597310192951935255807149775473160881016456270081227043393480213190301229663353649945911862392254403848167274332636830364511206970871106148266208974452298167136376936353042743619072885541139523480961929948704502027924118208752693560922586399075895466990578063542418202840006848930093463532523699643423791700437299675015629399731622342992167678212090949978324981768203701083475199770808004111153869019015969145634030941903047980929054578513372736805784940946191422187556370377052220026587141946426469045883653214155011762925307308340789778094521732142571433997642114350556194976969129864076832181068823856360730294024009097911878559781483875630514108778664785052049202951100692083201795761642812725708359327290316989065077950427695351242439860112562463704406947714195395160706172813333653816139983961769725876064807150371087812509317532623698939900752593858788808391640265314546742736083425880821062454257267125845641997579827157357747434315307734777899825645026930862425305590322189477484196397266384965403695742805333407881357751808369097370982571904478116068676908715900945936903341702612915118866977434136350683488079721179288853141185710911475974013201299432286061098073726754541440754129984278662507057744231749421145981559476449487508486201031055124281873374956584631738901944826614932958112070143147449664321707380900050882879113065956631092510072657424227203248023914414615591988025078129882418453831785647470112291147961867015274388134459427127954820243904133538399781171048192854924505378102550360713030813758276341658088581513659872100192585725670492111735324907693027249262118691448063173907190129166924797215567557602616683988265015336128967750382325483638133848932548209732816962982493691723961661937442266578725188320614421188485641414741067172965704065545519579888380581226923685497709113980237946492959225442165323802081445430486659183110897025292315151132380225170990859869358416780051740217064101542079502591056922512070082587156334465407188085209108651770144183490614347025906665017893021770943240729563741929466890943289473991634495126779479177087222633807427376771065237223881961088011149428425131134304715743559581294527674624636593549207520452533928239397627950950938099442418191097121036434527344434199331272179916822854085431869073853403674898006588393300066190594590881880670150431799527381727095270094962587912380944161958954228686534993808395513012405265447895976254355743719295846210352885697836629486155341819726931397711535241883843945632148483762739539814129177791684120885404996945804310439095571183910334270282607229824583594804197411371841208619358321003471212072342758368909053723808993606322447463794817575526854571912556117570997071259458689234466665250006909946682490066117754175738211206931593993855713858113145492026691248099220668922883526437798245628231515272982621708485074129869804142507928694379110940104999683359180973730586379806769473666908861340427864976929899887500558159492116956005933034992481360563970684043245661966732172116743302405802755907551236168613037519861498849578214485628448149140321040871862816654742276025403468491667374320438071821713858440493779808941257961151033109718433695840912545441312761554187447490052899129785041243302256557465060531862842997422300178007130256045148679570813914201542819511935117916314994039292791691499168965147290527723986151093088821904706781683941703566499297005321811642288235950024800774507752840291763232102467387758005815475197294378735571874800037414436007763485430576995331117578830413050306913040588523490682588665772368952119632879477035639446970025308367828443740044468174450788816322538110707221078391228544273723521828578688216058246503299273237627421417792557922495339937488332949841986374011844554535614603796948175295421300928883426224266307732612538628819794535065358068657463538150139688027312208740714427833487024054665333712739956479286999818152410907782772712684636180177051579085264247389554058426194393186417809281056748533935502873877086513364912536331959838496593582720303499863866284954952864471487899038381681812499584683673954156427964079738000933608570513072971395755482748123086005947101148403315171482759637500097035429552017399110713334420536241531093257149131768930375430747778748535561911877118792989127636299770699029606391362288937956584963460668567089270862233991056573619514866339186577585824253171919725678503007019278291266434256485701386540652305994798510133645373649826812621477904778785196306701059763906098245827915013700937521411379539901109867703661933890814986102765195559112933017181980227601470613729464147066295357167409649544298372179368673640885291667199335976182708319630620327400035104608389478353274115867224681435235225683905004464326929179800566873535752704026914169145848548866586445555250042500557662977572803878242641466992762900989589919379111373660734944544142274134072567733926174580634943413626873097807931887831452280285707776595015068376843247164214798729431799374183296602160997729347159002162773601250830283484105660139129645127523692695227095203412184886832125872561841069267170543353793299429211877566510952527274293006550385920965498014970465076768710078283308264184008450255367828639926777650754646409967358887628159806534523030762813793019946634481036367594979283054238490077524519934273765526272114318120073527835802666243902012241353887963280148349224098466519385130847779764764116853029779351522376013470643713769965313938053110684932448775167944248101318644063397441470333159059536216774108383451607871844498855214255575946286719859424072320728233761730992237086331013102738814788017981986166743104603667138666242093768275772211939160808954478800875940196200231743508178377029254964649830825576099605989074124580425003014499182179080732295622267035934926595139189241933130692935160987511975103801223739787774197583946020383166033786490766088022526704857615704950095642465322991779971329034680809920218608548286320771559007372533348383098051771256419979348703721039152698220692457202841780933054280963779535997392358487921058548584468520931469701448553801723371911122641208297792067908337062221047899577751405596197019084100932463977016936658187266945455550167065398769172809872167449316426542526164381987684516240902249494377840009612725427340685630959949313835411580557454133095023455270225329366654041497756185554225468124258445749007802896306547785443508093561058814693670935337058209643633104814479923278309134449151042761022984685231878821108314200649943657903202749254730067675892876134074620472438913993984128212246837066425178153334143787178940043967771195334789502616787114142300585197452347030659962601891613227845427330477087599879898557922127385591767113695592518462394145892593355740735040201060762033593053802332169661926514424449709213927496239430311991632446196707603271278171134581617425766147149788977425624351986051135011324817773391453350246136148509334298903955901655585613782289065810210660539806395818701238946177075288502990012392840745164852138632774690353419804369606086118666214589960093687137889495016477184358968787669279196686669294878632290029759049772169219987802213587867910323963344821465958696129292255481712487515938455855170859188665211970145577119669267765942355906259369888753113498528820381811937203572162783348354057649651167234519700818385819144369619469645003787884586649444791026578223421763713219136430654277054911781767597527127931304381877025804904306099648929546772125846877524551804311959648695583445823134592793021361107023848892731380187063373676991639725487650336963474423379257601096803096045833704706878572351761418352519152376303148701818420836682072665506154812631227495281658429577481595659466755728485441895645512286996556046503304369601972708819851348110300539633005006621659389839087356413729246494261736020706987726991342400680104132996206627296787752251484528440271659444357272260598015536241526382718974096223592433045026833262963573106065602409210074705357367552065616112405146769637944521563064997396299783426185566023800964042722280613539600017932380848283825183975827295186993089574750972464169335036610440663652992979892374379877097241663278013087692791307048511493881814706045699634881352335895172062569633860669527727102534011395408339405010575712126384057475130087148032900977757683947290264226833912216518652251693614136286930307175031276110286644226402775146986682838557544035102879090198029019449773402490434846057148169169046943218942370303638005752365400690333455685228295488883587086041599748279879831499804962141751749377538198524711934069916834376971950079525645387883835512114338183619890643603680420895527209102766505783004138187357850465191400979229026215512563807647752250597134129233011462055749371455848778097762483168351190584581978784895754436193717047449303806905067950645044830701686585800657748800656299220522294464582591006343435110426543321313109269774328035001121453131862238725185676250864238788677193258888767555639832840450231442579838617540211671800117003701417561865244827278907286180446846396446984258332099765483515971085159107845998480749630257112711728199869356969012961308727144141497278146393569617643974548373924213322867704721250139612509172499008582375505143071083924490030142149594247597285545535639132106349465537604592567116037166489858818682044083262713671921803078076207937996286319264933967457274339175433639727204664607290052443515359329921280197572393763097061546751360141082887110567789511164405402924236611783898847509975869350840265702157403842297221017957924696033052441733596088619665269814053447367853841521975330532920938983970234645672710175082782375319058132784469747121958261124216255295263673854964069894424923325905825989681477420422260628948472306691168577403197988972054643941064596386658825082958307072034208400367226698660991655304382144942496137712806836170587401448153869602345608836692631685872559538975232109576265708776008002403610932326049589151141655788104774593245056771427523904956017394245775919619927627943280412650976367814825261876331269630313504122177625434833332069847179264493404973069147149767861740533770699713596805903205023228979837185385230280956193076829788027474806486901065715095847951400867570186873119643631150013423576227586630515268268398226054827737103462145697181561320630320736180371896098499149639993691690126671484261606200455799868255828343738701569443275911992269526074257650854739753816094626572213126515727283352350110187542853264006931371281650838883818884787792227903045431759452011837786631578584391407420069329703976084578317608580563225615476991966180416596643292511384953772645941827384993275326318796386989772681821122767881411827184470305572181539614788631066864533034293281825642235921776180320450160215258587865770521567374131620142325327936086196545317872997764668776644013102650453219280283348284177881209827612096178661599052779222913361276498923443752272698859158026448505666243891018160278484947761973739681759950862161674268392502812067484602456769298130424861013810241223140553224529090917930815954466637188010343910405334057393421078373323628302081677912361097223277468007286704722304393784702668836068938796242199009912683571519374139866197903384544403633499314638716521993867390256949500544702853822196316938485386658994560930337120483037737901064790326396075053999195060438359280355782013629444899766324930364165718381922802745382784878555969154382660216589024294322741194925620412748363211189725666680859052606480778577004623791777570641360507816253173337997564750717510078586306129350140736254396159676672098563403720582381246232158427816076283226364131934691389136356434560161291835026345707649351353678440638213167417441873758707217232124945418805689379710189729376285445088232856893490572313974291947893123189358904941485227824535681283305025130844941375903251471338075009560026098546588691154647845497049644565402681899850044117082891453158029944531499042991763372076575529711589952404299882331108720989877825786180500989159099616017794080161781422855394535988264968708992461391398670197513125944805392823749664949443148656976146377650639266504218293121528581932115750904906407793965419315488117412051765353097494981533086746871264791780142565861565427454967725015573734851610091779371007327970172323250384478757677588370804858424979129228283371958366422886491265169991675934445919291664443302955778581694506131593594580522400020740168837724091383960569361731760235573191848577934022428872344008539426330736617644307288108401693994469030633294975820843782070369359310013823662101658435070711669959257065517171428736484444495367586905768225311814159757155183709593351884877783572387032589642578375571755303715302048313946804872299210665925833144637998482841555296643588108825216084671957359549758186903437732019625648513719275625523515508485171958346936909702336408652815527201861786257712958188279547682432397370084401778337864597834256406511274273117742554903240484105665489037437409702336478355071371854309727803650949686733126792031493470713464857588588746246125370961984703898552999751328680427921368570942651335572942204057255782044823118277078218180084300744739827249773067873125831770732038956624294327514715622060422091955184444133246204836167985257717616223133050367328164636211705759639169232371259127690081071522531087832401676712213980470931451061402063096380945044016670059043070960021594200429167750111178466184194926213483666275315427325655833513924021842968041564724732004218220187722628444731448816064698205476038921878251861315917222283079328792140579603833287525669227592868203459487376124029726699789186410457579916993392209180653116782822668059840560320704822905564352224313195052424435333600781739487311738713879550005919299829668486375394693175114281488625554223796855621035487000669676738699974904002409104206790438191636206864688430204054151882708464265579408803217112856981291414668790317101717390091786107936961495682718595182022663750322749068014775580646143221417156964827399080297164454956543268764230898835791990236790028074821962491227444511541261481641574061015662242252694402658057203159449800735594115578700664838284386109046362330390294072504198635438740253571406695121988317908538492716667008710885771375582357243785900631175734493720425742956423860522055634123507194684269724876348937611066200920673702124756305775385182701836546362590941795433399021169255808887394762554268371413197695139461295708889913119541746499596381901685930459601319508482352020988762077769156286161938084002616378559244749969898307768208656144954306326580242181705102379083165442730297702152403035498420258840427814284423660991404001428996939570882991344678834748780132538997825708976262446291516969596493556666587643170513195394770935822582022917954696720010138444787038098952310742170063679280714698874198920685657812258983918652534529125937008206446496935248333415298838144301874717343132860488996375365817182203456808739697995645501847953086933627721477546023738477526838687618962596304680014504274940317608145344997566747495041245125060576053769495629749466639803150050372546033972106613464617774229979745341242008403952364576526290516644524315678547192858318370011282892703815160569878578315153146867674262168747131690947506193514236590704166064765611468172405079372161826956870612281228272539705170437504543823744031107255108241169412113771131166454978287594590566283425704017670643408031355686610281128856448817376911713174455608970507779438282137435496998939557554599037198387982836072391177770529236504946441409478248165019536330119958887625764819884276691269516261459222976487346006963815849344852533497153852752063851097123286408014019111739494065228034255313494031319623668060612492312182144753063708831870626954348610765127281571388489714727217454648300888441902738123975290818642453989417321903410624740779814326325410324978721472834967201115171292021674516840646886077769203013988743546734487770378033589182685387756350317782277459148391476374768834975645138896727173263412678316487175251149683291410783379398549992038473006732793052182777441741914108328639099926975518055362984407858952411417826079077099577187880809448316596137786385194084781060171684690894633186302938524609177601690289893165314542162395802188963217411487475771783071013270114616640378023548047661491413378992633908860474433549755767509805528697966866300457203191445643266101045521096743542635045069990972118719932037608560541166647380970379912768283229568731178921951708185035164886603748421963225048233833333520042832601759563579700057758115555569261969328561887415115926582731680442792902064805303598367163359724204660235008120999442618819224556033891869645012577283030237850909037145716068032118220331168610205609005939564668408896380187835274956730233591998539534636221256057534599747576696756083998324196553549804666823133124798727957810223603438083624556341803115757531575876527244074861718470458747548028664302629431117800695906282614308424131307451356659398590667532261483449896643806497189876931671983603679192337673762744391719915811850705938273747486150898407018621165531951244103826318919247417110541659045129107129968347669553129417643856664851127584716755279735413333374467653590650153113963743331124272837195161477716174779087957891370019222792439475306632919092060260331318930525023478977052810899295637088841883631305381410417105202813983374898878769074596520767602094951526766241307154871393823625704170125635646952438279950907328967172565780309530043717159314639795150969961505528596568503895091650557607375088857654046799687309028357238201259587859367031480991073636415565413906783121078086821457077231539532656999481267966588271406564285622049085128071768279189956140180173435765073397967782790112974052525818254565424028880035303849071951356629137742473429021909399781352738613081319533560877462072729647076394271901433434778460644572738380039751449715733919196333047815371134833334934174449867301783054903170913740400029896145712960044689771613808710178902041091967497672321572994860909850797818740469716814236468884804563009795891031643782158105695961467390443917545223189284028772605353059400825643474489862969780060648200188037191153227683658198471599732771654561562555297953932890293129985672665330277884858421118795709191665763360993027520388398412418980940976245488209780139714857421490230351484366080158320422033249272087185720139369618965720459960555822463922206362077872972901827145885730824443887004518908286968868956730281498505969223016284116577009516771932551996187824585554554150165964333456155072344838035096758171034106375743526946933157985564976639270688992530396333319593621456206904655730206955290752044621507490936210322125640320681343306409651958510691121570692582384889146698356819538175503198527236213912370620531286159838534184506158545771107556400134783176121685020995436676716037564199923620456941483661733006994054410407755644802095977256345619662465123738629247435085446573980823157797319509276908889466860686089728471508142504121134489106241769587531465032490318604052628000697612599967680713727000657653490506658080039031025838066721793397737271611697909651246277417186885051794981379161538517357938128857849597985085151658875496419933299185151890301976853719736898069732108974160615489039459990449321529004569309081845710496143263443855213878279507658439944842273955408897349268081735880836347558894801533056185615242155173331757507794608211238981146916647726399018620302512365722810226123900008057499724004097560456814619340510386864245003104665629178515906921030549427682600287321472762562150124603951207005593438507737034497368695904950112783899881103583705202030132475133306929792087936001185853499011360543862021941462212698578554027275617011235640037390932856743593115059254438910435997184785470797787042056381253286966118869843430867553820235345737705824869776036162453459964581151973484652468386084687898308214521517608133040937963557570263473612009729131072011900273464624929427572430546411627599452722809270151126155898194373042387916577611670045646032932643165548723778766939979290256315973494305693002609596919812396062482608229738213884173190498419190205871295280016329476822769130546794228923527609911808647688945388343044187978108707677512377124911957406962955727138248976273152760260114700503666326067814446828262741101972125151668662754882301209849547037006532795468926130989979096326132915081676459306804200023626059865416679500938523477717044586521972673040792938265807076360443031473283684733896601661302226372254269467181248742543490169939457306875496424700986855601933259142026770142275620259693811250382377238959724156662214967069384507577677050393723498451984094483362205782423358725068227841956386611272408312764117808080761005608455676763227966242488646820860707568214539302337991599719011742420818602666460067017839799448965407508995206101678471294476463293530761450073337166999520287613749105399836801504653166472518052234147543885781454781295862065558131589383352797933812456720308815101588933541385409521904868614528293483130779348588825415370501093852083048734694324101371108190258426144324535297468028979624444441084656170547689508759709519722649725101563837059087451803095464323726601028380927130880402664808754814083945019836817754003494898343779864353823197932287249641089803904014401560152506496448740843384072746004044086859081841796039144702696423294983591123581919825732714323427451713989288191831140597694560147260733819493386802631177232704693308535241709362152754589159604129735157801403229752834988045086540744861066055227270776504489255570887312618945865365767579144750327969218637302362877186238703492726080302444235953605050185085738757208544371030909983663752517152568402604159660235149359877402188059352792725281307531753225280125687724901737192588672916914575378239672393606984261284713975749593464361432858757695556575711473825568068985127255640478176878563918909433483622083764744466709262182929559750440310485344092587265860698196050291927076123760969499048795297216775204409300959257105024254885085959931312704164238583165888664359727735766564143806944451781001190353139619278369871287309607260397219996334372546057886066235226882632799528169956215165735601543786049208362198026312009848890399672678227498110446096245487824084597587741221989223885319518139750974510458085863109824307395223939996955834385211102262213494732917133555851230598357614998698854871347172883193523885878896739952808337505142117293318496552424631099929182543605879319021485400357643687747624161386230531426367526990714783161113079508200277285648455921424920237966571352889850166597286036759587205648912594795158716412421419904585666225695606557642275932066316564942807861358709943329236894195747308668146407772715856819341918006124654040170268883207472518704959577312154593341385037643411009838023153271272494143290302873091067440299897602796230771600379762487637267714271368539866820054164113611020290548009589545675719146986568246787387776233208546596482758217779391234818766694322664187668201023878411692075008374373190801939276699650681203363973008582083480748027579276292058665334007949288810999291946929678408674280548836890947405906760479675676585824628680959752365502995481069206331429781050954711734527515051840411540930964133197169693951641751751334514659643511089200776581997963526672853297142681112755481218279023257209014682629828245026243308936402243074542405043701031346044187422624123732197075732047904295956776477285071511835977354164228905618197418420607364299097849498310696905284617936056534490110997852581356943015327569656025280969596185535523036184030738601056927673360765792760932038184972490004298702043243492742947521478932883216307068221646677850893627562011453546880478123057282168452574577598263882764544485247526987640770959256288304864814777108993584916264318048692672198099009994922894859229279072302020781391957539920755390898283368413505828325803921595041097829310108502059532243275504614003537605968978809910579793889617183241968114306890216355938781554769261528218270990658707210522582817423315210487301546772755789616918110453909352406543774643696731320513226756359542681240368206877456055248651254180211496057141359495597981684265581649804480650026217623082274800674033676896737285150299234112275839479001388993795723381526333662021207119830874087868898633045848741408442654860447762638202481761738161431552627745213261764748359731950329470619090996111025999163614576415325016815466825992008438321838590026291011385746394863145877788681907403298337637372464138359717709341163977235710956410868455632203109604651729168418558017025246227249359368370719217568215850230334629231148875814322126540364926546367580039089239420230368681442198955926713343207667287097807499942632931908148065557313285330682901496595189968775054350836787185335732854651132344241140640563259977666618768016633441739248431897880394898578976381747623959313299493141256699411757752740402693618171184413862485435796074981112910234910865699863142083338472469923105113627712416840740529790646440967750530806954944599638686717778404268304262288204389346909383169698767553060994702171963224086312855190890051704471544920053796421234647571349796282107747418860113330775086959115868272681092013713240079211464312602907756211549921033090296978427494174876237755964270696046652292879594374875449997827367458166074211027137006875695074826735317147724666835735638829054846602245033418981144317608091364434134788015989732077815248087064928188611138415941543782439813533119660859055657245511035024818738247019254916151134179499518593586172288888470955535347275173712788363798423556345340161536468993700525200841943514179806380352976820555935025151727731686951559570846328705750502030537240151645221928256451795171330840649427908000086154968863582305962994440522316957469242549636708384665387429153139995804098281689474767609923033174189723497314193273843472731712025255928389215403994967448103175863915687971753243649296108636304484959126667816017776634033812224264133655905673540292597237805858569247832421585641160603663423112220138216151276308861182978221364106726818611625733819121403400917302229036674351558620339046243817062582845113334249584885423789098587660855495120364445028230182820923859603764111591936750816893038410416584396562507305785180716686544689948244889915302475366953514991758229437822733087941609376890083394976355666340109558403114512962980930874706462669066026135448886851161197710699091968989584432697915297687522981267622795362795761580833448639904797000027889914707540194427726875382974276970186458675936084801427413196660357069359644679244802470651409107964134365908089781655190395763475060535477992494802837197423753249572648729627484616163091587251433439517306978544904859786882999032027186808420354942264932218836624085985321602285746466085800715875655740561412329875392160530099666268484356589196259517953591678000245095271997325208734862347414629017466628858764202672267482730988991128915381784352398526159832917533121806822410686326004730052600682741030476385808573848327849766162269795660040878494431902799204463395124997190823361542902129577526287002901165956656852373558720538419722852706273482270491578094432154815048927687016177026868435691513853029113196589425930148971308619948944975933154329420089849039633430871819043174037221946554102620682269199887568121502426662224840307633141288390955917518007995632977254331720735714406644365462018911588280585270656402861827760408407022778350307221850276404193088050049272172178544265467126485740166430567614053522596396920286042098295426113021041699030424524975028842660400177730299531853545969187879626411104133039365270446708344416659109924229408650943430670273901547109600400942496054888445631567983515032284917465225195993369183467348731880073711207321566702171716040595029423269714823275568037311402354685770357884560085091737490057689447263351037067967656567398690295452880202111207582962031874840336544166656106183266165441640597722410719795219304368868679694885184767907370230742624370460817731833366740696777526096420866250365345646137251772252694611666713658260661616637918060564583493774362195951509225650504805332736306847437876851449403486178250620018971529762766420843825283364502788517972118846849759441591733804063568419060764503395909540239710669914319433979585391551746538929490308461565340635104170858547577904323260887333204624699921898404624740992675042316733084264101613956815918129818426088203249096907898398631087250986942283963049683612956698761347292546757325594233998686724912100838410599551914464766896081623432779674457599641928327009979054419396605604617565745247401477395406875238111005770047878361193374626949432604285784961949604243570153917961690535431664499230991834945025585573232671566673370764114262543935406590776886469655918269118557227280349626079165950155652583860577021859415388746065411041321881515036622667481280563517389447698453272004996388334650146409686354463427874117856114113661738579238634792274141145023143615422794274257281025831794674162084823218841734700575631782756836071856808773787317882271717466408010158684828190909086040987027123851947300305729171989864913191173400220556724584112260743455581799520798774460835162211198923029633078379686935358032734336812492997656143164322254547846608078540552765616520968487079307603546316830421503250784843714902368778207277065436165201465747776853097274245075628653318640324486503707357980450415636247041345405720149784266738438885121096409387811892237761845548698725526411101781817156939648929677191697180258208277271100648188720860505044798056602987588947732697563964506110640471287052989441590725036626300790239492285293822150127235970776081444306531701527617198837895081950222742210342952885444857337228459200731762920921538569952901301707830884659405796207409087108002055756265595399289410178326333413352273268555230075419571706788515562832739094468039512658117121730135425120393143794853781010321143054113748077489985091050509757984058251979302209874069280035576445504248575617318496697729419512510366568294060241397697949803058405104393345374315706558207590112373282228189415442981853678359464120678818498410043455803431738692673514102874583071540830017176476990808715859160999586204629754162996084907093710523102366350889345528904267273612894117696499598557956759503390460002436332538826228520882311423339612858687077920692088058041190133353629528645425253214042896338055237092754721222035991896345985844602374231295406861961221656140829835423709468045220584214862986050348988371435464238965710469406766677231106781702484573865594192441261167771221004462496472648564647737151429439035667944742776632763500590864478201705763678865108969700744972218083576421110690019651478491755852381780292772245016289647606577883918596409010206466987338867537663955558401412232313467927067772367265863287437926194959427848225724135883388103924797963799696248599034459821191760430881891906493339958951865729674487968047966890154675016385691813283884451165966928258578562826860480885578219932273128643391154538075795903417440086651224773865179546990560952113727783316649726031974036919537944008056703987825314829777655045992736860366939373620405317813816010241099529413708812675798374060432203170014047892579301355054780341148568395888500266168395957400579521869659143317732956285816290888634897609024884434286366165994797070811815520570604968688835639493033201380543924671848820432526028834924626171437420347272382386358865757186380145293451190467082675832305267789511087575954164660720028505921862477331850796927120153124268880789188289748929875732760339939301590031501531881526364346388240085807563466610262928765015724170784935484872083762663475324871709311127021110413108935066522834804126707859082682669143416313114439258254951175968829620558081700269849574014867941397853961634037240896889672071030986510109502367617287503950381646922442881423272765913680212165999645336490491854135223294085004988099423530611958962253273664991750401953320386793874027963479268624753276024797399540164366857071114660938199052028493277938970490314447759121894347359219734492655581289025204247009177423498620725095045031468517985843502322875554712150653427601425270094835222514190946814287610709786694361794648760000832962205679874427305732211988897284670627745041659526508792058427723558209625907181129813221215947729144204369253390912700045888777894643779336001681158165011615139657042541631154438501417807706970944473533489631034793227344336727198820457302360187104567117406830500098473638085516503997080442694127641136390367939476583355474540677154297163593350867507822166125538377829892140691915067684843301485212271090445284160442984453031909826105375796675852825344153960332926998413255122248375862844417624834787850381426430205238374303584282909519987139430790041113620685228700819789542314305876765065448651718295111017321194386239745395452944027255397168065625908882220904501985866965627519659588277031619241067929162940844281666697773253118399809438966394016943107721368112360793359771882190307875634373449343852647119498795292064727696822036566636596083662937467126602164444924257077390023217989183956910831650556108011778459592600590020776853972732143180531671441411835392107919915123658151717147635446720369116071487307379639358496491344352390841738134491284292205612887167916114570231888325735277473215583669387931194031811018242538626003083266078515554100543611017251832871527860968661260074726897072506881441682367252311798674839991954484033107324354930204709105882201121815990815252833465353700179309416248849122717435331452786201917845983103464905511771436795363326798745752486888217920637588462128524621785245788354996931073693626485202402860488115131758710139095382800131188660598669435567518505639020278073897830716791541977371158389415890188328652521536888965432403219190953512281779846088781813669017321617368977767775778187970886253570469731711127666421928247716684365197398323189888818258725602061851182443579948868626322396397264642016005228969501046462425284440161020272963070254417796443652529708963470119043987199235327221617182908558233223609764872712746179179998013361762960187134240832651096556882151960744075584218244822682745656505444949338054398665102725901871921667468616221297779825273962211335014906514658605141388221341261708457970548237771101499609725367465773798195394073393660011502699861957504137463496463139905560105958057362059548213881413405292456991496492946039804437708941076417223414918081775688491175763276795220177632050014236080099606663033978205513613411614467415991622126064179789871467250572649687623370132734100820359826278743760807080285949225770212422964976704905191852448340002564450869529450470858808928746062102730962699326423972341029059534459007588619746495414012343923871985816890515214973842534661344145436303099222100426382239528568345532087736477638100441177587733473976402891873446532476296080459672443227100201495582840784009241408376927772643829445559616123594954283671263741261093414905898873057311609109317051239472633817564299048736227526381538013888332661449884935694112173697166672131398010326149876038594520776509830324062481676746705612112221081517821051022930526684063961184903131369650993933493480981013251153629546144960773753303652532815570117878742427665620777669828433103515831766720869190172943075265998814393941044520161357477668897941719720123365408653912774364319435754004746965423784022578026123925646047531732645690100371430612940288769213485673208478175025023137605546449265465798339943625827474817288351489354997591883598033357962685858803747887413706487482988341398266972279741084044837267596809595267928041767479222798477406644400388122012669450411022927299941018798689743358558633346856517933882444930710646991065026636260688937071508636513166674300236465873522528296110149024837586921438188937044766292298568664383559515224619134648699641703166818150572924942873196568129256687052780467305273884734563073626976751680682286757030624189196726520829885827897101470327929039716631014740040224466076346996751377443391307169577731062493694289252092320274263228461012698763815163125260050517783097079080688653489996227677137476877415378069201820780885593145828883026282538279952062729920162425498007709849135429607221834758769931134256049820613113988732857766493022137749004840008484284268978813678721373587192213805560679668915541033742407965025306219813293385052738771818982301892031665138451689507943395647738039280784044965243344964393606926665493728962921969301944968174367281015914680171577369979591439092508671222079385737023253653113491556173495200891609590463813547036908203902552768646081394257167385124801024405612190179467821834895397279277821495077905399631705863934780437159298772080629896504146837064779959405954535297257410981972953241648978168044455761022257606934972559456681707393108752139877433225049856017985000449402102706513696001106298289103407985485639362987922584417849361889657300690423235531745063306945342498251734849485977437772178517628306905657615106617770739025156243329982233628154002522185969976729619346386723599962351948973135624958123581373297743792499758405848281960169072614949448601201102865673910213725085390326331452096109480696341223256868900512107111132188173223148996628903755408339909340741072016117819096358511116569511081583412846560561817403316366994746291356867397643728960217414470224659086508078801671071733555653126119677135462061791433479894334404733205130874129254110688805465205575621271433795752761992368749472189941342366498566167096875772319917042345656648683142971415827915156529104445148001585092371719059432077226545524893137202965814008103161344644434743744614042274221702342211767735393254899067340188662055233811095665423582280717288230173274555628255329762875897810646763591411882237595903746086510444702463642115655007629043329522177904391116012714534132230585816439544760030728939994459908622090685006853858550518025674591437900488806382813348117389713937998260562110032949492290896740034446669099561061471531135061120196205182520977290610237071134081636019413731459815962022939163250890637128180327451916471367480935783615549632522818942280334271345875774410473324376673342798504814181376699896255294336255544072081151819423756870539183671166314855221853418729501495857549940860708055328413178597048214788829871649844748224307605235464543653813131853238973836784779100207451435919731951279899752001212681992517822121302678280148575470918220924233378720174011363960918586840948165966980651529780042588719417804738674821142865760973202276770584356620219086033205157709160419582141736474806178756208189389298866048136560503685616459751845381706542617042433973050190579046167431691497337898392271696754036568830744455578325987060962995764057251845136880915105584577043193249803603540223543047239288531736711575060076003023288934770188332736205828859506757776099234452969754637441430835614953668130941555371291342324367689140232922348453566166274432306207195760798149457257499022792013038400577220058339732326862252994045225465178118889840459767543027958575290879023300564801634821770071824084059556240747966525904418398025821749585122794976862917217084324705905028549004113802603854539070492796569634584125668327467285755865190121894588479148188695975463145970517872712887280114141089150493760098841375304892378352609490917522313490594374498013210599679403479817737486331146937327837095061319401708698929596987991783495598562676120999830016968773856603135924572757003874445798206472173462154226705017383521476173063813622283941177438890094054197732563310720956784864871852089749529478302256391613983698058274730573909183031419289238450627767374823533871042509897066145171413944493296799766324467452239658682307489161723475377823364529482829709426722630838782443003027421174353380751765687667637057007391854646699558029781287690484098665464502349769942985471397796692585997111567734123980499963065377819727094513424323189668131027182838652580457752514852418282914069356142263271520695245902174961210967987805632284164580301208674697006598305955614467938872189791629069612899501127667346930336771493213727610514209332745174475089102172549393230467897473471672344275973841881049173861244942212871181741671369237520866000926989146044852665017231878291522407639423745805295123522551047813810097303298580263533043809531936788264879378877197155448179911354224643716854924625329454758206057656247016967729348915086016240651200377374943490943394258127996928791420534413510515794665716561436179436097382558449803506217204316321366381399800611752495667290345711594282347219631866015525550174157710273950952456161840567965209308679960319731810895389545358010313917656035501449954149441499761644647684410183383720677652351623925613589817622236139423584456743613159446726487351387871698693508078172546969807895589925059628693269840926382429395923824467994193869968383265797015386233060981399909238833106294041578773887638249681743404872857641991288174676020970865325609771625357898474992093320686163528508160820181239668511161673459170728215106594150386386246271812461239276252204323079013167101898732451214778572177402438974385121981615021242082231761085565547910598593547964933190841037766416293977158346488773286997763958708647067801066134763290480181502642715394356002087505483004622996161712005984739744568465305177786624805246612917768701994341942113834570137586537174352290949966260966430096357324801648391305988851089535374367386788787376620068474672346607248882174381465335925441700026594581003070857101649010359217195327724453834463675150644598811951612255699795872684111453104403243651719156440582576192487140535467898695646743838368140655637760553816313688316836346304717004733299814089861622864595231509660319012409737780565403575190620466814366528589150770130547442534881168496170073844526470026054011298950825625362599157038802019769156821973901101424106664000828599316663518593870955413566740849836826085327198792533891469002850561551238073041100063699875427927495246237785441162609474434169612221885139056443286000380778266083317261770672218400014982082003317551324260365666083598727481446387738441174302286726787357456272619392340664762429597758373566827683204219686740641418154262492504497345379873093718134854712765466171867880804605060852699816186948397134033730926875116956449145379297185847236690200316085284978448121181625035119785993039479178001964409621670871608667035410467440429915024294282376849842503982971768053986020343286733687321684151873361626264217906558915346534537521717347293561614728417596387583747168145644998644005377869082438796100019719414185016454071140445896346920615911595580745920433260510820881072051799351736011307394960044238177620400931523067918961989280821122921516192991102239453954517233732815508238817446176327527473792171898689354598743851998138992263588732448431416196064728397846570391671499467452446576509372107573881701675244858532611439678666353152415540139872986574788792528579663164809678133895072647445362072491557666698133482139840035220472574262920896864927000646969578035959682409469204474053848744649693879030577352948730328175880688972746542717842453662612209704128189487579065238419227164229722430240720775606564647219685949052831369099875311354625970878947208194848928797137713685726255426330211793963354652094631779691855303154094634350645297979833843236459176056263499559866666386972489190155530309149154786388084867581514038164018806662488432361063666503748453399122930383522057191553564528547784353256215286804564679869496111893937417587431903754637896851028707094548241406731230769179701597545995114222510789719140427519900148390089383982944141381742117612804867133469366390827024947247254711143628512465225868145748997621527822902742371583171159839471459613900306901588312276403140064134488064141927602125842545803904384289211635779464150918821353258774784390935678555712346347398508303411832023581948989292884534161192092540633613319736496273362876474854007489877772560588505690234717351004115226736599577890128408254067955996771378184129864092070423108516450830893712722253131515428995260480813477766803852940446398427679684721103990678516989598255819269099461950743578197873632475543695889649591488429444644982177142866524469688124292128546224809903647362671942563352366042690975343834106635002747891554568032973049744633473955401187321387334096470451628232255397639838867362662827032287627138154875798550197142587118682578688213878443657343419957771800734148511846932136556016514197819891314853511728397665192126155194334627649361207393287396668985320772857944569619464163169106407171373429398792474919031739557742540037357443302910818682261470493201219485159724674281280478727230826734663477423099171592289301155998256005370435560371505618683482211581563139333344382697664217275907411497014983422578557695081427825912624606381889277774408151202924759871729180461109947957950743378579664445349262170665537565787494669956723938839447845073811655540249404953032949091282593691904634202660385165461096144267865962078434777337393039426953985257562822491849995018496807428370041441418381967042931229473989819232574427940341757713363911587759416112768634213621050847659511987154218831809232888794762236054509441522681092738908430389886061922775955043933603159610896221651505905872249977309751431013147452391105935297834496260838314882072260686314523560830639445244440668434991571206637987213119357412429053439225900391592948547251666287771604597160824420035507061104898644220466193985168443950474623629233739429628594146192569220055078109475098021035852849732266308012587516617605308035911482635704113104468579765874441905412054858908208459081128340195767765826460416385845532609381530583330823319046035776517113115927695412763373967804050928392468858325885563682274346277172263735679201364325654456561835371295051228952078469414667345876260378021210998216631832842246441092550958049607112194708584653499261012539983409521367014099538842340078838544255884321846973137950224983597180726776836576807193165900235111605249326693625945582753185554204884857862740745803103336681983210890573124163037420579808121418503673954784325359481373008034386502396853221853682841480630068348961125717830115133786771530740763968429446278243720582767864940088157156983289632080040305073135236979723942258819041186654792988237333144259020893546944828288018252299548001180012456477986817770675925576447608310779871461972946788471870254226727127818711488456743640221041074281688523014147366323679007399843858257180499004290923000645026370390957223971282233057306031780245189907576091557472401173666375720892253196920747537945113345401973998990031359739022029156580177522997331288272452958752940805053204970621982452720116136173311158970201199512422995142404480743073845813035702244958953847253780135920846386430189797788369313505037464555438930429044242986065638823300986429482676748652907554685107247949363548172544115314429762072603069762596132271140459133328543143642816131038839366596480507598146428633626893751068736611297250278523229783362765114582401515865543068826899192520238731318367851907331187914812586866012602463246633129934474704410936183982307651145147847485432343143335640929085016026525251509477450617183896445315720509748201282234522733287667805848604595178844033887535684476215161262092638120940031193575247555983550219611905291294750749817900177660911567331427007405843737290490051512023679142873010460018191290745493511917997725677140012171715000234474335592428901361507029905655578044435554023955637400503121203048026857588632995023302607408977287364188630785789237178439870996465268084875001431171301595902194259014295122311193281554533880905916187597383474289917161877667392990581471889367201221228813058978962980517221057318484624742324819163418750533536662275450642063350562108372117795484783480742283912228503181274300350882414199948251529376524216496022366551668776660830187112138208195629499378409323182333598864054264655493500664592648453252409612199023557987371883289750717239760588605737834814738538176415904973782151898146573218214565021683499783245854048023809584819376109540379273058253144764776285689444715263251454263908750552538468887865272255547323106345282637673013410029650292423118193113966240384870984392105851140183758875675075863582627220766276757002813253328129125187351417242864097275203312437778537585813298767322787636342351839474183635556354272259574864912319462112191847381133196162962154628154129351731974422515696575228310777225546809349242928929019269495011247299107260922984261845386708930295558079035001012282368388460194609086388214904561174179167524149295090000947334227659566483958569571724448534403454168717739721759405092129451577645853028634943101026208354286180941651170812666050021035624855412599108198046844968774626024209201156296932907383430142774567299151923817212817355873261177512720391160903587488847219423497401369601841195324017800074238966952070588782867909485382198319253014161893726440403934684064464640989267165708688291285783377429534856308497959693728875838144939590056321540880027413280749820190990072228592205775286364908213536119029022923157807311516112433875008310087034713142082611647009892177001642307037328892882026614785095808104156206211215900836252425287593421033908422296756038305638066303590535371063358237838689554457877763277815823305327160847769487773541633509821820256071502920236115968031975765002237537009828742455002013159078776568485861043573861462350102705397924132568495349377328359698738255868759894202694897711391974567167210107799437599136116577056444219080112625299531527447407121763989512183573903320995961731414142608875712509247990930374720623149333239748180808687718143256283634492743816628739036500479117933878530177654817298254004700599292060785093797407173430302644202296894467402071188140821827744068729203387820551720898106813275818154356724961442802955064228850143194016956775018853338298587285902818962588157940433294400101721350026786981123677247697542362947262307970670123685009795772487868375261433146013176091001798116042090189409317868589364220836676148918352793675575802454877542238515040058372535927800173365721491617999037145812420477110282635220525864080230978736288438440297902221625817288691159331275285897020349557265347610365135260964194444689550413577847133563978547105033269625992649377048208810484447295796222086581299562512829395219939246181504465953562189689814191607432460161125199931414065552256553361148214994268784185433895122175208161331150243784308917849282760369296278374140717597493851127754248575317982719912084230760875180011937759131044009089662057130955491365054765662630381135003814246323855093717185519794161304118826243298914733598693888518928986188703644110830113810446571805044450023218968540443472507342978399778963014370252025263220789951402624642619464796221942771386469364739318497457532599907400771580317646558840363732757681677905910898972659898563149475558086332659722218617794784655963850807548957224369480669906235786050808107580060042386569050021685510050351126195619574123197469431263043780692981526679298424456616072175303498458465487482895751540783473672296502168399313837093328782702070770077887958834012779892222154474766296280039670122249435363031907306083442617574183096908334478225910718036438167351656791519116377242300329141054329781650599776805209278340271156153194888027587446933947753539522320996490011925245134450145344912911862244382221972493260318512259970889707109951511222029279564064862236311992417440836224718622442645852300256394147874918005065967903344990234936207811866638311792980855390186478284008655154039246581450814568982990800829471670716059895961236707237894432353634895865511741569835644470156255787256986039526917271873154624376500848985740214840136818517355507744719688881617678338405008309234863479858429103147646471344960995657523927843458027279595579013074763839183610672812175248159050870503917441729141033622322773028222098184161664800718480943595865317228728729542112746438722367495658511450231608208888648772500958975882374831666097731655288065561750672370365651838168387903786412431360652436602913608337064361232779364821331468878510014022395838117063823999377992328676797335542102116189975772629537248664450568568923074540531835850958302735693339968364317452419648317033684837432562849953296164703195852986085368483393989656347349022178672908380703782164230395384391831553634291200012473950040610071624062734503741050017873955008676837300485190999712747995458892651636365268395214693797398399837166039343078113088879204888493647571168468061872474703306934534247864943379850829954452041696272501791602285496192517498885465762830866325979443203562308571096389308161374619536642901613540256663871870311117063846182581986731559286990525671105611118358148046334189558475548040182561117996418430725266497208284582176669171286599396362354471211201440769462714188751799422599326136112987452744983372576346204518739103379876558953216238557038559535784281988065446582880130298751549950411101628319852393197299831202276049089942959989464383749262284187789498969230015167957830866134962630923167623443179607983864099774833201788939225467073243074140041970677511686551877416351558028363118523861121043138801572277601675991380354196644504052995011201650429504025123905558249963444324041235190894554205255021911030061495828357286187389661520196447463015785023065222044958668469528061114564011897358983966181284593263955333469488959654424547396738180329961351349496013619579322755484188255424592148637841000161303328355919306502261693175875348716629131090861823912998176019360407938787896453404768841591870785537890408430710965326525663239045312024756870750160797460461728976534817157006225624042218982202860443019981603909665469889326009891786089043497596454036329246282662879268557961958393955839437900389805046789392870800968555945777583545800617386090364637993292059293622522348192962899704715956788271643429501571329712892278392988379701271716189847178751059973358252679566213405194979863973990869563393375750278604097244644372546311730651055886361254217967737437506602568466157211008177316461494423792630563429631383413807273973876168834211606093420889964467412856157841491163827137292245097444348787006244978035977741835048197460117746986606912609878886151986371775889319787359675555194671226606656490588933500841594195388673118875072966503775428207398309784442432912818744767511977653325847874453764504480277978357771004421809990312669827367442693981495638564017554337808183012341217093926765059511464672685798571778176837438348337358831826832617023628687284194187663683020212302415676419241711476693318737860651515021496295571621279128955819299830243732747499118326274900290830597270047089453272741523749166401553560254037441228895090985264821751080713392684605117827883266607784587136097714253738510749346854202191462109157277692387767535170834931732621753560170364905181073124629234970729980176104589344769534437228092923824124617261028571832480299315531552153409072154073684290613515639642018699046807655869025565457615649867780424559753023518212594381335628320510230110880757483181348706577646206501804262625602075454567566782664188606615148133958168170416570362191427913829181822916797145329806877466685092213677577621633777020381570615225622183620523261198889874465178429358713621700430634596411896044197749200597834135820362321220643244923178421571833427769750219213397210472507708803546461499010519834889717327410984508395069853377334289304397277959232839262827716569037199251415495547759962593894203789354802984020281736848466502664625959351827188424366411066953406315597609673077382589223583695176160501082160398328680223244094788430068186588358726800722361026541645485338340917582767310786720649630733428021997896947683541559729128190913778718144911452079594907866984920230255004953130596516412139265582086759272565924592998705705591884366328035143158519984244770256846774686212650047681883690333185418134785343727521032082254295789867262902301627020349475004159838809449997427613991448909411645172809902404912767137939716511051687605313280829443130686341517774100327075930968628374083774875504339766576301927172659970645925856458149610194726364744279354149891348232722404989152334531670834481606734002296326112898398241252359599499178127849233822860055871587611753288869505757726313524820556072861660085570709599885900311139875806836892012962886849444744378190853083331046908359363112356734635507380819523790912910711116182500020344390108346564109646546296671636997246782837141786330350456214591836168880898626700064908092795889885603469583420351251893678217969331989791702799288057686884309259684720889860545684150163735048041375927588756953766216571574540789385026420646772010450997240849865153258101338902519508134658821987385693690947005281514259274476280432964367507188769574690462171351334341240000691776346855842222858126764692195860206427190177303106312312502893635713833637390459006047962592900453472862706259645882315137773511567074815742845386402812481719403295424101574587817957681060873835936848486865399922405289203450156104064910435362347125971504270083796458532992946180393495329217409298318966226592025128409268099130334243255413820505942153894579562375938402295837701702891761136741490617516061010358732474529590884812643677214312309572871940706613648813731084786610955722243292138562664545330610115656508122378099891557027087919826787367403906813131971939891418909689682739417284611387154383007644054897311084764700249573130715901696035210700598831015254146195113279094694355210252191783450880778489834150264720793289400130847967042646455464084874838882127142955917369491240552293783574444786802050342222038492647769681651075251722509190624146400607978597866579749247274421622973385961397792167126610779086453038420290556847871435944194951951228286528512459954856352586577776363928867770915867595031257910896473075033611240846983348259190800528593375091333629877233893063970554802854170724459615709418471202703653939479495252599990675230155915189967022458418397348183335559393791570930253571951108783737361792929758755651070336520034173552251667952577237915587857211423324189281043274012818835684148452219005088338108598307860284605964224019560975331125330939784614114318392459336920869306396156081138752468337432055164864592983050644621327700947329914749203474100247090120918456401964833478038829504516841312486058140764067263204425732530973080874789160330857973059461538424754187863438441894947122273079303245289315851179050040736724334891472601691655603604460338874797563373618852670904026233535984374716100397846448056138961568777098043123785602732566048316019535256465052508583718660983951107134374443699290624340396743956826417906732307303790945774156577831253392713456956796528273639620711554454959473481144541852920320458100326627480800170358927972492661587648915610863170018741425246830534075511932611279778982689808152936290947656708219346614315519919744399516591192468502200197427513932457201827291004884871252221843693334497133224167038635435550310155663865517659269377715954384478072118049688704754729895549783570346957448502392592962758332145917000918211078088866767473205372144923783322032198280315550322041411384229109479004169196875572189583847733953272635640921539692868876087618490561338757499553045767084045196780642579666276527307510502607149918656402512862992294762817786742511446512800657331755231222711955976910203308527075372986416664684678877437325975216072255663579735096533829971780716553780513480577108743301025453336602675329639116367898056451316956232878495579224220177117226777957052892997814300893694540024788447244613105665913153309873651000616263015425767746633031403384108738884031926244887033675016488434091575904417534732505829952657026215600724120291665802193714871624652238552580628271648796773939834838735194751346951094612953388866412196706249696548662366144284550000533327454250748285814505491358859017652856149322943686637019300139287883427158239039849611688781580053816298122434659072845892265039437264910795390380809066435981980467376976467820937545852677369735507586986788303603329401594773747653262579511293008847873069673411261863165145678416585307982803895131880471579746092925083898282139741280035169350700652397081683644823362308695279401794745388522589208904896348042494043654681026740128967701068538323867035519484681834020174059579654360516733444714252212955443770466692482355510222183879119891317328312408567724025365475972036956014520345635292214981661044043802626399636464740901831664564469035445916248409997418489488025076907704437705167744641502646174406283622653177213107115427480336205905038168474917969705038106489829731140597710251853963579455955027430036548139292834808624229367029950966780935230418843376023562441738238057790145278894868707786100890712364427861512709405558330824193438138823836513266060919722485203731386963904836576091413626215063790614068320982883293244317039334791735922116837867099567732458921682674618411489090537098372269590435281617835219344729004151539640216071364764289776340900814885875742061311856532032216599624268808430469776974802380264891420077325195378255648207226148666548770147657603440368855859597074158550928548623628152768164577429684611353403724583320543056757195030076041526232684284850061849165167979673425090251512915390196975177375711486662787302992613346410531028006571848336561063973388272447016227275861026449849033381831500210570927434578786081362476236559963482078463338223204358831461836980468542775365786840572851481511253898107277609191277162924783026609363937990708615011060082515563232525204204246379557186700819734884200383517460977190904586475917967903770339887138856483796941589791668150114110922745222621452998833816411291603025416190608319695986355216804202921776096707224432347245549375521476599615786786968988872161085858359261576826938432308693290788927686959220004092817861621831914072381541538584330197910401432263298253290794886305559294301045181392503137374340211279749370056381897995021720310645737964519427056351080261314181156586121103513034626523636118977176310793907740723471217184434887400723806883177240742307062216812718896478064445945038134436917139794058809188411826629574302278298867413665051770834958683092980905636729212580629441677192525898713096603166013056123181448294430758624816583542498017824561588623876528822456541783265108585636610437547120333681717144032752783810330426192543366506888626091878593520027180690740030985187627591331915070149569756996546870814062248365783338858779131352484309984390839572084226719129602945533707673314337363359907223197438064581769137519185712143508928985626577810765587805531645515823723641747505417249384903007369796113005073443408725283476523719035497453428991663247334427053579793416355931867793562284983064600931515286151646320421963745069218659162081101271384723539349809198073471203572754748686438805976105175182696142860864272389418913032420189135236400293052115996858377420150601626775251525482515301300822179520693738777535221460513678414192297159396987835886231801899344551927203363221826582261192730202246734806165632593279630056422048692660454313029135624686443327388956489793458372630069975315926545959390726507910855778833115158398901131651922494041870225242754287686943310595178713274164440068315072889647670383553577718949525344057818992059874025630093423999309330491583167388531812263345457287128682637183360765611106964047287243373586235703163597206134052245779615945957534986925832784889549697412657226497145564222964732667069303603414904759191936374403583861071105446391469716611659221040564120309863236795987683623400823853798850732144191291583170700466332909780124049702526599231169653698365348573906138509096382816900601266577173258821799452646807850987711606478687379676213402755923357300282777765284647293877205729503133130241159703825879613267563853969203859930302975955433960568893315475974482552125746986590941418094595974886783069004838465117665529259311708442335252570826646680331463139711194595364222530236069635319288332592439182644303960873416748373444644743455107135819884901612856094150373645666563263894672905311317118849567491813859751055700799024059080251018081731980571967267885528553044107064079787777706640240443156017852554547095357899980526539047755764890093745779071396179945199927644534850431648669458942221023291379415592569370320494241212041424198380129567706396809109100300439431651925461589805042183943741158132630973582438113134668971406748626294668529869983334222366528067757212246474130711919777591495240157655134348426287531052832409208564527836293248853579106058819022301440533176552633073552926188720700111604260874763476859469852952443387747301149542360614803413345302129143115165061211901921902086988649338198296628992700805754483886409863828851197004313428375422023747113837226810075759912582538389119267998939474672095400578145598319189602861734768770567947527916570486716157806823574650150288596948341158022195113709407096503885433382875349549314939211605627016728919769768245943709515920543050555861486288856974184983661426719955434438371704651641632711215657873485463023660094784744226068446458399319936160946242945274591076376045933168465116941022874377107332700129504740514675716915094332732379138110386280562375004403810128427133907088829514911582279409264684802210659898930574676982878817936613951765532067233935396054752773466321520220749644480707499807360202422698162675177774053206684600436851953417244635230957940221547051606999592640099741916804263475384137130898377102505759892539528083622246107166082396992240677250153502616144121015226603781180446621410971821724522567752561610235572055043371151062265700719070067586958638556844950130989644586571884649304866395229225925650047103229506192580264584037188479141789550159572885718432212172334645739919759281952724431490833281632378941282192178634341383766432153095434316663606362074912473804487331086552668791826962056836157256513376203774398470236660014762718330101254101086020240272852894672746659591477698745203407700634124928535563871812925668214228580345326996653612481539714369664554044621369628686453734213927598989897354820673252093394137136497042437115125968083556195245268942959095715760839011581072039762734269089460228075954434851870098263821555686429735421399915937427115821943519337234455460785898194198404331610968242198962554182445594603410938023886913726681573414526189904346408995288148954849229562886059168246986202105657222937274606382887589181783809983472464301600705742189617542593423780585588447280020621610448867310672641874167489698907779265762528610995637377249343800525319299255422686277876924318055184852069511078832405895109801635670796003088473020681385117295172300668764193258069002972200600648546130639837862151048342021564081413728304868087324035464304495271462533076149467423016187410558485249891593682905113718834414195771125145384178646531277615335961928389299067474407157323500040263342014870271524425958618533261479103357431704654683267164638372772571727806040224419950793692383156755130057619106093092248122325517005864263257496135712887817054119437592278704935558338397407026095285206438079561846523774394569510582583695314940994877901761639683415951178563121550845090538364095826778331437411774667151136755515571876300413508987563994977485549082427166847090698717793891602937078284575069986147041229042246039332087423205209647094864038059122976848220265435531196201332070819809548591052415565278130108636984705385755192910252776606150763694344945389245752929462201668058552628601676783478728105817469647187751254266891352940808894951661320596398340794590979112240966431658771100006809900395137864573855203092160533337002437273481646042308930857425370181970454787696268054174703672523361111515725267945481137195919151797091917986755680782850720970602050933449136982295844351021147640435915413165093943862704199062715271769005433170288151315326038958781903707045368069089230427972785105609840571239808892391411062774337726693746485203094600626213493266687322620347125106482074447266593778046522964334545106434968214074416062749895730950569242937474415727249741771865124631857123549392898455374083982539767816417713678015799778666493069750435508091181918639919978377933915956872351292841505950923006490625210915865202529501993672365426453065261759628038211640727571318458958352568513275696618738957123240708417899345164218249673927629811308202392630722379692804865234737764238313542051166171805317341057900491828978887729877147959325382822037830775263817274826585799684757377050865499582199321191670310270866713722984110492573690963613753118111241244421892118541167553620004287250463020014254342104418404539532950863182662351393098171097918925521842280239639019385388934636285344167996530579030423587730096134010117010515976911581315312254090287479706707186680266080086940162659365639544424604997426632911513340489945894509916446995761878262951290131540588135186126673275851039387523084611797129615117833643079590339426754003869357324112435445888509601463462803251840953700628995300040944950259155410687548900872180392928991143473114649309631221454829833992073616503610492267436130741064213256727210024177502724897644210209363448546688738261122720905901524082018349614610548943007938216289824075180779301637381068967576852301089008822750693909893911483847703485065557269201792925682595482726219437550798736794607190503802519358688589430610842940669107056391405529736864402006206845390191402508637047009061473813684025311305351275254404643615678540947825802572401875141036157165827580054225589150305199632234439920414140791291819265580592977210829811181878232788044711438847960675971263407998824293902544252532645148077528427172370039607527713803548964343134359416907251896524060031216420350628901400849338018029757106269606623352570528488630357197549985386822715645400179645603543758103507503355026316936953229198811894100126854406923657711194660987745170256617918207464474047194834629988449653051840974257542619553388192818848222347288702627673137100830837500997051776081350508087468677863054451875173215544201261024893077398743165385747154733229735643468085968504864574179577563690714361353474597875634976306765566461661984686858970656758017971982022202861106402787303160528557968562841114373859447990318257034344737135278915280356057259240677655376655670421310665510290209747273799274489808483478299788585959046057495902177518799285783015046827638454362225463718947105499076387256686239306884502340151823915162161091132172125068426899128339903052473832527476299052862819824888711508600004521795066354086225343100706268670107113598565705615890790059022263171871061619446156280887405642132499733453563302696622302958248658965258231734305833549812799474215029965538869937794255102852717563138049821007560422656725987964024313016708486522666665440839017351279949615495557871308119148616067970788107263685356796544942004868736069730418670369716437162059704613549114707019639918897579158271096761679890931141569892935606792322447181994638065662354872610141625289075011120578691284913243438490662301507538026148513918566805369984825853653517420175433823392997308212971847174480253215470058010438663300090400422762055039071625713946452408019556534069635974970557219817108070489313903664849688104048920535580685942482047111528322673991052069735769942901350610508371642870777460400804481256187594223827471119698053662198722986175860775675521276654038378799969632391099888562670081959446702071299886305681325543111494710118353512532578213220413240562278528023622022532851333740141138655824253560673563189577529440057439887035296183553260422839935308439372958029107333433586461835127549238459117230837454803402727808046243593704346513181701195411599460808484133570634254162117391474562742235582082677207035480485831323329857592268447466177502807143669704139956215088874240365165142730257578158342534092233803122253067757281228355506604525366470040200243217902868886946107838488025213821974770623053087250455624635841519440640230384903023266225130890816291343739028776271313108753527491778523014486580492250973743228404802742854497268715773377351518516172675545163204204247774263497522057276552811351008543485516787206616905669431863193003091931717576004391722947109137819734149166187433254710413890420502896170260300758973892979044960352208221441969616977282103129814078079080389060952005616853874245280292976708836994841307992220934140464494771214940273910926955346384885201572774350467354134677669673817378709080031893866687138087499746602698754514172382195115297257750724302221607509701367900989877176749779524947211686882668336642059136227147035336333301878973691697123999042688159708629971750569533324150037527712531410119290927301470145599147514774009057602922280253743145923937013033223237187681988830512012954924689832589263072337106927937767337451913651836509441171128594131754272663501998159590320102389403302786626073464800252022504370305750849684986280845388271818574225487054748873133022057947732791427290841227301681640452165899833857113364557392486765321190606131253090892704361299592494486696661716736635705706837309969764927095922955479698554361302266172428868636976428857602856875601353857760420295024833461003826004123912767454848053538025483860181480826177592065895426220824342510786889248856898987963226657385845749378402012930887280040139059761074260450482586021121330368989081402645339144749127433228492247858838263657606567046347228009594696164043868563920542753672320930480469515165804264317288981321159043488781474781233861169280956240772051946579937579532106551842430805252957157320810052114267110645617284811303710983984969010036989390765265745378559905571585594467965209531833910326072150292547845533399428249564636497798985320793248233530497653738027352095707691344759207667553736065575433941805660623743654003736611801169463714822097319113685589778020344855180272273819253155759034190448650992293642444575767927005579303267930541034481967549753057876977013135619086726405109393263716132702840245233088415497057273087077457191557779099231603104065979403522591653713366751221087617894320079008355874194457564584109277879982786514679201011135944365929082761802014172393661685016962010832710375428715316955475745727944684946004630594115607948976042019188108418020105181890563604589682536577643105473725909349876782961182527280331953176472450145693136826644479420095572232072826278785226105836080288865571217731227001089843249863533012991044008074557477486857671914181488635329063454736863041358796193362239179353786105260980636502502066511634720616295903033316906983611278464797731774404031712541890323832452186818372336918284711422389009136210374289003000386793891417695136908677093151978156840900851486965700201343015571653139462287266479781110099468887675868624255914571019244416469122162712840503983292197051589279802009527965348344316223543894839106429376475366166987237597927113610149860902806596509245386217669341175056971441504034555618475344232504521325244157856455940825320108793810470131630393839636826222767239439983850106611838390880520957796543216130340981636231438335338425012867700158912217961239921310379589226617309337742168156451848409000145365149774503535335583054741629846280991851647295283725511482186768100834756176535810148603289761141168268243173410874582251447595069985168862312048880972172926759372395508821824542403253359306179367660885737695172472199859657208061772511963202360452083029893673766393801706766165496133818087061395296579495944355160239401088896085835523662259623444714680262293887502660362187410969461107243525311344660288740420146368082972403682425779677945429048340555298072413695029127884492281525811808304978845304376691964900929560572702966603873126827624877347777191054659924610623462798610331740803027121844228869976721841188855380476688864371131641477037262622584369756423877111583093994111862482454752006451771468026584811864214667953990285078042904467721856369188898066727366352332571663309730034510265165659754584163304591880758657073653786130766462354052336753870957617033691784119206933460910739736419023221138761164821202878209684933943110158819237742595119464927970172318410626364931055462704280236182580138946929073581693486013046633950662380568298207721119703601088970298511472667549766207418963452208490614078023202371034045431187727569081887657529469229062890874460576945279795881257314085695753954036871340313530704848854547248441421186325483795205944561394229771955772442006835532666312994137056818333635920930868364404527563902205219711689055986025726216942395619922455165147491592642620972610769733520591686552846570860975910681088220778882664368035741052292345967592393609501920289933984835848517502742968340160369733446081086612370432261430418771961527266495811657231306522410320358417889598596726884235665627257927762562149533251940408666801174677977034931279427863285934236757704037417772777281943617072085466853484562534210621540512165585865474410379926587346238412551092046948870317954416097357998851926253111072825180955899550228242240082259847753638411549301485121549840383715304059123817574979721485505592053865985250723084681650524313240340883373447296308283816355462748419622403493577861626634793062170433257383114195689888746364977629578976672386635920725609943117711986388958327416501373004716235051244403493982461109391636944258707202712165311385065119001868488457851093359090199784147283683885860173060933504834360921895792754406777695145005876622207122472996348595141065978842448137789397743443930698817038738193462191275627089254058913558168022500492219845138178240870979549645962242749102602237460978357059808644187183038128043147150146478340325279474251018221802561848481247485374460617021618344649488857574700374385518592693960334278350344475110569386174027759407873516239658813934165964291281827365359277322264886738321758200194786180890680566839399445255125177904701265120484426455003549020230758477409788778047179787312061418814294710552447906778937223047730806441848153727336700508139440921153943428282204500884797852244676902693128890391953907287272040742403998178431948674134405088147399285666986840255574541845350823257514796743245766785339508159146134420277529005199726341958002950833561486522655132295322111163979634269362454365838638394547085499966463011041627362818008582448032191416954965512052364699486587941544050701444986646974881906141145112624971553622152408496937696085448126813115171770793869530900825216746587356932663527544330331709859349331279957961037812489211917039360680188684184783742800843616774721315658094548221958863797544450960665468528942062681952582079528404223321954775645504723164740933561454045115637871570358961681963416524167694680074435191605638880670172931251882292166107236566555620943601167771288834002290976186729547652170849251868970266056358835200288600245841912255377678595728970436994268772984680177327821843757505744768597143355309048735564084224937629765588604004254130181094737705944856186368232736583799926709327076198992586631252323036105902603474904090098083401247454884334431767961383457258140281505247632807376926137207427613478033864035926754121081625270543784863963978420397367309019748918929014482453941750215641886802765806257190709458689720880899946533126040530142632596503446388106055148604442391951263525141073393455000942840367207203456911696099154252658424115139260757402117093851484145133925173997934579043111086413442136116950928399543838443446749474732632999968394724799487617931113306633776080058045039779240289190297706987238296064307876320616908354132909848078207539298977372003907875979674429514284507197312261064534010978786531177914861289973863342121300649225729775625804084095711369958715915068999095536810649186127744894509561296947931999456961973901034600887984437859913576340274837921006867067132227017845766876068140219386884295691454106013053256494730518556282361177129339303702293710601894292396869243533859809978273976229608631122217508596365019901299312061394794305602885828240134764692507331615223533034946446872795901180368305852221073881978935744947448719042238449482726280955446658080481220279034505079685665412777964056507532156004651437371939452234386261068762941764956744936975224798780965487627039821958951163306251112189816872900000034880173936149994903746597433318602744922596995353940674365829147816371786854679396616025214343888947992763941867471649698652397643051648866950372061579795738739815042148866866093051859146626738839047563892913706126371914598929247424399497282929523379045229044195848691131085918587192338113355559164256900248907614857694911734435269242884665979689556701267345614740402710968997921288184369421076856572868582605635725600990313356743980327274961199917948311361672058125192709067933125490924516703007455804841965277976084267519543308713571067197317460471334927857415458805816908870305140584304410501803942889396775592645759890058476581682238203327959555632875009656452680569886529751519020614654331228676555906517319466006287452672634606296398322277102784589714024827983387039868673612367307807481147833315019846499482237985868281836253299324633873161212436999862643694641731071194632905140459437998837600025675949392814979066037340708665527524557350847723762813211183727444470500498594097690181955378420520199096521665446170873077006892040156463238430372280126139718785105622444494822402854453390648230485236264923355585852008819959472225958987275078000427803495052665256130425401936364193627313470076696481651578713961219017522991295312856473406045636257791902333978519838721435093659952177621888379592400290469148368107663800225827424845546701874155854877013072253596126870712551313527290551830621512867143628840690412479517503267459399225294657796661318723351180485212955676887273344625777442336234445134797735852309465883649136482165880606298131779824786788078528674233525368867377597749961995926588664809459311647391242309508903569957694360820360987562529881586179144498175993414792055109302833808954940516064411261850892687214432509277454325960794336483334530422223320239466799875194499552365421865038808938264559645203212624905779140815144756422323258464443768003517172047974711039317677054423028346682647560560035465345892227773194558672597426219859350593043376102810263004050920658429996801091335020862794857892021500809254315142998224035953578695557331811709626818692192545268844240816702875789373114397552301109916307220470987250624885076645965776396615138711805837868507991898641444554430700466891926701825985613387442378681611456312413575926030058491711216101056344797684899613741084059348077885207946837212121090783402350528295764411841577470679341429608720852420515180156878562524650646557274470277748445072412685779716956007267457479999403542674266935849530742688899741950709023952400807225408240520585749762735358159890701321984599412971155375833213007652221362003873336877877221343657477471908911534888408306327814936725374669421485185711255854132671120833132027641366015641171120246643827651654621744911910127336725094095267693382856608339284771295069580453708002194512352967638651786641538086109698380011176234790018644635016353971725514629015933243342766791840260009591070705296208659915847156182013416005331893913965189970294008571926771975033050808609693601140894248464939130357228228185207929571189104494961347700997923646667912130821961467221165786970477357861226311822451811804677447305075035372243043263260759963359152818247128152162312196306390865214221482467567958355589031103076939600795473169479792680624995856522220003188430275377748573093333446714222592849226943010442800934752014115621064442917268322320518045033528807354307906659071760599659369989949585604537647930961488153347704066670509301331644497299609489459781586180319063064393104523025460807748994010012268213236733296521601718030265448391025731036476841133641863668280677227269061081765323493656885647376947085279093834093427472154597183460430126967452017270360657439637037136987463910386347719970969914509312715665974804886551174706276846752144505935596457024574274190611639885876442762272133411556779045307655509340886808764280339116125598764764947352054660761988396375558150663156823535445532287654877896758444527821497310295873445002083493037158475105578114277073615041599478852562206347039946254189697228333185320670104011703423576026947904267375402417358804707592039844720893515478876110875750898993948873969771485106287300533531981381904890584736026650844895417292115072925495988736814934605572232995290224957587066297912309239733343130901667088171500232258358408164758864109103838758137396649288867996106443419924400095788202595870640667475656564109640155432220318206263552759391727291319246761584010588379296052308151887553206480483654645417978016253997470743714647854071704676581304999335997908014799147873841977522868159480121784237927953479756608249595240398402529182619661343426695860749321496965057631804206112750014611552803574696543869093920983586782112718378342305514950802559907364179156858309448541797156335645374671371226201241368335101691268096186418361886160317141497185019815177952433535694517016992165684356860733849008351656287329664892071496836722501017617733446299175671923149960085244625287002768955929955435173725271649190687354206884822062323494878652193547167975011484242865639750684075259820233271672330119761207625540922710313046027423581825660873705422391058379031232938860565356017985978397692658750402930489633383238892016039776865541017321418179317298150017624485914933431177243672714318531741889916567157779039114899773487958294195783974396649065595206871965897870570438226161716958727825787036733316720761870201254303653691935283844985263510365216096561522979794709657530925145233552284255741569461194231058491065742872132302271365304163186533191256768024494664287413006070154886037660088822477596921431569331224099362061012628316493737976430062459318387686365251843011841356808405247031480838594143572092924818789338535343128058285114548549329021971542263954009274427516043466990176017543501144685429455355182458455318036276249610947777860095578650220982578266374959018251525463523316365664692328353175628301176199046753492360664761765493126528809390005337596502638364273867838193091309267580365887870261269561391636398682997635984105895603710491021050305156086814700547612668631595266388751736139706248884617488755368216583683735434772765054089927564449072619122906707239594480983492745276735327103421295824137629046229880643102493451470293103137931583990462660576035050517799333448572091127084418176672994823742315737646421582763727007774461931051790677014868805353422516869725388718530526314478124575369867845262984905024014155277593369926045898799895119018999957837881785910083930409392720224362342076418341435218601604932974164333070928215619959646475899511545768661509298529612743528506734194779017923304660031239563084280533169340151286154291568067508554486966595044110252575289451818763622496387246605177868350721290665687654410995384672054930099120954821123912902666109983651826683482518130404026685907208943677615508916997397927760404627671330038042110187891230444585505048428008550992494123147616327361996241128541514387347367357646919289101292898324064076261500355386310334922101066482760547566407211826006951492021011918996414879831668823841467936142432239180895643106723475318283378205972779781459251670252409365974655446241458154727306413941530679631393776655575105190582856627351336062817573083975845252638164148851489742005544545312683926071272895860357043725705965470925464477864160069808370698180370819461077227367993251222137332705160172947521916464205763841723448862075452374875412231467058560724926681587055824656362506183318735835277671301612170798622554863619570070632474278307164596727894830860359083434225197582341466701584352945480264305574417321548146405648024179111782709190943658389649410178175740685388326009032385420635108616982372838157222944683744245964205814686169886087980721001371672745488811283259291306535600146189437290344221121967480695127865110126471950395235162213819692427773681259744516602629527761752418457905707929985941081215420574897169610530408693289431728456196629122020492450341638076415637021162371725908597342037230809893526648720169982807982796358245026467639749566425655772026922720236152048170031660444050871271564259344047962501923034346229574874934305106114493870792858003331247512608437753808794974898199727134108989972258082082475687432608503270487887519707828870877089095376320555395404474472189134434217617370730696924148450256093419800622950867378438855260161014700545238199710535521757222370046706339138958821347597200130723273708726657580744405353978354352835373279627459439834219766711553016828449709851021539333990369703324933782721959525702298264503291968058685061762262197129347662581686467861478964628858338324269744441598861356185465283213028804004281114162796441162299989972048503521248889730096020701108221208098522094137229994311688388433043699466252967755609640613033032258576604150914284812989530726877582961645124461644425388784041813216393138689162164840032769515931963687483077874626866626336343866656246814368450971981226227330879296919413446367364836694609222286324817227146820371392798354247916731122668348306555742056100809308460306938050798389336827018287150128029604525172684392446069964604792275354680797033352183743101837652706309831236595506057121713217964989035970988490449726997205577515471738738824074717048155633944286969774559740607569238431254199395908914225454971830463438951295461198982921151360717769796389888341985447184841002823293994856352141870680466649638438285215551775505641791166060319260526029090380241735072919498889910600971866349870709483832850887999163763939780763388551647976868397675495474507700353637388765752884393315544708834739464988320325985633650079149575260528755224720474203747907957259108469389128767373997742821127557777591688155869562310214997741997177594957044688652481865440334685809908812562404771238575568707589143155976160598159963781273015242649713861206967738348333307721884867430339983277339473161983308054820381464384448996504776651821846822707102492823864994794295688772510517723284433910088308504622318951801110778700112326107902678301249787805828478229272413760300913223028112274902518784235506482313052618677869058897589620826885990276619065757774554260451600829316060948637894342861966370144063363954015045584735404366034286452906117454039933006515375142306429115974803528970390849822806143723855367974419649664425558083345429989125107678766629157221193472901024720312038515183340312526600016119000389843613077706090659281385098465045037264353787371971163442531467941932282033546301249311285166349772042905345788806302380613305256908074520925901385849506027224273402300548957941682850673418905905057735723614031619697483354926403747191603246610629675370130515715325933913741874205455455230486611559401136569019707688536988297531324841750179857464538856645878637479393383747772161126870038469894778909031818950230315427664604025379346431057696289073438206153692101883597744187314512403925420314275742954319338262800611704388097485618016024705725586496635205951327089380002283551904752618574746297748558653752423551638412378180427194055161017603573685823631097305405645513922482590703714778928313168420451552836100015598379265827823416765814633937267553732679337398330109038260552407961432474738294727697635464885985446385442418227084178757458626468491226473413347704355988749927040392239565505094232912300201357707120608137013470101673658515902992871400651264181426436988388073009890254960041589996356696321438334284517422527386571264152376186881801499211765177325101949548472419171803297221201451319810123128160035506192385054590240339083209720511693482325778506717807285334919109738029964816814083339345939804451859026029571771289548856100318053922043432487725498716715951248926698876039858420531328885119020335662198412641623499664479928921117835850907900949537295920393003819022556419345350641500205104973021847863765993225881871376766348591120776338424774282074795449115289203847604559016861096845033062351280124985698693029096777177664885739583491934068516405142874211848785178432826139976897436779409400546785069022151213781352233581617704571086771778538393760705799551546384074232408701491296501337059612518413219847339403166136133053116688289529998153530321193802916837739924843937540503432593703630428183579901475293093766324740889642299105626594242085094087432306458612423152779584977236740031941518218298970434019004776429843481309830953114405346504685068360839350975119362890119106810193620215552182996950469641543812906996686722016824761195411036191753844816896722315178046634173302847092122192422085134988154223001735608515819862599534488445347053114175084648596255572542353936222010582024645639269746543095769388170918190818269814587358632820151119260424775812810175655416560542203738272201900087482478588093695116480761913325273677105985309711688528064640845717986833230846806609970535847134858488699932656424301019463983026852942970628983534350217977730236612532423661742520440886378310907625166797885353399151406655940960857288920649793809469004277836300241273766268317749449040309861400645472420495641518816891267141902681309296671831811686420230122470087078266742321521694430868634735055505275591892534319601284953039331087083068286614565364381258071622372600158423104674990065938674135136879041384801774150203331785324007826714027228061312249008861064123370578804948619709594048361944679652249060733163037409675120933557473180539309831082883138543803327442357101178688411159635748463257182068127978999440727075023611191039502484474549518159546118986659300003437206081024106366450389072491223974664933096404516667480021629463236784750831655132927136018686201725747145929647532330041437237664521411453608155602786260834624434220172550106377782236105966307008917116887758463787123198280270462244669749986563185770735030364292283438337468088828744621225371901938947807187165649822450156996415642226302672429655840751121930434685307207763797966580138080603441235721359547671511569245675876294585405727050610573301843523915223674618938829641690860089881130990108983590297171052351432242815466380689320866474215656860466426884440795647623439172966620342201296167324082266752176099604908654381711615209462131900000694939239786726897713364093785977274720789718583635692703963143259981583841170997014776993427602122951750907848313414648938200027900406535998964112470874989521027431729422447253726038504337693982769767661830710657737533082143110672082178509652049255048973653423323847727229435348804978028426824823972046255344759629764124277368740208388313474005941886901683732108662716282071745377637983850172673974315801349169084778511791710653729435287538214085153388132266643125112321350973318248791321516124608015409802176796585492419234692468481150913270799971428649192381342709298334541121747201098527608553169784317515935224645378103124303803707734816488001732956260083252203791176648592702023218503003913874622842741383658547744375079889253879512149647441390769237097101518944520395713895849815834909329096742883280619732809562228700626017386268728795126660636029153379915539806768416180567750964838161587915804982440529238742982629731390455581509133299414235440005657860550510064096470913909246811339883661664776882142082431734750183951438349707331058049453715866464476503047779051787517011463131024471887758048401321046524303785890937636861008216069325386943035925800090752237109609823759153009079805041885289109291606411359826538693968535068332442248345142958551996339512325564996392681237757052522412838911839300161757171305753173214332476175566447823573960816176352155843233710959994359970139141443458301163659492558075776115311008812481651408542339154360489304795787665642674909483154340193214036349465030789434790162796638333086529322621936200173442111116072353361264038931866797813304509263354870188339319113249701108275526672550534080497567394524026709182117084637697268271875261926115205485676816727876277413583542560380628669896822467384709585623067385993680202108674926972526109751382741527696891024791777127619481951156287834690533721798700464732372666639577809233504805484552482915584789054606384613841412486164267218035199152916048605259164804915554566757619557144731738117697553087736003368128189158724021750903602283828165027831748337858338758915728163254100568831066190212901316917355117230452445957309373981365264011636613736728219942379640313311520035269432921892275214219387744705771719040539450206883050405312800774048254792093683572094590249684879286255799125882601549120848047098248721841507690710778356721599894674896217844509263325097785470666679877537451680082539884099929814573725243001526298930025878674079439686737918933274365807827828589550830901360664875556946168453611935395268356992298974774682406547421897391977512004715769036713897425661929429829667933609340398050419639387786424490128857888274763195946757929474175342682448525719960164595909916982362121795376474309496787916804918105838598879911751206481845624043199729560628653965573138895404424246821970779619078232327913397097786241217655468526302870455535266670726437010635353212514186162430218646433453908744468954959427971846775436178793526338640729760722694355626519323335964278127783330625927929665014711595292141399828060535423494124193440088619162459362139883198535976945862205996913253723189170442323931724995147994098661290658419885450419281042376830604470262091058253341283888324827796893463509449316680611588109177179202548275817342955628138222525154912303720564378330821082975016430433818285368108957170978461545451243566614553114293373566502176399677461963665561629733655547339773961473749403739782354352275640021195157348996963513723852764619038572427425356328519179049787863693213266958877883876231036870501186966671759597398795108210043793103316100031436489990428328294331027772430755115485904900685319979161227184083141277371249818039129360426121750374150424079331828915819184251094332100269401329016536664498021770908096485605951887532240186582836974128971500736402566978780228539398164359719720245070180275981808866286582864551458120658029531435527885986033456337934215751601432136857073506443653327813510948169680519750664530039080931603701605723877804615939900298435962305161145542618004618993574459307801630314291944330162183931449982987144311291595184073818002421215218343192892791209869805250766316720919197374073065869175187308191013913264316730375375897323685474028915181020788482781189657553690511502452656768591838427549705653875615428402092206233384349348538725963496995957209627593863965380139453254107370885024602678769775431469206969497418699044995132046603405859084136444948803309089448232814489161322426101948702501025613906543848699777958975011710711626867229207915760101595483666971431805374328033364099797236737067731270377477037001283759744489591656938272261441258711664249860850679968806732789278128661753236973327855197147100717748640803089658589190360572107709028483151151330049106374986009964492624602829820645074269883375441953589864363306040477904648303465878885070594184256493242433983834548984393557664445826142684359445800491350245184407242097018255818680257979492460773211384920967669058248962614944370116738037294347513326614971735911830444424884714723881751247410627867391983333055816439178546745329308353955075137028281717414422444529871391031253457340404484459541515668212346923579250364408327088681483594018953703229423491810358031658144364120354705091217013931288928364363206832549208762978740096203827425782014884453670820034114026455594145207573001777411448752494561853414430373525069074728759304203625781855033542418811288405357330328044536797217584161834531689545718127158314547216267989567595697339712456654069663942429889158414731244310189866989364266109463384185336691951464316130786704668175272543524056868331589914645771016964923884093564099702627962995385055414221258005976405018989266473856354105678305054042034319439589249609517320304253553885488751521416969866337377248437093322485925018247335725909469960679125223218269687065144700066034669586903861097945455226728929866268252670866923680873442441286037835827267592497153146610584334695041306314667730428352109730158793277075693539248999360294968010235088900739585590695060227102031602572141322311670283072244272655116681483285472670108545103207311638145864727459320958203055626742257509885422620395209372352669319064620674260231043186842074872877509850309757213623811128744404725425851470378416320327361793947443228666653287487195527594963423860594801535642446467577442802981160739776518527998573899082657280893967801847268449470378252166849835128923253236408885500894129309989808368561517806663704280788394110802314269715472658947885382452402968578850891938722925897761216442142220029197536112806980914198918655310982626105467698838418948137490865171712871520627749393736542033641639794990426619126540388030438488664825483857340516972655366588798343507484663319341102728041084256800321166868932446506585283518860475932649127093600302383379427518921271948331205683207562088135011053438869377201166720598071696675588319041364595092161387228867079551158778777887694856198567927560844047642941763403748145212246612845396631482232573599362540541870541314090531699051493675051324689750935108114427653180307842727499242556332595239195726155801293864577025537138782520396938424179137154919163187432176545999620662714727736573617549990362837291520773755821408612247537636963358140435083570433495611096057726025998259789596642839710506725037778209586143074405675592770172709003581424642353374846834615776809286753229548457916753008263903256947024405617095889369722866232089192367972647900203038437801681545330229508455194299734308142902801334210854849277311725878279445505889401652391515725027451804728304590061337292599952012040149383221426998142176015663560716006972055431067981221258213238736065290625078494105289275643037891787174123742778340828105818028680922673211137087402791976724151821254655331902863961889988753030485947601082299080733446090649336614715321495680620865639915122000006618948537107607405321925178496574790762703845029794557919150659454018528037903628472627853150696708781689154528229883235665623923456142612868081853271671466307467344099266964516707922559844771547281590447864654006538883922402306481019142609418023559032845149924748052977692839195451000891924132711869840195388629831251549602456998362936999245155073429539831662169480897849263698366370159665248556596712442878484436169246450702885357424919910400521292714702543885499911408953725134978849112664395438432066474957388243186205209899919119419163054220946494505273169002027470928057959285792258193179711291634503402595959242449637284700849614567381783532973612377022220218826635888657620419487376868089803402180359669611232096806250693073554852445266359926739757941496131628347092310266014810575880715265079498689579110397991652487736181447853113476019679225482540440190406136642277270923849705951645982729385818338991914240726228824751582007709509704176788459750947613836065103384197696475454929865364611164706089231194234389033534924133342718728349792510576347298135999884034009489295147299858996322169473822540450967685554350934807891932335311282261131472088202062946886242114197949871076858148528080530605368921104265079662232850363882682367695739478064249420395918530228784992583300365393293901013444261023255065729225279049876047313453259430401942114436641542915014553431311639070495150818928808388419453470894484294795657241653894720662718448608988195795806341773087836794093285075178991308292832181746433881123125637590642990702344049175260722396345384538560948011592518767874705333965980487250258039869872442621294364099078248921966138937563669047534652983936995791908841043064514433918599371003479540124766032380859160955829753312343433051681966294810175922402359086160589090216723964492588259816150589864548327829229044380047693530944955212691439786571192308040345890596299429342261677508535314671263506668679091937599880817636679977321417461707796290555124942582387667631538488702985215686686734155123576356610613198950543601769156179692214676849227185350782974089308496766054485595135368001621655003415286077766703153439424665288095961695549470158645718140839301254319971688179511315722525016751437098602905498840460469147542273101041036535310767360569771545249142024047002326708178708078729277802462954526842196839821173507894841474057471526698746555486064584555309299604882333920693361980145619665562391099501153366939692595766337434120765941279194042385294473284795443765769161852342441193354553731762617771597129956633778425402640844069808744944305148681360590712416525158260202497484767744055735541142656770941267947859915640219620999279016888197764361509163626176765557436114852234961194089224349432012182722064811000941883482218609288222603864933769244694257337450670954936320481913879748865133399562488912986751265082834678749078663648643167802724449280435183550110604755893913515470302083335729967986061173245722438145837141462955527588841718527149612541336676014468246887451133829351804465661788048010424777107595145727724360396351159569763392109389145322614776048676516944767385893175006322413511860423497074064566584537927483368916143609716862631456335382052871406511375400861757972553411020843494837937257570412137055363340206196535069578727650990727861952770303580163711231575441218412988373091057025616253786281453774119477537268026376656498805423080300840273930394908346942351117594700773600101057028160357573660970631797199537215626079785516481465502304587638575834243721540476756130189823484972401938793153499774448295795280863689790666367570225968102644554831296182437817378956803292029437614160185119797994843796868267754700212212945329226853079590075784264106097539380644292832018110194167746593534815428957015754980772605655264137561219584647722479466729531654071528352789566806246839881360872639581385346433642277929192246856374622748677448665494848705673912699707659543573707725358247373764290869857321512582498986077919643120108149912424018525459336058137149931793139110414390535045443288201692151790878238264383441029839621371465368148934226800656649864780161423476779897100663400039750376491891045701223557583423283710649308055965561414729905887653558796317765412371875888340895529894294799272877127579165845599855256509919196764247306815022012348124070905376466118892690774665717688990892348973071080418876902079553976961510767092822480979657958198386628831926747872933899039511871003053447549350992182287902777642918466942875071401661429342540878300400005256543442568447334077682237759725664837938814177376997799267825775000772583656730055971223514535025988279307320803878647931678703503189119500317163459550299594135355672366752498576711592585963883366333140411406587901361148099199185134383565868728712444852016739261208502867820799519262968423292060761785481908071550392435007432391643413069475363830159489355391583858268650814041074322104900167585879913956954732387485421383312522316688579177306888063677938283600438530684261811215160180916117509533029583054859222635218553914207696089850448866749663516270486570309694332985305570567326751001319660787091023818775172728713683476027735601612921297925563852853994966352668826140926484528118929128317569572819075196150873645957823675654976300593063132453497291255052386253531631545641416319083268498098175594351624897952526220522250974820134618342394930042555499502635533986779237159515736678893937364048339221701548289903653207988426072470372611280490658138768706515464289610011191521210292920946751429724039905468319929951907444108556437621795784654687679015765860392622383293745035144814594674933337260982833957142961318797102771973927664851959898486453220293481313722693264996663566655218674712857140041401370585560651859951101234547274412633711224812589614492735843998273272694047613480147504765490097673588938850531575136175635096808984092640989999880053745032570193701651898805529489366950504914753938107776861884763384578045047503014467650771404260876824100184512986258340896441771548917946788704028810251705727937287232673546996407005963760640960784529711612037166533549905477468352991036020276198427347178728728742492517254492628712878862895934466061414189258921308746704528811755503177854049471766897472930783891593905995182961217363112314978004925012737543142783814773097905151786192601116624609091967094513423159646668620894794900378812199443490096988962977610451549759917834286359836939901724447546669475441448105626807748564481924664455504665745829948556641594520802427289301336659549932160892553145388489891481134785102276927351467839462264711111416417477313968292543812245116637472865910047476266771918029371642731756730736225810287022452759839131610002776679555216220741940570589009470116082622141668314350815129333951747204001294445795677015404546434703559361575208785933556661092851187865656563774360172013538392618390253935057486154672442000226279625656253854316994560099038853307932351561228080347896916711576917971587459257998974146933010228641694894605113593571345751413647302170410303354516675636413143578370020559670702781589957428764828466544095972433396253481949921980673318982047243146612331631562900700430388778998227709994880042110366550729973546617701051376075340099282758203304730716105790038418012990295436860983741666740042492890271101555028417648176720323734053466155711301804443614892108787989713363839129903809878070415547069279568986546493737792353298238136128669194628866814089091394441456330922110169595733909827141596877730852863025997360694617862593868079303132996496880556889938135196178693230945080934184126854899961678801657237365092606439101678853086143882846353993146028938360849925746749078143945517808590651809371048446534981132106271451801316094300168480906217918779654780808680057932986838271314337129417546058583127394235849603700246190451220448986817405762681666437761508448406679033941134408380273608975374756071367650172729343598867476602398754119618370365148307431060326890442992027488662023751867159191831288331788966870218149878235868358712204998969457662925408266417310031141222683825325837089784330148517324410578006736870237096278876630816275533263999377829082791751056966236348342373865885029793097512384838479716432143759592624063863140568328568757696701999999224281614877624455199241331200051996526721863692250910792445558623719785285919749962237025546064539503155518600853765245226942442435022936715786378837361409562767232822175099509346090738366832412418008791361932874413720280472781160299478610825085476715020568060723331640052960217455162349118472412336083006794593655820859204091369028822516732540687203647315199698954321376754753101564449830313915236600083665411217840548495480301116984955686349649761794493216180777971414760590843216322573780892984620855799815753034386182661968401835071573591692781665395296211758010899649721574592441164351737586788641156182461941657946561150415395255490143552400929334384403079616903167431612250339595711798391799305790078363379368486850426626329222773381651850580659434668082826113315010491364721815547838596705090745644459762104412243656686957258991491892004128600461936338325757939254800087967542847590693412610077596628190112859761973562232951054346289435894143182591071064133728210525886372074061133216188977746460489394573345236242675203265999358782480922471245255730380830507701843197442122389255035163491213206930368177656906705593209887686871911400660668561440281482581515244782247232689057323934582064238674404525179798540754000961025478028703520788507585304787794578981275467805074330088687675031441597883554321581514789581752467192334520390536827108387999398237615549250497945802632054515029934279569467163456556523924844272243913852148395501434750499443672909339750283823118748830350377505880987833311696772642687468021237690391738136228144066870192315415953354167325677623331941683445565602547038188655113338240363175030237249093206575490492225481783801007681558155394510702042803353549388217743409875720216862783445589307522177495540395690602011098671222272130539747990921656819634873475553592308252435109452356805232916937722486280716227731680927898141347342942586880749874537498723675848099094871721416416061444901970500759301925153807371887815136290375951080726766464578071073438746206987998716859899384875032274971878871813748598643176329558286740223604969910791437348266569101700951184565904530002776949161702396486318333865398174746672381613093619006440743080349434331585732936956955827188939932898982778195454190244463993128631203963981420958605792092077275337793422600456840354148125548163648145898271620498481964000796927683270565676039896539899489226936899379752305826392293886584682384264981658158048070550704758262418008702090436812746071466566763741182475936191995868932898005028442916585525472474313946164619597435837378221604764777952202669649955543402571045049872934465745353220373651317665967594941060820473249820650909769379135438263378610497369639580867888190577659173260549488981193718682841935966154079187319946954625668856535049184319151731708528229618176743768176069550418209124139697162977233776995845230623928624572097024832027913038492486599751605684574941358235038232782284536534400372609898779445727583842279681460753290819032936251879858735415900510456260723340899066626859920296936848438002807742130688077475686620968993380612227725251851265828627183215745407697697148603853550661794512276890995358797761906679410314759880221032371529162553475505984814481049953313052654921124778878543448783273766052793069309362002692980377971534622683457788928547459696227538867313803057771060597212431509416386595110087661750926395841629180200031861560893307191788044831889305390482921682602182546745283610915338146886720652372735612566201540094902553715500356667711839290575572303128324220874900204174763998562973584159548701675167961349961570825188027443884610995366188527616876358735574707765798116405275225907340151915717738905515141332281098536579570292215811911671547467170198792214382424710537981892335679804847283746151041115453863021681623981699302473481074919870501356928050409355211946561531536411242172482545491883168063798909186046083798877665130639308616189525852054915116193223794394617425479120025907154465617217493254110420534010028021005570392694420201257627539324923018168235149280702048985151043428626755884513823865332925141973351543109491659225809781569433204487800334903311453973692323986968000235454374474833314426075058821930423597444798546534995064167542923112714586433447888219095617794498593824231358377915741332099317378071271591944592812583441607908660285688433825683339726528284437102857574173278264409108642092850465174093878827105240099515547266164510255586730977533098841326076153204879355772054227885087925478979583481334745731971984871748934594603721525139759003645984520807030016406674301192694276953676132920102287525840726465292239181155283635848881243306255301791285643788196324434542493929644359261658539825276191887450220965459179975943110919689015742997595103508630153703159738690232124054377537090659546588996356171177409931754689679016825810673166749089669376809765758852343792596454491042843445319269746774567285820394084576340290689402789259580787953652507555892304192109132089923904712859149499765433348528991393207852570091857077597450669804076247644793938423003711402121461056192005158149305807077472329280070440330874150691009180897228148541196253452799541423421630824588270252655803784078674851108827594397909043364370721714607019610807154713947665227666518807364191341563264917272125161734435901219164915977881000311475248532583990104277571438206049097790531295500982090873089389608802953783870489666687115979593454221010906616590370621202910316977768823550776185345300108996854741320863339871975158490151239538004866473317232356016066131027960487251870383007235572496225938023353750788118621098206468931188290544243031603293330267390005191057262433711665354616313863320472317269410753297503190426008451579128924230838751757622997109468703209246841361074528823522312238784599069104786018515905265082106544874743706434946408187764282106906247517338462314039157230170652227759730967331501275205972172318759634531351396863012469163880489649428974094008704980278104644889974885174622862641727399352865040135174959152038283453150084194054641689583702198597451890639146517254038150693420787669470188326384157438946886747542327487752715492915869711735071227293060572966431296857040697174788683707916573768793703921600423599213832330263993106115136441969786499779367413342596130975518212070314196065286290288399311806413094234922042660707114354621415339897943792230932954787606861645475570702366991593429197256520787662307852240483445356020442278536530989675380942215900078818254678039717862982581679055668700938930388245960616571864654038443161333304424175005852999880669899016296531437246742532176627551417790190454372609490374336567425630900576013487550292321060088356708718383905373663358976395784605308046642970137988946049012410964222233987784230378101611845027645387945133994369933602611549907334768654333109447015621426408865916370424258607626907482330002178597694013112953843103009475649889404490470667273993058572776167988998993319705398150385351883412771953345699457114639293413272219547330810925012535010753191880992993863146303335343381397898093498725238574226579402848877337771002887534550117830365722732217586581751927887295385037300630869284086975604672917057082230983668297707312726029696550790600196806526179635579169435667745771946235114509310822309283543334000665786795268634671526259698278004373819507644838638217467733805642304172725186098263636939205574063640134421318081245452136695467609826845202612976132933549683260548266068265791878255104635583037335574881091752401872706463906830834448038378140277600332203804770608738896667115080889013803473599579325313357321896970227587051240467704365549132957811687576470766335531460019857109933108273502212123762280752568277132645026853194141826130454896983946476917437610349367937859029808286189852317569778534870231779182535168017035631655517568451562689611911708031629443645783856338825557876148890606215380955640831092889065401332469483114497551311364904166144398740181208483406156182530968015953479649271741209412326427885077233708680016514290497870985573355532981978760517829191414877609174914288505268125234945449487438697861633040431542207995739542723921751699595376575422562336196164289834854179290116557852127409731223608044509603145257647819016407842350345565072550917947896554280145263304980432551939509408863769011432397417878288111445618749524913630884572963011152455385343023979436312164432593094179170760877353081032033392079459994884538879941833730131548694087624168870859106651329149919906372487831128529595827054365260579010105056641873055916741536280777981694044776174652136019721555011849298048669290324100476787269502716507092482723646408282577542049344159746245801295009170484513698017562254608736404561905779322786742532043431425845737578556466312856955937931282412114013061073310315193464555264578733854846380735849328498298367726634024993098671575224905673275060047107978603262541247985355634531213250707368830431281791120960859302814799334059968408954022543283235591322638816817736935384421647769515502423629156413058301268021676223376322249518569153310394394554059962031614104173094932624504964862264800230707423231567588599846446199969074448666888696868944746715897459180789474592575273790589095630310236073489914526246573845035445192378222947439542652744780279131486035901485127320114659016196932436545009347737007175538613918189837722484868804133085416322795061978611455263704406808359600704411456076260306640426767216356455278801038649079573677183398043289963843262270283250247595873503172090359350465522488337666152793560529011658524839555638264724206580918478445821249395052391318347891811678262579595405846798916695794062796214693815889180780459875577494668657284902276363192315199751429971053384687737459923651226836783844727822242208595661530090856237007634600231223393445602978293151014928949507995787422441969007255298266977018454097033769893856551937524324806444045407922922885439892586349511689420406641456693401465494601903726812766411238540680273237478177437777894569549736314144635278638954522153227139485089924579658179112039168655535747275024445766096910631075732040418967236463018844616191635988156356733056443248031127344240490666022380739775882242744110305085219360799391917867541589617426575989410628967641620952742600613734123622961035491284475055828272567673108392313761582553374243502665024259656650074596366369850357558792877010391946523885346373473608295024711266681200203171495431892625571858762217330584740197930843579973837540212339031118514371987817013318479685782245284846706472163198505354103838783086862483067628882029479512479344753086376217526268471815137577949886183045973809991599928225584921494003060075735578334231180218957610833166558212099901229212615731434630139049864475271644529098702267050760814171568240621990142447560506623722681177494169179823630661092747076990098417419908113300333793430019164184331317690544396251577883158483472577998678524469399315121686368082026466747068019323971349071497520949500119386888437243579461042559288312300225599333227288909964973204184250228482879091965233850696737619500456780996546590768669101253636718878639001965338946154663109673721593794907787039957160170202579607043095621001347288265141079884743457397625172367307280915541171051550034522371018241495607473004853612430979222149163112745345821115204451205176943320563820126761100348006918037587045047232622583125323924857157555676049522414979346393244619052637949719719228762901769856490836422212107740645722443062717087620898203555628101534319364140860106516167601598112148394154207657419487167550764424308586743277524077926465695248365202510273838793817816900826909887122460241749237662429959496903482006033159892067674802673167080243189847207029947002533853744521696485627832967420750394823302294933342954294788334108229286393356386010695493706864696614522858374325849247789972236028385544531166993610759655685492304652371868872982222588945495390097700897284260880199947879995086410784743238171764809779492053097009857980454375678005936097241825515176191937728672416002492830690062222029022068631756615294221561883916284074829436991297060436310139285817672450029247464726569843531861243325102909216396131514708948474391039283815215033931992497409907122883481477473718356162774551662096237644283093982311287137297612988898903584646866208723757929563274582192467264551799041618227546284056714144175678774386888708668209355336696945688813036881614434435703698586194227338532619257114086529712756620619563367493366832374734886385506798384096085150023289778253704254758451222197964196217283181385674418777091278931475708767373578990009247151008151620588485035190162996345248888868287433719159674526919782951236946711466170869814172230206779745324447670890173904687431680685345757104769865466957866335193076678313658021880285749495296185960281942977069672191941364361583564623550579247560125673063581640188629384086634951707828639947372484373816044427886309157800012290154870799021638844943154119265704157426824190557055713123056244170063550052965552305198389243799102413929973254978431588865853551112624592978083769019429254062087891603089399289324149522919494061018036595715035085366991531916838696517492695553919520262558631620921073960247105454237705798795702706836597272653297182446896913958595611998127040782464128222155450810350742796488791979212957406399139767543795206519826361087710977268306868526071822820808017064766122665195785887081936484870091552692617186336043211750325158115054701719615710619289718739240342743781306244458440057954958439182295527081772798241335722749739194202019338075333117660944597741367202941318073445208798494522276447829404858796297484041804170627770709605559897742275768699103659703522486388047598298149774771055581681028496604237831807738008337219588608561596378529762481021076492900789694263279881161901343798770893439590586808532914672538864089196833099939169612762908632543924973350164177567019504981736509164977955901260963212933897505158583202020224360974894934841368127422011493288487979868208508529989017623796804411585000120800406011585732919246487760567228908066481553275651542934921121593729292583381907472383913306503182712391432696262478768231395370150453616845257821802508612794574429755233587847028905115052028510134853665806257994913744683087638100715359994617797188526905782097531691271161205139940183673781240770251805219932963728100230704459543818710603141554064302464879961707255403828057409747726707554728218595963933941387545471523203158484042613401858275471987747697098782437044363132224212386291705723751814805352318565551868338070160067889969844240878565414796799386713095862710433358475958069639885201609751816311735399218021394256625157549886520645237683196066009743619180301544173943805244940529113152355782111503245704963721849865524643693992063069607159572554802581108119307390700514603931483500772351332951920747490415647697999637062548371725419828460584537983252190304438370023678255587784714894553574936396489058205069070313797052540019945340603949161227115204863768070712790198409987479756681042190866784938988098441447420934700724199877267141495715999229398543812015796875203135664547512275200001923467722344702752127790401940963093279777997522970077974260823416213568381533969465084150937505117090797457663694204586578662366912782403754769489368040456328034575059522142499109881481314395380476865787110929990730630953218162382370753445553352511644044422988507884786810070862538851726337847561978293571416472553764003309661743806730641256695876898078529753675142105204246512856254119286256822137298890431461255320778679861049628448305875018597159998127836505055758036572198766130935638316976132469885696882227609765916588072812252517280070178310491539624992820488163099542862027479030433364888014767265562606563225218087663177443268782095724117269789515462453527251698196275183307071042684984943477491854645843304564826037542309222225014933130603876695212802768571048944581928578480633904979017775538117017430814795724461134086526569278576743124975666082750739038129913461231571441123292636574094020572082071057977054466893504865107554610511553605037336649072716855542374118055728326588157515002915322425551767551135395599042187084733746026980986918490597906023781314801168743555235184217161725695822814106440724697938128595548408123505817365409724737921658708611142514818721303651132991304790797989859351654437701945144957889133157082937359386984884753815530626255575749777015023152619556163943424784314130895873352618342978076382480149213337267297217751268162270663201520627079437029976598353689228233283790786346327018713786763940829531846008865923441163172627616529957143959842831732087092964975431419086519213074333269211995176425171853609885474253321004600053013818093742069001445051903352292802684157011942635020384382811829263313903616376710423355546268129320406042982937443932814496091325277023870859160005276920077746188849339664583488500698950088583262454157406288822464046669772946317518886996046223959776657722214784041477502417191129762725708894445687876450004747141169411751706750639577543098235822901614391795569702420781740217315057674663865045119388208872035354807586222336447496455167803836832104937669173144919100240341468142770637711720313455212542085157623574664513420021392433455989992632719405748547005069474093301876021294149811244325344285358885916955416375225148800514395306585398197890095061407013851466333845563217016011440156711624982693929443515823281605819117468777943553877420898386023376374939228693629475649156276662604859196427169058439133365136219755640692775264543288605032573323357402739374107253868123893207337927972632091989313769571672236404598721819574543186904430718364837475528722794755433137351175289413662293805907407703121002883506810166204716872729101990391645152251226831668774613577536786486350251537972317052330554903933567799286392376652329346772925833125351135354929528011017753144924877646819544123588921473363720368463725915907218506442065068360577598963625476374121639568292508119234242529222701491517579765282697568448235363818294106834563295120236008455040606292900057843640430942229827276825984904355184608579183435838704021538482044206232741769901873632138863097949083122213606228593992989924065468245997346335340121000566225903593528952751958651506128531838178471773750888566899319877425957812156934879177189554568991522094583001815963273189242755470625615475712051516931156218300230329538367440005098027341181800725584773774561033348094147025834010853868945415078655515655389261943569399762233128392758614081191171574206643406609574293184654693740196525653545971265390452780013438730040080846167011823583374396677948789893642326177358299347194190672236106485723676841463265383890953111081994296306712803904871155581431649065775660957782605519216116393819358098562783402397322577745860766576726013987128380852016578418704822368273428251328074874198323234652105746852421340045342557594796558260916999997648144797795711694943550598818072311412978164634512961016146179553398973194424113641107116354502718602998749579649144607358117140324861569275046333301007767984888888437033243515630163047391092839549196232939527439408069071744364357530997875600348858787883757380096941360822670823977080050173006071008740466635179499425235472717163640555565476587408562722760413166592822877046188651688979209874973496421695445435765869585461109290373270537705375287920010708666683263741069122420973128318897718340532058003911482102970515231153214457224733045487009784219653470396547085030448748339634835354177270834131752371496099888367086409208734728223816323457267372287653015274122567033818457320699621494250391336566531804925325998631059405210980212584545916925366630697304582600233714525388882000166487001316089285310537827880852869860473517473320378443194212411112810973530164177931266553315951675348104692759528060120227064777463754365542755427684397302496328309247259310756629069470275885415646486020629036601925885730729102832004022413801642713495715096947634713770243364496682393344008553045099160143369426802930742412933317429719805069128938177226779592126952261773583808467452604312330252676100619116399237471355980915556296724448307177216402638454292013964339496986616688591289831332407271970611010018481267197313286662013254904873147017895182118678319086436217581407112822577588659779348604728349193107459429023528597194395059724800867038188143431501616479798774579767189036270329926463189218425897926252813702608857731005934214268355873672214373213447438749439906666595422952901796471605298866564371173658009304845047058640407784668159434942000113459465008558993302352079872018432711428096954080301684872472486186206271929876724854257851907702306212644179601610631772541435227346911226072010619955614990738982392675878356288105790803093718956216897331138201026226232602592112872864172997839867454542760941012853427770448477082308035783020882187576775454541299679005066810857155708996648788907566082984775478230827539584239411905946530153260413893843604959766825684164265068008124214668707495527503260416597235154862669641864717099310828897026780148049718937797240921944065724160152329369228484508897313164524184965828505885953041555897837055612631632641736132984544752143190869297810766492875886064965742766814218993836734929533541898249439076811167496693643147406591494030556722832810305289379947200119354088013541007911289811238655417097793331553538915782259542202906359903989248438744284919740819255303578768212098150366417929385307548619581292663293751685618800859411881907547610563237842749927267323254901608530643855896371676069192413370115729887847522040508535285176438372626747616657606647050079258991855428061741308802098314522122981918296211605250019404243573088809477612531777839495959354866174147087564539999833224618812912309879010709947539561541427492247897817404793316762060231931293365727906612919499921635095558093815587519646897809043861493295778584933533456987030497244440349139243557907740496184685860186617917296658274710862006404465200410987390364893906030792654333535322840225374116971078873469470589529275865920622037883527907996525608875651319013412417395814460833279722994774252770149086885003038794475515523002751350440512113464549843421228722215187434841430456351331752039708416929692703721519330517600446275741043357862214066062400552745748877310457814618287926074444682157846336342024421003596168513723797863689928220851416487581392281198216198645321950063158350056827773946360992550461191705561690364415474175176725004623169310746397954617011515856274229307531554299647636099476625776139045005614824782170543768891562324439924645094843397561889823373453425868040378546110946491280603321220017549607798703637372108886834275752409630734337241631408696332129968407718518994136006893198384538782618456870606179572813570920944307962212184851197822222509591298565214168310387120327128291508306235790815830157481111834204463856235155313532107797441691096651499156784125063219377692795949746310070926215050647506429409373359981361299139036035693725887915935742707811217653460596447850078947567711693091362927057095915101119561938046049364257894858375080022218609040260805232803233029586051863583957377523226219492266629195147660020632953993440638134098423261518147846044566416877054648259465793752653845871164578626091256591103532984322104191918152607319070862680989433932913261432619441699752606989526209044708063655667169156166658181592287966098078320911699100272145608929483841537288391551473417100883361080011596502889502103262151231071222878819045396893393718790809307819543416506581608845885661227754240751056122996677579147265779943532079111413412029633699698188183831685466279603325261912719714011091147114019676183461535336994439326306654787291825180242184062134392484229708205354285389277645331643197979339710152681993390621949435144930700991981077552801523164540683530191089667389376913470407773996741777475197075590614115310488860087220112927786842389100021894858030693807887325493615354299086701335549119923524628442313998813698422271118000239921275714863532106287197222819137292355689411162576693595265325922033447970409538266540327448971897428475984054750554770053675603216170215021235625849586072851158015664768483687154477187393252689973131438383643245634663198923029102767067753746378343308101898584032811065803427232470000231154349319494195533472569363109306693247020853399973077963386861525589228265756685128845991411241075214986833296782476865982285185998606975256048400143772470119561138365871676817396404815542282760050540973113731201119258941810751125776500504803277221189281518976380195056329570460266405619654870252469603436089336312688185253159853693082661750796671111497918442512155461342219469284759132882718509642949346631520161944926651591845114898129818303190758810835330932771703296269717340259615638173141216069322143276401605304557224291419032839780128720852225821365961605584367358762750627864172257559275422253870138301663604074943270232148358412696634349396508289499075074668118356282889212261171954974123111256910861109305154495385766266040524715393279196577207635685272234053611838685853126234946265992724081947765118192536803295730475428782628575704144881468553235636405107749571547926784519489287868712206953969047632460693598147405639520172347577396085771430791129685167662972789709008409628556527924009888675341759916600434737936465835002658990360870621684165994163016677323829550901004215766817049751684982238184258528250176724138362483314283075739548394976581397815277342667990624166974396164569888710409093622868676104942626539376994810298638939963887392499099311596469011022555471503131394304164177388435971058869888086582052275587172344553674844137817439001563385970271623394579731123495377933721920281396226716370212789303365391360894203897937470074238637944650587040067494333254740890664362347844735087649239607569965676474601170015599927179048603468703171612497562207818410003097488942436204831023377282960027204494179607714590260416872929471003436858598543742642303478945802877170218568526920442532550788038991162911706329500475933222137324793098514215749375738815060272762711470508333156695487024200537422161721553709175734650798140795063791098732784594126121633744790482086142820788932909751953363356707284976926061148869237934187349333080889453054249864051836362784555672916788027577818777391263279241293213077585880149928893991698582280507386438049515487417102588923716634191861504061269523399172019773753161376698979947323980787575131288648925824016213936052937855407568306926553709074228187081447994793721298783628795660479255715898553545142502972765630336828053368039415612286838614860007984001066957372646417074058432788771169031930472770709713619425488084208202674538061462505736815351331666727410718407593357855327618137731847572233349097812815755726298630717723292102713862679908186261828582516408297428683156430349168001092409348886495069681243797176134593387880949310121679869995136602985835247669834464788193358894176669045932310664218204108374349177086507406551519455964340791601301800939735075455263335085465414650085158355370087096565179193747675916223743513766241303435523536890869472031924692244131605976643601310229870724572765164902879564908858310382724081668872376929529610789271588687883516969960280673781187431138060204008874815468363842213961554816067965420594053525250918597114474209486007334900553322186017769593485849714659669215551310430999279640784008887731045027214900060326791809709499109047228190921832589889505286454569340870817353251847911107636034813379923213228717864536623580952133614403662667206584103596125224497437466478267306140566158167046669641912933076853435329159992509406300778031994971169793057085413040372612555938308391911437358194478418464481925124148598727895056223840197165425538412758319755644229951126569971958683589344064711095018176930136854005053937623179002212169696159700613440788806076895244953130830137281905900283944443940977671204619043554089942704901617549110482496467319127329296735456770878127627134302048343719650441682764708082822201245169991542002602349474445368468073567484714776815307555520824824187274957766293839468971058412911247622353534220113971692010097121669042921523258080703730020660357066343503174469541088111946841878274581521169717427859963624105581357872933517451843517322375919401724075602722090036262130103771763083888405227097462833418856489098718546432822535818945447121877726532890083560981774260658151588407010653194468463678386140498022689234881103769097024533351230495909488952515389424201241209665631945308271591417959591453927624584844133861388849207590289653274254194852306392613057008849016439841194219657597205133656626187079893618840842774621260605591721619243345256029966746385864225477768278261138774634162284715561459943633931072439387356851425120217595204298634425002185466734195237526428193892286830618132877533235388207322205917681757644752932396155410861183309998940399339348248488344974493813269556583070678607474933518901216314546539066013924504609165486083062994298189141117371195115522405535152814780462941886081598123458192262447207421644021780093362211668878038361899720327834585922905667835560881140321987098299168777430188957000151999611626717596451182944762205064655797281522356969373817685554070765355070841863407165731865274782589936370476605492071624111031705041990049886788531072908528628674518060600785220474798182977811917138003453194086226141516602749976613401924690512388869122719908917670996131039051802660043573296287673933537380401694201916615729197507943491146234247377930607724454637169711570097140068355598588797486931525114452401138979499919125901099121050398985397238170700882684807847072036973066772531235126518564753583058469395382084584609108400247896543491758224366740315443176602676989349553281275097971296288325971649822966573749284848540555790596956941316814715361403706424556801962690878527129048104247651195060668867737595435138370262257293506916129687315671109555640835091060981520418525689321004168778845680616756717624186103321194982062288619250154480418325737207885139487434397481610735623629214013218846455976816305907361037554421207394826582861036633216920713530042538756373674168438824334044454343946018437382201592515552042725064421042844172713920917397856905622165376830382624211457456921697964747493166851120933629959418662380634956303920231242897811592654125989991674336532728088630161151834614414057773797704647960432399270402810635629267180806632482316181759126816235609807215602597743840558485061073516233814699557852181653093127242602407582845987388468940342600682104371575725960315178844298351302023653609486777480218500404433100745199082037871944154183604218362096437354132007256635253058892083755730954022599645123272606836358965219663657377272726754573186654476721062483220742570956281882083274339361636165893704846609939656633617801711013222032367759491862089387515214066901388353486205525184872036689106440806902047882441082590831033131186317636841799507823118540721387044252660941773841297601051488969289726684321603463233742541155511434145556460718392620536233670142016008142839505758991404324477315783797021125814488787630495517190965416255761275515812218639033705255314784435916444674643639672583681029116012580042166427654712697990574026408944361097192144291308563292421385916146530126316642844964216394000107520173295838300287405991768669227297736188348919359931720483619578997539708367172057076579219021662167335134751513804821163037170143108904279870417160235830609094718011451530102687407780640535818736109168029528103907741796844500618144865285746615247840164307505815072362160474854628080589397411609690833199741375285903111349645424136826309891348072948939052783405148855127787274908763885026815110426906918993063457166098842369253365819378474115502474787401551888442575297063979567930350508708875571385377537241596948970491960427766640518504267692304081877921008104697790834107498093929384504818983430773586875847643818306265721082510457993438166967735109751267508611868372706279510213424383418663391960642205657336639854861136233587517721997240529510578817672005568869481768081802984152731997149780896639863304923655188509100344058170897863411694397990210740591308508751926466523729749876706262248865476755331583958448319773542173834953543962717288422772364453788318062793740665334781053596515627486212719915296817037240133511126558007650471692830787485651620192629279934322031397279510301320692175635046161173475229336657067339691195437759116353347370935768433469158374865183702715179231765038444227420838912365341673093263799674194093870670988481428764337009414038689019932272885219580255712791053334913797938441645078006900312959333507591161548903730042015846727694912653501470014302796853977456209735799150468892850729030874450970391703847598013100921754746476915330477549964292848519607628516934891261635617694224940187228568328708185205291969300656567239491234567721001728048750450953783580414711490079112572175903057545664453219169165250048252227094452977192121996955406012793171761656848165024216816856579327459784352622277326510269132787927955493119986836622480012480050367666895798176950501430525538211736377046492544455987584453833682546098902062722431312033015359642218178452151933614714458704219968506975328583380229624662052785904198530477117196696655747261896445805962982279306951540225929366334502180353840821229497896836971565523854908526841533644891453397269556775267340963148314138401061534684262766449367462681204142773726163211042205158558457154303189654644810896349343906179520171024233857111069934875837202842030805108905478811333466676166682009300180968981743361878791777007319556697931082040483926761886898535473253278233016514629717373667933775516657349649919279191066885591964101647140884741462134512795846353714000042127164699724301477546835243899537378460378057877344513995899702493074864758327199891508945182915481275425610205330871085708028380077802844874662610970053865604974200116445932728927140913698092462558968433463981936396864476829581809278591611586046230480110371659977530495755738393668668675517552726880886706975208169197333554167089116489655088033754052628061938557058013426579136159982158159564360787075790169276273363936638686907827624173888003959211572221173566402214780787072758838553800207687836906367819627361116065250563341833451519590490722922855881214555384559958215354417714882123294415247650657913768950239563079073223214969409444999872733650098765603943623316514943635056209743586251110989326971482545978673476971266556285057812386981393018603353616345652352551188079180820948951091326317024671347118471630427107387432496484141266931972737412233973342789763569926612475368642879689122390735752925186133829121694551187406089710431358076509936929360463067421152248771645526237347719760797407316518485669797672936697813198192795672899142979072535697116312738052290599755611410218219368059467878645082088248326414175008305458806238443607794002866421398298219126502134321020125742657100556455297693131533294697365672813217256907692389158084558661372471565268784996349515126601334564344572912794532354442406426062525522703294136825063377563528725062565235503323665876095509019459375430657782992393167768940100924967049903452612095080774836949111126349141057102151396211196989977455636198401101677286653705077939671873237432946011119153576313891233239257375382645787207539348021167488646184617951567308861730202037149495319243821036757353847188595348269314517530708536499602728666298269594845075661141048549875393926461305125026448250116508486770393714150918428596794044848522398476047151249101924305942567169041279478959508174518717796365187105953406110467562918875853498491972752460341853175274859169461445014214527828359475500115532550228284464606139984388679459942509883015604931163000147323988367795707537360568091230010704923767270127168822615423366370811745480256394782301485991244622706039413226505968366281844370488770543739416192080833764132617283616421198602244838715945239380296477902276218595954711443416290215416641316613351000736729876335713311889663386692906696286548285259641661109783763385825872852678106030748366155949290254549741257377787212387145326672584520729830366589050626793482753063934065387200847299852237065149438816522802869223664157308029206258708044475940213182843859010828247073183304338545393835739044908408781515371928039247440621723222260028696410157660347685277563805026615906716229235227227953126890067353565899000867660566887287676126594662413592267874559590011004779679886857639131072628809151305301085838351790793086999939047242823196725363449007396472809323165489842948801993688483827207624614694711707797461631335244299290230185915098369224415764819124024551218872301135608290651407836367945078268821199198924276782871642687550604404289532342120455502253864180022436991434604676699720581808258132549691984733214621155040574416526607810803888373976598532604427300866901475062701826894786261246793125747848669078219292503847415094826030210331822540430578815859613816218700998230006173940601519824030551423676478106191850165055161262979523004523268603638405662777496082295568022627566911197804182427533773996767016376195842934361813781078562251214891346716460381763768720106817176448321818857968616221436224347751726597513160866332182353885810532916489630291442843362967561474116808039916935899372207637280057871350162588847333020861389380608214323414596587067816144933101370046107173663870832522269745802212494689175110017066549738703472740566072053352021549795525903187038647133932484192931563437983050330079645134225926113667314674491968010939217942105588130208695958887409931134533672996825395127290233618447200375235735190186214021473994325480634156888611938894713374863906367413412376462488192462274086591047165850766636158789831614871048566433149882726844038054465275581605755680430130121020268838194973544510573870451924805905186639937134833344040687609602734360691239890392831620588015521908561689508661005763561040033705310967122509770100945655538998893404002184802300727310903887573514452415355341080695007140873721415443661792741224721778912283257899038792202291923922678811848064023686347197321612766552389150715307963574891345041523008927020200320259119464574407391860036626331682869255172515798792582666968319769410462649934648873970773576820848555407853414361266434970523169128680985052704830087905764289884858436967306548010043491897004689752794550995872914463354661035428995050616506929688941860341245110988096619649857483129703362860570199034934723173323358004477402336596250675532863136805242944417794475772171461297194809935627602744552244553669402419214547432565083442308823008338104867205127602407284946803816347363619588592999157769638515203844001523616638140340927568032505495282100559544245450035337546935654764624488262875933278839317245297398258060031226147914951318304030166989252763449816957358240167899856364555109942394965825879293089298406537544083318942880986146141549596910133220235992369534649074927570881068868164951502493561396921380765572004022113749322175610269643857963083847898002015348650832856613991254585820221476479834222761056064300922002273631191112636468546446431916463362604413863932120770703736853647566333253033002566518383712110349251228429715872244147778091008688953767610568606304770798634487892507522139851168674976420308418037528179622134195456859333553985908379283759199669708348454524526270845952996744939246284160810694024375902565234261728513893645967811452051567789863858136504141130642309170866549714515244869334623345203654497189014660145165387130194102145350512603196010584849361274618299683631368103282684389527385345267694550020267320353873084027787688549195698400883854786636223574194624125345054400085998323505988261739832483017975118633306358508299406838777995622094759914822451606050815031168414802322814992627894647355369542541236763222003496621129994208745611945299024923097050074067837782588567530322406805580368479451474107181466677362501024239251338570244657890803053465280410860548503738530183018533954289072539164172079009188609980935506087759570593834558134396208274642341993172178661859145873117315226297403642339868191113050330529610721022467227552809795463102522938814731639574315679402831545611712387999633234919566386658112130135667530960720091017358081920970330453145767318213959063500212668221645602116868919971457730792099848184108544597068915637986532291082986383414806001103217833907235915337542970043550027067137463238802389213441449865535353346922917591936618464039201716647012566982986102801493241963600513584282586876368105056045045255486722332541597621180089056320208601404255202982458403123798690705217715898728578107237286704885784922869535863129993153694714739862016937587458482682063725795972272284297893680446967009077155263419964629391348642406293952185808834961506426308251717322049257873301275400841243702719088555589157932097172251902101138129720066245610910002674513270547039680515056857227185910765727909233367975495913986793667504835985751429072908417180570839469863692745950354934503946211803936946658718006209175953693788909382548189705390238322653964759802144210510570642238663241996326726610530413334456908708893837764415451040162152445283840713821919384134663329220892702951935590089222547731486287865384109884936784042507671134915625630277391589763965479651974193169086242855312486583712036553354837595517482563900422145400589338570304693950847694358207061453986837311412182853986495116825839047351369569347267121384865011685613448947144265345503647818134275543689768797447842679527770575742510281827217022799052917601796224673755312482503088841602911846702974569983391288266404521174195945402169732303206185007910108625582785692288661541174301693631781391873222038499947770681272434752788095195037506102695858926783226610054706281801991552037929894661595536819833344010207388999508946583092840031897761644799640189010569034381256246777263987133652769260172101113701758332598464437013305250026334210678695648199654299706678228179520211024339303587929181405850247118425777086793467154669634062633188582094534144024432246317879930542162832485063702229947885402475041795201358113717604708729348666580590186494619021179948938988319478216798694190013437288037377048129554132777752358747717746397973545018401959653483655456491581376865184704711168679052836269186143096753284537624026185894951695235256842769952114064595620619645887288434299498300005230144861471975731627303560269890715047385632177314224544402506686092134138227927157254442172396955786063112185560617107170706194903967561995720371068575084679205776636154758510518269992173736901374317378180429757674254125062569727897131763595516367355841805063226823052446916317838919774658264682785451861961047117627257887539467351618502862341211836799946086788620392700286910900727331852866413504244905400150550242928244349853644378203968020990030117215240974838836433575883119132013959451667741993817476819514220589668877336347407993332931803217532673385670132138612695911519464907171319920900381029677460764119204142933328367898184686760767033638076642663682172255317724072973272408608516002394503729250557382004195982949657731582595703985605538405528384785526141623142761902762703025330160266033368753710510460614255146946666998724436693684079717987956661426554050358373090115963116442731543469442040213601193260893116021151082575026231435749589937840814895786394504706000074816326284033257899866897947136012983009269313770442022421588144768833074099459718245668612103345404079689072791809027112806016374653914756220650793989252682461267852762963962702859005556331416683312468042633215070020322959193905499174743096599356825511208514576601063701396319342547314612853310976973683064010296017909817333194700658308820257752149787322084530268547483728910466671035268664479444150106998094475269028027443907200968521068404810542832744180216305570229630329755665366571794743134838291127090767856576157372191453358061700985036729748825751952691552321676942390920263218534065999868969026154616998997260216277320291643378627123319498607218263825570143573701893158488634679758747451715693582449665174616331287547780422578608485291315230078781382239557844855836176619396099736205205327452092872086535878531738309186924812612918602330812626047426736999074438440494420193097130429373418207738751528510696536948841331905844411030121947597261675363083516046783652762790064657525233254656293019678449564359631712496429707846415148680354485093288250669665860048477740609250100118288650284469908077632321843014566104799431752145941792877205381656572281241692829251325614389543134931750251391395397146539956825322476926000547632659993176455121016882151940613103428736297358737768760388643302391193239546360748707274501684081545057484537679993249351084589480845459790080594751939243368424470426639273993912603978302736532805628596775543087593535153693915941103768557682844314711811004551480884792149551424711622479083741008887064888556571697422065108104097581502327516063031270773251535186736214683345642174334778011962159889373489848359647170836615880157066049633362555752976213292423430367369409089655057969987900001707308848533296813642967848381675483682384125491032962881312848053689698143737198981496504197506576397074616939014800099836864980146020968570476518143283101113099739746140073500713770741684420278051155614875685839782507593902796113694849975589295340270814394883876196441050154639512758139703216608248251095166488151414751172114406780315192257240108908888777315753524623355013983532379101660554288972576117411099425802213673674768515080287387996593183139630391471038283404733435319558323508059008359650251062456999287115239421470291079308139730793314884136196958959823404783786375185823894643926258067242576069980349306543077297513766450600110240472669269371747330453525555981711615556408954834316170938544736534739335132621776064144607014513443318803530162913906527258310346370058983463434817443242574823876822373655366440847393718044661011885035749746182047079145687936618709992144451937985096774991528657778622618632573159301413560514509307750843158238346182471066614160532536229074962917203152047736368917502863759895392836583145614445129111664971079062125707453622401429152725417930180721449847273196544187210154383351489257316470363421887632155674904953723569148442147619922778268034311452308205151520425271633224146871206318261804849747665374493226895174678441462044039865475339869973394318593915149752833773850585532065379311245026141675050428462113764778639726874468361353114497927341231057303833182693752675927205080916463159901226472222396413991375964380392016837824947356402604942302383767762843260233948451290152759864745520812172826106346909551620894267391516764452130854675004197838809251740378059660838783802608067148000657283573064529453409116960338757022659088729751371976627970199504734703605383269639070335296693652158714014179885537522088406940180750010092861782769854431740486492202479563160240835290282122096996519170508813403233181226045154590592241662060401610773845637057126557673995679997389582974223639405833049545350926528905089550154242943597348090731280402833575488010084077490012609542801478137403904252038708950122590637637617560202211126677892010958417773156309182164974808313130681215258091296600960419772293330134217847138410748965834254373143258421553915736157909398028692070142636901829668462069575513621682038870949905077041676444935096903868820529524269129230686913393704197029739597763847998457357313385865876165369347566827119641520343330082168975481725897495465567532187299487739587783682734231698272859884546647079001950244145256566101646199293704825892508511175266101023978669439026305683951422562369209136011458808362213749247680865352043907341972570335319910213356749862108308162161545567989229611414373924284750112240051763568941778182988417496695619741905493559174027213945950340278633297956038001805210346235982196370765200632072715747470043617083685375776685428696593442194276435552527480804153293607849201090455890173029697622607977089620981571342190403301688078834415487657164088080631155011251202517770552387387652813611160715189426179996216393995343612603888966855269119375457947744127988790018922528426980361172143239927000421372405135085522109206124365960818970373639067384115739039713005439376400800853736570896912226071855209365887766675998748415309584008190206854474898903305661669271089532903524182110942060989626536091404520190813552307179078552500654352956871991638592222882601081323016500290799684430821266586644350033582295360008261487907425831062119813760614080589212955604977715334035605682132088013960809233537466602821417072195690638077440824067098872510325146044329590655112297526154719008453735722026582673435469151390983451330010503771013445304408944257489667693116638448004843727768870113684298398889129673625135397201785719082590350670558274761541498874692073682758051478466431991007760328501281950604314310899105809439308928292815726056909422985648572350235629280708837097937563274031063753006067788967757445597259062662681537793441887077568218236838384276122674310802916701254852099642403613967253710616857360356441032647542140148159541864189868622034704585399258906901993167274116977331154103776241967403139551978688115704574441987763662824786005064365684908285282207819396826433585711080608728291196103757673150280142357426725015319115811384997960854231078925331618167545791480545461475331407573250574013043981590039441266338729755717431192870886924317501859415594861833604789662445040391033367858006156606927711493931400793865329351439405495042261717757200945866568804544499891398231014114651364511415714514484057291732051627144719493519323157549347956372363970924153483803712904564723700484137700357476950075206561661286901609745999653375037686632556152637093584492776503495277236455316175688045227606080514743343905641457650440156196617149756679581097925454399988067816587037762594343986363296485442036673924734843367037001780444868477988261024191241461287321256822603866929152763200886617355503299038344191879003819346278670218574961438315345590419554729250807706696595819897661675506482700029980188594169056366436642715997609473653601859204885093510487109082550561766464496021820174138920400434444550148036708247822582274018160735425572414182846567169556515781871595837548675384003956751020120557553518776489568342145395422203351060484596014448506710613092305445025825235691851188570411034075368017218147116825175261622393874886621124106997429214995084606964420512762853604890406582603309894907988979087105755616370674308539817100027693689245830034424405677699889156577009637834399025417123842288740937561392446886082869912486507567560519206207111923077595282358412675652851957314144871002915690805468575675184543608397458435979300754065757692331489886376441064601602155585290218382889075876659113664117201356935921969205129452319720208652472285805683249220236057172904629297149049325028316804410753371832044024389608194451670393965608790776561657227022617647971777994440015909728298396874938846666682780448713808994456113277341926800497280633712912924554126147067213144273554444644045444711575728552526916199995900495327066702241460068000550581298768264032484912964976954461481506123731845072830886168791752295999989221574087422026539499200679388981082170444891348875991861119316075024666508524297233873184365543698791475510712224394321600415118435287548717809572317860480813245000230330311752855237795638985173095803482644379572411938835896306718392211436859297477783244911163535640046034761258553470484268404402380298414127777768257177813272884808379335617038089597497729215595132366277303943083654007290988074216616690826868460600007639128597265203412099078515358537821021073367688880347814127843788474673775685491154431005692464401206528278801508340730238433914991404891867993745706161944199585076410065894376195539924035177042638455159092547647741070949318438792538010253902841155916199495191733344226627799414909015320967267334731976748735160162257702954699221866274322517190928699674450022355569279512951364027714937391495785356312552233087635047115707968302283480100676991950732538963657873844820401808742140966567766448146507805708835003776929232594596337772965869651829958357205928296198384462100540472297138828311183303996032299950597172522796420296082837053449279674865522474933741160195536161877715723127033357030414493891893951872629108224538060441803489495372756775656165166317668639510222876960703540844843333767989598033376292661074539304342249901966428731376064488048240242365893515345483850534368604624271935105226641472787344138274428239708196769346234674388563432974754119706960689554563165516728686830524299395774354512843494794420634245294446882733189844621018611196411860680482413359149925905719164094949365292527936990067316241707353427824145661058068699900564881979435458688002196120950229866577693216874121787386872671638210686667263422871102859910857662083710757455563272664206205734877275606401599030522225758789611186402360864153768615930399659237748670085085094257945164814293010888146072099463727662426893886708494440078234821645024750213844629454245414433952044263257972968620974023054700918306313634671983823154109516919471353359200149546861452585424159913366248440543825784998471789965776978876328265570790229628987282394614993066509721309610572335148293693745361741334161268332734795690372205560614808589576720400753505577741504350162309595984847506249517933333202875478695188758093907076798113104921876942196657868900653695917860201777144046220195042339268926136804497345258250871295239554586836377040973426729222875446568443595415044956466819582943809186379949150866337222715504515581050638743827807168591706097787907881632560407317552523933529075740829177012594404491040644403938848167442542856167372941547854929141763257920291129767137047887522056351709883138922802405696124766325626307070580573641722022367351617390734764137350843155637461280914550185731140312460885412119370733314127135914841582154245831989915961093687151582452889441903989781405468916214748609774923554667894796194179342584727077849065580318523185956937894576719606659421196628915975771274991419690827240521380066094195378210196263918249998573709953221028297757318894783822047486295657792178676288092067028572074301636660278918039345890048775601708236824255240490668597144087298191686646499278269773115104254903536590697054736955811571022958581378286213751312605419549580876958730047103133864983743008407840792960698426502011413752677456590368043024308036610981302135263358281249694234712218000553449568097059239824947015535876097331983794493720390077106209862784979404102560347135378659459712784248184532033221673143277108228604583113496172743419340725438803371247017427835617808304325391482973308531510742689862943729492156130084127534202057387963509371406187199969138852273826515855331215125065701230590796758295940850032722871551918502314273377064850714597975882967229646945411040762740871174039172553949745215933156468551747121715793899503250578140351128331417309674986629730106916989198720647477625183041342827945031592377799370635342675336019365144023620442400556209597266222390910905111536934915945211602129396773003840175578698761943535067033368601918146955896235991411344097428134635669229377324244894204348839513630982174849018737589079744626355980131869645597607333499702251258429157721272702547511761513262403890172438274030524105392123393299723789489537315911917424151775183347186560692839397497233819552887319328970237998284977922712857623746696903543008675685608727057964591600898951178847590702889827390371558143041788409753087717774418526004371969790560070750223601817758602555209922055180318353409760116765031170466323386844174281174269706760635229206740579847456738545706682319026172933983244723193943568654415876167572906604722319347372069739078082323845974014131897302280976326313234999079832339581206224348150035434243995423185094737198696320021406576602270969905515053672479063799564493362123623759332689132344948965861809646450830607482936515583471941026480279965399173112716296169399603248282071261531537078023264881407032043916628286315216396248058539613545187812819268776110316166480912166990153465148763424890535633532210898536105220463881382676620090609480258095683462749120550255789588570201484582254348359595755445020811425458794537423720696248933529013400406091235500117180259790189318481197765810566187196278652860631097454572835416837803255654087852784393658122873719059077362655292197881568320155801672328029623213843359279934041408902630241975330288065828587302164148368485500441462024588430678356399464843284050548924051713309695322094519113253278096319098704227789105790699528136848949291589860808463577602083586498490454199052178752196361829341008224019160079337323645560216876101109450746373808580675007723020483699986434686191209446277426971062161279247378673966943090642412071078930967753823000512596128839469368951154334868177686645091046822362920541691715471409023856316400936002094341479226520538728808353916330380987544541181268716624715048675847406645346602551155059354551786035916754942423147364731691472178266566240359174784304338700376026618878023372367825594673272606158555497281273946953133026212170908489602176432158464652071436559584340196158204785350734462583988910475151835688046830448093052936892035439476249908202812523417685990053252297017709025208294021796641802651188452033717441249737903270359594547214673998229888826905674455175031810724740030474225600585901549196823704046522861795428244791198105050308376824287481725204000821593016200331385146625953697769590139887946334683777816934715362473934751920916135760102764187615676382694427038763275117105976827409255300766893673240250305454968345248471615380270045512117780334375305069087604993436963370950930114979672220968705607666680088919676720670915189295299268500754673988750448319091155816310454221999005495692003364673340593076725637649311540777370440251619937830426809607209295107830160077690830896723096280742874311396889882481576806878966952213900649321705033752238981314839489035070666687853438453470445396782284490018977752259056065907675639894673754990042451977522971723307899228142776008395262015336806442621719426093751446730670084306978871383740923247495536578005918953847550830441095327616950769706987538378936282039285323624509056541396866820811790125379346718687211398430066267248518638499202948190614609231150306037999790018112772890384834098475330112583656756264437956400224821473898060314106604714299167055793938650505738931115097577250968070238848763856324342540202262340737374065649005512872745390067656854146728814354713113667019855924624825467114293590601021808505065981664797190860188989511954073952658032253061893837294227335623929273112751011857109183156152128091813884364750842261409836149819608142119083904174491816195595832972040035973525541348846617890288739438658606696986613639773067599860901701921711224890332762927729302485712213447657277542878820463568928785721811152819508227117716995637775747630863436508817014274657625315611554470338944364689351730015499812879739423583116072527337650162342658421321624677552367519439222235705962316545835093532238627587865587446946102592248952683931677819293023697758088623501205289501978826071580390456225982138104297474419396256130085007591766133199579415943611849222941742665254472403310268131874477679535554015257744037113509727445681467937045706886701466754558793276581168062977053169278031210317739610662035415964906657054159869170167699638049997445430773538637322141720669002057950554868913030046645763266117293843259476716583670270676984105919543047476717320231539750005081491881865563766637254705429141008058596107749835971964122715875888694665364567678105100761219790802238218998360698219283046481624461330132605928026106955850054874325148618972015358136104384921826595439100962429157186229343633526956037262255181101706604528587311371987212307409959396898564812739571001894756956877849504744351318529386905711527080930694806946060494993813222528412987601453134431778755657877183141204909847978314422691247382308490073764525446262805123858882789404628620016650434459993420868152869835064166771403443135315739954646348984785878953802976428195419551496482952473386821147702016584456841802446055330154906206901410186985766799506746249699309104508975425564125075209079848681263925228118758530669681910573258182919770761323086042520374802292241291886985836642830298268934280676928177763405703558557511090887725008056086858300051311122365919083397932620915650494225318637896071726953543573914929161720318629364993070740718751805240907490938293964101087879253049733614622001014396304528007906588010492641700432666352630919501967459997710810723994081334866310564960171503468914512485651399702837869465734488505564308673728101568380043041935823885405825402672199266348499406901295397598710942130788140923657905500005650205825286259097105054198299549594008557230836855875082541800594548663537479316421278071777144501488202123634321402693368351824581423448391668840510509952269009418575191300491390887909373641218784726095573384220728216077241913385860986594523355055929359700254225203940477728600019205681387748065239936233498654581656885211939044020729196041843901784698615523835290516485987066235962577233961683451396105853133682090061022831243013334562274662118821614029879382711207323769811280077976270298270172456602348022938890918891461226999412097220244262531863103324872925337419098273626495054282105671541105104903038600948332838103977391765805947842003184601236810532854793967390167439723565711150133086584261617502091157937825430656167903939192911495217312598990285722460362407791385719191794512194032831684166436702952287670290829991732324857012637111709180179527669266659641633762778178134875936481197251683896674602973862001113549629141794506432776698925115889642107390938257981767153670101767889905662099403039096831623125223721971482703286651539645711048117557609339017540325252577865122436346431191803958165066905397458581508153945876591231365419758538568080435722142510492875984914559947128379456801392820568603258267240201424807293557239506272221085807956650970583221833741335477598640080438888366899512083956036810148421943577795553438143380423689127582037500395804739142346180693855693666737625814580458712172088824134442275939382286166375466824023702958804306414757795903677395221126180512554489930775251977407359227371566593154893558381237371274911297302249600951177268602985604429879556310072449540903801930142882524569427908095684598101656220854953926453963959287647439308004624468884706395913275015780577891007747369679243398100306361454929964177829296238817070395768895623295384299836182504632307531856822413695086520109385708458483130167203160928291400879846994071721609202766952284639585966926660895725689466060466266601523970837100661933183003552763391981100621254275748383733674628506070378039474885944399481052721910485930477734728503488210751187613243770069115578315553153923978138113675811933299150350722708365785046217569397167553253075551366366560896333204039692627962394242852031411006489908829855838990525939146419901112358574875801442965901492076524838505929182086865385757365471938514319512470110620056500948192608392226282316168491676170980592222985940328534691296690400948647283466374023587659203830596205473089164669278103869780541598516344788025697949900662832841321748371654348688837726213302937892652942281545998983536674897494836340100795393396767760138347098944230400152083953857039827528138793852071035913401883058614383726195807379699757698837650914042556586749137463406561707762227774425312202975466576690577291546789428524182110344215798060149514899831332488263338966579350738530389972757348941344824879020734232117931738243977633453135416278904281804772238325652890413742174996401204565612787352509328916635368471435811536148981583468757438476070077194643356033391771422347139167610701145613733970666283694116491589361576239214215504248236293611865581236092273789464204589932399173399416501880427193390546878159733581391104165301934306181039277796689235611272339382437870748156526032216322892752562740780058790574144207082049049435054126009509147363484409827559820778555703738687219419127681613143398698161664480144193548234658556380776047383442884770642487061704966495448858271392794104038483113003022066992513363725995364608509767420568332879076265323775957696935311831989520258838670117948344153240203325040818070173433723531913156463204283255406207896399064851403409765890914646352679160765199764368240792927508609370697243452713097433309520749004034687095062921321532808988773304416461383865053137283828572145571969119772687241926961038451678071608260523853848134702289229064657265365890603722822538346243359583651126581857222648822732584754435665173451672989905991982653451697053817250514508221535167189395770312203917061567768946686138538288050102520184330921642038979542629929305101931794969862858215243121099038539004764582889197806603561837228532719641944209922659406045739933081604145242473941687693802434274207329551226809744420946311049633949297151031690733268526082354576451040727350510882650081544386671567930172710360502953500932429413639376686686660866261609054202572207856004344461769919794008822270508195552862955600681573924942795700794342267447382592020780646152049717624315586390306336660161093021708340136282196618774088650936966365303598711266193610481169095927567105636707569940226439935827500319494969124860862435608900701564485653560271006958897679715212800391330813179048197479067112042670637252992727013537513047534601552589571136864572222911409856362201251940483038225053325681710185657804140866549981844050619462794582893965437840950281009280488646239852949211803368720614989823765390231912655586103286295678995813634390508615682586679294449591944106809588639278203358835153649182031106121022260360584553586200533097776855388631288544990406183380542707663795153267237354301826182169770501710048615876271763377744854156225968407720603477913651539017319909995840547145189619645983094515557033816453732805231076421799473200715364471467462583988920245952168694004561909546354624328426357343562392034417482232337493320448780728939905296131890262715809943258159022359738130398331729701106072766061212981549660426396373917150206977131676112502611373624482790145035286321083922378287169872607844313036249056328149419770032595435737285198415906433908227063694259786825205231835991544742681173839101548537235415122754019822151395492352830531330492304268684963285606593222050457354580045026900880275677563741488889906836965380745733111434119039745307506739149844304175747843523434203306924930047459182758324046877739607114988190143231476486521069096851487504220459044305455921941428716843266994809584878543165359132974858210605285609867300911923542809909537978608902065324631037686082134162163645675583566522062382342157634414729589469266463154824993068885072104826543039847643700600084405544654498329723216662219849473818344564180729404595493098647654244079417357610970703149028266652341816770117157347125102117706569776244014788668719056839364333508042882088709825070120924182793821346492521218714489036163045163989939411897924988235029611575364069524032729850205366690323506518835531877215015734724068064302956937407669026343694280366302628232684092867783256601451092318709413032337502402848309120619305331577223454442189209615585984327522521794347077979558665125310996739137055842496471379296839165605502398499854500124150363944831400567660086403118250355198687612958339718346739876419922085079394122412199553285539333440225328265266284626421447211737400020006355404732943739093773052819056996507819525266449410835219509966232167749116807011412334677158379514110156515177321937369018178703020477120257206275899776040544975750472937842547194619269731103372189563847592458040599181756119088751436191756045416770272429644001003092743357621206036926268620317628762623006368444895589464134499149365201402060988619234240627469473614308909688289792689352435086002463014967783560891365034342807927188118423292130872480115650322850066132290159977895199283356563188959361620014670514500173117443933652051116371602841557880808705436844456604119827835714795409461535615781677998768044206389031792635756384023626857987784675993971772892258103707144829308033378877425699210757072978564011324796300582929477010699347545499489221544124796728626837443933287253884958553297286035664001721167695005870417335323150733213523582159624178171799995101047260132251413930450423417399121121079452461275580570230688996202727719203042408519856097173309242074996262128276030311996376612385599958067532689606304894113722038830355780384952396921655379180344027399053579243039518141188378121701551878418965192781759538286265944986564853282203833091904128915763263166608295433621815092722786980035912544398862160831186254095385229708518203295374879925432183384002018526488637376179990817363681779775805926452108625170840810463184144035548201003125099264663585599015262339475357544980691095652089969049124589311953381332520829659508334932333577442346150828298762814251991825236300694233591272869430223158455962047871699498169227326080451202178010183739092193803888287478424654504059404045353980369416805403548086503951426265769916189429767709306554314278054756846194980236846832959526131327297216314791074540518718630266828565385581637157447522855832274258821857199869811879163574479151795714721688830504310739985915641561498032821825134116020182332086602110411174423578346470001153326831180460615107532184021434640829952316263035058278766692551131903893539094641539119355249231733373902789820467700057123593277796437764664248805463948697672935161230778173485031754635917022081770919436781037476095840134576157718902873513261190278004668449540950553498830307853668764568744636202131874563221737851175145206532103826684004475576910052936254278892573014688136243493991026055672525331863518340265138064000119990446450182727013391231248226816276350470780520022891095128042195128592212869958900935934233880087286314554552271151066411692927712301367534460149518966612702993748693269846848717340581274377214095930633474106945124923414092116162993536747076775604172328781307117519376677369665004726723992732445426281976116268335978515900779360250247554774376496973122411884525257313651417113579608666297946789784208393019287426410710641263565142304460408280738698285463346415282519466911021614766899901792184373640106897321740791563316677440488896631535894911924764714997733876822698870345057474631091918733390509299469840995014405265476000344015732208982122378809857813891134272866009213975671906085923749344523940972135844438997612442514567450968151575173775312889860339150343081403200688580318676845406286454606190464422485687989378619369641058839469005447838096904241066421140349723618852695277054369053811802196254939766814965115879549676635162566284804425042925487644785148944423221586976470616019140591136197051495725689572060539804520217602794093553183693947367213191055532185194176763890463452602409029197368665840111549131790108853672696357806727520096778991221028031062492618428649951670470892511267613499699582550367034967443867935392925653410026556608986831693435727657249047083018101855279239954782126103596290787501479251505701522030477581282965624181087403443306502448108045424554828484992811205009651101598049559367605260954806774586979570363364853472728612213223664580771919059177295143001086395624735875755199678133544615799532060357094606199576935934431866710177032994849793985373165042687750190328399920766626484906952796905311181259415109590907484176602014611735674010457931304906936737607610200991220869476976641318958202823840712902397584269300839001723226951481168256868708237586111495062384033559944381559323612166477175966367196590934751732952152719726350788070839269217661658864359133903906186203800304621800846536719619496974050593684623874055173207115011732039681880192928783868729808088037647146770703239505483198987294342263603526348038176183909161590454488835975326224837558948959488780157769118620909583872293541298434012588138725746835897029657656494953739474024084430234471513852984643761685648367041060514534401088026539152122880592656378548683172639359190347789975012443630594690862555625562488653819719798151717971197703505609727743652159904795811644151607742735573163910690013259103412130421371760455479312038857580137143517130387885718858273661335701993577346254010738478272908908586636145692723246951958411311507336977304137470848873840092385656248066709040337270904557730469865043265298744309540590455947663828759840137623907844359109421795266752771896020332826846271807914016461375125179271436648551954277968398022057505224155303223062771762828641922848981650710078872722106983172764317330137808971358702262237607699176916595881314796580790366952869880148359449582629316635524433768851972657207577944918319585356732911932321168045792872110187580349229203184892129485857294256019724527002969090919193707604121631166790594704665979433971639243659940622359695785189462138399737216958858406314124652168577536827879962054686658126557474844145034878197137862024953300224271079683561495041534717005067076840796222970358371119921966487878832387828522030598331302100655486979991417362810135049008128006829512869719414009072124478334921731181713325337549023694665419054636737919668649314793108984455326024795769769389383210308270042412922106288067735500637645039355555742929595268115406922094981831459604538728589799850275937378986420940089520225111231868494385338786560391622021766265629735629071174911972873796922785102003751911474937905713837773192906259079169035704949609152294986616960697307599434479081990942375606159023384032313026317795561069800801322765716742566567847123190578547384947262690920373703385894302825988114580396980261346003218314717659168743555014795622172067445060843881240017873297977758811777917025356472721360151283935530571240654872800991880042352179588872016114414109037511122615446646281214867290102143414475123189932768610320892547755615363204739924867074369801929236273461204755347307257023387376829607407507521676048481369549321554635725782510627027564502669556705984495495342506484149862183770809980464372817888687461474938208155625316455281942448852457735938220780370947207465802835597010479413480986330409475753084306397253020204400418208993450400347508222292474513305556520763978162785446249205208226240959388913980784065265360893126815816819627462051150516656993043170581247025027841025699861427946239748253357507304609995759848946350412032990703117616170719352438587880363940715296007630974310467776356062663004582261563653584138357243798328234509191633137418165392093610057258477312883564086034278538876554782251098213141918763466148437650044283181903179276570347036873055062533239012562980460071802605550961293506583509667406946458203369827969077161832639644265275868959618837217994798358503102290491794577624710113909757184254885684537004756570814415249201697692781460210003548603785063644284164454087457096873692169074311848424346551188462247406548992677409968941334926491652834898185710319428832926210167192175409464592256513720579431450406375554463867516394851213619651349853314882625217559620120905496306361053751583923008085145800017141517525669198163130263012777433725491935824218373504949946542816732588236779485540427211119436552889081996202500670492896071951563826301757570524536751610898971648963723604852809904623092127430744857020495385108887831101407004642663642254556033738084774372185203069088309914808402549593257776074792232411105147674578168984577170977883769047409457968295603720254812954854857895654505426455282867246015214639664800775253187899150154701071198171468714137109801635786861481902163871260321636266310387590625077381698076674652098174911247521157670789232430012454996186191806171809994797294321005770036248832713760183850631300911816231570286976560334848851496743840195705863268071646014237204045037756545982117637659811341045463608111462781556903294891306890136046861375198507489480858260823524533804991187104159170503478810451985307018036281886725281752958574475359067781251709529172197114272608642776205377493620901044764463092822579746264633332229748769473412850473206421893835454446316410517644772214316664864440661562376695381645588159164948968397098542748464374496133544057043732556020534714309293812956274991510276825522419558833327551430422086388016879732149763725213389775913180920367616140307829304541773924360601193292419693378501101734119163854487296488333613168507215647295525848123120807134632500469315761760003666026196817942903842979969712450283469806974824290590359725165494372207669521271032896095278100269226720298052532521832709930703126564878538297094179460494670428681121286471127648235051984543131826715816394015134068155621671771391069856583620186944245817736460197077416571971311997074299095498126236182379725255021067100409522719834045000236900263418302608516442743074621845157806064491467969184764997327986831052733911680078588491246121933657553795476083477830029995143478018827636947206313174938019399983305263556922790482605161346375950451267129458131795479617185364429678258079440914293476638412419181018233829882716007740574931615659188541923056286376339147732135148191223765436632642283856920291632149788944886061785461934856507220188812506839915619268807885911909381547520390775478937541339640175246415405321492754100987526619365322389607895738294321062257299072663497859170789741334766099700489261088404988893886540458785232032618916341848826644574626258429045399876927106834633044349035967488866406070388027945218415697764225895520231551344366271787229345954290942844288432771181506844781238401532963824334971175309417704494705342360361189254862969080298030048482403620058641781174439384609573885842323285962543671432478891710737626899597437199559453434461166501788740060177679172419891379838611168224071666760352464674192525584724805608216728088431221460176956089424715537441982104040416276277371662860882830067237757924495434394797731053802672373635564401826980296453718218775496719004306012348097622018068785371617973651133959921463638191297179931370490105377802455164127845144641124800428180091027928774288995916695202963579945158389152913463115900864226107152580817772111497115666540503316770981751415289231271695402228346156750040977583967144243118432249425681773316538791286946782333696745866087755128360658058977305756779132708339740979258318157213798225356728723337575585208374857183400449956933137816232081858149929096649581736602421145424201145328987884486433354071873245218950903001370592086218251589019609897275395352827321597151046993930773834019166021955304598150612995525438204335359279902084643091472941249477488137502326469520996058115038521831092814683626663263950536086150230593053978675877978942767475850805718101812708315513773790860830719117099731064145526945415809291800241616773489424597163675543454153642025336618093515030808744915984131345233492642954982190765941935563910936454509899335319422988543897928628357727110956815626126717290018987748557060166716448401488156254736783104648889891071886582660049727769754957664743700038433774529510723209814187792892967335709560190558867198056130028545891280647282846453983567141688643977930369557169848469340773072533977930706072927761507346880591021137514445183860934030141197070711626565436232516120706547032507634524276909128408824598561341825872157032421979374126034730051530568893204561273272364048438971716296122985350790705379354451203418098561298873125693415358738788988244891077011103047297277389202755404525828815414607298128573260279995280712395222541430808800687269019300954199563598273467151149408960372318682960929198069620077387647573463236447154195799341747564833140797622757768957106315551196970640187132917033268164460845966766035013625669470232714575633266260531582480481055905924137996421687901469692787928450810167767009947363695894103597083265001988484966649366325260822588543883883854125654743318252965110037935394550913307712870311149028295843299673228835732334383158203871941959816758351951472024602214726914214641758691948141284674115232582318793993172643100221951627223816514906576695840797158052196404908710337803530297692649968855528887433205234971200510225591898943157709876819958440577031239692866738640598547659605709338838214785736395740197521329007466714717038753127857469482017787322407900948633334690643990746415713986327306619038134626257357655941884164724287071538545982650577989428389643338347103592894621210848276440950036732325610622993714562571530960893120964310767521090065187512942482826357703082642542007573931013721911860903608336674407160625943429370915985178680095988335416053959267691551108564820348186305040146245938762367606156051377757770026889948105752146853386232566348568690021987830056048478207343909042457141070028408681493781984336250188497486744400495862733756640226580115201860122116998095787119595905805348273336989855338089119641223472265156375706482635132496071927677977459257202934287862343541955552139982735098553223229107693720761287114848651243439890220403046263933802220064431477150282979377393836368907503244946031249261399409080390689374568234701363673127828065630095381714655612736596143637943267739941936963866599811546363479467134803904993113866053953281676389024209350729665109403890092550611078187713683823682352681102012600347880313850581387297931676729098008545996538890110974216911645357873160362362386977588898641644947882656372780701029180267877019154039927185221018479348801065425184679809335229092693741430021637490457191007148327483239510485375759569571403274468744927697185717580344473025436067149565396141315506771898039365498863471347586583039605704445655903771006645422821692747653462578057530123370351537862983769998169247311777190298949485310157711613226060264701958737692257402031565243441511444216120780368977224893178944942618644849050100097175162771161065649085641316219267156331296372143438150716840650046832628683668422656750937271423000129290279339869722118113093106990880168266508696292234859414513126043858316487512254116603602628597584354466570578135026937567893910414603295438068618426752658181987519825303696254809363416012896182569030796369854594943413406701663954430670516237262718820648995115782159369595756708460375189244893619539317385225318500678797115850582652987860838908953084536475081247787901717832524980576916646007401568881612163357471822200193584953500663539246432645507923378159919834834934720420214848228515979963331462776349525417433460880107557547291897391741481959572619633992048901147346331330916258602447176804763459561423625595435879643547429511355639243883929440542202556757069400052862603981950592415924250573751132971175796398521826641658194678260615976237267250427019993102007979771855512342475219495372996305450321391582289655832478925672205635606914008457563460298986136185781115429693746299611596297789843981067867955587047416253717461138468230664456283404476335875340547634176539223706110396130750073421396066043342935894727600287675313377263944203256081764679387343361501584477577561976058482373575329259703951803120391576209302218659878731246403208333918248752986782680832863000048503517011887026856115940578828495995744433875730561690550273166218404951512472505632853167525524820778396592192784664465626633964720228560503365318881107177359415098254767944184411122048059937306132505023117710742000157700333685998985860083424970329841895461568310605455455191872852243951162024825504589775083541065761898440538177030531906048822644480696734970594834298601716794570205848708965034718071290866220635446069229197075373573428916654992180417262740742489709980357873356740492028088599458468283879140452924396504094384396816563128024643224843637982488604146697859404099970085003252264767073372274581723863100682907774407039999963898407010127342352078425224168691072095181964334800102818022204625200794519985729987932025152050001935902866319818602848182674153664508434345390173634877411547496783409582687617888507349003389366663587180839359839002504630996850580010245810824816346680529879131168445693966933797716790293004059223670514850153425935355708237987683315464985558994242247453937637566119490375680620681269241161887774756320765092898907451389905089542178133984212213587337585893043191161261712232049784891234523522057093888780777769116923596692917302787038353204560031827970967272731643718203395376045846560978115714024393708972601684669969302748277540586321190326017245874267070425127442241075133799904473682736245268663602074500781355295518071045335222306850571388599775439896701511021500180398829087055427767721932677423536051466991924896663662977482000921003505559652404786561688691771848714076446806509923709194985900259820670932148364046812382804490941885556362330023890893803897500678102397267407319217517312827979002524515005934669906913499937440077254301003790223538051174016550073201344336300325203019639057334813043923835488610910866481166176504673193613251478132133432071556891549593584719484578876036743139230171451625337887862933813647618198882046957650092202175629531703857055360278302996589491902123704775129097256328845580896440915638126705785758150071693867208446412446813523960057924947459125899621559093092534148498570753039988888314701221875763622000804500478873740211653172118167012878906655522915929815782651792985003702607676762422247290238948333100826968847533905862079867409747006491958902130097391893119513875874501107685111013836567356548987391634746848464995046698323079854305055119615814354459923032645054415012332626776640607666495569379206218622876300313328798163796908029091979233040199607836325390840747659247354702477593305527864522441942628310411190775434598816823116436209439188909761457861585881842191175479943700707500353194808954430960786089284368997581333068627801900116413868301742082262491041038333334277835175273599239279744769025939675984926384610954657674220828232757437994938887875220097935407754928570490172367795012121493127317795222321568295212134600944519616836163492808744590138306232139503324064249629023770384291592584398220295728337484753182741260964848552132334366078761892523832232857677741317230535092173128075392796451917477570066895228996694564484099575089452674568985999790896576731682140374097467907925522261233618897732365730668744028569886232429717442235167155954207810217571939990685121439884532797486962746068760100416160810253942782917932889679068823516193629381303118027653458813446004950324642381312746920320070678014431619137544095116074487561260783835160036270325295247087931855594339010299026724433780523675331716911206620530429041338965065962369593704538819019804864262091317729775623053589019916034054333904114684458750083031720666059384352459936525732546082281213918441577564636428199942712772911571551281628132197200653540509502589159449048337362809563785450876781733400075415937934621552008118810291325141833550872465847717160537915792903292705118438974585420011303107278498261627414978499778560646663866259181522250086898925483389017178782828342185267197202734582522455699458482914867891262672213109540229039267900424356102448009832601552665508766923954011524947063250590456603543468374020412810801390493926882261368565245023215841690643625751969170772573048885810202175922438072435702792460331687803644252410701199704681804834425827363423506762046333410602448332527292279790325883863522234008182041853026299232953835944555152961470868206427134737703436516557735396089890487604740580988057904165310108094405478446422774918855094675207248218271127905403571266754814709160901222537308667652837066793012897262266582690461428042126074770566559102391649152177744329170200198009729210766958194078694368370082917321798097677860468112008833360735494226258930894289555110858128145792481836679811438566560303520096293057204705567903270525958060529492326233606274552548879320314414637765006034213669032863340320250085882640184111050748181862193613517854414741075209654988081524792275774760225468418431120219559796004053838437313789477968319325586947660851715134257279322781536693713932910410616419790478919736258285967766410744966470584740228486195980081266235169146972813708459325446084120153288054347945296979895205403910761713764437518524996742174735225824182153614263475515258721965403765815655463099815487047454842964846610998211975328219734041749180381945595893529457499992440777997229756287700860986871512941791704215383136058979416570226950649467650838743159103278078328486539641227531824477554107365714577960310408530367624649605001283446236299966122075521459388176726375599177093635264738379327672617253404218246300564632886754994339003336173827314668433149110808562063378403967790470741533065037885357783575709430072442867519349373750485892839219683586077814982072257901412196235327157943194579939955368903611199304273713356945289918119313915752746213122890890264171104343357120350198341106601864315701856973671098792194838994945439394058633393701910826925917936876415335351611500635606962317319102155470023750668829137956910430030725549164256321368767165930545591272925702788512484131822832159563525654674564198145592540430403376993523564487432027001043697780303857739516335270544385797954876784360020671294012219744570725432221414142546381547947667648058797214521573602099182541340998546004183652965819180440724089025281232111180799557581674527067151049980862254688468666357895911274056110949903369484255323183060498597318567570781820687944543001248143503787846588624282120743928236893583352582073852553126330767376415182258790809981799788275901400522585643861363242642596543073928414900542664347682931971369119945863508358123140152221462574752509682778677224442859560619167532870543685328501797468201998679231338254344808332343334032445634841075687412015248933733531262487346204462518935212136578029405714295701811943816110151192485634245277609114316843177785699295989204140213728577343053289911125918826408877194909927500456979821767009191856524100285614844916999173073112053130087469830963028241076831762101090446408210969236678780219103437805261228784920461150854101616765314785442306474549819466701647982694458216119488563284519365440305190680757359558973900486065318545914550405140660792338253594462375190700288141137139333186118328539299212355112529634042782465043235430972862109733606790724778208184047163309374870485447707532237802627875620791697335897816670137875688637748620413505608242696561697315975580816890809189723915926683048014340440205123056206930543404907168887731325787329550786741796491875807975843713459216755852684264098547949583131070801260286029868590050250331029438262141076424760922581856810412761743352214772788424272759590058662357716102226036190645159856750687671299893936677254553355528906116224084337535895002453665707683496082304351831025230434813918095826683654975370739631504660676982963157109917482332874902968849471219619680492163211294403256763751820820796332198079592308373250661663728998347699720978549671446029000638139610734203160364253674438172390358708387672512988742944615639653722289348211731792354225604806547650904077044394937012955904383518520230674945697661289709022274679333603384417361478602133215432189147385060309070663804080699718561733777177090806568738641844286201747010040587184260765735192483915228495964156156843263627375152939501190778112892632606584913373849656399320837691638699894941003283683701588844331402761187037279992937193640977151324324208812141989605609135386682620717785285626600019037463293342685380012005333409877083500642699268176782937878780097186655517930924547878496003145374725128017531316999075930695031011528733878409466911762130108686419225119376511333671565148962710822119663055487065839860752079456145702883060740346481144348059310303790424084938595946324574159476042383371073115793292978035214731944042974193658656007434292372632862945493389820056411555197000508429584052376597063200778452743448690032672259905666136763285963513881649313721597428960104870580044785882479719689640009662927835218933782587163254458730566457781208433683103962138014869921555202715819393412943645293713153131025711587977639221166449455367988800477562977175811228018590521129614932610892698405700297507503297330568580604133807823440358232729111080873592686703690319351378643290070286700684309986862424468147384582199728284923247668583053100844275948765232152921781421872027984514788266344682010151578848736653056457466003698514765869694341578797124056446582330312654848184900304418278129760481719886225271294360420253118792588499343989444405728705280563933181351876924625983968847379354481148132231159605372538559861023754405995842270397072557252302315652761561453077256860168357559657413662047504169666982420589212156457178861327510718819833947189361022208275372244480510859111288778782626601035625455166559489030567931044243349938831101139236263543139756025196303891817826025164043356481666845049507685337774406779775966230798975217586043984719056318282976849798309570003058231198860829730046898145495813400229853542923009092532051533444072108073160327441849483911715570963614333456569559385339500063614250292364198314167892226841115674789305584871671580864638811100162731947321656770043695009624083135727013706771549080380843408486132455604466785404229381318919865468654733729244861428919587954328482745640850604628801208238544075986947266822055115484310750171582986399675044283521671810571478993343897269641486911453177015922736808723617294769625481394866146063675582767962096795123997577354710822587679140470535388658092115837437244716411099212112186818367631678293728632842066038458130392400979774182779292903999760192383426217932574929731941342455143619167319214085287031866235776921879515092875032932412980770542807841667976283831652423525081643860453752693905254725036818561441796206809270445201733743996487347721019271569663609506162996916908126231335399848199725752791755145225490141596200164055867537066186275259023170355141939469910511509669792151758411028032235676646852726190656580031534772056902746870141631672430053953216942042346805541404801021341496242219658971127096815370097825300832252592697992236603267462683255103877541491619600009353197800073900899502231551718786212177963482015536250205248981074934384405246943189820259062234478354374895954010928498174116848944875031727974809528549043644534897285559429207032865683995230491502971698123525604221909840558689427325931939141581726870902221782585351566654706196115502671634631561930055850268269631836227342982574719956162062461791665543247241082169584849503869666967392449074169877925373425015442410680579198697167976112501011149067427509813544302217690784529141056914055495760128003945429310621941551474000456239790166688765453698958756373142500215751077647757568470701231487915748524124017848999004810603868661830087176858640240309147717926899733572174316326762040273539604706537088025121932168324931407407839470165737172476965721368351705080423044149063995701956698809431477450927344131333193325739887992420324710379451086974721177250388748676410461473887734885673208199285681782405188258381403240512433112256678057791707028044330662767713695203990368578577250250141781726451456961770336627234708897812692783557104422213063402955536515416043585439497801206493921540964929595402180756601537434140733776378030572277074301336074346187541775482365885670917102296552346260840797884251703010586069125074652885918966607677587342886282265068125638989082093266156229772361806402704721728440301171615151018141876829042752415445027878319355815414722726988026625951801186499738920031436698715689031686501774221586055008686877710730224279676382871538003328245259843357633913151585877640483540729348378579605335234998389267944262004783902108620748154602139150793839191838517032197088854326146932408221427755365354852558231378140529647800051613139294969451876801940381302295970858154806848878328602797711527060266078636401932290967051459012464396219365668613630141548511922486818014947676610743151724786351285766233278838755899731939652661490995149140901636131433229072523188054638970864234496818401521792550129564304643886220611366903587988603077325699579519750989224968646429767473979189750560472328542159713886989447343091208909123063580739033252839442300055515424973241886647418246883332401794060447745425108150328839617433280313702212702512430538706554372757035002249898064742518875089929588673218522263988397780324016198085720685517585654896378105715920213072843912792813778716598973076397078305713363480240915483169755335774689003861683072532490382934261310414171788678396882479446155317402960873256308632818648492164906498815243843796313082021527975269049857431657363005536560158266525419841685179384889185373940786821607712421958033271359671803098728056134628269455077050891376466039760917076597161579961772462197323353814865059247647512314914318820443704239581316206617571326666941060863117381493640400189166377275874497252118536843137666056004406944642051865301904259748627129422449300604449971452997178047439006449759477365190072970101851942153042324225061897524552364116353734623358688627728700423123833698562958767816096330872571978257849743249858908182941307758560286465982817257408166957137463650841818438645671794897445251471096992894593368875701710244883540182828542533300534391405981760289621417662936557881327002742343806084640229835873095873855181412816017915136884967296106315311803308362260154000028630230927167330685971768059414374461186071051430637296121029508497991474266181922565967687475240583467866517420567734691444393909979479164390961808767247168901446990445736374263424902061245397011755957117010767941416022950456018493234367054821846986432261290972578185452542574090628846858937634298931108234207439638166560998569679774669325734575762924141127828436375113640584784278328661580596792957987720398148980735262031206351384873646883204898605476756662080415373828397415049849425806798525488323959577381056811875188226304434862435445571335349720308821772066257136711729669211409747861428852700027020755991763577079841597331987418480457090797760916509444258498168229179411808853734831421931617989362998088989840472915762636975641090281908148511950444458382545582971485909839584242890387647910390027825617208211771315960159320025546352175074802071154496955731038872715075392867954821000349797798098022155689612663533960404695310295249669106610902948017975698987192784984029368112247560302214538158216557328563928968198977482933812140936641425659649958873681703150091154273632048735814465178470207612088482514916709917299181456222450719044136253758472001823562512076568006831917464603938176855546656841016825691986422489216365864175116398978860353619693984315558446347988197560484473840598771290221309406952386299037846963233484005358164266397193683743215792702431486534720572169260239977690503667045310038637480238921896256982507862710787156340310036365487304452429924369379316137855896701476373781584230785282421213375517112571541029526467432278960498783134153978743981986582142587843196510086571403827806552784791122487190575760763559622226356983541792028886020656809154298483279115153940241415530496446386844870624006254695852656242183635559737710031849226149261280069428958102195883563348077753803880444050545673889366304297979148683046181103753362537758633443938963290121453222402195695960736131391778582685273086267611517649190469493011887631508391905414216100041640686493556685508800892881954669971170853900050993257058012496929680959889737184507178447146705531662029631439720713325028118503962970625997460740280929146069296869320415692948914573072386210004590409705231264159311649747962435233473232151902060385975010108388391356864343592826935150302526947064053123989615520486092965872420589052348345061866668606889576801745207478119106084519632056995533957660425268029403100125485952559666838864355771915103138865466688413731898522294365595623186214763174506351997254821944740342510688514754028583435430378240261971497870406408230873795338288210987345546786509820569866448286202016602098360495960085344400420384352405179815782752786429558374891146997149251720577151106550790621348208238245676886104886994194507220786811458725696691615279762245695307270558233477173250076194294807992492585997820076557869774690708742625732003906983985691841762212694278425046642115313885369995654375955114469792185604310382838570629395500664045881468308414603008250374870629081696950147770178156857835546085756163767147105498937913079980746476037625422465077862018671431798255464073400514266158342420671477860673845968190475981378684634195164583990359224767037835534369818038432873168089228436949391255052313215463024676479197674299725637367693110633784729342927869917717263306328499433043872509580000246941148785083231858777159264437731608992791287219278978090374668062440672973954713527173980518996974349399042458818351539279375841162876680026138457634619226664304267604568134546634933409127463509980371870454141103057329570201206691982737338429646823882397378160290022121276900005013635004688114262600004003030408640207657806502737168970190028928731805880288109798871544664981343639432848784286892615263662567615603435932110311625920977163484825809934401481003016808418735722958611390882565752658917098033282841843348682342119238570782890326780683033293065738758847226377602748072191799390296948985126482954013536310151832893697846996678396920956996098258267871563172033153990369971105394847041304596893572680388925388255738390724386774672968776837918725367456536162022035086467814452016529611142460480864078585327035161219313076777378013765704355803039360896560671478223002018843689524733992335641338904189619474069441588658399965621474307057984738447104038057848372199188578724620432373248223544208643968464838005770163089879371173532563729099711749218939892867969377234811300528609880816622621833716843874588710115560225748408234580946080776120846459595384708157456748071081122531297136973183532980932959687119171097217535198719905712798492786241995568715664301167313819062549058245984118581072284649948875013043103112590459487325240099498670802595592356893580280066105303598073436278507635933192062464972686637532832851886788798001430577255565818661429566632727858481043772329399943162600759915787631649602971927603462126953069129066060012508814275392787087219744882447810342962919712346764232207591957049745893020995525892552439741231026595473762587779336935668669871012606644215849590440132501373255717297509917192737573761008308913237818307475911266796702789377556321695880445578318253679186671247071983658298150429406048986223705236656996142133057348707805927777392724648122099838139260661582038206022101130159551746801979110892743532746675860387481098263982736924848033507830440080166061658908536724736542794011896365755948573213806306935726335325254663023495951663381913887346342705194742287113005884444451954665423062825827541895578526111550557031431933676282236603986709245088096283065477708297349236221617228782636474241068131120016336382940168448302977820099642335057555907933427350779143453764706695323703985033194226960053137685338694967277734144988593638999565721739651512994087968546788366977476630610786482747975786106608937847794938149579379334343378390925815745720660611323747365130063588602161184786104019826337457241882644378064874294271080638177905699623020869811745622838557007216535151529868313403186320972429900530720817072388083863097637210253207299952482585450841358846264243956059003335491968907930899599021559339359938212344024626665198461361957085390736558073106196412071334700190911340971484440263693316326015643518178352887901936708290882039497242450836425902585387580563180108000722612748560246952204108164745404265509653172826194174030741529973493591680688848550275801375415323944183208249007378824103841937238375136765827026066362360807220524021492283530493472000706834006864485313799561332609356846079832150544304115001437153951579545621272366260784791261474693085527056168241464899594352212193304364905879677923104443028677578728418883973227300457895244670645053207144403631778049017154929743524638871364181772340380915672261298269589393145460584969817393430879431482761196710079523590604786770475524185791509598690701743066684178033187158579664580122043090598003321525356400985973536874076077664054278323690574326143488368638471009937441614586698531074428941260214816989228480419813842771221415519416963530468120487690607477913395019534245851657424497813067258941383160462519786747725091723650623367917503598789758176502783016887296047787684844720852383556033053147849568771492848667423680238075930548290546219646756259096651806915491284370117382789142028862612851798095339749956749158755118891627953337110286161886973112631540879908160146020129113963213567058983485529931777421119585585656252385308221039094585613020314081870420613204629783274715748874906242217531959715437356636844142605236910526925563962513157559491750313691177612370293987896556694096372912070970783706389278870741757362872300378355072070876327924705992869229939177277491316445051544968904794086232060280476925971133167974629081860991165921893663360655606258360160747141877266169345993344194909168787443388028857999734796955266418420828123719069402418534612614324550556735139774492736680378249306562161013953006894619429026111288334425219894844794627782650951060377590166635914646187271241395509410525374782440793914088096860752086491293143189711313708634776190989339122140353828629214851637738240497117967424902665971839586135972388196603754855787381312805941547176074345204616663110438170106766050524664260059492886619835468260128291585692943011223238921118685901855669838373643574418669524767109670745599960087452691353149602307550437073661764881575353016849650371521502555340968052776643509017063988177259162898001754959286269592453452521753911601751003867157722350032239959626522665111794842295810096300101120991204280525616214972125885424903670050063177800456512426185072007754692297650091093694722830324482198012981004203249439033084200708188682311020430701591643045125039237267448119172268344357757717530847128130879310961886454033018454728641417249124737520100282904151034000913253778275296381908603999357709392279050500373746816715408004867898075442946396197308316512517861378606958710898223881009952244215394507057373350125519384312101942716166244059635201468738650852141897489497390635776590855505418941612606559807634972978411022002228936230926260845858410839667138062460084375651020422735866324579062131229241533663390309669539291857295287214928746001397232833237791784320342602117236599004966233538144388454678742161477250856428259569213526870674996791697463263069877384428197446165414799347908032265061213935041318702907511230352067572095557062231207149861624352675668031209562074775452219504475865868457430975336944349915865596442125053713008333761511629380042623972704033779537927551783585180546931933824127279030727107503129154429508625221182931756624550203596860501101309350548145331784926792266192912701129861332231905077852618385874241587532338035238072178021408508202121425608902924688081400657711461175418738730353430064508924615599137222946895450058900886763355058030785435063569759776630718044718292486408254939318577518892330219215083162751616622230274850747803643879927558106738667212592309366043043471668503561620382330352114476189897715327789012861825366519548411888865919774984702370557874779334674580592171671881478141290733796329859032170165655476977631483404453296890035678483341888443301069813600844620529662658275650215872849285715864469437005053942137338741603899886021428465495069252985798817292265511091564023895978765119176551882539569928544451977306752339832420991502361153399006709651721987137665396818422298312537095914850501071548715203614420273256468620232530851135015233446440415776343644377449301648453926082101378446319196251372948028110746620659895755492367027646798065982584174566260430538489373203637980095892815102288581674705486401753900470864589050868754266119871000134615567546456731168961474571915202971749505313010547654107177704631212092807377713226311196733702378735165137450067331523910816409980488974391872672407746142679007072742966389846778745122826540666235875679659483561171370583359384088885038508696280608567757648733700749232029584272165949579033268060790241837444081466069023987902972301218568474538687729774091346727446651161103085028042819844762857841385121570788312360927576294712605097169792921948884714503809042483333902433069755453775000149925799846757146755813596005932130301267277002239865297143584638852346379064537214734429479703782955219942900308787339519698567103894863071573080938766829115753231574638319632790923013915777641737834214599388056751893924675848568216638987186106601230205707893580196526712994806577533213865336942670113018137842260673336229393421179041435938071423362731849457352448541969417132980391424490628221623347166531017477694083879100534915167432382966408711987025624745531585812895572785123310607258895042719765577661309107864462348828890431359960349582398134454284447970180769264945895760471893174459151418512557945615437052734131757630488916314594653098553054762409136451876983416455976495347225169417351792589132902420531806513725183391025259738086303463123536536860168308056190781613707906498259382282993880447749683211777585034369100103255540554202660423625683368731399369969508324038391114797950231652283020603559869379329253828354100347875122989172570919176218681754621055286320568440367198719004798466365179443953785382661495394749638037036700637049487964178684535720655259531373159049218594480926791422567638426339729438813212789376885949985691249545892239412970463058702422539444333371874631337093943191696929858329219490547724884302218721829278440744367823183852935917599920913225838884058686827393592964736752266040200143030691112000320227717503630546542032601366781893600753307107270208604710356961917362122866764255502387032928079536240558621112291195472897515353150334810492193465063219068390253955744636675323746746018607225248649531756898161471705447494418132774180487006553305229182992069299204816692379206474651138835948370531491125195962767292434404873345724359896311855106121891650897117015131239268378153348813736780112268495653041807558337683896290166655840091027595348545913594336081563920858084312134049835672345366313564199659582805239195797551584597273563134489470629468705095196238816945243323565236419362989511978873996299852433741753326831108187582986434156971504215055301435953631165281110248291137494714691815145172515347176908986748455125827416904094077335010951107889693761920714213946440501447371223221944451490570572101101388606590317314156008194757860313100537070245277442520776324383669451588313600468797382003584626129289706483747403766715789470043143341525939385499810121211278610798173635811305604394764999468149323001621981366627563229444504758529837581168519343561738796055239020734147733271928843981569237405943345752376995576031407112490649069664411837620592928280938819721568501912786341216629259574276918532975174563269871655886246340709873668857571325697251551083572187127087771630455893953603349529863170363165859529115371622695187780960323216628451466722994690996081967431971822364276739038089432149372134445689741093921738365405560608413641611953975376962669497832498702800937229944078100098843836566340040714819469095996282768474374316258447061353205115648546830886366930244747053086551233882900826958376699040847305624479331253835965852912527970966560511735969073112066736515158828009594586941278498947499175380061661150326597460596296985658104171431375801858587937808134957185684979723097929038609292301721146372979915313848949046735052405840594138688218799714020086284861479081340888269931213629813009427846836382451119619037510146461079294093312714213914268440762231955310689254153675175343878421816941879289945387128343059536574608747115510809403095616566444833372239670148743751928696823717754935178074242228413882719015920798412681359829035699124945121809640176172475582289536996611294401346117986985722564945700429692050475779692531153861509303656043516409989312388417981605151132705628655872994472098952167385593020228932116769094517092696998602022664329325931578022787824112745132354855385160662535604629866132677182285133332624853237308022625718001003975600322622861761691278108642733504248853473466533324737145714858230916666076977599926144158329519288432424923247823022956730550986405731940290196829004230129313596253895792782389604167400703487319770884730193479043756479057951131710443665910509097959718083855282926010732537234907471822270648969582205312693499017597634017953137839863604556606373224605221314014673919549934402568458329768083756044325791652994617902430528690724271995603226344917113093905349784976765802482926815625837423119571636696301527712735228844327907194095626565406207378712513723211482336630941213644812889751476061356623846009896445562442993409567263407731049317629992840867983188906018421440971066850905270829299593249420045969440640553191143847185756821632842175673625960789902614857046271394082430424091807416863420383622326393983014117124893258054837302560658188857649577846163034845496208806332868628733348535859254491530043120538476837947041690395304337843498660637219085181924473792757360826458357120570573370762841608743242067368073160686228486342420452758447488800723138527400721776618682502287653520458312746309600251085579985165352524166493401630709947079096519778518519745397652607516715836434324517459202931007171566498615941289191474648026495952798751489775255190147245652869031987564832947786689385171140968949142135457675481949255990995300885556030708695026496454030255639164964208354616390425592044848956594795522429569973587090846052154561672304038252477428492616077875843096618710369147675595686132666608703010451380963325100782474216343291748526354794175129399053027498177379870605568097328292731230886990737029150943837262006211579086053482145815864615942323511937154257135595183243585437092363408073129413229133433132772779999748799139204923119929576929108578102481682660615328126497220785045389126650015664244689969963282180285503068020517180061662269291323133037909311168679314108614458847007295262885187728054418825890974312895211443913988956129981847833527435391451675934231189646296838518010225102687946426878601164222524807305958455931818463530130891016043967596541168530669469920267588388192396065487575005444969659153619555693590101841527451776335657274112492090980805191662142885058414840707232586694422291380407973917575202004196744734357653627341565789748838961535640960607282128723343985873842117657998156730485892851704964271450291463395543147002352998281786940470110464897716840393335469322765427482393876735400804530408148364934281759796185307526440560704655147096675191989015017301499823870374778919039916495186612076932569069643089196150839388130566737393930208300557370791878363384664666068710699998184867728775789212044791690721075078012221734270243375049480592986918611445566302622819675702372898972232237603890397308700933350994811717538426991024427298648734368886941807951755799772860994520831779542819544335208517912130726508471530128819713535628211247257375064808769891991353929040568947419886135812296210956338369559398595695879806716144480453490974416381731489985466628480046813587865645422279286999965690465572659351774546670432963404415179173568349803936844614782719729807228638691923407735972411073294646386662876130131313293878119955186051383875647120964656728378850249646368915668078872048776732944187918706490858157503039803082563107722212414929384572858567008840538888247706577337761889480655430296790061988143127279827549807118690883348546148278263586334013249343518113438009118818819743534511891851784074780722705057155114367577216177347037039426889538602656759210711615581784351430237403030725323561184243612373157148371426980799746798192207086030028157171036302497924572710212055124649268345789468717698734306063778771377447713225900378031126239748162239554362786375876374327816703629174225161224002412946089879191224229554605745924381850197491418317647240256798573577176638222128128650205389338402837504917378606730836146583772327204729952536429576122582036116900217020114607647282316563075938182240236927768987511522029898255622137979615945453145091722209141446537383594722093180967854888329399954802452667970880279002688638756155147406229101787440817923472171865187753475395093356457680583664930082955554103608486970002134462683194383133724614504199611515576800277140631192834473323890072242783589148651670282663921490404881480370359021028628961833541644877540294266912037103323078032722063352182978005848495570500828274384705234580323350507087404276590908517009107792575489654623826397416882175626227261564554486168287068769245680271247209470054190586450081197545025134859548643812753700152927599503009448052711748539324030068884888346404189171124327948701235019725348250954383192107772614803128948378232507496737493289186681685069287496181862828513789815889591554883137099922621374638413524483867567831426233088130568066035575591465992843506619260941226698261819919224568248047678905665234740031552816358526801286385504727989777235437355088228455295547363530193040679780420425552061131978665667016940470032016413457878918377763070960791225810573531272061933450406419270690637751929422723573648294482256851610351739857148609503102470436469864851966742757140994034479738944909516401552826685179760338410310789968099186834242064732560206435642902596846059760363353054356353876342687296782590053292290439789271685208417051810337516153224136169638572125048303627273298711639721592259421962632267202731438075345065123194111760721920438895909624196497977847049387903537125442867906237259962885043437187458605599417902706879280511413982735096178833770365914484852651360219962120767208185605145168387040424388861262177226815715354178083881250106763689164692695672763730796563374801452033222819340511254240532720437140553685630449556022824766441215930846145752814770077737384037893112932533592993655068257179876206711332989361507262868460612242116452894656338574413954053978538450800106960615130792682230193029357590729493538603814708640246187048843812027164689820869646663524674805795119977715176149746252815838298511366327946017725378221842579305886497191940760847305386585378631940307378858354791352509597605831873073354909862621980875675889995343612883073480518021783115886503151839567041600674848675510127336483789082841742924445830764317737607415599465614240047880592171737149773456115269172482173252605337478886590475962312853596059051311077479853219896317963005328773763993564836194455193934412926125854828032266863527328192090287935555938295771602528379074691249505825852821426635804433086094842705231983934219286531268788777021695805507425942160040410244004677912154114655632867933243955681606965407385325933242291780241844059813744105455117976799940352702121207476351478969212011002634121077497956354689373981024114421021213803209492428379686656869432856614672206570134822324303921965161414759717037982220904709542765288868312777432886467354480518857737638383662449575172676552003515888387163643115826363726710650206413774279415518737858805039605796925943471359885167766709711310460285310663166480009121872150795549750805852903294813031434334772101027597484843012882246853714348669045959822019210844606325470976671977167520095238450253160969319680868431283355807331683090068568813450314458899224746031164967855067163477405255802412817633467803748111960768338762518694384913756895135271009294533636623708898319319680547459232427482614473632879653087827543588808011206416009235140005853074310465199530237011358461719505187412865639784447654679021231372779278881558616693746877404888523894327588524449561395922490391975898912227999379483274091749629677355102293566087070065188854535459250211406134220906664901682997173310216955917558963636290143939315383602715408950152717299046924528887104849415045688133076734080249723559105763177305631258606800548149231688999524372924466447013724798540313854926105054096860435472271547637062750589735885442507845190575806284601187706775505768754053913276733343656091052512738373810935208622658577591582818161347794379686196575860461953292847894478907400485742878869758728278221046373770017250710562463486867215778241568472595721746462493095409892318868930533832227151423231567321376517121749208946990508819404938700760180475083922398479078138474633544815444690481945277688988662954126937169197571231363421171030056921921253946528390408623285391811486677008878712865190993176340436592837729590111203795996551149950788532657837524045647538510265265467343196584666939603859862094109522229446109812453959626547960292051194160275611617063919317063049036578662651788152418648817276992081144048271961521849163215327740835328895249534967105859608092801004272664073538552896535226822519864110986690465065980026735471796680653202240101426549076645344049807608712991081517799328550154450794896550519819931330247688718164803552950803126780862775287189720918647246149674890606343386308860828545850990473556859063517698892074608517699005672213409081519200754453596853814623848071349078998761088370302408101388898775493935873649735371678821834498995497475972820132873341935969857427550491230912542029123943298007930739363995461005489849948743598945963724028702140116908578931967774406207651365182514980753802948678807109401965074181850329319879977973912800200520560294219191286179420449731432555070163590082767389061395288638442517947569719462473291138442625296451902000774530769384878136734256037791834087461685734969585760502684704695573499059664197502086478455534452199920338220126711070890414902387278859147789109718644853644629527494029926245100305953801953455264466012984109569128441662433247115918226907574168242128115430405863514210609017918238773697668793803548069618601041634543752117391593433938773242754261817037287320016989592663571124600920544207957838079113007771501675741223485630750402198178174432554953036257429205360492465462322516555870338772983581510740685559417997417000281944740352491513701726317418736020690769790619921047123407603480771165222839510002577725017431174991547896645905294089480693993361295138523819890940331389882200651916626878873170895843721410427250941535599759421212143911364938597609551734018732327270689317469886604162883904748795085143151186542314190567869407600218917171355886433595041219322848291554168836970039046668175082667435386364885726296871953558521060451304273815855857003578413562626305608229720923482358047027921104622094200117179021636960324483232253429306709304847966687755533076595776010900571102667177486591076459791883046217025682017943236618230845809534792683576704199841180345986484357380774683119094723432486753615680609213316929364236688666389152191588025710294799107812339772432879183897172203239181078232951815904694472708792302657750662364173301620167066642212863841777364971216135972737138033138729838545421563681758465264662339271378592718771909107566295384677506905013980432597452506696857756154497436586051966228387375366973037634417385287380087080663601927020250180921775318861105283417293391340094622789712786123580123153301632439292032380084502823497929184930974590495545007010166933093209011234000977871482675616413207514415243155585875529097790929281869469270912729969211746758719733897054556577231269530536972486844331027322721964194655083741442021979265745039107115578611588775269183928887767102125603809345921346554512766623219361466198453949689370123492155944728247224281031464333499574172127344660255430058319151718221188068480206670259601151562918891514109663119180401528509429852812449531350104347327971124899700028828413224695444177408934366595276112786661189712040911788920388723746856832886894359578741653081585753451689066198843550359606160082169211176478149858064426848702717856383407140139287131418363567709166731004617397312591140568177068113790791322385460162024649441388177218395803428904784799008113877483435505969061420944608400635901527640954860975552151906568741726306111077907479474750323779218245094805417760159471666516929564667108155467014510459840997419761179101815423140994054365110883694603948611251483365101142902477810589059346102405276332571235610669330263190600777781861664934334664629718513210389681992725056758995987147649322850777704774475324690920686779483002877731963640360709307131932696500953877211939131923662517675665768550564813972988970720574490236742757664089561510886494624257458930766262183918722415581467241277497033495266243453669307967962153766120310800314998286830442162457699819942308203457778970749451337214608567948519951908263181825990806052482769756944362883290903767750427170994136558192824608914604418332490035555947242123695708084614781159717333187405318847192067584714984967462379194979279313802375392396689138755285597616850304559780405389041516718676666599075267641045799071597974381400730366463295234396602864016403582037413181548145857337276663255297752295028747486491031020264214657967558473594058553820620428757925893978146775920029866246634458670592132715803630411961816790499100402132512529285581165547094796377866088707944405557104500282835057087228862221365125895079551911845371207203547503513265834535637468114893259712210598251786218742115381780374564736533050778390012682744275272592627027775556924260528976708173340287054039318153013379509485008959552595149267460497309817967283667004323696748710869145985036153185059917090361926866055742646381751685796676998708210225733775421242478437323843668971393066105401595933579400594535621669789896331214536411302771014498949095897972638218860685042071906254834111075720465640459392427323128091177486335233978507490628724139162676349090497888855344518076085744081660227032445074339865224216917703049874230264988346178043302277222593857906314634684707211656867253702039650084108793152047364744339516474475948959178185950201394425042766300080133432534418930796323177235831995553585732822411714837814515998185670538220486365489706170188726904167752587968581226991355604854847400652166060320868649471773988586103445897309356246142531019912376552449502206232371465558380364995575748156851600564528332830909783538918839223399607396962809147932742569345893385115312356963853870485405188210083050702982027183417927588366694475147661908083681986456945500525395652021199627142844613562257769654394483709813806044057685688279842864003803234864349533967513849506204041693067104764744549204867224932434568450888276705812098247566192000958649338496085560459592198928994449490561528515444071279525044714590602696937701056609408285690358992873880854217220098040991458234081650112899419285282126298806055955638641777538175240472621325269697995081360418966700753613462472137590947457868104065359811521920332679683643652937209156124030437404456254649616950320460821703762957189440248884752237451829253264938598013008314035343639837243542929689164932487150832513098133205593837330845260972983900381608898668523149688019136281539825058528348500935635586656676131252205063641499881889171980000201211084714030928766368486989657255888568908064206922626329443265490888745326825152916726524266057444923222068071871409275230536097585320538734123713147150321995738578567685002676795355825539244720475438054487546267620982948615715302823783760323514137095639626686650792328397375966440425859031996718546945557553758299647980038769187899870561606452276540275879163877172278829476018337641793762349256290906462597241273429988488529534180436806021389424007962006142516860278339373066927956594009306002463763738574841113343692778562097568859869619171751787134210216582292666007584420727504456174340886587402043874482153907094819233741025331694013416464033048130340337709941471773160215349972591449784271631061850469102952065603301743899623531542421356868772168975301034840584587080278188236442723641794854637368953947638330001934188994476179836906202875472677663629921705506762045280748483556022622346850699950446454177597501170059603483691605872162947147929075241529774803299404921879081267517529577498819830449334777718760109242939733310842956876525048344518244459389975086677544741826492191946735531844618094918894630174692682728450309128821664735140711379390478721037561354508150510009098016642729255064450212978541964420485495139757673807549310669851551202769672393290013151005008721940234812965817289330336513084853720584628429808290309474330333618776339756289505404694324248494454493041977904777083338414814876148335772071320520992970722171300095976989670420432596317862193799618779291253946363690165620558507491633054834581636330773595949011090976962943180469602837862529068797253746140966315111244329265032206129277854617556054126356576730617615629505110393261394386338036651871990279383613819742389731736176357726262257904803555434816926211203819078131200497830701133078671564970330847217289745636568570825469146092664851144427632985066191909400295522547896310747698702902895226957168950812021170098196726660156438010742732862988966322399737328233616507689118295906245139745847924881417303164182790272440237652228292266151224170848217242634912567944796336482237525825644536020624712517393184891857313586637429321362005413355118680156975945764157470169600377320712273960508136784359149783137655433798839959552866279932175531070101894332596589463135010677466218092872627980530433873280015267952370465222977803107870264694849113409073951825938339896874208620697063475411564349735965640115877382695227209990231667539428054505180112584490494212178818708980457413644237771886719784652233239122135555648563305646779738443059508820562563401997801838234522370476725367483917823119098519769441990545575705749838039024121703086838786254598453103897423259209845561538853183786655096801618102041728943223880859450542498210415936849512789359393624154801620135184006907231043913348975896666601631992240014084095783843657393951498546572242319604522076563510972965315032818805910460900482486803384706734856728563083560240282032704932218302790425365645218142905202233617360798653416942468825307196154496610868663614006132227208503095456453942346716034905631490683097553190443475400060637933998055149671006925313386507495131436459693158627300703053580737179648809192831600728360333475407840531262758719771582965347835671181585009265339522999801419410332483093230678562330084106227051934115609414716095038694368871092179035482695715051612008716002624150233716827925064223924983617412886882424667868089279632818633171025080399237060798201384294050756254934001598330138987792501634266082958585816145785045326942836853765232155363443902556264517326667203887867548798230359439389597942520725736542370201952366772477291049456906260475176412429633534271790509653948778987466116526821410384620320258554087213420781224389354992599034869569646889761146791848857092912720092334917123232645353440345326495933589314488121469772594614543751087148994251697595132524563932556397407857542531759772954772368056167759208620580925598498796776159435651905080955134261229001652070911801664464908604847536293055712767956089124943508033725316126358023095250305170441977913018623741598193234600368868747248254096461498399822264878098615409174845769829995806720143080497245045267053527500563874828595032200503281637837739298369522061132162068402307702879775647211140601914177946137231690990775966328477243859559374465450095734712784597777686468068609093822286816427012982348660375212363325352840436334221460551433814364311733067499613731945397322275082198597087750136267691557604052173164572970230793745266207462580374548129871840417095284823186784361200672788394175016986110095108245214428049608229006979405705180174103257131486000099122955474367340426453640317742195567368342020900382364105496214958113710543773987266923204249396232270762876183576663984917384544530430197046316240076292529711100225168448738367573523936113417895162568210825961486200003466625104750899020635512935715186314489640405856613106308954826241762160231765373651493734614147829331633789522619176455955793517808352203275070096792259351468178831111681934695746209126666247664788767652463236393219897231896615682154142208784821411763631875686344353456011074418197491824265837786811351730756865258063527922331510996366567747833328023370460245916195617844776591733215661685407724520083571542366324453015461164708049281581669161207468644757238651027341315223727693566282019264140513378364201500447348595666186219474005901183395388857642360504697548749917862812102566680617896574713303761104659138133011794924767092908988678916659926158666797650650521781554452790183034380447861261200849986490938298760338562802445101647213205263368651399016844419288446289557585033365903897371415005179002449641412081516828774210698312805902240617650507315706005668141037592378850450308946718290552550018893032963156548755096042128598719499173893565666847098549385449722834808603411417762223055361267113138013059996108074890794222606515911503451608259869707713408122014762418234329629991780090704980270353894675383514801806471879419241241676184048743311599290374557942085691514914850241141184777209476531583340321613784783286794156800681076377567862880302720318380754364636659984838278311042132389334286823784520752914504443807427430201228431556220229450258189182633606423711353302465974336956953783649095943846156507118397979036054152126874173595457014351815693916047801537712004054570604577886124984958829541426620392048178067838440756378955578630097658636368503696231242388169501921826541154356761479707123031332735438849836007936657869093052155244361101753631156155641272319129561329067926798543523516950325665763182326148046170485076431297571064407040604667619415481858843257616219467512783194021622893346626964030333438528742364880855746308334110377379684058454200941950462362819937499720380568236185449293477746403965093258818793072942075928873800086115098014658329465459248313690770100421434853469113384649628832554042273550819987702568904445250181652645763881075855833941519281489532291163559327797016474525068836118720681178489569696830945187459494079815320001396271130885232808625739829936013369707084548981186990442712447839337449172037477567552297050276370537025661375006330526567986502419381679607639828800681503814953757942836744178816591400598633719343156845834848829090378283107861381645814507771219182364666676657691362727162491221201404014242221544736910594130135638210953357111417311025983698692403580138686174533386310290571581586853798141998086064047210705212539920836153628420482133861244406254708860791100683263007858168144209122581559397487354768769552868614772043625680082761036337716606732461040240971170385253660059938912967649173295091462337877696329658188931347050380162740384673859235174638953663774642661391357173268084228855469749442825417890965557540500663174656736066902438692142702946922824968063661616615610034167758587841190165759439219771023969550277200469139371385496424136704214317024054209629840569705959954498209742737934730816822795968539407054815864261330551563146012715450632984494445585315562382588561637627197923625968710512552573731365120116425379018071450841388076244771536584165597949619594855357761933488819500647488557612713547402670787778705073939398009374027812177772978910392371978062961775031013337883045443228766301281287225056719826619215365244296514703166497478830525416839182289699926930397909228598454266599534515188664792953503559282138449444336107795987712971926952108535501979654555353851125290153267086094052580726050921585538947686962917106392216869273839835906236380257594208638648346831671703274416256847959298893631060228487652526942608688369800197030481204384595805833316261363035316643131009396185303848318173837839196097898822276330599339690168345503608172462172066952218039327990037404728486070338100924472525094086792088068735648485461368147312515833349184207260128268587291094644671323991326491659191109957053818056295838124660452894776739090735551050765032018928937143023644631472071534783815424736382039795748672024303751566432453542320261418684520254652086309660246639919051243265450893493697163464341781240464903921652144340404892993410050671203493869705341397349061314714910447944017411311739834121598348339794145502902893147990731772773113575451899246499766470277619298985279507036317875257880731654511228365548296932190685068453086652331913830191345906419278303870474654258331523097391908890247392580259880845705797963137776822572870551082117821905214427363901268064080918494280650614854130207267531777647927592119078936829941647831395487300325376892396980385220502567175803801581772171167310552280612017076876614921565100368977900446871398779836624305712400794032254313184088239520302731889992996609821716634392903398642227222921501381362517757919631733958810014004400303233892993742403224096879409732003842963742409099923466280739432515996035597187758183550894883585054039260065162259948333259762300068281655315021140847959092069729810922702794884075200643332021188121681347360362867501866134667972512420371163037770733221784299864317473869280561776900974897466149549300025231148563315696888702025023708107733714107874091892711050868162752986013631008027017559542573210261046760900850195168041902841915678716471659966890891376204792293612583465086890776890644922278246403812615839332644926178630665184012629576288599379455598352602935497201730642317930979739173093847953392401875300441156114734522433302416611998736865313173146729470174407798919196865871527844726088212372099981285542708853248754160844258938130635144523132600223523773115102534249263336711841715401314107230239803061237365732045476456701742944211789376148676412103451894492372561319302478000784417021815422823035956415002122778508374828562422296973008360578269834308136730687508827430618329551800046365224903671605363636784526792747031370678883353403412471352118253388118834771694895975465001875612719455282539154607046123867201113793537914372930672412549929840003037146895125455695813944924443831699296433627176978331447229063711089553422178502003857138410286789639739438452429622821588583164628334724400828528463037776693704209900751652737208770366468880074743906848381953770726229607379328798677974896734125597266078284370424582248124737850818529544138958417996974691921884183981287274382534115794761834900330003792105680843320894038398095259920428603370214034011679621138116009072785876563689350879284500546995275476884916133321710572878646956977228961980453945732241027325765979716183154253510050238704326940024779668997766873380441531649648681283040765529115610839018266249913470006811542519790352515715551095135328055797867972533159564387917994824922187510498701276456601198532198853317161566946075914188869922709517798750845476793911549650103713186772122239368105130930291798781908489070784687040977327717617166429322662819458165574273900162736236685275388429546857357250214600518193093567504298066453794806144210231032859522637984453064213195214576305212675709969988060583273855984387604532370990463355229668914442022566075298091133464886464408468841160032159770079177299230064955583049733330924718152689721963508611199832013865980601811720580518767391856393658628037456086182147993414372330297652554418872182268854301010379678868043767500195992473903701730575649115487114791535975253511770729745614013409832476113188515053756834766231219039442340016668279237490719491564075129352551516215476479553561521575556559742754765192348651254522588266838375687111638418871119133840902363184036337351040291295794571037544583267064571556349306443580677912667744958416352648405460670888598853441884749086494571510594841806768863002246018305180976473824861086344581803350163033169512622919744452099805391383928650193437744511718789374221202988165274521551425919566723572916774699184686521212955278260956870737026448872363130270133539083816583382661201425181146307285008367001418556179011153201801583123589149509382134963433470379350376758284454619692388013095377592017953475417918775716889007871572419406947601977638984815138600430391687344649264518200166754670058167652664809226728749640274564978668946410897019377680314626537155756989379866890877377917116639502029072269177160232060337728665586485196559395445477789020392971254265660528143622797423730939077115206278407174469453342527447931902698718043296026600793793087537007637952302181447588999467799242832696398039513219391006442758098176324984803679102315663890181422261677046006699980160407125670442303969678684901042907717108345621163693849225786435304902532390322560718813325953849413785076684811711108003678596516654191440776431506727363051582934771828135536807455486146344183327556540723425377455936857392851134698566717515210250000468068144643918703041099501146836807784104485365968728409522638022471015417513942190999104533579875393407860814496142570128787239287815853000108455369421493485042343812746192382722000846989514501115117048836558881080089165993494336006880315796211402053748242715919513504543903459889582612180706317782509932331858707115444098745153746933066141269946180748076741674068429734610072633905228845829084922794422632884137375471316652946301541450229758999088764698031636620687537383943369363161577460600077600566109521660650677490482324760156708915163394317294904024177139931636346955099424165758912241009333527032002784546039158695707661515581785570173162222869868959492947703271756873172629666967062682583657560851208111346204074642406349118531694697232034061798262121754714770802024823347643088526404851520963964394849226818110498908819285761037245495109220448741983719301548257402663489443098582581849603167482943047275530393349833296238762206475420425902345366309489600244660075490166723877422977186378691724283729419203245385102060176137000479491158383840935230028111423224524438358188035354074752685180939361103780708377887737758624887454040288527627661733029405259355465706271497979780185003998633303682828667555010510929911489644658427522465615291710302057549267492483372734447514944084036905200127201244305888830828030340087671666713917681578237852466884775334283774085488805081539030110398284573413631402992739900811399734370016201888136700285035715595471234358387648128392136050053315864515312303993448316318992387605723752449196511647782893576274566383150639209792954248998502189566797074422648739663695650523606918860412134438406359395606999741787222436135626192880944297617693012138831314774104715201427128668710775974626618743308634930961522650824292093933051333881804648859405813272905822685414700161862524045012166767897371512415692829086395604131377172613442924996281554392378877895142570977933105386122601679242009389353885932369580991440283715381684503274636389453834688175559131308945516720792083853129781724234510449157093026944125213851954578958416684980722026644199917233625715006808839183325822519991048811397943787729847655096491833771078885779675340267656015730057996434235173568276093178604557497003311155103085351317812880205383611291269611708508047300986779286302242416573335115467135939538653781255043090730289339902483534437326830352963629714511728445506007032731261889871633619097322644290444465240637795284549186316668758314940645031842630985921528317539802334121708434861326530497688700557206882858517766676676591565837018363893424659944775916826906072132711233057929489992287615979792095725940254290849590449742711523185868150682385219752176619582981839987943247755410325206785401971875126360662312828723207741613300380104921185686272922244555552837779743384983272418219135327845860439422385883467384918819021115237916244364445916816157926402281770748801116395246772503937419419830079990189984064150736700642988364702754829478140072108806767036006952021432171032122993355932748713838962368916363616636269041958995564574001825986170414697445266931820070917912004496300326145016088976759262728631477658981903980751934072717705069832866926765337782885395036545171146739786323631830946778396783241806931932524231630372025524875389528847486513828944825492487177705240621013193939530403998205394326180749870119171600430381597879661820623944806540127317075536762391672967790608052173241596221047902470583413420158176727035745295681290601980025419108366636181796153570732258799406308202997351317464414975906052433075659201616916351974299322299896290109430658899756065039922844241227370976761017941136520598670792951458568083322201208646082190179136713467358528686716282901441082043153945060250383996792798310509498675640475185278756076845449893168531255289933885665313949847847830470775501985739628101728440868605791752578565163810515609307343048294023137621127480577086141985748576891374693889195092563458547369853350362914197398752101471520607599889969357597777858924592972526283264750343417200628958799559534419933377230702713281403112162855011786213708846114226794370436828868061291165878927738011923831866390942535534318449748616190855744943400854060053285359420117264888195964035076065992705999410320865156901753808579795112469972742390163585179709689356424125438355473070125975150575220369667688628581642110604718114831576768218022685045227108389791349254077462608286974622446206445451679115092940155597702954281894590164093528071891656628747021921868086046584010062982707387085138840585373175794592427039708118377608941796643118583228051280410088720846649455649293139776968035706951372932994329299401567939610752568696395366569031834716958748168976812900193365086107332422197222365137726009319706371017135422357719832241859252218144640741172752175486325339245305446394292371129617433086445517235899358741240285655149026371874380683258860849540757193226519234633079553339933192597896636254287065630644687864032071704646576456171886446071093763396126216210281476818654117010699723362690586272816960784974071939077862234908011357657648860733300448338890813122364604020697678463148299414197329489368668277802980939310602723860497993010285467114478666581587621504257467991887173335615601239487656363045613650048072073777446339108889893847939725609281842031735489718382802547513472345801921780304659173764280791593802063030593710646080630039070458615947680172927272271222740895041022967477818289243183359176097299514909499157539468356323174963623458872367247773331568368836587780786286313771481990899178416524838037690741532237729978932396509784684074466224183237122625437195778231798188923245348620323664998425965109463721198046732974576337443901548918273040869691562292724881305132246104242011520270793941666609281073540461975341308480835496899955192001516386405186916824754879439220663592113979730349846469063371115913738090771292627155691854922304815081336998953820169028954687956154725898456468697548903955534391267068597322821095587013849430410837394326731960105784232700883233711938263831044457412317459991159152409297244881809153595106725729926921104693613669415281340019329666044368884753546766238723477807599703437967298864273542892920956320950313716210169556681828920134248040815328287076132504822666709571962855162805879573312215352119597227448208135893304266266599697973757009972273276766042092196102516061908114290413582726504651623043491105838776013640766206409816566043518812151479640513605381788490845940637170524406510693426363569598014813516144204971409995031384228678718000119220329458816022096564099458420737873034092973744718201660157505824734356899957729051461286957592858401729662807497059660253704997789565906373938790742771306241627973629998037493560130310085202230402172025654858182068757108543747926160390677810832892737834401454481291932410430730124419590510911553625943718615639970758561914810637628428227033008324268079722656400150069048139013218473134293190913598873849804961214194355257353313945173395599249391008073621558257499304747245963576453466714066844478946623962778127942986683740776549021843406781908170320816145178283506853197908657040358376836253658637851652225631478858180646025427743927974494110119207579115427579408988967408649419743674978482328429183444255959706514854676347807373470324252394941725523825862492738195669061740641135033673111379679800028880585646927397061032768120010789469866090818251652776817592736954499228160338160050213351259135632980422545629232067456485932841933772589513741874522730826834089680576816380276690273722623316036959822533111293878604664177620140330870880932131454623552588613900666938747287460495971301019214548049784348442742770875444158259226913674203674737140445856199296389880333598731487649107256972104865527423699533616663704691387902985270845052921567617015530536810240881588842866469639754866021871819321142606558964576457896684845007273309803437793179643131077714301573746198014410665781138077245911549313630481681637555091239367251058392770155049832024307244312433776747780846015446602748583418046395414935479442564712056051918803447425048995638046028116894782876527845839325721091114851412813239824804058419112214436476292574954961323295862960517893583124615189356710005798844464118681627929331031786035583872601619834642516408998416983282089010778592066463152573068749372813411172271963220814454711991707128436511471093424482101064596670669939901855692375493153991283619392422627842790731042344351552750351482858030655125024838122145811853162353218744106405438353055286723029838139378144481178864347067616167803497452574874637773699735489706212511761697294531934344189921813303281318322774158559160730414755350285765792725393342293653358256708714595276884612015370044711504167657644574522481179776844416700326796669546875484570961198966917427988391804766878904454034208039745478514166594860303143374857213397999913357945065867934706868524312309003653250487478235604774243852161262512720565798206084733330608385095034148672332458700214009979922112093434956500590774792686467451099675708929130709953349835077594765982506292595219289297883248442863232482782920647371601209980011384775673777477789707994656011836921371166473551601810187671023489474909384035382694467118160881009340190221615692588840232105884539427882030737409183263398478481751062735949351845719308392051764192031802613702600561021089200224207536302244206993769027848454141624950729285892074297642246408680281225078929246785155752306513333092637370541422722465709552554086932801043163514830574568415092842229549343961406391819965549458182268910163083374855057242540955984612618326135313643571226534701022155788593133573185310720999513277166519720841366730011239184565493229138720776191325252428984975227711259687487169750936361285051080697140945197584544240601078304950478763374705073386498458404725876116936267733537280757416174419451825229096850339212102134987871081389336484843900835505788456783936505549060166322367907820490466496143091438133937501377628305876696121055820200273927220410264956264288831980547191550200737017527806432790480672560926352168289537516092787798958991345748139924445005987735152265142184282655902652424463431217855944594056576508526829352451102185898720496353615082248599900191484194799238704257234167644128298993977096654376554577294835687424498652558448017717805595014297824385123476672012914991515698900625513699572894112048754073499519153972583533265611371012193954476492802520089776691200178330671280298875229075855965646764038165680718557292489949510093799098942263396304387006960185602655240152410761423927243377425495510582976902032530770714044948841673319192161579188807289895359690927037513365550480391342807475729732544123352138648845269257051048914594647846540117325086002002019931290892660494085578275852925001652181139437921096678772010537467609600754538642839796730273719639293638502290831744524449235286473355572529660086673721122197734983006910494875205869264092278360912170459754506164272762850454335821781762032857670849123306341416712058898773688311379333164479001994446449698971145773734433583207106728560106012894664399655547469344689154322142142074651422858532503934545576334015651983085118998352444526925400254086925078651925821986580106108127612468513315809746787469661707070566249480304359673927680283291991475783165750262177099969556289946649899107479414182973665594931067914106478190835594761406810955614318269371147763821233445317840437928678471198335688547013658300263999526231839166998726739456632644866144491734411593308233594963500068945262293098629965957966517433247109056618299182376818685595096295931579602114759305449657341994614442535752909358121262367437173044799698500128657013000152522446711598925829112978985993307035369341709440280214589711704591917442814036315564291209828710658333134518394322722391869000186833828176425531716461422289520781462767342490532485017733730784084873025033240814987555319536473726752298090394403069577963749494288774798238463922150027657020538272259879658741484423125771800674503763949072569173966285610713314786577930645016097164795976377576379126648420479656181937975011612899378083052386759360083874184671669671757226905430396679529577268958272517380967284492691322892604971420482135338550547396641043298739365366182761926696895598702008556622152738090187696211241365701792366031896011701014591948588717772570990382132635852336622461919559406534866166019002228639495559016701960467895612998502108318114695789502391278071514837319564042276952433670143331033854912335114622599102153452183115983876198430690773694339595888186075826101960131908370308722884100836647593246637524657007553163036289909297868990957482889479816010415513261303183470182631099700745172121300625690943955123913367909184640549521316890080826806676082178543324611508827361160875448793387805740971593471367512025164732358776592080497540953343865649511911695331934177952117318533918804151711068245168288692208429414263858054990961998794503189713645174439763034697835732340960609439332153556463615314032205158544681151958363678789152136961085111266550804682653776820168831329094122762765811526445368281520750827592654691777157819889627668103719783844686998607622002679757141560090640397178861879880132414046665376969822470853843014352866608228462457835314994177806470770032935787646174281769224943341744692455136531073557811680316520433366961867204469189567495449447630469493945299538957834719618131378403077640592207932982894601897275084310154109074300371745051845059090732583685382101894236416880191827204397244979218837205149834045513977934902149622978393294853043370854526210765354736230004772587845669963241285257006260197575935120263555876195884495939387355810682812801179717394230225470416651929213817328737820068023625517382542323177582499123583770094337330962211131762553151133990986871203941070670081684306491192774605302137483903089823590204377254188988472197024868981935992416462023918135687805550214441625435948205849530263785840314444190192022862600816331181204546895830970436230300949695801341666331002857953896022365051086769469409384486824200577409551148164745081934288075573115620407886727459010186425183265436541601082598397909219086280836052312337722621045761738130424495025772140815049406166701296856840819046441503836661866907198203061639568986802013866857443069164386585679319365848730240270763283061048369264619634466002204459306437768989064202748048149942985257011563679268244701656975846373571101766712012715448048401345798262348194081964014893037005568576515609954491739513794632827949477750599693045026978274033607040157536503030435294097010784926503106495997471599048397488800243060092291919852405867820364141726251983955614289224550029199620617217650939323210493700625378304279260873663646814805625952630092000671544990928561568933146891042140108922386496632642505870952449894016043825372442020600691763864825235987660072666710451376518787700337623436669155774019816810275122044122574862930723853888051080388703795522809048161629448767596775491970839721814640959716783602593052106229124331845910352452243254917047532307727547216239686106794994527562108779054055203897801962685092811304221044289722565800297285019048688334220625844491486084552752711890759577994087026785435935734124621723603907384968634760742109202745053296191551216398750807448556368182535567541979228239736460886776963000671713503347750670220360058581357201154699738738091910172199917386013369903125635626955552250950440604900741659808728246560377820250498423015303843832506727726426592015507158360768252101007051674181795644989967056938286622355060566255936632143897445771670615429085664126559787813744131652066503112152853027845020158614623760633234972173865187991559756230245279095217198954579740974469488577953425107652426272395440622911942955376138989816775958976998121056859547664369511958277999437388895781403399167348314329902035914411485658915234212944647970019136639139791850359401008785105275508073044974913809683079382895970611944839611308460901276787626796587772566262222450210411660904084378053137297351138212327839947119984199300049004553084780682978084424384292446548793379635444279734562992682833597973549064232354703385531553455752178983300557979028148441214456022014154924186725203096002039917350838690239567726551478716041284642938746481874696922237121151743166987439671380999059092111756607130373602022378511722933590676335253112876962472450239929851746779001218106572227140049641781070057137142076234202682594556444795088209367082227439163565695826822686347695482692377764467104080939261253811062403073192890211240929162989424475947601394591463735707233002844570510030780207433284989776973787296651428034029969735561335909863420110126957021666338381983747813845596258579967552934450584428357707974584607614113905880965130590395488017525090787792113689376715228314170542673334416475083428978977990152471574098803287670344536719650726286128572270280998615600228827160927614937954513617901497723808143358012883682881463912980527980688757926538535653874765321225518029626525016353620260409725647813318807568514236353271823507138659397123473725834471903655643080151540453772907654155969831594958995343900869592486563606554066471296350335547638365580699647737559902398768059830002254287697776779708904773761312016979374512430474681486386499727024447247243184534865355041393782069646064356742721365600906703756879689218120661373192908836145181009067030204002752954591633589959976473451845171244597727632454896383188442674329369012069686290045094079482135316350699787026462713518859877474922432285650060450532832378745774811616125514472466980821322499449899975084334107036925393717867850060059568610695619953793755726441319342776630156384934788381874630347220359853434737148916251245327667173966710410601346435354865230815504930839718361972621894395660060690377108874168892871693246220778205038703997946724163951504160623837907676125609587379610845607641698639524504998990964069021751956869775495063082027902758061466371029884962941270641742578775935937719951195057902505594895436711299747075492338039056517897347220796658139521266508428403725403211375972152055353796224816838790477477390324100137996369811847712430585013865914321064246658378812280499337912374537388395824043165282609177285810085829419987015994239057686091705676447477022894300896857751367821721285550463000156312091970587718636394563417331268826803221306554283675550464786430819313794428058556287151673248532788474957629910700366933886912079247318251078867963145388396201061184917908881006382979641092033219464669656739202674374263616772887644618047413691434449429769613322280737494110489918751948564696962314088831692376867892251454428203211692036024821478231991163195667806734858612626612646018583844836925638632060734355832198028123861992004570636958596650750735674144204450632432845808529633015011854264528977220736224861409683459780052370582502444215279959272830921950970913603409735915095833367740573909418991262360393231602134795431251225451884147130562397019044241333938757927325735350076842419455991770628038948647724808807010515336944237406013305767515006568239347075451448035623632547151075969094078983643179889322439220848524235974775633183770583615183385206083808059919652719465428614267142659965460729787897248716817505503556398417445304539456161798229859800527071173777434764797079828680244888097504040398844906251582556493277812827744401741209222392960952346399299073142519919050981192870651926907881488105973465124507668633404000203573780996058644202579127897325665711080253058114885882796168879175754621034011787554028759729812303620740454207368446803285617361580387598720897901384390469268913521196044776950749019936658919832154108536419634050570510987020152966741254137699435004063916433908772310850530951582709682287226620460078037705675283186358439620407226691325706355360140833618730990872338128520275075927892578358703006693634582851130016475726196953082314698891311367842817694994695845410093566570631003214404810159877989975845747288820930999507376184647107262238049044607213096733577173034053654275124231633058547664512717941902967220060338530645056628629140623044123355193161677599126357667605240773812100344399149758033660004825991383206618887946798000674285001235911379115830974832365033643771270803221619618369990136258633092601639990935790712513497868659148023003558781890102782797050332176915371296067990219745288043583220374929686332635731945102766710264294598938427707082672781786597129220617694937359363213385739335753306748487002584104575502695409831598700409767186075142491147619962114244987606361902010581028171851129380818080216491723266427954937681331041283680513148141779810784726214354685975617758063345557181673515167130412678763555280224642932532891746068371316601051240783011067489130259446729894391487250796725122066115953932411829143195883833486825869172770412362592905065960130330615844317416312754233111627163481301037818961523923403373064813467435468104407725697463581112912293966293302019308873066246378028311836117343573821601797639398802056194719782404125774974265645282754291897134209320109937449410972675494937763272001442687821942563315535080411363851265759358498608001482964096132410659821879250524988174858906010119621653785859936901287582800513808817778010348596184158099251263669981236706762787653579461165153175072880884746938457463261709525391298943697708981095967239072488676445670437605847748187416817752821049327252559835956304677609116365486120706566565453512031925144879591368543226768272699655632851170801231518469612887089210267161605870301439333860698943667566587517271618917148709503334762575158236367407752462404876992043455821167836551094500580534278711726268297962956637668157604284690675161171093129640692457490656784844133656935229131349351729119840380795852925029089421801643882400687406094694481729870241421378112349732500264738829727175610658175340543040041738523648009162530840105941393219968360815151109895898960700804791315568316053404080065788563651615707126859001184600750028964702467615673388333752946758902767108267311740810334129260534463215825073859060503585447434493923506754739640255621477297512523368817201003029044952628962683698751303443724712018193665573498820947190687934700321099956284068943541143865479563398752332575589245474114960158245923030637346707244008776831107148507534757730974731544575072835612720046235778556837956955372374884893410871862688073293358281802197984779294964353745778018168859191152848003268134920982896158039740921249513820312336913917161537677161496261554766124351535337795727925889649121977846263488283450326698187362446524689414097450924165144896850279872279275505389976641539197348397300360117400274288230329157456238426392253205657983185058882765206017607939858818761656781840224818231817705805492504814410607523088486567944520824495657466770297842887431143959833464561050937880347680992920230921829099426987671241140449354671348846875086968570077119014447757534789401450150271958584675063253814142566357643157551177284921034246180394675974457870891732217431584615348038543275385887044555999825346099691295064866759582991197644388456387100590182345473812973500666303558403228802560203349728331527337947729046037951639379897087203828626095124625311446708169930480172131585814785273849857947906251541206753362494140189687062726477634193134439318760165918422490929711561075368765470971765668370800825563182753467100520010296880606858677946772503071145043716171671091958370658499494471896543478133553473192318001824495100764578159000525024732589118133428494210357043881143096220814280232434199620637040712234122425751285324328937284871021981909909635066300357619381977631761914533864680291534206096854496697144799467046234227208491358175416369355843207711849438425238690964421133831267738035945460843249564609134025406769740975075114081858956296604284985903442772617735814534152343628810380875359464261215752568421149208616712299896449503716150229774520015472955105953944699782545217975899431253275067047730387711935296882746893532146626527928995760847498393224015168821642354731466842946946296476535780198142182797022249183936294599170752374764986819241568692712460866108239683051832338830932716594318019468915728243503748279954638393906729643579936505599989422109805266472166999878536984565836252154835484950998754346993749140271505232179094326878096449522471311076535732489084309262892458823188579303768873785509046741328245554987554739645389502684244033460148388521253380387202786457713575881319357429262606486148585975224424226765111982700993893204248612435506890127432124373360778688853436237106345712756474043469001950376290079287116975752492189774063946165050620604368999821302444992711809418225051326357315125463487920216589806009893346570630605683426770575732754407418613410258968412526017784402596848111019248680977715368905884897394871153122105925578093109640264075997814483440931232598826935698767302591271603956143262339036923756868236971305485629970870365543139659326884284831577717210647395389638472200201549184731265189630948448748088987922837242045516892490938628574637004343050088681389119233471272408528515393744024328838505742535232847643286713559769570746275468271509083023228474301672787207311933021571877002756659577181952379191643593501192099836382486572016191785889899493165637978940059512926736452305973556685003663659643182499693704087574805897862371594069080177429584277994887477940261407746107751427275510878945991142770431575760867847796010839975437558257736695645269160579203732667983865660157219622316938910887529549864403771148146301474697962796461535121755721045381759707941839988941716041020746172588391564473696446525083307037402097029920270078842404282290981308217306336880208017900384199360600988735009465748166274301617059334328049022160709607055797034348245662187291704414386834726454124296854258307605888414840723182345938327665368200792418981150278790523125919950266004018877754199280426236667508512394523672389472742925298093992798912927685617204868586408978546337584772807663438470509517151830418957490823236306886418470561263208199550750512324923651454641549801250018677629840889773334745228253656002329483255162106464840321692085894873886761113992611027903791362904244176473731819494914675976754615916030852682741769140919340294471345470898582005431259996092859553019498799223223281126445719444770620628823376631652492173261758438891971003377417345382416915123041807472909673126514969913253223366050960401566822498630772975732642786861001657650239067320016964809169829472976188562861644697220963999775453729228557551399486063899540828128057625592495918938540507785460061101014055851028606414057974048783603112080258854061690026711310824888370267184418678652267355554871955548635575263217533888014493183302708647666212284509072593757879385500798014810890641491329088540744126332999153712794520611462317731479979867682868291346713926407351596642979849581095965082867018133859466638428986840469802441531964092005129796784961730920875883345469867497954909884250207993319106775764317337087001734508779655184244710848223840074855047239789972093975640085634587096554766980303031208808067604732780458721145348503436731913351297347482606678559304412829848892711170646643660016627698767935725403272977695224412026933451140156204523973368589709969663545099511097904773491632698026359885839750279769239603764053206831079582977563920539996674542653299812384479111354008016513364718193303607675068947231526515426813751580436052432118292222473088860676262405978835385850014711884855929281213930434316036192545221420117378780774072618193740436287457847833906186824548867837235238162625736524905779939106414070443451839255516526145682058455978334481205301665579484036340025093191660767684867166486531731506749631698764072184687645451139537503932329955531020662952778784997812575491935973201647451743516519357966218878029838523133571316853942923214191922097316444502485546007406301581074196387721726232205106246031479276291885399025872840655636840178479765234809256932488377381219962038449611902009608797343236720631100646057689529405927025876573059278822764350782852097048894204024037378646698823205419514849308649205096164106964812884215079253036078231265022826913427366092102894965049989839627926087759554964712735349571167639061408794087502655620528626440671686739950465516894695438579081798129862228927921562446166731504449855039745872943344907167105634410556369345404591634552421307585478959635213864592998894027717947728203894835195552572929283581533729158874092984995819283248713450715502649651104799166593466851717798145629476751121816156829619908567383613150398258699912865482752868358021645504562831615755378048239872536078565204206991368999834995550797151719006603792749295884014067390832774261357692384957145766577238549174351291107607904173727016360644266759182661082284440648958482450576960688069093738196147403032111617725074977998342423401053710869393273707370939134825602054893331457842719259061860164720861777885977744235173862795297604964114937639737226497402091935412553513714638219273944829864977322962317073706676412803577566120911930114230791861987977915341519129880233266019759519203058160436039005408571143895355274922911123845953303266455956753099285379209710237924984545484302390477233199289700465185212072092523427846843335272331710641580422988666355466973689875147166136655469898394422788923929981987317836839279318321429736757188591603778319024753424724428354531200205483269731819336502679624068328595240767266672867658857013804228969181466035785720576702374811251708006085477459659030291594435450515266121064822934700021807530373124383673710701503750272769752505375337521179757048420243659878439377296404945308748831821462597273225202503962414850746293108930436116332642120417848726086818910788631147107305195166866378924970816105530751970296754624399717606942005328420468635662061242426834309198537982085819034386857282851982602106545458537079589234423989764749429509565245795085890140448112534918221719319939466743633552422925288023851964657122909960218925365855553758953678985797394382138852220804323222432169154759419002241558599477685611304717200888084676752711243474348341902472445421465582217646640022897069514329739011157870820802833942641781872534406542008432287565342128945783011130717539808816755224368313297174398982991427443328649790199105263157471255732611295179791877996639298231644849119062607546472348790234781059572286601715326298454622127666499974310923156396649437164153639289302080577629415055318059853231390659741979780332509858369113704426215247876232141952760514907083652954960998883164511320239377880066186607229109491527327301148817458497199451345532791430797983690805574293830789903192196373597513522621189314308800044146860586417418852355809575776272830651208327620654917981606230238575722131459376530591514071130575276145269961904738029708979185715574880022856743404949857060816756174938558394069187768541594805323183318911719583956665802835320024054882049217742719637638324130782118216670586175987583166573442516042684834044396706330599328111222086439823297288868874856628801906279570751298290310508098358873969045379919536266065826950936667871951129824381095044611944237913218516583354879573998438304288813588137115811758283159286476488521264791013063447605533852791695178865615283310552598284425822581775192557786018465201340838640530443850285150078985145576222305310196220142585074623128115237810684873101476911045459101933658076847484621638777877259747977591107011851717716942060053729016934492891265993348016297956335189485251058872376885667361011849336245880262916609971429609554485456107543798614515537625765939931457893291059385385002949243545998925487464847068992834474054274631906656304302720507876871225102059978469776490371631702533116297060301352703287864453695289436194845152353253224097069818437847175398528426972762374402082572909657702521371445430923328710726849179610574977786846395476700112294842002911047127632055622305670287854275838407080384669890054551799373082249181317910978184151858432416063013210067151866121685192126149153917121222416359751848377042324987929740662058760563004749845901378676122494156780076855658559301362254169615240711771535171218625600215778579723855117383240983053990353082757641941622600206939967100958967661622195380874007614330375915902445334008691532083349000625937102673287870767142197312325369293793812590795832896242755322240408119693469299492300224087130086920710621838731980320155076638875743155811852295786462975316859010260991741755797290354110266938811896422852619103125653551853224851127862020173417541879769185174660307410488512806115734866445016457840555268757698892286010560975288249307058378515907122227948887757813982929873153260710410531300236020173500703057696850696518646213917718352140090511660871811385819812254259058104258700022311090001999728540684787331304796663455604255288760408570527972765354762719483650667508455840914227760927165948872852894636548381701264590235389620369265715052593747996878098487846900472373675251351373086582502731149134545201853490505301535104114798970966948872070174415522877213566962177144928834017229515272851947038492604616239058427383980502387939586140664534419025492014881866788773427750106424793938223019439150322872044074811842865763544807559971082429740656984919952811285335920687208954322436208580577364131013272147834599351811957649908137329092255236546009161537164480007076758922668889687798038585369868376508926972798576499234116454042997562267868578968364298744982633855689910818310610183820511454814785428793347308206045059928587057758768106415162116785651623615198650684456621233037922374057693913643037633372421303966360822136235913474794241125814068457985344158383134070318837147513572318831126984882324850664526204007925226509235721067747638081362601049809474044830525112940411280869464134805578280263651107888949408850351328877468472240783822765905285782342819907676037557957952125871385841694005573924313180572066157641148326052379160848412306729602785294367987609766194643461170221785384687068414032346858458238310905615995075318913199486549443291480243560261500296962943523999261210350532578592993451651868998733863080846138680645107123712098706113470117548282416079010215274774590143443793083762935176206962236373046103336247957634354937405669452924156857792540211286927701615227707870706652279687033949965776275550760218648473844625241545319735269298918671577380644704635617345941343615329296106111806506583757143285261418323902884079157021029072165892106639675645336252787533036820623088480808818875912174554015661012842973197303774534132366138556945883404895773660816178073655787912726774762307069301918210090343101252093862373100402025628039302139250283519828380323324728926661911328856456244235217439253148956984456760769183851500829073551604757862132211331437658307785927467856861693211377785654107429028990808519983794208798755774653507371173377889628186992323542054652510020004163818829522436981279173911337999541300434434171347028395937721039166878187180625715503431412135130164936997867863507075750344379222059615667451940345410184122517312768938520879854153206533568725029151632378224931219678498828910653276266057652223834815313226895332401082046793071027526183590276880213603768458719999980180097165451564440397680349608166152297742627688713446757828199676126235455591815193919893243353460214750513405335956514140549431890318768193093869154552073044004876311944555689238624119988353984197509412693279314547411835725022541540256261789964500430883856474382321839219480229700470334100199907605898393585694525906207814427131735249874927605598425315672280408726713624447450550744601908602157303167760483548651612490876551920901510966679740126669544857524456593490865251597681140086204063923497262275922611869294929167013825014269316223383584934649075402304119033269745427816891543930621220763054360887582653256670518251459779792199711513483964307319977218137955168780985050513010318305357381477600823683243717735259345696473881798617315276477163673448856417449289308781533878813630897979601369892779987620091581236934177171962338979628899184662351636606729786335496154052576182859125073278815044673321163441265233912240524162963779185452013610856540592542746024004520098854826736420477741350502184236959394661197042231019763615419562365038302586419967505687663721574857293438827517572999235961967988523861607756540440466106914301384081394732483141679179786832115028462556494308549277316381540768874005987175365729407632178765352324536724242662665524654615555954136669842308121971308903736244747886013719125744621265655953561891678781775219567195959675472168391036510393965315909458848502883908860804578736742116063035729247716645748458089085978304298964439066484729487673263813687068376224525560744630634995480367845150695065931485868891660273725981056716053184062043238958161527205957361984402549615384488277242957060038622442889557463721045452550192521619654967876355684917311565116708398139241838365125349556161331074472807135051670182373188048055693650603990108184684175305796747224609852958139592932922196416013685714650592496219861400265023915918141179190420258727739615382143617253982550426829772927023647973052549869055027976964351269355190784118508974065111355329390948812009909968774293008962046219533593260545769510713958265487800740863681171056442192394834072569584024779974565766531509604791210404576030257728369842070220353489044960762655087381763661945656463031516414631051965255992960085335450844310401171767643768479394363339348057172706667356298809564555930089490595520534616663480715467618718124998829982104536958873140600244082553832952178405068968561491427463528227375070934640560741901364679698574288523595809624721841329838396733880814555282387899493018763275159104908102757602357459793713796500578030062414889534202151760541171726432290537918516211394954859475901530740826225689988676657585341072378795805669611654085508314034260859910059757429320444602009852619940462472463261440945311879785679368538585975755233155382876460133146278315261898155153942342257599155441873034759146740067722901902309960680540666562800587348558763764065578725025622847000501635886753709383317421314235284353415200969591006935285735283209704002187867977434661901356285420757500813714941615214687436504801230123987066580402896678272786225880307113996672688980895001470331867044556375662218676553685429227142133570216826129730978348262525789321691716498500945166263216591268194753059119194787781486738198680129957039755764499156594680544020680177166500011887012221610816991973621379415191710593411647340642466002256819124988207403839761475539911798949140508089950134969067574146698161719379567397480301166755455998106277768998223405614003928258776563604116174167219642045882836934785229927293365442933346694167511227218732721740799486496117776821227717227451412967523443348055174743253450817046888430147587860885814982543565734424744663775239257383932990614470910939690494222776107711618345038755157874012652623089925459451222670559408881104314258671888962791584692169980946939669716422843532036529305428836918531003349990840545824163175063936099638702202316984155447546465979246599086175223583831254131615545933730384345732141633691450252386655119235896219079134661066048842164996701028600228197106892428866747792034234731343603454040639223862293109667067663323953164564599714630965757945490918690403244929288030092131732028676198259794317944052569371354429697177980906373843941322407075604716199444642110671484270574938521079568898198477570822763411407502332116912865782253237765503525684894765744256733245933040571698478024140812063401655956767018522731666521478497862303277984729924100703882401626736750544612050728333409817316744718852027597857309945713176175026473026778106907288808739985821373064882504563043851156454184406272337326235676268419057121176887759057674585904817908798027796940765500609182414742871033774360439457037151373108222902489177146899034358320062469317091035025965535945803799823357864013920020632771483775548155411832903382963989633124146699345097541966137153811742254397196705349272149361371025087183586832014394236146385989835906430537504126650416532364864293532650384683949397426722364213095041247501494554030368474887936872320637288333263899457121031047784333040926200287029952396783390946591031629894900373049411922157389106236598356008254305251018756281911350098722195355449892461104538065770222603982687378464667640481786255369852014881092771630513349029650221822809644308704889360107467796674843131251869994380339305679690523372150324512755296248645101134905170946191213293332890616858935058463486675318749189076605283569663106359315329380364742592847684573485892166242811923686969327113256299886601945075830986651010409727247137561628395104402742217406703372466532644955017064694582282630225594178312020692091140381638813981735942584340398175778598178506306562201208979650154900715167921165439445434659736088146945145255102037725198210436275709832894090209759460259554473342544125342961178318369930755843175612740883224480328264001962764359565447058985830114115854538911133034264747685132579696263950903674831233424977017464246292466716256296907589632676246642056528841918327814814114114461379029024555362025486595317450575343365745569562490365946571539479033510923007302041779262914067037072886216936077388629095395342948670596634578613913161660669809796947475643050053077562082512793593463116053162038562327280487906333948352974604408962724504377614904823161198392015923180077233503972530983582998009732498247444760359025061479885773664257456543735626377404215140058504444805710349572657807193060984468031530610069396193039534651075005387325022682964432490848987773578627435480122650578715071324576353450016714322125731535204780991158557735163201798549819063495394420983400195147026035687388071892802628688688584531442500724616876697070316300103219800201422319700313130480632553980786416890869187978261982320873376015200304896666536362565799810897437649552866802990986507284243751232627487311080435409250249153974161800746776166101191192242739443928746849971740623526161611357185174489498678899058592878737900676502692236633393296471300219789430852512988146006143509290438210518740710806073337317451322838912297757563061582924534620882184355997046725122089762134781555658993254537166838268577066103270162901328539750748967827898685365683615122187178563259867335346862863951849352808249637184641567626241451830376038990733618940764859547939798050698673850695638738201492272159836677208879421146644870705752464997745312404297798879861157528642998655723788258880142172840529021602737770742979422815855322752146037126383430192823220185267041868753731092769522982554145310110004221817206749779438872174500383043286638528415049287356041235424019671532477627898649990101681616945189937340424696502133115229858387825166377116230979991587351465818505565220499366411665227879938593105161060768132817868864058515514150422004888936837838935100365225985436574772630809479573149298459779390293487255776200812011862832436744235824771902887738561656480659434368761215141002555414318250257314316720338115136190746624003954886249974351534671556447756763681590072103924409245438252915286103688004134690495736224215113576317654261305815071847564680419276913889824364119765333365749963855584221657477596911331231485454283914458727355055991674701484432894845796481903242362228284299564629200092152470963880253623676759968028856614015596382846620738149485564980534599013690462698236377599291451960344429594813972751815612326850066537417137419080367732651144163304698157333168910312725620817577316553108338502953568249575262706537940350620079439684352514904224718034469479681418097249822035069660280211641904164225307945284566176321999317429448622953363397076377730191438566155357003001634852123579068379612524391127461145114811598726640880586148708820544522068847267767600839737098193173109180713887387006555108257745799107353958281620326007455196729400624727505917697095866118688671953935849681236417007676292063118840962760018420322999606948663458271876487616910015763424309059123241066966174325546986504390269774986336874026647629233641357981281556139271244002615594912067608028386553610265866934044754184147577775767804867326108883686871223629896168104507727029874824713503978622771743705844304023808480371673572540967800712610725126699431829484910180340322942993514235521302835716398776958858630747224546072190584322655867401195377018563682114398626293280637961776896073181995137490943330103690898259889534457709729633533783884213025758977758840107984826606564749188822474861800571318229391582324459596106724013346964021660350648960202239537400663834342716073721468078045199849344637290506729005253315558953810101995882144164998200554912954638937025787063956399326199014673246613295695310407918511504317365994811533834820431609819346674562890109735548545439045571478316641770741908828354596910175682645584535924175428277806795984702179896502856276079139568245511267425935070325349863017068312560971661186713228378614866012809701516514652708676956569373099465578176185744471495439053340900925794831401672984905808781070664896888993530419281140244430760201696522963650226473409627418327695224845788076304246868341794724579801448136068563303973103606538226819270942736792502593830905778411395004946579650919484574143376734758591708066134427301216554696209970108179803499186658338001200401840451937156678442786313124028157004794303888730221416009450033120570699254869223763310218199682019304341245866422845587991921735224985466985440937264244696817998524316979132363164141660698119538374894853343763714546236777483027213357445123356387790887075827832847972224540715998098005606467855704909305962596154213278064660913839189963884460297333353940672377340724220777224059570876092966891795091252916950264348293308808702194698768246246914451514069273692690849466199777679430079454324682824169239278905894453241799315969671085323345978403047933405176071351859899607347345187377279742257754164558312718345624438371190193304292199235880379041095857483390102048162165691040018590226752595175279405136260671841197024226293315941444216382451648851939341706717952839241662749800531666153077457220063318498144031354606009555899145723425889955373223865200311499038877103987420653959567681098032236129429162862287607430202359693073038733445035457963768009580826334651965114450499736348335149023407432760854457449287596750475074524970952175333662934628673856908629642214356538245751810019604055776490508266252317440778081769436889312762453283415346910213818551860333306162744920576456604126622288785955745150373687883989817240560174788234391593555375413809753286413352361041577707081911631154494820201830446781733986034008250402825338910420395508999155193144639675480282682729682905802525232652594378754203244313276813329639261985627427096770947869203265989955945903772316472427860750854457178118175331111028129560198062211617686299276612295466190618848847768060028611903117142166915732700057628710056256779524806276570453125242150796065103830030715075162739969514179969866552685643294588676756988287458093807264578519919586167953536692209849754931469595450124443985137140006126671400516488100409547585021931339838709574298680237620195673337864405767515541045190714994435275483306444462407205040786586070661009821603262248740560503863306573293381313732132210382831964382730206486476349266435316114727553043333647115512293332387810291437141231368438410116722386095020635015760442111877961543703142699864709288249907491905527819187568964481017605644594304569392069575323302048627222389454124095853101410144509811502903137883161404958036406600358751307393132630405131259061637382289090844441066860557320306738862306696773713321722211691349710130286024150746388963388663151982796443906305851434258623701562682484548911890399750167436900740162233321990850469856205707986419159695581322768281437401909861475495450632048073486772458121661825301446110791421384175121048492894526231121669441403038990726038708721854152004698991765667628519260130037585479667123072456547365164421102124671738437821726478349040329013496965895076920880018144999961305805966521052862450525707063244822067217221786487636293915538965422355539122844257480260840014284077876306532015309641141385044011904729760267442721217322955899984030566061474266775892647238282655574135961012549261018309460149323174182210372772966667694691099476680890546755556310744201530895309082723583133280865546437085596527397831294787254318221973750574286286414503270880795453646688792301589989627031772961356589295926048437455548837492545171234522024507146081060698060154672804880942896342260114041031461324745950156881688754975054259360700986930847676243245563487680517170902142532111169846826804038152725462307515472510055960298384671274138683197601493035217154084779539358746432694084086065187888453236673671560482111250844010551004120238213532656080223385049200160467064535963559159332851166318666581932157453218721834707285357221361586855207748975302655654428270864972538160661436315056736445339114285793547530656313309519401806703100837136599430570091888535746074676782167940885756809005034839052811257435930066504736965352228096157204759158393468883584735116761221112353339509498603693131234228879489720729217252271607041813649009757881469130286541911103034367844257623701278912693297419330322653899413543588842164091458304783404474547211437838187868616326910332867122678549525797104934997961240148757402936562738508193500391912816714564847413512128280907223843014492666141459690272018977943626492146369182127984739482843431648109202295666137044553993310562899313013177394195877303874103039662392515445746931213306936554105017599609396449645300412946623853270061917123130535127594056416565433069210417228046282544344803845507127541511654212155505831776791906099330375382728043060517075172192382362218667481552196804071226068781363919835876359355574627412434777419232531278986748170888646035131522007712757089330489952356994794964154036169831300929169307266515868225859171362789477725854693814876608653213838193119279504133518280394277079641274539777295445513308163252887445065290021788035454265289827451965055127408826383630205842969692384353194838484967212191667772763141059372771781599724311775248267945597767889089642371220844200182908176191692809375928717186670494101874101515024043425458253388853996539920534338058462407801761644554173410869075086128839148997584325484943982570032875272156346250726693907037198390940887948166854698179446433958808334122169647906658198278993951367431984901887549585224139045013236223372323846654461974466240327289248705133768330483028880830718066272142922311937440670967122733517970698121873781562860144123832754503349103030368083419078596807644758528920437275497642019652970915171318580392367590558875211632487394521107798682178425919789554553062243329810028322987440079647768903957428363102573047514029454824317522040209014265055414412970477634990505676811108653285388703026248265730369813135073365858876958345858316210263703565339916539113530104443169141708304920876192463936329643921953876507928511554712219160883822240134048671026567704051889571328525382198200469205739245985334291813896023938557210680044069142560664001916242749322513994196935829818777315564315211986165324287013851363682838995373487199120662852659952497468307233297829844247943772306309607847784711872837995637387314973557377015847974113056600992878390162711752465335556201281628807919561510114087244650776452691509854800230271398827960120682721774328171486851942888120967247578910781018957466505462658833603757244119107330557387997692653846101627386474353736630769509402197632173831247245290310695353574450125420583087163308339762312743178506449487240317092440049715376283978289749403251376839119565926139096974552005108333261192095548834684376705166850251957090709154774791785613242115619765156545519686932067258365288328548536615816442023103460863882494454299154038636794061993775672378747888603237146549976252558175652741556067223850755057265620143045318740531077226601758992575954745255420412937215786048900781806272134331351119955937776689025701069976305702808598008411900572483696739806412541984371237353264906700382082907647080533930204531924721783861132564617259217074719721587924541852651939816869648504134488894682226611863759353984633096503096761362663696651986721932419070637170841050811084157763337745456818054980403558537244867198736421801984787508272929002425777613774461873092971944368068097436167455549706838042097963924232827793946664312484144560310990602010449543542288380757111511229474021679602836441741917636614600421764203190984608520089866344454034174343561426661529674616571369549056035684008553260170121284022998534788370404018655028125331312716698148884205316005520157658489770344250651349976750936962258091772835727087815706875153297506543874931866292799954882844818995312436406291955552427693849363670187619182760838977356411328467000614436897506641531126109068732885292592819069956261127740954876905249886283191117562889758587004179219149743819764560985234561428240676601254836244596107987969654744263480362779249181004926401818874849378831444946377723077775882449862228304330136536428442867751163881432446725061160030206339312109300865693613284964667456845689187676426166081321774385283344356903474943377601953220786838518335416343947328206070047803668498074815238878316675278346219477801633812043514377847100825392601027485006682780231853849931020170938089068646799466987846739878667285056298535890658002537142181489234784616475604389964633093226247611071077912473040147402724918356546838387669824893785811968006487421285013437695643801992594753455253653653059457598194538850133702071156428729929888548166316830280871077762964718750611869863803914472337453602675979907154549205870792096566766072402837621743649064813856849190539703126974270256681422130341611165020137698799225768855939546622736288858940350430783014727936785537152821044364872527081602604043489660648542420502094068913690223041976749841269731064003706707577021255959870627734288855456489917883355462005406388174476619694577274383685234506769874289027859079255042401100495136070220601866009592491825479031313546829426895920303541090755888645895693495284628240719819955015134545878667659191287853978829282028626941554465007180054591415579295087573803965356781106097135548437402656159374392477494193751394553812835270619085390562641845168613531073407080739787177881248033497637749293467380952223169600797133647874918976603914347221734033949001973222260754866303471760577848706226147984338311392050538781284566715268858447459635308789681377247564065065199151105577491736560481990862921493977719242985953004576901692726801354514243545839700427173318575695503378545703876925410856887186933514275305904296628603567431905877171302309218929393088548317090211943389513810345857706061479903069222294543027689373430087461300048944812323081588042196495541411004802204851761881949470388663002012371495487476057659536706332443881371666397961069580576821781323668825042697334861286683838458504394421840382517788506017655740092342158561614669122094115265091288713170718049154231670668874258028551929130467599045884204019772724673784294730223044762001449812836983543877549000130823888720043658766240100307658078381794460754482576118936535410868508910077773789631475116445224247092344476796866384492748665710784027520187974396129159542896556132337270280978302956991233786007616938673274554471827125943306350101984742950654332983602191501693346426626642372627329789051631810816895156317000200808412659174649363706605201596797544872172417634418393449707267528097372605640125242281708648656767425980966479136607524187997707125778584669277843879686837161708399832417411966751422909568984739452301544093860154032875671507958216168212424666747645655645513679869967418969547262645035781487637280163846360434232182224938648180286420589973878312898706961326923800278875320069466029014701636910470542619197953420518586908614731908022956450587884555578794461783804703647249842847362841271462729195943561386900626835314044589089395709507736470010218926858335393199762508360121920386545610506841472234333359774868922858323094536132560318880712329713337702681457040839042849849916852402601532825505640264039959129930696765079855434295152367298356422706560028511962968003693377745341881218403408729302718903688883405813063654858750251327939440150779946191689859188206624281729268819185547961175605601514471212504486220313082422478722640159590666010063194907033519264858266948755862673640837173054466598051326204732488521858791193562056139538029048008712885571065618224953275683995417615237895948739863367961355487960397869898372030375734188360563170371407062108661888341710619303760967482828741268719847243193690133156345859578273358515736682186812181334116862540717229308546605936763409909832100036951047460951052319704390962673247049726214146612809317424928695318240641295789527771497626975952317560394690277784948740907508337293399188972194323025492610128780250639229056792644495139243878595584186812992147196359479876885011330495925912102241357228651974143892240994323593201059642910479255659413923909110995745636741898215638180521090845477609111525054586605780756813844259407053445077589413588508179269928198211841323381174786719661796433577266194147911171596101975969758826109384910378924941230955770938598793068708873963110814715155656162680148213821022847843055889909491680250867215684750657948466263298423808787601848278813996333510345885318703413386811101380802507173028070460609181052450733039915243842923470938743531228034970562968041963867959608106087015659448083178851766089135962411974526933918303315758889712432805386240499133145620987078409572333032847656778987610239630990839469212945054799732745969342272733044096584766869592748964908650882636057412445381993423207533518095547756715232977532553052930764587935242555899762474469694974717449408160931031938387876530612385618131404418318887283736578365250944111845972786684287255879062046652013261391519789216527464814817945942863146798872824677537377977823698833933544051627962390081412803095843010317690333115628555570124173182857316845350594270484545891755100581790673513512596779104253109185211400262093403878236425107901407855996261158304254913655176068067882118370338021456986441204924441506824316700295301048488638839104964806746136962463201516153545799485810333407816228320025190939644113191846179185155055841865930715763404021904422753583403102234964930668639599322684605173755076960171295482985063205447429170562673792123784691745019712103854052970846400110305174607033720264046953894872073748960099460254564289807568644623224978679363996587722244826244332371757222355050657184874441626046454488907983078273958577163368148445241234135401646916626901504134233715874323873636262463189136535489510964293598252394714410905343470649930159595798715943651406779402269512562842540263366286987574429116672179121018054050128539255753413562602136666931490257470472047713957333682242476548719009482761162856653834527320726188762260141102729336771473316165902667599550041778621389109859036037393393190398367811078515806909083643263351964963642647669049413600951306888373723975392488733653953221753587028950148993157459378592233683688279936765363445940371915333605664238194931144793140472684567529733092722675403611245420980451002283293593255194651709893859164507707297210314440240165107648036941415839257055560932130347208854971609450367266602858444075573186388357265876418688770046543044543592310299314715862643621485989926425076993336265966117465418454650275437012727397321108760169624936098960276823377739925699747828061701580416560791850405059125548901190022986656133032705459905987945196774664159091528319307971354855477065373196813841174979446613405373521063840485800610672317183706816271993222545002886968798254628760373074334719933479416749211239884073422300404173248427064670773750934921619657522689820150460496874661198547858239312000035261896415476833914117394015991022023898228635686227530273221079086755575843980592075733924590888148909508618290842437051057237235260003811203104609803645681174532015602572345303371958423440200994451218944023317815797729050245505985489742296230935762204333079954174063388482139856753165941103980755326503565670673074698508974449056965553854855396727148486975884233606006201347254680057966641271220918947083932927823877231146298486245164181504201172040810836379345702277538838850641330541771508061056712050987168969561192849946402639748627468380004511351365149207542159192074330730347499909791691428064004716290584539777003567653065256327532399893879163886012187041261706045834594354692342967912607783878762292864474362191443936759284897191034867895193239776043832282582386167907073134668016929279341559804266940171447618978288392754469866513311150431856361767836109850491397586425935630942988965171300556614204597365352505530556694722130890224292315475909745117042456203631780039133053593048282628106144717240023387146723219140651245171502852839327811203671980993700016640521347328821115091733896556412372495948034872392567750261182869263280470481709906931296246954224607652487794969030287885597770810375810150228984494945699207805184711057723557941360051379477185896301256226838077129494902881291819629091351094731181965454544574538201698095011520681848155223189155787551865871543081140688179679298961325931088741758006931395082552115203939434921700115943553690155744274232559473874774057666595031753893964056552785787789869541933060467264614970376499283298212181825742717180512567120375149335940370280792625286603034639135605011925998859409341929307271148870334489293637511787209829097888384861548034456201604947247821651260609511551822918433117201058622974506901711534748068875838940933624155769835436696963262829490550699780650177017170671605819349656640292527594319845190357297428725267115494982507528245058671489246302282990459515619665487625687029608582074306720469669177607705294202102240287735564953012632388749340997639627182710116113053807354462313642994065727358400359025979178335194408249933259687730518239444954471515021717889406762385821434371600022736605707960546613497774450904207105431621403996931631329054014518668789301291035018771465727061788958197633984893586738676113273013892137257280200310822656790746988425143222451736098064818907752722664965356118286890748033414921830025431513077046774794276952375662156659541138354641764318255507914784095091597717894086579857763849045121811696512876308452133154779718274852371570347804786869713775682193974528252615646957457845033683911767142470496054719991738031792602771942853835024162749377896400315224873344811820672887743142727801605320765044254663099157162405225090800631055358889304727822530524921749053577486383543505972606016538638626377662216324186798643897609945380514006565109221453916301979111199818757104488532209548784438863293962563398416770480414915534824266823919049459874750637282933536648478457318180535271578493618428822949576348961101042903714989470218249694485497823697893652119338864780515269285037747922754095577374666397937271013109673416489335548470920170748714113104619533650048108047764277884848860020167966304983397922741076461393574732407542539089898200697148609205456129611002425938704781136300306208873653669491248900057375488386282576595588281907470858760355081457296403197497470965878844547954861450986282544846732843939696052730929606761218942427754712536263810988145658785316135672793766892273215433078126792766086210780329209243766407827357422342789277060976292877743559610417050812788919699698500467742970327047273147240671315582096192921768154821955458964441019922960524361190696247193254339981431644987216455264298430231333876268838825438367005075715826659433269450039023092114542652882587282760354497387937119974689784656514499259164929605095017900503832245519489009080029713251776862009430105056616341942309960569961162012383685640897271013635484397068388077993474973399335427743169056797393521121780817169008569111492875536646514495351304662207140025695263670174945643679857206879561984565472570175922738898421534209375130584965282799896799803155781053623944770649042901794372294078154990746629629523350138385374703978262403671981462541751876647094052660884197196031421952551140386484692133678980431188498322606238039515658194701595055521244610774650492866176898237133476117901198049229830964128114706957671903265182904481251852991831938462371301690197848351058970604571883846194755865644914856849939422296201375812230724392275352592226486728246486925857780868231610184290309652659378324132020076439828154399782840461888136710350337934544608408285476560426918937635007815594976151861599094702374248925762768171216070714796283218504727236328733248562391079609827490068281588470250914080048693503397778780954278610493986285895176981485171764881213874050413609193507533680211118695596481959067317626839142166566839960443399860515796929056734534433464337210202658564664994559342897786680550756577004374403097691969444060053999650973785936876628331939296837727338282140408270427085986765721709260439494300506972648942118439597170088003029514430200253865500741068050864832477504557247666406541505944151892145427912733887032234688480181292426191630012943805636874405081535686311193936513146314427716160596602694979737631761829871135826845922955502518732724815360851284065665027560213005058483255673770602131536664585049020831739943205976157448824873213594313671101256906763131182210882434252189151394232444973282233205495234255327079692837407065326451185470300788215789238494740199039183873077384022367756111305225782532259068936844485435263791849286794047931122593798938519774836977204282826310038432644670570639994894850249308578911109995439455452924388585179995214869945940962312773969379673693556297960757878128638057744677168562335433053338061000728720365490778226994340441789357377675716949787569788638546546022068371536718341106983272860423878707575808988283126064723105625109573038191214700164426541037220909121207555837285192039972861229688883301640793890574516890688107593240198181554248792798722062274822102355185891312003320557471828942279039980573772400447942427496946439699608077547454833481024170680165366869496548283189649546398332468037894151301745187408161586150689374069041845329654195500011310132339584113704160921345282349551285655625933934063724102405246912919397432070943469274605594746900861539492572815125871248679923532798063918053292041054361060143994261796908584127101129940500193557065251583946008477377544430787364860363091846239498060386712870400055550911607365293285145959775009593319168231708836465729928274847668778984467545648573543169940204153381341427931736396006961453026978231363874462393349944222073926180719530996828704400107613995928131946590292332260904958216653328347634632292898923840159339391841728160306904066664029428645549155462346641129375351194328324262322176659535746507227328824127357306116210643828332821422855057946530164040867357988809861029492946014430682211413271954384993909304886724602222090386408783701006687752129535737285846435393061115907908084330092567050121872481984413623107545225433876970064499980411081153756840437819831825224266642284507547979631159408676903859461072218855661260715931764119072307195363092984945048437581021192085857482129985088467828006304946769696046976158317460025026379340534223699144087470503178488301766908380042155893247941225435047673278674058295159758390905742733725859831583567258679170065315559567810569488034376884652240365166594162055449653466416575675314938060845077927156898431716584562451857093229653695929973666781734227808347966760119842036222501156284786870744589284176222708362021250621556751271341272783942537151625508190560157795763509287449154362542186910582595756554499318734610491078062818538273748701959793579552814289809405924684039982448321353325105588483828579452773629838423095236727770507060321396502339213473979795771074950322605094279064324873206936151234462614299471724769540638162503392833491142955075217839229426543492342415824405911685576761585389974222716083517222659661732861233463184161883012231102991410307180764059517197560652635830442081396235070030595004725458678710018239398591332661654303857884525537437258398690509722603882680187329917562711481522301065483672442472208583190310314936828699069835001277164032316788680200243623513481940401340697487284490484042463465989979089580850534906342286492479646732201900116958961694426883467205408338643373258352469819346367004352488929829171879271364558552656235466778318801920314582805560569975217491688886451940251050304462670433700906236126379920471906474495058440015270315305516375644107724930296099341997180552102388587135220662224148923496101185746477209164853314783032193290870295469856985894330116704103817544921110846129005469558549243403014227249930178900974469716248613858617519178906089359311176499939931098360181258788978229290922525550602952490594029785368525198611915422351009527946913478646060057837795855894398049685487791849537481309690266009566147260748368573496385458598177173646115818833050163595448555684226502217945205295265644603143967944415774243436728056986728347516943311171066532884652180472588182531620318624106082395599409106116624828685958455218821119028733679908375123936187445481793154964653498781416213225182312454819263132125647477554512837594011706199962383668568478136908468220052295422633501677706732928071195701851691385613297675665988558982178015346799440274472069726800117379043680123983272664158850062932168469453026525064848073547465295006479069453556508828998882309878916285728675917019162551772663966825671739566873934348537125491292619485057672379957420404803757679064930174939654674436336069393433071723524566545060716712613558340837440189590093925580895367255797123382480420633839977679716507994922157752780949401872586263757580040231951081691834701420485718002153830197209791712468157935425746283604198061889628578951512087268316550100810455790232967372501828566747581369105023409752524063935267792731409190030653511661925089166640388072529471125092021734326787325234284471225157382195690321770631900287768054729998027705910001786635402619564415908551895912455583576199275337540485722298650320231083682055380645850227958584252135099009077907857576080521533073220021165030819994330104691141854629858829802131854903802059781619139532692248582818359713817376223483420948313620528045993182492288608165513309781032007020553840222086196602994583417854589740961480581270775965507352713660348443869415647165255860514061570636614798321448507655862354150233386048836224921109570014377940551949330105867914285263691320652830182643951505263456941312149994703653026081157947883247751061539177006601889362957999499678913266386147719039320905079059433777490217195976289931445729987542520726504081324857321934372089189245716593074171287090081503224278119566186565365740793735900983498237458275020647973330640360700033750474696414429264463260090297509972680657875395155486007455161868531428167608736275485210209753486290732762929414460454945362491291984438145676279856512641351501696139463998466616248503470653557371165108734184965030780434614249454447769201581066288228424768091494990244121790843664697360792602097208524399372971160782944236666266217016599522615911839845993344775402856987143217220587492502666150505438114839753074338740121531077159703724637509842903161252007901747872107297022654635057235546943522298044795464579042465706994642084813209569454157489344996083330463394515371725069188626964582557453357989790560604497018814032121316006548401141945596226699912541758790542786337260569570848260621015859060632148464675530407961502391078393080475759371817325599954723769470284573204640465075645832089066889346865127006457011155211785870255362554391789606206594366561395785384420480448482415911130872629384013298440249901368706870453192271604401177676448036972439070138891849189613588735784340490807740777667543469755899653926956946132942365928911578268298664724605205551724858003842536752068649180796334940238077373432041255823914900126237925685313500338269802520490975905421121092268361164767639236187387609669889755310165886309879904973919142204780452685525488554773610245758768125325886219063953848317807106969498952295665880349895066444655731193176778725117444336223109067945049048974357631329264564479491336862753218322814664319540440551562033598766304004496708876865692005174511262402525744345295503431974789362702084347174776440750207456176772065562147395132240905052922362372589623192039232766006827258060770569792178601456192723584229585117360615609023771965674498805720249887598003856360432851606344904198376593777333855873598938303744792105657747811320675659481400469354053440048559372577113099073593610158949372687402028197046371442705667784288008900408879312317857776933869887882847421097947584057268797337141969197036256121384347710137289035904341860529189547930109459931728049340943460059704942803536545527487972724631482270751117559685482224948350647676562557352814451580673939293256857301170657357139702198142299259528769693242665652447936245056520023142434087053884431960893460935775352604478138702279440285093493778778589389107662301678910448080784548338145206825296263859254021399691822127736740089760861967987425892741973165955003853440537999393190648918549874876165850112744045323785226978589917363990880872567899353259776973074030937483889565318148456493857059700998605004919116735744105171826657927369627452997244290547474197268020875087915513648235924874991213819815020248349356064162076350314751375539637140658609194844234017111357340657346319438512658655035259860985918284544253783211360327036804468822841497479064163066105350890983777910374198981064665135624548992718568002468670375145169751111981322941365837469568699442658101692779149398874875802265346767531197206452874828338107409442349819753476733679479234189982921544488103607439122994951605025720885838476305092968380323786067432815369592300980003521790268972888114423533373545944905546044279044444388047862234741997089888721137819719833737103729460355254509298702212270784596188328839684849055393048471974086644049821066688843291072631132609871496045089177173293501588950611706661214810282316254508978199421093808665057820809439493242578160476372265483825328691712374383636881576115318854550080431418308303970565471310413275759843891245674948769216719525709806112434940528806699978224050747119909189249419033960695194341103113991474479386473070087010063629877586686823061890543322700188261483723615926522645394413511022434505695051050961059779613800847538443277082672284913201532125264107936579246114897140071590464683478923141139461123562111790782107951033076829284716153115928998484505427371667831132513916007310594455696172969052345509021392108007380511422329656288275925237798974069434564182589249121780613869183547714114402140323939437110605699151435849802605987553799723015501703837229106701203360074560623761908998243111047203475182429101395201609787784853706379344624465948075197981400113657705097365890379169334843904764745101503295626814602075341466539196445493325594385079931556444971914852139626747132015798500877292748085425880993681374675840030056745317616031822472462731887910506851033559642670520113850251919207734124513398768028204159160083220666860651136337278543236093159552319701171512190030461761158735660144762323378311668670938118539390276124759411899624259600725449722664054301614242501269486775200735026045108417370776188990944211993215057597092627502782613574548512847064282287097595578577844811441986761732337695564247429670641010040527380506032760371260096713589721771912451571778649129450189551872955876651961566879628860932723215562988046570319411267909724970650447857387011699734672743744213340546037740986913541090213554580361346899750217597496668378462913342586523961712674391927453243340932043080313247414011527803196502704333826071344871592155931090441408660421334920031292794944532908997118891504236501021979067189496382913969854140238519280019024720047897706680071826875880047504893506410872103901903326254936858744896140019255327402066592681313289342015006311020827924527998475726780933372182345607907733367763128398431579712088757831894184097352679586505392695871653622068378434090674652685120231810587031458374674606921986303499890226396691487105613266942849562324104340931462805498541085175653945790800337191442870006103391272165400044595815579686085265550926208108969558582813056317013902298032876566231607874041237225288202048926941872360203227516358050758188830859893866126760373197976466016764524007583094049505078523686867611676092916608472944218124151135052746164546405996256107225974562439075797256673610819729597854108710852485457108763257637364029352736690946430994615099090155426001894595227785277636051778514583955056377970016163588974501690784322459075550130867255340520863336868038341960039689209258900892026080065025831390235629194638600081284685771572631510942931206282999672466797541006697423763291870033661787588093411966330077178584512525402146178607430205099039690958410346775518422975974742931970567585893426232123970657963414654755809297525281858397533249806785223802596659709508115660816218544854939584261413212449318599728067866630071943687236412606244465858535264774774007477667380896242161696592607666230385764575148208158448907832972606158359294901918399004809625766307169916630761937563391382975645447299075834092674037809076854339510280594873609167226040886668938518064806691426742803523131731787921937474886548713464988667223285826217127067628797000700996120750636499404516588230249943914904889170078165646156403537220721790019842264619397515303377748919508895736631160669928368769615116162443150815170413977134620220515189834723357757844320288686025792690870677405981150949364717083659113222064773910012992577807266755925952333737740082568022863329271422850437754129369631614726171905263200593821445114351584557150109914418031576591347052750617080637044082854720319936344036811000321976922599554025392886042668931733754757268978867520655572904157555775230737070671167789260608785772258166651450018230738384364127814881594179996006613337353220221705378068584756145888497800066441300411793195112621577084511341486492746846016801766257598980898900400066599446398348219730471773009130384554568833124117811992806832705526257798057425768812864319669659719627054307837643382684007439962021734452085851535193922168540858413255274962542866581746777547833764384117545443481928123440356540676672776102878577337042387489133926531172068754467147760244850799879586519044557504569464865938522088911063863391618094976018752272935327209200671750826555587990619325135319438756417318256872857981781425265103144708079003532292414863985726685324056924080049118331262533059733707913796161080096394430934952224911919881269542608106772456895889832119951464312256334780880719044562617863584572321409248016014609890672699108349662675235353712165733061740429533123255488250846750129687948326187538257754656351319118613078767559681521867044681488667362067899578421670922775131612569157336060148840835118711789536018739887383253893613446552648461386959831180670114571309485206138183994164994040423015555222488793405555486823017661123639312862059709725010209476649727542886010553709252956147868235598763069969572337066517584536967326761608493856803253289304824678228296672389184457257983490808537728902006764162786778021799246605654100958753734060886495052216953790581371531966190786018404374010648991587598767303179480474970602527053519591593657960038988864307260312498019383760851406144491841131406232717319512477802687927485086295310452870881565804062323097133201288477086661286623360499939630677832387482389742933982485354504387188907768255232221891998959913656437719296295196150437312982479735201801000702083177881832538038517622239729806454180621629641789978960389046511468221264218490478303999417259285114501749790864552562961013560549828767775559086738741317935122739854770941883142702371627926138813846986937254238446301699217790508879365681335625375128099731065177050834902905283607449597122449905263203979751554200910555650713501369635420194718122974525933232035667126221834351580367900275104107425913574216242730180141093279718084068983811327227674538148948799350619299464950042851274609929478748754534171547634405301255727241258915673002785488299038826671315405834457063512779805792261561273383946385890034234887800543452588972780577013652509119109474186453234050886808738427023207154782399384484789003548685786751707234215977654516786553936156440970747058692128017499503783802301347676692967711639328870038940229087708263056707917367038658438703262200437856202835860742116358969588269816639887345632359420667892649518516870478295915180074748575495890079876701842206664423441851963973448885640566333048708445488116788117342749050314122020988321132948277852374890212354523035117260880217128242129568194127484127615374840645193892260278765043816794576511577076064048920229792248521872460928077215223827476192490743332143356933994545607271610267483462134138688966363527372573067228233269528442576811852088845739994252022342845003544942658631682310897407457636619956673597568345538883418104830246552866851104290067163557487931851664341816816733114942013370278103377574158325398560770218239899602289752246660022734914594257027925177533524881850837799189197566033894333777969235360440300985958955886438973601564160353670279693461906170572630690307738273925782937174141690548550833468332591282909243757347036643658497117457160844458049355262646925283579228894839006107787669723231932568299125615248834811287747773399088539187621143856005573942788495850661347458092593183980075986687577523695994213451724865332410055871597624917196572961410018247413696844549125029626761144832399180102355176195264551428391398617193033000149213340595000347003965501686460626936824079007525043321156281413075214194428338300851327939406567852410619343028940626590130750330107228661745903641776629116322742918490959750332722366339489294655432956379288440689726006308239952278674293350528932156889204949686964124945273057654364986029777005064364906190392801311332432028338307767081121367525472793565603747262774742448545170656741221782055472051936170895505515806974475583274350536249074319770808311329704811390532926069619532245948274891822419639137257695008216915964039381068389462385863276319691509502741703179468505480753905326189978596775142523520963674475594396939474912852178200269269683918620123912367078536671600937257820317849247658475857097448640088912941224411357486633046418358155806407266752110949065310539722224356438455005981454897758503570409018261855166485240663190568288549209051502890709576220342253467412911239437709835746595494003697205211069702241743190883844448737456984995081547099906411231376955261165752487207406355901503128821631238677991879709062597189791736026695346808689529468483902085139856571610593443743454575407725476544405235710532028682806836361301308420875944077882343494376965207127408266419110410074768933433379754410816094590511959520833609291311475190214381071982923720417446914999267191347628653683206270985903121039924247525289293228428032646428957765781081057552132790608934918907518355458851919879716389356032292855092478113154987143084507955986971533419229929047779145950605113939221021574927063443834272314074697289994691437330040354534967908853661292266679721327667648535636397913496565415637677294717850967012929999152366996197771179189013759936306275478104470400968720569798334037340967660273252273024462525780253633061771398168297241354364025855643676369588908627220942363673021342591698428404338621730427039125784608967926366450603687536076062684870015992215318510323834906441121998842458108816737120796306213325968331439535953799536652675668066040313289192802915618623121498969147691491400088040413281507492289730730179128155155475319211590504478570090779448027418051404710297853913509601825087762215770330436466488523406072289883160658778008936306325675557586739572601065921459111925121636757675488830334668632427374358519381861403952332125804311920528122737427970332752050249997511600594664360227207094032081492179173932232777735511253794105614681215632376438956534478798294280741719284827017854873224305543358727837145173224787592628281025699736606116000587421773828588796055464105469584153064349038146923424895317949840055385893687267279262039966612532682683165188224542329506658977691245246124523166139187932203723918345419670920936988903035023546958136481017877577345549513451200491525839214778194507175722738238066049382088957495824721687433779481219091881320162951572036491783365725623827582414093160552652740203765208152712323426497484710346816431105874634902734934518246024165124360707028226733603553096661210009979113480213115334996354432158663956949087113608166161297224409277604064530771657952980915138915216409094915270026368459265779091654647949713246715983519205441875453810916689329936027694533997963899685227601314880753808927822281582767929115101647865741341468187135421408634234537882627204418747761182218596256838754966836593712935925908877099432583569359498696427876495826699808776914096830719647591063509165793534489682595610240062771656079467321106112106669404142319981927976403965853393914751732887376725673818001436496751145319015485175043496740682117903568922725394864017880234307301056360708344006268160916025943420888223650037526644172444685700122123111850930352208906503381141544128798462249132929298175929948134918766834124915863075162874162517314129973875330681343649125605780468406479584071400159952114391444447249384412055253043015129547543240514642404777302632870104045279221915618777872605309131378864237991810358521781666487950296709321349564276161573643265154436463211633738207147183532567634141090109952928198012337066691336222438830342566270552394317422883768868415619838532627253828667846870406322246377506341403477002710620686103844234110881014116007815362895680606213340045692376612758826067816969104060638280876390434088777961692133532372709877012788818207611655326568409534839178392786922375965959702065326014207301664639007570728354451367731287420764664077732168527758896117529223445330702644853125073310324812218741631353201685961670825153441627143956746764061937265944749980695638703157556952493748189041442500632102832573387611929659935754205905563351969045189436988384751177588481361133910194145950618012104975776128461283379008371093706450699068870456554994874757817562746968284748327532104047332704867429295857404475295555097464479186459330380141823714318727875268309239341361670374703153038688650655940457592215513726772995240518863634068365865149271627584519366049973538644825388414979404626998063955590874058870160355614018692353318419006897187036139874762188860685842987113464633890063745960110460808113714508393884524425339225312315569247715096551438332103682594562474638603780055191546185286396109805073684638722863492837667576632945988503808980451699489357346871894116532108732810235738589348299016208309490907183141371269565062312038436140428507860880604497375817522890126973446705633952856895731415949097498979225290657573098838939109381437352095401561675911251295832361521555227429011253218250206638665679071004795016736256515716535807213882642031141760733138273644163036711549928647604662823445344029797876621703039561932600779335790285491410473018594985789192258882741656382236289595430353694663593721339346996089760278552165543875038877174340041675642750380436777821908988067289431332369295930258698162786707805845186852036986389199665566624899517927362964991522782180333678140038453658648199263244759988152852565549054493264266638389860183618041130828507768435391947401538022392844400830267545168772468721375640016555344075455693711333235576277403777419926820999691106305754624851059571589749713803804404009627516799503305776864001977321121459348919274518680713820359620513453936614745093931729527553320790268830226290457890778008574112327081355831966128588866884105802914237168251043503241624019268735504157808144294882839820232145883684598771521395030951976218366485468906721435353576914388223481441252854912007028970437922736713085301856903374793819340997952623546105528339156794629333528929366686815102836392953821370419676799178053918044822110348159278535334127876963847826240805355029566483778747748789265234979947811388279387263172004290437290115652402027541382512189958285005397253703780720829993749028509843879006887618635202022788377480990314711313180942768280540220573625381515882610524689309583335401299493203689097460851327864326256769323451485445999576314776031912766894110937874917974911735910493623389393027953737538828662593966425581619595087511752515900238959811003394243596060715132005064994900704029659736282542872164978176048357637877658324279731097434813339225441256158317896130403456785835531514605505191608431307295031924499748412280643457657818857274457809438509864953168545363171782117632181736284745024056657300219524572031118716519914794828870061563988665184588973837517233807928515183849548612456227358742484736984541224458309428817247097412721351107434808358074556798192349022913510749456662099413280694886774226960326900040034746725647735652690371536202320539249429065896243829928016202307665036596237695076318588670359117493671752019442315389617837986682878812279113406465973049159894763536395410360095298739849381724746299608966918255550174187118667629047742573288202070894056068173062659074192273076731887883221153715432563087690259817163399281212522411353857964943914834250179710802577382152396071692479083421062987830701277061402009530283777157849798054120406412674526604883009095017075837097403034739081240000318628301698863042439196984539302768403747174745478339439044164356273702374732475816561735726091099680745147454103573157003312639575871200373367749338596950933757649267845160229963745831228732043273799715987870111565042835038734188665997072043636946348777633853478616644139736965700824383377879292114960361616384135512930935471545723470743788938811249092972982551713192867464474503402268849264795631154734912234883060867240871912294373067252166015937790210405457728315006914650448455188666327658708308372501704911708025699047312120069800134983275347934404902240264219614537440053047722621558837304478503930765190752909078884293684559455190083840957205149105783700028938578649920173295579726804540049325227113262161689175117773409886030140159493674411229774564719617132206787891640408192134978041594317662232715972442398419459861677045350773157293246677665898613666450922665256552334455581919834832313926094473377284214377213962834172869621100622714293019848148017137031488116278535286414663983037902860574395135578366770171303076961481726553729264297433833693062776521827708803219900872629573406114737850851189334502534165672188126849394567926243492775624421233975307435655132489974090331370249804772365268119043095978533279327363704341067003307707376159517878443539041522406706282306765897491808804531520296114655813429204503600294621233421560412655498013712794569923837771002662428389078876247256844910023130447466151590540970001605556508395075789092974965934057544059464267613982709352931695587087768896585687380157604684465281659657165111220637191142279646356647109113830036424379137366404286019658953448581065069881598525276250856822679103619842189020946959320075685766431896359151023904915950853795018279304988973871863110524382058807026578555288893140345953771385478546102047069466564889189239679710332705634743221029046283934260693745103421809703694930794659350685066155143731931132345145899351838564724931505333874901039959384979553039550379227856489446537606698754283100590238720754540115615156377977888510798929194208553162888569282366720893377850283968421865296685439089041218390344968209750696803377691086480708395241426296730933359981385850473347975602627156641637489498248167505550783283288942779692602062073377510869147602547717716226698897899227785936597735019835342112818962996850825378014873999938341934837497009912592929213592407657336998406375733222532366527102524863190433984477577603291296725044196268595934751902020192058714098614895697162771997086846025990901726172422299332974200085120399837932946934116832631863087187957391838163116431196478263820801289048439634162767040566159514376710587114845878341761119448312738738156026680844044167387397676893960612979344044865656238836322772673876230731205658953400218299946753632742784453640088703391290229528593365211846928720644517666769588782987598599066758994548925517040413295082897825561568660253446393589135153508162101678107996615827071729882729483654034070238304954992098410454614037713242652042004924172038122889708305618556447392551636055019472123879556950020389898476044028376696632145668717377816167255089628145617018246610639251805989384094550571926031387068262589040885298941323513302191286079096942956276566021646864083640131526770115255860093810845101617327687332067059812235157194430944768269624516917667493349017809883179223759074841811432654309642931356012331619182292804564237994842054231685591947754284954789464224447639145853365884898619791155425182271483251197544501470795698926030417281134572208493704618147067598401907196113880714651354908187811681765324558876342848793463347458971917012130950374682604897242249794917442926597748669017675862805489771433499595690153830993501430147200679148992206577404349270249128801016711213349521708337688408458717621628418874360965272382580870461828078889475963706665614363001835405742817290458964902724827222954537190130210231022610351438833429195343098331368281552182329133015287552362668258092984046069672750573556059067906727561327002446108979730834381180487223829259657773283367717904632593174977294380417066129726553741762154056997525035019632873340983271674365775512060415282296230601634772744920432549030197165591930635130721560791102383302433310690571908829470038835847485703221795059663693700432841571277060712594304430693356665246455732619072672033541339965087613497767359926792930876821065095205488956388588918842569193563283265304226159271790542787008060137069473016556866967585969780077903768163354511428791071787626253306942371909731971871611877988389626286085204114521964679301998793526710621790230591575126362656649559029204844010475776015358965341056719717154430355692918541629585723160026837891467153538124413338151023868420179383732695771069388787133620448382706800345291666620316824715546148923880708064180523293526067966070502915186599126130438585980203090914083186480251970015482330049947739023832081955367541743467540988631819922213676663284054194619348670242441814800163316997896633954402329548070624499105780430026012551373553612407778350717934200881502637756816181705706320246825502814683042976699569170874935690298358737059114455568220159242861778158742386900822661595919690826866089160104625444687160933212914246049749464068821141573169209994949081734527516239900488988594550262111266546138918948442217714620525019251800092576364969170678255545360154231914126031755873578728052411008985958116629161532211465874714719777525659108916712612147079881710709146401824806921232262141507899794414375931670232958871732906522487513985973222264771286711639506031067810331981670826544548488661685001348009337225402718041991762935331772417945008869752230925578206413062821522476309610281855949926268920034379362505751519593388876257707462065620003435736113945153486517931051741588689710148167223131140492066819933758352595890976278700795809932680162366048026907918364597383765103019589067139859328991077545687883709355258414303483268843798534220907075513001409994088336706724034194344076283298407998688628084586424961978511196543248064813452519567231572693636858070960818046253778807516436220521971765000819518258533440428875103266103362630249478727114770829544234163848556214899706813341178907432177807877979676051227378757603394022621508770790916940662783836344593097292666469649426177060857516092437359910377287503009077369860079269055471772355565281139450648120101134181563668294217850680711888540200760931320632193546464115871167589082112588502218190321568093931705097954147673516327844492548542895184825838597101364063215394443700430013868087027380048910097825001443744812777708723379341452196318535068037740844156979749982425498954351597500073098774929297822975357989924601513275192950807553409339767496434243729442273326562059389745669459571328278882556382586345541720295508054174728605267171081710530907596275522470977551543058430492036600517943265914309651793944058248506374490418654002294223150522529565734229236668960394123722011451940645727576771881810119173605421958623759198743431633807520976715723888747755101201022402911385200191007542929498242351682316858779083041824623823305199127330770004017696832514454309300509014545348508153121489714148883831569139643144841601776335867271150558546603623442207504031704328633410212469788517497577785076943867565294215238368285888977258993703194157973205957005040003538653513842575741266001880909840470722135976962033532073436384100942277351380684556147022140388530572155590441875778054977241041983479911377185447058209043884301977235947000806957204876224481193524463185799268877259981292905081853426808920816805179095090874825170603687136877685989759920722624287070167443655167843160494404669874746767588189739377418771005601679713574729018789740704999368755359988688650022992235702216989561065060231531157485858408217096639908101437215229211536388109143235644540474963201203254493383024150138699015922595404036035757132997414261259340480826048741029666588666824802358251180121448460578100620700965365394491902285324202511491512027701519388768029694438975976983735765525797841796025169760055787987098066665135065485016824636786591890448095943708572725205276611332727908890282107823567759214067791566646388494116891892747900080211875474717731915475478021555456036388875221379052323579401588894781779797233228481733457196002912694339495615781526444213146964060188375944494338014063865071291602634427968100227449838747613909146709953447954095379912434272042253530560470166471011280741137226968859075041888726030223442795503090427080088438854750716885746282005187346501672779614186777806498527980682193477358376203373898906756266812755636860240602842493334054300939107210081393595965497260888274873167395705952387682645462639876588467480116227886268158767492111484986641139575747718832378042971937183180052685336521961067914410600767921897946483114748478765599553912221749333167757726083827357346948102662945209003305723047592388888853754808887166382917392226213365006412586839491135140888695449281438404410330364443970319139992666792809762069334397630233528424627443686564336594107378015985446712926503369860060602507918904179908685222983221301646931069016518308369315469391150148918448288026925932592646587047088547185959740437538706136997973456776918296130544452227993957085599928762076698370671730270375600283223430317218757371552324604084180700722194030307363647990558722515363343377706268973371204591700308242424436273395892518890602044706107983434634165551004045641542174140101439348250037413712766416091616939943968869778457068707319362277344706810497971145877731192080055818425568474038639749300623841477571919322827929676682042351736618999806507907479281273302374465482708200034684690586484017805461943251775657235129836771671791326161976580549071431452954193874057715395280969234343247707339914527974943700341218713839866066597125531390316139474741720499970841869069207979305339703319329485263321487535717113283841641317376377277442620451852250953393177921509702534413474251381629875840436756875930893955520279226493696801010612368702023034861084642959338937169338861789230838106166879435249947086828320193077631615194325457610589864089162796990419058315043340581277711296625297424072261324336458094845240071683836194835866697128395905645095696331261360281700749189655172697664796819151919759463796938305056402600682031120955116751089138409136598180252527442872958959279799857820277872692338859824514767468378351819633542279828017285656175500168115778814604368039248380275843267631699191021502088120298616752806518278001442709936147262377515872962210250638397919762506730022346975851290493203156781544787092930455982991292809454797389726564391307921099002195256109856234285404917846134763909562715874639259059793130900368980124200437014247534940781961686829383835263255184712690073276929686798156449317460520659863643347583593186770434190176465900775310553070623876115511984104498832682609067901136035604203027163617528357765027580007976430783807049771545038869625322473320947348815340288051165728205937810286263161957799101337181785771981309596084496064189051921922855810984746958460913190327130144622630168793304020796333152750426925151451173112262593363648890408396648340928585245396021695565084168058696958119554717205356862733302205335140857772150242520102253954765019636178289415858733062834375918205117712889227087984105502809185042579287864695188574171257665291395869249709992798822319278978328674346385788017784062760531377888800524785252788244638038434124803604752553034127382522237244192266964047247987355578818725613802196407889106772564060361161016772513432559943372162443122776485758146510571344316240803747680063274239000506150947413878690628860583113494621984834726315891577064140114582429886802794095113452105908772530858418766193999680591718699183716294838202402114358834384878283968557421358894586449853199936872446752349212821037809608164293553321235707478639512186876254351166093167752020960075532576693331872317858138033639163480773124696733903472935362610011496064551368834171901336822463138786963197925662193527030211918188493081216829221413258493716913377166534390525185072566683005049453919455569341033378529369270884126657043381124821442692257901382092215471302018529127744807526923775255821988224612555291180458430203550511703086790505072243422713112814404377617363044494659898764510623520246604556414150958799791188078723798087534140470857132112228939528892359063838401841883605685442573629686048705220023195107648383309353416786587740930179703361568331611539538215910156786806013953857634990135140413968043703256710084457670195128149274856581004736129160428838125242016301554193729917395244745565437042700055028876345832865095284624408338107437730348763304707425799188361273062731459203222982188177251641854277630575208719073930049482489047920535043468295297556383355127631385441448996916566419065865211128802242520808805251342135545679738088310271637516766187184383862873519472239618154623548831566626700293762101373147327655300474176491458995492995789351978196685392392213301961657456805310464889463251986268844168194563417250101294591983894290818894310439206450338277672221513238589146375935992963599746262385731536467214977593472177402673053496375696778316295132625921708565095188308262472001671814876343123858154277154424202963359808336597020102282717365012614920420773375913799932817044870545651061603405917436590542227865522334889700261722373952261638957345006256806428819092570004489362668720146305999626862761705479610998888927482788234381439999044611886562430336105798615533975382534241749974910186945498516672970980826564843565613996302791839716937464775009248105226043711009758253008288236225850515322348532564562851768893250730188884958821894282239449031954528169749661611085921171586291094305130773898209426307073282122141995180299298561380139360140572011531661868866134815157463872305576575026384381903611597304179270146471210739958320804895057796062519007795810125643636439233534920276367398880626599732835477882978159982919790052935985673737844246321049235052435310855672268827384821758943832621760880015892571055082572485115647696777029856150621372549896909847340800889097225650030472247634645490130834497638043587931634278123235907765960524594393549302192735063424650348759158613974956286858796043683055339465016597975834382011180773461875915906305106200238695631227026944516142755554415339693880629683855091127106676331148501164136590069952130171826001061567429038919379068561566723062360888401952214248042604197861768039068421883577759238493871721269226451496467834700987408440409879083075925059330083951987838057024187665793133043948465204792408223850725456035107492893473817718049450863552176360150570085901716937980563813988819343925775060261809362211514315919020728196395501151498293415009517851730060508305420750147260589565363967252971103342461791466073493509180968224205543908898862460097620610711975818227880832657492125042982670957208872845923849389892114335285603854853365163432298237405889973698700241346990216934776419509613520342718511424648179770508634084989902544467150265258961358719363822192693561977450719559060279179992014939296361964885472139660742755326208009924129999460378645892299402849316798437288880612618981519461702507010433247505177659771602705422735667435222595823581186900050442312319665813264646165058344168385866897526383627463796366624606486592106192366972068941257126136488963081055931963111170836574179167163054775727160545352300645628779369928631863910070037791570974571873427818702961743195664553236715890216736259656300385062714478252390319075357788194623095853986930243578352373493880420788995443784162273235078678164643340001007408939500705076200747413558864399007394190163653880944414697480033463309488598206523010038740118655988175690905223096981056842844677434584923953726617774750186507996356906462917093681942442356450534084614920763027913445444168261302195376771620650682338848126527764874612084552089287088229707135053011960524803613419192546344553579673829402145751601888133335721763703510786091027828258335604833581932425599768414428981867533115900861351379753454628636784468414082828968551790623216460676690803260248313807722593243371554030653949404650199669612401793389132847314717590693724408606832987530442747331532959114483536429737074600876206418913815633027488333013023401084267576240753845400628325289927281486309972589307861067784788664349328812170161614157198646600772487292378837759634540614797539491080195603920788345410938052509098000527742446510709251279350496025497985111509468131809886923066648098197804564361099816868979411694805053008092669882202444295779321238137667842563992353622121412981419336523653415119393430956693088727996866332000031384762660852452946814528093569525037163340212343742562806826111396845135999832171134782119985481267084175882956170523754879935568137635138860811362381393385932166442451170119414314762428268958822655829652071633821997822677937161811682995034672441432320441547240348001056923457332099341483309714376869939242146036260309689564559696040514989618856156449506337461972695016241139579565250406402848704766023523409876959571467873391453710379553969994189242945483741014814295015341856492119610167962831530562484069472416804433273395107411346899356067670256123916545270711817777992026804143198392425954891149606792674708553834682619039355936157126398632922576289136747106232232532531660350519037296253519023767378132554563160166420049684753824493050118417873103257796944786840760302311713140670439512057915594321486946113199344969519887652317262462032266554985735743571292300064708188961949285087553216989536465559961218674694249343269979849222465798657793939766445618004209405589057706108777542009345033348945636569658254206191255461879898098911938866021387404648717568685199999266781213437142726481539573516077481184549861804636263390501601118952558746391385496048987341028297788683147678650332215009269072637682097382765421437172551727562560975731398952909501132280888298673107957384255361692313615286236256690023733036312797349931745163235293732245092077035906483906382390379728962053893696425938320492931422633458547606727318567562939119827344346228189363948500829502430888610283226938922184921945145981937961527808151885173947826328668685541532946037117371700147888503696137074001526514811840824977685778830555157857112617898018666106463564743689234863145527126859156575114622667191862622168764051292109503989450503886312305398864835266061019296885437655045556454332652669837257404358401859600517475411254261402941719522703404681761845588803444719560473269022589150554287971784397132398464746477449091872788759623340215324420833603616175901499640947135989390513389442484357989337664941600322490960643817948246609374312141253080287107869201898338622118002157559033412847099207957572484923653752176994135188830345483125635692091691270346860231550175167338479280929309718089908554391859391643567974331383696982267217863237927250679515136851433867937849864045522566903172989253839215308790464310711311112245784883523158653966938796890507914830692717181059800070113046819867131910533654097554350185580828462509815539928268397947220990841817819804611410644180831625019711574213143572224238464082407845472753057092845447097414389907759253098053234106687382782826253735143607988197785007422141031799387223697013221406503252407155382100755996829242996863945333604103859635690954902365963073564769963646975258340392106184676315002438532714341616624913618566970056067021311704534465978360631803300834145941794643487908569382723414752260016906941896897415399298151994632340556487107657380891799902123229629630803198399070030470030712743893415751284602125413402824167587373258383814981072566200296778445310808031777345439251467140731597904553243214605508496837062780782212342529006569987005341226452839758568305672097413333282745612285735147196848759611466844073557956511781987518122152701697459244087042498384750108059203125179460922202024210528780372039942076879338617621231547330954980581902865151395320968535492823481001330625763133162374045157822742401431533988774391020921828079322912070633317069240847725694697513767609583437237304128030208037884668966479760314478289672777874392252099581985496557115093213419931504792995584638397072563504119020972219035077741964435795438965591275172161617456410080483094151837095300109484102366685644508483762921868282864755302523956312744122867229139579003192303770154711751323419767302891871113897058215477080986258164606188447547138653941365982481842157854694736912460546318040521923217995729740428964769381354948701886935739352158248657501512914073583371852320945654191570970910365598981346195762676665703151779738356405686502886401149692605655581414846550736260256315201525014843787997142238060635813887339672409199917778524587018632922863155441108278506095938592084588571275818384047494017181988711161441376377605062467007489483781174742179506879588015814594811135176418715802545460716572457742685705088437065105393969305966364056930102129327208455787750770663607602261347182701584690513986169031320999756781265125507078981822153330199342209702605727579751591743208582180762491856014056613606853380247464291160688136342352381200432823013398122745096599765372412870544431646385680842757992765470344629630190679296478722959684493785096868890921838158325613631782466802627877927543010488341044333665988017544023496400683538943457444077755337981138611746240665883385079592971887197630154939116784680715015415936510460932832509863175984987843293693136562576075794506679839806898610842633213884671394792446929617367417245720438315358806246107745408747547214779361031583776826395808294699023619804793451848612885449654944156646992835848796995100107036302171521018945138447007843609553179344088275222821103873895642560085303341251661451040757150571603061718139579277993965336642666331604236758277168704192893285684468335679422684533061285626996559788397760325638163857596756917196276593637133181601506270644293685700942754473607201510730299139331804013706554197202012005592705950011634944725436145128852187383913860369909132268952426540055112902823323150530811492073440829346843592657796239835159481106573239079580138520241575943920048984172519320123715308562792734926842837502348346813031406041786654856926177123169290653291976775953706277278253048228491306647557947548989424290999968382198046597008651709002775211035407171448341286263219863643860007969702509910502069208721749607948440157223735415572013225549397971377986465088034882229710420258737345512809798738812115309184336268738130750841039539045640827065657347617259875494856749896292096946567507675306944254867347303674020108107177539052099841300118456429512147151402247277513867947841547577462241918099557817589254044117967127497340706358357815080825346541578746224872335117205941640802284405453158873597257990540184811035036664545740547313403824887929873263842485382243471756666482373423731245759260100554378912279041571362098743048962624375610329453836662773662109150208535210171516987292891970530533931776618538052820755586487067837979691921376140057471017994171598434031171655323094024615702023152569016073106159150362638139015469366657260237912592553081630742805607931757446344109403191727955196853910909228719238093317737101851363346076072032793986763100693072639797993243506747593070511968099329072609919590408261447136896118212398713165483519985277327735058734432813793745149418779736685403501544942800347061063378329500960169064000775996243912374704011771249129012102852733945386508293100895393926529391981754046611058328081871000210402406964164831078945267234632375191566982790016518291105546039746301521107189170917779325379640389386468286012151423805000174481847153179119968020017657465165303296375814728434085470738532516450164726275886846374390483314917585420800358210906650499774079967578852851818065354971829526974058888305571113065596581924362304512600762269909497749646434211091779230307776642255284328406721570604492492397744206607736415422171401494071811187064294020275066181359563053975933869132185675383657055327688802900887643687165243386561267609654195082128720733414556451344819315075132287775125197370528621570290112723439945945257067716007594259155398753484582547968504624053588575843200883861023348885083580237426041085849062056744120792198002434332550972940783766682908351758507118347866374598386128893946297611935795311592832828803801595206621606628197024952528233066909825200037026023626400752045008202384322328732190844960298386855167623641410025302206170262140131429933931175215662664287788845370031004048747647805773462311005705045304466034290105183545125295532244862948150273927468977851336864914350663457275100144116973887631038680528129972351482364648354531647393504915778424154881979590646620166841878436191610358142527319366508694856564704902075402329528070820076619401896464332761327773648382560495059021589733057075711494789099236323327385096391025120308415781795720831065568393146654702938027895652877886699953633234814806348669943651286797196943261413084986637182513050140138263108382169247461817536028264095847402765738314399970557246232945767436491269662860695750765183852720273816216417291991597061967045273114182038040032851573068444930584558969247559757858225795003682238841159194723587359392834482396239773985325021379856188544613615666409435219341778536492911583073334829937633456865289224738923051258328933495480196394704367136858062634543509761673631566089988728232056150674041753885089610113839739601926012112220325319216286521630010621803176459369953311191487323998905966477372057164469939369729914504814468293416386588331828366788993642373971644002407207892961696917994350728249795658802950886737413598112925477453325932376310068598553191774112529653891347140471418409648467674650491753514873207221257437966275379164616691512110822515091031015426411013014462104002222287417947147346259698567485884847004258110637454210526695818651143629025780920562976268496059239667948284200403610722082940272532576330538110001925028190751173300103702553040338117944378435676323905541835475073942209537237931073703647361830268407013254816622956916798302162052535209346317523302831932356565106752210527729302150835091692290506224568442628013253297272846265082558536772492537120836854277155740350277235591936694289232772152627518098108154613543612347302594043278769490735919265538965468386347257989103661586812897498788863509220691890847377421365472438336585054073824982027173270468386795527492438634391131615157008258242415585443813534801489082266469667696926238708229543179797274962541045098999776861379598506188933342651079479014450915493118559132888238376395068252483238996239067867494257392012817910563133892001222167452523198746549039042186306918977773857734421752163932165330026951801652267093073827572153852523670158149175886872767295626862658281086361197888565747768622993319916005253455960301749892042543484297708146895710364360528310671846386323554829827189641942041393482689140187751817358904967727659561636335854367967149517068147808659313505269986985992733209142596387319843012394994273428566500951403339000627310046080882347871541677954295950725037386934400482508120989707047557046474069300884066452507357120046102248019123515127469020099092361637137209487840673473473809547667756828655880482518241153840142566861618492060071664898556273749546021196407204794580129893173298907134015463786961672080878015022734429381057273001834378561896483110433784951311515893791288196854452487451918986085114163872150439560594907461072846716624130210633269726054863163266392281077711650990453137951897072508424546565949209835610371844429912531393823157410819054287168698168323727619989215165529044638646025844978192337213310952810683452429343462108819929873362545029499330651885490803643250103685967661344632414891684507937183010769664747736097175123910371729242556154210334275316438585957610750445039253752108455818592481783021689235566359253402787458621154673668210560555000547073488966640412472112555093871441878569513327805687279304296658464666839606138966742295859248047752870373856475264127586897488847583917942789678359998847792517999889983931951779405915090719710061820026968136880293917654217582496809121447317548865934980239235416128522817377973516111180002868182763018986796059179144849351809445459826260034481747771217060822770413686479799668933244367748910415831883450032379155719719814104354196132934865247590358171228143033275224769807938833356428678465945666860018110722782949542166385058067151256728736267544252150076155679513929219377749889625657187933395582480165756986460882911394344647905585577049944673328542079402399037391305123343771508548197376157662284432158851225495568250212404659799716507315744212963545249106740191732860964999331506429315971562805825096094147087039694039918561045639320589220135805678620220984366292206711293870460412314040808664265742311944782310868777574519324344026445814916762984512586428793953159165252987636311858312249806158599278576795322651819229840886267107908472731520842298964201553328131956809269276096266145447708416640090519549555577398461303918480363025448115735224613906916537127296304262315658452892354119115586897235220479950134446717941876205436618256413740055567716418106555919897947573224372314425243513267801553338275343718891427340112257733218623271293348793627713587306747188927847413931310334271584060302276857504668112956767052278328714385450595289045229942246136224162666865668449693367419187429789466642482242884666097514077079101177404143153803886028770882948591392977033042950396245203476886415209617336135382868418263086716791006111456401285234505649649527119588085112277201150525831618082904531205352587959734810781909279790325011533882547207751968978908851132720418889381005815492530029617427255423353913824866783131503935229043024346053893282396949337900895734257233080933377741400363214691581756001740004710112318560707037863783952024852212863582680381829994016349635430126705505945770837574098852528460447808579051138860633091749490743215721159085594264986737615868404783309087928633663059530243455482891020058640942608063478851341907032450495870776643430586813109578602427114005929502094684644158165297235796349353871917100561411834809646128954969262947357027204141136129481562282778053235336901978008617375691638250405628161109162081733913639995850840093332538172657098873261341519604775961763525997356030811227543431281032998212462635366977297746032087753934293962868570747463142984878725146089045933185828510343661249189779338364650429063975086123319101116254348371683282519358237023578055247495253670612589423971357358760565929988775030998640077539053298584873634718269050619417641620847061163414298750366047394103113256425645730643001050216482495125794253347824041023740570498501343693605237278886393133005483602978137920292527178015568538339035082785157864931692775774242106988642526477953550967078039790560963945250791717051794624673418357763470035420612670519599212738301204347395302182026403855324933105220890585273954035979699367070744574428526891935876794406256987829156955848858239685247968865623433781654438580255322069233576378761621639030204884770416088805266269366327869118088825492112178747105992492904571327099135857916657030072856287451525421026346328800339909151992710376349078508615130494579123577860709799497951428406322623281042335077622188420231338445552456955831858484120808162537318630158902981216777076331603026661613427387035033478088050479590299003151361383060004465663981857225764514365055002988291112231647709020292414006233501717456778825455848651318811772206008119488487101754949838064939472696738931510692795258699217872637855726042561415736219764490768357064449558072437249251917024799149885026746718577830835610962125466485812295820603509894916441683547361100706231398996460780797809964049301395195968686130101846914103821839255867618256284074486098934972056274806511061148149331688429128974573948076890721707024349346265584794167503453424797110694250329446845046361155495286261076969052444478807479446650671565705906380266106310916311449032318879777103184135164176710261820704630638486685585423148020360425415193361976530546853768591124849679284245277688367318040246022715034861913962771684685240254769444227157660560898530546620597645602559218469231558948907577472509200496699701062359088760621778874903264909099709208743590265180140172995978805077511411579027741627219522653130140388804399548368325801986816400485346432285855275628789529473149490982273991317854094144688441135730732426296064344669972159351499755711987486764286111431752611260542706489757346241625284065573952095605307657228469383851697376094631781308761041481112967997578361578140852151077253175102720063354238457060992924729694470139108269986943075159368322602945657850132386510265832247965673236531014551728721812969581618951944068090473196313767831279926996091364360869010815160999354463953721783344928984452713097306100193857804310627292917364819827954957320007458903367633322008829703680015514731573477627754841695613078254416816183033956194165819261711865363552319556309001282043078001986847268299316972795475761177851101622361855117677636261961599127806977188325272834089998244380753140205107420068344224433132456329898986389940546544566840051946024282174538510339572768401315913164213393436357382583554930964400347538392911930140543508342756816615626788316677297683539959069519128785305265702733155140658277549108637343833887572852783538655952711802750328278560762905075767134354427245541025814065004410291951318060937719979862376895198465336404951387803908471809384934479746670901406116609417161022913535832087777513775450103069324021226390974095725766967483163957132567993780021161937417272494941840359703581787724197797613685369762871415387708463924671385751710567122421917301643946931122352821102417016386617818387605175064103146587515459544178834885422978658178588366583057788077803150693375244421833375831927916734854891796085777630066333900952792501812366323959934307624071096065456466216100613570967725452515715810902471803683219305501992973134770459802553156327311894339474394021029418478300033286628360196876920030710273349217067323319123449924725952440345543781746901738144049814370954408705580324036097083513614833761342656090566236551897522240868374580743079735530951618834069188607565412543572647802290712310973225238139818185035082228793278760383644599052559747946284657790263382214464161067748055490464934798714365683687327254338932209072978117571023310046717803981166037918405175198818050350003134321258241898517876115783756350646011777827053576996408148583422286645562762218934426582712818647075625245789134462372408949331853764073621418625464023046313867001253825520671238036457558767739190585269181760161107059226156895066453822442199944633423187845092270568078283133765864472950997560326918629679287983942711904479959332513004107845192574194368387236463990672408549694422619741641897360339816440305478685227484582038705834150428562786995976869834905988250666076578008932122698090219227102433663162712343289474873422766435727865648066090553337840187974102214292524892140752004552972755431833784473822944825775365334370475616266722848775431301702727689520641833586036667385159975999738606099734303683665320433512397827565138726570423922353022966159707764565110933559670226083080352823771981876637693950799791992021529067139616383030003699572056844878957450534323381463969041357770734084951725931230973084419051872494580503263140525939248313205793938901127348687083255799574703806798218700024677309816428655259502801107005820041235451593662642567206619797882329386361230079598297931361372531131031566951069165414894677298758831865772143163776946305989053128662599200158285449730685559566312167075475304219825537995423787984110334991288111483195976388300326813600319199030305916859368603046921014088977541486320743238839097198585579201803903283554050007540965528864860544379427571851639110105747516387151442717225741949241530186851532275748955393892563065138455776044969332278864327558870463642408239441959659487707838483184764538460027941341110415180271341465157891062101129063937209216379357758176594483367580865604590938659360214524734907834945277697545472540957153713067350639717554918126805284654452528767265407042727579919900040267659050037701200627201642680989615838189024038631176706847272969215846986547186506137672277330008766494508602757166920273289095316457955140292640098154888256181428040281739904733939753851403441329343574894892509343242199702881612877010585511334068843134639066506949570226421671171843669205693228514366230863874208498502834541287399430186694405259197339330116083999715078581699247905785305688039682809900850943288841243209827469985587170869810735280192699520961180632243420187512677856236516092656940758012554929676373061463670074531580664101462941947040538933116668346714182701646464225911614900432199162450277587147277597626135819423898212535297506947110532865199109025417403775372087161122069188861193165617632271573775666401909458372717107376115780150654793439564827870709045328251039837381498340141300295626859493188243930186238818954421589974693118561027694159717924031185279670411010536238806403310011271146292496349536848225188818578170655098944098175872595838637069254130087587830990759621746635343340091584474773394986718839282689548339019769351662679635891688627160470003341313272713112471219163813710011394854113896642972874785269729442458009021832521959863469703113846808776805536304217347106203957479812074428780952717149289025427720062716805774795906972041526177767904732180191351662875121997387091277654141934129482002914337518793877021406276409599539142865687109988760082523711208508788670370168605807203102923812332444882244554991403725485752860737178005056805861836637382116683358392516220428899392482013934816922447867388798075634151804969502059264142011766386855210153065853867558408965681692881858688758641947632436776847450456051226271515308955709080581833186248009122997347949186527483575514138374481964314101751624399180391966551423852428165587818833873763907214634929257615666365921213606602597277628537304096413373738055652335218987315679843201444687456672816461584861060938880493967753207308908468947042289444636025061042454867209867834073351580491926131037540702153813317528837181615639458244144265116841650113071522673192430817788119969864281889253387415779565502733259947445857453009553822823332712735329702707020377588665408421948363560396559086436075008006130545331219137594872771299626766259503463116307177754396247789808640845985289531229152195591670663503922419157430429426171896983870858614366658193026507705309120427840312554572625404381416494156675436532882190874587483649108986659902620238660174355891162939022346312112585485100877248627710267652189025209753476102212250540685462296957605893827751776972784074098133693675889224942093816066994512092652914092925633502474329706868750084665837919028814899921258253215571745748428166302473800743898063195945264344802371190106513319510227203531358281819822083656278297424028097384430297281370881160032294441635340252666064635356042614444799534390131889870116134182643230983551973546348670042396964740544273560715232641056266627354587134850081331452647741662888959299530953730873086854469188179902306025451301653006344590090825924831189678569407036851696621915073206478934937098194604594227766525310580453682095215499680142054783858490275725447359770548346517450413157265138452768021602318662513347025545534232892598749569109588936257814098169488341977269931727885221302631594675892883406161208518174842051205420889101513052023053245979623194589783582188516173182604365723682215769023672288282084228071920047006662160696917810793049410035063239068255912971346881702461762885935944034347802073158447482958857552952426107895369262654070096422360390433227122200775211607791275138790728255996983237125037817832681048597011122140295793343616547368288490029446181425686125620708223615978705305855685359599997472935300581901795840625876788082809653423322490322702515050266888318157168214246633210047877470806898837702643573663338963268606582568262550427656352140630185873732728904763430226231467982891608448591197117248516361206021296102534880548131979284939986997620538017485435758510490178116336579582110517850644202427402790594892797841037689248484812999803609898351642937226444359693583140030071654437590604662520161756238240767018469081273691215132307077942525077399774195212950927150655190378067896357567797471312084801619024575489132765770748876203422949875290933331505895105758355044749958897851786408158318087442572897255335705217962041871478972360156536441860578895426464845711629640699909611825752911410439029825754682909002092819284191982220826859950468587301956689296613133329794991750164477419240712265884726649310702095717204843298485591176513585573690711613221429452844390112634077527741718976596752767517762766716373096562501053542779722952967517260620401185101768530786516296800597759662623402755417966774859380940868584558236163083414349903916397037273891783711516183945345001068339305493358484969062168172846634479567165747898923609364363938410415247440725342043155205519175733225891653599088300868417417025087788962915748452944334477246794911930866837760703654132985999822255506261507239579820197582644435391782613939835683464615588669095514882615167844365235186931921993735944699352965469717322901814847486771590770128148668236783620413843928589940740992684167676678548018394244465328779137405592638992645478524083185109167716839712255200647171850285277119944959548220748239636733136982153925105007374404660396936650359131445732480044156068501580084227939597613994772700872267608684860259045303849194224039798226601568475165104888914193789662672856121288337307728645809551528424652277399457219895864494047956213929657767153528178468601993483527995890337128326697507699233274338199118091487671154875807549165617086823646108829693768528830570413682104213134478587556616172410799641517545379281795563210495135860907594738727258053912627746368420455276381928096902011950649800049642234499190300541870995699108971383534995048946181011244796718548213752887715392174854855995415712756680821452786941723424086870477870854036107045878133409075026427184618010303736952880657254386227148389200718453359729994707092435333640696448250229509429694793754385766628290057450299477916358549032882160171432036327920334081117758383495502398575914892839195983382299581140118649465535659093498871295805705191247910414655519012368800463053980414577045050499792038728267707880081216336867155326310696325167690745268136121782544450656601203593866683459853375337612056663589966723480972217280811550307528239399306941567545060932608285926680894187295980206529458222038382348560606886849004589229724376471120533695115361007335481448240248642260971327586086688221739286036155072928440330344231136548131798575666627784620391644831836532253088415174880396001034282017337287115056150608858529075280369324596974879559240202071109485570008636713424031759341025294561550301089713968965786149525455394214901972751824820444498917644678481987100830338700595876217852639564847721020070293163783397112886251834485290639616330135713866933928141753240402651124422792291267011394182831547436465985829200718267455993808968582411627159364989748228193281166672807583499752777727707852654341604205580591727355305902951510184689656760124967552891598244253145927875802656167808944604513298660170027251109322308538151847886539096822250845825373096993506490414307936554593376643848314356292390780335336332433943423446312153848535924212034426199902833060925925803596726054639140986304856342156028170644024414824735865602232751127133022077178136030689455877508124251953684490096623070897993480992363575736891434929894332904491823193257553841703973856955657604834891933671358986769824049361091600162194855521232833485369590540628752041735929871999646921079816330256728967723712740547022956693949706880207627081299037893443583641316758850163317632671448629582138449983408554948524460678026750557545079317552926971748666774052831145859355233063684438129310329477967176085017851508151744297477616625882658777674565003848270398980552855988528821676929977753683415562545013126881281329903644167003681017284549487616159859820916206611201416206524321387001015935413645338415318379165818433948866435676855913946469155552009588119535423083570304862967837892247620791421847976868916188287028726203100009090845841372970321310966871804720438138613488071086594850336077841937820154135575319846319730197369821458691022945746700806918260874868235145076748942119641769586073173288290988695450117444040347741476645420986218933198107575982891962256278499186395678310717864398449544566334135955969825537905754598226247234967600013534579323050291897821441207832663217719696185959639761222842950125195250664438622139919340914051062919766932138352940720090342489549085487268235851230079690087225338903091389603219199360172294300372741675334531238688985405520063057338568653190460504479307110000373342257378362053268345415265702236594139130100639131294281047546645046847218530246818751888755616404035072074400614804236425503859346400180853693922157137989017155687406727294132622808873215428849278284216890417143813856063449357040454762975888811350850467168183400361036229127255193395579135913717502519666249079778949186995319735310499643036474251570783876175023795774710188666672807359272175871387140613292037556139215108975734175120220469173886307728665298809170926162625134133726728271238202544256861766995986048219695343325728690150597708695339320836697783986643819866163935502701513373806741599655036711097390611813269623032672615109875672413365894687496041949812530014352529935768858821120233005564848588045896942741340797266414066524751988104520136491644161938625113147076007784360025922762137507302144646663435661583155340434837725119994506479904158170247099248765219888165052795095900557466605992278693521833224267524989638340749095178861098828167716667641762692749002723216926175030599194430923100132686054463535769631165191139034716564063492798340951917263918168301414528232208393973883851067876953067481990280059656653621495372008103514783969725297768435422768024411899030466575278504563434442922178471412649491799656870904193644377369283493470409434559936338313126938318101815890056338938260202671830938596487234658181323920009289958183756972125400163796602987111705490515507215378510926327814957311881841520015690981346996627656046918218498044845125420137433724327378061093947753903505884349202173036019050002782343514045929221847342222830910777443695642466685570348737673370109670167187874048742447438152954750238923602593496886142567299012800590390819282903243162623086972954977260312464878864003769291202620869508045409215029654211344256480909547424446321467294453743027930292820916588768848129496402778574441177875193446833384343103043812304598238455626583306428039189736513688030052787522747384956959429853382281265234142605212685267687056313741144701229823774213672388981806108319964633827443551949297345310851078689999696969664601243157483300704169564927268140890695788599560482856543365495721774785715106215449072399388025682550254168552483482436727172941293881489558052693331726135160421663042019691229556767065881909002902876312331571672415779444238110815309430092920191337758775549032321771327766248454067347304509696771882219474143695792542192686921145435614745852711806540740052801187644019889318934990143427250221949155163412463772315918011913972649902513210331191617830183302513732757611767947816795259160150523201117322869793454762101006085427708849372143081448053799240253745325661444732349589406151082862592790109621617115764162285842841862947742085970376302232895506486362416727269947657796076597722917870592583092836302174826355800818126246069273324709727052689863170547335107609657910032419137036530161734100217869856004197683593477796490206954597493341399088766880099624276433444698759241984377173185136322834694591122773490233063703912320761640121317041994261829784323815793979603822141961065969039522731593290351071744749184730229765262200342256394110123366172926219349270124384172120224320517606467029013386281346766954238478141222116823848032325924522117190183875073691373236411860403646281272598283026840500421403450901269370147013583249030262698909427779043672000343201333902222040058893455395256321243841595767698969400770385584124909177230884267700429962491022031978294434995142884394047911326024971316052379786905141965028892310322555478459942300146974577312429396047661154393109561399542185597067457046812420565706651743409382432539955186467402979239137475201365589909329662197690382230351425630875642494404664609451854880418437846604973245154307790847542312181494792028193945574968515599495315112142009682882190415865826997656810895455470290847581289076775041003865945166112434692668830920791126724867818686398223384010863418324245111401114106641012834265568173255951272809798796649121786725653318488202038896788666546648783766262265397541980979782133564656224772607363283872524970460071882440555853816633696018146856837817615314856343315054391643308982607350930476176378429878870464121910566525439028108864570881190550043143044211862122537888107761185401505576427404230254805604445636282490331095071042098334540166823555023407978230528851369360732307507885341537171330655206817398073725392537751177473244838292612063788045534959367145390088016479940491466335163167378037321272957989192298866949416052458055321602232924496105600822007667481881344442680263051577588622764716260854124673492112687022653253579153984957989154814307911222622791549237832573330100019076077479641181017558920017389566118994559445140629342502918450297574820833653369179722028587443396866009847540603397315428838903945736178213966432531305317411573089681868660190472008498846404756258578163034720635351219953183520792152448532058581478797022652929566179060465353350370562182111511567630450177008638879427709429203617072429801638712491361405810176849850914639722224619324510630047209245538345727094159125571038760589793545169320640363180143480053088559386201588047232292144208891411893276901812869044078509321309995406464372441876728773682623565521423096524787955671651703630644810599748659283078002167953847529188758325155031418879747878698750097381370154860195689329449422575979514879377775466813794034787939775524165521290797465755535197069877306120859811970642366333397870841489555033775838748972170279811350911129010734283948123541158020681452976515452612600874556908458012114325536361799564065742142015373891098044267057019414217045092156287697036516373833011974081472308295841785929544380401127185065823482247899037539927210923305068684525065489242264250564349901492345232842944951447708304021115257156966953904038592351002622187122370167871753683940325248353645904838117086681970388658138148864367464632333963848986581215101580754120996927117881209162384675312040308568432010616457318428479981490108066797750160311221861518130691525018857430683115431281635224609603493096300540343635312457601625003839604952168626691424330988364692380951933672863952359038973350020353550684965745225742283389039137436875020017836983882649657197548262921001200330934738240074520530504482796093671963387363385477691356526357661873418399624268577435182124415431322850316353451944598523221318911858092348350636327324861358611085068463862443201103963078659652227462393596367384733598584712591828203007786312997480738508116118127371095150053463922462792002567387704225910546953400206399208773700631227257950008733072437218282563824271870514424464170245357111457620906564056031399322792949099118402200166941536445357120647314387667193485609316850694679196605946076169153442350320579100531850163269513025873796242885859012762303783507864192915545768236114520065024622947118890586063902865260677910940556707005232987225244613187249398525961427551916687960839011632464679858812557780264692678135580264164600904299172028876849381664293065343645640277949945218032439130775712249189114276132944361691089788221089665848103673128726423051365022004309397484740225574712290018751852321629473919341241290372840089234962269903750115322392204102283400367021682008677702122232634842980561870407359033294392267831652084710937200516325365476309155161498691798970664090785934178660038640785921653800289117274010429940115098276329342095638217621312515870069896823871804137872397939514171033179952676787933293042273094170307479406729945199569718594649178237844185054095531092915779128832389083453592738317668326334157521067635193277541498610744580362534877871263774739113602612707685331685052156965544413369966995106039255417902541542800338502305826079736143665334281769434609672923157803990880163687921417425723186490574490879785420417854907047269649224366807288062196574081586797134234411455697373118564814173326470729535475734117592914147086006723026709057460563265699179885816558422788998618412201052107516390571621114567120404563867325398031546847072940222262466199098857373907722428943341126641981490177808230736559688276186079656467064489062434472406406591637897393024436392561214921205695299274878002242310395313409936460222699520779323699746567498220172305955912652848752731805711610088968801961311369452200394888933832106069529690794128679482592428654499304844545761964949736085562378500666355693644928628728952908568964131522352128598129675906793835337829199933493459032333208180281702253395080108583691693902848067027553779022266370533259834662289095027900905192898320440192365309350439691303148621985538136762419713998213186480188853677789591474274812842408696701479367304025048160762588012266029329377118046766662323833128572060306573224560157586831174966360498673394919430843958114030137086836695085333715725867777270934303485457696754918847884902627842575609188031859588655979216993931836264016519956438061687950560122247119580099527471263175297652905752045548584917432966720662977651724035358911035209307639551556897708668682909266647530611535512966009014091939400304568860524811948012029695984698104305242945448527837158584797198458505695211009815801474141413071272070272722310941804111200750774445123355122393860858658676279317801965746565849551420459145387503452821141645751021605906411727308536708056876256039585694134302035490645324156636749833385695036910540777302826408694661677593840018728732564214782967866852709210073866148921215498562809821376061178845007499360316029777783172784128818556752241274865761327270321089602282771961712324082646338982665487641616625073230657294947872292824847418564336566232981850665874215515022849961474075191773929028323906579368734329690504229774365284173097400675392700652988925237952992219214833991354569894255810583481976671537039398041390541259087349194540895052965920066504660878698067560111005888464698046751743054313373197223930755942264417792131838425877395105672973717268723735604878070666903023448121930498950436891553735891226268084017631412450014175967470161529384222623987525915538255333878878942004788937271754974273754489737097599496943233119165997759225762603430314144335336143470371463480996729601470960577094736016479262546893729715979308261294684507446665954415980433896277052536704107374287494617953142595531454626027846931713702740668738846461077501348670828958995997470305554533738650593719580508590230205411417688026013843222539085850256545844542676684805548124834051773894662208252603887920036253847561653675170236255196322564856756481090295269653497603381657232926904404938494565015507859777453252424864469873884903026053266411604511225812044971487480716727501153742594380990427745781642010159377745167162351031650796041566710590114644519587498870490013757759777380448600174376402502023792984719813455641598658940083523229710300306366271341283858203688615807878076400044422670947292938319730737482487991193894609022216443873988127803203478730214534608785703830986236033115188506884866784319325347866409084907738094986974999209656260508019231814181999307944625093235782277131012656897044916670374429407515280949236229311876960710985973181644186834740745806217181181446124651061257776103120716634234326778520671831988514222011431861841633585423387431308895291135087315809506512456114511564518224233866056078767020568577562812377205031927063945276303423594911620452070797650192491515674262133658686518145771256797978767825320293268553537723916401587241416712875160750563855626554482188330860888391755319947284641315014993860969840345493744109497243929831617207899197774335509166268016045173734237996054344445808318448518310585218230368266076468614349435869148687063894456262541856798378204121945260348797242902352533681365435453333642190293293293302277148166984109995363574883657717175209456941910359868295622932060866908703006820188629375663212526811103148626730088897180681105934557709870141418522147860019889253370685651514837778124225348738956925767161886336307011906668060455892743700217600827482222749508541879249878648026640980338008832082971257548254391840691181461989514669777130472882861565266863546213140931652185556603581365839809213091383620426763868846870536271607275222786324252235098006921707271873438237741436536256139946218215347838716908036212670159560667066177161333712317777142094941891050938244466437423535615805233821527017531128224117288256441754609003513501792408178470286616560590082371912209957579038686131482819403316904856597310373269428712353344015963961292866689888025372237417618769299999998713669936423892143445739994526923175354879500472445481793378121811560755171087463712250284972770868278984543120389514760082187216276024067278153959503525604969271001087093251337077897896748732324683597622383395895298315417368281964755417321122792241131751302894372357914602089140697760013682993694239769707860254360411408070849286864611890325861437319225160866294030147621947920511949825086251060608046313429916869675765370593756077464009352328445934140730361802162107416952686404768790246377695428414130397027036095570602443036719060063409098263678313842364188929313515547989348684054269989004805455585392013828553885307693256173877828142394107184594403962582289159251319841971938382996473407397052487115575498486577462459416194867447158616279441285325166185604657021456525205527971619782705919071997238184766275693131107959251491432078103431615767586790264017632946764086552811798051924348410386118816314794440705019899661574475911300718994878410278976402984200482010516736742013633195891830010642955000297878322808968559593613260197623402026046324855579128845102584043322562759352673786158749875739219781197603772492427072569721780601007802338781744610051286830310473679363678340082711164828197300765072567235975460430660116279313692056595120384799232084627610951568092691984591691247177457078927529212049469199614807881157783139876634667721872110477593606099766231365190604486444758281469198909328346508478875969303668773050459128118570218460165846677460149917626060220657204841046117887744578888745108710893920718309813908520604409007311892110659664078926630507599278518092127794641048003533091659007646854352521368430049683299491624127848939217612144495345708144408207799567157005276194039480414383692705604391318426904913376406977994670505982497646353423125392153825557097364418932540347089950692414192774470201809079178309771557875242199882667626420457176512947437176787001655146123900572716339794510952742998875130209669360070360890174690485949838952261009272169809963546083906469952833551560213569504264712114699851473179897157342814210151657900611971408405537996229549432237685996128884472696255320612046034122368788403774813009101835821093072897775651958127636951065278237947595188312103759701688485673266986631195104843415978199592379242242096921316710589503015686814305495882012155538979374797033431419092328666716447054962640947120323614538937500948520706107344316034215460065842362429728403340134258772674261383210107510544316984008232587495722594641101005437399138391912641043215061540006245383699320642753670137817496486906621715856067848506444913930943310559477654273840108789575538984309077056500228687909347737768639517707794059010460145557117817881681328259412852101263953607441913307815675980773755527040686191178435195417239832905858918001780600409192277422261793030792095947100163678425551190144099434814659323193674734371163489036192860668999850954170143784218219100744746849891698101179753914103558264185100561101470705228855448617928958278433481697144267137207030519506705415061620379957692678658263901636374064500265642349035500177964897304692595047622262847974497248689961903058148710757159383087188676398249395978970173970078961692167407138187931308421019478190318665987615090932773901539478445267843916476917376544070518243440855293860358150352808530171083312563923128323242838511109228918803221642534227907967793023938935708542729779754885307425274274676616211147911264910040266758907780967428736952357881927941900863136621063000039114819499211664077413533753104350997459021841224532341879182673311479857513095310013006769076615360842841912754636751953341215182707337241910464630070819580991159882912339983436963328346314572038400324860759457325263058620948248278433136239905509659046322187742760065124808539220773768550930536182685816921628563112220041727295929141311911956536608396099124075555052059692326149486569824341018311639297402673903486072797183682335813950164676236553229948471882200649657386588368040929913610912042126960820035801369488500953377788131288253447221573223334947138924814445113689856378975521977963348492837404234623344282223161124345987791077434069586021715754824785834647399887722037155534460537756162633159044291832662037845951153685137370266052991819081355712641044309500553172093062505255897818021396991397992233955196730468277257510038357856840685513878946139689508582490935107101390055202457253087959787903746339263990722294439742273537798886372301999861072426736110598415069774485867110920556067185425698310088169950271784941640782878348557939314696587703571154895328433377601405508041555428555817786519641737055404268140220295806290566033655779429948288327271251979821070650517826641531308653119946878537117990496356238391342725381067795096534946167307042265213372273868186710086867457969966908798716921260470463139465588930854641216094138097440374290443201195918576627865286076806050662761758054961617519437091016095138374367042745252761345679623224445633872668368656158234017118888337455666947005399954495273952808184690303215491384337250914337861896289688930033175218071878485602001060855184429336802722775980303102163827405947298039071723746347797449956587900503546274385014101489477666870026129474626483255717430311374599464977496352598390699017035479921297597988865723328610626516442707982541358325566561261558241560333939561804441475039916683990887055511730770013942989612142076409773084690469523189548237862483388859403378371609591224389821675503181539692962748502782386373791812861513610213852957739827640787599470291624864076957506394083135107998733967105590205144478377401269078729052510762651104605169791842949809486693301409256725395940467585928509120373212289467333599080336495646471691882105883761139480450233583100672702748531010945889376471767967472970056833950022336633717132264881769441093444844195719536286924747078232878201461515466751817329956221048294250090994836475458378664089215010290729685253516840421243025338403281749201995610961973145063630014726019938337871869275242251993018540209151564228641702338187416995577251572205504457349433578822001129177903510212947130754941121425596597342592935797156602083393638825147028140631758660349604589368983748435664644904662218793949986143935224434445212388397903666183654428052496401421161061291682764074963641211515388428994807159009708404904246435374998980697377433325552285393240715722302033992964610139392805003670536016689598955143499356873936191491588025220528303312184972849268159563092593057475383399957214347062750658947632017114615208867207432984599524420854406233757079364206922369652212118426136380884747147277760764348520164319304414215854642462978805718046425445928939218903620774394271408076740091369387282697049701475859254886219153992136018460759763367348512242117499063458713918990195155094909902242538383572826514282905611554724771255494687228866294736230410243133451351178708581918453515701117031518759340987516308885330578411745314421360007165535622113251714066344611839703281136260287619086996955228630546650904201915609063310661209790901210097675180191200148223788785462986905952319756659015846843409739876141322930361575394211615295479678742825149209546818280657335520776699051178931737710306471479098000412745913169692851111309320191299656018055470133642839164312728453772960583803849892592176788230996269938817243100783304407238163995153020459716105017812182618580324212796905679857632419424206157277500178044206320338383039366819973187041058002318407815449509466260350693622529007701404956321265952405264792063885635372238359983633176277452618756829111208327052462396969077727485947603341302739820130620650065949661826216171534315178755521288040646531080265673162303569714273938603632620255104599173959280555953245556726993537709903339434675372511349038442918913890367744855240459904359638979742048533540899460014757776946007875443504366748001702772952795952340949278971459346668844341444349742071437495838338030464586548292646817662940562082375107371158213951061819236607703167354144250545893441487902802733091375887125679791184998084870180809205881444971717065473482854023836410161359413190919876965920408037949932988689034718417846035493312784450683530642828662131479486383022595102661681773721076023932704932023550650169899585363696923607976695094873534461089532019405549929874651913251838026580546877297000197149808087174944576101057352731658509319707699514166181775281313505511025385072565250509697929016630221161804885643985739982487947031459172804539539229486046549855156327990660471984681452194133216399005809836749885561059302371480874378215766239325835473853826383720769424084364643798979210844426286294057855846329478658608944974341751556074425237078118480454209562799527608879098648674242506602272469680307456071281498042432967004293970540195186539908780303214433809177587101915332676505854705597389167347836522083941610839146023620888932670201531930462990367022105597933986058122771441301379071924168525210159635235500955535143338926033890730443609698491569375219707266094113180755503548185394365566026694672894460714108600165014266348619015128969216234596736177561697027248628783304232545832169281103537130043479103365577465458773691127113466382412692122190942602011033352022286161842709660168133108307814368403321879066295003844098125144425545407516600662322068914450032541310223034399023144793711926759393434599962489228765014572604857556007396184492022171734661608235467441495024592538618204150904010600475258662325842093253821018472001525561131935156210313491158723446407291182664590809034421173744918161474014233872786723199157728522261493163878279499810692151532114837402253508962950448669725687986159498211083687550816811213424449073928327527997889977080450749949177564528955602103437287682195691793222737858812471465809758855959159004218272190548611249775700607986343858820684003350538864460607145945961682567415411004971322337638157751353970980120424049964754776105697622987190781945449217148155597099368632358092917258428407130026531561589829184161033368828776709048856893247249531431627514018827565363169613605867409216229579779389760020527596087131571803720987416284844378964198039109054440914714007173997208329130770815387869059420812065787107371725589958596407359317570250104467894557182680258712614250448130900734988365610450830359673111809110744605225839529990933935179326099672510903762871728460064845642268647806297411706349305970623782951384773957868057205171419403162984275033213550404027253008346652811960280624955191561980862428451200686274385972840383581912501805963632227488322717281377292884799561867415577170695570028622819087491686834892250447560379374207034072558048531063947908023457089131013782541722275383005051236759615157173265126103633610844981774827640453887973538569362045157730415224039523738804867885564351011175381013111673522142856788317171652738851990567059355658927513393280146876351283422512948143736658182140230774341984270890045033422203647840782407445723044501378711840431285783470894449356819603904049558688523532544410598126135905203049250973078707272952021929451824076952700398749270812089033944351229014119872614674018198747739409596627243339879301051571504852096349499635314672333368615285183537472227854635798773063905147622619257838912105181858053703004514055116741761155436707244092729252553825373926593214131060093252320815292533674139904870623596872664023561964422655220437616073919111155426054452420499017225718331776876682760830254220019389110391762548935593269127046286898303887470195366141974472561656056422886112061712526954822802823661869053823899666001548755928299697936462946178690160066380049162248987708687227811045635559834132235773234305908250163540325869780654764045421615997090304826578091527088054562927508234949437434146576062740414470075073960654796961554297795634191412201059028147802823267045446881381784654802757889071153077472254031819084794335398105124898133672650107785357457510382429929901037914143205044486660379907833868315908461476763788644265320720953281434594774443553364900752442976743050844268818755930407582150982386682877076853391981146236591325737094040774863827268979394466900166779168661079890517456230966125026070332883940969886367373674800807704365267686405456407654062130276588234493847628424123476017572009308213243550923568809814572035429658308812710054115254111080068214087736853710278147935138131758782254683995422368823612840865305991521136217985388564039351259423191429994465245671772568819300568150402521882530694437520023774726221502892310493201553572093828379005815278175066099114519983142370332647245322936069282056395427682825482447520084417226545066414333075647760084417058624444761809941991094808879649170593301973504637390588509117908427011215380481036456709861313301812885920082625439501217457962746011124341332578854432149398760265326911532267080666623199238119308588561351799697372213982899393270094646767743623957356009258989864154255173812353313180081918870919533122969207532622214401571024578204886933773396604467657780483704867507923401254416107433926978456947027644627646939263176223418702132833190320895256288016620029595649529262623326627564859456247273921314851607360042729790070469865453261265330778605490900133571380179464492552734179802537841388148837957197063943697558618368673851202652304738337932554117832876408651676921849891983374031740253460482085442562279305233646662345868247302982502510973840535775212325021017249389205927010904737869050627926329973208901874259996194781179284493228927588398728130048563414820382310141957593826242153669533981235917137249434542493792873771078621885862847494944489570232602153101861346201624831679205739294394127485662199032239521566049406826178300546425637868586356026521219852828705506758732634889093934776688715893361726703375347950286195882045947150126329080660051268096756174945230520792492343021136633322556588852517782746161094513254572627792127893302936193288317565829774520891819726015533619236123086781347096063818410750706864459214550697512908711499341667569922843131281773562989144443893246228608043929751993382058554990836278691806364926462928365402499390873447555250473181393395422828119971393985779511530224853573689370008350121504070704910277424855408525579809761001053865888907739556618714956934654112657150112401908307836590697148643660643771749201096947164673503946691746981915544184654401062062482231576498505576726256392588107672989191754603622469702915330208374926740689915778902271706893829314115507211073962850285276229185794309907123664170984789724559004859443693255599361970618801851672949429894258064349275527413522920860422544971987555997052262145500680640451535377057887706607680585540791439201847705811856777486393032668122198266165014674700328658736077733890755532550198895796080676216094617961449411898353895733236835251710785982597945657813646634788409687227167046760342956648097446384763195539145594987073488711064550224312464023206054358015078156379505783093905193362239014049560976551868197275750873925804117499753036183686029235970821981683204196666018690849203600692406369684392363532146534815427663078656341188670621437911428100077415539600645275901186170933868550412019180178417996894873780580828481257564266203473055150022722037582090957531335016196408863621523485497411372644273456927417350247158217006865757626037911987631188885566278788841609490217693848821671132647826693174835120853325902740899650090719492129807303352533622901350615985405551366433641241886687362759916893508792459775703627087097308321643175311659086195163765494368948223702840106831836062603914033224329917657512605886196900137275547821107610454259700170776288063974623823154112584901712645640410496727804617436810698337646194635993632298367231834723966971147517670888461034747051120909989611931430531766548482176450007153699745256118681750810018767536345443949292993846861796427022426456327836917258661415997950109001195700041696866347867381057805937808572782467071060569275594566934819020709295995418274993217810501908026191691331719523423683247958983776677439011680556449497904159438645639672074898636416286175123571482468897902343661533568712726645969856262837900563586495373809760909926534197101196441204259078602710833215175704226197882095572483294917761636906223525819536250800097937715497079554132415899635724921670777254379394536989304993365496063426128701076752658087540254643462299969994357586112401192169687911313560128896927589315341330388732698251812413670378106751461973430306535476693952030023962089077595386428337245543727132681856731121759035590098514851643662456061623628716299632221499137841204009080271422772549406532569957933772945706988791609344800400578646694831191483387051301791104640531147977310500634977874581705077234561972504749548896399601487447351230138645414965664191913733070530305398368872098473491942556735469636556767210765931413971835600256784782161179980146774538133928746654561542272891173859931222227215616997556176599186900941233445503150778975215460229142290134115335221185565795988166063253647464943294360549396639655224087922636520355921617224652020717229532384080726728497447006779997218352877490108875232939046462570747398484388904214987358120397703132142831718613842206652012357993989014065383784744501468728989334450956215893275752480491876783678114606716182286357142669715604929336781891677678540208536822753638680782272596808272296097825604224022515550332785590215860479325658774166230029377460859015563881636238174524886156281688689433278455994425644271770194377664637480903047646653772578917257347993266537738447879122333977618334313621844508305534217408757302039756688916138571406310051586784217671938503838888021315483946466315851943877100803095598669507632279747879508048475562344777978133629103890151740499175790404506242986890427106114342732500717000017070102221820325988706092303806302516258461446113466728296728134939249779840009469746958554734794610723625277840233186350338084133590442701395051881574895301634962153595125658117564291179988098535839674210467559346510512393294374811050758234910507532071931456593660872034301579082802104533600525895483098620431315673792303684748611646442021335534818428967574777481631718436151605538344428008876622736516457193406037335186606868476613879231360004793981642275010914882881216846697555375065973417075274517414462453713979193873835336738894729669213266181935019776114225477491244239037854483201180272311487575602809293670757192504237017482521513553047487614278528950325131860382829835067220347681667708017076290991633551027999973388304021763487671447766722327711560043168653884879316922770036431059372084192341304243462562205588849887584976682218525764838485717115909369774172994014377618969661842638847241809705120761924859231478502348669540375694627842138263865113736128697495985001010105670450524392073622526289274341169385292080622977173130427978087658192264909604510572043300440138929463235455010952262262250617667559142578524809441429497945555644310013978781994760339972155254118630662140629233212058515534645758304345108977369017068638735189610400469381594982807146965932404088721761497528380650809620214531221388881315332941764825832825029068073056240561862968449795381320927214977182635415965135432865581096928636578705493083373607595645322655599986130765293088010818512954838761177627942106316424148404271691702245082449121717070287582145614310159972118940845300525246610769517418542069226249112259505091212290818765481640479395553362373331668778302922326051827924047274865655333847531947919959021246573018943875154222124735299552338267736795287940983089660357480962762243064551982321738836293906821269993828158310394558464507704628278587966098225648722146433656410905234347632223770990199516476097967278630466987169503886376007919886123387962657920480132447851742659392232682242308634013943864329294440898852427071871828261666121772329797210559289418106872882265203517072813915041479539293723586758214016278928605582527926693518812403391467940018737981024821709996737190601204476711962277668930591627558596127122365408661567820357358456432716821569894073992220080844542300607432863139925409274960770160370053945517882806440480686245218170191983644368976518371734514535198280250163666251674609591871609634697341838283705924318264380907037593203738739014810614993140095543620206445221521531556268688938366278373386484282882919495373983588760095076164987371301900601738068382354872618657407424837534763061374280948042909755174045035802395952458847391520743617681925643943327045262224287590236377272730105769527116831213811943158533445192680353669652910624096395862025174148085853305330760541248783127061501208202345944467438966810379256996181693810777117700435785315305681296207410781598991105540040638646413265844666176405861909732828132035917797150284109689187108464834892180967811440637945072750805037858367965869531168660231210408677742517303028749967096766298044559575957287484219121379477525249826398326515695235005688245978135428289535985877613110690778928390836767633270804066445581882143239857021844431257377173199080581006807635034859002718133263134406346406255863314921860939802843631885208782620383981905425054546724152965032518854428077832219497470411371984443306373171899762470170588657688066602400236381129836106001693306322825701625506510783523026804679286106031390091253456872045767076908036920199256453157548543290716598632399759175472936828638235258531946978401460461525995595854104270198673178628647922832059976995037772417440045002288640833562231125483274426929713432821003039302725528399565756698154624429791692897701354332286591113142687634577018726256809979352076239466847889024998494220802721880908127518294692579965736463001759481651709341588375973224927336571911360225674736999323863965800002222440626270450855208800003819909800032142286417134499346846253377271841279416164155921464338046576077757267273347204649113874982967304618508753207350151567490415714080256995482833444442145963107955071124366215199004522711589318977964812013203259973844253051465454170280710227822174456495478975634591215232673844864933117868573633171161027990577846857897359387625033820723605320214287044548098789780978688661620981461843788827059485402842917777077127175516950612739243760147234539615242827877541875341284311678431693539537667667402891094228735098874047253974755108709017491080783993859491167176401098555703339101275267527222783793790293443471662085206341468830133624152935424094905039576195049589885429022035041170402274249735571150042210801982205644467561009578534256801760516120055410037505454979207133585043023856642804835064789732545524597330419828255656357840202703798137063330372928299741788085636413464897417590098175271674646682072156828826305742973892979872311581693630358535386643589934523399769099807723572355932732123922992398226201383383102842702493298922129597905217248188052262172451035086704566124829549792323451102185004663209153907595647357491782436489133566199465062290272658825497223628202575315346363714803754803450376650967360497528608923547624350751446209809381407538469812240974898569019830160284884260059252345799878299596871285801169880693275147638942710054632774267863999023834563971062704481428600975043122658533615497510161436112675147500825963693074393616753005410179052850091226561909971536326120420809792386502159320134563980842759751286249112024563276139844535228664641544660423124979869861725170851360221720888690445397195378478822257880204817248495597621769512546042907224465716118118887096668174692584486949239265284965533989651868289021817759358739417452494960684066692224893422504394771314663592160037098287665935069696228695597821218574219888558489555623734630782809911875905625212362517244708820917755220299884112293936587508220223020151728011089690826836836831266197324647634016992008926223734654758027023203616953607078168551753053755787544315830138360437738565619018710543003520118322455450799084062508283845607759433889969063393483296268902463377113568858625489124464331916941244742269411926075809206729884550200336673500936046265218112864403216750687546036702759322936478577089665474148191654031852383014288537337627670914790362806212035994378776659773110487809068441644690977838578878345283655034281372718525053079644158672632771621504516662374702678413112535219488040063808477179463076059177040153447426883876085108486753262407960537383201861676970306460319347554837008650250242503079177539821663313184647241432890542278503070657242224096925959844610382253594644989649142434609533712856698677143118433702873599244504765444052368503061232367647794726158534872635937757662911677967456311990700711528294315389098164237454638947759747716271954820387899786374457440026417382027519031054564088196312324526753743109377192734559085081335012785789883113738010324622136417706835685749369427419725010057556434395325021373105876015123718151788547144174583602502078660719050934358487664162653084901784672299245992591410645307675796355501861056447878044755105856092947956704195460851627880498464404710299548482961714170077432272284418240033430318142553287012937938092891593140955388861082287211126857133667968078512861009969378440858211050268335566889174571391136960287341936081914865558025491450456606271994580982982738305347826913402043404621044336168845689117127205638603481572425205559320968137311139845395836144442751740260331331647276861581441328874253361809133023375101791023704680451487351833914892863155047539046100907803199109968303055892674834097561987011111893173412204948467000795555275976248050863685538339463684349681306797694280541057620478245587643727201228655643331482604570173366208374907159537531714021966513923147905051879011145750763285036797150835122446545048431785392786072820560207806887742415125253566783156074022742323319520762781131279625399246969595560922075379021707710237901127972182108529425649877945043921478124194235462905993827253405258571231798446929658523025052160298172860282803118785014791707092481093820490042842920250790920446100108605650693541363632247824614565437548886690179098400845793518026765604305590102118682176579874927045404014811924532403782414250670899258181458327488476183636168507774193075263410957187039083085893358460328401138959311298850436621823119985852774664322165974905316236560563822225923743896316933862099163487846692323743463788513056570154357009316669885703055419525679228206778450580016497087439671150974827165118658683688894865006816410636804284932131448904421413444900877624809263672858564167755876793668194801558747524001820207242219896297710190192165639619700726758963344216700558738632728039257512401797909172817304157354352196379000716822639911853819036197846100858257618929166291547075333988185890487879540408419048691843746530226638602092417634248207221150457736053018962254611234549210694179755357361281210091580630300538759153180889629649302650547560025808933846443087336878822520172836198400287790008285980230377901437391556194265010240757644332069756875203361593123379462550088537804058137747509005976122456778652904902971019541460062069036888056070312937245735519195621514442553441041490820735433678038957035668212669506118899734410907461735697083273748817789043539134205299027824014126750939670065894817607169221053946673026736520135712821102847133982553099603272985290936144444943676637306280048993293075365658075460897416034322380886126127976431887409755696801839352077943946031142447289342132150663141810950425378047321072305975039421318979172565504208451238357964038108305404319618231595560493273060394984545053100607857732489487070417638622765976622036531200753437695479125724388719157778596159258981859007243574989406601687674386889704561059493619706605556603354247574607487430254902933785127121171008660490413038203622883899234626332500256995247502406388878156385121774406000719279584074771991827445898233988327483614120947587716667907054679623337190173331102541069992501644458460450254770611550339111031330009455972130079474376384168140938834174145574426245003568430860867560379576488980625219402104221292411437935916768747927056078010601921811704545477448942389039056072865570293571680877254039898698112961984028825645322117096200443087846325413293758623891785021453388484244640378981106787043972230102116975961049598545309511776318909141777886245216964293105406467281144352421187519426675346559882423275448486027996534345995011435635335267801191358337960166076769976078473394471505661517258906141107415105139101702063363531248440947573913346488210682530132891975346275449548819123490958978599936081612630024143011776767295417157065983587193779797408484705908177467160397932098347426018126523841754533274566284967030915962138826783261515910111635537882378173883239293988063406681852866888713754746163583599937853229538449493690440558666552908147326565049389623276035345417128002672858119961080078144166814804857792657877078225420394920313759018210955754089504137987938256641122606234244209398745708576841320565532097132015835715509776211351557728596413942009930706869434034764142570532375514723541395928560200486214151227281992073321988048207292557503976136314852412094044226972597350148361545936083628958264236639367997002236685310299569557789563855351389898459668420122724637852450839726161947715757261945124269244836871748264472497162404771030168753583717473660828726794933083858425879786500444374112522523623501019143790722749743627712039051405980916156224552255555942895277179916597938010188937985127977865883088462998564031671245642971910656321673762083203501806505392032925305742286730380322120732774254953817866966345336365119424801112720975064889061623553530080252578913992168375996718910008305552846705857158746739633950434959520859116506122614559247971242274086859816835488874796139498775143470960303643585149451437993087180867538531197022844800500689472135171360885145183711550566065375848612367528825996298995134205795406450228025147134774652898934734984325163701792397760569097706721715879958064435364858473368738835468752340960484502362125477521647497491596267255155462668240882482030023156270803340576333695173812883095875080048698807219202428331518357150290775719571229033808274283584548394058050350055361479169809224822171844392746586150249899044763152226495222766725744543047423400255723257138038172983705618749287410010898665949871363281869362638362293677110488579157835269181560676858481886746702177331178552403559334068103302066082696202089012641551221922275876758222790577407262387742416157714747754988986182311043582987653551786255724169154701719071536352877030910466779089869964328182499186103199773990132790112974324625336203896481975519796836074263784199319071707806830153780513261251802696413195805872069688236664924887410624989617364936233389675258007418996132286973034990414434572268756033733383546523613517746284836469264485517259339609949176346333103137011329501008729907258571436677504918615662441344414301983336871819265099351186416496086817876201009093345997296328175291476308955187628912823262989150491842604611906907959558547101158671143828182218749299128939096471942143005542097697634891244355168852563385079747221170928707315818251591498120792451098183566768931899653317554459833037451507372475180957384734337894405944952600024653820169452800837516826098241597428597958440135971736752479601487609988350425785572667338542302996687236065004725636095019175161445455710509625825238548231979185020021985600216339908710869932437056952731230279881444850532458975618640933538031547755947074901098923267027659981593426845706482616857480569730371663474230055334885007522941970802898298036433165925183661785292065194855485574764213235252606954461170968209748661013756446804199723389879844706025654970600157252615213344730399556303934177052859877355873010900156762925182754191510814044456104484461662712841242887032600587704842364099343731366789809425400405434943922708759874313960505223308213906456708077535143742186848397946263939619158610061982250883294452898840915231062912519292788976597403924794666596539019740837535738755718391810570352225179833778120101768344807750836964963910674563440540227209394481027288412397406055762829684150445335050018237745553513547578373897648164577072617948886621611832884148457125945405037041953847223102147383624781976364227424975761399345208281332519852822098815577493553496584439375171284308522046501144042513307093517849113953584057063899765825641440783415748460199587706417384756116599581118934649598015947273280304215879868292936926098386800865014760239925370685820085353297880653331530720579829301517319368875962014578518794052757365351317344600121678786646200211534664554520664226182847365557640632310183662580192207513038178114187516447743844828168740404733509996255904540933843310228769913871246846168537724645171348174080875620381586622259364996645249557455146013881322480113991677211077245714995700147229386604097652117876785707334110708929659958915994123654210503676914416910290776142576015329492351919261632238463948184020966518467431182825954814413788349168241364034104490029289021824198209474605437100333943921426826806373096655585600096512757437604293722369419755025411000427605644650046620958313457771876319062727000021491206583218536278524842590153096941296055861046940610367219919862881159806714403103257953108425653522629964528103222300330382415003603829776909765847623567749086355619822687383318960181904545779027407379241506921428219876543306818307544427155903129330852558181620230507570024976705312094480119415715409320085364834449017726548684889340766787276198789455328167956914641371707542896184420290256531023307450347252158502370592481074258076728632335070496087068313497358346258171259800495492155537481935199973724858673020358112451783418044775227140419034136040715620804188589137827009235905465489819576242314061012775969372351135723378973587878950931035371088631685626936534348297835337922643564569475491634592855406092229018672019502093028072632925098521677562469889869489555685148452426530646440842576154499128111770224624105619378381906399219879574689990280834240148424658439754535916093493720670999664251968177411949096658511713074671530263529688530383241082401495242742700328418218126303309266329415993475858216656213481246433185955147705143132044174167004976842410538376591326262869834187099419583271673537127265926194272220420047712325311786533432892533447105615960418816562715414846207706425952195244380724503120829784451423325127588768022888552256910440889537941714009426560870966417055334303279561439872631579572236403617316042636671360727126645389046592447179404044861743915963815179300437377338207677157833565481662018323362926232259664297527098641281986100077517165593859495873270930639030417718565839518438539017178663549547693871441012580035572198435690380443854076546079947668557390166843280972738931713879428625955735341058670449080032742703746398161836896268253870859919336657876082034391562429650335755346588631802658949570247751317596244289463993472930115730251599766378592201496710912210169829726591820354968115055591588074020792218806667804778562882449298651076860746224119733261291599179275320968295821399827831298395405999896565484900273465891100502599477554891492583673684445031938575240195069359826717004415410755225652894263435611413686421284639862512784005678156942536939614760131043851677280958353428266945561221916105288959760233259860727641242496353923060208118187181486863729635965915541857152251123660588797549571973256488776794727571311839624845501701997270924222680365356021191831529609076587993364152352566624634263528871614772110044153024002812416212821238656315952393711249390574710659470388475846526384857132021939070161048343742449465632667887018743909687038791712523283240862268231083028617246046072561232257837925266122148320022757443564313368050222657816325056983450697688594014708506160885287358818498562311759490707847167181691830695339741599185756944393353615990696384073532128763441913397140989251014510961777318641997763794690748143794447142431926935992647419248544720155682299268286046159704373556209915057616674782976717937962246462760920225982797937680392953238052994981902076841602942749672365205765392500134010283909624764086976683918907401359467792154888786210736905062756886825324113603477918601500281490883676942314467946292067644011775749721694634018858955612233362354790901061615861288260526242626626121460419495879685167740335741345932186856973604266456785747004482923483167281364821412754660596642336034023912924322511454909794538381140450817469235457165799953352523197692484006462184770700934361842312630508933537889778591067405631799628001400234494933936106450438572135660858075273937480180850630753121238048443608082141602798644427320258960122028083658243268848466945112622127882304430980352488901913998075017956406062918573265620365052541511893660846765380090639776242631957749194951831779806109107279042063457214563679696991362975773644997212213544032163080646543376045330090155970048801111171643854295985112905578368707863914345377698169217921976360704959494241531588679772000457166479132685375464602438872900680367749048602463704784131410238800276824460993687833174105308516933404998081607313902638096556070418432330341014205731480216547093658530390826684034933646106305730428359264384236241327209691739501467548458543428232562449512227786123975238334532453241282793525363488957857110448222271260070348028544614764688221614468312942230111947727862525314850499975732272419836706801492983050959114882193571680392808059311273027497834113302709023135508091816988976140027002979928623305559565953349544094615743002743963966974103334997969263131013276172387893667282492106942734998247065552478349531981981195651661748333237079099234934571103430961694344444114416319241215205527697536363156997166839279566088788561290260467046208709648775917131438595580623813134409418523363527336482958907450113570690637117306036639954683556169370242562145236534360246075450281784259380877208475424997116727653393309673745597823335980052030763055187426863997205522715309658634443759854493525336401912023478495994856851208354961534328408436535117293985038678346412731801516055628569719012503587997476765072331484829473185680232329905251527252287251810420373125122817198783281393829328694952883215805831541193915893580460041647361732476483057110328783306921748089588100844005633471480290743483893477546293688056661498431259479104654355046731030177325869711252070814448092931234745048936606425832303734932590368383027370835524119414598276589700187721240149156130063936295480466140631272595378114994600157811694442547116064856767861602388338002464055301145580293707118340784823573426202993082060058681364664561385487823649349257769816544673665132541263363596687973040350837120483596910172510584188144625871088562619596837498275253223663093517103917673531321939377093081431992382909989824257662386713879023115681077209990029606965735088524277768956852090959063460939041777093996697325202749491762533751941933551080630399025924207509567460462930152621266678264602648073652699772095940360139894746950816878873351425551017145124711656913691582422127198125951771726895911594345219229152612906849516720885288401310574313673486828916750962167126416587218348512212468218740308575496419587560379182417683452533026794324680060229657322149518365003308663905191725059853197572275545779890458892361266575741415596326647376033086570848703841198026864940278371212546488454793781338362330628571457033211992098076625785438599941355228127308398120167416728723645688832227051877089698410203992598879015934773011969614283199978650449381198423844112478955480270833884247042558302786924147399934085606978784982249372766158257599222670849790244447093419657816955843768195857164988217703739601155656983497036616206541195214002288567209427286084845645413752156235249552200954059226572828216837353951997016869573897847350942524002413291019235016979810680745068457352347939395220845395219969773516739151060957759391167504906716753089576926553704342700411775868121033632636729356198630341325747745763089145338637711937813164968405353645229677386973773344244170519431218577958819450998168179171495454545145117986559831453664771315140353748347477860914011443031301395807166223398559195621460815491176439926164602506645319592027049927765839384512008390556495747455884186615547279988763869410998254198075909634195827401289132888607484842037240151473641549555807718403226157560895943920609604410505727762393629522195886941343641266253888823350785652149725085561108805897599519897992039668161574088220168525541054701236531670379050076818184032951499305865535918055058358876287764389474021090817618376720065864818977819173989388186610913302525752444267581991042312323587139740020323592265422706321623456571429908039307400953322903490385318519550364495700966544111903900221390617944188734662819838115048756431419975971842510063898144768310296144649910713469361430165686720969851452963957799674735091666138969261823583479667265061879880723839293979293209271458498186150800522232362950295191731026152104248992889790689162247709539951828197625855186189402792337416100537373635705523757903504433818415342267053189255144153628019412596805659833334117191577005257425914415210121585507344869873388634586211031490957510608426427044775801270419407938471691809909405611479702812004156656624093082645601433677169360160360606468431523332449663750883829210966184923627785375866380647544317476778146530395439255267135406318823928885954500566231941455663897815866961693556960386232282781017107343409314995391884243546080083079918127537301986882639438982141938443876721710104324289557699792862944966975256947306106390676068741300497030441364890906467819985032097392626564916148295690579320452791726944903474600402208235190323724357180969028045076988064516546141612578457516473859621760338414115821309436915492688271013793155845055551633607623448015816112505821639936998517547808049344758527840060360720519737679981521660164706341872380017256164975314197222213581204544859883397008770672920895886568504896954927451937028144431641449960004450738399852576326101718649201291659882035880831524696222823046847249314608060912193936276367436889075056617102008744253000196046522977904795438090705660090077352287858636583105214001459375192528117384295287596775965550077091251953414144899740829177144795776824949926510247573055317542125324376311005276796820215255241449007969769248016091528703112622757314288069417150067209676500903091811218218040352256114115325054764293455901501084458097020332917286766817021139402215856718515478276900582369143693770052684230637020998504046269339676060898345482020636554951676827296758138942924054640758061710743782079002464977901542195187562829080866386100379249878097115375055837954944097987021677746470182607133737135120568031898237243359360967303808119736716564076455783398774812171280481218148939876205021192205400596334244341036031211325256882211015075538927971933723753212560447791564830676492260193118535930036944665782511918901685403286387584579985975469010099322006220119803906737435437971021746512755722065953236687310376139749308042875386693010736708653026236626976780764917886622866266352091608202839912473596708969266317281398908748289176575703969461351981203746372141479335346684945438932647910023256251127593983228314818339572097058373041096985260672688892596519871375334834904715323087547727198382495541312965395847688289687064534900383713260477172911606284245914482145439710100648990218030979391139524323171916644938675129754153895086666648763495328330689064869927937331381920458710153851109784279210237342964385422135803789499079017205620795983672335267343302657135132149262851539561749089114114883932394693806741416926187369918400261136582936948934724458093869354446293929281346579563890259508317550435874751927086649217533552429971906665402471042906072393609376242605558859501717461315335000316622964462537734775707557649807676106061787431740350456910602721404856575390093529711287309869249726144043806415190751928021699782214179679721495106260705521821623627309106720745212401329291551294292440912209413015679484741441182537392150575257315543163501950289748375561889370714117866964835555776888075126834104583339952973879502630520668792358392375777115821130369900107478915044450555710841103198928822460665318041192694241949818120715830087363894457931368418363207666048450779992995583015549005059651042610265479036603260936526596097947187999718611061184231277925690758484202385929378499524322533250062217095200227825235818176402298752230837369422801994347323275045802783335819634755212673047027070714107312473231002279631422640575807961713631128968491654945023489769749302099454381719355606251819001889758709529773405065530941500045366186356499437222756730074889002139808784016397848830916377693620931196677130274730241769945973146459771277898567989895169643294401894931634467287105910372392214508806276215581696442023797633206053400334949329147768615126960561232959376799747527926737832271708158940894698675048978987805732701461394223455705289553683512934746139696279372586226495949144287710493525467071245702567900625052869309088394849248275058831849055798239382757083434922856932219838553576506266369662880229543877989980001937456364417629532083750945360460383198933968822188744168488332034462520432418662644132723250626046173872380251336335630972788687751770254733197680174058239075401886393461696678822786744476695150002679937645247212603628930462020247011528106203100402175871312302501016514546564783600283012598314773000716456523360086056703674797032225586758825849137207067074682655827048443534513389143402419144481552217266380740133782447356957252877059076339051850074083571221026306917169324723533226354224856240679365747339737191876055018873623848181160214476648919851967228486822276930965904478607799351687087057633236516430124304360535630281809482030986997861664364555245635302201421882241289914574987846474298625037791411141099411705123388156274198094492027780066744428082454693353254824932551342619929835369042505722232241489121655103866339540871604894977630116316212913351530204081505038889390043227743345429567456964342645016779879492888701152356668849243275508842392581822837209157858139432067778405203131525656599670647850620732122060905384890314292007488962916798127380654158224950870983433272150576040712326455635307104745676553214595152084085625845251174505142169908452022074340924880989866964866009888519301631551750398360063403550196249361427016663747999726767331257988081262633924614980603399931135253607207558807823946730345086211540890772489117815822729039719063108963737387811228451077254650224555842938881634543779071761945643471136514627328297905704770052347121968052544329331700925407696945353302881237163158161607683726070721019719612872572666877477116172508196891348705295924217043946532328635737478882387399161199423642518829010306954269046996965862340658116995257725213584245249591603692824498630004638853312037458824334507815758137506839174192922694121937612928919174614203103041598503600708804357542571713999438155956295403785703980417102522714912570529205827082031905285654644719555708013997866930970190877015946902456355717772368485459427910634476524449535583813550429027687819472161115110757760207914174080688764182023584221612279949904862628466453097646773099330161590227448679894261072989640645349024954306499076478562285173882523715192384132853336454806810299894312473051451953758601435586508234932656644544946579525654499483783032321499689704503468523291349380588009233062947585819273801801989255729663851114527276815371341218349165118187021667997344130831825968446015793938640336079232471661954575034755157800299667320565745606680402904820580647159607338058004861512811713565355168876389735240383748193642610939738219480070615054788684762498448215668531750993337253196052498651984495449099901314046348792215406802007881915882129637956604022628318681636108659766788738703510719824197405734834718113634725343950678859612550892562062575673045145940338821392601561874037299159252837093048518087531197061124114588628965140742752836629820391318029352233101612660259006033372666871598382907545531135253746391551155037566702293923663911779460420737413159257325596281005827353960298826894807174307474078098242399348876625240593890164597247029960605989467280501515974104287157971447065932537780165290182824300848715948276031059109276214467828066105445144351393251488467487684216969524373417185771700157989295080455777831781953184584138724943698963622210978292960311366672354226060746461130035175860953695860811037316090638064012169070986178891534428055645818153423004446680096318523971211049737328137325573780976303257194052328637350283877834799703384387182072140067864327894927339089164897857889390048197500375138792164154166213478235321537445150606329058778136986626522022308787349795007056441369685641685791343194913216890850065003340861462242497349053887095095100946187003982702489005959925910876095879807193848766284383998863039662526554648200268345949109909667519755294588729769344459144210555399700144889598083944167551684312958436054347868157659356580760742471920856395941137546816643103698413659334845037664822410509267009882101452435551931603149165701348040835450509453327351642161685695653949490811035919474507218565443411662151581669095268834096464311508077120258746031880498640879373887629133592111624259354113333297571851270204617247976414229947992698432596390034986336680648552090067814854352584278083439498112847035312031507428284872149895604415778623078505792560305913819856293194202294555039769884910729298688079941316115296947884722058324398656127082471337200536639399488579668925322823423833027680742123848224157863271233628681520792345179383475653544012965503121480030121331491939215739711527785917892857635891445013545054977630948859560202652828234502480051468997132222286602852124506359036387605554911338743600110701411195166230682988657906288503575044398225447215679073179903840866727146040319716543516716582880889116851067946722052444790860349811769241451799739108527047301873390394521940848497554212166801569361804573814361855965440529835607711497133837582858122615123145008311524072475793936915139209256975747846175400262240674002262605474002713847456324152081638006883688958346933336778886914890353868224467691760823024288941801927699676827802027093455277875403808815170073976351189767728785295262440959184347327334493574069480835349347538067061894131022806374655526032375490115340129155980182117025507505256777984045116022979751699594337356713748687880222232614989165768008551799232432273495651618934439890898700418727606472637635438129677745426551742482653073881763868121795095075900951531676339984742236496188129943360273721169032654546708043255354359266253130560410025114374097034993664966613765620683954110470761810943202613360587141273412371576493935736482430095662758795899598607067270032899804929810016446116312929897579460037658420406232952473926533758171886909826799413119132595682551084604514356586526769044940672106903098390229180602447562350211313213254712489355041562724822811354565397909681697714507029070731770349990346552129852418575364386249077458189671304028895218649606918817998514714793435658145214509307033209089446886889336903471888527275506470627340260237306354519836720220072376706902079526079660770156952211589720973472587663889592961104556040668833279161732767111270175103341579712749533362885725479519464639487693056811874997750335135006808345221744647644723839105150336858041865832517874394770506984002797582448384784271579866254845263635513270613341574943420809744313112947676431362272548739609481070470295846164390188073962228957820640062878586234202310448516040542773249379984116130062487512115499873022393777730119176556552015592320730138017867538636554990331415237904720738728581675160643559142448064317098735646730977101688219486025388437941239977293002997179619393639292245317199117954906360425760658231498971928475080682065722538934140417029064430998195985331094532384037122255725911794638623936529578334243985926799093990740817813942257128361512113961428958434039972895588777904558019268759523009365025668931058782833258581383147706243647802865883245990790052252601525997265959468347239411898910466617721492252260328876346242979145329708316473980036662027604016798970471701803570909125005201401807691200446745282959409410418202797140289605560707331714557275010323962096316345702261074993449923542290756761657397360767022652133865280947569791523652715613697551245450620542281219511833816969440296049955699393291946184498841791691112854965045120500962881806431066651829103334433323286381041049588694189644736107127171528378102689737536925872064138356175727829391372231015571817095788755994908031186869827436079028572687127297067990117157332713509176470940021508200714005297600626876674120566594573760722096246025491124245957760013982130140595453975537976979010342156742638483661641722560095361943114144475895732650996605791780852871551682030455728063599971189164193156044443695685966645415145183547719648893835908894187436130575836402644584627204265271935066956855794913038141934661823235048469018610373705880575713656795293464894315839374238315772315915781081706726045880777449950333204448857678621644683704600795666795104818553155964049543683238620359323312562410527504218720358823769912788016017116987423623709588847316419233003038353612107183601556093920238752127708238379777974438911332073670228904643074090087681197523896088002605509297292735429454301830658456826769659432670591501587944215677904991634122842181388647455700629641366200889830103594389962987889866723894768871723215483238810525533378047894556463867655218214140888302273772895362368635189360452732369803836959472952990336965737342248312671434687056677365218989519118379198170516170393074362716754901035401290847333634386650009886547164702176954415685255861557722174685702500767619162875907879167541240489192641069946912811912207359075005193897566424555715373179220324764473476298075177385182884918804524994334501668076291685991768980945567182737828695062571291946718661199069051786056619169482068698335501335001456028747636668949508681744353587668234360276417430692061858547011276191114178173084668179417373650857124781036979542279248723703570326415593185229269829684656690872086160572603479882617393379804496849820771725250507309534509854704917988440966819972298339248210977762910637141101861321956236076174611670678514389657014153542303402872607944129599424182249951449736734847218176460124416840691769090476007012703124410221494174016945340624456963065638530365140660405693880866501229430314414389500430227630507139822088979030940516479446248769623410458014584496785637201951605052172268344151351591165882756206915869383003097544286771663352285520134343802984069946767194176194733506564841262393596334183789321897142145701670492058754524024923168123750437461967254576760326545343915317307094781634373458441899074470040705729491208794686823527371208381281941948664544586503331262433862654089827096670212674993559217079966806846571771825708428910962743704807685114293106948833356253895441932168228616116547384087704746624518965992207138602382273778471663034337035905709885676241819239214370757261499517153121105811347537849558516478665197562184444647940430820428696568706134497400827312062134619244863960779760424742313394348515362394418204999426801644224764879106492113620402567503645158673074348583166606602922722963877509685345581640026659929999263246336021763652996220993503723645141065305660582003474718270553180162561815283491308009801058623193789327388930670070664652454350282970438180268060028790962428714580457814387377628776658183495830912782867451444735254716721602858545653017640309822122260662897087908602408994640331911318378798369810995457102980936466306542589877795715674805396957616976729053227283666981065646404547281417494569942364843237280519466480632787072585150541614915293326495186912715868401440715826823761901971164065131023688049845608981253362815779332713146728352152414830724479005946231618742493967869587338781301894697907454547244132900398520572081749040897746517425055846872290770276146266014524712443472056385058935109578587164681692223335925398003970405572130716856093424681144873933098194225273653292032997681137098780025375766261910723933112366965997441589939368989306771527181003522418832419454264853035728112632847393332756314404207592909638953794950281951525253745037125788950837189555434939159601220907401046018408757858236557598566188764067892088439831519698398414209131434555684946082623853277946473841044326197433889792476755154699071889005675234012152934747377475188913411631855912350365167149609271258254702894960718606623370629860726687675745176369967736928086649775950361081447890608459570219404696393531641118818647534964901622558876473669866963667858660741509743435762596142348910018714951094823758061462989010492659921132195182897845700836151108175380261103508309456080114035079564172891615758431176387067414698391871113664254061448322812037202618992158183612054412192812878434115240129750896834306945776678595772874991601482359533199721665067549295520621667943934882847744258907284547249996798551471743281457416584463440631767605693378131415284117370047238547119516277462410461614169405702192197478578936644937618413421376528025947177999167944181125483736705650512758604566779046048733835615534715971128183182123170144926401595912691131524630059209326700991555328467128624452095015105754123617124215133731873308600230703463767345988761379024075907354160403700962923536771642786109134091860652722727626573548102407104223400846942489420600042963040959850460634222061861622792425979255245375896159548955626326895093384006577297536929388026813509106984088279901988176354303850210998856741764747468789896591748550602104388778359328404456349747880531522517721557427678460174843041317088174986300029948019561336043523904565280877346174382204485273785682190396035215244205986690803387454526842624425338860156915825851474204568740035445979889266599814781143287430865391274252275040058246542770049436626623870245754294422924354901808992855239909846613931032237575728604105581689901192457807439663206560361576062961154489822761566572640217779313639296023589467771395706640004768923701623159775744178577804948880167451611349868526726984751189123581602759262662203239600313297049591513583155989610065047570817484398670366479639587050742428981002206193180531758582044258630830494102858192550318629471023240420666708286732644901174108720774607106174808807554525949782799438797347279188964996654566247987324580625814500029314258696090059449927281887854682290065138117860309082285237347431213864248775234713725447192172075243665180751915408170763978271841295396454342752155242986342530585894685129006355094128287371768120866128032267654884559205001345922844237623028918644250160336259538354450634880715445310984906099735698817705744088084073473678523137199430892732001958452674764950851279636952368875541234157169454832320600542360656234956919235746522744351205255449761043172863745479342123883298774644089035839836709828505880574184193017294972071397665389689041369047828255893699892028582055529210758353929808534114626654973173377077773677878107944821553228418576457094559080586016174401079783357877633871727694065447074269753214464957570938496058073566359608825500687364520535599173402178505330989632446328761498714057028554453112219034482672891164526931987846537714386033723042045800312734434586940717431556813724522387819031751965848912053022360574575309045164208037838125750919536654143779539072613115738746334949509179657215183479005516414932868902786226666926567249182158073758696733804258899066479527067071665163700050925528058614522336250038987744367560614252529756220579867818622326222243967442936897056492210708916987867692520242007338266146534338574643297354896697538806132833479268605922665130625445917741131056489015448684702858816155991747402130794996311287810961698858152033899768882637310968656222688098190276330278213486467259793998156903814563326414638028057079648394231593186567703275994283166294186934600338380481323882819293762572536038692350169006815156573983946727274673979089656112201984730562556511599986726983954648962680982432056283926740905746735150985018683897728995535175910295022828027950409520425088928051926608331756335962183412258093759394937725939365301660351105192762605885803551656686580918148474307278947802211837785617702446687437112992871520092870440248502225496487299270025412205201184090271804766964838708383368167947395036385515341044222948788589484562744583011758685820954186843584553394655275375460352709346600425704065072703660203733558588391499055219190610974547458016198544595072779570261746166123480937867578093873770139391911929550130222901109164902719510672676888126292581525166190562292913028381961006772227034028921967503886446423635932581433976678897429356373876347006464548203410524386164506508281039479772993618743128564527603697719003234879470688649859935926289452002912285821499734814499417703775556949171893451958504571437514899845307408470619968315415976158187693640393793391952540561113732709816091356466607384092072130869711371820099490595359250759138433009493991302526750865518886576906547394586680711854445376595205903474339567065041153209248969991402883830870366392264737282235886954789049178725627143760331243805707980599481449958377538703647646479851723816079806454912972270363503315421412358782213332284151761272229807909546307944368664682420786156811548512341949753763738635110879701783433973528127354734713052879959917638698196284362801098721137126386851240569612688406861612973854691856717930602866679499280286259027646700534852586499000467689649115920393780683308833423228331153750680559917400433643413510836894022011700666784000421865751763140909034895014179786070420114615329694429338562007465266905726885605273796500695368049271893775466806171554372862970629742286820524458803316497195689075885893706404232251312272078021565608853496284373678968344470177570562230634238783434333265270009868469772407218398944386432030668454220178812721978501657325922841489901757338960298692887231739729839071334892120527958389205227445803412361381899651044953606942349822887384350125898945400149542033368803925091115147119725311955817437507352580376964012552478716909551516187079567267276780154290326844255041482312786130097464305323501559550082483437132566574301504069940192566832905716858404340414108674816316841028678499979830584307189839324839792531205908127241374099618403193871176730069844636144435982111340124289851273955136564755035117131463932357997145771218180532430763526380574802761542574689344292369888132361619423314740303911899170641027476664727993166991266219803014949438332215481699841598409153523811719986713349715257607328943355071217605131874845620340082305088571203167433678075522879410366834698758771377645434468718966369699658230802723663379052352037197369770630073257802628851180462602512179008123073027691440494261494326412268331666338293294158295561309574286820283787740950940324049326086124106636407926123218018723827520982393182407017986582035789590022230765343654238879759463922183389574567331645665628021511959685515440854671380627388646405265379161543705851096837982258856324561154888421046867296344846556217553271379806325865677851783675596038430778828519102613194109099432148409285004811218499229808868548740069892659059879185083599516750395851193543209622161588384020491511947084360373644058155915397264916085903609027048530934193943565457983653404703108454611717468212885818021537520450143997945908371387716955356453504339760957352805072297918229740263193217974684719073113373739663243525484310348173607229380506274001584715411337853501982593063147785969709444531345478490391331655990642416450475490145004684983487256299924467652016160482580289719921888922330825794398260566064042462688819067799357699657001833538392636821237477779829959968701376295418097500700567093027593011557033605217121303827392199919479669831417318855631590360654447023808169122227795154336361225061071850025083092950388123335082629185234196702611429882651392065034398556460398488450551924750234800574619602721494027587477873860962427850000330873712513230817005216909061379158501933603900221324259056878504974878914085261394775610784701086430095125781137186043532997748085509222808435969000992280260317045356689432283024089585111983237202492352030248869117271169546655699146442529246718765936056451143912713061871815357920285682646543594827222100219365494217324093969522429489276187285733908347264754653792200674397645177915085032861320806997050019745487049064360719299474772355005707364143708179170945344357218169375229236900438265704270739322669886075779817160883819598102389513610754661966966842770762486866205639239480321012370225662418989014259386249620379286904499648169190043844510602622293207277523537119973098512707635084132513865593142793714139455394421777210289282350466214416873912733710449387593751861833362757778810746971808414941770281642541565372353306213018652295083343757377150988380891171256714705493043293371041286934200652742490409927352919543572533477779454281569606062297150539633419997900322905237776977404719845195655415913394729571376180498718242606899357241030804929976755007417215859005048963866843085205306227688951108131100320994656646334068462938296604086301165248864761161530909977900558491581280673582555251062124702867529615361133142243343058652771074397132278550993067768732760423807952095909370325206077953212818511901213879657414328557284294639308494356268392411283116509209540959551896849034960717879048300834097470687574956447577752602615115607237348028116097602673261715716398290257191411051697680386901317499262718183584629460536907510548304576932176633855898469285404068715607140455964095589645467389638143314763438766408698673851001520872230427589448012358775017941937382849237989884674395823368299244297125638088917340776586077745794866937568919246699547246113589248390223750146264960228938603066127879967493776797459855536755680492167769577759942117848198258424173567032376414850730713601442540689694045306147503132877398724497641967980056440908466284081439517250697555159885225104774817197050146657397054406800781413527539826006800433837159671142913860935163040673610852061214920608022616091394197175180950892980929453627880594074156845717682892420127321044359806314695188911421614458034092746901473522532680665551358380116096793164111152207443460108014968570931320730978492481594176353775508594300660807802893491390228919018967531374153348362914126188152270455722017084530184862531347856942856062647963862714384740641360881094125905855227734052907385849834552873534869705019031839855241777930549836431763490714388967766888808381595343887990107699086338880606907925171342794953746750455104959538068933223235058875430600388527029126252958426946372381626751528685416927998899488092415389577611853773508408177822999648037095067414393257662795961856920294039724733033581915354596192423943401167919639037766203460761047611658189124000902684261995502127002823783129938297722676551388109184758306864669616778814097411171949539161876803007469898008424803916399925626904209719525557481683441951928325476131461720730520591772411114110842712700237187176548529712351316419322225762840845654002966300479030988799635463787414000615560120369210056096318497660309299174444503033270529710742900718570809323650344350126312031285657197077974043332087555633750928968103172016041174704488737911399689682416569147337569959000127213852074486491814778931021163611145829350084412171588721125421896361789282184802058022341585526517861689680460025291137503865914076031844690963965253644546732305445275566622934376165117531460604366812893400949591041312021797532830182074246562830221879106618767815241394190476819134041274724149480529682207664239671892463977349620929525324188474137379000727512068392376634001538842190700564829710793436979524092844997999158443685704262690411251692986644167633095161329320159638680393007795574185799611884988132331711586889786995839522619017699323917326927837469905065532998375285886335954200756464982817023625232131728538620163927254807314084761077965351577204698488846875302482996381009550527791224344254635476218124023785895134609836905519473783113270276090005784094426420096642254895191430114847050143862829505584811456813754191336122137181497152605319594618439968698589869912786628616458128389475772928407669894456852125078569445510665417553006768055153611923571087557137031798601658520961887592224606309633102167334831720466749449994558967505228475209226932092666699763455402089350034321483351010205367810449920839935800296197951693367647313976673176979644622690016945547445027880135622730505063187903483063097575753879505579222946949853024283345716973281837181160185207818261702727229414437120071552083109854897494450899672449411919258925076132557004779211654901493198667423138503482909253697984346088621329531960621653129683330434154555698248734407303514568090511207112687147657187844203801615654370846724582238607885400001812175474548063700691837879860811969140077209499047661666225723917028152114827042954572688933094269028872298380985576540906776222022682164074472134041531322163166648797176457790354351854014324535613726055341097030404101004024886941972227225298809117549818956099325918937778988011836308300683528421052274754761889088163834337992618072351533404020638882946578046526559235165931860646901127462383175830765550926070331681992832501077686896265568321833497321081683142482840176991575104273674575715645499059041323982247373863630721103705861356590367009239268628369821326977246157063950298308430270371509823217673053845113625567142092252340750505594246204853515590993276430530800138907388079621445736643281068644335866855907982408914504178103742559844359026804133862717357059942646686676598249123710087717496945819303547410180005517983741211480282668394890184767156060865722828389668360863720699341653264583912887135216202124028780995573468458856710477096010001544202227941372304268479064987641322683203461760676688018797033722221676087644323574734968480738327708403218009177701286163208998233631680025182676498883727893899224845549429565813748253469475128526521616519051462551669617045208015587417061752204112219938180391720050053844264696985082995726128640784924785823562209192007990151030755432809580276673627414946150974386031431866660356282218319807668082789108898111021021643992424648973905774171024206374686944777386194168135634276292554267293083324121338596917047232080403199679822935142797930988390547089446588700019313154923523749594112655227848044562683203526870800055740393043468876962758877599895781099353668059750799781762804016335550306453030122664123567420920307388108495101717639071102627581061145404612912161012944814489922337025503417753280230588296909656896294750275453376003682812875982076042982743070943043571999848223248567501778542997206253489147621701754476404361361615325523806387235868711811263661875841409932689385256279012685477774406293542577264427940921089643746727749260528368507145797994805666526926506010212399510210822533815386609758960954490208190608583341843362160505852265228437335501089007385792039098875730668262903105379504589053175801594275503332620614032290358316209740345458403636544830978532523790647939851316536298400067566756549256322382365330458604523499002038414179505206532159481975326436485232717936408448055143805652012351505819398958971578814910009109119591715173129005893921026599385534793847629048566266133509342925970366316477396281679370037460539198682070062765055888763639879599415675500254651763304530655411947212193306006939440988487693920935499779921460715289029502507507503544979663386914170686886705842997306575701613720697679849389021332134368112198977732798011749202511462976570524092723485302901482052730006597414038659244018254087400620488030451319634106957796774344330787177928583380306384045285707684937825542538496582701020432028558153677373958980852344975252210133251298861673276825406336106205860941008484556273366766995865034100750756236798743888539377191395774934654324050530959233526597322743564553381016178364669155053035214708492139251140458110254556365254691197776984124222273711756754953595762013265378527432802402093603373932963694286782057436036203356211801694161844814246513933229882112097505539148299346510820317619918025386670670739874439063868358529763322653938778345037776332825366179221903098741617334062833144183933906844127287700633686798768065955460098487253332311632974946186829740632849135162876893869516356741249300170440597386110387860839770759118330539976105227724496898743380151430073220639439165745096887617905075051323227725784643875553571912990699584410425105137569334381801433268952805924723922220459689169164506150566557269544065965364620927577055079087947421829876086026310940847089498284263830424942066428116776914643317102796693221015387756996779118963272982871555905107696126468307530324311540451239691916283825434685886682399333018046020628996393147156543547867750173918416899100715085785337516212799352871485567912332821105023674464222804108856526433487773435400451050915534577595207613511885391921314739540428555177737489139221636643454173851323122513029410985175235487590223728308621744733711723231472309934142898630595352947264347332235939497617814287163124718251659287699898916970605438013567878250124074622270125045879159861455611475026978149433019058359408591361986559310293089395343688343394942622516597017909759301763652174023299980207750718900743788566261014031942895331364205174675202224232412627924122455023348787716550540894348426754169180088408876048812626864642224124266352709910946932850979022907008360405247090821548930017866874391986520296927653073081812899459915770751694579081416530745207919901389841203733470857051640887950322523501634678961431521723564432501549903265683543268809944104399462867902522198576988274342520050135719269735407320696506956089256687645228780421892372551369383962838594189321782847906600619473310333731575961488721685000697517160263507819269051484714481935555824248335839567858560411770446555176398304715124181566139017604939828996695502022494793873576918975001319545096602739369373871783202433384853658465936842744799029067325239710773747769903996435282421518381292630345668109579554019845051887917442816371009056533962788535965250058835868141662353688146328532964092768998180162058245764879838774953074285352070007000961287463145884300850607926017218965807737088103453075563826249011618786749712335002070042097623819130784881716578315907323809055817469396105505309119532774195612004070375216802545876683043401809496180143285464674234061465337065009834146069176368924062666539496215856459486988862558281213997683422923982566241949081752859646002748557314936657527197335950692942364679918792137196091099789486282872331879805400681048313531529315441839102271174067773260666330524753342528463995732596238417516493598692476467686881620743734849026836453414897936860661969732455586870216875062133434490497820299463362161947096825216624804523228503485127592595200582654854057694907753942568973687168131833266274374968510817953159904165256581836945322701062483096317898035562618221767734546477919882021809452755819057884527052883894415127987274422511342356682007492309803878431775816187021212780836179360707883273243958767788112686946354494087628255985416145987672667600557711222631234069170229482373041376187583291504896288897921628345024671362209801146993891751847675285919881065688086464956322305076096373045751684089180512803693281679259065880896038208298398570254783945415490027483788123301341179635763267137201633583298848436412605219746544311002387425769901751100662090974980150847544145133253451059829576493017646096494739543659682882384781436644493954101446225777357378230388340953164835831768411284889115898053456421028286399123804098189868567376267660163850376048498268135722150946972919435082964737690887495850196737065956936312398131745792831908698581373962048598304756738936746951185775834457393484939914905840155422532111873129597220675715708442355254915721268965906865486315651099359457034760916328773573767246975831374515802111706462157533313304298718187606158157211812608453543921100493048533884492829135551424897499740342252753360372074583985302446812346716681697453089857891494718136587258529441309340200642847364620913175915988464189295851953739922158526003914559594493740823548123316488242716092965425503312299933177111085624343384050291877174127812641430772887659905997384887766936086015362013681970330998236417537974770793991372324026847134577568178651122388684044230543598420040180220444321983946979381187834771742500939867362659733091010065442933087556131626329737514635821739446402732942310575462539468169400254601495088020676511251943453020186192148635782794761166932137333498313045189967147160474702896357718199724990804059614061152609058063452808178794113876259821929397940034840831505160638441466501577081045470477611005822699526592264627810584115282810704365042707376949819066648898652060117964329936938663692901173593039353795492074646622309162079371365555928473113775504203179654316520494560943296090456196521850075161594392000212152089518203994190445935117386130377164414003743329812804343198045188135229984562256774142615242493855620087411021230377474880325307891202361500253773922663530878460502061855370449145667913606558214085032861039641275821160534793572461200234577646326039048744296971780552950857908551617486776662895360521099929075356574377309714679579897694112239823379439817796644833214988229808651440164332803476459015576883221906645837090797457525211763453318134082655771245045389384331909916444060352727325525467516223448965412868122316011524551927163378214159646177975672761716696536605112067565518050474525573018894430257323743564128197983453203272390049765672974914683466131605632382420446617608275621616832079219925215336185940323665919993158107941578440914001852316091651713656312801464379326379495670846161214355939624392088583900456296758264360768097880408090693097133677360417000612268853863773709017675412996229588278445783724113619487471921613185232487267217566318493946666750259148499870185480041413816037501529609658838289395058527754786098552629303593362066952018104885513185975901240214006405253803611593416110455474572603608723406466231285733267750904286336591089805824059392923623058052284148688318667731785444798873985881454892983953094943259055286629825994804367474447840178926690107485765830842963690420067543464828401479829279757463336556583251888072009404412943619595210353241777342204365105479979734859427664207169115919541246023631538293141568190449343105872581764514029558421396829657473040867217811337290599811948787464827768633556499393854189215610714549241399718225279504875018460785101545394737259962109452197109961348755906861631620417907877443389233675009710463690054106580609244069412788290146946709252862940546613513722258388115428427836615395348683306953707366022541273869508432727556293727094568888952813075073164554074650776851108783971619072623992199563412543889592813201362321780961301679152155091887597551313687475774652528359744778814087619792918797590180832256602445101824178570648726178467824701087643606051373341346596744320506208390707747629127621243078108953164177630285620285452402178815737688356947348516044227776404451840637890015314077305419362480879293861662085397520005243054240947766829023775504160705746597355727758456745129983666116587790280676257004358303567725058143190338918894376634167812957507838447561473039626893271921592010847101360572035674955879839613598227240618367057908388416588903755982911680096412878916185789376166410794234206529986881366130522041518023752420691186046696510549502845879522063372395790975256098442007592295801465400657202332832401079749569650345564603627668056552217879302553692352648127207906031656206033652020714560782256989948912445210902164082893528615823695069390089307840789863023058166316595553832189092514941593753925943602915082096741617719968274472967647795601377332710492002685552853556991566345448804669273119270933812990592710599542784445334177877536089957466546888460232864980112367320864062516781662540638864230537276901104372705576948945854593504004202637236677647462195492116302079061917599556303446098022387682028867616906335284240245203931934361980817223262531331863625177317292894927674989925021429471873317615247600115765209649862420608119008667169212824083258721980793951250054149836373979467298755694224383263476394830520616826161908338011317562641005303636864201786719169972257174452473310685082407118459935787478715975169857076256962586422671036613377373148436394223704813146585586345649565980262271250605211960976845956699423748255391621693082325969465295953210019561733656162430268474373162887858908115622006727251728896282761468559549535623703100087608856411092065165731412901496960546462361316161457066113706826324700602483966427009132505135937129689224700802956497301016517909846745989007379427562731705813760643057170259667414745846217665203263894095237112801957589832776545521832095317519651568397996596460725170799389693422722739219004966086483503397448919266931812298442249100174846470664359695526464381549619096345731555029701561438214637336635794899343283500020138183422762219619376285889461687044337538234736785935064393572008455285493764749208367544795468327587986702561849666084479390257959058526529397194315542627357612309584785076495316832413065002375878489589785148383984579380988412499614398993599287820242904471856628712350679618502128389069744809531446290298010848504685000905197618700031586873906827006305953206048657048184103075859215427471670812848006526328871036333570958219221466350285804052792862738020964030910781576342061959534271196126626979538049225081754148755454456741789218674691622424723282461948358091217391690263093650156045303280399980881210880996471274385691530629456128254398344190436226929360131671383722921653822119882333992579835021782308509251862357660384088784192813813618647578497904450740495478653423195231610726599594335780595038175170256468047023753037954866569818855770680448140690784437831039208500012744613226288807081880170170045369622809679456773221071104666906472464008066641647928667008837465801213254830029998038262744657138738925742763092908057435689831555374733803052801198391607096333521734233922637181932689292830390577994271310124367383112069686174522714739351707975150192412647858183264498861111783735492882174453673288066221060423439440022763389626581465672935077563813629265785445562396919962835876632707568413187844607374242511528405549060791186575158011684143850422310605121791281549321700265654262128342017960138412120906554865090012489407774964319215430784859275338685402301533945790310612739822417961454603642776338555481540855912145835713687043991827170613797418172017290103385238266994821722709727210869532459860732638615280497700463469664936734865763244689190328898418290782203713276235944561057653357380131817767434614297734792783066319092357461563000433415806695703774249093287918434415577344740536585407609511418652242958495720834474568004122155635321410606715881666833179466932376933684482777896482709071788049417793309844172791578627315992905873507807088606890598524001352779565342403649872899630846219381794564187363097713867706633405471423349387834950188792240711573188126967023801596481874051214712800241402953305749817875947106154222603975407147842949069481617367300972686506591596358325350544215458803075119909458108338936303717221198356641705190242481063191595953939525327946564781440184788588936992575638118090102417308431924112209387666384721002220545005763487582561336235976134881535104604854137099447878628635025120552843128204042972021720411907006182304826648531311973727549993128630208199716041647130480834192493238492572293828456724601700731512806939379456637668706862450915764094678793454341537782770581809039673965993253995471469938052709375672955557397547002804411227601877720397343872341348649359388861482708278778933322512587155368838074875838894751309669381610888799611663705449752510505777495384118852443937988196983617578684464973371154027872588565607204951400594094359308863419767281096279987392354516933643804282644026564388677331287140555325258337410154783465992035586434502916842083757861399120191122624919665424839816250705354779473083553214121274219049527097489030017635131408291761919611692695344156771998899173177932850285298832153740028249272268627055615598794717100479386185376046918154213979857305388474567278927707527065472631158034418680034408272623676477260644212965349278760832461583829522061199626675321206753013494835837288844573463043531764730892327933667715101451561953613040234563176093290869229459549793193310537524614631040669893815090015754323247230443963257033864159126553068424733300375210146574623370558682227720376254874163665637423279707119276348091392666838009938865032018036361533434275143179757711764943883732944991605857366971483780481257916669762330117113406973298511437897125701884585996964094410623084815156345583926182172565585323777988811923544416107245765630858310220262448278423012867860727675993173647512052166689485633450030602935487000780139518017096196629233389543548375101694821355741058314097203547221200711450098236865913248611529411247138436328890417041469746368634399132836071664264523479431475501455869747263897866446855136032921458879335583413092282968841947366856189110789907945058922677219480837964786414682941994192353842889310047138765753887993096114881571644263762431518052254348193343984770198520003282849729963731149966565364243347273410447802699924130012568086685925730438151242316810019747138134846942632253432152302605877050205636037027069312056688005607067440757669595874974146163484614886094248026014030812255983947638580145421418807637916457223285668987484750617864588053095814636499500351682703822818455618111800444785907427313172022988359209952913340285004484187583535324661371777492509363567937753469453410307964094509579532723165833420368650571223065068186458806526110664914723025535945580212335088241936877363960866070268361318466891642624873162658944619500437483549837783531257257628463199134315321112977700903112127846598813645909269249852466915286239062435377355786776718307074133540788817354921349221849617948343174505298893254272153704136405262013790960449318091639269371404994485447774830633563125118745001559006514228756705099671071134123999606871909471981117318628279412412086165971482494082136913740564702061043413614715175805818080300214836236210137757373115738794590184014992178968260581934220597667711918164903012364262570782116751963659564454973070739835691955344214753133199622618296170911329445133586494961722666400806954848148157457983202288905267729847292208707225208668210059158453526228558369902101101188592788872329531552440427609915168037631050850125834005513027022286084667772209860805506287153521009428575305763776838625137377194846047536338937302711849363709803215119614228286748623288313558380545061699887025193933444997811749247490197389671941265187414782361140972796811318296160252310219318918926689736895841958496555572316224152991029332999706807305756294012342393748129142193549806445766217828658705108407827445088604629969871317014254538149474139647613709095941902753165627773075876294271829398413711457552284581634098023915322192905763005203007169181485174254472675549795424837993490831877160974849869451890020740354340267287628748697822360717788220735921829044421900401300351750892809774754235415309304488140515105237345682885875188182260124450598871263367828574506425775409885914757385941628619980007702524012144687657368107638030909580346488316875176978900698469531284530709245701234840657163760824852044482943886172992062241889206768323673506606736734038036911762366262428384899394276208989410278426255985948658618926367951144361934713816080734569691261094698747130545082552830134653130738268411343482842122364484570511554529962252585008876966407159595289879821158726274255021091107789329148338110907807825168069991367789874432772620919174032774346488805590602818554647066845091012679142783579664852682966773330568728277083853391901146956947072676323636396877648171052344379969259026074274330302407971290056063632879210672125608623285861654949624855162009960165587112754632988614019707514998180128350521550869730741731098066153523143263610758695322042076382705480377125849175715294696603529350278934137075114325225871905925563123990053951105702574216593559572550113691263267168495410690303379249736088363289114066596959841407767385299799526334883352205974233963776899606456023795409393840233147148273032354657214846484336942137649152366932940535860039205484991678931859121622412983615720758188092395333548856462152282661702666769060027477676202510328827711877917355828815368975965808721077786561409233842397683547285489051095794618185770812206589706033965594763984007759485997170434437029837139591437473857882378864804615179720481019893494615787209732277578177156746667620686214282522032959911666518271427270087897356572494312395905827631407572793012718979152675759233537553903240714758684437051480990550194922469350844447468048920670221300140651751852007311662673613921559447883067443626210481888009007092446777707373764450010294244909264001282513610407147246017666169413796538366379523428428319715118371098579361736321033585411299845335135701582362709084980986747431828747980479760000831589614045038986718835202560652493889200717024863786980895559041328208204290724252702997602491964001229809763132140442489735009520262240980071211562011782232825129605835858641358098410291219312230744041468617935223782958366398848745046310794410578600973673871652142625576816536541236703026037008115102948967096736625842985771669711014262316884117234344578312889965391715052409643982584684475446531850464101847293354372141193016489060349818112861487322534857301369575787929446620708666254389081810873617203170181831809582655115751756939057950799778333039257386639055512802326876644144465009470855528846302026416207556785884832987574403592405429080509342708322161527202748554072874228159009157304665970385156919811630808576123180005409779246742436269382459527978551692406879340594764223168888444912725477075370812672063936020063360398675643020588550412209629488132754261276968489456533280340955738187734454586728510001401326102077988645077148356066464965955928637516535937733747960018003296223303901420758977550702099814381108062035933336522607427708961285290866060450140182607334613768054927721630794702160891849772754171533058626072369145504590918104562567425278134411420770821609593557865177088902695990859336505122291226198151254361742558258051987099662217345291968156501401764363164526089997625361283497203318350930686293234324161159454594709097602113500683173565681975679531238038004841844481658479989723292877552299033589431231631895659215564950947752947054668403759860488633469152254213129247452645126997592130878263482594780183621431926019345685152475190605523249041149618968637090204562338327730526163013552640863438383075414800749759344820101613541774890880324100025771967799887557092982164749842145201353013928934655558721274029950380738689575563365102266646898883646234674900718271821115779946605473605177735420595541970680007618701569878753502016108848395875714991160796859839320516056186033822624678947213984858666823141370961775747313814963536863666294418054315604783299235907635834472857616630672709141916888103046409676922700259614787255773676983295011796416267285971958251327606800966296603835241553560056996465135520892388120483674142239936301095165025949607631507374550118035966789365205311456954065468655811026215645339662458635927212802969188781085237795154242061361853604907564864310633105607009144731570112513694771594374910290614445188807690950087638074404394105597778193494153830463970635324190650409349374299408978380420242447277965651750880825338175450712340208034659717442053852899935763224128830928874461733318988022492322932360677172487013403095330289100228403781602266188978002922967294896597937755165710540357963717471883284725356025218624061775343609597598140288954135622087217468913226119517078888832772329763141070713434045744874318430820093463668160914884452905723723464813073278960927680832719560934780979395123250036932345920645771933124780672061480049174419982842987814884045045542716431769215787763640946900830301674608438517461390454178122858749817196595412694854485964915410300074760417483323133048949892892089976079353875961890611909578054478061251689764922480058825528991037877845731419763158581199464108892232264227917722710985588230359888823587282595398370278508719122961361151514952191557190286155630181551426838293066848833437556358524979876284255395168305280546964214887231191091078516477883129710941997192927791907879798646846092183250743796243925280906351419807701600161693341481655186755797578691222312296096881765681264599509274365162943324978317766550188012905822360385080215829670263831053455881572622659269858796522599623157339551827637842437854442669986697861721419652039947773970254100635143180045594220572509877549351626963165921169499241669237336457981379612500013446305842962423754555265810799609710189200691691541290126339088950017034139665459084463145597762663600441688183778760266790905799275783071110091031102574710159566671497480651740589399353432382617189705620317750661191153278494288007072002479757744332268425210273191188919540737518953162027130673155970427824443566323338374410446067465348088542983243353071676433556222103820055010622878866239301113163577781720032962407432594931329606702570030519511268872725721391635463367792520538772784969073952453802959450218442905388716191948701095548734674651594750557366551574300721158403906785386184184386006217207966771371879282945876575078845609403038713860547283727970488914502556302960582709693814825355038809623159448395075350045355768362141996399178053143738999327655265054110478107950042284734953764560097921720574705275294111399099854352599348258621428163769039871252122247373277195619430234439747651082869412246172642898399421088479173016304273017461814224787519262908862865776283463096921347003853733530092031527009252861417678661548533869728333709227548311033541359242040786366163840968028915309309721561512491750058617718233320449112656104999592886202703539716773666601529751793356324451522778762100016266194650230886925695863532278773024294914471313070477527458453702883027394829784519998063570675422299041469186753438105782399695869750331265757309274027416508026778296523459656036165975278367239823114498046320338832392897491415401029755689658081302626416367269324289101691365181212050608638030037749926241543832149302486298242743691865886572487429832263223448770895017853549009190617573255138286657087305772507757071465325190321034988184979684844945021264861262266880418383422569441885407079964783620223881215846888955997140292428915735769227575282906221598111970997407452649786620305934091726228088147336185968891495922761496606563680259912386265599103655366916514969356827284403322666022139320592566185417531522692272188818731188201858141093297185751738004144438382322747712628357851434703314087651873889766022918301499094343499888522842050573736215950720075661998460892072832151016967970207137957888905364178290326112040899880041043827931206330953459187898023348324146742794860379124842879641042618532978777327712879703507208315367042836901931504151555119971108922799393207424222046139664643623523122530710452866622642442328752308411872417428817507895455671952077803963335163177829586519398918560053860537561003642529785449423835839984339653183019279832487505984122488697424321401735050107353138147468376356627503121057833007457320161498828813612177902887920856192629513943950302064190299975389275587525163009292674659311911201744793801186994915213713349981662207276657322080653794551146890501523800510999184564044477078096332781639407947548108622042901004448347809791126019281729467666409673504329836940876275827162187759512622073191106730913987169200461885110959380554535743771019927566465770035523678041257971902996645805805657264763355264094002624093976753096912500235628859859910092692442820156378549031891318933804935963404896001306210952279960379978981168026068115302103816891968372245839530718615696046058060232806612031357688476829053333752708457553473800963220722494008874624014808960662320880801267880637361086220185697365239686155371337189382043106216226954290933974656003082948204533867678771329671829706629876080492250788332748783057388451752551297330292483412443423633272431978292105156075942191704037944326269279839051235582910906820779941064302768084764026626343246067508077545237966164478285072890880946416914856664223596369568405024566426727944447607996842657079638654013485505928997016744947158355874359923240062060768804125121389934560125509870065579108115207211962110630879341975756073827645853355192303778930085960243870354555817348917039973259443500163464170589462874990719740817061511554897192431263201575632996911537935442437067327162141383774114932907681462119182684493070886508633242741942704640911391494657509290164926338362836951638304672814993780429004350046168215046178838163379923562586252188140305638893985195575749456677731000218857766392672829095602408581764670051171744060219746132989670772099931847360414360526612960093139108211758941716889742072090336782136432692334245227890311959061173111400832389744514169433441516507685003510895177073740875349595031684344369979645937192059369347465198894394260940756493829903574876406834751321495606136482909611928350642968946151244915034613618250767805356262640150149007139019970566689541699760338962950059604790390845593758707215371825445011449333395902275096146366102659259852941325055037238534501294252619660917606918004074339764004962537947369424105420162668810312532853017876426595762147540143124659799701491680091437449955281603420518973850041316584441541029539965606046938398954624640763805153681865397547832158156117474802366216072402627477447497512865475939760211551270404800110587492166225407021963248099714614456632164905184444310524087215264449599254640566552590582215442578397873073028628202488375175754776152590516876574559103461440638307933471260666876319104257957664615221544668495764645979444932298820720370017387616354459895522424757927214953434166324891364461891353677942445482722425625482060956743155346887287076614939455319443140430255483116019337812295776246039859862878114328019080718839570323377176005825026586957513303856076116774524716873022266240559219533653908423645742791280585709871876347604923489547684182621718224138300813295553582493976996366950369204058183754491288933900476097607678278583119001057416492258379673682898343307271325360464952822563004970936193402491858416192859599506006166941962445925097245730575471593031371946386420012511244739023361878777260994540192607275335865300252324367285364625707861849064411109970283477513792182952620659104789324196975685411862543383995717950555058272025694671889297131442987504810355478447823858532553714159605407310006339747193434977739421023631069841883005390584554268367663229262629342074026851223991714078683128127965051199344612921017535694891974056832416018169930025335223875261532095225369234219753879095348575317241534085700946112101867589961178082301048220038125711498055785373691256221700376641796264957435704107154581705331508669307362415021984813964587835304628553595708274215960911026916795487148148095336520456374064240763917620254782176446411728262447374884000620083942126572526874329909777655703911745433091554713075117577424920996160640892017336129352247137135749701001688311163805246290706703788059320582529178204998525513723304132543748354614416521909282517343832063543846161110287092135546633609705225192004120874582944478383863524703798253420824057367056879749838545263016111471392689073907842915810225316565264000838609149085158530272485171853204666819275822297748185283478647434472107434909406863798965321538017742048942797829682121214126789706437639050878296555818272021739064080113729964646940905937437233311466740110812660644869553511704317380322054371723491796128161213438654311815006284137238549011736739002009403319745597551518407863145179606319398648191503585419309154157818108484989819594792988881980644552478918378499905014758387829632364039302290904112303113801302267565030423113732609608284776107612548607466083052988029009731088960948449044696790853037627836173209235145509498288797954159199405573194873402543217180321786160510021633746576169169749856287509042123483505269201559010203197896857692173521172993773022714620882539497649745890929267032295493342443274750032034130737913727513449007377786093525862427563188060841726049574980601511139978658718468489829578206869524257945093299210330360881500337250885635807891110024451759742948958271377715888953163689079243607144276292787411765917381877631947784600433784036674226287351896100730944155514384667662359749877310793590029890876968186256241005826164329450906604797753481624227425937639517938178090167951465292162323119940583926418919543043023708076533452372897108858085332167944359129311131157329998013429272810467027405315383225843697072930917461309426109763285819000320835998421072411723767116183066850257587982330093582355915167559279062119967990874313294599711967565534046867837189937997330091298107196574564096957186226383055309995193273087737078087394560647090200937658844495068189994412896651237944564425963584115353582801506887682953888786420423159373958799953408288139824050339721530443703489596410764669981911619120123626393541253545672554306054422163419078805218651877032505031362063845044707975408344948759704109349150377148440631293384400894951272445033008820975705902446583542767330601468959488929219099843646706560462969216833429378910011151508451891900406342084226598335397288006647961585223235994320133304155001633982835521443062736589430369616802927380281826976008905254733975459151790012102272411624839842687276497701159967040306708655174340095373393931478581890372557877139074564818587816782503948096327192483582960974386709252860444271068728964486394669434362328310840929820348085005431666873667100926469054740140800718152844523549850425727357415284896610772886487478708840130806279640721976765479948816699289347018965951282549015852186875982842355756682693999085805612209808612914917073448852447894842136135060813521228030610924507492859530185316744858081281101486574865318197138365072320412293243352226542157528747600480335627645264336014024182114690122769011358622016785110523173217253283599504010762421536550417632270169599977303895308127168488267460484827800485633497989683022719505770564728265140174408846042010558700431474361909800944307028638961706916259608275251078716201664890947951684057718082209573530053010661153359185496504824810872140175577812141042470743509699714606590833810632747058359314483847652881161104432422860206811299412374600121354070205150916631398333657117401114890197213348436105121050719071930235993146317921533152957412080998340509063940096900498510541844385384163265079168211632117630603057159951061876507554995685471465947909198024586424367501424023154616294123086551342982909554667131542078421235135125211812130073160240795229668852500684716596301590618485612155415381148371603299654151346846720757435870840506357996879282505402659675207180150127845925532510380651855093104660728507389366316759639433298831474248165894541682888654461482128629114515312626523693227854982811639577007814272474248287433719238140708720730733443285945707763981128339565473441441458720213753874648919669101145929580788761121575191834038603956813123008752777705560166039733089119489949286186423795553248330270800383771059553602083009454440569311587782933230971435379543387030516604000025650853294200205602461627732530601656849702768839717304367858417789390743329144884585736704046636944296227587710764228733289117911052086031899063454112542097615861337001484049780199719095585176204403842959416969763474408130057491964909434717570939667158031061161686691311175439034121493604068551126131983770265983044551818860168294440931129550632573421890081311173682463648719623774984519978028110915654146103126190870906348617330877494469380990161701691182969223285815929693610050231116993377301426482367787186864191697384078563501060432903079930860604428241671919578368242656369319169106319757098475131914180547294495681849838418867383708450411011605073171898677303090054519877409278272535077685127247604922538918188895001069960033233748302427244753511599320566032189680957116365325907460001815844072103481148483182163666649675582021809134428798625123921009024439813216199322232199336389013034192745153087265101002586265601133664282893694988820308282132888229830849623948301821884436219866862680770187702909929639150588548231173603862275124548610823664511044440413785235668651587800365579174435498092320079229215180219289906449728278911677646616258180948786006796346368707430068594919417345506497869720573277132699429103278215739834237621263660350479089133379282238387119656773835147997811562296997018143172110267917053459537418714784156844109113711616614987025757288853573696423256247898722519079050484786316547836720194601586531401430784850380847968778380812356246027659736795222559298928526417795530898785812177798949752134155769345045230238893001695960457772905312827569569841050821084653932167433445801432186967904924687597051308983623369754880287859080958009630721361307338354606620015299748441533349995102756369236150023255001105465496100926061903020965995235684754387635068925511727306377817313401814007013421994951121429681808860925181039877953651056981792485755847671521193119143753364576746295900555405356201552429179300994794877978819969437233988896181609510528435227326546434177511586612756438315477804684715020047084332151314763645295672550916904329813940148808941033499212019759419014108653741021817558236930947452375222645186547523363696519953053608718282327951513363893560805629420163399687189214137282167872546822168719954075320300376350719137638614754309767689714301329048174594136299683099686109564928276908390055192811829333876859670280445765373473884656128921719733814487350340281547351383293929365681272202715394735118686163076952895436008196652180840275790068957153375792024901497587620548716626503266059696580761929220090406099147146862514134480885438388049695273949131939527139395758883238400647232168122226062488954425213035245184398363127490823162059103336521056581073342446670436185443725370931560095533117341641944014856764812274596272169029020799999617507745574112182959764997222501717422062481095947779219016514890389541161382420600376210062757815614619943878111603179951439047436724174057731733998120123182536689550765017991684799300930659607589578265253999092429012633627232108693742453550483858474496557656402355591934268352832035375420785899501192234030667494898203950314213387043903294682915876180219751245604876732046900391948712855403517662876989294769317724363038428859011288439760389508307586033770392675016637016920545858141894464596615175443533325674792409039823486862621574795009618658437213695805214829111483046773260956579531821474191119975008996858328619079870896440565498926495463779751741114484445852138612514062038976603320780817168500006151821686967632707949958392108992969332954339810718256152092316983633384976733598406407680688897513442111156303892568168779556088589029741097384459973250716121089325786153130817059322768339595179157071227839030410590984961899810924027225449838239389215077807023914178380600213919508615480859932654792402977038037582184176523779615525364428066620519707094320799561191062346227135571077843156883920893241307208016749234275932019705618388686374110402030711521374557093480872867036065281375023083105293586178263803808442039083474363995038627318016690621107962245790020549601407651377817706750788854613248269865531556026191621580275762467036306814274401616368952961547000418007907175930383735858649588346925947710991461861755673205479136477552199295783937655095699990197386231495953511329569577999537203754722019412558685128722796966098334338607389924418568817821916880818699943952642366571036130143366715932780686328256381526042682729745425392887140028053475482579630186164131822463519354056385447816144798115870694517793222522136006860088926621475654906813305296253892754608441805640565879846250334937726800202818497791380300469557364215658537662257311330019072753459885701439307347527946996964423182363248859450568174515426588094216280615186200960638087163052897439070755414681702831978626946750097690678930977596910226701667038926743031290068782752458908224430629756114893291341586576255239604475706810278955060812932288156144685330774859926045407583448030549760191207730821347056106583555083236340543654456183342717398341097471420261767978600754320817531858090702334532982813415540319827244590756025617392948570466656486379228834925757872206380882127140073586832650992695621578052848097242093842168732947960897487721842916113134620797209153066368011393925482008181999040089860576559930981287371609754130319799076243282310787207883631042725982431862372016228778050498140495738893163691392814644240138170721323190798958550043615358657940659422376340918479206994151916090267677152438898745759652255501715608938903105094045960542154624809731387105992116030677152585972144325856494931469674100459184691395528227957838249425390412102874191348359876039605930445271634415030189494750210687124562031962925482901982157013476018732085159201703812044043443935704459069360348711144014772364311938167314973022599204829438733457240467241274828076996540148426344421167630971465348737194795685094234078893814138954872907385875615028629983102794344358798649692068476398298748670611741190280195550133571753906280396283657146725481453552695266424381948469926237250977946003422777863843074618869757147799795927586206216832265992101327679104828237077740927681997480694997621500021922416800624920076784542804341401432126811016698540197647586731667399179216935652002515377458187593205499572243205730802335496698090451468196059966639930743673300415090390737239501140442411307017712740810452615094097067992349674846481025444586694502381196626587609114842143658685415126702358280327034112545597284209687478052234505912134683514030714817648101958077007493623485457596746331247231700937850440736755246158957995947140230245633330689588001913148971697256076277175529407645388903287814943703527068760494197456828952257648597830489375394857858110430408416227032417114528777982990207889425240194408921971831137181796598398529749838471755078123516752310983580158773704003256290903836630729089526757383124367095417441127207833304447536782767899449579540936978502967436251570761722174471525518190040632369180572773521763676166113676312513678594769115332506972892313973053227048538336798390802377871259206254933634516834275620577034450309416992159162517206127851561018528898938567066429211240077356028982418079475224726704919181545613101695604380926004912684386591562068606024953512219473819299683674280387537081732510190818706208966325278591404088239739515429032912402436196182201587431570548913489309218587278256031402042976182842203619051520248943217474804300504247677647507406776268270329269885337204806756610447838131263684021415307148058367542072142050969794535337838556461983803444473718639796947647799950974295332567877096537865267865972569008295113926268877990159840723555401926888880256867349137750777511426533803397459435797704175540249345609261606848673788068949502947553825102334048637684988782637896850385389350965019730897020852667573580890973854149736688151109521276707916762657973947529136777022827528019927793764347628791179442961588981882127958790974547649876421217326716495009198730902525804402872207352661861909167861800310050115281266622935064914251804784203385897319822699106566119979014035170142306482471336707607126960859108824359677487477108629398659712049354027116489807390066811681240511920746163699976880585156359661492214455390910566365977210896170929539798915245550154499438739599528635949273886872185262766833697324999122114198452422399296213948275802836127549701400280254407866253230590593195568861454372913484809028723219265095401213545385894118353054812935913709001556985580142674543890545488201305627747117286991828694095335339273893202279881072350332124046934951215202818639153619725638246204737590572367870895679270574385781475710180628955993632336831306208876653337836296974395771349393824134283102625410138988806731862420673319261797975195608644977068649608258655097559428288506549684603981420583313314148118561801243599902386492558661059321784193935544518994201145727530853085193018128459841719061664077550530931987270135845073969405461790320022484480672753260601392731298573461433424600746626955097766218260119675121106651426576386620672699369975624083462126270975960965248941786778478366818871826771487327786137669643916739176433470050254098438696501545882089069660671754094559448580991423657112740506855718821759778145622554602763079851573561544839860191663151665801731174296807251525224238401333654084262203778620711799617905259627359891165093805365314189884270483817849219432047039656107133930529438730110293092696454551209664976031501780986610570685548693227127390263388208108971990601324973813954442905186691405708872561166448348589869373274084298289616467057589578390535913327877760726643352146548706075618602995586344827223266164368182740089614307724186913158853556472265831356026817369617766259216559160280551228140703893672471482851183874984480988695607419344527853274226907398602268005989332458317339287806801658157215725829206871213631175937763742829105901347775327871073197666120477374730393054713355267916421335316814471271388178023602525402015153228537834778864493070070370800432260283890728287858144981217251359907009061853192045413060808605150838178397343556634689266154593298901910545264294132755534246999104906743161623492327799017587708427042093287557119799280976441162352334315958183603079545061447174694497964489545841607454892778588602017923403386728557470456846188003526944276033030284229555570687580746424263701083197944893265676415316212770302409858903675224730669213573382168530061583976666074914299983856283817078621776235537983709873995289512302766318221219091559167946716024768292801490247408081342026906783651136303728313585003072843639099311352900571644577236677872916100584746579673806675922405993537856775682443480626000192856780728553859773358560998871283083468703209180265916850869272614983911783961172859727166637140166920633598451954409328452363641843086360658631685681617724967611965075729339973886809944134249685939161902440751743774020603624361907191307134942879329190114395481056243607985940793356458489768734843585242382933189727223576073196120969031808430081558276848055450997460463386823431608747045573011330177484819131072673684568464039096278339944860558840061113700546908810828926688340054502455247524417369675708776074365037829192963661588822799971214860248559797977853309190353350199580432360803809829836770783092592604195408152563335703408636367281841322251109012083848231312910951115888640851513104896324249069849880949991468545710922296841424487408907059429159441574312734397520309837309986647520767181997314331538172737546482257629824668570074574495094928950724811157406517748137832323529353907459801648642660021910057592264461821395686686210662578425848588095977618510460019965611941162119110615353140903930717107875749444400551409300719820638240539238450836168018192283973740325894127623434854856809220872781083262052787273799502236368429384972003022493441049603391190070671969097727770131586104534874847184526180474361376821368608679167657848378416125699324978574902270141437552245595989576637303042911964680217325199661913465640258012977844752222270478895382005791305573308414993564691469641909111962701069526794509585545907802582505258021936989244339750887917512435033245579127991492595254371140704495889169943590655929208860074794617695321341834959820338496216021584308638335673368137862914656259578671058490296604820313888358194127170440687468223098994982274628842269705661219346818735385444447007151636755602057255328117134477561147085861280154808083342798514994473292902328112418990953578699985501286821277861521497664863271036630029259934997772506536452188178404243177354537879384076690797378415662362473525552177783901264082032650742575103317017952551515274976180536635062602623536526491727893727422038253106194868762683149579249285219524485594861814830158245738749687825606587904351847503443459003335976324069814831230712183415867687687520272862486744053297750420076171839748059023526682059479156081535698376901895749390210137394556247160926095289245160918910454623424562269441962060265941216874598626027967391625853192614110040598394452973839733597528218891791328525434518058098606049918311418534594250061251541217597234915378989154639890007213327839248069564203135980181076820255606120050489925525870780553135660323025666120414693974984814473256816758495481178959641622526915376250804719830597578021657800825703629938925737498322106216043003881293882177017719058339863214465315444771852243266652145433924748321335938250859136415341227577048014528562379137073610046587680728762261213156843411402540378992780778348788541436069566079701876948858116076398629212586824779361254831175270044211851504430794631201933015643323764145866635261690245661319784960494746195473706055180884391865945511231436084645841098261309647422084469522114635814780027900077863957623839882654132739913043067150648755798425855169199070993978946416051224105505578746022086499543892753970507742045460448914539576067012551505798760714209100116103398295194536173548911520909890058691589853817716639491101601625781430209799306897759087190179304025014352420508787958216318599462387603391826458568886847571911311060267161882123226525843157621775115321401712808172192928235222352708561710879269378300816875149457879410181006030102221446224393606351439830067356009188381291590514720154357353951719241905584482492349838691509845635371630234772304007102716608989451021037078213406801842718775367629297331538646109801099324274214905469917856346145066998085975434068484363990888819272538997094568158375024691310471880071383896029949412904072829969295832624428499294230886360479648777524116764497375316459313602876195017205513199414491939423073318609612255889700945706111986534625985391786416788545128129007983414176922374465828340663784994086910596659466160086251545681013143965190162669021947892262115039565690279536108619505572609944252058559401574214004101449733472065447588764551155896172392688648626587227467234123038659386362679789182696710456000992574241067046491736608378614114839359645828651911419982998299275257873976334797637752667502131223506537126406182724740775565188064134030363284338443487825602389241553600117418163524902320184724540158646510314081823754930839323612056684265521785482496562028285950858893696907696978472644906863595293849176595246082110965985522007982224432257099951340822660227267794295425060963643547638676274663409773144046292383141948902954946525670314344134580654813989627270828157106142488121960996983343286728588395022542583924561217521223022968604723933336524094881419107902867976586439071025391849808489359036315950058167411693396795139395150842853958120668895674586974711399487574746989100550892466848877899404188043627199005469583752716367675594108617516746732514376065784539571402986172172526353585667432302813723525562608800070498849009237471732302259058377629335245192601623763880529953058297915986238073895165154595190559243505443735980672422535988218704616495873325342374274644962351020056221910507456316290127854267189132704929009330067363426247426997547988797394890048304247448282846719456658172969022031334445224767689235550640732908032653582981222768379955414681475656203077545497850158803111080998124770036935298574687771261135299076468140288431323120322488105491047370697381181824792821483612023124500328713837806019045993920656576933213012478698826054693882265654568009942964523625838914435286232711144892494489180421453054962615753716412282444315673001984610913568951827748453654009520399092361600048038021651803439774863302340793320148626214566194714588502674749399736529298508676288542425343687249779050686767804781986843987301546836869817626062076987059489675349594080529370495259157525588752527604376572622239467753867956726488187128766911897045984327873163886493516733474950903653991897145812611380382538967344719769235162866387439732230160093423219248615848583747887607910981469889340942988071613411689810817945856753166920027090523809122111996020200631128677609423030212126954981668129821289589267911752032491723739656022592025666488366458638876742245572667144981387152563526181570653298423094084560721650310310906057775056792510592768403256222579927549387284332493186320637651328387671998887319868354692585676327787453480385386801936948085546824001559526817474714061909402204038073940257689860725229806292532766273091855677980848604329528932104725498939947056756524335592002933354199588145987616731451416229746568352906360420829132048109972620297015968122121033028109312586152862364257951000287013822083891805798824306896125225252459860077269805546296668079241084449385675850896845677363886977550905521642235027389812575166642557333979857937235693916114997006303627393729385577052203791897573885256494411655671411358981415055569439962045747574848247141256360884209320476305029695877550319230555872573336627463895866350653238693943469088227855928032747635594596158462542497248593082815164558795551956244575366430843241534043242885869792442704493408231837056730747712922949048782568693005258282775789508888365574985153348636635149993829971711142344413221575647764153153657738286127483565671806756896893562502678808940534454673923753965720021793934853691143111898879562546001143565343947328555204772963910778217000333894782093085689853115004456413377344792392287050327278951370893023289094270518085510752651325556735259886901549251324511400986307068930509842343392130064056342179757435652591086304281075140028393945340748008180165154099028598174806806006684540638815648322340335823880148049504960263987739494330963027340296631426316131028692055817030348503940455882855255144164137952046035241391554545639852133146827330006334272292142542468882554757836392236314356450032351824079280974157110564621906715324721184453604214973483360565584209667009936305357770650618354593434261041677078080960464231651105600154459853179127306994910627639261029835021354925921493060177121416120588580533091976155889949071947869543049980269555135434607016093890460286804906602464655030998852493961396216110823863845241579334374987272329588100941216354776586463639886759810246290541981253162700723548355220540676850597072319774351082011576351560029464325468444260807105758341220888428823858554095600708234648475588407405569556518289256381953710292938012045068282576306958244463770463340891524852414172604345649447769506248064938039534712606389913375116488379303878302759952765951865426438482389768895780134888265791640723157929417577880715856914937923138065123356660663202033818908521572141167726640305550026237533615714178205657495696034010626904114324490636820863234403770340342804601712913912788978837099097185798600673701028048458451753889003950749179943992448143780811894880210229842133669611450006404603185704063110467563266921243281962320310547629063232754911352993943612512635574617839035374675354386257619688300002684786598861332576099200342532358186599299846282999839987531181166685438921051830017372008456571210825780819631448609201556829871985604675835145895226159066575513683554043197647557754853817948916758827258534838211192113414502447546007824265687383921601707331498680381257281844949126256752947080107487684819228674042899201782626524625138874630734334702608479848771239843102265700746369036106700005214258141819061232040995450379918102694412696603401882209299668660321257696512401936783070548726152643249615158678138466359756096966896737804630911898944489202808460979194679753248746634003345107925335121560224843100991819579829019244931751507367898548547760469844723379397148044102090669813806657931291704743136024056727226009892122642197135452940417315501306044055039871914575831362207592723956118312449387484937159265083443093237697259672832634536976855373731949106047447617967828367738191364015018582732759149144815665485566699519967612119248010741651642028896488360223222448830850388326657788361036772885610793812974283122152115497822419949498470984709285827972177894850945667817323211769751174162123284147811325125827494009417585952841467795823918055479064365081835160760388594314752917605410196112455369414861728970381580082652430901991840910986086680779932102924674659979250180506682175002395217823045742781570874298118615727678903498859682147650645914399125414547137592577171919958505616648082596809342865889367650042237597149307017498380577615049064920719640853338483604726231071138831152752869366989507960774901411335791139090484215121275833868419984194242214693199491206731980792118260495504156451477258031598918385453250817799342897045747509378852318381667598654866185024084394893553435345104167246492952291439792644156731205970827253700399243874521902138422301100767870606509920332646766927833987931505039284336111534152010020898604289282933123779112908774549592572847107432923160474926149559020768471314894987208227167466329599554665601870251306730295538417637374551795112759054544225804604084770484380623025271465739925544102885506054179988021845818913804236755998564535921371535649102769122926063083594965491990638488771136589891660699805895103482701743020016558021014610686895328683622094321847873854724994649367488092595014580873879644297202207401361658550213424884393480584983393102686752232640510520551022758153984124763668660102598045840258708598908749924584277028831127789218603281887124823071905741599218229485615084390652589515762181951113017955825944552046043835011794127299648277240628274671320696184979111526690836691652194671704715802517900672346814660924981835900770623913077805989490003787601248441456469402018907119553996733241874093398027442375639806271107740280116977472539240334973818187217777842907219733154062237227210388838392173922339659353418231492376864010492774337006802779045569482787898048871808733438545226624842535605971944249581401280709358802437068972045233470344458948953893518694268659604418177921354828136735058460499143747380217766685870017782212220265528657624294029754441805764359306939761563935967673340611557123385090485949689682167534168278817270780027585764726302984732444950154135599954549022887992855008750030014669438674143379095378285117684412815769170395617846660648678826013370604678037345391541138285507835250581094317699068809744702750750997658942491069250876790880799906718893601448072621538277408511972759708315565382166440265622520990843831352838057444642190160217657453654582454861113113532482234090511352033010498581347620935135255261485190274685332597477454817955553693761245345477822468474412488526660460150332271069712842793062881574320736866654730561978627100178280695366799077857947241845975529969975703234210515770912786231235279533550315616313696420722485391242293166878271292949882938357057446824578596587864861706197565906869161874806115313261953748269526543273349256978829584998593779584389935184283443609803658671391309153731089312580701787854311185927048082996213536942917526640801183420096808061209385060457863757842206402241343687525928396786846724059808209046342110700252860610806985255294326986881719539805352145714330634504619152315406295543921176872068076035412970697763434734845971801986151098317084203788811551055735037100480421033505942496072309710662965059966727287862038716480920789384406591598160876029071535831553549642402278839214494597838831200171681300855851582097395965921016684756214292537662696781907607840873099516251789214254409246936838633618714082710496795519408322473153865673335090047213186240012720718303433764173509933706252004956271898673225697090801441416939671480450527326746810101724468882704002437866281560501991062382194749655018251900938747929866332308796606745865778288202221299044793704272396152082988467193196688325697469891503242930570863065842032908859510476394805748023529412484219191601136149731363777075155142117651120490704001417233393114895066347410146343857258745594244994516691396089065095539752037962417955822940074450028774868703457126536893338055388540200656483577489404755532960295065429433892272241296396363139369716250885330804131878396183839402007649363486509839127570873987749346513493064827752147421439659310056142128830471946978876766814350055697256180202699051119995915626328085851638486573922762090651991743433505913981540157618406000644828899272980056297743029904320083236413998644939965512179276317529598415928712667079728388002063009744561638974280965339243267914632653335989100329603433782688817350792987703712204229076056274559069257490321296955444017110439655842271959532382112014068625678574744891296099315487643065185691385318639496674543418533453375846479546121190463977828326858719873442230724718331269541086951473567377225188359298276070635292008955425533560311393909844580686442713465652909018402183128331422824751877112255423578804591073252051817625251750600275296299709517466015812679953498317081094754829432784769535114585228442756164107203006494454856180979724493962239617046247829929616144332352613515066583703148516539318917797229046890438468480177354461575999281317476928453397532148683466302804333554092687807958246525663411143545270401200515836076773437143208635678052828228211754277537269391991414956420870495455339209304911133878168306739554505167737470572876258176379083612273247005601042264382251554371184662204542609918624701365445235351879052159670658420346508286365878255511203840210916612733252039995966034581334965150099025202518900926718338635884608499322110611747183433791439034806199849519741253823712481640282289796961023577353247126415908273013456293305818204917608494585738945262246309300810171009457782923722113635262171048185256796142215114356740243068130928941286780622160643108442914165968157079686086391362043819070597974897472137415985215059057685790904463676096202005142823278779807714793983736082334833241465435691547458670146432798403977198022886829621778061488120581267338844042695568666532765366450068529318777273242027734892429325021659886411627477532223420152539296743996270368700191710138663974588483776697455280010061743449440155999664281995178281794139344039086274450941314341419741365188504776279002124381172208271775052576348574588893937077677557056971296868788035186317847951172860386466561419267550295870250340988914463855063402467873400409403771275705517164351860649426879830796029028809475823021307828481992777004184853624263651620500599281825571001290244801716695060530544535680537413890788103810654955743998546294340123850379629748254624109021739218013030047388270651830882512473352552028411356112285837693235039710689563303505715237148432813477900630588477125312296468742255374256040006513320510503197304414287055310900713101816024124249055180424934100404935425454193313951908691674361582598800435036962062583880726251835505450852821803299939380787353210475875260046501925445072214283571966969954407173871042189655813996376048585414825315080724720773223171639161325221540074115644651028623507384018877406114190154824277725539331749846801883973721983534969497273808680797450935021821739537077660581620396935356882774301716598580476769123187418605143452541151643709178457686754068238049696524809598563871342282643611830126229650939356692220209739625066678150509127881555612083333453878055561765047056119028282310721839165954114931562589866597856029849446407754139602215898259660110309863104964854453497632797866540267508158560093947314899267366486656821783534224085523281494942238565440312093811407997811398592431598077638147060017844609839459709444743966356042794611686304335763734588931657774494861060640685831654019511271170581501034293259578853587851320549070304905853089209933263660533780932698146546147719308478101070635839370237803122272885415115972378444809200519850824416110686027558781497478359847349681755672243069923975290654314549671181582455557037080633089371431428178634124479750547174527289537175167636448330806639926033838012610778845258940964705497897937441194833377997874059412339509209478536032432771180416140311691162717434892347871005147060855171883837507882425896309549513732306277516842770587920635774858064728577489175205955816352341351706321269933824878665376040481570683104277634725550716603384674997704637627644816124807494180200942810189826667635722536698888950746908986254585259402047229724251135747784377866946107479349549358676399233634917149298142105624640815643877936786766424419449998154234808150823221840956337261795365594166720450426607526561509385696699766165446229559309912837722475033869994915828540391845151269906478281961208608021296497073041230228212166490600677764997839779788130962848302348386803490748957843543675030222888924445046699592759082689824418002721871124039818732532409720931632226385189539502781560447644125531906453641040984517962796299799993600664711969166722333480970489704331704064807167680417734527654055948296586937005194782039470602783355435820329208245021920767215499385636616418356358227018293255089588803333747647283705789989882858029524897199897610774556875747607048990767463617618424235151929043663856161983945316822775332755975516475474031058072502624196517726624245723263670759821958688859366200430627846749929367938243682541457359167401260029894637742872797345745960778744127737125800138063453231779225095458532311439189576155071169992460326907504244743387753029726934788871327426400164392219961116530537198233763692061606268155810229437472044448351391258493805162517066673718927334723809552595732593299446526204554700314528436344065044697658543588442581623449373263293165710068044379071905835886230301713105413869884776496772415666517920232374017260856027224579585429423083657994126820861957451100052100756351306439397032649758305603825026831056222536093459614918579991319748026163965091848658519417608933107717863808892212476720159300711149709308878616158725854453186030378552508966574443078923374111540948930307280429472260774438204347764622757647428194143861787497685618063543394969106902776120375548080251476027372162090417583498100123683010775462301337040664410791741111064342020291957667568788344017918142322408120176737358714366841262777204176514193689337195991609150874556034918966907439907680444373668680187559999309966243937729508877130681418788745883959251224314292964648524763376082196952908845617630686113023675728540238415925819451257692839194106308703696914238830946894414257278859842933483688872624043695361967411815942607592541184079614766120283360393061247386909187417892406801636759253830852282685353455890132689334824359818823884214871826248414386326441343524381641865603317384254887556049243488763655816054472854797633742230098192391810358247904700479703740610091275406874222662787691584682786268816239527257540167187512551938230847495413458565217733214627055069028610674664951294697523547310222881145018721970635198048140325104928337594157309096481289219555396864781704185555759281656265261868519347412586686770245639093593858399549674378833093327525277252806192593661744040358728100954388733401131089200290576077136229488170828616747084440821849787474418835484313402144793017363182947006807769090805994203261553736787494545987560823588001905148510680128813528647030470817171484255069717158812255155807588713704521780695999603220363274854769052950108192334818702938719917460228958581333902740997074331276204020986501239193358906029086512148393699506220461315966422641165607937652379032929691211269742103432806041110266363198094634956929713968761082560764887698140075268233538436746533789550800365575427400708776904463362184319282353696769786492661603826493963158733103109466245257437229708518020852108288886143685373877961197288221479761914953506290353891970301097112055675991053009231092567220548655283323059728630152007031427987557700476961250045696061052705651375758860829108769957520163103817587740194249963136666602432406432991611347956841566775721387015869886745134402381647544502366912098250162687405552643005399699107028785034130177350140610183859066870240191003526779447641998320980171304003130150213646784491287599415369337732096850527952063498671851767654668329600378716295398122873785302442367561049055545987548495257716675309138975170573616548394991218727966199769076735136901357260365215548196885276473252995038711394603743896385409770322272648912709085779173999363861924250353129515924947303858299522660408016789483995671293825061929664859125695647581299927289591137762498444151325320430725606496884403580665794640642606601093198737024446372355810344598984616893220538813046517188469129656466701162485551054744828081244297461250755102831690930172808693663416316257888362239475607261033599466539319341065424061276312481939947190650449082817380583844435167691960850685404539095448175236228549857606332863077576213739814946296109468042186296486620868401142858497285370452232305999091109885573830133428607160346871726752153084991982436912242861060644680893693973257279153055038704531625785779533233325727546036449193531603216499126770627188189389196434024160561714247625465872233501711160659620808093834509767823949854257159432145597232119436140287588311445965656476577075022985093131518105748562732677816670411144904539039091484091598277047774277255298839962940363368442562630776839255020040769086214619361199739072014062193502521938430024089787857626041567129242368602183956494168967779921606883035413301656111149569522812108543540630200698435740732112537641005610969459657409099827933331202299065801799862623521719784567277029109671403639929281118836943753680608072804214023354201007758503024702193891322516296702692237484129215264454759919645924132390367825438603489614688570999961602574167889637861535514425477936412657373132223833883718829700525835849141133048518948805731465527763090398554389871580962396187585896573660605683092434331696702486330271391237507398162421786151296633055565121440056141092472126728901545482642395834693920863748323901662404564188131981206477760935188017787842898855558022235894481292198268767963175760232384561754082140961142939611866988809140558259865763215083145982109642828269244391850364790831636073752182408131300016672313228535350074297369322410851101351473317895310519311245329898676588821666722313243590184433596956350105247148466258371172071582537727594673964764840358372218932360258281902148864822523722598461278424751592320055285056912815276161599517844466198654627215344825939352969837144860564735329386056436824001708760340056943084815513964245286444101851993390974909193505771750768515753572371313111473120319523728821544219625986331275742917264868966752698094103650563588716734552335284794145992739308744606120392911456511449599045933732141148133738614870755764445132546831006848981901428140002542264422433145676661427681045646717897553123158607450449225283969919550088683367981408738745308860255283434733972165502372555859512827254176716438184783944670546814239414401998015662477302813544881430334361373351681056492669264940715096718194635489199352503571719876730520629423891910296669925066074846626982245657934725244157251467562758398936468613201646177512317846057865248313553149691464408598933302835529471996246917406052124186820239589176332513184551793174527121555635376494627629679472577012496453432268365032287682892884074374167732346522787348305627180226042013083506516651608964569956325222208880273445892683185037826758961618189963496203630690844953524257231165258700895486309134212720867247163380971590527206001391450347413558101153414185301153227466762473969771804813396369554329616650356567499918050716626282087226746357952965965728769240654987998536619926559120149929462678085933789344384511888215216065330007863462714864967173736663235501876669115418193139683244406191945260661685972392707793082159029566545728981293950972941471162570166921393963150826457828934808991004767063835934408004445679407013116639988691448521082758653513022226493965193016643196264751979536839428706396092352032156225949884840228865625030444282154024783918447138080550533681253879192609684534891766228379828310254171198207302150510425014169746825984785421920766321549457611548890142172775162093238825142136454335784460590426836017338167763933880374959723037299437597971856368178408311170068811556139831421095471905191227452220633619200075257868557099423596480368154608046681015889431416355109948603400098531257852339890144967670863929950768450443684807339238923994857721057914481839864889847813305375051508755461298870118038298547615915093354258117958782191625883225222424603692953132571153453627472136783298202743789081897808761511929917980920230576926727130910601096824966024483537680259967764749244025315096278152188230301876630306014842413403341010765350172485882275641265154463779127162838417579931702763404408962968462107059747887954478443514021028482998235013523867379196509044771415564148222580560234816694358674516720064590781530233654152174899936589724002427198828212451564718275482628512203985438060419911083288511265157374587073671262642112162860015189252185554543474097477181564702647620634390245946793486789322584938804733602009212732436003720707169446705405535685850877975798051557328798833138944594515666043628036600929518177577505885963594630538178563839656846661844877610789810283604926546708276625743688537838174112959506373255565210189816635870036009187240805259838836872384628355163691963723448342166940440757382628414677061141357773879121859026711984417423585488723657766683414580196565772981867889690311692253208830506426069533740055722315110995343217170016800850090384497057241015702760059941109134527596569392090263869063912869775114249682795970432307030507539599356537964344887691301956659191805896526609747420619895749033731575997576939593537069974441404115740626543701196408528756082183789624521042454139138594277741156414614598453832650985265281366152402272011214823354370595358126192409469675882510087851990743287720191065175924835654989956219219543614515361344708595493857199324440978169365872702087230760947213965832781728373764708345484841594012241493489225091928377582252315282002568127822269552592787602237404452551836199168962485432304583372689281488917829379211334200170523591534911442315198452594506677555157578000725095470248138219228647948776884088497687655866221864378594054659155149349052651981773638349359672635702403490260985173025559859384206671475790202339253206192923934395402039381241469909860199925842264180878191713409955522889088378191706050526511212050092370563796178401856115795141663178975306554208756239447428096871555160282796961816601464195878013602907468125389614740442291312437174970658152462041176570465681414769954625602562334866337038327377246807962323796019089666693568653249074294499045343784167021746294751889451631834217377208281243442119730228666434911510274503992052121305856494880769578271563330690434997143183898913475985438172041369443837558368279036506383486080520025715657991755358588760026592477131096591195231580824935513669537483212236526080215099168969622489755389214298945061739177900577725139115025601826959284777564760293151622837504192351827676838710669259747999221569996119132858638074815884110870122274118578280806525265967963085295621285834212869477971858410677830614207033163977267729744766377791637953981793902148312917699931354819863743517122893533882478951345723687266516530206862531930424306048335191586972350017926851202996349171887127380916678050468109222881667279265166913051914792118563085414800139017207637974036659638498809670624485662405841726913152420154254415901737751225575098503309361337258919359842973964010361342545891946000580147986438520442314069917156259289637612591110495685643005341945008868917005270612987927558613791107942706803984868476116894515158069579726776470021131576932632476098307650339692620891336357901284122539071393502869627028702512470885890143175324894471003519568946840128223570595354132914007149277716019319628605940102146433898196113605965286323511332566953838614736536166145389639628204432165567398236762464889138508897478236628795417702263385401599502304478282987905823552317781204726127509713520926154919836410031350093235946534790807924309338832277071493094122456479062301350644265274554246699830214994766787789603025961647611443427904098655908292154821665453948000870791990059602913878529876647983865890191588533073691003550876046140960797672104225353278194771907794737100198064757611448139561218519042270844477781981582654016040385783037402932926956467875359365678376480324950160900341808922955991958017686631238490701112772730953423366619722508879629889722476468749973632030238961702528382772790122976481403975095836224980762352458477475698623823880600659368964545847456943100002247669825213322958409723432734824938928133130824012663095850055545023211565944541855250647185662046534443692023867799524212520709028702974983699709772758049350860054152971637213938801876141139729887434022727575088899106989576779218993439949387359691799636456975624906382929745822540584134380267490551911309016412381132304339688924477899077751409072733791807309571346219180820250196371027676194795487219336492837822197325228693535502325506189928354620387801746074021734125770542544632433428845305862422835121213830517246934033429327876627575663413950136219098027882639679719562335453080842544359307281143662911045991320404423982811367889684110505305160342194557116028395866653663492640376551293391848590204341580386127618711878382247594530502979824412749064935286724351798686041786277282802927109320422739223900472233175477921831466961077300601703281961812972105106930996492582062530404870931382579597918864590842285259774607249397536841934503289241124214668703217963594877148764731323198762790561750889371903082125709148911759526748509330559034565121358928237985270086712183555921595722704697831514007270469778013783181972436081186163210155612584056565456412235310412578416713200685248521128092342778443606071553999244437491826841886213145836456429037257474534447001751788134537031100054061116693269966970386713069113989276623138289433163908092017630990844156537257021383557813343541186625572036192943353049999302748068314749528082314764222522019631514542274516027449518228382516818040764111076091535618161661374913855586029545397933906947403947489053005865797403603255046967660810232332471042607659580607243798127325801479588852963528444461671684736923011689945953873857845424708484308087473021298031584948904763415338734305925880359039804728146088407320995126099796470482764070585971382020610213464662250839102801937777500367132242969343741656491175367624065581166380087341183809549431598971079900302899997347609673195101782806738534593449064592392455914354608877654476417775579938281548342827610571532658626014263280255634336526872319002761272194915544651074663712990566389322306843559456659839024527388384604953444641859196129795012807487172536516264695744734500172023323878123649316634520119215801445286817178166831956273460109821005633810305924958375102437998068764008076802925786583946016137540655918146379929166968051841687385962567340160019178819526741341248843463908999297620597609105975325782194533368431027157857399341463338377161364143686091570362397702127465076372946409466600406652387409377055458705833516617037811687438135346605693774660674792018743068050825192858262643056446918039541066985727534231875958527932802078477047522535932804707152786595178260367303559712105846888089289090976807719683633811910166932422518779892276598805608886058743107634610950124587122432199341619948190191291401724924525756032526402480910887426000652235787616823273464853177665311352698251662376796837512639978528117251387624599632565154566991073618426201756665088667993248156232626764906570273599139684529565908874863831421795735116983845722591736996515513053363327855721196938615039387495616601445819812830688779734075654552095531208197013430797766942743620839714745690619686270211750070234892196475433701863319560270652534118264684135269711700930270126656278105679856767177853770472788501562705038354328811713064078540322736997826123583401893066212518327456911470225221065069349733138251695196900719577390161346990154822250945390108082780044347711288376085881290541882705761663137208517867049826760439975469825347610765371610508672032921612236342037126879608662983870036388470453086636849385671605555708785700344140915042919424433647983822114636029922833712496052429576256633769391660552451831106822349323614549451961504661675098315806508054860423023548116752440579681719202399908892032853854037013593965932037623720660025671815784238216539515467599480427807732816300177670655446509728918233881237598487099738400019255305463112598906095658886441284149918112792164739571622951276623783200484305260470995729322997648857636811226887972542150440595126407403507556781962978402666502846150627326863381986815892431114714561150759183486588525985782254481013227034935525321118129301899580783993449188916377910277688803643383180958508589478241396835614469804805151842736772543646627369133023354064399435576951497932525605228603442910151557052194814645392361134537190424699472323189660384792581902804208248540495152257443598260657342911619063941815720874324702236061488879329679166688601606576571549861813774380470438865979460548192748545171554757319621968758961612477531280074136606844691884971351858876768664302343756445406589360796282432739666044328462248615566786191780056048211717346760726811779671516257291479470013136129061689469211320292198434688526724130640464031855061743509095625853440972548758740875261356141369064990899645848626574404758800344153271466278748519572980431318432054818191824329902753188182359369272822869388569506809952356921300518855707651722351212574966859427266866040510448345281647734096283748183743146965407270434900527286256879528494314141172643617366654912186829531836677049851892136343673880239429252619010500266785276041875281261853340991828390250853126824971011303213129335020134829556049271266506330338112754836668090520741677163056639831269838823485467907192038038344087734446934559951521669039274382477993541659844386923767389811157921384918016132457134260072349411570262535621921323831628944378890964344185005176514857711172255715252594210653365860570659241218051895013871943923639065043480683538851484503603349957876417065985753618894990970682028897313703988985498964756004341493416206753727647934085614108330633688399465339954072762448652505026499249828311549113284659536152405910129411852354572896855512440031623970353033378668207204045351141865066531201423564891905850926719561349296902385512738188819944192931109088891772451267257368922556714391426273397830279356283075320856258424105342455501931338710444087010004908503585295487887660590121479478138274783998417224498369168760370623767719269737560259802930680150188934294178412174846416727588749538811733840999660902775443271491796416504545603050884717271737678110043497470605095792638605234303237130045463027398352723216864702952120298256038036467795838283639567344706864151026898860292926738084252890354824661661625140846368318861125799331704116272640916438687552802104944473751882636587016963858026593707842636892173156946676244646948881678848460765895192978276047167474814080600478880164852054388603885155201621167675290299954755127206766056880000016034424702084060626537486064741869367418923931183527538239896245320251792610391760004948707789981674743246143471557730180016959233833960215265953792681934583620964157934963089463073429813457842986270178624950582160035461249612815198160687843761387639766794994982508118538925589885175012031015768847584624388995835307295233051944474411612884200839511861767707941907184085314632415826144876237323203558405227917318386386026718040047881285108659603131867875390978355124961202670187339440360667957391031400982254347115222609374169258726898813505439567713593327070886564498017571558509585225218286438640381847034044655773479488648051130531480861317438688764812667353085204718392211808243042761590614674314410249095906482317787763307749732399039850125677377116686560748933542227992529532889234814069953185225538454311406292343542758387657226295827933784814558262717937254778150597523657727346621380348300462441240113036621120804666133076970306969266405176003603399465994492495773944398038678222751845753790011295773095589946852532701462163505614094096697710164457624309938156528194239296899720910296875090581646717259710594884623070352615844911634183323308923215867607395867939284851786491455784295367368575893280655551450899258435998415188524127058154710378991262719625978652184708535302046661526561940357116751473315643471180957185351964126948214751106711002217726594934390664448182007594340743041231936263228076172742173450053256583260976907347022537686074361181587566337100903523223020074699857346838722294184837510675504584264537779957071183192412146440875220381913470164856873140927285052395590672542552674340126335843527030221761120363784383471775332197690535890591104908530383788300427657034012277017748211469990404002217818197462907754274458914033228898099127646948726879391264881527874812738820054977076475519017638753623704999174141929099378781989154715138095855870162100058553893629775683944231102427786135089170358611238334249990385238728071796269602792740669981201126378558410825138604264792738720809375950635875256212372816177618460407846751781294278679178200381373680694476774712000307339099149884422932133525982298668239168574476252620384370388113426574296516291058226813613046977653583983027140731517848426247475387698915276072748170888323176791810968603223296914260985116037525430732395342607422166618583338551041549612319524974369541213570504701719215105613277582984895292007853277988678480326417901288821583776064278218248982293911975575718361266898021430301035312226778173466212037531146984696066046613156814141384614946411746753101344042672891799920026458571601056682830191968063329944159492478197293361943129727639848505711549365450907571121850964123909796077114945059502168702258087382288335306305938642494493459830491774397692949392043045510899057068064092328015523969840625285750565182186500059686115316346517382885182019636898602932098752754716093336072760666470331421702353474722032497091858875263073001949947497472933387464171600872198757401657975419677825780983581507311914130368262985167294519281050840636543151653509020751164829071219537705575625415763905864553904087058737514783846492652728117009545220510261711250208666171719963280725750827839587556715587501424343211373567633027172564354222200383694124823907412292826146456664342186600172613826517935490147495004781811505090042676475404290299281700770038520832484110486354364971285749684253516488084855960590750461046416402752455690233209296502141027242134404930397942019329427142251342099762067741531601542747238599720358027662734911760350396276680731775823803929627989537198401896480768580081102475967294833311138888143425307260058368686283511263616142423844218239696843671866606511192408336034454569915080073604150982746843922455874632543006094131325417745803144140814941619468848844435018394177055141074432350485413513429074474924144978988624668842653290674055473402423568098722147203364398704414346387617658356063279879935252463820951087002931615435829013794082137236995956063072260044072215744347074583794177887225098139557045248578292659654178107287887461471718991395000796215748104568370095283320719946402219988130103052249362243926806214482880601603856193121128493436922453844381110715317511266054513642287745623664361641776993461127339237057390331567523187659191180031327719801006895106591120564833586363302513094393483864953517402340537139675218281388178645761198388661979659569229214718470612555116194088512144403928057139930902445875109548633307393849029858797855681586112206853885129587770666313953708021517932893925310871308485217480645195580045795558397184622414136216692538455436635172392298505882604859656693754709898938590903656160915704524184025309684100440192222612162677034052612548306640348996456983870535662488552572682618064375732329855370538910708699564996885834165093379172992567908039473938781160082565347270456824757856730343132841536592407412287690700885519016800198798928349375028817004425919002491488590659393377160839784779379485942661177810584126854631530406096147086701483044166643862658259922583141090264058203601194600774700098550865632255354334286248800248364828867264971644681900625147139756062229487011689373675548737745762166690362035686552862873951776772565131404080994475882979982124597755196622531579168204290424200631048816742621758146679281080665550160700408238903251353263195298643274762013104736908979910382934261866326374089673260690294226114062915277394609408405992123534160057477374271794982558477735195153992711373526821801112234799614288951829602521262702965006624838589805692313811089789094736463312501880958928799914988387998661462936939542714437926672858869845321265748325735574036505920408605037505488544624870287367313152508752467508568894899223441930915982525277384765586073131838136905452621101988217678585421699236550302865270239888605550457930358041834357984805586222255152370120380595744115645532166293014698804426558415114203620579840290850418793684182452990609878339190657477642094749283771211711110273916687406728130155480771978195719287721076318774537270110166485054126066471340329293645600610160975431062495932768719073014108948988824997923032796273796384438467625851783227080533266987598975777336349349233540241890352286146981689415894764373033153949821352504154374223611826916409829164072363851889782849262625842149065041206801250767147407799273781319896494329443990081575512194944874205628837368673566022747266050466770599862799017773669924273096848084292974307271727066943642401101505201336562250815048775089381834331245802440648613402080383381408397293176856309964004784788197913280050946838907140354858183361697180581749344020362892320705608243603326655898901514467476804442339072388962587964578167723900434508542931990956368626518892109279936262748853432458564493803241666273750914986182122396361706316065244359947744099689956550717913041444012992101395887209265523567233133299781367878351413424383940981440901945403104200262323107274968638409898130868905249010504638913929294341294419728771322936660348701288572273362672259100390932187600503512536374996860409863965173210550702922198289603461528987026099953660117244849822011447899058518347714801642082954667138804792066978207490922708469245240394706840271313717905491802145715467244808610334934701581428189745153359319708354217617668143467101010158944986024557029903147540910445376241829045928416091774086587909057752831793764744901281474294292930974736093782177826445696286306493450536022967324552229703084246672626047227113287827692725980328523183410121943765299797222768848595068791513074543587681205123597300101290081845353606464424915217398068950775811044195135892892372266821981193486265602517457742805111632835993145213675223023504751857333857151960040141376150158167185861875299270310403151260636432532357042074472551616538535912192616380710049542160399310373026385310808687059770835576901570317234482482897601646295251333875096746834421781909993489123474397633774525458820495826307640812426097375555262304261561538781476235804431800047656505412731427572707135976993232370489109474049385154144572052411757511821011308421671463395799004909008792873128979554164423830858866227008668190298202298009005672228179368222095726303879481257948121432698419798866880253630541373491924821479069845189300724622605403931415170536239035875626696515639099186910040673888379455125089732011063838273087061482574107151113601422035821785152525512340143101679327818563422664823807773036989115937135200297253911004236475572295560929919122679947711150111119643015987963001091907290264328719950631774337074472799221489437880721864912171870017099838735636320723025282744012328766752409344096498562256006010182556516762494816850447197449411616274929295656426868516000562554823188477385950306226536265707271231741718492428312692493270258581670839677437235394246358996220517418580782776191529549152938362223917207136563660275529825806776088538518901685597217085361436299489537327694726209176836026908442669970556947550164168220093627143087051064208346686503893870801909230303080279221712445150153080418017998776372752871851055377955929708778582126487091055406681419669043770459945793262370746674881180009635611069739692979199776594233275479251143717128328290791010487671474089450939153586714873171259046961659047190662997885217873954018019117297207828479976226757216587214432017072588116875180141788836144368815690535634143542195906187020576107924473576441914612751007203188676359375154711768896949429158851217688226576216838706290291362905443096325553782422082551553748624528960157882675825659829322646872207959005372623746930199845237619647246302472100450876917901529041155728112033243634116590043510162906046838354960410868202870200658292489127482653715661485916249419630586000353257837284935991723739163924418050987743346204155136756355507110718648997175202469707463057421449749036330256856995876737941888729591760874420036765597852913858268381027450567364583073741706302505021666489521467135995886326178458963652578126923772208743945750796253065794573462141161615687751849748925965349163055796817462715614995607599100403921962754174615556994346816958230220493780960583859423619866287569386837189994010632321281946469365268123638756759809800931622406796607010078961752200944446178604059938963823675098181608900055049777628316042978395444620413412313566312320576912859753238150828997715800505390460297505610571761552921027309364101304844432546985105648600134142749991132750302244258254128434696707990953705122542294918564232456672243404831329811847345334764859423870098265183260346647875103587874411783440817859618720274377589571079105294082316001545399535450842976841857637538045130616942460012595374257647330296820110183923662202107835374944625011293431510284358834507385568424068082606127917285048364656782430565415249056108671431109712058648531169089404145343101715110754039289148223617357015696464396879458761483150954401507731622797708929850708486772570393448950936839928408489630662889085876283402583531766899322786799910212446415891512380524779298608088699043609273279816605258284910545271404428563449363397843372519215697919118390537739304610647111999135290679300970268206360958209410117013004448107578147005445799062457218339687517231488697527408890847000305578006856715695222227012379777020065451793965911020257727087481711825213025434474834364693400564566861770240480728884646454458914773790070241123136485887596408420131743752506130752481180550603757974539777376008306234556033886837760354470315793376133245011629295720777995808688675691026836060607443266801549659200373830728407680387122028087265425575263111624174310930600231302625225565895648757726213325104717567984673667909541750072491964836916205728077422656090305830218036836893282089998008507836152273806585342853864292914288594603753518518877480625606609571123766158366845680549060618943943033682340850642305600782208518897818792040838893280424304912043024230893037131946651893264365739229516317657369617872098647718839841941312169174239048343068044801417794288793244728185795452856795560812797163211859861332817049092746198194270759195291340675641380677582713008602092903673094829557627445582799880496046924381310913576201103479067913208060528675586554956789752421149267271333179032928701752963494560474906798557539167100135402674620667562162304502438598236993405174063960119264157250281222634745426851386103535048904159086799231749009223089252188918463200997978851816060106587503442121186346323289914488925770774904056656768162247853686428017393583233819083431465468150870321152589747627670266416208485966815381004371676288196296718021660279889453694475276699132680165818036158304482976093009906335803579851771144874242303478654594285238424840348862849954294983952152791903094668594351451753903474499790242611758548610278363221838454603258120586766605065760565393132314056600239173748127841254498854440614638268603733086657950297496955184439506647184996331097120429638435797958359711682626683440063438414019323777043379951574313910790405709863157053565750868407309943787408106411625961428751318835148450321642733742936540166343405608528488123168754847446929456596060708207095535207455659834372529315732415788815363176187149081271226215684742525064149810242985146062130719978827794602260652305534952930824386712554708987148140686887323109913436339149541223832064246642993008523751378737604998157450765300004652875116494537602489635318483453489964547125836983297594101352373135487510233845473865619324714454359557375053221807119178284413013614622486351536341397336961987776353884452511978231519910649100139005249338072013157604034591988079687897791874476535385387426956485448819007848046336645263227166084861968489522453622562409031890731765462399636825045120425822316045733602517595370559587316055867131681405073339592730723007916045337138418325947724297084300428204594875042283180956564651615179852018125529871198488458882549749828825947067972274503501022809592329519487596022291115955343820951565001607194329765554695255782384691606568747373575577295234022464182704142423201584324939594952896618742631465463142105139071868466022186582427805944990720605362417264117937802420338782468195561568744934774629225966966946571152005885682388927193596332637834973720239577332732055749455655790416172493138278912440441286756073765847236477920983234416875306297150663402010065615792878147039801402366056408339637650295676138602668167638871978179017429710029842749720614853909014991045992453460382696434497198376822492285440070460452203069598102311693089284583825001897813220811712899367545419273246538347582893149818808243158479840827518684746906058208704957706006167624702754518726933659569198143299827524204663812213415497059667420764123517834591201438761330335695933951668794184489414797969092922717690749080455685329093195600786095398865782777516888203170155885168803464670225306426633977952435788296870087312088496853086148373957441226174332364578658615600932651122716037232634765753915305110373513766258062849632625587881898727376769268704363029345585639595093688010279096985762410078139073460077387117299164768045554227754814211849810810344743349959610860373338842182506189156037030545475233848952440919209069430899699158723575403865665992668200598112132589172991085055623056408557563438950164335235807735801896832781450016661228748523038422996494052502439316266248994107910457592129936768444036045609452318706395252726206204162812208121834873938565433968480429386718995705286093230385634072580321489441209270452851388362745388248255072503403437420028138376618065300066558349766685442993264061537399103842358590944687662577478079373082093756245503675000089603045709237997761430486351067023565746759719031078177763619899901121078478302312203230613583186609397634366226514327359515075901117048833722475146947021269364144267720260217008564125753649556317349900848325502855924446834639831440394122330250377110643386608659444778289479443569783820796929007026505393919460397376420092788566295112252040807192741980574702944981790803291959574402053485003804235690831758518825767845438814722389545378881249348170654662343167260061242382270493175966347587979358964620506033299261690690889852409124499337271798453931265860300533808148087284538245255280568788203321387906440864234869915086637282135541326104715044466390816750583347276849828295470609124480756411451314267071383015888546054778967912161003603571878863036920695340312581246478611220896829522580449594882014845620450974922602334169906081116784289264939418814843005216882043962622345431660682122344222682249542165258335860814944984654532866322372331572014970317553018416091110323789250174590565335232306981846264062639907807149437651926364980501666880821096458666417899320599166856227564314794268577731879717501191476546683801106717231785338467416703735842319063795910221875429393511294117245009093573984994649662493528736509372564822986235357812572210943556611897939839173194452072990294049329188666865949503361217406363655646811047554776368931814583651594753856609707237047876110873054056496797159427029461462056247295096380909035539080466625444298415222696014427362136320164844537149721133920490497761514596216016505162438465080659866383965097885633217856918823721032771833698620049479894084894246625013255581302402656994680559602531922727539780576897441291239902340631344564873062958756646333247382657841340341952619245893654787280878357576425974557026543950076885909032930299700399918437151749898786450200127663964029808292591070220410722336609408198259430625339483065458342145336830238297490263392254845200590919484029217077488950802845915961604990460641190260829360079567171998142636553777519916690983322674029881322597967343157756317506964537277989449508205952335678255856153384566986704615980652617567389369253885940906397669785765187197890470782213680417369251777829202694963603088955515096472073544621616195355175646711512803780809310024399052434614706427247311580391598927842489738047105081618812683116609151510033026310911710603950911639244134690809487387419060221488247349352102713471988808472656012361073223566048696540490737595432707632397563486346440337328082899052852404838076641378533919295836856331195768585223832274880037693164765994973902892545470098996971046566982304159980225633780709774898217616327563857969135516893793858702664634998201984487711976841603709272625405466974717959270775366593693182824285416295160259783134922305936032089700936211215880369807972024589892956441940858002478632251411545769976147302664420173657372562237099801173532227787498555969152375869395892162364963374053914173585988487096471352360357662775945722757366627621463296327220018559247012364826933524492785971049455165779138627631229799663492023666451418965991885451780296679721546566671386542431564039677678069647430759808154044073856649949695371093698826666271272423028379395215406552925077504273740421040984228120491705742852412659596415519285532931696420754809055436253201839723257109297167519554906038289897824606348579927506758419040641449958707499466008397012940080117272585364848007315611919735013137958250155393717715139455589166214054147385742577035953120111240693318938187346384708601470195993932601644911940327595094301995756581475470071525582989390610879302375480469431419749587468241838027682811061723384268057100750858223464780578377737985640940577010082171577823377622835347923400165776629021339795734670772878999512188963661005934423259346627588843641618596234649279550740263008131551317666004042663633799512303310071117946585465127271998762950982321696274012230115423157770071624084407045593097902049090167527322230848970645087492157727418982976832223197750806945998842896502687375863229523487812523293881440951517018660987758797894727955354546366933382681919601019797725733043378501416062948755849446615325417236303257557621728674915225275958741775986938208440473791831990524371445434818521912395576783728064161189133132057428580906490954761383966016680435207035530556926372613120952916055524445631574598396133606199414369073972275809926658739750932043966763338554515275375990082620602567340057711354145422973438428688386626442648339231410608780151301222642700043583442290721704209924673396151183370383568344745364966271337340860637823980929734304599853730410608217601947721924702012996824851029018423684355025406099032012404101684057820200709187270632433828422979145073758950457531554115224028370931149162301332215439977879669813769150231371365464531049161033784054388090594883217247406354775528435846905057161745156947474364282267938634961951203025095619087578760552144166804318285559975962945961728171825260219793765583078178939482356148805092689433569626063320613466994742568718520961142140628283552972075499236603995246894034560132238044130193685999876201730990820328774330306567925978041224904211383724406269686130343976843133073911828642982635629415091668558101100955111190423601609477566926410136974098892434924010189807340922148901493036413545670806637903494300595346509828131297598068497990445384164123641900523933685396595428334737911129802694973618632670726935311122283328494995147719764587524006518946069435394748188733835052339461346216798770415663337108786749847155514102297244332070496264308005972724472484488247784917407716192292667559130848580500783733054145651816475739158311394135948502279377701036712824942861779014117614845042663105431075416983572503568507751231535124242650233329270873366808299693858778439070502675737568292991002003608464237412858691015179721944940899636608533065361559401150372065101220842801990759174427421000071178046536856401372770755695225997225439480824189407561918152575668929721497087230285495387760863453401188139520989162112235165064937196041659926961538836435983787485863591203367357251853663821868746332117184469840342291300097197064155208078735338322554945859555647625848117869656937661063218815896331360868664824572315931573125390705886527977283856447338062395540324324933602604337707439312847984630789994841863192516364767957540700916602040902818853484754238679095301262508628699973683641038224986408062036174769776836440438539805204928766034188299365023243083671034191809513283041774690913145312533149687130578679744770761020433329314088533824726135467333256087002341030157266043680784275496413749864104688324349684066763419127399232946412689382438903102041046978461420969182893920181431183771852163282976994637290224628775627184734603505782913933384405264280487962163600116554811237015596343717525851416342855473448724238308579240802603538541738692024854349309371911366030940895270246212671411404592848252754251665986728794813613904545647313110658659877810802630019222191669981067660071340404338781170415529347497872393014430446006235424137268061548546450733964965604031068622968893047887998322449903591762062593322688301128626178025282942177050583937274916774849273101494346442705030940491157591115478607606499817093311923388431094820452721369794500208368763988853281828413701534074110166804017122371963081526570537192697030896454536494229917629326854020900970778193955255171702491473298664768052731437015821294242078521765310605366837205879972042206373785678687365909023536372861618645697142012142384270486227793613521263285276551529161696211487622534520364716279490821709452042099055235281433871327643283473678228888930612355668359244896434141290379772068444103487427786779595388327829946253573355082697819529913174380138268758264994810503398206810747703069837619078723506825460113927003635904481628070347232024378291111483257156695890676638602417560902226744809167056503294091051337303685822062298569467786706643737416192035150786038910566799412463762739518258782685932333300163977484773799617677832370620177974411313239022729651258108647883670308958675684211054399343753326033530606084415631486859503947242641888228102147620819488770067798859649244903871156523261621575965299807094832586651544127775905480542739753424448877252502939130917531970836348806841892362406894712765909575348078735939789983886896760229950536087546794457045477360856024332971620867132396799370423285552771189657487815650529543420843091023701776229576115758389055513306569842661597856816861332099313757006489850790233756276416542727026256175047903524466264032557760567911592246988258117094862030829470994831863082180727190893293055162040818352868373987731878337302396680828788766970284752587252918941031648185035411385979895721792692241267538020244592012504263925802264402043273311648948882645197931248481337979401896282176178327881538858442157895138685234350790599782418730840039835360498275385448280356754392081587705357193734274173806236683727544931821135389845697856403537501561904185036563260052940788791869398237718576841840864248468826952554546230518915846555272853880574261825878476789650171386663630515372407157762845048507310876296812743910223068803674466552456539223699160527090374796901199600620269036512357467892561681317622423959592033946391671523234850370621470476608307806028109592877294582234447434040893557701728347331905738197341758500466115520630276649686224169413035597389996009134331729939207177309805287637867170694673041209572719714227789922271737343155881686150142736815013363692494386434939263387081668004040366493073832484738554157542572244793843722986563224535202364861979013547333802677199306326533943178553195375639703999681894522093758599704407825600762023753513786663347416753980219431277390719710247001182037462021963930083518583562470999164049968941722266269998520120446803863277279484363198079865369379723237851004192165140552585180000119355339557022147424422153115477112391814316285768958923260290632605154995493980583072336955929106749468069319300533005262213884946611943516700094578907720803367988182780621941688816598557184688385535330946713066101990419990314396152016960118329356220370865092248414515551979960812452895102899151927278848707263007773997347428486020243396513244550586198108948741965661538410949758605448079868065314660166563160826497806144934758434632340483001250638817424612000439959763906869761370588703276150509162864773138011163011673679446963168040697235918702997787181595714760695274302444512149998568445543765521591761655475121698961798783159202574937434020582834268561677247883196429023118260371110688111016700346854413225362060888887187506667269955756590202732763987749275222385614225490014673711722338751876851771675285003988130494600555531882860294006767350133661270794750247080084988127637247549679108417213012933652258818990992684785353035508260335268008604357462939351427930255977682426710820695650458871295430371518312357620258503014631607548679543987242584307838714012113521594977650758202690314604581355454821863864450137604136284596832111891621734564260051848252525082903903217193549722431045045282085663105578497240631080826981614271380443959669047471870963483189245066213058827283034852751929304103746130298204214947561856300542457479804118403377698921612392578944607965099083307112774801526142226318498049897522031653254471703698556756610090967526598970837190250818936972996158066542125726418253415565811446332601555202336086302746261682132811640180327567145188540103623442524308161088334098867659521367255964644939438793605868393089020272189624376415333555525356165296760102655593179577521891536046720739768544807072932758134828851114375651011494602093074616042688221951593033598231943168619280959772469267338998657017922535940912682495181849889019960360693412022999907278652722118850496440576584864892732116351390121265077726191170584694486283108219349111153611741463517131830544780598217170420354102123507507086495680739871377166389103763796037845623519640845620657017486812595253066844736260476905465490321241830966421844164459477189877608891048804015707902892393767222411446338008417608042524824372361015945960624852852502478678598579018558404478582116211820565579424635108467158166147651061790378032225436477773033026291006553667716050288961819213769452054215703506667301668843950366267889786845181560593592761471821911391110216981587518978617114674870380802822580079653213862024830016270974990580494801560330168466824656601288129982493508955820221052743054178207494079183160859831273552264190294524114461187787568998067074428297062410474179245439267976523032816900108382058064362954105656255583582317576737854456693951355043827738952814315490908390069584598188914036836614689167859186026865393217884589183082203174907415042141892312452317076701088174386044403092671851568230277034410206125190882605410287289609613667107078597095238289423046899352605963261301145199982046577353023735698960554743919546466748684074883340711700624443628300770289921826669742671500977285753820465807402047598873035187137920689914566058090246023767210763224404089148468400777985417337973103188414626056151536544977556515965855833304185938909220383420371340164368597129780167966107608027842745701750555223164381649447356194576475527948005998515324641447983973069521265304081565422808028889751465641192479266431326383582721798119351829675950991198259280698439779450222262425785538470651259097704507429869279798857873498988473389405538492522570782150400865343233043153876709952643113417033487587633869851139015408960293630536282067522986865999184778439103172346746519097685481228485699359570792648432732086819239597289435588135260084173860781929962501896727389761090906313200200826077558499168227619830073176884299247539670922519398152369662485989482814840508403312486773714543163534387802118246736839343544989871010950323375922255253035044174867087695857805970042282784367274503160490962190656655489966418219437359563983362864181785342874542341431742786020951889958778415554487897423770311081858252826295108741030878484463013753942869863834863838140910787438828645702092548973388077651711440918012541315056534361190122672977500784779585111770061721473586173816244141828139893004239783990707774027270942889398022198624860571269234499942645964686665428387411027354695100078041316603823148789878529739754053205503060656982116535151992921753926788149731260160949350289322744369135269869174162559391324547324781439507169946776626048005366717490643304511633734079042642516921039592201990751506177222406570169546403805397497688128792557180687165212559744807329738785088586494549576078867726953260047567637892360729288009464066424787636495048296018507752384740042409804810332239242574161948540298353379197239336054293890772573597917414122832383320376701570288313909167962065546200176917140616784373897609563293747710240486656848696843661773251965472694453273704320243821028829674684335676716979386330001151829367675008003286145194712569550052775907259574778196063609137699978933532652593689305429430132366780588087891565382399578583408721537352457921927566543983389041835807068492885327189076964871979957404757901427868176634708892731496302304416626045710387968175836789742433579042158076198081698094371350773294298590606222133676569498091937826671199368907989447674988868497496326835875673287892044800738888685052278321480076708492030979964096065756958209868777358830638683451396081693042989465214805994576004236773342032239687355722144878069913466271118142865900702791259516377857576598694484575967541113924810636953317593970003526228801011624892311841715379026876269518460287407199347706410841646717111752435086112816412057984836679829088853709666497479813982827733376775584340113864769513309758371745252372350492384526322850491891095338648300322864067957463047578553337079008612702676950462543372917392257924427499747021393209116795753895496892119044908391298335072577439168985909019389971551561719053655146764579970684879149592788143080012505080906858574522939625575327195066024405158067769782811353981011861829932040153136492061202509614304464437518952917075131296912336959300606848231923880821196875239768085028175122282252878142760543252275651876592588621137707451653556634336609927887893465271452493048683211046024577270932772916613178360588443204224913681475837497124375314484189812704783326049372711232263853703845730457623545389262073501863512823042566689255104799460502770716623648036321325370947621100557720440054221784814270796028354484712127074730746185729031965760325306658262176569352404209524048329265355756709084104414751708815120331813738073791370075094032382712659456445022170717314331618511365838754886324422585476334977981085406589457214097922448318762506066430149571712665453828473997264337305606404058887990009932068574718410476043296200534978177029953662881242060102779387933119325516554572281866521231828854155865331388294601344154286859626029399628430591473823676058546144964118515708973409505463576538298950399399214271521173175240856787338234027682753124988279100563043024394091471416058836519563399034976095349443678334226887544156616233169918510276930729052189634865662748561491776297098645883265082620753316064302790558736806791247532627743398398950251760668992746644969040421791326215629366249223863150076932765461794950550126271437399614459781719332901113332225034874379359487627511119856239417464613036113132140331083741777179390926216101235342584025184693806342390022590545105850347314374600076184915387854028069550700982899857542659779255344210697732521422406260680444938701726758738720040903317084990541996949291498908320665256897338814856931003933125247115741572525260645896902201755463588836057406612364651048660121529572566551598658266370148699823790657186012610487701274351092643308641634338022577217226502332320330376124421250390230536661924053698070817771846778305782509353997510726963926282615501580835502442790734649906289762010710864554838644263702878959285031510989324600531596184695958759608125236559931230995602075392000622823725158818631762191119995530500235893340008467037100966800941591030104511171983947258385413943666019573184932090766820445526750914176971751404771710043019248484790736087132398369320774640390737540454282402413784099201174617670544698617986762891049286187821194909172712303290022481673305618734539570400545110265638166899820067493185456058133539205701696237924661139917353516226480422171618681598230482888446113876979768416628193727878400945591738138119920231315310076643916623651140991623263537155350531347074286010960286955251226037493777982927966371982220253589094457182757318932737902365515312804045996031511463301176311393662094082850897790043077733834907558502978535658696863518365698268211675894214027183715116255414942771741718848002465861447265911710102582697880301899153272130863821842127948375212341896785785309383371282436212788280347573943695227538476524476467973681417451620125551376614392419695984684349847194063034475112873676944135687061254449047253543133187288545082953238971121250171074588878913289315640245153650886863896493908782383298411210980884642451452919904608986109486633974077384975531376537720892669862229371559631946127597238513356459942726552019507696915662671646605293401070564904824475265430551318668743716617871591375315422259228762462895162303651994805044709291011022711099193822722289396457869106066895733981794865865490214970010904183793871170179651590290557558909369182311130269045082708542053847324999663206927270674558556037077365401034880055642136070178740448093669045703709566910302952634430032072602379178373577650771630058824795478609313208654542182611327763736277280698126415718644175611083796026787602677317850114789792042907583849601500059327924321405227082760269514804103109692613651203772717184504699111922262172803765236650054130548743842277803096663817511445039125592434954318170688753747452354067303650644569962565812314631431171397068736939941350999947708766140303510576705122213143750483577589544848365319088329473275415513975908663838427567332205324211239667431091183238904828138577159562001573406580517585732515440847616797524648769406529095875293181904162474951243231275619843799940855175042146915059467953866351810955711296120369802665599830715104459743279260534812115564276948226364599148920948124567532322855080482791576666676195708980817390703748318310490449944596582524372129672359080564655249619239461473540043100172865919482137250305263942356650954518524062240068668753496793019796617670327880125050697044568340080568857789181987552065652351247599144468407343959836035633691254762980782607689965849040976022243268393147855244677366904968833315252222559684457102397132112430816171237503942056468715580602695301500463291128008979012212163120547462849012156240455187366175361487572483698330894814525434561882573292416945683183202935904426315588238792739022745561073554939842607076547547675463752110101101026833280167688932340881326744116748451002777663381895071427791118021978413206816190526771255184729382631292669933167957018010822438906115734689842449968595332684918789943774743153039289596884919754258636877326511622106306430587986156150447794481766809227693876114118998793959887967462854735071197498726265193847680764063494082085415328579199204293366304723664423394445861707016867607164635003952642722259985410660133982929377169612282028381985312798149585658065164762206251144991517437699924776780640713672278272646835560093200698939081921711239605635168606464374710212107885600395279711366399397147209874318597267617995337713745611302583075576296280112844861263967056918029818409473920209134259983195988138160246969694320339338962875912542593894596491388542128850144287286897355893139018318522873776576527213493744915114858747537797228103598167713251617056219793800655257104665410342710705172868493766825610400086011667343394376068441778501110304887000886197438178997789339609946152278511776805680677202018349309568515031201743884502058116413208043847066753768198668411256908166396982190049461263319398338905067726224810123426768897671336193043430088452833980467852969271180266691407052100943285658685791276790457037267172634190042711360204716950006832369655396365144596705655227923917830564108675520914542806230820775058158548001325603615988947946127090657791398364468888753105465641138279618207765015058007030788618325848907191994379197589333127839125643557450338969598605568792595882463547140590774354458783031932100925455852147522193651721814759154012364984667680877394132309668793752585685715404078649191653189000062202750827510618062014721386778265788481928628238211021841640355190789859195718823736021208572738418911139837508997106303372306335206313456830323764844961307880088858777850607564350478863703916074245037441621557410584222024594294230519890513123655284208540010917309661392856221098759906913549142458197568285035868292034041589030428683695458044099399560104067435970295440658263346770614334918673132091794079551139831133993025752862397291270391418879861627828616001529953437830967955313485519675346255152459686130871086477519801205903374596479699696653671682992381862781482671469208156737222273694744090952825964141502111540794138152584712940952419155924032968013983280264784552380880500952699591162575474967713788785400889960148245234950925461552898562909043321135983108989602098064909453337440299578607969812045963865604203858368210029162333137279305121656890778354180978316326818400140238737200805393048546887085025306091375440720793938942477650392856817325061322953960362264366843353819140153185913266365031862020969660904285980110664811090527786133127916379851873769025067814915474783251318427866074108461756144384216343057179274482427103463497347138130708947917280503836409777854073762067807746825924147875031763089964941174935802134548303893161816723368399629604555691239856591773105748139119064548479706285843801099068312517333704303337159379977835723279962115870573508460183750908380994575080772044895466160481396457396422763387485230392317940309131813721128468481381253050112081257263418159005147025630347719445830499004367106658142540212800016655845356417353171445622881375504258421051841007223339065669192312562481112696047794487425680060505372040604980705950616995323797039269427868532189235859262320556073280449226225411822390795621052020076921342747642675701152960113159812296017703175409780933373787682838199822567595887443208659028489846255926725188140916421097555079648305057281510470745166492071281259377932786067293528140810243596955330261879359009372047674055517387883813551464214671088560755025724263005148161628441319371157307297555560821338592419474388816499267782157855125793343270314935842328275789680783169842850386676392537084821590109018834374499396283973285951615876164139717896536583857980300263203722234501516190352912994209483792365868380393928752110047254629833014558542982412084524987540908615751852055467241046606007829081131854270792645016877486104568894160743469639426439521065070490378470090932933392346750781827016234173547076265897281534456317800343238056967161005784877225202194605082759982924289858531255811043812809181927080250092465302001161019024216508155423749197774408135394373170939949029879445327529713743545509011896470252562222636132399732991528635359681216119761736297253858500080248959089759342228682272740633338621944507455597930819030739125458735117330881331340624107181695423584688913420505943778096194474799127237009255806408913202560782361797084875640448231340722846095170439464148982360786699970532821498902298300286468656807972988384232903301439606406941306999761759620238257729362704138393837129359042881109431558473203103438317254123685449341451705341987624247459457583993522025220047019621806329582710066595560478128417656275218255263699655934772708117356359428305584843611254442378739276234127971401193951464785109065185150870937935903965317886497677797342951169705313531417962463082171748466053340195346292773565650425960040783461275835363275856667634099826696695851932418908557124563791199214838860168115127338554929476724178167243744153317843803864674138852304055510323354731022214623737997001708381554183898559746836133869592162211517329900718720594697970713229032345395673431677890835092366304313194607261540724364007479236788101313625824062878539623498448772373027067348829966459564041749347270868517307245675228751919269025286740305732886744469277317430463540108991251453492667216194367693046309017914187005246412959107728679711086800289756073188275617727115951755182193411979089735104631857684797681760200098020983553586664396334156721652986757151382896200087278129748233640061697727719253275183297283986710930202646810105327369800217970072727812957803281568616793730280837311129878132046884118491952357755369927104735067383464289580017632737222572245323869516546332360116566434623362673424217504780903449275367134477673733776312274806890428505194981412577440294817688012836816107592295583587566614638751941325385307440422594271178493418744044268275090588253655014848086268039249978665576115876789467001597498964570799404266673987292860310265602746149069742721057613523820731679538556169023556262226601676177718580245108304822932790937421721068228389988439220404589169917930461087631335578326703767844410298824613369368998259998827889755442081287162372235574194818179808615396969926404534215018917995916408697701436073980177200140740040168219431438979164826184334672726950065060608063258139984985270425802665934238679601006243193576152445983875382716550548506904324732561147793249407966173576572830513279984891959888595351886866241629248520403380662457223128823031852823461503119523935969789570189023060601169943386295610303840834143906826005718613583664033291596435072420682938563434295999938448570719724929363682819490170271248462625697011530381532041027972639154793578316250582289039009364534556638910723301979793099420378106262092978780645372617349698463082216626103589543603688682572927041296311593269769867684692684519412245138525697859819280820369553920813242667630192970207981232727163905562152960951330505680649899343679228815455869675552011637761670486671490751003804866029630774102265209383473472292779883249524167542134136660522420170338087923375878567694472176141982664600695351244236120219634072698205196775075889644521448598053097017643730651451443979086192296538945043035963584316912966452979342741268971569879750612539722340426498302372751274964981458650609366297079406269610689895902042231967145643716350096162745872863409963236090716749786596104707312638035275914970828925457712447665412034218574794831914005251624161665422847987385627467188875648554560809413373467303083486575095691562485830327055959372536084733738685579111286248543010150998330505768791687423416465655182380426817818247745518029452092242201629228124053201613747575524329240763308450644450912791215397112595794700967826459335662404558209936076727306508206771882570635143737864876394264331177568572651323100347922271120078976409989387812692724041700902345004550754369153272634341969793399437197305713525187685708588501441082697895897855280244034677891714946623027865631971756025377511815912357623005295730601393832166449422992691648514395192478915460850848453990499536864262271759580296849439634221779212537877761502737533919686594766502120263340367112497771941015587510087106982786146876859939608457491099185784468832142892951654239370898120072570765650268808182322118165215626549519671975154987564199337893931383432839585515688935471871767953884504949663093577449868652009106676630660927099536524813899270770862325415485796875197572642906813981148854890329852980404172049843064947566423329785509400581019045109881263967957603600804999805261993498111317329763809704399735896841947146244892166515856007382237070619277373337744817441351855474007355023757930711927853921911434525916446311402876680396656888221139376075424698690467463560793495743808625647576507490007305733001791155940660023798719497042815864247734899516400050623949463496695380067423767068317351189006419721727803600130281275499535935661638190128748363626700930266659037285460375074034644215083802674681030590567185063650785351904576619807956583471772583135120257946529381571797196592899728649130681126381480094066136336720710860615806496814349543289919571337779859937214271966910560599428889690365993739549621236248889696704772932854332370073317679536590053888169858353629529578496259901466124678545445079459836926425921652689967591481971927481004615856889064199112875259573593708170137413701536829838621848460579170904825080676260936735637282535576831474044347610160280468198695325779979831558657832004474406067477682529860783768247440922357822095205435900662821230992848554390814665198782940129672961291746530399634244790008511526439582921227494673304076255042613147705696194015246398700550279350040602501012883901482445163097420741861796404258809192788487669436005200003077784143673867480146362393796658300189687197162437357518596667951895253134516724640754211608381693343927164848316981744612097418197344632217047077313939579542172243852159460870099798258086241825214926474071275425012947150038518194991244464533296963749502531447639758706906497071294534977904466399458034420168961731974658702174152291148207021069503313143619162899035395011232925766738161980172457661869283694719280974554019998807714968408605234083710091088322728817054383740540678105083380972144813091728290301449726035915548866265889617439156404939521939504083376226416211589647078903753918128755416059867117289915931248819146669822583305981829627976304472305976642056982374640736702813601766425053101602160578138686939230375967326690868919755478818814525890759314960678000999432736781579500414305584666349373725199691170812562543720118732059486410983582985296216102739958193479885652095878083742347407405484619078735026200508739986394777912224837450304690079858602252966159761728715101087966328712572436577055110512399444314564006348243751909768816697893676085836326612156670409280082739423512579902307149616363079574616697093834053238468049140014704878579436193892437704834965568812270111999423215616019079197575769224432594092135777093917305714147283581252985105467188955628290756070643963527872242207169600104016262580982282442806493608680987768004356019766396945923300430565993873889420349040376732165362271376530257899091666909699431421055858200112530442840017637856344433584859844913747276990520829661029829845822801111467417021837636719634291976233899931692710062145104542877561815439837466696017959255660723451718356892363135802070360570003902118572650756251382349416621038672595669624605507540821940100477630676454757532474651343059679430113810843527973460411258089938896654524112441057962591793853561852340511171708740317253933025168231603293379872708514317498114668428700862306863717151817751002919531719772369303835801637988633482069547918353873985805021142890374155606908749384964470781092162425203655796672838467795506254266456318354936276480417056365818922745243157748677669101002380509854997607415578337580313065291650002960853024429414241834618727453167878936489788751552600217984891456348186157126207968443268623506282556879313454011953608234380382558543576904206037632207501061780824390873022617803745847110437560519108703499341982610686942291315818795595755237860677200137539358238756234192007930197922506430040755474671869067965863085018949043775206757274860193082283263334310803443858299876788073763418988694580748572905141531718840707407907089358720680971676036358225254870552425131571240258186608106513297597225078213322617221144142170219596595671988337776888440298293103721562848985828897823390969190403861759031495125608994062871215072769332766956581600765147318215562403743073945015737641187404976485574881431567495770616953530508588036583892907140233239849135013475237130359181344954475568243549208890635248531400026586074579902024267480708655768921032661267648833883153223775717780972708895376739857030292919086397278062722912806468480427104032950794700949614403239547205503394379057169161807262327054015696311041990764115699198378509636703654372398852574008084208575001840451672160114177683552605314565271607128106170578098125220533650834275880661311727011962420590618769932943227624959310995045621228550108011788408941579292411082188538170809076251878443364693635214202893272712087446612582155433696714748208990232386426991188605164916295639899943312621334391854871116477936592843367653342131780951413326912436769217565093631832373430794433354603555133219695528888080514305116278325869118478281708925575204468541262056651130321955738105806957687439859440222739980401238651653421922458985564868190384079729741061974930313273372279349820683764723213284307868092816196999598311385818874826870705184272277345512622804422062313822999273031220143830870064678520327817988596723324034836131378791121888911005398757384906694283439508615526609539955911990587754550875410519064407340542248032635312905195731760967467083649831136369798115488094497210733064744663695035701430229257809395487939266084140054832951177376574705117298294580085179543107362112021340675498781832396967721419411862954832651926504626528774092972312296527051365983384724522594673015500029545081310018154729774982272943407086859385819380453352742269715946992787611288562101900248882856592041123846704348562125281941662245457960689874185130093906768391836459670478019895449803355764168447410554881899031906853953729600138880784809244330617358279765955115661547644120449934654041021727118563912886107889409108845316906317150795835027704713692092952205617354715002477142849652526001677562577895998490899419229711913426811752463181251217367525577981396035834889246545883024825964668317585629027227152032621185232125042683280164313361530611582361597696653404130903487487821492917566011217592622478030893411646889271011500310803172378550754151769933650679283983204177793622346674297812376793880708437968611925910955560525199994922030344185562355756271607877169936873820413175976220312112128181471414929573013414763930388359631936692001427296763469243888175664807560530171946549430365103799674026402796804940245815972459929035442900325553540347223627935003085626958211640096014649650745383771348415792555172046795380577563561269606278531982260384403645234146389419016626134913864079834957611649687047305782416066362976121775574530273060015951381592023375427236858369145643304500161072821582701070336817269333401179136310266176671778133287084505134864483447388751416969394884807240062776725969968409994936489541327439518243508841958152328592745492748944976493557537019162339278603951151114969197158033699360411502836135685685887273338368794303929997390367417101197084246900225632423749080037327553737265552129769920508322499887463418821983183575066112841913351914786701745774429119969535685012693723319204026654542219504226000662811134667583283476381212779499758128165352928984089228966475069170335308940154488829780113868037745626470481749574432195197071769046724618582637197916107375792811088717469973480792740692765789411439938445104395178901725611631311692381877436680793028142333948724526002294230759776339102094060156463243297176488291384961139071054624561938489255478346949966156968554350291846440816244949297087290681875031347798037756543922190605733100648946351791521583650455824854873753186718958423181815557267675927400363933435662132566736774406357589548303672764062988356894560306832707394335512833508651701084202419636656476806506910768131407304968887242429793155673215070262843045782999079140015906323020732664010370085941210690496026618493539931442243686731959683963877610834897709364093148492008823977749841551902021360396584365129103389790775375710042011128893839724518823231241383077844163186460252571854616655751243548871120797952549207939939731876519387697864033675582373237410112479621897750489753773189697439728784561768046459945007972709370587537010741363713956797984611462333451045139353305894874839985931601331242027389961975888478031148144822781822336527404466664943235690090960476868468052741502308330289121466569591509772001787362235065107501509403759916141169241842198151700329191314978006116432664355223195792157183877944310619673988166716010698516662112166365108301000686253591442610371225095632328463619651110207831315759565621395584818210173617521523595984288885520561742371410776674799992746891989855210648831009991735219764515480771162815734910932591457842014463709453583292417037030166330489134805176443454149374969165039952723912468434921168532787756596350990647336498211443105985452482907041657598479926821944447908388089164527865065437892648638464512875365370702531235425357728544035229024818378562350899063297307848994066480185944889271762899799360631029903170431300740592700131575863521145233255161740103916011434832932362662601744058618795568021822013693364905522937321347709952580737069902833736550534765350385708779838733081841471487188185387406591235096777734702898008708097074575479699501605935669514070077689123004378398333136799156793770100408458859291816851372258921905540563748768293409422413208674468010112011716347399362587031236606793162674579924496933909983806708708447825927591501127733484737389818501338626722680115136654183374904267239569322337199239472755622484052603477947273828965683234174130956660552754367999987088630892563835047904805906702337851373352588011073080770064581676654174099028098556577220260999129575913804956641220506457244933635814049406059307531321169531089945524717291018835317563077829701997785325585248221167630004387644258329163560378014425684771406152416245120246748009617634098274902375286240893772951781883787203139970230939735147539828066282959630035185973033383353483827346223550557688429820939750030227877993553021115272138986525696486552956288750325153481909681956528698778981949971139197348339879344189459905964145389241593150188422230499419676674211918285898099230293103680463070678114975030515524857576210605567936910348231819447822305171117441852732492108426555965413204969375121008277282267325866515731128594638643602304605446251493325378451185775044550029699351514520473981472820132178718318394283346297152309546167152212721370658740738492600014979386893469677313482032796829766691727527184658326817394812826102120776143199957506491799932464998431605127252781427331530237791333720090978956454914382169723541072258793346167121427249341187713456322287761847024164385444624209703938599890041019442285090849779898235678952616073127862944962687059102714963975640644735945949877727593765207060361253661953344109012024079865857803976515045655030576116769791602241184297756955282834762942979756207843678826001076899069271591788441528764987625678962136470588379539896062279113171213063261407663986980679523127813071339200883449171457479603280233583994335273750059731240378095211095421057829667900176365403231197487292131518809729634232451197076102203081850274669874776076287688843455297423078279702366831941812982338264689139384124009367139260269695833460294957545981103143430981221157389153065697056395635901420688645851958719776688910346247415485491222097097659488515482075073586680965897542263028308463308960185465098504387986364459749566828958005422482319899585416220083519237286130768947893707437482301201224069217423993799487465894105986794693411180176103181183538547534073060693710183012211307847812789282842300574971363470833018008817479160154889565290132932210904304582950986871945035908036305572471616154544862900968120438306015422703793436521434187233281470677381768829885790015110679371484084900493103179896437259130675225714701567292000490226140619326508488713719831830992292268683297655306703893835874658599188153436006812161276569492047766444079251891327612281078009675275928723456129070031094568728643536372803209841407649262546231974159279649543173473990415978076491195189291786828032899505752005508148527724751562599194269740851463788865420536705049333942986880578845913552520663594611203032033547084827192765997695575026619195033099596553222528640113664368986166967261431071178136192427178177516554299167257962643573076238282631085609863431176052705552599926803492344184642304957714409688804708580969033721073525640048019807912879523537896621684592220350596486365520153147826973018830816190930348882259103603142818041052451154027111828967990124852061982777422370988304995371995592255202854833490873346982536012785546044641477111212693072039450191267798374610921447424576158703111606870730949957632051763241087707701923899169558628263752010015673896642985739114489431131394910706645637728706675876280484967986100157971848797326857252812698967300739177477905520704747203530333759378913642713477391288623330173651474317013851718501100166023589277229485774855440229173920228572251940281082857465565598703290300766020232954098271590787704186456233921746728013672475875311268224344946236352835711263453163795654430311348088814821499072388857433457176834117663628975428667125171291153472232100545709460919364710283730793860524690809577052632576303778049146990238684351870772529924677520676585337812262888762224578662659866939612056329263374357072211307363160325414348795173139253071876391989872752546050217565346750275462228325558831543124980948722510015114218281039000479192018391615509518764140090982060490370398620538197008284507661345008829146651142838316216898748975854799511494946144819906640306987081117677535037913513813183546505884436729291710359559508044906385783900851157537596529369777166752640040950048080416265394546884209301647910431751226505466628889018744741443647754422563463449449617987191749627703682241319457495407180367056600556239079076710679196345870581994303840647382206984593257063371560352236985946466323257237525948345439020347830433495194653117785158761780228547990682231286349197819500165283066243252531672575075799743595357108147790499400875082526974408321470981837904219205351946108717566653182930028687767742568458208664871146188752829143512193162346732272203277355308712035225961556971220755617004527349316103599936470907150214224486440791172763574016720610255613364613219820900463330391746435568011589671352773380965213165743282047776924951619454488525140619443627107209314493399011465205864553863229711351045880045058218731501838077649414731074952198368404531090384681254274995607044377148259706445844361303737480788196044114457651195737613013401179086897344469402200386472132650502311024350869957226401228228927328852841164556285041097474683690613075211390449705557756202624225098559876457607690944652579563046546005813653136989392567605675580399784300196102558427702414900293604127578900618997301494217184358051647476704399249315974584819766760703896795757970605516554009580391915026856409307434989371353118219645989005710432286141971282166526759290474158692742012719482176941451980632937231206143297950644064026403896589361171145341817805408102900415880607556849758803183839614329047067123625185752687383124296176447399676059109016636649425053612416401518494782970019279720912679554933266984984941202640632386075072386098265907309606696364099276473607888975101618263174621207456571428634530212730306864969688761832948710476766011725875799262857178921040573901041198706327730162238745548754261781515017130042414915763959937347365018457952846896787095486123506171185628227835739941142872398431976586258146176620093185538660698450385312530212100005937670034743781227568608581028115674684830801455617110687873838077177823995157838778047339838278850628992217370821142999097548006530592668574604248356358254423720538691369625737169723471707234139630382334139604045218577648632586749901047661182817504662112113657793458580176600415349575962594097498821016117281663870711074632712084739965545824846961420358338295628086048452467552097182668596825543416181272609132625048197807796802197718422611522928109875800885504404910096633829329385192012194257226231707046526974002023674743283205666472553734086277620577986954353780673260275107098950970142656720856596085180967140322641501020941359887507018846200676948621767085335980379722430699971777905666951718020124258533341390051379864864897291397322223476394854711267870722746240118477281006187138454516529985553349446093952813302109619516971058603799874889133948241117810720094924670885989258247729750405054013984750711063592883281194660621935761459240014438725547537718200353297225858258491256620464251046052789305093651199232474091801799549327734056814386622229080315954542997130495499674749611015922341555482699173781946373628239922370939337078898783630479219538862141032938498290085058909386439072816508198078951687758252809907037619155062652477489683900513637222062840573883865270480428342925163914120599162230206962516391032292906934335416202442893201997237055503684606822772437954839228456049294732479434769534740429456514588244233798492858096498767298486730932165639732283972718839996612933005268934375059227788470339997513828472424266835927747269089106606124854657491407799348989568843636898201649433515119862320181538428953191308541679694440726190405188883515812138456038424045754314944370667305817155038699368353427514146757142274493316617554238970446352172681140742985037575391927725968255977066286271049235658410394699937986751037288302699793165302148948021880254187637790764628356967692535570834035629214031861244778616948562048502119253069072882236556769433011370165591670684850297820326922231908011274765347161752634466315972824402526672408883767623056999175079888157799605418590849512335518187792579145723095613436255535351195620085916635763657401229629381290810821977277101487524253963719985679334113130469135739562362973472951199266891765284790702877824496481708018122731045679514581282542632305749534840355198397105001701078505426894372805748818720903035429708062285269669447856777655805738333879797356315502901785905162953755790505885483369148232441207967966846432229393907234186187682197420324400683041526743770257888405718184044872259102605378060999837497182685413553400149714724063097850531574683814013667868882774853440239303152894829094742998375815861325165593682570435284722252303135988915332867620031133431437418117767175497748740596358516647960651921632089098890767133593451061992636337752231643401670096175750036241332484629844218451429008442643415216234617340482955272088763881999873386528159245900382796648226130150850682442587077237529858019162957255650714504848436791890130432793883656529690139972332083327906795053647976635286072859144569967920591370956463392707749622873273726952313097947039221990229587762751565539066365417360180878848449776836848166120484060531290769264707164260024429893752666644299941903775775004626691331363416500403503397865361921729438854905615821729531558794225385610250405655110616738998066229321753662348835791701401944112427565619219645593538395281211436717621225038782580722571831543686506691351748783023873648431855096296733450057688388740791960139009369348984831627042497551051572458140889574967738866280028700048263689479500986042250387300789472109813188724750392652383452197289503891335263973021528020786354549268426211261316249598967095394473919139625029645607959526417610923786610300768564885543926175255214175599753294701603764615081481370255122376862490624777604288414105082825763706887002955487035333541793500293192233096722474800579884994405542140299303037871242246748901297117977532904994320119747089234554729935469997872185922429557692384992383167930973218346604948802317246126841682867144430631119081952833750754573218860872375366140036587428229767821511053770108258512480439504268647801156696977313650774561372564219704742264082083164648505593317968037173137373601423274969466062382864359775674728648132304059824223193264560030603635258328679536739193214702239540602801040100164842113866287695292741102184681062952873002472843535363872831639186355723733107925238251759186075255773563964291265063225753567134385918444071307483204666859403344665064233502310638621625993482941608205115462896815941903885319713782427508260845999271298529931730958035064770289278862763995249946517160957490531173371899868804132654263901005281872996080713866659414712646707872148830769810389880278363630506200804314829869276683186426810346289724882356518554177600606938308227514157717188348193981786557438970746621756944842053096530537285368754717311187027451800163336646974901802521989268064760560085226005208664865030412270336818581316254441444045525601971898687959330815528248673375007672701090061167375055804327368860733893246597792535680843937210959778958177469079215119145216679210379983993378122224293374839491180100758489136922505856400937351803420422729695604288791885201584455794518237301876101412446951934642442638136594989562698088748662075638614450216785223058521269726378269159132815135622334955338172423000743678117660418796809116635254009244914090549760614905940725520064593258949019205528695565478745525029617366219797913119416979736236087463625627541792195367306278581761081373000012337630439641614882563417355349963063787176022026935161688880467710298340088883425276436562888819441622263378270156505038183098961578107365748928384349178512176671524966960471164036927437796923976911789641727319647014672181187349442207016395982675061437951406748158182404409553501997561959723276619435527393484809181545208288796651740871014156449831288166226405869869345856457422360848095981529326002062472808933772764113405533651127298613246896269083044700318351936165629489526844562489889085352925536373317382406158713236895407347759462099107686779944730707316716535509063352221106035277080501513489626250136434169710171701405420711672079339722088138427575648190196533727599684279883578752323106127849742060950370259395037969962691884069792442781936400064325022164677285977512588926042703086391537043313358246434026289761589780831486278765283931879319231566944196214246395681012385261173938716924659141569865613228512399709607035063424337954873372493018014177217977288837876638463987494721247795311746415102752531718222235487965250317141801241680771221337317671953307526995284544010278142006200170550843630973456747971349495493192442640912996472155796172502832819410782400670630245527764999167250468687181221188420841098272552805368950311920997357717398580648818302067681695194591922588787951048832573236992843050482753534635525782366024743729674104112072049414449519123341446749040470264858568146032028187706256609223309444374790457887318184874424483176010381646184020520999495292062675386335305264053792205108310338203234919197461418297670411239779373587473043506254625680922037647446919950767540004367475701307470359469779315258423659212500232099878487465205385975026563428778734798602161078556601374268776398344592882544758153255586472614081603519568095897506038860831915166356247296280636898749044057559664900157419487122885942132157261173901042057789107505019042323864478973479472650112072461163914517088874853850966742126869628726004902670526896242869896305504132118627975247703289900881438305054394841666820855695357491976417779921883137102231270020692434700585364459971016971175797351651685856155891270931940950484821619274147716623409856397964973258778573595259994927480021965083685484566010881484342497740210365619727077001749135133960174141793679720270155579675043959709283853999132487206320857117060686875557283111747375696778245804282532562804164904151217691320207805402178939864402754577868256485974278849795400935492357585269941316260753685901403514963751542669880632743414365027554802454404289288739617620893191794262011897086215759435871053042230847305871245859758443644303741918188008233657154957266971965560662294704000431544646833107692131150053668657327344495903409045271368909869739785490037130002851088136438986235483170013757003213167202922605665955248285458693322916278634186541795808021269787785322403590638299460815315914087269412659013424307476176105838929177983561992785228529514941113974855890944655998669759558833178604944977466928502800246999870498875483173668348657505883759914005714765482611352869941837392521595229850000791350278077167928146958160114495381628220088154813989448721204117243143533516938276843904775966449925575167765655073932250043908977269137660152682953202023153861612321361622155823307595577289456032151162912593032386260460942796563321871624577151692807112717657055820399520843342060855340189280777366367433407683599740710307095038784939852511135677690329647324172481800465586426424745301610490499681809056156646291849174450969589099314449659637748853888514164957082584702037175349755132502105256727928417699480498468260309456040637450772332145835628603757611215116541815900989818799998300224707991063398801953105340355708738496383590252273451735451508735789350299067337983940340722004555820802335910941041194417360568905953957869104243775942628287268290603259624776118204481749083427371795059250701321894112947544493647542558272863192933969038976005531252147370985225467247171861491422487468810869161041888739416984840542951873912360560461299805196493992059611732021408748119926105223625056476608793659042870134900893435648436748314631059745537113665653120784456100977653068540333722161717603226661029656462184272697974608733059726966888060992536400036399680545925132961004801849082089572872056797447123874069915306352779711267387680920052737080085301928744835782819184723498391001661939863230100301095101876458334667630394151464591927743941723727094038169072475981254002136152653735966193114951347088465787276395549673766851374429695510051506032945405029105805697078690306379153465877319204151833178032706474086869139578904556996528750765236109761069415857052985490626850677747621376662394711448253017662259878690191243397166294654265892641105304763579342626664382673093744321145576045548424021181941816121597307200735019313427288092749694370659200326524542394498216048788909719961286790485140444496454345117749080256288016228994900580850397657547161502445011584005095598036941957640365683884877936699790613847748548133930271586721716883000216408955801884800701299684875106801899423621206280503737567115781042352651799565241591135568323815067988035814839248386314664903453877425044394639141558476988836043809613851421401341506742155546773028918440813634677258666183678840025459620123504038799067006396460159296721764238055490540274537660198419429620778545129593090180816757005316025811798039202085619198267387415444550645976101993146447065335663880265716335332705658352379608061421836219146882686919646547923508307959555356878498872474908367063858431456236886344482576393039454670911497911588446635367304247065478528436758346359335306212889309026478109782124230714192805737544417829212885312518219417575667745978385905038920131880800617937196297430170595495155879222679461808529380795222536825615112212406575898974576354393459067711373395813195253422226359636878214054691518720226164462900359232537742667341219238738037442224613625199500995728268818487295362165999189165407326003380747974343049072138768759319360687797256243917839045088491323115850699501496704336427278003947630960132538541880975734087859367880323783401966153958736624073429088352791863160578933352614728988975285080470439279495157739064337708640963466486526594923116268976469568662456017575430400651393396500707726073005212153704379146447317160603139818024877127495189251937274611258078265461689239619701919991819457448424291891123965743434023111627459081571988304377219783447739756459589641044854010769786403440894829389705459925429249495573679426943177056905388940775995486846388834857872002279930117217422063000923114077567897942461178073861237238025085854536602178592417174740607569177361582564073152903189826651165847176396294910932099152113699285083706285460051652233222578876207267660846819907852392507220256685212836265791925380875889011098961053262185495848671595196690913295919807618682839095139265202951135510292751983102072995486397663600629982809530943370526581430172083952963637489842216043072418904757905856541166497074115295272505046189815521739764287143224343583865135106078504982924262014964536265298313140228074068541189130385144614114136683473790672109574958645337929336539500510673622909733868098235829225040379763920839218937180742454615287115936581610650348121390064431067675128363568390544263379336162061971473154154380702537094487507678971418471948677938825459149762591926825772711615575552642024327563703511506243833998764202949320142023036038155545892484997477238544189593998326834678697701748198953846997560719967668807901181275679371517159072396335836844624749736117269318536363882034561768281227646240508234937851641393975640162797949963862892487215934850463997979585275753894863859244547923837337200037243280210592415755981632142289019154319289953100616122408592032384628942931077765748461940534381571347297699378354721701716235475280824548470140903477368095037827370939409130171477365039697281733761122893581747115529085650082922993081007850725765951139510816308469816134896021457012668351288959412066299592576882347868956596519108558412662784203063563646595878560880926209825950926373130511413125906378914128221599252637043368049482771585129645201886996836029142641786940490672211536934599426686583905684354446891447719860594329203134431240449736442465682757407264131969632846931242807408458155537404173113778543009970903596248599379304225876870556218909331804734685469473671378803631079202080396606592147049795648297700335756506361327663243097630832555482740475034439746162488202612335786117108515258349405769461801748152846985685016701012880470660200135283474016305774723063787272845461486630209547831828916512683804983885760451762863691215864130420208246172382479791884067972444274153091783945335653423939172065690154218189978520501410216265923234302924057067955238525233702961343677339637501779552942249391510748735652010407732805424624128771038854502347753965297050446625566140774338435648203816317267955965984880329223810757250125882283071300709550618314266628092664480891259415250287977995991523890456909595962589926121545168191743044202900927271853797637231386270301751510338985778138947427860370855229236483707468223069751928795348722271637600588970114277666329230400797639252903551229897683431952497196612567651181397240273825951333197354244274584601782931091941950851355025990061167315085508412353546140203535452667692428733262451021034249994514169817544162205949555440896292140364767126697071985402019526498612902115287880889086063705707490309198806807049817425031008536330689721205506636475406932939692772423683718946941843092197028211206745804889871972184247497736745733880720088862961460505606761552938070368150872187328822105996886462609307917407008820382251715979199144196138274773388443258348229140413639885536737334110647008606941490451847033136829128685136194106417503342145843374214909155204684611482214780665461705916145424622990839976332464507021256472259696558549989524538012091539845722470711884666657129783853816991962389763316425385520140530345349999475945841008304672385964006719947824566703361634430183269139874556937739768714052168006003759639761220228896955624433243565957943383689530916618431295410691158832272459940003365573397659713144315126800103676388089327169351323122186517532345391197508594775269451712421991708106469676250645788458371668640816079016879059106681883450540911038225117566486068855468090448333624581536471084044236035765748645672378182576926121116050005172031784939952044457341243523528576309749438425207291567628301828274563290280077496601849701434659848208821852870918809765426484795446245446015042805116737590622091360720229030803240216443766262632710210561620305384254112897799176384898654041541016019342791225771907861994600209483213386497223225839970028398515421784864069961021170605956331916900642293854053668692645661904404501327623530874867260041588945439824637883063067468047767143021321397219532666980348735030849288499344991914056226286371676527382899886759038232087846067071604060382556460387717114660086870281831566134974096643766398523964358519388200517913893735549253974963079601926259035527393239242368153526277201889769972514438518199007552684743404954218097798832704552012297993561607067779911514040990631713794068577628983846611038022040295448655838412349867346440955641787518980602591167356676379119470994068621258139943496420157372341626705090817793111118731560105237428716901111623587968982268840040885359575580444889116700177083248299617814360440073190024516171766408046664546102592693411082686659424854706661252056981444122671026093427376425276814816436862552768123937953391717292900872656914913418872127510124582668903600789974527842749571345932722455146365625291862486305322938760365215549358605599867347448770284515150915831063190689100300773878182988418935687177385401141715107668915546416554999405598569660582814012007024306194415079394511946524101666086916736657149954562898305907533205701780188514945243570565704437779708222214242656346731716713533329768572800162112560072877587347684688708767838652345881736115959051107184910167483031568364388360998481035754529196106349298980963873484507555953485663896687385063699886069989008829707757817206150491679346725074000418849878209818662404810786585227486985509585378248686329261762891448425949380379999300557141413913575797483144503776110449568404813377772252214056915875183160371478730940757211193137000906460917358695740072672102153230958931579796612458733790553688264108061960646589604320422532899125411246192028583261855687561858175509659614343095300380257728612441194135078494527653300898174749633243049616060568936895604936393546990499971892354290707635288409323588574043875498811967409668874979126456358986780083601500176018477551826177908895707851517747013375225741630956678600878719090147751343984090873577415664064277745032994668981378513924710074910143025440561039991306349682433618213888018070214189702896433317535262507408553258149645245457370513997783090076736722992417386145658132650173386246037384438916568506806645603172821955366406139430800524341435887565520471481310017978713141691844440040622762576229646247716481337375935943131882021882006167372689192756733019057472475459072091555603463614486132865176584136100043543230302174680038354437236642577085789564012286774752590047092998612650644078065147738661744490082570845718116396036976529736831569826375635802101733493425337775624444340190372204502807188990994870908544777047147377896397247490877952310454756074675887132474419878153047924921190330003735274923273271974661104810595875849987329633640864465365594967147927766486997504745284707018437730975896708419691014270528054940057385059167698790938672548671921295384901837006768375500965168058522564189788083212708532888927077125318684515180473243169378140894236226368025520191187953403697866388020164936430398448479180964827594426666343739622160099739321158834024500257208990407752086073186670461039199060890327206979870441554675239117088479591279120294988754992152407567835606765529108341573998989832339102056056529959466985469425912360833487634121178882715785394727426946396744222744958725279978106432132208718881631729289106706488092082112042333486704447319867237088037281521212163935379702812962999105787346342870741429006976424453651594254142158942400490994855327546631762027720569593441328070086041090145967852715410081861873693699594217007551255999724505661556537901801404008624764910032546775417892290478267537595309770650635728136206613044657802308320559865488960011454415735193959729038114377647616956420001967830018271468359131751638368858033808692480053691859703162387087403237121132200307782548479533409214698332510242007846537385021656988627846867881044313129777412891980268012192463047449665883815227774835674370381052988973974750833431167529096991538819231887504090375121024552502433190033283220754183243221989935888763300894652440639369983814648836199266951567653359270902206254638155817487626277426641360327490084841228972628764182819895143284504205963381256515745580847384929327111051555335001348809320610361562399831138569882633171051263892999006934704258915542750791912888167979396724017028310568420426903589269619660717511922466561846405516261326909674553710369304751090106973817207868480746392157939403428128441053219479219203865120237132442103833155163808329801455473128596509762314390333566700136832356879816268303383854448767986030481456510088934882206736496377433221429224341991504076501676166632192125323525740014075995758371857510140458101125267646378713654910942920675199203342075051192986509537311499486820491304997730891922666523024993390362269089327542423795080083759077530413082584218793453697729796902521412125293401825530602655772587362468492992090361749358601524863342138906696782903069357252727007257920255553298259183884420837396260142316115832086149100573718225967917096384587315945529673667212235959185020052989214432063726024820603842159416050923803019150410306000288642298845969939008045186262207107337075041027320523267674297535068184616196053938823531518988820507378338151165640388942280797106121354790314908982288484948513370403861285649776162474213202855647201486565648455203451627984492073922252431291734992299752669242368404645327110993677004277285081402528467347158590764727358785707063257026749323331747096395054179173916253839822099261952672933454688952219797627744300048503255750811128413889079382751958008591264465343160529803395695075865334870584220773401932985112265786289087170926685958600149559719915398345816878183803694370163737528698814651408615887514285447297616669745740399867290983715754726761312174837103465639764673562951579580064071334536786597065330094228277118138494905589630785844120499980640518479659541629797141869420311461451154200822019996103817794725719016045893786780759677185732445364794706411068872051506580298339522208789607228225031342187082969321080586622333251376296049702380528836485258497207124322496937806824841799474578586180916709687444255762557977226916742774676887058978645027022573717664079636002244732206073679445845189922252645528941800242233228113582977239173861134991139868783701815019622736995325557675457904576736500775772390697080815345003342132293039785148400288631916670379093321920926392388784247392427546652758496278003673217250908893358726146659428908603753340633481949231225362804891175140842387179237691299895420255688923603921414647919025663615995755487192573661668090395123657130531429990499550787600586870949039224982801446711474580920270834231060119089838842750342897748356653724197101275054650163991508136434494233220111716918265932219657451030450794620064532741463404875341215683063440909067517499165214241880472827255638527461364305753331796068852987510396008149836899634265780361325266083095931622867278618397604031486134692397611350985414224362531731265070043639269872789120247855654582078987329665746618671052818082093135643740723978834388070525822498709738722208237480290428063441634468990091242019716818092264314398123881136811370648056337662088021361403509307465421159062217194422364050812365761619888931766164945977607807391293829535649964634184950088667810244894383340158607162832953735397381338009938376125231586654216496836830512507009411540231985990273323370514022898158806469682461141916718600732888949982819525978265894821841747972285732282377353232583487582466796165531949665721782455688330390272234902911029360287532389218837570355689123420790540814613406533977167061908763496216208049480265788937395345424706569688784144799616298884990188126863843509444539784815277091630524266784102330147021516450619830322075209663571426811906807819844242277693118510844690165989242124735519393473598716261679132648080546570206706054165271244874525282723487751326625667386710144508201568750355312248641079093731729368102875738835852923183516203178428317740668664813414903244315621793493117386666094207558874107995029783660118803969804958291898108436469946451083673311876543575724779455951744706680976680286083819481104090120124744399648466965931012490750548881389967400393543332130078766778099919956400681332117950093390171348509336157093334339401692381665482396947804095547548190885544267920583314231695601565859554768738265234554896392070086647381476503294765155440840723762324654647320216123903062774633035105985587955049496283450006644126289294539263110826232636246928534543705401114830438514111637702419575216446410611621793082360932757600009907326660344170258895175189633883760338822496597878042028898854275224442581325807297250739548449292452475686052779046863634740261641692448195408520413451306531425416900067573114693124896695791685723783051901522729058452534863296052354625579391706527144731154028065002832584113725946794523035311586998507045712494280034925903585539447504439227023599107952806749997804204236781019834915861685067146912600636633936497176752278128151594402973135691843317805757019887832462251849402188500175311814018680849901364889688853326216302250535310381355324911243003363892759830846022004782549183404899533082824830297995018310741429528607434758862755334637074142387700485093347356771295564016820749711523032148849100079486855257407563215244236798650375119857248155523388974375226678900944769355978193412856049280885613013708789366027793811039490775528870928241001634732809819728292313943208022427515016753935506799718823212643844174283812134498914289226217947035712856614632430543017254514894715253724449902051510343133342727104739459998589636818421222985859616587012362611033185927121403661870180582776826830894229740758020484006098825170764310504011030310830824201068771163195552653059188253383540016021414483262454180828681390383214062770506907607152716000970114715155092512285454791271464086792920423767484539768705604362840085273847973511336430809516181920776392372611172414372510599952018025735492754019244028140660254570405771495025228495518791832335733487372936739613607558253839702959594762420145606335528744773327947233283615192295618954007784690883500162324378564938579050875701706765179805452922823842322603786857256419868391301917328137317672326979324887428322547856372796976064055499154378537504044764943706734151468004580538466113438791341180857063556791021246377175529654100029042464012334837155381784293106175631817099228333210294719060194598936736210163998384458758732907230794270747289962719001938299538256588682130663900326285150942541549391887082963185830147529064549237614344230055122282387945450803212651018262598913222110940431016306805766951801972224001650738897074773850096035553878657188920490996692821045818080655578393119318101442056821306494201330289788535355458606012250970010187793595491538877760246948201463891465256885167858714392887359680359398965942338581664114942710515163953251915209509327408971396070224401850228915745499642670860195417829325717460331804821166296866666819924218389730894662253097707822778547872949730555411100442618718220250203406247225469731103353135191913566930187569652418575114405599823538689935966719336019971347212569707889513746514152127699560500923681945348990273501404265416696526633231788651850654437716065730465545116461737318605848259704201409810062604420790141805129665414299958544828293934833554452493694975840942585048331650019764247661408472410376664593346830708153288295672945756345794088066434868025030836174615492129794272510656266415536507220380806659762461562467422932324488558698676381661561268839707555164167557117281771984905123079269877517043601096027366703756950158425557700979797616350464492166633643489486899285519314235004204439639509818298920608327752924202946237023146626825561903520474674785721683419993538922567168886125311700117090213798122506199648771467223297290082598979713980401809850908605122961345714331958839688372580584069761899136126502577249995384582394536015714689131508795801786772011913967015729946569543622777151015238770529602193099987661859268959642098494975197280635721064114448183033735725932848449442454766727100227942368877612852779652997301575976495076247441813235183584681679003730363172511747032035938735646026336684078264482045571602796575836944461319399586809062587602521453695824042262472732063087308989432452059112352010239637664906052707964785501999657371448900765679011090511612588764739374791940186075933303858749944114628185019777851166054438711981098834208340924005349921254701297571154570423298537523567571154673914199200597693867680433277098340563817555716881873128846862918502893829457549284695848589013078103387205804301319639731158799402658167399239575561857865453323863941081732351628997202652727080974331985634541821480127818017714355231959067523699118217310412057684102992282082676500726654130847178194566134391991138764528943360704177386169211371922608292924978403292491276258034967488322730135391435659175342565699939647775591405236587598708764461979808249569599966323029437124617035014871483742020798930230019946625045808293709787984128383123707513622750051975527669062637010433806962337361995470259934228768271974908388923853383827596403287151415825577456013918370895385918305463083767000082711148594390436841604105292050611216470497055946766974467555486525701389319066260045072455538248021331639142538310366615674499295550859722136589269746000514213878357110346472729784941567813667616221408645476946435719213537098335247887950098713540405725253233961053175949589496779601942319893019841433701993647029475094119298141227303467354954948325001579280711230898183004829641285520888950822484107833324833673552443808496170254044801706980286499978432969108729871486342261919842017770702090947358139780025687194407363363063790022925244639633174940192226439142202599685147173554170245719850860388310319527454354510744043620799938247961046509096648601681281714251928362155054174920472726025930753836716225611814563901474937711670528817556936050426538494313385728389229230969273418770223387934580918927616430236347425204644206688388148893652846482499363125994871417421417111237539250665676404889767556014157207388624189242110210143768929147848550359523007624920003768516072160658083259359015681040261716143754776840480770969179043111322801065653669672839122262565170568103063478165847278119798127117408414063519760350236083997846613094242754746845562075419640194423791578539281909105428803747764907877737379410505708582423650430943883633463648479799598241699344313916229055239184758519847467128728142109974124048918271934338385549659169126738929035871207041712928696146467622481078652454185234134655529299027120110161832607245858247868509435948841602078726790775179013554236708925499534927908603548386271635377494727940137272456090709492728801479069952811964421868049032822246078877422707826025301850003612976540831833306166930410209476025297867144472889971557006969827143052750371762975882151853093618959037298633534956378836139935397069182839608244314680640255975435838202177938102576951543507296367705890386116537611047027876812748868493253107306417246235884693529108756637499475348906058772158534393676754540448938698394081624803618702532240077637423802947164631963059149745802464314229773305184076736320197853052196849832939299949561426868414066493187912762327576867760127735297712050514936161858621624790003997865796250692174179924238293595197819141207743634375654659934676732626066746129634192586233201701126309911670450679261155050637457450478689901979644186185016574420058912951754582440403276180109025147615269745486367711521437210765639715990560255325194935292901644087152189533865594735550678345632694996378487096776487143127319279747900661397312956870910360229797766508827328621910232287861461594490174288262630032800794804694180652119526357154029990232079072806325241392731333715150084540827857686218137634962326014171062168103394441663224844623639605882086023476198172219174140599912424414810789137552610488459916975539174193497789876571366634337199654035349605443033367196587230725383179939022815446819226211488603413096523249770940382439795575205927418872784080161691689665835419718365570410678540415338381748273488943375839837521205000554917695561851225832817814697126376835044076069418903787682255451491794527437461844940640557747035574270537313114867409991835228095178986306046183781149965117396561549162312936462906321857077403775495223946853600540973369132861379462406294554034250686421558132252804689323873410256184894455131624822152564865949566125446848523127485550729565021595993992010968746282709515190945141170316113383230874078345434930444057454732979533747756631070901800572720558729850859907721496433408777555221141779476172159086264386598165230452853113622433950552303262627353976194147454881383658211588349482394714958945198007870235648704083686623692988474714848839894299012839845786089676426136099019508629556249167843775732617085998552303670677402453565677513358950327079138694948966258309997027501079867308381031797634422157518524912554854401641030526909139695137332874064327640697225750752593611551846964492043743078417959761714553818106663551562418106549276358224155574334407918637893653107332673843202647886240423879558181401710406352095971140824859123438233172893404138694111592371286723545664787888570640698655295852435266437990824731676491048096294544740184224480518040787378903823229290500343473595872385817839065617053034832496075759254855590740434065868537719418521024996519692365026067299961880005200441987879183793928516244492382175622984212635798106638568507351107811430235676596642784384930483530274926742863664917690751899568378706068860730536004855780322463079856181708706875492444357006401689085800099421315789733428042119166818545052118598793985826621630957992371085058188003038871676525449017287334251548886609354238118376779497834529684231175349109882761088772790884076417762492802561296757515294810116603943075375056088718294506682464268341855771450968933512137244514769716436716480319354032290583564477608520408110129671519510868038146215348766196308200570295587173330830382744783957814039548409206570915252079826841241148757844205150907064452423018663788038038703457984897946388922190920675329236484146404945791019309992176546594317517797119501072935930567833044248390790010226552778181521259988651234939774898780451667584872470877786146698841975380684355638146867607708938978088316339751172593665448282307488444229206578879895419513345064240605883106948674893662793791076521899410584344033252619549225915149613778362648079308357527720804669186394888919864693448327760387941153301282059092855252050423090038303901288068103689280463617320718890595837217950647197803184038085755093050851072071399401564421842214005204445322630556370271725213688234187652153941607922586584507232812855312892731074785665648064582743927165901882804453514867454725065429554815599126899807475244714443022368748939162457591996077449959648445569897558314365350512834705468636570622214484649804957834107591482487334214711870517845171964537401876740733346385519575089833032149892880881687928370480106178393913047298435125673347731377726695965886446220686338503203722926898481891586822153225138787646836756462055996468197245571554432274901024814342275890325315008173297121931751697509872028820832920936268731504432789440603183344413292656991718456975585894298695016405416380014631813669661576418669334277035032895173076415116340228924984125527100379813405445832226718418050194493370329920905250640412300010335883033830352994114156454560581994433475905389955028848265775012471639236296175241399642449767262117215230349652821591308842021991775250370193898651429914339892601402527053474898152703845357030924584470415872159793152111482496444697879153171676929831761005467204995079230215579247402304300866227159805997460648638513945952937434558751825452676371803706902368047509885436458723278886994579251832722044766646793045043481764844642939858735275632564785507371899958145033181051166249970249844182929647092040404378181548152323215412685400044982288521148582900824852797703170762945398570643298271166409429049921342924929122319259385521661408548158686644479388900179521218130745847304209322106024661810662581910199463239258115090414462202691734195160117319512580248682625803721247636602529655856337489854528876813314276276893278391409597993262429964856324989924602871289850596032083726293271478833067240435389104712832602735440147786159709772065708622848008932923373416114012514539747290721368501239657451033057194102686833225317925411692057651990615116972769265380576960717188713730875695266621264740424040761337329573316598108367070568507210398809920199276882721424283697705773379807496447141059257961335401692462728071716827879604886092365456929945546307426783441413885824571800988288879736944469051365644758755276006547552362228575359403316405854840969806160947922205988630896950831400472300716678793558679944491193168291287838129266823545863563764121002809790211808199550397839761972776353574945856728078944043315976623437078613941556379025443723690889625359256452214540832676240455680539291400575804719273701114233969733056633927281433022254139142072940223930476765285647342069724265479673279195467685709487526639193953847822488322799971630012741732903685561847884180177433528126301373782498668625380055933337363723514950982319211962043383347339268788565402203932160932090244704581677964195377770637559459737750680172217915088668343423038944210613488639844543714963597854901831744454106980075179250378154324617399834662746895059241500400695643672496748472132331796113819497740909675252072125739339212244097228080883531895046518384909430380482637295293187840294860189481069643539413924711293183762039782187957092394112564465209756257519375149775065406902575025632953613948042164350757559438130129898561010194341042999866730118095838883322534944664076138396211103724779346126485416104315203831052159431700914201289945642739742734066965700624562604286109005648342717349299738155448084442051045709913725739040980789774177887596296705542106756312191455230092713427434989449623332104222043753031959648229853771660646740598002461812638610949495001909968768699636169835358649673824937116928134856374571541986284727822847300957386165740374873949315527185935336019782333238533413377759500159675785588910197415967498561557305558293376617892659937100479631562759969366056129840784980299339043736741438522015053409188562807626040464958544826510746912703265558099457155543872892578812660884936217784347979359636121043091726000919368359520643126439553928349468706645209386093229546365677098099420866669710427186803186695619892976454774008298721170693908745567064879776456052741643948860154986051392102544515893455087956522530423736146742765261129531448343600199183094129358765844574163881207100657433987096663220246148280112515363732152772973835335377884417787172487221592504547621676588990129147610160190977795260361784734355204870342282300370481151315057285820983548079673491413483531149925247098947785535314932864843201275512679248219668008343739134539129800814580451044875744101149423638872505945115307738817343354677742149771248058453756701110372481892738799644119986275097774033117775939561207784286832633547936967036754243568404101942793212835844024341468396288437346345038940373774069767921197797476426101784580425693366195915060328155366453272182905344972691395388704223380882838100339073220046929680488629175406598725495891961128654498623063544903289749822497456968257335734734173951023310867117976686327504413850051627271708992191336145653843309213029570171713323154148783100632711979955665865125614030617498600408462591084317037940434274595457159390547183575028983401299042942804980401037551124283354313220970622676863215382793727027179884651079030498399789914037243507604724696032795728714833663969768432658851123692272994805818369960552624036171284233796789652569423321475308480594390636727887956934512590174311910303128691223950737771798040503724525956468630069063015983785406154409557028061256271837836377767751933505224036777341200342995341658380134657005115741854520621975083719087867755486499182326588810310003068944656023937910026342086937201180599570909240714533586800300287210489700935039983927968188477135458730875339854863910625551307191820029027224804404564958568346030032285997874019438013376193088224020377217842109360263417083284831907246269814202706140788704150162470923206394633468107323931108844203666260910246167611675853058486948477513821580439797210571431764410222021365063832765763690729461557831856458514589241374185861586579841826944728479481964367881179982105859377078147299070380346508768416107767557825949313036711653851802385293801369737092648581734779700098052860639755686364121812880733180790978481255140195939041090389163747540040526240072726397220183279827330865743935791448115477853194792870261092307645411667743989589119822544978802388560155456812022476093103447438500408051571191867648539591613301997570828806300135602074816492393050841594894761522714972860816673416452747599259712257359583514567012785729718109793359056490816163986193316173293151792945978246042072549902835996911565953998069023535031344040255426119489032386558712341218128702521598122775192419203375582678320222976600783924547808224979268429030649613306573624818724145891196701382418481960641578570642922693188375857749098833369352904792677455052227197572752579789978405089644576699895860807679473777952115588136229127673232643923517696333831339296518697557077751966542076974575107303481773011752665935451657421238520395572502805611225096398105158180387807938890205286464310330397282198655643626633472719517930154761148999932769918069045261696800351564959884229438239619519483828354329888113958085289006818956387318487490831067463458768105283768420271573383493229235602513133687620261868684292660840868437782520729825504913866270763106045138870271122291573472115946550421222562530334977130046503462608112574806974177555455810594664148414616853332782850454187761696594844643129760190774170141771723098198631550042861638284402602584396499434919709905108118009954666623308353968148899082569928433628422616916746873469392705084847128677519877676385218144726789108042293428468657425721586222847261901959389596982613855105894191811942765083743534216583293993612888187704119138819463529963667506490190717613880035879312383897359239006499760817598619471443966444006380834898078739595038477103295303662975441450108218756653152734890925280878111335232618318658955391739031345154285766829245262143092610387686820067137496438344871006891939760032494155137419776448552147282691090602154920725909781702711569507302711833359900374230146622790144563663107063058325955807311076663225830531721748229353688112548605213656725237972254229234434122964232721279290390338644973545827277219398559338134988207263520821442657955478429270078223715508498740532410357043984055096335837391864895705772464817527018982876566024120737523037129853297537020337784875647817244601152632356923588321707360912605255634628785743504610607733410834021221885116146669303190130934284470995417508366722937894186470301196624052386824416260038520004112563276251302773300141222208332502258917335496144522801726804906792836875701573376940978929858720158920922147594263126834167203241701066116297431328854768520748218811663669325321668028010784540654197004546190940110440775426288564732158578054937442389038375320021348283959976821338011391591248847741127976162514398633165642862585477448301269613247009982321687653477144858925763383256365665790484535693773941167516430326331182869457104232003691478031995053513531022905468167600128415977872929036634944604905121128141039205341134223311433682666380523521151396195786373670127007340376417209887203771197088072776059656723788044970096939728037063270778578742351824941011369262186493462150895405586646664302556162426805260554887234976052727183715380609406262476207014102141377965146594700682047342501695405544720406775003282295778530394886350833352535281210254757854123787143207514280818005860249350374849755991940857391526362553688520120020679188299319965550758854595764906074613544590147267125529400495765816144924317765950981327821364949138820769500008174731764336428527573691290957327281425556175368771171075862336407225533518447569517696233722495756157552935856901138543596688893934112311689317900454745048731412219052857483642571475000655929111145681957141599399303525995087089052280540999330338421135576528230451536693232191740348527179133038411474605713937362230068252610891969445757843841182559951465942820381023131707476587043562641889713788787905987007325398919421521427117948450583269110765594424903138024812489879973068412726741407495785762331878399208362518508141505012801539388893772601845144952341067668288716712314277647087654701683757423624468481601068682616361211204482554798024712052327264984225186583818481611838758336467836656432554257272686653989636684424258797081512442161222846169356389153795231660074902149748368501814297837970434746094122586910398647234581403972043389176235551065472257266140890805062360422063706507270174529463023327866640285193804731984315442796300706161533004472065815148773818539869639228070834432812204029621020769332244552977376527047895493206195032223675107069026236914796599503903352200095775754782215150240854655491505257324424675080505154503272378148074642251134653474932522329922335504768384712736310854607231719248228558809049507172898041376038760757804154317717154379110403552951540174707482639934815798266092342062106906543404298217296163388629373942935070209876448679298542973167828777986448966578054116194867834998755954981530493692412314044796128590878904313002772756455415754515138614031173571634424851608353134961524208383828609846844594828972032131468446385612474785152314407404708160629293222468326058720775347609288317396087323414194490713160669645951070707818117493311927228175938172342664817518629679845751331982844028536252113965781099801257123876791255586016461696383308401213045336536585292707031865155019553872875398995590386369111390008919156300729073203698746823974674630490078810185188186800130840676622508132254625843361844235147882656420976876400836927307153957317516730077182394737891874103908280150842980323737737805040474386801618123486965700294863377391359429587195590949539468048634511276912764516128345494525790780180245144993377560801806116770604216649754779496545862319764850897286753281112319725865668364839511882927642385327068427876953891051409883573405902226598021310778658412185792536802615509131730364351627831521898643136176212779228733054145581799526271007856343350887852420187455524813538403654189872371930923017769249076225741108785378802032431791653331065224918979904480081003818707786461564930896041201155063545120630365379551034344569788223431924668986238508582098739966983214371328342923489887137275945790582976285234846776883897351293878648796437018136877999226245157368907029304262263375813331253731063945219578897630420571009276136502766848862910973084419686665413871024863534285953737546627031497473108389200936948400319392377249928507326114631024309764938445584862028463302576250948570254187231791885915409581809196484600469497989891414613327781691629666306629391024985630826951517113721112471887448978777428716935507359335490470483952020211370083151962587801461523492329991331423978431472725675871459711889905200775565073155797036570499108282573783632757538520669151526163764224042713226122941343988422617263760631043174469938167848988994948298036287348478588348849098937887362308655561700019128312034728159453045985307400295597983521835142288682490190629835827695796587461825329135420351000780125583166588057861802791001721077318339292044972393668859888247395402095768016696643906379025415839266596059418821496428655118234349173052772372490143605827122312992178720163209612361568803451475757742749797927864432914517279853747263670601548179898677066974781725067644027162052804823789708436162227883417649445431204672068554526089550436669836312935152721959690994446629895891429705381232028069842179170848308751020778672809843371671767645743353928710999462992213451428078131896579348660453044907391429931215314921570873187511557921527175940905852787915298627255035592737614054449769509022753753100984613517207183061733323080746479501031106428527479041132136753850674338405339147237246965683828777874670662123222043270679763117092085250361331880517274352238873907959081338325339277295341421875871701125757152727666271088859562136328013574138248420454680922605249184058233382489360684987130829489994556195888176923509479794181799960363848170365364588836478942663635476929829496122160239017946065980810234248800781446681444769939021458485609599446824375045649474508643698252776655677693183591892723883067279275249830628624483744728479245221426610337794079664981540080141927278866215343773147667307921916484531118838720257245756711732322945977940537331804400392285736806999759426619630720469738352395602631633867783046154943806525551869735997016918028546389923971047764114042756596093266898272295847578819462713985998928938152194389966972741651736717510455501566155779692270642796910087492868418736992943515452474910321038636077684443609912066783227036258529378131954881619933758202708897777939175845968992331569028343461754663164393593604805271810930568299542810803577407120413587186442208301709075624722464211062150360421227750259946517850099751738764353582389733525376666212960466161398459281553811779967517162556019575983643378718409634754765755379768991521489272816950355055221423161987742616011607578852095951746250601919497604145809411688719307348374650218541289959456825539552940488511436779920840391601417760218182967662134480258028580433735591676665835084093034505608174833317144075931935193615462322671391609639334909625278134387749262023281471853630432442636332258274008463317208883125547900815825273538322735493370860154487598516995641273348863535925735568155084316643437721407488462607128901576475473184298305186619112825968844073422341557794765969457342325550354879150150983443653297686189404748073299635236416988609471188006483485931992078521107800352678684522333716785261527404013630176678188534319414910260346852739443220850007034785212315207515914335257829474765470982793877182588071570682677438259537584036001430722295736783474025384754354940229510865397381596206283218929804374207531177518422493768131988296458972410168418753691585693083867540644591352866510999000056196462517143209268174257259064201377470897561602588152442472994482778809583408209355137494649147240049773245068652278820888682777441533011461914143973376222877533319946461874183046139803133086838640316531689070692922473428382293427929550530975537454484461335752194774839032433179175129706840546525817442891855034421969402289148215746809088900438407037071140329380494652287374507125733421165712894774754936229582700245858443307187830267054561795754666922905145988642190558248350355230719905284649354252244464044305221018288772885379272820009050468502798483102850963625105612593306218640946405547309367293337601840005272706166518266376618111662858690329540749597461216568831732125189904532347702036334135810668474751130263129744594023192295284761540260371194011226983572661558485382041122417549238996269776794860470781147917752255449952516870176218768656638375420838437456100850646663119419946951856553286980101188641976916589642272833430811644169293565808533858906559400662545117137913631140219947599545081963861608351913938010711880940558722314520978416142803716263851177222710245239936803004755426923128846640423247555901290386560053772588937670945234045871381038195427769649445879916441428648546704336295404003366666173286693585115547802690445716329157650783352763844435756722502500981233261472265259286221562103695889123341664562622796425417547937356255271602422998376456328572523274667568067405849723083343865613617337326717340212997960545688959866671487444445926236968245783370170596662662060484522855568236693310755835200680957181484225537209836426110217989077499720750395886138442516204618664373009077346081707201151280385838132305652442553053122596767990333972509216808390768237189211088192704334025727004916985384363948834645222295362029263850074941951652807964882216825541930169698786833796929545443103525312318800051598369602444423714734580693199153633819115431097271412145272223650303425443784478657438316297405906074570397446331144137110489676079779944758995057729595588802212852791572539944949520163536882732707336395836129053446587078229312386832385359914329660077652716103311711255286838859106219111549910382506959281219705605048134744865878813997481045611195255328614895958177670915428731576056980738193963881981674726274692111372305177193910890167875381140958566655721116530029659008093586247636125129480214150274803444992349222611108488143622202395582726673440172926687600863442684164246576370479832632008072188703434985767621964279482425405961816556108657219564423416390225987200377250445679391462050272480888168678502630428618181581122014399061788135967687223122151207010592426591085587493874327703521056705460281619167083436857151034780318689720462300588356230878456715792740339006056890857390443887274293667799162458530735122819262767180852317144701236512848468148750004291821532855601074388334986457684253555760495424106350670737090175787817002081084372032086939556844966806073326226431919558554326359331787562003485923157330496836402822325329613941424006233288741003893717443355608307549578500320411589830115887348123006590708463140460141992971050366374949634997785105523706195318820356611969505010028861617464550649410089766251000430468118401850915939731584088421834236918018666506851998356103715272053688135520561616292181339679785111223227527786188120765966433359025718095809026396702969638643962868998783900841389525464129865474534161434338340447423933376117142029072907217210037036012781953458579654253135201928733367134839657469837834533087964844997897711252317176412550377636408137782949022847691421692386350816571380236565563281366749040656632398960094357278379008734796835094323800276254935154548569548907893616826812116064220889087399916680162772321248136264392037434850815215495807310991633359653288434357395006059004348506173509906160717180716094480431067961022467126645528775911714393386439516667334864957852846411818827690017061918900304384699997221825045175206987805657634118936447275433775465224649734098534405677164529438267577809017095475055538442172114078840813154873683385148497285775856953669152661835302019289334194319454708200716795638103678387432267623499688181926282113144056561315928105020656412778868057129730563761245560855968052025229468367871126322845474220029231153642218559468811831442425238606328970085480672102953418777734882363922232365638170509247548472107068618266803594384100425550565081167060398719682310178001176936901452837088515345016487216160678383312813186634978062213115451848544835484688740583644427541911623505691585633584283338790443705278447986299469643059904350226646764769437715653972670805052320624340344190867980962677167373692266348585603021279535599512446756057519299891358660612743274310503748159702974193512539422419028342706628458837729064355643854985909671116082455037445987676241184007344720844022928766307270122078633540763471574773022770952306235256623674211201549836735917273451214477616149679348293539333470337930182433403528600313202476263994419111529021971950900697772557286640027086350130196901323977174072071702856522476192323075395343179139003158565108387619175904053627471461182803114387267434560684708933081816953654129962474764593160296501382850036574314730191601051779098307392071392057835047188151951617018878656897531165861324514989709396097984409298689986707226653332757331692006485880438203011223118079174433864039670756784255422088924650671274282037380027336866093461024701347896054539514277900796518191592045025171254791158215880362125895660156116030013681767934573396595523328930001400367519971739677421218013196199142717483161660058259198001104283817675969007046480830806499942816662750043370363785610803691732277099459140272551348357539722870203517489682175534901944967991954556444594048249652602380412165800954031113088538856496207178273705774270725583259845848859423298077944246250444540073788916540356695047831363498793802186657488285418824566920680620274228878774707923557659708648902437130020268648601716315459877438531277619412339332811547957259156775048162714634855839208202005578315556986446344790105676452224161989928602808701549263970261306145756767812444144944645340058509804946667623237403403979608166210852851834200566083211926162385757371777573019379420272136784655624703907349681514055671546315470849305232309979550132303724498163981059652884790280654544914356104338312077296205259619115173468454875673266529129192410289406617152886663705693100126663745729929249910658530599150754055580550436118932683468588862125088500325437611219275869018172239354246646635257280378794153600180758629068772234314994494062649262801345814134238417750882367383281820528830779639704748058050167246429029475188914971392051994794471363314188682722991979464413869588536526125631216703044960675763295738121702169748173359942988580478059370994806817485088095780509041721061485984040089891690640903668197550459835001417866964528452781780868816040774624755675168830837655795350092798010049856663035944783528278736241892093085395563331401563233466380081575242127483506986642594251296362491144452592409486630413590539991843886587686469604904549132202174317423109737918658905989424413531349477659907457467493963779672548194763384747564276539653247908113338139393784557989532726255786974541245424960626260423448193917865976711050420923318487213871484484800744558924797957909301391695615654688677556377279202222108344103114379211004997170139413715320908358172986445500344479329983882802049736003792644187561630840276965926570109120258609938144618722025281911675603994007098467856514747541478906405033190639190858252989495510018505859241155250971883271924772192385432577433195254392432186513777438877003695780133077488513120557462704910302389472583627544971850573429388457751225411232910886798839824124344065611654974263617422979272518602873724195579764044486008291638772332994273301720773225745227872119876156063843718968444110508169192479323230959276593512661199884617485474122244068781018700405518755944717498008992304132542604645626867655692314681391023836605161346974156046346111128882205232557164938414738123560262708820471576906516512714714728778030483011576892184722224823813241538802263080950456451268019272280230494576283632586296779349024947210204319271976059056533937310023377886345355016298798167553944547260284564539550505969193400612704823784073573731028407066847601213687002033721319461081220874414712916088360570097000061178973466108259297970906239883521603899644888932017048542508359690393161792332949297998237944238127309664181909646284481378175504117010303272369034462499373043846481796207691509657759058472650056067101046752463156111588869645925100569334187906387703810580345525732340019492010748276704532220942443713894264864169334224167736157149175340772172372014623570901662254382555391780142115042059429625192364210338462578142602330224660750029947683784720635994737608112630800832189371186791984069092055917593100298687354491512465223964916724810290125497826456011026261312055056106644799126962989350318202377656306360523714357643455295960212530733112837090328905414561289024306951784562757819603772750668567035375629671771713202285855115017072506037946751162537059253815183223327134430378651068660080360286725985669754810733884025695602767699266061374932586450515093745094689616833927129873208773374360042692942040362622814580808471549688463547404892637743329889341537106700062840718413359266438385253252477076793819651711105976611223210351973933150424338076239501221391978033335721443382253065102571713540238373159992408497381069803537257389203824801199005763772328574114051071176309729329859343494403811919179516729816706866812748494874889545614649646300233058430696869072022522217097815638277853627547286601361530404530351668669736532562188437143838953319413984948782379531176539798233500620207086295166274071574042324297679698214504554872105626306890895411024351598406256411629434737340802244884040000555400183548179277696713139975485751700313998400455645930623360350973557596477380711250970066327674890156176689458946724370097201330765295922401856418839475883554873855544432962014179657447319558356359797568809148918325533239533145546238429402741322763582961079945786041353721552220593234964131649794349769168171394567139298447667299026838919680207518743932101341392986182954803451804189916735704442879226783315881111891875368252932530489515473603891505002362022727712705039888470298595757572400971558271356134422012185493204295576115596662257919127923085227735929764998434192395068649521823005423661383575947565784116309048464256816272271018519637788105187613416027053891195838095586622064212266739894088774733146894088051436247851951443931010522139595752593926333334271297633023169058808755759846314272001985591208775328948943404553983553443704766945345434828424613581830188178389386222721958920380588705530925619870006995702750711925778524925382718993658755450984034227430026464074973460214455939157179044641726666311611601317042403141186432086213269281296871208986519981546834700545287393071149137747731820782029220392336352124478470988575326056356327855940261529943790571116677897172643195279654574767200595477657250991115508788417246476010460805255881722029642544197751487256705128966974371177648945988455596615831134050435129437328804371244703101973222980071906650789211784161346794775461804830157271536019361546194254843742328502617722123325341008796714215142757805822019727359756179733449119923867497327754357808555058630263341099836737725175181779793396772408515456368212121525781353309244441746601734373594396735014460034585742884632713241954019066475914311177922760329288730721672676595291113450871049436392714918801575685605198113790299418983514139652393991820991967470751966045466157412093438678807529055763184878913909731888748659833628316975646177753093281063619983451086505526369855287827209119117141671036533227598427887313298076694938769624899418662104178412316682150555292937612023857091527646187498558315527783051898200482442599218779095687300065720536017081280770867711307505656675048164566533838973610050219789981930019704997799227804781705391354953204213630618253648771974228727258267847995140230257497291296633534056486796496858255249933842552785644131700921877496170428631178658013765518138356542738366379766189295032841792431989705276206499910083902828682007855204839421580012948747989789809956215254732396960026480594235186646976314560189852957580912512052068566519229544661343132641019875781798868188722400853053680752109344939594090422474574038498770077190305225059803872650356800419999217610390991178234117812225044213537010889943615086156808348058432199395717318608263272670988807840965572617019174203588095302119749716745059419209967772787202755409085634468006568589069629331538330053750922715600335382779080047395948174174995559855511201701251060182845320100079677174485999656301786865624550553547868670540435646863571835018389061287092345792088112198211245265101256950138194418015463539360832964619468851337188464443299195053866475918570043381232721059551965528146951663005330201530379869175047831536037863588201990946854133944336042100588082544483842789429344369554916038749545683555068044879922327748806828291652753692395050225361431215561104815186207788407107475913755135377929375707777866004047064636891041819433578638391357777932416537173066783123699377141542688724230027270219576947179248955963805366576803864493743043133771194681851535160695094353818699601556079373809482371621221132752288330012372468168764215360635164111130734067845504527495156865823233062308788725504531208097353642008252973036827300764626008962416114424033609355673588266280037278516589197429966920204075498397283820064340282179353665175918548101240634438660798762082191469958299129017608543387862557388334787514008681008329546052640989327103025773326508661581332852968498883105894658041477471443344091469463020366287013650065491220740932803717879047489473774375914984211944121250323226422300227848710169035459246269757123573254760357035893548771640260494490840323175314991463644136947173678718796891154252809528014917680040842565310326483316237142482459456173182994755194199051510303918658259934238800141661641382283444426076190217181898766297987887527446415818150310717478734771527158261095647159310094384189634536051657441464697511376886406664495163451067030711218236358338951185851865130224509580543968937716443707649340517775341162434934786064055060244010881897937064925918154973891787436214157025173185401069262480242717105774225821221369080291384133147230806922512825437126581471875732173425530642625928015828828142239257747399249544060851600517283293624412194689313981533466847675974199151324843593648364263597258804566858532859551531455138947545595435714331696122016095775675900676169165753223592745084709407083655564262708163199853681016237232813742918170569105725352536831802375839206983334246669201041459373216357617209089929201335903155185852130848473712353527607631832094604619486113871742338944016225266358996399049478392585559659802264831263020357169174048692419684143223069548810426921739754752194410062996909487001431406252369124740889541378880353281602051220681470472892125036526633899262016613797601147828101160037864163081641618365519181292397971011413227199137100255744382458026672039087349805393987124256553884331930730051961854152869867972399386209588146522934405577537164228370727308868313266088643553095300465851501255968763632475122580866714660857830345636888796311127915811395041848628027650586992414118393162937530247657869592593647468871774177941966367164604170286938445288305671934219226292414217576822019775502841921786607997981256149534273530498890784443696923095565494706148223532813763826728609293176791082096024648081728575263765954360274813280143365529414045455599767584797675762288969800274216639289669506536310286199034874414528322805002968469897073073298729974935486870104853713943492634383219054940226329620332992719762493886814973352183835550577890235151205899121686718014071167732819175022147563502396866688331070614802565483286202994581987944570832746227820386723543105249892181927352630428917804896618175802768379145899419329539296737845105699619603399772664738507602216538460796359119427528662657835609984755945545785157604710096717448212207647388280273484805528204772916567164675025670239124499118324120727750571456973002921954368410199977159271300113149150629742995058811377858471732810271570369175134204701374192022816533498988470297228180673292099266592758097632474037512304413600635400393490382071002404325595458785834581646633904417273153498992391725292984947471106175802881837302419153276170510086911394402223749065796364377872557747491981672253250833423676518866308235469494483949521508659339241119247106882637489989283694502816422134009265353996684830810022585357019322283811551588314718823897387705005817791750226075002040062085873208847810379145302385732973182633518495648630256184748543103045296758416499055876999038996770436946994110133587336483885318301077897513156930048950764948832661594313701795123315303731699727627482739397343462115425070821954077033716206056539089352229832692305658133179967669018478964171185225892405080450269881588820982953668803275493461278552911696011896846003191163091795880129054663958913861317207313556028724780224702982288656073407272770947269811291626803949358588709561242585217574982137126578927036273482230178555093897988883304554721101284126900619992954211508190048266848947833780449628946054243429889261605045555109364378780949058317418622461895447661709050895926970695203580797858417812662096457616024497508653471814424553566493559831854294434499821295995127468024183138608964355977734612979912444634702126182506869118097254752228589904003272425347026833983969835161327117501931988924951135985539666612020507290919333929742219684706547057135254451354769253234219001413247070577265502781646756953873821765486064015013140881607586021414058168696893285603221048033138024762082974420639657343894546653852015684404721201016537337159354063569775065330538145028771317429076373468129048411572294776627378118648605294284801299079104944110306758893226106611916749844075158887029903172948183476321687965495140407452240980163024511521228299478689702418855775299887316138906194729016523409691558040646754699941528585732213288809877450788735274146718286229691375777505388323799216903151276242499462568272676665716988495423570782827089153891814747476209694468321098215648033286066539903299271181127980413596541146774541873017187044121671389757000631156179586571784971775060073920847680629864716030526864378407426210356123361833248948956359042913790129888589245295366968952220821349323861770291507715539904649192556444137552346499143539711242268126370736869599589115962028924552642182992032006726045727124032558462228496284042096161778145587557768923804288808977954028104075022469709167892309305584096050096905390169028830272291496342668415350087495953489262637216015011312055174126854070680450031615709060228065621561199834623168862090765425063649956784365174956571158557980969725621760803821519757454832920534491925437865577426051029511196441360185951923097599307164313111108662091167290413821737084636100113092037482294942955466206576240349276004834815129070463581282828496919177067667314367620724318345698355455532846118693652850930544246466990367280163574442036611670574176313408218396073788242643410600822207728328317981225473517292974440680597254143309269871830337910486559127632916393275045110161823803798991201994381054679881132868110410376507075718900398159891510171189934702313138327149519886922653017355218630262677112320697195607037592754266248680418654394477761111805605904442827012069093394465559788651791750862445459553281052319722403300695302084844649330436513889194273716007460412869039610571625489128162460059119673950643600742055447416690980116608759344909712412454329506837311801059629374132197278599214264937442487389562074408368393024756795700578715435300653028104560225385401496827260732619152604002180681568160570182173350224390793918304513450590830012031769500969494929581714590007864887309772613260135483648838888997977544486195994955257222174764230885330112105974968782634878190704094236233312330179208219834023504654355227916321480369992959222419726363164859132106444134564567764076112578078955028060384892100279745661607392976387339701356098802073728593332387592528970839520033712756128466191787377136289300748916269554415127913650262547682868259744967536035312307759684123960116245215675180153436962468049159806858192245399764728468744899432686718721750881065304720179767699208706560509055451501291513594279933123532391676077695503285524666501935010296735596720970993482210986810669864046132170037895360270883507735200909589298600659997398384256858260574883895979415321756203554363279152449506660766262313354963109771660479795714296474552044046505201535825048415333070178531303339523730207067162891633803343429332489137761016880269935242895260323577764908746436019593300531539362020848381630690899923397402852610289091155427200057358848865974635140761203756079060367922925438144411254812956992787757507084911539490229680302228890384105254590792940601666401804214061457403909621272243699153932623102243580362990365878445044655151666186147029841761731200003437635472694448846184580620923466718405960899123315311330770888647739261683619234322959629739350932675680072215839668747880709380040268231360792699436864775145949860571413461880085774145850563409847558330342593213053352146465798499424649631470540312593560584029815157762318312845554970050587590610912783578614484082713828002913186963378488446279194827618720968649705584336682190671174892720939494444675930076114353068339944089926538462304543913230598338430272545850673495604270931319648963083388081545803151306608507484079172618230640408071438949315078315885247909680849062516599750925731443885467282501619334497813728306909875946081535234745799452642780398432554896088847095590357703316655028097574746856010971542852643563221640297536699009965942501799163833107753756135036057790855897272347147622111608249003291346546985753262250761139403031429523958308155569267574181315063732794788199219745078560934095654926918356856508865223729061590173431691156249732939178934221959718338851519674186822173706968663685873757513024671387282480454482757136528616698447997774111608982532395653444494568694412049922338992104272328154562069138403483509748125735658989249549446129508972629081096421905650764367751553076511127101112461870691611243114191413642547692030550785406449471814972791475518476675679088013191907632442406793529535565306865230226827268328438533335375894182894754146450846812138094877366246599994703403649203525309863507359294883220255552493447920997555717850609945312978668891049243663209802443086182307094383199190188524472041668450790316374470454503359221235177569504330393399213640074436259012627033158334524260056250628368968132224321924457951945115798924782100279845279747923518123183800895720551716143527388170456650574036470047798163839449078934542610151596190012445568283778516529163798946283957813154659372774173056429400057862675549000712475368186894304546331635090209405642267643911390484944395971125200881154279276825648592341752729429513442183016680140059878620553332628077090873421468810200712005487273297032010969683629280519885530768014685075323822983237309266476224323286799874244217335237327220392010104723630104891804143726484856776890228845304857681751139363551412185600100896232795065700886955513230393931012230720059776899847166860605392701690414543228124618401163516060771757779011419084236376325868445047234980391225136505003950209430321113095087551420820790435299255386827777620788842055540395800204249545356487621343747485715549768319651868297601567730754381960686298271199150667109182211029767879180372999763098868104235548553363678708740812627408473169813183714418168704507602858520868573942441816311109307967599261458053223657142686935656591661042793913579447145192561934826137829816635498850490023268908443607335118430658366956540268354546854117136990398254509441568592141409348426628128734646283580379063390046890107198568052352539610243764394572205756858852565534062972491615845883480997387855028343771644071940248442154223457224534647005050041959692362669914554430773432161198134052236333117748704307252347473552453356304258686834498770305614751579853303345407196173275245757641388185002674920440645572729056948407092697917169956130597881499389269503276334437702443210083446524912409345186947850125900363636836093938999384627446333972247990242698716599614153838133998238581183419856698135554792462874034339435930244065102134059950938027313434802157881429298804041462228891366168135122912964765228411151885737034644832226569258578818252133738233113838306041081732429745529545966242085419070308179020793167920550831611504549296616312420406772119978430123598209732170823975797517355785371867748027507509406033219239471947036961595419979352067583855714797559043262394980243577710801456494338498954090159536322821856507919413839953258307618897060716556046148751106673883478512971331438548939860990361956016376505112550780013872509532800884991700473254481895742280488134636102435087793626248878808831121479592899143529119603204318553209509825638130149376336206999129602319303146358087235860811263207247436353210574765339699857617386878527359847623046583420119666241763900264569975917363390409852710287137015768538238956740937960830519281801957078271841875173544597752038992013159701027148889630195545250964869080446626668419335848619003499269699027097580761857580782178048968391992717864611540471087030309060383620002883593658465647224505114184164010105989673227398800880592181144938003526334627270916759579682461890917450677334130996793170170803588400814086165943044134352619931953345634678394778374363334083819589348088871410769495015319723945795330122299856226346544667330503094121493317479990817362969624422324675157341196895081283103496526456130144887606524592799180062268941765120592336207017781014198019001978262532255429574298196292387340739911436133711870354597190270962989009362200494021934225797385450583067050678878836969971880805472473194235735561961130698413715219488979142058734886557514198242914548794548165329573336142750082104056665409969803342263343698089277374424291214830989203444396461836549905013532750468071456183853012546156521896681294878274117909400739529594528738101938766890665020602895874892350178085610580191039596377729457457594420654704009363104415960678014459294499264332751662715081762123404973530629662865252558477290938433622485930956609594180821062634754593468578859597773207657507543320675856753957836187988367748223258414168736523986995013034514985146906489611825441879713180453712696322636195409942605285624366451839877899314735250833504527097758412759582980826613061078023373030305642606855382467296604864204139952138280421394344958942566360790504319978245566079810240472381588729800985880766347671816331790846048230668596149660956833202233454906438287560415576466160945120627438479830753384344233884996027285537360429387094963128260202765055862423472214457557099228922591752692592953828483110431278408239950844672923843944446307688525039686080825048188331603759827455474591910026850801037434563165771615769166058476838783093720308306544861533138823580934939821461787260384695262036547794213546034099807951489165606179844038435273114532028395161420493085668296186610426408270681428486542593829858538503995331536952536428041418586242011767872683570794050034010599576770321168958273763203967204091826400254596794102492048232784195456174799714196674775944705317453554384217518367377159395820936569127327596931414412348395617823265668804931521783500927675656301857242060271719219349937093393511509667492532829049974884050029254069845780271737881634212142258995832550568042383560252545482878805766170113938671513908219862411623464970295800171063929346332068030033976797195951144903885009306077662613652544866446435468499009032288423437553141272973897924072060062343064739572493074024909104095469259886423541070466873476411559423527120715650780553896205787108174794734961047730547250075359125353273107375594875170715302074886906317013817461855610719182914279431597145776416394436373046941919115384615573876844313056446705929733491428284528900139301551739947709670146710683200607226561236861619569817260780606293034184884343793999416220154188932254336106918486230875548844002023248075526002071409095167911103287635166289575923327147630003196802757511789234967028597671907084201359700788679113944076483817158730229854970084099480550607445311581863441531644407412771438762568285855585400400020508615596521154172949142551738540322806083003541645523945216977216211191560746210270489765345829381878468432255106249624122799605870820865176063911228692544506808978236857456104104662367344032590079183946076674617280562578999097377640572837405316155311906927878869312086330849949051250096759593620917954548091338868026989147579689281731402777468138057984286076912809692008147398028292129329374582324671071183213442670114903088120211547461732865120020860110833614732626356551007071782436878369615729647604088308326999011037698284815535797689697410271711264778834413076643963794839202629527788961387906147934894721559564272962733383163537883474467141620827856560330055768760687820063163749038933374442507297941167792383258761459972116315962672196831001396489527792040919366983893683185639615187588135564282252719418381519179287309911017324465149341342732949399551818241668825514758444760037950431353815061351167879008936903392282704209757132762463665981732154810793129599907575948128493835447670799034046137705983241836050997848595876915290637939888242350082735563324535310928194302951879701435255862758625684555963210881888979582928592674704683322208721836910280265600767491957564073956046701841105774586502776372139308164190439400578059103161501916774019172531552813374965493238450831037549061723346625202442285652968511445893969979462517387421975338122868060806096912646216857860018377903531108178451371836421376578745411132425563232074809154308819542637469844460176551617151980399215788580184765382541638623867729949434882779699240012632837267168335252909611245829153546382706392933534457873990859312867484627146011105486234826466753521634479844213865268968441767528419980602794307575406646390020853369677027064733973336180874684572584293261916825659877912255440514125620462061015660389464578717940970831622792749655603230839954249465389805977486571545483674873264218160159051154193423107666021749428653464547611642151418051737280041613355735334947155173830691999917820199199960277746738904080096206465379997133214681445736267670938081840436569684940488270896144225646157185167481171915645121555300278441108662043636201328550659193697109184241291609705179516175061382136237723462096644327614020787196826830657777322882548017490694622738598546768998134280693467310823426588791147881933075161879179224489967635570501537446618635398607513676353161917580497382191847011208809819638832833240042448717107842161451316316969166317101072701275871814450125188439710507719882653003765701874396460136186139084359975591083395037160412968323722740677382826170430802279277845472839594900615997205255086919273527582868680068743290330083958766332847266286677891544872952687427147977545861776571190854609756813946564500944906319730500740001971724564886935697811772585516431968726879996166976426311165501776006516478535297835741129927399913695823629650961488195411029099089105965877240821506965100602166587821570076840151638467511079796494750391347199043146769344288374598800385670120435964852120912429619072613635834049242491013650182819329434302122756404331658280815920579251237445355244915535925261548363504028122774397680769652050589746079687529581744492843218659748730103572063509251281588092178971837826850902485768627607178504859137265222554743698015882726172323507484909151539839228204448999274319629696567173001814415327299050470350914727171332026571693722189467959999307170192556262592021801727644910671051239729070621075618133151890401427973852446165136806704156624563323403065058666403125883007910254851427859612750638174958204566656120019037711433134890227065763075425705174935465963344863509602407200620084135815824821914013638032829620316555127718983586102496041163311956316185941348797135574651206860649599495474033340166475661935714290488215482193806771184759714027474572930159570875892611976919001154042448065092161883122894277291133756767194045728837296647426192111896110854390873734186010747005082175376414804391712890350663226769705534493517177351859077942646104395146391252360818559102840712983499002701193941752241119955813382974737797376079771452996945769741978714350600950394856014841033580201851926257187080098619103086965325985720656655179107253362493172097970484519609714835278564183147672185752144300344871066657046776828038101186107948531536570545759288602180392879860114103190819430687683704920922692365898295687450859501293730899547373853585867516801397280169315315340555433874740706637432180720622144918768024782022255721053186761879440369078627016707471547117751044633147047896997143983591895744891192837163750582384112888560703619301236878139206002629490347668595557459021440288234290985292260757697473828437184625348540544588794989036665684523555464822697568032911701131777386194411323952111876718391105105294350000662062467754003745131688554543220353650004768589269618444455977939491110299159323077782671047743359903286677164690231763062551429865736842164202680560996298412601889274653694888089239732909316440690880385711156258709606436669562385861858538525811698266146330023572811616000035268377977971285521194251117680840351928497907272044547665313256350185360175426892416978751116106376847703670379726024426218324647763753722771686351636242303657903087215081343680847219794825755005226310155236230067085410424071909152651046795125852376378970041096578476769401955202218839500809494712413679679289385257198278592584552754006229172414291722328186592195962898040014970139783502733560643717236064330387639847352985651158544833023682855922993147531837702289595986933176159218745670227460278458744400203483226061503031871718258373401092779356516469644872652633540937216064659121834779340340070558660778810860916274885998609340778693161272933621164035631859999353247895683374545009108787297988901403502399753032034301837728782500321770280494656707832174324728819502924081850308006564744088617146919654942326157054900835584532738719433380966972352057206631887624119885444298786581702374422980339149283850156763219298753493616598546542446797237266864173207514959817259726151245861437636501254894788121832385981569688422708968132685363776216619293348703700643390891746895887991890369388245857506547085436120271049909869864141160831793689199747891585964321159818455329824329300052713471158726204978513065667832602813608108004574950696360109440914261501725172683163086032010558449974082179203884543496496716270964830332979244048128370379711988756144610998081863317638821874293460916607026879814524292716294066401389664487691701143955657809036623399333535217375054563468400826617722072843259443575878913600838932267533872800894115980265508475992201912851505322287395887387920615903352368690385110764424212365409532037728119388276740207132329018595658088543114044298201141610677790941934392103173689740832712352577239138787055324003757872425335676542516494866269942621798515513207270612511002224028197132203323073378386897429567131595010827766440401787382331139408569390716011289907733598711084919351426145560355343311801674210770904587234822381619581378945604730076425276249707561164886919404260353956065122942097869486755004381874736580275738648447340286184578154677036922596198629944335319430284433101095806848663031765086726526925891729010094335553891881802824299024085371113845574122018573778171765611085409467947525298309195245864475893625113425907490149078041943493513116757832039162188424327025401155821471311498351530321893986297070258493679018248702561922825222559046372036855871718459696411362525983600102142181966145522955869540349313979112982830308501745948494047072036027537786417053748432965341889072252084078586236956581390688565036041329442228206491997886136944028308376780369069910458344729151716609575249418213223565656415557516149739927406589978987818170008284029661591262040654020641008666356434864193722866393678391381733178206928764592307299384979780701209387669607897869513111801810412839984466694782495312253706763507867393735059578827281799330760211676837417374975549757196616274232972929521700454665077700774334086821884920982815339590739708721812432447867955552151019945939252510221742741010455764568783131256188486756894272223173523982349648460013349506548137818595339694248188658074325714617241604728019250206502386888202986644947682518124067588553232231417327787632149569901074009174407703235310086520266017097774362749242200789829553980942793809412215128395389903959697813572326151777736608674675388498470304483722928054154373162671826658485390783184315569487366215558792778084625501906050802299967790347227901558186612245892844001440490487768798513883331738808242129414963912994916300656297749772288710608660965300744621012644061116445102954022763009454929538052085767285766919636772797173530241428413945141745379203254881959042999143776142660987223522611043843273718241983321079645892998687927909378216146633709248709810867830457491593112313915555008183566280478288279410420334424179071383269859672746931874750447733969766721207320107417181952512622294018035439372740952789927023148655946263313935708224175296064814846647820190143430283506954753269898103583758600652804351651803039389751487503160349604293774098374208050360126586560946035397652159959001405410041090210255512092183424807351329316362298468898126063991901550203046585171086944155016193584221134110487370163775059700199310112672178073611466412043036854502872687414730116167024334197783279528096154279398758793974662877195845584182084775126526198636950932960127967434547222073735559611979311471543389566298523258236015358529275423262734265432424564051133516063256210208595136459258299530857554698338107095443285677272593087607089328770004356558825701549826194665801779348024152548863437578118171477241585889319931886988031615472108056832975660928082442194309872445282721268843775464443115425195476691403323945566321406758784017996270447879327934407825594572066492092427354995369312026024089027499219992135474123800842100986785423911205899893116395768006635907706441737902671322725795718753869912321903324138464367753107030349849732887268665615859739838228463728647994595473416082081742318228219173031369271252396817793338558275908370256872257783433722901154826890221303787579285168504192842540798390025447809573913200048162464813475836909903999806810559467379169525927831449327190136561219956764796256866936812272090783538328144898071490358550640958741707464432180753800473822413633827050481101057185241416062903131217650606227391415792830620611478767396320586986451562462621496013963679273615615998651271350390365791175798436162600583200862131106088073880855533363686623642747825142643862568669960410510601678342674969837265764741743342074589995433903005652923444103044424710097239367853273222389504436258976680894140805028087618015251947191704431456346257590146680127151443080900978813803704879982931728390832689692324129987246413752764829875002881661912461234968600993702920817929906047830240749662874339590008567914175382781897720721611561966433663813688276051880727090985039715546657923380839654562034256057234903599186418807926395760476422150944870629952686176175218874333541361121560196072347775146202475091245475498437956926217349518555744655941271310503352675353219432044903080043567320447395352943901883621770532733810298766018295829200736210371716551384483291535813569101422074297975828477327245018124779037873838949171747820588260061731667166349779212331889039657786001164837821122255321057113405444365341457779255029961396866305670868588424891835184600195315970519442611966064140339277290492538651775768989813783425326321490523608227898036220199036671951926229486662690619719468777876286833755934570595050829906949545333549369579465151565249769674430045278867686482981747875292554224978471467498351009679754959410512179603047226985530389055955058206320509020374956492859863656510845117900697295121118655813226888506398638788647684528116505035366421013226835060804745333132332646567864054638964970970895668096815129503184096611330530327722488980471445138288259877274858724846831099260273446123992325270918537685391438843060375152153835858388520194525177363918292399912034513044349599828797440922620021892210277492001719441393638518322706546061178365502783472124445218350201073116630541115934687282355228049763230229927522381836682903054752884602772984816074566074183532886054561211240881533183044792945480937994946910962169201151330743575771667241562867068104132478970580665673353441567985371996065578489640351401847357255555184596529890497438037809913699655030109185548866706527231587287737440902391403851230843215189419977461064644955458067154266944401496259100138599292519121586037641336458548665275390363670053227520090629612533069181496299969246859594237305182394822380101396442510983894332639371776698657536944972956922892220746707041464464093323177661108000007375050771780823544302444748347039294826007921540780521732983723158745666573231720902021951256755634901786519550200865014398337626429780547814653084094978227211281680827864340317780350696128542288572568477388368369427990922938568585051937902814473988775355930587944925567347549809587975128304632803980903970515378400505818532699763931539217986133650994814270475312316686296398643598186321300591809678018900913397472533625617111622282058405908458427242232833857381725563016041303847683323313576935516416976364046859440060815766369206290624434406457288824892891024980533479687084709398969467672075049961426780070859047492495802587764167810130263799740291099226490602485512168723997803051681823611419574821918323127847132071473608777360947990773745672775000794013361155535758328799660351822433795851687919250959681335539271277855747138728291639584222803230993546774885649907793117434417036313275742583813917825678864185414437871429064896334678386107878349010460409224041421965354060179024368459595035855531071532294918037238283854282082816168638509096989718578108652781233691489387888167998241812323204602749407406481420708373939507983902346571495547723885361511754766166145874123740516547270791306986874363518493570023542066634113649677221661112202789328235547252204788671505859329770158833738181961279858406791759567596705319631339236467005612665291230168880278514397450122588587962355065106467144097095314440399615698628812520191609805108255328910972575868467664579830380268251671879609010210115510499887416668988160126888020277144773329760749443654123559907116593368096263676089486404976250127500293980995270723837154847403656532789830636053388984988483452994216610056756209209172555202312664575787680521978775431567380163783091402084824179924453559042058612165485287250673151992054787231856504860515965239123872256627877847157485447730588763980558126536343373419015032959232366698485879631500997911917241229112791311912564959457141337550136463655166302089655422846169491256577778091766237032735977776119323462596603940340825952062950768043589560602905544150320302369938946033565634553924412033738031472646370636946910783788673446121267663052694504692672558984046844497687113373533073603370775808168358447527332566353681631044168997182532577766280633604867721442479081149608633664407774479850435385346361551634318906850349463216550476542738094687995131448971898186516755095791197495797602704444824730394047077324354782107929732018222264379964218471721661143031332571261403003461651831158452586711387483022686289592196344437255443820829424577414417551822432575024798347283922651782640171999938587494316314131612572110058295579158714055508644213505872929249027385659391290242077944885084635211226778234023550849414820284976345528140964105700601093965871409930930930033342140257068302611477979581207734535941546209341734821824671912443579050825749311928679487369463963529796528701926897510133608996272096027070216211149851285707205178777801543764785168344584168981815236084666925487301830366117497447271726065476926375736726251744216368334388223221327335104734840951469644658375963622493842821805818590746402373614051124980865033058971010192054300516869786179296409251914330687131805600762732296960676466988169018937303107389214593980827008762982730220068443925097880374566984679875569418687924760432476391342138054149228243569640249588416670758936046288404520983255056599776554697972273700312019009406291498749916073626854446282126599006017035385985120584132124510176079317546116000354463395702385590751461535930241861801174897456309395120208230490080663452971350342324462525905283364014519016969794254832524564959926795925272983201710950258181436835916134087536188841355784144920742569399262080634758817129309944479461654135349714576834242906672609519361154218429741872303148617425465256293773062855678707423163247353005558222467702179162443617823909890153653965720122865257732431773304672117150521925143201953612894923420507570507607983972371057395536631635972420383177560783343853752835445745140620476715101339831678177353816674904595876712796384330403208640075165065982910499276977387575273069750762493672001463655029388544664615156673505828686947388758601379547612914261290276370072386019944058580705288250824591856708963805482687479300960695408544804253339210027776883588748579098265968511845232577887503648255827127762224748483956825959939600188639990867515813244850531282183952274983659185660561058342026318865464068596527778043886865214057139126342550756490130055914100516837731668696280989515997122490033195297323243974856439844767351815253558072230413515085927445866163880157325185075347450896107213874940585967276032744537358906682311594417832718525219037657621072015314974039368765968878182660869541619186350310716703283386641782512285532222329778669453296363844870445817496405139187186007515825877890765918878845772871828228665032112716240841822491592699793955143603016357018097107878707306785395264838946147916109304064288719629051343297781765911558573427618458322583565831672689710864723884552654649846290322499676826269850216574855099679829626756192136199228217622092010504137564539717028664387828942390260603836571601565291846892936429700037415229340551543598027416806403672471291213354168002356013237946359923396496960995549534424453245045355858776489983602421849406776977782143262346404329966538759956268286749600149884520281879649495863244104998330764068282648518636315880636535858423271963823100241335157308904941991372106595150570067164232352256651597226819962742167012178652527552467101619888983588178300552971997908175789790536702787965113774028634034789783457002337331335234843989236036013580483817338905660145468357743796246472868050037614923653187955521591099270485913094786171951563828487943506791591983366761910519983826700286659211609136718927287221720486617763924849106595885450581079182717060433794026651285605248039064928762816495243238020815856681927701547528344438243863208133027526817674743342328406758480362684147547548897210264214681581576823865908717934640174725584632406823212130068902979051024618474922718972694259716134829953708322173095628779344841430277053928895382002722124274243868174946253678725884322503559074394722054511255094860331610519555680856672751846587178359848485980341192262258483071607255785472647191955084654126393507319945744963091814736595837813169340745984807013560608782270643978223776473969763400669596555636625872599577437815521195572066047059883648429914031442885741846172716896330784575918471957832327276240624453282696617846987692703026378264415718606681084457789638516782496714588176934336709715082302622354922350894486997669137591375760470221949240178712217661433130737940554653537036142137377225655794399429113229730864068362752191639216692264665891483200403039397144941041302820738754472744749622457572765921546025678384350553500614254298423421579618935892011562472139819717744547837833947409336947334825444722611951186267168172304803378931923310792135645662863562341080329934610585624931370757163382484029918903463882496996580871523843485203870093744340053439811505658621804482504202811200622929094772452968729303765237561710221376565757376221007446568115527548615226863505943869326179494384272867027600279624965236005617095540511517527690676963538956871803289416898204449746583798769041670359165666832190407908504882247869468281873762652853334278183921807285797401554055319373573811579980486253916497886049830534317848431926351781300218635037726550159171935432010853219478978319831868824653894662833495751436254418082393766262112100144117858834329143603649587705673874210838799174933469455772633158794056494836576498760115962132237529727428368419291919029692053881398926869431870934836804583537323261162242113410371207779073324636192093825883548853246545693731093181324094590916532796003038502130823500606545197364761746510298044178230466568232712842752969137985688036567549044993685655026971802448040153385920487455311209922936324306851261158022593257661373171068483807303679429145891279588681554038800855784165279787464818516189087969138530785555121335934459738227135328100806408140751654485123817155066911584622185343964820598730358714378445546578676651193793122573402025094569443853489519421870557853849150155286300926899749510283454303212978369393571892229206545956197411809905613731785004095028831471522688467650354778793528836193371825650790690854385307896966504818242666218348060519188654256218723311618837490006537494617506054910949682358822860554333298546657563450422720563410514707861137707441053546717388099005134085604506606799981722207998454654808445868921068822570759725232372065828307199681304322745327282954885216123315528820756539676559373480114820262280620360629187076885182027688556173984549306442141135355947610017786157311422467694316153254627855583502544520576600723290668495164532306459008438262763763897970335524205555925550033251979206991662924066744623419140976980388605915498272352779594479397989112372097415259732506559111778443318524994985518463547116994844747246781034331622918305077451518031647632653764038171660890647798496809178035513118167960541654879219472577634973936069670393583683954887829185533512870450490904160215871529631623288295832761506863212055546435544162220012399205610255250946156899550556218121717345349789560658835762914034435154840220447568427268411720877894062362949309843208371132331489516458843492490937511888715324401698839178457417955423288481126762627151750964063490204270315200900857947655391201981103392616049821800368637450165409122027367192611381179815133374530877407576630527540250183295582146670159859376113177920649383363916935142878328510514036395630482113757855014639005089592146926067617595417236713849644112023863027767579256998309132613701027765009257718452561720291103107556752968554031074024075721597703770769783398951772280218836580907005432544868290334549536973221711460182657648109914743363003935379475667717371520320096530655789246741053874268596242833215683606575695358070562586204509875373315581927126791859810675792703047155670812224454829720766377006024671818631172302062320109869309697410196118266902014672554565340539646900120838821309755140611103595560430992010764535969952514955759418261203743486911702751597019721965099596502485396292337918923663594788255193178658418400130303758311513830063974235568503348262903722329144920313083538512406438128545979380812064058220002670997128143010690104079896821514961385727738675370335077134390600192819111737883708514547875327524046065583162083792412684043860245416559342288567750774111036173862432519001551393575851474733758885306022854567786815664774960897436067253556828813922583790248486367417479568512446581632237326748216665285309599177093381039691885568278335689325551415375955465056092770795300187389736166608100079563933691683422121602521027789893345344884681907764297965634545533315235256558476853331548025504014016565338040730956924969227367360086502435155970341810002426370559262773164072944129914137544848503441377917380755148094320826970675136545784876991622316052595350983632874144635837417143278895857239254562605458758689632707767124218515380717749635975955634937271816256290495610133526535908934268278693805967247642616468658007412940133784282418453145273003486893712125351834362411047435547521935093539335342523891615401209377819526185575545629022283567166922572366749603223388392277793812375929387023307823118524696739940262149828886707788369359628817405300603368109242892687990233403304259435377123707174889659413045421102811305754047298560427209344402043265539392762986058963260062514589884662117474473417232130872422745052122305709197067616722170325439094546466292549322462658992182956201162259143397912017899650914184444876863507621284620650169622998710371754665679992330991823728925071173949532748785453325995769406716273713941884475228251685390794062450508338383736298334302120086218277540227164286025179609894666704124447107710378436371132092216060868271212017760892529459252840079446368243737260697200915041058331339793945399468095123839962826322934656776600233954035263469704305857102807171201780530660224949193609493532310176344140403559622974525371874179877671421177592901672415309260753640677706975280725916820474929387109817526924526799838845529808240424595657263137385665668429983429769525120612701648017143927534694058849458325133174573058709256939068181295045498072442916399295396456406584243153911942980258777790932396362475650987435790188376586045182953838659112380850393485688619496725377039860067010893541685337402517868067259534568890937158357715438205758080311505045918049285749046825043565393109782226126630143525341008120997558972781283629941182656231043235543519348125297692845485472959994353303435652060875577886556104526434534985492621244705511562997802620075952837182412714452251572576897641414516560833834210316022558458141476120258927060159710974968486144534875818283015056684633704250455706656540957406077337903592163240611373397588809426421250565314035677959736338268842522170718429362177268192842747539606439857556036476779739362953356359576939517029417327615875965207179147845713049858297697433970778567796887080436452731150490708678300151678227829808378406216107840053854136373031955740827746426696490755662938792473948989498482604782102513473009068017514341590291676354647851578798312890714805870892396013600021548937921189727199226047486286738964586859059054405872153918676353345774628444140829495236258374572365706549690880003954852039378979266909511640849064744787201867807026003160388590448743332120809126138804863618315298841075526861015506903423210364363946090236106450420963498125948811866054056598447225865721136633349435432355921231725409564275647510408095725820843249208833490146109750161121699566016748559366597362959869637316249825174097678259360219429780542016607696877101964854002683261832743389678234177694360388860967250618204554857896193415597744630348072792384733210720218117743746800797068710322172309255466441529075021305178379734271010146631094816467260478569810953087858767083293342771998378789018366472430580023293273937643036859639996636904710423186471922968309295204617875241150913894375472226995710572282079682391636084702436535295414867421047189375120929562260051605908334505037257973100072053280704703508779160563131370701226934491185159616674435002768991680917367231840128005991600540504817252814614615503073664414069678986065936782758675011360660426751165542879618252811780202069487521808264848069158523690781222730485092445873313211784251245816706793509759614561171097170445831950112964989181676947586763649752819438852080731551458348033961243065398273375173046518521598893526959781931795592460731845625466254098945542517555366026007046220408397584553523846208062809853912040330952927903059819471373969323317122522715337039618996036455884499689361316730413655934121220238041939903130838430719283000305900582334126185967683555627288804145566515652864643566574055688636090746780062743178564271421817424951887218643581902370694165863993908330499744116109115140460020881338518038592442487603047745983545745163471993985568245863021549550239787871593168357692177714142250250489993372291660425962983896682664217087677991246283079766587138329471870518425124854933223015307163271459818298948227011346392561066666803052709008297254737856509506501711226045106400082702088043261178348042353150159065639170774581624625584616557828280235856740752379195805780432463092093780083649446441400512585653048004330751811460585266545984658497161419622987010336158004955060859841154248521894278602746786960018491339128857395058297072938204589990504141502991659669655033668430693702422091108581848954921484713031935120239626360139923166881214675846233734793165003591146453357610917570282296700766557884113331395949866564727441071518449521623297813702739665052174355118135082356360998950725863984571564622544138303278447930748105728444149988372772107377333876697728747138309897007277299050535035706361879386669758007057994892860985032243550638285649561882472779271530173363293236334128907765065828041863680301621999823446447331639330712251935708149445788932148451389795543956564425897711059080298328731024778574020996246602547423137173866237217880507482299281146354728419053601433065300872651799480825301836024646919349309378274034629167845143563425836091472379019606406444420225248969827471784640782106390138434678089043467659328313868652923709633086713904282075131683679305746744626967040850111950789751831418871462796373868005838135961153066134863044013249263137449952722836428584639089680820791640788655197717466795803277860403570812770067515149554959548368437634655537891548681495249547017599807935389783180447039805050690127034677892895192592248064361972293872440896581829392672113524743760473868861755420219748957981648498305003176296225441813796055216783468614092597855000674701010153597822535546407899347199398978561087828661773733197325857385513418048400501913283000696189233709957795130129277329064222258971566971568883586541019011658351314793372784598811455297333759600772846787632003800083971880506249255388786881114458046953557127601104711161054287573222008594999277941629764140896227732933829891756425595353739518809541147999718624950769200311095938672716232883240142912069769547509985045314658004522452073083136725619861361643585555289078641275070069134467572762575210819549879915011677205404706155430865632991998496342154676524875656210150125826142625746817798798198399914768462979279839166630993890685153115648637161026130360083861875810978035433708862763107041282082716163316065865142405317942177044051456339106547741464973014536255533169673598581671568341048501374297128564284415612829376289450877444653276300775991125901862584530184606361483046895839135226447002019659216331208988354152230583073503581489370265558911423149978552424238479771172932422475960868287796255636893708192008858637532453356481383803716938771821714081004271146410022364676285106391361851099943249656461687498781910194704515789029323292813011398730587065279597742630643170350044571916545489887644496077205425626014356780016338373382556707332107158819087929577801801624277651505567237857735835713170568684547854128128525740637769159918671519421302959226622247526665856117418894406159698672858737634616828601991080561060639702131226526161220760975889639969103025878296610729807023249728250802252400209745069841634925568002464457113016801379481612700148313603854103321788960729423820307259561554432105964854368242096526752658916391262451046748861294167323462455774608712028161548172525108325585705999600586363428122089439462820724674199739854113868775945339036127214896526834148242655648432862234559057358719853717790661969812964285960535854404539366441810555623463467167750950239666509410481211958310838947909549305532817069867953348480336826298249247292346279560780187534111953644634360705925479793697102912806347467399273832507178535661696789814842823129096334812648024199286551393520497794414940341321051511981795014430320862054422107883927692398935071989925824565053300323360207726063113798048961677352553097767127631693688663484907469749013375507255929480035228619528874420700396445833696181491521710740946671692607222376852432456981428904362551040992607117870200342148240011801815990772631798061823823482734915480354433092394280008119736366799677982692629658378911927096644332677737697788964185073278769546681636690374650289576954916492237972164462317356590459855886647056229543286528766179841825719888825811712233412147807151380310202539408334155766721815281873438878962763817299525525493621202658769463192078783040613607291521983396565765830390840304430220652490233880830770331245001881934025545158404175981809637300610063187640818590319841572249932638932595818389133266647672915273244766892200824249175717209359664697667523795849599446381096591158103763471600897538475023243607447082588797632705377831142508111072239902596697470003410042469492442053668005006276950611184301770820693315811570706991239590898699433348517450494188704826842988046148890896690624224772794978585631564273182565147492770281753548585375953770264776015517889564462930275488239148085308336438422975816280130053212956038807788789545906916238906423122142632286030836368041615447539461508646627380770947052087599794110625082923977082281738920018213643773800559444351522294255944513585538559314882404855817490329586639884146104860149437102731114382968263523281306348474352714259685549689260475148149658858178336343425699621223497241976094098019421791308563604537572928348605782029463662891772929179350940352382102217861503539932406183868628827981397479408410142807271602787627248102665436876264971317351069410749692059047628079019316717175800126375721228696318799978787749746230409448947616696569691176057873862392311294300852890896179301808568301098669355526945703683927616668352933206402175084118992210398423518261018122850546401226524067407027195246537894679510593516042568050624877803564402739921896655476081522557461829782529742702705692680969479694096596997773855690891351044692981475811266076532460625056171738174248476496141143026548358721978943179273325305568825206246304530555106073279636173792943107848381922700165529237565869042508772285329792502842701334212402763062969336782308131366409116557202966730388732748122964492229435616205083868088043815369937225767776215286852417615724495057876213363486987339228864831803920379614170217419997810436598812690570110761899376987191545980010112573605438408512709540003907839291509391766488367449237547679914730233349624620656691347824810861435154920878809749645493804474960698191785239728633213795989115759137563456840110338459667806889143929400826986794080150815198523854823407423229039348097467089666173961225517652983992405475689456683091225364899487350791783063268272570962310294919034035810285469735054517971300638353339012553350471365075796338761624884054621291333277266895035808695351128520043960163407104419089081424767593393059743258835531033093511789931167331524056387689138703367296564281781661301612194743803805157296295784788632606255486702921380676101555693862645145413936211484499670700971985865703964502506263151091585047961674528192475097819110278749004821334898845355906240709327859836648408510956460506836042404030983273803106451414887174277617590146434700151607166479248107966752839878752566199431467305549584077211578479222831852162773591801842174137297746888568121459996893039393693010107995240824613172495042270277921028811014057462508337183080357705946392906257636489924343987750282398928286111673434558146135944742699317599676443294893466860816505771926732386767197928595731612630629967172981791478836045676138101120768384432333304449396254142831552937325568747530161259491144238344317631197134038300200371717414767826876446009483623362270577159973007759569096596144884231847709601995036776315106790999310876283592897858596453677042424548442577528585025982690749871308992377206054095688950590392534116966469096963607400583799576853510664917044600190201557913939082180570096080478810034046273245458994820726965755325536129503640586961237887153530031324676939156345739901082592179993204416567458008518884951285112308618174718524814872258217095978581449900260269081678743364417810962795503545910834106686830104065686753048024515977559271878607136435578679445586816101109804896495774166703990537168472724493133588863840068641386612176217373713310177899967651833045839929456726355900333604021801810240205360776340407300844190736898788652698632944171642023672302308919339750605073784894610830019246922123237077994969921685909010827022520413594027079627506854449020214132978009904304121564298380073800270989622541588347966188962133499783421451345657632993105496263707200740113771424982306141898932846565274339474063273451253333712571559794148537602445224671145618968351024431098984722573660814703785162058386930229744065430464593629677940009633696081499557866861194860752076253056812221925633330184550446899009097885159494800666413442255391833835803951952133984325975542953700499676735793021154039483000444554633750717004487669956230550351435469558233856386508564574018539586271270293621890955044334168964445770257683512701344056619966685536490921657573807402943872385378581395223869433780108210056973863289458541007135210762526238050150371504598758089453188414665402244422431532178001063937398998366528825802307994240837362896386199127898043460757988858315288513255043131692984903380470661991521111121814755559032012013797989747788363710693635042198973595614643308828397715232507471439951964466780820869354930566141287447245262249543805361628113739546812524386928013911409941787055641685708399227373698637819550495193647156379175966976597489373381676821227271411976320386477212397030380747006965910687591783555899121781164137643391410432682593565631204044098368861032725706204199371308428954341159955678762884430953392709141895091108155950651900504175928429022075455435839185041511868048152001164387430668846135835768001411319691290310081468973522683495765897783754066636135266897349890526699244905344904639785266060595056769652908495594011724676864370013009529538205603039991173782397640266228481386591796123676523532461137350560612689011596875135881655935647222140340384777547078364008940104786734939085700102925102327414650886279918034631588813090539751542586975467444013025349977165356932952926229030695304267988117907989888083932708466807729392106256819265159286107470029165798804880596275954909438965932637216919492588903150714108968713832177694822188095616661971444712527244094278349048027963511576905688517585254118975865251323637162900760956100987052861336786832538306439080771965322998489728426012226646934241969021988157029573118934047813326528870182630884172339327072083288562930880288536558665546734741279135474836338597773960948067004092366243812999686862661944731933655568584078595567489083691821805764199783692841316715969444067431799472875972257952845368408314485934400141205385979402399112907438582585170725257405462100157076591574894299145091642761838724364978692555443486022112803080589635218909846473641835237593462059998400597445745547019290281571159737933820156249230920399428402503565996212717318205522105627932356378461570734377634363061758198577156549278362475385112676347673227669104456863720884973237493918719562277125748616865263505192632415358480104368080773724725672606805005655304366861504094175333653308845768412726726783661588749964931043312096858020468254601532835186983294007421171725466752102777066615925607738909302493895485319143793260201796577275819726331142642812162370003865297000366168478482510858496869333272591730108206084794440472789984319253302182236621358539612725998538316522143168029811391638141256723654371132222953533085437157171602653236089428846618472893584453368656671722067464856061244425462956027052254240204056051246191572931204399679666754441601330000422239316496629705417376800423028001345027704418700671948768212685035526881701397242363870204114045549294764316078712153519016294092014161202799870623063000151001820610334246279496644772813236743957205636331518447951039522096499393549945830696753334960326483611141005793618888360315860602873083768835040856609046408774982786199776739143318103771902555058187317107333549800579904075999804716917942800014084380351916552195135325870947627637753080152732152380709281781722801963197705869731947022291238552240516505665114661941970380274387223010845835352915452916362663135532620311857192764386351479743502328598038350368864202445762459690616510010291290482959079744929609219630350414360650830692911836528275401215147928840679994141702643170790874011066587831948631680522151244947759055779332241544949810443577254317766257908982348938054540582083753808787972881098424388859210661941450812252191377646152889713583492961100766713738128772920163036709281795396025918035180574602709007638413195734778782491611642168508208838226098824965059823206498460372781066213309740066801007993292418438392062001136266249668096002574757617558821979625147781113384146205199196055704675449284286074539715712831761913046594737917279013563139069709757956624506026839342481866261954540777604447022057428322040360823498901722421009624128758924339781398348228329748720135859322667996058539537504895239287006496987802743199324563547583413761260587266336677459218743646886235162499458829137081244634373770275987278639593168717367509207759107003070939208095972481284196505767489481884599799408489843712764299969998690855042223906273452355064887968849712928551662113453617230583455479141705874584911653819726010945278426037603774564420774060895808192692810773880997546987433169642190449644171846045339729687835409020955458175101030833930311893526283947744908713365429192423700612755943255932397241317413156196300950003556734233233204078736995124944710385029839671998992198646681316418725191526294006268053293204307080999323267226427926978496487609936304806341172497700371359954007214836592790497279252443459541106184358211824261101137665719298593719990249923631293427249410918670820033649885811528126590696477801422733418407688648340846621695251742819798185317112777738753953763827231319945138009557062827110281792819156108245619748649524054226591256055358926597580655704266229679599757872670521664757868549693344995148383225581871458448970804030425149894836782014779476436973146320632050075663721772083213794755904758299798181203940696684210670511544421262939225075597781162058516435886416123496565008437430087766597875582359270885665198229939398809958183562692958521432247236494647407233693957837738159692624693521880408485911522931379820492541859574287392061240211337899798706730247827888932599237370897020915284533186932256062338283573250207877183413908381610652058257604116289512959251322542424351293073435360907480633150653003541522765642915352604796355299541940342397572558825191819929937546018061209020413725863388182261696203788196069757835641729833476494993118977485578426289875690496999271770698902972055837993148446123794556983215375376998071499599888573859230221641409939762079841820061885583498234037028636738676352770813317103642611978553732610900109938891278576651184816860484639628484422105736047182176962782107431674969828733079981927762274090080425302827455221595019696339194369679589385792447861515340653169932649413676193808683820705198621047067520608131954082131733365811476366180460342159805643186457218030842134215204613394401631306801835673894894777990168547483278846170826775795287602094323507252561742540139465335783556521233886028934481831460699672841362062876222715992495480058966768133731865211077209608721611068873689918375290229452123998841217260055872793499004338502068133738694853483130929786962757179093212093886044782868929227302914515583208889760628594320176857642865579173351830903706975118824321923009575444647009509594489163050364804014769622521844374935609838928174487622945001144114982576832432800221251979570970909128287867222442969941097865223501646306473646162082333432872274999645455610192587567379427527383523635640056184624732316781119424217908014197360512175419025846957923903140411150759309948381897744629213855050091821661875822032184154585076138397457745925368831713359258012658208802490566339576905944559108161427531817645152498581102454565100956012742014751391673182684902145184118153941005452781655962933819509753610828927321762470815764067846730404244317900653338789458765845853492085498962811108055331476843105589421430480567958175752990939010411399809891216188993195009812462980784844900600948684156126628146616590525134550358130182292333198596819352301740000077253874607778091149914185395799184048115749397109296316459865906684518802849667776700105713876507435646730603054034604886497784755343069104268799955043598255875746715721936556332579209199138515716490182776930143542976843826718132869794940897091576093584976465455280677176977434919484429046769628792054387882117405101780329591422290111216432256042964611605414620721184844124878141195483745687293094746613652535702372053247795684107707400531742289262242235160254320682113828453245202693359999047665244160884310884169890321229877362784725782488706584238316534690673247000682778188288804366048803631022090116740428629394028428995334109586727973514900517082346344329967250346307773752393891041444227673393539074136625446518750267867935191508912303098166053352580733531896241142803303225400378292029776330318286624740685939198763715716575168969107815237685697831356352094958689111528469732380578911161969849802433837290994690123518649968983491683367443483389983462930820443623534456591157473037141267513425158146837935117056076035047174998170866581027784688615235052178053286384001914786706457225669997753026402853902376124375847706502401784875953172310087532405808919748747701026240916681122702781422626184562383555288065289294905997919011457030784709247605119708151655510713766402413422439027444913343212480234712034505590865727344135021937035515396942860658250650676889726372765668411081353970072596063994499752877465293742545223845562130891431316502893646472733259621423030749221524943283098771923988106421526220397057994113545552406672281115665706925400936079293140451334051058572305711786320112536477983690621614684652615214345557952657930374647655965308072588922390705114667825578813995411220193966515003795702325272261124783277772287174482486577143739775619037842875758422734539358313975812373305273680878631111816589393405065010419096662501009673331663011501842999486085035662820702938180479269828809906269594411697215709381190221118842349971579737025072128628398094844518361616705219462358162428870564295925941173657069511547183376187357968883570070050627901443413428641906593994443867125318951896563150977662854729987576035460103701305132572480646473317532698949939405310963758889199322031858760234471234216714049948362637894587613969610259939236729874972854437638694068365452587882247627554466043094815257530765802532517014381698025723470884148332311495753907966561040787449112730674051905870396839947602065612881063123111170741251817943525897159842337407541967768820082049803588502157678376105221365206418447655051606241207219704009719551174349819909478711052939912899589710281650533668357119348026202572618516568081279066146106978922057210175241469517882867830526593572798786676931580821938868779878607015858318581425294429565779856602860781833756049107545295456098023687864958535073351818037501140517012244383351774152765644258216382134250024705504210521618484183244581422055069988371964643387498590226464725995099946217799756010033922646838912170982701750125995119008445981835096624711169445118418946152100220138055644821483937293754142085728406816530145817984155180730453358369769691665117397114376500494605141708158532002921058704528163976421415554772596037691982064927420321871196421094907767633208752664234586646139363777472756645217573072741155698805506461077036898594766863301379948733676151564615557361784907755653197497926972049097937073557709597731500971697838243091264646825954955932338887102530666042460161945022549572363207342511206752852974578550110217818682876014857906908263169190340684685959631115012147716159625875596110936569913745616372924752544087512545207462779679352000405129949440102943300547369798995653107470401520802826932544410645060598289858811718711696328497583687734819645148316120665509801810330070140256737548195982263130797332880504580722567614488735476934491394716528147260825379695670756777551008902688028033896735060081937855513191539701308165810612880571250509939678420781584188236552308610717856577027258663372929867188258597612173701837194990243756481289782021667051648035807197272662610656368616512533851090966644745418984537724344540936577237522692292677882688950168951300226950021233987384724714707197773316875271842195849194336262372646057842673182872356717527197346039643401017203697587116333298314734508615393191879103569643438764520952668998209158181444910826342665989074031803469204328937015868367766315875285791130098912169454573849464354439888904913055252785381051674421715791210048055257771282430033279430457864637532346311112209363569298343877572840689880671735757545958240425206854146682234661112304256503796600517881128333239719981144565115699092755629335577499477671164845862858176694931382024065798811891216355372195687459718311495217275740122187279078319780186191210703428201047123672459993016460629221303525726180256133154929495371872374354510107510485523273617846634079402169890557058122881391986808686707501121848545580949197528153655915881054642436475301240737940625574589424566927335612670718115173207990760264719251978297606185958699363799925570466597360860569120113139337122020797408834083797900675363148377491144970470592011410729928003998416520157308600432177803485201731483608266437221356505449916166753640217776164577452404045704238345768414479998847441220866286206699638584899670908850108603478496235853590604404119603967824473040049874598722318235284157147182656040293092120940044012578592901387388603295916956618828459769915197594079931828576647530861889606797799572973113370288721024800891676799060011039031563670847166730281146806502136387086428262459803723483285406460057117056310951307144117337524689036391808965714345351714577555459240344229363946181230821135625145949026631296420401921033096308757005206952336842293220356679842819862955981017845974712119542179848468738303625549686028464989056747005378990725601624314345849226043659757654817134386476359640223157826285752510573170707332797532890490077867215859339963914868231320119541678505526155795812634378012119064332129441281697919035223830817341115933989750152270089657102378518860050039079904234492931129285661334285632225344224614617647231719508841153204138528254317118447942526341606665668415045967092845223163749871083175386165132436257824830673859147947463961457930868947748746536867638196378710914572464888578200236174882582085111271681549650116706862884809271773677602144981269852436735679859918673147222524193882802218830102244091353000696460999554508802500041013693715930353844251149931124409951100906294119857085815572559513816853440561706541844309235432477431950874003729556356403339285445610717596985962700896500845148050920529287232029717279007196469091959874031367689738089549893333171676455979746661746928788390594973314348859606847593361224975810209374563174719664407900426080631387356645153932285421663206212094004366849880831804083677057702836105523464653278233158622831024264686051589959425781495484163212128303834168977908981495209259840899809040712278879960620869087198072958655263065848786006629829421239344833778282414766626463318269871641252495697958923333275407817509450474641911178885363180133943257366010733207201088923866229524953749972319872332562483477747465912554831384725021871368764151735915624252750907501371890162507105148106372572077585570128684874524257867536346307514792835890993433890465840643139862016596972889504005336477686462741920268442982705843963310024721276704756906798642700912234194589890420145123720989539243650944307586617701658747028395810308445835521467355960754052591847522155274388496949254869254090580169128770880531318463229851123778773478578067415084389874802867526257728218431671544990451708897811173164731976066653144871696467269264156651786649180442130458352685512813791171632343384531968474566751209371441082139630273726126012881967371331351613160499217110065955586899153242060954586120928902070849404458693887980838590366665777048520396385245883095359483896801678781030673030537814362668059608479477608062198282955462240715568356567349411521859835036764377686008264292259025928617947354637622496418981915629582732132810746283410852501692934986986301735127084959561420670573014864625395941715699464618835747489853753465020976932436244401628408995130931421167067610698382250145584194263143077809388889277032418377754602670670604921997971681696920323223851258086848476647271447911811518162818909548841271616444436795654768745027700468224272887852040092267371891544220697847403234956534614079298369784990142445307534659548375414685065294749560727005116994142815979780573157580889424909785346720325187387433115421029716466778686499562412154438813952523078154278506866261942560015834711849548830317759873314306974576221874940700085088423005906647954001717491103577595104570035761109301358651947948259249991589372788771470138225224147371852113588581374059749031146878791946683940337409461650156958288758382022502159909345329354124521156644448667483057287949167813763671997789082584730101710064528065338191148984485694771875714094831767235680039878391630983075713124215460945299629572453958599532577716217627394661234519113175578035846742402101287829282613085789875512131643429100282601104047926372151287989731614566909383436659592088856141021532138922702534259638467286384943555114560417691564865167551643905770569102462731872128323555721878972541772898517120729143348329650636513353070074687660974030737733210260580677089113577819437129773486266879318052408876578278248825927890044219533439526941622390348848599152136026981716045680894252932751663804292345312039205233248533674077318608755273394196986266245129205863590000286047145958474124199276938766667987612479780432410636228598667788569585270138498790356719863648330896031870056672058263618002727105503246621726463835118158609463061107133829308600633286075506188973398444662597016809454074298733147339373716814036152688561875669423640876478532262329028398633727731439318683991387731800731012038436476926098367266217450490154300445284358954415640056009048937217202345922861890142668932540629007418300843009565124893043055674169367432864404031353971518338916421820934590760488927145824519418134751664178091993317100873249304099490843261631115030347869423958850342963779712437671911894135219704919574204941760099557010926651053727374203989999019421270008784708127727520045404862101847613171859828512637696831934371730225477324354585944744002676840179615756725630038969601815947316173676197026871230524055730450108454801123039851338691280901798579177778658425792653605706197354061274124375275999479155813900754625469773061768230621146390053181746333439607259250616300122755538072583675909064367895197456564737092891037689951709016922524037784255801613916097497109739916350180811846313788827145880481288150420166103665554234595660530856075975288339753336973792570235784583231708571926826556615740751213981208394830145425003445493362466838323556300273080340910206344063297508656141310457826679378879886989734965204739590695262202720401095935428207913670769983800045486552996181728906223166009387782880063839914773677509042700807833806108385483665992516141496245258860521662977736239362454534459692088026803101405735284342363950790105208957318158820284923668360806348257908615371546216760930268444202042376653001011493905817999015486584938826902640569504253492363937814546781255292939054370539274426092031225650201745879572790971785918469117289435914411157531053671546800587107749284616754690686867621631471826003727730748761584352024833645771535263557724257851222776520752803678097875435881500506207099514648296979760132583284613591792053956598678963278559343444646874089044957980173113674443852301482145818647844134493599713133811063866241150666682331095866085854822626927562840400390805977611372877945773316348873989293088024821803595714038596089620173576475831644271846451557104653863647018721018302101603555759884565679709906946410828436080276256174127302196412281595506804759793065459086014137067175605586923330155561864821889153192766005648098035269820740959850249392933515847852901535521184992192244938138397190298720107415307168507465779724976260431198726472741662840011511490712962356682023211976978902271287285693738377972214160064066580969255079489542134471343215852062418150771043395559115696063693243550868667349598831784420092044313052619719999238213437062303836272775245588800964354317895264803395021441700537131324683972309473854793403108987567265714004649621881507196772695832855050206755492480772732213669833746586917663506068251564777807150887004236837921936586466533263914593139796295010485370484135344611405390271732614059010043478272368359082793456700982797508560059007406151091939303281163755437886338092010707375988974585989228242564999310831244814100120869591402754676003290814629387917720005997581742274809513924461636813979409174134572350175132849546807648615625771895705159952087780098609290008855788498708985142025413623404329550512433457529692490899048428847394193873929976064538508400763362398596902927070782750384477233216115626939405770484999288144777330102473822235780224338595366068685156997087113890365682392996340196004491334400795862288240581936082363765563778743613389413333976216237969779664192695028603089786563317610847595985021858211757472029926036251311140885586439212904641647044260946862749676894220916777841721697000157821038819631393238013711478797730227512385472292819369709049678046267063777368536724582328176289544373471709487874334280347448056008815087621146722727351409342033583934319951092591387872220256165233976185244940005478008155838383149920473747940362035554041160668004127323353953067054430575188975813325463469676389642299444733404690081401404505178859640267956160090321448196793203972204425826280945809555034603838761564503446698060990104997698969044389923746397086927221056710347421848894818250837227844365895430309399926100279254607896595073894811004569828342840175092447918852188032929290408561350987860939733563860007157364715726134795820451253322672259691026017491315961420663427808395305070101917679298876816623667505008637427528064750022183345958571128126961410235493079206443816922095335045839649813890839568628079579732776918641931901391025255160071365467700141400118072142129104208861288980203745749262336632026347400449095101801852828109594322569945614209424628601852859795693105464888798829476154045370001093950403102621099380254668981047236481507271397536936179030696125587295125340754261817079043897227260619725394780210837043622203905289328095294880199153786562717350916081069714447400057715018255457346595206136300614824645481342428045070967229494297492034996329256928250567618928895848556966322194717052851659998454700128833938855237376035195287988800391997586175271550516289359081639239574276465684599053043637751017304906810344437841096657572613355288968501445934845819293307112035575749118515192385830361245267144856050499061986124455412737406667402204143580105675038073334997085076523155406802942233388933957396318898481947205244698498715210774988046912540599760782229940880509462148772903264724178839441307283903585488705442741027673674020293072850172745099351463407309762116536247733913052670203807631085810752285281823444654578322929766442871836938574759156602915561036219821590894051044757007296473399980934340363123026717585553411088081973490749737737989565659971709595010690678913556578178188640848418655223933755219730476201108726002502991282626039753154087128089437911977329004987417064051281243694696544439308660405514650550498153911265917600806214451752710658990680378275036922470583334021710213892263017404178251857417734609145345398603402900086029922911718354205918157408808140230974317872275468847185629625282360641215870518536180563812910562792175528854131034404994821810248867732852934114606033794952939540212664038510391138346618319151151295470688909258331644139976026574414603322832754380281086470131245110027818311758397210790545482408237069822536352334224380436537526953549406868598531542375840670114987783824231523898104216690658409452686439038278505535659387009277355871536370284375672118708322966277408605101894832923641476192883918400354130785263887092618746032188295516428536907334835828605148908520022708050824983039560298057111536311777082206750447830974796242837378411903585784428867237627576636008605833507184869422435793765628214466646981846660358069197085262324983834474775485090494578819420124464393565818518099808303047105916418970997886640768475262511690776789915058377980211963417807139754169943760935152048227166771138303581279151458492020084060686161477764566113030317938303324396134155529240471737317494379929458165812290250238184445044936779485461594363609832110253888399110444053145922302553504029662343457668699887400091512525569556206321819856184197119306785401375255060842437235647992103847305388103526552938487179272329169756871084129898582969459098922742812239287183295590085094108764024905741493257692037642770526004423650792248862934593106960586052116478625567443103241635919314812531331456972137968811960187420877029200865055286722102042048372475909412366894199209692050596702494862675112493163652195392559613373261360815672457185075105087042430679247326160557349750836734608488437774144744517870528439622255283269057299286243910606645808953206854671115455427313856054798803241974788992800708268904521361946449192881131824031821189153339665367601980322402482401357461853370135299479228749976313140872499159726091600852713074508324367440490863635699697581320925118735370747679978754091371498579151859443465641169453315788262393114612886386132039822901203769973589608858273166271462773504566324289923362441039852895047022220718065854188305724246490316436144623499193871603383027694828622652535809078276841052258447713569516668168375117619878218452697827709553873491340308057080109009725783179786983602459408379367776988812978322989169019099763754375527176624514585371739868358905657737928359569500776891176254024712653704141531474301128241258112575003508790412713579424511066467053587090469715742743537572157599724586205839905920093054504517442777536595708145960428428767354127914839944464064498772073027586835884654769309094593209195801055719152452396121787359176685951137241344469392908343030410310827452647928412287770831823115349434032171953245530906212698517729583865665821840078320507146473917874548238577229586243030719844941150702972490552977942607622603852323288066267487364957731481862699195603883134787784264016977295655700951920394593956451854446946088797905641015880102512091265875214751052795294630953531442830614340311483541192410662022709245276218051731865338905896603709547219821259167084708639085573087299612738916089112566955128578239099878367311486848812654914484916215231330405898250358579386947343387582330782620039548232613083950696966174790435975580599286924324606626568694130747308993631751221187970120216069919292524235996790925586223685541703131877468845314717994865670376132476473961846788857706875040364781035033458537799460751031932527500847269672683330894877816706356419800336800054027016991816279240901242268826432152631621251870842698953299829487437826801613266071361571332050606011936029607593060726114893739689535639237729417804212337235201307426631991259853522371288571382533840280365000047371572773714902593795914095819218278191658179797249458418922367971208658030744480924351018174218995041039502723798300105134679888003968936894043901501267839628782675609192373353312940628845689678654067527180477768076159233023445306940057475916106851512842603222999040338661148088002744275015454214371611075078700513226433513261009284283443980340332825883699567145982829795414765068312118950185603383707068616544624288482821047260991539747574314176508632917049284644292952963098876079811110317428746031647535411851830464694415195588577691080535299866788729275114907519510967886389431106876151531845563299230878975679510412604283510702675098751287257877068865734140563878621272186847119266100364854130489834853264369754713966324894427860708152845152577760222708905910908784332417234183650679119896750864587792821798092814565456167075600012981589161594047799608846162371502381871611942284143681962509784587036438607730664556550841314223738381553849372559541473941516055484420148223614447549103821386295451828895274978665334617374166639271955804214351299452155317079406680421355447111251758672493110278682953274329407194848191977608128253392998262499551936540436298373787727461880556440937286220994084451390847265269146444713911604011928127812806812166721118228630988464382876102487760277033155556282122807056964521423176216679408891930264691772416192240503274658487912877569423145752209735129377355888238821157782245526474364056112261930271053049852988700774989689825022784157059770232913774832219971166180655605753282165952004996367687259686711971134579316457830850529336740836574803336782626383546911364569928581909668589113596559849289628760334654644887565515015172321258421614749047190603079307473892226628430279857453595174745468230873957416311899278264066156596520721641192682974549544853689629462711025204367579243144033984272657945346248656949121845378292495900355858413344765315553158893684301723817473659931454913585702463575015707015296745625028277412177354088238264692667879270005933341065677866596826806801941493293275578408247609195357079093410415431442402757367510543113279652356860135794899372468872054549247285696454545090700165475984034030639338425785260468036912219197599272195549611384772715764546937113261975020306370028118884479828471406819671283925248897504367308289244811723772764551319146792414121555257888823415740443141119651153832017598623160098389371805988885500182181470642990256568164120869550330705063334544962584163278796479178931553234357902232636033478132655198765054838288274755452524274511405967681804994074620336197139463009792403502368031074652185368587950455399869182757634026752761453520943967316316431057879582814136155060059727787994555642110990355374156343719495802307853827334374935689724272354058298810977614103606727274993080182758219192846198242441709173141713015680429136780884780309735444674455162730628846387941917380907786963055750269612913529563653520746761908380706925775263048248178409106763189832906756831390109621886950279534506527913068261230150504732257367793166744631056228978692337005545130374437396831737950374747896653639530189466091445105428108972926983855995076463339768283947266419601520705131168367947955805790361398864906832215058888703531795354131027939365265312430182487081749516191015589397672278683104550394269961688252914957052840900405987589616465415558740006185262493280414790087933193073638563940876996164436083910192634457777013453845398389064738628432898868995812732971592800203736622815889913886980594441013521923922337235227406060371497943032214259293952643027995301093560987638433863560664773214509971735690641733962875905742886372791603703357560774037269303146168456475241439463096796110899910710152853622022402747238718998801175037653505610798562005810141370127756890998192997618314623242258806548903995453666174645859352133249722700568446541405550376313234479501146454825348350400802204234834341707875001232670187886638514403232142155085957995315722112096755623050972996462350359826231838524941061260407908865644493963211242222434038159124937439163098803869220114024819288013935981575884781827947980123873428407901470840042486137370793705498170250541211721524222252255015770050000920434790706649102583341576841844240728470827987198560231339099572527701418856204403969978399369858980006803561084044998860885445753304349693016339588302626200369942299025012897484808100048483933144971021601684854586581725652529604546562702539971147388259047969853456880866839289382399906421297096244010024253811088713339025431251169526715249197824355384255779961830588770188965475769220732239159263235674687182101872530184820694822811252945614942866516660829249406426275093915452480289074849500632849721673653849227382296165885975681695226126404173661050748868494468362478342551247557190935988387033241809673698886642985579680831762010759530931900106817625493441756508255189740165300152570704624263957667796863674556264649259993108152510820070323278041165415385230895852803370615613088532676792959297377564133415533691736171333599422621406520923737747726475339067844401928191560368487418810064101923558040779797031639888406398711882064894371790448171027315549497592467810577972016009137224316673695589209741075827275621501623025189462311908985116947457734972576345161213264525504683953828368184938025184517124060303886103440401189795403797233785378844639559411933745058645642113108040464708956475334003596190753460825055181497679436050000301827095148838168577564355223901342307828247140950294008918210337396817279542059563548675759476021823879907833139866494268154052053509533605879460322223725228521595673391206991701624161885694141123881535731234698716047422396880520328903241445508874566407304448076711056186032263378532365255255874787073233029954137234063909502583600909809699271508669011246150658227287087426757474409510486620735683200548777848415961400387457342495260442841364094108466445478390409218614953717799463216335599508793637737634438030815658311330270781972804313606220291860948753307798662042934599117372167059536895269610612374601208343479486724212567432573060424274901609572084877627471777991864476927158617700461397663475102609689865980880839232478525964496741043648281643171217001051635471777720168312350808653446694136001616317884515172682469192277767731001665681968525650154934252185554362461533304283204242115307656477668321581169846116686225716196502688789121528421063263813945033187284818137328799506566456122851536037153322395004647553344327632154444950110599935426454267544430536192481478542918865122604111353298681876027738382030452747049680060211295023793587818816362339717520086326714064171093181206748672375389459859290499635298204900926992336002785775824087451200273992598079345122440191447632426240575103280176100464642252158807384923493399504236394069171183728936826440070250615161204499162072494733634500265585901263158359197521528942088894580798816668592474684342156773631129486677932037103553799507248995937157408669255954321184780505894532257032635187134960723008900568539275004247153185433822729088093917766409448003138010682508526815701366967852532822399020446786966233844573014329135287372905670068290773293337213100651063459954422867402305870273435988844370655448534890059785997606769288189498883648759095028965115007192707848850961276180919971065909231911936055282916797165412700176029395720489986792223072226483274410608583147671386217483463439650691792757075379652992002584360168984046472307446005680615292916481493724070205931206026967637825365828603909825902221902236751967370865475597599148569751099648507107404986261186480074448434931215681426975286355184090457603535590007300681484866417423920711229035569423909201314444540745330805288046126832062980028312178975308547412274736111741129306994626606105567290948030874995737262798245223587637653805205802517028269509312303306902549044764261929850502501594654126934695892345437845956534834309343504257582294234475288442988894574495528052949415343875950956345629400965104890619958355450601761709664835755942225873490625353367061831501111604441113149575458108999809544546959889062740444266363599327494718096605161414279817832679768683013811737154561818445040326631093087970086422199333039458188521142844488635367199489168505295239710939319557936007407566571230295613554278811386284050625807522116997125080980303540150248694057496655672071852913134141982475220998264817881076673308284691466973989020046301696132994064580436199713697759560721864976148347380114641132401782322686881117066657818760914450393478911586545455329309211712898263083321425521619749423766858326496702707311473926117393496345083618164502449221521951881886907512121011343955654936421707252448186489619037013721989976846947314676442622540791438895893442695064931945153220083717149989928850492049171182429570061440617396526599876697728114367903821514923792204016878614632218039566590300192820368630883187424543549048054730580585779050961505701338368220212072786589550267212727026608557852063788195519120888767664623242819230011380635283985414136763306918802498367212550978457344720466334244680756794955835982564823532862649173678599573728122677278123666682334245805479802343025366920903579190766810282199221625961281843722109720391900520009509097201287660510077319456802150839915270481429033458684475540056070906337007006539405583280289479495889608527636057553477208177419568258045126741206520966850654704563539928325634549544172643348571809075499179255297256763418713898695853462076341723268603090081619620981763148196770086876416341727715745022283907312181220821740339752592506994533894685200940139001445198815344716647109792840277586321016839426474410196407770066881728573816574860317611177324061030218634557226673113279974494078485580575916444540320007279003078474698939152876515615777109711413574640313801850251768072488650590226309978704567600674441173023593766622228139999628679982351082610083243776532954274750082626849567026291997927146109879454170450550945862639514131523302521334745532212938034509121248040321607287482274651612364222674305166663329672162461886703757013764279009656702346337652471821225025397150668202174044935145670983837777031582612703097528106555087166489127548551835321702414585546581240931910257418857324531902014131783875762683066057861965591221543850405707180799545447440317619305836749569457364508181923887081711982215685958451706707073397438048879008934543343183482405599452785481450865632119816044667997028306772557864447661985207171896175470247083115018038895733591092970970330662437112381084998462275715984130167658381115975002803784309994318615842488677434629912836254649713094381335398916424588384111685957613803255776986347353484030821088953987662737036680223419444558031856601804137031114896754754366904246052151536987738873591338981334355085328981917652666493385924002378598976699312091593517727816405784663074483303828811233933940945245056165670882358818134554906128618504661291232456545506007174120506695174414927002377103530204112801552747858520500863221925705497763203149120094708937143636594592326496129296777340514828719634982250491707818619218661662050652185273935285479588843121312742590978494184728373557790795539555097041181700359600511965213930792497714773836404512707552936672794215617454150460877439674108983385993637929649078762451135629864932689787323571574078724659915241104004050601456968266905519393737230587389684468828699310607103329987948154235821048363129479623509034954552511649601277690036381250271364758615710791574171008240850836735398453125278034195846544730234378016760976925992727476950900067559715985713547265356345278580244245860318156246961047320331558171904886049183964215524961306039901204493993826874917214989432969496145318008223019267935042830173219471737272420559831288396648950553048111116360996920511913021377604931501890019558200485990544391315583105731674812839203667600252883161174553874131873386067254928513984181326910720756279012212308135042051620801398756907981539133411149037828191279979722454483706385940259247235841626188163665457488419986942135891816222401764209890178816552828180131737295582315803700770623860743630669592759843058686421291733410080540722642559195671701626617980640274752580559785780516338302974357877921367743232930201907548419341377294923037985173170563099902280576254669691865552621100529461705791997432423246318949567404378823036333234159732845410291140164646338238237471509249899440129013970374411017387801532534750752223275535346114745058496243502988655686221123493210692849355385748257401594637609877512610152904041095262968629296476833595135201492173159046636012942581659322596722520101192212037974463943357360641091758811389217262731120358473489263824756712116579524399155708247161486664321062138928335513284603727774758029417899197291165213808010860220104078364336245101747079503002249689874200639143776888798294448386277265858020635334436135494893324940733610008569905266145364854529047332170626371317095831262808270166490670397500082464169788574327608570835168429433183155698220743568954845407060128764522954187760594679793096443960629213970998284330787844512891448505263382242670861500264564494362912650238710791119049805896478717662243471051492097433573628872175851734097776903645105941824219269103202638137185399410858551210608985446006636908029999801843925692741947545160144188625881490656710565900098162039149164912231238205901749486230124702969616207977657880510273163515874740451577912526652022512852843879355096815686572068025593814945482639936926799653455850534064556490075241481706359547735066733373343831958803878420159940602497291994271334430388898044665763151130166199644578141196528584912252393544528390305477338135167718829451421485731656404779791002268495829416337209008389285221245195593392857507717038004654262762093778324240213129607584241355822867782311606336047684768503554850965571537249451498124316140352524023569701224080639931819291836996096864843968579372170495110255867162442240314236254592078933266694168358869431786662078300642566590661671736369752953254246979124955788957439519087292389144740794511509347128929648270916226452184200785963432135797360769388320710020241213524027782645380116654125896444877797303154349987280160979377331568983703207843313514468065297802910494391572657572777414894261833082018750591261123566033209034898641687118590882542893662974218646903378229591988600063630535226080299724072505276894291350085299503224070806557873043990367156398613082770068279724808590219417327053313109293018756157483844339144944847873441180351134208320238750459439516750272654518102359737021333205051804888796899314580878889006974959067962280215778043421121803561552870073141293459063841653133854918325179796774959427467781534877270864880127191086381228955374755013397236410280794947140850578553031888493376647736322299736768670734987775620296231967934786143090133147516929824590966171814059531004016805853580348476227753953448954023518181672087344336285099227085409784922638069992901234770061914611146314741291300237861646325533490175994429386990299167796502773316473596929393947559520957251012377310818762783627137781856763950652595758666887250189888004749793290175216297901651066886118098483678288038791849507901827489592292072024423574660838921576846927759150928358246884941229524417404322234891964638849239557687473962469959352888863380671655290332193883908036981552454025043153083199704925395607061827960096411784051662341909726598930469544787448508829794902394020794437718699553750507423252923375904918499547144848285492126777968992764803280435274676079936722214964368972582704984295369133099587650493463178266449336462446767718346600773641719790999965683215390826005229768643602502094976815606256540521286449719642503220992967429799762762909340369293339951555378402472794009886723604852600461397839276658464723929900834182937309631166678199292575415684119481744353642739019311213419009939115242936411061449122775741404587582661116995028045001722294171518188883396869590874699129991658505389334582554341800146265267049932380092599073683037001461658626140461224880662731338908086870078849605423598981058150936835817732657833952471325071908238691854837373375287485391085512857757468719208680039942808028914543773310204028362333171822389740685580493909066240088810717568771360488516624354845544654055321956849308451742336779439806196502626216362648021258901530664531329542350755178465170992492108775101012026126440319520850721899137100387939112805481365212560057503353705106982556509255778853786186340255403511911823354716490610898687394729112015533424916831674472173384807197362608511112476290537917012641064160375145249297159003736382817029580711252886727677053442547505432806929692115332047624603928428059185447433969057620003080907868312452898395121037184729337590692905439911541397806212790063238739629426083330996432939362231407330639451423813102003309249201030460628132579572374959122676330736856962197504980460198999424437946858412055298419025007614407939485377742456377345682721338468911007643246991083475628323225868105350186147399260200151026954541843853776049175708531705233934177762125307905555227722127590622068448733248827038866402121483065056070905202537730841488450051084013282726474520909927575088454870835811711084155506337153726071194570719487436715532602357124864127789053746684943026449455234158590567576241919715709097074598162846518094634648181768809806136018453448721816141584169020389392275211199886494714695929443215974260536911111564383753021333344303419017425885843701521893229472962241139089023222908607718847361162932462735478127020544252013610766946579326519342127516984748400843239026330497058784025093043226209115946355151419683591271010789134820024148205830323918460018587024411658086681327452224867407029391040128158493194094732533786978511166854169897738739960183626284553496908746220646603891384041194557888255603214525995825348234837390830210997537387788589047421894385167742900096141887570246328314888129638784388460866888065916300508786712008777564182093786496132728473255107700059509747263089205231794494537564580035683486560092010895941204356105509146703796797408692386006188517025591720203938041211920356388734281973663141453306864528089550470634655553567259289643900994177916377972143852540218207322029174355438062062642436390665432770232091999348333262486170490712509457704962260838250005554351352529673498231439511180277496764375128333617117991696636401192638428919702760693363445665963419925148883504237385761993981484245919452476825453709450878584106188637887633572120534085799487504872760315645763194342780353132997099268364427920729245683458417343704546880438923046522585351945645754060712174299052742137019225674490074944275335031175504580792750079078792436930671374926336878201435385884718712048997221191267623676999859371325820218374194663143369189822028073210519222706010449006982665976440144528320115252998806391658459308636290622775456159444504519431005212547725319280154354388766276019910004688305963858505385258757610154317340204720918292267894471688459770640480772096139148374618767385366159749626052319267308011832344462158576241131440924049098049301520029644393822760189321530123445274047850423952221984514011188275025241754211805975110050315895758438774616182305295348326850512365099864879608401456004912455533615476626240640214666035598659646370319289614461493947519720846588044335711060666913353954691355090183144843607026616604614263904602523900729237389782155961076202760820172266389732090386836129724568676510986220610895782796647462269619453533052422756659915042744390526033676565209800325938008046740064145968056297846612886459081580847387092610638962209334292968562195206650343122774257117427767947958242551469107202454022529225453250964010204438032303674537475884537185544645475860835546855964214288261722979975632154697607644126901110365835908708696467137586729647346822888936889745641379034937130243532551286579608660664143217617585126760338777822276895841534267777110190822727780034279348173853099382091868866962018686217239054310394578717153635678582136830793842352928991308155967393612253581021080590160775340384722808581958566236699411170993647906270643490039253141511521255326391888552247381061353815628369616951542306124949849599124583628108284198333383760213297973811852246916904294482865005535367007052068448654836114560893880775737019202441268542449376063221596885672352784031513397082718269994427203611439202248479926204399884439360866730614220668434580985706577799350799391795860456133902976944728281834880001173723037088087704182695616614473070040318632023230871670148277860471405793595078397730721374794236199347092368671009346884243240140594901763440534012889149083145352030276084718900136649576324052427062831351749321478346437316050051149539230949160117129076972569180863609282133448808324487244229749066005421520282781528551797836482676809508482392306664681758185930612028813315660799608246847323641630458239474307757041973721600652842471710897718931021697922327137524556904649577140556644240840093406434387395807993089968998492952368990968646889449144692094338555285892282138107021424535265646979643851834230802256098647220749976281669108673033756998166335541693727137178751484543591281133489723237346352388996424525397387930565942118308221303825558406561903933678949793769018931545944559650828104140923707289099653733558167413953512498569886330392604520038461684832660424596705403618730028084547443520600241410788434335488854268587125427639742897918439949540683920615072877723210213634057998927009015037250082534370497005569563537191304126771396520434449899237386365605225423707307527596949482919679246276732889710451859568515865027601768535903347471977738442378240739693969712360608534371957456635248921484491512096406255903575970342237622765121474342263054945312577734573818337316751680235453203478813461768330461707054385718623613140141582974767243796632830700424190146132472133090890581841220292803579739526603243521186857714098500020077192746304614885363399381054244402501456380145642469148939271507759447875891801583643197966589069696812269995186259564770050495784268104621884706719524170898187168942208940759987910900797158703928530155527335610512880373823584672487528198396405147497893311568139471147169612291029096672004693810780137214462621271491671809459952068376894724433920539857791335305606552307961488057710206458505854276185430783340181171280255144542506568998865048412308335055449520816164889093029798443909617458476388243054659760653400569353307992331936090032055026621495140483985163691216126260483773047756215991255990358728684878638238384138468908568095332981221043389888409721938199901210489559121821842321190073718245609914890920451513878883452642766148528376484554640636365700200615660506193154358975196330834203771878486598072760764118846646925127388182453849542888148165686275698622367511302808076333422782974824466616683944368059838195989563410482309751052853767271066917150282849471783593480916885233220615323944545737243921026198725484806316286295567032537401678330485799350837141503727383648869275172597751309880188211298951052895461544861646138451575389513544357587317862975680650127600364794701183150134062616159206403388942618401434233182743443604697911971279073245941831984356938576721023829333477797286510907925557196528515443247371661838195653519302662392505975357877111947866617797752558273096070901833978870549028961640021482804583447041999487285326446818110928761185294962500701622729926394956381166691200407499073979737193514593168555701801529080939543714872907968281036899984028093514837168272720294662482895405426036493269581390939880930843935465626292673596487085926711131521432058178688176743743189285210360671996859705129209948513898683724195723303567070434004819527456024884759424656592684619083194826986855738952609923041026551855259585640465057753558359035754139395769849160990185555974620337903681945054139200084607044500237659362993245923116684236164053558812811451353181528104707032709214264022040294444586670887768498108158448894356325151727645162330525650009325042139860660666318918599222619826879913606302034082590401639797259518694506559147814777844360774081689119534785971885855994873721565056061242795719817944990421271154743615889150623505568966520038351622330563229066349359302917331129254504782929662593719232808340304960774403495132392075625484531030826955768557638763206091048483896511896279809165331120487114473772669157987056237789711816311922710451931328794881184236964705426554158070708715280125731740481978993657501697787552468688141503357041645226822795057331569463520694497501893982622861194745836487419779460443428765190450825429743727230451766006352802037369942546316662475366695508844991064261311463372681030677167706374808366784156999475274990011689966278832695615526695223416737603549953768378674579316902663163536710356234144623480664667821905614808249720779578222515442116214912052325540069170645773295581386089883244765644487039618423219568006260463391272682300685897713721514712180265893680538001842972749294044271055052640106161132868258145484325074393376782816883618030256201464338738039479391942309081145769966959332335630429821555401554114757957478806164640179680546835556686580603092498810289893343929051872532811947732350333098635767880006146571246195649836744376485383018794785372168696390447485032448403201928449007170658409265612974104491782656576836533128644217756048807176125922920278987908794771918027294593913577530219966610714282438115113186546213285954773942533574306834460510839282500187266593624165340232409811192024162357747400188674686080297092613748812057414073775747544585927175687140031903053709262731014570022528405060200074865166425929321866360785918319015271471821189700504789388840335602328484847086005023159604010850556272815611472119826083243516880068194069132749911818621307219544263831127827262822186115458584682145976291716591570015944012373776256179350421834833044057791624481787774963228207855710598411596241898458746431684570613277980560441119953142945034772946131546175418945730701396327146022598967237880793769541572623535722721283070811286158916723487840907969754563685487791370227533656819528933614254842168189974334693809558466812849300702507125717212024152059945697190734435419019570270210229051415046611609881361697109947692787651386960752365553685828436031230936851552380775672704896224962640000045622626405590233683243910943537933013582386674821269913393143003416279479188614848385305365823354173736651337899620327701733645275008535768133109918653298561808236977464745445360230079632413135882114989941761906563852082925186319923561565243348426334199580918138357648037194849526274612764890744017574184329362436871699538313939645546580462352793775010034495467023643080131466925041100077780361085971650341171951783777573575615572758387945845919796419928948099720811321559354165018890901661450531245076160270384401038383313964362192068439938705782691173546574055230718335534685043697292769201666780475270914892542350272854329066487102962336622714635859212736728225431480591420313207408426696548441207821118741341084025307034705108508405227647590588414279358911985505888471772616538958633272841968841755411192263365111665385726979989979642083204742011079693191367929435115326584516678643554330811359159598025715969455518713003125951424817028029180042471216990889571611136586487183433860748325365551273772665941107686400803509963848448562961995121579006847601357418449414043597886598676786446806530424077175119566580080306638938374350219256293529412254043082127414108613535780286059236497483179994406180619200349585493524946211476699953457552837960186378154687393088439288278498399548309598693560428016549090486118859270598972761344026712391726028019988540851864865352662499291135747712929916657358481029927818983248880853753494698889644725403389928747322525916861631807662937708228504188882164753901320088281124174608749915182401961075823970833739330483810772786972312637352333338922181301317060944694587061997715161096388996848939906866597937323446511820604648111758555197779063624774562073563677157451205728622215442235820857248094221059651424730753066555403944271088796389053174076377188653476343528406329997327960433166372393398333620304808544245041498022367045878454945425784816399840980694353519848746011971891561942454275906576263767881440656215179493165123104321986227024629193681781637425103294665824841892001953216095664723447210263600130604821919467668836988933285740754227219440789258904476864828944080507494197000666304024265875934326904611093740392431054830697352295654739194242316779063235196643388329281536857558605999377669799448268768249462509614551194181801600271422500210638590360527821812675953404163071537136508350014436684293841118343787217228318284126625425905180617467009289528698348025207989091235732347410881562287288042798330309441257830085342871955392252991569955995927124036918538040126924276112821803951416787192670486467845547310282536970575855235283260077921014216201477129874741002616350857895349928619683224002665280371446269125270775946574647249521832802638243201963800865268418307803633570258432389375953523123844089295139645426975076378208152355359997753629704134129453610327404746920538489716968077788661847523276256606159278270931563758720679676176849517179128291930132433646249895300581085462711991781925919140544128054848578319896298007662732821191874576590461864393732980674084299303856275340474754456886067633456560359170226997101162377346222126400174206323300541755433793311112341256761467430546398189076078886647275420186806504615536805826958563851848683868669169556881567334305173816630734944953635986301570354136426835023687261504050168339885703033546364903381815029945429374270769764662737555274457802651381940689009372780994904343981409420620400188082232127938253365452066278087142765584605977274768897566574509582419926302123298743527740737147381881300435793627004337926799463345304631711977264465186788891197657244240006127811963340110114904544525317911362512210070356039085190281602137630485850354518543747833146875389244627609876628641391727604323394727389052320079693245108719764043385432433794601484592390853475345847288587921367949984645863770460247825298478856725940692491529256854767275727598809243779175752876028733871898081921020291966543820100287607629545643115362938028213206279837974526961669644384566384263223056256395304523354624965993083504834501132959306149541070734965492211446349817601070096229073449830697126411038227112460921966635613065332568098988811375612617165026214197145263664464874858577250890271142285394214806026594314072197390311482676447081570351876141460310463787767921832082571013501170936480942176192239225461973055057495235484662325618837337830818049791878926845385278298568867182406808430141490549820910767572777544543832069389210283058143890373668334039183884994044242475203490254331909199284700445414687330240877244134962561559826482559194428270366055831397370320664375689189913073698129528620846019488813913089884292990736433237397129719701150483207083674322101310677109196825908120924144488691127885185293977687686431835975841363636635742606917617734888283226026902063215269078397731126614661846025576449239660372151374861264784801763810840206553852814079592134460522128013516889472325471253716423380905260060637895496966510875000162637210660095243303720081363195026579707464610845822957816286015810416878979786967041886911802191952599033807636916634051148239399739149382221045556219018967023232887193740345401902417758150166744855928702728822694650467825084313397801428720280609431532195387564873096705711505468181206040338896556765352492992671454214923741516631122118342163495557799185408791911220667113074628381727289692709104641249127868978792021210105243555546982309945317422054788551917324302542261238398572217007599660352377702606990549604427338269988754633870930381680527371465546808730756848433435262065140240801264530572692186959504406465555459532051670393168551863761451500815636203188078540439375057872233393136702488652763695679805736978666219031959117788885190861476015695820302996776158832027126367034681908388335100636907758097028134949431040741971582381560206126343122778239192915812209749897427294274597786903663024084035503419381416799926111425184024215979294495364370932160243454220614425742357279244018146965681302045227042423077923205426533005734198358817644358583748263133151916564464757353101458378462448445846255193571381059535730547875927918292803724876290764874900434708600653820399633611944482066860777837658261831431568977576772967361717572821046141941206701966017237755845451879995796409358289068582547815120088473007339937490291572522499016851345186751668739058342470147707674148836102801631528883497282976372015740902730220408779754421220773688552322341462263883959194358551308929659704432795857385614293977403797265090915054476603898158663440016254130823379370591598834692246243205490759997548967872248818896612514470784913684358992077643455656679576302782607686140733916119975510371073818863757961881722291983371615991084200223432247335167710247096734971182970913145801162280541833993320736270523414437473365589408425927659247572427066640173911327197369779512290133836469384677203077370768174579686633036141468262706927148600866496901094258262184030338111603781819980015894855496135933883553579855692361103192694180024831275836684243151069505438488140813962160520181299463565450129338178394185890056003994775975276525327318950109579403383412816211565591806241862120902297221225915273015239717213558621400478127977405697510117441242654971816288258845577388998208686987436989395457564757392053630069828232301088582406616102532282317776268779522690745338409121979802091455463050468330053634412080031037447243395847049381721603537108183750968895557291518287434028091578410886453901632699700134347920511765878148023672159053894915817701939455335169580231243545742815171879349626067006045964816438015998961426068011739072265526262815226296406522641917664225817797992663197606927213025469797627493242085236173867595244582209071187106340979199768110070205845547697649791175327026755339258217673207531476208676725608095360878138792163406182667618565526457113913760051286281658244374653894992966780080876250549128432875444195786037080151962643786329482618165336232807804318958594430496011073939412222587769480229039116557962609519722317190997459307171540863297609238466899825849497396379530340676369227041142339526683631359244774259885743159335596531631601583159527525883525476766670375991284072319208589905791465525856196585022217381799904822232931547214801461706226312729864883377755173609263254183034278294696717987339119898807558049783288103083125357400522815141823704342027262049364223689252462976053060583863341623466209672596128636948225221727031958897534913763647739057413062512247364375892459920657215833129598895236621146190594152792233040619002131783773990744197818306416219777723428471935318392709259264371327336006788251555225478552750415144817848852965409483043944476278094124321936294951564335527073373174834071122288265524808016230909297231573995039756311264526512734716763923878647596955799995588208238811597484083404646329622107128559931467642936260795126945509446049751788700343218884028478254070565337102316483170138607166379495486093295843396264004332580165039931123169186380790724969496393002124815336919967459882752553266231608711876240878016144556713185312368784849967644918015807587479321081738420240849092593999251768903616938043677061699228964000325549734679809735531841426746741706116363849390379185412260361052698217592161747136363547718305748617109309245767180804524998254622827421999818240866752983930190668396467208164422252365108319317837308801821384515534505793863890876587649395412237938457736413741987860158460576260672866709368105873028953511923776248552640872415228108339746886114410590836701423068984961409174348308042122382902292975321500081741034706969705531982626177872465248187576928210112152078328224554839593447826157533189794824534042487935152683444965345207390360932645558522266956753209624876588175709450934882831119520288872915371198623522878492341089942595969445652702216452393008501121602985293363947113059788019336207476091791749663423413974725256257625483136355522213794598039656312751730424709094663539607754884669408173476737900805566608712328575839999214125264870513098929955454332512172568450416534229163348023030744950746023038183715886740836180352602723450465712575061734454660525772619440360404800690975892254115355079284326994199352674052403147938844200887181406452504686154151734012134773631932372941454950572233070238590860821854479712103399320058001517636415495894805103553297626596911905948303749498145507059669368361296825364863568788150885109711347169256032932790321752659382611990844774813460350952398459760122930513620098526051415388755815172401074743870011493050741005563828377908096713035019990155560982220209483741998458140325168930208622552481900311144892475477731196289916915899843338877404508798814307676235780346098090446756145403396267053334375601146298865000948984494758062547090682282121478586623246274157715329635081545931611502632102937925822807733313092008919776513433846692893438059975599108424687604670862792160266848644437790858371913106223650032234580916822576296004590201045570010466866333062082269301310913344852244825842800312485630764436577796008314340081324830066524830112690324039818409683181204667173943792061407514566519497167323519607256874435221790930999323064810118319751157957269737585268815395271062479675911630697613120762334156080797277223854552081086638480839369311956160408539873111268131207266742860807250180949325437449724457549602819426650269783625811637547724001938918365580840003400662441311621999925022683180575718917868876354715849831396817470010396747507248764616766749999786267065200803175768010167004273185870274670374850630748125998961904840764112071212930320724058814566805212808071219942450259422485170126552559129172133150770929810966740734964540832672465266465239373946782828107856085452710673550819972157471168871372602401929380752809277742349336063714252743388709330538028425843756361633713577195318322871763519563276019265791057824363348840691630335259233869367199071566686586364208830446476995286484623125621675138881990562459470675635932629974456615882721809388758524235637554822075599186945075721183334726640089406110863524133016951248718077541091040898540087475621819144614083193395821534942658517971806205158891038404158293395326495177828908992868236044251821011572576783080278026044812330956474820189671672594793839561094807245149915672865677407431765749878010620712899624279260305414092487690104495939224896401410337345168954272232242297294823836981705291853394578289446594117779179762726619974950949012187488949074448679678588592850928770198532939578633670594742125480264671322858465771247826990721519056195901296880284395677231313576419153188389285716760633068219021878773089204885027753872246760792945470682987236059410341152787392768220973752661659103401387673943232298064061409073808401225065311765360930685575049134713548725504513790748446712867837276179284817607840885477930678516166149268799612604899819529149340400133115370003481542687942776485598595956804902896358637197410787857952652761396387171854175071665060450127959994675320353233761777327252369761133419005113697382184368815138156236067539040252715264523573994071162988430195813518825779326837763639135176487646019422995401287702890092732298124021352570398009754610606167907011071734724868366260528652369397198286167174010864746384725369068308204370098713417911685982247979640772497810212401737411753774632299956796782717057522568295905604647304204826345955144789337518006821177688119651709971254277314496468158824043923058619898400868854198852725263705236325367500810285145628456974490372266413298385140826964142024086448570337180207416105687727937760959620892317689708627365255783384272331403912648168310808821600480487777774427098090309814615873685630096687965197983417371523391808895242008430010159945762560181870287613032082258604009737540077617479448037877319131075044003626483583327403633712451448062763393892847232177506820986591405809243556580939141998953830409475268871379210454171734184612542105148125916956289216868768222855295607897931112894602129781339806556925706631872695934782038167656661650509710150742094007878552963490808289155712305954116155662804637793508407353968328298708865594884898945419801975820272761215911531803906283970391653282753462134020197560345687438234925440254457120181354701176966351248730243998667115509241749805617641237459420757573923103226474211584823889838584690101710177464545860651531727171353955310209030227387614195877624990444240585223128124586108504763450987504025220594246180399093218472922112686286317471854792780981305255776072482604221318214043765694321973534911146871693162174180211964124372862874988857393118232814947663168035689165972174450118788579500698953017604319986649773913235808246995164458483718023450118083950820913411308733654952125675779993121314198037291110893319903678704779799165784740517144848767804097246093929933559851322240523077589348149037071662305968244252606293025504602807042082722430881422665746556810139831811735790778924829506550007500237509075454086640559538709578222575133983819545208287314755462716073258031460448270162291237142584336711792679118684175512214015224748013061542133041146095031788025570769145153530205390220344578888559697066212498681692890616413234011427397455669171887581489809232050242712657046537414503909691607703637616325155857470217622666218859395412497049016895978454156508949171460381939992978862874774140227010612627062484631114855518709842600153798014636805830720316824909021448457077711825122267004848124891994072446483703816987888655108471323020787426723329019828152236368465241525051986081712089578078346192577218055144683677863581792704993733552757668191404595114992582359518732430132025118887425418914848731962365808810010591546806930802297938232983960235023055113913153293359589687624685671535295113042696451544538228874561197036314015554026670033669700006661973739328001507003372464795169378826547839230572982257258735508001384626909758075844060853155918523367236262834108808917501347266178583893598184030924536974513098499652299349572245327235097166295293924350983218128387539134763530400433488745258670752098559605164970744884108069927026466666444361800174982573307442205639619663094456377247093030525597207098383000131305526576908604933246411015623101508475842016783520355937382360434054657536401824223476966187913676196718298469103739219627229222920923021837087949809506075641570587151968647061890729737668803231573997435631249260982731360644638130972482297434713205307863141766169773360937096210104836192413944689436562381561229211843322467603337569663097479286873354777959496345157572823139515775103373939059407803853573220263151917625691834704210916713070748369536827633345948499487046309493529149065814256695728387914969730109858066751742312831774699944318443875531629619936156413785618567703012337507860531250530899221266397830467611115739375492231139465306959769083940303179140546231329149639527627781427753356378002544549537593185833805388973209029897885755087949207641313209798670822395771755239685813168198387785767759721413867289177044761885762636359852836715203228493900106815264504198231491021245933576157448917963575160655385925837419477854636883561864611942134523472506411005464989042125158691510692961192354336855072051322544833909861700741547087455190727199208754119162830128482684151703388044679663689613676040490778901636738851058141539380832622494555758627654308175189795545353078625025059138008345240418780903329337939821741767757300368501432926826500310973883152607809467355668383095679970710641154419379733292070337161576323743341126069854695295149167907382476268666102009612135807616283013990684634128416505847770359563032274199262120847399461748783949497478487821458530526411667647731270583592564111821570829095841157607767660739152187609741361546162293933166325063313693272848262380379404552268346717785045983337478634813294709456910978155123971211903837333463590387210807711028920694516357934078417224675488418894253499632757068474657917972389854102314419523203573437857429764110816351069086671183978105945896774964390731334480719852344115474843766740085962800976364345064089017247382512865935053898791370506547548001019211340502869021463890300760764092895175008788980620606399176707265664710783897893920358296415007647624785701722661588712505759055736466313139471895339322771337635448666577447230219373237805544204118398687837388532887918785502357473413841308628333939396167187442397062004953292909296194471207724592734710395008285523980631917885753439563294541676829525370562380061236331588866991985770787683416205007524781221422002130588033631828608959553474208172562320064836599069045708294564376094867601468935717829819391219522306246884507725299682746449297969375687274013974058783583634538387531959277415479470646487898528777650746358285990814337229725849759709146437862330089349412446074102030891116048166388959653807975374972125183072165296512390303619914499338769255849036101380929578891933058181309755583489351503653833202707871276073024452723098681576274108965112128273598350615610687089781076457372039276152641287379087905741783624110050598019211182749632752172918478751703303311050544360173005347564512257415684893972533452665321883645629676031124351780758403340815273688871708183742552060971286123713969368218492506941809183710655771991227691157733984035570883489693249807333487696719490907076145945987734340066711389480889868468283286015491096107790026797395117790328999798643724433394899888442148896810432809141080389212814172397296987928288321250688836814941602879981629342183180558239103664720142531349464214953128451152174164635786452400340111266453241165226390994274158696028479013623708527415481248272515073894575396478312230386802081370425653049086371515049133467410415931002719258099156510340805851973456665661443205614411384598475884634764137742836691296029991579967139952879402719600216062985247709482901924904880592896826543063057358121213647849873209715990050614068828104052858211910958709164047796531113395591621817698389220854259838051342958480330469040144800453556976162922496205046680708197106418317972478725891057902789722682334033972631176471576131641000048965485485556706962019511303527670594331869740920321085597596547880097379709338292470568315447275679669831364779489573842259532910207169819597941996606215271968980245528534965206912771168745500790375510703653532419356922229370179210245626663111470211888106436382227606331352533014701929901596349828771947818123119675395786918424501709631440216650487819057497920123903680013676135388807222564578011165687732643685012652655883336791749559490458061898418928105094438096291036321311832899690335018061805538192389562248520440820867543586091682905076552716023034981482671810740638976394827137116857085416607816589082177013251475906816086515927907415943509350750366384810834206238820170314912332005164247511318269083798575376037966721382547142799611326790728463650074010156303090714526873365958290918379273307489672809379726865436793793998268325986148725236577444334477248993904223016870465848526714782920091028241329026131554261827821091530674999483022846774831076148862696698608903505427519107180978008209067275208226949307645807357201210794987793012188034274279009375871053102266536063326639308702914492547474319653010219511391372925150142271614584515289644496863163804707995381035607977563065890354427658250985892067528815924803782629621343970766316707966393425688509082783687664595761058931463229150617632849128746661680348791295562671858736645881190640880892129558763123540314753499824548287077820214494949189686528714031921053697543392286391465329687336141787290354141133232274462632537524928048251221126817061275250503341574901321093223742748389096340251702489533547820574523983104213386199074883066698887213318552640340810841110218500920837875903865786238427476002157925789370429669485380806965083864036136518064634121687083667450922240056107791196215941053965930711288544384319909629929334937335929766463162981957375364137460906395628150823452582772268327738704874548167116004851794904037293129571153455429080526409117874759637095042250854658623166091510755524498449495307684124516695375380975897857703698306153255845785852901199192774394794662408264442976912584506367288144530929895035391864292695788474286989470476852782238462629251887036205790792273074351143824160804511944220131187458026152041518865626564322959344311818916113428138858252732273959331712054039395058556436632318103637909760339291314909343047286489103228799201285641567878973153053086747653797443725893370081740876268879258340245560704549892169039524060323949045504169324170123221406308546359865072179303124099912128039633812262418415048344630902745970824257796825624400956059512259333285746564981550700915584433285167098501718163914405055170391538144940551003142660248345002497792643953071144801994656736606152477197338671437975230615415653248921434230812160348877910899131719468342249160417564051726444043565690183452218674101751168666204867281232258351959934131152417274587195039386104258243184456779285526691165723645697434174521099868612013441744029556658216541051152953250220296402937508457799091553450478535321624389756655678269384001329070127750104393531324253322992309095239440577036032014831797347595800018379434112982123425161547917014921020184524023549340293528887950507149670457680793631667352295942942050735573315095354574789727752420406238349979696040489096553943461370966971907247358576687536105763369394919180825799081841357112945658102922770626496042333988084279522187967959572296958805293322107075125191941416824692755704421376896548607575230227887086557822395556400379746120300427209142386837873328687076178072221053799309737566212888447464964908291478533690391520644220278988822469178746485382373290931921672897122843396719471962277499606307892710295783792130566366691970413939000669479765352608976794334876482678122022371189197426538640874285440707997692023059753593748664632137246477667773643588761443851310660908301172495464066327660519799794621992210774731874130430064655628780795608584485281139960407419406208469022499235407784316598448119475597161014456379112861530779800775778125235832938542549879985901051206149064337905690946944314810729187668487124455436814113973493271919412596823076227593847231246867105224934672429120111450321244475597523953044204488634764249206382391265158587876387090145942261104625411909899749106100667268874441901609900450511425060568877923110299987116867096472206337336358437994679653320843946602306616836463207332591463125937237216755419593815730895672087213651973434284818270594793204643086355821960077433178295072376596631499527426913235482092476425449271387018163233884816134618512633255581094277601217331327436049435729051643743867329618551035491190051828342113720442283003054332452843917345652190739038368732492643575573185310828916872998539449250726888203255367828662543954919920010529259443102842615866380780985731847467271303443625095793513442218709447157502876568971119278058362528125006590070587322872085142215998341951447771941121283902721798544393068203878647316425290018834296048872753145960199984371088061735344961217522772659345366459543933189897161772314684332792136043347187484123190645073700366827855769695668676036711022718308146847842435827952775350975689696820450388772523339142510703397820949696948011329123208246012502414825373387091376199690391089866459825548367314043661092184034059353270786759120288683978297235754280944290088393684440028760885904388861731127837000131066853474047678153069013260773176437509198004079417634475408859222038096632159774761694482335783360437062934005546155361774892511024368961963608062265769124037850003261019109366144000303279259526681885602516499951898443039768039937721485844223316035089839218701850291748660896584342728368265019482582322868706044642661784778804443778004459931953777031975295428112955928782702902194019587290987783657273157380557637846597404159336052086462510438471246385578859778090108169853529800291103810740063601737771343547793776563851100409177361254504788011707704509290965119173906479202735827552991360832249963586853730346130965283704768014104799210179971494997114945309945927391523440522497260841977357833214171726422016314904857717496171611757605925744852769180923352152636039637805592439132264819028870916532892500849943883550596865856878576218819089084390864075637502311515130054021461546775902304046410157055621278865211245218152580279128384975392468433355007040696056399420337036398239995771522997313345192276345648627934883454835183884422308956155294058435340802204301958659920355011343104948813847134415001024786323968090462167945864952146389880689473619665008232021300123553032821665235788130599512426868096410024197969626025515302514224617084443826992410583288723784724976775783221955001624267269672579840339045275173352059348083880186127175479876674034548693924848414752343106317504910733104575635393113928854265755105503137436439215821167518228455118830995121319074583091229217874291734415080079026533194262303135751130883186251246456147890894612789737996327029170048158418710650941693982958465408607026154337871752596277799159717084255158165949373685097611363654391362167294785049031991431977398521866752262289008890366147062178439107011724554592616874216495593908397931714371638094262824136640335422936525935868838659970421202153455248711556713739924431373239753896527565272348930749889318721184455836446666454775432907987604507935667677789443158941071983923699004194875180732945402109147983075140222827623369126067996979367135162464861193782298664393778947914139295061408532135356072735579246326416289329465216366405140521582781598736571716113292926193144215693792668406723974034795197413536988425888229936494073959232684356961865408612582788872643601112075294532014125899576543245886493416803395817306434156401906468565802933284175387537749792392691893944591973668791510142543460565337324374419612375479597314531814496573496245375734638660496561269460332594514303146069014892683836275477990023249099131534993226031399766727546126960274147971638253570128998044683418237740696286257787912591537608594920531187292174002758225754524449466659030427398861578523930103747592081112843555734505186940109282757570650620758591041547987591453528743163194066443418023301214130595858055102577466373510676043582282046266738344101534438450500792283873416642743721752843248697131531483564145374767462352448748552288733395337984516177981451768321945251265700610319674488430222150317268348869862181384277992720614532877919605458611723630573897788485961965734036167474015664476214046955701091952745681650543678594844940728323402913589393501887365969823695390322214166024492408160916791485026789395204029203171350518516294657139612592564061823802388092439482540831273235776965908277470919583450495158302079875360208737882582236080328041289608951378722149673062885809200618436863778718123539666964169912111260303956250670547600796785896799441876307152775306986564388032092601619938478492292420542296424488147511466001297493723530433256074353529031473310652874500665231517596457722423396439788017045461712202820419981021646454977145713495686327860018074818806838277321293500944712516718399852463842024092836659519359653578930778095531740302794399836505804553558942429137375413104177080508935592804373575744544282699592385623180134236998876635850126864476627839016074181012750838205378302331957589601545737456658512427386942534677468256210311807258009795131086014813345620396622337617846969565424453339084234027928033107533946197219125107514266129141981780980285234057187495046539792179108519801256917967031206251798777412241891446933961204914410252146631700983913653906611759608364052353423487569715537814735770692971167435130591613067996983939819585664370209448799635726654365882509331867561407754378519408509247825469490514902454912861425744678512670082448450234805862822334886026583148698200434880849382333742110867894483705668757091643483520433542061715028797737406999208721655770955667283301823771563104164950846378752280222445452195729108536744965530905221971029470261966166922837996416665282300149752342919637369693880001808617189833998666431219463978618619524948527463897137820712804809258612373007136279892974413227745970922031912625271737081650512216688126298595213876554483239130438106301731186702160489235460056997700465929556351932301570571654654305193473325515246244563203467520063469852235079819005571717624373166637733258892927015796250682729730007205799541138081147965742925509926141532550078355879594952195529235399312719693498542541487469787090920559825627670710008348545669777126924295545253228798679170355229985958026067981809281265384903666013915350887174760886146015969008691576396599434551593368149361111728132704832210182228659439403137087918038022453038754547184720942308849167068398625026743980485131200793218587848005189836955807326589688681249744417522805626065559710694473024889480307403420711929728121329000635350388002712915539473868358718810021681624128093329813719523417821372329940176620513465980365976262381804612625686266333308032428885537114143443545802770582942277405054720773427560322714048665943611288745218208835460005600652220680630350308116264937602123223750077985894122278259588888689117053177355273145703619277652238530955104789001905870341855576601552460399447363026669823534427199523638331544211178951269641330727742334823617364637414096622946823092377206105359132498697874697366735243460568256219184780744323491479829710426746614995638512118678905690003039710100697764572312216570103577994976543456736907872110688628809223382070570864424889062365792572325252956220493338218059890833577819916287315622916941506696338732377935910598439750553839690390203157635133319719373941306706167621222587705156889624907962732736374980949489752344974960807338702006035428727224573813598403994554350690497346538582896231362177681926303944888315099409721669824430730683813421814001615512725350436209607303359502179922756437071085253864840664309098789698340089932429275505765256903041861305855587127843481571266793256454917131411109294636856040288154665974542424628470242655129724773021866919563064914157704558090700827349783323241918377533974189587736716082404969024950405791997676939214848751287500072088073265946904555913511887004097068000784807601094328818678542261851955029048277346309998795027317887225096014538383074131914152929912750456556384097924624033148960799340674780643796460136402331585356561841467781333590549312767886762026228305443711219301659992391364370857384003440815780418613070559890383019813764541765384882352735801262926590811781836560141258349429562265158823967839584004783974913524615801835810666844484174460066781704244808610681636178336728330858067065715360026837451069118380904706322425779313054248039375059003397368133457162459515604281504938909047924807301226403670792733863568550002320617823957218908995035658321249498753071761799578940285212214209790832031094438011589502775898480632644437909474039053089885118194899526587797508178977542731399274954754094568097011478298034664212608891493892555840053517258995401178998693037372266122581286586996521443527754559983137292351258109495113095978505970493586751107716944387882258961452865308335388013799137612864132452424052024695787730757745627789973963964956599511377491872575796089452986725519462206701756386994446580008509226256821954466840640379788953907422218257822643088916740776530890339488283253261891900778550897182595676911952355365376748789352148480326628067483190412219700466394726790147473436221296992210892606287918900057285482845929036514430520786819375032007695162378312752182445919137364739103090428249311586649523546372460662148318305860446357840142943203951617725128450201710326489329071953411431382107602157962401052152913503136034134652655921638036811777679031975414776505460486191964838227966213401366018720683358338839601981568451743449333100824158226603127411243243349471392055994154128250917493445062577292785285438552541550515046702735016764280578357057238043411347212141855090919136587350801813329868748504186951944018021954964976745449225461619142274397382384556856568137435810090808051281685896772387145130568609304844323189578990897793340671335525258701773141691263984308488703024030987700926370371314910986230763628821977105755014467846444720886162517704841372935793183995052949078371633937358279837517352339095144631988631118291818476352573789925230316710176634571538976949370310017032914944960983095135158876576723279699421470734864516073535795697781434960946645038840925077183644427352863025712210455179444366073647243536372949316822238838455218151266451504932310514765585665926061903725797572099366672805135220717115525971225720526548142794259258803103044865375734523490944823978147846964651461328695675000223294965313514757201548624035130944977708369238256982408852101933534399005385384127391588615731342766172075915169380122905610934781154885077889304904379043322180369830591147472318342500425463529786644655595837825713345296466427984248927893546500991264437095657299752960945259638279437431528232062773673334212010660093065984946017341883948131425111796086346589478154335082366025474746360985672549248514064800364982847057133363446992526658997633256139517232095682947422122447921711857492809563815364949013830909908420158470929592063328530033446449629159251182026135209480430375173100316344287182020352894089674880609122812021957013275773511589320723059679061712352381274725679271114754569721493336140577275939450560790399407486896115706125317832464280432462556528111900393563342675070483771862703282977044188195052632517567834917720074002559958406855750571947102026980670035039556920977309877441542488574309127255950613851954272147873272686302433134794214621293625676321228427577649527185268304329931279903845209695953827992734333192627873169290362800671783343985013635082804590368831659389532214156581040854240807869603336030727532854889400926198349378291669035244141820847040081767234367451371408470045271198277606288688277212632287884944702683156018493757904672669204132877227356977320231992422245662022662799934258529915149066986063200828750883032940059504828469430596500425788453562252761293464243292220818160961913008910511087923334532906964784936923744991717209067609198262422504462076091921503918340979810969869375047797302125993193595115796356389134213658803365572396427563907638083254687477754208834380545168203932639462929244092087161424666205846947384409021708736306435969765718026065291826744028780950705186668349426067411461942287357863769559592199023184078908246927478726877305631631332068773678334047019298286504522647564918335733003274149109590106691077786419973820160914799296266218618356384233440490454283053996717077090925906523408666042620669117578905293020927295269274951891427517544459834568934734196316402587116535500925182334245125268862327832332019072507178674963820942824959897212094043735130976294721970114574510302013618524123146447697715851904069005112087738376498843233798684904789260220379917924777564354709961044693929475508217465578932394180665699493276010708621215898951977692142421928167758635731140950763548791604981402571742936617133450856742751616300227045005160623266762564663029517437342580832294200166009961387452920285058758243638990373631051429792410612845468879704310146905947133059516363155529671638198497852615568071830228480741623063193938063619894415204631356168238869370117254911871903693965780502866993684420935963910332615942697252427959354369088688751042870468901037594621473817344219208055645921336302484783091282800533762697752085448210843988316911501586248388871682535136129223477808089810485275523241275507701038275514849953339520880874479208332420614287663799226992831727535413169773559667091644317175837607417492705207468882867662587508896002191273145518576952159760880859263487515259355778952718287739511502937425550060631253268401158772649020538112912751587372317043005446330914623912577767724211607366746050184593666948110791848104188874896893415292306469111659189790611295747763333364182837032968465182206718714932144801226085284556856412657697054818024422329369425710082656800663874006373622395222572505875031125320115667400332179713027684646142794378737558768367024238482587798822639939653947038902587950959823995470125381947080222903322566054629684914325620740683630132881901911468533283476144411856175510910736482963296531255644322069550203504890920774291783930764551859258140717311211005932969874669678431180617419967256924308483115542440661311116733666605843337500976242577872020960539801850754319886707567749645518185526662754302594932730790108416099570603212501844790480377248206337282429799124318015390766518515050826961911721505332590993838557922191305891261351248629579194963717518392148575799819155214536303296414179688367482363315424586373290751886391543139066118201646396856030638537990927337237310669718682431488863314692174477820630116961282226498991702404095362081591697030511338529549881397750489047695200151380317020665970016067614695397258610954530421660233581885346919726105972848215992234565438662678767501964505872568703804124733995079283520678077083012344005672090510238133456690977726305502838189728718959314779945706821201311698704806733372139605731667798793178611895569339034573839179763151662858324256317359426203759352345816764014662599916578303416966334235507787601886017951639394359655365974010876891681310166948805621031403371044861943156890232727198730124347140927808304795511867215373278225859193808369478803498891173393751850602193088787135291050762497075034186248479206589038862247277587696808808188029761541361118371489567169202260723977284827939532704948955763073193461587547177514776956154196130606753624975693733293614378893055528612342848856426700422091102856143295858372662124727484554593007298318898427418582267378267877234641002808613304294579084605345299555595091458231062076422255230419206469484878198869332662243179222104660095033392212672352369289431984051505649821327339970560316460804297860003096285144294180272848273467147046205515591381572449007502082059568691847586537649510555464270368979783533806834233196532203493484691855867576204058569377570968719228253050608333960217685043182712012786461119682649889717602299506599030004973786014731246546785201363546318258906762793408632080546550006073890735194361145105329226364493563134032677674198928898746809413422426067709614535902322103068387061036927984122106265643528763602236882793442287772536810467076238504132926555540680261398334960200015198563491776407709859412282830489917203283115166789794757598800851850854583125830330460045607550504782216737703687492862053695134929319055435924371696106213555246060101647655137016304975870010164891807758320993870873505734224940710786397430959732095990701659942306388954392442128572691906607026626098744774727101312177681837801590514695868468164978184851622937320040646787937782151513605171076914310135808480264415392553735250352947869548583404924221686530364353304004165750726864186051234302324699739838593494420010872108318662225452448494058658211372463264133145220364657963420481538448591462712824375904596236728706548979320857784855995647018086379472213827308406524494613809476645303795884164593058169916736465278873787469749071089339521364293070648085709076213732049840772963308417478149414045037154558682230164068014944365256075686962734402483280875811977128589768383461172527625197326770962923661577846277873938868561157816999401386079410113228807422208396094952068019813977136622411167530188559387560217668323099544698456420264714477886588644673884357371031909642085025687654221764127391195950280493199913754731627820307806751887515378303174073164049299097556558232515907362257737914819176109111119038102491784098059380245639517746845658987939585613310622383433994610754255784361105898794405867507521015766810565491388687887128029290880717896041615796161347450252010831095062893641867589326205883534585615149178767163137520703749129391262526510168051614681933776041850849462399799286910238866938412559869174296075444139730457297012310021591733315009363572582347004733302542744169233057369481561975898710087490152032984438733485927133737900885974485465266623004802011241786625427441182619015260961457080474595551724615260290103978257163934153533642489575733366113898138087084105506521130642949009244622976867163320281328965824867582182617371746855402548719941972650376667603690614458128145285109998626695529933306846118362711160886726142243377215392310611269846249983305723522502354354476661683731545642615879690455908101579496958312219958407440915574188720636628699806307207047065100295058352662752950748565180221256695479644492272196037053427463354843872385205557841455327054684843495958148628363107926981983643210668278453081983817115067160825000901552425729132920832030369874823753883588725957596975821952329761113002214305139643814136121932233375938194943184278854239605869176541649976444440278501241510081339517186240994144007064274327779195863822898965678858601113246101178062681394900217693309391849955413927792233469716089652262621657578284706741653920817493310374432339733462519204797610781475450134064484411787902004122195442203038865100771145482066756079953269592875569043854676755667430246719782562695318271890377725244651131806405243799823671534129002180629000694350409649634826501403325520246301343023806474303294860876915835615864214389526396064673391770947664117142864110826079058830100613492997134762823439560139630128880089666380274286710839380359894148263637177211604478551029731862960196132386957728963839506715582247684001293567831235348273794457336941532360681321838841365735711973562408779690526797899372737870328347324899243822719237927965880767813358671774340292697992879640839152161220705717756137708296507092685699195589192736209588921957752214164756569683967927603368925812298132496858519793568639818614411592186469431711274248691369258648200980440681016011251061910522524633473041578211983679973015907436303758017373490521183822937434759684604304592270367268145875534684173539539090228654133611639604936277907994380127319890015415054177712719867314151859686188804575739628710818585965422538135443947028629378606986146151552081731674050169942228803261731037365226003097267686152443766255136313127165772302970614040218234248312623424808489836258346265314481408406611373262784005748289898805574460494614958557906775031809036140171118764931893566350095941960882303738315019597217117107447844427296650400855703561705339486842602052685931122179975399715131653235578021837628909128145398072028854523425049933615199694889139582748988748532059565680062373496973303918835777740806644776070520892851946184134962501253971033472920199525175111488205869708821635885134266773238024370651772797995878144119314039239555384909939049205249397641345675810263242104087064007347538731218630478830363126946657742056739111881223103042669922555374221066429934561685840803454332273812001850781163948060930901933494192963686297602193180543110009847106664378738061201382435396587891121233452432467405911724549123879955461866558417913380535598236856677684468439405269750792356958629427406585539871351376958012884181776482808167562340365106213879377281011811655292204845541367346725004339607080795069003682469888957889593108309260644775950773244440855051648310000031253420708563695026837149025656372684333828502107914175069472963026021086310967876078049579144863144868451002325465994527240279737760685287908984362902133273901806949320948691080719009197083209744954319640793721369838749459089008474428911882530198190029928134587375759505783082586971903174095070283796372603024261952501835185331548646676005206290434865781751652977073318589154022204202395382378489402650776274371355174493473464579096036866781725845637164868286384687142293184536017257376298914444529715700185453256092061547837795544275817789382267285968942778947053116924593086312760506358321833714545560943272326235506521715204502377746822398962801338329312987225891410028887155207590811860461970317370329988918891912489482983598477871738424492114699127769942538420605704453993656079484566345779870416110703187063349096712646058147697546996479850038387689559209397792167016198817076769718008445082400388932404598295090154510298552483369093720012462044653947215554462014460114785121440102787963211473536782950791328111344566283594574470351474023423214429348837915104295093843165622969208516149619770143778389943254039091792218418886885247922909154630299124592065136401334141754618078084006367878063971050787341900179888704437641552400735950996372064074498977527334992588032014740671326085647831252014871633635536330725788444676133414702970855244836324808622292907314782549041507223527193887483661999514734564795764128191698136647907016728867082108913356649500512660347544768443893428314872372948609029729354068167578662707313501968258135161086070704353789858636210899867923173791260726786944534711172418724480942234015205915077316976932884756357200833624741559490629952532031007548846528822376471175534948287410407198484662152127260675473260996043379809187395486837740060932646292574891125686714794640231885468567401211336189071673613905606135829330781282507691617942309437871977136391886528125674080491428842582807014657921489607500846232566296666263152516714252718593835408819934066968191317152236047314914021254486439065126144655208224816134227085146937573946067226828192351637626619750984888668463306568177441283807109317844219480805734811627650772685229098572062546108849176913880897451677552043041529845686104820310028314919756428670162781506039619961048364756186295419420606685958697286324309070384464561413097052842962985265987554661767289396844284855372615867383461044867031350609720558575473865059376456777590655930482177804693481327436360013602361606527271328266388799370587699263886151958344902653418840080546701398925857768176183803057999880592667451545751052219823103445238434500219380925478335440813571106049530051253940635724112289148907506202329682807215359503904773126078241952296108917629641291333151660702179018395777064188648695108296138858037553054877417383211519435724040621539707376160274223534751366512209987976169876244869417574351357510862035936513530482712769054965849934981481310081662970200516089614406813638606439260060464240646221867838637694872787254280393169834761174214349094254268738624645485721928067594167343896025610304338532484689337508095442604696332334194781732105259459712026590419949746467320012539293255462137962323207596340833487243395763446281659418423598658811629099777806939757434221511261345799224784706753630180683580392948519394248983387692183292041483145522859253147324300351039660468076753825644262764504882430819991264571685988465282952572694655669136385875350574357134519003623253075696682941004026549301617587232666496269330814875112940752730064485252154348695144908276237918418741814243653047644487234466241534653074454444484126124819563206723289780306605477271911334893709548875150330989390961698799786656432464722725341500293103706568487759705994072139663840029312251855787842275083661488176009607324088757374784945504812691781771618510853472428737696965339932505072296646084556621311444873578171286654445955802693467527831254560610896330389965650837863367486686787511910211412544120365604283916978955957043185991738525277826101182888593535850671052202731180558260807804998238988487423167852218156542250148942450108433902127000927156580078909100028024014964513096951976008716291001314420017826721954650930838555819681572821788255434011069463234993435685663357148796415313641193447541215263234026571116893090075514261653721839825608312441641838793615754238355622988969165849374096561495615107578568664369183970817718813299169876936493479755111600160308900363385515612970929227761288303918797804021208470879368516823511473640547811463349265075242764655536050301819111264233181620658052394917578754999686628356557498459744403581323265916302852687268035778386473290494955512214700860831872747007706775380620201880360102230476343970372325223773975678808475018532519800974877381549321588945794441923721449582833122196757376380267517854149544021001197523748181816671816551565667918647216544939117680096762012696056575021751849583603703345033241754122146426155167787597811475088155618663581669378705212695444203786364797179625455145883703069498758246860023465522865086134510470836639960055088262041265510935113980542109171957322125679710241569374885967706773770183615421509615888330640337531713809965478524816414661607917739531939136410001318030805884210393071926143440316538353427083441449380785787046590002391860467230146270660775055086917854748892057514426752980231716406769448001845205986294330050440251110520068838336441187903185580482749892375718676435567791212324195961484385453316649981622994708872805560098420029316495621162186529253334990585817198744823613654389633945999106758635789752376548634631430133628395617291281012621448126037813500517418116637788588898917163274003969938553824183706719543800695204752557944907258668208384556802859234005824506607087580325401388191224864184422776045242988701659261913771958616742204260258537073755735123442732679157024314572829575344948207980218323482511480244144535934718593584891763940099727274888858851271813735662427783224665631353640125793085346840438992446935406220757945247488409000211007547189569613306057837553797032412915403896263269217917791518270313557620795361883440862941576830631922693000505214591519480064787793975279329336852787448792431287587263839429241813490294089130454875167068753315711792420060066274059698491108561525015020926701255833935997994258951468384509372178646316788776051415098305902944435166815861422866248233227127604196725431462526829769966641246699790334475385455557488307067766556297377522177373233894838130201921472221879123559781153028972787233052028046588685760540930882983339786385310320966084391197868472942079101092993832097942261433126524515429887694676284618236521301587833701437747911445968609218819164858097523615487595800460543672178552079601994124516254069588250949822107158223347507945031899567750623444297714017032392659171807469988591444405495648429615111412692855616496546065898400744682873366498274686697890211128737493050792190258639601135496732734579134907887207835534442162409014299140402305684562643278238174234839870417464827038468989019424741610820244551912140638738445858026369334151910366198191462406396368223142156118714507235037723841537767616219822967555153102638357398022133126148566231243707340251760295021799949989945399880622808118574315938920716135679109233813634610901757892392392001830661783717290421977272107945627682867883648307505063275010910502802181297066368508456638055406752913905414424907366598808945702593602131427396116860226219570708441521029244140629014692552891057808036561204209306547177190344375384001660622297623058567261601213130122486636487906884771385615459192342672122732341742574388934042857004271298373439684497520713515237555508020074597372935916689613470599379283071714179812948088922647588181862670132622061304854291421528646282442344946763798327020470104204605035265897968554449721690107304258000820005853846446750576148288576654676156531623679909955303938452721136460585069210512109570200815456476739472148285609510788276604862344076111421953890168509990619332597722295894433490891598136169212499609141918069104863936473940970339242981601687326770246579024928292774364768674662334274531989516230596673959723340008179770894947332800561222289654602111221311321056055303872829802536389284603906468242351768576135742015396474851011930701889494048554566222775409166559511908186574283230807466506654753252788723447980303688633006104941334424422096522093735838210094953506136672104664753539884047424961444628960149248343154924578006701251476895180710772889450950691126403351913220248266512905088519069211818962348015481009261491915214494953175499049977906102993682783365612480172688063876613569692711552792279417298375673664135403445229365251339788658053548761776264891394079358439731780999536104106642162995470575948971020757508493348330990742608719716949571809450228746455102217516723127321774087966823739190900699551452829511000314901249211376606683409486704507509848040830937789821269777042101480051859800673422975587023894620477587585878563934693966361288448300038829564091910755421570972184298647862839798934654181517639334235775724399279690249841018843636568606073920784180284646464468848666293861374657020518864097421729710769541201832798255250761206367779961169647174431083840590403504091232852528462862659161701776105671442785314629410421843170905862621137744276551612773854176939658844573636156947144310706883034728635759974807293739883787187144616358814878324028450083955156850615256858851686828022551888237460028806520120965999027663857843922198100050539156029898933497752635821036469411453825761170595079875520498922754092427284154492091903331469785639885330882504781077631214556465692624805347921000207597922805415304553913485212518961616922924076485211135039261429529548703719843947482465341864924064374642331009499337106468851352177187639434461767268366110739569765226245163775328111621686859818685431416712987853484020312342571776598845626986971993178465337646025360839391261886156960954581275507671582326898937631468616738172760776017374101930675335751006720733015502072141501052494656223540700389445647985946600438341538993543027294026505517877309218710825645107940626367738421910152096108512302892114530806798400683965704014427001707295497296225925864436907154788997201736526000761453675675753118155398512552172290109086883764418114487004350766399055658380986451340614302996284980791889872009967990636892458500618833615232588806980490454213834222227188069337742025106865082317832514276782445624814847525647255753327665279059314707420155490879406488781624061046406688294497539683766453047303471605132237552192547341644998214226160020299352790075373904401408650942495438189783241066184412245010096708243110223183219651080081954060323838685161565547595710734421910809003358185255633643830806162316460404083170402981850982771519940758599603786025008386283856860738902284824977901008098797447678657905675511994338956009189644165013156884589697006156657597965102887534817550675930576503316806542354935899196725760875833105109782758565192482221126884420096128897318978697342538558060894553264880421079907294768056326477813077655710259968900402347255332143422103245267854046993709021612992025022206531409378322831998967155102507658830492961080561360362180051237648622410069798353857573207364199866485758010198228040628054209474907824758583971522574652237315162604794585390915624771151658232906711826187813782994920752478015146214723894409923651073023519595601555511056705453380005762196564551255667506157322946717073785335936722719224255043585208489735537138262216154086612278859883571038324242938066730696895968826128682384220932850936974173702073003384846710076398750385056182138731233783313753056084560815378518921177451041860646136212529603081862518076814560250557185339408466860207698721245824996129321057077476859394655187811173119712274130570368821622736349190532504662454464382282646073605970458665589499862833855961494205681798675847772322919177324995226509789872211878530839076488397404162911885259229820716753126442061107063023330181270518114707063998193899985038135308012653410240101995982423334190553903866556924126061212093723516870893661784532907435008447049726309201126960912705756395622119804328176705143092285895736604201025133199735300384378330964111847602320462261770220531971565453143148621817217007776503885718306082698200334044859755818873423263706629061332646536512635548911429621904797188881885493708436112443655255938122506924779627856949859128351128681381292566935585047827936883007786782429252210242843871930252488152927971988203104455036583165429350978481403436699474525814794751335779943115326276690159203948407773615627493813602742243607113430580124345291790338170301116901153408309642617129751562129962541941851075816187373979578814906303403616523771290830178224347571148446277605316741054610706895670663966998130973883404437568744163068081189814293076807168139309896841240852667744960224256397822728360450340277295049730657932473364429605604187214272357774917273151872368640061638860953225310986562505777471516476277158291256566134072966089427411683977920006987472001790092960588816950398849521419035316421734718416241607960513212881146182597433809173122254425237684722245155079405097514593908427348090411375778562935654037447267492641875219439482590577739519320195080042814328672550197897002582011533218352380807960985803532328286132180929385414634644807536013177125310829788708514364677682439449603463533229735610417063031828544746843472451825890622240619132677950193076931010023960441509887599759356223008165956934772651147136644212309199229886672942912810918106044210195688061621495544464072602970269469810974906599478312657345648347311138189227640022548250662073799888598497676170032219775716451462539347725578278897795698879385530734445870686132503232262587657100380438222791580521368472182244131620184395003414476366782466456595412426640527921693802485448092671651447071608289960322468063903845817923325621988503144203723225008170461106636647631850283371957311035129682052180051309324980642341278974463260418470496820434081844540274705830224371976375860236938815430619799720077930755154524462397518449548907354695498757111847588747591997358879769261185211282301168408378945828128315011892309429137847374050411983218794669731917898012594140713481406904552606752365376580510193636348890698929921544390286873843717007387033682893995467475314433671229346310010441493060884190272035971302068089008975946056802064224200376505110061051902303238512240376266956351016684510008686407236138265121713221484290908440430064932286250074916481058274699244515175331876986489510376596313027132457602918722775421211064896232084858382331779750938618440448418371634417118060213155261887968946116904864395099925566828542769330569410703184010502637848885147353503600080125969121188777828497723654226296378097556839093869105128438719241543364739967108515610338918551322832640407265644409280394472754780685737326362877376948197867143919578870409804927701299550472401600351469079838098507058926788762866886807879195000894332736103892972430792225439761122805955236812996372707870762610591272075226229876487563424916014050675998233798583843944744474692311538379621475936018843900541999277092524723191342731233730700018238526420445925797565516047345669065620793272610952466533195123415023707795203024042131107938122552028607456618664882304281557692233721058420166730245652053627321611242601738518385089418265650428640552889490839757185095384553080495242876794342557887849152276865680823262627297560691772991357457402113125757162532162414745119771095126646866595798031007334853357404444980885048600768716403157520455208409745570799339371528034777351261647072183860986578476976052759444946451181072621853927903692050297903856706491683279644448425459464758776843181170801458386707709481596717298101715582999639603134462772354435170811800664577162042928005496461952876309459327183774351924943073984905153776380246358815732390888435411967134146838916496400913686647800718673877238012533972109515011366930356622397046380667285041992423166461123101259779122965168866940793348824786058512121543181238596098797143467066051614202754559978002733155021968264317370620684583150895680548560596912059113075361780733885265229162120671121682084003313781891506981235176500071505006007680749157998774218970016001167104054786120413893386398282035483380176028797961086471153087276082998776004249418689701602753939021189179589733625013324153175334835667672318032588240837717064629455216394149275660455760621353709828298926138875863588524675582130426603894885390391886943020511941031781535241958684642186881303857539546034735358441999751433728779937304533078635770133310874523217939250811373136817446358464811953265079534186944823071800070242765274442483574034800960064056970188545775158839756238898144212636341328720310615078372675207626127052882265717741707368814659607084061978457640018482842579698669879608740875664644789992421565561861193631296150794862549450955549719306127437866448406152702740887176760376840943326810177983318934899443783618035300524410806986356878261847084066664880359248700866216174962283845798720058793775862797653516559070311120430728611065896286428988845925312282186567514154149259122106291617632441789119953973215667608591186867447746612864053700214487673225301946743023791960669539046385840474077081933782481917834064465162475594964744956437923858651498896361748821680703644399831787094816998205699993067819175100951470959607827297515324306525453019464967911423193562144004305416923133842263235455173992747896601942861907607444982237349879233314033929110571084028348270439844404581784995369662495609110420747841538899129251643117579312681972356738628067841215203911442794220396946863983928957249400238663282058878306227050592702116864510857274660472046196824708037810750131935640700941527537947665446247116757746169067606855576045047804134028017479448055524665123347462880095776974137184394423779859254237503545295977101811095576519524250780684768217756655263310369653262174635032358863478622316708307044285645367609582103288009614224985418712733066041411463971489335952815282955190962079713704313476194803678162118405899803920232012019926422868200428407822458426605738571039766148959363295066109641785699324345513078748536791905021716982999375150082641525187114380834622905394100317710563979383875191092824075374693199989437989749483828115366994555199086819355065431722664950894554592790206783538142107560219307655982379827840394973330434826054030052883877876884288974608723063364001852895795434588446142775436490432863773093815328478821156352693598778098420237036800752505724064112906950989593176443416178882251427964521783766940208526177250649360143772866400339178057212022575072552844117618312318188936818658720039360759774447665045841271854142766535338583332624920029369708037076025515180516284172015407106999289454934022494822261763248008917592796349727536378069412123318304320225414035199332664711102770931678894233568007620059592774790403509637804072344779302133627818549693862984875293093393193294135350715543223908889436124260650614224965950194378063676700442130569607528762555675456593367840265426036555720885914506192528104244987108359148713287574301633141074449824556550839610648730403726853357177468714327170672215132782108621962313716691709251015608018444023165121091843494275205645212783614481624434437293522792525258370884419710809437056751765179877335138070276858394446247979438088434608515949182389366530521143521705050573462017000543331426965489529215093540537191060508585438598244549211069497781328481091042189521338344248669297286354111398060246768170243649847740134334162401152492774840395915554412316188860767063962832805511865153657864088190803922067470645203778361696454280317659245767090115453971485847571923818322970072829742144912621375647502090404396857696178716557512566614825882327706514123537222763851345322278773518476065482023860647992199833086622195879177778988053467359476329107626961064699340993779312949782989857117781225340529138096893191753736084280506642383947195103094821632401969220682885034608240307887077844506352396774824352065531754412991087136612329314453255086081978826234201117108005387153707997387593122702597794066320285797186153083355981040188847548944207282143526686851803259543628840640019317891137555611013369233287159385666921892333716066700439297864289615706614479245953223694169743736383199619506186091594831053916066014542108676085882813680381570163461682592733225276199713432181453498775805811182243705919590897499276504644248100662734867028039702394408941737767345030764648739858548580715351012589275544188541187838925408786672760146647870468048843377060711940543488146499667189735888219825303660381183336763720532548501958578266345858122915253010059713759306300423779181775476483699274899062162406455830015211551842443600943498275961553650515330736859012541571076156833138180782592882958343108729156758262199584512960374732416194637363624788534636657270473908570281006032265786498480908370621498351648777314345583994962645407883384302487595372964206022343287175176237743928287251560453216084958938336332001565702182167415038845521903129466396476707467563002404861271800678142577883678129557076449971958115436611132495758302520210154286206595545479327438607952474373141049792697161695112495937291094535853399740856544276248952418226698822728688459509759940625438033724312465089512675031104376624179255476269877494748171583868549942555905233172601954024535841347932517505646866093139797345210594165795587930436947254056913931238915473494728948223224141808691727772571028169587971262744114267581942423238487623087563558429417685537570798917282108979742443450751182618093263630211821658213303937906029806750271189641890297563293666552188644823403626137091526220921102471078055489672013095361083347366768437052891479027236418194678574500861685868817152830523815922216572673996103751871265028387895938534033397809657262214355189231358786169214574856082638382965842453033264865375860777792562112958524517569739992837152209121804850824060432150363937842498643920222500780826567051534517333213237800297222654353707760097300916031201814685316994921722640693452087391037722538934793334921974726116785157645542190429911818927695610463175605768626136998420518852468849052977848449812713397100768592851370874499067565061025392465351635314344598017360520147168169907237657437851698586967782865032470979920482218921488910856257624170981820687276314388224366076186113125265121127580090894585793418784481977113200447131775265642281380872267815548754171448803543904352775768661902058457411023964722822532310145409692786032710188414504689473600223398933824824391446336688498843661007043622780846442095843843823170797232104301898861880835486061426933912406934192489434434819499711856695304090287837113438764408439871140808843569524898993443088217665987508449414093619965655944200007720676864160469470566707242249139687118145219357269085848665706597156157732115707932794889701289404801447938941566609606979970544855151323193273599376624468322827665495607301326436342776247814593631793679089020396032989831274484165330271993147812657738763810041343379643560703088939503664374792104741157128416634576948990637424851014407456156964906063785917854397854726664370139907774158112257034732104470650003948364251924402210193687434337557172627797748226984019813372676836443084780298919731138083160699784475257460603386499487263459806555446454700079151236125959350683158164651454146539888790157586505805817026936453017185579666134947555145522029100593274499562075142481695776177159799686665141934162564016977393627599556416770707531874549781416562989214423296776726413100711706765692540919066395110254877182859453296585982198695153940125357725455444760629579045138485703725417180005092881724751590964792028871127392350550447058162485576367327956672377449773710275062531540498262349864002073599250874749058655282005590298729343992212500117771676634089065914387990732903474219125334905181387296553099647010663341547421479607906921241002203604897005262471967199740466238845205774655969124275339033661022602068381437866435446959723428887970941762897614478699563167986103720795614945860579952360638802736612723711198359639419769462534090735712513398774031114565112028576877564582855305368469354590853213810391937249816189104006680619222516702391356425449601087980733790564366904418773649186931746432587683891382150557553258270121695006587515591026196778403159902840460790338286732303988718550852076711120141503385100174794621127007797896450367084160105278289864565015192152453014345012165550943533194888450330493517970245699920458650687463680271186717831836078530913980557078065654376512698369471147364623258090912460515355193814999721364073308815121857732636589628215551029434188694599464893353518202463543988978661748379442371798985341947633610096931280179174191995543295875433836788829486448651742786053924777149024515006234414846660662591146108794982066659981349383503490557186520758820164181192905912450527233955451878821734853348271864400841206041475414333244217157947793764919806571673834652926928034934197001447475452095876804512753361938148370024282061357284416695897656254723291405388247076025143501826066780090653756127411051662685884914409655260156161150470955645600989636853277296305512513824358946900511389833425395088867005105324822441486829124313548996978296383149406171149316017950353934670812506704638781624906879954860340769677004130252568159056569907034372187699859019928956713769743366620534226731189931197928689618676296897500904507015582834283007955361772897351530839794647679444246516288420332557683236711643973414386016591915848045385640506454020074842577795376803697689088703818276227168935979433827643317157098115878638848527693364105112305121946115977299752804034706677310192133163284437458945118946503880928794975965573876422031091156042516638416524848302383558047330767501939412149877177589434054696718244862382980582772536081531248359382290218682067123886610680342895165161295728998590010941579880636925617448886483372396259469757366643785471636612441454604891423688449656494986603889570921691657603809841348458528419131296489861833865719586654166233989957935530748948818660001511950523686742673874642003634126329475174331026187649391521476954520568542948163941190654780990857692706827974700415903001839003381320322889554393806374314880144068473697248932066600127632563116629377143757785607261015143699620703926157877622650354498476399108782461789016589767558781571925110945308777448356468412721167073583408426350649372391192501146805641904117631015683621958473306883107956462172584043292220677526989211673111613525644986441641262111119378507521615416908776244127090198586820099737261809605175723103645986114839520579203318073041877762561393089241707781030235592491684714304887476894603493934029949609026140762509516128606351221476187196146946734856987457104148254585763528777884461171672097978051796954947595429919300782940304332876323841008842608223874443837714480907447773275607594311108154924933151885285967800394379999113253469407944796444425615435613634889597106184855710043230569581262161818532966917651793813499241789917951503194836076211614713579293471038210008496270986086172465872991496914698062927673215982388952726312630810569327683613761218602228772888801336124021396932585552808343795351066409996915425506794022956171331255805528090730310229497442998025043312308558809358110359189281598276816893437518603783903177132095195711169357660210105045119772600240103927748160354508812136665482365125021438630067458499580893344243905115305930508582994707111488801565677153338391611588851555934640054264299250263477259358159183294632683299080446698789001091135202984493835024784240410179385333684819337181978150535219232288376964895908583176948623101890982208116250684106423483245166128233508064043596209396720934515590244657909823698530940032716302557982042186223009783848998013451429260421952348999626489828935868565784474955415459320035456429976323218026221893570145056913010410513744472070972867448831511678231859777751693605071867147309298509663375101182276930942447326371972465266720102366103242906134706624675943031110566021882197183197013683088707992432736868855003977276221045379594386208798965744022618846563327516066307942860754736754224178876438355175227826839384795256968731402490013240166636007054787063947774373259236230514032033986207870677393865858979935056460455808084895544122059288243212299710189337437630398279418846123392974223882430556904967112077145507849967880406048502996144814535984564672962574659972841965012980067236465101262226922130250006931218015265290920936586613439411998201884322573487402897335024893234912491343270498230766713924031085666889709872320730053454857050143913541832588455116049416441772888163747261979421655138858586600834974744422237472066256321937335321764801374497305398639471659270669996306647406423340981320053332517490580551724633802970249238557022720217971363635351180419181396669805260966926924393785028292579398720432814633471528542123499418534637208148686974073450660362880991457887453907923054198055690354978370758641536866268299175119703661612057726716047934593070583230571315720909872240135325966057377251851911998473053699759577369118117946681714145960065651870318774395406671734824443726857071052390257062221195967738890528132117985202091271261860588580017334621309848676862931559634524175167166165635832467407438428641177451736678609990417046800393931113103489575919763892182990402069439883227480130438752977730461567511704047804088600884546833424968940400573547306075009249967720249559379896122153385766861589617027599902584382637544770342084257578920814835182016355138800141325742052104860099519690530500898831594813993061797503436877914357449724973523698257347863226452753377297837002616789022322835828933112922886514432402668250971373217714025344507185601267553904808845498978521451048610861884737486694197040940223231946430411310496754848957139753188310208880617404826686819070449098337100665620125663271245489458020221018460102676443696117731208062191224537670333286978512330131401398127263808714168707473795655249554253581165015070342419102076273071870714805592265010680221546414305560919917713484607155048902430428409437463355256466089249809709919447594995991580621950819848244210337994272071199805372632957746977408025121308485233617752614760869693798619878348563883534168347192422982659228810090763201780728332849941866075888281414539635344658134490733880907564394467951781728478360995831597515489051501174219184249234632443426422344857665263343982578696575981394132105075260763371525865525600020055566142980430542207010386585466599022516113097443926911585112988212900511482080242097703727679899368596187991010658650787724118821311591356682854294931121267278032474527941599392636284996860622520765531260330911570846159232010405222668787722908849640009794012526551599720197791110094890980355394851533503348709430790621796394534364555704265621743714902006768940994138672864516509261273754894303670439562014113889828061226438619759143657233208031591300072921134036676975977792157469166849934055863143045721514748819885093176812779574353768814558572431917636847235761471019967956637126621611387695306987553924140685615610279408915392133784426211461663941168071013780398910660160067759942220060729404193652931462437613474117733514488563584508871535201630577280049113270930485769550672926789843123440761055551659453073734272833618342984160548551868657880641165471750036005881544303552558793600244890890778261847200872205623852691524366127413608967905619331161598689638906445769864148895648228701173135646729923003264072317461248617490711983432852249114112408171575114059391348371677859783811638140699231365080786090631177023116074455945182130184997987179608449799690147439623685519620619733256028692087481915453713937290949599022561135706468589951341976028318569175781088127514326635898182881396838529988743258846226688838876609382020427076602838766666877652267739916939390859563063266566712304860191459221567632295583590075615245636013158204195273945996931190416096143170869658704318253439793484620013131935006444473357600803637743155220954433852439571767709849139681911015316023448559803200067111969742937501145105290344188635533884627399695052778969171360417553227990340655908200029475602213189999125562966255103166912314266104096413889370894693861288351743633430159404846968663672346930802273023181448449771629123200478836398480982644019393038601892396629020468512733795661335684695141632459116987635306252736941139843778065970597496464283470295042908809199453150901414437434517392243195783172621453116451034010209561849782134119905132344234771430473644798836047546801948854416880377283621053899571255590818466497818046791974486888108236406292505821183702166112409981086607497297966075201238233127357805158902333494244357963246019066334038086144208500800040878886548988765803045052708687189767695526752609295734032346512096179053802349770482941088864541248832961104924024189653936394859466679497818675889501974082339083838926597163467694042064497738490333611477212049889621665293623909264183294291050101107400807638669437295309887014614687576674105239568049738811262936745316143580689589704145907035227326983893326430503975535832249214160274331366598333729865152740376339088829211605955607503639775004909186593041201297184601504945444634420949312762014865797887601345396862788049136041532570577500344024744692169856424269767192478067205793674053984932385827127482090163839081907627958203989313235551708625314677979408342355914641510666999186231892997258672631608582400307030833154753560330042814644403674165781632060427382232302307888535958358862453831338748283339592851935099182047932659271467344106614373593406929436144705924543947491733427470558613989789118856469655995772744087828860766904270679514826694578252363772401972804311208082720921315396143004756910085275484274068358480591403883537512013525874500914891077411639545094463718701976978205158804058849793105411605024843549114531940895397748386522470697384899927646434066407657797817138191134039931946477133952594224182854106540611172379306897841094690949596614793881916005446232255232968583621246277307159672815652366396386137041925074762039372865056861644465177887813528911082103142107663780062457824878028667457651672479417787316571326197748996835676387435182669887875512438960568830524837998946788673999575463973129504945402106700596829699102462825866957235993333108492723226137300226030584903550017947661337774290238931651053652772535549033116519154986900820964082350251688627764341856119661341052973789073741290332642164475446448783228709371413276579407207618371176160947806632673346641058039211008287373490142248041922310833023186975396605121074807555504103826253286226610696826656271733763168037798828883011772193742206528877809335769802957629595378667306572869299266128187701135634162369384048680026952786348478569362463164631467171966318693458528368802933103471099342983279115560952259799827800378755918665544161256099994434573277739910389651611089575056749850329277367187950790132473281629263196311478910202915612599633529120570811907161090445940521301599070582788756296508982831152734816893466210910867759782991026951851315946753961325126875477537201875256496682613974630803951224694456520237207706893385400367724346712315430018950691019873672410006673753983510404308920183319640227507225322500605969446801956282179867446269973560774302117006921398674171782173553485075623640006554893049530710023280899976695166060608217493325583884188995225856286081407298761537210315914822935685506385461062397813229095557767375377297039163693729287214669303848554382532549311961253740106658827210072595485130134788990385117717396957503394984264710414475492045212674414307676372234119877714248417098516399930774717200912090125742054770202520879040819171954585192223902425688345999486638980347893311145369822393449187026932246901155930988354945408742295395154397049111116870284257981306593773840990597987200370462921205461842105061952870925526714121256473946257418149189286465513175466902969060878810259884486260575967046239619656132672543299370284658266776860942969173492085113536107326425162833756076615733866005404725819709983739763979660577089922202320684475109680098398276215004499830371398216381814286679400110365425316836605315224382487341917945588734764481535081843693795533823209231435548446806651834095241246190128491740668449335260958261261886588204907731800596385338821599052978873923309884051297961719880713073149350766250220358647608221966680130959976124308590430450711384612295899549142370158285492445930690613912405241793735857294979118595552381037960526191770047973406077386525672626633559668599621760970586792488599967158287508035065543699443881632189752277483618693779456462163231952519038964560817945529368735286135736162930943510448206673355285551843415898549438941144684177677639479016425581385763437109163455554016739918483264161735940222387224350761962793093749736565785826771950441182498987020177067808174064255087663692544054196080509710040192916275060600864436126370316028235947170236591841475365133158085704263921208175129978130789940903426608694975916206756218038871552457300631488446848182957267620910515624979917521043355827488879122183136412904400627313046736698636725674547854642940963431913872878680305858091200168729100552888582558981532266714183217697097674701006524328195177544130651393847773440042794364177267870820112479475791450537542495914317671918523644562695320274394196769181242523188539328643948956346945252856315079674664123743608644448725054819163105192430308240254970783200618132390636787467362010554273365836590598857652574965894799050075330519823831048371481270750643852366113647512177530033083137826409281175214269416083410830993678368773016966760937013242987828226817858178500039961655247945196895746121095476981517121110948957914872025708468023302694260894149484263444529873873386983483768557308998551018790901444516940254202899225525336649712064861721090226039578024825887140022355366352255364237560062647649687575634489512634541633053877640865996031778965344941478564534411294956070174873137895447905430636746127667495888070045276808839078346570107460350444138681431410371762056421154279959003966770013804912122037801237411747401854993768870992540280059520832716352829708983306451843657506730298842942833459222276911905637464306652736143050351814551902338035322422857125255342826880165632593326732902506609463754089512305761811263663538535979418744822164873894627986036725976701383204068085567587481811777716986781376307554483380073405708985103023194756653651752165638835430878188947584027431075844255223324423248883838743002451545063092258398970156181692751866425005793505989048922847502689380936739286624404850889457489019033078084693987574325979709017708648062079689031648308697689509136206503457089344273727530352088110738281239538877636670567850556265102990536758061494351381425938633165132394586020657287892552772294376331123527824242178226577886963433788647796649385170844755165248400324565036780831407798419933454074247981829409184921569450117404908752678193152211839200760716496419642094018496638328594432560450443207958167381733122759426035147844017969676082107228089254439228853081297852743313636291902982141624724974175439525053195954865329156019248346714570710108070847760152619499463603605528195727739673028894305238331226487242822982421628115228723572340514778175375907410305438452472230722469748451791777516683377431959660810870383532541929771401466515255092944295653500913475867865161189208465840287811936382584393688191302860072703723202819094054593019851131506927903239590098733816149092330902341293426602179988035082523848355617486467499663799056326724181612735675604308552597465847561949439601589086041276997497642723173182890247936122084068089484865960376248707915310604168427057124833755950728588861643393134276009972430815740738472271355478149746281033170458430142903281022994934369066044176389679193694265246332948558733406476067659892056459452224989044898864326050626158072017658675695242811766855809328141898236645825910896806389961143435456969040106304877713178626958354095980923131605730078186031459704580085934943077891414386147561294954553515970928089007330393010829087435013916587119932591834981996822838914219127840540929325571539549565822775340485868364520541931286903839575598487682479371448406030614660282371688402285980900283681929031836507111496315496080241216338158064346474804347216434395083679613656672218611309715306100406319528951670232371240153357992865505522991689504895991052841266516958934030722041798882713074307887180217485087374840882352449763932311546189528426243817113712402326227652816327387963144302510675091573089582691447576486488449468240969156075039805651557614499884352716891767088923631417811821911637387869371904020083803371564933896328636501629248391763278250714881833430926899127410149294170084688719978268092168385422285762709091433350540180733801344599971298558686810737257877230249792802240159987819839381094553835612122033407304419817445282103859521194354259570990595462055608061084849682512593289854638094471225973154204109529556740392363611148645266688045540586419297324670401480042080958760449116367390892318897679075710888049648946363054181337562598215574989717394176799497067526714815466460101853982452053184891550310297155781103664018608920871775996793575668973862224348728255572209342209581400734064506803199328926901870355979759363369028387540354605477443278795241581708359405745536613297114354200873919417175246220564035843262591186357544950073643666604081034397515007683474225390471047659585325955079179649667118531113067339897345402359973880210830901417380564251517835586013733264933011150398247117799848334376784348025289145387453344865241232429924458541975190386060573755958830092701220415395554509021852477446128855162547995891383104469995964020438772555934201050983390515707394197306746454753777950297752433318131983095969061358469287525496000937934220862510987149160094295520909788263019607855514908326505186362450869970629407109704317494981054997242544618042779778763039615890362446988569138357883864073711420573336059352254803499278738696665607952693825545370012684261250191718013806283936340255236377192538197647822723672283809992552143385916081449432239189041351554869116361027856196445440681427287419777343394056265132432752872270984892115998410941477962939719483169752715360193766688695032558564601551149615775361566754670603373872727020985913298754122596838683361127674276732221766518639848829299841905131400813669107912699533994625697357938357422679960287329086999003588952123232860675170862689155206004086574480165850537334572139188221732214931618596115408467663546700561494001408972627644881135428212088513620558325518103375206951099324846056880849273247336490957137937734548404312437331408293322303506769203601541933647512652762590843876842522005665420127964167517179320859314996980150986211132360677197641288391020492570879219091003752779176597025128973419352197131666026591819788273019485356678307147306251102055126713408837028326431189378025609419755826638490293386239563400607343764499340777447601309534788144092202763742325550274179451418156051563857527239293782314674305913389082248361287012913860382519563800361853469628078119829932988858138401936237147480266992165899179450305983539940431018084274755736826510763392441266312030967919205960858165765365724319569788879333191013893551287082253489275134251255479369548620220731056239800881876989223512226459134830807909538841839462349192055415947377253323351979237101534980764382032416812507268219382625079737489124009507100421042993168687268035750225282079818813275522043097830103787066136842604430550356244985908208982225584452780422742105747928144954232059595711701542701984298416321733958210448433311706575541258339206013959841274563843322566803209856539417962515911712028201239576333908616183377180029268739651661292828413258249067167409589836989048883812386957026747876719691790152490109991654094194154417234460947882261603012710831007745959908910060667001297976152981919096747675153661127278694956643019683703591246549561370502675339136835803049611137030150317792133680864438422173685090198762258585737931245441525096316061341308605002744564810355765309701489184761306542406781637537071529182358970066777687580051159027816399358519196618890926204744876829209631276467748434982249236872405860789693851139177079233176431694273089432342886133397483106870390544682867793024593040818796463057455741058938764956849674377015005226120966296587205543752849401054180845817158415456703760949456467130688906804868523602290443198256072949679675070957054971978294133470885936963828866753834737307636556268558622459160195707051217239433708252775896679194645891125240138187353593990610167506221782328382089162219201365559736266445035938249492345276268976575259910167783135169717234529132272334187182612975126165736678283449948867260791946193711599152894206920542899666185452111925141901016325270948882615048735913741493082724314994503598255154705333225366131198570198877343978691926918620621246972781868665981244913220387674783167628821805904143415293539263356534356042083093334128841671485229103581112271502186255040971182148740301941624813544091235944597201424182098418436102753076507167927730343210323623075463791957353336319420949081500960827465343523899885793614681236374935340365692442457033114983567375783326728516247243265863996810623236030313378270260017855944171474582914859936137650742954721312959013038359833091201047353074663027246439275452509003060137558817563192297008172442117066312448932382374099113412028842481929052658940768619362339562989832006862441524021030389322505599784596737955470877366814007891639856364427393590702690692878281561735150827235514779147009109190472812582420070205348311871063087777833252829431702221959945176419064818632881005630324433146771543548936119244721436827920819679662913788447315770769628953856005371161020319831144607702887559691670936774809807599283571632745828539167098571854570819595413612256580807688081802793438455144865447981442611837981525296843963209017904655088198193256900481816823396057481165280988373164563983799384552122191771012504212849917971748798078669608181581337147295725053641134362886528721182718875550674795449891435826302655374531544173409853619246644031789992682227573571603971363258841451543950374978266412511276601015023778926456211661583492874630657486706089365857555368398997691552542907404876282571410329260017703696025908485620932639006126179705460068816583974900879672403693358044597685965427942597289803996874983419215325650180631171686799450618130330219978431440861714014586474030733087778045496708711572336288010566005338227450438055386612105375131777903377687401545736882923693632285384037510415983550251871485099525314971017742140479256852293921427186554749302219833988706170578614365673601886867443497428684269531837943204637850713397972495058701917666150406710233104387879166861988784043044245960103294435006876291495987733609995480044059775041534156058401466355988443081209822994618936805238022601325121603300818070912474443839245133114505001842842888152146060550845427149856332027361178473701069259951314845043330148102013941745053558698511248017766012224034692523870826859855514749579901973569849946173417889900193892537300507292080883253506939423763485796010768871879875412141833766917230639112468104212898320309096097947514543856229478646052641696342523656906932558294985458342657622203003915996763237428230265694308984421831560945512017573234077017991947165442133893760599145660262224825590171788202486185986185392556660790206486941437491850459527000634821240560607558051382960868364785906045276677860254795640682188851115533333200103010639749534295197321798915594832211533611178985560144681981839536193092993019489982303142361803749556647971793982616894634048079418063332586205304582429646879420968926089367035793095736469255804065438918296877274863244263637717209661744168431062149000181232321279488746289225425756754251337834018430710990979894395447237176166447391446238030540466324444717779395832977494796683088294112709345172942324264122127954666390804860155507128398048390381994387595346370606738138805257667154287652027039038713107868679592679238848207007356019044631475549154529070041228102707116401404722730161608538282324528936072322349745764070405527635512560743643798179452991971531559628458719636393102288591448286813560597492000096981302893220228667833400737372478524351506818298334633296686754047485350933324743673539781914376133482440628157425807474765520618387591018406540806811842113299969045017678900898861331239109682912503124813240788829016413160976787662865689195722565186001247274763209108511956575422581173797868319110962757546921415748517092487774339423316748719413173956375402245789645924322714109700366431769295628453655260493381529261856868555306182732189340088213693573070813778069498484390566016081465652817942106829546572424029516044373142545747692527123941187213016649610780252518820331182700486866635042456480624534266545696000868832656107244099109458694113759562216834098094522824840977426842932377955998860586785882584187367099047096192293902237557252534418835205642916553842867709327475673642567692644958752655368155053425108128120297476337502836030556413837138512004766776652870790253700686994647283660908638359620403445880982803609950410053209975789371313225223848227051389898173778868676959510970264085418380552898567250485291173115355684154341151551443843283292346977685209000008757482810922269955255756152795774465839607533896222920611906583853359510506340740270353772024170461163159610110913322509032759293228414110905110323540046743088953516916985782199271835631369588919651692046161722211592369107865740282102630977136418644481787492040967483015373095097461635078489975585370332790158595763088151862481417269346637783719502791559966739103437981954531189393762678175308434807360225080487328251155280109431681934828461896687888852831589819896321565182752421938577908303630967206470696205447057150358664879217301057687291624320219354360235250121568785726033806793801383935400697406957254471025113789901106160097259331730460513839468509262305054904348504364701014399925922551671604064553019386815548076490180770345807849028645358526591117103463473339560386071710920664653819966296990788874690430816254587998121796212654242518896641704594956746794165986601011291872018446017092113613949947090422283047520581791602553644650886175832528543535844243142713736873810302900860151472799075236589401488731003479347798023383214406138596077139422425988131348199975185079382582195719981596663226624181740999564419931454947671096213994607477744926259941678777324907705977878804287842972365650308647810122524744244298536361675179871650620188942892749679568077927671877516727844467281033785647565972142761599215809461217667588624659728582107575527173273034837723503721860365545786077663663834920040854289364383061428409349177980611433838944879579441951608483128551351735137962065920185847096090246539797074654472447975505501720884981413017942350245968553399752712959378163203435348923855420778727809871198197424511069198380396187946570305108954881545517166925609919577721259407809313974118805450385173228038159361461854473776705593340439724257445401914956995633804205318558050898319164918943611917825195165498011937440149298032349815351945906899229270138312793346622827536756716003379379498296742871610304317890340543985539784243333969624505260778430894032947296631873241012793622723536892374328210114841605140738114674573500162407804802002900584995924380581800416091007134617758056336067176432651463896435444313495227383036831353740867278257917764404728819730900587204033717741342637814153005621411364473171271309344468659210887622432784292128182330024081191473912871792968157372252817961970116437302224984375006459924015675335810716085377967475863324871877568178429264473193217869799338142989113794142863762430650153333926778321012811579655095358054908033383426939191279372207899213537495672251957701161054652656894815420569835254104657366212550194330669155737169367079470915397947510965289678050790989496057864181024280797137747809559532338392076821562778944736797762373706156509611865867412362858818214324980371819845130234236012089745908852930767717874126642111367593011443976413001698606750054316416384635669610833260539688174135900093000619558550442048474949603603431672190785196359383079152881392343042309046841699639461778260129552307331387416803219221831701535455881297155058417342268129739545568964448988887839913269590671463608742834978865649757721759206693983277015032711077934483506541156563707566698530124730773237168157647551762206578664829062293288296960905058746841068593811109815055808550091444669356186000976187388608802824680746085129994904127057373271278386909054913883299873428998725082375932508918434443476766904131415473621716695087293298210631690501396790965269440672302300974102980377286199040782113667179853818498634928631825033332139758199696328620840638409325589172325228950632738686014096252068500199473428227139901972140712808708770424916597523830065868583295384376126478155415370742177394544216528957643868890507091081385137030431361143228582316474932933358300879440353448924389639695246698803971959059581640215933776371603804228257668400523859711236467702722098491082308223756973424670804646221457622056331515807742087029195774608207996997980812877772280709145485460920768138992523021340483142330489106304434707699801671911459861094360982271788745191315295019739361452402768813153771713148668405672929381269935529994169147774988070463811810198042337395828683891505827705603368099090966479698008088604912966801397649300362351207604764999051700451072367722754856040872824563864761093568146649311071876254452205638979968227369030353889171844588676982389725273906870776686248850616744855611925816528466749635521415338416670652641782402021359764293802225612599427269476053110126563626290591329962101640401130062703288544412129839608521258866109088496038633697239192003834850637409438081510590885277919539796407613924463232090319736189976119348519878996385680666400499140316479401805137564497184221041094871197788828108308774821118462104685056345060730121296766291306871000453814685956383999459794609751333014382998230313584831050277481962549660910997848085303226550676208163023322205988291350311407365396061555921559806148204149491031057505941714891156128400140244644520475151152548065422816577374935794423487235241488813096880812225260954410814587043610767357681548864830492387022873738516594393499125650363084520288527752812436422673964497631242511241971236608830852761826056203780602451060879974608337586327952265259358930570232611022159058610356754691398748048083582029145481704058786136890150035355038906514326420807449091848373736058916428993515170936761412384509103490763571313613083733594940722357080386778461454850677662758582873885445911360635210634828818582841473157840174794174872691581850172209149317189355169144173209879140899924793503076214511033445963618130502840604949064380998753222521716901364998114812363549037156767174880024571175668437112918374165653564762793732136449106539229814845211767667114843553912304485944942124368147486806267337727850052169763969393562884041605751048743734729436638943681381906126289205528290345970630115841636201928842341737303203345612827892350796608474000060237705183091825377086489154818027646061260007212485240503076535778754915653877552536407933596768417330105831093419628199952815607629440133291751920739420446487769946345478131483738654101602610477577661034553229160756603518807095574322812195915035860798617529427979104966772895099156682195396377797525151567599083391171953754688147577897090970411996377829611330804356274163421558108145559359784575139469572790111988215194533153590179754537867893125666433937956321725274273153213683884804922379433085356406188444925647760638738648713427582022077257026825056015396647442517316560700158457004436949092862537381889736353016568888318989722468497757337013108372479995126291076154065004140339428018432432476823317581032281999485967216536487721899548295237813083372329929697799731834749639282562315400055605534679820885474653413478986158611121046968329125644995514854776059492320911399413003505168179571966575487367182109001448437517379450693942135884793063117170273599233437969832187764218548351499967274453766900561043642711634271619519293033223986588846348675588145391224959288765184775009145307566528138389952926247936141218824915352910595765524614763620749161391093299335017860294382888367498432646610329322260326476267995461552300524860233911070595255802629978053725199081267274071379705831838405515894114511410114191792043669566220230694340938082867701100788150015821129093731890795311398996186310224827595967374454698010578057312216794455830512449953708166444761524457112369092972538922089971319023770634962269402981120950775948033674983825522113771193247643993352391667574127089573937528850626402317238603643956614777614204861444288332309674299699545622330232621712851872483909850130117032898382970822685444300638012280025713158587527819330459695953811790839258130591889979976592505933742253808075734664916143843268277166182558373853740897699357916564705812664632127343962993975338206323383144974761492435434680392863633539235971928622519483662361860582713240870186068350091101954241439238390248205017635372791558197632386274251481057444617591383650105556770318857131023894215789557605828817450501917210289931704217297365089488859066388779361358206246083210820746334376104358325317727268703121362651155038138002451556092437987892518968214143572990597529082425022229069112300668788607644024048722827729783213180082585297621133226894643687369649481560144424022859780382026702495907973048014291049618457559080076072871243395514031137383742113710087713001930509864290022979940834633047071120112369107726312080347764020201439341875245831541143617785553112238192269933235625569432525815243365046217804401787143400833472917567068051776397005637923902106177638839357399101969643286425767772800359953006268653258695299460089364697343939682200054078103136962636976913016694726925464298251054524452945189632597042413592389937628006632447081391300521435480583965537627190530990485083864009979893240213501919236717664010801450295924135391721315192966794386738251750535831747344486357165952209293659757624615181266328817334060486875249711435380788926546850456448221841964340545238026974451408157055608151037159405838628070077599144742117572896439079354910697884180643159398849951821158088051589297498631174853163181780831364222400638467660086446382486865948387587695879390807749769696170536140510465238565495141553450608163416505724571617260162195096386609227150686988980842102278067718379222468964734166511280547595535215722758531653960814893646996956009599507823205435904052620172158398670836491954864925876312544287393338516689973793900694540233627929131830413209244562136659017944009227122618127375999535803228139464936504824257962788976978341323577335306860434304824387413303618520738589706760481073570500307669135865642504078053078139430902947805895690862552168989778609067386519362679062104985589701736579805780562788045925997921321783881767793167419927706677560362645715628665958210198215750968937072372884058934231040464959551821895601097398418827436922461769785793418988221243158013007339949291730425016327993811995992315983248057341187515565165962291972617815903965902566341649851190153946599537924303190633271250615452277418749842636507037549175247823319942642650521744238227169575739177454493698624292940330934030691159749631502229660507946400726433088301210744842053416748680738048656954611169357550455823006136153547139733298094566963194466164951955287284709866582467035119347347353112224778970193415893186032019527003940830320912528435011024363123748646151880405833781994338436197405017847275896443915175628407267286628583880530934823015140101821811656873005885304869879234418433445783054943981986519141779954568251904537347687974867363805240474727836068537742207449124425125305903110848816425060386226015596785491001811904985151747556400221682978959221817632906348330692242672505719570609474696875155620711920687294398341246407936291711951879441718403801652934070491128894812448499604588209639396836105304354842840817350481920388832927493200501464786013524650029325898584637361650911605478920890130851217645731037372048415107807363968797094262122605970867503333066675701094220570174757046616053842751340352327275570219508455851428408502287818042452669666287647149386436000912250453360932704215844555460593003470433848969851378774935260896289433863995026996963411868467937829466261902095876584073018577670102530660909739179225765779969146823895832573319491458879595802638726187480882907596435307009136240601976534056853293207451204555511088716101197945871033833631655756343946071927234747680761074665380739591439326685099746257522427056396659430627447748374671856464501781684582972560426919335989798616082254652613231038305822674436877903232885104200311048118695286675009518548164587608124160741758701517983254105104864506352072470607966193379022511827809340172952637674476728890055935163263502468352044526440832612681103473975836331430412843586912461478942999029019530131552811671230586670675102456744680994940867715977481658680140416520456064233322957233013430134579294572704140736541679421301833014475721250680935529229037908610901230412963655327553084038557418344071216569709694131114113252392495354432451283153477750967185707336236662457962827179225677777225612602517875650784582507999166175772554932371918297365287219479973184086584992226824902149754989806827553823909767986316694973303354715398422387831631267242915505818911050199971158113176245547934723152187363431315292104150742645826875303530748530762012981087676391612807846188126974195000013078193314948727551034352910928257829040055912512010151388412478177540766390772116269169925592073115685114625177375248242325923721305647164257056347008489230973714668192091792002233609600999454451375031891394116286861051585028220401681923393847208033958206185255474638509267397675443069405473178999106445156661739985830110833133649476779958269439915686474465251595965899545726931809634889726548202895872000672075888208988520746318861721236372264276737333686895915906200562342916830717467196479816075892883227880980379750514348678628252193676729508346466773750361828062250869713966109018959835841793699092076328250177971988975884002196829817987055032996330197442405750017389185745024342189679224728912312162403936913042302438135897687460816001335347581744709188745855708451340830160375592109916463476851844756101943245972285863812196974889626541270769886508290578997339660652023984343631772726085245312013731240711908937686783195924847605344772421601490651973182150506336763977309052344858207171607278853510089892327532136571530516292187813650157107751564852964405212700777868916434615411548804872780805753067263704746560719830321392462503750379939004976310746446907668364457025989350707112893274412571501860594142039856075171538994070216180609878459237909426879026590722254566826108286647914886277959547552800530762240031029076887486562415086738127540368173145659847546729061902396187649876984424706111166408079865553193863904730683719402581282088606746459193429855203503970801722884679983657323307706746583961221448354341422526635137655471663500787511320328959195107284255075164475128094576870092151613151036043695309561205139547844371756419094939707976532721388978565527578441330218746220689282983143883908837570249075937248347147091641305794235817273808427570744787478151945005388581255528454021711950940708861529192677778593899856427328739547351172284333300246542582386628268482177190121588777414100655211508950525616396050945771284923141234014438004658353924762843263593611459632231107763906489892289626564815424744083037110060793741860983264325953187461324969522921498918483447082449940758340024762312756268117828492199277860496136852907937831486984796251853799709492000010554351821448056235589990863145042260789424139713765871187285595674608840119433603172740718827304185375252701761609075524355304693416738032987992993231333699429534915184715768575243954475662493001211799595381883431188174695737487703004643815683567812739664793707392472565897097515556200860311614484020828206585094316583055466361124989274070673682399030891232769995240714637287353945979462105621188301751695832622440727320609166572631562501842019827340864716198350052592351881478688497965493328111883314972306446615465592111054398051833022201588185085024090706062362034683652085294943741684400896200786198905215945844981539533791135615667766224900898596300052307831300682871574473908039487237256009701401190036731648638633595414258574089104886463004342661688791583373153449210086691607167071492349005184917492582060809868492686984802463632713162838269409302802918914280225225156878478407068683675430573812718985230341616316931070551239367149908365880022292868850153318848971175000411604248517799043506189444618359631759095907293238114963399262866223770727521604626194160179619179543208560855131911784510325586657442747891791028359852424994577251585584277438073279872009446914304701767354774775495991515312180686963011745995555537493434288046084536054666261732144567398269819155986498319028250992446806244011467505143390349223646677563135136422278861185945876055088363820581718356252771136558724437056432112649749921251520791969614935525704716847472337283790406711164328378011792662039545772449747129211392282340252869704343708299250386872874154332594124590676894077051852743021561674943751150867734317986524323224604077821459826404362169293552442580499997347753964234737597474527994607402331221452944031542692778986813221053922528254539087986566249415825273579607839193206926700106174272827432361655709021048085152867520636595794406014207588461578119754270580739844123004739682318357560339440695645498176978338383325449666353039379682861290554918261842992167080417573156950942301406455252351663040165608614229778309015386363704548642778163288962919866275055150094227564315461960241737171526082932275803336229351175104750149290205029358671865523051659852635499900291778810206067486754228240023694139449564255296193307252710742821362730199673099066412510560699382952202292801393903997282305629915941024635136206679503348449220530440390267437548503515022422028530104256199795160410047333517794447962747945154354963849784992903274679889139838093731361976610604262156295720533705242081511627082679955568886777773381981890807403792839827398211024081208670062896765477152023891612701964440634791968042455048653610249900053942487854228647107383884575557277071878266739748353365539753882935096506069131350359543569869832635666925402253339958702559755455395432076735207712163898639466225152641454659136379391859476852838439739362606910276503664633630825741459003723922555604326522072597479075875426031456326329444820152025576411124849226766378941156000368251928762282580672036910714988093373961963779525430825709057177544578731931991327987998146233370049451923359489323273531436101445350016761739159632936904009004637109053593107228087052529822601693367153011221169305312468603590214254429786232403371378229441045495189935863138767534686927881031135242924557067727429707079753093053166264679079259870446658116679905266437187353817139071988365361659216845963312461455455680412991077023538265936739848904056557607907322097667760546287281453083290957722194915713745889192114788534959954516168149812839259221013307907723927767779757465659203434770773499570430962752684637990823485104772079882128203632149814163172287895330707800178175741867137895658095797803114928920826102423607333081282883779197098812667797131167125418597401075768332275840322045361735034010722615712465896545985047073580536719368065844894845151497375894246238003854192961102879577647641054523064783189014354258456237405540232026325326586370960954967669979205409775902356903374920812806866021800427058052030126074141302071864977578976924631120552272375079251865760116996450633312943571474531164753923029598955072211568867739513974874917433376321318008644961473374832778859909068926231819099199795649882286045617774124970883622509101670063137163059505015028579970685317395281529305694769154949573450185092068793126150858474339722067017678104579712691199382723028065459842610173016181306952036147743117377432819818930045932906297265286248138385926337781494360963418201236843826539674547484080789497741740409759454250608236470582175330539591821375870372845054699229700668770808479452624975533553308078393868636778374772055573664576169682571471902819082652869838848864526428819821118865648235157060103013233780815133364397851740203277704057263094968793123951868366464408837115331551871383780723452469659150910769948101736583701437886013151101127568005242707217360670099392786471844495639441147118879064835489398928890594709506181997866022693412769123653968076486381065541224789428835281731100656536783627864841233730198409545863089932811808442744547389755087776309864261986553838563580373414137027933755534789987197850615125789363135663981482123131386432869013006968380179107702805552717349550877848756419825422819248365044677131857456313963521482624055918398816978446739599918266943313297139969666784775963711067107704337674273563546952441309896312602415543114932073980704885771241400524801263207616579176563233922408286808171095421175561161528158092837026963866576056682411678363838179718583604642197213122841344315368258418360146263539507754683338311248937050461451130432490245883533100647995799910969835585020211166331239602690076511704343094277209347078428837087104243081774885159268885947016101424070933734439979482546028880859911765937422940013493786432182335304828668478248592661985992211033075941999081215700630929861587088523227898460303917845945008242059661191171139019217990832442759918856357090528813376502803547053994972945086684524408876269102763523238149251871111973407332739513282760642823143802016458653696533326444064535035033994702508704931468831775248044846914184853295336833283351552476242713441293919247050373252881053483413077296006655711881612054512241379347668328801034803573149277936502111941066260597171541778332969854824312519862392370166553341458785941691792871382786526764403699140935304933237174914304769304781260182361614451670011366903828151924273802869317332140834789136962136555257748867876306576790181646673451002607494403499112877803166804716831324804844868628723634140625739714347609851525857505301384276211738178844733266812355518868720607708245433857789572679393708181380307120741592419215604183715689151291911785952920496061152425399726307587256306813444778977306075623722332442065502884194263510483090508067124319837353878213955519672519381162217699122716899937220610469382183213315163262947787501968702071946954189656698789177755317289407137347681856585894818315341803301757383018967046908056603543832132125150436018165270370224023179049852945638296769093786505312355549943993738221669446917061853381737883811011450547799686489947616451524032323461207369030699857446593449084850535724840695925916821497083409134825710089046652841597494874906512226682380556472472637681611272947455656139481257593894162101012392427875889089473721144482117799297938512655417587977858481154244687323764434638524651711859237624816745964633641605555165306664526232903034586626263649093018919193663854820512550896341991249027244600109440281183231549255363594862008233710358222144936275310386806701072882220693941784031368915864138384045860851970509821410769175430974160531288358398087352234895533384551279871837595168429514742951659657867462916420678621053824775669877793240543221586267603923439992980597250328578110607122758814647216910110453475980565539612970905722154322711040505183403981355220298766527580465412441749783633851432931195817916735079955684958065100178115824501625124910221918858328405950174577147047769252741373294977918046791717039145350825324906960112703294250212415191393036265717381283430620104961138932017610655372015449309454417029967333783968800263751445331586353998292147525054260532436855093387940182959168345686147078552926368865481382619105922258437147591374244834112951712686992699794492801291354038074514677529902298807761365079213931220220449532922346752601249333459317700864202241666199939814241372500668817016575132369521699019869520832225748216613925212299138507419354531969499243782646035567262322194815572914159579452601575595215940838880017304360772881799008543569960891236773897270779967040371926555728106062934653871709328734398098140036427625603778626048562032986146606685426630158419018296484497056476661769648996464019573942667271834420150654610319491282141562217710905618439205071029597598853159222738174968463717597744099326911240527648085124355522393211747286498781458613143087135969445220667987093482381532663249498846054781448207120083565121647828861961157243356996336434814406096942906972155475532568972807550447047682345415848475358985091907048530885778927577085920834946212363322811070126721639573195846763407627788132243040046707159422636259670727413945714075125875796282695995997882043531955625154814192792862441713949166773624182134626466137897213557374830353213310575251470278180004419119084445462600032654489033392500875327965775109678775269599194529259954077230562038409082106582916340919856466877677587151190977612246892460424018049914300881293496400994023035989894870211735881625767569436799981855254573271881312717810380401085809268490220344202029167336496943512089473655665500524313385227188418548750338973395551818971004159410803821165416053012320093113716284597317595366221157533165622420048201443874582888092769042356959108438344572341713385095418956175716667198452853953128133697807528132933440091618145619503876504286513067035595847202779225864909721262969710134934101863637180757246921820999116547293295501850123145914663492830946400307245867192857490102501339190761664855305954660387612577701192336620076984541067406555073418873479631801795580644204266797899159250141909873783389598121639627722809258220311760674231209834443130013779453295997892901575405673974216359152555770926749833919082396799016331431093811920444462994589117741692040041118266267976137062132895647863620385607814432056951769762308981627696825352649225270793763117317551055585675799470277602929140386226472207371125874416708125529812701790306338535898895532034358793419680956261837239414821689423973809957150633134274111748442965513133161749639393438628629502487644579013092360300402532567202426095630498768507842459953891579091554524141959358094199010213396282918863628040019893012245391238662328704460511394085537304714913654482126293328029074272939651699723725613008275550411949837140890243625977106294527519937259891475951872600694077520706533958572497435849405713016971917037988457377366858576787636494807768185715551110929014625582036252055780794665580602302290718769216183107946044193459567283566331123914826550702134231481580231462317825615841951923408971723128931502887559211921257124807563670579320678215991055938266153304109498079368055938603897339625096497584435091696738373293918911652178300383299995481743800809860374329203113577002425857780176699852792300068527765540010123674720633733620997389264290129807896597660177881308891275004951955911779560410311126352744233436100633391924644087025789260790836607769975296530787775736205971437449243923782935104318039942483926607137578244779443459143818222810562010311645604557344633081369220467293987745804777943960070675414859138782270182249295653934400406035223209197467744922915716876119498513876487237529576305534510733754086985744892882934138337493210689311086254066737002278405795648522515066029688980827724646435943408599638067966526140558215922733573890383325104154589336191917223163975464343144891970122232850645463121513251758975399242857305829364416904348004074912796144389964087364983334197662464516007946217918426707438656290194304567603318456360555779605198064721856485480333491637760550771180859397937670618958099757255210761088571734759956178567751594435804735127866627964697448577129891585800527954668000010450120020799184246254935738615058751928007253277233662111359695002554567936285432654237120850802901083688742689915276791516199908778476380789838942401167153148166500901710168933795750386937535532534157643008489668421272579437190963135914031282927351964643326900041334031390229575249488023786501657660590404315164721566276155396666056653552324729773817626561845544067959958231736332437745130454628300512951273472994135253151177108844016256412991942125103366080138035833998039011440913386738611334717124968409415529113440768279189209108995210976450710513992370779453864806644068364202347010282505729058165526658686501158847770925157055892646384611193451960049847962870627063856230288747735117989741792381383564740371878580980029064915438319305169119897427820020785381644679329709709456607247963603489662061826487380558365881607825140612328532658783194684568304954624766900454987475787358997311643509596721727901043405216664590741747378775952053543555688506085023165397132080691518076877639823682259978824969787757760684424925224174014700354174596837365314378464431435303877348898611429894405157899650980396080831193535126114225722402236939079903017524474838807740255404762917288575245774990936564037175457947918564863950364599937758354994917539181192700796804354303749755682703923116576833297995113894376751926097494494460660752792167813847110154149958071304563113483036454965242944217652904579955658588107861461572431969283839963527753201897644486347922468158443304800372929484874051409955744365885909136383634658048078089296061667890862640374191105527240030888599151943425204921810859972409589919781605059737230752889607857152677842343234392220816757997235380790285453609776938898805777939403515797550333474033025391490250905013191948667136498588243303005057759369461990441781250461870276487141460103156081977594763812636114109751160744379137063765451143309309531856150356452016511381407100130086724651332822238569776490718741703028875993136785613155814730069763681786527017125441671216448755665428299816430157575410468004685370235674133360935763863630048810384069718688461981225531466534861576687404070776488136189223044596310382396879351941441042208518544395267933381785741188280696712337364082375670481696354932562723816353476529397063532619746163242561347764691768229919958568838055486105322151998605031569966967735782745351601709719720740824958534369500037606450649977314408083340094601407736318809649238587700727591109750001330353783924447092440406419837250744544539966046991139279286242606356666305620844128366369776434487916730287313610664568689190524350608033076621862346643997827680695559506869397238065673690717845857482141012394524716278009731909616954900637821201895415162802331827340390149107683134791652645600578964161465204271778576439173617689885650209702344334621226028499667801575387918158505548478236001495545012079055372313266525078067324375672958254508198274011610844504354134178823258773296686344409328871360770488523588778231470198959153969784716587920077479478220425963602848319390476461895092025365663010192783786671692321098832608761547135131136409524322653713307378735704604086657649493330150756456218148338025960284688155526585266915214240366626561750495523138912973943485351811397196288463994015894798723083353984880005395789187541431860041987438697143616408665878162710200020397844123087592747535874192832412487181530557915724514634016941671529051630860548901764092307123552848224373327707998801994576956652659904098757121475040852402547994803938790111840309794300236469584870174442035870816270474706684908274125897801574586596455836385070919339882069954634070116937613332806441056421752721826800980832422325902396100672659953372835215523614512152215643993861630364160560903814986187880897341782837012330752038542861271819694398856184623645732866211564499302917121635648074558112339071318980888479715553542136443523557679862044838784916810075534904086934074628450570069056366234117338664220994083795530929154213907874877035199695496504504932047140168113130114032950433434187287228904801149560715049763340436962702475596268384426142305986579384894344348158348760002557149778522327205898437962304175054108911172602666364409269385943623372469890805659336187081394515881805733524025551805706942599340862544629724205368162533996415047512640926993035485847248822306545602623914766355928861161408042335466161975313316836187390257143643356893260477709352252728073504054331426868120163297443552354275776292975017593591844088194383793328241087355196844786826281859310284511405435026629730480196712493512752476655432733857157830663451920185234168885930582456399138968711673011214159629642340820116541308140301343565099814223475961351506452300263118504717755291300031125194568840192758169308720780059484291858104582689661732976519147719419495626374198188364940397368438153413135757314259891014477070976681403156217733130312319834385417599416964073988859606159169299555694552158942706834290008171851742659964542290017433800210584066773088730461122509712767993055857697484138749079841345923466045209701624693652367783333561236293537513814359074224893958002301309847143640825159199454703775554111941441927516917933347693958120986101564244405783069441146655105761847583505316989563691670830790408358024328657963029113129084055311521336981779588465130761273306001035758231123381933311378022236146085459118695785378371251076077361881932631663480895662577778430820660290099006467832918621131273853531541702355270810233647080149728322021248383300287503982891055424241338643727891245984301986173614339636740302798555677953917278386364466270884316759688028528072078819236241602423542375705858789942330246017211587010761332404053327780889014408499993532567079192422926573301179646942284389238969666469172290615446361979140590481219313805454057882573409110464724210818492191861685100595953058077718837240010835143274196064201346532105289652825894080970442529235247994753851679887385874623819004953271884998560251225432066058324325842101048946476894561434139268982439941166847082520414526278775399587336488209708582968997959492413589507657583813329263615118459323650827246557362490321399413810819675127212099867029068660215348831481761415256468570838376538503730464223415356716988900251779588748722540656170674784867060949211011236625098364915687937310386848236329644446426993905668683670335291672162260682292098377563349798274868367661088656903877606313593371408254688129892800819334951200817590757524383963471605891274835896891099693440003616648339809887829857023372093990059754531530795058375273504568659075691893861517206205877932147175301358826062343044118630696691951464628016273360993490379426509952721678826129578206910324869214143947889155506437100509320554458534720672111920362680014053071663270819543562543564747507598242205538111903034094452601749858973113325071876761258332958877598634562327395987232552446488017725390171127526135127694058395621709053135071451571337810515044652811441208144608564690686640704381637529536474633134415747715367399966406952644039549936907585981983067003499085254364837253745358690335582582828721614668345448883976057636098637136381366721291537691668371515975704308485768806946684685310422518189406101157178110397182724893905220505023439002143855740163593400184794019488360250738265346749164355346874940929315607761184961625336223404073712013933072124446539162251217599609047839167070523360821809470475613961672451126763712960758396775386856490785481192651222311669542685669887154519180661201270122653101627685714593243762178302237844673376404297672017557039402552071999527072496131361116596073823524662329815229727234898695612221252556939523495505385349708507260578528378170561922319975643549779218283758990525254149556117509723339971230625622974246248676466207884377813996829118947593521589751346557236994959195013193860352279096218351160741009499948730120839890584878722680504323822479557637950270670136056102188575028200991094407580850029330159904305353902642027212111881185347376426253896408212159742082239192013907646665102881949621812624907361168127988927111608479687797488780414330983631330009923093623532780218848395045212556027547423795589445136085607946688965980801527244447282575526459509870624333825537848166015618585753056983918940963671281710091705049868463793035948255839658807981832895152869914995336018180955942530571667422488891670024312382719635368829325237492368282568212886940272861733807781738524502722674719846052872803191871893992549513726417911483534729569446180211040897808469183001879707714914779297470032604760830221759945162859707593229689769142651078645029432893491462129539651655144873356414636426777955170261189246017396700110029854754515030512633122807394929696213394225118366509293253295497739479924493061840585809798184928028449109502238643685880360969339380743205217879430632512617065491481131419012075192649447240516014175894091841685527983331384285121121699109448562607132484365911459565006086581066156396543558955960254493670599950963604479881472327458745868493846187100433014069689052521230460281073043117330708549080841516864514567163119007906861215028994539503896315316570828202507889392730098713432123235599736291101658803336405426051873951688838746641344425469247399432820188940732012715035536116923433901056767913245325573382079161547882230660365182736787304897714734980175374443827313299635496947298934048420305018327326844575130889526307695397459910992743487003875056881871065433059123033410089742492507917452944858953369580760760377123899346221237242894384235961735763883207542791010071292270006123470900538816599699601276813903959542169557947517485231385162522288525426824874475303014197501808801680066416677072651802249912792626046006181131774183895958812529124359940048456614677462343756085146153242658082697518940636655758833773382453205748869394678691657178933720142497319130409421528477330830075513704796248477933575767223194859262856271782964146553155263532724942012919505005036881947536771091682689247355305732068902890018824700115603166016759472709721135410014029064897633432629664296255266317430667266019119656709497163852954081378294521833759372521172666007412109808879596293295019084287852306313837792050415220034455977014296132474410678133312468573254035533144075094910008842695277453203140656374758688367657649475420437372721735415009380754265828334942457020909806273775241757071105729179829667705422965028752856855851986265947344885299696157873176375974763681210521097209575172000059489785642239293411885180676628146224185534208779786243362329947578720135000049606333731197801279050672290935202294434641075436729402019526138468068970045173109753975074120617882181787322551195017715046283739988220972923169159149632497873420214925864147037367585676900214358867332243399389672150775858239112367919344198687219928955722346187712057915927824388186328683172176086229052551672494456853402573002037306749972907823550891349623283391071391504791365956302118745698467683886211628737914674008253249282521365280536974413201833185468886111458301364291591181892556335697034947605381885756867014692616642324457152599207486342851723818395665269648229398055194793890334186531897824826014724380198875273660531123262155603876328923442188484209679777850966804337837299654181168050929496959629994025458842237287131805799074529552360180132470335664063651221504514741991148279184200215870040996934689558516659343130839383436342610282745915835845659295128532315678690695212727145474442336212883658938819478454985768955673917015727636651807229248519914713498612222361711901423937372670982776916335857729262410364281787127484524508106054637919595919197210707590638148020933764480171421852233241087815805135597499232770144604536796170523919725501378835792107761688759773697371227496389626694002008817798009477271473796226933504127611352211506656340607106725437391859677883226063404782909548015105992482992547325868470450832317539607083638174510826793826358681998753410656923477269023353403166040573647745770205827290477784021342222657197876634151945052037859477226718965026273512034158817992104847760678492187282092659086583683045188696148809743233188404894093699368859322242355137042770994537486875024564591962379737361245274300777880917241476869659134523749429204361446249158538787172894178164072924575734117318650878952654567309438092616425479086159962144007936494159710269847377450900872409084591610534376167253696835031213864248149577007335678195776847601829835619164230365593660599689868093875102843335657805120583983451262746873823420725268020166461115153815018876718811951249930300731178811396490407044287760722974735632119132246013159939542742905730480957884793010662937863324327847865679365632304712669650073836352475874409315651890053147988261880166560185908444590874813989659834330831936115421110553302235552154365336264311576420795940571408007786267501184796467775995693195414367758838643822913407607673888471290799628082724386526399329477020467555213560721775491419689293884125763608530609120061512529871892586524254633815374822849127245113718375242245713929564463008482037797478369884920294184532079433552789221980225846167147477818715249668205387231248031900196467339987340026097009980565493114380363639912056388400877729975432580616809468117142631017886191068260148337512177757213669576228473168685042183903398461903888288375953216461289847252330774155284119389380893179138693089512633426875327150919987165253436515656535226751193419586319099995776932152003940042642353045841476859851947596463004155337186440596115932442060120797131992290006952726131240216324012778997974898380492059170400957706817236186344163949487083087644628177596773906235435675509964298575990834117365895643956027001547293061441423837213086132499686881849289732346596504138322156781716194707079544129260709179447095611515374039646302577696963447266398991270322374703502517549162492463364803358058059070616107555909789022150000701942929198634685931829906597437441018608124193872725578822096030020246705508398395222478022021071162208777963544115103017023561719353174900287674020555586218699361488634417993483110424244945310333004060148740173060924882116265520751504575310008212337966988751625609697430642637363860373262453782350955312930116922918297779647961284355386241336493950023342076683205542162593972210207373319776303773171896774953241001642166920143729899194958575904250453888953279014895687103326283736555256917471405295621816888948743331280607188619276750136652223805057011373366148432157667699786331831372084921633538889191733059859223223454956358259112309180598658073468122031683574139607112613647733774541471564514137424395095922400891412734891356199184481679374992131398143301369468752405851262759737780034972131760197205337399699234014092258206130130279447305991743989012928733966668677814794551618464123048655944766177087659224105687047929947019279476887947513623527891284401400210514539152921654900529524045355948178333855670403539654962325194066673633589622522772799820222086049873160987268600927358745296712440518667976017772967826151331923251999944138206888775269030921758110149164022626671286236356487964180906135426578360618733629217162575856970718214288625149066589114194525324167865726224521309945479748607769900542046034518681767040622043364125730681144441567052060789681768195065306149117063679205670879321991597588611859153512852439497292148271233791285941725969795560946477215548958478233164616745238126568535571058444473087982921003620548463137676686748639128401831904516001559735780128690980341151721024670477842086281064064026904025393387474599818100767744160942002513822745600212195702002870987953704528007610967492317677090204691540889942688083227402406586484810217347235719971966729642538214358502673776593972974062131390647152644155238442048049932407903456515847111310403685176523393633981456629079985609108208840585022993368034823259736396271264000858530036352259412231185089046526671330053224112683093013979787465691371867314774212417877034392704978218969258750053772877016260656827540079438796623665376756789174308337468366275424656880322843470036301724846059934715759836436482306435434999074204068347476286844655628727587704616622061305314342935101086938141849789212003962515735464798482994923777750749751612399895226210207391076843484569009508504005948447235707483177260453187569223705024398259540093536477854905229301628634678805505514882887649797507516831993852778550908158505606708210216947322651333869522613306670300438652663332612024711372053215947626625592802177080609062977284437718426124107552785954839323580214574518461718468953870213005373885124610299391646272480591706652040009857294946236258774124922521985720053509819614323407242509779375329816450391700757118810462696865321383385258390903034925433494825099756277452050579658347373639177602163175393719937049128752566223607317425607455587276699920753432783825059004698223172171219710175998119761057004469028962596437913327405138191392901080138401059233060772649633437208186745145854965210751758651275220857885218470010210487847663734192218296991341028908935914175745045262250572687134233869958070059154681545102702802992698673414128511868304683374804838354473621309953366943663075885119392018409196119986521043050840225610483399861423212521476488936200180474506222342658252472517621947988346772837773961402276344336927318778519956820878304140753959777135464189900651742933672954791106651361935410298852249004833869450625602495683665294150631199129747090888066126690809686066705397122875260075968235123824861101447238851398450063079042596926812607633467710538673540014134294639356115094751737896776050977009340159599676077451750920861384574931540741943135981188570365447684373128611109851441396757860331095756773726563911775815774777085926385490824710097407055044798869512414810213627737201965323096186754478462616595266760520906077896688646837978609539345046843576000730103110142326236195852302649272292794352871469019648634504649225380346199564264544967269072153102122675317562351247280965503060117778962564852902174862541820997685733521683801485560095286158469780953566202701318591194420730494033939238263910746311433717170988309811244525591553329860562508261546949959637969981351626711078149221881256494256118956271777472979460672694747138714629162168810142632616736717812669923465804149862392810464715845430614823939467334562211543991181897191324629149813621236317687449800916200224783310041875364067169562535418791936053353325709986528444225106432550662744338514544963276982417166392652173054500836713328989497668072385714465638000984208055152108353739085794609135763115777318013003435345082319003154033103217325656637995909600376315520988538880744819610998861006635440690348863738467691571575949976719518737417657381411835622714824893138113384603203459460479406428034750455927743019703504962212658030463996101847576212899069537483322021966865146449173677569235822792331841884359148791291114837530116284883991564447947158563533406319839778682060474446881219477592397239731689005262965249903482627244396463969022838517487087943976950411703388678585341826897002914753033619352675567257446854043647538888043189670889704075191679302041046353529936175990079939816529849837038454994889180540676096739146064249562455985092241723475847157953414219374587572579060900289368738072578188524530519586660290426495257821895617693778896949752757599090102123917543783881703850156487323820799652489792604864025645530778038534641280008032515059257614860304792505568246857372543741205815422472485158299189107617801787554290097961809227590591542670569055384785762491321417145313425389032698885311639090801341413892858328895085682637054528676958313665594800241476892026893636995664491773195798304246684973813352774695404898104967201746065578637437737326594488167629602220979634360149462919513292950222278333347428548632547082469072516675859133447236442526064930626396169318503201544322790618864347632628806170992988879058150247477386234465011569344841642120419275211194051952606452052989693850786868701760273479130578800812260756793933778972597838348968652346458562824653637614536098183501087958864934579009346954272319416652774031042862508657094156394633795309165860002691763694883703900958828564903762291007583178372764299763195505049213052905864682480582171155278320580404616703522063535027300145467136122925163409679037567834485026412396787670403619848459681839029633665816757230453768977810476579510282422441663724539152313902326340109400362466229749558170772619706210990983587542245029886248110973862298066409404215467747223845834309041376772554333773669337209527899586526907515075875181479789273389818725942569973890977577131668948314079188561190762736029088648466426491419587697372329900474344724768191171402974850016678629398346090671875986114078478756143065436807892045294893053366126734343495948572018514078761890030232635959421590339674496495956992938515491782953552833522296057599853094729109973800172986645201149417476031810020454625835884694878477629457112514474344039576901514991034690424310796765435006211391346206179847896413824906616887803916057938289002948514676126935391930150599356337954091749639692139889789003754171227276980351452786279183176320969606510081165707673533240076944685046980712764237631239029746546217360357145924723803328580028773832280347973847584242425133378876789908355802438058317148505239942399722945235991911021779765520626668534402387363649840041985247286585881076990703246675279459968505823491354916096434933175511697120644521173554168936981149624681482930641968775588345121030457529757019954232114961035202377970297312339238684701315207923779884529829622411232871484548223959680299634618454605494060167907239517067815670773416298860466459442890641116841267993258276826493523523127603853429692776157189656447913629698410938551903532421933240622675329344642773060550314906881603940321418645912661489081457545456480099309377861585413560878454374249374907600269837351564257742300213678809846419994732528772446863483441910367262111437366897525936775713325386794775308570433307353377071233445229645543378616683295349006810255849193490360083716996270390340482138003079765635232677558873040165471035040319068646556698703529402313563737641349650219050438386466665626058736010780598099669591959441788912932926519972797402082370860769517238232868663007681598759916777752197137923099210607389016675444845564647664202491970545949054059857915213927561357520611562308247119861175797110745298428148884811042766972044752097605373823624185057012629978033917064484710342278379847479933425994545873502241693475626484893136773225440139753631000376280177764520012572027277546072193361909699349304610137571862193119281804622612292351679887942809262045306446686237130614919451351049413888464852578887562523673928670239370626947280898258298660953540418348812248851010536339942100904943023252988154037549872046229567946529142181903247271304322447970300714020058944092306326209417109472423814217751987992428556389034749276631655979762665064877415803112046706207228675674351120295672403820450461602350713021049596123412908977542196707426970822509274982202576655738596797668244964908604976217376762093654296599710785545040833769900338742367119931260727315445918365200851151561060244330993233767956351480409857292572946472325037634543441055529630374193606282122025411892613748321170698427688382065871172968690271079549111391229416369982434281069953835075728887729576547562549948530673356400020001678106808084232306258203606972782068603746753646675881449250736424218441817659813345343135878855267798840133901973054828981166859574491298571121766443094832241726803898066680795203829710210950125816490797283989595873608571564226679314851967839504101579995307513275566585947244687639432812808144786067610659200790061773181116097800637067530512461928756376193257745244795661773417448518370654496704149497510619182384479785905399170579627233733200994675517744130159115303408600787066021915434474235552567573202261039652144162338968813748448225309444379886236607317930282689774562059445295374427107701940737139321476520466631241800691283066361597520924518402158247716044766136794619391408663042719633731061118103376150052464634939836467483676341700272905194217021064831491900662553423455435614084308524230987486176109451471816843583104165875208713337189089282342320505975710987410993890148932664549322276785027299382077407830105489684524722650816866556800136017741238565052151364836041258646286840329022812109130961375506907215536225028318196429887499480911754827926539239247397273269640421217421745467705112632278064658354517725661388019766379333097285883648144174329796110637715756548100740484861044420733545360587099293864971260576082468970677213764632677800210701053577480959111675312352522032850209749994496895041261747748016354465000081538707505771267814992949541401934102726672383676532309180391787228784848864719066476743825639171591049738259124662382898806757143623152039658453154576744289068423242743167862211318457174051849162341570100309535323356482689486067784690441597800165179066170271446365387870297920855350881699305516799997638054683377459249868210366657320671175712460323440849088025189773312020761547050359869802741982501228150635396746553803892153935013381843311598618298826027859365106557131971522101617201567576431853069877913534488204269769156087673425210298591535419064887748553287891476066538771641120296496127934268306192099201832348942468882226403315923863830676027940591269062642167810284403521933423746127895280791581175484835627709732482578851464999754170641805574055341765733935537094179638508403938029655276801564255622754641820710639541418014304432867277621031081287767528587362848822123868621267771392332312026173656383247778536845558704447448336886294234239294837390143679098395987294652336877653861788923638445351003124410171709292369614905309741731517737057017649440002904553189485368899156530676710215519292839088050569673890597628261096795279285995598073327295373677591092012502146079712371554003282580544968098780671530007097119076858838125018507554615163837024753332820249134887818618053754966898615637450944550886083947656304980271056641549830139052128567918967672544898143707000780758070733770266221112104633210080288961363124332402874144953507818329467563754504862501453900863292993267484803726870224299113968035580452113209153010272716246622954461073948845504365120377509843398287088053600024833741493039809721204369373705140118991258694747876026017460747897134630721913644751280461378626114421565314433352162343454585092383619111148936847929399815510962318948815029913069336017724066064706134106444068560134836981356012118236197342498829203861905511765917828922541392478895507106018882113900920469513510287030247820716601268781184621726280738100082164438157239541506777072192651526149524649546673454186659228562487416224890072331036595186778812894869297145036176593612954718506160082066458530157375805935538649201130596091139250544911439664690660038428960902554818050151953124814483055328105327784439941899865654856673907571161295942915206951506110304666534505592586610079049132219295512137100378959842973443106546112815088343361919023189799596087375319158776843640175630846980379856359913656185131691779425309752880665401582949695020950011573965857358360434096596677267100066085424365354396251732704345380936182273758604976583476449414164921877366306003497479929876023202683642992620309216048700231035070782764284058773203728239739069367866093035431845114157117273867126746453494078592666391149536415581603126880651474648397875756756033886550831561250916967143094827522285668625445035227141317033898968108163589120749042475195076161526737862244004386639782527949979318744370276796592652538171866362156713332821864192095324430715881584073609772180636644228761418019461269216757247059369758221290542012286403903805286564239706408541473158286134085808804953651897745153737099537685088612449010311455216201092281806630517053111555472769080011377495154883852879026695466236445056758195732837749722984153843574858830542113910224047037491853005061579409902203569528459566944940951219684623712585102039432736784110637303557378118559550925039509153408709794895769136448147636770760413207257357186691778401822636963431448514142895437974101881003879329813659779845088476121422505958533514921869036569317930870390207484312451622520996654754691139477294421303076764308135909170799014416944859852269611623487003114958806197481069023062337505253353660234941069316033388107841142492326079697808117149201504304513950501356163896031423572176783186640027206946383204403452862484754534053819514694790175516482368572112600932063484841693849684277502166820440879629583265303170666531620723399185405659008613067453677696907950409860430951511734448747348918892783096991631922825291941804270279326591495365789188908413545367607234526039858565714063336982604270042695280812278031166838024985512175534229679370553658982943906446810231689291661049931908125483707451734690178619855643905711640661907060917431824061410892370999934757346089559486616904155220607773030906557106228786926374894474941043227101588208970780141844100910360148688008969399263312972775729204314637022389865499059837660353115852034696145983735823105371663430149093222019943894727030861940657646271741588024864159160335560828813012765726367616127281897918426979963892511106421862356625014437468348246553116011401021700251824484661672457980571881595783641352164204231689219160497393487074515714684884274747254454237230415038009908447145901216781205238487854648816324033084923885154297053191991957370706497767874558265371130009794789932602614379691601817826527598624138553323860255403325991724546352344493999529304509914278215325079135717659126836361040674199388902274703880351642822723563945855216646633875471636890773153406802693848998994036312963445633015417477003321156462350208229986470123927565475783277773228763214842342516147771107699653646941882787402572301223580374971072423971498493600859125271415304268670265829994309178481981308314244825574238622995614925605829385438030287497287285209496235606295457104107823132272498300892081351305704493311674367430984419390410783671726780181125949410843938376001997104499611473166647939079393140860101974456050040538492286598788185204475866629199642771734761150298988414260706448312695360734443714576377606664719917399560737129676484170067227040049444910962206251027421293571055394519228423592646324914016805163301013197852557930542596565287515482152375016655474862821461766177880786183837590870999097104177528066277366980195993714138513325542081706046692260308975272246029599812429648789489042456622029007147113710083581058657849845150791265576062459958254090663487930052775854078571231619611164498734343800332232522365642863737139750037939529250826848612415790209709217858970817754386062609269772315182358732807334582068946476406082701576823801325133532275769675683693946987924318611101445335006252305530998967348592437851757165473387748886311953736592563514655255033924777459290585357403715386801266701808274703837384233281739657959469448275705853055645523488492842445611781302951768429157898929202344166745523992303281332459390968253174982188117400621413603587865409440428628048092405301874647324543754381898589141494287029640280768995344411114033456923357660757738149225356509381915215125901655979038410857721947142031953130183928986833989659360697481555107404637804681275574698536493401840288466482642086338660955289167260244514868245680451769198013792946123905053726040817425038389052387188069547536158685887324931674528369451530644823481275091511159803582139277274860229124633387255700214873667859681829777168993380425657527983904416624648514077148279522535878838584253610186495543974149696382775152374396810211167594164233681429487263334899469717819942224382066265183609703151262451945916962961053225425759891766029864363262580859771534787094323028358873586223924548481048570659991391402729836699028198914723292997966103389679948221246881523039980037869079181676066017449332341730305407723273602308066612149898345920317439917840938734319450915985788086381479813479355089298264947634063241247010018338596134869743341763971373756737420346696139638073740326014796545870346591720052732492582630395206375917288879635446556259152982712051637923105947494000112357089036009304153931588815984709383955303439097014932762873447780556438263705168363757597396124917569694152944890566583391246333097929107575608229939919737658518283124706568380479840692282551642544822501152052061025388085163995805442935580375932104122334445154415182227729742804741441245261616958180870384616608657576849693338669575691571905869376690133947930344354830954370010233445619438179378176414934209782267836780875402867482786590880525762631704635693517480099000990531947235046674869081257709427909852878955703134942649215764934645548114461995028251592550389472929586552730928405700876895354905030408495524375829228763377867717552126301001286099306850758116949667083961515644115045975968571132767518303530201944524510944771869462606711828376015482772927014402704210612206800794122259875646984721653085851987373955042478113683191296217542427631541704629281720250950606251583995149274685303102590367123640071602408412854296508994821673649687398905449365874178823391354197694339019824917546166339180925003515991438273022989171388272595497134401578606991153427499647909716178809897154061669560479207895146696098129292902874271948677407353787953792424797369597184001172076754350553294253449042987097172415503318726071391861337649359389845093405993125283563339670440849089923026614802487314320334597366600604814545808870043526379228824038953034079804710607225803955855105569733674958494097071759945796843853304839279516470724855054439639100018776252883462935330919234737662115621874496160343973883182192047799572439091980179865627783112367779845326132155528865098645060783690850721484859494069241161201587072533825961439185264748809949302812394015315352178469185474952768654319083924943502326974075961462345655960695784180253356160675040170422762345131380246877527776770479579969235995417853677026782740817172579420064737820989996158142473729253853613583482603678823960225894634465846032117054571198819732679503552054964693137514978134916745530856073914704664716180452816817660455556850799783627873113022790948291438766208912807581898490711442645147910070625036659392594228060241555508911211971417925114650993394036148212593408708549302609942352718938534397897152943805204625119147602110488880965073108501786076024546955380765474558737825587792233519940600270399876636959368177800639184259536248570974069420883134428788783464655311336193966083037781014361800837966797185203337852106320826036273251178037439214934893510796178978006352541754914360397985716912603625198376548753093409656895436971883851026050301769299690364620650610385526025958426546127605291472298905801141099626952525868912493928557924066710822189158318924040399572053199665012443595842412856877839262219530997518962392071849822003258636282575217025289127279835534654371226051695068658434409983925911379734333788384925715791841265998857322112761775426244985535676548206002610227355314406928228075473660935930267387399471185478654949144505109486045663006300879831459927592971082385946643865373230237730379221324231079918051559084044410276232117240807391617869634972252216256456502255068355647327829952678775106615992226613864224946868772359375959548392374151516036474689830017017372178374248565376872113645840310306397864151503243387282756948383443140413139642128224585489677338444293982866576205621692070413180287720395780572300393822141596666941600048980391472146578716417890100315101555886310742355812368683903636981395791364064222632976975023433365849401422982004097427327942923047580216046815175395717442199748307778589413485751222813706286828269208517748209768613976541131873607246352014953813777130939698917425057581777526524185025570996077905677176345654099832345993494905443720538377730493752567863161991169047290862686097166464464451392162167395058847928140877837245376866631283158605759494090706980133327814387806883039866090545543531317119276719940519528460973983873158645125655569819406172263079606806362725589601011426697987200263790607784757302688451373003228808033768449837248399831364971406199106655430486550085554074554231469687327330813910707859523078213514500285233421477943041631464490638251934428079034310269308257449242542613485693826392363590711288236075559128070089971619599581434113304185455342740127509836049924436083556218974160127691221003184991842267216312565483400361551962758273013870790798287299754244695649868054788833127083677300951458717715377283831360150881899176470938220543074491806498225571903399817199622144174910208573696969616343611932640663736921123093688542949449164539465572215142600729362016810848586895374199836454125875079731724964744899376676773016769358030583169528415420575604252820207825846228107343195406941267882839358958213624824638963690630002007973512491764009361802960681741870429078033459013975306982643369069420898145140080611137918999749935471369088187021796973860389473730346343908803140086129237030332338431530443552766892634010185278620906138749446843885258642097395056711943646242054450479360831937049746355297490167973032746477526324662543744267332209115404184982641823696383019068496453539195176024400608065884055366256488485632413701871325606171664567014952689283564701929470261574387295453545577683899267995304996409821229539913951900742991557537427128510273304016318389825096409289338806286749220899182351358078177557297103880587557146412771728785141386601569317647391281840570511219117348245789784928201170823580612305467021370948839891587702981584576458112704974984987530075276565332649646215867008715866865588636025063110463945822191761577376426665385290321470490273817888681170830705275275898055314604461809010814324119762713184041088067232716659808519743353668613971559576637681213564343836751719891208759510372477533397121531454320692613737474253183485323589527016644096836362797393912720500659413611987631017329263116372098952200532529412160132418669302950175161640132364367704476919728755835242282965302129086653002001850065083652155176845792054027404400923459413144622828745999725433588982147006812928949471278207755315085986485173403748449845780827501085648596718797190017927799623158752949027137725850190147513540244117605596112634983821587963773076028116105973114291071333580966043337892329376380036553194713698765280213355085770878492318912498608367023304112041629490177186859296411185102595339504366097421355002802888800269481831225839094488088276064247953152635499307951958659545139898757554915694955076106931136240209965434849959990655350891465536922304624071210977690364010556979272806519935408712141978950633492708888353503958451555020676490275332082131450684632610361416352640362809433168889494251198199100135657510837438238908308640994209546832821176962650807139075631351201449284185443206952614092640227340198924301351603572772717431515311973605237225158588561028913737210204777299207536425019083407674617257285077522389274629367354620029075386162833912542325196976365547048604890811145720229603956589685041630197260029764575189646674636436446201328331177564462819981262890304539015867329422596314675984373171959754908435192949076294451566486458227442843764775628497832887023183673974171695067998143019892032549933422195612350849051224929755958743764465526426359686440673400917956295648317621797739246434510044702239131655479521998018427859930479709440170861277819170642328123798355136923621780011204586820944278364841366316613578031501737975032488361486298433836439746902659989597868417503757616927151744974485886464649834017701059650291126185567624583782881404390324909654296996614566828056972107560885680245315155924736170905900704122529184698977385644484519601478855909673254868422592102784512916501054508597048906890398884656762212764597515608780724217640119324032724584365949146403096107752084146605003174683294577846862135375231835787739139004289543422557230158213728485420534930760930269210673042734023634579923065029744276628356829515039698146361613916661611889340698073175077554815520197996324357721841518727807511186806837132156571744381298393198163959023582956831025716547138708909065465953245282043685913436901803676619299198049971681186578655504236627292018757700460396414579299406351702552692982729276911577443016456151373464440748324351609883812968350675913400949640942312253853159149402576344326216156863182912612772865941032238588969841017142430309939579728581798829796605715543695053234847069108622973336724509743123234318872218353292049379334024494260172445230081762167256153343914387402247881092137293597648483594892127743011832425238539203608892033593144532760095358940980320462921739985156962057262338189711927657427659471766568710369112974665529150312451798926323844203369045110330821838324609329625853942832292791599462899640399786492863330103053537055581820540886237274786371526301911242893600261543141209605937464337519435869575871251636953690903292213870203844635532063817445505207247380710443403927833827277492903997109558165544219236495857274540621816998955980949589976156546193255483944300796455379067463619493835930378903687505717772339303980859980115375798332750777857551791873338373143613421871351406974418304289198160727661928722958930643847607909204052115090990272045619188689817193850278952216461820431855191559926075172059443089864916086295737512537769478125790774737836602531038760150382316050787419946798629609322963585925850940721039112026463069243570388582213412011391688914031542519536660383152711015832059649870495768141269311026760888053367891957775713105062417661355426048432149431697188158294776609583168267412850391003374461536060595692119928547430415162983456101945966069888048974650611130698277308316865207543456781288942589593106346692876294795483246737059634658514533134949576208856988656699538392141499805498187977594602502808287365700725671951696705244899879387643747729025418608033664183620044735422635170457488386869342771074343083359033486401969271788527133343161004477708831248066943601603410830213057851998612334810544447218850827562253910916515270793088295067717683866743381697612757177815285481387364194855172905422076325294232580637431304866644398879081902971807902589930829501573633447878506004791024397972527835435335925390347877079693686095432407920456884863848521339246254898329242534165656856880047302837753325855551087745576575411043764178292542637204195638421459684739666009226323658899785881993038107257057289666399527647400740739885906259935640989752197169095122305498927959859869858678988934093008000793388470706066280476871542549446889131997498285241257846308817194888993962814499327503898648250706045353486805141772591706971588035294111622890277421506150634494515765325675507027803788521912403797032439201249710796168608937662321217316491159571042422857456700053812670477468790454248292317430724873201424796826033106518143500601705455627825118387884904190862811067424371415581579085339212917755988666073050439989913473303774431449275905794321438947466431425009209036870521823159676831457495863041124465020578333027650769594137941898343134808539028187540752998017655723503630915866280619349862531422675767477651189673989222456485790465219680686742538904317281125402688259501955416671382709671499764523203719746843009618871481285846118521853699141353581793961218304823021628809392837045201805493302322257456756638617516750405716764444332087497678308233200092297840182247348644684193362867758359937072849827979848519320266919162408069112590449763736173992561479957706275600762581185099052133936918606737450511995983626352772447911696303363375854794927876499248062669078813444939323650234010214001034185740689637525461901349378280686976590881283369607971660418058654670303746075934305789239767171515128916269607003029006845542416548528016490708582515404856495216619296410285634106148014938602526609452424790231483192969163401231835698384442338630832030011400677307685655987746077675359652935250391303488683777610725815543026878888979694989532110801744221230951975370915529804312521271891253054359621568738161251789261523553155301874497371047086204448167063554220977985535048417301551037689760939564332083927611943495007941498802728686211737384490754231913861280345732646856466425835632180449784982250742080826512916715280415639925906002905793442391815532026141552646281231376599023855889676725427519444790940400293064875668423736574215432491119850578448197056702860805457038926358360112248359908638228479374127555702590292585956535790443313580326092047802456378781673999278108578190471312116233046972542748817823864902469866335526034964452414379152104838333858443089310806046142380230998172941830581113618997537050998267311053610004380613053967031769940185599477895194366137757099697678558757933833136854788237686488157425270068990660524969345950839004188124295385410777094827727129823515011565150899626627267990120769380959405239457132908183453091131462117781486988411925479805135154512239959997666807902307005333047372731610886692110429214925984068668393467654240057409776323774406189054468814506013870254790131832004280591329325355071963524519671391939884919012660625955865952536405648540920946345435342319730032260382949260034261769398679373680385426141134167649251493251132279983881227648181466660455403089687706669230954980107100282598453295551062117591466196650685442796260209268828250445584456388386364007147018212179801590446692049058946029921786028540454136647351104868365998893072978256981692607635167497610265735015946105428761315612330916881566378030961458637367315611559489220126502389405095809046989927447771150193906014946409259306483879463394076332342208711163071255092913318364657361187593718625452379247956601996773631058304746156193976641329875577229147085781607801765608281013544039143706433703827097527009363114211303760972334934268041796487821057298591925260523295173547596136841482436936804806560222546920100410050876943061886820166366597181481373309458817865656070933076894433063966212577752333095247852240560490191120354679490332124160388840716316391232133799236528085496699853335547891613888380343931409760106902059422318869194387399755963822167452526803073004251640504179886451618427048675395926774201991588171463525658458825181981675360357283345535611405135705402456432432661935022586753355514650028428520814952703763851807198494527629243246122752349492167994985892678086248537448064476394667176390367003822113098319651888741600470941084668838325017106850636565841478788125979638340655728753011754167350001503834855853164471755910325388441014494953155841948956973798446883526058963552292955692027733688748551398159762832284277986443314406766070386842404752785026682969453061509532017285321679755851574638290112341646076251455187638419332715460503850063523193662882470189011013013719788778292453604641194324490246033191634942266404735087321038798376532124011714055550623277100816951432087738435922506426674137419323033178763274249717723085848142058532187118797830766971427056013764483756643541916462432382246049399009163315267797222572566948504193554558878372179798146394268675024196667683288135044238434678762670259076488383039023831829985322031987530292897471491948992932687432432681678493641723275564831578973726623009987595487369387894967449116967564408146253323175869319340667698218900622130982773593270314748548075007876712137951527957028052542202925095325631443990604296735494924639980025630093109425310750769183338442975642034745819559356220590742847869047180396578003792035608502765712905250544799402830738354267103949373303621091656221132771356141594840287132902527636419723343202385856161379322324825558874911360437999656785471598021897656621281513349003595647481477986034424925375214774519462060181822390062249091020931933637369450514333090067075443540572922242993479533382855483164308787816716987319464491432813221853869831113080316457590132318086748753673289739143136305376285454922524518422399173925359424882999256000049659178738336784724299858832710043999476794383942077329981449402287236551389642270157516347292088442602761229364336022084793448219153444495772308734355157298759750761240665441211230804808325053155485889056402793788021539883816523115232845420755027129935207724489546858492354582917454403161309438903442923233259108376424245584528517545453883850052666914479956683462821392716941186577954139712754260286621048610111036548933065572283595839602367291554799170248261466008495808213425866141470365194268460541263267310209327595344583441423492770579638653091837109113034968716233584014699964191282446641976019922059732883314787336075932973882842714487926376170099013657810653311001284612335251684883470032074149684588468089489946006818043772767864983736647891312136775079954901809705210433789050352887585303161758588424971833837707419330214053590692275254212318621912109348091670098251657676236648616320987566403346636244720135251565627384156457301726162435025283361574175945300372684364176231066338002212146357515308546835221875429520362022878195991971014418665126345813835698335746404378071755393237615322033598466575954490006512272942686569890396389607245476853571492841803464724992635538037036255880719232643890561951533156860003777905956840949332421620072703917536481878872865040047824682459625196176017624192983589328361997115169407545109755236539016787206560389504086377837584433088795276919845771800316045963457586129546278831772729987317548445991116143237162587192831454849670193352445354686621060560037373925446489856984133671460087498337523795142454510835082737414518555282811258831114290496675617612915450860190383001008857641015011156843447213463653201317725643934230781821670070894846659455800823552768758567047473089233932988094714556238246290427845956782984414952671599231992408706724682483593089604572696979495974812701694456819129904261791575730555227976725100433272920869455097907673340690749491393262585924178034802995641334413121641380474852786728172728294575646880876309042678128036139107124237400801951888400502877579905331275002565428028736457168810412399224399988061222560184367488473984776212959573894707898537148180432405319545245301180796260263248528725673827037939035393463236322542776950764944588094824786789097180160667413209074266622329053751631289004887287519531171808998714433763905990776406069673676606191972256076642196461573634472550283092505326616985365950282180633008484897551689301347584713339870750322792457559848585437505820190938996664217645446135242759715123303595563709606832045145450120387718150032848370105499967619695283619963655019976224770112448415643241229367257262432274034319582427408694640220662213175463269079020665568220525760732223979844799877126403973425326516160531484075250206254121879182197836311214883313005565472665941957477468226500791137514981126314787753465997997834594243201933127482887669103463321934470857266033017654827484067605502883054122398011500712971086765394076695638687438161309871654329257653580104137891402608686026177362886709256149677205343615565142829345402951386547099044933040262407901623857372522671972584214973769092630068741287430498919635289590398541536405119097379876292185765760674929635597237922975447415547962591080758646995580806574030363090084776124516734740725093991629411277950761948725682178877711887473179976598764169180813493651202115072395619950910273732118734998205367145011370935756973548101767396718284803187280419926736679189063633108630297597058990812512173136785025926431072088176299354210436104299460027779327405367488825723861952610514600512186815091399305956754698122736123384076240840144020057341769542715847076374522800464392336244112104849327684284650339562920441286041020002506689533226573226183201657904299049019194822926901520142617477140859372965360731135436118006929828181706936940403031778527858127262106871355915611202653756394126958424810100462266544290754428606116164718109846139150840983022197055746305948050989561649009145812844499838281036007655899619088136762785023378286242796195455060617461592213326883967344219486698748916377026216983295990336111554045545770892500395271478967555697150053694031470702151066233518430117582248775227281966805061415865863117911671617935720343130391635581969637662749635864940441994568107905370853119963722786018474645446246410268378876710831010248772165586033072716782022679320117430807939686525318963814656175292387609040944811707053256961236564272864678174377094280202303983994176085315307979652486019959551589955073433261108076120708109342887821892895790896260678047590220882685516093649974175176250339202113662714259194943271704765786517856591727767441102607760292837577542587797636821098789434166663263116246203468153443370099141355218423957167983514782031825370149489972188013198623123854004768274920301097016950675077834041147882368904686090545147801434541853038070536024766238271152083604570459703117612669116960881164490455912666219478906498143556420317211746391741802075031615009477985613157252022869105102123788430561279238171878553273124283891400961814886655043625225324737940442033717852873274697320706312964373132443890887200973102613201889339300266993463743515813206698240343290995561515391681586189232182201066013977964155890755148708132300813901370811923181950841116040283078391643461201050021426614348659035158884384203547290046792674358804400875714698769196419558993013236519576268608872764309649496233765240018370067664687515442643555494771531705425881528219772600450113989528385869794054479664730575670354092275919234410563856884860108038320496788347531086869346343334591362577081731045586098025013761871255591986593991986370826413002025400578121692974118839498558944216111200654281569327771960639089840803977332733953642704686855180586614447788215225320681377957581368621516973920882031181194964356269077779685429138184872619043311095152241291469473635429252833538633267789119378446169400773669650092705484945524663826577247433948943961036027125626577041461021731505557498989509371988085776167284460485535175002053621762202846660334974139871722433095825659605511752324586424843282326591236936680920076032129897508582483545997438260079965344415396528709039032358873187685994717439532575228534880268766318844742426284164219909640994671187917512842517045279219703309143139830289220650187553705256382580899343801206342661136926821375883491747565658712895802456390200566713643028272262795434607428500252676199318759787823648118193026134676176074983859952781159602929186251717164362999219981257651628925578430676713912753034458552686872176872184848646149733529069252784297785049587380289422228846867683294813745861784357508103894394910307552206139580529811030861666341604241531126835426507675296877334941813207644984470380691371784631254949128348911978593484113177237666941552951531182314122880238419337118883058251121001746543196946708655669255414195745334123736605077620765658457719683031167468382378981710229531416793426229769599228297914586192588405066503344576622652963442570386616532341070968165981344957636183159454900026846727721001089284401761889440398980718569449611699918861548502487624745540788975950507373596161534141290633418710122507828870178420845383250779235142553010603368044867015596306515326573112822065245643099171459786496317001976395958689105286167790127450483048128733346849372004708154399911103802290708290417155185357300013468585872679152226281552523746884171968676905105626508435384304258990198627784134499706667000936947974878756888609658903980275211560236170089677480073804686210681379122799750486092460730796716369176087312208516119570469326223294225261700808397389442580307120088562513342507811495842911684174027293548173341471028869001103143162131897034223078476002666283805716041736681338143747131361707303759660890182774067241432173184853090069989210962589125829444612098472476380995485279259460687540152110579011658756158096973255429239075051243605015183745095843924281612082692120690333059942215983531931156441145355613698043347648761360240424917168290837517437959870113404274522587970161700611331364951795209335942347767954835314517453884414968786638300762193875042084297983909880833942660494462926820000039912322938855544893905229007744636144104451301235463558767011287505204956477654994915188884479842904343796539535275659535577198168383996924851602425029665862339210737864364838832515047482615701120322456073197646909367582851624321483437936232215903786417708251672328900795262367594555188704530637190101960554144319258736287320018331060724014112642695613403002490258162041316114605008178432320734374279188872009110088737702788336737123795862017592039859213554395234197056405919540517545078536282958217573883433607739500638662159926234406799390545588705041296985632736880312349253652944674635887948070812840960775912102303894309607008830767896464391915019456235378284244048573253735121966991834593178001054474610431867738289049079371951039129544751636959708570933211290668658110634704555486553529514560028050607112443738014427997387426710937718932229205642172842787850371297607591465873673185070105404070727913372666206909535236557444993636005579835912122860139582194602410754789842996642657252607559735661065261678430137896944726121372909051932936592525633845876876249842311929553555857897334567563873544776755350800264739130228923905979761326161700886439083117607595193640612759306527752003481791862214538132873841605623006364242366774161476518411137551996461573215681692708640218238267904925753062957416460477853568543505749091876207579836484830607619649959741613303832218751837914339015984966947670816227558210165551253351307308704781222850640505423008547741225127776869263522803785294995820417751519936713899647051777801587631165309241002513440734517380472610818888545415714986971933089592133831865148187233800325971686966400877962645274932395969532884203858774240668182589632371774404756114601384482819374079151855574918705497334500893206822227666045000652978530074706540959627892357804103156586884279140715404052888397591141837245328131670620423242779982133585461280484611829772598365508585736822973300496305648923613720680611627491325805238812865194882653284309974473133190058143037935826967936167895075751076397947022121555709310672612832592983659489204468780336566780781160645351763518226315154438471576040856284331850656053607145990015918584349977614007971502403346114540159772915715456218674476282967640627605558740560830270250455319078147595516892412055051641859253458345224929356468982111349292923613433496252500433442534006449543272576138636007252005292115542717806615820025218959662429237803605469430523289212736332446647832865768705043126604663828090808834610633081495325007502548703461346328498225947655155960879417375187488758696201630676209272103547821756884692079360961509419931588900860062143943683178671194613890825024675337721285498215259658602645475535477655363968718356274498740475248602128180572202467016318982590056120940651855113846638347847352807838751842995125503749259730470278405590794544756791630641707421278570482833355367981466768811124196491873730956933087070038455933001832626997968819786187889324664688504907443176276976611979617309524020790807532832027815538366980478948274744555136087725433419681470605278827541084887062284261822762237817408554022376173868702170311727216336762089931243184421874240735396695685868947536590275484972155780623358674515704154977374709276875357921879641442703207477382183673203538665228084426188959085444091008077646345801981876091538211062543372674239787162776240553928660199872540437629750588343820332056630609534351201704358977554019228243371129464512092375410011882901339580047764190271909089903811299297747708072311938018849776580710652099347283503326863913922007419160527703578489446966344156257936146024542724666556914489181780008366039661296970337459138074750397651106544702272723864512367842917690486426020747271461499871840544364899948957385753242000657496976942716929918974189547338553385633955011458699931165856853297385107332880372179105389426668636114006351871887620615286828664234680981504260415290791302674715125703872220358233075271091206855614661545357645139876768614729275393305501073747620281756646919155529916016886002971935530600556276342542062682348651780960021499288682353981706296582469614626675422745841455879587178474979066243951652090962039739645876512550726920684599409684252293458283159363978824981774182473215401256612945603396511000918240448694579522018465432802109570558045503509121722988034501303658538522322623774101549816412138811665133737647455877591333279920086347488159520165280636803473561237708989690584693022330268081997307352941696572150127211620010886503956066533254174794765848705390212869563471316648440925843836117434882333401286878094204958356316438924692943540933446891099536593290858165343665937627500365184788042333550026921953579115096035715742145145338088803312744838345946605017157910973206760088777773377500516019079880173170301348370566584908296030542469261554330977342979078010613332972408949127056477881577425873398516985003822276099743622564637604576812460365375284981020030387482111328077228890790608083579014023684093204714835983329137116212212960749295083680294200909806582253103237845559529983002535991573162599144632848505771798581560771720151216244868289799226674598755223943815625463627123893945383103238832283394602866715468867046669733780198538717250548364410162302520141871972692220262841320632822460176092580628015270761993127756472592849043252625067450486314020806084789678640617099740160064660351904791802857957621870676717135362038468882779068486844832378748788941316565037146318530560169099309766304140015795816744241412133561457404050246196906278620909927990102493612740020172405541178158895949130716310634806727862450581784200771767086918786858050732629600476235233841783139079653831339598825802314139899642807829042702710823037808305795476912188011021457255322827357141576454336391649695630185014227478531223224442115528881932174165734773016122071508539136104397926993314218678452364045061636329809025479150720712584634521506051643192130557506766353247586769877259877180906528510041023943904582439811249057207357021500039933083485402994808255061369600445802076415551686599420611720695854819795353023300884457026951921318102395318384417388066039053966743066703476831449374445115535119159489062996840618065263609436927613713005352203794461744057378143012778575791227602758581639577589856424748755966261678759635083126234957135182427848664326178579487743477677035957048215949017196808661232722717392592001658531562256559280803269848813641901468270796987518376485225924332132830543300583212501726295786446214988743068461806025873772123986458548410783043649313982580669437829149853096790626943937570323203401054015374627712041365852726694405567560861188260919172932984941722920958710009735393623496727225948185809427374034059061441575555459282666315725991843904212749937697322612122664990212856960695975049699368988600040523818155394485629077926070339352497973108142611068529923968374205025683605783296277753175123171585431555772642717667824980942508899832344976135886815617204407593706059281073302090461974092156319063239781789191270891625003926388887037171167074593147221226797771182394164572110384812567567210250882902507542085471746707209024016963137426231146302575818425592216882871375913356238965877620014713375563520951706079559254490025402720673998115318193795465405029563060216227268960660573583953687855560523431484977866662737321589906548959084872695007406262503917471457279588551714619528117288392363240595989504023821964978070950139701426342234548049643417321507186678326037776178635603637137807303547549469044703518543801543492850382594605254292775602265306503507979978488338006654415357018312020647412722271045594785632311106674066225224345793258136440438591133204987503038571264063815149750315711352667592300533868292917655425345087763846260132592251455909905225189712058455866367724825066341499007970630881083210972621900900890797589880915196035637022516081653195268268241442290531548103886655799361055846621454748705979551294292547246482387448498991225163260305706389085100289283933384756432460737795907550165833034088588316386108779041218004282378142348580411538692488491301190377217273194652032606812203250709895536999346253561156773726408282746074926889633421096827125675664098845610296134363933037875206667919096397874768358848869791631859133439975990962855149108851470079624410038769413678634818635557569147938566868983907129093303782403105313377925409843028728549635741818770612221888037433504856557449919974690005197119069920464851678323005193676638488858627909315578416867693157510524284212924220806589296829014524221260261030328696975594687842646281799381286593651204565018623441264424319110671611015913417470572624357314121484912541069511413474429999817654550872280426717319387032652125752265726569300775775787825761875429444298838236337918165396836017191783764914240177874211968060467778822850460127548969924500470815188541304966389049485037276528863643663545956720633309196033247303380750910157999860673364722416161416186553895032210844628318902403785163185247261680603657211302743030510969200338871450308577975033467623871300084618859198054215418820405014666234826463091293975931371923669004762160091200306492058062079647017723867047726032923798039323595069436076115564879249661502606578031026976578943408414349488159703565933195761985178940319092689936387383885768136785323166447781687686079685623711050325587031366739234202807748933782538012098468267206166835435861173105585333963688644739438176388754486821811121640710897426737109253450558236600832549587227674833411938417839464020043953673279120201081552378155299814199531606056388471809661840481980167782447320606989817962968448945211971002156109192875063211393471498913792722329609642999049367432005596598079693777426401855105644811334421020731192317469763227958107716939771091606172610658195299834799082218410265927659461098545017264907977482221365226841551536755689096806083929308996744417508173975052916209501335318158319770415330077740581812386968544072567918814549280202325295953250404865546834827284101142195830464347534329413597790892076803248637269536874668547317443904339111910774136030858223427671186938139709233606118184944319382358420027286515290599924054571365179854437437438827906884249558213189587743929439529417467012920110191219691689641236962281311912524206305894598751487056771625072804642278407686403538865691221336579875402971224558326614552089821781326976198388232106255226282441154594180760981428188298532753622628580501663798550287309914586414086129110873695983124679331463541189205288716972932730837041924335252865969192775809516711263255973973943775947371617127244557909620632374424307228114231753396836481035187989106266815709179847319170518390780225309583155462069731048263955808646731684232438584974973419452167338269280985527254267978883771511100081245801547705074072910235443522491754356973563255878774544435214438261671803500832820971831762397437424189091552602333547263007364675289920943387378541039294809954104145084559702041095166517871316767120528487909563351001397783828013520375223014165096352353203526593018191668251542899427009192672645122500516812950687556616762471437706038450956851780355905829407329305056625458152231119801681961350877783994450365626968601432437813645740676252386747367454055129004267423591206497542742223075567206881897766685815085160029786263525407593979527968867706681168199081445091292233331613678643570514118311370293070823725807970664776177802776584691864541806641354696461701147725779580243969475425287809766436090702975647378955930868491151335377432615645877317808265545351039626756333083962870009410150635717969993368947264850392920391046579188765163034866342257374524467750921934440495617337051528035858113584453506108160454499483980016378529650797443043074594292514076780572046495276309616713638591238253243045963779145653851569989308004529300884560733478738852263924781216518880683851790546108226208867418109936949058312398060687225965439177580591415153433912525888297854163933024093266320421588616163802046172176420891668673548843085499974093189705048394908150893634673444404208021181162407889327391284741947338939236210437304267574114659415304974178466635179991085234126310771063067298714941278857225094104906633503185710485448701326396417464698810277393336735337863901872095479980547690762910733921591357647279040698683093776371995742413524373968153584445356030282653252442029769952262345918857199859246024961595266834736797195785200374568006864836192270809179950294379808238840397458882650050039577649370211055952202619659972447273344014773590106937995054653868834083221040198013187257764381622926798387765238426797886453444131910106847014906993439715224763825815288608749435786661164023830719049940882868464510078476148011638048895380350785880746903220892748534873582991572680015368549114134773594612887898633122875076483231955579378692643216906921408396123702433414624662225751251634344892945662435946003692035636777147765972299891397684880650928035571275941872243960102349338464698446540038633118332223102749823737860971591308943365041302134407915840041673427869784864680453201033922834177318100878687766211112607137254513197751419164043594755653221673616261011559110368716578177018568372794090073869695545014874183431934564412825287895874059264823420326215265327324534998638072965490013263156989781195845322184815431684843965944826934349684868687819730102580719259481382153721180465903970024552357111709075354231778163983374546411732823026369905336238687352766380924905956082832500568161627718818382649596478335612523359461249184805177853253641655329089736520953649689258143109069591322861771717894716006790366200175874106935875293437791631936757649846875152469997327382946700560491120636150694419175399932926983482235980148204218713588586308890776714490519771154722324412653873490793716565517731774642586416813566437155500898143752716926954212883774455756070375853975369089660136911391177611617370638981628184138882940938132280950525208780264273556874393635798808719960859336727709182289122837855343690551981549312949514583524388426828880124550470219981739239652200007487493108940448250271688748854507074419194597712285222975886704675103582162674836968001276386026548654519517727762557020923166558021157941665728139038411386281275936649929077853278629501538135493336036209392285847995787426114422762900748720400606819595581911191364815528667112282211089734135972148106200886461188288289999644552207970594786978994706848299496921564520135783418545274026941513532646913247932608322777534319015698804706944685023352362255907664626943827269546932064525369976681937387575506748063098669238262678595609219476752404448732223123219492772131301169216583607454563697608421992367525272109162393535761692878300839544724678623984683841831386413007578490053299974490357361838337809624316287270576199192439688005444419239278728421550521662045153296599801823412117746290753341868151306710840448432935030850532731532140094602221958607244920404229124423109182914908920892166253583436774205295751932021323740382944733611062197650665379764068756505717658716776400636346749514453174355349149507545211199787403396976085903058928689688453352424769506518488856548715629488798939229201512297392743171444253153468955422487182243920483222268925428626254731636541942559465685422715421287197624438573170617882197355716360290924945290620763792544786289309389433502969500389125293738179669735789262647251870081939778881897233264268776477752569861563907359260944744034920836997785690617916655925268128924108924464095044976682804031622014485584310293301493407789912703439210589229585879686297072570915016099689474293596262971660027191871490017419622578111475342360676500947998898488220906915787603376725956085369883838978693678761355133697800974693058345659075153407188635805611784238555143991399513172219059534135677112093643007322342832306369376831234487533569605954975127056264288863685707320457696633425304978257884704026443930692188437326391560962936168774122379669586013420217390600214774767469351979002660738467964477850616064673529366662718064198135444571729502273911353012600531589076656895194700824066804498915846743095979705474432790557080013368436094135504467875136886496577019103604328725262941640179259675430842440917728931578879296636287128502370996708341641216911729703691116649528047368699196857718140861292886472159062624964487007620153648313772766783222243025839941415998510494687511416796569601140118004769857139214256631058513490778095552841682373423791456998451628022740414026485817067584879598250351465077159976954371661821014703420049338905289916866005808747618725685480069143246994691862932093058579157807906712421216110535877674810861561569509045624231595429352693840430356033997249806387339697760916284445156455343673966541680308456622788842876347829756035014800852410938192579056377210849977124349725683048409081951036927049169718075232978470951487069352712803121195351493021891363781365733969282768994186683128748945452169021853205779774929046916494418526649137068836874418218845192741563284032649046427350572898115767898591941935326032615757441673236661787882588952786173737949947144491424210778601663316155012693600658280065266155897048234027849122321366547509181903439809992408565360352140410396288757704434108751917238558773634150949254650879756969023624190365693801387932183158726528306761507588458398332315808366854278097669624881484764447591577271799001660371401331434258741981218025539173291775231690622081415459036395684324582248252265716398167209438037448521930305425047289950729856690414087356443000315197314394411218453185094982443640662593105582779317641988229047625828285617017969880332557135047845335557659379721147720782339450366526043592005960409394418412025184744284423783828705718874007774467004269507552304215661987670271173316966959507162081211744031710825986127723180181428928106569059775437514820655012271565274011158062470144907773178330417931621948221046286910862288462621441312816275583622336499980707529236221127774694600384612404887431904723180431911493423011538849946386195113316578507357012828926294373485976636927771773049472138680400574417351970749861959577418599964366612075386321199308470988148415609229471839948862318579629898827735547440435070454791961514751724942218105387205335616493157995074304567747456811504458200431833273646614715010331502153538923063123337024099252973385948110496899040640663336403641976916108944958038812282684254071230417893614188126534551161073386834705272121951326137451164046684458099796325977347343872390769342686645333563155951825605762703643997747973042938415512853262308922307810055450973232388685542760385588766077614211043344329914993330939664386408277535275145371209610633232512467317156643460773397124883536768013737487668936902384468498817210688669583667546895185506106593592965184122816347298579028929403649079817617232078904533488242568589440630503623717012154521247758280214067725821958981992382822868762932625334309007605986564645130620507520317272500720360231013320103340571374554336819339789490749380190244649177037365707673332643220352150293029462111218640944618844706895029492615149154354886903466665819274081020864766763224458618202675091164262719954815627917131756584554081921939905639959552976274083575940163545045525032686298424287374198398768461365585928757059490952662962331015221309677494250898677345396922920359138155517729298760425696547721362609911643449706370862326947379324052168180714378403217870906457820739735924770382906256115548476217318881296349989859904115919231264110956160236283775771188085014051150604142687676200629073850211081659537469817747624350229558963530304807162933383107979540695827215534826806281080008984951596064698315208679965954502954267872975636750858528709805068081916219734996912645598821574721260951353922060570098675725342844332795244473167679987304061582710770477345596639422736244752960428424390709376160804580582006706058544821635482607542684873596680058391840128572743072244343943275760386091305272401184321310094096693016963713463467140344556190887606402736471046531981670508914240349317163716287362992094165873801851229210133873653779689516166295192782046217231187023195883645354250394817569411870767617871393554013901356505301304732739566427936873435701535363160693947835694288668472591710005428183816406732571978513052249154435013913887529929449044064390148884058563432435242360358301024516656995558945541814815068050609527617681569432946692974269553301124254902260078948541776433666093248518163275078695251895912737934187130424595264517185278404452534471750147280833925966891784262992930863328544660038039617515568567007502952450031431630040587629351603617977065359227641499621159175279602099677742722107036377246834059043315257539178680099113688041768337369007189205343051427106049938698898259615602159489256540789073118711255272423261471910681540428827998103312537093752142271741830747018407558791830765908143516563150583436585438820516408622403424754378838273209247933189464225543403710483374703073982957582471390828284982565847090508050316836028000983148617056131386642476423673754355329819238867204011833851115803882784546383034373149643232514838329026595216351132517790150470308410592607986574871480087936172577523027216060793797549388957166260441748581766470495414035952560646582179862707574060944756998136296764446790976132712793757666319700672207559233290815954252112574213775551540126855307555985285285078947921673870927590070761030427688835657030538550224225429809549438114313945947588492975871053429861626172578033727668416710073262131099723706508218352241480283263157425077517476629209341021154754894752843667503438076346467997422384214861775787208510431555274061184526905205996795110961253339565509162106285285201520332324424344188861745790899602755972739284981132935651125266180229216489274571424484948366171251427578982844329444292562444043032987358799209965929919138668814805432232762390322783405567350921923883737343546628018777733863828527989652527943658430502493237630653946285124181317002959425131362271588729058407876703668472272191733140621458070346358392798774910554176908537999415986263938862222953905284862254898447475287272198690782633443104865331374116759465171361613729879540270842637116630723785875788402857484894013098346522763750692860403156218466859212660968985570195630291583497392925161866894939622471933340836117072912678754356353447755633802013374264155484534837923748119703477852607791397578217284947045396218560010279818065382053446734170553151919427324156860376200885965424402444647351763596963454076135445727894600747927947366052680784312242213136918611165674514836266280177139830904461083497185135432002468906607732442513431286671881912835356497859166754005237635676596077283347499515733426926640011800166420489420982351724934325470873543696783173094349232205641168429791665689858557506055014982199566214482401168041605594900904828806765002799853350227300566322030522761174397239277864776487744453837095195303982928493816808748045117353073623076312524795981223136672478192866797488878369372074428611401288614329218745812043805545238757653408007363423312164188053804403653373929661920981820706048341145728643131271769671606682502517339323683732094253137849274572116781219233181133110733467219501816654342856628643218390836067675166228081844364150169851582367662764142084172615116902221998398654680741734804037035355414134463970673391571951491490559014317805686237103207642546835118672467864304181198113821266369898708258180018250320516903524133931409654746382220878880199952090767494534984632042986151820038378435900049133831173629835832991029367018965041876894628754798544629550572067971214126793531080127260648012664523132324686355370890401692988346268854952901334962711574326886516313282326002462530965820061400723716520706895371082309821983328556775516966929058595388207121622623218958760991133850278545279400792526868349222082630485708113691663556097403193695245549046914932205990806087078167823057001586797054406143094485665484454929813056775205290218970729069446609950962507968166374415627594072816395614964203998140452719790034686632415524717385017202946946548164576665799288011624576897890840278804135983121101154268944083196159222075102715765112747413440815020627143417932465094148295268746150492618601485490090209451003947423214624390509593484930367425252634382456591382862489933961706643886592984308253326216334715889176426391643251766225950537861559699941779782209489702838587159326698247149590141140122851225404078989401945099217981832331640807864531788078113666736553621343930090429361814478487956102484392667659747286319554665130511436133502779095794395561881481729107409073193755426065247520850412634824894824877028758357750993174731809305164045365495207218624534480442126828045369111411910362533998961738703072620730820399420295166517037262786004688170664635235804590566329645882246980115581441174448023429267592552819010673393115358828068398563519122385205923284678271101231667031589291893687801158548141114050673343022376470455123962803027995938715660274718429863613671085973813051762484163941285888475657316539096467319539388961582948433704856101387252083247894365160941165824930187769574773378118737858229823246536445042552648575562211185598554235288778596844496578309200197491127297919318986475089647207178480224059052318484649620115986225117454225063210047509424615889127832832507401586398915966452967819133660957819211207250071774916645376816824944248690940148661650782912471589047273806265343233150982040559731206563788768816632723929923080468343727646070673740079957622609126935590573209843780976913350330907396484717317042089944392285103494221175983078955859337408056892440103002066294894659833066722079917470713765219792515362127928642387043320855027050139734728773561126890924444441046654917273341146745826925890548500866739234137452210672722495131500747704497313825300062192649480257982488176665431400915820633991452616526256895647372172207362315412984373915724999304255942785012381906489385783744555508479281883615373674675439661032447955951122008005837391075761257253652180072707825141191139293423575803295290181538059344680611114480299657520365297797791832741155165676379656114704378909275190488562943395634325160543923051122016421623761201151665012483897948446762863201022464098386255459000008079742703523388291261880186419208936548562603611208344714909420608678322044406607486501072964350527546896193512540848362273516467697930775457061113386249919189035708515739756787642090119248612094281171728881944278745395719955266847087858922962738456902882225600487823426704548575236852172561527213749302187446864949282640922667636603133408197351194937431470308152536787351647937510220074318766036102013971299465905458632673050308489410144026386196299438538821793457992012024074232060420359439766872070103569286526776385033613922378112338250583715745294322959367197884637415015339812541137847545375743158671079801193627111429730075829815619501319836167181433073353490669402495023469793341107358396938957147310702464680626464960942083589910199326989296679540550472201736723652052989440908276803781402239306244370001943461463171703112679436303455573521783764406301278464313896153234087833626496365756134825841482197334667204777951599847632592419528266753244834349746393367546816174475864947038641282495616324114838241685981596670604879994017024476667547402666540906654189068702152059758062631924108855480884925927686846536060674353762329441142232470542430089808231452302638623596890343699052846824788772416433856345257143938980633830323815830619261325949872863069520093163790675112987127828619758902993019922991936225262266598513292859141339923189621048040099928147338895789597915045101721697295313222689669405708929340242390994558871381724240646320471483221393842251854006304968898342433577230486078961843647376165656506188588435004035226342907878591254252589760592769257165132224672364014948376073898044561286293571445019252959821779518548631203627476899378296243328848251171387801592346212452215104573084567826377876055275952893095754583558176553905843783854288599796587389176498784443810176864397728403412384637274779792242577233270953281423084902883718551726611238911358622016289720333869055295669882939091332933013131033974836525506120447836501636916013442480189785244277651017961623119958826406135050380499585284625642808841328058955734234137986613941624712060840813227269850853838791997072502638269528600852963838933978577292391589590176601564949299511831874580994386799120317386965332555384462954736933817455228455441529720095633746239400893659492624442457677384382857365589180128426385425624881982488045569918304812245402289742901762985600175939886458589051051606842649464571168323187275794531230165400055688132494235428898527788662829949828362786111941929333461108017493392956529972327562088801291052619455849653307201496778662858533496255958891998755518285339191496240754815744184054653401529885703767786940294344641298128142907753864508876527728453758383183808022765368160522242966842909947339036327042384613114479303062187050284622596197807160197936600481169841967870963113495252178782601766677123198566697517999059643858294255505784841797094778635239847870667419029112920300845969563752348151241071956838261268378627342896017941735102235411265917128440911405790265531447976445261900523755063226965132725384588554531654764858014187282898907211665431308034718157174415034387607923354064195938477651242957901637276224086188888986222464290676945828764699536160240908020286743902090857420631450805220074520842798312510496047937271102724678487090590023549312788640514511049941910673776671506747340704011442614370756033354436224681489389785512268756763958170118679698390016701821802430123308570525862458801048244345571678079206822629899596816258813413992366100628644994330048539183537326217005402987272831066519779688037231459372045226731260599734272727525084065687451638832431026180344215484838119386060506683019251213914095146265367533515994720092997049128528913825692072706395551006562214920734621272522243898702846023017726238757090697262759650267889233038463961435545097371530911549529886652791130498016947208216046194237655950966833988626436206560866036907593112565956317449405455672372612028328878140790130304778313798649444872772583617311641287664038174670885443540241472363765214806779944966794225820591713339683880686401502684512611613877986533871965409054894389456651200355760237515910289713200859366590297194938609696574717833237150376272578917697162380610385156170117612562978324428712260550233399683548675640835848859167748715361891459820162663878592739002717821674444228156268828737787072129208653319224114378708468499668899636649915882005321662188544116742840756597208217868920491189481658296415711913681642187416981268457396919566455329304170864991547926385354544365606002145429849416330223083942741976651610174786374840009994637648709082343155274996243827358486875021739767336791060670117399461145156254200063452802765915931602578833569554599719317128740662968156494126909694944368002371595918461938399264931228834930799486794181470700951790099473810829896890147757402488921925358738241413067488230747804767935576670061594450262100088512820867485560100811360268159106023930690265331937697384770552752044219600863843744011105430041666682009951493921046416721037411782608882802575608182467866034110049913820948739368814396353437924209218724167860637733300872627280660367720732017371256051876571858009178874182669867440552881907024035533868689265929701855015560753864043544309585132992812492972241376550834857273192317534007510873462010064373897440601662138141491088727577866905448138784516521221337581788126273354187485560394198179287628334880223704101383807804814274986271886329082589934834348609718138269066626235413931447625245157270675087383694721628289027043199286520992979983752377642352431577851157051309583665566695831297974343307108384084476003038393756217859547620663669931937300812376928195734196589411019769164279729352161041309221008603306878757152991621632983730238767362496094607288989381222995378883063309366920849462250111325595603144426215090709281526630213714683569835929559843333970109654969714000655793971817600677907260030328070761675213892437699662576749118504696980904996215747383061661756412129290836876359617589664838978375732372645363844393997077494639870734134421257606499549811385334179125209732954326494998698816705043112636259503197242708517506616888715836890533069675538526539437480213437338607410296998780260675112186317522793386862852549162077354452241102237651521263948976828204517856787390957987611309586752710998384105729151231579312858192840137774716316983394675332864754377977223530904756584913116118175723455054064069556937105963123773049034234938333877524756597752745331325552226318716486111595383937202983576200682270370096246526036761696584799300634909456843573079332824992405709595880500277010677632935860285382137498499569981694093599488519654472829005144763664215602204269480369094616945537671706671247757654491722219720854623062158283874997614520359981435697872943986633792961002224743478264316481198763878278611029971742299623752624109348610930086306969682090432170956336270602421541276586748025218750066782192530009640093663412288710915098889515262593452851518590642881950295713388470724157759995714613543538014704194509818404961574398850981751320541861304065276677530877891205986618319138380432465424232538675648903118295778158477448804371488672809059181263997744281148614445085928846338241333149847117983186481999149017839046798706169300905542497467396985383065912167769138595317204054636269725702316576389572169917379369488861240606445588954599263117347332016248022717255046440713598885846873020430933117193239715770230602946875140014213685165022371684048351881308687251214526792273947091035553089654672033427403228331969594853233406743567140278623322001734533830651789533585319932308226195808923773318813433782750770199424977396747424682494122890694250740311360404916658527645184266695415476236304424877390068483638564548365879358593041013118893161656592192132633293126877086618761437320724990553543069337640106879673633536363863703135723864482491830390143836141299514790916130271095721992891434207349083782232515456888117160421219558616161013111693932068305745010043049486955946488221233951157913323841402754653140673907278492751870125133138898164407842852953525963762909619544889866864912337773369245357753570813847686228838878575908414267570488795867509216173961217301312588229361339643230332300060552002823287786001582042642779697657921230084225912610276704634690871534416720793797998350903132167258067122362719186873968234299735154555643145049703943778263401159820055678818587632544813880814973465750630690309208178672978643575670564452262877684360678594865795631365283921056090074445442823420901460609376260034053113835965421600160024834300033164593450418116828013771512507792348685703428918917096866136887342783005184553394702666990971162247665492837378360597329461327559122864529201426650782392700129566496255849517481947908697983899352707873035981036465958479575586305431910627794911642705826431853576991599368451468133623882774074827997307076807144700632851095708829804919500052324810367284243540473277482517334498416765006169418786452088278433666742509612738081520878087785261903289574857379220779033825962973543936457927372555468278822243112889381147051053295058651111013416346439867888972531735089436091930771583492071742342829762716306164600095196306606937328372528075335569541004898869905473722830343341106851800364085958865907195562769120955135252964548978481460037555339341557592081723021296086516573997617373771231402830757350638294441587988194352340635780680789254331500833572755013891031301483159009638520940694262839073919491412000215675975690011394183248967954896517118500404132445112591949690836159885970667428057087348882841947178005048503487361627912977042011603392762850437679799760945913782825634086285180793165588972050281833121183542701634868490425296896039363274375867108432714698287659457338351652057141846986193788040330453156235996016007922138874046964240908527793987867645405895287646462440266515878068928875272603657172220116905392836314059027532000823667329535646411866597146332217455684674187067946670147480114602619767772716188348530703672325395248710352232012083164957476339127724583237648258262906040655706920392857807065063048811645497019768696042726547538450123170075146436801672554096772466358099676538536785007098175290417651726040164288414029302582515417583756984679064103232544144741470467075688039739260222817376971917136434539480145116928121003217135365660560978849607477572491943150149510014308421405618226461201696994073222967302636982129939760121184999587015655059773620169377319371367625408432062573106800184139678739843667176176443911669862061852604187959138054190815947354904577469274940830249791538111214766777593490593022147927156432335320756300520611366127277113983220144190901352805904200856226189035945384072021630593685592729193618857325524217279406797222347825269994741155005420535964948772840746607127036174086520527326813586068817199966843046256397379510412705246060047685455295562531348783286490775743058048057544175830074132036397213422290706894717417655086294428193660374872200270593121886949915271794388687221364368975471940030722997999289618344729646537852059893446302828545838566025106472168235718009553058196673255030151089387921628343041573715914332107853206511524116165333094371000684303389165437898562096576683632630642194307971034491400239264232781954296040141756790639186322953753731916454470124629332325437923372346654338216102430171190774858840358611722608527087619037335811130620722954606858293668468128719237476167362220832281488151715015398753237551181177583452065880226748273999001443748033499587853567258914349786084789669112381379684260398610534242630713931059604293688890287032734402285632973188467730335322370750936779255441922423092314048851604635659687136659129722183471459985006248776754921597377549579722365266824700561370316050395818134408872594219493697400770408366444468654757140681924010966836551075286034580198317593479481389120698861678952980558448397448387802476693908108965600240712574638838998880233382870846878701604780329495580343540486162012572901131939624692764207773057406755910223144359914810755906709631424520888274608867684516412511554288231340226714931234858687071989932598498534232528404930971594085561150176867993838486916604620508578338822293721352503248837118508702514163295440564525822449404897358212733275604310275667425750498429307540568196567534310509753005184439981627754831781748397620973361884843654968161790721562169740873003153141413914235161315204357454807524834756013587600354210839579079346374551752864488386211697509361939411848060141370713243776407474247599313276077562693473770192694107184723494490858728275998713031793108659043737645087314528407693864104285536305564079444730234086401763602592917105498903588013732550421677310852708851093242661770695918119046580852853959413116810341219923359870440798552499546046698329929020648144481164979218069392079090926695054372293616913387092598007868203830571143324690154433354307829393934651180395017173186351401685269607492121168173823779413769714891944760229157151994953724091538728696736034474801038659559261371483241524529269932414336781375058859835110899515332311245287973734565037364906821016778462916883998440444651446264040647554416170577987470097640295988669596721171568925996416394311047238655572668736624691562783381958725987968739162102186384641762759136139370171050548141295381043673766655879858166382756652693340598674885750633502369904925892618676468701870663862985025208502201248041500651410388463333281020951011770010995850146422088049629848625574386178850046723834913812730572363881712381877447675390348474435611612638145256507003271389497503104854097556159938227194001408197490925255465289027043359095285821754754651285723659804046052334677980554539691439860618108956643462928619137191409806336519110108046568042219417779604132804497577280034032940007926407810076472887618329385307769758053760225882070607199987217182768539982033880595135674108834147234848916061582569121351762405721714711718114020476171889289602799424835817855126442049526709049263076007863382680738034082661161533444075662140721011189237206293162590117899404553317709571269262730382383347898363647733047989399778108246487341546445820415351568515763377298984820749583365817186402096869253474522439629088793565065009309429620214820502201620288042953042753529732116034890426533806303254755366726285555105284430468280212347393115524959851622469343700544635297015746448965927868398896725404275310979392164920847766985217388268964565464403073768538100260017353052958661898111883511425622197277452387567226772493818924236888572779483095374064577729774379658740924105696596946195369856661917409119257460007727116886743194466485959981601876349715452844749898389095209504397543133534682892668494492221760338555023250532464756885116831615073184432201258253601293313367488419215741565750896388205651917174909634200240325920564828947657338350815912981630472045411150721807435494038225226746365076554880240104736691719249721634303565249439294261273193090305356572897009575997280713579539832287867464466350273790487043072908806963578420540501095791932123083489558668134688277061547786862775374430602797349857533617903553597033440634972813390066013126976681399668998205778934823366850783668114318856133057892226781361315278191730116934406285982313890712677340372829003297665640235587715022635877087352413818245414043907615745748407014752365108584497243616386883686573059748142558725094394977012857165506495877119220864709729121760618526080733126512873121849321648468117907581822685680365123755491000417071420865323914210398139142576866224981361959154592297268147609006673302640007029528207010919450758186063781821824853184775937769513641512000762353585502386050716856419989342747080361087885059493651551922991779611110931256347184189310828433730078996437856763162360800077990566376703786573314676675752070672878776772048758983360606636983095939992123193347494712647942769796093023440611904259739770508341935673343828022261856272008255602014682034458814377032204255504556575118784001791741849348228423618029695419574164286131771430747470367615380227863091101133683494070783514821641946058429147074719353429148305383982412037986863807519918277452661743389733825526659530135396642236062307159544288699441295576141161729425545775695317742107081151635528767732267147421285925074777899407807078365042367050836516960006686330012962028432269544094051508099170452281089408694730674185370093606418922819279257945232623339477427471743914857638597335741010806258748520248476986186475404221147321945047063948096065017256880708534577729978044131493790058815308211218690617350735706593712285889607824073489352356814713805855514691821150123943159828193550044553470821019848066917671878232213415178255378908200058527468887898469613721023267963861901354450053465870453829269572925908778907647145933550963160924738787811673042587999664069176758751670609148982723636433843340369751825186072692368046252540952223707117215373615375480905968475738067635566238723274618501609102620538072976571455733610061944180924634809578505138390183896874222684539099595558322362194200435822854777371951265411554434646850323881631049494176966943278087795791276343818706156628153531545233043784791650110006324934183046147456400735149091873820154157393916601994158573319446534350492419660884019483893986698893467227163514992177118056493444654280855203139596004880597513874000754792271172741926163014527175929668590612848425058551367415548311587884880185185743023120308925888478404789510790088961627922831997357877088512619680439984778826034421970809472031545263243294769944763356404670336640354196773798959927505419397641397953892307887636687235432246818554723911199591939509010188447138626506237173276231988513305534288787988328153144609895762054861242458822932435194532787925927571831513809131534704416270682540088140077347144572834753879545093686676140372235947633838493754527001095572605553765250492536733053443849467331362029443771464517585959125658236717321864331764418723619283222859201120776984194125234299239165821301121837744394249206682505734838444977964081594459543700032907945602767594101760675285968847243447302419674629574521936345537318544814635158077231193934579315343013781710734670904694699891444895158894001891522687263300895560377052878824060519989816407970656139639176606493398731503915807536205343947668418073150472630107669120466687865275713904124296733221354142117620156686214294232846564487132188671931474007528980755378995461096257042082255028444384203830657962945302960439582152253070177450633533767282849699030098575206500984026864339409054027836206690536872762329535530718589996161009731803722103913328559353519851550818700464025563115064935813323807259784920074931232259065963073476908388792345992744222435465213904692813767201183889504250301702924044301574354741003622221934959243862234967791414954620233329034234335671737444343457199444170818355693477056126802207313283308790178584563383929917783047369500760856624845736127044987730594205782604152819798205145969398490551000920532033039623204052347129900781060336714530874741260606199550262620435743175817193800112336935154350427301743323500912026845253129644483978028932232872478468421668978534377788102212344579151198760119339376832315507472986957847492418592196124436809373318520022848445288168126896346239571242785052190340010010329896369376006689845152451547136352923711736160573707611444167116883925335237610533452952109809762464548189079264824149702465472275849297188920515946218593721400522645480322961329760288078349130696871515835406176678987691260196567017002339568548286549703862432421124287223666488613538248724130310258198465541321878056851379958933099363892110000401433524634076408230210086134194244816809991781455459053146952853793765763864245822214677607879195056415146294704074181957597676295726085587239665449437172916330734214455940170364565953229621980794707316573427363090901417476894367314791789317880444802322652986448311499375780109832738080304753499334769249826495866358602026796377801260997491621503006792261022677324894449261582988515691166058406992579947421074152822508384402008252239625376405402904991221569345192196672982598403775172954644602851220107691779872293544737167263458512633926637078619478518275217932691494446157182403124164354992259594145490462737750065712630585411561663056662284346788267309150939025996008996391491765436841347469955683527968112933431004844347876305525871806731449544610628947133513930200356321846262076087057384773097100159801607950287213768340437726110775246432003447927920162872093129682443946657086389289084963664743302189868975143810714020667351893595075381719222509750206218357109707049873938050229776056700521883050093530374182686284627030936216584398416481483763078040548355836104888743911939011926648343701027588830242485386356048153127497725375363090612870669178602203612484318896894719984159758429486307199201426035654683084365181904970964587815596628340953108659454461288961820687874952865201538522917633159058958234522508426491746827712525254885312151975013457720956070197491305126646801961941538257441860973958423437744311952089634893350225990038314410345436692777561359605091978974059666662918486671950152334057819814384083905290916161108549309401589274162959693580695222747965402547394937291125209073713914601983288087476040759835993670712938646687054765386812011976226118653447250884995486944770572659900127399527509864019012312273866062512301660768442412275580537393910302217215283444183594674860990094406515968319585030216728073301358334652877222799440181087845769948550550118097084699357944493703372249089972473913329242717895826302733076459347138829003481285825129406568882039890529377837113611982157220982428919681354574112292640734956504224825471503618826514165081655327505161896846418691644749343552079585229316601804065152351304238884430572038197387040004289630182475701940421693117627951737628287198930681732660860707375819256439733308262561707548630083337769755609869518343556203182283517776124383121761867248725801415729465830283659949156566941853148216595006510709764333547191353405331592084377445196081719095293960187539653088502698652003092400784704007538498062567116524738726908384235319699919562430068821268891216100684226155274870742944569890074839472974604730370459996518367933094400712248387756530703753088946863605407166615235622960055455634368490274390346260391889287333965727886633152959377867794130327699747647993474530836001922194616766614158129606165835508028076907198143975838218446308966196199421699772806065372192288927539070194862117025794515027955541957251957289866246897038446250031810927374816258540863698304700384195293989650347241972832520173178038285655343481796560933315036016344821100428907032134429302506481561454226014983626404199035016783897645482393128848070185507173183513192633214664594310699433693485532253201852817837471023230457708082623595756066363079442392560772303231573338078434276097117999349960749201935201485402852667880420732573741577021343953579437478924595887135387922005213012866361351213433445034216651125274272903910722392715734639064537896558333206112712979067012346422514049562809992717478184820393220371877190853148653733915872453803676766157823803599299690384969947850392528527657712907653312073459494984386774002193423724616043731367023132726601011551619281003628313860734604567324534341439251795109404444460843089062788131700749530863146258222344744725137085275622812638211717351856081007568766766230629913162808628799556082216284911368670380287953487628478018788928190905904456970057401744663790249278916629195344263891455350436762406396247654763925553411606362180510212031170035170372480380849029811491239287359341237287864034023753147637388075392458795054589463774751788513400990042036770603646058920200698207332051322610923836533959777971151217362688861792367886372318720478840993791482685699623122070105957840743443163003944288417273979913669038903318741050407096518702546514330483948925374992487713597664810754998632549220388108745764532428933906637969742905284986479746855307055829799777010768256025887075775042582068466064172405380755456553121748868564364033233207464768135112046835671209304499697588884857532305573141778883942222151197244766009148643843590762426542778638773111871244524427472680390945745989159394965663668489599403131695104840373399663184187720088077951323662365243749200020426703894548379081067371966201717472140445892947555625646776520539459222156910282962944847937601359390718091440664232357715268024994050684769698139030620269638421977455545602146402641933798259419574809131745226784308528181382447014458197854706073324098131931772751173186351020012157822275881795483850613736895436884935547568295593265759010095821520441378524508789493254464167756390810426176495639074856368228413217431059418128789251399448553874537445475023512366826139553928743104166600647637828147174894184033580339124992282189956747516679610715621043328398389402715276919178527415452418716451010666898748929232644393936820739726112543564209735960918015434782225100176626226624634609979947252697580719852922639748692781148121642375403307942284842430928919714020009924062849909529275054780808258968798549957601789495186508495693369790124745838535553746887759234906001241791889642987283408085715483862785947460416513273945085468300872053026560254462683844472488252906691377816282794692651223072880211162025743027414898915199493116788665311390176342260390363843140979287738404434880319435507198727964972692906102971234213918822789298826210047788619951209638599772586801294692120355933596330400572974576280289809057535892792474670901835547568067831598610467736991862549998557984999122484085246688591595185060976827260076627602543198273604146166150829192086954566443037760228432400472801889624709057845056600715942756367095422318921875654988700216804944857404799607772899726021578045757830614771845566602093184471157805327042236275396069438017599070131673361782839219667113326180963091324151663696675601796648040822047739302344221908011567140464498096076727749145455275269543067346029525978566609337469947706737284999948136919591805918859203465145503565646061224760031615389376128184389294568221367490385819813117986578429629406079301453903952698699724341456365283199030478685843166100761207955697172327863096252122922006064806136023692618344531265016794001233609640229323180691946211684922295973083858849618620170189171882623646639806443889430233800875982017362784780558321435742276151528669586864896980314384390967471473638119041695825118630605450090768027093159473659512587133682229272298497677274048500531908162234997480664296673706315860877778967321076551031049683853589413644765999479205971097241668876051822141653103430243346841261627761648500298935297794886490878292311675398374998670419048466378655747124248105468062503889910827161492826204146126810412037622335666594380069418842291182193547477818873400295788309234030337456888733206816458496085886984014340730155777200238036720700242438103797063480842202236828200374258607420012108443422415841440618496518505436342023814561978857820860380610228058610360156732011740403201573162443004350444642126757808790292534904924349791139243768075328981631536844304697608516376735597000728765415828564587641272013624702532347648333854693618942236857723116071382700894873051031256713817145798712489383023628726702708666624785919586039563087386710412359877250376036085231113857521279792588292875064704462836298962615331359029688846631514818116717976256139832367905288847985262043128148537692997618228487099376476379643441400497971459758264634163239246033086464836672097456430337007822164724005303739084154898367913167543391266518275521274448506830738305851550644214117620388163216644843820949398195651850819081531076743350040107541217189190123582180997910579270867890086246609428680143000792276219747805266757163756339471927658820189274470281967624474512480743287806881572632455080506202154882582923370636449528739734628772091240946869855131531204579678792788751881884557315626388775024945039015055381041357368952263902191207175132089396449792606635196648330707622198017057615152336056127817254442980595342217172917648690173456963272605930732342123118559497238886819684152526482622413098416131249359628414241616208666661618327964002274889243835228576016584760005172034122739792968375352435039956702521457642173443349522806933247672473417046870044470923858395985486250395995264440181803884338618453012917988478294534953841884220911063624185895123777368883625920371672920734876232935421671812479449157911028057284932096844049066428056314497337077523580062457196872783804294863729781336748638623029930753899710348739452321404474094613335397928881560531543199182061579055746652640523295418766736647454734784489970309521700175831907658436401454168136045405558463809111728269457077454773086383306891570160875654355104425405893121643820706418494550974536155694445558737381579098530217242455384806062859693185993779805791769598671046505917058076309979089575613175350633211147241223234241614336751909590544819966956077120353244900083789979680141548600081646126546346562247124400158959477102042439868921685144427204875093811844129303888779903785108690505097426386929954464812391794353244269924807199797156280159534341909598674283973357025605065553597212845132553950077497653946374880314994306252266974588201200332042242425249921253697129887481785201072140335073637116542493301519038415858825648722323873488219227792598016914906121623074480895851340715741356279519923286673190258979636871385486687901654927437303744656872315638933053689914234990831689755475537270674450664498843965031172926529209155278780409964156970815050494873635389642206199918599360200306765278634989754000596519978164625610041956447492439356394967299968447462676906653944335660097188575940427971311799733522123522989391277960393592244376323255122329815924710644916880076379634180758965186286724335042879308516607810617665087789173242232623994802927607671446224703896851791925802386281273004132919638873932313911246337330557561565872309062094509762052306194615802528971780873137433520973648679707615663134057085161470426662459286692650426674511068004419578552678023770309052064685517325626091114201964195247834858609546744155154000216495748212776830421002112246400914086491798669789649587403327850342893632754074615152467912894734751402728343028300024363347802644666140647484020934072958380860124030881454995773799633822380221211210895285097817478370657599194020537351293848383551324994618234995578597871402348971220098979985836139217701625972100074061251358220914942209214744141446356694320157104669498701056406205392622454623688689572585591869140988191172316189131144400373379210842293462638252545866816288437405717059183058009093399803782105347774906474346108732053260730410603173357156637333435700061882658011920950645315884756377955754286500527397206279930382603923677685376889997488914151287924918463466965029897335894389375789997814053382478348398907736327719225407154683885651198691601274765254928901665969319672717818476641968754605597970854554924358068629820209286371934805694615033512038915191332007175197482838130711322976177000187369627021486241069665640960528873550780239304480324594318436783163450526903773465391340066150688303245799468291548270405492401449615444189210620094323626305529279739102545233037655365940449924641454703162118578089770877062463199602148551107654667979663292849479674840353469601395626956892949915334361271924099777366692024986313252930540240230363576935979523596983083406982503428856139064129304538945126473992101370607962911275233361522391646125217603343057958241802256160467291182457284927394787919374664354299985016178865737957465282144785636318561161022782822116477671027426903005130377211157341741778061420914199439967661580508014500541520306921291898545312994036173122198235944651727967496961090137221964620168860839250399550241770466053157940834000136262703229369631738658646541829493041001111026945747781701964350611844344723218175749210800458113153934262889007460626537124725587626353102876036675972279117984473678758824597189091268502177940083129529476016662555413866572653782333070012760922615834448517770978903281386683713923517711148835601789050049407197313056199521610366958738888596558487395513708611883934837376865870054139411471534125408493487683994539897914545395122309027488546099821498749498258107728165129137277817352129703392410742367591245039646397517343895936302736703331722177881464937936110627958559959899138244401057975027100484909687858358663027362447139435578356531867812993000662001173867254317341792546237725826809181980743974866045944876588137761613169069309717831392344367919193246802064030167745108835871024417373564237731513157461495844736808328321469467446812226124206974070112978822238929643333360600357837126240812109041242922522954868372555279483141588405758273040921008899777872317099117258399199892140386381227472315178308806800681951321658979046814723628772793330546652258003647470377916237024578342068922152738881052703427245280484273658159815084995885086408546956038477053256235587390792418818980371927422268594808396921306868366344727803156129387656651247749607129103480250946713568610243223979921875801743180013720744150486411173412736269760280601361146095073970823272966745000048375173319701864635333801366373780985250133832827549091589995791195557246302613226496128894736982998279498071548362674004446936315490404974186334685815336622634555341705218098441920612672458979042492377153736147763113525456080035988495731229251561690732114972343882578348969375487098180249088442647632025449687051517954589832437005089955693538648834867784418493601240966838015644178832714765590520684952587492793791050481624187605636001028048748020425089906086721419008171757621848424950498278928906875298504302430996727626564869346917574632735195912598842996594521136817861569694500708066902420099548072697280635782732343527374982170807631065645191311293152341411803544783659953832480768523815593948819037910696946680245633931258291810185194694849359400936058823313813901663401457227445705537106591016196461764398590147547639761439988574468450176256610380650423602882903944659935624106475403183933137581455247716844899636681322409929536278618876742214030197493638497057708231319431485764977381220206365617208456398014142367790699088046929779947732589453736747504107871807900284691854194774376978070137498208024099571006663972741689860972197889700785283932906640504642156490080856242735946131906205506970273554719698664988192780742394597056919060614253942505581070823954274038031891105193621890892283129019078062221545369773425752288648926377747014452752926816290604122530930911630735419833982383179226774697325465746876584813816552496867121587106823897395020439290806315067315916222562669397420624400554219208782848686165953632892821561104252964677354898126850932944043282014629360104012605977855547153358359326503164344889883282783619229729870513462628911972716169510016224342742058644739748855670655214379219801479991362729344099798015978654728470699407396311404654718369609638587150802357405994658176941663540446427042891436967344678734711091119122827143173315617883242021956027036900537770545098877953148411374922311239569554170024794494318270743547141502051873999270811049483770618072647823563780208232103916765199067194752485111198254479521104609926017695223816955449785818478655838590360078562902517699570946032117388831358198799969950416237770768201043297951929236918374124899115774517322145532694527944382999992458252782460340908412907408844681251695098959288628214186038979327427523124433383516620960168750489431988513404122309708316561015728736823472560112424325780013810139863449222085970947635009949526205245957304117926220581980303999885825692650735648669252104276988394391675928723751295830563014029923105753253459883113363794270710695475562534420733670880661414252813504816003067146936168006821357909752802258666284264063888983010487940292804901506180076607773684773877756842371325163325194685525707252914694826374677689480365520113739375402846420131361932240110305052798344616125406568155319127256972888694697359522382413642768921747478801962114506188638218524730792856108039580013540624097920016533587439803951349593453163355662269812296906094169502967176657656841248748803737501420602970591124911190428571953153729847531440631387681731453057394966336503685026535347456597567896264920326108995813486472217253288224425240790320999497585822285363110933988442904408925987149394177745791206779728424109691432632036806305303038401978685429585047861408445334876291006610734294768358041195560295689245395289880651662185183003965474973096083910120348095676497532834560388575768493423378522487643638632559277675201848276267039869146997230584313978017023124708933673125318649581942423775044950524123392416375011263618163000999813888668970962295734668871608364653384184640373813804812812951606752617442009101238964687391354476629128529036452437361365840902336400982708457648338311160373847745614818264798961841002039235366314983973356048902404488823981988234830250146185110238396770479930560907206938212303803757370981178169014972612763243884542454402623348082778157540942178001614182072089719734602619942481935354255329041766973047147286082326914578131182787042454074855912944172807135930665481062852151265873852941015785298082991968324023854028803772815812756336172860183980956225805713750944036990082218746993566794171275920572173645706759264574116858422044894189599057433622421445625174797365667049669270980684651689653937755103104299591925629842469340756165836675138263591411423534444090058606446881749966918681973340892397169473391038823547496313331038902677766947075699742875803928684135540892885589606366977134758958368998163994067077591533924710939418761956123421081038884769775599637136212214621682303215237686684965919971028419484857858771635468629803903335472790834529184494861259550016565450045594345628981225914160426467821576074426047011296464574688937334174956164449003612125932855604958752311544583639388445290636586533974734704048604199330453431109191987356796471480469382292669680265635749825383561393129537038338848366768969718109526911253804252001889230556679853221106378655396333529479736613670991425613383407023216257034198452755119985968745784312527835092311450252972644971164408468182146666070235817075986892699102343359704322962355529515754574168782911098954506790954487233711012159837593796591214902521175932146884616223453208227599378892593752238319351350624561703440303707330698428163375626189678612843374819816930838858193443556426213199149230301405028895685698329613495305811854298742528303303730249302292832581416485504357961589477369570110583894915331174036546616068643146332867171749008742949693972234928411662151509161272589604488842615067336732356330671356980031074214894460119397779393688556963533085979080425823435629433636689919930281742048286203026331258890880460908130793414100977885360425362621025729943772764240941896596694399987108722171014308786207903988361730163862088634945365144798095942928004343131804673052705017517007685394278397672931661175889391458589273107701832786797681045982373913356457303167267100451940442980222532935510272666212066216622735002535339353520406100006168738358618026610097253557697269187302649459319822221636150224239134625848819618444469939772345405422804174107832780288046027388614943283673255702145312474569948109254835414953211664489294155845958991413100670137929461653320451668335991832063133213974266355337644132230993619924286366677184815907905434871336207391689106544860467196373253892666686050800904260418941313320887006591438830210862196250417751869773259876663763299739893933421921724366276207017664847190266505588370688085502884354581230289207555556017823988938868684632369580828587965591367538961997952399003003719723679459859012773454179032982714733176253191772588092651013694764016299180981456405841142124780423099054242026905149670201164138130299751898553309302917827086168736942488084264657847798904788760228512518560420128544652265947803147273846302810479411872842657116249389110801963760091266714111809951396757113032076002412075677533141278394870906339735570594044479724981776407082979688871027243376361593413206501485233565671856088462047863687356200911407763364624426132610589233012705596524650284535283084665426045946666485002669972951603377511032551038556046406953099233036274585969634793700965964087436581163145583821312739448507195087192022887625106526529211618174078183421068670138294445904463589818559402553217145114924270494352560127264106015561461536495310194957796057477038887294018343861929058236280920220459476918384778942733437463591675916819783041598321581673618450993893716897526986429276283783965013295014614236451886271537346685310962261323589742127812612744063628316387672870430186210457295802500965303753719195327152208354500492833072687144214480560428497545856872250772377875314837533667441123043596778900609621228835467799064764419604304340622326900450691090885208353689036883271627584958232452843890111934858187193907235571211389751441870667995815288361675649595837949398701638401374515344658380134699148300448905066727786738442463965487092674004796258267330845759194470916795972304617529937818359538187657619603438387379552700052888554728838739363487993709777601525385081246802656993124266936027353522671148078964939321275583470467115719970796683734794036354899454336200827705421945162894330691798799128286793908603289867621944233618248149665809499469886960036784594530803069908287499104661676614670405233466850730846209268908353502800494404352039656101848722618842131291705891717699654192114404326384531147212602347289789524556059230092437327844425134163753955065351080581426816860842044195418902871865789836172141455745804211863117812089519471816235284935470633131200870298941659560967300371575571976029119089550724901482210008603633424666326134278994624723577202974026152537628110277940730607045422214003453509940772693658711051405760485571172108227194792130346434327298753315395429668514993440623191996427946729241049461422783098923671419675046888716787619192182802378712381143427448237791270431951089336257215043044976710464996018197716801365455920428960610048139808369889368478911932224691640456086626336263987840018430463770598215904147911572884628577991414229109128498123631419906577979333662451637041813352436896272425862270841950584305209984857776804890545028518327956016911905131649579606182210295163342611939673893808061729792532159753006548916337876958346975075417959963120352961234434535111184276817883903027605502286276810640848843475628351163022591794504439455589108621300983507301266210882322339006884153663630765141113653943924823301795916786733643579952729881355789492434321467691564021113378910843850425964240127359434455471394623359842090269115001311802026864461234064408967886995915289656742527628176486875711908755215880717751673098033155535469722790586708996228012783831937373295649405977264177138525283679213620981865523496345846545527066423106137993789552757548220375862984518591261551694272828928314684705061337608714840911386361355524642524171800142585276198967989253897419673328099396797820649126723652031149151590218946710328977959886059950816443195731552539795742073015154515135403050777492822386407688857264369580492940351971890552974766923975596191085799789297219182377090772586466734823994984961858200539936591562344893434999163754981373803332208119517554164609969807633018680743273197573796729453329571091629593857495784311840991611850879458654411288153503587644394670589241942686898241145909056668260821098753106190338166897831021614104609716461097653873800718408584072791716476420995616374881447944887379900055433395295341373330208175268461203934868587298438072352196600548488435038533519256384132951910565579685272659858061545477343145892915082454091850682873242113237766438030610687056369175652319283344185021261340414551173820969723013553986329263430599201137011573827798085505477211587878866137579622109127443160885398849487402716414587642435326647920341727260080675264176412901157957193690512703302685666843706216202359412338857383520842545324934233043988712223086612087246974179130788831618558380027909336192441202252914324068951187243384845866444275070450022773182216886813676732924208401029790618288712926354859395926215614357436254784739429832339247889934168083182753283936470608240861496569274912667932859716862462649152317044672084312524207992133228392001242015641465701548666229623921352575706404401341330407453635968148595962617864510291337926809007131003001744546200240142161495400810920686904359731030164976889428007749484248486207509502674697278298522149710120011428072178423105860508074279729053155595884247981876006944290069995448435799271111303655986962955995481091583287222759949972860462816745792534262785960089818291021373373792905628147744845700489639046025669896601443880449956441571275752608047986664698327227142558614264012856898489329077061897013592993652699475937993060928530694074741512996759585726441743840658901681783084052688551906773650657311591732279199641906904496164977821033697634413031571122193507570539190990676123289388419432711910810470246191740071580982905702053539237244189404415595968111909056648194201998485899228757475967120581019317867679331830178653695271375264508966795349637498639806674177276729821569206230250221765190829987519853768122583491476659754884578936416068673722697271924120692294906019134642271559888787873721468742698890386815366819984701367418053786039833457535474682812359279414907367316019227725270005980911588048309007591071421985287770238007305801242702828972260530814421676755757522932856279407715283391669788511523659950386668850006862991860414493658993459015911380676300246919568032468878571374545217093132806722681553012164099246519700736195233520971293656134396718004729482638158881722698143079544090263339243987801041712455212754634343114503706442730098728708688599244054163624643806491641739097173621011470910970895618565019808951781278748144409879303880747417104477372744829064442555589961982135739907306041119723187865394213225626226903210780344593759850776243778668097348465216630516136099477102042375307668124579008647476108608765902282894208549056384278388626663103337592420343947158656154350155876635130146827862320607237866145401486397053593350143419516042575467293925079665939942326971294855709919816501065811220527107657297644315097068435985918157139151662273611008029893217572594213757599685737930984777495316569674971433630951550358884473563861050959098162280417223782172732745107249966854452167057046476423493387544642457519484534257921223575999856951010090798214459251602287508113491367138954049071382556357661656687813587944071439044788206731947078997699547122316979497737795583151176981622638479035335241945284148455902578428968410316043275375642419525525187133829789022683839216534956074329465486936192881336354428151821071289367518978091503924723124775898800627124720462990347754302709876218000794162395360696699060137394447028745335177352223514761203490447103700919623016354424244316117265605606617165448560427067063252282293782607449390519075265911779827349414636516083925635011730431837009734716614320601158141707708248035794865322395094574428179202517753548923078872194179187356051469753805049057223678753974518871525178874797446217073394279297106619232507552638992066395697050797572698071290627965365310232421572231189527950664673548880268192994879242342823155503202085670771274822801130178963742194008563538762568749824781510270307890423007919553279665426363067042883591744546606294677290417797310110354109738043354362315798722812558212685039904253786903958982576009774440302584430809224875566750193907658654660643811168075010429243209181968950143455923702389799779979966099408317982495082041640326402369028893802902823913559495390688448149130552935243451383138038884337723714915047284742158140942228983689712715551679688025512920114955169966683430785286909982894774508011184504424256403462820700078397244566780891555010877306965503997906463716090980601018815626832157127347543513675249596565932170268456841765116822193630050762180289075545023194483012102529790905899833776326134364156527755896091897421653900340040653676044875141740991880927848734736523260820449246372223096721459708474245214182540273597478360525161443332294877527311594489357301301418618068077486137884886239998260529343832747598590792414370806414921661894128520326944070545940481127004958503711128838723505426121147159474097132144373301555415472667692496180042805952639827798712892137252826199632539235240957212714430787396105998745012747489204994962574972278887350424604151978913278624907945025142983052497510856899503853734861976455324911673479827661622405305783040790732021488383107589049352053088912032571977254313748492176275498303165671922302804482279212169946891656283251889615907325816442397177802564290112951387753304016457487772243927619085787495534931565117026297841071128111733767263232158112225331435067247974684743344638339320393032805583867347511835785652878303466496154411614932286320201318808678841239951815528381273740987855346806676132365558074060598556275802564927120226014543020011727405869836647148392030142713039930807280278160062067651937443494090077551356173077591975765050950018045337404677794439936213124601911829716264636872748491347605211754138977199247780698673977830938366787651082295695292588054280690874349936609733433437839729517837029724064541652020828420536289019276116458549560235184933895368177077538871665970737415162177402248166076539381513919981880376649818329983782017101552723690024091045128977686490692491833167599205621394690753633542106648540552902307999243718124891960631112185526607913762756677214553568052359914791463399890969838557178764826919974613542596202294893455485014176497828788599051945893522326709188924149561820806042072500034181042450330776840246267225826400643408547952153051299632063032231906780966287261468318787380676603611226975663716073936591925015503508641734759832658627326956975457613343359112725883712741766023230948415480070265998357342981675411789408638608742237850364430882125530133358181871208472335535186685346296669965361220215834706590369316976054527817630896400833543677914008174327714671667879483987007246025027852602645776481511652769649384819713362456745985513188485385945001531908408544252156237899548360918912515027413606075363861033680643153194999053703883858906131889869200567952355221062922331311094622245417824914951505402749269567572196171446187545471412810736669905696450873311416091000015978155397111335559893740976700407541184069540507537038540569438495855862317652530284939553161491712343493747600726511019579792706616065292246179191938795712664965570940741095910276442243383057311975769408194611848630949523587884274233670901996695896372092153886399684913095955785802383902091128531062770631729296740300188741824434487373629589391059308228658570963374377439067693330512148842756959176229355383361069107548570218356844554355574671858450395087982511262250274218783781535197307875729919613271705473110023033595771830200390125893651794603266001181510324729411888845068138541629629997904018785852853526436512674916179656620452479829505057187879374524877489941078087409819845236683573072536791334656917352320256106843378613873991071961009470790156229468549298638185769593289063007279492837358362309644734610837559653610223122565983481412697894718021941284611385533670767004744711043904081291731621138301775041715489274275785968957691572344776647798578136552873767428296727530333948401690014116580795593844371533862490904947175097825168809388840374681410398442720781582255111660828503799154071970907205575961383256323798587093568538195752105680680286584416609196862820542601739134160518838981025077012017289241180768450839692913252105388756334503977593465039060102334464502166253066694435093865773387035491198274586037386749703912403695287186020100921986797430406708160296993077072837277882713899880708681978257706679835520657985122344291536630227285070575344512064177618514297880214031891672415024647553321172898662731499765971831647591466567195559132536884095899137633036659102862857038294348547231664291140974357422095950834842508975717559569376952018738139916995515647251712248102558323707804698925810376861469473244993744670189558708283348083402891569060080268555756506674546117826407048215614272767508047640029838356677058526003284138866573014720735644944848671447825933957904933974843992358118525362114587796033470678128293398567570458985623854749376037688696118617999521884841843868949631151067859051006655516295099750749133829800035827731004116599881365156906756045438111107926513422636324486467055109578755329492129861393061023292560956698956200193416430924236734884347316001885368034845715877649743735993379223835980677258053035304576825032458063037342290308924437281772890684544416457689374559350574384150378653448650321455103949946362253732496873721976544943689022035028160127540208914716404335250732969939310650809818181756620049687052863883394884775482674161045837204631008438387033348930262955999995012970044129563470166949200058481691443275472659227351988055218571976051444625177839673463380549817262552580180125652799985013604775380871716583121648644287761101751476290309615400406588393105671895528834469815853910659591121034973894299229801410661845588247100761457453041764107529969122964562622792708129677289537007021817876486044248865423398123394465610819845172607431471442929474642077099962783513256089854677391585303077440912074608799069897079790387975555058252047813683054247761724520347180566557656862839412784210694045985236171463024596192953546703997064056899830911627315181220213709287808913279546333445383529292611269847578521305648254940094713741313371737366587651774210571172699725283200744805008531545022508211237726777369608642457550903824460470395289064201756651907819380142925544341967891666106943183739803092105706932398322346771143426564276306715481955595994513392551030262466753852196895942109816201090210799339039400894002821122101556149236509315080939693913955481196141199160128891538407986285646480903530427576023133747913904476207689988850573927775898176339828531120105906516886776955424075771456864671156544975635719634795688305871647251184803301235934929490575394965317014447205996271600721268339313448942136200755548868234009760455572886307874391989587019219292910846180229203652166330155844702226061849865439888325246756578214257553555305526227263627943647473443102298516173484147798718300807392702989586967341580086424348895954666786059685300276149204219098282126052003923647221556860977377101048151075804027225234747036767560983986949859812692975366117026510487251561480889283645831926063486929257416534190088736730484843972760195521965687458901092231154370334329646203479221360765460428861666977715305905160594179389789799859184295887432394390651428014558628205663053342715463307947862714247459717646293294376448033693832516976950076891930076325708570910387756143662793971132250016792437478338128294830600593037329737866807675590269411718320463085383697981768854737622540531890641392036150702179118129575391459801446775341969048996036758612130138547886264558637570153106430698291960376614532818605599045569421812679696295018234282903058642045891890322912047212389881790568511758315871907295993707261665523632389362593312892523972633829745091760256122932329426919002384883240508299773344244180994055068954434699184604274440144320490269393929528108689433829068080473226875083592811904308886107385228493147678607514959456286703651538338357798752531419624826344387269972613440876476477670413868813030839919152726269643352135589353760967825008439137880369410410320618795516584241471431961084147942634721905889667152869672050587349638290817464207587373389160026765209271112074703214899642566082073961072535690419957651581373723197711482872931444750273717849372674666108490569726699726642498244664783970634844938783868732309643712275231376121464290982064990513506478232994071214411773341027939127078730729485731219077049618768953137787573319304675882144815478323278690396134104007726566804026593946871038469910072560293958567739695022786060505496679597416100210652945825550015597013106844343424618493896878207811225438277360324511107621631053538090695962669130586583784778467258784816765780122739711133620650572031479755803910540873682645382805029640454352003280912764477933225109928308110189120868671738502598554220976077955210723499045133611020312976777611964331141417419078015123512244423780477393812765114850010211520042131920478664688849575391509382872313314349103039489248048343736173510798697033548229416646014858759066365885019214485632946385710043304566433517172765728462155793676444404280449483482724452361085062781942957330107367538956407281565494193381050364769229296449096034138754384169934700835816666793599882791894489834627293920227228578207750183047879099429936945577770702902145656715420898529589885955851791278273140746360872606106341943543669308870282463894013423574467787678329882010717541755134743481339349914955456384339061796815086142920323104448864933443570176076507950645138717139748835391758973548656419383619061277352376745760253314176337082143295851738442470041627323346669719675754490146646488715066028223878491908533988813090831721843114995117741881748144933985818879729545378674271706518266487393214772440826369223554307605518735243108241461926841970658782810803715811183433808441028447726200408571268679100501843105285189701851901691265148430463439625527118861262663388775155817156826962567800215365399346386763647012403598766849926828733834061533514049754050330979051965017007965653728878173488292742004889636629826774340919748050179266505833362882767290213868138812941147649460017389838682485197574782296124344183268254418196281147564673837778629156671507570730777502126734394247519643175619868599556856563456616439511498212289934458866675325138653500028444167902043571633714945571616960674949422983930859186899870028263015096990733667476085464177922528907829541717976696202470690504361568365398886398831962116722776241641286843626326035959363604589240304023484704419647537972403862038127156017632105739192692404894086295407263930588703592686732735073835586996124116829798677221807581209831518420666259280486752374137323301700521491956551215959144627051044707398417249026885295762536383982255826290542451686991226256230732237620287230349703038196763230964661893037879953722026018670372927068349524172135044536451109918339669809745407570278480634175668190689025891841388817183512422281210424865693723954221754996017250787891768943740800979823192128663063425898003181793745489337847828753998555106793294625247588559277415191021143571238696939599369789233680014963187603456208644089665555498286348991142415078401281299509937309581223482193092185918233487059170641713165146021484317619994214930776271236654493312415213320054886222935757147159214036030396349428626576253032144746871287970684328462694873154079482451074502141386419915033557862206627658625337687932153568214675171320111591991912655243308007962333183950902430103683321725457102272953021523670623731642234915056949110805727819149350926252247735359985885945547269360036687925583452271367183743703413302303195010594234756541816300861592300978647852767149769284577605533612656172275221619700707438400398953705901281172825634014722094579965645115676483479798177178228395625090677748900415527008330563248153290287132560374007443259098844309315248026737344259361035753092285071042074188243693623926758145797036412598577465726086281195209951727867357920475732530034371161511237511424570692177318248861249302517017854034070509487359053648125748154797568488920920295916914129806854294168352757448907312358882454844850922147799533304097238769199823170902172973302767248377389582659186999141884101703097071733668917050985730037844816636795193498023627047134756776817195588066065673251891120939892629664048366273332417817648496686679571741724831281021380042320784200630485963250228063857331476595760174612648816396789801473773790433927084574368780247174881564280323485483221859862651398109993169989966369772221773931807300839561602225077991465150756770097005419466353020318297700334236629479411280718413399636415495144830088259430092990654861619439318734261302426583330742511270472602510773057525748610410439725058394190684624367226092302500058127795724645044632768705986139777815897025930131813722811107079877454839962465710303243523313925243460643692999170092312334865824117194177673865005308267330787378843255008817842746468418940491750900860871053326198898569274645033391206930134182341947327955518133543001238262041016217972245629919926139986219465931092192687600418369429645020848751582133171650909048209081452686191336085679122277270762544332216158760736912787177740505908969829765036930720012544397880510475250610557345707720889832839361670977276787862081306031640155254171085793519969205123137644433136893116833822886646500750370949802550902535856144730894760955091270551418497170329348679378136276126301232211820713089339789659814115111330934021951902219655222129392966317565357497283047972907243825481845350737352566133712696785249823304305779295485951927308770420182577831366841169368220018073351118649184483427425693817056139897731839556277194307312326685223384199161180963941724970335786310903016686142152535257210620583857577637755709040462833828040386750840332168178039124753989885216749758754472962775507205904065843486343595493236912859491182496437546158704814887404736724503468364587903878326684283768318186949609605166831493780937339420892046161624651599492345430935294111311336254278018970762281310378094842428377806578370109049433019699541663720343499829145805683807346318885438467207744398180690436606762445349576259988274045472963038749384306265149403100287386160996543539544597272741647802297238907367242395008662298843957302158680183313774095754236317713052222889515863111300737188966184076980496701051846065412822043879884560459055346724483703586497988139586283862016464567132540171274805962791030156203054937838887518582713627282824295850709180731342852483693862713243609191479694711572321125252293578242605140007728933481841753878283494440213018743220080201467632235717408913003777079641731812474880128354554609950750868897577617872955942524837148453752133123731894039608448566798024769763706870188303861345602665329068333540452590768342224051974131872382831202938703522701558068914924683707394110928840485194298277565914699918366818244789866995686872260335856997940843684722391776135624031794802645759609318298979082910589159285796534546118424703536653899311545893244089529787258156715965461777618209258064252845906525779740902858434448804264261461003162762055630394341796346283638165452940087327383947458061676034011214180693288947007679959444091660097569501883420902897184652130717791080232375633620907326499666205993626826876081347277131191412894025951480119379821528743368207141735179526249858600648642861716657184739478753332077789187036147566620776961570517818400782984411886260813525221796154069552475170945276643838440542882951733694745152151248015948156279909468281517478708472537682257519165564682773891576771961138089128550659487246313814248988495749895748607990440393612819551574857640422797159732660818115458556086769716894602798113360623402755102135134962339197708272291672460523087047786760819789863340214437236182012927427604396586907083827414765704616756598071508830540107819176175597809436357690070687395211156661293740836207278257155120591180541300517667896119637632972546422174435053423389528250963203097706011246951434543598174335332105416615772541397563295341330356191961638318949106311887608059941182954670584329333951029467702118773413710759895417964454703087234515419010883807300644526623073949331232195666514874856635056938238611944003019306032401778907242445268844264419643232175288191162629881814232432109719952176350138780346213843189688603723532111254720882677806900593839504510546270464718194075700473659313298886465673387418663706180134628233461696929656849728438016660061145465648131278516990351198604590107813316056001230323366853600093220436769181234794390338800092361766297655645192563432216632689804181532592790513972068459089798557370365070747414077924495457677501091179563774144349000099093226303318345267379965627477564742074328066388780970806470399474349906292174605555559212147406135690660829936057113110622180116041253805942684298336945787394473774494540895647571504911779042650049247819919202179720126127306155130329481105325347230941007463032967394130029853162063599504500383001014998943593612123548274058857257026195139160983706741077852863713824107261502618653275346830571544976659821383188161009329454786235733658995376252833273924619035870249822050397308078368784099484712825641393190167243353827497242436283965950821103029463124345572240930255174691990259606978126489942458283700543995504823403356151823320794670108075859980942811194962197002619330270275695571537465944824274430742662959931096292006389108344702673306171699640805034142535624991577389412869464984329337630808312507043906287650961660961856101245051497520790487561220116027968324438155661600537867315776757649818023204580244510537433824542428309943011208482823597963397209262956136656194819743120041997193140884660674381658274577036780431664012444130062612302932988073768895052998890932238206852171972173564752687907990553873878233098809154508619979164197955578482857826911217680728103955984336795979947117031818167523683846524242976774677417444059369906431833063518325824203758881971465503869790527278251837255860194441035756872172450505440069534750796372968133429930659985875308522417422880686586770040705931462784364101332937123908764585178955496517582683468565656526543960596905573078380475632773005266193513262259656205272593957601119586435619636124268016646657146353354484189293811152853668609545040014812794791356319298464054650006489521520932972990897599612051336349137585387686380963354680718021005087807387385923024294980291768116886446186840696043812979770167011253076760683910254784207019111361151464604633216632879684504770169434494607933147750364297783639095869870710224788866868007891644099955267098427777323506635364734115156646463392248965636263878602082831316701500254713669240912465299890423038124320330878837824495404833591137640877835065654996676737576810324240312305589421134068841339996744207394553328141925463627981848411507996933724263093264119279939546319104958048634886073661783560627547172236177980508897157097850797330691287870252114889735864528117835806054194357551960287231062361445644267645996437172410923420611154845354821292265009872190532197095338133717810471221100856343666636460255096204250285854147880766603687083845019617795905520668013072837225282757384110864432981016368015750669060902249845724046032765295674869182103779433690545100398449923099507300128687504056293178541671887231877779164929094501173635912282084550069691270764804604420296299311611376965967274634257674504468328210067220888601482350465509968319369745169029736214453366404073105242984151721603161643424619813431767558071043090370823154704837310295885784098567403356967964205510891690008565391116334417905791430840124095443917817089982875299457281192788344933881606462934933897609685397536177481400094920684863125418583154235941367998548460646675410115449655702096940827883813033352327961061018193480079063602561053820058619073832792764108018742168887786981607130405337694718897262775518420694704883821569863594792170788227783544928006357606836721790159277724138969830672931008122977346657673686412747266856139416257709064885050570718527735455118949711948128142158145226931314149739172105860872636929387912202135841923019836277171639609250493804200494603391879601794229728944594156241651325878189167408917247723675902426761828340565091086014798773512912628308187360281368112853072033930377147378962146298882123762632064078645194470256985862781103510919906816670906518479994049035597244801426974268056236760762031530152845336061990287526118015495204087521577781852663881665947598268105907104435418333562788824991651275652360564704435385948260062190522648134149459644418428553372022617761983945637434421625345509737827669952625182164059200295331458094667613317375815246216023607949923079766956015383583609359261889019224927009118123747135629082296694035885803509303718407821564291337113799261505268528500480598030390308743030827631698764447457333357603826193384616297682578182058924333838546266195394847208685397535682919614011982215537667175861950370963170930721860394318867567968062194999619288806413869315182707551000317926712985199740668366372051720306614236519771014030779948896458600736571270450977194416730718334768624233984982761558127100786560664971314621930808935011224329063004760107709191692535543636052307970024673594846252844679504486181138088336225134146534255273652052624358341999916425357100451357771932540265054476106801243363584460495164465656523476699177704740278891622791022518084994431603424546196063372276338851561930495847285164949443880357193856869526766133603236126968386381889448064093139627649355177325755103839947338131010932311252492140943226771682475221101154863830130131911632642273171093811579873988164160198743347145715759831235294120055118874979382170148875710988693388806768909593945819106100397904043286674690346775205734640619910222878007871249035017899627520217508350760599779604820966651511665643563243213780973857476445144844628967510777267838594083088803587900224473010260186205022499140128840788081661077994958027644199651505996703424729473197347492733296507285713890152037576123824147854069410812462722896364515429371684695832930412471212450117328077313615058903831003859491052036967073874391999100555402761406905079189694164503658885083680170978903923685106930065191007812630883542905119285577331155249941727731365567659600701089677801650559696628063497452908649558084368681427341693775007028735713621553533602133998703497828237104475528291427822870768987331220353470383509792918336151607330959749070434718391402408826911075320435076122388677110970243814896845941621629325767679253654278659566089837723062900924502884614874759665895454225991790269706062350037078406684472780057161720709328825180432392788009078820385870371722756252985522762093284828737591166023811387727282654104748050436951242965975573486431043127392263799684121930839632368665793191214052802007149871137481520316185044623646034140678713309259244974056725901435682791806156505842569528162663764840462724145095061993883767451036677251105450179432730404486731510021012291856256121413448051157728697068048694297527123231090767364899410021549717284003401240293470412010934899206113596138602821891039268265695584276925070675420105851521880974879260128652165483686231657893118168184248198336928231737368846532747027714704567700342274420487835244936851239899423326477317131865883923380845342307409026770803529983413721804251025018986447055326868735082178182893537749914625333390373512205900319070280332353951577203266056958186383477136848750612497285606668434020331921856253667227563127457269493590503582720183897309600456052018947796796564124842268399201831715438169095069126519131888825135287821367480492411793583893025807810475798697032072651258188517093838178695230696317282444903137029029928547879251041905352066291912633444753045997023227454937176361347738956064787021438125952638858213012161971618061544387462562461783960963058807865613845520094777579406846469269299421772783059431719573867706795765474520622801138812383634305672830459738456060230009141042892402206819108302548844717014216428033687542829193064502967065635675856950796637601661777066410300835569222880946483488774587132899036682662124491515782303246626609632315765061123588976165532112507317550109266545769757603272131815695649814378954397178730781453106704695601196772162682086057227401675588971750713123608324197658849895164813206759421016445534844807203678466882511059428926358076868496535009550265337877187524313485753814416587457342527345441247022266294966826807284770654869713929448395602997056166153732084260140765761136025628652601708348009407965093946855525986964203138525876319362206601538414087495213820204294803128703198286544936912463002509722666212724621200199366568360170051884500545618697236874916511115566483177806653567904356481042603731780735270125276219736456566343175601765532551026669314473577745359240805591760932770447816012190934070324292364437078412589157796917912395247785890360450082525896038978090898069194887995305004582862319660872456742842639860911868688846204588113682604721142307003745649586970377474903357778471562303799065777468900608300281326038581858874123081443241184113173774238319506235307519268322166940585867236894276381911510078061394597642922222658409651452924179693266745561611378889098917335450367947085267445688711996248155987472464874721407173952175113528288710752148377174550289398986102768686208806324463011298695965168811711771745136918863463364782523760512207437733956275017732854422291434369843607119399390380041255808128725919487809388290935212088056141577593033829919389635768015396006700352818065185815037071850387486621229168057715412079487015581125009449880461364353809383147473608549493125658093533778749016788679752377574833607597276830961778097006188416351242894391503430916069655851035173949836119224807910598907813062969754860421535601167379738186640286408634299806714349033568175942233425611380647340485668299165621081960669252648717770010698451770660037924361995577590448609187510633337418464853496428605720762098481999192943034129731406228418084219393877586059187726762379508883676782837718480657847689274009345525410191842038669731733675649054037124238135047948394410884222734068552101623945128902215529018656026118199421525975076225882413896841119388569924237576486557435598953651029465153752893862764090320444090125108671688073537320345962571568684944737695553399641672723286448828832065295515309256294074983824655332506775702081836941591772138493845796672273453058275493098978755374038709868084027806698636821008486804896664113707614392374305894503671777688981456536965437972875058010192428338780774010089444156329457431004942908244731730124176635333393630314442765889355504335140499877360555985457558678388942500131054549886341411724815030217116005038629493668577639851216984336281040648269934993417366567844517306772028256591842589594862216380561028016350054298685957800706396716179313026506683816639061007679711258656159895027656082099734559192272955872664842583993932295545165933978559453995185447655689400167755397076350595643352319792990166547635434835947868861460999017068962758546240747164938289382225470220132921092933174959590297662915056628775653848764824035492913259449045411570063472306888959898924250009222140225317217064424770685799189645849848303891213376422934685933723536742333405503084330109330184328345425693698897629407349571518723300860595868006882220500370753319741248963175981444046461000637678004636700603601768890811921218245480530629942384166708991833412962989663902546252294747922096279376789826770905360209046430404997806629676341735881859098914112982273714258493204647706992876545513404661981646016002614521047838637447996181747917690107925253340209799885247596056080462827880706693550363938534089373796836108841591913120049874202883508910487593373146936336669271215213005738340028840244937901705286660145710175009579875607479273594951475545357532852747915833532706405685918747643894499142064540714291391813376939641961507731084625946269631223142600171854634043501962505353744861838398186809305689086392848889485413521639442615273312347880109632557093911848793037995209140696549761122085627274557003861307639242554486550701958907732159367149443789132916469586784550331059625644096730477352107536480757733577890758767624862799938300560679501708615665219653447838180332886047361516642735456014233407034896068120702930356583291421363777449412667848905221827730751425639263222739664570071919304832477941977248753139016684312705110900476760614000267737772461603394566315256102687671791052129815740813589842624530188659753634998924563349322301592314424488130734793066754772252971130902181403535202601619760865706677414781037047087680211152221548734933198845543999666474132613067739816929269129439280931004562595095582381861266177297236113962642041540224478365031372093668433906242790707920948403239038018113669454621490912179541945215329791836009185464972107590003682273027264593306549790045935046199651850502321906711781591249726706708760130818607554243146373889064714672562665100484574824120422008589866452809217724101841915090810483570138724503559642861524478760499937733864710949896876253225960593197134676013449830675662713310797883711627690278394277755378378539697187771477454185708651083186971605032833964808328075922907817981823479261954216955976259703844313376220433188401653153608406363554201177224749241696382511028131151479002148633333456186992717821154289566678378953893100562965651580566454603982277949629092319596386837452555585771363127137716258575012010854273727239092972813673949870221338404477422958001512812640211716142779857802765047308060104344500873373905733210581230904993959163192105457517818878823867963544692780784152036435905911040636499871116210415493228979516843373958919681224692629031230636123482379455802342359448593049523583295283362707425930373266503956327708197026872623866860194748056207734111096724874307754096403803223386338789785044513956204011793073994932098646777840356369337938200347532530296214554198085385692663009576676072131240441549615941030534782846102423310401279700073592610191648984466769011071115590627031355734722648558012410552355100813748015436788960475079160313212013979872076283447755983652799234163052846031455114044459731050945410218781089024140747641883260126758794280548658515479699971161057049535287935695814039557556125568698951200857095674416635201562217373438402824639189980058269672268928488154361311673883091272584577023247888462809340275808826370294022102678694756208252974779758425012193564189525620999522280033189452130021890396049588480879103441014134199234151597828307402331560495404725338070007254279301231789983004728754609427878322393961207797823513039002774590289963546185256616891666458820621366868707157722055948305103144226214112082177590802507483876726028893372177115415981882559046870464436288110578866700737592561197616952068192910551331223354077311487105424538611900510762553368943455871346576424590738718975998545900166233295512221874526125532098597945675512338000170971807058614144350644520740424968437261122102341883442327804160850656429028085146407101410531944457706480649131318483014776199215375645665559576642901621927984468213260879083707705588937216981741920955240338151125189804566125764889283671092290905705035567767449474389287309492066587368412991184158474019128544876001998160237524600529295678999085971745664212602940241737886361546742516098835360044816475292232267712167759918629838037388631071044792482822789731261111032381941646385170373605328233918337489358303492397278620539493624234488579819950905634547860340858723987765476900207898944194439447591571625841025181861320565737802323775051914533643573327794737385766425031150458119425164501804309691118908840266646870000944765116587527338164588134603723081668106212202361541127694890509763245088116925638925181162787187892281009715031149784195746046430834161011887955505131698200346527790198277340190682576457762504187568707790821860366343542134489433172471354193483273266680853500385509916851533329709833391954801961446212294253639370226768867869640468253723701010621016144401318538339265636440154035488674274461329804492746576702509609849666385919551422989089511693026123892734028215054471098815378224294755671089687848335239564541176593173479582281980778420168874432916475592991624896291805052986218859541447707110660012867662894327968459770266303909497597706420905980019801417991569316892420495244204936067388794016396036435842330613346256025361213361425781221738340249158613832505725572716709088045922171498211763283199462325826453015558409094878177602661310444030729178513477929817541600563543801121044492004905411179578784826978036945735289028003226854728292058356230843615426690372212942675329012814257772325441911671625431199096821619535457274810922990479929647064800485752006959562240868995093621063663125931127978201126886454913600470307814503985817442070486436259744787203886970694967550028612310059935533750319882764186613955922854274630731460705091599314220132597369101359451392300085593124276956770735791000536596205565614201154403621352631885532106997375954138394465673580986866646513865742625036302475426679859657466671949305445312876183123018635519681177427342642945123740513667327374430144988732519756738902128370440522173285016199332086503398554131735145747417219193708539314568524044820573203432153480906391028243257609533612945433016654841128174185871531143080424482365406314361760338368359759321787065332085616794238052449788570374834651025550374333059693612643758473584786779430178906578644255632206754889057148796441445901596899737835471172876340451150372197229727377562504931821982555576667061569794578156210927447619675368447286274052369466170561655705566769371613973643549714715798998582262980726698069690322974617555779092318962838506040445247062916486058940670035140995355251295606156709967359364466879948765810407881965773281523670694390018803520514196006447718270842317049266568787172808814520144528030898633464429489440646822014776466624947064413316803442613902342900513676920188890323748935486363466584715155631728335491233968736284254728836736340973309677690981645773523938200458511132801608577314142858457589277961939232781389429546741952701888367897623303223883506532825686213663818310114311547927009302663394995810369466005741782558679194838821283964788233008379389978180842440137769979912455874835329638325580378824263902974349198655262007215282058469944683350055609193745708304958854196347834474037618189433397508655139927749345551442580144708471090953596504322223809420298588742635616282336406532027697483437375694458913202018508241828449898480264027871834903286906072919500348926873993579775022374600809168499750734365967498318042475783243413191815698215656989349620313591045489128858944459443155760738094402944271698574153546710206158947026576974722889291519704971056350217889248581821316193992006237352677290200384119179035014764162195064457107236811575275077176412808488455276665490934134934150417287468865226451549976054219627394171749061800897757601151700414559248570407064441379055009270746176720819857045244035574091489895341532605468628195740996813755082829747172019692726304044351308182028460105493746463327496737644602836844014777778763370336063609921478684003979509541245789929622598931190907163886966728041777576357192423150518745391323253910729582454661413528576711713738493826028079705659474248940400753657683559683817056249456408952191987268198906930175523955331635292254863664500844025283865490974948490423583580202516896792227588642362846557094269541183120901546943618183900511833232135943407055304369390630412106369465363150783673935988746133215329147709720424125585861285320489015721011086937419101580174939568688855648851427918695917851076275295004390492404247262602205927396406155728566036913908525588232375826521858853480752844148217507117995003171932082535255103685457615516423346972077531730798901700545774647639575095192339288785263622649383014141782009700122802943016242264126491776363003269906883802295822688591180358021719729920615822569111665459739607930690481865689495178917776846824168313871004510096962051627957646447650956163905612187458815345769009037702073621362407669628616293890906722065018415427808855354621273253911539196584309563309295312082102537601334936405801429827657153025643235721385668821714027915937573656561797266248246246784251969576776631178656182657553043611789314347320395863993428567855708857756780001402450591314338700350001743261904390632538037288417743033971450104043797409671641121881638297334879987550321812442679583771788387966607042537065823925986900996143230874805591994071671271860382275784958554779829724454373750992366057760845813728704359628149800004932040826967337139013806505421082423068355659459406746411676898111863112444256941337936534299803100026502775187643647172926460522341220468261246300072035724025659895553940812726840570417353585280457715875293155126414434434245344260140332501514787601816288728321960195469570276167200399667150273718863165693759092821842457037464521307686520677957077743118729568515172340679528063680966088012180995360205503581183845889486115935436970164548080367818027651928920374388970165111048683619584417696291982649852150769775804881631479108786353530145674747835665952676816982689806092313471908024162621062153384361027775422121629710147636887604668091784083104567455642503131242811839973544641627943934082025783446329453886066154148983090113086476937999274417548868405172029402733020773391572497054131605704446584486546867741045571759903208499593454002063900127164306273158137253921197103665400078453747904868690967330757346862640642897226971975034618480620596455473267851574141707067919658077266075546984237199367131909381672058753416498326192571395393858783102589305877693478688165532680641364211765176498006143229225867658302623666820834450012166172601133455489011898306082278849166988945796988723686564405467781696642781983521364664299092001092819521546572258105382604911266371734577713941151192208075859513164525093721005246689217183862954400954409510246347138079709539434608033807336919598497561053680790091789354541108944660949796330106161347832438881231170904967579245611187620754472968412799024436108331689289636354119482872912887953886560153836535267065718246311816164062149542589000755646522970428467845897224219295862004602602870309751392492589133613923810168800287002215221555238671365612090410859388662896790005506551078420709574352692847379500436697074407641995134586024329904562323860772411462896259176387822288413051727566884523519858386082755184157402720146081184884953041251568327305764127362970660202003663926915421113340395629506811249223201337102325522465378982896134018640544392756246390009777522137557914234805818640971775938068171207441529063124935384562294557643968334950537516365224586929818227427449430363855487896717072071811066395035683897476956368593654041624236694267518498307199885913197693708862063419907318808316946463288381752361135646612105655768365430819000859917856143670121142842643393819967909500799385637112003956119793503943846704629010509628131852527162760433021933913743602878177765428961848040633535531278984640787771577135164537732968824258865924942958726854856213533598265776502347318974906585169993819078972044471376818406475929257374427865126122620070638959371001823708546830636529297131861068226948432664378814332131571705895777341913969266403590405351158865802973088841217803392863642837712218774639374454968939877881152934229326271219367698608873156974546777588151757652543247097997598576545525684753829451021813696143543042451952468296028136083386136722878234458653163887949256091301784007817160871668255028148540138951985877217019039156045922454322369536033201064293737768046037185509915378349260735467062824114941729561685365335322175454064557682856328886143132592984629772558528673576003784060879878937542336648531010440774267144523666126204885824950071415006683024294671023180414297368585598292866608540869009711945438055102297985932007856363237020437462614611177541620261989218594458982235005185395145023662178977034033011065602473494648898867084966201561643165671250001085620499513007291398901971341602215234357961930571241313680715676932432546226258673017402985191386710208119729690961178790331456675846368385905717748019973241749929232294697200860124000348662554069406338158755764808979179381533250984386170937971583364424625396026273856404322901082353091208876070201301367047811568993914351970884665436815587256905647182186949215515604114966502249117291375956289703035880717286090681346548675160504853424312554048409105021066368105638628150577353935556558818799053056854659668487705259097219173473502907929478155210910270686653985259062800855345184326947511193156750752369610680895139422558756862785342201391660955904034233254505643504421200034922152796703218743999186255387550269593363446368406491097389926709449813268409243456869856067803940011401457380053168554357961565205715770035733398882687161647370473552318482266768838441195489763519035958804003640481508372042671764568929915415754358490126474768666509062642417628362880599600016860248535041751984292020995644923853593394182503733345967109301806810963162215629581957624410022112624691029336854943826657075475384239425277680509528636038733709230438151842671141658559100169888127715772180534411090132734601143758925973692579295897068887389541103043598705610758023190630078573627795692574697766108566123374800435664257175945082085409164032164241250322708342103825989821129838496661176930472449517544785456929671806514440219841925110515370051162145547352587675149325968586970912930910092683470252662975192310274039937339891112905332916392282792172451840480759087610287399305757843125726058781184038599501631339117829736738415247589749231153573607145406347324646994940007644486304840763351880533168148728811874184492564185555720627889831039288502854195450682688230603518426362018036955129381343538635989971209255110449364511353045243324794893536003041332618382379774043891958840901131529878535956416053806831635957564267980088760136530718757454208397670181685304465177971698854429323592954127752324113956678001251662462003432589737660928142123433119441651499351925311520749594273337041227770201257872401420542619259412788587336066282047025914651239414601052314720923494356984511764404105006303991880102269546608269388667642125852300469015254690783688945236527587195863420232052931738857558946944735132045617585689329044937555024252250120455269060445194621287380357808672894323293334234478586929623284138165814089440768075055324848938677611526488782159701835525472867491985935328889496748711050032648058958239627729242168476991498453672825348060048517237841443661389491929236456524718295516042854360073292571587690291387648280744614510659472919931036270515522842888720471052897402393711926834236770893557146981952999562071941666287755098511279569201655481878501249245781244037447210104377626379059936093002301454108353123959545677179571216663098461647271438829241930860498513077495415918450748190566438787804922141894913219138804295636205093100436955682334019880196366335360661203676017921760905829519092478193094416694982217977798168552003872856745233341782058227261949713261357759926811922568479207197578303498563297991791426564058049254472553947993752839814747434693724619016772631943830347800072126545670115400497260887690307440472266936022853377135201438669378296249824929050684495014180632819771842503670244670712414314855622852409969073656936887155499058556716553427933083601054148786475567901247803166846702590666487459553776252846626024865323906512858674260762652819376537380711219144745654077641262578535113716960946384791100316156627704013758851914584089635737526409407650117673573743722720747928630753306665279564122135299288534661558122875460779049422229714021337959496719445756517162639324670545216488934443567142712575701565251250208296461068169425844056628692254302892253590581909216305127426983671994002403160107188868370449295254729243440016869290689859607869723493454412898222750281652751027487019200305651988344627976896888791883799459219731811835852389398358899613797735448224066624775025953448399499497640805445992656180805010510629836864669547048315765933761550238544466502893394312508786266131263413502571849966620372066464643085312924483492619875306474024940594093788195084845081673926567349493801119570804799573985777234587712598846922628601053146838700333245754609218641047589347990835282294592253546422097180113681569489816424319634925825958050925529197527354238214868272467268041088497125059609988944185163016819055872626594077869601932272764055495405585054363825543414202323570295183035641529305394337014298787469233400812320555707291066617447468723839944247296261431047088583997290822224945962598070707611127767276323283648604385707055078255518637979076946596578049409523891437378773929846035442198136844087071069087929232651488690584147542575645485101112623965779176852780881581905400115774938008865581432464774454773553258653337115069268916439152380017640334252695246327421687690779075204549885243022772379021009569903660804520091754684834939236540127205546013590325127328079430698207112353481389138440552534758225347969741305961281505199609895772964272451427850470905205985138586021878926294273133858072453609911309839174207463683493274751051364784007522988585444803736677402179762207060372420694867285539908709376747233357136949015353325158778239434022528230426524447351197963392803108117829984601904181661265605004781863928041431710120379801055700033815050423312128776723320430029250574016412864447150565003371457447847875569799965153661442291616754557208683327039421724512434633575569292457654530639082626473606692551300455444074018259224582523739177090062804219912995544374586828906275063911926592801313595043180322439989368236239578322597513001142353228487175963872164945079116548065474030629947351678295327558976503786091336424205083178730497192887345187230204408484885022606506164766424761938854418197468337279428808749304490723045228273185815838407092100896592895251932118257091523270083274449538031467496873624616713646376624530399677379963168529796784756364728909892767598355993137172204956006467767153437258523720949196403251150104345481508434287742082203852659370645731000261989527273006323547791810252651403214863991384139752363176295989262143236156291084446397163666945411176562659168090021624988117727344996724658531121767387497609777456929888915955153954527385010423383134899011137963918697553192908362649623060596084964467353093580962564395781003950492863766215226890691983269617430720711036065603709867274286694336940223795898296315593075131547352264617827982765238103103332250745373859033389669949490330057422837961272419238832433725835165393901157002561211081719889082478647739492217101775895352178056147194394667241607036371082760310856089702007928333009940853242155340837749127296417173283389439456395938974651004252496558721386599127309123429914631835476053998895797650871905171230730918476608838777255301409259523190361220909796599475889446144049168914110325472155133178989486121583873525747038308959978661435150733394864027644442474150434936666081442164122134767015097839577142439520870701594213846029322115361198456669311021306711368752594596410108909254910349459002087247330718466294673579604420086244010918593517959130653273750613397531565134248058956345521016453819955690101738006110818002107839235135211167782533115588571726733604445946313711756032526107271284849471705740420254666908634134210418663714732137595549434291646113933090297466014817611719444665200513758955493443212745340775426886708281816822025867003148077138053621597732860890399619901776317626084678214300974574647588103637996311211180845628815119308047163360524401884228586984675132968799026912531398395975788060346698502587261023371992562189312960151566001521701308763484714496642910576855298782193335962076352134175815993984889999687760071175085543307226335418570025923188192209075857160171969187194163170853757534913598079666350258782897642288275097037630571587940806420999552059901720427588014494664046011250369211645122488613020240026717937752204028722023494537452670748439796797511262492169950663269747088467135600206131118779754455435167428628931424721703559898972939665691528674789760355524340301406449211983714188142360330021614293709672395188781989175973588847302088625376266561664358805684972146640683900983279095804093001420836178582504838855127247002400743574770218794283656915170426681635359787852772249745700148019542595771631798967014133796637647181756301900355526777767381298191387628858687314814095371201833607820735532718360390121665028637550540199508453907020580069876715262772351066765684654008140854255243975990991573254628125368180454395118711177312854651710068191124047457588060008244089680589900947805885931775248972014023640828847937920621446871387781870920361533076115943768447925281647045634096243139007623904577522856220555692244827524164073203037594449783531750064184706326772010500723089536696564126560032235022997702824355216900834207104813080870816242669664525797728370647288491508875758427769083918490185264050868218941817304875170512142302839608615924660340238689098219843790384908749433509669750918631547666769433167464755207206261326192611363692061695870985238735869304479207547799440787941189640654682074798693931328962804460986787163141714842135919223506941643042955874086974221077957782800451397217060151668554200238930951019519905588156125918745432845608368508534399091687656964847376959526983457359613621985525541190259286907658495610940870221527502602232722898258358573712281135458266550635799321086202754679150465701521213773799315409665520809646939114209359400949330643056883346982219621758272721294656983301712871517130623688838682774734225145841380994502145250298236313940499873308000860326843974288106089129280072357726896594323608126440637161199159323509801902267727554776206379381519718194720386967602229458188493011609745358434429406485934081748588637664049218403247676866499885232178318926183359440394680497722464030003549015773705222132603331092365569935057476075231008440708660846663934705119165456312985882696513206824076333725466114887136107270461968919516108590714195896750185728694216508204144039046699519494134158001952760728001291951940734287775249765420706674650777947337077434232138462562612614206436876783319421416500356795193730430400150490085220889166591903341420510327983242176411064754548376251155191995969321875657750181913998559018155593045189721598812128601358935029930359279188343246418537632944100545063660118975773697930348532345914973752694244194100853927243502542923994867437147360608489986426416550496687508011931877169753112054031596167994853614455774095252264594274992972423113474085004906773369170191220613338946408960537837487182483020467701822723262380831657376689454283706441841895520151815600341368121979058084461447414771376312692592286067836153906288109234778266636771414586948649005096884466122880342553908931486540042025878406946731241302862128419833736816031411045302302215078156381828753712973619269366884592464549445405636328672174220633380660425070284644553643283407292497406822955762311592102201128688454464809460653874735595568859551389429156777542352319105199065948078842153057720322174187114572399093548375067542797675911703931089126525217726615656431942367699092999017347424503754121618920735003920698011156150815978465113442789711413335272103250609035284417109396831923300341303495962583607574976842354267274453527748727293255197583785099279430674830976267157290504164811087109738189064908935272705067722663579817963474193983167280742040400387433006394338579834170455105731868660080175487720595668145261367531078726639929103407368559492630321016894590618764753453094546905605906928588296896231187892235325096315958003596032172640828515169008846329953883226757255202042227046293575425076723746444132453531115027517312410310474118889952808004479867040616003374239364423037121903618812966469749104723099974136626113210085040966637116629669791775106189014279815429194843107801856799772693272411495701878711146814359452173543651964215154500183528040897100683364461020957330698420429902084831001912039697309977131512018153545501688214047024436586335398795383141269590572028978487800132545846497050743389790575663584420047672346966941195213093306517942393063969952072176747040072555754661911489290327633850229194930935197520341411235340426370288153317175677419081931113206169183144157538409159649293690200945463660733903920262684311496794160714845874508396744384761722044517289836577204749407702901589755461414264814781840545911165131805067509660610506389923925177567346507184587772231634323743451882142426664117519322417012785074695232153715936552348390772759020213792516920515047274048853043783553499089065985599506131569043471792199447859026100253167804476445118840519187171382633108552320616458940866649042748877656637631545569109021843662338226158934567857481074259488284385015743135494676185697769179656570013779083963950255221524195497271387584388489010634389761244684782551769337395256101438710552799716752653981105229358516462489732224565465056729105789661439308447152967928558791026941506812485659113184995850084516819039989248720603220769392290825698549320773871995247454823761880028461880582534360517584909445915509068110513824913491354569077911501699197215109225957204529788201473588941234139199999892209626144263711430885108949433774104979870272838001067634185792189915207793622239055609812839859308638454487761094435997518365446409179503318303535452949857142710593815371765806028184058473689056047682968340786461217198254412723405592531076759768298271668166111511851624367429224058617320171249583685957472476605245944012436962021085003149154072853198631793616989775213758950297242144497097208466369433095958684314847643522970718081709591485324119271520204871874871063394360258905742442202788745691978335393361908317894659656298431895232303716943540575956059717093444383769855697956917504673462103907271397631584767633344178171655099456831114297108241456539575361707146275673678119350084664508538745067740270391972213895873129891657330398351721043657190682149306115884820752600200294436081015585807176470339010122464053773213345682497110632432922342933519259979481597893810265662077805223939622124582867291213561712800737042771450375234961649551803674936486780233518864655423732328275672964235668457903457793703536180432910798508845266501478793078642908483492105493574015279992754415764823613780070715415670477684108194613048803012892240031490689548254194355542960877334386130248137040122936906479871737328552189103877006128948913764908468325930863076688041803844428331562518414974384229293327024449943832079748661214101931193354341479263577001301925379942281549997675725098692078514754231870303804286303107877892699862654141404836792704450278058555014230809481844651105284892352456678107829624845260756118612025238116312695872552000474852603664490116024690928125482348267508446152641499957300416522587817062287278116657775403120307493075468867359495873283733329760871956763668246017129893267778936736178878397933395895708870562556121562467829003213103571333418947192369230328369365957066391363582494557862699797835166322973301556510546729239571365189216726187894484331599486740514874029321423615154881699532874737347585032574429841845470909143241024102166660143017702007121190039811881363008723036387158847161250752487452615545593904127585090836315669571200672207061453771887080312528826381818179655838181908420737686434017026153290838895642730934435308994125391899527654659353878086471827827915137005072876751848078458849036436029395628596703142670174805964033742774782033516178688815608515779135333839843498084912135850873052471458091776466759217392071391087993642990536502591303962514807135303910452546438277745491383765696139699151938942995808724556990412413751985627775783022115973650744914888290579099935749374132738647196504966328958773943983483071498011621272156781939244832377438937345273376584817641710380640437573432808324373350067307698084806794572386998787822517800912828056244299955036576539977680915348585784312417187036900492794085262456420492531124505363886133078306911759782098776140852667747165456774418081369607116499403951968948707021743288620109731211472811213844139776740578522446626850856896914251580522912096743879050409069089261528316228669255706687381489892571998867975995487127332649372553590993361184466668003357162565499396333345187115308034662196888885493822787471623810054984963385658483040192762931236891777080051804210732771305998855414356333929475007837460814357769040465023650053604171478548478033385670521198224732544637796996719126885935081364247931293693034425279371831304267909107962573319875371152155664646337230256761486250922653400421140432272885841361819407006486486732834688252802446840817548714447322389130749667600413228899954887638813751893035940066944756135768690555223176064335618842746277620432318997157037923223275690109340865866064260102730936822729138533322574370953284119242580335294563070561911768886657958806365786036488286573969125461603997829991241833010962408372511925561936623452090936197062137337503277186661215262021471764929677440108516339932025444646570080671453208626517776271805710900938445944361899715695254538303273104547389408447260437233695077150044631031104757424897806861466646592052386340470524116903366952083818575636578176492494160549678379769794137130566314490186212811357663198253639759311421618388286864302111106057241439663296604900591173630559648285550884524737134218286635527023906386399408877470106648968674337489128463079425201550618850407956417835729560288197175690192546713156255845300804369318002535019127146446336351384429718509981809062969636161698823992915928214331364167376816786071075521687083772676364494740013217674290299230656231663424691615385286578067128826314347420940031223601048100417390388077393637023608827240689794821824330367773391852413254362490803207247435690301157226296193222617079898379970635233312192299297411004697986747943359061050427642479278498162684115967627664483422322668922664783720975953232187423328853219874767966467341501786615465645005847251425190204692303506404666093194599135244261982968794768437556675243342471709865445995825453224674510492497960799089379887988963817073822758894086283583183362618731851529557156488671700484802921426438541413643796081897730972172901789724706469890929212348395858661738281187194610041982577127085110260250047506184479677970740738994015121003611282896435866181143441301036914805717812969251584966490536358560235802468813282495779282677379502169408766251483589816316743260319421635030150076550170495020041423756312289612003720113716049975050687924399788908222499592645289212255700349834515101960068627646077719106482688582271857553787783314209622624344071200400996330379563528985866073196372981923558630717664998656914449224876685421407276604804864758733961072639914399954337601745776363175380129576701669415688080646184810830383982006389055573268756131279490545735307688193571375350188900687514823534446989800270718077392876974786515197693462895597062497033920745044378072940544969431165614338244135706226058811696639942090226456335056695243684849199239392886095731170148022689329432618175162295412362760743113736837469583764390367425042129330068018047453827572416255809884312182134660497696491053774508638124206383900327167776210526663699557836895377165820481139139808431674193811255120781078153085079908893385246908554228305597386267128250535378778559171122872307885311572255975597982820964132340907612357315274141832564602594227030756008167209067983771475287813268897845333749917533107202120445320580555442837340385363007788559915279045245975176115657375767866214535350519753111004387891930996818560156797205801059719957248034771876986561782970818809461569661732308649923283140035808106427782286844056244015339238981249418056751281045207514738883299829328091811704449996164927005171988786405290646021068579779393590286073240575996367865842498013377980345194243753065863573043342388595819617633878603306273872549439534397151967219297753998695246055941373110984130644874441031238443136728575706153167603164591697218612617368863049040637409888546306896822520018191676254201001197168386442361974459640558285655603519869327101231638164726930720541236128086880026751570375875454787586286589893515284585925070493212248832041915942501922456150153028284083274494535484875722723422829973981876780713938296023238710135657881585974849654728721577197378410858863575925242610880762399018513494367251928023116813197842692298506918678929798828295079418027653522808389455108982109416127100634478759801545317836958722087458976740011004356581210144197181595196223758449055510642198005786839227164440735146604908535902654503142307726549194377414789866049708402088378909581091951080677413342915477552091527083890140398083230055601615772863466007369957116021512324924433143722268552142806134657565965191301624394410372881206239845437023623171815647298405791781897356233482918352099272502455493933782150371464642186063572844000606234078496928093023711326010767579748548794183361553697742060036055483219171638295523456233441016321576289970426469560659196429208092908322562018858049576399997665961948633658220689828029887797019577845838646303643240451414288825432146797933075770616408561729793338294386735351927912639949447829168939147048198911116395511935488486046530222932484814894499354133921609926230740515594820741281337794287779069475662131180551353551191736809122382955193778049036225805485696213750251374067552746431067349168075705893762680160892357273079094839829739555965654830687893487361541475663357898441252021027778384964237358127392603591783132612927652811647898291127752295231849289356180551738901078909596445847416474024743144573481620083160617185484446541953982527682685249678408739334291489225467848600325559339883885697203814080508802925524365681344607548526190272470870575304233120509117268819471705348262986916456876666654109551049039454795275324118778603455573540832371249754563756935617245701962335087851355254761528169479824682747747546026184287983148456041087390897884155599227169879288015246090238020817887427971322128720190637817480398545398140203607268361949103602498239737260900158617527480044685921179542414434679357637481212498386027243781364251302265157381614394533099316840190997649847656423758718958592729804607857293958384055548122345027166093637815916699878274616308787341724922736076248665676848875095731585465272725075699835679860782748992839403762922123610820464536404707391630227090478999294704186460854942152885741429323067670526538526060297319498320115249170853603152878181483403239472034985269228730559612254882541395490481564728797770328025091599797426913162064831798885453272971244462947021514695797494357055470529122579730464908404233994737039921689644863398975618621372496127862427197378487719785376535994530111088553714317425006414844379694287099587657798464593931327109810527121640843951183049582733051893873257374172698929251431742519009425809821979895187004744804382098049106589597754264004772251265321752926990897898388399093955574358182108725279634861331551628187115557749428628926356909172486234315745722842589131231566656493858221990977363038155527867332216736656872349041730963883693121613008044231458044588764755027119671093579778629133307757491609879971148014232348259831896237702016567079512369552517676480628797800664263109226302077861375244099840244633335159694295810981962896604287647149783555820703434687950033767469354131844167469792378810801399806123093260174626301084051366757428774372444944565833675287561713591743661846451388681977132120123453789784997399418964286392575166080442444884132663620527139690571393551230502891110802334837345017902612518997577502529239578749370293964801955864134493044026191085098449590120023667873671589513640646120035722795728171245016211072183202749967562673059659479963178326383719597697009757155369173830085906341539443825322416255177269275463569543895493812130912065876012485252665606165326445763728744524431454571942664506006158673011164391785810448968128068641694922820438115955375629412474943652082252503813170728054574419779639961994989507274724303628380059122372466440984132329049786853803946871951759545995793846207651415006869386259812691650491606744058724048660496899285221801211879093887084141989749753160827668262912622369592976179298938553678304308031216914321402021507748293383316197936750165325848884484939045009838986002681326477291368811262931987548087421855915612127564314926719862398850101090471897296156760890981792485572608806106523600409149422176709511750668484047861229262792659688289603880057674304634616939184818108866069425147494685361849743711058773384976174363801167381514799922148719709536655466354492996188992634983690573133103507359440743776160775088440564858391424383788890439057228134707210077462487912924566731500113742715264670739329187184512351098183482662292998341446998606162196963809345298185897276194688887084573103929101251695226149093081626497599400297241484395478417938831559570124110299474995065640327348258710666740279490572898245023997589992418477276714016730703827894104686391968789615668446833759046440027765432550182507555158806849961253993363145681185359825619943396310863245510636545051810401535331161994887357402516491586172731749828062091364197244215794955293824348865705685423414588632915635852852863272851847412634121948445693862801726371220367432688086157842261433363419104964944133090274868221595505791786149868959771937107058613335522870292647065507419581127513690071149699043596958199601261951885166694352079624165998203930981380130958771351810447924868457899325082491711971744384281416962536683474684060528785500237081681468518776180486424851453121177318573562243294711671672138544859403106912292122444482219790318321621927986131398104128151488910435874988647555601461736108145026322932382819472497337211627502586169481955106600877742496991658100786595980961456960566825595482480580990086026401146362872264941687971739724771797633006835803257133183208659489944569107364939686208202400764968455227216956778033679148663002533914515178919671309634278203027396170219094339174726414584379868871147478963279720518290913855637079119939647185081937862539674088998114687806104431222540252589963118752842974037816407758404502758579230957088755394485678238334282981019374238068408017837105706426673298867229324883925768333489604887906562805201136685865901472650260040857719017819774520581511040549600500031676000767441392687887482018610526887825406240550679998284503875986595174404985350749377514450093954578985660196615563079957664799361587825481004953509514851567288402895592193497438990039822696987381464322471133960542756999136813035046882970608135388667588915912570870982339527455634173479101168597177780080809757388925957756815754052191008549642059944732701663896298653059621841526073658770397486900957650840558917402275133277043481225481390513882446636639643832786031806930769783666079238660919587818733274777188144097609029541863687134138060742455535085914165178861716139760155963300765569010463967643288781405598320844109649295899415325056116797295466535033790407400010711371623803857851688854819085903594107921790497540065443833071938773483657995725107312929957791209790619557440938093676867298319026864971227835318184429507025943716292794221159422521549747400118513770633904857003955312765627112906018975718699037553400131296849056764196422843923950243136341497041623782241641878905006736234087515971893977208102267775762003312732130188446866469907982201261678174394849141687226487464748399369251169170921391387892345009434188574469632239151348253818238678418482970898596712507285852627633301475269460257413071217163053112819818603985984690149491570258670369263044694643855251338656602549564383258492155946767084048227349146229263820400011314681022834540019021177872562374498439145586785357356164078601184208266221361371491577907666756385721722734722108373392359145530327431902117935471479932076422276538694336585873547260963101612895104071894751363216798604305628209636719311180485988230060921055677617411662029524018179676705816299061707470482601128381345446022932325502772601882987955775821084034734274320941260297657231354994489249126901648084129404420446399593900591134830764622021727049542337562881006624182321596117796022504942860161276509518974400414974240550823020564348435221851802918358393005157281411122684216367661522907239699911988869148665527460404767848353524914200733566445056176514399417712358670537079301716049888610896286841203784573649310601696434389686630990091101244291121480675551039377590211035522760701749079256827720992319975440211956739727030897156984622751879053562932754226496989270697456025885950517769029399481885407998457343965274917466099236335422160391257445692956493318878160555488955806934769403647462542962425736143322855468971203219681837932881532385471417631251482016124938349049484101788841874466031677920363311877890085972374113444416043351589344164755282276923582205368638325592590815887289019304417992648735798701087313657579412996918399403192854644681984723831150606052542175739172758904212052046970804832321374280467575884709322614051144562414497157330198856382988569358864850909971272444167633626112448172738442537523519843323247087718970945731368841474716334991443316976971926123085872484701640153539688520813047083626245125737968394784207462053108746092091505671499898745235561499178237800646005822366435716601105932149994455361280708671745010002292557394826748189096418303586449403103444298245390366515816715999439855760728995951278009119495939473674418701659371022410510313723368320952555236909641075576770234990721836712572287467940469164223795295426145014688994364334463943481828552358658657805234146987998290123682730706683278152599725825736784973827446023133909996110008809202031601456061529454663947447003007520487910439628414451831238566196597640472576030013005885521012519605333134839159337015298892634774715523202084363669641368013851940945848372073240287113868840493921485683727552341141709880735092412709921242419748727061575590076008302285584113071978176313829595312576993575327189269311067381055356339660028698501634702848665228254888171932577562274506232717737390848520511073125151013775764356470174119662499045376000871428088871436828026746155166134603177758007264945264042867181243119367045849145209690808278932386964976526347600915683077751554020562768196112040614737026577386455186960979974541646072545496068250442559577117465718626320886228262617598278092184580871403023333734668086411677927923982159475331245672065878577901870415059227988266393149285081382493875459987588171889579126823935541765219298614080641862931884153699490970463694639667190852728777514253286896673384613977595322878601263098696845261508654290006538468256900577678554593894031931421673559143689380555021766328137195706652264908751489848402599503135814228536708124072858189245840195179928858644290727181837862612669486284142581866218642555155188622754627970694997746686159088136531051001015166354396364812851872349229172921699917711380015941443477822364386897081509057499261968276445877092798814817069239081192697637315874670265679244720649162533100235040820351780882243912541016950121744680421289489764163251556647311677928700197951865242710163066706540796681951516861641991259767979542796417242020804600324770561439923408341547987675292297813713702680395393476464348857002030672727785758749062953531465025432481942218620082463140737226115145075228827978954593553786144043042942527996781111913093672286208589488011990579736052785541891238154805039166562398492379557645050155849035671406560977501205509731857787226729485989683403761169759214123462959525199281583424013547050849877556996564814257908860290872094743257310616211409160596341420699656992252209679910127524506699031683377242400065202734855065713263275177478946029044137288391000532621403593634416809319410242743399484155125873071595790387369540918931072333292705385935217978889133846435239130808290782142263854886135454892250377085688558814441506284856638458901236078069571798700222791447740210685245000048628807737765610534416227625865771366847203984952450232208240587970567093538903270186216851202809737186775139866646819278324613308128208786636232257368907754651046689273460648559133128490104827162537203429121571760620244691987003357078880112599822234748043899717447232992842245651684014232014344277650439679504008711920884753029011238894399021790751189393214672793036975185633632396141622938950568276037932421233922789953984962080334860169816909819470111556213063820828661325876816512667812360620414424218407079697182821510191143389659686506692292290381293315737218852710544201325704328907061516708938422336105871814414253569940300748957045348012627471314056670338840485247984438533946858335109510703469951149174852387975212317118648061203709067678303197549353191147530476339541296416977859534489352015027347805258593295177586526578037707716666788323952747821196636221922573444198878601742172267377137618025226353330781947550633579879504185482954109088226158925545882421262488804368391052245729005978383001731125465448182297907794691387658687766162676059594245632964627416884842937657488934452554684459789160396875043011083388364233120422893766242895252127050537426660341615790284871501724515900971736282865127544798265372399034637786397859704485905109883558176799268922358403054660886885278130085903783219357242963346616887505056997804460015461738513224056846873878014359677613501655997661504013554206733432130406880543875751560580004559443508850809823480345393404524173250885232065383775435237571875140659298351227901618348471652209821634642355617532391672842840209087754492646246824251064755459495310034080549715027142853101764999957443248460503049826552687646772816289886461300077729748075908648966492175838539727321784485142564482060835153145592882262245294556742913557056824431688668643408793458934708270815726040722340009155601552285615138362815322952667824215928022777317166558945718103375191939992568182166903353504505419028953655599568630797836373906361333981735543519687427128996678134634027044160593475218941220808285355700227096824269695811629018604646697431160972599686514143350635316629236150558709278195306290428092992013341184025500624257137626877975033164744891031440578444561188887583935221474674238488106265120673177353569299961318450340810595085105544654314669706049634607137763433193072731546124477742144085686112632672532648098491384436151987743078882805245243018280574505662846373146625891307976595258106184984515445494931818560793542572666551042172231549495343527928710791339787368871057051772149734271515663115427356982775077444400758065951268872343291202521945423593204393054365910903941642385146087677007984867440793235972917174824424091117172366221482315803866928477012922063157851893290916434652130854391699531841155379288307728744325455049092926774011612836111087562635554547162099056665134971107563530341943063664276667722780598984337502274359424678883065048367671449264403589307785691794362222455588874222195918180606589101688264861012996838790292952718335759310100409296108952172105920174621888036937914993574664716363120210157394798615249005805635125691128230439562110285577656886668983521061698986005764246202024237908963768976897641015225889154387530803762928455467886542413936324283761113874191554546781622353692904630549195458769055385357165778562932498067760233131949632908463637630275836925489597584649969760525753597642134106505562380380191657671399839006962153414189931995487622100304691007360158345448210649712561798958348937590027899288123725150144410949687977453246014029874579137202810208055823141330392426192449400140153269767805137936695925443540063793536557212735597746641874262644475432551000384629736822714185029073568881977445451968252374381062468380296443893854292327921473821066956752978166160858264548345263466277450211155673772382493256802636760191049742046456744469896714068396648674897811826535233145791230182489893625193436786179974000575264264111716118578830960278560102885465828449200683269857535631240051794642858123156700922818548029967355034098492497572949871746001954184755230359650424795517132888034006953260962579018305291287335691817425829191775911264715537019048291696543782715604494936828298955645597372775734618566533787798774151574063364121388046058588063596045515766669736315795751884316229424670062711903249598287491925716873468200967179051117253514491992581353587138458731830065708287570058998205041843870152997734880151790259507907815550968297712644333086513338492711678212136337878272564457271646102038686180424959589649891292221082807691065911663118155859870552469297905157247703855675669969556193006018979428761680470653741462589632161425822665435585277442007767938833203352990117635464145665851809427166606996673615101446464557257435293115902210082642394603610343347023491655709541148523257439744412832217703270580207844720663959300570633045335548327874763053305956032781701176837064692748265471295675972452466376511988604381418102773394248762397435922548014322872458102893574370568689889509559107860525964763691124364402380201001246704380589991755087928217648139441825047101281461187324586154016761603296639055216132587142369149265308863348841514455471472238565221559468872331813283229664078925826020801222742646943637720626282484117467295610082012678367764547779924487921446158017636785885116473927251959123830953009369795864710258230032181136785140686509781747039249879125417828041567244914636048075032196946266039306882036770385865377518263069025166055351543271830925091265721417576410699432451090402331067459009151185145442234825034297786479966874193447186736110222421040749625013575073093323253759676260404309719755807405735992861315553125014595815474486631935470269806220498422362153602714706282216257564133715831816431873893795666098556154668030701619101119136141264143692767590611722365064870113455588308303450293586021268270898799004290183155337088233858092783272489200688629766101276842843337066168494176536574232326440229556637876125060067930311734232989417131615956218084671941773910397498923239937622178922955371727254241256111899744363948211855624677989074001135686252084128553710968491166770690287602995964136657054087473864699509276161392037984714208913250414211954048029270378094412408556319078284406798860999582812300431676204155374102330915405926746153867469697759879497029063651482135115138701216475430632421986158986183756412912646995620917652088220616936264941858554576212652745910087270269707107096903894498150942900966052922102374210792742966115429439926058404569520503001275166600412106427981485262357176787105836291139995961754803863573832410916143887405069684143433542183497155386984512986803212603828942280476190994237446867203214667239337528658702664109733835644761869803424583351380995295220459701329069832511307923514196208603864288391305170909297450561408942877788135539706285311130896247053855185805009450492202613096037862290840887961911356609055469338005012608523836456089214397190199475906004226414135315065776239876229550980215033836018432219235288174538446607874373145601867962930458528125611751266930588184162024568244443856406088435761317387115286898920151568147860627736186142537401443040203294659738772988358751134654951069443920633912468309319897490091196194936319389191339759031963673798692649064719284631213087686275303450207973933376702463754292516644573458278886694704411335413285884758850337543680820983969718349550824514851634943756429482978559739612770673557220723311149784023518347108190663016747993083304432527953935423873076633541856309627116383366656242359600937325911855246132586818883027993881709467607867307539896609837790204910189690971095615849419447193256817804991686934536136686631124866575897439056325283918701692558922017970883317348780461640551754695630854149405784889005818793968980772666137610077555531614909457865509487397759418267025043637193958259504137233821854277157459329160791585171696422109122632837725849107760462137174329127861912447475492164984641257457653044053031518924140122381696576713086820257841845845298024602937192486787563097868587744985400725882916490473807442501943368883309422341040922854755562821121090768997531753381891345170603731711479753444168451772107282372994660943101046914469633252044214511819388007007949968140668018127636766594821324501427628998961749977895033610422193467985399006437586616639315458763471799791419066237950308208491465443313096410773502021384598170347491826863554169163651269715845146157512723003911319727068787586743810548778912457534937390556434940368799576820651091590439104038321886458406878333130211408173477333019798150380002144848100926217040443581445265022163673685127070718948341950684635802221353428942903028811572487904281923184325673694539445899092717222570940573893490391988351510467261285604949239538955176083522222673272220280686397835360712165172574787175861720669133438172359451928877164983367087031919514919894438071515557529102173895498807670845326395130152385620367197020548828238357843966618045664589514175309532719289309923371814343802802456328395584225012821621342129963435614563019901652453078041356093936234426998440428331349564407780713148070104002449092151945373441368890015388900215139706209709900479044203588632348037851432404918827510783049044908527303862785113550683438129898993283905813022083570945909462716845874596881001761517367251017944771544280840863264986006054373866008372852836236915216317587881865127269645249065951179036619647539772189076458830838344118635391005719196507120079773406036146746468779979057961452434497516768335951202465091213675533947936639655764353743547596311889708570172892360201616261781909427004133940460734816790671382738507248798272717999789803394667023588587445475766529770019622687602599349325487222416457837566383124562649776205273634705907251423748789500701678114106359785110438078476729763570430803674298066404664467498607295837225982083134881902218495115294899520208001379844337202749048083239669228499568425626150338316876449016067892728913230497675024603859377197745157067766690813814111227008329499725049930957683429842226689238612621102316681869306461644111039759374336386633113577658696146151199105387058343170401800312836825891058595405540429340793164621351209662375999270551837295576408072278843403508184556022490485238115463537452775708517514721657675785554402128183088557640778227143919219609157562781200365675593360359542767012554165533961907863252780735270649627661111243297252561844023464230555092140046186126803784130927034313596413930829269925181231934704892505549216704198485372292734225128837062355612861009996304212273185180524435542688391486603275570861610229469173679985380151622067127434151498741639202360096364118574335940136432660554137028047884776069086221642550486891587189429332570608117277958317220097461879551712830938926456689236967933143577125846783544743695300658282437421287883414216074365418043007106447019941831017013850115813586771244892209227192461782543018076316054986492998238693325786713484294497338721236083599303348138356423062336943003560379210054335575328975569688663761181884703137598271383391876517568023436704715499611883397446860790392342703132060851436587787558255654067795148995160439570189019369435370962345155204567013442185096022595646385667311686043610704928802671697467406786520045683125849797238076306579522467479694620088483259330992229784736761807019842683908985048141185524905251574230076966257142815530426017215260642941126674032721063597579546895833471736017565310768699865772304545915724209395480548897670675424282284700844483836557348509861181319777388190196211092099301469610813083511043411038626309234104025896501104079273558674647213023312278239380509881918817479519686767607277115334491900005795242522012177838045309323770837167014918224655585339875984313481460848639107896581393672023235009016640131326662386534658634225735340459135890440849880187664398274003239647399997582025167643230162109773624654262330602954109735223709890688769539364683807012374900507444886729640290716434546695445876031770782807219368085758230982832978708492544315090437266924892223584892049101080114120800324894226111330901832091775958087121853386431062434175061272382344189948719185689142979979432058141919061746182872491256685927618894823768393381801471383939165630574604401223372125930030084195190260142755286120184571155438597428575633189865930851756290618979292533785325095745710762021632522312274092007380535708499628325454457854138717146439045944846142236535757857014314731053330490027750568546581833280912426151623111487769522619693738853883483454554787029781263729952544083021097364899577865380177417406822099110606611086791276132847281528868671985445707946821317246338087628157835503625530604764497289338861298038459780111899350365565562869902913003919518219577946899880903463310775846024916922789513799126402503021172888175421672019086097757975025309156524975661875339519151437920895159003737773566974582249181133544077607461991583041045501680894591734974084206104714717463855688563108352073083996347275422610224840509739552032938370813192297936126907223203327467492489943637979187860465839575334159163788062298241489024567712589887681317386990334769187879925743898820566001916615405517225262437261063708179166807652520782334358376815096661049769467812111760879288484206407886255039791564383638886142015537241457710008869122531324172076218139514671837257559272006365201563145495898745282663495330558143647939177942986790430022738959409198892370141426609352934471660336209947757145629957613206740619048847303982113720394140315538729101837366949153495189894704438610964549889432154370829546284914977213691118305653143483688705577201996584721930654833666048887231674943568501890000253598048215932130164195130278279335931135279040825987735420316798006740602119525483433250417875649519838341685085343964476706002139262918847537581591001398462533845193998379559553167177089579845830247505527133451589779030530360994230188972421946581886292640116540998667353704908361213541551165583557651219718836338862133539008432305051281805680699580296348247791478968573266583467522715540997536239898011506058779714122561022450774665110509509760299057582823845936290544199684545004151206785740189862179184818682458899393776587899994537292243482400908922473723679016271235929476154553928957322474195980548829233905136008656231567675756494061410671848328987330624258217378947005111709313917719015950335208512228989827088454041376985608443133905794005050406977279447005917907895089099261622786983508114266497858206041608113000248029916694945490553564323933247848052385982374160273104760094191074102432825085452253256119340975516724951690918399282276310724220732317684988196659031589081726399341648638424435557466625946886236432013438753906348213774793836076261315294202801589310737151946778064779172889736670768299588408044094287210129599419537411617340796256770614244138176884312068545194083103183512283791301218341091070773583197385545409249573730723334372006216893970973678011822646408883680904771988495966206592921993829981417521802307900124331617059074187796219837204107463097138007437167702798310596960135136072428999627803923563585399874205536769820039000994241592663018578409636280346015348909433737002663349178180645560464087445708483429611120620341120066737304559017910330406880126553394553603559452223819402428629404556641007167990218225653465070197692651340741152338690979206032757269335201893345217291046390825684993874109090432866369745142104986768075492655109291645038547360604387943256063801929988170859899852052188934988957950266986077965245764332930795806155447936315235631124947324586954079980012197522814050022599168567636421502040050016992912084344858598903228393906144762851708903679440961974805059239684714012452475332185775746524488367026040347511941183394065864337819718592441901900620551566297134998142486685786964418046745987426623154726364967997495848261829751367680813014462493750313035457224633081447437281951759306737139912782718950651874051198276749714550770140707817316023762791541113718217239324885145877708201951078738755175852347329250471324778900529968425936603189210845722606172572993007243408005552943024435864369216015236306154324095171675521804574190785626066535144582242186850635226615641462613333934557832780700131047887034176076477612403607144828238882608451759111168210376370271034992194588454874889667103683217870431421402252473680952901447256164098333769904549234177811206429210457172984643685655624643996714511718767447609428355022529863427876871039309825526412686653658938320361555737365403292208874461922108862778001341797967267466860419560955974673755770739976503625906251322046654753877476594057367586420359848361651197254011555786923973198903162255467415983171900617680527622049442102863610563115884130260615777085288399620173155170464903108760324207131737326285492894993377356834628696382670874567098828624389502090807028339549710358968028950158141139059101210854344357001891870511166151883109136547819228431541678050502831246077115549256337969340209844905273151186417121832969773176463608677688077675034917276538348007351531485293842230131171512722697773054249269487054450011356367592800819725443701284475978352665891787956358207809095132515467270957502554659033989873837416411128036388674162102544245418376370698120424863971099072718348041228827100689359076307902875178463436052211278333453126956411148427624453654096673393753179474762900949803515910380538290172535249314557891667528260958101942083227978251360551029400546087005537759910380013400532448108430990394165487526180240008269995375713002696759969564756452901376144998392015955757284604948261294988167214686766813509379899968703842455688533385914726226729726538622249599588430462868079516618865123376932125821066054145224400492565278838507563330744034725871567946931001076804258485154510601285065228791747349205540437870178643583693907157911955571743391960877406958709500600419803258299521744894978499318897632163631797900434770899821256437107038202727546423961453383883901426610791547291626771840381311680960583586950004294333099636760537148517296560219623958079118473912639755111745489082149101041652385123777458578199677025645455152995346315158126669019314543242525003979033264558851586842211509842440243421817557365345658868705332956167743887010191550517358279310267302621729505329899549824867923262651635297030967379129156823537058004399655567964076949858592030462465417737053009896392815354997901825822334446015789241689120589272616230269638640923563413233694304457504747842224866789015413621766663360649053959032052012222662564564994076088049956787793426824592055436085627812450777036315623934266838374340182549558990725161589641365361246877410070091533240754067787654297458137134856350476072184799546885067485019438901728720620999650330986057786631982123509348104749641510790565346554751624997874026902511812586881690716680480775530248676693070959539825861365524331096341585628153079385328241704739564550087443723769798825570173254503726828249229259120439941178808946441913348037443214093437159228018754551696857468514628545833464297021042868021780913112149249761040005751393752546448290846632403201233763978738648077422012734558241597921405703396261510437491472238183583404393282591751018195324450871702660806757761671488785946051303016565450372195277859792195801700242808092665024010996853906781416379410854649350073249437508115451421798152151897567889293805730435681175214098841909728383377075610742770919526361054423869754057994995054540898969860489063017452260521517400586226351099595028762604538872620276008909241992075781479727146715773139045338637274455886930318558676904420570815884365030375542987418544356489067774388444451466134146775152069869701837875216112340061857978917369116685010816592424208429161076074199116298521084490294961576388313440356385017923623696579886103495798927033691242818174168288112739848201974408478293223060928841188470432949923402565065526971528176263657686887946525653635431864325868640770262933851656421239263834728341259309465421398981651956115730762537407576270055180719150244039734576182905925747404709968218671486935950969439657923662834667002192952370312948503818393203034225962868793793313315077536161079330114965861356044155540919313864456395863010733511497490302304027303121048097940993997991186005602935516901982088675413335918300255701084717583812237012069316076203672538764111187427873055489788456211399337715322145358903467266751023693519070012799233447254600928228376313352442786847637901227369057363489651117195667261177566879517821500512933716458232827547381342853679884363373627177396774948644960645811158880189592868741284496322398874231802301556631743597107766668132616830358058917438460277601781519374179125533319184425863510997190426048466387365265034817438821226426632658728623141276283057040953040959072132036234369155518766314206487124937393993576950862609512884015029382193918884831274479232107816843397905527336063821526332454021880138090240600626263594935598938779890499572467077641280610365795615963268417585046029137095158173569165161437776891060978433232742553491464461685980699830379433695687332810379585927515459856152313052199351199778047286275969438129298451387024450126229405786628926049820340510722794136355232352094437752394079880652930594543514592547107540344597660680785394840473521137534075959131831194839164820940014534542355974720798112792856289942297950582823812888531851923431108374537740409904399179366229210302386750026365095711138572206836651039403829975106759979541980463260899850449648898967669022504474996889982448597774045028630265510722981153149357509428499501331203398618855281595211367696894124780596318941144092542778687627680431780044881750855354328816488945721494130873382663589337517635448880968298216328160878800606127213123110413665470885614944426690316247775860286149917500679352296577858813677023926347832727059974828725734440029334295598431897940609940910479210968884882373973561575181788789568577165479297748108178268646890177271816860317932117572640041141402372241419209473870919097341590928460153724433404771559431928535532741490774322445732657850186980689227733678999847276382657886814617457477187770276277633583715727590762627712779353790346008490006864133429516366183244880571089620051998641654400350222549643638042475014911623644408804823746579699187264672538051085466633440773838454655666917272469201517543493276423372946594336507951848272695361878429631243258254801819614645495108097335310199150325328528509471650774044712866656938724963995983651104115340566341730990562696688732216754140630124528078811274409854870564261566825530905105746244185112683679038021501462940887840470261363077731053393618427150572583135883483423899640853941140541951181897665891890147180396048506025488325981141446833066047987626657924642058271721898837714505392593036505305503609464826520315202707504163140387130188014168280546186832593481903868463385457357120317934312558611115280683698522253450320055535933369381902752302243742014542402401307666539715007126020573395141529042492522427108628636252265827974119071032520664661829017199519437740686397489824376203782518566567350467295127461771305031737401385880287877101815942580128949327951491666062822853606953607090029439085822053581634874332485812499428354751871264143839513696285266516808051846188537839515785303265027411161801602341165196555011887284602466755036910410896068432534931777320270960489383182349775467314217648307837447457175112024732851563769946173228516683143170946052414233939381600474978292669753245484962137788006353166833699992621482961028822540607582075200693190394216200917008134577244072523672929599968766808876337867532326475783833122845475528488268420952374045246237535723642127855263121197653293508791805194785402322886485654661320870500236371758158012972410828254800248466773964452763010519988179464021900040737045986734090584439232862490765476031407719352071466049136197520425201821641871415366079648022690326260667408997615198536817891659256923419341552624148917617192971735126309894988913216602312468958723025319889237392807089452060465729624434743560847541598515591262171778504886962825472200026321062338056038072575939820774953779290310280204215771262875919321230643313064470057620514008096235127357391266849148055311276114161555704810308480391222087288231329037311276224097827905381022556688332085578634715558734042686597651441524068262827255850702727466241655313576809374523393242572664803092186079791761256162173443105095883093668654389565725217727275301422597517759619305158899576680559714677913930549755489409479720207049200719743122764748705868383965955621612104787252980059242052822261112616420764985321214196322803130570655984757390080397439131720603333419077462386245907459512761822546949735303222425634352537240220788055590312359064353048031851304183367809145487915446128297478420482306978104751670026769113931520112278088246412602004467494057575292958233442284502826006701725529202638957713558098867280857169567092728653777637724434578899392692848818650789483410361025730396755613585879075751332014724756419307686918725848247345924678702878415709581091004620487171115132127527766777266430054705038681161000162229394568960132265372007956789764868885857285689941416192756199332294782979523198982248603537709747682924591613621233000340001669869658051043638980335031012110022357113429086951186878062129533453373984029532254153801230631916740381376763576242131660928999074256086838002745039419081886403395367020007831369557999499920083789939006374023497367992324468207939166373529709064656106799794069945750845289560609255664106702641560593597968277870429403145134014431052867733735812998704366172617330509989923852700227756517916094924468393682044618593131163186056439153784246213549300661215320048226845067236858664148550047336695683094052457468366353406865840065633642707079046958434315477051268730927995581192990441221665597836729191497615209394220670833390683408420239374689555322323825875078975627511071291292889450651091188595670981514785656304497871784600856801450935992501387938315670613278332012463600592884844218233187878598285266087253716281065870939563409827641603390288771229057978109233550993460165479347524094663845864142488006044260575347406679466966780839385698742964620444007130844901065548444793785672236130503561307674030683769515395321844435269512479240218568313998037703655596864389276910431015438395528964767067216078842876570687599896441679486920082129877464695940740534779867100492283272704359872861462165339645864308043391460254965485396772898297501122198580066654012753079859150910337133047830673665234599723532721663732188777947375307459019201794978240775433351101947062266234262367695285538907193688962339178699594910435930864652447694653550857383386240901171165360026732201693596874007999599910580602379861556186351911488806345982362891853342765629655153940916450104791138413288132256789285356355117665977358303401262198454658288452150525958354616998881672472949444701823437454126914775844495358989639108521163270837621261542457048615075434473096192138182297513057190632137635021900224930505334407860587302959226853320335785210347803532807416298587547915897734954776039251258474621095333815343176429325436523937759808406549711501645952793318456255646891065724931177461363351251524650021054537830143840991529454473747087853984355152924775036393583689760593730909490616669176073600591468133929539615021329275480235111250686836381697248251664766789273266315598138533078689015190743387602026424482959874952212540603668286663047353361326546498318612460419657068898554477637900984444797191474805208595834296955639096873849913932286390194888070868610669216997013892640913566179273421872759007873016852000543667722431005601317014628711072379840144256638136274119833763972108670142114462200188290889689997285453731850666855801230077729119281028880876632409297609901390537796003820535478925788254203877109097094477877145169010410313785114851812402834274579718739020170915776356919473997473742563313648238529976177827719110627295075579488533597347304039346302990151256203341094729388739430961130871521791429403967473947179330214467308977523086653643057595742900098371394983272349573433209440408146816312633096342359466185566277177877478961323284563671427868866298110738277577178111559887393933791398713572314354368689771830583580683183752456267915064305706767699187052256503231899429341918290030737207841624091898040634583970911972574065338667327006497438922942125197011436593563915361138454118232318112869682065627429137040278257514296158025231463054628856151949048774422021685390295927939410752623766581510948060463925852208454836152259977240597847552656981898782999959527019919229678188582449516958420687689981813689389947047827463024968823309225066005594036862077410406936833190624462994719260485441736737454267576293125427600887884451783652053707539511802300849639253087911786228112502050610904041798189197484339909792622169023258475094819353172461803571240641189917286529585616598486889273912907035421369967340046992583743501275603353883786273825104061523475230039123358879824961684961383178064429567166119261574656237435978417500139665762389103065331213537301848285523455701182370834043838778521875453015206302234386338349960622286981373134458333079587805552547563471994227545543576443727155918340531043893713367411518507575679234416957108060624518819601601080107814998431433622533507718159027754003005485416099202664358715266958409126538822159554219389527965384793912530829411997079330697799690023958730563257720390721422693722229057543403182090570739530926718402194717588889554160267153034586164468753471282748018711689247430615584166214847227073128909351798659703467123955830596098176170956125053858693862763674119523005697279892936352950165167917692142445768977930420709087313011337506072292602179099714379532685071760806209063151574472926894630734222539681963552903503957382214541244536124741741795204918406654970307328498739629264660189697308495124302128732253562677791511008816858338715800750942879150846644677874047927469649632219586819109333371892540387409789561904422997180470064218794808717616353325173665838126913170283470718167030951967400745088891481471748014391721125443507906828515075812010477754652335203247625936640490592346203586947940538512276838675624933587108894176728351474045412676192518873070867621652165773321777945741345160248553779043302235302265230527596404097070631477738719702507797288458094027115744151249983957025388814695204083143967723764092786539888481389489632656470641520195422624645409487835575648201596672960083099872296830191430909595087149035707882270502088272817387963792508131887463454156607975201709594329653293112411294406862768482199949076345863471311177090815812924220204761621730836956665256180406848748362537588755431215518911739286072098770156608445783962903985038139049194816884833099332512465826564349278493158202116475616963075759929489624466176039193410895100010498088961329260727245400740171839465179534782480708638930618312528216136212737175323594390267437865362276005888839188846181441132023590184640126937296713192719470446441642097229546973286977341302646021517564909085472181687813558806623363928326527598344844885426878814331803659057790376817416819077388724754351701521145240112708903407049205374660848803836882648406820402014327564232608870772133212355831745368755580235855736727842569420010034776941086471617880006236676147998064752014807659795107993965917386003967223211069100266129745819760985091403874875907803875111677623555980651202610926045329202537751384128435803369516823014443597604459355595282708322030956412700811933523828187143162056140358770444896564440339994935163840239954947536347479267280834363619501661912458784388207109486174157636496222571715979627980372540834915815639648858403669371628249039600800508344096289155645058412101049527368613862383820628011014782423638972150758558506381172410341373324915990303878129992575700353727918720339695929206221777654312696602045735025086730500015167148966273374950130240112625684390472045545549804092175636023647535933975554024782683294558030153148639438771235017514327689735521865230464051738275240480068324903873825566263902705986705765554066312607564528172280379419056332473855849869648171828372515062522357581269868712092694328299195657903869286257795611007033145060218765852663958761440829885242389472293491855518790395156250405889816295339800790828563085792182242647429263544274701427674464867602357975508871241205826729495070795539925524379366099456382069181960805927730763183882583026596386101525846775604709782395325847622842011146311354478487607770668915124878583380304783784518198309088987466029117400946658113191946561801511882443959104949595662844494325575147177358442552399260924207640525688485080900268867491739962413588969049586625017384548014340668989018139519839747104365817594842798143621658751814822338748849250968323960383667903275333582968949052284626842295282019491107505246775811275072252403487457562404675245982782718788673076524764214592391291588412658111857735034829574451312490410763286200794260900637828814364155032698856138311720470380461194103088919197355983510429406436991487781547765807915960615659458296078525529573284585869222056226744655001094672747098629690759119293696422014918863256032115961413332382946857292018836729682545198171280020514555013881752889395695906299112991536071088054907412201185086908361428051180073527813526045850508031477126724940688060921093354031076029543338051888050149188278994641911379683847604309489878708415367866815267715688876358891812670356902362487866924160557347220784255310014803482958136923797935989104835348211173320036917638306745488519651194006418786841953951500874933548470742835250880103734461370255327685890779044460160797713031004842390409170046553028417827565422293024184565870523667534342761050734639903705633413606151847342354669579920412601033738631977360388562848422743109652315269818359784621523105144763837664816355505226429726464773636837998267783783505327735830742928438667009556706833496813710628740471001736963602291220851785111488065415281126427653582283913548411655253407528679734002197586486764215066514312952203655246356659140565477606442148313009643539215511187070576544559024153564097197881604873605241928444667093952095618685715620895082467641752233901097158286297450028558630159513403534718466593824484832247643278085972078403763339379335046916324575891742025330945944584110543329604679003897051245496170962224349538457838091258659811664600736026160397790310864760556045504816888469176178520640388575660538680252375615676019268535848107216450362263990327400360831239828190753138949472871550490923211621817436855586032968757276535127551478214474306534305265068282740073395049946022206207325046546300280519161447720345457620531047813919457283592102334993918674977721314079344501954345315452045299125551522999733225560974007875460737432913425881332583785466470014839489038041903029486981845533266495538488184916182058569045598966699870673700624663312015838211115783069971773937072210034096297913739190948797529567528395201695076915609226868491222149453744091399916181122717649942328341749839029891877424594965141088507061566206701601240038698148761790812848713196916621649732443462661633036527077357048123766100839618309975404248191589604406078256726448226920647981250109149560541937854303305825321601693500709554336257360460068757688944257588607194263323248318838063405599235842907419383888963421726038125002824123405751974216561630719523476463473663723829115604863020931198243710505416468301619833200699466585544562605491803387256312387194618174439545713734202354696160156849421324162197985165841985013351840513526004881293202504880507889910439975808611305361842076346034853214891685273110073527129050866072263402766998717231197380396562564210202508690373992140555863622662049982109159084165945700825514036566064943328788247535406620470819499817388036043736489317962794046735053552226521520032347952669784261164994487031271578499930412661447692348036712670420791693270312323490045565418201145349591939255684762182570098712954005997888221383676761261838075392264656514503548914450369342968604014395891986510298268508633598291941074342753080745059712042056959931031222527338921865978598057784622152392148423278347584970380517701182163835969918287180997636394753075760288008846316396565271132615351980916409095602850344214978266577868279226613939670954707419440423123230406475302244853841983382384964483406837528007012380251887414674013083088792668618140292227572154767773591842696759706079031508095933848013144298667227891208821697689579942749199489205205690186733855507139162624384258646069836429550321616619045851315459772148294378881899817694877862347711125075820306254619977922769430852676739894456749192482851429687121099424443751532788219541402345688322724474228357656960745933032702511303667177319184941390618329083556601235114851298103858649625839242868153694217818370831928267033714314556578509441099105090501004578831473532538634139393645809166233357839139889795039708035691580583132825873893042650052257293211985267891138808905090219989750775249962894436782015272980472588518960098630445219000362682737329941342587735161060881878920360689249833068364095003593472171116947411580776191258221728015206087560139136102898073739870785675336391597754446280233931301840969471182490230651406642328699838587696861782635823792775340231334210890830422602735989293676884559229778684374100345579097813896948786338636106698689412968076584979429366973969722371938312626436922689930265346608136611152027628531730726559307483639941258074676601382653666137974386320833095331682411001552945845710784959598372374199480061009791526616886675065707502680624696710048301062276845541350958827749504597785927888095985497893121600002344488469464079082139289648095173147374380130091713655190348008559131004759364363620088919280898358398688074634040029510442558769463387027906672798401687882161611254730033184763425616133286451230863771315227182236872663078749575107884278855683618386511015637393272005463298031373106702132042300899282299347474938647480565428914689185823882549898513990657357674062998547681249370705713694378187837874917649351526635988849486293143324215067459596885593699423466963373200056487678121015518315474937749988484063431138814949532655671278556822856133631328871697195121321306186503865877276344557428073152090689957289408118691444014394707110926891919558588284075298785886545365104072908232841825111140013753926854890846827038471376882117945223455258656166447517495161340298036183610328501604960558621055367555155725629089760376861402990752233416177309039414412949002796826553187213861384177582997573008618598769452054971254860777773517066805705843516704499869363437583193475292303945554822459313280925846114163127897718349359713557681791355267583878568635413409373751914968792494233730465066439613570373964516584222323401748734930688260731521251315247337351351348942240130114661670252651485070741292811441211107527774280452050250631121753538166616220911260863630633144467269083532550557637040313027774002017666503549075459426497363553797680060992291368854981221388336668192837095475280227011683989852216684020648005011993828420929047060215283359667684530099944404788222724025162109977586538247330849863205532769162021121823606562626293742005514671751289624929312828353182550572412046822409913766509174000872063636460323748788600629500734048974776628108219034806076974256866404882347425060098119608813038312564662662917850480838451637631902939253385395170262516061811792086497564298380996524633857459255122894201674416204539037066257120861942365410335964721676517860636450817573530832578157679334991679320642718633677382302413319858241124743052762803232718663216944212020547177541537547783188868976867363561062423658888645979505116608469983637587241434443473983697821710592335438941819028823209860553400888228633865728726162167408754746196242697693413567835053896902221968152041704003194929212475596005578635653754700081336012048735907436207458426303874435073371597362620948714316787257761728191015032829693266312762641460398222104783739365497973551169330375684978718192471768526162956359495539003398653414968760406275744780675119358187263877402108567874220290019037761675250144270247821161742465642923351211661946952489099342847084965881311867149143316934553551660300048830980634491746805730525898159814815566708394083895435403109180481726913504118123170798080646533612041493050629210340420612073771796401649805972788824603774585353895810279569984334976534238098401162506393295369652343982377863239755373525550616311798653282982965650230262841308291407520875343319573809911697544284940533358562733687204641089872015588664831702843165993815448248025947800068118452561350317224310009720951419384238564219154606428757364132824248148752427448065282841490461050871517879045845089964608662044353563246446672141036085850696554990997533236983016339333739717638335458997640596092144555374334325477980834709090799929666449006247340221094563131753661894073976391599945044218724290684679870559066863393548009077335167530093404125153833677162260149856218228561286549509519577777050898449645458374461088705603905367747119993619757921317555291702125434509417545860409526259225765061298090712277368052032925883640932409820368678831727047604720020362141244002660444351825203200701645311217396897704795684628513935978903112369738149104732707706676614434897166766608119396187422340352727995655539913943378418529443045046776011211821885808224397810350409196798615225885791920886259316537375045882022821727647834072897135415361381851877574629081808993591679895419080352972338968109171758636919192563214749272471904779020351394979736050579208090567166845315219592704967641440535999796516685459255182686298107823987850164913017751853864360182877803050932379786722421300608351070283158215186371695837658542977535060970263928045992554923711655425152205723863292977215820576919208870699714263009203236939575653197947180495619231348072042727177084826278398927565006327234482530181085585984994458083559809107162256632886106234946089756673012304792102034093412757076964454971091664325596448094353254964040523343110415418723929069568509003455321720996319736036719230408786442335880771564669793756332632299708110517122448115792101311420278431939569254118304912336774249833225074548875767906707672365953910180504073591244347916266815131275324278691566755425070290323460426581137998439873457016135602198073241860929499080791532676993019943397973533840909510838247835981751674242385837887641819879656388862246003970121890557182721427063100536796542216281928999159588410482927720902947432954569580006375965864823219620681076332041960724802959637231302559664121655645781658398134247002204567454154323152804373449998809195700352442167926683855091837627644680481095802336529659256234481191250701491736962652684691208509459568766438988196504640873677955070561053861490306101830189683381998343431320074229853213344812242461089484261371053724187753612264488079704281407509788813555573978023820175982137150316977876723609455964528493785080130049057787275431466611011214422798152315336721061737025655179104985848984024161354075531005757508565216664635072781152565469346107536739574896906086474511628284679511379317474537299202956352184038068896886450367530511224200169055446688489633932094289116659651440618391399386369959571463331886716800749574250428285740230599424687821946743306821359805938584516330781372712174161256554649939892595659357050267525583140029881359985778892865654146405852958117667823241325802482347624759708519511325725032401538593388273743297972795407524595906150530724691647091903711742812790575865028996952238692482583433973726160033239855113971035803191686618728951700173935715931077198331665424634372273749784164690149748353205646159988635251966118470210352503158891238990380054016396514121766717225692261785640833702305878116274193245811864831845496949414348186594504828194179438804588583563740546621336710497079858327071887374117888203357178532161843754771321083666689499400878342119263727367171097019893216344245465766512195118107358695715962251232553166582069426803897406310351384165399282149487684109643361654619866550068392725293120620566499981074840754639127664061928031709720890640623112770479467646038100717721362180491080284109051142411564138945658046322762378943663187105949505973807225765660781727509537117011480073492553685231715221482107253845797100337506231561620212915770532247169292924904270565584754454371903287840009631873352861877643950307102297242828219414842885353321670626098515999352978373407743135706971247462587339666059688882757095349311534561964400972648782302595061394732765943744341080619470127126645765988569469392167423057100807421309760522223903148467884383099642743854803636432201683222323824866717941141090813309766220831216802941592147284996218726147093754086351499763314201319883415163471102652562036823692558289692285032933575854141939391507065603470488740926097232333667756134349383738196066213927678989665964528674746930404987029934489384690713704064852105622744332958204607576074062411760060630501996166365541366233252362930052810053567928104558909547208818036554973383100749622038736906516411833717234070651158029888905307228208103388032313106998831077737340226008573054666340047521912302506977676125267922689730057736276764835468003521635380253423670987796099114613093903910834052786592311342012921846206151285638209161962661989734033297926689761436496377693828212202336836197867257084214024625373440780281251077175814183543674220683957564353781301667977667787743876683704422967207538720662884519605024607373330756390836986611689787601130186402296128015430857282882296500377786688632287383524467991852425212711364813799637990241919994997947761136943315175768098187235997588438917830136791895381166543889144852167698457676117604421014137211082774855137018009016853120636930980350150531205873075145484834058117519506844522128714872032857950311930913333378366956819188205342508291455942015427733090831105400739267327605227451601222290717658423038331528350270040407994274212026468966343256477376118907271958736564029943675190990470806293078063666045064988292009138729162977732845664480577589995859918527978343040400560096033161395774240798320435835253167278291245551511160210761206241409427574964365984367072620207412036099011736439323981152011934941626730048764826463672115592872364348294944514548074322804195131362576149201872217160341954541303595838226902139590976463692445539034762022050874029585645856548862208893567107427151244827415835245400435448793854340059579500448814571404740159000903678946123019680405838210003851075841628154901935301991027615991510675942693736063581212048659319413136683819242553838605680003032544185807359625440815482809856767954870664957846441778390457482161701896118630466561507585498177027879869321254450907018637689296023811960720977310138310345385649482761472281765055267537097451094963736020554334307086738789304455905651953076300919872590786637846156523670689230138128574837978013037745443663683728345989552410310288064819839338914662347589685943381701190967567917642457783997215680356583705652451011069458561403761462532186309198657246870062613027216403826169240086306969552933354193010189602685098972336096457166785800598151855027360950422292277171551632200714898772642773100740281845402547669869209063322147322866803574688069319746182333513908311027928329079129185790349417398481113032735634523395045915246896217756891436358080775790020812163761812111227896445942196034057212322981753772135776314803174084454449339205721514120934459479484402985827443261451084480523666284088530835222107872464890600869902759424103435492028824413348544536742306521032391846044555604496005283261900516361378542444616488471637060966416062953283676425582273549737386503085035413532264945595309983568697829081633298322707718580346296142385997644780338537703400538304023169349008658074928276025885986492859653202850780310252998707227470753263750643903208663247062530084925633882730596234319158529329953472682863159628241259711482712889425801407747160245853531533045285368697145313042303484447164707110574307630637665461571209679446843584970822015630561973078674661632962750365544018393517865391337617179204014727848650482237523091230588279661857188714569288800317765589109751424590168556378639934940981294497236377419292127415897061818327733956885879952114885924539804780255967310250033312984131245059289512219652232548136432302845363266429289978661443150019399116722768715106250744088186639956343422607624331938180334014583164158013926712162007471850323796840124535472886742909264688015858941747284907850351368480509947596761996091144424048729712474811488381644796458253541299747922759699025292301649587705540252684305229944115134662276597526555737871395033336108150625839114666039226402250838286432353200857649554155807189160874216550354270635609704614519784450201748526218247711052689086579380198623962801514150370518301972688960857931853905719641880831323468767486830658362947349843067637710541479642278892979812941073709103558881360217158446692836833412458193468970993264701881651530772567133649141414499885228611501430688208611935170749691133779672254252356807680689779431875244750997919854051537327572460621230898918000446843108592914181478990690081538607825023076908095738601718076117281093472161651487052498305738403362942136485465614027780875650448783015745516619605656398903621462133323372542111336674585266708878737067743093169661087489126734775995890351233730144534073226655455342973208848661639211713910549021726007412974356209280088541830764457879151167346670196498556686861430901615391852508345302781100223776597744297448739559277183397390109806912277233836074281855836691722079014756011368068782151632520722500764756573512267562704905592707071846340172478839289118943478501774958664503050113764267163855243957763359903608847198316545536447490163431455783080972918121827776884664117647159764651347125077064556594304815272253944931556332009262509571020279977831036616623497415771370493813522173458764325412622775015622392903384970521379057613847235173752668875540357069791084485796348313121050593364085590038884447460357933401349118465853325483649870574445051864567984839820791853813826047686193474477891832164717654128732310334424181758969217317460761646405759962189318201834068264275282146593755336929753781214740620286570099500388915979500479580341908811408427188480080424786391475277680970860407661041242789947694177355230209124228442991884234832433255218553927226114470972401290977479238315774332834070625754846855969861872289339293506958637781454712074353650783810200616548862503439774987751085330871735696435451475175405212361961252315111098332595033505148386464075211437721727640849172331730396597779730935127659211989811206400766225643765283733212122880866119784966670052812700337781569750633473255236452282005918805546473037810219791584737978983681422026105901450903629914733829194839206428283010754325692059553269190748143547186886688568728701262739109008361815834978812030892821241053175043861792814414701124671493219217893635146108410913486604322836883039616493112552233460719334348665099710869815996868192518813811085773452138815505420095439015567298514015952423355316804143310050183870315903895609639739298573195045598018863986701935266354135146546871571688248847788001363756168386553526224743649446006358301153517113564725337338333169791721669797842980894167024429100212130848704361160828351265072669004059556323356905582263749633926367800437344077136941308813190486131678403172140447641905287486155106530921661143248026894695154178866497035443797593655346636362947342535517608110382240950048317486017388846124040061464871891439039477020113667712413121333110713249088984255501124015113170959186755650780911456678959470303833612173264848129975070751631272567182233656298033050134433724051542878748361362826239480194225448734055549031443192913217055240810124636071362983515891319998921610574034467145259857669865440441153520395632945169169614069301524262092145757991840058707209124585485005401532541839851742421939074084866279367600254986387524374836290959183384742358146110883160335506260745095305024160506104385301259981529504138396783641119453220861264133025074083646646766429861042384091721149469115269460171893623783555393821949149562172665796540772738864377278997082149062319833366865298081078975337446810804223151058047461844006169970098550416585791197819468261359627165863929604757066208007302032011825078236835549301238011212706174946144875605787935495725706467827316191763798479972664821026192429391955053756252267573969594966689938342634954374654248774347504757519935506015650360675802760654623339122471465807805580374011602746116096599824878789824567421792098413950823283249118387335317520548804082284377586419322776285425335131182707471555792083574867081079917365678678980669989606796161312979189736174361718308269465236207005088232086231198751258233812562061229311876548793121479661402630973245009124336013429366386799278516392137148446954884674256676234455806297673252174711044592309819461015023056251493551140586888214668275700614527061371025450820862291866980464838602264145474726358688785232174613612641944341290207860140457372547272928752747969154576360800215160974734586128070243382851949689037641011892198782875561352669031968552795898168401808112723528171597246938169672663980830666609998115114678023485960669764260965825378843715724667500450284050184822466652510576708676013620473550794232803232030220499833114137076804215433551909772206979564191826248031273869100747680546437015885812548234447777227349190525932813315503083944544230262867479547350495357770200170561665207185195844652976247433380526955819173902701600626219198284863656205937570487294624534822917437660708179886817426006754297069506877779554293787123114027726210113782682378485176878152741214990876873172747601588662032217460378369200298093907006163587574558934790808973569007979118052263842448044237745901420745456258380317313639469918925109351723407720809735294185030190396864246076396262802813347838232326072289960523721543129366649378221763508361700415995231771715487143118526014569799642492914952066344582173638682553753843760932169116216494695177007395137609092528400296725152201749920938925657465311749497592158031868791537139966473264846772938405064177563900262451532852631747849504332970339780274712319876335677279432716347199539510982984707180080168524790544517813912856795174124663327155529074036293391027267893020611053211688909475315478710516678203297916251557270122236863111498558574461130916988280931640769731279463283591815769139902199126623240463140816423173748515503147168317770906225152198695940653750725466649882786581965465365173772441125583657163368298286830125084812994427070218656238860249973997577202929403947035690963566406340923373740733488889480702709355899682631368431480009295700237952037310007102190961685456723587767688956620771271130739421171086839439970098412269879121390408058707027945581146592814536699637704586005064849352306134394725355638145874416821637426750397818398591600674393248322810088883927401504464400451438307641536602126802947082580142723033915539788894610811447478095629858225889900622249567610224162853467456356571442389384150330022713334582676593925790975645370890514327821894552501037902432801597789530859702983981016875938959168253392584492825586461226484236304591970664206892793956405622859118532990998720062629243190184372178642287088983528201323691780883217424398333511884071885134814340130499407384454574248594494041495806119248538831811130390646977293428892504193791898429688858949184287287006673107842323187351509358372038352973207043603525536657374798240470066762903450199020192059132109723032079876943864714792245274183391702724170021558981787490127560422497058634167470277469257454420981421940082536963589662463801623531461345984898702699743148015070094464637502768548578121173258340958728227530379027292840208940910827636780266973387509535744897579735737904181891839252927529385249950596183890273650314408685934580318391040127697981578011082270866731429642546952426391362245617228703971793189493069300891909905404205722302792307066229951505816346845502350872587357332561849675559101500972172436634161969613665648595880382991787489185570501390141003407167614567198283069142819191806842209985364452323942932457197488284002814303189201505298991035449406998304655906118652545675286376626386015546353830380773267277589919677022637915014042155643994637619110270727774832633528520376579500923634168734261657638498248027039162270488106863124592156290620538320531215765164531817383614632045872256622131852176478059820946604479675437136251772328581962804673767306138365404318818477001717888066548806622537086811280616814007994382751301754186211749231415272425128302353078072180802126404952136292312191192171493763479657711756461743631259133610636001270867306769506523132994270718887717989647558418487063844125696264199727009632376205109947786103109810440879693310540830383776041022608959021001604491343793171885366798609105149829307844943001521738940790030389290799437588851728235686714991580054465500727547271265872120483269068586457744940511804633984600189837659893333456668366028913543368825350095675042910353989986599456306903328723764610785969370792309509162514865833301940347623392841344317440780246009288675304557697018190204408782984715965635029208079946947874838419021973127859553252460537023729073084459159380645061966541879075354685087251300004227083846820942781121740740866482252284311783664036145118087086839477307159552893881275754863219136173836818510129688901211699213999551320545960950874253810102820664058951298313743144605624746188979314005243953973410770133651644462639631756781639071228188296211755248498398434142854621390494516599115229566248664649027430269993384540322751391051123876816950648232487480771769732026282979801130501174778043442075210011695049570782027906704181369407754412178311016783894359255042770542774588190909634719396229317686871994884735084265806861349026996833859929365437435450345675295758226070029151785640124625419877835861979806270049502151120152605521779431843818164174051591859946159188761155371740729935016161693493187516544017241296972948960989141954477013007769193754530801812547498898357619831687781672387314514605124198495151166447481609917999820021602127796869538113010076443915583511063626088511509132981417528482440766445790786501268842176529538063742949147163982448659944834451064449965855682616848055856609785099953772339507741301147985025104508161285728298152731510390847755784957813028587740380114580181138966831063655157878050790803323505067656131311624498321775846640258336498800890598473759504631646345178188742227592120993495970758939655487537157959764403788737633683777864985474708988532388298186800720044517213946210483359343156139423492306417619366056974340727826740953578848250049603023313260295189155888510413160733970806150498752857463461700516412761079159286639515785135597143635470642416618333559171183747068571214990564160589411156316754739990613959009424070606992445894366364617903330739054279881425933637086966551680246562811750980955935906219251034476241582544293947791723426851862831107163962344934140167535183139901472584765537561073738113412803037154618003875961956673947328756464378596896992188543964672611237038457415411037179074073535057720699896902356101053571743748441723445922511275294339350859741305220376961413222741799014615739916650338614967531207943738659203608554799170203468002292653302908472104358704271241555844144778091587115627770663870876152095361970311526791371830043647797698149659806649149240741352051844668926784272409799892690281023374151717523788889423071912927890221533904730726887801118000224494409054300207064611585339582939282861127954092230562111259757407868341425967800604046400686378338537376650440342917207409124911494426942240647719082121510638896236972293631708772520229544576949524678027906719867311413351996672285182641475426741572273823634435598249841802373456064441028142873450380372290920534117233190280885003242217854729758966367908355348886345653465033368673996164205996079051356689403814334656339726422773143564714963785682434061486486511176118357837222210158551551030039323662367686686306160513022168456119793417089546460837382737915767649554277588633430115271689570878157844261826300521282731144472665543589707524286112651187395618912300287880338053435988373949485348006859889642595171072753921848657735559096997440397475114683041171816498946338458526883443792280514236333721314435639156349410486037506253781545430860083849416272515416226187257074997962974117331225753024328940658605831079762364887831403464954763411056472189903607949772528132577699271370684019522782051290363028094404948818904678584248384770282322195450166719336958525673641822246216366906072837011969587585964885801110855424695231896928520191241575711374778380113261813580734416386975648535731548775095259607043929548664076925192392587626021243817365130951291820889429985638282430310824436193388238222348884965617443875380948850700960610913228592981444601285424667579673296498052907627770994254668599657070797079225495753856112328199964054552014459260368737477037730756042296083826251962700648723013995186256799647563865857189371926962466254917536822869209761246824512124414443175809616867785523228745004419944440159746231883752253499894924619123398205300080921040652180619318862384012896505055894564932486663404729492053656934905183983412243836988446221168217370327093476325109529597163471218465954159481458470888824466074381421292255542547532253544345835056297429937806441807761026434475808664823485285103113126948018497229153626127925080284628131914950340770073506125243137761639987931262781843312883002308941561527525197659549541806588325111192991310130635755215246084373812725270871466915986699559309618911568571412718731571733590315042246367702059964433726067516377495675559876648002896826250981905913018822311357350933625776903396110843074358175310759447392446698304726438336642743548178156909431323444657861469852564566407349123414336845441377879975383366900486711925419792999543262975934252676727977836354541905306283682358037948066128412030338252648862140280568001804311182302729651998835456474142266758676197209645508150320638586915167848547314568353522400120201000829078185725533490912390496650627159246934106694840098991546002076340858890313703484425016859974448770121250056910187176239111732083286484475054681049075348581836795748506395736060712818695017336770349505753594497919454682931046558398105006410288140970568291235663201357856721519579755519994052970880972389672776006989885643144268139250156658523266863626209089812482026750335188256966818555326580603062576064916820020859719768559733219187147073463650461544234098200902157961694039357809535154177788934905280845828414854931694273548560200619934028992899085646479605456645591515905802804313769586622401686188252316615630042103195456976132009891783255697405907214506946656874687252234266751848982422497496096562773709538337655614528139580780765061176923434500652505263993263424688047657006285329152591764685349124563105945103455626964410502711047368121300709907540223989064047453670780651134508119590941231962226823543596551252017330801471637068559443880275482530499725459061429766635850634246598399678713685846555413207751164362241824808562146557710016251844492968599626021590359100019527466946228805880088637999645310810270015907273395649515941892341446179774371665475988394523763835055853154484818403541866458021114077021168543972218904429211487303354481987384479971633785813824218249661311830028690023655130570405613728328544913229356082804381216024544175535171763329848217485404168550420172686149644255254640433425889919288101443818531392465376007873197385038618792864798582649070019651634127571675231320426021939040946132846996637030056581723480550161596261333785046108205542964908633897482248822481057158227362829556596323426861088792232932004547377354813429386772996925527150803534177718037867281955279581189656717087398482671573490180068551936837193215879976382316706460462823797531389017504116503223454019097320448356128682541869907020482918304514259615010405273923682841463265812218006981584957906074571476335758542591050580816449318779651534570170461887494696512289703884086924286715673685814349508812487032627902849099533697343630839889206971368806677986011683068788475066253705020281526128620295599862733078119572643956069076977882780836113347894610304339849148241728755855403959875020988044807371714393644374749893651951723958887852037684114731012585756475236308727102648145964463205753626239138601105308402228699082962024868470021699529272677242513898730891204773710712628256544596412729556980250629823880139816655868475097974977791458582153637935261753072895802943438716005669375832658151451957534239167511282582284902450542988957783397564311374383397713546248908498800927181586917904265754474478843319082937225752778890520780420969120291476623046853747547568136642869366004329968071461103961974404777498321027089641549076325732138574351396969700847680983809323537700331567501799473456833473101253192728089572038416037219914596682647689210463297759664392003457875385408242776811833697515930263236190561800341352537707723604093283755514512471702284541790978863266240182602961979281357590127227062191290478236615843784697375085275493130851605756837713973200663355840850894692165913450709008522363261508188025141405689578570607888461716211427186435787812072603517617869994959319884113254138496275165405740720997851118629809080724310558237621753377473096914923499023441053580852326059534779840811517468160406566778945218964585485908024065522473532191693924037564041586408012146470559768009337973537339554683681963670757892442378450110586765516495498548867558017548663833793067290067203690753843342672117774812091415086293134251322648973500606000331949550394854621279076960326965587093342922461176415002456334010682399129679550327045287195423791261420617570878187368165061264898524349511986048352609544644131928513037062779461058422422195904465662295622779277104487297310392262510295998600428483530213593246392492329766499351808088673039571294040379138214688284831828595451952742363257674634246433411456986078302698017926878373446011434391488782839561106058369832458273950591276612869764884693899032783197872280931360208154897508074851747886416168256690350160220891890599624490076132181094250257305776348181880089876057537669057841877033977806308072113815180633299570444399974350369649641511689671083669222825047048403495389382322845929370955092964348457124467630506243918075799181975706348234507363597450742028472530996415386696806566046025349827569976306488314442946979305447712592939808767489876403819347126781656315333507923113487558471420255590688506850185882523969777448227834421691911093701127378047604868799567001026925137690541127782485399005099931206611974342534716438219105725048788570627758748479118555280611763006234342360765467417800850803237454275779412706747094615064723993748522180721893373783191727359347478217726195945591272044403981181489460069142317605493573898877161015947777060821653863584610083066047217190132356135729645394751966816622081922740182496536489211210854694789582692162019809378437170603880587984959245897371335304371183867764595071847190211242460962033109119324253253591945367352470128093225346897358043324748261490658676245227974901806607613180883089538790932755347808191430326330875675920970050125406317122092135420587459711861290224867098986848586435937108844755741313288804993945876415821468133751503603990490648225036889889586486740535880051887819313291378900439102612233496469246278201215508745419898681988479125176851579259639825530928683969174772159572797260326605865990453175182745512578726194432097452854899638017993079811263281352974898267255130901180857796374955625245456479313644461822024180060886692963163003074510479521042372655963388661405267865341523590987206618519087723975263032482429051675613441234220274851806195449050695414850283168185245545903270741471892634475951377662265681225472182505957036699423292898703979368501181003417127479881893711647443145607337282877005752743214163735667046721336826721590579397298774360358001584200084389755597372979660935962082411002417955375844663393632987102589921145074725694768838600763860326397433596624176458856042718526433978760374170850821700057502356087041611337986317765470774982167361654932150454590811177468589363747727852607471453484833063453507040508707439778998747889185604409418061183621461872975207774102157838459950270803597059241839606978148584225140224790205000673683502591582467218357126685602141966960927329529418834382952694767684131124542180701232034143052321494507847210885564142361238591696721295901848046819760021084993228699942823110643046121966681101932351169105960774309464127380004690949843796720791179175718396121220542817268965550009093448070555290465219229419222102613138668008548878467522982150197892762177608330208930895257886727404266399067524121190604210821145470125738049077483184992691917087233907546255646133528396215704580378338761082249504544638384276412553615191646450310308155771215509481174273539311333154521726879860161365318180859554604404143532019383653050549424923542569137988474795989625260612934921170649785507334021712784588163310263618449341159990403722737881696903600071053185638315806035662940389032850528353817449323736564826870657898655927993145265969145403609244921513518495158942152392690360977466698717642224668410507791384317401679801056910258664871612723429347723048981865159062632547182682092986652371056299461716193094058614776538962701894403836095752341820583842791075170034713526703438689453618649598980462560112465626846744823762410764394100817512507488476352285864862383183089269639708725123485845978359657607422305130451175644786692436137998656879766094065757308114290598121661384257082286245366435363074723030890451812619790903264923149412033261438581241057286309731320248806800972396004534804789099078344929452570904673292084122937284133022706471470584361134150760422247322199665508868703429644474283946912342808975566714542050173752530837138032094309779716010036627163237702903027597282868886484169651819427161752754639042591806555717461399209198702254301775197368269013263195139770355556843574452593024633922521338707064015158883882240535983710758852042823378207951688062755122787114331495307702321961924267489892474599420937358096358837483154757723274222027134311142963203970547364142673668789867802065663118599094743027473306807128645016417743051255135691643465173930436611765399695444544562483714584479637722315923402934460155839155182223278264165805150294676909443914603445396716793275312853669962113719602651711461240172798526941718113099439690778193459984407416086437833186728434566970104102316644953853198083867441489459099722669285068305893704154128659965187254490356805912155162617290153886529723496403396713648779061738898573800490835711198833938313882469089008437235415878046637255486285036664984641036289722919482922745666718802718661433120199735555751656558334226048988422894848640669484696236121441893714490081304171032394867782393523056099267620120536562200145589735431281063321564589959149490391996797408523134718120674841741051091405275559634973031060005854835643216518769845327055095585783642251847372524273597097993340066755215562612360814169295161530302162309639109978457690182299357096512492497361362861103553750776772461527080523458359038963874588475079801640529527407671841505007403913856382183196816327642105204809634177403429430607133941415891733842456243212088440281621703833367329781865225989792795362510821659778127855245609682138769494080285018987085287420875073986534807651388113596875429752368618616762807423923402060796977946844182234961188255429899180350753513432939372237994149697152402907206168934508183401181409345636261896908469040807055041618973405249920456050782206615019813198296897254825007563593135290272057030806844141099293970596248198720401872876656804169176741995526023146692180876095843309978525357085333637917555224139225921778396168711180169209919454259884673141462321320375558748347329263260260287745658716424208374840535086469518900299952811326689058621529207146701488910297945777430042718306648129484457297720474440769298822643410400670551140454435470592211191128225713461251830052745627406722063780999828298426018547452374293196231657940409882007002938996068936876576286620168944590528886492647872656733752302012009993419095792466090785826485212975838061848523949201987566334103675289966561234078801175873252541075091417225707303591425867977507079430329647984938445290346141990066930690795061421510919516030409745379694121999970851119848840549154505397264381184704697137885898280033808729904842148260081310058023259890376694780296736548833882093788863302497619370240503408419501809209865151251719160669465927234448472596085908304556727129345152689627155711166341755909522394274618877245664219908391882036879303312798802887428590180787877284485863815143087830994576478249511554039763551632543682558463474823085348962402291679143744554995593310168564589388312959718615024082361780934221852658914822524354952465790147478883392652489974568653142050602258012478437978874206750383883621648205878180369490756104952743813267641397017704257513174994850486766493791252939411910933142678339410311555338660158458363018533731783572883551093200072297008905194036693276465331554046043486862790289110179355762283381316921225080784395561666497141574877199763159924589534109133917166178612343797203717478488314001141298613157112495552692956930814719938731063617929839529161446369708198568555405067903516697239709170451986843403885684073635202523232730765582234106971568623179102898514235239122194547044414390823826232614929664079873727535903482241199881775906923232771690590545722925001658885292245821760980358369016155083587259340126051516112327607063885725343965550321436063209120593536177335658706066258028615737111991856228673513793524112368930793896265242527163658288181996138762218193394997958740267087544200260836023185117591537437836241726761983293553644542820468404577767954147789846858891973749366038467241678727496836930481913833185938903640159519726191865905931222102141868413635489595803286444084824898971075087939115605045319355401795422459557048336982866227499694963779878686114484752310864028805545107516151117434675705420941666288389361665021361270680627598479947150999402817145696601975881318443193833540163830266068368001471370722703202278825502292313278072057386666734193824100306317229469024759539998672772548625738685750481300253078258619381533532136801632074534339196615700600384221839016500963961172807730760175388223011942532774217642372352728259701411589703497117766944905005719703678257858614734990241676477052041153853466127971104635713686780460364156507189906475914170306437302628035105139831494581923322705996177628271164184454731413119950835549727682812496096175315976779740380204846145658519051628018426854513461146633733172350808020534994856166629445449737906065630134360864382193751049749247771142563554530595275541949917947259599165847102772799642981488444290063118661855154908923026143003896150104135266030490037930183028310106949570901074379094609737687607088484401909665343765297482873528424985012257304806839050512394599217025149348311226162925301161276156967545069100554366429136517013691737203097180246139441205846606971410927911482537908394777790926164391663921778995033502591014681615795454556340314777229938235173617450040594767192913331329966790609021877107343000650234061851747699065394977782716245185981805437753675241824470776338693573457736810009144967195962089095307600353804689984816239913764761690446945120695495636698846448294829759083826904577777045979682499369602115501399680617076309312494841026350256149973522629243002285963337836649546225636055389069434811546967670604169287081843306945406172319216081683285040577765918091181407504000703162888154973982624372958279721080497978629077441162943101614552564536585792494221754526776295281373906459571137172880474947139549000827915646917371350934899329059042171626496975743521674782875664686606782387119443349960544489997962702350083463067778354494439163103455547526543583829611946340706890971700511814603430172563372687695385373890431812875178268392983404700090647803518400217687731352491751905551530834526732954811640123147661189235140388589325152346939446248875340407325684797524834224241471568619050855798004007979767646107662843938037435624168984090220538137143930209014335680879146819009878179232429305805070364513761753035461954772502103939164600154930698245181978151015368134864329679733896952733041127769493361061931669668326809315050684751449771092966179762147425793119970660778589417921941300311454868828436666693872233007227550167161477235399865687546642002837767168255479243569597762721254941409863651449716228219948964493478165382011004042845030296862306693143033321287951593700740494768919989877550054355953804206320318236271246810837284748884266412521216026253350382688088265096220689743290410312226916733229361932205883847491374463657443411518332014743202359599608844634882575919475121418915127610382458960483239983278320320112420086904823901002731765197429695186884245082027516446068621733987606781380058958561984397889609410402325529935448962128833884466806442695252419877184911758045148040238615866568197607397607258189788182930920229876290008294487863297137856154249398608638250727279483774227277259532507760776785769016758491556525590325907658364942532081930198072418976383770960353548528225298312619099648529244730157604757672966301415837410129951911099381258784945137449929075374701811821353569301997604098455928205084355943272057235478929950774842782363263755747314926104776194493362589609364840167777568515070445366711097822187974734674127758231509600100933678792872919173420473316922704694305598683051678695029031590422980931724657868355016317319351734078800783209599891042003529160278181662865064042733195937363073769761192528386019698203716577990273419224794820959917613982143113343485475736744990017450767104885738241890863356266080705545428658238814216876614319372556232810210601161990505815413638437131723817463498457684096292991245015498317331129236413940574034644835682936847739328436200905983512615426348764582828171708877968233666995030551831308104956285239877772671037747858651988997901422366865630745197219444485912269588202193411673737516816298660743665360660592348745911526595073046579567889531427583727312802014714078473538646650019467103586839478744603263828634533706798164492627763070192540884150123948773686427379406817440177142641235154376003222078305580715045203080433539343493573250274162782004831253642549458329736962650732994159832358568529394765180523739477512295144650195166972183761600247398888276508849372531396991201533164326460466643703919385574764208425823644042251087641856324855256820199633854411670468296394351864993690743359293978915682827880907947828528328182234703346295626734826875031622078330380789197027950516784479042590531211528099748450512266245622011315532851514727824015853990320247276155339357450173419536747174025837919848809500327297951003237602856528758300778055362079676400296370554948705035393669975566067668684032465651910280496520456897905071715255971073281125139955577653731039229216996443312492009903387487313008064380173435822369478445429162293590483529871771741528232277239368117308979245130030839176288448165387194981389188111975584194181167226481093079777083556063066906252626178766046557506919702722933702237905492843018967940275739219454203430897859731363970411612299754704603072746566969683988813025218994546241797182211273419912229763607408259651827329325881674108713782419682720682566853754741814004193010085348699557947765737563460908077668046375638209578158617901504048233971858637941773685354766594887571563824692073887429069506440468748877694584949322638110038051135457447004178330425758457962562545349286452148891051797880319680814854763494165729301013046163885264819303215047245609043186449397825011960952161376666995864976546403270533572372933818908746727960298557357815367491845956503507317262632246513379688477021820023435507827483632417720167738532604926181172589837403210407553497595973775979207656671764387585645649123530298465046471174217905102346890470737158740333304871883848160634933984393653218900811313224914760791760063165926428820696040402851174098484162430988991200374550318119637332089256476910190302937844115038060901585639569696101699891750409485958165075712187893710306547247881692345385279786488982794391564613435712820449444171794897195375798671816018327697927077549830259257036411077660608913786527071012259375854743466027050400209526308241912167584600405356007162723448450326921934725860082528975811873925883338848120064119505788472562499969770957812454542363455834217717166090313946427420920954866210802585487239383640400910608612792175262583068875950526683047954962352872284472518345453692404105617881863390160011549155420461042746067475206294580153374536891019389708812332171252432289974281098014583427239800821319972741959406144845224706778829098764592011571818918426321945504529505174802884508806708664218511142606440213490490830047577228069264084699635925162536855880844970805241267505030835135618341298731034108195261074667364399660041183298005892555111284126152869282536873385185342180168525559420728594817730384931064389875656532979857405887910442443454509709947904699611105865093129463089582347461262617381496753909255025739618359403059946317443479746708121365336895068393823542626041971703004464008099125361602397708458807988747393883778033634557645481207258525387848878062114604198230651785323692230461926151155802327473041661042155458153861986662914494668337277377356760972056125912195898128382288548867427709735217440350218202843516060097930665188525682639246739989656813977889729743368922107935118031947261152451185570716647739710451853078377948146183858691683645634495189606360589613988579437859509394679285505639843912536695983389303613383928783331732804277405520048565017107000181273129393530556536137432408781060890192377465488858338514707243696804235605842578151493445382546381960606058164469105071989786471274626143893927595250434296781893718254560712486162461260860878598339597343478628556573870318981566099003667610220706759593779639999467908092720674726030633947571158340377629913636907234142721587775465795204418252148967362592455954780125777630011635712443178531627102887697671728714077178639618226576850711535212820484226820826113350277373146923059793712240463475264303728020925205670479409173881032620854439010279731824417958226675677785365793133969792087160352835810655811029166682205285428073147952888130411434495910606519564825934118403984407511272328480428573869761187385214676598902288852421736165481480304297088905075610531222390056140866617389115024306766260506051645151695020368440002385270477587086385367852948552431221485684196887520030596680611337828107877324131049655768241078971991118315461434884375043050134422000951448699525603504001060186041128712185635161034787503318183580399713980999585968282985121246354941835641339566184033982976554198303510153339130101932420362022172927248276961143505545985245513750999617333487183258300375343785899108324975206402085965521618069852581323337390473906158845095659069708140097000724332627377514716581512623650672911776730720604275157033870366378289615348916031391833352525850748414933486376573736892514438918014597772862454704444025509756954360444832165243598002965864467717756522975406668287633642496790604373987449328258424886087508850891343302926945427867937488527002289467790814166014203397468628765182899322966134068947547102264295879131627546444949045900217551179328859382150782589138655123325752828655541613048119493715077887513488178612979638906741152866694678720828236365984112262447796033305831173213073195789308963261778381543372919147595510853351652388931749042956485574514668512050600285101358921440355899325932404802923754084841968255518949703660464105676628604761859398269141626068339713014602264812820379339892235921218143014490752303643591815110723635383536441159827237852866742327328999881455290352860188732862441133043396057123891742411466479025856439396422896966677934192049964208462531207392348934456746134198479621945517233823607940766008726965365279321694353413432938552296870464408626118737458059486272636682827807409970617644469419398500418550186945532629025170086712219737092673684539112494450341297320519622683137266690793262216594817070485464283944455669238992853638185262661688938235007165595613742571829838970508102652674112202254493645847427938023625993341774427894870280742102272368775518212754371573451131532430433266646560168303196535356360279716658935403001595924552490122031477988915104431650605441731403511173800109311747304250650458015334985779442444933071937139692438236483473486682996981648670650012912356029991649080600890386457707823703680418880802894924210068132969118942017302313448019379668357773606189711633152343056663741745470270442023918411961673444889576183470118897492778906881780810903349484044000783965320164490842076539763621923245235443655668503023618607591184460084223187187560496856503732405566241427690274449479683526281310021346089025399817867641650062273200044730596424460678853041086678998498936966480344831578356771053390362395082018342606883716560742857449594376373042503738482064385486630589576690128407380443314630501726029212372280867074382157446751456578413020954493405804662808046399169439032562470976105495121972281202417949539717560330439845039036914495322295630126258179611350829481821627811814475983642010780102391776816380532586171366757112526658934070572811814719234149436023429134079895060571320198687728956878121220684338385965996782295312241008483779314517228570133922148054600833248980404825994688032821344931327789934792691898502596227177652817899619497178768321387653827928021568855912115155778680325776311784621214049055982705554984434700973635377443165682011366471678933951082388480920591589455604866882984609353253381598981464169585875703542403482035084286330367391250973184378664298195141902804635373983701336269513909390518542470979704595872010954847036506312149082064014743635070822401737381073505952846542565061477515809345555241832019258048726576849573043660295174319173346205205720868472345205325031168138909850389829938486756872038900310771581528112297278994682626506655055468854723564224142722648691931842195873627977413820191718689623124415029434573041634575945780380465261229007009630759882327912405125685189830410389994316149002758090590627149858997585927274793296110712380704753262076668141822906944855317804359373961466454143266149703002382517913032471837598823783938061694555463072978729950424156803114558702284624308811090566372433203954235614928216970203991125047797060243069040800196531429368002756690159977918266865791846744079709570946921425618973947829218711413028848663480135706588161168376541358702759050817974638998204570155174468589666892952696698070790601919721407211442501775406098031868617151987879209481192632314223485779686885635444548656127166433972837022480690888339243466564918630458790658483354118316232808631674371321805526462537711604973005968826659641859493494762538897561187464480480295857435160671673136051574393496221851385550049621839856459323368769935251134985699706663147823498533109252600545993758029973764310683393716324692526413422055825844738304696565225317507857471945332019454208896821127271377247534618379081821590034475496688218288246343558286508290864539427200936096604315773368397557279515626336139231932121871498525568634317475694913697577811172836438620524104167402413773888505097739578027023808635046944733425503861948202972955137858606810080023494703367695995420173361784417083376512757106230883318281138826825271641397901801251503513117567044066179048270247170191915056918429506441791195393123383005743710436107646513653349601021746903652763335426302678400795747841998419229734660494071508614926046208538765179855410306965856232626468226957018006290148194928454182964705534701141480554537364638336520260240709307436721373310121822847373172490185949697785423516838853602956163616877203733569665060131013347893839451787874099649103631591454993132855398339148021305126455273903438399208496538089782641734924754790884720561717835755207963803547875356159602132315870917242694572066923540915107028700860400191655684267797969563183506423744760192856771143793110697039565428463586389142030822458916372254417779502501049489323771606151326957137853289630570036516992840962223368452510204830302270795023003982466513501304878531859602979077526855550782497510552369935528765146973667784449932748097477384150757143489862858463130768732172780706196175765511183832354662299892080792795526136556077297131607677476829558046277634149185938567144598435614692570410490918118049809673591998565092369470469543513654566980407317828557803478290044596342602844272879523204248494668615392299268436960361232884257041551917437674497619824628917417698175823071486155158119032898464967020274035625262515497222438035792599040197245173809855554041344093921109067291791801260608891069324063669343467033804177584807415936944509371152690247697409350216295483787692586245660164258896458266165997968526857531132222511960093668182070646386513487401801204215919263161389442465570501784415809184975231173997295501780534290926204663172346311366822260076274104701752063887353837833303738543486947893325425465267236512747265320518362022786769306798345706605193655778310233031709690077494458546006097092735577065330098076019870612612511510003658602901969614514907130092928519277833346659194275441235521488118321506744959629644119333134593422987965722940251987816310671423859075698321721640275637702264511390921315138188930128422786771643344967340293145080525358652284198788842871320019748793238403920039448983965330889775203103247556098009698021103995631754677025154656848638722599752178631075196087890768675027238043140808027501550992400048960788004270248583322223015957071911594457676415251748763964159620809639921328044781788254235945681137909016200516871799086142641128598731791576957656535907735435527223177867596096880165522860618287658329621230470806078936024589668278310054403229792622206650440277020226161130083880022530743844843801454666711011444665440910795362173007087142010622444332475126740838558095301077275376810342897923680230337026965211652371364414840687115070032298921511731639898736948486824172795279448318862181665886130932043427717974252461625616422395359796846759560362117196875086687509574648649881095286403449408180145053522510460028268287563274705760870541669983930718213319369541084043289741702105110014077920814983290171935499540621470826960498946080168672683438754916462144145091476312593490588618535423574000202661597414308606454061033333528953600721964759387625174965181398934833765262137014408869588705543642421935702956687641672389652814229466037718758253191017783137800836825329895349534803690184776104080414282998080868690157490099140406997630657079504733167012872643148010961296601924913702823821221997317975375226024562539498382134336414853603030756414016818728328990123570397348706195301061425606455929416917724183261809533175065361372202665412295343410157872168624131751172254780987039568241479523119689592861910897246433371601017532077603927820658424710741807941033848089201776942050654567779406637511708425395904302129286757612334329684941593426005514226333116835976226138523781425299744361180243613789507530707651510431804249772600195845402525842392511200135785073306050163742706546341343796071118388814205008375506583944218052279964254386094089436957781495637776305917431224095339546220838889728639422156887551236489468366723652679563024974575272407022571335965522724125681810922293038797338884026314281942138531004364939726050827062741891585877525338725571591439697190848001210619818509356891617252801542529668427022616389460980157400654712731696011520339521947345041657475116626074449583834418468572943648610101425086402224852639899450363890318877995509194148997657614243747155214765172899005416406829870280127953615930179045835974755756320739355573787826671483732979428798716237326932432860548736868731196424527089407445868192969046550858714679613815728288246025341388865043945389359185406159737561921302526956744349018191596077322347574603176787303536722405307678933241531202117282679773980641004198360574547843094100771449187983616368788969079275493899531252899860216515100405837725453611404985580883635921713831720889600306446778838399934368133220071419321054860436560702378549313012619270877610021312297407294810584452336776939022181045059433519025694390935846623423428184206280950233740852071016779351956173636366064790586997105701668283874167287283784524181243270840532805888692637678189847437832551247825559734773481461252307880853700869701660549164562026601029502316277132903816468284424021077831528250597751561883142291731375619191275602018105804698794692884250859078024411588991675718014039385048081299167130323887958399823184664184102121377015850088332712486290081467951469273585592997946182904092452661394595914842993320784216680115094911108427336343986216858475224976544209397525808217042425995993815370243395218692890798174210793608989242215711766906994810588855835859391134724976594006003637592299783672039654347382981819554860371513178566849413256943811079850655435282861466904927217899580517849317081031499114632010441694170828265494617775603206430141561117192985447775739339942404434602345369751886790805069436193725352036837603562101378574915695758602213572171361421447275429108941080737729267085241466422466214014322100544405378646170167019262729218220262113412906143553193395719526625571792600945110830492540182074240768544608170262626183244542366180324474197947737494213554509308863833951443182118826648491495368429025881597918339649016608555398891940034492370386303066597142718273371774043250430049973646189048410669823615007334816151256618339338471269394749993743435974579845378286247853172980707666488293828830241482587795767406326162283097891676768248774629465462894028413930476275458582529785035003994092147413692705627282917322851852787510647033967641027074247542625281816647489433182849926359389921411871443586862742815505612111076551291831600583673748920243285182624913174216907879529557328196071635444684241984082877099345617047499170300369134102119176157992802789951887768544624541717510651898833745940314886307839117047689924811756841475450115528753135589359532380983862618342842707049169746359311049734083284593628713829824826113577604106214890372495612795761960161177171319879230751858973658724349242568570021741981250021735614123231308178621982458195894760040424194828214294842448889042270816770716989263763032136090240236053579636355534519458367868102525595669458200088903555833808717863325010638801575051285394869490128890477759724436105046770341611431196359438419800520409076068461409873514092101235415330775845785065553321971953885805732343579897027071394811271454909650445136394332413729357874238325930616751527403924098898968342974422459179078065313424738525469669595910056854868282145088944075038371704458512488498821829050293250031447808822051756789992711408863399262499764284820710673383771870421059799595405885133026723578911492269808073689655742907812657429545908879479034768640954617187871967602105689012170492465006785307077445003771150564295154294750867275251348571746058425868783459146412179337166085460334461820157904605976952447934489052572192032184309640844071672340309118553625734467479582702934028898167372709027121879086853955153145413205629555243248208915856109774653867984921154066398413318149686950058969913393394258969655245047689030485939621734383853845008553274827776138012632825207244951842366329333364640843400008346626326730531314465198028375751136403644094631311107416690385664876731622513485143365463097158000785863040773171498619930801542273709553343758337530095165025265741184497362444496291497744630855217174330594188441849806022696808430412123459763642320560230715503516516383218961479585795981275525339367190266049919718163877841495012570152913736350863162885792341928827391534787821113272388764910160853007697623308229249238003511054003730553443057974040933529625807932143546674621437062199827619060275830568298945762605910522730051840660484137824828125608178438330953418593481186215214903891613368930731002600697025787548830994344742638661864899362615195898556090459500812219953622589106461025539486620399084964548207308038764737262225448559922935129845193132899828597720708727183153445104737627201858010286315197449025649022821732569185945196180452905831966901123116657190050202075528404849976490881293503238831915887319753544235886826128207705663388514784384880652974211703589385694559499349635147394129717059450572387773311123747656770794194051971244623117227648850715957294818638490134235355172390356473035548777565677925575761499460155561466088490180662325454532197802760867057547203134070706129471568710659161320348280639713500593965326506723766180117521528017707249919797104526910760021902610173999269105996336496435510078488532290271550151905443018636709430241182855313999015503023597061378547906632412204065953489043674264423756477108668618827072884750480342254959730930166720692567772950409218254259416994786015514124683907534090652552556053290108372731031324158910332733045486736071215670775408715352249306909568617447202810423880210196012381001590378988403916172104130723880718276377691626820616170310395199293024615861543480428135746393814040565349025100729712678487608174971198923587746032207212687573458703080419786875528056229120892048753896034741109255760565681980613456908543820752853848228005636152467825574661495438137477385046233453506623512419951810137021058695284583652152471655846434974960349190414600747623112605394607376861225053852317511168286034319846141366802754576120947528623193366956927145597837162056044806037957717809728498845698827678166597998119862567523893785194936489157736626249712765920600369940472091652787545120253413928086241442531652057576525578645682359252092533833310840704624829075000138045930370232847771094327406518930530649209154331871804412991484286192829579316026442616088670737804513812899925561212438330309065085340153366578633183651626112906143462892536216501762414283413966223090492754292743839963120671156968390373588125556436990725149862158931931467932769194855441123023608306928495238228017365484056558485702677186615549931985924757646698754346281637592240900858381089443751445147309312987967256979070804587250444639861517010652824272828080426347193203051464328755465338906811872749214017377352287248701337548767044773552154385426813118796335227054654455030024776615448502231688987952580311016870819809303494297724386347878554514134580797293062048559234433927763446159185093626919695600236234013958273330694912727338390628073597523656466082858545520607992521640676279051918401933171313872566534637347732072459120174720326527273802912473631880916170693492580906410838485171932002465065769885498096812781122250266942731679333292364002801141095207948049072169406386848655102482067985005418121572352309668802265677042067702097799913519081918153528074825752425990644735374402582096961881394904179980757390819710645373382375794877308924698175025868119298248407814639798570132997027580497760390064644242606308311785077158171569297521339843363476094113468634599273637186201780550008939757347504524940012785406504931901918481314675149809888890398441189980284136375572262844756487801248178118714929173467457857428640278739813120674058666307076493320510982120950085903923236408383765821685157878089101777465539796549736445205092998890144014067160304676019162392905221630218613631667017952117751859583219614731842235756551349829784471785749836955742369174516542278513211934949570487197220460922588608823832880610159697503321469803194683646880493083110716213653636793049114582672482912734435400953995533325944394990539737536588299178630810136244966053116778488890436331423547695110910910092116129512695272082985296944009604469334059218810731088881596517640572678350200200804641218592706597477516666699057517444090841676287675613372913421560545056995260102515674931770084294050634917274333853495322848071888896486707727561798906458004816261321079473182471667632170867146370514754168708158166981980427671392345239700055469184227323243191011379411950259188596132663312838797588415756181289822951568061706114898782486549878501651039683006045484565455182893852291874850482681252567834939124342194468384500271100420245129902613596131145313664774313788993863921505476604072230454370845152420152100209977938407955932393690474123556404348449006509457412875001444308662169490109758088054540790061740986818058891724757204295760800864074900882708919961016774994954041408140718883279327968018358215362876998067018821593527315572658865839519985738119519586778000985195462479612450189030408551006203239501239991273051233902226253538107966032584758791970975951885314534102537841421947863941877887152390254311690011980222963734265195704442438262981608508701151796629065448366509993145651619769258844570350582804423911059656758483499427730652980710985260883402641799567827848473112311106776975748371953487793613271273268740141816169534477768910498061990915610374618359429839292807451340413292066191638135834453126156962383143597478820423014562402499111515352365865857206700609360902616787499587358463182776911220725197522714897978265727966433622953256609410514865557320177670606750209587443296388044145039916052785723420313407967202706982346361761716264650159068861024243380307776188115365304364532843987336966343291178631889935879608933890314478790787522734476367971312879713497184971684958155333065333100095198172198520764487444103896282373792418066611865890998409509911370907010364796793929830757441644085417153578469349384622098128888060867587713768363149175002709667204923268523575190664997515174113803602692734312342221060986245341192018906699638376968921188813222828531608601364450763311187836980984946159182186258745077059395768323693015670858366211043756367602970797226901983521219931586656917554315044799886632460694767458152852711344367117118999167994057428458134110621229896941757972810657274129388884010241905133863752319726376383558058804428620957563566685470047345023923538574024109717078559309647282620151275856207509238195422732710355665799944363057994307360904802420719769167606390400731232340286276794308812064315465798898380759358074865252616006762655380806215137440450571031106536233158375457947479710944959743843794669673893674854242164339123218664544838714744313327449473814030204134716861260063497111855389671794130793230662751849356218211449360415660709056138656464959164291828808571717021972844861779447114636561405581500975911196575435288439227324796842119786516323613263760429324124581251434245786652802756394192902023370124674718850088030037007507326692486358557099666365709518057785659400986897976298349009954257295203370935468707503802095918537418552689904974828231395766053011864483238589414543005509372038167248387642398124617929780016818090374850794425902398644197099176357152120192183073938915909389949203096136595854255859514457883320906907672465172655915549720121495396142103992360711807768598677932584399944510159551487601454586040429698035593389768014404791016624805211165012237657859012932014346796999801910640608607632317741881763608564335295862004957004824348342412973318119562501644722602755502700499809727968858182590290957112136877142112507567335061341758306614306829098478125216363455247682305368694628945656916570831720019521669334248969098803544101532279679386777677295809687874128334271803146676657176170041053728632284587837749796859120145240121405945849942257840773340560975968945886224235558468190838926580431733166117158466115524134807797604198078181670294771653688918988497692446642877636737490915684794990788479966958362837855771291871586069234783445015562517000280639890442851959532359069840295081840760108072046690663478789133384817913049716753382376341469959376260278794071433518247941352951291957091932104346421117448833644502636311039451991511105055255452495744260288410775793946933309976196290160423119756538863301297408497158826731921635272265876547630852646390444237498826135116613909102869034081492344298341605230074707341495491680128907424195977604157799082883654479946239718395404391593176270429476708218654395726137200447874197267297012042008996845514629465295442821669316132513519620678300723019812457017613540055193474448285545515456251763015902232031660140252991871978169418984333500773294315035818098251979548157371067097411056621208032306970153785631518006993023316106339995282737017915350662098386722449952825686806504735353553697013987288352214688321551169183626445513894289687498065602762440437517134234570348416794082524498917548415759836173296772755184459889615844075433611400449464666271269222430796166771340889724173475176022302949282889026209153191089352953831396483367252538343860977420280376598423591320476467756285497261363251001185873061806405768336880467828027523965466599352574385347469666289432053160368948161315241009702336813198598439114355678065184378876776676500658552752287324455804973958513545542327456519785598127996697924018771156911400345332601768222231964729773609779744739068447712147233494942594051267466131578054885250220993276221746829489578961051861124315215591693461684840417002707039034463873985115273108395469478865040753271446481160333240053828821372534874604169767330021435837266290996025751467548443445219684185391360182097842891249225392276277504215722930106067475441804040932975705264518712248441702249616031947935332179057673896700464497231003060130677422236931097750582690815175435542828174119285619840129712125915423087329712193507021269970071497174237767386320388923007514586727433031363080101346178295797925011087715513772461340335715081965324985716345827138720154588724574253844366373902572481924177196037830566322153354424743959841061576190523192855561664604870043004379592851848269853843626662926853105218496204593389666562058159578794268071639803760451524975474295671621216711735113496235712479323353724716347454311335216623040484608384885327275130116478220070171005169747141950028376088477420903656546863403605764995816552825824000143173668840558618917670184074052332722493042702340340408780443969168937419945560466965642036247564957644139693298943201144892799918330696246150699804744486872323607814378278330876151670498394664548717042599433543500688260920458044661642737682238962005446407976948603528140292191617413562688663043252710624665167985860743121083898855413085746335062900745693395316791715823019123331113987313739210665099356535520576260132832373065090518486541770532868149570985500143501496280821235278056777521686912965998955293966650678507254589959819568799268979752953990461038536561468038412708036226580076208765065000042185937082522862273288526979826730153990739917213036190016412115980821080334361607378546674611942621062879802297193810775567019486954477536183928373693828986741565458734816755092837663116356603016184172983631484058500693924405323682896597953921972460578841543112511041075910110428539266389888595572608909804094988997872206894830134023550028775103278089368779329096401402044333878353990618747097892581951310726612145681283136300604103712338371925445184631246246180544131808460866388065399257734470143124452314205376834416600270397618026907810531353413804494584633670194739592332616764956750528246164764279886632132296461386657929040808811542723030469304867410346855623907439816214694125359113756111457491424658735097831056475244982522067611731257267897842624019459953583423426787805066423413368631507896236348710422121903740142288726572426573788726311327366500544189359850600279953870062424950079831341441217970935736728340177947587401468018456712829519783039294281142262842484389308118084695417044676233993190560126921426747049258903841987999929626034156789738385861131336867449340366789271477685636719339301412502217944672587740305243599335466268430056605713462648631520706106237768125119001208771463325052978030239916397191610284235377683525383031391512217326956725438983024178270250268498345039964448888022734240272317477236851056815317086181761335140470104995335362153259940201629563475417818923421916027963325548505041049985712814053276283346433655753247448183310684071655094057771137946864371577593038627216913733112574100236131219932569918747295896869923572467392874679359651703831714529026073572451557842864463587409024895505451005854879183068837453238172712524550562548124659418076002738119542900463508937107288488621985748020589388729162925121009389535698899284032556697905187788729153080243666254763847527080258755161583766808278542793658831559285985867125141682911916017456511031643049353754218788329507522644439264839658586794067267922807249683937926750875706888923770943570532115682203615623622688145683514058753397369595684054247662924610703588972969017230939282452382491765693067318150522109123731317446355800490474918851105406289712672450812791185945048191902264302621669232430903867719412581228495160046740014438882984497069910060238144187873610024698669852458294633860757212832798557963896474169350766094146786417138744443553065054212984168205716217073010251640798971129305940358018694094367895298009755431075048658583540892916357308177976455441215087455912489396890607609073022437349515273047866366535887489381662513153847523496820330501348413342365474703122549762943923806632446977242794287563271191390813225637444459144844974557003009051996189868930338224479322194165461152434794100385644140524770482604672604311311523832684835066231581459677961764116879096390394616235058449410999221728829524539590070554037050327980234225927135126633910973106107476150752984329665656809967371782197514887962539132644025786974946987190336845019002848060734468310113344316078134589940576436321093700543537885556969322122904623155238175057042417239628603525410035403840328889286939975872885574367794652771426774612952285673862421454056564469204462817289565755960229245241722460246491067362100218076500968198052139888482878845316123792767199810827664180831650401449479170522564873024355631278466275382029076422614452729292509666093901710263227738682659582522261387462820697406373897511453497220374762810011545284653532844266023408289983840077160082779584657431997584827027520286511528556095439527488209022094340870663403178203543743127977063123587044192715516514625052028828343074243545115000927897791621512421428069342711614734084284680328029986401816703322254456189632842115591369695538172076487764451128950538685029510916258746928290810407457898372123463124765918323562766514914838597197343874072364005319821249575808368745343768980979094543029317581164012672463766748836380285275287750242484794349338300055472230862538169103722652186088476511238256534682698059173393215756399958973535729911663977494822900617058073417022812934789162930766411682136302960563478093016293778756808933766039476582549090167025450330928452962676806762385371535066779823844989750062483098527928665537352535720448182681793836094171343801699524041667445692657129712260259567697188056595217686559571724659342807820561997450076839917029771800894468655268201234223857944400446529533241680728186075974069505055021470616253933697036072733002149233305809783334784156640324590109851098596952791976098707311595966963074097886529804499746345545784540335926488523431332388640216109007642560952766497191935798539125159463150849854147485891095894165643857627702078697466196840040934990977743150468152043916243777159540137786676194356984942519877026620769946660263962268870250929862682179622524865019906471686260454416442598154378729852675653837537227329678444303560808031681448448854326641046617826770333541937456180697999473202287818702133247582205174261752962646649256457375243515689436272002754838326247870908242648077265440810570100486260138850245186008117629466076533450642780482129820431158687359180410057794552788386772308439687344928734851190616126541627571668716326056159153225570126879211302007474570701186268799600781882909511341878941426264428273675047593885613153410834965601807257350704395691268461302625751552316845846573525077405546147022217188403971447029932908906959954854344916578832118479161049923902972567573852893018409700522888031553006801598313193457255171346650375994643606027333162201777748520978906429328277268944374629367824373219274627604487563410424454823881842154634779032174280146117308507717462632185159664739559839158395528010211664175679431743529823529289428604590970310451367589468298541732040076001397488720761432235666242929629282058593339341492987081614581385902912595256079626515902588642708963023495483171779805299904337100102873052293214204153159716095369163357592261958877247570658213450098782529767282780356785142114791932400753112999925420058760861481967052207123474066178736111808535359290479262418398651785291675011115614466942469900898482323263781301582383902006314082547116006624091539559854899134303741536707608300259544053877301674038541811423201646072839164873987067854460085323554043296420073198734804325377838906847227638937406046038900708815071985591587506778892258625772571914816583946568368668454947875411270311518834468973556845959173238363869843196706573636823507594311931812084620611050195055262237699439243902736893345069414891852455044007720947063885796692464125375363617480653070407568313599853578427234631342158129535699206684355074407799540172723795031197531865634453759789721216295002620107034812191925437086058172177261059698322286803536139663416916899041076308086686290074806058130196587137238100048841507408656866235709370425691249300744886259640589700233996267653524101473843146843256365137020456379184765658302658427934044359371098321398154588548883733111299099392953034277494166948050077820923304132724697358054988043750444950265477030620360508855626090808439646567376858357412166798937906929578145421722659647669241153153996345800461247102217144064557422917110390582373746961840050366332423125204028655591331821403868484107872591839274236222393431103783008069889070964360835831230367045234027791599876081967588536023914049143767569213533114687225760707445280633869153759500818309508618877427790506072479664363486588311947172033550441128555724025235939375486447818544202668910248625455296880648981452914445915927438373074721375036471594542928439135456277498443925705659351621844743657552678405348584890026326373086233315432253197409027721041813756725275475129232114899986029904778497278217073488989571439835973659526633217333425426312764015075083006661066035918342404417333064360598463501251209781443070105801004431797161213837491749625064036678930839495569069796595680950856860369095878313077284985501924466669194833992994599143574160409095232581345206962970927879170841535818615256369880681157694186133069773446569446846056555560418903069550992231398809938538493147678790525339351700252206793500521749990982199397531695644714317408078018172731762465646145794087660141049823289305981099614163892215721866072286432623531249515816701763261223965428837657464446624147683421223739374369580632901890043794367312371031476351811092733873656357785028417988273069901928937447247493528912236262684286950771262550781538292555440958528222778347571475970483190613880901186526723946275762970038402435242182647432210473988949538567932022968025553282510640504616470917351261089732988657852375256789430734146090323401626342928712371681629503891418173197581974955967870496321125927268878761608308683989880834976901628746513246618309726927028267250859582963883168192568328868706599439802165594755804791279699351168849955090050962047575829142175723824175439570595185252096194568204990646211701670638482520950418580557761164020220721707184842711519745549061180028273750120166508658938793100773569310242954287237721304465248830420097149132184584443373043367824230483819650412570557749798752816422661165926151141556654489871991257954485564362826727772913541904170100634886395914384926241744112831528768166831260517376832420843234958916378507817968130624875609865099888550302619948094478252386414849743327029668515065374204349314664829633504666339754012666270247364337981098740452440719806090752936444189085845942889898334825112786266931322410477767847263772508089791522952233829424520312921178453821254337206186228725730164028473457443681827154399882467914076344160197781291909950931494756192133563271320585530956031326727436229118312665491163121965124445329620802852419876711145984553521032194177915858767619060424352484521897219446409948712494238369794184589679127482910063524770537553982553291168119857065930283825491550296684329753686662551805250756665403612654077005441813271268390716990095538596850246181292869663339452968790159562431857148073497920093409340573792032365674736504740882328400161908155750250424975815973564189265585809228273141111632545695217889717351630178287776823553858833280097326394972152655821820953742410509603016681591099205391568692747267763920566973863380897728826732647246573601774824016326409028904078450309319819733172313650822313400346515591313018607920171100127367301615702907053186008837060562946166289661370628260711597058606590775126915186042000739325353283259221489435147465379521576394233051243252495078113339783954945062048883716955210743229159616301034859380907294310206290596311849021381728877652803875351881940630258332372304226080828482876698615779511624347963617065975652490078923176274410830406268682924936976057044520896221573898311257056623151923058574273900873282561173573965237062543533213740185544260604219220220937867208556247816366004657111832814053802148208808956454300210688538960072661201491787712721234481374291325694753679396071070911631251930824258873872201144043321433711250900295720887159368473733257675229475310741945690485265918690471255308363750787164997801109973040257720689070029124754795776937505878135031134212421034824914726634213128512206597685180659086140267312476849178581929387290686105681281339564717734553215715729144853223466910381374952716103158860571967812973295086531481723926067814671234182191975511344023786397311735902508969453756200191686837661588814168096650893322743666512126053947882750945656870377127286312029400349924512348861701982546116562038927865922917983621065678243282268964626740174436088632472083697474711181258946737131627354298742767358496247547379217166099556401966658474472864120649790266358968643768213503366007726272761025793581420892893848562382392215801950374649549466477136377507858901559688251237915070132856886845862385748611428705831274853863969484444436017088987312912220001700666233966611297900176561448880004901236520631504775178391408034571846599275729691708057669645498159195672974877617236388873802598388000058556852200818317278856415335424258152702330695301303334298974238729480811416428002401473921984114748599576188088105972821631598051160537509431013888154523378422356419954219459476699823036658126885088585260803543053497454947264325984735956356872829177096577191758434852805467310294568329542586029084180509789574888469991498009755576892203113107900443915111115933584857124364002509899790231859714795135360030845544086930848115533376105718000165042737034270610515661215723223597939472955936686821378386622347967263538210731229334852934701819980766149700219984769918911211407248810876006392072608522895029240518712637028702784913864374279344451736181332272861485861859754404730858196888600967973377333013828642257478463193831975987302667097733004336137753745431544373398871184706456789478685003343953041188157789054092598736752624970335294108218772293221682104028351308449372191480240161617804755346201685337329218151260955646449662829378307530283049887979671290611810697255468468433917772390129052167824100493724413654151309168829172476415415138355986911889339062343348577723732371039582291617101108759984394398338701913537070683687512793960156775059621179219753098273045739409747662084303712307580529095813332488516925723223435539084181730106178473735026601233013822087129099593188575136062263327652965416985284262923363953842564584518443910637296664560751306100454266052849960025763153420883481114750421585426962030862028438171602904120538520727186298311291839425586569416282704737532181287871339708705945026741220943876805569095585181258425340945704741830227340552989116540605599411711606695639892116608339677248358308776959246738850762694589303752807763985951637144481166296275512085886373909579557623873217757580728354134845838840543916982358962002586338614851010953674714871425512018888196405541934883668738053362146100784398711246593691258998258740053883308056159658241909845233958122840718866470007041309655406606583858684944901249685415311045227099435203765083511312423665378028365157440154530542602169094250978377960316296554669507110918169281752075785150173552778424845174890778819688173834554062638626289326686741725186417801975888144862540196596925185032875409604766839237586265481578489010265656764521108155411856335221443360414486538904506401540339793779440452988220409754736025491161095660542665534287867375108653259416257308353583101550749576527444760661359933489451499784806782010335822127348229677560605938153094086001388701834933965476636316383248467349826957577850005136574312450185689326838218270808237840593056464819173165665877634622620076970604623669615074574917909611646374279177256349466312120928898472760824729881273454565920869504991452648967054194948106564211376054791687137225830829909912235390825140066468163827288473616300296021496994076540622269357793563587737109757944369840926875153632087178587424698101503645257415591776158650486247137291747799818212741197315023308979944886471490095610944837861281190045091916470494405542809186966672494018897111082027652598635273037963852518950271769018916195379637800241073743494773216146470032709310989061385204799141104931461442516953096229101372215352188320947203750831441372731282662055005966471063389061282409357335070552461530071909550094762197800555726524431142958566332535333421578487279427511477020714389094952039242190598250661003984091405535394569887589218327984985968574945265386002577397083353798944141754673664924444520173676836720172835286201677052934961697487890808124790720656769458476621416595354550678913751981175969090121168002448840531608390632131723616605700201632938470299833140849255566158992594542248566483650146892303846612397032359829841588032150496648470489967416394552397425202637702110667283790378888441940569050705007576433789123045946101097041205791928425471193517941643536308615245558513984853464498326335979666298535199455585729114156333877690192840520672227068468582803823879245825050859840019040284057920959360555876787430739520369613645339107100175644571409465029099937898358351629114958727058049537133428146811786968473433637739257178183692785544484965491774390695781362543088841499388035565234128152400938893831621204466184978600027046507969322970984405430246744089331155812897493382808140492996993828595476516325529205047038067576556974752957678408370834321917889916971256025339384066432529671400897334700397364773589613153502932222468969089383083182736032621508850185013412420374925201040145499791727657655874394042703342058137545422534744768469413229922559277372388562625027470909498246610580896472913222067533690563968389225400131563770994211607660074029758040612210952006507486293829246906020131114582904162583806964750037681222230745926572699340507521385043804547260115149314753083362439007412791859953164740464047216656949701692520809593366142156057183892541412125751451288251439150440012018447055281426293993973965803622679902141300909529425477813584838220935105604583237593361461309053436104419028098526631450483601945695683820319222922423574798926146179675133283989302584657679516842320849884818002878387837813924980885117177041801349858950924932676779615839761994730469647791582893134382682539184992952268386873386639493254569656562125259195092032617249855610450717674131168959252564822652422816805978172444956066891847405328651521164964115895942410058963133479410447078239361102715868832618682241244021389383914685672335833230976273450078835094164045382532865521992489929484941424043651819288080710181360642781683115833936646639677593170436161792642716080677241328279120324446499302822907011659812204792564924084706951545603897350222925164588788995682273649070027014932442555462436579173606810127164824467171717823841398285744994329081063371705276685120246915450777732367303121139751618938897577713516400244035806242285652020917369342604896873067818002121281588414747091198199769051853340443331717122070022991002632902946563564344683485136442892778365703116922217208840149856020154955482137042532587842945842934708950328047898118120140626361279181028255596821716657539505192204596894538312863023881222062331249903138066209675725580156815989330144622082249826172875626012073418763793583034498387861790179546130207385167874279946945893374910552588131172553255655185681937821657562415238200193000651677738740682385461173667051930518485982422852214010737781302201576249537230710238677667205226048401956084963972215564030608091238339464720252039318095966563954166362194520396060406478206691268505523984880175569071802782426015128033303460787614317192054878455665885181319718319735690530776648339860543087208798025641138914904961279213345640388747285021489892798530363941916708214686191681807671149957422698003684080331835511519661078844882386331059847795242526142120796309524666957305884921358111163825247458434742400595996428763883874881426065271275568174556991630673815868463453094881672884028693025041344622011573318917054519623966840065166544881024373199312407934612801524739270998209948092019654472942263136648149200526142287667166377592022636444790533259668836026162574705198286057918289004688563510140470846491330886161043010037950086984514591605916885613085132265022864582207435686722330222163709780937881124017532126999420770101997965733572402986543458794276242276560256587033651928556599247917070905029562871742315235039436736879364094027189288377822369434693838471452164767503785803661607680046287957343425959467998842178341433138918247694861820647372560882459154802400596087424904046918907172866142362128338562216872655656751833395620449455371331915445713187389410728153222887670078705532354338495130672778251148473865719779232017362303243195576216998216859833056129742758874940655288326894723361898382024898525727664808383611554269919721980035283735506403835543918249080620018602524086876037504944104361252964119461075627909303198015833206324932786622211900959631434166043231569550962562271425886779974257032091537914728403210896578231079568472973660562662604620638451806847593117961062295538399371611431838918619660784504185996456174657006199660255919313011666382504574229736161132698760265806317415555556731821696814275018680652087250484500536385425800138751741923330265228789363788499023164109133110363612829927524224133765943196956940251757164066050630324860459272731036844255536281831414704851496649492063773406417840341262995161939131091875899550175405465453521797907624792296257723262078086685979313414891983809380119905148860020816553061858161080480500607071957629401182367359369482454394611324919579538364164955399861176362417150718408073481373379597760149477725592366573668882807121247395206862957513281703184880562606080834549971707563505438226232600495192887859105588803688457694801204405223558655171400983586748922496907076070608982130326306774933546505648145984609937014603316579482165240379935092777195571258749593591044944282457970642110728383808994498456915171567387595401686808815123004343000002210253177035514946046948985399302214905375705368825990344782645098633139224108957401402630513294388289684919525624939767253022341226252630707763920943976232696405823977214369917219365407533621054281982809030982102449644973171797091271402299720852729715301070251351528918810029362969598362327642099182105612456612623878345859959890518757081608377540668059809762042119535569245970768895255087987703605894100341312855967138160893510412930691179682820289627442787194003550942538596879113174353288895538329139442300441409818549252417020296558624586108906686490841911856333070415114029047767314671044898203492955508230286073144444909819718775826042987274555605073658969278580658448032734429155944846352285085686359522622148583796227414440283717702171664173880342259549382192258801582201786602560955986598692957412714394912890713995873729056623348162422790402245515049719909313239891471314881731375717790021254437550916387183100288250264355860537353654826781801085319980178064997110505039827595316005673711964499070041081538844384176309894356005941533650616191567683021258699732681624101472718493594531177970373636511730034712143890011260480570285249999729115117752065130812422567067771381113572160106969586565090331565898656251731874572314450175222564592448690174316393972482281849868517061934932724659556277949266633022514064837810404567103441160634510720036383215127048828421567555816085323707284140939550120738041582161231560369945908816087987501441574436709490176861232541262574670905849048200919397931110160239960034525849446181031404390907918260933324122934079527479518684513277129014639791743892524864134577609333975578541154543293212454412300239695132529299006998990593963588643943988874041964678121644705501451383468549483252580403451662221550464257867442853124917975194973809507824252725623429232905585930784146885161575448522486962800456543539290424699136984010923798982659733749316412068933557843944305194289429852429002065073186361443398936240909220155237927988306386973936814345547989835717211023679216926154461530544862030749630999294883498585668716833036097714078175085520590276539512968472776233867823829819187406702990362575508752919681635672356717556656393132249248166319197426683899271967116784634063060564649873325482346839424913282915599848218103892187716246535267637392201315927945525114214935568172150843715270235651579905379399432264611259806328664364623416561246481174820522607191942649900711581188409135647097193584078928471365341212064050179958083957562073003669230992245685565890522011362644989580979615887815527948157803118515689432919430886328186799208406864704465870975853479788922361476010590151528876212126724910571235144122004378503622403806646884299227392181372500780992755833306524607112733527563336102814908033593766927181068719359502614144776902836561960706993301671613291940583903226735946509001192803649507842953574557816775775560645579586013911298535916602173720345139159416888062476429715742184190674924577927893526300898574756624855456292488505136090932834861518897976449872321768322047306664491358346023038575340518223860605264142795052071628622427053336059364458258385021700089487462147135846456594838539929826463584685348723118536214984385682746900230355021614924882876822155943558328136717715980470870377827920403631486885078213808100184248009062115065504476980127559662980317920664411364717923852528047179119329065428223479525760586758278946448060578994860403582084317537654150939162882296758253114595826819904005465791748716486958962009915529820373455899009624415807285515729353001421481314029108584055287328095768997773359804671985470641912962743616760914540849432660324495663133518706411826616854432311669283288156033986426334112291389634901248149287747652268050941040630615047050409314958934051340695144800025800123540441775304133681566527629757017285556356058058091081108164424633428927733996457978691933792932000156233136343501141365080516105891953580744437813052979215606392686565699100495193364824902249970180883621062655225826479199009182292466424945648037364302969393102037603751292240997849751108219967944225721769232080299476476624586207933176151571610308283039043167085479617023149980184635550382845357637905607661780918940202364600297945754244804448731459632564601412999427023166921151555155217760223742351371401652737106647212792565638195198221018974049995919927170951138061285454931137021400435670619323918277235620697599243784380418521914071892956647451175402859583533692138909308821898427023885738845678322949139973667264356229907705901996857067263938548255363425803982420917001670513117332141162049637958337799665724083955435962313878243775552118809415058485081346716478877678559033111646858641690939854355344670185850978272653752590046495090066404227359216506660872612400481922338657768846059044334453440668243721485291329407281518532006686025932812050176435964937966217980784569638194033127794413124935745298130932497104294618887481447555292524458752278979329377809762571930017244036454829373190784278949983374803586059521797953143067509016885392882339552956792532819043091431715018884120021202521311817625320213599207201800333824563076802047101948137662294054034096368531050441343869840120813435567302549872370103741635695163679414145595998720157340989762839430061465995605621019756278442493495160757103315032416928392403811558431597446020077845572867665539473379562735309600124019033455885398498243026355288831848584285651725647074835468558799915974137302068996259697028072125308824473446171247032075046879654602499235621043752238696081060261048324257524082578292903576284536710412317467322647489732472033327126899489781371343008274711105939560409533892393269332961650154006161504729839972125885692459469809345190570152863714577270109718285470639741549691143794623143018967514306476426767757164197759042403884954133619285150540406897862045264555410074239731944614636531064942383208038036147593175615046286180396396135489396866446863283247700036820734247905867753710567218812013262742924012700459375336769654486047212456991233160294944933888423991270040810590086762561215866486999374077759197919874332575712146110574489011391836150684122340967755598257880107730331162676459086331875585862226011824929818956448824231619525174157295966338620020830464778802065521409323320683175597659478838315085274702578912561314808899458144290278737044128639720925284375303674042132817879054013135101787041915014628796484367468431441759986831172342657870132895750079470577017880030319695489510215715728014062328444913859015362233106341204995775774437240088138123444831455493091331800054214534733651954490619657642547552366164789299472311017567279703043894151761274993976805388022205618673409332140650306397288256421231990444851761684544260382410695109862492916225581916015196198077559836971440514239391729614678330177423307558929262372720258468053451370282825956611503005044364116635367000333469787526543244128169685467942429444332468487437105630272874269580719969316564661765737733379455806268721747974822536671049136218422504159912243088908501741718853658382349682298062175061549825073486194997175123431665196081082820903893584810980624010712034190508773921114098834250589528063593794379735440373757332059276242923147278852349422373452900414574507124493519582966673827898653236956757992157928684424850360745449613362734742963715151640407762330389010379045450666558695173700183198269993487887712456320891924152824668514914661964719673998627447395641846522360028037690345182200752770607647867552483974837297470317262294884507341734199248148664262407100859801084380326813797596964863129810728203468769805949797433296345779083656064361509707581390472298579573034801944269844405509356955405341014589813550194963921123659778746870448156431908195014438352339187793930428265874536209499001964792117925383883642923197720068588470223761693272255560247279893978521579572776939474039251954262282545371619947841263693056485049212983163713698724603501527159959283792544297488040104255418498326397449469674028103991346707069765950203287619556234010774924800766849405523558816672972348298808096342329514411722083360349501700210899078739606622643545468279422951799097234301281198316311346447334244084679815445938115188517082599846402401978729352720609713308992382931448121936036592662528074383793987883836635807077536211923439365534732924403118502012968596373780740847620230979388183804184264851098322627811680231115507724439174489264193754288286809918354088706224260403592234729500021901459931881220451888792189287801902170950194276122315863603680368866120129886760789832057623886501723729993540805706092478584439983629109342297814941976553286373212830242320919600887482142357165066093079215800023000244223625522705827457235361697780176318123040281374331444256414330220863662067811675100526009507306772001737681816049142936584935473125770068927375608359809842921036060076462724197554244760994631172107692732348598339943680678210617824615909541079316177938865684082552791419352809575454159128007811202978485611774777654699912158254968937769788023720534588725890639839694486839307949252297469363333369798946099221596289718298971952740126457818340841021900659546802174865868014979707274903754646311411010482998844176258892168442642528721464384335613772701593658630263859656562385187302584285465468986114779675381167055339231027850795218741058446928274233507298959187858968298843850427354740824761920207418745790601895619521429803329002836557258282336911186427327720179829002175479799193559292437166087813377080638145780915864416742389210923214954158778369432416531592510997030936684230097991191972334265198824909623856884310533383638621192285346064677394265312916703686465521722188795092846311920458347190609002104682106568242991558886622769652635806514417994347055637184138565922942001114072294686272640639641323245183909665539179936948941689945905571277834918807614906527262500620357107758487305128753190133247466003021984557757011109751758728368587367855757921086775124141090473983314659160125547099104672668338087240058757824515340426279364613548187666505579029801639983001931958599878558429843784189036227959393843152994429280247173778353498879944237454367677207922108424653955727698871993721650495452156060315019533702779816947109502641619810185028716446265872455127567964357406429475590091467380035306308773346244583311324913077148478287790777991399707549787963977582737460807366599724929846231974979332583685897753997587905532369055058150315390495429096594630875395437802616646349192109991151840727146447373186061752336290365717803601164901423562095835155101009835803999463726970393590303764699308886064428669413176778314918127290483149185524432749812740515099267140545721720988840933295829602415956906327381039368298506149259059302581166394340647828707317112792605463541082044478055139118835782252042037124764306693869320109474487093302118067166960834790076498174412733486309533632051690865314778988723958165157639629207832887429273220100283602279215798856608770183936509196836828665159997351378632076991420488175712414732667179054453511185042633225344277847604868681460493606397641304966998394543896801500232870933582709073057986969262940948905128771441866492111235890507707207916840270277358880767977541656560504503974310443407032350338774166181208488707988666548570658394565003753208730439956662056765013252619212885288013209405863415546509397519751648580845387269338114171103979321478955201697961609045431284533687221718070490623755360818977534040843426018370804824047333193510491735409794969457345578627592900764814040893785476266498757852879214170901064253522206739351954842246948150478094996923834463660900829163142343154901116236326101161800842080726276842870194194626952417544924876349005063738756220483100368586918725342530560077451617325630399522304401304294991952018678513603482742066567835584624499651001964311331761312478386694642748039585985814980414894661493665704808525693460439465418862754418787471299717093234318332745771613746390562887920185422240728537788033168995171025893307998214919308625193974914068848184058212841175934526684992074489510213437157961350579906807475977778257797543287037567714873014931057633817862235037222342048049994474597134225638522556582597373431515848082531074045317364158749353124219520531212737340513710381693421219738937105190227420295082099363144778518570211600343435691013749617384840278240427262197011573676634651303620250551511508581522959010683909682831241123696911457473111631901647212237551823346845698970149276825850149834549005007718650127087652323524303220831684036188023256829633486827295462316274972596622866113988999926983517347274161430088598837114484050198300928250307283283487077313536259674204220909556476753101286685984678245438004931997426007018172049796786908218951797907755614566432049919297889425946577892583673630584186954168623293044939883419294061402818541143059108217410174502442067273712353237042475782182137732761589523119524594591419102955472248755333141508013435092678004424649307245899689678419965996010242616579928720552023604742689831734780666178700908884642217297182295239906639665368997055080772411308270482288294901735921191775152454876347150981462349106042670661348147755919422100243714526311685792512729356904024725183495685974381110917103495305865463666894960024639391949071375386879104757056611050430836176756041682347192193238845160952957303879751446819970572009566750894318203026436350473270035568792249886069083311957316809382340875054310531820634578002187933130145827061521017889505256341090943844674129006528784767044259076524328045658891576078113081143798303912503043884872663339402512472662524613792858742042772791724537408734375321196739105824024375722471578640079663242745312874562991464306399957084135740551100623120389847301844224922403073331485660632872981177626893531375742962414205262569814426246867085418891566211042114993256596921397463802717186909505702720964318212193600865400152224264489255147492617602649357970046594253247804497615287962420363692444028463520618744859647156755598444752620087967437707136161371814895601360172831073535905142438720313972908353097484879652290880021462780404000006688405932662212048572523277639617525963802547543737167155232394432069491338794668198392034891275647928591330928076791953688143024642908194405566593114839542947742571245719819869617860372373604631424831315977057533395649013813865853809001681025671512958097455159704774597360621809829581361773146048852578688207485505788804661360209357837923181768246718127201047997990383491656625362057447209067718694303502873218451492362184650761147081805067808628705087089797706114860997798029392764831711556795436028446776312059194400627884451196948500331992663110590850220534721471673651437454840592276418746123244870178862964499334835930494422623249140465956606789610158055706111893908346301936489873159330196392697174653345489449307962514920780284321594878328756432356495846793539487163385647738379451315186655427241494068554462990292183841473125192914491045984313062144401159143612183461271685907904124085248355344087071266501490117257566152367493927229665166488061517833151941420058503426209279893512293639252255807430449853494717113233061036293250427342700968277795092111006323388383774825037174383027526717389207998691684800883066429277941447990854814142450982592537618208217548726412535222926936641347067150331841750662331209057676705498833360185453639180947264277762879713556098628347303265706271156114095447371620790329153576511932032587138788527523993805228371050413464510511515494693828441647091534816330257595577881607246176781026233764725179842380129703590974789286977468529826337715837353900222210334505547640048832704794438942236531430662304968604859948447554672562217589571130371937415637599309183871900794018579471978372282403232663741248146986830623992911448681368674318108517829488755304585022179962002286450727969218988981895180396581380053234332914092616693828726821127274498674495729834599969102051783947481372646040953793692295488937159237841327841724072015725418905020805360654998654090186289277177655854396831164166442517270357812143242752833705611760065482039046853692741364748268424872128907733550631584075013503578266255435513134016681888937729052606741618123634638316939154218000935543170988191821350234483467852450770271577080188332912706408535198080025011584904861952311882956638911906794991760426965186350722443042835098657898142653671490722499607602963254881687537861846654717598948539587465086547074147873496518128136968297312694170625678720232804643607239593482363119197566754022333930835026228444771743138593453087236575585735716287552591432828770261867662309835980034502753884754102437177198711999768088269874406454752350780388655317240700002198462522523149196800639751491128149104056419109565467928567032936375508939227939315922827485133699162696088654931914816197679855562244499805441161772449041161506996413911620383626958972837245806124795383895221406487810551386873280935859550707357022043938081154742393356504614176684084799020152995331063546172564625681264348327892788283300871592772850219831248456089885091497584719615862712111325894167151345517642515258637770985096703403311733237307241277874523605437510287218503926355955849213274552129581218652837276238373805713467685604274285999512764259584685471437365067637457513466808807601595287994755218169739604358600336936544873019081129475508717413346922106323840978225786974978357408487988090115466098783032094757212579890724806863309699942549409318773605713220600767992725520650244081372203359763414731785734321587831841508451427824572428989659205131926387441772877000474914404797808282573588204075157833050292683211132071426312625789637455229397626314851925210958757797159650229086125938273326316019607102139794710982191458192784111895510793144767384617008668130828674330552647060152328172913806044775825142334032253839478064997691231707871561969783554023650666522556938680531187732959469334726082699312639235681032754458874437913378311080233005730370448015183171538785003945329529426121401193419672572550549563724766232974249101676478018459227519974921554245787563066185316354622664206089622535388518670943774399815603915104351872050119736861246486172807749915664512989622897509103843493679870816767838965011670800735697168701770355132495893814452498104251753920029929290157671646329650313049107323869453121027737231753119434464314762864543955013705368687410360448546481708087974389732798524588577926869738325314170522932672927182320239627016666443073744210718221452372355055220718721395656105363454348473322821805257942093261689067178989733885716913322222476928044168108558403465577054429343919267513474999141206332851684056881531947675862579204812392768229768068805457830807714643506012377874156814972394527819655819799032263728432347131201164204452219043205161352967814098996909836985813570841900638616964108417429233227678370499565084102507429045431878747061711999741383992694893706591169072021948719376712087769331793051978159532429780095293389405420194805401301923565298613982208934039783536280173983366993507503079674686311523683055401328958107403979410061514494077209308164068469940998892823738494638239842430055818335659551347849827452436144975092183067674848093067841213201682829838863422676324708403315113912513993277092776531059058066626346108524648284489889502434811720881795116279618455353492009754717932276686006681941578181197327977646435599544989524587611848663981290216250381942473769774327371155863470388420913575895059114066913529111354489445847867133142837831392989384314738598312800889915863693560572550854371890238722452341963409172949559439352405970049007295258647436158561094968890320983006400317240701737346579784335572183117276757863414964983251966512100919102193719591919214319807262621771587278821163218788028993765146133869324994248359045974469296879883780503922742385422875069900280012475060029032353287557537241844195040052061016340013966686281144535147710083393356260348620136808536184049694614413072063444395005896484562532010685718584196191367342569249050007572480148111189351994012117303174360504773594288005743895464891674908725062092092515696073360663106610898305398486067189156969246709409056034297829384332518587058466166963329681370682204044216267464728303489861081339648170660295796700067493086463757017129849291663885781028396038921050954391549992936589118653566138079088123297773059588306976118221001125184671866663526565184315839660531179208981018867836020459071968813140424518707820467700996044229469963605104934568055082500639254795071188502262709582287581191343945866964329677645677462950565370734094090773860949148821725762914768555142508941506885680664982983089412034132552567124631638043962717412220082069315767552563277464262790646532514960041650044159494792525700122174063213528015171978213685852289842328279411980005624754878744511070272357124670699512657420000037294927682044546865804648143963141906540139856831245046754416438387252285540230744833645833984271608977623170001688308263237788653889285976694675852674486903040988436870531981335037648573802808546055073100110739613949408114604069825801268018107540807859964930926585630117642676312298410006260953649936651819148454052394615240616175090742370247430982156371942208598571788839553830420795482014901720770346638448959978613894964646519114074007644937513279272259175829937109073792733259059322496948691367559350440014335266326867308554151023182488512656098033458822913257697108730722766286963751322897292875347383157252357535345977916370397116125663052792129228334320088200044686089077264454273643926844048622429282896014718874674433454274889690915539112732642367466379292562908755711956587499714833269187158606636354887917688141501137565967955789092765483146539786599243096243154619174645162845652972124697239919071814408737668033033838194074665842162000028274530727299596146109530233928110061276839408495411316547312108265127238195108476341567197108451609869440541425647181319084937773814719131427581974118177200976578997770513819426653129578615478828230931656814839750590765720129990107198294269376951381443346381825510123965465614787250159890805058005847334389214305977200214775994422495295378095722150813473299811787926541181893180392084293498508190743029380831181669155223285730900065726587633377774321221305876167884945358679472988760318194216794631318760548919483136086469947326911210116429461524516018274169045176075771688861609909361659697262028633374809229288324637097336509486923539866759283575250055822317825018645509664727687274098800769865348460514590642543059711845801977780927908903424758361804478789454335784745724342537714024310069157384035202143441310378667525754722383330121255967575672890165212320905541230857406793116166460821299488219660641015986480741429280378434045185198014753424746105929816993703792170838397458749378521387196873729959541718148395885428516769791404186103545105573211965275105792912072920270412453631832675034481682559614840188694271439325456802768568252184811342938093175570632064496299639573904631529221065706938984725329104879272714314433818276148507531917507710578518296273727290717304044685896339518316485523011312575717750139618357769729077579853742210877280935634215357855112500185974757035603122960447074310626034252323708029791328637477554554593094667380258658442835402388321093661022881937293113297812937352226736778186415958749395872063658153093233988991166749824604535894379275684601557016701374456346230837720478718236123022707617072745668709553691823794868834974398285475232817754385050833404701305642941653264686304142575985200432409693644654399751003324356292178584856239903991854905311368342892947054940581781627537081045045342606116432830909245052887791759161806973901382494680510653666735598390216963824314326653268131784834935831207011131682857355754046925385968956690288295989883191141474821788473976533536587083206145400602389882895108792274661301925956680043360812302677767527786242610620600618559878708270915637124475795052099588883359247153162690790212472313815253124130599524651876836739858799379840794743627736006243719957955230652652214280892696019620352144754939099694718679627705939416956459992270069051966928167209328804804634806469607181802660996742245947482077973725693967264008697380146770072810562703671807137302516640655454411234491106399925482400976810816610884659794339285403632144409798450869269078849589211513183622260077153952989822537466077479292395137297019257497629212181848221616495583295532450653213960945140600535104613077350151206688698438138832458843150760962774733013669625493911347793044782054224033780862761549124904451520689442894405572312471617865771532020965768148512024454407445026149680551280626404643455278058756637027228340746558801211355750806165471686174381677088163675288452768297430394819884968555959145888662993619772556212075061305958484491753857706548842651374462338755495965247016250330009497189674791537532745502695582930774853453822318040719722914610547537015701774064254465897064502991504358882575560444050740166985842436639074035045751773232944947764930658304760480920318138819047861390134570997798998378915454205566491928734440352741578548623570706457368811359476152681683235995265489264724439001564828228431147573395290410534233756247445707349877731923091626255643984401137080576167379065984496107929698387407217161348488850919997769113313381132531757398704579520753887812628852219654564431649237588274557917113605068027729885722468414387502908844521283358461723836509666833906662507752147152586477623414442227745437106608095018450630708880416511987899978991204718291460177735693406194794192132617804175060748764918407415778340479827179520121028665403325749746766013900715987340102648209684961870946404041407882808700179425276165987534359413251373942552503491802830741882162385405412075027372940861103747795062451892460537985227466749538885922471647720027924411077777539263529141930089716089837634599267753660503703554697152125963761042120921489436963746866347941156592733909997455483555209093298541445316125619941002516796784651469020304292089177957123820237317259511227867471722931781652202584931530159733770095522172753905910481474556879250208287868863465021796245982997684488028938252637221631914044632833579176208781186264279580838680128210830826179547628101344663749647315306615789451164488180122663022165726953134856807738486906634394281794893906873449235657058473496530381853999662643137620007207497511726089745590783902523091056180304772177617681542703461941950373108942930246121429808685898118487177894387055429713373516555259177393840956070549097066817593322910416787741634374388011752923728939094974175155237204998132662145310134231120350026266161037912146077964670388407642072287838647195177392489284659953143460333317642312915766481704990963936895436021534908744889744064178647869476681712269294203346819927934799742348294037650017790497827444680602633640579367394791566496326595444751475351588714097948097701751783612177462863135581277590825707455646551704523357260888896214722708611647308921524654696081022938798029901472484010182221923892502477084381397331096329536944633114337583942392484264771936603126773134395247296618855389998421127683307727272597291047083572488871854638169115781472701045504813530480638696521461100274548400868659113036930750180133938308146108322002713940639877048791430974605054376043129908817323670106705961551053792809714512386115272820208636667754228081749738477932654947454506051898689053235980769664014195813713265689567782565594236420804165088117096404349775100657428717991468894648814603142424894611825806361680935247663007523684352292471325975495116037313798720905939186666271904572571561389441782621526711158237718995150664827269029405800213009849608652786962694642235462104220309609724552948438221821881896594383055988934665159905762263401557352666119556400347665145904175243872567011866030093728575829483988740096871878234003133492964941672760795401266355152368187331388264846516114522465524071410564481446204613583018269496019542203948212214229503107771236870221513547481152395591809249353669798004221083587822625181080504548436537121814445077370659248184561754126195231059370525801600831900773247967053945365196631250713920414692032614584253884655541080698472875386557045246049536493944720590838677205121247393711817420502441370055073943614800521571100685227936198099649444550700955999567689746503905345670612197570079342785121646071287997395154115577722921221017777765459823395746092228909716806239898647668733757057268777976910607398651653865266258561907551630455016439597376375558866139030206684512669857181533052845493751096225741531649417897005441622066774586065975319570008703649392431533115450345035921752177175571515497638848951449897530836164178175936630970472384117748487458450549763331306899850422229548621404996266668752111832683002275152590318896123184013907487188714373797123060838562692837171863009684886180291376730674199689040030469268555735393721278539562336626148944367456143134126726319176090903143269889488964342058032409670689337983120242490667747837600458346263870935405098080365945105123680230910863262735081321348396571282242694980784977539610068776184097385883164332913423038052689626267176022656793027356226212085819634026529803737098251543524178331082661573457266439122470031510952791359136912376595701687020130197392399236589333387134203668607814147442171820793649793716455146957883380891105444415750612710210454325432339666608214297624980169005627993337274692436889937453400636642203584272714592851837620272288274417352682804072032009680234829689305519948735005498731425272584765845147113258818004699674102075088673737044954682325383917063460114198627049573424335100641832291307755976881893498007539975949398434768718763619753482222043432495885836668401339436892137783095829150452039189991227606534659303683824913533611173675188036446810262140781537616810135233347252839115105848207165647690433317940459841182873306228852279060666805069094023696492129075878174367565739416796680761829864436944128034739955641630814910342632707267426428250020233643070411403719816229226867425121457001283259853471252638982698741163003452809071393024412595819541829397429869884133568824709339236227155956622387242347323104956331236355715214615996966730508668125697269527261349925268536066951868901967171918476581772417644640406864127005352092313295455855551412419654515038038789999597838797134956734124068664983114934930643076202516574758001773743982513788686409340239961645532603313141262482950411432070182164323577096579552317494172820460814535359974033090411589237295322649673059069460127745081361856300922192310355975713480687892583543468495526385633494207204532435811385944512638055501244139380768559706850209135429232214234929965185463466891955941233710461200798525147287579589347323001180229458242353402427266337565807511594636388809911170782524603952943914146330824967814492676000952794978059123249373005352737942609793264048508630327003843838002944541364526444092919569517674208642851738818078357345451884793341124141743864479801622611297529368432623575066304455715001291010802088448419268968526191893905830944603157293959338203745172243263827240564190505533727261229011575488353209465990762123515177022632512264999088069957084189579528526165161246482247752889991912180625371815763117090934449145417830716606705090662056589131371822136741688395962218258097537053998148129203956502522422052877059909765109096551693317823974130805010508130499913683867253060294169115632241567609772344234820235403269399905765062954312795295078459709871707812142443071635745535351535973820008127770881888616133611105138798309230290753027338641978675573634814723809362312790313791058836885838674417249489168524475189568879448317222531961518693622566339544754420861473952371804865179453153684267746253092714415368898185318436989064365926801044635502448947074670575688008221248395912794016643346756881358577527153421190106005526540319949274644108744123408237923826746061112526778917511521496884762091843243991404377625438615451158907967143267462077463517781573563377187924110968134510952906934452381294085080268659655438040318115010420109712283031412386750295180859594903678877158987222533045245247594256308970327350886694950785046083869250447603200583441523274733434275550517854993384453214528442084736863632311543705549705455021556842462731048446923347715454287578422837522482223756930915536711927664376406102942096217105308141679954646490782705294995579170453285528506564518747263397072042609158870697539081015322762238688206621498209587828401693611997174104380700174842551927494309225828087564857148569339257043139585910296551790293572644503300026398424059452362202928531116374364189204591976395830334572341946025953030896077513228596427246020182654695601010420350242870191440837144770894554153971274871517127617163180075483517149229444086060291087343860207250705457608055300994207456888009617755681508881784483712556673529549339807100229949686226807613235699587570166560277182333235187369766339635651283769294289829312994394631276856778950576112293127974498048958396766159631391845582191257161856391244961071706497333239241667131772920225068907233131441862886285579129796027407682048822541569813257317203001324174174114951337408161097044172321535429855443356656400390418263795157327334742644785923812140841491815561327416835225898131085674136874388100920883519491763479532473003572975765934710943104916138727925423989342759153296909904315103685513641250688983914891663914958560437416153402202502627348022596214494951073887278232477636832470676201486665406967608139107905010811908805865735399972246256468246769437677685682600388115668753068265335294769239539383633498596752523814536487327241718512473979519109030046029007846314661115112226102477692548692356424001935782712415683170407129945545458588135772201332057672677069320557234751342115117128184011523841063585569152829359795093157712444883543552090093278170062950492752808588543138703726070081868638824340825391261534398304626636358100917837705238450729753699383502227630880552368480444822860099474349820345951716473154793087914493568672011422987209748575915832096765032402355912212800947194309229346960387196735293846327271186850941580282425880694398412467514883157991555859515929825666720395263619940575114240678722339073393376517665459947148241799642109809325440084899799647878065922394056678867257720100247321410504348160022062373963891438194417566253091873897314484996447612303542652462055723574133063468841850811455761862676176331940765120918158446421945801121810594748271510161128085832965910390890813440400101166078936631568156039416053143063429309530140849653729511923228155112003298464230800044121087973690507625834804472404541118682426477639380128970258621803571355270423775546307393139267172725435011058461397042226259177090249152801025559291377456930508519094045450832971988021283653467425965959532215353516784192865259148339566217834345495600142223878274332183357922907499994466861081940282818556583366379274717347216156412410202650862658296602691074688776350763555018580064774738009705714227731638878705330742543049222819578259284608245898222835649704587846997860800261699474423990734323362635683820976135008620084185838393499877508474054399793681048009552897180562373930521886034615715284918157692543929903789158794027772335359624199029400926697027763484101959463209783792684985553900000460632823822983263674284606024421782319610555465075877359400965545975540568974149097260260253019598949024234284377753316692282388365192604115093640426636469248570558408648707474344357207876630717226352221104358564333808907735802423869048702735473796898130735764815353303911718092738423529221451982133116994797628542031212542455897134480364211855622371043454829138054332831434687122476657214292657218085194448409118892024666240251339001048429219780508618581866941315131442160701266187714740379211479145142882611992747287010555615721250493706076191467345461687523521440233883589149509880021284576960532056396357403530027743682316051705096279481070877403509879542145581439118988644417559813634827334954696013314867273397259099031607714971076672717302372076414737167454195636090964728022557233538768092066826547187090123991747880402006868165635362275877222351214639617264839272482179925949974766343722856058745195719746223904881371560000937038879649312169723821797819522560346600598379154186007382650449901804049685414174138853260530136004516292509628389459317234359698454716225988246994525722678912689979880307830651125126719864160773810495980502466075089234983383925224113495583235988555468391312778675932195835757208264287241426840367417786438991216416286699103965716666110084119637387714305694793598847412220499112213197291364860146148195669595209088084946283638662636559802591378949407691155140913727298594840905551617354263172333618036331886813196456968793392185554037373326693250430281984947352840987872539047777927420538094792158854397833506721867874195461025154863854804384040801323310759273068499844361104546817730718075419650510640360139055051723064043000422886135140103204574877616918471002369202519122896858636881818136215905330421143633770812269724320506577945370786255050436105131325660068663267973124247916719505264477170473024576142401061836496384070247787404303620584298963718418396645174273518921234318365262447919850527142666324601177493799772362965861760207332741932026919184391235150391048558675510485473823262265392622333334410636473617533637338745901150228668064038427362999697031416208019032749487900254622882875766511100493725451875096687746226888083314136310019843528081852863387674595652509265140453718548836553087997823263565540444008181346507279249276449500954251707826657952692325322575834795612621666706865877653197924560326888424001276117711064579027339467783005503115184770493891581698997545865376861776907991900694508431298764201515227184776578997786916691668542126685870557660648940039918862672440775249513350645322287590657717708129002352237860757746024496208508742254657579912454978778969361901633435174893224760029918293251408923912700195167924788229213631895742183305504074313197664929296653802332717580515765924469412492091146548611493878345828985710616540366369814697429208063775598226738160724761492314935951024940611228910890478323604892767806710115301101944246168641302836313743870379173245806540719858939041909697411378664647746582206039290993381666911475124337617254866651938734524331079299346288472139490116429926026884273605425756655465803342484083057522898576985863339415468742382063461994940899801742942325604520501650005035845075471155683383099652048645606352281441235702055130923038838709179066937375979718768440741949096156493195923214811730233987688790918054356256238302824697807538766401021162549780965653907178578027562263995205861827800057389664231330163692700422663486532599616651483582820665521103482250455203798953889043360969531595978591809771489387562355323359447697308784113003211608627302286202508356782069454355934969312173595102895615644342944486641916246701017270577831028753208721165593299790569772352248625370668804694266990832783654569983497941279041714251724701226478370830048134884924208545303380197785988266640148773736201929669830682964557756016084234236056850337067702497235853095690717177928190865930142193302624911239174394052515979356634665766833995971074705794654333884869086611129519364822288974728524143297761584470037309117803142929648403704802784805660875456026584962197017520226033196455439012494006243153296660953174977895684904358457474545886026719472307726690921724365901347443517533045250633609869869846034124576762306535710416475263245600998734285380611425347936151879695846010256387385242236487112782472379656741812416530027460744829934077950920341714688282661255980808429357413864491019724069174283187736564677957645599961121143714799265599888224364932194559170178150481369934749915008114094885661133641168897018285661855845083228995246591924964804130731450379544772383996091444481792690173320808159591283060990870506944321187019298245099453366346514951341711726910849122089735644803313926260809676526450150976072167494584578828670457784510852256215402194949286673559175123096655334832222446065006098598497404179435506965504043561205961422455661701058497909016703721840380571574755221163210860582232659059719305819338490147374629955263036888603659038796520030107103566528353354623668278180026834657752570868214323983734832192468997858792802390559415979901852061507370741555705955964133628273578191616127751753946396691557547014173292139142992516174039811775150432268313253614078883359650504195678147338964514299895952448888066353516446351707937113439693434031258017640704717403833887206076143693344255380614252421578894269611403489303360210497363085137093229113200747496129487773698480181875819257549478117844915369592932029353471438206818052394881222719948119071158273822848317880305620057700932796185035732132861761921341389325750190525385118368479355346032364326612273010744700013586994228236132564466777264508813609695613796208478445459700271530834303067913594609938323646089230733154451976607038639747310683590067943400551791847140288430834180824154634616924730724641446250483730532618004464365662925691765520386805952133401507862128406865294978423430512210923436372062444574661611951967805147352490451507547472647909122390253630583479768394435581454976865142110704048222336675962540337180654878018647807951532612249231952630786160506071217098587692986169405312417632133708419915332794849896727234138730171055921600733808770084135342181144898370534999950595519403198781224579967726446490965034225910951721764643586059611825699026094729201136095973393451210830551561744805991889420840118283792472676021943078366371189799779714460285986085751759029903974065004937772056468936997798216523381868075410449244561729143632850585579124252685355360623660235591420079644812130884006067347944836548256628380499097477980870008271125237795424263201984594415061088900769247216216756058101747848938576844547737378779066854823344615055248333986935655855618004812642168573866975210651623819034994421601715871658350465626107740860685831033217967079799756035721486219023145454360254912614261114702817119481963283472860528416640452254027811166222389732196541377712277282319210113543210809977984540699628724416007283108969348622750209502634487154268066992139998995207648220237113509262529795508238567911566213575331040683578145921000949323393625623612855611559595072795271615947221772096053928187059344944936185219498983057264057923240380455890143350823933834132004258391526181348105931375359843620291608685855311805282862714518409936414876862005343370462486116667677271239185338984137863428964686614827866754805388146519984846646208980534876830565444855623118279968000365123199533951984967567337671938618104184579877446686566253849691042308996474392619483580236739185426985538212988884311382914630435483555498812576942175835753036367533095278614086662516173978307818092128758838892089395860303030202897135881047788448799974940002643805621518781722010750424904872194056244283272651246039302464203213379320109529211331714686934527150542896776396881481852243315225632843102451554735186355004766488307070832259915734580698086962735160357421703923051470284134152457812081359900681757196582728531427416835299990845702144082032641001224360158711304402314211356663942234196212990844241384138424141814517572868608529194677584405056890194327242356573640695715747007727641987711510238748492152946183840266886177770107644648329162059142475298418708053575418899787794740893760163843171058764890809588157691857896081161823727504428658087581539815902268764589852420158436985305506315626635377417617082534051751443892150093303355820425692493761594542165392574781986935989946275009697483211094446256828169136480338230802778084480061209862845212331120682151949794113368872843276337423626941228899596317029238788061609364110805357608876236473249023209478730725119513543632478644065558561192012803941650646855940454753840960230190923982581705581090766823909065242686507760361102200436477024311300466343721747430958283976525695192025238213775385894052583480136432952395471814066602079159968201577085413176489420916187709907108729444498944950042656627564189476122354698708056916208242677704869726161199991308442597681614280497995746834252693564968584790679044452193343725356309276334866400587674524478941742997657673075995247075647712463240499617951659251027954172004051109999004422156844480761602021530318812469192785550127757284285758867557462369457152796785818888963215071691422177206442395158796956095206530590130942139592695501140403855916692645299312175239543403735424929169484609435127969668757980673369140357680543611780723615384798725122069632643691940111642711642176524046094817167487636121287737487608005391813934708544566308950841830453834538916605213484076282676633956828331146257723803038527799132875603497832981323092453850789062082705914018790372476431959894991413539727809235687900943750863899420076209847330885481676788673632504149083784569424159875184565222000088932965687549015572285031454833425911044951725916301574725440303183152183438499633682656077431937258124685727223777775655794577573985886662466671746058426817544650402431564352334306172244391606246107897347816232050793851756228311715643946705173829483541248555297021722912262986414554250098339806037643584520388290438097164441978959397989835555149426265526529193156990167093954201974238141690029601069100693578993261303242807116119780964278984774603302632632509932547369239853787280490363066985727149128215098346764808227113282035094908785235065852008102090991157291712017560655913779148215510595243890810755909164511200046375718686786355564997216860794725852252870139650448029830969457016082805338135645090718192957838504797289433459247971113832563348587837423289448006461955830598006395088955115490991601771223135239530884672966862279955611988155632132197160589842498801244002391717680841053611737575228097685384853508121835602139386290001005569434535636204428203527227509671867386456674114940498562685360483055619832785996996148364183433871710403007276515272998072726386780405775913672962711502596188006333196333808305041397590814614094106251853910879754269299643514443958620328326946885271278739810441412807605986412767264948254644486476662246188763278003804781041613674304223447463954907890896203220234299751444696799771273694705775626947344817100236852808035493423618767823896250153088579968313411606893362361841982983583985070703776388659273104313847600264436829873540603893516589062172606408805424818997985488940019356667583327165750412180042895371909754172864136918336363220258447851027699726118390917379205532518528726162255811357023015995534793603550714165202541894868874341529085513841585280399070873808705132498207907980231010020877554586149366420162673487910723948054676562784996828741768404102201668226877047384518986591307898249641644099142806410025497859656889310230072170956923480158353884864633117417770732525678583970667218244280496783403507016544224344015069264427541995599293416310996253019839829750864857508677326014467782738835628687418357016879687333582920300508766874682400203644005139470093261692539839874608443649321593100496661350475428957822414950711460742250252997608818617495026927956095779418202567959325163801167023334172725452084760519476240685533605527799805527542187299835119153355632795061283536416006694089721627362977428741612722058838774129106946288716481775804287413065138330040007829941015489850498483877946266077700773102435105895345198286705018302512114183517018124139765877979639481125225855187169481520060427663575761660144345602796741992819169051683600209428221744410525862557791345850517872979870382445089487933113256855408260525416194954922563382101782335298557690871356116785571280442335563101456099350862599144901297720689109176859796863524892026001688285432883951283026666197138023235466600705928135308353906181490416310010038985408329086063734892734229696473290469930650033421963460690107429894805998389270725153819318389206232840272457119602210557731434544607346116770166229369636777819097827925888154435020010179195798906281809413533222205578103188627485549744421325005786627334004452077371466259945807027696064992387577845808976813729982557871656091652600080515474765646058567103432995538968690817129516186678696763544434311553411947372487166694591981877233781355225109308132188631949665427441476029707766377869275248346196460031997921797439020903106293761713906078490495808254785211547390044599544358269191254798546453828754343321900525706996221988375200136031173717551210141225559425532410906883270395699836275569045153122715026754929909737839970801187362654203002344232463673729132352365761073416285631929725332429809173079845620738829838347150216918756904585527691387768516047197126080622030598644687410658296278632577300362711551428667862580368104540363211712592018060754878326285833340169598895123802318368034433427774536501223543987946047560689474302395292721573523269504433087752091852569747453845298795431025630762075603162743146898085145378815266546402366404245370382560722531327412878161332971896567849025129236500180348902126853242349861859230013243105882074829103193198273419109043693577204136095764038718914804879694628300555385745480345032900120794014115325695950460701274953421722566224158953579337926928443477205240823008219014135073842008927711599783158202672908094867797235672016989890836962561309155415435237521103321690810641527385886455576506821711727545357825758229050727534050962056632292218972075423526231733963376674313390162794158722310132969795923994243007618237820269518352103415253587559527622597612181143773301252252972875043685425642763664662059953712550465648507002818306029382379668541943785898697732345202534126922002090514141949161282893958276423639495620494069469839368330376740640390279443449794698869801412926483989426389816826738950077487770215015288416409580658056622554615600493490746302087240758183666261672175035920298012213772064913209804592218869865943164207344015001872896938931797920148938632776289248564026673293542322796328438659483391558961936584315694594704089318244102987556098987764630893160679480737162276863385783257385039348069883488080124292174860704134583408459396267777549551117653820406299046726026272358080345912387072425344949845009049236855623357095429230333166226413248238335339036438961744926381360581948213596215223647684779325667397882889933927401256809072923390074624954310412516156895449699544457751403228424888759104272527142498003170385528177423535703537637094555347030215274984362242834545793491812258170730623938642063554099759618328622035423620986803824701519210352849290650843823698593860399403949928356276501089641226155580084642649092929074122066515134618825892257428523723236699405388895700327928226235321082976782223230506156800846221230350302791466049104408625428056279721727212324755988651160458436371822354827174394545661730097023701951732395782757396389817328884916607989643306231907826768167127862423480090595146113611331077841893091933017164555178591137646533700851941179493841174777475406932105214656166892127856082984241205939506318273108680385803947498794084622211654110883839267175959150468202274589591173028373603358776997344514355093701096970587136140892695877657042112005766017271663104069617409172735644862272219486589593253287321975230000246702557700370441571811581630328315076855647199204484200038084740383578472641027726849622448830304797325614752205305679118242028189099388824816426960374961228343644769265312446326817749934127541252325171855889007679695358764753949858346284693042935828806112122419837656765271865776772058786415816488979856008388790710724441778977209664691186962485026292301077301173636547019839405603421148155830840422058975798565053648255169387973617105102941975516759296960633635087554835086095287622646003609425224505427028605709017099348538937049293686838318627192550999802116751964069814342290400374742806835014476639085664305422547310762450714190459925681324901077560259745875148642300841298406106773747801682923628072800753648377086609430687978897947647775796787578548267670495045753781613504738343251101167365701403463543355849528158882229249711113413665075157868345813273856330336826574735425474840374750908766406325773564980453139973706797369850247634295587625388078507403751742419301254169729150423712388419878096104761877024328409167348351163724696977763917752663101934234445420096106710232639174720871374909733400083270121457766685546021390916761772548247722714797744261197662713670148743018901470217030584881866324933971170404395183508336376142714884507786676197647546302548950394242752870979165527627353036487810237277053909721158375888171861773542847939433121506558771971429037175053211587480490722970757935071175210197534319815884448890353552600079395108411737832138733583157304556533371802822421939078797378088341116600791110537630499620259118786054506698388647621018498270142247610060997668015865070506721637783894019931809819790327120332201084621786956682439072111137123068882127351759060230204585423567746603441712008247852234828777977073237724157877421468859964415241297178853903164724466135881023049497520317464723792130593426445075290794386400586158914950205032074920168809582143477308995911718490009485865244589446475657352573075870638097081932602699567480880943046700753948413056637705027231216932950909639768403098244676538925040925173175696358271593282012616129019287920111991204157838511906286488272033017629664857000112936096456939418882320362634168821662642407305644012903584458813112094706167696953475159127118305940395193540689695535280489221239097166568431642970846595057856503140110143877595617183836823092235613089119647232751330966557650723052279901210264051115575696184610416213901126889459506411963454454704080105257029416852205273892360630999441737716459234191025990304459221291252606973907403891209522300773869177719684259950397809977253139884659076278940813441306624506987136871457365009966744706638381620605094358264808974437174183595989464900029342393176783334381465479873487774576076167981612475842500095116003748032919877261148065867273172010410502660659158899829603904609058939844344551886403733355910623446915087578441831727035787033212103854175599365465357805739857177160827189364759710400590264437637581133519109893375274462538891944786171558455089304248415953080898761995974705154044109379141938554948783552967434247595820500047861387622242927839776584168014602608392513216344842072860410118680574331753239882899493734725186826007677815849744425648679893273418163446113313526215079922865497559844014663003874432791687636336985784619306911656846490192071797594309004162830611867101381305592942455869715087918290487714359523805953945215372107345862993615224477878344560763632054358495764400968557022825619014409154357116313232997645845187294499400509828875013687065807395161509185853679678902618671906980596214271776499373775248942513698334283685012416328156228613668517552178544540680328376410961750299474048565663182282869405528652874763464006489602067234764895739009082718114828871956181756210320345072328454816450181227503775683524325586453095562514936036610853763250574470461415826310596033482396606085175753419173819625219381185995855311517186641377118773613656708797545833137411143745217157943356635373395021152363154649432334655651884493185068993379512056661345227676025117305394960846203104888420563800740194175866869326129747352605382779962324513001099751643491505031622756986790459892836444150976105409018027654103064987142981932184185355417953948117040373039730543682387557481839206111205831113274698590128997655316459733187036871671371119699336970723625420615068327583564054917846038515578923318973126144709746535704381209045116040167888874113598350939980999810634482994222969899061202729497379278075006050503868034865711745627673144980983797358708511010921283506088001176953947348595516784530118767245043524508886439559014075636077321179045565296954259060674026172194325123882174588364134119916209873869688919779706192832719436799448732960877420983413621407394059762103383064023665681252806640264109347820379628325524921642096881231686940193554967133140045586675761693900606070702054612059021785300873727859369383112401545574613576907819204287797324295676063677228767922479429470981597570031093412621059213255394687017653487581252913898640992634903897001197836281301050583278592207299915105236977999289004678787930482053366642941783965991179794304411172734155022431337519817136577179537586136127036102989039113597345841848794322469501456874834829182173265407644422424916911428742302991327153995387770225634217775440976668993821196054535488329600556957827389373477756740460207710139096245510691301658018968490639896824588467391441999064869102203763271696771022854216186102817803425630181794508294221622209624987207326679764669460464045763859762904579057039180758242993662125804871574850431853868444449708952428753209237338209838466515761205974977976517511546291843603009184327691339552018915246774133662867926936555225885944942842286999433729130353082289195626367487579769831974355655705555016143962754012727215827237743557498940620010986943504292214332729356302953288841050352055494114824009872309024040793647673980833341716007612930933434875703096643916549904866772414802159449055536711863031754246549966500208584148781759207413121584911362633551263133961200522486386239016953024730512177218141799175631588697117943161590265627548850594626201368528917484022473242807171132139162808552880049961039873683019673315599062478345770302048444951025411464678877745683069381503503463219416402852600457213747519999820162611705362355734478629833643127368340890446993169370263216885611213957318706125238848194669959593307589736191953674290531847621390057405881966213424730214954678680834442209058570043160316561885654327480448947410641977720224292449965130013585601663666445927454147758105001019394220077495171866864332290460111195593160559241393847314729580996790063314292874669001174180350211227499799517101058056511324374505593474992427114116677971810172065483336818015123516289426883554762275702766627824099142702276671977137838104699946200734120527205083802396179813613171677481098923216163695300769850634045310609481215634820696278048981953206509530601928260241875341723159759142029225220922478279175005139243040739511107873007805488019277465061924167455547222162705804811532943303287859080655265294230378154711870875548828933442981310044824397237518204887987626602478136725846127597829040543479385121668030351046453095107550501745234983912434892183688999039694912954748928273216127771593000528762127094889775015839672729348989650592341776362027122579413979155743056719038368136458664022412635524533919767419511526379314029145436295702101876421514614201018041599113868552591719398648643144526103057030455717757173488120824078480878604753473219793541982126936239639173374385730204078316946823162612010738939260101170302375957473627554060794312538624592330491950734410485274993159508376492339775570304907544114330265098606677376800039954347611197264318232125084099642885017180174685721278340863978900187917682505300543040241935356034395253919124666492545692590465982103209120531325680148302714995596997539341890380481289667601090069944885296444107408713452355908045287312733388265447786652091024906636977808816860168194629621691363296893994908567616916715541283524723130794799043284108756465501830434115674779917259924921674957033053447890727698071274051441925975262720226575827867804021374105172950204780631545658197251691300137657165509250448913470090861821576479501678558089672582048263361060676418291263815861938353842472822234289841883866185341840659079420559367936534986918259569821141625949533680692909184778771490030311047034726247058188152375359557468579597842021651975135138081966215755126952283325768628194971805214909259767335294694410755061653861498595098487057260181831149060534075538367646792023099418390072386198494008405706890199386652218359827746865996479109818865241294151793142624887666708153125177659622308524006256422602806172581296113953607952681034816388071966418323104197251353743153017928277948707167759582422493252671101636226727570032585098534060536357853583291390289833069050213500467829567701507433255048852913835615743775498267066191566177950776752746250133420103761040380265603484831631727716130317579161930226077051889973694124421134549805084234695856525101904710450909350867599208011093242344416257348484278219129849580921010759904424488120643223610600524281855889970184689945898422828382341720192860413378510009706881271773397638495670896016038619987156660945163567689394696729473368796274598193309524799594981931179339827008919566561995657812603743414746483411055273032598403789404131717935937828194622708963126919888807576751378592981924005983056348261447886052393436441304865448984252376159987748486462168789067614063582875820492569296153683159768942107323104014645999716859584586284526057694971179545879848028764578542112561138521738059554441145551129461119649255121921371940026959533778021705958198458502490966058270512488746980280222002227642974996671382800390594073760788584929880521378688298186860673275495614045149965692123167601527021417423049980510094474257145569184356541249508437444513011997425766960931537686002751432895843770056941068120201251487774677033010390687354925991172052190773661140077897172732510808894653108062456348274097699396256765109891987881144927229028416165601360698134505206166349269892911085357042275405570608130446917667427472844089882299467504411495282176657027782680729221163945609376187101737053971696853536101027401537120067080053709603790117369707466918886966037248539635466333780175190103863328827182410879371307478689644139813159472146480743454777495377166396638277592096161749236332443224554013627270567598161543218969474902064415948887114968356905846575922322403629606206706870515413939676179702384785892305498603999116957760159875885834464743677299302458949050249038124168467459287997655690320139182786921975461456452215550493172644448787842044172006458158834918711881480472670075773877070548768517822035456486608487719637412598652727361647562047810883055990221204600833724322779710012405007890578397184303015046652778678966173166694394718936844978329753210276819167219862141377075285636121506095623569097433781024198170631538341921742270199368531974037933721896114845150109695777178058175260620611471182948196801339398462528330550065836718822365173642588186867152498488354454159381575643692100201679941656843601041426916095441127294779888799867502540577061080052416741466612389610732388173907946912055231985580355161950994052342393273104113535291459989191205500261373396974880444324984673932921920660999235798985861463717536959761239591735481700442626351968054506612570483790516815488465473539877312817130552626585795741516683769092655159644092386313707068787303256066468886282266066616241136139159148641051368337626724685680218225570233258977708081845240630739750509812625621886632057298574693854470734650365813548496023275159897444086605874552559296034558291761752990827836314679654491162622828533236345897339539522573673095129802939111800342444823023605204515433956182121141410175497353590270461346023498511442224343623797316300015315749113194604650887224738551276012745445491230759303278365262542741047291844631683746613271845376751954437936688812772597925655313182034042251945794321194881632558903828755395823971462191675941650414831356973043851986885440210113283587061990257442334969423979710509692556857359012795634608176420781851604561725636535294346208053993956196317910289232849013731031668123205132945232219479453899654733655140652877517703135828511377103791629624520422571357428222333949604430721088814638988263683006471656517370919635595093275513964235087855652107200746077516533245393878978084318724948409998937159757083074745464977046199036263627582628031912401805071267981846123752333850334190826158229506783448864657365963573639380306058882586810259147547584764620814665123307918880502344255668793445425448807343474362806477864079429157947031532112516890502074988991849099073990859666288083215679288238201179028286227631110641079332032283675944521960322336740394271183025865941597215937839755119016685634981316073762321569569640356698117603564825222312411772855709430266178006796093222486752051875603662494556006366594077117729626022203475370136670969371373724999067413011340617994018035704950784372767960969834670846057592678350346092510769300592731438184220905288694633295442215682005152632946864528494444306124173461363553435879797118937559996711815270344632264563876488529161677978504934860543942324678855948234276842394886521255708129659786438386811154084766719077401087738256330704981071164571222842337515337612549869940359520155604549321629958195545898545309370901463742086382596932932778283870051453767103115294007979546883449148986900753681273665062604137206587356098408653210015596719773447373429348978607260473060155945233874403645428810155354934178013905249427920981966239896416631206787354638504070878004887460724026090685972257152558614195871968841751559362396120600402921199304685260614525968670714845450933002243415644255427638183929699251585281223702330716824669162613075128245269325716171435913444802608983821317511708870381330481583914311935160219698386123102969993207373110282239909773912165654573277152769046158379995540356956577723336244244763143295219772270411436078560071451874353159175206928196782535479247725786340443766634953562084265215295401455747207693240604559924556816127733722641828126625619512532085526800856263741361857945469807452108853179608293461772679811532292803121023545851583987612155192817819528201201486197965151837624629200147098601004138599647252020880322502847010807378226504376401461829790840422952109134287795050487448872820175861679148337640818282481078030104349668022479353425048071818499053988751876136951649361178423853020027069688507895827096516717051779683257069841514495364535056755796533185499305862485605768063324030999756330742127837834277270873871261441760790716504975081886452659364417330600990276841665705724451906224519910750569717103369434328882114750359237808227378638849363423078081198797087377994837108605535516662871613875181645673068661585728535976285042982456716563221077015398553883820195739817557385542833929608341832311407096804983013153741280974054144598285261449393423107342458227965093702274875063588056496440708179453320446376226883715728860128414310020163515972813667415593094601461944598146991729226029556570069615276852126746490216361878168042738537327227725319247150528700882607543464797914684831999392560380768721991534393828633481031631893835030262957109547678373315760714786235869532356868127273350340001756109003313070582689398550735996657901331080354224037309793648329520211600046181917724172206749832892988394352095229540274116183167039287237758693472584642054068494396325757606908936730292890146534304601046137730013491966495219894274126343910407970370921103502979210716606619132842809815255511124237192534944296092933095090594091271891166852000716797261813380772254968452250363332711119453836614250138412335958500851974087203822607069218599011329411241246384231252427924576789835056683068723703976481987805494438271017972040420343674658744086975341400204509377384822985723285603297575592472096426936099189296365307704604335946309155670246561500182669166454221284076164688705898551628901077689044874819768147264383453642507295339232087556167262603200345430565386109063267469302345632697397194018174188828563959866628188132761314312006334628898138796059975206863126818302674494928181850758401078961978492356876912984991756869785649891124033171873298218699644151297570732846822159620038228077664732041435233874475075601663942937419482434902567677805327851213328683357451706755714027077560791867194563666950333514765114541324294079512976356446071538586125905418891142607954793697059348690231194967772551068399771406888333020052584537179811965820657630008465891547426421234427012295602281761597898312797872386291904305530367406956312790986717146840023046846598072857476596540811223127908738213471629164563661241914875915506456444454995381286884646211723286871340063014948741895742507498509858274712989542035666461797003136440150682160207706290933161237729261226347860582163684994068440497027736124769841535167715711433875664706544396892228610016435935006218560446066411399782268930659594918819952232377409591372822042143722782394675104261634313679503396797684389796295006413280226645015176327412002774970695694025625362464440855771533851405689744696255689112285559607313085233071548173454919779682314859906398170444204978388949384720953727786858089266959535304750821866213571670485556509023205557934065181098888174648188609609012020241222767062223613736229669989775761753737154990857982201186979405546940831361450610749956228270693940848602857334079094113127098218795683880813660526839440687932599446386472286699412508302566821487936038432417799277735076771629479244647865681455739781019436022797265710136092062889628679970886571077922574799374078523541301505960446305483630750961333067461172436858097149992336915002208099107480015933597408278396362995598554856869012063204522717595950799067916283561061727496527497165092747593554000908802916684369153566218370150034281627860280306064308232805649181360012227876458535047646543930208767293495264971707774852417498032691742868209217167393701293212007467188759169786272967056266418803487062425076355960278930521490242062887521806816593947116770931283851917442683092697760782582272262592712461912892831303662660960794360124506274488643233134453898056250652707171121744576960395627212196526561572912100953249632817077346318516953344382451277161803737784120217205678876594521740774758801781689456165870653433455407732821721979166585497998670460516442658383989687097473170751844023911009374508476300513380243083555421856033175202790350853768110990910868423993970440607352791814258546420126970548879757625205548682978097668849654782841447620461090337067417222799838416558577855450167955640509251218284107992473341904564831481884066749435206070688333102844236481170219092020684904475248620911586045853003101458692313959357756046486145713268202980739418005129464381716340921893166551616425386476969634013024296220363707273478817254237250348955907266725339348716577073961909558248236429357766563877266712713746469771856841774048250953519903157404311065705479336929767031144879888295333780843511463769255304615938324346479426725913757707379797694723868414147478058924587724250535685923860729505340420882752191026379742394416572617742953620364916465585935402029040049210610063888471101235014995927134120560742558890290646016056092257281265325508136668905960283090751239903254531928716730391931004926986530499083506873685242875386591756631857896970434785277826427771294619808550943382940962162899250518353734705534635408273540425001357170959714056863264517663532720947621516860726560635207831425710618723040662082183712830350059823370762238346830889661543544825172910695413280659549321727490727343473117610275078207207579770072732464629751528073451195240326938502466795794311425761281235585294598203790280539526015135321096186891814375445068530219008036933946166041671415813946941346927427471042480715439871210736389392436570833538036429684000319567910133200246236333309036470138043929380159283876924209339799599576803416659262407833019115855788876931207248889557464434958239949827530329835751336616680062142940165493738190241037352088056817000461659532853637748827186260810396631638948491652303756890751708403377140310984669120691443398701135532237212758975183958716836829877532625171522848811991129222476783776744564496689375140242139832346900311257930855697152222220734343668834723269846734222164951194927255389007450447856546799926697378933584476181477395735285504003164817130946371776311378294448283068792167186727157156792672024475905541680023771401327403715115278105986276122819395082185100211882635656088838820236972178050777643671713932181671426710141555471775187728956411006245427294018301500257187951961727368592597187127698564186596605721347640248829358536976367514643392111284630538485315163561986231655456331795838400401917470509651112400622678819711323902237486302113121576219180162075110804300374420602402968948758179665010934906893179834239282761819732915454051219877432870402064690962448682145527659569389123564685599027370985470241992643882290485025498556114189903494818061638372930604952519400086590855189162686826401320740561565031345182460302523043416264264953678355747420922197654014819339133054573612203213373585458598197307827961079706284913269940197102160140574402366984118597124752639543193035485409147798063697913908586412628852092386023314102191881859898131293505204550788959316491828779647085627265006462106243529647364148375984798626398811955909859917063054758491992972460797562555194413974844117951187296110117694529519065984610182147557081507373433609975498820153806217369143834292223285678480401410829541529069293242691519473045304366877572288088999852042049893021040037775700762233790498469851623041434646207312679261868381065806598433059704087721402398722669501719283202260852777478981276980770511823043205049477645130922111467142377747265990212180037769736497354260172217023049783847682896635697226690642485186890147177476912720117337884273494322087997018086041059659337761726616343639731643818995645038845811282404029783967731004546634972360599711541133705420187987039283377641468861557025071521615819657808344574794361217669029728842913162132092609056067780762393042006651150004838997813533980740532339873067453691949516278536524007509532750899653972112158179012753658775862252195497106926396191826016242415921653899094364774712856949141758548997027551399998597112130677829515732551309633136942833429867501744418456186916277940099630925293784249864691413928020253193217517058424663637444708135818057833462237581456622906532788027763371136906906067136107688098054046666890547667328162231050500961087016958246451625687233965864227252049377642802201447264380859323455098710060432629148894510363466067349101615516291736585762728203373367633068541823256452178410320868577686190037354483722263535951455138154289177843143038006268891267387092451536053212201896904406997979298715667955286640538321628909532578265624613994378681162404158308581171924542512038997482641886317710865382216262881504736587177049705033596673010759101208610553374397594052811442769613401316273891639203269915530097393275309336374409296459016790095532082703597337757312168789658432671739913344904467668715922349701724124315691975066833961184784304311228017158315436295326657005246266844595363676946996210383648764661028268662903245984755113456598280528133232611150228579723818815204471762020878436559161513479758486345116967595628524493613140187516521830765003911676880628645756720937731014604735810578688731732324059023279229103381752590778939591287825441601926730727230486717601197177674850525703976985429732645143390355733033061362238128138632716090478985782412698369335616133533556503993719420617488478939863685534120218659053698734727240052898220058318767809955806912211250604615794897720022056932407614289524994312608570197212777656382984383855186905871153470400400913212661623307336560876770590701984866248943474539837223469949264651829996348854098235079565945545237860212358430927480010763146648428021338704974658226720680917959986220674153518155857070956622105163187874319788769711703434541978574214819626991042012735877169181689752994435595193682989055132268347468300734212347093313478487206490232388849753254277006488416975596682739282880297628220741531662270218864590207550373882693563812078444092340569995462067758170501805823957700042815122852019525120706521098478916924757239004783109571042940949553073351641590124241149936040933957654348294550189140625936274318535218775376703736462268456180662402208980236181079543883394584678415705158498956009428370811499916752615865011749546271094364030264876181370622899890846379156483388087780345738738220749923595343033358295475882186678051434867949658787669507783199249748243633869343784382369803085545839516646256407713264878387781199037966686444395565898417088684186961025947500464198008658887582948214093475254308562741193348070422565221678678134726923339869877183426150646926721733371179157797713807397955080177084715407958599524493381418104887773664579416962732068322310591392953340336254228514945220309191341501212598600211528392805010722206658064049199980923890319462157635260109718274493342419662036016478595881625722283627762281223556394408855040789809347464270377362154327642658244015834261644650480049531020501741011404780229600640466904720584316957611899464826944386386021867260941432102845702455016871569721925472799000956640634775037337154628037026168421293800604150480986830090630707849809728891784021278109313333309307199734252669623343629499786778647645839460777110004443308940682139165875691890295226615478460296265660264421331971865430822857333192151252777810995000405027552106791071445477980670692075324885293174771972729488547702431521673441525687743905492341425875650077001834694878513747713641292916460730893961695329609123267299541223865622424419128049196610546914526255392688988896771064139321565807756533947216771676312783170881879287168344298893967940779074211569195425194876968866869674113699756124504385191439601750809641635630267476425896710230242933574186895192368039653697632507381566905427078688295925187242341021925260771001966598791592713860706285194881670112122891118817761019888089779522964341077933962115679887433855870411192984956834693723987858884805132790017055750819899337960269484901264675152502957336650120552241475540033883027447281207351564704851748469608899018869373368848566533136929318612154067683975895595138090013257770498335500417702338621171563635373977791186573133908877441100909938145186354989714618298837543030684094551470019860988207729151802359408249928532549998224695871210972531587916402017218298300625055059559482259652474152330332961109083908959804661756932495064146179099011517584135355676484475397296941497352615187328096614691209457254209386126634495174807788507015900167627434961484606634210824637038093544275295241840778069692332593724195076835553777848490792961312449674269794607552468725570074153512465177574937328176181757103972653077722879287713696642098044605998020763023242177450133550743655221564674173559296774009596588556852413456248556589421881566833022947506877520133772724137526327517285791202266259586424923765561247743900239762095772704686389940490815862007573226079994401413634621458442872497161380083147852059705379468210509416279578307726063270049176241560550038763093182211508412778285776555729981572185458679487839626604433178480110983993902722713272524046018628314872103338399151217765357670358960073672883699994197130839083993079572648531115319710325009243399436120341584727092517666141658078428714369256291248031885399002018528210048150898556375435306439485604354944757857585108840567510282601627968443938232632790125670209717625635827379312794270447683691663829362648568242827950397134477150503343675560822827836557244319593139919910509818784537760782735536753263514270352156766760024947045110264414908479145680095213164640222391829624622431096555589410739168902154595201565034192935297605600478953956007663068485400725827879092625366086499251564380323565498348128905949573819592705421600869157385987814274052229442267395742297808048741853882442403524378041448207407525373866273656486853281229735383696883088620201804999022971134038563862639668369280476151520907781932085783740798913606965448479816109616936851127623605445260611377778707107082995951194810276412311485220358759507152379166095929733822420330090224324683592711692453842143109902986371714880220799505811809571314525924987893959536660996066014887582334227966291284922344982718171192413949346856378068844169990060615339271986170430665596934922215070458697298540357813680438813457043614131810093838759581898059506116493629087577301712635762496100467559312011149099793568721473724190118531639374004339250570572203778185552935419575774740262154844600906098833152817453744394553889266541389039794339205818614055150588487832285568170502968390091547311302058719016075228142923864944053038683028696478035811854300703325625603828246153258049588100809403254295847358191194057202914652228720985094019754936203830155620372394716476174722638646433178702103886087454439441853828398666406115470247812038317824601386510832669748119004552368564777835818785517274932434970807208679347443336538069253178343235392787286472028416418599571469473461393115384409247916262793116537864910541324232010295630572045363188341215327450574972226152540035792769248155166541999894128319372015869079484180995009172233837295957637556203855157577268910237915007227093116374969947862322417352182966124161330529530362640889570705104215302972296293895489444831945418002817721024639731169169055548197705367232476340168686145487429475262638643342913869620829488922534908141212535119852418711740096299273672222608090770860371783810303154868355834925123088391216252374089471133234894139678666814243323457821294839049252114322058489361741070230792251307426772768336614287955032252946829606794360421426952076518734027758224155974670108101142982238961504468431534945662617103700476790282719303835588585085277191486482123258005643273658383200182830003068862930083509751699510523766563266463788711687772275169850523359032077048913604464504584825752635441416328315340358462116331608476961954737156151875794244157817155968008792368128969795326624652595743754992002013379075257541267106792438824272824579221247086562892853240166988042625462851789020746239166034984369577097643110074882629111465153001009559545247809540581602728003007355981924967156109475435192310643711471821780492059148867832497403928430556738583776357800714245005188418292423922701913543401866496644207380940827976713397152150838428815862477262572198344246685346936278583799520430893341423151455985509026556261597447065507393621068867587577325340380253417009491303265724570838700943201935604301665341387107019245786627434772408966185198094934872643222744621007116431864700723912579367161110061583393746921382311137888621266558915588554828484375983498709633656270505563855603438541172394142510422630205678282108315206774846754211671191854991015725296062246343729037958044785436774514897408703318533888546819073208717142680418279614471191196429545722217548305188447134200181257687267310605354526687353864423073986739972485616886928952331196193423859887303603845993857809660378611817934845820389334240504772099915553264952639397945099499412124008399116701030142641910631282297446570405918453000170008508839353784054302063922739706484627570601638854746040251211239940739540830137059542244617893704014948281256675328915296365364731112344650678212732209285933420560901199355560444298803049417106579691608189465180275871481818765754690950814388826228124493880449514600007687559300084089636945636806118610148968507328435524125849810600061073241674997395067259684901570053903252265603761855006823487176355213123015801435228516412207576279553477786821223123045347407031553580747499727708581886051344891586587603543964264456094490911066405493757747010005910118499506534187285685281469280991575619775234075334248942319864123116565663314764968539525462006164550663834651841310219086193077787889466136975790246131267081624682713608263409313905253342396259406408281422484087181404215181623352233654282159595541809285381423965070553709094274800273977683775787276124060784434677004231925080168034038603056162141562868077708498546724356859205632561389641594893296052099292582745260209224637738819083507608750466525435332068818961978960061594452700522155383900952869399787315525348395527328537404077319856676303792537692676030023811811285130010457857702091544631095090173789536106107951071428821788069188157153122180141831832436907433439376480691120460697776705060975417754339837406188471630035127928281458241873840992215792562909556266606940840736677832004487090853366858230322871297506999708385360461267729842724852225170211841613885317884792895827396617437364300218123426861448944027988416971867385053391416890224100520705886953194429816179957295400488953543312192102995577209418659600643813117125630958344041882586253985699809727909873868232445283876409751996271589812268377790060040261116810876025931028744712907687011701021800303730073243853972962089735354443257786253856483002442025663061110586550874800384222240578299509828963368983829247705270307845020142573210960356221100890764683963017850083682621606552190225399727114386805774203346783846382774685865959027860496969213377614977956910374922999577002571796023390998858540763842094226509429158211871570786637693592892444422877707825613156843313283231228571875453027701667975446851896928533797190016876970024018852060418659758245572539823796670380815818032101679104370352447400938173829817855623993034374293662951261994064500406910298276533520221975913832356006352195326549743108961879668340285377150935074988956752850235991957315362402184158799448417198042597385817997908708347148449282481322687082299422167617817968332260961648451135396645225853482241197812484835681095835251902719513645219060315140460185829579774114287688611803355883806765304914754618511641245271485401299957693778897986105066875646731872246434144023851116688819813350226468965888262172107198669941256406064229807422208108626505336638048402418802790544704248027796277270929187771052561674209796359371067164427952439472521259876885898091618207314274953835396132738003313216603189086307939451005234250179424398047262686617375452857816411360757002776802613109867926931047959844694470142434091591970189987198863618329387779411914696352882677548858961670420647090953443873577525299421748861815780616664980191629875435050296908003133317748310775217464329885377912222198029395202928781577011935168552492099559140325298143230845773084069985077750287250004631909444888895368829691079918551828367815949892052546777841585470210882688938834642740513718815129988946017687717888104530286405120327656577880509498996786310008189781530210293522213229585806882532831398905778268524570862250916009005139643144628834344129199049688119805645797000785112505760843889750371159781032532285342299320888963099980465158519860946526824688640286565059862290674405606233942099178116750553779739052611771663961664895022982751522213361409926537381080243478127080653367186237907427533417134780125344718433603423978235923609958340452327088776032244877368953454611476948100680350689283923010409007533051782731389393479040131594646760864802383360056546604404490011377344474245522415541818160100777510619433224645419950145409198540649393242199110272175889669433674135247179721573560466132717604620524248665208846436501621703721019177416465798174443528580398468258790018531527592733596244947322346259192127367145690337694126913225486638069435188445507385439973093649558931802655692054932377645399017540095196060058413743927070376344654900245982227099541400401309327213961674765953668006047969510276407993291420433213867114378236248843781844285311692316163667908872966668342091701294647558574783986024309089213374345447449164712098475117992618139752166865321135463097487499724841187800995385805762146112241493743103509769433423214679458204918561873004365777383941231260676343474961837073930228065530557346206399519815447519253362056539320584631128261843010124961391365005969570227494315599065533411618051568810318679489978268314512897021131490783108898954871579496824769037104796758481066344089368863507303004070047307274104283863662336523853721565454993494857898681048135172042696773673182858058248974430291301622536128650453824608429900396054658731470837833685038958533803268130575805563937458897608715972993089238467543101590986023307221510432768879614924613205367543780694033682465123648323492751502357242351291169474425977695226545165049408131637654312853550848741169458885772443789695625666234720696258235352081419358718055485753553825749908576798743934922984241942068982257022572222763316410987600266243324012098566504413233782347789984973366089647342590420549894273547807119459128528290797834366671166015721977030611946911213362088795186556542699807157715599544964817794885092436537756234384177113137096423194243158533142063774910758268877822201402086754151255183472095078800271603938808498704836181361422240306125191768131454727168849826010451558498967742955217276014098024470523560014884049013018297644728353677906935717694363306728174700737259809614022437853046035971159623770856563151805434365835607366722263333081900340760646404971137225553328444629959363643514142145978580617030333488949356029619752259019584849567762203791355859166472882996383783661418195475828392377212593847250496167928284831833876689502314133289175210049177234128044644050666958757842126367439504668323848630529776311264868129001092150444835640141947171624085395056491403112307522819904654142826531130405726523370942679178150607309777730213673829662039056374981774338136056801465882064721767870467399761594283300367596653375023525263510535241243180717328973699584553839336140839365687173649574532033698530354548583917706704699874762498513333415745594805945012418212368590915597866171688860566921901163623836067975313048476725353721995749770642425665161726666754841763792178485297986503623559727020355871589791436296507354922700134930088529984104251062427585407695295134227518645277838370468754523979666959324147629433197934261343204223679027109576906279256105209654487021105005822351111763787930214974977058020062330665838792526341306616173599160785837599755374362878418901476957511407887945450921433254432624406775003168452322678940245423136989048368037134434692874356460009519900572163456586862434797513515177172501111076572087757221469925044493316499943441055253775375879971646334495237452135785812766844793573259953134502532632465490107267366069522950290774135703552404811905686701473633447448760757973492322725050633304654464073599591819829104244339055551736089840755837982633962715777650024958474199972146400948965014315376286755604174071076655319461325376835465226383215283280821988884072773901603291348660722423673771534490913070382939233013624773862760523033601055062312813611730277657180381671276467947612222036121811082790771892996475295140997234726219395073919341182265396939707722652623664513558305238860770854689854963135226279531898416367694908855666921948703972382986822657113492888370156831276192811480437427117184091391879325516853426877304377732027086596807354113017565404782761892657684440958860873800800539652083585333183106276038127772124704734586626970506770571882874751734162893282153306698896495450019160526154385949842319060169505200885372382243692952931714135083917833654258029852989119983802146773880145585720764457019490731896538934577994719295481269811368589452958593464795992822080887847010730484931021285821176125784878399654350709956956744861421059431947225388741573069026196055194223313499914689343945059250041611157065734425518861882606010965071890856834573059363973103879363631119054328963555406260737075587603241062584671245715611330906055697816620557057204854786468751995679585729611111505470117852649553961336252774316071996276025068031600905687641541805634645485048701907428338624297752243026643871772216370890476471997896532792759317219390861654516687570566486901184611390195827463820140414542803326714423567448760313541398708739788977958623216314721186207677327000382840396070388646265472457843660941042384222807555483786420542202927939421951631883382798299827105073168227671654891749385756422509862082351763357139350878087840181053555504022821087557559131261521548663810732577880326994401041771117797442242277178531508886777445403007252032595847270532213781039329443876552770647678527271696181495631827448404997473829903013916074533854602883032255100336879041676954851582017444857716603981388024964721315967910310975704349669658665948811578636782749506022645596970393852726686256100004266550218886553808765304796073344129203999664864782425296014694325429787509022343334443436228227264327309378391332761990426809806170820506490653061094042085076331598541278275146843783355642397731800384495806431063764384097868941768140413139528372921598597103923320611267706307092628583260093439087907373737694409425301244252685841779967328882808700210046861185309835470569040899713281158257663006187145808614769591016960525980016354135014089619062784304815319067142705429033272529124946278461662259503753993564988297535766588575662924914367701338835527688339113325018993624536621456509916163162244281710465404051715159045280516080596672811004838350496970361863906807834633022880460400137747574596033265448659712010003500113569620847822226783143528404274183827263885838175415655922417704793203517513480583372205796462124160927909184477681870442046971717612016097552454367512116103927277572873810698340770429948711282135990908361145090740160755874625510475018963671631550299004726934803943632014607303264868905834460222228181361678217416402910005425144340607361640733680141798844329151254915911103909285745316839155617017243952836969547712511965458720543844114593744946149842840397924472997235122474949706518945996622327076454237156022043436719104252357045457895215106298031045611111470638494821215531346025935056118011032560488429832064754675247196948898268605080115857482610199469688050632809708763396440564362470056110840390700349907824136747959215623680435427942383580574338887737811991771492107994570065738462544424314244276387034214337128085313629807147513097299487331826584885656854368019364306518400562175144026502174125156927026242309815691194698201736396113990383198723977482793098053015003827528890051796153706546624760982818856356066231718785268814653358888354021760100117894938495191553306079912523463538043027275716778870477138987601100038650029506380256950889539276631084472411219765501430502370271188688941121701479999828444636569922119525665457461528100507647508999352100417240843888159283322020487369938697910563736177399159871074850038950000901662529688646945004297696357397183533555742104164790381478318024683339180427741488031925015505285156900199893022343577187757646460500222072413405429731639444531822046876613064751580170920819277299887581567708795525678344868323742030179474720677514786153411591554292819511347140238058258033465135685102665649251397398510081649951963714599441944544219359911757367189210978789144344891694526975628279847628543188555646592995613276866776744298871384841430212231913709067692267692708502429161980488487697066253259093078180055201382949180362572551071082130531550371260428086857952788706623469491981125966888401188111202949152016482893035403090763254991866813896937175084296836334497701512490766324532598238687476286152098251528886783623617096609609246557711062529364373685949220186739585340004138581537536477378297836534307785564435140376877833202735488220275939491947813645666407044797764274104469615856732441011474113212742486434223284988900861877821106142115979677260980576160514488929734805448388194973296787976027194166287481285004711929432867606764279272791250442353460601541428835862108385112350857259797793423453173664046334531236335856868216175137722945465895108849660672887786963364910237423259787480201652989108942858629351918549249962151922101033567768393128126598973160353180852987026744034982855820774905200158591351459399591620986007080959845417550335654558667509768032346035062249080276907946259720729123088959180438813303760435146455635688210137089425847904205834559310244627690832993192428244774698154617545373958178681934405049676568421871662718054337835742994910134105076946918537681513618520102515723959700375310205936645311420619122953086348977679035614262960588497518328023354981066011634687951754437298233118329107494764391136155815003715390549878429408561258405058848633779075151441251779970510892510092068597675484023961831392903506598313875296833337427681772692028321766805031674981081852772012346876129847769180379367173530202776734551220984910082865048898261350417062276520635432223278036501508025065337001638810654418035263280344849076875535867662142321676264393022558838941311894533158242505184749437088815131432820127889260921175413293529761438221340309823759018992020841669288281362108138501810721799597504803939708888608995191441344596432997077338230842523017682383604470616660605997861682344389390056666010808782769837613943489814559948529775981047319162262682513918880607816737291032968530562011548782398432828437690150034973358088607076635122196230192075793340281795571507041799154191526819367619058874248028733688351947770533095236508459606079095211597071102010349871204877663450165797418459397917091379679690998484113170423421926636157785540050401857269644458168787161404855938454438637602005263682922020516951288354688426527182473803676562619838818881987018402684332557072627954205963979941933944349826443854809452346655661616841385124621742768819976749341518219967076164683823403423984099553023866046736684855814739818209261664700734881019766657936969219364254451583993507961276167799806791170524490851098821161138646033259198447406420551256628981212832108108100988613289086218482282179392541774137648518700881808302128931671647295324769016273921943241494916213644115935882568627840839162273462216989074181812325131451742340804322741744261387393064673454806859716864129127843295622104160351165608241102199930718161491643126036187167961621287794435963766453756850828096131342020432355727197509881995148868265558399576283135888921289995926448283522580931057128177762075995804480007234538535640338045093937419706169234736019058659764399474626957453595865434290530205878075756710628405774979806600417785564209141091157022033797751124693428502109763203815320692065927224763232108850403237404203650229264753949182262271219826094547835416038268922327148420647266606415179049357082669749547168116243036965673538239471617324641178374179358879157988530047392997002368396478411794692780665498428093320890723005201622145530748866156045312237676254334851081127722512299661758132989670553750982748494897321539507537680552174186046727854903205273720827721850641048801188868373258119836419375525438551331519151193537227160294634876593386756410828568794751477074200034537076721627457846485660874982770120825792392228862531772617315835292438323250558073659374620683386418991656133937061839744833902084669798221818246968841161055727774568930280840292079508512451910181981298287375603284541255363619937680884491704180396192187099072864077791230421847862518520016684567330293073891759612097964200144507342471235901877801844352717833698664962228364122420515072531767768797121902096605900367781956414688537058544315639881969760519225453318034584963529858622840372783137150082314550174404816129915871119054827726765751903580843215694379650741158085456001762829110883522853123611330880301398440073645697064449243801641458576082498286163379158493180592314686925107354705890047042798566562485356143591267347477120352061666068986488074359892757168592272537164610775373671172143335778634008360848424409641140950022375956998507438304733957307266007266255899619504752496023736352930800513922642522478857885115651545697580867311750366318177531200862498804199283358859093515222192837781610452461728188446878329103159438035641498143705546095089496969300821854269873764903534866213881310371704618108027871121927054018155535249494207322064931208068647573444566605792008419610238613785923731523272031221224228955588973397363472843121381379771178637851277592970340916005829355774951030384366381597224732600277545103589252341056458594004525643888012220147189498610792242264900548675848721971604268647264792254844881261182528895754367357605515611539738282224721978835567929998304148483109174484588869181624228580828312217335304941834953733891103617031745547467117444981133481393101752422774830314955231398846148075805592639579716288031555685320722273699530721685624615418873416345846008680300008590566944110597567991286685015453127363455636192416931233657607696228705244344401100767413860551405365788690580858561208341616187228385764647058462573173056721523475998325653882947276823565965470009553291262814875873066700809707872327496862091464337758807386976282529270452652482392935672896946417333295682530594366142836534564588037031241433811965675459575060770380018255218296873472858213072904068705314831179628291284922372343164846200328314550014075913396458250683918906466550426047880653990803986217428820920487147947951513637379512074517145386971616062662528204002692683291054842775218707832772054817792636189841465682041962560992221838801422558545266769736548656182415806917815973060610693678202902787317337919632230870387743674896850611443218944347081109620392675965500778324865640672220378142571829600220625748787266169064001806375670482889535596626305653232327793023884235617273217219409411570705807217286057117352479488567672437972782663110603646584457551626792712559349215414239682705023166156406417674105113900091254496626386076258616098704757685209491877760761002491076233986918195208757146709361811724337562742053468095514583187400993981279098290028621383775968458645999938257352415989238495000701930010564082393832189245235698451944736941687291331565029026399385363346854224842454861996404608122508293966755785084179662150210809527030198442019486208782398763682814839653015332228164024150029130307660266219169759142817272466598100590297266270230537956912953986226074324948837981313585326694089841814507730562902467471321148669057715899948949978073658086475466292476145575734981658430747545720584345471821614941291557838342655549206061679757880702113276874310407750131469748957485836642895313888321124614717610711567313726912354365179962718108082931057771026493492846327140510000821001414438430298005084399933227489267255891817261971480649000984623384910470774110352931716982835317669602541414163105906266437664259661365229303976420834319242001127371614178111968741524373635218659050654873974590831589222443141682522458808363740177206445931314868652143367118960930975705165749360642357924802959593878450067243246060818538770983200966988399991386649063840504910554456301107127811612563104927235482827571117955646024875488356637873413627922975255079829354361786303851106752132620414741846898558086746689707021433552241179957229855572919317486961897780167397537708753860862059677435971263749522048364823531205963256445072951276178873790982001645716169899512211441413115958203407420608200121743513279587176333038053716676062547845573266064626570595114400653159180214624658913152813845149147244568116750349834045634787161813209298635604749142871199998378645044433218661136933374013327700643741558993100240215769178929171703218707602627871556743933072968401137827898557125115217712720761389497680133618434373489191759474733167865809871220782049915765713403741713763034810868503395816102206780626188551784776917999491842185704350707671624067482426422581252062384485047671922774512746533901331414453932033996762510213172045971942142865267840260489787451349747076138343066646591709848646395528290420620437060305832287294676184961682447862430853838361319130264647064487989740633767060592366655556833498983251813053969242489919919218333051680340246462239220196737048576487716405580467230278606732964268731313506381356548837836683752530931639376040380683706592983552628305080009231543179478390107539826738183298358940592553152474072890063929871627659574684924291875619283642038315533231993469115723834826409541604769260381412111840057768469938527894099994044608225241353773630806414168903208962283637559627555295018237439490804910744187948907374288585820109543856400029118343729933571852708374511924449133391644060497223154034423274210954065328456095911195825088993338815108024670277427563660935171705039516545008955919866998747349287743750141939806945342773073244099213526101486660263994189403377834807245736611173587798225388658193415821647533644015083594462100904661800967700485398883252580920675448233382356764939313448310711604614428651203166453527279961498743965417668668666476200605983802762276727678705159648880040861459349012663020408037166418472213570182448132800584139569394731690355504402975860392424577837759291685517486141833072070848559970402987875463674705561525105185536735273555143326512268540263686124389626846025451137046167088557787883509100325775652660267917579167482144147998225463980269946863422715479651974496550555037259146044070799269925646985041624381923223837117160923215118895888394131125791434104914723140197663698265791741364162769513139182340174473172453412606061491480744501022534749452324207433808865544114977731684809757787966437550345328388059009308703800131443597176901544446493307846599653810069039127137428092022245981129751086120746053750831394779634084393290485093190149876099267994593147068935871479067021318656770952797511333307632220992834076554126713742671087996665558532196149854476839623281387397735239386769476583901171977890895696854934667687084787090704060969357450957972764486881355506542197468303836878586676777465857615265546055498649016539263285504757021748179856905106299045638954966388295970554758762346295053740132040975958340816750019303970662218178022041068403814591872204230702672252051890088669594098667302405692533639915657562793362487050972845439250928502901525348013748589562073710215276400657013799253960373296900460813235009760631624113715172574923787125709080262687957990813588687270746670889947232050223496121789271362649576779638564498846084151459781570796311193763934415716672544688107710872235186745636304363406675450035087281232350418247845344481994666492952457834303494009148377076182866784308074517034521411039334726127010536806358068004792276416769214067608439977005274246066943718561219000824225254496112758930003663645072680464455788937168024960296963458295606299299246062364070949682449174043941386994530159345002326406261978845654973892092858580031539395793036889939430365224908348396064917356132713015932317525497674842321212708785659054279673750466672887213735264225793291226275263084599508517914416083076988794230607417290799972659775550857560654938179830915009612730517608548805250633064660449416366072243019034016860126406169197030432055399123282567886968083930921140125791177359479976423000775732709070384298117488814764412240091011127666349884048532759036261392170538896740042581039826586871460235015148585538623938552271200982235352794477121185970181077478495729380343070986521767684439120441053597043486336160852966097943269587111879680731265767039613519754375888423337717098507888591272084833842481577938032005778309178230278944682734549091256896974133815856526984187737282641578661141360056194850606212685086877006079466655741773746724182083175834156711452416807762924416080760705972691776074502780235673567548093923410305947229971838641699259186592215055442595204512921202366220150487772988443771408675189330576347071594166561194123194402937888967416006463789029347262405806157493685865683057964655460191719765246756544503224522154253274105074542100656034448539402044253563496438863766118040330402487501246749163437262201955353162767223648618784114501656626382556243852971149128280004405102975844823110237891236327575513165356361494719077714687214453162228794295339023676924866424079125541227176279179677218823233801803944559650856073605104917327644469944132430724993776199510513604128376144812959296040668237864683269926237725990852361849682565969939172054686313473730117887373218269806386011106359360290087851563333501926971640822714486979958426784026266849371607321504542974196574695913079172765650405690138602943651763009721935334947155964179071286327675503148274957218716177697293562024694990166107969779368889942586530368770755504000013701422993380464266171211044155873892330711547851625239690177617320561048795797622337894597744115062266765926678652015980686777757372256425285794068268073732843834970791505324020843007525469356457467435851186230014197907818142706435882296597185083670358917389494408399902531507950207888014266614058399498226771596841692994296923926588948745051267649167757046000050559349347790850016170867218084834657603921660558569159342665931697109863113469527110600547761791596791592211565236766893725788835924762655505419869627225896025353970393092436261521248007500526663264913353612887767379047811167965829974332110260808944551276568126168179507764279733755394555606375592096079479878450950647619464078358279112778956925000158123644133563120373024122774437961510715680528037733640422179804955514368286925640366927106301657745172472430153211809020898706270053004848660346500654143924870727748955027679046532956534581526920749751063468423891093425428089905890391105785621564758771367909444260245990663359617682345574164073053345132191227358052942244579492158289365746040689140190209076057965113898545121138337696948478376214945735457769115157980841458567783507355220577275514060618500928901324786713151558129495400679048994290393540070401504152850929968211042623341136756385780668053149558910446755859871305472840676261492187736031257523826705905175084394956636026687300294018230099948742897781151223425958474070040865060886150367063568939987343397716158062011371300159176508376615371882869024716563011048525944285895870632930139946582417541658511247158709190021899012090367670764189975075294156716363266926906212361394038466738019513783695674035648083850197962778179934244102173666595625737035107294375001313511163373653908063607330941074059229943852194464647961054025741021986489665926619854290716211002536790454273981590868282643781933986158289259145481549680175373589051654041474473747179073502018011294382828153837822430498264167135111136607019649804098442355412333593241331956815437141208202080269506225073134360118428738025527099627180157650643539705921936157775236546571218621185933838371785132006151551006238906805731185421800173679932057473027874087215573682797029206017284440322476482426558392109476735678125132513417211340080613869697754281044664202779340623752902330498485947945298473463242459477383070159276104580217802903561588277609739008878670814721759013038377771992450022636599538936882543566086152274027762962229589535510156129122276944201494424550215363822918854671910686376979667354817628965290893900230531413936943485902409259739044803406909789701092848950799203570637277387562444066320772576792901224422082822802361947308255763143605635955423223721671816100146921159510746268943172096220193075914774764072580816679705072865380067317219661499032960942978785534740859141062320442481266228143666753292440707621398860231935859444329801146903154358895940641224402451121966809869550995943641294209668117467700115769603158285911157327147266204046515476809966968295972144239179890937196392090691133527403179041033954144176684591152326166284187175515547357084472783640306874484866835827817013734036006654117504932534056726370077785164850785199562060794190233876492932495737859924656005266429110265311490242378697432793842607282167469870307714923683417939391505140308840539259176034660700608186743570109016335123506084162487071000445258226953804677294597386948505387340383437141102466430066482829541404973887621103565362252413273802187323387415035120683917912831060572113480241943530601743294349440827209955704770046722892423760954192539437236934270206054673893056461350609355512938105653667819628193496010242801396863463122874235559903994466410175171395096265785343010006234806564320980034794527469836863435924940463402028341934030188608140933642853498121681008826246864672919084230793925447817383443692534090042509020875972954390989499165460115412185967023533048861981754364149102597768416795435600185483597789894298804135109454952830012975237193048702781385043158131275069217893092618147114401314769565047581960039708213181503005781972407228658555033377590171377219619198360220768347298977164244868349105387595677358009885530881353812556516315922194669774987642237384786513981882577464449255358959596822941946849344853243198037035820460335369418301854453703930434956238209880291255302167153698776338579053509737284432554739683882456941581496043200107479701599657957450510734377329687185403982254794992856757255150830270226793321872054088600637082220403516444151497267861760868557237378128655648421901451820452110370169296017784999686807887839975669105971671044092372434467099547358672082029449303246401945006665564102653033991527440217364947785915547324541587190719627045586282182082804194653098063733650032529806764471885323111960485235388152930598450820586053400301853568004183032684772655180691514399846740735763315172494860675083723726875220686040071900161757411056599847315834475613802510734301559540273297018086676002223054725856579214438489626762624340292184860482298230130590252490586376182671079266851232453016453787209826791880227831704367327274184053810177361903640788122515435555518993279410639340143224084885795541761566171414523755569382773645718803371788341925800503580451685858821890843032520372821039436837033677721461330553264926200731420008759047715025294231252177067801251272112459016159491716856375578763069360607302323868481319840356184003812727731831416380502193021608000047606154099784751518388924663171934245193427615498385419313910726775035993794442435183710631348401808620456981182836671071378472766517853271634279093844082184969988300263289875729828663552935494401763548588160466388010469353791703722223349708726100918586949822269314039268283119298136411830235687271786700304798418214050256700962775763112165311906547693917045709816473132545465236636146546504658460395260262295362313111812469630162613659070947521538161314250473021560695783899368115853732382063372186858738609395462689666182066562550559668164651793190954841796007560572242067547004547685597596983883615199373022600818608855290723777254852222414679204387078184248539481415994564677290234016620078030028301510102243962668850190691150163447621238974601814413866264171399796904657125408850296794277218951666390560290057457533584817106837880774284939768370881586475946855843490151441111210595096548988995487945423887106607006076798040433568176464961030226887348683463759538072436204702060983166598917569426994051620892292406874812603350133731193416019906700609620046735394591512177159102107447940580921073760582638694167786497082640801748101050906945750170773369194304584456096289500356057263920140999770609451870433633678777383076180827740065415335812396060278206567386975298756280065510908523537571375835523255611924864386103950506805944965060530135738080468648261408398536917894865622563977092527133101587937767123853587422406849477975898378945440887627154566982395660222216925980996977676189147941054325844255888854673139911642797941335161615173618559209342298052807667333302636607198383808084718794482061677794411083867418468261315678947698268766598336490544093897240111582166193563089427767094324720954331159272864148024421884000781362037033994187812546415508700498804106990244740987218102530575351702992699870353905598611108777258162166233351014555128006397834759534251249524889203345376328905699646259117114959319105679590733229043834702531342351072219708256369410308303845607002493335708248287198463409908213031577406216328060768405640166989428560586501493130167223496475796412866296564825585077282101407881437075043580514207035981846643083744547447239557720162251658437228132711972841947240244790054484084907380321764356212489632156194182248170217441912985287059433677200188967572284397135206604416847406061091790416476102394588929373766052538154705652807019108974124441491741780265842377593171657722339536944020178444435807862060159508008589462451473610501253402902542264734059979484449402819019827838791025799563747580322045482406833940471111151787300013028093052873597038750761477438493130428040275333327231088345088773382484229282645034880237679228529139662317802306344838311950075315498207924252953758422535554541821543908606421717746375400489534132519665503564250328502623747188575146129258985039713214721572751959871441288198664707004513975267152121005999869565888826608115372027187477590871332080052705618083245263270707736300074309760559075027530977669502836651454837337501274045291591138751104755657677916823385557111847985975812622535945390110468710322143677913413380968635996653104992979039738056651210162609786381126230971830819602663237207649593031310102878103156506522303933732073630311228325708345903350206423427437278853303508732910215084262105401591161463519842356642089981825344752791741792211564024855975129082401873602008279387470050296523566183241200887716014355091441606469042254412925546656702562916867424434897091963348016389605919143050831349657160877741751742974144217769660709838553461442631291185702192682206723078034159376187059633606807859756502125528285076024012337761637497020603143496361005124764263115112015266609200202534148362519330377083175502386771459282935055948531411921096802172270107736762560216924634532908710341372040629379289936043095829774909099102594347936918852425940508628741524589623584397932830033530803185204272940191736831264721587834455107084663377890153907894646887327999051230030055875941097753378470245220656671604065759481703850921927185293735240383469095239247452981639262414865693610430129216814945759555508842907686403844277817372810799807318720997072217240309268783554633684905055175276075516462539840230746175035609925214330219104094194107900258295176108028651389883232581377501435519050699911882314098054954494005653661942144645961559726435159846076218550895313331451132092405500331436321541369587673541496697308587038211505946132332586092928428085372061975342059347656683196437365253646225317430713517755330429486929055968606438973311663493196508939478574038668930406372084861412796481384854835710605386890843191062131257245044822813206686906363524678743500403743041374748271322948604399982502494700882741284936910148564191331094435424367943453006753818917052385835747942219966828256583587326868190628521636423050459493485112294935892343576335678322669501174398330860551073840771398220586011168606857844024327759251268298964848782289070116560551283380655600431544058769041502792889198610115685826750261256457579468206492285663381807943455414554206813069287135474268401944844631135004428027316911802889203484219441360232044240939985070677092807684486464071963846373320684822856815872264389623302005448679613391172368408888544274273925888017738939851207298213645861916983175018537431741026451943276182059371047078948901168509067418735763460425139038001042940912314878545687586381208115798043494223016238657191965077449524971293759826561433717058239739688390040719037331580388279200483929300909786592344688637935178795442424286314936806097942467624506633118890191622802960361624491140918978874818929075509965490666989202488932645548293455606411046122389803381208599010221958949194109378227658487722388965588125362928210561282263419903756169385393043171550662153329072255374648999503342588968891036326898665469139516456357549966017426406840820166756040063042678310266551583201125408496670006498955881305883131487227732959537403855686650666704044879192242634433054171785558608585755709743044541381981480481469617396279131609248033706208968461422925451607101481083014059306150014029496004943329969768111254540546755252138762352867326389442173235219778481156573540813300659559251002171484663630873615514526260946798088654986294241923961695944729772451545295156886738903933922384532221626691813786899097077770538947644778159336905160397152008179051660130973407913826955562311441051060137983499205291167443321045330434726795821508206631436688957831711813256941233317574802990079354239351542472212776903319552992745562800728186836467445365225368170880523063766650846795021945175701866870197651920234350111628261901913467814351661453450882695605339707874075679509425285504971643386857840173087359930728894532795682821224381968898749994598676888519444935112685443820717737661087834604215353284086007319897615470450150099872010193784795141671270818052428998340934962789821840449792250648529275110542924364126957286735466094879602867252877880964818068113256362923469196056600851523416961167362146218809606226063053573393468485287842701662244953034164893539252046883231171932788771644016834093513454577438690372599542552611336813804739248563244128028557834366917040249730573363572635136858167092149913077032450220892004459725520722626585318171174262049375963033222029095058852004231667108403518867439272062111731365217397203608498011160137526534188431284314240467744116311960676491116662861300073914041130658121551907846930543832080225760706522784572050475092508187082154860373999723885212932662169847662009857973118536077945989481371874421931407121859643557523789568769326005414942089626274743139620472005610747617224441162270705827144564768582165182220433417680189641397776457218763672692864375634726144151776731356907674499968908498850933137740261220474362354607498990611518382756485685088117465032899054855918717571595256349395071143893732147549180859171616407318489714165128354357892097935366221443491654960943944814438869834900400270160798776769094196602443065146033894383661794764776828927419307878668368936354197906644353815087383832646855342955358560108667998471490390238191561967527856063107516794901411721857282259592529446837196622501121964270384711499004417576949623281442264064974847809695120436990669206366339157440250428018019164876286699282578020998536200981701074934347792227480325831274327765936104736758888460000785680202700624241978686439219709761754356248397963225369306451835931223874025249154144720450775510357857172612982074429957156458571033839847778869192429626507453721044506376531044846851721224533885509841824341755604889914320525975522047999650734002450298672694210052401190667429772614890312180443993379435915567485297284221954621129837006609796581534896474240412039723894659640571827694876020350308890729934286794023548270801649759823968021212389974864090082635910231321356196735253896610031135327068431194810193688163792245146643715742130272428464969182643232416613569435704784122555325572296788595715552819250493725149172308799230746542010596888890305479497692175085890474437370317974880595590199665559273815690924107177766492770814396347377275450110577413130357547510537400111167378491763962913230650206357032773337601339504355035533102658970192689178395977466597917019030491911799137096982105481094853921499309933280937495191224772732720827780982102545444452885996085041403943434830439915170351781484219489851376378557997505718727137699341947929132483344232039579132410025066552785277104615406679359089952758230134499618962483959749709802912881898169422192782708761922513741729548287990106584208124760309549432115538605961353901727374851616515319926955309518594065811202972408694009531145777587108020171244735917701800200438100823744573944405906413518642307940067095672575285922720085287053637264517189685611227185777126525865343257539723060821255204977652893025628308033942904703195148873002474307557697364403796667995720172678057172384324677382199211942859723956068793031452294568035666819505727802096413321192711070086205063446897954343431590776869165006935785095445713404568462906051347549937646702796779525498357511760206840301037761789121787742875675303266838445138067663151005104004268987173225186532402521669192517740738449280300909337128472848227023794804733120403582028781111512805260315979051470483355218277221977893000357523919645062596406861845273025553118144166341141943704336357950030516963623130432396495249452253756813186354627005947114035556706945688426412005878952597992598060100841962376548762912459474571647428711143191609641619283055482124258958096947563721525658156991103453585168022823332950462961463177616991088202062830610635479648208196296496098555564183910946545565797733348102230947756028372494721923932703754336097833652738485916714136504134655651374832818828751457950228754591855290382499882452061964126336013009074749523631130389290110359336324803068753217761731958411429813659581432470350236428626024347635248954578091005238252773740273293928070406861294254150444566241158323525702004601849081001389341300387632450855695482902017350005062271436968545741014398427656222606448967060613616258002162214934966792257605643596930183842134404765020277279910028102024769345613901595297960405734099315324605728982865081589936779833522461323185504054887300627045286167955000392175206230876267994183626704119393554008667250908126899401362269169821448976462209188723498557186610870475152917839162513190831918324162237655803488382629652201409676691944517283482917864486300593016131423857130834336151938515459649705701012024269985433165888006599404790413078602984083020804293974870785736264419509956487219322384831205097378766827250893139234088830564401529543563648319897228027696905458200685512065526690973252646769186176717648792481424822694270574933603367842369253688265496855330775006991542501965493790479494099059710195981107646365844025421465434980817583379058401721205639884199017646918522841127216142906109207550500470097362009106687750980673757889844143584493624481770182314024883963879355210968635310300373125959557123122206076026502382336996543126880636495527923760718076532287092869033645989953656723065368774060400234067026124428907237623569048975916696901256326547192082890360101341345152964035942147643386168071229820025636928674651907071364951698027483300927086741299627365308283452677411392309549692686134829634643795397592826319853998124778055760339113867870111007023539319383460640924743863068036904450909892556194398607545617503734406653999875135250320051307023747664799378842218482049032562321657022337412444291088521552156840320228210789615195414767170685924149747285236868067336440518181652787940023125366693614321714378715325557463845528209794284495443973520188191767657912121341336942684543581138167732916982484924090101292508568168630750315014665140602240469693384706651012766394443024165916947768988419735435714982713512382837281107621037280686457996183686632196911988849738377273408913605361359477826194309504314768866737445497817912003802243978162877562691186217378157213245678300303073931803341701060791693198225312707368525252443817731942049464678015440734114729948708559495370852851678281710098825297625125944309649131933461934376242730039129911408287168711155723717498425339576621225866868140921667307062459937936429262873192859775441418707733847243931174559890694406642762765415544066093911860617642695800247565823782200031625922982057796674204789192224975202864462956724528336300796195644336198617828651374056322933641237477985360213887990585359817016352404827341027968085668250225796399799949643193345478556385700739007772604372097759193052562120356581639251574256139611022238629979071286477872055986168295258117830256489445761153125301755464550258551503220903285579482701132934917143576170543433126796726289401406283020069050903580369401646910308036493806775797260534640357705429252339650411115729480622759153864591559980350864762627090321124551581931286769229878631467000825135473100424269714145911150119524180292425454901801896658068237756336970183996971721789613417746675672700584401931494896841865352166435205728522297444401607469568636675060645409906278286955762499414275773269207052222244579341483221082701297524578153650982009703572660578658027922779742528092754269190544193164853998292528720393294719366406931770328097257183594427458069185441748119851799745116935055150674060342540258483036061363268241695001989293533453400551640407581253013204157710294811937996847466095087991466338771115163293638391504908461962811228605924812990112287741052050490361789626995229328060094288318447484838958076650779569706815703917581629700856143322907797125310510299237643369693999609693372929979632467422585426487973173647673692226973950483357040826826829857687121173740150915788833951750312071614296434868835395994726461896238639531818611336672473759457948547889658126031553511577087074971410198501136136142782856808368036265576249230639236636691359709218423383407165749055897695087684429269533977747270280308477363172727080127131708212418609249617627963072113004185848206841606004188152656511582989926583788227723559742374346398509766197897532985018565513414180103458859359008134352681077579925276431129675130850112880412426640749487849408005758833107360520975404426183027800362298974239197536873259341142998492428804080148921049644125477957007610430825800088559067117788346621485627927694432737096390632296581119515179876964253947968484465210896861837153840943026538325581644637874249365500631395599379881332491462832241257343274434745243397626171158397711257009423908670073456402358440984074416941076240126126450739517872420619165544907313080113317598794427502873830190455966868907577188873519410976877575634122957851792072284773718313569201024471129949762272370371299569916329733138293451913439063079106678205372235249670921216368535028826491661927798197920090641789040647004050251088748880806903826411267806990679838181607779316612003625364701299455353062141287315546146465659326330739181277916551399260757700680328317446211521978101382984460375684531697989113098344118278832762963834101459310539244162664375746810751022344877996073371142258136266555699789130877121599876343640192650207416159787891047759341610889699337666661507998278405208536769141009434804808748670427211636130465099572405831613282607219576752257416063393152845637639483218759652044441422631316588866930520009264909331159798845769815985514851923862233755672088162611214407335113271799265996941263082395767479233860376735593470096556519026007431998758601189159485868774049297238328604921438083100333789243193659332376371131928907193152755047977654144026986259104212723158613837207510562933079546369829266252594768907927227630068387731680354957276597406277826563541634245501583929521211292019991555075552154754000732891795719595909443998040883900239942304749184740619429273941494784533009584692547859863751260878311376790678242949554435982940986793235565255454820454326771215042258056878487857618061812556596222720391522722165384105851021713331129439478087496205400708838069700510027030841959485131021243072743269201029246726632910245295637713904850829505981674527878716710361987588533565107724454738038634969051148364046157936997265451576250115340217167143590145001867723180048109580217960685663698309869427002991616117841431033044007715325232169000044523777927275048843050783539442685205088069304640608701754749229756637676978099206964724520581747845933771394127073175137491204734006746868717652232655784238051599397290855554638565401836861947966671123355731785771794155867105071503910104291251668462199133067985303156929728008422999343914035125218796150226504629715104372575299988452019145389731643741196657294509099341937276717819902300919719625067682239460792257292689559172483453201798642124649847645971609327165633598983651513857817162356929869921321457953400399193113984642498792876205259644229891363245019713030210292577359376736176956780607963318753519889420863287326616945713343855422271948036075851185661965624892276572160388496076678157880108505698140460226772812849239283491000376342277498585002414289092507707529899025173664225826419588029116244300205361959136040698051295221194218081173641112767836400105625591664257149849573368547558300559650114781576333593601072962050155110751359351994368429964576259023475673505865237560547850534568949137848288001078435672931091225267884779425479686102910820542072080823328058485169941407896381121903314112392760192179759270800028276131264834231841859267210131226455840989771668628240419144012455473711974304233325306558515967873937676502860941046263868682740730380949500710151740553456207070515508418421823914695671558746903199481271027840697972114953122133503985836992057063713564356760731830140889475201584005199380757372689592113948338131918144528715939956893341805114156742886162179767760242771553375572568641605355131133503792723229623568140206804592399364468728666048567090857268003506545078475209990500206980168522808110906875286010402121704876987770709849195191426347452567467262477907290829513271115870908437794965759902646388873136140313582205100731693693537285964465784114924493016513948287834040415569314688056867063867239306520410392384819462009289153170123516045968014972186229210883865590241722726872213844481837877183466588344736150794362424397070202933767812084059967221041240589329486454678653048201953732686361815704338724543821100346194130233365543367708893428472144856272374572161254200327626197821470047596169621466350602895753103858820610603743592081367766001663496803898799646701314752200772708322174963066005236092475817651780962315366547780385912602649464412571829763570816421587937182829060310653396831826039913791750755331389198345514667702001789147387181409146867843007789309679212727004497052799136075165386688414198442302100964187691912478433120341335431251798603668892033812966118893804345068054927839016197128220169059321134744927742355802296816269571895526015228037149972622009559000730080961353134721114053727965075434097259806947225426267481896634262665013256290512770723435054923384279952740318107078272945874685924011928649484902275614089696099864560840864588099360985622835148341460083724198536942354300162753867532499239077781467776738612300392593947925855124034179986158988626405361707421758450876984059210627026999950420233869518825256516352898996023302715755366011752481042969981291564744554913825512323330533508216265544224261316501092321724016293091492236655974773605674016679021965264193019782307261311878504796053006564451359785115988191054489465858866156970731501653354875712879111356592851800950772727306695451235539436336487436562432220889634517189953662609189430391302030770581725092152708719610003326396426329019256231788059408037354350461309874706808157622379952461903975370865824359060461066077839079149218909922220698962722136697609045732273305096416154106543508477809490665566673775689158884719169161476151270912942105842770741642164365618669641975866671075396909715266364768490600812033536661145149123312766118922799906124593026938943218554968546820278320109729978879119685845714802183654743887680606550778112739875441433085181014648364031671859872121663619171464842576334333194042575932216354112229326628041866265961804434334109572630046311142685432500139891000068986131161210039098456256744310462913974183038092126419052971781486184324588061505576844534092408976075466137971060209264292418784642799306066344163845829495205497196153426706612499861908289942765692968174672220606402441547036012568830182199275426800407925026110236995366588742305624562586687759832522400711807715102019584661179809467786842315203351552152360121164140708693661360306055177318346395290060452649954730959096148809274369117712897998054284169757858915999133323373705865157212331268196675651813330379494619675317221445007141261338691332483897577564118798820684536308210764167183191303316025986265819452058061538265375796701049286495278583052008912754091909810233447518340803618626454491243418675982693323404449057861430484348773921552236708138807120086041222852693920472880759926414807737275326809978372769386446204067039431037506911351695780968330816107818791821950421519003699056303964333727759256477640994857062335619997613446302990804019234536714494899875513196436850441273566595774479683695237540382268474424317543991632322763672764880159405609584116412562647158125471124151685398191047650195814730122612601494630630093663478226663800080475399479900674595739851006737509754176667387042323042025792559650437023282580521544893018396925277329608510749708266128013142584179401142420368826505374504176568061376701279686406977086168205402376053849198033477233610769007387070935145166856191787500980228674946470574830786794579379173562230113414495951102456069454947572544916418747161867638644881688926388568347604374066637301063229633328214009295959880149574653048136527498900781658192583689425763584966785013351871053452096243104038189685327700050240521465705991782558619540401201954163331823542794662735313852293705361424280593307836274184811272190242429447860224660984199634497002472035751209487409216292078047246283873454878795893144472590200304244988531242570644839597627563650731934584865054856001265771131254075884427095755814656997477923499956606625329478346297766238396279314839825945914045692974652617822304288316059738205700757932522480510156589824337951085411931507478415099836127791241298003807483083588994834120732612899607263001744489513680151055221941337808285396572810072867677303225088602161931439839218371775452622645729582518835051043626021625214113212675405519915202165941231314141914280678451730018254443142058035602193375827977048488529552363472097080832580208353219953864854555828932064611773077706926068857097281590430223515473342972525938112063519851037892970446195306579068664014914859097274147975673298107490823557334959527261441439541511874527056730948448283227726917334782951239089229437244699673583435121207814615111911384731447910531311685357843453816355205836391835888797309101470988021258510406949716927832216964848361838669699072703789565300460319991131367680217067297466938794342922542107657213639967518463635725699388705105712981538938494687374895696997273802905169033253576723127286444493261181613430350816457318752550246793764555049532167582638315362764777755293112021475920177512095813900135594709189248999691835634876448067305022491840336299222789670258503430752057468353236861415473396649100957583109533277788381478609385920422724383367886260300765506582230791833376196446122535439354064882967516991610573002441950394013864246115069421229499899114704206046583782933376641827730187673719123634993322746692996562025432917011266253835790468191762946064157215773411560780406526925741568462926406418119812099221388114572001113010815787724623199603766301158920568277868844442753950780144476641408571018280165882463483146582256221499067499946549408773279829854111394860300916478877968468794695503701018026885491678137739787236934117222973560821046305966639604121346807439200232494403487578726645147453807153748427065824166404538941451240960114029704053141980909331941209790270852180590811558614768341277368935522397220822472175520446086143774108878703290222265884021158300634438343824008110674086585296531158007926331824908705339650515662936904769825209415081192472365161317944173000324914313258608976126249274544587787300806279387375499868817101420678174846384174846934109278100792286957936987870757115220328023045364356117560264834696995809320830740928914659581260983774458176969051169531225254667825324981680052984800288300673810828496093036668471212735850411629009483648888049165565367711642275765820158186991663671033031478423506024994916381946876232902394423712946808919927372807376013470443924986709898561870118815037483141007503152596078034253210979886163626692305797359000644531837006418165823915866433970521719191260584882204198131829013170000700074841839862916596733148984097850591715091957288340287079649498260841659760033443526800718119037170740558306097782079094365295889478800909576533992479192425290959084685068230744261848964446982800534989876275742479273515679727487448908920709190635071238820985184074606109799566836242994544579363169029963791705730994912632854558056925560587481303636455498687573764483265496396466401625268418619188389394113514858362145007171550190009946821122611653895247760715947328185621447562541075966906988135550118964300868126121634099899872289133359732092023171087151311177282613676590569513544493176620502230502217631864485834169939429120134995177147219612354066110235924732467515992315770811358059244323773558750775119927713518848339187891023256006770065015208039235127879153376770276454670735896337714850719372165169616101565384633333660103475256077669074008034956729526156988730787815026922772813531031538740111768489827203753676616530259506406568757496427021000522400965188731530504113529197407209615863994038936705066539590314140309339282081973649313357453763081079450283272450412563290127225844286886188958597691660279878214644356231978986275792664070284329939216852980155325790158662432046926674288646060926035270607351808648627643303051484712194962757710461346318560399450349784317454541170801503778826746808551885426432089517914246073727957473271599565584768869800942444481296834533222793833561472332875000204023900419053840932364960656257850116467308677014896908479726451041288804197965572134993739943711515990731958778473561842867813088690377510146121702726313771419078243581267425089935300911351729813339278362985095441533521448198767632130211894663642799909238744481849762683197966866193630102095409249512260023648250058071704663046139174672673341007195812189597490491524977270356523297925281055288540596894472796962098456808708097419216077898714226027645982042895244119934363193763066327493218139264470108420257466332428437853345960726804298107672821802900587892355454098592793533936172865978717709391658474176057310571961559409877449030693133508158445810209235010259250029408881435643510602453365104255212003228376346831921561958481838260443508740814425491737815624412053565693235402763791344793533234510158459988872339755406758699625093607369403631602015884621146044161859302301196905821523375412588524917603866599489693435779459371181400368649547894757055671946746766816986316343484362379729492251800882886720037194975457071231429087538007286447468183655753481928927147859294393387299719812519339814870157080139004107895781948883574539677360700362823906492562444349144051953875562779451523685223330991667146019576499190138961090746773979305200523454129884315768387244723162548112814409173804465112301528033919233262419478211766685413790443772891647714263160063497399352677007783204811039452898039299693372761665371177263127973027928773444528449209492457716818699482500892049832991777997740716136958974405176832943614001499277180174516334237432448346168199266417471310626230683445593560070864542607989352720161457495119863616490963379961920567284225915012813872836792031860733859594869373555224892110820024947886288874625059545165607354118968049613978344185544199155323529444743192280133991211757448144604578247699023457600117633895941062484112315303406451394101161082134819540462710340902547566462446974660207368707600145182910005465844946131683240754150469752858607246589652968711754442474963400880417902145626411755096480183957361433839864328200184501223097929388639438937188104802861612992836235757890878827901062424527141682464487486731447943015510801519892665653636810139599273801435850231491659959449519448244845668599326048412806752400787904695662401126394380212669109531572423163876639670489611123859558528562565846258282012537236345969135092018430864656447136085260604747378705055331010578358974404466245315859869809306674662756571999732494072285233970984945138897613159338800271781294233514296007449273796992769876221851894080798736570427226049742240572874963741614696036692954430018610169814894930794453965457050310283652184264694615565902845503378890046671791118443699950779738967118947577672516426462957495009435550309990222950567994209923714442665732562050939376229904211940550013105859526223743103467908226247969035011062290033713092937715061402737247232401172766735748833836625635782469949538338236257040863703837009293248275546567575373621672050430959665817262744309315059006615551923339949683495899800254564054916441732678001754446364487109953229414531540358263008150133850214624254277916192592619870059947500839448941650616175191510343657713561291147264767896666660019448809418878966591613648348321458910552564908720515312199257672849721265265332010352225808050243469463339934559703871677364547787697396015644123226910730934047377329853092460025815096604509422967022332706263008505355399095591451785566546402442042729400872845769396125428279219684795491086131653477188967028648299134377208251712786968405966846122684624885743492784519065355368802083104798380448420045686338648010383082920047188734940830849040037227816518839230175511033260096760413624421568555779025123951926009555166413071029906037320916344183175845484789692744626179919791666375514838461441696725807726526112988216405092891941059410011599648274890926530201381979463009124776367378130532591183202440277949994495193670930463103363484489880136164448683537216521484984920313044498987810307612033979708579593039913075396263311308942942395099249152475956507146339257751529956549027116781443667611523229855835343024247701167120651365706107128156840218265914024195497480247943194901152553876193326893780891273332202681684775401971787500249078222768856781229873876095637603086152624271072007845154327636343472061003783342135045684892099673665165971247310187118316255306651083308768644746553987644630715882423336100624493539290093780456107464259824357181648393885754548029174030571476252260754540616303055337507841166209216072923780242638612468909674265924218026063938061706017164159978810551581192337536127078093498846765421654616650108738350101582365109838632287594280833615384371073229909279130609905252838363292055485972938409765197117571335725699083565659016076504073246306962395941048720397537288986919972003002543841171068260915153858097272737579027621152179339368758745322383467310879953613033645420424815391956903279296753280574146594556445409841885681472672786360811844913534765424459343630442612733871570072560480599114799019935780489974245354081355107016541629911419255061693547201597858546501647878272477273334280190613030209015265406429222789627342256413439687659388917181661301537887789807947567218111659047199141766931262003121404008823838058071747792735051170477735532961421629796241746800021485438312294754567529312130728068494493417279848061088746032423277605021681172090073015907595600299682902812253679517036896830697905116472075825676175384210594410746819466598293261302666041342637748368056400586796762200483838575168519475392374221658118524639719496705862453971110856055935260777646608629080371195889237470821032855845905767974805262730422162186653395954726596769174567449453281571243197653017428039708006447373737964576958448293682939295734145619818361282938361587536742857385097229648277133720817767451479071584486939547968448157392315951969220568235186937863945955170542496888690298135464850702167725671153156518362338294079341006175395206971102035419121949837770205101568856947994239888827219239722367840886691475396532768757274230969808246111588805694627835988055700664381557944476053550329667535335906698888799125711214646645356652233092644795598659077746017347742758169990883326576383944098648754200213029074059852122692491793695553509384760001811313919263109186238190718071933246443768377194176247314129000630220448881409479152997335229534032974349063074156304758211111476984802118328289784456300262808074030242079394606495858889713945088540716105959501369135942013615406558346076477678558763617100384215304510383968788781837336953582883427343960190588365117192444756964616964189782711269585760355555228020367159321150139661131161203297652310007260460428821131432239820268247639622680733410780772902296394852746397994551800412692222740220463192023647585409158517592632013691135117068268245706583922583143760294516579009878639574936421630617439420275087975896225999138689452063406037430491893512880399342401159077999476978592543500331669593154258001479145457348459599448218185185039092470246974836295053051788581385457354821945269706876634540457281221365816697989785325881722941056822088084014755470298413146325584545468011014245632439671813839935492057543841330405759547197894745956237485666839293031662802604022976969929419229112976525329760457684039362823671050019998159753314965232743019476956046536478575574451008444001005264988916471968627975704056528477344001624376011424421386153346307265314396946038361364014732343551292496787119663376969006277992018641004363770636416270141896886664150399287379617919692871599634695778114759876868294653250854637523942197109725771497812817281017657939423306283374289604659416131923100777121765956505356404147080961194337137837460970405060320143395659873756614553054245659150188897001418575454034507307027875918982407602810483723923063125861640651047698902286298729465933176321850560768603393641934595116775589330535813975735351589774672958246217571679804016653293905828809183073521597951836252709091206798234153581921392927317921997582650014584219995674942560878369768565882436084064449918014276697929303047707613687665586389734758947467418963628400649492370930511795882039339171577835936613224811310655982601277525940489193466832300927280926083659853728787304756017328865865457078893974552737477811913507349349969871780981054520365502076194253656110721121918556755564507246801690327691144938405726952113693530590207500919575185024831414427688578576710441421695833974175075375739796386379853614519085770896705027764871617588569638824521435076429527959289030343525494707731552854391462304839902489842043280827770346217641693913982428776121472631066240449864146952785620184839424030834703216153886480717427798606843975986918638005653501530710138297145786862037794886868910997063951909140357001586719006784853609389703920145277821623338115763201718200816359732237740411838370209850581457170444171594854457625044589588878254649842736497585046799461501202516682285546300688691307056356969460451123064990029501182770393890571387957654514032762634872980483209333438625231264084887223040737615665338722820670167270625352734472057019810933906920587943119243048452781442776065546904563678840154399517573088572682742375053840130421036367410763327439980977076883351178458740207515439476623118321207232504235327456987448760155536244911407535742690144586609001882998286284428508523965876125281055843254943312622398222615303692733740221162996501065422501729241360364734987986990356699136098974335920105612326328390657982577638903793747747457580643192575004491405422778660347277140191633904656857106715816632315988862328567479802453924551600401770394074862435479442527333761836146052350867487775855050589263261577032792050478301212478992382817319484273853511297960476558295384545516200603283619501293812159740059248200663479371127920728201975147048103545870069222350807089109206763500304656672324375538147393439406463849450363143727785091069885767674226546199256382594009487424421082455664913254236083915734603781250068681527277928180931235296492705198993586122828533683152090404625179831153167421849312009123222082434163686374519242122304897034424890170799013764195229215202778387505337508917248090084918305812580721422770538472430373919511652691811728125548227589138162896842706816575614272767611255354833446526978081843275468750097567635638698998356341101053893748269120196594547436884818965964549405721106217867129220981413775795326197545952650442937704411656014193306214932209122735250125422520463521042438903258246147732363099800132065129049997190643995984788834165725269032704575932186105328207195473549551568079948676703198098280529696797660110849399065236263789839268270293122179207116187329058725957736525315452019019864205986243708469800287913391986696477744919756053959304489734179245117701678500050097697089478945567083071185866838540126957976490502747704679598512522520376532878408280698457749206788763017412569155594313344752358480867805213861374774536611230515743522527465818356760989796746323568843284848709712779884153908328347831793621443999980137713095161199639091630558540698100722211272207692263850714895289701724353682624298211388686949878395143545229918747443474977509818798953323546286835642977531177590901441067053065589245405124049226684726006253075309823491673500889995547735412763817485552379130917079351801271358731700573618186165056073825739768862948046688534644544029264854685635900795255781248065534016946399925758958342670975230148774863659182008873799070271099905646244319171629499359119709795423875290720256718834708354156504089902850376764505225563341250388977274920758442272055408803373917811137212679409380697487907582550898423877657813308780983019114190946535865234650938618796052700147304159357251911309462769719607842590655291580124452382763272355900282368458402978776483106144925046721901917578149021720196085654146690683641483834443892798450697607323390734943229545371060498114279095953628320531417240441665112226288087923804767331800488957231825362502604246935103319487223805761339986639632148388662807617795597724401106099740530296768719275873537874012218676128387762712657394774332631325132550677585138623155146676692676995620761460640618137760738905600369394960781052520200217002704195266271478631923615695037083932765896699769412791663352310164267205553086854005134521927743835288636743544664801129152154692023704918546425020456680301832229828603951641070406557465134529290587366699681790140517334153912543649194431973660678097243095278409802660995853065922089571846301631047067273841952426154064973025059640926349190781496624640922664755658181220928041590899130984435850715849653382407215402367134395470069110269178861574208196350572681292744048625118122661545102420051271484089148813944594881360074974293587811762937452284798330608279193136183895120794387909890694921627895559657471263567708525137338157749806711815704483645277087297944468729535644834159955440519226988810895681557611734845233195249703964867669747861579517256384507924682109146071250468863655961841931080573933025692010220347702349393913957476477457738128917973951710429824828558591809605651373894579148926313109575901083342952232627009313316852960080387905801412322488304745213728855844137389242341060354624711838886946751397516551977305301434509166245879901362191691045422131499356002362634486951411770017619183482319677882890609630967299831421915704448702911818271657942828871989976398956377269840441167658551021687035341072671396800977239728364825931009083864820288282673830643823009780072116345156369215231129905938067760816993247969973164441742635754549241137368319182188817773433676394854137057069010421256492203011573835764896747859326163716984591262621828398655993532303713486598330592836043255822458275327273731529055427215514611725522660331146873382693114491745362578061106170402419745306185431867597227076493606240957603387565198243848855602421816770794546623455849902753270746296887224199883028377287847140792802317441227409131082947795763266385435244771323696816617371191047823571457775256397280209007783236800702028702097684560028918127471126332139987170877365230512973219022543216106560196561279936668891130486398697923375529804029724150310899655633561624081295575335857777438685818871129900252256711338918099863428278408515771276884142794495862651240667879888584389836823605392642541800203560142229925259926349410754683790888479709343110308954861998227030034780039073982143495469440652635538825753155332331894818206732327850302977608072976801597387933924521568867981176401701334711013727225257423122466826711790291863002816665395106617228957304648957866498737077671907742314064050440088107205990388738130251203928852571555442563728950271583561943670517031084215577638318396431040678830473864325222605817914910180362271962908746280898162026688857903407400586545538737946120275595012786682634952505306282091145624995763966924783910232396392349724174506186311747893976139206187605819898738276376305363274034950397007610447183708537014431474551422415288758810942779267540764904099063846300611733946459464432750905572800189063672274780538050325058366162482504305406038992369184064588998162584064678093597416488704558654235942862505867760924875065648732295882720326156124995001058303515072403750146816993131523088595640762077249074515025003319452640176222945547846692436777839530610826290984290679350516931447203666782488229945193259444729540167534804531687229900717550318802321985582095563785780756515995827721802325661732577620454873200309322547309659476431825247989189027242789876438707782438429356359476869736238137739574172162736835640115115977397409993638611749334787219767865567774210780738298621147241704638068227137603013815707918917964877234825324658519770463240046300091002429850215525022875080517460619923949002536013592719537733744954547555453272439473036387984805365897728591396533444270143092810255271490315670210501870027572825497521692575446700020207864729871272704232875159705374668270578432412026476017994845527600552738769573651480185864159350297350954157766740242480194538302504410749765725634462676184759831682011995339404361626727921627047604042646577985483204544248588846989772568898087007222345778549952813294923352961980691497082477491043455218789238150479434577410160776978405005780893358281488625601673145289960048819537518969086352843178167650009214381749413015536036318697446838637610276992002225381671810152487392641127083785699024941440581193690706083000034685239724286766665833162474685753427455906311298684245283558809572825733189153978687221784401419322363531383071084965636826505837596102397810563625510545408094074444690520853523364868741987743347165471188212518164500391328107156385291627674818512635665210528355895668653473882386601614476389489564347931616500653208572988337433283189444744954666407671814951345561871901268016379878414617431016218718756377395361803446746899362577746784494700132281688109518625616179240534658656728625068531602167580362916706323907022592691070705729089390761307389488822744378065313497719970745055119643367451160411317798433520263126390845611629344903113995539836562902837277695318279695863285141734270172757787682299918136099846605185138825696954045262033972534910057607350108940347564204454559202396774369738552192830978049838605930386210581314600598609741875233423903336093248612435033897251927264725873989162607133852974992420278786396698929202850982747311810330034946323458792184161086618319884987607912194383280566738345075959038795842730190642505778316720277696539716653355352116293746611305494823348483993336572988263519525562585683278567008028642571006127466290010976437880603959837478729004430991718321793169697712680450080996923253769859932015970551057484078828996445086997169462998110469651168697101760438627572243663075921934978228891694393116446845254901552595160719379006192775008684348161998930254703147728972125526616576336434879133867206043007644630042280578191245402513670175694538745696286380433164203232822895783970376542942886428209152804760634742540933687258907739884669722172511039909378681381664639940816970479829748614844158659589984037861455155752957408639744268176358944387263161931037477993759548845555498991816520908307222358310734076471748969163668486908165214575758344451322372132981385356875305652993006841172032433512332993312838695714388446350520643393479044779460364773499789317195127827074387665808037443010756328562051255788382683262848634911538644537525180790518230738669347823606894370346759989763214619113732554810953719151420800171383711583814623237091687150456288743817437502811210093157693898103105068632739155814899131718685686955590698160639883207456937374050784480830603516254040434462514448401578728182714578512691741378506185733831489574515421340090935870884065333664684276815325995255736763838008289115754032646759376952139746595480325216122405678027753483892360858549814821484935523007914186957213606137038921428499818589817153448063761658037425600811243096479629646541561092154643508095156186701735802274317153273672798394435710643587308962276634287352666739550308431823034698509577978968565556104229870010737639100765235126597677886885127216462768152285232509907612555556661811298323952302623462235343171550826103664022747464412115543307291267721954863675107123302534294759040065750667127236888456814942110287880304314256458899534828363197690786494108744544126113316720838594553748126311982530194563348967532957665649789418281736244554161279169748242026835813270599974500103902260833115575059548098693444880657413902294113664614633368670207599122627893934876970618514291211741552051820069323287732869514922710356287631273114834578730932421891145035590376851870877187430693900041948049319563294878207227282918747442466911704655248262078402790518681050610855147309481857489025498571494173461809171168538881763531828730947130784265000261902176461456961983915205646587741844060032461800788786328616135583377208649873040667988195187199907399102611583788929558191998168559697685781933358009525638959568419731799712326091502545377365298867927143148477627498025447941271018003568158347036949162202783618152300276432859839521303825869090989708121944171801626969591022741546334707233448390467361434156490705459123198157960675197358621757568841536713512759965806441215580150018476057178295127296527842793244392848830877073718945671693098135810204808214047724761315129917300712575232767564899720738878630196224511538630502556128520357465280044527468504534503984062573332625545475684484006801825591385271326918341848285037990204012850046344808015762159089223279856478636501184988028846114817861523098823459698607193040459050137960378293236321740050583859464499987943025794418770183850409727221515765922123135287707488983418392018981911282860445880946201293333055445050158533804493132704194371891469083405244197642899705435577929199240800818084731839438597226762543962485218689846788594582410131045810176261452816762939681298419525771537069419594652967642025211364973779363403394971734851339148281798223254771088930965974695270677626398183841565952164949461714439874055188160998388635330489822762596957025171300668658409661783925533067767491573988219656613917202295744800544302100230045653240020339738023271498227168029020593078494172073510485669941227345713868144935376643267094446847316339338508306985967813928872920578164045262513940088826740122060511789257122785681114255176378101000089966375732007768067035565342534315051137347548453241413217936434097228124609022514239236986316125266267379704240685392020891213083079693652017139547398735107355682831330931296649847036458309323027044976561658136406747817726752370372914150807726989997489445210198195125615354555310519517793964869510502827915950500281190566373112411890068407316186473005163717280610932698294829168739562446730152456147804302021478380567080982418632437820082672288899247338318165001786482283257927371262230534043272621392549253213201989832216423292558338290833357955310101813629878039011749203438597544901112568820169378797345825017367886531008968675940044422296669015591565572128411472287468789566775069661768220697635483647087866457293391606341942823940599675153401945514628637885567154948057870473431388776505882846034170875921352720145099138211976937720961544596217632787015381113129366099506696409979017700416994504140749178822454114603330293545170261714173581468393299535698651560762733200892760954802728486075798154458846199845090802664207426156818202217206248342913766729598059625366281753585385687737100203732564936185676696757853159038533708517777011720113428561173375643538944246190616583818367595089229480128704785600916004808657991403060694045573476284737144674163323196307728326451731466570141271117948782363192650305524095637598363383792609178069092109238932575969511485577978437890715209711806153542836963801907192640929150975685138523605187126996472049198483282623785011303613445662714034866074827261004274414386049386177525461017119789468812726007743840019670608861520006294572417761299140621968873432657888719002556046296816473009430984209103531416894474452453983451851942930677136727011793053320994082217315845519315253165300666880866235273051603197933756524115351676981864620125660096384237216962385154437565066670696201520170026724174868709293738318661434311458871464800143637973837339095206869494926213358404790416752722309450179932424929144762622130618612479593588463441774450509168984920033993211290705690487076250469561075414219729102814804286486941797692351186515029803642941716949885148504004039290751071521880208620932942089422994588475541442833315497605082720132981211031154781632242572785417082815238388395362477344041510670911348428123110934331729379134749858016091445760207844869191670705268849672524106994480892497798202197903442949314380889941371713588120596515277860839292597962347010519210928107811693528909961285725402996703917409873646700243447051905599899593310173445499778649108895156796298986102790165934537600882392219682976438497979362073664131662604385104863316958233601703837270427411496064954797351390119433953154177866863989053658013360815583537129372494488975636678468240177341210074291864270529313317018413259844353780337798251822878588365040553881660926721136255682353883532804158729183252652616170720476171055802290375945582023333273726624706430685807857029679619801821259228631073826061164424480835669835827068604031367957715959430884302301099102038501185300870838803891809035078081596363625328154040487270255645955167575075063183574547722041263211970882908860185580433969872217536707308240466191500323736512403774734779017795960635201595118644218406611195094561018907533072514971066186909437631771717346736129990487121334680380053683036130598270916150922048307899915401441295862899718854693416224751447094714424816131748013007483025193172365877805383067673418511714627717185500572628163127350698082337893679232781005721166475159893290877648645517883545204009966004428697951960407494237888502749668837533377446023912148821215920327640130989714688842352760927292532866536091529277635598346122303395263994476879257066962358307517073360354812932672241908400146759761816088708093709808376315394947035173733318579218033861424362254344633535296987579770753498609720876007601246646843285212076243836783293814368063618323410501938665435684375030618306725842141464229372835207540960807553769556878320627548722283769542876605383523977206208392459482578791951671983107661360816617700074076061496141763202347062386220523995012691284339128994170098011041481468650880143729995190366050111595964837102538193164799342852038376970177656678043782901707947931844202555035857072266615410932390340481766258259818392688271181330034900411192980482811565939269858133977378883237195083814105637907936322701613277490129057197667300312783057051435851435946011839766117496321363420222151151852914618030325296670067071482592191770070059359605549529798053261953668774912341976754882154695340320938785599687386734907111344080483711196691853480653005033851115690941504022268559210131069218634726475733760654988837628231106397852132842785055197225267478674990018898881394733167821104898739947310948850273286836607508817172026357918238572345608743111598870069038124579917812406134757993659308485953780693404986538864980730591962853454137558553214475411220493549488477981232919468669396363635322119045430685560216205514139994074388834938858653950374726915581875290893781307208088247596432499429935222716402972054392174416770861941212382821298144466615598186783755287883452606423444081954073356859429161931395767247989307703470292642694429197216087174741091195151551126916759483453434628267205398654798386726938935706991942858964642612757302943286814760337371903990877200841609234357265637293786534580240092389244109746224791387001723427280403258403085994142454401128187166173370193367757914505709801622475406789471543857807164986363007456821679883552392818033923539272985868290873547476084687917897478657651590170645617755032297211982837664479250191815922668299847199811786733425555465291723393628525826113283896821726048261334550063545607638430322178468366278244903006024678603045552696157595349906848900439645936206769376051877247924660641175380483785387175678134941401610906415628089097338828651558695874727903950548670830225380853565538332553960648489720648498838294451231635613436603123266478347785386941587691217467438106985024740897214999652998004972277458007443863606840046627078182259921059304129822188072711952358174085209020953117838684351662828236006805886509242052966960332891238206039304962474979905111016176490577253591869852606604699703929363095261830954651998584420764573685635667003761796831896024547438950758924218610143465861495102853953735144861960486311410492732248122116188678394172079624804940265605372350841424698427725410669581927072146790803698664488235081771109244942263008571036537088439747817428531680767721914171305382840853843264052468076944970426664311140964094375453943092410405431936859920162056093837574385600239801575281571730794459111428196237137180424173848841598763770680334727643206139542524173358337453436531910770296273987189565666314955280189726243717807443163524784974165457024820183278930448798871361181943429492256159997918083028198967398612760032662159320761440410482616891530351488263918768409790454211117516955418079805666581853164892724579317811681114313476756959694516489957497685023744129641433954716004287544727547276245757595999950083511431892989345714047030749991802475555325092144560817123358729880052400798800506266924740508651830599825530012603068070320061922139391901450308234917605383559376416899186310518063717532534150375788045771170222719943050834031449318057578767375645025264568485239408363884759614272680522200218398135887026133089418830026612246693022175094517293132856875296567899580875864145767023202482734181747817587236950369368497834790378333871458695331424899031509242438527738291506542701408700318270742180293855962399619554977609613403227554044338142971302131321282889286508076244877904244478719387859746270486181643954892873096752079021125435018711493003569329991541390265990747936685988083194913425817320719568718015419768002648344856988622938656383207734866478377972109269301329984328800216227939657121023260237751422496123570445315336935813852404065584319675233153748223102803037386946559156117168126111149364360915130585001556974262665771459539506772632737741901183776436892598523909834256129950784836413807436739821038681597329329541948252105143776003863784728195557876569355198604375823855859281761215762433233754580744822585540373628056898348777590503601280419025893873160368058109078121194412632950718016290251766341160614245642111099232550118417507637213278696179823240626251640989963788447158854343933466139351770713033005003194617563580651201921795943433174220976547917566812122991312723843495384411138910965273049376239483414255256581428943443161332601968182646022622418857194083541252587349140544805053741017133447565981320420262013505980639416089784610128125796524331505187851980771242378155632449619965485483759712490090358392525146352937803976470341142409524998487778535499016635228023664318850056364053765843396257917315047447320792505185468490718936916069416557407751935928310638259598566816894780451189498855621100716501396997523240834747613544756344208844119999723392148623218796159974497966830732011688353696631093557070778610658888950658287854980859849451805251862166910593007979702081076258961567579676362296603264601645702233902518668697920320470573311597217605297093594400529550673203775424943944490717849377064795159698411262985988865431911067664162356616467319004711197022159357197990321320352910311373397791196078871898061398162494284155848058127456677668506468096998780069026164597281740123422906375368959780187417999537366036780595706595252901739214632406672342684996253158095170770213349209121685292050638951005066145399092475634203737161797943620813108380604962461994274110414863817557337091743509218099515955131089161077593773551641694866986958278241100032775940564973023386142944668340285564225400462919654902700179475052447868022446104540407755689961301846756013111729337809123849122438983134958802873962961407754453677505354837291515819946395068715677106601431106594011984442510269500172362150484031344014837886480253133733806868453264288247035950844854238329182546566963050145083740203081074590418898045126843351074605572858618186629002626492360664034933664359312015600201199195718378215007241986696183602262082420507341405059001341227247974226738535172613420408154334604164376232054775375112156595185093322857111520295395785464014726979366154357030349843965292585595097763785081904461270424280363181876229987328787691414440064600129199411933635835701130935609134465920200269880678068420859670039145592847909350251417984730725655969831918226913882925350055334115222956462916489675296417659620613992603848456434361578566011783819205991856591300753493706760721279529110094005740327015864610467072892622652789668281285533324508798535178523189492088230810109404591994143882898417949599322017621725749083774133060449664300226517799525165423196070389082056827443006405323365417542160433634381589541997202164513504406455082313090875656152453687376428779933577347281559583958896018597900327426368938814229983305221020707086601630151620106557498126929640469432665343814047619759832601776307113147814246235013524666849939598869263242363935366671965154314227231348872313312156653515650315520361913601910610137771239027668755917788318360505719756030629151426970971236833119001197464845552201012748589696334208399627386117811214050781656609683434114438332620845638400222505113109741959582105887322999136218441935521893637899073041492128019179824991998547794322135732299703169736823241379655563499417000930093240276838627625621057903022846472226249609013365267072816670904571655513512872121578345441475494141587038871632667120291316800059395027837164312658829755815321752078756259986847170863490510740333732207795919676298385824825936311700345858106692501353707354078272187524470247093437879980280716933808260919098754455236920645471691909400477426240775383521933702470013083080710185786801027842513151389618397637424899316317873707396815437258307397768328750990781540756297832357435186202938931729489274554105508591163853960130547314113673913512268725688254354893229890922125030068390577388872966311759030021659011065214557123520248115199700467139071769924747921734680470491111779744203534798366162110142352814652254288636804843231427581552851883321326290761118845310692040435142358157008574855573337550810626536888827098875286659350579998623704537059731076649555790599098871512382011881646398854215463080198089320703206866308993413230687012581973321182382337966270558606409588899101387821668079781051898321659424458054609397699628018778687015715932294207100020189211422555771486856289885075904959338403325649037037542157171403029569199356660506295995381865365228524358790447861569599366894339764187158299073695271293688472074348394050863427266414533036862912602367138797994620274187620027865144014912825797702783129513335599098339799026198805077676685943470535644368513446895338147088581556326694480722495755152264750259174648949241243529529161616433460814792862597428174124477699891782301930288527544761032522729309685792004269639639365126395406161762028503307454735839904542693083737860822896696019284646657535308513517135746400278012296158935806101908331427121191676651405887575902752159566302483031290165677317425798226326829790802469196138363951459185405878958669901877605754097013812897531143040882473055693238661842120730759229549776634719598343415295900918957254815223940580105058830656224426370084422079516588350265514439792721612471835273493106162644031766540171778394835811172081015049578845702764031144432664341197373995048010576524023849573247729522130655333061422168899251049355889321076670050410876840981120992642188189343828433537913895570833607773414785666127670518562082258491579149050489318511907663626299863264114671115732008221796047209250101828185442078021088243158770661439693119666424881145784088645122133063264582816501741834604246265717257661146222370205810842758796029308048922522799162669000059437805250188242605008290383898938885554434609375251096425449809714032220291220713393899582153192031260844360935523512816896563215904501653954769984643575406175688283406294730176401721217360761804341493241074167109027622740910678405932589410870692227879784529210895112512519392218732361510395154867430866174601998616418047999407304660292317194258686041282575721609580409653215626563059575919134545867645657969042267210067653348510019026582917666059365998305151449790945671808694344391660729535398209326382621543814641998450602579174071280615688016074758212571086058638409356490232918638990351201923658496925497245586249619187998537608123996778935338236889411392449722928719404891669107545011122278589123627643410336057971961838151422426917416144800954851901821797766188310678332156205066048709371358412888099030678592014415837086242828074882226538680782784668108431917607287590419571841087270161887503262718578988560425217526212355431057026843887602206339373106539145737150654644291654404332297046922780870040787566224768153108804580560774655840289932483611886721262339633684152549682057847329784085551858834222978021827639141819357736355906889327550683333746464634564013155300597597583848859202728831738800086952227565595735044690998218893156496727604653776068384439348452497146519944932759521070069995329833424048397324055877859717578844388492379641791203960903738052013044628843137216924863572979301894904403664693808129409343377474991619441546316011190743385534747747982799968757189785923475181389636530597348392977191474966884046032812556238615809830298634996222253222913524394908684595494038132394500607181947172757333909909150551349207377476722645185300719612206340583116905208085833873137911985503116192693029355925567260582565796086145502723721513773732939666431053791909323214592187373827581750549588856803558631173759089577711852965104570702983986802926780723852527726701760326531242999236909217232839226726930362142160166326551596599524389355999790327208489168186313340208154555617625675365455554606539884626391256071121383967245888768173700215603350358398571464339360060973596563963955494876145858302224294446323202156306760314561936531635906664714667270573959744727056150789654652314857388432079750225193512395703808507967311012082051784962173405942121186737978174960894396109493442147194196793320417664636866386236271810299591311973858975900743558968194012951916660976374345607120919263025538111807262902386211422031990900370136852416728540834021473237976121035454415082520123728351990921412833332367570197537062650338685386723234009622672514963293019297289117476227288426304673038911630148079144207313499510632563253715190691933072022860561010435165438897821971035285221446255458878989389821148309462979206238833619978100055345922244498657194404478975265943365687390239386210778176380175600719732397847080563621384900568403191107688466148043663485835442177994216079949384941036305338192297298467941259854374502163060873599760561488391081029587331977822340278486377027801278077403907346652678830993784364492930762301383613443989738030221090286480638344538887157763854681231642648777756229777522907082193655121474093033567208293757339757706921268665837591514896739125422890109152904538682524544578297730870529601719575126809588746218230536051101150372179346097673498226983360556253568845849934551203756699264874650729404233903717905409211443827067764916953227760530234558749629583904714911179351184243292476596936946536924572254316916568239773696572121198462084752881711156154013888792716941538918106252703594383521068194011836497371272387620794807787769579880343904220157746805718094152811943671580108140145600217970635614527736483085230758045317096666549453454197226117270199690597118813107723305770422262786739028164292503974425814278113944998076040834388037948997898471802292354507231968855661519196330063009449603108033068935866007651125281429533886847948226742709325037043196704070162342224154872574951151381159822661820829772768216063315656041725005718271748955246681441874813717537606003673747815241521729523845030369093857741550647834831401338732378276767720636608166588183156012205253182019916821296673739481955011429651937973083893297232730475314559155849057641587050027538119005500643455651212998045189823253587178598694501803108255769958001964900376570402417134394589724951128745949316456840029419285903545384849340429577641214889026175624674175651251745698677603884960247663798362520216612164848018979409340900551096635209955958199565503478238238235441290232128442942605190339883794600053065073566482355081538904218335907128461489243421901851742779593298634776297796607347624386811209307415586856048121237960352349032253164938485017611671754071099030899679532839486361819844196360875518202681389503235302780257860070925537573657165787128751059895065612152659105137639726991443560265229833434382022999666612432651358849626584537645808116738019960946411287268554148670538675416559604058859353621518709128139996794072785172477653299839209907307917509573298400854862413701218174761380605073739346664596521519771073479304659421418199047890775327130542805083504593174630281474821618225861785040992490540829574732625110278702482025312927208025701173384532123945855779953933041184099433933339314172084248522758368714432709706530974890879268982258018501764369646807391237418882085221049336542792186221009607201110087957430613642509496742601289503655192106594700392214270913509156395524390259927332323275113938552478741012511100021820709492485598657753930624892553673693036046808246226798172716988202478953910491090038645831933021248752186556851590678493562543301982645952591182934237741446787109665250913343164363271822005694093266944626569124506385631554687492563955154024319376516807844918143335699457420363085989972218930181528838371925126862686315626994535516567778973648341691239708916079289994489232045866849342414735413996288768278496140400850744210101520548992937035292694300112233558143769629942726295504058705569417596276861547708192009125966951838615286872794839677473503562069860395563007889426301674005538794932686870674418759426364197397980430429921292107629695193992236380688203187871916390193219298871770491741202805193262074277387373201713431693000766074017812868538538432795970626456592337353017731434528173372502671021617093405038999442335763803988268312035173182541971882802416057546766156125132665414085218445064379197727824980794413953351071204908667465872386651165192228556126648959882408181394447916006253926159226489722317726549164185870598534851913958746856682261474885635704083378177882723214460925953083592077586050347334273692522108809815108086682489143316352611504369549212945914232222839717648752641998526477361189398996386409712536592116850912042365412716427774025399318493046554750666024973072513066500011481995359813221237636748867007076812150651926017198933048366558897731425648208002409013115679579167504463683118845869499000075153030601464561647337791887594763667697212632654225222358424570233274913934962175756653665390267390177683151551077250581505643612045731430769473142031300486228028075979338676383935979094214221556397064578008202271219614359070671435781876034439002519703469219244097455450305567084676593266580235960999776487627632104428194243673281375806316508854072487163754876377076144082608460858134165733762635980220029294110149051221736806316256463187162276543967503756668687261109816237404354591905964581281335152888196136570166675127917917799109811414195322280861557872250518277203046182515656444793930787165458608050006363357624645757579847259064432715911573395996443469290411625088459780228292251540565087956790520037060190295671181133449962770707212970926266078281923663075508604855401990671262385827610487694500389211435811790992429179085730486914071665976015039009174637185634234947831015865858098106228611388564734154289631380315493544081477745094050803676747734991861548902186292065067881609689581928588687536671432050069051141079766886366291447830582908833888294222992209473750360934953179376386465638641845044027942484269597242794584281833928804738238102847757207290641023870285542667008602290354816649711576239745718550120158117993392534365948773258674737522900978609025307152478935248416399982498461137753861556146201394174364612725294061021465355045680268201858098474772195479805622565681703821023222945937168604776806204877053636439972660729814720484184277004665597162970424447532650267637149836645557271269113927205550268972176749710724183281765911742312179503103301972884823680504542238217369316731884260545770533182079275861715135325136487025297015180877130126333185175534283665534475268445159734634040655217125378748559764564467390018502910824181634271978486831359442269933678316063038196240907323550117054631556861862254465728515105094808898097152388408530809171694465434964978849451275688922359568594886993866077104338849813010042849948299897207427853518799485724717063757419557561903450170563897791233485407619834492786265947264227072663493819324692908733878735684694613858847149470801325124153783044942953144180753586732780622527715309148880895059139599092167839376436094211976120941018003074160228702346934684766866301215376671026182409477777734112863878019483716363145205855294987346695650430685172717411159274266102911498734857311195756847612824350767616946926477232430568086929803362093759427799450467685784095647868072813132712499082034528384065722329056437185893656862382697282014512715733017417254439943075692980915180359867662511954862426188236698861778631184319193487913068323991192303971853830456560749546492567358179832146445107021840744437560866544047496069939072449657019958761345160953164600261072260803820831093717720813784993080997692111901145212992971007917014946409024156592160950518080118207814257794363885499480857305064181861894510704984866218415887702883648504271596453137949401600147395991649816217751192644004477887401901880382204328123452279763692923643232310069613579804878760239288702826644962437119192156911327987306809900197885259793582366445563115915081225192915163931571521275136521976405676152108571875395230867531025128761110822191628898691632316132767801965528206994714437167639631272904961443895828647119181703672346320929099293861268221320172213327930699530187470290062049570878201816102906530907535482227584512210760045069979431492436734139912591285699629998946660625537279945380807020212061885928239761934122831311060070486616640524497547207100868577385454554980527648587137347328723453371165134264387378513287672403479829896400971755123004179754399138458481477670223993248308241408739898528252593557013893986576806156701294170202276173064307642609716310797784650015675093955566711175852773244191642444554442752110628889191749334849268686303092430974095538550289920760728689265783285306188893978784472014502171546606569976456928131965466838887013987397394796135039363637805759670874364948815560168574208774915592911693698675476955656372499532777988102286758304770550896453710494173443761783789049459870067377835461245883499020494030805304715711162565855855346741668750632433171635252093887253145037927724691689962822883470886460928856272720158217596944347309570113892810227267692100905323130406755055014237510408758497182455445258905828514752278902408658875061067590003404265024330322132715098475122427939361551983689925372652857485145747426440709898099430515487227469027377334832764217329724438097332427268202763803362479465115530737224305156398807426753239187504103895293043091360622402317272855563692285221529270601915710204651463020881709109929351195209741512020952559154371732382086259845006782175136367566091131076083990862843661597728407559209990837453122467446582094520500783469609458073308794113741192664916418119339088890968964394810969986211532709854581817745128088059275967337788497323197333439719038589308739552772795188017216253617271023945582200048389223963744458750053445219947845881458379293146218061273501517157148331666305341780493212506067573460480541860579415922580719938623367287015493210703289059939059225535427813197941535889185695710306684893779797837344667528707708307972450659152510253947242528892183344929521034058426433678390332448723304586991391631786124034207169213733467314011727613033139062414599734633704486618222471228794239095986532670519489444397682124758091046400945662062784454420474539085259600800256248485726016542889270916382998828458159568975695230073264239212183191396737435781279191865981055049949409398760960638946981890284255402618770273614546200384445706870896362337122936291265817269764011078778617530238192067714253566525168076588358571829609847390482731529097105324198085373851351449081233799666896573028045106757507509120141773425763597056477196736711898238018293730745919535796089283378419178468997048284815658615060670295936256661284774755138799810705019101761897491957165152139854605753418052795920835316325680556848200268025797029457678460751562682714973516503693985941662296051306671070748062178549894590991494881823123579428360402368344924073289751085008271940980425221187388959624626745327629817920368683634209476943840747658950025427815341471826035239721509525113084346695309259157038524418528968276151122323666635450729664133715702497024183863909083184876781496524182013892560456011919843285613742816149187353890656211610550457558563206112496181569517375870527564097961385236139247407565130174659875183690958424838112547579864279708042440537458612641327124546245012291845912599693823830872804105159079365889762557807086229727765638013574510728821027610132543372718149115072158569958759842795040030362450875857959858703328822749668445019514560049493332830583454886600881037310525733334317635054450997231484358340676554144173092510840938868356944055672267122834863916186290025280760622156647102108689097477561967974135658090910819490098805309671141007490764438429755334213458325920432242146419990190559069517650926854517822596466395060047729343323887208335745882070093000389297621012099606910378010445609441823737703138440053207368242125678558513188113181489694473187177825829629854437523493087058744024369253779776405141629891178668941865493066513501050147132207720787482574109029231300178205784427784353832533227489282853886468552011993838098199555548367364424055588037692591145170133688880202083244108108604915057521888083843389840167567565417462917065654743510498546762009862117812229511592206334572686489400237183570676353872200965910830706410226514625622514438793273463220015475687108834379093196924278805555578316025560886407797775941911461069018514573502329986773299696565350746070883054412483589180844327647129394987234017225858341421123893830084028343175520585178729783984247175265400140643706391920431990641994650915410357877574400942600877395235233704569910475718657556844956561127983029755851160135524446049503992104297055341252527872091628726894451219909417303185350248101069758620474044741081079194840200603718087070499454441192360313868812236399136220089890158930013858051577727521089813335149749542581736837283365003659776496291589124842553325161712872653097752377296064455432331928128264474831535076222189109492019949540965659478275098341315107205113423813583962781115711837613068796283793506020349252658107180247033845012542805685990285953430115569941528908582392261495340636276948736432756681770225271371828895902011955301572665070669173211751221084039113780121658874364369069280391784512661102948574500836919312457478385011795153510342405828508948125925222192889016605289353302270353061006119203977896068464806571404700646617522095820938885587950633045369455861059185300444483052926695764175430073924235980442234229468840214069228981792591617000167689634091706428215250114437736307136802769413346255999513145157753842258433014998165351532167363638112942476352221126887785569326896977896702880868308288991305103042935432132119899616186843300767921065211796435729997825085842080769461139030054525855259674724301166257596195908622591497036214101414820794459804342583639346264709031324360641504095546630726331111396910748352548163777854149252028787791425344083491776921760605149829167380530529522484488344894388206158126036325770288604176323951394312412102651429527816684898937196293167055651340346413502744632087890662442038732812820716395626207169318797463279215418697760622818716490521191416558539738068411183508089955185475774991483924397328851001064650313596447045531684897835229807781568812481183892867261534990229851518856438482596478999551021586094057517139763143330587124657543203715530576603239918234362410181162200808327102262410752078603081542336768997771233552584661570563859762895382949186688328767669129132068156901773828130950140909340460124169769790338832725301832772424481174336824636631141389248376622914230338276805919737387301791762803982547363278465578079276591988917746761051919968883801668077927313995070310844844755891057749854085098445865095717917541984666477252316603221462041314136373141587351735719005011740253174783599171867956992961240034988232880867737726881095012026920845619706806422805554366167253999843255777047320180760546976817471861617383630766835728027136326933717880867914575424040022122962312656968050808997497304593078506754681516139807466499286589369432205815388661935007370990268235162605512776856668558000702268958663423032118877210594288614384557779610880370360494527376312376478559780747631858454540935613785723535801415592394849896133222862104750255028845712830101897917845298866125442055190666082286178307417655801368856050798497638524067582833375309739741252544805882019843500111928295297491201840079190467610068022529567170841221616602467012735863361353879516927611411865471800688912740608242732255745995888411083994019137701233756907493239880693560663960770989525871806332807131055835392862234244782673088841857432588657667391827761919207468069473232894214724978101920744629961206664614657456039927578570654893227321275418378143279964587307385431567480028617064431166886158168765550377479466150903823800629273008858917061427317293388875636263345252921791461854479586610191338802976927888949545501548396235181041118078006810771953551960600577864723312944160140255366724922940564171764093095209483136374785351679292389682208548475401009776847792843278401789412686833638675047471249211774545655077716854078830110977774340294076349097270631523962528392621722487281681537431296381440865865157924453473549356606569041309458758189437756147595571373294739624300528086458874577816827862661754172603341779747107568360844295886965057439672810702857657597198861491265800353097369064852203279916594769109211402419148361363793108781085263131659585419624859649790117245576339991185267123759255385660205934585255533613013965276671909151864127562539859496787649760887962333850516600485591107013536548190157411975890716773589648627258686999333047277374837364656578465453151734948380114654416049571343564388043084018662782254005476996609888933203158701451159218544184787254659418398426275074538255481259676106793379036019609211643424368852542168615003123260273780720472081136585128266560778380778017919506758125216220124924178708849148853144856475778947670541995215261501720082761273393907537364324990854373686763181829189696565624916946974014078237692828172237182969484639311041612863627814631330233932320825224273515759729217765643077859346868612292058908438292113047960487416891293402587516409645824767523614006475964976547399134473417403653850995540710177068438571706209404111701422504326190460797850990372313122459259246529009763032361694203748556168362923542635301404919375573955803939658428325970062374092173244355206985487792870402860390260994452935331322358533791617563251916314347899500203006936018604552479966493897508036970573983566706830880841898102366314248529612377056212370729259290531231179234982178436858540618581820965831435277139368153096937340541443988140280156385232174116166609156495141157217778147498169296196006390053965823082300095685842296122611606821495406132218317271365812619050165270118979858593387449911295237112025172107373895480401820845911852396985887296144201742170343886842819415377384067854592585276340222962272737478856093031380727187253128341568093092643691718464675822141682687445925286909639447067910424273768354868923827033281201698859537390361742537446430420652454840173304210492161811654250655789849319514837925423179659886204470964827645043227998174770931590603179306481493002452118595371910062766547554297755059801895717206332008424288086411323512443155884258383677156837537228114166932671769999654947019316590200137430613897931252810483912007853961915239977995787303563954911616562698318584747599040780575919192863105560286654831710073643478101850472531178045342133245409166658836219801949618772540802719582102002094216511885155273654296089070272748448814625686037292577615797708189425032871911827782572264878440489120295290096869669317459795592147835261019973604763014343113313116891783509353252167788948539149902547597819104998052233827198200040348868713588962256757413919940206734608779347850721979401560863422761627215613771989847832712083155402906308368366636174508602450273053570199248903017070553368674176076511607060058601290450510579534172928168318038750379391064335993539782241806600838437475197351922395088411853061340261844671306961833730050775977092613617234333142755607284381558491474368084111735427678332203875342515227198460911022427364586704099788599840344838190380424978783499971338216499764494751383640841726213924373802007153444116104661537404077112340130396231799544807080116691824879261074515568403812640353577903964829481253534416503390394240082172117310513505670660904864320261165603439424608598506141420569888288992057967049509236352244613883180400224975571315647803306279749501133832926697995767727523138514362919058983174568820612309408850392863119492269045164825894440517709197239564588068554791124253498691488336232256461891553722886992443326087546320094126563015226506171394068774851001142629662443474469365813831469089252379767115464775835170192661514061393318940228967476434575644591694822308864148386828444373083749057726027754592654752822029272762058834635029092547662430536875989448040928471810526752818288487897435168700650955909477369124412499822545153506551228292484866663745942080891160924524654872543674030996343249230095373270615180242061756452725862072520432550431476525068776392586163407443387554053935207891468631479057828494625908005645369785645414774373064093071270283912091855996671724784991022518208648631060155591825589430047871268980419521328099077339923293929258934788177223244097999861177517344407563288352141166905664500005705851815566587869519005096269929935948009921087928924807551923535894693791180445290647777356163262518205869850354419682762178554391149620835114990751816326816616900016333936379137261388059953824059150783765632551460113926234967367899281811516218615836651359402871956056154462730960041485192795625380331042637008093506769355202160087288998110074845389482967389704036201037088628232974813757952077600530768878657018143210180537427949791194097562089824056180472886853906729355703957614653378723338950702971487638505761474121241961290155569416127054465046491714095872119668637243495027203923869092658315063049132387843977893057791687045827625901573558741950149539839317685400522122083903770061188271236159054330461811830603731575435541961285671312626408550897242605587780363858413009709452639359701369860541127845916427208787782347299185760997503525189906634943523367082907770367611980839232807582195910461937139002704219409335596235253687202266801102188134968712716815565165444565360018528732075059526464622310672578210455589514927559695965285464312564129189013370782966005569486622125224463161610352594358784261831638713567329913481095310422375558671267363540016655758453138300602090756259232072411684926418663691912642088504183410541682904152202056932905276869290655045687129815517257797144571114245557282775925652316155922384944711866437412874412266753074749625452104895495687660664892556147780593928981201709308704811661720204883699897850296826203580233870532262914405724076862481905352759147152030751982536964093344532533012157249650530239392928618106469671981535373121259894944432831220120920378914753457316267198082901802451209200630000796690253681161012365981869663532614537730520443007591065569635499842654246108811897308871582153563514932412848165930773437459190158603854872954483873552028427802815178346374391496756312400770033394240390507139998285970640862626948296311593709527490055311215097869302671508547579968739543311601702492900945821610700384647915421755655567967803341270514717023854965277290828646297547816284274171478942627310576790115173079458820985283548367501613622607570161050286136873134786371456844504475247382600695794060565253522976377286544309241886039953182940510419153175183331825844267034244293194140304841773988938916732077908793698364316276789931180884984455361510258790354359997936546293600912982506722780262124668151867148439110522809685197224281156895028844325103118609183248863309663141827586192579767818751296716207758583269846016411129623409034781144384730595734051565378863558686169380994480382013321966769886563359834954563815097540093652650448899614305454059336316002052910199540901749169377969996836504630614339472574649372030500353199372944541137585745924572147932441348229887080060652478420342368365897571715840799899612250410037015689863050292407703592706064120884527572837521257090983437097634632408452296074151139687192023599724123664389050333529886941394067278572584717159586552730673077584608696937263244362065868411188701124912430328338439637858072916616536722082335269087229407736014846701451323684733089959266752983996541617841085304528017866076344261795615185099922032141754786286054982907216838477009635878796670566269299651625134767397309560970609279626358782922372782790865038782586630968392618764019943834095215608225166967908972909050708032745671794683116205121948957966179924735820028746023158258522030224383561809412146870846857698126118291572628951772490341679366499126376412808315450230513096535366619075435699291491878305737535562796753779126533886974166342075247398317921800005231507598434496534772581832431844357730557537326314856412995525551749226508493470835971132666610947986468488361913347927864600021013026260829356470154755887613687971634884324455122682089233020532229231237926061111089537782841114542474131141866429481833207240184518459776909241488468590587733039711011715551566858507032806166635231224099464126600800634810945235124584770109040725062589332240689793320948316756207861828718137829686532019109910183348529907560455989520466179891465333958510647850465902261074497048596098555020710176866074671979196225683533259436768607146384049235175040935680976558966453169021734662794617605539784627978150658368486655652879006992105378194657012441731900760290305384790756139756941987170903579049017212421874490397356795523112114865074603073645437047300121590445999243004586978700257051747057319663384538190048369912456689425629465395790698465955464559013702068518391723634396795346810298375261271601286804397871850267254664470818648799766228714959455689485141837589174924422832284130922620097414199425119360620267952971219983920186346407350366501277787839608593344680093216160436217164229719214946704991760073327556436467146212422063027788401868508189038438596251005588707089055356429616447742894734678004655107515361871863938561730719153381514753126365913382727103444085481169867967594259207511542040418693911526459706044468249489033488608284406993355672945631382731207446848285292289621364549898061348033540529381085964764839846984220106385497990733571275903504861549430587815560300049905201288599748862150703127935838146872515561806368256015938847703251454713561800214884687537439975484771454738713252275312924799177291032538507905372429118727050016516839585873736996627992166592398319398994539949168983263662670454736118619982348267415340693775088760606835487011173745997322704189823558715693860157409310290573856990374754753438770709272539966162008277295144655721390464201575957529127950325936343750123817589614858583061209073621894393489424745765200767729196794373126960317347049811281585442358340406420328994930594023501230940958223465262758327746226231102062367041032497276581350551191242569013496440692665061277768281031819480627722836240477629699180992319519735192815129834353689917460618642306465353645207863151840233577191183129722075423449855064855981584936777918050295296919805856182984694593632247041118458081802544758938136268607780299770150835727354839664106460498702920577283559016913252522722011957202008774708346794006699446105985601726143548914291045934373495243394168501689837966714558446741524114503989759578346053394550594754692774993660065942538484543809840603767543777973712147964994846537559506654452323107148248430171214147301104319163249563113715282522203951162608746918647731582166833005927819380408897003809943563554472638848109183975757438652448748872614235028978438749519668513166984964595313655111420595861668575840751130028320181111704381051243877570480688427233434634939857104321067972781805584979570718463085228086323255682416510277206914209299532610749186421135031299570659378557751193218439659625628250017222314972208666631371595627985372627672032561336891570723576976568018296290254645883253131026714149203148150015517669134228099787070225967527503143513397479333340447476578312431403041859073241082752440719865293297309139627626157622385730509270908174235962031994898655523896449723648328026366906796333966717908966731579945421863358566021589034060159648561048888001419521701123352333890017900940961464322261420258791081238960630812682094716147085095233052943753810936129679947200788084523621529393193469009265225196540940841954304427226608177754966476814739921467754876302539034053347982009338061719001425401422529558312985143684688724719219004912752584111254064799400698929119933828090251260599014530002173646047537009959192091960147567936075430379267180410204462953587790001040027504079309097876750264684685951396204706885055353353122475530157327951427389678524641393506851285543818103731738499173056562841865271085870412834626131789424477503223239889048158542482828084663558999521627592761061943342148033454088467173977047127119169598593356764379393939958178256591171756201338650614089598109193443112076817481197066993552610769864817906378006787964175840916022901321387267753574356973669879506676737010288761829638889379933862913505253070430750745853525305749338382517781680529658943583777294261214837049957251512822155287754513474058375519847008844508995873176338020010685196949911371670972862176991019175751142799316443422177145588006020300506433764631077174991824365904425203174865447091914002335850412925480691430750053469345245543483117148040918008389468646302969728684392194814954562356749409632264884472788464090359091984384065368195319535262767063997443704628136417808282372391435109078718636514665404428748987172341997008147882685190906665746378615140213527556336581158540186485226771079670764062009255025586254761067168628902413326465214113443067662230217781187492848653435755314223029178218389431075431134538039037137790490981085003319822694412895125492517001209965143496644676815549398954711741700900159212927929413386152837139576565013296617925254823093354904116585968541061903391059791652583366027609869011814110629259362561683190501056227096663664196964100068273481906772843661889050659995365996694597091901948539594655308241731901356756436031708456577830486854913775275524595301596870774219522436317923235870212197278963899791024042227832303935428018858438711418297575160886884653863234102824820547692609390599339602576817878893151633121871213664847550611548564794520632696951714403140973626735366046849287900536877049027553374268594435582901966589206394845951210009815403930913613582072090322486809906981453423203512925458943449481131267055693628879588666927312800294630199886262332241557270360027734274940367563307791366114143124102448307566146450521918012402708234606447148522085459281137948756355763206857162514086925288737828729223966514145219308547510873426137417349291759292516079574038687035898611162667496360758660334501417957457881537382255941568205436388740739869736559288752153722178558985416767566155005977631504655642980870046728940125149268101507591114214669567926735000273806470984502176183152396331981375683759843586785865814104527987004350509402477787600404503350785578995338489963692878982436918380981921508559072063363405793100648541675982273720213952707615883064045311597783055742243176810254389772084363483431119734433475153105317547316456616813556153684108512671096460381240296288427790812414246762039721719988840034232844276660067020549293617163175064256518402845477813763088498472384206278539809826811294556781399250744098796293298445931072319073001108742793714776580881254378519843795708178379406330433007942972764458419891760331153234983373317540077534882283942468036730507203517907425434552855322015776036652759495479587802845168440232393659570540897935260798345326584846945934654294528951954635873446041565184400693064351207942106151864352502773657739150634876081020942214538998745121153805341949409318490120258269298459873287800551922256028367720210819295291901570518372060980135097038637257704127443953399147194011568878315055023906252711759604476525740670164909706453019109487670974108803477566751347144412912565044863939720234957695509189959579531025326409136808619351574639402417298162264486470318687872310728404751099156745559513018748964202316653560696733979969635822746143176296655713010196138734644522378676090340850027834252260879912412649892690495333340532126457381643291259094114652577992225534669622704300824541001923201536998519315001242269861439695986510819203113855333851592937733279551603346992334590684581680496904416830841893434952669383022001661744286450822438850699922724989111962296879960772409691813086096713542201000297275183637680085351901486907657410157462024978344108623825428810664207678160263593456243595950516108971880288807797266146526634921558321983355831522728011566250488058743269034093029388179413042779851520775610449641236382839369397575230531215738930481603395340095056662261454059559602990986448292372333080408853566262044601325485827420592696267894245395243923603041783348736715605235538783895975920198141662284407094632527966900599459619181222359667499582153692197001752641309172425999462862265834839522151542580539079317592535146559586422427409986959861748661423213803720314226157670837776954883625398131266199907623550530475889474760946233289973151641731881819046888713485454521527625787423183890756636421955827994528633021943234476532157442950672879498914345891232282764036163951630897258486068358374616076194071716463565430657698485086321737570744221067848318223595097572468304338126926112642723181834588916479566849648471151837270444030221793251545501406840566934632381739790555088342463281744883081381753205448723003398402268228725164933035150261179536852062314082187270909194447561865525676527530775726010192595840947111217136535009274107215395472467968581705441458242234188128137637991362695306774261143228174083286941717223510396377825565078833208338160598413029218475504908631547530261273596787368573278548701230061118387426699750882358540373069243639055133196945483521191751384312762855539474501427524161476616747550569234920761438051086947405137287553541843317497992132172982255825694302627502557385462351172413465989751005862158426903119961780972981252738624678033483314891627732635175430522801082032403323683220992998687939339085366369384017175892181445760942610341718270276812697315987900888226302239605285739780440647640907835505921297480284848917232436716814236075582010846070118651803255994593424448877293134917109687526970939653151195569724925576713750452374814944602956715184252764212467084948034573750483613465587529761621590099995173776924262883426173041860641754288518996559687424174081625996774191178311800152424750418858837686379613968228625863844677288991568696974763589801304639751369011555079597837689852428959417418338357256265803317160945113540791695797627698749994598205317226725017858408031483582064417652250313254444599433766792191711049941322792166553050307338395516922788811522078691044753505618594379140788852651673485637527401872088182188364517975901277992148411146276986796316044844536592669204319631104799620485641048111050532704446431057550458877950279947369699992820514607769836543590755439040360465587902905966092864321873920737092119633413299878525951038513187792230222771570078242463667871247362657265688495203815428696349811448820767517981606251940600029545310690649539822310066588059120692711030773996833764926697155865578403175639525240336902308248657690421543317645195796041623741389016894893738384430377839533413359135410178112468751179672826349573956385083800880758766200532200824539924348155055540790865309306986701703845810453494429590779292827303917091165605276126748427558799517447458605149222905692104369810167228619706617462120559260694678642973067090178810786069584123066932340551386492405895390737730972820450847346726018073260924699019726255499176507500656793830376514882780981821589791891651664700459856546728941885401961257420934202996011805532831299981026009219349036763440974514758589262958636556572585664991441833425578944285195423873773105213152691411513047688914936520528753549770244612795095675760436625915100319220535703299528957545338689859671238804441452825580495978496862350483203834676228346288041850848786254250061575729211616740523454408865662385271495983652285931504217064177099483028484686751959495223136311605362878207584870528888845784767944865210158623095997684527948770296067210840841778627806960163342798794886753294825209241848875648991492924503935914872043442322395396795126462888950001844725448812040693965622674238918114031832491577871616199512018909307357742084854231388687818486701713167493574145124610085178584381361334160599856133227250057485039201267067043374520065744175734646092093381543296942970669300337946345170831615862583397737360808508735431714410995315200942637664403709249260807406950200013929994566124180254604093546506521395227003188021759721192387137362794650073338822244509158787320370231402144063556315895020820333633842858051327524030385388285698805090763792995021500238024520462221593850445358807518678398055627451622785147931955976165937895588982386823490981192426496165996582272366298896570279544947878907558979707340038584158827528274779639212158158578968044578819018954595281447927144012211457536672461826012536977493205700757081859941450902529538629989626720818642587351982085756662197382827209898255657672641949522003292995486297277316908216934542646843082400338776331473338028670555536363815242343525323757399216322105145576403547383224523301160658594246488906130446517282760147322241362228687339864987208364821195432326987804248981750845513422482312045469487390350802254108111360947747786401918330149269742717208607712977814128857803875678635723613338680018067273461375522398956046754672519682156716710465489816781949263651066587339505791246266429408687451828079157107511563895132509490886211688646854642860931621148185771669352707452161605209485626911884931306135611724732123559304445308964354382712175979628212768235879593428550321133461859635594937895077051879408142878329066573422799619957211002214414530744654490394194153596986765158723257155226567617702779129896029390226356783890768487257936840930258783343717877589887687212012486330957608711930913241634449743419242462359162709999247222564379321495512909155599637438935301846339441963493550681953590523166833714284204397790988988321526581570013697279448731367502418489692783920530266542701266697570758076627094189882985617309815548438203025944674199179401256871053868701954408160500270624482981079560570350023066808958817035636378765489814905591956227695740180375910328782911708969965649946191850368931024652350443102411764134282490624862030920144825610358090669787608907858057660135492533785968482544707111397714320884921649602874494140700971991786658561223407058686892277059490718475582556852834889139359604296047552369996189341300749722226848983988547143921548742646253908371010170229418088665708021586151994159659646090815272968041067588585699525469499571104428953628418547492218357415113700525997263676231821129623363879271826216413182999124500907644344702854520712026349144585821186274579409222538246565157649829998971669824779462390445019763567200873688989783458309324363919673171537280308364888555721207523002238437836426725330356544155528607642334199873035119236846726633651521603828985246768546228106776641868312250993985900144722218072017856433629449762527863645322343617219486914030592617721524822965788457851277084047223181116819513146739767534349287111240315656867574024196973436424533915363969147342420932989690356832294636084973631163736912626718140083673085791784467798561256128038381257563344760887978659897795077931122144210384783764180493035828124821075092232709434737796319569159863982297504920209438200432737308633250071959838067048330102407299493244972938457457046970807804948494242545728812305971508081510472477323797390219637022669347078313376958362413766286806290925969537286883404875654684686818158017256844239405475656536076671705460438320200076313911654123545810827053093299810495974406281727943952821907941425378205546072811068971522273057604116081642624238925297719212575970714834203739367868650660470794355170969932508925642262381444325941904108360204925451300482366199440019097995296195861403038917046486447484804873763756239364583227672692014617708032370954154005065029126045197092572826667075646712393007778740772145276605364120525313520334131289449844519662369035903707864141558936750649756664875337366531268315339990136524311782060595726519436277571846548874795517189476395315490974938914638496471419883488954866300016729459527764892129718290934095533947330658846972695821369448178701103252072005985263513389465045929866440366963221358222971374430244425211640049902455266325713701594631374453997901204338970199066520293494166250682552150649791582070863080144905164810900667759996427879954349396783595635063590649378439638687483989605841870688574048575564064077894530758296405325672071735154433827477576902623057301611498252257139342177622184291964162025072833565671015710874326106074734027958409770397458582643423611799655749139249063648257801685911286308980283456202359321363233294852466170058319547097763235190473196572419938682299022847225852159997689505055094425599694637023563565698674494812094178190431674909194498028718789691112528663667278567002989274500394451212020443478481984599938200364408409180677622258169238298023993019022079363610191069321563988020149382442196806719221231148735359232057370118413523287924498837490952468512207704699516819700876644548536643299315799487315896028522688031326818641893338454552680579531856925897134228060197921090156836245189227775400764364539260089044334002432347448648263851554787258370117368147394109953277572329050418920489703013285901486893568687923650480121082584366900209898613452703181846283808203989983003774994547995851298483555557818526949229336314816868611606409218143576458652831123437920837365206830488286810869790342483221052012740049053960944111807104495089528406235711390574142868882324611786696789225404234789678880017400826078767881820627931478471670202767844506174403227952935884499340596552429084278265293685895861364387895963964872625129603630355815812487957321578830298329981971118990888131419123846453780699734457798146382719347547676014332138070305063767685732895664768815013191563267390365875938934490506677637454905405000693927539161242654830452786456398414677449527306216838017859071318606721086231286057952600019607499981360291798149578171012560153366777221063662005431679758430327624521629717993185951395373967849517217327080983057646879652062173854860839724868394404830964649661671496521702021442534939253973148564067249914643089434874296137554178947948493981530866173410127545852060722181532867570081799570036840794501254752843420486685567333848213437748376814713207952110312788806935810989211589536900442561409053441054062160499400404329692410364146266363953053538517126169753127113760042609310362248610942004112661894967684444264534813377130622659668840474449697406816401355144160106582525519109034206986624045118521857648609856106642494326429458963834222659161690152051642808724564259944038308036837446954831297653064009166488666365781302161138794439965160774182554273400616672039232820219405959184340689435677661823495209304203754730598745228134581895475831148036949091166082139322141523282214577325264232388402238372451486157211829659537361526343748528732727896378875759441373428787440676339775730323819427399085913813355957681970613654615270493162378927030435922960935294971443611977118434263885026931267489709457704461363616775466218251249942020121327624046164476906947501247704133444305891614109171961825205513124023948500680024452203401577060957524194970320543359041897508700049200659130709876327864959992629888576741282496235120076746350395877229534603009586389804087158481493345958180846470578160127971471039823474203847090801673413216165852258937732045169571072703717288310375296266857329441444173623146732124621347948506798438002444724742929651195691305825052841329893548881016966011995100383734277428179445094507315318021646377082425405555959127804352514289236026922002358322474374166370518430244098875296361361864134440901014971953031501365317667974380203391726329398735517441891044860224460472645044215488075090597383635882622256993940988097235244867915561090987667149344190647994297998598463292712429752373071997884327642800511824546499568995189218172481260174377025188866166649370778679143029908637688156287862138472516895666112885789827512062943747030609899512377084554250547349967973240184037784483484798368240719103946767774590864650466914077541884387117396592338365554456993895716148958955026403911007190391235503134500408961468912013209634316172636714902138931263445217062425498996938499348336897534503942013893878072526620388059702025744974369260788842567090545590102826376208353061886260638043878005239139190264744818635338596779560102879933879590809115803803924899590044196462919910990174682246952131771361737790319081008387826497584854677679612761372272961684172649551100679729790208876130550739101642265098831463658546184676264590765130693954271576205085004498606129990082120833668353943413705072697065219967095466842610831102980586846002782097817518181471313175251879846357776559735426042276686164903553658471559227885886692366836850282752638838272358913076068282931032551626838210298916271244774369180695464719012203909824908280832162305649681996141534750082764716950789606222071715052270150154534857304255358823851030856471872269409106450623215047472846110389315510513573441437584638616646798827325519553170757968344002796509853250154814085922282825489650273606659516131007244518831649646840338394209539816169448114488177143563932860027868336655778361421856950658452313192001031189748262835300861419777606825315650809729504139675362248750316343544840557088033153909263136655294096233916334092861704153340570610121108924996886882529196724473780560645287596408669119937334916582250374045126122643202233374716582173011008128617890271064328327845804843860638526893478577524892519393896076582459341181510038948053659264364719784166532286481216416924217148139064024858871607129447668743048875170808372862395405494150942405147716488095357392851546604553693812342846217273401397159486509963414870085220264082514961963428663163861461250926233006596840167851228180109116245070282938143258851804577467502775018259852865310139676417590987453538364847655984849704346524681613655152821011972626400359243935846854064038778726736193844816927775877651879952796238202907682110174177726515343178903760568153869295071099031047260176800602063770043522251776468634401882439933899026196489651030801910663613125385464885717445651483743619326871177961346377590729116015062162851130729799596015734099299274530308670822978828015706903568641503991037045895329282883449411711496958795479206103193280661898244815644804894377389066131055347178037694927537684714860892356473339506507827352062945957398160289673452531962238987715082326361014773062493147567120985835897389165603754085552516843279499033146291173220526277077363991160589330472703222088670810413316758363009978133200933695264475132410502972208140466022830472960108897974378932393372235277359770532134373564331167489450375416150182357468651838563120073383593478537048513937228377815793430083754745590316907352176392164311987651264335759029319226723269262094469170859665205780689965547197944839464789592622090562969621072184545377621725962267288548286997379948186242224623087661420080865062435497968442462627331934381751148590733774297427106162748098226427374647806855688105712098868241097689037451204343797106820305982880661304336961511031396402133721805290091609022457890105675976443789409771024449914918872411795516238083080549349596501475365913045374904430831843354268467879098986671289313829035586470456356385120787656397557428727934911116493042115845651462342096260486277832349332189318233923656723180740297426724987385500814338169297818146669250461572000103381334788695403595089419726041671221191662032375293632454697911728219822305527312860807172938604169633751004225182681887360233522968299565503581487261349104134466279861075890952760171684921337809141982724642462184721183096045474096342540134221468754322997038872237861061482659888922055443924200281077692427168228503782408251976293641067261461281340236844404673242406043009725408347652614598970515969809610233755952541392415644837687075138241426906823924829846851646636319461182621948589981696914877359970204130680992813389553497129292825290317608921140967420776532352808606211003939574340930938454438909339056219865363534911808293356986720423678954401215602230824112401777237591401757585945043337443165982888839498607425081666182606317737834350342977004559522602239834525356154883739292370095603993164137162325123241107956173020435013154677161088106880793843823261564309228702538237315058601858857726397669989717829526708643065167618353565039408589520300590757428037627899051329955089926892010285392275626647075185844154026595104640070519780350266199265782048065504042494879913540817846638523588728031882836230200492758524967259287719104694748219551385937341682144981015273210734291817018048201531155752065606501380898000069600273439643081462961574762278904077089266706322968722077705556528087409074915076100693774454653446073227564679056392211767984387793540036600706551968960073300182594195122320733892189246348444181608524409118159091758668811795445176408218540218676246496843261575328414954157647070436334027760934963877468613075446613147744384400082321821562022662182220708782551033715394831190487268282846341052324152339903932682508862418468349109359407043064814978295845637751296506638231164913080758978274659056392890714429711220802426910725919436947893884252738322124534562387960370959746862729360977588253911965814411715183317005217217417938278246992965318912235608451051346158140004718190501625416459829321331053841796567403438013102341538852600562742636286917056140501525702517659389425889538746197560272362589300723138088493490644298731191505256978988948692225330014772728299209288810851482843902837242130402667896375574577749247638185629256519164393541970763405388468055168678150042194778097692690640058677923591285955090499697155168629909116563006256046009998203723086363258077032261983516698855045935350934607369352732629551878532251456107362782372362974703872274407902100576680294070111269380454149200058940776700206072924437562519332068068503547719257530293516811311619801263687570806388071130206411571819643019696121409771859265601452014648894143985334712564412512181359328115093675064209347431522008583702558663295760156867956863183232042913362337417633538022486792697454638099450854213225150309964215047360411383413306398653413519357000112586993522178437432903358046935327062754641824937437885457552615443125778157952203488432131956270544928939484928722133587976020105077626952530716778551365853799161315854929749822310737862891238618602918097806045224991983240191429645659491057155346498684858659232080392195419327894547885241466196720647267108546780008556733972244800783172789099889765983822687218596761281270256542901613212947295435697951935703594411348836945971362798972832000837608229048581700060773741490287434025309173124970740707776271432350715307004706827535759121772075209765070605695986109386608583256552433713794663794928485449553513394272077254506276284125623312501572629612521761522275514199877383825519792504955002363034735287607361915938473312362563359313097182671592824134509199146548607529759181124165222729610322093619323221004023951015426230843142188175248142714938484496852782968730734980732512757442811777766622229819636058602773648896654628460414337168128567214361289299052026602913953270018834536281093871493989936940380720356227473384162871725114128654881217914901957430842273194491913988568145291853663452577034266643158609360241563437731240051895910604004956147012896100319211442832298678514511068728993039117274349011390513521761809468661091696184274636354738159479180677790499911707171295815987375065031142529514386697715183668690399597123391435546984734456640427686595219633419767044790892224763150080536062016204883563802740816033445017519240484370042232332925569120154542314919597587081139189263896930133072155775324932481823084420873908264527193789904609076251261128747240053695505379063420594825039414600284622216218577792917700696074192107827810543841910842050601625185680523465496618586208581834001953436871008467555405983779293515945661496013468602399888837476587065869760126425840137079508108628526597075776305956993249281423909620748748835377683450454365276241416441352479278942821922374217580930240579841070854732874908890981184929516879608056168207526273391206702142115787249929489864134094845924183690306725021853084384054074053815821431457668428276394020568852696748426703573431373849784842203752818832981478487042859289313900715176865119124205641415622866765797441479623279058899457936685216975822461398903556677367848181539485350060711107754884979447300294805086837046375802733990790298382677913599862824015074235076330665541292305594171201101187192985289491779582078550303987248162418683710186549787150254322082099105001503109080363765395397843885592872787260008229770975631482393442666555957382929071237781935790094695105141715912234322146316843603438856270976401281837814503592553887643484561764224708936006017048723959225365354694134304731891162441196252910365763900581468061926822178782777272022425644451489642341300005910512122364080377661817564959537384704495046230131230046814036247598654013308498770066087907073878229315111687185087005007626970008016915121686700183582842032695956882443367554669211143001581018689135839541989465605074496653047504534667820308639036059877853028805076990156679878016015524460171469434752152033608694937681237886756939836796290325932259236133303993289859616995179679321071483500471797627567615566051636365891069353636143468357140523429694607822821408565874568191232868469895826299722181233131574617797369601623580464607173408027589794472804300902690046823469076968330253122562051113611584470630384321941887797653782615212025111551978100295135493644458596160440318718850996842124595739252164524049845677271970925310764506100775194106213295697739659744985937372774616747240679854396302005758471767259550190003507508248446852437742628596810053591577338151556422199972838496078090860109771736296025107101255965482808705897463797833784670431988666886395908898518987251322073223483676607572389458072221447382654791160464091036124187783984851578105741888552000751658429628276352214195338370011919657619614925302288413608025565445858921480402661374428294931449940129669490046070744497314843042667392443074081014109602413671090135982671712409152442970200813089871952837820173708997264329134053190395256118848788417415620358732120260197971014257219971138154148494721040408373137517950580622501731219437946822494120515592289017689813943187396724670920189295673793722802171534183662827658540910506904701784680734555512106003368410162110843063061741305397050919839223744489080858267687785787209050619051925598230133954887807282480472915980889747971045473979280883802969281566437504430147667118912007557797042702324139558216487184041082002268831410072382260775877784053717796477345692919465365860024734844708763882809853634543383556352076631717130320142777746068898104342346663686698748144327105653185354233195735117407400215785712240577740604102427629000960210187842518777204174071988346092423744181226808973656892739890649026649617491523208044771293928103413062229780730138904194345269610995465471548441074864790931062011234023047313779996340705835210915856562337877116860859773349818114890687844241765785335109727984122350000375276232723600749834030539123086444949169995013051710720427145369431138087073862650823827322515247063674138942443932684005084575176901321494027045929546163456986672179415717444555064519181077417881795258726209936812002970008145944613301630883220881143302301439568860633393441574233341323577967509220945993952205762630391828468671101285526055544015698648953747180182404358442228882553044258074295857473421009684234753643784103566001945133053389084944820511048987332079314172457316968707485044744474413653506185867861067012583117256200585188051546405723938769256119216229092174471186475352279165943988502116959774741817150504411753802495819809732061035175189291534644870272794223957720788407180228776830363891899836072439583265791050938995609795836070896925553122964936979534609868445634766093994259294934638502164519922662212276074139421929522738584416349064615016184938644036675892911726972804788723955146560237954447778553147267902658202788709000701552035221211999728933814752625541848185374592114009031695683503913469564094543474959358834728988365991829326190329858527440204108105743056658614749087498741074795821348415212040942721509135624463512876502994411261852017758250803249439678349004117273399299828445127678038209153515698010360880160340320600796329109888955237943422703891657219075791727018862071237098177185559900106367948722953311940246736312911619231548679804874401340752747683161660830492470578798979256063830092848248978180302104944042529690617026500353344352951651953620370266874048428957366613342466130720207088488667121117263621396891065369973126423773274580357562754942407532246790875274941521688875112989190610101293499353836673334633814056689506413637458055623313657140630525551103075065351551872323228886640311892586910271236840679141316579099255466129973202389656290615219631195099528346070227513406854841185872258976656525381814453804996136923533923421233981996331730346165848014168773478254801623353613645335863130527134922420604884734192096088797642997781406372225893099932071764561114081162605296202541320236464627828856927811665164230916711595782672463579119631928744351457867628613204766685267037171826218583234671165224216200977295086792649585885553414056507655936138405998610654871829689182381060315541576653316842612394763631681868825767699676776046494957053385873346747877942136676103551766624117322698541755178838043141534530939872164935046990400438638214777256011910172748084203263627323206772424373873832003139253605430184085547662409113840929377472223170922987596848947015979567615380124528025588625240081101556465265758047739682273132999096533612116411021624995561821930667903156071160284281437188440394281687703469529485441623183874329098632262276585542584758745197796688445829598925716132992155598156191802379583374037132882666383789645427937067112077100099461704588658189590342743441953191867665057938686571666490276130579379048639451450262971535400400328554433429280786036056054800207958772376768611929143232537547985900227578366433444836023178142475489553742695399551460174087396787020695082554553845526329291785801469153213213353053967681383241003732529746231492371237884908398244680314525292253356736439103912786584544396729350692955391549184277169139166940300071518683657443039958234978216761621932571161747506915257968494581958625919334295873538348528032189183516348899756933120201031889250538106711878722399583748641392413170833771239914115845378445155130970075517802761685669790278522519562289241124037538368792636122039541351331063763235970383726879051457931770196142810618218837096439984104066548205344546272878518955938622965575931396773141375373624533966270335732926989391430916580379470184948522204681600796248258430917001100699563949943674666443648753602173701769881923915301391952997668931693946181982952794046457124833638348005318715003749915250260938051430548564384629346068315398885565655643786630193658935877574751942680239102941615170018648779694082730142379524860116114631163883952199891886087888026154857627234901332964451766896773967819071784447178105133943964778350484447699312802663516737485901476594117220729653311902018655801053372487085005630624788712831249418658298708341147069746291035231737078021866183726348036677867077367966609003476066396379505478809995115171425351103198620818552823750913509714997803757311807007074404432199042145088976975901532928586546414395835532792602904623566504353808539318478404840037953902369301857086742515523026683999247407362067632429807167452279235880560375202803751647303541123356196728541867062921940820574888201617806125850991057640118657174284622393981564591904699848980467489826064057314004945067892680144297695171634528190969968003236161192610683400889123044519824038841250788716009919574752102551811805213206174197874112106594197576960206148267872006787662759146209501389748985095223624952046380310587786780653008283316824128937986931449766848714362833767153132074462993457967711530424712504235899367507631234088310044650008364762389954344451246537496966614398705791798344814745725106033018743736507292622095392390489439268853441992028318440014720607520090967875863617782686170699501817950473962536306390773308612405710169504837601840086171942153810350573316755482213794874378911176343364652553476885754781547103964124676290468369280934392216872799095233866032878101459401413907867413055458954114079985885551738993520649934846438602133085966638123943362507152513942150646931345958356026573541608044885205167765721522990855793675192384074866884904006477341976891188568620222762051227171968165416836470684373696132329894183849428462236789319319623339303893572617350778767608210044153766885062095954255138638034598483932392001217004799164259685935868693002849184267027609357376253375111382667426047768710842380477505008960028068008943893954800681303981152496348776314030050447582932925403742698130256910873335911171269689530776883504306919757855981035616448383060896791662070944562587095345980110273625932870526144997485035524834727489929176474167854754176108704083759718517195786540596363009828272278118391769112646224368539677246591086188949942034591781610104800636795451504234214961730626299970855737578910270383859062275692217714680647587934627008684589666705367631956970700190164990812154878469149427065395904128890709092606212490619585580466764635810919604815024002484874767449930673041457475264245460613995330809855459157278804719923520263002045817644962202836530658626865984951985084148349877824247321773344115487428336264596941544704662745993342803531593452636517128008740677371099314780682853114282050857251183097512642733593788143172854291753610300846630057675024825623075850873157521912309436991868316000958797441075488274166345556779387774910938727472680615243401167767569692354844688457423949425284411125835179127185203403901204009545166833150102172785651213795430269243811171653841491578492747469629528909627647534323695987359049295228111460649696158378544895171640431356393743046946083808438821842594825625642249251696178521032971758894357982822841751653521834111305326524984475059664048282593044367200472593835253091600151477594898693645784314292352079397333164700918912522786799692515342283669526668486941622202039677536385361208583689630311890656700756623342860167380503985673051989656878402387133757345396637486597364270000758576942068702500975758805137621309530029717159690066077074094879151050903844571155545191628639676289260901748186783132915197484355709919272976596182464465861187648501433022401383401253310840492200485821684521293075496251329593898307957334117629718949300248458101856202082197034896052090447731387168507276176259372766163487466397553496658176324982197583141905747570420814956323964482011548394907754750232359388982040675620297171237232285250903119202300900170713212869437664435861765153761780186070716246216721834401168836170634058002709240692360988108455236139068594591635714482175960067068233084664853928218402364734675875065798454510770856707091987274931630026858165673748134217740664521737112070456753020073527241776220037714891735710067810192044265563138799694371014082109432473763100384238257573975744925535155539094311232063579625757107781865806540674526562041143427377085298564797330409567492290301115911057316437137172132141508412935198215814965544625753482764763220414410008961037602575760658468394964987093496985147975562128274400398469024330914864118984026963476977949740538365625178157746928158848740930096663455869941503945638764811963960309066843759192083902670872670549454885783948066876646319568261110227883638312025833053187538484935676008582949419611348628003134799552626670311769211108990027825424894420391048748938118924451997553170500379581044620679059700362712638684756716348085052781147270238992516563962245046256217501628645247265980750004112957944762986949415516498139245330893497665737586032570545099438367464199990582370521192722506541759816787630047310325687192815933686615862102839447135179533482002236346218475199415534876994941672882537529393638833796866108254181518275440206595750662520395932597264108932267740760285274400021078026870250617519033063251722701140607723925089044214465817388531164402425574364230503745286961964716457385756442346064285533477359549256263491070516378917378625453317780144749114442147255329472179395938328472778572851541507037777042023048813418860979638077649905718226828567788696609067402984186913981771870702008821678087545967901806145030151257941431590119367944189797161798460483276345215736524615556377102653703532637712816362159935532263304285098002511903832307113511664196489317403274881360535915514740323629606478940620212533543758589237239716376780881945865208089772453725500303104515973023743777196023566345443520833671691749211640985233338381084003893862187452113440819935693375820651932503447206699650248334512637634078937051244314149381726087018892459670764541376747981456518006996495088894932036303338685489099613882866238711432450577694240166729415435031504059100650681735656792910100236629580659301677196831390346020217911889015085818584439219138966794680098394216213455631511389753867803430769946095137275453732535486950072035483138253416127096990760862658163616896734422362566523540869506913341816885169459250526543946969275169463118459359758477202014311778027859020460997090571809435249592750074291348517240851584846717495318089879882240848198677064461605048659601662923284991122908461586575049323269538920792450457674088436541074762867699725034689719998821845012519104555519621189217564897885412583141460970844880017761910167076983968956497626536507655769449861098401906779111962758656300832953005924314795025646822426459064415096137941776176533907786038595664520065215720537089650818132050733246111431472956181340123964965341375050768440851220835122402976197256311074236997777635012560000833108861693291195945190884978127216431289831877660774935616085038032547586012281628568546627064759685121316780057114966278370028894722814607139364724110165398684546384516816927891740408919069120835480861123620773081550925558922323258921195672836850105942372644616239817890916659077322649950857949359363642498614607739451759193408711078548304744370097270326338040488087899642030678435135371009658727206888072111039016085115109374011056888160108034400141715240049755368686881296017711280364046210550446245462904643076841295234176929529813262952508702467144379852314045972964074904094217388994431877647120432125812894571470001914317952882826264166334031938706222220081180397091236716889414544495551930940383399845354435656866094522973760659730897854290443213304402426535396483743574281798501084805736741261584363952419860421602117188496494722871047662729167856089259944890369699898253708213994241724315899712655523047998074912547809753676587343963426489499903320045370884260182952453429541404982225605511527281098526096286305793145094794766167885951886020341280585195523337923356733082082147747858494624352371584376124326504196421604896010402445385414346208326853543441847814908414183209523569772297466864858797323554418940104246730323387103612828494247124236444776626170549819981765705434797588235367730721212777192685332397732214044585256637360368023463973278542037171531378450040738820821905851487959625318038116974140149430534429427163016448629121116339854061850864022458321198854329841720622959621932036265036958230297825849505361541911489174560249758543619944182674712506817815060365478849219774631388032508350188644949366861804357076352669381128464146674522774230539859722066661382359198145974084192766988098064760037922743325963890532637044427000633269812639629247795058384699325482866333309704611632523285968199401229724022179788804269468175173449835755958807685204668578505719160153687274411562828164735743802194584008308562763943132525298002113037158805428477826185221380167478116228810736595449844123583140837940939572128576057203566829997804505822803659870267247139369567753096615412700698805846900481123859274963632618928494486037365283464282480187325470418849046170301378299513164425657058575414058882520251062575867404748700929989581148080452294183477406608498106849425760051627223369951921785104466439137614300466054420639476739992263991687616184544788016783831673011447150285556514203580346644821447657948690021351634176025722344371864875903406778642079040553866323979698771675434478229220354128283951050800384372261978385400549728066714354570189099641413018127115806824805372716270484744132552467067262520214599499251934442644516456796142722637087024928935602061105391753018186907163490241560341739071469458533110917367427533535120276407808072206604552123646836324762013329132428390122260902165438308249006321496601706470434933104842574136896800158821005589610034545685036947022239481115830232485822990750223993383338332603134281319312787206334003667688724579843116021591287444648320424595843902952530731126194354048444217001242897914659215762852366284611768826645593658682301708099472077234159082257642224402108262940653763477623634165677883358086958845194583833265364888691752958690001848012000491785271501463672146177350861035033101608530978175570923466227501969597877407068294659733986521919404785909591585261892049791773586296649864029846516791504991890562808514392359984994737340075923466471166007813126506734267129643656341313867481425178669905556058724807480784649333876439903856090497615450703972263195450856423443077815636961685586793887083669013830996826588295612485145204472826971785264095133681192921070733221840810989627267201374698424931998515549758254017593093101229423454325654570083525118693574630194557658102095789229427320052186234098220317973610167117825780074741362721891250444857063703413782274447141745332152897618891936265980409494931010647343640453466543008910343417451265100906392598514025561461089130483512177994477842142307924200323212363542779401677102480775242979587466584968173011004528316088201537672970534608193240154653486994778515708602558396317510890235735217809817767447478621910425244205253470179524887888715108832702556027613382157818371850764396982660195409044709268379778096254689707163687947826944747941525478378559325644619905072911470176001339839080136122546804257764572670073579454907370666521224787294545147955938046452921934387284591213088367102291209090284745135663003381063428953174373293579370165048824100449425731871743438759270922772827282348760430343280325598000409057540420424222891557235573585509485200339261094109419982400961279263659992221348065688593698734807684349255566062975861670342104330672088724521031166022456292550677263593603025999083864158695459720420932586029523436204684835949678419129199637867382400694616574906570592006082636615554591769578292150949896611942507022246112125974336009747258526381986750197097868784493371868772441223716797365317323304692820908883679696591182521445334532024643682596725465550351651308577231154044535171533466001065323446684766245243809466623275168255820474479423198273530366182137803314883860994651815600041865035804791612779690239114699218516870223662502794392426661317502049104477257732819154270679151380594057986962754570683036269286831277401141915983794254721135577014089501629848661241517298191614832415226944143230915453396271639454594039210953455973903284853775093269334080652914348926151864776086907774065573616009360457940338073422784111665152214742031275597787540373579061459004970573991665279643269455840914114112581103406925559400370956422269909980804976767145821466182991902048627725422122944162295752197205920635259685118869706452492044727929871001006670027082472104772130017037907403963404591074465012501063096728861307499847115187518415331785114304560841025887520732942639495179750301381372586547354953904259652045580268702645543484891940861702764096484016608462059583935778376070748893424265319545784916408369035026313412429706020411892468052931040109306936394243586382292805192147189591159975538517617674088891253267996133358025572600043746036526628021538589288571153450965947835382723895930560595904082207500274382295103939797505557286235267172642111087728416064077083750026750545773234851179719726228964069072836494141643415439359996624117018857621095867110855341202749326154200306221567647611935616562810044947912668646799724707688539152462280757947839119393471965248730531390245980627876432537935531229985414329551316963080063779110693530803538034207281792671994276299479200851559846136426955922822318954547561664340920522159778244798146125431041835748070706869068787848412452494168327213236761300757242342775610395305351057198653577179943877136660947305926379159563225734805543339282437209981019205681692189678765047431157700017095684176810262399898126494260749540472200383800638639038054478579273208769379718494710441561958752011026084958910623884425339578196301357719202414764663546969159955532201646251489790456402082548208798055248868500504377354975535429526523492396035315644263830343749379904420511503290645805488060921146770633685259815715412655729081500183768122426331834743053573586123412923164372177612028435209778576467217790826613495540105590719980093433083311162629324088695488243363173456513832763985951104931048426946846694666569130823087311174987993624874460760001096966583993358808174868000141951408841597797271472948923775584571286231619553729290049193724555760527744325404122889899387924586712834981855830846379862013823142531838315002447500882923774617752149642533736819104381023608853864326333240408181063804846611269614213618134471879973839945371258376826333398208651184746031777141078980122222338962594638376570704832501925062364321468364217578683694171568288881890165574085924493388833425398175766803971521613668789676992218268571627007856312968772377621325123760255292173493550383812382636400514423024493632839111433210089091898347653640662684425703557836486324708903091893758178835221221472071462683536048356759344039294007286842386748310644814804876229250399588332192665758904208098783712059112796942499449812532853320523099182808105285566640675463019404212414497609554804425826817117070307593763989521069831535318946609971404146181696307565358211317550704445047842942949523345339636861209694834960610142641397299495864824479227743913325992587876571327986252524392615018070973185011388994544889522535102144247200462414980071522076490573045569403275096067140218701305669973869920107855049541863840669312202534802606154660289454931302154559082843736097833850180779232920669865913363120720112723880121274038675456096038704326281455500086430538520317291198199429075769592147819658872528186407479595546160297831784138136503922333866353037160656131921978850558094902966464014158050143271198596477762544578442129582237377970602633055183373820747788551003180248848276423691290576734375931734872454462071882465111513804586635652017914403733310011559687891033180236231404473357030771682055311148366025861508236271345720344832061170593676474930576475983538229194759078854920826687322307573581959977025819754785902360441941842713320003632071443986278843233467328949081539305732889816177885633538466252881403740531185380132538150697551167669435232254954381262776404146343259861510514664140955118386386097623821221093924580427408694739965914810999658178943558270623814050499736769314693300395042732895072111684422339643023384683474556116425171412637152495802742923073623459009288095523931394267054587125444036112356808035906192594100232717820829188352585147180869403302437077035209469867534565042183422679328903073977392632484920859385041575421159923377486729798115355902610869799429695813528016722054998850106246105300470370563620021466014574791480024489442518562009982515093708120846761840469971496712378639203413432882776253550712284571731683998193420894004308743217535465932847023950481981890666502433349967366382123318187644119428044645126001405687867048155825657230251283248950624467144729162439096447581635364831298209326311077680065752642928984973479208200007543377862410516146361067767807666681562076215841591780930377956633097645393571592073661998728178627302701058346222300409220989479540836546348236858693322362763048612146810000880166047989838651160296947303642965089689458056111107482463798114904124120361478615734206871271600650402285223783998914243156365128360618259444109042351839483069202058831509872375972881707263130577625530120996045518429285268287157551996024939411591138646161045247985370307379262705372130831477244558577418120082229159448912681268544093000766810348040463438610336048783787195629708736955995620910052697680823544545866761665036861073913171461279029697992694212808209531760301110449552864171545683622249841025359084937604488755606466591277288967205778451672111160579272079778471131534181661808592989973920826666635116374050283675586738337330504994184747517328062859761572053884796099522776276733035444518084416108336273804248646400356065063140050223147786176405776268084782514315338827426956548200835527482984347521662311440463659569233189555025345805122220579630528615511914714711226375981730706458773045752110350168833552003017612076596167958368576553577599414344446096789595414524928256184316534694198032653200909816662806654147386522143577667072052832675007644430097413228563688178603820606653714636002398198729032248495064898609502373096656325809600163772639039768021496893044659880559646045069769828577066907024794865918067537736823720378397294377745051257002261040188729012466905267840961242726409471057513591700731193028809543014150068315889753862940573248361399201741177023019345865303787941104578798618225924871730295341148238466726895336708562005160288708220916650115273958720525365136345978383201488978300315223957540991310531499818546853681860143146861138406084362927313897660819610902158070665533535111658521917936737205406909345442397639658500794734290562143809641718968916573881443017230709802008414407759041405230641657739779271666562637447508836692039509637178260602844079552202067387775977118650160255858214258728078845763284011952361918455376476945066510723545629108309072469459199607571920926578954692775842661735970331023583580300796715328072447540112456077835664670439222895707634863344443796450640869425865043967452809979900828235929754965806611828695077811608084109020207134320530956826983610058787101477652193274523598476398140050169627397124264568638162041429247696990095511095699527791049274962836763649030238468254131265503905222166565231673954316780022052935340214799593744052287688666867574551494622973931900714068967750821825206519220045554550825478798471367098832542754587594566994001123100663030368722910118644572915997790966945618841332617561326892223784674103218571670554772528064057153671864370996354468570729093415649582720382595954453971515105078241378235326564303875550732076612652754501467414753765834162081434906377206471324376370880603855800674799144422319835072396919769606580532465650707416974275088103271630081994427351541513173619914726385345226820118709642606054612154544991066969960474176865480341391870098292779779842263402339382286690977435749269944601977247244659785483612563143231282511823375659918384170623514912499342521885394187242652263808390052674588336002533458108860639240744010095155800910141531034147216222799860157478511830511519107527920556940599308114670164448285743185900381157503774049537809576800148538754330678941143474843235611504688514801534410711676804246139415926982862122792655825129778181920681597801742564398919242204730818468692119938389875788134077557745143385408821800964533435083694424830899464217407212291824502096871647646795398389970652332087940202940402227204802897191164625601291737668063127960560275529441594115340000924397953108471122690047720178521069821508599578817696615452584891952918189558826818725201652016129684264676733139501942710192366267397129910729548882284083416950880199371142786700046389751033050858887884059772208108485993107311923499046470659808702839665555437290820629490558048629696112994952032674794381645522866995085398642932855505263007870194370418866562518234081590847651668567723574080020848988725798694572469407043764032358216995680915766538072944675507423210990285417080182863997052189126525988445692185917417332080132627667105932545805694019756584661014215277045256637793398619147888351541608012469246897978850029355918243887120465526853022803981805421673270788419999834728756436984597451809605184258353465115559857840624879822476105943116324136418424593555469962100746225259982991006952409098459122988445236155921370440618267133299234750645904478631702885160846655478321004409736543578574309436131377082511640995301588252928869517944973383329104285672110715126692152292407714413852979883009841035347013334578264782131091762386139926174022435835536945869581607388418317790199123782280316617235695260855089569292577166896584372158622756215278143710475031488327213992932860047554471565215066555607132099022335973814517950576933460530351843643347575191051699715393243302909389574765572280150843474799288230603556014870514193918983336058354666605909212480396992253447224267437894868595364171321570190083944760755753133819186684007025387819692909386130927343065589131288338497203595359197984260646901936742362510232604875195385288050652612711297281347322480197918780152006594918367324499687668348093008087427052161627798216982215169835788430220702679121695113984695441261170199269199378025603267763868975049896434797452996585230828853829670349048009973619068866927223614939496284272215886377072049632189469086549804356354890193566341648411721434093762617979872975611548435709293928610473997417638970742688402163951935697279561013657871647292737284853581268030303065939897871941641052148068307617782934453063785280937579423738848417293793470090072901155562948695455240038187302957857186803554289872605464675937107340035645784161556354429119091319329389351546560112677939082187195698966432403919636778413754424036498403389395256161606688651556535313192289024427273993437872101818320780829957965951037864975181772871508018256705896231576214528912624965683827733384333568665699674799197046821526557462530498969763686811999044446778075408554159015571221236535471152105187289890410865789383402130482089575789727590352385076941267552553810373958379244742342183644080437011708580320275186787810135133156455571326364927616350821606830579137545431110280155405255616617986584634155373984987749245338830827053730183019599718563690164905960734968698710503469519776049863968547745494294149296201342845824124618878972336286279303935204673096790477669715736169026372593400290814546470849970469892479039502826901006103359982591365045383379510921304409627120773979423702852230592248287257678484846605044191281094130767030054965953804723227873508187821123933334867775523882008451214799776664685476679170172185323338427926866660868501989261990878914163144702913833966888203160757365433422283915801302687606411837758095908339841831025325802168352294275231843488600616615641526669415029515174089304652458373116987501742525465333536745626668969170380081029289861974978653770776250582267381055474794792710031757604764960148734421424549586687454119862984724096972277448683559781215328328406089714795702288380638597006846828568524918305083059133398651502908191595057334770719065405762375695823060827184467707458210285369476620294510053960917903864244431049123202902953850957577611089683485873432085973435739880986785119433068370171629754488672331328995123992240143902952361681882218686669586049722150972973101441688342709248084270873720182065389496849211075741828813805003930261182459104425541470723595130209397741491754134314911263570322914866379614242131533703132639963003464700095563639567323727491675541605431338931375309019176835188578141151311177150589775581678459623777180246041587416844486850083424651323461075992876149780694584877848079329572421494675093689533722873888922797883297182661799955331414309105445599482593182155562722464680123456289969539096657780932867369712593421993678222991043582246035888166294015482202335634864724556264259158587447460534721948009618007684170007418380339645599582930672537881841688183976656254409988272620060975117363851633278172235815545735928115687933989073840163856389425261294663231843986135067684349504530583358601528023294334582960560522190750122499492834953167949997228028962921614364491062282504988191242476218981087779515452760736891278580108132501844837966732380690519728373892808920698859852254054897360927621827784423529946722121202289227148268974226987084825286985043214372379444987153940760684557198651868609728472666788854700388729921891634788667024413338635538376076072262390895833887550153439828884904664561446996345957408924053678326280052401380033105831522782678074914317380108833885259207179690998588359170493596690001682408960249468782270733913134153833036819740467386052347671092491842292106388782011506199394548446399463690335698865181076357324442963251718578066358856554887586302518904141354499964541000808080389348046746401645622139146931110038079227388883401456757948699372113852633155273179919258179109870291886662121089501677416683692577959338946259760903396622454387167836191918958648418235244465915767389066202782882655301749832365462624667739996824336535745134161867748816078588337086982133563480214970511918214464231760688665913475236764329899354720753463860910690101756764141765407832866115521927273601776601791693663386363798835205014516459324531015513942681645428837522600185243833690876773909868628721036290461549024033214105568333266944464368180304318527803392763230014466945861780873158116914765737266021578658818243371748895923722827766968877979662898181494885146547056809180075741328556388646767066049302325308113247315488574204208389707519247541009685560023868787740598955217509771039961057662930490774187100441001350575917538839411222829435175307522388113120348168428500739595652605407988644795964003285001739516116743058801151893413062496419366504340273937627685086648075998705632267396237187279706988278119424688528968304090267277820683760975538500793712357416144078638418869255612950348775202502869806342698454107389560677970371531466204125720704275024088854801553072397399735006481028642189553818006137518458549134174028361808926345436804233490246616789890403830645501563138707764473212281511139982009292552404219333134520396913617675964832665096357876891421555270148101912270228866493777450148789896752205177618989067043253328227426403088312802636838716735671076327623365797403266986955983791880835173923897292821260798777778379144853513990501183348574339116057846615038629600207877596998745835057869256458301027194244641915266813757333087913716222419681651924955504408037280959365154485279890752508492153221518373978210197492876466694401174245532947598022364497568085771347788457803143991646104916042678140700465860702062161512542467036839767872995505679152445358552405789285703763843153731704868532454597322842309296308649303898246507967546086265132810549456850652203250722089962952115570245167304082765139447629067229153869893797466195345412053431198087553789231696439066774407835429027576791298555754762125697537534607799753618877303433736838791460893324897783264091057564473920267359824806388682452353299167123575712630136841662754488665798293577762509449843787480297008452323215141718988606054655444298537125076577912994063679331579749447887213819013839820003643613661700051365563717962342226976322434466071596949602299345032795396236144235389442488507438796232999120660970178374535899118457671312293264120877355820986788758347473021893038715178747411122149956050623941814123204898902134330606695338174424100347519748939396922486176686324544108685952687831828428824575231900886579727841347874894577195552504131497618812871123054724483064179026864129064516782470951815401454894615637081669310987530741433468412914660406104864386213302509782706068734117413317963453884575035809239570568999746093478220791776510664081639837146858240490301822059035831723159078985522277866184648318604667861661737230557803858870991584096988904090721026722724486113811890425750536021832616915406180708384187563224920545963309131577150517907994985582291608284617921169293889451208204813704927936170842883737850174781031256201001050023151052542997771349486189938261077176982821322216331362575566242340277562692890051030657960514473329466285924143600752211307863440550467169604562927404869292254785944752213381132399444252385284210179704695676948462979510155097225180674527522406767858555715075433222971693610460539796042549557006480924368884692730662422343543227236084072756403236380067010552616697687428801002829192550545463471984866683951897207518346081681291901123392411388495582768005766694775382232990579833331547366982429741691906671094037970220473219624473507314211918126671341302242609972878200600068934682857574726814410986449857267002822383123559717845348688281233806485062862306371530227574617171349116892319523578159644325561730135054693785860652831128199328541994716098154495384528685095785043833405958562559529217266516505985110126880255113690774779159451950067891650598373333799896167028083377525530385779506057840309267375952770054261701622332613292839268633856009472165932930913567975085212260015171716780764518715418759204184728079779662371060089088540676079094876258624934774244738941683289952712993205094723869341329846882038971402695561085559877722560692853939593987368758540627194855719372318628818464328284991968221391088231228729486309341062534216264256463489622417709582497393990582118002778363668368771136296674870306993580907750100507201230317945906338716517369817589637415080326237662621279291355989098431813496043185393913944768722370079964003059421798038096202544133194659990653281715066511148560257243192436470486780871215536813664627971715295286147202594815380508123651782213992507238649329216633615689693840737076518535942811896522210854893302938441856919669371575382954227622504045114317290799627769415523654343014242402678097660541510119712053478506479255390528168120274252323719548690324935176817416014323038679187663671901164536021947716281410237300265008683433172615856461452382193422759915374291827040650658116407919139974232863595555786497317024911012901113022791859018422269639586521193095224287316456399406193739311090022341789558350293516922543324438752012946272951398805665749252402410850517275412834428108821988639162739848073657169836283297590782296778408223376418136065070839105307720635766010700757847591695642669334870852913224898309258895782941497699288447683064725425937236902607341399321756950123179084968136821091630024557195239293418183937549245563303290037442259231626788878661848394061940018576223126619368674082676196304515118944784561293183347151664368076524799911707322470100593574200926554918529681684113228001782168391077348086357518032348216361702519866576804512130395588150678692011074031844717364319391944957294389627033748871859078992774669591839844135341416473588440625753023099189201021163037441387716363294962291505495178096315357336181512715787621861963650537038208641301738246862761304381741000741863346831381383791197544913682647893603535309136756300472681795645184302621507056225374299961468091580420955201349218051880833516074966965876743943469551751451108438275280911018589023861486610047068083712956398052201652661224875761818062663136508891275745625868992282364984007846588905850665067040206450612427577885941980339509885377723504836557540096020519704631682141154182185184454889046626997861057620082463004933607869998176453391497366014748553348646333561750059090443578436065185210026265551655529147038646245107514479369233415350630442207089156855635844474718492697958957291334875876643015498590197955571407769545946255668288993441863685127961837854373384076183155676820569527570487199270783753406960113968132768340695532772806133073217355892809914361010825706406954885346370185578594784402727985515352149208339026745948463494761791068318373167405788962902709958855279321009321942253387825000997778531363736061215741571716431754575013045408826784454748856799227227829023808990874397488161801367145976944053405879429385488367015841562271491524949959430836531627112811678755964381130987218877182019723709562168718354265960388389446745009566722780106336623159146371246231474989900039736028929747479013479765129562981301663631185641177297840785159525295884000532559742769178005871295795011876120466467106727299838403675257471256918260411701059340572127644924597635228705880811445996731741804634572485161873140459343879417784375992185625159572896003774381737579987788530486000572497331033567060566480806177538349637307333402378110371279191290843009387363346126518027203353988908960902222245761884112424944523801851313254339328843241678241733921843082536655379652630467848614654855326943519400766775299100398379167182138935011376333630025236809444581760881744217870851518680679083500101820721676485107120168985148797708957965263470970497312567805070921125503441516602692050325759077256762251619519505396427690193680169061787118031000355642870270659783916068766090214794614275665822196577996378126207348717897237611804232560175365884176949957168400842324823726128697471372715524891820189333864742699805313603211633399830915995762308128621937733364241131076597317115822508197435099231523571630135684920870639571358176936956809201745944201273219701018720794511959156235939121040875200237420834561862099331499577304880740805694571910774114324901140429593068244168482050283202579660163910222191564163067717762235704650221847476969297847868486730231882746804238293678458718635811783188140394284103454071437323576147919382016455474932989911338035683109097071552069711300494350033017504554200538914008921631061532611266826542798336704305612476707267362556664134370981087368023457802001746348461824398630684872597732889248465720286394750663678656461651407666870478705891238117319535335064207263689118908515494094159312395658843208443307811324381431092798452911448786573165324884307031506022556781144752861545899089620598534362725117421756808266796772904100258392244240672437434212293375283571682656786307718045084714820179702497632646234973455529528032053038817287761654272317045742760008311453150840970871478223123256262718891665250760343756379247514992980030736467233652494815568185225086158726636551273118163431846498451247034657123419207809955840274701991632515379245628379913899136593833269248238249870255204822418904589081489798674608188572916755685283782520658362093583540609493716401664174873122402000035007870418528205915516390195795740141283198867100430745419066035156134311148137243640432436038073223426202031240537164103157991890904528598708547419488966803124882053354013367786612542332618370022685276154998685983554371301538229508577439611032435359925895990789611530183239996540199866677795736534035439059808497768562865253507539786837234748532645432036751457095928570263098176246969139719569973647298378149856290431449123896538886975725263935197536029241882688524888047469897497160746051820760082613451170074853439614823094837349003979408274247908469393372685056453548790764784005663122452028396594805868761023281352327372946538312504232875822205502121901806664336511457974423551615737661574619665321116499858076194961824132225226658229300025428582493565080860063661189665323825135455028502406772377527800840830424190942541841076172821489498387211385860253313815527349990954571092050999842407524583644960353217463925031562520882420651322918604583364092341352521714354433684961252351402116960966835389138244202130447321739820614373223085172331148385910667256905594537897912530721957700660495234385894199557917016407300848939760820479171905388128680399677710471369543979189653412255427256495044562433896957006607443769234302134107392604965497119585784700223514100749874248628043320284394890949219980201199017492863741507188711875950731954555548981307498588859407094785658055390655613242968322553488958708213776970099277073907824958283976891514541450877742757199396121632654106069219003507204945748221142747869683004248514925851662404441688086033314061916906982561847891762576123568343289989707013198447501312537459983094804604822270958862968964360325330866289272790717610593491022234892651948374381658827372516535207034849811339837466695818801198501891588362367074449459181495937456702627722778711949271752689658830536300046828352753763637046099566053083436068544469780938301064687833290985898013531032013019436681928497693379581387814328543047884442917747193577438638854581109645233968026651127368391853645944492682232542787049257078385013009888580151506277434349962837099714794024905104196475774449389972086016650138929696889224885139287607062139161521035226922881099878898848985387267751033697666266153644580623639812899105490281728630733804970622007926560280227060980423955484203914149540959562643367877384463678784757344818573742387712875167286634042625184959897309607037301780996272167359320120725483382007531817301346906522476884961889633859102469564838449422035072116808565824169814089367157606735355389565981991941282401306826375207412010605986679679282268886162088714707744313177024868140922276008864090104066888044094684555274374089734766447516752418264274023536126197430090512179922820094389132306992159961608964683573859490142241221815917141648796216407631725712351293346307483731453211629856012552657019551932226293286516781325208043756077895834397845434707310992413154016446970399342098266426771750038531841084657746206976859061782581169111380716872567091434675155486302745614754115265886704390573162005374430377162200170119780916114430815993411127906858375454853891545707677315331105186326321892649450178491193223594042950015137224291222001990139834192641062806737201567465253067495147204728998715687198387490897132263052700696230338622237387918492401542659426567262564294251540304769162344091554888920876735533524278791734073714832107437497958851477441497356356670994504580146470452097234592213979755063520192200396160275992091651110320883015877439810135857035831371719229481346217698462930915055064156254508525753160050472689700948091597935082556390611867390885643356428151530760247480736643300778352945886082636080615019864457603546848411534653059421588484535210231156240105261076108745532286997502479714358440341043746481881344610236556994200875491521859597438067814048050312970623293966495797973410768050629864518486413122344590872673405255223248711440555788537136255712456091765273056828400605669474498821206305687048864467819154053041990350397559603918990004085134579335457505359669934811601970877078668319240384255810306867913357596942104713266279031366640166501707966103777029350161231726488395261520967228704194582982874996026758274005140425677562072264058312991188988589930397358159692060827760524102791276916212229742876021109427313474835054019945548971137201213149909630218961954909504975319948440701144294249904794831616104492873366424033039451335219282152804543899409174249282932732741494108918197666366362504853496977444647419087842221979545543981616457250712203493564720458623474827555478601599853909784997106608155070549164187160018182997759078152665245404079996285416202929415120732581751399698701242647364454760244541971152881797866083428380615801742243239936083839874012374987299862277265039723905914999932736863401043405449914847215384927732649234895613392533611461790475498861656591721027397566182484110654696117135703729466762636713837250722066966421226446127471694667614734837880475177727935720755852299620329656851132006082858537403697271376101928314625636477391250070476600529933361447269153639062685603243092928618148256375448129023717754669854514430512920441024437741493857761207602011344414783004659250479551704631389895591280701632338771602200105218097958898207052288872370931594353564653885457106970087257849106761941522092968112704072058921461281008492467397159673023306459846087633590528950143860456954831585661192556478793719278250403943760731370215753322223510871917332660269548806657482439701177327432421675231412638947401388233057182573968049359735285887470905187256751713190876889108271531734413071076946469729423408774368302759229499417975576583641666581458566817810958151870743137913140217954663254282141433464235656073152091389246262174366386911330069610318731675829958311838214600791782102532568257320153283586418297828026509728352096369465236247045064131114018332708369892002913655026778400800704722499124888485879787740272532380879002884939857054700114401905988439283881849797564418070886610074717040887742876975473409814764517658917362408919774374691929823763945577612685692451671398501850030563285537905896082249280040826750100010714626226632060893473599903245064604272770427793716903389741484768399087095803280360699980912304084511354374262550270805084595399375755270735717686917458172570328871483974129634357735048618583490239301733220524539452404434409817801562305997271589605694587427014097539414379050430012211464117271604440667317256832473530409027883382683302056260288993941604225314103176225103141758597471682047949628989991123778307492707125757569180310909224441502008460051602548004074150821838354744729260281255383599770619291616125913904576021649732417305366482068914096723223016073787200989077394764076655159090441858289244977323782370200034303377119125994451490329710274981379869605728437477246622928953946006363933612371129513228632033143852706914503952145093924587260405635451486159789730419319526740646165024465570483919466932567052570556593823664437635305093993161427868547513823645540999552107046274116563920798738210150566109608815263105011835454706995190972499706060693461440140631700104179361731638773152274291855709594826596111245434587984993244007326524192683079021777007834527556027311597705533120611509914996919465333869526009264414064829397840334530034215415387430917463684065832333070327131011344185739683510596284521449175837437471972103037979924329764345036881274468234852144830512245231860275877415809822553733994717978900797086259230659449612505843980667528357296184316199655659506777729432237961787992521495781831625976398524956424952882647663756089978478923965511733506840279646117777981392084207363456793791306693762174380043804475337135401587741797154605144522346291647059169475191546140590955997296453282776414191615177681904921468331830361868851531137836723267767709697692187907797418421863190382302580591474430940886563453041587629003303562766445270473138838063894679669780045421671706007296424001133499283856342044543485897674996366504078819457480826579194081647895421078822331048776911700165370929090714321016167439880087397073986977550154045748886818239195572118502514461446535848305066284927578833947184134298846674304586535275612991924831281974884579494556700727725977896245461430529341486686556417317245021136577657917143255397110766880367094666596535037605748989043526820557263754342569917607478487465574628436987855525005614785600764691984626987099705477439114212376604031036445056893776187348521098287534163610500977990640862863784813846059306344907489089621276216655049528026803057361473279875331413584492683834401391898156689876733328032439662336367092421495058310753204736345441934030657681332771969751199416389873011459175253657820897205817833632081784955480680790963283876604289801874561254649840797262467834769695715318601486367341762422969881427176315296544213548686700373155684918692562257071756980189781247409717533108488725685770239704435765553836351996462974642738658811071022144261285814899324094903859290911744851955588461140791676920586365271568515581011830483189093841820981380896271548202389763250688162509787956677907682057239896418092678669210607780411804132497489487768136820971142601263372130351601488442407592652248595601405655639165605752312526949106740133916905011454859150872476248363824092765577250628482544047612937546561387346280670271955065385777148896172014120551663910553751433853492577997522160765290008092108848143644413340063704850216932547536589469060725081423717642849353882104719634823651401773784012912505729357495862046091279180865947603222278482397430654490799663984938746350763893937573377156529560721596152541117804958439751509951756320290247894993053082507946544835582165169806176273308816885370934710762055095364857804800370726399173016647362479130972360589453014698066704614426216688256761161835339832058093771471974212443421794855421304358645933850546502942550888888234950768287165945360839802349971881150605495948390728338197367463057312568446149782271269484248416968496939644261662518032111011300857682053907226325856742767549722689119956930999931480909900244059448630742247050260666354790075018445249566089089969539798536812945875117158652008518229607283285062845643717797669861750418737176271612886253273639235449726541535827281327798907083857561616037364400861611449725861826681188572464903314118343285426833932000025540447053745942588932787194413071151631736915261514911146526549186093437345179299532644271191038830928537261252291901811266816702851106895403287626735950393345989676995072793281673147066579365471949691881122850686306574763231720675238274192833130716629298593497814596628555416793061621976517050555675970743158106166014897738525778457822278753480848124438678071266934600129628857303800809875335024972315652416153243687418170662808171471355134504565757389756200213586538441621175388156947883245098861196168783798109163391195408791681909074737077955974238215996143530588535866638266258762156095948243707661612411085241279258926785412248482275766648970223152326322150199889528488432791039353317594286741576979048454008238133427643574294415091122727932467218797027504384911184491905301811603027060736666553635603181359829624239745095416930868671080720962998705235756421191555081667051795501437131015729579546919987574983674895858860113006898402043658631092171890475756649483597699336352521648107840314392259532290036702947011083581325318973015273206040394182686811259632279250067937758955843176722322570838384218095798262446646433640980084856330325367517247328691373527532044775229663430810713951459774950782154740587173714611247354009588423386744578740291328574263227773135275150497031015004496123655259808889054433314881079232281476008478746838156097975574555302189476393868640086698655748340125213208417876485694021492265158970859582332093383088767716452956354426180781699575891713554325302190492933969408055888394533839148727694913105070393065985905589882761195962311728701059951529957710453837673823849316765079596221660269347732394460027231207559773955211692638128977817578677688015679044068118345326402693102077741460817336978726223019122707690499309201651130196392163446483255379897158489621842368195047397796988090216730380780909121205134318954803374339167472224373169542873346573208100435450730879184012156121556712519168903984651031561316707497132222616669145192446618354612639687553764958437020816311760677594244613660516630714705866282978660382749232198307938796951885929923905215036681101060198741806038361830489231809077952766378603183298422008213310198295543947358923426632492397342637670779272516814858733226665179010790025381930796447488275634891665247918052420202801648819591425457200912316839634454118951445257901025502360211119318899583363883607260157984925164455101455469533376672683200623883676206204497147169550223602525716337937490554180444961606115018670108380068293854137234748932392748965315991395072854436920796016608201201970075164945355688800825807482431627697232206703471591192070398115943137836449765674815695058128513881736209504007637331540439196401156601852522624223897095254470705154219866532038308501430080405375464723452161159020431993853782524707364437576710965542733168452378173363141111695323843786939187558120456278982773052608954006974700018102407657423550210524952812756023291379807564025615541149190033371687681115836733558007539998289731125736228226274372972603717275945285288832056423961255325773803281035998051201530719591599877766660406327894421834330312243130623475093759467542262398701458128805179949825828552997960513210822584266155563418871335339031170674872631144033541903801759750738708155063394086891643408714551436290917704530105137904946894514905286413580323478663212716805467854147990295713462935713185870769822784325314825709500343898898094414855263786278786684719209723914834740772613625620999411517732396374274621161080795209079528808253545077315030926464828813824588018364138814952096344206849920259580193428133433629095967512995570426931995566393753219458807221594608091196322725662493425496342113333813152541690449441237414438722151113959651813801972455831063135839829894637138077314715625053472248398732895078371533210147455162771731441450498948960189884471621736110679138759293873117039094985352317865725950152715270920850202819300944046890393994031073552222549236105664992203589581374400517974450930265953430274235614403401754200463177917869172465544350093120777290362309815845929008540188991649079320169840996924206623563886609824698141975522358537834873763422483192771976620906028515640350237467711310228524040272485451495562850832042648275934010273504637404466170418384955551815974364569682327904564874185092397853203963638725496341532323796469626359407340050697204501481525680604571186465195944261551376716651583308970057331692996916692537520153787461828921627632174370088209495678702409914545729851075909788582560554890632009199600358323623686767236864269445366315137670262075337355130417396128928094614708346353659888648615271942034405919618208987753660043033566012401940723750679927821845320585039881824393454992117503604548829285026752542607179296569819776911566994138838791042012062118004784623330478475790237220965208372704551848652394359404399252670466854061932827833539187517322773610429966010259277505131270307520599217697426492640896404368117116664382602968332161986641209689328151930676355081129311073430809004519460432325126587770287563847086804078716808469698921719993965739036509826274815815929236507355946201090964765433935378663155276848597728794796625752160904302732201883159926889373884245884800912499887420621353446046028386989182698428383741234907752295254111278860912141772926076778247881207190042518991945897836289153742719426778386924943665858550486898119118440829204131623289959330386616991913355581530711905100323251555043447768714295139196141832266460781863113808418294498446283397766395231866190571433490011208903918513162490191829104622758935459662041001553948617810744390036352721020419017040986208298697761221140585010157231954911849713877735367738835330845390078790481897316212530238216111235445347281362332193037109353198987810992940566479132566160389982235544287662555103078493059319015683797941525959006043581142119733633654094262888760084958596200422395254943755710367423222447743670560522057586328743173660613381523280611135156473516275580479651827431442278724473866951878725378874187209606589541092808065252712601467446821765165936557704306983282361883581364735805744436485460789605434055063580171124262470676215063354936599036585181711448667364575114856487272431903946685238172427429386449009961592811234615922804912756393705417639203336037942189951864043452771016135102094296743705804878781303482626939454446873035045679369008305352088724164495183331565312624716651264072078248922421731886467240632447912268946468609429462295310084198061315855019990868855854945950920186140476500016176829983138174326942732153773549219599830907630980491531416897265037084880828669266932714793986828225258375260853480940769065674083312205949670236999523851222382801587870972324203822678207961732408233058089141297153632253622009870439044707074931079782796545099521109350856187624236001987395885875159343606248698290327321070780725305140705230175797105853922287978553758878325061845587276507509478291783261928093000704529070568852199466596844178411654866223641396282480895180028402325152214371437002876494919594877284551278277811732366588712561410011135184441411597840051991645100559793498029141874904364982314912191974389668836070162303788511176109991739166739433305881618596427420469812912853260421322248165631070653145404699532160640493258144669240045087368529744339601572379881560278772444468232195550534522375757440508346509259271862604786599916778046709287046988691086286786994485504304544512253288552299118139211496334924943063643132128746994260153633482293181628955572861106728780774776336306556861570160527994405987361475463920857983779090524199437984752698404164257166329663896570676189819352100753864001631891802031555680824175716990045425662884210738628527355139764055912019723479534367157419200424584137488208647400425320252183165800244490305556176523265674874575468192651053050175037555434221497301065657027061183067448651350391548121677676901024006702971573086149162985950874850376002448674979006693549112063948954612324357537317128345817490944515885145159115994881955517763439577319681844059552077481040992327766690954306991952819890643554469805385820527012268039323052222718291973448508331547154234987363720161172542114842688370222125659344620810323369250109789330543959694050562874837847998654858093187308465041064981333625825147790197340567479957012923913892107194673005786771250669335525802890118611036138324950439145354424026669060456406856846540244453019334634111844073650420621153726567855016955255204430419413925188677220170136246434195255810586058409718328653587587674942704596650440768311611850876145708892095622601020755093497722170428721701106295913307178914619279325781720415677546897579972569949471361825426886099083942574024290409109920161894454667359171670133295790376928345296677391548704311352678709833980807488572340153458199896611434872016267183877671023227857880983912495089791096262013144951030977052059024467133588470393789990896579520448501153997619069189680582065513280302142820106545659144691075011845364335380413266608907128337863241433426546534398246222611656331593481872954881167217084917204637867468671100868367296729281320507115441027090292567197185793323418303716604676456393727966127072964398928122693248404559669009022687271926006776832302675089139752573652663017439263738320135910307503148069783954502414120056803682237211172194010014106667631185761181650066792533233839858730822541568553827849676101406821634467689004397532707046675363293911173379533458351067970042541200867842384022081871175055407350573836420674932841124533399038543789461919852235198192861342387642505456724243391664494114829225308987273798418506532700812628226170529329599214728181909146323396767683365864986945775876902188384242654728613530773447746308334421958774379385001161716352789816760328600105256498256737613527958311052121227558730814496665610940166514379526250885023783268976504257242001015283177321826379489751775697664073636256620721562877364282784152009409847508055438518900944724787678749530334207491973135122148035751864972029886248003676416249852395263928879229554689196655081092600626139517453313631042014804912960499021499759246079803633261794253727274982822200350936570859639899789317548543823052001041248053456361252044082925696557393226392785749948065510555366164557858033630251917393838363467536416368143671233841329207701839491233969768872078205205497782596250091175573819119078908582874392952032894499994747626502471695779340583820749406802967685213790622061510383908764255480426368480280189019347294108728061208982827678551717554862322864282586199255465121958450050808167989074542296413934621528128797265712767614266063902611751924293528830106392944120144262326238600253726712672502837111591820819462686986092455929975256961241673243459720114646430350138767583872012337393056574499309593929467589772694247621881334802344496290535745591709826581929384766546467858842208328819894079770973946469177701412413596170513252778778008536639630086460468721977980838822070397406282849452261658353382393535862883227408467053774744831976888768749168612701238941696130459101426702599544468451348185397079479485860053419403961642760110207751493529406043284643245993796919910714555201727913601486049331485394093101013067390095708019681820296302106791698921662941137184739406477677751899051867606776105355059798328797146790196937727408970752447088399969889280599576470113751195405622437238002150713550993574758268067056189609554660392134570007340453631962323810909335816280669039985440936868837773085852385192161979390973714860381697117634155679064098387810627953514176755256364567283353616579190695567074649168824686816193192282640436297312716293566452633477261862588455475711114805370726296841437872368014165738199894626899514273187497852511586288187907526322789468161220117622589025957835506746170603173259135307277391080054948935334352075619804760181775904355352680083096556085679952638867171418292130497689216951128690440457478749238908311576034068272705873789271294511202359332250765570385405229960748441550893569990632423783947232802596792719895465809243983772929454457222603726875102867867771751978775171099653435665326355931501827276173886580629642836731608001317036631564992613334659051219877934698664169779242978347002735470225823321685103501185751199006148497516424525775952085589853597003135328801778110343019251177747073962050514937515818829836873717115831067008324547986517151977309021046448490520708636549512658349809978106769636392809704053227532541126583294972116602213165201142323896675049533426845049772971745191670648039289214713153998461083195289243725988230700749768411345951617714367283964360494259666938735595800747186054985490593167384626834860551450464614415494299381484924294992333968910365534024559344292731724304086590274295418357124166060541350686165944399571689833693308889248098678816254371710071255017467280770618484476626736871277805811537157104419816667121073255427349319930522420860809594500473344954332663797480743652719927063745427965358746978200947839582404497414102810587272025010645942567816102898485798219734806378940735498655686272432038393394788525688960749485956158191258374908529705823135030271032903587430163186962860283393630159672894386357122369971454873854174103448552536079693175609158984567090304286217740419405546541613650179607159598551780448907236194164301225423443943030195082614655576027284988886733380002471089582683530258405532386753114079948397311474800927184657746312450154411333071367522916835158611522041631694806954141033628436618809964680038214917856691320756018990254960730213744810318770803141565003397675347833490695893397846589841428597252977975600717010139603455166299831709821860795134491642285554094876923305385678757637459573765627379027601748222679369485885254404467697937231163387852079012851727005879309176882349249369857172793921976602715222337927424050260421356152313914912191705756477461684978846886613737331988855095560763982538668731209245761226236642818405270721845126276021153889484079173292935752850739750698189541134901273305587526617006188925486731745488954375327735065652677509314767785107093091522438609573591272196497180342165345572123380935300804735389306855170586449427463231415540170049078610285453426942504110474593231998586177263261576333127627071159750844142878085785517303164761863052846857939145716142105630432265537743780222618340753965885036538803155506219671560338803735890400179600134268017823221465108925565895504237041624350481962777425046975711278687877486769079311291253912641218820188786947442036006957893116307951236883668016202792876886068658649345623984779461210366367210914503123189586434611666982309834736937030144173799883654532558143364407006615607480689248683221379958119725987807680479704446428440310262961062920164614954224950386332846213453048414174255073667114410702174286575589962609771438615023088231540594178652156994824401251143689907819876836439772804349331608148231267372777094287484979991565068869010659331398827213539401543133466415279199319422741234535099787084269978470848612855954137195842185340962228389300039615606440881956612558435003308394300374381222039374472851840510980483709261014729355889386782413389713820910456229543101951787859643817426342409979710832467912551413613132482904814161354859552612356841051071277578187289094309497754420472475712576085177652037840183605054588204587271278244868577642721523713711849626857219937552999553931666079777740492108008645841855207665829353951368858261344647874051297381229513240048180190131712212393982350952054714288027236690539523720893188013703025714168003586798493701623578782885022435738401667394869280657130304876209973735009673449916236497305828353099452222426300047380991008036362352905350497438286963271527821588666551943641456790415054556269326905409487738222250867894547838117001449376470160964023673239807041133444922272609351567558251621306121432026296727949954783501912845283205196877628925176285111496780789221206622942148571080923068892894052575413036915118003055720898600933290185069094464986809941659964199238664620691874379447358761942300694150999894601409799318282699693683032542859914043236984596362019593591480983229341781533412320709288718670695798975479861167724548459492042114692759967169037672026303885349480573637108508840166220052743522196145940232858389354978004273327944771948594223634081108840246830239198646232224006416869807125793086796160880213397481638930083377741709546967662625715774429353475908080047701770532668246863848220838081220178701984675226608729823752773310713868758828980189321827122100624249307318770542592961710410325501135887985016982403183149054646558833396772722961274066235830692422130815103534032564125327466875907504333758866611737132041037821115098278417904880375085280470143818494092532261891948430845104473057783476544857805289766322130513133453311444263301088897828356196084574285350318927713699364920356886406620674436141131440705839787667004120238183370034977278563449000586069415672634765888048121552570225411270320190025702292387559096105287792723721229400726797191104230876902125584883766238237473447840743366384756374730843737334467597946170225404121825181918303725213628570661235042721570638251422060115229804361239482070800017245206065280991072187802675529271188015176798063595340763084421981370552500631663501213385536075406450833004928967474185850177393929035840201528480094712344464798178436387486857833475950095811254771569585573103881976794836902766659359459964519054053359308527237951663752121726806198890006771438441578402628270015966436496532718167477296777377846732410400859878497651090233126242376784700341861792131451537578880427000637038427681526073027651509422250510593263155427870692697897090877696298205443812646856952835378088704071036118420323995484307022889152658302291867830019213602141620622960445747271261865655101674954857994335859606381738400813110828450336407267467912530649660479439321433179699497833760246240089605424610340618118276072096397506794704350445397498062314717204305672264710561045354442394403729175492671962509455220985584979508316751487285393278273305576807808751600035395560438666932765355964572633670421916413970072803962319539516763453967869093098874917426911251383966645851123035243790178389724430749909314979692900455322509001755850730659439630847353848035432747854502940586612054747543564233430637190573708991716269335707893479975014035529590545095686748627446202101746185071819259563223476678491703685934241158001047928632179030027240278331624353646380065456122406732371281101731861432971617888935413052557978651067318555838767218331397465030396663789341828024674957786447817387584173939648045409162853602811800091664365277270385109415534630111301782488293778325706261450600533421156997824531300584934781150896231500086781308290110758830275870956859939107691124388201211780470375098587553392021238907098006820142910104791268029982326891518246769483628278287070045375762011853660304232123617017265881833009501883274123465385431470347359114580356365694036640668582841611726398101561238480333410607851382996927231719605484230792316285567153788392297031382635427434465613818591782235184623315350608469913128636242427711957430013415636032667065818846967978562688628865981344901678998886618953084880531873306053937994568578379552715246229845886541782379057170446375211695698252889161651431300756320614451394804266761772314288539141037542429882480454144142531211525416920640508230263201420508354092591241276088026418347675372960189070196446726847732746370712438604573589693727646220137483746326547408903623145471268300202827043237910400618021537700306065172271002306937969097882626341554808105542640789027342478048423196142194989068488547814747574409641691504958859262764687526507516803074609324307515782271075853537910043974969999915247473084335481920940019617844598518972143161729419612125507886156019647470474721556928850303177287149652697844753499470777970852701408240382449786390201293769963471630628119741038053451097434867799417418091462951895922038678376355658814924143050086684973019967598006310831015456918873765045725488419771088595036324194467267402857649228596972839103373754978455928576498644039938748423249641894117539280273110446269385922168478233346392891211739024058523938772817688687054574244752084970675988687262116184140318923922630584908257742838118147087728602428509294404050434992282271188533715502582400906182459271878368814941964507234963875594941140941313924499759207425058459839742897860365098381498127700448998173696312565223803798567558626026903029965287548602876090258917158254498285318741141450745325699125755972449819677545665105790218987155138669320664797363083303909022911608208995332686300866751889033450164042184667444165056995501415720092371696826208230447104413873724802363248560786857940207966116529653101398339155483889616632852613013628395108089606626979639787590895229982744685275661992198473308700790569439000385140046599487013535436331663909252312593388694892149235018177764645524896519701118601602194167574848971560759744911567084911007608637281797827500202863212075299369999367043872759159540783793343574834752957004724435664877444523664930311358196590746186716070563514048332332915869550030781602356440832391635307909864546749337753927539479877287759585713098777974514987748602809712589691629830027947519391828581813823189991911471038962475316274240443476173462158124026409176890734511550892601670740366844804907806632203199957507317961902801750812925382859780554190213603746518937787544487014568710816442256105057381419421506807946141030234386479404389026131700766617668922247669853918053189076377042247426165030257190917696501526819361172566259446775184623741701095099701437294253170663399409914151837923558785988156061696383501975410281960595640365983778053122497719339110815883297359414428077022818720883310185765547530324914538684514965983287995754288497857932066030454944204838309923292203951831252519074940226522436957184354791306956348154880984116666362845615561666403098034693459798100501030290810847039471161951804651121145351752259612926876048049164243158739852623372267872043898055451628406111722448026155560901615765422302811442109603692132226309452018957410189188321571376671204616169819598381868335517929419020515814246360916449247227837443470281656054856883654854014174676543971549478780643944538933709723352838088350246934635553509482769493583766149434659524933770981176058176703597950600648666235307013679136890192307566615003273416526163948393110651429851189084991846292649532994124350568117557185626335223346138881736653785414422905272382203247706617430700792150692814797732019803754056175791805638582598642231545747589385669078451857032941940301416709015598160167724235961802879998579230975339692770556745154182984281616436740143325232461568309348852252904406267786414941354111624603107038327502796880642251743418313629051904389337875178013367935816897654437759578082186537648279436164886333284220128271794508758571540056335518404932773505756738006131603371551006846392750832251504359736325528841250118345732514065147411157926414671045637889459432937232352581189151407184432132994316934222230377364700228943440337640747330617866991248005770922576177449561116205958256881201729400301594106063032225395048579175678553386789400122397679073447465767155076887998861490751790645979045388275540060806751878535711078154599896506881240131221578832804092783947406147447341518219259602308586101146039213976665413833252233240056405831501414450298795788756672004339643803089149247419456048620663726249884125351597000667963153130287895383238713517644282812171671144006087110999355902830616605635940586438031678984613524557823470368921913736654108647654339927844944756772140097870665732785224815759276699438565185477414832154988025665674872467411101286762738511707139856683598486772740800824495855548161114703192440949572221240140955470187200418989232767179565098703236025896351072994823303921940952377704372859791771540437861041948958254331846566793760578200764088891280077273193353959750733544296641398194188194974742302078836187208286891672514280618007640709911208575569035351575539839262268485225463899303264104249441163249451278318809953959261783727751756912091137418524847813237058389846363470164755987961386181003670947128550720638256987364929622715478745158554807385351338128187467013924679869201610772706976522385143321338160401395545023860711272361470094491434360595215215146056589890596050036236528481533032512342842442260859879789547682414927240976129467027651305453664604349242441278483418238851586942202122097387587212306505269555414826964563651126915365743900393195160891875471044013226576297560821181547279138858308024673314280295119843696877410869624313122321371391688792715214674334568694406403235618273610264114380731142097332141171932748816844228914371893658530850886528676845435397601807331242218304196653491104075555182468896683486164840220310326958599182310292979882552553220561527806668904014370638318242534129698553430407939190046100675829642716014201616082675131184662457859578143938428957542058228318902563144478687456787005666285577337628644672344518833823775567430233962098692851846871441160782816019681598943596177889849013462777971761310722279813615140678651598314262156457347468914927271703586937644133397595818697687772998520131475749099537208594568436264826049361656303545647017137309284869562229539113111674807769257699018427450593477508021955504377357182660236371841504043978699225109873953051781823782269631469088651953832520227645448498461645452709543169449642382442999984697078525452973950287673133368193217823854254734098555325572837790433901940953842450029112930989440521044638881061088276980963718304758434171384353677705062850714375173727340922817084605566554573689341630852978538118612324513657131003822371630784604491782006032982455302668423327461908773822363048567924996800042237338038742418212526364571886108972169087442533678456055632670644909947387636815411934702715126920451379322322210639448842647607127813738234733139571566408770620310249028964043545354716874656842461333895972781284694657618628689903816858889252353544687009189728587502546891704630637972416886639571658826358525704477640180712109662946922731076083804314304529554824043627689707334320879481695092070187559460652749842888220592994517807232149227914324045240065583228017674046228563592338021048354418483747860788321054908180232918080928130361874114548807178661563367542483091483040763495353827626743498031477347250761640443986568623700683239298806418280598083625607749331598479447266766475710174187448657155509712785649454995891355761664891950407378388517620005668765280669306311348238772375694076227753638319716719398150043111566987840833823291668713179531306641020840640586870811673780423883655605275825015459422888937954787900856342582912796148728709962671683921452141613656008458277669972065719464458835428702388561519281985796814599679689223498437296431578002918950975164736557229843142355333861476191392060255379429462812044322687285303315720673268281815666734912112101037643382321332138864265667000033830386103894741078496566199588132663500486908086213215537724082438125642554515309803809295229190402931676721956485788783020957560361721214029318775112845693015754726470029233088349630377610215815727130929216616998201199506041226008763980889366689311047479798609555790864480044267162273499528190845313803326238049406415287590244500518132053334018715004854013104545608487864694453341643385564712882272474027413101900425395004759345398969269885969856805098576596080785101895250330393824171097069364691173835722184014065678449354388759843505404065638985442285857402831036882966950025707661244053563914746817528785267521717890896927553836383056030114182344351061233430855285041311939379280326924028029121348187910580332438331156993222398626230144289507386395794179069821588015946363903276139562145624270875980924150173331437925533662179275578392577951596482946636048439876997793300132502786039426103513831825289648640882551032995545155026043167737903804285319304707139284298408726563298603191727774619426765947061344587688250498633328072137858007691654715057000550027861266912419777479660474649240140591334115704453776525273187023751771999852597521873114914876152514246176930398265601746337593994361308265048738903452414048297953937576934799428201529052557111420042204025179410955327979017132972277089647111429751646018335118400583322725945579388470918646890852753462881597956827921612486152052342312696164375124036973172775394684358372934196022899318886632375707001311471705402608212132219248787877698017383590261269042909430545077771901491620827926865351465232971389072025475831302604205482360418891886733281731824308380368200021241504387166602629177004490534091876618971114831293160552165487170909682025216168946227402044558041042606639072572173569567476540073449439888167317467074189090499555043486709939758358735238396890979708870456314912167682905307924283829777861589712481328568825325245993224197632256421160714079215232221592020318339752003524015590364944305969612780846463821804386644558561704901602406954887055188396646256109850746674827589226064042408320076131727320555351211451320740525363250659603573409619818538561751499415946632974574687895411524972687677771857473116861824900383842435192183513042929443865836636041058925137692328390661518215226407900474734704161209004912920023614540535006379432505749130054488040156600218928445619793308705608922684841024977881300881391726250952346825849320921798639006779822029250589771737130874267799526992172316271276610577547080540160110794684881219788928808814426818614454745097542937913824036702190316311991199895250403461144621162806769047798045422706341792646246584507712309961767936183131964425490806167629532732712634606472370897165861326746925770876365450605788405376531386570904912330496392676478357149765539648753471457156883742828758234296695993242940249363278212484337538024132439793989580662984857107230745454488833954066557145267859049707422844559403699426245986656681816971462225988221139080813946876830517610004539730711045341879212603342614638364532815765551904134693301711831378368660516363451406875324385354890681171828927179757146613412951534129684162952555105686847010941850354798079929095604514550262948118878616375533895291442702439773330866647498146096425604862490620066086099345940744901382878618999565943182571522318424463248090323275166083993620708590715734261875827460484580802900633952577670970540051575031076808365968641417071728053882932793699320040087612507377832038106228970937642678777281546413909237759527370565541384138906297797372235823001839361235959554804695466024474549070318547602721947906182946297175802454938437641485664929530607162393075172404367976634767128714329064013511788664586288304590170056153146057076794088030696382185278774033762488098194751008911977978529897975637001481570572070962042746214876965315541607012580523955077759406101697646765415619631753895489762580555761179396905645125851511769116036973216725318778483605865215757514750271790426478351697395395312500911161107670321052036304945929456746375229048335791000967093322631736989763243305962086990945732746960240746013054303987538832690640063183548167564140120471340664660698637259320063895893598971984480629499899602417954131608586936521392871400373860731958844803127442559381320782746148236046798358532297570971908970468595021792969186241585844553762066236021169011291296512845056543034572526349408036420320128833832417486117224312457551675331633229410937066498446997713743455813218490573015074258553785571709929643941674792989234916411047651369875079018919801265292688907195608027980900373403776380105602617477798502441587827496353406348908069183899459595193940292855984743568793147253328800007440575615186247931016469141436244971687128983878012325352176136872418920223091585270210309805028090201609989949515103481932867303755307702882183724899415495656440133296439781833054859563735863194087204938663033984109730411441105205581155366842000068729182439186565026021467425489449298371000307374022268722725696697500607871921731089813184891641530541957831106787465381649634498505471289055904686420678197097872444751356734045301641785311636256738533859206950546560959415125593553499783197217350490471030298439731177904745016326751944693808514366063924239936770899732227665433971340113840833220054063879947255868107308645198301545494358302355005633568675629403421345948236376611489792109879667915122576919105831626791836577196605102193243277027783810246816990882921411188314105461291738994710930681064975261962647682032131705596755691594739443288952529210101466153150767925625676304597664394827172530932228639938796184278079418246818818592108247693430626544878040624258701345020735498099744936878229479836272490316670699339561442169431542019515042400505417983671421807921313923194262198227775853348619203672750302729931694564656696311428247949646596872138744105080654036635863944488544367067369612371028358939872599333696109745170192067129708070781064826054901268489538687333803848123955339362413545650817399978958525983611645075997908066088156964808359038002959165244523094969817290376297824913678863898823348677212416714971368084290043573573789539123608044194356195708955954459787121240645674246407839671734015968391294928876176465555675832452365670768645699271757231159729544876683299869525692636743865366496236916212249448113508740187751651927653059065950919155717172485749300953180823096706483306666924899118981472541393531420391425331632274539049257178588567537230876337577944526301756460038835276278633342419716355176941384117066015308462129467689658615669248333051901018376677827857097069808202320617222061187861568182152238445178145261207780907252552651510225663723831351352412972992242302539457703365792520109007091882300170485563455652248793781479516700745667808407516563681464641832741017114088891525187767594687964446393254420548304637099797622883620640939350210648678271579950970676717067265570167347659955211487840614288818309100847167684676818276197627148380442232576235656842604434800319350925665249993808522342790392617182351598036465702906097686759394374859366334165188040383322129796165800972752939971848304280552525993159933621110925876898860053400977504150740317273558588216707991491772422344399750761895729797289747351118415707476937279362915076003117119895543019196184817972992155008755278782658606434661022026122348660542366234511016028383315557543069826935449185615837343387654101647082911746034866129862576317256176167931593462816243522496060876765491277182284588817804541754691440209092478534439147106494178162626911423834004390884852374814483695754998538322485074332586756060256395348456488326168504878800809836157330754544577248107032516854546409120525822058420338577631016479093043355973230899504184421987907190458950214151338441970100032813789250339298441644741928102653839497466143805522907158342339483631869809286536424479642886201626916683864008931075858941887941908923752934600755645945003115736653004150256888304452142671442490675861115639377610257465245132913173344913290622732229236669106813841368448692416733037139207640319120614889962285516192899940141048188707154171574132716581953260281180140619594860474739133425633658108047500538614585706768468199373147137957312687251787565844846083969214445415734989121725421096951405441629846053663800172590052035805516442881851158324303589428395885333421251506914550815183220910983389350356587244351070120205488348046906936009557065456381657580048840987282296140996296024601783107378295237653538687099141879355522559695471976316820297617897914003488975420180684193657827494014366618976346780630140866272036231254541681637570005955799246191265204131419014077403243198636799586276278918203538375727422296909430363155286215647858060836418084655790422008298300280009022874512787932824504739199406934131536432190975462633830410263032141224358893465219016264990334103900432206872009845958981361226465712193062200546351466524369520848931852246611454512629649135557372398348208209927544236318883303213662892909802674803230780461349986652535884538701880508709557187565228193645975695099821617888480424340867122647797468524038442971277109583782713671725987529291319912810415176831424501630550402362864099673900543425415538186476335819428438198758458170052528664914805851821044744370284840761181778072505424609070002983584322443421548106958048616047465250023376502767865300511971053151374013401472041113630290824504144521039096990373419134570299264434164364574909479584967080882835706228409996584943344323705039969046721820966903616957343504943228198081646640445148026978176771013354606370225845311624617677981358131471611526431425757655356784283794497755491178332922817358508065193059869254222764130917239408701324082920240386558532325034275928630122920024725367924990481621897748036737187506353775374888648901200194602228584749297086661799036246376126007147831598826028380404993879781788795536024047928332753890170695398595492191509681281299262075761479761709339263176332246020084184464145340499152103284067958165001817765336444978768999801418938950063505389396289137144647875615868301849743245445570719645275532104900710787632467552148393834647047658397916819248613719759465431130205967733821511222066621767073059024943378927071358862169775398520870042209310197743686121632781474158844132964945337838941309654547232426241515898147477490142108598635286834783724838288137129564766253846185798056406248508663886447107790276276776738697577406479608948283541727300774624193891802319845542508455315429619299780662558406188505838685539249295755058552080537282734943461834046827129162857852103014486387606632065604835452453899815940887023236333515836348446391878443664997026570036454353029829065730695857360447117773138993129874301582613120788014360809612829814629817103303349102511467615380692075074869835414559743900296028252253837770449556157786939071783827304039883440460186543146632474917714286615462192807764926932148705116181060391033513953039815689950547448874848917657540722938623894875675493768811362919389341866664422817897956312911544868933568697168792953961164303501274177809260545616423758080303467654376170152531729145230726067743626995323291170728649945755702227398631403358198836896423378640808329416628968014760088165293063144158384601038102841848219649575990405231153229468243914948373977874891896880144549899781872094927583816663794414308616831371999606044286221459672909462425179361777236867671128946831892797932078331348038597265468868674477307233989259638105568988670097356200517823849962014506032538144598186735432766077145012666904610431408196739599861373690829487147645649404219531940394831410023263566001510244195128537834455090251334312785047119548448797700057919036674749585460755933075504093511911723210707794373649789543037949389332639165945211206809821879034329668295579668014762569839650467080379250081231907696296733193231942355201627588467354486954019550928946943925962156082513877473787147658405404189589451484187456208114057958570187104814497056374886093704782151702109055520843219719084603185350981084940048627717564960905659421541246518652638988118848437414499210852142829713550312039606848379501268875388784607809313224230216757413955787121367238763714601538220953793224710426437765175553438052435674723324954053723480976440920428876306789070357608467223077432345884409276496498282539933334769551801458294037494453602652749364201021927460704035935956248458673142964392626546275200364590085542913235907592386816977559584277346543595072587194940103178824295930908267603733785852462440861290297714301163998691629878897098719738902846176418538347889554215485604514659440330079965722189430646489802853270083594869787712962613596853120671336935311865247739554882754215355383208145094017327418410718194418651576941709228342996695417826174835333897939013757260872916664604695705562297769520173874231847958764303909860638545787125033493319268516836981643332491827249679429972899869344781226021302186918938554179789943211220048593795070194902962870258769684699881702454753559366806137944806077606085337946393264066609256444854005637468535314956407997647033961730755373928586696916051015342293938069927431545076248227754188245785721189937207226283556137706518826616381419847027776437330075433834802763274942390722280935285496421711850001413261588738348185710258116122343928682447951484262787446985219056607166566294117616039306125946607453138021430572950234713327980635540243072754804352499495799786938808822654797674907701674409936490670907565355817622924417482154527275197389460828905199911178279110898793527543737546616018379255583186356458572542232192153302035024479347096312135702612672400364023195623264710178794715455835348072441994729468630481292903590415534255769024250449970148708671352973934498404630673819910797720873878067473509552818097160914703005577873522158296374407252036752569627208773190899884525778647454565941693556623621355165165892971347006974350692781723229856561480148349935846388542221083854583605542290922935593416829723294608161035827314079810249880770501979714798783146726077052415185121082841169994304763165750279725224792664696112857108783341111863629926108665360403893792576985862489042256698800519182560586995596231120623202242012365931096354797013926976602780265558705736451034306058247793224066789739421514002404131912957578704027903648160737830581317101141827407682770373006000943631106695921474684515192420059883336626831558658232064889846204318840268943998981875488441754940397963527345454661819546182579967271981711911501598624079580544326053710727309807275887477872108898257488070695579073640721501407458080331505262427594246472130066367024819820119273591685928276580870114111554494811102005109154595894499816714949625286477222349162203207825163011293987807907526747812252205005205975162682400655017998810651001331823114022574387220402744424487108672911653813845849032681484802499509788250155888867856974720049077635730603034737417667186283987814926633407672345970087017212690571123640475857187646508766130640792306711408657647862228099667051543942791279838395710475459461623249040121439661087992743797587015871491671870455249309155193734068286027930918058922040666207331926173157842615268606380799675807137886231634089940735987406881769396353736257757124314935755548371230000945834662274971213649466187671953982467970852722666292453441642055805501991631591785723508584847232446835159746001650379691496818486027176779710116657289535300517791359354503292564073393950356730750683328714098265953918235232481528682771019449816615564706631751885545339564260526766430423562380544925607977212439015344779109732069467275859797715968032378990724480407198765625084139833074482331937830480725724449406288321421055876808941407126767150402682350720748502104182045624607999317735135770859488177931509647733262256276188873557640438900552418900593867241627755259938559027659892498031956540451172306114703106949571981406307039375274397516614584821784001480125794817202285712072146932107902761338286086113846402172046670527354275701632738598127431873700304543214603581045663546003369634886234260052250075258337193871104095905844866016475938246228384051352325651585274184138748656122391649398636459254171654944435985948889789760383953062721982047219331298498492508357350520336534025564398771365587730553653322413654172509659790009231169942500368706429277675601341746757948236294999732026721127050912947740831175753313996569955313052980789618409104378028117538496500750388999304453314472220314505875641728185917945686980816363213759069758487738907605320781342167455466574675417723348315332204841509707730448532167929469182026873830925400938248045756949687350433786529572829828565165833856422820499386684763454418454692215903863217555919785925995732744641830984809733359452428354127873861252259747959206344631781673853742158479110686716430458844077244391401824814570955568136120004320448210307303836144502014710309268069537549186837268221924099273014076056166697897969456920513745703237190873263723974308415920137841535388653033057981351241151273389866929938720788021107694602020107246995711173101583381103056398958406272699558502706738614555969978761981337471050174805107537815481921730440906673291265818130680072809998866585983640358025198827610812931770831350229038672071818327387123685915879235119351544171268006938319672047981932669554535308884049182829980947320718862018535810090572616806828314705941878690911106910182164935428433388635666832783725519045099201501994294522856493931552167529170934318505029660786444242170249901290228778173429195147799481681842576996230485865058740357239930408825844860274845700724101581187143119810228943455072793767625123512079560585750336987454457098011924010132711973636893052762326861757580155918602923300585876435991976203612898727179804968474396214470321971440722924227362045612704545488980564274684408583336710918874222194663653467751188800614568401177102312101209680679338969015682589815000921108827344493938293226308473970648131663505246283417921415475376311717393052824985817170975342415899494171607214540934551839678362510295286436247106621311154929971892521272918392500250297376872131488279569246670778654508896743121850767688279738562361939089182648197573914078783542735490885406452164522170423045844638820894409193492671105656151486269856845313543968904105337587510039014737854000918922411636241678372015656389442348455928454440389554669176793254977679788100328893664544548098181554263482888302136685593119918429745288461299498814015552931594060356081186479485863126583624024053140113004331051967808614101325540543825273611515085569025181452900489659132823092624380953449163887052543196892339093237449604174738601210753672861369651404001927555915372397322137023208018281166412073290193282407399313193572111245542891395216179561711809803639101042503280754758609887382302497247214529352691621354367810464267206277208461440348202638179199153193386436421001104501808367682428229157573566688219661585594500271888840241018701506859525269338366107431506694248017493101035535546632421943627245329051986785343212143576828336903769194180290082012179439149178029800253468176766816323819836528290599979109979354166142459504480091188781666367227917329804841539548361634944624786899851123523668924083450720406709827774051435192572031467837804109676410343254188513546318003459162637482811154106585947322228356041278391110741635277424255251850093383438219942503509845606877332479992830423404862371062439151924393488830449732059044043376339186208489116618944567170359345476645125234606715187919581836855165836976165287813790964086612285541616288389878280949822774207421018533565900960711858004193095074121519950594895131146470636535534631807105805900317809686872170574434695624516141704980315958406326397000342956773615116698571401498398216083110772926442570674583172046203719651046166821932274532438217489688837770565217479410731668437099895369991297210620356770492006568214352806726233405645231595662327229240268268037263541687376237482677579375527168037752774717178443407845884701213599216353089011117543474858479778516526787950879015451179785151154591349045661441286563916509237280939390092493482906697939420837575029172313374510585498913672079647060382310616633425029780058007006382153846083584404120719863236195481785217927811027835817610005271500586930916777237585838008425243429041364705373916173708495358519957160287471389221292625328678842032949511437585919659641132007764686317585304160920503399782720845169404885756863172937026810270083560711571906302741120986914871701031518479661878109994493142722908111408244282298196477213914891534390614737104500847042707699362569627270615672358200892749975578564147903378008697131778273774563121844571044698795908835517898835997532617671335952639784709106579138968330936356619529374644048521582128235509135318144757287074530707138679381684610573320349978943557290048920368818430834923479640862448529968708479342130772192080112251318708273153588698802748074595133602447561167730554484150146938243915256071737502556842186981847787229317821989182521537268960985618384786633146704191145497987035206213276139034181245689730194860246388358553645055376927129209904415916609804028706161200944929905196033285821937430867584871639315696135980434907289375434498449965296337166811502860774225470359263908227135898557157101226136864405059782747980753123050663210004697295017953711334511149150631008795354612487605265481915258598869316431319684766305096322050379116461245584107049629241703826613214027687678547573137901091779270662723010658671470914195099504978426489475034898618821158272234801017997340974742243618746060060516126357839149365127663111007402788609430594452357150397069489026902602935934507570025746064997028144259513900943640849095023668987718967357579793587847751000611345927604177862694838739205880459388939862702331539504410250014635751898064847160999012662749443134484519936848316130764710560996152757348887752262852861140142989441545107076007259112237034039218995187244653282409674933514356863525437719461013528637338364140583214108944243564853500159368018621120164219176715102550570944047819237651069002158619533733237007141457792741555132298041406292092771638485615273057001954199785172589505627306219983533498334121297300610454908641516367213079465695191702799772253658863879501242939173381428668697729721598926375159317534001436142561323323542543807530556590574142110135292342208483418493955738962237283498836058287716275646934243516453269940791367057522230100268180972609651346319074839470015165101242874055278901176922576244595831122023170052782053544629367003835365181388012592611046867891457291966091321603916798424292204819536985403413420588331892939073624210041252195640832992604883482917419834734732505125776902938040819159272669463872584800204299426273799059597616804219166418034556876190047759563246224135537887385416515232953527402262051360085133791098065234042692799024527089193971630918716073251894520410868642804394211110741141315808606156618868345206620166806669275898146540056420323837453650634848414846601344850528462318864949545159347140004424248972956871500749009632842037761243896387299309915269858116305252332657796151020008270815593216159528711451425307167597403673056806392975480733386685512250412774738635293703386798137241741907126825985033213211649124928836801984456301495362529641607653381193211178326537831541142645685943549494586181924565921467840406826229947120967915950374174435965279045623534603284919035961268971820992151497259117141240479183206177037355482379964073863628842543732746101518521221900556205020678385516851054324566619735340052639210995245937501272370495962371379975843424987497926013795286865612946863928898910622847290195812330490827636781605692276103836407499998813769800428708670468590429551121013232278435869790929463213210281430122303216530177539244328713905266616197621192209113662089656874294899641225017716806215745891161274716398594850821511101981154490865825302764389007520905315926441212723068512822396122539220093581433911577565614229154578340265936273330501324548640800418088349823125824965146298249863258206789479183829821880812946125249994513048728024395718980255264326357756580431678031071879897862789749085975998323481369301998821136478645787714496491416260995360995169448663333953617334742566367464031536817772540221466109416565368718469423066667571501978886141898549006427290061018246680942354147494050442557235313476695092116790932494075232971506027656285725003396726562493249608607167254598012833949339239360970187910637766091624589363381913119516110198596722662559539627443275384272093838641152880694158192314713450515147963829210026789800148288249675527375953396965407487900355095569102623539594824228510350791964236200039017928791868419180970172517598469077306953877046876246476581858579900902336668498410520492363780110035921179648852345726678555140259113936801886952680810321552458821766283301997308319291917772919724032833054344082563451019752954970731385993949300476669174860802655442981830577134745410080514859927043362644631509719200354029615646117813826237544391340663338445540467015880099534038901974493605368496097364205713286270805937005733739262613752644851437617706581688900930632800835367427327962844389978292122871925430358630048785964052760968967547008615303086078264052735569977763374518860992066313333636097077077299036312517054166888210209440470996861640423968591559467891136715005673154139755086279722345873988065912889065553558892561842618918973478825325469211176854569237564823967095116952158962033565436398014843434435480680616015833926303611075289195318082268945541034020722814296205674752776209069375722082015393343200241086339360232642008056706831831333666203083438229180223856239972115615593695547173053794164615047631439253353731672029230248616327228203891656974022407732168749783618112055114626426816841949622854055432955886381983695400700966554819365380053538107021097537333542377343293376168743781194792130072154240299201362007007465032917632406620446747942460288581729543640735080898321503637749360830664772552689018870795742274956679398271835995829272887407927121845280635147730183757943124599144078592543922467232982142894681053065740715188020674461936623164348565884756521421836608326004170414945148792076962113603725769961958280821485960036961811137385029812963721327836049835928566050701462015503136260287566034017138671613486937952233120974929485739153397859961357031600212746244798596515886391774109080329275854412527011576666199503118319812903527950394937533528656277589383338485868244884106764994431745833554121077370174691716613369709454305695490623511061524485949143705313256558894121097282237915462884631108276960425989048178496011928995225535362897389297483413855790716776685028735491596627322732690581604917241140507151069710597245441769155584275275940583533035691341518611310021670559903505926180338589484342106851035577726489896659540822251332602234399444912607092794498086924403320786501042743598005291049367040005592414181021382910261015767645443003203880977002671778698451572454595274643503782817419528229649185790112343236658366500982857515356999311244152400357843982534671596281747639069482309589948573124348780720806117429024355530098105708963321371126166415604490843841959334457079277713780069748275514646141218146867148007856610694923574038914227781329490054816954767412888590182117206250079295762973633889017703921708393637854972195260708100268208623729423241535825631712129425934782837221415008497548531212528457050357207675935276605876266030571190517948243473154936656433460621763398454074432656896518711158922402441748905593083518922399359969295054002648249479438449582199907373752824573595261302591094548852475194983409577753186688225430138951313243038125463200934064882613168695444160716888032839314173865843833963355828661847519859795779814194262847632027816801907049818032797894164314069311719252922252279133723196663459846975421997377633256739402380600475124000068237622466475166525501252453004980437951945980452688258673955458192874276114835834982680730553785243241831693303302801053065458782772743203728278228960012263000901282638108795643450877782831369972401031398458610152983453008888778656223285703962476744878508861855836660238475293816839698926440475680704546746085473625210065479539071835019250338677442865770844225532637046307513687840281331876004170742439634768640329287212392707199833976139302625882132705425218865706859080575060902467593294418476199694685590292831032740408618457344215140305729130426242087345062286889979682734902778848418897558047400164095251554190230690780920613605090302260442074392302042653388373817065705993553746744461060541819844243637313436668710231384421601498246170009867059867952497317150438440639303247798951074741631356686988319138111033045546325227425789856251915707596840151156426936109150370633694094064730474669000717331096061972830509784489714493809342013587361784932864171317523536192604733241217762332117279914336776635424249861162268609466372922841449389275992690993024191327445258051333965540933668841438313975055941213003528921457237875978552319600582692743812439850722566442896564346358919926744188119203053125683154202471238261092699937616849290878997988437756071765116512898047926092724552508042261021544756642838537065319119613258807197448239517260460004767164552202067523516854111413022550731954479806285971127078668491565615975464471707834200558664751521371043603287669270656337769283913134499596405391179699744967686649945305154377764935330477448353098383622159894755860876539859425078896581811993599558104812102738996780696841871101478707878112988698638759997724835048555820807258398376924219821873320618159226255292080846154952857069134344027271571672019740271436913178896228893146657312322929008210725184795993087819867732281026211034969068871907669770822407057275092703554273345419769105247842020300202079610675966685123552341753880852989735101928538042892202042311651966060867696985268957729363353769820191389027249310030356588970921959597315640101581826210722731723970490584786651367572715966304458641430886609474298833883122099296796571435848597047110593730113561056224476204084188629951388327851735765689027766006628730899305250886411038709782346235468414678214491019178359380130143255832440473655112908433700362075613155784748090215339152857485370833222431317151319967292633419440751243935788011892879203857414627480796563175512045303824821642434170717488455725108870464476942129901877001260624165410213764889529418617964927899568644340156342951337684043737927466664519210434088444909617020642549704888964091465914434316970890795889188345246199627406673610942957904003217194995697224803868993232803462645445855193037116949728438627623372660985557657665801895170416781875010779977891326188779744273390292934577710663883551094188244291735288636517456980856825265314875779570566942623071422107626041092908571746836482800427056253726142550133977252435930062464202306062458129132085932375320701643084240490661070599717249287411779712789196891824056703896396171430858547146952037588107020444478672496224972620534289687608896916579069074972075199411410452563559810656012530377955787590093810152549830112989571114285766589667222499007220875519199782469914966661851303933726085529882330275192294040985947909258373657286637041929513099102102812153622840504716356474287914017715799588296046210234134144793434700666273798042915378901508214062372257363670591954020531953585118200685945533042069728532506588608705599470192394989556158753974850589912268891377653964595065694089208705773177428067849387009130255817516033287050817992050138778304813117504142646685954156810007736193224278823386941556853961649036735060219069625123346447946224796700815549398156307260281906265065433618968124017870729958180167310873479580969054616119182415053392200799456804747251747612367571416250501767092753895305708833086376050232370457163677528659940548530209341845195671530875747583314139534714498609842793469729474484380983136918492233813540647646092305264105894019880553853306695251847135715088918352982695650416219587159935796438776674401321988513536687614118120819971235564999054480007635962555231991207196111624796167373508134464445226030890661882086885039064874466923544601463770370960122831429493943750412697642994339802068057387801526183899262955670327228989029848910545668167902314560435142542186217235427880297512492782319500873971514595554267854378928766062748467173455887207177825178960647205387689608017455515094437944788792332623491449415077910587548858271321288266020807750143008989298353840107811728573957704254349944254096194743526503436165080513233029352038240549236117814947841633672508764144235317445061181060545299571600541585215904981677326386997401005939706578164889067917883009724712433858285290824500275801433704712148954405959791496882294876986826073708764045480142233400919634403878358089392400780340602263067940045387175517329265591475591854453832453295907390957485808109965956397828859922308477345414112173983166351848147172167615926071409329837236172202501336424203893735958409553858982927537209817002426909658168125322335274644295944826517844765681267842111535056335999085875849583541747771861431646943081641293216628783156501147803189976512022532449321352349787867149293972069046469350110719676230822535539239590352581258751977034777724826591939768203776109984667861500520418798321728623799393614640978900360424699511158396137939113520412852365990295721909742346050092331146593471092285768301350731857407429580167165998454586093815658444059157224696681655592376254308101699170229765063192240250746790388505399102720353648505370562741521329361561494931440259370454413424967267835789895885799414763711197813232224827031841460332663078744134348426038012070983887629989995097782885094450411612889309962416485299103641918790151338802090816821729840467908474234924199380179155980986073677047287122034916856054366814963615841756889965720425105401382992836506987653861987218033752467298441464752611382038657564678884463680320734692638059200482888505228577212382437553901601721859042154731901836618342537754240244064468609059841510881800033090741738013801580181093028898189049827104098055585565526946318885546924736629023550923055532126298417641212175633108484524917415331625560829575139426967117841782185635289110620493221861324437546266128074182568973792610841351141323242029319801521601988376912651950580969105877284430258221173903523407443251114018751508931500235489373875195060458361169121735873657613071091356110202076482408814794852590118124313464772250380996287867290301918597827056249342743989390477562301651318674050364380190919514504082230072787203390604908819289180248942859995101550449406961981259285113980311485529174082620036013634505786708805019407968836112216077580221897060736186603006798743015345990718150114751346003023373953941201138107058802267688571207794358905875311339667194185399298092569522781801832780076612952546907158994428814233257683019634046524515039949381938974775115492202609596127018496385159090412185280780757817703569379383525429268530174125405395037865514844471321493160266016644274653349426030868799465749396714380678461228914592871913294788972416271572375167932621728072044592108948798934913906219239235687982884106122375128881298814555197332568884110639733303438585569959388879877099823543586418600516787237440560624154623101581567946428953337116798532605855545302404863661333794780778029919146073202477349262108811130068488286515999850175120486015206695417652261931755624845620827521016171210884508967156087144446543598767732990547078334058555623487024586572553811944149447197541089747139691911667759896690692467047973916924844539956510926368553517904593547285982332698830991187105403784791115216186898480028965812986225162710722915771058567929008906688509361569501050673433845577081422528508565224050464533020323226694943608597161738736940599504597801879488330740787620546353616357910175306691972394675361623376150335706549511513347578844997105051519647252109980760762792863431008326662743032822390113501285434083610953257266461301543689835047780959811317708032197372502052267073267764577928918573778167901238299623518605148949203000282081005281159758502016612399922701619056408157865675414987127435098624692080071055772501240136118016586834426162708002703465251088866449131020149931685236663137174449793767746343984945894358951449602328869223501594526947234463380296418919450351388983367402481396550431161897762965228403786636217213304751179062839934440886252088306881957974549729012413382192758941905024633594747330187555908460474789103718827591415079573191616341171706133305133392893440057361278783901776693466337508433100088003252284618351210083168289954016294349974664747196901049627043800567269612774390474766922232253064252027075043686704643056600022159179420963265764086622630679938125755454911151838690424433943936808999313863466582723918783066661335818244720764537236520194555715095229682091048699080715651680956753862524928368600090881891883599077245091855173559331287883059671463616006333900839922879817191046347934802718177788030045705439667518996623137080287447166593755101341430472935404728114294872235171489447297495074671575437144917079974323291121076620280250340782808264076893788158038596868194444776228163924637651565340025124807502889712573636645209106691856156223744576628212684565715948811162245334749555013324738772436956993690075913908323845180763228133789238742188718200124581489414684101390569117863320221071759472054912150689680088772420255754749188788074709375552040202424472217922096237919169514746866538451773631868053490967082162605600207550132430760679504641533008556441051470820451473781425588269971939791153680804371135262512794327150677293914469216186331191235858454329108429750119270002264476102804449009753272716597334408709642506721202310461072027401960223884058561545099868125681231167807531392605871863069042851750080235061712538749872344689832939188589556017811263711009863938176815522881012725545564132372444937470959519203044937366432357803304310771460254305179278473885393622054231065143934391392688920610130879893075958633001023895597177290492701015125271967790712812014980100519380742069327529991328900549243314818778076944907847966962562482007578427462277752934706958362696007103319563665478064352991782967519563448344606738378730356147349439640035423953516184142841585560464692247302680857469641191148111111958700945152878951374184468484168854416809022898548375035174310614288454446641170063247374968420434787769942788644056914282554922307482021833767595388877419577473233522049162813754356107740647363444670733561209583051466264471554649435319712348480690758973293571642756425493260559992543557520683189785377738073707742201627861298139031217635867693584523885595805438366906727817115708238189924429686736223573474323127487212994985151662729077767415138610500165943400007578128375693958766955980330200908033947771606984051942632908863257334184636723236935544275646895849056003767477980571086821041948268975855003147726785524252580312496763483531306877928488333290895129798389214368475893402523896787871866321962772361284153697049790589122801369836388497320647966345078551342303086945412872336798443326780841954144674572198913588152104117451111082701153551908274314885006850064575270064414932271734545710064492677891815562058866335505611114310760259819006273575624511436803775342625228231951520966879686763127799290205205600019037523003062433597420048547369395733684309314893627475857765848941021757617303647593498160968878045247522463989985079833061392451994102222975332079335010715971560915249902460200846337231860030896691568463479276095162609418069945863167969244050809572170155123203688865539128065498075105861186509814889524449014604430071142503146116488373409933794916611884038728030242817679378110522798432134030581383027383365680853118415193825193093075367152899563583207351302344960303859521904942861417849898093031681169376334459772700813229337197665893246206915646342389027095554268738364471949964961594576002983787314824945313600322846889866165440834976153047464487148498634880339836305761216842100345806652780135547434238109771715234536335668716082569977321519255522690844077346168623935663916930716279869858657533042754566701836273276024831371792721172120818589042175406192141501249127144350009880653212473453281551649927052683673218923809798215670413738521198001678668257486720853881865197233264696759130268027818733493481336243868936740835034847142993404748410421218280918703811953089322118489223281255782418472647898087514388488904718484068012481027038905133577411859798393721373491670346851896699633592099530303033094890374329102954448357528381576970235486738577241955122182600055004538779059202592599376297963810431787460883334519612114769777766037991987456364628375457876830801009308084263099843458708718745517616805413690385771803717372426383147869270863323464320973412924142514368382843744325199270703962315498620026734391429445989247451415713554412524125725048955381432313493481326544153768879898497078809817130588078909348393392106281691033115422035059380482442322844431333463997676936911822033079978296149832871364386325192278539301422836554119088377014594527291454970820825379460999962327849674696217409717656832777328385584285488784731046465134804066413196175580867813909605884962687383220213398527830658559153137970931695114564834807792468201112683525584720284341907712597923150558557557136808707398708929585977864395665020958024575060890272039372732380105045786668065095095393714267758997844978806845275367403739608052818404078037842147960038904282671114428592065003732806277657832964543340063959819122457357865626472135095441100416825220412114909679774411257345338739127443286255486065913206368384990032695224340144243625494462553694472289308665288739937038139445694733352388027174672053967346689772633318917507624924644551591198310087591755985991920786847172692973324008854715055418939123332856021789948066067350312972772214362936739000920216327403570750684096028495397179656661953896672706204340687493763445009467472595122972358226305331572086283555530859083086435706807774155591636504348713303493984983201203415468981942787444108825425628434439418962951248926652754241493504708071508468615714604417619765612458214538042860958395989754005632158438066204330243675261497225309566962850596983830154395253682855636249168838641260642515087267654139050502780388197536165734285562374210970829771275429309051470107976005257937120814161566824393076912190459159709635318627446690830438921986026632590452395069433618913440289177654521362229800046883508987837419497558761667766613336267808544041596439849180682352040088756575398030861075283138758989373598554504887230868215494295398625767142031101966231752602439196099948424302115352361524811915410806572745530787801552010169013193223484003866765883764919383722188877043430649501447415465936235512335458637729295848109449778096576758273087220135150493784232669256709351862257445791098875990230554419420013299543813873175947684809386182587631907563397536386092388976399131680116740945188128823867628839116177127309845433595233187967830560412674333787161698778692849741152017804291158806231878378888880488278948433446484233604648739628903829148206436909121378593869601967877689695892364844636400357068895341203161639151259489704828643678138629406865132977140991814510122137446468310373785920270533846190510753672781941339723558981945579864031403322217700299444691541098096626463954430806766169887858278026034796316235499026546926278927239371114940212781661669871986456077055151630560108780741682633573362117300142673046593938045145361470719165492359735044848636110868386680151819362276133181559426303399229155767710192839510270118337967583023225388253385728938437374654590592685527479795123889762539346678431503123374039846345203288933155794584394517376999593561626952358308172562934448023191711517501736444191585318030411575393727403329654922096704178662689422381803039440359014681283459281471882109100842440853528289329031059361153929051120152138971486810295516097629423221365981799326471171290973518170969812067374591526703802886668245502810196039662121350554052345668097747724816565965974805868338953750852429747005624805501351318907561331043862601198687581516424097200891807814965946565990182611232458837281387169501013228227133953448733340376443630949930802689573571629412757296179300012414011332157833289120626376118249819542841042780579154679253327299753044027673712002467834326025291721952370321322333287169131670037043847818288967580947546939572464678890094837253297912692593110354977160205779004527693710216392618631929342380764291426797963045871424694427571727509216908248384127336593394677121018733447484474711247128188000314249734345846725615422201575838125872482450841229888300243706664217989718301610765914114202756516167865983532023425294597155815045073455911917894658664353752941792486184766966787163282612430054776021471352690430641806076684300252514720902049625542233811202528838598250517689440361155386848823156633616314082545182072261982802553503204415884131441148079835610018934426190287217267144837057505672703786192107272746275364301012401454850034737951900915380803743416373681518945152244480833473530009050201477515292651748794362288780012999947444191190017454381039083056272639782743324070190998961690462156564054075711248705587468221436577270987294775015202892073739909165045612544647207268629149481830566686380653324400029959591741034830243997653521908206897189580781606195850479806448208200179364778587073730792958356685141559595539712027074655851981043465683671331929782820577820319355190120058172636287983410562647560493334302188601296598295464432624153376363151006340968185846713721893365211827172852679453421991590456553921382247566772354296525183059766793691413701295470888090309522397972050155634734955227069367031775021322678093701556310328959205133386333237118855891269589121323593786862193518075851977865940949465812484456579754501649562096511912143435562961827842209944241479515162602834167481607386324488979185186862949126614241769773883786006242798685798420064067884000104265282357346939161765238131701757138920519448276383013771740430441565983800483073064804557539127011019973248879894310130295897359260038680169920557714294927041469161515846050100626789272788715205832978631926368673134096418200762348290775711550320199031325512353777262481724163361015766393218694380249275728560928501336835315853743978614537701821850267794323703566411388307488043377553880017285313048706097589537844057724917933924375155402018110224661859449170203796907862629493524663622096302301959243335973709648589837378055617303249459364604139451565878364267795182156542318682109611021674399581558080800399012499645704379897704768803043673834870574152334836108645176082509208925579218964967511627806869791607379420108688043813845541899670617619809941057467296733455835559017917766299825650478470876894244498107956266586938947726579315129560427287130414949005123000439608192581385054287495480653844041045328851635376710568906844482594419330591007859319761090225821919448302783896038677598604806211509798698651880439565601040723104604993809817840550607508262641342869278941633170782853889195721366242973151828400521209738803163844706306691512531423192876343747909848874746494773134675187168057468969059307241081682128319308305991140532033596260596228667142069607394562569284737531963773346128365807824801432070932197098337873587388924074653872725776329588444588005851769994137819527936095976936710871674549797573374116082845004546412479721085638090770391889014506981911277493563377949015529665253821670929261345662911852602690246206390123030584309638079429177952349368981810072580440703680997546083434858968878605161150027422147830168232633379372385002205498063502178029089869175291371389984564393972670950358355634470748485825267948692914035161210110195943435709643483794514380746285186724965996751459576441974195507114673038709859785598281636688567557627175183478151008954227864393919648753977284931567439704622101705354537795949506322376669594449722559844406600303088526749551494268613241945713429485714643611741055677576106924971487936660099006779925467354025811069686327787954564317483565848699605962894469167292072968126598695216454876260927185015157690567976448299629372286646199168453074043814165025342650227228733345572767761868023780536533142196624626252148406046787060787471710414672663474787841976301561599226616016304660377223774630001225433569875733475589074049898548667484742385066685815110185842198472543370129766573999763851138742703178629433256351434828349213578869121358644253576588620159483064975592707322323771216569210884473206163134873669431517620900135284180678481228401538272432324253122508318787196246013817569166996908691808007504392753682767737640271692730643743943122314151999313641713475661993260676572259417061716248263594244570915166310356921586841432945813200581146471302039872191940376336887616244763388384964081530491725724427727554641551470356375470731337305714185905024972904430500514563859725285213278590617729350525647948465831749249468882544234996757664785071233972778329505336302628337026330003812608230748736066485040451464161112656551292846526903632956006091003265876033567055514849047401445878181576427059073180170625360975718463045047674673489654567358206016449316226473329838369014060779981174769843122389248384142010445365836395394163299643471895715238743142898440924751210641722832919954539925652648022195760534231236274635405258624337186653080752352439507585000686323354566555237683468583468992469937061175993271315055732018882651123009314549745095070641696571801002768389212358362783664844122914858348843532744107771513508851785259366545941460430279948589306738396744757702313733846500019448052560034362649942130861071165366043244358403539071827895751832251778466842677200496149973170153609299632224915047371163407227323930627273704410907990295194090646041885825694138572593324842548621994457451688899837436811197660431951368221159200227233082228288173062997499902382549809673179569839769362085275038482039067027274971243207335987724918899442105997576400917016960516174876357916911174712867133184630315247285840934883450027740757838774039520522080934814284139498404226038729314347101520084084303144688624804278610843528882448813363099763644834279066500749588632865554687372562766774347726277825817457554596857367093081419099385316280298416370672860065564710919206449680220374416184992779621711065870508202026128828548736172570207116585070554984669704390221178125654354057825040866905477222808064216551820121046876519592852653915010916235829617200964303802318312030194352901279698085339685035446012351143557873818012800737631904141476339884430578447245123290001792957607357190360543404415181238023207769494785759715982616562473243996211778238699579703800778430083587240121963873338306942426767385122295776426011451938400524642781718720457134909815694917927458235335430018923152654828707648866611049325105851176066935988600716947301810770426949958587760102931367444878158421991299442388975040860355290689195508585774605709903500583081810683996575374260329589396645734979327008281789568907266984674796097673535793922805982342976212785396382632731173694996173013673227004383399101938231451975353145624339157943719150552113889543424824026686367973759850324810209116009081115648392277804145858677874248381335151812248556323121206321090508800290502338661131912879108260938188341920217152423297498784884216310904003780155980369588915395403261654168895622374819200537898122969020686641545850502177990816388850294660754030489220525757290357316128907123195755268454933730661192046693422877895620126195428621394070590565686975132129223560204823185096112980464148465203144818356380167235654268353298118961374358793877929110620679740083464161280102177218154186571454929394700526431096916628707617256235484057218245700654642424673358796530108473434519762970507877312145383462444983920990611954054491723113782859062557850672366680592753970045786595851659614081441206229510459054584734459112458765109813602807267873778203681509546318226575886527803277746245603876563930173661478987921071235153052367136605073197950940960655572397421541312675618552511694667834937733256857077919582441394453563052337993097369927684270133938124775911096247310648378004603528376143017083332486035097140725596808177161114410138919192131237809348937815490924496410784562558591536510983072908770003813194031259365580257716482347216977772124840782830626162885496826390553983391923050347250509599312677934218566508306415115997200391381625986344387922475889691073736016320246709488379143004085519866284398790658115148127285046960802022493265632745667167974792066434728829948531144430227360010518738203078858368479150435761917000379414941041091856803396170103678690784237328696296933490156997390499470849800577221730444171102078309794949081998788486232736764848580284395877144216131526429291835689625204879612850961714715739319842898489802131369904889337778388000847344464113019136881297390607153096421306600692484457247790748009320968644501511537887232977155850694814171606925655314552690400981291629599359973036398646907120935080794082824524787643756126326104731336959844298723469352112510442691557055235463574345464355303895915837862263010295656303586608915421562575908832835654409462360408543923227310016378077792491957795322765721784069309985154651113758240987725391703680277871499575349360242703411928697605747640823126107646854271720333199466629207430908131159360414657266836747501756631131495067125619444025330272230638660931228719309773219720546829862794044975229912026548756527767614228836787738920760765638386987952319797588524809859716130438736149482739961248205971862635633396552162033247105026153347617046771654776460968073434596070825424411024341156424068605339336031134299579490499730862004531031565681388432448593913697463959735856963276470975162933355154839003059845483417855358916269646375357036305047125138271506813268993665910644664789513411835652176376385893369703821473071992923848049658415112569126742787020844970905423496674323363444306199246817802378673467380503656062737910800567868381935765516530969007308453148096038775770211453704112916253202317199144973626176239393849658682400904215931966276987799145168759992483565603346901362249237205275229006700327824493230201091245130576752641659394219538180487081731370032051036092310372163960037438361709963985133113444787054503456940530570059044394588425880596683479034910758815172486666517809989743733765228818052683926566371078680752669994588299143879803153677139262518067228321949872408883994653198930550834149579685194864868204062583256699733374126384710901071702363014820001798254631026411219982955457054346765034439148158650496576468950290608753865513942274563582034389404609450648856089616428584193301890651665567915714424470901433417407623334873998238326304889659185914206786392943354284523402926684587638551488710222311564456001032382662541709267504304995024010254550530543817431883489151359839297933855178613177006672772966698453765500381827236013766455501364137966419031187007077187017248529661161843701047563723422387125710842803534761885666818971386226576739630482637949600326816489681153225395101099336079353951251383543533652359612759006218912720326661997508103538659364149029559247821306204615737993582234390710588317124862250229838072975940527219053197320091507158898646183834347444572697330622655915763694059074135664783732094077488369156932904144980526030260351049615181715687174866957506688886292215626642161294118061592213880468526058078455275316569726637000789837556153366930807554137044772164797833649625249182910441054758659626907937542277854097146175314097536941716301542801489653638264735399147744398509132801506999435840957282382754165126081908581811259220468738878653941171652894747057178649248620923607180343291107838664841781675032560774341639723439127233214266451689715087641201416081302371564004240118426501511159470897619054855940556560858923180009318587058262157604912963682244522493732918331050951631622387662990410391235401502662262897705898747948290491136388756127248710317270838817763597997511250660815627077503845713835893016453345035592123747043551678181414962379858761307644231093962208006155424743620980013680154029989036639153553677700513662332329727739985653546450229539665967061056056181690949139727392853728545080063556373931401290455172025103684583852541221838136867239063885439590195599341176011480428601177564492812659678175374874131732483115613556503040331885860035203222265890361248080936170060137199359334327714858634695616810424881094090144593940743127650719111793102197082541540012287482503683763139959369353395450862276229228964115734113879998606531817115241147871619629206899325353912409462585283537505658844359609160038047265714924222465321064548731640695607427531704078498678765281058240781418287653369033319631867802750021295167571477289720948456039425925346953088473795624675378309517707179516358954950385408962899558515926773528959473292505316142715246138663541541538269590688598056394943681878597103247657750879399610460742316820186768057390488948586043885315968761524069932965645342070344270481039034997835520426715632724331311413108962348785519990172732486548855657276864788010047610085652465610821034793543167069809114263422938124880751383384300862380336025625859419833723308857040124448376197907367834804505917943824289891973878573411132841506153314084368609031801782556599987542266038055141114505937660132993451963387074239045233570769944379049447831216381021872331676687228285293257264599103155737260195186658515932965753128757391926631557028959452430041272647615022980283631578864766229639468854426890039811174862793510542243869168665838938229784011842716872882803530807281319772821028551268415958712175070045804736744790295270716039097575888396430186581557410638713061940389002692732142257662121459094521442527285282780953307905711891269002323962291374831690797758305597538530810405848206324784064586886174579881509080520287118474565822662538830599466554641375104619302769783917663142052327896174188461006594942297749474775167622124236630209978240809424282085762351745997405814763286300605269392297933699615527429015938446211510637164804119582498340972575095128275297851401042139484342170271385954226342319287324697530295511053256502518376776387019937416785619257435538295600532155356958867397446871413759666939373448842793123964489764439107570032969410168636117236709908867137468014278199025664363287437095767501832368813041966174460957930131994230499958505585695283606070791117855717937891633845620597614140852851444247145398500046975042162062393386364888225791183908037036743348872917566467372817793417805939767094114015623044096792079055934275873123314012652854080217900579592958428980982437770613379062046132934958363051169562594546998198988328713872843556684487160852194296973470626602309701086286415558072069636383568487510197805900372288673784656914743841397578257146790818270825503083501425819886863547736472139307748787819498371840981171176445080511913188965705912934273419455890394092403243718089437483896752139725658023630787562734735335881716226906572814631441198207231786594571539270620627335885189675747373525615237134438958825845674319234244443329113967706650501399691366244558956361876918573024105786335027333854777158215094066419034993797217304419857152487861558116723830292632717602265955181147213452922411146083493306756866805290912500801082120880766093708637421173209146409558271716828127134193916308086063469553345504984493663658962550281022652118339031774227713593306114875094909782976452698989330842770080063828281955029791235160175084704814423166954355343244554085953548360906138682611868120652272519398990889639117632116080597212113019663859901325663013903886363459143797158545990083348581124504502186343728665035983915439972532938448543203575307233753433486220557379061151138498723449530205297860867780529024776956590243675436962416587561974446649542951421185122508621619696073837716049271449877583998489258367342665131215903501125270848236857268640285514607852483838886762221160869014935485310296068954742863139424309415407016287890812514540643455094238310444388139580415000955988486021017452413554025076913925765895211192673089803103050307271570546038194206851794392663251116996993217336130310419729070036257979263254953791591284552589703009840565381486668530895129680619482779970575761864952034898820418170184809409633401654091077883813720140975652774889129134639464139867705592015960266874902634833041789137270991198802444575820601288287496652630032218326247482658351380680479261443819795562432170638216266048566572432920456339523429920891001833433623065883502941412981905068110558506598373913044158305611314022124850164036628926122067537208583490958109364484496949848372135291330560529823184099287968001835642261521235945146374332938596604814893019733225466616235304262662308507471920504768025411344221064272594656371793977977186206850928005345077460141954194420644276864718976200618626329425663049849150256669656392096500206940924899871114312875753177832765078307253983798024452957348798147562570995677980145172557485005233627492054567959289009123363021992718865036278626498910033409373578464025652995847667547362834538425750647711543232156168452128755509046330724043975402450990181232525623583064189157395488759010955696541184298876294544544206957726720745120320173488624611408088888524034025080241636174108898644032063366543263530615444968814039874707519301373295572947442213415141059177291962647611030212880339458250264073095967016722240957902195688377262560736426716077702345342201331177848321245808711461258169039765455714640741152512956418020799162115001340376895865802443056615187925740455934539987788372023950799219976585387757528651804710808096483688352382664391270382780083770247778487605046913749357435885064988559592888050131658454301862520212080852746662492220710214799524547321160204229578546432230913541196372428558342550782361783145309447511873036186934482294092135482976630630456793796977562871856427103800995721778037119216979859536115133092710411332139671362121315678486632261285862497358387101079536822657705949809189801936153671443483032690835593270034496200465449895992992867108078791120135739536983210592697838336233574372025890174573803725566804105653001612288315565306276157449840656059271613482893697160394358287239763738214638662961515803296514274544096462608643343274475744944022681438519377418929251739326820785888294572938913950454070642439006478840381900516576600561694649054369365149753363812746293398692080791977869190746431927736365683325283596461477138948182872465041491192383797108163186648830441512670602780337362011112057983405549280294069518090049351854770321923781470819482698281220234133949248996855163964104033430595953912809960369553430983578198744019157630129501300087982475017022291369393162200240521963585767025665044182378048865153264357798186747610853413558057050075714161691517619541957407683664681063074374497592041613982998775800487297948347243382425791601093895663947527864178638808289963772712627016512307954149615316757878319872043551540076731367137176319208762166066571358941720234255711675670639169756197392949026483330734533443656408202026767296078694201785314777742758911799327629589088095266083244748805750717660441020775094765336028030383107901838394456357735668368131380758644896533488657602564960294129329491710091699805174557741918734516340807915479759444001742810279855685972035256598491615675643331485297877411738410352650187568892949412983498176646568813146743440401919837148330271479337869119068498975722643664597140035707945279070872734523194769446506251326327819879975609044344761923768526883134600516123863244434278627306562269117083073115717687559523157944705718473314621917180078999498142384212709900725866634856974428931464341792319669848489327079388309896490399312447961296919440319284459607248853766665037112381751999307310234152230462527244608762725707894413528587186427747806583412724657162356010263621740101354365236115217260165869117099775013522604857080413651509700706059797829642946987143919909200709044382188453393894685598377395806171299554606122716879674464519687967876264089166557975897440959696516160053630699922624386723820464293498911449654645653247570476823435498768822403700536586044543892598286905039327205587992609570030274962951767553678476589590984192258304186300898917726560160259552293834829669701322746023480141587424964488689119014805499308725601076602667639907378241657538353414341640420127514154848067421306816751978589003538616266483841868170710841000335812245176163025479171802677079784456203716114931004567539812817104637583990873626617907947963060342914095100236812458858243514307261204124363109657510591854179783281228922167091999164833043581808274018112336457713972436337871455742488313566474990909940704469457825378394114075937226908372845378540808425484646662120443654929240314691862431524116893366267675958559390229104622590228830752618039982662687910756870477782253266877915798927969484758004070019701608531772610195145737721379227034862441566112990317484801485812424397036947480113207044661694972949719507434386232280109783968015092918442701639854200452457615693450857067825204135903893044869492708167278790604855075493069500839134324934007132197620626932178174634751236035064395167025742865990423073915031068759009792097472564314404664730205553258856436850958419623740839765158436872780315406807020400552994882053077925598336371696588618736238120592647227198885125622589994653370918401739622568901601093551556182392472833522675046713876904636882575186673456702334688077006990012069078144878654156906263490916752986922098318428844204592669312017255081055255075578378941862716975583462599591269159488916281072025078188668476847714862967949314515404621360434696584219701390518831781130559448516483675978265553468345765535424004075384740824667075493524355315968737474385084142205910072156474838054261461642533969632856772039362565623705408816922869143217471594547712220864659086430748050743181563319861778343551439568334625294939080866254644440884242908356709162741340151971415039960978444889404581443033013707289782218155129001476567925239265384619791670825285924791858187798502930827426855324731338454677052226500574951772321296076054263345616212793242690869825377657305868260056462913376936851520140335955940026025889251810359921390506630665805573973664135909432010250333936817484092553255870619572044491310648304316893584677552992108060184719751991848989601044686272255273527813797453161060346954300969914693948530386845065248235160780993314345578750960806456542390558305842591978907112657502725419052139712379178986502790552591673575327357925138519577730992457962888583867846939432344940445085506034969222925580778130882381537932792553924923094993798976220572099303635155464440763171830997306843754870199647342272809690430690183245468449470426548214857905798460033361135049461399613033663263505859835437744214898468650864775867800363492814986703587111823736437274797639488585530213077014475565595451036987731128437750937013337502233580428941021281668739805168330110004286893660131261614951077528304379141516479958750378242679448781154695257540275088454828001979489608067794884067954386255385519140478566755123997033549363096272933619785082306522884978075127818071965498945643896539405413238658418922702954265196620069514363189017520070797199267764703866460477502222009185570616747505589013115447343325942189704756448021024462315273678671157053229046892676294344966334300842819347334979269530596936078441906077651837264295856058063411246800758902505677600703194383538420666652928826250932840774249938590666201235496980203044151547985219025091466168064353421753748163133868319531094924500897517108827950075718268534713964583197759733897422466801540268346220174228589989942714093462660526655016979722812146403663110372791523909083427337791156874158185079670854784338075441959625583655256907525287480260835118412838463383364001953850961488543364819676575122956974693535495263212498735589069255157281601008146258907927816228950867964791847890495812088814894209362794710747775422202151008866865342258197718737856675326515991611101054442666760931982445193921534853733120606768557583579598828658590203122690401512119770483151214377738740009937057400690608063189371809760916056746367698956823271341693458260590733563500727477917407265991155283683154255933376629052088349490293537242374296597040510651851152831725770899896905666170340410593675682725950165999410221011041827161073000512287989928404472317839106279786621418645525839598048420537152251847039307234185366833642637244951078896502985047590006473911072617731186272730862865275620083766955455328744452713678568109282771678573216750683149504923976483163509203102923076441303071686675640840047668700729013783593298531096264156387515543648576611234100097380195331152108648677370164409146678228616920346380555224887744385819887538930312722035687655188063957541836948589358930794747326139694961923404997204704129697247251751371450949806897719749970900970562134138608515044110466158927039965800615827312141416052009055448675290583826445064823354528473519039652604066456246389788526161147459458247600119921754919449552196262692049257703260670588155319420668747578274154313636480745719167323038430633528263946642102253638570263957382868081144233120848596701071899761694689938461053075293317531188799583990197262148515307244455707852268766447820589883425052065572592134321995890881976181103129463189209381660887394506796772746731241556324611310677577153200528554862437356556338500730866523599151622268796811982164114493585199944424997858550383004817996445240821927980542486432401885644960592940510881169738600687110833842461436526515622650296272597440009728229677448212635475512079363045054976653729702520434141219076075032019073547372854538528228549523992425212857607880510559333510509171526274156882171926312914729012926341120457317389321240427295763010072871175188190048887168485572998877335128571118914166115829650748444517754946843872498226324283220737733582235804828080321637333042589063113858364156490144122250133422505634755336632524178847542021528930032763163255134017966017267438594828263035172292565755487669957194008961123404743412897810187176775924062041075850365388977284321827736912286188569509847464459288041815726879124497529611589772746934468177960309831100753874733406403212926429609917171037587424728921262721660780756375264496578993458369004681880114885813390839531805764444318056409394280762877009067044236973973844506063188021670718048547197648180915856938371264570486548818159632968152566793008740429354187706085561509281853402615420231607628956721494243519225184636101053821124822327405234574013636867350750336088579464929204908153352735780080050295293934689980323116021406885529307397346891834317691693928085572640279811248001671195295956437083959911924048066328821811873686228016396512758180300633533054124911626071251116340125678116845958886437916141759754241618453345934030756143539196118287687565849487066270987210439301658785308645767139617794532597234088248381486157526676479093398296304994020056044064629157412742480939148497725245575909342808359804563600407631482497944198792346924066376073112069149401018429736176409982708044801958207577988411503637972544103448919793693097716966290522972735670445128242830257439257218058348113416033588678836437625707600299434055350080713615599419805205633639189267924157209362763025262928709805795955700728991614226856671756843446994024985549293646241912666696829192996074754002774753034921461252181399755639016967460530724156259960044929261170056616605770701232106136154470677097981470248827268201578302559513192055727819712018645269241317555008744750736393157990973451620454261035597569473231912928682797298538271727991813700518777359845754706506017595868932883811814966988754738872944715362802398990207261808263643133144490363494719911508133993888513139649124251919923637453995188527471945176385038714367128034422332394875753575486705463226442429596713235519258266874061927434979061988250543401500303506017541098439728127743872637527758036505223344844738223773008064906760074821191223572930201323062015808281619567475299303411663281653858041672443638212724064572225204168841169658491642452241584275423865053292862662329350302424288311058029127322510511405141912998732794332057355046951523320365459294663048585350513141358403604411091113129834337403182024291204839069815009637505931762138890803806230421118130683403557090818057521350241063039031460749637185813539140927510533853282429011973335759297548470123149251951009600642597846888404417410609141669089721615435293079977884440090772852890318170065608850728150723562884191704388294137649647872195502177177010789871221594813839275937963603084793167864365400793820444859858727278598596859059548725562338499325323837776005321709843204394182856994343633840295104331122639143822233664354725739912494452844395149177469523656373260195019417864467169547429547182421865121195390476099604484619491311512133621024220832670354421459694087548159336115855098770394341652045982382909864503855367598089580694205205259478814886926036871965525052279252736897521063579904765336263477369810845067082154206680446890834630920899889419948045760891126182769174687447725486082595808420201496098994604457734871546979518872739805310305240713720209266387835334779776579652150498779779123511114113687790690761592003099956438625688433993192558066964463113500268088440623701001903055898372766527681128969155908077538712757639815358037742761747913437126410568629620983332259070606520149003149412830906369453899748980113186823505104966490098782152572807130973697273672160734699112451684413785835502846169433448377375122462716263594183328096391887518655686859191205082360465010568211340082044448358489438849270619857407564547579417758694936800675305762462403664883946264021389139025986662657351063840157907806302570179582487038982257442216424586538576920854594829177981625066004460967007167369500060798250141760116506382681333774700590915426917410635414422744383348211512182378587335243386270277911115786651682222129958914372755378448513676882567824907630635421313786395508019653900868944679098414586666714053254461493708144028720587848835423914656818683981007068057953741479900108810641480611752529564658914383341616954913923174194967070777511128960378186379469834199530247646260034903937846329259903940356841894696258248248407334387051957998412332789239101047319920109326473742103327905498769348462029031437010638460412817079293870110388724439342188165490267658742197463058172146204950009296842911984316254199834258025777729430366108202185266224183342419943759991192207445467132886495058543528724254445478031293480908074025451888853585715734191469162779806090194627205517433837911720930221486004861607622039585836008535292218370473948907384554106321550958911085453981781221634880865809662375798901287847916016586673911709770330546944410634135093308897890725845644454841252726029614506645928039193906837819325364861581447562391315419652988181273661360009266595754223327663065380739987507665693657343345712757309343618418364097132485798689694961242337128744809304460924207572710200319373405118529208256801669095433414762736698512121212734383937854383594414835452874659959839277329376528180874921423304947471004778930729750824399606680728587848369534759981296719580472984033263967341080875861755547786547357507713813190560903940902504163932696815024377117018832649957200716131515277181180622546323684186990747176149488567076542138426749401119229310062864748496026045827551943933505668655940113139489916004457635396739471136871417302873187637943812914533117878996293548906194286279989074442951846758415615505153949043683465687256584643458007219259490004503686249733206427225503467771586421352194467191058599255640310446731878085630147739804828816784146832262017006019093994356613584740354502523805114579801500149715914036366218584916340002008883343112850152257007513909907702313598370644082445389222415638776060029127685275336197161190838949797446396588822974286396051283439268615049458311935950434391784068404457252068054232618444301827211276517772436400441556225516152150686867911547444204167863959593430879947558693420542464297253295433971012177671919500249275528125769905764636191448356903353335069134428437060154154422251370466491407727267515073230272012761045331552918626167154000105595051415237011661919635163438864778416923282401895609599092176484276855098751273574512567254716064273850205617318583045071536298714077435878197166540075844283856687709691453213842953761924116391470188756549173609025209544291015181241041326903567333723716853881945102839743163302159811520486442325704073140609906403486693394565973931996116377634279882580257588958644158650354684577273919962921872900198024031233263289259695550808329387194124270130221150951361951931710046249662445246404372221063029730929535119450372832697618034850650087373258959402506242501490785289270539478038053658424087186303052187081812315591621069400786459182738557106283292774078229313123735535939792112235106007453064259760927824898022789547504045151149456662832730254079791917136198773701793139687464197253528307107200054948371505344382570690547846178063455683885856827663192120685323062163234926411385664741401439793781976745183679947138652467048978927107381572461408380669425735390095189313361119968831289192684008623327008896529604678764929484144446152669478169342178487204301695133912635515665634417931937629167556938707537444235959564754631540389611318656159251436034089921727583871056937808100116197240296766018157246733638534155487101114667555931736179353893310228350344796347499496354551478122463334027316000657138501909391992604998342777132141323096955647620605953643896989459757175168995166281329916870289370382211216040858064229420528169615027775403757045556190246896831328972443851599656471012227081346715077271648878051724276306400873884600752444013499991285306891321954089437005468829885436918367010898946790090024238844556598840576246888063148985265510127596211149081401202359133529476055521066131864737222391504352933956883364933218114561360596352074778744258628465107292719381851373628379264687242156495823741113560569994302974974940228531450785820441690805587102822826216859033714732979193090903529366021124401293910715584186674876337400679104865091595749745691591681349142195748433048834010973563161845845990296211936176690579405956458929531578776995384990332364530928543749241798329172148348322539706751150122199367389823127937220264375438457403305397885217736010690874109075755089601671836981023010447704338669294531116155099230395009164605986063962204777122357533842031747566054665353912233804642657482889375225381370384352564510379680071226738892194664682510253045357990079409148036744501726484003016749509510966421816550325658418485748158893205696974268216039946850121946972263731002027354136933436962148823479094588579916939092146600563605047045441637689007401036227378864150388812973565699601159497776089392114269526718815457464179708776691240683050573012170550441987619454038270310550699941539013451064476874504931783612874934477550067651414313940926782433836966375323355573960359163331856360868004301679301604474914308597395931472986138599714172168661855946404081434266178945832719142074600102161504661216510207642337608966455632572531803675037729895021881725631447706566231322856844065050687393870822080413408873119359226009498972267092512768933482792240602529294798415979222537334116578569261233612310866173960154857930422735351961563703524669146684155537136000024348093555129315265127642032735772677847585234366612009187270611037970744365251227174547790558656849332568510079686503230129291422292240307413102706880075049395758139606432393385141146966052914343739467272910931592907617575980154892082614270006509705171181958856008893096380608504456586925094446939332480418812840686481457074233499312648883234050550751352231668088904740651335934923292182260574471483695502344308314652847000750203217425521038511305864954151946963384507365577755099444017699123607677868508522094382836230823800436001219689123187734793821730627019612714721351281759710197897113275491655077331078067608077370981441731437951238107580233467522372915367545312605193985066517180912013458970095626886750662718160587095491860081601730523523092142763492538798930233002398623929435234503448824275071673800239535796072743058321665200934948278547592146278854198462824272736165603312514619844800629637743328084544425864302092331217076225721147771165746079428333430049301068271439967532761265212166168423101564136617291945873669289552273459833624470560626626396651822990381713041959904856173595023118803272645552131372329456807133625321587594132893744331595169916289893380408082039139222021383758407007898120361178287453428983940151846277024193826820818747965096359862005113934308133548072088694483827359333594623934947655836382247857231794914523463577780880273181722089188465887067170461287586345652881705299324474784277157914980383791270615439646699000133771962450864175025565790979242656318872670113865566009056101558952285431388418550624331093948325948454911482574193907798903054084945018520665880042268257121912826347672484996653189299940466479350149851602678740463717115447348451058044229572938497405188151034412990000825397837048404188042702539471057101649347765011354409831603782492274770669259660741533881230014069282092698001488225299982630213850017606837584349371361333061920484466773303786965888542166964682311279229656716143629955792186829405017702401283171075154349964897042278161530390548251480599556526822049176823139979253864336138897304768310332171653201939836270233383794269259543507559857028507953182940303253027718279233397632352446417221309329378785288805162687544004647291080139051078516480183028032162811660222285534138045737813098604717546666370359867925680911529814861980969285555114135450313594508132427237019869533386047394876405645213051665503588478365122743006457445581409754933723433244169459478234482560267028423524116141407021529964304809533831763398510487524650851924892879098819374940894243852867174868919469499279196557138466329170296220494430317500263686708619572139742036516550959677325131899112506523825854929892217895022589579061843284149689013251258518547846976428678813206905843344854531338624568621535049950804704302470298620595055059760634753541240189013286854654286134724055254960665576217802147013481929240495297032028077111415101078624034161169107189866182116248271562490960262878380876535934608166923495919358601074625891726243170919160201577301161259462905670635742802184662891927981816473140818862289041448949359896191893254705780312440243466176360373950817656688819664975171160263886609151273072793822680314122019471056824258902418956418155436968828492440587009453339303309331630765141243227732004927588358036886880353447829763117019617199563542656620178895594076626053984796809165469699577783095161587070395167852341585995309639720874555164898407753671427724372791386504034546410415332306326826881117309634824744339335821139161950242727686549709762145443912889615589925951976960718802014558867539655475778785535877967173915192150334995477275091692532642152563264007617829555339879365218607937011745072606417656887128526641687682659698000003575662317827598049429247525515030352395341987726577433127186321357772487904587112167662346233749116738317808425444787586036100595954627693632495208951957506614601313623865819691883181154414370739854129091768176830969461217398671504693959199391022146526698512215441946599513040731273941827686191773038416114284618283884588597966297244377183088769394219598758923963213150487590148258940640736010541115038974086100188681639999162520179439171854637588698614850682819437707921848772267716954481269242608056964365823825293658789655153591669115063924577213970556651306754602124322143489357921811700005281909750576750206211848716887595402370421451786859017927335165506244044346293402718640719532968410341928212707439083602355936078018308747525835731884266589522564910302669082207628123596381830631338316453026064021873332795552576157310162975685066105147475130867240635883599928465974080956621831687932902899129328562112189089815390331840059583920008091623246692735171912230154490564044555689900291176500286398798996768943475601070779490628331674873777913771181139101684859328211066675090587695398722991687051978541909073112112085938697542642564540832941038795457771588458401607685956617202006308832037561925535877685656017867888819034632262335929928722722321454901081710676766171012065807042299144780365810737962288827863211349360459788954501476184142105583933261973089994785600376460369383777118566129505169320020005682544870417039827638478914379480385973568235365468853706198898626939652834309680412146256577547837454118509329711295896146852188913850965747497536393109666381267350867533543078308270183201934101158583166336834342455094720935318175702602820854316645293069756212810715393573474306787489536536029458359618594517310457077349221221836091090063866982624649958744601426667866238345076374059022851927928723749569334943547445834990578401838617337896872285595640640310414509412514640625972552738017065634669390921078960308575960547757083850572532428551988647001116063357389883165630302889624060111522415280833098407588558070840247930696825736203836351328071458329538605934379325601987290159813814302388536835971568411128677055104269313884856484833145913864935425486181195831510882144193052135752841602204471690007355036030065693771609098765486845364062587914433818418204817639952460549972812315693287102761271490927112539941620807709849187208392095424511088068592852758562450928571625479592227312067282038522745576120153586335424669174497008202921249015304880142972188831590767994910652139061983636226374233434650282422353766668009540169421126022314211568150214057225553421051149826469065761455803501145206893399080081628364578173646259406369190498073253829329160181601603579605296969248478932005293221048189890359621085129363772666240020075855083480580531355150474888433559266169679944711451840731387047830151204542284892187834202545730633355231678181120437954508525726754411002882158073374300463933386776658396714282470742556874932197108022173500123232395487225759102011565999054882625889325313915249918241439727385440770233143241077317197808171045040549268604960501162526076336188034626866671523990398051852073695083128777575925683736507598565651740457981061784399395692782901798576830019825235283779144191208226012748909933046866609704297025580605176012727854549058308246213890197350332936696314215124041119399636908044321161112911674465346996224728905072267834737414226336118086389618650276678219300551741405206744969640197823051689991752878507316745521935169307907345223325066473957788683734135148569080859212230832391814815319602165018269123590472458547895986939379915899475221059683231731337812595688997676753550556895603240491170558263433605601206886010399519219467336023734906134235162458916639677739641500908871042046000497277908863017644076881050919149756604915349999920180690513220391239758729909362392978910574346113488437325318566690182073299403270242109850379087161682621582281950294414327363102631216577402166577063823959702830545402823056417574481997974497756403778271873617314297666917353879570348404270712581927125972479509522000043738146565579778022805146173506210749868437526023140178653495738459687124433531192014694161078236990721017642735663432910381664998138872579091776038604103718889201329305195427993943511005285527562630398119297363653645757080108006484699364086081809706809483769771250180805592483753057523362020498960402625328253432076869007754248784047762970662526120616886291416265813533730032665950258920656189039500912919786516234856993557527308742253869028671273260436482625239465731388033873854036889561464703728696875753277011350094887387696157768621339562936178423662560477787107538367186326323312365482282393430113207289760484037335940416077753848501498405345434332199745622698439712795689210087785526982414799007645832185977943510418407364729050310994464371308541916153678508463456353195154202703655759446469253926876351498981417860291080246743374387210566646304753564949963085207491981463136629000954827985264118933249723433949434114466352357145977544698547269605102806016467078130951243528756794762733319808439890199180449144130548627306241659675589845089385193857149422780444305315307422355465384778840442190564007686634308854991056902014387610746769332863252141355901410924836355528419189762720690894198174990454633566009905573896648303062785127250583936926253087105838949335337565683354456140814284855702191879464403623650957565244109706423854812536309077640306382517269973964999077518439615278521408626974379606128987856416229891088969587565298873529655008991992295421927149319792517784851092808729888994108238531483958317718403582128861186988666930722869072171105378883326060521588080799415248281252087941174136227338566798942207606980752411810023101076358419399405765628582064540593736016315826025685831575616039961927320760213326090214683896931777090173773563448932658558960632353258631040709145639941584440480124722093421177857574509095316128353764281150483014242891023868375219875740060791391106299953797358522591663906367447854518158991731791304331028701949882162270726856450234537021194679360730427314039034852906606211235460905023518631654413446735530561277059873624720683412862158277526795254011298251827562112097086248985152488271625181020612637650449110999921495899836379495291886986738658101989953086354884899292522511662280131774537272005657329474969269848511870238880916320228299630817566483656376904135895518739895751286587284468901387780225067680211409685005233425831074575849220578880417794420489756195684078560554996106545613730001945566088699274154525962399259254982553221719232390390627106369417624162870599738307876613803649050649926286300260785565643413465712546564281131228370186491695919027380765745564627729852725918089560537278126433737484088684362776529870372857686099739552817571494093075430179980820749465474221908200038521409251694912358838247119775968194952446873105205102448980340164457316636577594408991364727187232357123962539959461876635458165754840456433663766589816964704294525010989659928703582996647065131249575310032570110149014975023379487388447393918478014255596157836262142665653863085392613662689979214209184701468076087663479763141913782303270524793160987024814294110378272791273200415323233136335340181619196143892411169128502761001985541750662788747167079261122514417896146163859746645524007315970178031629846471370114890486063052714387974608842986452837741704053699980899607268828184041371992969445841573814578373658051998549976626786698672395977230523332872058237512804930286999088158628370758726507147118429985168696344510399630477882746365141143875300058826298941865642646981570414752091139702113024346668627504526439131761183714063060564420917843334328728393054323625129146226252725292158429851046791618010135333577479154780534291691471470247443109129092341898508295454202512112690153849493486168482443574709029922447262341669404222093816434489870081314946692461805781086485191857018877216143869994249629984911273671263962801187379402136438760802497320297840418958188440961402995463939158100832725881494643816453757462049754341180602395357418092602661887736091395410850994439609016832143818489305465142187108177575480012141585158309235417604986096274778999053047706462300989580642767974946426613440362041043612085102622072532311829197373881242624043390712924772487409346669496776373264763244187695905002565658638738554270403340979858037225598122650656880259495388995069500220006371871309405796671953433569102009264705381224367921369742882778573334283518179833360869533716702258848182073700384608644949349236003929218697041913732199033850398617671743790265878904138611100543916857007136336161866532962143487100273531496480031575129162197794133083792754931476524540416278301319595199635427645006867297472664865782383339877370115726941282598630346478432208700036389975999159456287226633732275828427433092605702422443099028446027668822985088581535544969702776954920380396823013107177607745309993757902222337516562333448618658582758273639980681611214729374502287731728361748217046928277020883907010895989455089947105058355745729679851652479031195983360752169788090090867270935122797781428961688607646872563795767317121474498684181829406596552625304173529659653299865191174397864537724790235749077769242113259476462387351478575621861014350755775129514735304979790828804773870509895519285068968042943794699085709577394427930784525891517377171737120527463710820539806548972449398790223744916387052291807981592825609719228565565420477075668512165933150788312770966314589881818343328920485316828261330794650749375997843784456730908432427388028988324085572222432409782683651119061872098867361319109052457357565204794905720567714156286731665459362825603071232877103830101039313675499238933606824201218237059044567709125977047531527783316964674625073064450451788384995356679217418031372737003120534125774105149242854655724292628131021973486917294762747077461927626868868957176406123461080722943320145214349779533272549790330634040923735218303890380984847371189566891602103784280845928024245504735146095346085070410873583132763483531272512302305146988503251851349163972085411301505033485503134496327624977433149470592281038446596165512115424393578309834469698683771984098781417885444228948317247060040699939904171218851851712533496073033594292263992162253983725653781179481067640261190051992123389395426989513408147675135151340042205125456387518572983907129181828095268445504303889786304909434011468533545882838110865454876925104842739428443098807046383832021420227313298562116653804274510818058148191689716691323082620521403135426831521372514500041729054695787502050164908764797479080109592880859832085408786724769907329972560604041594924165759445865562662865061793469724075919140154472361526160988593823613192693618837633727903192263525146811328147300636561701044717216963601453391878116561980462305168075458861905945158536597549781043235394226775787851450309202620076583535005856079475024738619427358050053244404579495503671634659031213995113939166460682773837705706078226247122029945210793632404196740098700434174616994124025218211841762186358244541354862502161874625938161247361480640825296892319898922179188132474425844777072420448914383291098475785557457778117538543207652774508703483481144081277669067571502193890964266910259078096482810446413592755698096586781351150975997656352217218667119950716741992679595205311154880465623674608547645266012192176695814675639304855848059351550932669764891651497705438089107616463681326073504421082651004541080455047163868257713486170326368069811166657159856683718142790087929383416613753136041178553415981932593118841043374876466587833504450141119711495619157196230193233715214369210441962600178918156344270770934860754949874301619442172779794376613138292103295396193847897130006133072471289087301184712633628551767652416940282260907981653422872557133646130055023150223395567111464731321589345589889227379663079261833069851294524717564029431115619463112937214641857848865768257202618226047712248609792564042882609679716406327777298800653305688321281200882799625598162857212872732379439957293953009643550389466647784833125688181218661780837946300757748797554068189677818435741634378016783572030128081102163392524205704818396354943158363543284961008816053839275634144307048938840883687432745397862986297942318370718646673427837941376449268671070627424061919565130003813656812256424130192224250290279427754900008369412448043444638603455583050727221465408532700917930582794598654684603338910657376021298421180934906242301967863306571333148179601635791978505549232666219245125113225042772856204104779301544592067237531093937162424757621585269266678440445095408213921203748653694316501746414844630702675159084372444132012135918639620216638318368572308999594373701444363398866597274263478439511538987917076416095116095952411103262630327307476476290323197238774501067934573811269348612855771246914738290048560987988795745657949488214629294338408207077518554490487383812800371166198153016972260057615066384183860130992481350949211572997516434867167639717319254852457794890556419755267742029811471913556690737992957829153940682135137835341169522053967453253003264343926806295807166519521380710422683660130802415153585370961942055371014384553977815677749801841429089459122263885310427796417807940609783665079357342387435522685740778673842522739402450426079288641779729147250979921575414582114495909889653637287530477714541107724681061690185201296146537595753318921355253579310435759574867710609552193818279049004030692681316828382316772490359193314190922277637678018590667611477636549101854267809055976353700867391700500781063464339544166054878685406530516610927292646231274466251794859815357718149853553189216611132914802560122041932492827614147536569634896869554014978148127725602118042609491065988462421171586614342845924619654195708846877766838403991224524347363642558171678496328955084426397780836401520595204384438591505059623277335093928573157323774788605261122354757963488153261282836243156981701796143271506591867449364060661570863067518212071877551834221439649971463441077171517104303021027016012483994550415523712976917015968148755489507667241866433447269082083281936078310201131502913784831135087679292595917615393710791668690580146507078071871910305565516255540101434039057322947103514068463927993610636295983610842468542946230566816454032800991422415422306481916720148942470494927239997658135474422795660292261252339037038618964410402800952429194980928482517232559874582218381873577219647943086346787878636557282485247066683078976355841242591566202996718571956720408744309549656561021762858227517582558506975791561012329768824374455066775882731441346347719271267520174188975307940692846841071972773490804723733448993380287826928327893209887843086454537780295235468849946673582656298646356295364461588190531549116622093184801449265127398918776183260556937190351538028952928989481176187350847833881280026793223561616799879469574070277310357523441992266828587176497471771629578956433841875512117030647023828598277611308740471196547141249270277420535582987635862869075293356740903881776442357710924705660645844764295288345163821782750041990921579906969170472407957520869903140750298224228557690432091467213502483921646205941754193943442418729645944556641216143920631946997688404167486427139585286197942910590536283681033934392004351436557597729764090435586380692597484578368135745394279657157965571853517894402710798518175657296483406586989639709503904477109164615399637904376426493600001240957632961864872222540883262230138918745172590503295377024329208905477447424950635384120908497664226166820977697422255927115385576673937846442961946424070932456512318986775370455180795748627274318368083319706603346150896390782041291043543457781444964823536691339167301392953960367541914926234810205250775283196096784350354587807522427633145149393844561046587547627078355537073648686610824281837078148865610660896608183639888345063227871424442778875680540447749188938185810924813221342266575026876738336353004728759024849301968948448267117981300138018056086243762248000862273111303543048999876959743068901969276579053574085592249315371736813674172504030865763128219038094153370226425555769709878715719366318049621568206348587780646819590648459808900336101686990045539726112484762087219284032455492150076119029283626202248863841848997264143189879401481231638883792521950124460187927951332087049436494245046900216964758699391910554373865596153693322980554174749932285790668380394973733468146559140198302818006499951836645074803473706647585167385296772050230472094910800698056786166939559365515091734846063551586118168903705189506145722218352178128703243972358960792669255914423101837081110393718112909981820178842325941901433781799139242737560905440118917805126279287068637315165501393644859498702377150644769941892555991683770956525144686952770156333549507093345460333842150323999602830407431799979690253317041686969126605063262157897496493973710082953963349743143395300517151555666569763195811232174788029388008423795549398499087856139842750794064591824912194089225241673408583848222050950003084350333974389268549533062382007972501437973930585171072477707726432796979762759793730370633620547570919114287924655469345216884997708235968373154057573691978693722673857232836013665935966022706351271068290539209525656286410721893502133992756450761120390200176296324844361668729677536799185991644696427246848680786514095697395625319865427569992677087639668142072020040570339525679160287072769941475491075475462395288312543842598881492863979425222464797430794949213837103709474686110288309647697301396230573774505742258682949676822731243929022633638383818316533408935434898564861691497634537234730212888803001109698832857296562780564602557614653773548795775440694358450431496740502552488531043439079946479443030010273936708412219220501819020901556271466972781544553359814117155029479871356853459515822506037526032487511663606568575367694412651277748985834675693685093037003868951457721122363405030581324607036616684610271526254267819205038383544330601667328034447049280785153657609241879415762234785103219314046404852764405251285285742458466376368175977268382189194116880752755819468617253538288036641740815748315295006485414248213359980979835695159077321356999525499487613302763705806301787172580105377596069796521847567993065367784909370620518813232518973211804401571282661325425003407292542302275389077040410844110665626248193581372666420684668681492898887777150352660512645697598453698796768454511582922827590719453367638445524359240748022828533249662641431683334187186026877987460520396996145887375503592320736225615332101995219040313957956120061180843513836547256045722545159075710555604885801613547790481472091652050674394201439014581425912927140438299008868445985279172479724174532828827735129277494730913771220587430622592018518497268743838147470322200108757707900990499598421098741819659634372700521425137956981985401700731006149823638363103692735574945609123690597935346409384746214773655508237394901626448804948029880867189010152883133753807089126689641947469501636947278407210222734185386056541855987806915730346733968916551851507202286458283879813301441466881093888211841270006218466108182024825178383734468741381562126058178546975197443243344011668463109840304566568140156594209947375564413676862694974624071030582817420610722272280558680549451071538280124436418029005731099788218358008252458045508679127426374215938120366900532767343836995029926546362546429978091347299788103052764063942586111297163355770976332664873604075722452211469159481443460232182305987292932500959335080344275570581316366700038638205932321452229555449842538359354469836747766090179773254146384267534398025622006762367390503641940321484124278925681013808188068426255394658576996934943916584851833414946599747019853657414097298231268039217867526643813939707322143686461733134106678720318339118372245022333179738552205022769079400147903235702971272915671230447534773192228881172575449569169848072061575357986400276873894386161886338527102052578733369084153317119876182535040741178087578656931361667733741515261668050383641599232862806659310142649546354600367852015704719086646150922804866364771215318148887712398566476756298853772465812420289317603604372966855118630707346753513125746252493081313392527418877099808786711775604061789159079760583107187419025788175820439927200312758874187415062204090142415803790277258849630583582486919591042031541661848176360770462041651571799436497806360724082740427773046304911693648091394758969312268025894300515714303015355799314187589117519085964338421909336318138851550540828139251471093662544146066059974587846171968765106908634059487988143157909416369787472313898459140431601533532066966119251108414579468681436736882933476404917548525092934101694188431216466110157912287412155288137761547159011275334560806126157338239432416610364195750896040855150640145517751917558383681100250934693971702925237160842145047300172203106109193271878202718161731026535288160761926883147570319116248502826466505640179932153405312359157364307619281836605991049575096872093233582708050613729533874893766380463672290827476464696386681330685379757366520258976186710056025586143711649150574050918401166774292651960697220109156291132744722967939829099026881122205485071723933656068847661075623672920421785326523118058063168617972182569463443953531157328323369842100833347522044280672752897381388685074555873639558131199290886385030094925214353312173943600755945304109528536912864526967465260063487926339309337892655048542745660891140634278118775745587124761850371781046445954178718749165328215288056383142681389628874520082633591125513821020687079341163864993560209240867734244868002874255897952095598309996394926228951877836736172107125043815898906525192471030562687834718307169764332472033447299016176571575025819310236721680148908535748829839306821126402407796930047531323621645124767735268491952294655697361160918507252463136472457197806404546399440425629219426511490902176537976781610579009437979528401383332691479806093595739818227339807111112810320400853591365481769710213272607632048611039680060827488211844600589964305503502403545818427967453204036378974879297887803668889762622706519403593280584469393069764697843433560959941966451707670269524847335467825998656868387189768703372081167992662815900482698139172075113278821891017081405457904249730764433364443603933229458198294231384000140013983974213998964802026481483900321777691201185306534383780934492837501933152607648537445003851672464677857463197767435777092526148309637445427010769170454272147914918628746823243545670073427498962520496748639651517133744680114684340233069907469736907599565410640198143520609540551219185651369586054803242880027082239308482202629562792108915205569108692974679174968598107040203814537304608126144851237367190490108038488689678963617702700050322407976321358784264337193172379530153573440424402212222827161650313030947293481216356212516256729763575726757963473738625099517483055302094785781303889539498101378189732125723349919963524274574037910526545872018619384386341643748274772262814031749232115829646203653147932029842446671559854153071067463247008956058358550773235569067211091959023115307185492346702425819806529585762899742488371650805834445582601762378975780173783218886732477120688182910378986696701170194660584987330330332533690934761516431013836330970594207498363011034616391081818198010938612012319660342561425141461679889506879407829823747040379765989203580849240983370189131023177961561466132328135644768083694551644621531574507998235857273914957937807265167172212602070173306039745512326045277750276520431076172564858659616040708228321744945362684505456245832857467117382774278184356039815819160334625934807189413461218605320122063591821782163111482745337159330610692744033710226938931717698894020046692300676319612635301112933137371151692598820195489136787618180502452178612345802948640948317339166406596745318016223514787638157319424800732437086879283819680383283690022084999724092038309420347107162060817388247269155286355454197629054096249017006898489287193743650669500715144269849944832716341934928477982000281913222272800800530864221636785179856304834976961260005190145055980499422746251103035955113566758272989006740780130768151611988742197047038124204373793511232674204323362175146290810810090617888876461469547056236219416110906384705893401058534878329994370418724306776088982606907156987319769596826282771767603184460710252925232236788443960727985314584150413243128809425554992546908093973691686711784947931295897932442900163953818516794334418814694688603148495367462164389680549651565491128650666662637547052904899543856140092055795540225307617431065060158174338704158119408822170540553569093202998310065861294443929808204858759230990426570757593164148091967105305875256649731851940375343942421412523986226409526646597075816231195003695376581555645847420955442583097230320740905102226050428429851838870157948130968410890382953572322533580114876547940211972605827225436232423996045809038237275955966690973523269913108540782761664507351510110772573101281849757270467431356587947409156600417572007920555714084931742092441479176232097829489261923501518853962063833940590825046872385935253566698569495271573852977178875394234008240144987347502223045069694041862649356724923618670748725290175515547001767056634560306387826252895529960567760614201647467116604680235855968871746310879873509620591140360791529545673501544394289870359187610864739646442771856888480269302310761534815249010453799255937588375273692155647687650061434682080934473606972647032706418163962383287887956773430491952091624489911757576475205778560926284825110925271257084965291278078942744321112980067154338935435273549103052350098561313366230278252270949230989331166230649327329552510789302068672665391701014594352604644634217216460444789205087971712892859226487971845638648496878016225013566714535377308156127852681354977989584025190436677261774507108864655036325362603886617479454310463291774283649531131952257212898158413034948200340466692201382210564327520192153205677831801865591963249877624184441021419633486258581922822754715882768692574291925088803371363069831716043067288233647889931753146934994350328895021877431707983147267462010304077911739508692503889476083520276218640719261682767174015621076228269984725226886117852557456357424506684814991690054455941392895824583768010027827312789295159248359117882772608465239996993284220451945435861407326427551636773705584790002829363380227109377595045674097105606188684156787519339629751781389435233389574447521720778607958833210776439270350260250682596726568594288492777322524622330403942800298889973992220251243542428119542318396370993926786296793085139339970389097613721532262240479335131339025648499241567865088175448277148440111153142821197959109883056738656534998885933963232073392479078540442150283509647816132996032019734883037288517974124418873380616616545682252276099484313434161591194315166009616896187275194860714358071720848682489072034238949418122087826895406256211068830013518875532756204353971528341738160150065772229376471100261970306551609525259082775755483409297552758724933442761016149093693680083901416345608670502195656597617188467126848648121255538564925037716208608621755470676316491746938627967272872064594944655272603956502495155194739521505503443858069868297026956972328375167008732468981028385831425118768816481045635998190839804332812370270904211698889426998587884005010506498123904219956651106884657702881965839090635371288235640237306616958559354971617714236355990336705442930573722764077427554077664868636911043053435297837083251467878852356987298803073771267463277962396682620463240981396011419899505714574821784001155247336442284568979722092577610095217023265182543754945740136103089637340666605399765920004504670991975424366712106278579014310193840813007821388154681752210261640074720196149779147962832863504231813958774317591101526793525116738692608496893725549434412980694340013430040080999826735160263984813475741985322377039210425795544486750876077171118774647956936257303561706721512890521599803411692893833318174340738077161939905307212133670814506074045722346244125988058683265633408373398566544446337385524400115045847393808692933283355027190632153873459255948311748222625601379034276447770995143588798604177238397005585872121545904174201257913625915313255007257683171193682506247157761413464198738924063755206894696932722276113336160420547392595896314763894397186575475946130746377302847483168120363244548457324985361950396409123640882680908574681868603010674386316629633624999262626789319979960861130251401943387653742224528891091307710663834624385255457700898867509022153343121454477899890617291750949759357399015136164644085733831275663202657339408503498920694709050982512453783302744656385565732935808442365145456596017766264941744628879481080458774680248522734948707265231169098527069939706042123217239803427414746522312742617970488692108034620089045253969993795254321817457855270874825691664813514134057498564123315125440780289761148237246296400523487016936079782834172589153143011859445806813868747520022792054493459979170779227360482415550556461465144444113957912532303313267452452041851438069564739833603220094812018884695886471125345069309906595030255371054076062026240764478674655494849532662937859704576216232984304217605311470330641021237913289402486246558427294417641811750763994986215671081592670478250905126014441241661513654482854357986699283315380742692170105152246149333367260848517620284254044769305635990392492637404154162731132901001687474715395402551255715548754559350177949361654513279239322830289240367087406157511298474684337610897594575043619095916841850613502622601619543868771136029479233530321561302646253681188447296425835304428880362926131379754003773610176078823661384548038414847422384325590888217681873454242882886880177079282059661948598916484674282119638456811431313992616423882980518993511290320197193231999966051008906938886287865692423360083998922995147741096666254389832457655700134618268517654205642303998288829953130999479636377307560969718267689215343310819667993258805035198188869280974457611990073559186368388605658749223116119862866116751696118503861367306808562442410391910930902060757583397886267616685547072330865387445034901110674083997822778904378416284602180759711102579187088426333912513678726820001111452309069093854398901040771479942482669672759692873664905092861097239763664578963206340854822253598471957554880150097172356831129683648401637252755894887443582288750918529576750727043003630111324449746176768988950417417832221053146100358856768244845706680017501724014024092617475282423877606803196356853350531952765748830662750260367417111110329147668070655673105776994189291840100621676903331396604008011807385231496605788815287382120758126730684161329308443916197655237517587494820846455227402725172369809631330573495743728960357467875345593157389115481571172204647524422041223460493246790289431642534594385453821270207798025908628653268321493686062904578962325870259128237140506703981143079044700116721479374436505395531558000324865254622209015740748501258527336577005245845151165911069834673768085357637760873517523195195287267753798034030813535676703426549720026892490745908937189703615896771832310688932249329853961627782779012916242894976688501646119672146986427897449738528095076411327074404318613993800745039816331289885431261974525930815866141814072730195345146859251728821657902604739493592052842507507576535861631433500436183247739836592695129098957986558156526065670554191215901659388312886300973517909564206948353460887311464694358608091110209534693125467207131868885783175125401356033106508374316811784130345889495018475545798300589897198134862224198981553484388139042698102999747034038423903840936950677841655087467768112528766005194985888659420912471211661141424952870522115036799078949456306783157260134174229528686287530094655565010231552376653912812802717126079587185657834287239763567135001590627116158074163639411932984593419550124913052368697081316340283106841671723701707502420813914791783710358954740585439248322121430359433873730551636954737309086636065294213273887740278503118175573128775480180924427777033483706194016117762562813709439858916239542945413229150194529607010878726798952014143823237208448966797204193710490523009281161152079504434250609277792064700503744877741028475577561217397048663002848742001026071458062081648339736126782193804175475913864774994328805615330613573450185868161643479786047138724016305238627672884359582293642438189697138026907379499766631681764509780795133052206581078040797401578376658620740127252043077559719865293612460240550858552893699382198157466141173323253218205941950043452676456000645309443241284506446512110371111559686941096331667523959151455543081210777401372331392497089767083008225906374460950212396901272062180073586298173523500814756622338931844218851987613040659480104417273256449359006603982610875601781709704584406212371226079217988289107780162523434435369641486233336232725811812013360837445099097975705014616797792572249216208261982113009194662667968265522747952927033799009143988551462832357978331078188068824256482112518316426796176006000098894061443874004791360730261424508218159528287163152383232151460927881106587542828857638705301663451629194651229413909353196266750060130770603289871129954084485623344838608712615105481444474745199789062934846776869435137004351960088979329909162045325643575187556475440059252871105402215522766176661997059272253573148209741194791454681920749354066568341393135843914510524223527411582524644993095222321390950667190343153339492405124856972358877841285005924248194291234633240855473385178237944727224083968211154344581934508252046532755206211945685127480680741844594055577209722585661596840742248428421055202681064425284598119771758731225887634984640338661085967174084200437245091129951732015347641653263339658147548679611499514025240208420573685474819193127788615010200246188520456365562993774395337957586841392265456445487828781675798107387038073257968855841108386418697421054564758607458085195841408749229621521490968293936314053323891588900838383098552922957861362587961417572901693172405045551568453412314502197414262688328226784758686478098398935120660956492563996664594791515148762933485656235744718283640779186673153723226054549879804162919915431528271833513535043290294488666930741167203491407051990245412242048033020918920650002072470101252055423816631213414487754593761480321788106616297839732282678045860174366100807357908893483780669880641888308426495186692585713349091373085295342537199600053287194696627771330040484418741786137803344546203566808320969377220617403627614778653322104221347632282391607481862661928109229633431323542287024385962487323287376380392497848731271266484593841457418421387908652633080400716434036726600471165850699693270853948851077211301374502679833270308108569961316872940706378958550775110508754631342410251762658734006328305119438188341612394962055735395872192769280544832264703078822973874117177802860805945216951376697593054317775775856683955023949577758492019600220975510912694900378600857536969292085066647393845045336058837584583844515212703653041266233210656894457237138439108056031100029365034096415594748965610187309446764318444949457089127658680035119092178535709563727404328530169007373508091568493745896539196503994803576255499443991630376880189842266065203484620570916479283357829538620736310116161090125617692033936617267693269071330809270067700069391720552324164415600944304182168066192424255491615069919903098315195470084518272749775149003602450667030379053729084530953379569844824518719281188500613242972045345235729544830552616302912449306750697742259302189425729671186477572909140039554797422050545114712074044923744715044397876448837282329753665524752808523722734935919479704363282552340347864883307145773584112693613658759762296261479149818631778306879878185174071216356288252182127002257797660062563755888925429202089031826977030044294056027771897171690498484670680264188014311865438996715090130544827604513265167171650682188088308945058790903123642785261663766721841218613838993909911584870856445241979802591151798362261251267081817228461818959197691461773189385174492718575789754035202619076830415238580219497104829199130376507470244042947264217171073812791919351709212167895246424336985722323139553548318109563965603995573874581790155342926232644764155661397821531902367672521997059330967181213477576912869866977395863368525522760427245837897680797867784668670491073746129391257190139310949119175657252082049262311802388496512436562998772227760605239259512179633340454215845338250426013574113236828869851377381752842895696270264306393680548921848378484424875962539282480632963868215024741390222172119111972794706468434590010129416708051147618201118892112308612720609844275073715860974874448821664862064607593815396100424783420632060382056010346196930957218697239614699122973117500020851215091827765136305465785085645487890224490069839168009958707799289612292608436143346049778239560322873148105218875969097231453757234606156618658115732046510901356928126246414907803550480307197726905317327832174686933695855742340906314309740706251263861197672089919944543069476020218938640135811087188537995923588355322180305690972055196042133522898863930017845490960491741257162728953041809921982407242208120141548583038254825966044072233197941556541689751914629768305757529357783507285440814851072943772816166240245743702892041194878355891355727883550856550424147069214664568259900495989028106667217038457956282195158352262988307650424015314281114029605427569657624860441091407642409944513908242346986368678802896059627189430420954232011529665178806642442645745195046906692402572837693116479180598147331080309665252451728802788434059898204221828828896877213437197638504202767122948938666242113121467889007291842175618124520904362471643448307471611110467742690042214657249120993956839635716621302281180540331175553872865106083021878611279867403953363367923700599562311742232611252653112153939057672087548815235848853558900232967760919987199995602941368827623544841999805201378080884597744251342141449611178729702044428003800362309803578687766883453918454547702333876858273268919964986462646775410236992340977391157033798479211882619996196643178869346065982344625592237687134895966662814435595163252302376785508127219009596627478912327568460633178024785580565107627671233098208788850563761122116736703644468165770419758131631870864273195440312705695388194022301966944163918970303550955503077653104492558829227070446269867296441756908923114572506997184787690589739598241963653839681242556465282613442274810837122153363606763346027366657938571123494390548369255368876733349826960179309459596208246408720733612421625942904881937374752982268365391027347120881079845058133324942961338580369231220681830071844024440336430919717785729243996239939168362130560650017646029508128342491248623957845912464158971148893058946959548583244299740154953253821677056417495739413534904128458981016958206188611041168027535278912867398426851571523787793144268075773353398907297086187064778988724806643875145280736379728576857619496435160712824514406033921267904768277708378765507005979134132071369224292191850757071981434984239418254091205665771620981558644048690851612276666304497997083082620039690634414794150704096910687332385622545813716102174873857291723120289755669796071474721623531428769249999492318690742765794440831540632944128305634770152044246286313288981818975337638824794831881638721151609328356729076792436599746530187621739559133373664075493090554624080992185445761555317574737132118894004257968235191259633477866317569877377162715332445753349262505961987083985049735139388784935871223822979067258952556022102369991165256421001400481666996795505769469745598320983546184840987151479105876513784768668075923881041720309442691925663620068303103407879668281802952032881099839817673265785963936385308521339436892376249693777749278122845105382593899456428634010285674875181653354393545999828510701946682904677181283220096121422554240240555915954640135167651703381527261288412472664539726202257584496352086046983469765517397299338971569560539519800716354577073258489166052323516042933719553490164907994688238842172861865993279573899819871227664954891397323292577490890748894676269189259480977527095140496280641360000940487606500164355329568311762245148490478271089524800712565456663847495985096602941449505910407991955136423733828425900314560086857853031508301671980905643118083643411750543125377031912208252909761636895712747512070382777146451263809825119450279546923877924273525763897790269355036200470240715987664199599504170107008821089187622631257013599659846592965374483259599722776978676521769002530514918626215154853005791536893445807496631710884376950578854732017356715753039603041169312480218880599230157944928611415963316270349319137201311655114663713949964865204457410244944262311396707260265381058228226993223384121578305907839161508410233890202931194257114765065476320685199681315789551552100418964415052072530391392486408025446439817210122710528463153219647358094190784477996505029259391672701441908198065604234625831026922593781010238037540312860913166429821437174176409760929542472533164192928988958367581792192968608601700955176690421028535659085601425280894143892719742833184004915177478052421099965434617977891995503142788064790277209817317189925599458053226308293019008936704491855459029120757627255302829305285227255024733374899371046079981373081586076072161601195577679636279580130720667086174845222941567825801843510001727432095300482857108716538778376777062724746707966462534216821861253063385102626208135510158210415336633104556419725169133202647897609393573239887810725476155279715714985543678866043519422201516242008019684356111868702848131460269463927302189569214059142070413284006394472867725509750977013516503297553274008715612736871545141967716759637725064512370536135610121028232868535209942742189553552116151483341448431722188108496085784574180226864430098440234744282003869958512984101047014422886022108235571060010943437444788600723880214012635513238808108195796819985818629881921597252640031568868588410662959505808015169937158491049896344328109305801730841763086342655315310273693483016765621154428063861558980518558333637947612022405018857935555100624119108110246058487087001186111986190436019039205828375754223959791503182373003187063678565960998973708922655157778092865323486934418360850208829483493650097904934242658845441938971364386203082284295714339335963168162417490034737233953512038473619483558436480971444145153777174708760342769531607502821611385144583363736634723917880840452759204163613086944764393079364546865216620454189097319639348620205441943751251057485275949232304877385365326307101457361767125407182300533001555267017072750694787326930691010080038577034426113534012313960301370748333000656855459329553363604892516594100730321704233195933658255435009846634573718272775518953964459252278316572653338641577779687327337241804472127478093646567299667690929578115400825040459999917881061766041433517427269379486262484476540742329854334424166564837784117166108944149456824181290512544159399944929339162238101926677211134276926737338052230002050901782529042605265327765699152086364070165134458761286749546401732451622353817138519591702051792543540733504207463400588985533072922749776440091362578783937631691034777949226300304740084913423119361041811451747748949078619390729418890673798451572481074207078767099409145188365217035258326066821066233098979891467403299537825829806676569514632770390732308249658325608194636695053843274221254888680816910683185714648059430768746579545781351380908503255682609823451622226946218929305362011633018672715358779984989724488362873585070266301563426578046741211263163903437382596188420001099428927397625415640129986068298782616852977000406310874987460179920343249767892954719129469811259887163953545678266336838324821723123065697710827759556715107870031911042141472844519619160124109710704800340421222088149570363334255873512139239379253022657945115626670040315374551542777976445096809671357598305951622627162497641611565549881384023151615301637898326224331989439678820798795616335358246737443981567042258251191397356402976640031739322416810167821442307186529733958613433925053894757843566310556453636995301262548003420212422590766455924971377255790362153264828034360871867284500958195510805644174857036181071213733870295797719533402446807459593852935816541529734301596158970769648251626725606045180849530258463406100057504837503657192688004538583802758946460775557519565735914831028870821876253392398878067731320548266204572114763757024892604758361409718470825637950624250934322305305082787642867828467970361946339997579089617107580098717208322858022491373175915045550438400519907337394350077738592156353877593966896540115373924481778375464733469616620081421588919085450318210033084828764784230400955283205061250045419136829612182939161031136585743856019837930896345201287039824650279766082169846999574344172522040116913356702713464524937445305374137901011481633320040433386348799623839377863548565069933784909042885134821836884441279375118372919625734249054317212991542051155547292780610124887964784314425576952381698396438562445297303322813909851325279303959538771794266636043223688762371351331202984542298843241082772110886201968093800968266639506446625954236631195636385788050779486117685607880525766969079027799116937531363560582443980294893306310581463704918546853552629665882101091205013107323758404322897310420295877818321045163522623742186153317089571881469775082472199539884410438787789297429217941073487961538747839812697129899810875639968125043468190719647049331880654027872638768665574244016209674674718219027134998931659521585344458307057500288536370297276535763362319426391035604143611370756788972315619652398898906588070988900981225865508970301537404145436654289969036318949347880492445793047486780929430123368627575207518174706100446938875995386116681210043692829181409995525752842565709019992752813625708366490381785730372711588761215845884749117580345994611588722054547313030852151888973533321793875522661495814510556879065143020356037757149677252227859576533794100020670378484195742806206225885471794237227357766881064593109081223023692696987788207467446590703431514560511061975585187377247611782442382845947434900617811353811848719084503158856759560579596984523023035930126151086448557993716002170076783184140784578736935607479366890544934467849868387086431200732022176702706215910924638454976301727728191419150531969066294030474955479323397461231070112006193385002092784795545905868021493671890679928650098890931361018864655469876477703201039753617831237970475635814782482320876190372558329618284970447731089431160307803013960853569160757355728723626615643449938091370353604181763556673608603768630753689282268624399700587091588585085068884966591598868225506392304415990121197594825770633790288503363674872288626644741647604665414797274798657303319541524099480194678619229531128527023123624184640506984716095010970843080169218100011140428068254424594726312726661745613307454645564440490868526661316621839475225106043559994035798151270595693720083490238119563576223262802764998103418863367044572588213215197688013826405427245120928987145285058354020106163935118012278317128687452715263515085287105963699516611720494670639770852875963138066338077765545613770273043316091368802730686710352549637244282673783030445083539874365620406716753019261851178124768574344041633684117787187034233972104543916917351827559596243950916468954690969761221163059918330252997795872758643997190097124971663498994267461873386524453498022088922314045246256714440217579025171960432473627159429973725281704440400301187928343072931355860648450568118984700581567232882798340739708830241560295746471132385600998588342449499938375322381518754212734839775950014083702114264576074607083392266521308836253063444935750203044088017465427659854200466997127375002481358038806033665206208827483426034939657973220255388795421812062392924195386346529109884596461021380732912274138232259034977631131514200976088989155588789513519943268368266123920326836195054397321312831249065316423185428298130812855437728044708312479980067725034199137723547426832171246132052925702785613331020560978562935513679722630049061467746579957791513795441467998549528360722740600073190053866454646678863550275993233016352398147366529996951953422726030703096936871530742315806214359981710314241509104370793304935865942435258932791479234385494673365739937524783706144334216264650344213347131145602482810156324514240345214580869439158119290409123891295482700466707316547060795407170552818305248038553141663306776676616549256075699235091219467688878627427030141814264557242642628330864471758742816343437359367115929697588212109583193980960941334874184683080125882770222879489124929940502636105580025172357994790613895709658607959661589066807527668380128705182975413322272375170861058844738107722397787373652451948117314864645400177453248038831274722382402794121161262135561162575963091582273437596686960259299005270729577585510711629935291133075469414735923671548341088634939050161073887706430264378875232039310294842924773299148269264206517793143411253432117310800060597773222096213542355344349034085348190592730121886874731301847478766359561495995336885996515913658512170937114161848313424454932510020399050379765258615838592462494263536819179398436031910915632072680569095349889699246548515692834556163762735583237616397003102557038457688908453166694822470101052399374318386498518572186812276509458156500176438037655267047085593743267117775677223767277714684070908895124638714750235782916488499831186168264515031224075722221162966047990874644013262861508720789503515264175743080056064764306491343383316972505777041229345531267708330425185757477722426788158493603789880640463056180469764267200874453871788885390230718042636027784120879158074059551311978098215021746918821436084252523937668306437346017835317607315504840488006676150714583598108259842015010756772475130700296063437880482534795672249181827626335147605203246462341085397809384109714052848613425371726956261968875535772292586283669697187436828692380380152758185404788471314002253880855845343128639491577304079641550936637914408342601614910678870364486468263370366064685719846726639728658556111726876656396240893518548603692576690102018948730945636521478323199234241076726934024021414336113640048685576859923796841577958386889360432884772686504046962658645285458930999765263819385247467715770365936856725551365199486363945786218194594187479286535501646750185900001208101016821513117244334752753118259459685171139732667263521244941497721548725969103396284659379047889151287828235426235581548608071635443801417031351841543366351385120520312874473148696553209971462768612010443534354340628908241703196523261840598793848319836182614405593614427618029395394054326278631597629369837356113756403924286328556790891086549081088158407644979517852517396435497066719576609892649269084387412065908252736332107037659396625283739120880127962289774686218979910844538079646013810687065189061928534917940270437921878320438616792828025825605074590105831735460338269984251462602705154618524693610997493882038962303562798545018752580271426400352247502818456471801342449405827569652773880913599635297101821290598120091382119976022629320446571071575624435557351439429224245613397057248868787758761675347092715563911400962083532960402933672007647577406694681436001995632653324177459961568270056515781316021250688306247623529817827058383516190504314918673821010047333285982467053014976820781050555683339877235591734144560526491209207348907434542425887926186637418841681627376378021325017936798530730063309219220888718976804981696388570009841444252851343047577345181407735698861886836260621750795210726828151279298669702522337827624466183916795298366575254025726216064350424497769879336134850337666479881240372737168797736618404276882550388411924374245127523446391764350779783875576047794444941821137762104627420546984171490537801596703495250823599427095453234497182728883653525985358047773914801701841388213986910518339188065419894867493875503339225277749925201854604497208676404705827987981117998014674220167696762439266587289697765434553572284980154475192022976709199667979583692096206660032909341674076431073274499602225267552723210017661543972825018761114734320533168058773365347807386975556360806494206837273646807853426553395169079327767984586689395271016033718816024963377321198672719864564226622154403169372765120937573993893499075399655202140409712515351786924521113237293988502650117001579551253218942877793374214978776493831086504144470981604218607733351062933350912990620613852966021727805527231240251462551714411176721631740816998681953886114652352597748956824036766993927267699112478407077016453240679222568039192933958420495841577508479373647065476572982350416882867359680172048189632628044945228560033584509757868221456746112808351775488780651077714846937021778469855775353898143166091745307339202522222326475243556212712103888450058035875499758218763146095603630854804682597992784830714686645297811124102983047570278287080619546626675756320798911569942941821376754312821949928965382140920150026521142331265910824264110383055269017927656506423897893254588920557452103252291661813953217072256179839723161653116099683289806885526064230787384712108494586467906818406119007439947761969128951537540512150249757016370463984681716283159136100893120727244390982047627618409474082909788975734524740752613284456614613507659168394579324573943666980451406960995967203036251459404202667864944629859241616399391625039168432776364588434226307642524238579733417235089566053457068132975915937954381262897249071017594554594032356389097606770421252260968693071406264557781482614935854574926169179945353332189359612987191614957300418971969777219572548545730309988347545460583254878133626627382596654346890352307374030759789371565656395093300514151816947140059715885344034568441596899202983553924005539461747198253980651311742522372776917604191988772390559870997721857026379158848712891414348312186634129419862918967090963979814923377820328925696217727995953359259717922713412081723700533150172472350094325574639927438139646639896181609127946457304232041150331413695225418186604275788273120327544807095779852748175309443038895477153910081786554173477856055199573848437219593249295947515994777296179408659968047069492856323943066011229424469046731922883628488214012862381900000535459490248753266198716663315280382804327790528871378133171932320510103780316237647064284537078537312718963743413679820442612961497142284723815262557592241511466897292745727758655201670088487588439191925964546376486573960636925102102222215005464441249691158166089362809824291250051417382432013005699407875954061853956046374349325525681240919682740089535067191436998833304239691632116496042596820963024942729410887985154866501920429687245649090525857678968231466422028832409921144360076130845267386924946926477947440356442921515280601184082786198572123508808919269071387605814584910546382218479194553397683735722573340908127461340542080987713740416368153879816351443751927531211919765471978780076819718802391147446894423685233840706681382638283181137902238976784278141238439137583425256633685407366381913161483059338774964185074132740064839684927505836353751138845402205831885419409199402272626714148185972018032911432480040361636803036697618894467253703792462849789400091389488186371347777056740598679611371767897207591767208966606981622872182328603649122270300360732775296964309485512560852055852628093152374398328100619249342737816963890132569845124822591744907354316491044681887825290837978348784000883918239021031490978073755541988403179979012672013385281249490599343239624001754587431436580020652401067745942805505955121428836977874626773084179103455652013669433039218762162334266672881517778987122079890231163964605638930063982700742911593111624953819684294061993363661894024588924390283906479873135953446159724512581423961495532897412802922643540885976384007768161344246826529754475988662791787755285375882362481807363287917168873686638854906262724587711833793871498118854817498249209243690737020610972559321788312479013256579814350733654639428238338414313609691664848639432440743045525642739223384448074483084949894766111821641014809903733600995863899937332961119823908412086368823626425413034067072362876279229782495290426097599500792527957911170948604846569430250897896031147250374418901077321752586342041226335468882117329653088772769519690764572591530080588882577199268817602088676041714098419974618210748171755506464758111891970123113542328506921155548451754969769051910891792454263529890132810654769760356381068065727236214810407325372423772522030066745258150112288450989477808325164658883823466855836723782164861800152669772391612593709974684387622209324395625275583349118999391934594207698341351894663265558648077562781181327572767837105752749627840894216251208918564897863916356105181981969724991494506747311790531796587365655560169533839062468550046794268142029144650130216953922697361487419525416633216314773508578112395024057165624155156117826509944512008049549240564691868012760812039071563823244106046189032916566635368381357016985397978796990363222082018534321350427130723917287988178115454817165899565527092836166863295790028322568187714943728663404287702977126992949347227245352769355612806566412261851557250966819265159273240103809112206261307009682936266980550095058592098222496375706764685366041391801284884555151601422506055844283787687703463804675370478531171741678227408905878288811246278416667219475217677591790741536116050948617869371397000812480326596226474084032514257371269204437699330020649270621289665343734201473578826852079843056765294058386457715717736202621533047179954715439801857842634510311409410425300774713333655554253029742303053637003769538701125890459121141801651029554545994041297413249236895611578104946211219952131505296418632951942662056082283165585066425839857916705211037245537187605648288383474469364069826262814402798732622807456778282846223660537750785469774862893995010964412571408443277107667439611639143790179122566200764641996785253001980789400612279892533974263246114802731493911559967237625025382608690973121430451445515932208362648377792802149860588771367217169149231342376472506672643026057087564241775441246894101384683862543348744865351719485640000071903727057756306802447491911734245216859363163161175920754315139611031988267606819626955821274293782794622696961313854905903655362307395436303401692943262685320724641108834553869043949887514426996002245766389865067585560273098850695610575771776689510494760694035455766857425310846804953605109253092567849524283518119645181657384646223524726081651643834972309924044508490449967355097719511250048482468585215040948669260279378496265922988679869492610675401587692263254458592069942186073362722644059971446407691678786970078432473724538663840438289384856711956848081049984255259891534391258602457266579253066561279686552249681199875225919872487480570844068426053157948708665196025029735212335119261820509633692335830750555400070643621383545010289281289223757610287424370454003210251328508075491449002961379387873853351635507180022410447261161455141836882622611773949338709231854068976312781800527192767826783249344476663344516278708668510828449812703933895179133656695534350167853089730828509084792900370923820543074400478330189516709177805920380943255109387937762689423827208028649593002195557376799418524303155118545041231826029234431344344960576217231972859917460859525784245733435750663760611248783834425151276029994080958136491408449406023849015073065295370062585475845513559314507832286121047053432155466457431490791180898505911831720109703822519209877498776015660774962316510213305006540022396413917568070112293111480796499936370277417420736959216929525280669261171631016182998726070168859162994059807525224546034719678954085526687287419406404162997283783287973032087262433231324800094453553464407076992355154801833091818412473370994094983177995223194225344002193323817022331307737984947223745749007675479195873537947116604011878654971176614760462398706247719837870187793898485995856973963402686087839588546635487158428753423402202218884330032186365565182886990422211035154072848534888667453443745733728384807282025729254214742180085883133421585332456240019978870394413109415563740916055559002524923184143024751333623897162184283431629835301843568355864186287513365595229442008414111132201629082656392916420103911538681516442475548456900905697170614377139489868804756493705612595325151867047548285616740257472850633223420260068979264788811392012135331961883706148620393052620291492175081062232737258089350739367606908757357405733481261691497886520472059592009306505525516368217769858368866416808515275392454742141304659558336021282727015261756454958044237424923515000291903805478035522007547875652524539135511378292628056370957207473983225380992762018977925772618469985306201439819299786928794393950847952218066236246159183746057278523703303499152926048431942345796087727858732117085470572136497758236024331834847079714863757097775066215447903526555193926957255018270299180494385033364884506052246143112344928784447216974926050700812515982205270685636674895736344983865065120888987950402121147636337463728033909343442592166071459871371022192696636405520449028285471082124463824707260514972059773370520842562710718637061321268230260409939960525489155475397652099136553798149255144382149239192428035887470004467086399385873312335986042370865364949420923517534499854156650210791027200093782909194698578926670156381636485924374484458709559847750116031000238231834144390109401289163891903630997585516499701549880783187888058271859373325569720614918715057847422459820809766982311828811505893264157944726472551578269237477575437685140733996294087583445923842272967985389773708514014197428366291328404950510693404188382582663311228554640936947053602734323007196501475209273154721812310595550283364517365730839141243690400218612802388941951027864179346350308671302379830583528476040780878757870217654825464971596690345241779108232342098050627538646530723551427052742613651033542440203190301668367891436051363808005115193207040303949555964822323246500169811934801158620220845743164572108359899691622976869045001207486266655951807130160205515396389609595128989960655259348429703099433119131282022736088479289606380549276592662408286672137665963442137478836232527719777527071813456936601260830022643143561034119552838918171651122060648225606920965527812682922938650408533397267950592856036786334854900752795428223501297660243897406668836827607486095033418357674805055151966457757747543781284371143905621531049941420218053815026830344689163810993132158731381268799530199929926510537565942940080700302430525030025971638185964729923616871795830302446556918533873660844342822559151806062476220825383349091616591332115265908715806005386479463418738682349916544393190960646179443668700642806735484815569608388833336303381052757904295285163890406801715425206024511576844765324422639551835268082811764849703577223302432741282812122040232435935370979271809722356395930060282214826364390133238410736681472199057508658714165352756893351350343945404441258708447285482942499026740144908168906937347620365162651070469038675969637749870498328459566839873680935071655995296874696979764432397892630932523710211393429516189309530913482091646163874288566375790325140570093573768754436608931565336072819452236529795782277965086634333822971688128467771520106588196282681596006590314989011842677200260666603844527142211479467899013257358541883783916202687800148250708016289724961725617732529385888482243703657882994204400688100663663077297909636384180272461917812741565875242165092655579587894045202266578292001113775553873096693280054636949813023266695553897605764680934111041164911471588563208089775343647046419553436885054275151842150385773462125200781807792201272231272043788911608317043903990182325507978958476747483182763050192867352640932410906941390213929674450768811021026673189826604162215469497219454125367087620707810059714550602585611621964043254543984075649341304952893047314039731934517394583281948433695480402955839534711137934247253015306062602159858278680475950730134061677308512112583338771075994468479794629414908057532305465017737401583427372016059742303367642443752308233417405738071051861307533857647940120764446031603396428977589978307665538435640512655102320541319575770155025435695232430227699935375517630672252361836961619089675387975112164981824550137164793541602860033741725825316999476405326137820416067739308087048827396024236375538278936456011308500802532845117893251241528017674963180095829716010958040164718697097250435875270215401202568315870904540790242909228662251019791592422143221250843314471832892278535036974381314497237466146934314754090751020339974980403601056425323047751104695847244820777598828199839283057413204846610551022905271475218955350672665861026230385072863557910619298353132287223718178952064713245746704367097954958317980438328176575396254384814519216569224708649289959478992129093427566506165561387120648093001407676412162221285514527621725491716762656900387510069539101179047250497591654385129281611360804916485671746466309460080376275080868098012880663951908895418955694812074942724854325722625165361051898181598105226540564042314482436171286723084830620251748244834410447488157096808768511423424475125746517800755109573081124010001412748537403324044281967506669996476818848358103253563655013450044763151226887266274669250393290688823132639720997880957303896255183940888755172700426724713436898775978261365664677656524968675384146849449886845143997487279000890809682876592575608730836545019104726150782337922511864957666134036081035314664600409643764475575678414808489605374759903203423691992571554248653960366902122318426656429285373465513668084730971933850046899410018241241838349844739745865622255202139193473580651144899301887486073234705678816317772835148787398505181508169918221398184135052984492343919719240928387985821337595638273616823494823009125173268385561333381748835451630392107208875945478594416000323038029154319434938548395433122735987238676390017904002729990187535793412584677985566853751163734270603888471669854741277706383619607330372337386107411667399674439514626947037388916544546847903813495623801658445608649562732476457730227173076693063024922525386534314294482969117738058881176953289995295755863424369216392795249822573638029790607549023738083348306385867649184722518163729032536830130923496088769398162714503128437885846533968091593193890555121449430378131061099110260820070211120892066711588636295492165021282588212433929658268995636577051608453145861468391866592050083404847175480970642158433513197270801611873603305384431390248981451645913132358885160185202455328334208378835097377952723258009550499557648097796647293825967053371681154458315930647080401403610768927739797112407703321713675306722401655951120233303678512937642387282788753714884445667095128949924329563442274454089644576771595419186395009599413712097812614390476731155116889697622852845552667037347348306694025150716736715856191439013587432848412620967907778980552727608587612080549209885730653538118569468207272927611955886815445371425626415977493455424898880505293170635542818827645922367539550103046515106012662452607124558909052898175971103557471359223467921336798066626252200647226976640241415795580767887581375304647984434810226704762768283899391705597713295700345267215566766557530583420883959833929478710434107132675753239758923688697988455417559813906199493715094022242058610993517917213832039575005767351627745770222595960027185701120606572826920241468970095250964777781441216734353053525949404842596618026855526079830474712025362140268286360590996766911524755796040412593950888712394557285040870041589685439690142803868289045627240569484042071066404169038344700740045655505154147401964148042683944161953102186332078380668560296663373815582335517298640119786331210353577448728060434204784236886511993018648394421808069714189134953190179166532113191668553370273744262802789320056755802993700421613934380182120491013199265599741727048270731785399004877741183201162481657686199071353351294523290771989588128602100424277492074214915950529269093478745979313649368095996469290571335672096845135937021284921332288573215691938738356581767157517752181747609458793079702391501543618559121356330469334514888029374832371289761720234090345229440526664497264769361341473723893157806485940159088386242035293575094766701267653392453873974727274334076627517499154720965451553529709850589825658699442138934243732342628867128192184829263293197285299369133332982705567342395639022148124557455804860367227133980093658893855206479214408265987130387316490992962952193849114221056100561829072601740822416972603757093497147164936423784379783675446085756443432035529802571692707523136186087241375492885117986251836204240796601049904301981021784750219502282745497483497263138260546970270897750783909043973565743958883744898393796891243594059468808782960194002968843288526638178820309094309568336117438041481226042992563565762519083564714921757640219705964816165391738200127408998414464891313316539519339831978196943634428611437317903986481681749366853730349205654336066954047485178803130188409254082875297179286250059525335975744955809672048549417262990954600207698729578709550279634915893821843407179749341826900522538580915598680257766047358001367836342884207817485407743848252292644141836703325670083979592911788042667249407742032754235316721780326443371408228166108487729753633265008969778154150177513768628400555105083099835232283272098782005017237662083910649587994199835628960087626688061886073886714718147885471161672693057730197426573767769312538296644739997475211142664689766078643276483455021361471850133303323757160317193588692748161922415652178070129313615609965697414922117407703600823137643080955539635253083437363452426175677083070884895080085061638052742442914338418861582496227350207042172840721762094677567967489311951026305633940245254431368589821972518877252493723634844260934700166399511277674088217068284571753390342038210223065031515325254811482815253317429190873131261551513932260551963927844445063747679774882874322419791520502040980169857024115712787262370041077300892542823171338898338335708956241392650740770263915441547712683540356729908939738271637381050638304528796546891758699127204364539279595190544694093520177868265825974916483362058776146620845105037713215915817811785797341259696623563518358098485333394719774411637104349478626844890822519146517107168790173948694751186102492799191889442423165946424677898321324108271571877255396518093636444616746995956495816140947949597604372711595727137468325049156011028288977840321946497768500638760575609846616166724010123129732647489885318576899681486445657872956416264838752458024668704723004557684846007587870038930074277112589650525170775331398324341149346763290172523491930182059879728180683771147524874424959357736832158932694627204520791891224397849929357412135465519752561179331260306845536432824188955714397353810204925113275710154175650872409656518633497836756416163424573056170498286995513858546578676914552929747290724425218294721178702414477239203941725268107397141225955594019558609405470592657541727055369424427518361695959177743956453108693965159740823716443571695113904755638779497681269666816068883984108116646495432598398810420803773825549154749285329156078475685533786951019110413770450102807710390845760279167982964277902609363217737955450767261929823290234095809014390847821126414229326131531290949185371181117108754276146808804785195983228436075675874711725067801499549097486945367673153711110265669449721956801816519640492721077744537334710522176202440066693642883282301848006017174635875534526629821672013166427013235479154783163953965655519610649924571409890417126860835603761978999550490394608385139655630908211952849132182971853587623557492971686948417163614622157328118820148007054662142037976177408704818426429245210168824603313128713620600073581031630430795591860015822771684877040720682145074748221098229891117589796194125383067379622817067872146408789385765812709525634061159781362136878058050739007914824671496950123419023320292872174656613764717923951811597606474594122694084248265275459318421988931125112237604512399883882687663726936609794222341273342674331556603441281411469669331919592918451871058117499125500192882941148195488929070435993920332932255927735518263249924278363848928226347297724025205739975506509828074480870324876565984552007501914039720276381067621393720543762374161646295267891413246834448097397484490059982734902774993639029825166465646080987078382507228342195084299942334337399291174024626129631863133116638881134330301931899908040928762521314630897315752332495422841716680255640894862317893029061590202395667532461283464359457992319105051202953110541803877389592147624368884844526943773619851409915252752016827673159958084940431658988873747719389925549793280007228566703560173292980719506258388785747398755969315316585547465457618330510617758861588065592404806305491106697068417949477493264656988666709328624964301196847397614072195074371699141676109227294845917850571632474542040553541571495395679829103765935043991948026065362887396501652724153311419317738793023609776562749590118033372600759452230873899471192430720764792724790639607204322544528641070936308023880262635201883298563570783510580489062489353266819424510765953887522594442519182455065880020838794804531332451137093642689792086529904436647004792100807540348289357076431420668220829987857108513090384411682959716448848665585563105473203878951463158661364523241720402980354964533663565857022854035282686139046668430724777964134058308460701861703051783631446802533594535792204637809235474348966707360731226396442620801795121674218982469462068887209308422525009635110894342717589181972311497608011853382040391376555788913977321339876598231496329844274823150899746756720136794756997092496077237143761059066118401741314699091755188388009569672781413324805429922483311780002960950496763842030735932249878478165383861149005757533262289727553428475732582765668290987899373761468307830423390534369014359701574030864634325692405399378540255521788561237849789006117880968184030323442884392469565167018584633872222737876012109851050719040738573253755288729881993406999922320462709045329987406067629296806003918351307663015948625598515172221008684455441048099131846280131823349529132098985718788810366403291907867753243600220624022259955908732225728258348771500736148036275109413486718608209138783910098594505266176788114890966259201073431412702384516428143908023432598523847389697341701762487979750377920824868722114032432343256023276327758287758880469331645860108218148778287959847975940870774304680691045393199146033147466488313827516571046696673751063506214079927264644968995366082341519682155207408848577633092857824071358691179962612020573332261846672792059450547875991946486543196651337015720189230968592685204433781442371361232371889574055786189060463141018790139292867291249141533275290223674116777822272431351881097721340058334914714193398464555918350427916759365667229995947344252611220026761387825811260941528704669034905230277172010138147319319390008042983575706765972058835791143536772858110409930225331624946890967178898479671952988865953140812800050803305000944378477197081997445240179929862630996929564110926457161348744653201454959625264558359747982701633308332451411422429559573851655407114062017265088774092722503757587324467340035320872890888024114197623296661575018119739600916399746243285794491522993096367958396464664578300911603066931771805374294018938236774607069673529640530020503226200826838767435673199452595205378594453130477529872417839830506466063923751320308518724900484249007601186691532871625374680607444835751254676975220382580940373601244619791156171500587776195307138697918735800372862176222902521078061878681748785357611218993458339756613482425465120279220514154887209356545510205352882951661256410937149877081532800509188501694104323675796983443576313008194856418552011384886012308976174429541158907905392766888453007827980970605372521841665472287999954756655904904037558612135654339784765904794509240888047954964227653542452400559856099222089638137915970281580808555921566783580608152739025767082291925973049000443291369328015318631731552271288130626717526203919208485685616060627428171859593910653937494954495305764915961766518127624913505690480379347865769127238790318919539045171814521606419153728891410986295872863663749464948802178476465170423434077622920013818572734844603112601550293875688331786357803254108362486070318081654512311292969973145357745996611197871382515815299510924213399052595143742644361447228071266317624525519009766991252299537721721107053973537784622218090847019599645633334229647398732728531134108050404677848083868386160919569727183860974790322539925422694594233032269637633978133146083081779264189549191047621115632319875834424269251854739665990496128003555166673134680607066142183541246677407532249074672009059281934364026377751798266875187331465196932575410523512247305152021826452763378169279186897227219450100691961316857821309957484995574536884458143386164825692051007320867636362917258856232751982188193226586631315948797932307901720551840514531534984168879613317467803762664073472899010208979622992162656782075798597496490437577756499598791926312713815219730479332580600061105997385637692309912841962163286392483319999400692406003282038305132094669309811293394802854901372717175311113587759659633133571883870573719038184869693994679797107209292431934150984558566928648670345662355597605356224096030023541954735067268639970510541621755232197862186984759724457643380542696734904309446429706260615238923427783655326935215889023574669863070794677785102071732703376919294578289291183484205416684367874298262514902702256008362944771536091189812818458462360743821492343449179914547069826202890804136921381414732571092683635592875920976346589189237577036577517105794637520741748272450985811952356946510121551967380113266173941107882409507320925194076021514589905066444680092441115273189466990448023303879831285490588040206241428997354396181413628334662548993759503926834008658047667069814020902863711600363401363262290548172326054488163418927744869714552472313351051337721194653335370496411254829189574694572482251937919706834238393396215444799523988580772674588867442631317753062541618886072775043487309134426733250795559396604645222384960855484515431966816516589515106594295613825778530455291560035499613313119907389512609626140076599241919016762979846589165138022482793769928232373684489811941025696447595509983045613207925592939728719933499031979545330800948927351190544838830619453574206980374585126100116651710418683485846900665019270880461798341442817793572612900035230904467441160593882653668207457777967128509905351058609559931362013139123321451730849898799304644451691885419838976853032655488490301962599961631122141530974007944508731683361594730396415787167410200523520889122813421842742266433104918275664028721505987946707481984095642626773542853106512465403257972319579281807452842715084374337992222771094300590469135909338313741012597491388435594568803971202257630205903317035621162800007299960759352406859881623890738381081036016243484879590534238704114411074941702037183776437035750178559176677857630251999736680616283308635077156430220591204973430181556566026826276040197794286666756882897162863306934735520359920107110415979358486725272151414784472256495156979747369536328411855604826581015305380235397757652496606497896799632398721036963831073388985335285888864932259934545980989914728394128411254432556276008094533349615171520592756091277597969404836750682308101992291677487380202627324845889939416162630576070225703869573070820525198629441995950316248912072472852297316593811738620381805989299572012768918868323079412452579954447079922701767168078893253303704849056166516440591816512876321985436127872650904192567084563791941611791401158929083024897617766237092209088817884060693737669476377043094262055252398506710502044842105879640081486833259895731564094952723325745801368921549700503590188628581367053245495787257837055160305118654397666771458594413136700782775729395326574420987380115945278739574388631358220112853500074180036875733767825431094508139266631771462642659797189381779139588771507434238685902440818868996681946802559749147615520078284127604622957625082197528305544268511382174096503494367767621350140635393171833350067974026326288285761845105545184982632467089818686638761215039254656103946618459493118382146673732638373162122156412117797856437116914562656662818691261299575920546096582790761539339681523665303157361561351324172313812583092689221592150424091243981886102130893753283680470672584856352438336000802990744933514758177355623876573988355629530077292959436702265707103048859935263713489171261082434512247140597471439841066177601121842173841351102461730448550577573823895089170073423601357907501761154860146235464505041785130868350251222085136419620780580060793690115922516077088278143109647129583002265530324829756727114527497296335303133873233080159790858197213922565056300319226334791409390817893019012066358101035252408593783131815771803942686081130206301460929960076220638554495965348258366834186283808742328008623203828794899461096043590927885219744523277359404549013123067031742534488205854426771900280687376591538485412096298991979269999575385706158726778835512297053259546601418169084036806386762820413534456232086754488630352647517142591087878847647190425589243678698954118118179738022459515169976875038469371321435035738643456165804311749192222705661774555118345384470069249279891823526173289680413026418779283148037665073233986166214418347371382900426303055658763045918894873580611983575617207722019417147079851196015167142240820559441241827579047836127828959894344308856466731341704588637762817850016907051836460475629453591767405840150310751131266161882773116232118551323097452699235604917796629110905198692246628165119264137123138876163791060029366729548565088534151830630746251381753506647049602587862688864852197140633382987098269323403105600078305161465630618471279900464764703768233710836299516036679613651260033450218456696737525251483141661733875715456156648730730900480590490229412006937458822328249857789827323750521757728039763669360818394849380353227556991830251952261923123979835474934601692784788776013217723196312521833306470315814660749505048510596000847454341839457987561508174104392971948927937030499905527900361983522647386223115171768307866285905566040401313921889976041703886158759120081773117912613024056087064203428348587807628553933453780449982266379270460387168473794237122223327888837068555540362350596977030910769860815975848003656210591246750482877610347608548312841512305987674665205603388151666251874873018531965841146213930397946898135962382970815287791861249178641105251871726442021303988222990280146230526654231486933936959465688828530668429159794242333850045147310650302901609671307593909778150430991443054281061473870626338235783136418541848497719713474604246451051425482950381798790135595085697233787725863679051684100645727156952067585740316407051937551855542583819246391025287120818364026056712580991027261279247767343563061020760139520077730075849670735637589601078432347849033912950472443541394901827772590958114154023187520927526770779334437746787522711989910391831709054196153923112887603622157768024206895843171757665271498361876691365396241203712310395032389381518533701838786909493351243552090928364134289682922345924538672004514272038156959954831185071697247228056395662152181832197531990410399827975149105167704335989348087315819963660747047267201792445294384807951130355578473345424299798382122965823928682973204513248826999796317025042558585104116955506539903293847858449672637061645187248650065964251752424476162670320437063845371659655396552543666959116791726621912253124644519026517189045169236497488162497496547243207465685045517349291547855044281847738434487669323894355091296183648774387689873906020578094447951480717744897422353020525664123702344925483341976959179595925442289245961375293298724651648850301839007823261820551052081068525725009446390009149674062288030105713123525836604682890860929903236190115908291133334837254898082956284720097067538035763517905584599226732073044066817314804056851115389129915119388426188100016335791909977154783044294413618043822746882064404415915917770326694682612885546900192227566243546327204608857743814024994567678834834035436621333533769535886008629161726757535388462175057373642449241541180496635521343445227886984770026897377135948565394175699117760704560846723175299824385075885820954851628796288117146634143155384250525457501980323991491754315884814883600179219874692280715149156124243233749573413113383745336464431786247752530847433763208060958410834673483478413337404332854531556353344667894493900557664125814449327810640469094646592249025081148309384207061485071406011579997306675514048998251284540458281841341878299174647193021027319120950631225353772287480575964651874410227867964811130215554240781960936072432688790192153159195920181393119611750378998384780289267470606335911500135437723426202900450522816878069578823412349726849195082306093137341753852482068213124127285572820712938388774887755541409321324266816631219631431277202288799855967093935894612761036927307101195031068240606093007474077900448442886264085815321851588014715352828798099659158436189730762672446055638681719592214563786945780234171911844372645105928804665608269253265940160019949040425826356309655326575379224585439898685752941049964534824172297582228752489525653670461754808567476838716029158942761527028520547724557461589267042521679576833471664500336211688838156644612479936289466015516605839021091972565828219289933240668502711797885391443907757436488319926085044145684805563897039877050327994601556079077547040996003859302699354677932830801943932984785560318568345708105113297340830347189069779880152891883125523687834583755522174423280257543007672377185391730453117891994820158661349754139118902505282489275064263977363803338129207274632061783001890474926567112173278876146025636479648469497229370051791686367633645840959968909158888474653180619028256418505904896184101342921497917353619946395781406342225540757752292353311426827500500040194883783693602679951923472523986026376956685027073545100121373287231976588650779781001350516164363908271801843647857239239171787100708014653746882299933301635481230991744183474760792584560154910131723781260639716482635063598211031805458892493858198523795228126636449069720909486906426233983713852846807342328629777248036559599583835699010600652644367057787763078022710345263679921960847404005398577441129869040595704058194202988257491918044716201064521318803126737343756882095249656533099823674729464812044401540396876884798193694453303847395983060594398938964057565025716657356407617744633188612875416133717552619713669130597840567094419453644942419980073162085718443606159264871324526792866678376147530630506646059452826996440054471098979915144835883954210010957908381175153490548268102656313608240226847402497700537340872508530992491652611507904990635514217109488740949418971381724002516119597771069066931734862189810644670395919833586749666343112886653678676443527983631229397644356611476551259870813640135349863646922478559808019346154529124658411481722760577366426234419398629461374508821385336561180102411828407560209526232018858862523009198662343174119478087410619904506753539104336461032488079375816455742983700019263402325542772655334360199231885018740687330021762772555442175657517634393310546072690524735063635131153920454504367941885153151798402108533730087313013795513434305163058419770858734328274515751618560925787611878833013537608813848700400288682338371463922811875233713714216475223927694249627069385294011995598775796015757284745449903230722365371302899373506770711076672710415983470274649563769614625643131536928486906034883645939009586876943692111830738290179252842243428232628930148849835044565075257032171393698427349093673491782003253135594319023719466283147252157386551227997294052525165007321438658896713759681319770879363281232426247863259080119090812561690760182155759118323143859763149999535801783831513971308804087474796131398561391372545620455179083743960301885954273063136746978177825541487732885708785213968018651816921784028207131556149502555759642603870265138120193888699702867767748444863137723954607801237356221440932975307792569681594367877249688159692776761492670714012249098478668014899371407489375439028542942241439978497183752731627056542848059523238580759435747194896500564300952365306236014664769812623065002553288255374841356579697704220140292570013764874628274703561482867832903369370872317384462408363654354572062924432209830968317057564421646525622939484037877743054639433989397283917284877607299993357180867656820458360802047423713749753462737125090535463942727775342417701367306955747724214450248364873996986947542795527466710426520707239924563896434389220351288252185922359543264986455706735026262529130213503633804295852628873607953504224899141131432312850114608951530210362831198870663008696902951527865223665414078778023036939200593066255024688257894040244388656543831668853587530479573778715639485858096791087799547552487922748401498194627406419325894542774184006503741800925541022094611776311301048601993381833511459260240917229178856097608613518258787391211178253580118528453304903723592171225167725916699188928469596451563520716211307551655019739970686101047556352563832929777386281783198601540347033731531125377212875823086881980888448740266847251953011762025019283497315186504429569245096033240423244811756773828988294158552408785062900758196001592899393413919092948902033437665267603782242978069500496275971845290681794663159657779398781524080831810964721367391619598307720544546962566911539615219318359979656004520511092014148848175517529039911676995687471557692987666896036427133845651608245170212171149556186749860006959538864441062202008474375258873474241401075294469222094049066580501282836247499797700701809067938851380263564993423406138373148941717181703255119269500573291827517995872591189365672165057472384195025971939223294405497969125857369168874526618798823407248720263488708064265207969993450284335123537027324905981247639870549115833071491775676152598016144949960310413154173611678118269946525678961811603445750277258306049412135672017753234875721209056466711681146688719259448756561482216069975695940059396238587214889473329375580525248306308057834982494202234879921261663920249302700944558553649545675315068263162131265926255963769157416206181803195593001703919683110349179876371324476647135069540373348081076747237965263677822008632239130224189789128872474964254648977061478086639377613157365730788134138145759141050844830543090441551110332818596060241222397367183160663425914826696132643550072697125834947649012930460696275259164006503209460076081438298410392089946285782558493670541748304491525381297672029922374005918046711755367681973939650689935479373464393204085674781071062196247643949031644574928920452215646035753366868298155290268536634679783395357131847845333755764988671746044600031242825646681250965271114621675333720560653589407245392449226575438214280617139436567229093448266711852670114068341425421392805394905792243626535240165610999354155645712630658913164710052400821550100963679759483488595937762537732185514601201222144828602574065752728607562549435586587107073173697827831612434576005582238886779896400337175517252133392272814626761903996150971570177325950489419117445635287382888139500682402991759941765254978691238427860448342111888960278848162995856463172423363061515916475276929430521358168462538835521469633934004307221735671826376450003577174398065589968462020036279367248260366417352538153337229510523249726892902946544247614538352152939686561708209191219695774179330155675322925114156564489038121050333790681717232428228605418802397539598556205692122819831339068338322456945545372036167548768886387675455020420730848909469347235311168338765767621091437150045750058290717869221520876823834293881147789424944810920434961870837839712408635549589586606359481331825873335934372562336147291014781213393449712734860509340873375970721628057148297500641953857370666341978445469690397838376094501446656912071913001933337150015888616223568939360055456508484729167791955556860459882886271745454546405508512719799684003555832545344296844125235930664416008446212027106250845220339222620130299068221619880388083845125923771993339052954019234207475014587461481621778141394488422956362573056233011058734561248313615422205333608983780573173247936092549849732058177538499461522047359267193740569586660687386518578502722718218853742823085949034936466437720705426904410117190635645898684686743730427714229995543502585458157347046965551130358313573072638262620207110165800456301186029059427371981966468767454326716207221221091463084545759575954903685378289683582822645088209844036954783212648863149232975839727619853458646118194841660638388161731334373806737989186120165040977240743188893389751405973327474270799334316742461899958240543358378300899095902023306468543402507531194674619061915089702633008641873334397033519936173011884432354260425036567236998800564147578293025755424364963720355794879329014675682638288559979808137646191545742620669812661171894511068732511671238644317646139292771958163095550729934097295893910241968158729779288851440907346891207073689634335506281771290787166284199688430315087849116460855694182099027836152088968374750676125465147851857646601971585987778001034496564360461184173441276044929979324268709218934528947561955175038840680223901470123892076089026468740627259316752438534692666450605060199246235501272897043033272863123000138349662007686041744616471697901621847923159630441332459847416804827756184303983106649424560573347282343144882698375922064552044164237649505095659031888501851520795805317414861870351193227072683613824395761616286307970865902792656940780060803965006299752149778117896356211008820882003295867899965165054229876808310284246449590771999932551026906726248841968130456632038520480991095565328089122226288524115420488064910303408639207968606654807239369362101048289902150302262567574073134868983905837366869920981077679521573582602067340551342085241436138471616439822223674211245975744853632961247109684994709434972667789972423918879250015688659517789903374765219353275134587689556303087664122035776086217231377946931197594753541918820139850959808702728790865175041780357040974465685244455201012904464223148446410192084595915916569422814769726014221999709572639797591019342081983122235400399108820839934910565961505337808150781441287024706857834804440127664670206801970279267500968031197773355813956879442855985700825480708650100065776527175458056750678087616947359872064112851659458313613377562564210690673399866989286271759510247335299349943271136461038672686619100437830928806383168481333727597636609756176803004308416037296775068175701383886310246971756405842844753247174679084983319540331933088390959581312027297840906418747124192414372164378838081245301691677841932766058295975519702478237804137430707604117309817681176576261536652753174155611824719380057054230830166186773100031825894985667115648175903555117865509876782179961715833437649398105195768063908692176320088530078369939031657344111226869788771457410331703500338766874639160584895939227936680390105344637857325792415046497820158740269824614294622209814405798660229996727632549881089432232744421394522534909989939384989072787101237745679601128633122189435149095105952451014321389905774137658357747424742224759109951753581201169560198065167268283185839103975852342512608239074389139375652861517544904437569273539133338570201745780593820887828023516246972007737422089557606899908151299311629425432438161422667612357229623066827267042342782352842158561222288572948507968731197262790254340736228744208550111866374799587886534792504497988375985648529234069423472890960424666175767721106122378804073708539594446353423307550354850057643135412940466759745211300354243588006031905453550807927177064928961957526237862702315061301882483481170796758289754600107676660163996978212356457244577908926227806164630466503762627810422525112106298101768335903423265186832481963786612851189585702952614030381045866605516480392114051679455836811425190070498569709261603681231132375032517449605726735966993327466729346989482460625447825817983306129724833016185388366984011002712218412600845722642496049240299834695675846742986195178049547068689369801390926940977979770790361654421756080502983846782468538675973790978840488392292779856542329306144164613768853002473996132977841794342115849180942281807961403148281737648205679100169181379929903538893242341300232086541637785748321451524482784123860702088133743304387181489794292830531017255026216716299523081088944485664741798884833202573657251584991023311289722579652313553957877064346042339755922361730674923252563959708857567418657415449373414308800237451037050962904417200221793961776414642614165344472347707945799648951970865677296929480947729238311886708834567342604440979671939950169865161971116786449573048393976132032887059595070461380939615085357463894948804596879003604765082209952620669845185652090905013637072603892360290163978831239757275354498471464860981987052191247958856760778988506536178402332462649592004617991298858657906251810256614735915728226192410737005238478334264917464043992435727878708071990817973345245059306770459613014318422632096054430587289182953308393536796238275123826738628423243710959152686500468091260455239028189848354390386136423962470771904956904386761116975881532028699274093134949361617838799983466961044286230623982975030360650725133442300894976661236780597963351558732681913488679841456559884562405853585861395799550584627233579679735750001301666960761449924131317117430971211422127434873788138613941090180650953207946185303839947249890388868117552442214670693254963326645217928593654988975477526976729420519089596219940692156523021934237674216094674539556067879821086985953558491535302589875551671624289616886830187631703857352142020833628033634990830927248898465064258450345345329969609025817097569693561221904061652047241876590256627653572854124426607434988797732483656678657648478181077018618391933303990848196681724081390990363135650412464298431381876953382383754753332665227191010210556293328216032025192276722279585643736961556997486678900824795511148674893595018015219219156337051106899305334737988149160557850777809759305160572877647984831329284281867939532699641540325002333672915144684907095369505503170276909884692685375745882016307285551966173702836841978049454894917347543949667521964316274919541272313406204349333259978625721798786877770008735436280409525098840355020534031552805448460963012671690811142662775753797001115746473724223311793136594222999654745242417674249489223987994143497002208196333249688852463876961594366000408369716659312304407572400393202231812404030343790674196640427437751676026786721607184601864681364966901997106231756439591585626663772759738997096797744108765670235185673670871459593168410616144793566017346598921007439139234162823774930290424078919591262626626241186936543259677649782294704327071962766012410560831236157329702382360292335888567596490922248590248472830977234951468706895487436898050843378772427663929670562201963530090876382898461762178139803923430969835204850456489953638710608236977723867163895243863683541663867585215024891479658297391567814002826414214480905877918204471876683366851732777129639189345608784265806848369257621963802995117158641117299869956739712643068680196381407052415236948048158397572660156563071075625424541924928987024863484757137871278056210303700019161982138680883133568780019446461029466331714609698994924703903260375234868401257902070658465946554307363668778624145109360230367324361435137441683984859397604563813598424719949132453861559771037639546777671584118815808777481980213973479498161154466012308489210024172675387845108378610833423848630897537475240260633713640016005547965301083184406729455544062339558899404950835344666313882746569261261300628705643448953066121053999906790876755753670467321260889386458246405739942357624063103826934769179414952572766383009376690666948448471691905558309602512355273946508479942543629356946702240376432013397161707847860201895691700672435869944701143820584417561626581547693254419603499605687282658167778599602899487513188312228030663910804656303006593707995592983667661547037986196227485627022648848319005974089054879378371373406602398077148822874128183889407523148277130191775339067068102262258547965336479647429991483019786305038685117157401428842632906931853345807059182335362344748994416191129284230330151247201322019884969050924954091421984795319536270796991512160745406833848371754205833697723169798845261902749480963084708830908465773030258208237280752998602157154528752506457773931345477459650065243049477952226086635119421787525396743835795021695873192379957624782574711003228684603325738898652778783412245883264166399321306005332061719305089529348668999589904138429164537868822496191471754652968186182697743441872834580063409185036062801906261458529742167247270043959950343978739280310989336702166570918421351955413183772303495359755756763051829793142253137586746058174884394362337862687725456776138079120593994383529796636138812520575269307229093717164946506671685338676396249871353597732395490648024621525156585995047771179039558225958149431815527990464895099497487545393959227576927982842990992980193850993082322569506032849332950086910229467394386488807621804254102761030678024481330034425894017717304798979102434250996004217711485432593499603946100891912622612459668342057362645666774453672291540989431229276434939465788258429312355365121105927990286294192155159918003434401974609504349078772875597209900072205097632752475272044561807933429246614973104677944112780005243854658087552045202761830238754842715704639825450326162100376122135743314757035864602245142961713139503116679065384246737852804181758658009658695365243033170874496705291443396044074092898053791970824694948330941340840125369644204865290169522141852145131641459589425006143006075945934829107019036069333903632089666337439795330601595604437497083763590707390848590670410289038442535362232035969513704470294260147653695209435479258551089100105671592091175191350776297142366863786949280336780110854638631387256277825515372107821316303354836448633249417816376604425743107888631481237448037168090076658817413979757121439880782661325087625825456618686279229360295464796428146424737367176259216414003517316658148437209847658508231188745946625590120005507664478554576641096212531280822959086791567953708045107293546887712212643636089019150453487919672215062566879196750163093136852784149236885556828433597706585338193608830612151261418408635980704599913111451512922942905671562824658793592801546663051901203834326489767383863886366525008705357895821643064176693863954048400384226316250029794374707943514223829983034105214777974677919725879080494075942370570450178506078570547907669415901785885774466564006450109043968653412692415148154723976094696581909736049435630717662387954030386745983089826059966326672013601208460751141412827026756869978468091871639094520997044731691995149181112411127718080629920933896681670127968015700699293895305475786344255650384405362160019675656840431591619416778482457623782310213294330506587714171407317857467101436168451343191414189635361415991030255644994599672318156020257656739515104957388812236872944039019799644088103808338826984324022361934470339877864810086421957572279063630674046909583610008633294659159717064783488891860170761819194974558925368935848667682963427775687724067138908661873954432610220760834524034671204574189214894287905109911607435394995409383644479913393516480183973562371613350303495497986235483910488003615279746099671154979823076960864454062000908203704877567605765632520701202041698203033617724024409057908878736416659447712586483639002331204472678595628276702791828188042697302230652589376254981687778078374152364468551688063245336953322182706613613657213949766051903235034752859585629121313973422591863094526627319060577483600291793832532619007243449076656745001938957695467287898493203954843977342206548690281712615118149665970236572499609310038384499944189438850048570459722200304649969966115334032464658890849745972939213650791169049595096945956830424415974081906998571308596200623231906751276872603295002920674863116905244652007856675836476505044479720562996733150657539375979035259753177680409216757778345108124761099125445807559742594560913916556004017499514489815089355437303158865534425628076123467754418013494501829012003206099705080097524154492508793905973364353921619506918944693035839824490342503276005797726588814644008848524307173201894036562431575340263804250922385453302063826018860511902730368904772617855714494214359730170524422242999869806262539784158161736442860381398127441366004547251625294467215032288047264939004940332685896223566626463723288656028709182627557658397757079358548051667169257274912735011472051603778826004450158511042427653834309325428218124769308918511473332918142498455657091799732682149190342812723859004901830294292329328882110857464074321251011647711941292250819197184198336917738786871999076731401729986924996871576394520501250478694983640816832825458035526336423688056538781815654567373826696676565274621180247853518678476390666513543058747835245989425715040360859935395057954312854655803985953787085014229241750232916896334408217549887850028684046492072688986297483775228368777325466814553988389580338265891723239488215956321090876230510397312357521169938423747517517308733922378759356914398527325868656246370813171829146503704122949000302516920614153383996700661055287279589947481050861331613620008276753768730382417095231668265911753445283029347250540019939630875778701376330401213103368286093880547262869991781031094765090258030901975728818079209671521254061648891711032819498343356019258047145080573794758328727215826429119901986346080070349479945798216684454553939295762853681121093801356270122031451394362045887643268836989575336145580312556820929601671025513307819290181148338362935698422768700011030643007380971668217322242902020399329260342651352556756444727208908801093462131723889984405946120641246032358483399758404040061295731336015597901457058809740610730901196832570317940668768050364003722579691064369079942799630579975625318131851655704879723251990035388722953715577453912938592850105626766108712471483384496175543411965600938273109390294021215545850931053655619435651211269415791040623599797254204923118331543661150097360332965309189467164021500414691847940876614124980545201969829965598791425292723972586993879353197980762296194109671594448264860241251186261647034484143848192238750164379957910420471351893126656881174057940405897861760695137114650848409518059523455920794764339393265863426317125908504946073506575932851548296009714114809842722066895598636392945080385787379333653752402567387065250734057834550682757644064206828615979160905208920703294483478774740376674775224264610299923555540046039500947219838607139464556618523794255415436475896158647649642662102270430422375594787595493589671154856570727564026190091679859639658508472822907538815366973908757536406805567120350629248274696443889444678257961660833392192212377589542404330537528874502559834638601966326294725271648391603896926297260375395014855940019404354645460844651326716061638246739800768483403014925634871999025121490250041729421953618439424319605249154397686577103614287343465391308440127605497490848104161661850969160968911093168134561603317564051715972153264257083894402983676070928077396536667045990897544702262439807855572207177155147941482746398555698562365020838418624188545811774404830498367792138996421481720534841199167743766927658072898535153871459343435902548380448844410933730655449192503193976020974877323277793495565875896564404083504681958581649447284409617712680938559225389784652331301503094294743147257751291982198114380043527000855893175200142746050090188835089498931468911622802920070974693300461648731792515292118758018571808676796344893150404523178670935105045215078414104647555972112106012983100295232746892781400597464954692530249311674044163130957723142422972386211341318849586269777765579090294055812041000278772465567721288754479124910991185076468533711287636335707688134003279332834628206401273539773744433099414048081318927521618640994401297566433814278509837209513493660230476674918638831511278061525216827104119064293665190722214869580380276057898621624384822181697287623770968453377398339319008299224807777159897364037864989565209555138869292675917358351177643790261920272611530085323459429822661746900964204744788276552695137782848386537669568770891670056009179826094161878662964382504336440273736584423524025857885241826175942681300207674878896160928645270069016661705725216772247855517270742167914576582823330079098997190313770117185907906915698155671375282682707938673329743667390008066698757322975088442739333422474777211669058748285011891874368360970353722950454684648693220429098210511749177550818589364062097234930172709402694363375427320699046036102365182580228306114916378818810210216248694740872630212192209967269749226109017726319786610902067986277227767303693881955793360285502185409864068106689990920989798933993380949879079651931094636940651672978186150712617469371392229359864730787296651005094755281770279462808162263720221351679110123207526506119060551304778090157315687632148344617354269134947276656738063158611320675203382733486024473626291145639981735358612853699206696799549441321424353484076178647777057888057199042841446388289149931488581377791757903364451590795616069533077255336421768521215764079810895816792209316355053607574530290542647727252685087315803746519736452523282368671251507383958065121397738873827467993725954637131696243460463696508887419466669440114726146249338653320443973849066447959834343292327553157220769736255050343326134661296199992196590633906455354263961566028833762589425695397529218560482911647821092325209725897181255547034124778699590846925006271699463481181806609630483523494314191572097612107840998375962426328794037841652291588110052396281851464897878132260746398725923961970266282966690625790577390273985843387069817432883903322973228105629000029418270656981639760972083576866764649806890789568231523700072518316359156496444606474800146657283405200624932869329640664101884167637090750736611575805834787688691481288896877823573847804465345287894247961057384490194567809153103320575177389544017356749160106161283417644161757976126250000371227102152780582790944712559198203178722979261347186288986721297187812010657767382475362232168098681580752955473200448924941466523988379388535539233516242823302141133389691985051921465097286195681793180883288090684669148184129938788286527621997411971751581591959093939730549303490985674946408930935344285465431453177580475366174332512114045823023222455878502315696079226655604975047093006302273179629553526736624513533739704181821226495631794755747586940525008026090069310005358263927684540030302959659300077638681959681362319229480704542567557632160626715910688979062285903571940120807481026342061917023695303272464983370715395139649917658720446567840572421224041120187474945045065868534041495545036673083490350554713130593753742816855141976496350695884185788479482081754666351256297293131476148506825238070972480997781071799635526839288851401623775843919039493697089363219778182952205422730667930242440607722177772144437120967095244026365232138956483356644100581572554240465988286955033010975047538097477835682577316328487235458271150129085106772448015596028075254469554781898520236092172865081352466506230676866904016409707436475333608649107631311659359406332773865750280281890586101850368365550457677143554325098193059931633729874785700161119020741992488917264564338043892209104757943275117190398081587824698293075512451880561296717007101661541522804077463521938052021698992659529278663402245261816103797605090004205788735411476959110246153138425515873797623131307503391149483474333876522523563417052220230871609385715520412857894346073635360575640346752623211173770987521072827192856958555110015865212973722103086676455958635813431485341191686646651360418751688406748862629282614753978555882056045461936919910420216042270407509123158603305158567781592966655726066688066989319878216740055951891955164269859050652205184480361572128786305483987771320435818005073881412480083746309730956668080638246759424434196275328242179909026271872509258810454176658335114957114069362430030185757133127860496780264336720009823402480577931763943346939591283101312858716301197931288294018677666487490965476212550998191426041593362538827510167821873683651323212516669396641870910950301031769528324137760144825537112078590077708393204849729607265478880616018101314919023347318413031658681305346520150650306278421533247076937878687759798287941746803619280023168421138583401900718239543926110957181468856582812790152870372556209840467006770098506208452456875382902691274921399158564556061031226366643403074933064884940952685020100240068038366328861977029373683503085629481285256073036861592877472367208270903811027302478984806471279797448246151751071738639443983540929554144047812011250852819009916299087142539568911326384511227431774095982959837241059949986652239294858599968106513689389060878134089461671699293014914211081806076600834421021345154423172607986568568286250330189558253972098396251025751697293004429050768144244528896175623698236443161432124753556947277636596113623831897369591511783909915727236036353852748194040175262717792821123720111911864147660977246584616709818159608061627224441539661401683939447008109527514921099796134569183162756746549156466253723898391695912321028021801915500677889538664931119308234626544570985112589519322364243382204456790876625177407362227743125118895217407390042267164378996883772931671459707079600694808353880926348515658315316251056882250872526570567284940376131844728547875417878010992162697065321861493863939519497616885799875276160058214544040969881897642260829565394201074745680839216492390569505687090600820300362090709087604915557929188843195720523238511258926227856301807350727165291379172229302929731144328344464079178401314806034390821197713181926686915435291076614796117671760076102214000828512163486642805617109268627139883219142883984410424992414571484488593325024537496017118919743709509983857902276584366683852450756776481964017498711421244081314686336621667976398666588532360041906893682250773003500651724572273069465420346803143291614816832358543418295757065824030540009012246052172155184369862004482502060969450110414373102332116885029991083326750410992848841898262057139193267154973597081042059447378301819416342134055984037256374411032667076639063772787117263324152256632286096385526101972674361545489615258915533643241319921171196041312842787809439873781552966675398174601713334513395991784070193008410401648985865675517547857552657335612940702350215844236628758302478683203619808842020469992258367012515874063865984232347866624771232076784304148904863882041797603103067053068541874287606507543915195752217146135131538192546282473149004366771128114636222528099019821602343388612500662755267323290754416309312752432430571085120867079445038878776008988172789780802738734106371176991489513605184245755958558485982833934521376736025378761788108987295156700445561598652824825285899148065805296095629091747636594123011115827383309388658099604396367173033630562957133816878224050741778206896375666895475178049081250513053063227935461357608601235444671782356687912799856960801316192654421631271374882108709478715764014354198049210603061713051326231066609074603392253022603403828750746708687390674883088953097133478025538990978314775866546170642327088426341887769349581137177405673775107037994944487660181336288180105313262787408554268329054541848214504475173071318001331553071300878575296894045684713562540085000046901803773281257887811647349720030787406253163741247498323518613853437058651173868290332264001132945732261778780674483601841175789861523289711800097940650234014841500515093191864409342041947268132582185812331829576347168489910858483916896995127379740497720655665073895363757292651753030581228635492941003833966718886616326103510496790048502926927126658742368407695549623031221705098239872814880937304713115029951288182049598413273836957168191733495716440616853682037350202954023857303116800328373862294225400373752279145322239033428671385411472258587284312931885922321857318222894054136449968607488874212172112311156237348682916242646181837138002062040314751712413944693110174662894382026603350975494784122302454818399449079066257111777894190824130198614919703516140644880932571223501506198015092717212124277642894980662040208729768637183566599940651144743137197253358455150083269668738673144498134611562108835397887866898883872955595862738310548573422546297697335090007692689348627515981210551094383615479999678917671647228306820190025408127385053744805659993269836902802034247850242975517424782203123716935711734634892690987489214822437864208934906389260101629596778031872373332739523892199936350290009088540414014886289565173447292941688719631627008605045734691386881549468306475290163781010021165068757485619439490989793129955443870613663621862669935501262537940516886507016923344820767510334477646201011416538239501134432299729466158691138042496642872174783772770539955461270159220312422389831426725764699239280934870289301575440197006743197778299024562272954579020704194007259717902296979243117700300535644171827225155321856149543168760542982070062194022854146027386488437983087529512263664060293636327843335634456455847531298272689841224709115401464368066399041289036236393812633546058315883560208654643269018385376223321873790002928641686514799298527534296022350044435007568599744652852496907907930324119653692117216272250617664771859378662678284479735238785796828703601650327459688161760129647907107909263142262516557210902408123541299116154779054904817764121243296682885126062444709581658090101779081410775905210887002010488646845443081127527749999846480636395345104800930928187227798524435357966317707822566276944928930824830747594175510331753681002755260839283225373405046740618775290118742477535291387631804789985564898563137461716029371825632006958280494820479159975125918575937495519804255667420700877536009463631496504309022314126124517814573241772319419215255966522499929440148207710302578860113660065579695413406439452039047046230215622561978678335696182221131454765719038262032044046582778467738523043872975885042440074340745476942331207597225418855995985852950642785786938897957424970135481729455940308406683557763388741302173452406428277647479679843719331371848531128912137175200880712330065285734173803167277887886038466014619665273729362465724153560241647588622530717493930336703012664602799519072403703342018566024439033739036975897701324674637344208521320594569618773649166424419130719374180065951872788195053847007698951159691595948210226500879950242068463748772600793726588405654951784285543165013193187592659145465281314741664141696742057511487429357443088640167629127970192732646775061639566172996886976530198642213468935280011877940137394874197412210158052912500025984653246350406512727974227080546812792323339843492138285148682548693444059053716636021403223762080149917284552127545434015749828106555044134215602931397976645886572219701357795853799194958929767785676204458505108595630778951371621672914603529723868084762447265720619016244959886302498102392745014197405135150687310774909180488666403116825830668611474186624108381998553660532167344201408465907633400125776371738025501507323790888431825736764348424774793339000220078001965252812873789865867992202116444283048053237783294182345447142481336591947576405908213466049334918832264292527156829051490025994263853433620538630466291979621867413222308977298320351228930078069925905598562219707795254414346153775145732889525605643430156808997047382962527480684392573687699569510377819343004136676646121695502966449035951154325281899466868969620995976357221378836781410247539597286152404946776063522582813809847540727826096905041497756262772410614373456944505183540972398711359130342837838341841230424040467044674140312859539482211014729333175546367706906502002035544287479556425325629975256834090380768139924417011620580914508937203239288976297084649625705549270693729490159938354042551375195197436445507934053030936278271832243363883496609793628894964731027325878229274575201913298607496383742490190139132310684593061207816475021061882249347495065470987579093991427385122136125004719601305312015621322223720328716538723596051134835175505418581845997156892265388476685500547157375485446887191855807783691423262704693157678254548479680559330944159994797785792514336614980790908532268149684483535447030482477951711033175651033601741050558353622035743564419460759291063065872110656343857807131478742007355430733357131944244525832171857309150405469962736279582336455413352835461702115186832561977851820024778387869967662429079396381171706667758556340698484676684286111809084327739964045132915683942694825576393607577855347219627861421230808911751725009075739524345346462839899030566014658868740755145603188119617961129404288220142410645138283104458068116827904158032980574481803959453825560010945407180686890849772895211818351100570917995423898508741840974259097771399717138175047419414002143482989493792428148560561684469141751731369897017849191438757862287196191259497269508715685218808209767882464912982299239979154416589139519748393343919032834731231948211977794961409239815111480312624354859494090372719918143614139964087564234269539690749511373838437370399612338251384585077650666714003818619702142581347229409324998343362090918348510196460916868941837241078538476864882720311367516636113065992693907439641243902184066068456091505827843428439922494048677310817376714899889426362915952206604926243898600689949023187451739720884052787788680044805268978966426448495633568707999917737520469380982372846861448608959857277714949130510835850249008457060266785666407359377216199692486578667826093482094165959676366764246774999958686854515286438402732336954390878050909627675603775274716473244801930321968017109582567609722884835825764516267753352271453048868717322753357608203432077948547551614385895067921889925424214648728934735523502438882852226699763128171100796587995030253641378308508168957387803118102636108407980016532553898399087586500143356971705607345118250069170077732762285933135855318487287118925785773471001929065534340532651635425309593041077373819143666397836883749053461052852047663574471776529699295100866566008012038750673321495127880970411917373411459217763919572584306294252220138525887649652225124269223159642498229222576957804615391314194153965508995874106991052778562959482060391352087301103626128311490201823787113699775769855045278765819738179758772155810475728541597204523457813218813086262657180717394375789024436808070526181570795583337916623196507091778640057307359158668868442676458079030677592022447534738299690795565566562237233697427214416368046921731400906735110011061718459431677635613200779636312757408833310787969305260875940292363707737039396731931818743174263468417617888485334810351444126723227255611911772196516565307183670147806911475490407574006292298681546841402367949520313140485121700172695957462377355365480165968408793073198304368263275118374924695289806620498048864631263935343495084676501477977653131909876762932665386305273349667618820127316923019520810212443791753503778055514948406231248567265846511904459998401843190508996025274051069487740123134134057973814924203905610440230671755031116913271079936523897804333607870728992878898594291500532483138741424656059058828893070387733699045990991621259867718055730479673145397778308378599737382202417091570527707113247957877396784153320760734664075190804030208578668633777011585397544861064874766421597270730348540621310101571431141299977969595255128374253053218041141028784284801138579314740133341354920243448284870958985255518617572619363830327063078788233400887925938435708315886944620562941067970095188777773778634784515016557559857834931628185996754447306873875548812078106785175519193666610291460076090452721149733310724962045978082479231282965250194814935459374203124260550458756870867786019536173979220244739764618449806684547467164411315364113070395829359343690656410801849194753733119592509735871154994083980082706987123203741128201087940656145458464722285938638528031184532310139823053921715329186391713076465924051798943043048761152271005337000290657100953843897161805688114025441333798063439439104709106262120345325118042547367813828883614479545701314168136638824569918523178659415529718555564609341398167736177577241937433024485044832846585450658948068962728948680785350381827293164761491282112813487190967391807160583922337776377213775332150199423736568312616626348885459443667375245435561330559847350132083678888640358231684525503706765584238124732295700609579037571143905678469656838430979170101193347445047036252247818647493242770926254063956600806844735120635732919800640190456506054122972764393122256581340395931771601484146641526717002232807329307380328047950910556280352669682863483646612896545859021266146461069275288874846598296104693666340331239794622679025289321670504521954880453211933449436473602998623061481944644447036067266044953646356947497215601059191352222068023895195737520105963447541626532477290399059391275504625920856250674268663497430834943407377533573578104103195252965655488498538434594211409069275610150046087071679267629514919782109865220315308681568973581462538073127272193368121144368388259654715716587125064609334993412091299302107723921130920843150784492287091774377845600254069619750392695650958107499212732252867542605740520656176448787054491317098358367114981092336953859201296702323235660683418862315972814764397773570653908396936779378840655183132712159218979192264114583616902217036127047423161593855149539977847854903553443713359339917016847799655686297178501884854617975993389704086377746780322971245440207406328952894826172673576603324794288482229078945676591532178679021572593722302290946821447425695078645828723756228849996722422996029991142679603332610384877164613146476987176230163759372024548245357863479915271950747734915219680944420891968186342930706378932883841181493454242060919334883671250800981340027153774647749680376930928671107727162415596199634831183850188341527064478723714255578338732539946933194911196132675636724231201057866940771395881337867753498907735481620105510052240625762999969062233020398281701044805018259869484619038452175051999839263655734381586309837499840385364070301308603039873847674012376274025479229951941707502072913036710455139982938490831711547646992028103675470675061226274886368576825206405717387366905801392993115034019463237778649376873868262432435433083446295991650758197392514896722117042747471797765725430689020991288633171808897525254013039714222552009369628204670087049161528380470551513027467705430941957995576871886003179896864003499364817845772906611734489337422439002758352501428123887803320416451752708654006533174758815781248339626740451631742092282173696452953796596023369462591597595117005724548459194878421001905291561084054291106498160397932614386017706790543945039525623949609101149289636124094519764789304845365178087455254265228097241960057842052398242261515851339876360831279073468074072304691617529397561631289081888647324643563067049637906111622367765376712225352523749854939524522534652412937862360227534416676814872038790812610633238773706627284608306297682826773435716084681025416683723702330510928862996823662064164586408451246852393828888782642688784215426469595360329162992922513317949140736775871376824493765933467288288595091307183783553556148595298656572615484235032966583046840756894722192448272381273934379729336649510326088630919583271429863097385777616918387743886747561271556637454337279025851320421462330511483771357890486997745634255645896553633150500978503154849720353238703979652234395162281381902657527891080306137553862401013655962883702163287829274734773115682324474257663259204757382024661427948513901075829211832179670181757106582324780684730233897941478232764260461795663980038381606434432909017308437230989848847956731189688952580537629129547687549664584461105703977190792125006137557164950500560892605543818355393581433413159774828972742557311923116362964570177969601336139800538801746408232368828632305644412814659786828497346586793811707245095563619456174811979718240872786261736372745791443608498334742417905511138117909888509241438326142314907969951022425282081432008769604998740504640175486243400560698849104976676940614341564383889005715196233876276799398848366323424473098126473495476149333409893695578819010893944294871356670285309471102411171771802398703270204016067307196484060101754835053905663038427221891491516956001305361578085746777878312975913210063143079289188741331270870795501942808560743703717232422987826251441698695303902591419628140458760545215352281635230561961373053448548271488199053893417530443873142736290979562844240633988401560964738589685778741100315853381021041477553745328164755044319685838886506689363211788702016807348600968968646613703124645569273301544358826173710713496920543507427841413010022122757746636644791187416033198771426857488494315131587322925533199943356139751113101926529553625853168560345781032946766856235671144999730219581218328032548688179425143097443291099254355590533919362103569799424703674033609058787878509972261932489717447722301845705165494680941140487268704327025396830634283955694973601531949958752169917468590074216465449543192606292478589775917185812042696028607788714027838384062696146028432650389788142473013599245330394973659873088404630711494536518139593968278489559698416750765153801418476589296154892090544916896575907195296955052660817751220743027905387928275483254934849058435602069063845273728781047159855411200045982107252483240098661626336526729297277145819469907042789802264094040980181397915076656314809371420578952996013322437748943731022644450342334647002192089467090032653656734206593713859846943003539708214367647775175098854947344328299332013735650800139113174608830608439171354597094793336302562830867117405116938233969172562753311118740515401899340123532915003964080568721883889011342788154627251547338446050543123125678106661003190836086353644055601514217366423931843582718984761033843605215071388768047324391343090950857744465841480943103745020881060356476140477939300417684695163573489345213326105096216229063492916840547333153776140888152222648674763558780661154404945826209613536976730715072141742848901575789698928463507260314659957274523578433935417609435145799469980600392599605341223917288965667152978654884857176768558544198958430391685631983544237454897398688181844850321504225690321566050454276780377898476917736593164786197824012988929968387822527111845809808751813175569211147012704419422339815466901775965629759694777174856458094964795214956723312672398365591058391077950931734041946122193963117067479577968961820239293081649162400689767119092873183855303380774674716667761449334291366580788214601339969440554109930658615919262026951016678091604192243408029485406945403106406309742611400633885037210698248402581494292039131728739410437617470102069958095018628153731898012747549702694428527812380013271819148184437426508989401957331581394303166992495787964690807360914208118073030683866179976902299384690335848052943140748875090553313891295517669668017300824962528463091299827550561792083582413454870453345341197151367320978252542167735574015422323883252283971423203815865596998535166435236879221781521990693227917788885418192931967666015426882345361048995923125682079869181530062703589284588163166929355144007980986085935399358244843900912301676348088606077752976944032493606162667380006446535729108770435934822075910127439091906546283407566222896097084269634668555880511372645055892224453998389225494728118869197028788130552396026657342976235080879001606998720016710673272057421074568432098952406580364355314027483243987795326811531532228983060287851555523301524564579979212514884533433983048359038774065790385726395637355857006689622073347336862138060857324600819184880298369193144748530154454969344197605263540867588070254768722690207431297915747102415732431612359904848370681732154419125602409995367750112231166180277181030584704672323511252603351599325727523387341501817279619865964680844334405896283224665206841341266291993102102157946500926403538811054520824104592615151429134251099977290337652945814543949183257783784643403087056117694325917185944410674559405877246770411564027489178355778388142011752556924599796535659988845370521256225958967194259727216215469222159852006727810566808264317017560352207722404627415669393736239214548436395247226020920110694223829337485447380282519737168914471578193797121255369616712973916928670885044226532562375505142761031783521872190532233902550858480446011369832173721940278681095123093139244508925272002819204017537934373195711656477398220645322863286430889013809465306076182265408379854929234335312645609847032301512943190193707326874729855233743892956963356351139079959879465433957009928695798363428639621070959544966180529014316323886041831861745377740318686040322943941062622322947061005056137921486048922497634467384675819702317025995530094757197803267357421052690408123004525144027679306316392047312607595460130122023744907729885740096665121959667409984204892335073667019651641776629367814739844794766117280524769850918666012371706953139135750274252914837009801021808542616552728219447964179488298457403169520710784880624893818960499440432275415152576439293777259245048254218745689365828505869420885034189350695145442714809823694986804550483824037986642028888747070327253874585393357602634316742188969965071772312012088504975414644693528493410710284569054667582858062541357229056517432597353686207261866033807471519068016506661818221676490000403767778550358013449319335159654891598551422248518796855575085399331716852263792727822191658639607894873250914873380034604356661298827498033349008581922166807392567410333916358262153315993642421549196307855925684231310259770922829940984230533783856985556150272292346398866505561129474801005252029160474425286749104522404783053561300838020247816046921352149497913573248610045481095590935598861522061586707204904569755379047299255944125495678410138880313710871977806530112034524860504180372200614759151924581570091821430453202272289610274318549956424235865567680672536413937370358321998295396716639765418979320032070219624588441261933431454025545040238608552724410525078282868587809632573439683613307678712659032089138715925678553406722834085498992650748875198210652699481191341410153863636521592907264569271136152603688219569180824707511664901162961850068570147318448329595288103452261167322531109028562325997739694411015918973220274733963467867290862579672777140171298038428474856706132700753394283220010161946776001648756521356655471269263212726381410666089104972298208866543149898793556978338567977498192738347635085653878915414750144340843306330438269462002365097142423405751646248080539096458296893265704855595346861421913098532483868024579619770757239734444798829726607490949233105202087835846327177430547093204207031283722656151362755100699972795236323330279640745143623343280812296130299396993392335912598002971452169888905499522575886093760903583967750404442523258095240445039137390069584209930068824330532630944488811474918740125020060205307501243633806489305023401941375852873169043247225789954620684593410845957630402549331499607486509338567641738719004311766702270028624766837090971985613468290170676048495040164462072034640552941537882042418959475363349855038030865370974465583864537409761094681237123371505323111019081516347554120699016159921119496832756777848344137972942917166861051625650433633353864897034972438936113047470370895717570802165807714552867480412582734017854667597463359599645877920154969253376155708267643264182064184392146482537750552897309267902696543945288275819518915174258367790259856630967667588832298424237193890408017052369684977165991105179833090279266797684482171798163106313454645393807815184823714605300436122191840474133225482180610757162360720055156174287792573870776654009817610370962233573639219901860683157886371619323557149148788952724461829970963640284882385633740713671767286232305201371770569664892246853218971956776336477516928248197612469022575974735236141746911497681395021719540601578951356811900193079547139604935594832973315271053658065853167260616211390942353350916001411305315814976094314665585287419850200955585022121739185711774721071149788577112675171317842527349987182802109438930290948502573029936079124549986038519059034850235722839069415810260809778142228120268316201147193413207027502052031548970845433726434035130934090256160821337408052903704777602566756107564787341059137488900408758977463143037513404543752408083082539184044666981708572659941294024159878492333019707980066225383070076120155103973659505934647947016246821063639851428950257602436469853962510900414798071781990867142147722764685479866968190330944296624833672307003932119475072046796249119191008225301135370314930056175726973262321352559425974565076996613265471937386764704635122082476197996379492053012492058158755510235902409569118970237458328208325918532461744952568268926070239245711536379384206461717802627396952908416955827948642888731007872741447981601777009718881872376362925133574638326217762078196762440408665751966075569149005825989320670018870680967378001231036539167562661639030968195435110838553632738404799538948845848863485137899128929301221064675176509121248914178446551700337183406940791418571084550400857465171069111101542139653603117469820725361887070194395688709853295131062967975970812652101358354345204916449200476092995244141145006604915740735139713846577938017723440747817884965324425594726184389784158068507695952021583215920985256340307358460207607290945045296029478243682451045473607453598469109112108580000685734321039919862377052699224251133425928125989635045439265817093875216284160060401322162137205514128169032478139375917725654375576059084660470411195244793020811872830870343411541653867978000358973525166857707227394581485798494198775400585686397247117024768314494670362061239024154711396007999564821775758625329984197072465175051233178812457532316935971572662609299767264885616184133344640024087001781954024809609538825522433241418474667120759535506706338900059115731430977722577326455741023558470051429904450582260380497940310029572327385867069755346768254374528674697009128763075775995955444829396689832189717745753526305660840023651573931929268669788825049986846302319659463917846609200410893882111217214729603510760697650563909016991547091540328977190223371068333540816064569409812790100185549224063796962019377751278961507298924298843961904390955893372576561761943168936792411637462370800010923927753523937583628218375151897639466874466787890372057644807446815281263059354012672023050123551794906838318487478532432459803993199508153487426857838430113099534911769955989170923061902855988277428945108094600800886036906884962291469812805066907834431473252869162498507960044656138667352745009067855146161646921839300353967571982606625759320883025152171604193697706189416515296206387447387906262603468323533457199326502167254911765671472885186544026847535198187170327070087847448801141899186415947099605153988237533164866373451904630578522742062704337058038713690344592378069807153179561325857279558433834489583547072701367933974152742332410314955758093690045692309662476445789862820543485796735990652478906448865061078712274683649371292729742939172680667226436697392208174023860757405140608797375614099449606620316484655635627503090694370501044040798918670405893189518914219310654842438249057630829455421124808583141226762032278070829662485321794498138514636260311218975034961679301694075380114813185339222655042512846448537434427862718185596194464035803467964197609495163015150960031932511244289842323557467545544338687344550348159818018422918612444125890700563862841718781899486138499519136809459919940279388762276877911570888666476432625896085378252145224829758709542747649082678598268788354638857651038212752335366185239165465500117422521283796879952362264881067917873168822340007183737955986615105534516303445962508957898243130659608945624361604742387790630819586293278266149361831601169083563168278992996148728707080155060320391586739371590713968366685970735070164124252074399682277399741547894892812065331920222528560237425343145959142181104367578282810916326275843364699144419213584307970513022714372890184757397721275212063741379531662871047484552585522469920869587824772021972469054403005979882750668489110290451568901302487077789109942505851943610814812969152759928244852430160074076642152458118280420814169488669938440170944590954849411061221817785277631824287363794612339810498541770834790910527479845577105657752348047234620170500074604948735627146099589849438433886843956830927259984930207025628157143255040805282272863481818341200125261470253665202793962219666556767679540152639733708822946163396775325449489622944406333520665028752392066685548228302784030982525806495321255859000753122531923227951913863967733254948739509664443234292689499355577464234735763205778244630977551409347366365401509554149907498854257337370225019026660147884394579551730039780515707830818622261619143002703346953437245667793819676993948471190079932711365427928061484938529387630059924585420191396209971211519913975147762068688688774494492064882063989221965955661657618402345339264436812406672343239781219270138200316787072869417248721291100614451069967247717014945547444437364348711335397368790999205134157571282437516343011361017064772510155182377872151357255927793822919991732269755022988108575277467581826560122563873736239393210004946551700992231638370317223152493849836907146977432660901035470616730545404955464515277408267957956708896374637020614488375056068488596966101777012659356423497399389471801193701504768434310366414205593208376729918168587380626285717581612744596359929018659988568453276532887423648928925181134791385674685441575932464891523934058598659834872469176915867465250639428179810333200437452597389753686120762178678583941077216369362555096083122064550444697742071761779569855736711228598346713997200651742500252864399644493463232169480708777244523374824180162085455982119048476312193379356279602348771719094795746338063216739124173951888135683405370238156036400386385301013290973376614389581521317748870091500475155199279104525649889798406925161623352321315885793221167062750948927779468207606623553233940174001040467129078211245190072437462850903923101408472796576744698810255153246491263888526519790122064357536191583363723578295391340348768002183665600237021419036723598183863060731436816822421656530554037727849634813640243043171936388189680205635249435770275135941542898238118387248243761205107767683297964877939102607891011022487968129670162100339331692514164882404118654991076675340582536161502814299604574793122138989833858980263618680050996408415446880203791099733604915637983250416785413267503664857716715188220926947543206084822187622841700010567478093348377240141957308884306393352858322187123668000493477510170662909946467113697020029337396636271458419163814578225158379050075739771103118406174883049406783893985601830225330590351591147678050264961924862767190660277528306977461316806469774500698132728371025824130343290386400395011272910575057999847372372877045777423878473578219970602681984589710234714968932753053613818204659447928900547695915722584995320711253847763163851158545113204205778723102688984873243819351273160625987642955663506500209661243308939174408304804309995866873867344043581269292675464344422436243713695707463388540455602486024748938013156951628725364433619162591841844616202027312458630972595216458398344683505326226411551968676396363240648267707552541770075342980552515169891539543330754554787162392219335275797624615677440315805719402511565565630318062719008889832338682475299542116815094081685811848905594791075329834683406978498778113761557533670024722460468890146746586701338915013840668471715947793472547977510706740348217629896438511451278454787431580645969594138619395701211248673773013563174590177618218485524903568868558369509945573370614693563411840519529361320849159554827852744539688895991211162431452824515351596277494002777112564434646085890091150511832137760163151295196343535264017761136754789274559786172961147828358177165488506987066959032142113447773844846474001745093588946440565543024180753619573548659646363658194778359527661492692196906440791065034380353076007867996897757741091697024174653976845092672729705234012300252790097836379917248702590973737550872902845996338011331141040968346342272192034801214263139920112170234561714914936113815466438221068495802456739908467255657459198188112231394695684343541980754038197850561295074199338454313515429804721119444041307548728294895841748770172399319479860547186560850739135581776935796505751499546758458187547537982753897950284087327920149839184708284189172191798600695867262135527191893823726268875895368471046623373971771732040252353319131974689254045204081757504603626346216941604651585481431162864095338412964399459087770200870690171215019258925496141270675196131804782922789671553065502048061084780117934902164548158872701684835369216091781793476931541434442464297998506529563335706869327155662153269995521256608910136527416636517492284528456463780349279914322529771437581018259416479076951944282159336406735677280337615100133733816100489909358012863490506920075612083213092598204455535986218957422970613830784058378387206417771115359257608495140495072750132451302716864860205323709238298272749349562669844972960631993082994057872926606934186317073379847333197182809345810663683740916307130040888845455144386734377128572125252919591072180712163487626500347317198161140233639160513275875679743760173308070697693088674525415495043832197550972331112923954957122314351377575013659053570334756827275385437003426985529540241060666065895210656341638441229479015284363334707263764119639745307149736890007533665317663862318208862933161343476349420893511015125586217595795215907056561649531018554026844396056317482919734347020266004968896303768958949463463222803344932111238847389543209574856931951902156473713193934655776691382074814173240377463351712763296541058463708814867001580948982682364281390470267264825402172648701967602544671945169473049600326275499376465614116004642910410858652348400578144991973698122587256618720852726905174837775535110052277518294662757333384471866221411462978203161787758444910254628564424031476525138549219965580929286493258481676001841080148278537950300386418718159256568440813108038780787419466268843640299936625464180477890408175688397612148202486738514277274456413017120389966812922106657167628876560533770814307355291402996548397324772896886179548568923206735720749202681261178595815490630384386014777559199409250849647173256639616449246685458497885559638656141177949962635811523604274645687741220105561884750409345330307812964572505801091193720331465707013458700442217859351085916456194078241553206444367939167754692948140300004391419556874956391145631058317506079338079118846707607823269923046210433777435761138421854179257076352783686524275354510373403276085611666038450521020764016441773587960893630106355691458331567855764457584142700588697372285210926749117824335220962955729038419157457836637225019543294647021118289080093843913847492940438484999844041333390250924822998019155638473849025776336362648584712773805882478193646366045710852619848994082529834399046428061682279088192791024063428777715352539225126418076578566375128208592637280241098772875212475496005217041941878102981948689580372950820803953646232830635043090941229546672887575441288400028639295709712673990911506418670696202635369826119678088297700078414205161508884510649379120048630222438583738379493149904076084118794724670527525854668377154542242765603640061982219700425467008656465749985395533985107154521510271571301101114380940025078018386430093220224507293850531049047130731307920060691489233294205492345063526320533347908716701015310361537188783260102756145148247864891772871310686331401538569075999323529273172098767544921653206045882828997433100507735308957564865787174753323679429656583140410172693694259158489968076418593794029709382414139312986613925384569945112057644431203026346162179771276195849205776498206519351405139256807383939397961634297497682071295404129974746084089574976495724735117999837616441201522030255564030226651075374146879186743627488689233351188905060997713897971431827279255782657270426020455208912593311143175381119744675611124147747529618413567772202243076677670782930588433182573773032658622205411293456663517713844014409508945281831026097783258943496685154308595240713386977847901668366090390378658333060920181722261584477248082047599027674051324439617192473876659774382929115766331802614492497265557909435871029978324381216162263965961408285589040206855708365179236632582956866357948193226939758190437519521363124601509509968870936366634937688427312748923630768744361880600920248409078584073791204607234923961097404953894697655085898066523724004826675576617915108192887163891076340691518257295633996819613302606568259566005754504522236208103897414228125942652618496248848696290077124692675477109564668125203396354879164651502585730792449174247117555574662138351475564333632427350888258029330722636904969967223962431628606906027810987117155126018214621025234704841637945335663067303982270373768918230462770168340762481352785236324554698413301535728120578999726057491172505962334178875950899244273119123577092154536867491168517298661362517166036617650070061915591379126324179141834403270949853097551563805518234449999349222997057073373992931674257669848202956372192500330009813164846605444792567026629552136113382857856178388595992736317475898744091217595707516263956788856794017625849512298402157033178028863707058245007102163432935453321738344747290499215953898234900202128306835941451275848145321993930190323348660325232199515695784435908999819141447320386357541439730703638767402490312654567235280917771648095333781665432094944269095508176370335199142777299532129600093476115678852323363876899219445863205875584528151008268543441909507543109714575062290634485367117111060508209395888607482265619754806172444402146772688260472328663735313752606338852296635011561668977762161540493007464726643163474085875464583127574957246111256240498830182771236441517448547811006198833249172427597264977645181976084218044164526253240242253682696923861947607392300429325212194212310544070497472931492249559567108705287762842565805013109037780098061523211665133818590275106227913958346290407150881282552361061614020041015082446274314297956582775533821830741750488176816210328486992201532706664756431643560910365762998594467026886542323661838894644190166687993973166855229195891176716041880177291110281574221941151481758021103403779995752932657812203337747241862948244700959556764459475922590739299789542259345303485447172647856545731784826984547423670615410841056423983799057342458548002187364550955710044861574011139827555831454274277577184986656321241511736973908750132357661945289761653395880234899076985772669757352900387317327441987228785482347044438327523095538956019139870512602140311563639797239568938632527294560170985096097126086521578484609661200428338662350858627488689680522222515644531186512717770182181182688616571953353363018245966358279444834520711296984941129482033178736298073069274130453927356397744466789537404839856623796604106449848206638482431978228098518684506457713013056484253697494108907901005819191876041892781189227935174297231484057483253719873354893745186025623210447645411773111199694300388033960177669984765168099456964871879013805002466732705870284588514146729556136129226649744750515711211968749041357080924497852234861026939612636443209296942027849808952640448082962656853220492719220060858054005408259435101418173581049051995021353407334332984146749514526612388213423319259850765679733306249415272541339345783427238098270721421824002481806962364059179045127233812808417499046505411229982908133022071904471540448421735800166123189569787117893619342433966842538940698730027993033712759344963680410047075197246516807455326196012607297701786133478664736501583337263454613268726407213412222469135940115721575898926677934403898181534049627297793019744320176329358733826680200538103223240606244958925505917324507380153081407545654574701021580874633942356059169897290863069214964932001571892328931940190918390097003495057750787181439795226951120744084461838269602840055707715543759393827868426830243874306566202233754917279395610093659788585159768852748542435501196930297188997022378254742759111198704211479636046693386743789578422484598448583741760629038637865099144956201294326404769592859311809629554208166078284869311396854183787746765023245132695446185915530683449289692033337466767401228036612786717524680969105191576266082382067854874972944878668537545672492922318693094147204480450929760975824737404484612760687648334869281717638688140818644596745604566880680160984314585500565276620709397786467940746101078959294893568390748044954813283375192861865471621106681024010673295668050998316280365136994483063545320224630285095327612936871751519907231841834956361512964701958743792872603914460016550427361251461392071475964588780649362188674243730592377084040687039722643106385260963969581052030547875035812524049552357346923066988844013092091077096775205450125778687630007807132941424816538465498408133894371118632915842761365511305051693393654435286997566605507622529003061848634156972849226853128825561446312120331033707344750511298408388809498278946087371981960409631907876897895801626158129863001709659931775106053931676090962256786344271389252850313762187494033089045063454881048685623539649320972691343388777392323883506491252494001763457555764555285677477922303325347650373323432375682850055754597982478257601696414629023532260882448771258012224655652784904301753686316471509846728998824704554773593628804222433720072307751501437789053908073547243065361284464132467208995988271234792149273389274427890654153800074586099172229504065645541151275686849703083653335616622289796377796752329970657039047367684896822416916467003505394779478596919893315831607643572794221218297438239604231825051030047062880853225608149580150642811269056240965029593174091543743310157426944039044406052963494408102242313349556050035379052384201738631597543188321739196164072013511458930581227063421096903017523409791200196368041867298773018620504789270269384343397706550710352607123718861666916046176261854613458222872168717442957083101829724478811760477946724994158491685029469882490138793900086778427347640484544454864481548363330242384738645052750718740362392544400655127259997415232300760186902335970287825451952403076370427935181300178939244902124955330126298927893683234033266645558761576126161774787608486439948025688160610851509691294049233596626390508173435605357037724960321185056974641629334086007633707649722344656278526775196847926480593321749509199119653334085041455955268445050757348925959572501961744119584960141510165893639687587018418839760534348960713907571634508192621192987407860715311671494157020196435542916105687560016910220578112490199871314016931604801954810942920586429904169773904023161137215806192728535996266356558099127125104358193947724863946642260591497888665119957221344319337001696730646839792020329865020155159869679892241347213139586646806582883666719290768997436151125626303394839348462052905483465103859659142299315336965055685450077413990570792707742435417418282747936630695384781269840453276470635453106914830880459821371600608954936403224142485099288652539343814449951592252140903850794635788378321226208673460030948481040152758994799890453291832288265506406230825044086812551425572000843466956104700801120172285221099758282293382792732413599082199355416060894119229176542415107109739771404218782469793831313530210388253256226857524952197242837255683979277520510790949204827738037805357387289146961984853089161653825915209684505093960001010748943905538193677699660147560267183874156615131048266189334041297401257297184683326868888663647620981453056235674770703048447198793564462109471724201493973741823506415662269492238689804900888809368102117040578973114134893330831003380798827770783920404061998011417583824766469293619686944031513856856721152301968941521607633800968424923880207741025839089886057948203788051755084116511490892565505783094429656987078746759926581468010086996377125804350517218652991924699113219544215590909275651061587273396708208445340522083914366627789768416332207583772823880316388700014241937082142892718193004797810101576046905108421535410756559526271917015108744271472778745580896058675680281809169659101663360645123029413797291649884661975974855164639786292909708930094403402355948170204474564808227750388294266039197402302491116273798813590249122749456955014978680239489033119504079033141641739826688390735764155825779338222932061064517225604138304217561667853694768519201260392702628130026457341073342328368927723666464471107701885238603767838803342920191976031494719787649917516475880701245451141409939082517817572807450062264575530507099881607822800101339471513516502451201941638511649752187417091852354831398811933153345185163020624707151912418981023561439954750984716839530459859207998815346868726443118360588814526606936628733185069985529080795666496407382109592743414412125793234898713973068201231556060722258196561317390559778191825361210476695155681459718408869863059008033309245013935232029398793147399702040087795262605337586180067757179987764888882747222265323923179991232888417659206625657709503697933442529688320337762452376988080815288582338499006395250383053087330832814299766319571998718819925419269293205065648408174565357499877928699570837715377329646142280433835789212752915410296951899472241557728631537331706006336632977467498809130636989812034510006018984471205186327078023884386266370964332429884755446169981473866112962999458852489516472967076728122877698061964186285550625026766760910845739457701653710968829299845305113120374819653882969449621282327172657134625090397225669506459447917800682688574039145371357187270318437035443283222166386585147052642732576793821404135871564100184736260828949383194611472458726693981840754117943370944451660697402594852771934204597774693103846511433175098872255429732839151170242478490683252106902857042044555884360462890955434413565253069903069491840311757357049052559267963171775252154575439041961262004948084168171506989752187144286014676361416656330756164590045737384761322076228729579052344286612722977007161290681234269238630995496715360153234112682423495386978151710712859684650721515700245373536652902626207537114618917977345683603320462676824372486693450561937403195307304765420358601927398140747214550893339596192636398718607007484841939283116805307711532061372886751978485453365414722621274182543515251111899282552290221467110706089949313952146018561148009314348980770765642012882199210859693136420999316007140895714574300918876687323886740013956386258076742234888374448086298956629997507022335652767628837139411941078156383157289243669470304173214239559084993683252745227182219665367007705144977735770110549862070283923787964057442381388864365967562081085697285963027203823210032973350934404110407069572179872924675377764243985561016687969234428759628283376216634391015319857242921771348125409650295033241640518436972025818162107212593251978080982675854313653414303325637858973001138091717269340607166336072197937756686782911303463130510006144058791759600165753201923096960254022003845544000090224855116883436881698103989973282687900893056523412610613646292972892213587303527266717139083622159150086259404178448925798547877693994729713132048932412227645536191274090528466670466217551172344158057685253288488468241655635963510760862118031437836614045017159925040377663834964145157558327052325808599110210933021465106697071637551567361492636105175034768560389224609746522799620208760082124997338563192026923025672073393183977055801327555968513103378043313721792704326637291134002759038425839853942899206085257064703644873302240034802014409382577732107689444550878305254890456210005240104534339321737376594792518150606891144820143625168771264077179553753018939697307726548401242157529571931260383404962148722738290293322217461596783774051980633523933830410463104234230916503265338717142654310950191260475962270562360587035552237676544007020583724815582992724826336620248100773639157564783867815715162690124533511018679214460014699200383722277210169031182106908825267370283249834847335771164943637493319441156002149545240765017276247120086325923316129904770406440836221601054574792074861475721951968808303796081362460829247469137110984804660951821511032575476344813923983967182580815449388300964665240339553515576265591431812075941380515256786829683665404098364645075052659138731579128157186503795790214883826245023293192024637399083485794938962868465854462542734259458454648792780129411256599331865240844390336030729024542756754169535620811542990730491787349115748700343164181820455767640210616027467660163924603588583856298268613780444167224386602417956598112256772313141232586774948614092957075749663718048519894693249998785174311679338168338928306447868321523130041262430297722251179573588968233114101830516836937467435021214444734879106674996177457391096680839410790093692182382147299337832564597007094010267920792434333151530903818625071649314135370463573519321857371837700596933470358645246169678372967328240346354956020507602025543695605155796285016298847205169302918153799496256111431870934106443145967677165241565501722704533499716004497029681744353263930005133037712598058306933796748460878041026020925084225837847552478797638986155932974281401594214866340733547108117099319591491765088316182832669759853140329101986799319701646714330996038027999747612388481792066112772142354411723549509355488157250784133970219120939258874778116504821767104012881785517438089017586637364595244595136533098999934018310202735019894362520082047152541256358938656097704683094388614014595349800354462519516553667801306094525687604729604189783156621597676741322286524905954284692036507523646674482558949636250950796415432027194887588333735990875868308513688958649321427623430270266272805584953795114035372829302763564434441144578550412388308956764259255786345168421641854195065910308238599260233877843644271621930444017549877571594045154116135591602977206081217368059056461435873658904593164532539964851763534937138555140095670836417018346657845981060035756238401296528566360329852080183849022261494914055321673048137510904579081797785401319669707889827613889819074677415526258990905697700672725783367916352721759239130447812336623507043578031610827439003134614136562506592428805917758000165944227096491487983114766541057230201975772479011853568655508178247484766461748138282277241712844837861368393122819581799416168990763752195144365177099799581680180282031703432096191170765792057039548910393694096578445175443428958717171699600631910690276409533040162838730575543907158479485732550872083981472373604757388093118820754976573394873014480827598252375915948839641726396558022633953399588401599909114844404882433545607949347984451383100079461143415360333939569374715534402134795802118777832099615503242234015918490198864670509483882149857034157325995408337946512834748717528199728434335406434170092673381355372323215860477018124703721360054977858367065240818841737488316206638620746100987156689948848220599421472936041158675863734424520239395442489796534779288201166879163561109502462956657850914839255115617368738909445916961661736536740187868665342292580785748892953701818671076278894512665453247525681948891079563860958217301838027971777467745860578928201466684422925289995456215342961805900188451305641040657604761132492887515436154316744094896952731456639272079612240442529087353832487947157540073383841981972340763305833541078553091143636174528441510552359706604878007731829768704715921353104772262349155338925728345015971846233152378003159214456433862105228895698192599840001448900659960879670213701858030428694405574557557122806626837503000691255250212482444684152965512604294843127124756895777605586864753670338811625999063749438103084886886010530378560025763955570656549754645047889211857252312789865536985141809032465692500219577908961770876223565196906764507925444973963691139985043330775283627318807842698257875556069049292908793631096099181105281997064187869218932267582495429179629674299599568493542194728448105538492706043444270505073175956382169257941021588302061719768626264078147165699613413799011178507872015689280805113380964513724030823358641308730971190173022139336036282570701394289939403288575312952945162117211752112303934504150846178998175647636416004085622676589116652990928272746023806489638822967294521246500097236505826527603122050898114750904603698177158379852184893061302845287951830203489032614676424878862506475183513771465168518400616607800700434536434770041193400687984217193206209944694651685911566662054307503126983510894121338271579827308275102718185731783124916840081353259146330508436220368902425419424057150748748458871794614772283310076961895017121589208040255298244375289508126438058376454713525960743185561132151469471271589296376793829997977437906506946821788874701864243898285510701887962641637187651807280652726031009325608250044156683391931069500595870890644527741314623243933619052231265512965718861938636706179508630012229929884929634415136689603282877437510526722093385273047845225419272826656229432491804262830902715832552314793394233416469240273442109171692681471882658816199389705790562216292790364678564201409712484038416977654302658626631767341964517950453593479210968692597171880243617295323746579478423581330189502432804612940092102416083049579981874914500453716171813008338944979331082885413459599036214367923756148169429919004933452647335401621111230515500029382389505200082983864547117429091557020326764776633696729523554828587335468318957829116662439430277981333420524767485265806625574849922960931816621840534771374400906117785962448534320385459720535419125685686194951251155901879433339336638248890323007836105437244222658762273153789702374565212035837136180240868394033828178240346276854917829932590149994217810185641618066447852069432234031940400008337493901872115106162036052950567979430036684083239700466679979059576409004047071655249234186144887766547999647166532179956387101659513102408792863790640227584463801025953437020494998624920375354413799563287011524526043174191098749750381505826217786877250980661663693710590606704395548633354116065194181580698869330555703405421702195692887132359238699367484838093014839067578096938419103366518041296233341837537491717883690088562940296663120743605167550479417208003467098666182541967502185264054034739337584427955632294088845112186403831841792205164228790578160931769281480238360263818606902159202599057796179962490766476167798181948888022851812959869488475998767412648752582838722015517335666623798776552880818039009655688411900475099284392166091737705600389908515611165052768450786116103802767450707246667314650569138402925908677064200299957740121286648100035111575862111696627551286484067914008840456074564136305227087408290786108611120709952827621001102376308795849218722490541229209184134138088995545264066245534356531051073639545603562934290641816530883492105089588724246651330725837454635675499989250751578884232509282210195929141796222357931597498209982142513716233500545500375220382649369617044120602141708599715816748119842518713964349271775161421938254371895139418199352791732580723732952248087536504132254878490638083163870138088058280535553943945125752452682844304659531010199038111355761518184398657268778111853477040198884258449384128806376765526760839769640670052441903818350641671043544062748091937473652626038605016601240748328883388323651961405882836855723117762608221355184445907230419740372841760226276056261352454311162857178975265424541975395505984687666748027847834454838576772301914024499390262211558555492365307443632558212658720698515710825690008800943190496866923189815038588305300436233621421096645953528660097398416144712619325830993551191274078653272197006203211316090651288994335068416490569855226135990097899820116528774008117332463559476282197950722729377119136577394291637757919175373972526032806957718088876083768965716743202696583189720170299923555885005657994398633368757817812349578139046196001043411702725431683460728745623439504380613437648160684477568351589622909551962277068704037347195054677558065310287056666835870476572968727725247938320737146381821721029230907717291841965073287608662202061632427625001598638140113821891484244890161620866247231892712709093192337998671332693192866448857080703822447306230986681337154967127848042412054181181011365618200200537070659280307254891653637120088033008415232266156518153093346750991124878869649273060824426597681266144727558971306050532497185377947873248207152261854703317769141440738771272854846477935300795217453204252322762024466335412904493712447650873628463404469923785779865450240285063581146360132839145912498288737253878339694448056236778010238793947288594746363651111326317796897380385782574905384832665245102446546363222475150143045332380373450233392804506937655208481060092349463412760002894221228765958118089865739743981374189144777295063943237853444990311382291659018278891864784374914287422150139565634494692226874810711798716939245931930798429664793165687527250197041493145938891079607999019872355000137519930452955747834193289088085030272735507301938372720192356548472236870869326942997909446442624438647585043702269617313529355996949011062331217913223826554115644687300516470904033411244261245636515687327851152586285111763297019483814979762211876408015903963225287359131686186490997405851268782474309545216828181118976819732582331155010580696454648818535889700725457335802135639963690560064494783547860173249853001711500422092113728233250411219020288209714291709843162147261862064311055120901408187176214490658365266019696877218056883880934937374084973322128323968386860530863669569413225440263132898150034927083454916012675197076498262085075246707546862730766261674000944520535354606610878085695537994883240197416497200668569324836199655330676475450861085988608274869191416529410780353466972846083045277511528890559484977519683385457713104844145922160370879591681668640013626064383659070558037635031535932186212902468974810435500398911477011205994898544606040214041249146907818732925918180678401227561952933102214772149047413234703917200053219667438842485888727491719851407124761068313966482106469869851614539793589927412076348173020188785167754153458993995906047203816126216449559633899178372028324509116155157851850966815205040470503171341148991045463194743298563032771294571460178865468811328933320876977434455910996871385078921763939220767856213116367573375601946648713062337072914936875861013808563413840456048481396463790455226849103660596828150680936017876291283298105991036359188600323041428303963872944644503710952506034214047414868824343013347048057364487794657401745133703004476104606756638309295530973900858065902237393333939036889644188962051790366088166554294386903408094074551219146747281995435767208785122338690280319757088657244779394382527353503032498733123595125228501904351386219206012617085352821962586297956499154443491483093513913498661191232803354301978509569645823849362516782979983373899153286410915697612105956898481783216421859303688623188859835720867489072865113215970494728585164974334468923660481482487779507511193144110879824901054544177378341857439949209494872157632305165344651895789502098720799313338049130565404187436756476886622937863814861232503416540727456671772180829703881233738677218453910085326729027332855232567471494383972116506270400526463352308277928730366820051527515921100838917679329413317511264378582155595340117363778257959233054457245436616726326523725456613421125678712130545448513631651994753284101739479984028591245052580413559726661956110928833071590481078492829571797446719986081608413887772130371127374186271272760212534041630651046724625388474736894942818623517754228888607563587333801689354828640825869239881513218467160271266703766498672596413122809386777236947077881502338042577086832699493202197138025584370535477615593484869575476820730862489234530808442703853006052971915669032580434795875171413736027394926198105795340132953964571453669793738049841189634029953077548962623069714645177620868406646435874118243708549052757873427381320936461455701099832232227383001502211235609925305163245351753769236761375356837139727537964137246324626269291289714290405416370491522378895694086009011156541586887945827564602863124379914894641787254503409183131024815052564985897624092555896789487002438024064537515213001766812607640692673269904888097615029426711846257274591625135925896644044364523215959941243239394397774395470250672554115912765162932043659915786533260671568316079597363548080854596900933949048770987864618527241012248070150915848098148939605018858702083294080544985932475297308299720410831150894979271620594492570546732886157393689878868395289679201713512054839526193637006498208494825488757341346740191690510061725474653842915340296650705755466464437725925398293343766561999285619425385380861753077142020629971943795625373365005107680820259934210829420200921086335052635349944441997571412166953107508995921707992367546726583484192490812999003389055682225976107242075950271446456047541134127335699817463426756014147058672240027114040730816670931327200477455022266704758560157790674985062839127845025281493597740439425832761255842287036033796351508612688041574740998031175525936109438965947850273114981085473118920516912028180044171219048351964453662516789899557036207458696742638894381152812602257576224097804126591125267015606494598792871404107742854166640399719643999005066660675834479226930986346659337571788212860524618992010179360287864175861319973040527533122845682687743081728588382395024234533404276026357999814308097516551273151354842433878187283351066528596794392476082702855983713267694024338698386858668097267095574691781606016791535452695123019423591171757548704396954168456996260485751519806934133743887889612762458517836733155623326380103565792452673403570501242472113064378306095735049300021571070849712563936428228218606633039749518106955807769691604464750908647500377794373307085898150596718749095787595585382593095416171562817243579474336547156617236732975032095148149938037966686131554701099774261244360105286313805231501920071661428699599517076517151867077355616249790904927138825342807609517902964119221481628739327868172723483760260215986920540114662154220023509674556570066076144246285892592623240788020803084188876317789889430026851055182299285608263529204920664102894931999459337135006939693320786445519880429232948286834001704455851749846162678625425461799201945057207092826140382925218953845517694866231243149627880836014931035469895786369663648461932545615828167785246377681172681106501779926895758528801288225124056372920597887959294467812192559295214651298941716998764651321794563350602293968451837539918387682200705757277158362958715074873908040461905156206973347322191774342414956172676676727989873210748816039270807912842769197332572652918456596806262758088579127492299644808933871433765596918943306431013582169367198873191477649887707212822787058772298065628818043817903232157226883186637719593796031559235559447225826422798696697147950078310600699580659180559686169799992655069227593687670680240063323967409684877414024061296006827684912071202400973253030052626644023717014643890752815952129740209718286758207625540527910883169149505311290758135084852528556328186848970007941909800249377080518032973675134052479116141959836149005934253417812497662048475128601164547450970179367017678189709942143395246987056325307369517851658934777103159411352378861526137447704579634526874291066035759346835954801137765254531720829425704858783951245550970054064403868146079945870248939869192789527158295235903738599364309242928956463302878413886984301208244729994376943332004732525628229253636720997184497222229390526625974993532885717778955442773664105635313953181822642830213931612571177678265626096235100499514591151880083360403559692721802773941504311564244498653830179354574522126620055894487169258505754787683440108219727275437034991196698580103861961211777783561496614443468270186405684715818008754315924053730127741388807919851912962663479090317546754067152478333637815121816001783809275882797271304212041470094528657339735717490009460852917936195133224323496976745421738142310511879396055715692661160739111228382811000326332055705439568819965546806859047625070846893461540313465905693522074252954960968526628230864681117588620003610095182297983081795985870892663861192156783902049162339901121529764018396775846493438044570024582359734609853175627974596648166360412864841196856991308913820021320863617869587265235951080924219183708939640250317898034926641341928674426656152052790873248841981071740635317458207700057638658206061684103854990074860405798402506987216292961430958904422296447746107752486696042338884766301358715268423147644534397969789362092094093485781457735070806495940167603644887419269919146859069805808623055047462533862040964540244369898541584640011532711577292492429878817628390130653774389000086709632222180554863435356354283523581272008596105561864727396572773002231695310670153322100483258039825077364485501804431765924183737901477317597253480577386722650088661670656561301955938325112558752929454715415412427285959753434833455548527248510013832590156776770693311888933032394153368346833283385503648785053488630026330013375087235341274589888350770004785077678321905274624321210175398863042116035374999645544397506510590717169256674355340410769356981145135592926266474290085262960619678230137573323874899127885107124852461427226828312253322914122091712940872046822616008019061349616982658721022001774220407345781614246182850000143527997982739052583289380811134453313125173020118962705131838729525194735404261086743287161883638830092135745806362383487866734679210888010553865946861388433620003275478035556802280620480876969058917590472231711527922099621774782163352144884886108484249544332490323288380372019565243947507135908157122154542085562598669081400818999275180705079333102664770274823058925086751029173779967893518002552759487878103465490437519285254102686921865355580645474164868232439993666785562381659868676529145040063529037259930639360171418409450676984559547065357033757582737468907477738884073693429295950763419973259422311118291969679840902769165471998512444067331830194956182475715974601991992891873576849539217800630881056666735927415522334948795163249233597159104253270317935077077577478276108648961480931207254101185613082276952154201241439244238752614798036460343292540986411754404489457135452669472134886469248482062903800345096271178261329608075161225957078446139951313448755021678154526312503682715039165707340401967765355564197357958294567112372079378015637684166841131907317998827307275264281136555812250577279566043249861851335918726912844977259653767313476609495677928289564150038781432634703070973266344596194653025587206375869289648198067372069678983129132021230065419632982383278735767115882264514064215050307014123077939467850843763090011414690657006763650179195015281814116087454932857020033462548453219880507960217704890312968686793443608159504201024797792495932063163259868826865711611724488024293896533000344111281901995828041343553134222301861467333799869757662609415060663932747296080140668353239979677690374495694108125938006300944646972366235907508485444409659693490639437328242141075822793319908002994267446613001437217393932780473852476809549525105350726769079241505988452031899041487436227523954718055380760059613322468052486644993094578371211745754416396941899612945175314905775573231049755495958351447115590484066725920779030097689174270622064768801484160349109630174983495533450249646407593828586387949784380654861660432812311442948554365675021672456542762400453842182602381618390543618087544703714322241166085656584401000007057912583942732381462613490669547440585090678805124222317776258759572793514458500025018875983108090772478857391161231946062703688279565336843913849619854845075974576149340215970549725968163034222248953193292670273828324950682071469147616116104841404449499894404079529071913639766042619710848981666102280864637214746367721500147738210019562462495221509246662118892169500960426794593961592922823373763659492198755183038972534791930575296578679159804675337902835258206380227787573493659955278464085728934345946064073901090088131580562661504723907952839680312042086922802910195271294251170636908494975802841405947308486961534824414645420683047353764168397772068765671733910990197789421275459439198036079070502160373647282811787984254360163184074726512312308804353338590815807935369278746806353921087321878787059303755977397238730415154759835038448316358342139526296951401645218651619573921124131561672939657392422146816539548168090718511146281265211599910766992363255113639841704489384584273957651579729518699044878410086584932207541592564277818609599088325824642411148535545415363239058881290147341417057430571544522273736175311993076339236927260531134672521503383390815303504119218931152060116467348160639168412578086710553478382456043173075978079356117406862408860628258926212597342187639035711512038128872063010245856441228652568687717225033496365499336459179222277921486890391501408508960288435608639912355850399369579968971856803317349353360374619816461347687818759444435743275005305788677359039431226931691505126509517615810798735180432453842134912400745251991761114374724224551692592659358318372725504301726041356071660258220261153884081389398669998598386769099272697428211466827317677459761119005715882531883259930542053092101827568180927607523662488734352975384204619972274893176929171290664500893952692020867828913263223677021128759264966960711157681082814720875521602691033184761873971436474075700788400949953318474968138688767087227399441565214048182717374748567774229088112321847939533705477151048802808654413008701405973779593666765607101502320192992788639069371500614724304854530917104854736696832655659870582686598392346473862291147690880734122905366316264225310809253499053925219610383454132397407883551051255305443686037203097710829177433940347407643818410303317226054880412243817105167906017770733240708898566053204364524071333284555552758271713094205508560010797740465303253279736335304614162331982557713368963466986074178764612529342060220508894504147749262816709654076953472373870972431857587261767778845717737752240593984905548450070233639202617860374303449392507520926923183980147908289287784088925855604068913634385454088818483293250232466207239110452636675702520564720799791536145629806231728458847297015995085368343548388856373896905567474046270264883321169788050654859923010919570019214711047997545189491012717898591526850637425721690121298002899817005712916354150941136889236866913179287519627281766817028071363040073311833920184794020502161931985944896615209524103755977113324326016086569230618879797465590427982829288166681386046863311956851527422367046358303056947812787960254949030263632591760062562607613570205873839478473383828608726166243444493892275495382304238200874869928015794628313136369660788654494831416272627992435152559451591454596961873735726998362058907612223590781824762673720316174244769108986411680842365563497368267692050405791026153231575697696563912117436874548024099092253420183127040520359045522049925694469657731103355211489963472825018745900363244018064798729824322294249520145121765290430915551353233708974357872843484464113547160053808865789008064210597290320561632896657810335783805974789793566333878276157013054348892375042216937413595044054198454980335805014856375463362006242226686306019868829801568918633918084531130172277020476703062023911811646386811533822252932178869431656536798852646197982752702202696216397631897505415437201914450158440991897373575408250924270166911988964967095276538937871700773101644798895841910525574983792245663610940519582101183957367178766687020228821656160204563710251227794865451199187801486652037022641409468896334860166776882299070108778779181228245507395847989866142147228394139923471927817089853651537723502769984498488566597004516518439246492940401704009114387960241903782579805922945040950334895447876629599378050478853173549048570037325788262049073849832681874144713101068259716932529462031977025322277063461584165335092832458040440595205895235686334803207411848235648038965633694271345516522851703859376123942377221555993494936836740708119903817424565573653881177822993657209730664586889120441877219831848337326751078193462246612273393946285826880219491428924953635956952456936409697963099182098196277291033677898777130205845719033976290842838011818501101257202788731311097737496808671480902634839852731669478780836803526089041966517315574901052020349304977541834751314741286764277030350571500880173042461655879628672701791585815629875644415230307563450876797928858310318319529762719724956732504562505175093556659650162064310784801580138266564869281207591114076082702417409860089293813188564829475508320058406791381012263933772263906133774986323840582629642233894866592367984894615840719031344022137197439189984126160381100482644617393042367233275313911602528094629013623954499638901565781360985045549223943513820377163816785276868471841313867993294998514595713071602755075663950575324516566832905731672673295931951856304358772810662163322730512018214498370997167860743081071293425806344586883419866221833982843676465739266452896805086108958809418438595143715487168964863790649450625338566449935253533154835847489389002005629070464275538196897790880278764421556089719351268405516064223990761839979487378414588111494459895036019480540893740950800948474708015759170725815886150841527785568994497772939303345066337713925292614638953559925681969270168479297156346417192180373393056103506569345374527675354523879979823939985904595513924996978121991197120911453327454031798194824287578374098217008667410901682516982832306561975557007586730316459321600387287007367898594281542349686924503320346010364261305001641504990806802851291233609292664274212933115249966808814550827427182630650597301530326690878388918327736664458567274102035128444971072980923235125618266173786682488741594277161643587161710905524366767291692440492174264117122592837597973325375591463372730622191026989137656562931566024304337128049409649144137665400101470784280956954446028343569848368527750117161988083240854198703554235578332926024226727951039275729485237028775750074837297852158007318595052177509613670909606136108852461028334523750116329839230528666501528025503039025578440766220337711355169282139729324990213092570852681353225853807718936374470816668123806290797980405818606178144302896213006335186410515369378306118628261727375346513942265918696867682320053530902531541826490990040467164741669710735271112451144009156467785081129860728216402533044661756916785495957625835327378014110080326069770877359811864837721519232396441610084611678176855186651595488291051369967392738376494170986527092512317905151035961482429514311122246955681776053209447263649319764618171899050734782331483110911982226350941146929024400573331985958544133271295453968820552331407546698191647146060848854964883849182310677172924092557660365671272518258742609023094409914530926716464944698390487878778031325273391230429069017753203977744609601618101316961962643181798562627088069104354285865606827134097139678993098985158904074344346802916721511480780951886720323439315216594662109506089433979992078527922274841700321897369212870493314239391834834969377210161967533175525950361769328890322965080898381142571320105721723049156967358772037493920256571887487131899937793285478710814658199953519642517587700121212318722248928280650328057707519523648174380946320260136049316606293275171027474914554557569300156172908367251881723624134842256589469187515526126980028789956104222148567007401956562351914916295138100540426172313562073022902696869009818385272418263080087273691942989468451980484768039852540906911002826456292317106388667683898524650597577597952964349990148301477699820615318518458584546260196618361451916743785307768291247373125856454541696076597369432374194349343066105874674931145941482577966646995274943720516936827991426972217602537702753204961845228231349013539871197018156886908601898311165539312399680543198933916131366614639390899092093756016775096487467063106559251609016122463627725860754837385061019985101532022607365077258849088974044283485798435777594388053313723833678500680721802798942331315378597346851746447504149508842904042539789436281537485486844006763699551895588232659507963603718573064644546832403917777329450283303210974136219659843671439513305853894929989925275633236005884182679699002087405203577617404995405686845536789775517076922868612030123130512490976557462701434769638731994964628574911120329059454758441510722955129377757161436349914167775374175006067459988665156668186564782375712357057554654750110203858815581312411177925108925122375551595427295737866573302028411361204580083804258686924948536478913840085813001704713795062764445600391642387835260199846400099226195316282339157252314797871450231150530311617660180652572337424518632595741407862251386437964315624180931447554708507998698928946784489671946252177837250121760832896600246113082339469529372296442340458394294535078276225533536143692785845767805681365921788189771386304820568252038466235256010585587088263257606136508072504867443217798927769952295400857441037968916344621248882603513560853205622459379813308178224084651081443577026918690757535882279916829476662642127806855317128740453361740941896770926686349168871520345209605573228508927136929913740902763354145521748292764718859616020902762142145190489726568331147260082691137608572110107557216851718635702293891930608013662103444410907200037841548983893661708690031648969151852713378949398150842898565466848126641690229558398387758549093676154348694907217459515340070217388865834492364398351497020023497417805672059522827465074446077710287050929726202937829072909805865729560541440820511713809138460628153455921189264181601027003499349754340020823929668072456569048726298785465629058562520480900077917552756755339996293622822929048604368701991536516228938849163518898112005307132932881983501536502441289465471158338623890883370878225873836520049958900395073462914727243254629639814426195558217313198758693187807930046676661452605274553641186165695056561976913371647722176665586751374437777548697905072291997469491801570991406667992834723047939475210611482823437136328897510890842541295254400236215985847315886844278730119747856934981804226383342678874870339997417025299639024052157165680640856138462692462434727037811582971646536428116336667711539950958163013426977596174469303199303615123215177487522337758502022697516921285491509984993139328901631123416732515642410459332440123755188791194160112772989324616256494807342737513392160181979177879189563702490316440062634892700960137276421421419452113653064034395561489995311862232633606544324025763081288789406181644626654604120986592152715405089138774890075000224404084877392468694564909134659881360195903569983497185010515720512756012381396742424306432693219455517580885648684194250445011471822968016975729569996362243199007429333456311154700024617964432517762332872625261771383391553300497764756402836823697805220480815282915957318204595782813062127693730871579903413843173208768897914163311081216401587246006187369757704534514765763608513554777581045712373411304502340896597725940385249487998789170012015209900192130135285037209023889966318221119632807980287598073392859814592647136408345426084680675608969325052919923696850712465775453743882950099460277371068334094559802683126605469372388530573995088195117391698433572789571703158428813757284145046915244195008609987246869338283291543329455625603960628975651434590373326869849687201382046298680131566116548099548017024319286613859573623787813659982162445229216520741992771517807260062147638892552288675852392641200931951672811020278282976738134528629460411138678496841169354338994966157615904459110225147108690370266361003515865210538976953094733803675196910965843928805635958738125040637776007130853006565142296503301599278809491787539660767609793242171274505373630800917833632737258261424578392195880264049401501325982737855248343810639027610076083648857417479882981615841040364146111949046377618778903869208997964605156006178180203842695258861519450681810315903366789816015566648040202961674738252471916190091615299391553130598092433163702182761350686621871099968110573687187392749612284536653134573898152747682236197291234994602646559903893061505301020296216312986886585281309870461345820363300331646308119677590565065612228919792510362978418562149592533261176727389498915450630814893863737400953279849781117529810728663406719514136854955144062474668506727961415382282788946125475189548532779502295285541265554412477715364090855215635256311827242811336857264195221494195870286865941845290348002047755821892605170883821698213268024274837735617942676391417555223837585625702152735995802539999601424060522158979367427136374886309294692208800204937034187221219987743226583367021935424886384866837614417428901884771346124140043493529195280091700410738113168351455883007637073532081843220516397200199317688890511283937226582928932758082523116815603285969239965635096264297202012976524750557726986714649911238582320090651020730287569874798228341281871440207734534135738017854810150588429486163224205368675671252719357332678332896092488043691410581709523455053416799139281022584816973773835730552716186886459665816022214972577459079981318983473536404853954277828110989881080089926010122221270711595722056228260097670874903104735232205499889556334993847636005079388469889581606801828013976718339768491580690887588291614480804064018287167001549703203423488188825363914058285155590011756420638425156968154979451881277286587003258871788529302074121658177504727476375600094074328850668728327522713848879218583916153912819522647714761915714666442309943865962700819471329644410235627498173542408925888506445906569180311640909377376588779988899582938416796058907058550949317756401237825549814990624429646525019780580949632716722582190492344325205553419340312223850185468080440565738827155394039344447069232698029755391749014765084464714275660532557165850471668253200307035448076169474210813084672074284732171477647049706841024185033842985825045447153089790342509748485020459915421984505467506396287617329945734204992027649992348660038408021968917906754871831710079670875827463610642186795956224608586018233284458634978361594950182298193638594706858350218394087781855172606788580884667996290060083098872191773818589909743575283653558452025645055848728746449321433810242002788796951107941880617878715882001398412710454079836779977556529916832894253579971416401406140885631135400508775477294322769829732160882632569757330039937772099565964262165542304755544019117538356581771480951834710642141500784771379768285400228994068841642930612171108006228815072541482800456576954882577573641444208524611132887899422467954572929931641511876202061108870339444500620521041966424328240528639768797208507616464327243509758156766871052085126895974551882625582030585742332320529687551862693004582146609693256704116751414668720054343134276565098858497751833067941187377830182946965364673890980873393731965560719406233009797475832606960693080280279563639657303340002458122785665846986837821071174507805678858226375212082646517442774985470708546786094602807688993239869949684029783172070597069886259920668897701715427046982663810112312343474486384737716197748191215194475223546398945090119259518661208384020560915041599561432426719984116801554770979743984890948908627084758276409965835916597939940340548030172744574646508147337998379879692462517472746891535423188880792755584614493066601663293864439356013830313933679985759577144952099664737191989876333374936936854687759179410367681934297723901536795261465567611691321677071235495072825477625618332026983021477625093046651480197919699170799467357163086431407389058133893266932670052113321009725435652735816371632444954158435776752865702339235060822537565188180444387481611649230465712789971158834248309108897512666448520135491282788242319515133578489665372899873295504012135658271534767992395551655474243551463813401634109563254990114494038990599111212167576979456798655699310751457762658479812214613410805389978535834098041303399235743029064663593536599564023238075144101509472311730215273774593489136315800474785395822127997992155172592912090879778228827398815371099492149865329573805774782867481687286860345539068093000851275817209273461818895962542173375666548180538283754833849656720890302650400179210542363879072346661162838188150936254311928354129800849418283554086477560610611805392016400103326617829852115073267834628328039031292521593454414693090802864091840576027906985389568624767205032661144265556961160214713335037214772623726634211552322278029804537913134427235740566770797195796425600269812553262769883404472644666960509535450667620370536715447684189252865965723314767705545617703393770017608404197990472473923830397269175669852627985202766987276602801062080079964821017477693041011207305788825476011057748572173171643160820601130207805129897824360908296364786117191354441692706012085213080673377772954971436424438422742056779062883592149312072690884003314995596588572877444674404521818949490498981496738262391156026294139240888808898531543574493589950270849612715648470641306567787523390163232578401056851426517534002703903863810866509111501093522153853885651857160649530444657355976986891352185495334689342663297802689924932989718633451877854504990478225040155195864740690529395134667824904232050089696388711698492396138913026636068043729485189392701119603074289823128395180069451740405034430309747792733504159642167141112595337546780955149163749718866742521461291095338845841038532452710592868991147778420892426402431844604945599436154503401887450963595874972378823948199116848183099095961400191393485068963650364293771369997354128601803156569626159121834407396493397775762255651674960694460242540989987895176009926668006728312681343444250434626251931384511257057394097769542947657796988470974145895383785752756374436807814997156191371296288720397455798649313752210401439751568261672170918948362867166164114756566752838199797458985073229146413668008178166400465843108100985016325443704083515480481819907175418653438263726166116763569223777211424021613274817311079832129151169411480850350820871092940595398842799297381229816286323425264575633293740665494349453818590317784481322949091991782258608460885622621465426686662746744968178459518891660097963460002293789398737560207614239158203504731414895800806688866970265136170566242601694383631379367650487753249326631759644876912599172351996953879149911605593440520989261591254450719578191732021781874455027951099831096993766442948278731375540523640226713417763380124342352795173250764879265218032424885151804279294114932488410463670511861026361903310955073523222255073209344959507208392481187456904207081512738096265086664092240742160864683636096313455313519896245212111531388098555154765055119903993919762390598184125738108954759251403391029770894677845690908379570664200135745692273005980401110458321201585066288627919280026012544696529039860708460539932226216024706200012657074760002804763497781263872246961462174313856023064338805320015763621347725550482091012944340316645195661106161521687856886635494927940793589712569403863013607238189811099209740967788577595242696408201244810092817490142953972740648904951046960917306998219260275353168365405242337284425408977325155862011957606931826958096827873786351548395327806717759836796309861195371293831904813165954076058049301983602380521939929806692684752431917295197716567146669298074166379066558460476851181094683283496414578960103466789560881637621592436041098657777607757228949766277681381979991555832221507781567797264168450154642150057351622426616089449271688035229908147125263845312125764322983253717353076312188921698355846457262288100854880687177525668191910959573374731642774864901568013186995436216733784399846952730313155284747565597307103722672561797151439599634030167051556064782626243892253743382319057473605308253977643887600979590527254715613660039417434350933169825384819533388262616813542034116982612363012140450647911447075725828114604342660248144066534877340754205811881393466066574777597880377888585146293404616107210318562033726463606705673808378185584137590694526567116048103611665968902262507988419033813335248016991273821060416109707099471229334757188810661785225699228697100611063678419211871398460499372366670268181694806667905118848511749347275505826737125994141746029898716714011251628675354504454847888000947062570115112822206974114564771142512303102175459105579404628661093935170722436467193409629185453755903936231629476991515387922193260598922786641847035808038558503581877690731280594471935281073525066524058144025317013416505006665398847165724605892435801711781280817214031108006511924536561838879561241839741201357992214658399064665709276826883027350826710508460890010855742253258151928841458903280468252954434251341006468807037797109470449671169887047551528407662817482966872319222998383425019374743363988137035989893803940598246870593692929014118317946850737447672548247817349519221348936750748249270455403586952440015122130716053971402862601750671013257891630696568495191328204481160698569137890566288028385574044708378861905368016485084889038091655382272200823402769925444393966410225016530004902637462186689320546733951404647674398825119247443479558257763273694340757768039771538732533169334401187353758178071148958212355833689399802426194140946023134834408175736278836970427321656448466266070501560898827202997278524750528186064753667869848893838477030563196054134633143560266218236534714298662864225864997050631476172136550937304794394793514982523887690270874415176549838646860499260735475917271727997332086314215004129393639615567418853305460094139567920082045762041781438449530245948183717123639314192157327786051853098639312633120377454538070915509578420937212863276376899039733075353964657019686310649537085303284341471488413222534820224941383322329561198263135686943058403496980643556991766722239677453354670016026462667082515156917443058374288917507638591730781247307004456044506335634013313450774521065038242021147116430896819966425517101309927937237675338544660151540629082977333555061187893187329533468526275481619636031006615850784433263574176164253135621446448613036755718601081276654905276019835269548695843798469926672016386521759777613184931839067394646503013682657051597281806675292345326978107316775045972821167778239995362459957798362710448525588296550173758992337797093723511191387535470379444166269713822520430731074205180451881807699479338978947244081585502981181523190936311902584151909420801709119888511280895995263071963733502536047852295303887407374847660969471081959949960991211735517743238784116022140058268446242617402012662263736421377403694055127191990294306325826385080331601315037109157845635277114481871346177280701694890755265615349592807752357992844724537918338350745714155772133377753288271844788314543188704670943573759960129259811166439511424529143337904531018575125930215638266195465121133855718685761493263118381932284484103554183817158486754230506945669044612128821500844937443373727733277175361853376475974640425893868741286290933790683272743712794226312743873621626910621195316266917460649477737797741658070608106586323777753149676688356947014924812460699882282510269932416640361664025837928330088694128252664608854071906588496770521062087704584296251852941312874121159053744950163323582138065945480591673079594483090896791645003477310376346209261970526292494745918999713280428090760622061228863810933251342828580737214116084540156381372999336167851273912509714079711515555138055464464034501893746717065651937851408608213937463410239144156276571466865109137370162558930973637900155086032304017519089057969172087173967304699818381797244177171785279696749901900131365109246605231704912319738054078756648457508261763058065596669618329233573338667448070295059179926226908207650408040739979931348879560906372638881273477028100513896852472730233699020110639061077381294730732551434249959859236332777206736591860611162698110835304065026142110608155735236898382936560460264459818631889497107768658793335159236072720448948978208388979542440881686546726942203354508962753901348087010781918854213950074454787629880330666200409370479076265361911045013519043443298542840627985570513963962866518808577800120265538604235223944124337853141809043709057572387768798002318102453146850321227426723601028839086392094708520002180901786368275476069192538068910985787309687994629078148324342775510610487582854806810144970947983483680330887482218685404565407736567768510669308622454663263095851095104765810485537394677112504741720066018753430403836975481419835091289158247710916782842473511547151514180427110996353741703122754802818899817349861648621253303003408594542241636135424952222069775951307883755661043435986183262414601183257316310001993108865207265252006487209170145009792783254895253149540558278916089156616581415282064281698605229004113340121848071421769487585236854941539933820929657188596300166925674219563113628060950262742493888986540527928008822974320380257692598404435546433560636247681075727558769591603603179525484270177397055877725592941783701051696143499048566071515015715110595148935537940852090722051996314946162147904583180231037815796461889155614160158466761021946216725922670071215243028734532209990590227107537756840463043296705736919080257685163116571783368527863946828629726737943212195116774570156731910297518374132033233982080794760078471902930218696316815830203906533076843770726101688781787170751123091163581228827726973995176916754521846941163316580780840111886435711686250214273503863675504620721998210492367939930065892872756564982705864466010974148572948169545200549107813283212822386988727528114052906878244656620369870476520814183182970547284176631904733812196513876123206042122491289176860341490815198941427993546539620541610382550629163623150281412388653210958351103627489794384387373095121289133257507440070276825799953502270151428322213526808331828042695527238411946027594523047507462076281317118444165486492944022839079170855024863559319845536416134750334418824401576472366214239129795623729647320853359445350996809188310759145897995315703617839416523450573701948649086866228922055327326286622337402974369168860239894604477537146930731347043210321799106325166274435725345030363859537579201457612288364237453276587782620859157870710638004021994239624731826489659280094626271947212156142376325897107235913030973166491289343600039660486458725912027049509691843671078356583847050380811588764366487430019882334938705458835757285471828876862673608285988723428848609463147423382892764489105512819304341687680001736492460470119753403546935438501536724421679990182588104585454387474151443246150081063282299180863666297458278202691160894429372865346145677565494004284022757558973734323542381267620484517479316986448627911069680312025275083395572478739955270508323993508192764931353429379008266617816567150426515151026622426506324092716420092494743960028405958659593146044713372119365984172425017215552221063237701448971107794464051767905319021532050346398034915039829581134238238738241446512050146708455113548584874275904383035655067558171663577216917409740210692662752917898640404474814598429104811093305120619722874350853244163422197201053580481355364688511080352744253058011962550651894409283385602013665267328799300531968484276372498297768381784934886570687450191977170313719338152119984596215929314440086877133010637425614750721093064407824724143858741236669224985491520809190791343615303116266713601518965179513254931248869762736785250379683714618828198546778731532944832301612363645047595569808208647160212883656120114837737059482342442214528041964994343395260735750243392266159038126622690708445955427769702854824257289106788516919278303264298583676292347868797187439174581710224817833119478185597242993410252232965846549524217419555711854196817220115272659396696390311552015087439129409741044703976098423078141702174288253224206279734138769360063141614492530508187025611619387659087628227359735991862498902474681027743618526194978560697497238629941826310210884823936496791227104433490212426436632504334536931821226066909186579434522259133241016815046563427973869485472727857259719782846117347875913645153415589875187443917310252836578046099177913596920610450585259813411783017508697609597529313251485659844221275841348661041709519675592698939591662283556289515730049172955844485829059633436202263078288228931207473710059865868330200577683236461980779622173326175613830240661063164302188816505574759160741117480179329879809144603503464720193318498672165686817801429981915636541716777389720764261814021989863854790298319629723225537785285447276785679415162616923613411984417749443194481570731563647397233058129479936116086159120035754866652442581556633177557134968129165934845760706142520901232709405460809900716846219343704128135249444464276242645612317941279797772453084607622553918861072504011432948352059731821932890027387515437957944788919635924198319632627236185552625834602759874690505155147073964672383928159595009793980963477031008577807724352999646452909818056195728317332928340553076659848241476781154638659972304316413278948392067715362703607729635220418975261811552628033812031375460125570196294326079193218305536493414726583845995706859749576744133279226882706975570092345869730642385057750753159128420398731131846772550564565998292270398372487991543352470976818360401080052006468495175112691426121698984909153744416696263490521895854897376021581103596286335519624009040774900076691960206267208074425346395143374883374731686500348698817062854196505540442120289796665996234090524273256606960915081905169840290852609067327694852388430266516233291308027850744677767101894930575456167645374789232906988741682564194650588005188335417832702385016008466199601656500633795115632301971880631428882989643686072873059798942198839518479936888344646179986247757713763342029702619063087155020529544441434374797310431611246865173240835172676641979454987576532963120630539228741234389054164970918430794355663951322002135557996201704065443130361736948501881245290425324806028495222097029654367275687237401469054353721256814008741602214447572841075214340654712535872825235754041634486816113016508563117503412220592169883279879235235241119525391427228223418099555540235827293930370269383737313140925440706448259532962562826469913947387923311591934345714942685930422279956932530379041243232215197392717329932104877647810158211268871416551321416267529633903177968806795923451380807232048526160423703723941378757542250893100558569814504626507523548281646087470463689789142585430547523185892801773880600797688509501577280033495599715096164155078995985114971684901725629485746060802930181978363014536473980485167237757631087469043923974482233759507423327344854701766107304639847188805816326475400468127296177672796121406689588738394511402512048955631252143504535503864370193421228954690162600234646032057187353057349897740009624113241604153858463779571672760088074647174728012539524961484557295771606436149321021936377806071158210681375237216254998737238068487342981884179142953957081875251651965901623336032774356124027828869507551676218663095763024449221218296661314498862008076718708506473372794480862593876402223968411886831903486590132649189679309005449917808965349465147675000302441283532733840172398575185807367217672367141264841853861034791399713292761073805252743509783556938394638841243112275188176056468997343718245029227020220526167339128822778263343804199903629489320380908899580557465702836539635393911693150480778413886795852097960855366968278593552389030938576238760083188591077458626430977934686535345814637768986063829510386972722401093514766879539669033944862185302372686655143967593681039954109494271012919570129247595135828621522991652860591755350579555721545901800299879267788707921584640583019616971565325485130092001922380653651856626884452783547658433441679849972715539293209520736631049924124775665036921554908810110125866254532357137570148599027984145876194644139511410114826093691778546900969824789858997635519652958383733629598840222024591945736550922432387022308914415077605258136407282117461182388395399156609333735619331416945583048742880905035244373111454302121104289250615173821664290667997127883337012294140370194964429814911962942450286070648935708444240911571868225493250714530860837343908664795686622355590385456129561525248595141987010782858038425290360971614955709663181578559375785097805437328924773335880023692617943426258682837360031268248112798075855881934939370038512671947328490094075364666003530973326202810883516186683545207432983083640138388485094962947839829776554555693465271713159461500189550701190963125869495726500776287110486960089954964491760317058381931764343556581320213661587673901201614210755403992375412780008308531889163442474409466191434128908885014667382442227760156523499918615818349962105359802152979351660788674173807172785762443321398409273975512666287705138694714157476242392030832041487744539097965355118497648285923096705800168956127930072297955042461291383848989233502789568514464004751510604383637495155995910958000196204743394427725871135954022976775245450258798028296438481093808405663810771812667268269668505319761581212445764321246482288955418074100895298803486429476611341073341849057776933881859343788624194488645404555432352292025771592650073643773511676195399411383273080118644881069861870343788835992880585284932807664547902653734500998649169122054299433094995683449582836130288318618911015576091638700544400177893928691661857986660233908831601327796506759100065030033631117360813413478431220404155172140264046489889830412607465949549075068747813393867891703147328737103980619871439484487429200027268609920041408675954121534284719014506756877567678324907989422862075306214716480608394366088796130909977653962858536399802141960625298002041882796222171437607397800717937687982923671003517389374071707312563479189374467943506705531624853687406721524477573527403107538334991462909801428898462490188867679961819485392612269028524501347283239778140546265474696073111749029901076728368843606815452962070285556636983239505642896750059340749002931752359725290538772555859035611030989483324938450389996433777722442411666379544015419451041494992477645332732048508052707390384829564373062094510849343335541411651524980426539936007343572723410126642439398487773021901944631530564333379185976850109095064005137981361750687800664363443872232806329929414650946680854776068358953626956095644063114833845004197778756457061899732391554024886582672511646396998815780500178031402338746396810610816954657548022079784416139459821776610496328389911559036537466204170228880533035987830546805324490087999230731966845211922704991734909031111184704971072553759440697986204180413926492650394659447985306377241288129507244695128800717623951893401433464256464098849345743506866809359299781725873496982772852630748937482075057775087264536897147075361720413051279110987442477010572484039368741622969422034685429290323499157209111826544526146894284534995211495761922268732044479791195611232599813410817649624114869910535922208244970423613166561549793047916950325299980164823019661745171665116509989542930375709371988411485723299757982591119555681636422100973636410282831761543573709360243651705339123204883666310966932881218970271505938189595300403678456518087719481124598436365893335348597884428355604877662937365331360496192836058664977735516235242340137351459147231773965329572818529874638215842457776867738421678826321242622755112649404043452986934117157822956485072075679048969653816392300030868737327305675316408178883225537122198909829785276453212763139452250172549889186453034771169243984444503391257388129953258400859618694686112126724670302238117231239358615805612071332972351240020300752053989295897696239811545616433782875601326088241106950277917655007479596129003609037991723915289981932172279940692897312691031600926039812037969496400711532251605764336853412562921528109186085965064786155634079346576434928653723286257944379282712403248060882528661953911961855136725042520866496207767171118396190591933829570955812202276849285330403495233585830968264272261313592472614244651797121220732699946891259129060597239165038872550563491742674346171334151233153399639297263879606531397772372271667120387495504752540347642294846240413991517255527240739065947934897161992745409559880968408811096309925894543568034755738422354079611452360459814151855507746805270402036715346654890962582277754127093975009204535367643963208767082130417612642114752801348832565751895733512107408850280888880328082623328658828244288091908825791973449116654064303941648048620628694367898071761973638292522530583666199693360625357333629798567575137064727708262465338265541304745123416027194890402833743295868638957002605598933447204176913467427459414359166243657900928562090890887835336974163035331903589906127852855734759581654488642716353973070609715195347599412195865053149737196526079684779425132491709356419170734559580448542438428654148083979787329687900452314393113644845626900078787776540733706165399096227055995821983171090861578314370004649343242281066062460905638437925022384080622312510355480879772105613868256134018420814730608075305499735131077467848227427348867376978022019360611398213267397858809658296336355651979438768205613704497770146583666335763854953984426010383105057632942399738343889933187838087600598981622760354766889097985866864347347803643791226083723994250210902160144119231020320124035324924716314834085751956537289760012266273734373191194215713015916147769209386583758977977630430654676217277405251620745960625715887124895236120544560500139578662678659143293332101610392262556552384770041527616127343966700477501798885910117764019695728578589193238567299303394216526694925264273926870349146893260240195604646229415797520460389973298087798743915827281501897118844872831831158048271102867774203764302138307236650354038592704592307446314854173029669317002810243128449803254730553284771884843372336156074385677956197382242318737398253948206028243885819123399562993144579410163479026364359748128319236820182975053105755145971525773185756722726046234972050177345506818956687549651255250358222413738568657762605529167753129362418782599986682965152367147738893892170226125206293193808386816766913790553984060006247868485891402988704864498881284050802226027540129681691649928679235296541829838123815473299992700590522508036009909367948889425816426687210023873630161785722488644452652541604041981037119359434314972255659098919383294956970021151698468438533730980648992610717019526118041098439522549896708778593504203060040038373753199615597331583000487894838955315106577309540313844466454197221741377284589058925416817181489043414756270524205518025874893286677045475985415644319917093471683605100404316696678354906578074638417622220985578084560825196377735835747164808185640027102591734480244529967049279478371756686826545545066960040451011731423594382131610770491050538015242945569768320058520650039067431506530346981913148933796253009208447877016877376129848028159584283935813308556707707736929697898109025318408062560211697518467689504221503472356132495167696524730331746772534591628128183497887787657161228959223320565096044084418596584577444022868911697228259685319034722583005709531039051056148662513157890652558401138241455407932335750872111181383916707422889602513607840601907575222966732864991138642685668666388613848118367600466346561009802340583516378375471764371228660114272695393114517627459823772851810857871960892400430245347390795161319714963491842508676615815505650625767949971870188562032989681887484703730491234869777197759783030048410754021481927978595178322169596264350436953602156715796314318604279626510665924307826350240487425444699466094152707479421475719372390566899687347418235648982143041668813772026365339333478348659525687821262909853893455856917088613080936859866030389453743882560059965824860949318073696236287390643752404110888660878930713826112112753669847164512448081530153593390317671048344000549870551051355844588896940579468705261085834867195466792729616865710546718606587807497829117940074609187336867544415121916820332467893728528982299435589126189339163364665398143063311980155058817730545110881096586630788023260886995965442985741666521855189123455465129448475555182790942986986776926544721321933340330404253395076781258440852059609294447172896396093307849750767982430652563876103873517845885330094089993436128939994649314735527393665162370305877725016988328020412910726968221267874196534580958519065490100258801187878171333094193858201952782589587788659303310738438368749270657984589002475385882510702326362780951118611834998330350429725860913243232096284009964330558110023234365223086134977919331773941276479398829852681156940371372964970408092070947857367658344776656246319550052299621731885679649634075977160038481393970982193963900109276132834449299258790333616064851163505419472853481355604736744662577963017801126952104769228391992435278658577531805450348654226275804133643661868255296685261238830255752619747911048849720390192629203551770591762943102093814827959620304137196614794708280981539793874977742655925166539126121660269453718507210002978131511412454331584786644482980005048535867755487833494547927290512619244153873634010111491291708732100348126531798558967600851868800763711730792177772937107249593119482527217423870745448400547451088655392930726321821331740351762001344190471259771380986104255471237019588679532563260641689342986323019751993467790701657248807960125735692176098684296645611702403009161506181563045002649473226713264757121629135208324509135782797468609424102654267704270935698493010793992324275606196604136601476286860903668458921125667387254086951193469204869354045761475287823718116749981311922746036183444224724483589806876536522323397150752618445404423391596553520389445758866333046531759132622708591677623803716730558457963944274651608523447429350291077157269726345138325920877470944707723650808465798139433774897096155487659372121573757690332773712372775530145067085759165581484299841822733065160928987931110681873775938247005958465233381842108250326637308197540214892733365182631122381784399015899939218022989631000274505977303627789871195943060521427413088361169173261271916016094468288694379882614109849132374136368851702677342572763797044389430634676742079857509328599984893184174377526167513244108409756873240931221566434598278661470917203029894099835044552493698717831748083330976225494113077357002500688254833657247612662960527417543437632558200756835818703585012004203628969964773048081426751364153779004261727577776779820216745148521888968035327535798613780194604857614384856137836712581033179390558016970606007028165181827571145611301263541098647105395825505586042242460188635344384024125499539282031613874276214963957491783455072636030456079941428336027128626207053195683383815452667024027829238988179337600364981139166860624689572927034033617567703984502985683043509593012853177274135830888495977883777672427830485469197495737300486340765576880286319707943419299599956355267245706665757892532819658333753985133488355285045617698136340373123064491261834523042327101820086934941231984218944958878182975149978551944199064403971964233630928115493795249501174326221442952974771849748644476469892753803727327583887055080373917739548997120187155188193566708192177042641380003150378260914662753932841603309710509343334554917097128847364891130636315946615540603200371653107765689624633372503938295170488236447207994368094483930701268751833517385149380729231043205934285936868846414417269014414192758761270717131678091537329820602527736849488121174371867256142235642754459989291709902430945777364647964297487578381891440052732041948985861145707087679516184241733522936786660091977161961464362063951817245014063267149171655924072894774844201584597689702422741864272958201086022450005915974790374212868940832243108122505363660546905965253250061375561411469927391170453729369240176749540791823033477184366942359765804244831245642117791656941162410755544758066840731148263765947044380748390789928807939857005633909097829335032772678567895357897096174175007731179652035680670034220433809825466311809803419373089816223755805388179561954190902506544096774031950427919354542189674243896376650989817479110467993728559647913005755563008394086111520483981289147890323324856338708475812459463096151337382857009853702582859072731521504032541624280479617366294996014381803406872491767436898420151718261726734374759873896635870359800479094117724281363425794837043646994306672159313488417648080419453444860305562693642600597956293048898021593811714835594973240683544836658240932617778863256823073260591377501063501331932735301539002019763127991692855451620053470273138023698476397494366690863352957376327997664550351844371414047069948026416837966842655655523061702583993669542318719691456713847438352101561194156922004010175524754297817987682643818150541941332705129377920989829984341648086987382016837303317951417733772771791435995889970537052182730692780057091533114939505051038161799103695780788619790112274187586306838706944823139612623286371137647953528724705513241909912986882974111724554877552367726683245830090555862735836715869777887243482256113205864078838132684367106202200525166254469617320347433593201045040537053756795078908862991205163807650787329775636818455722829344107748196303705134897631581329151204702170157051908819976147165226446359474609694419853124859216402956323150017551398918173039161865580266851227827202595165812632832054783946070257419822838204332335520310108086649482986945622192908309990327150207767630838047073912064815679609561085073989378223212353292948392205117931836222019718931421290109928642892442427488300788163939144741483694977182770196090686723239717361655893500186491216760928214625004995318476802921660176869076507541720207076178012936835604688867304514460660738895941236275916369124373501554604319309794261088685930793653618582259064594624820641463285177918228404516790893153258666860982997789969302448284334456140690467992470820404070351954236700070108109345969782759793635503949470614354093425720722379975548514950484284962451225874498208365988421153004566819810369848039525332859182567315176260658868444402171739218762360037169095154326336881778572537137750767977509719713900841677056793572294650318697374582570664053395388452200849712739678435774467340552867152203893217050457464246199535159599483539814626176275767370731291984076381599188933490134157618475009176725803294539958789783152888889722288194588652699418839297448439581385585323742645620735718804872893907923654857288456844887001482557007822857382974853877323630221117043999341245597235272240652241110714314213790765197128884174948392547998638992770375196842011627841520346867262894688623530166263071224700023569074873549608709324464657465964408269139716418546352241603494574334076609646810735126720160735948290533464366627483808661164606756471695744209485757535669031008845459859173262076134214184209451830580107504206427503632223261821974065539997078849823512852878302695711813742328154947921776988233787192437749434616487979723922201221737155851696458103205749181014442690048467773583056752654886263076500953462325116898235295113171219337942346897717779368112910626298618520932568304579500914304553334082144863592485388819431104899117530421760659019090088181406937631795764943781402254298510570002592995530502051434577599595652691502654062053606783516528199076578401124451644322160333180688453399343526756008795063481589237342970652960154441936668960722413495199364655418024268753347011257486105682250886510870691225160497297440528406392453164125613506377193916502269707773190340024649248573932768996612857084626561439388492750958539290376980325415420025082086479754509366090646098211329125242937948324394793302923445876538048268376193367025215974627840425974688378575336601462306549551336985345013656710838847057465143108942207704868860589012418533763121166451729364677903990368125122280555430481408906649099609671822091424463490944451881295767933782860467063030441468209296165776734216765686017928151575260741048750474640394498017300019073869201696456250995401762001749603194611153921210767844970966270023066683306246809516245954220882305474520208361359414890209701062390727967809673214683205006000169404749362913563337787449969596508898404553443572041009366835692627468874845089850405968071376810522858979827623608485757627968930042627527019839182065269222352065725230689229458077530917512105769344440179975081815784564293186921682767015751460000741883385959516609581211822541220412199721488579827362734914914481912513590027644701174647973938474859022163566117568472097745113409990727278162383283659838441448334665042249886178672527996548088304202392023765243773948700255459776986868286888149057987140168095339328304344776514962756117089139490076933583094794840764388789203443074169060738061065816867272661827126274772063742182120805570241007278714569090547734345044061564490168072030073155556848574777752625535904805975257894639212366792476746113329098722795852361296663934240417745943805309789454019623588725683833319731211137401975217794694155509879138601830489583384443531345733898076087468335295668636383982367761854801348001460730935724859710602325490194200645574196584253118831506584816927808461742807241591272275375141624228039846319963820263475112616225798102084328434690272430768597010421733544725950197450067567029175916336922240090432909912949132930180313290980440532888700614042797657460913591661047651278984270982460084299755086770105506356918914267851944963472889279789514435363297882065421104625646722956383800547984638026308155135295254362469878413837703652530411922046074347572246039690060225464688560206536499749244389705835570627718602868272326149776317699544271328638887429799752319322210544095991320789566985425533144319979824222621349810423501122018308197291766742292185713228262571185661171446849412728390090053273248484176275819527501296863603128514836099881662191009960313495172231392136073768854969015632812079760202102950269750066425013783653905506361125622536636370085000060375770177319590057347383385057850394866150714058745251566322802722266952990505242568853337515942891423022729802193964237428945885760802688755163380026445221099024464388074640472591198138724883593285611263146157835684965031198402227315755380280659455231529993314218962226483726729499112921724587903687551661172422068776190750618937796979401764252209581355940905596389362192225068373766552037616645353519772358406250327457539394317963349342811341141957807061980082318215740035212736134898686698412389706740206002729677376510897702214291803210667074241518763331638368584847904883062701187139217390338260776774082831503179444373345587926516686287566804627233422939990977118233382754780056707079565756185000330131270161732053854131117432554079229284835218772678109831315722310033610857166892258892057568197469336719741242310536068956110509081191695408505840907714354815568966214223027447949509498991201242903624010496546697465939185348832691429340377055511997926627164879153495530046331737228251960119683315503923215578091195868122803046789745739440007633152111134618411576440075876794367563488185994122418547425409610515898368002736952220318502907007240486799471098103820822489490644316258287707273465672351971044441988121010817962193150030547109274044198884327074058024544332819620108913295402304619294974136533902179394292704455192224903251892402077527198734773460093122649963258298915438648993352328685365613286894553104989626677362063356258249518793098000852935928788177885555073008796440966127126774715486092270021267977574222092732238374083077094978904525736819854073675258073861588501448239358360457855991884389915582620055002663375065480302665687333426561105221409927929168635802734550770768899887089541784566946449510501183607522417683703292748254703691117312613911356181976394192635159465110330975352658926669309563013821075928569687775189600590823158408415268433036170822039959621451530431479072831951784036926415945301802160139730279043612779664007775091041736683667568692149219008819948979704343155696735207470083308352986305806253389398322676985521465483479137475532233719794261941484696623713168345137925356987159013233789010136898621987440079998423602154893048533023052254307309516229561012058178555149118944313426815919873152989856957898503353002201697939697892589851696650112409809481395151747267118530992348510858371123088989891494134682985107402011484987843690272934253959474446533450038764097776194744629740119103159140143302481503410324351897475924282857955003521238011464098031993360758174886885438722369244441281555476339364803134896419700958880663783743803778131732261838602698910506269264963836913346071006402295042181151087366927189008419811044168415084689352827099554175797180128866647585140784320239347572424869075510758700844770707962383983861886481290510434197461587819222933406823132855661191471382664277005014636278066120837844326300231105778234389115478433040585357051194198291377599711208342368741874869957779113607319842346100236716377866150883926800485184063265164104124789434878517694999568112860123649066592553924634258961044141361807362885431753685594806833383368495708514272672244169848300856580977661987708159993108478140692641321379976913049911265441699360879697863893678364575574839091899479257940785780173985453787795712551394043678795817391540414154468618703476384585368363544531816420065704726102905737321542234771895165820573751722927268785631143813561419116496072387689858943458691209393570691731999689775982457846262101065854650182474332158254575240764710268040050871268550360115677368968110122278706605823169255128530693666887155587152347122951927954808563043077219949710847046542761845469910223771819653065057380543538149715744549120172509867255688896285992858945023607649484958773936290625666768541719825702180931414115430029531230161978853361229842524792511309871653583099818346245103177058234490549648432202916726013228646125588049821178362995655045187085046666971764290725362188513917748614573103220288119452487644659197509428993158384347850957040110394337293124456465402146848116762964742860066484361356905400697277998708147579776545568759430814827305730257191535164297438201749897072380380150578255207110208741541353426750458858979379750485904698893000481781306572776702181201005118854590985893307676185923112110847432177343948269098695240088612152182980174598774297052350658411526642221644220767645412842376922684059629773756609703935366404407859954278926985796189259040844476415874834024749859043444956695959324658494153718422580654384969009797289043405742771457521899735465698193905506065959846559995511439189321939839117317308394455112428380944751767268047222303284261710619511701355058065598727120368837911669491013563713603548960927409971759756754514316031337043026260120622316772742199759256374185692214387586915187189245970071340448968462980774911916393597552537010158120043136140238880766011162582699346464829673540721376691226212038757260639936905789011537734726683102695651512364825201823758822517477236822299673623209378874551505021915630557430983122651458351902926765701394951875386759473166124797839493398906017724142005092729964556542633575139144102117698436754262860000544815277307140071351221449993917308431078866851115060455387718594535871933167395459451673461581052845070145727435206106401879150425870147722045594152268923781350932336102258252596194900618670432701029113745736124551312226909110084192482125946710413862574454493529302025654952142244175938896599312959492272846616863966400433452773766287784946363317646143832742801391714649507333630427818641320388798030287094023752204437767859090803029191252138792875767839149155207988324748549295570178244707788862320983517502675280934187632164933283822116352125679250021744341737915427354854456382548005447283390353570885703081525849451587217460889567852032648267056232254776185769066918734214523996456916050040664724055547085565156377478380729682536314643142191973047247139218970509842244846685270680235634449846551909771207328295618502879184847975021459740692194205164740068447581404320504420342622323473079581817768445402163307854321162158571452031511668912641160262490943773077997676287349965195207048394948404330180947543133130495049935403099630338685769646504053841516459627918907815528302422811680300337340157480373369851934757397703632391469646056249394672177455517782548181097586367554506431551029497819689197124408925082726711016645103307916860216331846683467037933280906231712136822111061830075431161138452953059935067970547052185932108915182298582143938185265829875944780535916763789836775929243793127159020462949399786713186896001628083222853113082055074324862638356309564271498512220639081610803506568150248703257203790685829531551883472919960178006335056052323552944253621163453512126881384037726206726184219946334687809154696315417997525709725648391101992722840381921479954897022485802664718589110634856946610919398275601617485243711206209194599612431837396776312989263981797880422194530757687116716316953974520248922029897271703139416599209198922925006736973293668832446165146135027266042172870004836935905200950968928457411583998313092670985304393722104618615300641386965377934732581479704585422634198136833125212779549352865185921082905039327847876481138515890042229147450259382162407656854375851692913031503621246125372396582072813058960608536495184549839193586998953480217965711523869555035752854884916900153500593259052309855076871907851839454878731985023399901912719924214747134152438205775413445736223267946181870133734362774922903546768799460015239942148690542990426234101891435894579894081828857339312513989479585035873814223140295398985288859208852777015741352478746115959958176488863809272907672999775450899991709747832280831726565590632845237746956642289462385954568213999780818244382556172951580912786033076015776858094978677749910092299465619311247622030106824414051981098368465517580782220309764714701516637159619938174545042522659070998805277303317121134105896395791548485416866530427619666516031831766540130369542115639753791663201129405835024588276933377883350521538048786008348091730673812899710743083856766988542084607856384904685409806103374671998016032154416022911786993322472983893343798218695120208143576559204968128429132012953473863834907807601755225536553501001890385806882728737382337605080850727500845374514227830230377764497701480938893412597269563238100185133595779393509078436057737366046139235504643649014635682533484812697384087098141522174037450657176126123630149818935494597368329935779220036570342186230892121674093745437388096290483493104456316271062635099104975632447955020050691108726343699449616564013345672759241772092112545683010669188700678691184801211873079552568588366274095778980279955461295410802773119516048305827345142850985932315582445051813804893130780224370487547014363233326542426846525499885325490413445470769706752029094613189044048428737741479239069507697516781209875643405373807253611002386498238300715224343722070795234142363419971443149834556776807253893885734081637241723854770153891591839155626241312066480836930668249704089275431609830162138506655816503310028655348333630583782985128112962756839966995583119532223647446542270819881700165343856149437238634674089442362048391872087972087504660512331269932095774007206293169016156683812112073035757742272194177794265605818811914149473006664130335739295530708320603080687718547686778201823901443548587546771876149389425146588583897686264339646660387577137289862650863861426130502344342651472023198630946431892349429457999098572921797619036841886486007279035855487087625509461221511843052543598083762907014449796163884498285761567486271077425321662410556867078646231857077477694286203182109804763039672074427143323156909819990225466058448223434407278427768078512644292526764418985838086770247185141334767426669486267475585096740495548722726692172670222908122167057270161811197813378039125570378788956429594310150037204747239916552599111625047168982251911117505449074190554083174453274238352711821881545503162278082201633118247328984860247533834633587590735552754971233157957094068690282993996620616413252924687887462737188428083288864216313104485225664923294673574967742325172311500070882676982304334234973050227619833190766447184936815064690117806934050876658847693369841434191008436205615746098080088778623917964141860884213186113066819208009536012870835438496099750318399383362287344607362330370608255704343802288971347080515991708357343877149132093663635497796868953970081260435090631510622025673907032003271193078975830424516242248033318779956910047374224799389689930136920768027121535721768190732822166095204487792545106679315617692288575309899431757528822530694186904687032286574286498467559537034278399299146555707055786591142101779667568446499102602912594414991430666824778211670036078269387587485997148156859479345431219353808331507217181971236786278900484431088879596848653708430688072163897892329385116343782934728829028653845148157507984665530775325311305485356017709771909618823916618831191090750439097081550343745190091213135308146663562502506608244573553933668848935035621286202705050107554656062855252595253406954100933629979392771346620656963678545564618752224372353246678729787515128320631901223537027510699238507460973228243078033097917547012938040197436312728672089791034072277727586036600571395408103954273126313767741381767312761124421261180521054080540116951090286893562673077200430511774461048618763052972189143651444005589076693862031276465415636913951103392130785026999005484844610828668432739325440052821652582933607322837465884489146600182663630008916239355119338956282218386132977306153765307686839713512910872015013254526646627333743349993778112475048137815535424525374437273595322342004923656653697134601862114259029204255731628770867225441472050429553577134354347894371550598908189082275303023473488905860325029525579333918565881896016937398978810566329550282727598436707900852219124152447932851380682016335343422597608127752864644056507036421816378303427379115153592981915171434846714169647549532512800545368714745144156512990440813522078149406686425181253177996512530669736215961933841239915924247427291026772054389326701020049974092294579054101673934563016207616370300858620004717902721822717677930292868453891833570548545721522647076720291595196658567287507700729188674193340079673927686290670290556357717649175088957082436433043409841595949805778635727827301110241397311803304879477999216877702226322290354992601766826337438151106690229030086130409117021543761767330527754452016735538335285795766065198367339979869824397016091055783203036866120475545314622259229223765133158294033967203062061364602173622183064944463384700418464934097511818787375545813880143238384552508812781359883330732237819719346783168849518574241579349118354501996225372157059277479617743690096629397450797156400812748791992412565043080440217996276407639388439026442799762393858588996161764894593096173397587918014842048356332813326840395730884121817096390933003277431676270092094998235764984978296757138350388442579324703207149952151138513209794271981658886453322929410219836438287782671154008831304919445908827383192217957417007937105236511364130125324347041554407095867110304130491415706148574949773638578888329949171549740650892748610975797659140253507395204494989331050113268815626797537631726228598237673875994071209065088071299080807555716733401336209161052035427391930458000889014985723724255689407094810628036702445324266967531657957907665561802510700744972889809601587860862458026923782554497230125793824415735376458218106278404397851373879770704374518064583135111044986112345805334072851163941716193947977157243407333292618702712749634621142004146884449044722312073731835682725268384980284966807088747198491308669752493840067813117586199054555528267748379708369902974304897298494747137278345728848413396157812394103410324216510944056791456870580771682981748214703374423655230774268111419832626162070393937806314133714843422384351628948382646652329723585971449002863308772967151643084414846966393357375594428410153297493666234812208421356049598067495344105641448600260212041631855345171468822116520519749914656379472089550705595552445674285686839132168694879555893420433229867168103030245608224929675206907706107984628422834633421805975230419007324812209822188817889694173024765281165724512384441828621714787407623383154932484440294449760731543048079826808233539600261431581031746798089413938484812032215458479789508672882913145735752694795968453533950012031703254082467522934053249888202520127916235509010843494160174829927608162134621196664446300440508590844855312415170787425103519619965293217834966939358117059107404634099108456542276630857947376328376166909419153964639260075209300623585220175600636531140011764151297686935536051687580726771798913231273738202989016099586719425068869528768064923448282011392609753087219770169187902781202984540462222981344184315423061398460295780275253750821366139824024075235464609264109730872497549512472785757923615087604328249937927202809777333952881107359859071400904649306106020199710015774519566032132633674462965964907103540442268089716113887940016710086863988374135926960988630397564305124842707739947163494928370634457665903903178859713645809289011906938384525537814589567949542059205655057101353499361686570281702570632083593543625571634723770067002848931433132164195123194107182871098023239437080130314421073085562635690719734805286432185984593411367713978746168354379146100039589132282926476026865232503769749195159624516127462317722357273276678451921887546150637721388691173490791428762876679121099855243645914912136473603782884301032503985760138131060076895279828886136976800070947580649104446737464522505269539041787043776529812908236354146664172114423364745742410904438362901976595602984568379937461627950887879984378241629313976640216158263571677920168814442320653821287535988717813704798373795159679517329031558882800728472066682634233770832520357934857694842495589400171284618030269507730559012753125521018794910291506763128994557307415732275578502419686987133229251794973609563648585689105409723862670448201407231104374213624311625559715583128884873567013229067005712470836343598852011899503978701986680331343066573824764304771008072098883246298817836285516122561475044092305819304994541889906820818235692015265794218102913730235161787366273677752921943212976405459182348881960657514178047216004256129518046845369971146098717587442612359418080555686724306824129940256639225340037393935733139736707257947526539336770385458239659286451464129639030743466686011398524889825707241407120484084300105077459763971775500051828748743647209690102354029750338646640692691225053776091222306175612204837814400452325918218620641855405437255757821165894972365497318173645748236109214934008369220647889768558189646258397943903991108757196330114980893892049042682072539732414235265437906910461597434435610705247986476278717522042526973023472532230172349238952016790895301741286559368750851285979477716149426391733122881702044583833020659397729010918651908010426053935907284780430134118770084944245625785020194200834189595191504049152480532230530630637242666910437736562451254907254615069556999187344908967054141950110067268357052801894173011596707229979259526712836016236573730124503650002648932561733100318419247187982671130255386507660972352280814700897961380560838004257745740225654328672029583868072286485765543770966292553734127629766208542422554756668678672549395003062422647275247206566625446854007445712323775837685136846357082664832499093071588283683299981513319896704201759835728261849570105432175350397896732559572416837376324101185735711914054507764612658398986288110102217335839808724614716251095817363807664915473981997450938433578316383836826757083671504474122746178871834956890539892279159988366481620463252136125612714571360906945003733565197447563998300728895582705022640357525283237107820529501574755875605248853525096579253319774055272263639219181899013169187969420416130554750015049096236393045526863092303698504887202349937693773362701876797965435110899471538106537688658529888702069041170076909232359436227374998801780509983203698217069969650585174727690080752027269750162633941497920398349158592548288423587783903519754187058700199594910335206920598698741163404995449640325082765663376410458217177338515136710578777219963887653938680095513422386497403563108160667471722459881840228877682203099326667193334446308969515704783502912851137237260045981548211329782726237741556844761995774405701298362297312296747198401636963895970069253633952791278354735959651158015522187005434921194654137516693498653899220475652712114378929450105872538787943310220336533686705289272887030413364530977452848378640695082540979158214790876246337370885985040039359112147113871169784175145140084066331573648210258330182487529799324195025000275574719009174551119534381925567246110620337708499571262872271849663973753397479536309191363401818806749833171724869500861166939952319839715962757356362026993102081857429869298453217494005313075332695834251230985474033029684845244125126597072976541632531470220969373622692899292245469173374049625183612089934298707092734360115634948390806444940842146892288936507451509571854763966046366486853427140401024461147060117252546901332293182714675809626685477309776915480415790135816205472367364619201821594641752462448540210599740914809936743614408676919928496172404495430206537959101408556655404604370757724001905257555067689765148460986282592659615909276269217501100166147963375410481568349001599212658003606695835206442104003379314820651352404705269020411188273477634124852638726044528119053454183328986655304296247791806645360919433212668506462246144894369709927099714925737752798209147895181840315142452889018994602457918939272272645630901862992969791430906095070851621595602295142875523803220333831732523936784756904907393122708318083985040712097504686971560809257655230246714644695943237026856965568217566757741316770369543535597365996586535530578551617895328123049680281847931811410406836451262259763812119584310635138504421482667792932563260614458923986143583083384984103911901037367627370507568779056560454995183472968634597833904604475235725201443155972312934866251029690255142959230919914688173114567259441332213638470973121516508945630222905490740907540284217844920175123363976669857085597215020241990795436356071741756077694330609562632137367488793611493414002369792777846391434938850962576079987565881921351652925925468814015442620662864843713783350210315877084685166651705852690583741888293713378922137229330715286505063891118787936852428367135141146715946769835607546429837421277113871069441395072657895384891298280345652573701239786434749566215308673536715773246905426643201006681223071267166788685122004126079508072648035353388563382125019872753881674546241089281470690776244238585670959742485933305726318187208904875533718345610105101586162638807155852152277526594336926277264397489976340858283043496853465934857297771973080614152433953489822024447557669610029397422427321520815343871178243022561334493380913570613022224041379537002369083991538569467446458385734244925744979807096890786250189257802988472756364267693259538633811092451700649192963948414951506942713998743467850484627802420077575868681157883007608296423569114429474079117291350916797080003278885935475835399663847748157584087075407375258796182670199305092399938264511189718418085847156988210446039503532379630137966300678235823891277745420531675321415927704268426440892572649879728207378455087475372720297802638758861271208295081371682772817337487979689678710481412809024407364693182605991632988690130108097216183879821641491663705129528463240169383077087660214761201070282743618256356667013566621257671516854609977177335949112305014310640408820660217107156619432647861937294073863687027005853096783682627690288755345256997234480786201993312703788044286428841803876218795309833716088264718133469129687775809092847786509379201449025749341338851859884856762781033132779415006852418274265940866038303431788569851865686438368853726881569364153994693327545258568124909999231760300134688444858285011417265686338915050910348682888777564850674670571031491755574466767469760447893308529018202106452682853873595969602684630858312707291390373096403226428105983876128085042989242995921186250417906018967242318158418460152808702402576031702690196145782152303134352902651186621240318703077318197446772805009537518575504599884983942364671451177846634031294821110974261727814277898745844447568404668327216916204419528411551628322108491772251579347245553477736415553474976061485681961715728753844782196887381337997073583808578367007405972351017365950012695737193338323818981810713304549405813875400084277611304021053806937721243739268598724348647541579998080170953131203343216172406468596081299270594211777909137019939778293728348005604326355330563117708514512429903125305929284499175981593069610301030753978905631854068945309591951928830453846331057490861610287850696496177413248750085970955678935491153608330340162376915560729755451487773432271629593426343223447817639742634997157299283993263640985790843758223655615663021330791134087360437315168907533281187045359848312919182729719219038861122092749198344360051204099585965983201532441863580574991627559776982402218584222462074737622099520888375930731698110146706632332928125255978834965719669356309154559541202628212726803707286825346319499336020135442581474329467474648486712521039822513078911467429442173152311886703868752275137935776211870755397408866643174470082312494548907171131548228502600416804175103651003262752810350442921557313134811069550009221989298161094285723757957577781638729302044152656167555255646101689694420111536453683925969929843250090273114371848131362226719987479260292178701413247169888831402996794728337113760458959204392361974669522573470051916516853917685687669702445830332459054988263534636278165120932132454430523740577191627035433645786094554730299831256722414572469810264157184576628523993638303136664905100881816232985027731487245237978578731852187655214120115954956430157612129627094476459499045531137612697583459907769821544326528475636865839129348058708173770299088258881485617527477625976939580153340945025745269138285418509628673613491831739657001263137341422170065199999188257473588474684002577828196773982790910865842157552228770107415527441117239866608696830928440970288229158893132207125231042597039436622663419695131681184790568317134036341116552140886384968078283146793958845579198160037277929828343708181441435361423932348474951279456135956085777043661786661472363527663685225271257920312328082128766922709778790890322079058381237603170658280975025985884681291153501190097632695794201025762435460658219263125459237608185530376006118666192192119880089418929331514448026136090621118487690309107642855314029687988224657818980844213282532771058108216222200267110951684395642913265036986444550880134261621131798621459272144451216841988649934043182409142578994072442409291929010293362350416326575801443337046887958652312117373274148778802121472453181397544028237754960686305101888517113158775479766385663763324859328815522002092130396741447629713895162246039374882419101801395273022632739493313499676955564227989618634188159572720214970364980047949141239418770093638950568804893949907661054791598900143168676238018486645630439610460708671913374051587035934745048400845729760735898154197676845945110245449893827321956637741296121137799091105328127243840852549924631364943632303118137183734441215433857221513070066374777602108432653144580154600260079834707423195123854748066220934390020929192678911662837548741070679871631154545423429061894404890295120784556267583167571003048990325331968899123932024647567744715994309150471142118584415893616348408396760374899762352575621220385498404337877108991794598105608382324133904144063314086424252252934789242818804519516803659885174313325179241707112185093330404264480236939082085803026843231885924723096837487033054571527572541849963527056502546022312036520863750225586215603028306399697155625624723576297850364183283650179377893345281201387491056077683560345295026428556322369607258095797007769566036806810873270200040056762595268315426578646163700875508089739671346553050458619593538942917699533429387511138539696350547662619839387895232654040843624460313897091927490680819982305622537052771671810605299853264158005915974317762425853747915147565481044000522731902919260509701744747449477094374252424965063202870215425510704272344801945666960549002465132057021312480126514282038861776184990640024719312915980220908553159017947905800419229061143679919312275375905676632551544446520402080174429639095229549855220771731170473623268849367510217689284115080188838221240715049676788842840209533715944576715888126571868900988747115292757294815036612885958145650289304638382630381603314224525337416253628641487899290100616232556749382495377632513792134632598208925377992833873795413768708859978804402402150715944433129551549999098392887335146752766146538187191576656958708518492372596821957458864489146071395993580659306505120433468694113406158181359137201120531017685724197864678263177114064889937289913555637314239919348020313642535351935805182851314276372181629829123309784054841020007511587689048683310179936740007290672539042622630684939526149052715382303482828880712337414654802264150239924378001748044013022735620808754412891694689657469930774988824911157779269309866605679922204452749025720182500129433587386549400217734513873327663123126689667384521878311908895968431267279036154807278176074446647301227414125122785563428247012527761176742242709002930237522180866028199201045747473523750096495208736206811245166851399466428099115911515096082346281813455801376301029901652647824334807342791803546616598779330845638201297685325259588032537925051396170135824890595214681102158047164677484430175183842156010380202420974961217347285814024077874863933139146369923762265905434603906563730875313020608732388790749680529773590812844984099111094688749724581287904123145619682778318280032594039122685719932276979326000465951693921148201590781717409092603142981353072171618630307585489751422538191855562117968721916993392782546374726667326897576242681632365897877331953921698210346425341736980120154764264540504881976747384770230113463495453030024096227233773379943565757795599273222610236386925692918437843472474210708285136716981132110823569592511387841717551350285233253217949001300533341770982128122296092661699851620102388470041658709856903244318510692657233666244854656406098298247075887071419998776882202243655369228549705771411972838808692604604244453663537052261864795933835632347861883432109525822364577824116126279257164968667107380023580180404901718646967127866611780626949793680438843673977532815595965856043622636543700348952567804286439249122661941344085000301856572774738988511077358958895842179081095449394328804101709722720987827723460038917815858820069321913381682248090410189818294497332469597338599539501652287429007717769095073520653111512891288137107496838931298714103281069922141365189521137587359274615619305546023357910619353767959708858507003172225519712241538546541733980799145752454107754450788740483581256490062562191089246795925913190178298633120667391809013734731770170642293890722918434172557643441223343823239181314523517345471221825900794677325352838417891326210153187860499259368807764015990986613088267803384779219580647824347142660978076480881902148566319743399173898413104177442734967811668265268404046457955522463704375023045939192556265423970932690201904698481227352197233033544109719837942943270210586297710440014765157511309623704854772234485319662659255199068655634707319372520906352867912733904317017435338978944530856658959979953112050222853120555737924931696124127249116349400783326407669529421094538306721416236919301140523700664400979594185825156744809760111807262163613566719567699712580179291514299911379464632542440987676038400643461183637639004730869434906672471269365853372913670200521606579502646130057729171332185182378640043567966833543135145764046609495774725683327342617319764762104947943374275500036918384843838801469190609917775681725773542988090752223544413362740975794807617603788582546410929640456186348298053685107441073172747443151120169769034699438183423427752023135035646770120321376647619970435903935373947324013032974441035848807008159700454312142768561587997226994961020454742494483707453898774689847620697253094001014360293784085580038728544902451719470067081467891429270998104329852554255982161148441722305698765313966306994098495779675527838758723807601211795466600651078003688236098522794038208922631206055430731156288452772956806525037101870595767860994178422415514196207012891429020566544548168142630460134759231605325586772515895912848626289526645581613721265794276185475452695372657048408953626221805063094000729467736146388633350459721905591607649139718214153375052047516896435825858021336757075757853825526873632467958224374718397171493380519988518214242339143764465469986575985725835375389077148344713081821998484727489114662286893728130337952379267936333289429232798028243353813501151168717929936521426515736901263055475649578449696041494038207475726746882112687586070961218225715537268869241552627617616496781177616983365780048814288012814621080594135056473026433115710979735184919739388376490655616660645068276504180736720782042564536627154759436003313928747073943375176836433057623457951167627875822588800883899278284637150686644325268587166951438774655718960625415461326451801402517257488162409698399755385250757679546091150934430024618814827729062720203725796694916698118332918436325961359659959180609386878619295754176761835160894265691112331628784402252137114082070775618163219273548256513912816907760155376401364177768565333393773073320528116648205873894086521194911782390587159204029284714654571866759502479767375433241456387663738102130262657632738965313403562827472472337089676231960660957840884832031056994967573182079684265879198013447175008488489053861560992339883994185602327656196874163206320372317094965343627195749671123323094281556197310034303249188742158766683180927805123838916195017379609087456826879306007627129492680064174046062350609140786439592815359402458860446843984058684872878224813716378822139563560540380531995807243793347541188102463335452149255725651620868866412034413099530373081569898620389640693096966061801247536833703145287521962944833555459420864962742310983325613529193176835993992028213148171384666756193778778663691188105668198448302667630749971704109232788498663601459241458311316842690865018905897885902114404124022107787100573435535073117084763052086418663247274865520848203637473939699173815598230319361214680143190971750155190339199448454679269119646387313167617310528469025210099803843116961490761192733073623997814634345154527656249070791488538577460138723480428391875939365552227486982484234138916084494073664484744325952064944879745259144099007970493055304431829892163478397924686686108122604832070240734688466878177395207213211858930986205471243816750067128249584250113471907874758032997859644300999572271338255473478265623301004991012951072121427953974615261164539260949808327074515770295869359739226399551266853058595819474041778197395185720452504965548736816525887711377536682553253620276168149460428378119149639639717547274119336348135533413940721976726453590962427786918240266146079988945461007842826176038251046165604824550343686124781321067366583788357350848843359747034561008948665300563421429357971732576460207442520824702962423919371473563361188262963785251785946226137789924255522040086111636475934070475971503789586108250498517784492769838328613702543776132589218946100017523429450916754536567619544217032659903985835404241546326924157743554599386749940347862887555850192959005897163843962335701356174731770024152653158590964911740606352460187392009374791303675013732903990368907880720459750883610297594223414571380719732309555160961487676958876216857621027678494129837377595377694018647510178222191548524538735481645435515790536207208801846935592524764769800025648700671369774972070284977320790548766468454279831840620873988346589237584684731240765576206155025404371530594996810908806778344915718533697115500593720026605818831802227919260351950746890211339543691399365602385696241623842895368320346142040118865108941588454001280170579951264392546935096416217696694849757123621437838229846932011043598224579892693980687290777391405073391904653035617434779755838045943343030235037035176417502142728649286647594240809659996471968158886514764738573150609790231977153441209453075200841537331874357520698989100179973197339552549329877008437759376130518505622586077264234340552990276153983359639174376428514513244912501518064640628875291300942784301865883834116657805080268675013318104395995124707186824558887868967995497989368691183856745966912573463804662266354580760627006962211059463849648173206795681176908979997252702564800334782286146909093295394818528794098496817615244858240790415155503307027812897739314927233107885865637043211944576488355160391571219201015533497353837930155105683519005981789330716911580836860902731505128050538813436037678497253281943836838218482802644610827271260294640065826286169681944910518237098521900395900268573373265673192603881846240711869214114506442049143220699011405499488743460299114716359800159252632256429334464936049780468787210485290270070751758576519800536474304672743046105390646781815352728640977458860558586316119082629266746197420172119053137653522280714174164415849839462993707811871156333616220367147070850937812688509915863927127768854088240191917483252057394828462467808306012748114317821531217131136716939885681266329325901753142875618350809280679355224347627567814456776290752462549627849160972427732462187216377959700027565342361518076123741852111453515230959850796228281838393830811880976702655573735007407693628965036979159166967783338820631636624647336495785739960499519185746125173153790194845094501516186070429285119753725457450339970222560029983453778640435430186554302653432550173602675647723592915400071449333752924028174811329253957952176629494580421124105180952529761763348345528174257076016661099338416177931866644007673433961624001134916417882839078681518920561308758554734264510558840041997513447025446456411299693896605347245359373672224378740213873615906019563690288332302259823780123956627877595872633516226729388896441324792847652037583099787815189099989223268597952897978696539140823032364080099625067300612984432127620401732984736174941026150999087253664809287341864583048703483100582514467652288605392884186489950069896790429950833534489565560404774563185285793552329456297638493140373946546897450522996031578937737651225241205152346670407691776278259833474852891026247498295028615561166181747933854327790487245268978252576853903962296009648515971221064976899137338183244287207423564508949759767227179247104562998366653539578953732726850910157635999241012476392378686763763422160564258432895576822020631628543943360063286543996434515180353699148869947277837099103650629106622758919952269427707047900687259476729274347833481880627209492496216620182354243754388770802867769536244453226213291714934808908007546239056456545060036308431519884986328005582400183781133913395389680720020898650160323400541550440356496641864108450257317346528777942453251182454217548501345343792564850379207546852719072287933742709787258695800269389193796090727935173203334761918912446879062379024604015557382986623300141161225120219426686616506794085455036702867354937458047567953266679938180178293249995058576743878732192550009309880799278777405431520983685789635344758482743191530800942458033982313549067587943876849858955829300832879808017779364117720854729341293089822273103570771855291187364205660915391606616593792781463250567232640725126378934519431508344370262911416619645172719732339171461892799983184561410307408551922959521997141673024163945799889984901497671670040290111270367254259488893785530289673408675918932749040290680418811641561081415699738563904333884885232040437573060843893349734859170882178389498260407225326309384334394955198317421536778976737829812605491625421410813679954562364235019800746518809749839341793859266679119976179535495194020917938028400682451333173998618735206913480369187969954446319656186267573437970936263235470789493125017764201462266976601627515164855588017175037387244593870516492388009789915995779420273680948674077796942631197368872518869457075551547521828416221990883554034962655705554301241496247083607716087989275643349458800514635651465704118343341528942818569718869037428986159548004140200736182337792994326603346515832534622408581468851020419968441004729055422910807515758402388635781856131103638886175375179163617150767442487985424531237732259950940077342934241611038601999088623090152770367539781052211181762601566277790555468367000924785241410344914663191418268239013214352793159756360057519523064757576335721535477961981854593505047379508459150358767124989513709391007980813199138573533102891239678101322221731618268902069035364778545989916630966831162227507322006526759817753051317429249289336198277436826378541661553372929569919571159304792123142169911387101727130508584646455039836843378254074481364108005327744209192634710885607229825582935732000526301079641232264736413938742419490730756186290621882634079970658432916315076501692239314864572027461505562591339853973905797892725498679777183334493052478995525868028617282995910055908012631045572437821206031771784098158423903060027715253185480080971065685515529205976604941539146323433610648934156009113365220207389469921474749019249197517643848834530384026139918611500383285940302469141031261772114529830646839740084032768544162197564071502136833146187223453746569067697624311153780305226601609230747316136056142408486071202732416498793469210527945176072958678078899080477681097312774830779495514705427374570950525482670569783837280376206841754642809881322988741061358298518795033514206163294170187568404618316720532642606752275769265221444203048885966431822719711934761725507931159046329511754264435534043512032310784207560278541150215517546702440317939814565235392352328095346338315069193353769812810622948747426793980465694813985357070825547817801800990745847181981439381706448776379532564015027469369500417025471763216069402830370205791207768932602278678456986021394282834326473838988496671505591709798828547055319310576531335095992208757318204559450553734132420390824024919920366604253659280636769716555163333783478015409619092207439618000999032331041373126992840113996087977854684376242424308490837634627745571820047173378880350512764828777510564949268535536131100015536811948130833498581710810075053473692719529535189418254774238234855900166024936040341525805541420466774997676919921646740947136185935067010418052113233941015151920360644356721161026637233482362044007995244867950510100744656982137851335325159354854970924574527900765987029272656115804880484490427426929684119334801027675867421164385755521246453424939524568929451320941411714846579431204642228387180139119577880864883298751394706001162902526805220072395508165331580690051602819757494414771634377265161923621471330197387550292687765005349772633496293327516468516075429026690903456378819097844348844031392919655657374997677581276708672907712311772655624963001304921956064602525701401201095592635943285544950011063404204251855978518352236477012315130223720782934969720991844205813129029500742233565034000254213911462652622659566573040442295654700425696241229359438666285529324153027725133671853487814914818964713618275065350189671318444041628986370573670040104475967390487658842746843319033045004224730988218679648642258893501846075656272482851582841200430991344794273399727314492236295066138745528067639901312878340813370920960438619871043853621778206657198536562235804480899729792270130310205208320157786646106423886982439334367165195642898570724724898542163464337445297893892550022431975754716166681492302421210491450342285819156810186510343054724657829254223995827795159853747794753423400262952030015185699907934197080283840712092752101574058137555573260372919625834370391261168210035600449135165648899274038545166482002386300286275316413541031740131392373398403890536992813783101184208331478008766932572612446180955488045436753127996167218572448832402188867574302396361976862773581885131377481653858031144971827610699705312545065789501159805284268647777404148857825661961987397509933877486332213952445930455980077898723513446017326954884924602093669227090078986943067196696049213710705590412669044242221288478936056960453462027866853983469183039814177638835334031919449146127048803643150759472093306390008534871500019947052676847527983463915811221519831722397111980577362160627798654285182019019597250445968449907961309970050663709333644293515010298361940403887116386694751944934335096270936881618926442636839489883526129661423360047632491430233725397996144324814086597133828496197760549545374810081907840847553780645800530776544475419666850697846767377552536602979474090992389912925594734739845316503104316244463110037135483823274853024081991498295290919563077796641390767226695932646338005891793399716685443540982476122373548508840576085549639752249041811279718806602742549377100402750991362666222188120108095258238723795655065429145275533512422904437860299337588612162346185848842095827630717022596099724116554401440395628308584752627173008475532596628795001696006532232451602952754990282908815605506575075721777356147058105348132854643261274986429727829769983614361461977830191212212466348880836878173487573076840330557938469363026996073926018400122434220440165114383748346347685195067802512345939120302218862674798595068051288457094584249756872752467530160890791207558462723710900262284048068357940272954857491644347601118575756047655197823310985879300230782839083817585278018199023092036351359305035709258445740712245088152419969197678185379968509483297630678265668043981030299309771869377480362691553519782433528556681911412916548632100234859652694639415692622699595768705393109036151289910875235181797722096511992025142236918767128172685048950253223172956316949369290257481205653158341200803825445656189068410966721769913698059950963752703263062760363730270353829657083376307788278958521312484765934019203477530316654879771579537334709767840262827777895083966469120903352284441845098589666954714254358518723247571353653718558154672208712911925010569570920338687156042716076100013396227479908295982610820395329843988171380387840165110853138563408705660597587315337156704714041018336787336413571835635069639529412918379726848175502103632227636881152310445321056011243410061816686399959299723931268834104956024215350315694233171134369431867695520792769709705110469582081088654180595809708881114827950531347717367505094294036609004987351288896664608795504964477614835890693577446960486704583056562686085981932140456421719301508796889874783840354489636584986347909497610495795892056117570917832097011445026115854743901525255773056120561066670255727646635874904617508040187659635911465447658702603703415156478287075959434363824742631732854206934636702562795376631303314004471978217432968925323019182362194251372077454261258765219299669746831349240525242412834242082156357194688618771199480122696065593667373704544440204919024253784841496910836522677444736633957539491742961310418593928241220429852642269403816105770094656553949784077527654110343647183513176200061878106278061106594404601100833222312902190049598966038100469115609537047444451229478201030439682776969990718909654074483602000683866557285978515765746039602874604688396746035181726016823622072722638546502540335960846242206850998928401037266339017394476512122460959452346157369223264335464604540977724206660497500078191933537608296641371002687316103981899484550035763827377548603906327175749577243581615845539819978048632239685609159847545221633222000317747337944640132693703224193894826912377120852782250175416014587603916597027591024108607304608619979394253521324264348822978323433369002771245713428818439850799949671347207624238228672921225836381892005268151636840194557562436919145439652995762194976030560986487578702366744200269813108461017750622235356844742314962062856731371398914260311947192585203986621725335558340803076442933148841396864124422084080777434212753456151784378978827507623114722810024461952702971730867624221274697514333785818755289519414535635581522255886432869661779702218602100330067369248394838929464784573227198534838236720456242292057075493274824943532580649585285298504384195990906620898620654335498919260257639209564726286755313143802866296116312043061246497890463403600094006329368266761845757540901163067013068687328825232813546357576051118931354543268504115302205850567340291172926244417326660501777388300666406115534901049272499847273666590579543039304643120446975592234155673541880384480787032789219844008909502619654016331834058482279730320111732135955065088726784345195090070186447280088490530199114708350374070034740027689376585763722832446365546745733090399487796407385022977165207810033299575761740325451641889862203804764425718174233555758123562817549386112719618324510914636898808344669279816817663196250363835671455191377982740301805312430048829940674632531403525393381329049614278527218218447529097263467513884372473439691224400454690602095104355582926513740439242889743254896305392080560771105112651005152329404198491822645252672324024727819679910289919779044656551014899311654712396161515237132228590410529488798077865796446712440885903879566803420818541078056996243926992009456905221187691008375410240325238264503745842744950450008333582156430258945061080731855143336232755266846391099227385180117680767535120262181114745610851550683768533964151654193522206212057925247443778407114133833177735114135011091025390685604600074270530597351463004017098388360490177318479108060815643967318241187507651411272314868148855131869961709783052645321796979791621147158549834013605507689714262161659103080058727337271437394805797311421472612413206464764261354512134281356894515561471939562525357152983397320127841412598259076530539838053427924192593876824611702277426827602550759571743817662283093198434735152731239064386694542075471354115975789627379361765041338726796980069117872078126841276118558023564357361373455255691882270144226896423260569400727197520585305460815443629145069287378120575275317011370347290716960435648230617577075945500983236864155318913124943727046248461006560615730489924978089374223967415223060512971662754106411518815420538063185228586884211845712494452114932480643805820651450962784367502193335571368637005528587839498347888199352184117228783693532209333846078582945606257233713136615500826292343113954357548649066186320813463371508241912731795890486113052597658995472271356158991372257825308293840061067397871165729250538724077617942631347675646904390592567991252750167411676390590094782195134138852263016269430245301631404132480858908126267524452153207634892698636333469884313047175123858080399691316305687227228948752329228628004157946286405027918128725133609049400313674961693522611318425826320030018405862301732635409568969175829913105993193245798180798362052786807122272064368849500527467718918305029719957942255365096473394991420813842635278328355763056182062350940953112643792615363822902694336366427566195797000744241585490381720348203998420488608847730232146771782172109486004332891971131716627909941451031082897290333226754486262954443394639191235077079418495360822814662659439051417193584555785624677121248576188879956150720892639311706032217676802846333638899563388639882527267763998156507873476128327787953033306598235622536507829513554500317376477221020551372821783463078070281795223327105972521809762309445820755576768265315948995407476185058771417592071807775740049796062040882721035018831042980868765381559483916171003699711347662580833611573015424990335375867169757455801980144396859397895535482960988472145857164179164227681506627230010984028541195613633505784626301126215097429601764412251055182795662298384804783023311113622756186604614506073571337497816344276614332677222306810759723400900644478102193229995131726590277650631995732006617351750950769639073608856423488974259855769612143502421864148904956085481898594021129469744809665658291190728054503208117152089918782915269428611848405577192716003927344744765629295966912582317172042330599266362060470797683016109406957016638823892927064813891298152222626135395677237856519190394743669450261702132408594803801698925803533692419551594613084460947379548349745424142042640251225542005790867598637416787286186111945118635715129642836369376748600486684817476050634163072156102662696125076452592734179771371787981879049670820898097094856906879252603329362508742371586177004677819521616172664265641328583806236110295577430085720078685458630479117043594759951545015647590113384320099399830938585293052964499861996255998148395338055127623663238507336345361314708057418059788717416846383164195481619856960867946196892132129504762402446611342300565687533170119645593895062749989498419059475252205947568361972999309486282106146830675885743395633857691812846044398555234647010184419716574043855179508990689395912016939453197713201038151032590361192415330490244327018794695925146670289939222275561075238419299820911697679108021149921854720309477154044553860318912257919004857856069783055197877958270161079575054039735182540452303081045765192792079812135299626033187201778004341962704407308653537893792030776149610218901540363203047900293411619801198182293617338537148124452188969205521269825796404307884767068134711507095431410501287341087419053219531304610736510046398186809120636941301159889232363942428485294279147965026656564211154502203886317736568425369836132114446340619828841565535843589721085462956450385906260539793531890018292439965383879607435561386527903862517564132372273881089618844438225121961688904550595025326663961990292894176519488523437049133596038446667375793767938209947922096749974184687495403547347295982027581956550146689129422767582433743276891897025197581856846409002904172674053096952707546785723976756450324734457019946527544734715841429762611072040777579301506442983857886982542566940338276158517104891627539600817117146091920304527506828593897863467742717803929375740245646731150812696773288396731008509053302911765816506780231631565347449066362812379216681550716345889962277489162307746191718500554386722227179471515790515386410619389057957188194719133319172777966225951153461014945681305725101112322408944977955219156988817278582043270906330219822282972137015259951223384729430029559057296673930237981161521639474819992649494327957917211691023616248722109554770395977373770838982181544237316274201221366555839741811481514540169348865387137244368075027174507392665017663555977313641188758819879144255823819006802336891439115149579113179795284757301653167953078038612073995628748436575256212020061313882077075095482514169600580548226983783871667063044313457756256576457831773920745995013046369725348964690913176689762282119287721283838188623147881215392168776998979755527358629452047600660823236489101048038902810162736123105618828745003846450303442242367328413876800232705528815839605115023192910116289524160573095325682309170087807701257800508032788470755708110053552965254325493219782016682872969540740698986963893789600891893997587324109901491689871755015794328472176667561609607038367612405905153046792934152211796756008979600533987959514707672502842946675193133549721284854040119964329175277391477893746375336881403017642369303424858680000692399381852792584249258807588326811282181056036148956444395215198186751756879756744845888696020974125529245292967314775523795925156798431801269237124597639857653690691510739751255940734486086934487114915742503676224609638738376266012714319696337519878060624875287984493096959279138988493326520960354606832762717408910449747970994832735363695434227016493332795158060864396206242145587090064409874585876664497625959446525993525305446256009118709252364768562996199678601368841520047896531631898000562196438992898410080515636441737190291775503629780214165403063381792037973470462974540719088160475158159010654290707645406176025986081038010274225303450200809429770846785774247970744439788499346594910836955540906150840330083314379086413255785681854124043213690893279437374099750982403237949161524352087882901760307490830859806306045352105168036728426265335541902847265035892925294119498650794062664860189206771421921140684128544648630696559639170616542155081467317932624430816606242190180049813393452534255076528180943804673712584348828884303945619188313073692575523801804650121578559611314573807083565380394685497345237954866789147741107344331417033399672482692361575785856573901819150218422365145896835828799452319500205678995666418524229052498378813852576400606061430690986802846496953622834235523500664814645579370446123757571335360468820886444108113834445162934574269642324759228205671718945092211123037664053950776779202518295405616662539278994532172101471160313638106983173596897686061706584666960472662859952966280852663931528334867308363315734438511738150808522267755975974396050959512837758649883632503139300997128884737686793519940178461988328055425256597196592452276972518790329254013373990329312708260344102908726822678758343325782092777878862098431543593372628283128479051798496895575302051135474079630795898657729802386601821959323998459074680480644975791617996797633241786923274500440037580296488032043968034823896692073352890798757688632620776895499965888839046300930400903753892807555202479331117176397472905486890210788327825755939324529672148373403908298732633587444349807705811737610942789761822517352330834986116929442113059392390000813461560588632790421412346357561610022952549397535062816307854707949117191392355782443822142513750800835174543548138311037721071781994427863263049141897972201356329216356422953455249271339650263862270030887254753707872687751903001784276467704868443845869210263690074014020355927432036424323684394770539899465772879156934797021636378624587126612114800453296602789262765160137896196563959046909108461288555432671406168367246850443906199291106064692778862376487070686698539046928113488430819268508378901550456890207793803146262533074146001277286288766355794953141739552538781466345815724696362404452448860826073465933329956105514442404680494379942338947145138027267337167789458394490915992628575924943025286381769939880753340577376987667256505129372318936665917739802354187293933699735164376685393449609063631861422970899447647830942604227343680188922936394564546871476833919531457430669994705897534184002725969090124466153923915094004919025061408984715536057847484745282081585699210015952193152528847612457521093102967056246275020544414967593673591237693385851775026675597228520869862630794821194945039336400133975698295653280032175322467387927247942477892558256433299939500863322140804678363036321850465287710251277350870322452780287592289068388998817454382868144221310373978487253900257355525302620358419522968491876395971186458873277720013229506221237245773737830182412090756186009301020663756663220359096308307408273653448028774888708456322369171462906951147452134968868600029420868849650724275463675050033667141637782756276629475470152832626134309997602157401487878516011871040008890389855016498259648341641048973852288508780398301781133567830848504274664703011477821556102452391740872356113738503008385876827633050729618575733178874351740766984814793006964030811941276147180189179207781319753893125547553486620202167200330550172264201478808570382080890325719406840777735747539575712260372959147491806020792824426789367344038415846712160090590764181956879608590644447378653170207535411378992688185556263596185481546289632204243394028996641731567419438833223677703470300695494652256529922127936487440721728745101404069421236836519165421482255935047088974632352971490365712893721381392319474890562765020802916533522531472530546851512054072249758994398458878241082398373260473123246104524202339234296656298121451728590421989876701222613833985426022742500682362994722738283500611558465808056008725162903819899591520949246769071107936291897088458664494049023405323053614632660758513492972093320914519146424340493769055253495945630090676660385690675003243577128645685996495279623461937265122580190786190547080380350181575043113376917112320897840515222168816544634113963587366775790212202017089986576711120232116833380378731730400378318388828633610542270228312724577615585826810810683753136501964880878576063877219884708632542997894433347312157366168840380685368009231477205638425301948121443562797202415131714312536346834495892287464932590774965196311813090610409729685830196593339986926333011999161614974463114608213927715701191669359757726286564160613308655083228762847425714113774211338678771669732848812873974343466370652864714351287754381898806567481546033037855320611167630079856598416374202638741588877222453254598182769232954002781270935415134750194388551876975619454541433172050598687082723004964661748296747106940012469613241564964583123417895594849490626265814817970531437343996200943304404857927668102458117242157209546788064992266141691598716487504882768977970045709166843343437705887924420707468910321672870349661091230786508886919994506109029161768937718054695598963209468900047574993670189066995845034681401567659973571374916706722103732476764608896142839562180937284583183482606564017067638250739294992798827409898148143850849086337094916581415721114681958464492667268823165488681770200830438293965085128929700503202274974363480496468539478897410019571811509007341583640433506237194728702180892177095660923158807259369671054448479088115134511181173288202932335666493912279975170584286601627200393382274914498771994961415454101400357371136116349326528687447285810017285378341386549723603473609794184800683319549417091099484780913005179668209498696882025633115591061378709168060983752894816127322878895743329341106814494829729926132120040222364759461873073371410585522183817232102296894827717924462603489256660524213816666421395829572963487374259743307341352362593438105192082265253481069311771659006216975076080712119456209242658798734335629174415495193354895428682356705782290498734086327541188770006552986498575743362223773066971939766578649964801880759510902701226841789720354323144844722974875985882778091915885648480634910666731265665911222059990720139469333407671462373613732701693486457590645828512462551963018080968543073576125809298997852520531170979476127795529643907276901358147450806658619003175427518094543360329162104951129448475855457042681420972112114476810288087427624352616864334059521903436840886402040904116762538382471055686320223795008636703879177104384699540651093777394547703775411804999899702846569131980258891366881335423539365734102763305409703479019021814133887372459796282371444626432570604799259014387376239213721977226691466174711883617211464278658126857865838425417173559681563589245944259204115872379652949851732880302470371924468769704365719269714091499702941255508758581154860609916579103172884831480708420630915260507947728546403225251364301158430775423566580693180573213616323927108037688290885825742464289800103737015807608151473359932412628877722954720378409793392719330837533332636169447842979609207909269691958976871798775000445559813734818286854007397055293254686735242084488812758961558468766950458178041210943408719710046982340122171445917905066241889793987396013301648387952064291126622953606252260772733424346404468723832907064065375265056779901379591759871736875299446107852596033704541523903801823676827697409493973232892869166925686212822070893865378130163135004901773482110237190273923072397899134894439276279590035098580427511114313870859162441359520162432347846146160143830415984530605225207279726127797997454941119612343116702891832837990861471392180540257354234321340932526612992571844374095337836467706207984615728948497141010618746610386836169686266610062958785225129276894202778130922287746905580036236292356684209519376402792554263964004481826632267510628791154387387506575871017062699357795869017837554626635353622493708513388175955666786461631462086916894637334851865806603605204174935530685566014857530644301662190208907695254660299312339060649315208716209243381016483195214760747417189135194906253231593937247310640733215463369228279775396246721762582847284038809580360811585654132223571744623530520858739587272227426236057285533946400659714489119289395604120450154012955931083523003495711517642721861952873399923858332417824131675188863378291187059815008832073518786554006281519164074129321017024364538254186878249877570170856674703380557548581580522942045731593733903084617081780463168577631829876222594356672072112529511875838842679262995715052490817500196308422794965089484504911194980132175780788678049589292405380936204878159374752114905010427361086370549287526424562252079429775607619787301731751209255208685339290653570809935466950795157103009913835919156085688047200408826524024612282423963234292712811677482548594686757551461035914559581310380174145357148855684702757832942735343184953854529151919005328706575237096278741053595269280126192443881344182743500528278654798479892218293619643305815754411867186585301318881814206094937661286005158557664811626296270775812383228870950498070217351256778719987933426361487837896929346577753653410484513835283606154052856692965654826457436440288495798841370105819595047301860257733968767104957188986534398528868251661136796977161643421898293580024505616177284655936830345033757482646208869181742997202422647931822259288190836925319406401616681718531641120621976030986479750516824729469208893070953127059428326095219216545074962988385653508176507926484444376853052279013211674994670567113925086460720968804537804892560351787997918664934365635318802485065902418582061411135160165665996082646980186117920299998956360871523479325046735867205295775665737106636903077509414630274550892158493909142027109865169196929567090116426773367367329405376771324788116766781152158749227950871398066939300213598914570242882215768240030654065237919091282188685731306968336107916240039858808405465182754064268602286091933598729578684262542073956863321302259102083196496960392629767616372240049834645236775044472558111142967485839580720802829901179373422141257948248385911876182025958355266491785133777690751753871390212975951714445774727783856224452396205388594004447893909498649458247060597703632638315394306043212432062762103782931556021644714879780342139556340686040594835964488686858761937826815486592569365352641877159143790899421977844979747696361503603914285494174332241691157210455624161674088515233117444733557530014711696540871368212801015648681509774069460793048682817849712627998287231677243876516440484171478239235520593133452813072901794533579064996465704181460235876315839279246663479995343994915796661900233902713443282894994722040321672705949684718870276096225083812529036688800327720268252886664846521381646436894313729717804851751039720409720950024169679145662817895915328527281180298698914401011051233239558786123290001251137749680259818974426507715448388637089138847659525388792050350586598205422627692896492142921536928309192621869632202741034005620447794584778437346867868649316335934031665406526394939090974240384259426017013265361903838742781818209049347121057441016430531787828008535354868231113509579981952591512062472403765596078842153581614657261046328966885608576712967095321589814935196355959215573981268147366079180503182051860107332985599255780163712420711490407189085186030932726369403725120805321290198013078826024605776391512860076163452465436823770365447547001142952904910910649431304798761730799392274081138004953341567663430423370112126372658312636985642567162078345990930312439804954606685909029249359014621350146194831509126906922542133161402385744315894042260242848589811318443028992035873398863121832931439116665974312521563768217447244672559952513571551204276268870416684655183235231240119879116722977848106080841939848573983176585252123165202334297754898615852923230668682359713685675495021451276042989963071095875844127301779059546014234430212301293904857652035874054989978175853386647389144948281824740024039677552551566807475970188844487532812698597302312051073375565609966788688326233830744547422872801540122221519832723616240592745709415913837829792756480541738306809020480162412291248076131676520128415627845271305501456134949186033579223128789301017489933359181047821117988327261320315025929852595026037142526738590834306585250691754475732564351217813657615667746741663533607730562077327342238131582821094831721756267227072094594055187556382201201829580474270643020911913071167649035992119094502690238535468070018745229140958722171238745856747843012634144133768341132139136644343274927791559539787953740836130377832375601843497138143221691173123529802532918124481715115238334174031144548974082921969266844029146380697031169683116412259758664708762952561351791682651714283420041399041426890334475503720796216375317792967792852723985220155247273839463047256736686652476731941065182335447555707073760534661379715269128887593463921274601744476512118808263031911385686616807205520703218260271237992736511042528370992205922253508152471978843413993962927088179098455159226106737710576333547821679564470120381639161583801172337890763855877403819930447177700925957884425519837714734441292214629849999416161033127478847270198255732415211660527473535385355682877642735819864213418714195748567686846189460868087124964801489670663081876602187948494842772305570777939574500301287987419255795797008517328802002458877544831613212242235915862121711232635535077957243463725430974780806410744878682263721017902272833711087861891064400251911368160591090147303970855904253934815788182457190922148677676213558512186011278296975090911470017008581165798254563512299266849996208953199780023977584287628376373179656176078561591553333763566222323479750603372320252457493299524448577494506485379159835081689731473206098363369838349405367310266242370434764255705062793072323940017047114767041102185483686689362470069029576613323942446614942792600795071417233946814127693035347302147876934431870245098627600536550564197030052311179882679025211283550775201775006949587733317242658036063105208462917538317605351832219339848883850503787240198118299135996607370023223409490733128951408614016093170401582861544987986901036418693450661353222300666077318441994177991604303934612771023127863253084006579446017647166428314669745159370717894795167588528586100277004304705371433298295607658957480010151414884604544043094329835907574356020381361033871072540770876610103400190076859253534345757071274982527204948629235115339969522730445747334076813909346200246247936074992485750167193106387017823403845195063598961390649987916611451021605141585450055318390923669029122781392304049832546623199592382162779424785220177953683508538862195565331510473127725466044897800695375263819571096024039387742336808601271912673100801711756280293045138158060228097115577280457468044621125732037969551905485153040902853558370558906237520413075450009902523963951892369272328970732287392329566205517764652148617681484399653410779198087459480323466957064842032622142830717414232999659363864839381682596112175400176841302749763857069840359552490130476680764012425813014587788765945074171090163586372077012873037449036219317721514838544411770186669314958155049138005348732763755739559476447571625089622247564087832478397637373029167061968210650019375068342516756746252306858783763004665695190381498652295378815654356833297713270088455868265092172149181159722300862929430835474607348851102757468216626557000156229069181799946568603543137564106669334334906813925733706281978643096041640488485159491563999702114716164482690671801137290080024875311511923834568500488552788009894435691628036378555249563235803193086219678522277368391713380010181726394076472060027728705510282971807889813650340211572052122724930732564664186912505371773320179377459374513524962086734455602997065841425345025618017077772081919459660270808209784972397371504462063975998464436470375952002451855315887047711927905340629252347725594355434888917009225293941839102566431664985413772022518387506497662228527330274485237657613401345609777316103227306969108168172117000784596077386274219777670183552093697064900470463442281206707016742328119993728845752926932567791775536158088484203953168948334704847660726849847973375020598376499620139084254418260766953803106416305402308905399778493105184846524092813679339828846417579365512591592656068514860533729096042389676269018112909385459240894139171039695836889939479115828077078837420008029662602229847316446699497632615808122525913648281141270310882377413232083036949385232708524345646678801176740069180228841363617036060971834885380041003344679771886473808165711107635926609048408401549390902501335217611149410513204281467452544193571311685913863985569145720963001718661657120846076620658547228493028852115730583811971029950026667550803221930600935369341798366684510828077136580835378808870036714690289228373953960222839636773496356109629082763400906810462359113317561505405736716939043828988518607215444367741260053031410305190467071233879511557492794230751599374876095432810511390102106418568702369408815682287182692945344938614933421034631938325897186090808776997039581051268458173993312381797951180262675849121252794425450810201502655350659867804473935341257842627393767596421254922419647067894482226531552410915844849830027665701678410559870706101745292328200765042632468124910106731871089840910386480674758662142784358737599747738679567953007422875264952697493524407989464617688970564861028696683973569919420921850174604074860743763621600107677835034936271466458541799599102181054573271288245637450600026816424989520625780280242258368625440734930170079291159420376551388385064576363207419728062230111000325853273757888037051560882019093095407302579120055890644674713071816123375200097422952897229728017010512211458092723051604441547322346662741928848303386137880049752474467764943087603319272267138734733804975916045344135528062219065524773754584476326397231224181289883746420233498957052654221379586752790175890107824418005892816871413174505894957353039584326638051770930860628155620674198334428652001080476328919528620871420436286749496338721087767394431095115683888069886739488893133984030094116008634115922012799315204846190101584838096908077151837019692069425989709547445251185367427589499754914651581493802161004000659760204810752477733143015450158959933327828633433265866756916913251530285250865507309497275846009543040262975557930021167298669634221970190377110367941548400033195200717716801847900143309030272115046132580613554440820588677871261412199469916910159239974688359386737104768115793263027329259241951999310138017240769803055906128166596565405266815731413812277999114974105226735089545474840610154835474244208133803584344610430114734747458318227961490660872442013330480710049107134113919479998921861183231897633484104623088858830232794246207140445595735098941021391736057052981818850611901717316425729442601486504636157194311747177374434831952511943897542005559345458324123423164208042529046393518871086369771272586050207943896162491865488972984275675267755476435957684792101993788772070072973624292092657324629000814050760162722596770102521059500581558422337520032898331894326754746972460031749860804882689662636163218117583029425336867813802453043347321007019503638733895030639009736168820349764850956830926625235741738087130229330699403567414698250737626282992839434353269301744950262030418426639670440035824368946938975169675370728495430091102674599891616152717736652949850689267446368542221834763963896688280643727203326428774228397441536537066199046908949244395418127148458867848794835634332929390100658859068331722427466179466429196217072237995402233907318476296692673919133475787296495067163463768205055440889066267939351363959220804933920138919897353391233407839929962912801397462989779046304325681670772722676667880967317535673639856922454743387243651356551456889886636408692856750422809430242637544765303773883669563206971527742054293820026726535902954175270286788323590693032979547851657360300922276679818467680903190706164333308276779919287164810114939532449805532954406227896004589931993630115214629903507178956072286602952495479975433020033111616522115215549396770937864312181268169789048409193191578573691927910920095537497333712747400197724857357552328366952871182884527217980545432408547524275018407285342041583246381733245264636339081442371299003350443246874913158883079129566445061280326940611955257886654703443221799802807426713473463334933624353022756934640628190117482569563295252845811047132950450433438247645973620188072729737033899637273316422794766233462716591476907323425581962168298543805498580307963180543856280636298619728780895086174959958900316676651267714122377993653080044939629373426401181071067715762502153934222367117420466482750414307518000327877179167162552502500748401954197385101786760036822902256426928748826195978877029061677185208828088298541607193836984614549704778880973718271098077044196694870331150833405993415281306192858242859722756720663673217558201634047453379994219583409655226940570315116847460534456232135203707751236880625519457645335639231278992268112637671899275461838412581294671620508298078262063560594673504758098999596469350806835398484072151639812716389516521552566903920132409125769355210147277913401086870938094824919566672096654604741047869070536220356443826652025056402837735033371987712146334247150785445680079869161560757180092796935588319795094330148223914175764905943596443213012680192898977858238024768629537784591597293169664813454380973982690502933176756038035053941372432478699937187436164762662120483907046559493216829773756698022163972037102496070757935749899422215124038101233229271689508079328735322082828199777967483989321642469276642960639757221401517531128543107008888190919309804592341816201895101935439193649756996012229583417615589245392524038521341128948396493632118334638435293506016548484426009631111078582823772589885182463231696712853787879881047343336567814081558779235654978950268552127901466476047844800015791304265766797590645564826566570913888537228775503729721118976836248360277706563783193802623257894340438336832200212926603687982928043170806859226819258115960365451579470218072323880288231783428624136823065029279396572282510881408463771858334979284933992744957516872999948525724954744958871374732500368334871476455282170492337686308932499095830354765253068255419398164328211686222601030044963435428521317433862173370037437719380021718037917457274803117720767546956442104463871050489879350246009952749251001536496615455470574040962757601838180508978125417036049169804957187259279107006012143742315198708416638780876069170800616120422951458294339448619897361788791282367004675071578697494220753906144337089752463273634788956140816411648809933241523587231791050402701060934088807035987509614462051661196396173844536376102983318800604468637318374430584614836879069310569138338695897754982190874697366896720868825028003314065709000351025633931629873913927525970890079526726297265754937069427712747628872813206549943882973174350483504044092950686457586005811932631638042258742295532954152145896561239115274202062636483251761584824563765936362373780302382499655404195839931193371150262304971573945860227042649825319881992918245806933218043436096329544462988654024253349841509459396810651789894942628595395826871446389864570753025892756262560059296175059656192165754959865823770908264391003188320775974176155418379575096426651765978212741142588396333019389913378930894280959114899432115889003466053013956625858418760314951165680112649604978510918567834607158337771734671899307693231481529858153045940175358432481138197538950581161023494199199827651710450421529493083397943357146903828528508495319531598165760252825035373848812511622401796298362537787223030837295347956416328977381139387573675473417535027192565487775968471521433485603586357335420600849336947719573557131651386839109894888241109696815562188747968270443259866648698605945960717896318243163225503779310059838292770096814381002645218286082332948392849568402052138455634637849363783997771507078429330112836038026015019167823143060804724689972341803441998282675317430097225217882439289361766194099466638874107718597980450952825587313422958513436795050672059866078574299140703861686673481733489528833160508616825032908014443911295221503989190198073039025540900126820120612298857869719223144129199704551807060903354093871588585754123793635169073519446620497401223790714066646250566395005516635585663112585903012599036570282151121040205656186191945000604421503763492942237928655355276903707731583944792964128093962202348373279197252447818034463018365060786762053141769892693131702600783951627257711687160574724993506118569246419545606575438296719238644813899631895233934476612888353813578423660202750863945141371568784209082923695535328501140758549510999248526290464234333515686278036471475428913562854845940247026913911299237106966692787856515753305218748631155395117417034315367230011650001813539101072644268180520767685651008251361507693606128199491484127506564480389363781467044907084212160054612137900793300824879279571230817719214434257383847973297349517827904601850691152224850775040163220872052998145507186845630289770256518075809339487694697702228994120095003577954341280538210936823351346048298933815131888523866436375973898888915249083123596478728615794703710270814479790209488061285598346911456599120241799749349843027819541969929377065242275256237187595734524705967571305390109982244978276149841224567508687655102090025552160253849919250817366477689167510584381967847582945356487121910120818893643757801967523958174834312563352214775646247037380336176736342054060576945443556986106484097462991669973801842865724017112246721231319707620326651839560250876579366858791683678605180715393451158091021476371828803945063108940695771253026895628815930823822275430694407711597238635663850696202145838919238136358646625634441579879166761947267869546951124025914515137317231731028293249439292582770107939431532009597975924222892785152956188917529007674384343799075503703920155101044261719105121432884030223096195343582721386694357980009951442636607229007734153667193074298063751939895891147246305990199719552039201729490636276772916327739820453525133717934169922171320333068640268001506589244485969952549951754266098494733867687393490309046098751891798975616755470820333735551962088585424802425623408999336620085574559792831048019604953444703356845390867182879302784034453389741577942269847675177422723067807901249648483900094801543458770295635293251659911913577108242238842860422696875926459267377511606563301830808380613307345096335991661567813899940689322117881289691808165348179725510410939166844996251198557915945634639379283618728773139256843184772739753169316723698390496015903318553502730661454226940620323155920955470016121108913329621197028598816743080815857834532950494717605842306511916951401447367595246498830981719064403870926944353220990780685739975806664678911700213090221729725268747803291744928121880603198081149466384548959830491234566311377376350438016368034950487420325699429659018982578820343857739226004832763304743410793473451184803438060883913626433188135209176699275063833957821582561427689735395866600650155408427874756824178077675962669973618861979565128803978347392705187714857531282182347083957752604884404141826129200321507449685102005978491030695953471935798880292903643597373691881630528307342341330924486574788090614198526212231887931819039929249603702103101527491241113770805487810739045062867988291734622277479383831352875426813319927291349856179757259341857855968671591692010179083416346079248223975338962215627162844213689882296187355860209422848300844704838207938293743859826873927967997012447339120850655296245896615068413564372517325225314806266832823891419094693650223283589016783558490544204812157223670178473156187230473059020579770100050867896178515522149690655883952631418274786163514812088569590797068700047668048993520053964403761334273119300258671120924440811785851483596492467713963845011592552100227738079501673550693464224746415280164267929043682456221958798054786780545670729379105525005611960581985278379451318389463923337044941322627283104589908584866713762354251850396155981210890141197555858554959892614565004728395061483429015546928938897807070962112401907428184934034693002841484709564972586379586430450822608162691736873183133978680491090961540936823509977404618870561318596796083851367374281446245840453166382950188373711791866113978487435593891837328897649803190421596006269042336279399078276218393473035611392810765442431139318463644208034147104735718979292951931019852580829474107766789623514742536590317986474317274488346688269342379825125238795257540828180025869421617071023332420421754824821547190704451603317348127611944591984774209452985863097785008683155615111671700932258996740822983830394258167937750598121941893513585366191932130308774131302464721757881980963424236361901559603028050246968864478537503535729571091143294445554974446688538014095435614881984138484394548366697095529746009032545539454415698640385485916487363927848376969170914315203922706441876759068806752812903215030761667014431567977472923800743021103181171337955677803993752152288297893882449001917494591074281855665137369917569876679386756571127658201526650526320814656873775866785238948569932933294532851093870148607936589245577332973357755295877591627607017169889113686704926016319642675875208222478937815347659120223860978851527855511563415313587834405629151048744969013704617729732043411217977778934970509386894959444771379725155651071580623028651123175719822896785233163520151609896573332932174709646201406403514018744834842899374690166159947114925271212563425302157092263323555813393186976784064605779979458551616235330017574196618538496548568899775978118579051390058517564370229141189361591993107962581276767489016403075337905612130506193018086896502665844411365636902911707006333783818180141164778611093736378263018062490307087444231906090727316447765997733102355588657311028031931877681084078197979682220344367149023430764695301187169334191302980985813094622164390906245435212520479158363583132591464323103432590064845216947083041973389898223473082034141740631152149359160171802759520510959511685998797363942668003763343325173081295545415400208444466947319371627877368699289183774768513957593663120556773900626240395426266473418354731319593257358626117449630257171180294065506723120476579716915394890819556650159629236991318573351064376999831596406853767380790868114063458200758303369869381473025831352175246262062021624364480785064976736286014675779924949691618131628919955123656464997052721438192273049685908047176653055626544756286405341257387573157476704454044151121620571934396108801699034851759356395207410420517121992715078406424850875366130409838974897068486617104196359028825345012294648851717033747724782976587002411724953380138790902088903300416759849638370049676035861616054842760174299258656201142930747784181203759126157368984292179815916337010580481613897998916725488201064741043302976784412545503843648794925153951335909735141658232540973850068504931243991904347635393016651780334949613446961770447454676400957398681363590910922539290151301866362463522537286554654623679367069984187653076060788339915848730268163687430857125834063054864354188092914192420941460763758199356504753552032630909487231181810272554498033243366067155177792316369691893455461814062641049361851889265122150248370106824937605296846889105378999916311895424142801968529207354861010639357811024638394921247026307881768812567261953182019796882053942571748688400376418786199313168455014131577488787047286815346498707908093863298782732364858483797417625676434784681749742225796186307885529221893457104002672335715457414845682602096150813573775185109656318389347598901767844610387670569796304144501904956546008720065067333671890015308929927894415603878273410446538760400933109332390340842534901512219609221466145955193742420639054946074355077995384225382066723685304423821466743163835909809980916199495169299131076503012368279462660071872246540910548645315013211967782792264541617687971685860974134217501924010642237958278977134267912718108760742087239749786719109433420905843365723431157326976955168569992349918081686403956541811145132455076337133551813840451366482061469896983450076056733818868512069220107304429180271299845692703414923455206873830674838807410512732865411561053741520045158924999933137245766694437009568239118342622819186283393977164708095046944518012097274384522511979602077262641602652020192529103804682811334890256212636649384948502367976076849344846299087497517987814128558258331505337185934037479419206694156255094991896244799642560410023317667295577947815068357328923581399840077886494588085965092128802225236022320958921346889757550594762310429037175864567885162086673750227359914970593928986449423740333651906087309802182293599902215270300881477412973422662228130482234800621596277800553693573808173326693700969820464014523689028862995939670891994639063222362012315507554987059963589145974107841051648752063707853852872641968150765867356981516049206222506162849004386342162596615030387522002556374942204402983301317208935867847213490541987539474947360934515550091750728629037006108808921150168129591225342935058747151585296542954890736889048396639265953355039689438239963200542934392283878997440652362742107013071327500325914288041847808451233615187791836698677014462551463326494424126976272847501788765753947724453655633610193553415834705644098878123194311464186156620396727176646266467152737923907870427546218202503676543787003468076568484937001225600976498826682673111904664246339519515590501529536341597248022779177887403246929753846526624642308868502215894194275946822076438434220941646643811464496520318881769387333714091514817450975744638463913358521960137828190010853402627877889560937670588405442819069140804849141699993361512712192570329528112004020427697458932842551396723651893394820097847881140183098959598254214494196072533454767335523568252896081202798644625671281234794020838128175918541775415603625604613154997146807290822014951396662253823648646691156661855567937116354866666918593829239994067723429156004953429317294048612816959020464238449547691259888066752720232303125560147958225131504206755224524994642320869712551898200401392753412686745686347283319577323959720500457630136838089156558385594828646975877802131687282914803364916521562848484641925860520433699765814368360996898535406045580442109855261284971146268160534562473039661669944595271546979544801278344790876028763877281970273372022488794346888417601255732203675060693033094440781751558153512699181191600611629815048669689019610617715023761274554438944405734934669754544355731934037362040140902439406937131120608563833427602876722786662725659197056325810110265969285204099237266163759171314807798043004529935969681550714425052049389378919375101916547519270134396300577622474073234654284955048667293452861278981465706250870207349505871069839554288939509910794048589104442767625501827161501028317927497742589806606724207532993219867218411227613403314589562979514357786852579883057835906887497426361330833924419057575880774724346878018047263903810144005556916419703708493670977155141881991250193990624205061328513781582078968577645388094623199930744944074164339416317937382214315985152370602074900858434171433470665107127582287951401104705270657826142712692085518228538914089568562741653864218639372563279632037590231338166574996534188659141545975355113067934847684410389302492815938028751901648313426732290130387646923446902202567221804517119912520392335827089143493444515443054278462420737727024898792707180485410205993863024298157981396583794990466614189786655502306910626335626401130033075819897563923439992848908984915308672018704476288608819677607447433283995748071877236730711395499931019735644830571583410970354596007536055501953346091816309638321586859519408720993296029251942895358368115742156317570632268684735020564550053571327196461872617512761661601489503421002267400215209689159308555890374695964921597413636183479341776616428828310495916823371590395511368542212575005967626582838530279733110138159224878837682489429454966185225022105760458213184206283649912670907252987123558847834504811179628149070651459067987341008679708341848412313723070658512724518486241711395448553157656385962590206540251068220326726356846204860228190826985524695436685885278810771079018770458802358058741563198295902125437289372203065342989725143055496292459387186372018348008335489982834778098485095914808035009015957942828208559903654793398598517914129282909956932382506255302881366269971488927479307503589442757356899253976663674336016707242200122386984874486391304831594791974444276707931268259500643933118869288310254468056341130440062640053021244226867755932671494088243667100364714562451703526419661868576573835581947035483530976750400797619899228946282724052305092840769133566393128950693047808068446938444215606615261688547484912276477857727591612995174744654431952321348002181414932834312657876847347480555403726487536450315640253490741075742890896341512477739343098548936384064135414003602860717673508350469689916280704975912696602651379859031117289023453604564743882530800517357011967075924391939636889756784543301520356799726931969491103538752280909617788155463932398316654857063905244470908761574932639994051870041549417229838956734867611816194311218260088652786193894809998443022597205315718980149803935670253777536508128769825628176138385765350416003597438363916981582650199824169038855424515662605987986984514610466033141014727425007606723284389917986961974266270992784442412002029249707843784309700408705353322201888071396883102771015915994736355266009408584283422089554054341166882272783063818132518953839391205914269615289761803656861240841227681046630201261542559283008658769127858006058858276295097811657704998503831469794720806837024613671240635761140175317671056937035339988741350174698204875315278983650808618525531776280344057052967071079698403091750953618509116461604255257206146434108076943219545090756530647716090185859899765647539854391338330676699887079956850992428880091115252410229631440213387583566663161929632175041632042648305187629261840706279978301757361950285518798258197408678409340833649623855546749709325655889668570888951893099033820478795904366856408087481152670331008374939337008816537360514391273676239277162983578320269331263681741863133321614399181665318924333385333570386804328673621513016642701122434643653255288033914000627066054936710562217330361176112244120489472779656783836003705687755164092887487250049428577393554508045912612545606461495976509237103274131558519724138960897465985407364344495210511276109047580516607123899276429136617671868005071920284690060333847498874125327005838922713984715530969783969125547886232671472975460792975938009722946368738219263332112805408885189668098336780834923127993076853695083594501888909330649910907599036600467822065425949746243492320850422277196915739007963520384679260446699795868852637375572006441286537608589737561903163589292012415284882722771944659534662770905166877777940824507030541762715895634316368795701083679837757976015337153991936303374868068003744465909371506209001198165401379961337959589714528886798374557303932809833456450128011210434922558627344155858755933186613304524115727087304422516454065514383941161531536497477752180910740147328516788879935770432425039246069605037265318089631752205485749401592369338731939892401179360363709756216035920673849963017933305040715492231703295258946929422239594883806702816651292499517103794253113100490494647104179163315711702175387172108842677328874276035535284189803152897542663341113866669528436962184119754105498920679036783826210531299975900312675419814809909444677142053406978243828885700189665972792824793785193992530257148097225999582856039102317711784884714190110233673369482499547509770023326758140990068557017420528802175654475139777284179519023215533387050976766467983249164939480644129637469619589744495124055009802460868073443405865035437931479476962544042915963465296672920146674427950965456522756823654233429728215368849977298057463534724778902428469913227007355590225462597357629734118532520248365023998976057392628031403791524653853763907365478783524843773248906663461072238254236208193604498824241919245240399946718280085702114416909331321551098939776283337686354318584667468030564185587011126695377774902990698058039898312271537036278120477846193156828984656505622498604525263081715672597798590105878098761619674353981667254203194379595704400809427917394953393218624986174825086846387230416042534288926024565373606398667255514138054442197983789289205104107665981364081020804022848309067463737448970335427273207630927627924991083087869240569973788290664813932883578610570038894444331425353409733022922578724760465312006545421328974354683822826077787626833744021226436715731014623647067783361156980572728225535034776954605335929633424584111299075855821324400829711760722117670490230023813595997618812068477901088347878065067972866706336905287500127963415814642564848282765253652430812956288149848012325733603036203599592734419737188045693218274814598268087207266939619000493008635438037115909923204667971504021645419742839336036974081529084269707397556244126607095185735736418454162254726483613327690640809788367234690271127534010712742901544936772214074993229748943229615286619071943505027872231944879771741518057638488973039805985003482750353894585025923986221491342156203615430784492126451362261837993419536726558481982068487103399197885622780536264100959668385802799105401405730813464819222811686573493636772831866629745909602679706282831012052766210280018422029717125369509073027024326486361422244691589315308905687070939043200856375550994458859221017543359353622729082415391412749501959602478202928492622258310534256042943340933155528634081149903782912710613974546379208338826041590291302323646910210657733462935478770323746891615361073905516851943443919807289434157999358008566712386812430527305415084005804885548830644189119149317514927715941194666198955777726445720678465530905675647889458961139165649937041971801031752641602027341056428618940104180621340065046635982768948519834833189610063428845338558932044075273726155355662460584406662446150022851598272916589430817858262324893651252945537759383598504320762650296083455012883922980551670955220128228814249601144462041715695233393843261546231496816906606148592802377785148884868864335376193377595767303568068827244113794523966770331868095439126243876044626094202459131569534181112214527302638377199089758285316245273551626534726153692908713021144961977124669759572826498768269848996533486798362634983221315362534155213560020114602141915105785567504483785767868379182781275361829079415694746127519173478135243593213357012835927598868487072184588156672396385509819783182308473078003604477464215700123590466655777669835079468612531765378919019215853778127262432053981791516337176478703849073084413202079028189847542336061262806678323906283915978963257971816368628398319708076609005843666096185561990988803172022516499432534129058424348426832783177671061333220656425258262192130929237526526120219667257846896145180206062669304491010456274681737786073529248754659989097766036158259203478861767736234087403104772579295645390374177226714599376111266432142299091351131361403242129339179308183047333139985023554260797774453546576170920947579996551770370386102089028626685850311580399222995661122374808042035045543822361987658091369200217009028533702462035513297325410377241760640625965169113445408947902946162685415864207001268332762254435007855103088111177931801265816038784687045487247193530737497264710214679075254472327832039939233101118797972866452134732148872208419874183156231882472194494684080619107820723581708364625916332019562404283181924607379328787547374753154317215521279671976251202913212090657250893132575763091414178431376643830107503036397149321326189149122822531344464572302641020057506109237472615489172628896768632012049180874403531335352158220940694702483692094123364963127820389441294257891088231133457506851964090403069038148979066251387005914532711427164671174544563454178161501322481066550102131402618535835751973187456261056472397801956581940508965751627460632607602772440772503255812719731622674727378335978316969974450603006673063663882316282419287664441751578770905783571783259474725429219403501875327911168586019097877309513821074482766855299363289663321693169515770180768582422537952384793662740391299535418691743340422404657842831522557984427097397416022903157619033584365326119490554846271078194883788181092494038326237586189871922804583262681099009228482965439246924507933079759035620187194992260687669506314038883499275212327046443224662441329975463730699316718228116234603302641400199690347795484851797753066108439286866844221606420025231495815674654891318523487329496207902804325059390917573594465221562106845541134837466480576120519324531484283194940268602159506144970909230042407520373116576764133430824634839925519091597629193842815090076621805918512271896102178150507762991552406061828959101323577124681839932655660290696083535639722588906775290272494740710068703570697073708946094405852633761287173717206794323117264484832296243438144825325328288971519609031526053743913197272710282908036765109972115345016918820355217767442827694128789457606305211552927458336339864580081224283055201684130556055390094460625131884299130066872401193848684128800287597231116210311887254937657203193198675115767793501965520416524702991499170568231995949437274810168802714164999999352793371788881169541394718823168596858809255135310244873600913726061954207570902169543044398807979738155973186654722625186968987079710953978826981635552311850035425958725173116713092231149436109910624408234474696874940008623739758058621060097459629237684757749732151781790559652449810373072153725322211377994005132341433781630109276059116642167206251100329691137056848777685939018287614697953980288728565842063482457634229178115001802717707381812048385859017279885000227188327863287751842758607772774617244137146801028297041295870932566069783216401224153182721583152003497049651421768904493841558491722814759914672236897424777030261485839009212177263836149204370181049776382369115022568673578787856065182602079638162241776748346149562459550699848735043204749005590136877979165615023503057694868840356863369195307515708167242322686535209764798373818107866438281983622096896496054740377297856198444028911331220301181396439967612431812742808861708053356906218578388282761670494851661737491142753253881625689835876245856399255317014368874740142184576337638558445062298791357310436781399506706471770081498216359854995565392932430287458007549419955547306083339114008137656559987077786491023083727712564777696050345875268360892859907039337024978791625281859291477161320509768836669447193124217256170636569685561425551891915196911260386652913533547296099409033016181140557436997025515330430461097480539853856517675240074356871721645024667455061702378452349015545497293601479900509502574752592812134749865231329558029143016833441187826030181160654600000217528656302317408809035180870129410765367903885652173550906480305741123771112186213502177910274132980573690974580493939741469601425299148782914191055084501202708777296476021026795489333039545883695433651428131264742539137850023819864529208221436602485105633565880201882488211440338316796806074420358011441833963211322322933920000051289534777011259824643637820037967422672231548130312002232196385885722009099543603984929690905829693510336507913336007027871275586813249028522613740601951923740497945489805937070040041555505890240162283495870316452525906369188437241234986446260019320255571465550479331005260943710821385106118434398235235588780782770148046659012900102555565467560970073968800390767429890712008808659168936433891244127571705878164284889819560836039434443775665206697879672316765561759672307853748524676002255280506710352691709422782485464228120374902028581748863408578308389816834184210037682708580568998794935462190204216375987876592048305752018905285465219691601960989391927907815577866291484239029256953548863788439599730663097562727664230891921541728434913587481081427141653339242644308145480510362978533564177357137456730431849993073565355647361510245472083283917654144133208704270868526008424291599663803554555910041816210281852200226095224380916360865574232821237285296523818001480703254579675867608655432179880765981233478232816936155889774003198877969105793513235473187218430096974649035201600585277124250086391738090670850867982256370547038223553986943523058679920232151264003519315602692721809703543137371067398982702825395174079960033103131581264541173533887526533928917013064763523791493919580653102921019606328349728712204914326423749256872880998365998044397815694773898443155129726085161915289254717836857478453297709336424759957178215349815619528910824480616535659024027943827694637376356041734698137949879468222047290136166357875844232342041806446694590822705643302140876596248036614916527928722443299523609381817724981213290986239967872892630387985094408314623158339312450215195518143905719201736136604332292779739293574247032317519890374171076042852814187778412698485552438950801424708141195314129891688721013430554945010110923861774470381061855437735263204999139780579796082830206325674758470710626325375831906200513715884972322164355360661437399791698483236609272813239933283435192358260733500845377806381807281321653999832886918501653074283887505200174499102298935908977568121923221903245354655945710470112534168830728162735865501212050331950154370260380436285364652079033370888152105352896518919026107018010674877880477988419298425178720585271101627681241586612885211994395469548687261877642855238705325893056804760155042518340801174822189214272298525743630234382214138495204366287809895312675046218678609386909919228969960548931466538442806235660470714560500162258620083128784814269231787251620850789531707221892044773261716820619311847784775513619982134570741272618295876923329795452118364494132413021098625865608246537265139598410108589793649675644434295390155604187926122868293569280458307577908979968656837261193426741619422244003131226877541582127495784750808594624824749477216458553820557315163373379275417110780884622892471933630332940416776244734684953761505555428451377609816773296433463927056391846610862610630187006946064872272262512129005601547435777539842999207619463447968696203035510594476879795869282306839620251885319624746282727131939037618886752959695148826786676454304210401366571958650760315511992832233634232695280240829807352872651717516637369763744560863322689886791501312639870507559109985658567820820721685169236039807526479190152178248001272501691096433271168816910866202923453273532339178192699464847297511127180607019923402525991280186296607604970252058753145770058054265801647857717144012467076086656892972856041442485424271852058300368769010589869935933451152309831402345476893241765225804986681231704805197158093630576614297676639630025182994303365641726481974231027496164886182754389378921822065579522695897380440253787976883471433756502015442033648770406820982545960651665542605881438592517349745588817044012397190802046264988066991716143340627434798417855378525604579565468673001418916809433182817578028248793884591818848187109813039061235100096181757547012465630376032240525264519852966602953061148885271150355929209450778342451200794070320508311165514043840166651856643660225619987943841658746985077913866146336051608745186715076076655425340543964916147930029971786217915601234054369398356468770199463085016178158985414964169010954223268139459056197337667455260487273306330969541152811297180219299895823169190814508336674263497150969419150535557007077528959389146373085346135606073235218197295551320398165012906736327516836515504526880942634620172967000821092701354970268438636028907037650934387681952297642687318666838514191054123264676792824694021718184170080664271425393492430456894070383203013393716196946372679970037705283107781809445375277630153846640728677145207599875206505628819317563461857849406700904708601441681482087498906016783161519280349963717319787896329333572546400608819929151327305156592631128265800161517061981517217835200174654166443440305499756975850891989001818863246630277049146041935456471654725550416666608118798462650296793718302240912699720062271845252088844927456430989226548409738625679572132246870571179959148636412419502760403547409263058972505814170923289679831024097568141397811950300418621520231577136869138517487417678503030126142660467122322142363256540615926185454131447476610934387565153163290394154383896359505981198893950593130401051761329742314352365944848068106280772326501321101170763844306657574707305276204908199485160535321567153748367692451970849452299091292563982878990714539936180876088060370886682539801391896646431409069189221939409408047462281498933758420830265644606904566070672296135324439894631862678722464113928028639399228243144055782201904494753441930887999433543296455283001026784640796307110802952042678277407280548032955994131816039452750389279802730486223017673037457457720149078792369827622882800055547363070702283538261930707263388823020192268394871852210120565000518409474390303897089608279656744780067492206172607327754948093783249854672781431414690332353128703108011128229547812031023703724019021282880559291296614238146286510303336473146183648498447206879140200360446522693728115589164809560758848381107533215704376505977648328216497844673864917947418773132815260458977320353331747148428778463855117451343770752993672940672516797953465307988019642034758290932236534812844023450201532585631201438905557597690092503960412189891757069117047247631157572511236071678794639511577322103696933050603197413017461879665977842821135715889807389787747529761990152788603486700068311718024984080240993279046720144047319125987464600622671824725374004690876964290623723544917538325817529453083239932241105491995017260479909060488127473758522433046137486873247884262069101342813074450582556442942646596923570370095200006532397423713766300331392357493383242138617917798857622205673818798778804766755463754043008148023077354163842027643361499193638164636236603603708751759389592428810012150260419955934746053135380914461797284394258926717146567159176669461620286885165101957816272264653269494366687099223554399456987975858718997463024178881290658499722105282272177635697098980345569571480448389559999766884196208716858328437165875661995824043192516536977493348029811586394172009923740335959041835398045370391305584033446200225521025982880999529851395142309486010623522440028811414840745682548003090521909941259625064632412509397460845885006536082095118419632090310057397543833068403493891152591416186301875641938208634502691653944111987177449500077111841429241435809352329891746476938550299500807035036635341434852528645614899420583288807104512473218454627044686703755285445386599175082719190884214453418754934974370830429861150251287507789709973211259739399285153640669560986896844218646469755498034266696145827010607772785342462939903653297293274819313852420928898544716554034035096645810516511065304950499278230394041791544562695661081737109316262380208836947214592736857897526110156918715503567191401233356662330193453095549837474417110904946662560178977259869197915658425707214822530114449088812755942893503684845686402327681433287631004178071647603540738247438621560203747656352575317442591793801751364637970029701768263369774401271661312386061793139902801854938087278002332816170251818604603788422655433590096109606061503681184627192046464012397385622355449028396962136382220898034440838877060496854907235488278663668594820269980816051968665963226267439356943329851627610775351319932870022935247114041815272626224623014069297875862174038381281828460978740067148373492569285417941481309467985656948115918489606390644083799161761014557050793110613033243122878991194145548570978543822962708919817920281863739312627330997921364169510186272545676844812344991260478534481761248294109067137041973190818296770188355061584768027506732917131798114849312899155804424159968832852856800944642705232589333253911797032862040199441203488380263774245996915970046827756308668436817489962735035767955254254290652601535295295925081347986117276949091383530687569169223972977171350434310109464499947428796989695599310394667737162767837701193113988741873627479785351891037036840646116041823883074859137196186277109970079167585240158089179896722885848967296344632176878937546661353562812108445447661536938661134460294087418837420383575796567753139446246177489014001126140999228520832600910216452041207069827018085962909732914294980115355289979148978151571123323602151004624651568076139653891820131996641738327605516050388569863442838235710208808445710392243745049681866832757637177690343579987308334484729334160594337101254271598414652292020926033278779139897865400747203296529762604747687586276358547305906112492504011772849936250699577637577037754818337954984780465661935398775546966153688022232891883627652536556408734217699912423713865087885458483437288911779036519151954399146199971568282971334871090142767061740773113021196478544750836685770887862568793094993716829721836467203540942511600164783856407221147361276252976871224671075759815132136566848306714587134362411044737234818981341026797825918320199143305587833408121168316585916254323643995538187662857103464243012081661873304092773555988334875703582732278368974313139825609231367801513929928611711823729502398506121542696328879651108895472743287699608390364794842606403913117448661826474938231405364619584442836742872961328217087919760326684359267873941493695633297703059494582873619510339199474731999681085278393911709605929750097874152540458081068244677838592861754229392684726039265996171646184893367408605627988904983053800858118080212498100028881947883266020538127243178940667246693250854045494124923499830694391263077498342450901269869994474397247246906489268163503319075070413647094457559739620403010367492883056581255167219159311700702690104560685547003798145348953679002504861871251741506143607807005623686247339950862948328596919996722201672932937962443304010194964303256648427980331095240985187417595276366848129157966782823375020841940701487741128820687201070312464396364152639158659104003483515244627531724414786788988149477888117230286214626440144661954394428476874332220548094854330858953099113118193695064437794134954886488739472922683960471887636268152203222471007049578012176691792840167045020773749399803509742249049143748581177744799079570498167116169608650057412057823161628360835457517837173069944943748903135357769077815566266606610203221359704928837481034126121981892091810389448364718655238354481193911796529534253527823427634406237991176399696143587167839396059176507546979043805900127683276110446516588448752287579683037302733629718792880056542917529672503981581844381614432645448878925461514515670197954495112186715946567404196758701496350180256994697099415015534329022262024209641818498931716578204294073007664761831878185822222267947358947069140076722249339296118240700575237265511165701285824494403946860759215673449107633511726458622356016395090987533252620395121245627562542896584566920650427630860604226180205135614788196825159622537591037751921138890196002548191716319778055022416138028990883322575899698409471740230917837490200880409152855846261415489116295839199179092824414348995188480337618664921409130668576475078288407093781501337840086529735267393080251898747437159474172515431964307340966016567504348048990685004634235151195960880318213002135833537571325750172396891365652802753092606252226065565602142816936549804311318125462228641077392494825459212372713498327215512760421079902914553559404508582767516705537549437625183128849476576461302219071732624069388424904357854909140677506955551178736569646039435115337196729615039094809668439351355831876182713771478793693516663447110488400618055591446834476513439242849779329277066438402081755973342420282501501417094796403799933775224440186172966788343200523387034322010734782999590176150806098325933980973364606896588287671974170945596796260746828475088796053929794510670127474164704896233379515755027642249929916158814058290584631649759342712171970112569661375853003914137720770110367927041206492583695431859990904172691416211438225057471883784318785602091324413598887661173487214393721568586774517941848349546523006809587794075515397892139919932903447087013106757796705330303496836368616053505282045594986423719867961586353328400500889712564851523610332435633171201527927603837984024974841415926483819480266244620516370947562983719388912042973355191988524681292365817586587264119478043829428327273562643790906396200006845335805090321741739196974309955745921804251690521768674101620867650241046445108000188562870204732974456263196322186310270084861788669663272224026801070923479550802411533457139764126976863024504473564884658977181142433488378144543376057360952481295645057885725456339920205360216762239410444681243815319172096721485922670913225861094096975255821868684441366794172714328670584809044996046522600889642224628649572749067949158562328921427540451124326883319945536555717518242366078587732153662288652175033480611723310590805543139668880302561018507524496919018996746700119364233444399312728455299903394456246681881935601348668844775039763132365299324356356286719230816050282730538651792479314642040534687688414518767024154011050323004004741013177334395037042988029634221900907929342697955469753186672896290004646313900321376182648781607347100291240944943705994687767242232355087618246661319205906814985483185932496099561004327214637029392586573072020163487914938008200202893608376348617633896564370304734992651839403938925908237344054778875511289390273835447573261250092839415666502367195071992315662628125105062367809221170143678160024376222746926426825429230008761802353671466351208383996769289706063350814289785454597441111292999468806737469612925038797901421917565575603257951430275202153396421925629123941718122996600683662963480104670981906245126662044978693078890036431471348276160161654399208700130219044883430773801387687179924722868601131046713553448161933077889089034948398970933845006600052697797563388786391529592504565942282653223120285037847908218281418644159951700902016958225903527395466136344884502180114823556298236790628535954672823508362958678481829837653327444872656971307434779297415516418876598191793581889690736964847487647606938707091482394537164158274277825392682757427588066857652450146361528490142938823099932899828157946765683947319401061479781060227400346616526135154003949028827657260972438348106039524355474150183731420652810973387389295039209528353893062971586811205780271340717068245804229711943880967025890634877726706244972919823700015885406607694134572888081807942050796730663864615280132333855942100940064956031504685705077251495595445638955531653359914722286119927533952312495009129065890133024460116155504613330690909565013161655478307684830608253933253921245165677629303017510573825069109689951936431569509914004480628048302924707714481786844195658310898361461278345326104374632539945687384342138051036695719364396915348149184580163949904437222584991118124442427457715612799226594335998301554442975576537395610972652546683565925579236589702596158576893397386982851757114429273560118119865188605666309992885679708643756280006120084195792657258619846132425178027184053622503309538257128034239940015452563184974295758099736892713409020015265448120069899532929223227526444630327756997695849138407054234407399193447788298307066549766236020532892311786876573010901387536897356978974559456533009993179864223524567170106802988566031199513808592748194966726117974416722540714978247230723741063042138654209196554835662654540628619757704736450347580821571708908155209820344244873513894611858083324561367297257114469072090049847697325276532607786948369490005665939428385859557001713532604829248660274294238912916264086418401570196684970400634298521142203614329424825461454525858198200245195063918333084124440946743181319067425378757083184344142205535907435593057642480471658400599876503478399572425679267720057329692046652657266055393824656141942049492527881378548955198175718275406357547272072546254575880270348298986287479225615911961364986369042904399127482998220149804678726079941143973622427408800651456825625556670784802194917674598416310789579645898849068127781195685370985978704915938800008271720868835121016764504548231131319952036115805292396924769428755201123070544773658174551725048962014895322032286128113475668240313606536186882168663835528033079660058654548056800079776134466566482558679044463752356552566192038853357191220806443743333599690274458492377027285867561121247778026397324797387141302021438634818779467107271692472565435052437728321614272936213504251308229490169179360910263509475926767246558192141571722001353002219085703708559258912018373736628178326915443390236550162952224238252882462418637518084597159253240366035755050751322107926801561577683231457366501104907288698086330241130089121104978870271295638388096902443182557662846471141744207335518205349496258154104425669941829288399287651261433494499706241627477885979490834461757782634054519128159429212266839687249555619527764634252085065558460571247057447587489399615257190385103287066609177746839160918891781770731188451107261611250848180393127486287988343125904863242518368956898118553949703974580803161553880219663844830930287351065719184102636955171128472984958907450078260240614314291628071983761822120518810289647812627747908715719163858967193706981866237803137931738993567849948775687182789153874598245507914204411582006648563547671316745095384669837754188112668127080634415174984102148774040706459961506706731847665251833713607656031504134059579793272561196695502282535360510852267153648849890515157316525753249542075484011067954662021667488515018085950091665113363299840885299902229176323678710519097993714302922759610919515020102355325663238316418099089394613661728056862434865581438815996600819855041127109171957916735757975964573887149232946374274941880369390451841412510659465405664929863701934180044274136775315011617757145954269754989708906651271781343633092523524173119353367004525828804236332191858820176452443911578959971750377868015216335242317636579551730386656669129698459854909835249001207274766629445885856235340893904611344309179387159367334088271675660424786680644943317318083159175956799347693775237666275581411172038621945044320355979033211366155506612353251911249736640028467355062978513696190820777863570597486802588422819825657431304712111912073541373294027936538142498053272217769753725224730199110897521439834778729461160308315378930281004737996101568283468724763799302613826401767583243159383597473900417143454231988624211953454212336499702006408131410585547652392778592457273951247079926511865674434228835101733220350561133352267249702824335302226446292085167733198060224054723790440409892012926928853962349222152152357078063033801779505128101764732754055010505340964282174015285929734508683839931232436351886992142905504523324443523059435120295949977605484122894263946188912881642701669088745258896271889675572512301790547723246925072880223019328750442115213026267015615027823756055167596280019804830084544132925525428977290685639332121562148780916861538997654209091882156357320582201670648669394818863795347958770070296356459877964791260675339428984633558210990527412713453048349082278533260943274824172168890098492851443150051965659767200917062748562686656841464749164100285100584624802321393189231769525075322880678667957187173652615196539046649170284697151343840428251463580650916296597830190882198756068357812670985765893031458189259373868378383780412270165305296494274396609451514489138205768070957223602522871736131335785795159058505666898459178424723556058515767014506639168743210224893499886312385370092122885991995720931155169720857530801010803740635652393525408261778894736364984058665212833632474768989105707899932526291183653116986769048471750950911772807913413961438603369196182983118204558516791715959529863686802573555266059799653110107080364005756865060295636438709624704555689856402459509974390163063209247694248056335131300580368410958285525745010389761595391211564522634294806772396057298338132163236232171418561240613821648520606977440330810633141699392603282082160932475206714248963560880585904503707679826285991479441013412760018217438272620808125535338316045166692834662029527700762114649259783534066753583498650988412735874046813614456798097729052137068192278578079137375907402305160048692768912203864023017470714212680934579687451317816888957063989188246491702206479852467745071387112422587975904012142070793281595458365132008208714727215354758020979118262223396389522480572664430618559633268758553883613219822845648188838289401668895224588421053212093893505646117050805938130415949558837018199804478669373401418799554125921229553186157522945394255242309272649209752966518903988471137598918010727500883172357729839628714233621948895997346705082300938679138978826690705947251724873189293047877362027068004795739123366754901065368418910129501911711128591242050543777658416114298580830269760262587558095079714937919189387789384869528098769724906539058126171437937004510953417362920421668410397394850239115294242272669074426216173914607603349628468691153037413870366526776456054209165375225919478450786904630374644598135564344875925804645143273005822900037116056571676385081766031129396298223084985468640093429820044088639250170262246938988369618369253897436982275812269143835115877584355607644708729562546344480997240760515746134410121067165790224751845322607832905781230057950023039897139825468369152617682627978032165501325899722586414383132071190708712870260594507052020541256447460039286243800709879439975234592340868293339391273490815184461982896695273001233169432017704879988372066775374800167149225971403510037780590346311456351686211536760659488460366688974249842241448213230500101286314385955821393051142218257857143206673261367236824015046097131330340093697039061421832509757986511272584495579756245955635861688865000551877935205780134065284184200099454517399986921993382214088230044813433687284013455819396609131188861209177223057989813877536915245491979631339196476392034431494088545256702419411809970474464859918164963455343593304479402331110563221702459981723049853372059507543232232659145066792257165083316486712521649245486935030679082680279446931346774051934895910376220218642429596890178441265700125280637841593175936490047639164989155387276323922235662108309807008674313783371435687274655577276230252022385326930669506291201801681062063947806587171916356269275942104785101984921059641660367730791496165371169529288732060424774043174127422232488736901363412083552501707901232627668983616984650195427598217695571568854533113168563361703958244086477177971919960204795410691024211353196202784971541412892272256324216441634241911413821430738747813875331789819168632687912059354851640022759697569519312902688641671068472829845994817995024327929071314297383233044988266359757608204916477481489018118611463401212207860135946966668275032726218238350277714763659491819210575674504689996046647599264233721117437688095312535890979139828819290629880935734497003364405223166739932849217454068232636699651662285843773392481978935038715660681986365981143307052074794589092272860868638022560774130090820819421181578938525882430369649280085818445356295109648371925564613271119195568520583569741592408964597572172208022562310918373670643102302510165338649146904780870948376626317620278259380502888672265061016005990061838721603805083081754480696716638444413243037894117903684999252644657804168431185664938110767170724761192717840482099063540846876120047130118485748136709362388736625222299872907540601239284827781473369635749322529068161031015000913213462122900917986328275009721194858998447524473469956928458149525874363507401175738326487044372285290435702648235795727431405113698215033523397175392805201384981448680822764296241488944717599493575207730712058545589073899130092059541259830199674770232092201019167381489330174879436710937659513048932601362456969978626050893890512186955848551298838583730714910792909724537627524145067047542895856745916973803505353850679593120598572347550802387649814678204367384943250605107610340044259046313021136233700177198305787743594158835260321343551617907758112491872485882874059106150310564518248839669916182244198456726088723777276842006845548199081782019239298387941097586838703070505565902997214846821138846064337870952125976789436851649194640396484604975248288435681672321205313491591261153949244498088343634559452733448892805974971332226031612326484741553085839148755722634692761787209472397105388729447657095699653981329273155170503149053171043477531850178213770869310702004956818705284407965824334697171094751607646555352538441402122355354773636180939487959801278019092663204138724722581490640268284523855681874503918409925517603237856287965990516927129322978443591369538004625411083609895968204305927443160645401451765829140680888352945876947502949446878580639935709242818702806387191245808637624237001461839352022165860254319486796919928110033663263007755655748700085163622481736840889228781648651058644399846343895197416348283216418570871108411539397107129624736396071638642563547235416642465058908410161098388698627437332292627699341981786325803912972317950791270008299156725918399767307402668820625051614420413511551051285985971475223738748452783461445127431837186945526865437088174757529212383067584034118944802463424469344826923820773779267519308368170872025171009218619851462053884343111931441147510637760723996585963441574410082699094168755101194858097877322763132376812531514451660893439293837752190657305152324231676552601244817816874532790775010057509704530189355904445647485277841796333974268894570969468270723785689125165662599939403283315678031407929637662854010747129411775701611916319624488564363229714575734194448632957267033368492237443178570188990083916104231816866849661692307412454245342854780125926849544780128060941114837179996786828414143600899486583640363558968740497196440149973725749481594624208411830280198913262794034938748601119292410580010972773153683149856802523599399084897709344687940915393160237815719422896392461969255117995977144160000210513131081703494601368871704477040532666743127341204842787084250442191359344724784973443918907934659465998056527880479979537142697820610097410579567223330652495753860117051731044964894056091893803948246451521909545560953731522251323004719177454081732786477519560103897099083847409229371926854076659137023915444806318194248137265138387832085664022949752793204964385934514968269335655470762938035718343884325783738638243762350050536243140797847578892599760217690299779583315096839818099777433392961968435529235345891746964456148352769135695656898213106957188007572541282610664927235348076426798712521867742040014927080573406568979894995388116326548713470737384417617241913814340778561907987499162384323175139517067232404164240692006834839588285213683315246381324162598872186773660803406017412120317818532616541036066814626536811390934992798606476924182710575819896385399939782665320570523983768892898433979784679613056463636678333148668419423223672141361248850572555028586759373201417283033162519350500094725456723515364889832113178144598712428786082216512266998938667145712665822487680549799350517664569528310406154454833348928279362254953400532335854890806977848047566992830036298093212247676261526105211936204860037034644389734929846560989044615754566966805661159756577892826313595544222120747289600156857268405480274333561445779014954350965158107520762576226155167977931702484347009586573937478370222263176343687400942485637501701162595882354555858330284674737320539086209972150406227525698177984535250798876329041231918601014051646558388449567005980992122297296282578272171369464192273977097809529824891657760101819241070410911601218371085890790266961861415751440682788068490387735935695904296581500884678615154766607526113297264338750863565291448978028320445892025676703344041201245559126874173247019677802572030795679274668869292356707930613598486910277910826970414274565348805357278841895551486656329975927122576679140400022329751615718870618613743919158934234630271713531158669443017642441332868478873899321772031948519534665411743302303116426692818029555982786925561313165155138959473093242066001535783392546110419547407691355145345064027397704507682591581525665383287815446773130381192843900849710523212930439611079221676828985521671946071667654783059482638309604712540128661396217898586655722470324530360970191483716364906155611706543703284393017654632804487864617156621171005991495583010411602926342739383139663267403326364608872087686982713247798899177556033318187699519113538396167540815041289081587970020774001987792360420674365970679202616748070565537669764163065975179649184910428148615837764687096577490182086382703788981641046141979630138076394477446482369944202606761714131869235198928589982703854794362910547753255721222295991708484698759055526369878047779231855652588859453498104870674638381596942680410736264309107935146157414117573458112847419802081880769668061971913276849821558234627299144871828485491708854709222521553182122119247649477975854668745433090637404172828838175666401700393984919254130107079039894208780982741857700620806725349369076446485436279063529112113343722832190495293441287510550551813270851057113547987769781611354460256069311586556320215589803083925501863509243142654433957767033480412861262655751969618392292604631542140978980037197466400158342779182360810564658544973516144347074643339213414564431248290707095506073414509737806902709691562022319999842743164843390114821539930115018153115204295741000502784045769286831359175375563223362333415016753994679092686427934409637741646260069253226477596151124338754490202934336938739421871921589218875369897056425169429887712402964203320056381931283070035686628682596389937447268776981520183125096449242227997204554474021984349437697338613577434125054671428820512772332615532000396261274728739126304340697946940577041996336114061993495144295887765850405774681770275595536288114283045407283983921284863158874686480408756251537593045338032166262537216818054419022390260675515048997199285195514700200652150576236444551012048672956577497048318844531230092819030979455809876052373279418394342444483075466587166937911058028229865742425367613278054151070924760737748646423344647220613414453141991045496254541353389409858755468524082964244345481838165545175943206540052401568530343923470172658504937132957945527510956013402811631762509016202065662648241985382804742346243004710483258734932074113528167592262306224990098853352110107002725316439055711522314811666046170969720806918835776926630152681101138143719116378424394767549924208987648758006427626292323483739165833438636567628264546769106433695640721790609708258833180246031082948382696371128129783156862553080019855416023281429344147578813562819683876616251403698821157540280143326618108790130740924650274454895768408264003583797703148166448724292861118406228483668337210825001535147136630158609485054641733557423462017758953029893129855393454563846321951879335108328689028643797576504265915563304364146890725696018958077025949319792151372763487875083156501407026763149100883157414334979976870723446802034282343772954073427162198028190676738359349927789575611176521916924094880050523565313694635571632669647839791431281278402505174320328630417205900413628546491714852035017614442182542385313271222420537676248299321826893487224744139870869329114499927442799780967364230391166587375481844096055164470524125923651942163765079070991245950980209918759160643411774780122160051748785829477692553420926721912263000941684298136660504351547789676966108874205109174641691913510488957490062405118603849172950293029431754928848774253419757727022741792558997616273258468626329426169723596688022424651946959258313466033640314533158023359773276046255621344958385299175400813462364927326333626695161802163919493605030962437021682677653749168964552061042028484519651746391210821616305861530851488612092160300000453398159833488858702170927149106977662204118006380964540315567957357689840168807921505477231206630822402437215954181516328025260763320253636464043732796078228556861988553326515255589928214717990898308535929566548476487692444587245846160350091588251256784997160140461313860622936053775308804799274226204028653752240521362290495178342539787060377836031915151951405641836967108144644652553972931821482201878212592519941013046492298572395050244712349368883890970296357357089973198989186979348752383033202166997822284256834066473693782587617734610849956856201334730191076179223930839999198010920280319970797675431007442951603278472416289050643018806448188095143600869353398251170683682539171859116737556643574437004021560463149753637700243290289737063243938142250648161861665569073264881862455311939483161210920876912005197462915731982131886489859730930700273936127652652040174885423825843835894234389137431386782653012182099732247700181123701609621858138379491999880715675450146234638234604262099632814922761073659986666234236574433546684904596143773083818838355852084848384709574517152965226362782262798532697237599925757177148563561348433745968015911595303893137747619892020259688982549973338590943204832894326154874591672438838360103333364560992544994968550677898501975321546836951389559692793031880403113153061197216298025890974921797862973508150640589949304591740597172276230194304349686016790927759748523166828495686440332029207160971080856493539553747967444671892534399201533411830107400593978749499779020121827381918453279753317213005873088556735935060660220658817888817498651378989282240231001831664589830614682965046613334379349604342544164354025676228831368533922817364263210312547605872569747682634485227579879329523402269188071760623986808521650503509851428075046709008758230501908397769501567620013649389168024048262711251902905750362500338215027491517429175122701774105029788214626360923805156716246398070932798114368313706988411350053976832480019915056565092608806217382932946589053121575575707930390387709996343318456658794420865699653281580783588041674957265953712720899069295599429625109194148970951129213917606677848824310200785015723563906384741145241720646349859062822915618878975855176702994816781442883948626004340051851975687490607646359472166865134352076421337494794488242082864994939358225722489610603980040073818297405071100689771880220845224231490837134110196268738534944774929510044966539506305339795675803311647468955868044634630520270847130882370287890403606616752560983811121898769355115829455805207674755480684480567977615245968901405408995005683512574418976996272464273054439983288583949970253423173628881200474747410805777058727250223810338113481004933474275325942823561319824221076364785270939483409868318078665827568755155741638985649172686777033785327057974656185574536164828129503590835487003469121742948443819884323522678022324096304980767616289059316188094512666745434458671537597142377764449410579814550694323541918054470261461278518940491191190043494150778843242791014184583014077258179368050280991075503695381078798173256084608738720923204810540872831951308457656105628839533322616824062412205193257002229656013644908797756289724335807543947966087718239388725130327776079748348018348847108308243327309044569940321277084794637771909260145356883246342477680291384580264469826030520475738149422161235722584848139518722175649470050373621556715174511818684137587098112164928613943780520840451668600625473436630320235332361820399954015281458691269147441960524922103266615312297927354124280369948441467876780645521344795008125053648159730036181416034562901665814892472337310746959547066209117413493547876218776824503977961182335070380637932591183762065291648713937467432352050821990578379032231342183615931222382659528003872417026551269826486162475714537080396266881449858894346741762288638736652208123721655639122942802233178869616949581918167250054987706386512785504915341394794542394314612179527202112483697513801190348625562662442572645171446619642199574659009031703511069686010765309049944168165961257534723217257392226988400880106690296489954887836050385390652785737882843825127462335460149324486070079698091087349572106281452835116196323581784426054327696332229706923965531208258383992635708179254234456965812435451866732873456582064983584693951340239542114569440168520259858882055521563913772679993222607633220936871139885637325001878610920492373718029755410968087852089496939050556042487361012644381136141801923593037010017463993282735554204589942603737117509216411485128740994461771506697321772558222994224183302221235786560117695234096592194658821579427827565711565351058922116768043911121524601881116555609438733777428860971063088430604864407118209860780996709559295978605686057008901389471080006515905896947802627801155339254077196599606941889483778893608203407964850733489769685742584744639596426969254926445580655425526118254931036900248610936125399018371904276443015345391216912792197105921640562393219174475472870934806370249836285380865229730293108787164023349170000077913431085672943589283808412538655014605400462172955158853777713754755662699871196140629522241176381567473266986284408791701796175508381506789079003009932766510814989727086873175832102638453972826277152340548839256719569428051679308386676908556686959198958288287794441861746907179174359054246122559497006801407933850576006212582398753077056531014980907040194287769414741902022060367524768168614474267882777431834309098631174292704696802758695807743302270167843706954016859252983438875089267014298625449638693040711394813874556243635463922722767328658927264209835318903549227766918249384201192918353485174049245057645916868324499514941677965930201295770045630146464562813273730644493227822607531205920569951914698549555792259340710545279008436010480612993718783545215170898047093297331438369692639342497385031632145842800319700165012717162024167069616757625899016025073624224380851308004914538363746238318772390599813942345422289615907607214152258716762057178911970742491865854783261640979532703865053993665476328292218595440586365510695995991445783255927388606839443345193600391878420158411176417196485010112281034866663495561674230985165885613938096100877857851651463028787911660288028490936778035463915601289889042464682145562430955513635834409973681172621399211747445193611087826405453977766423051096330649986196490353881771867240782450514184878940834850173650113255669744651537636735040280213283405042337551530401126747330087601084392580788381267054648810031180423132826257267096935546806247707192036903302492639262115201593476860150408872476095402197723193017528156482413486514407566894710707961950191864281178654707133645690524313745804847319046550195801587461615375416230083445288367762621623648864030355871661443487133692499358664338109885985508956152604052000633282140732358108337136850314932194430207334742671561278789286941170176924340897328535393676030738578378835392589372425132843328323558789854704945657742736116429677427962174974379912034722565325672107926217449166136699388821937914392660918646699806163054767796311857684964090953315270282001260187936563656601165981844118413431036096879937213894065652536285107231706752448702626525451179275092872021523157294673525728597577683324609202821341173371813664441988599254060194756314799936181839744407376366661649046526330433865506308445728461792661014787107718395571854269949829203049512943107886717528109243916987385634762868357696886803739588078131380467393820554927726703108041955597930270269705374514048694808401188940608541723672426579616072429300504992819184017072256111644235850603154727976509380464531636438300507141264911008678188797488997245462692542212544366724515114635598309913364542449860223151315142665507529673264087462247105699673999893931417547474759702703889074263222085928595668472959502981574642571424431162793359825861227689079445308014505508319313381645346743361820592612326818763162398246297075130904279701322998588106735110997394164087551243057220842403722897629734612995987084641202749476131326213328635328037437704460729390667052941005390615493446196242601117558119382648497965605957783802361751715807745882781150844264048959147387831684344482237260039984852736281300292414755211681790891894085044419762869249444264741839419751577511520522502416877828726768877334315670751334940694311054781039207405475115112856498522646437637434002712059571872385680436504433217158310653841541100267054859366076284811139798120218925340062391286076810152308131740776668361750564139036091660433367634919784191610155728260442067421373503107394319853391143425193051577395429703875171313325334455429339166698368121257998056824400434946443295007577121021685689627171911584945459668910354177334824874159914941723363341552833727882677493439472587801964379843247972881889394955877927366692307234524072285104115373705236302389804988096079457224172092097101381181119368394266028013660740865424989459694025510806703093761782909459819863713826190960771908664852483113523401994725753112512485829005994841373722338596929712293800006953903260259697824201304387829972348620776738345776899770389411136758412460359548844116263591012318421056126054548832564861818132265792120743880165087237346125752374914760561043967858759724818214388522735697554210276142281173265017790860714035151981575619886065243254005947627326797390616439471198932368136626510058203058183837535736572878575943217085730098476264899600691573645199050988455156587749989190570470122985462371728741871477623506348140771317772620617667473059063155252364966561851217509875767805687685547678771594417631980601360347906842245152762077427584540384003440903529125309827452651898973113706902429058368412036869354791279252233872597143452980815930208881182706241312472911471563087967733915076799982296423342857581996160402003390049388786537723612742022740623875723553171841039051581471983166535821994637603666871237710708668920266684020819860973685277096870400620926761182730835355599857875869507805182534312338144840137611174816258563509385381255313511014383076582760364438256652903292700251081195986227418772919288605008863835116794600076363720216879684954430092195416933997120855146530740414448198032776026621525780289790082849830994025990550889012653139049531834853658409518828416348807163661071295888628703076403033941325902788236146262163793549877620345364949701337324709384899426720581426930943198777145118487539924174483414168108516703387548517142112401777024745567735363163027751447946146515831827228921945037633656555646248581611641917686030862635126616198521038763300972074524047385099424825833359458028360502920840454394717009861734938019714416349598467692117735718740442883527790831136124880685100426197648725922224419928021561793475975960287432750358741806157361763976615940580364713224357750162713511675779479833313306497593846554325704989622486788806546847042296344586723138761727698715026572780627264129418535194165644725388265016003153315248012164999859758196791983106217688152921974649073768162047929447364357435602461469184422447719911372899216388107931908772817572350208443917812419484524145942150369913470527182450061381996611308300009145903836945699612579466639834453158467517934734507995831243618723836432951003277500313502311320926144316291458085475674754486782412792623424135634152106058323730399629042448539117416180236512814596984966285859718427332631282851603454016163199188714692256304468269922162472858510177905321042678412727947524369543016469970243626367834112026933677731945526111981419269797394330908213586031652954015068307749946745364624454069246167583267615461218070447936999841311633551768999838973066919042880953945579032965561267321635167952532045012503440322370257190116769536669055053643235882849331188673262901961037992591161300934317070237218997621922957201046467930999846428696248224830430990526644421657988383564752006096700098247546260197582127017231608325927338061736365655438981213535935327083355148509731594954221033501228546486685383324916128524625524442203497627600943886854731925358418527622880541595955361572289458226614744355001561521825709689899734316081291455120807817566131821244106506451467435345397001346221219361798652153603772806485194551841499467269490292844544839327256760908476011028877963281089484696893478251253351203840244317998866687445167626709710250806518777689917156114061100260259710494619496006628768762720422706370141968953340770475811336257320667024079386059821938951001346651316851703558318055709082289002403662820120710691280409237982732589034031965167005767242774024447005165636237183781858983518956917851863148608354232765295932095029421412988313710636844058553362559917962241417907981632088963511592677622309645599476448715601674748941208852316050120262161590100902190258616754653985349513454482085884876854414849884598251186834859249135700562908581668596548412044117630971774120282598027039144808917805270317122934337506700463816987768006537595705768062737587190125274919868322583696099241929601409920434133783226058982312635566985831717811151355673200479126608817556796860231287394325109434022250913921394071631345641833507885776874743163280493193071638158960569386909907315618176857681019797434809718979711313832404442180538010496300291923716754398526100765951022142766313057715831362827180316971101516437844839919801544685285203407071918934689138710536972006140212564657125175951455157001800851439160934904187228230025964561038057888539318796439953735472619881516970991370419222499956012288260862375934784449506076895774499169907922027449560535882778008277779838209092664379948387532055907216458090801806024583310618655343956192265217622605968197865318698885366261714540006418111894030685600860645390720233205591120487857732346800373576899267071119263806972309114467219335132357594771384736526447029753883157674961492414436216636260449741967672406682474380557362286828173781500585866269809501084581779894705869613483853398888006142217360598178388692553056959164595143066627430742049268056674249717922844108211566424314275777649756025787423890538730250974837757994211974682510782422527957625693618247990515434615139737237859018330096386970589246364223950758283966414193996826329377835977155374107338608748959166887372523406768677475123829924685749340479697135369753767323659491270133223289974090417938120144848004461993766561985795717871110364902724574907352731779166952132471735930939886021573168503680758434510426370757257003603200968480437891110178281442739957239568800559136364017389649824836933782182234561021195140251493960741921318450808616308122957528940269308730206129593552366802181664088778851891030379504718740090210838543587677261727216999949931989964042629436963221086395147669295796080665887987193285620697124626857184093067253924813190021753251244234032405935310496696823413472480359568932244823228206567792667432314587046895588607916662246741990324492431004983501444456875127811706102754573553266096235139844403485243516858874079813070968998385477548355646727531818528751838540712464524037466385364849065481349083859095564393138584037755655139052800142247909977882239314576865364659281970357900587232194142980389124318550843648480321153209901840836664300732216624445646034928986740751552925213314172677030331631883069051323138993033001301743966298114302405098108525944368337723482227480021427430416880825146191506914792558212098010669233420363342000006570178558729013843382606451403493746970678427562052393652754775566140843515423760275650757484349304688993025727994394450770138083351713890898149451897025228727372795783775335251801875169160810786035122572067797626020929114505585494435784535170689046130068899099886155084697323303145665364967019577867456207819359752070122373408181933972202190156079847392100997152615903996604746766399857511281220222390392799497061038334691683442483128295306741276584834106811132417077960261207006729024864198103458958995009231785417316541648911357590412025582153777325068516595751621358992554500823738588137320519987513556323927766399767268953559001342036383721595052484674107102294241452674411321499720201659237712399067783520805649247319179732415844941080005054735489408764487949475211784902504061436859452077760110605862704861742389505993121701985305501639741479707311340740908974877882389887554314652051478245895685414501497212763044109746236175863238192777442079877957529816693386453942680263418800678735976709868934786978038761501013024056687127589482297611936138612095786181467176688131069471299009094718910289409371931912496918875022956654913225132748217765182996420646472683362438920623151296197753452824054380753316384775382470167466664192287022193809795971106305206044225370845767412225963432759471646664818834493129219427815016660181731298237720437583386481712315368235656622048575106223384383628507856441497322647676898252759468851106058672387025040732399443462823704779669315942012955901234557657328193433510511024257177641614548434381067406946788354263089880108384577507991652254155809433246643836388764003819208931218838075274808107769643897704506109325901718462841143493357387051314442934864957277690875370720274153065050407583510925512492387344812682406251171704852767464890060690423361197295384569330862773568711805152518476529200373969655493438254031817930113736865923729650301244686054495973204749457792216104426247376073749593144182924959014582290109168364285059097129301188092067457282288354372054552484617385378296152981212365965002344099268863595136541774876396137857792162759132700218012361114583433009446042868854576914555609363154719698487036624911447092731966784573166688513728824648704750215895474691077392823382234081517991128990758407919809925450335581396276046616159723711163859022602170413912426932864589670363401473541400168358367536860211189192258756122199236870737222391511739930763504082453490363470541449060841489644821712557598019961475137725935843892050648398756238365701767180848228089085047371431405206732411759236788773173911087534723538491360099594841619219024818099428118359904602447929085292316967428544822446307134914315317790034843347080367129501793427475715051824666432086416097210486738559041594105699640785610205139865547166085755296426734228667633907110177682029320953898706179634161689202365677460710087667593179235726135311311827552720056192747875537135888032123018120023290495944670756063477382784148615157553477928768255961672768000287852798246760761073697658218394599539536896482179556462974303359393736282968928529124504170001211959531161516902830280700088443725808349502951139037356260984202691202974097144821258394261448613444707562839584460685839184594958482867784333094502155756878563414651719986804170605306152561406554460640508742564846515682531923137377769392649085102240520441301010596763217301345937890065518176989962899334763402043771048599160370126297877583784818317495432765255603891185902828682893151900464927518582092903976611657633520483220864811037028362671501123491644077283120021554961048529718195009744187980381365726341125332878863370148393625353686866395213362879688849830728198351291861272430493775890727462859393001604134566816190328546104925262645349409872125247334282906443536833128646272620847872208080436935770951825592940215166163731748880253600916484360318133267924180916436857755721534926281040679823808406866845747454116811154220287067755020744152677915987517573443888877663642954648390033225631893442655318183245759409635600019015960223200963147056126413265396786319642433384573248785909594766539763314255679247653116828650871534785172166182748657939226982252722155006748898756598419169129903606641837724808511192363466343349568477327261963522990238767434647139020935603872416555429011814443805412185026174468766836801126625329518265779816580362363792008030355159026973667001506882345070091368475869113286134681212252874302039707146824070926925539659707682986828139386433258599603795917376945131474607221585482831089381741581611307102188913000210947117209906091237728228780023861890491384566255839813530911665980536625022118313704650149998223977778879075289183376979888144781093902191758396549453416877408945441073499993764038917612288617927998699121491891918350782610612986822907631270031938583935410311261845175650252002310010028217028157379565582096555473707285794603437477645738189720952738847337179058592586681847313592154530998619615704732095400255713914544229076513078103202049054875128713015535684214761143233880145525293658548752292420873910473070452514604285315548267685478909543624633732639921394559318933618057415983145940903894504921416247169251382350239040023863299210857091383426443123222374086355659497991732377818546789187494022572808597541948729411837238537816314178719858937867865228840402372338488008978316178594196436772449394251697346915874592104829908485246613898887629601520610350898713737715970000595997188311901768676532992246679206912408792242604067989283020390608639049931064488403796599454726857344139419449104525297154342230632016797794043135639997134146813325014183136469680562973154241050678375251484679656378542775550170297998307421960775454494571393906429782769210228131427975016287997954193417158958000852149875073178935292314066764676218180881519455051747360950425180349238679413704606644859059593794604090001164452114679391762288235159233303121014803763738424494037175852979041145206414280379660881217440818956657591142002969700777698854645124816783131559460660907670808684963146045032903676156086780229601479422310617862735658005069809083958334604625051725031474230818952535440834564311192202514883875644981192401283714432035528784619935951091069928979752625790230379749499618323487251149842671825640970588822630363798364891890288314406151169275403152996090909549113605341055463803815027546355258692278014487359707877800483445722503011494820039260460132629785470472440330555599729944116398928236479401779100995834094819580534647879082297679023027820579236040062175091118253056172953686602015477729447651449485436681962327508894314839418842867517972705237450124265116784059311348722268559565554057075029447741900857210439070930014581773387027444552516560378644637334414879614336837280765157773289063567233875952341299041007430731462532035347946630401299100991570266948967918565909365583403489147120639761336169904350870939019200163376532046144850617308262404186538609362330130376169613127033710025684843632319369076340422339749337092562181660636010014689463673501757702706397274877693280596521009716718668731236577559293956926044166886923792247657091002431851572810972181309609287893595876608368383665327046500778516893159615089568907786871210036921387800953260459518119986543537287332038502944090707118126694654768848931739174908699661624465793468352215244417226933080585652442233107996806843041951493254518357024901845777558625188262831923059889995536899238786354078715362056417452840508469479102843925628052920818565766518976957825947424352967998429996638143220695915381765194124109483776567881558352268782025719563588182070520658599643249394896500349439097166541383194621262068012578044064876402930911760149057441458960234861302625977324431239681973778534815848876512652201145236140712925717144228470755643357253500739980312323044961398086056489792467507004479330044512380806301027800819501550700803799597071694161469138160539722169974452875854886142570650499034939200740110376640486113003903142806681936910643140305166094855448604842385274807496742263465365703072596511055782266683066621781586443599008095377792308011213137899086696808128339835778250170457443455166888468939061320632630523273108579856833883475293577103279546920008812972588082970597016526162356243218103002567913677727920516553384068168017386915029661543250424764691723293801755331720586585576037672099039806900012629131183752743109320590266142146815530468199993385127414816601330002152603177920309119673967553993030185512264908294234497786738548509094737191221720010969563833336819373316371009881477875681325071464006099558764009995887663927296749459582342627840432507146857041767942164686596427216842401622980138117289085742816963029198434049600333148610209490379163496519378045542284496518627506941885036353015097929096938366570560158381891159214538853276702616247831661118430205480511069507295701384905067966525455955815356566013687470273137508211884558350633350246302897675232272629032711184741042830238072108420428220580309433685719784131513770748275324952746511343681217858054602184948026041898857777271098815022050412711573176004918003243562416440445748770509210627024188410272586553985125118877526058191681739097512204134538665518227864479322965198423641207025012774155149778140200913259139349315238254351937101115475455760147562991293422900278385981257151014183586645479331739295602347987740889853382131308472659637594405474401990249867677249457607302630603095180010134914524132452489738835413634036753941466966734783470662007211677071885245156649503208854396072716634184432068843051905319542658012102036557802048666909935631636266466679632832951728815703010196861935377102732183145080756034411557694598675566008877813974382338712601056320264018291609711622737934922417708387034640860115407009518419185957949326735712589348093765677662527065972961444341816387632785119682058414753764060719721492705732882835073622229219747682903633885587009513616794222827352019365529607819449116413718479292620477209467364990516710851121661245301950113013440047311203020595669419293237869323026865542396003909446760938897867584947625512219099476295394311962841568056864657183024499873075252518407475002121333187834326733709848517274822590262300735205703191330674971872649224305666459480078883176615432992750260264506330642597941036411980650498184364071196807467049372289562346475661988418410304397534947827384711293545063321848245048883460725131599576816652081623320436643217979721237554495210137111377300882846372718598573166720296657174328751428379397930528841035063353825488810628484875385300419775933360068473182714877644123669443911166808318210686888942085785260033871286964590197429908538055243998778798896338750608658000856725935728498234880655131912026765973498097883696608725584483642828380911298256145185801108866045137383819332137559857994791581886212114163871669894253988869160264544095684157972982091649634682093331946781856459433312021135618612992284405755076042182384155302260837106778724834501136334148535418580051836678921119436642924223576281856054521067152505607614673124843373639037566731541923727756083630174549987950937486659080818021181802946030170903267560837529214610962961118942177269790825214946060240037241032660057700915541338823859235438540441526876637198714378327355089379459022745275860616712045257795513460467558259112984864703874439852838458287383001885475108644927647349648299628665603020153354450127578178487796310478942089012203006723126885838733013065575847971627065241281102196197634887671289134638614561877918785234797266861475471218550233194771478954461991906586352036661398485194775835300013258756724753480313434645817494130306806868183841997377523984914344465300673087403128136332431855450998592852635782432829527550590198437876104474695405854735760797589952324815155556323317626165487643834287134171879213415076372543727499641676711618277897664188821614164542184537629154517786728081257964339176442641387037536916010415417355789759448148713112509008830945004752950299978492050265761172921573283200789753334340219552076202852429155144105201904146724047742683484817099263290811158252061578833263551804683632090446366821261600449363967248628149919307361593884669661857942887775801877749527518682210254500011665526450462836368346787922153448066074698760219693082318217968462280431675503439232983813428396797229085987237537980125960935625089598559541715925539081715897572910944695098460228093780139353977123146137162445321500692111551383913538718226902272555100698363649017567535041945324654738071623176763801201525378648996653070672491009505430202060707446156709174528006512916441980590463397354960806267320417753242873174486561541996671050756599906631632290272513963166941597617738423749002453186589741955478445053222548485241390865934119720446909382421973771469395668338704886192516784638700350421969304527533759015849449657808125965038029008437158637685012295997456386916209538526027784355037068510731775888792155281393397620925178899781812694862413252049748451096089631552321682271442307552108206858475815523734852509989860275684648084076802600411148999324607832413866051968989065029608623289630619324993270119220152984303604319122401555451746218834114292825552779525787281358255732951793935009313230416616438226142308472302057701852044286546019231423932192867971444570162370932368357291511100411788810564505525925873051218100152766251888219696428617094719139388065576311098067019951404817740137755850696429706425962087087000475737820590013224722831256933928002115978285332098920580790207942878100549355919525128475817028619405486162683167343658133030167475584062495348313167398364702895926465481962003581033647842797422822631604674862535894800149537573322488460047238138548253622154415276268588041081378488579778037946479002696547249886906145456361497393042746723818405560062427983913299534065026220335165075821234397217809768077531104048799331574075202009574669921375207540807178563969904197237867699592548315497837166109447069917486437778313962346291663952973469491094391081625847205317887970243801957620817238973852107334194496221744948842440940696037042721991359496917413423793301667528383570135076558240621533089199404325739062972884418061838726016981519689512730125551252309574834576108759250158215858792713979886689676136737217825092262492199984083982693829676701851972302677761126713016396882786947025163189488632153752717051056955047816667558333901324951733527830558439046373010124654122330318576935143524837211322933372236498200965310607115037784946433861930314206220957824642434086486369677371498785059422340537080041680954756441192341532894326736254092981311937161035670756695544490373613287731645289130589751110718323280340197593380832337790846857122957794482842833010000435216221290212014824446627049492317385124025341286384273519502666990836992922866995580206261162644264554010470350178461676315345016243698596728179048572059699395522031522474311033675774434836781701868549824285364346381902976541380983958234628294313247054138582729950481286861115760266477454083106990377645969467784542241440148592003951698606184345373893270824043953890005010535694904982334686514886967938181686525869852141238283879398403767645944229777890055247617358972162924050029720708354921311199329340382471512142063583139153788418862439423984262140596492838495503644600322906591766567017078053509091538309778265393392709529806859609241860573390295050842577494541188297509514527116560145976446353938469340652174096942852008904806564650271388070608171402822422670409008274015422483224204155226164685141034785931238250824499931115857525232677657403329690429085271006285953783269205419594121590028255452442001319659784273964135289247246339310833848465668944091158495844099683795593549647986522266073500232056916184446019841820447981254930215505963735675498691581155469533882851453736078845431023296488257013129578129324267795833925777911425225973602114736145275743610487077548789586093226691172758235675269279429098116208012658850043684072128788380836403360811647349957989077647440832121769766596538181825660605402890528765867339668249733930219474241228230527825276091512519970073492226439597782550228102639393044653226359467064546715083067663540973864067674788905631435245590174864757715510273436505652414570144338607881941360658774837347244480668179213291357351918890792493008950387485593249189971838033466602155600775149398515010169263617027527395964711551429359842488586500299015258542889138898190942098434915080187697999291295469922108559715032975743779183045942568702208645930588314467768736875821336937720690755832763431291708530637243985952100712527941896540121710221579780358497671790488261238722312645115424072148637319784449512673986617855591960475878371826324113269190903265721164128375907924798068435857120687092673779895429359373068314199348035761525532316817762655626237982277773185360273596227680305384008599049208784258069068299466015095674855457540023147953808097107829175154123904407100313721709564085424126832347570760365113979989760677819538202176068071983299979875382970226276225276421188412805309857571659082644362573143843891837939029742230432677461545459126823723276876843442870100168899475145336677182297370328950166191869679449214440258444805209200787287091849574954040882673547495641545573721533111101069390887727483507051105098814629500259783334353931891032212520206584069802488701917602238330674240219732626173265308563687561899760543410622785326452738899733847022951984993116603828547956501461455269747765572996319845455701202090047631617385242886331505509097154124496973636857734802493208704087635910734013816118488875743033515035099019434761527237160241818822871277130053919294458578579944104512965079155703923632170396459019274229474982279405073467694821239190651505800857876529906326314272903360945165175134723964736734363449290135703116070422272450828397646439211464297946184425511717137791686858016628334820834407432042214730292402686051532581244318263622211272100237575622735146591394170804925523226549817333203620558261439137744162827398585747665763073317467953341348960461811419354989571359277133664890212556898747378375491683094758475875834324428487764856383215555218211989879680988035239007574740497756889275780218967530264741708563751930334947099769967897419534982470925315578796323946509626591467385105578356093631127828055610129379898775891522004606677278338168150601564587432726905943972297066031549555953521322123902429538750041014929562882193377389324794434478480172223221956640484187160068049051585355594864083470562149778185815476831643064904181480494741565188292375353742831111475474709739583051234325694481788457227712244614273351757896637994739979012348316606199623268241351787556118439353308349034561662298138327506327396430592986233143418071953512531451464877233549662222970780560108834023575087259182374972640367169357353962654697561728158775101565080480661443998117944333745015548320076418399681816588637441005459770502260018948367242894745366313711399947801657310857294304009659885287829478357024708469265481857053156744465516566556624357052726091334389813751602867200714671323068204394561196417761074507742735631718599746476572212881385570622635007059735962067414791923127703823271219997704301002609861051777611679174994241045842655895417966657558012485759887823502140760784593179876124756994929873659922287931603238360588375329585390134347886435839953545749160653609715766585706482876873079089196400104035015382517336022492210153512839068313142267145082814406123312261100668204702602120044045645869437362894664955534356257941200708520338194238235150990637745381358286045515508485000049004241081956929756375296741547960762152548822012827456138258075744071458707869412843205164377675973719304402625438410321063928486710345625048049167376514488785670449501575263531419311015458626817964292472347200716336586143511903522922107732222705908987533192496859435956412342658224354826547974098204837212965177924138009803205102987703484598253433356604613799933590461596128735059493369520181503008120349480633200772289949970234078741333555449887167558397905891260895667425765174851310272961815799468655866074033390222657904429322248278855123017621972287119518741178164365540705217630874168156245332792539762896890205971078961540638268524684034074116231920030212462139524561303727453205893313940644174238375512060397825912206741139439794123043966595471868754629517644884949912616814391616236171175114948347987903841335432027282462702275902186822979653839517803398515218045986503583797781605236970137781192033228738599963355883100946960826361362545713966509690145821037692245294471154360958538804159434830310459746341722577142425101910248415092272274503634748011125226782173262355276942436228964967961088985975537617870670413932468509401720341301507731639227368987633866722352845416787850389499883394201544112385406530825149751691611440762329667642751748836757522337125344503402376946918747062116462191706678012793873488679791816353082933811546132999283671582753621674023113408133437546887568560730825009374827080546441917758153827304060240789506678129887795623407500418661516661222442180572167658560885043577283384471497588464200322660216888316313736044983784467003881571624771124870451041854929899086300495066303475476730222313965833272409219591924505259415071710972921277119766244594114008368460100671403745619567669389703764547132172912998541713224981853419208079037359174372195097571300182787096776747379654205220357097869338578242997744323341813769895898503672122465533135062774247954792549844045843345530867064153760408851375280000483689252340453111640087533575132649980596724896336798739321574915901327193173024120021199541667666776305637661127555304442860153536244093500186095810399971437408129199987380328391035905713367585294492993359908744961894692332780948901882996799235680448922633582154200638067044472976545489902675623273210942200326937260322320379448665671696031835423972074331429034786289800786438353171869597848427496683059492972636487512327254363352077930795976514018941797566503459945491261970444265938334455320516730869827800565027326512308744598947753592947246347965402401672575335844020434888601032749414779405177852389367838020775594743896178778307283358891152742867260414553522382642237618792167205352843436884638511301591259696805483691999391917116582547157933505575323775533494114115884118493961221826314425200571555013503228815257675919359971732799942237113878379141647429202610777296881440165732937045452445623418903236440969043053545394496311873441538665121763210716764643099022221654769606167585984659185345227717676898372968778694849156290135933365953847879392602894855660973889431149886510782866785616640081470992642784709867619170428710596726952479293796043631377022463632955956412952443575758421563496789468902704228783687918185993453964235484455724931791537183338135659553887635661063767022628633257824041196645837383710710523221456763420989579417678337807892085650140360945297380353292042376870116521969789027912537080568199626624745352775207451619187162379727944362385298330214906129356978674026462877909361579316091683083541203455284179747985447322642225280895470075486658121551932662980732254347037368557011207440403320382741780081894557105166635706673930650800376121490448432149584394693260380248579961515847046748722177255354405902054074451906697957414607881708046491515857366938951309386593455636579690127325895585636770017086610108486758604961762048199416757312415292198774784539482769720838554294961623994720502065003101606787004342161300462243001490451540868990657338143986201847962059143200591944305448455764120887506119804497635359638740662674695259838543668494160007851239189746374866519591053503511081698810040016824044818685612038698640843264528076165027468411479912780761600340201895996310144563173306109593265545934151133142131935635163778192160477350249350781167869596167028922219245085748009468391139679852725217288870417388272641612230380103324559263139867318688582813031172505169334699881630208787025058734328177342178377395183212674895568372898975201450131628236150814488761704709079682707738821190534708159292698568485483294741237966275905200672391164099665757675052518355254728841175617233204195043073924731745928125190608115327366748305534305059875005086558870830349342402730914259120951964022786788374425939547208658932196142097369666289829045011099895273937928977514036928912377916539707038658388248856114506594356758057806257601151511903679966975404192767672322132663894515065705137113145957961534970881900399835900844158378314466658856724982295154876956250201391572184661480891054489673045508200524329307303861888721388328168101878597821232241809541375310265428841827002896449191619890915271250909625724298687296046457761772556634528990781824312302708528455788143462225841209807595541189762755181677039646231632940538311051124862899990808790767544520809892214183011727241765433446241505347121144722653275240015729629322820120053853846683932081647300046224224792321928528587308093293221712818181865805477300274898285638456840328319326436880790983316789751857107138411090659250590530313650514581876539282994765545976589415804627889278349851511018038215640632619964892219040394955504640054137081257024039871973470075329554183052661619876736651299489813570582585274645487041635766195444255266411064091613076468976643965062135077055646961131718390316831296066789787939019379849958519019932957945560466892411115795053133528992792779511743719680992296154901936715025730247391861656468813661089801177057434067683035716866024912025048763819475029713526617284322681077656319402788277227182866006051036488162247961494700530017183851843535940873072629723828764580738171776345601012579000622407198519235245845305884375639015603962667856849043914660174505189223709957702347538203904395250404671553955136803548470595339447580874008170306005330609506530797298408322336285685630425421042029138570727201256889251219779051666918462819061044972233434670473251830741772337775447557086313646032882733906625446099671597085386858570081673610822176482972413889556975344460155991800653879501453114484997058534658890765509145538978583090688878498063595803928384671921295053274690023070972457634729508134073218892755624846224026708638851777129170156881882621404962846270599593013985869768185397185082685491447985539503063301228523898589277438518090514027025147942672038676178570708500274710149386409919763886130082217621386785705536174593312417653469202091803411769538076363264655249316935435163165356287029785131499926219240348853482138860768384764932040748939952935391544450443070102899395770805804209589761692865268249643638773876297160868264896964009042735061248553533567082890504074519894507594013915004127183550917191278704608838292141648706425316802524766479514107967513617086152592326666576044930164624084069421123258823004893384497482471986000207088904012150847463301678616190641101645434363363492249974153865026698359355728410932059730032432798199259084039676263649401884231480372441396072000866042937914781446210394139053761194777731472044489022728081066845795293687762955342824134143286204551594113694013000529170616943194557757822347291651226095248117544822869868456946987580814228347627991661071342472217058621629100269948854777929677163539443190809466842535763259046264143987549787996357737623391583866447451193856505055017788073942391781037981482108882776030399726132897326326521415992815601443374083951742603270586485066901977876184236256718289650512260838813749493913774441105640873440815044039005254297579959613676227985276460641705785487852797958120894254922712705235789041858464796552007511533143065681489182673624348702344620952349115763698981476787566551146585169615529369439380023282128236185658210511097968490050348640870529150311257283935602737550743393784413494630213332191554668903100804431157889777374640580833627577486290872445113564827314862389845276733660054356876053424862573284973364665881679784359421460636504911089311540940111672980338674960935954657739828427883186275736415086341294862928681908826773983320124037744180035087451956856140324519949478301205730801675003178813171959325408961954470759147332678502438695622537878724860575552302894453930637819165226008408501634996683705895540237330776117428220751998208725291375729442515510733673713101251153628661576467295479318791032520077616382710625173197841347024070196527347199495721187395502577481928346506999744669901204462865840566476336294924539669728768020183994426304364179392076579454319986630967712944190867295661090405946044589541608477382811694605486303644230579914712610051684567671759697890867472470656129005723305368478213758775987226430796613994015971676286902317389034503590745739811791052727434133262599478983359177239885274366630219673766661415462815254594409120019085878942050944399907392593117595559956048039278623007160082733668197246045363631849886276429895520452987988935329193049629369999041968661212955584981510180025030108276909130657403201734587243337678470442303361276389385963184708604102559237762366250121710144108503340799639888816638745707546290357586036163357833228923700505260304905097662872639179758655898607084743041817998490978347343744748542937081400312506561469102445997436595979848828679890097994426109906532506374389903810386388478023475235750873554170012953796075051375752436249746319024414348917558086365772139041711829288195836937952922413167451816740350798655940495171623309999213998290542449786828889777817124193663586102784572653979733363976684242836379433256753540729657234219076686968184066957683611574766655340521091476977204462740655975565683205662395609103507633225906693289408111750713331454684479980670301566926577054128348856677895491769660956306431595912867602155155261729862952999881499632770543499969886106309426542831397198506131298358080941880849254448007633849755369336376432542891327145423361737292284124970242919789004043774490810213650847438155744141004843401018209043246845291343673689206659638381764938439227556169999188324453379781717434684094532908413472673455065544406109333473665623079776198699661242139537504059363122233387301544337853252501140106033870857121761097418694211535629080768482853848604640310031322024218397749428901566293079408867927437309765920273059205150804228952308139133516877428145371611055332491938909995034640812706338659258745921297946097370913295272382673635411584397781225530550267202199575414983776413778695523303295030298535601659363010540981281427514535413765297429233007301359345327134193019995646964333395921495820252224905123127808100240330467328522929042053968571548435133339199015675150822282230867729210730425227285121547877383179897928153281207643926364205413411418167892313435706850016950292287705060809807449773122047219493688560208145601910088297830972675077521204512053637368914543192673718846254321421586574739852330201020100276210559896686986789460858748373722715161354008972439351987865132814691722175451982686456009041018632885857833306870935308479571897482960931975915950254319829964060545725674108837051616059724320466402713025728665546478139579079615057022325769805458587925084455346281617139902939332674747017671685547206860041388889779067537842916000660765924033914241780607992358240946570738234834999393169257972934037719305066276050146876597478995068553632032836286111960074789933610861612371265546944210927337786802890479653744874535359183042567959102583576046878982860151359992401582966135286887178693352759951805516985508246871402434356110031076659460025534625244253225988507082987146092186943142349290842514440171668677561457443402550847860800416056029271914969278688438788833710979258587269638428911601841233152036001758457011903838892430581535650796863238398502840419878314279573956895183140424388308703627039206442399963112668822280000644523129578503179273029441349428165902663827264998601404356561479609128291144809681627065225885352346193664028827211903686123614182113530908531115571796123456950785607763515100105307370703379811041447823529304099983140270041578926334795848711695359595384529687139027967505828972924573802110792328890387780246548554008264041764972055043878091777319097155841625385864690501598913383976879045452384143385153730421617736509940166915485374919326742479665404854875395587081187036484489763832068603721919183674344235121938321277748421410247504053342684164032311514888796316397230852350972317988475680279432114750731501416002791324378741766838936613778355465152148318332962266337820636527123758163057168913969225168473639644548276028800364437079681873197631937641750037564508677102693418726063565474986358384292644670149985058934964073079200025721157902690867782672819435290531894083532089642693215658147224775438715316114048755243890771262652500742977820008929224087749462476767743333511505584260162238570890092742840074213400318671457349921227421227774280403117179618521139422169792828733854681363171647195972827096967531366250589359786208602761135792513780941054960533916725745992063314074222936242367518359408062257839912686075325274478499255934657774507401028236853845786878245964902650154333071003036810455046480518128069924530818926670991043136728269686553812068071431118254357783560341853931116244449109920641042786038474631929141787315126725400853001433407532445740003616206770415631096553253431598049439746002383022277249365011549236146252388905402866025499093858932661865343456459460582434438203813129059153022776259354699022790464059848281346316446947280792847401713699788610759215678386555982356793664436114545191313330747840254414062597500719724234655038670644639527919375629107939951532272395682478463397744753714128814878980391929786569361904005906669993733801785358648612342972730292262834928781194165884589761998073337265499017920034262087944007819678369424402871984407070371689704181309248054308281407200604205600038586481825450119352215443791977901776143087203600329300945221493575347799581402517136598819922242716573513438854371549600653756150951400292698255781580794745679275078849764051757514979382433344013041940906191792631977479857464872136870017516223149465646153714418620888532062112986251209900658281915845279718406457700180557896280362966334349504228733316399238973236016237470695994589020143453920992566059764694274978776615840519013065789260932703066626267554561676426171205753803925371349183953689382418628544080007989750565715520247620607768440148456668559851197320207614079360362593300973953088977558136419869522170770796738093743917084211324054128986053269362354673935404511066887322766424253047064118859019185160284322062305754999448446817128494157736213499692932330251551057594039515351724522751580007664709358422571771343582495158149567094873559823170972264096400654884474429643692261500459289844792510889906956771284341063263863077474967090736880802848614286784625402610636946077239340214944823162505505119237877057548389189147738313665866773354551313677544472573503150528987864763008590503120406853776277646458443896867579152956871105873554968505704133964421693673060261084637711999876588989743488794353266184879396893414969025006707738163660197065488599481333410639907905083766735727744179048426739778447271355069444296559798889611785475461953445046255276751749183783362855810420653252940199509546252813064832737179739328049581591196583381677755105823734454984580771778781915092133527868824067093902088760873762623092529325281625084453758093896143627587926382724329505668634210898402842726674960267013246413783784640838383876577005891544446650688185883092221375396253978041785548235739159328992591480704945469522008892802462476742180405446206846086644896813781236701631218263398930174059801446570065481091243435779509179266529746874163979054991327599406315925367105493502593944881316574530590109980399558650007631660315432898680357177593344129235815382225517192913886717486072226932691362547551902616687049667687193405407777853119860933917315916538026568863777424010798517090014398427082858305299856898275723131715205367338825043268516775374382857072116457329517574972909640151076343421404017414576694506455204291067297222220307463142389386692853124598505385713904225169882953275655310439501433104057412970454133533254762358004226850182638264057894484026326613633552000661810048409365657360315079595423497348365693882820166026591613496975297576597120625274566671195423401295497344301401448439602489745310626377893143995966271755640822440551778139569272330049238314173851408259530113961845253897963694678120019112907550925557377232113236363386984713884210929140976543322603040611074866706677407502507502955721304940736655760214807810362190590814281910553156148159768805437466615270356469638793364273295232295971615997490478780341488634673014417547336968951102785740708676917055376147127901576987407041750670806245337066612150723850223622336910708183590350390846716857792070548908606523909931992058511381328692261151399637797663166746696502524955018960440771986703048860542311674944000247023586186915993245329568669498695788468102546729135490167709417404199897554891123468102164207984941916248127119507394087962245741720871254243052727283470010465882884928455249504772801376337002418620806716696916708924461107704895401393644392095108857280597429501457143251197514047745436642901606612675963066834302138041956110940657806448191504876213490180093385461037316678511072226216230854960140365873741687410861001055644364587525186606760591396443549331980244109635813613917807014734092252067060648014354972364752799137864801113078680416935072914852109955522458047074309006318033136078130307428160018518715179843660422598817278135224798820142789868160387299683317481421465853451543151641663374339455092409317770350367398052750507300329786363371528456503071227542974780886762774386399977123192839911180684690980128197066386469247596853065526749849484023706057060636704709705617433851590914465756516970210511949673293777906383573120343912006089547852890541461655216194540496707235832247169916443663058795169558223729405401959335404046652697366223389408811596170373362014406624057928840109410333554096061839685300209898959152085881998204220840192276844068998113644008349160532910563748255351335320970461301777104217268553095534222833286277257663254761506566377675758972594955981683795257767024282694239144992006825715328621163975390686637774213397023772013779513643308059789283025193974829642369866165447105309394030693790795414353970330638803254416619266049691312409894791545101942348414774689988829434343678906916963797824096508502439324430127294266479911110646372168190756459925949896664131338479010358396563700317435612787089617970030562336212707221394350173459652359328498391330332599746954655579715489610525797211208103810587659841220593302302099807702923708148674279694167575057879676563329896675715499948006318458109051652004006303337380733303583757529447847798383129954301953525234744877928122561557080811051346363867219463170991754983923226643700734112272411002833841321553062345843949566664318328768934076280115901834394918382272520033576074583682830908956805659652934671479070856392547743419759422929207869840376292951855913393250186266266404502990611299621914183220370745357213214745304686242591778695808652339215603407582189211563837394610497703505379697173618973755790869210284344182256843957485942299585701102329195333006559811795322223195898058162003539936456756775761668900893999056809193115839274333349086916524970922060136590547251270557454301264317199025633723487020693898285380318219267557931552089705389223915926552605903334099785692969651554797459218578413571906957953659120305702303818635904955661291638749874187841506831636504127403958753077210712715968179595437410457450256014076216921584454393038800618938604757425377225005673435351057494555959986010408357190440955602133314483739522466087285980323305021427230649173136074394405088932206148407511811006889154825368681454469246909257899427293980531203879437618094508505560853064053620110738116063246327968630659964232297108411097878643840531947364923143432411349028619211989541608936356968115999077149041061529385912657015490493375800427942870567657095083172780270246594689298818267509197277566078246287367679789363998732909423560877439238866636634313834076235297610283369804679322268450830645176835282131349108651113074522329517552683052295066130321144864354621877838047473975462661895294752790984045317005780256988878593037120508730772510985597597331866093165149941053753488120610550251373259191322848720725028391546511739380505821794901819854468421090421029428352519330395169828156442489857004633304953513514668503060218328164986496982098915765501830795779527707816373326760342629257925193561049073754157307988660712895180615130255395731194208302726563096163778485448986709932571608438242821765341900039595104935369807460984451555586399358098280819699294284628678623067374450690373705803933129438127459177770667450217762125776929064089206609560152313074096577637519612507499681130839054462627712368604753961656741134592424560536596242792990144671187214542179715313525205618976260338385616438540094253909823023625801750509451896788119851394920778966032916461945680166061490056727647538303565455149582401064303933304211490329327852093644645357590983159427677516888766641836926110596345720927268129138333322890399123926166993950775168132561579021533134089564497102195601294180570369309420921867591084585998491290254570102984619612989213724169763342026719848928260190770778038466703773672513210497858799573591122314852693928436963027939428789794533152967375538174122154789542104814149128511150833650388800209217751116604179897384951814978200836028941490620421316989097154353564960859762862051873399439628881209384432987721697258610330122238764098226618126893364075176312257439533877408793709344523901948137927676246595246189342533749707294790833600194947519675326199782156940932499144904823409204887093983719743384703026350335232464605072291268107261414459294281374827093084194101410992288641566844856906866517322167178118733796419322432159006887641978025071269905182240622322510933240159425354758843234030666305645394470143924533367256751185584260053482802704015145236730034898989465637170319422884723657471607416061752271314161317342343237835396619903566566966190802758543579965837739583550531350246552003635077951370216256935945041188743982793454178380190255881201299335817566335444752626703275171003135349665073966096280108186333558435497354360392488236511623386245844639156551193845724674742936703025656816259962741146087612596496916922064216393829545457205054301972087244327098340949191849645861288474906245532917845910036780778403637913661816906346874578571143940811167532642031042964803186347523427624013633104858496266937777847752335217348642910439280857968720414369642604876244309885434782597511691247600645707993519542983078868891312664672493704678526004454795260714081427824984344052087091815627737267547167440555181362353384663545605647385712111873322317589648246301142175868469463005648506693899358756424484710472562990362764295324210185659282130872149769870210554620176325287131592300925375364228266798965254663922976476867154262247417202245375527284668575882990429995833680973368866771238050036639296379072789531344979735087609925838189075076189979426535343108943393700904278581093134426425979162583821504936428221282584160515159980733020218231335133062756025867383121946531733976414121869240004664700303477108252909126557395896442247862989699284617702063092449041815964818025514371031709089802130423823069780152346995406067725866892733656763011312977245307624713021053942157567344215698525805465714405608724158948016635924277086663166026804998834005791590886978066061416590635461974793675771402071429904057794895640773999700286721758506497435466064065958742096171991884670980402272465119733482143977310012222126752237313901083562315212548839571709922703168638616576536873316075591479072796257198401043817574199679988114740749501768693158023399044659309918516053291157339724238595678289338346738351800161447018111826737665392810462543910802044663449126432921524015991124220732746974473205637177962514242039453571886708779033679500708852664823914521085585088830910126970821173647618688955427685073362699574097089666734749207368531588216764453073000585514704966820932817621169256121505353210228685290035564869599951152187660283584766422191819649785305890945579351866988548260413079071325630299671558132848216661711412305712204270882989262143578926069663379653532446302112644756832425738630498832341896135171046205891626691345051275492769630934415494564493257837852645861511271101203866207965857125699673475896919739012940812092967195748129993191213401162838565864228825388625121814555132164313347821306925163386669256908954991806236356508495275110187500243293069435130693193566736224567828589014541539613197025084270097246973468750634848218377164333808066562476111637504331769980881747309905035970266247059217158790505047883226904283901367568753372017205983354536125241854026655780179420477319739864906147242268812576970650527870127515855138179607063593550901630284610053222903443342888009192117348193845293388809929230876111636336592399477094591772382499601825376463896685504847621636067951114647822362940252479877803532474716454509615979128961705826635961172131837025726537861381972488311513730859879610257514570010900248732988828961021762735979650983366238462709531528562075760369582007642963824030371427197862249951553477931485274974140873824678837429489914040465137268386084434081402412914873127041218615868505018040638122847746732028639663874546369595949178938901226567361494766775516486780832259586748474694443854402186410177809763797161903618417185598995408348891378512267182279818805772305893779867485569072057691334329481684228661378116948453910695044129265114894813299042463573505952997069497941696458053801638139322682876872244163317600659662612379986590307548606616755368536581339703057980729820090744740603529012326562344301619917532194870541425484849610862672322423705378664422449525713478458176745881335535596863759752212828519586855732736789668007381583667877726697045164672177542594562787747505809273853832191255505561145790259297671923302023234860389948634417885251482208458697008912241437454192121704198844361190027094302623382392153892659457838644524586370003898139689436793514655335779174059090008515681624849009819240719960874657330399485710349412300465071144798498030663769066017589979069316344813130377573562255488131994300588224430702698511395329168994680334226991435312895014447852181058312840933498382936012539664142273269256820502278153535757686592226171531646183542593692164838653366323918086724310600859273803464135467440388603613502830117105890256045168764016270069100087944997861453306926686346095737687718757118929829218146585158788435716463987823812283763332954912709182930334679618746267771399783884247765089939108143928414026236996161086043953458489709661394751615134482180726305618312705918608752833963511456543014222436910138710527818752087841972489760235301770446936069015228929275613070876674800738113749957386000530042981742461380995990216357806866298195443549479768689313059578230139774188478093685472609435583331528131449401386784272097036724876832367640327418800745771571416200699363046370472816884396814556706047613732235391971861912778524931146369280904886869440221487928616328765402567598189328783164843832607213380550816286626853443583046776868745989663862867820453700857106053912662291699221332727033580924944122314831136255042860207335841693714310845465521466285331028138906337284686740059007355025410779968841962571140225855595890116076843223073355709900588614128169378531962019285831155646232169807728474358736581649746074972471515926312715352615684694910294077722123048899381921287282023544208317103145766977525660389469856385136063717066429266633251162022131118547968757060960996444752592045898869137446023981289260259282262237081504200255569022538601987593569860760997684364522407718521615119654829948353576078025883874221038802827960022374636105546652793051922946285683505505613617978317386880697852569237693079985262388752145060948732675164174788824800825545642108049802284981457431899609381012921504477840424854344455856418925142894274478996242411829929429045880820413332453408044387054688166000419568888268195912605236179773020870874819898858659979062360178995955382875310206706649758253630538277341932629035724243025998040022074317189534970003626571667556985269626337462600924966288109729663779060562307301622858029509611370234111889487949327410656918929066330693649875632734040477452338464925726947160734346556876884582563299876897144734093481626075690892069327991545447141189628220302534346381829336484002211426990909124733148980306441314793063574419745175425994902268677978910293327794423567963293570064377532103378730078574524878571349696339693699524369499949541129478662063913586714132380374500526133982475675789368110546193870498654764866492600934697265554242204416342341322143938384041553231412588355978765786906038290938387333309693379266438030582041396719450228287560626591659536739701802639798613613917253296022844302913053542265557403620195454719887545484825615386544610323123848688143275927147963628601349446419038938567495211489478548824558261411868133940705995814390860348797684108760784208916273680302954414384551602241588386747955984187875574425017711589083126410444134525667948798026414861846809953018880747400413911575067920565775974083097210549759919508920699510233766516941647284227219979100646536280317885769097456197486854482795905543281749562411171010685209659293996425525225080400823413534967877894780229254392621524292807583740757248583341590585235206143649821505446188804836939486639361129691637969493796508341623315502589353721550007316163558254894382347153145512633984166375189143455224868420596660559476214728983017831826467201580495629603585561707622214735110384321809990962405473525003904181401062565223746972783878311706333408917804963550084139085478288605317381162287154678233078091680468903691794607738136082064525170952738685029554910339701934161194683941568806255907506148813233277742301685163147921937880127863697634016998072088146299425018750133524582212207436196896870375898537179154273619054965056420530663695449555455074412992523171867132304981712411307507506593878555010924010502970621225738163130886082793755550135783897217889351217981635705845317605328412256683115465089903338654266355349440916758612772677189582095485066706791811609716426801336571142572688542777996234370348565348041786177555851846787562076427582537134224788521097665638504245749525286272486973416807970863517986938051124613016731218982540195053570578938522605317785821463263375065402450992219969908792650648492746865207376195166775771734966372303789631257991079769807110595225096568193185817748231987560871484863731874575565339618080758376720980643082054640626517745175550794229258432845356826620517000688375065768518980661182273554982540783725719748950469679114908296505471926758264115297823321222200908037262115399755399732455645480891083319602006801871746666245128969320481234520559515575120120314676521834860569974674333811538010600279182739573372139057998280289047303655153467785282438317674872052159385535737207697165305598885162607874082723730581392344361473547255615430830726810249244812199721606651172049343280129374714726860205744189500827794800040697512937759060146561231407967050985365530208091159677077970404331755347568105134795574167281458943111557621567285104597243961700346284823383972350479003041299037673062695508431401409443540486764968566751028185613068823164648991009808227016622405923721983980691951054748289583406365330050862167255890318743558157368349852934934889312439826279496601367505530215956789095031289347799552302158737258000309829702411366467867716880332091217968645953360225861101980147238965564754280934764086801993941600726040528004698606382577783897340762782031534281924326702655203545799102553363196393821301641932370133967900206219742361908605159812992003176688830007593997685369322537747736203068027496411191697347600877954338925868323233474228513310303162245520276130408890960092029638067185391532174766326423686741717676862317975559163767448688065528151765352621483647330909125765723873136015114639494758197862695238799101012468517676386925867929191182687499823071882890802378585620271022339076460518898017458769184617679146518713096533971493490515709810946219665053730101781186561863065820164904686659945057907317734374359596267237985424739643325630607445796820676282284665543026264961785128026270290600689945477175851374677081774501486928591022540184340215673958828690322850606593678781183961580595382094439139512253043377278616894871787274167514101069218976912793999537700840873351012567350343653587482104688592598915820889848317671810889594351829383735937139570671948366759498086370796591283206427429663075128516751305875607153007614712499552333604175639802136826486663888026836165788958078863968580714716650871329956534341598206587171746704657711014828415875646624511549277024326458406616219978715223759875624449544173363925610372101884211326290603722337025400807640708545766951474732833563445197419868768725837745009096113388091792797678623478592170488534692546425030025073655205072464784118685494788295620985336513551001970712961408806688232907227168602269396235803036800339258225316758063279109790022617921848001319204063419647467073140740673436910063502561036777720908356058312056441632714921535622390080335277282422913312987477157541331477948528381926172395239215493271612113103672726944076391646320408014594423917135486270059384746114189197446818624762516113502439549286793577963974036888834198400006029478883686564923591669194744928431792216190836588111423331577710337557874406868691196583537258297479581005446271703226652161934638755725549472172032629485222565278127089238473003648399963370761035344970840036208257837515553698813161583986182482808377789627224071371681648860335610362732750799775288259417612086827949529666681999805196389273480045964385392345570539043675332881222548392742881672801825028123363654184812383102157552730582882553684556883279107402822059852833878691620945034060986430754013360045420495168102785927931145641295102756322320057913634685287516051836774143462800173617166754821222871494281013298394085187265932318311229624936643667351011741312936831826174466937740389017120847540164077002203685680489426639000212865531305475658176235655324952591575528616826346288713278918984773375032652409459068607372072971371885811489776817510419533657806876044516034651523238432034783294745860422785016776660761026267489791326744283858156828245027134978369565780729512376551890078446652814302513932307640798207337989979635321240870430092196513730101293676876836463868539593001726261505475401299263302157198174515825290945382433488030421076501986208063297485661437920533336751570151229731735933176083625573269201328803449160810661826884536097186217640089090154755364995216761478723020689821571444324625306694820319069033895015762181214393234829072578240695940984123272509392890459930613871331943604678143207947750886996680440178624524989995362554751050256589924427112885008702017899661108641495715681679790024412788749508857412502020069523811922766142850678289223157081695474018441420707033820782816063310751763575724620411545441043708372148571683863926919441935680223324744591356282780591331923496360038883690802973363739994361317263853097126023342352417540443189068405786239594619424453747132157300518401180385515151769886758027706741299244262111692458544450467973991184583295547678168735940621960587018427940803284009385979285275656690245030219751737772675817880126527060091244855838722368902318713657581845769055843346438935250214647258690072024663580930034655694079831968515922390869068443471294159891915288672460086361742446605855998178358501603012365520690138817613979606397268959733562057139338370944007998687834987665499727365630107628999373042364432719220510420981392361102164110742227440544540447083500805547047586614945042747906309307190725535001760007851669532971838114236212447562827505108187992757387675931472403527499819097796395745876398212811956376935737637959829291145658802344741965274481682008820615058472286840311492689225009828766269171043543593026681550718101934374547528018320999854662594617991750920661507266408192457713873227998030703715254791090352311279329433783954685739441553087419791509033291306689952648029770777135879982964043490246952035324018429167876367814713352828140790461710260212233381829594417145135806480232791552028936592413810510801969695301658401702965621445828210795408196603251249458697987160787972973959758473057737598052647147046531896333795037733178189692621340382891637273043496740272585835872579441958293828916859794688402578533968258851771279462667009105262684759773485263223170415306349013467699042905697095528981858209719860444237257419975101606638436811948158519287287695621561088207018730139528928178602299951926982343067842691325989341685839404294919339063831903886285823947371747385050262958150206264428156593319059686905937641237720144236883148413725200740236184122928350806749492416405597400071444270546091370540333219018459252514452135753438751572875194625184805424155645967359156927884573018952643119530165964942669013455961115441838515193451467316017288372867386482843332712846902086237615395201959035551088124932982386730067473551518999544415055177798247303006431472854701388018054802336934797569946819553222315323405055514945544597043150731772344432616168659260312138695205363242716137021070060004222776740971080397074071281538403153854918599324508251814943970417661213553929148319010983887494998437983795484663052685227354879746902251401674051310848288986521491252752721031736322626822951167217948789035987476857259781281378292103582815932431873401903543020870373249116234938218555555919170297689384896225683027005731755081505671836099106379261616212241720166262016126749138019842536631629511143800066047894388999322170927768385190757082448598055630436825072349170738515527927316068930720451184806591582209701787073845989805446256120327268842666890786993205749193153263455580728754189480027923958596981289805910638578105689236729212469142566237934635001756188387003119976145720508998443962220333312252181373748749433899723055789032332854537865246987237903525785376243386055782836767424615932268084281311633594324055096773037131194017655822588063488927904791736357916735613082428712480767472968295771291643678783842177805078281540742010663939326305376886471083807329051109622888796344619929690554478540020705491377768224080466282478955035844340669306991568290444621768916609982163863263946354413849607252617034603368771127192566069218100549364014703989212560993693196735542100306561746708691771521026886836587347752047746070206203292047596651364169192025383475510702334742176393727717889003585802143529066334458184818058288708410669417649877308177020115759437724589871330021978798204615722276815451039509848457160917137815334522420092769349290409392445354701118323574517883910979321019350696355944453837413284281027683042394904533520514674131667849132266871311727103624047755774475852405913292887515580008506986521289313802892665948117305089895590556529947264234784372715291287979765718867530043415355033468926358608731596881025465231446056180405430443455908524098456824779839293140949543434483293359872133056841686067137625873073504793496946596712032736287726864871774196987745546565294763505626706366708136263894835713313770956255363790034805053983225689505531381182513310159100001363862235758532481330158043693096117068999699833286929004758770908353359151364456213974232715197658118810665216801740347963591634360629789418316042895750077094039155838739399592687934711608880797800045890966799781403401658998013098591239532324592929281926721553760401076462333062561850344507924484160566111265913945763693018743082803006898360504114638613703387579055219203475929844658514686478155526545563998053938293593620579915758854010993033171400354361924840446348643048738367296917186750928576964689875583858314154996712169184080730435999084335261531701361303962704381614530778475490371932707973927559992593797803427474196081201427972845171345477820891556786420088340225089289303614162799691660448542160228362349451533052044562180284518063528248974044428193364191398578367672739931777509865772457282676374833116075377714338826481274599280927684774849337756988843335445254172451482453144423180600919978851031381771065527265611860854243151901063566819487820629860387631491549706050495660312860347367858465543251630345614564853489559644592479562017207563426155887782113529111118114619106744983692892611297833399837358264976751561886727843808686350012460787861530684971747437627416492256930663516954898394198183537628724368194585921796654619094960837194254884000213711171978218552273685027781474342003007064972000677345671799897121021704219446996675840614222609880225451254559458897776439117616248065148428872234592771173365596288069331104219472521469002581541590807454648668023246714620803761367995686971616115391002546571209885659558909582782503104937413944344447805244014517477688574535352926556600071929208741664659665639331756010539604753033451575836817285852614844571441667822508365191164670723661148064168027771822301113998868464752760504253299074603034308498098704604020627814430528617179150688556884956820056835216928116322760662483621723044584295050441192245843759918399382770394284859567730088183750345348004927746082479736353300271061569641572118316234004081602339965330968206411538594974360640137416315047657901422748616834161938486635575215221625294952090901450690654238527916928330539677813424466192266364347517931849715972875953848974468733773854484571104718037323202428885414385347880228236348612328822564299536155310485452180857727622234303232801106032545200786205377044269953863969056063905208554629353677479947782283489756591893183816874343117094570372711426110541683660251441789123882039099139276367233882433765718883099357595420221848925419445309252009812010280823192514445945618627124448783870553533307361594539808800140352887949657592842530196597790403461635702940707019344738842217798736718978523930777268789091628393303195531522506929187200252936145211272515409073099144348072159193294260803594955355873264974173933491977377526998019907211086095828980399043937262258236892752822436989418495486195541577020455678357110125091114197953823894518493046968468442830685902232691224472195567444072462357615446210398452721834925508557810810010329761294370282357627918277012261059384280043545300608627944946702358855692035820823842181790659180280153092493591399468054897621537004718949086392314418992471405230703188557283803283249704504052511625022494657007120342017735881175302904174835890537788047095464151832241474905404203836815959375682216266206798514871158784012192616735458216251273201999877144646540600726734982690669709958751610341691998461560665775594089796568301403995750739621882490763345304286913627528680122978913912876874337504115769016451060362412299894764125141770157582760166894351279540662719059532326979171846774471661773647651488519071415316107072551957874934393461483665290491047471475523692116707947884658333373594722839818938539881445111123696378808044006337313295955261026580071627511528332525655473006079946995987522561775301231767748521040465420025837618854986533052157642719050722192903756625165025191474276660956359749693778264655235988571057692218943051095126672097444505081535946130833313844775895621421079594941168703487415336192145193979444310296460355181217369289723246241411238402113584937217960513321606705468515397995127996749286622220234803842471122082898682660883077597554918707938280478730456083935296233483878066480089688300549048868391494118879278455485845261561081524483341471798404558423358569591280064854101307433109421442417937714540509768689701476775007261249536800539474243898225299379401974193917007127549225817140646527521427873980927679904812515499627902770604566860447030958730862487521462138199588624976526942966336765467525534674128673809691289684538637752924002696740258509356614272406333348264562355664072037896743881303133344456934535755629391088176632906983675243593785540829580736096660900686128006897662074904331058487392202954283305743100459852872603121205618274092389670708204245540055122315141791263566929885669474227171816415341658465623898129610493941883241308152074209348203611770891114969269166391486208974655697941759813985258647069243016846307517585588035754055241982869319048325625088322837209583494354391898910697369696643113893946318755850382564037091131181281923691405042250998060699488645300189299476138729843516282920121384109830257595650265455884270864504582492206027964588383265831979921871349397393224517481538838410271444017979685177173174487442558082207725739889353787307161003748579317218486733018192565421186030847612141208224757541069946141227790705332019085755368718108466350508806701816160141348863237834010981584406186838436068256313166410735984061783300249149616887834301355025836646796227957235268106567124960313741578432564146177880253354529150804011104877413709671161652723168845846831319796290030124664347833366896939543996881891766650511268256009054326827431387807930365736888467015406313332199051769489513411927434112085098795911032330423658198951317285838795016890791485117300421907040836925311559158107780826215361105681250727344324966404207333628868289621565587816485233958616447407647929414904607224136181480546791153024984529004552343961019954253577936208721701850393655673147476628062115106812130886870422067947337200195671221350758111515266415833809134202622067281297880205542816616672581968891224457132841591420725580669233057860814968841922408953116813659575176014681555028300355692275344958269334466440206439504765592560773719438251856623896954658472932165038700100697321596861643890800607404440515011518985241670029610412035346624610382609507210490653340770824180632183940994032141383808974887749999890004501402488372777373339219262823538917825795676346216332835189231156533626050251656833537744918054466479332920100444442460342516069094797717652350736582054572559560301807792435868945583572238708619092692247842845215861922365412353330446285749060626040749997179904912323868079199139307819521907301022497220049364920572753878641096780407684634994467313466640621654063457278478292501372134702796505602698253492466106271792663177810506057885106279254066525488745490071206378185999360365033939211205069618903400228306422817552857966763912112429783023175341094504508982615340141926022194555856351507171357632678666117469154997280130923405057467336280030110610380112139320736137755241098189630190623480887379368042025187792468611495267134421866732982162404124871696563015499171837182727337132081211047653330680597979107421432989368244215283278132595543953918128298299244834960832985484716611309387736706204120599393528604387045852383197733702527201919507435615744737550628464935344801834269018182849338967136687458517793623437480020076882563333501455980574565900453563368489221487914101960880960077535177212382833019540875379421739436540416711741094766305219862184184467240619378956467998890689782667342868812850024869250737368908279077225042375248707452658596714637376190179605482780747900330979802286445512464746246460014706127035033753448984403024645727415429184223144748069292940626464225421553490502168409381342368076289048484506022831910600583120600381515336970662171617268293121949775348315350196465790368877245894678581940887011899370031006003232339508724905559204237315556352772768152644168928065362125577462844023380471349452099320123069712591149012604234593899878281914096124690273317334560836826942818884842721472009239490817350461311459173563573692837497458921006646603710363437572639639226602263985535317476883595443730045790830949761306392090618095435999484139929469736290221342079215359395416918365494588282971960428751417923639740255488428966285172240512110431972233819939282793048505026302044884910498709846670706519662271638040132052770579835741225964870996141668152746252154039195394795619440472153690276701883983828577375439426618335667265314369228531701553410771285699180628323026496645718741686274475757042935933047622906973333231569210979412973075179969420067662609987207153584827497396347998385476301366571375812913850938532034691697729492604302708136840202513350951413300907370659212326292448464732043638663880413850823213098779670594733308679777716552687836095679822079131127270744332918343619922835603114175361021505956965974549790256111828155011687052261956006078772176753394724180131248163402944029950567576141894409662732591992381691265596941093474726647704652986331656990041026358038897168187269287397250655630596232100081343556421255663281708790301636143557237442491202933911348167762771100245108008443114454759637811612112263964796628259070045539429138257574570015974413586362079921239847735890485836415459172844630784201771092213427034213625033887620701296895329639436876884262330212058612224948852769563105647556927613964779159778509318392499455633593943516782806278298782209561292725525920089395936036621270350826249665421620387512693998847596382874954468970884107771686826542700845095975259687771879163100781714095903294735364894355913490639804953501373178234563635090998902629236768283657379914896116895413699440427507782537392064061896867413137773078423553458347829387951365026862751569724294436074374807498013790156319862525422243500090301034229040428498813977407368519515505030704405212310164438439062472760702757347568179221750124747322436109765540113879578327187192429253963326832625656793805044846970364855087750667007107398413070023660325332211545009607896873180625161055004231200081040627899141263477592481486110490119269302242522790732179094778735891267751168772661389627600199004139347878726242860103110815965936980127999191824412805440919886471240058549499767475612974803239062683168001197680349670681276605341029253966141725837032243821143337577949165481891101678431404208931035914149305365273660376894500856607722707265170874418101843064276694439102094172721811500764342073746880184879592406845521077601320632318551903156082670911674090761020916049648825943899941184993141879368165889820712593441451817734171427642335837309566802684997024359334748104048989207688784804427260695997239528190170047383724887124711922273468877268231278400012670100852222088668894611448816558544394338033261733545114501282488322792068656628939209999720782075668107982659875091396795488277405347266464796971357938100431829015516401165277991469154955520505757606389777452396529874420189736993091859749486512688303407534340389391870336392817690924743469795925023210554099584777974437992238583249552276764180334720858148449388930576943273121139321518764084595046591078069060094805113492262811140140731539894686764984415071327296775236098480392978081762496141935643410345211874834638756689132094947433236936936264724139905611412612692698419416429898881232693520163607357891932696948879579590996461800571774467754536761089364096471347285348982281017101867374570740077020278108626173888424188944875153342627765232477436761034168417837462897989947607504476273984955416818717606105645584249448832589654552661264529915284809523844464170501891152004447807524590956591763677062514248810176155825921068744149637708943943211499046446255950927665074847729897591324742001522285851074804068607147594942322643731913479579533743557237617065075319861558959131585605133600973838004291710567961237006730239369913091273750522050921327390927705691630025228251494751067651808858086092881199343355961552362326658269318353299913546422073896688015486406658794964862587198210329838358995196277722326110326424779981971127301001178603814662903803280672956568852831511863541095124452277493743167036140702607482777711661424757968649832694179710513863903842077731272688782164346910989747256221349041364293834450062074674155762193087476922091340629201047373529055149758340187937396300118895405199531886429744203910076149691164085219643273040635682105621016674734168533788173320758177225194032499172489659670876734628958144213159961451275296036168588069505571438706276597725296089584409213087276137285862261596387122474627953078654356013288079712822224315550030979177029364456201735251138896650801826642290297527861474346591954089219902996559227303902693390810657813842317429414270639347429623053397734485760421552996833019511562160744985665999348662303097619383510527392844693581239147101137979444465983337954784277000641761315447602407843946585822875265051586009349865459194184660412794691092695813272711669264953161453713914354241607865290478214159342336365960235278233173631047712176829304645213400981098921302546548802653690584969662997792894814645150796375533982536470256354514834616062454744236073082318595056073789630273474636024886591880399251060301781967762967532237515188199171489659152301412818252439348687202679625409407729080977202144427185388627754870875213507304953001846860332747198262471269174096159249101957031824149935384678180627704498242468424467096397958199748243164614101903606829020144831081259839935055769709846791580813256669307365572911741730811785552015959984423217812688437404528092785796257503507858309899127784023137929875257663598980987526994705973856632376804920266710764021493039528795965646719859258584483861122523810844195083713943240946080929170227940494431389114144482074912677760281061665028872248081400375554750789349473017496472357025232344775151836895108026786369127019051964057760151112912953999106643100465356059635691340209424966190611524996909258406701948206727986559557289773736725980163563669055953033821973362589920721141604399476738472434966091075822633950069388415891390665465115855884356794101587669580107910762224255738742842737427937921907191973454785047255617327348775036879277442306239410439745915649389862183719563670152375363201073609602576472542760509986107245882127134489984620742405843735625296155545325570428931426335223358644552262289183776404100223264890559416831056934199764522770257866353290481419201960422136444660845107588150000265670857480608066242805303537495628336585939230105066111282579245054789117784834587109845522931209620380110594608038908242999062100961447912987913313501182886334456152881232712396958168050576877857069210946154420063382655127247122605736083542461191370474709257125363874136560602084550985218641654382204384163501616990893766806883192782465725694137255467885109658551202064545316122843297653913082782705276321830069951312734576460415510067834758068565701787423311891583305173479151857078218169669943370229723600596318540171456556765036580132500536011187245577229636928518143746048734222832799028603310268352945556730257292532074161221237222923450151004089429895119438310537416910070795763885371057246551381387054926141576827873693110256860259579986553346391235072509633427639468728018078771979219589597045261231076921430137734173919895957714683721953659694403008105009286500562591374079398701730989550585081351961384245022650731974017137198803027880975911946265920237852334219260188572995690784306448594201853788832390704276751478391727742392596261295702979644505044973204948122492892002726940693860998496521018576000638488247271303659122447859783982608053212744443773685242192847798910885433586620325072275628799471878986749735698930843391292155883188778446542875662927605966062232558180754407805920528103263140273102391364901728758446237843113696724755261344531190384309910393824865229589018884542568295862386671640194160516332245660528368437490907592659377493360680366242485712755445158576543968939985126042877238502514881497426178451087242776852272496113020237690442105462688300043053556048861791452510387982476579956172609665989345446965637608682056187139973580065878882070498092870083656241750027381851643200790036796271164613136676635010866779771380642209865615964845346872592761170170299183170146748446149873621383073432684299891951902790307973028678598117707930535487908290900984190077239282873584153897125544718542059879553830566473537694173889631934713712007905320178836374597519481106756199922621663746550866623968048692796715988212464436222591776965644235955907043057413609709986092731539555500434072785389165815352508086854527196952523753717900711205701907826808190929561147119464775569394160835539633306111842784852612621819944161103590259884602308539947654353576162387761967470072161410783154784307882046089568873846755344499394751640650126779876503747993367437407643947138373602482630547096994123246677000520845673181752362116454002047975012247021429289256910980642515277602839524441207935771693506282214788532084773318954401804819188094059676571098441288268880012600589399551576846859488298420152673074945251435092706829226500939388926024141793068357509789304115475987167592363406138935617650892951345241026013400934260521259880639650133345338537043229246853663443149091017633363965968200191820405713108311622418489598180470087573889756046419894950682090900143199127789386429729650646672393853227776735273503807044624921357009033999898444546646014759185056707050411611803986111357559827118694862077648010627074555042080776050805833778173658264066514372617811458866912372043928800218696297863764840520336970175695713256974350086162375032419983881083035444151137286729536804240469783898241616225658140628936317807020737637168420092608135040112541322643795521287543981591943156307586592777825430262055923131499589412987436100452233557390239355803374655852558841013988718134745863142790664206168208834063664771042045483393828420359292777760169322074705160116815205178041663192830357409323918733551731612627431848755547063886427325500238393634050717477981866907510534426923664998675936881313585057933303689427336095929471226695115175542632409697012789488874439781754226994974544965066832525587116622711449065253148468064309640193529208841948312832646273641165504782320482442354653756861978097534202287102014110049780999092602383030955534239656423660395255365490667776732505480559728508779278074893323937179137968064610642629652270268347257718377043436038279061391312647077153969668968419731545136534150148559061226058087360058566160277664711763017455103107253840731430764966095510486694395222442909768566922178910878949734162652063027688878818134544707337958496553311052774528277518816245355350280167939487720786459150236386357640246003700433143884234323604541264769820558863096827374884425430555957091365147113327631039910194299946620095653722160930147956831528730370070497630382274503520308295010490101533124746032738687980736094101768490987149557307471403358431148021694568651888953823794863348624449269771992090275206972182387840155732124592576858013973981623299168798614072324146628012150356333489040621580168976051382916543139991327760699292268241067479711739034358911202823279528312316306078013284562188484231478077106723523249807246594361661088826715678692727273353644474340656075268366093245548877128858666571720178117548988330535039336206618499592477806816701489234440716572092831337573034683447573271016683727965263971632493522636871309559381183171509257004027534303869789606384741314222799549127639130716921511257477758033807255293748177449774653624647210585020721851132121700274350207003550003158080751349399875515741405258167854322461599869507090984415073708997755625296703142112823999967858377420484186737845803772880011853334074722740473130702163070666480063079493323795969920133356662729241614408400419972504472358635075180880230606703184030350784064903960861758969505452190570838464097609205605419091698484739176045294172175778271387370565047357478647692572676703508391402849865852546478475036499825472821404629999145307769810095460526034102469824247087605697676164548365936839498767569493040501326257257947612193206136273614511563350196023774614382023150749722434237704449011908967078048550602851204711428083575548991186917118550761460782028106370520524055366297271158326875452530108630684002135168059630740823216714517514781962134280278522328276415667958861348257895146612951037912595285130683859617704782504587653655874910697582276964263198148033045754108940995673327569095184814845285307400987317557507033147104087438991081315794128806161997957140860491099132405054006730151522249593780147802588990096849779647841801211459460122109839488775033692273774790442165125029210913141375793584039110340691858644052689223604980320560934638421590024756399567062833790588584291071087769159805687209151633747965199559476839352478828250407454336724694824284291212614700799932134580037124138531858947838829222976899388532532434567149689101373645001374860364571472559116452776596964534683370576886128875496555581551280489044686515600527976749865759392802898495210169924875959098078705440370631152734341413863974919271409611054212418310652974314405254262650992456505010743056690037045362603422443219246742465262010355023513276425015874121067091674829171927103624361320549083353268987479216121159856362467896228146885458856539527710315485699726851299101194705567497342967896775302839955917970348299291567920040841301841013125507675953452051927017470651919699274739988572606027744641261731963231542645677041044029199457281466775471051985022639408992105725672802197050257536361843572722260763706288673206834859994110945076632183234115570437888850728457294939529287111560771983346791663774767100771726093687765812007210202434623074894160188628402399404379378865095748695513883015605506284655784972172538577596294798140150468193703974352578520901881891579710787793650919975331082047706683179623366500320373910525601002736364143377962775959870086498884340320174922046787802659357998011814816897306650050861732398345999810667468007291289220490767724421515731373740448030062368114230872519817133784268783134921524841566155529206104714960776766365542642175490280957049226632632862309347682173069429561812598958063578964780709376692992121317105100093932140478395011026875694988714357429719969721499098223759906165181932959232605839938742079536250611161771241091158542733248479972295365458039292525995964019337641796926326293953149684844778608697690040540226681516865534890859081130498106096407723753635617159259456340939184786097498016560314179764764489521989695822832667736363717253213627481701782595768325606853449330703748823955793613989912952439596694774032612020900922935743407414606312041277614931708805069963640739440849443691695030383162851550437328695468786259696509622317618357692856544237000664973484521553483171307304505186904415674886775922541167582533401640339941906149226761952224143941685411866764334700408559961192042157620604985697630653019074736380241607250917444942399245718957525107606238522942461992465276764610517941052823290820431642028646927256712475810191930846848269676814102742753775086659917129605325934029282622886628006336229956529990797415097116311583003513934827443700834031073663916413234053352921335820966568744670608663764971209523010653494699986528941804380511846793894583268292026605497279943760247314145919556584651080245940802819273836487080775770453208017264139002503820554369765596514213152765816639066514721905412744574997602142480162080074219966420716704362871003522576967809749898056582484942553101497291655361371024557038102228979562767425576297705477402214555521194931727381598646367124921072241901510864311983311647728619948476503914948659870439810953976052381579924598027341494527343068799129012888492823288930644035774453908770747191362489829176882359479097115623596106281890083196342043059969480587522877496724654242857478264195202281115904298448342371658471936316726793573122515776462912825789388474806304449834122051121168382933059648394756512867151948489942994621784111381593596292420992585580299102800498633866813933006757935617060477629612347712558337217835327509181737785459427680586923986061941368953833116700881456996141993046511047824689654300878270014984280500748282091971141606096245438961129033536021577114726890415905991841789480961070691420019722814588136613750180284094604962774299422464648675013903734724755493766977311816944508789689459149597244134306738805290531478760284802761260820482130321360321874250965270408005818582160097343652921525510778004724086215115343385720893624918073009311003536972907534309742747835083933628532929854255378538256031756581106668438310402248793174845734230355104898343336060326174646077308403757707069214963121332786456736872475408909986586736223231595233743894895399861695290023837865527753814703947761157782151950812963221166948140564678673028722968848056155383642058229993253570183631884884530140759445331513085067975583112249819310497002822766236179602000445045539783608161432116999661467668816509756997355972084699773736383819429398211183805723320737527055962879313375322704637563610738299192907902214878268423956963142903390957170288618871564042371583061712032482753861559724062808354878403111159799567565873203726335849766826937940226220569244359418119143054434429315594288493733498946897058981335209407181585422559895930945979975873809222172865841062399181387088962418594942441979039040701766296976467030294295222667422351813108280794259905959063410479804059973311782210903663264609186023419801253338717261848067624447494118105880991691295333680283139469769692101773797717048928144740087440141003743708184797318263010606099534184996630986460289902002851078792105791597411690441885430735507470693079464035877101457253405919638461183481623803422858792142803580496480360689856996898752232385993503146293337115616833553765546067676496395789100449937230221636982798846585852432804744442780854808769142438222125301161080498464519045462773915984025620334137180381041272425535098991588062957717484307241506283459776449187780634011535073975877851675893021498039874436435486671265193551305452463790302031830359095825709184945628510346720142384078466452354028558922738592298963744747967480061392740019702094611357291444916842728124405477056728038228935730239030150106059496788949506056971433458182497590761683233613068294777908298932090616854551591262254562078487050016321043491026265080698671144692739823774919443551726459129635923163154005562257180298072928239508888251134161457211869774170900708643769989177741214929116776996192479835009872227357948409825058241157170320508352386344662738963552080278607020262225350949334627251723795947015477375446547492750929279110408352333503703728861806651926674966914732079947346457403153762333066424277622351153888014125274728093662672154128006454275422397871826625224572908065986466477628632376896108109429437321564911701730303953524127256062392717692142674780637381167332810397431332760379753287641819186286842805404468817550849164154957259665669591434146001821414805700062492755961332297323370623879563992251222444044402391627214531224907457995482500964225124391229769400968321343081051808883836957533825723770172146583452523601504225189300880434101162588488146025340614386502002641440961794107410119243097166531400182472883923844004440570068990355181794879776305388143632088833228821735203771603586066640571070050058448625847327463339837645440089276703859934533836531276590958700669949135301807216305218016984687322559007885548109227313499372435426779218704060359479264682050292130100020037066586894021726110930476491354732292723150671613177685733691509303218413309615058163078495268446420811695486603316115678124146371306136375974899418000730800290650353809366549662556092916807193611275003773552816303142669744586846831086519152312757364185018955350477815588558406827470497283663965267581759440157023486510142584947024999810767486807733444617468287529471945580927867186413200956637493230880392563285572853121589252845067043616742604235048549328238314548466694382434366211606767426293512782270527301911002043709041853870243897304097989333106463276310735288953699159548876345825055278960420655780424953900475077007281468668532126044677245191254363406085390001097340941975436861171605405224855523683374522283054925890695676787165150145907575421656971915252465607089194100307643614678535182502793118720582127394677161084232471595900591040878871955687447753547497401520972771157681991353806860593142482979633785219580168546233437116267359878390144220471111539032893009616122726843682247414897905742627915890966632403425961617184762741997072941147656615562152523966692029178122093071407391065239228231207296782331761902698432107877098614973188551762966660197115441951067962916407863734413321298808694972583351547429496517889705985632642188969858471026751175110259496214319685066903137052574783183622627748823763223396711117014198470044773109077867927839979550867048753048562195864132908755896971092351323532114368014963811955364644709099775663620746361045395753912264853771919472869887847192701522468210133548402873961220681708410939814916560348366883911553756210795350041990745261357696964470784222801537176492845029693836096203756080601322744759007032750429338669583862871171920489579224817140540492228020647006688485284874393489835261724535351332694152024187326050364876053920011789683987284225383047210386674175027539813971059543158415230544679776732661872968285351245492038611812600536083752994602621884465414216747427281788778516039365370378388283076095715159935494610431061274452300079225536518961128207246575151725838839911165820750329384916400383706743966224078299623737931882715915044964468895383468574301008568964928316699009983764083501949787730065110768677459602295391528762776339519174540228328389792602389012463759702060057535536236081115029528596781297692058819537206035241651633836532530433641093664984275332936820164502407269265922014885265867071831769483523013855555474789925064961370194060487398161336876277733293924916732314998548340282528991110862729429600025828446273407844990935802471353308647161921356766081620662819560532926922945159361101796949187872379680800220397115914169960912415465527349201219614438949733034928629880866239733052332924523776947661914702834969310509433575287626066158476492861016171850431163010438876802930142764684028516712309740645050991853183346913365364090709899015644873916573456022425194790382068735832265024755662539654919933363563017296342198854853792605982106872988955472669204944811978429774126177086020257986791429268858023193510502655741297741196672910014996697418212269786195138944529379873071346087212887051843722513973751952333726023427522543169334826139761938397923723764053905760888844761843827104466479730084225626601846447999397796186264223347850080629144705043189134426886398739418410534100328988035510570812415319563253871961341499670327584008999422385102023826770923419990992790969360627946307573066439451061848935168331413099360452134160745222440506306366961520153866279148417778814190399474230298180888061071199707816529320217087777933654553035533398936683612563435702508636169706820706059354570879437157465200922678233186456505122084431775875439572550110296510702003541199258464308679339258240461345030113428034424551789304763969006695345212918027756352237844632974249930964196825687489415512479341785593781248157319729472319724476378990618263326492883874091706615761052660347895655767141207820732579020468772737077827422876847667780481442818184412771596605420140442548321927136819579579771653784373569339894286122805565763118939349985773295071451591353782037576730067976622951789194280860841321620980770446172093877729731818580803321159222291008187121424527289378938472276262080793989056377609031548425257957785227356861945917456500310542989787581255316892771628164215964543162040784779814251982858707622693560690746798230509243090367317325259843370387749041092303521702202578409413977429076888864479717621418244110301454196712956276249798178150496045758361090333276057487557780901156169853588571512289040626616438084728690843103222700135687557273352840092434290149053796517967851199747649368912253423783449340482154418424224900419694383562687178071447196171986393101941945192416896716862071832644917160985430020238522370375090996781041776453111938718126949565834733232336475880157021199093116627081958975453986664953461339620170893292976849982131058176207671008337485609616603820472748715649744422415303975706471551685098676165136925067557418523158428555710142624511667699938903490939602359337615444861273775835172235820981369615599559182362395945276092406478247024927534968724597713081099714532559688538247384249488084043749329802535062540963732480790686311607730726385160639404426530020591864494319754811465583988268704809712399918760786504344077754660392593132117969182753661885730353770722811471920532561660771808490501718670557379694972020910518891491029749763130202827220491428184394510159921782274892699146774095296876210208397436532746537270434296619273634843691550161216632531724002534029048027884119793760836391709762812674492767906228167505762725956373085558186225153992179315532163229553806489644726240642984784408743426197867179203408451247440943462262807017683546874162362771717528200696644591636625025938186071705422493561460674041301382326238594465961938996174793058355283093712664319375284073794202242342804774672072999473408719125611851358534465801785171712247197560797375216068002560504630948424951886398386911223295347613554107505046913671742570686732733871357451200124326205195230209760364599641645201215829305938355340903315482441892870379858511289340975373421356166030068938850462750372202478182250202802004150009874322713647325456674438550255699670096249067241295027103067127316424950251042198880674692628166715969356995154782796452790242501663994768497441252218309277173846357510507575897394081806587067314218228142214946336899236170072144358969199501322950747173817155565326941905235551329940081048788670391020424085249116853501592639981982460975051876904136583696747787532263956692707746166771824773159478063391515788273351269666152669522012210341335430994157512628510404236430676070034167207189314445122326818118996832895726916829046822628567544907607892458639320671060430072722218208574048184845997963220918054564178410749389928639326863038614652750850595618497198358728133459814709155458271323633188457972090133809116824874080262390343218060587679490040624719407733976731312940679392868151508341627400185952156377955035847099513610376144884968078220310276127738663759836493784637233448036429305758716946531161493960444895894963633609234172422362363065853265186812433592961375443728845305679055451786652811086828721327555909762837332003514141349668523457261705849388091788272502268689911439070819620013283470749158320968444326031014937854900405748221694826593423506508274015915126444583997050813195084360048331915346391298147508286735064055257186551072124754317555039129985430567113102508817653623789650731398444481349594290397719078122645476560232504582655416943478251037549235715022661102122343706616092358551864628744291575782414958586662862995264248081639946547124519856291452115984441980544271859431278160234203547199224524240401029972363283206917677847620059592143255724788362994861175877826551305602778644600261173090268344963173083517265674881938621780292866878538841383109641262680962480645134557264594804961511589244297919887032885152597815822052263469902865154286289549833816227663976328978926798077967739329799410227474854883782647398744813450249530812261038733788033524606713271363593080979016723155294289382564759488028662366604289775685227439577710800631704834449997138066335440573985869243771347745922529263903167151828224788865040346670915386502664537594731774736063864435504567010008140541939396881248046545359328572230939849970052961243911785055712641821478008941821344995866283978201185728546776545506254444729852741950954872055653388345505945368726305666715451927060181475669272477218260943341115191378283898570582218878144522262703229529880732261840813589665560023283289999425440841100501992528602111328786127940515631816656394260765298937258465920240491265512853330852754246828204032870019621701067536909916946746605281907757842499358586950537795962636394965502766036621095719996628904690287040604278039188737050091300264300147155309929538958240006754662950031473139609934281338228501440275852078203788345662841756175638765180789679958285195657686838912156003269958868022054867016798478637669086368202545210020652942602645456117657191719610814515452653646345079656692401966463039153229518708195279861867084620179717610918937302839905924624275475386518392195305300942711261760276007802243921563453314282134074566751023849741099512363174664161096620892715342033556256116712274569624027665050257035404536128637610270225671191351832649833352078840739065890946420447263343208502586568612190344803890620216467317498198667620607984834946197861563578363934362733571461086579675444502210324258825691071964639279624225130776315297230319119415355741739078122243354573500322226010947274639557779779220225468389446196026829890226598656459226725172211942932666319020360677272981815635296787535611457793998118216180067156934716690268864659338386431666985227180978555861482285947015441581772366907578400079551922343283481678671540746045050657049026263700371404953007901570906747001716784394521417987423481220087473766100899589567606771564136744343961127666362449980471589474262826696229103905679187687382887072619516627899217717159284001133361285709433334614292456196639915773637518227460366046348474798964167527090420558793496341188043815333785626730183276512039049855384039480841827554389865437086249172084728917146640169928774040203650490927115355928932494142522949188112752436989030332632182934430503049051641577670575238495234997901712506969222790877121488987319848687752095450555257982202837759782996696878866246514004623402710977035614636405433613427264461176110543054635410739235109728399243721949494757728909587991077684988352732417989133964771955399751719798683808825687624866590949297067402096180478733265085637191547390276730603968705441665324410557447143344167982145872961810848426439469335322896348314540708141809619257117660162547589810178364258699603824456988968477279292460397376514248589287743755490811039106000176860230772461446976268045050441861434438814688517652554507268846742046203139231470336184829524284827631716783774576077563990679447864487936475558253396174054544051858813855122202813493406182704360617652151210271761319185543716764813077083077526827488975183503951532899408773749794631327335603098672255867766958840855932455058175444281156001514742944262751443345375773543699236692009464336632452027925714086266405509082479551777979966388785573074771212694591560967082201206461441514127651227822146502208142580377999485767318468856480010940338027067710029639799440988190633345157848980646644237784800955512200830934083024354809673963657505409169365336025157822575486677264899905744991685866339876608777947538846246592197004031798554368463890321740738288596087968114096992348805360938582899964421293814052728863267802774733863418248937643019265759065886308318885259284739178013066324329815917572957842067966420588608891827733293700952815872520826679029839946892378724479544701516835356347946762293073146086876933415099069307757731230200058827034855033100909350452173723631320073440668850377947553568041340602050161918315824792708510328636964281633551803767297258380191884468016838826910492825954781916591131383612721610397050213347085725759328087991588543084327446132844062454725595985558118232172285446011950116001295798147282970483319396992790073883495958512377012575926308146397347128633311984187803249662411265366941631337597283733192781735248493457105889796200050056578631321056947827361316860193031372758265303653419810614625067125951775978441256003626636582589121932503503260434884027803631777659598151580566617356917990497511397436952978662796649660246763707236369997304393126090354307479806298612286312697066577510692185001107602902919702875291248755720388291979282211171987508751859788854407731881160591634863276313361321681232553587805678084712130396410854702328753648302619791269984464863897137735131568715398993147624560007083004170703287079999494531260985766217453466816562773353630640580951130273136127192227089505613568005077096014365843393479036960669954011848558708113913628841796543680472452287645637193624766056367879184352263284846472410669625658019168219122618364320837777963923596981915065514754369108007128044305592345797940027959547014536224733741882206148455909828661670750962865075389564684616991044602022673389468355550357547261508770841188251348893642476121489355565878663661157384261596699687913366799194337878606970844273472430094660255870856334865809427856810858852391384262798119445618212505592211405492778780114754426775690364013032346418928876580898954416358023763342227935609389960857024879145002875339887841945012323820341111851523083425623790356900131625677795981440126641429116723149679832295018787149990169362982524467998649560088416833520047568777236472468813646299172700059953715612236173594042974544412457010890319303112091574497819617856600608324236887785671603639661858505722452013096933178818843229323997359864370488103779581268676057824944816010769601044517895160267682364637645830048146162695444155213822120870072038966240697031407211426323656225303888228781004579897936965642295838058850994633186067841723321582889264636584291922713865733299173556568387541211448460708767465297815310148677167244011884474183031379279516884347116213756621171962685417312496609126984383648635335867120463821327934764007758025784383919060959121394283096849221793826702457522382768201017006865247328944180842980837897230045306371898872381116071192491747494636542384464785339832901608800351144984350134889892644088739309326933722648996627422958882588896850483920883582668535002113993272651624608651086574553747913433460028418978589924372164168322497259247752979769119435705325205325527894315255490903701046625909866196948886414678126934647374355013036508507449094852273810155258788917349136367814150299218039229063761849677116576626240371641231298150124782470314712414348537706006797464263368634018553252928086628459456727754617759788233313609423632153055161013527183443732367210999718686201473853212294384249740077889282213967435153843002529375125008610932602614386906774102415955709635857647406190273858246059773686751126201107179128937796248782838059400393273802462689109641499349750834791270231244994710041449142397595135148610449962005941517956524326660653410114818072639883150260788029770489686776190048278518619177141953805560502306444512223825714428919403988042003261494896681392699089072464674122757382136129539994956909785072308776950439740163142337108607131636406868276505738578873326598746812717209088048193560715109841320607372251460442055430840365577787218483754553539876587685549988569566110889306918442045516476578764850330816447265067144703798120764732135163011176509010004257343499274827437267930917668649477489175256866638329070387691046090796273874809931289115003505646489611006987360999224824267900744691479455097823830390162449636186047260665247301954642214059899682150001945375473306520670998684864467214602908549178960287714533439619557529276139569710519286875329935384808083867163593704839794243474646497294399332311776431141910344485024333113769372152627190867405652745891064772321096772911831733001815552164913668564548963226212907919276297204451310721164582270961220953047766929747386490705446989190235870796127974789849900417896943293364896252183749180482701713419287536378914274352797091065522496633971689955575049616676017454680546915879761866513015050842445212016450488875703525529107232634866819696034252645578745291217817989928134226560787427653626475036162101284265557348860252392853052910089185825706826217750717963841074424768523862813843575862521041370552898192202835634212251499799540872883862404185986681626188053804742542549039436586275295851293191933734380606332759876363740544654164562723600120857910435030844213281679159561183279143576937041720917303623400191924485559983408591034985460525236428501601712958209890649286579823664002496083707295450045215889573337098631368120263463248165406517493699992401464646163370742551293466878532657082569094361657581668875869554737823426878847154838913578727027848656374550328765228680864291578082021493737675230794342975298339280813706016616221943845886764462395168307779852978009139454087724865743035020643388720434099636727512839862347324046150765262867687774552320806104360624919095937489685599411937325654148872184736951843722143677842134327188122538112497501197860756167130011822505768794856587871976930483322408613990222491050822918974991448429099157584475149856242959464500284861260447253480290114440560480240573741246665006291370609379298021114425276658962437144862232889672021965966172775788686077023891936347299898137546927999397128948573788158550437592987828205604912941308598896081373059494526033044879049626873432488170571173366592833001977753855455658222560480627862935996355440727817683647501452359582888464361478172687421102104638076117694345127379976273807426338374198569571815429363260011663349282623412905895254603729696698607119634920345393414105007035955792279936048134653658478046981625474915539404574443797295816523581795841623755752638866803464865072007938614012628122617187255321368836428827673589037039729015087704793979003542183489741784384922950863379424394208716004553149449458193994731368374056473913435135309762134862954228705304352610753600928754995458559322068630041065999351147896746859912619368037525233931501467889878025494409888322536274739399957772744820874129806566495077376256035335204813597595391489313165217777838698319524377707797829604975166057791320756997207917785380461486611004222560449237718127261759674640295777464885717438452731668741503997062215942717374975061689895921801097813916887698846306833343769528094525068077998337146360249369533100793301949905961461792213429575685956792381391518850516091164048216459240839025372064003521724277266249803130507116970311466902486771169007858578114004868828293199657406803392141455138759565729048671296660229694831571015657632268405821625120548401119520349588021272500258531764947125102104337505916458581402740136928751850893164485345562753709035949206936033617150508421782637637338197185209080837061221044881760302277550772882486219031657404353316224093720686092910118957288191491727413371833530654393389871035055696446554763973292675827191075828687073854358409247780164030732041614226992352924147209932371913138604815419403617223541559016954660180223288163394202211086963205402839289945225252238844904217738150361957654949987286028397226162851087430872885622457544575968081773882841175181488882028189213616212781335244538079206297031338448891887028533063131919308091856339248101510299460041463683883116271036234816146385173858498812306834532566425488889437714132843668345762798704749495304235680285572648186085103545765108722903670221233438129206150726336906480184344151016556719568012969156559534009836702682777247547159841388183011101802084259173641779712832680813678873724789781807162299688890533186884931162133022420155836012748261594790783825489938266741967014090063666904263590833355156001295669372090627848678396172005265337602152163021180308831362450261775497986917264017653691086546023908619613721264980052109906434039688411936274953833533764579653898093797058212421872002068768060399059687291768216123067412322845319405226342557409541356734146456116170109915878514206392836859453076286729127485417179955267912858567182787488605445420366601678940427891546763449318221243143935527744994767506445100950435730567545255274809660506357930384690370003860367345304071037444602567716907728336179786508486738936877732282727429574193290083637143155939000146308490867816561799560024251138533915912675159390780149323685075708746942151414516169551055888441418110888188307795650744445241073894301057537188242827687359150301854863318683321852043129348790620156031235254692906880031568070162320644392662691925692575967555875571368761741610533986687204058518299625622336973263820699251249293818926109279140447751723149119888818468107823332873022139786750903319566042927175443158671206410309652240628698822428104048366912226549147972245021831741400181269860879462928155172705404357816514247120769855580859870342836833415488968377958386044105508643509448605186680081336459752729599226189201888365446706486941755436515198636275229401902187344531167664004464116302036230512000712324159555915554786390099908361573085825179928254732604192776088657730173201044747787765021206821555434599183720438313953653933798089670756563862372233518441100206908724691866684142646707048320111444389000525774805924254831298650968652787826889067225526017113076843794657495884352448641176941167896662259277321263475808745872576418282352884757542478675724569449621927430122191888856958986355560512452948732404989672088433654207494817387608570192465732720643486527317865082519626382265063847150723027077080162513879175931568029040274868408808748524155910704085235440655740173144967782580168257276893375238220305458147608127893054869292501342120923771875069487407218064143211795364021327772090755792192795537645799384530549111340545321004157250569263302106463024168803756380199880385377625893577656804487676113358317964766792034048994024021264030374677648851274606173630417301195428351326268119137655595085249487198690508148409088348932853904747543882313443967283884261810446170750000653661835317774314668693002629611067221590242621894267912575602842110982777057158118588282890533136383491218683856337147076098607022423295194244707514574624802964416509051945994737515740298817335213451415898598429333820292009034684999889194559148868009264739695480843218844975485476592459670794747853770585500624119941542186524837410606233378071735912286820320594015409117577867040777844668008437358601117338179517694736211353246435038972342095432461958332296717845741885484339565576308214637504949469286180995944639937921146389699567624400205542621023498700333639218412138292031020725457403968850173641383455506157022008366676798006009216851199742840328027777270106661313668485317589552278289687358229557352129764849131378425898400120719551717140091737402990762993138158684015540864948156206926477370676241491035990758640817467435288361392505747379522624868005276588143604267467816356520152337752259057892908119387724303247742766996070556665752311324686434482840545188485342510788896343039153716970221363875666491707137025550814283448973102098055461415327361798329688624786794481388196204630834981379694439813156643529760955183447578684750827398364231795600153295036697248309890615629051462010866539637631590643277656676065702904386841590975802904939995930906794137920578701174491064122948423547942599336327126925274296683137513392778012751189910091157390429576242719214208850488274336888899217073710517289609284270234503842223660903642239347246499165431589941193959327334045974207378061042032048907177254843185807357155144543139386577703055032195235444226749067188139965818117511044551540561506371096549180249901561401507564384284708366551074141321398789119524829190295410245319897453963959083245914104396605404096301945299249807182153718287999459367831421113118833276689570386672062637224516031884870219610380575122736010541240184904256377929995442106622706767047796732629428787323701254589908419158077593993874671674812411115020006243372797023466483431502221693735821678165275015050810907389822934784999357881406441370543407479653899748888660068924613716275035841492442288963450251517797806577310856607032951786556362011187471364401943105197536400891114472429360768663390617944526626543500430495473441163212356613975242623191887920556158984908486995949609563033829199524955919116412789082983995466139257528154839167542079564890483622795093876331175025515133586030782080721075995577660727914074828107538658072856100325592223904105666144244390523553352784017659390721823449842597891049504208212917892273959874244746870204071605893998990352601937421462047485972840323439993289469763778014383276971270241324582617036468899335211741490357377558600933910259184961784649617689726372166105016244384190146054725937708355781281069296942135577398227984947992489937947425436204667379691365086749078106734913342514852502449580852730345873882909123321673714494427063256851467980813524767729253254145791328648482559818113070267615508276455254529668273623709774651981237144068009790121623990327475448685080070985083169953751214565456295843880085286558509363612351891799717064785861645928296246377287370155734493807905836538428296462306219919481059544698132429748418489107368768310579099835112932790457553874697964126074108485037576974990193432207812127681899997814641516633461080682563066013613291025085252848238865434541064605358471726675117484982949387947112105719747946641064944292161080346143654733513441637718154923863770375223278956138524861991182657643136776382411399999780981656554262353257642923252909933036438882349570166536286939048277778004201364626675685567999090893908311779729081680293469985478076814081454070383132471671880735723183315419313674002036766777535686232431753915477497851312435511865280121673515397999001613324662389591618027602679476293163668138439458698349158771771729244610446145717237225830740511789418999095957871582799261284404096831134917523003312932829962864232111792856052200695388752620789478613597346456191723823627861042214691495369092205657566351624775946098566397715621017344754758670961152629505805162027997302056948930865776751480701629810324225109068823394439517489314189616146935137509093714493371984165769862153043224870963711662138000821960636454997948507607657646024467563694639703206110748160410319546484550607933414687819750649915682317868343846526441960717903532414224708548032202598900729868100492024497109606417007025738193329934907247930671904576718111541455420487023672479751071817127642882913623551560722684896225791879135561738389425348788670668729964049229098652822107175915997967795546607377509685390157395802532583382053177391601843938073755036246715069621950887049611810505784770931259893245728779310620240530950361608727518953769474383639786616982776925624580657282240335651985519084123348928016848874516987420453636494271369438277721129703780559822054751933885593608710747558611037789424769690888147405196802612651378768234403146687696510899613046965588332220350183695584604640024695122646245556575368679725979559913988529017826592361522647800037137424886207012422205114133153589565680752373873686802297516317693157184668183565605825500270878120326988736053128843724805592317411469061182635376819276911218163257705996667050213696093157310259693731815176461746009236276097654964389250938787557149713692565142032401293989055860986795353434504367894210676415755411840693797070816212855057367422103164871752855572360041204978517513355630200984528657631072291361860124746527291107025891440296609310463564089343401570945289643386378939820774492901661858002848736789962678612256989613275005973778859082601711435320761054613657093463892346507189485739949800962518811693678282750457812980353241778756146372993199101842538708887292439091181784760120870643567960659658071916903302767915239900351984433772353869165942503604830970867265681178775699426605078963457445729409922351312330039578138711311502076062756603066947715958815336374172241820764513789712730645394196115272611884754826566464105603964460373209969353379338275309580261096124993448079682814128467105464713956319211783761772679982820933260292654340446547231754526902462988302537821703009199872710520841180585197128101133806069276254874567062969403687757445230741890839262128281207135048961156095008773439565436100369056474174165622346872223158046050385311200237875626583944688664275768910322432083253222587198681070792660900460790436630907356794097961480211107549568694737744277745937233263917313003824661726193338341433001817900772496594169679561874183752265440204939359309962793729405804195422365336295992581526562354901553985824864640723357771523542140695346414163233964924359592191032174399037616851942484017642622181684619867886428291470148502961644094051313424130789492589592600128168868743079082749410603932941705023355875471963867553761089875934146108537408464159545999686240330476610273581574062955923464069647665785357984052287555691753526442846475187082872770602816533124970479410025937500820047314873194793879044815378353598969495252907691686923342548564763303298877664565123316015821437348592339079499772142293062152987300160549162842933939853500462411947687060739351765273723405283022820309312556386813742362446473508694185888725732292130887862431215564070191333704618084395548830041645904947782923326609464674138231778131094997614380975972739727108102971766027908989704057329941986471213890001220415195530472688967446261285055232714314622894469556317923293300710296185936913079648110244344427453254565900403519395800408879742844531889922729727515803491584186347860240502482044441334197167385882633912607270639662842386322629531979259471632075975144236300292316788889165195133845211882337297167273307778665918842205657837247444826782762185895599321647811271381112102893725799906896882074395148450995382580778341084584969410526945209778022257955845738380802770704100345238116455307625215027171794607228203422422927784986019533052322803443215970134565709816567912253336971532438134848955814556282757846851225562831571835001092623552429830324300486613766113926835074143792348967007274372245665588147522192563377349660417028896706881432349482292267739546784196635921147495179948288665260188540261026503406132929090685822062273840605633644413426477826256914172448228783808021709252370781411258592941103620024900122459377411664467106886900336140277108029021372439438740780991301592146862972670458540264369984178789818273186778760110801340668114270963232407677057258606460571004741284169593268089844316628970263385055577435763383207972654264157979309858457279721495052320449844849049803228580910685662317654190934983192073448844134058613985343345031711908683688782014598548829756101682963720358538121331985381299470514034100684019187942658404107974812495569402390229179697253763980004506031948093575728891166569379580265959663329671584484617045031958723572818232829270739786972288988808144722902174814925776618905321473053192270062686706686027727641933913044513392893951986483207959127874527519098690820846436049179575156490356507195408137592684439178369073680183050233206938025473127685352963927384787176567307116978278519350341189223405053967948726117030120533817932796609463314423692545483932998852063756684892509096879762532987875473961076637336327138098755812443892554833823883313342102538063584645069977666589510370157603798892387195962581789588213793546822714852290761699345566297879738003078479949356814503084336709919699025464968363557394503499315989730958282876235047107594177051700405642178494697266214850900036699046174711847914120288940484923175678962674630603789143837780749429914390499692920989656631787982996066324817088413221211772139005988780489831449245325118226488630588796056753754144601887578100678507727256105645181430445228452129681883461544526178752092587722184808351385627004991939475051226444654790329034504000707946728096423212298768773093597332330631888219707668950286138628956256188193826430741349255677689673619335587400279204212042728380015734959233452319493353156103728654379298580255371190062622940741092434879106586912791946273939299015756777141617406539667462950300795275097887800465607450371891319517278620827695327709629434647488498729887262940067103995203403856130006743236444635950198738465327888557537303894640582383787238365520702849465380748158028158301256038096848467190607131428916659418445744460236448512689788217149832576810381679431115282412881015646963374831036229173572095470377025023655806857620034509885984650002489319443430716511794198027178359365114521083852329914967150739428095475908820964507518517684782268193607654497611626542281639686279438162931594077867567956687396240062563522625145459473557336110020407455537247713437956961495447256019408208332656039731644186166686610855656021650792474297952297918171516198232710319747224920163407064656170034025133842717690985291755129989206297280696117099208677584334827644386834292991388957897085401048745788372636506015896116835915246513094857567332673620164502521709883648589367005162720371565529173902004032011624331660052993260811128798984367313383300056311647735499244394858567595336159186538715523119736506312704569628322312717631014179664140888146782786106306085173844325842328791391208490111404841848053929434533398977124804039388443625203591281181372196391229753072118265909944692588395903362733420657629560183791123855138463220237407254753836269081163858625588114180459593924694254175601263033595203802021848007959190726236816667434011494365579316048215408496316903863774557722539057946137701220245085065275544183113632152270531725335342054086960828206727953298186030119999316932232483930957775987749202692580017573799380713729486050208700545573024100001387802338910778735437403830697809137265370619587164586750110639194762514435141834040931121640872454025550579481087797607236110943918300240790463130710307040945626667518407977318480929330993788536477339450035341980001380663033331991749083442199223985826797074726741095510078889335059821145419373524175569785259452151879685241584752995993966053458669748237326783343938226426626661536776068134461736062015532464506724063836960466947486045788274192999877689451809866083782918357465286487605221288621222140380021180887007225000039055892840148423888342865341956863066050522697565349151108459785154925465200232565222716984372086891149070509833478374528738558167496145075655219789810488527739022420487904998188981723015263207563890555779852384581626374814674605194940807193643161206783762446373978850009967562118602688133187156773154132275617625887625668343846424646284200537239664288082856110488303659364970377684373389691638833440662129613268632866271156034530648895929130528080073136903397819076087323759782103425348972168542027685201016634277503414296366838975428764944599420767630828238079456754177059899132651340506056918088957727370095988528028959830415832051750711042315680395761797412166418874777166073187788835829161136325831233838572951100791876323012215790132762860439900273010903392915996910248248563187113464202946383218217362145313719218143235509233499412858073589670458044607498909231709489920479654092769184381667097736957417362984441376816562554500013382933329738185735876812466715189577563061875589147428398765511872409410246712021389238087213785666677965316684079579594952743019390189979855406637215762209903594595340536784161289528098998225728841764472200518301606139465870414758491580286670920907263827943922537923697708484441881142030273707097182894508485958766832031648255298032292958165788270611153807720932185764664956956701376015383022663603131313493432897363329664281523404604825293811458016440969570402622880940561677912874776374868128358327356949066921076405270000911785419031891360489211265568551884140628002227836699990111904108825208423867063281077799231246583025452629013430523516466513366442579296458802593814993439586303693199085303909517001747982576510499048626546277814519273065163901979022544023248192799152708526992850052446893361118213729322269538575856278937178797149259731897318863287315830345474077169474376216977966917668335453356559107635359086743309254718623340250124169085687104161595686956242212119119769998434072306561127199609772723616437469334785208916961132496924018844974561711450021459745243394812362532061140400871658057323742920986232683598203364495626324082151760644548132925658018055413023788454362620228738529526164588196527538683262095956986562634163823917597898554288781960962488220764040130146789403628956116820153395911451769648642860616945274563677658853803920653124001191956172637325547832778014543984006228608742763705499595686373856838778966984074268421471680493562518388644824281026338292683679778232489537216118107725134057016061291701966037315247734866070136620097884856509051809941289308837845750129467600796386669541935894964315007718190456177495888643791859576711491418700499272121165906242018524745879607850655893986533273290539180314937981378181997711294344833797356629042206043854951410564534177307372506369481906875911325148850528348517290062190011325121842313749172926009657107911828474804045103213738795305993450370143362165474379085875461053781971601455044996306354220242386040377757900963748232203053114049211215114169424396072830418086256999774425720507005627042665094894913950210498331618749569385569057818988081185516258695497144111701819188015701554312172465977764662084273944388746950927363267933424933171235289786435223177421757332252952369370013129655607297999924496993814886617173210236748526323737393226525761283890498071010810638888853359124544029458091436092860854212315236544373197565601888729663059851913244115419508516104119746688088654226212556374926540367476189281015790120612015388929541647303624339997679736651230632607517719411746983288060067526822846906763419236809880990456884577355437167258907311670962422292556600336478626927007438497345055703544858199127561523392487431520546092579933628449029069897463478783139012510574183868106837480059828177958893417823374355207765982817123758488580668691430982949753615902365524202062637696296069323703967572808021427544430508750424933337399672519116174397033800325413836463473659786377858050943746675599370000578319549635769288394231996563028681423972546039439445624830521196337240030681815507806748002726345423104645994518893224849011112295120026233078757692589283045760829529324943108602150412596023342559743963476567760143319836623749540617943577201818388280572612699024646496711639657692787521391937680984350975298933765147170258140068865886594014411151603529127321956762134830363652587468649847034499675496772329616612473202065940672932429883444683679885966744531891109713615550319279029929025770819856029078679563652714095860028439119045276375700650826942568292556308643566581560560270412246376105029396825542560826946563079672863147132293862176292482326593963134531379484195736054888136345687282378125803871557001334854888002131991226850948269830049607506338785643309087271541497174300977393658230989399826635745345551991488407374961726145183712379895401024663906821150988640473312965240590910689528188897011156141069114006270590132355645327167684525594447165186958577913223990003018423591959591849692176994890523736933485523607208585874783052973559129441946509083947670167538264513934428992804444681253914196871844808282166103500468647402115090809625857315914215274343093228545688403007587620596644101922036331642144139171872246432714443229528111760355998953143363171436377581904741783289428096627554820057124648911992630019819862917507369165812913255721508373586760285309084626820115736949245232245945937258415432122058858136456504008167047668181750733945860694681632560226052915552891747122962781062765445992681153415919468912651235428006984423392600122580178624857523482777279543582251464713458197323641823304747278802083579399265033458323639947083097860932173498736265033098213391098707945981018819301885901346906586435724044187102592042057702290482976784087052676786618283983151058195098307743305846352272624819101786793685930829417069129341453515686209177778642243886028141689878067247300960138602736599309255801898376070215005944288128425105629852863894332481042800512056734812503887265098545626599395454073861926077936169810004933576919062784282926186443513667477407679597632862661176132512993567503030795182155839606461382326573611497864692558686872575019907330724337844439249888966304337225548113615234315983357611469999057541074063511547203683896888701543167427879144114785255472578775988469088682734998160707586823227163447934143879190129422451243300088987424373060435423203845601468099928143373119678745549460385834623793798632272004539493780114978524608713221845292741229382189186640853390210462900658138753199873320408530831884567148159121305007495319552715224493247528763493781929119378372720883974941595934272205359392573662061550708997343531975905850363244974531590466356742155580775007792511087452675128183398948224722587053837720985030979861614840457029029042485828397026353316737710457131732579532715365293795652284361073213708701934408700268248338575188607583335332185979588170727197351824708669583939287743795796599207765257995529934507327355297165084960031905074648999984393104984999301204333506386513840389574640421982729432522873899683219439318604258380460190281035695117767998181980009697033194030363993100184407146766948055654956706736793119932568853214525005012016861258065831307049259361338034990898187047108298937118639021503672265901547882124396285876081796627975646787574178909082327709245818285182474903728266508938649322197297837487370281881643701591933611633270289736566780953625273387615956663779207288477974857946448064302551022934943123386256784024002671883420276060059290607169568758185510367426774172003776488929449302605409510030535056709772569786631256151515474359419673566640861712701122138731057260214777977905112074957128782612471464232598914797051548415602225895108084047278656013983503043136994379918355546036643552897430570701901152329931737292666417722534754170826238983656553189198715738600780574492329822705359911584923355348806484477247041361940861538596056886811273777591377474835088492306420168871603929279118256327704253299167198486643335853911839856842948870074486417788975237027264623015255996197260269474685387440898710926208774567405536490067196653008345028968200957117404998691874119074862834811923132734424639725095201055416523766017438384147397677316204831945860672257024515306461655112322659060322714540371620945926498622630471232688545254641129272268642865531670179524118875839096890886134647230455110915729136574163869455514335788369545238524927018639894168854102193874135707777604811327962901195423490273321418899088990207074588222886002040758879409886134502466825882619674141549934498162712999929889388547778997682804125240909043817618617784218039986617838743113008763794782533684678777575762274271486529132232110557733530974427905112221319491155151647902164565255228608226903016620955948698446981506778939180025939456293196947463529489031065176288301260154233284376874652097752052024708073097153859512274625457639170069559424380498306870538918724802815245635924629579334721382728140386625124790614153974195286086371399160378404716675720186212045755165757361324986386935864850897349908692449568556715958256070833582346518302417840425773139930783003367515284689650716510290776434890265533680664662674182762420048886054954629215288605886053077837604075140726297002679487637897933692758503234560574830736667191472774907855628761683128054281685705060971261805602402813653577112945353368463622599282950012684331396256418514481658884906610280972508897431287434310881775865943078433955354407294588788936030766417840132537993451135581420073601343136715407040652448095218031440388200220633717587438023386054818149734589156324124075702188472345526938727486732605696594677813727112369342750860870627960719286727851206713606784084565167273101972727753242621117316931292345240154423928499723014707383123769665814898887277073066366505013000214808560308991812984633417893907214000706430583852046323886314525510360014408120109607171880885984026012352848092245731132679663607207230425086315565104494654805308429918142706039521882666761661794254392814112725628323267344219539648281130428401331242889053159780334562473964954002226700044864021747109216314650349082828953684909210603329692516855610612530721665900341686961203562406001274038804588312643996515795169489845206151831356525439325461490572333605413372012069082935548945468745200379257996508512690705465250911850244870110187827369204394582973205285514624537758715390902636687231766289355443628996012366811358239564808201106992729477440359755745730795631212378296868764425956151042766573335934933434097944016653415948865407830141540135023764726984318682536397310238093528758989095879179036031114847852300849249529516451521293532288123232920231236949664137054141835637076035330812839671151938647577400961981176756609500101003487421425742183591058888964195632608755503137450127478943131298308550246165710898815640030118138266647980243391313772043734721304600624293785301973222590880489564511732661616717391490380717631392348148033526920096886755431325483797612218246382095534293191217296595132274028476049668593126054780163310466338323897592591517855464529421462068588498120097206641384629623247472571543165252544194238462784637777406348103544578028491975680524459263353676140564047153936838390107487448182849364465850673197534238484910959649598210604009512979760622563844010353962839436346761051409386871536848741206310903085199459972100439103977809465285007882811590054585217672618897023667748370103405890583684673829375931245832892713973381806259679680721562189183481725798501916298121665480232347374972757176942836815084553693930374082297376929156685924232934228992071754080946572797642568786100476987684691845950312086667922326600737277342460844068089069005679890771551776024746746648595836383613406533545599347572836254714077300088567169245004974146945038830487620840196029004853934097122588550328479353655907024311067665548696000800557467176212838223790085520874399162535275964782397925613413340937383857701235403014275419564662093492243142826772124611530662329254760271814703061773819839116837238573571514809808535698287141215706269470797829414269267067285143256761417398227212113195328530019482969262629307913114456407804274906332264232366678604888087816574314868529683354580862956701244044811506462022237162471166218457561479408779718708669181480208473381146768218958998536866735320847103727006979195304109329567851966387385363112823851506996537803844096552415730891688530705236996631689327089569694184660007517970547841630819563149170168601151322093393217037489334521458895516377391765051384535761445953967211406460370732022872670330636686803763569638789144864669092154199718400608542451772541106289835459173395251562063830541576336744913897897090304297451896962328750782230063552392415655309063016212465577064072312872645774183043124141561929380306567965327139291463178040815845570145789140382932367833857107021636183791782133563534380336496389031111664282117308037451029911015341621944110857703672872455867793244569052704324760020198654952119230855446876525427667293104531432648901185039900226796937630175531289217513628032197016572911520282812588810711827027661485682027142517872157429758995576898499517496802297152918910027285159983294429633622325461572515261821338290602099328558148866969818198327678386969313787564432682553078196106218399830487658541239245039994184768795751715891099440318265708073291542123534059602227642541223080702489892598020522258750895205860585590956457196302447580365198150951030001458900662088038826701929235791107066379087831332746696293814856507537156023039289786780721841252935096963134925834490029678716389438661294221874655598310310676365351037988333662961835651504518745054652754629103153773039110921464504447724846596901744003949726280070667369763793144319556213230317277218510364325955007402488767996130185176934819902950893944591737135592089605848882217638430513672382594389472320122507936617936896706577264051158848069009273851096294355880992129175154462064477031671661357773056301751807605257840026819185616788507926249423433841068167416008803279465016625933312122064260358728489665626643821605741382345259059269354462022121025388744070058639023767500930984944545719444132428996886703191103670605368935548039918691910943591158766635803466500894283167342384017225623181190060662742568967134499016013663303754835131052268497570323392637434410503760685365663423202223733939797004630772295323799640132240869116486675157740783252079749984138083915733910871495288475730945950096988786288405714539246376685189564756412185559704884358943585961363414299203471405082024105442546306808644356829754569598333857461388175392764343394638151055682158281133912032350914904686454692531351760978617414214561290621533082551820808455727204895825656328689501717648005711702887134137101029626365985597764087420100617846125003695456566104799431897930979946250676361239428490641466670313889734777061948094623298961276979594780656772196612410489467799983039033181592582323929883908602837670069049178512036640651763560073761913445377593536964433278291992378099617311216068647916750538806437111157145853336659405577850063431028641949993834412359366985572918651709196531887763132383657892754995405254857945081839388593763013243632644105784553211843237093021829593375131195592751551602318817025668742788619875602242621971204709768607578959373779548912747878872943025310166551077302295859220703711357533188835377416199699069070121909867867648351538793715126856798892097967009928206805660177010716791855212075966432723163340916764894365822269934894941151078952536523313931300467907836016232298567040273891128672070105045487319709430723725445009083073792411221528324864142883753435838986878138042421926371287832737718318942932699322541053594245880181409727468605429840927772274659744783851815210876468711310712808963838589962062435585854910972215856582596728186167772633497510790885182739939233456577331049495498812811374286559546079915880844983698186561837691431865949533166066318872088403561752203310701096399458496387217649751157678593597456054865791619932880789846695090750053514023236087059390468029599613422057915358992076800857883344177888143775817913898658441575852035030445832081633955254593182385195955367600966365795866102710443165155360879918415303623461331576541834413107091830698238828215444009297617462727110662043065994686146506713697881228617627863209379649493528095578202358997277608145807354992943559985578240212534808462347791109083180524716265234630572278645850300254877264681643079823539650338147569484748043467521000826868542532998485582825944158361419223785690070535172882524781210094617348483481152224438013936433837760920937008350424510157130463497749798774859012145472321704572743390052872934010350748167733145681758136790065377638451822536468005772230890998533179849936529477466233940461686542810054808039617675731004822647390612443163820685644444499169251342504787010802386732975468817099847805780404270467359521556167507686634609958728243008413465825284245611465812288316969673693215875584620439352017067519329201418366646979069786074240580640035771262864084054324478222372453173128084251176828113711037778206220897239517277235766641615365185340916822700317849748094101943333304653474895086298838545618444686542974587980517425023034228096315481335325180546910180975705898691879615772207717137691331783226114262125330243785048606204953601109153525437211724895720578333822433432603026471816889929750730309489018098995203587228196663402839429116113913070078036112137224918239214684334798568766952014276760576464555017850094442800304353874236632847806253065898016757969306676357567792070388561506394549728988152926414853340516145993093477451013588996618577154487087057955106274994244235901432222865701091067991245663247194075766313371989836519602893737704501455469960286929319228258768215150791322163325636267614971200587452059638394611191899562523553900663333967831841557680556252818391869624346289261702411387984477183405178403792020946658443603279914147682821891350533663535221244027595245916873139954104976296655928939112594567308993699394867573333077260923400057862880319284214009200528323999830295309834328992790422375033533395069758865324220802155348358510842907242433214987060496062275348218936026437158792644700183155450985309734228365793532096131575081466914811229148189550413110571499805590948136470511262149510342922021953520133171731630800388696950984863231691781255913193310481195737433093127451050291717142542489769648867518824980311305931363719121514529089092925436458361504582365466558959435177816136911346828311738670065715193479407234547880355357928724457044611201795548198953088644529692140906213173076875440930217336092952195409261175901881889254234950382887440292904162692095793219812166520008935579303517437895954674956096168131244018047440145974998481772648125361735502791419042971588564011436586873436173325346750774461224642705935853898054841031671692751146845021611777956323004660966862016882619222746622169761653747312419455480683472339350374340462884493304955765115532092990932322449217517693995607555542548916255111577989886307768840168118502352334965709213597870255715945037191438123721061426058971157959705410412036214112154642715265674224100420462045720399805428402919775534624021444768492567091617925793189447327754482400782265303111468479550049804422219921202975869453519149119539560706271106778283630842078092933925470607814899735880797291636591775893036400073922742291953510758352054548767035731699593859654115014071179433797680728119732060184691893859046692925128843601784351136409153064383346080508302955991137405997038036606555641772364039185337560570301870789962375784166114653890263424245294516226132531463134104657260881613746086109437254541154446253373452543396474338559526121717661900341713508617571531608233457078856606860999720070075634197968961910436972996079731039619738864485106265778148296350751136081222601231494981283584692875024164877976707623208894321394356569418047408226689146472989782038375511682652094338409690128762628120961774101116081109429462292897733016287186467676736269179628477759956517772044415379409636369434300014799071941994750721883428369191670701851026591474088491613085594716292741375227314380034426105931833982452436088153672314528484198547346050610993189191158009086986665774748146771551132999147131821573785621323359537212290121286521718313384719431183716053025245317286794193863855198590527014584036091227113673591677764939663804710636625714731386121590268905561550952162094697462550490124239638254194040626454969202744378499248060457972785914143052685562241643198821903252775015834735059514411354566480503257233860194807617641030277238206984096949222200114595256003641918427134458636635439459653660674571984619299021148082000310554249096365684699293064674567465621250556011847646090077577071888418982846096073354095844711052918040990277592991431848894495955759671283107665100511363852741929266542969011586117913304833043101283998680340964870026804478054628060909860254655771876852825014095751105810283904659016791164889353353086355336041840520543925492822542402461817559804913790685637934366841362338098456311096377614052913205681557405036268712946375076102906838736018739439071729916891662418238015469825018946312432383318827036163401471214579695108984648803583671339981496885875194859326127252930897774656513476712710740033392043313704487593948803217953080520581842408103089600098534834411158508190722491479261874324718459551863022879164918159468451503233862308515589533474914553892555392636557531716779572547379927460883984428060181853970258180312364355042154936424772454376274076972785460924313553834885771423427671786317604758353742048070905076519398895789289137044230646462627094477532264628387575157583828463657686941706251078264448491955840883838769107851099582527381649643587174038571095262094756907926233108972654938715228597524525623194206361296505930712296496842776667610632259770101502818012994893079861090554103341755936721300557887221028547209743667637741965419204420465282152081033071043748291773958266339398148243832583189637710144106338156333854853147802582234542045345309048253284986852211228591380151986842309527403236896289601148653794792030156863456332181076642655689274955875137100802910586622159267621169155750385927843848253399360578448380544296936781185552706260307945028856658449244799304942619791810113177202037092590024046178396541266451681748654462774571392698155602001096594567413232093122787099365320870580070599216053083595130145868121678915489246730128904342542761215728839810390870876826469963314067199270915479978811921697409036233909974564004905059421811122936365428785397962291216982542964753858655529634805130072991232595651792782090120686965648339049611028705101087982219144932473486153961531410975954501993239996736325324030807727288434127450333366605816742769251046225379549801085663243200509482555892832068606291288335536499081430199890499992939603907180371519670405942615731360683438349118190557084807765770662770692571792970923727710921213152382876723020293643183927124492401081534644118910912212856599021691802490652370454597458836834190388810821705654723271852670971573417577425637813854152812093213972891374345524574805256074608000953618711971118952568848941760097717463667359147090428640996426477657951099966633531915274703639247592486869438128813883021774917768747916917156139970781753718450271931751221415430352352132331831233130258315725332839540976077694619945836962391225920565830840693034287931118986480234364612091968506617060729953929997016863705096405203734311067337909323742989756718303747554275061611404370872445794851351496250851146587789077484650150348686020623438869173855877116083558425903265431297537140452287967575710092254658522569719418938324972828469565343480175436562089900077880467369250160105007625908538184774014898494935319888325181827711370246576976531178876376379062902354345745519055441298021780138554309929142033946361165094996614804743134318356381560936638020189604194391170415832980867474060542606864702177698795524387480367841051169208707600453461316749464300903421745800859615565158917860221251792665304740013327917444612068071433928828512157085842701876413995780881806658888259739439001438147988189729891642775252543563087289350173692580762145098755770929065070767575632900104611963206585406378995353303095852392287081122220035800128472068848615577799266744837343640464784346683554749748952253552016486996951367715253097226924366507920506070634369612449568908072997881536113992415091495386910697539671452639953250154229062660798554648321398055326620557973620656027826319607956520550928467156855716406685791400966625210272616323505512812147945860430220157729537542656062789075726198979847620306379140872215885277004961818478098316142892469378896234412634384699344991197223129304595793887742401487500226879406524005820307381135216686554628543199306173343897941377346622362159134355875370780922643196491610767163450432792626448927742121665818764594310764235287989452809209330724692567744421162240207251173547881207151911034580712802468560448531592886407126981172096989660033530070156671391015915812870562507756669952762309046378395159317591046062935129071276097022373419340926423343144436026083029723401025104536842615154025446427507827650927218618697825086403726448123407826046723848037707010984239651169196933995716886468600633527202828383472272096554885309977509505650074672710393113766302620806424184577103572490524237082643117000950010660285923894287088470366469560711142649506491649352271739102057405675630806434148659084998575977895296332062710145779079259459051471234946599180305088729137704671657262916901867802237486565510023591814161796567756366654767769459565780195560410453360481142983586467233491356887620513687263354687329211555251649402171484620448329086243706867827392844052269269407168125145999541828361293535861710540625238315988991954161123538492297607752858661077118839094805107447654990172893936727433350389297591759518876916235177873619361553349599199217619364200213221085019145543018708838918900960610456337036892790928719583819452587331743239496036091492417468110926654187796076182118055089301785350404047782982573231892986293473294691870889299422139597832258499184995423007458628501783438821010634644457317232375002893682817415157022075491014386702197697977441646970621829254466941009366646011139164378620236327219895373243956254701614614627904125826567411556405548050042715468671180149986204073743583106391214553335548574839311224792113320494121678166557134355522272678254698046137110285057466903969464045080414667101959950186414868999536448439272051548588167215841881334929578779838588977571340895161971864396858055344402155599036406679624959205075104918210774975504817789565581764339743906505298250550160918587048464158427942482844130155126239030342936697081316201898799240742283925225254283940131831404772353630088582298221519267683994187450800305010870825205333983082347516607068003203235611987231337132146701919309370114782000338378027010497944718880966932173145881014514064160728247279849446549566881948370302044987164117380057811167881661998624834773872396862780929402337595945447892494362180123093527127180177201980963363983404273174887667200206653611556823630403468630695085893069465390667956360785018724168047960264103704272540102024467385190412826721128045567351442877694302815248787670217624326399928825255591702088899209086542245587515879370433316828285024484407321394720331764442394591847396607066548241361734941496211082304050920508399955004226976129712942669579030723324327283357012851434446850377158730716908472772677917744014925666621262174138861450685108569929945944294261634572914040667301374307807742908365345467111850892545920002637074519708521431406567641896823708788128428537918927858375019498660676316104756451769290622805011402699165505545642886663330577865626679942171456245358888386875284116017219676175113594852202748877786189717986639553240464058887034792255355468244070814435761869096168239219358059747688452345119365705854282577019533147365661522612046427606146269307933348698675328598150155521376657030762980952749786291959165946191985752356815712325614862259047291787684597109670003652778809386802085100269438053838435177565489962213441240072007868288249316280534423197070169705602971503285864681517037088780621402261790371404165613769137987142954058875666763990139924654430537851854484095729020867463911748142588570283452736067431875784490108210413953663370022005716665699735662997024058870122152254271706785620982764868155150271612725027498492415213720038497377330264845626000663143297637324519529401933953757461318804261984253600277755093658972249808288758479728315626838506080411600333047096313211978868438762821059600957504914125895205486280929683191603799554182404230239292593797369045661417571413542729018868013626716747631391529248682601096509717602608759815119015017867937186160449566565427038923676793262026933948597335108742912363616094634802271216997842159615891857907369064402124261872724016318151703377300980390735309578954766186460955758847978273155125217995513506976870215486906819896695784626392734360361587476430984746960907690412622783705317722309928946651655557129751180165475644068469438665498020337279996119297209471107268853716658337904635187881672658761335928099359103941488116480908053857527139516329585391449568830674389648788496140872443207668653688486006188435643519156767908107396069439411868637020544032985058073313337672010211688101386023107520316401490156097721612234994882980971625465861757724929726131676686369537224146829620464833498874446106930125130423094612445148040717073750431199100320968828536066050589529686607525038965519565571345554321587656577605004728523149139787953107067767985805082650758588599137904963632042224206792044698586692039508445052240027849492802138947121519499552902995782545009584454272919556101287315106595566942473224864397674830127686283147846375084811788632043327437071913775425020149662351610502833608386532986005441105058100021867594506242995054754305451860466946644476129763410764178665763826695539809113798811473638026046232925483872699453085010409359216577076789949651612145696323011788887195309520531015182438994908861403102391241552336630561709881199131673371176579068370852984368621315317581434167967247540054460270592930906078973436952434198755349347348534423857952631637292823480762619833696629327810429150305192364049172367247724774213659667592737503538607935167828309922592606198982861327844366844669644212976465254830290486229420958081783520344920314791770576188411204118076714924434973442651786828436675927782975964051015260473360800507270491653697926752418830360384187785097155464029135777692147199668091508112417773252601707172806417516020585136920274387152184167438980697222761755365623597526210912338994750662760554751097113801653641092926612409880906833247900976267865178091604097272157878318325916652521047829530213653075056431090718011575992988732158898258356054908024465837024566242848440180294035723891973619079449684082533237653550505448982682051050769837490862447241130509452204884046958624172926120522078383276821511094338572318404845166651608283634267566625463649747686681935344316486864304521598020743491714021198248747337194736854155670649436744576411497268322407414787044161556476886162934337092244196728670822169424721941600999145965952770685210277621856110196224618691663906005533064088497173064051152282278254689937408496369472250325255665276280503906811445998510605449094016992628693949293165020629769553273480182500254214453265158967473293957097938048414276241755617853648595352060433904007856905123141609480586762194554995600822038351219729028968403091814982960344198712184253376110516126217758927246981809270964623006763979594610090683074974800971514741178020894424391252331774868923210867957909509352405781003611038910175245337620653143096766692649836558921311349283924211817373346301797080882417874852214662857835424252620996615981092448035585205723560332711392488754800977961336618674764403656724611150276908061013136362166952586116902686250858483281074292557499442323172153896894707937802856433303532812408454127426921070904901932860885074501451708282949921672052709148029265687646633579900958087529189190167241113558454839421022044664082394296880489924025693695088522668274174220148290887047616099536593041586089259775405142124178698555277775923855211388003096374966444799233762295418075060258174410921825752697575267817577920937634946980516378902752381600313599877189326295225689342628050167477206512138747850921989527652946099796672066725219083350513596645372691060463714957872970375485670905297367896042048475664965323956803244308859382832631319476234002573453490842639924929613841525647446946802694340409153320909547925663410100627708419764827082936509888381662336412975354564008718804089710497486462876185684430123203114081449308108319231884844300902570340991089658774212645231922608788126223759319829647734953220735427512885931863714597712156057594339199424329473135142930532057917148256619021865447304638171206495038044766689757090084345782831127225391158593967583575513975584500261053506919188803212272602661110784212887093630352214390314600286993549965017444163076330049658553586686954159648030099889140737494628368334857864268505417735449467869642124287755007906520594992119015260080484500516664747042848995387864410570949176618998939419554527399586781423265020302317544215190818673520931962842287970001975634129440634473087395863787144535300523808049775717429591472063134026858688475088897699132833438984900494040292671918376761558670478700537785748151405691112875527864312446826608543044886134063706243357007465682895981683235028343183796544909101732927670480022465008727842903724208538963364272208373328451493116163693567883914596271864926135395229973031103970466303129555341461378035845595017452785982166117413925232395968296242611072924430414200705079288428557285263042462662925010477834269096779104048341502959654231917555965167060186794608932735671964325197986995995683355227410481312156160459903251312467160305597997584974466623921814715701280627968042737876653365485274508890059543534561506429575311684829343370715478432450944578921754474207208785379418479520024146912996432116101951452677218313281120641279968864312505588787362143659375025351565176094135513121136490495223803688397675887110345601389129015726599924517996527208263470681756744005795601519308226716817619962975939996336548503870993968900323221431727553686753362897300089375446803833801037313254447374891718469774625027256301839156817561899127700518200715220192701929262062236362197034998250530829881289844033529971896363088564704973160338759613598371937272590386982499946999427910048980404707928137455015092623787388338802145943436512314527763035896849783515646412243104786254929842797602190553725762161625627052275228302619015853543346296441816175919049050214847047483706865337350230173556028385204903187737691741881439146674850643216842346505097221362682505001582699355236435936358976787012893444312946368886294313835018619329656035438513594577786024872610209177821256119646247195598280715501669196748942755774360948950483029968747159962554922390016325336795115917779965108278054964029235881878608968635662882658228365903183041560859698217610495123097730989327257590116968790612263409460950201748408224044467155151402098784197797819924471256050546108018520017301352184589678989047935955250410639065042292029879212733958726073785521532991835955933151236442475775233494174823546002671127956347178958097606591143282621068575951830280856754246060727491559047698873947098811992981945646207315727777246285413695600774140592503713124665197862967433122060788102001766732822887778292363308847438855183544569668824376602306739159378518744737874937068679229107972258201637217933974771982201150375946276865932796924085242825337757488398575469350137181468886722868926071332407696413958164855373193480366810200517003310069166447044449071386508516367195794822204152357453443362530348038777794918066689754586347302317083279995162284951363462836722766388508897237200746223592049705243402694830195363970970696752959722488356132019585544604462355015958394640676297311753951912599210058894287004507694037662837948706349951298344281627174705076935490282282601181169137649163329321875007637166639592303297925199718400539716608789388083274615421125846882990994977771384954600950833906780342977350894592819794817972857748595535514450354426932768424227481054466999857200915000379974154860251915589358394557588814167329595723450372215661692584048667978163894959675644119894430699854112724780865235722775970200888960427797748054210828593986141329572975442910861063134665969044520075515545768338632083721701905965787129719845588340630448776748030230329471893430747676374163081082302985144843203320824211454795814824588739337704304975773037150386536590900309525559349234520907447761622420407906864916744690165115610310399156667472956928480221526958060109249599682275445939993389539156763485204564347825442342173849565460573655537955515481491668899075964917852122383697795142665352873367570861019227735691794334764017663877291178704775850077928893838372156859016822390356850324267707860793487741560777352836180381793545829244952088128552151029285647900144975354928471558148346789210092078709494750273022386976785055827443304606273981219474863481989012786082508837173900758118998742037370974145574349937092725429303114386416581193188585315266928926200426828329565329821896497477229084623969993040156661687121765420584537311477305227731215591625739344108723446630609456030271039946672054863915257606293441661988027522360404451238270818568942614662343464714209117458443949183435262371925146206260528728528852248709242573782687913601670462562457985244937070361930185195936124044692113502875811774615197948105761627455809910840618115037660585904922622196499254860025715889552854962450587638253753662322239512733906670872025265766486850002306295307433291995387951812838762944200638767790662465677834538154609171220719943227976140033662099098463581203572822032646687103759925262741439364668872173470100258711283288749265626494634141903348142409390830497983915513057119493676623215824312125563203558065590600389266894561297605567794112002508444834450045352838170757879789841932709222598262541101655499725490385952359107047330570626289116571116348364916158646586507386341994762123889027467831647652647864069881620756869131447149338206884729011669252570030436978913202870313080546542982252166396956768060652979565934163319420407545050806209226819249491612841067279579457330925660633750526413717000116288112523988639092246007871779068248369458957929526874410882805667889724220192100676554378779689662160975891247233410627297479063903401707533436446545491663892310452290097280988419170565158410901367119613739941562581298994932999876104953721992347003629728046546127287094753328946926496741405853711101160564722022780533905265834042691848185828640931046016980392367608560957756712287904737672057054116543125618962835055395667217387550372664168100237656966791869009239894247519636857074508825753328744628337957472855183622013872334454981199471671271203734095280747139953621041430429329577254923099814115334853832778910198699862114420842707247259804607140325685611217202108840382054399011219833228055746000102067333646990099085055675055355768032234860706281432651049510695118366575175564821100662675126871046908734197469572827311620156587289205655937307680776648311364365086675776916110262362097922479561553428748348514706472081673799362875691322840131506434054485532728194790379918016906596150445092571441286007150285323587676780156754149259501241137371479413879869349159288307049587742755782451222294011989129004653626239476146798190648237353084381516405196602914422103866027051212237594274650036423687032647879798363493981057986401418838743692552193836636387295653179772749483867175892342768405477505831994565040280758000597659898025071283239643912696455149399667368693902290821899923848376716283630113255564810766634134552759041154923640427109446054705987105979859422020575454101586534130367746423863253704583017906483662448212544249881274632740701656938477719714884911354593764090377683826994315323924088604856882337172411459564119030340492382073764722044666682064102234394252334200439883863939802833193575464251383589308909067108670263640995080850820565144650879485170758638454030163705573617381939548571117824591209177621675262003952378427028491081405892994256575615422942488330576634754165692838786947221951731944222076590131832979147285749617745664100116729488412014064998295696797786396025629499487104856757694689004860055516847561655360112145124527043217867526833584946095263228270408452384965742377431316876762069248261963616405356032842500321769071117222098560326316986042803011856239091502933281507130977767475973140873886096460928744526978383008405775703321122442827385293432843239398049558027987522471071253840047594402314810139649939528594167870831850376183369857094078771536224471863622769506830587781825129913283320885056706803041709332017134025091977749660885122460336466857050753977487886828140703964494368359587211345510068687040542762744510351420394570351167043305824783530643865263048515871341401692823954293738813656287638825929018479315649786071460627866843260687028275044384372015440842203394559188949080710482021705072492499581779688051148523635451012915605648897945629353267873386376030647894230561742348569516766001188045043297216347634965243249171648155649816564664157514048007495995687328845757161049178325388270647374703261774532110395091060012801566428258356720853935073183527543982248055350237294443425144923670599706201306361824379188720338211908852503330867101942596426528314198267367054343132047551110169060058978908103043550643671420739613017699103033822029998245357794088983669590771453720074757624195570326799822895612234935859635501382585829193799552674602057328543793559230576219925689169527953243927628230096257248516247993997460313724966784628641890731483241522935259760039947627168252821614637746835161964239962418621391658570731194851903920270670496684866118908537215073076669458516461340195938781380341303879810958396665996095946954865950733884006678107273039205499041446105734880339799997072357878970179569694493735611286407701175279488997956858279372468377239823840943990258390851769604420156732563687949299719110803599672443659505369147606306550452413574065374191151601368555311324519672150888206764527912967150308885301128318457584896948355961493054440451499216290090528067694866699863489479017423763856857799510432587161525838869849466156433271257921707170367522817698180055473582438215204435681070133434945823403103336421019885115054130213098084173410658040398879548522571460988700516410786577213552716936512135320090193009974566574086938659867760085945312026242043831395803546097262852447577779483436681030614013931750757741914801266765114554758996744110384673433142385690451646703717888888694186675737477353794981524632112109798323346090716890693965172882771217672488074954806223595762049925579638570606006631136721507236871159331396794814562351848527443995477692617549265584881822555048452284179743020197492445221200067298910117499938420868847617056877430370813023015697972947828186383681913720899196498138534349644685575749022115513265375338305243033710590920953696587001355589395793985153762944525968294336138639484128480963253170581808990713785286591869991780141906914393372893204754580747531632486424173002186378306724684272027852170685820219881538658050994379095770053000909729275235397521535696946133229692337443234560244727982599970782108852351441059903390686415076876756659374280336250942308573930778800074384911185262889802345674238668222803321953012547121693118417601298254926331894997672961538737481538633684326272941829550026198410875346123422180012597989313501017918930696991384453294459827668134500284723065921917614480937741749781383662644866962870263325600656751185992497409020978522884013882861831924779573116058113826282175545018107927927942933178490777144349995387586499242697034210596413698153312903337999513302805579015565186022093946859291815560060456213401569227679130480972548537434201329192680408391246505845685524880437449699792593215244047404947021558142053208755012495816299357944948063055217615625242526930455142565167885887097558492465697151883022596903579782933499310897393566081528151628402241007599398226952598791532448955769892549533158502963812138312972395799830859497026087025089377969234751853880013200864764649823322818717737944341207372571230917110569389784718805693688812110653873462767022878898405583411213569743564298140326065161083388618460409071984113455892853286833302430990932832955079918964708318547758648278262326721296659095393091866557404292221289524576640650797231752578181568270161078229741812832972985192164138313597960836763071076393630115566799410356095168044679365764192509120052710241751804325852399900063099566180722707257256673658095583305161529337731864414253175771515226138090895793523914131589698032608806990448311857205665573394916793074987538723263749540361224220292122146587014528054133821723038483784412135142650209217565763891963898160830318797748406385912722929374802108965151241810346386979196294365044117440744594190772780144727082005180796502452813332621266036143315084421929369573165586238148294771891632790691625683611109501704749869833507161656970349398814379870394233974268280253585591322716211879295760453926645804489377559494371939034063438559051785670840608469941445439742039140600690894578762355886161413074999529218449933387926178737062064886976785177398636159928177328643648371156660421430462153433797664566122028961108444098364459415673641273854017224352438923801924022752425427931601029121566373351331090577273720661909694358946824246585996826992236194880998384792425145737596356466069601912405090280302251786334733937828052609252951738357924539478371053107392066593445466289610614810946141804071979005996063900174299588332406592892023682632788202894301795616867801339296372262023600181503373330760589583617074847531335097574515091384852885209945533398781577079623226600554407111391571320564053697141821295530760512798014006320099791867915384248300049557129079212025614877894369834231560447782651407510916712192058891570184219832201921665027351959271760222151339514156794599016865754691772094103618939152633868822637129243054144972910639795682215793671840691643720879753765301088424991785149824907238652274613803399821666305294272299414875065256590555537798180904661488224351072808815933944939237636820764889253267503887399096621231894016256213659514610599464919897890166170484171137791866997929263709747672419982266709228456315678987742483566513006707141007212294912088687047709049749296671099633025339509145936176125977052999093611867817082514088664841890159305180727705042529182680366039798178581004451572028125016674020461939419230622791891957345311485857423909246342219819589444336814123592593760116917425192636041383753434643767372793832944493473710515237277825210231406385156631558857901354889454340182108291385655683166057829228262270404686243392322644674849650150595147700740561005220384482143397696406111606978323946340073319973235752286282547405273007956841161435025652234344920468354595957714615008440488728876815837125146785513885826658610928891758517691520568207321127052833363434320662916948802699434974443878030929390974414799246305000769410877353033016137843888523251300265741498349175950809803325294378553007272398801397702780387314113091205076556715477345295570225358169886144557446323924455903977148676337428402791850740371907021929808841699601264623101815612921392487955499313832646908683109644498501486154380689367895949486396234409349992774918112667556526713946446974459935070606872611558255325098188996144752909200131737029114036296829499291903098110710765043106748084257746191557089939075476810831308089823314635123721779725562495709391571596019997297930413005318940278140443209548829641917948558478970549403646085831932034121485330750832879429122542650107376130415609723971339442824485434008603000564338427591203892552877745925849121918690853584333479204232856771040851511991627704266121752901365574001319569203869674955190146452986846170947454190677810664573364392776176022157836798965550624889758719778130123407087459713928962347865386888109279078324188783989038038285296979784752182447673780040536829659660711540995441867588459374703683814460530032376356948765626013306362628390067634372600368436831161448984261797287498460728922321021887833784576456593608529451878260643414929701842377790660414887559912706538875018647372216985915503375501854741087669443766780378186281127789294472678400522819427121435771621558890641349109417539300915939744144103035837829294553039266317033747603895844525391389984404525103924777184319837262167983124865719736164231166397827311378053506024802446040385655222632356637504918149563990463342681160622748296502389806477571700488606727520337602144080134363829653243349620343963221563780901659634273210252174086230332259941838530944739147429166666478074872870448786857725021183529438796742144103573379723631051313889796407745002090884366247974324592018935581210289262149243514963033466935374349155910030501255570731313983850561913596584427084916373537203079161574317734302103234320063405243269922932317083215271250342594631263668948641988854017139463761841558685990457490037151469959496293586837549558149843070889107992962055632261517491287803464232520753053711605434877701715103846512121256484869546163974618918945582897575720335391610362491631778222307749112618484328311964272842987434532237005243758607285845953852440799249045090329779975141630487129968300223438251106105360469515310169593780857193236986250935140138453026272751217535484050369069069753009934522043167014300665891172455118251348588302449065834127285483622257918869375699421584152322508124146029364671070146245691954701036865819125210972212380473743822378245405395345267222997435499133961611319716243416395602129128614788309512246263086200132758205406934310080069463756362557153871161206003608605463812972362379112542702081987479744840477425702582866794393505354219755979885264152135428690417752549556635605830073087901214817452745195515541960208010962463124042315437497657451310961435472249290546032828572930021170708033101778385669014441574954447597122943475009451620550244786516906182071606953195258105507029624964682514926857401008102616987090030036418486824455633793157668376638405461708627694200750922196190625480684440053948222904697294177326880792156093754443246618126782302178279120467058018951650388241174253857321214154356360658311323218939475545348467710709925856015273020679438620077399121524029954654758969158053973466615287012719349927075757307451631749290015383437916360093807850230582869415940416359054248585964488600259741698834336133727321178681299794460791853909393579502458417452767644569871423745649748915506653722584839392116130840573157317730860549811097477001392832923046072714717601380802544418837190909234615851777660517420124883333090696015717712232314485422399114121761936767762312051508339203101177844387824090684800315028152744929487293602237896648131026433497234339593708346319820467637612703023968130050886476255338788313374326599816681004253685119812074387707884509492407258938171745737334953564606813596451606150868254040920733861768701955657680559969792666691377629666740675076931211078418567264712761548271361118855242527845281262420038408795475584614273594002142999820526893226276818704637779402781761584148438931538013837663823700966731673614725766663608511552614910944155554357079106622913162045949107387450570047370738587007139184896889369346258897498147565663432499964085589485297381825128696954942513952160126900716656914584621306729359562017214791899091580839599372223153576717915651509858239006882898523262480846071340415874460653220734928311174414444096895755793758308066037337816545664458409379295804019322272930530105259857459650065174252271190335564365494214144305091413937982106972508874608574289329098973940509547056827873735213964952717083195766907160668454515535292220715261044787849476843007647153712224952434206685293150572783455165124517201830119162411107788826557212571154387288082089871939629694251838211303149466150999943935964810796984595987992857887507612815922190442520131208408135630393232764638260918536069429712138225887875719188787050803067192015802756736090510689419272260641414026063663595873446019073981498843987346542987202513401529607984870283899514147573603724360966558163227765251079387862641823766515849274514046821022649910363241143443207656037603141048579530896793399915579949888722585942522118671794351594524282857751375215581740148623957021153205341156403034227671678717266352744387535544797607617143880383218503674991875287424430462346348353636573892394962679395761465907211576563302022569300244514089869121148469117002699297186492868163167752604605774603714914316122800557828000741799973219427184452478945987985620088290368601515553694203936000387250208374602896830203069710905608277664830539255437378676196092794065842076827133474044519875532336435872903225713609830416087645545999553845979857443914077550320675691108964284599580528987899566177522236539217510469511739513386910717028818272522150581297859000087854898959015053372639029040565877527904154557094778608394225675560549247624270002509239863575270805807838112023130520531710703015540876116123471684215417237543642612453582184899128907989547913044315166608154926093821033957085231758909655798802570878500739520184714573286815636839395316482029078739986200126279340004252193296731627707316304858356853843122883948214352976289596327682722500397413675905210954659988733055614222052637026466249428428244339092107133237650544099165694974817789226549659566982792272619937256968855051244504835269998359854274095260233668531965308371198778698601476631478756833130621785400694870580293693746144800208881313295406750773005470501933884190413191000401583377712620828542190190887013199636726803925234494584507567214304069497503149432848950764012990204258105385904740815281974406234559616208073676886573584075337685107533191277045124689974264810248757040523033813364166537006360683392810866256797391618156550407416713979038383948768269437807429256804868538940684137998622926091232246591068221509324906258531893074902386727265113476709889281232004916220294812306238639102516196956765445776760912001500728616327400016202858548858028356107812213507467746652363439899083859228299394203357547999554161758222721877805183546098106182205720139451371404067039873346057049811417291137535940451756392812899437703207262869989038434009733060024220953152594496695947782415189437277350416349331657737820518045874958479001297484917020817637858350803977179837577725869258318272198522683930202321681635563347328468603802874420571464114375096025433929837028049281766827969472654025873946114453517853095464249577218579575690902702701182243257743009948046000512693290836847571117775766394291616714106122214476763224396106407124851628098219208247988089727947265045487879814525551398564054533338570097442914018457068614561727176657674733377919478974642726658711066411495122612730413799535713950246561880855409726813700284365113851759230576571197957943076229092432928553960137798531201027257483216101030671504820660791930107726630313164932819350614519199075150129511264623855316796182519905984156173236362903885357261727646383409967158121257588138763554637360849818270833666192550167664993846985328517746022889964214650678120291219270867716105864153539254762394876506532465939787855022626018218078054092991958515952436161527846858795093851861042961218916530785764145101988429188793861753630643957403564825803979282997245455647566112467464498505545580947047778679705905200411066071991485233940639096571580019436637961240430971296809350281522051032541542251718370279602563881630331999886696308267068252873545723991132335927115835641601047579390296693896054566673622672303232552598568754157890940066526252624189842481628746152437151247718001517861620185379655843405116258272768239440185388433778872128644998864680083694590424392125643537819120679543478927797089980940683391207488561274123178949490659228452799559662661533984615934237739520223922593928564580603358623334164982680179552440015453394570635930514728008529401715372021424581971418085628907127091950670797687067669297701066099205693958181821557856399929134653668192813087239656434706087635314803457713595921325691187810796660505616966619562402804473185810262355538836547065620818429487443990288997228545711430120756238163196364869410991336196078875255862703088049743149194194127268072888409295588825156842525954202282913624690259217100188385324428753557673156536405197746927592844775569319091242016904852887443596030356798795191231084922927251351707845891107658022561379431695056876111450391498324291930519210901501029135706267719419741443781299010098356554170876048663947676929197404884938645631274757345222066120417451437151993519342351540206665805631519052133545334218382800406513330593987560185684501182620979773398225018809672433305321844969215944022837315411289959591149821689866138193617469350536341023964263865770159083528377338279706787407304715439525954374219201085043906200842112911770638162710896944190538119056364646749350553639876409174912597895263726266420632054421642050841156364578269685380925725316357675816310181212729538532288307662115902751201263402386475402481998893219374587970776204088093717169634117333178350654340388253863347741168198056090683827453967245183077447463700404020561352810091029236603100309569609072827716076997212192568287140720243348747824161131060193937143048438070577963780319171073595760555530933616746098379029847696088245705833835934866395461521762211494869081315280407277035895649139087192666329684975619505980178921583365090620599550923643535240538541007138254287439068661501713681825045268118348651847722700734745708042634019098625766960348468160136570544625985401181519263950506508160335167229091731997367827633547166199241911588496491028051666167853403721209901965315332774258170895906194351051728615943027129886621785368835647774016754632388496209176549242203403956484337716226219129827693789943299805625128752701985432745987706769538601241136078476299423312401696424346844981537710619821957519570722136868367875488575940472479607598521298006288600036787633576187010745137311768145174048388188213290428442238954723879849711866547595915211316436355300303563758107580029028444808386983759184062878698074837256536507149581885938309268904863585513059655880169735754244878085398373365475300175775632192078230625545179596062871936443551478086922252150299171140924034675364223208689598339712152810429169542206627329930997808987269695220083243556994912635567498958408491228312786701132552927715993069812878938334935165554160738503493779772463037204327589680763879206689712320619315623908324808300403467623095632950019848690390390788137522424713960932136678580477467006163685311755674176974289887228533073124081947613430650379423640685996774536783265783045038421077541570951136601587283591024139585876683456650211761081651854860675227130967099935931790181896650346288998078895604285225122127629404484039160369997785202006277134307538547731370314529169233951994918000548163983426669607883132316797618172297218837834186416480614193348889744056625519772706136285379075074550998686203680007682308740640351599063723276791870485877636767364056642768295432435555371162077045990168654996707615451689285963253931464332693603821964666695224927371983124833063314207189969953940902416665413729487711792303788882683502312308320481378997615170341095087336040994644874183338049455837366272488674964165959790034789286345560687269139447268317083445945177886550296998768982999422963462444544856241732707299927187316122369606016734527414948093034114590610221613375863848520401776236485112096376471657554475830929574733073325521935423748678831540653425539143860550309358789242644892491816060020616846031476320226577268053015582282303813504893442855867307884199247969824242696423300809345618358583158015611519367406018499310964886178745501289781666995954650918733462754552446920532627821809736385111094117053237334307576957887214968168670845492944006025353929029394334143848013292098284295363980176268178812838948520853593057433254262518557870715894219248459729658357522744512001472570477422774721671987790235065557125351009737803716376208035824081991657651973139113718980311941811097889320500397541233089128445533993727181610524275588669087554547206905063490721772351744045176337178683651623476750072469164409354323371401355719874202547614198523248649509630167324972228822716585249743067053601963377373798019091022179115623634727418813453212678868949376832510424738288148786549751954318692136575024914580980219685117592014535027220437894055200470855252659274907594686757141129031891172148015877002919779358572777438791268525261998515738512020102403762823220607644782570081120613940057184475523630294910918452168712188360654769379328223067310612510519201214382231121873070875917892950730786950363907126757714690795497305893184378357905290322530822931059441681161795084607028556294980695243606739473326476670953305556311866457720753923812873478141541907096184269747380508577313084448467217646536234578353858335711765013295382086291760032306055215170749224078455721695911376922456550778607886285088367313175375685031722194214845615805812225819426960638103888947798595202209916914852243361521958099554084182717739141604145638170283586882594411108610145896413729110467159298468814997126628102232531891764753633993617567239443160761374776873697365352199309860643520933244698796964241159763606454878908945085847147204991438611123851338399556830635990981117429205461114720025358689876085070570413674704030932388560010521811574011396711117418468421170183510163180500229733019898726930439182136178355344573134049969368368798291795289462806041421175753562187099366824721900833051358714622797140239058202485077297824765339341416652197246619603458778284617233771697051482668853896720734236131912543722718599554413617933986223985066050693880595628139611292007704122759829063219161644985160314766731865212484038348932172142462044874271006972015867862158684780746746488212599724241053730395978087499731747158843174692806632483679860454645528543448297056705205393767158060746268187348054126881302782223644169417668891571550298123519316930534846952114133264494753608679279467521341027430797247654224677241409073055239048746553522733420996092056204948833994641306567874232856771978382659014069535453246108194295479724361495247077995850015276263683433644875654540039886066581784398084536729699686656645377738965788754257896458715570030370758435521864646635532401242906305399372481569349222412517145780446705669279580492894470465744880417780306673843374983895462888770518860277966575013015932398611885284746069805853214799826522201274952320548893929712429931354565522568918893592238026577150475888788536354649711096134091545971132785738906982427650885435261500799346860134631795232607378533681660450573986489763864705200861431185962853682669103085052700391372349771934793327539958073351184245263682461288558572435714943895889774475451769725378601185912983795133531677902926439629266163635399895746216078707671778835653507601156427358549047548015275484123979927288256217187051235435622334356315045554243707761317783248073052346398404228893586375628125322433064400051988641259076755832792736971239957232242451907400713782527699849613392001962908511952751472795545416018243224052752595507915800159125133247722870019021671648071344156810574424315581796381560381626688447604817539698878657891724239074393724109468534245408682304697132577580631832620239967591986455188964362789116514309590205271883645582344679350932009479111486781452305992356412155673523924476155854739558913417380388415927115179111903965429982145554534455727864360285134656990698649676807427181271605955667397026754613093804799869687814251771855768758450136541458482447176488021216372829819725253334898764864700049820781632515852054447083116447374104885201572612258826412264396909726486395356841783989411461728292778187128614974507722351896052349748614178891381383959399847786356217344915675935488293395796828034508399502901010531672187621023866634684384063323458491679077028963913941919286065941235330106847351751720060210941564456945822681659240250340690982749913613485805184394890193431691635465647858462225017331052111601012537698388446466232351834994288158075293379514880466996861205414436503040635750393262457917078139681320825193952203302122802423113037414228717487070771542082764345050242955101953358948057092110568191595721661649630976417177935113751878167079569215593315858961138652639732479583870527041343857138832148174660438883787327899454132602250156661407624428066589866849124693500153803588047964246642982754685355579312165889395269976423913487708564289876751382090743254761214780444435815136359677274262263963180005677251385623711492670169614805819107771714252185158346069985349181621831627160938947381190295818635955433306818637249851108310413572922471700381128658884796694789455553130426457344870227737915526082997255186647194402888010806915883968317665428630900683877085387649376790013284501539735664430401900776569374893454452332740807519179577179845567341933627625989624928544474064729731985098952707965245395458148366875175766649022318923779279365613678700075685568236835788867737761175284810293201557977223459974895746146669030328117780001662800466939053459393440591916228287181407634124841280939595046100971394259923788570739145526999605442963760407235630799435661035262647906396607495854433469595955893022443929365879315244380085926416381304917998401032464091484503162381549142246741852200952403126828391858043063542360115109489621450191320590059393814667618041975166425874664858393162653686608386593414139065046508808932596157081785448856174412841991180957194695638006074831496077133728615674816637548604369657291420744155402909969401395276383750504828545817502100296092047754469068183530591751759547160664826029991511178462977771151449002129383197537885971375224440290083966442794380481250544489301385188309201184630353170010005673151468036326523188056277816172278594508375071275265660473430657796683733613229397408190267612586338439756844814848664870984568951202882316232596477073419484180521839226899871270541425024811881019704919363191875353273453295081115306351388994858809859481544833137045362091875195268820332595255577448796237146156250634902193786343613920529374130117406323734338860449023239759048656720456858000573822495194059928689878672133156679255742708697436407421013256337010290810345352428760935850380688041570116363460635402392141055526116399499990073773456838945009157747559133522077602071360130781276688605594284744808371167945332954406499347113746995068574325492522268820313046369202115168906754684997773839741471489094226569638128164838771294388650401421250031560191325088236269923680781610990183513579971753857697353137060673232213558514773263025921657316960503481989907614786583452603442208900316091751950491862646076494665552872683780579954010525669729705132397071086021319934033159396912871263899616552330574535818147849343427115453618666667093169287453417110262109048313337778707631336975704550553389437762529408472192707762777303466403482172442476900255473790452865865660590469147605532170837017280391402999660672212358504216277486448830566345346526029653500794771452921310394254924509016980950823360986575658690943804039090366024964426712748478835561033974735786691967181125987788305894589863384191673727928257513563770096970678271574188693284152908601749217423783346570422447912499220365893867446054641818884392958254821006097990472966596774512318154668456314770533853236721723174111833747087775635206580823519017601673174356354176452982511606081468042330890574937528344844850887578742855059056454491553552470314956275335222063119461684169983793422162643163164615023050857325715102997340672563057181493455956940710511186996435067572438192928918267638616325592055747592084464349941242852878818439415983203634904335091101937920086544088054699544229519247809893958534514994488483649485361218955515291466860557993558311818548675147932133208462043788463718235580868105165501512897028277463865985959176995432321129010466049971891456306117665718561214076651579456803614660189427895910086548467912416425390814771041618858958324142820376035885185750722297485186122192610314186695845820911730201589878237298137787868060465756761382416604549678270107703783330282161574539765555998697011902025015795039353597123105079409249249470270033729498740128646711459948577389428419315816593828082472659096513852153613187914486150463529766072865902191020579973320700567138954706275946603750009342147199843466065311149832063587547352308458243183841988058586517764691522210761724082822023898388727825242725544898160595762662200308767525913801930856898271330304107189317858823865590878650371447979146974621396421161756323805881425811653709381690778721915699723487969110625249999549651524332554653351655906084683403250167005810172028471916143885214743500618175527725581787536879776757938661020245166798169725010797129116062586762815240030054464751997626779963483835513356683126611207949414550227253752573074389306741565954366964320564336381287255622125167999703033294217009841925194004255065935323310138972317581055574451356482803652480589894234777196652129362763038288560871999916202997741112656369941236508974481031852405508314029912892749608365299849743141400838195335929069473401141462525147985631534136689477137665365255598954259402962653479005008954094372641737451332803659619948431470563681842149054636909749234136172648311193396709810504053408409877494736148708062101069356347117547685668100343206111902171529648493885254252378565331538131450136880816623696245605992929053808827711634880119952480772889679423539979780214718538346805469140279547218625027685372467496619827377476107212780098755382598292577132719443862687492371768332571965138029318792528611105674192306025088659014937834481903667680540515300382624867531454203439804325749637281493071562321907566995758865606683361193289702933399397478648398575318435564539063436147867428526246644184788974474445259790075325141740896886175971382835259625827944960309359723026747908744894107541966840327766009186874913265074862180646800953817344947799614062421034722646122093994373350012952487761467899754768413106714779794738213147689683321226810533192587295570890551500933671367081409438692785573076358125303697633316746338428100705162433481222693634456846054537823120373672900876921721312460363780241474705617415913560643609426207370482695693597944669045991368541916718879312669172102640922381318532069007294966880647457391082352637601701129881538839359509948338672735514480054265066771719837459212165937783483120477452550227017808667328199160821873519900085415363239100638167653312472047615025178168346522981993538858701122774078798234857361158658950532819742345298309703388284141930742793687228073803708858605637084600883684665797819563084668977604759227905368823162505125386079386425427039117430647791484908751804588085960380437342820313852766644959369411415593513493666846108009720943222926291168132377412942216801500437793800244701198018088744525843934036896453467636401947379166938308809226592261403077177690460550850690581646279256497158382422785535368495692239610008018015863432410334869945693923598930820132283436745340290027023852131799090203214592464464451101830285726183301780812902478849536919342878950276247573295514344698083728849589238123801725105774022993904975360788830442542974147047305239707058292947563975817933675054869274150482049955372476791928569526677950448636575848590481828674458249161474086709681395540143428482609936703561355429339882670144885023041414488957581918269438409505283736823984113771100119073267240766608772484886438060050761445419739555291788919805285488297147373708721454645537667852289571688334505671547535674784408365945598761821903602635696382842738881303340634264748417270148143564483027679979953443803766434189560811755293777483861015289266848567439710472830098840623637605088080785277970001322301692263963814083691295173754120446185955944950501030601050289738421721819756817580725130651322706467656340603488060333114317812285741573398033060278699729164279025553459397371064369233788711309140430607480745672408086514202054390329344002604507903448872429563340500234435542134951914200017501126696971661884861799345751785181813619064805904256920717435804904533520749551643820449209388297918119025666391811302552224019906885798285874632671844064222743753734748457381725868939363449801846396597225881471793913248749405539378873093073398243430463454725353775154608442694762717111801074093984311216068132126586462123534620045546759787594780484629473864906618478952896596341937075882984174552468790221457161821432779366275549745943300221729781996312251175285900373353074576144335888170791114715914428331800074514820695011415249697151606664358227408694719356255258454275267188493634820492508950386755739127444838379030778221625141806347034687994865885823608389159909608395130024434820297774238647766384879014922632597991026195293614079901096027198375141815750857429523151652898187303726224291188076303326929485141951927990568652737326916522917958638189876664562991146326705525965435323195729299768215357093133594020050873976268258966289219837071281191959224721146308372534465513549506760331964330939630636831308553397408861748923419464844629526319771183888289229665457924237492492256967563819544516037275258040897723509859337249667094121474348038019892665152396681210598070148726595577905383938939702258879782236621602971623290466298924122693022844564813744940159607803954367375591169047244929689253093861751974885260441331864068718469614585557811324628941986524933189048234865235300873031567553421734968322512802971292861076280943760313691669205797713175962067838999510359042011873379966631019908852786271940636838461100152258488224525155272242311932958742803156000907941690288614307222569800642053085835828736987027650926421016951889590501620077224094069425448059831628482909606094229381439881866529726436670863054926552834054868943953642012386707587931787332154664541423407994182461981160140875162578357809866823404522241520574060650402495913066455051381115222495563188570747434835452452288768892776519770289877010657256091973525511945260934886066517866260826112451980099970400051588160585687067326312742954454260114151019492778079301893400220074975481987159163379623766574164255060467338062311805795301669727302026738638292373580913072333862734734753800319768361803638236925956596826702318888510934527109585301401520488463092583495589680202008583468782921070189868775009961766517863641221434883178139869329894748813736383454935842511469035836596692934039500176039836924768915486178566161027266981983711431292678081301554852873659042350999511637940372481271328167595753666409776337910240695274101551529993554425871653258422285623162173204295598228372020364545945204740663328661177024283541712842064714981798597873110456030644362159399034164799800445863701405383622335375989735386505565844161983669509241440217786679376997244002976094964140681633522991746187451760403756011538600892216801939453397048892031966135835399005393509446623972412528341359306191691487940808399669602468746182563842548604475522878643157792182908689398520912892191309517427715170412055822847799524530851980599856898345737233679500454207127795418978108043383201184999943894512019312385093178116344795470343989459612245960023444734364842942358313793999509603580057618136165374193137969577327162374742139141341467517427384015670198981163541688091355780859513910372851625540024054939574536008280666030924290213956545414362384792415547890271628650419451209048529371114776070564454879649698326363887690844552715174704029147555479950907259892928419420232861225991192579378940744943167186730874837205835632167785409525978807433879912385778587552226282893949916728785065723116575685405053839191204316403293596327148731303651564238191781927725714892081246801502502291929387735607222971750869928901567844066738994844687642577977503061165966802374960729665716126663986271085892371841280141373275916334219834053161539182537018082985356591857809540981424544579020542516322179418963105760099728494257547892204212774002887984503194837638001381939899716149420025888533473780909235786013201559964326740490517011785052377360059992089918274096631684789234731014106111210491428732767125444756211170145055622100778571235323783356197546121182910507581466056617820013085692504886337739616529719348101200525123095463350182691551713182647069281863049943635396666643828382173169684539896499810559069577667515200777932529482384419679017820079604186070642355074479694544727455334443633151535124461519416753897560386487804370741865098439026075453407767610615588057385660551376809408102397717578890005142301485110386733068800755255142045095921270195515551150381621532135677988779732756010056752986178404227224865307301826334993706429299991624301486792334598539988140515419052989788691174733198101568275659651960430191452654406871532664043993324081082187645014640640151189521226681186138781749029630278980439875044572938667016072404704346211241008316131117578168735626145098759698889074085781948583430429601729774745907736295155163759600825484192464462763173928174286366460989851566158833878253915707036540081915368476617339876336269722129721428238451283358201087481395864882709642714284481709142158808458011178616070901162048285457437960015851854794348879849620300356414709950174880186764959058842859190408550391338726465558827493326971234263366680048929992913271723010983606664560749319482020314149820006931919057103108839071069687661040018655922386051190175270547363685407348894393501708260551860800788294100518607438617072033718942702595680897498182981111918693404004084005211140473267962563070992353217044175790075206823022424304756605278373547372007786226885097748823768790182407129364277860754038705030042931750411070315001197441100727308188765729826581024805467432702411539705118684005610627395336936699156391450309596673414283676985804173205466003259780904556788427206849998179875118598408068992553411046114813390110439149593816058596249356213046144474375604780099201779544858933732849129718433796087073333036819213917520702371214067248085409522761322297185309374199854336924509379526669485767561376885807909989444737440687183495642917541089885706587278508501357882109297591362577979382419894566570052834626617012911493164220555887153008665740889491179875626277353432188093243307562737694224297971556516950799544116634571014632061678605361712903722027064815276974136821381825128458997112244778162704828306424478691166614032968075042970631673903649928480834667053780928733017663793451073549594297960124216682970195379326873625104046885517730267759189280615739344776073791262366275822252302699117813301551919954479595704898973734102716139991663493285971214555897130817000940320496640770975739491539356916106538051741764422811982304347741268729663323157301483541904218461134212019185609571596176111987465688092427458024366525328676621872218352981179894995677031941107129981997260219694275859691302708387530820029361265814199755727757555841185964817870593477733404319638808889132037823370264439430257865705672531598103790044559273332199219002022941143451879720809961478933883538301232612525460225464979923707247942669439076534122295135593346405669027508541622987278837212015066855866707742338892652133780261597793373794054558047221705263596510690386405368372602036131761940411341908161679221506918834750915621975318929832216588969322629868308165441553431279717242092605014586042100364308999544456023357433851937377819120328567105932281302107509763301535293750317113051857865913034225637568054743388927268671302978217438175430146396082068928829458440569926211798934412804151866428275630504205354676348155171432359319461750339210930515217644526426125349562510500955452056730572751830066086983633730620970010191888296139640814714822563788059444841524197464610909806702734347164060828761638611328400319262425201465546916929022730502583792820324538927609238651146493986418784755610102264051246374737996406982862458201866987389013903530177379589986072526554589493466810427839104884299831788882103777040577657267725284450570952991687001437208171092762348206012338956816925385654552790910245353319657697137651207342971478522654275690163886519833401781302348503268995254202984742433682992656146389143727965326150646981863646067305163341005922912296129668169638826590280762605454914717364668371516917094550163331676773800202526550001978905259786368936163849544328574868851086357771989771371950837640530013003464663885259273016938289352754325417491958253470930229966888922558012865445502175333214491552959914388620498137976065745825647553220971693252521486185946516201564282048272328710388808876029564745223588385226394830302234831511134784270532273855256006291260711134733332451558515585334455044679988508934583402132715214349722778234809479501582563154865859312737012817597849802483328908033469757834357623587102838389038175458441197044134841904291544595039636580759122759411809422850226658521797181753463704514258407276982236169884836988737686987655069214397720503800270528924315702756009980971330506361681440783032060511256729166875258631904392095770043079048100868038694806349474134870579769564110931984566361996067168114124271360842845331407763490280553894078546883617363099473668604147196650434536025782203938430565800182479840928509112097731225924559033148985544227156848094287447395504409466195556595806935778958507946241489802904841318556474019786969877688101468348717381335237744864699532056295668702951744340157961564109136105207604387988647783821614940697714282847876920432571554563620810653035011017331894964731407545651769770332614791310031043506058548637449878737714176602317739955610604328314104182083020013747919128583798861823276480470927896152811134863973601681814220367897947594334037297434362638559688180911423632074138300198218234750530895172106835456645404798590525784702125360401811224682020304228348527879939054000710054438109511667971610040253443465956294646767970975390281774468738857710120715939890308617139922518247491396578980986800180245007962968458502268886733203246129665722700482793867288128898906004000821440268129819301469981525182933199394444254890167674165410715860518720554629596638775994822438467980442823436520609791544274157833256146608203345442028994744713202796798259258775923499572488406662694174022430079320831391929048814729997883465414148704279152637851685969667717803878890867143739537743847586830859608781841096670315577797163048362259505758733579358224424076089944643903734746262616322936236780629389388859195239576541097863321479297841658642087764969194406170872013894881404788542950196920315998491420110101652080350287122780915121490436560206470027850943858422399064888605298745335314722739641233332077218152895118710794797605549569540479510403426621974518291749480827467156638698490481844037266651553613349717119938216660214306797917933402660879922038149920126899414461074174427226479681328120105875396228859443867872770613913570175160902026960709444627368980461644120735469864905469379475828894830004249642503584715886534616500991051246615907340878212487811274336516462333790635968001492282460473539970416472749913246995285053366745748860201114017489598885412075561955483393650290622578549541420650231200058417153062319880677281281726571001248414641399894964531128768417761260675115624168376607673838496276020563299026671365922584358670728613581337985447956393536597819773785927758431561934611119494219979477908907477616610342532959187288466929642106361118753813653458053801628242376848350872139782912771598796241951037969804553862727871347987032303054945824016252317659707799002370382665768587904657900407068614524914589707562692889682472557966276056754985234230481635686251682418790030534800254667173933323617603144536567200532821388051383186433451803682483305605566774301330213513263379041306592315649510303795426717916118049170979644510618866009015088256040885144120143899465185278218584434359000290042157152396281016850880805967557552983377957517503387096573868107640521837606375353254263381631203897504421649962277983609158823507109318038965796597653687785550987532356158714078665703791030058064238437502662125894294271360021881685229824069052568866809292665556590715674245088768136379403213785580040277569783949128694763904802893705698596998893274675071795366635671291525161316866309844612846971360801032162850899238948396929799493862598882190286841510850752023769949157548015086710962622259212335285913636935281997096603739970636398363397617209170935363562529835485030133953038341131296075960937138001289482272557595823213174467362056677639766589737873048472173638357568862406999441784390956655174586589894085662282831190499827751466592874364359637792661623454730881090696361075950237719236229139077405883960713660074524152501650247655011729760308987514313081121215015735127837624690866832005211308001597424570487877447652780536946525301581951684640413068925326638335363916490055640954414091091246782458990969136503345488889897783425286990335904601021059358931110575402255671711052525750072257298098590730266892689788978214104223632801890139291478278115052890980088536000371876651390429574046289440672792472922615018184495813527261207279828577857911692058729413477787112669670119156297290300422017471628759587641436889850750812176711629464344459907870477884221774021394232419926353493189113305160893458333941983788292937697566428697142077932538379547851101646891930876224818893827459176084686323056686990956122286836182382565035636324502615779481082923397345641104998990042236212904255070159345537851308168364826892967971988602375971424275691099250328609854327874841051605128127597813070695719369017784735824416988839515654506455909732978865208544922753619014100764079624005140682531069810086365497269611056388649911792194865250174370668333716604787261317219359655527523505225058999572436843999523999454793062342342210132145437133043703817971164249236346667828852287521434025696616884869858419319688001490771201291835379223616683242432435333017706524472610211157591763125734806990143797104702612582471068478851173626227652414004705163046694900393576828410998887640745430793468969536054830428013639255850398740265587672234655863664641524332750887763104562189921797025867216952742789368315096746021302203013405906796385193990915986447104449637857730138126070691739965219105092162038566596106026559334815046270697144504321125614894250523629026958688740234053614420591676913918352894294998361104539190419342449583398777554810636501452406779523503146839611691100714360085127108543415511862201126924900001104503932782065294801442035691023980051099891661301217501035065301238543494307042545843246437876065569527928473082881615247272942694920729060175496578263601019423768686617651400370464060698495502729231647392102003006433423257929618789716458646404902871414122706645170575217963742161676561381355212125115424516733975786027292275338948120854979086354588384024103123596831008860775458340674942678526378347481836586978526860194946182889530406149260112258076180997034435247501386799191279883674535418159097522472962016080272937551741801556665503731405163214444089242579285638939062548541634359135807372324818839860065829258768093035514426219667967976015557718417026571143809615677498425411833706123743475893627705704370970652047354154444722473597121368388220498810916636617606453663989981999087877183457480716418053153821532804062101698092396886519490845334661899034346458899756302393518271153759616166786789637886583416915736007389904088457603073984585470692980202874435786842051984371227312690919355588412274968616135917599953726034677275142974510535067871403099157598667319825441304123626183927248308705395952361475430590767812536487863941564526716359515144927203932707238197475901764648077437476097461770558926574376306875289219342722427177443643146720398980507783463456012660015156289599797351967450820904363488356421651040508250614330573593235304221316459389313696531043937094863881360084398418487677919127478675308674225069241533145155601290753608340148353367337443963350463881109426051321173198716093306020295176262422234946263108799961350975021122724534658860171708266869689637411424240573485086770512269809575702972488722371946271034033353401235880084546354019263285045889171879152375898238486815661119389596783649964353053858367733820805729716289164508052950470075793352533998831915986801412313240103217595808611962306248945790280877627962832807393594499908668012914056177807545722846467894064020938481445638700828039968568146957071268155472098123501950203311575611452419715141045708215766412677191905392854644875309502176882717716908435941497094884290417344970208280184491364036117292543148291510341972584591983129843463994569519266297728509236606955174316172995292530222745099305605631949299510764012990103616055841065690011310009766901732585252508802394126014853664957988914257111481618088081689024205711867611639302723229459448372040545070875575577768112999332208040327372174332112505801762826017016126922280636106241386552933991128665982853899905082188214244192896249236834630250125132471388504300468079526562220690201343608385917376345719496873347424657833508816365867712980782815742610635540440993989182931074180989437803701833377768584273294137448259912579819700674695492873181103479636700017788731778699413243391036346830493235127146836551951129316979986702876872417485890877208224143211418435477211649296253130147772832288165436611225721502515084319299509916739234446446240754671947529664294392376268795299948120394348719501138428729877594214496036417688814428792127069487068786972750266591943280925869615714803187030787746389603057054878282710309002162179023316556568056666171864678019516516769298002928650297773989056401780675638912820968534676830595098796426000449127206094722728222795074874527072730547788875841384853485173918604584244634443767086141840074383527841028296632557123907008917141224711691030270984564052042886390536157591142835405530558340439597860989108964087586838425750332318642945870913842147933940819808286536128806845481023652199600592823114655184218052072681508788027393254856497829045688487325302828609634399766386783114413495210152483613445810343840297699191871075797020443348902129857040959773594840786492780413379361407493201621605018663778031125232712583586968609308437289567984113935538479820049744357988400337708835527334010603070672879421449846169985274588302423129813145056043906486420915065333558703363995026226291513198503959527909827616100357431897230516698740566113183450403356506307856703984774851249412397468086347150320060964644453703607759462737682122890501859116647283351167971048424911639231467208339696684597447815795119904565053412979193528373703586607105597242738758532897538532312834629633763800658162015645540496482731469220397224415210280726905142165620744007255886472628064731319244446798336334354397632267876968605872793125273844375612816806180929882828533766761653974730246871691806496674548486374897170642056648337532875235219550194054183431881527178226729176188071824467922452470299813457583338438802992569979200328840264275584934282600932080640722301804370449866806210346655755265410881046968001441070798076101925671714942021226769198565881698480601185006290201843040309549203487189428066001065298109846639874953784430978345367125828283320831552061876948397914988728419655110922635154935321309399966428602127381271992715885349095548415027834380872759530476043775411881236879293754424453311007338331954245537490402666007584402704594929705189996813583442839814518481195627750458417201985415933484415673606404639338379388010553142892896669122399756509978625888663179605109630703597787575953629191104573310190271181986323988491451495309309001311810194951843547110890923000979633458891204778113940328904648036972589242706396108542143621820241999793440650319363485201689913355360494393113950827025400503775038070936300203800763897393070310766450186981499165740642157359690946119678534200898431532997211141998104339685773858278227331287051806477102715814903765507023210730394584823064474506893435207504462213882141076687412787239427102487936538464471870407196232922595657949273371987349108583198458225155826650298855010637313760486565013827096735277691091994051225373511704894529956228138292864110609157169366942021258463433276506172238077767164501043794620574814050740128449292783295945614616240845193922359226838518339316166965620147598360876737831418257068422974965468590973506510177390846770729941270748164864699065231260945444630794824127774492289138148683352152538656903517657746966363680872199467705519782956214815662847017210364100912454562915756687330521664170211647018528565435056840773331029872178109128808368033143764641203851524066114353196514151627609843276501847639806700289893975518434467084665089362411705878588976581537233436242648010287604430924360271369513937746359623295391839306436115349856905293187225261591273694066546038230738008210947591878182910032525057669482556379578058764647422921544175912186743775966111836192491701119243294842132738066293556372076423477450590473032617285878080300702509278792123314092412546855190114794830959059801833285311177865986919623136836945838780789030868482789574637387387908057698205590883538139809943166461121869500628252324722530709557276744719707463295247848441642872815864754405200837336532044252158323190464260295557941827944214538247822320363007927665719253543446051386763392151318780716026469231549808457091143925664838416539530131934560442294030026328686887357407364965826180644610268709519464301411816002877357674558417695920128084531710330864814439832350449504100078444033383280022350412179973783969060891003214875452047240582944068602856199552901374571830330140285876005895643728398180221596740749311317138642360656816058920776782976445697302337423200877476949571241037139923698919462669851519744485883396961197173559756928241104779062460969693165810545048164217584457408987565972339535574271521187830959945382279756905296718509698605583154418353332790458065425951134015275244739967189660176387536241404066778946180234538547521432514795802785026707238527562268821504133336924454069384066289866573195780480884617770704606142662198732003669230658226932949350136186276649803677322028604717856868621191380850309584756989407796197303959535599214049222150472237686192649253637281742029964086696868866853495561570337418290124597372263517537266376429979346509911929031337692454448546402984701333082324622085453249621284392710144245877502264342865456017043497985068922932838562127915818108411797701814793849044773699238625300228270059733292941574772033573158948719785582680470429699472509440107846792907061068059099140129295717560820442701871372478987212201660683840137212345222677465026351379620344180400789242494539779410849123110182701251033505783698217254376560679579308054297914800955725298926906986097280959202377092003429022360814507840016738715493421719712853295410294816308949199864323580017333960972047415365097127087650801283219740062247099654937769377213177573619124053779244829235681872284823218269751881866539984977382383772981922630164966438095439651619464956439124307193813460361462789779887902721667631387270506611640281540352818692864601894982555909780729329912786397584498457190920032451025549521094499994411735378305732152197822626027348250624848983464133357546611245200607793101314075473654535370593186006345593150756404887886085034234346225813478736070959903368125508177153191956783738373895678101566485740871080150697370322984440009655414748260824486434735116171302620612915902115623973890829764819801770671109702415628527113402641758943105657797914543319113284427532492522831984354460553644929738870374688160817200958007647173292162653755502767441585305754510260126053386104290539161729429264361080184481857148147964782958829468655587078692065054342487518165072578839812237061973811914705029988032629422682880833831356499381685004993674311247329700610856070780135044249368903787146510390670119199802888760572492714103896714890497699992849551064434423305218471628648894652591132040353298224837239631237758458999167679197330203154183160468560487820620819794657244945475463815915758750940068873018010980928706927565300266043743567046785784431433476253585071001435561386581174443367466032596701097716143358980219691637181916945568813707894751086254054420575884929003351772265287899730644576770049334649367804588210766962356062204933792976768854958332870853084151184265421585590589407812683886760325380101156930132763464264157839990236938108176774375789918391903007454634013052027923677856570988331649681652332410814875101075059733256749416437935438190947287746678265837442759677184969273073222576456831354544800844041141017264690198344500467347792075940676843128494544209908417405667604154911499922606313202662464710438705181886353951756024550310672364949323397197730957181571010848667302845736631297614529973802314646814606307023113372391271860779761205149487623654265837249668360317372512108236608942037706100942553872868770459808849212148192305789796094319953298546967816487504498831576915343166062269931746090032779658552591169873483547912725099644691584366380943446248825670843265875038210625032392222231961446956142140580544949471120582065630567119024396069460672672545666676969924609841635937411206264308659165422006218936173063776200699404183050962618296805741973754213774056392335919103308388751204987607068241070255102162654253770659042999030680896575123192796608796727097147972488923425209389327323888863260291838518738531194566060280651975631099798082759581085893675504186662979407255098395538474695308818580109157331353064507488931294406804419690556568769639320752260649810474729223375444432853594570257766134879135358306075520271174789334806070313968608161657013700589944760877832367067519435160199663441206278964215097781697547749123880408495690668645915156008620889095049696965367915442559674434476534343016501094697586002814481988103886434030664608623364205844381801553502707179117162931535106580457948336747706547727985606652058862954874196432301317798665882471688661221662139971356285890525438598978442694697896702218717059641747930709509286014338034823028921932995658071213471500622762471195166617917064017148993478557503758667460853469035914962158479867111166590680067194677401941504636188576722982691562837657403174409150406571098353822127438328016194022170676075689545916410943882671947356867466581183598992298210017458003306829464731139807831574400605383874068631450985874883215910726860010129468866628933840625457959773022982740513456024828559508185375722797675902169653826880008324628845319664053528190781325460627957496687026955082073449440213738299850053697404694818815107399734552627080530009328940921660044069807826899491157248742337643457542078284639050097746027813800321575617880363629497106054229483955083906599394421186351363351491420584889845987555943563761010786483154526886514140452496543008704697579673971714931891699127963620480514070360416100589890910437782126898356209244780585313455858789674124287811034422943624787876443537680124173565593290316027525029220137666336845160795021209488662067630929919857767941327744365182157298496832160955451786696899300158687014679896668138107908694504352726911441246694302370927934394018553683664797280000515636950970817673528077042214343688270558634084636542127338823226959757217741732959035570781016454789852486964136644836716501042809676608582389867708918091241682947356361142350609483250839003382287749673591514509478041343570243918836124179476499034303408889773727483058895401917232752540179000747225388306754559379448485438902329555483879474016876973194333379981031738155126313110346817838190196498798061517292668282407565067250208071560489209091941242939516988522661653486318702254465365030926281802112211857162075122391998252385540651115175645168679643236320722227048272536668668749190610516672145331032677699852556661256274443013233306040212101110351159890248705335371368940926429742941957246843507948770184192238488672639451480604486463863579078023140301326087940127338503524450389000772919300393368794606709505101126495575048366563755209295938672070020555646496707882255929428042764900113759942402897305894958319000764610448403478299752721850420175592451565399986044310755336788364276161539288382327899013003791195319444495187529922180389301004712085188196209710904668177973156915109590165554774820606561478494419212027129341522224698119883414888892575994167242925457792334754544779949387159284588706831687669539283653822572917452693222692964013176663158865329896968875863687272211842722818360975432104980743449291654632565187007106730327726539873233664372500678261917865679681053190384560624424499531397378722794011534231408392924992677439735030135408651465185366305401670902923409046300565028719401904510286511581422830237743585612475717796343537976847020971859220714835252272436334917861890325946284310914444594597791568298928106988508428340582297324684198575018435782850434121559584833109155902739395256805962133548736265268875028667775170849759973583597531327590679005453463435210349293685409226877400451079052439239206629992960983492559434657946085675551487533510144365298724092115571887955878364820947315943005610548099423974527999847678383799490398096499697820486051017333939041947617027624413409916397948893678506231734621054965872093122385912353662187493265240076742550605430930840863160044600734405085668101940082638557729680157624434930401225864154940066600505783781663563629402668549291531436788815376634020693050154631434574786334263889181236107479878597076794346105133653106477163263378440287745400513430385474983381479101730680053862354302863455085367597191753086999457161825346122261554070933805906798653359264108076931636189450751409065001393200265516104386638529269774798153653069401719312865610815413557000025157255273958375771061433205617574770483137995583730260463812097143784918018225351300301236695780584760317146887302255831555029966191158494744476486909451091413778302635353903580472527885238514128184787144470418440547860791842674698807044742823602266641826144710589576803847654468277899319905424267373764575747813227282021442501791909400716573816141639665195963247142499330498763256543932361615506276864400947352983429610279966559474274025930225480392546054863803263204654728294068498599674634076040219585179412756922655840159806176240139902381886493779386302406660136751019951909112388032274826711011331964949313906419922555422002230848644446896250363688651069527578116721585089765091991104559881758208395345900216603818976595489769912780178835827696992179315019860884026239266954253126660866774837575806686824464072948698705683532144134021586463763284053042027526365709020379320128337344629976301244344603292858629327504899023204645334245240759431045832565234598859483793767732210426954514668557144329525368479861251612563040488082106255410664771291330874857395608491998428836522049102338962909733508071224563328430675506792209539361534052965260620108963960299754417032184512908090607179915687355736744498890419675110335610525342441210810246618722370842941777628864334417998196086620146636585161924388394297923655250204554487947192771658074349232028876775678761376105496013153695854167620179529572522800117562896589481759946870215294285139902009890066254188245274009479803920361036273818594186246258331563031360987838852991943816376401644519131094767909154919236647215039215025179473761509700119428234192298670828523141365232283491763066291734695837526806982691705745934491757472148272715011780179658168635588073967702418948106084048432610787338715723320071644488844748651791852981355150263755529221998870573021594799563450596566475733509016188250947507832528871456460210660374156851938051790496884985038383414619982289712743858485178555254853747190613445014701189291853421922555155521634906001606707792416737456922992295651874774305152249453094098335999901814711411522612070454386541469804112836263227757338948263123787965099188902126020064537141799342120630694195519392611084197169872705821490722244721064116124661669034077721909767354736885650170006830403778302066540933633421181133558710874333941442098905321734095955445744061921487140432951964042094770478703059000681192402665467782505030913078083194341358141698469301375689543192821788415671629758050976564132473371717976994085551102650040160822436260797259801039369317782944209975419877187507081943901997953672841664159928847708286197256820107876299398146122892208647759175066997367646511037707208884636588539533174233036638341883282724973601126753098638577375006731342076514173127352001681696859221347914055837314176104298758472084529867413812425003339225987784541671929515568082830950156348437519740203793845015469417064990910795944993677969199017767840354268084586766857459063002288676662149830405231760097460456566887654659551929312388034796045060433072699292260667540675777315059416087616579971171770057781662969079936048651299024103610845196443961594548505061593514405087597735779249765780853161726351989997103339335207464397371744490598748611534605699497912166998010835565938912264141872676530719605870938861296269855081870056804604546158087192611919848299629787330527821222633796364941743027759834877981784044811937036974892876919786672669945043555675624535319442665726242838066736492048494224604950723553991889354900068120860400438861686237627651044280055409391897462697450966682815530811855628354026198104504140463126900248856914589151018869747573680290941725347046655334041392662601969257747464671594556796227033792581761685471226964977443629734010801540835810894163673629726623091090004993512575012344808516600232275562906867656608215528844007264113738735933270252995228335637730800404324057897830858826747520185854226338693150294612773524132342649578780962848664875026735974857109082480400279146892920406659254273359030216788224357950860608614517461917542116340371287629102469470102548405099554184963764082812553995029247790628925592988770885560401070373742082741350440049635241798857188829936985135541777300188630589778158202113528193722802305539110920805410452928090164621750490065977120006753148425146597936106032987355876638935140095765069491042605749152684749465476838389680365358182345435880301714089649002506211199383865605893891429336570252106890555491188416142797663135206723713378215193960356809405869705400758424399840868212055578456970184341437405665102773484429294798953539159211209218087735002294699874900633638540786796927565546018818034979045996908475267834153670891380184616119634001085682022313768753882890147267742837943744808327434640019852199073634983307925407250768506464495061051297496446234170804110318775196162233885871581589699105917623012395549027366589032314566159582879320626591673482267040852092068764426464404668089027242839037152228187138463741975948922491233709538197899297037790265530951396813600375910620065953224670313244606489831012622405490625142381755885376828491686310560493920800494612628856108870292667292997017156803863148399178904355044455821295964415853177205111743090912321110256162473965750784084381851529731776292428677774300413478593797483003803999730091124582774571776864759435570788347991491413375322487332982427985669233643793567625684367945500824865583579662258882605124684793506030276705904480083400609381338805599827694985757660962821912240660763126163209426143486739139106710419206569743262347361294486114188034304793634500930228838507978754883138132316273882032837576256222335513150529664362725123933992034064098481441093060989383138416527723757272146403181140719706460221523318750279500896297955926658047591200305006739259631621958904657550497900518928016556352590041955274281527415651248818662625614530978416228696029966455342819528519676121764938411020439188887129558845110164791006956441809078998115708529760829451454413427432126607692116790100954868265682213039237528146296924832979302588446732497397859588864815451062346196516606164044507400194381403127728779052507553014375741776177075259731905696468107646491290669286758720586202262353327757878994334017828970505136983577626831807134937032510388242724603047421840334839326743554837114046657081232623768365267066866125962630219989363712073252311221350879925486128868590786790317088281367222375831311053771680174545548778880067723128011033590443926450613413976718444975305514575868631074513476170082944774746599797049450751926180418123579520214495625898818260292613259015923012043194638180553050533816196328529132885232553961170098649103101525066667116653992254486241545208910033304953701295526457309661669748068573432571072979740692974746070236037040844736049232317860281024374353129368165864546802283511481121835534203651365241599068754318704875572696508676799714605459595549190500876842587903057660120427655972921353172239201860767986130575939673683433941255053653599692820609404305702755962928994199227912961597193444639656534941444836734029719706044684085507352772306319669627527117175588773630432818635279019768300720449517469793223100209462468746163901794549345737655882245286275775721445072296774854538467783058114425885331874401671778227307258547688171852298693024367189477242591887117493981736599291862270144281107454362224244168830705481481933207123579243236561019723821064183994363790364615215250981485818360117811574427979346025848577547121125664011704744614985628504277862184432678010265087442986127809138441372817399949364886310401462472850327019217012830154256426589345076771608211213264316820197835950148364883980234738830445661891935021153919688634249544549163646665126710079224300169622407816041996033377993747316410315253779945658055693720942368942026373297431224241947752839316609554110977399370353335221629700453133051600772566016288030750864163341957469314712412739593303441196320403057517962980030480921535380670597173435737311118479129543114275697280968039951638904953683261729338179915077687802066199412052591244904188554582835548242117032716173073878187594426246652962318004313802701532082032015688561934932306724689563699823862894114452385889569847119229034353010620030106038572315721046792102474141121289825618786706272945248588156659244155174278546903627784064946603296601517401213918769913554951641186136411743613973937052098757821859459619203863534006350946678471102138042045866585141128082339345407422496928077301358354676866471496288016029399980019363957636205742647641829235638310896881290250828432856924873705094373683037833101114712673090444357517566133319770021555602328974904413374926856874734394580111394867907834988187929253392744594467978956401381431221465987300832227080217775795090983369711315353702220405300815176523973869897477815701086684484686948861513885521975246224551499921195109177290924498845102379798290784263556828070843056993152232040553575952327885623981892559707241524893792706912672083341826580865106205179502643808751525950406938912449017634015667580562535077407968571298973490763305896883035342191933290637511268472899395901978130328118237901483132619733363971180654601550178179962951629086521892764980015336537968889220206752472079367731363666167504730814023595868568004801321472194632757181022196272854380754867850617248581275869249752453328641590403096264793632099750589122681062649974630929790426774250288962202636436000077180246654940039813186117666544658300272185752032827343728219799700907699973066435439970616895446388581779641459002700791815784907454652792534957239381933233244472139076549273318544102322371136214528385675374352419342961056204844175792800106934659055108290152819161975967159416097660312645810899825772514111620451914915726226237623967456401066727946168598349205724357302592724794899253613567543618759876617629982279792712023643284769120763207717848155140423848029536032728790474158431119999538361587455055403961578146430965730046815676083290916383344698645181282318652026349219768356111232857944936604552338983174116053993277136684359901989225094721179389883135071552731707572673777192842404655859789109452902689418575124453920376164913760558468079185961083960383361380895231260268925653149792842342691328390193250098025587025848026193376781708507495636228565780370102154450885045393274371353425093022109532353317070464992780287085416736979933090216525424910203842853152972365540284780752803473291832134784405064308209387058512097192319357063727280474032235686615872298236386407056463432924534919450905298925241877942010353635972431491839392858808550985772003990142205716901239151012931059743831975844744039455369800417318689428773944909994685491683078273168868847681414320046091194361478146471871817021223209472050902295189051647770600840869584197871596820804131200456104392027321790975776936481767607901207871202869765142440147502629292816845923515057618169129240507543702257477251495712255846658832648531576474356270200437797638139399313397512261336261141829301938065953519166357735356993714740663823161648637491385101022769201334940391289229634348978392903877456942608936392140230706510350064922362567641835710331412600245259882842499524591701144638224424780431079104060809419735735826205687349801782072068220295393789512855437173273015165574245012948988058512383726372918604478742547954405188775380331277652830569723871829775301733630648759645513785511386604379304829474975272138051652268061758572064717286693801037685985294182177323144275155449878305653077418515371883803322611761481489482050604478804733963292397294858239750983885769939690282902306567456785730909175806055629405670193918051388155223766578528378746497101543927305819065178119616324606213099348813512743304794059597587243052150266539685930532880946627256113808907309021044316278426032641369965030835129081736818250988866065382222329160748363778315803837826582040150521002795220074795572678765673975638542290845077461521480295556981682565533106883266145176699187549804762707260392475579662889563015677401891225440397414114059171270697592476279859779461948060259196368049488983862998746472494307385984513499883757836536011988957435169028633140761213189592230064968087511688435642707100031922481300152125382812163246551327930650866681306271258246838397088644214103336258297791582283118784012267167429651160514854033286238356811466397981624114128943262814598350974182105791146131010724661565370195368779062962392077554552591603030805689680018203961684842160163769382746072094420643482241125853140911832729322245425434287583951034236798973716536124883193915598069178936931558804384794655247390780121438759080354126591443833984784048577244697925080398171830562040867100062866772662900462075843068135633331268954255089186431361021912907448173189457935785384262174895450211687573181158218213394215597791267483954672538371109977237032390022399196495035197604766815123294656214481534924598944663738822919054345816529808330618395350955821866043898408497383057730927903329206636900043602659866359757019214184336456230819695170437964534079720547203242230215260672377071356983847283610817153660482415196872248393532673937263130669475387908935247599375129068362781128446605118053758128672279475816343199584022056902609352439703805678645483643839015235386041120927478869648906620327083241978915700046452446141581889226992602223428239761769141968387897288106402522024008863994657893228864084761900708882075578238609245315395956175292524879041342656226188570505380617598504274188127344015306161995521680645172082727282749015965365272636576429571473206739607143324883167575311624635858935033746028101635873584464402347063607205411950958595454127909544368104967949220332755025865081139373900738059966960742213027054662591031326656516510777239178747666616890958437425552595820459755703656670464090921667317628604706561104706162611337887079913911852420489096551484464575614545490246681772654169987335724400584235576304728623907283549307283040801799706961438714843816728982650491037421755896482996585828308571552779468565630537608311497251291385274549735581032304734140542130543766148444873303002731233229742292559492640667399741793831605830400996078604276076342589116108905462565492562244912465693093916030226150546323278930044563885635971847736944892496136146233905258406552148785112002951090788488884951689264002633858188950647831578720028731356675458366892264105741317515952699381551618254015116402162848648485246915593496795290355250225966302627655338096083584003385850126933034921303999924120717570999720061800938656526177868775987998997859151341566206473936830896871382179596859308676575724444009354702697042839322468146333148250068314114073484082780195809107321711747824196957543647176815234803867397932975164048557660839447769199384578540627542252329469805870872305526257081402517782807467282337385427279459098851979486436965683814469089561649310610701727303898959432826848010731345861397117101993689331002607101837963735422690271746592531300536004382611378655847483619508622621818134430817904518134651484659424906541302311834160515132619733642697669204105888075315520090584759133463126419951231753295337540067437498327925283469242187315657979350397542562347949551305319612867459916148928682115095933117509922150042042387660741562109453356753447303284930118338997534629310299093255353830927356446647851452849977396161330504513554460206748752449734759445726115436432022634557706360132723500042936761590979865802949932989020612362580770925804247368635219195798663410623299340626279278300066441813684275965496680983714530350175052093179088397791021297438963053010740897138073149148077546332289787082964507554574576859291551305156210937777803645866645127213963755386068374342309979605955204729152700798022400854374532537303392556311238343811466769102868584896351826464673450704744418525421427442309090928427946441806153943328008457162453292597156922453817523830242560210269379946807175777124685682848585113420615256340764121758961054909037225713256564607354283978764242851753748991392587486408367179545376688582616461880297426175750313362894452007411062408638661011964288225025315155146761716252691849548260067389173679770866479763042560098694054122174784600947870343881649843880435119879769358174365216660264469253490024635955694506132432629305701242788954099835155453427623007774883105626426544582203964311181830465813722531696656886779143355528818066444324850314044909950215105866152448338367024935634906462386932956150334725226880421999792713182023833597251388959058038175280617104649277701650752742589199683558943977691735311684255774827637874062226559129219872686861940549825455085434844420350164641292652843799858267333341304901411207954601935138651521148740129569885995530801406545290038888750055517510779891736572553757806472263129319792303439634871398066025905592698753262091750184255788535319214264106580677194648683761702338562647938193253524235059936669700075382794679501232908237009812558496690897022031133462003566606068876590805176834429612753477321763032056215657810043209928115181183801470726583579743862296399244042213489308058655925157651447335167640245557489929211624195557306938069058966275067826875358483764201638002287584429981667238322180731118577463510099499320845625871941834885692500920066727539618346481165624902628535131498118160316231413812195806617269384616574640525290128287608144626009354582329266659656123500643791440914161667126643566537984485544409329598898788762861546595460513827391012543536260579182813423485235300970652624471633381780160416899127483537843961806171420626697414206981664937978357895064460440307071564601650645389921160647352328214594957801171948534842636074978600683178632446181597933182793274605961505420512530527079474641499368226652002124338944975006256059420291285250475258840466191093951440852725608489913760998690920385630711598621394545805283418031024154858191298805251652034260116112473112860870564860044640842014556309789173593577387411065251346004552140961039304070232156449768914722734498920592347953115914573782405601366699717827155929370422942951778657454016226411311285104072626584109588556744427572083892677167657776019962757014087452724663446605795429325091680018861078695072786522976354238410554888669746019021914131642812194874854638228853887241259478848979935714308408367855202561406500884719011118821164539900533096543338408992514269652844029361977454754637534738963152747723167820510516397356938401513490872029518390158546969304275161959789527855913481318727183162055174803919432383479559991367903926391833601490245774632248765897250539075728231166803285916338421938933868367823996853331899024037619118934327466406337351071513361226693587654127192137545871552889455361266369508462658465726056003256435000661802510340579477006185001152247304176767870839593759879236954252680956165889999203493128777534925957196067599539380565899817941192027716576567632152203600091063641626065777978532886196083718842635321372389766456935467974214459060339011993267533120229249297705123467249574351910763228315066658801526447517899983862799981346682035154602127450969569389646726362700603806595953582045530878605938740588947960757418478395169453955132634686530383079317135298782462387328105233340100581784803644551693518916550702348717870206830628911843976410450972464398374729402889781994116133356118764834002637738156357496451025827733782456689820418380451329438218254597618509767563236645020978365243996857300618747309134534058558961362033713917726621543024223020125368472289794265600884225857057407427568933878896830173912033424673898612251480520136296394875227973397759780226778737548929178725486621567821291643695647101441946521190363558731188464612025876417699814218143975373494924406533359467101744437657549696835634814586028124059335122757486468238475912055991743150537024096965332020985907223600578392087565752291175027348845283205869470618671988039857809964456390807751847851540921408860208510851907746202578098205562879081850432662341727544898455827318970778624625937160647074341101836594459292729564030387157493036313822580486668192737585688805988593364519734636279576756480851806067749785423686803919660960255010172535731202300598134131655264158178591798370421440255814872901786609311626666194085501285113058654920797262336959762297241437063214710055063757793381096312597272633843926646122280853862146731299728308253375323832115235963967423061609028781149047813665200181632131544955071460727717992425795208627882578496472189316233813888786197687688282588624568061519579857257595583432338266950891927694943489686312681249124572041557149539090748436583895412164789682662353788359487824714397404365401745072152850804585927569497604002976735893011107379350020724242723444552637080185899517685821226222456991374095908313738892057242652459137711832156045757188438293281441925217410028814967058263165159188589793559978955996057995638102682034559992157619597236804734623450745095429955204395950025832635859391591880087566477643855306185362990288683353099893812503564887964433540027547055058569992400809478398084665814023654659979054356376129631629901187601056008644640900153596361848682230201771821907201483303053406321082389368082023701512170855082653538254184038352320845900112856907170638146556744580641410770535912751041329838571353329235670437765888590328596358755239832972368492387900788523836719559925384490963162731415996113608091115780081920685681184661390285236593165065945405602684739085153906021054081608566191600732730705556544813062050269995459210157826588238047162968322089649156317087026668085675531671181744261855287142395895649070948400883962253879609754883724316950300631150350748083347100027502007693423255688331665918066209354239059764819900527627694862777082268803809149461597486714200189362560275077405311804524237064293097992344824555147921752865005175056031442206112490194463893981099682686883169789896210081266203823327758629521093222902605721173665119523229433043736325222578302520320559800819455368701994311431261233525633127044472757892546417653708002810621032139466203359290504981015780269819125206051574323718528745960871506664397438253396086711325332311898381424741472548500755923063097117729238781657670466726871938124380057972869702509571030793370448471568023792086220933997313465575345413724029898242296219233477380301536395110222732981397330544010027923959521801346348455442703201872621966776287193444763785604808948548367241468416351715143212691283631333320339030153688728540198774267498587722724715490329014328424878882092840821722173320068282389982859199650923332790650134694987301281597626114031895999775424345749573697205515574862539976405868879652594530575098353483154445069670152949685180216020849566126391527314101158795291279895982551795651821136229166553213741096617683517859347033017389464708291047179171390990438148160535029321793979888723634553414165852646288748094956014491773282826493957136408339873961586166519000938154763806309403456299217978730922712323218733267103970843007047306448357120455488029837589979788292478943697269496832401900636443676620928673381315579225361870636569262397237840209186014991071694027702791377138079440714162516160001365500437354805468883795987001693539994160760845837237356122722682040504035128698659269782666579827403942687789878249700361713345942898289898313010389300513528706158510399871376885295807367924798368962245846496225894372940835870362908725728757517859144575307795597736471765034279904806810486400806058150498315935357433850410863529831567598990733281960408501618783200138931309420941773546684031432892424499039259249326778238838439763953559600825156335393967143242887970531533457942314659251542870701998479067995653779728351923679523424315162079061233190778933615588773612886025385812016452814839294819008785791592497266002171227342680141751936781898346095657207526683673766544731322892304195278978102212968084607556733202928817508527309557104425487783976788915808789209384624090436507298366428066710796003643399133845827201847365605760844212746925857518151378152435594968078013524415328514900189282371755737912983166914437490783484972453118438554380964715430299749611037887453689144862373065888582540074388085968939812634004883655424036773910812646406366585408016672108219612008256040492095037795345633361423343026668524657165043752841876310084332151310596783303053390388058664070516897545459844642804633323924384244373478013213296504773052064066383168166481512290740847332571042678093961768465195323710584218888808887713688899291019117365937019676107794278684385707884059991931966820640100870506277980044939696788083440739775973585035402045041411614973433858342092007854054870007981385835405728003431259078395291272171776927559234753175990191523177171110316198830100735196178465894983418610432456369152611119316602667134020748944724582699952086670102547404891846404901573148911236014426233126028628449816866352491416559469320404057390376778316216358133852626616752205406442628529184387417765977033452388314299940982731651427240061640630311632159075295950375164357544090396115766872790411170906138567592670102533510062719548796099397211856468533100969052322066689577963224851924703721663248981630359090412608375581701864737463961352107196180921591532496781443948977378929738980605504780823065544388360455811476922511795019537113259509331246780552132730241897367845855798371234943476510291998698823230819471636976420884150206765219702352739833587918997637087704303941010547396904762893182179405194384220984750905623530877547363826012315503676888672462769320186041688699671775623391395163987545289109309068821752678414956538120357927342215288848313039828754333726879807373805357356737125383206096396543412412003300828649027554807370711618258430409258928138570251405368653511108021263380625025976713583415534943185900631678081195809058383169930738205947400128589789050027503540804707691874536027039947700971116002794615978007976009700840538057386373471116731934004826969751984982494257125958845802923457185503873613021160043904933869542470874625744764274632284177860258652057700097901977915214377902368295619864960047662390786341723574938216561776360360803663723397961231195840621844854558780735004544599959138650428564038643576078320993490783138590117221157788828728493987279811462375628985218299488721862397338246030280657566338562967031132119127876554453771865474077706721260789334742015194879442033002071890419623194422011237661078147329719931023094765225771802438061480486987037468815563942551308201792614668454695519886872995499457042253564581729802402108858129536210549580458728524766680315830707090634652412219637882393447643574338589885434443813039577976920589987156828196121599293743081917548932650736135281915004928990917507552645885684949594156299529835550515994346878797596000821500417953780863208087894444460130502527169567207930455119703982238601430207077664402797723065144323567026940119224577974611394201006813827214296280817031546869689846895480434472180559059673388449614942545712841318792553255576090478778407833258904043502676626384677966273949715641069226307148546301978112345796330446999643324563835489089586355706550649956831498616421507278929435123701543783574312353905847118231762042591745502145127288719572903509696308307571132099609433680625272543134632901358668620980808407968747167110272099642596778094938501719693935159863838541793259259114942713871414081316621043191430269100079146062214899805453481283914964026300749779082500287089083147443120520280947038491292599774008523067162950674941679215272827497509602641075640898517826736101009037989349327467467144486667224988869556718640479568823854969959483327054159607938289795315764393862086310558985861271073386928495210573837389444511757265160737575212006485031430545309652613997572849891701079192854786000477121937367190764982778293536339238288024310298985978507429394964323437600468005215281201210921336574718007840430404767260514311508508489496581429134270101218956605500272727961751074688690474199710026644978878448801939239411611630686818314878257298722125757277110934944198267303610742085883224946584768706773447440200118245535796068868037961896456537743377234452957258636985398897773304467141363845026315045992752653657548818911566602406973804854101283195519673880564683116565512422542612110455261523168455194027799197039426476806999141363014955367364711989727546573698108468348836915896024123449761177547758797955532951153831028461936564123046493570399178384168675993522594504600375110577227677707273002917220025249148336193679835978775489026920072508488768982840231484460063972394603106466107673112004137056014154680277948934990841580875094156647348552491031758257249768503417184553055527669289608934148133198457193194692087492626844134038014433550148720564061948610245095557736620968154782658140261812442226931294667862716199654403963042392761442703667091731835990963533055376213426175526111970881764210156254009019420665509205071265151292955476966861238721480228842811516702262238027618564355720430001393805204134090085319525003943280240169443498798254852621751620569005839499001208402702954724230064954920364806893670042759500689578796113145869699117854752577170668313010413293086488523445283195429315458054153213191006472891318611673577698220091751111943451647792453218464599604248013183207593530446775834207630369601055606219880968667480435487145943031180930553962276195268640825646173942961669711611947990914028341931710904456240436748546842884342763829090817470453116464051386172522417943992549343798075682799542200680031622959016183918930676537779029928228786359016536432474274159874140216332299969077519774026193153566351457155906888562531718778775972769142614801850245848454884071102591307402052142041556131430139714059755085927079533195484606585922199585247820673765032709168515304903728303558371424724057548376315164507817987725640171789237091444109450908095213984429327551589258127104887128771120386199413608545404612804385207990174405518237888992570354855331835832359734848701953923987371013718781448430743372264612261734286120907642547657717872853711044401940029064473375659373779756984524840533184859825860168107607871696051477250487108726507693412127123613201407554175369113672477785479313280571346522978578920302221761184425987476430393358978520023626978894846750494778640433747003905453116611705870838733425383706533555307293959815069468582038939167633014751849635446242967546248085133581850676645874158926237813335027510825815950326321355321864310643392584452122963538970977105816834918220388491387507241323399063572922940668304281367918675663033854462749530922421886940329361491219407819821884192771804436088761437593899632641170068864079415317078365616379789450490127644095603298167495025606396721842633369524138736327783681752399282781750452751127730837885076782029490869708838732543464702124552234432101837509176755105818167152548801799347674051132370307137229510858319496918385473293510679652160385882296289008835814225270221884385762058389052782321555828795174515062214386277365236327506222915516361685619853524582090535215504419158716083294036432293163077544116014933377801585202477225232828409033614656294314358556480430039272580304551611937723100491697568795937341282728833606285079683509171282452251987739412832940984856416401117502610523804608601153125480301795029935715296655531211531131089122525406809854310006947116341355783364234631274849504954155380000885947309160516781756629175956025783110482781816973525033102855883162371866531242580652000380653041070251156051648389653801869414443424085245724006267292454629675970795175622643001139314672385933966460019341197244878781752822811424986465944768079489072530733507207010279981142411855717823069604236664138606159588145919901769874047021869812623732968377488272978327084539144526718158262293226355083639662673179837575082940146056997244852753107589847646521970719984918250418552361057755328603207151515308323159917277445485534617066007719529113474313003237221667973028176957805018663264317742693708196616659973673490129196068191845179522363744028404483689433030031371619973091455507829436693172642885636017913497670837407945457772705425811922126068430608201778617010223395460280004864052157421848493866994829310878195004943039223712729288750798460064297596510169140153713915641205548230256176825801224503045418958782072383700865779092124293953919188980259657729432283675477572328063495324752624364880501112563135221205869705666452857377469219211238524417366968281379000896909802030008436213643754578767772092948948952557529756730397731222778201633460223183969948993370013285572557710679897667526137395049584363806576251281763500546728939743242432963774670031294323826924392677421923660553044593968613133087351751658041555701977508988972989095497499294910371290194773893055137115200091515741802306934421612192568615545243144968027605602070266843990963945905579999592417940414272892490660682402842628452033827707975326798857942452582390299441592552620226764458186110564892974343158836783770232734887764684713805148388945399025359071329176849422864392490463935744870502105212343399715142666321862541347508081995497563177424897264768811661393117167174279421890836935219233797735471163833140378583074717123539841739509251077630527692952617379767012245817750883578924151105386429488995202845832555917261050636937430971139702924655978672747975062052273934354598907024070750305398472871403283325811958317169550723655286352351217172040673706173536722537997248881696926798241927041823906414186121968957372893202183602047334559922678398424506214461895401954516595970626272932129493397386087942379107014855134689190702292420448777189947793547722985134394129928356148458992729958354679489336115918412801529100698707828449727074494161431073277030848315956182349753973619133038844638950272847710415450958174631328298553609017707872818375056290061173075707653099357970006075650194834505121775889565911213475687981565172187403653683163557932278772964564598927006512545742945961926391471696635987355287394177359893260169202636542463131404861788121425525556313002873368748159150177274466045543566306229777974399751903439858235639407775460930251651673487498148696522517300924936566271024709114482927971800066254433622408498013322678498911201688127567148131451582223021516119491973630643488833601368895260983986909594405154654912631670097422572475252692464095924468965366378999756302242227575258963177154986835731095630808597305375865064472886584437750595621814406662216245790640739542812662346423939651854175453973261178233741643789164496422511472313247699299820897832340795129424413282073686115848810127737081968699172664441116882807572726550882117524994227948075646551134889033169325036468311415251043383356873814812345770507707768136736964117384699539645660537651304583270239770520873833303720235778084915934797924327107257570601794951432033888377912255370896974711911283699441062551184062384888408726736774954103483002920494878642465214104070526611155725502702330136768995587651292656592139479525249930872279715064847656542951633836567515468263157553578530426904837376841951827790032742754236741175484741593063319589583385207192056084945249740896363018921457325655283934575633002294422710167668124894729812351079157375601563656235851900973293577407670008500553258970705421840656571236962325405324465731073134947416621073779483129264626820045105298593777924608498025824450197062757653826782798633441479035831443169420274999381048727932881590765023621817877250323453154840780142513916824828538064055033837046579806099099910026464782724943132517667947414796297098231177693583869101092516311192045586798533599425821926913542630898314607552289050509152738600809076183656471792202557593566013155120312901690693988838644680662408733331004401129774044589939384195112333867303773335336249614046701940522373529445489827326040588481842223603442104389634346499632519436515147736205307119449204774494047729328826218792693487469246375521466967149757027896573922025830625774679011806285697450629744485704033098075127736197186476418818970899947126446627394119391418062844634395683344872489793634136491979783489122919786468169960959503891035960755509962148014050654930283537639631000618377467523865128753480680031223581106776034932366344232176624565473619662077852344739054151665830701036799020874980467606200185470766269367976340258698723875073529191906524183432695017408205522293033933310196467588404370641529518380073314122777390951389569799979287379134465570300090569684271468006440279532638979696160729077852830641037650156514099403866154189334260557352038941635157888897409961772293374008414966137050119063966653605112440371587191341636832733604385884515135633411137031005746201159262180729453611406753938250060115785501976250070494107153794433554415627865577513833838450470366266711439833129589565987333967792968835694565121005164197911800595028008090733044830093878444684316133274225028521282663334090994398366425410266914452214116716788697349939916864297463258226962558826894335419800492797130332885739497152830415763086461102840996546391503647082271832615615680967083402722114900485422397503812775500256034033795763402110886219041648093446785593256291170659948481236914068026880127372536073241711910324550145455327215915497700969174569502485379926174444151427129736147348229953800406285465862496380288216246058374358239332288423148034325557580609059747792145843894594940428750027208429914619926434021720962099910058052412348996586028420052866924876001782094608163822246824327976085775991007267782658996829101767172406198757131383161674479980511220164522277691246359467357285835498054951712516696286917881301797332492684206422864657864460806693300658521575148486522328794809311864816309178887636142527099449747727324115522717340791867120189898683837887057322799865120028076346851373355426684846231839086871336217134094800632888317774683019521350428196245936870678323249912686823243266638407171232530087996834483184626899099627188335796185974954149351625375330900021905571649369128461415640784609128520877172174911722248674547685870670404205454845824720094797779814013811796143710278596360908767987767331580486494751633700852545123964796992351467890042998272234607844440482113520378233471122915066681820642200184132898986659759689506340303678669896621153403565390872030393854087511928103947195616821361492289617464344778884259448545808835582335467690093602962374460190155017138485593197615424163332569624443791137685169892303233375452920873123524874854371076373997593238304145766723687449880713161348496036897912624688425901466773895656816014410562655680819403573169693041284242136221962357682905643591714217409052985904816367542289267720894611098811315095383472766815641212130412622524427777708362395860626431736287528438704280096455833184183175807571027710554082665221407550251311305990251314094910316526237820882731391831775100707385683435757229096693212760770010861745400216779738240034101270983594327871080031294494933199748323305283570761015605910393135500558897879764944472315916482230643641657882113037965083862119232544036736231605193507012125077967230695527584293436495883570994438482197279360744758416204899978223929799438877786295113407144598819561714343361357868639303003333186743023558988083678032341116183498995038554669600138618327990487463746822104943393025344728590576322516045963923741444820874758279945912131398589342469048161502016348023035309124068196832513688157029064644712742300885640390199206019567174573804954893615625156579151589085149844121093381741417660018744763400104176847211375184556055678312450791568514774417150971303460221723772305767573139160180387689295330548624908787301883405469795126803317307473240493114778902554590414541735766452845977417104799937322665494788272400683035251366205412882228614724376584956030673123309741862196830858305355254254795220665220185735607607565543366190726829121260404441592567999818095876849603203685254174465848780417227545755084599685955007836875903737478533931221911029193295854653946555332626812596023651787225328984356340833536908812698667416125178941237075638597021774372436485946824129330930692597944525171285425379315065531412775029901271280671161057243578822346927199895289533063130322904059810680731082046902212290554995415739090213734155673939809924039401591535788830193483231465465775779390264753516558796603240272268598631824341969535250573991000363698551060418633911249841786408470284148842521952646531605489089592229344281226696925473471994153603989871931220842984053720545560402667008092199081282917734348792149089468496104364787195268483450740439589468342574662779742225893474335761083640471753006653209037662979952078474345236492721103233924971011370293102440264728531029460378789214874003367981196489011825480420662464788899589419474350491086211811452440919049360770672598092660525567898178008402731920648055945078979584077418678062681053420753035109329662974330715681900361817532924121738145913996780345500418030577963249808124545615758040045680857648682009328489227127438923779761694182924868473049192808267788088849026229368190759272669057177326784382822391380507032314290529734254604487140825448267811736577653301784630214122773451848068318725720228578288818718845814346417839993518216559628961120782426290000837964638315511566723988818047754516823539624550113641776882689036075544798533895454858827889576689209769665510942347947195480043047335135249045955061132494331449725770170028294786779375869273501001319120276858843121977707928638269383602325556662351111564047410158529332535319852737274045181315894072634679817231885957295020299039245508243858249341439717249967348322783564830084942760797214060042855606539345270050360741876889627873279435071040486507293374718472332824491971480908734143624394966641307654521636385321381779291674949078507582209504314616587919889073068596254874745087285157463340263582165020478497416770899619423907697997424046040714960967150537242222301747056841557158203180884765186655224891917064820052444932946468036440402258144008593855543819896763084557184466163433050229405976173954791248613742791849516087504740895085273041996322226252589955475672768227863109086217709209858682834333749998479894902741996830408389299407544549534470533099716141832715526605213127900011813833813743853920701925005900689506838958480308947613165258421034477456423782506075338789631989594623189241459835759647045243832898067632499120770443873803120544806437451349910181331371042251823875995542601963602196343429033358651045720629623647743476745873079550216132511529286694811243015561822239335485297702242481786283748694243457088100346508035131567112194338431462078756144619042811579033691568212275746282087376099574864319209245612674529510776472831112351873231357258813831865476361074855608351103810108646605036291337576404071168000464575517307037117419551592616855561129802776522626055733635977969558323032383095744040821646455940324408435726089228723144843363163651536006037479949482116732033484709272393134371576389915465701590092303575537632249491470652568068859698086098393864317315837864310661060685841320173427032771875265820732210333300815172550247893667448957225759504954528707924383688255571642897275164704016872283516729492355503418271149190859108180742959519396927375826887780847404811117010904843801327920201544853966010169241541033968548747799503625623352045339892557095088829599711682332553933846731884166013423826219991242945300379086586610039600707608495627403588552097037739388721914716353515401210386243557327106425941096809880915740822764335053837533617939004137342735940572224277796933151000084982288970737989576849694084622403522073265508575190943606998383506318607174616565893741193745946224908331691904643737484258922826554152110888439436510507163445024435984976777985915608136193080032360397993619152583635316944322037512791591334264963616379156578938150696880045504309372825550364802019501714174845733447981157765102401586204976348220916637127324773412281526902864872864498600411981063952715969290065929851518997120223251803970021467502774866412341942385782806347065745575851952982686942864583002825498696329106452972380848005673518140076669389670121867174556338533922149794496486750646617398021746888345170262641129253886814261414708632534433589446876405465985500068202907955259347594628906075037431336131449068986778723821614090411062542589717136476739509603976956079088148011282494109769731348944944819747321047196408024426727012590073201513036212824951739487510340782025430880680489780120411572680888255249348541163000667374148868448824143235796842649074272756735851954724389503526410379769989355056532106870951355040543999773640347014431585234215624227680945831336210454286404576759173299451713572345760301330264674021777777786773674358720739955199800959854191353753088016064260818335518570654408944540848591706018149494333924082653590145588398074104407058143276513681351105807595515835765541646499535575158415925634370271196112546201627716727182447204688873945685537825620278451759383756054856924937869507830013973139736763068016764082745822502895991496807594845170516145945409962637373291359425487639722200191046503996414602667799629624348612415076780288824303229432598513979958377129212756520484594301037825613205877270375874505885738236428966933062263529035846545138495500875804015583466459619273022278897359517199110126355901669922710403198922542237309131354397124496490810037919662105706961218026144234237410117330209717561218695429503706070954816734010156374884627297026850684648004849275624653932479718112597989799342970942173326087783806363439239332261044798538518386922025124815926498869368216116269508706870928822219294478867305243359027175031403293251239911351548405357866562815479738258680453802572076147797561218252975143897340984806212761695146058993158938821974015579373542994848290740576809444808596501195711995423232029851851576516626393984712126646692192005936772325990148546315390037049427597861848528963020559548000212651988686194143488460721569741112294526881950221640346451383701699488943433146475021139770786637561382577913153144748411377722542471704972665143201326611960308450880179598795904580712911761947643659652873978600208015121227154309220520510655773337711272489324119136909893702776935391115620580390439784094546077428485737920094234084533006927336252770549866583017739098179012448617870833850187868285275462809012273496864579697751732826208729732512033088242378998243076600479316833563148637773207629032313360504972037636301770794699023408859373778401856094816721164522391374767516864731196454026543176027947095026140631841179225841191686301282164144583195341849678522149682692496042021538333330562994221695019803776473686179973787492203812134998102157259768769164806181971648215213159049812624644764677201826215122190388212773086472765638356233101545427335333769443966358477086435161493339562752888735224511747012992254733859222924359645942450165032379487176616129387496714645629540964358302145503590681667269095695309577640914912464466197322290721293365266326434297289664908359434421911081390429371445188096719502728578727472654448174195267006588006807579994413270602531141075735933902751877157615650416337870959408377605243023253571082481255425254482293072443914142466319626156797826166656090599445814936172858927684788243836179161268143525883587299053908650158263611837089807381527460013219410842065051871947378756039226339436731856100633519227039576864244061943370964371093381791248779859862987362601452132175253979015626291521769890565526597013682009748941142614999766785942654351549843554061306263219534691176455923405897182244155116116445773757560614863596122611128513060116939363794322849532790609862074485771342724533972984792291973041146964512294371128930916856639835810138067348796829457410508065973872083262534741727387153458329606403971127262002199796411280910295414549404677209489565467404975333741851198331678074759614811958645594258489856180423317684600665924593109849774376397518213681716935090041630912452023937654095254797643264032961050862861118231083903501228402669590015634668327836875839068464856788739613520241006164638183341969074839709595771347645137575375438010435942899241982743830787696178912848813773119129755425960898064419872550882790678442862452477806134719342441756574752188528633934002473831387323680349547764350924918405234973578959825867070735753414332334939744423234802093817126270960782811218371875294726850647322479558776686102303644584478174967984826918064833812475927953413677949758133053170028187082192510101789850844765409566711964114858244475962934514375565998750763317416999418795349838293179898857555876486481219108863132777110935650932765937737375730496423392852279068623948623373391955044849065765356379514934737745943734218385064069739984945705402590446098614271607004707617537261782153547933154671535556471919866346850408575666454394839139385449590554803969765039541787467748249263919944706562422958391044210838158589244391867890379214232473742198825800550414522452191696124781537939332117195540028413106880944812464805295509879687051526215700096753564185544141725280285363619049996753535203790896106722859966991242342426535548358746070302099305554904015112595134613099353442371361938443580901180180169475484805760323497193167902553407376167351927654230504602458986933702783700084376484352761026998802207157761943914633567886105692287023912417344813979742140103832899684199975706451742207990812206310614078759663590539429178661649787756547308509211539177158316725960598537279370764576647331983801747603410177711061325398049354523653417955571509808512240225371282609404502737372081406450133964574601865262016202802153711400861634052662079870583676407102896270951654398784526943661861403054524821127897735219718657205256310244627311460976494829839437487762968034627363254053122457302206894364902062455076280760986669186515607043212737884227529027719612284152017893478775097807334718333300676756620118425399741098397142680587092017062540083714246081858883558272036919304483019987470218301250816709986471368292132632842052042260265779120950525865465429459767763638892009350113933669132701587256374609352058748905394279686984959820999213004959081633125412923133651718512654537606842967582537550528217679587143204505944926656909282332328954072466703972982894995181803360967144820413120773241852160167301959734744313743267386798641195725203120869573983513320260504462830843436225018460774666391231958424335058971227331156555954158497531366450001888404714284384307932598564393632250642964457094719016677429803629248692332580994430800169153832727283525933625192973056378130586146504273171641974999253022388968396553113914470820204233231385142465386628268419358267400094496936655442535754462264755129673328568887167947178640240799448283832371676393194685180000126257118740758036378498442968195751026241359781171578120011855662527705542744415316054840860786844911586215928311430414593574776972901359236660333244933648801696217038755538455804952701563383345414125366723717413367361105913495069601677893413973017575220299205598619361929382382838548379821271703303686981537133407579023171920769593271555325605323644152859578832908899826390736549943241547011961894859068826330743735047453863616013046596257877721187665135062632885710003651216902756814460699844768456180009018365488991501768107169916506813968614815974923072393339608755775484442796134353431708978238203421484732391590537847324560889229546438361019050011695371227951422645773888647977480541567624410278495528164255216349014175772501695182424186558045796720424581541086837157087954024245218917546917712149092108222040511371072721621151633343382951683307263295243953700800371003933673345500117038285951703745485061135193623220721062754314884868999565583908361922519682542301257888096922073328246101009536037189590650179069631554050944651326744823964423904528220504942492732074798505677658131889971963925288733123587996308383881048324925856186870549396418862038772612554836597933965910405562578453957965131384884274890218604166834999010398484735502947423676705640921844531165724861234199583938894918141509644943400308465225236452183795053726084961577408913257855626798019521184570658189214881735298080731700664875435417083461811616089275175944099540947957578802752286767153029264697311712118470681662178634265120825367169254408421986180701873901448867908987295288088140127199601160554849969470851770193571914072736800423190333611766704859728960971567374445498123868625949679017152165000031573613180480488459151088388960861823390798833248668877148593102440671148195038930182163732193480633162716821348613747300588262077775336102742421585333009806276189215511252220785671748807103968890522812471551243601679074635019842769071885082262520539571139398785785813182744061123939067080958491327766477830136607687940525281669289003800864222498331669585899305710602293197765602384466697235580642021284746014572489636470135715321094328873632862408460830927017815064419572147950573822978979137914703344926409544371486529240546185865609742838784229833992811210610953340889925047056486351597418586353235626382543782790622911282473265542299515086425391515118985574878567820381785063898143659349909460114476539541712746861313510411671701273581374321262879702656370285051721906832016019229063994088827667654876030683447483669660337060215402319542261699045006555628850397345008723716865876794853061807829016612203997729950668487473846603140130041530055299323938422221167158514401989301313941033859513364277218858339518744282451454011363344684025538301361531176437517330784838417300230511829331699036125925365806249958293587494402435777873715759185695135131534211583156079241350750035795871475911422637198795959090744091008237466221105404996463736204730985103051040036588316570649611694448514754548950985151873237579253479545839222146024922939130585443102200720186356624202506384194088117389202022951127154233495741116875904461547538854792282369562457976271029136001768974820247212512232384688991437730003139312098760937750113706508082223706411847769680227069003804994046325193653731794698672925884731475019346402217371499723251096595455246729136019065451400557273120008458030706000150274070733301361517204783850073114591403054400289379339831582766302244924526309332054400846612795787296744833867759179241600209147059520395878962420312391675090940412541909779336146075341701060996002201870907645554456216637995379763890661982929936706731867467212883738140251658723349178931668881661347467469308950287115017493547537590963192051118447904208955466681106529638036404905416039253449983814885551184444001927817061605768504757305481457505884399723533855934845582065019423194105148943086946111818851046265616204475319010734470401459466471149058574808320424369036398044381724067539648523752693773898624283003264028289819585043865529922180702170664129458485919598970705135117933408100613805641787711315107274264050195447039333269555165148437216309553138676384538142606639979502718440115421588798326740037281777312304987420717560520585668588250704912281409062296973587557202769590676631019845889742851689929424992479429446349090256960665953622030848668121457059130964043699948492580129047085968698400947261887368317963300795297931949009760574705404966549371252805486873365367038107076089268749955963131111348087551474558795370493448783218368665169759890780941349401494666247371921783277896569044919463503877372112704527841752708971421884249576440162874093156399227569254020804604419241411555843987112784889165103068704909189264019598550353912894538536504111869641222184985773072862468747769225146511647000742707152963920270575860041119059802436098052573262021194984573933557360750980597684127683080590463679250896880771467414736257806011723398539961896150069491196655921790859697761341322720604074941204833142549241696414157847773464202760261067368994614215357111498259819313799021393168209015369006564416545125569903216306391975876487672113768655217103143505247112538422927091966372788185802379866048241094132313389311772715754787197687093567833064179842949072676905564881035276097741487311366163609232850175874506869973103595770412784599467825289732133699207923041456862899741431293996227635446998356729806813369554017497898390288143000183210783949124293977368005626040104123125768937545094277797138232123194109426766520162298533153463782734139723172998052992140464764556267530336061971514883137434876851700535438205818138049725506105366745796816571131232403106916404441076595963690302293189302056074723602612073428867864581148264746877776389587498371785423733835089679830790346565893862846955924370307300305843448411401836759435471175967757882978507576202500584691379247512267933126741968304388707429900877382476642883945142466393545093072288565059067845952232089769091679121235831876595162489136993822918712493820361885166151056650572371752944406774574625736699663428691343891803703138387569251557583926432470953769145648621180685195374381357696415865853372360707872456787047412576222762095522566910960332946260042051579896535090772120847348888778587952505269000825636814367951663807280948130317975821821549324766953361886703975706173805569547640114674163816825576445934056841594006402204251484857045473973073823314661315437876803322500814385216951982848415326009079680192920351627749531742229195874793077889342148876114798037801172526068223173952281900194426804052346004605149378444268702551948350745003414526353196154344643585363715726799141794163041102697770989454557101844755659862564070601978718725846419338005200886415341549539709012104484096461856605707107599937447620888585205212131573354878025683683641465627229670538535973239849384656760669226720199259103097717416970373479817737216338524794237218180943165296652124932469515141263535771850052139574079038339801038294679998556181468232116984120413834480052682624354088521480407128948719009117171693935143639890093918626921452658615406398209908237424245191812915469509752500837956459063089963632030469979986252800877733523985181580757808211489552766665839526137447957901506232209906787492907836679832363500219785106850607780367866027743591230557208456671699178776600014132360083795810717433810707909691106626095449647782853779239697736015094463552840000838048958344591513872835873119320655897611935982961798326183066488210008415779077389542340752248786827897162782234449407442721995678247314123491731966262787943550559898816873543337814956111391752465170105680863034315722238980688429266830035878677567809821941787455730777349083441964702581451571061405359226723682712981914097647891195683979825211576834936605450300526904302779159503881160976402196986074202347228690800986293143428625279837772112879906356643177517039356415138348720276988096796104110071669842959111112055409977385119425423259824197470180907441186916366393874943032966138944556168658478860837461677671246454458781725680566717451797779998713223984902713815220304640775645596070522772345896911869884027988748104546976172628073132664651785736418836550981005014668639097613183591147439581682858285624988559441112735140407937735798085437086008369088178883537205509550529206182539816370884987957998379692194422403221331052286086303377463035452267843959787334043534706174145362021719212483058601209388919723473836448929525006295213699974612922160502846659777692595538390349055373906396073830943358422286374440610646531465909578043385661342532598151112142736467983754773953247062949485014321572645784974520189959078313128403707557188072060187098141186136618377077033962269559083837934822530996296096051795483784438845860037831784662450582143710600204063462666369402074673137248956672942169373110272699015514086834375294539485920963869141689576631917999254400646421666582579377733200442294027821125661369003304726981593642603286168445451469351192073475873192951419421737841758227639616949690094235132272478324428918859326455217449459829598136361786906187537731682448452886508651786509122255950207936484449836956301666047122565570382496293299653873232316279676848627750412621264850364765178598300058576125441604089079555335733622194487686254209819809382313473652855363913230994341812720925353473736278635409615121828425888560994181564118156019905848935777271643994386378648029698220205960242931263196077411288416117275862475137702863948896433280951061065382541588640731351542698412686555213784980313544449250828485517694945916352558783154146038098279796345362911468218061754902647316519511116952761267267765062940939901108197336089730364200772510698851449092592667240560559960835176929296876353363701780518788842554105305850739811227211518589406775146556793636671435845411714282376994012161537281082017809690088438524945751614191633914861312140368839340826292051667652938274346588613799520768496412732798181354784486808091497129859428760049602522350365846656981966723255914213448912942564005380050282706175648489593078201994409590535587761213346119447526559399901191177524648928012873075261218865673670399751963576599827775201511988217835598317345704441381958001161857007780525137367579883702692326048007647221416460390331794572742301022537796366641083414107863133622267519274056551397267208832259030798086365530703064388199264156854481562859004978343247193280428458749316203863445283055997890492980496135241318289864352822079761459779679275395388938598076080001546955402320561086519305530151418744294339058587431926548536793114654321631152553655949359552544978197417480032019588525266934411938677897891186200785394727567677344256197402102783419945028506445113526930732789009229593358723156045863867733316937684647420143504227149731553944911514745209015598112829545386535332445021542523155024886613362669853306856663682287883427200203923960289905615382413057315489081862829506538096249236127854164974237575085652675079371874302666247243686648432336633708879825855933532999527464218623115815062369431955123065084227140431038567622376375143856618368283194084079373697602971298118378678767736984954270799503995694744215554065119248087663432111100957807662250610127363809219142236425874049061043880694982285631160656521952978021932311223858780228948990953549530711252209196017523391690088202016085288370757323933198987451563414972753054489209559121647637764045211104418481042180638740927257950022547838223008213395169171250153829857195041828333689479432524443239186070718209326733908498660914355316162474826924543939378418960434880225104675480916325152100291480756322703492515131936444665504239792741613561415387033955759464999841503685669549894337288901676814497272867308255335355173931667313523447217847635883831090733120724981514807202872098431284037347402521967493569884507898827995739948454692110194053758450520806062968423199591266671087793545366214908826231508639573013892509788186135875669413342964702417105438143890883780364604915930434335137518057823873794479422986663228343405422173852796846695041286924355462049281624175594634185195593163851805393088254890943913546784016205477434645025326010224264870162758315216345421747834626432379807725548526866198694251497678857144477054451866238662230236534428570709714757407350351563822031731598900581458156070894498347592124644587743900452004054139157548883176429630925103689375126347329331044165530989719326284764181917184843748864281850502512778310321795608623409989968196333738316866185507599914529679671595652659711697878711123610747475294117164002218164358194225413421118661478567855427685572668059650049208535468606587033348627531573615437375971982110277015182737705943358246887481444999184155530770231412526336640325891738867667601628736759455407811146871950655436815555483056450689317521324901751871411141160413774384334190952079393705387657892459526604419660964136252286074975493806728492873642557300623611363934060034424470847208453327862695465468017456701926846148905031200702755927883557458898739565669250411036386797899774254221887144008111607894871517073566727817634984739030352260509382341999628042857202834702219615231501625139661447220008401918310817641210988971615394519112075527976044816432168894813755381042622189667223248716095163709701034325562803485216568477948776947697679365076937363975377211414136989127809610878349336771591798546127335539297913707032164268252306378269284038654278383844374072359191739787102459641233924403195799117325567384337726912360904712853374594113792199096289816425514080490119195946882589781713270013882493907556251991656458673952462969265643141662271741429471919904470448999108585931782797224529883119401739000050023199058448500405313455020233152079940108491023767708776306123967921059806319354978650050207678969564671280381622136663468413084433688614266052350457044870778154659839776203292978071651945784124589982636510939840097213248155886787544265396324092909745387221761672092794407718797424341246907249145623430122191205791451116007168178779991105163260627115930381427399445243471086325789399533840399040456494402694935668759952066501897202315659275265690967089342611008176897910330499858924917854665688177981100755939210930032712496505133294679448905122197910155360825140636714777256171465561256712750337140297292105312976099243519891096087632742714650515474824369436405191261113635948100232071449023478406095496044281487352542390286640659362028239936399214437972039141206636080449631377237875182153180872047516665670783464856660344158653536878024665540492752696207555489751918691332859319340756785743657242756959395884643520045057678486385906547215436068377986524943202774488599460070124027998643354742252424558471482634950394927513995307510971565914503187953715932168246846249362822460458271868324956463270350747852094250222538297877375689985537506862452496958248221675851026229143119378154617444091273011232078080867889065005390131299142223512444175696048061281983405192927880452777279260007047986594880687803464643738666619281184225536175836168040790405385550720593696467216505719404631834609435826061731456410248436323391629483069299614311900386403671439538440573484906666127913283848532116518234206446741022025386933757795827079955168817812344792127387859875940176163009620328347391653284597518233193706828650175388280041457419798242911799866843655981944086085993098256881813623426077488117327980469682585472072735833957273388599505085580136975123432199906423553585751728288928515615614201524868411910376869604591637528121482806849613738183494840732375594393927303916832426690841681668014145634126535232623151721305991921426043769422422617782962043804404456398385754830028934143043485443193149324296713799549689931401657416295628761041608637763126254883050965016980389393099172624118349807722402831413580834424252286889719570117946009683713328710353241577280449954442307266148412742396399330430968785544125691969091948653708391023003573318392167073503979718691897597763868182559918578549214920332928229994365190603271170624023645888569509144246375566366479926992332041601657293258142398324891872130110818241489474584056507524905649532548994317792884342749366251424744862700422738085830806820082218853597515172721239255173441598453285348269330487823859150248498719893840289721033638490077501072531782424082974815266423567149227455726611306718719989415505000233334309641469712558954280725298643256361191106844307184911432901105916731104746140936326803797960128474259238852335681500251842171754831721647539714134954994427553489807185390146694873427812836648967112121464888950370773077576328220460755798847065621347995187583203911505803719978657244552991943007133775601304246096885138667817681250563213165195365065281129920578996605684064249958225732988729666198412476968709325546782170213218991915928329499945664455563186907722486461125453531798705128825068029719248890799270558190365552509196084226621182418411857248486738946665290706135156633936275792114607345303062130181236200795680709792175078633029713846316165828081907597537865463759799303999414008068212391482023140668434460282392475689449549993708595326327495867470827654739096069795099745944172302222753815768507825142047911860086031445895013203922172811237134756163209980101544570146841476897389080707457897152424641884097669167296232385570410017275281070579570389672336932958103181614648369198897706880506764666364007814510579057174003766993238970266436016405435103894610537872812324864899584877924347930210127836609351763636339466014026550384382806562576918802694228705452678445301288373986391289304794288803904469868898350958886144089896790645923853607052633272249391437330906544588666227879265763472469667789991287771932940817081011620783051254571811730224697232504527815512771259058489254157725747657104160846442831314660977408843515973223835092608733635552703755815995825733696550903330049755492968847287042574529318816906117843549116182577001330164412665154798387432572906557133165711108727820714846313949603695474417592247994141448505596592888187864251297549667764206869444354770552002784766990772098921594389689903027432792603418306776431695682187270347411197131513071911385224774048591911813573382126551440566307016833096412866716270404077827257414773047921406876409736783393174280368756870702340573200219358633031711174820984313355613105392578816298498056193517814494215848250515209544063979007304479057038628096922777765479276785221157283504096859207526501709856585956804103419934512340894692566629135863030151712026912760088116728669360855125463388745714544325052712620871852490202578243606728411313479823762613898430749244418377455718269499265022139904345238531454695423950004518260861414412159111805105174880420795853317154258223226976172481332345938042863575586582876546712892769583011658805562905137318084687438424464524043045040205794294047378518772331024807927259242232077996877160042611667151601806554139158725409544593113668092493090234606506549263976896202589649222235432999042680638393694701497790803912887094126332789291910545643821608919217372917589328134699643491960215893391480682979177958557412915156954738270903613717376376786160363537772507559172374283017994746722628607892090230334210553089991096045616505289399535789961854326133922370604723472748062514931854368956214329672131753221820373786392659588759232592665967034777494711543369698371349878780961319220627905708687096870104024420379175379240937218229643213416411416704410410758095169733626917969297942659716289391360626272919439387401083482482831632237986052221022911825527049968534696591010846826963959127734528258538283390568336142858244806996038003407101836853679507502149973201623515491137217029667184444552048577048793845830727595013678280388934339215862478316396339357459001253163870955076381110380169610200101692967812976294733429533996889197712488957144062514850689299474789014063078100177150116979272814166235634256085209684086197396617402783730510180132934721396618749732110763639908924338189147800645140282509025035213190190020285294577891851855543413075159362490567773494331174002052836448247577527842265971068326789003192749585228016606049050942906625958483940193024412466041713917993371570241463969563488790299566720395471156934961099080343896457525365735123362714497753641855980238898431339600459115017848628878448027091688562739748097499612450800369222981532513948799106809553373710674787149596670502058732751836000538547797057492293446283885233109950527269054825086029036989275350037765151318418466791914952480027032027799736627974789905204914994972042876549916482354745341500501094110772087403277168144132794091487908903450915224434167058576902494034741659529186804547706273261653508047698319813791573848463032260761413965239863582204022353664696193494732298161937584803595820509531134759992077938211571971221280983878424492529130818864738129955542786116498213002754662890734558710362895897871001080944621987032286505768370220351968823715424946925549184352816710604263027242376065191475431628727761920572119479793941721774874435436863678158277461561661555265288575920939532607783770436745615100630828758370347744200777214075909362916530898636069055966736899447564972873156534113860203172442085337074541034974563781344481905111409630542389503882171200836098914582659544671260638727689465106839880266202208523889444857223804339878739672642933313334003273680490729164197957682435972571991347188549507939211421521657502180121686039432330612120493119978197478010612295897207428405744002011415057274064612762557817123834204210197124650618210147105193639100816414530217249068266128367239464151419171413016892001897209736578565571465427192115785288675808895610723133722845602687651878345788811841453926499339203898848867025401827587512422314533379323486998140775365228945316755127490727194299796437714175125541347882959768261362735321797612705829509988125804000312009245310070591449455721499146843509994777601457399632934726981866811588563814581998953113192883971185901075378743660813107928790209028556008287888759102388582570186222449875121848511124911430695467713661925566265781215421765140655017706085752102176119061945011114514733961051940049286362097496859316126095659766591866940535775019995625565742730852445302664828168173400597183075099386324574242577528164709259547294878617763534914014832281643780894013858414794508332830732420854392765530849921902303459234496302208440283482651423846580408542614950765359551695174602511244566032006835156637302730339375279946877066290621942443518144294241728152084360663215019623328003436246330674568335588911082969154860830021464118497767686062015547750858607152342468377493611542081971441330064900680409776596371878753340137011342080040755298851409889307536088074994534332492330811957174152530390578540287166491527089126678093364158520619005875011352383684631511796929101295687788061527682340483960506484161898371037126109811441708856017385307349156582773415596571679631169274503119541322213510756456264142722637197334624432474734446399452810311539136951749693040845285260340893865315680060232371961184869677150440399283262502883646257394227097240813128062857745007202339084414958763751066492769942044903889266474605299344898788867185262801596902798863384668136353972669460345161667947369951881530543245395601716848840535487734021918610200322703633963433292218551770110220168077042346803521110522182541132880357290327173764990649309230436616224264212825017494129072874938826682630878472836237856590906393471576250576965996666187837615728016144529740016756050234156966701894748466160664369535987156855921561314285596979539239603839457308833589346635912581976557645401224565027706192861303476526156891867124841003830850787541818416716114074456996636719494692965407178245630597202351233035271095484781293891334934732066283875863679374599896706322164909241242166940334560324646973702233248333625673057623840732173161316613312305719572707859508970584504443232550713166780843158292771954952951462000129487977714823493881271288561730754671322464525804907490568927397433335620227263630705064215136956193141694676726072303941699934641733490856078265845969289810118564711972552748364289515729377552562401437412336266826684980956720919679291501274281008154455821629978949963805754038805810143354016626391872625465690840892890731030063342959529257462267746145621913684596897164813887761224994798929058976709605908354139557635036249600787776758323223467077445641411148355461453526615968610497490976900063155332640845212600740779911033278666473694568532290250335630790953097076179530990695710939757963521430754023734908710974109039746017334302129632274601175127694645025097878953095921906055328105156801243917534909855661829186422032869413169811279476151080421490256204342286864497095106663078231518234538923705855730374953230425974575548899945318484311201669117299132788161104293964153059122567538371107416790278632721446727665952318721971126847306532777727800193363479308627411672398789609934255196103170363053926107442812641189053162501431382437233473628355398954791590709373480120655865197155506504776648865374913245814885723599826126220261424754849783594844509727525443651745449183140905816183741982007022862800080383532049429304293511747012740890683834427756189354883477145827241618937780180406555111791668952403606023623932090769771107166806607516213591313591092477730457615977431257963700576646774261449043978005565626062135362312701578524990749461585362880355377100147839959612365318788187886330356917450851303363563815666732305934369522294760204281834702955155565617752806296503854648702737260444244020046542574631311452149882944272133528269236194822875869311751554346385001576639940763660830225492388339765208948440246099933478578278623476500946312370158539917726253339692524982426931890864692432050072321692871545648362061836597578086474243465842436825435140362813294905016792396741818348583359914541086524466128388238617831847017087120928259353450807681373693400018576417658828656026802852200649448849738502410460883275419815463989809238862992486960645916201226251998546312061489303742531491288178487919818325345009808833557942552909211804018545608109744594739004777014447722570526709947595971446997674608358013336104228321245819992027701990450392135362242200423477711192115404683320084984998351389709979447796546453672955741062210497155448336658404555556680169269384667872853022453030885111395348974951852559983220174430074092835935949875132000648595238611846390424330238984540225449401297683231104726014811001126805352510712595812393633106890253208080783414686615889957081971908814187674273100593381221619077612235494432786648563206335409950836350117792818682488559031739393635700916742700700970949130190947158781351319088812110260241185876293671290691516000685869989874853699272879627312490805984279156596332453877920910643672471214204607104101244209726417551019494059632165126937927511546287210298129048448545526087962727189460240394612579870649386109275047904213430037189988567981555505034741864815485839754564005228920407122953910471887254971859269464106806920600678512918669825713996105402094350566507024352068795397583235641119502148622676756442780836255464603184510155861756480602346632592218708435799432512715571721990283176205000488414978851501681787506544558263378324076556518864315060167159209737844750238978372210334520188218489061215648334927875380410587864274100156672558760612426114035748805522474830453107334016752615632066586133923014266779856625349806149065269056361090758120445436377551472663359530844996988020660582305303007657015969129387027193513627448609090164958264282025029159978942283210765331775426367501987193665470344055608632006688735872903270312449458871989166528272009092709133383438276658358551143902881481283079290142456485359771026409791171952833767950608117946860331381446644397367605912683628565707615314700322456256866451634614600551730671673847994933467916030512020029773055111940105771724189890325421405401201928505442940697804142005745320264779756777917503216339402989001047171540240520071919075382704086874423316341927981471165141353378215822675669064182879181241179008690421426966605593109178124267356987049104550436686427849855457967586291472411520624193213950869333164599153603027832086772195335183679033273765722714817809512987953981979441944995885978948499030051989632601376815810913961527428889672719663259064377371773533920053085084350712082614931546296716678215171479968652976652803241644391837369765358489497989030458311622793965416678611542300611228949898083817239832358570274899717024962729500845521802077873085916909895291961552004371607455708175300985714365165291992599677696962531945948225925148658619133572585434706635584454854453928619209358291490562061058471756730164199055324700284187666945540517888214193801819436872479848050790282369960534654156344364554285633831318915028342966909045025296395816047487502186157504045892080991273607505972439185154628047811073017035857805967022289413727670796915340432643796311965207820784117924010565142454871224522678663760367380087823097695797890173705220376732735316921664812458277231125234671683806346531355449511690745568136534630214268939526941370070046968271751222891793249312503886004698521081408811980174003085947250101287330127291820388491678301510105203186398862544641160436217755482178776355200694225064656945867522940491495197976023997714269578482907630960163524442641615319380110685138984542266045875803862104129490609807985974268040794577594092968007164682678691449692038655607511722196342332937126210719961244776330897978844011338900043833012033180091073759928240733885364842482261160740537786928929729685165040682700526772831607194655010661928712795616040454920722868732045673394896493671007697970678334726310553452877523802993124029475678380326730195136064644235003526977297114980798981973627283543705299091619624468849245761570407037745406711330499301213688373980067311121430794119521974927736135619060599684573211900025420261904900545211464365942959513278347923948221839856733308326336647670408727543068141110295463448612496232397336741691290480654185400818165637674315182676435209820866891086666627152891155133232240046055523087813265008148871467844854493764457624227086533140449609038189861599861939603277583530991987353751649893341324610612884308073801410605495189456278110719284392058953529815629421277640340062832460829463077962380058723745499753145707607736873608457202655940220671733371173268999751276152920152795184779937414568022702070091917172423988494950375217716993979538844219213079873304861207448162305399558348586798776197343221971468108771058516090598936754673779380067648126197476137341310953372533807257981354173086058875194259343992724304425547081996815982801436620155092543371199290045361609465734901752916907034095704526780881232824973133582892118596069418468417200511873931356731963408599476392086978870776051305196978872047165943443723487624495045138427715442555273456403276864120794782765411832009537355508903309573380169168804723227243085903418697586633076836436836456027893937154290809098028897104458598106042284776058091032001131546979973632865800920541663098032613074597328932799556974157152407495499768679927947143506366304044472244192784810165888427526786063446210998021444489653403114322737410072788841661711700266002127795798846831494431661548736277318841450765508415226366286189233945134473891375633786028689005029306460629692354480048274433515318565038092248910008370370188623742448878284495415072988732191211974714334840159232019859062796685114329576127386360033942206604834508477452856415998063563621021687680155814946130155656031696747837724843583995090142051989088117779148823012014927015306349554042566014087085807430381645767344319604048475755241003320986175983608119051828030557990734101421297634652781000613992084298712327736564710460716411173964162464716780704014480494940594607795651187318209385307560495996358622787138551036182301200513789770923172370209269560438794575805154007508359536884986403894403007196237761220638663253617787835103790201713494638193748372011193447516003489385118948242647938531440976607785024816507857932818246401468959695037720168169774682818212543364256086395098945642448955629543087761136317740190662353092220741987915586346434195626883804869340018168923241597603908760307516639077798471844597897985798600662022326744172510487585253734513826837203171671122500743542719527998008579858207877497226281848877927282124111993822160567715551695790871262731282674892622993408220034688729542456185362832478767358546242450649635292009042133006065533404582181510365288770225473403953099184473057631486823569351431688783213013602694134915350743885807216463982246935989367937177972512621893381504004240668582952991472681375668902048275846360294885114381012693606174038857196073663144759392127235020621636078772699205702819242524785421538185220742091766697572633060189842005030199031486648369885355833258462543015306498833860217051680433206357827934071127606979183762508840583938593185379347204580666718875940519828532755300779726139086453507177399931690530829426093855844126764502971708004949139099049796651552738886092190911629786153918017693789947103654159555125520284774805059735118308992349277185402651419848428791620648666695475478230817096930606322136345906027376459447579867308367692876302793781397228637012822826613424044670024758023609687913531311939639119509762406871863260122910158975679365419693688516132790160011563188464966432088985900742624561160745139152065842816265329750475144054160656958998269082007212077361032880563266938111662784471666759347702534735095742421312640781814415058105570185167487244962733300645362650365459325399512702963939765628009192141925468227063534834726491961934990157027024939367471039128101714548796731294409725764894720951074241679889962051271524110129664114970969937134964542786719621546959831698648941943153120889424750516621775084866763093242431838715818920724151429049530638499490313315569540823208958387253422657143355076894617468112141815140174461955885864976363248527788888084361624020259098692713400173194056917006790867523359628067194670571736531644406919358503901475052645628177155980172187563414845394792904245269882328657801959331609705891522269267682125843889554658209061086903858003147894500831201204969252234174780327917885575712382422989092164784738071391020338992719255294290916408843474044648923632442057849632869664680316730884454032342274130180114057682021836937703558702843415863710519933822025114394893750737858941972319516919120842750312265996813061594581514094876737937732469086664458405613550028398740233454402964247043377272805458868433585399997666595440019892090384090109837069287515658577442691698947829890587070876744902461113608747121773711969100870118861641620669294830240584215424116492875428695069818853489398602827907797579442327024785946795715099343812132440133375270332556052386589292023286114365868941603172340101109624416999660630979546381938158718095680545179916277093656811106810379824790098252164809728718799645112816067746982751418351020397169492454911243431556464968098585950058580471973085887280849302975813971819380380928063949043228903627615643071306868486572529247467229104256531589786441941254478052103857737211244175865520769052619553890495617693030098119174206848242390429434231929725243276311467685440919843805460280985068260138247060695629299926116804568820450776903766098327380952224344017022439895857339149771630912531766746292357840017235630671334784498243221446723709908611347036226853365258729601017066045557024744810201670457358953768166916490310065745916585789666421662792899709722301994016937331651299380092335008849562353973321302624984712522634831814154501659358493824407091027068557858559432025668921168414703344216700555181076395123865169248783753947435246578722492328332816120704541277054782549873727580116377633850819827947073324699828736195458450574327979644242455733852139512204322122053244943781984411227618119155941136361352636776600937041712753378517256092039095209812453723868998398185190502059373412595044434528327666029013294306800376538897715261860945279355535198409596324508705051537860240096926180026239685209200836654423385364974979604249896090249696716520368033278625190610322628859056060042849980177109457491611795310240551525980318284429568354252734817459787843920120597082733259513958958747995482821776914575445448143061060339779934234286031344220110671941169256791223359252745525906897197757095070449142730801868001994174698470821671531754879314540249112979534096720322431981672813430288967551848655498232483702817830292629628928343774813441253969125959275495661832322945096475448856734511559220523102125203412139459060306730663857478371049413838883827488742024863052902213872678116481447186725966331057788436232218607305888052200912048905297836633211976905951677676823525297435884437858086059020821365143856243396783107439889657706293470914033227498679746507581400115732900339772467184979915742600259183321570238055475271235912643944810214491992514946888082134653713292812392891431184861605452504837676796862802279564901969796414142143101497098308507630133939171252413356031184309487000285007304484604679215008675998295173439368968208890929597445230391285094324109942173347571536817518254903081920641993589841676775221022513213837113115090081687182944655718044464960887349478088280188956135795779482711219203562906275237527988684430579635312884424404160911990375285360930477498258636668134089866689055674227065623359438028232475154739155337153999276623353589057967260479093061574471807770931931555871340715626439844182405099625804930155861356306923832012164869619637275311194751868540098231221340727794483519443894618605385081204910313119332951274084622438567757038149612967797930800608444667363737731204476215599916270918424951587205778393036025628931897147035177514296121274022977763166303516533264874607669199178590874081629589276070424973984819729499644706685099476843058539929510910685355394173810268396223184404170561630763390670746422361405530355994844463164078879060029869640780126882606379249759793936608610237817547240566113160640266615752040242730209663536876194055584953231943315263232406094775631089429572012151287755155278855516478442359437254789249645133037386670536949038552825653174316846780962934097256940896176465369609802450310532295752776682561455840639312183133994322526539731786157154859476640579346419684139967765490532487036111122285017947838069543368135400223086701221758648134226684156893937529472782362879900204616989609413921315776676633995456581254116832955319266731208919487777422670267645010956629270792256309193267926400163732672636771395232956880556800690721080754380367147308891434110618505351987226294401679644009907594022187328160140812257579341829643410725473369562502035338232318699448756649972388212697109590052735045804755611242690308346423909519800723646295194674776117569087722161060108782785120309591492320218418050466836773341208050648308313935059147543116857967213841329463111055493471237091813850967084633466218399014835918302885636590066641195870102120351211880057150447794024102245628016882805637809058131283701127077759667862083988788508769683177477755874013759985529745291182547197800896759644438320929858194947415345285862883500706424842520775335476812244444720636150038466153200536501568546172913885534940553665469684005211754319428236641548764564242312282083954525478045391854180807016832579519235489824559268893299813990613272066815739115422253770042111358866673131256396177817480720904275684324781196029781999784186429275817505576243454992530928894343658425452461319857901924211342661168545575094566717970961320680069667981520360334418170727574208069866804219686764105701717530940184851946188409307680696602084439768027877410544278795790158728566581617358390550352405025555436848512328688655940668532673433582368093266283167146856727450590678600693483031021071737580330178724268135808886092099833350375675588741345224065734491924939880104618010463070068750446152750183498563020199237948290106022698341283781461245306793495444004992511675309517011132917284543014085131823121929401501451422292271518929578051123011463674817474598024653676679925083920382149906168104364751414860822483625154908505669554868452855810807426033874879451141988380508599552694411700510502480531758698235408151034347297637710741558493024143210413375689527837031555534199948253656894067670704471990076155353240695733147138743908804509065653941164310509727181504866527739011464656036419605445100696572411870767382830713782664106736292226834431555489307570657826298634374555826916138469977648943284431629084377075824783486728148767439703028298073317431684415494417680048818545779866467384543899969987303611497285360633522418923066845395621455754452590550218881181677402710731701360123020608411196754385331417472452540465604004583938832467032626055589741697799075397640483928497454944744838265090072881796264078756171430408123326984700412995527727554383837746344125797368886699775179178936756419079217928381812903983698500553751979477294631892968867780331093738821960900232824895528667076263542504604522629823090973770781678008016323590228124193163652253477803588441931644826039112870908805447094518474250956038350023759446627573689422886204670524597001967503078390370487397079590584081383668241074876177432843874429762903918141429875493366851511156392853006398891744096091789237066346753138505675176390631053695001322956996929811582005625932764878899089861997271728289224560371359717693501919714046146352565903672514125160518475883457303822003277100745465574177935896986662411271664072987520956001782763134325722248042047943997596311277375753760487314877530902758692787027292009501370730362967032117952102832485568916419758540134423190633646797134507196928193819836965972474154721418534471026891660162029376083143536604660986099154041262376342593410634915559870249690133626168533095712628545297692109760350998393900458540582704455371324928784684437137390396384638829597199171028113380438067247847814242379676945063787659794185364302177032224874540415976617772272222701919518563572595468704432298526396678381763204430211927221227041539820771494360807747495202477966822326712765864484477104113587455938430784867438422169144156585839846956984427516608224277421187835138124322556631658388546179994109448836299668097510652439272268639242251423453078257590511985296810655627096583249152583852405985354224651466372978080869770927004770135496262505863676642908785963299769833204253076988278028143005329947107103162939927924500519052008464066789122848028604085327709933568396607093261854358665025264382806060731209157037381724909732700663695943915659007713705236621105590745155941184776920358476634912530569467187767591359789658516688337442756440041208189206108783439553769765118683511529948041805691941212184841992306117688447178864909456282800652052929235914002275115168389455244071514366534679510649891261340009686121900242473318221720047446772121874472528278128374693334242401246091639814052908888490001864020719235615002690845862372022695293632588320472510511257846444195929205853059669161310933054117503941016605565945645017460808572543262600431896376912817785094585867206686807636290918102616744277942497272276850175601144792872678192181951225276928712611771174558185835941303343385689325814453965813233031069693589275078394568677199597482783350492163189037338043348493693551375816078696564561411411036721463058414670816828418340503971408887635535363343997664003208139882408742929235862324260819246002333148529563140331952322715908485109581069967213307688985425694728340862378508591697988382869221253824260387940908884281010596306749553886122823528491263632911485702432557612360297647194469363707559071448755380949294584464140368587940279339183637055894916214023639125366731266841849207195451042571460743800306663514539390373659659289212355508892571175577170916756038571582039291839460425192451105977431231426382407521483104201629323876709548148907414791213912785695056548123284697906616821771451813719840259388372044017210008257048269432892229328161122221788929744857614775330951173733241324537127841852313914788787530911206485449934761945639133912661251871619311224150786430654631106772499682716055094354834248726769615745863308075689110143914359111570637681282882414866640004265284380099197397936016541755140610366720619357397384516036214362818650676580141882262120886164016410665252446567563518765233961933402632080889807570619289510189322724227542942270610055141960740954045499917901960360372643257598798116838539415849095093242242728045588731548582331240994437519413589668777402520157567173874016439420615215092219351290983945388011709550076672524364065435332164391532728912822423872745859621330301966017992026475686128340038787097128328923694171805853097434798972372345673985336318571383615288877980929672257830668362419564708070493915277315785511214388989262048117439291620648517747685306639977994279751744865961981413715271118355579392100917743860994498862012620478272080848644817386356025381168551902959281225212104197006445493163308559500986932644235988202459445829752625334591370708408954863044670281995501465587272335681304128924571251027999757668550799284118602059011697401614466222419626104670176509400503105477734854701783025167912083733377935395131570017527182036009305971275668225146210821753568427660020736055667981814971039307420301184632005480008317243012071224767202351070894899866757448072511207386584486699573093568619271216260947661405814085175374178272463604987201660898132101298501853033710103968281067235789665404060086264235110646471773573674386601477898944285510558077385538367566008330643547126573001487164594999366930924299795836616019666668271755380386099812716921620781893200982243553763341751675106531569229801173762524836748155360691293540864668469301618316841405717041008236564321212477803703525645989086015094677744817661710843710572468404452859028470841740357138432246977884436195771832625436662722368976539885896081003569965800754224588604129517335594873214085759921666076722522837361961081820016036270006648882721337592669645019025720838735033967887873554358664448832829097100039424528816320026325704945231008349630614987074697191707917781540539024096584554230282622822665838389870157751063622063579149515149233962228857781580841253539769563403906158607482480060381781000540243152836545661852102504752845296553986051839897445327292841329350808474394663328663805777189853272041916448426776774882840911179721856321946539709343901330519261564321189570167328572863748316959302392160337425431870235962638033633322123401554290342581301903880554853998910435332188623133048252814122336833888615780273980393796351436725832991363538472779147762830112975530675809022395418844558027511793064025542135719532445883176082697260721906436170226255197965634017254933576740183268365503195027071406832701131005875647978060110581351013573226392629127567342494840578344481401709076677351651086375094437100789674467951740267850791436701932387228401674963762334859009253702557000980906477017780331078203894900082863145568192784765907355210488477614768580987878309949802536017697355224446015302879931601373735647283775373189068118479331951697763647120548049062126068740725858038860232978568051029449006314009034402955216129784052084515443271080802751467640775965489972348730500771943083687085043480937458330750487941918556516548072406273260383909228482160818820175809924826852888345092922386386351415476494587781201465475553479177643111815561903145856979155284835402383260675679068085754615900083333702063558889903986822582728873389524909474295416724758436688773962571507778298075018987041911500981259260443095281855233108203427807996922656603546635862090924889371835499416153831913275983150581450796945191950456276546877407893608894222424445836297177311030144651354436536498330415855071632496048618924348669355665084279370101379892590879508265103688013387573915330348292407392275694868537912461999309380477897459671848991847218033883533075797550486213539953822584846236747342959694908522967495314926798473587946741960809896507720201697281347554261772012267340888696312769798006775935942413992763640470113652845063907365738113241409630092601360026238392231080091895934858851569263595424275804018358048742038138342973433829998289483267455053354052091235426461044044376402614752055452969284478231782707303271875317294686488286952381740218513134979239549921015708657376839572661124825862695267398899555464506477635360206571721192230883916902915322425069687753717819244233851750285477624369844574071215556803710841632056616955277592654826358829922328215893262410584323784312812321540472829614787038400631960663880977942128162762714019003332401557133415367524017970052143781328995371169190969592522857829614233913600649916177210404289001073885280264466094120901205625670198297046860682119523224059962447023148202271453701404499786246609579830868922470819098741964225268449330390152365230975214132991538511562461399438509405329114993292361201763579636486604647101702753669780131887225272060646098719572334058992597733102357777261773316171565185058608215145228147077872540987626622964702855399877971153407786393238834450797130667826522236227425360513878363014727640518122747048284027079835100886026407744603010967754978204885437067317091049203013425467109925705047953826640656055167571889000089705261158696596627128814159371573695332799015719856388389202390238814131727054498175113251482727438259685754903283447580006074248884344606398713927367840161079761957062755013359371038074804376344545252197791233224459758940956616888094135272261403654372208458891245232975326758265223432979480868910480674963971123673491155587361358316541473686297415280958169875869436544198538017464935155477834345521495710707123956266374668473038397491011618857726114614797509358097861284076120970118532468435552663488488336783422349363877576418535969132143043196298881397589631223168960279603915241272490919347635518030699984279334679012645808126271136604604135344772980129345654423995692133044773034903690897520730443584865898832719298259623359867120877532103942892979544887504556058911671739956974977924200975427876521814619319631659531479710127718244497881231680972560740974628472173759456919720859261051516912912609899124246629188901427097563310333744436285727659389611277677355212862899349684494085416675192075325658604333431499730775649028888356052026928028635713702975952557383276294549003917191036459508760752354786222150673005413434116008474730396006756413951891718123581060195673428576857738073700756983801953318185054721596274920422909533797380908404602544225145811491442681048399523665384524195437690392619970823336871161005369882758416363697773579830506317886948806006509760558775034616343084887660723790298085719089847108602100436051449707557838480395940625630752999558589637277429614567980526639275495247797962919557034248540216450210624001402783613887187056720165931522888734904265224730126365387082820647645384641315666326459903934788038064075058222206935278458825479739813857127186424439109232521988396644062023734398754106183656171542731157633686781701486484589811368287816662095741962013863769914522599092349699237789613125702244267283520054826206083987896561693853334036449256915684614693087273353452781174003540385202032525599560550052439077369682419554294811152615822456501324092268307281326779014693177741592550531222200680166149116869374114962062249273498220616642648956549215974515414374060170571890683710629937160451208862296649342028191890067160405486359600633649125001328148363208974292344962037122603552871919464336256494191932846223015081570814950597426610993563472247428508369353786801622749702444258237653272981426416209350133982339142731707198929700400857828027488674598674214309493339165357157340152339648623135429860938791596082683828536224265869565023430019908231316994838551449794602029484841536514175846045119116569445063364441871937551400652739999500560818532492240683052772540065133278135889620543480188907390325788709923142741050426619045381724676394061810114896702222265341354776820326867999215576558718118835333773981254852736411350738267129451964851524600639705621372409771649465966953758547037853545091676118381326969656099662049200222002777848901259378864133441725245136607530812884409391882851344100117318474139789657991182972678360218109418341076263000846433653478940336275384008174516810871939460000077624786405825071669739879152983740691052987810366042061406613496271936032469247412037708468073269811033298652073502912570019569509837797141649410631245284356713637896014622363933524350175421664119236893340153983268073147543186376878831366495914804347490075063608718046606356759857876881711946233500426819610023515260560618354603328986546104438789806638535354759408895056074102644404399207450297499260674557223532779428582518249309489954008933634271834291806471320216854910241685826820335191189218983783066154019515786210630045867778584535306622044285685960646367624915980135422410731391386288582598186483540591491596603658094328560641980281448676309804553007894425623770370749166923231102949731251207666347360983554322306273842818673913707614307963182768761524162526633891104394747262644425605055784609687880926662494145078862612956088607042304483709099086482047577023542083973907931697992790833032936436057331633904623337979693682669920016545628198802438607087636561888849891669724015445537246491278876085646846106402205758490372296621802241034974807195154805444039565960877793437662240403817696717851839094773330601696261458332148080447053191754853045697542417212753832200421652372341180142008426033539924587333324782053862664954221334045513170385274918568954058983021023425417223927636211877430314167669041944870889671673701775915343907411865639135923934283275972206500272745642002939887212079382341296664093111929900389052850333725075443946612003730368003370430311847456905361105410457603662457354260573196679796843511146573249756431365589392400554846961410197029627806926598367414730920490130315794027685586390092429711092226400749148377067086249047260803169267669427845647382046641716474998607839704737598411403469996001821769955112780328803966063365894063725536960695034750285409509207253812866528693499822592741139014264597457268220479163877253862490549364477393354219821708115359213071759743413277454683258202377620810200126516217628024185565217654601575635013315318007927789032683515063059163396671534300092563558217104496069868008141623649926172349965817279045064298468451541371537545234899290695975885040620289908271737766211782172423362982292114365178132597781794426525458893684987375398541293185123931751482825008016037007520954364847301131591470381413284614530808095415083065317076994070903229904104661326575113260928970261257787144379730330038626852800112052468450103445021439166305216587769417962635593347518009730494601570368388658725229982972106113024750591275830243013438418167535328792779352077924143290823619342569259970622047362154107235022355148140507313159879983286069172589574461433990574459991248018521820373049147117706528086426494347707368861964633542593183367445351466903947076892670852078616984668605445981120321723103773501387312314075997527078988128105990441014141424559119588819565761932639078382618137609342543050189719113999894974413697269512266164593690972147870605519098341672006728017067449873415524207762544126867156314274354586291182143611197346675505758076685887685109280368638431098033540423913092758922091431117250856816348695245925271236558721624839969723376942095881644078340953268561824478388546123785931655855103795083608217350802122349333893799007356427539527321148922738301744719451712741961297826090612792009469027507539223434239603469364962037957850479618716122556654930355136246962234777604745170170550581773864440389278350806852414754059318069106750679608642240629220086059729304171194472016896138338133706161887792726325256336975943787494145059727243441502433660389994721662365063889791924289563924108026813302080869859464144258394090143166308582653925878781730496314927783547718217504785115916221062950492004265850937522608322614202614111027089407420017210427856142673324095374782797456469189960017580557862599278498921973677029811300989442867859590361696695081388370814155097079690493095329837541881185043203364986175552787688289592100137060042988097174687739522109304263449890639372262554842654647254911007498603822572741131712647264375080227114776491482293053823476951110596238313952166256166182767760741698129700486016202785845868535274180762596102660543030013759445097277924637510121689813877133753290863299415683009149145785475911367383690869811895177137056825657081873920215372433217634369774048799161429407319778023588308553454091277577472462343019890605447381067450094545903970704672240032578965493362266564457141029716345285340448384848491878135212321148935759679638517175575686561052086683294517689256825424485252131837440042368679941463385912081926933487779412706274022034494927715164992218122948900883780149382042066652128516292396450979348055645977220838393167321489514825833020847662980301420139962796139220032221083536540952898501204986239028947996230401480741041237118085433002734986855447934899486607638670290959132808240074954649363715240126953957970312047255297206649708877873986811542325392015605646676853824900484161958231404394140749523080380989602103728266136488204569817310175658064949213865738408110310580147154175901118331889323432635950669133671991889115208811435925058652332355275069877758347489648868723286750338248854332913238978722532398019874223546642302853706830646295016306922070099351965387909049332857698796772364823232110137578063427943074783257219793210559139865344012572257829020206349911573747359407593196595908248040975219560555533259981174259779953900836297153023918671692265725610531577277170198063229217332462555169827287387808843173705326298137092747411333282062912773600321809990769782514984995710865219727052543376636983767288546158107801664078806744233663074457780820659504823033582198560193203449080858947755762856609155392680234188713233291605319100054087228734492288472659495589261472559396303344766478273153027823374384372302974570295378614793041183233740981482512507253403282852201457831295564859050404007452166112504451874634378735408332092104288737002945131040880328646508365839882800045925801873265261265705283386615646599234782452812990088834850967882592408388348120631023382932471269963784092018374653754722717325103911415316885364293564158150343752505203255165627816762277984383730609503598284208774634535359704337054894225108105978648315653340586716785677174158805319637747172601850019551908732168879642102395110797825533809802327451109978587851814723497577904652556496079574423169703874086080267687348274723997340090297266401479064326206785869442411992054823045391122320082505107356743603831364576434130426573647069147259645555199843172297169001763540648526471978378476185563441016029428022896129741494310615498869904089471003838355060494624939726699833852713214211673967713483092270674159626977892003253192138786617362194421482078188823308013375805949881887509521640202336689040957140478195573958826112350194088937987293181762306404265994677074541489509386225811484408730038207916028528632503184344258988918916400783859515352229441979366621277948978912999834257791847011611538381326638592237016732354074712024663889532718915996584654765261771948976181280286382532813190373049616324931229419341794256250229217074351293412404808706201680136759395319852616938232338874609707982067682170489997135759509020679397192145630135100852488794424245438383713426530802904891918927366803313442847421590651611766985467589924959499722040051043779307640158730239394921884692654347631894361257291018788667204673315681169638188419450023745206274138936401882106246243057025145745821454248078150533426592218951405465861635281435910401450795432515797866975779412514679240477985701182058762527339488473804869621870442800895769731771407029051130468639329458231652522832729579316298098509928836017699974072868894593023067398892047315742289662621374252733557394879622932045088556119558694158081624875038554749904017317951708056604766591830157502121801885063841542123969317620294460422533555102376287165117954187110560962802470211499677937795233611165165330596518226787825789160835374042896091475032304939272939206489493230181030385986124518198396680994531905216642036313987455526641449966344168880569816164562819654689828177634489781294300121674154013185865142731706739783396371994550544531912932975465827017696919955284261679060663118388678988008976523314101527992537132057171019741059259857034012848273119615949880079413106678307119205907608882458724192260096647988609700812256133728523008398631945435174804912140790797171913988563001371730133401679462557207103121014503817331640220832512762271492609063715717759238209458490673919249859098358430975220005338568385693732397686472740798118304421656250764436197155598209927584437861301727300556406390690458460555980462037190777895262999957251361572238836476983451480240248375434113830418295788325258290447024434098957509620669312523152464279173713960194808419985919294603655073317395893641703737430880474977927606781488646375037545092312857372873255178934223120145204463414367111873797466116661241932252731066825375940707496972955708101473054585615239480918040212453112944978515556519071428785030734493106180567662807097618835439985285885165310254989869551218535161827623148242654976020911018647807058685615610101479491014920935287814426824618163029556693208765113963086281472004580607117447811370242689313010663135231616563742325123985144424804481166782576157270609430028105558330570080222109183073047908149885333919687086152779242071517191453382726014357136549190369692222686498957037924399910805541846728869526184981782129024736581669420941758721677725021601885309803641749699936734059878692137158906637177770346572491436344795070388430789178622357444851358364029642924365925799364570592717538268705563721658781633380132858957486443469796947370096868620798880299028979455826429042560606873634818637220224756610350587681109735097715722836172309951895572491453192720188859886771102337986156792357389829871509103312476600558259836380414605103546842256438003259858988248615015773723272751584117661653700958970934641234170944894638415353952353280387728347546012126517771889930284660397813725710526929355078885853460165023002441658004375645624824553346544139817038423779333646647447908639619338517824839145831616236545448169750206532096233464667189226087779111381080198031390437316008340963493905547008673092817614984488234782576234587726761398491924169006389438211829253431591585412224055213861696985738205503920014225939880150309422443360209643910155660764169404867285977230585775854303170610494701370043814465310198697339558835368911488596228078674821100718960326491450863732509250066622656905300663921369169816830051256386644925830654085807609936161551478859943024434816982362193930899928174725440541309921262369582555968692339484853872945532584435229762288095738626625166312714519628030863688238514966607971436172578092032794909091705199405757341435151122156936901414869594935013856034844320251350761314479584689212389816829272979468219703931867158379947657021503183021220383614258060503285286448378327826523219130118837079386556959721820855290386302957273705648325610604457326789320223622070024913244949897194734503834004973715266439694274300649892646984710621461879195559735200022522086824395103180490772044959008425002226358801951700310849041973325264840462940685538798100405559424766869890168842197298324806581043150862973106563750074477595671053876771809260362758708100879419197060298295214768876663805852667734731572702139069455456137788728475022912506981426490464416680019548177640521998586795711860939842729248555170195227294529594100966461613194371545900574785513826206653009072652199690673225134066925827770047181422994416441151140720573231363237703508224586399463303009328292353501020310900501813692071758565313146782528306685232554579965238839465119021998569692982373456208971485302775454989300477540451746862205228796467916450513361236651396482587388294957004140317908759500099665130080593483201350674030909284343610970805379568076511703291116152841149141106417222135778880924786363292918707550966090011133709813206547566872102124998487017795336164554056254085053350466410122125748703790958456710578130823221152661865328271413855465154982945352729148511311583716771337241934786387172242455290975875374011035619167200816070768343704407388313765185976289837646434965110835285032269568942126614018855984310682797951079348021357886859975290130344433360559017388797210117503245681172409111732709732116752129698974884474753651596315562384021741083665180446432239852857709924860587157157180541854312965141723417712093899331397376444654792286801954904874166426656235347020414163932685072779278191999138804958741717467133911638707356828004802502661987926213404780764269054505368375661228081472386261412218539606977149413506917473946190449218459977750544767198144770715275394884991652348160982351972844920367273081828896451171827403339037401939262452536731734957274317293140197895775776081062916578582442789447292041901687523145093169862043285842808133290914847374812964790132333664778342261234324887793008893210453639496283506189671969285252588201073126142425387020439104981366357864036064460190564554452536726527987080875360870678306094727475270168100669696841722016131062931674969866538448011880498917426376967241182306018359346343966346930578203830491356983694220294807357869228350990810262622361696448978133126193815618058728359303922154426475760136193994338157888415604938477354197111165883761939733281504608792237087640752263339434790485577607446590953662036307589693661867062860936764348684426084154734101268514318088005202847347187840988233202381548849938207276829999315172882009676063724926374315238047870342338791634726602420519008835580910303508254263700843791712353825289053864545236697280320981425711844232338657735430328562704670643677715854449727400865099947477317117778249896375917424431475349378640848091986671248038603535136116174725242202267214958968268374221155687834500579446721313257633898867134456387245880455696907142961085283732325706083114755224968613446967530054093194709275515546514997465169906164297878804134055538186274250584865454508531101782113526739552483779580107304297531143659946220399815602453642971552319863223197455831840416800654829232874184596655467497573982581679702970092511262075616382363242928776116171990147547410296777511161931327035969442670405744386198164285255676387527369761190619182025361496169385603594115960876744956946792290686056396242729213585605071741951958558230288805893674061431998344175330522395122900775191931767501571097554891213873573581349125370113897102535427779067754732319601399717854132705015296043938002061228029796655720719424473550043841778903778318002697259513807510280320154005097776922866087906885359383903938201888178487403893545495571635061312216581319209325933258619991045984495454693472351667214297985098968289147716643563649090755865527161994806210232815832601534384867109076721560203550386871830222882583741948834080580677638212611322856916144356217593117783357481869397330619825160168315330763371214111267828211442110890006711335226513521828210448625624347815054980650943584163302125473670101541147520358411197879103797496802770587117345992290843999092167257609555986771815393026990011735039435358593290442156164778252416994642084857220731199793119872310081384601724921816453259085759505337194191566344175961412444741512314290032639058505674072882813744897826049409231418682138616916582394218940664048261407749356667816599023340081381886771441432178036135517534019056525834504401778656092533546223626686396604169028868288250035603491465569061374523162854043879838969502070210394695084911606435544076244612485621853113359569233309618278564948787525572915742097295076553618130781617928481529129828555439600605192725867632969268732203104460496633152603881704526449777151987059374899798257558276681171740743906090903196362451336683595353080985438680367720914612705566251193493066694313796841924438309927942026097938548413654733245652028596617384569136364053121207594702528160489022814482855428125647880119767717850226587933044123369567681345366822461611333049726234598056276617373295160584187940929322772188865417762820700186498834613961695236587224451133071950310747578223519340248449345623806942283852182954536936655467784947937819613071566381024432032936619994408590416915457694921287782254154476027453924877664999754480868491946140643233301444749748454127561766917660730123205719297256714814735389051175164576006534539042965719740175724624296617108683211613677474991986534633792256836664145072157806736995659286379792440465089665556819775067223460941495408361881592189345785632920274406133549889216676046678453076243631954870583931256158689270027692311261527157599831308907350363730341499305713209827049942211769881446169293448052389355446702382066216227332114057039606904526605334641757484849686998553289131357652415504864350994573496871004614776920955796251725057808661141850394923377836103474755028029036209036465041056294850718240133578385624144355339947955149956278430309377839811807266316885771162309302042789653617103615665126020272790755957112829751201720754790873128192665559341015024962895737456842334407484506324662188538102019341713454030829334629651912100782655034543877651311181394675659479106424050365223926368444386523376813918290146718121373671201505511373662955755539189007397621317112420843951932671008952634528852031098087283574433088181890172207137412904340928944410897443209886666159493909812811112941557414544875263267699523244871566664719029190648382043468261849719788367019310242208367069557012978644105653457752000326379924861888381603713760274206196576844642974542187367616549083068935923793140031979734583007393729321554323289083642242823588969837351232976824685378543627115764668774625034570040041753515252314248067919523543814797010151686122466638392483501291231687902587231229103093802599561226852809429231154887138870549422921754485732217089753937873136506443012832143739190772260789615444461118459421575768660832646011615126733854829426435140718568735871256086361620254909129997632505327203918290739168041758793712858737077960301915099660771224994973458822149843910790998871280844082885772771971579834236415664338921974462892418862962379660028334039692744753857429330268423911966851126569539031716654098505535778730602720588215163849055365909347769268463508201758090666838006514664560305555250677877156801630998547811090806278578146512012987060623936284763916646337698840556237437546275580822420236736222021525836045393315844892977896061480441893559284406820542759142769594953606900067986608129574834406613840207028200928214851778162945317379901217463282957200020215610884307606802404793096800040267255922207226892941970304389033172219409684623117669959103793269382445082664582779331978438100959667670637614417155573660618736423576039464475033118688758372163944138840483688104694901530235424791860186539863986516405730967849557208980483281589677995768855516295159345402589986133259067500833134179946712531402915041514401024879871467137817055933411210040106633475396303679617834929636410803215373842552792278800172408977756530568919590456178276108256374400510510433645166768163918930973816073818133381976560412503288887843484416378007225973250072698354731753439180761178794686442480987697287931813369981201681982526621563266861934762984456188676668885122457209170442367385701796793985474276528150913790415178220528504594301844304872298573922941430155134191593225449060430657311657505900427204885438748844669380746822308672908817924702183543914443331976389126182208795022457854360491767591937580179207784219480655530972567704291890942602857292818281676699117254087533060297597201276199819711711582029466128511296118552300726425925132621815878001949875198990443831400534746627028241986036136011211816705431716673768675108394802795799294113867576775088860892794499684218427061556884533294126141318513998206756955685721224153132097788760812584169718902008548840891484904254213711021460792579299208466127319597744045073708310282913641417302936311970074265648130666113275633673203686389548239690646023594912241830686251932472688604681273150139306889258467166250707800022316642213329172369208267261767148812856744900928715471340603469371524352837043962349217491420347846962902743302487936351051433582750258190511514872114183377510756379379120699899865793622800053635592360193583243690516503607531415987476277987342561440860096793116023478688829895117136681611356620654841591759638947726641438024718252748675865667650105171419640467888558970509784900132079358854581060209014498392821995404868750986511286742070648261481108380066872786207484707221658496534438693894094971407976896706141420088916185034994525699723213772458680172570852865746984789919729710581924704422470626333051535540504090007746689596571947589473167137030781461627747065031272321648307742362928711410778526901323392030904656867872797565187417630385427286057898616729957768868645652166515605055099065931347304484879041876300928240051847219292715997298496839976214866424767259465744760618830690977672239075890636982150225310775967982081517174776798271376739377144130184187140990140301653926702015300568755667214935477000101358597431697852425285791100088947596626833925490191728233772906471279567738030027545562803244278466922371416632093706436692860639790154116042022943051147445308729962414667237534322592014427559922466548899069379060771679106970875035998648667790388810691313977170931868792594804543285475610314643085948855575354911728283277689132635711684354326782559766671740446667422768746563267929449965843273787817250258961416636234554153573277450152478942328046122380282694205487064929661921152150297868350134568010684239802196225631395468299263330512748592383229981882596650085281689311522285659402364924691350004654089260012837688519902601637926136852834527014814100271242281995033286004368749134965376149076575966759885410898933264973397396423062247325364575076866109324044134349980363014976756795398761411110982877818004707485891947164133957530614915445896836366597393801316670904282860615656101915935550663561946322318261111268775135974199972890904332646040167501982178883385021900767507599088226473970856128112627760090625269708089355734037015143125773340145646128471535410124404681189059495986368395692758768935894201417361223172855430009516309201656747726814661111182681945564864688776516249870949741111443704465228509655826216964366151890598183438389560477436419554162811982979534883849689781985470789412570755450861648896918949982358191604224305586750925234876537468313350331827812766269734624914484939863777439535910653371403698605163732529483032769858589179648444603535516542066577153693546596821972306578387839506107560608883553655070298562977532855569165900475008877797610711584691621605042256089877389134089390021574859680720440552019243904166063155688444801331430336859107038133358481052189261017020549505945113763741298795751027991401543620173206169819651702174202408462330426525290862732636695471987390308283508839468638902424633315806200311209663802252350022109521609264594244175339789081938535356507714983686343964396621610356858109275034264992037670333248612326666720007978485582239181465373778328057080196303293279153177532015331593216647726077491691803510008075521059984021603751977837975257693221145479311866322250787477174733719912087350096584676416115017749049114013312970006065092688432552603690106915696014880496817101348109937806169638448461330854625224064092844359457433032936766513164052714915100481910536898455176492397393328870469295542724604407060600935038294844455951841028178442715324175342163574178237213770486426538408169061185085291730725460401366814870817818581808869840405490281205596435719742392345960412936173257800053680560023462408935464506284120016609685832746130310269520165208062303825618970437388833951554127773589551419244593473256908143930017029360766971208243243398191687400010711992623925895260567362588036890001262937288522053696646242184634478747352951674732993788349285942389508920380875727485485073492355444814856466455019879660865849492094081132889610068395758168824549675910754060803865795497407122476457888019975193917276699666075224008414650981979173605219019309506095879287363661004265007743057293520678849852785520559951781662306098184953584295916328108190924562940041819082549613486104778136495798756689105898815498768980552931846218761925769937442352152066156368487590342453691764290271961398159827109112555450878837458376276691094106215226169249043191073464009314831203906035490592648605698043199961465563935164256332455494914110850663928106309259414882797167358248709164523304630410196503526746444312093617731576018230276552372050556318596099703130569777360274326655129308667374562419298693474126062350519616629651638407119332522996985785163952290914394184607691344740407515765779676757043102002432096126871712978902105688451131579305880555069890985977628047158070452362129376419337574937426465487278568147952342269963667732664565378166626728661602681697606686649539156378159369097645189256054792202433006609729534491282970326449066076745135982048803143634877483598314652719136019201353697725628923883485196100094869285386300093951040062811663414484045189541053783656974997973515179418518584439986546557608729251854649238924002104209328936537249109761355651735672525042178130002337611932281647862730122217312667543318640709800074430930888457724860767646641512977319312456975520368047481401869277418394238344991968647998955490029164847570373108869979535180904149205766906989706184649771040810611314846529940447541490832641743777165126589540026617492160932693900343104921871082655173639142691212650957235906404825169082808789490085388533964658352709462748006775858641044697938388292685955255280393989386662960948691775408226474032814960560122241326538180837365609189061734455924275036234221526929049826631917108787691667181433496876664447182586196028603524418046935297332762027376908245799991353962268343930530377798344717466411397400481437805360948475236533816955945564952758842191411188506316178954494998371022704676798033502405279410329649423507280135258568655792404074922652702343858909737469407470294807466158760245598894986447279663366029525350733617474829185435352343074665175623368543396407281552354693204044802821779824410063763805172679186528082413262034204537991211000005447091486136893070193629760569465534073989381892355244772476632165971543799588820925471024303729501508250719836046416388478005705999946256498420632637452066159141157101503467117734089356498085779528306328389147920242362798255474157797898984417532627198644979128767193318394467599900959446504657704997336308525909718686964682913717499175861728382044539020137038981843593012690879343476356353854867899306908285409612101049673229990230217047987504042191033209159952302002676174779875291476172415973262542292809090173920579300521817341560996766591951653775962047128911724289479059149190191837586443053559619163884720985937011134443883866399642744444333822698507247048060386885980965568362831368022368615169183288011708631215630688590761341249672626020310448377074458062826565689830090547435598279323531504800498904534367702504921755676794798954300241561829524345032064077128016589508015897099607215968608672812728788518024305892380974283377261471088939170432749607467127793411815416019946844259732936895334821628954506244762176110865528473913553856819945322228233389830243120610980746851706990508206074156785941435129162184094228730829742175349611961787976388205654402780820537696229631407133648774414142882344798158235983763512229898874760176007105823227692269401545562168063532075103074400062023690536846715560244792386290589765448553322760772173929672448741894734996905267392859200250062558857273535590585130889701812741330639779224599423549095816593215908182008176916767481470213062305704691784225434731561137123789267577502507267033506533721332371156062519562149410397712694661612313383864425426112667671336738609381175034541206842937516043016196947045359973319740653393397820397799524140117567223767239291598409972298596710666484330708947798097506309815456376059667588662326609294170830325085908063356103673824964568143565200678980227344665607286628352547465073900412178331983797531697679345832282701975467675265366960410402459501481289775686504004931371959215135344389341814946352959821491074668743696408334845363468029951154759664519165860768987613705690407891165474435950041015235775796401890161455136922841071449966390417009984101821206441142875752671519968333679744027301128399458531571327102688805807742957054918740846383818044880098652556684600606965280776115694480107567097020248446064124572515808852497614022726971441833390953344771808430699153319740101839417949316787991210491829126250687171959008252924821548512326718520242733398183464198519785136524731957657906398448930897865174741719684377053125735030435077332755370622332160560948559813341268184606893220436038044689427608737289115293720961953652054769744740256471951924698236650298369126389216986817018463245356919624844355438407879290548158958271452781100882142308459633091669236692747591902940091354957254332489014083226653051569249802260102222470875272798771096974797621726608347632549543764388761855674581355632659548408408977903415549286636928024464460537334150358626118633142343955920902428524864030571434891442032001439836665086168553856917626792408495019645814741202246103479096719768308610813085725592013663240809381729068288606226507248352096646114964700848509836423311826697635308148094383454512355255375176161387208463306229590765670099741249468576887683403542531282582986930657378647861486042805578672793030156719547209889942457993475141809072756842459603439307599414516588373144924410722370760601456749791672560155128633482993202698664627418634541883427134570199680340392218692351034687097144709103871737464580493286675146184527487908063944079723654969768293236797253406075291593365209942083129649233268745978813596639250549705177798747112912865353713806823899194535516936559833490206677391045549436737057093165817809731242262765279098314808521442285619671559804503477381205247512685482858276654003882399752059795834686555072363678538970687156103253539448328970166614034305939322058927547024158465972798501843807874875790728857335974515709155434382176000030394918615890044475983314465573853414317684655231105432085667705195781751599136268461978077264970236021452738802002110453313788611863252814447701365282870628019016291673103874839000147925977637223826924134410414016020625610049864122742171539560235178554331555572509297753733309870920592349082326241417755096874410527510928631673322734074924935137132590520394366356543907560782894755428492798521142775311667434674065246021714016972883071363272033684763277214361703786171105179257254361687178628332181885318632159923504083656615643724212414422519447484603458557041598869243607709642067881956963473712669193793325597705541605587575375592318843822226931682092958945012709141320681491429297480169260702783108626257792244389906133709153141477816459547990813928133826840721950733473333296475125952187909756974637759245375526548347500275148518077710761940520613298171650320161391027028774645300084777122306664672608567367202949923889351231597044032066255589600249414606937056985323734353724286614748838658543799778963952304374775079559598248256609614720453331269869592369748590281905131277125358532040854247445284101378483333691177852964797699917792951669702466220204294364628073654600879359964030363903522963521728047700252491643458608425430470891798516254826420264869062242409258646499862482772358681864893936174334727608924935593870262627618714133855233401021333865369719717484289283613123874157128234309345790599288087588251287940380702722925908621567928605146989891097643180428675769530998564984077328304283891336934338695954869638841418351332504870688604603771346176882592243814089305630289371585939438841228452461898174845481830380392420240665411535977585657644793864375567261525641209058831709886073905138431951245884539518937442081291946930978446571642328541324229525080425863658088236034648043076609061755644779875142468392372789460726961127073944977219033847053987684700270261395645005445984905785049231764922510869341110423617201525849535607327173412211690872999487404024197720174532628776939326404320711944561443181546185479000143012516851712670292252074353614676498795576042365942298168014373760306379756219838120529183767127302252443694900736294717136941276175703041909297686067422260271357576979786328755076055301404708082497477183681415658773322634998088277842538861911266722911503813968287519060963117545144613169942003886986056430784889644902042384755351988641570736678909666380767711997492703980269655329226662068653179387304072078609709624084098368795204031397291399466208692135006663958232892687978245921404482197844823888676457839786181157734867759402528026547707048377622764474670833796974121099302657218866067278015759292985829654489317725005607726772874558005751989637547335841314844509170170623407876737171268109053105105223046227359853012217610635218141645912467395540736300347133503376001332019161265062338212641626900955102675856361784869312133600196884145327548287936711708217099809190433980952622538346130235076158306177589733410569538476724079401410175295666849160502319706565948187711348976596321974551445546943294710211439019750695435063915541981628095002053312116129701932327981462063484014390255310088399001052358757281324606749804532411196340524188164773004563981568393118259754559034419667750037295724810426087177209856193234095256301653349369220894226715151355658582887716508324324525959579954695309902736073620439059878318431461500050459265003572903146738570365311247641107276781755922591930691377871729772913023814338346816966718229952099789977061385245114610681320258556728537896413318305162270801040675413348349151611883147204795624527833079183626181984996677685123586307798479940478291214005958303999738567782638551713763813357152259310529766322038160278502760777167378406994030009923846995062649156861569448704576536560774838853609334514166032522252965169161585250074528181540596619415360272365729997947874088821747133755836712137591968253100370248022585338893392889233939229051026849698062206784664089761516430097083039863603707967477563657031239873717935456827724316345839466678666294006526678960255439213836682625814141584881040316015517685712273477659536406250958570206937016499104670444164544238324763610090979014478174748822739875842551816920022283826965173665143250870167652296788438076379483803881506295604953719133071937807968411124958134954928107429002492770104439729287422600447949962015153079910638419476765797614380682079246599906639330059577279214329545707696451943677700265918618492011949158096371981688371296894450834871803995496444691419933344320811459311288545585533862348918964207364557962235613866946724926188289190859148738302608140705456218326430345161940435987815990700221528083892394968413022029957464909193609418049874264947334601429308947907191341170053367099452288381624455901585431068912774571980142986640975815206971797969495843162180577300094062149590076749530643246850100020739504250008485562874156620853567113411931510898375716945385900540976688680147026453776362159062877028324037820739063115441946675979125059377133843331312548024577820564742366989370268393965626189167016140399240435833759206971913251893939355050853012898614313712048757410330075483134867469905004644909211351389047719175330816195593278134172261034599309460314619046275216034382850003790764815832858494752613218304825115738931549299655661090087574456310042621721234568131072367141860135241522901568415463005406170539971872061830377068296819506242443120407246782776920393641011219958978349007061083726552130295484870131437263345487896550617397695596300121639845852217045903836507721145453960047287003558018327663627807770936823686287994880923249967407250421644129563962087093233434980955116782926305150134289904192672043954131600756167135439002564937349624788371794172445998725014824511605453575090485368463193690485099687328396027881340569546977623974123543716292611323926533803778654263293419064874129383434207544906991413492683319115746572269602425653705837934514870533180490077453066519586561186500104267937825170868307031599488734699244988579244854334649787458592491440002468512457605983132894211068306223672954722089675466605199905721991739150010418578143251321760815141518727813079300026208606180247044779713937750540334596439666923213385855073252247407511491581220022503916492082471742795517121300222395614995699690348102859125322871371032551319148803034878917644317680342994095748984416193977741703443771985632881252413099429971884836960719999500892553193883734366187837896251705625409166635066775796417752514661117772014775684830472616222146937230507223227456850671279060903186438829345267132328115893715869794692790209828698038175585109946207326838650940153157151131407756273879364270502988212007225997157613160932535745385680766066794531766084548279228268239314864719593403434070337960572768228644853722607958817369486733927592028631802279171979364985570824011561265111103824080213657641327750647241062779639508309126892360790686772088751431711353267517741209431412386764688360533991960475941773513415122227231064915015312813993506112343342307359474366296146447116140726292452854299300219535119733019411871239413398773405949371771169368633897222172524331681021383634864089604729555067514629670017902485302801388670174958468116399594440798350804859065161605844154906720322502798204604938378079013147159843621915440994179453092705674794442115618944641824986138113491542809117453750208973885564681079035623104353140117350094418495409740933828788863291113197939297966348282896757274080012308533097170249079206809821679678245537653151144896814238271700464587204622616164878895398154606820257577585153559315344898817939687013524303770414445623287915924079622940077316480032358701622319313690754214010286259891028106093504093830545756733672257076400875856692958023912680576458096572108202698580768283424132934320923199831881185537197448235348340568726998983950366486209763771865526887715801536838253798796387564985881645376086662386179177069281717805015676871232821850815862277472279239153631261743909410354355074881615745745777160509841110430329866564846908343673720900347244320279197635403231045371897373178414517308690998845877169375735221790993170456953617622817873533479887321343466032440640566734510798272748925570039673629523512741019377401362937365770335892617916021049264791875836469615897334899625635769601648828519309284956476988450366437829346775558393674797542978775495111052365824403724249005759398069921970955541370990802744366399220644557608246010290604963240959208047320954012633452923003743402258658957664086072389612171134905488673970908707706118342027088366524584546347663943260824915772031800309860930805358846720934915588881654582540878677018923012834954006495500326586465907889035613114588377520415821308692784541382265384127268782465979823558538532158321594269619792079296349663761966776603895256700909003712104877028924200677107542638389648149241451840934603141606267040898054269083986140229997563012222475721105769923058236687602043213270309260619519873530217316297481920478968095973895817185665047535718680525012461408288915649190908394339437935809308298828982111732614189230781633126168294235866059824334320479437019925891120806245719892115307442919847167636254189413109744172799652935464112397500286344948683474712668431216705642236478552980610688715319704215277501065135253548542823750467948511111373551148077573231963249825830429109420769957070710975513680479826059703605920954710168901580026267862390544698479918919598600991360561835799822316503467964819135294378638055361995225059058980237915035822679433483108645708855600455326341549069230248736837456853543020803887859814085326124766645812885648529712064712629107525120396771927091305929531925393140617797945700428251785860729354382811271389397552361080223591369188274420415878535425548496277484672421784037212426790962239152322513993541309095820305244763144487192067677655796598801340289118141060821604292449968307056944240071332732964435395516536229111589516241474329650495562815048619895765108945183278272869435703533457671731940051854644614594205092177884318243169453465157407459653306935002545769504196854586837501952044661977730466569732421623880714522581559098882538733805983828603172337679065693529625961077761391523884449046780940139670918661407382173538750524286652005494497712819807347974064898041784242921279437563141961501601394707017220832338797060450017164259128737177867672842082577700452348880495862701193134796338341123337354651113233882440576965399620784176005687891700464474051697234509044043348043848020824050222697883361866148817081473743457404930768215083770089622049361341613177653677794069785481577818823115444516916519818562221019666881697484734897004798076927917826957864811696026058337674802254049742040438384471061927994777809355590390888492504495111527683588192934490130440685052684044610958678093181194222331644307776968446426849906380479175764613314992775627381768850610086598797039881059870214411491609224680405773538339017473655162671932838860923573683974380297410217115748904730052404943077084366714607500478517409192675341505725286938438169110952058564487743221843449065156131842871677587129626405760063971945397665805368992541371391841183985763967389103141269807539369611828457494667583003350509182532552409034955074952513353318669637797198457226861263758740555841552074373824260801890060776002964621428014078888890990359491842558637025611387752073346215851006962857016725635477450580384031110081863084729146617043816938212497483285287535660191886225024496124578858921654258965132538544458454514523194380887507961219589461520534919755610046394335875483698538339673935989547286385366070325803011534082195911190431262976516278304208407066098705429625346924531341544052115739756840405925665770428841337512494088943299441454220727687652741436142774242763769887377925015779993656807372220119710348539175646768335849476602020406596890422575016300475169309723590210945854143876369912939506430600263069596463026056359916264069797832575555153185996063184601526644386379986885136736118836557518886652882738271706715980239892073826664094322251578089756562414657492326003117826930878463272738166280734294259852950862276873760913877030040335659709289970467301524334276801366970108135731727371923427339118681533021245087344165913305695540478701028561426846400876201653518234315329103247632194742100421964013877706102123468518682195603180806983197893203842082277713951914355306880275926266232629349264019397241088656573151549800698698785612949831963756230488354206084659480297177945986620401891964257325865617211011347343373027863029362146336656325685748371539894293368646999292240660008745576348339045662364805652814044107623856748544908583342943009246825401957774640768403038820715153146499553674305237377127111770277453834648761286860073838721313197019653053959856091285376130558345717532752052322781601738216291610150838310281076162913941722987435851499522733958596567284932107169299590008151596339054438090521154517213215631206841427415217912648818131699809108363111924002976106617195783898088046517113972784242740767366813270789354862353413736159122691847060904884065024655694363840427724787381949768205367555562342816874826098440126872742336531411068341252040707591670656365550775307654913236923407037863739189594934943334194481305597857307968350948699907792167696266945066629977316338509721395417314197894502794519443124976886897426922848518447860371076059595134257979053890004589300385589813754990929458016522368980548864418748174296787563090587604982510789176740021093362114483070383049725139901560746239027881947130029756308984227158064076949514904139922899339933299479231546620481122109340594135916433642469025360484014304163752985606398299721062347809917373653045417187272273306161115245923932797290647160215263636846976417444919470922612614670801372027330598860397171379025950961901581324839904063607535483465551627668257584861801834151909894293498963756224215830680499262813874840191385276603819739259269731862942294678963732228617297485134460456429430686640417690924615437505790243972722178898834186430125503100678876955171390953448973970333723693815702543328891878742481000206523957925388025755055703416550709586732619588032958004027193360973607560423350356377669310838595019098912679288862990192395496134800139759306853868564434697847704038107775666942523287778482664170707439947855686210224530607911570338887050342589623560751373909399613102651596919680495541845364488849540245165726121913707794904992486344501350711487621372541215741429482334277363106207144311962296657378584566634534484725194019074990729407494957936330313946562172296689087615475123967688220431227494439186992141575167258331151451849343582168043005868064633236996753935628356900507728264408905918773539354833237165128453692845835429096455194055918493678024958179595351987744361842743767749637466350281486747065163140367018971433659259410410473595958827426618798697467508041772396082459198524452346116904549175214282573641475104271272373452066900114085901737253616742234700444845345340556190826305002337229559259809594075149297011349872012692621890655000240679025220220928786074241935212879697188211503191941949224345031815187240234826743150738324417918788889071560257337831950324750169036555091532610918436856189139469411668408146617998633122785406741585148543608538233743683031648817799532436743945557467107107988684023158945463847655716248517932698181955422490969325345740130276316894566521091831426836651146935579394440972572020741033930339722133745532385972768250293535648453683109805512748552695249141521528009781821437292265132261800331006558618255688349185986703096096901961590699004067953827314001350022902154288759924914979079474131304819491090936942355918016955462958135732639615532506944660063663408101983341927947081425963061162861107700805370061390174291369354468855983553580522500669008441073052274975818898065604169817522625192725026045833039345962488582537489648142491168322275979122657912139807618657204970390060120438454507262582353781124332998845267367098661961287282182194268448366550260945280570559055595483497033087262622686298866049065629681820389943675651783302851186737312002891837687979914959561540350437128042492127045270985447578848393310439141772482058026111358504953030521916404115418607924236252442570542437522255805589715096177922997209027444407406057047854845764082389811533711413674733454841254896874707240818251017396169631305245427227915616770563312031843484274324462835235438079671335118245255996002035331023562551267266727352768886772919788555000905098480716725461186891303937218724170884012406212416523304549248470252930488862546222396349517062068563430767746821097423280802271878509851062101086851362989513368947899466135822131211763064840901089976113340605289902885472051770694487445756967293497791344107674746532307390091853520190356354756819977785817445237158188850628739430498579380793328297949875799624853913367069461502315620430291505136077398565592389963914450363070411046870648815333187944411947796786554290107046981377908832609431046382191239590412036803943314723429431931938155940419893236465207365310082776691824856731853874602811800052904956131421096379266654564870997758780758756806205636895974413119450039819518145646641517443936776845591595249873781646587492344696694191917954483801664197710812040509895330035782803453115707030155382723204708542268444498554085733194776873639267992692819078416693601071873603731946843539438601690968045374787003587007776294801301952005729739564605494286098435917749396804184572078698011441106383083821171650872593720611831263421037667501351823041162627619802217772959768004837832524752107978830101836163276496827707729658483728353841551036190628980315157487893162876341086519620043222621758659615832592378668064281467343833254835730254987694223508838489621471073250817141289261222961481790206769765059585179286923419522182988851925039879791530072336819233342917360185302338195040934557174415513777279677313811691754287479744435161725714527411524560716333279891896213304708800154858499849587171341252503637185588624361015909823430128906649351350700339037544006440966784144091353177131561469614935574976569191492912650423470516249866141265113499702373537697739561626670678875903779537117081420785605511997132373208243614734867660598640672584018964296007075395018375422100646991074558567687846084763824796396918162497277639855228173460782731304472789020788747606104486045600726473475277598428792326000262562198777177658436057709983612455472646023767155557995623639541186193561106772837992040622691421930496447604691375048514596805539936921021680199278484201670612041779342002807284059920629535934553829581719285746540420085010759937852193561618603270528308206901404659035272300370748090791697249615820519110049581808028596569164318093445831065272102906385854012283236131939631836652902581689137689671898219927552804282476605877708483429959780515137481001258766227132717612471209944911786222537672104802377349664531860211694949985728032217162784457338508338354479400470650192644780714425111423049149381487996468627454735184169617553991045295170222185459741079158301293352228787278622779745686357534957979969417566713321178242446628930409064546410847330172978674187809424228637826190890847513888409388139848157643514067784551461203686180532243299645793175856585632893877085255603659860806995626857367857721265844278983028215804154038974017236585381089806917923622463610803821011031191061101037380288603193602619850889154996312356000940221471968780294645979810338150014026253664720050782040906062458232757535141418487607040960146210073349263912345234817965649132075065657666274334906748838951704713052975082420209618766290792470656115388148732983873039814867051691191027166667842306356608236664063834580589106270906897084137932997219319064165953980565041957311469666048098621012881210496887635897219535636436914648002828346127872004211650239707304062882956425729565853625794663474568787708170574741364974426851078775872251407469771344918478251624864559590834290241551949319943848585144029022484319835101364631910954035067228464194137722237768549927137054296816754514350094757584744348202158134728587925914282799058903481334806367249488825500201080726818765463671265553509930038834428477137019642274792235361808528188723561070237081866403952810923458482957114894114258422933114196347085493559518097830609311612650648642588621790668322961388711053057776727075352427365859738262001468796598965775740589906107876564484156031163833465008826840135408109976649420088853112300371426340676882698917622900124399448727373636359698922577379811193375668566724643809565615495565481783742747778956730890184833835404159249428968214855605036809959247966125725282407821306289891255245261076523963353175086828502873378840968776635148460290028788304541115216356869917041006370546621929400312238484673259267960153001159412557158328337116798130019356446629569711380891619664989672962266481981977069057651111720491832636053477309371534617320469666395062134718189931095406654057344642187488915054422246601065883188520167758422074867358266242345004868017379012343840003427332823724450441621982078160921328611005400864243448607772681602443302506969625131166453660329706006771378367185682003600688210769738492176902640105821880474853402535065396593639063291404249808742634520433369986479316609345099739144117860672636446790193813874700087768779510816334722273633065988717525921527166895263131488708515308730501354188310121516026660307911824521342840348106802223494034692186398301773309046890025991739981574217554218342689174894013464497839473827222001035905498209204479187267732887621895096994936119206363104152770773853776678894683239954926604581708552499127108253850012541248902700952066515543430140583218910893187578303652708632428120759091058965774852214032378885111369340037424567042267696464614621411457563048197924693674888711614617052412783252614992785717883426388354322922219263428348435602353643897401024822266109256244140329580894357884180296063211353692775580048565057717564968600670972730835634084526501589180240020760187528176894850421216397076441037996716824730098337621627117846933561762972041147455730079658722076243372449921827138417256813269305744261388625678822042294392551389411054094347711698766334237555856509988908353204507595213668330052483722006024283382738003040593653888203460979813998711791680790781182652333347861966796144276412514338088702435916310110355973778661530397684189630535401614451480210856938425063336817172571998944835882253080044249866193855567621890797054561043829513919184212067964102079876801141718714330611817724673437795425827944525742890299849469625769606040314841271091935433544754523549926088191385018962565441237262802035374349212887182154122220045659977110696113864568555721826473699270173402555994175238031226254928742856493008749309167679296030904384316559054572450317378357021242153395811593465253241929192236367579567687521080093615459200271052528802165521328932501190855149777914771884886802884925545229151724823968573323397345075681516435884698893185245507925959666380471923007845994445389413219282375170651964439805234591274993912645570972889737021467270970742563323123529794957044107131363998371127789355593850932859323451449219232306089530616445708008401890672217526385359499441811558919652740862433449255137149840662802197386027047396975392671649450217871097635113002613536658290840009108612357370100781962663615036025245285949082806569497988356046192268015320525512947403600106685631434838386737171270033607472949290138716064448069750327880087622614861856628930746988465567706566974432456174001174966255876145050162345227493173989928988679336987735868621433093389343707075309552704884726999715696218960622161464169645004494718962264831034206489534059226495220910836545233447737435763950219374607349122690975034971847137440117194763440509364244788920724437301440867354258122991077644773265378584889287171024058899809920284311771920909540253769827295245034018865569428426883716981129435432194595998758362795381537034837080939861700651386622304363578767146400888674888863919315209485428688764814551993853853412950414380458048869677817951171018644218272228016089299132279547613618603272835038960975438179942389681791500350268485680427540476840139800762782653158243836926128832461427314861868676617114567660048498061535664766248628935770347631700874647723941876439800401192868575648506143356017746724655345311122403954859605975594638276560065273168819535690132359599768694506219109277510619740234714075444935689813467149535645419413763393632964330946160550676662703608549321742134209160895954120920622076908184710206155571282973188337190208248905643492610882767068653015690403005714335414885926272364337528885963503288636268266884181814508915046482340576085362017564012222460847535629173586962934863074253960289610864439570983266211669068519012776552910491913792764085006596337860176871717639017374128153437067745025644084339040210279513461215433842045382992032218072485873692094768376594034018546340648100882026593991906985175832199638453592645043160442152412289693287998281139407606922952106999892545811061213986233395707697602091608154477376019563737520042708744686804902149097694412573950991060744318343620859735607210310064230291932245976923454468793344796869386077976204578222674628249878532591796896607218412074259910035254213387134141341329878200330450851321727369352560061633161598324671530910662347957464135391345755817762510247448858607530848287098868697976031596960660916023884602694277503109480780910131271005002375390535826915130539631831375306885804423528384110979933906632517958770092791518066073842094591151385778098558668819324085245697757355829112553245122174633853193074410475968102859485642772651722648769726172851189287638389870645596140895196972558939794990225076604890212444381746482178825076620459565641492125443521688482727461025603451571332042492780534220784338406592482939511000895823541763757258597320614186640943341430661616587100783334436341637232606061688034972675783865167173024148030168471128837778440115417838006344894438987301129923034030427908240062853966235527885249764571763542237720181115967235921776949136850174904044558280824299709192691023459833148289788100984455415086374021849230702780123091125208985323279055881422335374173258398859669894056822944405406385119729532709311303839246657017891974483102260676857492106077696001980592714819662754107959591767079600948169971482365865679959242725637813423039822364323975333743414792243669662748119219404712907814985404408742804648066471465329962490797884473907542456547196911059443515548683855434513660172217783532300011891781408056103879427000277021471176275594919327890108862029311065664244931461872787308731003559858805291558189190584280956283003535344348445493695695215847825775721772447288494099507368133409689944976056892949969902820051100751672117364770141707934471705790023761169997407522669743559086345424026433582800346797870005352006768233241940103609126675788883891597785686282319319585700727368219910565711632926465355122330097162352000641143092101159825605897548941091615122693040797260124239164943399836539959510108506727910344242044215503138522949520032891434899498057597159508671894081453651063982277677252703938364308746489148878088325982853276585450570400101418105476952295352954567742511904041162294235956485199408320778043076570561923252803512795067606790136842194529625293367945277322974517393753247903682281848323417016608094066949520417286691463634220381249903023792269881411550029606786019764306864023186996892626481243626672829580699208926021733115232347541201895789389809802661758600956178754434509064376665430121319108012869532208021673062736239852172542637634441056005022650933228160134775799810424406123024557445042982976640286669426599546428002496310957868257744734686127512606007082278256001529495282542586118281411787218810405565655131372082629553837021924355389416935690164155160592257441123177315202179706338158100144255604123594988000344917035805255768715891558569050386870893407727361179957411376318150205685245677879557509098278105145825372113125882183591448912688341917691023656587452877303300573058331321764979589607416524281437784750372679977899623496141165512350945026332058682474469277135753016155386423935884224490009192916806339620318768421211478839134279009646249197916492012653528729089643995154486536456455428301209126612017767570354793047786870318732658836958929793466695797207553650036565598197971423392740646738695180650406317216695890628726770045444169250077975290564770643869228218814599222155460611886417218269460419603013922808715876063710144731329153936766136899313542041150514723141040667809480373621001631912606311689809239950323865645048936005388278093699332141379420655685660407444587281203463954124492221218748544582032509929903258427823578780232113507036734244763037826952965604074252251084147250915943898556210126129643384890420458094460735838722519941431622690377542477089251946745544386434036340475978810484373095198106207995802244338215273033875855165806088854048939120356932097888884715222783097660574932024743470521518128082430070449810086950073858631909423728473081200561592850035242495692785278200937584611433035514954676815108945208343063140251799551397202339819918938778271534046043985165987371659945708406905086282825073459271119294111843553797265559435385838878498196719481259345928289973001108690006197836768068254767898089714464720677882814681943466015425771849057734944356688277235472020794073317306415531292614355419620605238533628807400768211456773996062069609324910553088092210375565119278504858542119560340894964394132711976073032261947304858446715929170442237625628574219403361943295161015865186118029374597592366085852107308215237639662037704586122788341275563560507856283918433495905648448660900144480129839026363626755304086903990555258951392404379996623199803200155636258719093554282590943018793551834853540814633862024165618353939995842613737530152813943281723241502485682062184095706045160616775573628644907487354765393099698363014574092277107509502385896874229232072028775196427243984757155693176073830940640670464359292849175287555069990498054710643127620445790214678898592881042666560914764389273039729727792549082104198701437322522474341207413313926763503591500469088604442041579296235591102566790252894781387446565523713016556016708879975279617170427884244779651456896657431502994413016008424372785298694370185883694977320522977895282820308870832438070330099514338263174060525831802926941186528154964186022320867002255550272731583641540596263819366220424731083709780994749685053278818537912335924096234617273781674704259571357597598284734489998989089126288880485940419982181336941179402930050448772118395170273538855979893101704653041692042284802167038277665231966299384980871141838068769013108486402676211742173320908331573613081330390524809247169999202368034462341981355746769078638871030618158567262249896374375074538854507873960088000662444892718036503440856457963535852390670322516984132352664624848077858340710561744945266999189566005703116545617829663644129321447610767968379872791240797423854871489864984521879979797443347315715909976315949958588410744303833224525844373015780361776669828323216299309983305002316112896230588925710451510443851501195046035588810975299860325933890476413719414233745517921510671301407720365023256435481694038731936795596355069372347126838204682182700497624711518599873547889920981570272291812413118436766583101195156386572835660374933212683304497980814628253809369090323819773897342261031900106876428986305994625039779151524226499021132505372303483646130226766972585183157636116512087721053182360729782393542311560938973849913013922826648624984729279465345567576106031654491923519033310552669812895994502613997476237073824746476805585764210295544478793430799984579814408683988122542479560322014854398731930759424048142707276517235504684819215508329367696487613583031571011796109514504639726856776586549989446725323429802794832865263418645781325455939303789150787635336581405716836489373275979207101688737931304131937453869272050547704507877427042832888532961521381445517785648463803068120624049586330800798272070812546250003793384315708257412083818682356709905703607618505710541234773797332093643470862664133643926836044139780271184420387016044169502978877521314991716233095170973285117614927906108229552775089906852531296779583938983629711560420086783302884923645447105066628697970362629032779790054045029645162324007011943284585689266854180491083503231476164504247973967854309522980646056699014041311666943902843902493585489205643144551829897201757318770828554200048491072095521969398873239244403064147816601269222454231846787988241377180996189501189125023481408619273311249332214245997266782342154470519586930925605204985773410408835906937108218685450652446597686874796247468174594255830904822882299071313419076331443486026855552753899329828220296035231697313830946586255990252453457827753455067200588741134543651439787479148215051064842464187198118987724355375282923271902595863448187665108707679086736267419155490106266373767559493150577122219177900203186737736777190869860199333731697739755937296093210244229616903007065431068408079321814387907093901101794598259808187679879511475623730213734867870395291333257160319619190659601067753823660414178219008750397956405356073616134391557443678984747211409775310887090036068205834905334847075890226445030340332893473308306420993531497170768965704922546928354794872273493672907892460031660458366971564169381126164770776124562484482769181915501264100324241979720023975031173218670998571406131958780213622735783158232986510615722071150352672833019036803975841432312501450335936022359094920417286259943291892952474403234704843931248803325774339379606091498206186059362422718523007112124698696391481938112360210607750109843872296635612891606563271561472559607766042387455737489936624151021027327316362959466975906215997383221167636304016233386127007914734932366505209830863405131552542677236967550458278582124761908008268719275774475638807587035713672211932065959231500718039119927140263660705546154939518869108188110592026161205366399142606418344679371132881682070296139559728943640253577457967249258430926107660454748747997702632131653193993855044894548586193582554266158738533942992779005790837007596660972074638983651558609805104189517405840713125870267021931087898198476205981403426325183077942484568898701088457647627366750780456127907516627421979848056095430480620718264603709909298054764883647956896455923015039682151985484964389276250704688608532716004268752386009948295086002717221165648830586625281711413811473104379103812324372236398666414344049764618863148498244079068741524468028904551287994752289703768259365481742937746137440074235891959486960142699668884592347574211671906287400889700529025149265471231555535104801112774887522260247421596205447954661458657169308759897464614817912213001209083871725680774142801358848189909227035011038176247238274539466171612319594211709053441742046196343398588718435813361004180788304122312764213350712224158730374941172826435716204745851338479881153974722078318928449909282131598179824466983081541105110730228541655809742354022718301747893639230876751252908438503741261193439970758131037395176993069007246258650901754102877485147897134176274166553116908919552306851395555275652713280602701936899027600323814755381154897325278641417558894912870571469659500538057683493647417447586175581353550149502779213732860683882008815481084790168127184147917853818989755589628352332806170761421694082109554433100018462395430026547541727551962500482975335574596148787026968099356861511607277592017083508842760407979332003448564694956608879905087309317174510735090401780180294455817333054615068744604940861902600390467660510468080740514234507425087279216072740357208618212964458281509934099523989854455461744663503692865130743965548344893798269728683535778311748467372199269843387134317346491303077455215523216658062264329702947628520018484825879806611658639872710720988445159493897522003227115978526081905709065079243253326871878838443082007333871789700668423809906561234879681983240395448192755335083300244690889309319833130899079742176014112019096143588063240409119252194872459816578021897778621495093534619734571617370880013830234627140098122229424216396545574867449671978455759336046117290175121791701940456059887510397812454100283586868387511071070870503592538764532824041947400583000022378976080970633953573589056263276494676403175259621527968236083691821060724499135455845504491393325326589401396324830626151553335095089158452085487300764688193613853252397657586388524814021916084275696581425996227685191305405016941293899382916640702555670686159163423713569676182616473016982111466645980502836946804836285123757350474862780475459278840201295302754660388162489036005714138553438067565106529995484312663230333322244263626783211256567821966657568336422330082291400100715863651076628737062276686074026325566576031607044583268108686229523297977426321914754756473459203384001206339867510922158103260997079963612853858591436515578752799822986363834380054904831549342756369720558948146562752361030486535942457463720250742188388896789166846647039445577238295222390026705658350089615450504629597145291988442848361898441959210635579718596475385182378125646533833659486337108026156906546737265766644729022563503748896454786642016530092708914093762682469737119873585931640563679177517970389350843045080548280234404034222050336653124006083039410016918948791918300632055483838204051576112864380721548715875636724907073663370402974993401811143079249883803398765344666555511782351377616318605155721107850345292576364415126506102189325837534516399456429104565109878000636170255209316990149012133450979590601562795846319790732714081744001138204420470040218714543195471722354812660222717459741527593777239825626651567308777207424033796026790431271598830743500096348594064737170768917865406711685579123085485994385497806039974364094470036693572868581674236141801711768719950159515146354897314766228280160261379748004521510107348518885657781688824404502873725924126895546086723147086679324529353426139236371492186907463020409093191073651431044469765549940668839424882147889009526761839873208912716456796128767080277003091147523487273459664339816624846895143938792091333997432164988068668369443895847492561213565733244648155450908440295879565057040790632271914811159552914744674118042618994726249278537215837692984417734848139575063064485230363884932800162951400125226508239997765270146315254898336206303463691960563471727011982733739494713981133169310575268119983335746793874949618826344507969523786039813089293501740696427833896893118468733041768957014615527693651666070292746632916508710837278865797048940282637252957175811621486477000605605477016864450428849495361037843665037835270401322228164621677170934309107716931841456967492115248879341986268881612054520884343994656601305312007839904338235624195902483283261871965016758868123724628759549645644601485662264177662134617361192584874048711219608214184595678364150000452154703223446276967170944084793055397667578922457484226213120018376320200441980658490287604862070787690475991116953112218435262838716901243833731953034524312639326838837607094152747649414403858512070039965438809271337068381200818274977116769691722932279813607553736747964611551197248721441525639718608217626795213436831409152917722376680964894991587779354652130395907606455604736057423676018238140906445656464737033517852255245728679514350667607666673396458011973495843662320965579965493593309190614856626112288258489617866346980337028668895700206127190535441638190053295106220708347039065903173677692335638004183742752402183745103329611597477344393194628118664881178362241986849190153305028557688997408962754855807186456587209010059604758036455823222634671874334243321231934970797167861577434009044808885048793916487851384466734474851420838334872963884490831310325610231119661751646389591005030844044924957139010861740175950576875310770877185130719832017016437037695416313746845770402589125234927157797146457600595019983415007907334304599872103264490650129460334218089473330257561266357361506091831534008066079104121634274182228234378397793182245225057606722221531720765801943802174460559203930357674992587999785363795142157112289415031404722107317350280962069767787794268910568352562691235232805150145710179440568093956400864362025415738450711700030474417635979815069334753453429269799845142926478027691027686575085259138744045800617356624913842847390623467337444700887293160682693907901504058290744433256475496163525428763606686495146787236976071516813174919988092054793712358180376825651505499457160925712637214220702724310875104203860786483516378075888562311168964629307003467980880299865060511209410355204506607911843735862871559293643570868742065547191598138186082325758113224858243387409175766928151657906045255671260952463163196758363237061359457837748817426743250190581601476584481238784135003689072488287764215294407262562016193967855597308823546526779738641745677111953538315152676873559501866544753448679619146956399918044984365941189549142451248649504266871111755662552504003367991272812933412279019028461303093195448630849885724554607322597487686018050663890738277104483664398551071350573274714506872546612474138857247647990839056208085639767810853079093346584180036183609469780359743894993959444633589014507595205906156366650440818407903428272619125263237828609608275488915767375387211861754234953769207290264336374936578006825481807803012994988672049910009625546134482803288182810937536642969758804780087675191316983572885227817103013115181029037841908955783986218654823814247695939699568676329600109009249130435982856540074582601736412473976856754053245170440299989434190217837519538949389473316610015227671369588442104069614143993838023406557017839568515665135873661659531200841940594126395856292511811057790313671531862504884148507989826734861961247141314921078106934430849961062875838593384038012791492838012905388852990320892102015204333520654069141750132078994374560467210472822351688422404862066501638359557886146296595104488021001869641276119743815743049528236632956560414121683826773806110852549565018305063929485263949041476827091597366120413982445808386442633534030688964402296936172740066761186233870181383680910203917879278241267420610781592529966786593632374766872389102180900442318132569083926755177629388501537494890020477811435965650152207157745021567526425478412235937469357554595957355250404645075423827273667446333598440249593293235316789901719809042123885277696429770300235757033093541292026581134343160390557126606841205806439174152246288016238687545317221779993701611112656245819678211585752871082592120843450550047875672652285433628287632964382604847495701171344448878766850758721058667933494987918616252915187616744498113371271977794724270108483749776345129973139751312394833622588262390282702124916131170100758320185961427748636140061204549561141765846807237497750098090823172809253084765077684614443744484804456908009282273314976586459946250284455493466936915098961087545157167064787236196028223023827071494971072551353422995986128507268957893140777937635370464978493984382231549517847968193944581414205643998812151480766976928257285499633789055951152440202605681623875463634731347787610237877585040100752403198725093555279605230690639974519055415304272034387115710645723742805185268063195909466881549080323708072159919682340053336387961929694600787342900315732430511022411720542291804552402285553775136832188210793339486228395252516526916292048083234972358173099588390944477535874732166716473580583217554120553658506266146494267293314806813647329780154719287470789592219129237008686664238149724337215012642435243522429511355693828170032184811406802203845692998365789143599351306086981574776090820258230620756129803789027700433550291488114091264255917236556970951279215686218726249400136477888748134559733464144310840231173098882942717907635523341179205058335442751895388536802743451378408070614604939404728752541382882088710033909434185811888920003241269165059161353841604007276490193059646153384748024907876199299519551756427127300598234754572915003684531916970803924565998888957322238753450175943237949697025715278190511049803653613242030340221998628667508908524949284195838086609482122491612285509327912271119063220675494673384588682455004558498756281007867096542856789010279403460764039426043137422079946262814751471077831997937923295169947422706612531050455690699521592494028170582211480133512603455914623737299649254094965225478570804195437278353370434618717413358745709665677654197229989608984999805416479676340462153983853827734775117344878818129542165679627216255329035658052992016875707925346633636295562430450645884955681415491200700961480978715149378325410575252155729654899523722153295466431530441874735375901758279711342703983814500486688375388512923916581198127570610360624791164146044468962846448590052742895774284776929772023535003474088244629002508629601485197139458072525784838805288808859583988108760077173489287461768098365509177925244242968169736680551436023861179542526400775888247116168169221781566202964081407503272172816243346470908939403774491785349679508632982863179368856071071247124306805920125823186718139971780202409755988854801877851204464538036945374857367730059626024590454908824820285107789294881354155302160251941220045342938059032652945780630115605040784022126186030315023517816294134819691344117385080654488359564203216080958208632987157040103190199990257035045143994110026894669248107441516761373933437744708973951543784832141874080109575867010995697891880767775286312254497460146745429181316475527980651831099832113051968077843109252020029891295640331519249173099807184257138303355591111479986522472949610187830619446967602915925157355710433726559589495862234379351948821013613486414381867253258717918447706496773330588356397553490169611499500765027011126677446036246650737161440052884112713701390185515245430928397088378766056464872206681761005614718276120595426315539703767699379513155833160775892866915151837355949015450349206050507546477822339055830634504184170189207100938498575489694832949340661716205227370603933292146857001867996413470846479526984097988700180918048862359022616090251051071526129440008583580727952931442262233496828195461832382177375955976304904350335383247629548773379951162126856268720023925403448170961465048221604123242828345404096297794344535845689018555901275255823573383366120208462910347510823125633751858181053182590676818414401399396972474735858170555638939808708779025072993007847275902232966737944224575646170496753859507207141803756732206194173788710168526297214305611826689397253423104457666684969898707047593787340707290048394500046603936616703984916336997015617719617298622124123294061000670595132617051764439132979191513363958720826091839580490294333555580564494509233895387766950145316682366350317277080997767005810166881003431666906462490183096268727761723159149959329762857554225780098898510420349972842970572024172215956712731642361476676321824927706097625713656627395615415375165029877688310907684125195103646562685094761385641274562616538643079671171409927123946149828154906542240175639597409943891385211204302592826763337433600313349919159397574322424713878852860480528116211396969714381253984408336458696165718431154786405965466920136628383460739500840503835698344814983714569525717466832108988572993235894116674333785655052175591130818138020087969550126834566912252338463487124384247498402236780130274037508659604270367022481066502464592872024453117147678920468508622213377940376115100018482530999782383595356548522612868648108233740652158788432361546462496872363925132015121599172860078367245212010832351793636179282872779367496595753062139583437279111183497188738023341461963136391913571521417854005435810948128820682763927888583459226329220204061548949484575353270750865201089273327686539904090606178622942555820845982778022722924843682631215472629265549150883780598707475378323876478714782521256368096179007873664631337923809391485723127268368180262674329463614638205642381737841911878251750286458239174098368139538537470157115326618236121876555775189391297460565924788018121385192857437351138993176189939169036333417696763743477582343105449719151401124741936449616378607598455286241559090831519721641082022227084779020556445916135782179509503908493454177988610744778648446148104981620230009129009772824673476492018533908224104500982869758931118412766079629010692610136271688355026976367535182280351497820598005034564997833228541660386894704706525958530442123679706983643633584570197033167006738267285633043427477631367204500541011749235480872502070778916533855785007779249165578354909209117748909320863064276493259681495842246256357943228627298678223511405642492718919179211804015498958725077939790896868740544282277740808049718337727070110119949397669468594379051686819156785799671468304726081126349101472467259848792779119148042801268529594956598075753040438661070123548726701278175818625969079818744228149695322650201914911248963192055542501205465900832834759498691190729979979848665800451675827215743460801580914419732820397833089499418991608201893838816135015091721507583293785075584616565793546683455196304598238806563512178914847156744826122945488742994052576163450620325241261228824898640394905406661270670361980969436443486302833603920611127098635333003502202873319964553157123715250101903992136475401482190634696255935543581314223022581954959945221309651059950352671479253473978290154306648320142703701151405609359943198430102319470112241258456674173662521347387939439131797822934898852198847389970020009622706777907912173692519843693623305130051581345943337995815715917704660172902023543487096075880484076276250768092797973183513579241221854185126152800851638418199447468941739230819021977635741105220172058366556735980968172187663066140061264629346055552562904550877128793254510662747031798869775480497113066888521698558633488689716266947657161362232312294168004605465892738621467624576518710501986718430636921675049671616937828236188333055073072951073035554107766841557140811190581938583640363985738498085311531160477750046169325124614757955071543558154247319100536500552550389123577505790878911600365466607721323811698642711693610249224615967190749875504149814518156064755993112984194564225462978629662928481722303134484529711424296429349845001170952599182541079249617303247536398118236948316389773226337719108280310498696237281095804065033435463085805768407027985631255973156034664967459990229749142018948829558412552941456100627720094461243801025461712443000420738134666658011535133313626704523005446678041031550116444542263185000999422377117889476203243894728492778202228524599482671937711007531056849179192356331083864973368471126456015934835627911290243788198226615318864858438369524927567107321565833548273398170554737388851317272045518186931084338008333628285848508853295667636785805191524260629419942372066089479996281913188127102317693438634061144774483763600258220502788572704963226002850976381689453406125835758792320095653204587667098426842475344367136287881055994720450776244323817739705446839687665137378273302150518723322997260954603226965599752312788684578042671404292398522046605970900604010647480752643134256766482855742900763504411410039695877678427717686520144249457568766618778281953793437934980891229914234315906332212088314173897611514064538957626871704165429707632873345346895749139025620125469059977952108916817001326380782700800949580635079645235839127745593021900871195396643030234664080732837177107030066458875166986450653885569395743483133364379798510754559659209710430534509491371158676599587173788209416536447634630968398076047446054447414433488053692651068785647197262467433177404948947698916371639658494087325588537012667161807119378095180680878385596036250944566886448270249489490351690862084902226914002327808528186612335073412532777962389261426187646148805653983462413299187871247169973754838936623775257955099353442647291350798251645083100953437521601855238191801083490192555325281263066332275039413522575307393692089806099723258442578085510717888243397197401475484263422503981726223516778427631141181322264782068368508010988348252512415871119992255854739412743386811058417984576927572289336877516679147999957748726165058694208881559755705075198705435062844988415251537436350108956087036331741038626656874428993088076367390518517281759533408486027364419172555063827197395852394590612817311027138244672578057314525530617031177098404276784570776918998599871338222201719070037625716514177520957036904991785452350448095032365578758798437162478496318002435122395656482249202641097067805464383640396721570918913765873223102943075217218869234773298304370384774797902887212139406746295137784427401047184213279810453487617728275647158211354930065664622621907084210181505454894098684627890587568872727795061845102002414686814677456183302883053216524129433264742566037924058410872651280943026506654120633700086196319946625172484222730749035570382866449745078355504814694360084548560421390991939045575893337986889653960059121776439588916587528349123427276418137094003049687946914383017412865559110148722774743468265802964931273759667783868962820972403472378948266003363398821340134433983550917480084152168140572855887705349929843214807169695346001939861313606850120480445608612950190383718275921464566837214101251923056500994165620370222337808019805609831910026268908456498252861864124701259538647109036543617468329243011810551407884228194339043602321250877054390596874308573229142615357860345680056988871848594571379256141484065308842934070936184448311850649920523141758136539451844100919226392524044644060298088635984591068137267766710387556295334135950683409474572801281701763705380313999880496621575973974539612582590766639165998614240461371242086559626375242322188671147060374147585898023072962614562239785649710454275791581881276217530981613854891553436379028574244701509322100118306939830169254437362099977284299659028037193414556070336511314057049723968280715177562000173932211804247007793001459450438007787188017862320770146303183421613324951706885036659068407348579825562552245940326400313679432497937301273295830294921653303423181241945401150992331899426451311276007531818044953062138319918049741447345542148883211534667630480388247156574509360920912369908373345240626827180671893053069065929847995701423926548876760423640355631532420415254768283011128984252576059371361125311612833632627153379516009541503568869090583018223874975562464811312940560804424093102790748165735591065099726686958297878535953559732642670843476186463697885924614270474898527055261423862183659311830607231384432591906771038209109251065983567989890629269989732380525403727868228965671260433456480673520532030322241493728449030037541321237566442616208175741460770874338349169856996613939265376982702362575095971198411246065191722125708827192496360048775097590413640964592820712507954120403969224370861697292114398954368793038288528357394887115967430249928917205439133687886665794246029171829476763813477688637396936219941616996090505805129497826364946870339006657396714937952509058061929163688355003559722691869661231657850788933903691705903738635401132971758815092637486731309955718450309772602683311927331236145553341541263326017995249253502760699140269610823613277312805822535187727968413070028023255479365378899039771558053575580386003628329358049232808601315598158245169394248027738376319268041894735066098852327796816337577684276665610789459976786228932425703695574104465468894310688930745172657508696654540653724559048636953478207040989077312849696373080287511744367404503293439866280332609253143047605184168745489306446134719165756878500430211263258847925823698072208673353839953732840905810150663950338743570349336682907064737534556296560676818156552285092175840822044055647812178243630323889694757852152942578354694860745475276698884115036697884086489282219803728064355470767041500196106589399127062598373138949863433192397979463292398680836744113426653735714499365099835146785586397179199020386034772611307466056056849213051376083382211490655265255250209339038094867891048665120839466378868928765933649692958282220200124982303451676991175967193003531502725482651653274993333804416903484662795062828950615502302986276994883723966654306317838146842273907173222131706969969348837976580968017391904036655651738590162635571398263320163451907416292494735357569645680027475756681304349137095182997269787650229098206625372077650359218745525609914134740836761486068401560845125803956962090213800432630155258018275945027280927245979842135801495417957178267573814157039554234656152616520165748318901414101965231634241099879991491389239702717598557492405989710999555414206199740113291009794339186887619889139994359734908617206784701385479277356648224288731299401079460658489346074412203303145382496776180646230731101891178629532392801595640252144331950697937403436988343429240779488111374443467757270481118229828992956272348958500670274738329595062956004724965940695053841609132214366945267769912734415615002208975013541270119302314136389631566614417023109429398192971142924152465417208893804666593267955160539308026425578151127344745112424583911372150402571974740104850641840783341221348126989414855179688495010854961878147370163297176427215244044087579265672931442166633980332101363132498525065263364751705946239193277273327711059098260389676686861451373772266824866373282513400495350069275983250896125268846353334297486319836452206830499379312916496046861192483302240607283107544175239209666300508216415621506780514013058374788279868643802148112791859106221855955168067672235853112140810464370023248691492480640109318786517352693074817660136664092787971359836070234098025822231586968058266466296832471897195184330274403207316567124173837185653798420675970465115935240720230319424027759143425659734873761597718998330716755479617929394167312310359735386199374741772450439348657409552374942159321369662625492039470287341233346067035599294258740568363430938122877634110885684985285987542030337237429129755888050292624503460546128639840958156501767781875072299194710385931065706503853350018626154377113960278328169816224956762303434372488316006186351758435661121520389764502507007388243397578400242330959022823498836373152216343736063332189999773753066227755987825613700802551186661045304959083588016059785275538463046736242737086549582689576204934145161598912350835962187852622737929406902366752289427678913810586316331220913428937561267282433408815048084598034870900782360192829596249212457600099402467204399414983282440663337592688471008125964610542893949493357389293130950368621306007692876389890372261710035436013896818583316526516090449038763042431344568719689542660509038994310354819812893430615246084484190143495008166378089124307151624284216479372356443404482227790214809884146758166415252660190696565673854925946239388476605279833012564552016709128385122895565188112384268704666934275136658273338599720214813286061644238667222254412543964134091849753960082885900718877927369985482159522187937543128354752292131630920138356741160734220701779959295629092813526096843521322352745380481435548023907298882332987516031247682425433353138193097608500506756333555831808972193383268085271230405305149409772177968955750512843779043980866795054797606183365863755797213825226556315302158775277306801886559043202661976601851383238700811338384712350275342547085138549838504641247450052291379672806909425884458854691651807521413166586731833438312760434331578642883308822467359601558880919113127221602955123213054108362537417672099177794354418962817477516533953120704362466592106085182846738183248569945695965840339709080315166014323417054199512721944948932268878021018300404616953268869582258345865816628593316951319985563847503409031859680735083841262868867850850220505774148518049314876896843338134646377898942536476018151542583598815520281952435270845666166980189624554907986444166951867734239485322367056512576946855030364472488945620613111439214319830182919603472475691048986385819172747378216483571141063513199512799957176400171624713289391732726586387586749727112250479843521572026087001840568566576295594905637950588139335962559616094244318681054872256034569927740814909359814117370248171992997608310783194389910233522799980703392622337101823824894535948264198871598440976575687024990556316617822635497533365003323237930156413682864978503739509684612953684596556834825637384419001751899595041782182786600596809314948058558974028924985358420883844690596531820977721427911316936071852976788913526190091178256615813784774560827602748218030048432386812870542054922012232373550955617124209201187153730628831474044220951657944330409707873365701112001780150647954957386600915625155654485563239263622433701401237940525356846328336310685634853891636717578562921122693788876854757266804078165689407885582317121165197478574681085425400021292449709477441727161018203365189578812824982037144638262828992438777286365254284523851922790626785105387799800106872613623368921926309808659511386864863692146190109455441433005625455702179527603604128675923971395957924841784185211759913902078261813647128516958087121259634158510658193923148818452969086096749715850451002315140408877893919894886551874669065134526641665333580240257743601086843204570584439860118783501877700096509045723627004627462759430039677896752790259798259295264471075155214405407831514795783296310295634907185098834565028861252547188384528763056120102768774990305459998163669147750374804153638204472301140011102877324999476601652560060264109915177115393429704337628003211174542582923065509400973178211808067985550363681291945468064061128921433656645187356247837783724616066930722907414975237104307599122179778053271179032639461172112401758472685775256070365295981678570890944140627636248512801413595117743219119083718138892785867347689119451824078409558341385288363540806687232519506874701745683651587093079664865474477134556594025392227566643305112085674985035800976071659292010643154658988702400642780733533844547116352399278359965039552665840557493792389634647382863694886400492754323227758183562868755743643252377476897974628723530723115673084385862319409833972836549024503358349993966770604654960275558521257471682260696541156997688847172747758422744180714869942463827398026654223109973594860541258457894960454871762663595991318574421458966470519400707489619961666293881654849414634878217151012635676097538859440991809381981199963207120372928255293648620400475595047103763832987609179566889176074865722854237750097364847978143675437529607123230590305288789233562284103186462332858432528292599286623510460030588719272111465035071178797827080325617841366795960816766775838960883976975047978956502969308616230854054108521264063700539588575711966619886941762026255529710219491622197332003137355050172687062587269039025840864367805933488128780110390956789896645625223594870155794482436930813760362122985127634824477707473019676460814877058632703925041992053959066227832933867878310246527832711312859448762318516484977701341371723025389310421399282028318806388143055941346999533993375831753328800209556001126916873610344819682458397536801544668407087815070957976889695362528622508067077496358274114345510787943733249737935245602943741636997202443778645390735808042590882705338954773913656284705697817373370636628096173328978533812492696458497555164789398169072430872100364821952713770636337911001465789934550771632694138272974273156493596318056950388852317418266308295619826376592934239267232117683821270324874867244108603047446494478856091688049096497719419959359616265996987893172556056967456897040471948443349637638399079311194045329618067314211170252532463110539861338509535766257311332666230781614348807396814572784723175952675167221490274318589006374652576722665835848506464762036269034431137181348233392842488549379620587214796984822343582209193168122392155346824216114395910208713355269618748336799429413457205275128639961434530214374879945594777466869203822657625807729486333772733352063046868472084833270381300389954662836962076584802340122961914025074836837472762964453270387076582679689348979768618722347247744633604874798738314570165114537597592208219821529619044775966943130117427538352508928079542421321151066109259616512035225582827938975916525575164100372571606444244717725714168923332822354418998954101127297184744160458125988256341936120516607300095727209885292950930701047449897965467960048111311740037583492930591886468321922031475049474870883216209986574009767511614001300768600343377356141801624982922441910312422812165993846961452427013382014232626970507540001469627064538054514769544538654399016725393551282666105083531108785331925191763912583058252823496646841481808860626519567416390865166088680050921176932501181211993078328353920484288717995365879226274934149916445578455736029302154622905548251826864588963248181308646782043023118880936255321685509253707452726988685539442273999775994283325808441910778406821474334668263266405289341613120508111215198942134555509019764955203096714627668679999530490965090818044796968562289151785367196423510866216308379035168890973883286124845170324741455518392729761277927410670706659754027161946098224341540469967050764812410554524175643864946898915151388344084139255708560494999580696287087836668704360235788448933031481895256890788959021172796790558996041936851703722536195986212253231646604301819967647630297635395402915582403760507386233712311443068971074592879164264765990928280564986699151985182456667442612894931951709735419647335721800238432824549772478102898717872406929141027394825583393415769545968909876368787600701964475023490278331851281095914352419768511634867009324509643918415330657058547861056450975075467920964204696951825574251938165389396218368091457679193569945508838187083785860784876067246443680610183638208885978661949497276166488094060896841865266871213083285604053841589529238886511869043908643997140005841049799995540210304492728869008096924995392407332117986145915104068340218432264128035231855735583103626573095785199232301666856078095778052724198936283718111973058661116742190638814622119509752915374024503941917096251757131137560792211049112080409249087355814751279652421314177570840849386191438554035264678842153607657362199485734518641911216510174918842373485677967348070480127734166389912655706223390353889174056165430235764495239503581942105343071124239536019607164205305734805567858313133346840079158092117664518720320284904421149242091040455407187927872818080504908946752790003468206080602033405291548716884311361396588311698391373973427057397351630421752901000066545241693386513048130934516306381028217213202111002841086497890848282350843957210102624845106499869137098848139232704861889239768227279158416976319534220765520064996099052481159786534332497740380609563675205181887095441597977832357793023310221382411420809376752144875435975779952501020777248825186684499037838632065594491499159564312114882758018455043496501688734817539044323275252222862633468387029777948914120556354128170963922406342293015208171981789864137930057966409017395300061719971104513244982402280235117841332588041701349972314265974834477606604599148313574202596789588501487786844256609598722290122009718777581343138305790913644773225279829995114607352986959116431148979062643916725740595392855686649219246438086180311544889961810503567718510334061834266592720330111113482444342722833529457303941453144289022082931658594213739783539930748664531663769597575223812396496984547920822811183266893744518823737488309660477373516120452313366327252088717678691075985367637690550019199037972534747376084789643767509927574107438719716547689470785828796626134783959528420290405695768873142181203060405118683419310185855743014313902302142550880429056166086287093066666252697635086675123989213584181718921197437062729098522123384180766013243361206432466249941288490771238278015436411545815672076192530494698162308865355874660683965685330120594288143569501741612538413904651743612088234400424835722513323951621783080421639093465959546948279998613302225463655846895879238245467781797911755556545636443760849930769486709260909742730151604611530428001279936828697913878757235601502746509554495123582994275639458773883775684347827482636871784510186336716445902639317468145078443037997264209574360584334302411828828203185260553651523594978205017435860802227897859366281704933299619081928322388257693850263388647484790494805219229087247379572686242360415136884437781677960478532752396026725567756813520862833224827095547668567557434426941296188607059903086464284208650759948898145524676399571711938512349229560226405589465622909717602063291898239832098804347399062701086184079852750552763889541309793120724411154760510638067323540288474554103097798504679270008930823186815334643791866634850657879277284009208181109656527868006862044887814251463328868194574660089521645637942060126401845556344338532205537000428358886790255410203231314756538817469044709418360245305357338498179835939026759173206361744478267657527602243064755606841648079406550638010717997611870230896767062342973305941671197477778447071647347968935954649546310614739287353196193810479278758566573689813056039437258174826041681110280437902809073291815340748488360255567596090043295055961535756661996162103527277609421493456093215785866320339092373060145742613166135159772421197491242264331719570228429041182388550830991050985899182043290301886795528651796248020348221669865155026940506679112277315217700378026521262295932069673897842032205474848816060850535126161160821733790253115412581754961681462393063142640479528779199189634569598598579892851543021485823918224653687734698509367143942740593033387936472172967552652587102020012482645973842750566038183628931548841624483310937395292268527216317877980883383093178722417561034228113806905896226580231135621929435024283378155348437070637153271125570760563409890977547697661452092479069229548580715278890540611511497222846848585944571091644778565738117000768046865283077872272834523589001316216982801835261955276771625498231936631490137665228126090005349570518454717716058840323293838544883659000100591518947116199156915961470859848074747067648779881700200595540933595881139976055535185794784488005545585511715621141230758138177191274534484026955043245073496523883524018238269385997772806089619159768703793005764437549780045449435574148406001947586994174631582418837162666628833777726594927289037728491857179718952976494259442828665527805937821153820533728882325758128198029951112416032789469881533940652049261939932977216605407200250978089553554101310940119040423079879474628663134718893902406177017770529486730228426674336349810219870452496033782297368067031597483573887890754727956102287393133758650011475162629243141208624958922455681826218372628908995020359168491884711550473564840519600144839291775378180890089731714706455908589917137259489165344039411855497834527654669205256979135149395061695205113534350750311287793784065907582057802412870976325005327504856879973586509252354420015709458016014069722452714794813222319873691607598715487304168649188930304243960103473617047138517408131724643380468356290896724808304417536020292185010644803691623763076895475131788358107806324645293277809404217349940201458185119059062285682451675739554572188766050509525810775505901237364902832025889458107262695674513304862140446613306613410426591093944867399686201364824756383646486248407322956559589014918541102559523914569308535912475427631654052716068836484481696323467895429347893417306845079977922077022394695685052859996734488014231081281750859437447062047876141089549886527269941199308461058249495752018647372249257083575524463740660254424550743807413299036414704689882780911005315539575769172396507363488192297291061462996004697350841355276396389536453992862805175831851679078632203435084113891439182862020265638004339541954089783234826016809538443353436483181570093367309105643079983962623499513938876359667409545395386031675220312061937512394419424000074174333907396459330094608928560673494433807111086004897566885928681797273051348907295975547459877960774809567049799141969992563597035228334657580125014439940136378681897420224375161550826396789453756268344743977083823767817480898852682341486777563743509597932273021199400940692083726029946368704867070255600048240193239167366870711850842437668535724207832961043602070188768458436840338915910872491181194848473514464148991816550557248338478957764913181703574986832108303832197612209218630368974156917353426594164968879652871555313734153057244609434547498200408392597934984887898108580749282373432691236131016323395864485349682438518510823452364164213295985593386117861598350994866175904227566867665295936121989068699272804468676661976688413292914767265965615772217229602585591633021495959986814268668669457393087709807380790179875419193477093582111080429721167515891313492370273847009128476773341907272438196624423566581118783231342975482394636863646774909657259890197549519436637304140983507939745351317528323046480703286690866981651646479102196268822284984415813821857300533509415785022228025347986207593715680658065438542667525771509459557714032075298564603640261977272459828713670884621225919669604864129318652345456141920546009440066558037471346796256555786951716049989033270963661906665408038071828990670754400728368572393605709062476385305106938940471179347841147147381862341392186434614461369121864549606784596687950661421663639848016086954412166258214917756293273765543097765416387200950516099995903298966335533761291461032475823473772709815421034763016170220094737685731387154019397776210729389972217548918962826239658759031881232230893266362763555358548043526579539595199933978962247460126354630844369489207480447169004089310582674665505565771425990187445309100055826678844846564367792577935100677896395253985004365381646497211249944203145245788918889117703142752970169780095189217882595528280098435856393770152400025180074679783892289097546053815424232138559853722060551635217469223118923948945294109695272448415083711290711149075598073914685018937934561917553640232845702621800077405906462171460266349267050421338270685259812930626459635893760616971573060222630277283659547744763492023718651852398947894117545947559621890551813119431208496131744233902536874813111573582695838931877075261532882248333265503999295576600713228368994773406820475042147323331682909400757237671326642718647771234610410148089664535770084948644567130401829803293632169543209300224656984681294566747327272823636066257685999480110161472995020681526291372584337541569186072178693611007948945842767587478299250537061146120221964714320004465943296688585674136631502722815245953223577019291062062255734854009359645948891112926455325507249442049234627025024778784113859823310956784417229285150286148495076384898582308774179952690009808493381754223348126723115455366692285017161288172851794808608456035859178331305335245287778230406981331120293042020892355622556896849946919882147247697737776367882528291262368327311603812173981234683432448774151427752484524649298945707780211965730836474217168465256940314538165691477039358328592996620715890358467609065723311155661458387522721440257824326918291843327289329797977584178039212045908333325370405792622413138539398603199017013602796644479138030317332092629306742096794308890862925711615801082997521194549664351125452103578726027619104431362783682766149545751808979256772220966357196810432799441932972699814104091671369570975317393506508511388665563284652022370245522634868534861477965256914675563850061086758211415126800963298687931120759395112502274580533914161914971171391656213798365486198140151660920131373606723358866781617741815844380105635883748265820831840978187747208459334463895612292034909832034655583841348791665257444143793135947961498158130866009939732492830604024741644263290222650904102694060608856030854530328209350171456827851410430145203214276261675627376515898536701526758009107659665009123218421860094296192455636111094267654560995063096145451126874418294680435260586981413033532814031054229723641331116580409733862412805632847860345820504675039930622847397310387658103392472305985053573978164942261907393140483025496496842166314457063892333941161331366991791694481075258942213455156214274300178598155756496561909713248269821886080656320873225518925695371848561350494367647541360809621345207286061004935383337217167623788562676443966172933352827347601818252842955606518170980292885981322145502476342666843629051112598404432429850949980521731549909832453537039018640650265886145822116286841345048239296276739453955121892528259440605689853616795042441758062325281523847672986648870168515536824886769685773558074069524341986708788746274224424726124146934429040934642383218074127781615961480851125626365874573549857900553220153100392556469384417154178572519179426238678490050172097058829535387068483733148553956615276167735777483200230449697131381269634207533066751502803910105677532661781739711146026680329652579905751410321371397990747727050693138888728063662887650823600045705537322978257978028775662332535480804850055038415673714025881817893825682531659233060154700417091197658015714659233053239919786967889531109924672810951983268203056553893246021292173363482250160811913557217816581105421433672451412358993430358386668401731346591661341337728332732503316333600725002334246151042809194923770043809897361216118327435690456480332455121545572328380036379328823192956404854748650771941935090643455949731860297923098191951130451012347777974729030525718072743180511947530134413968981952176098457561720478888058425076242161421241559115478412938828673551440926594147603003086661858668761442073294911654549372817457259097471479704130735725965975907026674945252189733923123954417601105230375821097272938860411747183831317817447000759664618371943383556388476796098664471065287571200517207398991144341370732709733515484933064359977627647795762542927700651283343546705010063176008309417577169967650817002143938099941926745678148018841175351641544083629430606284160336828395436173337015215972122154848925374769311937502650084169833014778523639081826934118987362717703200068498361973326236400703362317339462390470978872933671272823813156673003721510364967567149350642831945435315269206290476267794854822819202546852463820341421751329404658457703070595553046727065184784898370136750181854931589210135737071851959471740937991660901122130329112496123306470482993105585227616054592370743167389250796510670133008344858014166170288009090234377073629286140503225657938186128818949410340470370591820310179449960227815450140063179106373327352391596395017163548732865459251546587762901845648355637482604793345258780718667957885463109805070375827525636118421435740947024775314649044695132801980642134403079694028227139653150890842122725562277278794958395075147852528432775220233363094328536346745094135360715209629422736622249493787578938894854230403423303197595964924447004620594390154934953736954043954621107097503001220007665919854457295970276086908731003652062324376343487008993092466514534896212663443731212374684188824328437978466551329484734171954224116962150657671175509871672430248477896921059154609517456610138587200345369436063959292391963366874053686897208132258617927264519481068821885030512274601549839008105764454002160451448480670551683476879547967948497189463217971634522310070099762935395683282143445357318717978893017968908800481546248682319438880208666431729624474714564755343872995791883957827650850133120168941381271743948201619069815888715555013437784688308032463710713924872740910980264273436999050549702951748963696931812718383643217911667500080124035329646853617229618429102349559787670465993172783043469985668130383793181652946787786760502792989398617757559538879182669429756148426585970937215351767465583998963365673958044437016801524378826362207024417347537735899697196057996730850583731575971343740549267212457867157945728845585841936694001574201173674359925865735561085767312037997413666157623106415166913299824721503717924777877395332923870553699694106765097763945138762087330650027819880356113434548286353531875777176880170391523377126483473069204812977314960960381443856091045451704510525420953707763861018456274551212277568113300323020092141713278909148178859149538443731204178264712704258708386771579188190701521142751085292868045748844092332419843272012653317513287847400753849117636747522171692520185283939688833320685350834113986920274889608685927535249192722255490057455109953995683960667731438596803556436360769155091870415241373631450394045995253610374049319093746118293553739915492564530570632823539489721145467648491824454091399766121761950372750202254650413642372723898197637157650299427281357802485500476937451574048802127638484962931644056301084071437370725136155406484934650371154098523489151962058230620404085819553085064027908073392869223992636480571013212408939559329150353819780864761714697601665155741637622675981543623791573489076074672679797234718071433277394147936068573880151136077033410464053396609828180311925581725941302411421609201778334634784603653940626241672164785117830646556389972812690042602885483620261475205998588001722646505283137498703707824901911281663678331257886011193074757614912780515143269617956213134058431293927859562126061130954773413116778144657805985263244778639196659556509198593665574791916055997386357551497140651183277240281090258086056989882730126751894554268453281749742034692640859122130303507490489806879540728827085280735099394458510527344511498258706673005288170145761235273241524446040706524762072961536423354567950073573612384987510072395061427311854078462972215847801985443377570890788097856017698287199231696863185256705444657548730170800037962871139439854020108329310372366399936003686734098780583632609231468831750738862039515220964574152814735522489434970574664755978707268948001522188469076090892034655750961674073673403476247413670320729818833987871138530434381301002217664322885672208586651026268801197434313945623758594065597280739791299992285499818511100272308654799378166723611481359726965785702687347622605974478217846305892187601932363010671524721819369662089760021594329994405686405327259295665539216057044598945689003007872282041491602054672281418738529389759086372482248998020925243195585468926507124443867434706239923404736444179155446326357749734896072657641678132528154475242927683481123121710141081705322905605121633291870228784449125724970410742927689722898041784914507662535000601830486632537210552388570798849940042958308260627622498380856191993812638094330516425225442104295174219806226832242852141546294993329370568518690010966578065281545279108935149626706442191127396459668814922363248162208434638045922104644298081581454592858230793260365744328014271947238048225949450171423458655770240537474954254938071783024162502005700418130329020649938222782087853379023737966931095828057305891365330882919760751785678341629990987371697781486587865725515580214685691655965047415968476751809770690116303948608473757177662496485076709845265508913841482937701307848374690700445729229255690557340644850496702539664598925094514560536814879541559995135030667910056408652230929300340214876484000230550014759938623263815643744327868966831483953054225851440942974703318145422883312864511142627613270873359872681578312071608265147150137899359310526512242790698315356936673285249275956610426356210574434271458334559076382467259007284469338625984012004660505901716361362478121618226382468868222097878404116733071553440495005952853303394782821647316851926093057387992100892417948442163966672439222578320365216570621599437948442469620470549407837720490765310428122345254958954134463899532553945174159866720260920914540459490475162699498776489701192372117907617508629885249384021868442865415203111352513013743658517176339050298879881225160375157551996956209366255080721039901534065287850274329290346929675001112509055185319650441889231446687923327129548316298706968380990750206904306362095625451385177612269754550767923110858050317463349768105453119712914777641925323411804063879375871491832345235241143581810541915838927398375735649461483463255165951393790173974649173376459797242520138232990228967597913974625740660189498937788304168196541028808058116739739794906269410153728464159664217667561476685049573029077171259511274101201683517286087522298788241226297477235997328938368327487338337859871341437256120401877336844579359054879991895300253019136172000287440751186128770457432713032696109125772940250388072319523266369246792879857005508406328779414499159137027877107754051648836347346035929874125415967485891972891944157368894622517383240187969746498825109871462342072284806645886987657327617747275618795346218798788655916464071878316870545967584669990686135689025374196795242020026197580350621842559886475607237065486924954621747963657570418195349779808989401863457348811542544665654953016499769464171024314105514078635073043259004439856178890560607195291501681626479918900936626004791193071999733869348323530131117417915769855337275193999379168150960824913386484740579661117426454845275383948595640696168463891416963874997568547127205708014470887089231081185107487910644409236818477126062303299676003775739938265294898161456840506959668529507577591726231424538530084234492788952414840634219721644600583969526721823564747760455356162255647624761698064275077365692890324397310172133683638705372140886524319811841049002014201793037459814417541656506348383414559740090448885620791522403371202408430477692733133974884640674053185803724682218081916228954475193477828425121240258105020813534063026525549142444563845726937201492759344590951446248952361298379703997322328406392840311688793426752488454632315420888292118686483569223776225308160956042761566038908894603238211428685694809066483695907958113352802655231580898751153187060518239057962598391797533816337050795112971680223050599696025982444986548649592157665634896276416890098474016521427544914627016600293927585790041697028544010505315966827618377788383570144184497240272138619087172008195917966342309413816432225795170365456145613063323956153075930590326736079989483210882941551844025760196910837484022493469354492709804389893353312024525366367494548799679027167720323048830459682254344760183586458453045592784575687995968614222281581772490292789408376863067410106581667798399540002156199837227337780577829044052287497380657711836258114410004067818229435275681864688977490792547440349680806015735480514945218161525872029714866036578997826822492688964046010056774225633251084020875321931223847397508689242047427515816587926688801326543854373979849706935018743335456702761379801780503430551348508100593510951914343200899562655546238618469099021679172222148314659576145796868776229584792470994625053157388251851982543336080593570428493961592784001907897007202994880743158246252273251171624402041380176476405035290696843540127694702106155351428920007657010562677792718994082153410423529372764277908162459612783677858462216757478982434659754829593784840612526504248341343258378232619434353072622779264618567693138110768421236360787100135255800409323574743464651075311065054132212980537093412210327710099474516512724290558740061894487870922912981172544718769405279649081375249351606650002286647353846571193929641242964541440058963783419735650120383109668742669827417736889713102655046427109420070134438351514778901147731256009083382112733145640862267834226931471557304885293491312896519684790238694269132503241236053796575077077016790290722549998638757361057521012820568651984611181548905459129647415992943683804100962099865784133198042319256057367287911815426934474000712755438649261362820311288060014728975379251728650988919757946737217517129057442343618579727644617648384052708288754980037753040451247202550987744034029882064396121754017312098574779317859852801729360870318113654785883546908087148630149810649553378591217558876661109775063821826996460004559206784316951255757964883716561556861616577780381082016553709518205485909214158354576870040536363362180683567817451534715425059679346584504680208574149814979274965491527725743828131786434831148097864716831938867328583051443173315672110728952202750846149270115952333269883664797312160495861678004683527940908675157507997246276224630903648001250162728554114568627498844254332856748193371802581357846414131473189426581208318804026789116548664605878792131407532826294276562302823564280278317692638734300392940595848654281711749948613107502580958808351661011929682759407910244241849549376147516614059580091000007932150072217859086565944575491812709805476535577853792335535527330353391420820417346660386820986025326478846198654748786474420370372931215830383490613182915203754341669227487932748286202983552175628950488359286851335783001982048126641381044835970896035547860958363145701970027239999602525465869800339089039362752924268646391062609253315771427081659378612574530090497171378243161222722712987050120409723325853534104277788168642197783161282580038502490688278944192290693638396949549966970131142604330771991722569203438146284535259970838959677487784969804755324173901373084819303905904540818230048538539420526853420889774738529882873274362870999161466544230977146133743558217073133917012964454523772195850121452876301105500414734955954813076683871723749980100036330205452712211310524406738439848534638343921222799873684955863341404807144512960399971080126817950203745578026151326476933399163813235131741104947457744419455266753232457686352231337249484436076462339331100145370061881370202247686384842683351415889375712245920202976996204890600613319303921300884818216915695255211507060195854427662638358610450432956745044316289240109621468276503339842489763022916494396671775227556608594212485542876325424514066266035139361564111753347117959506215881788363983641976613026908669918275600453700325116419408221138259130787185632170274238261620848111024916310895740851377231864635975741123824883416667687749362825100291817993866535973846024713861942179928807444803400695285536390395644797239573176368713380541348135275839904977020883888931787622416028462654433224386676021143710521443769110489381912934023297727722004759267564004568562765036996700897264477925287795326383067461844834622799079812124773385525015382968036028254606090809320712774927094527746850928520245214367182473562792828453633561398878400301617228939335363421918717997061711611884281477337294974929417210554572004381489029407052700311750764825251455869246894210041389113449788536273158877735679409124733204718956734837251235126887973271153834672206697209282600399240960505914046789551638184221034076583819385597558502257760745905689637002407646073858916055188293398813294828792362838739107895352042205876385087964790784412635520923931894197504462395149496630689906770169842449018289617160129319983813921977068474761290352715884636579583642010302352782018030368677902636607094908517284116471962554999256220608924377336545392437393955302662402441421960991899397685356824597624510340700279426542573136174009851830155775249855759516092868518460772472446287163255582148157370918864122255874156642278118971215917248650933429980980271299307068133681256460255378878109861211673884710956618465834707146481602614772564672747765440537066950779038115553063493397650456471253813240134921311135348756503011761475222658128807420309899479599306957228370389502082843347535845762573826485800918132141192937090819827106907464570157892350810854562969323744670328402679964683482813568084214682440887424797310303072543340794465857470618312531363345791398033937718392418084167432210943626904968964141632707905169688365746497146660439457878425062044006077360142563338506360527820899620914881247141261003750623865253221178719769762332669286549005052423225661892636466055007523701592703896503159524146237827652671260760584330150909403287660946078951112636886174430489365056572367165730806605593994973085094688197950990095469299181001001936717620062557011745033646987548219745615127140165849610900014506296443834634271177022010208565375987014787114559984168078570062959655495891385734495371271259751288583729925901339159000280554061953301782938888603341952522176010155314051790953178422658696389435678963795178452329260171043896976086452198799989189398784969256135376932674521478034909334445938665075632007895601454893937237504184321572778110517118638966879689147624202396026006292976957017826532652978831014847491625525579928930886324757395789376025845371571961569594290835531360506349202795837848354732398724993719821812264168673719496383840986096277552806458004082487979399578013581158763755518950047373448358098303525927664291117605059428817326502992256712721367357337779386033518740018430758645364829255660833329233627141556946360969364773315802337572738258911595365503321932120964083211245872969971264003509128739305411754340491873952558001352318257339555666025892604655072946449996472675854411723675035908654954672011046970609350054557614371286620727496010112898304850810368476122795759015771517785737542941927174774876223827722709965645425540154136570819212788125482027534016429779239575624592904783434199532314079717966548353445905438188033526958559332470633237513639767620601070687951351657206738482113784057530954358952245716591265642487939862484773227975019710127892691413830068935477572279962061037798375485201884185795877024259499525664337206843863150281069861652019324177003560019145413428581400246635163417638176626597701164479071756978644879384635544202868264614067728645851297289228000032081895044772012424369762860503773819052753256536068037792652896015376071571192913890990020816758548915868133208982140763823368217807304582877988362183814772967150058625389919142108129266612650855693652705404007587740176906359891317950233241110295722304250023289125261112552496200624410423852010021123317160216848315430787718567648507622963975447206644375452782177710923818828190042166919331917373718550369115642437107261922514756612554511442342448638078471753608761780215881117850712921277091528109248694907710264602478238716363797530991446168931317256564445992328120031985260207777300263672914711890684334634176372497606977857716166320672873759732289507104976023696453021921315878421977413864348575783212608482075005550958154691544148013982476333325727061966732055572212924026855127241841352400618032279860851556722148839283879686014925766067472781987581956559988913514732119401764331596997860359658926407662102177719342386280464098486667574500520127763057171262171835578702794609547880526116778415010919742844614312804212085789527034611700146279391103812137531743852311989906756048786025396774694558450450303687642668575421984574030439989432646863155930246817441319403833777147970661089792509836713005471181449044472581171437296374743097760977040070855665431491976043759710166007145072883276293825080573829456797098937790560330298937608811630421664252554000083999504714601832831718457496294006731271931298368771918557171554863348750351547941178533962034725361388167466847855410143766558434721368394582471052875183532458102286525998989702665914527951558040472443684691115166448784408356680580082545285036618927133948985554817748404324121343060069867552261152806672743047327536208893942651757436586750765292332495448126960191470239607288899691317119983199081074074408217306934702868718263444099996945031678764129412952293340974606729176010066637665265200133979479558431900815997286602959186313320396650694146448133153489684329651533261691798139046695308374698573050895331531618839886390804294038992801759228749031891122263740495037275154691888614194149242119719077325635483877518881302754138041470677055323942031641467295489898224342148373692952140992264206929865807247894969085950045022015201810523059453576154263828151236733947868345922491649844412476679290820175991716014177544692571839262598369655504701050336187508751859375594281639217661839392155102131642302852118054377929219164527512325005232506584006559088512462834226668635368247977748136774520071642869170234386600261387738219610409018853784359439555154091970638135818140819326214750781126619146446478473428706457777753664515518684256380738135795890398419396369614198019020321764532493241570639366250331263997892105185470091767427354875284305919001811482943621142317688952587538313642396136398423075172049050575178128641769714817827632304538249982320183411227670433442842416534601910746487877664957891981069771439824108785892028634615455791268742938146220459206069773851620753676968988712900497489409371263174762863364674454780264488485345510717651711763712877127115581706942456121982136777137195858714770220072890485938499182763624092332367856420681638273261562187951061162981967307116145819681289074961652408109962454430848191396566737074249048627799532991688244027223923389026366240724421523675783900586609806594135225498183479567048934293092250055088461474298001892347141239262368136915912129746064647847507406582900497245367466992671955008256436105515953380329980115535985544726195626662606008843668650789282788386095298986603814716649965505422626288794084198055027740972544170897725167952392104044897620170303349475016348338919963386765684052077491141466401725488179066383591360203351740789639723130982551421088513354109906415708206684023394616906886346786890169989555103469632538497281447654696114219206635715909924071897326782950341120774833678249359659291672327209282128541954681481789933931442011823824805013329483061864712559642311038375968656977212836665533799928813219725574519714512925002203744555372830739928989377252997781218393715900439740406670699889315303995007620530455637217188484495139815619680604325384594048280777570081819390166909715138905480545436876474343038673000697042163994826574731822906191860473627512054565035162143441960211423973086696766055487164004614979135416888677425836719189371555440243572586095805273647203105616905181084368644634446746255852692060827669155597893633081191668468762340739682620358878339820941774029090734833637772790595589517048195344213525019674513153985559240861539460505615590866865446927132962340034303226158253112381671686958435411210127040001962627229814587715893967133999022202132537000884239259951083627753825289504473127741935977906081119870356510669384324511806965840878975025550534898789635935302948502221047869598464794431625014370028572279819502134008052394091235480380320401829241416903144784851072930325146562294995380250603952041568300443239897667450876819371127781129327461964028313171186642391127961686320683023308475110558094789326812795067763732093797092517756168730624469354137806348828746371363348834395773296499427889268682705813890886999479097037576478658177558689117221388529877117204349059534815147893212340420836822036064499919258245217544588648907800715475915076728110228138257691275001736012710061113161933790564804471655121854051263961385501009783363272778772497157307108376013165183707509718726357120466232386534394724410685939521432595249464090454414837325141495447863946068605251578975227348770736696132516873279896286104409344919313799907383895963023609048757982472045135324380376824698883441865674286209592629209775518946908801468268931152549275295832887571990451500863385561071931435359855667663780709077731880522554101307048973878017959126621266843304888653611503035037651563114037207403868649111717940786987005669988584073714385369158694581497018400776569534337776957488463872249709298531164581441139527562807849356317240084772934801359261677132890091094274004848013820634602638130571020502869111467242058408378685299504108128260237773132075633835857326714900771520152904418456044233004435437510902285138591642594927647507712211548708796517381983105400182426542867425617602313762102640433703210311785018357362964202946489905563147238044404721920634028204980981558228487938372447428922914045340644440447070802906047363958350179415347065998626701849210560838381171927761222849164701276157125765218601890797035465878086404197653785069223237462658009833759282505127131800492998262588595150304922185964033192708365717401090983273116800200593943846015164550766097790464005207531127378134403374504649039207292904886203220357544670204499309358746739749679538328361106949144618528761644087319614493552063682933325422466579377319144834730802560537944584542902198836069873966758342180327884857857700241549532747428944111529176229457266242732588910742872851756374136361139021299794006822057087593388808233246712318687854796102524007666244595807353344106498261141916590842559297334146083470457044348599655802411147387706107405813677842131437920162803446253446612927030613329584005630090698105833660481086674806098674979229820752087686567116644735053041337175339433197808596673974006617614633678819433226567515838766500658383789640594880851744361934035253255708786957901291411287113954761979904954203482296427423627941939018638522717244998882658004406623080009799988553185060991484850092182768952670399859724237055318767745413047182519961945175602189148662964209357536689720740906350394893220382009016999520363263647126831435223895440307372226577659900292914086193792200474496101381512808334776225922784319489867062817103403700714999839225625981908080813892510328155437467876322016371098122611676274805106708888228648572302146774187471704729788757355831277228861967802634922981370712546604737428834534093353523588368706785178330044861539664583975718530529942121383808839994629664860661067315439860755412619968049494518280099202261191485964629065587421247711565551856290717047206411440060072557467413459583619182459587707342387818932390003373844310284271310901142278981154496655031337895527719883821508108039243116864243839135140994021090685356159200366897975132436607318976299954888051993411944051964241599798486719462969152715464597780652514559383130467630871364787985606177460770048110148545096687940384024403494428328753630549116327754777813026482187086852431023574873368504286934432545290494616134365768578949815143310084259276746498059230113202441545279539523311823841742902888539558837936920918019103792452516808326378469772775111175760489698369034781971889449360232740250514697773664686731068638565249250860234352557906461114385368370736841130868748126481952983002820291673315079164488900409808443359938633535778714618379226619052485428281755057847749998544706466465385512017435345955848114244652411158270684859395822119496532868062446978255875660721831668623411151525970464982573173621177193118051093632465085184371674397320760928850934892761493404289975915569580751272987598440337763536394344774556481571896464715299071264105630140245827369300157957353523439952717073290455464769007110878813830097875325960105128916178458747219299215587383540631819065868705069051717160191633762634763484120131281309897260136172846122073360912629099643938969719143515975342321657534378492484300365700500258448767749074187938734688624717907658439119542681533764877739448066559003717668139665860708655511701876980003793852858791188631855935687250605980208464048944033760548255786908382316583529008334302615661570117239974393041940353494385426422442809078599016142225066841507639461182484052844119921311086731486867899604841833401387708674699100017679117958652359154308385803571103845545568007591805429749032805099395441352055100478209128514579265459139525827389525987315847990155353846353091663323312465026808230511830439554213582932519625760283008451847237922688130295827838140447386810670961197347814543132507315937706022923777327181585491845903686195288541316249087567725065201299698201340287207371360508397860869271531839831119799124586178846847460178884053392671226354279199964348534783568243061575216639862022185700495080699935990281328164568250871426630776777157858332252277697332301762674580257901299864246600680014374295409251164376337230580294323403247641925614874750810354997006951283468517510281183418807699483760967733232817300478388155625767017092712845909730524356701264587171201556094357976697471217555709472091707634629017342391343361973684359852388539573601058922360037099474733740026719629335901632712333626164810842941326192031719948229006033091430248736934397228727728373226518587927455033040835946632064606152466890977359534656366021542944396797031853616882468207042340045647806368677689526112390874206648229808569348070645126361349296724201431674199152623273099785894465908691583761736314348722851137502595845680362529201201053834020059013729450994668848868246234916104213735534724338182971377038187870262635051544727112374887229653460293039875139361673957634327890576222744287083924257499332898664983304214775473607661256881283544012761094940011358536809123105329828120676951186390345203530898413160050582108991794894474007722082010190015181662817616943233873460006777530174411392342154395276239750127104224578071995756516652377427539437523593226197303612808879309053999104604730856858991462798858283853551139550543077273550295048831052534107162745873178719308963025013549166574855365654810957247550178819071048963837871577091513120186898779602923081443808160706180877975392079937799678441242129191339182213351073472901888236639318805371195474563775095696746436085837540700061972310749936528808321313402733617863081137176685796262165877954881119351093641734673477542839820699867465482796035148013914774565416883866006303722690159880144693735491703406390084437213760250976264975448020014491002564032796748889685940265300532059972139162259967365778357537503853791995753481114076598261183756741321132211718801437800870824990955333610489005716801038740737825359908295570465291951379913292616722775612891644683320444300057038717529731503780083478713861114330317915365984221627799394099443444220524032746291142453845332321765102483807232725419579559234741643601918711890902248070127721731208636675111011655894685598616668087272195583425105675167349901103189191386597303156368600867237031144770823479019570187012729991320730956070016945505066378318083665591827366295865649814034432724816971076624345433967672562691431458064902531789199065525257566545559547283937231112499839810615613507186661523934948965011713402522622681412243694187999162841434614632374958205849699485452001784064553384192228301092285834928315648049002407204918091051978183853559875543072055962847363915599525242052949443280235069336796819214186113046047173944899582062547573858332470738899839573612204329750043745180588433467272457659368790121860630951477893292148031596381711344609262245273497252666721342750904623224755234030050683426976428494729184690334308747284755809008936352213471681828534149168566970272405187651724410339954603042552782601407516670891361394138509494723526760785834006908294645659194681528421165118631688045525868559080135426781427239943826796301409189300491820840721429441661204501991887748005845474633641617869328876474279216769180848119737882076783535825009142074805876365009603756007161262510638772485111108772238340424469963130450872529990877766131021546004159335429686772705106688683827780512519141156833231669698092695537650431896937439138028012038812604336101129870659698468520850287411104638768376463714947343045065613091001665968505705036117389536537905703675467986615809754931349643820030034810397200037176687810975424886171234053326084374584180894972966514328950391485780502866991477554431456422200866607188407432456768176313220880283635405789024123879629068212538256659285116469780911820058179708239118755934362539670271362745813443340906602447391497701965787836497470034823374041042632418422265351552547415746457203678689124817818255093825050942428787157307718142178959015428163619851502902690089395325848577872682258701406288557380957014164979790998427976828198478930156710716715966937295455142602546846494026228259008120072567983251526333209052280026833489306207839238085638496368529135207400823383919568953325739462813755552523370985357550491479024370287945919274171253525571308366037855349695427831259898979143323731626710229228260498758315397781072992851739212484583635982864362199078810714942699327525445314174861587778545368335246704290746722812302631399834954283213646004727766840264859574362149234447852889541936319854031768209737515594730154653556262549520965864620234214291220050109209756697812875977385982209010403729468265306480005706599804671850951276333224058160940838491037758379898402789916929071236247019824453442322870816603807826942672912843334484879451141176410127237081784601178527577140900538658510290767855223691778463730238367293863973263300843531353392144027333034387443353662143043066334045369718021389472417221016538565995743138934425836068300829399881456099666054766911507614802787137016047674429420546619829232948941353364569146791231600421514776961276523462094264554471458608943428801085301938867381758241869768447466697098012499842578516975771309406731150299247599249966650196500185580030610555693321222290940759621488635431788029779981866218073289600739783019442106242888630564171049950554868720974231793699356595415556657166380278066496363782793550635773416490612799437132446156041917631534007606944752271278268910591360615576577819782007944914926400637690019086974247700696004580361080166686172421707333486185089781054115273082869812402470986937949911404493017795564679617298482745686765194047891030967934277321532533408368035888213906165331129085620294372111920707750100117222386775667943104835081397110281172389119188839678585261350565046905575565137877426759539031004645292029213019002541049382841955425184929584017220847014151026734589627662761654642687233644898589493289973383760772438387208169315593082938531439278011943990717905657419411642911972002260535496345461546116379477168202197056074621588136808652263808981284157093613104924343067637559471451327755353124671074276980365051866154453274388954797691031558026559531518021503594449103779826806868180167975074262624450387693509290998001231783112031459086261425537144178992612625208680773399569922795300630688092967884252640475286085803389808460684596530985092850146635532458292582164459184346525193427915380702247825187608136076533458332716480301911220309889262556063277257758570566782680694949757293908658067873795067581200811194267225626847711073607762419425022747201338814221168482047389547807409734329083043870934206678016315205929583319588071952436786257890986020240730008737470294081055213020406168506260213077381561649091475623697913954983868042579572639459493697990088899978914018480595776785372472872926492726396855291566752133311168601742990654090376934767662847613100900055422152580948532785355978430481009464625946856896505625544289373674206338486180611669471081445957638393636644014653372334030443220921757988053854741383040903911410864545152065767143337365640009099023987272960016339870009051431902019544134598063454770705822308574084845951637973374262929391184806063523042567434566383007154988753692584681777947341217469524253910418396624046056229275267156708964630392478803518823029370661478962909451009231411529383839513018130142724226165017530029856374195210768281220799884492073739207279451819833809720616462314003277050341421414113797964309720262545441991287878046495898171233041923486833999944126617971158860791943595844954376585594235226352863097800515574012964988199239607966598089129608226350487384346932364428767931971497490320255076058337194414385488875163907822711941991199799339402271621372741286970986519640223515079403243137908608478070885300509678530076920363308488085276664452865729580465221432271515264888576306060988143571848241585254934560292821416832748632593646010170040018780769763201488246982686026170670427499916547383999937864681380329099268711313898781959680544436632016683223565419720633339523044912915798796703480615637843794628618392124983669667213146223512303411005201386868539669229545488527515748984321731579094953713341631071475175762510782027454513226130213615743037492562237247934296303705603139754963848125260871076703861425984898966826261527864879140026347574278090318320742229167794858950072098814769307074749653067714798694379712420037170158601516346902865083055790299812720670274865324958824369415887108980650340822868101685366644437888132969641130462074334115177036363894568296692331750508337715982156063266120078843236592334192686416302807951139822716727044764749599550038958040025270413389132857256438843545797441259305918222386687282457695068816967820488189406668010741705005909541080225679833313035077812172111066084748260728690756651884165289521310164031356175163748956712021047961199906640080270027792102539649038706373088062571038768136631915724717688910758371516377924183413536061705391983459638443687278539036864567891301464150356220589204825645078448143776646087376322585017569263655155396317909287163115018272791111547110611407821497186114705457258020753917081464511744768453536561927639006518680142311912854833071908431584668879579396524672090187261321923136848202750367371538678157881142904210208448749175472762299568950151134298319561143702140962892478461705654310381895926920550578370494133963845053408619734262073437488221834145841854973293437670252878516960200820097845743168104889580856417478058847127875081150463836117993765625959830545159391635485117559901318049528645821303411747299186220853141674968497262482753609975844631328283736846034185913887565455525533467158896399892340419916360394306753891308301089071707987539572813501536217355500577489350364024070266056327114658251056447748764307007142880367334236673659315651593364840255049962476350637928019198911421859704717485598724765929265804209148755105143432395584466316141664104476775679239394035049438197643951297309451336957145507556709817367121802828459968379725604156433307160505789502779709459534688313917710758241220351559347440037742363044203193257498651423912811335828637744431887989001658516101242620082693816607637298506175495875976625804378342879905602312418246216241178545186801403437648320708147689798368008117874144945636850125034159058331133218584697590224971409894338004216873991910955208189279903859072613762225775020471985316740120762678809223058070326351568926047510790421798160934329046706844777785433685134930809150017713288378063299009649159453649190773135787461748555009433503649173126409898402742627826492170108269685014789811058168210325951252418944720208292405837949190690830892008021406315113588731788114272954133066070219887499373556294883964275153204446230436847055717987952717431537413025149808627294396084323703448035332979902743280925382422549826407796151484125716581090981120287888981154518585753942198141764527785268508673994345312955262304173486972569418650357174809981190764902706793159391998028724034414586799730723993531767982478359437100799711280104896252368025286974612888964548837240887867591207440863146828972091600033960818798508042434957490821848671942218081501973233497712702552826135665298616144351990321775166330844149532639356208421363895014520934713972256126860493569509029802845837100277829266730360694667687559901616660520951341388004461416067867602566164949818521052743857736815412461738035346606570932240156005861895349368800261104921500891558726971422498286568064866273154315301220690059473884973573338546876597411709838796599945387928840107699337179128628631629035899450708812642457786894465208804326024073257613198596137340626449055509744381147662915764415881535077094410068904803123570584492170414648288724196102145394525596321669743722689767427117420293662431761157063847662236110927378017371707231811703062592387362636677635274127718336272880214714588087666158558718509211541518328266492870633266790040848010206317183197212748283803056560519145379271328485591631850018070683052587730279421423960639112188258441455963561524290488218663957942830531020893789495302499262578843594584417245902376036418261590623611970058798652031765895613986002965791625249616347095211233667516570735506363743935730957581923536789400460963275776593522257588877552313127485654293385851887756435907818580935519973981639534212287770735731425970093961043502220369157203951373286295099818142160038202084795919340728778242852873965655138192880175486943291765777592875599297283086581523387436015690991911597154988346782054782255121621747410279898220417491050964486394151361941465082140717035585677451085930010314261848994867903231237521826341901954728542049747148631955165285786010951870267973342436998423245536480508845916575283212242976558816590008887010185432349981717819323433590578415927764315843890433919742926403198791529984363500591583871705597447351910732537250582466260406536946159206415524794396558575676661550180967984602516242280222632175028558106172756488861374838032006962469834659834955064136499884025286626237621505452875154948266429642037647940676426795252388322544520702261408696088326325395377582698240415218368319249272955729117812209255004410801908625006793756837998163017386101720714222464275472926108711413680416687520158910970013458266636512278861769874482824082987750156436778811713808357882922280733872161983655094487218817468008585981236640872370734995226232776919449748099248570223288920396487891872576287308949774553882146181137745651713651982904199289152054418498513331584781647511355449324796990510376449753980349156842495527484779136594942288964843581422088664125101756944374515719832067580526541155996460260092427818970808976335211447091248014982169285984917294640072342698964705602138986408000101336084149370495323129201098084011745990315220447501612862156912731120403500996472541567082461953971965070127094355592801101954339882427933965987859150771186500296380765770376952468828729591862185232548198649044996953322016815457818259881075002386370126862554614792723627920744510893901840974487690550699569330592686470662509569977948330021804026552836379850586911898092212572499206579468265943519942235944099963056094945983328060767407630678060710115512147852869589578668700346396230563465132157741780037475135349800102326989190527859363438451838312143360179480595648092134375421604368647873953296719811281043457382035165267118655781009375296322678890268308589606847153049305861652552299092979974740890675441003849613818238838343804737102481565415573449912230098811195234606378463634787305994284977103030267739441754629825503036553696421691570363419748338125089077849943283815617490321990012207457610311991196656787213636107919883935433498054947026353683767786005299461822848742066207799573553696561292301133505275367040537728509286195928254519240906291081384908272245510205382980483204749679155640053149587824174705733148696647862890089288896047283479089542054089236624306430772900338006082963651351860177953549347361655190001818854228428459806618324187241708599253632928727154164324335523284489071574961569572299084338804918289859051035405555164378222924113958194351208571023124248452748329509667145715090877716281356132775340255107646618253088049703502015102254703789532255812361100608476601986667656900416368977317979495268481395017927505290027603488589976346855803284976450849814566343425745672354702080975698225374354156742140560182523164167786335546250826106461638477201327659976478136053234004104220840246570363892297909114349296974316388663177764776371895660033008095914294062837117398630289459350686523779263614735784571335481923032475457520066422197239436145464055280482280741452489328694107083170481449872529169517799275232704210849888284610723249738986437478590975188553402386140931701747646048657152515467521255482542346256421210906279988118588471998851752139292498653206458935832287222542564039468362361900041460763591107505331532717540865685669219457844566362150080767468818946843086568451205322563959995287501213714610187418673812466766405856289166738234208199180270121211704075772462515939593062040521259373993551507465921209702879653631226836935121556155571714832121688062349821904165015404003941472665770343082524033127138719916406792830173334780942177632296099124796940016127200103400041160943948336150762104436997048413305847987593004772317690998864017295213285124350366238001632990779341885368899594509186165312782917868969456957380038546870399632908907178233320846499715032614228521384155659114392551673861893343751632135634723050289452123896954613750799358786005482627817932066859461564805481226041689646723202148245364509714052692375120004072705764917493971776750813262577902087836983019463114403962623416024216568815880150245133004522134053419695843895943146228332149044213718743930740224711599459304401157675396561572097757636566021011778737004176835646369941385284534725390478936579002485200841946247121434561157015993926902818739361735089329953731160271969681484477214281571009088965845473521142220696952642135986190990521737955717816864863810220338435273536459147125200859517763518440853049656126132610805523052415556063296654169975955330608973729219015530055527778832559005409807490830400398463971907770213497552179115589291768992805811952357100460642269209088029702292584163294559018891101802040415273044812458366280079980946524601060622862238968405969660397789681735326987283620092066672845603974135241415862606619413531232915471976337533959075444242227219838873857474561477941143880390726414769067177648090351698890722513606655511755356485772770352401420584183550418775844422513844391287262236811689321135043300776541095215672018513462074859615662260551105461668054354889329487570069038433806928875941621713500662378677717014222213555676147188051613894494280756366947502652440480825178622243310839440833771366539233898274300044495928197009864975566853831331885365167561373725516909487426836737341465542023463734270336580709495236616176138490204002347426542846157450941021273597743330265211391119246944548715572413106248387258976836968657993922200070969417626155344523751863638838815554637783705381492055346443786166917919723234269529277856791004768686801569887994529464955923871256081387576287446707794079692697408195043140653988934943544946969877744465944130270568618360642525823386383727671639954957087872424358056301910448759896322274069440119666611883479223410725770954209240950964095733631526008773141982839727555846783090636566174351918700520206657806632659080188378917076509663134859200382864443421089075720480725207984998571456669958065699469927232069880492124544585995621765509532961112749968738655302111706702276165466461696703488485418596638040086955270767479709956203218420304052601004006869567699141004725990742729323883926461193574037685446515865750335904759148603793461683405715294013711831976151356096732367625969776377572061674183512727899959678211600835241447121726488128862390867180078846431518578222231999768406829229146038376062212087500379738306015437175219838595308761186561649748395633015287056158105263818361247504668059732171454285558331668826595040204516821348774191791123071253841333207680346557281949431816615583104455495152908875438223983433622505319744662585553025787034332506004782731134153740428678096658713221226615317846439957943204368519454037543960990864068016013006757804463625905212604854247636497943329605096676237518376224944381030998407449091976966657778323228492563927390931847927432263441371623905519299383905166809484970235359386799765871938942802121601008743431254578175902983875981907183195040499678851155162188035488422116947181232332344464371524266265574913840476395066926113127357875007302740377623528044314877778368368707117358579101705951744719161034817238421819012948229159150973771030175652773501497364174493155232408591499761913627924498514761025668238355775886751764037639204161651152843646283672456926162411668398863626381083487008714618621386608527260956396470246240873221037781816436790887676516715435597350681502491038072423528463885672317675657498756382282828723382348765161655287589926166440237930095636306886378444536439110498784319433172580937223594842124065942546066795695134179536469679525843133535180989002002324312359962124204792436434322448767297041898168611243625985076518020437515455321790241709953316283635867724258468697232298571255342036681113381476160682926398952766045412313408350507932452393709701377374611764162812923570533357629126874117386824917203370951897897796778595905898631486876635259320723809355844020562666062275308081588868152171079947131829222797397527476351157920389489308203766207811960175375262449740701348052791299313280993845119097086817611222774021169137278517571174330418943696466600966992331770891401018552095359016117799463413495913412982841117814631965466207938150764096198230547724910709953750953689712298974481195225541233253432999682919628507628797995749972180669190134959451296468485250326892327691836899345656428923290843305832190327155617772254029588746990967901471754554726826138807259794346857662760286666291297585915874563371486142233275396581489492681041329967822083975888196999293242510772818296045884967940325504291718412293809036346454380795130918553534610431332429477407567479768105274924431375009427043365295343631772396650551703927866854050955617168994068511161455746139417946969427878652655097753413276731363092789793491057717200320248611229230305504042179616903802116394790121569214091745042958400122338379723434270059116519411369836955751972527010341676066892244649047391529244459010035983030593582146335900374478767660845575244220700656435819104293053241719838224378989623061176207849191259802303986690859126577261043275101953906291615749100562368331166524699754879132511023292514345518620918235336602267526473420214042823217148631437473884382972605222595337771540433499698740175507177770380410740434781964430800831379631836103846187954176728862884639494194555971730994969003214182141278478387981872286389937513263187374771675913487261225757484855659639112251698245649750395090079347716161440348468223467010930121812134130410771840778387602555810626261707524937790497379745064959855244717958635087651592189533729553412323935211190882469799229193558825743765332107911695462958489440867731261067908672296424288191239350246206749462444382461337164861980789277968582804069813161482013388630455998778548597797672542192388006838933262689696868275445306955126667882346982569972521094428761861088648156367901575498004383543756804549797107097064865095339360035156219447160205726693975208878776628930052588211024895276971445955862038572471020464207679547397318666018011817028434759046735886191138376564163651336040063183541773586969101023192554401934097956353660084006198423398372950772230220537608969309106566589696784196033954333325495355611655171175133545615845073605151851308668553912182320089381149635936306156073689446472943750421949121106149596151830146665211007881857272131904139376712439074128989831653992252369976656115751084736358842291307454531338663137269393175961472339135662352401101109939790992257643278152572437279925369685106077677271730922303519580006801687507330701802715203438230667413176205493907755033777456134485053569721381968878281694171526579375810777290563670634768476078815923106383904235410224595036918213770651571570421077113704778251851807912485825330444995864405523138416376758789414349549989494644344244057950310895524206001233344768817793900342940137508393030031512076396649785609235439410355656416593532414068914502377081948244627763401080327291974101441750448994256107063436068101288435529431181050230249324523501465925876791120995412607987008453824405983771764799545556945078117526861901945620883443392867949259026584381556414422880744833281755803420131362954414813245944533160181590450059460287090636297363695643353402090279154597813467583256798292188484935548786479056288463166322234387645822370179926631265191066362805394636161512695974177147768257788274706343780559631809278086277380615205635567725075800632638565441189640984861129993568820876060788816599411231601109147400487533492338876149923873938808837531648734073912397535809923654137369289641635054711323087672896363575593148405106348820390548721050766459813667764650033847762621605194465619152500347130358382186082414782148078540357880384405535552693319127719964996316793910373210866942189434810952071893330474927213922683369383184215998092457768838089583887408255400025697434878618898752971729976895638790980229153527824348735952126018861738944881511929864901350249905215518366991680040072898665114030282048760618339251330230722057787107380409508273839659320963503103347334789777067521072552614716778876372120021056526395314292836579078490014162983360113791777811640916005540527048414482255260994197357355076255592823577870998674716836356383613419550898117677383371333389315965831676180123823121422867560165767289049375455536527271766523436661778075555125751959782960895621813523196743120294803109116835930534536840928274831211722703665368099492860574699978364624171927975818897948515687128161234974600267809938559944085256160393471713420510654848744912380890297080970493456170059728474062117705440233085177008348418553785715231346791151581322780200617547772110650965185448529561114339513384096993807576632429164375188441047528157408157549536335702444933364733891578736938247145748917028397343988773355175226071530938034205928103824862754412257022669554002071626797352684498236190478701418585364591271328955568194463766965268360008103643054240562982094258283009720860868042686839918481633053339793480070154637265685385667722211670702754553315543532733429676504792487704897848974966662554211008517793155300776157347430615138302591416833826598330781939507345750727479329630610283067908305009378513352581337309080377093598048781805793471491218520270112731617217728013466632780747592216292529472035237148893185150228850283958684958219515451743276963981284297318440738913554283174756120055780451036670987226553883204652544962699255362029930963752213711873505945650498399135243328836837141880325683856297085663823297983313417582438958305998632532366549842661649775931477008087571088926698584194578152275395825135858037579684491584979265589304845690936798683131395885517385460332665198136854808938155031413935904547216966475344265104124303891833286022558015873209551596144567730005583949487105621301638503737787011568634500232233256985013461944276270155751184873369314953484805942370123345816212632999059447018425123421635507389112086064611623717109497020857795505387715622083429564587571213185076722578772084280961889414930315205117905960488257217569991555610553985666229953851343079410560836346603139192159672297260019146460959914994055086885980990833771405590937508880683766340391257459237555126477635074608259267070474129802433313678147844257206184423371108393914864598225293109870038075965378865237519384570210064200670453796330510721287112585719139340143233708192324168830071724227245398879690713870866735677501756658182915658446781752567471286817983368330264657702623024902562129319964029411375614556226122842253055700428190501352737027336403724935699353359730954881129100012547705945591065851975549665435128214768124863504972456946480459721456529694465488807227687671488309216046746827852585580957566098279924946515574552991112273700586870551785001697621402984636388340859058129273305050942187150397650297296955202363722698825058597548699265043463776878721001424370291918134542837358833102696882532648504016562159923402563373251062425642167751573230681256406704240755720747588209239428050380508747536700131972594668509095893976029362088654556543047237520567920608028548601272473958916942067109113395962518297642192668560500134780920151742767925554746228963161717122956342442206476273359535253983210263545954827572621650405683506274187665532835495919165116906183744298497383439783584001954890972417002514927063484542022293630269372640193581389889810628692205539035086289137494132935235316424436028540861737797267069956257716371691057071845632226570257325901547683808964994020421543847286322777437029642692212973739437062292549315030966708169511431260050155991790768401948804964067884441321765305882073867492730976591170868158621569130284580670284512947011703959169335601692093176204800877026134553084629313378335641078772823886745776566761693651018300840127741992646636712656382829767995866834773473214365579682835443418944496008140663998799105247944551543187078346936182926478550036328316260136218499094843388894830549074479370149314078027509035824864527056330686557703743122147648729963669271122422708025698907202316087984667078031350325983748008710740951223164879684999446735666241088688198421677677686067784010754186453730263782809529978728178473588809220901089675722029898111833594939323224607444325488006759799906169344939467983217655258055872660718846127205885891009804408974312792098577301745391729216522622638479190394012066731080260107350562035932853691051250241305656191109860989163151072127140236770185721168152022984318524511068076000902832323382188121618267606932226649334681158733536372803754859219668147187346725794888195027880536744374211531326042298893588541546328210034025649639724660802776230492650538056917245386344836719144930598966527246226854712900424753610525201685510050623416243736698909386633396997336143885461274206088555550788256644798227848408134667415251477866103481306352535640232484481808476110444330033072627651761164475909943637532391243143692427598208153986737675294857495890656726310271341193875092164411477971544886350557697034856238563432015266386244427047532958777905016108826569699510158556929557785457515078918829807765465698942033904886222409737186314192008197100007194123500875747435625742096229284178785312309242753853165348893716811806254186797655428764954026710209090941297214770829999488579261555322005710908188082536523672323310597156218073688193686156243939496771851859746734585485792896881833077109154593903723754616823661093118558467517564806673923006210174419390395928283391423268868512582544208064119675741106172369130644112853622121509082772883207241555037345755982950342312872509419531622467677853234706993621502763029437959347276563533742180638390614086604025467974320093830300870405696185875920375065414413643869004547880802773128713915765753715098176775720957298358358260145810470929897470435508589100579588831744956576638023354768924864549359850126410468177859849350515549921654183511741561654638231269883827260858685355501111345662179717192852739112722499957969495739585690697073414335808564705962031389484648852774061624632664501268982742356338203579790415938804457897350287354755824456302191360894962317374797058970019283747285529441289457244467226480137807441950459175498606185404464931129750401660346223315174222456753541949076024125350862505825559759535637225485942827302956441806352037758976210629701552303848361396436225095803919100955619297736909743325186179711776250971248057327343938684946076676931634819030111215851187992221679013607732289073655636387726340495727378175554630737414417916262028659330490841378476775399201805122793015850262559189596728690548497082402301585227899892157728519845021790259725609021559449011555018549167014377868285127972549353865871067451368840514197293163770875820990906083842884784261728094308739244987396269882341202130188356561330793870088485953198788822284940771244880386309932553412018986617928612419918257103641845247257655910664728433045027000816899831848890516000244314979406997417040908815728650769697063425061276103301004455999405766489887675938407793680688658492952699826225218287015253880700274749650557825556944739403017871066938956291019872928027278987835420155058101259309630174114030890808392302988563722911841960124328967627633350130683392166030123493954538465499354731326412590213946747518515267040295632215899374834168398853797214193203497832278352542125982061586011756633196799190164659493576294759017739253566082121395715883108208404982742554751011985659645527867312937764396396213599697238759811668957640689278487069997514269873010942298552566745605935956230501813960276673018615623414575215566294219911507890015966344103646413367038832305949517209572100123508973508424478357911838338736888797886491093930155861481098368212009137393751556477732732423283476503968515282327521850399506447464514653830750466918635145349026024216022251802752596328255230291392679771802125001088357139311136143255814090088835226137477620585465874526429651566472002423962290370657006490978059347031780871166752167896874992323497840894532668935543512811440723853052183268205920868045493199350946320534497956378763471979734826263186947796626474076449497415589335284803440550735866730253840894438289877267293755015556651152566056247994089444571341280021046649083774664922448093484168376626174874761104851148760133621194550047536681280862227695936544458750966484879010829239899002331924764032528806279189236363780971351438901062272337726411208755042755514210375983739348397058351836053240681172950337696223597902187893818835978233469505249381152826443761389092978330655729836678044819688635806681957396168513661808556812660180590378847925530335143016472177404177608001883522676399624130082986043421987201222707854960325821986068518084072708124225193254086238972602802071721462778684763940942347941640470058909282018688799383138025837650953728618401411044303239049611838127804415879645771574931951988907908375834986003791023048595842153221567131370611501185733765233675508498629843982709059780234210298533440370741459549797914161266456237558726843666822030335280861654275069716563729322525256759952116244874090577816659998279580246241702904732446838558473030557385620781180775337620182901024303391033317053720643836019059213396098352578924632310311620905986746976155144690845978667631292872699989269255853646358575486962561957469599412160777613153642001513326075841377768697715369842090299602697789364712204669281584175101273271664662333152962723168025845919374228235793710381928202843576158876446802178101869758788595729381226586010987810373045737848475810150233475699183827123313187378922941884300762720737089926899056470271091147450280284277482742395802502639885072501252561117169292689303180210187261773130192702798931282213168555269483690419206188978524268761958429346888736595541576562838030372179293487503914264399519115432617592533610612312480443857084626960101197976207411972088346131697359403884715193977231108497499706718207083674330762511957075677427523481090603146180481613806631099370561290891715636688981271076417039170802436596327638191386882277556397861738867007429499157470820834713222953753848861218830562604085855628990646786557573711821772014337914689335748788026077952466924571447474427007001307391193980540447241573230734109888966488540705127461328137144821027470864377880363799373125371224922818318342334924935710482121961209479982143670478445045728152352390236160694444537593047589684837924771320026966600745800441352539807822783344002567845934249030174321584815475458024593637297755231110331285197528633875656255696963103763014365097804611930174848138573332581365268207177249859244046649522298605178621863247436489390192089356072941471404534975682314181429345692875723930020474613441120432717776285671219545105416045163356999250520745290810132169457627887814517112649953230277728893579389263162440637266026193290133253982987702693813012567775453308567280678654093601082095942378443368097036528214196010335069835913593591730240195966257651969115530366242526751936467542082593888238349303865785971126171680544085042106819837646036002741988699223799129299800888033749808052408389245213282017708464831129843222784972457311236659419232189891319025572468365259801077439227642460352330429236318067244569005302926255813918176070788441804693900160679650821786202077769432377897719911566823556811997919636879922175944621182023618825384711595895717222432316006737788767276145377191629470839176800357349203175057793339305580300838711442729958773811704585371909047149665066564460654425627166525038581960138010853622119229719341821747826059248995213118595604324015103225618429241743329948517696617612330183874509733683009006686370494964045428099116408056476146827547235442059039286629408093978557336567218707260082825531689654034200339808672208396596012121700882087518130644138690678058762544063096276267614336073833403364259307085212879043619904617871677328225217068259436677093327169018008404651416311994021329645329734960696830413672699824727808756809577061000859745094808319525525148746839709347838963563264146279823190244633444390377599180009087112991389820396689678394403215730918501797108455944075723094112066800684311927092290857522283346453129198794619073860927398987769896434474511689188416639708521997458793097556786031721274997572226562289062852890372230746736654792034837237059386787179580960580137732557612082930050617456641346054434582340198919796348118479537959568054946987180425738929879669674755223048965144640007854925824941240339551793757931482394524918060172905213101862282147277414595304669161118260970103168909816547088263816446467494812254165771869331398075354365717233173949107129390768454446308075222993292461181783615198522203469201746944900490984645088269526377314150015176958182745859331025724001125238796546710390926105153460814926871557945621403528916559265731807577703665381431625720446316621154548827971212873046633465450749833938410114507305402461046843854647017352113280741986104896195275709018262942999606340530181795558170379493860322048881213030026795454265617958649759213625874818141993885566900574431359228174649862295774000991844271498407045208505019266032829062171268045236996007305582748407941518917178503386390065310742454331499509670064278842247049790884483176701596437495857119600244085692110447462328995486984014002508900624986473524242778498760925642793122387220460535257345836051628867729101619205245802467514961650863573028913967930926479688044966598975529611819226651900126430071535382810978547188631993714919435489980900728192730910403716552333904280731633149298822549153309026440697439995039969160419236714195485685024239963088264441086996887625297171598075958488412112215275635259873569906817890632131968695412955093422971907226493683747548147485448924934975945951477273427096044549456243153343921991102829602527755516048903606290345536132376106351073573296626210176930969094550317745229700397810628539510442043824593247737306654636789569011059462787481035786122402427525090069580353079137008500231049242453364120028045027482195496316414972216722473471536153302043162590765762524740728588206257531928970043796081676897896897470895137504787922584419624535189648159996223518870328401430797853122750459246421424092415489803476219362972481081385284920542739089213533197670457081791355678565049568323598524195833289671841288648232407547082943025399325525896274596925749577658861926989567793335460140159419894871587478125758273182507648280947716045130668496851237325912051277546432219135656883340579897643451212776754701298454179108757857101470495259901298915492974898795912111853173805740401224184794099543339896754582031814194528047348767513956030938003229443765478666329669559892883934164420161907362706426367442325450394554197006816418065156421867778763273886904106569094928280805467606318709783628602959409367578519263497988137243074609360757360155527794130119680258588872891322580623456483107317757529273892735145349193407413559401379908433202177452233912963744436291495250606185289794471977845256608460204735501238243744445747088332990011126597455795357765263157908605479807508998699478440161814878804348801893119949909439107066669009442429898585934123741102104767109546241013533686844909240720260595595053702652133424027207231555664407033238516075678728541511434485607687252147362324883046014301789488493272461735684280040027422879805409788738667643573522768523710221792605276257872512659935382060259854408496068751058092385849269941577682390348218558556173979711096617420151452173264815402536594695863422767002325729108285388016794994651488238703073607985918203024253492604038754219589913202009212355276857069833090485998786450449292380909026376646867143370019712190722645486172347226726921117460190773454465012852001305587372761817945865590788193263837882735351118498830686570467126859336487894575429685843192609814986250465575601888032188132500245880357908877841066167952530639637254696618142247045838736284717825520196671007053740875902130701764633239777286757056790843594618062027600422069905051044538339820637613216771511510854843001702436161467098349144449474884907435448417999196911538790156241481301983294418821491979638831563794098704841745702033086861416905473594798228086999581902901827598380840346546401636213434939770672227813332355357239011842322344323717836689069077401707971041354445389275596268178909321598350177729774062290059714898257925791745239239757126986874581038652304652050113614079225598408500240089073907615670974635969104620518797270131933727316671674613641063755861907821467944872364631658181686612241952654094765228680536351116101830693658997998114634823674353432980770702484763611423996549776888733254818781137615952753781981869032407516681346390462392733726245332419906846166069756953899217957288723754734416275259324724511265656787487275557159458927611300524855650298606973979474314085639222731504233448157260595831518991859733308242768910722976684791415356533816496755796120193875459309949867615375606926736927314489678337190692193083778789436119024125841384182790972038663245932388912380479035438631596186416763143487983690923976629575773303451504617168781858424321443170653655922381438194652044425146914731100856477279626861381009152180197355568509872219791515827688023396369576670063653387094697177993343432193952982762145784884765492771964423358282153595054900109586881423674204824855772915448910530678161143799394673163004128947060697698824373974894789773710050488409007968494800817142074532524040534694638431795721192977048465453499845202915520601291046926858555834509598661548797220648604803771018293144576923354810446004825330445317313481780805415042045922119331315725362169997560236585386126079317812577315632627786476967856372102514079864758515879344479538184303336081928671951940505306876070041612950948674691314115313535644116118933909452069243441706789484816263829285869828715685945485354706107427259991883973695557121924799321068070920999896089399236595840023884341955452829815545566346425737411435328060736551092175369878211194185644960660837092439609738163621667700681862437892702369378323194902886591442327450075563108474873854756773914842834169140330257702165922326268966652750892384580059804121591851064016123558991641981476100789120259854468371330566908808054673828533054853032058624296712492565838877552266212359949902332171665097762783564567629058438913018791943293284711354133917412929625813710605876789950695944710763612320154865241885525610718536416169362359836950008597299499970046728677029888220419322767047877208309033158974115448491312076115572707636506918541177141099024918919865632975526829525648136324675568397398177628790224766068180486781079527779102173284182776418258759592485558767396638138964824092639583049138463129048392167541514016028741136642958981461785465292316431811606512611641044153571068580032194288199420967549101342611424677391481435306706120972465439466855847773923496556142944693853082773997771480230743904080326067968011562105935506082082701124395419725528005520061187143092603464746146625572933854584793310912999466957249895172994391583902915967235245840582457514685917015885431900468659595891362850182576474504007867494303586682054553905473443974523843276844895571248221212371590876493081097406685204075479760557527653605126467139384219035327502931379433351515904055702066896175543849393153404610071678724213332068245226940015683782228500126900318066044657546575284965250809576289344028388685933941040042956976523532483046693986642342629863355641377686562048047220400933577713379313073012113414191120977399624499245656701178035762805127453969543946225414129006564317966956758448028760215639009169261032050719672624219222374724051075631666092312213336799350488875349044545291339022017348164326908065898905834415871480240844228651294515246959825733996133413039145897961099692979805161202770934611776094109343931983824764499504385966904762126313727567088250179165065459293505233001032185997023563884257479801045880983786690734487778537942852561227244880303453477383446978223609256498983870288948211273438535321508581247603543208590792994298545776075159384187403896601412039296023794576725074700653012020194197759750959506183758718528068362313350636332326773415808999313766139610165303751264983489781328850702815714744347486948147345602732772025125081961498157446829484551915620286730292742219006180492982324550452315989533099784011588969198937403772184199738492246546364038347065839217585649217792547067185690452101131312079393980855895395125604936136074323561723580251387983283992082661404694966020565784460156385148388356258150655361462095492073134872731998735240973172251584625306286938886965939017206472774917290300846671500273651707535225857115930082824955971860092357916286378775372175229655458607509676052932130212819863476610925585092169189181606117394096601360676834798398860596009614920397369361068052664011843582053104218302578347868362450256610736197802073863213317102176448878964619624261188342402412632795511575668258179085202831515500114773281971768462806091111437934462281128127750141245116013347387381957090098064464545639813125489114760536150363792257547252915786256978681003615390324507630146416729665234182691629331203082110018039537712357706362551302874320267883149146430194656825790724423032938537369414875442824956876931361505205171822323751983381136877487541795665487108589061121935393660632412500832968672199499124268957085873777732997998385501919568373213053193801011595283213846967433125553943585364767758662093315046597483689137767374686612712539787656417436706382458586766054047411467471493607074374143580773837273983420396059959154725639272080388979152977597518884208805993638986489164227814912461027552517913778088998502513692129562059631755168960506413661843847174261803369187226847812636655413315049529024571173371239753225581853730609322806266775342740856269547913067653990020684253804724382515372440711840530196305845840796251531373767894224269767716008783384051422552505796426403251916851624735348726590026781294433242457252772959839977556242585755703789768725183544263750931884873614426183795761751106868472143491818971609940290315949239506316855204714800551506799453053912284302972658676112903380526769909238205937669489061796408891281892502491360373732497926869557758759059734539680429287183298226685848879542556356643080550828883924643084249798819292141432940684983864177482681703584718120110442468329276460180059572491019721249850678183829887909849314334811313917194705013062324143279331432954921078395681759555541951647449797788750314260742023192565428122413263772477120044743889506578624931819925212083994580758790686308999492424831761045334317194709870513965730173714412213091078235995576171347630370974513490423409115773234371719082922239030180920523595519348660724216498830636821088334426246311222991280166681971559976325193473553260450825399108230845386391409551090651995044485140561166480477455353046919828752384147044117489872614010125544348176110474273963080879961109811587492893966988741283551031172568634930326231406683155247839905767046015583767377211749409439106226830053067509748576014372762984030398692371116148832565507973669771285812355354265501372585153211350209658586158373835481588089072630695139980240065578638864862010683346208185244340810888845960298155725880571958492323529238962189462370323578135288402468976996070928671028580226993852139059584242733395769613174312981363437762040848465476062058336196586407595678679456837556570284580969119258491634183265297933304045155531540130655065754479858283969015988171808691731956069520713143231296877229316355598058922723320630945203044500168501149160608655700867799258774514200399476618018022136037422383334254640534972229985683406187351241353695809285681824943918738645607347483209609308729612018902369051148765424573747436572495016035975662157039678292343939414716070581328402163590854312381358762195575689755864001459457092631646072359792528868024811547531696234922993190829466654429281746351583847121123190256063210186169147996890800530534054315086657969308823887486144631813918458497365182460888444989507745070564302755526817815821907515672525316702155621194881377557588057532378756204721400797520632833108292391574982123508302418849364605356395134564198815594560205484751393272672093398484418363607625552419597202823287084600948434097681553101947422021341753475184648565393774025075029877542766477368479755112883505738520802213090733622344612742191777481905514038561222775930610393558739326216605825996854242590234228486199712694691548676993369112939646981302154665728743941614319276904221790112957905757672501744223616594427319497564263057582849204936079287054148528429689099003935718647381573177399010689075646808563101344256245756377962408586210205726490768098098051174172827447768294275480280254380176240492958823996978122038425374459857315866766058467600922904819255577212609540116965057997673395416905540023159124873900427641899762681103007542845434178394290483245496732256953390104906711411138830647564525532685913403787919139858837451381923364575487760637498093240192160198274601582236544169510645726189051470829145177289056916433342856238836975994533296099473409958106494276632483409180161347366759454778958498864435353950325358464718940038416494937763671844912892682840007852782576996864145555631479996751070263457460819724609573856546709338501156820997959494457567235572238623048337452663336352259231813983975399723423279826512582359781087553344075802774671777719212171555270967672280277313083029988269797890830667309643600747611379586031941355881888997949505472627069782598029691815915054838584372432230386315641958343189689446595406839582392655594914804482133910729595722411069898168658557305119831431105140299153255398595964156108295681173799350282302906669167934813152841540495147538153011646413026032034974675385221827734670263535279716845480530157707871906738131461545535792926334354372939732471198235510952631433727592212139361016980807075102437447599915173473317130613828790956657465155991148760777246428576202331969669001908110403828962066717734742809807991516280919335054517461761754300312504472848013595268392422865603061958169963080430953585438386362185318303650708030100040163933422227465461253058825773693964953507464087581762016768762991474381625736688255499497510426403351343779527583177226833757707035968297747693406169130934314376545496044919912890887471599314760488422998638388870748593239204016785862963080081208956152554418152213137701337444050371234783632616720264438896483819868084523557921385179505719248474028867202560389510173069038810109383558127575404113160614936269491507205295788418202936487682594102758611846934044272548436397814773377757621120236805020751968877844774450492238873222335262607812931190951390381944935366170448774938608632811725096675010564454736748853198104387830907240814988282582369520450371522949160730911405179544880502644464619759603605854124284072573008113777247862610086506895733535383758921855663093239798099987820450366735409422984141293798003257855255255523807812188375991588592143023222417725808860660611567752680561011346843427945389156112866479722320363256121112576973682562666647967322164253338371275454145033828681834470417595803182896202945030915851598094970990228202829122990542012120593585267080676584843820191290413248884107391777009603026238275294620661807166747814808370311602731019225879019354480409476844324866908609658393326292015426487232469554077687074865807267482790684751021406376174950860604914000110455029728019193510468590957403351811725534821621775361030794791073523869004143407872748744092216434045604319793883362934930333890375788537134246989163333537009606782232029237539624731176588362385941131932012398407295031575285155595714048882736172251273502245804409479611122982020599470244484578016149225218273848711254844075150625348092372371177356330469288696377437421872134265246851252274810509740019801222427279466553590728783080322575563583975015490931524687596719099544108019876237102332691695630267132408297133803198657883835228319860316778045226113154103431645404741831373024295448376890936920499989707105211734065756883927558706298666649825039328068667826349268480671551787250675986477048157641596984688187672015457295243352159227410070075218607941931987698886301122549566212646733646769252801151934733015450450732395776997908711088921762018891055977716155419736004640901451773086513466816104409923400536718032491529019803730983327169945671800221646496642585190454791917067114809960559353764745897536149077912323790545070710154649334228463329894121800852818242073761210835520392713253206294851902283503524318533128309317666709961406016092133569750546298475934857096899157668478237021350477736620055149328248246104469059238421883752704201494213349033220495096736012557905072298843523015928194183100827017350979118127925902474226432893207694023455935361640937674382867203827934211849113093406127255433904437240522960199913064443682643750237225857297549379108624106018553757578270078662395284366770564321114252488641308070923745327357652827103109624741188396667737793978399723998451896919788112941538010127586003529361301854453906944677269727819177421029448421861676185185723310414138274956228977448481015583522062020317547337286819013734615118443387311350147832406538390346632585216450352272656263820350201228063123319921327380516031660488238817349830249676784859540541994591679191516690007386670393089593386618854383209912427349680331939942104241180470602891025615604589005321466876444196629902545730478992100223937122675194536149222327928248243108296613713750393116456503613570206071213804224057086563771855401187545074476252693173274697206908659573604919514645673877274037914764284512918034875331249904461013708705361832837336343693525994587335334030006413995708804889936286960182892196300944362586991368529836377238172126821961314373195243607710285510558306265917837549304626277259702543684706187866000836634915349427063000850062678123333153989857703274367017415238894149098931721733923298226798383818042271822664531036346102903241165454809378339763891036024422889226155800471614572649341611408097083644741098294594206281082195114946305290609229649954755084753020545469128766851185029540512801763922146905688022090487558065229470471000845171747685544056409596601505733976867079650398941687586653121835981211137080527436884087551436456499527947656300923146900467807427124279830902054860149310051005823268408172473535570799795144851606273433945868337992033459431225909795120338717525387014218237005612846591627248134288076728600122680609182599032878679406421068371525903910087794778470466216329549772318389565232252684154887930351668541820703385576793742750451430401111226329669059036377100904182982418578442492417473175121784470763519612747299034542920870968362094562693324600545394987393131330290664241062572443135676434324273868430416055962330324059070790870252267701630753627482703759582769612138032920887424908924708906420756684305974170029413102847735798936860395803286541802075707130343188762060359823069061016607106728089278267659494436435524820152783841456796447810028530406239642874430722630886707796836621822993237845718948126228362951936807343888462578759864070068008674904887240149874353275662986092912755658097849957844995423567273550643060908191428609461004351973177944265979572312588164498456583815029573259392639480532765930295320479878755992067869770703183759628272255112132989432740495556354202070759807207254407648176124132184065981819493923064083622864256077764755864965044033283747366736496896033731185385997269692191038305185438397095895461486604914646316616641162427934163905263296519537030545178406370047081320831858538965172053550465834447860471500298532178312184566411927194454653903223508802206177706426636259314365292803625854164654850701644593005392732284284967985910299593317854714003119866905872162022055253365638788401186569726618049244506495661195575777217382444336211061862372463344981493752537623345231363743970195395271914285799665889646763497388807681496413835398323641724887404362190782006157344320244483555082894980016573144095373231766418538441004811494797735839025744181591657292655604507644592959590824636720745373575257710666378059746287385059582484863724898270514171908167249139780385834494653685799234695592728124358656503448216586342288580286736658345587834268242637781755911577700397582752820094788842650551594149536483020611718077354971966304978677289772404068747741109985863570082192276473693551696022722356516376754069832271049255279880730994970079467784966655185237533971112554315622488271910011102557871924347090869464081824142876478930011275705010337498699031004453880125659677218863101367019096777329638371343838543394749234878595625654543408588320437356587315573791832809764357327421963970792084547311801314196771721284812953957212094828459093078167550972389301056511072796162229828317804139162456909733055090968804116875176578958110040215512565347708253933752685525206930519993587931045057760123013411142760603359593701266829974137160244203900028532773686290378998235959836693806271017571116082859036310458290567598587965323636216735016075675521516064304835124376502571527993049355382753521193624617755243386792732858978951537527946828305460421681943055853280338480393316855318238021377595114128240932475986249623164615115962717876830965595389940069572869551376473118140246451534084707589596680293790264291132083384673299978650789991658709512451695048814758629821239595304513929565892465254043255354830952744341557108841859443647865338049222810103144415119509018990767935584892538429804747403487456070650929421680358620900965379158096167939377661291432115331974862074940492403534516538672599989586321305398965554679034808500256713764560392912780949862574698662194039298268270683873584476300741280090953321935964421098775656588389502373074118372584670648134108985425677328639787383881160591958695609779883781933191859847309397089069791306006371747716007634553397033857278407140323223901965675701838538987820338107413818340859448179548061558538312215901262050822400655398994069620879094499131433078146671466998666408839730371031096743364513080720858884633416999243262090363024377924534513595485754771363521453088539212988010117782942605072636348928688369098250939976290253689638724314134794849083117029680579076869394930131885477255548946321191767252306917489962018930437035914880914654967297255929231509458627867512259505854107045852246444192141030801079559602105632525401945375464257889510629344869090790652251986577345189948828178576746955956925110480679220378394742506056066667541338461685624393800121499313431578664062784290716223408509565521615224250553236650479989839794504707669496385250390441728996839826548188300599722697437752177676584716875124512219282775382718145307664343572236923586875350427687991786413915800179819799857111053931192739836818273958051009282244595126147064462509113646238033592538218005921464746344228510057361952200337981486209573758130380849917179682850623667734141617893563534487909854798693011387844036380011886014674001677957260259068204828377335419443843170078911804394063435100180118522025491455985892180554700781876532343304675954468155585062227004698747419840520086130740370416753052975084023333889122213989740447469196829531735239642338817866544857842588869758551236056840302547291610730504730814585801791763480278233090901694136519864703269641844796708054536981601038282503448166534659345808349400936002162593011344314324063010297281046274729210801780400977168857887488220346159986906976508730104193943656310333818369496383951787745026427548921388006274053291993619260330271507500743526204064432908411539568234168558953118764096896203496647709377527984269788520268616830966934393003604637381674252665014696576417402372472259626182941435517663016492172436353144529163884525247599273448129539372807882434270494407829115380690613143157797377134717522922511823020428811391426287650284691330624923076492789003359691582375621823052908157976108558352188324045550809901439075861369228969938761017829057680589440269263134591386665242526053060136649676243069805437717790757514655003348160829711269491713398940701224353061210741922903874312883037982735601228694918407116091454714740011298143877607387109664248356866427349309292420645114179788973034537971915334147102693680182838411831618944295355607394536898765173176751526934435172818970753479083541278068710006583203683527672710863730746307945586800349430018861530035332709933470466300781874448255156611068550227364011521492571109153161162815662660658031478082481897743298776480856649547356732832789803843896890107962105687001800152998142313764019297490390148636814562808711085157056185357048615501910343109417993105244266211449888835465723505787848876803358235195626462508743556444048399253882779691443513281869255697695932306100839038038636491006534357442237659364000916795290161792357309986691228460617239000413162947477507494480035779416453546911908163971895420167248437746953254624778477962614268150739524594582951957214674225291920745610885549323695704047089519591539828057918849483188556517489216836935431643202267173405103041816705348335413419679447170885041562377497709358751315558766902980998648820811445509443946076662274279597931017598975749508557987273264571738671252635592870788800793868935828851108422749779085210929124008426829395132671207858051638609263166887313573239281135890953209828660253824421176360743686304760022489500997413547675331149370619824843816266577709401506050536640718075073906349462513244049371546131641962686576112148102566116399057055116491170660422109019446005826025849135873078455519080761454432512108799243755963766562969908713845843458563465361671202069401833297377005473975720275023921612426920248633373199775248801720408969263817422485999365381208643403420628945098614020272007313777551065923361042507688694603468773111714070797066944894062924682612100741187170614636987928232695768701510616974387020041540695140728949356277957064168789460624976843338451804823522382776871910454550951446017481273229212010251945812879492981637359369873181679730096118885982155216567725759829290207514810575191635799933879073296899937218937032055989026959095197491429793929435118384730392445382910024110038070978798680171610341212959226139230851463515825660477163116969104483387324505956319287826805292605804610717019662714679487251393547180001555491848459756887948361404288247307468430328649187503010800225886476029136471653261092755377104336490637805479145232690784391765646619851444726364261440346704753023663242047317325131506832823219146690538501019748433294094208660219466303030783012817197729331372674176613912763494461984556456904876262550024877465275390365461138760269504810113516848691443058699101331762858152932262854859141953289879879198884703721264885392376718061409487599135338463929441132955415767652881174011734522836092563080046825688214073316955766065341348084951089869282927837692781621900551202167311073005407403757846967127037953742177044693441867003967921520091052616521104897601012806505971424302335746023370946046467806133194930528425314341918448262141896588838021559349181668242231418035409643651977975058202868958417151722911682471701352497425178019638519221515367916909769051630230241482960450208945236549558291399746927330647503572268944517658673513840621409349994764557749711461153190770189085685982825392145600570927796654159542515511720407480137460889000905105992772689327051037898671246299339183415411487233199874342469626957504193569042391117732009747137505831296675762349961631606181824450456076981913653511913092261821333228903647282126415337614315489454776063363968307654924856544964936055910759957062054253836811689331488719569726860340098624661663068213076609996081939598584190474013253337592718846905432924310908566710622884573687022052243033620530127166207338677824021445063795734693730004660029932416303976771429881711644147025596674268155072022519994201170570572394693599349924352282222515666027552951095260744268659542689145870724301993986251510365692553004234067890919650344898091696990432612849361241044250593945640113650517214001424032669161039898232068415503541615107611632295428009194954276239662152027569350432700396519853346097800511318615573150242876393172874453772470777074692661116352672684333484982003383558216155670705083827927097135434984227394393933617372325143045227328190757089827019887330409411098309283678816446605062609601883374335015989702403149437071648403865547190863178503999670753457551133113309668749764571715068287699930750645484810089130057254193786545015428269794482898066220078525829077630616242152530819531413293994800160154126673329952661848712354360829626428456748131839893741658310933846785053610406509307711959321178829063389110610350450870155476210354158506343954295246186135072188215718153451435014512833990605273374246615896267525085104677371150783941237135135315655381113340157258005153910377109917730076447606164399535862644642848043579443502857870306564371965362952256687932551876842617845892142075993676040637622983180179337072187749567297353368806188227817388892250715120588734290024959600130386516981796953598258242479439375574282508278376556104070922645813095407210535369799275189800270969634377361512600522704011527074139513154976701622240509037185539018284874660385293177180158087455651825415857107557835193111332417206740287416097717753158736601899234012903269593904111116915550723755952855526472938135567024658994094266822426702717705679345439766385936798459189899324533238889411748850053896627418104628963496830316123366106326553771455511490765654539191851203498553061919169184969744771083789501975147263225924161306689145019952785167162887469762569440435145140074233007448597673674442431683366463006556657127324185840504778652369878332084483432935360199333821814657774111855885710345055089706358211462484268494503210803364455369960343813019310378942662554458954666063151579872393245971453770893469833637759613042165310642646374206403225068003689921182596578845205973136879708749646112722878393185443577415007876281320592408388483038636955874495387829981209197326013127881312214628686517290600880856196098087153886542272510027158737520277490841319447334178471834107174784946699584901452412482692199868599168562880934582348480825845906908498486201986917565318752293730363016543249527484531852374090374948063973265986858122763456221624685702405135214182397228047833029532621278018862878396251371142305586015559002665103170099012015767004121331009462534205738569114939628728684981790390601479982982858925896400022629260156618522955778165658249671825747320876179398798508037462927198914055224192596857986931566214438760086684355376788778377853177845806459707094696597713502789951557656433004503937491694004121114351756512799623861513818778332273583064566041138464631541979433452737539850309926358654969837297474012620470656225169602246832276911123604788137148740477227458117620107155407370834256676365859198997696278667390904623383346517986102406469913210162005101752033605087790264187828278252100015036135589437256471455289593539103981688504717178354839524308075727531870540573390685006745100754217803488083396927171303245183869214155218298762986355480564244898983924677765163977023094449240566367988491707415405247312956499323218464659484201667814962434277985017241057491726311196824006401775045424368204461375198236867818296135978376471271543198995927490206637776245352115028737902777078905043590810053339298041571100573910846735051584269509585049127521431808782020882529836606540534862351715415144467741611201299672048321251628601771017049729208501133100913965366196755154871317849930218943669679914576906955346573853381220055228657875531873774342682875095979260465815020771984049429598643965110447335512340983471969035286028332972465779136838407245898144926850392252610097719038138735472070683658824047855582473540445736655831967081131109903234398486396218664126181626018021730050078952831210310318612395120465156731611864044166195694801473911657279761135886590947173626761172425773710679633784494639689693564743218227578290517756116482078023554441698600889071411186289850244153264448450695797588184707347815305392837889265093095182439312056513843637726896365049120596950886334368876718424852457882868748867706604513204172075488426576560010581997300079009094735051780102352273056340842668085416503521252121295632294085227843186991643028825576611876426474269716116123297302249538612294530539959170469703493854156453518486409858668557901258386472133959773946223275983856914456870711095231870450836047216269927068622149616944445906297120440104967816391658829638141689852855850044686745169058792592159350839495511024810275893843039317449285199264757028932647012020497473086021585513011671496528708603508860011469062629575233723780128668242215643904067477694295627435499204671389467076335987849673295423632924677788955240470139212597781420058770810134122568881825131388182080402910437806584326008910245063501030196505548825790030313352190909456397633597948211294983798265939609045835653302136801873947415656761307900698062810726755892468524043057249163586574247336996303704952371881167285908407873058228490523411732229506902087419795554816300803580219440410488584676531880258841301974222736596973944267764080971371416536455844498890322679491075886401951685353622339046238903957591927352283507229016639022305426044842841995553594968755199379446521571803019227645034953557022632501885618924782431291803925854580554476733697915193418736759615677883251638312549065857759425805763965615936442681323131967298078803200387932649459316018159689228627911149556990416361190722843342617201699283397859478030485899975033707017431940323854400363718620685208150600800731742567162026312714499737014263800182154478572458813022620387566100307596812652478646774064850370824419609132520480816289377255263454277860282571091523961069095939907092827951945682692332971948740060867151823050077168527976873345058877343254150959734228807188041520471011723177733411630507173277238761763010551680862030888906927977650913886497570045547472597059346680543372578170233223492693581512056003185030204297545383654760398739763618437815735149855002310832199148761561567158803557385978580650825418114177564004035204190779179847762457519943500771670061913697822083966775893740488864008403622940642449450111696217919185833859473217612401994061319997583271635702822045062390665011777555291221772024917458569483849616813585263705656879507348635383869300321531652469291137308156983360698519577544454304718599841306299077496410062619266747520309959931627237863216272652865775244288848211523020272171532922870382353075937239648373298689635260070175358413810509585960939379199362609504319076828743654487287217415812826867791937405062859416157882489724560511859876049454936992553607381038285794687743095051026887301474770463885412800128366560820188514267985682480785308393965948808566666225267516270274059225527807194018079948823350284520998667442155167563153215650479178979845354207354740619635414415888761191595074644297380181761208315755919610866085517359067539865067723875229008916917449892939223691317759065057720283359201701866926712763287800534870318331273838121335117761359677510729480504723051483577245034909414363276955267663307097467277700135813614997851607838750119789187549290667497765239813900501031648160399272215170261320503063543377646906282335273520196965841607938291552828839758768553806489293516147509356551918723478194303817978585769803519522327178345301610967332027942587427210274830657591672510205760846661053426764199858061642714124141480683066537183469417702676378069973803209232113058367028474357549995988288617511794420680215749286466363942027704309747405912026201607566500549292289381421358547074921953940595743284882980090710731483443051578004102774508526817495166576745511652736065660102938062259299224525004905072632268127784397925864665495106512584757146834266154745747654755560303747259836993087250293613010478543996761745221232605324475033984606988871371667909329309497219468772073486845413606433624879869863803517526084415899439484678133988187952474596976017907841550676865242863173446172884980662439765346109865364689768614296264244365937730613235293637662431870039865542584347666267093453960927856077777905171688354069534155981454990543259642640443893619211327723383445751624247884897037758151662564940536467382987275339396138967423283360821804883386283963482362898212874347963909815975322574313478449892242235141281078016875219848878793290816549564846361726735822029902917827206834653486420118656458473531386916086460790508483817911420833215088721693241366103969424730617035772998567214717853188971576796609152667256578656928371591369449932969490022942400224810146589235729783741614330111271343907132475601598631426041205338883384003218339107963473559482561861597500431349756461128271874755748152726699527239282888028319833269322985684727214752985386435762778162317748853750678594091553105520775481250777082194311240735334137442398272191836000628156462691828939908609234665368671678718772822126930398126731453616559999564212588186548261689634342272594037062285681990512830061888113521987007393413907823619470502184857937755237960345270591571502835334774911985082795985133810148960448809814784514609177807880159687962076076470279091284834703992234403339473486840071525986571557426930556818938709639699207815635326740688697300975432432338709761559905991036019893837165976577877414758642847500405309019594273939916788664596352850619998294158753624910929002819854062226554684646163107636210327589589897665836606515966917909398401887094781364502134998038710637274987547484419450093756543848860943416120872492672401864369743975602909084816697909426382381978969160007178432414077197697648006208579247984243585960853044370682293042009076645204309882228963814644019747969245995957810270790483903375267640196639342351952125128627423616490130525956879264502506286336039149655709118164645872017216650437692643351687259835765914796492010817738321647083717199821294928481254341122617911176096376534950388219783609989570691970434328410513796128179516362171653959872810674034030810208985643113990982852646089806411113189842337176376276801337508733946281138513615727123444882622703205877276329197537939161542842820905454157858388935500450848151738025522878222595793902942350065117797972468326151326469843858155977012188586176853741803226197578044961352429913274648697419117688916596722281253429715339179147036672291933062973925557657295519511700118828452046560745674933393421678692867332328739947978206111702360075524815726168113146633022220783663444056098003809966365469609394772195407781718741275219262373667674936227803245697149751961850990013219976856675819403623917869431364515733877076785895570742763003085256279870129712134382505316438831993746297122599817824325767126856203172774068954438656057115724713625360943026123618925202029933784972628188052786581227627335260969790812615806673294964746032413032727505718543136900966958182533655782430859964237425238349496788608862122278864119677897415813303027507705202949924060054826678928284651767230825730944348030314280869764404126998377170995897306901941625823382607844504174676592650562588259168586440555502647242173638797668428040949112057761954548509666740913765534926522224021604922140412183835455233242633611177558690102174296225079572688828925037831840991795363795665760758743362607104119464514988826301117087614437315149705129464662857620461897893831948173173887183706577408037259188604669100923501228265641998122235626331338626382674197964738407591518676371392831445019667623153914756991838576210141309160646596342502677761195969778838743512877933908511811149663867356620779722301163705075961554801266450098675370450264215600342640496039352609422816804539740914987571291514131050238737825067190965717009131493920540072179047977567031276174707577044505976777987905362957461886796777421649918619226621423293858928065022958279384376110860875700043471613999698983136719823456868534006514491659723185618556892581237464838509689766644076789494782810923758338624872770472334393926280068647621062649886673815658599129274063665830083827996310260611975419429430796139968541573879079058214134732742421950034437647656042389186690064439540575873966860254047334919381757042279992794812454167352597567803886642205708284352086956802996225668300281886654207243849196065337441843063200090827407990428031463489921505279133959225121236765543221943746691041263402022937949322890298614286318006137655220331628015231923503925092282002871905295964397688027904397690490756432101471670581672384201096759523023350254671925250218841558009764263193331245553353706089276480970688983536551731801163278192479539176565623979500704565735495680420376172002097124441047655245663468302385518157312675184654445330292903264789212994691178325243465114712141143358756374141296015046094408011349347573240377050828632179783315098549391145631659118909756803092986569199147523265898193828843727285325460639887811477056915067033276987314551962638495569966592021432193373635271301030998922784432079374878363248419191783277333110166263550988191617290861556730146299601957870063909073733898428510314009765495132244356112398271664704903416434470811900403390614262447037252306048340939968548518680276728613764839952581444993975614666878765824762795420203291079649064670228464708454117075653606729037509092373093580121576401770340790942240998115652450734088045150074686010453625765885517044072526544894441700243081930234137643383943963799686704843626954376277156599902278448482430473914280225995943543614373488581604375195149753074531359850977521799378125598905015159348359454061211743750251386184593889032759798728236179092327152232931035592230265012715832626189479276657917524536477479920569035525061548853124831834664322531833533922419290514863640971775525629188108780346581097734848931419706110015084232031607402132057725510230104499817923796808752215040077534215942246272235091304104018586268116712554903308907065701071835848318263881151344242522363358074855858933214379087984629736404531263985075922116156078638587484087601400538303747754930424522245921666531560471942972721907125162720351666048949052310485611986837456601076164357855329864690935737720019988265321510055763761405708007867956599740381726703217902404127058140815089894623167365778818904988248054775731168962518747933972525352597696104298692453854434080262654343721163641755158205149218497289465021678582955286521366262049934370210087356043246023791249495323914550260124128870399043899586194621430658373955047271719742742243952342815463255375813823560854220425752527481492992001361111449131488685262744778462019184159314477745734451812015654954582593441702659753479638799496587247178659074805038206805424565296306925270435672769870075398784394093588746271380594411230343798655163430065246304835039876165711810695386979669336489436737124595784063490742588038640974486299664422694222106790403686065990990781757144035245385499876362823909494675980949220820161212338198287024055052678047733796646366312774660454298661457603011824695328097311962254634233157747680684056307413986114025646556135408275956229486585944036229061178782815319082009290007344837929342895456396468483881938494631770783563731761632023734333965926284642595040547483268282375665224416767591772564953130099387889871170780380915955335715890846886399645034419920401667736951507602073516970881646854842965957049936728652162079390651235397458754531199384492199782118749705749814671960687156197009381186766961775690329142988549774401416374336615418796151280536761715774386275577934028298679379561092598541158815081996210926078203505479862313578772654806108523908903878856747518928269105992333673079995612941652674452903635923619249274898681781555052628285615224351092782124561415652155772175261623475281542291164537588821181531447535045588454860393946248857484003160621130713863426016517567843337448202213275550608932988632749565302388648743849662300625880575630185333044191672348251565221823427911812011087029109513126827743280950752148967996075186349886825307648262051512578724913463526254073270394315252239223091007875867666759015704509293649621756116097802735940880353619110207960283019922615637800680003111541069170569998918340860365564943582289142926079150360954359043601596312640730255973327423258058866826321932961545770881032925568014332265939340467245804645785538366381327445596356316689202298782996148930242826237315538268367807577191419657363610365569884256630983827337421057720919580037477148882076345957103158702676811227054585243596582643218677136594842010200885736263573737713829889966685842523788961502989117853771383963886907231271309550248835949975509963109144568077774084397624412030536559722873770459843096505398758647690017297466579996233479642666643300146513018959766220418620408772341186122520720001367945230709019902803259716614225220193449714359892771053344041166916391041844390918729561942528370751554136913476511726740999749504400739562580099846282569224008908946411175528757287953822703480788097958902974178442673912261942351694136873890062535838428512916741430545993856225985925656203161460581987541673137351980591756634529645383168970018526278320665426105771173832709567549497499061718304741606555327825839476053825854736978384336300443620592559704160076093274947953690590719828710822865849320381355174376474225040928905980647449068024216369368349735245918152788295602835958910825780542413237327956656175361341379765370691183817406337245191906952358763803997915209096198964572581810615208246413709884174045322560120316992139539038382682031764677779286639387833198720277974320032513471234543313169805408256359790152533032572259138329989509573001887539098414699373413867013843500416939304638255637761438783295474298484919574958375244538774020999950375791832577887960111957384112442369184245587817616544403995777289790251479003785522680194528245966368885922837215923686127333821110413608761871640765943767101213698112205987388274426397953280292748939090916613887822912288021193418684804636300017801737085247952604619204043589741570661554803840749257470254489861514522772992615285911766727584648533013867981233454779656908454199056829242697421115772916032219079699402576130839112403728551066350968394874174049930326739148928222856496825725823052908085676352525675024329168496762099427993230652574057257467707967445446133432334055531889872054139028249428939021450788868468574154081500375974241760255616027673619733393555766372801232696951086729312006530421303338658841215349261315359190875778162748850197351387478937224980587309123846733156593509603682883293570421742719056918136916635915316588201940181637550055517084554493755952869919361429850049064163520245037514367242678265208700642465850899174013390061276471651027459251071548504364026098114541402693183942461989749986526116139491330607696579866553858826467192878969934626061784067375403472476636298745496324513458234397833206688513168468087260121352403369550026007238331986013290676116023908602000576197600635073678389664935435684770010056622686365776474530770255752832913680225031649811903346798686610233161524420513115277484051450857762427935195564578680171742493580965998108360788189185323590726007637926384024953010268794047420450481286832072364847274075122327540286611593993533085329234785784531516848758575549513464267792708896841072385808065968180884296072886817039600572137546077688815669812188496418418279043653424974868729559012069015247595705688615848832770589150487480898734747920199693276290441441501528985439438698619530929277054624614569616229729851003961767053698605668169356169682847759010950455927775622840389928134355722235392989094199653351714823265830702601319856269620592159391584393838926039223495703721667297257750008353696637916167816047579517674267272607588670667498450222900882021992220859040459847143365256428452919150482269693243963782257088660874251734894608390140810455465706362993430221825828797002477336846624052218362057139804404977637536889917005517675913345908472320842000506954325389251808904321990040918160004046268854826916756329777676427067151944891803944533578598985713589660423903045326596575741804020103131533601182593804646876120681783256262643353038972044322794240356076825335209274655543929136504772930489403219911558267506456741346783285429322663539524524095795002617890767000277734297786036133378854986099429498761541287382111034291212177083444655736118054572404498277869053343565324594041789060717942395247198646207056319519513324047837400047546487726916744616497364092973145844964349929706795109746202370910953176490822384453571762527275186359565199703392680243562870655406126127795301976237722451999463171110694679125360774372095075768988455416040850166597345750249230576029497742011918788739966244421890494032212652960375239178546407047357845651890462424524032495618418933388039338085401305951761439511020723453736367527865139902332871591291205390220877176327222795991208542640256504823512991822299478600864837699222132003340854427934365851721111592447228548054050293553063479835537542764874685016247659879604862723697393576097202070734420794129412172169269349205271877333053687915177210968121786355053169902098484826687569335668391262115230468902841342988282204495516522764717411874500967475380586041457426758344824317453767937239923542904850563547593769352190464175343003789471867516842746745210604450735314434445873712758652766099033265010840643812661045102473088574630394545040877271080438446989975090666994507223620035720172465957708916578322712739445864477354488485529432307097650608562559578126437802886775093119624637509927542494136124836429768892885401216496573976413397729563746535946795127756490793413857943521267981802707201718937180351819434022637029187733243951465459254563736579137011665551930187922211728372802663438208247527561539967576018796753501930701425209598219255437713659186540267832517168837751937697538920229578938336149184777865900933181287778824083134488109709119781236509445117336435596893906163515760283934003935226621039914355825015056866199229340547121565431983545972026995124473924104013912275335538827819958793528537768787505340858615206509315490433385969989652356067407358454903709007660745660606326462951760814339336489586612573241924296217386887840525164956946620257002804067183672953719577698018418437288571226275268921093479123380968719532439728980902894591568673289903517501907609465792225135520841787810512088759953131233509097405085542964725706465708006111392444113634138421513052705422597882222161197822781785118616392187804640132956071141918637235019286375971788844212813531679156905977630096308283823378926771200340613046720146829460007662803478759963751426741844662323190647191864206642509368760523201193261939465315391887081333473690197180086527672602639680812208023152452982797903412947736453228331271842556399570628452763255014570908335427052029228609922931948448616536352901645868308689345695359477384788228080319702774143821563497342185918351676034937503965417074991534171393575751635724050542820278917752062238610012463962830254347616999266388770040549415642127648592075036710162570775891119909124184834371326432573134235422318285930151662315115416708392463390048995131173981395753214048621538061552496782570631266854754728807075488403742387070829155150444152075839325558233782947896044182167886032816477193810492394319019611512076419054651508230788384355423315490377887424671798192931164875296541099277645622711337825111958036690490590800010494978426499864860841645210563489621683753796469457654138832121490032124391108705080439768648415011616831781939327520690234597555873436927518823522847275814052767511336752132092665092084779689302716010145186943969943022299511270528510891279020003595350858014601928342539142376806562710153959173314506947660922390380860700940140683267668603708177859035338321233306649501184663165031396996274793372457268857560926651044766281484055109770804567868602089376191640590426176425473489840109500913407575497293248407921157487658481988772933376127944520634611407593101029744479605659075932561298901183919314566011074829425828026950571676730417095979922601661265878212827430156342603496300631119460225339467056916881751434963712981871053213306376342324954890900835307577888122020711230009624113429857788044277460607414865507891973665479328140230805047909597291556655113824467010631740631660372938836497485145256717700051923061445865060340201422326744477329029128613890743781292949805470082776841999143807785672725365917169249646788146488206820032017853219171210941095043258779108441539067984738982752415100782875614802012751124522018938514068970132207633781610635034198579417797974090790257729662122814918227802041481876909845589704311945895734035787942713343967097364568143574765925330185159496521231929271508364046986515945773300166969304005650558009742483038393153341633650317636138550248904454508630433541756368115052563121107231262841550633715139901985613723717704832784397114432177882508113073676671322170623293255272048437070512659537420639819909776035480505587367527788761866635160010466767478098295029214620425129307770064927439291290096193265590795131071011879538216758368146877445777464348183843538874680529720973853376285173670428675664303205959924037800281440407539765339952237329701656718883728275530481142387655953565872466363188723021961390954558643715470075658099101545165269564350796232298705720296482257464442169079883106189445970885938677174701000988381238551117017145296010064516262106657207011311593902993129093421861635056630593949992426154432451471889523254322540784046923309280455549899039820747890651327368492111172962022211146337758662474319052487026050554226596655394568260439988192096692533157238880691578836195551836463171545314413257500464169715161039944683865798159152362262394639415260986335514877608729935125853233403876800407443414098131954554896624970830367668604676591079765596130117136727526344483568718106974063941506477910502244676412256106072954155190379719667311762069591583946499346084989388262409316754078559265575414585393791178199626609540980181882183968806642415009227232533076955713578810910446421882146374959195847638965219205337886686219927159040063812567573426666994896813074034629595654689400393943010015293753176705138409422806915035778055536208515854301183962439470240799523552751934543358023425384685690472084655723603515840100873770788865966436680210407127517461888891260332349508272952242637704028361298719107764742686471077449907628013258792366882639350671307730675826866516186260543509846403979350828948117679931764963598391631435450280876678767981788291149517225077730023616770888700049744591813009555238224357689433783943815915262192629095099168196906004567159521124319611652998807394743564527438637928109837527253279058527146107362251256045156258116610891805376000278058057977982718580626694078828523446765801669623477314198565235442628387994483663890026403280338264318467166006925278757584503976539607873702203674069632547431148963212131309629755883670993375643881886038822462173207068154642143527710341441236896422322404140810165394649090239487995511874537721678671041527475283912737102522793779351955842957663832906987757940700661495831728764001883450438762362177154992906404428808021392249576533737385250828024061433037857371090171045018858354870106316444688774912563771177355459377648329274388576519643064887220581586022174525154284760690719057467065114464677652951870211541648051856537149514937127603287419616639893038833141885774972122714456687742669635770388286461168546542029641683162756439498393549612160660215153575173527490769631567012806947790787769243459899867147834486519384349196457665488778913651014066073254386005864874815547951748462637455485106374519532907159473258547361973351452428878782824153568375044504719359862768563361688715040523660610283509222386303253028388354338078303586661606115783795728874788967333753226944548552549790267980240836456562707977224209792134347284794528485769287252423845554768081657424004183226919693779828804412881373098055433036886176945848485697157596665358574764455134932528444168723418153793763042988198062836474434291794131567941218662440140501935547080069570309796915635994047115596003473021097987694839328183589949850010655400094715068545915283994711798676409184058143538549890939004361082074885289238943574233553957894170728659581669614199183891473760922776938162837838172744520172195637782702496208980428679794524564544044858137898573127172934663147754532009737803506722838454914366882798308951118976003982798423332569091225902098371621963501560778501108427710112042585799339588689779417549105690729389661434299600783496702592732076992311982870397612852528296322383911169093038533816978652771240375940609759137166420934551220488344871001337977346680361728719233186730715959492569408518957364706061347823608437529933796476061054194805962014955393094395267792884369821711444923920686273100034386357875000640003667888679056591257809843258412990381430230401512480539265142309126274889109234071456242103719669680377142406800578846080906131140684497383553061538682596827796873815571751265709760513664757332189428260411530318564244031374092400741550718779074937922953127380366844483399644811007213611194557824777144639714596536703242143428911740368291671103892470570784746089403911944534968834014567495389185931809745011907686999367426739809207687770793243012937933982665904524557676472186000234984909142173371295234438964547307082539521280318620175025941328366204912733942227674012746287318266500941308060409288733102498091482140678890626720005605318318965190128603981479829596316180178291930309043046022229819604519438108725486920199017236171375938044587781812084559178846559796912934752752648951275718500164341957348533743019649661545609187627594261640697326954450237551883416173027372263729658022021438958748473956399330672575587834228105164144720487904979017437605689093166280477409461806135980580724848082300485304729448213295376521692382909255821259969189365018419486285845674475519958429075627357128315922777857223529494293339759658124935001818703288734721499696626842368139695453301904793048419414121992126616198251437387096383527764973077621448779222288441259160931716017429303579332925943069336901821935766629682080582636008055428286738164588640156546807642154600981233762412058235273408828018400462548063400676088275736072694726773209201711818947537028190767602430288414405226735910991860192579202215389188281322568906945359563831971091528222120611563136150868515897455778926419758178797787111066954524955391230193422962833672505834374764553988666494179866965431741543494821151703823031409833058755755365703610717065237098359380309626160502881975746194251077339974682811975120535855936906715586737331498625068517023411902682435713848765889306551103677109986599959698060215540886330583885843394795907758733586121974341565381719893252466673500020009875764647091804921286085368243384527289214396161028643252852129043278959508762839326573705430986368903683743702570318106412248520307491043312037261286336685171264005612273907932447875926793340298413608152599630891932588045713664863579369864321710681739293062827111971274384105879718311059205556772648651206740601920368601807466274032918890425857830221818904679236879972609285030745144309322103163254411401092458167916108815971022359745581403774433461438555833888118215409444598606963116467235038072586974962379381741603920145381794070554989906101953597203168367994428422060390652292090341423005865375478147266270239262565260108237997328397358954620040771582015850804665931163042431365937438394650707627243396282020934791555280723122108520889257433965782507537828835980401793756736237823576585335420901597609993996333205788342936482918665300295030794491069422942798501674361559386308511068260433785192045414916040392435812003209498535325566298120093163313784844400414360489877503553895183673710169792522175706620122751507063325296088693435607043627695687125146237730408250221921284044080160682467592920012891205381027882620149069891710009687847426348542541645358967821441873182391411246828129780669411984006225998872934427649741205633960276953349292868034765232640710313483935567930806793623047427166042185032578594134088772739810942061453765078819567427724281120084320356567044501297867364792665987237770358334804428342423743900852570810567965129548836526411891526514461967539781365958271921476610688754949074316612415905143493259119347010573540340574646198217321899115553854380864867755158911665890164986430911300830595867898262701791437087617658935216446895387638463085565186972481362202795114275396361321937270938884817891542417916270348034782263206430961112269273232889081318531884392552154875988432791332885165809229552495307976699347166151326239187703932502321727435416341965437513622179777611261389345515881394249155083005883400299871459640101082011587547361317052871376430039238166004398346841024244412163517594701046310995797822403371725626222276056609220410083530539377401467702166263546237919514811465526136276631683728646531536812201736293997057928063285051852336271174715813352496173479614192538373494293166684384358819892537566599479630828527163728443404694590438764800002670300887251541230413656610334440576802867516293676543804125103227202034147791379727464824910098614436935830807903653572346264044516656074513065540903805609247035719941445256672651097737822312704522399599036507417338530799659733629750570472024430145164146952820647717355763050726969526325749927396916652169195608294428910266716313953938063957884899863217852530860729165811220298020993426697730578636686976007597509832814926762380810943391091723672067807883040048188128965436655629733287737999574111644657952433597853858807479379666032793492199960103705607427459216745455165473678902294543870431320869995970003019113714887414980451315856191438881982208339322564611562498207967214293076683521724581396208460659017483232128807838979902759550025216998970764264334207716873964469800687836867461739363773207916493471202145088496606346159812416999359055718052522356577964988926766686701913696342035946962672816812837664553891574372738848989259511779258128528032592932363511724678635930983306801596609938462247768868743291347362549611980530163123240620790374135358561914438170448107544490303735122001228216880596347943940212994618417716104371370820853798054365081177091152605461779609964637848365679556120979101129060565580393250333785309897661830367243112403828252705448802686929139593525441829399990620023127655177172534589152624497247518761743834454863060334289411072578963756063606150084710061524533406063910305605858086905243646947037791736421883773591107810666962213913022227576871676678081887390500687254409921102070249946489380139037459587443523156338955524176934411866050430360827495377391609358908821443418477977032659093542208577089917402156486033842876929164572329056855964705302117586535290711153159240155119164027509198776813862261771867116206506529675621335316062518865280466534743262907924818412351910922602964008115982059893806809993033120991710454975569277356745178210707859729117093053551064943726114736502152212744641302635855785795655696992951886360101307911729387936640063552169418528062995251152321667199834669249900219432836676514012964149727151560084789518397018633477176267737304948665163484873524762052702212223108938805025411333734630890557062335405087656921866903113171810127953500428032556849315476513576827182162973270146044441570561121667366645691472140026502756388155158794958859828860726058387945821664592844139132318577102888992333626644431611636088147837689894874834784346095851408878880472374052370144250103372029963732239771503343090201808996673430581337684767462103001836419155812744784394879663455173997949957533070199445633556096983732200828612975009713729263843331694060498612004816072163211169919728130428821332336413964728370510287834274393818014379879356618752828154717639198020788655971815063328584215291127100991404905632423404304961256767454536681043619505804062864456281341852472429161176713537875430407449542550433314014911916910394319308603851243248830371063215891136586750379220050352262159857124805547511580875183537849354605697314779353071941785161743417008339645437797970237944431779829048114837425321717185076826511289120498341983319909433447344590075558700335044303298828594435488376191700910155053700673975180797393795993789658725851086688620876943733169430237359575390800154365092718131678536232889555371551786583700480653550507220821166920989174012213563707773574559486003055178230034608853114987678254592725055234097102962583367202892453562740318692876537843638699305225978884707452042582962053227719426379073339162391592821357863747277656033129632421895944944482827959191203173355840330494806432065009647885269915559766602012622794848520843902114920088734894725510148564599209339255254146572724124696837440369869721623666687741894114628735854457228187071928188436436399189250418233948027432904580066262222515784258979787792218072336670647516204426749243608099036060499454693572487433266675219235442686291651821173398901753043887980247407496745483426221082351541199354255941760526614776902056269505010030556468870198169079189215382636123699085467961896215603424579753061486224108055815573790913490021610963995808303416133870961016709927214293841474980959143302418103487054064441511651335462460507433046187759041738988389195465296030402891191129076128419035524999928172708825645636879616534524719767973156065673582223804227374540336590672899686240650223952552992683631144836007433802860755772686548463307224333831855593610229978042170966390518451536589842930332430036741848493312296581197558488543837164925776966641470441605395917948662230572576773448798581094515872624211241064748162052677982946146579344922781350119205238168751855027227117976181379279868066402121540858258661170231578762085010153704735256814292277922079692357165219206140209861103445658205611591683527849865847229950818360325221482938330317384065093081956828534541915847556110852821388870591077831900742424673673956418192469417662177898234447752365139818151074994797661810670936154751031465170305111561591135326005621207653833814353115214892282041666989042010173998293131507190996058780985039386329049124469924823826771493602346258159734420308792733161759720487535860298036349161961254998700747877718034487929343045693795699574019463894104452899669460438314570753566343257475674820266537294541090153281973227032374989625586712853054546890942454820292753926156111095059059750839782591171670037257773720368353575264582153544415956355987829963923111538462361491787686936482032859934637522888914488126766944412654407876084275825934851930997546418226651023607788538377039237187736469612330584675444175269959936349941780091622027376043210170585827175455007206871225254715332095325178578896000197471721814766431734185149246263395119948490630498993712887934892033754795996179113764693811912638629781818817475112335573771970839059558228413282747786558137449611841424095148636763730829637558659853922658164932750611652842995188772384180090545729922603303781102830531070260064225094302828348472941988634795744613961215631416308058476993976122991981242726478469107000297298250122771680864242950886774651298229250653770274043881716067383593218178617857903250502478529864970638541130077319063985660589512826223933887668046525642319800424719247609099173180779557135208279206327017716622083490565742018457756111809988583575152723846049448525174006496197753087906694643284273591232019355991778611936593690190318926318043804397719255484734674789215342606875148107438565412837505255982670841705113898811673600040986689283057816328975819152632137626373420941063444294740108914808873769465594847371973723907505912136081154050768968430493857098871501905709878552210997722411213481318884304078252574493646106376442183636196163591267571510255193424653725932793422744224031220240250312423053206648218597269436231898638197721962219905878218661531969915196369972848107525794503809525687597532821217891733703885365010888570105444578963101435762093641142087896915269271421716872920375381426056732232907017062610102744006986172226154261751943486855581098105100426769199114795389208339718994986213593884476005613065700943896127894650304000050116052952018216909525264806347645997100174234198443786758736752465908286422614513329857860803892869311898828388119534016570036128995623628524215061303200464751661575317562088838903432520491391542774716479986526691781710041655978565233788654145266997844824400865105428072406133444514575862367586189404713089084456322500280869606828276893231484345847544895594150027223083964406331368526568756327932056882260442441493038402178115884633259139936330607279804246075183778590820168077537712728301871697021738332927458272041019893202137217500348773637752207467599021678925401357530360539821358657351735504321587019984885859888954296743656839517013062406023497605396924192290899978919728559155146597895453848232880468010517825633297156771971235474790686193288267885625341804217722209126952350237289300098751206730972819468560324119763021102256326089134665401029543459393967748592305350462968991395123875303993639070633783712906957286128448432419501754073617104919685115668364938690128004407716297351869735079503576978270312963513991316544112875192576242621465994898220219112479766252892963186888890041210387207919748280721289391440198860079666430457139824783653992314032913597454564822106478188445977299725662505873778563814866187212590961597110785330495248325366033715394364049494461668964875328666102431016141282110920251887671230014449734288479533872847305425328780042504235868616261417299334725194296443360506651287065576277558799839998745722718012750347923387674364657669014687086225391562727163528812668656498415030791769188130093154829882125993413050875909962582800085377299497829625985176884011523019301420558548986244393648364844182277702872086192060337400340101271450651992552578958433298558713169784373509441143901514482919427422896575076468003983615205706471740709155920126779140153969956613946303457810735700332844476681862348124201247518078563259382293610968107522956232028050394040464211761668529893328413643285402630004147575294746499082927901835879847629799287920913616998350154228543538871421012402169608052103998577339748680020658773387058046108954609447839163790449211069314238039056959627558588378040166965056594957851383459897682877854955990654766878369118423527822927800100585515236077151947710281137579358253409776491681256332873319203290354049865062275769063718222233714743988810801816677671321715543019443334495223986566385806407256443963073831888251828947724552987661551437027593039636625228814239721299176837232036757877064919494300695018782145504800687153229594220432678810282854496688753325782334333827830212599383421791708874187794375709556467598713087008387776489263985823259363540682003790405354726976025902276926783660118362999264704139113401764985613243387715906664360383035958300096713492660315769897080584381824713932502127936051648111878168059183875785674705609169670077576275721466706446640393727774966955823304945423469545543756904998199841368871742998480030681781522980362975005375357711151201910339488366154385318014966271246916840140034543973907720282153018867785732565759061193034288971611031149669307271394141479389255982910084844901132128396401741679009796166583517764066675743621801344838850384517914334745916561546147088456994888994017372003130957249742378686051139545215638063653408123329630645700818337194577405609063981911933478024889262259381636319435642465481775092442341526697774725543145262480576479345725906918944971557578315429262623952808163975282488311524636817869632261744186927876059098773568851382496935804501791564763158363148735282763809505548561036756570285220525897826637426744643252781131673433738458607687740428032155936963031947370169545228138941632767482207907031110402529962113181684611743367124127711426446920084583282123023419994489686363801927712936319752119936038402188456972744528474281532183321552968662964345009811672704070133133246680513239008255899185523058386366100679590960216298058215121655780371888815028414299697720314420149492050668833483825609733673799419532717648339103432858702168501838896871981881856806524207178873581888473616506103824117707129962866900640693215058023635853641651986826264433734040676374601165156681794587140147535050758197671378297650675076978180878640825592144030029891553933103374005241055836233582683167716107299417990754009637507206487628499217534805371108503311376424254808913951620946824795848527405569905271662482047135397681717135139432354869779704339590188011481921965257664922116206194098402206486455336485530596308324798105887891852217205823177625695088789853079358352724323274543006659342195999753456063651504432723886417724294643663926560445517233762722746045792177252186624077995898516625645992472952609733244331145669330767104003080973472339380379655691634700154628524254009900414937717929809885911610733523098074875682425671055794822740326941111115069264977083927447364056101588186155110821146715279296608330527793904433445899054921630470949311832306685569538964008964713422241811183615891672618282753956202847316246587160596357620665627931296651705170363703111813632367747488006018618273677167314779887081544121744911455726360950550909332774104683291333409983628305053610753772488018619444497843407299163185652845744501018695690241706528497899720932510256781077354581406480382580110207221798250733670860316661965124404614229387200456010123825264265989283768529475150304432733259658227304094054469681341195701620930798849229743403369416076218671742234220132021650167544306363829096556374778900464921265051230484708600412526410565066869994897255935468365912327461261699029409662603444134954276040752411269547925456552930984294226466661067101939744177627234133022708168894831923939489284524997477583540755406116320550379339740990992573550421958329286919032989792882058424761821890050323562221273975798267946056949865447140547505323882553513149381682390086484848170572721582981973430237981429023730781774286836562520708536493267182141818976360219263638740506236819224946866758146770658125769688085709327676346554555055671948843987120572473077178310414405288565454126525368335700870638699831985699327366421652573802036990146646889101456207132686981955178020521897822230770659743012286277100869612110208223133193274401863626946703704518005452403771580694400706814072969910032211736204575908925996657534046926720008025830406780399068919993832583944770534924969000562846472876639683416284811917950391602258165453843481678418623976104808970516313129954747517242078167213384797156732531684267933506177721223538027374092131498535119006986299075997931728164896077200648138185040021286418658661629404230697205720935666538192978483238195802056116109022105196285998612711153418051415475458712396538294525234175376819467196535511820076452865845452891170714984060842420401263838296192992198022923100358297469058215012716561108852336121190881708925193054082672153956330730532039503018818508964320520675429721966915986398116507585067578333347476230135368729113627017239554874977273819487309922019522537842445251888172819391226666222751445324032614148114823866192819738730943947698222355877552228138644915282052347992724218653275711570738256050608130755854588455872910119700971782663490840766248790638121960336351442927336885225522817612733077552019751307646628891333235194790509609711953508993929732214279952974680843216673871293570905125216810743349192657191278105015226394979192247292750511160034134111841223287546649757149392979514203385664107625249795052787719699636104006097045386751179867323495071086424273156306130826462493394267417708906083950437668279343481637090613456234363775502217092276172071081677789429121106887809969862540174073199458247835027715436974346269819313228299122684432691737603231191665789716359805332068141099940164171169768224203149760833965299589834185030402867754825795670069024631058653841353743190957037787087466909224051321214988286695487714523447430690360992591363858596248535065855243749519617866714281969379385056927139403614107279018214503878613698978497016990436089169988082060805103983064041124685049678652452356065092737419583188237250387165620893883443400434019679673385442134112548334062556058292352360579337355456288096170829900929636603375768452152674166361260339583015875592709001341424249541352775269334068053559733311169031117321430390152282873609545433887306286135307977291204565661232499578733430346735803845118176152706806393205483590717366732204465323810772048360770492718874535977111945130756760476966818324532782194496018243712886691185729404775399971535200202272510999615985574722094744150685222596875308961616124265614173250562628307135921519673879760748997425137773449591825728458028264680592787956064050951737668748953221171813041415330717181949233968382058620292179309409470425785921873661990852498497139034460272722614730730214939951623878181752357029564215738553392114155460635498650212558052226865834543684612205375350431676302100617511531257832256829661271358610740573487972915402698696680661323478673572977194820121934369751799756079221991141685469983054539855288863860994991813057081811263870638606918795704309891687274229646100902987122198848225121923477725970843565545563584426764779916745951181200581814099210871917455751073399346969734747026782048838438966230243727928786192253559654102002314431052870904854498599100385414976900140633098726534399534832224107747166747615364850097534020438926321007576175974631284483540761856349877701326922587897418144226120902487154242237768675002646007326837487216120510959627527444160547266658906908387695166785250089806100175602376869578822881547074598087727134237792588902395902477237770407554853851879924941411838144284315728169168311374389413667422875549496923819024870940855060296621161014419983976529695016953559262677003496882069603108679063725268710635998803094915627442495874943682066989075546694180100324589911261403925361530225035059963672630742283453799358950776763253965741560559167078095249200281888960917342302241943073722521646388129176980096906172064591894472142291813057266035610239579496090010696213003805466416632326353845486863631678105200634336714211879095791678917859429353831279252962243917731555245605799448593093561321028457595529605420095151480647249815885630514045334911986748210769785549293703805013417741091722488722052478020573732589470282292266926068394074394003879043622352175861759588363217248978542346904203388095942714096969251245678695786874045305134951318400969722413367198845387519711893724652829295968600296770697737298243664195924618519218674224387221920968998095953418207287026154345354363820992352227550052802767224649556740990149569286825477849647397219467095871663260376392411714271059314124512171111553698234426327163411952704293211913376300533685938024106038414379979868747476841832030004295289408186334407494066647022692747186887452108517555872531393714516418024726864564899859795902459716593919983393602017972600579563378008199149195648910538918936138450820680154854363545436202144165302271637960320964258452267227529633022320501622237260348167874053172935548735790687862533441779863806621075734856626585541773880299629424166745410277866079957835440573758853840768495119799236221233387940821636365163724750516723320125329688272486787105163166260255474997651390070062372123873908919555365033085645217853436812228572543222850551144389829482483490930891260204682229548912238159276494101582158972533446854130681270067991967473993224682172227334568702580228084306267210208379001523630321037468205616769750133697952204512641654610265506022753542220991522399879312781996084187843908696572159125053026989618830223907457884945098778819200866670948632859267866229533870385890968285212260212994712382975474486345536209090206474408932164329339391040726310846230961501684476227420444738538843976734045135223803896502361368204957488424090695409196476372925195123864745397552240781382977213653507501908191012926683455685628964596700582240820625350085278830583008009277096848436059557064818647335187859391585661077518542673231661571863259260814598322733412047242508784351493550201373225853141882604470493140088322918921860269466239659928853357107332117069283092680205076575167911940741671921890626028019206306374165026075181109354066303080231908613321490648957147487705537335662743000229423639909438556701978735997749846652738187332949436559302759334005058580960074488908275733733300517750625176766197385374754620203192932490520247588853645237157476115646626738610588036707802473457164005608393435965922024232420261496004366490527984744718515125688634206684616539293894629290752222377613267219172428642661273623938586866173409431221991845093217284647988931173026985304745920746723724705609052901765832945303529156577218239578110953405175883022766085530461149843010752320345468422307874240399654474934535064536230526433979640747587946501441733959685415791031484368760410420129746031658921446746702607676435721340370249498049097421109875223815575261277108414024026562384779727850405835015727621379432776206600959495149783965689530129388042747045551584243175018962074245930384546904668588118962158821293242546540937490443464602157776094897296486452803333129989469837297606619570303917114182838401459993210688725684723598636747248910385965743790134972237728643550233239938436866232821973927662473223431833843025023159361330527478170072539540358004721266509197040131039507447457641947771968506465924048243331936552235366897556986386785877921627393101067980600431723190744027081211908050403337597996567516642092357243167951754240361494674784757954120766374605964421903205014125052917394125179043741251836352507350467316243949511134434708617851336762173399872604116296561438015050323194397421023015186227312439778787494385397739299231130360574322726429610597716468343863198146729229120126667888778761014656589316484012450195082629959514421773711645945273067606575779260894804413401081281037391372736105244166328858971277439398023224920119884055616182489474306701302811761936947474226771557662868147107451966935682157022451874505326308503751530253322285017742657265983667363564032906666019949419647633538597442881547114078460423064270755029659058857881804285736229346556908958365564243049497327220633833316615381172135333636721919243675323582881053230591980733153724622155350061139458733437046693936304212858139152542279592190644101185591052643293098414415609559280767296752580210406631486343110269481788451491343928125601818783141313077405107784654553206963912282914733593060184409868276590761006193064507771790337674952694907346813617584912058934749002359829137917127018679003219349989622716730270303032743362091448729711400185931489778417741428034245543263553607951148767183175045728768177045403725389708283589208693848822239305788909921373475570013441269652666214873787831213771035604060431961977961106747086144938004676918140101598816156964121721084484600960337647581695633250679151651485866927164337820086266257257653266162629392870566752257406520740812607935173891075994455693280842640917332154782188387836408929277317653511757073896652857650196395853359596511226819114645038238888846789195867518680362176715290629042498504903027722110508605810454524014387001320590366190973575207063289213806099049209536129728869880212119291909277237893358068988901729627880536345425688191218377925091946892192167185486009251414170801446054246409736551735776734981208590440825300494565882996511254055881477390484177410449725496202502091512500833535104777723417518855357937481151050046365328279768339658756335421938407892570503441058268161455882955369458597250926313692882091026988557083913659330021366404865788870615228886681625518878689676382993588538462153582214409214476664531144057451747792017494042429415937671949809456029578244865059538874551447147195755107079312775805506907699517657239750988690229335191206908493356613181721398814384257651194014987057052886610630157683530594398313316048600500882302992171936993165544889077990829653285015224972358080564172331819329016564533336770102478023391366642634926776190588631930366129413126504540228146267389864847074890841761137845418326654256339741611792010917576988750983327105412132314709125706962169621501490157818280465194158328899824146441193255348545380274272232192667553326255259358107090688032680932411362474841180139578259354602983253429035520995329028340701928305779313716280979131218225137193037131589939690545741649831455779433499364013516434067346225341993655850269805912578905374733115950792345335851031598303720488892926943468281465131026552362431745244432622448019011562379326493565133805104777714689538089035194677196811364064473947359881416491269576361626475361512917515483048652523516420957079295617789977336074273897755877275170583023316921621964736016850608299231872419843529530885463466572535631250818224589963442513717685740314772648306505148082434545097497168465492300269022347091826839980687648423492304585849426324623622082313281508085361378550945401162174524596818581649871032388397671865821178379109306606924654541788225901456434757419233452230731645513141590082652756419047265985971309008508205157588031312966379198870334397895868499760428172662804293559576000566611370075937138338749331785842769940878185738429595862206322861525787571981154811787673547232959373341110348108586080796790873485338367106830036067625325431501936607209985708997880463544702193029227682495408047512749827687847531982795505806711224463520032933805421036712342428633880620821824718978048913916814569878755628412658296969912729023852168672447888631558703948516102451004012977536650691830176819537040982776056962851611165447794233293206246758106806565771120218675952096623950903972656872494304371653831718005199908607398129491600388562340906203945314140175794879579014404910148661074948134847039687195266231014380261948914284849126436731234758678651781924831529349631846463831986255647698593429197440178980813426602307386108012041045437629232304228903257000375363803350084697230719421058252955483906695995905858944339922630534757627750873634295146909906795923628714630256324273643004018258731346971721540534395147948715838375600944829007706182994402551066452105255895002855940632653971280382640608571571460272038331884232119823561472958217398736272873044027851200519224872992620261679623184796047756317502875026718904034427114902575750721274267872533055690966314541857522943370981127834483671979298431382562858735719444147430439864773616059787455752617236263811446655284377661711653185188045453123439752242065011072836079866223743779710398067845845179818954982240308529981891304095819770348794255239818071204053807198316931884464234856182103944205577074362094217199183955960972760156328449861526973893551743828509234874697136521540281504854097860193415955114224065424607634057579324543201356444937169735957384541189346368617644506558412297442754873163178543054340308954428180880725430646827773174189328609820339541212445476257864819183290956621202396409173659997688806242614209999680335906855821829407735033889157836943260315118180179609649715084583124983976890154620515889286168096671854376846267744708772281713397579213130011380490017589438780370777792229279462145290044634223770108486392615760379363687799896720190433799489991929589594957607780556459494106602651367355484921276225816083122879910122896915688576553150048353040588629002201346400666046624277384969072206924260508455534625081729997232386015973080738272063829356801103941521385204902086092728021896066845711983526306928031610271703288718598352562638955458377665339539683537788601042211919203198755767655804974201733393930306079499879822699951970062000581165798118017239771095779307205605560296243342127569683584919579208539009567359799959201587796825874242128742465091310815336599499530875891659489043403421660828892726033543475455362088423106950063854553751829204398114898681289227594839131253764289931381035024111949150064205975649459816621271993088757356758189373236837291769791988152428727211434633148964051481223950200899187892193188856602106199132579351002702810455288863929331001004287987404691800703253218208150330357680907704335418096559816818686495308433773366335583507458611378226137235315492242057774931665461330865686839625243879174758903801188926460692380203934639539850145265172636374319054070613290817005443106109693678690925709468639525334050353456682629856652550198701214114569500563581821580341630901196208621038402325000723373734992756665416354230802547989252488001134079277778412250149168431289266386583664845382486033888181475328307912258743068357715937575286983397976718907416477907482102014359151970501202402998634395684207587777583294962804264052357923699741165702566629761973079682053687006819174704024284554875546886155980222521348670009245447163629270145311743233064960605942676082458039313084695368262345304970430962746193996186739267967774391776169837368041834633996084185036982798370487822049796767372232152978721869057135967775357397036986913110451065998329636764632747437091428391239382907729428078813160246626528432978832057521105921149008159513454897001532957523703879284019987948563144306012520741875787609232955312687732272052748295238086283651615256985529947960587062943769136432462083723934444506967826848062886930661759074039592833008980422493257823495749837962438538027030358519566907493628103217439122187059476651467815857869575133036796094156771140107973210709494838446503158728968549238719940866904777068533537319029209984197336943897498230552588298351203883099795134282842287815430924519119707338113155877505303107761412793129361752371667036347739522307197007889796033969122131935251366039478501909940128416308258498510350649775744323146749024878750709023227740094705431634633931648983652587756289468953387251911041867873195850016137515993234365601387200798243300076113577541833846685834852258206821337168710658063348779782855278924314591724895592066082973346010951159676037419745431752633810925990625066545254750517357955616998650891721146448074049568431346214423244603089362618416278801019954405861982369333954174983364071935428987681962267528786025958709854357938429352067995337533978983947217795452993574903025384886992376195967304209431655544651011601321683068538939614661119946285345307861566028799513849705828756464030944279463037558211084760191043024568361812647054127292487306125192037426329142067088728169368858298878268181869770906746619662996815498840858638817315698645707578941747383768343832386708322484300705965903325963640594607751940879685628879954320169244574663081781286361260910984395421348295962027991096686853949593132164067844736557877819925295649545050920123181665001998258188144732771189980245482904565244742256360426663164271310315959555736962613127239536200741616406041804494789418669910566283855476971922664132394009721763804352347352967036810922360446081316924948656299771788351353866552205475529541706144890797311215525743541151203179235388761537364399388770640857571347898665575871716154429185844117600292080638785081268955493097809915112961010916173059279587471500344195446479747429558383685416289808548698612730857740156635994695547226054470868526418845905486848267749806097451157234921085847695678739142970896279653055246873156810040542129226769644012458533750094736963786462957436004597841802788120980418404026586916067528617560602199211337279419542097922656595453649958790578840411810387358333218378980688395845943314243810591725350582071602220028156915218952562145562481848722888559160125053149139638470391579993802495595369452570181879433501827530528522669135477714059961592251905909954826712763887770743648819493405987478003103491919378167443295265750170220874757933920181739825598861132307281409091260369867724852576578507256580129199128570863010963013029622583750083375756816711522007016706765822039009595255120266245634862258624283979565380369674440667275365903231040430400128380307568158786957976905378804914650299815912523294779471636074437989370290591722204542151268416045116383115032331975076785206988614258951750386726505544620111403967335750176747859161843958820019571447500185393257725540018167120786062554428250760123705240171387878391012843507587014643318468530922187788231575595391244565073146215890639082891770070517535659515908950507651052031004642214991351378217169215698045511274423283899861169145653680775203817414243475913729142141580731323947557263003724123107595049369078151733505612458209981817073459064594997287154053809721584655851093583881388289948230309977539937342700866294722413551322330054274720560495608055481512758093720359224911099957351438862127728976303539150665394114421523077006364098255486647236473037504070719280548205446281456097130484200229651794635533862718475003630011879639454928866259194507394013150489832633867981968840441167977759793981974204831581684299310256411742984798596408317385820377148084465493914241339227075719685648429351973282009231102910427549675495627340215825543532217721187460533914242396160927472105059223875206044466243104984557118125861699033592685033726171610750629332361207349047087671477953544807608513642677152017497477863767284302816766534493698678402628184635388585550524916553215466424505621922912295706974405407422738560811357713875106872791492094518444978197121627477902848773648640370732615692768502392015878477333419350947594270797229233378243170402158246304906153750601823944711406415158343893563550378553780452683622069065130053574301990824051604949089038846504121805105320826301968736232860545546096280301072502011939448277163230281612570960585674169974598505575775636336878861463082946398139483330388037806951697176588765886117141544821522130084649228684059762962573279064860847350788221402796625538950563507083396803057804959105682158440814540074150372502489076470391516277455279886540721860341400463147164382468415153494545065640939787912278878500055569411960158227011152305015787018012284447658843213119746094959290265335122152056520954087349462801459049269459534074132104513679198251206703718704929982249369137215131451383747361678413254452705965720935244946471954063601457381497557058578178348765869323981347409527372775503391123606750285694622159915621142298450391229235078911308401578230627987060724905607852538787470245757842285238129835878949411839957565012572565976937294531027386163325111874230702718883708330053166026249161665184331476626520313986375421993629460302091567943784170172158853116852069473245749489514740415694711415728738950296159107634541422427191674133354668319731299028739660012753035761093990413836181619718903433269986344776008426201579129198972543875325146430984328490821677915310932244753117065520141053205257278142212751253259808926562491707260730467190829522404740132026524327640498109828893439028043791463102544394699052927922499365110478570782972323069948498692512537580128176853419597544049925363090867997326427984228082512844679635536575631131145775116976922197892703339613332321279864792158948268100293222449788971516386597702972232337402547645980696528475213694945816360282883310971914567301079313533109571058943651649801880435715789532865775411491478692399818558500899529559749766970362426799238978509579007239452612408304667535701440590583394196548820635823613848186726763974142824289745370549048430988911081208000624306379142734184519777658132983561267091415307620122650140219228875829698299840982328836305783610549508389505367025000105699148684790075224978335293480947455209948160993855447451525824409387927908366995065641403483261853695952092337234971243589824660172060770882933566479993367493460983192523753465936793543998868535463488667750390002178084439500588951741890236850099454031552132074286334510532567751023719769914203448288306959953373989413139016058009174505281366441124630608256875026181476168505537079899532342860223258561267133562713913402589288807026187655707329015096530882927289296487388938889692440895427422332233056602569161799858995926086883952549296694483555064962125987987888042591146992624095234902624117003552017507164909979992239148165200055830863631769122384750855310928098656601650385538843098592307739868694078033803486800091002773439869976125385492442846851023317812534003812783171845301960933091321909989512574361150027169762753594241655010283865658287876294958095434479848311702839218338496287733242299787432810032574608873799566448032934604120627055971119173435966311674530338180316155344518796261161955948321324708928396791878680752642980584778529817579510960765129057381585411206282158379239780342956267363901137281465641541132689541785390979024561766990653578508418451530622287686391942258964941786244431420525553210913360029462119923951158819842198230669732675608701277876453748202274545209188204098239380798178785882550471583632790893866306542625380296553868390157085594919840783931216725383399347565679913069918055619193051763970303451009687846454706376547503185408681195660298870432663377372643908630403707269436829217133266904978081609553936071951002501596117620606554089374307423818783782495280079895804851034759168573832463678385228791488830763386942834113409453877102753706994423746458180351115207708749530862086348473731567388650479524515034014700552845687084820454043761015434032455735808876766195817738842441188044491743537482189995377616614772875755774926914560228876766370898501180179492836079129578213116915866308076114181241772774343374534820460045354365162354865673788133736929277125078012706537549321096325176729617701508056957048499935571575721241014663902983758887711444991767233703876520260113302536995973110330999096497730106808587323016234275158192781809922124625818417170181509625169468173288430828875026525265890717421949224419965970902308732829473482082012041997535744329197474553500650993023500315810763692353498456276052483428128102326831884255026358409436569534158071777866815699606301121203578661926040523598053966926597983336675223308997316682371480928974680466587310005834135128691026717941465574177849316510865280300766674991638445207853160081410500771184962270427873228696029544351975175141086975817995568515042879617219403441955227736158429891679019386616246366587900588813977760401451737137280285714762244621394507657340295284920826597483006964364753111062554770008027906471943633549196186116741735980362209406175215711358788811088415381940024715700292003818364306130072204548084292634898219650114556299774433239002882605947793739433068485417667051218122757745647518565512267819265816638614397038764021591781614165688840926439708960442396098947516727294966603553403833080427890368423560840025216181135072557020676717719236051904549281819436753537749363354891950063336365988109031911684763161035568034250995486492921760858686626481531353622595067045399868378800034433296152356898903676881483211978260214414281699728158281137670194250843416030627451178110867656436568288769127494304269944250465729491827273772350098449352738622338758366189004756643389790621601013745486483082268845697348347682569920522178028059285980952232828215001968277920745110559224470354340635096154906334441858399822514576326871244556089384864137587002542897683796205365695010356799066752246799908464096740244916840214571206223455511067605938564316703674175750356280638003928138899708006863498401203026886035408365373233726835194146066366963564941453419049753718858938594742144066946739416729246709778130511274817728361473423092075958310392752102089085894164421570976380053700448865605971529462222992027409445813723640532540491371677882161752094400000673745563748167053858638832163304019324008914332350817468170198808858158816601466640420015322088213069390509008922391311628122543545242184526943721174162339813030831384000981189534212366043548197642357866496588012371727999419043852617250364721493183920289010833020235934235310452532530195820417474673269465183097392099277064472376347799818119859041178097846513410121007324096771047569814332851307420168009083026087721005397534144494144100580600246692899423602150491578773214767103394862947017448328965345137471973226331794531022042848443943341244480707401933131375512000176029145587206202310040972021400524107286682708941859666086115542582041062992437475690867118123148752767026627664222753806313706640230050839490165014407916827409813230010001424694000528297736626515976733683841798267471324998958934822506519730040105927278460101321801641516216334995652690881546298957063401230951589013751187155132481077185417389025153919905219979727636131656089327111444797989751254827082408816715396088950307072886616376319864144772368229258180806061274193573969948870794816007760553034415197387223796333157759531331777214192678746688853273877359788011959844747742619899159949816774316520359051271974013372250405157243301469086255779540378688270882022203539105941723327543476532092505035852364832940002976995188372859671903387063507510979400881954890232685262926581479479959688864736177251559455041569082379417308230768179840132291259688108380860589781122176638113043235302194970700672216574707667633893209449255399105175997983336770258245542096814967067544205079812482676023261724387052115570027303732864559113799865901907187355979609890289114680432543816373709573260075697799328599552505846867290718991103838721213753800500297905149715444815360241607403936000127496430437187777876385148007223751861022376768739962945854656380804909119607232003692958874311659180210355410374369963592451401185575977414243605490588299206881638771303257979324399866439534914865902513747194285793332622531467576028116879062533516269935840828168905652420731611189273576293681761668047482427575254094881723021780823269576845540003184268652296507908177568877885169244347732801630779407155975358250548191493555409632615037742253944559425351227419122395826387675316416174848755752288111716559777889430632353401563033155948512533114277798667904909098280207457155182124546916684083493310778739632669530855342695128403738609011177971476435799534439626404619898127919674350847897704372803912587260077841958356995322026867059249373174718142437108529484260936613263862191984803977975094543825927127681462727849461985236444066393448532761461308177766829053242508261746668544279779292355877216421487222066548655016327646497439301705771218719658116101808729104555748288786874031206254977594533804345827715279904352048287766561468620421203772041245785348874723355235450179324846123146451378030205745087327060354990481925232606922338565456351067433897807055348849117666746357505694282693827799120067751780874604189046906250875001523420204841352940636619478134650365392610033906295967641403783686109895630162763022402186913369106835161636605338582609999194618387833505439493576576543876765699265297314126186508035168154493708511424158719547828118166595686759090566001417654271840628743851254177412324059941794820569786031178383698061707673888414260540331698476116675739260402874038164908188073100799576185877637061583142882774000339296797637775663020666471168637625629233535365940492994222707404089168081347559466973357780691259369443692259121670988033271950998047575696128968527659795660111485938886368565131244450008232760171672482668904794968496887196327643063214318245850313373343726315485676822225267019581774716187514457943645287086615702234841053796088640618856315180943353067419894265865322756620381300349627449594935903860661068616065456890682096217819942423104056541777374447686327779849865033668153190849488424003591674373664944529700080452559288868934920458429074630936649920797750167276095859470860412102100661359584933411119086680731173612293354034018221711828083795689568073030554332391269744101151707564285610059173791243417749987742471830975964793680161373819201721436820320019572434315143228110178478237156538821182017298910952065410240309829127827528595590157475987850644147910332379862891635773398028331644456611179026372057148468161755504413664554534858144362973040607259257934924402566656834946314764562258223401796021419221294159088652366968617918106582953373672043383658662320129000722790348791400915939888033575485047973887634526704377582361909880807787271284581447792150412361299638297907993502155937947073149766357371645737182020323963195159561212772634923418783355104257821596238085223317325858233981768693725256135786190859371432186994750212295449570162148043934357990888394850227283505387948137312317360495546770044861838852853068582592804698383718892854530174242350627387465539886628498237129999406824264703526973260335483234470213927797590014857752509254795369277954602480909962640366324273165324013834948635513966131992764662446303132284229335200893813085337513655375447633755283148134793747460455196427585312062019518679125066308290599583964617247815668984512320786986113483502243037340088150480114086650285036704263144426090237664832015486085431500485915414730746207421584713203591499978663738067432444332137230212223972684869150417004317976086681266822081044091490953161330256126056056915275532336785786200215455844029020373068490329659987209184276798467999017156265649627020830369402943140066305908258745094946434373658537409293500936221676016118896129541837519833670785111080244815401518827203661886676032035690345303831182722248541293059440702074828522632685996552907557127275797702325487092920557953951471275943378345999548748714622849786659898894043018137697705800904001086836694037624321121520097491796002777622239734312855093573989945066985727969967020445996517130331822176558260990008429867582700105266777253661218991261060861046885341835853644333098174554297159921320392560864246397831919001697974681492888183009153695671325140626936944038543610195644392557249623134929449088010094135991294226476416228262288841147424242678650338539415424426467392274867755640395683561014968169624409762847351096615975933140816550106772139109246699298442675314424435963812032077220100645403497293773656336029440106532319085969266439498858184994457634595934330448126132789186961873256156299678406461601727129360611637441123714513288219636410766138443810142583386999369616150195131627987456370693053612681876994328146253806470593652818393043806720397811979803417121052398950954098246149829391165743534365210781561159310905611748237002373156579857396006457269269828387521568709195380056307534589652404426909910238791944126865934400973305933746483165526354763540288718949489122594362972504638689619940105988569050312759714119829074700962312389389897869499878430047344852239006273115086839384894629131026188173377883472428703731566964803883890803915234275997684172451061780495051977716584679576722463689222638822053277505150546419317174887943354245036203562930523353985821518092416958808922296671038800665194407203130660503055998732613056215173309947211524805348773247896648350428533378047978884363529655527143383375076553490909200413608798599928058404216299096392319558973368504186133635288491130441590161861506664193891660884495511732859699814046802482088508180105640926167551157152122750976506322260444606315532180687226163305123776610386274584786431888629133461310384589820839553450321204056154627460375353584639963627831420384851005131377728716793473553928718443658329980458027570876085711802442467678575789199804347986442315868733028686485125175696608182988304763856814183279294164592658249577853515864580588652851391771352293563680488061501043500978840454663654173321631620844908625539268532587820488600732271368899843934569386377120537993302775217143159656395682745460174141352156554745964632126421133973628888669874731356046415296898451310034812342975185683956839270498605880458980217892440532674024896399972337067023956405176901427521652438230009178492315857139295057059785622758661492632802311114907928686466771171695600856481238719916737257240977157632817052863039557703745125914250199335393073874862546346808469360807367969809229045893816757112028869096367248327266782407901031517234703925738047795368046624739024404881206317391260922369411437751964521350237004851075284723948808893609987049787695488314415580387470465883508122301806600697201231719127501178398569589424299085108344295821409982598458742116145880732682025767201728335676538434392562628072006894119726032042637195461448515633975571043903263145045381350546676467576717692855460215899746129385092563439430573559174145770531941998969247154425085013234471004896016418297323728027399278677726839345757967308959716851529353410097590596694833917941145178257252394221586217910860769265168154461855814206014258130513540929495426823084730524399386285119130876182623358693113127200777154114165895625986276809506539759020142661498366446836383558519702850508052102424789836886386591000799282307326397815371670132796157016220700169534251377814927544977316389000360993991036747193354754643875805854034004974009592467116989781521455544774734675446342849201511531665349052355246340100499068029178030267643399708896674209413171310410996724020200719971905106300264826471411911835027172112488272075324046969618689402712720700466976641244111722822564664398356749820081785002304030452228519369277446656760496122084634096668156906036471764448375529428565546831085475331418741305228819956175663438721601500099922158684222637631689994824946546435125581184345789379234733157830276751647195617505958598042431882148740659948153809907099836809298020358889664637075869448874829554168754910236527883595307020656090746258163250234257894275699358464609369743439853281988664080265367468111476642272948011878203548434129995855760815067097788684830239028796718373036404616192717641058907808746750352396244500534774149300009175705245831730386510740252646876252734597579911070461415964140182346892923882994891553503038090318357031238068855409245759762964825205440390286784593582160774050267281269021530119288125088349184610556968356504364208497384796046832948411525562035736386633643774772728264194684932524639298603128401156260301525631544790721374733317945402119700075140911597587629762274633581528019484609853196075908807788186689640728240645446587365846245409228939864840531293771946587522803417083374242682322275454709864265998326947726980531383341039144780937880013707404067703345145265963239245560090004614705445123935530049669157806922181944970722421317211772820907109906279785930628316772446564359937103704699112674499366097093401868783339398812758425087938969126964131393400171963432271518657727109238525413237724839627070565524897761768451868263505306661313928504259957827902806880318810328813121844148427602960627600458380302402466353343105449572268470180385748411326809619068276460028335725779512309282322946589997915243929621080685799669909612296906802003100991347203546646820271683390467960784370815608337113076504904136106112399275464272395789078277395419554436878375937121547480857137240937756512869021867760687132315156124981415300775522720405380993481165653434502404868109536086943923783030546797261958232204797228183313714508216491981564839472812047211341723428284203566993514166645267691915206087001313083511856063389944445467945641921447695158721639427718968790544510387006412358831236137636529808598445596437392667955139086910631898623910611525872351890971659611365780837783681920610746039764833811146960041645674221139225459883181013714446923416819089465122855358427531838477442835420905354967453144023955218199416388135762335569798752896519136628724078270869789103411760667080505818641847895564577132407786295634979541355784513480579774633408129946076055319554215132496188931969007951712190505731303595625645386581222708591134473268621879168294342511527142983608623766771559211575225254097947650636978911134471881793642293739298464761141514118812198978555429672667878510203886825469951834035148232946926460291458147420940813691621821266048489643222814471453791288607418200056639354704932901376011837928802253193725375418873015778431970816926444298815441061831543337425651152205187358412565567386859533645197536510460026957672426439701535052848259798458139006025647351880229458485870964358518376678730409047317077716575424774193520709176169175075547786724728039615293628220822642385195303053857302845315061339629096254720684537299838506203794023628596999426949835013218396867313090866964853085396734557287149909579127788073466054042570556824258648204190004676851497820577650020684429360820611715563609090467715757987211056184373783183335913931232558261241249676527340251423065165673478015699282954208543349151598119786632162478490497182480673494101202062641220640144519572991625540327522864723174471530374246322280695835241510693587010584534817296790402923323966795059879837447945838645783032368517632253980392112815745404677972926496133142201724212966526198728218630493039598871888649532635056143368399283019975759999545299601178739243849902728964767390320478843483723426548314483420706329292923467534007794112478819069022829657209313841254937309301483445896452992127462210851561708569874350256191415375882790347508688606145490392150428612109857007151752470431274214403092092726421718270603863803869558011892857482528053464673501325766217673455648158334169232794650266947815364337698591426585695203794290617301509363234574705932142025993196989147439140607624067158056593960897874697899293494949161765209142050317489840023968565153550880897765138004922081755164797378906796582272070059465159275596512846725038602365225137860061631547572042070311009399955159139927788589548128802485624077469545529678511620900653097135565294277617692478915582591969338201952115723706584206575153197432945323059318991007017605732174171210413698028009895041119786812644227868666768565874773542267924039178838262032711705251416762270815252961657643209041078003642183621631937137398775902026572890397097679177548058596110581493048517497628490676302165604655804618543887402018202588587994179003197215400252612824971733256230725130099900493112905216955373683233054327745196621602545783835942114151984915666016760465066676623779605546020184662601717345421990712356632222597769287304352912372281605286119673524318926970484744589870423917037281343728719065524146603766189280406716852124048285554132476501108064976901282488460902328786377785226479052391072955952154652438255828620986504600613420334952724731167450700131549629381721117453668081736210617671937919236648736732874062946036978685722298984033880274522067966277514325879942866966618237598269567253332331635107523231931438599036412101007571233878403662897359212956023679838771919902629547236603048960763173595753129327217331168665844268881266643582845036371923080753859000633831928796504557712547144189685075426063846797852559794437312959281016668616262883031167548602846600922770656034268170953679537066925867026849025168320820725003960393841533126816030191624821502262048198053608563470210888816231640804006283926930552779306410092898341119597991209354468340529392394711956587502458553640456700636007181283516746992309413874119029971864001955786321852980206072652350232056757786799398453560539869751235801442971899841929462801601540963297652373759000248365876670192480125379011640077542900923017949366321248243444120508038067919193882856914391856048426120969393657312899119018973985797425331731432362904503955795745035010787809882268523453439903089564498048866690787799704916901230359705067592427159891934838732951816974354315747155714258729485420859906596089458913734362555062582168987940066557413073676444169619913282525458162792233144692062228147999050282627030333316328152341111876099608685505623783535260372125509464620361398632576639671456538584548047211822229598884638582527756360559646940738308282352821547842640190777076345492100732644594826643801092187912288184293989525962414839139187011587752470228099536744945541894853297537690102290102231048380727477921707040187404091303263097154626243522242808762580494194036250705951316207874059729691285809644495249819809826399505582603010237368044516388459695682005028393222419729145446283497464525363436532783141753988063293070133220571857361022661283901054902861447412841730993970911203316461627896610684862112369236075969473371478550448258474843094960694180167100875341955310799577454151361430670675041845517014666009030937073595679562644208904324204535152155593037432616025520246591444954126177212489571684614508060872595051163858341469279744751513635553441821833471842960642575389117044253636923443534780446477940861328786655182905993340751628268351795882106604080318639222815023842634158021262638404754593272581217683903539767367184371898355487686637973783490513350543703102465020871030789606287120644148829110732694447348696059739378653496669799676948224111941674488475602925240066681737910514390807015370765405068225349290008778957826223923398243304403727580472970204527664314974271557219722080170516040814881606123016045429110208074082897268563293929338048181974254919027296246756359435011119546186952424333815774459305899686213602976002466447203649102652674542836696246983323006126964421003065146954396565614574116908851359680691645829561504637400751539749536224976312670198061964436476023813090092613514630212403093613067388186713108556232079604472170072067396618270693777141010954642641808862583144865254874252836977471811714425857394039234878592773904209353762500798197286371261556664694766678547991686217849112473070369929384583513851234860608899188057106972426636556657354448174552360865656950927257022968145456192631161138772629154067651246479386739807680816149602455988817783118025378834646845880974819949598765012490510834262196014934268643562223328211894582511055123966242367902591051023999402981621749593987241250844887670222809054284924556197907047388169861164910201152353613429005001029586350123963276711825571048070088189421281010063946781162146292029389857850694995503273070611988378738279948603029072646525424792454140637049250880087427796887274182126043020216509644196192770495894529909464345512005192913758529674695213502124253396719065687607336225740612706819421247488212115605496534116215751992276750334369678002932610999118833443368642823194716101570759203936626695511481560873322383793483798637393472441648451137215967707552330215894826413918180230865382693591545095738741662243817784052294121905019898219286832248169311692307320282433967331815605529358008783521693811696562604073191535217541054306807015462431949201477853012482664742666079191785395117146621702713161455646364929036220613112932909197843450719555836896626800671368920284064745530411903480715271672473257414745308546951113363266543839786450336400382690788448446202386743089242032418884660508058125323972724950353457544984554207729168854093503225270111730893862565269409691788361052241161966648573238673994506863329180010109864448065193778922066649191180166986538884871834679524362457806696723815990192166442746463948667331170890036211956322083389945521624537515681382344533154731915871994119586661793715215208305774512728056723974959476595018301364259764987885534049751504759208924558538931131960904322606780916765318050651434859735777537169496585618092514300882947139023206460291729811967347651293980747148816841304875248925450313411042992975229043468103769490162257506099835306190833957292826542993028113202480950451089423918359263385356373108521856107712629965698820999001655572062851522971009779328914874155324435903522547902856448330071218329524649886520586560738527085266988447669888297699863897124667652719671464229022824296541819743836952499056260498134764081682555849584428646516377186218014793276490363247117942101464820671412193015296844039241892194011233088173372665964099723181455381923023389766620212151363923353910955859979923842337283759532671607323553010557532059348942468444732149166228089308212421646463694949067370471107557277420304695518452933380256772510180404391924528592928516786133105441007102570714713551710972715603122560491497996597194707347050453037066343388263802222669217526014209827860582399957069033579506200216777162439522807884149445252530005076726189927785642873312468426708015830060074078408275762140799588175017183729172839978055802103333752371076273419192812625333905931075053350374462021264822970620956843156107599002243706015378145659659060216481439881132896523242362753137442674206159756390638716285071614475145088869984296573008442499051537957255373409639708233929707282179324336286180412664231839473265590975772364598380873537270901123928137251357725835637957116620258098496876876379557217099413864902651344605732829376930838148402952714658210049094221373885818600818930853306536321987275008942735924661821058253123948212154774585191587156167557995414295155393113680653227716427534313759534478871757926770052315861719837436654951630688442823908977948173053503392264549271791168544200597715916447263011832336406638707572626013830728744054718952027384061443697689304475737629381229424923891322185644908137821420065138692349382801426279139760715220742071745380180461586266705645686376078292153745442798396630624195929965504363481662593728322564374591892403369195365783444730555991636034996912034428561395882771409675334566406812419671360024546002606175487064940547265567102459862941088689642775975818646944369682303275371929103113700618626136237070383701557698719464093968556703961337866055794012248052409374003807314884996415721039786711888899963672118793167622955142927562124057686781483037671729099784658443509027505008438378284811185230323523826303536561555752536552912909359791252660737980188554546473007809577676262674775163744185998639042096314886626026025212172175047752132600892107817886182851037691461417121268498072210640691143838922584200919907849925654891986110846483855841328882086208388052593574481496436170705403843516103807345645057844519695273212240761272045490294894054038040485145927156585289488916021540780977884685560073542055619379487547336968967069120402238710805818949624700964225816023918304297158028603529328164261937396483013580467386603764682995474598063852118066710539437576812227643866898439975031908908520862022384969344275419023523098270382416386317781819620371981308267293885556164509312311088409696168342063186553362500135657087285100100447316108989095503301755088774667803142377600879008415740674702958713303401951798700344746177144221924191327166414654538840778682598180641445980216205492297263604894717051339078227641642918011788359762705103636063902659570461945233895752722447288329017150240904140078916657242135836900094312265816454945619269494952923731903038341675654612003116606117170416927223968885921361520344289670923192914415732091993369923748534185727430590493356324070863506900455667315140245352208975651156610256580138626370124151651162217633273931377350232935023261459950985918336926189269730166647472357742008311591559950944566389884964637518836361226804763446190806565331578393768696160052026067766838889440219139675529887028472471693253329765126785046831324328534411986622987521717623687866545146789052503777597012143558325958167484415603213091522180842008827402309374203487217685681963368005328627732257583404171035202518110222988456237405240532464499578893762142498989662982011761797608755891528790159729027499048154910582358060143661754454298364887182000954175402396443467245134959516267517697179311489007120952050059111016737541669361867108009294733933616057784517221389580916052997383544645568997794818297412012526669361977095006617404904016174996781242728113589463119891208760945634453248035085151169463468775851005296468805198712307373494110671485823376909306499982167696952458897855621081860519503574349812826629718655582838487959086923275542175956874528870831669652377898061503116696697171817390940900791570642346228581725528014203710039204496295380516156346215052270459793653922940020471850063460306006471855428042173265361933886863751198517229112088543239524188297222840730702012817325805172852079518249296349354972177318291422990227976432777389778381526018817410784910811005433828690250373550632503998303823259042554258308295062136903850827478464216627399773049343036185015397059077571600212299936100788677900513071046247756243709516702764218558812492839901252996115748807309295929338479771708548443077479198859135529589295689156815378629319117082520249345443286326150567701441277732937089131035937104782020724474799284877422316660731400242864834381682248304238011880261757753066105603148420982470747344440684508262904766602603872171239293437254405718925717712684548340520514995627470728380612739608534688181055993025329565200099803114799410730372289003507905951172363678515186799574310909935558882421793349191193296609125441998008120631272093171434438946488204183526304146845372042080307026930909518787504243666806960636592368404826851216674181477036358932230008264577277813348072676907974022831013407734910444957297016928431825723178223764789443233144972558147795231948542821462072485366763527595273481522902921151796317226702724721391681610571174373904905063362683980564635288300821212328783212882184587239292373845630072176717737204434889576718319386786704845770442503903646591294454618140217057597279071748643036766136520595778253057412782843963126574769051932410326970832208047240408442696583416743513452755242716879669693579520562221933699233172652405712832568696966380217742453506990544689716937770718380595364777307603059666485363644132073069100094370432248568185827025890984698991945279708634889188536127919882750974496228420270613562148692925726373326732360337945741058987049396109013640681361007123341917260818030528484451713295316135829329216316762477666330286206121355772433183799741232075924582513349517363193396008521727976260340530773028215205431640668871675222684742268345890111887960845779700460089511497377708768147020996378033353293482974171285895717956319777382393982994137646645396816857854568924573809110595960293475294759416271570243455111244956477231499647342571185385712005538671386569786911360302075376110588394597140102848789010447372504593505836958577981084022201820870036031642363285477153559208971505732645841293315106440618874547605660677144534144984554785973267675815877348476808159363370795948204169034037072988352961576511803898207535985769684633174284873095989107685105528743766429845160150263522326257632169024381644054042573645939085553763548470755116529628745453281437200122758915665124563641512803476454980917348581219888644608428737002387626555304987963972464208848351106586987592597714476295542552243231256577980586249442741835221694760504155611838202177053343084245687617195257112346684459925038809769667001023291182221023590047833233958821547136749020661238304363726659265571677931504728942317137299181735682203191700795712860073508028324721837073823536275775475571014401479659884453342570216898983683581041431038323790385801787353551078207223940228727435993028823689246084862666025501744253680232823214347412945272559896373849640936018076413856400135636852138006208662765678850202915348969284198106793387799960285548481125264093655755521838177081634007640910805575903131106325510554132019717963090645178224094892935412894441760425900646701633710179329830632583534895994533599248389282058987912898552176658286393940703618580713777934904465664124557547114926860670848857131488480117998561261668748580052084198043748329645661292796998551628449153720069616517748833782234641613658278258095183002955958997466146635368189016156752062472377193917872204737270120565620938114434444854890928455590639584700521776464460060983894917177663570340436283720057709683099378176678333749325224194881468614778063986266502386610919792725367293650766193609880609397724160656137176038853294404874213495351240951898776943583576923865248626202294959634119581866156569578444893636301666889342350752403833918007717087532909003230513916369128686170061065006831176641796228942880341627000555317948122553813680983488554009616606927397325065410691506688756089083186565475003432101060089553856643600244391171224823747715434896898490316352875620711310674892660728844093725940417412285167518993847445003808767607631089990061329648890207542886026393972890981973900078200770089338918651986951313203951361985475784052113425502157543131976838840222764196040541079429513446346419338667937705517453370742308788258059001243790033118501471215129396457013526856365319999501605955597404468397429147157429866900875194483836663323993421322525200221238819475832328174974174476506944575250137137609988595472009448639183464800883241865875408412174203891954614614579793880439938420099598053165341413040464109561163848858601166294350817213466911442463116086869885376858286560105552327367057663619453299656962009995498624118030841705679690504326788485873817704411496976033183357113830928713808625109203191353324910253591700627972539572123294706048325308444381353679198163010114428458717730093950060773959224236773141765188832702075161222984301814395692011431563484101452951118243900516173918506837922319670700595487540947016882501171730428736026871509848641589744429371881821819272424903905954878866021888431433286560872266771927053050784322868945836557274457941573629115299026704169983991787477178803773387415371346505964751550569975227777615253547623382844517638096642841007181932640997294423836640930262315855004005937217808262365660664268221434753337028489075704244198115624939084780462245384416143532800341063124695576867114116580768220074725799127270748278537169986408763577170983748402632785196303662376995954640004706402644046842111278606686818941306063675612441469349924696832609206673678013719415271310331243342934224332070588189251012580732817305329298035289515444385235564020823076653768956044806401081835401254819477173466538056817061764812529978244066414875376120244237784706304418096517942687083610825154699742717213213651273479908793135394086385377849919626743043495791313948694346872347277896445320685200731001754394985151099900516267784630207861714136390818752219538832503960054550996952772930643620547510024996147006126222620065129793831777241610546286066622411038215243596449948443683789582362984270509055365673281329184744874272495547267319033496292613582535469470405133093693015712428546284278407813873855806223689090657306794628300572174501919496814260612004676475883480586108147340051185884323988863169009035051381228074615339407825655099534314472605184137894551996518649161976399734107319606966203615527430436318653025977486594919828991495271623377822343057552974932856423240207064990772673265750175201664376923638396855176751348889023723229530813133398157283129879396737091605401677780496943741313519284744745426895382807451064212483378252686033569342655873967904170443521693945649613783197051530179205272880494563262651166190964656012819012625574624231471195420202718311565888938266602719588288059686992302267201914084301769555981743679812703910257135000077860787592943971836909213023359369546324700822483926592321155521423006708876891170558336650268143326387034230840454422932315387767063861520195691295815995150153942861113711414063484974179808157153224851727239098882089387966932907475328770471448777989933706417803013864283277202056466244670371238167011461586507044755177323133721328121711726784559235673582188685337999719098333915902267226209334317836674248517711271654702508413174809193216552020402229936947268427769782113802673020527648615710146988716766181533860983355116160250738915338106516243440100728214517189420620690747784092093302496495894954894379628916660798267231931615345293991628130868623002390457281813512507135559431775558571609543792229438268375248268626041179169006192932109602023015966163913489624975363466695193411188820322841372568551355742565112885333024108638645995013064985384914578107606424305276798520972995475413008205988792787187436172139929294013038649357376825953525420220384671492310680112081287810653355699902062297374971534441281886316614425118634752423374275811409993788882912672584480671627107791567312534483231203871142238916494771873228695417779239725070264294124755769667772357835926372456448823219959956077686708967746207445000584840418200411501715382675542101906718252623742045947857797615896288665357815643777396055042307680557150799733874555658964109261526886619724401941976575431130309356876420369960331660132514205933335497116210569014871570777134536476448190499167301798767758779067033613638311029226234805088508453928330667358397424867441781713021168757337611504395841015518303084992945345177886065049882262999842739871241896160200021188546581907366214318418948185172004654850813097563655690318859753713140551572409803080842398838063632747496269876586277284845137440984535284180865841195865091539598113607620432495875025934252600344915715850144926037015424984079769587360688227247869251282524462271501007048913661378217611654210018401438121355474839645209604461674982356623364881653567829397940960447218094054144520604474793502805501066390026125395330676766696945499446335153466366370658655583191717374947365316915606518631111971592030145242138579706525444407022617034908041935485512424930475367569890442879720867398714991264772873227259838726856812729840901146306723763129737484951400071255186545649563915171183403164368631967687089796493702714093372096906046363334674797347034605427347848717847383679778356734101332656874432658995915442759488420390954831016629592480232735320199185963639944776360434928427495436680410098080505679246083152958968657287339286688445712173288196132181844109062185009997993468055969537830644919403103637564003900585848593124255389337138520266591692237115769538859299772271913994072590957247517495354673245164865032317273103023231555689050683683828119680721799631757210976045847588185163058003005388135031863022729258697007081470630042969812904897368897850109679329452996082312808259766688061488864205518781379476472835874588497860284827867672866674812832249242787870987719522683547293757118250280458672930744158524454354121724939292930402463525896333549543290005424112908503484002083688388610484664173085630978369888160723697868533555895693572966881159076053069237291693447319047029025956724594188095492513242840075743888374614820298706085745687785997924696813009060819952686189271225857600484579777216414976966690620970065085515541403094817307076353581355624588912056359027322205647068827155340278470525267694860137500966060031694664947988882033084983523266859437560005951745900088286809081496624336334213875776983823561218652954672984823533115502927422376327792026635500134628830206075912187540004735441282662388606757406406161741502016580466373574535341551087737003194799321539806696563081587073197560365085525156566237002147646355093407278650774519138473313636120910206181072732471943024725635528059328525873783253618958101247223004885304881030956279435956891395544558321598984469795665772579924882350682286973875616868753012205703356447403994227586157871121780254766531037471937761765807235421049751671229257134716692885392702112284562371354698098150120555025646237270165460614728181734237901195882431014548409926676007798542670283265197228140977308974649545178615307805937864095489473957670574332546245678713352610644457213242362631157028931370727809026614619563529238687801257089656053402956850179943178706407029339106822538332948712294908383037782583330961910803197854339294528845606226590587785221291048750597980304202446758679791005127013445024993220380716803898000753250097287190848734550314063629047519592916339676471933960441694791148381314511894607250765178587960006802238189849321411234635423478191491877726066214169289091463451752326198244126914991033250005525135315551091101816576303546157655759603768317184667865242009427003186451455141751301049113894418442772353125084811024075123395968570737150509131538948799738725042235478102370033639462022739656207577300777841092833230736994748893485921438154616010754468249386573947215054260715852416024443943702041326598286430632030503586247949849215586796648726817322670414822330250422041259491671288017364278977292363293584992420587496003038503659422224027670016389132394575388532250706643424565699620961369785202067696767833725753408047083720008825622449279398054322898090334328772211282207412124450930069576728597789163885300954049583154346444656750957392340152578147978701122180665517931567734208667813463620747150356139409513607049690721586625016642328056525736197431288259801377844582959178256268339680563746504916214018151677590454347810658189268765269969223245924294638255979624998135575812925444775635755671740376314707509303509123599494603194662306325714025599397024988144891435219179215054174594354040161085841387812241047495780227574195194571521629410837767933983382286983296150630016121383503092693954298593938877562780231871885292850234501847535161707873972913666991815020202165469118234790885835083208025322621682371021428063699221496589515855881938784634491134996742546694820273230992989793346957601699324284919942683887405692999141743151157070566286946315155104978435473838282050142478974427931812214344632164947656314363805032362354611841755693552673152339924637048903773010957657784414285019598450046348583688980713384954754788834039221005631817489861421777416132561657585098912921778793093891468095647942909379003576393719714995254044349062742170595027359553091328382942057180168461393935838677765291376839072758833779809467649387651414598985048114179072824373384178952052264736927314357339993752191857681099116180814731721019362218196170240520893466294396874684959045348916459781231275069579853865418544549500322258170097354049835800747985972077723434606810146104639916213747607126122175454785948085933854185630399861929497923557291553284575326598492195378609389497123929764128562763429955925458440436874867962736194276168164634097550086096506928354905452425407337085516480643516631141872954709965492723862128342648467088091207637404372622580779003156352606861227670108844320813855487550344704546925687272513062597357078113610946303670236995846815561734420023368381457231301734099879460267806442551568260616524855712914520231583097169890060780100928641368266702142161963790487409981054460520735419651177135752168299268157525527486268371146813321891129349978852576103877846102255337476820447705202688107570249791119705332206820795505639741911228074997636925551927191767168742117084590779181940946366240055609161860080735660563893305330246233203143753167087910313984113272394259927083235484995563292444903677317261790394567502737834442361224745753783532504325410475647105358148162597998232741276680380287871670122685462969823430009689650580782914410285763726432864108633091450146397743068314404350397676326744405054821228055695139436448327047704415633036834390983666115170018446911530448758236017128893989418728299110982319908459434077000625653128682702827623414705430848301253846065353594984269255094446055960918792270045637480286709794627304362734162850601285004545074637936011748050494593887650098450275356086880419530623557244240948159614277391914805169185172878523235239040119578323285475927807857824720395298884489300713314695092696725294497184137898129527095630621113411420788845212058332500642635234068407498387805335800842403103982182446315397279877526982764626276654624212554595007747102997824325135631553213965213417053592232986523021290763977316727072024814579969428274696710000004089589866148907791642929372209281644343161762055307953773161936471121462052006257655227850913589261510479442095479277518500505447160014233066059910245017828320675029388014204809744535741105995478893907204070219036294308518197552294039144596607029465179558708389333112922732613715735032448174089750671306241944825623822363789282268725137872192648945823983287378035230207784087631862407390714990724799700980985007433953074421257819588426953759199346599367863267385792781958844327351726162809527229157489761609588718450240120703227585125202569420906968359953997268530335169427540180187099362481381305078686635532294116473153442289724139976487820499519507333032062724937911178407483905790110471114454889008276048967791182504038990654630757990114438673033302045008318350940965870502676948715669967616480137885011521172600418894807075865247015055540386667828916265472026894275916037820125353194527740317663201313903975755108048009101804652050474100061320655122063706074513290695888920487498793201697472553509470677145711447570678843220520595872658471792597740637553907732889667524083538415475997806929912972468872912725710235947007959842940617063075326460852757502834138690479784549454402929207543994436452338545364003063369289804240637305515976390635036796472888387590125845843327926337389153250363510590344830495971677241071074140628396847360565767623099465123979113703352616585469892501303773744173616932335371083311695081038337130197856111993282157354297221835212385521207589863462709256751429474132891251649930995616392414337393461860643706050127537065103681568081831322816438854553204603538960354326102690088732295203378703404687874251751423178032549938431524480204626829947747821366184742049693814702564162046101828317676007902163232420826276388568763108315565880177394103825349121033543809959047979657316480031943059865078999367429880108443459879434619794087470346417301565926686852706916052789212981245741966480872087455907907733805913114831171191219525980923349279173466727206005657999019383437158300042451920325844043264436234650473293759764996925585802751296106718096809218731087978289731207876743327905723636013921522737337408850037265664022352152212361312719665483395027426084783994771754576631095369693568284106286166001479647414592440232401257593080112391686938290486314561474738886028178773759885428428423441220671858534967784111357383254193759673649305543027508645194770769360077935245771357839505858524403276292164712020298235142632412438442314919870071621077608410065008034051833423708403423058179980295077905759569720521647036734170393919680456159538086133786570123563602499975429761439929335162314280563163875068623821742775938334820262090543968569010334167224565338137558318163031517683921928103000340733864409835546841526841116947528609732791499162222321872493290687027489878932235399919666096154052856984033295657205627685875334182043794274199624660069544252495467448826872824339017043295742879516246252744266652402926616949183945005272201969120949595046399829104438250141488631463032308020796264893114154828719128626361802755254197929766727615880874533789492293301312169490872769450570217703876670276060755142284650973167632028659256098567494138959667463469735877222064031246803805359367479577959177877352930026324730424347228530516574246404989953670273641700498125345893120518211148067654635129046732703378849803328105032587367546360239105077801632825371765704495009231270763749025849078214116385113676610158260694809195442680211699405275095587939171315422000807187543364770870604659819240007178952763696620551096255326865686245523388519110878784063301408455757161182945289472525637015616983329876290238019556278422063729934991734947603779276971571281116029284358906241839048348422555556270169786192483760099496455202454831545634928959450232674252682617450170008202693892758000323772420231350305337725621455878176766402692130619656247962897692440598244125011436521283914310739154840685132456135784479654758469014724141842226875730115537564064222752937111578222729431385148225335566692318753342517263842858221802653177271888237266096869997488717231621342445654533295123338716446674953930559207309660236867566488140277430268429449525305234203708877339062173481997713032343564646689842429095511225713996687307358961956174709179860195859308842781486225971050977465906857023427673733196716727151015596716437182706431506840374355536240086854037096508536305518734379685585403229407554854471566041918810343866931598368156876092890544076349788153133527023582454782820206956077314859689451504320648578165289090809089258230266239800585626427700921182725726382326956369965591136425643759935918292115557924010737716292123172751781974397326764512960705513720847125177135562279084094791602334998543964130547618705180542385900577814453246397392440344713177945392461183708878170476398537363099158407618465043576081667887768392298586278990013106376927168489386335987900888971141872281604776980403078202599005512277644652473530888628333200096561595465185084061783901586308597566224924285258664915887184292682282617630495687349226405685587177034891217411111340776922657846284936306583031099689917054911416075303616021303698512718747017092256035202348337663757563505533780836202322370485525699712592143766580889310205036062631877919805263148536915205768690874534831097084873835017803209088403971907154892860890016756420749780796546257775768325925403130866810711099833486152304044951397125674969899632152093588725053565948493712836345586718153124456811929873762798556909793378902375827342985566423047960546221907507866074264823144290906370770141893061989709949111940230899579989891404064759650275112226870404490298568625847773417611678882021145572920218148727498884418984229470268478737052382577155864672571659965071518123863524277796477324050717758367971776719868959437598439972112299200433422929484011926272003739985195185936127619048675032012717607706885323762908854045974146034931924831535581836914657541218857511878590315276764340757073712166155509542190492005190590136870580956014444994316755868243331408866003270552765333102504972309805382582098310556832620619806805496036013693684388216092716763084138527791110539250160698890440965200500630880048570713256114889965268002217101126221146844856397194268376637626935371396583486514031615566226963052768239551637432861132123877394667438554914031345581675233234342772912660300775653570920608306161923438887588841033823934748858761326853115723780147742376087119700351877715811036454471707930870125862249820216493065212822869914981306578529275352500637823261050872854790838076262605444402377525737972958795102929130904494950619866163796265699606367979649456789220220667677545383762446422664627489594534006331937111151539877383200449499940522379873633326478833317137877724447953465889641748717108500332749296587100674535556652918277350476584134771600293867912107838208991094918427602417309091413948607037056702135756272676120279646071567222034492697700215429271760580028466332446861868661169017903921574847247942716457701992388825385023574940939188572293414400376358716466909142368767572069231440606418678233165899763839049176876667731208462842533570302018871451780765650931263077466162166456549190211161216841590022515868554563236622356830161493277047385271522802359335388595267206270321514605784296830954708189091468142525198128622121156260705221810259597133528944242678737951457454997223835609611142482711162263415197539661445532803856246042124449494067204088347109469465845236549809189997117017523960887677982770558551406688296085687086441781853374921748813552122708912691738726039079671374102478170765235715329341341854368720188807333571674798436670186562939005047324014134835823404242939363199192407730581287817796693959922521888715497875110566943480734109225684845742482899973591005193868143219386001529888869190186759870048406363071976340151608977917970419435581817669465225490306348576039911571025071849441088303633233628723747749065059558137645672308338164089366128204319937555950745236090716015993193832107745376471520431928912756659192063730853651459770205241690447557244355095717226948534075924473016352769578447670518302330297002919268705141838116720256373739850181228686179159764715745322341499798892173642291864182286513615341125549963883431080841241862980103677272905467054202848117579541179254640248186272584345361403962091893327040064735766562041197298446842747108131654132181256776422633923938290327485368483116594026655595551623553320133580826381953423236299900823530774540523845088702490133938778477949236570395897305887099261110921179602434199823013813597086535437086108522780245843072883947979307079359764013305619598412991582268746114212950604528275368882653919931618877501162714158268391200770099070302675876321102186167169047526372822869010111513521293971142682482866191106612321313008249943717294942817473564388270765406973189114174366956873057636730619679443926690289009558564601756925961611401674090983638987882357022033099235847710925479754314077066710889214889443957111820269897165262573362756220950457562280306284445554665331687255954674440573484323608036741505395547941566917866491349334132469829085330811323102010572645383240713074217662455273555911441438672099173880801197037567653195409301687774369412654162292693353384489867907952654310075114574584923008720304001084180795018870874093688646145025409924419997317579281910742557413108770541457115539239389780648352821253918253310055327398495890482917916053152409461508494103294001933538357024944850757182175435865437075625506474917935161686388685477712668182408924571464055210564658702454732182028424257011710906188933837933129117615283395300605384183612960583042147663030693858959779533843949228684880978881048039819533486196548260573010713298505034268600477612883751038779007570890257673975668044808606886890758368495473281500347630902156761351251854354241318914313826743536583224616306836853092524353519126390614233662848665321103559910603304379980502861505764226395998989709533488484961816866519023350006721432509473272030702705929178931409326193969601411370650591380065287811129715962681053278180905548348223308185254886448713496586426095936536553833843628500753660436689568647204092072425987230526655757242643456986147750843059428522996608835323202382484708863768556003680206973238325025396317396558846569508643188046905245788359251719339818113887915042737739079786948513837955404093880894437111328140801485374527754327173116026081080639550498120300935527154892779966003601136194929496020406762245676010080320282744123880767923267131069073933379850627774949958502937218289744852602479902393205845781937286810545354814774498671793852714521908712310849693449641911380149426560163631388176846330750797619697506589211626970006373516608251870803442087031670334190534365307109732064666754359352277335339922455948477858095224407840473585374041711437269983216815694185368627201746214456280610476456184379503706188164805169340891028528825060651798533307333421357124609589625234213734554236160607686224897540017929176932856100397999709426321924156859779263290372028781168523374694024392133133880848153669082748249771834638763455895454276606663033134777365890971816891991872632873341653846128721247527513535204231439091594493156345601244724305049643706202302481370659458681357320221890211087619956755521925784894695857993025258175258273223676828913833372323309049096429433839658206766460981973538142911954301382536576662679649647206998165081939266796245009227039718222021151906854209150819923929567355659723597519431466954008594330159024142194534324714776556192739907163513484655824481157847825349966813042132975137622319708613046885558098135791845092704860302166517076033761461604125320543841863533896011258381755468339692581612553026637897252942587096114684864842827717774966990575263839201190455119685063653849142771436831820994143624352523300853226405232634010391121173003122801228357295969541692926525342695333135356773430479600514839812236599993364872052286480949145984873066423109945313631706482017353703710794622397109656129950724024755475955861025528098618145904283447663207231672850856988650181242545767761427306068696655143915644113548778929751383101088657533588858463270371329709367545952818759349571407535986123965141929204426969259854359527014712054494620909927072528648772793695450815964748926247218769707508350489444205485812295624214746440955029826195830592332142808447703896532619864436320839155314245545795193744393467536544822805874221960201364952304779845653764254008118959672503534296172522152917218082223715013319835561510888114513239371318811173901175936542431655584530020932307212175338088828034323121215691576931657159651164448625462142245916397076920696719587092011216923199158785348753895213906013792810317333743826894897187299616877847154765691476989206846816690321913564878632569272916619178441432074454023877618176671212273066392988084513800509752077943996346904133917895755865624015715607024084678333975224028343066944301584060781557956888803186204434981017537356037068470759561909711059995487651977774964766509443000735887775539251538767898694236520337796910309340233479779776634945583523502980416759638144687528701642734781615382532288770409760946796333531843535358454716669072853867887349893155385059547968523743716767476183898653825962870952468013374742439886500225595541250785665315590513008527214822785390042147367992909833977930034300340668283048880952185548555125995458701660309416791742229357604803591972939965318976634096863333164803133461203153631437862961109945301425222721947033021116913037110683969191153469064420518852009019347271543633290105140550189891946691292383720230310756646568562151077553328700867958502579039213549438848424300589440323787405986003789130993889090146607213250326432417539060632555348938000195794539267598174158832364254633034356189661769924594391072636808609750281357433880583787896901202025617643556055906752363704270258615181278230639577287043156498645126505721089692935377845800035890729686034235398275195592744938842732119517517683188134150512465966537162282598626401788477442301507595635826727809421335553648383061773749852842566695905733191109678105162418761513779331782214900660243488030571749911027615648468386714824421626313454916137476006809232264715208416918322374861631037441377543212616401013090384457908798012857247197308283437693623204259224727309997756277766070451707247716788724072582101990231611266840371015490486375990249589036781884026181911870003091615670598267239187727762711258191396578792199700588868743127748639466105672040453896415643233254044885310801034389613759782576632019812175334240286471407158233579612892619135439880699009868556529748846586058456448574449162409201435860026891882987731598591968620939773971384861117828615799232388094985887809410878120496427702443443617295647421723914289975649081114305899546165026149735707531111863457782784130917157332355203099102937610578666734028219804819789243229948698383649321325936341752899563515332282152736502957531580015402352768727987888055167574080611523978541289251420612181284636435963536384676073494889805535428925005013426895806087959717851678869651935723231488172126337003373638588018796483855846172449383355976400350344650623126558053697670545676568961809278851271001105501597479211802572539978761834402310917397689018881270003377280086650610700182036298851288034383123733313729921941697113118928030413747673421362938857081429546364066393243966211276357541403721940954224773269377738535954077006190710421991364395040409523678235282943578054368830409461301965595826432636147306129101248707685614681085635987285730482444205054714622589459403841505775991112142900875845603164576241376204602997164451913220457729483871352204747967319804704441723512739255709987517264333504063314164498413430858492971670005234594362338265262645195036248925063421258333816995517654050992338885650241403150698323101992475412551154671145687638458119590097024255960032169672238947492527447815730777706534708491010560291576554003825730508683351767671311330298443469982964301788500480925523118970067826329018261389846682777573253110425601114671119590012473893577325894615533968681085791401909021745119110107295012045708748291233478052817296178338820602155362225757904447708142085846229444262941225368509758659615154355088628321483018542115552822997805978614396715729017684644753035071194635475663239357219353127576194571226065774311179029215412847906765276494039724605806097118009069499631742439583621863576728623120536336878995195259170793900901404207256811602744448046082481443853440764135347304582724920914831361835778419300410966016361299443142374880118940462441437909901395073115979190811618475035374240348852636378632661932853535045487203430715513700944092973820928139125878382667823163175197567115846221061119970927927436989446825026535060289590966517606160608412850983632831132536760210249129761438893233618148371748553548383954026821955270642923495157432059822525038148374189965867095788425728840990091598919829716453669487833383283715400806619734995505305852796647535120288258777878734822419238308809613544565896278089839143928393125707639396511359783389438318823744691751948008543983572727308554488697185623017632468454629555567646987187347514240723224965874420675760675556213289259957412447162754382720611591548072552184997915561639528623643542651062652334375047058520768163982506906260444595676592624621635906744634517847619877065759481245269709499107797332185764705666287479419347289979159734306195466996377619905989947657614846599618433471315126548161587647446969306428186288934340752264310073068961951543347759948282082072542194891647908134966336479676404497067475779772188948055136619575520710883716343639545857597063120577151599042123529960984103513478459292946558643491430613312775410629564737295029739401059220191887535116773323506969502656554217537297201922635142608031712086780192497998220117627219968215129653631192182267946754573932271771662918091342363479791603756286404392402789666313028348568431995063809867501844771481124730556440835809679981394968806893882859108039042494559791211873386149162725788982096291658637116067156354487003261543366023528702968639508490112915870910739636855199997630898694586976008408097534736695959057543468899993670457605856734575895131820488531775852890721445097289424874349158621730964846927881434293150965131960913928658810900999151536627269459261497285517730859265276844865221929078145640076743655523362202009318482755109382304777036746848707480747855231710896863717277037747304085996438043791480470273347175301677988335542446145893320229981778802893333217275648209696334571239270897948443276335502985172774610071768591956021643797832179574755964943373249632973191722213092291099774026955545027715079231102172846067044272012338473573480824519983029919573655490998890828287276955877571138000191008380170785192272139818961038023493008224015443122840031958323646407866391934659688772846795233951478880928102813798401237325422867858664309832209258887703530497812818859474301056425418638345390328547951162756480290810801756593239362367080911204146769883446026055976395360756596423509032050747312311467596527858733368030143207442905999055996793246135121370482560137387799574584715140999075840795624325056631569436630739611508765496291105982337006842626232471026054260291704199646181811828585944394085995049661503805459002013105475861873695952994080657719983931430350777094774890215484480675907491832463241269272525682969780376018248468291115784528690614296644355916296078005668973670653515539481908302061171576696334601704214463758614261648588975237231787855131201409889125636754598729299075294054604861335489635845499041690407138592877838192938891969600480343365020934076113274350455820283703132920879223566075398010400043551681904368099211712432175318284637506451416915254870833856298957909217224756100267462000348067917567743595839186028307239338796929574411126145350558896356094198472514504214546283152857261266617777962656915181368159291760264835327215319444330900046413713465323131899072896972229706018992922266672259778266535554308079215064512487687365386997642806661469597323277369563741191911034957985195988545800437661438050457751014647306614151162441679178155411240351646885327940338267757472283670313781712356756007680127930136746960157593702143161057741830746789699739797837340526240783874555029140246255838506707821920841105105947910313178939635113085857230285259211049725461864988588446382357794096131899212703572382749538736119859469806652319479492109159728353138490829971507451637858515152304600306200271956803063347991054774647106321881752824649746975577243852525771254493751420006876001921957162544545689329126252313877146210737011305820299204425388850539602294925636123148962863026479319179279518923834908970430215049903060841997346812676511986810083669674894259995662820954528005827191727882524240469021422496048258605270674369392435563504066885518066491595796058167060855998419056870609758239467928927624306670220471074525786029722282590789489866866577394410360309048574898148117348545280442391259349575145048765352637628916479987277948056067011608940215680459927141812853987157336888945866842860351497037783182832330908199172142254685604762688610449720039720838930725071560297990487443532093553607195679489032633059392468270906746773701630203126976387656331532896203766453631039526774436238035391513350466154762391419801052545105223044493295718687627484720358052391982384051759407166701169877902589347480793681845530751948837857456684002731129269374732115797673339300216286439390043012526418755601816140808683089727727631496884531817410163800750452753369681820406954450686064931002998675531748778447850900882223266821613877476284571047067503964784101293104662163560841022707969981441072238063448518153163213211388078876286375310516191151012746521226750126185667876061888529426127347448985838416631417432758568133615788113309195311083782552579021339374120146339689581348645589835678429867097228555383464707868247059350702941886164944813129926633447984983920143221555480981908065584736944817315294249016124145372712066609008950868965111423330646917671243434727915278006433833618470696451819310536180340299031659704300707899205823888010484293342996849054244557843859368279332207877556927372046972910314943629510859620014819740194472191556281128469788965965058293091204245211986525466797707323481686578064598765718894199742343459606676479338768040001064599055654239946793400800117533764193007925913108134480481974985586934063399593717632274711831419050692707412928607310153857089932572770960415262795888247838505466828835003449285988406908281774209198693938489906260017014137094650864763302496754615281832000778699309059467304059149139437825289171474897213277085846392364394606052101828251317757296990667855191040555997682157426263389744763189141762340104015576251732054525276378007848032140832853130345631201639365896397886136368676247462513654512287698522309550480112975501228198889060258582104417051984939943445093986780212934383513719812401033142447651555117200953854821195894686412215193931531997668782497524383766619925415857536874341814901379063987672864684371921559133327917004500241876116570655188815271863630469817703849003141167896517809537090096483698044241618858288172237150080109971781652408147245363250911412233532696677884429762595600673028631483480926417480165445639151202306335814022254353258494285391016067126222442428717847197557448868086627166543680532333298801691229534516714293698565524323924801109876144957170981181439206159663459306590905991065842197857382217637709814180265296669366815672016235681438119762770302427599765280332827532094889708542960335073081191015772481068614296370820457496029826900794936271515122862340781543497973012880429484088862343794993415632028967758750261497393032729074847358020776889729625484450815283224823015145692010359280730550934988036756540119809504162281753439411105494442462823500657423124403996613433345309161392818817474613736581570638523602512283915926868471846512847523608232686347463385140738651668998682746290570424937682917797338107583777382971246422399000149386064708393603815088000665953186790306458061178039182181638172183072677618044836553752312194588932128953662763597728689302502905173752652183325621930619865120457436362331390000072900102161032731675426284200718213129590947903619874110097854039730313827068284946023440142804772810992440806957553653972561622878964273818399329539658938568825287989801191618860377486426764562780761664826501209205192751724252572235350407689712452822371435975269841529941469675174552002467433361610767021752584560279108428998663957520576105285825169608719034750543619005836032557782422739857655685351223513984249950848132259713478550830911137034035101406010499429127850883384150948216172569119908348187197068000700397238662088058168596616597542652847300361222010622856135813799518467787591730873938359400688666390966801685698691412687567312689671114905483055177808156840818720948425870914059357845432385664316568785066326960723462272492366828077750754853628366137408126488724203753768235735723398317630186967947508598788297143217944989997484675321343884774667197187497996262470626597344922287144244465982174602076133571426749679759396976027466292158617221334228829446760874305446269745305015147907600471872921860494268132698780503902525097693823081570109256947542761662216554244479068643396854078342732844123095757920748953764801538934994485690825327957242767955534958129839004108527969950276307510155228977798657253289922115501150875936214414243676240818647133915210853926779459602196265303049652174524863623718384077045916184342456449552570516650631570137722230276527255533177241181218986760817318196528187899246956998138941627552110857518813893847220264928363753771533746294920974681857138485091896930178052683842013318118956899635180971314232100611274738983181924864785864677571607329730128722616850059115406839862867774898592493727864936669533978621893117037688022878853495965655661414496078097909134203565547041836795302085717104667500164774607355653606222598038034401463450993005499168185599105440212335652305515429399950012270360748947525198948974448887412064943809515266298189466451511224658335087819886855723101198123667875541871705420088051001466870536145438238978529484280735472476610399381216913202742976812480010644216692301967651092402487292838496766096093328784756597944223184894029741682638652267915863044095131580806687631273301002689851713617235459246571003446765750288393020424236158431063046600771339810709796684446521378148320406693457918013301097842145040289728655488492683915310779842764975163290152361368372701463491081738819562980741723088984688483367661936975755454608988370464274379704752705285001564712259776270222574863161192077854393988757807130255229507616705151761627360015204125132249252473232262778820034160338323566928452128579097656877335548656876397694490452203230576890493146703122095072594724206234859648177979407759961355478650642389891385007743425135732197818238948999917644671075361893304375460482535019766322316356253631310006873857196790827254764736477385149147193907235120697773905955210989464662498817980977640838528784678750769483735753422548790277918109255639781488036674116640161645199651256973753408659772396346868030885531404367889116158246490711548298881051183980093794405638640045536948849068846004797506628959859913422854224793760994963040246388205138318299663118091167315371557451179674668382462463787757190055206597836634853742982297385859252979674992892002472709173122943099113138568897686307591295811696670200041096694760451028682683575153330133733031315631010728849397291854393337827946635766146814565688163671777418423497097412815681066831806389376522726488524618244821175221733293141668919746448573169464394281008732063505349543062378562786153415072543330843209416118355299749884179534688424327000513252857585912594805820551976615574894886986290640308123044337564857869454415133576466576390449115638780659591418053502533489126686742033080117600719741360697502235763231558095951664733143693197418169802287495884603697087214485793093731396805702655991423332076427050206930329770210015798612027321587353792714628545563524572499728398507870915841995154159951018727527120578574931163678952972946655355401426695470584821337069641122717492045233357536172309466164574459913467270416453010124866930971465909319175915105104481698412400625207299998402530263217205668442959620587523060917436095616280864914145707571764131334734275393029129372679571624616636996107220337719726310096766898808497181696021213076690409975072037241901468836702938538646848138683950937035454476178766023002697464780552004195197100661570137879141881602260375258007151351483548419386668027287845654210488710783439590875934062455824470526321546016012959068863730141395378057149200835652305344997922753023872048627320557997414561652485001827419531626709306981470595378533200292950254078063235686832089168249362839258726194388878095773458044798510345686523824439231166482704076908485572256007191805363207124960863091178479524709243884929942775643088885762085983701923439216037786837074195744472729009388502375097037283514153694391772688316467071662487555883987664278029446349965814863277416936423511615657695155568789900516620528893272189773247188282510899620147786874854850791788383857525470054464546159696823791176469233805951406038268824814535479302708476702985509325891320591797243301961386840879896670660291641965199967583876133798983167371727790335593431829468419133988476290655773481603945124971989371387774553466329345947225838431718043560398571386969647485383044936861702460908149600903721100169328485451787115143500982262090884035788772768564439915778625196425590283769062304288261944239573021533981020050103941323216044326856039941818166700243571810550178817304121395398652887808148690089283185178910893297280049607253016189311911818765710460954525401191386153746625655946080010194094233604493311416043441525356490793964900717974907239589738701505858396278554698925684891367942042575849428307485159775017029755831087413574051629961664846010373498344080613273963439113207448968686688277828785087703749482314079846785553237251172885833622316884804707439008015108132460591946503783228997110893292229046703853209827882345803851122550887623601807074153989405932508146420074611584742163611341026836004015592353045110558876713781681895921390212503789583769081214388968330348681606103220358972704289494694414487027315551781497993315984319855333592066493238537892816338666707590732473953320299539995150936385953708675055775543393512855003996024428749825378165111692152135567618485702386665754398640092776979370915037279950561534021473718803416875829712787847485347715509127685329973026218893453300996394650467600260737563606712893495161409358312420960243953941827735602360612837695897498671359193762635093441048500039259418710716258520436226468773815620417765238802288593402150532173188547116785275491361686557044464430049935043119032630686743411809343643575654529325991274307814877422249406988651307082330062989902307414203264533758619035232083035586377336735162680494078008780028776366084881929166376668854801349165544146056178300184820965889959040298901645308551361801129793574129694323039890374252304266100805481673410855134793820447985181471697909060937733133419097638128612271675441908738571000632920894861018187099481698821159506871011604790009988091554470286113081116233832827982721037701634614490122985392806611596087997679917379023499224702707067352999178787117184111911645588529595750822156406091863174805494882726932696220540713848348846871057275218005733824435173340180452189705560401541091410449613605832776520004969353740126737633166479307344118443389497357414545449996294094506562685444398234978698401642523836686175328411774087307256669365440963922786012660291185546133002015633568711773622516983097525633971460136636178987217934086924472225988855910805488925830000590336689516347165363836817867046611260179548545462828321872396524392638865285084113071068753156121636907060370767645914354796652023893310457574369198388276725967273315408336999208109301766029308906880710616918056986417224683767576683466197648389866465530725345916126022915735708655834739776481596480061395530997001261214753905690400296499072105473299350797112031735751035301472924117326152599662642568253535584548455314390652116902052750598532934199016387504180199533848785841232446181399836324084622423657550823691536320843009263189351154692505170623912814116573707037040793056032464018200956891305500166324737484120935429100996174807143215318424661053206922287597033722060717259596033383314879736309040010716052908884502209147055140105448765810684674599099475101190235159580842776867264509586201900174475314757344386582127597437873263527830376670367373379515742300196193456502187596322065280651834393342889386208766647517513977852585450958348390961503111138032961287022893620120226523456547510742852004712804758972156901071716349723257246698783159993995164078407358315124031836320686752513174760329072682115742767622881597359545997213601359223200058805859101132295839208748664749449134262471822764855313711579615230241440920211946571527684045900190679245501814952447343741234323992414699605447580717930309698822999878827347267926062359203530773962323085163872841849469654134373354568977027005853405274172422442720237250551169033530339482028159452671413480061244779635725832267464718182457484020971221559388118669167157868438653523260855873630140446839492470491682927629081221112798859597710480224772414250072690918596259148075431037647943997894262126933402243869179638614604777714243699606798993915320985604972208914121094723054321004468388845308277849084723488649993675749069266291772856071854770589362177749647730316658233230165767340721049710025210180975537873375175318921313812987429459934165951395137673324173881745651006903582380623721642318039482003726169327038824670937390456251593989088478180640215542615747351748987057805590787224158076453230465521510103937851520569627195233835634754073546454649517866071463826698903375748995285489234861893580534276790164073818117121066592405440270931578237871355562193979682860506174720451052470183264831481969832197408955474115130329290362702636673988021505460550299698011966085332963927107971335847653405376996029031048878872850069387907228369660472255874354345352659298023033421437889532559996669681342321511284957595770159878470514741498700360831944237740454147729571096520124815795486903915223503995469034176108632065659752934912849661069473431282702061066452237865741230892817220972359489865725788934012744410772693802286154730789132200498889851360767612418102925569659747060794130101304747651685230842985680421271908686693528986490782817655519838642557685046543774361109753085914028059691777598068415237891486482577064807657492828540824613073678589794339405313935947891783377519709418028352374008937997925053494633517194466572573268242380900355863003417273996069989607986910804450211973116676415114781645458348430296514537025675985072543386994513838299577375144846442360554404859529788150152817684293982748840469062302901325584515680130202321363806130511825112837476482065114287722958583688535616221166498368258824722712040988536031124071882966109788685058651589865690866258764289803404380313045113834207000640112957475501590561995985008390884756615463672214645803588423690276790485577695112704195440350275083555631046219912528387063956021203973267518565384931985842251758074081126529588106781186305295859277385047735265612763396366010608293643013375885207780141374045856364344074298342683832162734839406194581535907160126598615859464502013006232944523774694830642440238704674907937443196080889830878386910972233297513063681863366395504758510527176313711062923969112941677215410916664591254519646552737132610462365836136239159589354769194301086756209862762651031571449279938276511951350000047511422787025556477420812836885516021307939816392116036250160762662966950918655809705245476390483230521243057635435026402623440898590270079991522239544089590502447883836911065240202148291102368840978732144971658766269633217001867906917563228037070362603685405997616534866718924867433752231659940213052052129206885656399045686181993739020519560943271138327521578050303897760649807689596162482466399001395855240625249204731338183308857524620508567923193573962149691441786651363294327870764149574137208504329814344406762527340520782290736532159858770478924838954153010420005742932235567274304516666923614793966270832860668024833164278579392359997895177353230348642440096830663042935151977210951551390058516649522920741221957198811473108066183457494214458397463558014528475904574414586712670112990019494256486814217121847549779072381923470163741014458796199582845370528805539812984698781231542255256787169384779584490629554305183825677651940355194499794739991085569742407298806659373464112570952951687845585549473484606750979452192478626128346082278069740298554878802122192865238711816206058934792985867786388195151145945702600301606532096782997052129900805107455976050242039396481267513644266116201832039810949381555461760275927341097810821995031318822742476175750196329648408971070511427735428906962450167423410986632552889314119354205840088423027435871632403409721231161539615631290148384957687828238746111425787447531599338743422497654582801541153602431470167920270306228793220470990969533675594837444784131436961318896364888958194026894598081860555535080579494842917228139631403771747596122049916843469772469391788749014564024384283299209253459529175259410773215645491806496480096062881851235172888941866291948751003023030790056376084587063904741740129223685536116303322309370876413533927759278142587326581357857735000842867133314292431463769831858639930283096792585621267514040059530891498889292046296148638474472221519711474788369925080612733035950151629623240615205286676614894678954873635384756696086564374698024606436968274469005019990801632199406480402268051711398951670710713244942861144352310009246488576473060047389692302475996077341612430006568501945042414906520758439121630398772122392317338679185849959401352263655511187790442231635516815317080303269651990332698258833325209048498034893574860876298720294759788819952940876998339496014737397510429840106375096320304507383576672341459195420351101790022663323581429190215609178371289275210436695840579440161737316484956565799012762482947769952148355971337780251417415029102606415837439180646292150663625063352409911659288233825405389039939566251944004088648656194848406648777327529126442213759960591847267613358440939965264044190215641483475002986244808132889364912485556589879306646987799346869735598321192322261626206620615203991991867551583731999295182471187698579463851563186373675175320077043035531891108512013334525239767039908597495973585726446790311253725232630097815431506823698392971721365115802188711260067643734472151705842570856387886925043074024579133032704800977669691406652473679035055997343144842056539640492060502265422963722158143221034345696178453797346434065078334691400141200073360377829960444030602859640849902258445175483139221366551865889084217070966327625471585565962082102193596835115118159247566127680648267811352637138077021491190046882368505346807553330399994630772825125513125471161758271559525619339739632717913367694808784939473050405686812314401379920333252093931882955341717254057985533523469907755544200009646894264902599806639392639846849912653304782103002490424769151863013738832706615375814259608813048421858808534221237579834393481503251054823326425653923233016169568679572023721304308319305167557134584372468004110409547221087285415380614189190368614119647608509745525456563419213029304040229912381313567786156006449679617295690595331802115779750325800133503327652258953320063040908652751960805606725298869053394048300310988992010252292101745467796614153478285505947515266028204163687364649615356152527254754021930050392224334509129573383482554154863508631438093216524848228774240301183303033492623475903087171335488987574405733750012986620152302590083016242840141971395803951614829844039429120125405550108415789256432654782329679782871315573183631837560840335034700693952394027801139015904891771194219086160168948765329686241342551582238166008893596248684458040566169533850552634936327292866164561630291583450659421007847977198246647478818002215720857734074567020018518052836930512119929287295734424901457671372489217543998430488265375651412351691741492701857331430242488359789780311348369534024402707725112322084335675821307706433168250794731150467618958706672897340952870633035715151239613107581768313311044071895669282144109167407170279504093150482817869488261467835522451789963023285025465996274586868878651689893348698161331340051685340830974111350456327255436980026566867330019387478515681228660235939622457857500754420833207383219523622064606902886788051778879583376592147223570654284740161986502153249574710444060507263635415778418507069567799952812999626652490024571769099229262654817895263856781879849654544571407436468585672291192321660825904480270357699080325648338919228420428576086523916946072371447830752708827620333298693067667383113276912834846624905738261989267049274145461298479213449908169704184860045653359214732579552551297842858893198259302355090128570878169558560686775368497521642297157195672879197466143708587113563754275612643209930819957903136972186360534032383821998237571811691164973468231097912142006036653470733549330318297634969810976857772288063093249744022825853880949547760022503810176146789484740896452309012933647927806425844657148704704626333658095011282751762577338588911419983522018451358788343356320017338443080606437941281206218715836257522214513597134708883169788294415411015365497580904689373375992489075298043766139240978362546078213020494109129093670693708147295523958653852269827033704833026348505298164948650023761140769167822927053518741245280184635911906523222244666610073557161417577083790721816858090253605156871942097469429563451101293591790151421504096261662845203873719848874125302385462978558804307894494060991304011698146581913328555722233318214406198474967584708290347369277414413408091965677898761267506869446555388638442547076048089978276284199475955304722744847585840918150329368961046442676592796090987304516894488308559484987516699297527291961137916746419897150346195859727626101903143715404834412607382281514331393551942564275856389739930821733312278480235482535072071859697337197293264505469430290711031047023757890661228236293125120691934650758890556861695770905286903367437639134609372748393300843693532243930549365026938348850897291505896293424138056721999429352609988659519066047616017840504788762960709201163955518066585604839018238675751892232670801621708689650912977773884510558312606256064574558327182999560864717796966720365399807695939398714513005577503281878154746190892279812218250012539971696755791123688618327262171532469815050280604004380028903000695507792844278863004635937569081644321526002376820281333590084551911903083154059318898525783433502984776920792206909339796647430807841448484393699697207211523484681945007783483752100273580460832536819449287124190164849373384410242555184917730174797633460173660245524792793519693765258684966647708701803177714818505862805132094893950838573800534214203736453896306972594060268646410120201950387442911505526187034543267623274161958873295397045154965688988305292239501907889564956685996804107031056538177523487302761782075836989149363237811237643580958014941171547427949061665426116292568823395196662938393885042427578712797648725882988102042403369070579744918194056491564350183811520341248784917327723767940392207020076889908572611674414904838006042947787970119268148826258066319089989538771073974945623128825372617028444889747574360321959483448459658282575880046348580800239886886389922051684103620774507082717265665996051962629054103154140182595706938605165064589070936876289887067861974783550363998157661581709758470122821360017515499166460459039705908484318273304837678467788532091505674331251133678974675180900338686189047208510034597941258415294969380147884551499198256267609200407082105611828634350675787688675913737633521491893189489907161271970759982529259194792058443144221201451093792189520011462973363953110351392665093277678755752033712810041542928163790896139546829861979216727987024188227132321624303123564370435965220996703108122507735780893367001494639527094645176477343174224641253030601622445573632577387689559351420121437215901216764602440314552816276946550875950267372588543843853672449059879923146321029008969196519646738434296687948752545435697333772762495350511254099444250701154234763145412969781225428032287720537827354097386654842311557364406057348986405439896505836163367511446615114727678426092896815278414880587873696132585134795132427882324197999614100597747440182114323529753304879080145115181934178075074674286354484358010034601735412812267519665126886810432138625990225348975238613791666810661393261749196905194713991127088166315773513708996647114423960449543731555498929048138192416019582184349956909355622046160434775613650584409547446685475007690299325167681034345423789880246084668066279012539448442370636407109540998126673967664030061151068960610662284518351856153950136925398722576002493278407374429952572703960283473143833563939209916700874388123549548676287405448273383005862968996564969537097866289280890041093588413461518718698336221048980861325597001963330885196425889341941728778914328025723507721634363499324252128589049024861321797703872859548526381907074546651128060035589365821248731054823274336044946950090167492977658855791063255101932527925656756250687160200039475043866552452029576972926707944229357625985845127560873390918710438332335706678070976125291535986979338418788360496514274273677048541811671567031632960816515799118281172242760827585262362365621238926803038241737468899670359250738325604681793628227814694636217304659666304000977496275404575146740387895282360329523247461420937311552671942078995276186933056957030833486727333482597258796074516809678294496565776523194133541519623549680658285995691372950630421066469622652471134512538298667136089477736089856036001496259294304797495973705242767591703381089370988100172660547338805544195598857822072097889154573955903005684160734676048568132665075559419563443843511381767975452276827691798151024085336336565032489849237137904287931364435559653616766023827407168233083642121136892518014264329908709450635354501758682317681989520604791816176155279108742943607677562575311238525227401758360798857243259950715534141709764598802982300670387153694421316587948402380670199285756384691595467732680844902532073503148023741893785609573027716048629713060517511843444925219905213927126683158337835556618676036573668803619670378214182920341504061517180636552666073011458278558211078080211649446885703980134747017595365732504349460812540957990116215808525861682997145159644113744025198749294198836769074716068389730012311676276396028893798546404897581477799169854811636032993970197978920902050630854631682811613635074571216180650500479475122496334638749413750187361314673863370041601259517013778084442394820920894028449393259674810618728588152025696748947887955042457348984731826910772162186278603414029603732849722267527129726058409385514322840940237593554890511183686420170825919921329871419113801442741301464759403575266270242122658334519645446263037219231743645450979768597337051183139467982874517054710305354968134999831368860520798648936725769284674491764039079227618487079353906144320331746556180087712853510483670407597008543630447066360512892084835095246478892221711185249058693962866305175044221590257564324884830410647375560894714717793673940139318436868719286905754748163714222202459726050043652506477279457580843749780992400928802741948355156579190377084889383453233514272483082890237136835583760182845803629102693882930104020753696998664800611330970213408904773820446573406037723804292680816152965315940912778441897819657259707545217854797347658804068009795168073735980114845528579123354369360272387138504484533349436979253444770870177847890776562136242055412846939678275045127542672159260816061022592238852380638358142890443598606420727523146670688711236640694206632422437628978598079674016724842068083618894772358949993357313783297050656421092594068151955247629940462178228181107353269448167504449656141231458465720939780717350908598486783647904619500789771681887981614536786738290085040744499372705284217623334176707364679507999900167186142453977729148495372251958365636531235009698509849578108271748014925289183575720954304557850081420411876803628499921453981427856365729825648333765330791041940248066572117273579993245770901025158486731782392725529359415798463191518881717961102941445141538450873802052747176499661302201520340100725752728242001662441941301404543496434686504322274408951341331605124454659451152303341882074811229398178165188838502687619073223683553735238818256900929884652701927649010726979919893657022927269081257921617234498589300458609142442228224706220318338886981986817418906801781945077078896719374835878509795653914743510940796858092894172842385018891106437462130873721872448849775609585643934717151477807591095017856235891254732169744042690478281766898167653849263492909617839158410680474495837334993339871350428745370319334667829044695253222002901718608145975756652202435547168146495564289834374267878661754524538788074513237502866938235649695908569113303979047566097056101105345537864121578459302062582908690340899745018809401275745334885015281276553273487604242294367222704570865283479910259080570826751015274413233104435639202303980154940390398046188526852715796712783840123511467150264293655576836058334681586497682480787262939490817216535490915045062867364874134134962573735750433867570760855665213371258196762848426332462767774515420232173321868042555982333726904441982117109360898157372754415774216967189204210958494315661625572791139296594077515214898451575417971693170127830151030884733066697475576489236481732257308472246614932268678131347133555979170821402934315756334440185792307631042919932941058358923471994874288956367070804260753576823898094251870915631217520691669783504930413358960431588440776107667894390996835316960171787597298844432974802025574804675682538377167193030084497944394184465023026843229738022933737075955781184558859642762764956187113523956318300983038443038162029224037930746958080684420106652201711836727713187341021115906466618182593118937229080802652297217987644351167725067371597019219571006220106084641942431067093732573138795304091780370782975906319322202667210179141438374141310277887840332490410573119708290996638112153090566392102524747325737207404538206988319974115957589371787432257248622551902931707200430250363862746337964199993600237536161440048291101795343661253078005321287111868434774025593224840157223693465619240789672509997426088831051447562215268027136971785656054000204646413821001812756378676562022439356141787406884534252426684288136178096278572023492805402118852104900276752952679279132093336152023509459209962419367188434243999649247269520087646023281332799097157707186048444987071720442615347734881153184261454301385843866055901020997291983654378562159383057562685884478068170557033182705831679514803744239440708871610352908914903567094314664132272991148217233321762866571423874639014798814583812144708880427356937374721881896612773032924212845729227720475945141113600441451501708563856276115456831987388018758373422175816830773005728146020069782106369888482853337997393905406494244666678223552163266373369432527731672850819534944645182495175696379264732137214302219338563770867096255745643633209962733683981656488168695522083823874233608323554097445374297043513451149452732290404441735267678128595644283459396928385288197251617295937003546877587771254073744830117920522871917743736977009004035836577893649371801691028686210817447140635167101809650982249402882044522606691786576018055980482965817003348558808946796893588810983966467751946239095524686138752998781919456766874006651721279728696014643868993298877666743659159394664610380462986413594337277291504383696553223803016686799516210346612635950960259259848033056491318439647913309768555061863584892373289616360183807188947603761670225387050041611231836516946334606458475754666043814188629813401841266238887481981073574339364835052799074336997478707667534017551480141431409699855642589613348280980176527645882770135777139284680788792647799353244694767604319323129163665067198653711177927159247977762759040388154228055825186989793962730505689799403132555889331750774463063766544444530558174178597523240879877314362724578284719789121162799474208178618687979606908526222347747599399192813164256245889478017339918361190452694858878872177262625205048913361247916306613142848755144286000767266219522216526674970371722215830260937846562456520531341053364214849754062180886476967745929835106412918973604424459398206009685885030720910355853255124457412520709404286442034988557992323725133415390955495378994943920783919493152966305101244426612074620836950065387910771646207013015791079568857558756367248707139544308560246299269955826329567480554353340342014737369672010176044018482596544246584842783905540900014544569712772444671372750863328439864749766238307141719759571042963391763502033853312263507116068796140669259874990402210451550131546545311310912794193606857524856052809227889574523552033977423606804315804884844172452475010054549714767771805617639920639833062521683396908080981943687108171219585908436445673895884988435364992252512884191187511424662506797595417352974708769626396032555640671830920484739547135201049228813971300858150764300945249600944247704578466052229628453708343552296025206197804352108333470212753178325329987327370879278784529443889083251235917258824991798035327995442046978154582844733904019228739276805528980610051003537012576004512188286943394263072470023993184751980695473717595392104044940117753374209097479224205351124570688627206930402667838730834072789171323136336367613466862019360185494975019313431687409600813149299200568777344461597616743486364433548265175869126403204644249234184067419412319922147507198878087097838130555220799918389303301324804450610024996978621509354952965337487057814339601223796841723040672597230993711909379308076337497566005373392957667316820834522242957130374870935802040758667058481725510456493336697461533303449602678800859526817111853843983677838676350358169932629518906718927709747522567337160073146411433702007385173446868622736158856688358298971773997661644061962708517629184138837099320267905388312966644248649573475420620078646838406811022904620575990413092034698305924866057287230098736012527062149043522952828389124248019949333947134399106962587358871498698211544808242599960836870682975728116752529193043256225269720149096128507801467826890235274375553630700713263414483252051168087007002825314658249194857747550354655303650179025571208460434854761256256119453096434093601299816952451458176094360189417733249110546884866523986809088207499446367716400412719224838806703851895022948685694258394860812987082704510744716852530042841287212834813347956739268871801129734741636193355671693094231032536863811409248829588756166285323880856401452105764172033179486373247353991523111835964495397361326715588961193756481894135352475637357612547575963944330093732506489093076179847617186662922204535850855367549664186628846497799641420515447354476930593745368626059895893232696708463919816978727424277420913908135880317050878501740447815284609617316619153648526574541371175874358140023072817541475161607169415141569232849095232051303217445970629042889314652772799897715336116821459117514653969620925798272520613908636925379991664023734390114564484332539537038824684019811853249841782983489348689025338485858828744362804176698141271356006209828599165289344533330136743788510368050274816710770115690488327695092838775719470111673567103315532539950649612272644987299566350056234827170640963318283149910400282071316602145081986038378822066670291762779574671904546562109632998755481661303685250874050516483790831405082477150551523733222105727861697489146624054065858550998735381849821249321943241409850700478017516815111605133641758429432404771319192532332100616548854206354550556636428476362616445945446396560799684422958225981406470799271418380944607409069880951074123821156523016623906583038060029829690987653936662826711437651312491205278712908096466207708546404006906415016245123797797745776547613512221084118398450931930966005306438920127695322681573228562558620552092717983702465599566562973199116440524745554692777320411704769172697187141905320113657293306428870907130170304655153824030771956216308881495670522673731287908655087738587370728112687259282676873506357393144906993095772153047480085532141009468927985637877612269856261244320737307001396138213774293631391610548392194214897156136849202780873866103254622885042357457118667586750204852439896532525337791311437956552500261330560280102262338071603900626178849183556811463442117930041182735576181597990083989921623300198841631281075545494615350093903407544729480911574758842936755249804331784365871714868083828464903761951335805143067553206225524481616776627255402290517686523430178552109413210998872089317873201297682850057634046572386653842420877510772846322606389433856362573544043584092489661492433770745551670495213956168817616698112988386749266661355539670308861139341152453063993165768373043381810215603919837979843920692220986923435495051688242760735662070030416476170461461562322042444347880524437967802396799592349673396236090740057018504082677961092408113147671803905227667767520782030582404324488438516854717297325161255993817739220445393858064587556446041697235314811096996085350157336732534117548397009928674464414477423730262852010703143953603637960737107620942524205965894948154770633013267139900209997304105570018368302561878888897832340363486171201780068896142503652831414611479005356058302873304131783478895166326777867669257949671594762916053625340146468745645458186326320052904064596757108831920440836374868498858953413053403799505261586136799234269624594902317104697622566837803705494155446333816036822906938023514231774380247566075128226744557468897759888934513860896106016299742999371678237680654269940534473790059891389544089742495787581347368284810516256932917325481962709403414259788428753355995231942062182743076596609781404033072490480129086437049173818155179640953786941994317781791997106863451373377786343463150672983230507926639741930450106121161739866610690631912892590772045041923644603849505305844021530676615438404736123598300471448621962202752813814218707174990714468721771409945094438052657457229327229975011688608371725442449251325542000951775526878975267468834816029957067808181894456520660400147454338758169186058221344252153732107333998166077034648989454279859093085896447002718297513488115883526261471673827938479431658896258224286556287675347721436602833527267250017644428630631374865808123981471148944186368972387707319464810610177355990660849050470118740113972051591814919278629415056583773122208695886493214879558569379235350834764153273657552940552278459316672209060856787587776297087100169269291439761683081722567369539109802580796281649116670966808620444232573165976633025674059407216347430441476469261439431638055233891906923031147860614191863843512333854105372566828769423224844323610378243539143006047975602306227692043555758942379401901762609065244198318804650909142732844500138708945150892427568594638437047182688841016355446635729393102831846317258919856322185939414579578877574655824930644687872516577362683783174255497741115290936193257548390994019084930487786164625908619663662510457728457317450104594173143732811049267267474635855912745383636095133643006242432010638988549105213899058807806830324442743835210710545070592871264097160494004732889822189824431340030782139881217434735890152125384819377939698302999401369914101776607359332322302590630328690552404681341419712653399252464837580773985897692083722151948802966206887071076125530578087222874710576058036451501468029969472526788190274822862420636815047969580834580885895743546113476729177219689923685961415280594300253547207014387893228712862529041496335835470011317574253773064758225576216335150244161104651573372234909444638186901469879243891045967453506744831557137658933535564345149754975409903323657517901139290896363766022073172741652832444799123339959327408426159737873173078744378729439668732252588255315809192805598797838223634103014859017389987070496771535890154628246450950549963217672136815757425762570356774893155473167781225806053907629470737873368879179775829361314632767869650097937185007062741621422427888824017902059724628528362435336279291171194124072838548529795617468477079958800520886852649344093446340423622968393284585017817936360124878913627574537141579010687056196083622625224512306950112768979376981132034312795417638810621465209732671233640644542834036814922383638259938751292356821221563635223176618929847694715745209139219854466635239452226767882188053992501916358548719296018032315685883280740718565949996717987727804074080477571102048569706484574450497764043590087484029817233686519178068762562711136485826861963400240276596289108759356060916865078173791567606573223331154019770105292858234651766541424061547032474409300276716642486709701624086235148945147328406636647488210140175593263410435567739649943593971654420788396619075970182649871910830157627512838319830437515668321524281454527493634182775131136354508525512024951703431937809546570328462128958466184800602557595319782445602834111918148651704860841757371414604297543135152161195827641643317352746160420961474603425796667189822559832083861214506311333703204636628941154691547468626574531116564262901193433310427292348872269131975765827897627102695121148470652723009535343583878860058980171416273054312565648807153208904332926607476527027663206953780915490588452815773601072091329301547650552214523034702898148639634818294485332520083761400646150760727634357629224129040300726019880009909944204609239851263567208339376023078520257973775921604307341468722963038271457004587472397442445046578683597696693181555443947712614812720126703417639676208518763225280456501667120497964217904415578251216260061135374197540007348064882903274163888188642857235393052261037521061577522418588960431837256952873716520651318352980172206543171792959368971932200463542022740222054202135804708628778619709990620001099808636750906159816806968291032148658999827975126733216254987860374482964364406795595841690579003916593189026853289047911252024230430469033973456286924157411516776871584923487100631703174797745049259425015540698867832567971410380955553860340282081020414719707351114128089776381175537560712085390478577399932635505294555756830448948824641837726517542721859782413521933173184641959580031376674539169002520502564315086927065493402134265436600727336485363292486902105248243519623964725360141083319419362440554980560190131722498884378503681841688531906193207473796457251180100256306873017180751410370264036368981354907385652548507586956289705109478147084274431466865329350884034306805897145062884619279306529336058832489023017198200369597322921075422988081721112917390578762815220947932399463104969236508873143936802818746446966148349492072905274902187198343500483505969371826239512158729420537342662483713629513283299964426358250058778162703499667240808529412895871211677059360807592529791095644352629145515452300656300210372775621805696557658976650997640210839625005271674283512836469333092679540918841852274126478242499804858977468562965174748892896291494821038498521651157991398197000788449715422551396824596395487709593943373709915636510343834141492888015299934863229330456518952049766114203155365279692372521749669990986213705824270085551125954729883904925348751679481196027105030142752357912182904291997416512010670116181663574460732237541272643874163164468183634072132565514543582329672598740401092049304988812729487841539643676616669849007673708252129154410828709763114349428962839442184143979142023380306194672593271453260632615989286344121168547271423069729421626106833392073642262925905327488709688858554282283628751471328246838401220510083371295214988794948291288024888263901667546025762648524239695671119358864500332331389789667197036613563695130213745888492976441395879352663449898942737251512671064353480527164947230523308618491005618445370761323260349080991835037304651557007339270795216079143242085581227378304795319836544768337330300396479473076487299247039269238677550445331227200266286995486191016378133535980210236129346603903731541306363130768277254907060132638967008697314505104825649011389301576331159335862000314116066214149628521776170932829944063893453030837878950708439503099260006994663202574598834139488212871749887026751801063796794038163949075440667424508108883529500800284849331247794586776363120437902102687887008950633922671780759632638919782950851756783502776988952500222415384316205365172242816036658010061361392697844993385835989367367793946839479248490656627112319390312147301742819616201639435693152881632273649208198462888824061254807749965712172481229731631946145258090107551544886450758109045681500339455496625740726656580243126949170881889454616259109213068774871693237228258156005900028408720766907345605167777956376760456523360802555079718222494266405042072948066650330582974106323389039149713767226895538627496384706114132279846917126961955593238283533937890162696457776422400117509078117246253458828419141536065083027015099413980927136106076011637753022965294052542891232442229694569431389652257408004505971328379191873344262434926314158375397885199900324865642349868261825247849405279432639307074390252441894604363882590461260383493905485438654944590249267113845991130369535982536931094613480018569662005533925115912939392548576507131063746551703562036527921435548330750673827358329974610185578986412361574075240667789733903539192520167928571679441407373454724449911528824603699758951583069804808543145758659469898307854841988786808424048590014378533765561269995197726998369024433945263000558019644215807600290588943258105882420517346271169945457834746397727707755719522434112806535596408695512025749583136574929197321132932178515153595138749698920241336759970039916010979950559158254193524096478564437116013833712028405939406472861555386314999602852590547834522487010420248397098121781255251913545076177074721277424544344885968296636023432806305830218225311433899737913217666546551511433400183780204301368310295640396703191641999415677060450458728863371224424985722244698478911175383169114121750029229937181416749843082919636784006085472380336912250714999031467419517218319998297571490376173786600412551205395988622236949820364656300860241352704841626187013975240590475297024270576816277675800850431677657376104086131337412805353118833488773385532818535610109897045287916286006569413692435513274245457974611948826185328923781574913035527115896149531829204662952758440897276460704355289571104045767961893637502009075318153800250251230688783904781436606252193803267033374745776696232279227315452202547159358855569764958843075168046163169019407269997926145853181006589917107986470080179749793956449585513204365157871839243130861380958371080349066266008102939188667313262964979441866710409028929947493047954505928447415671980484241177798470799166587734045448309061896468804699362945015596389148835666547569163920468636113754495141729795619251685119808334322369874801709349880169635099984520415648846713545367242976281162299205756080567288466691986183824550459234829201037068990593715107764764741085691991076144353833471072365943815564861641034702050215119835897331386220153662505957664497096853319197307354919621076065807631360659986488396858408787264653866806090153552235153511239850796005241457262900523700747950163743512365470408175857067239455246409786349459259367212533833370627117951390907679203559069600900541554269053061105940348095635490092532758583708487854839723914664765832620308343620519958230316937689121897081143780077098651246984765941520593441314532942772097181471669497060026903291055011557225151122686735214417186046882644418770524867330290724438080406595419992744237106652002874546488307857366678006238513511630903402203616921612873476601599205688068165557068855649201009904470329528979698307890825437040211258519580207865005293466678686058966292038251241829817604420746869580975139048637049741917896582156369221108713332759966996045251248410488961557360067573667199959903192316471978111378448140060299935989821543362109981573883227741574809979490718789608442538598950562374971794374556208701747912952020541130205464315592329432261647404182221331477411115942757659294058964986720750984737114426920390061170408542477703775044004424788093192253375848320312757830185011272950323315727180293593830452667374196652015837767115473168543891655840985349477695474511954504789377125909703418524724546324007144307084203100313650251121992289550579010679792418313540276603315602025860483980906422429677552898254071683233799665988521440911243543226219186140225084848208950468939181940791455685956353439058460062003858691954291162085213358524311157886421673802649063162116192254719438628876242807038302770576363344609490427782639315567065452220872926631615752945469472549925494676075992524535019293173636781207491023333387841759164432981765572453166345414304557858163001556141855130786479359780482756603448901980435599697648296364149090411987913339779977644072898135215523718071307523683249481174190275216884925991942836991930620482469230759607721830264095842802857710164515053230014505883572168950082070696537583415548225291075962976611822180487341262313355397574712250698715947485975355720368714047372269738859013782384289203519528718667899203975245508699543778953763376217404225948674877576343722426538592709302950738893303611093647641075867768022575857187025081062631954829749194970692940775102398425116392602365354134582262071263828372319689784028468297211446828045859554637342705203095752905203209065584400569659477237682908204553544130408134864697842907693104662289716016914162663315574575331155987249893476956891903043472843956400472406147263271321108508925621065000299819269190168746577323480983798260204452970088927419172431421493553240484899077331024028762984445126559924803576167624270434410134417121241543569038626871448639363995832979999364939986515050762351137717529111525856907222507405975948211741352473821647088951351500603346362651053340249203250431033569665115384657256710215794111349242140801897527440573426922099415717537605812494969472151817474782187920106001423471657237746101118761690988414088303157386775386946637789409833796945004455327554278130368176055714241901611539574027039156644095679770466236970781181649175716002781423667119200372976650060540185954525029657614740086337834844169748646915031369831170809698444863406658262051584232514795534269045118841431670830898964760994563486512074726924012127062631915813580105651065247587881264994116632997018950582523734467745248981393614740536026785321543439621384645597481939330743178818704227008844764752150597692741701401548597164098537972582538183542058087303805764108555585487154323769526132837649112488232759989084016167615813664421028369444690023470065817461541748275677254773104980556902204547959668681792587253845243233827877340462510019176140025180539391434004627931529691256416970435451795653093845803724164149398510377793808563926087985609737062114828974911937011712603520654153179060817727706132291868378714533226889068598903973812604813756537742502040728032814779780834820450248877264752505322868770326227396638601913619295723320595142976268604013066212748533608768137227448816988796013490725801424622079904832402285502012993884737021039767706985303727859500563198306015622192144459811619728046782077104642675993385181835123297559507469591410144888830282005599232923581937216838805960126679002193447570338719263716915696768302315260148530434665820495230997209983245932133854494670513613896952199240165588725230548737865996546527521322313642863737053987964539028773146107739695981885592957644003818921813210310900480480464690656646850762241033501571882517287097045688202694538197910930736663173096151935341803833639933350895981694495472705355173703864781591206867614271527739792636276571786191762297998693430185657511437342333866474369121893481620493008303244016144568987269042020960614801018848478308363351110745574145204415843803497847992558167473307236634510709073240800989091830712712186259224241461463185602782434256677281236067910391977428289164301859163819841888894395844803223546102155862784067122457289050324720379209922862930193389646775543258939597411111294134465263782650207678164955666701164478308404889879560124692111445470285251535760608444953226356933320459746363711996752804294593983628641036779284490409668236678075595143416888419081428186414111485654647880695234419439451934420584343177625220301939742119123361613849312838345157525403970065852060613446863606981814595032351357254967019024148025131520137647532462869382728218785797969216062220543397582239397046309824869440462937571854626251729966122816626354971087421591440663410343556083325352633489461657074117446739126216406079451540349305564405969519096695583428678252049553286661263924529033115677429286006959946531322634770851537838839806487268653125247705997948624335642851796843585888426325461893060626372136132700632388169090633828424661596663221003999304600882045144605630552819509963773610729260559039856677798834968519376758801439838319283194986229171779041154171107371973544194006343013094840657187104028102076754266591446209907831734272138798176359382935976324733883478506899217162599364370078825199255337285214094735656855139662825425572483117234116915205306738413335890652664256595952656941401180732179193879754657334459800788169536925138523394441444207799670207730365195589133469740102449615877143969446445125323168317780323764981406699311757764589681281425686593046350871776388931669839502978155300028703688130498542503412827894572009989631514366032953179507936416546543817211288001469819736254783069065043864558235332889655174210978040903546479309352434081266076678771520076641691892027526797608947785648802654323782655672518305877348025291634912243793440243216003566701738710611377889567055243810711358861652658814892027915122674262935330260918722437996567231342121676379543095872563821527348630380375664920540784557408067219945947897464264058955114945164868660773333587644157838276257420985937883564530100589981614400644194983253571577038886527975052724932868169206433957443161480514743898135567344688853535219832859460835033864719378740588676268877384552628365271835134609612691853027394363544817476445691501165589411638274873903205880707475649858048061736520753000085776280958760499998942552508592579245384671517554951152573821335817042737481485352607966728634471770893344267026575902748492117759036908355976238241257438411663995615275188196770157751158174040781728801137213886280011480929622187518031093098338672289534067757204942514679953404207501764167399991219259762311358353708499070685125731873962960499928291926150363403428334773194293085849851090626952715074601698536704719471848333438387574278381237111079211866632208151258988163600044142340763365176010047428423947441985103141200059513900920521237207512351117034423713675705666558026995620713249974653887014901537100737579567543339094004923029314149858833655858422967613679150320850987606314411222736416181712284235545352315325753138194538811145594125766777681528102450566907842440033985687695869603557725221123523131658565532772382923325895875402152119179405923405001397567930758238853233637267700604076236395319465978462036203500069863710711794721176358744247755259480584959074028041865677390945262464852418577580546821184874181909993142956678682670419376284182146676781785705070778165589247692510039309514540969302018031578128408774698395162100416592357939012194803351678704489278500693930109471324550358879333226871633652276866034021999793546870991642786126557364027586409009218173686318165654344738780788584317794128943484006615762598395105862493323712364398987110421157010850014511430377190321524292592848463815879860194471296203412383011301365631855755584272965517677104219437389580700787453416382123624848744626266720728278811865043027613662871500223079534800968447819939880808087383430522687965081825485478098925139851906791287542364446818445579737349910122826785676840596084769437058451654221199262998936041263965707316630771245170623728703968376503782769859776511149335939248598201091074342503267495270535594292381285690388823110862267169786370194593045424178591454780936721447911038414826853913214884919223888583818219248947970959883641057603505550266980325096776034962590847191070926633733951260538006711964374459681248832689967688411506523406702153673059971155146710645677973273348030834855204355333118916762897680415670153223818082681611292197020005409616359184523744602925594334213158587214195894458684011097820575261212891479611393426682050758646757772713548752613639115550115122086595737002507141370230178727847365311701957504967126366211990309820531517158510257200963135179604821459816745670718313406780109654691676458455546008938809324778962344203444106285100149394028584001844225423436392963805847920899525758090202670418857126338613476715967018581709040546159046566143739238241727451813936103281079659040073530175305640141484751608740506087950044420258266611245702230203539528707879939894308451335713144411072270667352814148696488780141380032113073615424261515319060121762806712024585218384941903337138516373335988960070087886273263349403650896627416534843378527428443921100589020204440596872612547630654077673474158715585598425825699064978413498647610455603613287798787694909611201369606645116551225523739423520488960240556890118356476939290507004618807603096836373776085233620861639117062378197426439220722625129158531294236446522686786200946636593347076525838396900426192775434089219085015631281199923149318613575180584001476002828399120773937700238824553883208441983663096801270728549375294106830179225354436593236105782315773965467281083823196044631717912743513130938917969806125589228908243886438948479270403891483434198898765774009909457200926238707484766038074617802273017960514134363172431462206169499281896679429532298652217339760215853565044715519516299655668555960178230218996843104567661361986956949381230899153944481784615118919684033140151988428601151853609356026368079710453967546297144471933854355936587086867437030226865416630857485626901503056788824667315918546272804021289685432692212070100173178097354973949000357478485585070476015955336323259576362667838878760564233206275015042120815614193407607006570025916000867897472385360510667001541325843550563198700318001375584714062447120004098785369141663963499540710825157864202475538998666720973179347942785955428379226981460439086882123652180597824883368560726451452497395489941374956070277492044834030527702285576302330506469769293060601411196687382686019773625787260488815740962995109795109794886650246795633113223235818895605032799840113925582295841345069644056133806091268698216235132262355658179638707750060511069068983015692963863838369608837646749924124362551717403684671416590100132369924703910994623639360771926022871436539793543122398920854962880382059347895469769469058303361018357558203964610490751622074185023682515769837071019345703469409349546308193503768127170565452318760851302097196588368427501765948378243107653214884447828543651679049793317068534870727183270158498347213025930270279395393270885413813039427031058005452307483587937765213052983596479540709794643795392647054822698658334195442379205130940996968703441414739431078566289851830230533730025154857667024402292131159292451378858813440527248500538071758116675530895025627752429286769790763971054699272887662948555938657350739569960497730007728938957960564836816287888156424918928370765129772204549199810274141257961874366159614727190610130329842084013012506663067661569142781893329558717465688944073875706426463541698760811554434084557031564310308206216136704425877842569310068837021063718612877659952611926598358432074599549922451504301036728988833481233123364799726100775575263468528302380421028526057614784548355487627631133423911151636811056334371642839815862706167633674369105872793021332977487635509738877908585582088084001849916126218553897130636882909875396520694499428885182298175368205885238149285501099419598839873436115284102476842091755584131681621740779790528331564967346368221629939026247466952233259820096578268382954450943595308718405499694112255363000060015497291046758543393944326929859040021472281550215082794073936941465341190774678615254023083267259659762186458236153381072155308029771992808900219247778011388865298590301200759000733132403970550549177826099206264081593229818675695486060899713501629571479749269173287913606573288024634456638580651891472658787381401928157260200360555065848966505966955069081320009753164825996876797227249717867896249139790123303525676201850180685859260349031145769634987888226935877342805008181858518184021933044804572101191731504637601410828006978574389941490128827022256117171289806306114338704862580765731607425628744326304283136632977206469739542705462139052882690053041643682306126350262998469978677313620820347220357112751818156171309279147419880414882463762312770440409327837885196413621001322458664035048401678706205365354249846623983436639618049581540916171861343800941775874773116645567031910725302619468906089927246874206884774125463483843559748210295921608047204250029417186079418456452774015455062678245092519694408070082555235044096728346683568082512978519512406764028767513392043427493625703798642398016104194363649931399276549845185671079916962591096696591435147453244892865024110648221518489944634197226492965774705666279261733113777320979445514394505476436069305678556395346654343677527087911178730782089600275167785465116793891006056619500141313253707828307519322021049421069355285559122652475750490519351024886834269894076768209374817664002400563831219274950804540304751688539492334209866410554744759704526056149391096687753321977698140824715539975801990851937396244132069960360920545858549472794844853319926002784860827136641930088787624555940516020254049489005287496966380419449726963686949523141609637902337021003804873655705288732723220431992262998057139686198977946644850808714818950371330228848124343580449087217655842631878943012258987578405771215102891169142201140210606650910549280320400143732532965824278802775578344886504025690887892340201791139984117450843677643821470989133206521325361348958615649573003898575592808548983315384307912079285940583819113960779545468111359080264534742441468218826942415547163619626947210265242352738691462084249990871248265276513242051298068082966722525716760253369061442241539926315895501725298583764712881697309022249046501826767906262024506804915714481077741461690174894304590826269289048827145751184209096384730347580535007700150892194943403170894892560351206492535723263573862788248293138487288265830039969879470534516221680815172689661036787097104771781157351408562891209385385335753987424116624010265853741866166005365086857450194312923467372349281166327258251282108373002972463791255752711698754142583596974348292992526731214572463763440399401994886099876562437739253668289078474249888901454638022259369050090259101388309853607855704153093321472771910356132884859227208429190173266340886916731298461325962950078709336750387139208536962908632608166794927266676525462889684600962786103838330071330467433111600175389510835176976480407211317134415588392227683263548022155307460823129317135930965200243650067107484623201546422454986018513850727412746718076489050587161562047093722241233004515624279587274828387846545068121148264426963156363324735831770371043219762034881673742475663006971554544010741359131402998374055258913307368764205698858239657926346501740523417182890479861210415221385232558769479132031623753021387721285319360061795170819695436070273262793003131488615118936044725511370170222886877522611847195228738054079667486521680068490876402389300215460178075341911212527407802861828464431105070712217160522706059238726199229378176424069078414629706075192381744896149646099976747742814387823124486310765032895118267514633924538729000063046196264620469519442873573043519345680778171394325814233639452022096019285137726897234334393383087056705462276670053721491902538013241612612360357480046519888377199206680996582499091027761046570500224216639983452432385410683013463931535787322419754529027456352245740228754341553553876564427547902435957768036441619777314867685464176880280913357648997387419528890255983398930889932971031264223649142148441060106252822067986131819187524262485198567374224840054085624781712080475587650504756509838581392940602627215407443276425211875652021641858212086082628168590333337768992282971388721586055719406918102125881181988670164036940248114640151332593238015127689533197746891710145561073380397565208217217031067631135386421922285326392112213637565339011046384552586724448016371523013608289270139725693931178787375348482143370750289515905358310151493162539817611902212414900224699483197177653975944042690966703780489770488000667247030000669569309808660704072991260422565073948608594136555852626929030307690276758429754574885210917549197135418008279623594236336253420077655150842517327222309836685482845538815477027296259842097335483683515323113498843181145876769628399483821959879293555055898456680681628270844238707287813112118429531050031828432513108124431550087059226553038199959964814094567426329438341861920679058805391456092819770885551725877899937833301821635906195524921955920558231693323991224723761532496625101641892843309507594599721806518622578806555247975652966415136862195681388647657549927556831195348025735689895028692597839369079572231425126473186890554663552580331471699046186502797150477130913241900285112821890776115900555760122744718121023128470571320933575037938915944282995010526255828389861527900950103723395991130983930941168956389714622730124404618072659418428803093468151022584643860442852391630110977282824460037722600786971997062170348819683234199076789244929797866764378489297201387751912614363249538024223005325927151137092846113728607980302134980769605963817428723132353417693465972618367195162523373138742966869184486352118307684823351054858937840149793051255785985776890410677671250601301020693239790238058767004886690802253321560692247582454614699774689352342506002269663378671182179033289346430554449379071019620454183090220817278380621653850618123550682677566499572162773215316350265349389639338642073145325284035245044319452867325683980558827488549072593434868123485078555719612937441423732875263049566051834910673032781990119219527242834353985539343418809003135735840516890046413576059858242999384327353934265492737462157785641671590695853637495424515998029671602047124325883601414968223965482796067532569779942690208618481171495702071078463990865171994136289270350588138765818304252571960249471084315784757424630930134759862322439396664773333947604827376052629414103961404654273454225849714313340233817594845141914904925631069668614552733149926912074397590002795923255214183696232998700679830306808054410799284913711014827090880149524030491641375770530661005767817135794364298733773234442060372463987223543120199995449413299755937509632468642285464662189188250413537870639984798085180799857442975204351166988950694159423144355558850240644350977883316906278697966549393451190523208583383846274399721667631351037121273438944737259022460203099993958812802030768825503374057059984881458544182235141679635754283746887784417543972016683891365261976613266252921163377979594159120350490033641386659981849269467522691991429239552226474083118008116298883399512149672503056011353483993253531010171535408262614878971082160771028690951346890441519384117997024073822257177353702003363591979153234345250066436307351230028734187033230152517504265971937969748410269391583419781724169666857151128192147384640076802588756064554041527840641267530917805780563485082372490526720405868071135951015435389915326613625118301402893291353506554469087756647572679358910882939421016880773724472640685696780491773154864832289254890290225540599203312465685555991120683703543544741150094494464147134101002064740742113229205389744738793214233341776971781068634131923985186884721049067954370416669339893583237584896011723364790563914544808014122557854080097255966261680717131531194939305267185868602167275161299280816008198110716569525594248065101034211728047436227955860108933654672700130446720800744690097773637400878596765328703257232372889136456332230271117552737683377213493974501203310627229675260769315994349848769118767058495071760459377906554156198022123303832621924776645051946113054671524288167507531156093959283963610397431537445436160515619339095998796635358386865053710103546458657828963796953756029075358541472898205426599081812332847639673002875490430435488876868015640070604307530376700799813355991168454852927884279671259439517321192533495478227933273324946101163484549991884985051734306194999161608568591007000910003166466089536644976652095758284246264445339094540762376017307261051601805449889557297740852875364721698834029860974856310261947108315854136546154658509424681421474246978131537312273352305126480133294077140620012399674534764172382778809511534343765615653116358945266352309293320486845189939321241507479016654966294241957540037293320705848998643581202475371494702061630155314052415400056873601262408825136882766483471162083665039496400967228566231700404208195180093911149586072979595025022312657607863442504547661811447530894750341306750345824709537319159872556632841526549070633160820976690840512163366331715726825824801427919531797786295088579921173093318681458458020174757930715158510144445227031265659006666947207607512545286506968013020693890079273549336808247149113449917641495073052834857700606603994141321422981093467801410650320071028851480643190949804220034100557791388474536562583721591139173158157664692445503097927870964986676381903973299586181618520620666992021367029321257741904179690336161931601262984550233381841804630218870228884775793307164030230579676558943294310938682267525948325884845963981912878319380860369839854470708153986379384555113659954792508948502806792838758541768059848505335615161318139224673723464278785982943066740655634107871642136998871267502044181992647803135148799472220708442106614486800717477929470085671056075762187908760930893155263874026866385832497955337360288481518405720481400613176595655408950572783868171287078015214430690093948547041979067182422192723902256029045200392475882818808101591111800043624128214540750356260063358844268395575545493859519042642258219029300700762450398889899825138869329922389052181586554958974287556757741595493639734382421430245485357306579992475729140023351303614308307434190045784204951538669443731499337311095224032048664645710148389784155452728885747075687326503958888221734047555578122808264396234937902943213408649329514299208659376384078472315610703749695110646692813010524649213399357948772440863660430569406602269085824770691548013420305200659236651612196574235359603509759699629017160754748081686872211915762075285828682554772984087662753659269402258451491638752572716298732963731443419012129804655928948651594263769432640180908925159338945495316056326711598193389414945389835677252983237762000992376221688021005501731490317640132885533262118775523020371749475143184717511682490411754936520154650943237713822695316012007443508935475522088207257513696407354726410240817493832053786167906163807458478403892080820984816613430536547462289126800286145088484392415723132291778831736646453125840588055871553544745945840994674908949700733679381376425029336319724775537938389597732513828685603482978727636694448250524216893095854198029499411098053370409458987159495839305014828620873394100968196861465895888298201478305333663560735006546401371229335990461173921690006935065135163064872973447045752092987775895562572645227407456870815146194935988397928296924653206522232257609730968722672572009242402657269513511486967733363430009626410140103871092103777270759161789241965427817447399864657864848211702548058734846903382232053598423023783114021792726736605822132270885793869676891765316644781482383486223922373770449982342287350995834805630205943753656775739274841408101332781481843812595895235591474354762443407833007570979291055116033380758865297487371585726294372837647516672355647912657905883673820048307487110577618667835506549221951614135715781531681237141453732171274507035123173751690082048745714967492669034307273240849625612176616024248584189778496540499125944084616761918373794373340364670335411733885203065671897626776260536912674116233141911128825082714455320573577228283319941956578052977385174994840663254075998100386154765679959125220885762432928669657545322128366248032923252234376336363762395220586599724486338319599199583321312253050878309087299853373531589674698435849521668718561431891239806236336216913278423050792671947513195290647220535118357789969910099151764282823469364443143786672359397828116677288749560029141908676977142695869193219292007451887539817152732162218060163647203927549224419299747620170780618699813494174889777000595791708849971204563136990537937697562227857488860999934100830293470256619457865028203181156751851496200121433065529268685008981636601572158445752082996018573450829212063168524546195884976680040828079310149996750215128665514958725540539403579652563048159615311002625283627655219881670421485576168441395321545080882861796251740418093862952436156675700649486878234728947597267411315478138360382876643545106490430333257837730568030448461755078624183724394120366576796110378906351185278276379973990705760230289010342050020864621964791907472648844018765049342732213182481766972857102028056437344766594330067833843636985557843634823565995463908497984328720407585884954271608368931433487431893241426163763844366275640797024217236023586775773287322934994252021635924248158276476992993969315299652946764483424309710638336215723902303479837820140550648883388113846187360847137423685484409028467798558103400726692732435036488552246823006257509982897002577219363154530707132978484226337840296538896140629242062961053913717849997037175602976007985085612613604723299991721616503545946213195518676093183827430478204691624099617465815205512540606792801060052556292231796405177434649617981635918967658943555681233584778817107583677638240643363224639756111783230592677382498950137744733131693070043719753419892828593557383826608465158551832536848598369808100970180940545915668515100090580553904629219845698348691354283131123730958219205280656326419994393418562777898361150495725195706492549620442792134644823324245204355472011228096695945218259199646091535913836186342035493830659318154705687301204927648056182101978340654483704906489439619153080197634630523654407705173984868108182634544220278872499535391400820607336023427795878252372463889919848404263319861272250698994445725762381985204572340481352659139162500037265200908570359849307880730707898743685685840836353147269385258403851430915211037756334528572634869884933426642066250306095633636941483138810271691154964896433986820282765452414079666363720170577267811780558814383550074250706078443012569876886238475254783283726315079052075047176359626535665774107618922554629194091034074145385126630918621413873340411830554003900217101156276571092604377141475508300108917079755404240182481909858900003914874368987317966932509557858165798842620604286492008225221155356204184103213851001493518489167035914952438676796990227981013768229603463019525502045337220270676049335785609253937358712719462831770175278285639950973712108047074250852525975623615011266349777280137842627216152885169061123333691746477797048841458158302468060937728549557198261146516872451210252698506823473431393427024460568921432872716464000680960767023337961449125275622137943432423293784378130165046298896294648266204761637847385161677108870335392068511711046767915218276246970295915255476565847261238678180285444602874370799904557501668091651079259587352463391642446493655906439943414443995600987279197176241416329172505292209670173371397635419645036885661254299148996147182096396270234134534045074303340161817287192505915956952976300836182092520645270650198135361210675053499311711093634930773512190690366396321422742769136446547643849110205109213438490400175359966001956174069193838124642648632923684167662547167517892596027316041599068870076578630533776852258412865769677715770641036011761867808869509603296952279413353934404226447768568317554316237373779863405053883544357407737010668880447529022165877932585125839308977998174079789949108403403335961394210040383770761697407973402667871541430360308262236353960197049126617133875218481449833764405035015458294831533369469408175753042990716424659169758924582184218382830122650544432172939837552064627058388033723319944234289869092911435101643620141000640863224344213577537388444725182549295788925145550413244827512602937578779423459015682846673409076946149142757570432016982131858393802032847653158193556618945324986338834079723679613077275072897107754145824226460181255375469474378314749052388597263151263548895871493874846113781215480433219110802793394258534115314514615687595045292021653914452350015585699413418375196645083286218352642747867551893410506159277830763085646822792475297331564877731124176317678413245098892877196337422953508432358335925815324348874283335407016005972199033743380469281998550498897202872217248378211090611753242951924706339358419089806911819602148608832379743861362939237496674905752477685652973665172167775992400279813929290367997724665217629646212960679773519746577701508488977279110268616230460909470872961329847814748378483049953038725362544290885221601496088336557515373159463939468440906146053332402335150658972942436731526487385417163287976349897029180932839033535454829648685023417331920680688165562032557960428234345725414909955032459592960676210450953816234133021278158634530956812926172420337482159023812725932323335723886380614152417525079698961613996999486362486583349070632935344053064773013677548561699087041820875095913591037639885993758284357318577459915113154946600301992596564893938513037711438109384667279956435496446317738421976656463631608771756970800051318950437120396777823912214480689671917935040834961498023625573200426147557351209841754150932928964930263632262479256723926078636719241585362183869022197399026397615646970378439712045652280243736642290069948445617084814113866109565757831357432458737789326152152120455323474324606011396596950244958340821191241290879036932904036224881121391539990356615183360090490329877997601688077298907759558352239874433051674158296347914891746345797406242114427932590229815054301882822648637754231293427919549329368161076386858872178617152320596337546893578355308983896635724397836112250817270857764317826173352441265770163598556728571864260611307762033282310043121974192990465353092790702360456593328213382080257002095697288483267220574200288953355940345005088137253936513946167646586037492015656222853462198596858095374063521832835858819617168228611648050813060414140433978847228627333558469427541320848148802595365625019832759547839305508776918604322758732453556623001336729112968356451985422734222027909510331855380040660585225286343657007002583651176538495295784958768339157712954431945774448317722459930219056118967428653299166316142572964210577556989941798710812308528089990298565728785583346158057872523521903265788882239081128395810718712876712958181653383066354994899358901115774556728710561578512046094565569439466813410133652391500936755103184722665066509883506448726689169730973250813880825094943298847815675891542652636784130845278703392501890248646146436122048604669050001674715106955882094641046683034936535411568560570093746234078254248770794865372613903813878373550891471276656615691545837618836855978767428409863862735834044161018649013831595145704610307365371933090916447169452882402569525613176817497377619560363261700286894124897109696007570201964489204409710002909299221254938487995887718565574772319188087310596177922906378567255937124457870057333409323566638746283132645486340928417205109619435379104639619509582326990159122261443332738653349674802825287395672493682183422959417954259670621967665856061282207495279273420915398362368452387000333746446390592011196271652135192853512516968176793693094473057524946123844647182164737114692153829666050173606838389533931684890937396351555464868851248622601347405911182954794212427751964815253099700135022672700541193989194199990331596755671537385969744148578551273287015725739158369912920234669168810970722670607420883598940678730522142123886121059790935026117410327064337898115262518203505579261422533249618361277491377870754140050833635068753839811703758922903936026901195291105022351077477155527044653587173353149814988090987775023860223057482616550092617639162269066218145953376218691252645417198323915298707951035912813524038733950834954129946729635092409206930718761232934104612860818179612199235056689405577361754878072246027030259661360735773765571342931690416457396039555566179376845687992986677773212923374884381354904624067872045716481053638257963019530447470517198958205997387861219418249781269981609046672157365836532838005624132547687347898815395096440955885370756545590856967383547811659145372192915234865058665055972223218122863281836531135176375469846185116965863561629603257900283250236045725957197681013128925666677962902157538892812022705471217203962391612328365456734387970778365346014103794378421972372116726974129882757316150488199319691197241373791039815364520511170333467911025078948556192127933535143201595545898674622903697939889603386747030918500455798375693960899281714536023706699462807151173997406076764424712545890806905425273735307956299498885785352738497486029034965371946279311178366342275933457760924056129303573998296529910062010704285321893985672676134446201703334471494166725423773476772055189028294023134695721277074671329692826535559513809926339552767175606692322260774818562852979384369830540717776557456475545257388684822890376309247998700045767818729561293915049953878810870689699245990397496982788864740168876721341199854127243357480475869819569360369100966648107863906964430676150752316306740894718605853212898219422296697781990981498958008747942875429524257822918050915938188500942723104883035924129200755909620954699974926042635098474150295568587159255256807466416951201883528282259414640152541281768681629820506944693440548484089073516952633910188484182060349172836600516956259661906293704469043831522348452321904127151733210379258770962306964437979970623668426421205420542371578835314936730627606934768601883504848297752284484181437764449337030840253449456540102872790429853555369549863791286760620265855488212258504005850842425947531862100720784426564991860812952029793753902539222986460437617035700518092621378914839551178680132281145178890715983056423104002612785860948923867275955055878667849174264816991003793249597074882385253810610295674048945555435163000984403385454812075800677914072306668585319131747963835933235044956784452831085859541739724360059110779298886679883360668626092094747015402767615767112658553293581394195183183946759397077896238676385673981780560042829325476946288313044428795774347996302090043022971881416147752490593586656157518353015048018061324068945011157998441500541582051922297148762657774554780503016822393149438509040728839859560439873993018153473721668462231608246434654094358786876055852406825635517776625447079681963373045821519411126745358494505085647584631269693562040873196119409017251697884581862576737063602917431608892501915317115769597432438526144375879725172194645221624681639301846892286820327290622784648681577039399624420456172053289791205461231169888075028866115662687212872916495516045151245104420558794783219422562518630024379045499063514555826433035610449802661306369559380916496983229464842545415380942004077464823149013465971934975480599318832068816059678810796691557618645086859789863031538963500420524439820537520442954138894095947216393545644899237507175715811580578047837558505615385425610267923625451190826113765660118957972568706446584030004837790610737105024442717708682569969157617521187915101044788315159002418405709745740931880655042564746079630246463475453844245815893766514839102536553941579415426310625294559653355986978674480626363942408294719075246626264308228790624803948034985195376803476274575352421579797997918534493760432994762739478238640036326516461636525307956695835866209798655989649202147397313210009457258954671330577824324506387795580935555058846902765733023751612891047954195743929780377857787684731712273775989007216054271965887774491994359926102613071385122268814699264328331601051446446194204932753911840290274013807261051568024174635941960242698946826156912574962958291147059857573983136192078347504088882372877887753198029742142491512265495506677891234661945650265043083124750461287426860955807815383826536828015190352892244725339439167842578795580879300667488475087512716604884077938409203952507336979091305578673974048260765023975364819919065124459743897142131446264378760460065295202788604142377019042324420122016708954397520890951149702958609334263525628025064602808408256797716727380150743586438265622352315707149674971840126164088005315809763956915384931025476872886793509025413282330988643815766735807577812508002883625972404845495841507463349308440380496720109013758136337625259286853055150213742512502401233221712333481139743178118438273557977033059029388663058198669987738014679007150030056907999940350917517624397519743316094554436646080795505917083980981226017213233165960581560827886776287168668252315472467618011985653351181668667654500354435930208156473718922044885553114928323131266755207573262064012631910007546127999858112746222162765576941099078238612484869489825391031330336287185243736657829929275949465459784581206377705227458693874779949959069108124117514263516627500941672845423410576965798429774781279584503348967906374714505818492458257428590410232208968857541764023078326390856719919648775894430809258503499749533448527246814150335214358902414612121958113632046388272074966053624827790693266412267404491826919753454474288596498171612463951346811062209119290036790999140095359146882719070020162427559731926615335323381530213732383711836809221783420268665047314910625251388559531623583803331481873148921581382719040247414811321043448357738937726935118764888078813432771812582878449598368720960878398519319202283238067440695363785716358749155468121625419373493423211259107275934710427409018852072874819484019458141746084269550862893496046735041749348646978805373037115469012695621201871008704807551133078917511172340689232978904081632110570267559544947959994158112332439421948510559293496585818366548638561812857715586558091146868932377250001312889313295592980864729042174483570699876323823845437820905685328175594201863736516732437858192023298486148905576228053434900807879335609872245770354330179471928656413344954964705852850475065702264022077244120719605173385820441956185146839560043708194282854486063906859216443133801517977162995678701395562304782210113615132198845875534574667095132002435906888975955965317173913003160648400945082648629094245871689741291405035896471228853342774803265974383673616812295705817217996678925332227954028445642132819987432532133279883053803046950548690111080569126321679056717056543622974330834487511082893098433786733247355134951468323646198042551162053824998427366645168246438588813619875386132426791657253912279234341429253743802199006088225600521871308121040240862100558489247385150098690461105852720400686387948862153409740309909260345392719908008618519169277388065247041634051280286948980112966717525854251537245791741960205591182363991940624684828104978278860184227739915592232423985337912679586758983531746879415220841418667346140149849700972643003272555972839321921690298328040411039960801376031909755131445563418754381465860314587226851431133975918567449965583054034881999727187608701726387627433047948344763419590548458058090299945190262107053341946248302638773311724206552965665917429051526769215740033568103850400646236953956458641205915068835045791060610662768547565623708135379969508915321654365480840168247003901358938398122688381683496382875326075659504215435203066953063227251313249705649638403359850370252287612669633346841278292381291406178517662026068189871088662479275079428441731621016580529191022891935153580334754493764544816921765283363371810707456423813381132810252743391921211307473765623061114680802675147685796798231295678044598248651440749419705189846213476801768852176709488280583144188575070794045103663533736964734747867997739201180217447470401327594135811011556778004115928098960846401392024567877794245539053906395420799769378707715996912352508200631850914538653044470728379975741178799864066276039918483523320014754151586644887370787100845142329806188211735536366907870437383763242327208397573999302333629543936303633174532575917238940954433937673213948730748020884608330671751336597104272363082447245253077514642664736840668678408829221651105667799527259133098881073446441606538698443403098791730155657233142674995069059625014463086813498017021217863951556938150144603866759666224086114343993729975681057323517515276585351112869457848385866017311306565267998008374843741211710523399176257022374256034836837985044768621126699768951473997480940841191796920914469825254367230730673918276278446513404962796196156443435981032473627810536437552185545825671405636343975090449020820495518297660302439888686468533992580420848095861464302294742114638755251119202767342563386478254532522383133318309858924527131030438486029521604040952291085385810399575655976461525162791345535382899603446578135039828718566612935571542474046554170173346548048488573878530956143599175790248389849074031481694426437517435657775355327501900716853885972682253166489199067249375081120002226398936190874504584300490080239806249664377231735517026965206115952257250703433667453201882836248335540210746405780420684371390943003402833899281472542200607038292899567335312044691990779440851072426232716816682410251734144400287197225613702275995181789439059869405975958579920444107301366734920956381823001927663945952162140817430190386523387266383766875803812670507517524642641528182248232801114322659924807416617012947687323846969002874482713140304995760355161152088106923635974444183536303329917329017266929466145499958792370391143974160146378647159759516443800710526617733177566971707905546289365013709887478107513279122983711128583581732869045775516412794767899346732682188436691329617842659572311021761735023887099946001679516769281235649617591574416212978587276013389291920451896962915168421252742975814914005410571248839423594142393166446404995215243198694758399524239412416183973285220335310274152707669262180733430625600784663071800153267988972909882574154744728486480393265086647599354214744043759012976449986246365626364353968501949101161484079333995039039254411810808375823741309492625208375075359819687983649061982164857479354953086888463814125894204148072427306789216352843664552072135460752523110041769686092944935424177962503914800267141156592182312728779112673991686736750353780456158776595155999714161309520039105439345347235504540248573249933249100062403378474559508167298962996111429231909862066287368266832458507062853522544194097860911328795322335322595009465436539373852680946530640833613428440059111824299085030642346700785576176491540982256799180956451763034909800980950064035628513981541617812708062414802095712609443109933124026879497746722360382784039297820178030177156573576273936394127010429009012478735921227987401894958249953844211490939637852609331439604859550155749243874182904927726132516710872681602211003567300793227193090206889925881286252807001532499668359601191554577497829464352686730846284448215935915593742878554101887002930588256767652193390730437588163697511633790481162375511274424440145672630079225214470729581004330689397081052589288457056990556030851562073457739205553686744410532623915515344233227932638934572878843532763151182188695167552286558010565739818710895644960330403215638648469090466286479143188302867570624626014446962264328356299654328304724965833312816344394683508014628773849122315572782233221924893513492299133711379621590082289913183483285149798370542753656295783664576431405213689837280850219744582969883548537141124262704880440510728778525240928975800351158060260696738840974689619308532605223946530769502909935670253517822109279489828867150475313621534727892703082771110581458514922035012814056520293168680872625637224959348846675879983554167058868000611181871506709256795115901982975997472427584307934517905531504649137558665681624814113610428965235930097596049955053820852350041843346367805326823544127322870452608785515448772066503704061780017606156715742491842878787611705928698268763045543452700014260106123805392311127015338385206701639556515880713507566396669462878083622241750201687397724299951495171019779632362866986827317306593196265975632916713256664626707732536888614006934570406647469744037871111094371837549252598802764928459043628622172546462479400684858552127514682885198345492596097777702760523963668816163023289274222311473277697030306842421969303149215167172374629197927298719948780927663979347433989594134958452135426606168807260518802171674416435345985291354921616443543974445622204198123016297045510977176334703505156338500268573330045204948319645332668050059240476570147138745299875463972107511106076863944178430246555331342622511963744713657410757784192280874718316314194336308586036222756833912685997218508983321448248120833076251140444381493660037670698522319563666898814932845898390895391338715226328483115405043993974437813823870417312291454950511336404661393425128077040530757550503545735525932548967008332987917620503822213906429253783487126289349502389838911811618169260107627827656016254285476529506890401791012656903826558315439928772599140587999358589015969054141996855407881989417094017564433613782680372566605686948017648725740526605166755938941869193045309811176086007642858263361573849960986755077690470897491917878558519760168610511887914796782940929973428144540519855940756146984407370388148588308287624883393510768184997266585924538388829064987186677431526472629928652926733271983124837791261785995131463947619854572943176146881103531142598779752190860994036649510990631175473399007212333462754122903512830914945346039627606460928389399346839312929459573652120900344919007164835119871672160246196005671661415470388986720244595421616953417277669868506684274740765168626999672947283863216706086317235787797058748822804709909061073014350114986084273729778909208783223531213455101044833103405663379809541198283263352260340762278547290888255534682542099476923016699306883329181376094439270872219571783342280219907779739956688927244224520919269553791045392156515994076348934233184676041474344123281024897215924162234754676478036670591711736898882196764738009298201489478669496110120005820985736181236564345314261480229821635006586277107217883088537865853910338877856751730836681209279753728520964108780888750576839577732893189011407484982534191313934913769596929814358344092272692288179506452586623588934968810937143892239755492354733581867766287548030586345436516129554207220327109963120998110302855554603398160552816127424003425578983108678222594037014526029719112334648956323235201439946733767916779774239100893260679888528168494340826194857652867455425249619819328987499975850773254448302973296299758703356303522020503952105555857153074623206233273772307335882159685206182924579940489669526910744706316365019349323788919377670893369445165921960416728083245827689570685127201008151728234109980531300234638526913473895031314675881600193920467037486607495619307333872232624268398388871380574387777119333633280393211536503673340557045004281965986555741623647092325832920246699469533541140083711581770536990858141752744322396375694244584077650430687830294639119874929821193270812136339940091863546828493136690002484931693318753487277201477868299446815756534367874120475713589777352944406357358561862091355472375144546675583157943496422976134215951262431177453346875905123043043382009368245191439288359513501309726825458378232052062648152216365891991642002986393256016810465471546713254325346834753879775299790026430988495082121553674940208706335483871094115733548388136201711746964570356132151986521548236386394917479921632326446912078178861606174470270926463051519988652243013503503488140590131144081620192337675603588404256178128574474125766639756438096180540305326678102279375723369220740235676312703380658607711265074562009282664102860850049147728718202008994756656735189013106685963306532265468461387899980083076620733163219364653619593570297051335161221596579732998324898790593013349777189036677443462267493952748182878569810439489749206050460386677416168029901462910788115149052128585829542744863521608300344552911484698326914328672485586385825791410901621556324257968328347769300883402864376723468839295543583980471857991504104265459037041582929844438389679465233126029556749828126901888788932063277017293841884279653365443553002453501707041841568361751450231285462696868399784412226160497831880635983048752799202595932390958752586065812099549360740288739637212628507969659107657821978738544250644771130827515011307184915959721192130951248588747053402823712820992936969673130160823137705424485121371092960217576941683479203315412690037597188990541703760388217327688821764878360541788233928786552707455660695610149141275490316525905157237775790676714059032046841775142096998836580630381693813543043176312199407798029072247540418569563154640286976360540004217768704987318532892100615623972401445937643085934938106692109314271516777074888426779451776249378853751392343867333855398315588592150490887307575077353848832397383718729075369037677806837714312805940894718933783188092269333884422430735995363265595243987193332430585104704022596892338113933058559902280547289421865849601577499154508908077722326408518683221043854370052620124644458547948655088629070539025912624507805048926427371267299411969690241918146556844720831706690085638384563931466325599118077656190971990464957548403374109645179103448327046978063046660163584789385989895296232961652793020456795631785672470235912765883692999040657469566375587563857030276391108031979867718220245986392042652925284085793767977264826779218883111541251718351394417664488066401882919283735407104109654318180105132712318317965421173302553185805332303516585320469774286152130856505421659725445169384134505123622374688456194688348554324892828187706143886117743441208302269449940209239889974535944894735958605393398992076894553473541918324850631734194657694168183351500382826502807323154231252763659883402701840102232554899281341850086494417615472784497290057971863360680542909660815554630722702753049016857213690952567326476019298506819095054697616532385461815880184274963973712802792512260795518639340511195522445110187264592125431491294188538807203343907684532088267324329198536789426662015487499690703537421183577296201716506754488548318433730792716183263594807965592950001063362700866903593062251896954168730993650182573364571591620083770911307314922498909993693396702582083230778543540759661982894903646305351389510591098864670584324874519232400185091447101522766985487956544462001230566428401892254173948883487327736148648453927550783004412130612342023793916891266678187570419356143292518404751726546842754105182242015345196735485283902736336836661199498508148127368210122181898317645005585349641998131288829352794323086556577691241307742568070244274963184526682112170511529668763262515545715604407411441131719765272258910812635938860015493295396161981589522349964104683981435639801741468190032587976126917511460251804242137359994059085482016602408726987877278371069434911205164481954534386997896340728002732338178599395322089102212453759302269947174894468119813541706336586520448888858457248603690800847752496096969279370733058058654165783392700798136032548257596101200137289074950845394080330475521023123407647580891967961819734275781638606432766548389579738979015310631123532729261998679005437238246308459211092699557279658449884784957993417574377857260741218357140955201671902273848032590214792685438651280799843971956521280803726744280613881985694101454116876706522817896216569568710403456953213846338659093685250454356361090289187613814614765445382711904541459462866228123953907610016919976365034772008546484977378993995724578847029138271727667592613295283050701221839955547308757987184923696983562222007933961135285916558644565335863528618299507494584999176683506908061395260902689454625003599579023078874833951743374571353888142149111696608839869832844479959317653112549520063449949710524657757854959830880142298730075670129129522533341728439202198778085793866964276673323376449583612818893787755385082542761737909933085524601149441318404984762581829654421400712898585798262857372057952043286223129417274811670179293433329507437191083861990039456149881329986721819007282586613895069029731673530431362322069382817315497315044043471935942164351736287372175164981118390810303966162161649817104369775896589405678469928047550038128548295066589084225780559279799154373395676279648975316828333105081393155009402081072403610007994280359883191091619616367703326999142208396693121398379917187087266380206930247022136349339695217322711658035282025739215849529560427573706699354639099911960712361854974310703604523887667347797999214637980878124066425778508203940299432329768059713683969495672085065102847755417419988386027553280375586544476151568534062785214240711206070752886010856486246829289219476525750752584013819356029922835119535638159567215613726158813859872561939807310206162360724611640189651276880688689457022147107864347498055607066523627701676871361688324207080183760368338609755389666181387380764024651182492909159089613625434226396198664087898680292254814966661984809433393243725604453187487971179235250642838232535022939663520935629612980179559233161341586687187442753822486737176691754833056804983929582745866562188552233755826961538029379836198376993289573504462806812535595449828547921052867467838129183543451679123997516024053262790553894274455266181858922165393241718422920423234877993680594947728786214136041792277613608158754247119237804917215285122946354134887189763770503579180071246168292225276787477611761505920414986513058493566147646243645121750882139472658292425495392472907358119214785351741123287979132343782080325568151414013981533817610165213731538915881341159662205505826881804237527344674564914420096708286112775768643489061811511802621219091165195505868533961984907180834968947361797156707332152215280558422951951015760257259891418770999185354598319407127284601384936474918026510337768725011994406024687358134174873793204207530889303820368909016722928863262893776991642140039824773576441971259028313793250338011878431066018586132672807777180192131511202467827765489898310967107454983438030850970222263799416565089018962325938270271826385806883200318696934609441624084923583322900839028254525257418836933713503468244038240059277850995614176598773498194966484773174529464892904748806681913692989922412416343489664458986637805475645810976840187347889455674319629411043092760368935301290788972388168574636964091029516464171587430451516530438228543549399287463636053500769854219133216043485319653268344586101289366651204812586839230470842333968980708244247554274875771507700871474453713318903014124816290587906151164808622537932289232167005439451287435866470501420872409455934939723869971381152895538396618502587765424432527596346262765296057952275196494371111475288577116154902142004282156323066800738538671836413724792988495229737558603688294089123990936537831379444599568286632752386930370076177855615535267046088051592339168389762636140606686120659722521189795374406916967375296780229508513839728714143011443952374158291892798773722144211100238170590247103950206840921120672886752059286813893774873248534369090603733854332209814785380669152380170619381254468448476943401104801949696736159580965561433120023248783455191660180262361375816628976261778933673594388070948004362850822017479974614597001805123556745822217979984251371798277610416877693463414041933714107886022867719068823103596492552377803724318867566462791996795115554456055647817939824296200013433690515965187053523897955874288947639131958369527995857987243287424248357371356802059891503409321876389835851524809671329747569505717612965958299955127140011949174494085094956688222839471250044341010040372082955553960057496441814696059120733208135134364330457172227036703895424945795216668777468926522072895360919515303907250683664369011193807659713747689099199370980543218068469700211975640944320296535560537688664791931511000346302313145322129171407398531355997163323648654056603177040745973076565420667686479303214272316596572866532371501824781580906466117119566442172726853294647388883378569844596697577792468532415289868034933051808112611494639105072490896004071001144128401062707123071259166622092801518601775802142034591194110756642847611539436082928870437653079628656208577403933765639721703982517605236589852588861492676890952217692956769517372298185669884334302698050496662574325066370083219002344619041192100140697169637610822575494047430414633432724896743683587739235217915109413551947936734516132501159380175520287292767264602614270912507576338704097610088998100682507640935416633734111153579650831386566558493233809977895476333571498771489484300239741239686708134575551227911213078277404930634005764483713436872955237348641742762889930166986750498175905044239772365497937781039465628480047090281515713261968464581888804500410144134342023557839845071225492618263475867353935629305403144083278100892761591774994780428539343170227603266570772033365566581536249815209208720458337838871511899677894581478634612082270941711971091955027231369504304222501095478909367498771380939593399442017718775812853856636083288289512168562407239998890081450849658228072460200081126363046337123764112903172084280851543782365057177563015995585473786842043713363799483910055691918714776673433402005231240142876854342708639027500060332456180254805298045017485158744868878581618537783943239321355713829132548038360149877073770861159897785971844517552337573615659350719959703908189899311700569002555058729505233224878333809707189555907656253743997967453606624158554617614084378797472507303317137551712486155397002156300063131384624768381053107640490352337219013493426126258272033947440763423481489136882250673712442587285105255115572093838908700956467213151419325885511497728773868342357778214853903777123891266747894856155115417241316297812000917592783018516793570512910684336141826577681485011195477977707508525461378009048238080845785459865329242057264061018305000519389768057889543790353314540174881371760160493675091852918532760420714294366991621147977142227366920004248611351885774833611665056139200792475023927999162922127240618850026728122423011119217249621567919676810325299910537329830575857327375162019104218397019144416397528887596466451799787368985158695970408372386700282574733193562939354068926815594302079555849717877564327620333856369504164246390733825119705198920117338917032491625919014925974191840437038133575690436578029882099243728249283684762609967341264742815684220206015053105220590953484763493953649426987864551164631613578755354203445581512422782684665389791857314375036512724853180343518387815364445970472281370053714308312358109359655376479108461392263149709395367634637087067745401038223749016026632227879825073396183479696215963346338488370850146797245733024333503265935260605820083876020297302598746266109631407559663385554264874458569830783528118647971216688967189589172165151377387402301807597645282070519190334173138018683250988265728148164612093843851020789553761759964289888383932306285890417471186886248823824167173672140245320196272144293530457349182023368625245292343257671896937241518086274767949611114855423527807424017833083375627567762898979857484024425787175797819293670210095502277050471400343871163665790812145787246983750388897501209919892466395628557506253105639462406571474835468555138537205762384531358397486728586492024885941344758557109675296909162314116855317424410263186748702545134316112945255521324108261285451826907076853151897680667041494477169656533892076015405416026303294017996177974416161277726595937997842384189028255769327216446700793525695710455818929680854366194839369387155452157877400771919972120246334731318790763518297416971526414347502043239210404908271285143252084939257003288235292055436555787755728562909499470772507033523076359982083411138269718724523169037479265962921834415011196129052514138403388264526308194304461552176509761946105503441846004566323621128101315344681241344818474447291840489890633854674001000874291525371699090996815365891624237735177401039860389266581892230660655824427842509103370848329114779448148665697641077429610088292625173293459422778464870776633216367787676191025064286162097220281966568018576537845075804157064730677136097820669860779034510574761510416449734332682487879749139754714778195047053949999928839477098625791049149935355783869488071631881010743606678023263941714232876046505774021874591732203417375886327902542846409915398004165230204197297916766480648079627786590892463181941245467525614338951410379705507717718594385502054996166019760925030659948635248345414604290599389643155763970174056000122215274638688337890931748613958174954133904542765736360997853974828810562173842036118054762909978983963316210428550006944581710538285722006108736326650270805093292025518307306736385464114159144674344706547706240605882663209979292558262629913917284113208906903398838742827261248695923411814043626456018563911467707552598629985717214830154848334535225071710440687111607175543153876567558762301038974162083817846964194931856800876023726861155337151536920589899999963395320224663212303978525720136328600888359828736900414495152064262324994939256667368864924696929322676395347291550022332732608638351301563755309350892487423574384744164289800592566708241573163951524210811043502374356725864879490765766741812442473888093877670212328149133817111220592448660530147230477524095250207604777281206149992610583257391326856701901728143208509624573626410094300855806842071805357145087803110427175119828216708376528208343832021664556218017128307387969249533071077733838294930772767134110775717761096526884729615938289411856282329755851235495121038366365067275592876917098729352162581270739613946487882368698214397345596071313030309504547955928313813031815155069023702532357231457670479545081219442849844874656804167308217313934258892532881808857194464308200127446823421770796682930498917178443571621861016107312089422916938035452247244257129788006766600464455356266817275599914065568782955229357147651995354508748670197016507334514598115727124993362855376970889829376230707731987455029669006738876987160495620845850960854020397148479938846030638876698864521745942092984781489666557513048986521016407462314439969199437617295246129820322690708669941578194478019566690168324499757792745931989541872393347802253304857072509653360944376582988072607878318810691435983455477558509851557914580930141574208768014256095193144522164728038422973368808380385081914037223263030131253855163279367787312299469360679524534187670817943080967164757929256658057482986936482808177126747174116804496395863512538829727275579838345163308164934404188617709452987983238308968029605338791255321086216991210087824316407082122202331750353349501431481057226534832491051601043739778341412941728926898297044011923970111249739083976088366476375585991633860374640580215119278590102491266154012158205064837060143966477586686893591650629213044197280437516215391054079314128987744821296306252386647647471700403096505047001317568431421343395814833057409894481672785007007587413587024664841715673742041768306075704437121646801945270020017476397296700722616914977848614134884437949424086189493047975672376631696470280056778399335372643631540320148604002949068098062246343761705293842526531069352227223521135146403943980751002062065212099616290776456310886875188805365292071078729638728969645906222077640158340419071846002606006237871067050645110229355478968712207105659539045523768835294357594895033043414846957946764275732763809387925915976510118509622023542337583827230568540781801875622958195947870796781675473206714012785497772421350967218045136563604399555038359286609016404713499506413034069699871425503656853603221428408821039727313237009757737990995697472684280832143014646154989384816913076720228611809554360283188118641168140870026819017527021761130509879405594632555959398856041869045692499874179072379700913585752753061364596586298274891436865032345431882628670996213487520404835838894760248701742146142675588860365062010525968018510094585100472407531897256021268900518679217525303031051117270523683764419718055638208628026536682750391513976833518104424110723100415635279851296281690456020168652175189980985751393358171628812994409795185460011549711401938000630460943163285083541204951698948483033778062456999193821401912142731527419942059725701682480961875936334721029145331099036361925585781170621934452072664375958433276297228897150247408002540579913211137674944064163802839777651902332940677343970901170755558566262487154992535892691035862389851017151537897708404093234285440245071127835355429707260077471768460924125934523102746739961457637716978831979325727500400511949154952506580098016792564565492734896122617681144420848084735753295905735271064518620378110559257483934444962637616495986111475546451587372722057295362060911845400911712196394020786099305026966254900864238566934395107478692279920993579472469089406160125992854681494022225083120742079092920799001036266435103387517827366343848939431189571110348058270712182814182596998167431903006766904052951071313728939307197512154810226355749977864952879958207223837524282925570552249115956127371613744301198014687511865172120732179179028876627485770690562292081910989912637643084527707731754550910594485989580660401024864547228128912497789402776484982145823100224199044353554897103573178162755402583982516867046184164948631070254652749793198887234229544599834900337355359573181869541639992682410920362412304053264118976798145897023711602544005638352625526582089939352042501571758600016920904727878138845482440816645350878180006084674764105598396096866366473387311589931343986823902878092528815957894327846206124757173164431682115976565909656671875657701157775812842941162931670939095873458284307381371481041311118365205500095057319410951968531596058653431461104211220621606150201984878999039707643628402068476757055479158856392028886171387632295866586633346866340005168285929381732752567346082340228322321314771130034036496390742888429071337824653571158361141264328112682241812777503265860443410985002079274735030076146100394203739027627748516233799997002342915339764012610261285921321834818986257525753506401596953728213569743833797496847378870865360273266145858000151579749604544517381699817383322545506534887259348869385285076414917575641582562875367436713425497554948235034104161266665316564871020288657043867720828715111636302582905377360669651823845997527323650092859712581013993653384958005676811782026920706603604369908450414472154354910242212511500774135874063694266566554150778113297461351699060549292757599284902143343248325703737148455982814128980570233370592599424548816303283617228628812187323577088778895192352544084404533689679429436955894274646730173639406213850269739637872633340444455534332259917818928907570344222012565543762740144783122612314573463521659009853027239516480015232559872307869790577470997900488059882371130805223449821966265405476107995969784462608964371496853609077288221878472340320354888318122985507229041607822440511015056563767549028025170567342439828171973987599079535892507375169501210599437891821805993546566772110512604226203775226562981510568673016433281827012918842078260619999516490899976646062871831704936088553439231919646007457292132991539506502892770270649803478422985816028389278156366378808479906882688468481480392700413705625793462861445842439370863041667375943128572354083825674418919146667765745905908982845090418826343223097565934418663793591842402092313637096901931541413277601972977075843081075234320570352587110179135390734436279707690219435303867852270377059010377663894351134870218811047780060476387241779317936207406867141231872278673295729128429131835265126195539422291070157233141284226321405513943732043832983226081709162152203660197057073958371237227857765009203624804480835968950007746061253004997347084377988173120173624058087692628316765416821035564992298954578557238665372852062758021024769973001477069933598199829317237765228307842625354323272885721822181670493849773539109258304485120204763034064344084812529084811393593545138496760077101101547655797614632174511825351717194755218002196036329840150456198891301956578044152682394268444511755241051738128595234968734815689576277033099826219516508146977400870361869650533513481887530359252151479400108870339765823422169609631467597704198074425779952240683211361401922785375854369181460245846752091478348196028424841035120453956971523915502141876672570077625210173267116595478505500454084225289552970801195546658974238260785335364960683012752880725277025292854958314856350728268451529261934392427281399220517429747826325421964432938259825951474491835071050234465595933641298699513391262923861872000869279293003086287103417698124312475578971268092902368364281797297932609031506860969471124111645423042575053296007117385508883633377915436648291700641202244410735131957055172079569243990961155918112853246748408990455726954165465673937616372875979700118240415049097744213598423920026391097233020130814333854261762059532490454044289406114685354400062078772287541143851243468307412419758670669559064673333118731516800533309420924164194882066049176570210150040827080999716766902930295442342106897716692459483658720499276112729528874220448855504914253161398903280615161271867170893352650673082757904469922644605966954000890475713502797803677458454056017288217080024873458201836275505514129825861377614967292662402094733604429111925859006651316995474464280748102008191336416841621248643593774046661565005177918902958245447985451156729556828337734996753310018740647291974547370273117953457235495040435473061037765398546391284511782493835647647136830802865532281423808018946883894608476903185369194973131696438252380411064754179430977912116290105433489923885338874803340569053465472208895263124033754821851890591219688813150694254762973399564197024877373699200586516137738989778532452924867569759564099407732992034674105274510573455968603341673730943045380504205631018925145994777256256405635165368417882465991535592599546578845520814857989853778800114988868810450790074117024921255122799375486341829568632306731060064135218014142228046876478553281601682437214243988064544269380682723434369260628585686001427139510808617513010931624369984159685825055238479010434667830763323854792715526973992535479581036891823096148912520158977365244243171585085939817854842215692803785897534490454241774522187705270224327721190100071665288657350613140512126528418395155156767221832463225378490064984427690129109281797757780043766732648881776084293568612012213161429689298964836318402785477441460106098982394870060822525853951460871488951399043954416893832368535406636595005114738201608444429489907900259609536865923754754420994421315406835606735803990295170132781376634158528915910993834748333284700192937518863214589344170415078984445076346397843241118010395459726018145555344042198404986538285132722923402894827607607656136804216820776854934497843492714719635566338737117534249971517204797846283554980826902622485042665845347376680232141636819317150740338359970113134115155953564158352931566644354981053505723243303752505979772827139518059790789144151776346836639009711212037985122822395321555729194481483528970306834621348359185309189636173971701564910968839985624848892346442015550733060091979643742391652532470899639928838425128509427932001911393816014743525509911149814847635143786974635399834353739893892777857442330562077182351989705531553184884402691025824141142987296672378153634267382852736734538457844508502644265159144368164632772658761611379378705529268721855327185197187043159911255856449707359986513446886896733949986776517094533337349600158650675256724635752270647172735289298698344840213573143129220810934221922448281732648193370799571689333355552241638798456528608681038250092313757447340588090525814017234776995637113681997418384587125499120845334581959405118998037459478485074292119082468300890598969672691552191950182957101115285874248979231389077337897709805155427732997661587252281275544831942493221240798286563454709825618636721926304176848292646149147454619302877590664223991683138044546714515840038580514958107894982502166329851147556513901211227761504158566074716362866129210300983623971077202410313981118513185587623000958096883485064815572631616550754038856074702073116618198147425645273309402877014926567494590576498644238996987193931473341527252975333898246263296847946037341426768745287535405109427291585062754540224366728770122125338041220281618437378253529129108779665949902810247595771870018604845512013446784139021956665390459048257692497204739891318998335350078437985802571560850340807538776384330526289014180705794576513056991775147963340259089541553540581711151582233060678227658600859418381712152536837652458689318845635522939604121493080682736290991333187586995249877569719696630778511862852440934460079958405006244834842054924033221639437448831359268728650458038399503970081775272794055954743976106113367698438244940540532585869308718892329686814188293618290344114253203017118736460234593604478613127608597668669219297655843540646851542724936184736835744893510287243698273626078100570070773970244334474027859193153848070823468353303066391912753173120546764361007051272052010381314389491753772616515537484645642545685729964539020355464249841127198193387574122177575421636726870286852252047416892531188012762203588790524930774073495134460064473286986800278381645257779383743270460468187518068767615098076925648591122018895538894373460923136274947564046784331169598246864625310670523646301225325000422588244847605612148831532991247998624399813987255887412670504100081918683268724145271425124640135978345554771741519343761320786143352743512030650297523499703813683948333246591049714188537376704063783452871248736589298383932801529657304586953804809176328389622986136390423529373192786374463046969358779599251824326589417195372196008672065120286147194908009269301566585413985483315263916750856579065777707628223683185126510162840792523879534818854939281573081384991233133029240446821994173060646573104077425479647112026739048022302596459828505605769729926584620885192692121264277468686797496714479801157396790557503208300699050169367119555064956180507304216826893865355554019013199513802602957323811491852345560526684216254009489295953293155709506284975828070423987243000786055915799489688773389538172068378224578242319672341669074205264518360712307364060401831292639319004919727462033785976291999692266004265287172265018137056510754299885755826069255601770300035779733252363643432159804831865621364537688576400637876609442767907405777335875237191311100758882615453185556085744734888046649236687266946825874453964041724954374973458473188433652530471686104113016798083228150633496621647363628330348810087709542689846610806329953738993173434703592645222557764148287159538274293755641850103670247999270384047128135822696140093690060893191165230187001683695016298557091009103469095599390728303984941382299926897770881640185800352018792739098377378725221880165192290986004507201303221032323854565240939740243343746350493631263395537073888400347481736244354196202358225015067851834004545564472945030755007843651476158878496872409100227098064944135988390150931922306107519353307015544884361086203275788809892043607183458654313176147951049593077971447671088145770550885303756914414436375979326910821618352526482124911096014268639933965188750669453468772590594435067318853137282070358677977199244773490064301271175595605156267991455889665808408338205026266646525593747953057392140686369239960707274382736172685380212204140780279978660083982755361303439873732103264458908461352663853315836061108764253659132609639562607347036571517882602174595485438309638005752425175779824107626058687717304960539164798298980682929411823192936404742782396604116722377487218573624442212608011493878588819361777572975465822065963518818775299925328070294121075322177397952389072691333649625378104071557700696132724385015689661377955441640271776364667468788221065882364559326578468367388160932199475301981862094973651151338004546833942678224873084147074715159850115304923827732855321013129802498382457285121176487653223996685808700131357429774731675402061208619617799365863306962839515339210476875301393678654082903957499284012366569658271345373536331841204937772895128985822111197816760350084561252439025756968135292287795844995763623635114427836721821304196675419578325103482627082124235699840991415711494692766454633891777338134057396121782932616652426282977565621049854347192831864912590744073630436451759070388842449230362243781227664998886775339134564789579562124378225473995740999605056441425386357905835816755422868760459477422899234648128526449599051839773541583962224220018347768206859318391026716654769797556331137379915758244070226780837818349880325572733855863761325503509111398208638113353589650260534392151125655173071996060431639222788958461599363504350108175617205044794148902080084668425531946406848308932454328925243056773595859092946246165016871757958082692046210659836038322627888171686850132951939010667785179635609754986126104400037242602216428552175504731313800128601926227480723582192074898992004908810477751961168675375700895495600120851937211275857635869571734306441341309683810945174024211134799829347300635619484138577997224304205004781278124908661212463088584119318915787912250246503486403345634571747345616207745948357486399711960490050869277982535257360718827370190432778874284395111970576936002560917972343518567474565666202548711000975104996196320199377713226182041708801500065890111113516239602998838862094097282690655416266333351270917934853915318686271755800892765140462059757074477806370986882247288932783637967958541427670297574820493279777954276868662859320324850911184740052274965171247717954566886970118131372318361529832336399246688006692389482163132741217973106913711886105270710077785020439473434318819289859817027580329139489321739787352705360545000571656082780784164594284536321152661252624700957432630976371113615376374747612944722441690201803465303437564772910617475904205012557927138537331875754927651580377894742505127363746555492172335967940685501811432618445338981299309027308956485975940582090667419350564445335917594602709892795816777060923357812279498228660290449961362212492144995733870308459410793943973809733175621402069770033044745404817326029152154654660305374536757642098735207128568533934166417528991124327481989974256101047931972478586100746864234334701920286174219344353303407475257842923953371085836068082957837801407193700516035298608956141235455031161795981178253190542421191267050999846698158164572256474607184246526699285133049530969814068398102862081354989596169330364207123836822080864296415110045235474062366408350334381416158249777897045158616395552612238573594767150476542295998294580999458234586213897611505228653865042913610707711142815792349651963675406445795441626520230322309218688208106654455653374766662152348546185344552325343738728985988244389003798081296114937182358868101353576064571069878201683560304820932974480903505491203514821272672487122852417118284646504546108205577136908776161210572957965102937226656824931716110581670715646645680543529340739088726911895734124834241134681680087397323869991478500750397594675034280810195933925689090667850627403231183071726160353598044172958337381559172698007598008078411334667441929169280211465155001970105329462806192431725573416120859019280369409320164538220016068431721003312389475978528422544132473104852246922974568339646847316608402758604489764329561188187167582888726654763935041786089530815324980441408075825767310481850934767089284576358833479921115220277807658986240313609688035479384527716128148634882553373922645737030536423979468748547322098981579061185787819495575377949978036517436149202070985008771880448550561973489125793574548196737250250582772815798777175583451808620468488746196325877682903682779745899551000779485235554890546812632297080424943379880730053715751813814930895710463799792127867653023916762919474434446556249459044959737933768689908983881299963013914320082612738163472696183427331027749703969012174810494362064277470747644210883727994440024192122203120987877436368400598313938517988484627789509857836234450028130266276137304632938244490623323247769769000803040458190791755575760189729683337489156922924818917618973445947169520954275414930623141728152156506932482814951392595711927858391609934073838118399202339816879514978392378518369295619857409163533236084693882862719337993480870996546529924141652261399074731116512021244650271264664110491944745499128832403075792381196114848581399674527398764366754800662464377678344227341637187712225812303520235860803478095147463000994953523984979272370559034498958647997499039294305615193806180627189172159925953105492831583969041724157432047475845143715246547458479115261630741173919961001220545519860894218511170855326169929657605909497774650592129817283381540064098973945582046333337039417003422486170190075677746900656019485289687092806457140012724003732462581138440942041897111010989274459393165180526921609408545010901356013256207139171039717397497249034312770892210054543145388021423068176472508783375862793520325227114675367340641208880373426114461855536622487667737230278869138477791817307384527936660888182056864549611204715389636693170802736196364943133185553956286409428210500135491345001253619732965199894659144635384213952311098203616688793875311154113282261727814215296265343788531690929072479535994702006552488918808178724754267350130016829271986645753416110489169899273763602512280205981609510687541116082621106625583656825976565874572183156846504647109801715332579511025976212383529903518925117222104130145025211431464166887007158921605730879824950007323610399894727080311469685117129104020116894404821250182035547671874591948823442690204594366585306093986657053990677389072907007161651835398534679785495913247855025433835455988458974665682998712332354043218577749386241669586207338545066089114001693850586969795017839826263389518604363634704320036237878104190144990794623376061253430107256034249079959519518801846142080458165413433834843816404722969611693063837605711667987303455267783664732795051271323027702217309360956228813066071215365160065328249587456166904737329441229179435493791501157293087368734870714774225899197135505614995632754004566437352193903281273181337771399081081898141052219423703843851435456383958706485720387215433289550100061271071156305979537526449268981186766842250750679512115610127876163061673548173880160161752105882118946308821970033013544590346430692633158974998169794334123337622351422436637979813543888949529527163400366184563596841295129086804506641683431577317431989102758230512630177081703120928657681173520042464513535958987106306401478814623291153372441979562887249281644349358410345004196714950179913349816306988993865273558486696225048863888469258546471199873287755079673418818469315352371799041899548228400230296559311786805903852295145283764947314997635554604946736119434540563082466137056006136660501350118020369346473371900825362060442655090163968445977880988595979112027128759877051408988639607044099670103228686928687158927126183375161502660553817465076286560881781045603224377009305660448264606904619028119103633431114833010744208077250208805350538747839158891953157125833305170994492706255453479301689733524884901340391257058821284292853123144636096082134384569632777495254393024795413169056292749660103966860849718540437105404160095005590374246046074230170125903183331022379723984098059748022815967585003870874669941253213673992745187610576800532208796468023032930324130942791320456019958617551767018395068783981857836788511672221317525742720162618762967206862281517772148743507665822465801622777266392227995756151904230396635245039038964379538349548318010900764478986098367274031555844511514813419950780101573151604038048232793583461926207436699901615550456278480783583970038584447348738397669930775389589116183993145758289598213686172334234229622289495311334450312733962924906876549814384557045810145887041356801193251040318086544387330501955913419874794629153113988138776916381930160836655142843599808220107323984833850866084409007036820744319913926138414326716970807301289909541617096908136403230963720807484558287693079584730835117522023334217413526822905935642979922806382067690321256867060307816637326949389060049986134920308586756193314583609630842543190900803958286332561310676816620298530388645019475691203710666851734579531349624455241688296834321874077086705665928233602163640612675204204416430470678793027014081181543862193742559262509554907896371816187304536816407697872015134408031130832179042675972148871274453179086906952622382814005469413616776593472674526928877106503927568579794328959460093034594903215895245242785823238978335680920287952632448818101744415528059666608406072230850204994764944714166535702897715280516035166161571413845495350883483297027089307804351850472770319795991658847766387562758153692459810921321822402968142522523286063006444733535134558773886301783834927611558109391241497981901185605554407844737099434422348142616886255597425230144740229164596169963409444433330147274410555085984596250492041295909370271560866819799234457404746569759610797888534375054113809505365085302416824794263528335138014189454436819226741973906016725499606603478209385667334749749624103148657849591348301625301742022414432112739858140353913328410308313983930516749079934177963663015677558234813592892813655403509308429443403192010911721562614453889238178894744716596902230667823475168471176851050429116603291681931787844840914548652237920532829372346685344061270572490377820016333201904981314064693896556801017224543363004606600890653014616515906336172844501508204684840653441551015332938770436618141762315295095947074881607749112152987488159149517163412782149064061887927104498234895085117910000967480381408240668383994072266491433570611974199524477908102298080089442035790107964742300771507868750327145335730831272317883513132538328669207500575646150515531829732424461120580170332209464128501173811006454274333985772725860075615487958114561039851282502196112408263608225526965760825315602975607792817388404647743380045900509373291813291580547359356629719625192687969288784947420280312901086817646814814832311418836772833732163998013373935987554841181432943181967794289217543677987973594631427152939139641323003305201917161852748054934258044879036267765046197494525363468708497376235092804409859020917987533680134763140631446806629661545161921689357852470453838999155799667194806690810231660052010671663876881249472444905187764330902592879085647669752374942083066713776366033664308006396888717010722458348533801504773168197006101639289396390819245739590740902777754180846244454498817219783942301702103855722859720480682881850056098764297452988018890526346754588987634278235487310030719601236534782811995797845367996624739265749488470031388143219203760160149291443385899566817087175147465995311617687056759453675795306697402511970010376025909857012957608800017675055854303306780726662525795838494665064002698382258631842873483913792927317871136007726713080670914636467229474445521875227130118183357380642012877826521338572687354605798213790438854338743992695567553654442160058938924749150983347972604917265663338743338215539403742610323563968035225022366436956843990788575359339937422044162496509270582439582167064080864444253659070736472137022465748820243693376379724676041650037919727134278701229202123097359939659739953976080480665381649671547857606291037911883070262140087120579518070448674631579974665426129928768719617211914200712024426373945216811239783628543580823732887757033561650891774365809167153509421204416133447021306299602258637665014532205940280234025941774643584517806641310778798866794808054769364049094838544617454518443858969843868508980589506533175801160701276238995072188455638531314774960025727741378142403881104776172098104987301075717026385792531408354308758016457204806121234117213317365135899134032182349218338437161859099839922228365317963781392099902031703879143555516143437347089411123071645350453538058574298838870174271434824228245558088294232157781628792924439077436424954878023908856257874235965151323085640599625087915075533700767287573987359922917755304338608937627937042631968665742382878900049421725357068182391981986547346762023508975419930481098484534680073475152920322477387285474384682656086207122541783894243054508679181329315923864977676869646660673296609378708317520727127648949168750858619389203257121195467804144040264824749457339140973796851177160818656125521696607946721848032334768755071810230572194894657505056105083136684777376144920154214843209024260273347380650492889133958318710717533795276343092508197353845645632173456887133486777207176397288607935350274367212914623051740249915693803525193264077744999010375298917684809460404843923535677038135478417753847934490033179276276648421337289136130782807333955458669447967102492555419577188511216798050092478073511942467289349023522137986937596758161312045812071671144701688521870148549631849045692772820305776456560797262608417184999849460863570777995084725140434652781043608437607440098125835994211647680403942988987997608787044763914087958364130692124201123071103641345315423506949290011378656808214303288624892754520856020560890689891055312777750599947472799162772492671918156201560891580003068930576206680751748042408753405765425958554155644430110933464265058230741027491808043110586734933568158786397859730112942758032362929074025432736067127078345424258135602551360770883501509651846876128516530553150367075594448050170495024692033742638625982821776494520620953827679651459792156264180483260757951779063795361593451016450998979923653517608962718003804846542758573954065068461406348587233245759597515055717721252406883091001976725366929587681599115434013994936865191763077426155186755893381374476623164002188867744121380037814619830791769093585303939933161966969501225210202589370726341435267714457271991435417916077233579240062717376605997905673940575173844267985129625766145635996182830835754974828404097162520491569262113531369464800102449161607983095332532578804985033698483375663831819687443049226338150788533429253248235888675912219486456326511711968069842384386036358449896758801425964555299977811162601754944814431175157070763295343310932481476938406765231576475172908701943058868811370710062817279062054346715926184283780278412957369358499124760472339671287641342960831951277461710544744861028037475856853622629418571357766186008912942872039075644342350490977026004482411536012622721841448953467218781437099070857557099798644919990814013071641922891918346938759390391146073705705396703260052748122760762453973262399030173872505093834948088929170487630698309604270331908075616512507871759836206751992100250889913249603612324553496143222836523669345052862448643515557400948447585814807015418109215760043902066736155595412076720495093678731867566124358060595590567786123365106098470144965027042807528542564023592722682564400319061566815433876405203682165581083557900138679225047897017121075529150673386286479862556938155936403359240080440390695164182838509070658325303502773502887129760503788342896367911221172136157808078823618194881120734569201969176095096331858130523890705162504418848540589183700031369459170584005456389879821750363704173565763949306311120890535836766110689052857219699912493093311436114039669594711818266040578316023585413886046482160562101372811941706004455928764531470627268421348595460809009341005090234840310567898663480656564869517760356448845542475902928741678610079642864409700578329014443986281933958014267872494801500181413465136831356631317390931635633085316046251467927252240202859861514631540245288330572058910770990500775605817192797478805216507652135349265816246183842411149048931488424631692467102250217857378042408759692536147934105483955918498440990886292928111443717361312723645576517486938630232158915205910500743579542306191818470711677922056643039541580144793275950630608048307611179548931388448827570768318209520675632930319630975357453545589617282106810813670738479390983503106706288780989688037409183626535776730201847733628679665445675749074934973845532091217131554749578923937441837196290646682150314212332086658202147194176724701285582322409848840665569101297859857088786849536826366452894614407984030457726781015193319195173624534140728261994420454845825867865246249072964513242588262611574795180451078780594915210248620124866756982972878053792098282018482924428970515846538660536299933168310535486672058011188637318252662510452062943377178339547228078304679562620344701406166267682312878025179671575889854933252242861400643144862232410256336545351557528767292519799144568373891097397176106633952163822285606677732437751572508081149125951838846086567330709090329470871949924351837057367974387437735542924522328744425250915661335036978957299601186369716946012749732844189927646062851058997001983005516704612561752097721606974996830454307767906746488365327211012842129501195961121016660011838931579152756493988397296248208866082264499232984843331535461239829318124251387375643015931974793588691045533935773320528618373375871018503929503751367159061508198715104289859965661594835083358151064800588976123463749839825349995384270096202852883194587480525361101107609774418282699573993539867604988687424981643972841482789181789921129640024090733929287021168563087399785623591700512255955022332906083202598253930625058925950172515105368226461159983830874580236983217714986266483226653220531149878530087761052911406236094168822837734210772537758472318017481825513210684658009396592682286777938675964390755176221794429418369737985759399656842995331727894046667777243696417362129538373459797068097680271725825139834682537366202751516152404829979564341999886791766027027820692430807464165586393874657692306416885911193537065108834888260129267753614474869638687679259410731822807905440287082240601342141110310868244921494423002924132482131230193204231512100494850870326245266234532991775847991224495255685962586472877054316684960548220347582546706214362876894240057847258017840513297338503234828022733135972662701567029568252439067964791122812511228748206223790338914121479156325424187268937347898029601641447422526620557478805872759811694306255672406374447159194080795681647938826922641298868048451315541183575122770164708515010464815118917425854631613881308939446469212258551256547158194960192106172512859571777241015109349363851826440380179464872208805941771910672812963919383262256148075835471471377844183540257127688361234097579865377872283263823022041173027147976032514087813754722011627219979015920595179051325446768757623983488363995237933829023777203475638203876891371342403643245931120334427059796946103437168003861852408277609732882817626201995205934857405971728315145252028819379611843587884904872117051029052422846237645512332952981309745282223791311739308553680636472355409455210456857885432801694073595410667231199639410006022692189318072849872684025086979089400156536453498013651537967063928992383079420898360911775321598183037548270326650181624672896633494885415805937566940130692587029328768909700816674889660849953866447389850182574831054192602201973038053243982311656835876581686726979027620076594183885762148473705667255082149121408194258174970042950459400387845108963060832282926840570635891773978964925734658907050370229205388652451381574342734348901771363408116046764590184379217618431433337586422126887293811535215104931480827215393982647143994041551394324844417164765425109246463220120002667555467284200612761564258786784155485491865106451530279223370369651908715205984867444148207129296497111809789841829318187679076697297019745765743603497156152302060830126459196839820964359723739159421161862702249837060564690128232720237184880471291398458427776505657507784387818231059582093161065083680093896318454343116019141466230847428036314472097824375437809082426620765772442975932631599210992927682342949279004499628934554769619302463160195295562735600873146091646728557959546910494145073217863489353771536951494508947883646748119676216453959212871801631270226482499910208805262065217333025505267183253785120722930665175817044836439159436488591066115742596141632511466420814062497374399795937201790930966942216459060237416606732836000120570320886690899094718914147469907239111347833173849515213491824954198542290244580110676313747298759159446462541244656968318695376543070234105985368461257137314976216622726792240567150026103825612886668742455681444840428223699732126202316024941225534973031940950182324214993314135437943665519140216474334168792520959758637623032293552873135928178838670162833740825964701997727537000407049373938351886923319041932832940978858366594355857332735082267677842473536207137228528401351333044943153359294487811728436988124861882230249587842439487834911332220872074043395302798080682638929768141788968477321296539689416554743552037761297464214672858233181754814515339380165246407090065459559935016497292200662728589349892040167281635467190117840546248839530716792307182165584567870307558343383379041396013778175043954759151350974203074918192695384149857676106185419149977270768426502163823795922025220470935710867899493757719658732629558231233572614467803870631774640129846279110438764628830285771819775282424496416028675650272412873640843840037911563925596824733792014910445858930114443235037945428961369439460879868426060929645169272294682231533006530083047269443897893193900280109850140071604466379793772684868342184035158687853040024739085006601463171077069639765452985856926989876037920240546226168904475603314335487942314614781889896080389977803425302828490751544330871328646606118709098272178625974907763835670497695824073199443170916668180687476631614099116502499577456664329801497002406468835826965824405755727381274868793893257219285418276204710558514799569033730516846091054574359576124806346893981978101869710044715734030225264518960622785338005822548085502497862715298584883617391795936501385353969407608390426517723321321083579170305172309282437217822469444721971421056337865702926052940574275920449597095487611256713144468263703779137509591163757049617168866762389286478168663863168982616374289233709221014431878858125657696495249329420643501828889864690979459883678594179033410869742502833849747510911115363034571141514370485750169907121250494970010591387831845553320670681127555662219607457618154433823609820409921077938123116821061653534471355449232440358606052947614487525870605886120412238981235800606390068998006848429047832816684316126393613739429835480324683797708601449064376356387133446366578336933464378944027854520997853478303408695254505775401721247394458425522420102714234626494340438859462351184613705640752666912446063953353289149060530352271677527430087808351385712999911931851978850416358298956380876814404403883231016069555499219148242109255404130564432287441029412958270858892550832179390852522535930437487195338583196404571706561563359499846869676427389543141579044498337773129733336859700716994990179755219576260562156301943075073123084383299795161249425152905209266165242174748145129107821209064669224827711966080601038018025600085336222601182492136123587143538832567257667038185993007835944843817295568799269452047472348113926980846356927147290005716165219997554759237664519360573798209286885081697238697122477390116242539139647761067460401979990568100392414704639158531405862999197566647945412849433817823226633656263440809894191072206720326533944091407350127190262634704361374860047458787835476853022286981472509039819753457778057120139378864788877676758871473446236148276735094145949680067439165145883917530502136970610514439733230691213737787178808557472504261722869586612072322686214930735393227316493166368683632027019425743713965642574686955284701235025228926724215725310365705148706217606506295843727307741066974579387908205596375015448591217506231063115529909686921820797381883032397581990287925564458591389021843213721972553353483146789068890178472664978244537625619855404768621279583026433307143514659650736850957577531289760491544378581556093485667669867997524624899022296788715293195163141503252272476236280761156166772949067293326319638102759219281120558711270001076589630009696027092925903952831177602211024842152336452015657535202092921820620322856143224275262258925590877904719174514006776014718640950424779523070726466568468685231583660457404514395367749166823371612295423465568122515954749291352647242863473515600851800583830872822023430592956228050754775336813293965204882373548798593668603552169911867431861132867003924637293377733065111392758158045032586613405028904481386265135041265545214861499906316505345982567422794137793945301149457101880051074422543079041871370840902358171188402209598289861438923618856414873285082449881746271106512791821438556796882538569575535839565271848620025365719360490551996519711639419726456862870547120294294847733567167457199525413002619135299601793035385838563395860478800394909095334286333297667538660657169624477101255592900969023512025562877009731952175272834414997793676695382185222428258060908550019394402943929392229557665545617005887536610005271179872039673935307584694768906706277962006051710096476720553964353510475944438448649598005144335665766349656557180881664559462724773245020017807833562885459056312759355588707671538826316478126185544059762315467464094519924784091115032123425388983527226730043606913919792126966976807741935872426731669079058052090746776879068766567822768238627493176896915193058906011136028993751067488644125862450065859619674116612798664234717444397562451726026340509466399918711776236689258914831579578678160475376703971188350263975526023020683621616257082863350342169695459042928249830006730541560267039132759217543770833004280252473669149226745329717361671904453766031813826405962915635173515082222313847388590338701889497101383923575173660823314429866329625537501350352202236915266294867830116099675480630236314274149525543514391973699640542298301003824070693170298885041543261766997969928977745841211081492878481254203507872639179674916362279674987476416446661852641430509407327301832193509777078668109034471931066283162927124565010740985777823491547623105780029736087228459635002929574022847206030897920671465780739639624408293492555760504537245500442283638303975942598712074483745837644940781664963471317925095862526242579872634905164808541640928181423688334577107503433165685477974836199509776072450862047159735393859188240179868821924745781518840136335400624811290466189518330460219601344353084692097797971962681729531415215897436529624083683316391570566233300754526173346806997739329423180668798286415232716092922389711881264777348563539047455259562332138729178464771743575348006200804437816746534185736781120201204163111806832675299751645960707868637652124991604499698826772720631240584418889767220527973165515877033341581838314162941684394205964480781563427004780390686482744911942541544837460232287949520686209764175892223983533669062597433081539887038986684740536130035735877080239314322698846255929662741560474934613997286157386683523694751599345806986377327095752186245200383740141827312536020449769963692387050404002772452657190259952854350504058333758794895892151925747173705872832612349668075730557134391730957428732762588111833096807321252436794465626553579957192892840853084442688692427444305730263609539695143182117984673396705547522436092468145977678001427139824067188626863038467172737168137410025215694198232307681317816585744290488878327536147531259923212587634475878624074289718502015903800254001546648418602140708863743110300534097685708169722484747239489132387344889332639118349387692077762030575233965948505493754782116929242173102207161151901566581843258205527830204741113298599691371614052546566221077672080967222679285236350768653894333439382173999919541707075036260228240807716198221483369218092234921915741462990925207078500651111333423532785478574144374270710998403599986862803046390688566496042379895936483070957578222185750132271408796734012581365176693076151497151048253270210514133333731682014016179142164995506159698187255202999820924779037757921580256393754606286891294535722439759958759644470378240890471874881991011029200721012209652723129366188702814508664159900206837139475231410061201654972589278794131287732368230768087419139016530029336162646475324351093192782636041703450128338602770090778081672488903217516513327263852127487303763766910751114379953341845825205568793782094787425496872983041579579324490929054882623905096024148778545056418451273255334972311028461950700838841399656948945954758025368369563905221974142579479327166138199502311394855105024971438873687200153351712908105904013943026277604413365173686912449820651917534569585884374719799968191016096449979151128011403798718261860730030298141128330428602622810582570524480156130842272570979889243306012559909800233913520587017292374541882589551663627786445932617009529913482199222336810148766696255376603561338913809558369023791547488716613642400037697861529694893467754256749664545070980233603857498564206872160262406408254168849254449172058310098763684019272958209686284796275922633880953111947386804173031859329255659739840954334937909198852925867959889505135936796931581406542761665862703208557066948245089152201971051226113580645515979257346253381204875061352601203216032950541241033057400342583715556515624990138802925874351848063529433343846883852429370954549962526611077256820303652695248911653038633521793709953258623232805474287422783446807256975373624888736914974955843419744581372246878098311567125977393633563976583111059244758577933318086161297153023509213684782086755766408801205387466181990628185521888883952010709701177754301599833289103317495986063550277221997584504552110260869773964579435140732238096020103206975775734270890858175608894346583536542638075507168469742823095986745521663340641479398908851783449178155014649532595650970891397519574860571111864121467992987690472330568042464845998571553273182579810465015947815541597563719868683788563860140210394885320955350622966305178325284628092319685948886745997296734022791779622837222803766753185433789138603639798344949844485957647268790797833883181449063380029553623937279554898075180233308364127413164046663523564803589084736796408797662977459238536279164843483466354126957371126544872511010652517022602866461495130327456462174194252849245239577700932646020392596305128394853659417613209687198439430809150148245024662560294306199726802856001507274111382569893293271504888396901250975771800679676876958175796775178168968303049730629412557153759480649780693665491933525729275828889395166719716996991954412982020034825728273805992890989013408816017788563585950469961657662108805045142383902832816438713056705060475964546178338821307863665609619129864148046860573878252061076266537735208382621637923813470216256942645571503215323965376081895869179235151552349649329818730768879250689103311238398300438093388910468946615389900124652519021040712814911688545123644201748739216451867235835251461544225676992378748276404532308319403684791441953937361278098030385795279849777850661049025791397413481252904583299822562770240809082883630747431113572932392359207508312288736419750319203034868657296975845934168568223745873658254459569719980487155481063304857756514491903380138638198291754360135042899121754406847154019170191474983978144960197409206446723622343822372710797968835312771223729955512063900058088799570889214279125233926398606135215995102334764823800735552016526136652837583710498965003719442891979888234828709191677848263156718098861032763084884648279665699708747934061967002385778797040782963649815275317934245528524232754534431345790599728074056778847361627328655790187059650354745680709459154490433484629552451794504888061386556648783229527836523243086318175058973086183780715477922427354883466462982747068359522383501484675601590291034213310249313536880524092956264377865180542549125874523186788898371642002093936393661747659262863534996873518182162636209724740045106235143364182464720306739403317059199675388858589726674119172147898474985886659660506296857175179208622453291241147788853389071111154467793995385713630879784440638415594038406440276372174325710940935094887803344360921327781454248283520528857784227993566562886742109594717113549057095564585962514996696344899290519587527585652100039712736839744549484672175516425297812666251594108656947748374772279722985630911578440081366192965603885370525808399501303324459508635389291050606159128361419168341906542049532153509514361335423413882820766753047453345370902848282036289844943821241787210960856148270345123493779044256337185982208779787152715419201881897962475130687729765612917743118801820946594567748271813871714557422464697721122128850705281732273293468201289218790203825270280816702763059894564242809878522971881961923433844563090551666337093313218334795777616389022233793173789823857448011333505106463494769227981975527087001679727039876948253275320176847903068038436640337752583542526180706828313696899696370865533625399269361052692669677499480248428510909741557403044683052357151346304775561976462841920529869142156253219234778935081340557741623374188003032097731858399936800837536549496444092472865803105613174195217767596363873393916702063707409085551630677122788393244372006091740936261234766437483616082923394285428690863240293910844602156131825625332494000934748490204441042734815549327663323180713002300346300902701505950920549237149406090294768390801750500980123240269988413434968668818469407321425740882731304237071768386206021776119949402179914956843042600637101826294758673366219852412540409148868188609473497303298693864269071633344734048208561923966902486707064117675607240904408482245233056020537193034359189733582914703585376275011883337867372283754925383700865755734070157309716014707088661834148414937124285255590451842850147992975736207513741711672719343867987667795664249473848669855909810455114317090242936625424194536025857546297995012764142176584902970523110681058672641814451305647340007006592025354279415030610071120677327759715873108335352652708435660311274285133457202693169611920933820365343917441238385903988423846073668009267936419681663877862429087335887509641809791895478121407966203492823101748336134418085944646406777301092073163722357379181632649773406079722423391626693292761678154395366753505972481514898906739542850625829453772215457105352339103005935118551745250399591116767998288800109653226838889454973897016133315544755789964922339732643587394684651144967753457531308977879279770803682911800372175574607115440071086075325432613460387103394192357418136209382328289441327383470551168896741867433614132028315705402688654841076204581531994991187814302736286623760592220938335401482607659307462763778914288827666292472032980952602065320983334254477351210124179677171818773601700682899252204105589223581578156707140973747073677552174778525421161005743867980176849417422591107747590024028819599471692781638555653269917268998279791460636115044126796187191367322837813251511835730233020991028074060303940534199155610111868918458039282102641842703303432276412111539712015778941253998029376434689443712395981661484545154464780682167653884040169110733067181600245965536838567806111814356325205766254782027629592866668933359450388625257175557636892928614491125567702437529256554299819161042793979542532548448415167406351852997286243784394425948353398248021426325202291119354970156067774504066653087546100574883063315898408990937499594020418006417027870444885057655179509496356152884006182438307490726135988802728840332366735464093791735283127641574579068348398628295752770747427868490842124489676243130296698276668368568099457100583722668221243272009178628736735618569793800955242705750391303456290583708678682830474218928322116641116332288805363792974178634683757613361398005100756505838112393592514788067587876096146623159360876148423123417308179422963113804038440091961612352254361172555638938665478506393018968909756021406020959747984965954864356452737225158123980407463020840928259843898071382699686735649742107733831217833655546690399898285872578589956152694006315080208104746510171217166923641058147424461686004963337058576349884120298442454833828869841992914682116946104845312481658365027354648599442141677934681140807474062785680615905557210912453473879735292104220353917496794084267125732455370363607502069241314796679847607368212420990709663107149643006279253595391776069505676596486864806732203066076299034944800160872544482574570244888851921166275679273269116720004233923441611430130577955858991809708264496595915052445262966453541441159252235832809024922777415154029437484439572533779416372450346460427583371601088351115163973602009063907345293714655669122580882718232015748242771707154381645291421266449694012741267693735347566540994400592348025499677545889351755487847938980305002352219221143727373904764075024032465363751714590507429277589210829062980990239326326171756696765830221532236538940299825694168311260528101993333856616502859559859290488432466576580860371628522624805529256930384025584387132343021838381026596699706017816084465363375509369322862926112627571879753805413018143017035276140368005253235922573046663934032501247093182852006345578046312024677380756647698015608644963180260542840666942995974876050786838737122992904959151535202747647529802158387302380510453728168477141762358567313307421717834903546520419661970909966638393314108416858078693287626588744332024224502925889911163500902886120285951878437115428082736778854288474611034791827867709870725541339995281985489617373605933243485550081398471626905500770866395846765934433744198140735128814244224651020517313487876274906962772103184348458079776311254057830057015302575198308175327858220969740093031524941753244099293413601927074377722383379758841952044192108008688658498098261010812710663204944939404397441658263207393523153309518582525523276681105936023105808170122514748626699729316122725623636661654920606280917298717128248703358541210014057192738892485501206308473144323014098813962758566988976718866488009326530556542316381478963011392666228973573804107232099839876005137532110803945100919003713154458752229385670278722690177965485691676765851770075549569005981568454599834522861656531142261838611295299078778331807073371965199258484108744882020724448943751927463061579145952358079720426534135170098013722133023201935236285083761407501189001624087000874941700084133270897965141127630186532224947716955596010636747139768690010890077897617562858628549780667283426107303287741600750486679272140892477114003077462524458980172357171692026257334739605507308755458188947656217997282805081980841695932069424797127812529360741248423663156075768683933213484923606685146855407228571413393186626970680649597816209994965092423254844065301134178076417868139538663615633307568303778263881058169962818322191697160243781419053494285630875059939704046950692535412810073955384831569368535064786471457026855440480922515792533282560916347271164477949226611142828373267889230909107803749924485899325271367972724265208866403299699060774370862468602177929222537043087102775661766518377792150991119317599510150765155199706321509891715331432083299510631635858507225002140954842394105438056583667046615561343279428459247361838751438989346600490658749577682663122791858567094064245365084662237148163272670483667665394630339686591718617647456924319020171573046002994699840464513686733641358897667141034905096010730319645276811478667516789043853319733218374705593823124572140762303806650772885121375398834568968076697198956717846711188558067697473170271925726287260630273048060088131707874608354821244456142552206999095973455367987066323006295121847165324581989082961446077759049302382691728404442483730931667534305063106623024948402837989078936543775583338110312986835983722114786155694882231355875031814028085327618317183048688102079894883904378027313218500355439554270824826640812243258235318232844633624849731107052357271014421375262944373312242437916434628855531007439609373710230658984914670543397459565617427427601887708449564873824922812636483625955548638069548551860232467414398652189828746547601763430718692448368920112723554230240697827704993444954513220202851776456236720502539404403276586769329868071008212897810660460039768927331999623399125429282732352291678440852837045590452333131161538143279258157436731839165258929038644781722261323023040872071479690919672242783015879492786064000754441443312828589935544658645350024453773649719424647371514992094122325087239647849983665732051884867480869892553339170397405302462120226326066798047549054428215766321769065967628370605372467587508557569997759036015882412812197245787409599833479404592694665097028058377993734731618489497785852486875284252174136103077186297919171272443910171888864314549177236084901234665793976850541883753109966222105739158444508027796726226153925891271254967258292544156675498101903596105650966193805060958028603993899212290792156152868244458173622616350857917005658728286672411262173511109307088944801531238541277001374267442347915955649422643982040920759557129626529097294272709072419508452923873689486169768161505418529795117103891689772861639890615615554200261760767238331851486332888932262563060793287396500287079007302155258794135970563225664034952346336900612983093212066923385786558946433438199589484265652893754858583741077953877344625924784397565383500156513744777512168810411230837692301814918844122108599756366861567944029883714433019771278940490696848381734255173179914525104971837549878696078337948474942597332961126256696290000009673804695385239177295662255126352538008582507215338989310482392125042525834714619032292526155154611118247840607773176756988473639151072648853799880888983821900770032182704704895635484252279717694732748690614308088454523208515189955488400810717845878882312287620722711954746402959415321464051196283427976265270469013048054220101788351457370244219359858449137350265013234378659641963321099806469453943931354874153641479003577016242212928344124512283761189936088939876892601573897511570528625545030913349142124826426282822971708879250148174894293269925242717241070510318486155996051295378813429270509523772912268541871188457412282507953637193901688005232870691063745964869588748343638038621562955656816625043668716142472994523718502179968045167401466690345225693873481352053329331850029102223560719297431442223088279948690285109267222819657409184752369151301605646717646461803501595328549650440259316634932934339131854040827446172228927694226236442438197674873586135550590350635726984538333303136593195131528518447084961073662748316547392525341154728492027994041349072635575484693118770133909001552107808729004448783361819893867881124943755237140961840789309869013942464229764560270627877350386301175366973195935468621915475062918368159627605132147759555454024435865306071850874057364648732314790464019109341366352209632273448866357616935048747373667185725070276276113620698775685466913963232979642161576518792808454765579365063924454189138933818159137897056650345720292057926811004671915767813439667995006681754634893120193581802178916497627087009641487277993176688700198244418394617800435584064762599641594935753762435450564389284029348493036024400492446915843814120150873063747275562187247419963108846451315933553932057898898211717071531246783125519046136434621875957673104284881017764043646452601236591858337597964900459985815724735644424074442997512226750284567865815375669230468742433710236832617770373018618259472806078147642404586317885128146368111230745939299804491245111730827642533974733880304186204425405753331646727756325653583334199334231310910586596179183555486334632870738683888952847171615459864852498342611560844009187416464923563426668153487203979260439617616338704684949377984370891968497696821961628812948281657427635090946655583881130238943076481951429577868909773564824172182262121140900404858317054967554393671349884713802641907488585600210793466814804027722172241441203333243153230764440622258876615240186419308469004187491778898478734660292630987569680430912485127271057584474769686583229446279950340484812464388956652250951203036540966730670645838723898448082017759927260821785876119720488269093499210868151151896716447319866464235336686492471292414763339894118776794852523219653896984655625439163373794486218830165642519991476163577391684889453459618109905311653221033664897745447867607521207313450354481771556586605242175407775174192408636316023208571368568296496268027535176939747125050762432652224047765032494414214770340162423064658415676121956016218133036401519395603634821103374728797180182848731606814716111298302962844433969537718086998883948506829674833542494420262367962207919232778584005274648812326046194354323462161205175277000332915212580614388488313982267905260291166182072740796637656184945692290631545858656857689198696056228164085483023535946878520784331465535045170564603767184786081317913092700154119153088986694060157915306872608844650391542865071653780259732592238513162450078031601442484571728816404614072721760781611364151681554888531184212065093491293025857812806498397692748171286014423180719136897117568263839946303787156980372090717494674696294164045428556242888703613811033555101305324789711840525069270528065479187137996914323571210388050203122297202618401799217118635480533545355442468962751859412641883375777569124610693491496818529248211428133522099541228553316925794507547702120977635780648010479553419994219812496080964970002609173089778050097218018804851285175513830201140706727184312734813652461816459534590842494840449620481390709644602546849247543159778270806181928531642665973074945471689577024772380795384274717601735203994245949275360619171618318539084124604135426159500857489928582187016092815016092676998050738512680621619262331727184374975659356768584746476154528390337813118925924935442026633209637944906597331953297040006036664289833628193731009293531828933703281203308941038083224791819551580625138291868858949819643969080936403726909341374044596647761279984261362253446498476111779228894217778714313969562927380907057790548217853701641249132445108861384489125952174854834286236882628472217599660137405905760382223049058102939376062691624048802548969687036895996619431328527835463944054002653495214980437767712053299230461351895056254190591387081224630251072138367778431547316143309174646926000278853255811477504385546917116932723558751382547650698757525317558900000550793248204433424995578152983565998700839417657027592263238268594879547483526138604991112024212573302705830647489154975724210520647355952249248063466198347383354985748058853678961480493412639227484714701473039076718969190393046136657441627179487466020137888594625700358405970196550442848949118186881852151563324310881653857283572736513483925202340928123031093059594842097521062697988000344994749405236537198130604138384383527002793278696166583366158901731341745067509099455886433061166684669536616624840814863968804963691476030875312191439816564845221662072099155368614455098099178227953186173318952104767370104959328433596538486683930621995564129987714260863272683975994511895850003857628288222017396734766175494412998449010010585641058546811685707615256419027938586888519040612995803560628530380097422222594849102586719210247014572096642237902784811659160346265605371019784524980816728404678566256834806626253061237355382548347650934552338509364703241570887918593953201870361766777255922370294556153410254977287518798446918825244405666387194356535690950397373609960904253250013604897424831375986271896864521727583589960214827540018195262887792661774662412679676985767051085309136233074746996971536182044472296566526057638487970578334938429067759796401449368285885446188179861595536196272964539910516056363989732029610038316140708303954846687985085365651214543031411001949019378623830887963206144886191574614144464057196340969616214878159575331464416729199083103611093529250819268242534760140069117780122338650661496521926845449809130088569397695039040526920697203009763120957334416181302585210530056055975122173627928634070429752739260674283495564383864684743477829458707590019553515177880174030511628034143060249645285117864704668811249836468529641178721439156219304379259411666212839415160526502307894775840587774602875106773534089253591077420172027083548756366007074556760349206087590520757139618856573376908916033058730398041058205049662991414951732272592510766071180664370670621921878201826397120113517770069492345277200715829058866760446410734770083153708718998388887081621283122751928665238916058791932106617611261738172266652055204776626582595868997501898923829423373725168623420841246160677935214317455114029901315373535447555305874246331965291420441610882619060251431884766772451890731837872927609772446143353074168682897374171682420875410748253929349336027630825108288384631706124582643383037995603742141914733159349517734978022699169656966289112734674607441024579106786371127060827408357084417193711161349767266608323297323713280734302157329097514312818615377598783615042101857571099410356271990087531259555550871782873897502933370830766728898182985392832392403282315010754584078743973041954475548051009988152928856121136882419172747476407003680454193778538540680586629918025478318926884228832847978554077573113523850524896990348902190993842211288844701109144698683634240282341493258600193404564914615932195977527124566323840854910874863778832313932216017699095957115010809405673396783137459522919092958875851599978350418489992940893311848573797254321670801003028775811120968087890813592797788228771845177289173645020465085246069277553267429082996477597315593699458080735209655586777887343363176178314578267439336495096406681619923312784768760921764362653520500550416018466946036056694251121274403275716057390222472246794387684299175918539428567325108827800975056224845685593589834175195919171703399946394792866173378265445715217957377213524338018433982098983513893299592491602779735128259918125173332046219640005134591304324128342136848669325924662958828307729232250182628068932774223639089633785410723545712252970874357645177517463306863926299995893081925037663014267831965817461164361813595747682065608118688825603772467611052577667856394349938588824551986668615473168062257006274250539169354036250644727110537021609383793050989836865926601522245057929079766424595327881289979177899204092156260444649411969626510826057846493300243662674909012100359580771821612943993073190982746607788719197774101994278950753198424212360404398476526690909098688243260066255175008344674868691386818110349120537690751303043294676183465840121657269993286259293366029101834867942150786598775624560213722721248507856015144005283826477268218139410384967742795791122504215997909088309068544713518335821254191551467614423356925740905088973113819730668261856828402308531327316829441517285900314605968324409160360473879505940611276552366736376269378120147751816763066778397823981663712201453086965302632355268064401163064563099325574973370520826067854356658913722959650859148672905245472137907633221554539585585638018872414074018194729786854086541361265236311697992643016165472298846729444494543740800397032041062370834619626176226411585324672593086860726049760136801366563056822184111573461538502354324640321140378542284888982133803906737050104175793198588899339713479227811198028156430941234734494652635375314999515129939269642131739402151582312655379098661159096511531449536853748420779470902105521881423957508406933718498784094540411617071698745450273417209512688455070651666197693960793880182705729082568839862464073397004001544775660923429969123161878903697953216951712854047641434907495271228485814492494822855775431523450235613159562089774819994569143822175036455966262919729694997071344010718826558153021896976809862115284184993812663112457368148903581614845805317228104478040938196921040237769280402832401492009926873825060821547433528962204041131474117196620342818979705816620968954404839194548440012988218654134482288556176435392746825038212571024622662052263263876437555939828029482173059659325884398291404691282149469065338191438156699618473151172162624670962570533030182739391871214935091186646294003642053723938898750451068765135215950761982122259519699636723194482358408300528414413596325636983895554509069185118794178386879728513885447716542673981027340888400793292537597805961428262126950259066407655627394301918968325465652247380843089106128407841925445691890768104034350222919075684070791506679401510480310494663403678507079356781604320074220223018267608628563448789551465210870444517501913081249349656005713168473833954882031134983226003907988361128402018954176920839141508215067615020450615601123326272743134907872322855030347263599675009125343965962018534885328442295029146862538776649694551369305041703575414346998469382387523087762397784299049624933432174435662133668855473272739886646434363089657149439757011469019339521052926281940427697139226386729767204002182767894560013923236545807347365261998689182862476765067395351913392339106343476859991362095173140532339918645576505337261755931855624418828156003944799193745743204365053483099333054848150516258803470206958554347681571972466773927670987495839944162384427730763690761823230580080860004646209945176766464162116781879013074776694953584806125920957266262257403099451154938220261435560497482560163516172233882170200001883597867747800118456468829674257604283562818321565997355331597673952990985162721452893689137334240945977699817857141490843118595309508333938178769543104610065197420123972504154590905240726989614438790948869443906080345609262053817247173799267187384069584969805711533936154008278084582833906525727988958933074128299240799683470098328171350122111907055014295357134232217656435264549897273491097057568718296959287950104586564962619706183313333807639833261635073317297813553519202888103098137398923801947546333802056691225658797100149030619465025691272084045207964342006378546475234451450794689759868296918735746292267924234469730416841690588069252942609838367345065506503978633675344364738441696966088563051428938150421549469141331175024614166083502114204729848920875259451313343295494771827662874343650988092327230246686931022891223377345191911027843128615329403672567620510131589082838793956428811380551043244867909204946546048057654564426317233449593904804527080115387454437108966460114591668892873598137768423343989769432577401450158211493712871702740531638765164241444329716374713825395477153439403673063314762427147282288870653713131475950727924192464213967609694993800602010533347187157379318246464504497534541369962099595819854345486793335557566501303842920659041569138337983735413089643725290729532533103750946395959495774242317310257213327440766547613660662649556758436391885434799309397557151405804358560936862803000537762831705182694099035722242371055457755274216606358555597479043822863185596845718836806081315086162939027390196967204836162763544616286687018220233910339343294626018974888172503891042365139519922250833638851791461238494387524867778208565873233727402707669839988170212160553647074843728415980549669295483281769146027486210718398901302687605889710236082068681551017161813454459299724843134488933261077914304124925302417206131382059212509608490221248026659786409574225146369594231483853063453732344497302514098768776428911287555878525687314771851913074263557313198555695569948760518430162237584136904406120698322875937019048181259531712788215174982555878608765074794345513677542546138607422026062392202675468793210282042775832582253629644030062020566466436272909991006201189019670036639337713882936592995056450674750839324948285185476472242666819666853276265435772389157248206834306739175561283046952270991406184582504406992463493105429937211977940753621032277220145978375384093681270909171643631678383344404550810581965806481605451114427946997843094042195420571307989854132470045891076066521199719258699928245325599030246482716218458068784403149035347242726815405896609816521042963278350680820509749026449010843629922990170058816332146985474909539316975095307447470158891714300575055230189496966905712135802333126143431944274888752259537169482485384095400960551610262902187483719121022072711897118367047265462364776324436462317046700262925096419007937736800441444240445900263770454349218738347014327951968988214588880636377985578318543055046447764446994688008578017453630552651375039009959198936753238612260202293008361475371100529661523067533929468806029177107441334722279238920138523670997885353043657171320910158313903164628622365619000056430901057159532407853309232027720469548260982577132525521273529847125898405275785272113125477047690422248326492478500398350281653873751765778657111262728361381169849617396664507573581504915493857573314997564482372539822380134734387196387993378881989788692998239072216946969060826107564868708536399141308117562792164936599384293688714374945725709053659825577880164090081842804707653883593059510516816121524599885189791160019188790530870101152415944458046824764892100637722818452376430401765040863237613591505154696831737817593936396104818021307506800025718307705843147776340147610938180213002113232775454554819663174270085309440399261717278584864210068004977829957717233364221670781965878964868158344110376950922549267799354725783877169114861008505271113575169321427053361119949342010350208859380389058064572617022481815169308139762039776886556965428543760638309653301178345187240792245326900235806601843548265911052990575110133185610654330844991188224866882358135916361054034277611420629470889882724713600672575984656878741710314707643831218863242929106446008880439758936415657055961562219193361795541092783727813832787644317473047476520576176919273346007043101378773224779064239728869550121052054937767122342283656852483420763326668556996750497010785137746464158001804332070594216253616152828626654639334120561789485533992888849903304398272872706729073422501780986864004540482323257539285274252136960031244986986459179367134206132066703561020028758116486757282763299533163897232538184857545054541392537941457102396260350260162676121347406374221429095572915711973375073636519764374007484052134317527671459760511346359706845349583696061479433737584661685252931686724404636255729261799668110248153103091336165663885179053554818208085567471584369282623098351120705942090605024623595079893475319038140108646748961816805125756141576801054912377783521426549141784164503806940292348473090756151367464291084835011011833554769616566878179219020376078866823225286062052903388950809681652397650035897429729533477383158195943989331450985585764016497120229920940217990272476771892317466935513854194362061489900640363602484546580091040258443186820638112381869088213947392156130607198304713891450025889818536792851433519608059270300250914506693351554853607225990767141799577297746918941153873372568494501204671203870889099597050150209753612009190932444177857737621721849329133447413771428905620414283242892198522298686725096926113700774039509675657487953014327276365323100788100172967971591765896625492852437391346917201158065980548917628434373149643593909326581812086278516667165830423305268276186504737544643818921191384675614290775671781226146954598914498688013125248966960265720997856010508106247646287442886861097313485924213913963439922853443803543508442588829064160049844081827979299567912309065394478943505067360554865660411731796367435322475410247291536628680482522075902103846789044108286407009777244645397998478567011655430419999923899111359317051231024102448223003989239334743782558855009415856668582020755159103141409903704809278213097692474325016818803994176631041491709889739025335638515755828568122053319576087263916065757284693702526885445387420197411639083257656967668399270497555781734822551055336134258805995476240968422593515398760962835716745698885769393353145597537033764762909797520358118875922569177973179840287296276331489325264491532880138835638690027623837967964481319894375396600021327595877963822005308279502176128320688123603800540615880025189810777825327910131156828219588074067770902463028061110497634057038740316898092905540293955203294441041832256716349243872202557884882443844407015871508828376658691358309925270324168466219940484865583313576291227391945833780023693995367439042688539850561347891273903810923717020480010631038339165193871880499698555106402816093054144866471128949798253162614297731496027716435600563623152421180136655578717798948415932128377010020329157450356788326210355894812966971522519639140098329169680859588395610866806414152898658240973373314661325939406047907292235914011899286862300275909179130045919748137290337551157778133660734175328879840228446109758869445044868228271401776071545331924027662221140666106506737283359398080229261290782326022751791178098254556374781306019797728734326883685581955397021071987721100420369635320614074432323010965655842516097298454660174322530196458138425289217632109000772980307718215749119792736617243690126957203078629491862600995910402657562031275018621259308116457044304162749974305320540238345490161608865721460295195225129987442961651078936770881769644979798466837985395009271362785137508842598405372212380777259275216842470654689651880898369046597824769803268259120473292597932763337233485559531435229947220399503907718608072171728147089905787906142070764104356165749765601351722605375913511084316638443460128689643839257421228618457806708356706908756651516646722486322690324153946055343340582155510809780476337801730596264415427819193253862294713273257819817493666306349722630079580586568243796103654181561596092206495766011043204522637966316148137969913756152499591898489494049688913577162659036668841029797809782832312599437066771268921861824936907177020868340564294057637588619270469364218293974247009228166725256541075383704760479463919113759616526906072140285378052372228475344274511563320387427017178454859757458016719623349216764678970498492474110504263714878839546411897017435998158668080776954898377262679637827947607494480362724301672822961331609499610245508368204170161548641104580998866377809166032475763431463878789834069330653738883313718991231713107684480903593414574794664576673868736340475278687380169883150033541710085211586414293227729228610771434929364430599993083932952752043120755634688146887236927603001080558902543496482616807268930659591506432320041128939022771085437383272592396463979367704754233403943789415444007959014673122070984469641307553187582030952962630304359632667486790670369842516870947263242307613525452829789084558478031062458910943504580637400691721084997199185872738501068195890701006631967468536398223836867983026883326776509036050300958583275032668743215364581790518636911576315988062521673084363418976148086611925293236959561743742027553583663004981678176359473051366689548979703558476465170018506615279053156490367460823468449970401424433794551531448849733035705876568541627940760819054770638442027118444863637712604968252211362465183276515792896081208351403925554932566723787695074695697776418072221254685283073981105720701800633381545703630754325018853512459009297199179188400898284667332244882144706054060858048633183699889430497340557949170002813309295965279327033891313160195409931937804189269782224204630392602933459423923389508062340323403734334314794883607477949258825002121740903858464254772164415541514749236573006765904133148751885357144302794979650427897969373580103294301383396676920311909680441468455400771834917887335303875809982149383543315238111261146101600882371675403570919297953892483774149081929009469486871078719087613206457278102297003998229191096605635497825698719647345210585305535551511293519993560154786185214513540438173461558002426021591991343232828754055877788372869703404583224342567247526673504955268561503937874793486711185967053172064359826704080862092105572040507442356009285920422377505960204826762908623633038802955647917210610737427601708018126894579673807056676891445105627941056147028257205389094653319004979205064183438583604898814608867951036733468109753534014413813030050647670437043239457461372944566366877826670002211062975106966199514391013339414672582694212721568773605589394718607519285201386656311592378113667161747995678276013393059356980751454984551904667790459342698410651430473326180015415657990305993361888996993193834673344252057363920977429047432612747692088091225835384677495913104679703824922148767655111038366149663558788096240622454695954620483954348059423333972352011882184643132330704858546965415511803276407844842032790123843889940663942482927413255513748749317648011801621517393550851636757615343198294662310328695421167925323505142783893968893521690491955625364129540696617810802529077504875870129925709756492666443901058481571775830166398597670390757954049554223569022004968510290551533199906074088065148694675797358925974654657935280670454406314879150477544770883099143582204554514308437342234893255316176613042948486931148767014093325422238279608821157226286334237563528162456939697652168428107477439497432644436502201215529475646924959625842783351318374999350165128431234768545270715332774105930478671732378018769938678361771720330256644847335985482920905829764456707578804422868998580849888791334886849030560595650310628783762019350366607900017559500420220378396477980659982642607834333632313118182935725483391151509615908461438503370743568329331853732284062654228712752047901862014241233856480691771712473047304278342107780985859748267553168441110714729129185749278566524795413529908395615278514363693633979774228662208719739164286390605344430655674016609812697810218349276345785046532704503456762542421100393252451188380183790976670860941561346461281402672823505562637943305614108753795135940595229083258559234868859377970279251948134921554287606872271269573609213006841193053951080665623181188362170363338402598699711560060137536224842316078232737852686175297926871080170107886262940007582272999303441037860452738186719997658346969309437516543629681071081464174687597843426168350780966883675834048071518077343731607518405501663026266348791066755318472881874011071800280079024128753200781655282179698611485974123723315648816415999543243505752303168601604230576289059023439474158578649704970616658501605271262687526490592762123753262509430270422451158949889189123134928227136552997419763750116945731148205517413331428641742913822565988997498586573302738421213040494550980486760741752352303582919727162964404886663330418699067502944378581249400217228315442812226320276590158655259461939244731656784925142735790266751769666405092971296937317631428542088730864221338162410613557161673474144387935891521788938393304346266753947878021787935800512801227432679933881534828904624626311182648865866857809371732949085044985398988083737257548420869919983637487803047099874048775296866613772241666039856741686073805140723119856526438449933328821762926198656877976840873035381111056122642706299143336989143453806716875806402954468757545875764912977636041016735992332162173193994315904613474483332677329225755595880858639139165229123024013334584645756522771967591489261937863985486223653478491685253241188681649835667005870904237665244238386798073191344092537751453517759895192476505189497495425789792313717851091219091327696633979547233118050696743483124786206324533958205202514058546747639352073427629147000151852306127735299156927393959804110629343279541075126721617381906106861385492909801990843045144400937191674867334593947419872654075615203827932233327290450890321740894573493596649794306704642703952939133988086251609783126844370949866550459505281323072479784467811746858532134954261504365784041534459785981464378025029829782751453346391924725450591805394030184197905351408912373250574572076773520235763507670988702148795662467646383177879080926715023970972633905783440293687778351734979284130053364148519878256949572094116449497241638309332851307967645274086435292221969330346950123180173858099760710101584833390796957586179642498803565414467726686719073909941061745728032302612757246561990426702073145723775634325836491012127569418775234596938628394864339981220465951197826314755295726032680013161829847680109100351329358957219297944778088879639513196560272838443872359884766678225645910908623509735347017604769213644743481022796234657286033238149133241260796166989029933434158761338085034301823224647185132465952185582611106851552943638808163824917531340546902940248099095209891359255279206102659599232110334915924469742744496609808036414845126684614327935018785566919408044301325699791016528480306779294029730379178858563630709220181038830579203771486205482344786631248603468452071674362371413037406886662436199645159321716058871163079941888053693083671891675446976403059105985822051236434873442044236435439579104273235417622557939216562578323381336974220449352490280905065891923379391147375441089223540902710169697410215530522986953330736605007097861170118347833651034651258169733713973529161689057665645156419789257983178810502733066517335046602782911729955214058401526335307085144978229892467958320092181614284892571507833169884624923981816123412898614375216560141078140819917554570156305406097632815910142116608061757935876222680297714879835108691857419799839435963659087913911508410263163887375700781775474328743866143505931065040788785748879867414023003163806274635233276509683720977152201457671798018635714300391047926560159132853895935472572777540192960006630067623791170323451503160323934626516336576726599607156481653712772130082012033732485083872210787065920375957572712767229867365565008960582677177377220393778619387323050683543923260013370428328352059409343391266959625886699608502690236649557050949844660720995483097486442379883347407985867638298522894782721197707752858929942441802494385997514334427718980909227387974307073417639505587168802803616407951896694548249217814295411053149494780121103499935439014623164051237539908353397269461656553418192601367525289243809303860374288381426617684494117403719816787757025443514531693599101076121342544663016448399136794680489873958687168686044723373577211234119485552141170662578188646434704306432247234597511710316719831459330880753032095983546038353345541149149536356833575031669306902133947615812512658430273824247700934486435001202474937738658839881179956385760036000735744271579909847455808463150178585442873026121982582749989684446476241561725333778017204641169868362933712882949184755982320950184872927281076451438642037962314576008573482007722849717399345296182632023110327589734805807915100388901233960412437459597579406908019965193503931515407706696645758621722749645319330004223511920789611162074152867979869177111578951493478345455236389849135167933790101602159922354200704730806419701202393095416666414684321307648005990464244474465441337952898502872039827396831033097843011029271268290070872414454898935664584841167053989285537738726622431063753219427960619818136147117546657947368368346637762281399493818968783996743268247777030210060241680437601138739035071699670576611845292049345514502571217335592555105607038430845350627281323725904061431359180219151037226098789064370992154043890727628703333325216698393874486110656107768428084670950725472341617367086432028829641813959185131016838864536101426353934298683384327926181694238254429726928265589338235469700547062303674649378886695107233369812144248943336362630922896218475265992599368323751178786904073161878471576633093578952320323369031682104447268596031526520603221844015549236623163781178081537567044642591688418152938603488406465051490066104413757568647284401885920385780481401468728505917842053919646351069313783877748740075431570695996987207278067681649653721649157656538502887563240838367601279260249309845231228369584226026030909884189374814103355290215659835429631515487124507870813085569060924979290351290747866108182979897681660565739764931864488932427870171609439813866987322116653350638053005591287713191555695069163582521755528685782103141563366236637832503834868224787274622728007179203652742096478343873556473824447635252018140566479092080601379059181309725937646121896970334340373696834975244382456321850065732626360314968130711946435268691736081145848922453511893913821664046217806472416622942121396993608437145956188934358023207843983526629936801053524700835317983316455544198455679469557332521332471296137171259433528778452768093575262973880064898293868527185945520093021540574153160398575772001187219511008956399219842601061689153470363079559251731364082053769873068116662417578648035558435366754568432683738282647581241237918321193990260612718323195021322374904768003962353503155936040489227128101733609328411179001709186667813736528537689347577276123683557261613595788345036204031758492037477781495252767358143283896821766344159252414205296711423193985320098872997750890670728972611374269602853702975279048674702350566709613091212511602907820275353045827887721317091971015585668366794782477758949619816221714893096297302255306123895232242684916889074294138434113555780432804933037069452896872229867831158645412804073315012790294490402462819722342880938439794055800703345020367416078773672560565688059054059869049534285939779355011411519800247107742364997048861234094760991923736033612602708721845789976722218811380217535032416264603850296242605944445478576113861819838517960607743873478020930824989439611242118044847002596462796704688887122417399264440136878606447318328985177563802100715767992014970138850275256274894948935024374147373863931383010603206914324806120195908253783030540140957891367989984101697199203148177450709784280583536671799499387600108422716079295723945973452933151424740317647788897439248219425289550827126183599929630613434610244926281565216629358849697815375112674589001177102025848803237634604500301440225432807422901270036847523101016315881273623113601578164312777539499983114959670264501904505192063597147996482064062624719011928743943944107209239293090634664068262910081087153663406257808761860811593793013837509123549527003509850103103610448997864404698652106884501464228882342740906201354861128563971994699186107856911689813602965757513141653618106606865614278993717785051292499807246446142031907688238563695056966229921882807413611493307299956133315104197919941070306230957331632062440144244808607597564947511729514454448411574419825893170165801215186158569972612339381942045058616238092123055016571840850439119034429855663291511018245739045323564328195390979576431217028979405782611550797991815808044210069304124244383039938338147009431658827447977581165556460950046894973191878472376186635833469975579934681382578783502085642024845086767163436148796956012400581761773955391910901430048025923116938453708377715100533730585231927342041468503751434168649928909166400680189920705589962752932218915856140621420062684173205189746557060349171305757158599715040666470880599203578285316054433864086503545321899537181711259371818308608327838156725809413195586692900539780104649232486853787143330081692030602265230482252686828331795219743240531758994635968862481947246016507123649576950727693204791881128037838635402045950885625829233279574128528566900469513542938080326387879469843764259749016668100622115389857632772521945741433789250235261738059340436901141646899028368158889022123216006443834624042869164280898973961763443367514142475120803025315954967884933682045852490760661107521932020377064880106663772332620579387994438288582435978149976773846389867505815723309446168628915499001210599066396738251393731921966337910746688926689729819659681294711673525372707900924992615969456796720990112642551392982948857888859180881775396967892843122946410428743346684130345339282075820023105084245851949868100544881568394816976624805021492565710947813492798909368404901626699103791321945295517173387555590611929013679841365306617844071123956996570291580051133543487197210061673346528396138063858922906234437133648967039622549197525119212085122054577316757833329241641065450940255321812452526677557742603750511421392070727103569400605939858843378155338170088712905065519565161895732869362499112691041569192660758780553818384375129735796750183161558619781393934527572055711598022129292315153741192159072022542275443836561838370692295388436645961056146753634498160331677480050722492292890864408087225326487021879165958253479388400414188479951144021848110712223313491169940817788108172024542071304625912360261839081298082131532520008016839687356263839179610999302433310200019559231588389756059839610483187081015964527396354846597210348794584378063419283527288795130050570666574259531698998525047661387126867235986336246292432546505930034040856756456924693001726868999509467223534770952887246802882762533754277596905063919418392688911994766506701574566520546146018437568126735087056480670457017473443603303553236788549663550226832248717523870145940539806335262332618995648121836444799950961233984306509194055783320311932539694065565970089973612930294434656754030873567639460177907684143640961778898480402016715917602618268854538174485134395599021133282569810899513123032332030505165318073054045342543247437281495323376301899675998124580462420825411003227282533014314715892990352443233712248667660095771575942391031583143447117429055157336979395075256122144944256504371154427805579290260068230044340367669929987952195845324917142060938968093451987392015955142361523033367345324776806302455109928175969661758527584829887450703415196963637280602843904248207839010555274098171445919763744541160777280827828610665330989112173478802425074665493947353544483851112292902646903989349342246337567623978531123783272351276451137939541318815676534000066133441971643481926284656508864579102869104565005395971927767726444545881389940098044533964818242927428394512703691234120923256105021627043491168934928196394635800074004091770641945235053984449278024127609384391143273015459146058824471135599132571829264242679507928369004469659735462161136183601100840529806055633043715160119372559292748048807723603280197993546346196297104260606013585333146792070727725218504512159693938894677708799115732048226496223247629290853027223457444330311848539455985179440701971226136067151141923933565986317446069605979809931896465849504327132001035933272949845176630559311751310925725264015967028180897632856407238295788881221904400145512012804060436550689364793452795811639972636642948408998171372531448185618326929183602433913071518167656492869911863711147163886534108359463753464185398450212762257943239986146334591639759264141019455618029925720655910789470182882348122245351176959068508723611098056293983300541284273572901677550771494763563635928755322291995104297610242410704989063591773797174077695213469914228129195110794659577143461557984709865139870570872438785237121717202186739689014585102582501000573528698228760693852426238434982954716855244241144430361876661324961556011387366992753814392006783230551772920075735946972288257036187641684252350151681293503493201963526930458162876779676835903382260814176705915655790316023253236913169355163224172109730175192591821412916220791958767838675623358909104830972138150669455918226401962558343815062974390783672665843210833424346676660958809600940247155964666594340383843866409335055395393117036890847324924092519160075168818633748429124624712832921834733673383509450547200460696428691292247798843737595808557863663185722041450375536052210567066413309847899200456513146485653309426838172532476910605688196140785856457260736056425337059220212453752928740735422943258699375739989733287760214413309973640102623014653321869893462873953898865429493400729886433193689954728420381054681244501314510860000673662015489352564711163706466668195125769641000670092598426068007979900277556389976859515067670842773658522579905861591923182239489785934156528266750885361134951314495095149016318020685904558284585123937379552442499969781714438638909375921152677797826118184905435271294257602665184326955329868977332707238000587793426296821411535395933397840670202616874915228415511769396991408901131766194910572725735895112917952381286992409874811308614387033240350498820246014376270790726560919666846626952085106646866501401967151903449819210428208561084401719711363625190833774932229601001806906964526566363263776820798411738181016484087416484180783102882681908428973297671384976992735411182414944077403096357273247929915828895499019328311848442787044006202934246681825822446918587704837848993632779606413622430252369965220924507850645256225651715541061334503396555601671270180684655802684535615019410947035388511098093706707502879806118490833117701056011884353584079163247287206237190271614707395363918429462606649945488852386740633753338280717971669753928334094801367118099881963608950308121650292945210319520338969863625324355126796300498676731433905987417536570588643074219010706292390907558320893569281300447836524526903572289918567670653150348948263087717630608182693497734983168431813270536620937589835122377115314434856937379742607023699756249349008987764749923331218795623466283410654666693686210551576299381360576644771693008634774559753871260015875181616179604925288617841833284334978023313436177411434705589812482053999512057805010038369357166786718288734722037839813952044286373920198910755256257134794132409613180559178070763930935486654910377211846726369051386357390095490457882382357084639403317412061925029598747213573797077798107215014531107791988922276903819260862117376343142614953725471612295675260041849691357429319445631546996874521846115581861383272891987974368393152391848069056245881564650006516448231661274115338802434968908502613984260753079864496209702666569360821888865552295951290033194677885059566809373484377005580534985378710134988336717156001280502265873899354871955393178305265037705472574415871820833676894038790680343127718617922406775366583634564614542597418206005599886134929218400002965926830517791956412690642607442384942023916084827020044762990542053092270062093565090075043936425350915861416656648346466018024479842952375778168400936560187202381669389715637192144553904225035211501406894671488431596418719327147910195561052447111188536500893112361722156429191717748516378391911707271957695239379158041799823425895593831742279577865604937428125023858219804648507355427610810201281507919370105857540000996934194332788330306421119417370278783768250751485132847798587779787016937796055832103070797443129443964322711611489364610321712079346586447831898353442008129327044800916193953376705443438287356331652130145817678662268781251184755203808329793758279789105463814033941960992305250872795896449361398752637724094561194752919618355978767159500658835777007952136509157027184530196346606858059915265489542202221207359401244101119145910690520985029355445770740741222966350301001812620246466934790246188255073871366570358419586688072410338399799854712664648970750390123708937431296876747571295515540673560915839987620787494957721306240900926206438096341499280504442516954302037952679156128282577371867604860407276203887403918815103059079188129625852860346218318661018904205498880341203507495543950641928031285643479314060286991417830088969755863983859404292679681869848590527973824050734458817340049992618528412550168592303580102955522520068081021826028806163709165372339845971404724910662026578329128845050598986888356050219862440631092106119404743520562771555808189270735779822362573848257016312637119743524550567474507839677736279496296017751419671034284641032648171141847698196065026301425187023428200087273660658954837928481588738092038957975235243945128863225651444092704740591130239161001048052636977914453717841164069552637140115672191121700381455639636438669843847157548841629198589371361827216243969992762217983109367399243207579913027050611204823800080140624769986247414590211353994139519380198615571222110545130126684398126794967689509415652941664596951430746265891592356967320357834357943354408196528599877982148066587389557225921918500512373511862184405398022496379924244028922202132858903123980817445882991924990255165410808209963047153656207198081622000019630736940390471350581023013125162600681906822915483735661843454246174080567701295580530001695825615720125771761754813493625493822230474840583342975214981507231020803240425797330335916675004621758435806686541481234060781101803516091251085585230428281946246854310686590524709345109204275142661803242023482714232595546503032350399384784071209477272760611422495185173285844261271762210788917251386910066986588209264717544224061232944461483936838104811522964540751340267074997895254569212168034195978367048291727328043300738568743287082779550081248959193290319806183917398677117800034187015484078516509978102178819557598423458831144769581898978055701119407427999490406825589315072069849114068599550764273258624200979447974648620183772945836832050060766853420197630130869683541195728794179516688993564864014999809757612042436788352524400118885989745433611854814684921753566786159538314043062009990294309908093163827392972401345424640909260026513464048471588042090671744971797483546633242056314736254211077572828156345297131652937149512682124879655024489808367928820837648543604845665862801072822106208896635182795570987467721775047607086513822587179330053927416045358516409419420120810061355649064178002300680930709783041601709928138434692771425336249457150844505051605043057497811500877347258019294572751513115150686634137757243635059140906437757509291297393894352061317355069709542821483750977762256785986155850128351962109017385958833716942765793285844443524168735930722441939300910245103361183456246813991164006531847667790858067651336040069022026611648284173091432039416187652929638432147987726795351401255371132289394587468053469076151583106782913504376238642143521132233934009274432509571796295461326905731408429709860498169490795573327088920498435977527395771122114866594686516873116531839133915979040180620098498003259581208877395000163125591803173765866709688858830830410842762959938256280736094301396744165318845824694560669807135199416652816356614099157622718037082595537426343758959782921678581852650526432347168546794213825327785873866985456972379703425948982090579941135934357584941116400008118335454539579415425568500306593478257832838668772855668070592476829078703594671148023216953449427582307710997274254452890784726470731490030750918282860445170176485548599805091802016960882513433067312369594362299899227954111293503590961169587724520443173758348865844884097346113944440493462079015955437267619241059830878875242655413607849855915783995063950086329765249097993691990117823949228097677166695902003190997382306252014367700685166019491009341816491684112821320709755876988062662080973355742440860197520765936204202734934631198225927678975282872171231699786209986509827734560817963793518860310169258693327864976050437906492554893054980903074027345805988327175300793060648874821546849658147462719323821053497776107048235611048946315525472302745530092261497727096688766082451978025430424854506525521375399764356921422109036670691326308022132197979007588087659136108141790294636618101616374821171386667801075016199008578327536396076375665364143427950866217974089812327374264161367492355869858955238949789109524171445390257243710486982259611292277615761009710302329544088115884431294399742150379457607122456880200726163454544760822514717293759673087853910024294100004752256090815969310777672210932043987123168715836538952303917500404274470412505356472302097754383607014218225693956554874064696883616695682427361107955594136296819056040807673690053335040983584323682923772995368383573296092143736884755625250565959274795502149886745839493993850726918945305324871903000615940092315900793584926611799721646154971985971106591072523248238785885216223626886436362352148989356269586601278433684827946611134485913475606178090920806087472738752491246076880387287035800311973924479067891131496698269699406986386195833116916208598102514893587913958068236099307631542091666761427700515123968798610928940212620820280702098035253796132194237717034957534887012400682443108534312277472842448304057218587478157979751443808848155376750161841275270786933983138154066577825181443550549318865796147843698165826517899245868967913726020639805197953428840199264774446023326930165345188937287449766186470594872993967740110652527715408406684646083188009614629410989743601765603494484647042419220941459049558285996516637618570822383542452209287618705875457991340198392137069130169242548297179853000752047305182379189372069057263889251092541291873367290801433509859658511100644068586198838614158417270176171507274276634388616101465077083535320013385260980277187946404524331613205036827732775826742378897301848042260252719841587090095323620858186428669994996291925915974895356276617565002368052896357388773926768307495625272936579958340622997382483017003305944495195032025901240275312089083183086395697985578583670534797493798508554157713340885627454296008588617787300386469582631990861522676473752981236975002314816451761361478545365002310323280919314031097046555735890571779908490636644829565231371081863036253330581244100651363174358211248617988614270374922607943782957557381777207363485676579091409379036038973235501052765770354207246497060275548202488416762071989333397873042273430531234788158072343337207854476656403284120922782475055643639875772824124612144862994072542028553539400304494125614578693483413873264710963485636581839276881183447291625011546798256036440261657861733695701377607967643331276839207788984648737815347970162980012713788618241416317723921762834686445066513530441936714510420016491384262584831878672361541052123054227348610495559232866516375308352258835603171077837734405804474532289471648963726692518304567716809296753521882929076223648322271458928868431950325861474887669345253875969521338641344379115588470337240828899588197688339547018718876854219713622598751690094635740149344441696354143771889681663564432589824839408738150193788171940306919767952128840480882896915076896738071286820457926453489439394883329039526861919310149634645574283944865064262638521315879407511608998933659336952190075972824634685912560617572914462140339398384554922194100716382958688943610826106852483186501580183731650434238560591715205021173035395807589202502989759530231527677602272341426341721733910687428713968258089878864803423794010724853806312683850026799369277913838528771494075010834189918115093235570296052980414559574641452480030654621333150400582982836890336348244690176117208223366211496895259302016248427224810659610764548744170792571868246323701330027869445623375368854644884196110194302714317589962213336089915333767289112139067293469490564628080671654460658388717855019156705865166110938086069837937866325453816416228679747653000605008997194058621713083406500227168672727335474844411130858074389661915365589133327402059292615448110895669902485413337742562343969367200775962054966037578821761970849077784600504426835291450808901472789931012002020182008418400554907650534036598013342045089442182273693025398061228526055800938467732472369545382530315954483679587782398177495393259506375994521367317148228505957781739913987709002550332169122288365315591375562290623423072657294838967530600841359327903995456436850191620896908197139333462851329997434162648825540431491274748035627205404565454284186567947059164072880644326560870022560767679146636516681720354324361664295389560421906414753365032551399313490786949188103455456518046307751876900268088149783521974203286584273776854140328358842680641734888952564559201227540092772308255163115325075444169682501547819391341599328965159697247222338758877313337943584323819320260531326545399451768524390434247486383107468819498176000010651743004176399541284209296845968410061786812182272965212478370513627345821186883427361377566040460761201947828252574745417349303069913377839709030818754413834378765588000081739958776240516946600289332184337978701445013647189736419139529297046017175341215894370909264494264737312320015108951819775651336887386760961130825638296244898957604732284525218472582235743850583613894455692102782146998518224814801113691280322377873436619087398784910546896210832786845933047591465408378729887506565712679495568657980930648522438294913777463637663722462786358201094319769620864344931657158359823253282139474463799596816969614925612797619089753335028039476125374698276703079038426321913790596712552248683214105800524025642566377951923524196820810140391102030497328791179672953837604011161814053978614729012632405920900123429540889804616661200997591884504097088843088570857959352666743653439682805643729741548660558514934872685088836365726568453503351705589034227754260498931508498289678899256388638889319904531293450983274937575828585995273110263010180668855805384131697909104608995334048600507706850944905635464200618269340013992855726024941482311276997958184736409353868586633845840211884775980214853911486302302603405557532033916130176173182949391041176228124145433051886810888612804157558867005072510469332956659687531915941960962473071294666171670623137405197588728251498538538172719496933518036633137879542937413126382242173846567470680126807178301507992098423333294625364482009065872300913744599134069471232334350093542735363687779000822799147703094199965473756631023147495210941552074190726685904983123703558949950606155429708871409632148933391402715672271633727947323523426565453344978151542280028071313394926193662537034808067770403419567562004319215346991885955813389045324013466894110449783156302664753856325572295469029535051843276745041630702813837645023903793447292049726670184341527544178717997480689990988414067384983692712527156238520925099196543556942423777270654227752486694689278845172656832657693149569051867692572393026514136934125288193241455870073812244171811029378686389715529538755689280016022093217747526164362558199687719507154727449175700867421576033416093068300348627984618944396001835702860756852174174069646480119981175296348917183520357282642057945870577009397149469877711734792086683982409090737809150971096173900741671531434481027549214271757753367833519178968744634633344635505654104037722825065588121871879853711418293070401340251364142966974977395322226623182260507873035471124557335613214219533019020493730971167618934516543228644990640015698267186317678346466784666544958266273009748930553849100025417860278327764173506164328165034637185007267729260075005566301714468438642566921013015615666071666496843695960718857877684949341729594398394107474664894956451501033320179837651923396235632322750220921451426041655684062515072749868519475244049445489496140766626881971083956341602140410472990663083385906128432005587309456644245007145893774813019011308263316243396670446662581335553592735022358023899782589097308678076082139665840898348059222655713335244217775588277589229048914191131032816748955137832775036561298518018518177202378611442620124980409837195235787621392621007501789775048866588616527544480742480076231788691263657099460300983844158588245232666562111634179471026711205800966899817033492970263561677086729305577255036881886817137402262766988873805442954569263528035277690483948467913354512362097572323997976054128720863750969284449796325033371341303293185657821794528873419313859259554000522377970371627587722522666787623740704429457003580694885520688889837347976734970011754502837428403340409425257999851566869189936326563721246188609597612688574771956743449634333805074934575804822685304998804027647904306820538616298841316154591870672378539496257681436790918537782400090436622156445052394068704754050215891149791592799658883220891167635599432286924020850190799022432844098231554902656288533337850698646989096403065145186213200891182528171623316365487150770932651856879811912510081978175550059612778223335104834683689363760969102674437408572166554657911398984518911552998595266816986090066125457307709546110115460366107173454618351722374189650152513223270785444562454925360681768501251742180806461998424774248079081351953844312783698706822822221391936473330461193469783227640854279587594260139228921199901242772939469647362138738105378947865873028728395393693068495963443996403580171029032578158728933828007293545803518047865063633569849595654680375745691707662138660426152272832485088686325145509195992579625388622605978150710788326051862671357731592253022087139995545435301366261788603248539153361991128800677683849657774637445874106472980746517793981536563521079461050444838179177362498309549332206309080509138573946059255660967295617160706429095987717453664947982634956764706779226861718340547652844736395943656609470483882408430681721182367660242928464067004926649587688371469997800728661212023992787802837497540265174048386913563956320653517554455808473769251042966776723850435259017117584764865279771673431250812808074511522680142200450744300029574322906142276753428557919255899197767793076668648284876204266047996912249878871634643850822590966903751993774644948045150743616423856097402619755841631228165384151993744393100071245872683670490735407793508866880887749467207340684673764962814416356969692750478430765419215617505713174371519995433670425348077412745688679177776350967872564066124117246882405409290022402255949854613063908538201172889568984038861870686006701381817674468170936662383602117726558847158775686238534296556735426299213369211051462550920118327992299919433177467511963665922083146319601026390367780849494319389308643727664793735214967860432003303974236614902662062324852783479661652085606439699395909616994236021257627285824051291733456418836188679782356031745906419300984634495357944284171085156493393495315619258831906302553575363340430532933407866332227866187150968077186074411401888710482344271687723197591192865545503386524534288107572787923890799785894436260681577318009329326988334883127611996803473541884811960157722294982759433481217430064946643857928040752407290128809325905310906805898174576257586383012003224928085650081506122942086683071163110801888153179974335382362388963495658905289937332933765473278735883485249987245607564842048608957344237004701974739309665499630144521105038426662037459557115937543010282386832365364133655970460013430634465747554485133605209857444554521469955380146171636506284071949022782671215772388664816514017695933796202161947997119663730955434994409532202172141150618678031288182181007700899803736443689882006741242358414994556627722737771353645787199096549061194634536614626434727862876545298006212111258360673439217864764607306693375396273636694354665846431680856406583239375811754209382829000400149596883809377993913438844804245532842328549391731785262504657850581239923533392239007329424908236739381594751098276531463660267488600486456727247369013880446836193760949280324683072852755645217318649289063407896808957311078776085373403818798195216949001748888820944262773517878642230472775123060714927725062650171571013251622608515297781645874771851741296324645995321317629008527496499169447992764200448773865794701357866871605180266226897942853267977243939189168473860216217170793402472463662710430791655302995115905776575881078948486624319757095131800653743013121416951957029725170625665218484144472512833097279122928437735754315997008680250440075916628512472911458448362928660496334563416329432305343726208767407320048887613456715089234502749191012856939745693245948576089615959009214944684755382712532832758286666310483916189475684970818394510742543405664851595494810585401238468853516887127896649052164483205923522700106009121094093908413918883075613011170898478848215357358930566171591357523282688161067161386383697654658382643041455495346464808180888554606478120428392548924465190145565741018246632689027169210114382472952328121051539166766924239205072971592259522538003819914266961423074058258386890411344670146959438196774562419343037594661762276863362889652313733094930035559038173842501325596075413510047259473433369179083881140418553835872870608141932621971993369105799139441393197681895114102443091833265423275857224880314132822810790520439127088327394183755606511612538789113633367347298951689299347207563062663311865024822459526443186858054739158163014944689655176312144366418835467912950092822313307986064390810615470167533957249937220695706864350397967480589610625382992149410685198915555514480036144944218369517314626785557934663504048621950066127178652710781218719481813996687857934888997832627948286451986435553100917535043983572861492685211894536719077508612879388182821078342429261417016167184051776245974092758647123328128085414332270311149755941862782633409842186509812666063947787581049640273497981002529823390737013898527768847124646830671692222738630599917018963865076997414339434320710237174835997362878111914398155992138078235091825654789075145110341372587661137181458402494830275913296964910833343564419104769905221584423580243355694038193955808189254314093489036341340294228868338209626854869303556191179271009828324736453106975626210028813388562586667892352033985869026391434690931586734889441685051625254191829490897924993829573767416482212123880479724811659420869353592479510145658036993814097978382382459338939236468907560545632679494675276684960760759024763397357585711043714675462287619498461094782747184331678028055523157317884916712750349129578030588003876698754780637274845268157366589707230806468305850588370734675900066310397004942104938269460398581511553656582592602622653963426688511525578670643156403653311777115933384605145396523492491811997532543297531224054891716570259062106937720646703412716670522322775776433041223599306356483727832719577172271658076033615237648414053518494505565609754544379656995622062410448664674894234837054617921253469165801474315908617729490509386642379446453871790200815834822086119562281099450466944482872114126434130838382972688040566256238450297644741520095246991343278689045429465196356593694236085775479541142291240593413351224985404044565946356503812671631526096816556620009151491070817435639176500852735338410166659655332719055644124920072874736639567873385607194567204811703655966041165192005398612797171700498759641218918446363022665597785365836720995756880995529229601112971053959000870637356540019939684072573686223041727277723319644900067397854425736832805298730949980346959576070278950759886896132456679878089855987799423800204696304570772250299929084023239073810707487538996411934339017970784125205480554540898166674735954866564861994201247367497703900862602220340064904234684457819868618851915819746880728596389644089876545957608397386948706551044998157868636787831168639953910690623920090244357027393561884563998555017439979518693641960931072072467703247180477209468264018780476022448976425951144751639625279021103574022330163340404339431212325900830854907693660230694355673706612555177385114535812267957468051244418878393736818145017656407592235866724110701868822643355961716452226694983607847522611737506825972951104338148046359241309263807657983587115889906659505054558639285274820773186953914347067994981262016639724199310999049881886903867798587582714729611147241372199702497819784636216916768311780542110489788338594454079890226493325688014456743908716675448209774088915447580066426541244849156641844709505000426069212984628571497678890116983785522955913017209757805203289992217561157564391899648903345183089353571471529551981290452393262547695942918559632482647122616556661699218503581172838131067258868540252228665633421985200489179851033803490655630411841762697450812629237911334745745664526464524216062884255757827440589817129319918465577936388284665198564437684378904485084384806580597885781405885531560667229055814835216642742224637478580371038450463109164133789013325168388822432284672969588735531931044050430818090512064796862690308188084319873409635012911192837651884618120100826474219379805909888074510972893286596500879881805749028266693359935426923162162669073994176881675462082082912650477902170568848953749720750806232362249215175906386554229086170528659850171382702396820858249975394933394205721346708663233275007879981509555313779207127743384496321340289316157748644319143844158005207845162556737541555046534728651557309148855207168523172462578880160608475215045761576707410767976149741867997854739116550915456966255483242997733426377598688234462646394606902813368937123040633633934756413624159483712156878473556176972931656309534178441296907810524604520473588417538640762641332082037473191948640922916575958001279473965553660843206154547187723598943883988011392872573760633580167638543617713188385198680472403171087454020894048506237577867042462069984477324102879077832490938735688768759749889896876790603186511283258822778132844373130054886564331273723142877147606552349158984262368271213302741713116922375065293231496744569107300917940864399477893175196480566693885969274778609398497091199738635276637589918382629283709776425836333978848832118522354530177767799530546481616538785344430126943999594913858306231045921337763169133096431669589713271412963572950672668022160692016975794175222026653787375251498182863274080814725905676067492106149702630244957671124749995097739356818161885619593034469884694039092488588836387243381065928150011826850241480078758964463934587416694167517989812466429106761143885532791349796348889715537380348699609622783313842683743925787949809517970464684585642613296258712188521390027002033402518744815284248083310685245787083658576744846109615258243401662239922254086071680737270794055619900449101270031015626060920797406216305605032407805932187332326628553592690715256598054803607236854155295536457946015628793820407044954819371259696043710005029181224598701809848918532558128102251059181072775810308872138985869662476635645786321879216950261920547735299586158615337189860028432829685713482123996659709867726393432150340818302845574149210756024935554765015290824568578570401996132461104574038788993758451861157331982874140168541202924704719952665377210652857740648313119084186852604074719293144501953112466588216935185247607688545201212445608810913824846226731807341250351579173740402306956461331103456679094871653062095094628518466056319266215187409988908665774774861425308038093997121524621838995867258197600865821872636672669399048143847443356171055197210804966285165651630461230894648645017162606523090883363444863189103197321591913378343605326643051913854124755079093651238282536873271147501258258911830555829467733371705136044564821520708454894817488536473003221958679093221700848414176391231039023831627075917806986144271650743312687955899785501768390043418140734312164229527473109615249433336028200368034409749753781303524263765604142455967476789073851517678851107533224349725086379582699149976750737005037451420988248352338502873282507976661142838274922834353365769384019721339016405284568451592115699235160109033688716049324569120647567278222977809787868125902824910619798873053439070445443445237182933689420028497777686851579301326814133854280757115547604593373057492485288417999111573079686052654422507651668821117302237374348358210399210049761233362560951107158772881726577786106674367025025683917359831874580779823810423737689210492939096464662112014771855717225739847857301153452471846697926548689290351357221638220647803355077426911595699737068653873502235389914263656051488554918110654109462707369386725176450160824270768720005514794390254921206747087672981551456314377622574483256804685217906837715401895391898291665335920814488189478023801955862038639683520546046667409631282112003126902072338548133073986546632662881437367121728350226760925958667028528033725053241359305227333622436779230625384982674196444114677163873567790667788218427709250920799521451611461840425947240881569086980594777107918799364615873984381894629230979531439111534830186023581887333027655499466550254021886718782863934284776214407287362033215900576765641045748879051739422996998889097610527975287202619098121852311632706414111249827073326491136027118447085003660649819794501498401314203706743028297590051834951853370977072780297284801969808354171160992511757258855771413464864750133789546701808741175290336680218195000086504990605548336987493373142304858704645410847665983878133158070861551710468320543464675809641775319786548248478571845260387123770637212378812396050335570682855886881078062428989509562943204985909786012747272192324524139715706551571742776978211714013082961313179114345674040921911395331135080750308138031141171249469387435898881628337402498823349861291316470662398707216274577978391040456730697671545331975413240476590083737835538228582999579669686774140257494291626096080361762701306287352487495601885107034522488525159101422822534932422289155761963608824408839937657343454637022262702217003277004244861924206023148621788767660715781227493768687239061364508575042162497367846781676482756485717688101619824913738869866859209699774035952261129250317317400716874031930994310545607628032683948061723542035963963009249030651518274381749758037132646370151200936010776947753512523657791369883153984418311518520449054639082883362447816520650380298888355022482281854131028487075835052161518409869403270273127555064574616778720957768391845372012176703130782376603008864971231851025518139184167378742692658574803820417616205682031426341692874657063387769571533469439796015163823374712993631726068647959506219313324467333022810714020739570186493275601417105294821727033082770226624128693197766856379435611192464536546128907719140500520152980966910961429129346139583017195633622950039918172795664710001125173031589654572321038698621462813839005056938269928765847569614815572610310859690698259366106678678792173045941824331345382865648920802639327823168152239914489848251275567313128960850498748722950915586939904300465306958792963496702951400649266272557300694965822479291444645109058631663404362615522822369744600461192394188174875212668766678163423273209546701028104677185545739904718600266971317676974270437986069585536516739258597499172858135362117844358267227883865525320354223350800721777099827359119397095344118153594086819741521017150944607440141500499023162862068487757898947212152812873476564013304519775084328027123971164448426954533296597246885707984225754667057696216301903458383174884740236258518080898031575174015353790456798303071658910559608485975924443836519934840445202596401993299095704216297516983437633713364339469085948839624338962544819401053719938518673460204282964007041159783788823403547129701076996533256739021340209240107342357978122641596861322369702561507511777360225081776594697641358731155672926136176291848731422063841396052387155333519560322236465673255809208041912292091617372282449440150702082906003266037197641102783274639984596357965650824681993457111046647549292531735083237621455454021354212220045729740507682379075949039255895753847434326306393383093164464167444910616629859387875023629824451465899622666429945627445556314770308750950461948599107541997500032304800872979487129776434918295132078294420927206618746904703236223612141922699707469588552422051646307070612560445356076678012954819898193890392873548811449118673243313148303481126285138402943912978967233836836708739531097582736092995704114899928637067088901463094456130192332732115279645799542419500434774298069756453798648663110115654052929378508779171906541238065277832803218158105866571280133208972325771475542688241915097698483974305850210240274372701424799499848406263149259796014184941100181781065556339030892773666555226840177634955754558452012735147126766427999485848750362842689046273005322600906627677401268124013948645605585662472261838461919478327936754140737352301924302779905120328956461732279261747803957401090572291287518694493443813712312891676936828646429190608352664394260448598280281600858111319582068124770924979709326915819134991747960341905938941014220338564750185360689116254848149272779587460326002477090891850432087172008992958530849908406846729111819851597550625324827035774640111890053321042736145552020919487300208562554169767118296592563195674325662982676117372850696454205773736863026336426949593906647858697834771499181898488460499121971007280487967911545000530468460392081368917880656740776274915403092801066554838527560646523332018882565693703595501138458962983783431199389854267874590733356418693501067343754987480488864754023525603018940362881810261505645093724624071705929195548058435809481039150113492229958000560195115189771258631393054229239365148631532103324481992160665027877132716903551410370626803307226256343827537350072792745752778613941548044550897448624186712071859543442631182581514683227910917369678520042138849601499427486268500620009144418456460056026811426581811635583593304268419183801112363668741984398125589341282627896356285478630374552062413853023730701374802055720503853362448396071090154737312694945153126012976406922011005461981353487560130620853350478601876526787154706215678503236044089464109763812066596534274356583563409374152827453227397331938178117068692712325855178313700147764054136710939065115757266858307428962607970268269667704482218931109927625896191638386224102988880843752816281916321232272735553455222519867744947084216442864565006597117876098022481421741993411316721706723678949519892396455188304199913844155260848332690979963570179014631403172299802714784764949953997093276785837888106667621310678321763315224123466247183239966122356360338949288583336123930265880214087203861526117766243630324746913582210519556007475040361126240821394843868928490205208531916737137835438658037755557323412091026488456476786667024085066133252815451339008000009907760612955439416045020205025890463369369416912859471971129879150652870967607323774549957743407841286109779178028801106691586049960014714084291746820803447937828915059494394919653870147761630247900734348637999165597321605153767983829066235968861675858721514310957307463509843664054624503509079090150473069211079137894906151812661287779617384717319641689738668569893833102342696955605850758292650401349949501352602130669481658212837381356701870243079210948795568977868356446916883565549732151211763244085162679436835760682205979470274427707396690142963920973263101697668202173428075414796149369234211958112390336528135575283784816755581033317124463560615807740266445501489425431517862477141723424312737054287099017565079295212783998428077880279830098870005320061638031646137776144267841931149340916404077587929886479470299249088449489322127420555093833959677133814362593850484569622299569209540361759849821601949577834924043056385201339272036961797940742683859330567800958153273564745603457038712231122523824452740846673915024492868877420395912559133806805543540142984827231859357972479524462885140314681350748632856726175629448481444184713101654612685242251389853362076952373825865332821314783287459037892112762650260014380996701842479442391272456573610054174376945276008191462488237503539023782251369046939583247386887378637835503137177033700776156333967395684146897323525362146268051122379109237179154016632937415265973820399765411033577850505247581129281320387097174868396667581725631211815735477527347918159046868312642997868517640941076319771781827552900627745462826225334616105018911102597850456790355597692733350891422339039814866900386191615212408328694470739680940857194386708506329789815517159677786552732092560886329065975321636887585477979915025216302481214151383793888517938122997984605009013482455721971835008275987170137471434288766170815470918896936486868745448324806744505905918258018698899899383465779530814504184233379993584871289193593815608729374311927513029427051918537623438777953487688641421645767798646191918180318906200996549867304386724238748077387971857669116107638148457311123453657616226806459039065372224901223619661127918506538458544544696290758780811228348547916674349428107754414547446006874254568092607869533661105041096314569174647486740982009585358587255940140168008245183442297183730620585631155087693559823220209711538806786904258153202027861930088861290581672041671321334226778992105508157477758889681292138471256014682002485790132235225088779111328237348579293813084359574749519224606073916783933608263401845529273472055600517783556511135431238382595542790312320206272629951891411156999016922887305096374091826628245222730735065472131837834131898940736261168573942568383746661454917747105206523883657142596133993224509787902723926113940604387884019637052987483794382130635452402636743923262743223615145376105542887282655826975106104208677847607815705908356663844845454555399811155691344394870729518132263922379963351659606210097771346579385833144900939688952758786927790502713634466529911179089703600613016523022613996080064341792498218392980668012584697088746638542461131472327527316669122479096743190850800117363303078519290856158790157800691415892874906164064314732315887916942979367921859535136320272507325155982368671249609853790169740565083491539712994152444064697880185636165272539447830972328083275499647021967294170096643643650114589659345418725615517024453357907071627638940181956257893535258926272379473151762204972244832496519239616295586510635445877561437101591144304409944209117972542481098680357452203282870671155843904258835097707707215914136857581471902989035603928819781893434843445708940793130617157638928095520892613094172219488361806847810992386575443947106422719877023431146541707046693975440490600033024043511060121657570829789782487847417718476297609904935524328928881282887073873661346291164296142897582036250761440827965880305952357178822116031923351436886849495830374492938195478206231879334183456946535876011662539001418944309773778579473591520747020610801832121720819547391681881384573401214894603850862364940398724681209066198811780669273568219772554668875476772283348409059530691744308305746825135905263334690878519991994132278951800631427510212919039233750939060024791762370446394971141510199460679886226988802442301256213967219943179092498674140350166857959865794211060963983656515463656640374270660520501267639332558930451279160946382687433486458873011804558266359325552890385441674534478718734850371352263965949458511306132928812099450773468252227222422491624569704463004184127561585608506740166211396347508174024188534373392433266155740089986782097375140768389456343411282487540849820557003360243042291834499620559959062701117951845706045736331564274337907652384888750756782655964591415426699086746197609906721408363507173278220685174627847749233220769122584107337693418071798341212911533698027690656462268446160042656203458793865525092065095293042830144967807263517032822900364966361445023164640201376031374808931567873101113290050037023035396457234904832497977712581304739667552377538082338522938446599307344138448184719084721811977487299531811126961331010267022649188870493844873981218081734592434619717370000681988498492582221652523259333664993671065141732058284932403656502734491145674230395424564552517873671525148028815045164801327020265458017272858535797448358489628115434445453051310081935744000810665495655749033648854314733585597380371987257580403606213188173542365065808239685465637972594191356282960908684046764163180102797139537983156587905856794445021809988372712909676141487233595006816904701376482597485130362068738878023556986632946075446161795528006084038170129026676493616086835768650582140131807907695303997946311757763022374966116414230182016368818152810362019990278578206226370230354845476741546499104963983244942900507214366870853177588256885179537868618528708232779591083269345404911521121990677564863800695101731383676646160012312417890172618284557525283235324291041685684867638275334535983434447287260842236820842609792929079662543767580636668423380343657366851716639346252991368662912390909525122356821639681650028475332551399326218275429981859956178921178938592536521355200734031960577383835491260489950038579574164584028597335264373602877640489835517026987776699933802635828491281011225719921599181641621947518154486581184765180495473430855959519155335549482899274048188926177246915693931408919397371122976930839364723531295070871934292890146793728856274009190066993217520534882506505957063950073542135866578589226684038749677770177040163043442061163257210413598404666508263193057031216312800047294615934184994830023899398811343941794256686334896160421333087726885691076359475961944433559300747858455921511261137737836977062868318989681294731721216680958373258105704785105773834394060655634332611097766473962061803209694017165943786404202375732023638938742378016505986811086477647643769464531241753081440883138024648615192406408835240839471510380877105649814546680189273553153861968526212550953873690222812795601000421118713397240007977216852906669658220627835591190451718548532898217480623856714499882761740424736254227399494747227350033907887686694441196822220984349313518795723187954148686185238655713797850595943909693872502495672297520239315666524623653382654339453341960991122498062662641826722247043117259405156030373076225022631427025942883395340192632925946826534723251006427139481543118850043581785956513285692123319080587882399866418467390966544547216159632661312944063919447470887693900470372114372464862082187738324121168703322003098283066435039212423046625557921169728635008483418695276173042981082159310066266594273223453697857100093831760184725238355057520251227796820669382858111087109659186282138128254708961873533520805127804165928703369840867789922041665853901424284587682376714806191667918017787877615681289094138206106625500520277882558201693760033375742185336954376470823133996064378479204979670796372944165559821132998217287148875435757497782550087880575345711401503787187377742480020411411298189602600645348684024576026357538171248108480753519453049337904640110661378173878115355055707262281724592660590550261439019697919073576608403336987012243236256996508140794119368026145743754082311168564172439128564173425933180424419924239957759140726882153998750058527479123783463218119148853244061180631601041477423928923371209303681324347247594262715024378692702692968492487797180844393987609706341614708987081431857335612109049201262814884527534241272808478640263169555956659808726706064820681366774812099963019527126750412818021088998198779827676210511268218812004911810267466655174976152095755856001700821844715552290815255867568278163963759918413676481112868744188997151722786876306540639843055689339434658331712987630190416416869912874349425549217958570727789356107893442371447655168468836549724390964381717259079615114097522232782296664957727531781985473435984663782645886315229206492373251833439195604872036627518973689851960925962802390553183742736788793884280233623123589854073920176742271505705730489718734734460069227560184059685819568197645573673397673878089422131293249690993701733346299020356266063256060776501505008441234837743171006838673790648824731252442153009676117308854648379366595258098161944324707897046436695949559969027305959139032542767876094322744229487568712755390096630834599246638958030248663582880684577427699046580531698665061308568991335350739009974812771480053927587612731641245287370338089544917130846103786706274915762247037193545833912337238377385323187670262985836155404604799309886491466358635928674852154480873025653142175949500697162832201391485418923265207365902137534699838151630490406282159289309903527207897182699615530455721974257586776461059774184863331004035612818039527677913826066448073768099391139439933124076387408736943039573315623452155855996072574846301682926689548147937156777119422198069897026531283928986761767566500530144369995303614002623569638552987056635418861304425446993038389487074478070188465596339961045530568110446776812671072964797846719575792851144301772617233710874650081673469440345467039504254909657410672227211244005911208847512736351418597904428973899819698134943797768541215871539782184474782703477950978725073612236760077172695977815515264725877633826446917412456995925557329593217884285816924707839273978806121265029900945874416347997030382411800094476347521662281512380147578844839628649893363059793650149456530648238314126887142380374363719530668080554911990199011291361138781867592912058703830840212078924916502936673349252568439679599618013715741211838915559039190381408889015571417410950622432899389523762560971664958310978944384723568363719261653320120999087270274154067874184764741358680645830568814348068325662300831588761866680514463023110814474093959973066847885448137714803008417123158693726747515430917715123456670188959604994952418056057103907401099828139031298934509794329193212973419241545858136872149326509240542023439189537343327448599044466129866221568896041002260411811544136347654353280724094714203242790126584282817115181947566767143645903891041653164576204056764434260955847665913419594371605402759807487196992823473418026655780768489826364270635315383201920817065280693636190603405489637251725571668077218529749561448579773607299159119884352549868783197724555017365935513524427455629338491509801699856388821360465668705984935534831640012485180224762989710479642461438253117784617900804442183024692223507493993547747609186257042886334787521482351734893452928841368813994569386677486688622202308626996430035077412056209647405074436116287372134642066134662456456556573592648631887763607805158234005214109741473507317621555035760237495988909614996346498154993557069589237550280265195179962313422988591056889737908029200761778313716976891398378908851561839509861558120240680305157350687441638284239481759733474442310407031089481742002790524316206539515380691269567114836585333023926342280713096367172708050082522055186187184145429184201469770763696301682710409838404325036225608918364228430985103375753600645831765731812036958514412696045960034122864662485196918169285036028556069510273632483514359840855020539496248137013400699304384269392734441860540326446515871379487908901715650254076253018266348440267505873259690020328083184644150979792227959645105677120459882585251007800424956624230811558182608725869175924559837465979166412199027578047149077883184349957653700195498322031220794289498308597764558992925404109068311052478574494858532732775035418369404023554679460186091670195595045478439387933323340677933000959029567650152112652512936315794605313684987535072576630932843596291491901495807044710584476432277117440937889614525494511290961221922568659842960165963026231416223142987919661659027226913271638601606641632694112014101390734548668290106683492792258232548761753102639864279172902620266008494174145239517065772148820302421691597295580526415995101898898340508580379150940952620572611311451871400180113282783527837657456911238994007542997169046311256915245900506692591183298623652603629675929643641224225353941409371053345185811132164403985144690925915294410653637343194347475659989125464018840283274792026536589427099341666189820113960718281719372635569069527490871946365897822179117981773789843321631111270702467853779938959168894109706772858352722685355917138374232532444847773984645635167518710505918564316638157704963425637836594689385054225717204041052554801378947632298904741942417434310447892765553435615002668911232301566501509052363081721970204467608132108776345736199929061926422065525371388054682533290909861125499467904809223571681215896713493575109541280624466546138127286934486741874548320714079563974924692044224972309903370159802777729788382800620068762505487198401101589724422805424428572747559567793261652490888234080619725171440590274762210423014911358426723814370593185788591404424931840536696336102716654308049332642298522226448383951630184563665810799730038911470151600277479230942982680201112836537840859849228876549312890821212572764925283709937110559888279667335339622198612295810738761482567899447061459586564697927159534392309773319370244790398826712059627625700787818525509054885186861682975467676133805001633974242496994520469274836210777643841554307747457023654648622451723190824900197439585100883456006509557848104452555440318194222859727454648984042232239258487933905201578905695247721249035359775607264567527627596232778843611484202551331052950988796236654733820465958722570625423445231639545567078994432216047141422518881952108982419061270269591097349806792923842216340773399097443723748694031054462381350602178368233426864876426265796705745802527221132760413208907404810146674895779893596254218975086622478641840195736930681072077242281991905044298995677683365569715391105122395636918344465352818306317144385406240550908330998178532709645502136155720233076635046144281878586062170233920697970662452595316400780192161447858675484833722896832006208457079650809706682905421533539821469212645708648947152052380126049396058014791808599998070141627459062946583951453261726705434570363393278876604136634669924472721747113831794564671568056228212044118416804895545912767798258308019527714165227928615531039497794851141219002241359608826989042075019474629367247765471767005159950638638999132260195843085107365072638518591504474925110851678085473480421805266328025953168757798506170164129908464648764877860524092651542978057032000592963845539043189465303427258366001101765326340444672508495680936448603521882640477846088318968086954882102717456644345686122876221156543101448022079527487247283013756352555149255017937579941824185446438495860947653405671093131558947372859497351183787345563454171909942881364657640666933708271870198551483292776192226542405922278487317256346905695308945846361862689243248551361314002770853159831985704244144096713753434982534463752179580797113836580736245951049793487408250378627846652243252906085162410650410043139140101700399138849120045615530067505139020720176798559268593051505401430593506234287643368187666894528994141401812236629760468273359625387555229668111650567821786666193670885176163534928099486446978406562527651313767694027758126179860548620013505722476195039062540608100520351660040840304393136272463249837933359330337231160385851654105232201736408817626924720690178204495517224837681288835064850250249834550493009300360083302233475314600315018310280977505970703921164793206893491696291676433282384072171545491190664572636423870566623425684467223026238240757651264818215144093255358614789892896599079792646962640503263775504239189727281986535588188225075217041429147110819670453257892195760719251920761758017654583992266610598895638301510257246493603063225472545516125286875025592992670452857604635050231682770820518030069482448736909281494308270364408674749396302208773799141545535135483271911681311241699886309839214244765200176805994960110263364818437264395705966487839326033367753972851036722318319435669087011303928015439965924646172530612481128992592990986374417580469278369291118018670821169921765271214778445912913408586970965591776775141250772917466056717964498331728042933145196158951162036915747775417560574789373184765265014875512171226336907852521201744774564748225790475964377251227784371337881490734038446183176542336167951726864768017311818404424359734382045286865675784900477770126770881241153156340254232807404644040043535037540382927093169027627189519759505413140745583463991827383386959503375754519426225436644596675838032603815515009753534786062085555883812866919869554950595681312674264237893539472358843934666001991550041729592628690645113520076175853719975768469283702314382794707746602765533762093978061451028901489378812934280078178530256248429623828018939253441614803118825837615590921430629908929926056513364364486398179419650005717117098015093363250504393515446444741666692797160612584710162294229096688678740775292471451445826996500840076726090743422889525811278024035374053868496635748106464135353177609048669185825598659620062923266444636543987703609867721071561435949337677454142726763146659944617043033737374999132606238733004632922175946773229517215829181951194366515043253022569597964947408285339031448506414547332965766592929847957427379734471285590223691899969003550030748442178343467998593539661270300600957742770355193044540391900222200840412470821227042395794450148738715882579263782269970977212227249154789050450015645848121290513576322126166630651216048544149761996826549559867353134828201896641379633940773107339123494767252748150792117580265103132974423879405363872689603739273259935209793319382500489312372976962851369949276156307144907741052856895672154505925114102392601921964528564267973943980099313907053982354030616607504076243444317345297481889875355579246282282524634925220064060851287362313578183022542262258937220848877329673950661747001816975912664874109111325189380653001117035759211673845109239202552477121086912230988802083578643557108585017162096473255542757194266309084900295303945968007790087551402490245486317138224546991723075502173573224324649961141734584097733737192956121360305532181241551465572125092073953956293903308315103025694777383898846731979658271092426537952933957958722705714384346800454171637474664449859481952281736580495062246350254413965985552946889993848816722545719636967712638789876576123517396478535768340202642869385270435469650728763487235489399586253876752208978316702697241945731940651442610369165102792382941191807769708325898622405294270596751712245138869558280202780055216756241015612548435884711251565541802075971785985517557904218702833443084981226771083537535000958930377119418092245176890086906079761697114602965332374115877921782975648246708091213845051275981798433386020601670922461674321838825510704374518755375657542841906999808254123674287884597012580949103252615290647220560305783885958777531372241955675812214259540246611272259728762944089678342062683664550357096331781088161193755731486998268230443283545617285070539032199138301708427725320752155044904535987879291315172744065799080496367037544542747103575636061657144044315035080143199848406879530376511873904393300859734889729823246693110174598599745222003368566799583200214775212707403422733720950274977949242084072108438959999606967252353450988856461840610838464373922171896038804953772230717029361384308102473300347726992893074777158467845232784708237173108359131476380744035755466021126380470166821063441158977795098836419015649164723967038006604152710710050433555263488842065686123062093842367298883530343871832986186891071274660814591525331933853648562527242804738602594537895966074201762689366433319709146916054263474418354199350012917420752163270253930010302630931441630142559456743967848082383982132038409216513975983349885037789317387643674290899957476927582923354591605259298383115924217925117888470400418152789954466764936566205250977668099235304565299833640228658152619470580609609004557659796906036870295226876961167500974659400578352606189925414168750647902106316399055381554843485185709707072058841918655552993594801019884643567316981894349206621317089254779606035468059125720947788765967811674769435000624649486522384602229919979555629792266758260872282096017164868369837398747817595304621377801945646395160975912898073448440985622492559889766561760213624420259898173464348749745049751519820166358995974043653637731061435695246696106583947892110964600528718024929357945738993724943267216353673878592378805824835969521615743711456252901897722698223475760067809542669172461961973164084531692888896776191522667000064873604541241093260260102155085175199528817450142059551446347676828633690869191001854940454831195818489777748335986401650562360148840930127563395755484115505660633071082486111887405212170842569200650844909248825882693472729891896207635149180025142040309987183879319030952270532691280910141079304349069616058105992087311330384254475519375823912505010405614108021826419472249433561419942364079814861284985025788833515591219873949788802872208858191050827767745050727986222882258823560059704743823471134729498455743253851777684745597298642632100715861393721725691533544884518547189110893422265870901499494394445203785433442000626181503640659492355909990849163735844059618689735509428260054204497280316641886990795219759517867410328645883494269038006466318251388872503380321547169252353255075010266804124720871033023542342675892802388653036497940282106922289356744507023646981556689616281155848330157303130486494235766110546136372159065441793717271230038426987859994414159406127816980768859539863463967321891843208778066763214099208055629011443551535653500042175433697264192693772870454847763700842431614440057874361531779763100788216753085350450276652846401389744267101465391393141510717986027526635671375313812828860729599033621425178130782326459815970748976177122202595788434767875795788811764881931070266788860924572187454951813021078104670128599901102973521157650033021097268825501760732957852778587604753514734751971734236107922785790222494920774383973288151878395225088340193588361550923221905395756724034079296911532410711844804636412971330154872418888387462627281408030545517351109351731590727109957066138806515468722220096128922701177284895188857738905359881924690534595556607647299967850903869629935717328398436383676608335294165462966262354457422553014094439538685032264844363929692510451294317274156868092701845237936684603054286833132178729139227208711449418528930861552648993331202547698895079639667441590569028248555766703703922532674832926479192080552097253547882338290023425135910041820387031222921645723345802541735330856813168730166845384770110344603939536884238168988085396145496633114232415540586670041044370783352446202922117710115899889462484936883854881278612389567700410486178724813290199474962787810025965717240947016512818399514548131128725981810697169406400775979451506281002997844972864409094560067518122857177333364305304287234205680575736063789358241346505755928537790818554330585674181089718644913531558845898093969025841789469601778191926052459746655677585883383266326504514725313907038041070067733439602720837147771847777344048089666609688832958475493850566944563735758243499954319292937379815045458497197424754563975370031496119266782990313891643296095814997576650508087220480518998618616819013651858919723809765351539597969102291294800035796968993828040010901325251087856865457710905065563587271577769444500327091189091400254646385074684780569223401294569311206672808237940964546131248541712792071686633044508024490021659094712098100674302537668812126477995054573141362252644273224075948163200625511398266582400147915156908691805057864985726782076798875779019842314820271275785916984340485824104964835275746903994122069498205813520038277351811213830826890048216377052699043636193745134883846894755689040089063672013422692573805362253806632974075299281901463923765280188235491641996837378890031840396939967058439461898230971837642076209560366634409117527365247559259472031335617223097107165358881320195390397911236621312744530368398430433386021111972855071107879964603945634891979067066929840499823867121214343367954556644282898396619307176474793512333944702937897216834788395824958377637086026041682037656694015357688687917472275946251614109691499001076694470486575664245366530814877990215699338268184095457355172641748889760980614554658952193862395386710295359279672897574346340701506326039018086364906467765443801281135402826289881854754738822977643868446104211949468257013770909501227467380965970799840734474550179651903960346140226682475857812025845476163422830259954918037798975455584546520847362408267264736654881514070983061329695537543703569324358855738753870050393252673430287328073403454363717848181681357947147209852747395339911298412893050428907583249479884394513231748864673115955554519348473624698013559676758838339220233757613779960163767816720670643813368708349276600182823641897216203081044357019486475631663575819017658411725085179197678645419323627370301646667234338331295458042761808878193824831238509556020167689447716903497064044713528551703319995417922148985397708320837863896374609866631309194425862360722397568187837417812659086207572466544049102422087714127631209918909299478439690796049649727389956699758764124008551522963447632425774472175912518365275732729712699783782512849542534448317229947136644287460263413619393801838049219844845965706019100001908789160603343023265003841777423676514036657596542101583465212339087181772821702154687516174998127665324306025108198422692516414154156154598524982639800972569397262173642268269622407268835442965387295055242552639832753657675404691470420101666372907741698545908524419446123526494349622689427956540806698214849414568292898226058939777806340845083557072761207677016791515011488759896171238164611157634281598487846307625409010391280138840446920695093459690967368498878522196742110222344670467318046958370962514488705893486987685321229026499740952607549450731028877495576384342731201160716819815810569662170993447412919878392455462792944071429026960379881433811920178782007678463965934447469700192861670411988120544814242860265998038249621029244796704998098834733925313006590319851450920409023795788081310209703487685385186903238571039731679362646566618737829320395003484370154107560164882836698211331177262160582342094974142715405008960066387091428061925688939187747394951100282863480366376512755822023488352823265556926389779533213617661543700801432082045546248195235585481077767508323332343012951996130070344791320161702996919153407190211421297376853919476523728805092717725791706696427598061869895184247020910896870350591061217835331261815198635034846585679709480734539403646459924973600316392924086362254203362149299548025134844952082902409618745808338462497097270681467169480032119667901097568692960584887752437914245557081500893314022040120184356653925378056824060046098661877711167999048092652310644887054665415195327206167876493333779479045598703147777088999223479699280272448524496180878355421343356577305017592229046610511073960333024039688383824179500621978964296716639345187578145046203182945995999803960444675408188299351219566574921437785336900526176056992816383204273522571113383063187566735337495409081494377424041135300689143148118502083003282092097929335951703460393807051929926871108390671584279972112938481689933471011127540769526086651780573736221765311683128083115810669766034129804090295792956212332606090015326671708948040089336583116691401713052459637141890760487122693319264400060798887613069100189270472132201620795234276023619049707412286738507698004117065558578152740599322627355032104343121751796107612147274247069753356099672446086916245469041061001906120442457929507051873464887399574427881725559233644485480609189803469462068449599232171332186069350676946752198281945754998992935108501882301171773404882307613061824134789683546901399898080920760052143956657243634364134457370234638111470941618504053865648357033813100243864012390126813961459758651829071258371929561227519355762092882050751285146221607417934551243829130237661640969929999995332249544762255409584742991001903344044634285886204761044550883546643913935579367465299487529092355970426235263565573655451062287802424237233121937208572021752560345387371900196265426491757994232989826071334639719539807939775377966607193235006268831580780763412471595526999458908564716727605880956876792784294244256912449313496560416433663706706294044016039335053805161650341059523897183810530348726754027375798439305521483744854148384532499416003882105039838675431443819447483119886066030313696070429588488449031206188019093949431991608756503089416907597895345508639478098496654148636506778071629658581078873886226765594560404653893048777538110313863466396072574279630280453091786436992134210510657657913241389969121566221262612709514328734671950117977656855529286282690133555850658282576452444147318447266695963695212025301035905549686770677175759531297531971374295448369516701458779574797584934999712847616747104359309804964349311822441961555049632971463601307394384550628604531890473779649333765486396278790714082006228288653995279809061234267139319430740526990629342562302995012817271475823656122463524667679662529833017426242714075251184131667584670372323642689407956110526734503538919076010527459078235355198998445059569498770189744994804594770675823899617618223770237438265050568591478853886002130904917830582821821003711972177249133295348647663143615885757397863175897582114957348706719559478008194766815109068020793190148862385277494098164676084721885990475392090571959326273527203891670152360830048167683263671304224120338294621617645979193715354634506391254546286231625049530009641594949337405018891915038392503601953316332812909362298667315443713632373419285482200509578379458180856853427819554097126259219086002874222089131731469953265672411697027756395621831899095511603061597878991846112938753468019044343106115518101126079874931873306862039317386752899537024274802900391831386745967868882584914186901044493128548977567644544205241146632818783021434927977774902683585373336325243219460837658598066382149968833155050367210062465627637093720933401109763438293252656681411780317221575481916526956209663505781966794238630293728187795892239852962658977670648664074079438845294310474859959870743550203431732470369817119515038830595175371356464118116775359023451449940040665387084466596798334316490399974491085983396735769552025613479616969767713166930496923015065708895579142219387207951735554793866893824392728954512503097783811917109404312316103791739347294811992302164579664109267327226277570596790238251255692164248008764390546944336953168438005719164624474442202498864032465363867195559121960595266392019712898644395110017833127412039667355317967401006049272772061705394259089537933982334338403839435492412423012651074237517232417596254380294666553541772020723315045385220738070552670685776463418912733230678803738761757742552556989405856032760433498293786621948289364755131598860092104899409926678187329602013026758704491236989177615305888743248980503649879692786383869407156373325031752195136424195585845865724752096900859771120198296395396991800237049701116540808795118943352507588099890191368325657141172026799376702113928445221290733602261215091813741738239004421944873835710328671970616954949150538530552135859999108417698369050596026457907301577220113026506010663435694158962606832379642119736516169873099701759400903425973127804221416345263564464389653474908178049390300182822521380507047841632981374656502625518163791433489556751398367781768478130808941093536794620446502102564652739723159149144400070343827765858353774290212615696535816935221593172566857235139162580389353517072041598039597331707742154209473573363639670171435405400240871544988422757660579746089905726478674023466894688355927758264856575494465090010886905009847030790082664269460218222189614988760460668264242463228327222346548147921713326716431881984843685018268208036687240554843146587682005341113274616155445478394417132457646739077047186099103857184819607340025797269856800042886585641032195004772270486036420391422711639625301722430650479292529844791343116532530624785140842081645735724716890766632239402164149250844685856731012645638777859489510506088849875786515642249137513288087203440239897704792446611183977796359456653829988313786365811316172652426130666372213168589097090068514961432615888221144450125179959529670796407290097359559236435096978549311268955002469905818752675394856494764130147145309693664027313198276853740834705376973168876525986202504622471537542632018021112514300153379791721003083725725406185058762249141122210787160949603517894246025207624090080895676548255590751765340281611648154373245477295229501065562681112805486962491749741576701397987629240708391817220161125021405703831249867803824047423707192542551978627825886462912145037323345935794374630882248196361202500829671419139551485256814756152886253015736071407226654698597488093202603276721740025351274017279507752362870073382687827279833777234058329637851791823726095081691163369347247218787565028656002481640600768071848459156174909255790351004817767644474637128398259483164100987004261769121780471651929361902036186335348139527277700557592708525080914785458631013555376057285321873023253386497799359509710185079678357327638856094367195437853099053699514978318436784075278166792868271549727811600073441693365083459092364079963263875561323442918792883427247441937431956965170487252910263801577760857240651649657396255307335594972944448020395307639615028678054591921094704148291251333341402453533386480081142936958398977095700371223840418883559721311531178737709368619160331213798006910101043823553586582179153016804678689499634443066336905837855003368420115720281856148890206592958093579853631100619972776790375919321855642972648256013073281281968040213873880206141314428924896919012104963920896034549560415889712939871453742299875905576748912656590880404465757039634719268041896052332661913103283237936354753092002539378502005794393527045894308079457057382821839618247404701289986494757032903777856592636632681439365830898413601876836326871792971003003957134097419677461462487109725931576584465146891634735631804009042520009629560129109360332262155964541091288339351639042001562748315826233468285276534080676312412914947844550926719994732987921640829122159083588324641867369751482127696651357459796898087224764190345860226610703223924280839781268209414928515725070561133608163110622179155324432564720032293720748054343823213288435351085926583400071485869762348333280785277973870750157071957333722080047586008076433391398602957070427079854572419045077065957918260441896836101902880072021158447723224725057570584305826701417661634528948201313807879286584760945482944700876562148579423395983810587522668176844986548591367199558593996464663998400708330844414251556612832137033885078991532273908540529531384273542238666839232773209239070644322277388522126551004170483459826669991211264551779263723529705917541866417939813541908469418588912996925390515196872977398920401118716976955421726341288567620990474421349433240341478942395576728064276744063080096079331418830746208382785166608037521498805825079533166927268503789837123197074600016252378489726370594871134672276540410149042655654324111646913288422046511112629003081096245299712829445108386090296519806542092425238908236525173546104628678914531301538540556901437925892307219778464007704786025753072921797977031949740025933453648937485817199025562058497113023210038137044349750750408919104577764236461774873168911529998193265501582592011802666112099217894752682990036638750509412951702829183213338617317082809120605627771060438689042278113942698380824319526912019811515734203318424278447439051102034164812067656159538189996138347751708191553444590717579109762984935730150439970055991831209006713076537177485810715151096148556071641065110337879338901122599062871631769716230090562590059097669803737494626960645885073692998595066890329083205299115309560651381935370955164278622871894715750739175818108370508050200439643806786827849772580320412274128438666092523620358085462629239423394965736235992852486248291516968987753910297433009560282083617645709018135487277735055822800101098053536200450984155528968790243043723905399270669034073328101626248305056089360677128474613432123319569718271571751271774031566488259040860490807499343149680387367768637785929931501149667834169873717618886357371036579856145010136920228699736965214519788982206390203139949023834420900234434569123029562091587181163242808124318980544680857288699912418743908603037778093535193101183424871950864696791012082472563520925890286164321834984754265680818599929365587435527504682339379030732147094739681837765332443303278725117710230939894385526348379784865815082989050266161279743488979062779096330362127217134773455487173253968524480474589256081876646191450835634738980700993710151142016132875648004244573340972008653245822322382278256308096349985917088752603853424635582281769503497735760556874289606266190509885976333725474369270478417853453955624012297689656443234385096939293837105225922198069338195975732041240321183434537669911192891328098615382484637291821635475823640231406345731305228911701335333133347627989970446433514525872814958751910528631208287494896542403878756500286609517794820300858080101094085356268001032322115887668670250763629425086772517920323973183155857948541173731122870620469389093565148528870473327491337287109280926503707002605326925599334942764778454082700802740022111431134712093031027663825698943527411852077038355096767800681206421089957425221320978426765963834176926677066160168449721448256673286090914789588747121690127299464022194155227192950029034093168854813187491908656139146010520756483439039848489247383697923199113232225879282650923447352626742208537200465115209700387157932887061460741638526318903172293363958914781535558929421065601593193753294750606788600058723741833194826027545764194777743058320875114285545441197794692780850662601318077059409782933009336645632178957638261821176154665886280431145244040627804284668077595561922146936755024206864432584936868538870311098316097916650087059809925040736136122969180357341018387427511819337635975004742847589810547781409017618470267715324659756559052449048485565130222921753136224593251029439484589506244164473441342127960205432423702796653911009715119429871623763891892103214021029333929784121305558334603631063357341716264298129519287667602331501635110479908538836055397950902921470248581393944528030926002787320987833257724281996608308705177381840818322276389941150259946121699392249069148096895433093979468754098766592787393742958402989959771791379318937373576690114215252325219275750758872942145990779142985452539518695811203339947497711102249950998797810815110636313002326259192809348737869739429501516888331453451150581139555524749765754502937835143656145283787528372566161115937549013458532189561734848153030127756168489987379890646996354277857233680751027712257610580967267990520848566188816068279530297243530833460045983290068260204451151091145210776443582357041615191732475459209202053582822512764266922959743576299741455237914022329330208036238019623824563217123729904471823167162185184184921847835017973656178686539980588245512868002815631733555835269004556798412198199143104624796282699716208242688365234006004579055533160505076682689784506605536086678217716711666680879365280902416809563019828225711695886818847097073590043374023702973691420171796451340215882581983612179815040769889101192264804953294396609108956882846600509924927256144932252990529495758522767142340413634926160766299421617866773450971419193258909053237916088354912369334050920935549330405074998658993762545426535846062768556497067691255765181961460354594085589047077407677555421583879755291411137901934366957658534548543500778263283175684272201920338445435972148756853355883525724629643391127397914422406917973816321096424019333866236089178434670695614852844339064901178571277029551028964422513291720362127102491940990788651467353939535753638949978797361159046789442874169755834912824464451964268718473927050314814854018123872290033585418029846454986602494224105578895916327489719070717496402472616923622725662516261984158116732664098486437611012285395184422440669484085456828705037447733553698992652729856845644951515534157112338811659796139645066985574049865439500759261130701223415252210504737103738150173441273976833257148615234217779899157756978947613190168162851205040224259102165170511103175593729151612464695316792623988119731197938442696806784060721947845553512408102634696753971010076889340260571219989908418828472581038131348322984357103118334468094628072214894899904395246178442218551377005293941680656185927236327846166362357288762510683428040247736641739813955371880765075987635513387354091116032355028793410326570402325761152733289261693061427296839174013273895117983068915107445825483095365875893792555538939945891346234998373260643530267587393797344220662213552243808172218610716478726061941058513522203693659223968849314965042279634886223293831732154623955327744174596563455203362005555288150999545799335238631825060199331839361933758431311355694498294511926519223186048506807673409155605356836619206452567542303110350590083284092238399318622271388656213863360381202607880611216721987120399505944875822366764947148980585474079571213285873385397377662982453037574235454401445805264522786527075252535436858706284338650506219918405622248013386827046564116828104288704226144052238646265310716721171389019043497895372721819953555077476397786812196170983990168260701501944924120887557902971338822825710493132557727232835839470703663240079775355511124194232611187421110876622825359879075975479176953293507932439701724367091539577974851051032519229267380794016469705773276927199575660513793510311701875237002617694631063203643339116472426273555200792211176457170409407662026815588408438795662140284491373429698884555219209645820642526019105749995464495475499112645541022627584330562062048911745433418121808446644684765181542826954693743433953150838927644269908957029739090565787423552577637262507986380363559313735806592056164338726864964056541064475628861486342542202609093615256321914868237405955245440694540880076066231369464373540591308148727731079088827710692260044492872471895541823681338005648555110779780821777653075007052213996471914774650205634467459919161970674027123304909875015113225188332271986743750345945082298625357012331256198672415436305209852924116297846379913795470312276448052322584958125987043057911127992922182387920510343933378887701242050889760889180376848137955176376795627437975164597322272500971184675120394500876440389777979555947327390530592210400120418520260817015869785455510343467390129349032513721240402384499529780088805439694076899602824407144130031626064747537238700779127808207217542573907985442184564244559840164432302665575427395242391806991369342507264024607508279973138659614602070751565914548437084555020005600115057616332774337658150627103252537302123151416868764305123254134014237661740133839495304760285566935256425076536348683538063231812973959450871151524107829529313251475743000671970412847252681097220513787812245693292780787249874353294962455177476926211222951727334823699367392105002271001347978099109084051914416485140262431556155868687473836550384503771134011016113218263224373592210576152046148575643634796001590105945597527561304969812726458291671006406574387766528221092403836292732579548624574285593025531993004404981483494922122113581141146549799486571967769504667821981340982578931001931112047914331182804521668480226542144792917025093809884211209898091015296959460872299105500513802797870742121341932822915701168625260257635187717879336839676860190819400621020197878858841215847953731951172264345442989475362638284853127393989740038331079174134779504168462844539057183631178554125333513825051557456589187021609276292022936608067372795247733022941323231126167252510296535240469032481173368020274623753414621029533576876096745202809307781805868835301386988619761386934857139201409340219810528559014242540708813696647519004564617220184114978636350977733775659303981571777617753851733456614050270921841784084596080439412073734930103654362426131953939870074111990415546052441224995990823990940501888568209609279217067922999261433099493267882585568337291815870030712138254650895289903360919195465689905821814084483913280615177482970375907981416266317987637321917637819676254923484519444057888325357438075780010479626896990515312808840141656728747674133519426554413054990509657835895969531993439925035514231013058937174250181383251547056245677937435247207153589553662492822409985661641898146709401058261316973166543610987953983955889750009142584267933670903358261120795658200988058214752850991183620896551895824381798117959565317254140399180607308580947726415273666689832092100808235919825506165167054462931803455490998413859989411788132099722396281431491895742419985978798069978229673067589151105669984418627427407227404780697848426163014229963700403925022530400878602060079436245826867939029604229098074159183789336632851690131852287164959960639133524076253494037009181257265685613298713316398295336237649819129507075579174326978718946123924219432058083949463854084788718849666284290616702424888330129744994856655953767093308206769767814001900405209606159701018825709267371152087956572126954914879651618287612544229340020612417353355929099002638625518878564033157829128531308451896733387135943325998435298506565933048791131754187991002629440283398671696278284693132038478055258844839808792614665575192236724199881131857069770911410304556994009695485286305519246840319438471335086148385392459879687711141608518310649394605125722410156438712224859778565990724868408525538589701856848370825460832164567680645329613647500664171882626708244920585081634898867370415869390646202269559140752142275062021715572473905360538135929035953565423495185060102623179742776084072802530517108643630157900549662137373703443088007635104951065313501146652045454095447646814702572629431293716444408987071011061661928032816025478095299597538750441818936152321522141954346820648664926139444615537144758702304729628252041303382748474537002003250811622082696322510599179089366038056536962672516989295068830076090383991507758660998912296350646033286918434227378282242396399457700338332144886411921376381738953365630992634873311683229186621731613098937818056382649195810778698471562765794778581393622032559770509858573441689539108489331913846371327382072651370839274545454412680104604106156149672765315888280016890910549154647464520123884896609615367324761328685531526064963639859781497752882737784106359092596309630969348607225364036829360366882645516734272350554243975022682134319408752013751072960671550384529251895412095639352260229212878449170208224945071089138521677144425130181987940208590763395871846536254446176616053244832337822834106664510188310673481882820789055026503226367274660071268035029740832644956446439752531054228524059639917095451404936583788317761184895883318924981704286881977619196752092777910525289842198759468389042038001622779268996432227181532979521789303455945307520415552337812732194774682296100056484395123925896053410271828210327623985639210081996171428327630177237952737117010414848531803382532715392400756365632259698545670768504748380808756237593757899435261851363741820858250313419689525236759470536784304250772159770423343566489638837053162578111318088811994114584574344865113561846439032019674849798997915274675653893786081568116927825816623209235273727090114307846180551063417756595309648115860810235966068270233993640753048393534631935057924049269024675049636248703865287857775289416085851113507937165402146913306146380792927400394553133679269571778690014364189562986687123684603669500912012117125619798238228570616994445167121089016868767344982898023599619833724714693179180559374285125268211227986574508788370769067453076271730777889105946163620834922426821746631122255655530319119160124828288859324839354675139038246158983165554497589165084255946246670329410654293953772396043085911390196847666188166350478547143288610494714983124473152062200685306520150498459020265893631298759167540308473838069152613584720605543138324247371326865628466946344252979086059769414369558014465904232377175074804133866331419378582940901837404313433900954686606068004398700225217903497315412199087032738800524057414051486210631600971265105644177619563497635960306968169984229577277297174098781351559109186523211174839467765142657769719845252521052142702366099213939735519554097183807566843851942709885458961310622630428139935438948998005056244882627133595501396574639787525064936573936129785913516844759770950313741549174980972967618676386188997023722906918068317471601926811928124883658677179083430574611985427189841694244866843993161421736602176778440404592248446749917117160218166374350979979247608916149490329979948869565701222783405220266114444522249413752249475919534451475964734242797531662669398988807995279237655335987316009448163887789265313051154493084006044255218974200254324352856279417339898963357985771708648335979921975419361234480060262052506587965384843792773260707464377095229102938880454801818451307644053032730616163994976400549028561048211835415465643788145766773345080614308903453038896884202769574139902768646534660091904633544881311483278625520277235286802157120957644099866523669849965980311989192465399250019749879854077309792969142500216803263998757738197381881117526058652987176854493973886650827334969921223424205826308716463681065599095392950382411864287209731498582730259184631110690676328377381532702634450551869657796582140817332099094811974019901794355252350145176691745263026837401982949427415209068551530454701407198303550920460422454924898675755725658760278795459584891252411481886095385853346241965859755854401630096966202700097088311502207807570820597711293475089752545547358833810273830031898830704810003678316131164335308887376570665825877995091453681627649517861142965913933604719685513065213114081154468320094454743640558224013344387491743720151735020913835667969655601212521245340677990905900809132123333552683886890453832442789380462267584016318058120895174787000033310100816720636653880240125788808805374346010623396697587478963052405402709337181580399483420614650620775938608022872681559961061120270166507030780319402752920919890196823965994646253841004240787343456797396603430738494568645673624867517763823763367688565404057420534685499351187082711769406998642373456648565949703017231625664827577310674764526679442861092777806692765031642703403953512204187199757241309415485316563325537389917806839144058330644900281018722335546325521627640697305500407728089045945142992839762970413434390029243960287988570943824191448878933104022758782722780867532309875982337736891069422175773187745036397043545108378640442932946563766215471200868006257148177320333035263215577016018665567208613681842672778511447859206634164804361890155217468612290960665608243464045786888559127773360195968697884763112742145323590547020913149248765669685252460133720189093434176947637643228905028261227085142422068070171594624442850384724268882146250741834469461363011344502212531411381312364764024474254560068817657365459320732533671732890473309850927304784893798753139851865762251329112081343701123693361382800087526759597928677986874502987939192685049504396706298552716338905340530259132324629716319665632724196886523698086739786499039386163049229342231644252642931118642913974201192229846276738827523831254994957859535960786835088412455765272881586569452350459862838394344107899494162956915618311687045217250676627319996168367898879794701321596742886184692516141156094495582667299193252637922268818664720087400432661692601517661111239702934467068720587024374943232941397737684761018496549466222428436002176110879259742737237470569790306197760948773185572304134699730167832472096551391852037025683964057879137570572797972177769459125036182553056834595078111108436645769243235833639453653767483429548581154553978873236636916143385691493716185342916074819707750565560846371299771176076480335568286291714264074322087094578852360814025761651362809403972847270574091491563586881021314466684401069934573274299391457709418618675625196401688144215504900362987761672672297376550868190911824427252620645666975603426963262425136172507824248360927204417263162376856227472026493361979728476210393334445333551245610447687015891787142382576700908338374947042700174871410416770266797401059193527453276487517641665472687685867613170866100362396646479374167022317361640610868047971700511635495457149173186599289365522432770271062080089410133523361302208471727014874405035277358936334693621870048458318959178801873354642158461420814722301721767319531876676301796026472217156584298288060864137001010501126416335168710547933595716309776456780138464253513830523634820724615023070404982343295732788331958761998971946555774959717432389910661810429626975030717415650623194928508865302844753245884390679527457035043944705478958046460198264729226636193362958055458070617822328661153483431215858377505592828499807895463867592562950086392412091408273327407391218777308394714778745122614023786880042327376155004224195735850677592892574499044515580940992329761699279698739098239480883151040621485385980498886164281706005353745075280798828307444766463469629184696902712678871889133732705513540431201655564928128390926446967074336754583131019630730978547612894582979836465393886672153503317915718116684409285032754249980693375452687221225752922102255263613704808156700228032322622793769892084549060471714998592758801475607328251967868941624349205967817693576803670142253066103346940719138238715648485766922396119032431282211984715953873537334768783253267256097710522623746660547955698466266323513403082188416166097119212574771482175446245152582089425441311236630824765493647253419657892505301797595484502874284772946739331185498193746135166334548021061670230269569739757189975219662298543926053183649946450605606690532007147563411800285643229488572446945563518864895769303606957591162755966568375796816293006783448676446789824424192441889368958523455804519964476120126201871415236435533454297768929663473442243724127849026038001857939651438172783660217542746474912632957513223756732744993558336733620502283411121414446001818006487494171095626421412395425797015505559400826244897792186496041852066483174891047364804721382477844416019660778710235478157869388834926827776806210179972776824046475354836893735197842999150433661588210781614491922577154350568331820184816366948305695241031411434132107476736827547968395045969142989850123228804209027284548111688129819002445356546114950497608018778218346949059824618318344804228188930003191444597166589445549518647346414495225997172435353504443269219788384686451305901306628285961981045266747156479858062099460127885575703218793272934733437311055593244610172432689839027648369601045795371767387982420270631560577130152509689440634112239680290652131938036615585917135107441170408452591062645442908410329626619779566684943825013373237997611732883420407920300962452245217230342512674682888065227433487630610005547904330860878418581961680808093267465112585079445352469061397083031039075360464353549154004448650250716055820845300914875065648490937401790577117318099510495151961604654016256788259156470224309391028255493126400657578716429153538097040842551303513022341305436533210576315821245076705388972117412303610654213832672094452203039732907595909861117579778728910251024705455806046475930679351830014546385132891081249384460119902805373505759616891188018764808564716977012170145406430424842387479318612608347815657248419594677779975509611150139079891763914987829071854633343116865464146090648320534885205490813430025698013142187984869196786767204695273625821415589233537971330079924598494753116776689737577239857437804149677778759791487932801283784085784871507259519353110810274726089674709174562553550492925215647669239834050884038446472070992609749144845813590888647051006591074085686281102308641529306557781576045087544230725327989475249557954767967050079776022319837005568431416818647091916245539363612943182841926916135166973493489706040137121866409240094693736571022991657903545955227275946358867947048026045580183722633633893031192151642711272800177157510930441008175592014819198083089888233368915026532809719530684450844568110122518925898020667126722075744242199050173666008649500010383127735505259203505546206378327420580580850998734834750453473544807285630163095666346366056409156640134824754329787212865670217451364796373764136115963080524042405343574062625026124909240946902942631326823647277497795997539156428874889011524746337938847980193119703705432213390454528788324239286680219637436892116668307396203276365974283538463499455547519682744874299391884268618402343220618983515749559219839724198566527263445655652389059398824953628288665407666768017646491687773907352694980301020670772439129398597951947874608257130276705191543616749435329647829142340725040409262206850445813090158082747148843135078332186340829876965276647078507325537337655474266507544163011424257362627570603338717588462232629246808618283332545088947283272673282979813698755505920655998500234687861095530584543603629215429442741797216756990139447553335237066051964468021422492644603381189619028144873000214519664529267131536055673555228412305190454026100470967719683390810808059179725871514040612846783660079772122841865294620026800293643735848046361133103736936977220359077816877456616951063241618305136946649573627240682258382468580123844872355972146470014304839466341742221338483643224167095956184523790614094505308454699794115983858373704246262572431009380132184785248214242336448889799215198340029462547421000191578865296929839962592158285229310600752892295952387979973791431618328854889934564871369959624005907255923949405516665481358449102753655500636834161647372113923789372024360558576024396011204992861033562327351977895572389039926827558464520942478811754913776189140369718657678546759728302544369909468509360370553347331270182168763373908407743764052776106369929786607383172133157880692239402433080335577773208777720807676040662975433185510963362734647370299447931772835399008690762558996418831541545385912342468341153073583175984805416897947320204463001295536982447453545170924590604852626504462260921602243417554252473509601907403747729000527378530715352761637246046934785648780959389062403551493949112571513659042418392180614108814012449201714699817938889176424718528300442718358648815364704765829859854684657212629014299612181358976395614524970488423570826798175287895683729161427485977905842871163579851096391288799998301469689973165640766112766411028461292640957095681865432605886000828599799035990507923927784299955560273080339128994534118853829216289564517936398932790052970950381082147992123684610283830529050887449487218070513015384008884258204165100492550425215090407416368056778445714212196001315030075108688590720877431739827273100352171657823136276849816684296735731379618327256725083169930425783728288666530361361523695275509899299374936061068336918274196192899645468987578017434255273721651855437031175759795476160668180799794324324534629207130941940028019033045244866997773096019350345073524200909997688207526881966867252890913753227524173865428983904691070523585923720989452811520073063875498572272841302753953160510648373980214803200090040252544347868903148450787074650491426110135485444736256705664569801310478947331374304260779705604759643935257242298830122933655106965400996945456302824153503171654425041586472969028011296744577712754532914547476466093975250827318270261125057792428240662500589581264576535589636597595614289729445815509758164345690555469476104740595489732107651994301894699925589274979339971250213725244591878231954836244142860617697128495427268615518857264517278226107567762736933820051372413194771431073687650758208605502324694575361340464040639797045714631197223488604297223173959619975399761905248573635674093580793828225011177753800412463577983412507150033300835207718180804482663927059951223084505825561121222314574448855201126514423959703546507151063186649521509750068307075811885586197795212277915400351146860929279227148177812342097814966309551512464598575204324701773282242055111937725936955067479689634867691729138456488620590106531430135172123424540349921948936946348640998092878813401271090216684613659167217530175282847041427522748287644872068084707685428197688600100346921002840487764627616132138464290984094508718028084374809610536174338607997143950294046264757500434369568503573255603457848617480398438794122987747121994302944537958506959426683015464490993545078242758135360278824919263010310508099816193548018620325864229638065688549902032066831466635767360695025223288360800732794722851937947911989365482196972613088812322054686930280055733343483890622212632289096079268317315646438713127448609322812628601316141588263676622619111791155269890601553607256308631900159216407399010185686560124944376442577104940470346958423651592971309498985937753291229504306334838730892543589764468467878483086565361185617338702010459342718960998346128311838354549953557718719998025754664595213616379138814671303176877632498912066782478832455560118803627381541334978214248965107967533697001109278727736260193158212998287871728025680075633410515326800742331196909065047992363834432381674683064882372683482963118142361022164816318915363992105714620164166044399023329158539012322184147583483434106206221874478101976928708510422224689484484982325685568048323551631487503372594306487760064186259524710256810831666895161793398152426369617833308869736685842261588301514161627656635730394273502707486906525229584269067125863572292145300590448039287992166364324323842717085218263054732210578855293427180031179921146603422074373719098680393802452329734145016726274018124387159149544719276047241794195945999410293169739543936357600134876305263433713149968936527189774229600021669842528757294234063734982626805507259953156795730293185913405641716540765914367069526178024377422394612215007832656062726377994970159669033307320700954900425711919651987220047480499491538932690906301994290993331418655705952021081292156810104345336315499790520111496763725394396067079373493735182585665365691836051776078398089345666959149797623664389229509081443021428347777011510983204332481524425946456992678212629939338497182929418899058766450286610882595282631964822379612815625278440051463347469915312012938973853175241031245595212610215576839367444997724013884057965171302723572459969696492511940440582788483233822628770858905971031494504310031411724662140887986906445140376638035017990859189216332219523720532196332707849050180189767117970647061082078425734566684279994913707616043408415131987936580859030454267737278664840153486803775716659114260033463187084420713296198376571346395158886777316338737499331141089865351047093494822730728014490458152477061727739423378623192990800027122853676837679265205047924996819729440313786861894782055332467574043100500589868284039770033396150004515118497911904057893189780940924005873947066785551765373119395393048331782193490527679498123076457981729386710635859580586535119924740593341591748832149146619182172755534550381922064866197209370024518371795430463346254592102152760646827015093532382229922560178397498862419387866249745464835023638473326408392993896341942907932760469469788296094682150185754671787272454446424275493556119835614783097683060921753160253948724361048615137064982664270610913033584754117597791209820909900078287004199117610173034057927519414729532106978431254240838276000230206223919684342407665226509240953350869312818715313786636941399707547147303312443736377907210766797941516169402977118152975902966126593507560593366517700963068912696648813099761645235207762763109086272178112998798004044599522202248781877190055635687673066988961160371330702391008830755973253542325302445258195563147579784512132510275606985271770243780592864295360512663952219778240809652192192299500156195256893398961891893510679501765627000587454399087129374409214467077135328380114790749343588960671550200815945461491493444615334098098538098437562825133129612466939478320597778558384794655123849210051100597848556219863881560789262638679347213797436881524155080205178844699349881359533984631699891636925936865527371508514929007332352453725752169073302127545791472013361101552215352452883717263841947565168073198470277597234916073215864367156032538665440963435467791695366760757285084229642623288102904337400782144534123553892941808925914541236529857519737179674699041461531353176389501550741924208719603118285552475444093820689293485798147252401615567221125772270895600502159453135153076993205918975694752201972890544243028021072519363571848098694912187803225331248855983827126148584496346671986210405255605981527982670224463793974536537721723875452919120853632229239102873699546935944105101704302046383833104004354750543458724175152449733212560154432101747766092196715240283913481947564374472063179109907212105603157033718522442768640767132938864566251448829761588397922769359698716754444301826878155634387797917462904252386554336156321947430916274214660997941685816026616118038878781622373863503700146503909742941071136298890422890244897165379016674680995012571688073686678153423402114780872725688646921311844139662244470458297672489387670757253716289722463396202761885063717035373805391332038469097802040775852585505754926534352541209282553767085290868111633837321347379064538215290676144513222520310791298797247768445102832139913132325997212210488934222111907859183123473079750285714778210332477718251377390093671263202310372894183137681749384908605065483774719957373936044820365924371535536316250077684681651302044561633195295619920285088460499051532137479894573896132315131061721754519347402087324167597934011548075001286428384622132508077398457347413629203691144979353922792983638298793381325179861382182554390144988701572628312070881928194094854578847693946246957687432069842157373378167991765296259904834743248608860296761439178761976381288138188738722927780134650670815628593212333106795003912015272842887602576032268715386243916889682951112319178451962182099240098117445894072926477449167592230012007546421447037657118419727966208931376012847354338318306027159566091470968502235170251262116853584336545921336139019659338115602344389137058476521618319003328868782117626507512481593889739768652757582629654634737699204887179754528312624994021907861374342420223966116346228573833228297868450026189482930070954101944600597673757327087074864291702398202048732771746461438925314521958465324343974649337349547563645088303770085611408280997306589001294817333114878574196185747916381708886938995207193156365695763827635150435270560403021200586018506151455487779894417105134959046775882110296603346977018108330573579485126647653642931910868938506266060782531948799121867746472510778991903153173561140748982805829844853886816726731054174908530422858109500823137092360671250906153953807896855810442232189420447922570562267107707030179966545417784609091025342124878006880218404395706864826282135876116323473166371013891973739329997002619065450514920587457941818223835191331226640130081987047139823513190333342680951856238750498971288607466502572387737642110634952281349562479621270244119479006155268258046984642953778641884497975022556884549436535313308140814030203614674418636857402152975576141456802518336335078115179431981776702784415316411451863864997143974481815593256912135377870439299383013110655718947371573239589413471370561284122637694515951391374071732343499738850187470687515885640029600752611613687180471329233918521488580409233793889230040597822857977952609735191681735342391291946614023683094607368887142091037754890789893664688254323475029981055884156436151678945792769572720881178963872800985319837398101067769913859687556826268512736738012897422151509250738861177608489336298981513084296891538055608297642653803382316941579970000050995472969924329964199182246384351423782883651116743458612106349615870139070694260928647607293490602876159521860864181834391847955062707182520523357800534343379795060687882464882039207543741556722890688207306778365501861048337669981612493035039137693145106063268971680259741968482622698673981229220404429016805687531193059431962422710031262978246377934563085318770685816223254003103228379155743083610512251530659717749342475370218472025627805106052240889146808485773688298605069993898904528387897398239996920102056450741035393109271668180102253356668462456216624798428430354836223478303709475607074996766347003051259546098033862037317032069100372090402682055320034724685204181923692106670630484685760179027930209261169351488622628268363756641383823067675137335556235341905834817247034911821675914288652528691409800722506607673905325526055700669246187655890379838031135079266444450080368651647038895746990527029770403626116101251109449119999866993640272304145661097081195734115177863257483820108558623127182114205487403371549034126772941780456551760019839619009230531872405843992839060457416765262241119861212968710660973119282107278857484509914244096594700665471263955445651960074022314864605394882584688743297061267610465847650021091221844077932320690031670235457591885816587339368434709911181946829073899609704955942154851711000754710733474236661411003472262335335173479214582759727662638576258326852293677604086639209597695019825411781145871030898731985157367246265882592375855942646606593334105224463110002232685725769312000858399175725829361849732965252254027396809151017184838347880620560532931902847647161249609942531529299699220325889735923189054149149908085900614406581888058479612482243053135571860339519504336952130569186525198522133573787771452446395499602948676661187987345951004903254761072822429600685370973900172516020818385700815131186363719759729766514103809943168303963953407896183475544671697948463237358350828786583266536281534769110640976696565607515434163775203001148328454636321667763564528194457872044352673744163471913383067509762429046080174994310236763917296861790612466238128848077297774017964262265181881590018404940946729440168526719051125707278363589664990888078124324081231436712802023714616210033696837326570720451999557382870286918883302974107363641556216291510962377913447119738671947028146483678370430502188833386963819673713703680102555795143834916382723733539047361726374763894624767813199399031883915738018981757184460095688226527415540367346774825320522362045111936197676517095784410867736991517866702508402405959463023703387959036903567380603833970956902578556249522358180768841789364379689648081924515031999697598108878957553679366864396017627376629741495699097333796474378026299596329965752898182758646052276961547991924349252370568513930604578758588446608328549165586973523444560165420752936360837627531690743808985416570898191812098365555497291434183366602851103970260566513082263242883027130854982460562478195220336596336901059429094524237630534599013397666687811916974040149329870354802226198850959296153574444295628384653807804745142266341424810926573682401212860777791823034020878435297463220358572944359760587687039869895689418068502962984352825127609183083150251139993884965054036819696308943799288388578886578919146855655549355872513201726727801092145778097277285635360605834313107335523344294177237750206831593081342075838231085836801083108476177035901058218059077379130005723010440451328004463740798251105786063425314445900406945792658090941976969336694304829538540127915646521488268168360421699318093205045123275175817948823806462669071783568083625653371034689152742265532295096214463422267206501104188503819862323240522638823135711065271535467289856579442617771330433287269847402745071511209941241414101244377116077898183709649402181412158271971357333336129423709509153878471715336457642030600415474427971338091814469813745422050279072378564198475228043364669176219732255659094486563733789895053985715232941062089613450276541962972521957225544965558300012810414744820266484198513750637613364766346230071862619839667217859436368962004888513224001492576872277363081915143686297023651917424605030997656808830436671490588088137228608868168784652770565661939972770973777022464935974245942559545026646630190384828827422817371034049185286249717688108229599242688990594212238383443665561039160123613157812115335452679730984573757914110361319609887656814610104625776954581730119456630587531645724486616940998073974072154811772948848278639451879107908389365583143914077835574835374006587170012666725640892813412208943683557934883820083500399366225272275356575515339063704953431465951762143374715362449297679090023786842916392375865392720208322508355457292828588543322291191552904596633171121709622776470355423818194570542730896275402245559382930867076551699308824077421381029147249081280211612231125078693113523267743911694599563942150943302286940121579763135567201176046033963588844663165488334028384312029388717052297388734076825901081654088209163636865491796575187086204097661432278147353907629384171548447525853301481628594071927911240051793801718762802188656991305469185503337227748971881925802550734197317192567070617912903674622204093124096634882998492816365356313679219161023032474411763710212550560512044206936897938548305090697036093443458671777096661948273081423288840596609194915078552964730395946931632839156768271895096439640398334430589149623229638799207762089258797942445486775263846705763921464725531509518622084370683064713363801839467729186826476827270033246284838896693446896911833574914742972961246607884014033393905844461069263988751714507227569543422735406163766653276353779674797681383082359386489723748231784347870858584641934897739684563488596095497807295865620243551212513956969776845143890094596735201557703141945266901583272245600836550537374451741257946885821826270106781493761317872367522690332590487213037184577626225419161474928064273548565747455043136126939649093682837426997469700161662519827005484063058282047365933443884154474471031033670997860153346078629376511671306456720393055216201753992639872158113127749096729317478102722247179162499157022688866649129132809263525816147363243228951834586169908850332298015379400469759102871325156896581717645376155405127053674163955835597086935250898818501789281024818422485823021393208745255187396581696757399846942156757406817306129677197316223200986410241007252411322328873664801887520357184568279336337918294644470464818440432561443703992419417350832712729126351731701894071880457855169322484620494177653916100349365243847627005402071227077241713020906935509352811785180436253063407854038070809667454361642768320457973122945794588723189765110918829467760496684659209532613662155456188379447126119605155180507755765767355612608112246147476385671352717474930832719744743319569084981262801766619509281367100837912452543976904130716715829049002616991816710272349803176088695588724605343310182415283110473742443285274068269964392362436186156611557562005788327003175585288712059573084592006503056045260463136120910971190190420919507922343331392491935207256125473097305858549727149566401028896958782694657967453485963308112885346153058099728604127411100007871947102637393221674985074702771202752311438328103986698989207930932542895152376826396313767773815564748836576280464127974412154063747607104708668624691945539344370226563312883095782588734271385351880446695341959464014642634487726061459600249437819593600044525209278489986495996109572721011871486016536165537219681430648084204617245914936472439345466622551253784634649249606985775845212634056937756715206371351927035870313883112980375637797901350920887746967954369644407765612820996708363194121358447628094014184798388757402589180106339957029606054513513346296827588695306085526750297412916463235730409199978328663238522287300075492168143722641801474785603451091517242047239979876868548927295678397853322773206128367847278194461046664533628914897747075384498889740693486554313660042473132410115985583964066285348980885196322032397761583424746789519130764737605315678467495960634071864030705050648687233534812947003105756877163305358431815966558855989950709820321075720607443971612227527458837307500643888549020496403911344329283422443879560835829303575859817508625411121966257651141580165468211027747998798178749490906705510013613398575990536531309951252133702941526023809978466017327399193480773475827671498618207259207611330003429496567581019805578941619349534122666106164972058533991559397885233397685590586724892603361367853539777148498676274517337775969475688248675756788593029844896040306749156235321560588296202628095716583077352242584617352946988342814390254971134328276567329591603958448853871932654931567365939116371031277024989384238401919376424512214128219246734999934208122614330735186914746332327518331186570267117209572188060172682425219859017878675967115580107343603179163688653971697775636742557700941468772025455659796561475173488336094767977467497243358370799271600393403190591194259971487721045730891309402136667186549755051475845795171010903418756415710661799994719041807806665514001397063955083982683253284514162184902819024125432924757000194677744875905542772018213053838259874666502840007360726446831724270810114640534881478809893298679689694185321360921958814864894844018002227588060730701016366154836070388767880222875078222125487503972008644970278134737828631050333600997757580765947570667657312354548153197981852572524996449272349412359379410647822013132842961028206013724457096231009022497405626082908552685971509784105417900215033711016826575245207572245274250852573174390501463130519103408232387477285507331217254168902389242114447955266591545760353622785254468717005638779760020205195170629345713624119538683326766460315444008686362060190278802044645146301773828038103805710673304534921610701170949650586040815904187516056976106992312721916457534233651546185752916381699589693564441666697702481039416990736454746274738498264654458030498289314666224981600584727031544609314612000728276302349149121341002171766539008790256157347158930436045726198466404822870850242571327486410451847272906637341976445743165815135856842416391428662933896410902537757488126917036251781409313694038720232134651917775782738408939571272758601648965113871953283315187789097999294857466621547199460500864332990064197533849988503112203274617925752437728869950702515114922976429706405441200706713696942470838172273869274256190208707233242650065890825421449228846026243534409597090584162045744614404057648626397622357609093203298834377299856085573843785315822234000719431212893240766176894188374211604625113147721319091348793708131871667657829644557895231408639545594015810360486119999764986012433183531360663714137903628565398009777637747054987366651963169679103457175242292612877715870554939901524441480042767606568445087090587230137147166673713191620818246295134238439102792301860697698732433891015472147153243167459694022601312567533821452267128576466283018408996760330899205843376416803103504416492300861512091991292121247780548188011736668642572608250965911412030785646867106489518978253148611352849663823866303685343411953913644961162311744245213613272237204118770907783168930912072459615527275652739864275806306805459088339086953291087990212718897386096393317036582129666481589555894976140551569002809085171105477877009340615121782255286010338140548098129023997639378856688943115420604380242300668196647508079201608598649952829715186751609688742075863936033371979835455186871115257889250571578950695534240168209794000732023920653186549751324975968323272673372161479886252846619599890318503561438719711074629100152882625858549826046049993028318728513519937969534944478335226541280471071603897611867739783020161919011647542928222145919108098967447483088976224969066395830587038184557936277228589234364775890740681902188255037931944398181081686118363067268653413823485884543066851549073080915951153865742739860179170876383253677487678064494707693044100597513372213224674002777670161402292536499327762368708270493101906967875667144244453946658670356670838154778263402645435754105054170949974821894576882317842411580390759504139289880740893949905852575040529231884591349019955324698795085422741249343622491122514924151691615630521071880047630184372571028742034037309058503016912647160079887833416195016960233181117303300559699024505993512540059572291144617673687562768851595957895949811806920693130265875038377846398248892195444497168525286239293324827716276836283473263950162997732362264652328228064929163025406010962009364462352229376602749872456083788218391106628835834972078674458952395821009254631218359028707425566227926338882406376260289011051140806531976720444110644019029853854145183511701459063522266471608457502782268523613231699965186960153673591484169160552949271814204999800928931011360522369241536866730211758869503752793112170218556943975845738910536200771221878826732871090994811659172584434828876466312798780503177834170004991163584116752486495462776244069277266642822971219229059492203055380140339982149334918262301961895857528172264349932332624967903791765954564400396949500803110926223166247242649423342457692136287068566980718918503146986220248018822913237640907639256293038484831260746402623293289396937757136398674713108127388794792293196178755209529620023463354034332932047607561654529204403795384072939529776033468162432547671889843697130135167419711372986017870327565140072510523606624822438961800866445523298375833621340825129779154171714013973044186444392880167629785477993105083593373740890332864610243640877654094663059979155549486272684396128263659309535402539022914579138892394036745810402016722704627099783269532954462359094075217025223034845049008156966550303638932271345116460293294720420052957423852312851859932986328952719556759351219759442213813914627990779291921171859037690671041121877183697110903085176278207054990402403972274242642932817103879406934530524921625879533872670815791147323300684251567738317869471036818783965561489880986724993619613383915535615415460489249390647891287462523715673631435447590669378504026871019118339556217437920396343992820316600080201976272090313999723002605578598639722775010944060832407372249686741443364527960054717761728449560481052776484565255641001643345640304254211711034183616058852659195114044917162894915362228258734777016218162994918322993507679807257809864244153322982645424516762174043906544495851920436235844123940139657995472302993863711155987173123731892313775028939803190551538583790586735336292225639960992959714534349938346679654512691844932287236226360964314869412971001166559236997864481686518721290258172422399272741324713461985790292195742451564401632806425604955898583252287672732848718348331787864232064987519391554333024290458563020939080527815785672257695066821674368350142694403957920432451284896889212208574508857768004629308973572016197322457767565565943791513784923810386132828810303423512946247891819960045438039465066795620922990666344142858061136825592300837702590576877287474457805109286424329835958579006041140987079815940288341358761059255342839879652746947398084614584595244335101101143092770449971965492682171108130225462825452523558315623104203340911610476392245275926647285685320901417460214539850486623905008768701477276308365879536995414026741427475628314696300563312624372952950764883691393422853086404100857458362603629390934203593929717505510714787865948786607666674394077182826807300597389258956217711743999768222867544714410271095290019894679067107293993290628849962069160319976050901756271268931190957953178593951826912337611749547627864267358505721489772303790495311813384111593879087486856706697921617399998154489757493210220662138145955782763763011207723586046126845329343219616459216522305180642168207965378810010776671760570798165163316557633737450027398086067021939202714702198983914324602413216959778824805291062636774789656083058513791778017959417522974770344063030165213642889738792999098649566587766867655888262642488574034624746589408622370738507189328847939142962065440676381044313358381634643654625055527231649218310166840432360996136945503032266671738582577267041397945294828493676953364879237528678411846381796173849798357774346681551512361858403649764825496957846812386888168311026371517592149399819752667882408497049240178592967650354779106361870317872882337339818814121857915331153549302111707279394839456226269258002062180786639022916222235825639820308660111603788061919059942629981045615356225879239142663641402735263516119776807810697498543227013932029391023992084845810705839956343179957032359290638196193571009480569728006952825112961492981650854874558523880758739348469814483098102171890518389387639109184255192986390450407047208873156560179642202255013683702042852413686425123266709242803030546043685800451689822570365590039626076404233204893946645661878878659036204109513070861164926734919180703198407741255006596732229229954701441565533765960940776059493862049905197696386702577527932533345034051497990501809833782394571615158699704910612541074838726634992594766176607117350676541172301311775609600338021367040656746158439708640403019096022135865752293859802115216377918301404489801298090809702157290988210127116617288068947945295161607061784603527217988809198530986149624685627996916275484525214543199620918594123437417212335763008546563559868419942692500157533782061831471603010259836069453761552812884232589925027989131225482247601418125162222173719627006884616635502321714415906115760750029143583740462867963661198368682247384979061658242998244392445127945909983962875819815883069489201985962583845140145152674486725031401634333485061978735285520708701288138318222062634304933307930586069407834941368697841393563417841353057916913244253429105753618732565466880737082705287501147785257386037838887418287687903710565825851774568412209321048628224663904217095200491389887460228239183906707563533762509238648082851320583773112996794519633138572083050805970719956888258328390802678492799398745350068108359243573795490452455671159391105587677919895344863291415770837247582922097267956806551497914529206514006522621632413895125503649073186018556509876034738028950917345423136979215161203791157216726984371679105489494598063921022842894977883006707666385886590930080872075309802995327374385968758882696491551083329801885614740503092865964527860077814745644747774852596789449469058023661361881130263710906387490632321530090356329510163070082412912338917178354927110559725862124729567853989214081652034475383449621049916230000322137933226795557654082344851735037673116286468946940823062195899110225153366356280545747445202712915213513867441635392989693004518018872599838473427198180352055477825870927573991832389328852854277711717381530913427450808303377199973056042758223803675704063180626790078656443115806463437332764658958723728461349218398346960425676326140212471324403536094323661009804364722295332700226559723653594471852435485793912173727872983321537302393140538165955584403257617433569735223298323634557826104887539387189202647725211946834214974447578690745156481978338850174816035312120871167938715096684691002313970205420930110313742424215909044576045169410376030290797352274826873485242526030940379041947600032498509835371078334658503561056616226376665264328455003946266187059143788869461635815498147605752708145853943072976845686327908634333450963521885651337434711185798993139730774402672882035145419598519334586314672290306640321028425461668436337708787873111989233382815588960219210347748227387761156546544844954730555338710240359607723094086153440955034563871908373558457335033053137492572125042922698114854546593615074164357593371395818334429994962477816598272505237208898176513216700332344681012302703125993395357260013857828953301709945143437557478561584449029995760014197848800184883672415876329057241073091666086819882402673384108104362223335316729695657317761776447831693509595215389890549683703812406443121158102609158891362933396109356509205159545774925681791845692672773821666855926616790033222261836270035095320810698448688659815249747045053335893882959426714184057068496645421272561221290297966457265065621919591043517593448801698871948861656482208655124841575434860890108843099997096078027359168557027421539974806162935931168276221993319285606121066823517061580820837770677990896506172540699952409262861182251890359641379275854929165826157980908839239706365544650127486250857859347451337679974100059897966206869941715975669936995125626597824698969386054065858653681997853569384403158557540912202404296781354536925034713215239243506011595536871670864354528786389331531867995856699689038889448747532157261351425554434563040705753307691843663569782939171209014400145302968262190611758067609509301328607273858365763787545631906024559924599752078625440273425997370290570589846975156727207984268281389314089897052144198885427241231471814331629698836891358266094858837151946451209722481711209464141318382576196186668837458257636117231331945459833994830695274237082086937448488655175845389545306662184494650155622068084490071133337239103551192983484944112482450026813556573465682096301670442652702016209343092535622587667771274648616657591171834947491983088202826735978499990586111822420619704938090774314581858259466262406963379872331803752387841031227436983436442099522725317510400612723440263142998818050312663917492480599892670039506911455064742703207904595576269231827739885059305020777001268284412273976990694585944228769804723065330622918135702553368895026477130422481010852161819560472145915009904265179243369626505137581723522541622844141865740566542377843394723234874516377337456895041609795199527719472474710475532533535514341500078650425997094657102623460318842827767089551195019878307259197356444442798271898399868567093631907459148179371332397676483310375011398716222170861893554121104445011034132533349491432409632510282470007510355646857056580649595406754270858302542711772115156608184240006062958634496097638679692657708996096264035410401953781356795249751625530509635672320667047272841151654333048435013960948913886839034589769796937890356656041568939110711038281803511344819408393777319399416447476834261522508427881575792236706332844276086255485758925997255681522407239918706584211260206479808269632697479668306129053886833493086059531373917915299332647375000430501516757479371528263619149242084825515706049385992582332328674512714217678635561498030624260517150699391634310832288326742354312690328619342147150327042959658958918998404631601805346298562314933065387528680958564004257767221237023955737518778558940704365551689464774141286764459529139987642084077864454075325667510075759696323779236929889002044401986655637296664231940116390388708059127047588471997488344653149366581413319433423357747713831513916743874025567767025984205410830743578547509834314632426651025805106504496021484079255236792763744735677846135319362296728663103101690462772877988805513936907594058562079625371000100090858175426344157916865560059682416010100942920971149548422148345959766686282974419564993176614390639610845832457903229120889830374823797119093325280195843544377063401802337770774543977985451542547803202334976911480961098585537682233042504376403349327892262717185007256873058217304325832940558846830900099177687925802365147923945346296980402161894743386568993079215508794959958298589319830489799006578322621973790798645763531770055063826789140626908712330797253797148673464951098100153536909155941040072688449545669087128938563011540967145710340306229590552449846801783612751032710637528204130890597035787858080860945665044060873768206906584431602152766998158297486754343798101332095776250344972541372720845012219431955351420822273986906235310896359708577993549779966693417790911235726274219809493775516063100647011316138642633803733208000755584735525048207294078458512812428905174660965188279488445960871851641076342561602125878194819170157701300427015415628493662271775521570939645160002064723739302953386214019725749998217936595782457717846214399208465977662513895633977291875271562906562151408177592891398546353115501842390195235571234578573790558888626998515048368844940825844926452279891859669635437050425688398222562986199747587938722631971053071600909719948716732143062050486988766358791036435727985220812857662345336799521006751082872881946107406194806135944445232041704486715317970172752170479544933740784378112853742799722964427079789662713150411896549765814848787037217484500174925040358630486307369729041708413590933587528095779066190594069263245537355828097397518696452753658345336657917789345507493838494624505572081439556906255198210365957663351879484581668837316437576488395957528299958844699264574266279724100508080538126641731902631137462190818757920539136957905502260041865887345555766446675072606856441550648904433035593971860609323083712056173606539498866255791983209923190356820972068231884939169784716983335110913925306024544408844658977449352744754081414111989570196211497260700153874659909360212341006073512928073057755977591832664424001689789662611742794917195138948935548121176924080826574141939993270096749863549755718076004153963421670703628423284889544581101699885622153922676469944624113032967039210047464182115575382780136442391662608935088543271390693920703653410993742872420481098453281036644591622083413241287417021262395025572721685545981618983502484320282192012892503213494730081372258353214811078514946464531264586196404329620177198734785272672059009285815248730673524887515846447649503668768454697236620040680455767851856909988360997944723848668860974800604392631618978715765511210482344034313921744502195904660494132062483051064503635292233073630001199513245031518612277445995854786251588474883029949399493033203585080952768924932169718767780912425366962942962943350791136154893475895506709489375761665542942171966883880259328143888075901306600704064954156015728667012388333019278668421158830370436322194317081302248102080115677532644987085507395389822409703036378635241298926033993619661929593323690400582413357962496565707069612836256140204734352424087227120928122844337815297359190225454607724920721208420018242324257060369241088826506064410605092347056499311192669359855842455018794619761420476071309949426396992641950112698198345492798413849056882167019504543261304144252068646536979169961849800598981233091430749101345391489492490335015665926358596743383517537019563815875134232307415951283585429719899071929057972710366367446346760557611750745204750098888743928493733418727264884325817384700713873348468581863415486356663578968156726366022701773485104309521527603854434805339560538097160982135114869673763402833996920135615262082606195429750768061483466973273308555828545637609601011028984270003443841960666230095275348559817700984755475041831818540085297856760059006247199282836116808307710066725781552088405776718132088401479852748373113451154009553983244718062723260620929793503812649933312967431692755305358288515889568338119843785262170890972254815499748908917649178226241046117861939573048972264374089698338933633446609015809098777441237501822465297876923245337616742150946974682200192692622262085570826000229206721549718454495591477037860511643334765574477700282810544745125918899836882914253005854878964258493015533610477873112258814078366850845420247616288012373916600449468361441466578367617801305642904174662650028647071696831099120886727811061787065722131707818755623497044569970366268354532946886684237590690787486592260865569119433697100869176588803369221687531864795007020506238439521291274354349338992662305343110602445376627464300350634189271602545303934719930561703319998898610283764327216260077834876385845384940524989246104070376326338058811174227452442135556343018837387450740325679726977392890623336326722402577525038006394457045005265755199826497597846331772355222767459007693564780297653741136062654301243776128122610721789918255828326679342799609004438044131668719659380040688548868284561989665134204090398431927462729257457224336067325940328754479851598855969791593464928050194847831931964651567015283808237815553149140974184236655341269841933063991525465065787140512148831616042750411641932528172530901757901515474863116188029003816685425248840181274648876686611484422961806080889593713260203563596118081928900673569929445026154422713359357016387964770686567164517092571052331980433385985996900536339449695039585121670206210082164965991744965685449919739409505932692374206455477607812166323448129799391434891249704094412163824502857408712831216726256045982301342960099928348523218217432126815912836446862029475862707959367943356078397518639137509113280913261939833664032602758193989615866723983789303218514086926102410487668832752168238162344613078604235161850007492214684714934107417618770958661074078652081808536885545427545983896133856026134009284396001764286352550578407974989989553396248488593668934654182652848375745462745678562332377349622485861918299345882207079285839596238547850011158341324421293869246151296319457130224994046707353873256535347293925686944289370218274277061678762776746558803102437899264425324077459175900001318266251399743899107652462376281220153352781808902883253115261216740559133019529585425585783735107610846613463141571684372291026182179984708423974836003600729596483374277662013760686217317178159012215082674267473982661728183717067295203355877434945247401714517271959412945618311688634122326755376829010458259664825249169820862665283808183736614484074462953788801702859030325501206440127368270293379786521678881409202287054466298916312074129831421681337042907066946704653667865253124904886214100567299088852700313274159411582720112302924115378981841906283198275564140331100300323384230976955907172329607883748790306999423624429577604518023949527656580121466085510533980432956258308990512478063023129655561675304904564946460259901971660162973766832496396392427407908761328034527897098095928936772127571947278600553788926633406691130258559679511430797919947950390725261626800690363528212617825862290768088688759078952631823988637167830875057986327682730433236551340739250728853165617503326995977367416228456686073677566403653846588176178287164980674339630554174463566604786648893652163324896059424305648338180930757485432088287591765171353514884571727293301222813177727978447447897215755092677850296155466507145889953371270445257190199411404696652211458096279443585259438084158919429035467879094618353012041679119966622624591031161072108939706952039336975139808739652312778439813066499967466574605202359957677645104966299672691781457425210502228296671355094383666565012398881284727531587009696162107494985646024363875957581837549539198393111694041946928531922358301243253228624730311841518192858671356223958852962511802462283333724819318782525477104635850446457351910484588371610640420506358271717887478661816910499510401229504001490202576218630695100963021986511250094264293448966531160234122896059144932416589935274841644126903759640988418625300714595278536432209035126894901824130265047578295777072521831774413370905207327825233464472753593396656661139070222229029395756435192657054498800329648047701761794395121557666797206941006948330668259290856836653569391803880515858249330072864959280924756595439325759737681413221353470749195071318701987642410207460712675717947205664761690662983447011172599420377231960424729193732594000614654820540986849064850877478018951707757042765767220343013603794493213387803323005977742450929307196712747378249192649625582988995155657642702979589085585945908528472788495858197742670732976524322985628259068239429604735468928724335503013577921409168908572964222003397224971392856435270260947575073038488563740978702629163690294822493876805065841657698389582678783630716814443025054196319078718215284320465232834881384271097061259209792297703906070265158225802883457314089437232857141735058348039678474365514348890618420631955014030756373214068613448244874379610170340496402522048527412575229788582638875944566371185584337859016391833271203871486652320593030743962474809711544587705333509415371279233070047390197170650747951244280129099238569840665820328821203642335765581837208156189396101323155184099043688787401565404281410650238598900474274302706274062484606660701023594908771621344496759219420261129788827345793225734938300472939570920847569195477335729071314598433708311655392961475465814344637368864408151832094234342843937157510423992969807358059289448121521593276776929717601583554668524451853620826919879255572540017715099957298498700529188653811227339415700705119201251917204695250630216179100229999871422243780237826499487804610001885909858217954283922398853854847941123859009705719226395014266710144105522640995273594006543090063819844784691306051274284242820327560046902540097210165041880286545571521665936523176171452259515565570185779956132568449093593293990127633903136557764716299409305605700662644613508406423928705267291103255650211770662259160403397761133703131631362684649056089255330786776977145203933939060116121443648886838358089781659456029151975411817566797769187743314222292317191518533655480644874071850926110206433906860456879173075510154600746892085124947402320678897496063382024810573546844108883430617021559247152243598656518580933292790229991634896485502360771480630900543820018751879442440259426297304339625085653680560459193431116162691714250075484031101830246589421994503655566827407182798111272005299773657680092878501287079626424421686380154161285547613794533599060273752700452445649238256322709170323837525768182358666936549429456451563285160548238430575962447578344335213642902566583095845727626439493276055634842769173250789103875042003913921024685920031082870994950344325805722904786944097374114521030928321329803383189804721368756101217051420634316507490193795250762557545100212399894240942551096365481086168484928248223090652121956012986191620002688054526537598647711195507936980793018236198170858064113786735249821933230188642827958750438844999632523367386645892479796809568938831785810966290361484328180178969846901165543798027157797086699790090196101589651475134784780858821244568642052583525939692776647114515214101665420635286083756930012413492661690056132503353036353004253176097730872218712050317387728012112923513470226996534117712584124402812599823479673860421866821728788410906596727723933049829650226491822127250525751774348831126514768094339436841142408678282896957425246730993911062427073534752031756423265867279835427641793923264955796950037334923680209217969921611262342580927492275326626086871279252881303722010361533272536333471278629259510218650488425327087018522227528120401148208189244668706741058816247244275606045507904288538336310918006077595544215684445390669476667721862243146017202443338948048425448667898568048495463017403696147618218701818222821520708508049735743115439050195922682886930438334756169930047951266708569748589805566901493448791092780082819099794970631111335420708924312642804085024603545432239546494632398352049127918992528053208454585229974750969746366381754119484553148965127346840826077463485467427514201252431576336766837748009765897995041042854182839067144524851748618107268340262357731809337001653420415853874072950334811349012302331999818218020923881643146876923916729330255909518934300756945823696965350731265164606981408535230344347730962106528537703167297559698851596555161764050150677779050446247232398681200805042890222248176991418209810516737535936560669289606748453417359924732435250667248688406734273776788066235818229550069743821498505784137309969413492243968969490296503173632290277406105944056475708673668095371296424380517156481973106850183753000020457446440736387764121938014528340309284225318155912180591678149910287402749329222090057487741196732309731287237366766006625616925054177683300566564827259230153779565067608267401253569039227104818271774016049765866827080342380827098783776241253906719731643323745790769369450371489378695119990419684502605126680252855503837472793227806254399085273893060262708912722953770779161559469340053512179385275857299137911178929923327712803851429144463437053229358807517672034563599919857562887847739232020864300712308666857647050658984587861094397936268443608244395761854457705403090289017783954008988835158843034683428251359115819720532620710243889138746886610465650761436571488022123323091598218098822164890865305844854059554001111147478954830188446025668593468035066048828485169437831187620229250542270092329305479762230608644890699937185971770427644449535567289136947617436289584046723936930131969364879494376866101069114098707042579507194041915923131237204120194651111825948680354221075827916410044783361112953380393510814245949877628104888662342901990828560858140376665554956125897093017039431564755476014473952180461867859545366356028907051870105082839276855692510500140263765226284355013053026364099461712189976269851728859034871407957068397579112326391151122813119705567139949376145585038504519424517269040747504059346281230356729891979642683531298337001435755649542705490509230877458675456615806768574314733295695221345416788747719196456779187665390176865551238542964213953166781671990911622130928718430957294647676839971464204487197921797191719372119186796200891617290168824589510794750362277694188830155166447141934253408095702203049532414620828465557668583277809053582296138928083012466633367672945279515332152514871305254127423808033207933057437297906690123805910731885003613857325881018806010875498166086279156690474197281647514766951130185629057273192763121515366855301260703438763064712363577418417268645281712448123643787801716218657744853341082019959723868023642228473646345823346705114081361386431934737744540374591856290218066162174729334122805101015669529106375130808214993852469264132152396970851265036395738081680598161628485821003908450457577723062782259660111146653508771051533456104063641851271374339232189350819450828062970981214463887125377600658311455466985336739374010809380221750349060266541209756756671833704320617504415647287325290442323826394914034976326274311737408691876530571324073116304582604631866142137100825631077944286572778499988231058120511744721094178166208666316105617442381748937562109773949359467067584429808014108733993453282420511439207047699573856152072787639888533202269601111876661875426059382092697260282326675861333651319843180092825876682847191250003923903128672160025561863521172097941294961464366361228874577020300068237780385618630659379870577261599649849107267826213768047987340032514014038764021970820614146505168057654294490748559977635499928995991471880554316739541505711576276228919771223426974073937682524224956452095630401419167223909364363728358484690777890696870377635499513422772240997391464803904013712099597841010602955708937499374296589114419797898582660882095201838853657774081509243528496076769414763632853696955851892549471163538689748848423055085949970207240880921272481292224243460341501367555660221043089527624725920884579463398670207176741704777019316462894322754979026678582938404506215683635644659907290074112299539402314892824448959001384007512465635385796775858183277511389236211987189896237891317644979658930460416085997699663292678823568090079845209515929598167857964473049959815968870059516026163139931169451667313780694193955674170558197649023723350902866819373412404726986109804115836946085028315120627018952911765955470406933593812891850188929657892366293751674984371008939826003189756390868149754322932341913019927996030082154517342452688304123703267132637539146179631522773282718864393838278029677244459547915563571708341674712969927290130570645458955752478706862233099902079065768224798220938361555272242167946289185071380870569073281968663359357178750343596762611746650720343234783742295184548738745240274458656191237809726049278136648040286620821947502572220055983148244421424695200900824012050041089213114637769910584191122288424202252678051727561311495600503810134034544475667304568440016032382348398171869225426817706549833686165642321585375397480235907245119087008234195136168256940945741027615492566639499448768964639893686893012341196851808810882728049447995054310145921569309913007161861219912175486860618409447925149070551222259553370268477014492199294343461240095092023777172541759846685877300246501216513586996238486775789981159145870894502569975302530478260692942776982738999652371761783948184974223305506154995751778738973634665582620643910298003673815491388032732139847505284410177219419798192397264566562787838325431142339005682474540347525228258773781969659253472811216601562701252704829869907476435913142823348091059852108911396510031797662922690677381540907979836454701111844599061395325723400773268847775667803520726409517161373320785505295341877072619615935853416772100339901837324457740896635344442961995821261820581676281769930335617377974613880551515203376039945368602818822003362559770738699726648426644959671183797043750785999380438541733120726560998502569565654370828284526621155592120772729353376100806105693486286795754526233555645498276907429970770336416210474783637291101114861599777224910466699129972553519035684790145436535651924307542076458057219895732504218553636251054260228604393330518629992502022036712775795242887980142929106510779372573518203137230194112456188230972497802888812218627992409946310552212919611392522496510259700299635512640578735924259207748146398961347939051351020062295618198949863670790565151394105696203034737380534172216036787389224665131728990550177525360040769529417134716802810722670386426818274928365484975556668661670398254842746756340715744923257084780851426012997219595754514849843999386602269433619330750365605627868746608862436715724377060589616888957504092867952552510143192800152664921755888137031921162350830458151879131526015906547168137058784235823615959502805229418816476007331114989130366493255055965453643631934520078280156850162508235462838181014569972719136459773077497729392077583205834898753954287645384147168437965222517050068908972673903968404419421696625393567920551616502690794338761578705120933500702918302027700612516428858807898720728977835947763946821740298974759412144090447557369267963508237529706443776996544843524208253912318226411385306969577584620173315622982288620643961907842284085416059200728560806651190721381663888016175656980185936922188540425294702241581332473331999226780530135138913016240810303071497672080811470317432747553841593627029171135456685576129346682047831166330398381696422128606854033074395434908130240656478419590678203099787598819971330245214345790436421597386538438790363376360715320544644140441622817054388491089715069080828944315957649983707813806077198353217477202525888218831214803202921436945138597255961138226589275612361936464937724385444689833942611721099330093422057011551425060027520771223012835633429870363110745067710294332602288232836309260529395094287865984630186737875303117664762737517181693768955799583447517984739562206731549061327468827659994775211054285135782792027942871063145706134668690172344225026953246508794531106527255913081515263130471369402993832983850588679056286788196309041625032622544351592746362277538718842058948445242743717921309552344089108140490020996523982383805504990591297898955995230170130447407075430095283914072376656768330667941266088214661603189543486353285794976248441889396289550771488375578645119074509027432867364910946318678950949571652584682000170674113486506771689180708980329353982924976535292709789627663324198043239312212052968008184458922670774695424093789599568440652819950502161886673079067722242980776990259676957362934832584283862201407276055458796603390272098567383490534569957018042111490139469518282754741545705865099842243618537532449571449208169223054036982033049305014908915816628451748178313498912453003349975013163575134531978518022746959019943442379239630113629428105267346878053574145549809334286599245323750366559202268968788747634378701035043306272644757878778879406859587776902432031237721567810606845445495764674373191828864505321858354345138998940173169534064746446290137749400284761053066128424082269677305192654269027368860210956638252608420623098607411834976544631064543130588355925765546210574540171559939981366193576301586132284095780299616788911208899513613960152816862237153961438518276134146767213670369958955813209247782894604401977249962134658085858044342583473194834825335475248581506310592570549851638819942072819889797551699098806647386407136132317716721613233492064967529289906926647600073127337831107255603946380651425988697816452346419673439283438912830771359156918513473666735008803419227252530322727593362057946679157447576862032731393427332500596203459929680262610219126214679061864931847521186925764878465138478378641630197944065645474617902062931420649623556005470436600489777270448449313502729044330568043055748551827980321868935569419589792544683710651539274112002624595491322271252175015261211022310555576594220084725671545649918553327934694864098681291521947785569901208766135713025794029423275560824316891102953692999065970175668357113216432160908664636813341606766172452695254617430636986033797449545242222905968149395692385983476197679463192648728430766106910528762088346470131352313047597487212304782399269901906471211841465936220509789321658181543472780191838502294629880419637846656953766597769068682908971844416975617249922655155119721411720694920278700994207312137618949057364497589065425381364087470144441892891399888787360606676174905591889433097893415842384874510085489552079262249297766990584815193491658189765949635225089676163658570613448082866251066285863621591922128466148548162579497709258729493749257443507214698776194073896744847470497058341225342769679830383288548477497765167006688387999278988439015778395462765096607286548378271329829109988560108477991128729413752903940335684950892410410565315658124944057949928257820356591655488128888974179053365612673294590591511798772293316640487242035899795140406640129851403711910833296111231606228026267240361957934632452142965487764095865509286426796003855264910735304986650811125015694674193610785173919820733395886474950275818735432258902606557499452083207900430859061513775745285384645428536740942329030250616719391191384401778109211459342789666887790672756620997375816596532091320454618583313170042846968372664913857351832611897480190144470199227723264376470814479077127890132342370233513768558829819550885100136925998452993274480623518121829341859679867325357236411866431852684830101784864195880789314760237386989501829904843011755025834446792160289637060846354548972187313538126963973021814574362358370779795192936758039714652971191167252851974852032061476097231792955737223100134014582847021204147954614379296407022000205377538618673186186180901146217461724604587449752767705687953354650941494740134104239143787866104802768733567895527363235717579775135574838448996612550387808490783994767083283407674394079621199653494261254354188165682026222933486587923276172499887829820056160643271931390508906494937839535727612325753354983892387589263706190523820409311709491335390825789263403770644820972228690069743994772100419699670680760008132948741912755317523204940690854733083442951185167383898474460944241443884058887154700393273936878946628784470411695270302633352172167765307544698133868156422835533592817339899389712894214642392839278019182622001973389750182815689577180019772990183754720619846726335082965007991193861201991370421615927959440491067254543971086588623666461235081182547672908196201860241813788831015868494354624766249874485493628192099711323782001369552895262808721470325647856897620399726435835446409558839647028250707493959064480217720670125017803883084261448809476744147863132534517471746144746423068445805278567043569808027711384392363023609208830108142347732557667986547247932807562029600959365519806961740314544462901383473287786105573957404709930232144881820511540884667840098598958600874323489037134138769128208444705150163544153002331860372678040097938359688388112820494332270563316778337069267462783502932080413230713599178536274325007104699299789303361917065909175007006081936340606803452059966090940630923577359157371853186041509803384112769298233934900380456749926287492332676955112029325503613785963072237728552001111729252311736262780050211307713123169124238930146693323174239102246600956541229611166663337095242844657105164617584331803444456800836596889333442616106299887163002501180714592678988584753523984341257782842273387599367412529294482449148058299247004154719395247364657909745320873651304142625779012489187518417120163378745570759391895823786464490191247705388637272515309448990452311852497113622613663609382682541468822460017820425933985571235168902863755854442411359933233900792110293146998075499820945339127521361110918814410333944247783539077538473416718248728957482093374922645761679812752318126706750021260604390839112718402184574187226067569321189827472287815355978824411313525793926600988579666943519903955011416640324470537631745828003952488159414354588234288912811702288325081441835531809430413567491917278620687568593996366455268525532413451583318799481292766012888870239507316703162554109042686515185837219052581028031867203212461012429670641038880418871242825855785367342308022639164165484482327590939863683119232371210439332921965123760513469967035039196458374274847686366875641326968140947941912119697790452160974850732898331278398769745473671056401231540815173313720668708778892590207754679473438844366072728459396231112408750732099233286848103273212099808265170787338021430257789339325887977203148248554115098312028531899157297376886241934246855941638841225737479933887110426565041317355904426079602939995369680201115084983533670645394334373137510242189690563557880928273279627602286666523734940348137024688777315752673716709127982706355320794345658853442023574844402088438277706924639617540052586308072105691030206352860438352331799284040577382578903270630421304155079826745169558535112563673520811556729207178955799789868215778943928017576738473781184650899547197466587686640716104110615570747766181517002064783270596162691183614923722355965388623780369788096071028547910822464359745219743080744294226274917029113532998460325082220365082266062749367078773320370972392219270299762237626211638457955902014880696308177657510673406578679050698318964063391491517394047428092498512366436991920047798077432722361245951589419910505579118508660316975302494012511194034225390013040907189363586101813662630728375481961722744737890632131274212621878940856279404985611122848448663139128161217571182037007494892336857202612888150693370096314573197981056701429719870232696512910881432482402442033496187424219339623842720390436170879885053615771758024655742611741960816211558070542458902715056177770332802332108810913341971154444857610722524498667305445562327202083795487614994596322982235751620453294899638992987845282427795683258367989631259053685766067793513799208228126135038075168812011968243946361482070980125541384402196221890593320961113013612321028898020613935103363133438745301579663933866454409584963475420212868974667442546704386817984870002944439086981836646629187926251571331020815389623839748066338603177802787108709436043938835134287607307175466972022856509856593917261176059329004570378483405649074952241059411676687596277046192402233686935324939826817371405258019741202913327354320698761737180452643320694016969900177423078372540853973628352341495077972622999574626400026557901795723806963369793708160208160259782760700236790622607342242378922001757822412310255134604157972583555715645544252264166809222380990725494701149186089111701224506027977263445570707636186533946483454990934116724343245938928192433294328443980721995626739653072591805852789879841138069165856080496801712719607017828528029493350175782080672034727489832672300885447139704696046143751641775517793596169984654484051815049274003932514682917982683956936209938048702673639403011593589950281780233721050903540954598084664801506964925329945281785674852166001592564476394479532982118030868811017318112485909112438988684333026934955854219085584024460171980343488963953571943228677615948478259799637283555879743442768316558115343524677367516622009199728387979659743355049576699128577872116593320816630786535731075013666976555257968212189980377003554089654306115511407230137428345548660477356393112564442250082872877701017033241906232994265817853387260438405111777198415727940393028668007275571164040041520008667621011000684401470937824336696967450475272200329498622189030450866675279634442727370149971194651539223798488226896218859219307136372834484248682655513469443794645023198308130669859597478249533551806766637683721481787548487098413389549033325927261845339208915805301668860399067919499034346742769413493329051167917237766167008158497928737445880535091232145844269183713454323790697229858361545606768737696728468335880961148664457728519412490519300099131909568756280339500511503069071539041053235576344644402978100317072321974582986526174272825445325556065609280948609232983028286753963173734468018758532621602278941606603815121726741766530772013211739780751779710321770437239873168921471482825105008795546165071988589780288935305674820734619098156485529794129892273128073748820610226264957175286254981572283684418984650971455566662637664509913333348479123987407788515309198067524271832374639372993512205494479694556159209563769239034461057330939991463900740003964548645070549031876245246925551892420797440653519609677494048738544532363745374932254998437946672370568423381573750964282934075489282694750247687137255223065396071384324927487350830177684115805689171032767872364845455125349488686730613536346451892474667601499343013134458968326553555661759883972576473801362855327769069694728586752450983449488976470956376718558377686429353484972395004587326082910578782512102356025935410572222361886744241179910306741080906696023691214066964852228738865181399685867796102978442615075602632118211759698873143519618384941582914832017601399524678938015637388641541489881398244171083331761223594939317110209269389578819285991622729253902540143218991196512817199233416947396006567323280843165567403652878584372402984370516393227892462423137141890303246728230204047453543993614200207605084066402256318437441943970956161589392329516261299910791350433006985650551825161280397277478604978293243822089536071355096013412347678682769565232943728298032676340739518660472346942814623527948217108652019941316426953523622133936120744165496385425454011381981606958588753815415505584041570578099923610427919293457433060730547906585406141882902242145545964844609974040586912752567694174680117420928248703584493992018695494323785815621605174264561631260652155728901630510262593940961239606567272591540552305283202757063098850737513662754553166691617843483652379501658943720747852736274838996669382752244778234124299423038971425086805850562061603263935350327679691031818364680280092243036675054727910881142798154911399582921817681913141646629794579602969158755333192031435993238637551736588141062400564909398224931657939504212875269136867897981345617420549405682813060955812582498126939806747451341762132459691323077872599676425933167488623719894945653147357680065695714992252940024201244746263422464060370949012481563207382601598772175757283487008057955660410778647443239560646702295171205592086480589892028903518166261693614584826363671117708612068199260049689290776419578611581048230296632345211293942300320969651136621319167529358085177827971677229360838569058630485660162464075864083204803103673156506771259554513687018139027686233276537630146218347524226456855919880757495207083075614876648923261747777839134849827472056426180489894763174581663188206959190043285735554057708739337206083384635027310515684227718708140915530129085977777949274353446350650508244457372482684804452468143267474972532091127070876609741799136701559792576623717587053256711398214486812534094811217779020570190278346713382448642685878602921669979308763457952244364284087672503616374441617920889799679990619467897650145484375514177487938808490736950250154555170244363932513641128616052297484896104548366109606642024273415092431042954463945314528314384905842519941360537257102642029278173812842923523269645895928962285408591986280840774967026403323060245098708692636457978697805529702266905230166190074398659806636206092385489400748185018956201884611444915547681375944799534641898836726306786514471655487719912447376089523976268325829777948981674393590459313991293874504105693601207868933675710844930888816434404786302096793594306474080909964974949623677450806117716643829794575304362448110478837662519048336050453514933596632713926199402405673871364760081733978083469512658109357456664887890996683001015961472544134507131432860402851479960743661461369786266780688941457677228529685578949467499236848345751036675443224748785828015330770858737645591452620100729875440425121626534475975949309376426281632360981305271250002765409240684399048806861331066359737793697780422625682279090862112079707285598594161472364754826704644397578718520351197862968896622765038190088567651618077025018013752469873199501934721076007447838682466827174713731902817731922692610734231159745418786944116650174874102171202358179573670781505831625542553145023162141861681325893820346437220258279356061276563271338654517364501887207471424765366173923862971449374819291934707471133791697280990706595495810664705716025948989120285765780938099456760330801948951187328206740062351025377125792145490157590430770891711407785408239306173789791468095890391540148103746120607269968186516031810021155140988823174862683124973555425072976582149602211966547151648805392706294432061535943587841201008288950978153837442475423193629252249186957955976895414104666033538863100216383126610825915605997015390148132237956264192207510247169089338266077963002017792583518833209984452487882990626106143418943221815936052651665072969457853204202728259040887217615562285323613403258435787694771816277173522957805082138247372669234945961044689033559878112036814447240581539232147666570921756778025540841854901899215398275919324433921897219017491376356857297435201248621143692087471705677429309496349858066092017232673800681168972872946739674124110216590898212383231919356262922496457303229244282617807247683445731632404610061194305591849839631657268449373110012321891847109661161028632314227920462442899751657850152679684391282912721566882928920137986970122273997326283082690843675630023430956705619555366680276825939501716591074215841367164567068896284584160410729892785694952123204099232205945125412763601349606508439995168541481484650316336751298873194853710118506173147341435147064889587107987540902889110906210476016602948674485284620750017364363640005147575831253299263211396421677395583677913220335564269825284211937641690867931786123610287181263941596536186677533933063687871528012608714056893695045797858526180892036383283408492393343617964971456679934756718264354764120203740665169874270565718620150278353746540256768126755769064744822478463608124556999236993269831426698791784293014505223374003847715342231077712972101140716276157380177931439239838217900808589165052485287454006671512631598323141691629299505311001207560580181215823335347709962107980447914052855249314013549260420570755893760646447670258124501684114532918543422534856309584677973477880146429983059344183799326948125964172748118868906099058888591655760752228636655267221604468113572910990678272198753327943065148862407284366246042635716799549235827484999208349482871493054638297080427628370057044218123174150260490210252807089091748287945458576479979023753175242309569230471434198946432898823393791054280440084829612192502501307830822355776355735953173360364110095223450622298472773417238253842159719477058785194534331485931697856785118718637856661317324161854541450070661598571632775551101371060394545924849361617588401036018310088777953443930676266728432900218310284225069893255929478836938824945744413055089598045681604974648110297989581104715990211680156412140249193968625085580887448947732620720516607543772377412724564423764478190147209943490149613302422692960792063906142373399265169130635228108950529225809105356010925803751931561309916933412717199506092861202622281606680550676121545310964822149946370747803186034104829098741237283912888805649070594591322693654188424348159196497088921497551156907208033225632024411601536720401476373956845518815936051590547131956082243415193728270126420448743677504913256587648347042165412841892191815655892199620502465925812811464856094920845770540474894403211843039951108190370817760723155700848326213808492393286838206003447308321786576432401039796299933943783220861098514404345692946365120031551837770622996981609742918736559751139446410920566202780702563695521109877023289808049306059785794288679708217584985941549519685196855655628158750927766874051606711712532367052503125891170315766293068713134813631388449205165243844646707239002112665108524008743310297931207240284711419885142277911376717265127633268893404102112479262545337305930013132267549412955088795459608793729502742942063039661625203293012234715444751061999343124969861276720379414636729703015084181558965200205209523082020913642607089749391717393206635068841352945140024232910944566530024126685883059609233674660824240432909754119999048601041688842221446145757068435050308519665882209586693488286462097351190644806649303462524450053833456286968729474620168089456758908972617855066697789298196425517006662552940987347530218567330662031315783512510804463689148016151806478734491753474980338545287247324786793335603376821356526550614775194929737503545710950696222321410604584846028867626636376680213693899343038164473673870005632229873556259111369059214735066506473422542169774002520066398672617103340523068356489065843499162159248695600922128689219824603453207312105817377485116073491492762670441893945718805243413635735917551900693626394894396276366617156869597084638692125210670677500299851391935585065999771060651148218478486557981341388641791814712696499840931753632185509900149778630674270691935757575243826696595556628571563155618838384878065773901622035502316071894837199034596117903802041269433436374709236472065045752257244960387585922153505785546626353151934010885583361859744927314955583983217984544329450796237920794047378285498593562960800729457828933994545455318924760798723161401584627985274824881403625983904670257474764808668142456700458542463507445562963702517513313030612783304797283715370500683883009517397662498533395431766370356112276740107055004983520751593777460660700457318127093910452160945796337202010383797128091202556618708622954311013090329211793438329492674429449147991203336968802878511674059784968493411025396851650020522403114919788826369430194961069380998526663350193224131704973931652508431573287193078231680256281471622455950861528641654263750360678156209956056937730382090942402715540761852098548424195720372750979881415898234639339746275609991629170366614409273502894374115482017965547169934148176675161850527564465264246601369697111151525947348006094361723913178832513026076846465982023674641605441408128500642506001463112225177524905752681375227767561698020067324709192121434606106880823832668568009117706061926385531978525714421867829124441717193147038555481219721238185787114518055122501241616356510356332183456290876061899949810271509834614450877506960847405140428293886215776247272232504634897172837728409475700168066053552300954504122167297439164717805785583334810313356769376677339959872871686023613042699533689590505122068115605059553721724544472877526685720848878775046413819528432327132194426845056551790200347561501055267464147252705901203303677101192698561833126500525698535947552201536750834241904335046239094554541988151763317566250648815329782715783272912649320898448328843779804043052540461140503443956503825145370979676944831029355186140489795448679407264268070150221758019193509508864935383267906065039445214506180331721304772062368938995621770636956047323623355759491483866999457442778890677984241969885021898699565726651864743643674365464420387189524447443318054648144840044858060104478545404895442859898465287012017162308580184076587493118846304791794036262418303815866101572696929205805421154964157932908068555847986863630021646315733411096523483367919266487848204480974983525145053424168615578579060771551150685384075017166376575089082237845636949320140347116890035359423531669831744120965899674401333243633067377412795826953836608645208851454248802392660896543033439938833482863057647766245680970977046658511245861045047075442045072585845325568853525782720414475941779568693811221952910154204604420573379267255373727255558785817097867068611499152943215606413586507306131681421797262760839559644089410611142568959710529549618501856003904827744040595450438261632719002382352080450529913786693399076853170210712953486141391815324089756785341090973054350292116929806038643953592176232314607859670084958577893587119124240073245441907916259288273768001948791578670024060669146622747043297629598890246717269921598964275900874034957850694791119904889078370458793664198482297918869148848594319058209277626279225236488260133453033870657316216028208434563125589778460226745341130392740855801995285319876138360072207550611693829031060354287235356366266203655970239172791227733089852385437096291982858285904515040427817669007065777506228578717496744101709078516080285870591620416351607773506741565323925202739291040971226605877420150803600705573033956333737415537367529846147072785280379574433331825808772256807125426388690262427755658286960556556004425361340915231035460650608434090277252387490503691821963824736552163747351196649841472459176593631443986664506573745512923074418454548009296162441416065238460224917727686970943199908590517453897994424180001725045345107491125285306339427245950615398029697461946646711146464649760917389524006889092600577417476416270048612696312564316376119700023346172659137771892818891119979707113923437324491201680760050238654660781059159344788262652095776382099515137006421545573221428166979481076129422409071690738599426957975835228161145038557736798449640389219819104276495033315462762928822546335200637633260940941953944470903509653363037411599465607923340644172414940544596759911651563163501808457646597297051219228558079663110643361039741803731374081554784378567595280856870052795443894997849648175010685752278207605100197959362115743456980006081819527562893654033008662309859437717047770519172041687252835458578250296367606460329720606157493038976381884459199810632012025599327918230347751907144105680702263292761404896352524099658423824444237424064173027672987030358522798118386255580869700472583396922837248856410009122237218186126063113256617407547986318728844798861190041399075621405079937850221364341305858763827029809030177464420562219209562370613548653985205802155706132722141340161036762776065415889118213563196420514469991716423909536799436108186219132236585138360036658670421625593061719226056971137365761175264845869442011952239029631799297961678588579671986750821011245116076678953481694592022312251947809494521359235249888670004649149846436026964365271341351673154298229551010274586678992283165689207535882154654084592160017020217953635972526651831673520453038950004381194415958429849916762204105731123775478508421278396485320670982570579720301582500945457783442485051188254117719536838691265066118836723134133668286993456108975835149932488043656353580445626329295292143664721734874213142172112810665914624236523165876412233084063143966729385811541736041145505954355997041062542481205215825261681275139378046311082685408415953927506946264222644359965748278796351049083625339730525727784736674577840983133662056557564769871666648765337579403879680393567065181672779194818363743531577299169816964928363138049362991943132548452168140466559521457817255026239767540112926396052638165901082823585447435215320414869098880600789427645817543266496063909528599049914902625013489724281047712869320346091188642185532024139812065378609161081097625465297126525595775213294948711691398169668073105383400594783149181450419731810029702838610083353053698670212457561099810582269214799664900241036072069313307542278589959245921898635156404838076365335871861652638497030686551680792031991170063569471584326591457300220797342749946870142202237384341208892539328400770501975173957755587900645508728902113549262611637342549447299238091342367893449216809203593058115100991564737569353689819224505027377250404258840677414583397802633580535449858471635666391504045004475407809359170841654915561578270363906149526571359669496905214337700180197103661948523588662885304340468509725458296114076985978034155242670218270740051141806196403830181566287755630783825188749290439800317075797835555629949265018231091977334951644331154428832096908533993162864460811171889608600930484290365133654579835608926179344195256570051954659469087843889421713292409593149637938428935325892403103423292647048173395284395082011479111726048229312070968963863774449728361444760288988904138016335991742533676329541901217235021711102586559980893790755119773886160958895579404840537528170105055477543563676338569007964413706891708181000958859075694102461901663249995948631368781327957281406014372369425085155148931175864977870842063132896368444875625284960078354455939380383100336450846081698253602327469225904891097704167963669983092773002841904996999037099662645782462163938742092936198544558042282618652759441074266892629577718829151512385972617251882097820565048724349060106525725242928908086160754824968762655521462579137784118886449639824733306210315477970419592909595650055991312564794123041917427539758692134176066870593531702022479359366606209735680041434579204774481172192774728302400886710155983479585949283587508590408336224892143417796162523727463868266556206760278790644067206006175100800705980699607653443048508201047051844436551833652775406584059596169302966414544383209652103488106301045969969691177985691064856520104132055708032605323955262782505136522133528279518685239623361810398012714494974230210375961341339322346568344318797324153675769910093752592878693850344532833865835633684810874929208153279439076707187776009840700564725338514500821791193064678708013212201428775032560818565568218339816994231684807685637375244964254471705346379931901952600297361693202097572205637165168379226748370360595089634407579259571686682908257249790312919148790950214651190592346587460083333345644245274753463812957837365587477342468980914193865961022056868081540588479683837298227756085976411363304653734838364997457985117450240792949031473728667199787599688064422742601873578113970552860537343379478399537131289786617771904922117058577475242989035023013889016758544501074746711315817980228015581671504568605746022005332484910136780570803074613237322353225229163006473240537788019224502083333030959404165090510344234476582540880500498715507340755712835559214992226461525664045841452019063517217391004941699761183328224487123785399031417991972933911174142437159712493603630748110440588440844577755970547444009322627116082371155494962032453678192040341492195624496312566190766398142205491556120162241311685853630620012881595744554803301625661539680724533098113444777897590012525326091031601086782565253978913494263675890233917268534235607419428643418597155616374519850048479115236748610693977893055846289899410993868780764892831470905327397470117566303438413628335861655983583098507886957898307245152477505040375838607124809764823878992601044721689019438789280780850419064202692046618420127193738186865219207526219689268823472321764966155980784337457367742051676029656422220124457992970676125634448859121957413197563909230110289926597054695503164061956447130721473972910602050625286526814313076937025082874465380251839776065346146564877738877409409167010288371817443282093161713611626154764334185537965827608579499727393523363655177235040915792844633869622452205424287360266155822773703974168288198556248754238899589855876343309774603983251643144859057699621723316223748831465472742185475762059983972808050430188331432978959937674328724190377254223818195061001475966539605623796649668356595734332950535768078813343857962882245978178704699094780178460110748119371216559428529082664655932591402645863351823314489891299449838677135664244332963510369117632881268681250239622065659312681233016164316416393535522164667531734579570435726175786108255929861146817598639547915636989594100604598570412530596566640791671868708851075170718970681241282913600490078923288184768177781846024454258477338440480809314285942237570027527725095980290808812076652586833792772058365958355273139071974915466217623592097376298048598747960045637632873933043605807407984725197132666053096543415427596754033815158066910860324464718336407037987296111686801561133611924340317113047808765488306312318283657131461952126845091835670473305908473077987366563731473480756792632301599285504561897690141576388610435779820570851607042522173401549673058068131586243395039055138284633931296278424569406867890080427148563875967095004976037471743829415269283075685128193276118687246978371687588194137656631108474793684349846203140565484974013722144346420239464802342032635306689791473439049272992702675663703632344687850104998868913443394953877165404290716252738795818106962041721786108116112915738262501910292666596373802427809644762230558968962955812538065237078417789537116741809870023636257582821862063740294715035024288029453762284319516603582426930034609886005517730896346797465538606355685852641970823149299557579333544262569695964515432152330977073257536156081610193507781421039258011394580836829966186360990326109998966289743959945444609778761604518090794541810839300469100424304533292457541244728548782997675594462580375246843683023180891711896575896506442533654006601469472235007372178737309774009717979055528353496806078340421035988272271620264536065229660718890213239845702573401006611445000762848216808529325615310679657035286722652321868644934548931893488205397529015338028275504213495556452539921037002401934765807738050312438693293309385408556161263762860607460875042568920030584163759608300301539184440120396035140232990338859211625282475440888602392748264366563113283844453263931225893106891800566038926197361381964441034773145666874099351165623122138875559784745234118118589740848853077408464431805098226920184333342774804599613664311727397852260837939712952115617293639033670757594315602444751499090921633634348162299736881565841031215375905468599330070882273617075721694824976084909346829230627257881275316958019594134456177135425743076527828790887495849986559963540242811691150559250512508988027961213652696407700135740150896225807054064857649653218361532598052057202005140050321977592573675192926118407746490236449963214084714168799951042781149653490453957089085028461175884878713527770998497923340235520344432627292043833802393626880975348446987193573168921640958047236260330043204413945828074621999824719321132502134092720797421630475992091532849383689278541111292417378046257970532641681512399152786477922920261886397791548129138063938129083639904168299273969189327420676833045945568793189566567634326871668644631794600296483227138047841223684314242829857099553255805715174406870493734812365976038333772018482610563481868449099004320947940364515873781112542571984082427314308800282753992702712306787665999231889353677139086073764562674490390550327305262714644353858334319064031940501471190508823532141846392997773225558144771461012279954919852557154095056945086307273569453646327372971063780756993106003348888211118875287045162131752033346178727120150745775946641558555318655125270095039230292079410001834937230792924567347134333817821352589783153216153201030482134076975016798025142157939765293890954103196182735799013016475219856489575262492148342374839990002254031756414461980608927286512390568777295824030268198915010931873259677604902458319639185963480159811894307867034551897866135467964069854154914453252504656623446956802799146561255507141951101724927694249981016668717075940506019065631488281273594697077319579307214361318827412299936848926511635428200012234617513185671905087351840293756397467374155385116242441156925092781330856037130167531409313226062299453221333809595836963228593459070546147780920339930487575463804977182169546649823737918750760969903530811094258223892678902969080764638336341904327991441416958202967098247323322296380069140061723481754324163033937552957748170855587956356673085724302996933013142139547206764250367230286256380778898075850455474022447091683616693690362416377286673720196615911286501973378953242813306248632332037873983745238905849737999675683110885218442764768671855114370221654478375683733877085861220047470823021959781878839429405746084946672852865758062884714530379571552652026172483816045573139392593488960041211555904472630946862542536602330962828901555463858606262659270494671688911482453610268470961887416532750413384144373916482022436693208353292841158331730554976916296332506317853147535703675987272406491027225738031870813848430372727006697092527702284524729111560055227899141847349277198670463381204835814256252368023859043158306875225830152242200688334746369377829151108096335974082793012103729219944521304741720064969270468946402988687461831736419479902628736652007936749109618024627431397526048777563003126713844560110398994399534946028426261148348137147591862123499822418511646224461507914603079320583251645838022712293341286997817334541269394756518934938390434771160471202857027096975173726239175834409084799370576417005189542393065080122661661808239763601108653939577628492494176819148540735059792616919297029217260522856501089531563299989149024515664392924645861924274064028412192716039778534177117376543686075956481497420262703413963375879140822463238532235555683862121592566914626447163491864639769255597233582467859343878790829635664821495328639645509409050515859097294203665016809214322031411671548230546429213197814553946548532685740332711380426909323598965592138128876581523102622839728357391291834763103106552433922148631436968777119824887843431865261980024363172095459639312628987889144451567556893122367926358270716114877609990891057510034982065794320081733549151192841662720826212834857825423145877800121274004352803963912268114793565862455680954171872405975853918367253860291062183092481326500247932870713717454008483601404352698597787262624374118714219097090705159706858655589961358191089088311602890233379947495768737168786104602819580872526956480867866792837057536783710947175290512160793314555796765159585202063291104039862662127596120317461653194672758877512096073318145658626434167554405416004281046424026720410522859508711012650632281023934140563370322960276891731404671559478071232634122318576551194933605360289912317849826825409567325505850768051311700607627349522095732348060044094386300174482164824309673024373608547939155059789427866918832954303238221730475301380110055444531562473579986904917956253907036595783629070330884047207514489114040083143847636176859711032815401119798997293015614457240672509486401028595806421234790753927149051510188278662817430797744593755546548387337093090405000922081545518298272854071691835620242533729547039458006183013398073327429511948040464794177162652657535986815620959662019086692553692588201690269779117032418165186668421101018780555150414943520802264902791218475069249825872307623762343311611106526500559027040432312296193640412445285026900092442589760238612315392370294162490472687883029651025681080924894391388207437393959043311290794317703229514968242483082486196274918893517488240541742213437284391152427508697695981346739220378868479322771317812533019752287927595314228752462949513714258173028024348338234634092954104501518676048852595657068534491965902043853123799533210745417771983454819209668610378864930618405235715385017375859115643951989774119407284526604337655126762221179106132786818977617016282807463359108572880147158163280404181698482246622517425993005791187185421968377477553362576206458351853151659472448111181948981984232925347062523464315470833326988724989494871746684386500040491860005702036789686323753074369580953000154583004430555721841845906610711035378128042711926740090923946289789187881414046942088674803394974977561002468303175650925621537492098993007614295046191659466398469634102912175246314986442920691399921266052578735838514275663608844387718104195345068393266892026346985048046248188383564784766964535152427150828226187787626338714006992329603718891253547290769748978089899567135146785911920784765635785234865171265922611031636200443933121214808455652506445165948224260961635897986210942398186090689362189527356513972781398638988939837627608864392850834154959062703875349653446109260489568948928116099944996384892390098094389815875006126057519899156822637139189827383314044887062010303534351007379006967141603680916310841587518696436706030130771092129068092833719702216802366476280410678830063908243273937653759873135887466627020541880592835737495382551686895745874996538550680823711314971597953068067152769699701292712246786476929834978250255974481652799493750503091690643210869921792399349702481648610831350551438416042291287093268970300663170431897837432575169584918706254431215733869721101776280595681552918014099104111328660052885950551926260341880388871147553439061043261007466480883748274910677003751289451460646042521627907148075931775643530715762459306456580728037323082160550110179020223443656104192359638432459695833093668421334136811599149687706198094145430193349194092872843424622872842282563789577755913603577128064054161222035532654652287913906862891951308136010069849326963096222572950691723526745531396051566712692879494052986126468216042696096463566771065723881801478335621114958113997573679218791366382881220576870076132673629244052089592352857132767519798015729627015618446438793945644753433922237638789211878461927097295508165386216772165264086061829343477853525950807373085152699380284724733993252475766449904230250833282380143578424988850027055893802177717558834124637294560064637610027029459664773241068285839176814019262572317086358215101682704416657215148184460625770800872294954513282858073730951891099539695647918562394929651500404342310013056486460914582999076188442518159709070287932082737349399430577751254339718888275784883110895421031452480550755280992313190621590926623116547202429899470110551616415406230402450474933746028727182443920509768051877672173220401665234638265886914477245786563443420270028230338931365081405146130060758997491988153076690927880252646957619455645796655216531605326577824921157276445501530623275630693556581541069257762927020172125804130683876566979449972933016505262050365103810398610835358405712979270606099393093116547030999185002518537655294270683722041252559923612673460578846618906625859943484354161127288920261745743974895920149369442072226909148015251476950188820703184649845394226420974790913982515487295321561536877231865666142821787078789265118601729546120180960812007578210826944289609580184716391261633170897266104927705336947067034571662446765235212507633802223276555118583458086119287078249631745863984997993526794945644680589045059023523576106764130605273481641160566824342538355005576509389052843605840398748734283177736583090835113628429174853076495732696640396188287044509278486781448699032691122670656625600212171405182184338327446218940719226382307002565046584552359744431250913413793154310333998225279465662321072904073589589834435600278140396813828327671747139800265905193061748924716834970435596107540236019594158688359298459442123306542600320844161489870395920785805420559574921841862784800983649758065038764905359576671444119484413197869748389707320368773608245617308988375487305626680238291960701565491916151043619261356130874070079258027266082943855149916901261343201311357401052029309745206416701251325489531771790915561188990641614784585975515956866079639051185451266164694565865694643804250908347654719772932011981895708861583830376990397938585941784888822343591942652244614399060612511248450513333246882529047750411088269096815875690900720102638666088154703580264441493989566105168220716287964567388053960920739128282062495067560387898870277908395417998375877577238924275965973672637984260106382891582352354917880356440435079306129817472793883516780053420463148848760434958216389070506258173399984335195251116177935274561708094060173276694236927039462184809419189920467341440288205754583223062690329720327814371971154829122738605914421903038121526267277823998736289375992770728622313731171726672779691317226572270874442843911796663040431644246749918032083957744392473146359177719989936252507186897644487221454847472311516126703450866793732119812526447074875741853295055596895540610522488541511438895163412531565468904704783054793695241754189467309660853727479760657553863491289213026526143322949852090340696976881866759639699127156465262264470792721864315172122614473686602268706433813155500466809255989414792357471856007771229743910033218620904885009460321107653838296908271241149193187764950100015340092545657767436937440286915624881923251263414354368938816349965586292359558950268078618819204704702696895136263446294558978207002621936966033411323772560797081193925461556390471783145868200953535408291284085468841957523563558844151393494635255230566007877828370892391287362608734386117816257214569553202602354940773205583095069778710214197310059876135795407303521212376357252939939800596668126878743782483490909494411760596023480113149404236975927880916633155760331077307673009975149066945076685954150878576440302306702707646909251397134071219040640260317440548364025746546126600649124266947806683505853138828150275209516891292700420436329083394475687343099860563398200754085367761430807334713321189418287526987690503839993869870709823441367885151079712541237291081950513139144429948477964872881681420078466081961220591113807918493223759661958961534681361180148933538818114768482376213096717849880547080145891309228842585673734101429611135048562784781336231821983056550544204617656264176154318729012847656017214855017787909266734496105769065421770172932199042088403743229545409026155689001933416483126575313783445174171926781696121292156205143457898400469961779247806534095357929410174981136961615534516432102320346053259875958877784529319084546545666689077261781234905418291372725940919085607543212469632123078084584742681435786430752985750663833090133747944073667441058325607396415795852248494691606790595295160796513459568215719285460149776716095037751507301183505830321328370890036986621522771396959201111196628466676370625141553077541570451562682344845532823322217146158329415284088497233850963812825583219949315221740264580292141044294913732721384690524052237122663839390270769772238889567151608900084415695029964745016032387520898746225446488399225877542494067282943559689710683102930569173368594894086801001915951026466894683134024963030756655325081945770638555531794848604063053812646466595507066092755893033254596294336854517782110936734412246255167833592836913422701215462689064117130792440687474744997705778624638910786536122177168148972353564793454883611393991117665961484199550169829848374333482269976589314177923889743646538604039510213579779008686641755952541788355632795541758270640676195634608400605232882644632832319518668697071482915124888837454340205446935034361498976664422689384851326185412135879707762809139342246989419295436682520928295732657619885698398464653234849140229857127735603346447521257243442981438789848848161817457639633208708139714035979425595607776021156721149614759811245607016338122368023999776314413390482450329371420539508113827552998785121753221455965329840510073176997625173163561238163017480437588660574471737646056210191011433774996445455053019741696787108431925724295967011592334219249308088497347526203259924336977143559955952934757482363960710164583743526526891651709961733787759708992162975310877383898440248080705760430572879752899753901819135216304329863117713159016902390897823824624713744758750515548720499061803496884517622170616530943578552132223764561471359842126836368132130542441895250014341703387108389302041580805530130830811205846902992325378832438170445527434102872957241606895795960147716691304236888153286980176425620698710626699035118919118882335690191947453504287327979524243522699361677404530865294950702124665940907681400180834731611082782042869053369516844286488416517867161026564321235625619011699618136186798524865633746405633060856806204203350015734941400851577943385933717055354001783530961038782049430831372759941184474755090301050983367181055605369770002772556074750318805902339420685986256938610789913121049837473988730586961127205101013398643302336730709492069709357800185764555413749647176755444105727999495071733666997562389281380034221628837254423221858502193860423345060203742727656486364038666091557392335123711636483007200598107795684328114465585092879438680734920739300146240008354404719092443432099346938850991806953483835595092573617614177825260699739242471874620293564657570233770490140392704515777812909108177989341344467032135515757392956936263508363502745927669651735373981235963005495487264274622195300879078803933420439369070881110296854759304829985482995625764084042727489437484853050247521300513108065226373510993621708661931195497867828116914014129408461226971904338474717695027366147621063412529874435264827270690376993869400609994931598000952606375730861898101637625902305966743555696144503940625825186948974805242691178725030712851749843339541115665037162210761253727043484045086968226375158426354351318302023107113873114901136260448304667020902491306351563672017550439211703985806857527940638859004939072370142400535935631460975771730890677795960393705885494520397451638157216720369706094817828885252796210190250354263207156775519730340625123641055755297733372896958764798264957156384162806819840914367628254542280415775075581990569166106553941009767092036290158119957322484093956686506876958984749791067521305078270210158087030864654998068266046045047451891553501639396270661594663408920038574066088251446909128111390150047739997819652076432440226967364534436899168640022426890840694411944831945326591067883722580717497777533246217730786659813677156676295559527040677599411233950466794130787066587348232686094088588767837244940924097961763225611357770473449107996504987835226867178712022601917346333292092341980790300233023273082062297114981993250793495394129161474832707990752185651451103114983338669941330487721551383299173254366822528996474069780024150042150755575307838930177730430935688995816277174926783781181579301988379391506694248523967043224749511495687253559449259210085884949865541043279307710288310525213340619258498532415988461262035478869046546276207780130180892787779094954399165699687181209232014801448911401940414581533615014249949188894837126774488397224613751316422232380852462275951149745308967509975833132205749226505949870328301881925341786733858566703315627877712927698360337580119476549902056474253264836984730400797658902880202039664761769278977066704017532728825222964077855487967118530477963028351966458023222505305075155203960418639768121601352781963126788799626292655065690132391710410094516148047291078872889033562743262690174963176877674742719864096605225810209694617686675669608102107888599578099544138744701340778452008599971008340268422216403135349551341005602223304393563248298143003025142711632757717142177553432494637208158938557092477485876621384484868355217735010943108929744323791765489559516799010317491046873014595124201913239439928525350061217003354311098698381337535335890671649833355113599420551598108467432309222667988661165055387711377993016368263196466403799752472801845206244967462064136231403847657834140835562872065527184137074633549301882993250320086292278176541941253054010553762851242555512375168648817149596065451043729395550847530888528811888717490654589405407249089715614217307224357093712224738285477285994722452476307757428958759945803857567589233521617700429399707222074869996085258396854104600900528800842037774352954136402987104280124248398297673530800266435378203427534053884537601435001721599177437686300348516629620796179810585667654981077413019170035493180870572258644572310767870057837592585257180005267907922499049561750279406902816862950931560994823926842261102969406386131095733541835261425821396755291128330854824857788584849967817010163970546737729735908752248019687641545534746002749164887245769812639065592144260324870664909842189208568767737717274759004824464289225961284769972016333442211929620038994949887943186072957007669205802126231009670655964410645091536319003870145529536318607672113548710496034819072734337004895758251905044560119711625898507187157645466110128920029248663687863759475201918990045790547990361303057085854595167690465159815902934094931941642867009289614926963367956280124310162235502639330831553330809953524500165076578574109126296080685484889718258573089168046813895289171994395247765860171419779612589728983502439788516789945691096457065317119121107740483803896684519194240001677578835226672845863979910959390420724871292210574545417780818298766974185630378806103769703501156278913925135748805297259258053654366507009151110322834676674370826159862942076699862068179207859854162657873339675514419729547922965743779618075850754312975943964578804811327837465348774085446353939374442406274392998003551782412519446958006783087221951818202012796414809786782342164087350570609071098284772966714320126198521155763192083155977522831617000929455891600701851138912260853130620295695948840504267104899163581023607201964034334850813951870200843374627571621920909011249266350502286399626418245444539544199797245778689503702271164199490771875439579778798144568697517909511756438970292152056590766251539535420732142752656532186235879644412165950320385488971939178199005647955341654576245662309775633472414796936225183433297084365333100811535131925058160555931185459817604027604347357311942780779702735038995335510507420061246476554266771593830384390751886356467882473244739365268994757910595953252301973746250821606099089492875266683913822540488656838065423203867684341121484261179560736437046710614935292292985812241513755402890476289847188826672032540793101001550679302030550733550344103539667832423825984112600013014149639516060518407427292229832400052184314524632299871949635277782818347577600128840831083736892480609411927033963359846790430635715839936936141195527250150452426358631412012582165171835297085613591122419679569345794515687619884787276592180192240992201002113562094025073648625922906431918276023689897641994765188809994185673508270945487473771961142118379657251152112864287448500867889069512181519041753467445110841374171897010237192178464741120997053089554391615110414702899036608642981184769547376585248464934678880485609307373527331453525117033477515297640693591851812444643440705239509061609349831923787676141181110057316417549803685093748732439364994318342162780526485459624284540049781912977501560617123323062296928864300952230483609952948482874424889461900022495892674373937665987032434108960844342790897584058315637958375582638821002725759603978679825841270789005605133244939800154275136514845143034864353837709208393999032920755824639856068940415404345846551614466875399212828981448502663409960795368130320458610477626470180716524371841874605672924026633283466855995984868556528404180058518877990569653230387076432592186848842067858661172233570264240967324452875170436251758284740403351812960259925177382174553072250785421999555268953393443967283372440998820453947925862878443993917501597937487803280536710427032230090426851556347588435274180824744539236916834557963661832741123023617076105810343074254466180481799046343592014775083918623022215842578663237739805640217266450118100532170730114590363696330227530860346341224641697422047266792491569176155049948579330330001265274043115817108879174993449853714828660613806628803237895384667280148410341305281702513496445582380985270501545030473189257052408084798980222647794024682267020837617543368074265196787450305756901138438462712720994357885438132810184262510238166014589008703845313689169039739912575264673635595406954960814377369881680996390303293421501765277288509189860055748363451777959131899796829285141021700639936704138698182504100957230527282771033499122202457519220267752136852701058613145640423820316402615903830899334590474290543710030119600015600794071913245617111143842356470395133606211881234537999174404117444762958809924282047887769061546415019865138062426427935244613861111800348852776330104541983611004051111047239975395664761329486756981233767672551279787890299021489705817972946213291187927393331824834555163189657827881393847219938674851991256644873258687107466482478959139534684561980981815234947644623348274485396512298567251174775988390081049355249059719006790562220993387492931617385910676782832558284134527384533088811669176901969497635781218328923371757695840088598904300816581254352405359634967244960138795401345089063687097638003752278774733622892338469223228806109818297104185494256360877057025365230407507517900609884627616787938200475381966807271712568078519878015087637323437249081562609172279583077573986013746586987234526969074071559087298231031684548711697544886207872477123657918573305968562449273318839370161990146873507506941343935197264710121436405390516420884028959581525306688409943490636358795314419781780532821125119380538310205226537109684182968899320083649504302550399634679149979898067227072481611837279359474653200048456712006303096207203442702813769115501320781701294764419563249444364200150080625419974325656568259238702960454147904208858823965878652055346846390908262044775227462510631282924692650130437141821735440763194530530225270233361927788249723966892461209947285208399131498999548989666324008003411034290878519340090236702191878985170736624278438269573929483299934453854143896126486433233461223520619222469439389953214229553088875728522217100005672820507231469967560523009440535537740365052915344727645605583161617246129399007541748682755163947071062447712094481637398886632012858350468943155231933793156783719629406628661873750809743664596836935524687290676459245274468299015541012668606907108155871136432635628560440795731255346076483524186211347285657501942282087660607284157077525676668498032787669272209708938544342458967851603852439201508256069642027353016152020696459058963769550238582200085519887747962112310516197702702914081731468509751689899866881459128786371602975724499081108940568895492341451503483764425270543937661560732854567164509518986878949579683183448255850395158532849437816726973920829707872012305979176027374143675942814167242715954142328640739883387842169239247707103152419142834173374748335262208861581248610984785233257290057218580936119073287659651421383657085367154791366546946220560918947007125942155023249916906899641184858051517329171020370055357526739322022948186607668873760246764315245383712445736132080963003891942986008987386934426876600904914751985462453838199344156708592661016141635474607452995407941850952642647763922817566600920443202428889589078877875640668544397960223710853962095724831491229902455086562224943634457612298831230596889902688249652142362807249784230146867224993529062896467519402673647356008851219661871959073213671881498109779397720632874638208060270941116956361517754398190743550933925778786765524474033862608947979505610256283086040392722035090069751696764548578831906559107000109799181798809009987435260339275988368453055598881972638403260059913559246623333004083297059226876009821811958931464133728371507643405929953001558936612610769136405054060185679245303977334427997793133430504347318236027624656609940297057106662059087901413126844919144964671926237543341538212096531262834843880700933881796983539598674064139146051620291366282506716219720265596207054488217558000851467738745664676508987341017202054235727886219327686297934577507766634978289582119912836976029681524615770854777532897397358577415849744058601648818469734591864389415110030154764485253036256396973064744688350225361725391709406768897920305682896739873082503294235163079070731370105160153480770606637224089402434162660383760927118846914821500684731218512179267579797818630359138027954335158892226592394458302506105955502690547128561896180691831108178048618125020925832228507399168557522332617592898745012995784904685672139903216068415120547225934571146823744552442982840355745804766885265691108189696512737621415545974040437184911316330117170090436658738230541090734937336742833085913889073611077776975444614650373290592359329899044729006945143674047796776222647353033951203682110498257350275866833803912726086966438456297895578880364349194560029472090004900490114079016462326656840290270306719062945180926263053589350915961991826241641208873780877262628243731452207300740591393209175759232896822819974912796815252769172020126388523515082258902436873730234443104448795167463027120406739557649047624265555109729003341824538644096005689900274625384234413346048061597799654068854013915885969821698898935752873807662455444646556311316054842426966526988413120347567540489549455093738772212807695054007627297700794230437938253773879839516969560615700916150802762947741691763524052568073996499755768948560476023065138707675868011867078488585336020500158270433610060173890251996461338406178756981020449428588484343832778100118051427674170813964148562931007021903555604055615272632164481579589073999180016205657220703449253485376936745827318721073333311255901647314090622114514620804222542555317173236294592815923370057069116514221522056582626935016271450483766955000753493876788219096068936045243414041228682654724005187572527192626814686649503085791968474213385824288334396005619791969296458364387688877355039782034063592589214965177507055657335851913583292995254632038588525221344792697884296576654117864710160417386814420497550348449215165267542464846592242110226445974954447975103690540628249413724237895676013408487981023023416251710549430830641125272142290458568200379081736040738544072365623883855636541186952185164356676982778143646528245036989987331516502997100068614334852931992190571082320951896305584475181275938399654705365946282852846582510627674812069063201848951791310879182383259774323786339363543601415632394335515192857459950811776185833896064515739099020557151724044010313838931662581302941537858699290426311842739897473229125932685565045318983452022597565686572387978171261338188007278169017790528491537110238671937484376825810288637553089441511240403939791760779584148068070700338269919857944036072084792374379124452336463323976647862021809002600199582662010985936776381381928017028884051975005943438209101518644475001351692081767697040644749907586483245114616153843198306498041677372185599572250457797220562487613101118296080809291779902538545010497826868837463128226618453888680155746937105544575209438001309954035330658685373688135637299697379685689732279999670962395375892494576550335423817912723306382500226299288580079893539406299069655288270785549549063172878879424977275817208214861343309614054191880097693094097855520935513344178752642306024885290212178863756610120358392340233868216982211295640905631182557287870536016811248068020164045875549220125567779769635914807613960396639427112407206332510429386295945621837542313444119152946591316282357872291778792568066323974190607298674356413621257553028101873345644241424237150031026193436681389845122135063445508830621933054093117936356156372343430663525153379662341734750529010992476341600402083707792464509534966233553158285525248057591164497215313933345060628759449907922108283640222508116738339284693357082110528678394726857592025273667150968166423179417824464618033313419640858925229941054073575459695078391116493619863980801179408059024238124132494268075270392726179805126572846174600595546849941398311052470891016326577923919531561250341543670132757825136394400774789017675521345744566676796347099918325519979226944910521465221375370378620045165210972863393118274813105504237796435112860982488795457334451996352699182711429962760842780221664078846442238082326362379332538688144983818184177488169841233989696123551597096626614982835783226026841449419758874473215144213199406200382744943837227045859587134887271411677949148143276510608581203188015066714610761083248070729690621871151113589190739485649955253576792034551027349775767638488065412180505190253090240122369470828404785195352904125327311459816163314941950672032657501950304660492763160888945716529364609311002396637690737714080161785221265309829387208449173027347250091821956246180926889590704272671702706256462234428159789534343472126105151406392806907976702911097354356697533836157228710061925128885113034166386154055785395448248920670858297406488225642233406161245410032799421425621054864732255588231690226109931466841824085472868291698736051799132982697431911733822459848688354977848168273698767086974679867308063659911230068672252476917918294967602367872087252952798015656424733630029685614589698044228479029749947024011072375257243079930896187877674934634135200084549559568576220740535650178020039081907724387664146522795431529578612417874597698285329527651386050939078278848199372407814205893045930375696043391070899018400473436357586726455181956642827406358117216579574580703407770574313181060914262952865655626198434294116968112635325333852753222792443010587576849613467965150285887902799600651813863636162002803759419472079558080692761447860601181166287458627862759542636565523097709190681555648169704849921030208921016696833997401348389361718156294407092670606510376964516913719228107667155930595731931855519433652256605230052177138474625369707529768497701763056781167362501418973330817146092497644824159410797467877496869780844173062701266366919653026277351198678739523781586694555677660335344908564403324101979101293593377765394167062994600543331635291526563841482835493929244141080945142168175627233971903231476774360253854327757690273977254377999278243883997203210322367259682076688436977746840503393081280493921362646846193234941557507818235534304106181128081767930443666020700803081722761055874216012113996732774728629744808437609813573688807304255808450422458628812666042195876498923909006638856345183501889613286655279269702782688876265548499434721623351070143504016235434956343215212648700224636117287158502981659584283996822679817106918193164520016431607307894815024836917413092275474403787108418267913864652050702330432413350856685742891805762668677851562745565008517664119087684859694235380996992362760579139372749011278916833599201691111327420057289575450323022775570633772542353417779919875269936740899003269338971557013498743908072317513264946513127522597654125492156292891819449674449876327914724391263634976125778366563230549312599724715443902398727222927743405585447581044886997085601299601377591078727034421203140871682779392387081177930528388997598878596996038681515682844861829067524695395074377694767407242914205450012002437674322845273621943001697235618383710317206000408413336746022937178817982590494730181913640983211849337418396876946871660118162935195392688249933845708864239874287283939678900626155971164719759657310445102601826191659183059782617804419150964515048274130269477212498230543778268692975763261682621805708327060795387420262755083134052086757507883713341640918071435258785625203925436631522846473000538962422034185458209059367574102638354280482497692849020534355729725309757725707824304192063883494676875550148067105977687745995371435913343196417107062415688577486609538455139491342669829940430942884647099535688625173353757491401394944693692314653215009242261325422852157143815029753018780585181216952239115100974936162830885517248573351575164980684977372898970324077363613138181934196892660907173734970546073002707888822108174006170579275943238354911930528161092449065966685528541830729393965358211943459896592773685136382867163263034654547199209583353813147808246413063762434407180357913555883199458948721437842914910889647209335504752361158904216708937139968143951929552153373690725504833717236232230591947747665357142354231072253305012268767133969853467596069184820609169517791466939357487630350551153743535228440558854533694695155868396276344039235660888975446459271196201967894960860417942864571930654212175915169951162550549554156796882530385366871282317404138379320749789932508434852014944218650001419643913773595175000983963523784615762501658853882183535835034520312682638698026311080430106410577822093554854989915935141386956565955683544928521112320804675885428679984705354004684858632345589110000923904891482369771010798956092556074986653074484514360774795893233555842774067476577480259768836249128670944913095001819329331089676819240645581302240899202535405236768118759006866877816025594781364380871958217701188058969416180905043791154901651122432944227699683948160631210264029507990433260666835200112824796385066851208036013325206838688302015109684390998762142446367325700281318108314637958348266182099548797047922400779137749848517247560671123234237899350602793574333313875257933773381757183845003435479617604303756163406451367725154892113116425151828336390558648430692895422392702126955179329540148083001315994496531042097292860708783783094659989273760952629877599077723883747115862028416792433358511267554623669463292180224127464685812294720112804824295135134455101561590648229468064213320706128581723130147500410134339953347159610231452837782800174328803222510675056982184964423146477294228302477823622842875933896447026968790462256373433368636928724439016949142188621930994519104780201217193257156616606262310602862360469166723311715950904391580619437789392982248178271212267025793005394753050256743406006830267587335232609840981384942191623882826904408777515894223461287503487021350381226068063207529743707792176912069831105999448599259576574185805152827126163879349211900692513707036474279104941694439899317587816332422031169292046795216940274399786829088370746738242785459544729871043265069989713408908361281828308639651187939814412335778522691583653923524619683326928621595831052339760732525415510739727112918763486531657676815411080059316303847983425754446582873825803028860718107923706211604113713676863386425560978226040663282746384637620030476692357592090166431278838474431833683334616485693134916281453841689723988967690767878801338648539941853679542379304378510117974500233039510832233138342892817901509144336152225482327615769636789273979265896874318687283443305649569836518984188888505271385265813519465289826928541213368028866127565254539743966555418269066628015416005720100012122395572214829240193673768299701560864036431889554168750463071202144984092330155594666086691583502146239162133336852156088126711056321309666866283644708355324609887094249276514927811313105888551886797276334305037408356011227070933178923787735300192741047855832709362956403928527602929903133894497838207178346951815135287714580240197635416098546472006432209733058233269729854975271960919634219240043475038600758600541388299623044320696320973290293577045849031428466161592854306495533233287320340998824128883621509453284773834081167795994704875748010032498573748649961283837971103275594798354259443233843294664882515289624807047320667592647406304027123111992253791351874836064615739560901713378731325742394902818991083631575990725344973878394064161132083121956863173761801174676194793683957998529049196598426486773756706050038436291505336552338239752376001171220518949572172876881070952877863239124441966326070364245097050090098488898490642774949980751810706998875681637514206580760129313962586684500909218627562822558020777822739631446314197654473933267119287102942532881259277606895316072273520832455548968263226223323221838631444410062799136580279914445650755223345439367612338926385684441921095445675869719052928015668914632301873031487493128728913253278077958914581319560013563540440849618376625451445397760744835175628896335180814608330788584794217815139260603077314734274992524419789032991658390939107645094097967076211197657386794100658677793672961823650650821299565806711554207975823177559900150760982763373469860627932773870782794856952686579781835351093563921765358767918325080133191426788422553038686106213891487466159869345534536790587434726159808555074199230745264251889679909313154970134102096388166587836142242832813858115512704100302613284838847350589736202826378310688158991451287131472134824133140608448770034097864491410398488247134670205525367389727286206650436097078196787378176280019926286722851532267139820102861391072033630082387641627883266522549415479043632229325111133967297467785052423915830291411377443000749681639134971553645087926655071584348132317720543577918999048885116250714905680909153071046407000111879818306386438540249738904571446138070527938527375641714031896257640594975818008496148338307056311470836403108315219799540284305289509587615525778067982704301431942911300320324008190973714853592670592956489184278443207163243081965518918569591233518396095823758122710801687795906206492014521420553702944495791011828683879576292059944417631954837978852408554689439361635934591744928400038785452465956469150271096718596589978879200835194631824950749657836789082252860050243762973812176745374017025056548605116691399262808948095304879702746537444719001485821793913405314916766279478846955252174885457597832598091808757490602758858237444011823799397726869016120944573328780950283563543882839059197573987431818618090781962433524807296416951836403080110724321950154881267286390300128188083996393094671377254148266558074945712005105748601762044553016975668895323952043748479156163993372403240286272375262349460377717075171619045336300838796665789542040350330629805410703862121233884220468045164535618148598338830303884867846780327330045630475126977700393108379892373034062771783166888893022216802622249524736147612436139117565282134170434898799036343550120732466723434098952217543387287470025248444768517916166750309559052189310617750255239909408031848815911342744373918565194683662552558388823382970536604417985203747104280760537599903450414699238712865284397767065453576931578812993002344588762199398579047474481493911610773527649703880513761913476274391221356127002369569411002823246081653171152909722859922653039471489674834231414686897767692626004093686082113034654423958778818392958039158122986245977761037820402898650197453682325740720479145615712604739758929880887498105731200639987377801571122576617425903153982486062227308377405588648844844547952092799696582836128379240739603711161360616651605870163077783412401212749687307562735786568778808901623671315307715364741951493180527053060261337032939404479585581962365318199877692103738313868236515210925651047622765860052079889016690996442704573987525907931801487623312269091003502774688566073438254078856208358031996197684377018811081338955082245372573236544259239369558672220457163781269421565220557045589530629142265200904975810281633804632336500126331033008226795773200675562748260793042434435926216963369924242169397965188451639546327116718039322461264348353696309053136179851348554703744282924407858930504866914637092237254668736990541227855238343353144109327540934903717886771077433722206957321931064316262019867027842314967988986588872838354930999299968556082150046256239305213960423087767590704590708439505667313786455504983982031282278454542054655103559141017257861243723666931225996089195511684024292344346372263080830263181250585514670751717237173760811354045926357067130994588879209384679208826494519184376282305297283091057313618922693505703527393758052941223332143292478075785401800444122065746779691946752684255760486967666824167678455419752422416973545463694781240949837564639917988671866669014949970997583660301192834754695979043553790998600672745691005487557938658620070706825254878258535040508563852455276163239683719379378970323380646843854769187249927552307656762434281639091668429000235820355111017315330280684078055339617625122652566275527712648730924430970149785158769018014300849431512859871298449928968378650089030063849533704040662781913637416209517240135557749391579455427706832228086402593385108120313458896498364767681579856360721438778506617060456603149258216049582502945064461925052737924861045914364899496987929859090189848620643076323113334993269849130121370947898150470532550295262172154595685141983249657841218045487347866291751552370943857160036836966226632077568257785393152752323542121517072247101814883410316573841894023490145201974733912299117347817181898473060757868559273623615802586751269657794728395892911887301980253686355890363654125966306879968241874111865828275845968869240742010706475390764019266694312670152326339392567191678756622380474136488676651465367448830574666762982274128528495795484128730609563763166270181178071111776696080799049896408322863450029254102166953567269239241154799733293319432468945265088892892599487866013516796861336834079249652352186114606182602745679853006759793302419812861960589557808126714040258781993455633880047370762617639172969662449844123609084403224216430858725326566586842603216208914554595997238645563606986450429614760085600393438612119515009753663154499220330655313528309499080578939520800480396601592106635491661025832710857846047360615848066704475272034905368951897958143999814573426585355395427772549113831063369974103207684781105445885033684693717401032670494697574241180116625546958346519302449474900608453970269249737664798815371050656248336277189893695438016006622404856506403644864383620116248659880757523057265778458144133270385919097766260886801954045303108880670915498984429082259233542532213710505063987129515669280143095754680759869974900446279927499685636441013310153182051057713932433632037353621862259387050342923018088043563808646248740735757972806312044924819740866057993338978849992119901322655534672500889145144211928569236271393335726402254425822998986818202137717137075443212783873220064981982437740162205414377991104892017410420636369898079161567420292568762242633338921073571761977767457116401490975070156442705349022092167903136625459974573023858678958909497998266678684675694639413747577920486446006863497229167121477381246149250083988275375826365616679181583740002931496566169005016467660118619180886508888039177433635458691759090890532029414675951031993378888607329225901346919193500364426780376687177010479318704866325051258063257992385917111006181670616086228721062424924341818468093502331285792557042140033775471462728637029284901420802469456240150926463433146460671382738168596964223417009342121741121232558185896257644037934404394726505157503608479230831901307434298152149014085859214438684268713875355275035788935888391340385351631055150893124098686798617916981664962843735192415822178823816759646664884679047271258363460181582345870850186979336495688914872509896025986882003902343550954358692625428368220144505958506023563313213932850623571526550671971167072269986084344432699832230246557707362759424093061617130556884292347852090673948058397867143232871837048321582580669571150194849354081443625651599871125752408632529147601790371862973878094556681563479289089460177685632988323179657482563712435885605263975553613437568225774783424287228011825411848938510187351851427965309478138794582805989761538538749684290782959152303926836843720445823477603491778163911486046657135995896910001468897328226271897735306844458625801608327830984262278196400536720006463834963188551988211000998779600892925019528693808632516055997009027263499674451194765177719292497810710957749806086643033618447872385685313890035320652117015797964914149522437836466579759179631275259155410769998837202474497023769726302165726464915882482136857454909955281533941915209284450458283478026569834471161124848894924931481106682638508471556659887058319358489260371423260451523249821658390373426595027739849853383862305432386351927791248272932726878970055836519692806058584984388723819901864715424266717236794791734416311512927890260347896131516262024658205551326064828410894423580090961411251720305002181603805199444374982841546563153511237904460519053149306095394009115173728482317493815260067143771142623778196127071488188083959585914904550382244493026403830169142607004491905446032606012904149511927528579522285876087518354661914646001146531321922322880725965262685313073063765090730161027054163204547183329832312446055224538925250082429029738672629257366591267923750620251639273371191956904130584892996620823716718201519468536043839275219254712411388287019082560725041679154996018848873118878646630725974398437542881551156522715588392086608216847723816339011417193010324433746920164690776169799156282843255564959576047440296273321431824520228990693035030182712022325825269905864342783196817741863623078237255810904863756598289943841480156704789054983787911391223521844188417659162979158430683728137324886782222571112063938531597062292658945183704242690769419298609172368119130318244202582471412322468283008828685065604650619500918532710745740324411378387399973971112372643055532602907352267293193800805321626289079847820682748883444830815802630630272134561091743830346117083866084067028810919721683981043112159598075355884627523094880841393022465518182472226690017018530226026368749673563200354228523560495401133055853361791921649349950534915850499364369272526381195935530875429988952074918498463395888885636241977803766838502633765475207877324354140669051800072371910635673247779338614432162241853082147572283964049439124432403552467218794101821595739264161507819668066996952440558386761587968187384103984079741691018893444388743790062224059117979209004715540346245724156323157400337958975608952762421520337403220328186295978321139149903569509287861430131517492279070606437260249121930938536403321752529672011723359559898568348547974816302295606905309026566010221334570129638638247464046823541382046799788535145571269917538853727873109351769427818351315560376605516579441088563296459423651033184623114416172270488229604334743109763733641041794943164045435448842154679427880930418843261701228977209984178845554043462861705055228467651321699992403045119003907128809005807948317966350522006280307514677489013442716247951694309032167187431141164871921059505718449511336669820223739205761503198376481653537460504221359671389023756085766259469556909628719116230196786329359469689302144587451384057060629988907654406067101987648982701658534932297272744998116852379051774859627838657885149134070524125888592948127745901136884835461336927456702035927108970951669882317654846044289358853157135867142578961896544712179577841615952483440085389386342858108313299222653640044101960304598695847114629335127109060113767000652304581849209797249479930571378602491859668961011769331294735110805035904809080108892874975032359944558252871667823877987579003265983504984483940629598931644652569313672422120043424408853937713647771572428282929411300063910997861794321703218521509754236740677741894339176596359723259316207927942984777282557990734027489446230828254408717015807000689845904811708457792394847212475561965830928316291759053176829370930406095511199645427575888552019500220836954169868599620232396134271194592864661937388492837523616093314565982095312908688999249130877482006515421059153449010716748064673919764946988651058355394895931558533709413571311415909034515752728563367024473654211897478169353706411995391366084174846865649972059300390248063631129040323720305500741927870229275203612877068350089170431103440285036153289052831475139652874190440092294535342429184647122376241660249212098707592427895086309478743147871788704701190250721167335935369536722394020686465381122274095322899402881776856362531304070682786448262605127094893077349270588143119345713794030436779370832808448302293825634360672918125774005182283543949878101352325799107299497658017279783566489630846715868066957633976818231816612136651864826902565769558203705901435884366776342702802998157016404859702488315216536781428398577718028213927808450996879226988734753505264633137232663089171156373974044278887169611717867854413510277345199605370001502166664931690099187981283281945052810928587592546689022833858245135816012027068730925256438189187421659979182342057263517200588784309794536147564135986694642045112260092591268909358980713464071312056321909769538138010820979659367780902732365401629956795526527578149912511504836038319043034073365474387027021500065143353162079069215258210109230282188831328323851059805052537143173165297997735265970591835239252270493177097802080992646135032445672856948558148207559849134429194295421270317807268249086148764516289975063865542921900425188072692606761993540697164510214736623673390816442363464772380136816241498760188162209095974020169877784554684792521319865995119958112494092609774455535913643288110971552104660771601748041268214567296276279355878318568128027090791376399349946965543947541142644013121406347644430797086189278245929919576067354142601263086051317657301674916649739527581622785729856454657866211088236188619543797740706313132424055473333439166107853442847265517932877197955509237084833968218294281645203881783404171409464032727386005921209111983162359169634600148558838968116859591229005250522765475961179472692654353902071164109291454319542110240983640016406866673310394722048031649787512185680079926378825111133012349390397384946134057199169098219735951785973452578201445066071748681873571857383305503991076659514926191643792741282918101139848806056299541482519040529122766461128487574080643177423863731709660566133828949794090188009323801693482489788822281468364625500963290204492271610339378852563968988255517401710919299039435830476303787873234565548064777624062022281638008566485532344843559288210274538865397073271085800630225556289292336613701805815411732270301280391736885280548771334366823325345922419094867088533175449745136402491078786999347126989209667919435058502340454164256702701189355972894867149056814581686983175277969440691202291447873918063271657792536022587407859374404430151791243950317811417940292448918842064747656806006505547340740184635516338624282737441140483472022238672664896794160606689357247993016572558727263565335907406765695325751137206381976161940866040207176502114193816213612978329606610897775236662944286033786555498270181735904639679872179745371944733355672211513180480451377735378266104317228643534016820431209800592642097495882491483808121482178335965685223246546858604750064314743317216909276072296484306953781694038497683901108186327344705027191594805452237407029323169500997631479973269775544581202225508834302629232328838723838858207852050380834022724720687868510438227484553094721243480681426741422081908849316649235571810853183410909473667465521849070338948979736891425082649809850684913155126630011520951291629765818276031076866785359010332335275629098588473137882072402104325003125215310838426799074909806758903269912786749441960087313128034655611527319214233029813795269711582162382677184592621285812797523799149052592229949300534477003847525113313965619257311271164273827330359332922801044564766140209819538224745061780322476414480002655433826405318376627683267323645451086559466679167015738986576481510786179797407207237311310852384849516815671529918055592337345458547464006389248863324958103948742656982915434252325889522758034584564290383220483272500206996948737252934812095087782958404652195682608443078767807133069658378742492186721848009774685792329178257667138517961721645998967068891197077206680027909298999682207422473003350150790439242794375255219905040934469194702644609930172267031649727806292901231581644120017522057921758920116246436717054629119520597722990786111232262161552676369725815475179635689507840845204945777328270151548746579487190103748991148550212019758034545180006890611152341271782170516666048176713529989476965250475564219762118517205139389767043242050848993480353052097083849162060491510805307341534453649073727285157073350553485890116585967394370515999779327458075357650818463899144957498182308639808574692552023006798384083887659657630737475095030507518559140617198560571552708930122631684565561212145303538684761473805682903582121236037571057802460573780577673479012301000993555023372277869991160543207851960840713473065615739110650830353865664295557047100360825697801531164821158573303377036638733638153419189964314986628154509201294693171276971277839326810804601161748497339640469407618854338520929915449769736166468703106398806797804400999158489723107091569417426124493183728546685322573204467276857901016678387521782204584818245673077537200305215093027636805985081914385253901789512773165479166781892644947681962585355778917244902022132835716615109184099048110206768953839223169586634598080838635155547393880496243499206905874144324343464615561739531066227404518177918272322407024302905788592650266880213467766189584251263334742819685885500382674658725819270883033873254415218181905122498342649077786284356763890003776930074096102866532234224549813716304788305324069065744407400562280870924182051278303803162091245103734795657777155658503519329771688899170951332832640943589072001304127819118757757263399516397185350858845722542316365750926433742778016700403602972130922736191896117990548649052961923439657859701671294205330157060376312826968732085430368064699840368122579471906675025600591124198780404445379649266157785075251652440268891701568987521088144048841205879714640524948587164548129788699480486044116798292311101787496707324435404908303904747271270781068491242276619286088707150619659430614622796781347240658885524067059689589914997580179657313193636851715267553666417493163671164962789954821624772492243884580425745569104072026179170606152788656721254193524529337232756599926658007347131523308523722601868709660306995821526547927170275013076206203620961221591225226488971691982936691778134950415860085567882945125693930804828084803884206653373812719134618625300276534387655324631064902070409328124911122382017099186015121302624333714135182578615819290420060358558849202391773745042799892943147918857044787064294672166138147081017386686284981648838101801627437663495463265312803683525735532043746161658616821731818112919272390945488418559640391474588284442300535465521321669316871078561198728270936381163850749680814939223544901147601639242966603983674235872782383229510189681945743048351565375231551228452816733251386048430359129230229827669359569607568064182626845253097196362843727139627478627807976217627687922198558343856347280675280460388639256664773754380339116638146920672895706738754060739939718129211821239622139363043969201177886105449275412055358703732053746978311522817334596955042498967804245649335719721864848374134643818186223951710328752571831193636708941664985341231210108894694192273591553729808555095056060853455277138624817705999805336385764939488634224979693109355484863576432817702607901062235390308454704868848168876010320774713150639113231816883449108225569785788381817347075210742105795091035775836413144441584193430500956005942472928852363185785768485190266677638203164090247944340770291436282784752144384911904991172926982422466894941747078242649412097114430074086943089474162950931696913671328632220446325976589567738406762315572455260214103926061474744529648080047587498890981468867374981684361416405358302501850465112315931170986186788730338703482390153576328452859457953245650308634783511161686897918294165267056984776325720150081727382437493810002471180354986621465661120220401534055618949647860058550706778272377135753243650450585455687655092224116127691305430607084062801047225395661092650705378927645818053992532378820464511545805865794171189505233495488067156991691440911047281552940021546166759649793587788016830121228089495039420078160948134335045542334001079167117859133020192950168834464570617463910383450911770216020504964800765323827466260552084272194839237511346176713367670656616921604042656045381336988764577169096944265635088453483795296031396741220307292853400932094328832916028882817203187644537277557651706848758899167412979930473492059680409563345282506077616422490250437956497938730897040183112262374351691935825110704691380582199384402379398630819571802848544917873766440866091555221670901107679189231682128258909435765957497285313420435871722995109026669540917605517463736082430644607799177785834275877191262479694983141196564334772035732689830396876459199184521452307877067552408159840320771512883014144527021217303196266303920634293137347992067959222524758197169797533206367082870474061937908752947805629952473540801746863519442286387704144553401810026014339260320066620752838939384069739591824464979792542720296960656457744582274222005478955141280867816531570823126770563806939149335374306988807391859961656981137595562954776519106599586735766739453591606513639708660401960558523232324118069321257728815807415215313107661521468370357302156142011049220322472799897631023244511540138527701275259729230801516193473011951215280090441266038303691292688553906502866250038108848113250459203062633269848494512754197260411799487626211897281317130859579785918328103642137944734234394112798851827416186751484024560745673906313345184440190006431301201912959743504158931973648546228627086330581680483637349495124254589087396747170395844454685885450598163251319019053422558717119309435963902768111703209378750804080044573894976120571976021210980163975487831155746823704420416313918029744061741073224961068027950538955939908510331670273781507056284845822463410683666071624485557809987632343685354326832501421269200313897789761917128896004981343177841474050154160858661072521254615547235531990945905419152939457140592854798055472742580057041475474453682505427086189568496397701605001646847156740663665543554086186138994623852995168785592309567899294450052593697765889601623610470177858129157990978294549311908904167963337094742871151785472583603356801655655593064595167053421523520313933157984677623087303206679578161961018040574703140747862501093925229842890298543656400184519574197666052584699342002446243770092711954081528720024513587819284061930876038603756213820605160963794884714362354497104919129908102557124956256951273181772538749916370455664734449430143364876315771040396449278302681543945392401174354475499409044269584591511445757670333887892298446697786588459071190373802942104056550928044326436313976903810812651659555474235126573024578039561152915357859499975525074009878548643570953713855950934681510573622244105040354256815786332328953150427749819556500671802412524774318846006797575947848121648886663671305223722570065968955634214089877173156784205129686253535133165956579349609924111209305584853802781096749165247845582917298169223774753927121488145709153735910451797086383564396306141176698501673845822513389602548405728693180520655067192827588123509947221467045796811604634955974051675940470411082912448663943163505884378358127613919918395688837599053912420254321043171898555317873596868551068858822764283914395922583206083541932447482179066108901182757952901299498824107327581679118787281377990133555913334689015422689362563462959031296556405825521981495632996372964049197559867055578776714760007056858453042423176013074537895165586887374902067539837906478299860744905550318516597958003340109135973484206890290234130720815173013177241673788400228184175711518145938682133473249802843082401273686297651090444832868333314617756129140336612928846679478896390779891930230813152491814437239401626867490609636826370751693581932037916166282629713608322012830907920105287833120692516790921163197639091253740697803469217380078738280650404542283747887827772751190646826299642252441825524103199739030663362364724597327499435201334533844275264769155139285959360051467435171539092731453669491758325866091677000927155631188533111622631798048004984863019990225769818571964490815954119536353933424572262169166638116347391786158595443967352540484638634653413531001969477313011237143111859217496304572377009295726217386322673062095676837688951387077064611961414316384552938864285913457912031701685842783276961732704637304492361385632068214160441413090895810833874790975289021169058410892403767268468712247011636557789814645667110644529916364381009299953214131981598206471120274540892752728184711178642617613696719177215533617093536548017024834193888079017185690820291648959630520388839758785647772211587120213543502557236763097114908220010253464899582905479334619769340478266186434302374007610946570847286649372328150881195867915493283886329990287928510074064966883706153528600581588445698910425009626846108783313480792463236153292294381125443050318790397196348033333345300802557976165590574838696912852121655535199298537059131477430642401934538084664149642130438348282051180288532065156179956117674893614580260959736298335296420624705706715856503215638576822369066764688531159876431835134301508627965975081038666819930953071321982238623119690987789454086800828497079395271487390364429099282405319283168682258536175248887116901586395733279102612966520847984901450012392431092623697759515082516906058898957707127321870634083445697512080919149343856281421366259787035633531660582831896642350060991556279996135173517456912398713917352008036148731912457347699617525225659787030127382888566035745448575321957043892524200551961781765370857115545496468645675519145074411201176980651111379435740019737501694829842610712421143875212410642531768737405836317523444813703144025217941961642235391456371580958136620541206678668051102250441720904400960417306044413252471596388642658854653634917077773090294671543209750600475191731381407777796685551314427936018486825319504707074751432453940074481303477783809671123748005170186188807188647116165211116002148174306172408659944639183360770640868205040751564111379177527553539985441630109602722530399115046461513719015524425226440998786375057465472591748730796952483815349887618149775145555460907773188873618452316027004316330615653601462057887274578348451610281194469743034722000448834422707995909286035753934834443543759608456621945890203060779549955261979906796103323452963502677433802878506312865789953319593850592998633497229303284315412188804394172368707300728210270750147116035851027069988520051834172725614579940475206652740541238110006747104741778373111241485215753663655642295659230079488721816719054555381583439352284289830845682912946997174124953527339282488630753270739722087872179711831739137672398121250720194684225818229129362155548742542935567420943136833074874731551016683248601180929788427927649614583229046654780188129444924919541513595575057856661782692546569929323060264951811893546702468235682421911523747527760151387488740940880411057099802437469148816699272258426709181742738785810183207585307548654712797736934542056122751680537021160337021556270860450687902138151797127772980804987361489094764128986631102399053470014115462541818464003582711581906719434509600177167270258057577746144206787567331721241747357359256947145113800044103379526433195116093231295962747715678504429950747060234385446720793455968579747242460941609271298101589099292275280030789648153268201122967929623929719214999198134034900437510948858396838193540569704739592970008655744368596359504757621515604106048819182824551960941312477219351908166103907919527676258312003849056664579564781498991694266036003672149184455630641235051805156726263200233485278299332799014324989185822173772844520494123421678636319566890622101466160395560632275211824785149244843817383928375356083204236817849978406086169118581144793546944971838552670737024192568018024527557524865600006685134260024245874488307231113606952655778665493784646689376472276494360519089480179040501707119750118645033768921716856732373748356660650196629349669955435096212006162888788310932838399863652494052160837245571449307436765596033343097141202899673920429637990549459901738133293998585512306547108631347265768097101159943103059436506426698946220053856373583502871412061527291264730055454477329678528647603154830688704667525067006344775652641218419069816332783182870645586040454625349912913334921775743530744696517423314249191400914071524279363549031998058999314114749524544666784315954911416460143858008005448434472930611090049189507205701288477957403574221266926004785467591036006640889235186115991359808683912130992805999713023730067221471580657276023862219709900384352171702438573309676520532203440127603239532373707770480490185550164257249671226516689923136925168027018417316740560411817717968349269078430725600123533057788943352014374298940533723071553270189532181159316177349995594018618020969887520765785105237122091850877277512280459517694760637404482052032594539928575208791454670739948846447274330876940946058414633510415307253515292674585171866377037714749031616535734718452514371264601168710328841621412469888922013293381498489473572323373001487756901229705950403432003974017289347311786637039299653516216000419212012582720746281026216430544621740847915007147936778658712218900361368599255443479475426038231117884659148636818533361200875393483182570502272847316798225560525019354756949101412793139730001226326677794787134395803375643231019065519201123081028374890182826086523885051278933924258002850058153711676029038046658702507265342942055496342035372129839033162043845856819967369036816968773104682418808896652300482580224440960962967642933809403079768867279318155858573196867315207100360429542261480180800076994375915235141433861666882943213418290252265050260129366554053186425362654367085995254514548163404452438109937814967969718675422819845757030516111977770531856050126711908288599394614526240020995932645665960369439813344263712383095537281591509614741164361377922807242371344864043196736741157238444513365906719784374992446979041276074489684094009524072421040713424390148831351754432556448823103711461287306938789094276533999165044358116841970274979014993949808853077002671335839820594263986640923147222937069841447240814641833669573517604292883629266740122356733840419940098827684788750680871969466142136677392230402643056014611894199533011356301504732620837730497403120851170735608291831558848367234104712609052632133466793937285728883633688227437022342157478582616823414543947745473775058964737547986363687734715618002473841187986031937010182120625157474263670113366259173047371923571815988016382063863095785160726453798831005748596086362113726380223768204917051716355908689146439426583334219807572179403550581090220077035153411189324826413954719960046759330530768855833355470431710794613280499093607304941148046454280951310946163581378907354519987803073846052902760442337017969401652568435308536362497190667664316883706937830897311101286412536682802604677151279056319195607447233380597558274914419705778435278738174204873175125538109576956723387162605769595743174876670626435709689145853606685457342322844190094152098007361322489834927931612263772161268295806754646973228307545200951974701314852391758121057097319873571521004941071118486916367416933605439360926316862970452600234605003251676892786219779301742699906852279350959734688295794110172694909470411148772814358685586959542829120100784481834762733664693143610304351621313352621757232688742251514795726071178587473458610220995879475385860974298320496465035527180515348691617422658260822101146192472958074553441125616648974230462635685845107806143695171957790195204571244953786641016088179009146663498297171878581292453084982054620474277803917380452964447060922716130790515515486734215961216534530075537653528308857647072972193835317182411523368886353284929847338972260139112526692967656485082039717985563579280090661503491078524243184278947694155885826350785856739188837630998808540440042308903143471460943918671244164010450542360373146764156554660057403547851011683317669971464587438259299776292854234614725891738401006392484300948456580454058496643644904852237529452599440142626885623955272617338805522595806118797511681896904144749657763952296679469954172902747105565290250276782612319870848278495427546504672509835373315255893591530346833209618263770694783777459246945629906433876904923398749502588249618669927238610644160047437453618528298223278197200828877948702371829064735684931357306347892564032578013865704950072589396437320057720333108565077301341340221155189620230273900174969883579289465249084506276870660253872035192212333924203971530001717122341372194522050816322920760387242491034367303090646292172890279115461026392113192579047527974152754393254803907546299452016832396403041641806038839341424878524786079282095672505507372352345878741773841567447997499615349271027902220751216568822788465712128070482363687924267229264858658549064425178994398101487912301420063491962719270989681336017147854126122344208958222187435213852623349695757774754345245234005038128340370283770003675903645889429199704053122899248797938351725773577161808532609279322891076039369776041025427059124028472115244303451580902753899620210229535717770063188503828811757290114882543067184369702648280588222536128532218629172042240882554595386335341544133817303340664621563048907706590170589638919235163065816793283969625103960570586526819022937579642864135178342674543245040474387899213224722850813091958542159539424567694917078929499751386074596460732481807925366540067583802799743829641019001306766559702476921237971434002291489083102130872253401598136481835287028254887762613515181751019215232624134395109767242291122149200020998826473285536282376347467017437787908903157403818035164307241519597090613244961147018666726455993547764796077651392782820200138991904054812442876440360024821359231623594519565801455831788602598749291906577092505533441110882937148584928287340447196371662855808395659725496076174842716774426248171981276937159505524673795095423163114328002244109365180807154430824681059407342755070857854819776120213272332076263831033806503809115325466374966431499324095506712906384527213690960325850287566934310112010926343064076624611809343825262797769206180653308742321733393010796435443986840010436470957917498405460891457687131926117646058628589185770555755785473843719039206137423923762988325933320106378987127815865064094477664444644258761250190281276365514924342876083934191484489215411605635637402712058611339989877398213813049257578478881364912038785215767175189262093575279206438830455814156350871441720267399168120596878730699053722474218699215489993039416326659667891129818294412050058877856531285574888952925369407970153918456698278494017548246062229251543070344800083149372578115695489633708259695714365896570317468322125070254978064244773234759270238845862067795479566809070204018325595434818582552741431796104974742120861608302026950733575575182852352879598331418626257320562456576994647544088993430641419095321618773535054906982079708560819340410872507799211395216442537638744438951301992154631941185259640415428663095792532618333534333070309506708737334047873097078611612893927991828065363418047731319802009445756696037837533698891316828735728225171004717680382499403878506388460251117689350648237997410922371848246504805074234295660338815377066509778937798825816122691779141703603736239817347241699478600972003708877195448560803576800209046155107183617001126549744946774036056030697239084626508829652580071490162657329699619337570564826275470457847817968203576240566506673415020897843426631215546112770462938471894503961481054769528040939150970305143598595830368725655948197132599557954241303096971690251438937828419689994795789514256038690754430667999538186078442291788601235958284368377401595521997676172776517559912981145123364706108064105680427137224500923442800542182476635000692723621010535077959891886334872445142915049877729460551876064523422815350764783054825939531808103289123125313059981307591361465930466645658527231296359915028627888692320566382746149639204512882351640288579286743562435302987632210128812104242297679528290947583776032941322388523110379727993339693405420803143806003650235548586827184339925325595179385122020704359368688615620492542558576634682760885065104148646033075111702937400153672454716427732679101425478851200635449292138514165644697202286721835802513302369529958309812538735329477297365423038567328554361959821433174756886237482361807086166761204035187453754943856531115930824447193948481624830624579808184268342219612867729789263338107275877225588650006373685702179809752390931082809628488681827926222920339959161072015638988313452871265928397758873809137870053638289886626106646669879464034996703961662027520362933530592105565353056858386890311682752409861531313317955122628553626645070045834825892709299900942687257820060770537075725986238256230470022643729772300170033835675970021808393498835173310985310329021565739783639823159480024478186344160054472631223461534944589211704429847968692729263860494608251836978284008777715628475454451232379205465910033055354146644582250732232191091442030414904501541200977469262798647009710452877524434491885269051835887381501983973328495123650157194850288105674792683356080173783537022243289657174320597105894630660914494041458284629010455004768195487540897697153047186992840396219948163793596134565550282234341032240867272775094336372234557827812545514033327252247883382492005812474060756471640011028879535797487251188379029346241595032857698109657822229598345205487928403764130398306176598414440844722723644705020169534444205247727941647088018569520303798041643941944419541737465667158225598986740777065459109828716891182918821984825740466431511528000349738724614034076315740394333887887535022164400307007494513383856590569293927171186783007816009581261365510244132648140308833969830798278485931577488959897303963304960542296281870391844752753920464932882235678394611071315043555659874121281608755098969522514925652047392554749525056268724095259613450828362403406625814011214623117270191043166657590664433514635597164503083184458896481632001058977118136962121744464688623675013190967647780281714517788475984404363906800861818168363024287393433475067523159415248858721411494767173714464137748582335661392824408106031704065319757691888099320519050983655635520504736836928057126942772801853325836173031513022835889194642738344668016031653533243544357559786986144691522548519826787057909152709708420775053609894963492632295351512986350721199141085438543069805941663443973812535819218562882281301738949611105389145010905036613093795701577867387438179354731812328709470348451262565466315100992922871149223926187006783024560918171287118308930073624042434829882498890358929865179944485017097345043942264704955113205956873511364668098148433202754438874850040237859739170918749275394189014541702920390435888852611545751873977770653737844559498938384775905903388058632808381211061969677877956470342713100522931407952626662847872439387922980029681318897503882279944103036489410224233104937885013823163732912276523866212649800887770816574177322258639691762569674708067994053508148845013847895895777024881240286409889670612994145788778926710400124671144508551519125711536003606723317633732557656368332433578712897841868987228168481377020388907959857125029136762229849470203088963080703785702415278492444478590558550231371113862573813650983891950738467640194815657448184657001030618592941092916170331747040702047400956424158906873077164475231246413130330151179897696639961029289667582799880256332021682606509954805641221414574149881125950072371226240425803824963757958985711884556269097777837194462389808413082374416810347742123728396066041075021331277422488417286731072523799120923849796605958434097352413994854890251257984261721693564213043492162937376849555100896835049242618357492744485821539183853919035050662182326195348041340680077178317100921848352274125403917209257375149891096150180200970151585300357946591922713610984913903955453563146505656181341844163635543791417711467047870244212294455517978618291159119990543775128403856644369809680814471834194664197957845329895699555378591402514556138339792070094825760187183777651341660951164185128930018111261547261838488327479699462984035411557099613369003449243020456378691912116903008297252294273731004625538799326148755090136121156456002434713634117860828553768073137262854166179876346744576552230498042447268331912157049791972228896753288657516734348818747986515055752293443303119698997625064565179387483386027012367650039037091779736472761024094449054048401989305208325414053172784482481687381039530535115966905106857648458266266962377842568312954341218233096947921743238631201267182737028392460334935973796267758505465163529547645533143400316988432201957482120866997000929653718033521853051622114277706235952457991718668856440101290214472084357048195860455923226464617915646085538387472394761443960032590562506189024479127104201836861333743483408706815171447563623620413780326372938581201795313966349785131921152222805294507599380808512386477671842316069073297244612134784299783446056899635919452342981522991588633414894116907306435710315771943556734726500585865462784420363600943739540032934877016772497262958228518914476629830018751377114488551830186256982508873256509274149684351665135011746618028909753345147056952352851570498560701058266889441112583123023618304434059435025796679837773400857993069141931158100797876470231294786595632311180545439381510976973338580523172483279830152710068089102031797804503182383183778044322460766995136752690691379214406223392421052042270021590658018346836761874736807300592545579427997386693003839117448943481385286305354190527697050979703245666124574816946216375525749641618251408174468024911274451142230884065861892626747144210177423664869634299263726105827488019799980917591476518983658350158778128650905159134012984095336155330433541376451594460927466510626655889279138894669947764805999392077602589160245852863089552245793359382395403882902492901197591205278590300767144419311702062008580432597711015938446966549853614337996613650468988265399377225593091000031980106701703452565929077314523603811049005220932399079730080123764989482270951009426186266542770225702175295618194873683675648455373125969753970451430354587622388716325947290869101618610250571378016137856856298359668328658786666802857185455705984089127648369382394304353688281043288220419540636537353040442866776352673173377480196450537208124949009068759585817256235098398593813332975559669425540554376112530210605106619031303939098347407068369734415121398711402282234266226758448215939743114043632725438016573010984291333670736658356279620947619491925620673342938350618411743634045235581705950684481546307340786815081492101792728766700070479010479241397338081387072993426011790228363858387777712309961255715355079512614201276470612308895764638308428686151986144805188563516296371687694928506825078887262565611387474951209015444685257432934685250660074636046680365527066737313093964004940088413995769052785197237381123668169567536595515895066923687011676619290171546647970206008626765801275345121012207680699799116546432890436904617012332114351450718578256442768415834514268273811769023979452930168848451935571355635816740919084203710563937281935138436369793709183662756438817372815034559533732206766297055969424935661830648170234891760781606818512976416270581951693290971711317649889098451270754236369704197216260094509788304329422741148112417967124588489737836105354554554329886629175519773801165931629227616222092953733611155691987192957485427715300064057989193116744820596667276297208057592118156063262775819766669176064395576438931111333514270993461407663519024338778110038839047314501720119811725588854655886169964026859137888642839914215927182822981695932531556017560936476370593189258932259950380512984030947511621618098276614455299629234494561021062991238470146350649817148663200144783773542468079531576268975792731330342271595403043707321562114884069034033212084552893669990974746688076272149915765701570303399956280620522070794625861711689842580497368658367641947889112739124864724224116948103241654079097815203895328258678840300734624062997560053750137564128245895841921270670591985348136500668426728302336765586195359953375183172451911696726067130145826193486195564933212067147919463254906243229332139985747144215133909178013607810624817894270029202640717304765573630122097529943946093150314232489950990408439138786684649153199615048592037732965642329667558215180252337383737683652560836997580504389131517217926629950283241991278217700648757987684011755068361546274137812970728370476641355677390840750067324069384889224711534546536036880996887133045674214059321966190784099867241355059653388440785044159555041107330072654790399428850361681083571303298706016161336396516309785587045738487922362663830834439527428764113820175295854083511648453424326403219942486690068547205932026749243885582488424169319945138713361357799904940103537922369116166445538914370922015644175816397704544899218946936995414924826235363457480495030386945172989958630650752987949130046608484230149855366043956447961796097868950143124280852045979732033609999786758959356070313924565959941491588389794457446391469668299574199196996963701550067155754520087685083159889962909902166907276042949304682040398263752267203483064870674664676324707246566089765913344837356290341090447659236378184585615869324832421054071375393717439701764296675599826537418115426497187029234808845565793964045882239566285263354455957105937481441211749429188894974814144843132972708418652934688948895796884091666242702199486389130838729561706604231632043431488456171644897577550954230490660889537880026193127135833730893952810075303162953890428916591343079282416937140336114783830703420364228632051184080726729945741992777048293303073027383534304957488274164715778618045313412334752770633578978232776860648605514761383518670969459341318022551515647822816432788295092219719823289120937005346206571242596842198322978961014258111137432118647702074775751595043352652293808331859658106752108412872946507158710543106804603619201180797291504102141151111779443010004647548448042832424693099313713615100812296783362892578949763916866464866461441540728954783122590818868112879106458761445382293891791323292302953597686197735557948537905155262204706336365087739131944649942927709725289214633893324020933482789088877086997683110252450908165398085200106284936534041795593786582436045971718244859791030733920754022827476825285637076071275502159450278163447919471719712364011366975562715233600267442940434474371419480365578273189669115389341495528154838932591173038134752714554788171605045393400176284812331954286953615697375127913564445259088206091324678281216787046753834549994281224989954886537644659931911359125623191926127863481090200647562905924817861943229680432578822078302207149197103056241385293954743790976735632845221188130658060342441183902808626769811170532825338675976164278487140107692425767787725508345618338545157790473061843457253716557849869982706655162331849556771726629722148865982692600742712297093661122348452812730999949266881206009967022914120651084554480859872634616479791514809503317542769449781018252537186172766578298680848243360136186621896148107477886343240408449194403767274166086050727787753863145942121512246475669885422004835014240547430600635099264563505140310933847211315724498460543290408099137352128849105446493484645760052021631765066867634362118790290994200465316996263022322815807798212802340160977578099718868036665504064971938783488478884672722713919764420742930788593613786720798758795628304717621887244009317951405301376666447789739552778969746396153408108713301383019536665782624987582243852627246047389337437051960885470611081038116142068330309823501004055410869817486470411594414539198620042672158449913923825586032605555408894305890472788223793928738832327745096943006540800323482216785668972702915172002546748387483891742953356074653172889234803108045016964561570106276798943772657066358570968190467661770239919914615095189907780310301560436370010701616510469002571437413570942331795850006792164904867636395333139157149703124368664424012321995555210036042682933899203944930548885149086914271992037110165617069033360996787067619107709788034211167713781241699673766774344932549908945468723435701194586769567460031576698100580152015102343214599099887061630863215051614791751673572845602647783620471654997529475060348917679145982518444045917867241347177886984747822630820224067049867884713075352065202277265509526497678356068793478885507365040950631916856279119671082199683848382089502523509166677791280375877665835395435581610442923740158523035541000274621126577837159785145495114094131116266076544852506884805619752259499000707194355127980473370894045811615549944485341427265759958729690451108715432269919834386702155484497796769815016872648481521598590172339091926041670175415705079554167349596329778795613372952969396402056399977705987482433612417364905959016824472098873131782080516698946755654693113579316013066040533541185894340818312362092106395126912508511212449143538682279751665927179040755546246372790187636234475330287302643720260076701253782831800688160919792246634562147823531873182474584880408728910980854437641195363625838732088487595335603024431479667728231446570535360329892761921009223643996022055098006352874287698081095571980479081734650823102500415332374791217562709740064848459909702773926679482373488334056566110050252278119696363212169743389449209174200727640002736296240994092912987154992956345701720369014601628581954002322802328033229672642182541841479189422119449416291911472949736847741481599110912094337081609316978144513469148114402429897379912765465129172183342945354347233139875118848149950440024385166759421902730572934380462251988008499559141119799393324228841459186778291950780153149742486060304320404373435057118813443845022571683890231580823891338219790288221009191900856461274199180249382471904587443289818025604203528292517194656180794403345933933018254990660654308636779479108156168838025113457451714650857376603704257474093605473501489478521954766612897263902188263528822844846278571010045261536598857678897437153657077172348443586092698626376399726642441482059213345391177571005929541333468255514444605243214112781680630669205590062696990828962667090606605121251535145431065174755608564463476083738126601252248957894520077497621343246709555328367476714967557956965643562917468811553596429759899042720943720847126006471695073630027040865183251684027470104742744988684915923958423381038031079721934198385581856216835857398889166874751491566041741586048010664283847529746287420215125593638395021243370831836508182487377230356442132663675409734786743701710365656704213044476825163401972996924097686275386407290609474865623756018651858140283824005722820426987499689812881813768437376239727245272332627496205844489145928836890546453493580216253682746517084312291222758758215411696781838233623184025471400094027869354604239909950741411252113177487667913449809016384286821988177522387395565473319402250974690056063927982154699099395958966641103903607484363957317003846710102686318117702559215279909531939592168034319997749710733530289016721881073102510518623905334414810120821779896372342515106960368752421509873478340920082588610766728155380627073247817769108196875466617987768996243306884935162946478406224568934180466108441288464719384682932109226747899737724363736325214281279984829825326116285433517335655702744557219652622456637796721448263799181037201703627489586887430729018466098244978284528670464918139660595243192872781285789001486307577436418502432445227151905346768114891802253487198457381562146668033011962345910389431383019328907434783522730042160609381364877881565830083578780349353842164554316645193518705351135126510897852415600822397868786182113586445592611077922814148304913479726417328106330602540266808054768285987380073841267799799997834778239711014540020929745108369769498612114672656273561500281800684103939478413964790410705939925942128833323769225758710578124496367335081055313926785111585316970871482208027933536605915291461560244680567099535583710569640478111941224408481545321642397632224088266017297812826205527637051107035256942634635204312467587641485198257857373172346844948612985290605026353825763425238708368528295254413934114083782221307818214349329401071986620805388986438706433398738895298255951316831701658299977562449598253751232027808586326258927106459509604208156431497149265400022886635753817043856139670287991497294296775479990120428780712732261941638280192310658540515112529471836202656537405845440153993439464997790756096326349156240122724007901079308905711082144705371501699977285141417136172116812136509481877346825548330212885273492524949312519319986198242734708034881616327550397968255986695339145001373061857977572854703704609069358688882120103554975568850280609244918914337482164297188206470111342264488700548284661944829216888922802466784889333068764060408641787935422530496463197122571371365561111551538287611470234912302374026283032690955607147366580229885115083670614477548300842097487008287740705474769461627503208360881438280571416704178478117770919109587035257427580662329769439092594774315279512704392938305443827869800989794397469092843852277539036557221849592058325117905602595425910557935875218006801688845817472282430100106054302588887246920184877027431079478632840598875406219575776401330646031825952101387449804649467062706432699766873540689513659234168897346110019143031919216732276554847993811746517290668139449304090497286014701215696826001407987454860813992192620045876012115566852360964106535518957391195208188527614984307873149480794173141025872151385001827128242854379952154751037329766346962207407119156277918629907604705146160620122397652947552687046274202181178617817482494996872806527925390963115906248661813435493343898652033221572875533046317458838905918523103887811675992550343368213038998727250403381804217898060645496753508114080421341402280793376324258808349081362573587217309408414867334765634382598674873490754796280761736421529708085160213662945175346853610157272768079271887855175898720208855420995661563465914942465731340902791687085637920103970463013625854196432567406758641406913365541489277508228701650527389567198104703878741322992151097429345709125087580514138506826905789503813103421194842449548080482932668396363765812987523130866333027583494018839675968970822724305669966711688679316673779278824096009807883633060353827475516982263428035516671841169541278656736624143406507435374404147541064676262694953003581166270976824542921321771606580140143625697169680346079687639994305351898839813715248663961522098297782268889736273019643538810765094049454283428435779716005004288511525068907607616469632440838254013522687492620168824955742229354040598714472667774827979418850909842846537206681803643065204531831543197664698379527128030488984055432268394742969768745175460603398804787830416548386020075557634561850774048179151116688005111223866561205070531193685590664866560557320905872490377866275276296725957686394618695123483733803698112157536571550017492396783155802509277918113098344196330486943780947662612244212741145621705154715190794074501818320405279976201470695499260032175902345907775892542767954033740536372174894972016328031403793037168550695892324621330095724194084971161741223733414745551774050008019886522495741709862944417895539009005899867394047282530009678981365716327814564412289827381233770423611423743359846201877219987366629026033221488784296582221788939372729367465735473119489801382772561025682630049553186916013383924933615330124876460827813555622504066602671014092990972191500318841708588133660213624779564870044114640685361199279421260271641729601004800971700384353194105183322967938186299575144783459552552439518385709270436295902802552671449355447048165801895003121159900472555348772771074433032007352123014865287448729776047954351852431590837427397001790353707590101141489989156317660318088403005518342533978501973821329443547064132222331330747406842312621688123287655006280966791652007569824248938890016549861505776080960429471011603389605391176878884024054745764028230628457239086182181097187568478149158899274939999129431515436557337655722726512520735645629720004751279611032769286877907576220909372895739071533379298415427243609601076575195679420119619893300013320460646579653876505263212411594203197778513049216774618420238894560351346274902146889220934013971816461398566464149986388969993204775736241739211943967496355367356701811609463742463333453760051018357600293244071234704359053893473666308789308813730338603643632340287860223491117476078571194281333679774524450987982151271035775890491111803921075733978563281297985650453769170508394030852426478774730827103446795440221140486154214407137817174348663021463166313993265152910554658605211254173631695242864635480507614908822589879451488575603879254008580756729594759460498310026310176053651574267419978422670673989017475254662995493834564855896076207341360711669195907299372271196862661471873669977859808905522449139652701866975170678321466786345360205218544030910604587816771871952509053078370235989266217894478557069195299209661500943620536551272192524698423992073141836400087923677671925901725303963471001636928052605893196243444911737199029860298025643109300077518696675102806321486659217330656870134493115208002276401881366463248831278844646444817210726930176695202250437967603933567410089329372991424903532286823401688094690090899392355276772930735716607359219905286697144530857580785484258907336041528787739506263076026857566437594230166760798036180637590754897911277457165693831415278786861594775215046894953283280999265470298403233229313754481082133073280370901638877721104430820884868349856053096890532322378873084438652141368018878758954404321186975095547695357590816930398707246134273540496119570258678325907250089911574487926778203946848449274143865071604537800416396887773789350971359828951647999371279584798242571416500452323384627777188794196537560095907048818589787885086395311638914346935202982917434951017912838463910470701151164381263324290223237634240936604128073650112681514218465094691807449097870759418341954823361665129710319768839522467096199293842709432661287869102609139198802678452886183655630635167126986916830372554636502364137172665891721910237750628571743457412454750813663582538413133433805892136678923021826084075570578788883734857975212430522463659093962206822286537122350304878547009954923056943648818282674608859485172205079560529971440042678598078083774287177727203668955435137111133871716619293563693604089487004510167318363755194232196563733771733959952481479828855649184245506989282452877560707512444312644146582504133286534778940579322401876987824602515135014991723137828379385064471377270319882439172865374333944997625041975261736578546818557783576293166599011017945365254450737381900848161845326996412405569582593325169901888438820562020073492658165050533912981867871633908440275496556448424800225151930761972359198368107150870547950035374144910225259293065060879382189857406015322565026262382425379669193655523252427723722120571328289553941093046523920587467539504264145792591445184467270534445545211871650023465347878868430230268430707474422672093932915823398577387957781847732805545210544324866945414199464619839553119866078430528779856297090326889281192716547977209156584558119205365405166161207601117660717826111689096990937767500105070015505328761852843027787306021471844556650718793364526451376534039075556782240926743722714992955327728501067714967632536549637722343465625601257820348214018710325186596846189502236354213515562882290248427156345555420374779489129498347557740149574115159703630034809769426283337466006445905969010130903447254377606320338328592000336116066945771042691602234713297310913672615058941123336474611697577503312938589774729333037259206906164956523283043215914532695382739048600813103564983650325067633240644028608441650960606921292088130390017202243020034911068317948628883679326149191144005989581388628473655659722285954847483754757923456994407439072358403117997118869678171202790304027869430296999785096509361299231953659182964688793814803355866743944277286731582665925361585741271692207004165614538936836218105042154715564642354278028389387150576059667245062678212700479276063399435481578428954975270444869021337339997732481046567007001584404467327250859988580477513811081838619093918684405624388726869808334242261326824902466173732287540313084635655364585215581907908913570242424541161407920061954292696109090659038306349316103518978459901672384678822618144069007645683870614285954536365810087478551669755999496267631273128892422271736325388431018670880748232761366786808502993923529944876916710947825674835273677977228618230291297092011178717743908605389326647505849665667213114355914446545761747818811609162669046583146720479494015186326589293228056544405266313779478913416843746976752509436503255881331743298049092002184151063755134853393184996230131179228295724176826878219407641426488543204391298425099399435249325835211499580348836097150953956536194424048262386402994803773629320983471529300271759759831524229289803895835904934098288426784783004752632584728204061089583416710930956103389125952663559889618712289903308639457777117742828368493915409391599545938463580776624572738569072137460736979410798590145731263461476647873835201154287338159419748583111012783162449277703785909955873276511418386619609413300599214470809411335051164912310475197041845288043063740373845629860228005652981013958355066701466438219718832660492930806467910586398508169884234188996457855820415854087847024177845469028044545175047439997354797479192248065728887788475186590013538545883541671368201241446733530138795230969151993634904156354626459261698944571891442085081942762164512129681813056494860897717833466444132482042708898450221429232062005094093662702142319777344653450256360958813113586651614337129299364886001954624170080713698415517230253036488060432061370790833933412570489411176846078928586300504315160099136273528726160740489124913967604322954653205444213509055273847667839335656808395721633988936409469668188751896747305782831799599559293380167764328010017156074489224635972502999800630099890705561703736515070893338754910480788972980548977132048134267290083559778533593741388103913302924963801872042106121613641412179424020394928548361568077135396786721735212515223411376816164437985438657929830755434962800500919427378900961236190067216653638546621252984268827340158459940486539871059793560023312262658116964604813833847243702138712307082834416342256907734386589820416927305583640367156893126473416808798972371127029947278629074213938060281081323825429675470754836790118673178540612984585032814505272837374785525239998702567102703559812694568677761525695062181403811776129668793359256047779099818644518472189724263509976897366536287039614723840719388722392885183997230728106874468836665965751414258124870140045059749299907090800233154143236416622254981191443695302371593143221264395534445585842274549920959836455438708444405361003274428529411348693090452931434934202861910969939079026057517719452930241669388228411517491591825807142988324898117101271757143910585274538940100911028521041585117704854610539796012313340697877368415929384066434649925606877639636174470275383140483762541149917889990354416331351484897548627067544067053996205072904318482117642886677809524456846219922365725747571927934492751245292830390365325473012281422967547658348968802446594097690783725673257424130452101008818909423545866820192142168630958677729892439705073137748149218249721632278969780976938773207107183900842793314280959892185530460246013234528127715850954884782527481837578956035994831678158375308700294148356871234715757789314834781393308331876571349132858963427366166474876441953273163592365109257686238505599849614405866429630322765173056552731855915475500770796781146650690274250121332224192959589037529753247409098979385154382011277200185669306114127106661750293921046746103462204806837372024555840641762026613169328312976795330131740032838248240424935692178954649407515963044081817667353644812628062473098523425545287338965395254178958183398115362266242704435627872515744413336667889883064647828048326401216842646296851036548068093199790971364648093945426917180591847177645447489121284654458583608884994217108867060365492463291319620066082535474602204523747125487223984449326849577162228831531406727475459287083025981500656093379398607928478441553227441074131554342479621052545901048123333856568575479427981140796152456249270715748806438547832857074502737856186121197658204545627414516064530577056950411764441687206554581934140241083871036449990660432032621450431441578960044599614524767716066336175336213830157883008816535598395458444186118399849940339010122437665297797823100422290089749917933035334865941694008652025867372053180808548638279012272378661335674347873032788918469385406792124387623146475301362173035067337369818649667886186873788734603154669237061636027042055811430045011142946289586168404904570477553893427261341058292290659601592164539654788513543802257706723725905121483291988395691974663557642115166619755313226711662036993051677714685337731100620477197231676592888912823479992565723377835447913194409528577854506420088556175052461398274841053844675800769605827599837129352793267057065817300729433281859839124423716621592093962246983926410870707261802493392865116292085937626179092371355012557391214465293774884286681817678164792626550955687920055736539564856482095336452586304684443415141826332790694504811767081679469976970677717521807497456501321895222967996054539314443542069722926544443142893331868444672145548421976381358533847157260833710326423396824267400805455832364625711172265863018593961539431810186352103353934992369583378539911711023631450646901574864498756004670822197389176040472122303266229048039950034738829961086580875809927455019409927741270335030408604331854714791841605958398234510077139638266372999877280332716137632861573136177240907654538695508486002905743330750859739548938190398076145091128771850883630708115514469934784433036547138941023887990007257025047198064504648438541627775788036068442869177471027934634856429528167546033502916389274352683515676457809681415740409141296381638002294500716612225414677007928371939118265610666301244776766860426129554931350065879219983169882650489278821227798913476486709643399766636177221898126829129430633418058820015868713730556798882421351242014928987650033481177725788071683877130289989151874555128106192998838272239952216561002809217350375564198039923600581419526339409933481659474422245495158134533549138570864109997584155021908898611042033939153481393079515117258281396082343370202711778844053272486547993741318611844050173656949239276507409834040582310826691462506805137140627571458799102704380559962007773822994203873415347088468331508811958790662468352269194710870605621608141915803043930435336275754234796026869829587208980883486311528574695178864094021432232486437766913008188887297605308036214331799593779200412261229104141178715616931744433628026811562098034098394644090732319492098906188256160913659448716608720230299915205039017879368156248857840540689307611159495438128231930934678185003739621609561050069179716285271889984281785081393882610870447594270165839462668845690305499411375685847283728462252032329607713387896295610582922932261427760107778279159554116197369349942923338895053046289933535875090459229121880162401571706278265239892732681839830064565839962251380148235796295392293779158934967188294849442356408784441771725219785075857360985627494594268832829554919331980198892487257414413499793214520366554519725129362492171773986345868637379616462480626289944463130132676397092743858317202596917100478108098884079479497339459984284859561270856851256167504612554618040446735520040209331178949020562358814631244282672413757690351888384280297611592950767898187409627458815882279529298874086602052818309681653243043613607861432702523199894419360094790117377938285413853825014607231408787118476044013556345544664689050309462337593088780442044364185839235656230147247773850391225457321756723046501380921681645232676543459826619388039545768523000630032896940511810991753933110539697452002259426397447223165789445203904981947686599488694996544519803774277411571062089502249554186455545270889214974189545080788538266471731606508232303868196143318709909345715793368018337917854950534583090517563253704033548926792437607470639544442409682264307969723111218091483868703401657338610907802631331931462673767933698133701980674961328918194956873790008046693604173267642487760340229136952994836924611003373133814228998083047918640826940560760336744287937267767039168032203044339764115209915617786131880658875303988424035625772097526796542758671860918328088068602425272761041816451690185878886524899193318141435372192913394544145225060807047628028662385178077035685307264814448913420236191995902771498420791051254944823746736402978227607436391626448985842183070627330743074109601510361363155660376366059901579983901893015192872057174977115952188859135042902426301375311619188750310059306431007759302582812481192875014776699499443382158724288032925636774811069180697678249564706417396796183109424318065361470331280716438498135099959717578944381483165538608372949972376466842751134125145432306293934503651345197519255055246018472980463609709041206108057900496912159530182966289323561146412778715450349588917412377324190081650666348461604132723891172394794775037771421695752613206361273594163711464120145526912185538478622349039680985414270832303713567660844991406045326914499106020045032993264089071670518105515533948456726989935787674734794776155977152219557675522846688518597073595074642180962246792111114088376264357435780189495966558871213456065217374007638282261987178548536392908550949041649641627523660701034805880601593295287398335914676962356924028276019863829384527357197860439685272012613552506830164775796852371463929910319895474437822338318488894571854871489213251165333205761571911042928156338028944732870361670389535767889309271951040360584258474861097284914252916739412172960803069163993588862106983686728141427662698479558633991706600552933818558098577973242597308102893461418878079711134862238203338137373448850449815525425351698087129900888478928233362635313467012954090957375676625735608909169808080375774492074061393329619450794686412449347538797142158891461339499362305320245122344443933063590387794869455512262144842766808354968239030568622083201730052403453649544868327040603740855143346442262160028980253669253200459481089814944001349698604848850283549775204377872232185856879863533406910987633271853931237574208781795378021158560135421373626214919670197200370866135563041265418707374149179210645494221544828931324271014277443990801528387326813394822712613071660003655645504666582492355005585778452253134684629831746310494554687834917405672674380884631324695600612853627628481004320384661106593418524688354954843167514798547976094687835122284472283545323097343360425751102209977570411121232001843489972943075541685538488784689864724077494789018077375058439416455432625107479623364042202073207414306369938748704387930412575959809163007627275744237714447415828056189145380377463889176646097912805127079962117777612788434823252440855454589168690276597183632688077364829452654889528446494242127466941055778879161242218726629512394915899520590336965727237890754568930549456006925651065034589189407057733479197118277236824780187544191066350006846743224476124276107069356608496967599169518504568237468113610184863258015528511921357051971009846738004830084764363853495557161770485856152517726334272016938091002891988450153953389604965537090153442900378791115658838274092275955124584672775496022073537124064274304113501504343051114403912727719098467271682542311016012778505912177183589592236736467120424971847802717285010977478915695404026280367414949817575416623468224589485923434492157847646152647782550000779350756264091054764275027411244824470946229449720905218270016124497307108244707903376081792044370449589599919500443944235331706755136654935279595001887427701627794297805708189910244187499497022801416096182299207992321512617346364719114907585663766737291587179219927244361424462712490739095893944544958455961744046501835717037946226474687451242271750353748583153585506292165422134915275975442473143676823407245476440888848642769384186953285387619581277988944472491497410197689537226071339405396325668163605629659833595626743434452996877630289968418191645143262964370684743840433706129787773658000168672985079118935061672828113028848973477147350372004377182991824644031980180581375296754029501927508687455842904401227955060960688032286541322834575392712683445108814618980766878396939581521738361316944064355810146120082504602992405669995622461416313562665948899634727788461771908717932053846378895169621290581925111368107774466131818166652628485918967279816095790565589088122852857852217501329831166810461731114701765675467719219513657972056625492800245158099324635937727349893716369652902608342533552928369782541095434132682418429085383869281361040125630977180896041521603242167241173347033063139757123523819079380343584220978436843458849618309207889175149464088968990770393383249655103000089881371544659838439923597729168846282065139754431344490725467139784574565849686509874827146376946409988309003279234853919859668266758664977761587683901493034951016122928960156915750871440241418159781661092519531332950402710133954343973145040295694638201078337294029875133443461892739871585355854484448559362073704410646149838687956583705830952497296378931869382107253994063032875901213153429942309145018839288088819469573219787549596097622717819644006492935658082314686464929652542886666930993231658139861284629722723312250353737924682697950272931556896904366317328682541833142132389486090210610002191225546936521230067365275195600588308833722986339686438731923376296167620503148102555115406911617683137050248580287151421762535865809867298348389249638489406404791347830381145248048504291059637636655735845832718484622385027465511522496827693977194960037610690714063793927520330923843342127493246917110997443775943554148989227415745909760226043690414523712983938215083459695881502458055168705710840400274542880522460009907126033294257609043360753574214603672248118758954691361409769276483967165452982747690882835098692870582680589309613137803106934360934245497320795626901085466946146241089649607337778210654556990185116801175253255405428971344178705086878889728473510637531963020508590284246726907207452592895369023354379678499036560908467041903551896953363372928259224285053336263606577928254725046069348476488069972065812985516615001406785883277081536868091874453106210816997014867188501054672535511853583966193250076069054399301409090504808226624509450953838851432520460164564472733595932715986564799226703672896355992651336523677069308801612079534100871100622264510891228698279631457501744433083643179095764030226264558149103317796596669228656338825112549413585088543042003266533566353858566259481805129423325779065739059989247924299770294708417848737447683310473825562264103176491034620419531320488927553472738053015649421749992506553504798973790392731081529306202137768627412177052770647447906443306282945022460223299654894150229421886564804759191522537735122896771694179539013787643618087534393402489855088533795983909449324235673713813252713451944151598211487559351702999122395255510825768838617908504002170798013559698527138755379840876674527154347360150248927434876422477117403550841764142474074782155942030486584653406073042122947338444943571877823898133689892863273727277378913613698886136373573672316586304723877896414709878415090244688580955198114008002252752149041395224348751545229125178740699560864764714740364610331327755210043511711701733161212805382064626856614602716337858208169744890866656968136059211716867599833358572926853992318476800766685915746902560911476766242754636297179762163188640998161563472413494220370072094350230204308016075451858716464594963288378567008831370302598756544842724152570201161592108655017036100996522819521460303550353869439572552459367101153380698711339010966981343144345300066341956932229755394575081524946537943504696306496301998316935183686566154226266463596345003428696217252509253405039461071822840300484218314114311982318199080979198403491733647331583105580047783948367216873635652253501154436709478829019389383007291897792722237668580999520370209753523767904997943934255953202923580880677787586155362144491168009623457005266744679788933868740739037712588834387642421259867804082451811031888088786163858193620546187026010939914929636759058245858562898897959486066346054019564545879482928340947304270687120108841109126935047350774735861305861964165848049439682349746165793583803886713611870688983991795637435254263374882516896555595446248953359782803427167747718446575736839885490244808661122288291433819900706948989178263514088433179696998420103831412138739676541562728492373046166450472884024219658922832260264020970254538315170116775403319009366592110003948773723594933240899306471050936977933661764422631395035430229548326890837888769202065141143522713898692920146381043349084786962597924733164372823169791859296944635814896072990478574649502940961837660223958738854285920551302031544194264412548663551231810383840098059763898275110620053689377247372014008266521589061838213472976587524252497634307089612940081501487542617585145927789146325806474430351183726776823227454945993486783602157710295087609533434399795951422922870412739201940833531628372459750728724772951720882725678144089602609397622233654020695626615939734391183539158191521366843718965319929245284755471543948765582626785532463181393031924666402491377083371140610776562718210920153199430464262972522814037111061211572037805826804817798846643099769002414115616287484020886900716002288037767900655523039098123341599691322441813679450319267893829683344997759928119945356658328208790264244049442277548267880387320433846650156548349849602860019680778291715167840388135103611756951799684715734094397385960823858771785896645888472471051896355650254219633697786110433421634584131391948657413134553567492358061937002508336699341340135594360737350682006847642087216619583464454723718006910127113576474607208379746182085862776683622826414993954546434550689632820609912758579767310010962018884105327410602512659813581009706481098802701733129119397661147821587438531014541730506696590835542491289739121482120879679553526743864099692582904001403947116354380967242367619308786005512153095714095485110342356735461877307358143099764672257165086294007531448378192461419853819587084179132621020423368190089979094705442796116352358555371095912680317057027371125741479252580736186992222136125636130860611949014216376787810278118951145747475251199608846826586295222133226438814662960745101223878377261016429296796155950149206389546538303018560451074025314708198355852632239428536681110198402577619189884404200455784805632856544693496401737821731274125393495834310849285784630248740304727405564594494588321353821674001180320020112517802761062162230122790578476217544251278741643923184462874370594950618164625625959498603543673286128404138792683935800890187616101676352695495913276449862535922454679776919623401961395590295880607720569987421085568230287542473523351742236895178817991896918883577218335575699826867324301972244931698862628947610405742217302772645184501770544903220567094494313798594150096701193744176447234350048756197395072940484076607035934148546878711866603456867855945307812909977400617211548507470260670663430232323760761107751095262708600189553225259209288213958996835942826166770423306469733679284425917335944871820268201103637384572170771864896016544214503273447963719759005541966484064136295136808652819162803614467288144187920233084204584764609533282437025220360843870796892106412768981304523664239215544618164757047498863271717273027728252795884557300013136017682636848200334564997755931489526927286076391954192147963836585822533248104516513965915267593201858164477284918937466336591842997467611441277521294408138561338477192490080295386145411770403320531149403532735155527398447565797972036075415488376406387300981577633913927939312455421936640402890370644335820241446595947415147818379184344763080174859034954044554294240516883471099068220770638667112472465046400645346963121401953147849439153647758816165040520275505663543006815365952934752043245600984587034082730604379266744493058245737499386321211134855081237434826683018416332469955147556798785241155267839337024732761582790125234164707572021915092133295332690785869303026481666790723604480971068488308514663653050386808291728685981911419818034896613369713007083003405368040720376287597378646833892413789242810892233464692525337887680160480932186657241479829373844028556639313441720128197448477899422824617600772665670644417045748761196144947665361177808970036880854151404122892124645648134063693839171076704239317759585039663272417332872737180899726950415002172309076117561794808049929591176549451675930341606141961402409307204622228625701942908148234564083486918470009475516080218327311723635457653114472488467011667384905940618814847148022724357992919321063700798233102780734213263056662875138024148461297561723692914999297348248779000170994048595739780685392416608142660928969678818623707298607749392190487660935220676730295401638599596897433381756995380682641212199776723405050570436811890704029011419982167941049026290729737277089318058156256510348368299031655735320479679063730339555307725919163811589892486959954415339162637943542163310686340368917580069792958648974871169152977091222999719166877604126426203987498860757202397536607385947947236330913279972575560692537377528351379635542372742844954660745487927875342351741864754617437543562573334129740489101944716260042251981151114414175663107036914886164089422881384185166493415210449272969071993907250417568577228341761141897093780660326468317346753350010937114179990241168948804850385463548020191629546127802436422553399494937201856379391886546877102171336523817483301641305185859936514104618116098704456132665188942249083306417765515412446941544652402897658970630096503965604342126797739580686103485620727640256431688018612783162484821577181672424151955292851887767421540784958195831498522278038138927410559734465969880237147963322539779113714054853188620643636388593709257292442099704853248892156198335094439217787390623066558401347796907355858867872974710408189713993684626613309281443588395990013300350848731879666648712850300874507921334882295149386140252629816667483549020818361998045825207412942330910447291694532879072013060302298968667762540171669493956798770812421971562699339688418390961382207667711031655304385277474421465917563964033137750823400657555311770899464544657476091939074685407165154490851630280485360064375649722246405531379238778102438589423738740100594279008616177369617821711781361794567047005288827436430938249013636919349272630586158435112628017425126294938278413386719943268497187183886567872898829271294558341343824781009494680010017208114062206799269656046832696250351815841977865846527851258379410064203750082651825437117854677309617556900643077274648189224257359996335197494553240614698098681834883457946193714824850010879663325884633053278579227895934085196107097340946071661331748716377959721280334353400500280297143670276897010174988481380155318474888722084013254576546811757199638801758937197888636198997864338255306063501744114203177390157467993720934938217786719278427647811991453687846082137674650390959681656303151832948501715720315812673422880384271206291028682004470189530644867423385056779153952525790502546637041478084552223762857949386344268285906162296731238144812217777665427179351157709571376569245521570939217211521568130456720677404060940694502914873420043348454350384934640691738498433915875551985847245910732501764227603276086420451345020222015744724773357974907656965813857418891262247929103030473079407442889131665128666535612975949661978112815735382591539216903132506015943309490344458831950917941514420421284093348209055213890032774341839334569363260499076785247242992045150831115308996551977978301099073321961958566543870346353977004707898044983659263215650973326319152999033780893032658387595102438769688943904685161646610890207704828071213397825952584129275134361445875620479130294972136649416188220658717470397797422824101209147922828250775673851939031895747345049398947286273651722294478414350131983148810384457178296098604571100850611536493747279547608580279325378807284017957752976547564404220748427485605432453200633836600462300489084586066974835527414858101784149209739466453872911878017730609187373594289623795838476859215106744147543668886492241739129223975451096449174514332254515247157865742131159968899164928890511455841678399506296798637018289482740368192761895492784135057785854272231549766348610876768856559874634576940654297195352334944392862343048192031200856234474430416722100455211449758637116586039355157754425173348732551828048928566984400521366032085587065121325545887385609261917803955021108536397785430369903182052078738280477157336454879650812194685162753850024429173307690306390465939747174668097875136182124213509897290792950449742473989413010922749537051852488429407674429902138112515124676227949364089372759715354160515020335632714392044259763788668926849470330391904285531384981031593195302005377050771972545520801549299066011409431000798147340926094497988684425571020162084397554476103223617997370123501187002129842119508815754908804507269202148004298602711521135698162839078818038068658900201473592941861627558320461029985381417482072246694563208976761413977123385171824268972310300921159556125187578280616208112420992186587086317320646773449903547288136726550824003647992318375451277090444763871011193410437071050378805107741546453992786447064653792371566102287811917669489805775799434323421308885727939078612700093151479376748956422383101494490696660120771639345235196002053907589398663311985823876273418632053616956011784313843935702694593905707739434411092064992564792628472367675200925791259925744358225482472152758088866594697556829858985549899579773187330891490860668232840884717065793702295387398079288527753998897483311798150479652256323486775330526429558143926529193367151230519489204918741496849783124411971005904651150167245387390462911922057727472723494319603935115463325857439904987070461945797663287328185066038400709248695474046642904043029339617973126511816664195919349504100105957056016727794260179445800634880010744385944221566957781981488127723109545601579113207951471108099963457375160582610448471187942902275224632694298595646868764841047531289780884064197215291361590490835025192054181845641903856187157327531118725535784970848714083665638933909094022803207686185484340834612124387968598131815483765073902729027662697364747928033760721255440178751481549834707477620212363859878044507770996029043398231240113002540649872845816515323900405537344526752954894998923321755184018775507442335874331892508877194864499023480364862781128556491679200440435961886092310863467353208250210400755415879967900857293434691994814385196809719517919478561710908919874423982948623853376686019072653652224082337797464101660434306935814770069562658577687524268497330540831778686500335461967817539538708954961963953938348118904172691415795606262819911249284578188854485190139219574464974004621700591105869572286591110662448833803641785155688177250320013711169023618727491622411601728514777766221881705540285845710791662314034886898174754983601986562870081478397002088739082693863835349232633429321240646695102103937289180211786640033436166701626063486456838654882771591370637280567144846000932620804300756775451036401569160529283235266108900715830601191259854959465778737608719884357474832336420919849367468560924631704436915630620104363419711037586335722256722077105415025890719120986792289562892213148913650898297534808503266867908843714612610822684712292210079260357975070284562073844651498726303404139375826409791320298142443942854751782823563900892464041809747169566099329735180438118290388328344481225199801733882157091316399303410951659917950771276987545104854086956392006401135233561846454491044676398287843602993687082783613145504974810217985445532537907091925778704517318525578877088972789469451524486162628798555226447013109019236925463434106862891929401525616285941902195318796431938603577284993764425076707443218712730260750771885921276330543601839055032725282710385391527973266068352180224603059021566518264021288524731954635202807252711871554980842121035779719740786308249019886037040749567386437380839717768108948630320253725352805493808454301668418174360239172268554130744423329817528395684457499633955100299619408123803313569447678843777030205385924715571751828056821437768815446293027538389361240616598873621645927602961948457082356730086886448396056994238227629922805109633050407375723554084024853571172751119711984694615110746382392403042885467027349057253645679880473419907306598340783350857609755777498317677429144526757063028140861763196853671972984568692839662023877311270447918220059808087914902113570190372857392886924144952240559629700072257113361512712912162201853002845285113175609189556569600582334058104826681608690910175498989334221398431920337810590841740860406824565552578198111325391701856159101182942334600412129830696610275614914283583629581744250732652205178004757337529108743750862756573839795270465355508933026850914270003681281233158917898359186102569544408559951189756570891995303729529086161906763468255353815835178390462352107457740208008838268561099606864059782845938256813693351061597024306979220744408051183398641275742288525290144276670189656284641317922540421301076238656230015839964297344908538633659542253060790144903946363292878022495574131805508345630979031674469566713946739029157074568277400983034928071636521739748667037332675411513463644980610859947384768471764524851798317404138045211105295493205448191676494474112029752669262185454521200192938463084917618422899581734671652355145007973886126510753336558413509519565601347571788963625898890308099364422789441709238948890800410034776825891421139194405694419009409876589528213013718031223292211136362492267916234155457718866232166042524672073687878833715517943749063478752108610392043333974190474591055887056572464712587295331547838800414160344783617471269556686582220166750922505804013815237401829226162803503779474773030033754265155949863697561104083985742965271113971185449324799546927655984682843234409113616980395589946073045506998579736050451365040483845447612981817291912301317899238723642312142446941215362014007576566404389718725529284227642762275829962733027710759812546645247868906070149018481769050966865758830543627451431827549638500076044288174630749748700618988424284578260999759053674073615976626086912103402718461318595688327456389845681186753956731870875171220536419567984267049687153177601409981488919433478247546612113092128747402266872040657750762376757752134290387775096914705049602563596778594538858015251057232218268116917333545764078473091601689927898764873282454081341417499480453703575079570837734049849707572107985282211499849470328065112385197168470777561421537016059831027206246797409285976170354877116118633752586783073867323523463274518311517533539835206574321662627767796008916426547406133056804912567962700438008243857101631322125425623786037407140673025165746916692320199343888190624421462365489391097749619608797901588178354252109623753983864544947669164892438721677126700946227948902845020856333193643852815492511481475204140280045372574361679030052899691381913497635370320150521691702806671619830426656933224855689533736381039516797472080149419459123974720246954488795449872647383620329868992810693744613633669979503753229370674953763936494164772929410613329817456350177458283501277054067354560612881137506514331390908933086283105419295008460526090455983154262390950857981212856711258785696141660502986338027813770333566412316261114183306494918620507269198265114285170674324837451870363216462796903253113467289495436169200577294259607486581419570866376348456823581477623765872843484402224192153292860053921476849589923942470681498535435719871238443926705454501700085156336838593231512705224408190796932073313783860448224486623788334687090928466603753100648678440276667670429466956175907364524416212916331985173175566480555925397887897025034327198783171084135382323673106670873606833001515759602485411537269251406723698806757836024960460697291473929736173971896863368844336645505535841830670041950057298986584072170242996103874294395714016125299042448700578996974655510675821665035682074931260209154691266594628854661917224541398284607245704808457891099562798406213604923044937195135414333963941665980898301564647785991218877880108916117629874306569641186014918337807907828204480563131091346440478093789269834903737553259777631637772700288031256968620998985398164967185011305063318806694946968628003735065158725323539165237712132219645356823731172611629655424020548874101371921006047127889314758710261533342058629037743880004574469648735256385922889643142476070284685974437421314275896953953837541404166888671636551993656085215572813411247736521518596238320999821761398477001681954837452601862548044742808542529949050450674022333973653162460189641358683993812701110861966492607980435971202144153749254209406253479826740517664952022218852067519218076550994009128918517501394702840292983205542842710685555436236676188852119327252993194784491711488344951834064566399012937490516835670170179282549674086708089039084137667291927820347653166043516867325084475344630302456838979654308666625974819445750977612097088390160725195400450946087435824426537392028574216734681450882448222330764652554346925289868477038104229240390964848188351651041679182482719971430980408677001922053958017180894311599578953952337941137807363311975965245937317335823592246430738559480200097178940271410136698873563217689610999313922115299715045585777045287734044718490808599370728595039357621213916808709092133574270221829208565448715501930762269639468779732224148797341599067813123245104750281376995919671006258080521514162059068731423622430179329743609163698198926300974815426156935617312076703884704322163604035731458584233118729110076429682089613364509218090148961029814134992378173047106002885435373354074686717184947006835525479494628808028678546090893368347922655390570145999289589234646089533625750008125397136849329345923033767270064379500365047903871284353683287846691866754001259577183594824923835279749686648170784403858712757180546052549017973454909522067775184426968228811050959135961410320951352188280724367416599297984372170603666788418439119415061732996491198399848740491543918721710838978110278334841821264216592526261190696935756328258050085023514990379378185626754900148490264528921215149621160616320772414150424800175039210758364393348764413645005058407836445244725526626467661023427668680337579738984766705552585251910599738170821005093712798092206160645389079334388541824602673256419289163091605004544489992257860286779746246292988785699806100002477596052439043228017491782565729457194307611459746829546944271323742933376326295541661806555458649524752504994409794397063080502238382873797061370811274811695897552343084005286286922843328354107429302395312654419411427296868667303133111559939960004777566887872439546670038453328890603858240318343411247297979272000457289602567504065668590380535712956184898080960601813147491739316411153704664194378638434684505357075878865383000759293630551145180093684847561413936093875657958566359505297385680327603253667302896930315656314280395072731153663879494204071357196455925256204452540408354120526475395816264201061743880075003869874769727714604780811316617280515244036581262921877307660766629134997347470952745285118209213044557280849255848438530390956788177270975316105948375901232988279035972660466019140943709266446468150200367384829186786782811984487072581495100760491267265682886203023217240749753557877002632457195374309340330928494736084307599186677735615263931322777994905096289938087233154386373429340863010322561797830980778178535069245398332867263930528642077062874545202281049554558072728871618350556067275056111421434793613091405933048865420034430666443291973433569893387843348147307506350379498340683389155934268277855304675161089556271413763093407168657961377133532215102741491684320946466953089770370750340440232756113173009369780171399571368803972434786726661576215088914996740102648247409794220709290077350947325554398119752363995046368956423331841632079639218953894999342197876526229403744406052313580210127014248078628453441186209637699046932272874424077935380791414654036773068065597203385629349648892346338362929826419380060282959463355561606334802213935424007208676481470337934635381836574993131356250218843972802878176230843893005924922290873815685323332082392225980024687621625938578248839042015924027415697087774408316842820391049713289134226459519106696991727959795126937117397817575846759777386159734736360789490324164367693087639764491931083157704653714217649969232269833737009434007099330461344457132615523388737766014455545717222705199246413581466200437932459095187664691409949483115449853141577054959970319537318055160489125721730212044826888629981561792630235905146421171186663404180677731165047076811646900724324099890935721808485961160505375469747174483830711329528239499114707163641017987885388021748903129526747304533222605014841503700798404545558194173329666423381234906152272527872026718440374158624655549855913582652587338996388725037114060068634392500039637963772623498336775443500885588581629793294753895810135366257918007832029455826912096226897314505151639139368458761332613813608889306342852224501027507309253383028794165807947014441173653968822171593802416594896183114038656015207958738676479896860785748031002166496284141012079419578699878986273489848647041847505006980758158551847745988654702653609190713967887963598841804865385401854909700817292581616311933972930942875947456595364937862095245993834627704398787789518242196035381462684931377639542544104118161009634467032998511280711380947358362080782399914410723210296116784748808807707377051048767016334052227725479218774259364777948967580244180950403002494018547302140873296351872750784960424409052949326798330740936163340286230608345051045043421887468291623542510121430938765815835632933058572366133263421833268536288304023510620975401868412357999783708037957862981374513222386082565278684753933476102199150074074993216322568389984348179801522763201655509535916182453760304712082247738850321008048119777177808766761155525280249211517808624068772029229407997558898049589257044243043654956873115410774621232274871368195658281850949461618893461713122440795465880439041967381060082989221567958153286692454509284541918519171044805897830578200656145774151067214864760801013688863121746381544567602082444046065019374006127420259279334645519022359230627620324584446799385957432318929299036397879030684890664370622247329015487774124702909268133393601535946908555552989237120953697782166696659494140315515799884373401733529892491759691260737880108445594626633992530976356748292217866557271119445275210491038614408687208844881828757890790929861708170552689249574457334057741969268606407426007230481468562078182058902328002555385649765789864536127159457030238141483367639537165581609994167643862888146794448674426511476192044657846517415701911849371172019418036142779733406390893137570505716535952016410908691661127841943875841826693265209100393572375037396596630212869516125841308131008335773115156844141545663891054028897824043099558223751716754223961149112118605561044154592401145191267208992235340845515084110473943475105194032313466495720919437468335182654855595836184684599733238079303989462178167253691911450952288497315273403737993828817563869510621995057073137083869509992657638672637050510502671657516474805529790364891755841951575522576328590099012601610905577709893061925693863405932635437854327179197354453772790800548723326404918837369838525057487667294629167089901506238580026156304095162303977250693314144277681259301226633055459969689460383319171086090991604172008680461597465787787677587718015920219877467217218737979661646508953179541191192993904461984370162701299140252199683533058551365190081289141554977414526256220511896298271876534784676906893490078856855153100884791722353278349917247602463816315582864710121295809205698479842695437363936754026230519253522797180475688767285602389159677488157498785198678526713123185411081804905663552220422501110309000275207242517635860913326845511624440633441262209597180194900852554415483678817809746587177436225078963752296137119518146231849478776045760220269037606748678511601666297873591191464354233018983340587521725504032388325746818068276881285096005505006724904370636504507588548991990486492447660110658711998224333701816260679511016368954073138149854145945902297192781027323275002986479874328983070558332740542052450851142855401705831083927925854622617958529722825701098921931202969007023629479788359976882415774081231713051224683433527364994625828325374967427469525599007589556027103890482095915060729242964151600399205285243102029836333098648788967890844891892824003515135987775561152994949730299271644978277990811937158857832812284449611643160254624760976422415778615819343424595747197884108632785255713243220980339482104580773912997498543807246035248984522475103029493123702222735138680807849871147533510503297259275365857521903536178436362353488772529985857514639219940431866912922693192430263012455698464803283109706465068175277129612755086271762028967030360358107334527415474791120988962374732823045006631771986523387049466588228209448993368432093738213066917010433636583754539178435751397101475790505654784463804105977433405892964617360049884503598092345491884297477692912806537394061183519690691810622083496388722684299127929310094491899618063949983336260027053832897563250936321516483785181390267038867152223315168872905217686588786251025244905591536633600788391746941476405041000805665674335488754580742112992019354311582649322091121212090323940245872599523745603545324949578470682142719420476392834087621920905979415237759315259987062430582148341007153352838529995276466579182607288729267645346776121275106795635900051504550288509171965265263878967050103864267567328458329751165196447636415992175278331242362637865570649272125283792415100723201441876177651834662763916517139989617886128041435189776809009622453097243395698048552130990616746279916009734481874709843065569394912813554814787316768070634095280625789142550476482887268581579807398633005532228083944057813022788795016977445994266992825556351569498699379832598396994401677293696121170972684289122226241106787157611671994009265057029671310971651015475731587913828532238349240557880185775372276503115653142603701119543571488464978636046674745972036830440320081269241141613538974017907856279330045102601495819117362769697707664060976105000821319341867315837050753122441824091871822618297294393604307407796983624557776300689907745235622930659115863916490429186395675260182230898399788470104803429203989760357610662057997939457700974859154238178409653324067826832454010393397551760479094641928423814108799451612351097383208979389442580698295108438360227402431881536212776045918796523616472202062233648046986788937231519920981350240376630862552902731333921955348231668896696593577747857769693518773100977735743402458132033124079262573457896377607482768933543828582578348331152318138212303794955349435634204122821540356405630533567043753860416857498759952483961790932882397079223017160171703987741585623781119772585339007743731441298290602349409550735299988270229185862839958850316729680756244992023188857895193110752401432630322072374564917800423227039208648994591845087365096559289726208280070474542093515811816518632993055755377152246651623038005210656092570943513823632381554317428532990554375760503654574117102749375823150550309092308491537578822620739786331451141423394049338681407746405466618753317106246913752968308602552635296639294415557600778241150462883815597098582118925855212758456698503332507646666471856574628971266045109844281484503677524259422535753041498188194454883016679095007357853252973518488201668624834727196580741370424068437336942434655383622417478230467308837250204315600522716864589270132360776630611600826882652688560310753203551296928142801980807065372578954513172875622026034042953405335297727748325033763232175670333478559308848567192935200746078561859438381874362574248008363416216765301225377080924938329441872476490849134093575136938571201751870452217208232453262288531099726296017180695474934405161303798984911719090652169688624443668225070125389852091001740243350469406543693204598848150589793325471034187818235438836352682005793203423174501791930614079205189291709548793278417307679904114839951891313275181382679947155409060579693229864087722093550153078524919199063570415838905820643277140996506879039744247501282614291691348102032441224394885808962266050226012758730053851191018254573771038429947941958595489910837681345593514160249099965213245373699807512627571891782007197309817653475924633058740500319038442749879323534468945506825583770284911515359490262888756765427783977557258648451744194885141318151116013300788205303982766645511546509372229482553278143709448347534772284462831202338181991139158315880706687099330921086975230548739128967477818295019419975762386256019197884788937469753482443039726979158375211278994404873502402545209143897020514814971569707105884882579649971942911987908157718396819755773467212103685444136953735361019360663023910301891729908546123190930102091521106374844616321286342130063401337985498545334289357135066563507048401873497882131730224876238842570846656489796541636994290654531012450322194849500234688718696651977400855542940004304442916939379910511646656237935143718411045244706454604866034977493377465974996824749269822392025620847030777223696379925112070937444769043524045169397596067670669664414082907474686965081277652739568638330437220174405974480625129821724490208067588141768696622306949851921919864301299949522063251636834739017972787348537061280888877439080614610225677706850977162768387538744326240698566452950546741294003596909372527910600889656716815447067541228139775225035871903687070210480275295658210279749527859570543137167869780490057407951492072660754532457276983133991079690112165907965354496132636687514466638215830592421591401225863337166325987280681762808497316106219371680199325828189882942377160481396753763209930037411545761292931151210390902308110989183878056490988723542953734120984236032569583672064845436051243292632347609244747176092562437498825365300883321865528877929692746429656643218725577091768398473805483477611444421960355063478659351843988044090778139422737617375905256291620348207077172309066715868900647391825623597160732930378060137332670960308550728396989991375471699473019794778959275798901977328191805866593951149003704182018151567832405132306007286515328436020081180710342806020068675432556661382313521770013825400800560100096817208509092273886081570853682517322511492855806277967615951320238682790533255293538377209718045306179449654354926241637431250855094477219216582488835636959145960637765175805840429542543869605855448787300667333476745221465976992166035913111387164069743465884422761338433669971636216084648315386162041708637439815978141287429076894506121290502659834788710555208753812274499586676773063322852004697436977941454715696301431756048606166087350274953435104758112086948656076012382110486173409449010506787208198433719721758116881997922157231471670747653222980979364851159041297810153330215783872522880905050936399208727162840694067981160417898434287691072893081569653943135462709678055095176084384951155827976390338986693239777577362433720370145517563117983959763215429611793597473958687919638029086945037982861623453408578026631630897987949796267473554606717505283899420140843798155746288774795745400822765614626404605496863524527687277958805636179960359935471222582530099644299076316603399674421713795361255849993936685522632673677352309654624522084755135927083314272156576393637526726276173965601945198966616491693878206125702792588069387828330830917502173070447272576511474620755620852470181357341586170463696599533881852608402136196607776152991095737996491498139886381353520389203166482382094794405018467881814780487122486532182528372747806883447829763110365729594613620880266390574192632940250808568215165552563056417064687948976483879211756698206201375548270405064077910859907611097467822388343627159521488321543192588568577050149115270247765578723563365807058626750717186314743837493921695138608644877755119292941158413872616474627434062615690427640617367588831729863166888706589091248179300899937487030953076407794217757848611551317670613481115430081770368220089213614119920460746882584181037467782949249998438931551617844867845953599422196687642175621670526538311452491188082768132950259090502708944433045968231458688721372421126723754351950472162422073692003941557832431054202448481774020394077989897839281704405072351008924019912410254867597989226208991358937131105838062091818745921704104386376990856544171970492098076934838973134796539954810628584615714330593433708686348331763002768136987327525747524249715212059333305659278074329054171769208661405725173930193805551454263762027042769366367141544418557925041371826452444475494182641448148300622820198940574232702070862681753263021480872536583987449367564275707144970616602990044211295036905134044632543762700852819873387737958028799306749230705135687758811845312947626578824364565681264810526885679172982350004540388254851071111974436397899069448318002099687030384303320576514079694278581525250915890319424220468459093511751471978935189480295386655060042331341832185362473035659364107086793323043007230473864623510690154138788532397388819708576363713603084169634430165686579650403686895719073368004152238458260369149881401354352567068126095620357493530327058519328671307576715699838497349773029134120059731245120175487408158681555972519286070576192556089689947918308472128613412765228566515777557563292877703161694251121026947787596961340377436064490046110419096068904845174076099309466005484759914330573958350109300290995500032727177623225659226799923236965891775321773165736150190879872825094763087588508422377182034838962377495119089920973655343090564298760790817659152738041903425276492670593637022203268826572137742487898488775200900598689247487590140486997046784536016452768946630788210123547330248447513621086452865385864062397582367803561841289919960109554179422541572485717169352523266995640691527364849919139760839268093219479838164130795911772406856380523004156844469546594402956181555801682852292581132970766429699031277559315012604310373002573002361378557758306747667938116724981517559691575818331396496582576205495034997539889660899140402230642336533131584932057072694138331151274700545056944265545475197875396825287795965263642536105714664695791551653496223159124444169375129988442556017960886134416995410255877406875884757863764047557940569050521796591287634739002590569914181489200811096093864675037341242679389883644285315604511645157992797411351421425747180653174295805501874067417960399296796066301632148810288145181466424690424655245695809665550405535471000264646165067269387408504524246692555007980107013813965746481854272032645271408535861047389360446104379814906423297620659586410357353858308458625389350510767192541649345344035290923166205738829121905948933112336906140732856765620242603893483230233371544383159752130858566964108955283846121960971416046789791217496406735950545912610403050869088918893651610900046168499371320051471935398061690786732796777809087069554711811204666611011552663458845609568471603713153247878031459101846019607455688200282775594780675633351074122775427448865787826395959360304205282810909992712956997758603652178246199801714456670357854874926699912151318382874504215688958644165833390617515866351915230184387730938551019906787865451915240894710177756290417414138527834850236847081594072233459097021666810917789922195348184265849901386304654591706714193808844681459870837538894536850016391575280800241688534469969627139757521282627426064179850559613474775925974450323703036262562971162214189094743455361290899514384955745264776837542439848294019625848247108985350841470129365279713396675906973370699946583370192816670468386701964456340385095079454355288091429097846421771212610033374597809539664408321192268740176970851851728119600255975931327480142169015303840041147382821103785145894181483787696754586732963130279277060446060944072346201667330046407517355721380515872177484158202898270424276483601082751162706774608517305217463477812864660647520576897881249952500415754687860606219681399495426569103864094505229816709358357520996821621047009099444997992688895344497969415976285189998823813275477749710111461477378716940955036223751366736635864850447660241160996972666635592235258347703748527435025227070528316358141459874934712650942340890478541169321996282000140165339293510216447528992712648292740625712329871699652410030586576370045665756302512587589606035498894844129507899385699985281830630892262483313560947504337826091352226466968454776781215789627821919036156485202131171936390723761161953351480189439622527329322834267556507596236377657399634777441476037013971885478032515964774082644797735178334496501086556010464748240093110182816875943613001389117317515306905800347196177257229808087568907763717078377816330000849127786718981228522624359626872448442845005648646824331946669228520043037721989421630662004113980580464336021948826554329301764251443616841099830453149215513302935978788850728941670578633157053834335788094842450490261305011285718696172105896595284138742703985540376277775962266008562913533574731777911887692031004517113247641223445604534574453018524587893761804338248484422881681394637635328642225508122226230806379298951709449994623989336361108305697564284720445113010279675737809499205601216078918145580824945398914989624993540495439903635378078103488520179589523889960331547724253707295275013353829018501152409786956580713075588939795728497261773222985620786198105105505501322820283997202092921418173866815327654611846915531672970050514789576234979798605258155130497771792485796584928403266691708121810566465780928766189431270135101825697205352205915949878235569942992868782145373382864431187606236109163115917057406265732708917280238906451792126755049587617237120497994744676387615124235283767970510881662487371580130938629028457404665106371341881974592467874115039042373023758761529758790032679137260696152773082395375361885684113471684606394816049935582483326102770551953892199301923298837927704014227801823799437847724144783507473449393392468445465324905285050986951731559620048093644400245637394853241305778145104637854295800040171435758292557895497532050882116164248931085789378740484268624537225729342135308643279267637953367616929215299546005455036507439725537643285140257544104014988180575859653950918791580369140476601044033790696565669957682394336452842199877711262638066637011575216176436431171361989254524286042119500291609610196665649928927129351226550741583967358823265087323500536504108161865891165274846387861257251513790215177734963333491332575738352848004242695435904435006038244140872437717554897937040273904939124901920642415146551898046974627752131530297254259006250919327223490393181396211919353428995216535906722300075113170911221290431787635467563753687083307272109922344947547552232281741264351654148569885202581231207876574205072136505593883700323647338525841427460310734153414649676102314725801725512297599209669891340608431674783684495915236405683310657002781375845370098469477841509275487273443914567726178134417138083045568497647321600673306925924132646671002937139062797843921385176262189622464606216600171182818091422457096775034951408049982155017600403642734008883108630862444416441411647412025753767545699933329099282885089701315042049370897886236758323237403303847767560563486837240663422185092558488318100986652647580294503143760249549793444711438605872641955795713376838423235410811792021980381466595380292562338093166032514747240547711745498897411247556534731091228511876195184628701229914069133066674088296031768579698541401985481622696928017282808521265494380758153014601303304874081205073507034539213391091445381583205971205166882095803709052033494772893806703790186857619544682643119896031631937005097742762422804822637579233366221498720237669138952019230716716705563196085176608311828698245836170229604494081891182190402695120105182388429028425904769256824826516761912546085528731153089282344579409094967735243484553888634544077451002858353033446409739434572668512624965794028139646950923155090733108403794971945834818124700227279915715654410227247230861540646794616260105110768171030563605654557194422189700451368274607636122446857075358901027298752477553618289675711762398785337999473646977348376517904955283658309241144406427926471710637666439218368391220451251110901879188293156850982784197798355962509961571032726901595951182194188069445006067552212475647021117556672031764073887534628746640117702796245165714751064606747416307312319217675747053905660198324794203337259233146768747848863838433603691363486418223352994778273444004448525024718629202258532839590325090924576441337214984381446215621996136198501441311570025170595046428862730941868391875845345998348755290881320878210144332050689069323593755216925854433001630537020066896286636763255866981590301933672499127598387259890872269101263992722780768408671421898839989817298374160223839524247137572407134340821549988309507065973413669435105564935296041494147320110484926227153842709325649601145522045422762634258610593241527604510209548210256095391739035683575436977278359897584783295544580952249918353395325626898679873243344883346815122849997699727375362284269661463536496999522739971511995861757042581514693761698945045455546036242369572715954046160568328034227813702582191687667979711088238758927299937564976004539996563355419412358971350991034571833042786214772606685593659478558103564136449256866277021778632757828061205326149392248602389863558597109074775525023176301299222838739112502139756412764508305204023276223999838717451362518725389156422476819540993982943949074285372601946391273744727116673110903375214823449653426009265183942020698833267207398391310058181264347012539058849487825249310063210834423727800823906221132355622146785591031957602418074720770350265338846390004705854731412659146451513159877932138985925212459528936651357750631861965534094747800306938129405718965125127446520147053550348405745658781134175193890717377923120769611372365644079369043691792451932486134131344310548586565545284505231678016450608412502432174125495025774980400234929994951036745607592168204110569833291233430290890683389094966293484424408726490480394876668667049709862275564068699842240294586185007739381382933243550554558150050544822051368669056386011321117312119798043268731146011428933555432285459074868798469345548807461569201353092691817529382402156578101376005324343197770355579633338323944729757077005742626867125636611719080876156303397346993865773704462139183607370160544436212456956126946349246056673822868588118766376138816075077351715261637514230800507360202884830116601619406258311821774665423610256812557757452579358203511698400504929045319950707534380771854214489770919176694419316482042070243563258689359024241045572346497993525108802647688677376097011397440840332777274018980395934140794181536295904035555755740717257386956046893779845451261120291832132380680227727618476022815493083547598129443076055925779044811962513828586190545461135900547458269200569862541307929696729118733146542428655339225874312197762850066652212908680215161822349502266759312038109219356729989322819397238480625774578107380020583947877260136367426924860164003894111023536488400755965167230915357501325167378117607194746610497291025049501561946392105636319161826689386893591140131505082564695754320556799674812501819505515254545255154950211969845196005799772730368830325715014987662913579146344720155487420599240068279471820059974159745781275314209272314325607137242993378013314227855131070117627318335462329205746955419396091057450208297625142981324836834199168237343720505791788375463765783533447461923026847777432023122485086460465266493646954121690969827934856619324966686111886430648098609875932609233495511315880332512689987062394438589483106814616994848705232419236251710791297526068001247542527585229137510938841086411148305665736241203841563743455401584610777288000320336096681903038656490851904038996712231446460447034630013784768733294616605743472835910491293349035865089941721727232221337540545767536619139257344280382016486280326221056999093626937912943882107389047230617700898410218853301972262608581178584789202003804778631276275092230109219952304522891627139907299883275290409440359119360147479507997409035303607787003499163309987636522912370667960348007480810213790525030836810694462001016800455860624095565786329544034451292320203279679333126348609565034063358148555288406323563134247071900117188931559392612984648174711778329004234797281767803323336497035784256486767963321216646405801705086881113704706944600736521786713315761166946578121080021837625637846169631825339542630425455649622035216418496472507641646190635904737637682446852815996503647857819933696534545180553248690657935909368533241762355053030263582566519879289506309869401779894719819064941088303322320958856701681367146429247886314851854745725816390926367011538238325388790483504044739851758851899390446518556448659553748251168498711931031826010622890898786573059722615807302147356874681485791031915267714068176009941180999398271219391417100705979511449374330543358954447884407511240005099366717561239929960025080753110775888403936108933083705801850835025742954235082936555988685403562060833316991947207566007919739996060855892018670027122222889114613663659395165182082139562529421965871083739850283626866289809712679951381797419984017384189494186797937643431573686867472184215680132079012128564799740519887011147299991262014666385670220235583541747314359045568414097502687308640423449191717507247707533125195822775122290967086078910345998166444997648355327638781753284179612701826355492981958488621015205313809906997891513906679091614658463936813437725228701112805528647407250462243220279396972467502441445463269069853139362227102574306937112989426598538836716671001683856161593484877424598086790534047541949792000050619842877842491724456706612350634801572760033438800488113156540607791217600864220935585989505260737514632559828848953619808010105076045192867553841276681307824694725286313820925183533572510584551148379817570725488234457193588379394934848766241199228899539079348690360045932102291390227138252650489920804506854916214687810173096678187165056736360869745088951516478442335236303449252632747456246408562996892931816286708497173295974140737322857295070261560228570586683237241939628361739767870862748751015227593652765662209371854412000339631568051143947925481355012392975053236078554505551328452187483870917671569774798578893756082179876091440493883553809145062564076651853940966872607584785377589307390859476204761480375536021166824586164284920753164651839631169433012362602255657034979473045812422649342270817236719919303972653492690735234012866476585308050856400025578874178896384042252966592267692146803558559404632574681640487114077220984622834191812442208019815022673830006576883634325088776577146811365018420255879223748933897593252743823260297114707349953867997058215410285133727732203746010404481359659134856240234832647956928655292555257544955676307273614366962325321007454271680798902772320973692072028486589696449426458441549324955659262733407620981542412879816397183848846991334926353071481413207721530370276645809460645339087072888424339945824048388698970792413163213586692307767109288373075571936077160341187865999699252398303102879536932645733560314965524785801370690811901828121396824071975278328418976477382040896268465434231014054673736304234928595289528639678581786019510722769098987351913530888270839988753008024024584229286314461084022253164241425159935371989090351971845133770116900260917883882378931446411216548810245184710228315921496206380824632627604333663033248556939358267510536691787223164397085827163286837580451482365214132411256041279260647942350466570927794989960241487073562558994938001143618043637466096223648428657796660826353996917920259775390558012155306838950167419566573170729785318126863891606093121692241773086884514227083826071536864498644034470889202880427162349236350521357997938408041935175490819796341788952153074671830439638556582841423057930161992276174511304230920649312235347001123191348439307185362018333731449607665437386936574542712255474023937374763692195885157855440118698263950299925460403317736449535320922712338798454754734240384707026776162456883477262623108714299545751236291084832003540182789864350371427687634500674975536207170547763394429271497028981612290765104796472628981757753930573140316503504970853353940818348687125220119280819963646949561868306954433005062791017077421943149305820376680830394661068909040998754621043743093290939319646118641870459690533186496675947253391190365408856504988074087444905170356291761718583298685956974315635673903280852360174372690873480928441836075956898214339697816100445668129743868072377401411156234859506941486383649252526816306551520515275014504266949147774548933322963929886800493957040634820564908473641286858253125272272899897515645152778102334164851708720836515073559334924512428383581027766335848229044074765238257998739387218411590718376829674889645629337341250128213094390805188388332469798493132486873330399985621541957912576062044591360446471632186984656488846588091570217271321489904204791104491148903378185977126314553170806364977662488238835631201334111776688822940725823216642091914661182885302629337547144800148519485580576097706789821094827812642144705636377009045869195775199413331065527428053824788153643927511397570650665907953348578472515860371767824813049303446656032450436077927485933598596887792173941796519909817764851451761141973996197947489415559691213557117189913309093034608828248672660978226154740923770824180840310346487029995825553603659862400077194822823062824763118915209632493289128078902741907313989008777145683500576176312382723910538625619407361069763010606468724931886026204575200708060216748285718703385506302653653689814453881408404823488068484697664910049385918584330884790169366081736638947543360263868070457988058339832564940625279382018053984753249084667223850459813260192969921121820714597368854150343749765558359865568456470606451487055916150794290768007198215373560323000752084745581334150565889441204558915272030798939692434218649324755476714392979293860744600501998162941896985162272161379338421314277660079071162093974622872928027917455253064775914782217260539749217930328770364430400705381229369387850325886532755700846705445041225177040548980299535679936292164832517829766256967421523070497891058546300639232280647439608122701782554554959128031285111572624975237575708839174325127296737889902839451481175466245727696662859646142624805938510552853950107446357682567212263560634359774022707460101774936715281544053461576482994800851249558256834503221762995947831744639093491686295612891749873336617665721027252116014818343839282956929871709640699532628116405909370806874812611588553096852408790392772068464080368959914607795763529147072763500108856125289518239325443365466761738410622248007833895942647181825021727200240294955644262569852491828053197806642736767874132705332765731926547017322921718353691134425995222265184841151933570275410538675693721573690301141102014511818850402614604603981217730871805886655745814180967186410127424636310458373874399249968606417285835352970360995762684707080827112663165039498297307189869365758066045607679676069801361859664479280769274586968773360892438887640368973462149716458375245854469985567909171350779169599355838428692346380970055292334600797660189686361250148522586177173712305514416018385579853929536080784962724429397362410506960323384880952236432131488968566228360326440826555445666163626288179998528450515216287982559111083100981291194324203310113164181052223552095673431489902926456677080567159618725658525818695792344729360979697956213722620016708732784388616674600121831934841261300456715469553503264948115681984353599642957102998305160489503711248535043669467171378060533710909794813319839046290176091927381643225001563078519867921727628079572361374631186428324373423937827362293535493981541573251538002299075083353141725528594284695663523807120978119206086147008935384807842724924852670733156487072506357445837148460426053431491304641788481123601717798551604435728545466577002932201297100994272086924632243219845264377330815122618410447663443433080091094136313701549164273916271225472659544028217059449557428123858726900425539509848834558494788924672195879400230785177158104216958695816657338931893369479542781329647101626987412585121963469237825121593745677876827604356687263547867619141160557290412959332751743077523555578104435515891608439967143202812139738262066658399238383831714894539019737482885456525171598899217766348981048478108393737351244451444100861345529015670743109653185027576484585782755859938747499119558042748266639425253137787455399432931220060003888833512671574974382225892374678595279247135891455056334546173338606837401137551090744760133937084874085677317660591924160890999198550404251592367383138548233815861169468921940332780914786313963571911143891683640445013129519683683599366333373955874164825741436057352011730526249600217112200309782529726802945679748705905890614661668830499425941538062950459420809364083926381258554414910654104892703085510692770438333827195941967899834958750099550721535312396853660919721843292369722149192361571886753152328358755168939134157588348920462913717087932687130950181331862287140668787699322750468250856475629836746473021983638736061769188573922088223136712152711410791859417393491891041605659967455850611916647987253444201550979471701586615513628945939547718782377221950742458017018206123543036915618494813278985742015792563261674140727805349837735731853087546154538898483471037775138799405529801858341659181028393882315933348044338997336220991464342564224133602115759778602062616749967283145454083160080810459747445777801581110688224365253514392143464273251654656259823205350615852257864937392161504246451571324426129633875202670891472706413870036217541536205840018853471277323436470686978623343838044463722364634401326972956807288585166264663381626466514653085562226559032543911259760039164612950587326126293436824775382346491795870456650514027220700912471381927972303322931032084292246372892739642211370555320750725090155630903708201446166151334264203622685047030781457918265214013201564591620088243183298521402199586270157929198681171345664541535047226802602128901453919197028482662362959166036203366454491989120451114064381197854852202881230342253777709492599835429217192611683238058620714177947507742882505311754172496571740839668064887670925479046571328738879518081893415685387715364667649144231530545035964458360068250035356440258096857212959697178869707772351472199560910609189878861239990040773363971842358816412887021471434915024093249846596771492317002210796351919092778173390377515806419307795370470796424694522436888945285410935022517504520573653323742697047481718668711102451171928501358616814533945326801563988593890602875709559902332713172799354636884973749543871845002327075920876805435827932570893457708081556269622128824985771284324809314840958033093286525942430482377435063695839600679429523246914122480978198330777429258717975337949044591923064766848060424008550255343416410839031474820602019892570101686521982713291786959194461742159367585061282614674838996188255335133637965475316567756960106351787360630507217226337268618463793840027422850323734257639368232096804459016610735102034692084687621663348872038070668616032895110015500822848073101171066794229574782141687191885446331900348299573654651477931004057242500706542637798050043940773656064241419452763169762141934872846938967789270294555689278034855962630929330839416933489570678786537743313706323531642036548645447619730795391774557538728237698220583037376762211846203745179582678986514360618494852816617375731585451462534593487326773126875481215016568920511973617998421091890084311563101490702647270088540425707834750099209163620377562340795136780675972159564265516000498805583369530714428416552296480106987921595848111574702734203546288787346860818775496437915504187155376058553213859828753758608640385378980320028906847639461689474873173463968066566482640729457962582450691396883195150339995561848652442278200230284531063825335843236592879130267885633110002988886747108683176635805284547229757437195087792336042494277752276474288428078045952916023175658698205625309990859975032208003398714158737274316069674443521716076927838704303486457599076387976435750397890382597464517972751647570151460871721415758606266563547416074784776816865031106953984585391553078343554023265032039468959416808533686045815039422271908455399528164047711472222848253023914336900577544851977646955673614607577173504492623854837474127107935896398337153733831664441114196574899089043423108629989722009087151326480435579723064553672206293071717314721245359696051731908343537740582129327377040406185167667575275262395918017093366180572828757319530564862174925466888904910065562909532290096473072604452793939978441744590653904038502951241305563515921539918378724534412638854992453887358284419155709652048103858357001981713921988418383247822360611788784123943954748521327142875900054481829770377504627910692053607913773739405290566349350991405259261334416743176626012342542018329683751236996957831979005614196695557827020575852708544024137997727841639488827329247818672553634522923737678030479887712916487994558891431214382792095562673597556189387089912265889400750677729447564124657566572756349896788845291562582802202450642723985299166967673555205872085078465514425532109053346244139460915016616454771346465644672013379717065349455251449781717434766259124091600184929563791092689782228724187491724574578190498167933999469398354157897700862301034003676769192313825206848526004472330276757875053186167844543145166201281103976180400344217377607925290616597528725566612799106886368562798749191245602575128722757090189468945736196682264158497779121964626961123505302471879626840007044972298342643284571566645994943319088405617659811714678050774967273730809224862476015656291975314451043374237011446803731682096476205226340425656987551678710335961207111383363140444618363541334353790826856237665034436810293145672796212988737671369437424357993638914560146235374870217245787770825290158062862338841296566632830882282472490079818741352447807475543976163976103060828068673334170417911425361499212906217442175911460052041663387770856700926498287963692775415419051426332744424055991704894710121147767740406686279778931522697392140753140494981472752749080801501103545912839918971843698532138700370735622625430500356922224353738201014032346505114178042140011325250838878902949241918692243676333880000732291948499674954246593636300641046585080946764622220979376998860077616537235685355422797281029899807995109896616277255506976152423690776830328098495281540472806156664877750628292756228576477127236063263193154177569638171176932716395430133915302989870342772816081383413980349049172252466212633660601603551011004168010354110996060323520508258334094418653814037885294694620429747142504275559958927492820201708192878665483602777548055235883121742005312310731627015821541871342315526625269479141641921621689377524350790903762274730979841725506536216114042331469502966645531869006234522358140087771266918873860623319878790939340922482872254441983096743483012586271214890676530609813504799476574323627009115676744588927746274691726966649376710554015673352524202026646233502463227018019930162893580444156438329706279281889732833809531569085005501046683971700627051860199264977314723492737192055139520801774772351776388562169869903779371751740924536363714007369989057955162496911219370948638209265971430530538194305014024048478482379111346331303676290599617352043483961112808984026360770069068114569102473090760273246409620380404972279837519308228897110670558834546695716092429265532474184528200127672303284135103706923784904776700228399617655624248884352308916083216667840049887522454922753848028031703224451008615303729483787825854423036307780529304971209032111672444009722995163787003190588673320251080191123167796033448732878134520796590992639258475929613662216956752400891192058151829747502838963950616912572409549470665569867651291767285700478275600283005675596259860419107095400337000641582420489075830555993937908762204789370361631145950109923589504425080352430465643111999089830895802266082887344116163502082989430437826579282104310234368871136574020405935808561626516104899700369483339641024444201400389500615334430602100886289383940568613719251674670055243856192159467740429001446020914794777221625907353643350271389247461856033215875969756814581258196896281521415392113482696569522361979204741711673075692546369148047007054502405843174027483359014224878832934598198320225143336724706982195116385221576205376669998580745232353710294755042475792345596709305969261285370643174736606781486496015807466307595726863946661306143297831588000095415752280609640000222962310103472967324326177713518478279176456243325802973503994821521772906605734698767539116445404663271575767517570137583471023701058526877419606834898419553615840573160548065599668657160414828982076916678205781756533318045161706618931884822036487632013914873440491009079472798887670069106654882996678773855523530220572936582049294529401013124207791447880878524109616829314652084862697356425119258044379861271958066899989346954311153411239524014995883617142007371019008588161326884479920933027439391094987263888268105178734915088372259384035981162029358986460466059297663409772267879405568887091215552806133958590934625725743260820612086163069935007258211804830371412634878434292177269278286646482679012830336240769952684840348113082442087567744393582367360678542836086318372875803634495825287118310788507503091329396612758719185704025899730370183768331043984644899867345449273340693267944604798649707508635197924726719457543509435610687141812988917688842342869894062663135641552999789822291178410122869611292727569315219279832982458629295235976903618318281473830109914239375128413642673868088786524250376562310404133353395498645431308814887329639961037530516656475654244809005107884110946020256192810073894574511899082095528184633618378612391128755734535740210368347997948181608269109140320716477217350425044379249081555865090068973252978832057259987184874277123368408969644570327896091530874515524915411204350969649828732524097348503651492955787529567853882370068056265806788897988514832582975488880164821096942614484190066108356652316568092422323954684414822311637188097594304339467233903788467810640708160709398175701758329944463792433396247777184095742276665455425193534893955060045469862218640999182890868139136741349984651461609806094261480038779219904655399687010776928883873020761104824653738207011555420610639363897730636915645783175770942370634950201723641268227618130090054076283994264465473010327096357894343664151729676294131085784310631935844394667720707864251831461886461390338313066132615671248104341021176877983944386928907289580953900351676143831091281342256403571971604720166170045700523822904742854826346918043470522392765717350598436897879298955026527611278830758551032543035485572160570983071825454496930735074193733827883357699819979836465431501292170129136192016059334231008952008634390453232781196841460431429380259110344606932853233813480168921459120403023960687031950572322161764180605412730604649307584312637949494015167009131126656102845016462585954540297050368488774816997176558901494215816850951287713521232179238643153355139988274657595366067636368004810870658583923233026630598785426729018735952386429805967422114808376008994774831165979176280531206087964485824726739772282847867814027903974381142802963488198991646514611765966449591308705616840056849331768012045315615720162326861768442931178649758172750127053677902688626820973195230580466117092491611745449339307517818164757414507478587891647193788869546589986954992285141160888295717953557496184471076075281034781485473102073399350204191173743922758472630859322209806506201704878087809353288057661841411977605348534863737610305103846503996348288154710515884106264255320164912159110873425851534480032982637004792600277203108428265157474480700457771135480939059607121753329428711454376475996678477100164286978188852446120067797866201558197151386860191809786678088206159375498485602295277477709195456863629484142272238356837623095382296568506479575274564180566927401098561553493175185067414011549046006114373535701598830325918318172082529706649053178745645471879729460797287543326695746165077957317822322518144944188100258064910307882515302981927693385491250623827673282039774891390571621355556484521717964225292112926731119914281918426522153189005469023813833849435689595533174499840701420538468095348916796043811157223506605822376774138519782548018377794315993041889838063402405718085865608843549944854838900203975039141155647607228793576630682479282060917503446144869196240485028636356841836632408926846369493237572791361351591337183606152122674093540229597829874863624558924759529056391821601298336660873350340962229217364991228050323209209078844669333347103824203804789107681604196287251975959570336809791094967517305834222861382203301193456053759713855492278149958312442451040182105505079936539683742591803477103745433798220205836012989163839303235341197520277521216672423024406741581464438447937483525665825629774676621065007879718165433075226819888018577187720131322483994914420891482265469562824906935508344385440198187907633958066331911966989950301695500253990837341441854266763282772326300486561078858062628357619505760604677293945448856225576387390286624819480675765230009013695569898862583980538305351786307088510192836290436976182172295462667240868013592994911666674527687467780770730730536113136241016501322587695419548626981793469632077213031637569716318943850780456895014178039950018011569803630511004178482589882800797139518605514543767256621976585294931329240949750853873004772174113071352930637703321337706611510391869235106144592476340144396777134446453133045992889098587659826764349351499802064915769710557926586679248305558831470266387390382857651335774817688937927540871627922334760032842931024962783660731292068419094964508476095029097387421005492035679456597293198944634330880317181400173364477557807189806139409552107316833209770115374029424719760677179436996866994402534827744331737230825829594947261798199807156585908656251447872046423234008449344453397907259271564810353187393866100121826772326697746689217243995787435604811569002094873975453345869185797472201258093644916294443071963409959345063729895105454357558414738301198242450181147903308551626629806410606713530903164169396230070665972684184426309569743407732876495592604777686343152623741637964342210777811484260224993674413714037816259148473670691600791755848486372934588354446416809690381709073299778459963671852179845446436601089080863147233665941784622710445061757292081523866919891519191941510513706484942920559563608405968969638920119837533048293191213099101974289234958126039309713056515770608209300706409803135830503611772491854093461444450060551089721926073742477322482807611870890819480984664737155561070074466951923891432878215520502834212792990052996978311858330942800305359440848193385037273847630041624954542695203088957824305046797674528014179581782219306578687039753953496853807607875277132782790906332959804272053607099530461292525394451069152534511155973222691386377466029568446674620855819073836861547380604226127496783719268434120132353107191780550142497310472963379940963595386412961842151403685960256188619202082312659075565725935655523424851576519268897959346526849902186986440955323117186170501367608956050288738645999997804678784450678519566863347884400112957474720769319236587364771819547532010621889100184581332999954939768870505239507078411083420545346117321434112330657555567374311526598091120138209373508412615559826387977682063488530407583003517328541966949565896440670880200706439059638626295878765027526777233428567112658952764418834251173329022276339484941726557637979435511401272424929034671236617826077483788339988883479129243608577554695501093677079917218654555238827807846899416424772898468701730918330680447446972618733037058538961900310090773559180070051165316555710168524104987228304042687867950548154121880981080551257531542201933235584370735857841475385639767104500130439776211112562832187868052236830844578621819749904030969865073081371264090294023485512601966239743784071803810283266041898777379501753567869488435001696186555564701885772939297020967131510999856761594923516302674454060296181508698525664833026921012815096808570705975567527804569084136971326323333821586358530961954655564495596951144288825789744568272573053940376713803110475951151362850159344868090779240017526612677306321620296900021215121097240677314874041298803590026457088202584194795297017453935181490854667462913160185158623195220961611016667195936114400200990283552953615439610449045721145090851019666748316401525295510584639615258500163132898359086794959714182040748748112015770413529686108661961398211331696439663762750995650957641739339902083833570164587560145702377778079619311528327095773047149031021762409350622896697729373140924645956051145477235788406673744279337338418650467488476813844257108590769403353817633168627774186403557356450024823017834164058015275191162937487078057900725962875106624834320526661857728651741605370477633775892465867115407017023849593101832900261330806409605519416277945854181033082041728404614580876273431159323313928138697017137860260846154600982283888864922105403460068680065366301398715716290297669992148687617491337939544933117304125282558536785557523357677225968217546265843190431202731749299197192074057213037403732541793146990279666174201116681124188664558043873950052273844586584497488867203787463665392494586922553099337499217596539964708922674993669925635262280008364136906534956067140409666739367357223075474887710114627563298429858829260936543528661529092870442644200686070459584215397197721716785262619378016997562248320428095017143548877019077115304216477292823053892278233849414485758863511607365220657028551244958533143160601664822696393611534483889967329384478944319420958943123463288718940249838388400727814526603716240467250450452742773698407869769434173461570450096377000367048556939387741468400533126607565295415880705515353691199159023889646918383355377992237023376313326469236416178441118796770712788767616555054033729686441230443280164743134601894665621767108192804171397536750753473091000266244851973678062689971455653273452958857580722013432655019522174783062839809858226551853939394598368839500514178489275316225349388604795207821274396470669693342326648218702447882119881759596495641345951290608249907521282444443205071754756193240367106041007104722984513994827241643185527848002317783694895404408412223857273973277852055004727366346348121223725813354011411466841538977677260253326558028810781171687201124249334060379209441675065056931756756196870509877115948521454421352538452253794045508924675785436434507052154946378775692484313115151305760512215969870737303680303532221848829810581168973268823520129783666811195667703587527049981613896261612660219081797904464780123076702861726363731544757249215248109648270399040028712271836443084552800987285412486368474515986759121746501823283688426037519999247600919529605319797292722719474324239298993129455615631681719988567381502983207335319504397154782588014072038594124687041488848201585845365775655438583993613599716600380957520736906485274755759266598617108445905408300677939505624263048608018087012278151284141899231741871746105589938948455210277884435236931837288858021192449887033579218737325017015068951230576791148478176186704318594179267834872786256702235623125027959764065453980688139977881532887777817118598165785220211822980917540466621968185132051329369953991211063898310794336563765477778829963070993465819226815395309945272218304273016852553058861014325881519429882554633951555511056935304069706527819295053339329739719248649557357621262019175327232004575265225951841419018330618508367458422148075479256576661539377610302228660025785724550543530311056494895760461375940836123197585027016666949238067691131338509398911147187496744572513846395223700474073122353173073939350902991134632059073571033056753807427573713010488620184120396381700661148598483295142865246711297995268734837103594472432408309617037739937046058916215469615629903776822028093934967405448025458541191368415721470248540813929857327507283942293862755557596096398496073583232392779733829955888960714875150414444933657363417074555194012080781975446435717410757588503030938962019728090198138553519498220144926218714209367519507297670177747417572410342054398551488622378567013983426245697683321569958668809180031186510807271161818195819207504503702762864721919725197462494428390326828604274401362933111167144739421623572544717301525908811560214818659102943557110174973925122416732807862307531468830255839006672991330604120701807576964790332511996111832273764594997194244757703765509385250247895961055913021264107031607467783919467597815118061428978672051099764054278105475088450989787685583361618589825794312974460679279376736224934386291982049662850461216538191572440036588665276813880630463943140433418889534751676905956040877564325504827827487194939268901582452859587021005457084662323389651004857887763917753040221425808525205143223049142904106306607684708960044727717873373378888432640457334781310603434418870215408517965959663834507196384498164868129420038461657815251818732935775106171259579575860152310952994538308851653894966231950445814894064485258679948920876937233097166206082899929517121469251409794976671035699716837956864553735289711692859658492890905920662446699323330743863846453577044147131728269524549409572408674777342767256738416985445427266914535252313888421594019354313408852238298824249338264270087595483674956340465012134270297706255816025035940354953733301307101058397723439149751567287945462380634086706100277354524032289515534208058134911965180511353471161166339168252569861827278787007134233475966643742471582573361108673572134627779653229669679624337830038103283236254993485558698317423090004479311514107245919080196887836791927235551576257256328565094962262210419741415436644827829966058016074109634133183923008927462372993927015501796695957305450343134881414086550102231319234015273994163423075592769196486064799108166577086996134759354050581470897693608954315408816886302240037989122728049022343022887797800871676603635952552096473552110733910060099037724354302354982458658037341581340448584951333224447398834572451293400990890084259228831545049347157034524547361097792152317594027681727408100437094570543117564371310919710791395715254514843594815996926362733298629907485604457010306637312932918500919993110853844334445268238901556200394730252733023619703900032229152810212385659561591308180218061233991331703293401991713407412637122211553840517486338230737639391541706150235531138733848260457445586165616686108532616867548759162451765738215642816633928670437780872931751827449789700176508555021147513372137348254745629177478888135544724005017355820307865636945249087972076578345269106197370770256112453472370428579054145045764757213999659258501606513133685173565313927906742715816112824223784593104474813159973002186348075897605096249954266154018172050144348929863680418983070868728728355150183372576406757824514247971563991826226258547413177102425829490656798379233457165317314828121598801546731479432109848507667464315330468283827791150907100992502509602072414503790237961974042716562431678403983248671209388162964369438287169334491437500820467848193210531334538969634965718768622404724802942133145157529283218538741328424569327863308874621223358336689812092357510070487265167619943437811370491885952297695167548378082281854289177084207659148852420860161558443634232345041318193953802616024224362568070588178358737990153674366805071386842247774355393808572338861860200412696445662162861484196138158096394022783925652487689547434562585281186426459007832042286466091363001110874797191430912665895284110775143640779122085511825176795642343305236714038813162480205415886109603897862831205469276934954041628568087334893010990636690595545027364731338869362127661809582906678902325059902220658260239374530703793128933568061738215164111137066183088403057810248062795572448074310919214346399436612511268703006146531365064720893309773232987578512517999682543438000073139597115743329584096423205109683521427691501171221470041863887854534725618075818014227563405861064929034172854384638184285645943837311036228723101745544753368903366497951371434734192987390591497672284153422010736870402618856669997633487698685839287228335770521454756159343510618290645893219339721420726806735327891031782315645204770721625874901601526113337627720226477818372323070668693556335109407929710263435159567126372488360204942682916152161343671355380389642210403685261935569083284227810474633730600399814791943863672185894951043081086637310441470261971349700980347598558190027708388712313884183996289491585941194160108046880507864698236255724542435450192845278135092574865023243274236451123038005534139545127041390803301796899687130752023116434382333380186020317305028030087329348825305362206796917067292686712146720078055967862239622563564235194943630977493368135850206535361794761862536496838200592815464898432019906900802822556347746612963784563776742962944624855827863490113089103257717489257268321224100893676818585557142169639500595000513771098979380505104873954959464872801871271338801699967905246924922022929817108142957048732441128873618990031205054649048630433914564035461082806077110839612687889102288298128490181514401037814892073871083823063645572799481124273285960895019501619478240230293018488305054984014033254203182440690999002610575398766620613551894125627588047400475289825909214240090312952609656563773831271186097604956212077788668554795104557204054182968604352404251319818808882005285625766980109507192301567803494702847386673982945925456213470773621758187177765560867598375122285867884016751549637717782238765697257938179445088227650557254283215805324442710935239315427600410410202702195154194265454010466900883027385911586969308280971919757521513563659133262668054513211222352941499486011888139841333829853310235646842397933099675202083166263933843898473708511057911982110638911581334392188345853197265906350434958455028893902077370827175675872392469752105544378679026961126588981818276602531495551294680934783970330915120275101285759772006644830530668472983612976568168332057882639089481833627798598031552167301392949504851815705593775461386713313287429319622978615093636475122222993667923343882877958021805292879534234527424123474245468075032004177372333406661693102177338511045645728232962922982629664293453715598798872609947453854709983072098459241403351870935596652954102333561169671743481050139112630255333253667832515766531035492291651000861634105873297939025859928694863196389223894405841720790971567565380012201530077579908914030753648991309659331874917129689133717628884728889489973835731667987082507498183160035423192229610648781187580036641184749758120339631877814523580844635225279806609534585027513396587509780800641503245163868259778227250170154158054538947786023076322795048513388736706205291580498228015103511153898475499202550385733462899808836561506553915215230611386085729049081413604101060700273461088099623296934445888213283465882987501894765321810659139374772909139581635560001402031583047783047023753153165755638092316144244840832992636221640880246247345901614484385936012202156428754653012488168803614262547225853649675575624739271454034459105401838913410175112243241178419624636349308603497729412532647338120348226794465381055576125342812502728089902835703296533257788411012275258960793252781286942685012107444742099780918043619871795115092760899098285427842801083150377544506586834252052411634535846274881040264594119611816515625582802282246592844398411789796511827984647179459076488830438210303631724290751697168202580643802554737812431807381157418832199304700249670949254801261153142605263881546721737672020040341235931720586520545885087985952148861114662312458843117558061119532574872955567567376166167804918183986903731148774682990668458675458856756179040257770005385716324156678218298807828381244963367639100277738653739413694573303685125489562728734296177292961246431613884507540716280493720040075245140002417524013086040797766355382079925353859673787140086775874132269448602056110234689480130159479599968918535881394364645875952386556464680368207048012781403927109063681277514545703993221336751697154027953301624263184050041460146160537481711578536528872778077918693420755124649376667835389485611992144843298659159239734114503718985075751889054323806879623822770611264091025132711022003611212587109161208880796929629009063013446130706830620952195483519468564836932082931467748181106423772740844782343046123650205656154441242586269661902150144631197083980802872327489530417806173302554129369507743759087140923363671796549318119957621827164732644652601125990509115751796892432819156731318984555233686186943116928761010321524543592684885976489317202936371809862783586337801932584468527759015827789848186674917858478669147606773924109325766009653345729516099457049702431710523127398860323401184348242405468448174467334761884810840117060712726693971474312921294814591912243531155626301094066274281154251076093539770308680363440250579081550198472964221527381378843026443576859126298553539256105005881731249935503603903531313808985179616670852147947055258751402883647925596344054807331469973897677569925076642446598274714711301164893958214547052915554321576191142637538066505294274699446806760074161040678307112656576612828805010614446283362067219480914480808081221652488768034811294851046225727866959569810917234722635077681481973513847202296916229363826073318369662992577747483865283089130628961992817718920834935530419919347697484633107911448903753855772054066688707477156520427937719144382854688649143659669204649283389401384572170703256086383806963192590011928727868929640555259312360569101646403290500823855630670075314758069989706083853415806456147916868795489546681916216890971257257001673059057239410977152705875263758586835398724143176170374827379190548871230204486980718061907179532490340110602719107936170957658868889975997401121795333231623285122031678949533420517508075465999404868856335635302076736769216976811185464451057423964993631171595153620707150960626400723862007450428412068676483398189525182450541784382689710597020716447098716180900733271264575688844150496879422551528916200029139898701865580695583490549602206466537230284954612651773604291314269960516505575013038241852699462198591105695262016598091809414436729232899525003822677152247577723293442824123140381745521660172445031640585282809224955636819057469016213570483481091157777252159120350174572251268596557057312198568819302865326863265268621786107513816193865903517232470555402785907183380113603367478636748919731386492740458967813947637025948430721653735283278023525130466326556777380502452747433232002139724612884700652560238062645319261125476840399694327891936565078047264596958989295129669401978314378724960376111731633678269662991560155488532882089451565342169534739285830174099382562937713594107116205624443200348974351317180647182404239289428133227113640620719947104165380940810377820718790189193338493762130502545034802402658931868629251940927608975607277416933989874419640965964952366538875749731279419038218758955834098891072858650544645126614385846042459287870797204753276287747324867619720393777826415186483662237347463417245127190222408554135661855988692932122276765858317425195224150673679288435062317446949201986550078909955400892953017375015798564668624396083104479803657408159014076071728828813509563209845563950474496489497108628365986692622233906502485276169798172189723009165740006459158908210444100713302473788814766389358442161524771928271158225698144752683887470522794429916192876663850816750082965340277494565509582800223685398905967367378475663384132777906368199631943822557479672644085851349766493425292251177273063460184140742131954667125732830852532071179751585828813440521847398078091010611099116244033116804780378039695066510590580688675254388395956858814001509317143104571224674060843272202157067563275035546159178042191869283037640351355038394208974105784170950149124199615152206535794359854434893535875724646468078867441543974874727386732143547792450645126422178854256045195987035615431614638443461011025973820241405296934603815798100786520018033550391374222176301557811934492439660703275253204054153481957562766097065535208756542560522454902109205369574681512298167923265799449736575694764658851398051988467315641281947880849889234266175003020163032835060158857697553271791012398689917572345093428785035713967231229934279415833824982750892059599669519646184404575910045939650284538597197094837366850683742114316499565749719753024967451337932579760652788542768767133550061769881241786026925543824327055883546992835066414032701892683143521616289961814674413800232981596818246127618120839068099143420661756391644369296553304408116656457493300230361196253244661554905169816775058910916953217225345105450127305762303907841306268575167858915853012883379335110025568881605760128022059669757115030286566719832726507256708070280099246464209609980841507983734533441501872529850772717932289042024686386008494597813617191665642584043985262098740270881375912614535450524502977588469662806001204865482145667477890110957909302586586082870446311892090450341777560988976925021356836748155869743826108102814293534038421972742258522381536573333615028006603926905051169715047559908249901577556744722005787929920268481773712696519550101648656171081441729902061466300666455786298484397766992105889105398878406153269231637966169856561442416241505294911932935137320725588844508054280698077682450552993546622555919050681214987092236638416544332831956381582431689854414070153523609623142740468323698569949861342421813042948821548162694632719534040598516440804281508192255548370748787506554254370926803965001893624047923422900329902568484023673953760315266626533708900072502370843785481902661788353648252177838456081614087042372967139697672342464987786906230174520885824325305487314088182802924709442187777553010566082642357738574254986700106574430533647644763985037657394758416548467143392641440311153714202220449641339552552277488760243328676920903355083175876250425733797202806656834841801105986650564807014409628540727343046808471987688884357387006209368759183655623938403606690682803405670851836410415929455915805408142847041419501996296596100099483639118912641815108341835959104125611936727358956296696421793547770813553775005378872307660755525025304919052972198558519311999022484865161956561103753171166435220836630537304464206710641203423389421919459915650930078854123661852706008271022140607070229002030235981434736247498840130690996227132551637374851431269924413245848588651426275360401653854087145449285736542218797277958196443104235163164398675422504682484998816203580541786357136109239572926848154946089765290433720683917589061374420606298478003288820270726248165274404688212443281950023487861473369197507530112388832245422528768110195906549137881147378314863718527712897736418129112040905265560036128624767297439175926384748662991618321421455763022947174149175889191405173059246399973917906151137605313155259572347227015913268580915784367874080054669991991479267213595524555774508415532776778921037040665659772563185577490732483580753027639748336501476406534893037867735083661950214512717653581088367802919367521663468901516811843841867879875849346319682437364134056038591801004469275002409392948458034947631422782197039949829814863376155624018086390701866902285861664294839174194426351217540547159538321909098701126424700158735661423189707862293952818540419459757966204400616442349477783914230632022505858642663979305669644829095005668515162213663406485465754809100896242918674774746791206601470146109330703844445406588055172121564923616097665906228775923768199916974069782915144938484646705393400571064856628213173637524985102526447930904499120394404733251034859143664876456819506134499195025003037985879348577269913420126473528305656559070959585692647945973277197834959785123873197269453851482533344179002540497639327010618018602279317940567853218856620090448832965931148848723840502084543298803886196623735660455740417466451661939625281684681928173289385567790305270802833901558463463652554252753586461972848499441491446746305170173093268276264677575322436166066398753885254965901909879738638598306503129729421691534248243430862667799028105370732652771969956222763346068249018679033640087822913373300628070031944825572761228353552166566977945226176196780224555891437776834064426677055085357258487384623190378137137583998498677606525750720019708307257012999203445308692779202449343029808564770276712331376121341165223295991807251166583083256624597074992637311532440554487494295849872416313083234789960348476376727894058965514221174269248136862776504817877126122527773693358226591220570217147817166377221923828965416751410267544109475923291700682600589966965858241020399078939762155049057155919486568246321944013355197241754999921139158094312702893853405616747434637263084070731231718530226008663809689057048457811242696445425706262681852118718305252114969924772510490722999864753766535709229680587189318729529506861302298151175479484168933394512633118819074369030103437359873025058846927990639803108542763638132367903592847621577322495092867952513670379564028814120941526884733694594714099744260740556789513302728126980687159327745765601273613995011870572142510957002023260362004441340773451371262299536329773850384308417834744675516891200846398869203844486878561710114832481060570077929262868876220576187481668732020761920677206702124602651238116402481709193622628916017044429442319088319576636089912971832637032063205927563366576451711940843641104027631112561453448249386318411432322683245350641425663134898091944506324252389449358960167940065593034503062528170411866000843229348721169135820106684799279841301426827472032974608393750562565023617603109383267052756048967014101399791410866065992986641578970159946415245964794736538768684909753632853765985451661653874929205207334082959640040531502838125654360614278224275777926831732961176350369049254545944937136236698762287011961980371726802535427166830564606630205055771376205989267482283588502849313197399125587012486373796921541999407917278969400215709458601221686563631590240665087814820007046431487792227496922086164228348351672605379856627576420432759728274730425458914001561730934985105056410123327411677571386627543680670096841799584735517803353974302442212642375230125726916820376231052864933862556650124639052611261897548148944913472398071568487167677162495708332421246434653462738570224982717742340765856672667317221990088112644792528674065944655277409191001942723069672211364443882744121332208163191215848349716857665373464064732508283517077598782006577911053480208991326779074125160428047936974830875355560693354998648092429054629734082209470815289141944750518204054817043978807800098071506730646100166250951887950137853125098547880938732795814521673469811556550638711509357139913111551458224726385677540811690310184483997782562289239375072239783579578881916054646975600059889164156142888521018855880471221342939900902354792876911004845667329574878384730230570616784690167019236122461489471896184588827007231237125039547082499687124626041072570799504151715241782830611480378582530224886556946793255938244704990882204591773474604661128924668362352842482651542261122681301245597559860239457337562115946994925625607479553254207146924221124669079487243869916558844933907855766149219315767899819250724686490565808229885098597468836596687894303831499084773423684130150625572497452074378152781923996581478285770369755940526946853145756512758959369204057767277782474527852418865192856043304650736190307071542898192980462743902552636069085530598051674668832438381955610782549579849619401224561418899032020517173647174753052340938575542969709083653260690336729449429633224941023236311807405712573724678731798056786571228191691132110971248112087250065932021925284244615961668152956321816310685802781006738538379263735127696219160263900049620876143320454462690104923893651082230752522575540361011976352769998995314153830511259196884973328978100462360112308305167532990499647477357082110562944531065398846877314161942958568263848653515430702314082900504311065168434048239766724218584206772014935441284901257671373471039028961260349457548616239925537634979415202352099257455989117987748565623429172839057407288864386170327595166650056581966549403611610479556431763168875708412176741646306478233936241615684726087240248968683172476056898272958153547446059210505401008416217564790210118160110139012574622245087469203640734143058328723121958080152219788670022132380197440259922941747506348566289487271141842341633541126310056002718201018533391949374121267464152300353321467629288754405047025062797482585919497738970898704547103563504020977143665910463532101215123607435880031200750425136763275507414887611580331470186209609833510967663916585803018120753883136492834139121271196359484298812073236413463729437273276723200847988429986783791753313528697054581998282725552585114019610477650149292173049107455955378030999654384262769537635720844122820440571241265794310994115345864511477915249528458365456834064486745586976577327935369714543362879612398599811209558343396490170938829255764891064956588154780465917201301969307273990880860548339441102164866184956515564307239345307112024749984152402500910154869706825561977109093946850588974899881826846385371041628975134206601696486830866682102572229147518450582728291833710649311376291143963627592891071053834397095426268036557882424295099958636921695418241302021916051845477993982213839002021779692383289288003919324661344846276403276711909886654393388775094823940718472296144192387618130971601116109135568965702457437367213667118440606013274557688790726044757320206629018935035370352958758431259829641626843488295001277170929280817048190171164224721315449247695194162121183286692388117733402143205337753940789946383446500486611332141257498701562781174850026858435609545814668789433147562377410919868866438816957262395490678225805703294159976928743736978421707671969137258129809340525876085778128066984164084353554904966051262273257355895693025855859567720660648159190246582844046310101579927738824478102218252029203696748364422472090216706448347289432266294880809014339858530457528126877203960139432738333467258794625622461226529861220739225246451268748530730345798937777498470696029686217577957681202338404154814354549951223769311888979364699321078738591705153979026719034915613196635956430758866966950318340031532757599084752268833485100253979990477927515538128247888367314085112333029978188207060710137625200954973350660565365599199349101946349076251821908323796784759565215718224864014572453311769284359095887177959521256639702859739466770426409669452841357000851007405352339154693325726750097110394092437995315935162197056561380301214547261486179841482125629781029257017592588534996787546481813918743192152331237648035977201910668159490657421538141842566927474228465070116379275451587050765862459567634730148772785228858878663836131003962890685423349719004593989332468551743289687435217535805212445074459236614372824282796297982868160923259393260585407893171281886009588028987641391155734245844647721996295778369771003736337379097219242562637378198961690476688723609346343718285600888553087524641010652577709798415263738121504091907491827575906413220574572125484016868870740045807392124374887870186790950464923440902338302816525309273008891755762723257494456530297428839565905571696425630157988476948700620960547226991037865859710671970985471249436633034592356268762116031903273219120414803959328556550843091095988093067391267610116242226883552494175394153844650141735484052513422893046626355529006994653659424577851448825403981466397164951727359427329370618378550861503632930121012244529639293213443442895994907002019930999928616441352762582840833231836248315073914966556798513739869170523388988255644631037072775073562138373995174795783716181309773995916470789325526917311173419252887032234671314055572945046034689791345382522711206713139293881558221375917094254528349144067732136209147407695634268393379207325408130678948724267759905420018187293967861652407744436639859898401777205906788135829384084880181066458992395632887857032284701764295982714584533369758197622593482246745928766216406558057492957571839779007149870034955083460269639763195967762755110416855135664311000557415070347392013617521099808115984989728450088698163414836407931503344637139645073732436864193257688385094899159752997132247665021376779683919950628579372348635171346505262760879994302876534054240764603407229460908587178498314660852993546277847977017375052396200018902882385064549878513930022026985173297501184814788526539407666719824205044362446798913749162120948909281255640175611709276503784782718930631232806685239579811866289599243460119432867819240416384188970803858035066966840292292304173115641423816666069746593182715265780388062188243074261304179743672522237480152642239259318673838385636028762381706033577138529235361011628832235231941885416871700400684850607897171666010942989245182304464627113338894007078397508936386224985491227581333907118618872645564453769045250948274844876433212721724478950889323592219746354386847295662417943570236795653734816119592393498493639644232095023020213256269663068664677166293845999524784008497348631362541241904429238631757168798126813808674622475659567961394755156629786550001716821345121342015712695017280580184882654961218600738734927413453887127735156583209260175203841206476927283220185655569595284121535016650624519333977263270573543370539658392669464103904769880388069663171046001678626957210531640665411245025148180488175191922199831924117515943319184206052995247886161079842667784778038160655152399152659811046718068590822918292418377823754164563206722490040966579363725785166514261000926125684746054381418931935096595064194238129062025865790762121917532196018879979146534445535690947794837634655536650956839827640820511341092966815581454502346913839530687501650932774781830496660455914035698986768113504695626104534032762316423573121254198247450970441704171414063480217663114269901829136640760160484743646865896740754310129502967806286250933663562500134152695894452489890498322672965578605321863953605259448810393114450555495469797594612686701502241744530851091074313739392906289168484019985107637815357063535099660858753813187066649906477741868061625207547802790793992789509592772877290332854269864116742532198806679632171898194005270565004520622500815700835305043623171993556623047241858071817944384973881777842256758419486606820833162737118747655307175101636604845777047052922499992311617530057463368108417558091509150895204571739476935128268722056054553411722418873846157345292953529149813036843075892750029579212993742433123588632596150459106805339635433270911125902956537331810144145803788517445625390881987394140362344538559357402160854600387097898618949618316778200027892315653219418213410906486720186742115290933940307637639118104189623074709518861374057473835853807343829788507922389106839762583013401541656812859865100227194522810197997070939861546091523279352361422066004734518106181326488658438927431489186838701911854753698475210646939237965700289923075837799704339328255055288091925819584448455052606220870842085195046494044138322473578976336210185006923245815890238583036737563132252394348303782368218250743070816786175062323208106640303387101289315702838211121475094168175438596269092667995412416893559484105200367476864495342455030609164089950933020523110218000240602962699722732489857355514531497594942023799684252198266111401427720820909008970121402552222785331051616409466872516455379147885527412824888517707028637896124625925937452789596838624610924250410296567985775426661720233201206006286501760921656371765553442200534594803586744801089310818546308663727550120881129997534622662823940861899201134220277056474723987533182264558292323905125172052577303962133323028805723072924155646568246519323315819686452020360863526422261995124431783750964849187355606519970067997775778997854631485814431071375040291150430374306893155751617780833463220268632678488787220804622253726643141877327385501273726921635193049932011519777190890698034059219948525054972295601439471806198738553404414481242508322641449369542811428771690540548166935667847218665576306348829317744388650400255358276990141024678156309993695558352296360315453319659946241766718768470343694931046650081409525448910239960806533289175586046264509027967129207350602318864428016900656081641354179311280839223445611907689062677023920249363823808067161128764450974253832480763861296184431179588700899178461287921432731431228036422833811364603009218331195745168232180885881033305001137514683890206943311358329714938811311835689897040423434451579891622929187441330870800625705632633962465031220243800624223162632537882066838375673426877577983657934941041558168823695570819732639011184115339706486205593472922068549906632977319972238977006406246449941328882327339304641838256703709018927505273225141454864406125949394928066368172677864692254444514435802931916558873232810382644642429115913531776491846153599244490158964211670311033266038061535168190397265320830887588782941266521125522240990712994201041216274276113794204726084654226536826302140581136288094390507366973813896962330507810058393663664329673976241934457341625108559673894502575919590009445578142676426339798374329787119528434151941662278941721550525501988280844853211945880016359208664059515092689805013678802474954659714316023438206604141504445828732385824278052106126285503455364139750695158315702455140748909270615082325140027471313644572914286988456785213291409527271564343229296249551215427517972841816853489669799125707297972057386469155727544289595718134356430782875977017149841161710575726451989939328258087813942113998134036759959595224967432813148691500850101283036579530551328967193089183127162750566818658867112508568906089448070859308381757528220820809642542220160385015428567281608715379777806439532262477294128192220802965665001119392536064575935414596163298635474275403444698556120238595931733956466300036919126447010695463604109028973907550458752625302072618361237215245259790287415599455325286754067935275041365542012975772475243547769452392245845439233075719023334136596674055478085000690486234342689575586609140223071417922637502827072049175541689630974336223747526764504253842221798916791710750477452038784693442382991953591584105650425880773119923823595929917555463079515306324928874035262124920873861033702357236395073427668226824855599935606243302273599808900553161252118975955502346489295623883523765576589135376656123593064946173400805740466971613377974717866095632302853804432789884552329868945142131444345564720607185797907056101592515515452029371565651727615583769549531460981638378947749433495398933639031299989064393541369025579150825652183547565298299935986531050220989218327887274183902423772808062113552637320697584477590288004871589540020098380127823642055122030609518629870566285848389407680466415035281034471141155744513222442127915232847344959330573670690696520846137958478979014577946858598729018947110858282163363549619330333991575277722004873110520607260885175232169051726196741387725214574028287859260198902098497097237383517793771873534270389470073773800865180558802204593750875373688675281627009065389174976566150050202304999129974564711883992421929893565621745898920237726267956131575197969642988203264041242127648054940530825112373567106672342405877578749524291227565597182500985549402889628279239814153591480921675644876008217903001636617199539173688152744658527478780917996162758717660468624387031191274926273083296843036967849391514718351539804245960961135393109796728243320405596517451033851200343490385418653706813176299865087825359215330155464391602998878443408646887004960559927701600308309285459466782368585484527941141098742931925689722105587434832760574853518903276471170953836545652070720296179713998840761936911520280198393847766915629230167540753365883502959184894935004861668710213287545875771197044844544818137811266874480346224689559567801079745113258063238951785837214217043679162718939518706258475441015291925416809750033688835398481920401595929322046002303103159935530505042214357268968905565560583772604033575241670170232781681525120613706220506408489763620291375057396614804106377239524293324794736727129585446333720640359105771639951612445239421591111869158636604191606880760045614956408061606589076961742197705263252721207770181312904758844056691045727047850908412046443624568754131720067073994548238135692983203300100443657516285672904054794007640031161945690537620003533561765464089444179107818860214972695776743177166893500174301997842372021962820752531739521123051477510673148787598009760287080978332134593617459149785694271925194208756651184025984494608558412414450562656816813858421913869949538429543226788982294604966956131675249538907656012259492014209589745454652895678718757131794162879944628779514928743195147149193386196415210086428528189048353346100709441815464334243226445803353337139279915406513935816459070986922752258530435624353605354648906009404405714457900157803436841749712195563435204680605348165771717871645720555615706889874744559110910378184143939528625107917402226923113380365855472980209504807736694712159255483609416904865489867144909109454055345735931474356192283319924910447705549401793888930668555048632820038246915619414081585292607721500941804035602924289525220425512580920711169560882387677805836019292425317816689496543762632615600770195684272344327404682653246571400831391004086345963627832738894872914149304009969010047842713508818275056521361349755107317282850053254576795177561828885287674928349693002296045868650103137539593314199861625139909437299699811828656084010024628244193404381893299065550961711847982413750460305246161298836396891483213582279769503269174717880653848876670948488138967359654701593656545443963220467086550073089605309713957550636555549478438176403988353493382793595218852470075548308293934003306318796544607685460897362705730127018060230691127250500215567352250735103037873965834127208715335754396830230284159299803123965611738985340701179878389770104574563813222592278319637795951138221347784046504970427558864646598833414824468712049842775798858062640147071168364330547986055576685992674521722728021693308835314927043503500601618085251405797369293255291026585277405523827863705385833119520010868608112957376589645783032135691517749428874970989360080645334767799957066916754545294902957369110422041798965493051119586278053935724165495367270231381342571193933492286228166007065703080793798008244918708216420880197356094979969088411920679802806054936374402815190919396666595249188251922656399375138555232864958849295990078137861249689846808238201433063463846862869021781274402825801261994162980066955943889328683971882218057610789877687226926035766904625191163822629036623584978616126051697842770563514347762119131693137921408015639071663836326210688548109621605628492745944559141042199637659055634320322970201031626453929845205129660649877732608362242426199187061638115515118549489669246389374038655481316600463499870128883051623979878300402131513902130871016990093511554366295603677502267112790569670707111650197850645563743145344445370641767650812114957729316652275530006102134139337967331990952930718217058691404336525522405756618369187219708944810148452216455572066103163454401671571489440294150468610983386390016508984306013868789961590669839713156098563710580291571779854466088633284383893441240443149334364513261700804778914472654560006201455725021305946571968364583113693372016217794743134463556622905574564409215158490678952677387239311057335115070766504038007161108238051270669599990504841490814192724716209847386003455058369142622060769800705300587972013124733100924982567826013221208594798124856090763717217953915060915744959329035549342749439678782398740887634963558768787548576013975886682747081592489248300368702398918658817371605092719602202558921936823763814033421080270814313329000101088462706499974969749789036561271103631221387771284166494230470657482199382014457070710355739043670727244719593428577735471638822960635599704956470327839460571183441932575188412981595406247617294991740120792247923797339806731787408748870592755724456614601717149390726450891507821782473397828143278303490388432104867276740426387316513115315256645971761524107613431587805533663829501451518637054907576386969682341206314765730411904657665206702417477645570131736140466461308359011352070584849807063322919106504577429447712920599533560335412550918403899487900731830900347815367825176303815435339927671216422515299878068261286926846493087232068440729296595947232086243554663030444421779780760893106755688177929958676986947744624265080893585764729833847294031316516495586804097186689596512505687312678415548225993637514926436282161236545862601597542072030972455012972581724858614343953480020296211219107450197280302082944068599260483790284038779620094264964354051566798710046817913623683769306357073027690986220575078790993515556162014542022888259755113370049676240084919106769478412064451339292722953501840477916178402129217749572660439481340316246075190276593269943280378207325912356551304883227121483104914506366704707689266550482857399782682507689568289215817063372568563974643605814243455860304917818083295107426930274883828252905990817581350069023699727067819411299362739618463398381876273036069273417293462294680997385553823797816688330827986370778603656718079276263449198621847653563981917867223000016927107479045924375294990790957735462871190391337813145385881592616352762021335421639177275599190391739139169888747140106820031155171185148987459946736590189617082982381934593996870315791406371955083059380671459428293950753086089651236772230943236201001083359101255896474373947610446649604146001884429832888566506661033865795216979230464911382286439714850820060761867973682823358173207454991006845877226950552717113269854712909060507040605520225899563025558699450076093951899191243574831418818467014751497524068838744252209840718503072246364997828462166991744546334846980315453939326627083183423952832958073512649390870102969119518076411405209840064559271030156848006400188135235228960707814772522106157939967556171298216979754764601110169293414124859203556761180999576464512491300440133256187299560749576178354713076658864905645510289247260375427044915461427151703105300498096652086071381189223236020670311322610326589085936963560377619188824881294301079319650914962581347913052892147644764443377207796514937727735618077262362099392685501759958886481386872373526049650097613678977791373095003828163776290536910277555515526306378166394172292945832838240117855107958286200073266584352941942248658960633170896161107223231829291848685165570632351314329187093184132630165383255098263206519498754750416899447469994101809345317126466922433227581498040612359815627434545748012282063548196481820230593218141886444629870924076872588077133708689449036367834277762800799130347062661397261476699848327223923511981985078410413540398256809096381590906517792916312122058587964194390800567262522473793434230618632194632799540242860277185164155965909090379977271864489140614898778927754985241673474377565396030894858875743379090304483292592315904322651874800478660724124862228577416301169238579974715420128521997916726389372003127975697821343846656248230767395854407717636911917282660248919050548357804900938704909751934064625835638271797450783624519543946145617837065902180902110752721455027379972862982113935747437391178388714217810129537132632450748309329904773930114307195846041703400928291083219323643953864896363015933799613998883789594513366516049363329292835292889499968389574761436049981999886511117240807123816496128846898009528859313827937371941121098260444597698722216288283621654361809444782989506231431664385697254418095106511973907522922101315199298193636084508031472059868536885683278905872743773966060236149696473077096093101566042609504125994932268389055726257821693703778376125591609911882000344457832490597329811723041830019549747224016311745821531986980723875648671498773636899883432205576556375737417011778320242390415430335525701438801507691845112096857650353297300773261030272631765700132831082875971688472978210512633553392116878632518818590695642326018277261477209905416077375002638727577515395941742681892280890568082791322855187564962068449383916667354451065178129725362709581149019924162565971612665637386529128012865999790349692623583960378410581607115986858771232832087959854341013078307012678008026358297321795440586639178480650915135334382309757028529437993902891566763995630285331127492112820260933539831398398957791498855425203654955465226606141151632078780072257217611806429211715584595764350032878320709557222071542690762423398771919598555222008487947313774352666021873505748105878423400135323885001273168049734716391451291507511304315534913766651069174314993684804550980313301701025670194420616803845433050193639333416319564439963964090578061292848065666052515029433450874101893299118005718518345437359755492936032869814491384284086651525027575360281331179302200979649546771492163706695619587215535542649139937748513751197220078178324861843609826594813474917063818887662598107391491123930360973480500518258428406657659343713557605247561402408023848625704876739359778838805394698305757427711758064307228774952046783385955017193989703930453622478436911601934845833519743185763359475003939302332439664806665259847824845106207227082126769169954034283147551503204751016232483548859221361242290086849727950211381942527036570151909210125072107088222414794732015392592093860841848127287008103058208908697165167357789703972963014821650654669224191503477535123566927821202494855235833121514432523692119337773803732399922423378401037163669027639819870560223732105565434599849253334901617618526443996278741086708064862615361660359700146459486947861380588139950336893012277858917534755632841774030547138681920261575058635521314044353589887610710426989414781732923497906792489565988916318020392232366254677351277609116030236880067024896131798489953042039644552833562655314382270824180763013589072553988212129263069070205832934011461208655731532760204884475760183042160955402883714189393023610025860813504379316447708623251073907898942752206392778456873345215847512876617587253744343517481446110212972278931020052228655580896405353184002253339668238459158588916011484302290459326467395936837012853684027056456003138338237607692567314794077847763938006460299304777290786127956022746071467927536531849009482814723599719647341691514620886336325372056723997384244049882633347624872999775297874367596791535909962465381453264703102867214451370859886841678685512299403290113567120655584798957010138119145860683315099304190823027212412890914908297067542039345289880963302882170883644559434932689191484681595754771525235737610595559811629460280536028468986709891643682563063770690221151223023606084794062270183661874815450576326957074824183810150595584306930635266529278412442186227108004060970725589846872798521696901217205801610176831715566974798040714535070797568891299691587691571495126562565282172961151620132995252903026261667374388060477317262500554835197634343401679805135621119654659490010356617409948006829473781638627861902395516110543898775524129703182546422419979448848633586811438765347032989009844655250326181494071340486606876534716477462087351041247142308508723651990840009218781687482678965681874091422176296184784494651377038624189916519471378352946938715990448301345319249957642324775194206949067037677990971497227541374866535131689767191147140805923631498973910039799692785641727702655213120657352992057431566764606839429223652633014925427988261832727810390858981833962229890115217223357601567454245665839478212697498481017924241799345202414251021417431403885701202785287437967686663183635111827232321454708139729056615799979113618691826210371800500383986114585031444201946866213639834448500219587667688515901233688120038983713162108902451425947493967351239595085024453165197312512342584507774586279811297450494788310214255642524566742138328743741398116364383766625359909638163295833040814209271249893375058740357568201100657049812039840475763764580176688341910151336275128456836000449222828083412397568700091545446408426855095310539171436669500795562231011529560712358431188509968368729173452938767475509291209883341606036451287098816650068276058384933377615336677578624392722957526652945054780669637709251660978630255067071476441033725358551654154092754554331602700016637676867116399173388964735350249555046791810556357422406451814686091902660066290859122508113376134446365565421741797417197581161133732228896153807074956962567865822887618846853667777616487171656454448290334931905614729770032832762126512739315178585912044098434327223781060840838413277600461339064692288283798543265628569726494064646049769204281792749991271135340196066646990062901637758746743172913044222050807351017634745802372267146783931153670324992225870384431823058361128565128257815505272607079664131237069881043642825685591262011528655654234134609443787080040007939149098491060236248921149468788262296770521042285571655290493276537019504814837176169440433253961754737870031822046237673434062041432138248456337421992822341635199835233733788170875574419521535193707422498471582578261124203030545571254014003870707073133479952297942386626982224110327488930879854247902938908306193787524742700945670233704149479608973508300908474395108426469493716472776742095220928888925296712932869862034022970205370870170627438666042559370509632568749195714936157383431508626026809261476057001090210781944814036219200580046414519193223322041913444391240022341829921322460959790758985992617914158828608501589536173120224239896628684651672275632269845990362066897880756503356931868097418525658528357040917954516374138209479670746015023187215300454338232645986013248410732066960462465381898476954042751652581788446222124696263892669461271496215942160241736863947555565104709436065878519099248352388773757273530250659484764489693140537889789731408224683963595974481649299530551087505629192528435398479173419544791458207422249516309674977296033636362672830207767701796983762852137269473658404463059840647990274575246661966237848563753371104981861380449923732504001173249133269540255394448126892582403134680469420977115425046043466254118963386738347426296653111540449860135103117392121493134908901895791622977835325295615641879090133987083974860674423372768374322542701998214185402992302573625159704761189284554328698588812255721735805617921917407812809276162073808755932702565962025265268608018528432557693688153854021482304873126817762174532307457714339443798936612660719513168642357399822155184320638333290186806584362253705291331608704538981517612604454801863155017843618578525158007092561702216014119618777339129573008206398854589391148491821081025583375290098296863438495139115886449027088028607439783373851853966526742783392282428348791251153033748683177246956189282727607145714120917356274845959369239353879734206909143921443625666870404074931073387980423686282199861578650758235746660326162194571603542294552309393842867342475595876656391233936551547201647016425886191028331175327106233382379021348447395719366575557782747139315881393437962898472563840356758503202671783481154289098910212140245036991763620527121712431995474689782207592803243400753316508620898291510425090295740886147052657652796401455106843632530824307527177914790951897762360220727758171127820322486237629015741020561426549550635721412901751934727846845065947639158365856743414208331988070724042712882632699966265538543914860724407324210406185754561450909683506748227215163302933664549094655506381553190736856680892537070857052604025363659973365983234274697437943878741805252106159069373545769548596514223434294993148198629930264494882300992843898004556771943495268902209136120705121743067112560319242357100236613986106265428792453652816325007228712942708099763394085709586209507637741874238124529536521563477503795201643685251139809998058463750510907553344720528554342125511557808214927004135024369279853677336243353023900403206395590680382168526361059959206767252666258548563975226904556645344764433275332425436107868084834308447064503628465693207771363306591057724047265752011009110608628024421912047548034828218687141774672117102553378708929533115513658909875716839388710139145195060546333490541114666315154831446525961232365493625048603539331719404694298994606547456261856848209724746620515508788531293896710060572913898936085532329943333023562772256183322995583942972169064752543365865386428227276034012946592530599525355892460573083548911755678263834722777322604011431780423797864956629069757601445520508742306257768274887546056977318308696155606322115083445546060026710575320833692807828434477531269686192868904720203823052702565912412299460091648292483747968727042644824537222163867015313806380578092772462791323110165293733691712702460422590415892773837414845964465293766705531110197763452460676085564432298363971974581922342230826541683722907111629596437974792310002473960202494471484300672030170454429806226167388625624113258609930420709440906375626909922733422498893581130523285406477960781603145542953791029539341724634730185639853251641372041633006648867094006906466888723245698248113393647608304566018569349196992975666203610713536887612538844936245194578843405490059107079987961314120056492367662002268732086788009567929029055415957468273809339769681872551371185974484613139666911335647018782319853070946371331701922021435463389775349485530677174070992986240759522415031616375056358934027134800372447370887388794003730672036587294705423146401124252082524557973344767960626325105226099448754831274237643964608200194572819646570075151500754819076536180116517592815702708716591516543931402487466706487490027459660942710163644411185644876029331112160860255439072534508452698917333256055871516748596093539735484797403659552906946862518852321493719056297643781875680496053604364892682095376997281725374231091828704479799401005818559570575860206721455665617954228128321291703430238794393946988970374642944110040034622566689811655926130274911869950926199124814326686030669753747326756138031259249218254243625185964890502683011514449560418158949814993559075211094425981485535185937193127315789927630467610770646565439571666890798408608716853913246070176562233153221092851898961722364338168057819058061179205312848048481125004229673175160739355433278644448934052071049139348517474294068953789941397671606468540084431583481086550472367149913333484368540508999958369350697379099164609492394698336589548019851301976615136608489253654624830220364157407078369512223211716012943501436040785495139217300979997786598493217992017463435714674689980774247141436921708623714912773827971433276781407703102276899072591567354597409697066680622084876082408372343518518909593018535221822517288801702984867826331686652241934920934481026728146443803816565505344291660861830250381524419484991466766712114265071774478097391595038895165308543437632747838553833392307721549048829444844405421072190056718986794573697955423628978573650271786759544871955445352915480268294272299650977587760049225896767643849437301854516154913314757321881663546161018886696120572854780737290549041014850082361384444247377201540660673864867462544589542576638494432684424611645776391734144815552156206219661552093056800394809488854760353040674033099155850491275339477620919369740267851710987052998922175417278624455753322153781614120289227412424806900133859944799444406571779513828115219003670317453682638021018048133227305552296428935839269364746482137492502864127708584247487712333961933290994327195464237972338577253849521402640287162419076226369850320351158176407609301832192751492243248443603633285567266737170442291528856873108788931957183806120911748486536802062440187163511559925286686299734866701828683432805062309243141758279188567681762042935315686946337030946215454198223073613035773156328642864971324097644331177015329800677217058805952502910829692818186920565887942629601128650225234286658857393947626523370815212385909013344283231294106273654307859302437778956895654115674566698318949377456413503588312093775268672677830472076791231413491640621633199230019079581674118458495869720314500560549380901733209377590539781798246843611860117252662565068067939901495086765173266241023335627701340713159628665005918906014113835894609691306271686336076084657544392369860578444472575204493846690777001378985424326874479976697817593741637956992862328089738641813737705229220805282231809651971718629263540852644393648910202167698798229945209315629921192874268054621353611733653503525563337620323520694124843754494337498833607594483371794524262648586563957137766431705177761906687483814320685277254075918693773451723906939741678362292690709510169050085154206151536470269449181405852058273549261046599178813279859189430462845963351695803907096481777960827602303756950332980355963873135504483552151350906609129832033178833466192257727913985196968740881913377354339111844064740187538017534113964108310928967915841667752282909048916404656149483362004463760657867501817136677157248728680656377171945446812483846092651057215474077542782806762974587481265063193286909448743158830669270172703991969635980615809775446145614338548817884056794822429745699176483171523591168610240209450619092356370636018239130813183651977300511721181878625491768455793375991765638421262115598312248603106001108302315910054074254898515967109930481735486830270202900038128174376361308375379808152469496250162496195174910669409907683059742837814834644198534602501136190705970924401249439460803343457762458606701927915801985281565190417033349623049363759280974423432233020454355923326425751179994815662939957212990841251476580786334123473406786305099328630321337549828949166266471118676189778594235947199110527246704903144652305472003210759797135916515110624317133115285505095879331250961666875843738125282404625931764900759307740783025882669970927062780134502084245769010077830427022281440278999051178039410635216393046979880058722754417477508328353545272717154697071209545926694477039857389220916336484689634227999619534253845243454707931580884292018382677928225426744857660372148075269857756114945184525034904631239534532490295484508601167411475743767891545513494455283121171840769327967980779194146407853479977920416703592781453944141703849038129036126260126502954862444229584512527510492828234914065188288847452825830624543654342101851735137490658714816553757973890963647715447054896270418155744003581094904720802358364944490556931453646562118892277009837596442551475667613904194554099934987527974934816240479561143792193631965293004126937466424673478599924572463630335293077156602393452344864529912922159159662324335000185699942025913458343545999659565391185946685873382360228959213420364667241450306045821554301812240266697710373632017629780328877717181137509419627364029245072293376403643129229262166022210635162558713730792251252363990641514473157860922067861703593468730418159324778386066811184682003810879943649228719491028069502224792317558332735801630558717669469490535581870038378093234338093642847281704965123474913914088306447577857015779730194436931461886956505183374977180365138453611544868678931258362944062786620100826440706849993482223758581617805265176086224696181156518194609868825657555300290104084288943996455701819760582982195065905908108473401186736136875445365175195557595550878140069805551287712363690743387089638562187485783633804555237288621807841768345702561510398851336445358111867120374029027066361472956236432020680142034199123323524838405568690579059298299434130438916974586616135739650735885579457638624808737890009259204050392848269058205047800356731360863937281224616780467441413937267382702322575276709849402085476586065689755182332752660828838031432047132721998028277498033033365413222875589646340749188767597795338954236904292651050242442046063306423523831503975966812895563065654944698858561752379556913805613511451022342669641877956238730145836354289302913975479064269967353970431005180103769049452911683559527019730552215125036145390422889575313660351040674167078839114030697891012697878444723503967505369495693637848464347682679828696659228917147332453334864787341452146231368188834719232943479940067558478431325574313394967703756537521527165564106494499156535818212212305778136308756371936496938122470992946506065559608520608057251496794026799250549806080913086295458242203237609734971478748278102389090505364349064723582795713080435608811494168533763211744204200466429744451584728128282138778842821474619226078270686271075645279851236418188883696675423955639481172893016348270187823211751627808984030625545161030500612763151442217092388419380453040152574082511318895491655711195448194177498098187385511712708086269895657636129460073506219388181673665314421584359621063207161350727335869940020179995938365113958053334551117158159265889894443709243512322398371322905612187555588751714413260790693165577823558033898353866724298325875088451748022338634066821952729698747021052646408808487052440271514112090689842259537055858814945107225772044474412578441263809537229587810102390415451277064170007741455461946608649124453639998317981767667941517564684925600902318844711581923518880134980026662068509100987176305070711341776435483778761972946595076885516060152120772383006790353547333759272090620217393388279754281279569746294575560541614959651471617771244526245316222981871121724784366885934500433882543033630241888579397878288423567732115280692759075750823560192556265576495788075441188574289573424081834721474393831742425676803000783912179806086831051219399482048694736753467043710545719942869802319920758008507687366516168298886679490879017313514514718392298786956311409779308234167202899138343378621657923386161184491682897575908155579840871227769116692667163666116550211758621351157740610572507385331962279277530241375486640783919411581808081721842146224092809566670762060313343859505021501011370195633583216820125681460062292631612649828593417514031627268332120366999819738051785758282051479733863030345766651036733428242291206746809299190271046230352611851368055545485535190842437880280065491621743926189523624990613903123600049059741976274110365516343969781500615046075686611064919269619825207316291301789243392801648668775969424823261705331146428751636348064615550507595147722962563868076562824144097317379342117304125417130539392148600234799917704567889989520709623885180242243202909759875003087296945651695689586459813129571276653692517630020023719099596850786361165565201819838633958702678753852360903816409396468272501798862477217867299092312860545475848711834238303248779400555525729460312424845729968885280503409194084594449924419783599094023025023826509460927274697901643447342865912610580757528210432331263699426069957630448297607320289854895813622585943640037536840391856558741432748715797403964227584525472710476188096049339261330717117756779301773801302121233276687417355869786508315477933089126852309344250962903836299966158670269720080317135714304897717829048314185439212871202948229655666679955648221122399779594715622640387691704148721539904335129809014801927552401808985199696194599657070213480739921342899477581151309767032577148569984632812344804084068010739738610493916212519480741404059098905124714667804085582133490090686009809817956323387880203150271474676162853547898817118561954966915326838075960390644527975233535590452467992279836478043336715029026729134202533817769698552063715933951330771394438500388153192163983357122074851768361367907308939764796573336473032613726013845533002444412395501491729467680612105769062853359468867257774286524361877016546692177940088609025683008350825007922001853765181305358610753827818583641687698573056430157556509215948592910729899904656532021059790450614072928496469891726677060613643405599944276763533991276132166120916542174732688601651605281495617674750054705055837849232252123869423211930283050299019199289368929306334147356578267066477968644238699458670436175380999919153500691368342739916790370637904555836444504218728028647397103201073730626731198735036524340453357783875157771466117511582510242955425868871359776420623239565988881181610096156299596480521946066315350783928455383682069856323317720120505959256186917973848819537513025982684113934683612231761763781415947277966579751390698814616501148129103794629025334509044905784395185874439002420843946007743242964110673145757690503993218971649875160548007121807858438416706992981803685724882282351791323949238573317033100637007135338110507753246861254436751298688278282712569196642300519181754546724419035119638281580115529581783226544539350334497624435701768239477603998248844135995405589545883209639338186957111804653615399179983250380644597473257507069261758221103015408120825432844003520336106210823073749708970804087089424609763573020999194560454949475317840193799926060566334086347860361428832123842447820084487621718474424405446172161668818449030341729108278516617562764564839181101272158839860220124125805143746016328951533776009511404868944253272269773798331422770912800892169495492299884720370864922744608219263502811925374635330322528503219506058239325913445599420208140479138698406251930445484591893762178796137074536791859889413499901752288797696648839742967995691223566676691142902807179053225466016536158293620549084934366114084487043812420983115307327524908580201306673711695139942165477837387562369734948775618056965460898707923970711844300157527180986811370747135837655257650197778919126068516921301985188077161517953687885477509392488340042922876200792254518106066538446887323721459032581638498695967577758758212042572722816334031356281653737804337365961251241453344750778615575936160171783397242501732142099007999887234584881637063961293582168951700501247857895330255607914420250996285596138070660014919194823860555918764748802397467472439248227114572745287548246246731081981440548320911010371885123400496117142932708920563785589944405455499449278858662988388214332385884457921827493661509562381621914871226907229187248874209766872322519728282374257963286838897586415799743005065408923531894149844343085409384093722936633139272288890723065494192728510784155889867551766226270748773234718029080280471781498204305000387289833673446252615620856012814476106152923713463813741133946472834643739929712495661881927992528543317289539170203972383827770611958654379043168380857789405928481563284704951459147060028635195053138844139557888671538304304511528313078278844301223671103137989249260703281456284058445136552103096662840110954983284842132357295379059364913843484585944714801762612831631092920119284855175076683204026835667315884950031471003947618360850373016954643141283157965980482533651181646713924876230035021539975684897567824905799545054236865794331499397604861266469019989394149890019022280796881469106686129242255359024226528065359289453828567203914977822902435037165429553370984274568240655778351558655685486293238419722896079230665068170235729631771350154664533109934157207210100027724023947067230878934926527344629702305932158295371613552668272711737510601923082719099681403135731596514545741257755188531520698873188199880534920838312414076920134337502447540494817811249268740265282677581983732671412902965018824510205137795714028928016702136163750653810510906954304677495998309075447507274303206952551691058865793074455909197710876413458884539480746809410159812839195604115083961827006950655586412878503151106054488126779688739392334268908071749540819728104326214945235042369612912142987371657919045491845562334045012443973350181834552807518890305948834465970365998568339370843838746875876843270612789065193511308856860153725730151754395250041949775314202849326477135701336892570964158418815586554782468708055353530215795897934859898130136863529245991981388485811434684054740576350081342637020776950007393095499486421793157292330448713665202013083593026109419073552529788765842225887279289431074037235703196135644722981541929680592522708249951362449184982023363350347131937010085124455140336081588840708336813154105642176673087062409918408051732508817283731694666971852306687303513754598268956202890812718986376098543097153138858542541422903266556797833636228266819903378365675394968292296796025069837597315496473956967055251499220042060804941990408606483523331331198072217749740847285345223643537147065550780132488613839841362549766952632870576044067746842229896549197503779460183228983394181307002636102029616290698536876980022402627386568330050230996933985252048205954745996861184904603963148890614210378393841377377179622974126736150108327314994886951014713897779610039506448199703340227425433917114414950800006949801141646074776056876306713080342469559708412745054735876045882300065553128154355636163378550546765749056225639672586178647472780211846148543005183959406411632093128025114154125889849559854741764079721598912157640991185946022133817197978510672807516101420604461011034082001273815670806476197651796217056410722112773828700979793399348746854784671180682291638034359151001182459542188126229351758989911083866860930761104690461594008877367047429370548092505453435446411541470140680991189432187544098606605242336025667358597469519644031959575984100590435805043689602363495080606012007063535923914171639500454780343839082370944767609260155214010209089422965825627008205133051119235977853844686946532390169941522302374451596277969407831583769421310050082796249922238999072455359251736607223778800353214430118094861089651774716195256966934349621901652923440665935625554156978720837271623216317578985838383577137848721638634792164892369880309071317254208167446428579305114227072095762631529509067791440651745158748183609815148040689425913716412672765612170782922644710099425217374571491918328488154693192511218063157739408784778052633285170870169202774818776317304867648415836049709982532527439725551776287337912537106493956370398261641400665437155530962107703214344991063065920791615569253079157253710371185196006582009544300900125409712391615156003163585230495855409870261662721533275258008304754324605168210388594292598281303258089231496376732469186521295683291171455919996772776395761825302856177978375983845458176608754752110635735884238827818276485051785364973782757883453949612410667875394414510344431856200875793647310986466957029098868993605900608053757840914939614789915031305667711309560918688678743410593741932015841353304854553682371509434465459075907742333582542757150278416228856809261992039326812779787812572646512945527956322163419994336816070110110377375026592254731253993773736524751902656956064364402620045478538671639704916215176528836091587595440388581067868044380049424182589328789559961973476291289847667696782436331820245175497754058497560960061875545566374739394270189748273473630475556555717746523857595845402089622028534172022429042478436112980854702579921772032831136756512145842035920566079742850356731856499263822403782157539509421841247870737288099159983767177830352327100311229529394372519477327005028356346636177863033577125880324060237847382911283386855074407128915777252619017146008704323306799601644001445540279658325606284670979722101069112222914576923599830703215962812801664822802602743630377963397375016095688579879839629196715832873296896782843696333307828513225641796921732214117014763958363103561407376892379272258760235549543290395718609171385047012355274982681654024477614124333472701505897416076793727748923562246150777971148367900897473299126526558512728142619969730649499706474748072114114729578209819117485030056393702785911378586758870962068985581494045715089246831938526557751126312815516460895504631947974593293652423162599732127652441032790761993437409643150634135002841938678389079939208753324467708819824671919348346694879742733882290521435320222273566118042140762027639011251785144358975407296646684331963238769392397586649153267765542528239678007156602178267881105776169119800758724204008453283425426833196806950602003929267553820138202517150631951366793978298443104069780329020465951775029799406325882997600570763295824833485158018990464170808620381851886796084764265109145444880142128369065723961579350553140109582141530967644819045157652199888457192818069666350482479490924065151140298178683008716623471696825720173335152854335887836261438741116089705045638042049390235190816774934098196236515282043945653208999818545671681496072468589424462772684222036801876225768418628584506721990540262063129988995053582929703310891429677233701644006318134657191052321435350539281360885805230787362780583826776545828660653655848517844465482849784518745604414613194078461773268406400863141634358989528597012271700099154867692294952633666505806367694174547471383209762114864207717394173127579144916279015061951517468273851521968546725948639971369797268728172567383323579310014687064284514073163399804145433900590701688913487176848969380031945622533028887537816640777801131234773467990808054988285195492558455351530031289647993720255088945838336025233658462730228929813354579459781618979016779861656248048673628114702418923356061551175653003277014677851651188008177393703541360988712957372550025307841583021243451757657579673752995491394615570387503386136434566208966909318610083737046036096733488195487080768552742680233985909371111379280205115402597717964649118936257718315220376785507288574114560081041578210197035158317351090970525612928543840154885293054483004084594426615416266589822296004540515151045479624146923672264444838641256893757239087065103591229907640841715931027173346226574668802730420914180536692276695111412137329754238818261514438412291200516338235639653781786864251823966991535336499375731384544603907731818874225226220072599482944949796931198073781999802831682190901862035657413929169214780138330824221238228912505407296972009839031213561888078862548903985131282877916183921296184582801129103363144828905634727588584762519209049365041438486226956660208802738965847829012413761492093074537273196953014080235648871593755825114926106024829563957429732495170016477032214669760833693991316115365431063213317206275310247857811908956793570085475478183515589379616857176452673808177540881133944551444109509127179438367821649476306867728744017599598441965698625760478548616635804777062173121285323239210212406158226918499320989405024548646583588670925454724185169849847320383326086335920222915043778298848773471750253395076913065288292056229978385856757377765788610252061034625595052669456148009029802632293042529078901748986508480634635565267411424094713280375009538767775031819914992010329508125641415079771862175882900334719135325162962487339568753519132792903445105153253672121570024574702128267006465644656534066320073891723766548452765003588292545813587669037156858021710080793572524744160487852096043276742966935787902051704594405275345725318529887914569650363232098407130153241786715413423378693051427527809770760670378583519247510057515667756330412513296753703526481040813755200769063148334068407185218155934565689673713793579978364270229621116916500159957321814125164350628932477010212516082786805920571008950400927645135497732047479984743548888326501962166510092953261583205421095859481405873793556884207922412931428925693482456847379968118548804214406881511251964689090729017624687532891071736189632538038112207992239308080678044108362097100148342053225207727749240226631763032386163244452160720162098150116928710420186759852053580988099126291282467896501225787226319128652669028821276118644141594689690538612857855670232903341715795539826772519976301426629241064007194038191301791904464162291770125121929544304480610596369737085238310206419066075178391159750474747393219196817635089787143301276883453610458454600897807694499693230125824807972641153609754899875392928170295038051049354985105271365931075592107144804332725967727577157190578847365378924131909790629691362470676668267934149217411676949189872261424192834958513058238071910453999419830068083989159760941075211404232101809560360372945450486142053398116716836894609170291298941461237187931094488415091608348173223854368073765524421230496258912349499579940568540420892207549008725329490455669977844913892549574646906258799292207413528956743164280968680945116576357945580838109216139562783659056188793746806399891332395131283211343192131705530656263216374279847479009324925677535169000726684935151400296561436181741839045423264838874096611885077115917519534916381057100544796161262228007588511091215829566939744874783184592534004096823447034337307344345595074971954075061936606529654250025654008007621442433584942799549364028505898304500007272483556856045833681834180001567909223195408919938192308015175005746475592780358387982537535642438447029709795241506663870623638500077837266861258561871482914132949806910265245453214637489795423896178576416130746223474492019939635394821687192960471283889872681027540708029906131015511650993461722852127111814374270352331903410932136245198422090038152947024153381385040611559952468678360058949272915339510194130705802832405992830724921679222815853073459915039372547457203743104117023896423023290934159736822555045312120197644006283435027582431093517621281700895231818538659908279098303841953663743805709079950459989924110627301385056421769827878824302729330728042431536805121912950422758122084494683211174171484068136100035242412626040453949639651292144480711221489707846351870047134914616792431594521514757182108107954841295375191242417796566515972643100214045241830569367118638625091653279866812484012505384902334808100961104243540908241466367386269142186329075183228508948925538753136480269365862292041310849659908022691770158098712933102228646194094437410195388591077120530563668509677203292440164963895389728631328087327320447095246006559475390792379693881386206162419816106529291797793221218466327321132528050561209993052773814276207421321382957076670883277819252381814249403018630150092532119399799471199500277092560972542224857669659948279535595698336390744488836599581704733941876625587249926184899017318572055269746905781935396663331155131557659724679406188964329612009894514835428134382653631298834054822580264037363774651011448778654975258024434168544686600370459819727238557455366490647092864532283252047619458879762293683546317146830089329331876364215432112429020155844335143908418661140699228344614436971722402653236763467454349945323039629220910154992686256960512626440109914137290335048698011121712504218243151055659327385302142632073267197604407408632936326013742531136321437676940124108686060552584235669487081470087981590452682038456975983843185281517517450734350216040720166983479440150921280449346651846779970271741624622071806401798384902767920921001378174125141102716218397084624298704245438643244156983935932262822631655169108242675900326934500571018528122948458942934262377802010901723676625166212687231867401247573092924532032653229735261816127656288141873703600891346950051154612053239868058697687127387641543969949431687450045163451263411661018827360321780706169462642200553326478535748168126943074092442974792747774008229406134124519561561098784322597287985208817276058071351208323774944789065685111918848652879658541479687472062242706139043817227243215853121421489041308671569859123338774455664322498219710633061432735606913545817385371734881698785955218122192046651240801929550129350930119074124340640853052306464356086175691447387974214641441251951307127363477957237009653066163981802395093246220436851967366923869217290729138123413603019563582231624235334319885478184400016979251175087148511724746192551254077126822627112833001530845460574081650839909813636077054862609720646046161612124535349644643048444213648298809910646931435153695485547876446678478395648335671794641413862464233503778089370725671960163274662369717780748304771582165045862781052673722885902802964825650981847578685713001796433454016500866678969895503443363829977618970387550890813253828703952692507869913593633949756535208567587410388325328496863330330622409491981388741686041181401761977741723648411725364520596178404656809622110771757889355770746711266510364898299751652853986802177911120955463623651738887167540270332732746452012725075741013805582750213978223666325470337062627108265782991710451287733288527101286937153890004306949278324443116728767969120378180588111770309446126406827450297346146608940678107486736160415288147395694428292424553515624738955857701163096439842201966087795684537895708172365132207203983353384184333005793731775229014290153306051133442373651470736817527705068196734965797534493609144463281636710759155884823850001732991339083315223359691746694505715497615467664092079664195331941162828779226578143268931529399439925764342885805265487277348315539230253003629389115255668044379276549611529020669272460315253529737411292501751126332111745772037674513284504126621919733643840645473279071195558670706859382383824120093843458991321671937184041227406110434848971288261931098380429986971121860710579287687627732745243814158435422203061114649499514780847334179504824151305831406341975490987479058850557224661646225909053951101105419009025542893423372976307490581918769019257050822364110131002355449765461093551294416252324675602136064204985369194280803342858300308910239318389944477886813314953877064287077281429758169167487056545443643700461004591190339495651158397374444222350340918682853440057996500024678206432397686170432125272557818819197427123399784160360242082412751225080915897122815949118658087099911918599176958239676149096479152286817864709235637411207682610032491138802405000770909530546577922879232238421557571031453456285693712128620984482879862373293855263433930680649571273831018486794897540929460318783033559999834597050408629289098716818817152026715848605565654590356690872478938649434375039333756129453392422890210111222997114677877402146240170774900359686860007481668124282528546516715458667808849769192297811493472990676102141115435825658682698528189736266793173066404342336759021016620611654011880833022887754938309662322552829259064735524538559329257624981265723649620574985390279184467599428340507224384307468512186672104560632788092114834054147884469355274307985426987520631631506012927198792576247135438164193163676606961773450255688240286137418199727455896836266524935121866669746576789327959321509792405524089789670796592620043790249069443212691887488612938371683377630902592788334707713851344414542370220590551767119317960183181004321150461313593710480449016349014803475694384706910006376656764183751566124563649467264417897828705639891403325767777832515436745342164136952523822529152644477988313814512053975432812294738762557310177841446763558803295338676891958790233816342356097739688669660668477818192207350729408713458496227911436414247615506911041511406695182835046789862189488002984307755698465040921215583934787661395502907618554264693610240050629083663011730237420974634550193802762647303589412747458452211632987720953054213287779836917595300953076561841235270830555971655172188613379861838339384879746361280987667038668343264009040893364017276640820338456450247109527538956787504533741359255659140433373471700245249211671525944091554749283721784180882980644598682717215580200964280083945278291327768425779147529856866195329253948583946833991227620294951743734456827363639960597515765917280886515027430143291800704132753672282783241479453151890567163170949519062419040253053844774320719386730584178840145195616956832298652214210147230319585149409841015883481476273527361703208531196281982146456214515716177109114193720782672426090292106206543541504578350188317493638084787029822109679202126685126094590281594955129540089232417211993069428851476921651427727665079898992607092520161504588478865301286892574245097175965276511908853071246198755543598501077142519411845805285621961299736889402990997093320634793735103866695216747669579970805660440540897490847707380928653827698169994109737247349061139257665173259143473783695549058370592738224547564257967931021085506363436822504253699231860018787196654670776965066416337251194859333848737959796170708047716200191226920024570049091462591619074635981517232711224505961798436036783609289346437548167614046536871481220455189678061686123998348501542037541785720513784415480865308232835681718199126956254371794671204745331212674502286788362249067447128811826583798433390781057335319010435783290470065149498908556519763912804715123125773077733452635818457945322441516356654256805798713623472248297941580394812020013312694148077839029516756837743222660439590537430730250707266535438658459049028532762717113032676733626356857620222934940268777527553114009882628410156539124112480744356960900045212624414505329337567913015629145280953859825689618752691546388048898945679977309418874417727722586149264389514578437889625601040280176298573476160104978726419474552395517541734944831921415395702406138365318265255556956898899378708239683700205785439048629187269015964760855802168087298612284389618456251158850145587687526312994525364245631962995609843564559887671164241080748423183937495232868539220681398788434829347952026481993739431044334116115772212257989902348540650165718253820448921216423849709361554959200974223468421668512639417494753725023632705099878343992083581294779026278385027957142676856163137043630634238904179646322290577343364967980831596620940702428261074159504445484829775337214667781060142483407104335571460713855925723904052022038032868231465189506710857179303509213876132839358267883871251771557670954410014397401219603261583903382642566589441132447445554800493875409948944426273831431994591911476007438686302078181019436318571623350036429358210410873833374626148294509485627926532709937142649408863958745374725282612355440248353377622697403370717341002774999903940813593965229944860448850739228557299654225820745838978521212097434124868401703492260192017233715924620907561446406298458652296617950933238948551704615148116708675396156880695156067016749888394119900946081399081360245000228734459108143455330811546927019346737194698250367034062638087559735096854945595066676874946800763632299006660925332289754577761304837598523847187143856410718364642307301814399075313235885446944265672976008890265512496003253210710568750181268636800136188224435430850479934603269223384094517255827010118996860244676595015602431324071506751747460957037138174348707772997175703165264693959478945694657988537166772720354024056476897836005924591583566752599088478810313705960239659399355203400041567943272129185181515882023279521059449411616659579632744493711418107219469790206381126219283697587111237548672232212841959410710825174320839887355479884215142158830787071138250562136886171132317995999915550644778136207234240931633816155682210965414656755808464792659875352080838526807368192270331549845063002212260868418849980141885163137151240356504046016205755189964856988229281381311013717382702478321720266669546004610309694243427503725475444450390139955472556052076885788816699080097986052788260624086603666514346138392393657120657768693667954858131931017810887356468508445670854769578091221592586392589597969088399830083132564389085833010369162474442235279509743299062694677997522333610306465919421445450579635234486067297229602534494663794986871905280089680476522750980859377227098327051296017614644152033457708237302197459252942407739636825535012632241529564922059635540590872546741852553358492904532879600874238081291661908716925835415630635321067251962990327203660627808696662791754417671103898291063287552548962042136287681606672539601764345328884878482452072875218796869166489311306854425882817358626956424219080972885027974557334056463826685960239695241449282638866706276799397914752401851887370673001806164262780362154567772832100637167840221374186796410950357314890920745136560141853047454809106736390739869453643456652717424705329803915233831220463394682879917093095864857502891399075859225056723073929455294219179736595752404132868942810373235648243293254907308693910820488225385154688995992019618492287474191235160468875837486051523110012454938111832014059802430022880868521704848042810596719581914232950180308520087098081421779701096541307949645463632720317509841069308757082649524053690710543491852529518673473581441428545030385930208636077741161071150453431890643540312227239965537224178807003629639998619777316568586625779395787210840308965154285241382001546622969992062188853814867570516063311870160134364794903152092041559399931417730722695676898000587192673161001369948489920133366638523960300838877941247728470299733320582213536768895451084607723373576040437406686652186344371371048909888450370958570624216510925888151554143487791557905721514157689754270024859340519004950720901229363028291272521550886677181897105700851759169017631149846914393735527443580539268620302433307533924815475956049329803881250768088798618950173110883483525439659423055764148675867161222643071315284928785106496690883926139112389533241047686935724159516204126475526723499348502367628240852237478914585063466564556438544665359292144327566618663684495765918450906854355283858144085448105411061246597911254612525719781315007455690450493854593272488021453707205464384534510766163726287338522595118200891728942158576813350509531718127702444555912381636725030084047867686474268879541790936690924619731545690256520101374088560970286766614613847329291019910355844852434781700829029356471700112061741914746214589887021503106382135559019388676769110821732259576246101206004222757890555510603082185929586676400963513342962421391814226775381035296211959900065766795440799305054677070048558393710043180431718554864571538187891145057328350990013357665874669556735681631208447679272444059668459235408268793164165881663767894511742762205338199950134024050143770451598422751653530724386563001010894886301069944915418247182659634588737858658437674388002892992737597234272846549465087508717286016130518915578040562900606727872522614952897946363825609327309274824913893408624313452440741847458772012426057695676283176265791456799313740697302035018334456856162542788509795193859588335715171935512774259599779740530397975395983745949292527640947534020407921548919970669498173786856335304740269312740349716130763599846395822492230339729793738111567101065489301598396823694590927092604345467580620824240741397607895315013665888407151133232229402481329021941933324694244346592581862493120910937683571875258700991169198086927812201604997210261597540038448305749314865464889125238258570279849734781382646300627393119272148512909211671022020992998356074082026002962481294284024760697481764562645233102641891548417123062252974921285577528599417583359267505432501674086553916646604816866633348047774762325713270723800242471250710715139471700793021468413451059937967512949641923762994831778295429119028198742707805803673984099386768943601585800134381150429731569619387509100639146788334082019798929660171171814891616416538978599339495472024437169603257872550378345807221622344712765281440602083022620721674633997558248039246132294921277677035083127333975401012552153973725779136111585124530345474251158875329683836085667179183696278243542538384731250621508870219691041202420517993406937223331219685131868176637949846729431560168241188890925885010264468824345690954317744738379120316021141159879829807609753575135847660800242868489300477666972783918126330414045459801159267047347819070315515211999573158487603198751825211091697459612730818421611402036977330594166990226996868515263879575089060025511040277256015741995898375555468289224212116738582674424023770359056129094297660146824718789761927852573173513557623816684555836313197796048339783040865700538825709279240998319961192574108455772834027418789045197924624587477409145006816416168297803901673819868708339877840310657886480869675031660131224487923844747857133335954682300991989492616627979058373226768725121033503608387293745519383469142941563017962581974325560775888434348896061750581200118905503020658242673169081024298410403190788044529613675836050332644926632492980091290965063093092861370950402078543828133500884916237703185226464585754439499398418147954726958796140926811079894189317425989182231555095129318515388160631846856467923293255154482863287911755325686206908184849934613707519571716656682039394945531753546721399387999963483588282837767330895810320369840588569811749574495207024201430423262697642987247049960539952959452786078975178708546204243318438427342956126225142976169352378125750903395611047015454523081227926776886677240253923643082686780710959061681709522873823835921908978748372817848674307524605849178968086421555624667412080272424007634634273209061509466351773513050878156194222462401213297952869951143049658986224069386346974472609268736103717678508874998669272578514062813889017881329637611705898749501165024789639643756952989008054180530594169094797146628425758144558232985740418858752010063712844106132612533257267224252843345798909675192412053626264914316517277645079467111020849589614771892351064898380904873816938306271117307150567520293570879311215168235719716404785010251240977298487319962082617320954201113096647498582279855931899055338114248521192789427234357382299637803253101401357399481188157071104041539075794834407593517149304300439118298001552388597128480872076101117499503128199093146418907496522164733403848184331920459126374685787028623880223399132352773873682326801863152200579146885952210174795891927572976006706405135299897947341531287189660397711950613223844239088576589608177900835250246788673513005054484986796760547459374393801863681432135108548797383039707764434423134676009114902793962434717879074099604736740165667911486142979425653805760858488348316940836292836035403830193409145439266442825926783470307147635259605539056961166348771731306936149843967680010296823426590222460764467235991761516199367509576779894364197501995439196858267408337153613860126262105288972394059380057185145822054014930557485895638355985824812263972067550320380043275889478486591367356766923818206169296761885105752595078706339117019027498323944912402921932155713166028919275581677711295321904178034150073923831525481676787969697640605844483425266836351935542108311332036214153481547774177176212715103297604825953640313269748067062414575033500655823435989405368651040419701164360397888356915962407594602862305497548207530431775640264581142385059376676131437107770460728192434234843771876980941585126529236494049904544378808979203131374081743733624111387213213523198479186372353589777182338324226848749355864148261870105455136062900973333013040760875707979617335788591410127421327389803073951204492705433005560562539536494210949799106676749652440375040868999884377092703351865836758867475600103953877040986081809133677371159158794602515857745228100865454404322456575095568419090126847281923416588623599283257179677406258329912664738876082867799520665419009270975322747807918753809313537489189300475381799434287014534056352222175239166586368689461099556958371348975071616468214688695040236786771326586187206846662940639280983201981189343048135528783898990453218979347140257275014732948747412897083704244832756068360962966423504631122428960010279454079952416687933861537569768962642197125786023693420280250617524292602603497592990398223578683048450598335619200282941312595263980321562356787073620168252148251442313728173953024057455790492515296939673016686983638258278527144126839079277792481140615605815482830518478331567832503574874220062931403932715158772972110206190796990348853740289730993430862351570375792843327561730286013697965267497676856180060519952068875578477540152131162193957450099986190652340489228834607521347287068980734113029094115867845591264876362117165564505969275919573653795482986056491234340824643553496266347223718244541165065850393429122547962348435144733476727948885231415573777403223244088428161348955101794722889889432899776392633229273297172945748481636727568550706748295963362272167456508950747894982804366554139321044595756163105615972783637107508478854538345117097322206132397790846097628567048696588999967613574275612348674828997895294777489962001533341044006984462809039542744096710807688454963603082252173164163373750284313354281034642392029220030779983094583976183731095295020485867720759566819555743253546873885297420476789740992862888411749107441885211312863059625892433883623110701510452980935708836614177107161381147707038413302463326667959940794561131296964660488180543843267173783060654770180422226387593896710798579580850011119107145812953437755160567494339670812194424140486176109107537679926006700197083630543630206940561723838880619702398781534664060174832912207161305282713334005424970588898310156213729951488888669678531673587726904735280557300650680134769958783948922834560919649708743472485048532990342201235541971560143536783387369277071891568404810950775778242335794098286603612658051864004679678577616749312095206458376163994888908146567419805858118514817588233717954950570218876021332577436953129456551781942258692275251332071734382653975049338393796568749033698343849364880043005651158705651741346649974307727438769689793580307676915691030507518358123287397644088514283360328385189676256376984761703502001603656906076999810733290477093060898189727209566920589357213854124457632337423129752597347459226839744130075777845270254238188918370570728212223470793217546301253940676763433721959083130704165084752124096738477943676703116149116415228230891355626936966182193984893967326185354024593201196748876159177689212273484555868248869252674414114662306328167278548617849963761098412111383743038038471562626448808437718529117930705244590081202262308063863067015473250634351336296195083941781575060760901077070055048891017085486269483406855955374421741920185611461252951343323075383642845361129823945152756682971549822341176401254192947561772606703271152622736435772766631686143317291955569475761428672223482309108186144922687981861916606800051700988794262762722320129885040645706115534534657084805984213310138937913290292101155358253799062706212554088223091823284359257149461316564737313789036545902031309942359047562948198062175214930569240632605204797385134621251448879093145623388233646162610772075224416713003376090636578402525599220205284231787676423838168043005305317754061457194186061843300850800425883704498184904662697754260135164511540786958355709820646675070045284683492185904398491141288205140067470466222850661585704052688625486054716817548533332798581747757530972340020858723453084196822847471878468431850292689429617481261257975878268350471003157286898543505835271396050879992405788766135560125799260372189310066576023955896220647571507695245187748999393633290180689441291846329736623329951118732275087590424973656393676181873932684134171717550575177069579641435646397864441523713853436479693942981109317587072888756124815237276986706912099612112805917714619947563953489230755097491296022312613611922811445063145729078649230512568679643060247840973102741508404029427924995977329065706829061726371989092457410949311327986101559506762303058367641565015691812604758557490594653628438549228038199378109819150719922569588834525946377753620928725548153321266851410685961506323243869212134337176569024104466709902085281014976948209601988099039476345053570680248320517006381527441755426603716608589026098161727295792353439671968278170678973558192452907926631063048415458706338503390232451238232774759636272474415792964349612243948626928433514217908799747567525610677245083136140481891697686804588892211347898134460378124162207244948732243374901240944945960743980207028858751594248759107951583968195193032312299492810706253396341719179959037322496249919290104539251235045867482679117366159334691468756689361047443747305465439567817340810111096873659353836442268218977748403988618425420795732123962325518920174858418281270542736661322951802007957655350992403156274592562406080216630431490868192008319745335615679824143331324357805441414199467814050679595657652063074656676141679795337981431893658413859732116579102524523062044044113465660315342378866593564712829801031032059191451905352219249850433240544634813863863640646914673355605735083471716529693397137022126143934726542020241165667868606809572053160265181304900156803021600048499955270908293151877374721374679963898162697408442092437211897395591801259293109088011397616743914703059906680972409593770812600463916967570430329334976705085666650182748272314325551862837372867991147834127085743145335182354251933198652235806112772498537157460109140815504214954121098528966154832453754296067879987458693268653598307558636200560771542508881283103872368323988899500858119379780501999977309441129556342623737210165053045114633580401926640866470749902433139819615771287571157792445141588420567227070269054800293603301740306452812222592321393599957126355797061399772408015600129605926537707591457070475838762996063391427278600085208102328006971983081930352829979278742490017719153430633630066941067829351724624647483937948154047285481370588489831301109099092185581067247241119641271810025392223254173320798884535442349339620356876453604355789664777007885039783973549288329025882166931490804506244815172878050482102437519369231621746831204155893273788549972911342993684662473134121113049943900834467848337027951401722268199817644144071830333703880748663060048801744584871044346556586991214178641008341675664549152935350020495797350503698277129444664420546541754004583877844332291931992029972923057820481163437663258572264364250832177399610620322945283287803599627916611023294598658559154613697935468038740949723774639948044119587789067464040873837586050965281896760332326353060585570487658583822713821994614595425028382142886114958088713510763635624646344726530452464817407952917369582245418373785196782087782927706981892226815864068960488885545632967871182849728596379284242155570182931799118714768721288925096829353361856127426463855937645624590440744848960183734880799679609327834670903050721367721645309085546652406484921984384929408240273009934181477965656495360984463749601715035553433671222431201250479510236250410034548372747725112376485908943424060092570965433208075597319974796704501661385167950646299982318945181998637843855183063196026862960075373418228553576701540089284240451792371565080154220546482514286107121825100387416951194453381681729282707940332473475919846135490524467306966461718426487844154659381216873713772166971713842716793337632499233728273884626250519866665859854562322540378473418158016290395841494125251126327219424208870430451628542772976753369343908947252406760859475790758851396098583640178559070563000753054854102579066262982629976812698977692634324960880052139898971743064487542806521997042939594489071852891371930825268564731260773726883612366121283438289711009086134552505496580083703015312245234140353630819911348321582069989420560372437173755338619445417817101572527716791327527979262836994579049671242519547571921914837101587842925195731235289405851164882477287325375972127147017024093845461648719736703531207544078238361889381908905627029077861934665970104549178665639583660128738182920392389918597084499238828597922459056340409106814777733625739884543940516894254707577772655405771119358151423161011487749500352101684587707650044401355128628479446155666216828835323399940626285069584634850292116775060031216741685594518549360216620922715755625769323941847536583640780401303894518562034776329253425304644000165444974744735530619108690480752453046394474591422087628522644074268768341978594469057560852821870891121901815434556546204781229633715277847517854969530395954804371251791141219570560225799465779632644413839830389974969577458967412023872938894787979225647826724909608473184855512312448128645039203180489464989906472352264751391777604608618954714609055270637284711557583800542132104939188773518750045434408375659514151642274292335027307933806793966404167013592940331863379747071824768320959977234531170593276637088865394514323934318728634066546531930484398084292901758754506002444301481632845644951284291561752185222960709602626512757497856356251717581057323217182715334556001846694419375062947449904046774144083893259874186308371731407072766999728136039610773846484325709829027157091821768886755464747713514282813006420761276767181643561625149463482778033841981019094722284903705766624992160479386847102806187888055347443516919735240413399058384750053933093359904508403562530800399922063555852279248890627656766964062635927796322459567603423786745587020889665583460942132418253287148043753409402337388097665263018757786631936705059922852446605624289388889005814973479424253212360992886353829798353950060811437392299821353396617120103379871733286697270210698384193058403523342653181643168873043759576172242634919746586854156769609782001402608910211460251116266111103302746839821687012658090754767778224035186888451697426039134544052566502332012015734256719240391623553057258442515464610274688841602166525750692486124568215733661854658062499406282407220094120252515901237387192143304029940013820624953845972396669521903078419453192852859703868841427435463350826019488493780929625346017848537595986295048034535444295577701022481443743679291956352432499509185383153846754877029894344885218078016331634503945346380079442169525669039287300751637106216811044820662108644513654025646899257717341646707821943746846707059228156356865774957292059367497701710354736194805483363451387546713679776814804322266600795662818777789118490958916921331209858937340713363023260109875363003284412597738140025185068476855861448603748501263208809037178965416408644752649269622181657479473530610999539364140407627219067832738799097888995413974124665444600457099135615287600332978189079717991519791295228462318457964438554421554062044964345039509114635749414649795923839414758191340466216169792675062124062868334593256204149876729075810735534488301774493707213830585081358591702641178036212977945933897926214469871488140322113540479967955177734767380218854699202118323903912834966895134715587545376367654985034191501553259304130266840010388601257121684523265984320190775380074822063885124721691001590171492276145561697982783281139582951555014305473076399352441545331744412814241475058886508329533682151640135441613348430712382630817659390550335973410195754890431691743009925783242584823488263668022421346698081462116490236326800214183563448839832456023601849263709160464134290554802105537960413264053234481605588637686518742662229668569351570448049595180692776281437807671290982559671231793564452136481865331983278463947372756281829912281879592734165553466852641765095888892375838760158002844253003126347946978272135186160920847363384661681499982167264529691634620964458358165217340207995418305736612644651346925307198702399034839292399433988677509926395953475569703791529227506380086915925754044829189109536835084255371884543411145600199471731987668671158515976779547215024898101088619443820866029707729473666483311222034902443894411721885141700224784821050256995631430957021648413694703923167032542455996741494982081807666198705948540523446318651987867755635959995538854209078907289333448675579973167828319813074124911806362424148477761929025760825461373954558093229041737832257663688483786266310758196750910110338968990571147802471412793319906175024374039027158848972964243956596339865372871034075235772450396005795855899761766869929515116453344313276183379859484859380576566390487220249332665043783974990832747919466735005835720732229625953981223075758636271847284254208273508549873981124363333445569887964692554770214510381985687609324867402089107231491101372351778204883452020517811458159562646995339716748133427061204438956878504717911468774779873538029697337544795931088090431919669347989637684257680329549459128125034875252052716186003155792979630064517474661694845195498524702465905285717054923270149853935206508527966427434669032341533106350574876815408694727334375735510424493326898026417858645833567274766502647714773185223537073093917615841073163776118013516219099393639927364270421014751711179136218257441786376135937886573735799561630310215108202435938123143386512374698164253266358078579566802260019243772703501121625239645123364251939758356305613837016509135880060568654429819448867845663001590093839488166419838623132321934105232246480864371119586764223008968218860148978675284553976535900693461695073468543017696731026191185673739269265198476089621962953790413597878962143354360213762703710710539918658654717493416510500517966094740218092521584286784401539562141474202371401849977194156130448623416249118536441073804270232887919954131634243684220117298226568468526292995519489792100249357812009753178406500921714746474318948153812416843439786234168278826242150376943705523392963824122099472794791379000063104515207355009838433189654440459357011848520755354429448617191184920365392021525817293386901794169041789252351542865064327240880242558492181870001179197018276863984601355588796426162871513549360973185548894002557811357631993260017344569037285987638936288054418962027973085168891372471407031417359062686089689839666884194924351524861514949132121236592642207410511564969719981284557719826206583378042309295088180724789758546517246634052973538420663084696352718737832991425787969490589922447155862403740937449946726995611242642797704673826364428764256353605848125100337522783534672106820571195837979491890843746568798106303191846970356129640192456287935080557994974345608387826637453823410232830576945245204451310948893090757766779003100572601814500032927665177151492503106914269778307971220105076353559435451422507194916706315187996280085245493270219867272396510532097418898493417417376537176448706202055385119034862880500369876892457968709992658795155164434424996281473637147350861376623701048163843731729785801809251017949302706243933184878659160092304745254065727573508257584643375404902996815052357209620539988797799091949618452380603522805054103749201088566150457816404126394122716985645692457165181183342983453558188318100736477875504619818901709702216092937527660793688191649866359865985828552667398447326775867244066687317393587347224519091428589827556688382497056546942766618200960302555325360874595323074450264736393040651114580210207971976797415687692662984537720470436834780637420613277296353022089466968739192889548384622987395031849975048391752066670756049665170976807922038119866289636102948877236511127055367249182593281093960314132945514026614728356241912590376712358393146201507991968324390818754027923454834563422387473067673463634195844911726177038998481656799592838670559287788401506382316489059856673026970765582254271186057364460048230758432409795823644609821404045809150714356493713298300937672873504299208953283107684080037694368107221015398146042183144637802573179659456178390076887106695574878711103930034372288592792042913433175596708043186061826989925883614261699014944590658110931890171599983283701281235384614708162116426126997762692134001760719758563109396289892706448270247646506786438432185932155381475943709666751355781309075915747788988664648871635877831756287639631384724404589144923053447338769439851809773735438720633895105882172520536842371946284724497973788740957692237286012267402357156829132698938192332915385458127046392161259459083175015625456271594776010674328958027771528906921479931487819564776018517957278505387402369789132996866189675408920915187321396749486580123896105140085305599704044321541430632691821132909882615985346009320987123565856147896440460557839176559003088055070376425412924907355185093495176802814219999044593184364074446370596505983631291204448062619091939056869079238669236534522825289344294106628468431145810165419866561872092754005229262244694101359252830822664517054878913533925614976366180219164399273186390580975408192061322135987092186042252928146952092501393013065458518651670081725367940769618585610496278698031034396567777321588352651178697424718545545508885189063407999231924013577314044793636799395659597460598314577539643309221105163914345676562882974982678086655668122711822432317651989252538062375650372149416513940630025967259406092054356133607838571217372551097143176961111736919768110677488412270862371018894741278927828334072024280153060097028333662647272475361351701171169033483283458967921790683377871901810060350928229098126141363635546065122657511136745607889761216882782663290554238602574721243362267343999412084229609924154362254113089336439901905801369736656180275027754789266638952231230670732491572348587355432098975193156390558960165524129049680741551635593208830438776203259195223727319844438662482562677589389385012760656371636193725909994414400750287593450633274576531694544447996832043565731451685955885490056309912621101890780420644584313774328550453416150507319087581626718592107685229817905766274286189936378470765985605300289540832028548721879930838154336416478694858189889919155364073723323647299351513829355634464349315517778443294097724469255629207964212134644930542888188964945940601491414092026508754097791300341451082441082191898557500006706336542593510325224871800832788557593445666412821570584416855730477516238245535857540400275415722443582162665165981989202205073248482232052597552996321036351221620244485862868794281344254045156762022462208917243183442009515510554255023635049516392914958090953282435741074424599893033478215672432152955607503022033707252379355507051057039740179149667163388272827635208794258263257715022975531981067368359911680057998827510430828891580928580666300610136324529516929032512453372671278900152032901268395925018808995341460909370409814227045519067674607956539393810736599612654191136177986445409205169191149808786622022622505271263661840396780974393465898165174010904318508511587405042334592820460720227168685190217616561515284016526218724981081656280974866981652734293771192013988710793312853677993789821755184306961278501832735261375977313778869027780025955964981430122181521418998023369338995121029947477331459716415780389105444736936025544707319999595820280843815427705466494592572621025370554027686684807351464569141253760800729011605528237487028813750881998868235265465090842433275901091274630850189512554393478981134901164609271568156759853046934806138624830926348753740846122898422656519000310075011260548297476577915305172354435752386947884790026362157059960595352251224189198342708268949431940635939476423916045196324518142250746373108577756171530494362753159663882570908944185110102791847405409629985494712849080941047682625227465875033274447218010239550946198747881582648988439838409458549855228444331151065492736081000373470367264521320211013468973875412593974390428752372001496998837141059201090609579042611970902513228582917662488613326676796441881176432968238143469440313722517094110388417674038638640226204778567445654402868296637227454934507226224881980261935394425382630963180859608696096760605943581404603594583371686486575696517139915993417511936442159389931126303483607874892067879219046996950986511237933551870621071424056162499540503825105609870724806848622503160738713723092535336566767537451555045656990751180754523394187769315553980463367622476870718074798614923934096148823195861453645690931734988701147916414647827681373671026020004336836939132834168027966961437874575441637623582132722085967681866656416275040008560070816949722863696036023463042085021811310394984195697343208850233733332143574473124165630319653377039378174997698819461119565736851892339995389874862149045476667456986657757240953295247853007370324457961152023298854622519500216334165794889634373903011604005629538802008852054908546662706248521545786915007551664864647768630964458368000895214006465656982152101708047154577353239338014271298882275410048431832189085455134244989489816661174744694879179582040309054212554860847477190875908077871063104500430521851495396027959624973355117557354931423619948479614387824929651438090623977468110392945751898352400631312291385606943868389114639640695267733944273094467390981119592262283534384082122293784832193700172259698692560573111682900275886278784727525213374842354581381028814280269472287304107965832244810229025113756460196938175167314117031703822738046840356655062685863654010679704962705308837386879780164198485309398304687916404743933413311701769647788035482972311343391988411309872783596183133199650309723812147867045522779499257014078328262280705530007568159391895162526547781690206066221943482742688719773485828875325176778226581625531024135526596439475597588822288760890406132135682697001802092361562360145694406721677199757075619759344186709929542625502221429442194159064096542156481585965215287739133614626429020747895924350450672814652179708706193430942726962661374757342398737851224234900522835575871680857606421581142589126060206365404184055610734885433778250362051958003065000868725719705085795725706781545478022111163980233391802671979344188653416566092153320373514421908928878015853174151753890277108923525946163900146247446148068378810226110522413176907197570539311742606819983367437549584179343317890121476703615671796286663038024872354755290677216789758570555623776973494969779703053801951529807987322987590213517858625472635616569340998584514642574221212565864556177549968388991296015917214933913256678321392978793619712827614568233738852610814529770301455478817101223598205984076879781817602801023767442705077746147011310999664481265335958293922803349426933820663504940257957953890108808998634286148971889659190408332769384287358026040476908700445365272660743657900761520844477323445780737595494227652638750109549744769648220346969011253094416221635060033028427378462484907683837612053262652944877811061521303158372713530032721927171644556876552711590141975850865615584159878265301224176014895671653470678688642395421973115158328755486435262122189806387775717184118225868973331826049825798109676856711048579372066934220100960613697604932655294454204780920081195310255925354412215581622461716447722251081496098564377923931516368242462208894741321383005267229056712550862499053540092192986264665337646329516164695598605653425259158738410286307848719545059787844179361658623411388396551259829794576820498849384018144467840767815214362048330664724456918275860110533179530971570140659496708216683652897948566332499804811495029719040418822032211675802898402215286130952334046102045638979650679401284153048108443773666530933773176803876718474158911941736229955979815830491909861160617081516808950758299042191046590450057474092448582067376356038948833499020520381735474069530739194774434375956448548956580767624341846156839069524305854655186346179259090955908093627889718167336633540906566189036113359718268137075865910430458603606048091729910374091742365185774327624353344483408554243690193967949442214916423701133447398117236195136429083942460362408808161362434633323318004735773772810476934082007916373994659909162641924102483302517274888105618244916514024452346782125999528732597852367946543731540709278800844170713661595091183718865766068691662398928754329518787210335248050155739793610604274790171952654908282005856244425544092192541073829386867126449920501503191598358896545054134803800129391820004774644752215179435883021763766186278872089367863467698951737801140937862412382851110137341134992341207081845985617495303259806725003673827586308301089352088179813666312333607042959193091602492996224583875356308528371273153018845046168568476802392796988939543168638001531200824877154246126874612233320089270773570987018995387449771186790533103618072560193229869950205626411697298913332005091222040305279622520239123976723335269395008574393780594548613168052050339580441371251934141126649022394651691154074171585040740345065920399928589648824379074120895397766378533672417152145543500855934355756460361170637282759733852670938968890388335255186213389372510852588846196284316484417375567720065628565318900178802412071156350130637620506721411633366593996333381000155423959354992560629872041918681398978029732047457887923478816431305894822590719233038731695217427321012207302188417761076227277824963638312080036732465770604432043535564921088789944245685485580727282431028468920790081820268740169592983611615451505666411251757705669528962193573611824254394855934973064599188184627299270519063839993771935910742984575555211700801044820829895373123017215243547265644835774890879552863538765853863486960018158460185589558690843018776591241832237939276458069775290783488093295702256792641668314247648669391173053167140748330860271036501967917568076195605750882484408492563508863532058142779470875181585827537979315224250571221059713809561438834568997779760967860368253859699503441840165289455758408075336881551335116695900863181315892651317552779132888936177435960009246824070421479484752252036741678791044128558910299163965937616778465685637554335928658668730829723618904332819966016881536173443451045790588098302899406879068779928688904296260213985324928207805229323605130602190691544200516854373380271241299783186111782732681091978281399088979569771621481553986920275164074364945830597162593778465411501278185818899957910806041564608845058947861870415921790585381191185734211486233367963197251866771119404651085415124988115196272235974333945337169019939995348730444006664171788334319764739027887317124986125334828153139740855094158797383157161287491061518695644727022271267584977094239989741253087719264647569445201448221835125388333647006038595028733607007651591177781978356261141616513813585424146613129261861116627390783309406379429447629004091595415969892225517068499520247634773086223806617144604583639787818059515539856656075676293350331068194982853546738195451543457673529464271909012698287575432879133271209633302721121668683647605092506285795731165534535092706280085274391950398072549891795194541482343584062593731144582574231107646293714062430990825173744284535567218375639345393800103898904067959798576460085127677130582033715411484046434331449431141720308200162411285363942352814703476472616307209176860470754715761731771294417218602951494645441976076871003119927952012170723522509910017296730352819548958534540826418467170808563261227314487590192945613718297742840855276624342575747963634967634760391789499662220640997552122946562641999386320065586978995131595724891568578991598499610046529989383759547742834211435284425175142921341114973300199607481329218204520612579512210247985033104946405517080952445366694778665634874743388925296221663751129841475438029342589072707894281531725345890600870478575457858146088810212757917108692926394142997554336542424133679193224715114115743970727928631727586977227241542140032417310657599927343284952444525155032241232387471239979793792770519072464216337199948301282651834315823268513019680047557545110465533008549639118910856922970350164733257238281440800919862495834337372209635682006728419642112129893602127370392172811515741411816893203377545050130847411034592870054084556412854183337810114360179143757953425058417704429469007576132821453371585607961179464748586265628976021717528015302167755358749707825273469072003188092746755673179856359027424726755926303000697758902671655074927582434365113400361915090884482658670226846474921482823814080785668413977532342669832656047268954574509064114220119879536593062488875622054636780829439250952638595097690250273414744990736165420423793822006745293121870016814801848073786392361619704515819223391348432743231182077298708741587747551720581923417090197182664569399043767168079483653601901409098662182927221012392292521461137975729422109630622482382447265475870720251067343223176340717984571966668090822735749278018669461115466149618425277179047484870717537791490620254946273000915274945153482629628692625133779585713251887617388858764814669058613933949948887533069204758553609367350567144126454539140231064385911636545036019943976059742171341138890257845793514417452337533481704998204540152804210111319160678374379513052382343210657371584372015313077330624957882822850904074652529050509023609563355712190120496404088516047350056634297478584562502717559175431440040092617922725113927854317870937226398043900706743883828777615263206566961630348291148740176448302375555632701919449416066102289777366072845402056067379140492060645603498217863750527418100413856633542391214604448636124098952366002168250623244960777305882757506485426237258650717705755195216546674575108140014144303474289473705446455019831313125528278082493164579202855708330100033828469255839413834698965070388352474126466362295303200400067099414053207999261342805838532363280056140853391284906494816140718820030223901242104275684785645913939489827560570821576618103572882403287421675458755550448552327428197914591928396477305628149845112775601715249445645829902226055681722732953150951431355931447747477342512993853689453177559244438309195132904548858183366525164384543951667923374872820501629877695687637729983096391035011492813035454293755389345860899761830510752769135363753861361097822566208611789039280425214184893399097182323056348654251457818871707241567420157267056311992985548639084625837064297594136946481239731698113293572532034778228188503113719088928767666496687703035190927776412282249338357480035680263328413076820654191703565166771782284163549727084628022747656444253515892459798875334366440557361967862848432972919151960598125904251727766485114533530366818496003315374180453380830843118735097024101471365203736538340809717020207014012027682594056278590158654352444694585634436686216259073388496467616831294661986530950659395199713996122769288296486395549815489049949610365588530478330724667660872517222053939277238068859917251497804710741032358387447043359221406306601756614118543532516968570408456924144561118272482949903267119743889836181398299240862464612884256263515117652811512704882547518681421730213051081361674504111837057960453528025616988478941487621416662382974737381125250100993562604767868401342644768593984847762095028033680840203993108177980333163764473310638600823682212258702263472416673431475579094542548963013869500403824861959015962849640411517324745723333411776955245312997850035567814189822988759140080046109736167597376429775169031316702679700844236844265825879235080490875131199156234940270143749657850888706972352651161137937332542289008135465640250750559855129442329676194347316945754659427131240948499688730929965077727153829741259326750246439495216776089409148667574901395358230966784798824802116371543239242508304976142053952658084949584932796625221518407930680178773682383572656044259597656528938082082784702377389345670844470461820074539480697929403106484116490736405439584203085119734743818183841817274483915264335497529060677690532703361305540479667401348153473986806671439658668657014169095203718024031117270502401279736593274272925048417207121962302471120296560957903206699265024636654579852913206303943568068746880925704007947947459495767517325360629178786979350285175287028939648569640463798880310890109468231867198599184219076542474744449609035994270585756221822627822401475356830441656360191265170562175299531421809247594210679283271223424730055515924163876132139395899699256766539242247667029265589593255459005966263019171744201445582225702500097791491269118028878382142779302514235898031084345167776220091948760605375359746786777077372025869062348739732579198496645894037923898969008179028046110101849048381783546685967134859869615842194992538636984993104627008763007028106595214954818149776580619036277247065140735263185372889525312548990768815861275126311984674974950086820717779557494508859324196388462203960202195084911331302130977269297164567654564048737978707881323375356377913519748644996059263465255001409145414547879031603436796942850785767934190136768169597392423336497255148955793239166658135551950937957926148051056466173903707173355879704915411898692647790771109341153786120070119251058364256332382888532805876604141876715639569653805252579701252973396845410982024864040480232086680286273197783121917692104512213037991041498780291686183306865551858772423141559981323649295623175842423445972409726686879837006602685959770383049366118559421978120386753901755234836449371959238706218782810672162385961485819841849284000686783621791460395734836727081987722128337757106085971803253058220007053681314355113788764384052155543447713786750252291772839650712616899663039892638957255173629397655496783281255318181115786574475186666268007745628041319377647941981507560546891392884824160995638778413863071176146866244446304018939557743982386839945953802706604057137804527888014746557681091737735033550728481748718673796255515526599229888879072210070703671723262933057380878288980327440389520515120523982452938224633370955533821439886215103057463930560805132372291032974406767360941351877113093398312994360244248019199271101035488101875171735267695398124548651795860418355964115137722984793244386609531273321427753558096966896977250886133594702764172673374855978014872449551182086947788177083494787105878254431478148213281629775297912788346541588528675416138581581884757462332337172239305565306995980487867728014135306190879708798401555570679182463615069386958105711939027515748561312100419484817046248467747873840191036479470795574739094560916978552599917069391987270651907841897609389908893305900836173543612806726260458401993977438339672191421834981703342756508725704037985832888949362225034818993282444639443264577372539875225399315780940356695181894950579336401738136707391103680122820955642542541980873706905165477534684477307123882231700959188266375122802576834022230948027407796243306389305969906959633959536890557514836114443439208940316792822486437601848875462531013684697767899845069751361454000734865502379469886335372118539739640108582715375631754940395169780202258761606372777703482316832730848296303552809327031432073485281913694931770894105385543928541466832425176056275630945130163345910687090559949695843924073201474780816094093429782381101762379829563867883139202671187139451076837489847109469126801292407234645988943147438080854997243882587506713980893394166097690355034415838014366078385052639644731361213441703746055418447520047164513507737934537578124327885284044751968906697918113021752754428983850506938593047547013761788502557282535927835381249885773948823950735784788080969687803213674830050074455588748070709270659339444401842255950148792824712420748071992424897638093076376369579788668057923809770910907467496159871397591471030577566366634468492677180152267697233410486296914372020094298940913866846559002411152168077852666129639990871721327447545594025633448919188948778333464416526303440064373415401925925673983069757050081559940099873725352698757847689317096456253639025855416649050568873353709643221872646568946559839624734235881741006000221735600483824890369178611499850788714100460500218260786399262618232191289992933849313659643684079148374766956902420748059406170136729446097309413444244340557235579458723163523598562453821504534798116279151289461858689993008512882846851515344643809217187653730481252230352262899315377648803543178967013366276135261159793738123019190180108715072647948501467401610063669866295289555230203863664335855769498717394019152493867760290914909511647537965011594669348233909228429443680020503641574578606026784383839297716381100047820049349541766645411416065428419777063021550685160286999926460175433187789880036410273492451509239281439983657525837329328658734756234976591919536253634147913545051273473684142108405362874565659684049296684710022492251667002509199881550745444000638698181805191565717469411889137212340984741474128854628730917372780199126355857233424184492593086052043680278179655717407474478823097967281663450930381276206420305215550358044172174441850536265681187981695625058478323061949885750722243905377020935729760135956152995521446832939420374906563112953080841636895131421637053833693686704544918367599492119893435262947636648610900781107839034977197856910448573910109439791470881238632794775864287001289612799374223300698046672934606003285303414606028531580769273780958045835813179910034486259247515186139440565941763505673666654181679688289736956993690098945935811842763358350220099021119316142477707994918986633938258461726261780798630815594580288291714340515177442071873925208788546020907705101805570220049133706730824094020681143894889509417843993210495969465916770486884970672341072915685433673955894278926731089370283381059673207400319619924664329979018221290493006652057850584270000325352853604234078667107218085970119314888360117346468431364967051205594911381569620696662800169391464009073253798429298371343712562086468243696783106500618077610338211282932039335763037989584604029777592429157924183667492041797401436695109452118812325698034894552759573641686889206878131956993629994360630418707365417265069309676823996526466001328148097446454306615711222736702743853660903374261413747138538477808322149454627190063700718507569347675515774178718354699011233584270901524163039809673745586821185351139719184768861885223913938275923228716977170548331133263780900011367624877004141305121895810007884391990380838984958956243019349744601186160719182094787493269695622103779106554076782475103170983039543376487497191320737093220519929565229644424396458623602488727471501636941082656531551190511565671314354871688618917747589545834494835466176865511714059427186689831462339908292555479320995506875931717297247563425302594381777843219740930334869160638709399827419877449725674022746703884955242887655364419892383554343581840171717387580825220543181108398927586323490433224328807552859143191761574380114431686535094837174870647617227167659596389064806469041789381943356352696886040915293925716338248410308939702084283686588992585357401494080819733259267490130236989183930457517396944556064615099664240998964405100668416304784243936558327162367954609742772512394712661604452704163674586539034188444098830524371659958587934439577327194509567630410861920808145735457737628380974994097178256992627719481666213214894333556205658104641115554155746048042953152535998701491978733160165031317412268711392770411983302923077701169188985645013410263273127382057289635775386012606679528940129999817148643796585638880747339065406159608746462641665684350585325641643068002987174697405144543310305642169994212675673496358201396650696874286758367527234280369351406949192020925155148117280019116879628466004599500587460516651396974853343051082175054546826959748145663071125028918631193125984403755586947023614825836693680378891096383855928924739888588690616860921165217876081378933662626714540856519637477275842957227597808144385529068867231463587390926037350067990207211832142670903732414085321585067098030367567217588571810766819570736586496310642486115609072902350136383754107680479535601914570825941258096778814224445579960437992505866183741837225805424344352548261139063381355563605612191523540268441018452731096654620143760008959935077100923233408896821207569189968160909178664857132549740124695187349749484505694840887415961385687493453117769627562838013075315519253028672693134924534539071238757208141445474858200284274346326506109067369840503405009871005844031632646530331307064319446182994661316301927254973042302531769194733990200026158001863420731039420548812094527210039061871216245694181607829325807375886977916804532886789445240482665640734871617627056337981924644024861731520220277540321887003247136811679788972612346045769894201728409914905233511883229157007409980509619454207080145684596015136292148473229348103661117893161040842143496423765899122515764320690350433446586676883162357028060813776407669892713331348732257533092964885145888493482194181387514217148785036375595382337854271956675427938609516879782371376999489554700342225942038968731497580601312484377673315582609447763052210038063552322692248469561330792348521743856085896698413541828289294165102642514578566415509638771703116526268461732691574541438802353572800399919862946558082864710311985238921937554360754987754582255201917038193003820160475776631691949690615337907582028455810508437578967976390157928194841173071032598536240294605476035687943199794049590480913984629942905727806051767250437349855932580592978220767232510966243162100329220085989428998854332100919385857648332870812270928698314273665888171013533906950810657060615722376619185580944896328379447120458525397533628079151279853378841244537853349701706832450945718856464592228016728002737612937650547976928927275060960127569339301226926229553592282529847178664648594133161483267441549281509907211692019737409314633045450140853291812588718117286078157685546318921148459251089377730649018594736505347430270065490775771240030615978062854783245081289734457232679315531473695396122439445905298281294869483243700382432577104371314370341143010730392796156970730575465417527363766516852782141626125538417414165577407594246779770513378700129877853790736028457272198137016816049471101017911251673558834222617399323323634743453868448383024704751722788353278332266299406792414522258109466724357893496765672425207984788523020525746345866413875115576378077725719106664907743165900101449068152705929223239633211622175325279577241758163661421106550361022341510893451532249779865696797057012921521839355281794462529943495213278606628417172302150455432306657483499937738033153679872284404484989351164975535663843525032303185755166750069806119076652243531140211814293967505593508010585055157235823767487793089039269122068887595393059289961713515861662386955429728043473504665336346279309116608536824863974056788057525823050541474782156707886086760740063603168674145578013858544681530023725368447020834803799114358634531953609979148647447707578915758180895795234656304303083528730072050881383732824372845903008425355482302161925552866207248315608228646601214058779068594423012313572410079377551778639444521320764001941610875496143270444640635797963951184074140302462357578131819984695631547164155647980413331476782964770822111584112538005477094803458277289811607346630121850868522457826194893773435513678548183933959148335535787189967219183518990506754409857088732685580850797027677302623765553973229437604070961118366119857437999245470548525027036239927285026038908460656324668527809808161583971040356641720023728537682958535577606264902289952095867372546819673795326099498833749611961288946134033364456879269225893638841115311087798925863792289975449577509006504945659100866098698368086157279911688097465086371618094692090449854603380288274163801938942760506831483514144878084973749338219447463965232703901456515713105891495713798596883701511429069980761825825444287929499460168183559643874916684388039731631256605312807917931897706997063789561280747120098483610307153853438129216404323786404826676508758750108914968875648726383838346293191534104289171866046180418216139714410754104266846001698052521439717154493235188843304988059546991233856668610454578972507107378236184264375814437674998544152219738095972778105040074735654234348544918294130558291712596664290021650307168528557122837688243044758120810979099187387235772016473924188637337751842932224452768335555663870928567871141892657935071229200569097566745366892388433753182217534915173336930862662796010289912745529924369113078261252144841978937639024568219516230597684649140574375381118538402601788517465990802606675636473873487913653263179874540373794012523087310447885791800002100122248711573293939824179639820568041048914356545513834061777182175084546290993639160674728951475429405053573874815531089555934477432610054112498056882676565599996975525701465339264069372411064131315137229189469080026513415472129707943024683109586452119867908603922129866705387778976731753263158208339293977500489532849296980015133304566968519738494216436040075677477272981325932687174207389765168319397555660093167935296731740218507818086107337120645072765263871257405872000090916537122159403668962481656174956114057557717292756571499732952232183538668096860028945736952689847587287290608997223093107504437918052398023472222862619056241973423819485074198353790256556094404328277626808895999124597949313595311117194220549447570939756918597105819734038456634275563063199710674468737725124540264381415690362184079627295718126739996350486745275183760265220227442322361016392222515930985084279618545807430909496982565717590532383095012437249127200667398969794837270269146873638666694740422601626504937131085591957702516463831745635123429225218856258560144258857724614788258416489287443851257259659865400020153923354712075175010314835142947622427208893269187906518479119541973320535603200553220846555135566879511333549039895201365314792026923601817822538567841357828222060856222067874449700504073249515712855274349469429328604904193604514186813945487520008289542536478542537554892929853112264140342230656000396732381865719628234308973499720391555480685951417053632099582657850522832375417367635874990047452865419186962584372751450492121473650571429188554565247099850207553163633302310246129097254425268492629208755039960659831873227388376955055254283882381034012392926362872968180405948750375579409892125787508084962567677763948512029362910933350602017863556021345408586051389764449295871635852240968953985651209283848942986574041866481935399064182063388328323343164730734958488307344794802815416019818843014573384656425308714640921275330544124684057386290758475979081398163256150689461224431505574372352347005797357768502770504327877650618737264871699067798589563107867713912529443872077362245955723863590460482673272722038504478502038670293244471061128948396972371640200878291855581736515547904010203803928658410825511413602866731916303048324121507496966108974832087659450567351566114629699158210459653980334942315976695928054774582615870785032240181889687266063674096023989565762687011409094382144676749773534857594702384890883828189977023676278310722681530181187355200646944150300081590167120845163901741894166057682625604912040589517170581041758422380901812695493251977903975436628716415793364251832816131344543753161472829946810880829220817790138553500613273772474101585841627027499206787172837835070307470796722594415067081232946602330812201032066123169817861864340943357507893041576708291659880430163137698330887281085293476514394887748797233777438835248592103425384053043308832762450247592786098863225707662707134313247986008204451082977743415004087086339924222441947731667263467974071367452949561314047014701241054912842165970000612512950601879602658087559364106511061088529594740934498275080178912724728891088013225813139226042854738861200192126044643723358158860297262428415950125050894438162084082334959832084022637192059869613588865278579665701087530628322513959730319389439729897908127963357330589675165572574271925530222247077380865477023205204198644817463775602349945111513094622425425520297739931648572143956457219763530959699469526243195667985045290507664346368703573467116255461429295516068119800044210976844864227368860217653627550715588493885815566677100365509174321152683423613088016450465591086007773047302911626304810263906950921554228875989513515893483094237373564489729954349527108036606578430041489584518779652028540284691294741372524932594035768352142121926976238225680935998745166674252667238640050065780033109278248560430325595328983260439868676302121085185401749902124694964943845614105712301090551976072943213139773149802343345529899603147682854985272629585612315691887482147739894259567208215949833949438157952242298446084624646041390461945396389861840628101412117038248145542419754673020096249045469344004871983907357173842149473179169127864429148514337552927409463787633328145103185460393080815582213136781964119894778788612360921643881724012667595253463710175136159511959086504212716756096016166288766748222066482142451267655325890157902018626039709625131264353037271376806475404334174847426642457146064189461545079507969668265761018169489103646464584142345498151454208063367196240064657569901558443275053118728491887052419459193448081215177894901951541894084246440366497684027865087084764547751379357333602416589495298554918302164304403050234329048486903405889110982012416269771113692936738792032899899739378650026925004360311964659587362812111255495217847897140958426312646132053199510919699889964027393647502466393001188499648862003999228155820995268589133127656598452035063292739823770400982817630479940400840020082016804674668657536880582273281936393702740840527713522994356356464895682300343919270830328328092491950836362103555703038636154394805535002499875825324935937560783361026222694529775309231112648050953225247440340040709906993637075869813952448651872186172986363343456064633688499579225208471262742076130616882601276653104326001208022394629770958568733848297165191957157950781651151018012300638132163121010256857122425388696885193989390070333575870470732350657374142949276373415182759115047659049484827894936289249970190280883869069531621561749265303183456402864849246574864404938876521555194709415793979861721098929688733449419243549056743040486587404482568097932561522958976293308678156233346889463028397240572843850940004310188535783148803692657044951774885063427090223808257009167795882261836743325745952139754947038774878931358154874713925230062726783051028775676258327594463535677679441631111962092836235427154758455244180531067512996842482182019660058827131289546447416131531856953691287282099323900661174706296329342630390009973420141818766021415025523635047859262183443827594682115092825685187000964292754101463505609037062637900748286883619082088334702883906600710275220054110106161762885233884755800632538480170850808620142637822639808898866145265222124893976881222993008540658333756997087212215871089910213557591114530743575920743921634237999664558799726385031536996129844214556230612024417899549298908186067253342126106220627581292082829065205261234608694665905644682741195418776548978208877437978338206811739455377935690828664757804739359586904153750777463085234138368091178876828255303481938373346251993405791327147590431046363724685117702854861296919275662264055698697221926519145185628335226503996664908578062969610352824543336861974751199057979292069709842127784243083127456407680947107358059491105805166517145122212096499950991547574101651808626196590848582136944006041082135175171717472754485058460941246343047681058705940535929187477843313608997563793634599348463987885964542942838291900123150522456910452646640788711504868229544950092744231513450229079813084774757824688371132991350660711877427991655560839496395039614259485432620443598544533431330983786029258803373572011053251531723327628690072857016088786286863630211748688710188928671469675321726519092271227069451468188492261831170835054134113070784375970292098512681696304218071874802625423770132282593120828499488107220439715367956757404038145037221594746035140255810315514370621288042518206399707707921093996425462698772656755533168628566261296424089879482447487617748747957517321321182737125895616704344463866761515258724242477398272267592418445001799058008895675269625667635268161055946557429478703653620192902269116811621461183893484651091624863092847698921793648261881452604297325690379934668223505590010599657274062108313654007348360835130125412136178922895125177774667381937881712896423948742881827172351738023636336419998103783409544983058501466158400791786439135279228958803518612850184184971215965952784873611714049937073344902597701080433967600605521463639066444836557506638703428598423952052555031788540185087831446102194957482439404577515358707443290309794553629822202256988089339544922449172617822558985352001909734597262434989835421901946721834099142883356202823642278101871347353909224975492719426831985466110480311724035165534348905250044560346937718106048663276904409760923502568150538744675590925314519508788477771276455710162756273367929488149401434042204329483934457442687979317880612844712486634213974997787211211437469587184176572627885319737414697082319218270471104904519945378011924331083244462522095537909101791012373847400579765342966377384794627588926173249907204901900465500930060618607722874206881328232151151299081950801286320700699235642415237806394863182888455396540392106565735117383000484204341681848480954322282332001984471314354954837460217207567681602952960693193347550862303324207570427084611287710083478323216686522533967475070210988792053001545857224537044786741465919077192978539485860773836262740578101685430973212204444712141407959139667825787607893464017558004969479852642599432752783418574541988694091604925652009007253814352830033338262522041539966498903380461577886209351777352000359385809601781239458167763915755362799096274876679240464194529455900625655552577543045811756044541548585576479306809774782606218722872467130951389986074797710288285249480865114159781740596422727802700303987202483459042073252873289675308537491717341383437829965427615482641869708218639984094946209212364939368134115607583296931474785578609200798231447904263254629903848560148018793742456511381423131513658152945600489187774506232353401995918551980743068673758875468816438449662109414492879996401871421854383835946988227066000658437293658769034314897501266122860588020896489755621188948067331864684031721127585744941643663162482666082640279062980286098583849519269032222812192021700378797918057083177714372479305920227264013988408662848471456067513793687455625877229940463879017287960198560099855597388427665226134457275030565026547442621915038507414875539262881113257714636723104828458541497539370577905783545056076448537500829790531630789129463643106949693476099696577963184927877660308464572474317153106251515778510300124667632390140187917344193606067089954462734809515119072541947964934590404750220648018300879543164642857411721625729309137578510238906279367685889471691990452296222172763365299788703994061565017887972509871275991683778209605856005030308419384499567221681458184832483172892088051991397684917133883517840136703295500619902446722421590735204729143942791862013122444295519160660796073100727011580688859886106908481148072062358581885815849942742904156233070964593144466055382438696804974266946180655584834899689659578960362511814450907057724656081352308921327356905183326567661923031634604930014905422120395330964255027071361255059365847901775060362869358004485767277352304946141723258333505098288968438865454845845788359299050875283202545126062851662552603169165356494753681500224003610417423346191876944300981189775756470200818436532091316143359948085028554742780758596959916200990877594006452145181735118851171730028295798283618639898845551670016116782239046889566073252703799603619515128051139595834567910713791553899926917562092465739667900037721414387860288369282692501834010331743055258029774752964106105303070847288386954679988704692848057672212302433660426657802277673197961551035862548338588866589409084155933506974184332667537124350567948660843010129949924428042852840339373504649115196418038295634048551115819144741275561408195994478394145673570219961378192880565271942277552764879947754603724743087647804115256163547414965907087771192504770742467890138545433448664283443466835222700959690187753826395938807485468850576065143394247849252482447307258642298926616289865625439126672798490113813750419424737799288212235095081156297207718578462238338423350677329342445970063786635427070126573799167788698015616066758592208920287495789919451880304012031049502602458867198071805492160469808099677169913862297346449417781934923521628488436143233057327260713567699727799428484033667956432396529842868877251763850362368503032781330237239055310192343821994206840808935435236625227993707791713459564186561998899889988940697292364743606774320098286698775293500255844043588179484070676163205671500552783805191008069785918540653025504456539710853290720893316769696010528382389831130306355415920298009285233753228228639588979805399167852494388742111045237179966170370139394213338746927177611946370998736838774626280280778253050436879204609480484905684840281825508951419718218058911533290116695566144096067718671643685686431100839506999016903839088792945125884542366290439601986813964353987838885361148679135181954740209682152351424920092167004589811400076344064082774489410500311446124680093685557677876474951257153703153096826343305496402431897037346612466224987407493694049367501784660030141758489426018991032000473891760191152648027290986401436361855051133852752386281084572174084721896788718997711117931944677740952605968274668949964060312150168180243688919208052073364883329732539585760718855181106482216437129134133608889205339216884821415593084356493681766013458136641415465608204133254925674971102967077644534020743626121868743308136276260463805508525168874297574077898354990177439074774595327382377721109967131450098658385129386730348884468310592301041345694714882617299066591602841684070967893760023630513060630339742152876505516232307449885268086492279241621793086979965179679844293640484777758303065930273979857041520290153257452214658661335982890716429427780755838921847358538433461447917394433734159914329068003124217542365583085493810686910472925616557038474490927423096927220760936925787904558949931445855247744390538186922024343490377655835842187639345946834613315611981550977695240926442507935660838180042979513783895920887425072611053857118991422138978609261985130215248175800148423255392533042144056391208854232813077088675232781699043490817821127892461974172773083600229699836725450675879056475173166534333140661211634304061649240718725217575742905555444840032696905258837790514960862188738339035422851494347715549368131303602146397833828445818091135875646015477615511330342637244385640494405925762262512991900292654334864643492258849229286858122088569379328277052889942304970516938634561541919796827399577333674443425785675646627135623322611998437077568612759184907345161841910771145990778794827539287787031633654957945700603270631580751481835028201284262255345454028840176602271416119348245476325343476894861877335592708903452878640771175644314321518466144744230110669361561996347656371639812253373678083622415214859951898851195029725385334929010443592407538879775787728289819156997614820377977152085161786478306254226015073740645267619743831962262906107097758419731364394619445465023759812070001188805639022494025740503717433078856915850388676151831793812096019908956467220540596388310990956056649078061658446307831236434734274949476443385186111901776222356286707167061870908254313578500769189038136776244045962697367204446017337557958463186279935850446110698713869788186213149085937935938489101646820631079757195515097116372162308279327744391492013053497368595364595064291247233085611533333614299717694292317634956450195448358115564220236967856174845633386227324699344398272466801138154152279987817692657617458403465039817653333053158820867241478132633333836762669485317654287281703121795867890201439950044522458562548373161628309973011310236828144677064988259550455522859648296662273521011371735803568004058086692131734331460941748781986602500506635040989620394980875029340723220854851319914854479525394253143401539640889802631675570953004673516223939066984770095060442443621219246996592944701371629277030429970456551131597134909256729855872039640946176347468137733819447996285228272661485688611094518836450501947230710447866656269079888977970139020738209265279497686255576315057113628902536803003148563059131882798631265817494433015339608214993379770239033356737830959128839496322037352578854242382370925881294370364874226423919699081138401155371152875550775707964163464146498847665652411816523496322968940998415535169170866375363904232672978149512318586317225679700879852707351836412311414254598580834975241574857995015739072736347862536752526256252974598853516155553002409857449602755192800807451640930367780213183056272169306112018825857725665068156831129496389033010967250852601654232744506651883605905547010179820868731139301609736058429469881727225609842870046588769772453053584360956829166552642516555456448132309922703460444031596794892170251844175268101683023524608551429822271716505073975347132442505325413591876574065156123887211842975673477872131771844769877598202023100263767545440403019769438026682634803626935356804806147229639344948618511593681081849411549278615695095393856591827946365470253116188669026588604121293197957814910007083165063028078167530843784662811399551783562424099379355377931347423531391691152038988073842788835526847477789567068731963064996852086096084244525328864061196709272394282368501258069155400650457684491852488515981174806122232478753031411403115513653235311023999008753710512238791347188092877756072193108672638424088859651891525410191838027476586052083897597993989130445319751818987722341841471092800689099543221894139448965054059203484160201118800324795248839795317158954637463360640566130674720342472270002350320746253029120390792193889221964448558862196512531560761388198028256848129262211870592466624487059128482935764527653991868233902113788379230207117755939422419203703297832363683756508718445063161835654469134739023895967220504998041476098499549342144770421102112672260696698161062243219727549239171558973805836315031828160856370896800400740756138370484965386547760542124232999743617213837585941929533714702763689804463624306088939391214119479225275618750958133381522358062222559935895904746608809443389781482172916010011195354648062534540187126639529395880801386969502674138992335584117791168747080191063005505328867378493253565430768172614281627438027647999543312659520820342073324642407586456319837748598388267039928344168956043556926266130508747739209182816668216183075425023953881523224629705611167737388784242835292427782224277346817849814774486219862097399826131236194613608758623481644248603246162980616958125626572523863900301517996249005971890529470682340876270713140326940110836984748489419650312615109295605978891449371365325639361119196084764093191878466737931162739240029355464426334619476179071710102191819443477148084322879020280458987850658575164850973948055349016362817114013252647115449007839791359487981650282773908691260978874708357028977655695439547623277550050377606339501463785379372559282795165328458912743624391826098723596766761710881610852870464317645147095316030519488438343431859012570314688555454401478184571113799895274178218840418044022653944985072884829352029961092603634554178134422001463254319725666960193830003517400781864052728791124166174356392239545752492793335718215580969905451911203966447500566884109094885341404353229963378530513132945360994379189207181963189119958253341627715518291165265756565633863933144290264153002534453525588729725743856528141329329879208140266900521043067545522138597729089407481733801192586327791803747016383264009813967965044617175013335719965318367457948701972381462972722001300265079823854363049730646810600677197578149842360570421623033248537439113184012727146655822028061731029816153104377554274380679746022809906713931922172102239900815469891422019179537110418318788781604968994031128835089102735633177004530573009897452531774177666384088932091252376930675915838405670316023296074443501646945448945050090521234704761611828807216170531211782200573952406435336214544176278484349719079334818718113559558220775032710467081572377774214703942755891054865714568394573347194947908779363183923609908927608584380035301088032125731639034689109409624013332503821835213848974652195073220353528728808740298576199292167404739809475475219127768269912367142408713884656018817244733778865699186601919354678686901084038291599684790570928156145270559368294821654378782939236653000935628574008760986502437309522888408712851883301609943510511170033760002457688775090429330594585018350711327098465283015347886281159047637364629453651719699281656228565440246977583355249843873483712201093083771041346030823065145431108762833698496382903167663973455157170182827543342645301630047422165324337865003747370935991064061430408473401046358778885704478222010128877150686831618086464300282401020333173946347256814883317547981118258642749433423149076907437405090189027943470381833278047634996930873461030595908445546818408762049807404151091539386393596951939105153372809930208944599819282131274685310828202839965767921171935277074108801192299392453709964718676580079554902079517125637009124816373759089328714998393503781420617015651377533459397753733435950889987496748173133655510265507302427666934173298498316018081998883107150162101813739429593779080014208973428870657538826132458970555249187479394682647810742285825868345622823094904065470148428124920367496671233216217311267187625524106431184527445793802185668853052262075421657810967893873076795381635878940382842487629992962290324587282768394324598907655751873268100415995425729026907797019719997499318282234960963371185175528147318246677003299331736091042449290400875991573370644044065929597476258932572118676363836331797441588852826214039421729575895116281261598189556192461694871927011357006247247704633320547140129760356862467263880775806798093191691363675059112262864691773321243425983645418350922575388400898968857293213895717690577516138692682248425446456615174675878580037979791796142649633492959851320622261563344581644060962879196093920928364567958714680267299776462975023136416689510636650862467162792593892850599152710976289234594340927328049959342659469843815986511722134957765976049689544652573836556313545503957883934111993791962536607829164882204766786257457014801822742633057669410475098370907505787316957629700998172133119044637198923808706714207643126225071862462654734160637323636052655728303145946807252989007780618718825410457410369663005531508816171815035671874349240264576322742351207264374569652584924548643006478319976711645001931690172828485083326546410412327372190830942213240943178551867654888432557193775703968096410748462856512549599695742134629093842222851545952682525460430839716605685420995569445870501005632742994288006992763499300284385875145340036493571654606721713149235231085516355551245456555925502220968409184819187564590574734695862986627354957967816443219016699597388090488640907864754975755740289650256513889253570087115081739898790721473663860580000910069946305745631257935765772206160885733643403450552505530889946881521392178513158624901730770119557859904539606442950797898396768222421726380285563000363121258914736257044925933228644210008235077916448569305815569962762105178900611208924044353127846890742910261280120182291226224042826743456378701898306576858553141335528653381897748606321612765991101023422880722382823791713762949712946945093347263765312043994711295924909415851579477994779412607792589207570553432859477889455582789488593511058253857165520128681516141454440117931906921831922903278681983419312745725350025884950795712138103000693134939069030416314280407942830092605689491012812375702134011661013514161484067041146241578980438606154647926340366570537115082317276805617575016221284951085374897336422886012624408997970325279679853494702834960461553585573806432942545994143788905914455906397838441333076087350832360369269398574554445386128314825618084427284748359978386916827439064840261644649230075963692312959874331807494547522496791594537743874671146157615456218031045338085517408120487981764920295262298023089896778573986815853949282320965192568725601740086338104126284799016598077134828878431356065058600605139219411773769566081453477371238449183663881600441665484930199953558895326070209347649785506181646105514072546687393624329294616667625760160581318705339845682929631749342827899659599549474997329815087208979733488751866675334583370162552297552141955918970656732705888867890560537957847009284316051182710367079611044369701940595492334130125567307464544095603239336132295781020950563310967325132306877153692813428714263573399586208692852542066000576053982760717014301788170109653250222889007671518302526643472147661787625333502679216529357044167623690128659697960969221700406201990901040043312154735011328400110065152881829931829877249146215041305209376612928065215641649651025363452148867799121810543217651036653065650665340163846752216537191658395640269968365956692587783789181115907700731033166445969390469414153480481398080137780521991417732817255102696642186363030471959435341370378785798064348904789604941599952332257987225756874477913384121418927753802940671564114745838901752215079184690883349697355590745154078368222464211460977620535712411612933571963773996671734264308525266024370675816051728669513426898620383008261139137928446069931252393106928167612336983943799219328090008168573408888674556519641244117591392748396749824716331066957236116858051075050060546693491071125698844950982308640169189237551389775190115687939075802058123303720393773111206815007607006648813444643002754373160786251167697612352803572048720728427113186413854843304269258423898537323128520178841340816433940120024014001032182914247450515191467049090852458915347216618951609881767299724480460040538298738465777447173749301998923618785415540692294413369462576101977729034167036942902948723031562890412222828127313017429271786561391028616962912586273443283860467133849613356624848696314168609971003114292866688661983156364584495749904319275414567750106774745510919197944866718985532624891033644601323613346446107650262436998323311015058424282030276254905235977735547033836163936672944836892965975713312680177785334330007015506753686755148884190974408146568563378291631816917593194961007429720932324130380698688301325336195541995920628168835744813853445732300336499533489408453174579338685950221671099382990343111467357788455237445090258513904742300240478149612799945964186179981701878584930755499814182624428813143378980348252599942904093656564557317047293288190085757901860994017216566195726588726352578065836177021964118342450446203425951312863765467681524864889630666851844662651845934905420055900113224101817460312273156955968789778494533013419210653229810298281438206568696461685693550038242491686066096941830924155672685793195830960981714988425341658831558671615054334350903565692939255877343184501444097325268787789467473495455792438577613714735206209700094849778448359424139934636242001801958093217046784753832194576183272279025421156639892965763161599243509525020071502736567691195741875011829315873896237663534784024011800094169353007889762219842039787388204260032457200585609896421214011747157393060371230107099942503435348279981577682865423570240075417325262906670828802757118635756414472551466819761919009274644386366149042203370356796241018760630561836211580091407532544848091028162645585889964602491627351310865669299036779671455421272462768389299625877590796553367381967884137167089067514521192547823824253489121726536448996434117560466728284276893265327300107214972904821594126253133170605836422045444453400839417390746659234867369527494157955464740757192963750158997000815017767770635589790477970160283814265869147462717974200626393442395890912313668158106871969268646156671838451242410881698615277503853823026612535898457579333661803221193692194208061777275545364372789561088045317946891061376755831322781385421471140888649028512892078137587787401018550447307137748314077062752746986850926629002335563477880720896115042113281042714935474607489898744343036363567338166102506042237100539835302216253700127693032319258878832422799436516539184493053573435659490736068706110816185743570294065814555004762522410425698543190580356903555580120889161795107897760570106953432984580647720533239643775581239646281014843247498770601693849007572709906263506932401384843133425887309388452935638672795530143310397208595302937417189159290147122562408468935978035194760330994006543421558031333319265796403815000790197890751564352701396216491311761094930701480475606931942201668624098665795328043966646212487848322737558444429598393947048066048494001943641391328848186559804073842115699116441430437062969403530959745545346057661729963567558807924857295302009954358802997386002970271373999187208527863322794489706756762039846353013583940697108222019170624916762847079719742585112060744038582668599813134586096965400480832880392981838850870888929953697316587472063096740583746659797783526821497126304415764866019016466159241632665223185620982994724746945361429664557723281308248884624369471831176126460866771444536308339549119661692428817559571086231497323098343461135146545805613220317877914680216298598505869031767090386026105187690643472830009779815766390138004024591274171284650414123188898898988181105612535464749582651653855500853897978543052899177941130578035624472243301683758663943128432680930887689385404639827464662706058869950210345064153197146275690794464849722677066557297709745679456381144587142447469707331221910814637364380098139868953398626184168037144070198379506899469634555023044272548552546450606147418864618851843533236342204597375135802927462642684609707627892732648479592762342790053850796721468353007672000039963315365589481223600805170404896247660285091395954552823826173232278759188422469021365028419747386390335454704987262207502818450249058702430254610667186675527389880335992917813009931620763826384171572804075674474378626868179041183930186830013402340906006151713898150738778315266279573992013873496886598869648918458061337647685886756380749396681088348384139144351036418641132876454039176244852351456473056455142051475057899714945218213973215467559283645547273067172551871662481256630583512594409209332738945367820325686273825769620032679629755411000021608729996933296793133506482384261853870446421278622722265083740735210244265859557136439321898807847972466471203869249008323534036855063981637972236778629371061554515556182286517611819187171187242688152203535330773341389025234667968317628798326733509445200979022738589704370581651490620846051478555919575490149460286785162917440692470532690799891872017561987429116104817843712466295345259690799717983608238033458228753695567157512862377461838411307587996703918557324786773835288221446369472114674363395068883283380991576932031385395057843233810424601998938322286983664394555509483205090696757751918351140253520827655442647875988063350662993619065662800618580545130184516347466868132662348809034874842960248621242648385375792384588875711741260462008210401535190410296335845015501513111365554089668620314746350683171941847906711083933005342546217260195881338289390376099013795149821286855833689296663757454542438322854348926902885176399391279154122545122260968704830343777413587156473457825722266771980563362413152845434073680357693916736331551815247216589776781124607445695217168090503338224604644646970062237555470223017296911351246136519830303029128600606828766675589207886816192135887525422396456831950326556451656959260388705460969276264562752543024430679907535277667010212291451323458459410285063684313688844149713277560208170689516083698327157272357154503763083691448774450938750972424267299799937528316603253987472255984369594558251999944195391149368860475232216574848497994344103157211468903773651034802092658121696156223408258771807979299680243992078031259909033956951557987720770048757002474834446538512742411787526449981453755119956516050690271416359644008552270922453104088834784192739106614897526094647890997595611023826555820006605184170478782579208079123817991838730628522846961109619958011369058347515937894456079595575286482713147169569658174128434526426326103295942119146444142590057790063959610554372277053186069278352681699662912746010329468273643328065913602027646983093402616942634353349573458109920349265317625317456275719925276242327630059726207782312734178005712313884763249677542758276920967297613750162110082728476179312027228303301687079154265381352380076866494258939424535692709855131112698609248868171354564369173852083734161396364471565899886168778052068358269881791008731204118633717351782729907123858296037253415260551246924473644732945002525645988765434245722134593804165857058253824963131215578476340391187337338245989140097809016022637022182394940641437586478805283179116167932944930372609781194835738945606194706251701497804483916722668657337367747899892853529770149166861714666236051725600577857541979245691149308425933524359216441943799745125853270283343062912900730841592968708584100969908417449880075807298648647282317559836382803004546152954458118086382241612951590982508516212847037611685987634573553386410773463184641209745358347485988255886002080531011657304121603057135369344407160400906573932485063880616568368750006966759304043369433107276569288042615989517215307216119186969012961025778801963016862870998391620981103916328456600883549616436483593284433977227766680357604246738469101684902565099997455385641940594792171375233223720995633337885118591133497682098675164646095117386337115404891072260371270281260719069327477656060956926641670415253021746529784703329935464041030844437836101873606833133500358929638896519858661781958811743035008404432503293371347294527856151864657039480374297161168947408526900644410327477230489713884851836005074567413364109981090233093647188600671318904160470315943769115254752090319441032871942512667034901591848660762350830896315327467364330720643297778973071037565916946614382833615237462431443909698453067018456044657559025191171039080098277775177012231449161602682155528739258973826992775001832814510527271209041027578035419159400593297565769712451205298450660931617356909208055447429932402784464177958859075185739345447847534493871279727438050743905383704325951148892292551351542989614303354855268930434367246657491997658315513485230175011790117674743254682955892168753789116494311903841106439639056506176902312347700094736517913284625580463278154995328287673940792301940288760072333097862793023664180697167654891505498151520718242984111955346012516347320556934120637192778784892642568319054549308705370415292890455196209739872558108093964122546370975226770606872245816843131647881738278737214536609568077605640302753324156649529430592318886171272950923669828162728749674311802223793092086108054580149957220520644829188301610044660007772499561795841511219655570347912661731811496434181354656488699239723781542432794629486462006447930934879798950276592005126378133882786037657860968177846089629135283817710773851025049115793600880050603242362550500449571195725094504490989097577175641629184016663698154900867743029844385428431591637723370452208376341251951072588788756991743794429880464245025412700337368682502614488398359757895118722574635328624502469643918503397078735867508395178335360727191274744111378026701426026439346774857532254636056807129203358257073848993942400069758010902762557338098092728084022601827508746386816827824937320409687954431031519970952168053768305959417485144522256492703874320081472639862900987858013684721894178919268771344240313203700812996145960983498302949264457965434689160712953632420976094804567225165539079240459845404955023056665113443776188191568786919831892285873729914664840953322906253860842509369093886970545276212322551173866808056675470716948644025048840615175997123350364086420764036448419905196903224813441696362796400444719357310108435276742214476031497889645286042558837932648472003114578656237318448295604698458688154225783461632882787082243461758006761557675892913967673116131111683717039822934090914374012474516496396599222846594455990562704733408182082567059598849135222287326875113889571489604132485857087277793403190246831117926077995618891615014659386674595958731197045169003383018637876593112195519338603907818750523696582771644424506056732907859404121957652861607292193397326114714101420053246961717617499705748577917496909079400895667529532137995998603292603891317339718014833315533886311162729833306078136722293417711300810160590891445269249628809520571481658041652843705242645780688113495481396439656675207153564103363626221779369444940369550900614589415836259488307367506467319662409365562165267443967635832451667017620752270996952007102182618390088386686905030612788790046527450640056288870892730483457410416190145505198187300315547900939893152524005160017597078165375433209566377371337020337876217526785532088989539113948246023797509618564511321139475240135596076319567377948597547130497525259489145493194338333597065657232324382178063808550708106881544184380618487527529653979098366980458016308297562183439700940022058094760608155881117897006106362782916257408765053412067118937027615362421600450630608329809264883914370429015379076601601219036145698311361655385134435562867934835158912344617372836716674339726327059920353038097485055225722012369123537676368595031408763157998532121165343029319904235262578129541714636921646471431503155151534597615007363871474401210989736918444999098617002878674493746086827352258843323905427669133212215129809237407869383341881703959488500558912527529503680151571741359913610700214289714373042147315396620780015566310923133468251828940462922522756621722641562281259204618061898118630833334800674719842185700755003877051206437946718022362995804274198382466878549334773375829066640893897787123580162627916045613938586534502453359271987918542629757427334425988928458312435989542931319979253069284881451619222877511986001125250148888171118744643498700425058765846001159924075755951281171459300560391904521274308328399631923010402315181202650287390786902492957403209815068256006818474826490844033371984993401901891063740339877227789377137238373770303920771891896722008663666437872258060451547152375130181686465082710706778667774484086557441243030264364976895955593499376112675541363060269195085081986869867249859706449847625600906711224138936596429474403934309284845649682003211658682397746416724020695526904053735201191791705959536081650932728018534442747574996380672929301300945475632974067869552921591183310064043735174704986424896754992610447926104388663714686327706802352676317725610687908235631163589135297528518209803724252840098436634395377117179994409428453621821233786376285811020890639866563910117428688645058013967803388314675779175029785547724035226809424343189971637068238349949361524994742807481239019588074718281504712991590025272389240868509166807774927466661486653040827244655410863171210662393665899958778663003956179735399577944727872960847274448748538566210368423115293415347078356644490335096542954763404254754391363177639444334220802220942585632483037449512007795060049645001236000272895975840817941329262644164370398190757048559905184807173291904475015955777294611879682600376876839172104521104449965283325553289327577811825423213981142451250742324400286893679273271801455110568045004988323759266569385011877497371872868488378155765791462177032422859643654757024432017438022199555196335600031042018039518703131703388089770096830786268969458329179454021252615787112784657781660340313790186023398620908439110905451638554081694675512514709239606789654173499878353278697264309601379161602166561483570501405961739837418606536997252331386540828549833996552614915499604969870685931990084258900698691008416186798497247048180515888871787535256037356610969637822133399533652059298036090705863859430822637446969333524836928818356306136812807457116901335609171715836031580441274331415080322850560919239000136716860380608905955227690687442694011316341465572837201427529211865343517599559547576974872234998446614572770933899985055381572774307136152745518794292845390773580968979324642749837597064603598195705408490751326208179480506355927176359332073179934211427887001195835833777016728419772802411076633675991400847108437365601163321895961671744057313369724027942483753123372561927549918598704595731249416050625079603051854222924186902033516482401877250618159140448455399839928986055309808749932810201454928918611022466106157978514383474356734464794595439053019894636025834256341772494812847670797011618877304674779977218774774512688917202634639973677871711480795726343025709133487358565881093798750273912359787875632337520778290065832294681927715631516866585948899047195967203211399112466257288726092828526898309535956068690643796193875012049905896627757239646806424491107326068952887845738634888369829465032344685011737754770938443225259284522056316211512333620448588275197363024361818788751368877837832005851877599908938661916775838156459065771622203358293643810310374480921819873973411362603197662659458796168847132726143593667751478638671759756535155658021432146338757903835573895741870612654893209958848007150504413209536966730285319850109924330093587050620562999498646185330845224023155282754263845145172782403163089595427184088391850363781907105533017120661424461903382978371911977426937306455493144695033913251785139189519676483287373096228939137189263680589529670875363110898851666906084598527719219412160099090394732217625763455759434484037550174882300475513158177299026984596511942166310552844648615415725605171666528676997594476524474605966535174450278219813172939347346220790635404153147936882804215956941029722619519803632309566180229997205913326633346265279921525553826946199732213557467779539746756331248319893809439495980368430563920492327126365750087583726557691332900782978975057282006778038029865629351618620717694749447630497007405321144865449136671672345190081864588311717954353516423417163465752948779132634735256895803845329758719963362517091601194736746142272172277495747588278207645977932984427699040434788925263029892272053398547418590663663284798468874763286930398483573677514399000053817739804142251412447882218885512354256803204998400814075734700053862834830188013489373500254906838921883565504657092177345355171885421208026147939832243666525568992342705017789650543346516045294031703276828281055914390704196932306230424742823755343711050961706301193785135274155253519844324171955066552470642159515460138224818625127251892870082827912715218442062704042854617374481442675294362290548937375122911757500113542557631734308954434587570846717140385875676831236199131955875387517992099680646818277713369153969131942274493978273240757364882526112771235204382241751243885435627743618947666920222751995852083831257539686999756840681155466396450296716575902939298583765861736809763954153324098241028984539415443514660341166443311049014970062877371758815055993004644256509070694864057798521567223738739618674381256376566762477383456337839960897855397665256325065788193445310925400931823943150023700566737422513532504116991331392829602829068218123660263070181613725305420604301421901857745525820045423110395373531863151884663960430161917215523705601280817734179728243200506394652555434998104827249214218619634121730241067527967098128052619713377232698836371287599507502372466128887543485565345075404360005520559809403104770693779571278643629621930967548475310075205549891026405211508223718649252630856535755819428642102177965369977692803038360553198669438844950068316728229069598681301162748042510279402477399200982448497500431259082111019659225697683243932622047764057392371579659562020397501740827558418781274302485949527842307739702710381533093813876944104084144857200303898578237357776462882261582200323725439450749599633662628603763405647502499709200338666429897894000612816410792123221514919983302568270255759780216415374416933424188249417495510105550894497967091759299293888124409680967376592628868007016741457158139071281573443626499503260890785114084806954689530798594912237124101833617674408540866013130505466105975713145213274056702029355827885845409433999484369292083814554973044930499487639462616501847601287688688967974722893240636932409746946070237180993524221132299846190169890411269828335658358915991941297450940119624072219341459525462880858151709700409981374965168354752930426740905233552230429644321256076841249659544582182767492313053806674793731995699676342337617796681690045810212055259559246778199183284203618621726014413512456136044415824161451085442944166200988625830850998421966432725087761500214843070025414395549456875432032381296668562210390719511836487329539735034538089308996661372864890834963658769087816927726606174210771714405790927111142941224153141718816780104193286053927571806690308811546152890752871571564714211346694781790257234710594179949746101678526997002887665257818954745384369275377343453982263226204117695537085595178470508105797139556866710407535868587097635989325516556564995523867982879358707103169384728422323491872045443131039533975523081177497555922040611169196107982196670035850413152508578403925200073181575485073134567032125118927819698748678152940501856723206683550642931391606945476061660095420433640208134005626150409262190272883334382204164727350363881912452022944315252676444045312461737165154088233362806477037010968617163424114877639895822482732563758461221459076591815280606742852335638771830874234840700182168276600020602816794495298871490791380194862979574224629409491188655579410661322890906582656491745614470735695360641907540318947268063951596136310103721451279182928843370931992329624356304891962143310014020252333430676936153615479689425897859597524568693716743007334909467214817364582436010861496172112871409873287120141317866053756197863462702590003930068772545794387343611389515042224892147809786991652729780427717960168930747509103400498622494522209484807935512052050295741845482581700701387170903533418479268277874156467772508456648857442741168839126571234748417739492114967842738062209477075034101892982365025106086583877185065838951495107927405034453333476950602867925572890885313501470861557112138681100557933807239390019562773728045361657066099304775661301549340667574032081616019399691862440329256467509743983047295010102847998354346275872817714444111591017344253013046239212254310681673444316961106397764897390635691253903126722891216894002536332714593483773829836652725570551501301367640908918400746740333262491286842556283903561190178629256728588376373543439147817464812507361426596597438276620983275386894769467871386165423473178692233722776439357685139216907538647753282616692494049809312135232424547146923346666768669921805982655428935622596301783595457701132981807841585355678002821008561787651863440061565489976077453815599635303288930561324853247266306767369749077498274684754256828513394887773732276999070632861588208190158099008742563760523669854263860225635588745334834537027750255242927153994453165138479852562040858835982313330058729677767484035816770372026624111458958513516612300940062178157209951400136205020997700026077399513138484632464257191123171788892038038673470040913898913539519168673274917490356717402931511848867647156494178544482961542127581782546056421848459173260878332292577303423616723163478601823614483823410074161209491991972465615370767931525347424306223970114390804251288309925033690250423998379347379209648448126384991068439269530025741108782382388903886589421018743494997038947107662190760962642514280441876954797445636887839898947908129744233435834009964016162277842082299011957332944535392032120667116543260518304840219035367068665101785543310613192314137864295967595574113991342898479341833319104203845368305664204261532053245419305855315430595360398361123090767781479168523796163901890894491192506650802849327600382366342536750796479980740263876484611981785072021440308988784263811357629112802368381164879034116360100218099910306990696663409000998091441284076484420368234704365839669357144504677884710063008998126911955185378524840822542457271353768078126849500632551879021653990660840645786545037533295688464701047509836271972256583252665683151809162838573966604601588326713384801651353234904527132656720521345080514718760328940240461146216035434327679308428019039001409044851868766141156788750448182096270488633294748532074771646671887214882554213092408994310508366020678459254208270498507212406813744551160197055691786164649013179899046916389065079085887437289558396295677860565012493979573571884863743947400980487865018618523442562187475133706358616918736951958155204880589070699778976015990357588309214164450545501411934692467238270908319207149336860101346696268594235063286410507030566892185630986223198437169623819737122727949833660667054355695779504173263171282849288145200231789480549985856805735619662751477811029391038804634109356285566404943017221154454461694863789765041000778687793893591271854963584488820168354016959128442062067550160276438471394471035007297670198942355252500241843080406271142935218096048162178325971896422333178222819316816850058793947481292308471240495976342934481688550213385298718876949126284853574601841360543594205492319643813989414751792047344719683306002164127012415258955655567762836282806451467920528949628448281535047706204576585316913166565539611445872337083816628408365998290401341410869564854535271684954632545761818640127582796685795980238922032086948145971437264944498433297658220112031492424494413144160727854386216531806550476734898878689225326994697768613306632316866288222011209269961594991526043750004218613232338459379558296531347059705252661428932906777627151663472296871402455155918109771567447441171606542606122214361102870629890271191460596040606990620495679333041859520629376345308319612346119104618119782435129050477492366275027191182878751983736355605828468643241197243421909017307762778913921715981268181969342997303085887541297100095420208904129226783040591446451438212495705042098191033627679030901248811586038441456583904369334463690903445693047207870701221246044852852026342099622201051639333083549565423331843296081145762783811813431998663633249786956081265102013688971856715059554031297822049118469175637438200785393128111472747841905691921471759906471374657226333141103781629301818289134628527012109956636294424141943673922311360710633510388338356262552127828348269599099031514257422793898430883807135208899439064936216389636936822560764478572162498667638844290502192189663544441055604466664492690967338973874070974564399011751977437347989906691569653010387043277637960388324877494616286488616402111094647943354296284444216236822370095643503527950768494254805602389524992286939550573889277723210766864743013673573011266369879039398567692354483391776339598240418489517190251745692745622314172371347879019747830367608798859650044978278894715011338226498520561655659367584844734039803401967470508373278650681673214474462888686167826478326108939457350237092381720672704381582993106417935541612354234968000326961623912699202111663832929013500323635277312956819838505083056602691059498074061295244877423952493569238150912923522555700765496089609710345913985996867973336389975946813507374961345331910165240797038458654003436336315456739141724101430430831162213442397869320106875432539234638501254746807236214320553486010271873455697261239462993267765126627947171914932509209353750112120027213890070491693472092438949013054468415903759245643932610188376827310451299606444904512303572491203931416564197226430125132186285051082773730670589224318662185854068947291498800779667034733279775740369924172316589779522833523737666587098032856930373976013742204768067690393804440442887762828736663092047825089613691991421331621295640800672653026321345971541060825506267501952959121744765311002278244212354891916540699937725638297822239060778076285414702644071846059199799071789429176823705242191766396036520254346056761868924133421388857948715745863041282389877932009228839199242754878759872400895942960625933992093660038808945710056722012994954882384520014518958331863969972267667556749322208300819825414703121213957699906945828034859394567078594845726864876897111225507288689143750662208333819212983759602935849913563539649327139545997943042809675478286714313948124054753648913560451082957002196132078063925804577678120207146265121935537304378169281982987966843413829881421874311797698643517316740359203787853839477046247076237392977904515491302259704419070148401204008951345102245604539547057905040317415835494159025452026289376002802452127760528854899446199868640648955090032025074449644108977130034769843759746178563378805222791647603706039114799055827124263552377799939942420763901780261539265895344461252232040778876296334443869648034482363989053839983584973468539790550083304269879793095601391796908659931378522185314996920122252822658287734238662485109208538437064883702691701050029924404020667634008878526276325141423609337676659362238853890234830473393907302717138719428743887969924327343263406878607804873569813300103201463968376665388575358080488616905843267426920370440084562531531157949000487423427663220932243973242999352519786614924990832781369380074881416151867364773764723038614195096812346480541430055255097137725293981269991200655661401079172313255500345658441585979540685072364494037321954183704924204043232823007756364720075218633065744429284087392245303353434643858332708131189070197623081686555206902090360474996857207473075289396116600686588908117612980737118770849803468271274410390377429557298907088179440641058303117456108847215763955522257439931295660192477820079500593172976287325895543614644344951562857725340404673640777576981268323438099884822925504644003777330854248959427263210718361294080442036700637674618520696678059202743244487350157413887095283404674539092113972827801215486315142601410830905909214383378497555910915386023885584105311199856169902627153565209321455744718862339766765915740153584134632970786828093677932973358837681991850012381881489795698477144325225722855169004083448007306383333609645594269810530325941598789874651773512544463373603337795703919480806938860082055760936141963669056517553754107454101740536717581555514972464115145756545062989182928492842878216329958578214887277689881922299648624260806523471268868570090242049098336800117235790412375261150935669392382320312608577417179380584668587592298636950712077851116747718840218088555809164539647880561192393029252508455250679991672077149950899959528193964508051664816421844824797975337885849137568228962453668309736151832231036616718836136420731953611815303692558572195141019421861514045269885107840417543293074770396130486173880580968834660930331587667991242133196652168873005462718433602012985475954331075846784934418036184812759142510217614215629490971350407732549411066594274500999314742519099789511470369080275043392410250612599014833198028415469282870349832589741229964749931121070388741394120609979095221107014278224004395109642161634381468064300736536736320122296576395778147644398328643782020630266925723395828297912858856093500698005991701450972370328000926551523059494320217727355527971010245970299298980177492330725190001276489690608383994111599334314264676449972047542883972931755123996251913206045824328180522931902391795310240469214823701284739780253314524458484868080610642764596451941011816621256802542629400836044837720279316331542184671148832981603153019222207454266464340812591187017530836234212048491430735815740234554075411741034637046215128543242731210522463816003154752924679779208515554604954253534541842164003351926227378915164411694504416191527119228169802117010384081113226272976102939591998611599630099123879383445690649263917985218258111113713595243126329419223253162298462971790356227581086322926298374142795013784460524189833662467503386768523510467265101230691586496621695166875896850139068744441914241878468691850507289086365296786993903501994448237104288629186724214630961149890288637322280559709154862721862329458006564748454352303778826845914551220254197886434166838343917114185604187904447594448566017411063021290028008448465013853742481823672452927507714164938047743521908949067613784257389842094890215956082553538224062301341767118911883579241378523960361224031088387606496130870055248548334216866398670091657292736145474860158565470188436776156132542836095045229896559628742579670860949205215134808760731670438749086750953802984671801229271910384919155583382383176834409959552234166347377023476976947809343198093405825723514689709154222390777649559648995237078867324246125981375753028174239986165812480223221374147796704092992602653466033989348308018079086237262027809950669912162768704933873864839376673865701562141242630716143571170599818419884236309007516895592948625008140796793025506131498943658514629588556090601074990020371954845718110460659019075191468379951481177833099221167795723596741863952753839056935788732954147552649474046100840458643117737645465027000838203167157231318122522197196716791264855389618818713795011547433357136562176375793285135188313761549305888843245906391092103830022390369544160410426412757608547054436311613171802315938806120875669977623534939481706119640713028204236317116131481832502443789406307055565542331950395356085457930918705557644491779172490985994061728039900705083971632370262099286261506660216802793048252824576809588851173099669882917770098360821491648610946943371514794388928268560841166214566162486014081305726775646625460442149399079384836262916357318435282662180151874729070772231607660193474383572619265337376038840944839896013192028222513435817138954263920519106957153538713171476854251858921074476855942679272870315650904510413511212396821012260871117082411193920793459848380313282349556130308807420342224238185919421373882129141366602824370712199339811993431928854500248451502536842350207058173080108524275432529306903354000593095885243148641965592152213947571619794928560858955868091526376223027033772244955961442776779004243508846147160169268723982343109162141248695028166415272561595730914706498003744414779208304283179176531077095878767046967813777734010774517924886097166688351792697674172321351883611061084363495015724050829764206842522288945322520827858219092599468796226395967007411419059096847486912937800689514723731746571050119896759124451050853640745961307037767580755722918384231784945179743376717404243448741114291778087091654564277733487747458425424206933682652202362993640682528168682707729627594700176431605111885038171717724045065928745466700643648607680139232286201610230220269099312517955556463661583139647468233609580133033786098061009283319073629339208008237202041021994130731423373826740885561491641171896182070739119660390718093195794238182306772361453567723710376183824483567305961746321689067976964001452781321016819607075475161537429190446384905784529643578719590512998032996078400086868769514106716021663078968189824730413145844388614587373544463151034679065190891980042624862203773377634848250748989286207434886279777824674027323370686820308494042454251395182250740901343368453108078125790382720358919501019291450897337423731033052312662996263791110285548528795434603930983041059467152881015913673025728834632915361209987617318747738628266714942915580030297155620038369260220419592115477331094535323966244160506909970054336430682805991705292076261072712367710390413018823538400562229633020434909473649649400491965370202673029143633460742959685698920276940939515541346169902191030935690992727062815802351281365752371207122234769570371428651145232127817313316164269189564035780632103940964313253498257244788650300263379864633545007136350501477170913159097821916920359637365048165008518355929151163064267721437967493873802168246237877649939187077103313908862998221154513351646973899443921735051368280829178852660052169895908154199200189787060222382711912010072969756281693764555957187045188611739477748529975844839575059223476740998675156279799279785260241850880699113905090445288093342558422847718212079052180162901648430384595974151446623631275309994590356667670010411773140621276222163011662391111700564497677999294318093351060250554639847248243444468812222622899212672850720158372550649869016520853385296540015265483797257650588348568756177719539374713462282013944291921503774155542604371758415905331993646198728130961111029115900678597291554409637219813274749276930386579871981781804370553151383104954144777027896020824629468019120525915894194521869035903817697281376474746926813536682437836191942740478632857572203244616109822824536334395810239130542023815583323573017642243826614120877850351911554290269762471057449696163677694942331526318295835024507613574556795516561960000800924363207102903177862429876491890189791132410337934694663053049263617811442682248944067928192515324104187288757101468467921918775104712187739784834905196071124982005457531744596470020863550279432763831565560973592744689783979396762352034023265923962463243317299385670138480724364538449710383445922902831569840330998019677092332550853605400643573105063047148655673596225102572766509357764809512970838564114789910506749952048739932299337880485733530720661505766036676949302050133488732727966119136898006378047252177849776080445823033745422600525884240597055821663102544287505114012218851276834554078304392251748309291446894669706482162695676350021441981844600783806845517329050799669332741284731698346249213579535375169073214716170385273001272131745625292780575682675963314057168001303275490326871712841078485358050707527560273853909785579356237036027109183995035356625673459729132516718714727055472517462702665880169851826828389814291230980850117736239879180649743938293098929155703907732673036679836649160028905615616674639713403842925066288084284417276694943568018691275308763311882525668833326988678575890064931869802873868252889989218339240847218439094636284924992996667879812738332197322120121534163761595918232638979832288784366048650978232183584883014801304100861991092117725757519216351169892495711299644855215014882146767970651223288919672743232633437343688199173509628202283852868554981915116865733451164584171751105897405750239381911275651640793225935747137019595450434582324203938589311204988291448182801740627111950864216785861897214057982873819091406485590960790040212668104182747600374286304895857019661461733207331656241599026697688208883431122261564145781340648210497608954186226692358081351225118941923513733824995755532451808798288222297098012417696039779614881291127691858978235816676824167862318900926879813937324197461701526613588645407951755742690510218380411130919009445400591462271516253774734969171324659015598350033871605690818385908739548542423516160212876331895925776502229006346286251511049481038884091739268325376605580934560510268590593289694677218701069762458690012702291916309620026588632577897328846224616291536363210216294934168423525913206647489402054057395464246008411542870430760426440606832847177778904734790832242287591570832461761176294616104491918006767552661391754604497702500459761866196090941124850334685063464866686033002633586217916141043631998939494826056190651372296111661036816773968131307148329031100660785726797027618560686256784484028078338166141373817228784171533505166168375334988641543341410318398684408025408778691880126554983282017087338588008144967595751749302667935410683948196060985121341297995941814909579348860128124182779282997914944205031676662107300632069274715833702314838140751005687495359735601660262467951074316182777038062661299913023896194713825348722632469911804380835054648424545429477144759228097004088294151940898193373355958005709308728034497824440862097579083730307031104667945841544966777304726949226657947720363245813609587780363256395646979928688233278820616287275881773881562455317440077901359075357565565236835717431330547899806399802778913198274846276337276633503712161464147964924188406221572180834594895671414807997410877008625222566086418428484977340612424161033320526365638561308460052090356521353073188683565279994671067281768934527467636025022550441311662808761091826152658751545131597335833467461978369853617843297638266453118297468148476991228107334913660887581378048236744629928124483922646905142243213189917553370380497757816025127848681895042900670836961469337206122350174625953421450352270487101583246751221004356648943825469071913582364895266032339637056571433173214446624283203938142719523027549269137073053362001224402181782518243385168581605118583218875438999801090695088746482080766759290188070451509628282349338632988615858482655551021563650176173988677228355186233583735155733188052459384497464737166272703673776493976073579981026355132471431745481507791401392408630860149491182527095549001177539420899186430874295037007273896118871623933812391727950904780344438614368988805959686431256430825832494989922231075277039503972377324970549791837711725385769950189405552244155614890456229158842777108524327031307590004614215318149806660784588353182420420809528459185374688124999508839582704897607941300816325376781192995957364152607218450179704414633366345007221358870641535025954760599909776740171458374726743129924706105615903134161867779414269004120397009979835578023564699153704066069446443778471003498575309981461784851880996636773959645461655364577621507063813125240740821858711473932815913041096094622426669946710403030955965611588982740440130704993563641511564750527926843901160530561777912976248750406928264432466688532188678616115173643906638659440370984891359378717146549481673505082166229970718885725104856972357468123355258515296899329092148398242170671387926654977281525342383828698588803461793398994434985859054214104366683172155243548844675635453277591516194597038032501730565173254785717714824893774201092917069567657200076810984065300656901076934359679069486989415346592063703294736440944016351499734379346447493796874049753348133368016788414906697610099606458386147417089187023541704124317877610205799744429907657001528352156724523108599911075468999853692513837330798260041693587609105386214587284038758469686094171506258115704376454303816537718107859198247032993341414330821968532201109238941467693051470530457445652565882795597484002002145958921324855042319234459983339505889686995181347987939033955034742084235685154830046456155264076186114641755223159458894890978854301088304930467051310310318383057972170117506175694250265272407991715440351615273598942504004794694507183741801097855455748194224154819860150791751314850153195494124298037271517351602680614269043027753960243001141506190660462936406141138590226321234830948769244165400272279774203920643437756054528497676017391313062504763734395706815930625972907114059680331138811974247994890451785524481387178468993476029054191629780494041901380925544886151730288266611545582227838379641549285797819509010494587358056055814971666148635707394296277439243490776741872307989302196952553104518283384738659921875282428293056133012793387456558127398677060418057194201974106783635960789440306664676131135607806949794911910378370697316347520510864987487605901909594643729717465411606682644948167215179658506846898350623560472107268310078240532500596497021181829928089636296333965121566970625072493233119619514846067017316953789671459564251481240811760045185922447006549028460011212683050406298719843187511644524449920408076270049669464567729263039936580246364683884489769370259085079403002053698016898030941457801618582230902217443392144277668395864425026253675991790093375113985827418972446476323656301447005829967995439572997979933635478050741216901121276612040074225100848677229392788714921667549666318789856499513018895814004024742683877557497420490938346590577887541795031272012525741758756868887314382321445266607426712984494647959427731616233577364660880191855842600142497522324172786951657374880066104668968728546469899733665943225429131061347667322400795973263550185917361796436499704951179257721986463678987541689789716597096521865675005521418265758273391649200564087287222025539652803356921596519154187279510277523413031740438400800214181455752339379110248553274662798678417063839223881320923485877636219155594442085806017213356220406726211656943554958565270228361714816261401596137281316740911927673807988533814438231469884105492870314420692074255417255552909198438820304302650371578282452088859323506420492057292175457574373863986238306625379399549937751920040998803963044169988583475267207562065500432833330624964918822859425846496545537347732479123330327690806431598872795809643180532486922830649426532649652328791263820507236379116109585997283754693003777358667821700503816220645334497287133527565277746670174851318503028771548478616453838470362653336470896748669720731565692957828738358066710645191194841023667884491688060485940844615439231153185466446324769145130107399127468197803066208785621714912074617980143130974278295822698880019976243436988698083016209382032740804488623517738270871502144246099748912172270913466861345291072763042969999386129438039291723541001617506823590900892176566952557104624728242843406723323062189930394324793254372652899322625490175200150464252216353460590100428621764504338489726118131291364133754570869476949482678530842366896616590083656755502467181224162472695701030938338655983874018566737658734270602416054025846568958257589407960536102638280402623981826365719361816385400611124202334284580841544188451055489150748213101167430705495550489785383453707288437826032589450548971286626593770908745181671122378219828457313709260856598956413070571947801077811762514883950155037971242347539765660608102107380677667587496195015848348845557037603413189516603746651752416495872652349412215185156331586316869626115460960880006940945814837847218334041884759444164837378306641582884514007122138933789223300136071096408316082507928691647161591630163006192013000640834945508229556267765134128118643851785797681778408751822667122006239561149623867594001474015200553580146883536458055194688269383103473160604053880119320999905641617389299891417551778293426303219891094307874878978480506680193017462382734368871012050269344533767365083741166537738952388240924916563143457865696940388485951685773846168505472390933353159599284552576351985145242508863741523933784412571875433169759666817609614670781213315592582572337737080087270997680228231101530911606004263608740962272104536780497999634747122716908032051353933471760324298826741862112626945124065078078689064773930668870404882489242907616031702321091500075350278414197380040018875143255037068951775237781757629293697109758907642970146865108049843343678326211340092377405575385085444622777783140798842713388218196164178833097074465716218507438203891724266427090479281634924107577353923645199730513226002808120104265252874399771268249701792835774452783141081864426789453296622170088110861624250871702374015514992637586417649255827881239887613075011373030127259030337107559046699865750971391133707916621968499761550950922244843921240467605963108306090940696895304890295562077813705427820260136530533011254989098395090947414776045472383624597351234174223639209537034845928562511084809697137133871099865926708407752162924786376765934015947960594995143834273947317683683887316696512743307650217534997759181667438667826180248008380402219147651833261763028416750521137699196379575160246496096113798983963550315344944082818791019587758844996638965466613231998100383046741319412448613804588019185632120216455068506687509468360713338398675033817071138852713529076513110002599075929118913256310287417807003472861748081849350237550841580270131381242400568743283029716459163383119213897229822963535817641376110815160267581573872315529572775088158320564130670470072107534766405343424572106210172799720930281198843441267751768369313262702072185094249917381693371503394262338563536121792087856395905064733609649186882162695216744226936191948344774710439800797928610972791391179168460293066385814138150538798709396653095462788116907250980798974488704510814732680873802619273198571062874584883766615462044590423910137424459099340227709121662397290190238705527473332668067307493571465808766403994662244918611698194529047706343988373928080649540019737320113138899051380978001394402923083882917659842510692498951403598870625273395863571896056606524796048305138939136506435083087018023466587269712812200559454008817482560698504056834975519959220812368550444869481712056380331865135999848643086867300288713572470748777347673185794152638165026352689725868185214664591593062228353301459103896870455333773236886531212953953998213730515095017875020685332326293383774663189806300611603166479461878587418059491935180627006619411343552752689686946357752094617113797162394912215452104216367068413341206608949082882663538084317321255785388671971495052673047326653229763760620256530099389367472645728368892473817637693388353643724262125357843857994554414450934168278184055064136061878332377856173065268456396174966942032315947026656429619387004966852765534247226422281654298219326480658209577447737059731957863727168370140362216191740697298762235804653425281076086088551703368994676263571895465285788872278445320650148227875283651292354136891613799422662403205441884712425736185952738548810635972054227195020398000060866224159226798529803879765308424300389573810245427563199237802488156922989133075259690839733465091102183025870973039821463764034136010371870795348443642470007248882255967511940927605986518931074601153382516015393323123285036234961754758555407683319725846117929628968828693369001604049221317764552467240436258861557475700694294374770996276695227654556808803944331174830148923052396988212976320457503125075711585509944915729318376164213029055510911616480923244672534932169427491754808910163140648357071643707520675030059039855084423456855981908238957965555490633313172631058805699938434869168480526894562059841252044403801645744401275169286727735843302902994637161740194948678721149073085374193712365549054021330933834114015982238755242211739168575203656420497870182910580009348823719798243460997136568655022202911699420541174800114036764838866286388504578914764457234696677433161746621460707394233093106839401263352682696651140533395583397643030507799167425541071831907583420318423685382405225498742095118726830301342056901433288884901962173268118785889956433433361390585511802240126504927498565345626120261963754598190451166833078928706965693878871508987572364019313255790355087387611757979760794861194175400220793560257799931479855446042271878452106786133164725527463615078070916726162136162909666413443189075885039437286523746409767865627113198073192453438799307239067426735864342933681901149498724685466954755915185201933535016314856876723423993616423180384943664095010058301325115151517304498426699155160809874170554733049907577673203131833392395907225960491607423245211084899967521101797920992631962173582291077783138631797000136458797136690198589536042123363052522804810378810387468508889565333122979519991412750332020436985171291607567016853334392687081718868554249145734156289083618800604858491070534396768607887414299536291812929309324085389901099901609549544957873098723906625329378490531719297305993225108125186569831750126187730405880892151558101078336496190831857166597445179078412246274754582569094873612071177780626094812942152523503308626688524589664430028324084737638968963331001518439336276356068001235144727469095088545893466630976288380000575805813477317254247248015018862567568118845991924849040349816315282131798835165228612438153233315250882667802790454865341675153131725488533773258091426476943523491020558612298223827157005130242442040991135918715515984563470864234003382278891948628951050536569665586610780207514019498439832064051547435575781198383270921830604658987812183631724255943164554243595080255643630311666533286479186846266678960502974236685717913764928421233621203362766949616470854655189556413750659338200074340668258630537571531607889534674772785286159275867314002407896512387644911179653470591103253837047985659572423111347906928720847663891863035803147315025124414144917230888557135843917113873396259222532301011862557006715760391798820926834495618514350617755407222321713960720914461703566501285175675715567668311935345043005625256160927022365357030572399661013189148957520238036161999692745974124952800521721497965172594662138729657138574222622046387136113109293159706973178494710628583648606307267112320098999313682140522720332984778776305121156128715393265779473911021546957953090474401862114548621301513728448650876116208342155652332471245423689939270604576346535660207567774846924372236462892311047412374055818266875170044841705444882474604315029331366584326864642388026736193067025887629532073476679897275345967022585861844891331332923711759849769146849491596243982734599855997975381133490383488368398473067205677575477353872806626885488672200250793881812567092356291085355640837074970797353134167834021144319213600389804006582127420298188108857689661218023952058357389262621562221791232519220312585039525713793897392323002582420780267953108389230672279144181182328864334360763242490670916119829672805423031253010395554651923156371184893884135319576239067129562049498165286294807261175778678383305435482396367309183246704998116625383163177212304656156341841082817753220489805453110936888912537596076815689116872658668394667469390643229795593714306207738256920290665380761550905195357927452142345307512479457842804039293113184828514227337737553734102121321339124633710128327696379042329871422460065266614993602526832203350805889155844062317278316808549192897069332659024733054184527385770891625068442691894994843094125930925796204206868937888720902810648053758097891339683217321353903483110263509804154335021421488881547157298331098786752381614863125982903893081879387668713769231127046562929943999349163182888141949327241309450794806923923893858818964271562481532324576165174601249476324585622270729322994807469746947117560534572398099840735518979692718995461233496191637773526645929283367067222573132956958920479892850269308622739059664105800573664414401556163278467105241236116117071336409503411117328318610636974633043481126318488846674974379861521696895594893943094600737954664672816990919494869423974152577870913497027606286566843668168201466814616093597812072002018734821962452176629292220603614205531199594526649978895477543795047339773855848837846080399079655779061560585270741841716137927153795298038439321259022347948389308608161915511502795175530879326470374744004894445962578530794449797805343130202161426185391427620110361591075977166569094488380786515946238722391618928744234417792909951942579615431535108840542366936497413058698932786341462574428485457484129565784420950793832667094379117526635380200147490760921413139761222809686925538379012993396204876376161000144537601745084369860477756158563320848654190502500792802090989389325299186492010451006765327118145883914365749684683644275913694128894117707455774312515089795137341023493343119451012477809735958670387263331785225114559254933055631953326588328140856636777590286119905482916821816142323208887924432719236265507841880716826771502461311009005551179651979525039257654791611995476970769404197600451836332102501076091559034345000078794696653813308120324928570250749300773973911725243460613023976875833831277916714932904215869593841794266802143058596466107813449394188988911407339581668082173810199686833475016121584099781190244426333363044692988035355108487051209354234698260627268880392832605629617965803235986772287776026503208537516306553789849172014037476449182660028003655516951314100742623130522160207337689679490690771262814926233020682450146536860248580067743708147422380130220058941284865473440646411285716468532132845888383905388770141964758067047000462664352439839006593903110464340721079847822677492623106361027827717496746124870179910918288595402681854366847773615352444363002812530916906374596924340660662330233992432921719048285103472549881225573371559991949719110390367634692271723180107398948415879766522653960684199246490030432142967612354419759905408198722525930008529507081175324470670448342524508406343606022816714711281567042066104580198015480145492337525142509616637951069407850251163350374672710087826926856335586050222336504484092300819493587109511136536889344604114039727143435206304748977238715332953210931408783625013829146838158448392218228469019754256235111773924806452780298634541790240828151213159463348974292026033674179571654048958682292711401134185399134701050715413441076136217431812697993299009899048451387406664959815369031697478340899646968727030922325978238353603979698227563466177517564344641396880474284585792581984978947863555601412824787528872147675651806354755954617577748998266776215253264710176563029571288284806008646914569342076978229446539835054455396827826179414893920548484526890054780907090499428765360987389823749226052714668197199162230518762691071049068085070457031831977603204457027430221007513157172963290687581984631106079667167981901351734069484022728826221778282266341711752367065551130578305589360888165691525210981933431102360905166393822096107413692968954521225539384244716892645029521829395969171817878169276103488407267478381759756047790354878222507613646316724933979927171799634918907279527569025381429052959691976491920039571071686868225617307276116579126287075097819895649920371712878208667052993302860484944778945200357290997265211732634928276164809608810481228964797956731877953594560169166846745092996094332777010746144232043775250819875803841492476021288903330650827663894730139685049947542755471873057912558698680897931432472858505772549128918177904009534904551133704794363932964106003709572404200355870260201489341813993582389480830127410054049574944116823514676533717143392002929498380505461203771224268588659833293788164223846694588691645387668384491115235605521410598543129235068244792204610036552953825960976351794567059689375157317035415878251366367940636183906070682807628900512193602789563056340610393774050821871219038757558156640978889734207637097229693266058302856748308594703223544852627680726600910434450420360092329914449460050811458624314234206988349254557056231457042232253146525410530759015193167946963339790334337798468934312349527361630562647799357224786264907857618200096398252463400342757140926631198496725621500469508787851736421856166972534703777195413423639276001935121932152699654601128253746227581718007707157733748003668199115289732961054986492064297930273226114554912006095335417034275633110987953449347843441516547113076959775918044363498706184931477681130071517429093871314262440399909363499033851654539020140040975486023474775170320247803578176025779116468372100269491160905352502512613179142541728853977090976304725678417612771475049497203874176709074955113682263903701081264469773973274328489369463695191563126481427560757563811561612591895337944854771798527099424703443414826599238268778545683721443956864520125426210246410727125560482202364374555145633898409884115194962174508809372912449096986780518077028114129580554804474739633362852960296664085221022283657461589732261626193769711972635143486417763644568514191975431151584770560636906543604048026567919690000978040563315792673234162669666349199229976530120214703627411363968509191700759360662070171699659717059445897941666327771798562512231207537641911917201295968412017289530432619133159677687515279435600907146727805168988747723182915383657524370090690326599680766567549245321705164438619122408866073880640238961855888103342503771273773271793571749401913606458809360439041864369187072368232384288161554819616968986616643165151412067672258991988142950714183509346591591647942512364402979015378600513643567928848776043945809998494901756954012441096108524753612720392668757859202292533554174545901910283333018439799671608982507181141885678156922409102684966075878885382484751388828128428161838199953874300395757838218077435884180402784136270664164818685596991152170685753933290187504075734499564883424392915017700089879774821887701989935037640098196317646551326983188978381654122117894185939882652786149884987982918056247150958394345781856664549939325254322940016618742308672877642786413947429429261937297622808859011952472717239272028686869540561376183888025842330711653138149758595714509402431181654528893367281816111505156526849423443933294134422475223943318255098703443803170681616188812465832804174148372929383290963959537023719613092155340982767788343975389222254724313736770023484158137929007512884168927424919326981315495588221726889580145148654590212195562733031458415298185446571005813374943101488379314841446447884789660757631586876016665926585323232186511407393774835499901304689105538079204163101835162255791606173579093900294725080068229190940041539511373742340756771156328870894351699223104454722068272360141790725887978076025096098816555751783717396499726238739491325983343612574343418955043002213007566504765679494142728085961317275523394701966559296261342030907100978912821094094445524680455054939147633995011635871503746410397870558270660783520672939187221295779258859359271301826738114664979908615624242817551680355714330213615784361806440261259732465743145738168394549516401704596704710861951979044573573768238673299177573417118085676856887372666638198739316279535583022354996995905745990425737472943953509765662458909162362886759070198355683476702349898465351921360205841104574179686562142199553709558615243621626667031499683395825577268574221759600498386073588742827514678584925908578429294820355235128665781059122074189440572588867326393540404925813789929024510990261473630346514128936080492188159603759234289232203450846424161184076138754858814869198615737184504668475481668908946931043706964501113316784923816386603011344481296376474561112307029159745217044851651000537513154870085655523928398269992784560478232789641391188975911508340303324937779235688550731291271574095079723730687256527902873104047462007363554939908683133722038938799943308224295199835980066506879765591577690087970659152247846869544065919193608841346816135379575627869925745515108879771978720705542250307472918885209563469262677731677481791502195754053107449169173336740654083567146145142807348906460575523377118696054681312994114499378918202282127493568600017207977642619373350286895707843733961262953687475470192029344321508921841322429674825153870878893734072613732468819493310077948206098954075647260929908496526988552691820458177521997621638656513638596838410336316647002730607640672640926711539284335842497391504262138921421198030657532110950058088968051424044242353122695439582528433891229468845474840794157896568867427802805469926525690730358304952634973735030421653376022820312253324121543554473531740187437520198987448437539431175671084417503715302062751188749571983533778185966904905190228081631239233606852576765580145289882805716496635951005637594624823095110663955094465958656335169784473948197335464096181677558409087462889902845746715548447855972996338753374566603316897208202199265503772271830195847190170093927404922555261575335267886688775170442724382873033880150813415035916272796514624899379000672596348469240591723543143301941621136860004884604243972093929394204099932812029600965695754171479349020253952775674309732364147607441593335399422148872846088252407342132436981725772619624579106261851758803430655437299597586451005708964383368398402500819098680744262594820068553023121328837102802099215950618840845472010785515299363484307190454977620821683034012384610272439144714836846086530947145283494588134470999777644621061225624133229046304971870689032929448540077054369278693252394992886992703917937906317473123210551431192355951119006825211420538902351493405784470667463010205838022223851527613094838120916091079545981333345637560632526483197383813189960428678739004209442308316193806034001620818916225334417348147992636367601365194562081666753981356095866486711265172409640241136019924066406123573465897565164714984596160663028577628694297527224624216043191107197817963426466481199248716952598719816749429215136650566749267006335032420335039486343254056167009791125715315971735922530755922484229082736929227191252292317364201505157639428424169624360619825000397141930303231174652882194073685977138781990997767480917043317783506521424520331161408868773833718816524213645864481597064262684576959921731990675570273147130017533640982688166186192695537501387608078003672176726204511714117159045514913565054026528909471185591193786335301738068726534412469511984957962203028918186838593946364819454138880415291904294662092643302143678565156569683371483325749319966708015224001285084262634945667232871146522496385817538166623092802260546279854188235112781006130246754127150451300094787571002855248561928947547278231924495778195450709627532531622202710702695042810416816479179666304847773036970070101323432864047682200016259883683167677154408311614184747849574500040016676816966767425022496719242838989470365357935985849484608997889344223869128473448335408489349489317304730297736110487023201559665925282456661498795643766538976735539913326973257844613614764961436196226781510634703335188267349757963620946064364234031570648131837890167996760992656826204059600960767112181974211058457846498567770410566632193229956508829968193888282206862016881829811471321325336925442723910033670876503496521324093812913639890114382269870743468562783893546332869664409607243200102901257473541501604682969997530038430127587424694988648047652664560770030937428385225210391847157863393495746424255918818331721434880365387581105022872124795662503906717924556070379815171652228961554931059300407552673504243499235495405273335441529101934700184015965435798009789171300728716956511175274211831197545761166008634453072047655172130025037523592185428807232232599250889981463060273207277660215475602982987211903745722740472190827628737234918627965810555217569727436317461259871130437322150681968550605277675995881622738362202738712731138841606831258786225593072610534219336627810830631747015264512001924231684191394420732626799438960578501862147262186318169540278214703702944334792854463161882079200384448463895562693403893408132198742653508665550693355938701962936116878474565773905978990190326013463775299104431721082020890285668421652363007791576622928884338008015057808460812660999226353247718012529891766171587049706548874864224730323805521048566974789223619445141434587975010237306304243237029518181987418968119856612734842900708737849983238137406584893319472355996460598353043403486721946923625072360947214185632606656884287674122344896746593770175797041383287323059225526497729646384016701487149538573051617016977887885718407234311204294024703819370518868959977170082872086095498265704164897223993156875643747210170667021910489037207719972402548996405601376673882773292887350545580992268221438302693322321527748877102425451727288710278757941080556750742667587914724205118208929064302483529077589060425338143929463233261892857561711512749320100171154203052313345508836022243875059389345160247441888307557257724398138729009597399274333191010113442688178624607550771835624040015013265250509593288595252855017868576250486261796333525196917318842635298203713816126899185623925726450794371025038781703419911922632017780274769752292777643340349570672444743449876450832174087311850066579909337904754276553365532405333983197044252445911642098449030417085312626040391327414380942295898290268717725469223976835228530490888346024200145477299414137273717967144888751779414055076841107286936125554520967679185592806451326821221002184632217401494615318607175724760124582440392720135549874458561848913267585162245201099954751671278089881548332949634702918317200555736283909343334523107345828753879462307706723295406311905543251760187813009075052756887061514819781669183878784032089793273616296645594860163229075324174104970564129925881506933599480000902466185704082726311149371303558523921927464449584332218198450922576837717037369102347779240796585456826079273135633654606776915724075752303175025130160836872944469721910131804727437901187758919178250415284658189168685454601189087926153944461176311568300252815653890390964789500179322122862749684309595780516361330504303047402820207814643720770836500192173458448162208537384401650793209014364484401717618168138684447603892277976976301849864907867201891746652841390662712128694697656064581008723981193108825809107773943951893048402939664081766464979064415546424387116446136712241511356495502844903672866357860816447449244147869253288304587169557673640726298762421875516853998279872821546013014747488764414828156066465783254566232095060502652014798181972669703717284673790193846403565290173665334396471741083645355475353341051405413382120613947238957802869649122384139190921268710692799018999957311138480881138543449850482384598743078820469618606477922812288471449989393450276641989218711015380677448323791088183100702696131814511191798679919461183347292244240770216995346336907257474219025827529641321946832541353561019670726907898580432286116701033184127831216795607388792881927190205914069109246421116174901284056358140837732353601112322642400270057870300833295021153747812737518955661945596969118381815000536916707232901686042697826459936439129066826487967153804305454696415315005996809012915003627685418088673556815784104312979249056994493272391360213217979717719915464107118660743359918738040254491427192480261843805728650966373455746539113857858026460585860747390367755912574770459164359272398610434010523720770422854699255257534070968024809866879758306148619326825978394539301438542180063963086635692371424407085436197240691680567482398011014414264341051605024359899594353577114685270004843866780343331293226728356269055438683784995947537210665653594557623838815673233624055651402011427138065818900767433236394971410274044883251634221427245251615281596845429438064039747209739381547297236557562317770050125532779759919046830965299736215804156113850508130188015981235507151665489665324446691308268230867351674379805193354493577691992953503364548005602773771599707253341125730956606888584093429621760155972851855694171540323446469616015608240329424004953610593045091833140703303330070849085055773847672328083029086196417452478162729945571067928618560610812070459964430060827616848578874518862001018831757259541366713899002860428818204512160103190552784127236504709343718351086291890039736120535450424508446160998041965316683103179848641582668733213685493561257436290082644313667646962911626090022986338355761088998545730119499784362183260106602397589116522073977262553052814828995840941295371694320938642960233892789721197491443400224315380021026419307871834818036890919883538798388730630080213810888008942397113718046025785930031075639140463649058907623309081408823127171891737483433641722068622668962217250476449053929110757328560925090860127758670568980466570078331888476921266291190161775207833137722773689709234490885018295022920081470907416708706661068441474810632849280934928705127060627173058247101772807959140422220234396991352813381077471259208324019213940263598860942455323152086260257981160805881784483825723377992618681092765270578179580862225205548860926014391147810926215766913814426773851365875094306011030958980563040473744394888016964675089157108686448824512965598056228482172025003807757518320746797049613348362339861918848729294582224785030862550413322068385966540958558086780359019071950905004563631457590114534807649223996259644738935103977239174671628688031781171129858189462081029563695286845667732494256881162672929678728485352455909489427941088604457314672076602932143175599848372039313668161776636604918587268398913678033238358359294812434285668691803514724264222943478927773976513066683306829939120062128392699164328545386431767273231560577494810205242843268313395473204915769414870993307176503268883528116879091007091010274096631833253217981586879222905789102423434387769684243818592052963162588994365053513162621798248141384207845286116115278169565828782775001721218461026148809732031254294743702085575512443275356557383279949850874965443348763676305548857310771705478458940500734029930544478789427489433991547393698042718341571304310909699630460911529114699376810351017726951110382046834653590827067292567486529316340185589772195032445478757855590904575951220299498591371262605381142000822166814928863309424016690152439449798458170763476502021404053798862566551145250625392184091722543365351313372889813649210987320112913326986351868819572060724993172688814862955961697560117690778557758866891317036188349592499764771883673076638388297335343987404887238124300131326176543774276830099234200438748035166642423413303793416912817799595374747225124811475163767640841383582461655134730784766546165744540315776075818578098240775278907152915886778015022077576168060527542827717357841245292294480286642859706084711591755479241374968896087167055797964367964272972894474461595798848376901646925689635828323698346468981231820006259742540175603971198851290306602275787819347514041260211301387774479874335967049229597946358696778833873135358355350699880948921881865633530521412325607611634577174394495902298826959117821077197132854729998887510015330884137088838755078733187591125034010092771874605611632826696467169080697338828093169122921182272284755921589359383968318560498354709524565362698525673600847401194417464852140047600721815655854595149316945375233287904940541975015391747002404655001719977474219626242247643420523907757468639651520998091165087086401989481849452959498400460979953016186649531395418668196681134818928805538968761620015780928071479241556518938419376448402558842232051130595139317044517981246671614490680581400234403039758052949568788256203086906240797280424588219830230789051213685528986513694261408238860636198559184111272599214116962952858374063656708590331755056694816542651029454341796413109901359704186619826294613518183777231833417549218854847915671859959044800538867657347924908305866419861964758912654185018232709950080474541310430274938892405912736447879034208136133683348634153873735391644574974852952984371440626038546713194765265474797778072109862700465794460577639075894499488389549352870199781775762009170459619229426849214172650607073309679317505432595406046186037995214680255214871999854949803250642193064494960055054554843784620462170283425647959197964133581862512201180095142334211500181847751689451147675690494063403078551698871331459729320485690703482754834968596053888080801878949985683736673964465888589256083088551500135843846352387806176569442064924781169149673606823972965030526530857751144792791982471097077907013124109110522185339325992709768348493107113813265624973403484124078118815743215700079519243500103355841448479747043490258460577645728574295947911267750887107914172009571790499605980776945147602943845506948899306468943714149340443900773999350615721030386842626737706297115402997577462050305761850857309687874608224126353812213438638095394008708242318752855982013969049218255655580095548276208323512382185615954785530094321656866410202649229194815322567781162289746210395031106537065350296155437137656137787332046302370069084305191286477593042388162449658112130914087619106499096558426986779837846414934667702470389681259292001873411859957716090998043580759163338452684275585870378221411245678779730038198644769907394346394323600228157199768238984150777442324049080173438614938165938184427095275474975128499064216063460899814328283668512503361327371457070474030513090152571410646213391791262028588565123248871456747809221792433312118518981499582133165195383573451038367362781835621432264393117449131973533271624849114418018178648394429321317175177301159775068650020437304818544846607813797303972687383869149067163933097758814549326692654532226209955541361342969825235383500895980227777827847085263685437090180920025480466967081516943837127656517292507381367969417557070871165893526467629507070475313870450172170543592645455631916912648293015558913868498737067944440923112959345116880883880610071659874207554764094646765026998404815112088552750346747296222361926559255309582597911696490701801230948912959199040126008876490006141269383694779815913087776597712483713269677608000628650619997028408412172854230768544416442120181560754911034435879458897186600564395655913945050200013327260685409122477322660876250927127391678007207419452445873788239863503099552766852992888072861159979790852543944349189593137289738624745409191307658287484846675744106287100338394667720857487051830995165442895538945999971534196488388481527500654957487382018645708685830974159501603692719894654423846348277468320832429070841887279107011680542381740045336702987592941892408074102870176593790487220286629542144248329643317383997695494115995985664136886736338821987225093723731502904794511777656772292795186401407315873427986228480100513549063209273683530985604450287477419246467480124024435129774441834964760770007552695468578486623866991483038087904688094505781533348785433482362375950188138635950524928206961022375581610107778474326048936381256598186638228672869896014609872417391605091596238574010366825749574670981188546440723514276728448583252042896103529510106365855637893944833016870083427079322002282232262111402162892797014707979064160659602258864864223757685563954301435068371650397622011803804997582155035363540446919154503743107459955314378972584398494324612320516502845836476071248871309706544770255875894226573611918323260695889739859152074313970392054473836943688433511765259013493923425010069068177426665688777637565251523096828916274857313819362049006317966216403062052306388989590004431774940226696711061730520008022594943920984209180881187682034309968361978796021860049842324667296813770696333064066395744227343140443133545863853687400939678832513547915947584360063334622732540741309178031489706467469922192231386054072482132517664239142105366250017977293290203427435494203102399500612975684928701883966129201387541449357389855875717398506337469497121331619342946700146214075900207507138023878315304682538548844178131000264245862855451592468767199428638080541054652573395824298163129310416298366566800490754875441375857163395681802906924858147313468368043985753941461723222141941991890297030743539409729201402040418055056270468371811841898351242149732909624114913600780716701981534894624231886138937136735065192700912458676250489399122965567366560283580853921693007444345607377546566339843670885510552822866042880423326124140531852961812194042330481765729221645325781992613949591460874058832722839327543384658288598983033374450973618048926793825220419363716603223181036443215336470912431618575613151125377939344099408397509847226342301816512450656793179929757473189091518892491978657544299331267472416486077886747732429612623090448549307003794529585934670802407986461285143378925329431321195756439814082357204278458815168177781227832638602260349255198852676747738971063501474925797753925022988954914390718109615233327712106790043967494774136744294111590917493652405986478808019287835417333604555933026404066050962507173985722900206393106812306456342449218755814816985502761614641420088423893450355575470861970948893149630104087503401383143070722728432529071084367469828030681192512043366850672371683362844127745311837704091684759170141586059665259392767188989983963102925508342984378140078786080559921593552736058525943084462023143031963475007218338638142977535553051489479141263975536749151848053431711561592181554097872510026714100923470229776574852145407131087752687112791001620296735504982148555290239688512574972401017688419852768824796063615385483989545685760183997191796441758783024362983623840611673729038703736882781917974242569098378737328733447057246660439339424171459315486999489759604437895067084307194292684567833059198192444717874209747197884878364316916716380835485961763494350353358080629720276668559466850432345785103495609409539196496178756249320870408119475021074494218107030817505645073700176681378081433911680301432892491852942419165514371766152421747473864815811962690802149009188595853965928023655559693733896590339753953416887657181740404576558043453549535162084247506986460460817526369238780153521087851631796980205196352784097160882961459131558141841615556332102948803889483878194997318029994140353803552025338784243480981657373779006717090216388999527467030755630927079882835798346339718555269003066052163600886300235037184860696617701583563954658693488251703363204195954902465747020927486116540565804895834082897988047730334681484695464846016575023316404185909949658308221115082539998293812088203701116121511868426110498395032481711994806799343903976509467178095272242431186066689434189087257286319142805406017837253627982445038742555100114368723118697723836333593393531175905194169056218232259107743074021285753943140169606013881526986172109892227216743387400582894375845083073669567248328066280159812177339360909253142414895194285963095854264973477751207206910480690626212965986857352202872578644091804210276360599153458066888791415554598846255131261440010791911107409022241392448811515460907475472792638786660266630357741218176463318553923664577125978916944053558888711197211060378392796163409438672123753457460604840508364396539041489709406227632441038796873825806249091561085915720402689873625241017666775604199115594607185351993076717322503575122559582392560257192182827324300261873482325647600091026067017160447851730596062456088518235854132521585749001434628903278091942324011779555603668832970240973328337337318975607464333713291493855606411819533146311444580250377867410014575446324117978284547648319148736369612192505511857555118258991201687895897922787804168216805130601879725622936445637846038309617872469645612544751527888501177837435784306889237155652174259341263434557725306712156625355989370416402351404218971478836097118163924986854980879220164702117228079294642827109111042306575414224439642698910623128615656225813642542261966948310404792018787106940016920270781420581247300054033019157650106472620336331491434267368614514858629318817225507530364129730601736276298902469436090477223810140820897131242470006358958967653832582338529368418997984179051908187207513921832139864318511042568965498445436796707725621881049939404719623588407390280950009399061820976748105113514518393442770914071067596693499488022940262002733378903859892882408628287814377772349273517463904624141115289863772269055771336740711858956809547008904417609534846412246958860936197172339114987335561683759221019106796060247609476676577869486391003584396738278843139284667999901550428667355745205019506443774908384345768563744542389357291420762018561175017160736049471787188326508749446038377136408788718919752242658027452138935581627504675293061191949496983343882600468148694756204291133679245737370874227035074703030981277326829592630766594825897653639824968557511200789315849249812659648649029242109477628069572894112491824084462117595409996030098808636565156863483207137582808705894028280900475446196383500537184876241948354199170848138930946062429240719222514859020813367469360642272903306401362493045222490665788637454420916379473293764997900342005338164001764862589321696279190613464698085263464447655804660553658511310984747996069240028241590818684710903977388754788028586307758729242228830592232206812869060275085745666808106957448525843043881921872653467138295449058245196180274637876742181055894267571648487424202666527731692540907560141916833971425728662640100928372394158413209381637589359721238011635325479667983942448953355144018367404176836193599457322086089682771311645479018427938230120373623700885711236173938243261205072670961053080835004804036914529894520814539323040083947094077459016170129603455194301558333009193738553933712275523773340535974651144399925499286539513237690977743687174745545247987431813896559186492111246224662219738698675031860304948048047876168638710566888365426833552728082786782025085746328267694324346280889697259541988478137037534118206614692972111444074548245035679905552224113515592143829212866121257352840874724574142844556878025761774216454911319832373678370993281663523749831539330824869965086963056364074482228923901507043710290909831687796820411697275665624200167291522774306859891051195525009746977025316954747093181730483944728542893027439330815736641344159673467345418430804304671312187399996658090494124758888700525890346975627980707228683016415607991502013854643061943709789704026453158270704857545642450843605094013228452066539403024449126978695599817943194595403112817483329219361362145013348379342977512553033114229478236722735818945232252996909891986263580061332475417060547413218447215484672556630189778272457508537938038078524412095373330857317322540866562427291037612307801367893617897682822718843563379326330649248088065983252464821780224504948717716621636637036793394111357906044360056436278602488799884385787020265747004724415923806252543665953566208328074274827894316580861500824876914377022109346787224630829942980534122292479073919950671045558282018527926104270266081457343169043470670306405260705562650356027180100681487648130111867892740685193547641056470875468126041534590146411115311801906292787364711106605255308901442484101799140489631365165196391758755741452694883795098278187650190305124778273054969524259353817808398848991495198805598696085611567491017324414220843624057758251528314464583145628727330526179760549052285254896939563907998001942384275281347773360825186324278922239716318337954467319263209272475734518801937128898373558588600629560258936211353682564336024783725704368424850298854148747160514345367213904695760308495799621572913555140553013531907814472122088355921768726904460201743717536205942933723759454197976284071780525867674254513568142104598547680378779307172792686859462021992561129843245763095702191377195484698242109958669040089924756851464204288374622627701281824371158229248770884311292231976911920210770303736437155113607904126523012272828069994632896726311894529886620921649187650472420852217793718317772467526099178918618267181404056533530542920764713509143497503914819595304954740864695737218800225396221437417599986601676226965777850505882765067889113409505648871167031159776681833750609213159920475615903828382872106050999448636556029084676546779283539220268295363034623606999052811549684048257414706320031717076361534265047355491443452716961025088518780229523891478021956436318016221423709778099315270937713005120599097787701069400009887438590584541720731122540309952213423706095781349962693363767741460101416699959593087769077014910120712025769806573956670713190466427890642778923404760868965084576188723112878867673287084558123821043090504494732224818175437562088973157232638909764079800668145608212700272235111349391574807419573747069255801922467690223044777567371897438126784653099858164080155068379168709416680384500068290117754091043375861554806308127569332983291681263287091709488182847751773499915335827754358506264240030481551400885748166770403356518116272039040634600360766170580674581034550927658605115983272940842911426467301668655001371517151660281852441739008897723190275732049214973936465160360643971088177925728218173964689125106237159387187434646960136718405457596434527471626138513031665932261029967072469253811893909221826377672832249236408640643800524579794837256885050777086442741160064289579531613950002543311224043748675832216717887022962605175078434316827156122263631020510838930077267476461539808353616894314229687164414976122794392352482602885210647948784244283363898623119335005924839569143129821011778257935670520909886700236388544853657721560251225470785382516145351500372625196084449814960958687803106352599875616622765397322567183045874587073413252626078901632994041720490278548663249782330857336641792076398850380545190261010313784347460958190829943749843542470796367559751348155871375038934765674637808202705534647251439549459662267450903203075941955566369805405415500840417143154999013894879550523410182642359078663881450031060703973108725313440897321650390467241141782991469224750068825471899829008152962042513449157958030496511996720782410783779010058199393476170171105117971995977045702505844175403177937810614683534181513480717967070954757601825865526670799858456310500891168433336117395864507760482384105826309471090577693814524765819805762891377893448279636564802399599984939239753816405349907362864061273372715732457721360416649853676567357860777309877410949206676346905265570298557008655486631170816992900151876038770359143593341181022113858768921459964230251450288721989312273269406510042600372995698470035581316489807724111345420557640967630801375971192484782850389131131131619349665028021096910673746164865651279109257100484185310030390303876064768895161731900318181541341059762051530225213189190727894112716895371867633569652978388348099160669113334142959717825126574040815080813993919310748583641902188588063735071453227437292923926738410152378167140204407660247724831315961254397141577360182195987134582360590283152052106908905447982552758677814335908733652723658811080898049071663341240854292239522381885961789047765376736455566774769291098295172352828878412099751269507580515658615540692184867314863006646804942258902694303551358251004320329610962779161497380338166181569952210544590887226159435152032289632946585947681543484121228300768676337260492426448269646247840694363217503956220325220651790188748250721673526692128769019881170939182113641157632712463738658433970523223914556165771757874352410529457680173227666423091682500132476274603912517539106764236427822989243613950629326754807864251385350233353986994905950841585813940256150787019726606491065931740617077778279024388240781127896941187644492959981043264459218419716223235427084389731279371245018869191330667771142086001183217214826586094867364466082628964807931275887729012144948812468073539806033098047588312140428751309460111302742801767467241919597556746092421702344907519825894673256636281334876025803852727405462216980687930968289551895860008338871640255401886005126898257094603734807323074897771971898082177148299985390993990079147366177550614861182365987399306021916712779331985390565779058140968404659335439771326779678638334133168763396748240131445596591487085759503318726281488410835967454592747407108169684072251567030576397303334214558772863362107367848922710138499671658867168225840995186666920962114366340689563704883675330999272983533917906288805378417959520527028871565281506629753968936587969733061038938848577633701293651091041524219850692378166327847959920097898042664817196021991787673905995803364588127386419326270992716134061515938516185451401898716328969638894542525067107298694699438001743157643113703741253294542974793686142434802277316025928880695048727427400778712357324834345433340821728721904019264499335908117459170287357005206043412107097672001838040202131038984190374284747985742452438106087567964629879980294643105134776281257135705718423538711469002338035593190499647231783507452878543756878265818397341480160097867546270977032129874680144611235208546251127572215031942622028020094260604737355214998210503174606693407384983964820837570716617466702867006998085660275004472049088692010980507549939797069763034899501320291831849062479169056745613128502340384213294767163970197223713807126491091678751475663715190741103470401271910358408634321673823435300449928010819593491129369413221180621150100238450572834513166500921477871437553481027309299094776921980935414809740764144986608436553828873944855549262738874120980475420107926751801135190855765461866233161868751093379305086703084007030964975590796288491861834355090845500255993269760351618844299032364363431103183144292874333763247107319404356701806777098601041939952455370909066507434402791016950563304372884593171910192787489887964903888482915568753869773231386913846589000709510388988557600841393916972487963207907740462385863178647724878390497550111881415942867411617358591072930201122728317185338154726932897156007348539471447086581559282857399982555564243811101460649414417561077418340409653394463611841551762681712664790364918564086647129723766116691936061557613249804843963913763611951369470654311142438258825711465007533203610141544758501472138245513632106955774292527519538542685997731579520186117962098901269057766129984362018140846620308411815588515872754972527091001331074904695819784409968144048286332968822633090354943336851934143471800045649686610860870660650437978498340508683302659469792625436281722537470449865388070135037378349989935996868322412477516452393177694818367777966687431024031564066088390158636405616987801152628606476780866293782359908147197851106129352436733164882918764307824921388097829674200582758308675428283726417157542238252023632445162528815183793788069244591751977852231473103525671318184740517201866863408724945499978820243591072608859283852286851286975598534854421002864467017105692287995609970110260879068773736695230223570604522266302562369222713255145832869123757450848001000854127949004737142051786826463743357450662900000562995720837374657766920693715409289666548105987814156519928357436989670205736286650340004189267802360494793007192090978839277619927112548134240051859408889204952288645793805016596355703949973623896541622449304190320251536872432509417882371606367574704673652201330018105111368196450074529391097661359507801541370216382685530112145063073152538877597898617893168778431565732916173018838971678013690768922691372114611016792947630213114921468759290162431630166012283118825119732988766680948703553831078546049394932201280889818807026994402685173200543870362461182069706696802787202465740829748128980604227516798143559041111371608253524827151689632073635894251805421157547384102663847387669025332638738291734917992080675547490453796743433238117541163250058462693980464168806974372906817433991752732843456128152965463994847980073230340764068942961494906061174909927745387595029620128334385038692365269998697938926622670861222748966848060669979886542191957246994894288889289986735817203695169123165279309623565882472013558751752394755632474885254843957713718036999850459826359812938029672478004570858409734369731599865689026291690823851484039169952523802587896286287242068243753957823798081985110475747960840524088594019202618585456534113811504067182763410711830874015928617593942736919510500454179715313736665459491566672097506495955112869663532379434611817348457902406982634923351078448721381866017859548175050316084745427504503438441968721971732074446715348133477849149974261057404790945369185600660223246053703354456771382742727085533137561101772508901841613876060255834407821762885504934689659444161492358481151579885319529500452181776293210179249132405982112201094152989517818952800353506333105235015681253962548342032508162821755096630157867023942850987025320155813685549621722809226479681407798012247306968672561353989041633093290344338150892341369132966804064918860788671138742222133220266361095272245080595859245315428028777336167602231719420497642154524139294226365208263399463164562231234501934499315752776475850035010762573785520414508375748093614261664957608932674876063871939721790324279079874529532257862708968706092186297720989867263641330875260254650793294262469646479242565380507766456581055815653034410615487802226589442754914682425266288447468639126853822254568917417581124290816315656342803155495404780576476199280301911741716432299341416911175558704523414722025258990762176243375845480075558619160442922122603753555758245446601496433914314803748016775143906985025533135370869829408379674011994457258286650721309430367358147064712557476368388477541805288040885968611855070910591694622171130453503741650584509764080513295420666873850914996042215793626366632042145790966281550993776502475176153595526481149895206371137805989649304711820263823194742548686789046170052066018264711246236445407327818247109014978780426013122512755259704903468903153458289938512435380599844409570301546184049637817925115972910429030257244909556143866059082710770925414508039678185107597452227589899916066231916885903263842303489020192682402834078897171529746151336720515629102330218508729408279228792113227259588393712221823914921274121872458287644155209293377166782866981685760974526533453779417556435256275007567209327707953043909977006358045896033284709544040548564528444061419300035031036440375627839439109817751581232787000269410497606387518248065887943251042469107855220385507255768660799307341500053565075251775643471650621012638255239613803172087303886262578444360115080184666712191836535739482818268126121486109669050859686488389239712727650526688114202197350002017392842272854367246507878093727468112092139312571908297390688133781600991457727350159360964943995779469197369068855906751376406210029939294737709145009981387551623563437914776375362177137041958373325654761277903098814963776686817253301291094069139265771847086720834961842210113759241419802676093031838140087502811034552595325504084046589675371968228287024282779977344321437750626474953966926231481763679857638087314084467167923395114274448957878234180868045446006459825967547995195441907120599439878413840693697686083534436123289803661031807057854126217741914751694203962500712508958442297083463933079189372111185896997915215193551862554670597027006147930011198678955160667750261760054376931931142326038194623244253166776041232673930625892632432987498317867666026071676748358093069978065817410854257586938482096504443078322486273199205294222501110009380903961963538890730999930257914031262541734603752138353105234777950064784362619262995662940098414205193269895663595397690102333372755076561464499943910774906419839530302320511570729756168659452446403107710666104452184188571616910279922376837647265959653887942252097544960380489232682414176903815177237087560875246815951429485225653585469433389438192516524772731897573775517842721692307053882179914217699724439381693554376749830401870723981600590359708025767230300594908347640115489206626682786740875981511137531609478279977130864444105476193418902288203936477047325278111769757614105021663582370031885299568074872702065206860052559941332170034344512049885630063834457856286103837634273823546616137331080305577938494680770350849813875850752839398503629079752391246574070616298959161300743805818304261406191332968250397053247124868240005536230674525479800523624298789218925456437315069786803338086642512248982016920460317521069929667428070828317738211116421305876924591324628606796505563751010905674461280324673992427143650663245985403554407003036633685391443264319612361193025554505572748903742499842227926190866370423037155885387834147006038624738295756519749377543644708105189017809678441513059636745506994491556973576816008653997666160010990566318956994115835827510182821797118496459801478834943510335478397847890079252442658706157136456997467442138043442046486482286830003946162100015463382437439053599465433192442342888160425907754798961933812695954144003430994221316532561633429262306320623092734791303444561436983587373865602298409265560123651122374704477862946218434085932984316969775911044342924421828277172145683240153608166607728394754512305147428694497091974467433328632876692173017096965611871635402300255627443372728360753125401363128347707950130218114937491002257646638204486098840363380709592372636086967128323401669770920087286221466607004926181305364688015099922479942457454032431192832628644175463886761142216578006969693516850586415498525646058917725668276613936634174948399197698824171432606914939123963508130809112753957848033746885865036687794504668682238299171049625072683296149200148953423292496569654702966558749387902611178932323211117093058520711902409917105528104955941907036744078754259678864178878224571024278846495877336609491299506723822044385016590089045082400190935799281781957626467531592343866553534670843336187747836860850537771199592407944775767375858857830389863609527170685789785734729296558954913508822609915907532655811427891366288279477795620200594121256156889977528227693096333786547005787750772657394100343520372786724374781901542896492853657498395763382310797223818338882821980607877633840089830808861588297410634792290867347698606517763620056366358077446222130649895770039887040801844033810902703315615566398092711725389206237677252596722891159949455855188089928168890367643501304174230228752284318308344780994009977323717149145226424900247393253709733353029061138584506593267398054658816134762263513133623447924131428962963516858629899602124709074721024278766802848845703935437000390828410281116617570086330332221935874721856937925937428677525264069161370451504684650302749733409327961749799057191084280270160253461489871671620190419721218608517213316920086436023320623010655771347999218180301607852046174139216239154608202665639253637101236518424480748951852666664084970910888526194553975614439627854928641710792594005832438659581960268389851415261325874663623055969586424489617482709821044736297537014787600520143405253154162660239179689079385765169702851809581495623023918614764491078823702186279143212767743276409725929284895208028323597801089585092552295959557607767528744700459907071877719011718823472811151874958582386456711062872493569303770228717144665117207432433033239174399035635708608184712297129161487252478481365375987225765685092574076376884491047440542383789616248744993923175195962283684253558724163080165916050659709976101987214114777986819801640368914796058651258471576592916832197389868137840306011562988785115186277551940314960161544164409423209498498833123915574587292795654158788423079531276614096361277675703500794652354527551286488054422134378864721080377287682464057060175527622041793465857008042570068703224429295899917556248359475685094548942778925117840233909873163449684487183261321359863058741166261170356199605599703401765967705123140252531095275885830065129158409458888780739692377201762673931754831547522277114812242784388643115456525507811599884333221367316081895905194675372370577572779617505541075308227186117748954247087943231319785822980801596555058540756660228383270326303279405211529876440245983512197354828950562993546867004044319016094180911445237964925541211758387261704933184147038851501041746245064084280350742893463487501744705832607278839918640920347257938919075213871654247808721427809952892004078688274915915349079152554773259880977809503121814289405002479078917003607019820511959034077911374952945917831952719647161316646359797749535580549927728582622793639609387509533317466947559398885664421252135536495570744967451034882881368755240638176245696289777722482863027105400241675641754380782054923654171622320195641827246891712020500458316843198605066558345471099882537072917631352807942551252686042142949273212228652587484567977238836088383743860880700707743349379794808184058224077391962459166348320441629792428963460836434391257704195299949937308462776697204972578839377711738900050225192399649453062821594703723281738705379507812431718122320071884812177306230802907459146018792515622374654710427954979859008259919510112380955128418284452176366249064719470732920506353755972553761232206994292074543705524526004678011635776120544262032550147096217047092751942129614808415696215697492978677610372765382325539674617924282064079736867243152460668910070811638856418591408731966319345705695642678620000460747379225160281548805903175230760407932014886252226642666126616511276445096671527560603714834989140566370623219046243628629259599099966335192646404948664340353811522677178551604565020305437469464731423960289469120124712882800995240796081020401281568727254653130264867240119954109911553222682496467316880626787334701225517495324373359499746091707255755373599464330268161561492094156076963615689397055331498040459154651273809428012710258908375483180388574266564200477291923870447194562163787136598352007763708289486069950445247685918430282640657806838264370124523562948433975204402530500452681186868296512534806352209903113841444978173540172153145618041811634187811535453324986284632927867907207717926279908565773685001924180403069089084731088820722272994201416160215679301907627651403454487709590139648216773398979676253941836320820603016273723954364602857050828610642428032662535311138756146153363317631478761955443657935677703147798235807251173844369742015598354761604900480463405043298584115563263902610914366683982062499457637508339227906272805550834475642507741668496322538242432880790422925374458128171840700729382473180291472432562593688336590084966811709165038251486993851200903805183881441810066998910302918583488658502465369105477112951674339161274902240576061252085863130323925143209390373916567955594174847154838764417385658280733961945763879694848164774985376362395413673627306360926528572759972701105205618387235622745579129729708804615894684773115697155905966803934275410124568203207734270087402393128428203445722658630984104858631111925938960166865659944656114983099690977646986906955923031749898782745113403510285466938876601661770727492190749224612521305035889046359775830683231872049201857372444878302489410814032398505594372518342315340728602525604405372193099788040092643452600490132414598890431953514473855122663996933988985167583878903412612977827204980614107802306446786641351909065732939948258085868976038180815940896585118635520757579103081214786711133532268469535658797627691934432865570098265713802946082234430542620069693113225529053019810006795682671964974842720829498746590189617363102220361366982968298361634182161367479289789010283841738622423042510500823600396355720644245146816630140255813855041479439327280058086505926532050204039618713816175481228194529635153436747052569152114233129533577064652927572692564730085329227949643148263224740255569870797454649183172826855641511048073595424903671908237878214188039949556042493826439031910853543676998130273090742534552613081501257858138437629203431865090735663579189457056342860446434149143728653239805722033328202681475080855739168982271521004122028376892747753093533787053359778031847785664662925512270460420616074547598205963705159852601246341457246054113739879572930327861835729231867856186484705890204144923314229040288502103164160745404129710819987195803152790491419109905843023045489485151797021875372767137466593665997371821160866264263455675816203663496934219505603515087423396747984824127034589824551775199410397215675645358379159183255559319897734089122355928910047195408346547834436977697677796570875124220057419279470596692174138440266096013232689756665985547995849517449346267319507435487362198421725281425188175880279367794219261427105003393063624878458334578374947895320323842408972087185026803225226380769374007629473695717746788577114607142613651314213930795110576851609272197578914184252897657502043038673910907109461034102539745563287471751211277857341238102348269480796218852528826471708090950547747722561864765529873941608044575410916157443180234214912851549776984484868375909924503326851114971676195271140408017587736328311302565150740532320142155467554491313864985158937826004699053119771437407791881034571035411742941737702107077654862081262992572098519234278861425555434395161595616337293626535591471699304780740625450798516521838166292186668389003342711461550622478237810366018948804640338959482233864838667646750753844356401964743804000793364529188159320649414657266668485496605422028068431071244650431370676628836434754025245816868710149292861422121421608225866329876781864376618682794774356642145607433760084018053431062418237666140043319026329445460819341010213704324865687287302084125018008148598417936968596215855231039758570082436470021515687620147952072413143146626984795631179510633650182990916944267053222053808025291926537530763981236751837670681760590492897341921210702997290291066600019233929835790692234318683079304591477829165240234779704795591703724576696072488219284480977040548561807588075551062847760182647238830926187138051769600315408290114761685866711507499216030003743660898724162005029348617129590223883851846722968572387098886080669401290635381362481303743609127037841808194994563317308471571112859830476544657413093281536475436270651803762039519862477415626621317479190881882188376204044305939682624782764067977000406754420329516146560041547586483306118399075907470844835920520082003618429993331260604838211182934331012890284033483379228948303706841521536590293476082381712636104305745994421996656293354692359067736044444613593505833602200526224357794042109976673452078765867274361563334994673919402204970739793313068127651937288998030835492340484428563824018591232160741355593295226085748284114824650542531778824003107333569038136198770750170277014644036601981400768189679168768059060240376163543679729366765989637205211798898941587090595698584021118000983857519454025225756040127412666443113719644195936279331166083449109429106498123637256550049294236345905369746763394663515652406732401663246795510871670604801370850714747064501515674526318129926775369315923986084198674369918213776167921931448710892846169866957437583841653715709534206002517695584314312551563519566202192590967043088376639914043421854747875083685547017619652333641905912721247969663011129497916802159096217120055172507945093286952359240039578559663941969358773073262692022924037989552344415723409395756127516660467470593092899478652894279848221129015410348636598619152052074219605338029744963064621611444815561897330615980321433095919293145849723621598899399152759621445698907788804509231691146808515224866686817045069020978720132024468057241482168264583544041389552180302264186905570239573812647560815459652506461290723501612025486398623140088846188995164682893731079495302729979269455773567253037049491965789129921952914100629638353457580040413595512144998352492179773794532754679221523272972964079691066717688020235060041105927682540342563771947173311084832637533448532185955703271352436458263879448529077675028689725717720809281695318857861143464740261239690602415505518643696201778642662088307274667164735778756972803746494494052459696431089515098288950857634970835217894203462645323114430468323768663159926614391134501603894062479675643921317233814789584969303618398151963669116342014537171436837922771772190556241272262649495254205471165489080695482461519610877077751493693253834556532820018769179291175821054433616576064766422040763125060982772497078032508039918605861756265349946938775165835731688187562848117294315183126088793028391155792627937950829863096348624627098163680813076064682966739866618474167203176578577658183794064461231293870257301526818654860835986963488368425056913943157460844003611108328985578865474564468215694000051232623310825026406195418570922211451107978165671326188544778636204214032895415097229184251707416159775019400111611613779394935528680647956793440560770830633995846859163886311154363467791067326273301745647711657335804342712358697871062478991811723353453833031881403360326362063514641100973745581911330112062295102390461953312459727419666668851589890823366279972405575217044366019842143776064425054223360399358159757541124917335806767691664200821137882865896069365794389972463709144637917508636827997915442004064622932744017977198269924574255314130118682528655413321405990194151899224454784984094611038112719237188705326585720592913254944190841993510568450867287366755402389778058337081806369634195719183416998245570760155573437653093551801851235303329826012835760192955227279786228885295010141665111578692996136874558970363234097794544793894436251217121985995997183268398184807802837913634010959543404508027569556628716539825529177472711503981217069216147255624238181279255715794975937944523028600427721578061369887555983768550270145999851048261853063559489285972374870583104843190302056138984848205174184027598607720099382754545520192387774355715922285850241441400208087556383554508412568427497367061676068784608161989285576469709746073941586551291374867567292573308957591815278953118605232210387311483237839902857483325229060071386716119133386975021140694941043471488910278168911728671263840594904149220855372259324626061641634056116315389916942294481753963122427126694846075757599938843954003918258179993199222583608332555655823426916692894232512951620316000193604604540252810630544915962037659486293749411006610412771796516750941444844639568899677118273199314159869675000154823036474419218298668377811569983000789322273797875950580415896886450670106753307794414302163637572982850595695168684195304875258943687147052693882990687570274486816017661584954103925975234810776856453703945489989784261322305375291352791216520788671107374833722140878235364194176739607095043190537017428986938398848490742918789607645056397320238988676583791006024418967734104178487429240593787448470749839316300666876289267185067886580210179101355534538371911617133200614626001392272441078506411795810175820983924679225128109974238817220212461757868405557406696443548020923035515900469655626314249610458150126361750056609749284431932411217350144814589918122662137449001369180194691502894011060054426776787343506993204460854290353531503416485985009970200787893816677062139817277954115827269280038189566088336086690666260081646009903825653129216986909779152380611935771325069387740606517480830323109679899933123651373291386207113388009651466240167701793775349013787187574025617909319415661257936283352010912179592512371048890102371006881949211545859716070575343298482232586859484906084504962231691920517556123522306164448142037014280555312720525198574490175248889140128019526602025737644030912900693451016496460249514899198819762903246912409615027137098422751212598372101483239632174798693651518097230167960593046306085327224640915904111684398382156715887077904712947830825398679355498659114952445322734680491675594016945708936227105841075797796301943509411929222050543196144131466076851397108297149410260855751053945541308036014411140161590805959216748891703853746643475171949921925552035494061073954400852987809438867967181691708140745104150246381182898586123668900514744796302406491000878120393950738876317050900349695132845894830798552889480094988742159303885678615506961859535087460143179853174182953387038835054403332585708856733005782165257497315258733615935406323660498881839994365965037272516076431560164336295667663282561874582617049411771002834478114142708523285245634278282864780918196945589601256949487878650664477101974337621004066412766216240015706143825751819113425588330870634198266932922967936470305785338691172334096420243138367249910756601130752050953261662867364102757683607275709970178876813586266627492131702531053449580380297059368694770937118703725980510929996965777955002699866347812119901442182890627988529596552946786446709951518284078106500284534029854633488482783817175640412179052657992500370050775425790269220353206523249689798449526575329694032275984692573073698237760181101501765996170849782186646401485947253485692363610212842436708725856621551253149126069681735070426510054537087784778962969276707343441336487522748839015387763952344894870417686534639878451689990625730600330115814652089516023519683819918882966711588654448751937410929152294639917709480480737194498511045309454285069210985165947222941502258000816672360782688481355370419154020190805405720895964618708144080375318675134093342141496760530535063363864664204032606641961144562129211647091491366764033946048075089381549365660653412750589151028865947101888505693618148127534293184705648413277377132594975243876714930107497540580683567122511250904923566970093601455016673886902683916813184049341839412197055227022530171828596457214430599810832680478300480600022374715422900533556695549677042020566957282509329599252557287728092096009840450452657109555665647830266914925885174821205215963525597773344516980306990280491125198053846246343578653138821651335850985762838866340316537050179206404287085392414632202982197359488243724231179887519450391555771547352933774741844121306148211704909887245627398157468394031461450630969407048949167690219770642645767534829408340422439892701690336681896797486661624041236806946716536425701989940878536522769361645737917750891747392945631963399329161455917466114632811757425719481899481988595021510161492628513596154710536146579226425831389699228759776722216088765675408138397203766690094229526847615133697584997718824688911318423997978118340976589581533333201459540174616388952473101384493765188367805097672060291278227773715415603728698383980729360659984103336345555423949481397494430201326494984290739425607263961820046051900779905633567209248308795394200610175562837321450561136136844389237844838706697189192631392906423895169727485139405586079993776249222302166531813627376249442124136866077054610535815491938529336607481233845623375368317817180460559318598286087908595238839262645101514102821072572430063008066658888152324845069662425057633735608308681616027945390771563963950303193004375741522708164740748271921046247561120872278608950709666375815839476348270048481456374036461568226657682707409048710044282692994605214166991529291694694370687462715580345190122493299603481375611690527124693602886906058019418502989019626969735976966775880598774058240210887080547907575611624529129774194470631115456130557766774494031689160399523045163437690251319943762771504466692587969176797703755130588730596988220368769069309866748083009012639481651240166784116446342192401141386557774799628640213994626100457858444179271373145185927904528128010987985933322049536878944456857188638767417300828847061413939136192031746346525724654497254356498907724225404123636627513952804462598311284846515830524531279499035467055756401556659355409122978512252348993560103350532982188022501448783020419583203845131639393073941341969861179133459969016919765472760703807665196536327511245469784772053784343203283351682300803397202651121163797179031857207707440071987332057332232469015286847159411359887999946519808621617097964816387133248411211419893507624841945072924119826834611770933810497910937091826130416382368846397066532272087139756943794113515946955931127265228080837472522500899564868102143144157241830279998105602268854019130217060131506675175870169184215489069894287279033571545370079358834418301680563506831868591855867763576293411644351924184647447409382816432157024105382992116783208912523805351756660547564379181532526737912794303244186103537069100318287466090937246249152866116542335267356547933196884985032487371270754819180532805158619061789762195067030780211330652077448871097289291609757918005183856542038277201595084694389132940527050520032573992644398851108611573862548837387227169732224506847725671739827380939447046073794726368822579855145232622684351272777145578204572084441577924060165842572710787607425495133093252499823822261962637472596493846493982370489156867918598006351643724601225959954688470419947301428712557116242236881412806373589627903888725927520207683251388551700750905632970291020429239342517675170537326194338677842058837689808090918479205696258099824840610113523490653967697630219873400124703294642025097828657725909439041853961207796182469297662605824001434346568313769517317378035882480138414606104774386529842378767670113535424934496310145343952867666995670440855709340322368416570108147701625125342465117554150078872701616551671045763924423110079853388293251650308392934467512219929103387662381353761874757740774521038261319913407366451619554913573278035357718259235670368579957906051505525212046927901497496573295398969919418424947583923430411701139939975390016120597588252359382784533244447559431350615757534715489613053404323164773451001259824064832031314572529627464898855009886378538294032746772517024778598681720350601108256339699771891132131439488335674874264361231658681396896605584774553308637784972410619689255138970377254171785765762037075366213195767893255158343034607589457866506783009983210878082588000007593174688253247365469322144348748174963718320991047377724388397033655270316379139232842197778594946946554273231732800136402416396622564859470406838928006062810670189489072155996729639154564844199388094637295868386003710338956821941208259163590262921622666435405585518635034162673636176681554962319763275762653414494189650038019740812481239693483680911161395227077368126910821510374772188543907393666950633321249655635268623978366554534593285856506767212727422310279384763638087011158345499446676588232132424796491891106919160263573756475177899414866536817625259337221410586506554624143865749615748759614281467596414873352414426535245833219410124929891218492500219815437675722183136717790747226521515147746687676975872095905710251937377912711408769808925077337152662314919849415037630756068331608323888334475103467920246086421943104227494883765154879337893295016672711576046763726131134168754900838331779797936366483134744790862059227811495376995812216779725683153864966321204650266506175354799612456971774795926161046729024707641078774771236832525197250114915666868744587220149053616403084733073394314979387525207640419675970519415334558004549257008716825899494035094850051209973935004591750105447786662486289636338414951241749261409857485975541815443217647609158364908492611890944993108257593335697293103586558035596787711144905652581700773917599688009368575669141030275995062805062680275170821024282022498141334640518037985525526998923666956492773095269886506354337537236048625110893081413890597971509893148363004832216915617296114171078213251676999187639684090029015807471144010695434896050619963295881519059632449579706149085840948643086437788819688440803126925191786586784341315023173611018933047434664263533104817739031620983576551373204570605210244572156601890689146104768544277599351802471816258296034497736481391018451633232536365418193120529534280451478512650593264480989894497508333469262677271853107183903461979887821690737025288671082652530535306593233239370645726965633228091874507953501181045696785101930038052536184740945009979594333494130586342028303367326907991875598704332581019524667780839303330189661760831785749356435263919941424329082910335840512336609000075497024154957626917235207718812804716601991995722022410277412315833460750388048039659240115559794522760690233075346227289445766550753416195059291747033497315477963191532895843478188221359321654486735517144818882118241051418282964787590415406864213682357411087302233533368214059953949886045536888303366308203513448669145883978236978761188179434029375278653616342861692013997631076381325002442200437932199728307178213278649365607816905246199020757889757887524752849961057318038438598640830666494301754520001660822130148488705402209098164161233035827129503469178649426904521084676452283254925014983720703035363771334236316739669787161406870903170486776791584989722471507878685790192640760892765563839385580893249326896778997635866827889968599783543233988752367258361117507561534862138367381328706707790291264715032892783825302912824204407179582177012359272044807219954599048697060676961278352041828885255107638759918969074156834133507267063055253749282422680593517259001963818113590999046224039415593814031400514004844764812466644517199212475071973195233389616204231908100259309194532055760868783197196384106423878320428662776272148008898838029579035536097455527640066993015826195288385222678218533983773926310516301162985308875436282863015629816056145979698789085315404271319944069665956341656532164888743117189458098536106200951801602421487830325710999842913005548690418534618787870047857943833300259252927255350894173718400159759760239832805555824425996232174066315190580977281107017302961365949308920486106056274493590899765459093216444299639621253338664208216418072724767625552752820962628155040459152413813109644178232446579133504754252195399424263524216040984561833489510398341971640372339069593001697837940536611787579626863066446526543522851525904428325765389270263215367548907174210126869094936009977878139700092642391662496535331205828313067670234054017969088297841530321973478239441635807973754909579476667786707299408267773992522111591823077372963526938975319846903935009498842156502374804194610039132625150206598007650984426588044015284324461488790330497920084770825112316319986189365552977470027870978063568398089077583254241049977153746263317434338633275588245818540711059598190073188338118748112327410777962872381753723770842646818434724760584956292668887293396519368414750018793192294555122585066896574972425735198978282450334968727022853771238402627280550988006797151534641118602893591469602370645036282874064501248363174974782415815498197798239129299743476458484242721947280447311057496830528927086463643951670973235905177645204243780099820216013829711204994956655600353043493501421111082522119195696217648204044993310707257482354789417210450810140743106343417838112235244355857193432904398472125640486054775409107185236241285857780038134407294868424488193973756277081762910672511110930706116919560066448953552793620212074014065065183815560076913955848860372402826272592822872346749639693631985470056607873706981500861199797836786728394072202927023803652857624898734566466168583018451426963566560214985505886475273568826211499206597155020598367106048081475673503903191903772574017548442935590993673519422226635755268820220005234380779710027994738973162989036055118644483574838536781345727107627552964137551036226400285164978656473820481883107332602565789895323429592682753306737186506887637936485167038902972383198854982410313350310862501900000371363113043372754050402091095054710887530654072457851103809042911508944519903010735653285696333443700375564193515404652767782952164211330718544345838189596514637275946813212024914082216935938097530893040474968423679433244218821582206275533862659741231962043649196491276602978544487165055063522401341488606482694623031349390397747944611912082341104097342134408853451709074347797479667981681289841982302284083989203509099635833848146881827409865974826257384797166868065766130175442763653529537075141624864479918477234858706632202770591796234026792139132577643913913048040563221524877181039105157235997448180310179593302164466845751541035043019862229577548443906466426257589762556755942645426076700808168461564263918867799949903241623713126392040056006254213795423232091380761336418995021887920525385638215782204193114334502224211979284814554011697845225080351579508820792634155039516920914149379020717253082281821132331457075357872675498784651790678548985920926171181851032613914175343855569416038333553843173765991379031991639971794726042465564680624129670875525431628563325949931244391410316033118420208868188489129532902051506615682607436508018869855850881547665459521954901146856851630995221790744196210143905089461527409318035446178195202382993063568933800057422479093434504452519190751841438607347434465997811395483419298946282833587560386557113074083280174339223347465608819539554255700753413516933955052126043245960254008535437224021279401082183753483374617375828856283878684539765457246169830083663560356281648915006385874579698814765721341351403172230338293118412231906577172274435985733724305760889018607136044238807477333673539544969722062547612860942818570539646991181178920537324090439289162845138829497252243151698812293441413835199366029308799886863102294574532541239245086570777970899096362419949390663450280592545308470254018320115023949880875196355492655454434719116672238424415275567275391906520820791736310250581696499991928889905681573945054026582227912991763196868189437538144656586957246086129871331348082054005220726678006369763731161204428662547318190258026413728032901249261740527610358549185422149415765630407588101712009974794999760140182566016277858618134185990598328896886129333122859128064744189234308330005726793869830962951044708803283112160919471134187890325842697324290052639715304547323702207313992499185293754367104704848562499755201173467930014916166758799392346900844851033435636447467441776115735295051519641361140116759132914998052135257312191480121965591668387839822548436568650324443423105950268921368994292162769306902332429357773880169452280208672613575031120984251581615425941300650761618239640532288817666667436089049112895676691757719434580754274260753125596479647259682058670772171354938314583716540139822391882066556278025635006375037481589110245970378408461607659891392674209209818601735139380739536456371046458830841741612279873255195745929485972847793772889103398124393729607978836931098643021261061122498183546862882594549671462433612436416940224109896861808263014919815693432801707146788353716617786000873284075425811021811153706385287634463136211970535001797178215065527631133450073793871752314297418975712223112583125885063769444026704986367657302709835449477117352499194559734093393753664119165828639408240954824417747775321370135258922612713883059707178382115143104737522975003486207641422500122760700068862757499534535162858163051584384384821024943342672859838560029731956554619235834439021551448100854359522200825470946965772762937234025909565373973339919790399387109560673005763084601470025936044990941241216200392624776786991743338653335926180133142787674482543777638985369912720535649171040879140514826068956858040461890652529271657543968122874835973965628876658157903652684054638071008924005911448482822120021784042620511678423335562953221273950463978733796455114934224909432575520015447889058055647204794308383088565336749673748335503298352061601259556017163721367323600659424829153243700027452999538035613832615077442890103760297807238699260190822641062315721134562075511570321916812012751309533210416199475257734679995370397724400278990530153601330029341959003567748475166457520374233334861764137245297554650261477469589512703430544034700499212867840374037023073508917542946875841223502756803915064540823606303562580091790511474205930573416527481927344108216577020370862687350144047302838383237278606600045457009133492430462197016552953417677200265069408949225186006071315782473875257446898199562238326376846254557948467788340618890893679466448224745975036178064327986197655676208530219926220330770141545005033213798813032938833332922459910305080786674629436077010581504318190983069124636806109633021692222461975921358358440264287954022425505695635672799045065096202711285545417858798795019647769369793437922369873680948879246893298926245217225831712656909054947402282806241817986409067509907141216315160340473650327761304625471351527988551591004456170857409482056699829824967744565755492346649026876959853862065187068197296257599992016531864772026107000445633739819117455326116929843803040399051317444236124301164858810765403324995103616317033990441236926003972986803663262851303126773621945959979690400711013724432206426277658984339070383939072121135826338308846706076568684294393418922907354425780663836955413748352561158895390425633958557239970086627033185007296038330598258609236572039358988281599901682871477591776774394519625504763802815323478726215566873370401949494541983362619843659956031210227244083814219840413953901949768196282914166432786258150243973634673219748035401881192861868834105991439859848762712103464727731092528431008603068036971484802967250632008391608018942623873474201720482844370558595398037960612019950139603170279814233604707240776675294858511743766604306932572158518621387447904487532235175225628593640574124553594198927704929369358088209113317419145881404639317818002811693905161266585886409011077643927435799401267428004846004610747439320143577801505469584757904165223080107505648147740192136003029443191556753749683386495217103833947149748854758163294920790939864429228286186420003331129476970311124694679896257162368540198748478616302646731427561380077720526149539791868650443646644998943187545293861329095267715639826206138316908612046860322457957705970829993950094432842971855999713108918890105497088921640449382086887383755018630371302957259214007981989880304145128147095691801124787042327806607368640457665526520194831890770636958878271836026536991835360053885746993822476262784435121973463393211203675405712383654337380871510430432141370698026214978936000041159443166420717829125459959615703705046257639787857154505173751880971235238407631694253760125542628556226021187744473801464884758996409246795386306632926789718731873713549441737978745212535260219285365364437295535123023745755639395048052116791999082494287776394938385079447675063717626361727908191517471121578793835867994959611093164410084882500671729628398894913432089173358029411663921438861320111864328045943124430179163526592832973670922311435788977194516907617529669345246316529459310062304280369735694924291179744713084121806864969289515316385321517759271082112107787841150165812526764866400563991536543761206014693467971422812744852595129668235088798169404510430364354727063959997044431681898522968264679694440338885663913009760108358802068958183319656652960209201647693806806694513502459505650230278672032006498508105692785129303452077444102036659260673789358720215122392563259024865216446707140898170188296469769491931458250608153032915346494324481748629966917754921972436829216196107318557442334541678580288627048088144613564618879716124867394620677391161728266012753501795238590397561088940598302153296630871769875588790241027816994399548567113655682009990945384376915424995728130840796432519815644597481765348522561746111954895055436832126824457451183756468833383360746943931806465255125948663125278651310153399731110792927277434895702582378781886771324799155222081431321751587800529782334289259114108833613684086182111799299029277949974557102964225651553640353527273357144612514959800114617768838739463710406700426984226427602041840818613449827513159020265187060292814472177533208918139986776289581400565797462336262307835981606502794306927817741215044629819176354543423429959712371746760411342676366992194184534510894410442177957026764648328952554066014261006902884070671980318937667764631333398790182376652372880140570067738941130403058190340985961413865826919084856437004666064471275076427480990911348478838455285048947305953181983345549440224066521787809918997310601066626684420505094108836074633652456698058622662496087667019093375728041074541852679056400881101894127351122720479147698060209375383842967248771778866527810039705504021396974654531541440173847847020253481037014838992593905346904161870460869325142401849494629780554141923940368482871430481054800717056228656944176736554778929464834162727381433391996167026418923465982851080896034963240702559202696857398915399026124283131548346720049921609103068715180712594917053673033119928868975164651025069152861607277241281919762536133056062864977114013012687150610039512658709860034037921815364227937646466210590736675249497401193398939921328691043646685638894604531137237294509769733674103422280855390389221993327644610476582022144541386217811428147812165928617080304095664194690505003936713074639117015190938255926688450605931790393067572402998021239176962427633785189234720992264996611529656405758585616622894535862185491852363567093994428399360894175118356344350010321580988058066810725753467701464922072176464285355642195798825407887630207211522005256051366692654749989820511968309358664069424383137289206796386803949385280806312306143407170610648072578569802434085311882912895540293167745520761888425703572850373364850603115486603906763703719542815598015861918728079971047581608332939332014410518311814947826116314982876659317327525907161006265092118303356054311789516621005588201994066570652016917318350721570237325431583223834953991222831497891873505540316357826550726575332513069109687863273868284019139161552581727270331609693071742726286738320758266687729255722146125125319627643357808126356366502666244782014906503104174390082019151422774469076928213529630487243772753227175209060503811857565662715187774793155592355698443098309838410057459639824502913085472195260979979019055026252967206110841165249344875505569268871265691973596328667489097202543175331558588956613834188295854266868426193513919759183795825530865893795992581222325740435307518706149523788094062180592309889682356766627265081148553968786296413287327495591499020288423878732574136680071643456057365938434179759516053821490745153462676285968085476384615880650900322105707228730251046494122338389740979276623010416746766776901186986814647750987748552327946292541105676075887980710620480013754140661636223880346926901794172369257696991530462934092426765821305740613732708246053359199402260243998511098253950628249477475948470051229482480919335441889817649252021575376562085401722020034683878475685135573763937033840580990205991621644944380067996272662490362054371492911195257099200435709761349550070885219053407889825679129004152841025935345784103575325985383312014421678612208577898563458362041618326901065525096284697061568347708066630375035713139569215412265832955935901026065781675943438551687822483097496696210650488389051558661926320941019665925752323647319888246276426223562764248922683149063949395456443214894667337217016702689513905933758487685613536910131198773923978987109424698459030655364463837648187472210264445931715679298027602201597084457146101819947168603679169924742524372289979303047041274506886223906329120343522334778206842619745591852612286823932774929012410078076094203501548909097770595282826520729806238746754309636524800624078527361810555181833234783537011980343859910461772506107117142486743537739425471389415491063129242463819058923831519822912112995550656080814984179019698815710196935241177409816484672426720327482713924722684871796281519402598360847094058277240902281948943850185989941847077213217620992714718941375990876278601378977518127027696692872600541755745151416207007285600910193328357949620331656746803655329112403567135903894078892018637147055174094034292592703790657622378224147339130927147598117710025583261550660477191172004119345086054026438932293893568876875245995036206584756444345570483495553928590224306205272560293566931222735826702868153437861489274133894833998094378489352582758115110631209749810685098146693474600712962732632157258519739866359104843300621511777569403556750764476436029443444277754891737871242941204631205055156243254040664542254655016438718657492520359869605896261548905810394204213806342353402739479330395726407133987314927185772220532690086598104188637936750257482668712196626506140032840782546342551589586034557107958348196821135702124458378200731534721062063159069391634821029912070019067547612080903742649367332892297257712362111008102262545410054114772368596116002054346619034851285304168189327773043008166203711783755924063891905385336409182636392259528370799843725802908180779200502456094426592510431775988025825568584020357936744967977416103496684162432274784029492086733148131333841236947855550239054553262176244435627194829932438078238756338910644429568092785777027831507006953762830583466086833388699349405942504617558608124654592000962738501132432431019507291544847981655201566015472935444100256500779587893324695878017044954581265602411405624868204289441899552638694773915198928688192879506031544553331448507904829432344834218478257636032680418214854191279376796252523973690805413494606430540272930881374323142784791861494464274716126859125547685960091627497719175963253970736964857765834474070189936357866664273733584044565631551516305653772713796102944418972617141981651434954708294070406465307308368609834352084364711707236973645488532891669118098563587506568814942757870763087154486320296444178656326220012072959093037367690739905641164297340815681149815327914399659552464167779468192582874867493118989296712668024646385340949293966330880163340988409107209992361214483740589263963448805732749259791069972312857538763794162325543782782254954607756113015380560768934982152604755816994121634268210542560546783827858552806823932130471160976189430849125856886839538405747356195383728840892521828671538981727794441341077814326647549510065211603364409667017516660621794844285742817942760827819614834754843324096740050265319233690883515610008949581501733810766252201845217004283616542017175679024104908928000611505453958502480820802687513989770347981741444453171431122444583045871343919135305965047157902279947909181768125286612788004117353986570820490679275438424172851301725532372263621165609422958484397307903888398735885579070683085967296393288082007768846030733246034131124918289724118334921355443483794275996982873100529051032135576894606727397301294613325012332072769831662615263955841124967994717891188628240023564152977945973807120478309694796239795840414180260871322552696504899458192210356761310952405542583644575146148178621510913754109109883080307992647440032408834708011499639100412715951681442610697201869916491830726877324358024331006379537512637241412317567180956522591454682055214902930244312327564941337525426722404670491299853915880264143050396367085716730657634757935317218357858489003479824373809846874271323344536898992702653847564549810326225285297539736145904750449406164490255864385893054202599134186208604476234849185746763990754798955110542599801028535661346081889004701106334879085252528462932660148862805228451256326573095127903894173694546716504334548138186028524463361776249308446607479327172320120473032876106783963845431822220164183814581375674694773923745954496479598140841773903373813856694001480206382210192765427383412684911580177315102342923107521620705203281587307483311294090863177733799046225425601282420293309240250818451259729077036423827913487239865134130205430373202618315193515482227344014189630366893193391769091843497778812211183511950416229155220931866649142108765906010746727864476131838024573048201765121093733910214299944505814436847492762056483436974872114023956781914060626469551334024462611802222950249037313869394946071807076281284442726121823963836241324219193873047155620686779948791397029652264888080144232792495286285530117534935719098900084644327589044292947711694242208097309372012939812128822714898822273238054720379723472766040298774406864745602427945748716402231938278535937632947228319957285894785921257259692714628444753506980931180370253435170070810973873104947461806548714126686499199069408300735356910611421822400598489573641807851299736387745175020670867462819292362084695165388340212595506678897562882372608586407365180153223689845103763767433891649207723434788481553054406206056787792430603386424824876220518626786583873310393177458585689633105569094917805372119870273810128327933535652160137123679125965211580585005270428230317372192418096444126881897602143342822797479762747303771104007509870534345089674023459559117297599167758907631342387367445093723122610172036359259910165999397040459263408565112130409499769140108406577459021653990743752916544813217250514166624044853114836360619644472740916616048929189421157842240888766874290625842647455945564732592605505883921741360701503585737213938089921507788603294895970437450218671665753714390287864067356577316873622875438546355146781188629314341637977347657788314202753877506532813675234277729619866640307011573266566914402896353174891169163677263690884750965274196944806084594124340265511729648256440973345038582425352792024314291391692117285900336661531523792531024484206282401739286577888115978758584707640678983359363166802838571406904692737221240085080956326298821632381575122079066869751317109278009278001263756641953384434038312361555036111635759027894063074268206542775918682469200695020372448996098581346432368412499052866644953794707147789270547761885027639865172508393380633175179687065316635302519851714822791390054326233685232378712706312569097144826969351571851150551801176998628429010547144423744609264059929835950661583082186282705707917697381192974753272111002305174081023672280447568991353352458698566875979569509176960271113768682546261568555482984801087767250470778140984902958043126905887137330897739701352799138326767140004157742436374606789605746149981567135617807355845639543950273151513999649322665305194958086776081100595950338045986795566280703564430223368149698935770671086000510984605478296326450377676483688090924828272126014282938566239932967327633132423823203606785247833783010854877881371739507894764897418336307873855276043742483673643981882965300621492581818994471476246527981387448625156694838927829217260881644876016609598257610983229798356381723075686405839278111571308748106794750992263390852951276477644506112258844223901857454491037987259986925022884000795423993653674096874598933271883941128740229297114042044860394847407872523132355745438931108050089836776449060315520954900183821977613476882087427969993245649542077381055101619219650946488638931518601518572626255685423067314260064456826263904183581590413262365598776218439034360168299291268464903029981950239164831372800236367888464668110967479548795766805298744759623941988359206082101100096494406505071193176904857279764997591654038046993636072403238418683867154231648986211039093604514757020757795815060245790389152716372484392696502189246842522647342782890192301629706774509763345400816522934193532117398350820050434444954733844107655222237595682346949235513617849122683882475129483971033865726982552584564612954253813255456220593672594539882433856629276614423559129842059151263721475974804578631882544781833184374187473421766100847276529041238576651135677407428021655669690937777594216846729567304521121350076575539392058694458413614302281823598659031060857582732172375120128386538191460285054166245151742961358370357160319557394830459849178782371585908265220013439736842351130153091916719596516711376497806758079625839533209243929091005703528567107165412163036594948889160737522010664743888683908500241329658136397472769103114595902954854565278617341242382334688845085691405218928158273411972966395969900994034169922567742843168119770815541160597451475085809684668465580919076021330636316383669151030536763476222863806521866725398596010534800267253952679689868412058638032946238560162727766948244388910278643035304267673886163437747781074263132699325143240721986223867737630966280673132842196190444982748290126766986221479464327021552267340491693536093262631151413946827495514749143683743488298267134007527383191108078978812249122634987166580934572934703541084184909804496532854855529458268638822636646966575886966676888073395999987558395035652663197997072148976674330633308733199343567322581358270783395613289723978783421829490569077174929034254567430133584547726605383511210330944623053549949999813597148039321750695655078728943068676050571903662507256752871150125958398457745171569521728274787434067320498723675192020409655870039362213729875721403429842007663350094829046972383398109249288957476146311643086958982598509158493481271392733706619342368413276096064299106571597951804863940068774418920680650707749481341779187807694515533339263245474889874316389541409326019769046523414835415444570174897278961282128605244650741063077383740759267995972577034771957116940181018575180779832458397934645743519641454755386351134714796599356061018677870371913636578237840229701850036424838129935443929840662613825011030167194429917578328876040267438616256663828369735589440096909869416489863967716589726019224615996309134522404711367452361188259760481051845421487601012548441508924036505089278448685682733298317497176902824646257783237179356699521470469243879785503907194079465731328750929628499437715718776382442685955571850442723079336985474448406999648077634266573438904258936359404177889983131316064958202091248699671858518711251713117996149819929582337393044733971014986308326609578646033671935548911870022566076177538277566169966917784311873563840338671615427265168104873504749181112890052484699836594648308627019395168111596873226544591969334575579225306195371462244588849162862609968327207533482363084894727269458779465530350922648562938670975673388629398014709649950512511643401790917890349179684646646578124676971115501252254351281974582242365543205706630383171180691558684961707777019284187483800595543111444769425864956724854322922466937056272392857892927360801317359113694721960045751012527373802915224571239381466871210862637505392957690883924696443040764036852534759295129617033255275419912388508604235191414324556419457548560285700232131264803731703464278097368317720711272550713483986595219135968357419355013250844997249698350984541501019179869149363338844664779457231119205360076822300216648332098961371957069303416618784711130049349746302401807984779560116400462691030702762407303660771318759139805445671577425598111006920868318400239187100677783599621842036635640952042991407559286955994492427341016848748971241220241974472002624369724553840827840562248605621866874336387224175969093802670926749724336533796014148553808581379442923935662420914634906097549389949944351949938399189036562978642837312943071683438505453769842564717417519821924602361887638139883006472632330851419939919754396221030219306971605455120231496751422696745425634574975016814822946741900514111665350271671855757605446455798847413086665681236467061673560544452338682830763956225433127146108136816316744862971884985249311273474168296139308268364807653561708519867481546698807821725496052518017177937169986134828047231115274322484381434329152897844515266802835646066860919092187086064910198811467105116320793686473482712480404171960137972791745876296362364878921861803939456549316781786619561771004250148823852998871603349994062989778280542855960580717334945608672134998055610904804708154035164613442000881262495610969454396850923271581169737941471229484789342856135513881025103132994961119882108483213535151122510485000678495356257438217054257731639532164836447945638632750223249569925764190558958517020642897777615044660254883545922681753301901082153488116549416888145514906284603088404300471964819991803906860348867280481723550567817405825856383795539337160576776272561669729061070785650257430542732640009348798542341755714135629666183874321056957852087687543783161593111427251820639058837155667569324833712048305892246468374685115914183393659246080117087962602139005158023365771459991287048693518525461466588539872545644364971645644671026583977634945611024169936459858256818540873354520199624501093089686458705220891188158827154433420829472954057391078230427204594133256829582926371690697759918062206688983863762616703752751347010158593486981866483676930434226027732611876605100009441319334209143628163551128894420170284969327050133863338195616281480440075065669283436146179730734371317161598304624021206280934866101588010464621494554911128762476468738391019011884703328489194592875248656532474009875002180589926862737802968337628063411454253491880143663682544281477480571867220030758662215588699834751531200432647253203063752325114932502707245121370709439062259563692016735547381995996848340989236772626334311079942456636262560580030996094765568829260655296566434736422835663763834968003297303510683282776713379491922026947737203171881147670569497073993973475197486216546873276371885728226749402159238699650347391589367340998473727516588886192423028761097710292268913348828587729401918548449843880252174043289817140617826789311706029052531267651417851651940908915046545957219301040466351031110005995914788460983139065015349892950478880828954359430691299174605196534843407945030697814625904427182591226760079200445784284699951647464095075577370735714753536572934550806441847493878408569915480665816142105089628150255179345345939847732779685590462273293916547074128014696050220817541134843077635697836083811447648176686295266689316735969047052669036165718044027696360580857079562261775635425373435814253384366205427064309240696352825702145941114419766741329151875459336922721401946681133415776338472901807925433630870409677836157094723472386979389051774192909748633600679041360438801024292139379038271813982102607781372693987393587396016238530385781581272192251921812113012042350433763595190346527416713215022375140740169744921632713428947360231131122692644161176819030714246200334428829911027574480797506487782755360249326961865698522869441357048522066372244662848902083114434502873916743552723056423214385941673302925938960258612003692411268174183436967497047094569282624259790591578077979359530757266449262390926910048194506373520457990561970016032882112907166824954471983155211669541591862052723434257695676508708951415796064374653232973635491971309709616854442089375406068018514957243074912010795289373070300414454944831480357335320556507196155485187629033952970905639135454963396590828164273951581856529929465841085470549096666934396255383832499662762320551665098381695624473956306590911594837175616650702303513044068399840268885305253530255734159367304923702961825433650616842050635348610862859576910814295252514165709607507991177273222191455098424456773371404213706238220523334097676939686425885705645556098276288301866807258128968906531877849129556123996919550796665507204522463250461928407678982228113818679981154859226309366112328177108063295883168290820468051117030499427125070635813702732646426120299853786608165304310846519719974040098960790751701921564505811900862298571454500907372197072257415549643608251738727796683573958501209368391801640832796828682770249354951100441733409344715609295559325002814554798371977183342264182199752335901912434607845176393896835719721421238043770085272885998501139317731304670860885991176875316810060257446821547874687589463123748561207954499913701262483439130747177968020270964952241390289915798837281830185121228242427244345628536647046912566362222391771823489681252981342555188384764545348122258085740340755124097712354743201650630969262003065479308684729817867128559488395182163362358713668642050011037740441639514716173801293083613821044070175554218035424679630980056659647812529929043896383827058470579574711786157505627855174905178912049287894268233054183668283279683160618651286053588935910830527207332764410822243428629299320534296862664144002083602812177092035777467524983916405358646529310905191887505108576009164762249148630948150474094985090541845679710093946239630476605928553134190577942934348789445684633636872207791733487211189368341601716977101822392706307420934625935826930584932246750440491112502670519695780580734021501406380767534521138138120928295683354267261285360366880918112222617467754041587464133111981588053398082368127642400932991788111807834184732341130859372269790809361769097985926706852672227686022422577380902654132619390476716915387355938756886196478870085904771789040567626751860484946258452836115417284351969304849198178026601948320107131947730146057101217489096561330625235903225248141078582571752883033673243655402014667467164487856581365183043915701384606021003987026552231162080624164172736059903735509873430400672522912673990555245325290911841340968195759034975823068980309975906794544213045323435051863947307707407579637693042199738368015548427451040652411707519108538914055627185313998045386421096365129617069472684925174753513773289201857935262801239545840936082054750222556103133258913577195531674619889365060924789288335419725071474113168218849801796056297366126979020901773859961550741994589189422050809896956958689847806551723443977289863658473822034273246852058044102102155886004105325580342594703422075897538023120819633995804552179281736253275108653778484617410148101989117977495667602876923025062043434031669786183205446979158927431291281624420677033249720220297500275919509925635255485663980835587938630348394601931204788770027707269478805497136314742880224242156384056827113369911793197635067908275524182070328000645775527017675903087902754782116568717406860101122402560752949877558433349910571415516273122959388042493140718952387492550803446984562915047374395148634698391664415860139823890447618685204390997034321117960389032301335338294662967263088083998365606750343358913731088075696776176473633794569815220364951561763137852626330441442782532285538307797372605229545591760342866089091833049736943133499571801295702555486060657473741165330462491125144049359598187240720372059583079492440474938548934274049216447256517495173269320347264961211024256958606260849080192398461415732810976316024154275996318854810570231484448743114659245744284459773937048906227545285562417761456365144698103160175381416819197195028705660570884094660656081169551210609705728128942243693381747313216178453980323261933764691288085643995437107216828655140436603591992125959462849915739360628782170574003555871963629264255044032694276742584800732087890150870433212917742564812545621124857314098453309239992859275347642431829763207108931754340679155987810942073889787357906488271749599393609812346655406451921576411183273952126749455093828260313599665627054809011326528663796475906711806370456190831680706162792652728162996821194141681536596916413312929184965452465280885286517511590287520023149194196501247997615382873210160176806831627752440102251877681854942629488737552850601170308097905854805981454365328977673193504761645432355942579835624929949333381748170119673844883930998886093152731460782804734414502196554880907020846325402508574058201143128361842375113434179001658960292803243287890208789021572392821544740563721403700919378270199090554540540963818532321199243145466844987504986755941838448252576059734198842043641244287377034627970139388947436521306368024215908348892746927026164513205925682486447614515689377696579370440274727045087288726750954469685527462988667602760241028851871833378567830144136874202022132602990101773465852199208181189856103341531988237886412659738552557970244981855057222071785825884397902287779425623246049858743322676449934930579248556675075624717784815676732786853366065004113820407348006429876283875077190574057554822088075032051505236334361193197844055804578376688411074308555625710017213722968859747925375335469410028233909079631296180674836320937395540056749718138277112118103720599499273299037178898459368846813823031166729079701054144526238561555613614237402769850713781123395110844432775677077118862704412801689438975502933897248649073653748468632708619854917365397740221819963941487903444714465822867678525785402208406476093922381936347205065707359365671098326554368971016580095507070110145101399312682198854652434477646466367439654025623282913525116364255424045633039611989464141714528961477730490368112526656013949564789410859157358029811312045723042844600847816989660112775587553706622776763064897846368476314106495311811419067388911482302081745476388172311492680754416106196006368167060984920115544286227444289167616805188476234550313423849654578373975007202601808580317941594209688988811814087288313055349395334526437544179755930055480338733082881123525786001442028233051434894473323964390948740693972687829497931483613842390101640915746241599037133486873918767772590003982338114271901512670678272409742393644459887361432962310965564180762741287628082299154740576633459167005797327591936828232244236541834593029940816236940428156146431833295724029928530356427401978349793463561967185907886618567047501654662979116227542704970598684707794975273572685433812880634987837020197275111947185321743215460752783929040638866884615335965393071525571381871581871363523541434808128244638015933227116970914954472022773625943299141389599356549848425422545936976617652365848083167082144249712407579006554037671748234114632118829940453976752546267728902280197860150658864941137411556221462060802770795564027997839175661472517513317421252018348426489395392819278864940592096419136697216104838127390758520876515929443958765210176326286379233543813334323944226475133719986756850743718240019231018835667699270309696681544841909121782161390399272766869105256429043597756555678110802164682420002165091094143760869583910551373089042695578702766756087197109944181151427693451875287975331088526719143671995457165063618964989653382989542552123990905803147257049178628480031516074336695530399147193507602231808863506664340176389829862951350594970724306990196217075648570605820995989555485641456868793240291391154014046670106232871649535283271478086852257851438172421745421987553526299757187099518734832078107096679824955753847903843967999880296639426553658246845762189675046243455438273861951833481060778609830032857067295513477990738233787648484468385055405678106930163952132096946456752664719232112360490860647237417850541740168926111668677807815751692722883843612535178534633705966856745550040947251131278245174469168063206181397716342165491090771445882427139880045971416605059247741152762396457836517640667493841617385868342500632714819499770189897667270797577887095369940729582885393773563807543898678119008859066396391486916790945114637523332817039043873521474561366038725149479252196758075501310786088939513961612755777636696353208613661860498269680305629881346379684404963091999402217985924165146867083408174182950779268205834195741943092933097896799606460171587163167391042792987958507677239679084022346761551432617395283884880092182467503410869661472080307866554706340692264330606753876338580774912849165090867953242482302288357071727754909852328677621543614578426328243058623394542849002083405783354839848758466383209232953304883265209335797806169465585206206494088741032173493093850170223643781870574516697601729390572117095555572302850882176222645736354782585731635600313112851928991689559565386770067335417675028572461771121232075997393311999113742498400147327058079161785182705315862412529291938934233694683645814495076125585190750766081330030668505449953657237261324853781317001818608851131746532034117506220796208023992207404529607401259534792920275589098434881687743704975200478527041277752987800504584736499141242755274149150375219149602728084189991814133223462260223896999942191796668832089182225521278455553362211160422713665014826917306323825322833888907004776210906903560618893128165586321076682937749634586537338733486656446705059128591365213982904012107733387030816866985655856089877120394978601820670209499730924902483919601775492903130249523791693877217933132229653159895482871565888816306263532725346068889211313640206127298510591717532403729375857709089748734451725096770122844355396242179726382643992697500628048110556062669482620924516829481030672147629005767680543173718337292276741350867725781620654712147921659800474861195594617740400489427299476731439024663595651425226538948857421424869011235156299470877253959531937809208634033378753432072008102714976361508046768643775427319062928422265905801356375880381758622560379953217765754364052430122764987136650086596937818999160482990544038503975177875411134812218735062899012846608124146934638558656849882564963630174723298050835640179067254416709756715764735487093883498074962312650022988679955003290077030050834053420661190910880536665494743249710433011608562115808328729536024632287146679561771294963447900369208037797646531232523530900325912888337232766424178467165786468420157188028101604212228681217661292885828792521128985746186128659752091834803791707846408721793599639002878950930067225040712514969103580368202452884201951706257871075938687933950944381462961593433732330369251294409016061737268755402978829854211484613942847467151690917710311540407869897112638461460075300840771876048190101800604054280020900542992982355735321622349348431824382262864965367159902150775606317216424670499418196047319278256625864501491340781873974112376396826279192640270718586293062658865245711599857239706027243237746698896663936484022107183431007209180280515821530574209857016355304318349551747517553507456505654864029036416920418635255720607043784620454396758648061496015779474927520756125038707419198331744875582637736430694646589922877550600887986695063676237596877148082196452812830782966852059920996559060170591797247502344703566683189953544370334318806595558142564548319607081479674997949406655999000231344238195400298395725150088169177411339579688075260468731099206292420033337602296016025602910868970417283070823600199925376632844129178661796750572463012076802610338542277669452370940175183841481933792759916507277205726389327353330405727373258426671994180705908712829370440264313829704838698791172713596684488957212997132078069159397103128170571804039832024111926263457409856333858557098621744439083716845725405343971430011142284035149214132093376318397308391668220168682277231846329791665386847764919550556533552893897823765003496176122661098454072121007594600823829239226325526738287226097376123521735636869181983485943468635039608665956139557122844762200691084792822310590748592593607086284075930594477941616655650594598902517390172102342251655329637747445721711198564693646747739032658714689883745759600722985916238872034984849776661747931852101431275165733226867672439272027415132422293754390377794413778334300065696991803464710802734237634241149450132376658347761599291454954799665510414958191887871259806434482253504315974894863485787095655616795912176601996866061700386119584984582448393224595133423112498032464920364244430460260856614010507425927527429199236996811684861452910112046787092873793932639964584061811188605579079617320996298028372160287547643651893340699057632318464573822039245275640656826999598329426993338663111145062137149960703128029137372681357412260432707218958296344583919336652050288883366169783580245069665361691997436643432912485664473660921312858387253160820670732203536785471475715134626840145731796779546999193999225997815154977095287510406881211552430303884825696928216993173982105530776762702402023182380171879405814861005578047289380435812865224545940536934758868237400196607331464368463986395999473732559721704005038295551904656053361144163821891996502948672834846817030152259082922555471984527854008223963227143106537811898675762219952713007946078117274234976154150055859491213976090500880756067913946749549481430561402633920666595746700235320491196581735245289011407437704428101430823147268171768712647871563962667247166298682754905884730590027616706340603042068498939014043910667491294096420079658139558239939952635644532630953428148756525721210883596007377540582735346198106384242184290039859815774459132654939561856885206537929432535056951786736599163675980503762252837416368529887752019507619427416745872204272881849980362657812327961261846895929547861248531893387562465750871964880484911215836848341883282109189777339463104005828581517937982912575238158219636700742682916679128229787501331065447654529773900996560104628338275799182894086945043050858769346309751158621906769592494929141702916745390082939507348406255192270463720929371196326653633644229755785264580058496444094889657691934297477654348350534104534914786082801172729856402836711563662715284532915682202732100878403563602917605347330455918536089908607010242032119644527818384724390923055518848361979998255679844563517091481742652017947700001491054719443076490415456061432963716087150233598327634291650055978463505569273733781966839923664074416970621320112293070502379068441818949467345016345225666335770573360853250645543986523982769291364308325087435736164992033957072615713629713778161141711563689744345124335968839256481596948670583522684148763043419158160728904963536996829323815077983780054007132685039926132121846667252187566604973276594495086401365990480290010697508088581079817998721218736579612964665518134081660214720717794935447395863868815477779511806212433525218239367089488753802553561081052421272692446077224214811942710605698403697046102458658010606837881322975672690704609229067239031024056047958413658161101120612837903550911179288199890392840185597766811704574785464996362422518093876790713240492196845081737070415191564880160695481180728060241917333532205085137690944056898851575347293514251652260362922130351999062411178384696667121053455755893173203895924170632395908660075416219229689604249259247084980243015791027367147939136220955504231525131062143107917984645642749375403116733533725874484563280684439141937558985146264371643545502000844564816459526305929171526638709320647152865918069238440303450941893877305145763946149827750541946036600272226819888532385828761202867517337191185000616742287147224015937975343016743460361319032315901627794994788183741128732718552468806672382636830629366244663884332401218814188866892582488940834138921647564537795055359781902198409600051733050847843748366426170427486108767148180375887336180680898784784077136693993869981150910720385849392747220062017151732410558044678286605977728805985789558648822100294056849732655530006338155437923430915328951582464666472031902878181927739049593761138576299678043679240504308780672272852681501203905404322755199137234633280298316853684095479029888398062749915794048758272262266704338450672931732891762375679869296149738923371765858534306040353331190928615971500967625994470297496150881422522655238644614444327659680157138006307430797659584671344780946247747014462226172394137670196120239827725765196824428771566080076184937278108187130251203475551034679788807385843695644628506795944538798332157937351254201183216116173703337964948240383800603343142548674939604645923366824866147559088286593023005319026630670607509285378664038568144924874339202118091097885691782035103852052068769984498501807320252042435785803324259762179688618884917085309909911618199239334037818529829001052698372763915182251187036781014678600151498458356888311469564579108622687990776168010100040789555490095417663683256500020243706802680697108698636105391051866207117386333349459443205002504418662428954336503534338735150141931981225505455231206141320760174987211822697633710760869213879999982041237245425256770628573816332104203346732400395241200022890631089737316371454290442958137883696107719135819481516575989909129156795296536461037324331587558956695573678862667040346739220277928373150087378068853911119152487847798842361392065662894288262149560399415391875165059482888580271581966254258324335739769489869802161921410984887074828350966250156932251564951532839166259418804507169221998093847379489651748422049347208653644125367769742895165505219501681037035783965888167927951609544028274099637939794421449313277339392893005937251749743172726982600372905765966434744510020854954062871635078973048872614455394069653539848875909306681641616412524307302992840620905974844772292586554928121286430058809073182028850838873399415012201473378525210161906020603106132087511696373197948830868791911176746306356114095855046075481302615229701356085949625127722444800623562527263231653743082524722076307102002191223878377745753274361994607766743823917488605462543715986507227082800902478292414889098208923696060566410086476625084495174299984508875519816375547579869714857844902174546645350481711502991960241788003156845247699685674259634828184957860330107655238591497161663002024756310303143125475721864001650541749933466237882002526091443070278382422585925466237695356095335126678928930327418222288817985920715374581696722547428400733400713799524981432786487370928093472919814758875477540512091805264245683215262695038923175475322271340915472994116263839368805271876779409800233921940902379136879097544951756678414908283220948850978212478383338881035609227133086337099695462473513542876283530216505455123804955525953767794315387438049529456408438794699499298353521326637867975694665944817198057016367467162010530769092367556671772158875300309763155415090009743172515294652534551650030885984931795198543904630135158424180865048664850742966531277843243548920324845728397124121652082871655114238293789417718354815271438504282418812037548552778357740585308331391796128733891873423165831077863951827749059416612657711881522431483732579368929900144702071000905309327046025426196470037861749876815133058793792050428015530324508238138099732720697420217594185081468731177255378148969004356951848639743344770336740447182022133310506320283113377896482062170544680437060082302587482619089176065289190406420115483916673624887136773923017298053408432135205480901088026053422475377449584377732030420366267531053291763799652578382331016723071128048917325952176450508256061900101258838156948762814381459897974590897043012221796487724708317667382717497641030933453407110626830725718828577832778027907726852008635299469787238435176184196827068003040811206505026729199424625861690533045905842450170432624003521187391458105843830702376728495157828378266732228226560682060003536542358908564625539679039690514007696146276387922126442457647695848295705458403501171794797086948343899915640227719863717532963227212796322359719263033146696266666047760678870492616675354238586151799015442655293594126827305780183985655457203075614691165755217336706930385893628232905264040065039753468365437301973604629032331159551305966399944938299839071202116906265579090111095591307076967179165946995628876218117405099627262948105577639108686558373082350607526151244411681341281649567362606086099991178039058397498368667192207354136537684171642742720648719221988769093612817573002182156484098435125215165171416180938620966127065083215917305325930943825221847283125666177685046734453599065927302073726392345867691239989348533712557754481715021716960527601417230636702945434410328571291703353472078756775774784983227664431339553758762257010041061234728607743843804937084248510176290391519169662452765058778616568234666590860428355578084994482487047729925009918812387857964941970443099396382184735055013194151742646375552486522368220644302018836464843372048483608477371654785586999112240440788397808723228363001790932588412324811419080889490022542946524638857847280880676796043543026645447314087859284138511233688180583071294567212807535256516544697485451451241277169535626403141077563300368937117847827244110363547920673010139550209663188293690451637172762432902971771216106005610778587881471306039874474601400302846167844416744744776814411600425183337075103278035097607402458554577518326362452462891109522750234442089818450903768361212575778893484060916499860021178365111258514354278758563443028215529787110408635478340960933331320924061721979571922588578035191119801837939932084268536176430188941255452077108698291588256066913707326139719148413212660739905217412931229320407987525817526988894230231087749640286534815383019006169250348583957681250799591784157864759801903300050534779082540771934253048415448916977448065934398551422618152800840119509845000824387737585109723291088476642860332939126830845249553872135417739379675214612411636949624658626732663282719318733240091482751355767873560851412766116535055207786166643549297432761892042469859812011650896328686650586248456036342881967855711728052896934900897292261079807281226244907985775297213237804086556627773433232632792367907238017406265279898404309577907615662606369908647703758904329107499813075981806352885720379902286030481020558603990018126704780697986923814820992670298641837215695217723973332041773921682047466960011250122714617513580341619020564480156154911008183650751925542686521476259590068188901165789612942165105844684327839919889197882152662180305670608294131692165390807346057918653150244185527630821985524154059065913699789202631934624034690374996929302028175489758353674042077349974647491852187885729251679148004306513527197979044790121619331126361889371613429661856477748722433641398682051847775405863304907774858092539312469657156539738073889170452200926206453122042059313379000056255012400702115135630362974528379797304623957697116566110788599146884621062716839307006273872671877202380964042174935738087124212098612806212335500573485982593305632428889299569805194482304925894656296388808796425836283002379407170365262067078900074697153112819307834015484647680658024172730634437806264518340241753479209000323333526904785128722156920350675358886154830022894852527455775872972138103384990536949485065380231319542838566328163088539274483612054421811487014446764395900970646444594754874647250899192969427886652022656955558853906060712360025630008801781279476418674526875733222759036326429464460891097891809793565320846138178028457550400807254000777617270662913617805001262603089309443796843731246471055155344353817544794258010504572106199759507797436698070611594249240550256311889036581908526694466853652127978819270311120839297081594705164095005784313169408184905149227549707230917332881251077965122448517265513901796100685557549041854873633504537910825566138868494632379054354864559459021203567548098925571187040923553819814029363533054563607791638978729310503241641360130599524659002783593906298659642207544062837826681232700044830695944418441404115091004984555542748714129819322216078939922619357018664363059874090193283548520881350427969823418638535235119467228425643202397767819013683598077874118912406817778134870949315255720284400061260034126326438822227243845123241003973971344511226393721135094280197574815332334678679746836084225294553786528875578742289624555088644456192743515156763582321357434364087101270183293904619237862720932696776568971031022608489851587619585665310170283203622647909592494243063831068307583646410792748818918546684325656553618314321045821239871572257064698719960457276240777176616242753664143489018544489184804670467238025726532578929657226184189010864159033342108015263464405037834881531393109638395938648747602700065270228989319055694364254550764103823733798101978869596224683454670452622944791933113228258917632400061240292662541671490478864021519498145191731917231212455983614608733412760753472261373370971455120087273287879273628413944706580350254723848670250078430587537264911299156040314007183491214176996310885857533104569890753373476016956206553705176382284941601104867350425201855561566183296767607264147535883961040928595773631821980043365721645440855485336759580552705156195277844600300863493618773289791744977352345667917104086928665975460657855531590153976748132892673375739578320874026542385875665656882968921376463974270082534545379464167637683465454241732661619632524997830803946741771788969688113194448072840228046719655593335262222207457294668685472116306060729761073538932000314996505298065901648615590759190271435416495762989020063890862554855316159247364219004450976414755647684353659395863672181895177668205564752591658173946296566063894797365003411198215279086396990345993190825041757829902751983725652531080210945769811943178768638919369785138275887792958110352172841506603680356460212497879411721888836743308731784431058249649675961804602414321181580390868470771638856944500531207772194442568123595844150783712209524190253722130187020271120164517280998951553088677331827994052869248216622719123781672016535268059233518641625281175495071166034751071448546278660510524507306112598947422535742130201529977058412234427696037331784304099813533770962614827736621718676127814712089631820501841583186706987030683886460693516750605430215326286082443591463304487100740921937448454538759999720070871718853873520023469428525324606795399406738336853259718745792955488120815096483178459508140968726984177858539977034961760868239966793298360875383908604576038393144074835148844240553224147244778501323378767327096661692658976616402526205980411603997538785234056409568307934352430692900149215215446811319197779492352832151400756763125058962477338855815523282058240774501812961178936060089167175377277300066996808959862087434037280733937796108332861667557318320381998705774890269021244820584766383382061636047671896351494187296116651354041963024677127514478811441218496212258708042498100504510205226920653423947373722183888106461035418905079900062275156731079287741220805807875468119628252533084043387681735368971634302317959415729924648233133781674978287220499442138614038315023885154110552448757264104602759481082787570284939419364407198479516291307676461354645447590061358434369792635236960817725564432509371430072052711787625584230751254733942538283181610779658505218501589811386275330324005211371178014784284402011122069435980394744647250586700618377981919644789128574602215326029649307822059756632044360342378928140478077303301334810366778134351828754770896966546950559462358828624421366387467402090943677325974164759116345855958749040401517702311146899482521182336694829291976013292001682415615888034034791052664369011154889724732037123850217299186382267004137898339187199536264606763753605800121508804658032035055503942053851148731224134909549483166081120721047933762038163884593170523994975726997738419635338364683427538659581612964699247578976455888709537265676847443760361219610842943297315986598179097237149347796941372817598220135362290022391925949428745128621735904659431012178583690126053607312154805870764174561109394935520975686074903422457774995650969813664097279445982582101354981522317383370583943775488509903772401118748113084691806028200586302093645236592456246410519206113729834840040108140222740404661467350442742601309335361735836401610424300013710966219458589381782268420405164562831042529623886703431571326504341323169691728569170697102371529108290338342467817697663983446537353807568806722110005735481913404681678864176897852339331697462279906193572669767979770505923748049995737240414161342498101868488654936902007342924761422810447134409011122992474653499780927877743050940510452398429113477315800332392529361044559790471745753539861524185473653024562940382856157477592021968686594456669745230316310127235867941909284068294601913002070632614602220957251106736787973765830278441237472619700545963742138192610442010140433389485054572694763960109782612177277887018297098537810944674791532104141255069046921699830831400231342992565934846760498520034014352168646818856904995795331882109092502334305118085050333516761864512395533091150660391638401540157329801730833532039080348252134512777700896742331818151062629409625881979958126630928452832945818239754198012041226523868253049137215686601810659081229341402214853640370904104000654100939928102508115891820602899163534822197472022507466360130946091360805620849273481061344484360077624119540950821585492410633116239314484798728948411596441418158956886290034663646900109164299108801374438657764894573532984572708741375857844590424657836941660650019364089862317768814658256184814825834242493351945986406427556253838519528019688634599823296665623241900379326616174802809831525687799714176171477534517146510161709048330712282320370080982960915001228481180750064273596108029746584255283833910172459025186567974684362766587496515221269486310299769584346596226187814825293154184005860966198374714055796761070883487900056208527897897527804019501545363409717281032371304819105827726174589719936507700329290425619119980743310132511009186146197901311176257135781981516871231698558789399016468190612303344206818914901343483073313669917846413862591814357834285183822955405415298003442926724930367405039030704210475078148236331710109466010415014712094918130972130495721341760407373994477981484294710017933506786453609339153449354539840183640353463706575527631921879294892972703125088850942253702704308514185795034851370272342233817300967621892981373375889452016273102893017468738702290374879169796410647823586171168533536521912683227525214604573764810603602594533575431541826762435401134210743368657224455896127139479798595607562305498630445358208854646459554487242517929141376145964470959808933100263052888207962053364986756252990247328619980339926259698806254782997565413821869998743567418251333258578017667131193633334991337128272663598494885765256983620272277298707270904805879791291445769360204358087272650336053330453463805130791146024568868597162495313584977043444477739835229724667040990122032337176583600169034295313244897159212661125135795292670491891648517626222143606031970987276269611944577714081814226346689474090151199438837935717338086400224673276656009033710495173270313237199014050904274827108472010828348693745593049941265322116407120680532490929791850114063442018634114111958319029800803747684295762877688355949164751557927474345070872419156711357662871627443862135077236576893875803329735973315599166017521903876114021408319666835599031277848369742800876103009777425427655200606550338522750083748744047023222639151916389172344361762142040999624528816688746674611321619632909692181148729874959790493408524709630689798022990155877166065169568620738559726657999720525166444296320452088274639358968338888305935130614285457163917772106938134725212551747076576782400400813561766396430619105689352858111102435666210405484535516169040425336316981766943158361315992100037320613086945896764502025234473469142919294992910775925703661742142746199936512790065356376642386604225377783349033446590692153802843993903611239705334966800138297006416053625393961325611336550120979333473445251444911828592132405350221818774410211461479813676215861541039479621990723635206459310301414026578934990419076158623339287050100064117580912654344745930565883880289119754108643099916546882070634015475167677493953392334468301906503954674604490013158565134444644826287966122607692250592075487652005913991900762104148374967065751606929627892617078098963608938583709120264528045169334376857735828414701650480684861000195534349483629411968816611600552834273705180602448486696202586588566535851434037762198208378055729194735772288205467388982126096537776642026437481116474777200980436341683532557618991078062970525087770059970226334070273890658547441863097432882511761612811956967934894425600695126446403906179082961898385937906672889380539030383834152302931106342592765153046875663194861965519638218493576449361653182706357788286143749938866103052070064526163389380431393738211866650656862616782568329758487326951467209860374929776214763800743678815545930821286203572743958093904085031056643106825026962911567866228757860956764309511613931852183869217511580640215560129585434287193219548417841332446910466226228429273304505024343152551055701918124254598539916771189079550105153618135704779129567535002608352866249349415721383672398743163357467129932027399552321455595669133460810999753519835432522803943575232190820053675559603394004218198347273073158824420276623438293715592659311290762847545222339282018055535657954854004647389510508616036401169322478890634240994135918389772618672514420739834102938755033850096916768581709450171495110252270358266117013716641325326200684008700371350800031914771684466807940656516642373108398795642384060840891978213652044541419037020771520180843972788732359663686706707747684113069578952048633642930099340516519993906581279049451953798183747175714224529970363490925732326654550194079214840447521331447902539097840770247850111377943278682946179728470473086268093645111199067075026413803125697824277645093779615036299332062693635265496911047597006422719914008666129266165264665187075581396715078344455011973592922180459128024052700174262837888330955188037281449770069561471596838526727932798128077562604549218356009994561865874640589954191556276095983922569250450669527619836583926205427046325541096594648628662639016489311292931530028609477490336098922611304338541222225870412581325131253553976329864203808256755805764866796541861109567246113222745238216470773919566726223388422653025828886133288398715857243402750583940252207479720109623839504433741528449264116625882374296747379334338423901203903759548963284119545277065026659713241033735250782164122414950959809524577110578401281052125294203088999405386242755070377543974928168334532648434518998085402408879313053754193043221149549012365922494907052642057729358745744593455180003712025461070037411420477827315027721611554284835295722447537551162023627608086035413678689162015216679842654443247557169761713723851936122534708548426500921032181698432233217021333937587644556121653658368785545775465958084016439977959159119864686184562617047806608142536559096524356240720284795667709141323390357265906207433112027566964708862041890168767854294095022385825570308680621167646941899451232609635576081222525441408203748143955592958455878994674207273972027358192776156371579824989838732505755711219295640561929055012008375465974185326958831461345302313462256687431003393881159956221377286228373170872401545831927372276853679779666716823661963359858818727296563599044701559717982530754197053024357827440007551090135681916260628422259211050031205995274640000797544622359152610336326969356561242587572465867581074222367191371139757330249704692093563607024328243010873027991436283936372562414134330829873205555588512563035670940387197931280745955903507792997752913364041791415839401301288443996417573208987648836527565253901530706941999826565989330564355797520997386300131399523493140171447147088218387461557447036059557867824292343416600955142617359417749804794108059567868090591568021887182566817862325580019268048850147797034655641738018634879362296636625774461983864679139944481520815186862859142146892682728619443624652967789207989672651603170951128090409068365566961257624255924376615854311189774852039697282391295496543363076305914097102322085505184486031189577197705481725880802541865387235477539321536343170693895124351978087123381847508361047111838204249175425855832264228591793607625914322145860527836343966378948292872152818572224714548097042969857392721357261286313907708160266457637968342169975841393675220914297491280427638041757303818141273173800290668552145973062713024678507456496310179276028056246595575733835319746993844686000779018871057537467313964896973015729346608277232492855668383237880565198034837934976340435739373656372840020523552640607724249997231690484827723463923637713880875377428742706786991074829532672706425171705375225561265935372636923496280428522992094779919903475973120411778659469747262204064489804564164121364675974893280529627810783875095274606022607234037908136431046226674033163503413367422614169937050723570054294001260452972928524859488965789385777201692682280511531041805079119126675651484545278098894917734443407407940538346032860092935238322762910107924638738963142035950884968697764798096893831079049623754215542577602392552263423281945923378847797239376811117449976760946829730152238679163341733590023697441005554578520298560476230988065646449368592262831131754139229893803287913090032022591360560763171529968099640646617117602843376888629661520528641655886194737846944003906053412236056267675730079874600786101299654623999897249202829332583068113782113110336305769842105824308567993193661563161160518184164452117677531527210784662995091880461712646626580015551155347733047402116127130333474918813357779187009660295289825801384914431044349072877994872287701926471653031163938860288590463031272941397919876946947002809346721948900677437248077923494211504871520529990657751687875724877955202459302459640290116216576198036790022267430124403706940676453745957144596835772168619038315921740730089592163200427780346807940448464791351194714742754610589379177584114849216930084792206832929107310752604732179539617922405314783279607142524837703118396115229527283195070197997549593543337893570525233572646907643142905491532683523134107946471927094012939425089524279888011821382126224890337262980619164159028894258598345354892309045590733288977005111536466457546193421545824072424583886217050627010090876234110163668116908394078982008021361452348169163322790136372090983107960337367757944879495722981321579794949213764858300067469197942087798523381994891926150650391076764207471501683871959902603557853533000997180423456373884989786785334614188646830148158323003052218101135216438326585638262234805885073312321163519011842959249946646129230506730039305543458845027081469842092645329056712040402971351738023499652517282682176767810424058855583592757731567532597979693354495576478972065256345336493462848312116343698107933091288666195095733612775412329417021562617009000823469176442603668015377181901831372721171894668942141723466064066845599713063386118340628141648570022211574067718131053525974297332744074928816339225676985716124492925288307143212508495464461161585679924549534203234302759200154458075605509885244489502297469930726198498491885845451729429455095430995516058713245328522805667948835215019470285450317564775086908628132831760730427087570646672502761143963445732837394859258746151928750552851411703951572043593369135750639002749312168612265629321887241192413768663652219097156564793002776383883714334706690020593208268330219167299296071105499004721512475442651631907195509375298222118144873238137396160796085197269786424410165534728932136191801060995551915613889973895744801629375685085933838022376721159678946492865317547721131941691045317444645707343978571490017492792060329638926764048254349862881474975581139293959787124158320368481129656013042379692158673786628989373624544116383947431099570666906145412737402624226654722848693769624970836096283447211320316389918133806348573035450195646280487956319304573995677688159074091876760053112243299156014654434332007988946246672355098519234826068836754128464617563941211275907292882199948588658227791990508485415422309820068832505937965450605357275038953311594297412686857667917432909171926874457759579791509685042748579232056175160573823416376157149279473837472163582258427568956607295975096721498718641050007586431935280351549068689034478555372945013818449742897957061670883011820364557001602099719937516868294931741950908108952733879054085966542589970843363137526185273276634416421872912063138382157084869226538463870331125063756165132831494254629266845901090917327897441303357944000183448427371608296830431118708298586264505407589210434205735999264840146338391562020437502904022376902636019168955940251480402070288239205672897647457126379911426815834179342360447957379314153483099994004934988528600449659926118656699342981151728215635326202079060249153010707771327877352044498793286586291881043531381943977715731666050279575541892867518036597130609237821469252256803816235571783282403675715101283264160810427907860748532483648210961988368823014334358339546814373174512120655112060884595738090214226373366521146646747157333637918889037851340782219076898917672451109322968162079830488496688108920240232633478850118470246379069745403714059471910228226677571276404939146880589014386364261543775920541652957970942819768603661421391792784690783504257525885828378160192447769220518236941659772608514846578339496621798356261183645637047938679988070731021738710546851764975087187924324339989150386054124358172130820840254226326966877195835635225648578512257393698246395594367748728522404159284385172279498621655449553237986340917712301073070265744338437741262582020844014972601880562258030954272362253721414071584319231672886489579602277716811354179416220261220671148364352960437650702708259202430471551507534659939714025457248262320126811634283365112089587499576790892831667698832399624230286096890104834878563777635128805874601457791043441540962388452007403106964847905096482179257148386879853986894670714978166894720633970239345999121374027017897733418405583767489138781715954878768069414976447614372960490463400190982962175676128034310133898933709557151118163156373402901767920101441179619659902897237246143681617976777982070408569510912723605013170760839377503135535806312985590993323721894492948974059168210774606755348168351430262943752780516559871212904820107667024884138317130358076218507312588364104123559616223389306931731819543695474496476385579920182663604775258340232147639189037134709059710038473748014010545127322252457158287272636762270934929809698470073884013712327703743802655166685652863632316044763477848197489320380869924083707069421817524168000704448588626272118196676636526522307135903198369721933868637472351523567126365269389786408774222635505538810782389838503180677557872811780454807431362309918280722091312804381024831874269516665991998027584304147558699016241154893816658979642613379485704499557112205846529628212759209647768087422820475100883223911279097510917059625615138325719758753155376002620117413711327459558634181984437761169611017460947142299239829777518386724382338128020094256430348701730893191936058697307695882433978118889421855998773506062685881034961679010180040268830194805009167070196466456620935443567923437305659689050927808414055269809601864990553307254706079175682207574679232395325355013828522612362138840889761444850425339491310090150641147608908913746522304399510397129571194260466509289531393154636032390797111212171370242012239557481396779149046535597285933630094985950541035279822196018952319423359164102731475469801172084801064761398118712861905382709786452247588259729451430599723827526044995020858014964922979088706845775597536857566431997333442990386881239443004657221216930937473865064629078176021514920819586375280332386909099218978152194389140491872682560133551795524732800595931078851797804379714800267729879588146325860729860041805703882080882367450136824451455509558810389634393768164018256899003655620263739656596126281051516633679739952222751255361999396200924351611061424454968979669568964881391320743178169426841318700681007662985775643708131975832668009432455738269222399123374436175214416962508606444944187216607312126655177882552866387639862076746593442518205290849470759085779210027450197206245771584383370641478976323162888519620477642805075544826772936350125626541183245547795883285861222094172245124326627155538359771558710818812866021729468149990390283058602109213747596979761378922358639992287706090008716679044631337480851035477433967509216018475183413519672677946762768703366795987897719189251017786499156735836115095688966865520749004433938699890645995764814976498160079026806789498074397068119355003041766753522698085768805587816623947792765747283906679867366490211398992028280552347829386463334942662778701567320694213996649726391258306286090684920991413946215699051518738542248812837418831370270661801596538633779448511903003936708058714437954317574886226395361476589670322921120106376117251435604247490208650955675491779408060928148427775732426154017440819794281699571551445901825532116320016526243429214364421015043706589938370597619050248466854805622163341235120559522592007845791590764764360917442717828109879292983829473335828398032877497390950623956729271588293795670941504384572564218672761362055309616779128915807443458917533044229589879291179678394255326829985580914873421171431161238122871372757664452137920822988633511218989191528194448332314789088756349542673387949977438205549498881255020778593507218926545956298137668127985512919106438678440217490674484116839162736407183939368766294420506012881356301871495528892142666518537530655257312294877746114864962698439928673067321801912229860262189618307740914094064842538752392763378926795905407790727982718488288247073737056245964845137939838094562361561455212369128548569097933037263710699424997758286557448492620197831947537916324003244257790618745339763250618609710977006145203999429588842818886374976745607813873952491018750759457746052706036333810902377353011304452745440798073335719994372199301931509389265569237881387377809996659070592806129941221974686080562919577800289482044831005091146529259144700361067539668477253001482127885144074530513095290361904112003468519235037308137629267834803989309203513985680312734339739064910227994621707846685326910862546094928788833966437744003907570014908694043044636690523329906697575625347130921213458571031999222885607286488366576498754600562262248965465360268218293352025897527230598346402531227378790604501367469125492111992909927384868536097793004065274523083724952282907507856462720503998430760152753431095007580981395534456183556557091350319667736862254616453573702599483548335012805000651563695973156607910406424597433649891273089508321076629894767444513125775656049044432647247288128670405538092948125166421125326018991408029586514423180359564369501289523641749813443572674293410377506511885087555169095719589499651824146573758876883797336235862909775248080619574437845571989633240541571032244850786722211085906756313862113563236978577283063695845420725680196267539308228210996956750342148754985112995476944647305116629473477322059470634045558333828917544773285406739885062927924223439691409966283280249459485088532381520409959193276767718127401714922476418071487478513085018243231917426126513196921464774072800472834038227465203910066725293023708688656428858181661202418262332923427971123049059140990017666454597371790912921827859111813263536359876389464770242646099664123051499707147809909284986019957902986690294782983681871075644899460948237217331676161464652125913518733632759959269124529678560534181107057995606741236081174800659518478717457541225530981562258191391971991715243345030176223910824547448631944951888801184887497567792598053041052356061044138699669705566458426774982313229486451513781374989148758091032505207921821028781517191738531229868135060430412917488175538270751510104297311694481305730370004170115834595712189149235914972025318849741153271912090400159240401518439237938360939090698517935475717696012898692922325876399477814703335509449526505839831531000489671880828367628007125602796810518145048319671832792908926545547763534351372422914767857977319132542289491243191027267592338870788034751917183283217752477712058969173399887076782357512864582430048368970040355413251209757349351512288195932734452972286028452019144874576599007108489533979576285794957817188667541056141853359812144420429897087611125067012362602912442119790431980141329978034697517544371315924898305957223223254977456628949823804058129582066279775897675981287562558987913441920584756580841092935080840460897213403579248317982887831204906596989783993374657659046462115128381293051576123602359106189115660341381228094045641039376098108048102126853051542820011355368025033866631480992715414799258277507296173507978064809454345200380799404171478501314765481888935981382439453198018772761436958267732467254772969813311047547208757373633403982287603302681673089107596158001043846659381961255815219395995361269117248376036400479547833344613992416327537042235557474507309068209469971851845109368404156842789078003269556443128475037969467061965711358289099578763744021397685486343034783444512773982376936032787184757071266501715451972419504966366071085200144975699362892628947797286564037542238548773392128867282976056019128576136447783162513674353205588917964505803472784915014982924372383752937132434589907052958402674432340871624059453820176899724565900128048473483122987472830465775674438857614426274203300917853493556267833584071372953716246849169072158705576201069743060087997050590034927383343496771017455851959816165184435917945808975154034593345678722528989364035803376264030689160879912494332302460555233170627817022664393529343288012716504682579744640754794715008967119011460147345168137442146130136764314248452304948014947473440734265336863765817019732236807776767260578844175846795517976391711609851918212573358687842400560160256759952070960347026175194893323036297574240377297398123356928974067973519370473919563520573258681496857175558000039888648696081122162176762035674441540206025923322836321155955893019191565635943835942156565191129959510630426696347729693913011793496822021856647072573034155690540977896585801473279038346537492644431282114030598208896694422052517362431886293970202346645915286124969534804113653647712007030657204934613089868394513032322976892846097128642082950831256613026163072253974902254570801191631502414375715293174948084739192278425972917993354615636456422810633781593794775624613140901025172862621469457375360405669713892903034848706981507679619828842490881809846307885579714841006493447405014789368071027610504855158543787759042630370473718530975225031561680718850956145630958667177294334525733058663139108284707579497183902150879476862377453789342985389357807813857258017750702930550426917951366247821424057878172562099141418545038249309681919707425371425593372952736064559527652834138837235807024532521397765791398096091016318923718306748806731455468083680651270220754209559400282893828473610788282576173377630446952449283390564224452538982662656810629563392888485883367954915078054572887645941824981570941762224873044119068707705433224308566435177142726824627040510556729176020638220746198839234981007882450052724168898469094429724424762438802649210855353901490832920331947099828275734394068719126563530700778738341812470454332790622804592693475052798277318861304135947574180148663841271137636001008753227868839249284258923723498981438700267433264155321947463319761488143310511041216451196792641531709836558171995463141212309526279434456900145750645041031693428163861474700144973920167048345620362170354084759934798621922610118252767530559964757944709750467695746519359785419401657261297953125335265653057107322175082057409847462197681225568049775025615528924290045170464770032657854828264066400786722855110066812139254425160927160454584120113828278610535807013653901926322796327902099173197936591707225326618710596801153117836895017734968727044962173928620597823800000663590309127526059512527710715394425785027124725681829175649032176621543866281525917342664963012418451949723773382255546471724067485376455903193109277440249619016127703517417125927883707187212082874803635136944393928404248110102473761961982589329249731771260769849241738351305455255953642950104575086852271978252814313597250170993681934820202464831319488802378106674875320927867003088691500427168596457350600504218875214662288244084439191310709725603529605540225597945502015172740671108570207929414161686069364853544775912466400020387002727573627290417306674311574021114774916095224830267528699067435586203226900213935243484317373764092222972561475406598373936177878939209282348349285876602181476013535063602638990664079370893079549806787620939246866966443252277216192441134418517952563058054449868800537243395158100591529268404987882336983437230050467843548378693393835695844179435161116835657966183668494455010241409063641922319558500382000941191329665560003274590154955021261273665777545939410549590681662788377340444474597487951645330916772637354706562660076875692962115299005347735081320198870889211210410200938219286428769336209041939843720956150225802843986792901393107126416432225739022017891259611380379465685991191965201666401737002181981870712896307495800732810938097432886148172455698905921498560119394406371032670157438291258082993429186317838954485971596273797453566716855262588348396376568185020551752092509623594631913259686753114023524021578482271688406652402584876906985382256732887493628193319499234922851107702502372485062936364779545969923841584171412660538735954411628905734120813076186959511261321982142591496922660452980679761023575122527663610120289499227987120346805949722760478064794440376578508327638479239819153027878046628630336398315233439706030361725591442505689635409638384902475632686228524252189324765873677087461245874916318458171006924858641109663659106818336593102407902848031175279806330874571562933789740483582424979760961548233800315739803025347920636881497283540707334767357618066656011314742183281747698192263750216886245814271602028491821900456030692994020619436370841589128194187566962116911268040993559622537890869074709331043920523081090492448542594945208916734549248637504510322103700427662073906334531795255349541098818175028045886122978332918155146067289203273383267709819187214495879985019455791899185614682198455069701671008694152395046507550206133955533428470776480484700821353586723114145342137725451620289333981261439410867320567408623982753363416951280313741575754609827043895224319754619207677891293543371289976229280445226036614340975105444870192427158211077657038050380292988405362204009317694898030295277684522335833117168607309268540825128035390941715321825350531040134831582250395491914770364355042913366615703109026241796812954797614885609151374471271697648014283427271584559263262630860116216018837302968299782133339827765021167998104438344262050941161136754702067419724903766312168893627576388961380807379268652844360911465037327842612124019153026361509892158903082157862467306817386429421839492432190728781063009084327009672126123019555569125874524126856447919863960651297319897213458671927603161138641422993422433370629167340517947075267992524218497581547295930758552301442616506801281403260364080662255024030985852046792985684208687882283183821465615164539363067803886686037124619850582702013899180622626830349148497883329782391028859072083276067906942090481569103622776205674543159212313276231525594500706265651646729158798883347959776511447142140423531433910167558421289580303473232784409091844533347548284314285067470814311111516276179212387912091153192562469775274703894212695231327924136247656768778634881251822222295365467672004468596068352147609589212228194721002177563434176964263093869982883426349653593478998217776154768866109518947848626589561819188036505587210135203754588471875902111543739901958388632499176181791021147701830867638698072602353882210925078181982639048698849687962419245996554948916992444181282445512965843180092632685559301411985209688910739073397129667850727119166275477896178573337692705854409535124513578521698724869790505511467142316382608298727324094015309728972671721332892733604781653593481147153367160867284141418952502542793720554979738347929729249852342874720243039399569272040083868341641139713198690696988666703150460966874469299407251363698900602025759813393070186696782969372422166526715209633813361877619600044699824674365621043869050664645736254288325383039046759009126191390961636286117169294916605006068766464307279357303490426796454221631480475214182107051341634289574551001686510858580721656718262049835229270369458344689524550796606481488908463265162503669600945765575159539686918904947598128601931907171985748574393974575674632174960476167062323998145494481758014937106944021054734658160787025430403928740290707120989006858546358496461943694188430135211505960792729222500218212625864284127692222795878412847698371672052431392943330314141093341283666057300847906212058284110888772511883125108969243672546922744649787012391125993255513296830511504486438187961534350314093036924519427268573817074610012785891762309058920143142180024129536386230770525666056052286343523370180922490454864321039002502930490645826040035648095415049476012620315153293845801912239110829457402491134251891355662169014597559881603639395509323558786169634724608449895384906104943743781299592710938367461933366666074770056245929599696281810441347421232889840116553043018575589804857651531413212956523237118254388070548348412774209232977900383397862358635141356903144894481246590668246533604662814248761248275605502247166278533736445372273171761267668550296139762622071319950925475560409720106022634264470230722306548853870945161935764876384477320308776917757152899830193033151075285792023456882406937655220046228896207074840883588170265657049749458565349285780305234728123210911907992291467676510752028012803918853412570429154334829503256316696269055169907154491922044144227024739985473347033226645638598394357779106420329266880720734541398506005909128908531670495004923410898228590182269146477303798225052657547022663653924021714552165163944486604686613266880842439957418647449177689542873631732481201430811111018135399156907763038134445874987580118487691574283218326216840255325838051076585386667950417732096935203729438867998806274352510284818091595713188394314708490321072626310817947453624498554229805543634110174693067064418125575172035732679698349973384195982647026161997107908881333578982126838316900873029655252804218378519362326520788135321738790824772441282002362962849894331818824639777407226643055609067523368763920620742022054792708920767568453361010429945497936525941585922908599034504480552124314675564262518174273646315827436080533180221723578541091981306207658421338729621779387330787639981745854015026918198831962737951060730391881756867209166471538954580055938268489161516638360140209691217212130548450467479175537170031329829749778374781106699429244542998478256648734541030109171386026240196359827513649527584657797968211172171891172116995386501528665404171744003917556249071139652727398408917676065031625548451029278347860842624801272833371723253652253877077618886969178517531259088396629279912909564941371201712346887103184791905382459600128341942395726370782725159969971169411004300587277425189712954642202561829754250515809158746176480260664801754936853631023584760168296570016473449826082351980606154535330523434236271918108514589053179365656402667142624482613802364906824604099176951896682515918826360947451271899348298781289873223133126240780860672377081279377666800666866771731794384488926424782899372995606900174358723416359378228285412000749647672575091182298738160020545969116696200723936994515857569520047359236789201133951047670108896940490264128762867303549104711917384056207344066671099937609436752206430160326050334070263424123995462349364671341325007002834651766211512982461871180120416383358506371326021075170222393078106834352100647822946351022907573569485095284892681768788845204716421320771047284734750827385482820079369203428997103519438769790831736142207998428786763961191426920772776783186931311870906704944607751169069378568297316238533335280083115793696148141651972580322485644025984141884522098190447618165240943104305284595642786830417960043752131333094280793827025025696247509942948339128932413617143620802869856510592815202314671958390564900560195409060205834440327812262163447031059343337132449041923534529005611959533895402505125040190024319189438327528768867618488916083041322864087736928676486472664841714946103597625183804685347051278763909261258971797859728951820684049611678166013634678927358346821306465879174433290780576936197891500928447070044315416521067381424597607697388053431869706601105751522355183792747424087034188694441056908398339853198410444236800067824452133606799325070073321391360002634745192175033007346849037272232606309580771125291152867493303472528498970301450085564710915591519389600086705277106868520179610076877692218478717798816442572475351996942584168595921550379407596911589040248713966030075685424189465682586478835496843660810381918640774368994895418621409976208680832373428804638006432741365979429176247397197326124199490935757658451108382598136372662936965868620594610429850576535620090481301594042098439947228050648593803968611664430297323142708391600746093645900396651475752443219444821810833219244034970408003583686984210752785696866789500779451929281386026393621606387924703462021454084056309471421254551877098242993501083312161702427163655069813459333502057168556640948262260370770496585593806085212083667808532374339003626528213091416048674795719263037158263432918162239290905510746916079243445003097822820419751458058049124511113273848460366801815772263428940144842416518079566930445556381598537353906968861565128783712427049140610407795675485186868998981825138837574261727739369207865536052556588767226765854074975370175411384651256068968618675256714423820880835112031974845737028879491122010754469478053375061854112518073255890331376301577859203286733738113557755723178878825731610923404322682911495587110961280523773552066215207327971161656877453242863966906085849926517975891527213328643096102398847869792566019881477434529438791688842481795653027506460656130609126222812773330538695671565140183396727573508634282833747972125720537157748855294819030671881346894990686697297775655320205574902016222152626969731846366656465949152995153891327700086804494053739957608547538612430221488432372632252112356543187285782117405898074368311984447371092503509013251614664674947032421123762687192621963252192420678304448041262205762878813478484632350344231266002897145195613119008522509224444616651862733306785523841826891683418921429813639688257199875782187922686128108615845012284981043904863927628231143559449933601148672505611641304790237066799895697770175946935288586143443334551653813067073441564297857329189399702265430014374159945011558394954894719341123688580437728698067070747153380322168674754273314884095940703341300962546477231306852308442142615653585738516983468946755245455789657666543015064702800931129878568060553936297237470723398219939248896798395922742416374667431405742819263041593752134887217558888311962747832451282550104712169037517902697519417346652813131840455455666393444459158506172176031681227921083130381102187428589772146331795038147430030670081329080584837837941997346786320747704349420474910913702622492344919021633539721532383484566954855233961726227934652665785175142982642598239117864900706415013421277661840023087549489095645634093919807324100888648912386736946614417900131878629650576331412307767652381352499754307472826989829061877492551335071846172898159527814773603142817500689755987628561444153538959570280230411384852947157669252851800061012850029434779178075091176983686254914579217038505952606795016384673617153343528142152559904499111873209774927096617476982686526412377603250937451754978257061306926257048016813938459542446149417542357693015945315737776343947965134748221139442338064665529327831205993157749908776478372868180034181088851956363443224759288492651730277124738774339118154887271216071467691287211410093761869020992312827265534911211412108357116987518231908950456905166871605959953876037780070563374470040782376581206706452961609934722046686408736179855471633887463287781836848832089766016738573563978758978802544775552547575841634027752104631912906629934600198829505972775764951793574693392162632853495235953587098765607663490604826142758606558611550612869694467768841109766626350435353964556232929718014652648871349423002167937651757351900237439243226446176156165311821973692968023539826161686578523011621053667232121119889669555393353852754668362772659535044518765357758512461782900949907456085534801464472718681969517072790610268110303769864142998616102457333052380600641169710735938644561899998099327850528789397028514261067939251266965752194834095626506311925092187078762227686870664494182597009844902643349673319915887074178700379106582212738926919397288719579052634282318261721307047936081222339372338470662408613669981436316100001857773737908231695183913223928621249553494013667993875580970081613745936435304251728333505548172944229454290177166269700642123555647367156613643262998173818541846484867596548222794200795790457826433975706058377472632676996653894856497444676946220130449114465853783890697666424305243429087553657415242018387736578799953652998959082875072759825999470754251716617477879770199504868667975261764567691048859213761495905652508593999730858895548237743072570139050613682442000631916028296656045820081403483885760599638598222376207427579591453334418966889547263766268733850232690468272053975778758489799596943567804176677543408146693826010680518978439196689034488192216223953970940824273353546212865913069832392461021668738727495846800340144933113323319464885606756727568727529485450512284946980635664249628609617931986175426153672000036884419409240855829872560343490358196889497810500822283184526901416804282330312934976325695541248766479447204397591001519685165551071646936523840200000952785029994995935773155887837470773059184826655135350512094299542573527630801075497440518384492913730981148238054655540916167266445062406403814192810891463461822028981914216257836236166176891425288683957372426696358186920414060083651587038884541708367138373560577876772873257171493528300876747484978364351545914996395767916577870112357920181966909784101958127366783165927127940225650233352372477243984498132956019886006332598973067325641910200909709559114895909754913234400365974858150592150718391363806950246279287643347866640618876029606658037381106744249308762760025786486652245218926021635779435360132188784957677949335836611634762123653885236057086315724816914722475950851914719639085767176416763241072490304731488070737766492844986577675056647391109741790904801425066900714414357355216489687935086174504827956325172172237892311594283674257290325429321414665639410847741430517726104067012356810267979853847610205473147144042357837274614337946514141378515790729092031989549010772147027716253156591119811662586995685608157749855551412584184065440410966601797181797311992548696513973061494899414532348088713187099784575962965864983225730011617866416241503151292054995628302238248056036875573096289203815896386899364437676175561592750746990179741950722117801908750733384966438323712672067135995985710937430166063514801656728526801776552136495412054464569650417902654018739831155572484083308528495708495345467122216371220657420302531931915853297355543889558499547370252117626003653106438501275135609224708201014814831377925113423325698454441349035291000130883638159712003036336718853622199944309002740235606634535305313037673634462222913730527364835725580936549422132352744399288581410163213937074231836698321926515453029476791866119618672623223309915405294034814993219584274650792528448990339668756258023476407922984715444203179400699618933607177599009117553118062442839263754283426202892971736355964913279209949052258459139126761675444489994084905209328880167654661121525975070339806861689284893655068478650093512716412374833190098273751341906161699593226892707141393914669661206601699323904764681279877114134396541911259988035501209444374687632228905923187097983185738740466488982377920099634950761644300990259951256114399989061585965780095924732775080711126173149242688643914510863618948960361592550117665250722658458333298330691124313313650886156312057939884052154468702607839549889247273762169245874669446704240881265352389741269375087134583364658493072323206145798763923044878124835650113800277811715049878080602182824035721464619869700308187165504594361869735118414490004366565282128608849422500380352437586671346630953648764843899732653099219972404312323420664620233085498348749052203496805210569596587451990980491197468702243229115036682737376176766180799282771860219889701195953734690884891972795767990458003043500977010505492867265589733490797529160601311555314669184623164343101786476024022106567269808952590445974186000136318688106486674814678171761550326021969956577339940561652122393356382077172982017224244131217758672983849473821268037666130706116736041819421020404421594117748111530868079717596390876835155668817528011104336906502796835077354381393262327520942281820424784542711256806602607768201844358156962694472511717509993602817062768082545242962123591380893950123133656140149068400940279491257779497194923969310681860621523071090053203331859297491260195561018300125503286848582767318349196847299028675419122463014268658179804586301814809231196245808308641925616610177090680819042738014742856018103943230600348485456143710967136937735926265269427762598663203243647467422685085906481063581326344687514885221152340153870793969511933065971149036789626023060344381496885263542107792174400921079922942372997918949047949691402316016966041223701421427991679301634499378698218211744666374868000818344968222930684574512512710409798222123098477331486011162640822559697270005164380561341124264965223128292664806660036404968481252203639407444573129744751184194121951882889955633551802740422490936908762521197142080165543754472687316617895467855262296940564183478806219076687038211133928419353422559810537298889437065992286862087427472208718711255393806712314060625119976817523532012879454855671462374485092980888952992364707607346407777913113538084372404110854213357870443299442788180078618424183498015065762453173966557006850824879592374686248162345032792870907458323355392267111067662129417804890016002169632224083212132248612933176478073474433425991371878662640842569836241175980414001470173284948861385091208907606763621318829749973100946588362605509619746596677132910172904678296258178610807665226542636060412428350073105532615616951317491179407078070222029822964986066573648928815814306080310334026618933045522206077720892945864973437924186193817263186921385963039219128219488854419737804110411587354128954161157301887982688958054307337029301453365146353260713941811673799319789359522752246935186902022735894847624194300873726949447316748465756084047220275010507542280642028276797330941027459190004090613666424405718635681968062885985919065503061731475766007064345614335172382190287110690485156668459283442506548018094032046337402046749633536365114693883271138981295244354258988572941611715341409056177576052604535977451910981181884056950748499728588243911415321053034950864597194129449929561303366150150577030644220647197995556118735374328771527943495246018930769012760258193125971390009667249227723204120279972769236820037106601312633370888148658861377186712055362023711570359592182041555101855790977663895415583771939236268172114084132621576127208474965636789404180140991766644949730587079972293894887074691970266777285805183461096265208605096623558092528651161148992961315539459420342768830176861004576275710355655649312052784903330501378426028489562975237138421297699620326213049993060753373219194722486974435899849743051789896256687438679052981175810112070803348722685581652604179100031314963276969158376678708360460674311787834893834889111798148465645458652691391329948025558984082221422218723714561054743591926369583818744354766537546249077377133021044270790852942977878102792113647744628844409638706351825723019134954022388370102465447008169148600715807399111019750209922401059438616766495411149667408930615978139953987556819339223871098908594550803577139764923924655017273739700446977511808646071692425411846965114312331881106266083395589919467177849903739113181250376871143941556946646511444770032376479198985689145738277193263863570152114824106540851674491512816992790037304888339705863579871219089933923389658018445769526936213752292501245623266986564913873423441346933933438387634452919316886417903240951206814362886757527195189798927379288458440582877376954037382607846725416840177067704562815820631324194686385819769768947825514477210737691033542902416447363998146672776022668504456404073419826536957056544784914746329541670899066529120868916371062379678272057235990479805345169647427095528832445024563941224615022094328300812885287852851372710256363767406885543058919420038855522892619108597661656347480460019989081816495167806483056911372220218274045854511509795024213287498984779205824687817575982008189963573779939440737088282341763641672382448617031421009215694050984915653905204041356435745319337758950610178137838579416111216850646916128564468768083526545676864610994447611966620225865715737786775170574310600715810415217794522692545699663222729858124420375761041806621598604551475045406762900678007106921651664413307214904751126675865675496119626057499775578372356864424331355446710273775704960577879108457949646243565528528994843709058087344906627078453824601166638659627883568986236553248872844337886209311755164409012267216883752864210461373794276606210321055186542294087814559210705522058675167143409080626448312672188955284434108640472659271514836974591260407374380307713737182275099305016268469329170094809361216675473041487240874753844927688958404444501872997808014901680221102581725830179920801766719930987569146449194969385141448640120207147797385761420249877364009678416364095098959316505574783291019572303634129890279524123848173595501800355369020406750420388623547498783454588525515051819092554612441215459862364704787047640316596798000572850773519136444311396508356889828374006886272238639146180394987529031340453772596767155757155918003855792804721227144427243812886617443938931181201797815835208088003076970579881162262857433750421013318958567403955313760641978136379192339779980263710389303840087609464665002775620878592871156282111648381862587072217884245610686894812697539245249893907671944015808196796923802517268020833641375171740643119830441303336841835590862398975253084462258667102523433065953218172820667571038637007135028730536434914527500203851440280539554086907817838536863147069751534723239048883685644871000789567848664109907005337933612358224981933815997062281329707883550880693556107677639159946012593218494356595261080786831157940538860713162835259779265327042189015987408668987043912985888193042552310209814202965392742895227943517231870516876555118502804699556093998412836708762626369357615106676849330936966088665182109668727043285655046421680711368549879971956134225559059682875837642591936439804018618008055395004827700938445071955240148867587755921905474391827433991650677788783241057154869440792359476260957690225521137819918625847342466658696964735019246718386550996072937930352217411592938921843743598195984671640961389032826457896779476304603123629972655348193737474392845147443310905366090001593451555563609758240178101498315801860092564743357956394575646998519003581370917046997858670394079693673605753943242519996351725122804475664045212229129877542361829865267956118955136779598077200803731195779222882724995717158788881842331713881255686615060461587552724972297498452579487479351544575632015239308742118786383873199842322907571621031027488206780202007798104830076310525872173912010718395123939203056957165819710885498284046578188628159308913078991384703896572257266068624155877167574871721712175441493066767303113970794375855743363808326615718023876516170119718471141476402716892431964696985577908434689569601840756414733837102048451398941949347190860659291570985076780850820968309703762725334313160497344563038486374386771534738060437191036465069333671605814675735657433724235000375517132453633309585115345954959888217210294853735322064895691563928651506648515936694206600542044117720806691984212492990231961932249402284127479131184175196196619358686523923332044207672992157451319234290753217865969647749142708843017838084542161078420880353190531045568384255448532008536115554364582467432579919623804285895684588741855036634060349608981240343962111173110751698158715510136064688820921265400842689387584778739843632410115304171471952532177550162575006562151343126226157536778450273222713507702410912382294111069119084268014913638973480389926567176529904314084586089834430402933108024449661186627327579109214311163797364105744365042148880901096007449245506775139052588563677798793828044547234370164458906065610061532123669638558750155478248242874600441459980413143338263628234192541040102091711009095253318956978492634347655772319792506386500385595719828906826479427580142417017506928203470230802324930904189746167953496515007259368444275736788570633790124196287454849078258360503120880211590382480932239194864575313789568051340669411875350354797079484411732521637842170114794791351370130961461544490335271360500459506357154336092580915177169861449727275876945047607742504988287046851520015663764025045776564241292014646214700699880385407308132693111878487815279377536136313538983622682043522656704900202780891134021003374211695443460811889278835404674087816675356473209379169098835964083537762192306820776851252706354221991234509550539537664546081204243118444754093188898521174584036333176216771821859644026962513739848985362629526851042101025967170485519860836469898975871773899620893833071958367675841222202244728032739260776745313547952719929495788263579692982069839292584706037178102842483688458285610607972777889057956228462492652178859881573658500873885935575442584039305422646429714453936231757285413841210115450825788949372079275064911202836712918791377824462994949182614915307335469618703955638545267119097763395465983122195852530052782560034444911556775276263922260387613125709936851934029677980938650332384993530739717740185762751645910547116270827223651967758429963611456859257937559753785614970763398898823138612271467615069379130540869323124514426352755296453053468891981016124712221944375178235741329900088805809348615648753122597400636976003995225031411674350066269428381454899287784762824601211652159873493662735340033449695076036243176909560409516668997421846295936347066951804560483345319829245487414334052372467924380575408343880474538529655237244581319773119349396227731233800949043431884617332188499521144409601279128815314478268466243775337647242088714007182384561924309698385250815300883106056203723242941800506601557249320436877954841813479385901914535428999335344518954132982336762213794797755011793037996045695930467382392074657222562011126916724697347366015203874915237729607544214329289641322106497844359315745428146068562209495981960810507988841332416147067007045514574591253449170060789180612194057309256008592451245485691250465614765949057617648189878176883829749423651081472860155035949446600986403665669125594997374633125431012192285270430233069105436521908592890763534606760472833128737736395163008523414932691399561362335936176508630686288122177659500335991473625702573879378227152277149743563352381584344607113823542196966484053343985587583450168399384141118743048312760129599651077832194749616530204966500974597605095398245580798899244198272135465893607433178747617015074232051552168684428452622324975244596280350909800227252320281170983112513893363729929426156642335623600798353729747166480142423162178631695307387994844165360462643219235235179664842373992885283517468363895856296824786208783954771214294008268430742814970359411772554060890632900487692229849346997783824948827663675353312134885484758275066709707049471378744675164243180545089541198079482730857886313875264499753780805854380451968085108006196161205724480585870845906547976190345681145143707173948891354920319830816614578757848817270286202694184168096732918567867145368245625704004158746603662071617594154664118528226949947325894762480500164202374892704171341693984572527901829355008314855159560155896288626033369656235436473860828069026552246580234751683497568240381136527544429960996101385603662187853455332499604762496231969212079573001598555636543355806702003149638609001964943623750176385788878496531728746415159387676355126398223032777993867294578315444756015547167571892565397177262655259002710017380857018245690028996931276159217816984679878146836323771116852052760373071748405005605536653900355730267257856699219162795570742904669305597737399326128452361019364139737475456946242644554080282742758395252958651811671476602952767576713456757880251927310091653836145396428726006978581637955386600688946882093539207001884762519000264005547146939894374886829441921152094495556454969940280584852908696086081022055402636285068832779789299131098157485133134935815504861516882570344634368109827867648466264827676909284818601243274707116486928081562094439874825136120216013320540690709923803131425826633319357104552807901047940796864742532331949553446261648493645932302841341148881671000399778956335419077039579545983547195145994955602980531931416959703161120258743263347453772299184399676457861779312197843738515842869832445452099092325670159392208429031791683707486599005814871623197576883270994680910871951791457481662703604443525730033277593200534660166774216197998347193286260771861809356362983601616906735469620064496571431188200130566084466349521219345733675395756189398478272302336757556726692513701351227328584200307492381134110371577184926710644884439895750279248100290761931627352467453496232749220447091249768553217225500745425574721006553882345496975135557714391944494703236514102037610082389882389114208907714748615145390274016149860601088516672835016861504649550025877553364073869994346104023113905023455727685202011936413886385714117315472409238942652280131337896886950565447407685104617896520215753017981597702032148597410913328894093270993909667880004338457779799029028242553095785749608320470155549001912616061058630792702727889961133196134422831802678630967781935710741916909909625836830954584953478491727177104563595730116368899804201012685012857398956719822032258568575300749264451545788537196712456319479668471944726285139130867822396219144703500106255765306555663202329623362152545965124254186424144005690202698833693712014110545193748605300393639212318362908907508972165458366090513628747377072328801708641987986647520174976420084603950045388170708546096267411376199869137430909176391706335764732106979243774246947400966387486702960349864994010742214415055549916352154491242476826180059803711967703225681228579923230628810576578800657686946589350430036294752818092873951671638176845986965880487258130152064096405111008513585193279721810706860078799265663855903574990289716310989868873413609918455979285657433240032957066706745654436895091138835974200252257029853328513129509684346494530931559038991031618464647691781921069248761579758924736570024104368785835304172090447066412790530986151988218267859613637027348444111115913267772478528032576861234833667595052563254703537945625789731743363092235382521765513529181808278664400002358842734643953133700451851640653226372754225286144311115155071856688354184391688195634032931515563958578559376119026890386436509173772617831510183019549299776123694416636363859025261898724104830207470338444012239921204993330224464230843811494036877590737065646290760235180312116831102578466954291371195187945842817734588752965067233740477893964355773492103633483030424520061013207872873619564965663238471324915097684299596915529334942917797580968239759449802709669691131039020412279638280344497759835664864041199883738286108021700357891358251534389892279298324376983804481981923515872058124952487297472095038702256247179304620541940253825827055169719964155473039254565606132843815633403918877925738566435820349189629947869506638012667353487965488082166032972877608663369473993560842059825162097547012406114277427582675061879581399321978565795461214999393741559929288286864906664975907327538261719885599394524219864827125472761617773924581790127522227188033408776179418899191140152926184313436611509837268059047095876166059585592065791892199374097636993443836049109268516387039906549925991586943237259514508633441171743314866670318024842582968821329096249174773902013991144459117083627529794893914563482049082859966690610298773787309608973451662478338267393807565788862842131374182799431340677763861794025333090558949115961482340145381135536851530905603119133076724943152218744008880090122772387447830853639168809207980582732459761168272235354090225916262713344127659907729683547089254174541309547240544299732109961901539605573754127798054167542227134089170514154048668690091526503368447014733889113846474801060770843606414796787098340117319900408639591642153867251275495002351473563885899514072541089428735468048022645343954495997666153363095536591431075843576085017492863804181366573290631980735455946827567104707214169145230517269880988698296791420776656486878481037010351785171980386407610657711660154518536584130120327289145432789750410528355177622279263303313847141254347507486506573728595918009490433440492034923746240139473595680345315680449905687027968060864806072263876553515235590660131109583139512944104584856073975083073228813117199881349487460885017928562163069958907084087326246561472389698460622573160397138385243378632052689901465735182593368905272070118011289241359422023130635472479088610676223867882125620824911884933840524784514789483696531473011195021747878254059701092300523129132169368558660833238271130556397532335743958577805667146054788252699636649682936940313744580333402553235322767313488644743722581774820661230638466228805487777024953407170973869993302562408356256697501853763591517684305979897818940297303056292159072336845233667632881824087192529664174859519170292438731204069001129018934714049110713095557387386792391236777432101931111651348228232351553806681726023834771781404455581480071567249476827259209337788789865286732802657929778689870024688374982836337892380196302115818658892683713056472159597653557941052861948160362272982495516045528971522054505750904392021439827080397416061324118823752082338658022370059142947489185998030733069914561432254564108138597016456344139156408157373775955691916835205189347576355051245527922444153227003101457346778122460749671011458785023420125467116205854112120937872043340984833359285319064023463718780239654031381417011442467693154036208909401675023241202340049631532489301773873025287531539682492462823975551977693600441544707175616769590745646405599071702328888560580653538532789035651144103953252789466259264057793369172906248973139564853329013911689405558601834230421615385892747210347873654001202765296832463716455475260180065837540413029797625904715170665864195981367761978888555080300156288926752638907543228926069385015991915236670396808577581764730212665982937825610633006847944343946541781637073737250719430456387565289876431588711596237101091386617309615865295930632962401702220226296044233021807596416969956963289236846561359032573472964086730300189908251937190223026605812069627860057434139560742923682608152420197852347910656835443196354825647560239383743911352195308383305998021747289315541303003693923154762579616517333270683413569469521664720757721504118543711437618036533182255371384896175249041653984840114611114904176484859882297741916928326706918390311926535024893645135229162555124725683645692746650697005889525622195307958370836203611303564748458916569827169736054535993970771600242478724126402926630398458912271731249969920652548526970953351100009429670715561531329658638978940354581263111574547393287018421301058735698757207701882627503954961842579059866423031364275711870187786796237627118193929844418969198476770034962305195973517646329506659263192111018672425768201757288474487818856542506165714278140535468897332551756429078194216230020904077498186189888160713383441824385669961782261982417741933288416524832285299387740880373983809477393707465468568995915159251941647875229588900691926682460060166676941586962989730939805473170187291013553842741782747732751050714365289649236912851599022590493571985702731718987534337976568951166611652265952308146502557615868796812229561987950749717263411330477939772127317621283945605588345677155625451582105078983359436983377815128892641110648496298981126720506326695974956191096371968787395724569468791811729631629325217115592939716893504501592629743967575268985191163334440082972425782823657675683717695166867551393398075174093934351986610170738794053446461588669597724032575668998543747535689658719123132401786083450072038272363280245695046622130953269235546685469544410155293360639054682918423223187677809436434324480606502300297682756928790173367434355537963331559306073895104066001079517402936032454201063086117299899047700535736054094513100862406226158948694327592156013858846781039428958385172601346028106246323083589958698395122946650171804519617227844995214093767269430907434927469021462684657687464089614012039450840025460978241741995540517753548226889082169014841650943010401761940897563214790218216462970159436451622960248897374672938118680080516924666131801303278265220851065081582093698167672041046466359144971378295960944785961909580488943502410212718437267486868035380338247605998548446069815024813293927759457544000280904935995034567144752237137030363391715054970209405756778663421330213422167780127131468083794639029693927239368867514229911029507357853875836115217485981798936388450818013631616728760036206922315023696322422418355553415393333805358905431375356738304889476242811417319753964651706526992206019769039164811732844908060320734797619034082146288218635987451485701686352662193756317796611867501062532813672380194244765131859291394127777291993960535429097071972708473803475909305443877505681066609411851397442485969325529844262039125617737080487199460327356268754070396209596259729039849210919745738832332527310789382126402861282414635637516304054708425778985638957538340333251784239932920989674940645764102582533406432536691989225111130656712707923253235618513888945759212754607702153112281328402241402801351056122821921301034859908805139032790508307983493143084719177331544325291945150218332318328279171625318556429953039877282035927096962690157601658405629978869488218900224225537118198480956449255703174710143638601547534543410210754621134480935713555402391416084823991941377096033106618548256008623669246211857294549984932524537430540393823713626652029239606825623887236610407387383248547733416504407557652315794065660458384135989166141280305361005217075539713782614655875942841865689930949087864206680363705159897705552432033226221433647664791878810690503877962768954397405449934643963119761233914161283822702285840450048660065392630643981408869306483808633587782528411938418544609115792677895519036346133720751665386422580622193114363756528561139295220613397904639881996731186338883238215763894833737002628816919261713112422600214462218233924080392625561244535384812451130173724463385449384233824067808773170222466868710768205774883768848934686690101103714133433577591253499266867042802869217418483113277787387677085115973319311555274601655911471697181962234243508516500884598857506456263385059114762895613329189463669877917271741652735377903542880328674318525805998724030254262107824806695520263890799235807004837710334834789447624187505647974422948924839551940335909126323476049823693119423218564959792063590854022925193878434662966698236989640203440350057891608906186260609582359599291461318927347200011299757327967260849127084578846899283852832107307587525603217729461471569186477962767756295354287414053447082833011967148585091046945499526465383778965486852853126094249783313252906470228011844281126762187483677984621550674377698959212788073989451508618159294449341941884383531604329603367505752272929520786477922281529215437107556381011894831042555035457037963454811091807613207480559811837398386109635763409812955417672713822933855247631917746035592059843118524909139483101587048498450619222370602448854509122489848799396889414705765148138284791832545966516815390015740631844551483684488255429960140335188708281000693234746592706145431344474406242878136598451123463543297279686050983909221812202396187599126886679918464034191468477811666638215263837007467952385881802017197841244319939361820530752010853354296249403281023259927350827920429942054647198139352121557912867626687290293320513248982449874605641415637428324131289476201796813065262368441951849111704677219335181594277031481159206713896446264985563263351543416506662146827791328426037742404341853519216633550237889989248949303005015270363596285966210572576587226897653137942101731584673437827783400429198086067176430434700821381324086377835805403783191176490652102991867609018563583515851523263431095363562009504050548232030405987405484127663416632957286848420209125334660340189240595166769701568768839843016995325485179337829945540749719004551431257971682343317144737658585457338544041411398006865111918873844371586663249361632247006886208922936579289410596412942014633916111291751652189346642872520569496279239881735036545383360169107592542560548690778394174975865887662922534375795274639303972838963930776454749560385748009541962467723166812952061801737356869364422513052231896284021323414600302881250810079887799158512223404807448272014550362450740092256494079297628500497986373663833248020825249629663319459277013900605975154980458197645687388393922914102908095842846341386976058948760940402185876603849410013601616243446552270973394485070248322601356564270697720546767371780872588518863971467540184021310421682571540177194382955707053244180415248926093598625095917704990335881625011643011359599775879079738349113992076387247949783756046352666946231745959094232192864180037828044866150157225246956975758106808478290586845868429074173658243498044802844554242322962580535667796724137200857809367713377107192738390004545302056569933854247237211116983182069605461892684498114393963533326435368746305669457253144593004392219421431065458183107852942445016814952377971334827183755699538751526333614388043345330827473806647003642185613721591264038196116672796442254241242067663476657836756870907237881563399744807099265626776085891104386087926821526131785778144643901383830954215620583086694600028187844257190704816937301524197188022730530134274008202199576927065386037588640907253495130017066099219744449581949171839689390361514334562997148806092918044770854288921754357307544714121758071326341904658023108873424954988437210506617551330546651406826481879406429974736536087455470967073081582244189489922278835571012270608565332861502960925255205501371286253139684464574581871253802545280606049925360074528296321159760952921542645810077483804375872079221708328682458664135891742673089581938777605284816459265008049234864767677730866352595600154884688337245849193111656578763895609709617406355640228698313549327565851482946114771575189217878694154522328265377824869328014239503585435095234463953212913440696968917521447266829854243195834204995151896368553864944516631050758586298169736099461954024684504493806615683642784330326296687009393882526260504539757597460735520726137312783046748751007956147306421289462716486660515734181844784797378988334600075942581462621764325294998073993863682523007739922031478882686015035913949063636810855835280342759971203747701623376161081598987795207736785328016425690369475630800137600661308530431455474950382665815101138581835124855879212974436059509604366533522241674023989106953511483229232009236996533343929997570359150314849169613091295691769885748150252287300889830060460949671291587253679518373491168746114927522053398926873523125177540892109771926960951266673840591752647328937167858361665516792416572332973843551784239139810608576468946351994762623584135204050210845014143233053675749700714810277039453929321074024574474298098935151950296028416411376963143838018415822668857714323608870410366021361263033017286861775019306676143966484912608941506038337436657598213631857014486588275379404090441359252337541876489551151877034724766731368435235476523448118035808410526720749970737012631773519078154706396130980600773735535650780920475249610221847477318150506642441797629670960814677176117322880155339632192468536576661096704896854475789228487387932888065940762558501804553864699327331396736478041252676396962724336770504329290261442333844096624981618292178604894378925300165043211523109366135793125646453923759863182840670619382215240183263489490733882718184746878901516995388216808794310061575358024759601741214566033295410073143174508897298461067412105838130291469582753572699545494189171557279793596746042327873303736917057751475339359249302871008295670282538289715921971314865361015614508523365708742384800870127540834448032860830211251112119359880926728876478284314940878706868186598588868828006112722083493322911228845767588622553605227732516840236757893607974204010245186162593155657564997208851319684632014839716565825826241939122483271443510175487294403936328355633596678607230199278753784981640796816641044749627447754623048887007297718507201333584861985558307140065848438874238358401497420576971721664667490921569550350060177127779856266302581130120638434719404659467562062848068639050857695019937300308526545554238394732197429407545200755144645760492004865727368426126585656368424912615747814701348496201009990726627535528100181290507692291982013754347497296139611508552891171472675004913852111934075938261921451827503312443211832939609603277155898765586383781025314834310137053684831529882633201783580441933063523741757296892326202347278226137867444289087999635296011477179017232683669683527921796451136095209359969971089909559513741278706214181576698679731846919432692279128915119034975594413362245566546544697302415540037770434576565482916393638533452887313164042221865159586938535539811549695699445195306884804170415320279128842443685519883895727621339531805600084261946769217767837762189544266918619511031838265169823314495270111382919989621434827203723958018523100798721508560135458024133686339058129732454660399301635556553471096359938039627862294766205583668535619890535611712000672662522290875263805196665955306844567353656488836634844995538844412046839398473720418345335046151279701557238783783079071433528558316789240065695068637383150365539977872353002884660532182775653122873622645844870824747785528821167180497994773036252679218916960847961000818770570885056433097057757007111490579101079370699254829549412239789266855817598915323921251085291581817800697669419687270977513993856666982662348594532703642468617347180316360556847330563804786565667491356072655685113607463152409388982908528333662090151962929172338923291336425876716343923283686799786504292221060626953046994478911117982090562545741135672135056370856446452475512315084940664105954613863449179556989920337632399550696011041534391224330896378528372058126773875443550612850626521671176231786796789027560317183608678812256631543757194936930512350268275591593239217556819437962430622316180218342020703210795052261384743814761752168674623225395967471108346561924043665767323781382367488913364604065097349507316699836562950630359215304430903902555353415341523538010972815230615375783679413419424129828202095055891396409657979584473884512607383570594452032637714606514895611952983751102387201608430134707672369237509079416184838719919845352449072863925513982458043532983800710035395654149199787948854463823924077221879080859757443985548696472583190126481537396251632899117149221869824464035104221177510722646346799353417070426102441301332139016208291625340384078439528089320892916350132798068079906206450916713138420470015925330389147807057377708466897523292273887094951395501013942088300040277364139100489520409818644154965011436271873354630826843749658393681772126470371383147428178473609188096836250509217943505922543260815396624830724808007889135642923704465904819385244443740505475973374979368911313952233158296104830675225043714169976269616919103567633123802483976031127628353357726933735652809697115670771813904068518212416265586371777070440418313621052806763299871776765503709566698778510298673163725802469095708483262829298256817635390067746234604745271813962999902607872537938755025299476530580269416060279525364230413073726258955935577970468555652414517975782165816516408343491878580839301335267355095289927951154765650119813163354195441056637521397146632802264977343751090704517358783997401496693577521400379190770475559022364141020638696944573914410800742565514101525088278403782049333640020377102004179055539099815020256227480162878632680388179877254194294898807529593860059525415212494263037819135910702611607572222658352411645693556869707431420064792071487082807872803911728352310522729614312932003271221534879091078194313546749371292254157273430038230871319083583575214256427012036502057746181035798955502768329153162854887344010620834354593935532790308314469795587765585399849262274512407066834339922183562223904525042022308133625062018021502349143665732093292937635772996451369811636958888309978210806013852391360467019135986670203956507228446183645344573605940763538213639361977946345061910126421487401100728623414860575753337891144689621180351814646058520667323887852541399633065550585314332031847077346533341812647573178335840107910786209796276618893202562902101097367563327430382435271751414372397435853752383605500826574574641334308949649211679779410489551503295371666692919533428117646765778490628029108957760514759413013817836698448075463021568988642970511820667853627020410204621542777560452060050749881805174838948930982661454824985332733770703048937606443141334914207858100372547767456987694086994413501962434943068075551398719594932604031605737523232290725660526509197438082572180170028330367296753406628764662869243407121370376826749086897428993133115334771445724271992683210584912553770487837550464403044540395509880627313887822624078281537477644951321047342566018225531428389884116961512571111542651266236093467783115109973965863332208695834707003843366020873615511095574182126314949390276190406683547353401992903966919948488491340660825437747453689261155253360000427223849986267436903964696743230579141503629308434948987174459468696604773743724719334677454489154270287405817680955819725929306976331722702684270481759822479678234410663982781202091135395878489680872705748548124055798537016499250772913385189952024615706842347911450165069065529438077690245139113650986157758752484605849602028556975743491376383463646300717056366901254928960951691795346670601905369176943274983070720978817911478164342183406666328661253954925142373460137314551499989389795411637975527793647055176313113367290696711888649705278265786578187141741167940667941698326058190568896824163952663786700403270021833101682686584961195467765741941912401021259807625807818603034975197336873725141801145759575840641245464763431965827464029378838613082762237011259540669923963121856808353500583725225952730111898667048717902388730709289053267800964455293842414999277310343322971019712182010659515827704083712031611867576450925923553247729445541176476751447714058958589338349184850547417958504206311366699966851326443224263609963668209849093632710474333673689881972864418848953543894793119977043723816311044056241513623494049393858268542829287550671961358771078122328804775206520636167850075272832142415804000653378068915742006914966115900742985872926618269144754865992104547533930942107575565044464218644149298222338380903133486514137803788244414064243769193526550555669266472941189887759171373222008766417328916119643973468929748179781919791638064956993816967642751482162343746281701734644103163103389478840654062197690871867502703932429612421117618146764526571466618942128850714554848860286415927351191872887771597242272628628343626058378005885169604633545043146903214636827531234872615002719323501122402619442886034355884943025589306257202073542172880547535167972203434941689745083429735850041719134309684783642279435337654385693393979539753538569320345815943490738709100403970540889818175362953736827246598760689527226395448538980213465194454224095487567995411528305746713467568781304605977975664698349910800335748136071039290661109793587119100570072421279795561977235499644623493037396415574803225173281875851990471667413583042038770535410314602010673570183659466700883101849481896403791660587537776685026940730902955956345013965042216155281529054505740116141900104588295867437188739035569206583496501098514458040969831643198290756551248935411441301378614232777751143613793191869223769965024039200308773377062138532311093849411138576417847489578696147773880182347145245397411497298259219067352602844024648023476823824364001522034072247440399997752861867354527258466836916137741846458329847657274809192136703778334530949735569697380064538724365426634554075457816922944479921082977897208792146517195005112890682497780188722003934946576562914049421110734881710003425621858137412221448135812907412916839976697952968838490097270699339481946718517743904494882796769317288995975758530492722791569118540705514995716108395424632918819263427936300141990836951125953915716559851013400717911749880325029073177548203978610480028469354733650737880735269663035732814761922648279559267556948626822279955310392750101202050726447312547551253542437914383131832916933444178610788126380401879784461979623723593013334694079950318697958430671970855389598288696112758133463601591913345962393894724160059128070134156207411475892251638199493300804955723459903568714569414219533867412690831236172977238168213687446648638116642556802605959924394621814743459533428598366997801448914370535307844094637167914169600419682355001697736418936055386659093090787214368827914167798804227974490271811186868742229113653505974502572388128297341803329463796313243338560454988527089528472982041263448390991574553590731582974337828252488719795394798570532378533986744503771182651888380568534499500026816318624168454672531212198134860317931667681521933667382327981193648974667198300020548027767405832693724084022224446179275144964709734664379167472018491623135600275683250554641073198710305090747823000525169424819859379372666661788158862065686492277920100605568055993253544321583172663371023053315629596500919555881416667161868798466271394532627330046562518623784337027365678662320789070522342621091679149023582112829030425636313201459541009181462223539440204891649329255969725908862639960772258214870907687132495526093025763598372562381359152715782338138756846754170093308818325983021853434125977301466696585245359654910518121471257143444969277315604668974935827458792129078697729544113220899843763493086550509633325335834902487752510686594383766898549582221247195204310778823046861386165358006962150154995789743343420088041013171975634706356984488673383256920442788821381671552946622746024412833841922737019125703932050569967821234311433053586137913036310104723814385346916316378258158000347719030886603248717505148269019223884008109015671000659252794165807051451540676992711240256089872245373689429440524028201511380139206446992596387651318139706293699248750395126068631012582529725441198287608034596228833488973146582069580155720036381234423809116803204540195211755998814567745092343638879656588213578641470940794983486779065057999202348479219673929797579704740118545509053102132434544795908776015391145308442098725575248737318816882326615806199405659412016436121820053616845353327484928215087973478242086703755710892037987051271229181006087637457837407873412559769837030666471446681381705216185647750333647704125301484915043862282221207700031721261628683712764249611742631350643294097242493059386873181002028617638589360408060487173341202844898021707182389550547622701204658948969300801890448554205925125824724677780185172037703437597551390745622690705797134994220139537283701636486634001163028797745555581793905120525067833759250584394873758461339829958450886505439989746444831242538637505304026222459881519794610960482434794993357199711311752340454782677598531337005216888574597389685658662333672278225346432005266987546189690040856088713865912647165896422558097960258595958544175439598295801978864455146037354425959293765027686875033443385975444812729975403831975112326982407054329999172443568182496701147782268232012633915086938864663328641413910858671653046053904778281575811537550111212329262261086306166372591760704820189803652622005299975322542125266041967793096708138769258408953397570074210060619724905299476050234939064530691422382174820115458611556180208205666627248035546826957256221991237719664663862833490691840241543621761269186061445326894545865348297748266489187017592678912244064203403253203143855659999446077742097429258993956399606066033918524248219613905289150951771768830678595304422691809076927232383541846048981879935661591168410999829305515807821096220484230935448716011559634822265480087819584159179207604599367510336847689485914660318981778009200830412241556139922564359021003297566666239118556631476424862914164241697547715436629022741043983475439813426541339682776336051415109757954820769576633492711650500594928025209262649207510201717230849807688921609933201296921800959948519002697570577938637110101065166679840693737242551903144427888913029596436106982369881615287758521762519602648727955817477908561374633783268881261013401196207863004546912427313126598906405490773498475582586837066654180104254476140988307892194670573134412283918723926202853631188452283021741289072065861269928214500730860152951276892172147072300901691678092927551323323479174195754764136875159783766284345828576087592038211327193316731688742585530730285228596119026225732192350597775734120382010745914546406022140430937973340425823400819250210564032756693025860212637074705429670350757691735456105957445044744668406949792525703700287631135901487404128876883469387584809653517322434003063160738286966014799260893908551652168362848385391068998809489765302406542486507557148220516393517480380157794882864326662666290002783575830027431096268561127237035170177985942747464667504198268964488810189453922728059998245432906495465670745511985355225191069025464783767265213919936105573831950935213514353000782735337315413953315791414532371321251118989020249439702322297327335840642613816872103879697402013575255754638159636268034751855550635808307400700676565519276415407977473918275584428962665430777687209524423996987841814660150946341486353598211686540312038785316966678927219089422683791857500391942410712386954755208888659543099048691164292267981093363882901067880539064591467173266116825372493394511641468004836774078307149479793934020136400501837799634366466299811120577142637667499413680304344764947352867769037552641324444178877963736894912914963648851941154484756566334670105594480565033512826010976344420333319094817057381696487742532568824949883065961895030503093415918345175491029337330364943252602485150311507341118117778941666706084740651665753229698953052028807105892962147349400031637776870581109506438023817496481888532862523119257870313406665970889145197017753540104603138683003178873746475560853812117002241453502112104854604884131779721951070010631582308969799992084346135130365671561182173906812070291307179422100599818148833867420929286300238643639846735286885320757044206687311400651191405849791523330350527189590748545449759127977327365300087668953531325005008544703096004964206417051261073725961510325612427161722589504337415309121364170833210341476472678022237107553549971582298353917415422066023762796578960297721452116903356419112309234900451113337711043440120040529350787837880947748101551014104668828637966863270321888966586938068180003652587963791797422179326162021678109231759386993497253961098071530213801849020330626480338734221295549463203877982582574392709755227241875062942336061286693774039775166372775224085434600568933618115980562325396565808960813170294539248397161368825828141444588141417005334225949345245473294337640088258678372355997979777274061668347151025145753773033745241761950717983275464933236579407516715829263431573369004743296179369619678952141698045951387828039832473926374908145705495040262585086223425900135139292202473899312205441835202010469615395853671825063867412136744066318708477960770304893117311939527121665091183153807005051354141965193363023989455514199739504498275893574690839580866408355715024195887732557314777706597787795165568278177001844499128778537761933435787256101236840328422681388908348970508317621922970536559413389155441734015276087734529038044976996337945366562991156188848597127464220334151940628625653607227500821562016582704441813791734199454085354109795348594263740954457695058718265534904762478226323371421206540192261454066096511464266367543408732207540403568689181422301781802007362717988044206766819885552052526945178283357880213598349027552781920587099129407145022895065537387074209185163081604112693978250430682819563834967903925168003502659152203568184553156729086458952089364533783533005076561127891699719890373400095189590418204671303298302758087611311792310985124054089105924401598970336473468112236518887067829923232142160854696997268735392341793110957107190678430353677280045243948588844432563801167423141135654411901146936804910854832281776240730646409983175804175571002232876109867343743903461408729095308940677123124563515826177139292809633584439902028636584524366181266483049886256249181603337849422326955897660572467712534997955892953430459355303456832696165825727559661000355657520637127902229444229364877343392676466141433642073232478665030457952310373128652276124948692405336619577208948774122166502810370688148263259798443229304489101381166257339630722083848410286798009520037320197584701431087188370598255516751990734247311601050224448170992843122625441796717937793320950593658406739638585173585130602528598653825059503838239048195149162129700428797440328522178100810105351708582930363296308216441337324897235298820269152194408770598066310986858130627769308880824313494518345623846178814525315692326843474357738332330808988014628010667966116477384499994226867107319434412661627110615497781810256502782623498413179332558647711250358526252897827537335994073285573766842968583342252473563850349338471292402390525519530923936560630390149713486733647460718551233968702994845632127082058113686144254849706515203188806174315652918210244603927003131044822059930758277966084886205117388184649069665787571079432588578190897864433114225185016969334282029678237205901148313293373895076801358079935650305369653362505545718164008564396818715226689077289182698221119886028991569508180940823325013077545980406565668128871001280119477673463995561637593302395686139968637578624250632858025235099276173101334719753296514118393282197833702475669882981615446602282503009368563264679907291198911907706773778169205020755664081725805458664396276424774593514723241610357412225179393808905591687934376599956108737043962977836724164573132083267992840976549332223059637181029233462614717111206696491529526101137735423814772238204709484889621187607952492123618228231654067188212972940460715832498961049362966602511012400226587626829411268150698060134323900884245729140755284130112106541596091153203446240318207899283122898078201790180712566312920722961755188044562428102423574864427596733819465614779191678864331340431269467386078420550566719352089842675979944140687646111127017118987416912158913603125940614166916380474907661387039362781557376430232337203414150909629810939209977453060693622604682547656914884788349077267630014094692111835064164364082135972818894571606578250880180858719190335550387891498242227350379221782743826022288416548103911557726929679169949582573848063434201328174277686816436463802037177420858428595657769775529018768003558197813037826053511746627666209228969299279521829068260795017266545350358068830364136204507063427208465842490722018118672442508919978319822463831112504725188409338421874324910892267797607623639975086174439147662416235648244084514317453550201344260864181776889208897797329596992600538726113306516516527711924319475380381980303368866095008652803851420971391640904578186719474300054918179182416386338747609245402120868576028135169789665321901854101647154815832057281230549024188625482024598476121049711671241305714465326913398855932397644323935646957779142383833488941798540754354003199929441343107589435205702852240796412347347994477839970899157442916164054002234483494184269843650952164675791005529075099737974705151418414461210654194336029110414067450086787821186740231200306016110541865536409301330050963645827126915982025161843063154999708100550911851920069337827174828331592964107435295440999047511218023821830542107688465425845156594113844618840839698493211841412706406033323836656735634347963523490540713684943053909509444618273143980278369925517923476090630754518704968110469281138275600875292374149825733104151219341541893371813326267139471452512353686647352999532381879196081612493202303196259164128932254949485944707348478321700981015972225688155249357600590280308452734079224868419053164788929544148982576108468557493072617316426580770391885300878879834288482605116034056552397195821400885876318497191178883678286445028044242949882296768460501829964323949136430309336913976736864320297091260738183748528765402109570472225918757868232736853458749514973388874670809620336668669042318501168523339728855533594220730349368089051894235164516719112800889824506606382603799107238901885902480156554320915533359552978119370941072939867902935508901281818985325270390191735640506980869648708582517940180475799813965370676514633432260613148587753686257575758753364800356537097518148008999380198677527893858604328419079373945999979778390719639764164379997279255470747796291445168929709866335858497697219284609653629824956439869732788622383001782756738704034028904542728928429180512503874415798721187604445837230230591085138215212324651807355443069505497789804991359239097006539715319534133959897421160993220643375489295166108479278987596535244143665007560472450515681468615191794219256612861980323136727775110741297348268838755842435541476904327891960578630749088704347969088175115409958265119261441653180256417659753107044438729233454258935891598587082638510883458917646824805892057852040554962253417550349917549234181547651674449054193924462210020994650732089003208656172237410194405278166447552631862746134852753985101338234192658907586835955265355131731601202713793489327842217808232363813134588885745301785520681845094688184600943451846823619383596454745957225352659562619623918570605736643969218645281543290979210853920024604241743527676270744246521379788037012459551570490059583315935277777697969318119567339504188220750726456785855836280705670182709550385025241335560435136212105677412908519192175610863450955091318253893616232373948194891521960666694197771730026151862948199618459158807433269590767503743944400705848953635789440247536907231240243811115650200814625484302675280463425757226827154881821196205906087836695223891318829434888190087896944897019218859924711774567271852928782153885080840444443687324145184671378537106621755742493131740033267328775011147848064393090535902927200945676724435046794389806080701111893723005509680826213214504388995313541943219854344532686026390614110379097608003404640995946538070674564699659699652586178767995109687600601526748748765373173166314516297803411208344970494166754728413870165256794726643338638750501929620243034780854463037183660503527236279657154141721967112078223814222042511356727835478718433272970687592625839567379528092793026089125443733560507377000238966823889071471795660074565220054036196842746532229866517324704114803803150054642847516613602811639922548941370866463783863279476393060009002730111106464026909840811926774672447357326703391611865562447447357519084794383491341784748477967570965153812067179995280115964468506918535752263815086757154326479917601091551578598613572187974250928262493112184542534976527736855098672399676529090404848039813437271716146592832784259148774982497833472450710788587578046014752239118207122533435257034972000355151856658659805080048679272198389014915303061335927713437316006619290661279685370117648620199609220095200308399595619612567051238199173301827139985079005055145965285892391012936210125416979592060958849231807966744361338589128517717896110329076681923625371921806781398779459548005360736863910566887011011387609499011589161239003314782042374978912192318905787934375651193106516405244811885771491995551819013245748889061012396748343817655494817587320254287977986569886956788123273939988712831799402983842788101125672981337373446761765863822266848907466360674229327909446164030215802361502276762287971023853695110753576756693547179697931555473129505634428423620665356870164598543361533996454712973194860115811706501202687230679704056573589702064748535671595928077300846017196804217558513646097556425783639751356812783667040821414147949437053087952061238686470308336958076883287463268856437102932985318730208351518078505160293714947076764119967942555626583810172827913749172187014601343658772410535451896798015592865694904364735335128829096271082235504345597636320700749639943860256791526029616705784744470266074762074336495972364817352412733441821593444617838143699645531253895543592653778032206071902872964947147434917129589221875418956466553767958759727542015509171020825040190643194435434159603646575845241960508444857712014958602511304896529005881530763666909369135174899364130460553679004965363882479281028465366315550351941953263392994184416572913180275288046738718449511446706507084580430595250157260091575208707558947878077814814956246582214923820681190207171162043618056281699789250992341944064312404069384945106669173292872455650381511574565844907868097537121464273930237050199341151264992266649493552521171447082900457053965315233976031098978175596104362152371272856852019275378410967174433054847233250844259637342888390218541852828463487369249571492402931408588335565519896371338843519843986131252634425268129628743979570335476402092292647573139054393133031600032464141100240807713173872072755101329415770897580952292310880365858756928488933113318373141799363402928736406342193010340262112382926633839639913185724019879159673973224133029556735578167212667479125577205176630011707703839894842964980610537645438955377561380703379323480593386311780888301575314508247813775070723894146371762706780182077556870415225536169301717102753551133629726521197628878924196132163324432424589979767012595096903871965700976994041456471804622877878990576753967676541327478915371101382671606717803317650948084346881189035382953705374511827072517995062022671880140792309698124778983425814143600863864126483012865027939080119382581736309382495343787933097687124495115989269127467531933927990445013299374678051927663288218682183104359407189793481162960307502074303975481268642859384220620656906963861287776293739864277924901404755494708076904812500100300010995290278860699253809719098195585092907560066106781717112002853221870666031716869841639105017895054916547303651232702279765732892315347079549601649352208842549609105110525409234179898389178055475559841182570224016886991492850420066133919320894808274708342299878540988935796262440703853415159599384041657058585956493279356517174907019496722013553141859171948419556728582062076149045970224145046653691659598447524033915605855517126420380305737916665239945140339670980970126177286845159729971812615252231024474767182827373310992092855625638759458545270772759992065601574588220146670367685223561605493421898817523455771018165086668810915089506521637184316215683090611008898752310256254833794037257157595382112346820363566019313590255805365376415978847803180362654487014022110280865743292103776794968939571668614870983180253757942416643384375354279219697279125414157902261798050671493963974791219542786031191671588790181006088937525764330940171367591928289430330227007192038715250336928425543510214195968116106553632017002371966972328944562693168872164413966843890966838855731629703955274066950317363045079993269880421193980450347063176385959434843913083408210621491251550289507091138141052098567298670283731023590228680813822757459958994234806326321071965729098721562586593276143483434632483693383313856258934982667798998305480301194616870572212998052104192022461728824657606600295624526211041883235883019155718171276057219366704135870708932144757539821705728216247822449812780683357397083454400305008437688090646624712635381245581977000148328814393215453222028427905512413263210353904783841999800088197783083819278077466973650985876494466487163491980087709280600599510119514989284711362077488586452589556662145368360825877974933129745588518803555643595387304762098016520521312715052323993596700377363839306309947660201420086793525230488274333802703557354610141411001350877295230535385918566576428000779331581456499639950584096402207771521959111212639112924403140265161095555183909348195315715302442912497885261973667831235838884303691565418481812215647690069819492185475635857857574731273546283769035292193284726859761280618196292215135152574336369413413245803302063006075770567042084789556896698271873582288975009194643493901584937349539793476949279216980146831638163125433616932950840825570021296112008573882945242636967376062751008636000913733365131771015859856621774837485558326618732244728092154160365210814640570138918377127869805418232896067537417039220688703751127456203553759876919341383513592647378535373419895136649233623609126390584701116180820852937424294552509521718184688254127551690409655761374510918283220561247790467451676795979801612731731241838944410560193864743032179993512251580083521912787559787484061888687300240172817325931367726482414740082787362130011378335209883569686124573215799215482787077615234958446670365937144855338638613157395756651906841121358290058231338840339872461356191027757699123862771382577254910915063332358605717989472155769996201741033542135568814609246371325004956163374031933023515487447832845775752225294668048599319710360774578105949588389430833724477238672721141795051519011005422789924423976719999843648198582559141774047887319256370615489452287916139119519282746738307976294980395492332475638538799303134214577881562136375037770742352281726785139516599356683630204522056246065266837358860922258877303853159229821800271815674750530334695808689242859948135466773571803784157175493532497214276966723282755633121530655239792513868667327027549652724784806964149519006544646620412131988792277969270946417912316598519386376096622764955695544334265650055510378942553309144316538304973423071970210793258147709330710879403565406191977031762238030187089464041254761665271282507011180088347995398521389880445560312168410876756864033469455949895248273243853081610375175155251656633259416758358284156162184870958393297639572092157119416786828080990064270466714117743110966099084375860239422017900772289467290221125578807637887022787715357081235535339509219685490116948264931161294275773766099570431868880908462833922742185947141410068542547442876214728209827084244823526605962845738639388906938063315405190274284603361999472411696496368108887495065972503391274269624433750181980855348688441247323256273699528747510870536440864729155054122390127950653346364078037882841154440691067379312154770855366890977695224365341329081470077371570539297774693763702142103868421291687093047135365567346551317417545714430018379688647920761832854591031203267080513119344964423551115967102331342560712389337791036358195131481135401935650700561144011760978290346249530005437215351905681081053985955276654411154232468179831642767891976825528928393790950161272096948811840599568386533748984118621990225753845484229005797320705219701602107607925841014638882613271336071118305563643809900931883975206968322783994125888124166227961249039202990025559131508032424222294366911353230421166558943347920707737148299424736171964767309475290821121364438017000737232951562139507158489156782625724412875753930893517719063140718423081097288549246619473099255080689219436522601538921096604341734417456070695577211035303400727090417959007574463581081038032223537743447611798887625071436350790300265705990776735171573067113360448979779245246941112362795890711955653494068443005081935166663949006428134097005118387562929848749652864096657936928438545630442189299236771751456113679965857794137110196633599153724542348731167393644901519240553342202124857540901855066154929556860919874484607533298227718863029157001381761227766921316934353301130327887922400204945491153166572186396032953068344808424218509113290508635213821269373058664924731842500233263902446453932900636330224872345149072603033035118630567201603881144665654823518244832846184388831217605914368303026207508497521602024441733090642894434948100108267616031926425964327873165665871431910546367846541055309165049254510571533865372573963032389903441749488146536477850727480738046311313729352218962554870449208484616080691491793596515034595099270835894507085308165329078838429749998952820385756465831567103111297964229345374288152957336432800085708695820071158951876713482886211239314777527461418565049505851336481773447387831287455687829313027494594767675062551140783033416529388814312930315694770375086518824595464478851973517748380739566797448088569301998761873410294072731077174430466548145785852583510031202499231714489712342565823511104799928597276283399892389465621453133723080895169496943527043231177951545172625109685913564328905107341716931493125055153876838253685544833006362469782158002561901171695753852962292210342910705273076899139872510166989300639709882632732236770002405824878405845689207319571441973081014395315316176693590530854030533264607328664347351997513342932215594268596865090760443500072842098452293077729004698019628842900644314696704584652799947132745691230445262268009854029420311868814689433965553124257176945897184991776589178156461033884262789635534523927751805565825582165697096338800383491591290843238128628886330208668669854227580913095252134905350390155581958288016459685384707086132990530129033363690302739107179864438466673089934283544094012089742648163487969516715864119927828530309098178624941702919247023768527900102710329595754719079329781698627974027911404931453113118898370523574514971630242437182330530221943642305354695249395833504157488226587102150778905369647057564639270790400895845445466828838036591483497377896778957299216290653582251945157475737946203421115847845879881779296036390142595445966098176369662018853045795288937960765827067597572374580791805822087194416928039825386202905531729871916100655364157539296656030469343521207817346187364329113667279492110856620534691338357543789013284513379637327634134108457989667039377308346259576471182130601111419969435414161201278447035809638163657807826219724530610771147819236020865302627856194760626771537648355050932261082659732248267801525648721157689606109183560063692497649262318631176872880459661593777400042700654450524854992437650053234833948166844848109962221607140610101627530760595878917185871284435676515187348072341674559612319410283917440449960071432181457386905848229098874681264893917655369571284978531305091534039674025004812086650449630658646997756633758986232836259137756234483587366483996830873340163306092400416374900812669315731356044273460526269017257424388387902899053825007881514641695878258415863253315257381240493275845596808194441150542886330069983258551769642791920071921815028655254381040685855789695124679706860527399324485315419968006694856112468393567250370998951166025786650517296773815967661858595591242553129676720981393466702122966832420873974368845635965736376936161828929994906496740560498953189815114274831505895287893305706157601963784274918411005566039458508406778623694249444065053666975158080127481353784599827190318684338282897903940883119639622827504557731344866516938595020365868139088081674827989467384680434144831021821804708066003126028147551568410375803836661986867274550723651101578437596757222938884765612641906168954429545208969024603597622376895545392237896659990560420857052293933338844192041996193614771906538580918386643819879313796634766720073076096323354473003124607376089382180519747729875117369521577098671139830401090743366356366123729633115597964925901755080055316007288155869239080810319453866851374492722512559341581902287051352709050689091603728492912506454659073277490849656709360886995924797579406714688164369603368423680603882788551263652897354350783066291195309661794414390295265932619552043915083428493794028686750592640403225185252322870660098788374489191626105548772222031883667053378283229153125079909019533508995640782421314424598937465809838864890575145142693675914953865149110098846282819807868920090465622776624485491708083379543294013675717025381866473690049637092259809553595503068720297496084761736428579008248137821679458395193731525466686479809189878274287806014372831271775971330201585049675685690239352293661253883844414527844089993263190695370560198439844606353324683932423226348309048596158417489815790318894246648547383863677333755429850881608927578059290939071562526237216005906649617377458252280604787445897957942178220515708498258477626026330325817032024821551622263162141917191056993501816447397889570013786519339313377473346708342042573867468267793052692871808207380337096671541232990013771376193974875382983445564963499297576543451192923515912654378961987368213637386704619830055545135835041796140220876806862869543477743416109316892423688530925828903604711611028975775717011757484062919925876326926981813259424679476339026984822241133263148114439790796133669288503347567435403916620573655295472530329345319495416705166874635398017313888970410450125310644252487792338566505834952631562822783750284078327551415275917478539445366061910747932881629125246128027298718047845781499637372245040107991246968737052767469362892138437174285201087040446183930103727150656575589947903382538516647859310118153753083112351616488265362515005510853343890121693490189578446639993018031398527377333097960673380737442016539183148118837738054388577025645666479911753491794029465508661720711248120351021508912910967738706623938785169618331750730228273628027385557911505221055351380053047940586091560881294071464620809436799621549238909832749384622722580803801969628899059417793224793491210661747741750599655945021380508500035260302285120755817938150898696536490394765056053751700941374148150407646632180392930861832888887649344343443988866424930027310180341573760151488040395220935106089946361555172715415733039230341285588889772932224053404599408556909797816238467646153191633827135523872960379748116160840117866018606206699818981169341366944691246752488248796275072214664866696652909651524898850170767771649150459365051240893238469783345824978111734529340634602386335927692736662270343061411442018544247628224618710029961773921084307264693913675021403525888328661285135581150538274284219602895134626047000456754264470285551397415102531885930421967691528126060922595027671751658733720008606921411415740775589547479922293495321220513916894810255745577805828777800318927250993807888255031965692384366834432040488242210743594950869556298008778416414382037676768220826278389957973749306226366418275862805584681542831287348725395101226435410322526730441872786237811795127272512917507531867988079505982943587837363702981967817835293165557300816603881959936134730760734402794196077030900039671932307434909473781805600230191799203254208274101129283501779802029309827511693248286040621541850756768182462080425271080249369325004535753215047584629642873170618396946761103323617403052648751645626680942892395559953031602166519212103518864252745996876329819831303092711328615203429387464932233661240308962080897212629685424624121564432935424626956586616563875517404512844412249519451091897907513031025038505220670308204383632216232426512563641676258713508770302757381518101272270479337664160166599356047217750457993639544053099501123404545972797561367510719456220706330702429169363924801146702215527531353564446705842159160777448104360089262192557521896367545280048310447439168458212880270442273252439857642925828625631977142202929110120129386453654888270527886199021194232794639247270605670480852291375222223675885869126792569529700365775181368549110719555329855407999166641686097273355044144855258480351929511200375996644193907350413106703200818816384507289839825354544913889609718384459748835361882472658025217382966446488819057821371656474619618292365943020978423432244058497290380258267804611419373729587562140077079945871704484211361806015776091979521640528456559650232818929934902211707542165597896868508512141470746478376804797819096867968876887715784940712905378082558301911627101945757356819216101623030982423912155592578542151790999371007312306814320907511297257113362762991247347313198294553418837087979517204613784560461238867352817930905489954025101559463566020821963908496284079347676506464055006206475256823251580389608784280486693631709021323723706019920735081301075422715935452070189727119601617928250940080701946314015359067818902206236157316079826451790417327918604108698604877072648031968037718786447682495573520757900072684679253909457040407716373551388909002317323057585076181522428511926216820795800445352579485688373585828650307516320174949241729627396698077283344379263642035466311434627495345337029509627814564349450551105469089017947669133489447595474004291230229964797259478252743517580257806751814699585659311182712792723793079470549855835035408497294883614389430820420943946322022645801039283090697103403066755866054191468570652406639075130327161562743710897417288531192445586804881963736522373517769405614673309652274427660151599629989619026647713875191156967308683209667095235736547743252208462830228025856836004595025894565905051105691490934747637921748131013608929737820731188694430848083557859604290856479136133152071626143101450657079271191561164220383718688139974408369261946215305320711751414174490581744569370945988118726648861874301649420675685735131572496843755699980012102102400562526166160880274012637367830273067906132675750668702962766571493092630409441570309183662795509041156815334250971406919205937850243010386112849966822800292544907979756996325327038608263238601897365993975270677151400775613537286061766066894461990631884571184658856078033759790662629971271846263513885826362044343651402272095978936077603766336809071864598238427039988666209502470557102272454339211392635141405604432915923042466797809977098110066627207086610251626278946410079668959742337510665124549871543467557373397938277672929412766871159678883534307517078322441780482932665066840711079292831777065408335072179759731172320749227776805323887382275292346518007421221247425113270599831623064291490281331197478177353603690388477251541014928329596473236510936821645690249489690490432977793074320133316091604691425836124636618135237672241320634760148556325063025526096348568595103136188127972685232617915566770215698759995254747404027321496982119630139099689303440100911159788943366016877336472566640764743139214653295850470939058115664355641643501805978519986361191081568005399977235541042311241491647479564951286247899556742895145625021029969743096094636752363245252798575514591667531734318567156513853922924443800547402988247314420711822805086186145513370293899723718489079296855273966725923800172958232004805014581709969603879990266396680850348392417144976806657584253948366322324750806185827227116441012507386670156846857358975880066648103457730155782898448712315671146629063632880177241383848403279435502299193852736972773355300483269256704259024926679058898902530916232985237793570058788183886908067296950489359081324408990934572366407864288347422919455380645315159167114828411946371035157365712573515309846243972091127011754229233584251354663428312276165716745639610485489221348477403018970414161297075267684174489118870344660833289043858252005900260916645357533759216723008712490322116006714153518405104691433035861712116850933219705712482024149147529736483104832832980639858949849441916903881054526351802040449382672588777427488958915960891901464087781726333856282380468828041187385443061602004718570223889193409333979206990093049859972608447056770744462764264276910980563719580092798132984527285845833637684469052658527810796993977087642085318694097608099597662489119988087399674165983072357548050156668994122989591411173458372490887159335763752639261821434019990190715354572459392202965947438174582072200579755845263947365782077018698940523446592185983918108106800091641018195503964899966936551145192340172144704623347189332485576513845797537233983691290957487677974441697809201240015976417449313836650724400065722012370749113029030113855794025259808670619931759873881788314068338917124025338034391997143451493730137153226310921930234390109048315241098672241411635020447335456574826561586271234458017904914859068648460258643779629495749726544214189126943744166718240027137849028997282164881337116017449024905299913439552261695457873954202348506821390061547453561967508305495436339343174604323264154132698266499764676706826706930908379864674116018972054725854802404577417596403271750526223281382471115422123553588110806813659189819295757080258805095221944743757723911261154872639477940355555735593862107598415414789015423083179363616499699800057466338780643585971405687808485716589003487799822814051179443194447274532241009664078001261814426136749263140863908533440246238655988040237586889606582765153273849932286663809785885226511029007755756487166051273573747407283157352470412129946925348828467214685475216365373558725727735207793078217408983142445980470556187221673232516264765638654421212626810889309543652645944879656874641346780130470817405620913028858312439983070382710262091708626818636053063584697286076820958795493096620686507681607405988795106753801459355923493291598873412386387966227962009896005307752836693161140781906909882748963127941029844816687025387191461130952892730797943095481798092759540645539834364192119522563953116518551542843249123883196342768464610206986265256053409452233998251345978075364059340649716983200957454109351191424403315497895332513603466159662528914027015629970260297290213892842794462988376892212981703280792369628296592938432734470909391968804753757112722603004550538313471246382296686753930372948823103128678623334691030423953704331861768780973308959923647870631869609791908724151210706327255857966071421566565538283386958032730472231710630947987536085173998008301035045023444785656266777080461491524334968504365419226409806139787159187248048493117906495956951577738162577396854530621218637347464053325194691419132350858863730972827035850014071340487135442844508119066379947860815055464308857615027056274401315131288342831102410365836758270337978900538802676585331580980855952142777115217794185196225778134890828090328654049014140132798554114891399103634488965188711798102404160937212235816812072086918848824115477718082449167411258270984313642755963108881198069984383093278925004018066742449383559669604353775344799297230197745798874275523415440203267378391610745139655244350942061805869657259155223891107911906524839854246437093340715055292372783489020767830649001654900544727111732301514469791560604692290397562171457694881387256776629650128036023764726716124863397632202917311527819199842662835431157306777684097860607212518019205643623831302166146151450652629053476688138398517305098996184932137772407541015256857798741810787002152924690728006596698582683914054815271316128912693695184376476297371969254616643254298919490596518737388742260179696970424768205754093286747359441088511991250789800297255952025541712553662423664005440718896971717980001664000571710172361791935412834045476118302524541505078692577237567841569612670549458693322612552690786894040803348918368584687570909841444338271094095538376092160456293193907374243298647566619401345411282671703880752979159564922935314195507068614622309171248187259612723608917850965286377690317814900067346359246389286703157036996652994950110907054013585638246767937814762983988152518338378985639116488638425338016252630316505973384817581719747737310562694093007007523205420155765905352115820784620713410216392699510142502368391514785316454702261660019650232769968351259800028703378642964528203570419557630896785865360906665507354751784024848210989779441304639074978980826928619644863179564863177516706917326220339437237385798175512388989279603612910413525469001996404605009805793753147451445317511916502328981125202149460634638593019510609797951952308138138011921469228380853132402728873417596819795827741568878445167871484065665514239217614632646472139988450467528555429554927741961947218981008123423649351364738497491564065308388320924150637677010494785306429646911111535382358139387698445602284133853249429929925716192414097169075139472688821536740912052347548922886956609288797842330629995192324689775475871031610418937204960218650572139826083493935114715006930998078118194686105702103393707790056459041054342715437092588974050971621806009602744204912397818107516937860001308176305238513296513231506330755916810745009450110994006781132520593664187734824225016368444144082673022068041984596625461874189689372731413014832307845997187855506028290439358925263913389083308616861871253551172548035440064087174494097920569070724589981253986153271114583871655033048445082902325881142205606288054292619163341752849486728528270849574661695736695322944960823762689238381804957546689237197343563641866494688056622458193462529180992101143301433743652887788393199884143096350677436210514983032543668221001919237208197753911781326856996086867490845884423659001635910485068248507046725108860079321531901860791339303660967858384346635857721964383980086089956212535019311051156209066361592799209132998705481248501321215903352193438918210656603833321253239820866856124892802720087884725862707530147877201195789410432071310643299868428006066000392036584544188262896349890554616341820668432813903403521092751463802054785817769427251654577454138384889651225111080661210294121337742472224019687260112057304403524161547645130083611236531960123727607608969055064439393653442427130625474674657121663013999634785359821887457496019583591727362372665265973504832324653959435494375653176116645351115628436337859366927089779554238411132404406054549330761928887148157472798867723604792726419394986210890434077856821129274093532274139282375447815303094398108993153439859791140733244335015739318184734812541515235641928929975114532180621994721185656991241866442084272734320402679858522185746917673106781566863146481191203182225096608514776017867282349167795004960723019644314889112200746504879779548606332501385921754198450877848133688987897704051673893080848566446629187632754849280806038935721847508057958024083778660617363649353445739575414132249849497063389560085597671805197553817269093722725783908117688185749151619371159156804452594440734594922761002026993259874204429116451726881197766743020798333892707257744020479809509955247780177652755017311642764135070839277490103737038418520920932808235043898942756382891463565229192668511867804813620171134674037315589051317379447549433997703791857269195215068668777375793886591036636215285988837644028073138848345420169845829481286166063341769282599734216348735610582092567901948328225212586832462074390186410910224293140627681803980390280432172323970797285947637367099617788787641862336432215520851576440321422897097827033899174918207044415755009398296671297081091136380200545943225082761054203746572543580046932667219160724822729682622861715319878754529939325765750920236840106023338937022912533986210966311543842421175243734802458831017391535008130083952428682261272647380511735043126838309511191852073406487229383259935503562984723719416022703957453029166047179577300621042707580435540588586903238912025648095800390596486079621299067776870382047877344041531240366556126642275758219654520616058414552893747019555521211808666578082737011649853898901583058734775784194772787875283515091926345148039896806773478704955895369919655073312456752696301991866298153284375132067064479416103054860029708247036010803471297802704280155359323210204106813429832768839626672956175511042784334078717081898145756701106723766583139910310463346949316177222349908891120765097327510710215229674577321439762266574146844678819621462465918487620663179717075199513188517806904983021337337301995314779386803922595894812829512237327986519069782916140555577332148555395053389976133827841878841598737988850215671185410781904948868710913362217952205785411420822742071711877582373434661738810367523671038594964563684604766013293495454988578750349399150048497822472349269057093345332175621920616146470639305014732413427526332727886368778397423741375262678862921138842414191306378086356962595429669625614732134047965146119509668388350418351663156450361760528419196715718552927896890286188898614182385064202116146523756476133785094711462048292161580341118917089470274267436332193034401686875991721651649764094139268224539189495110785944674518086766659577992015948887683061871778004839187919877284735678010822791196910465925119110660658967880871431479530473009273603833297911938319020834519176268659622237922844949039176638419038324811790240934243177463784599268541544121142865986789983903887210678414605749236188230466027885741026526552353321947258941922102279105135000486692525175994011555471662047020129209051289726524595525477928539139295787916441273044518041778627096095660809611050215776814314210693220011794764957258109892402399800339328369194185631151407870435271867095381055583939400750415969494061417562618758730601175833211914206666993109669607344417353865470900226442577595511791474940594807235622797778188241774645095640262663626194507810069871283084385789015641234566150259063357534116967893535570505542496167406441428115903910279415814115751463725858470951932486396045096620003718886004266725131402661004398716220977158988599774028869493771592171213575019959368164253975621104874627282098267134655784197725791487406770350351200139003380724826682332654345100968222244151575791474361185084220233747398789906284487684872572028541741424854375519010366482088072562915746492695821342361706373786014023845176136073752163372102304662070365531346077339932485911006380347493607115734003601883400778004899651797271081764255294648099701198020555859539087656488136002964745853889516708017336209893739623364667571901081038720498728150567524919713970828616481549593672314267199625234540645154285903676111747633317256100106458285510135505979437968093469211118172858179168612603799650197745269647046934609201466295723254508067776835991029422822866327588565508105561616134572532774379981666671794620060823536413482928523463318198082435448509345495442300471346927061842679843252078935219534472050429188248385912759701105510948013545624624358515572673269993420928206251024986197890722042681843826896261957230812766910308882366513540626902096290884839122138455458345691980013712826243801429399702733367839521161570140991348064531671043942560538811661108701626465108790986117767970689607429203609507173453384386757955080176067863503759636670253447256504510351050227671831648885097417627377486961621689942298408892053609330845932066020306600254830461694840164984313389348396831466143691375344972696472050381283147004697997577603296479860859935477820294010856977575703427527342412361404436971899001638369746965902527382239249363488344694628271926627691804829675824451710680493720603189747283485219426571072260062974338087548728137891840752183658922224418180039093030182778951216872211502498046649421375337947141894372924162450311553992367306042282875630277958301501686597215256951625565444865724462375272273844965010837566263575606913819721307816857892216039473161995091370304764472489448757850701859637023045613305997390053732128830741499852488603047244803007874576502028009702024906501261489119462880478282145089308519841480144368283051137343780683638563088019792473993324979870613427682183298540819345732282848917963037685550374818244915988014902777193494067588934289787196425743848365367195148986858945542212820230557401518706450231517591199951016681932613003186574241310544578007336958328235731885635640226799499266742020950564506060851869634282023098820709786423072890416486193990335792935347430657241851686825452790391453894577562571242590942305152865712753079601613084273400157588104297734685625955169721886694861406386374969766231929494497468551618255692942522675747917929248553652577821215020789225039276761827242341644504909896079486756768608865044259369134870263624678037151484391004502619583425271152964928224427267356237135570534952593261503386872980365766081556936897633137672307926826640362023802806568938384083699027788208851976970885760541327910118133713959062794417783342510813440864736677729290740400086188147063404033481607718477684944153397884269860458291367411534092062573759061117060594393891805389006532278282930933232405021737770957280450375801536464508211966190498160172441796666869406870514878866701738563651933149544485956934585603804961799612979911645173878192975962305733204467048491396053334446766451903524592595434559909817126456241217671145143561796607706536235831490223977872060150419761262000871221209201884592498451226615519851212884150662224971988955155748054133056629744124009260181102365367957972765734666340948250381010705134984928701356929805166080792866954519466750777516529525778761386817123585238014915120108257103630620664385135416898072715695608081203860383647065971400042312735637319331054446202229907112058627586843344911891286387451041476466421329563323981489401116942367126200271693035236943459698384823759149629375640891907571254691527888375014308283473194963078489282278068733684292194391911601554271557039940279650102105716058270373026653335473005555212960194880128341501221793249757009042293101293662277467513132732888055076512426100425202871216904758374267399408215265137670115503399458937857275853276639543291445850353583854574218244381949006454241174720735059572559841035038768438898757170116665962472024464188750063665847541067675732464151400835305744150406177092672357440489315678800482725616361795722576828312539138515104272406344017319642530172245189528722931955547222075039005630537657771922936968732685770847402041993564642037204089589021181321856814918954247138096528983563389590440111276422666370310135659955261716673544254646516282781927349811204702272517577603619183018143613356580736849713123992991024247539554421895352845529869482339812891833727756650785173163469596887259155711176159262179752226841284888909579345062300572543943073614538313369396707057537548559037078342409115844910454643891283355901140212791125955378811523696311944499074249334559061612215891703028905243995505740407536714574172800368457301360419346095123637620463741463428050053859873210910517296107544017762950919302193343209678881796669796588915978991175911181922754358564455163541080834588223101045211751078251092214235663338523443693014693520188459321273830735520909813819264414031747470244747785139038880069128631720690647530037013567048059617456055381595876625255087366904144199820451314580814236930053822090559174274384255146580797999130600606506503517645004083795038299650929752918885848818618505445885258804626794581707244998907346032409948891950655798477016186098431102586090189378057316853345088496256104590327629121937818013894528489657095721247484808911164133292326219157334955451181625180513444978090416170167550581164244147439605485550595790839636900010149269331580494036114618584768353413727231264153379423570125797362908888713009277524261588727583985252470604463955959424016915382109155087067468952071233155352876234330903808719364730610278049496681213655378936788441091437641240870417869795967721655196819135542750758399673912154312304496597336361161435242528622645738365949028927759226312071692957602129027905978366875021852931245124822848875985317475675011299309486392626305243083458281577236919370102730580470391822794291078962434442100844675426088602630657468041501516222410922456816595646044463833638105474669284035137261345352525813977387734829319061557634536913419127961013684328603899133838384045683578858537541480307172824191185438901169862695896588671675515156938672391014861502884086831658239180337559604223913069121473430778247701513989372652495466153472023993205875743701994325824955290296221917910849950144771401238130936698143737915603877334833088755343746366739919086436311352471527002053169316920406784409317063610343413034884919554839476796896440774075302684397072903424414847079624819547286930773867074096771661811225545963975115724077622626689991651092555590192164816343669134056738705503563395100227618404608581277727310637607896693084784394862908487831761723905020376636149230935434041923507976193668718687818509022291441916504128269649689855897715789312829955881048381310495216591871764725974021440256423132540093788400537481486915631552550020217200559665288991120535594500957344675737516001422529245429947852358625498722875723933171622922630067779045372957871515351976396380465282894553421965599079692436204967899403043224065530746029559681347443166697003624356675587197478075068144905115658317690569914768951711021906623279294507130356184608889309088732179395005915584757493815126532791321999465529673972854822965767719958912392821875712786387922734723841993742366362991445385460261498201348464359866139821420171073100812002276908666977760341807328300469197741595752348171407787368400100464100986673883910345648337633791918171628653582315088644818959394050059437426736022706820436881580240277366264452266116324583044231394817660764603552300161558525108630767521894853525273324960831594624423628610108067078196579573722005891325834224620506511655644531533925341874028247570096021565332236207206366131876522571862223330107708367307700396763504855839669080867532520305809641449671009555293310851699315267709267571804763514016915412800610603553683890211786071921300485938638044112790951994525098395720430138004359072284571887704319949392401412220343171018068343998897618260151563100148919349315186361768231522081807400264204348877573224131109320652332409730276696390548563009297364166713494994377291700249369791683836799579595096603813541544302731324712208579430746489897590155220302157595365173808965785298431607699766918441233264085692463822576284655491627147978535483086802553189751586047782600005248781981718411989703964917417984794641746567507174589465772866366636229213762149869501586816878087862999873098105579841616409835699909011227077283474997891897022770497240409358678243673498422258747237480421926472142649949320946592308776215097969025500023508066957692910154961026119472112237253284465435585723131769227887990623801821521334821198631582794919182094440663611844839323395849540930323392607208880223524428968047544761739001073552661149384530049013192672172791629528045883323697370399433949049242167817025350487334976895043616864341807902327398014057258619259100740288260846575068450677579716271066414220044485586198465219568375608168169220560739201746619933363421282823343369758575949006632165147384428157899477939733953253809963949836264929336994983206092394667681931290868670651161484066182058924729964710576966189308050075380891168268912364225189199099710320670249089840617881324054705126133382972691018958054804554147537841313509400661635975171655026066936623814445427285380561832895844389366120636256028173160751626866166482038922585239321851946238329876315892752950564215393393226270926142992378071185391650558336232713673450184757244796287959439297270929474728074577789600178370065125724154571966545084586560232278754638693426387137598292946078196192153976532926478539712661039375109331251408862169322371931674757032843781889889001425356393622061494561426031153095765222399679709685387020442060342352351532433220159192315002856868589312672045161624352501777428827909239625656499958273464510173768237796090780637544920757093271847971173205692306890974647288226881747387827228409733391690533015054579800402660242730962556433409888215541945739265870345446797886037281029318562500148888291749650797010655312604925850034028226344213621582774322891575122993168577172726702899230753372181291414330855884445422798033998015958626137543917937276900120424670987651013678573949641328250820226567804744609068680346122273782435770974162382742081673387410164709232843153308555707544487131345252776117349850151199920640525507736317193581753116651002484536562505364399134650642238750742930576621427991045421615625895261031758731312658396541391066540294023342167373514555609744554589240362264079774603639821713923172861792194345149014596547134050291605292018705881469310923377338202129014224758018230716475418043197885003213780182144470311769992028460156802698800130802042489500973921323069751796916914745045873955128227905689981791037669690355651861985561368368434767148072514052636260363370999859762010382834335749890432576813858315823160779438630266875850544423145120071555454740621780286071660342433146967782632954379192649784039539314734218302072500563382732811274925012658676411432603914002115272500488252004057190786224203907203786190577190313859782756969917148535937131318330989951975716362226806849328581899279832245276335834393387910496121871390315962206285693746221997630484659199371102775350750022702604517844629503381891412900910537797772430253812402722796674830667557416471332784811398378256701963724338603732631667727901267856907926999196635910473851415352984232681228811348433600212409125264424885853217316454397454956897349261323495037385070750292249715734154820434091013903089974262175668196929102349879063313739022750562663653685033215586458769037084364812302696011827752294991373758811985823958963434758821666841071819260969993161370950347540121144845008547652508586182053821973945676716097688105486204147298390309859465114008675518849842529192725471004703198490406857484903937224773503711333001070244708218496453077899705524703706381977703042438303983102812149917791464313521007974829503604665085481453841411889265053162411600950825587615012063649364046371959966541772322527795703248036054748486305891671924604445280940945496111480656328108146836215846248068927786681156678880555171980584056407720516372263257933983350022893592450564036883328279749690824596214367941584767458008836276577190802069044984734620760846616080629848284193884565017395127090621615341352705712152626242608022354928091492976563091437417892562196654621926475142799604252992660893609125361879442682972732988353888764904976870202599898989293571999522957904715260799550448241175581872971017124951391521278542443155759390428464712915300241822748290710599475703829349705545611935805375170747710860681361778085250612133900038665135422850323254438513554911573335092718782956391224843884391074641912405452000914656357501850469496870297895953483398039293212150971266934346109327648705183816233661065359142494432359209252303687739854205116433933207720536206371656208032389577499671719618442111060991871668557044084382420291139161536220100640813201363594749177781220420920416358530111076790802599372222004321111936003723911771934777367764436052919795936695954593262807146544037256192388531056959633778638368739572959683280480219951639428977451637489810054667272075663854257575868068653919278047298316514128080442294511070601035891196343456830381870582193819313132307493227746965599056541409387339875741442011190557477575700174026754162311681258185915139262013714376784185966562969554229764142871880709297243244582807435512366010858321495826851362376716293564247653548141844977283253858399113264739742358033773443857053778983597493044969028554647269154102269223134174073442190616265299745608810729751322062763843580729587463490849485652873483401202996001364213006082214686931210060819572204024199221875429927817973580072069122031483008689260178231418109310063227940148288870039217256009047733226770968584826323423177963591957829541169494293328311847756051608965010994763639430751685033512884924526002839418004899400576469931260563484613992055065468696598979949463996298902421314100079207693628289944121382246850395730429550468615950228186973980389112022158259334525082155671076913916945970341806302738927007961784311583242261415834774496551274198132801180417776225069819479618796885313913631499796807104164592846982657132323810133391585455397615640111250750411483928465658194796514355298867846459328652800693368238667675675834248685773457071321171131883752548318817128053637385429446882266204422131805147756798562185493342905820152358728531958220188567337964904463598306643263237499137544119483689400411839804952793424784680101605724682097169776969756792640236453615931105974303335536213102453571338685820541549720130068618445789615158554572666985500633165700791934858910035402413918488767500643108102742365577864213233125324478080377015592190584542820500521414946335497937157619402446675737376081807596447293385663453158127758117662909206832086139247597051207186671925092460281446744490968363120481513073060564346604382795496915305292528768151502552037034279827329518151282530067121672290638778598748988546764175022580158586059081541436096939809411987930830831434108300071976336473311670769844073507177301968596941209588775373115360947537473332204018155273204025550509526602812954598703981660743257028236983940344529493070198213148209207995001414506608405112540464511919309826000335702546672152248068617074944288064036893855715029487201253471897234973182509684192353906025965869582664523944750326941654454621974794196880445068570478574615944497625532258040703491710845040417364246556455131300021545695208320508136759130171388506612830502822816808857252136405872969728601374771648484696976205417527966952890179055450621246122214468534374646734097751107705990302233816357954440116359130774797415399615053374317295464389221192090236933460634648393979480962017202429447187193069256898586249839788727121376124173519211670947270327107695663336172255147819214099145154969549220355629494628970374114549166237460582054562739299054074786492248713247099814434646280114896182296377825659153561104038005042677083974922698902402551587955009049855586202977828767096594515347396907833568399787704760881087159789609571697572218715911376678279834491626270604448110468352488943036997024063446564926655875195103150849226240593716268884770313902103406202609475081665869768380262597729746801609089357285732440723768838336069580347236354030148000741962991276178243271428756480842072593450778261844268694929539341088041483951719199626234549324179650888270790244895925397992418064138718255079438360098185517965879191520532458265582608448359702168255703999306188744308357223516462392298275996387531129763840286863131163853137314154248009559200853562554225024786807974324702999752003417446286892740839339142025154119694203728936780310500421136189549516878434592847297473908855551777490783260588189691898969318429455038284305794416371752079339296340530600552115275117151076485882960728154201791035258937236180685230673949507498051954271103312099484678729666934161219275416903060613702392851861949747783902660869056811016671956416208712046688311509991866098833079546687461914595818233863400693217820890422917079232300234561254183539515494274145009236601767570064726428211150867875350867418969280193525222672269535069331149958329661455527602745459814600648578563212281706718936667196998182068650631964898993180511435395623869156238952436685619398871430853071768620099646871906865702937983875587930508954721026671784757754223783624278852368049006130819553241898325807207343011325621162413626598987445779683086900452840142495831098608313816283650719117619879925683835935909339066085157132148609765793554841364843943760735995166289592390516462104975738111592565335657981690737450959279118324185656674592561950585654895963805166421128086135045185763599218650118294078612816759246146859836961731319668042758454872463666325498501811681321235658665116038096868874431334983721274574441530439529943310506631288684150041322501987751125911301964198811495494308902900582919119889478532762035949840047870485742007383987907759791907356831498156391342752571883987396969736699014793426919830825380875647367571649656298849991766169037994671864778937503466398943194403582547383791714474127136250994148922973118894227999513478547095921037085942862064084130631891914577368613992827016868362276372976442176343634674648696394613182291163843009713709167281294850059899708568738152394426407282241069863466544283890821872101389107394390243606536361908831102070164900553600693387746511360730734414790740681651312920801400519504257116559631779626744366400681600634406065619757862939254084345482572215285498620945370465502615054456092121938284547218187598182619968278999126715757236573814081195115295467152253477690830132860852451807629025412144581798251223590670847113873594095344847529570034755496853654771333402731859794980804574872507327187564192076576206503545945288306436886620567941050798399893733686605182605964565308986052870931671951459590240484626772653553501137119535421750513809493624189229206185077142376214108204160663640949782706104464280931982733829899800013245631364479389048443131670418742353340977573483531348222747316326703697137295870679186020220370630047392338435708880581452550375978395249524293140698778293011099970066946889641568167726995398680200829677355324694044953370933988460753943969037570958538554850047547597329463436085868077352130590550389797377328310241827227371431398949780717865786694095860767869972766573877184038298329431812351697534305435378723644786186061246030807708470524498627068596686346554453009034334843278872651823991558637393716106215102431664467776272605024965265964749396197492667618940882133865824819165947223500679935853626067049122168147414095811676552609116462110113132222533785485802997394908909487756796344382270695565846425021792151638085436006550441354930956739680773196023312260370597688871816670427937802708586259166092238157709121976822086231075527281617605343692900237960191026440066246948662162514838795257655441375014536428205343747505266133555973121729467098954586079024652639877355694948523581795647260536633254811132268717111834193809855487818593331205878888147339429131660150824696853445243337573202530654210794335681649115030130700274096121966302262310148300074402898580293179439965522777220169853934900716592199831183552037752330981638816579432692688489894969021250278020140180020758725562287268005511475894793147652508942213626544338776399390047971392180100787926749285330554623439348222400771175244258981893711396779084189130999685915170212464087394524806995656438492087222442595300668022641770756855743994576089325362732986334739574166386115323991921597863437643195854108711077059581026026063618819990252734199999104340311676483908065446234737425588838067269525473560499775124059688567900160067588902072805216002608233223795904867801856162929895626292219328420825401959678203857734077231228574416793963991066035768903030441370165343645188488285593724455732310759458961528489887137058324921733708420651277041159264268972184911497822328434958829161498572229446881191901215878602477254792793619888916397281047778646882366908897028218966449599948774186501178631189823892152975588225714143572219815963502373648136313325663053815161881868723827237360916090490895501987394414951248050309930239646236471567314469577133294594440091723751004243927664168051469942819650783376912223748935394694299111110799549548867881113916217957446350084440073621004391959754130182210832788542192119518061776548914345980633005334654058067082436413265014258475172280774977709717306061696665460362997123099068632306275056982478440482341447460670860880979984303636751945075451727090679116532368876095638121594548910410571345562192804560078492250058577487567703697065378228232978955151135572970846595827123028673115907045937185747080806074951581201698468462317653486272908871825879858522675765279624321322626508244900033263883399953744609229914135458831145306274452489003687297310513066610753396348955671792007798117636844814646725652837545523104813928407082620122947081843186876586478512418143028944842493212784203205758800191197939322159088670861115250195780679667777233490335185597077047123601564855891862028606386692374964153869929619778286591567755727176657172860562433026418538347918928296671469356686022500908951604951953844724214166064181168912612846944721327033708065989218311899581789487369582972750794573861710668891884787551265050313811209073602633743711655816158203172030945448994612505321119280966080227187880565997498339409170145158476531149095820595946220569955531983075486277827055597927523816477288263692413381695301324310110110409509329447922959552279646772510505964504817531628052406937444830359484570790415127262602084315606808959144031717670222548886975416016655383675216692695881447815610642264659703364987487717067816828699741203375969704299991232793045077045853969388336870280862182501568358762157450836682451819833167883790821814694285055141113355540356298302211091575072576221804455575019855893717292359168135256747295126783029611660581339354595656934136586291656630304823186319002371815923496192941973586052013322059507179852700919376032283489893919973163292387006180955514022436480033533286923121439135433436831234288051331149675542353070677748969331175071346405204324584162296834965528720012754367840811152375288174546066028567736059910579448647776849624399401981575241406102272883210626880063745360480049498947429469857899884079615217906123326440270640542501707358045454958309365253527707053008362250405850113930843595310129244708575546803266746478021683880886893430425646271529730169108734994049730180717579818063163397869152379985581203591254761852659548821541560070346600263972527867035396520676123919313623402749693598933290193344099197854172147118235904893073097187195539812233596846537575424175947579279786066712947444067839370860777770639447250010351952663776754158815625531059146221334186011784305903689494337975648442006426851175319532179235653001190742552293187243723700204719973237701085395753156524285160152710152213705437630911079338985371851299522788163350305738227997804050195622510407901041623100129843156248497371659185041139566144201611767350962294237807859696554594705226289078191349010272139788868807846449198279434195098691096394505461590365086238091396421694448639199039914689551677762812648550299408262315165052139558980860389440618346399072725459180836392100069761304501327686773045257647609621237309491364334404288866767142419400160952903891715807095183295059317655419994253608219968211429392951792369470120776592074475271020432234425588287464987738128743107533382589653635936017092569817276759573985182698284987405896309905368332819076190861675806155407728401608016435623417469767485601217884036395958589712652253610149815972669580383744210528146276549655735647750988113524796932593000860988491650352946012133047007467089142723839273486644526347491319396596282450303359569907503607251146444852278489597898515250761918468987148150720415493338779982372286489355677771716287368667134171862117933210471532147679099847788326651382421448785576125613906531319505683683558066114956742965971666464537132587906908656654888011534268542878861423130668989535172842036564135212460450743641029643003512908866183790643090313963679003124764007784002805551774350625798323253511690738369375080905356398573689909837721939719174297979500683358439778838737076346828227217666743197275221187269574183455202312751558331361013326150321356800568776410554890184624353531864496878755121763903208354945359846598657907341082330805532047305198079242783938606119631725659580245005435176693841429813066143349972498008810922618823475462901720127634584308671404130043180400438077549922291125571683049774738857371048838515171901602024099692875234342462809575622338389922619170010559552606292612929277134914602022689576691230984934666150000486282455783578859995969864904772402286774958261375939702252181515092441961782207513087143945224316087073219183324435378289476820236252356170895144175080610686698859343070103057987403172113750872286150108143505318147090636237111776853867702041942679937850755539530665198351233089740092305025784535173871011485507198345077823822556388059461344651586690072195629459326414640025141879429171595715988538862261583181578675882750250733243259480204347242518932379086916912963570424646752568103691315402213446747791330062264122290327110493409951555056750487166085410566414772292424339104203828179219948755587775872697099292487409342643988856942102638596930559050772528360474307444904447933184436951828219997261730755676621212506158353237609625531500166086027959686204769222794076399533042385117423558497395815599800503211937347067312652338696094766679473587576002711812430245470454185965441263560708753455128916738368944725617124389055052033566333411376861320390303863909195436957629859693792761563202980149641291600208657210741558842538956309749832804627303982225409880456421006129781418853452267266524685883314061839377067946101082816118716982738000586123496979413169794065691540045980820975906834923549677546282830955176302262585610140533666279217983268706012955003821514586150268425344465727089238480698589814605553250706496522985939869531200293836137190259843299255084524588192111426693358533848135450751766816778337844023584412949789495368187623162755125810627689196277206923930748298759881374975626991840458997259643038310705141834382265366233107074976478303888103655463012038481396600634620384491501283320548297714142483971195784712896717545321592159408021481586070797381282377328990419608821010678382808755286869421892998756447790773284326629434014238174908803702234413840160514668595932398828972362319744653286693435547115430146708847153883510138608940200570524013541003398982612485965768111408743904262428100339933452709566106104475367914458456711725025284569001225075809114835234648173002429287032715903410478074323293503574427487448839988986983073345948711290918992877031250171541591701477064750387096501810816582917406710545618168341910133050431478535588433980858051006263936636886020230300419043427312571065896843044946048778129413490909453694448723904420780872549297591756642874899266934409261164299208192860671839847284481109930427392895941635816523676301022940535407175135923726713270360142080714939200275164572375213249765230319882853992885213711523946514120192799229396593652085606665608283827522085273114036961028805015970916193906797503839385222119550916330389516495953694060335383021025317227729122146294779916527897773866572991208867991786451728434283858295294473493510019726489456163827263496188244139928390057098534747111319377689506977118869660391907327470845077165311224075391938231498231630526730927334722952539703797330978040923377113632727494412276648578534542864273168627284689004596245003501298569875249871346850318681714216610123179033625646023090321892676424377593193280274892997971302683402579895819099858207977906261998897619141364357773450444535338050826560442667289773199787050515964676659685074867983463891285904821566487314717114714387192806459375842254253410981593292706411524608000740708988493687086799198830147017292920963274828728914972281703294975661120551675302131534482550324744643636242846048271482073423282125185194705894291551912028535341991016079184577775061889955141390016262412539755471921568287322824681768317676717457742032501740076512118541972888618089275193201928871540024447158235058579446376120401546583565118741628132992633783007089339226518755179926927253976847310061850336916596760602723556021570980730480122346571758700592990503045045555947942989746374411481363629120632774434428752316874090988906529364112477597624386286510321493667704214142003749718423838084860330957040341821540588157238745955466704619226811435421411008015889374010905637191224806999920531960652512379073196804328175892562426859009837046828019159745735853463884665945292277045862442980090571615647866755315728477567588899017081053194368601440209660141042334933415956763782678518361347312970079874201406438225715160383816742190216304447639275990632214140256836980593519461174966858153099980790218401587409978944803635952060967066770983245581574786472170994155706450272415389983023015753082974267747985343403854304703867089017733791922109297757619710081682739242456227236340560345335709151522030447238591821985321619399348752578706763795161228490520432519073564537098513740941004690825222737650544957913609064564822970103262794051321885066074750716587054652920748729725727768513129710739392866588599593673911931866209039146018420920288867711864919710417133796057873374731671966921231218939157479917486749706523413544275962665994794492013060488062804648837080856600909982217312824141799831242027388812552504020431198386292161562509510420373540653560519911664219265367433896970907753741543627882737829594709421632570957847363348440927708250168921584639414613200545674194707814619941695947076925907847825921074530570439353169599857932284005264985634279001559551972554595453076827004113168431086221756859916489477458489628291282492678133197130781318030875826630731671572158233220795267529190770538546001997945515214447626923344854358521559890185750881433270137528416640714303574015680425205537836322557069372043393711451320019143797932894601044084753322253660682420083137494121535613413480430071425067313782389508277108336758127074213877532765732557078550656047230015581851420448450089167450171213852928697995387671374265399981683516605198872766545440738500428144038179211278157977179738883890945361386093686584694324707044307261831062470315280520991687619848455224911449195638023146391633633631355596733013030180504691090917979333414788823012986537527404377281537045220260800955238971703535532016522180030663508090093630099310698938294296215877506291469543556285010451845358337775283517995507958049305548755613740641265248447637593069627451391109989236987581000685248574044149743332396414461923659529820178354923357041204127977899759067146460811455536577034375477993576943484352350152877026840868244460323218685623187673377837458981802996989964506923627634835721550253187428205611110839763479864176079969079347357834713104201594621579678808802305581951425190150825737966460160834658552524085686959139709121427470092603878988979108363983075212481513124316624720183983436488982436625581695739311320035974142112667326406178354262505603416436342026175409920771803631885154220076530988767256340322114279529370595344278466101623489965154934655190029744852763260042243791343479845268073629735263280422460170510075195794787232365803544199919845279999392713144885406281610508359326315240817798615765872741034722290276412733077243973314322341493435098328196590123586025794592249546400689464624304121607901421621379945100940123974808458381212095785316081532191472097552773230391004189975655746472860741964812487331961856348556574107157405655004796441310972282320048636769371943596919702109728444564537561622709655232247713529556764047792319938987757454901521297506338874116252228468070759559120914715779960362462990603073040452306485131753775921930678291414686764311609598074760284654338770712570861825472534744910691149703838932521756075752946190865732448908081529567126972430708517174448199919209626184620294944337443861852477236070645337106415828840382361525160896883495429011001119338897351305757815407746549660851828714887798392636274585967840148004857459718570361654011006204916498179283717388659775293864693725139422907262174970304850411253431939263194283032522521485796663163590408036748367004934977452898878442833680383174553597916888449613970383163855911117559380005847167633130724070650047241947605598319471048286136470768145292895342700214446659949408257164645478726012998318462728383211602168494574954172685322384010953533190857702119441835949080208581186884518335099542292607203743568949922828943268170793311575399471415864240882740277370140096290079879744583378133212284451372060953730108346683835321925922353398594549853952447432940276822823965340388356288363435305929822651491439438375260318655327643359424283867680298825372327966598668018210486651454900149389738972517986457502781394183792492323614149985646927535504361392566662948465630115982717566763074747991898127932380758028082806369492974362943802417766924151342012725048362294272585986990546975136101003746852155910768657515911766262182098666810754746488053024066643965757621192237242556038555719011198776301333637869458919241799298655971372068009939946098349140925605005961068836580741330062605142470818619052615153150566926062771758361754677781361242140291097436793990807084468205762767466358717999482189087797328914531679174674832620192817050618959088573560509012280130768511965625325007177649716154183431338471374697828113430636870679007862228703891287235249494010867562330682008600916680698617581053215605747811272666852039461543688843533022958897044543361200569836366556551854222325887927916795062995440894728731524647101462510234896589863880791065187414005020494773796164330631360479706379614794326519861283271136750208911277078405733634465252712709062277875205808856288642363404571605961568097541213798521005485640491501482439230223875551460318706097597464654699111425242869698538900538732937050785517834254314476261659810178732498016162393265923001060624137081924771274627038542368299458731521834510404176351787203450538069899197432218291535785278441038852127602859312769107635266185597963794244714396409964338510881397683440505350512143319536460256219257557520016868900513480286210412886827181703339224365673168061880362096159929431855691654267609049845423901026625968866453914925391555201271193296423853728549733636446728787196816025264210589265772778495931525693414313207825323480107930632460043849173829461835048578729147040284443173842762869187643790951519964994673862941079615121921763311850284534532054414192497700565646678863109817630414140042445183982738111781670367860430719246619623985627495898289193000964608664775667881110970668739846735105706185821820113167849158178883232099481775918468501138065401751379883750958564924726813755978211627866642847700808053811009633037274153292312164170849306447301103357347554880168674572333328547655246415880923470074164053173641827429690268630158562381136447336915413946296499261605775464000946420961836598761561623578038195211163308708915662264308828009933410999012176929197941760939424924218970601072942809390043805711602746433809868792320605069879599743088661144400927262632622261563878965134780797054016238986468980923430436710004441383614571471969740832818325702077265095004731147272968490356900280224869553239051867755758632622905171715147544410591595530461968195927887077655253396394662745712075312573618013150437110685962980128544079525084148778313629125192259332742213751086253055854605538077124339630916602413205895886562935178994544850878197018741685441661301518248395052825472091325835694508028296615943576242236694622426943814656540930418576030257275127144427134549674065346786641676417823289246741688848345870528728841513821191094875076356529312125226648429232570348618148122900376269080354020472271039805878630680830469041795044837195304517420501569726392491693196769745205448176243089461378916373322529970211047706468249946901487194971058453091565330651650535710536176230971877407253042867827377403569960163578508152071063760500834150248861441895368661704523151793621089157311936508412164377360374818779457024718340376654721802158829664110309233922847289088986173216287200948847438033788287690966970775437982913705099059279264793864039192483799524950490159466844153791163982857048349718962485322687012721957119050989247697163350609812517194977118607194100269584434083308818913741129837453974226395724364858599558582343552150239960022696756542675924714133340512874533379146462274357649606388612207310648131897076679288976308335760419661370418653866426439198973265480534138638024884589057574389526035111423136195858624501192284905452430709071521461710284327784578158037195335962564205195404281531375607284047218696608985771263638044869375004820552776543873890891316164296721351498277697898400045168372121251667520020873740038072536324459251497550584149953476470090410595328814694313300776082409340874633293510825731260811254123093929497153944507880943891868812405138100119163795403991991989346812208317554248863489369279001746438754923588135526703819513610011973615434562329096312460282346702989779730192382856639306837216342964866900182858819577309352118855157878027323915959398460307113240572406011904911447677906753370694218068464676328966772345004812965053203095064483796317878243905767710904723292530342383987731556028040354697435485821176185833675635825429217063384581361308049258453691172240227107682687458213305396647374436357706441246786080669765485452591943066661651967942542359167790097180019017021608935551410338288172111485652461933826741869715839225609323065501776821915056670399876213722312242962539534643214806128277034521980223073022905881985456406791796709247178015111093293817375330493641800295735078167893376860889787455958676302923827314182242018472578050257167088690410656074693181160235393827662068647039444768511225398771431748114675319491422120549894693523170243215715363791226469199317037269946137979404253380311869047172197145288310172437099339583434409977139808113836558880327866275270003201905988481634957683947283027694495448125792346248161464856183845899724667356818880508903617172343618167317870198312902476305774410249542788125061730291920704954828382292078042080937343160464042100389247797617158866185698749437165897120558018860133913371281938223599970880711382971921414624918029688790497928329025088280108666829205285615393514506506507033809605270515621722374837504652571020649247346000038050142081510287606610314743841528274587082254057107154323195080373291105333007439807617706609683738712336663405113471480898826360487260183728440514951780072018687794343007065731244778451560896274772277722538771561795813719973381804048306060089526335183161787037693055547021991343028732877379394994134071868937858819421174035566463766805794978644441534769334012372463933406729971700256414514438511147137721211262801633148799309032639607037781496214827419737880768996906210560927719255450815717761452318798744303139437848910929365970205570814000126725674531367909058174149355479899361136537077595791104486472134975810674595660241742540662326131187647100470852202650495828807222907291730502189073576879821766137693594285307306107639735587743591405167069584320474020280779603268968210774615742300436817552567389778450324369634358783617296220422779384270337169263271385092206225018780579619512862626171637520501907619061331656290167594797610008735210401826078181744257927983536388985464066600863931715739622447832014768454886658708369667247492312912038587622523844525168244600350537692729158212443409181933601114703804214778801591961477651712331380864983965533018947439508926136420994994262168911407899749656564548070305506629652114561026043489802561360203078276693313126943843829475253961458029678799596993106899005478672041595629860367900156718971467505976478288253278356116604588562040958409323225376763286068062751215705791110135674647058279893623314648335736835424240882417995566953511465023180389065416843000488818423844254049609085898847213903843908188353346645123483130177479904474339736126244418507393296925215894742021922103189553940513543495231923693703111232515803931013277195753650313928800379454027323633016263408712160323671926281068743485907117149262952217699181342197079005699250829188030720009063852610102916897402088465443535809057477670240000096348294823875074324593045624655888499311767844413305829147845176431217248952630438407087707172640140422256887910901944094709864717837484384862748651525832521118917846525388047914753378198340128790008484268535556348241915763390890773293105703515135728590262498334217032105623496660015135147669500612818083754787952288542147889314248893845542483986801488264978789619276877326209598883788079975791208952432457027246718251523465691220334897442136177507219961262803237214496691206147734007895598706547416630865655937892536511457729061703956285615509281974498592206940890937985346166539262704623918971738409677018725560124501922959594112198099168632496931651310856134830056385635292606795439561941442172869678076297307978979648861076156932450263062300267709793963686455672690141865521444832141717112130449922188831632882653523081525047664313260770266518369635591060473991608301794722882264051296223235912925889014267301899970575368151561031085553787089754121400754414993853348527356072803817554043305611862410483499218698296402230247644870528723589192384059775868614237614523747494378895122423385241275146270988727551501304008979589231310979320115024809671041512079184934006033257516572355300206639158858973025998956867466140540554340842031979351410455485589952045126421709618803053034396639700435434575728302354297725248610230438457933472817853338981384149323786748161902161461839203653251872465940699241877780914393729531335321023374380161450580770147523021991750218529763379516106445757907102450269564429646588348720134741295993196721844911733579206874696222821486322525032267167016749122420766353799319025958497396729942283930486744909770620656796145809127682509138376755466842807655748243484219783554844317785739928727448853572362156261502401100779103344797066569973070297359025899719879785792121327334096089398923813198526565284670312010604726922425875773027234886391581081694702522439543369897650348194030635841728509040958187281707497375416243244105079013595194787834838935476729813334677454147231464684948819813656017684544408685730343018037563966921932873488229787149350507722560235927274764568077091702833843938947696551143354863088568303505025427090277191886955003038426057345660769287966967926493787647589045876419555140003179272426036497258558627036686950279086099607040845214039897171851823742293090436273288115507581186235938676325362939011660322561775452716734670867474057633325383860329071331961860495825849903915383262933296924710842541184229674958516430182177478592691760450118771887370220913012725071981083864923781976634821131732239786160925881921320994989752237622609177723661084422762893469882630176786900803028613772879861222849635458718442530612420668474613101806999559959936573560786511489771519747575141620656322655002036895822951918746955062110469554586031951234919161823043721878669252936499726811574506559638456751335040908448049257534819615004192527614897974961157298312889149874252455925578280783590707455217137797116364464768542871310544018183073138547599313097900621033445343027858305727224872127203309026307086420700781621335566352636797666572004566073288900663616092460099752553838695156253138901297595516571249197933327422036998190918291216890555822632370327266085500792575922103114083629050940032551995187135991823622723653269049282364605666524415367290043742215684094519972502675870039600995650530084015027364451583742958452053506675042636254468474072393317867448924942009450659633710496606372356427863579232520756516979912208667661908038747816406615916618679731197379825682234661088403399265678959163506183217915816032241707438819729524665405536655655514947436140131621902596670083229020472599852557027413850108421472219825408648708902920080576727440752474578155696940064087453963232311250728219800498132040231658368937320370665373562337284356282999028731445571502451178700471848213850153048987165576568382314663364737291138358259821066496615877001500113601794510594749244297829999227159297584472337516989099364099204584308117080330815013843944624407626755628828919572413958346425717602642903461580337875535335355165703859223388574184588714966580649688450441842165425060617267244630255199768683369400235202242803176926537970538392129598291052186715185990214799942546753148836979488541297261343752410768016506826476879314702657084610719711727921226160469210480352512575944344436377351726330114594041424484308060627506213496453712782693981971871066706371797231937807241117422743140257340098269894833567870713526625621330499839321489696454446394697349455111479564811202124314147618842592631706334846166252229416972687656272542102186827525510842817649101340260575633683005991891233248475067033398981936230751664041630511772224272415763664241277236572275191555261177753083230126965080362577381985784597280535281274256418126543313095773353179825475601520180106803637796936086090087720051993288337615611985695632520940015448395493417417578451893076298262768270035172464905579749087704057001214990451695903671783354529528752056945751224589477063958677136257240823976353363736970853285674326454802693329018419422329487386443398283937727724942382408734385919833171796242788839831850821954164192000427167944545473024450452544821132279599364908147928512652748836967683984277231114595465479513448463097328765684926538750680606816119509176975046237009281986815211220088673670611103472845050352541010570568547590451911008033332640001476302020213241719207468600840263866367431747269169528434720855084858129395147612355225942200259770978257087907707432984219649851780872151932623958040732723845805497494129706627759626928459340860101986743258938864941910122153671324102381959262753851857128156300517216219566155555960877656649922771680255073056202739028093130253330687761935770953993738416705995426314301049358541528129876442026561795915489709245202684435957447460440934087526403348266551253484935178484459326354648013105587124597884623681449222922998467733195598353048184898897763809203731367549004024834284091115304223705092553664662354364802797085347511791660325894822364130217427148626965835112686147632917743326541329409276270229632777579025282398661381511181112836997005468270679303712255400588556295772821682752090915698876388928204838295609617353770562147731168026496052721520156979076081089950741902128120739993249460977357068151741192473552907001211574104286351472325024671441410436602756190567071778611506374217093978958376854405831537303709823709532700649823990199291135020614857175243498927317218346997734707437870012911736113011054790438356615195965938820285627380852022984699965222204965033826353787604950530127747364633449778475067328450694990185300854720469198631606201648390441371964612091369119317562009206757178649416956073108495781344077358142644221890999206892064742646282839591662077315135557881135523592193945171885974625399987075367455740429546019378377367213567721662373502154600106842002350998651838922625784116814054994018681421529022378315768873384209665129838661819000935188143126374101924529702527185365182424419084562295102541320051023268857672519040547251282454950834006371366015362257380012489505007214346374194867749458697089665931502515836771927658580533093589729485626391837013538718326974470284629726735678831338312874068023064448555596352453702650898078087642869813194339723055336792021440223470835801585262864161783436734085264308216084530930037683595936388151338479305160657083582211795596046974620977215263047474408322268813236850660358051228930762775707634814331427315757726380994500550039547189005341830404669174386393624576369920343595263775505306052232344705801788898842039804612085120885855531646609158318343700132423778019471511375526399932902788831828280438585200398893677303395566154945481104384608455311062644913003294426535844772519984501416718462947691542818803162125113450085528126333983726914063455036965446772152907003079187993798141145730162226644779413044297605656626760275136600148813204484782406146294161640362176854041734071499310428441620425728969640017103637140314511189371551577049845609882399227511195245287322881156351601260596908917728179247129350309637248336949157602358231795694763875010913448216604814428914982274985792097805346559126055852915074861778038905691197861815429713998165981381747151729112629794747694393260810824348853102229462312714446302555228582205120884666416201152897661764961890120794473909898494791365048142548529533211129001635211243660821592280817546615635450764539516597988515144150761610203624745563289315542179047724369913502429193626437384404622660891767220943591058059624924402274258446699174506720053154054743339835361174116808234983518857112360715536527404676016372022767048529705660188992736609805991214762459222639957343473219314963776575216542852291717516476642546599621053238570602422901372872880914456177617598500748283308861084017738045374577083855224306136564915012369497288763730848704248664165617717157907512116785479902405543033358461332643998978475361951269247399097719890680985470650748428519191156235490243161029544415427158628398258834271271226766405360038832660717517511445275974008538790235070528393252990144770563831920226615073894889521006398107071393722977728095351515961861460146592726067256935735031891601495300491229270973058769204257275280857932410661943666083001072509114428017898886727394132021908167212331073022319070680101810894212555975647165996288775267354625602475649273705577362637540482651354440897428056436221974477541531493563077306937789002298218608866895682485827803480937731278039165157480429904700714360192672756633311913820533976915691643707748803867268114924952886295006472724422712384503326822569221462632493049458043931075323354472881044837368714448370152124628116451118859999153929785120807525194037297394245274672217467373270525853209586306793886660242650272102830723285740585469346900190360918516132413466309983704951399471644966161936512131108691027777232838381297904989179213532761109814518166858979715381580460161575721012021427339030867236899453634893742247533929178312815146086284706337028454229986074013793182315993597423011596726265590605930737212347444600368169460458414981617680811776780711710283370758688166110706407730923928784172323780206202272692892406314478924054323268926258049400030478929600404638226233440961696490647295955387061727421775151711765721379861879863599030470904453856631181259234032469492549296025431167586352189313147843194554783303434434259207307360604550728043531500668234266906521215582762372339203169021151525251279957243267494582193197368115936756668695070028790539861537505508997527984584984434999630483839372356991613390733151928132847705197949501868209652014330409062904866288831813544354602912317195743551888967058116321586035330737645244945993351402432925682805008521299779833303583231930812793667526351866523185515093624632600523424738828865215603274975350238378367202656605700415486267395906853974664026202885538435208372915365494211408967195892071153118591173249174031498041143524157905564685820753778302177709395555321237652779362238254699979519113794986592631437721809080029656112365567449308659670111308651625768351689588706508228700744831843357474194983369532812590531403819409751698489465522273751177850995980586154834501000480801272348242155298303188813922597303644435973230219782242240023790994183467790170955378619129535045256466685300880247634860508640514578030998126131026299843367641342919071775687900536587295314930049471905253443694260757599594526169455185818259755925836281779814306578978848056714653583313644942428793335943322787477940628718542708530498387952840121335128696653354171012488980727585485248764456555937684947334968186420450014160814871994050821598167408563307185270795653585621926669007468242580821696961447123650207515094313758329491708284862759702062463860178149668129329109331780595861455827447866187037415242375112934122845199210618477262782997404456101760832202688073780547712499504041112387922766083277133494104753486321592521561902367242323365851142131811112719827379839827543181533700698646982847762879926821705864521773213376611203931778740821198058516039541461157969636359018944507499446722669217955667582220676830076868090797215288673200749721715194232092117350301555289161980062093282385933517231632276998983024064898572113415404968849735970597653469814342259038064467638718762348033887364874497067870588458759371871172438622384179212689639817465770121006290156717350802181439598040515962332691535098313222414290753126737646643891245450254781514444136063735014911210655171245160585777347354605906463805908739844841940592124506056745004524938191774486445553907091217603812272805573554280425808214907425212924154580852176701166534345927392286319770546480489578050874497740304758930702801573425345983800553168245676986908878845318900373379269220396810898970994019599586243940411428033812046422781872710362683124329846751004481157804089217769001394761136302069823128268047182181152982173351445359614127472063554023502008350068576805319330748327080134780195216213249609142609751110647805715797043207603761601873839068156554365328653198724910728220790934872788875354589426965633611278887913919560050356868917020924905081269830312757002376058763557989365552086215220618575661507875132081511783570692836619395298213074908148594958628257204306831060582971588136871028321638744284114520490104524347611304426112207844323584342720649488206928701852348490308665166740019896898182776232829981515735185916302810846701876799670255371582065637969977438935732429642398026757953115121499677055056035221778199424332212284781858791352677812518801824051416680256018792346174884108631345442150760139973126073400575888245209974894346950221727865653268185561489970023319754563472445685618678549162846495562366413468053548107010914847556228585689405227218211202902179039178816980362694699944028288620726621675279973039982491933363228709923067578337475462171195552772828298263174801998101578726478365044290162916785510720152693592178351559891016941218844692682606939298424439701858534297762307829965830764686336116578425944101643329701123948385363587509351626254916568362796331205857818750692851986754227218076299535928891436316335889981142340824145396504830853576582496209735703202829767519066391156688962725291305558431628617370456981577719028184925222007403813663427705829737369635659203618482844528227337547269860948457971356921121022804814082230773676019779916925955113725296933611253545178880956000818271397232955965897681686599519061520931392780492873712033487228172271545934135689623371745274643269797208477211280624128325337604775757673036880719580310340918322858303620651686668699017177625094368369302849399021455061318587260672575424807285214381544609858154446672110449349265912863492008988908414659645843071721414627715824626985675389865273338704840762385714900213335876206719308654320688100119925255842954371361312418629480986960077230229106383010128424646398180478442385633560013331006445324146138895097045670596651463828336628457008834079994556311697122045690407824233882430850256862117863450193666535126927634802372696229874858439518887298775217476509187558378384880552257177409972479289009363318359593407354521706687953861427790754893284271668452991924879081901695772991616104340089405527892273277750250065992709634434492146170700525928911086634508399876102784587988374188968462857312132414569735184658892864801794304827333294717081144372385320585522419426723203975790972531349701790300364905105155653042619680621334577449117585397414948284761206475109910286270526517003937670244439748900021979365527138740886067706361091855394153463036086306339341504105220262063743539951193819197245300864565343965895540392839128964797515030703508400214177104631742631382511059229678486549458457312418359756636610439666969714316576191299813512832798002644253058212563091130198580244083972783218949864087310964145421999263593726429113508384000862491850749146990129140569980032246773854701283337082623321726846453163322815296006391920916206728188531399377424127598520915106490572293412094222934403991906400043495986122300500580471756010066902959302656907818869102168149594201034708194689611347027955851896832821606928984827699407581798228304633242403532293889141552637202498882693431822651390573054223762859301384516892105496730859194547262338325247566324913481109069693270372637645145529660104978515313756465921249021126986656936073579774460096536222302273942342914497708100393352003093164417476798607528063145974870355674855989870074346489709581126760957190961997844123483628763297792686845196592195251135896208844707423208685219351866920653199366175614864380132836762200857310967997666779666111441070335353313188030003313553087038813243027666716167965372428923353462445410925090765005613311509539605668304544381423254321630262646562832686748605590918529871688254457848642694049331139482246452848013702425640643813283665449393711975543631947771117051519835001164723517693746062482495504659645735779287054781765154197437572011991834915564517240875785443981272345106376774951812846466160182533221537314930246973220936972632693970899988606765016690559240104498175012092464276690876259126576879134667915762267247371191240120727703037543248700274113050029221476217880155163745998026044560184806506910803158190303004533278363585554851147296919072498404032404014925960571070352960094140483280023590434202659700534861585672618752056314847823943056330443659636447246186776487621011512040222603257690808710013733843473531242894239598608433636455426190363448949386137644782137251583740955494044164249424277494440544503303341436842987297135963809228619783051073889268346077929283377351329556661944006991627369732244674109633840789795214754359053437529353839600855733108276585382183396473608087695111288077748065788794475433412133419448961781793301933275893058639572843801319775022568157045334645422343274373338005606891126741233950537622869458896550097725968996072693505919947775858292472314141967457011573560733215355776469165049651354741772231032058232995271939592821359147129977018003722193930944801625794206391356264107571872710905054014004018274561394164225909220318003124331170210533733268186056659919517311835060072970661016899702953418794516108184215183943450009840716020125043391215827663096003829717908497258393042400436350268625262225985557364307339839664514664733355435595823922658979455775344758574793313860408332149996322910740748161842379273857392981664103536612002049207089560679225421394893038500776744384310656103748071103037008553867616513508447040417675034786002256145141132473550267329324044594956971654737008164526235016119809992232605364732163191753159346697638120488673502157943264326588763397985397287126104738192040821536282824775628842958475083923632028434937888483734909688512519229880693396681758380487330581641910300717956846000465977772269724853834443473097211691175022530637910603174247536697684093650592227563828760994353669205794507505414065603618052327483731674531348759252237779791332824887654523519596445891698886252784629366633447380054718778903544379041637727878058002408277602415276530804353118381175555982887105413338122293940190873267308464224140554059681729259266054808453802715152104699829131137092655707394487218241051161645788134845671821943659303031387207093151106527607510468021890539916885299633456073320017304497241856357258464070326702193772530472680375726492408230580681137826767410517857850705384029782396905995376189897329195114351815288961478037863710542843790359978371699841272182318490256453234145152130729872664267499831154608565884494583497475877897141979961003196233521635167246479629812483102020649712539926802457001384550238109231939861846421749657521796128374258563147110824148743435184665956146924442060625717173970111771940850659116829638274383039807925016867422244874258610008979450828881028817176322037125467727306646330162504483806519845317078720437035579226849307881337653117376495355997947904008604008438737210054382228055824995166452617516791915055945674847489968471175059096459231273003458280312746251268902512993988926673817421056640947478413109172242471322356571363862161766575410356241328498784183935602324227157418093519823557535799710299642106979741063960283418785082386359019353897445276233798672161465090918957628846565630527763370517733947090004290274606471262197269267985359738684363996283105527329893341969033368445215134946487558973912834828426982067331360921939757990999866515329586147053396048813202672798696744203871050622254320606247624710765336085368884876645156148255824379251938942286796262293573063135958650196451141176497272938484949777249778063042390706623583263908802742616890165305683769322944631437173172152192432568449735633811986411804899877225452112413901574313765251994906728482616594188729741803851510202187315315729111506244129055555252512282553509532499290925216205997392935349662928936428069148509416599491278833482095617379474939613356584948189248388852182098160485091072250015571420995742495702989058639080302404538226126351012353836610502025819489235269745419577822061235211248386972450458587829474970173671284232064559917219065473802390531350951625406647008708314236590896775597329172819820062061508287887944056956246745001658105939628526686995125223457954827457728141879253623763538985858829382828419230373129778797856801764101440956864171628078676671188522969699002250700294798416457862487887108102532682083029577794442514808323948819592707075831801809394495441042789288129142350527626918061012405602181643822754302417441692179008750705852424326305815391271802023282383944624453464796711018920041085993247296005730930837832130811953721178124512919340695712044070454985186867960284039683550467171694337346949709687806266089389445954127063550627844684855629638660950132347471546285816745499554069903228105129251783445106739500201715701453312029280534611384906760941989785816709262627286676287401422072834673734676589635262358332910487024094340192447867201381912353021813536657164420539373220774668232861081013025956821442085324862759405859488865350717502738120440399727420626702400430724799864069327411328037141411077285084313086193041385553774959738948045897465108031243969823728734758791982423695385023624039083276533077042627556741338926943175825723883036695013634515474164814602120936038776604864976203866052241587753399424215569896418036320704582500199609394367269077560846653315898060989277325031160794561157667168513849946102183773525929477141649726766180648692616693795289009188463647435594274317845056265602280795594079319807641904605089128966777687846750697728084420053352334614292153393085809374767735112649606960751432678211319573009636893264712707823644193996438979851839828211736537233039538401978031254758420625322719038906096828901758252237994309032757443029745336793178803434633519120487231913557811248053462136054776511492030533551863127818356771348457506351811458927637402332647690918427567476605626322734207127897086592691400824355292971498926228860057240009525406562088333246628299812722158226223906821279380528068071971183253150366257672927734624719651106829937692510999295028046564827052445488428682398519139612676765850598692277754906371685767474305476151360604702819500715679807935403465625732970111770274170395340189160379854737550316418338158312143684950465572735685138822938921582828152137498169809586303484922691416678922815673259802055922738488140621355791044863351204016419099259712261870917847770110120359156961213688392578922477329553189549107285307183563288601183561069760671116080681505364817218564963527158004679643876680931257760338279923482977450349341987619727550975758864510769845067978479701285508242211332032525260610399839980523961613540102921622822401085713234245315794829782195745319052233068386234558525368439248948265885473509242910891015406879099406822212670121392510268296361504932829417549871003446347558687230189394661691433875924755994972663231800275575646655331086345774268735260891117789677843690618419570146839650905410143113352820031827446297875613456191048466724352159975281861691507367076310265435748685989904360311592033613815124404908036152921472182175554674634164469969963755987629338623004943944387841140955808705853741384665284757830797589238773094942930946681514682804686791860673861581873202253140843133844327553169145117701833493205785622377859031622122921666372131884842357782711168978148041943536372856963134898980733717938658450900911233364352440229888762206466762951015974732219397982914853379599039720167985932752749521383517560143325361086799181930348618866879611472807943743659323977731116211054944098256809597105182911711922254388291662503537882072379244891795510509260168714632899493949804201838206795787526104282621675805221147733943117625363949769033026704661889524127515898423732879958261061707219768376652567557778308612027898020151795696948859404526676716197564607914104885626111710309257685477930127920618030792576179210445027329071716532939149935494143138944125792720979851389357137796965939670827623818470572294147409027349351503182321242311963418475927609364526115481042432072865081862972960746200850104405677708040978130352032212664334359000399243418600066613970114781655081711011236036289770114862528487497252017973292941722263991564786649436238141200825540721308014258605598039923841560459304829859211871166770616779159721942931454706814026464526628510392548477355283346224034127959647675898169404076071134306023597256525262781889808419414146513244688288870279979255391256895994302018653058419871661740505492676421190878598427114726448018281981688798175602975443031714599145490038085525910674768158935470663444369599817418222902721617892164618838946838161879744031086076220676678654254899207689096478456926335961153570989328782872876894403258463099828895013118625023879365124563401663807569627890931633880747335019795844650953217782544175237372486049001003067842627516456391751452008214611802854562687854632875347714643411553885520182536583844603389401439475717553159245023328372385628335999719570856823209774535149638035004376873785236391432602080483212502014777364381267098231601009950537883360502750335109590773648144596542988243444519767981815707253687829706913474699044956263051388306034719884636458992859344863181052847251191485056450377547844989609206825341603706995274441947567325801488036789874636040614875597916641870690977076632202260509034029861099199822726227039047126065920884771378336115728933789233475009262910572181504879724112030673037389565411845558373972165595784280233769588687118820137143805477956545452281336211510318322994859759906420040585932326750604555259831509262631302193396441940824430554352736465311136621974110867897883831815122520290722098035950468451800220299368842754727886474010697791509398835013503295020185326087787205082400536920226866345779226126233368519447002325269307703540869961010070134035458896011917067243709543346210450680926638017634678259416762574037378114030078311708404863778378588509480793772561954508533283946849632075477033184455910357252088867214723206350465826744851588652870239147753401512304019117854204888586154133551506787272172998189951012377963531172042850701027175083006592531093954076246089764881789083886638439041255323810962669114941378650271739903470169148431182584956632672852974912561966151104037194825691629259852053082545034412779047925265575305060044228507788501994332198794734194464329111112386160976852338614844878396705615216419133450916432062217723245037318965537041445419686651288484139853611340123467972587683081547995033108920484819259173110419251360113109903718818505262547893149219967161558843340336331750705962059652072501282048454799057973060928953528038087522880990458447466888744384337095724442431885399092528621187454181773458618998637040445207995952142452065365762816259184785396638946317911452110534333823763532835744488617645173756355926769774351472189187570730934941680709805296611221113026572246606223796247770301669202717392606886470313924327227131667115534770052846370660751607816760142413490201852897825712291406338988647326625812466762064263548816391347225920562199872310667157313041661607590027178209943793270256887373540891018244095139972122071756071576880115458729257423769491749776446368132653457901611082263552950944085886716477972166784289786477204620362898017384133854641258431303104964691419941645275427832773949878853221187146953701293305409917822164495609260815992118670617661898875362571636284218180303706758882572272498667092424942128400216307736043269171512575932155075154049054716120654472493590531640897226747613662761608027950991638779929136509937726723061827866593182176314184808636094137385735512236392531491921838583803905467287710932281009495417593408679529763796469649187521115030522945229333010401838229838368824599805948631993800912147339315978820038508153387215816927536488839252505615220696932307964766320038893076050942667799635001552412756848712611262824122398688216174715268997829925513684623659327113199744922175506434181683953360257489167808946450706936853163283115346611154556518592111767566092030973187298234153837839961237634984004891411503176776360692933977590319926549907903236715542701089579067920061820283997839089510156021343287558439694823377442525273014069589170772105584330352139563826502403526265688106278559122511716799017449578557318894670078468198152118027153865461139128812192907504070829025488152129979866474832237392004779437037636355980646626060349931474601743861461265080960505381304672512799037821752162036454774123151456448462735457525425260817711514609494539961464529956990732177061868949745554180927793260659052463881657783737015140540646472666909071619754781577136190279179873694661335323909515979812170634697059786378904343262828433103431248653070852491187121076479982077081586605981806571663561576548186130379384373386379124143830335412047700989395780486021295535050012796761611905187470493880862510444123233076486699682735082811996349035944116048396257267077500287623062955778196760070392320133186812861636314751434542172075889697430545629718315794085603992825942522805338537423363326070058884354232259098322981792777404582930373916923790831965236436654643255577467771123935419072607963598222082051569518361437161320268631793799863534776586978754638100475135928793116087550583829965095695701845021110549736286410356884255002592401503608045105462071228978522210851307946006468737817479402118864579431427565830664670174057696198556559188644100750132597951147535127566895450965601225190383791782286554202783059040108360525362517383877263653856967462874749699754365290454766214509278760046581076175538297029005912823982316817212873911496739294248744687640763386724538137950097552954964707412309596588230548641278353628187335487407160715337835006034949159211788886057614071846801567577798897193056352618591492302938062805459024143266405208573501948372484905372159782214319633784502408150419258750918209405450680590213834954087043605920513117958904369254821926130141588630571179961404353034194784710120611508910587450338993249522191233949108891106959855887039744639207501432501031991472049501162094490772384922873239515828274337016531535581051493653039605007382033509402841519825222599226231236008078360288816339939818047376988531703257142106591404358703694160319847763886740366865640230434743084252256148997991512552115280206925762468052159601486973710233963647583458756228439783737410684288952994556333949137136748771151746987758644901227661368230859407967153417035201534193590229417273519314059773402820751417466568795640022645282076283557518019754581878914717467957301337540784285632822471064601423646120617265584011426828592905657486578207106451306298946171153522158119668103521330767101359177092770638870734673688469723343910439530724739437829412715741345458600739431275655523518879144238355755040909487690174933323656703526406092431554372786463445041848598821432203891876760610146693341709148623354016929699353608110555246739278183209430911365482602442103735777644627870332724387831654479127448129136802035603296197842623653464703139285638953861128455299034999875942599652781772297806988370878151942599034599688869017108196269243513964700657865566204565648768994796313338204238267788483656358975725634755274332351715905981231269993253099232924660429033592729202647292165484589888738148958510246154020072260761156228754580935880229061355055257833967028258877173473948136489983092007300969191163851569782547381295907506494223489005490924750417560396925845846801874113688856396577173215560666112555725683036685525742601551800387118756060864240043800978855841576090652259916184021296491256776945481721750081651817978956354056885423772603666421540626890333205712632533777502435814436847079894925104617049078271156816755349500559245302966824321709777490688953305407748391484580752484898763926964329987204527252889729502206406558468418976247683631574012217813056348070107582659919990850488475783121815345465013002602671473726033830163191462252920733698763381211046479170785996025132311897203847596940599685265732674155285444980116132764707137980901164895588473272871898941325080392328509989019384084699404826513505740773494599370223896710234036320050124244872443079608781069963987332378411064761410142567854978769972411057896743081023254024580489484861284071822178278187888207966214810535804861854139302112597385496540013268936151225458681875200640833913167835388095562840839421070213834071522813378228619420061082130812719772464452355889806707833113538654053101421946668078364673787730259576417621824782742136728640681802788219177813996327237366493872530419448164680005448356063265258070606822026156552822667770452760283741044171172930977218090729178939942020001131513610949367607227728326337565671926896011585015621439790317851992283576716981780315699024771774094000452694215435618124807125192015932883954272623605792956896350825830490646561217447723440630207449277778186460717259961626759147961512553000199399295855023975266487698431608062620113264646172395249167457798033301447147111257949124762113161359861596701554744055063747526937738306653310247370386168234704076213956697787644856667396447251277714971937549008079783041975065601510071536562544243744956419591789734947642530914060287603361779026480972054007585972830943548355343611761824070058934419052152690230998422191628420139695858383659697251839980547869304929621581493035507375445561429184541148287533654671262330280205320777829067733661449582988130752250584274942557619452625667359939035148039052192044402470494297877695164382413749774805608436067448734500113846499561768149094624267564602940604815281112190225664557680452873166918674959107913459505456386649858918076866762710560889255651186940481125403155824200472435267558228754043761868148806954734176868873527632635819293497103090575349289435582220989540983990074695894340975907090736316011026531867039198433054336951746106735631566654458618415726589898822055979642574558742774456604401553481993139978219227214495240791431780455598937705794534003412184484175882364659175625669616097793325235765634789395709594978013422505076490453468082712183363823742744714858386927028103335071424325818904580452660020891572820020193758089968816893717202945684471159234780199771372023185804818139548906858744897281151831598247948987172447233456897565067334407219325596039560303723831420483596922797602556435642958777373010300771017673389743897245937114575994577952759627457913534695910004212240917122628712607421690909187741077993035665769661578716963681125619459404272047646000020557410203380605790079869296611222324000781973514159467135510023127076227309165480841675039256338370449453585005996787911122301640694930854611451270727958752645152377770235290476161740062579083366594757106832540763719232750933915765214120710941669526507992118190064272526361728573403297024091871914072507599400605018467258947668966201831342241714676670888168073029838888720026311448948429464775991093954277550095680120431885734273193067796501620603679584914969663323917386382331997829516138825675636877216336203907062457309724537964048794300389957817160816588548300501622816340022775531125354897782463804486573049667755515083892535300673411668972985357986650959547857412846799046237609729330743949875426465766458443511613862233030310508813464285098011729319884322303470661992829430745164917537730251367105140171833102084736168401521557368190343193774283200493391624766744882558617510884227222146090956428894773259076374446277534376044842047130826589363828020146805212754447001856634369149805932771421594596732632811027767734156044760688928514095305004822117640526153067431458747380217083617774868129161662517077139577326752474123997815934037925171425836634306096059039665725452452303725725146235062575893505348154948492983676768515445924619068059320824679714660597703849506124524515790097243460569626332598864574831468843281689715914582166128687281790329297956978359782315164038682707034385237884108567503056335602134728079378760674338872930731814914247320057723174272297475117228593963742993141673713759534897502264397862172620164314650772853543368178426858342927015795859020259919214195405128681911917749192576607438353810094243589192065802336106128104041570465701501843628535383176310177497227128800454915245426581026685200838035200355802930250469099798103924459033531109197469497489386505952243483543188456169411100844582911732563773993800436067842826975630333334501722673154534164958205452561380389626556048345687140811378546444687564692112959535689525904352795111157695365183243208129110060005441601771145133931641137996597934149577623387166650266322530264506169434678076882611232323800534937999323852881716165495724454772486597346129651248258278889008895110658959398967533510727634660823778844365206092776818963334154946139458134044240416661480004377406154572845462944378394520457364902254029029168602971722717936060388518621538302767581987980808892507148554697993897393321811982606699016028120140388445603682761027132769344834082644372159538928364274790013882588465930671882661895064459952268466352462392927636458278030648089553932276426365127944869782352417806479240527788675776441077466464628973326467170685057405999428575830554276602816548983652767174198546795315642611006880143274974412325278184623443501032964203004402116278431321226054741160300273447086200061178109488960520345765673649589331105124948295818522477503312861613348911054327116685600488866671967141352388890234580523296112035901217888580748095142527484081626002445553193765094268607946511898352785021936220692415779078473961405782913768254600982894242055669147379378618352269850134272716622444062967773214607137295119592651081063163414828306241503974048107373184161442168138805080045590900315210534628416467564972904549590815641186205671766819497939827936496852895283767198987856464364121109557697716771765758662241998112045285735425526267744772297965202258023786414464112913771187301919586526622346388795954063459205741005115842701977850177149551649295956575258348327254215937084528990169471937398493501770605075205218461007864446560382713204602874979331182880799784558045551498994890852525929471564561011645225511983808427853174131572846100019197466799415047435022096946661396313184219888891663277095936565005765458878196405113546911186146217104104586155439204597691323181782561940189070906084335578742226809751667692552702548891665036019820078314605118268445290687674999184403827852238169137036154308546446433377201174725108044695087315095022107925330241503580236420402692684833040553877692890916055872919144471303831566324372458168216352529026818082713379785642383440071002982240528368247471149609293357317209938873545443309075655366831945662806572253464779346221549422044385764332886288252373263892628091334250850764366463537240242621381574534413653688429992844477851452221912433343068284804474206346693825529786436930474093146274459184338536307663830822567409825286643179588594902614273117406244353425507406247871888875542298964885468035137548749785179547065626801198994668442073972366056216075865010587223594399507960708652800150170004365320853032419695318057343678033151232104268308261931466611813684830648828889678739588465984458977022922666183302521618641355004513971539359287259552301682008974710859065831808789725368265154455236979591720998964091570091035766239641049161635523128408391747618414060729039385533032538626315244204297171194001954112617023326412293479071537431490513826226922894926793129851851586025707573894995897673181156939183103089688041312612872475947638330827561669275518777025789377418165945352575321295092063190797358020760187824240673816670500311159223530744635563736990397240621264066602723190229703033113695575559636446455466051324168661621663564981922621587642193651378712926454535108309621936776191958071508571291947491818087780721243347467681750928592808867105442253409846345228549712959202551822239621833194901270663575463425055861562919153481604448649403627378240181716068174672259730048856835302878887548881143327459971759089445331705370924977914135207946257755087739082527085044797642610715078602027871668193299714172731977953248095310368236324730472981446772990036463991685315084423688092110973630823543844295471303567299674751088415495335362524846669416471315543149467583838204865521770808727019028353051122742059918656208352876980438056121148326947247567037141027995011161880482626676297135717021337020863293991498104969951211509883592622295602849393782606835706612378918056224112330410235452521581569657299284540843969751494187107821809916312246588712545084778858430301296273793374138494441599621676185971211743546395658019483740521371894322255794072720934510301422397332624962216585251775015585179842919181939719599023978242263812648133849038443617250021977315292746358318463572595472458800106116862919216160946446522778585191544934718284684015409552049634816393617394890847793172889526810434431816063420146072004160959054147228310480350028750984717162020395818610338640104019885096132775153308455356712119920121587880256628219155929866558748886579194106318496023562990968146495994475927735113108466592408186508626431907409557971169455574591179292037670878126690089687629733839246187545865231696207279139370275158810058697524719054015591519716635252132509469908416723734062100072082353940644155553242348013454743563820112767736121525704054851924628400523300865670287994509964476088047686363090327244240102097073975698498625007637821135867863490670203669648013860089753633334818266595916881889967872786036666485906845779951842162386781619319975420039757592616349735889777820659014369475425725089294004493467324280767387536976843069821381504895510963047370905989892197447333000811870308937825477956254718200587930549393107990112720759869763534746514668136477532698264402980958010777028526532992980532193442232156889780068400262988788891482869059451674560696037392916826053609737833854634474263701390144379896437613345859423672159841161725880111007143200977418770395518011979183827662596276955755778228437252980848924417164751695385350884057938329653027534003799025255307997349926781186300332926134543182841962292022594356915579306218140541150369101250984708116325025970532451668268799500681211926889182727191425205511551807357952438541491305235118455374655780705363381007462797779011416288450081512648323874958449045211680877732725946922681572779868853528687883586075327401530184207348282293765388226113628988479381232174859469518205335768381905302013298323107083966024229200291995042021884543459552174462245124962642574348091615484626151660074997308288991042375875414171844098473730467816576743126332997156947956767634245807854294932892197240831487449950463433171316838466380149137596769261474114759574648303928719509470089166965387501550288183591837154084418775146153266373254539195791118714032802825791091567051574006316017407440656328332062599846743859486538247343078558029276493781356820357312697266661626557429611616485240095051010101353889570373115760199346699195923149993167603891846233676735295199745668651506663679809696040232261104017730712694840310970366657948084216300969452398073028183074710050427742627774188070614879639715047109869017381145876561253257265896674777564592802531373972270654143938153466431203979443517509456729137851276280980647196958595486209292139804237822357721462577176940359410308808578202655648551258506487330877731386173005391105013749588353026833299230181155186635439456576622508370500065131865629242197774274449759646146766202984782776267629047453809122881660844709631680263626462234201867567416754367356543925808632921951404463013843562625412700192571646235017387655033954585110994047018132991542986896333621720957461220914239516150675911828305301408202112803889472358406595450718667086939437480968670622908007203450351723478076385355862642917452286146846136138206587377980774154217636455896875523420380407864688137941776262564489818893568572137064566261793147028894781729153115061855339379699786883011954638900309102338517000462199551748334303085941700469255434276994523167797075344745378805239429749970461174882769524498205106497988692312615000546368165853393252042637371987236016175221238557776989727508122454025614660411378217646876314252372373586098659699020634504750072786872965752720170208731685059301937520274307820764443012268422520589069108197403420484052626479363781688573644641916109430985616927580333380592614286022914110505778113098508993752783536684142945001391744921747080381895724808910721864516180434908822524505319206761543143411805502119896810197054916669003319621516395011535789990685846607665063942645190203175094072289576810001271011504959017668742307948597643529680236653995770855044152808737298734410329087326672213217843172591732724992806875108290775097416265813052794635334521163106681153016022059036204394800039332458542973940287849567792059253292532262727160511664118896251066209883657732299166482333464162493889021249044165903702380800429245791160160396759051045141863929895445565711580467952959600189767792830978511606443687004719489560887013072977916483867675645463886000105998031015712708180104114523765911486103063655382900286343851434076188864531091673332772478255893528983612034998677312320588116603684683065004212274625188919999128495448243247828642577056104673687080355278800521592158815437196917856399676728833079494153827152865421127373338092476003620654475592297852682261728929284280301955190612429379693281577314513149592872815420002580766228521558857529573481456342594162651408494572690037091570643115959294131642451097774635968852376024643664387241547114533658075459463039550152417922227156001905590581264362390938300956945175471202588713960654259915325198757591317622967954574212368376183820962237858095300793541461700431716011590428564401890400975199618920006429273621866953102083477088850362951525472704857395470909414317295308827754624666043253128024129812532700933666019762730926959579529986574887303121561028629735904309259407810144420220738398360095399968170370705597108075897319147983256243481946105172301269104693532307131105653789598684141231158766690216202819627175499912763839088441918793363550404914973480925256567301660934248916235888660875235294070065915159793471750803304785036676483659351529581653922563600890675763334659539024586638862730660118494491423002806159335436201508939597387019052289291743774419473563808372100102812180676439006388670500053505911997758795324003072754442454575738261810819297466486949274013498919302066132323603541897225048836279208756177230447050058738047240215233310419043116824014106196629537257531393207523824162818636638194758859239506318606785679161588089958259365544729111809379201672781363040452028567145322028319317773104636587214666928942619120409819868223966209691712872059452428821132113412773967913635925127408278979079317829178214410476883120560287834849972391520419748243973857848335287597893495746727256381844008234297550849650442628967909690083997187677800717404589325031839759054050289784322698452906849579845330405300235556010020148090821326149306872903856844612912732881033984861643675172176968077976627547417799454613385720610738571846118368297573063932190622055789822839735325625724878048271696795493568271506315870465601590850927616657631089728446287570832223679079012234794374209560378005536378083412954669906081112522743055986224005081584512004404175297997693946437474251628487709554160457081248083545522948280854627075260386327163606273040888368544433650658256934011608547481683410341698211624728830609128582214142761541606981516162637351687389571053101678033773905732423285498479481439571632221317855605255854286264872802547092373316932590402138511345083318696051666085695696640108105328361774068818650203385555798669594044951750115560620739303557701184869627979141916961544339901610837169463275589919265883750645341372923930357670259668099520038183718202614026232003388020535680722172249854864616259267153793946591359657359094729298106900922031847320239585535139184720639272361204595159659589405429250499476346850085821737414939812501348808012427795123996039230514545867743330612180298860016197620789354837614760634910337759902278846206688279242844963675315364693153026218078400126376280607780256681530520638848965105403510525633627465030557609748254847606216982992333832792051260880689945174281091179437482344272358610581144952799525296170849577704119494056265774583610492550505870288172754075020443689375674243215671605797374807186733119014332909960841585657116174891185745794990278546852412101521569537698280523201382818563625906447389535538344832683731885013125823079884749986554688627120397781895772645445616471646488979674460510731129863405075019019100946480361821148096078396803936335531540554269254579771664794551064973570954863735060813304136065678079743523233845883403801263070414010454207405385706635748879993145824984018478838235129110777868273059851181629094830230668342739549884715446629389158186373811508941183848889320776160471549010353781638632067128497158230724417906422813435640253750805827531389050189243593293370260081868268632855832990455867471246708606134684422460467505954604997516254117705859826534175668551461185165102602068636617022335676040331588592103194132271907249054649896479465972311852987889978143098456016364952952993253656490804647166760681889653842673507689245140256114014805364500552612566441661133535689608947048591375311788594438147810434262205296151141211134135537750433011388419181338702097505851542318357620197756437776805328857930594520567936730586717762601423547130918596963525750958962999655823204158830875653998460646654282884201983777046689822535182230415155776508648474277804494476014032660404465461551421609929186557868411193550777237600006327418867561611819505773996919315548681023084128256071835016163536097193421451601718544359525576208838839454481795025468865380096110005451425706600181562280772305622728427354740651977072587397363204080785131870423313160052954293527314735305188108573448405653032442830073044303373092634122084703561674373954665037583847737107446576942933803781913595376037994860142892897903044729724654852329647152413571966685023790131268183928592015068779921729320081658747008531497897015688451554369382241379099855956676139063682378181247031663741078937588127315837846583010615453997474376083798394597386622909030557131186068343342253757592372464720016897590893077403367770627147192915460014541801734478535295928545482389736669647123868574172484714470237333971295822498926920705970775652459228840969334339396478344539187524660723524514652560417976534173528733387229797498892767791522202446081180856854697587032174822584037906950532076364595913689885149416099611241816431109414812871163186382594427593479722018786832888711232605583463780717891954811004020643485176311678154251999617200524055921052222443051373134912815692733392036470961514033424032771418729060237407013922791641520443417617009828677576206133228262357308658327962734275506981664562475585815125668651147787729428576598093968211177283609093385434182781958657719076175052821852908998025553965285886996431184643300440332108075236966830080928820763386056872077053814107138623766419578021183440550648129000977486717301475560450887542914760363000322556421562721579392168229434933904776652664651496664685551558015837747574623334353838468659742360331089517431772515676108889482985800862120925133678482237018302773857424659605854906377213103092438991860279733136003964872058438882457696570111216646420415955926433598973406369845807134707250928050296608340190234545480813869505296223229836232162712565299598119763688960191581426160376018463253516189057345392321915157777691261330936169641506198147435987849186181101720889826068998033375339022555860300314420210820106246058436486378814828093788288826305972042999663405940524123171070277729185844809580200529059457632035484612984413113327522972874214438957922190857082061634270122311693946230134836623542407239368228714140523561649908727653229638697717825465761969265325654474984007257052197590845278654700036544758632299690056444805424398751972147075749582062472566350656603188969951608178115185482425789965958283384344642331074527978011363435643401513619436109284675252897739936704428819808615672844356071628373246258323088391973137596635218045827439975470510303765637651605863324365402268747399032122245942836665735954649884808690678879450184391749381769810241976327081146270007478700344299497361068744351834594440347734773529854775717359639347429700884493804967615166927767878238294056606844156777756727618572412266807080003409669039868281452282571669336198543355512852061657704858132876484131800070540873817383624808300753064350179961173913177814551434450176721222745651802074705543559527889513969017398579789748292032167180760981997010469277315908001756134872872929020054650855050520310783104317475603677023164625978404093603864534704246131969208447032283443665744451768455360956608817623582354923784508729417264079594038117207450586274804821017301268586591006616231806820092689663251188389688288994551747667956135427228297446118905370118747956335092640984450531768348613128751594245673893277307551868526922971177024720695197367138423617719660398196848614233999066697130320610506773472690922541560008831652090431258737270609046438393220130032938122808373831653065262760802999949791921003411140081503971681057764806013179569145554511578092248627542554141953150575370783883674444090833354385874921983478173255090388229895718584367862718553961061656221316524956623770112310188669775216148668462240467960670769024620485556443351980963731028928134346343798356847971596452216223958429474472014949457259049302455375459671938530062778597687730214411936449274347839691602869106652049035161527424275154054321723588500736722583953220568255247173871373122233721055810668332925529993264071759418463322700452511223519036092873411818115659623167704008255955931943341019842208366336235335142071608885573252707294020566828556671248554757863393632532084243297008638907965140734114761488641284222687780203469271271137055096284169906390142989548114410982137315902625115312380904644641039573693911918930059280804094236638665753859481673597683956854238685781678508185271003169696572306558033780555805529282947883572824583254672742896909046021328020756177935839061493450764591779322558837076860842188909425991085329443178750764912402831813020165457543251891473070175259482865854558302753706649352207418024938395627328712066511575212674019783735612257249744441645072526715858081490756033226302014429547762992463692342279081851491459203078518963041003241678563750724883767366233864359717007265021650013451138140726261377329129307082117541511489855098845999925790110145432802751446565052244250624604984998263855543298584800085961081338205601171404607355086366816287875780610511215245562607643043276303490401776861106665324038594748458722394536403471188530001550038267381791655139647823256619628595987069803180948805418591446295269544941434659135590064160013970699182807572079852130743209421519696240557597580926274390234464957113411879155485909089085854277003957773039964776834824250302848186007762740074996616590092166481037946491877767230410886307935310812942794133160832563099426437855749443728553656014599909198812513620721450130252636886267165442643047523307806095054379232278568774507743665129860141074359113313450066682280405522150469970833729007521223590491923160610256320100617678606680762390470142380200773553021780954234882552345232073394455698375835939965676954687869854740273429850148914580239334178128856866122874943172238522364156640986755650225972533752156497083232395868310561098339493567399106750896941689093289925863785285997105298357208075804083947828023371152032291912939586050470614679582457078742879989342220763289872596293773425719538958160631452173929288294235364735024904476652917766268930940306373472523388816684135528215819298232734725949755212058005668015558400051873723640690693281836927168545676413600344217504071561839317984210445571575007901014743735471183965748149239068585272546430173604811655874345636035598980610018165662647952486717745041198134687190015002401273682409896981088352572587990449858066253609153804930732509546770684511804124327641459312205427728595737174872483079206301091913326071235006687117978555164819649604099199053834587669933978672919526784046606290590841469547837645467601880655742497986460342491562719704651986622836238341157991752817410817782714759364503273592913168612413382440991197825741323001567132073376156598005922820539235665283179019212102557130082314880429516123873433351898705879183268187928977586211573171657681003078276148135295427809257558872960186468849438560347103231461632332546326907815147921498122526455838641690651036332832888798614743602358522907905506044328361761238232196535041061723913009818617609367837355173044975607248192834248398852416127997430557814012305044713582449611257436254150663283079141176569831669917655367733540270009506467009975189273357294743304052334228825169874830388765085266474939734938494641623164723057031285491183862917251534203905270927910721452242522416977021721287997956715140229857472954887620448692045942678834139326432566648458957775886140906910830603352456849306493541667940212791807089889534655013428306156328727172643772268937176847364528396072145658479596536592464849734738112632947750537380811854950784484602533721121942825783973587528708795194864786384232175658533606247998087460055299113754397544965007777874564847698517431213654312329551139900258841954936085985816496515087971419322969605842355834454110296143286692498461292976543751909706335440690311632738834517210636763687365410126102176146209416539010765790785621687999246127868094533228726988739799581566799824330497842716242353162375595342559003391960541892689737075119249256607019221236826721668387122878165292959779248749571880850709199562185686870533944823592624622518598107654252822505818383192213731598689305031187467719905554890533100231161866623532534530487151653952716341982657345385696090005738031487854032685525349644724911771566695319107632661904111584479293641491405939995614797525869810283531081642888785237281151599588153135243771177511556622076519711542373734734429174249392672683008617081157346520012726691732120519971923066372213733894478310184972415932572755835626447921956142780042608877636310792493635334524001292307411765970409266842549464627280693021296786486688251733937691682663383257052507573654175985101234550171500595526302375367326386351209281821997839275939712063523437334510159937505128753666863638449534723819763653626859141499728181271921963130953322420735139484744967199230604753151885513869553480869879248342474601734528753534922957330546084524962733599267775007627011006553700240554693434586888223443017809726591383706049983424823630992020400287196308955111396523800678390977259689023846648613849559825977243569226615999949983542289942858784568186791650950207633216032255224546530155526914155959943062242848367754033719503837559612068418559170051632082414690060532905859157215946650979459391329558204396620144668437673852372454350146159768915555342168631439787736870194630109784958690783799880662274897835751151601135747544937931330310846316300923957508711116947348314061037349877913112644488117212901776938689933286746716651601518370145652030827682508740049653281853434867967705106956635583690180886853369909540602844265725337071880847432259867640013321245113078958445406748687727986388392280054935951237698106406212718243484701865788998958391516513270991437569139921504656760639213891285894897005176266395614525320128444112098139158823205000611669775210400888380886561209374189856561360316194251218235608463696379391318570639349564270043364762983995045448877455499839604152770570398399000725775657539951312820032924696644290402857867643936968032583330209298889806377462681483984383897092730794606438547929728402315851137272269095767822620130440747311707513836543909364968716721086791324140550297819741338395003289182862359375485211984180365455099348074585360119007580416619521214179608409701083453388288721809826169120467361338567287492253136560316401520737800804079814408057365061383707218333197512520184339959003909530641917838385633139758091651112809694999101205902850640110628617208094931972963906986050613491285596820955715803958831146551178352475448717608333764164609510342113784208470688131260779430314190143063787542928184482172636327681117638516180266925396626574597483721536672991968801476365325072298639433970371735107696171331880368750994475749048870160832079240951063143665295048240740941842457851490133611766193042363526463603464841052735329836499564480697332066768759272104017454152516163171146554175692729182867088545076946046044575353743162153930352308447897797329331853304927468983808086902547184023243514404640949293202552514972930593048081146736125590190124373916408122025643815412595894519797493050143318674567518071570663021098644309777141799123176276264794099029269377748246151144303305090817998701141774756557665167477896635444516844374610337578794012089881884971000818789868070980207470129480875787137723577175448114413486210588528463974839620937219035987343263650723045986860389272398383879980990178067305724836398112431694214634901892979685543593843213116534689056177426111917686794883564928752845516213127186217547834148669980511233814718678689880094425826417099604862235038209912735463010181810060988914479914478376110095389453284480808067904748743707860717106223714023950453427503142852764830920950479942520208768340794344997078285206434461064150965235446233969689687045478661437269152941261482105161824725207267387586899666601268446751671464860643762413007100331915315308172366762293204916524630981101464815714800942921655445547029828857283132864867226186882086223800365537074945529154369673776783383302304655766305866349114081588643577557837981428691224965626640486134977530138607874643565723240064256611891934572844408167719439188280205776668667438342259136919308631884945575902132140795976296839104100842969001777022252082640792070881749090927021991384340925807133179390187556220182737930676363751071634563403582781789439819506993860804458891879942021705952273965644179075518772657842518496910415437692352711408158206431037498646157007543331952922243546986337358507776410445178531833287328281849239514528831147304433708692058276410735924371029076406282600686197404477582000261403216547823556274939241967581511151877362118011790520019570057499830288301310989126208560971372590829471818789389900231518215554889366095834339600705173600835908849534539013643749826940211244730182696812232370410370468034261497072240124420150114373853967498416732574481619872044774722518340853391565052278741862115014890736316430934985111557053073775756179737235766971446321858553610778442705782307620362009071792901040015831255790475281370994792361912368323733967041177280905633328583774120795650920434224807486159113765442738477788477296578828449250943225840101198039708408134938042994924798021176727532763285141795805917230191556922748347776261322870398491912707885592524577896898643163791845672865545563827224568175883497668239331361581566435826325136124702730696534041175111791871253381523470202892294973869928710818040721636461129652445726541065731392345345960940264468186381918972009599839514361614238678442294264693674781665022729647516742067587142771154750560258142165995726781290769133726694432240507122295025487948188210843298615800108179403012370477950833577866981699360626396951963639462287793146860444079425099708433230895388223432443100983981784041437241051563617576085261010592712017609004024183219610045629547212679633415729477234041284696035830575867088839773699763750375454160771316152511561995245989792650718388110303023464550887218466284366106080463751002194048426635611049654735983505057593458679144335927528556895913908668904230549524866707242628445844395372381541983989065880201905726576553479635051339822382080536963681129343937277519339015421918992540309144381753740165384334292518049354082099746220260214158578897778889593534416739573610009031289171146178883494704094848550759488291568304014013895583038011252756618669776742387929004380791589787507768780893552601380887121398423481229294719561495969304098598958514086527458765253665765569760157198424480816982249809026027151855860405517314058573119176091600487476099372001533353648464142395854150510399328391244971676659216894500046079914473362571353319307555899013992069811679093584516731346922919369226527623259783559804687994721760788234712452515828257936193919928359155787535183402442255088398924838857574633799170471890794030483183257066106787709800545814806548721154578578870432374582994008506691911771196908528011498595799903736165024053668610453052861334676286231429183560932886659773491135715603921918975361665915133719715442461833387896253200644297130462821300339879584514088006187292431742316538330002024397747600677642145027221859386886095800637797872453278575649526567796400300906205740791056343280568578456662417899663209367977928518606654845513674303777699314558507422928927466019414977238686567140446206127260915413990332436688083018730305124672093505436146631235137154080091553767145007094518726320805809467851437284771416993198608677966932720459836002202220408685004325322355479709336287542935800644728838378605613315403597832727482938093843358731159457246812286831187002124879657147551866856553794981748420884263531575175015796745426975678010320556829967081898086034392485538424108892699976933998855814579030022331058851085901998314316476757531588388697412956268597474693033510415079330281733840374535650791775691313271590264391409369270175293202573712643784380989979747910244901966381129828049395768367465608458164864935087789889002344046350109067147880194216213014916637429662720294056877111433424492341134756166547876781908821200032708958801727642947697405698204311310801189512310663652692091514943089392060074297590819926960415752649282463499697688273018121926210207552061901058867320828009332653080352915095367169046359757102736118456024677418345359346124380340929692061925707539437393276705865077392683470736867704318003612981589595091505005289028447396002271984213162151627932100016857325051194599848761794704387306885017758337019948480397470551357450320109589320906177088601273150933157267443165843208228151150307714338243410330708734666015069845062733231451381707444707971056447797035478476309819022588936692903093061664296548880807571417091460481918290329115598465953638705583296663962714457892947695862166192921882297086582402731799333303517916406430907390107907450727988986732761947391111395217159374205378104978957933116979225732534432247363710564486821488935796786794481870712976338135998507530021577513562026904542043952831529887840951844939660453044168166635438734879423055093929162451003397064350809295743696515984621770018446432668430160469481920850362714658167386561851704723126276721146348385286830846408989029744255516196146899258477493599397096783478982381761962979959999270333847819338777567766218675824908106107878767746025076421223610919242710296836079412261480869454509073411861119421225414809934643202181176046019098393191474947334835341435899838219554582026943398683051784250298922242211584711020377075359257239267875646446365619566192387389423232507800369344546728621467210522398644515767763365177881842535096935026592921258206602505300198386862714061958848149591214509971569717010102835507820385389774234810272762656986524931918618508149109775890681740314556086223549396021365947398387300642211281778451656442946980742613038010108671860494621284454150330716297793308239998131923881044699771132540700275184327613655831786827771392793129262012883867204075708621737805818507700973395571898345270842135358911905381810226522745845257674402808638393707842739872664309721235574153020941431393942603478987042345935129485124292552508458642971758775788366519164698810508142629885107109882438460539630874242016335835489107263116270573911521137176671811603587831628782412131353079552201438625255508698873461206273888916812095584590958908639170541675887280555676401559410128407850801857381456698231985699270524743863701326954022237873907918247478425544915935629148054724591260096509232496207259525278479938178930775194359062875903190435272934858843213148265988521323148699470045192040957161669937532373080940186404129131038033055787416574151838593758937763293482029126047863077334259167348019635990204367741542812957292412529992650835562395614263213433888598390668130082076684617242227005068169597150923269211643467963925953959795134915187165201185422242278838457314839392691301523743124542132937248270116736474688713871424278438253071507587481294615901187979676807522972762312075250888068719281856110691539611776830645460429776946066358094533077852589926924090581785566852144330092871502139253995978261491259272786897046387538602558140066003042250984164905248599365635433192398242168238440187488284619225002189944687758479638804201971056494108036897482315668584416529939035888088075076624779805641069056166865891266281483943565255959552046186114304402216870325017848347819321234852347677583326596397025644581899423478203107278803893839195924031385151304484570071617147094300961831196979425234210865541062167201646389973620539876756400722699527529649454548838864142085586930497660044703627686948130405614270188427162682749537864893342451751596750854317177834571902811712121665461896420026159673141080454173241940448190982111293072217745777032778519707657226404042114729008736331868105489071793584401522682164852897008295550119454118583992533234413333780293690932720816532876148056167332650750304959158205152303034720386290181688538253674431502940007397364450933523071407622935307890382796094161945870044879559553933811156354089622052629687140737311183174455730818269704266668907908765952002615772010307897535460483782683419001722425964498692737419336387763559402959060704036963379693785143871614595661843243390777607262956129639620616773082193456380464689713981018225435582988838666731740619930434319343515069574809233196839782545715826915795359056231859677440543045699476849896980984187912258263238618393450504932301288046952287603065641434695504369282491862097650238526058046127751315814459757936147567134878464084917860785432154719315983499821689422587196872638674776124216050347641275850076707791754927016823300687337911836420652896167905755317562326988608487439153507362916271747270421656469104296942296848698626699588390440038114387749171927262949603847049706627132178609733583853206953295339391193892015891217580426702360464356200675699124096954806561249877221774736254723151177292201286996000941168607485585058559905859156340567133988153842333271011276323249376987641255530920610748302304066971481563389809919008190682594769215361858713760142703212605438483263305732322932283535674578104176534356063047354049677101316974870532005094012069584056869048943033799020344903830318864815848569185938833451196080567680604979288041953344348244633923739322282852788754629775939777077084962803860856921009622445327150907253919830388935760439414854877989568408771692842515656350091312543595699264783030652326285314488558120721656977929403970299479950869941006320216162946077094925016312977734595444623868729316512525945401097828185317997446771708238371875478476326867442046364020974238943722985714351531076587012765552327935393824452340322879487627700912006330726762519484891146362954559495161009680028931702718501014561496237456928630798006272562985859787389059604201627036100093000650372522854506312267351551001884693034289638190072149481859854558424127211782743987323676355156023825307971756337873086863937172063226844101906667954949482446495158333698174745313708095126423741096921828348007440276469273168607090453268931642456100574645272408858415174057683470458784229483067804481223595004966352397030203828943692212734184637138793876138981525546753013477744376096804831788452718022421578418788480807775920180188286389422644631580533270479323779130890601879930405923683582127783009141182646943772106766349788301667873182906025578868978379093433881603733077338274271969138945773761166328219934498173422111109074463016918332055190987675779137990589639670651773007616062613113346956446234628467678525069589786036482188524624576380822540602179933242024514056144960855011133861424326129369109930597271404564969394583155426038641853470116228197842283578624957061448183476564900456591362958807783134510312359460224315957838697582497963532742845374258598107557521239036525332467370621695501215522258679345097203843269677800260248203374170470711921991518491207569083979794250840770094985646788548501011404323502122438048117451950771957760540634604377149979095413729712289770289239965837093998560474525597410786879545528643701719126722723307076015387540265189236129973821652598294339032911037590379753753341648415859216083360014430402808170717692427599742729459301455439809642534408830245028509596058340410815216934007891130292993957339931651074091187097724475408883404200035776303796090104944193308055962534635262068731399823385294523402361811610281577234668900446029968464054219257027087809177097027115278794920384859461814829611096575092218659193538648904283131154183609864259025474179372184468738608927375701188226885211335088882480795905907750720209807677963330747157226187163237434495665778618040292880253750519788300555380448595423629516627669598583269277091292642671979877834106993388274495315065479928276531482295198862765625225446573493584678861678382955043034628667422550215097404179574383365409693057840440136850792463470586653416178733931185473970618735826607665923441271495074906350594980249208482025703457314957978999818539557288859288954479950348700083612251388401788566885445771006814757730275734600935286526550105234142063535019352883880221769362557827431897239747684179418731813415273859996314567528369408992835270323439987761750965070613187444870130983894487437712742808341451104469949701287915044249739024618514222621853877846057305251759153007003204835478062484270743652907110118255460005446124299795424020107494506042355490213615435723446228685472880221082674462704450645555977167031986008213859561561137811784411962898424261795955254286288933233873976545824175790547113817317128643553658782465102580509592274908238996876347639299875752460375662835753865119611741153526318612019394437243974666635291318463915588710904092562149387376286550258491537979150924963200518653336097175770291433320333076211420838621487482079465972329303617048918644897707099997736709486701075114955279463822273352251092077824768643993661666956841900330731417520193438632720171552252092288336362286450728923777542737381494387106226287782212923694642108894202877037686654147813547868901556167697573108024177548733708602545332918827690184725346844402690422628256044555827383817127102035697427508277445057204106451373867182396509105600081818653673114871488245435010371685470186812608560398228387626235067094707711948786705103160512451800165164774607738334288344894469933724596581106683075294562494108271124509844862148446774406835746732083361682270071280556064302197593297031185528207151026540772706858683964445871573962648379632078529261988289387048439975373051396873189376432883575171748440255806102498549258185220066087562695235193596671600470296622858488409573837822763851165335715487017928130802409734375303447773865786725874336934248205985102879995441317240711325615462725597906646472908767389956270960274237862460009467140413968888933932517334314884691183175113417802434824140780898794008890989527180527412899470841139230117507899469095757089171879856352171822453968251237556789775929880245126085498638149809459416714330929029422015053050863848415409241247598643134708077725027311569406028050040139940143164972805259316391097227059356634871971028747459359127634909876423008550315800099168267865901187822539769157121745210279063068142946535943878225127614900740479475245041411525547696889147594668289041163148484426062465297487921562990672043394570536379151201653307438821451944369284662925198623903696002089637843863009065255016022619099601217841542262792447433416545716125579372042225908296404022719870171251264608612661558971597700126264959885568099773130889746175898091407368109384470441002025693039639257020012865158370218128532562169315706141140417530831236608675234055007733136810499188053574629445013315660057102145268185691057525964927299455052277390382683513255093967049992083097778649425552446956521335030006160152901122462489070983537374687581738478000968487227637733075223464224317996685959469313960764566266419834726873678966013584436915643240086593375266883227608740045666284663671710378094335135075270985859940123634067264727139817574918803555189097371955783246659917463570315006839635170657077953022572172909059993757539025655394678985465773763140054907554405633169019417393078455120079775918217367912463422038120637511169727957525570453783741763694442880020277032330028158851789098466212732610228864799852216734474701941432444580960487951836426832672374180315936016824447618197008539387522184698989859268488617046783885969570240354729203322744741597302355297846499637747887221043808312801704249203668702369422152496481569155493258414463990031004914443987740390686596770258511264896268295950171255910442560969780140114927029811302863076168365635537157808393175288535037253615865314793417387136290661090380835587610832671885780719865227618923869242055964842092122113021546911480760514166547198604434573038234611777285402535394435279395005484939048754483678800632563530562132153683909377936944403009132122995790687052097534078120069402152090198308894964524731364653737887299026356444456407569147234176194255405092518904089692542562763117555647255531946271348654773972466077884633681076477489815214446973315198701589359937715992939367657781005101849929556884487609432960375775206753951617104970327142213512092889095610325429412353435677273354472939759512123745844505465752156794383984271727374090466519315794460611036909266091290735570664057307481867957277616937757811074321271820759485938124903453557677496825686804843152374321421566706006945855678537371181143018342596710661343623402196960956286284682847055705207907432791945569318760897003498738248483728812843956171067977160371743583503355846619991224978027856877837577763617405077119374243121781615320117748954980814786711355835291328591276387839834209652510032309553490876842907148832368410501040895843032061444873461827546677496975820845282114764342154416772184088341763831667593159437240771188077607409902124612483975141270829646963600596427571047503510254813235841247690657402606168384486128030646183906174622250299890207168826035560092447740822535406040835086338163711117029831383404400944035639594986588643959945025345522732024629420457116533279513957652240566055176590373501444324485211683211719033349391642466659557614658602813326617254103890286707842767181901341546530634744034944240594865023596527895737016720532725675673623116013865576866342548448702991125637438573295018341004802893478617656278366555300700886455153217066760306140595617316924198303940521446348251629225445003932919491550970270913807658707318117793727771025488232240415684068470865799163090103329033064894547389471579176269957735827836397370049129822789017607249023022622607520339348844334865855445029252390341864684571064906565182143091893694141731522286482011024489712043334811819649149887190066257632456126729957330133987797755302288416145682614040625958698016556483254907744956023268513881997927535868743653269066899073450252417339205090928227745164346090414632832369771831210226386448659571411056694440835863481443509614082483129914251585053300231107964133408491738291917044156248275619852973613291515108599650958686777810303389091705916159753602062648621762807191896000687373958904897097740873884613236115288374248865505545466323564165247566691782687071392518377366556041142702261780371174088001743018723575837748908291721493481166429396455893611028813571506918823946678472357480589085567073567789030674492693924944627863500115363019312229286473609413947780538648170612519195258740090900493269459001914710942450148408882654532545035398219487554703625732780585834222417164317568807139798911419064228960882935809947754145859888688851145617538949676365842440905249700725719177956744630185702891218826493965808686902349131606458964273619398970878961188017683503383898967969282428317529909588406566370062903242532067564945846081436990336426982333474721414021081646363424086054528553103956337750905227370071854735397577676970158195946665461272307986936815641923799402484345858769792145122009981146705610273363673985961274431440698670861767879868309079933593720534247113548710538185333596221080712283957120896763943476578171851669788361721873507126183754357911633016102905305349235730898908730788617496751751248541587352903939076878538138501847943031600954306130699978626798364399295155306663426930989671713993065058985406446839121721133693631341346749087765396501678000213681702453763186862364967974364272696184712400466018158111970960041336305579070313628724590618542137662073039925911906320463495334902180333281999939809951726440382124293588789532179494853898627024939453103379819129309515289807494788049618265737104697386814744850841775886390953451399833075545687795152384251214156066810374681791230072873395061407761417253282772951685292736990363662854070516508350762215694962979425038089117268656666387085805929660028173570647486368425636463769373221490461147645120219244865545053646243120577165139674133279618014088815279518516916562489685268403064676299616087239929812863193652455675008828714936211550741338873507164515093406531971819043253251831655431693317168032593382239993004863082111627035580471290217746815716994681663914731355999620314653138614911122845299897637948157593117255064520066217959734110954966469133549020282045288615528931651078452152844094102438986258786461760614011932803702343050060831420328975165933754476306838047184298887426263397341828870016778520664336124899599856169252484190032321041047491615394623249831585126088575675914375851748020322156283213843930062475401155316946642049155421414759224348010604557095875952329309311660410126565549660268879126639093590504009792240437315800372782851307077982267871404933197272115683893083649195515049289937269134690092632723809332597214863598527446867132213779972842090325685595402589492705036147361584966513877906608564138195137357896568818909567260554258367773511261682358680636641451193323983980482475641811324369267372781172483418072695756664061569721784992081621486450375074487136456221376756680038399835242346395833035929853361204003386823312478806868326148283211001028947102784269667714138450363733623072712991853546578716374055172550883872835117902982346045312948593981681247477701241022539958404262588185508350759472553363840562831189355659303783506860368234871777466125023547220802768505754740510701390969113941792455460471238732061623690750951410599712974765233465507183193381335368627304277284402837786548039980209015195179015559395639321587531060060799941176220317663160252005185106889508702339726684413493498768743578240586795272606701907756712896320004426373790031394835594080036459974942297329152754808836494046179131410163612575082992368671368837262223391261438983773014898186733364933030366141318059091690938135375071630692709788153138848316844142319068432821569556910081311522001331675207998835347452108798120139797591597132083827746188874994665702972261504000718720771460420489669734621956726997742723053247095281442807697890100022199965965562165701892649308602445463177202622856941708422647155811060496845522262941594099099650977219577071574517299963105496898231523742124339496321049000766983621219990444232233530958321352991496813236721521648096883684887694543098291440686082495373388552285696726745622856965002784045313648407737295450626994027359591843828057479018433689234624681622895379103984281415114691413941980412395905293831977857052302405339619991488286648713680250222971470139038636178574341359932349605795460124036401468315212630953300171807430678601256573002084761065438588210984764885428641183439286555832752657811919708378861132722552607461998799153013986143326150979149099221235087059426105932415183831301894443275532149958478204764106238239584185546894523208730867718854475695976668595682658525880929858535496539689021864232409449723786047665240049658955722706274696486865197299044387870501624522376784218008118049542072137384712135919304150714050556870935943816666941366843318820752784618153207040326105377110988341145327179287302489459726336235206146451402254224825120888594347581271394215318141709985006356284952104554827160636128886298702739504068643334573831498482452292113976256556365272812068521607652863971233824329932718333735002665139769195140179260503042160955563576803712765715700574273674182809291824056005841096084968205697464578620555293080611403135123030539867374360847989163970868460672664562217122283964096488811526470710415191228048933441458989925335238315308059893644300052922285647342202529886133537731993661666205924728487392801744117457606425018727687805120603998066322620255900963028665361727640408878208029011415890347479742866802969347855912512281618030764199420650975250573887776572036454018361033574563149851150833102137037617413628982709632359983782262084864423081735512500854114852483908663487349301007395857537471299410020849720536998848802054414997569244802364620946014867858338225852768507638288927378528699056111329398525091429164441722718572033789399447671677234022160068638220309132821597695530861476816601434683248977931005021292333394521427052836311537906572596726989320156475227651153213910801809690221238037513539878214691978165599646391558961110864598939685861748492233456024080947462938270498342062935607074807660238901601774226928526308266665948810941721493339819262316765656745759878561767058965963430872614989670702202315917143091575611958502597420073205558638982156715271701307981304512290578421705867740638361726776908762867773776490312244014259603297205861912220245996783213440238308614856063175505804636898996427888603668921602042619554525539040341743988451826200564177211140976460733430029409472634072364380045367447261262145583938221515359267032355801949212323076355065664279772793104030837259852190029240177972792813222527455838214552942853927288297951508427244798893709940336023476671865384087414702739003821902274494686950988786738754841159518027626214650579873117521359936823248730874273552128557937457930181178281306439019763754183297713414696562592939461918782065945347382016275386397706673034917019890954460230679484248049671321171990962124385430356475533301809710540205464740474212153524934307267796804995943763668654916658471983066680483821032927295828596436603712927951411692876985789954002250372387166260422963760961404092788411996626501855010986179478886165862236992795995845800294900599052207800780530957571729434172629316054766833516851163121251323913738856303367874409754763730852428615182636554557641245158407938274073065132381294854979233895425177891306746566551083651191685375008451017707717460580914992174064070087737712224939421383893310899201396669215320244423575104150483467770509304615818343612195506239264206454590382808687398265515214139016001485653853454321834064825485441967461951603960748342417851943075133422995412941324319635521645863741332356414110896294673861188329260366654631858368286671672530215503639560472590362057730884655174915668263046150202009622834743198805868125065434292727932910149403730075871892754268180677296696823952972170919709282397600538632935564557564916455376654152689560139435058867437821140804326614514885542883840302927006499114358210750151001451465722749562153674473305020636968291006520178264021167606349856099638997581521427428004377629933186640181730112893265800449358908851289973495555783832752960908898182583054125643351638808257973182050036310575445911502259301397919673017531821938761936491478654752555082878626248202920415641277095271140269325464075014107611557591186652373966853267830735553242431891815137800893807242158207777946222705831713042537403900204677128479562318931535355343132571185663846834708327914572939500850485055589903309477267347065294575926946898728621419395946415177309503601860604821517924722999639696094793981061990992350091219411772210680029970773393040811826600088764805617164477314993354125639864282206762594856682344805998288556753668504482457281643156631056039233096241333222051407889740858096769530899218781926161736476994221226201141323083273389802351427885342480311532825262453166797749701393976027370176054742090967844939480391402276812608512023504583787465421000339729118538774440138799291945001227278124048936887126138703863100051412594498421521594757888932032759940734467946286734545405531574075676980494655291106890392549160399596683340606664163488938692484393316532381725211910614755234592128718303591134948599365100725492944487212815271601042988114222816319652029498611376396936453110088387110352297701368664098989052186881484217499738206098632760833633263387692750420603159562921078658913840327506203376264755678501971052475410926719443359427323365831179691094102481508785356802473871266226348252547017516140665488631725391895607509778075749355652328065155251995982508370395935688390993697430375866316264985084760343694591354044551974333821921714176519139637272976324715579104737067734145500884676281505887441172106489679439729262655963320407184532526609315137048776298442575192220834533559574958005126835936491137676079542003269285187148490176105210718907282469740061046019300219584830178945092977965890438105767742155481461706213949138171118575803970886346983416217264977344581310049179002806710613490172395237428852929992310804272186850677917227413301821051172100746406526065611883657791458849143618076799731463217836295590539211911865068725345607701651688979375171454361890835295213503250757635864796248730660536093557409007588915005916995524069382258677778711549875833485431658253924059934123769714409963446594068562041377881406264105427343386821184773595688513404943998933101759119578420810313130029875282730147808813198257809653296399434313340093018962140771424026537707112994917449372434510508043878942982042190112590525111133408668863454729056288920025304019311926698613765913548847050264986316952436446264501137827903094502530283840232194938876540711145610737584421605014644614779145837606207450358047693420579050179638622094682011165965640852549956634558712791521396753947532907124942920116694383809603676042972194001770909837146314981946355121476030289968491217234571981070386961339070562810090347020560329323946855372228595450910913512885425597484509587306910915738151975790223385278618923534973681791036383125054844741678884131494035084566051376846759369127877422257526575586341769575536576816079722468238189965651877451731509433310792537959295252020694958854871774891333435472016294091469555395554220874873951427045880288943114043522743221792608512857490990723163277820245294726334747374038417706098085907397429905643612405652788239329302709485963245205822845564514317667790571676366553303359704727139308644586034134174159672949868310550065884341505868276257209192080651347749628907606821309909612476781774177762092755220675208127836517657958216510609035365311218606740694054079785118024464590249000299232218053259256098155163836179818914390770896706420543840063545003271971246060374745403591292951150057068850239961834893102150957624695923693291885896123424588683402003881410724696700744070106827664383189305088640668143499795955492975463996606601348818417882433445600263688377733630431632649820955554953308250419522910713297355725555076464066423456655953136040731519439114454409671409900680839919551174618789228536938617306803327250204091847413241391014488663645604115302162617824111928714110456838995871985948868672325525121324294319268012374535082890929591865059403855189820135231996793715561940684427891116121407076354841255895086729567611774282091167344811673574190027502515921576664484079272933844606605371829885388130009098855732392113300208258428148910711338246549026727099189019749318365818784754705714227658615418000995693555357782866726671939695840015964566155264080769284383833636133584863998175650515045988254328289252130793832386429935769874927372477528165505502562984840040488231306988782520322758758767550008969682336596745591003925284131733856724977431045010620715269922177233255873131268653300270423985022958502951394529528767292297257145937187210735273536228447697113384377267844648284179303446333499175537713822959717169939997566969509266985238342784906728196999895696036135447170745993788521933925881664391431394102144961266843696055418235733815096481742740612747122942319763227933877679964838634432003411002475119378190641639876847665343448308328741839571971877099776030152603442085569396877429327742620881153086381723264261151149293278918777878332899447527840597929804569252100299984505019130678933941000544448354122657164995183364886353062198797783027929551621586804730183846846808200731580945064923272765668904922617321520704324166701172154683741195424319691083697085591636159167279802401652934362250699651781456625797597360549394011778031390850487281972407918995638857990800443686980902617959079587904260623882410313931531820134572863878019539616736997520398417329406299381436953917455099609870039172222963587824366626995542669025119163754537833827145302599558738577971894064740464361115801525838328468231500173171631355999376705136142026268109630643322359727087555660566891227835800970120187878092843854874804639141397815796373021952966036515186205914377912496312993626843164706781505708658930787164568105339174915830367787106366783226092690021665424215101915208699431522909309838237718222327469080994013435179933066780870334763817084792124231952076330284217524752017934920506006817631502929933999564144489864196664756576586445408812207778164027288506787561535621762340664318366074849862133893887959526981681394359088948055052203684513667042754891245517326188522612944048045974984308964063970726431268243728043167458701076103440409129171511228024341092312988267450780027592262383523016825675133309319022490523352696084607265715155375361393342067532884072293954512880492166873378303311662653379242494464726299738380613294329664378781208184527008331174550245072731025631313734886335160160975115039449128710102279687360211993392356414342239007109866293871545463119802716733723730084941545154746755920504502704917614342791874125242169400053998655914139918539984919791835038345684513100241730075058498533727855298278964950131077752568498542464396056270137178648717008542874119805719490794806440085804507739055451955659243605014232177286951078951119912465425791175413051107287352949313999858348511903635867035390598873324763182062972715642817838028423594603619656537987943536301148688123483442911469950906617852236901624163183845539918758060483490333273004401879682196202318636885160287098252805859091870642637736400442710897801992452801996965424038856994357816343870847479442463549298211822845095518912965654189153190548376611536273932390577126168256968722790289397553889968850785299633972007852061698345845642109598270005487124604025569808775572840105123464520629836753308604981323698812087333190585330441756030534311651775630518861278420331567231147214052160154477867318088476179724592788618612251165318249771386879115305253444012827417144434524694163319819619552504794948129199148452764674219676589406335833691726327473007595363846661028777272093149074109545146891658655441320716898105208362177785811546850547657698145485732344765484596318165510699519871100537594664484545270472439008861976753416059913395373990871063746122822196691261958558340754125649385581525294710014832066242271953058960621689007095297936353296567606307435869082927649303433391300250874074570897554228220093734545114562712891870313203598425266323627577069377531769967143272933709668672833622885066052237251804298193884400873384444267093038944215372249038448494280032248126530722689210521723684360704882565858024776750371517007750166103755018996478471631488948625176102970836559270504996011670655775922180067156328569652080206477234028749613969932724927803056930376464516567267759309272533534170774858588187144768960808980562630168024357338088838231684125193308468209171375085133057027999043336909833352548925338643789798492859614526759196190311558218488913873920180370328542181297380751149267487080861125368633305107648469465486105168743030246683144046577155569737596219934134806457583439540076711300672481295742711645163323315673388510471156360234895173543309462034269692239178187364018387112628926248354565092177521617234233308039968736594417311255072746678436800564361343799054949879634630178063158209613062524990200714464700871347105324788570502548543025358279658247002469551186591260890443693558263696254893125918821021279715405659330672757489085648097642843390729794582152026340029472457023769623116954581469207969480677745335213518873667892779815691346991067517843400383468087059095610036777734039619327447415822662955175790940665927765373265072598318887698591679630937266191253828124261045624530412501175856419934345147652700639651564356856354480986124712353678208695564383875067075134206960252099401211129288971447049292317158264523518004689880608719465499603382991322399845423616697937759715373360345151152959242801641982732507702159569107482762080177023854295966277098064727985626206714547990936754220215687763085413531389341975686703276628511339177340966988269279586074335763060568900220805318755661250423978658602028689596791247227613014266917358066898824594812972404692567648779951121902632595560218003848221937323711854120973855639293767377213970086967689190899842296473210525957871853281000203583792777156425305386515279085965733858168426929663471946523308541765296734978809623657449174066437882071812548659254193413008343173881713978779159960178767273452229669754367578987820587201999669476525787358069500934866621461520570726429250962325954337697085949640762032347685683526176496708958255222991870451750398909538323519214859799889389343610199976221400814940314593391443411848439923901339966255531819019940076064756190502701893004089534580610789508456063648661849542131920443187824596126722139119477755550054324243537845007144173642489295173601782473643336849743142916780407249089839017272223483271535482211429694453278914327638821902824232163137789928965897817164204235798537088575970530269296604582551653083151521340507560865117982091973700193265299586381012765357570513751642464569876566584947100493882316814874240233813910308721025868057844971272762672379169118133285645558844655209182695049373848613109501905463415567486782264932430747118496577460587114539596829103619844054196613501192374866161337541911636839805828691521632306447568017319158949232708175271363058971997394474784256877250827718114590307191180262668918414972441650096456843575242322819422084838611533047455560318120773429723048854469877031319409230479323142436389513216934626123829284646552887001967687281557315377033774162414860778041096326416557687663330166537147755736031765128540871742822083029837027038540749248917164908926810828786557376175533259797674393356756549425105348053730483886712009205116171848546432068843103038214415424418040982836863021195239959212330051639065785827943127117521900524337059388669158046069837018470794181400122465112066181806223105799353485448559498087523001456532924460206238647891211198136146455438820745279715540330598015255788694640968971958133452035880188496090304700183387974836020955702863605113493607500583922171398427207093161938329003674378055239566928129291435289677193320263260896633310761100609796454089111784610568038439418720875032731381565914440176321417235378956315914145984330007940490755176839871282915593172344812827478366093109844166900228490268983740049740285745038948428475475918236709946256687359636886627060796835925224623288583341453075782384400441481169219444514835662352553694415627989829959442305599816248401804841386923583833227717182961615242231284587231398569981846948602896353030277576818916179244419750016247542560723455877400540806676954751866015935135844216431580597089226651451223439936044488902946392845382516867517363661604029528551253144012246519785974280724604696924455006805338374967218672416117356470625834274260800147491110854817381172510693062428271667929408643822450725175022483912779574752753542581745857200649596537684948510448438475767745759253830709748826666659452215652145196783256534693350178008522986526058942455952389885066269403474809572007058657912157077113156822773130331585300764718798688019614711980067793650236155272862441473703088182218080250202809120798931018519857826957384106980254446829273973514220258030862923914060785200783061240650846820559808702810151137693738021328205647185172403224260301971989516904499028757430843332701757155744604119872539147283876804004254779038824068021655686819144819202791963623691240709994706204221499487784530890383099328558558765706933497235779978367455579893070598833396124793171487614730218282751750111888229249322230248095739395947056632908199404122889827119189709987261058121088505789493462447749729816357940722106692776301416667910894670011260797571319641664280583701056668029424544767079244184694803983772904037344250387376835197136871948664785916810224367747640531923419238942334559104127743469473524237398248355194661329773375459003359413849263063142429000571147291750209749457630989269682157047650901882601817660637401720866884485675727010936324246707384629148411553816186938050518668569912995050713166190838942624496420519506311168388559523321423270258017394587420693334811109859667430488941986907875272074921708436434339016991504670360556917107549308513944986794960367253690212262018117884655481748938214515605849313244118432013024080680696747997208881679416253228102891858480061713549327868063179176407017443047016994602226408806664500099050164102728807926145657001256862412858159936788677588205042570041987783324740217583793866290676440397603253275328877135762335306674090594045724977988304868301737319151877920729284859443398265614103073477581407333345981576683506584725812133054038734256077766380408424660225017217046752088626530852929677959249011098704219990526642128119340678905479202494894179984523045821469714862465518595166316865707443707626796085627881289131587778080239176890244028189864882973659808616129628811451265401966050574305639620738086353950479499445185197768956812356583567705107396920109390770382928430529926823066107530177404174889277001378999066240136378039814896087602866945321238677770426218962787268383322998325706059792279315321580376526941844784146975978350986329389270988554145138266298252104961746035749525550275049322690189600070660454579336245310403838666063386351414639594730356397522537289464519294058926027140351694643215662573067739857696397352605400757400539639417202732265668548435693615260760954172276951845736236813198913159745185683314334917044859180332958458619760784249083934404229373482468391930010004946738745501928896705934353896730324691695162657078506512570952882146210749593369381568228410563000438659186689262239691851407199380705835370324479530669968787636893069107214578704382435492165177927823990112292764083171763939605114053469334009128708011493977516520764399266493684713556153492689781651917718704368504661294780786987305720514812902087029796938128682824849963931335612348186961272929759541771924538981534253940204930593682938138368251030803704679335460721729742416917491097793629991605635613434116015683194442471069557632456651792738559871514521227397500741145352598796178289293500773520813826609358127653014036451022976728984377590757110946435035654217694399587182695117328864978132777482066328880145656787316100174141984059832726749961523071919042648998005781613989245814284955972363763475930295204900759273057070527372345449122570564578251194989724793191098158055461969839192142693322948070493686891480674695984851886206144499477641365503754711380809596378851641791144635338450479353941718608773515543567366850469512248548539145065009309297481196437665307206498278232179054876787731759675683130520789861993833706685049593431240670001851075673523953469288139548826834550338762980983998362647935959227849655586253532351880154672544032293173299099177576146532768284664320290298794107182639744959942363758169822815768882862206831100223891916742805863910421626991402102333663188839727058448425236576191278045801865110986192478139008809683482930323299049040537474898943931577214492735683096558279682197395320274818217786308815822643157860165472037350675173614228795219623500964967749458133427974824821726473010630284698099912421509841379670156547939664704450997435457608981958718837564748139221684945033248274505659151312445825250153784709436506655358746184075999279959833756696646260656002564841083905919246342878398098184174379942724169319151315132799475645068581591998121186165659009076183387257082986081485549804966506066613354350927417733482130067220873892169522062108734185650136663166414095987964679383025527733207546711982364790429279701233532047342266676383279604638261899108540342474801212454701019878874439227496122006341897942009372116625660824777499250076360697669118996312855215427335985493866067667304375104250255597426944711099365583590713897568877753899981914793224239324982789312792218527938110459932798207031822113873389102269324240541790650023878473747325228929986710966870792484358506035005503693270989665732961449163076575557704299445564687614165089344333622567432905522733698063999401267112136137900416399874760031631899803347277574140094123453340412280645838253806273086041393348222394673195108775406006179953924050491647983122019292926616123439651523747971685863050914121650106095319398578247752053436581880689776880176245326394226837543974547845964810069768740236731282559651891662027617163525132250708844052515582010883791911106483073033274176511016180283749383006487956799054276551876216379204053370549362957720643419079781931592899831417551380590577241006051798094441960659641348277300001993639427009964903163872291563395995078881295561568666134105644538698191392243255504974370329058033985102656691857563938432801703476759616691895801409774237256988082507853541212530762419469581977243552164234007956318442826551771951710846210236241534974551984127060545922571460977806143751888463705412627268777059811967478202372047024943708860305600312274404863287010580561580794686375649137682682066029055557080115052201803188395692402622355782803506299790448182572109619305883915093619854080966347761392924025688777227073930565502344582854195516857191053110358858455208820229795664405873134483753535578027512442148730427014011859500734977762555537258577992394669021309989998823969604160937580511777222426577439064806156226508832005377742926805385694082273260901518137349308988552050408322328050470998946452033669473765159690306109981500560299647423184211168358993547889211938820131891448341208159873009664903418464265900971166609511556283376410415595097360033255837729003670868333358647029332562455628670943297329504315407034744860625278550017343962211040795237748634176699432505866123572339547791207735268921946099248928834283197645119923594301757778589836907304581030090451669651824881167150447349567750508675554232102208133084279812413790868348021514041911882624780024965632404850536411200379844786459593483810021587376549802178129065955803123287580074106706132677929249516673511992684720576747583162947352365507742545505805585956075831671816370565150799587354068537638331165430342448743626483725982778605522514208552477016266500430044409165701626656279105711392664389339919613412024684549715707929378583068696798703705409726054089603375549705435715562372077710639940598018170306788626499096070598914066557853253986532673123037743717445058779525470905899452047980111640457306878454551695217158742921012696849765525437230428312478998692685758187944169181742000872883030409023193900977695489162829597307287153228605819955245303446704783057048685392745544978431617899228885358031158271658378856539385070786016936635466362428838604769640286942493565302113930401918005159152492893883656328183517887294185564722664822461692320316250310220708632648171748199426569115832920120772999829434700758591958102615025324052299493539787751711467848741987413756505044846912163503840322542800769835897246842890327254772427559510074370382395727789245184484230050115444602196220478210603650570657490991304013207748589601590430452274542987341462687496138866409632702080246244920173613524004527620686109372987464309441570315292211958393967363849833688121347723179652150416603036110252116413165228001485021519465861319623823253155770589961093136226944528703654331264055448688205354378823783341805306966874272365129924455208112536622050649369236769764539074607279041357924989076347873641211686990505444250576924620942921154114915998977913638751935482271167484745770707635836815443673424646526213994295874122662486457808349655442676520483061772255508853766693658226674922673431495608832862140984473219436260805327337364183337170853104864136649991222104696962531413769630021561871368826683128438445518129489810684321108386101000913141221039367795652011878067797946885467297517665505581573946106681638510632791755068876018410206213338077927033482252954357605799671812680381853302363664613858384516111751007179618056646757930385570211867615952901414688513357137897224587342410519027816033017939973259263608165085242637726036715096847644585480956115329196629260939063906891818120832634891300157882627666066449370878752239390950198888241799173921547626090008731317351148086324869489164758995220481943359248248077134583008823278437729872391467688346267116558224517975742723675783339571978249980915092091661842083533722329359542015290195015503288060324895450371230088982325893742855621301073316542421034885808111701061282157037809145843194630652006584690192131181558932274693858248097469418499711578648727285388397743135973695693172866473883446064056983178448308564664749771176049017902384904820404071966413763865982912673059832445610099243221994845272336460782978877829233517634737998532793789335748869097360515545306403245020887068017145331641181421054493813136649705393706667775532280410714645572184280316229107477484664387842517299350044160346087972680984938669143614298390391733186339475713960283482776661220535859620462850670228378706612952685002213197250631086737236608304095460193340518730087173347575190012571814472142340419773324142299815249187013780890356606923116093355988211675526980978180566720312690691514958106776324064909141860913669022071787078938058604947502365755503517281446525597369979852104724554589411668134956505562882769439784657931687025119441434667048441130226487106656055433593427342278207874281345249935618591615470295908972621568658974404175597861603949327136559513048867926869990374535096258611984390498916616937961170028532879147199109984030403430493552784182563728696751735953080018715608080409559640667883573347840153820528438322345040806913339743655867231809190665623382259376750872348670176564539376552985859168340758031674455891517810571479636026241181743796207948250059521462396973165798449905282976567942563875524750493021416503362910927799003986943522411854637771757446280385455262234265100392901537225776628122043381396096267346507999893965571856411912331463023446767753732465780112940704026426814003132799718817502833629293803047601758382141852082091297068997422527465565094288672495749504156521134721879610891782766741488999067390449658031917071656154043409545046863737363570623814575071753210838649518954876438220378977446396683347665097853759565781910001724710226509315929189329061254535860603713723380705523147361745192566780938322142286591497257700376052256087674024090958214480345706951698792869039921862998409481672397440151181021688234703397504105150709065465250325034449341299020559208752832780499678445765218566357813606299107414909376738890065373271118486724793424413091357072537764673720011095805513337456677731801788542881928912538544506317765828982949967708920868968342510233913522451290592492424586175806787824216513827784459561623752135790585060402069786616242547719359439149314997543879348861265517140659154733633990273426898812906722651001607241212230445663987691241523579501594792649624321455730786623427629541237809986158403635143690432625965500605051813980954606678206613580857625030233319111829653645367919761708370601200404184395832875892419603991045080164812151335041944821715345969366614300456163963465247102467099009660795754694150230389852182343602294910036970235053354022355087654707112757874136178059594135808804645170092056431547544707185833370339572149116238833493319210382770137184800714587801982787297499911881844808372798017923192036439237366816389843425457345648924455790103023057781993189003964723103942375743449584177583913942109906135781086033610709664062728679007057510726319762305415086834346298950946652078452814234847897240384545481442803651042472570299817375154200105088715494365963287037927648949764098141563472343847713875026361127965596376033532213931714840550938639559458149256216952776002980065226768172218753435177866261951046781675827663068645611723686637451732726250492227522528245052659680671611812290356140100328595678471323695107176453722006552280192620607975605414909542905813109439804421985100581954072842268337328861064272017713176981313398998936697215844985384485280351800567463891719111151902131673380439225643417331585351603982086296765111155635090195952062722493552875305112806931518679823080049397693692458855199133067482349982803306797262190317238130022630378457078194599714541769501105585226392754994161079019327158336463587032784517947541239800542358008739074568288048687281936062632994908588670356920534259730095143882688057508403072626091481907661197819670841469829643894067351441986198443029372190303924331865170292336423716048286552814895451568436200958936200259235811704809287384268805483346842373212933868221483060537719644342322902124098008503702422640121469081882613935256905998824222800647406849548646024494092364315238672079761228123023940915656079427952541224243428956862784328079353689856681916048102064731964797058355998908895058987734879970120556527667614388938102626734876262774574066942603448583752472143670824418174225914041625002872986830338117534180657651692668720328337790561722293989369520282425579197183988832814232264136245136877792453840870607610882659853579950332780864779894846640679631138269373042327358732717731912027892757531379787388418333249830037597417888350994866654714646556161808687719686168868453505455168417318080049539314867684749717175694534309637295288494640804748260108952412097453262587950015909752265340985789721733388075097144524087502607368476414459455574552148549312421203565439501367299755872262214752356503899249822701412951173136923296363427217578543803858566814525337749402544837590502235099337013453143115646616898675513227852102814143001856435944063939101880550775846746080497587465508032597627143649937756594112438851392850265044292154607151980373561329844126859487431682688698712553113714301735754025251115603296495158178668081790315548527434223753242050572689804093785758014851258349156325647258000732188554418186381756416260160160896478677265613403811090171718771712832488430863801800342922308894075161590608032572269146010223895606156712067153462306424123577977196857769080363016150576728482904879444059449786208691945578469407331217341034124518548946445333793758408813853590001449203197248964300152993391356203860782383168205907168670986022435377746470494224284605063121384607616084010491372438906611757637628819335800381951296178122761229849194689971169219061954627443827634451921164587330906206490387073318498908974345501468888369009663110989516964011379358508858112096079807446788291688484393957295725719420261276857017978909126550576400319312269325027390418346940711956672771297955406758036119946418358664630640968333429373533294683075076536698680263500367711679604615350494918064453300174289394420143063677152172154326084862164490250503213241583197198911170813540330443978132995915756636953333502738458278237613175453839171134268246343373047609531481522599076106032191928179127218113555338709632595148612237482524412559443849378764726273946039779086062493889326308903844199548752875629768473788109147688518936294096359187012215945186190572489789707569349160163588065103269817992941887993279940135017180080731896660783198511917331568488840137837502123024534348964417031593642966322744956015163765627571606672820268826440412829955934259201663323891958409128500074331006197159207921006162025536865379793343864185712818114257198683686567737878993292933731367131338383801694804604273381768232190997666266119842005312116347071156493132543917090651664004703614034194379019731121215560254673731063239922571736756001010555459263298316270326645935718491896429777952045920304374811178629291844278612729911054040990729893420378125549446141659721047150242282121506161382445559482605926887597946358873360533501359039767171670786443383178920200024242839369197997019012809227500905603304585197938545024883371391860793860404298999324640322377062586950216977045832201944504467030965036058266420635748328146322807883090644573890142733685633013818303183942427552347578285751491380907235888012052813232198285407743527644508106422686782092681496489270845143639318769111184099952228218902808006108811458819361581948768528999029954058488529381731067455139646039310480053792454465667856964792827768580187326789895781606237572653138953391910533893010819647113498128138056870290729713165342485550891649333920694670282511344982679795936994170586500262217190963187502885108686749742083275030366578492934301831664033901027148831974019998186488032218055183341640516127620246434031108678120364683698300161078435991331377906962657765329356078167686146281570831863236720299153372589145624341931521535213236680657826227820471643479584928285614759778071772146578856340788074823375177596158948820382629799388603188026944237397492999734862345161265396605085270586229762287366436375263174716527056370039434530527820016774103229519035021056948402432405836621957930308086098953782871430316122506530280821997070312925562515771630668541419268753529080031989066971145823395870838122497184763115668600317294369497206344096891129563144227346844692190679503262046914210174836234131965503485374959936357371682918996339010607302921569450739972697516790857023430084952816876753964618736482523238026256633863063346127404929789551127719716264789408673257245114464973153300887890305080227266548845305187810349128126854838314254138093868289428778872933223978118254391952081254724848234767338295142154233108444239726203529133801876845095654885072190675048111091841815716429062731336840720285226350147686872323212082426805267575167687610702312856207931383422369266310886731563024666205985581598453012944498151596970897776976766039151713580354278218251257637446502271206220151166648267191989267404158495406578765948670978402301822336878173560827220215005038164475571461969373024491739614398923471185601612479065112010097618296622785077381700598689446020783209957762172271547366079339320191665739200212732320331240346122170456735601973724651195452227758007492938117157374926582297216933420470107398476985895081525918833194847679405690977258166917817014799370767628067045657778217826493571762792258585890408935958517653542769548875217301411083866273838345355446278821880255715601510462629799258829226576985761617640412105885252372710666732794068011457625482754751434095061287856555891842447436506428188796652659452596756014861994600212331608257278097528140958277016069539423120299378693853404176420278008094034088398559064424376110157475269329721138545095773458466220700990322867099894002664906936237277549279862492185991620026714404150728296676297739567714871510326071721742819493333166026843488963567944815702534286678557367719832360871278913492369008799622285710447006326611569785996309524551344501895423070998502742403737460422669578961296356765526882239884425554326877217425049074723776093791285048966963689824389137770292978395223930837351542019092214185529331569295963743505349372965680985333151964169160457790083201801692637720696007363711449645607721002897464451940576336470291152660809843968523622677574671284495567865959228717940513920870588751557964933294551073346424220581421080580702095917146846528489889951266345896795578959641754622841404009555890418073527569819108088734661051241876401577397039180969475401170799659439857243926541615374257819406802298159233907090598354108467283400055776758774892666414957794786298174256942532781169980347725422518413690699021093736125157693423082561954979252793806441925982916752081407457375146703025200471352671899244360238229969057263749838102133786163261055571119813430967106429021947422719212394966106851724243524740669265432931620619528644788976722693855590166498886732566443189395464940537527767306533068321482525377786230702431780659912894772580077471626186622910932144127061505861273757567224476430195003980307511461964659471246790410336476510649172506685284968464255490880828972566522653216279654243111828739929206717839706104184198059071045514558780328086256631474594138718131613865428414358885910333658396343901410457050606522107919521873335654094037901725951935125088031169714623369994868206056024039350821695788971759558601210527817720868133209311181239384667094212460321302968182801354981442301097384623473032722364102830085233238949063182203931460867976491379566344775861369980400486213218818881821144081059270543792450122987697532044072610105347743733817964442570520826066645857015675639719804420502842691118083522957218303162662288504273128660269341884332174994001522482180913116574781053856830359670042437715043615233450824043628425509464686862759299021142082478745535865338894758492922119108965581888178367360617657778493509919450672708377838536252832614521596354889422877764011299461443970375472394891445172371121913751786703304457536348248227362434825885116046366394626112758744887335690239735167802052512310045428423587999305914301059028325915022012241808909824252215083519496048155841889284553444448664311267984278312657380194133819097933460184930688740095947850288469342148700777878338099831506890791763878507045067868350555170100394922209033707239689234622314786502718619535516545960198899193358094789086676041081250990851494110287375927119826421153835706069377578227538860226113733620502867793473246222309749852784085170865746791313823132555527379936482348641984385252560910840169332551024704556521732429692356187370397149091560142447133410889399503262613974540574940416670145755015424661251366743954433135903214089438136433255581180303106900404851369210581077585230758094269010997690364529974943779266238272129822427527614299790843488795884226019725062440833897546625135324054179059038740011922112501257713520250830198091116431196635642876939723589231470784277738026137522587852143204996907893104538639680362713802416501688685808225536060337186875586354999739429028721663982665779135625845085755461829848047068198639592632403310047425824356197028618336028510937510010327498747104435373116397982797525150873178465649013176911849343147235046278472221786874595465595708709396858312271896951373045766965305200589024349189246193978056983688832940599137439080485074404270251850741813695118025490359499647283909213160799904224671933276605965170598884190031609760263104173359830008553074048185514074500979139974404839582147475113940441217561756570071897070969667999682066709896705382177506685825657304240705180686790736590524977506905576973478967753577535664507657584316099606903356599940714775767406599188873225941023816237974123478437652555862866405870305179871248415597810149427811901198957039662408678110837080097287276282284621312140675669842777553818446096831543741977265506303508970232931149460945234108478923113965762132850323701356423712020723985800503075151769753199789685809506262432147456885840468351435304221147457862414319384570229214967675752523651135491644048268192020146545583156982586464786308204180679161849724313957543372303186622549525690714064850206676160592436905837841090393030866102954707318221111793490385749623330085728602931866462337135368113992330763337622729704718942305018461571470916495983712811500410047764634180707050775860213485775927776444498298136042512444622106495111205140143563041577603156516549328871782399954222714340520839318963661237660619601539383768621559418055762998486638312225729056022858346443409162201025189570148841721162587392090791691477901878071938774080472304928717934143381765263345638034835330238718030872258986456565113621640206214117563675441150193571703091870637926962654143884136352760866255286928767941409107171733582558725381500170734503005189091349362099194457812216781209574540503952141781667445807775860929978296947697942963093218286168537853867238846351322611094487761281747589243866660768815445019302028410238448679840429597568011323011308724378947797530333103703542915816385704287344003687079740713190434112335461789330609896136242879039471453253875653267377444738988621055140192221393796322834722379895958545241229914950160521616025672625483803293225459200966850223278583809028745972841537150562146713057628873546158196903119347100296325868254298519392788893959793364231499461827195030831750937648037861409174706580699470757639146521886041627829535924835246217034315842091015641886503103850581985932897118858455895737713177964342206709310964625182146855700590757880089234408429040143846281880221390345713468924162391605920797949944437235818197845563435960401700275389490570746495353453831379025350909172700385603278504920049742246306734211711549027391229963139237352979972644962505494852551059096653129200231812101334513297710525118434077616001221885240065301101043699286286406498470055465421999266928314196460909460139329778959840809410879327698903358768695029573176303962653180703876277387474939380222496344514272066318294813944216944424779444072310391646426865887231721974023249010365449117332191392912788514977890931123162275260914668503398497316761411637660898364862919551916212837188571304951409185866695949145304496822792386024724734354727626497078891848072585825755180527148928793605082736843550524480721682284772307750713590236763673331737959163137179411976221338941139368354120564676812822005772503267894260859445881709957987368972737170118134717052399769952225744684115244733701088509168838847173574854781574046794075370378174472642149689548203218348950309224352519295632383485513982663774978246531953697549118919317545777703046639777004816344321231434936724311717370791988260965882501702317049900563073866305631925170211686513935270735477107157823951020342506362773563884559792700982508156366746244518190822612040122328927264815639970332828060412812170287160550087093712636893342995925299166755942106559812613530147058060027312046515115417018206531516231643930926984968356808780337656527659723805770658836641061698884985760967970328968546708886238846357919763621793079539933746560034094550509905942210665067594299943764130750330102899907772672470063886600520828907858553174288998790407774965099748253667422877463859524922336290988046184294500397645598813815235918302698962212680811769843757446691049817037901270565317286632984152159420550545802663611344644317053164685153627767533529346574843686708825742573448591103474045872291519917957493799949551279124998075854198825926199772518898711811263802386829132906573351042613532225561581172503468408858307204579560978516387895192240398537326167690185789893162508003110720067929536090978483195374030235746507163949162247091142720981894443369049058718823354734921689951707310984406830247505244820173618697202614223126281157742424173894633927808350676892307352458430524052455129057265415914350748253735228968359841505693449208825426097804674336917493887313121747319872080789740937806960926276957943182189869897644391792923414609764791477032134998036176633938406400580642390235529400899879853801985906226141864752964810902248060964952511415340535346535934787189884566880509929146403608053069996186621126458785341036304794627422644597901163712373839506071104258538161684642042504785015215040240816410124256617938920022170035309455176873194229539878084312090141434780044741976184235016446204368907746843486913203771883357290425137267394400426569900314775213603247882291645380890917981737709149135107613900280993997953680093791319401659796185258111791046827211221566677981456618063671672382987541412732432017723125545642381212354861700676356924047217673005047996658584345036026113723626790977902485461291580815540150266630128048739995461678655183896243694917419850263214636794764125088526661976062228695872554150401838436178758807903310523487233560225140886485992277856659797214796996190276781297705179280463644953361038505494199253535760631110974938909115051540156002824776786020241377751437549992386538936954424711759483580081209200314510174257074482073123425236033923099016364757033041202020675949611973758129683342973885530841014753715554645496554208701908560913258428038384922935480836919498613836263869021733404814653226109115842811134399378155444953086384373981098840961782875328109532186192232578734143452715414834562181573703368198905763082036586808388985437586448687472095978074175163586444016569031546377295937777865100952529068079711606188700430329803462386739104654498746264167690954341386370248194768904651403358260388201115147042084307445220394616414123985682458468301504515364121688238402266939485570937633586632233798558167118551318051459320726676431844370473986807342392511110369654788139704842433740565424061607709483106433458738541333078062817624739858587182289556597649006444461987984558269233890518340071086592239799633538304238618852824169410016842054490511290939435559493870807452408206760742993684257642009245256997281706494281578776318828626138008452717319624515888892640647300403539437140084769589266299460958062151643313561950083483140549695302521669853496985110126324975859922695491200498184858014324699179727678478900659175251145949496578890833786737564539254763316195187680800046593407972554365942845083082019687326532506189804135041654730303577948132985594524490260687871115602757374096228809423587596267242779245176777816774622237462769620012972458079532807944192079744990587349438977885180257477454522810315356938411881873941133055124803037342609341595029889421492379133032674917797824017136755536881978141316808632440160395077548511748008587848921744820411129965833414094269248847408138186004677300885313766913564507232515370533050198814955761843743254946240455398240148546644808396337216691614977678466155262818193187272344041122816896890057828941807065195807955339694854343269404618430649928615527233044519402481545301197887546684146301861184089082615207503629287938731425713893388798320703295212614919097062914292466048705451763802419075724503872328790997581457532820055242512246450922114544851746472482120220657768480813421673265910277125785531380048642582652389824421691224783834341091152418972413309959217004881689476526332932532814803390211415175643317238003357220740040354081626334201056532284750838128270084604381634737035347541035867711345769462661836086755705656173904289265893795154946979469246355953974864115661551753876391311445521684555399581786924997705079857978459545193559974536020490224501260115675273311111200415712933726818547454253564660632303926869236255833279558778442109392421404863709710767820076717022088302979684304976469641136499549361593477801415748445153395340932276423048708013524189815247276181149076847718096608147927033959276483502985376212537378652531881280576036427811672698207115127262106397157093126697812089150933104837674118403125937893596752829507898595491635090562309429417719369992547137669636188263936440790871551958617224298937064267770751481998560815157576013162691226611800678126062899861810754200325297960792048934405942950279923180576629316022625029377294243622158927315622094875115740406027692372963942881276695597253101759860664942978664180489824593365743196735932308177477673406978109211288646701690579717663072917238623858986843224913913954994165635819218274558968112099127433514161831826837818084567613386748063082328184689949218489805544370647649780477459140362915809649036329609644322751201881402840908918333827036221061130374562665025416075968317487897283346641281140863743946390533976020465984628584416582083477764029927224128999893936015996591130985543329536198018628578395877191367060557295223673371087722533994361080302637755659646812869741907092360082337530220357891858375324113276804022176481089969686433582685409327319348192180549499077787898461432495447120906120981609739468425807879440894148454106505883977928493804682261649469887263143639605314868951203129812113803118034910992185007424790863970361626886534356302202004184937472713076551630260530055901323841367479497396334594632121793363769345757525234318629111402589006386299406574611263120527817287065776120745449058709024556952681572806339154699461832715535801288028591401296939673213376196781875630038601938316162976439905081444931329100309497514378218909614191140414825246078165907226423899814673280719551056623390946107572627554442726122199809531742587680535819756791254734586585773101287117938758092258342575578967577267700266562257429956064672794367086185168875856901199869535875256417685666627789159295647522167558577760402946675707677663519768566243099283388591476463237216603471753929372590245907793347789623089128773910714560525281365726895877006512444118012052171201355729604283676434587839792223766039156152194082415466331764958443342381333092025645953157268203223038303230295085888505340203036579922724823797630696381582976997325916230206787187453595276977301250922870239580512312893442545576513531000061382795656149663107944532788896654242341280243722839768140542495543343383064209140861765042705710371655182181489217757310737584961286563169337965860736112434168474204550992156143289458930204849307976563160166890364201408270923581494894505288065034707073031898206443809584732572584547469318698963002031191914948414032965233166843730782939561299959284502221819020773090761705687037940610187257736095211373233971396027318608569740926578137476359071312952128650146465616931733229592182989747366634803708479427272576891881071088221674619193584749937867912274726957991261981926921407207569039002358634298334518294041429149222050331465146716336563183977137265855397205851255199363094191962318822973243318202078272093639591674548104462178515780171627548135552346981525013151526757778749033447822470794028996250391054950309147872108075736911120504900346297146354753507089419729320775638697525970234475945945619239311890655486172195366971377126914236610684768829026702317024311997944166960709640069060604707455004811098756810178597893963758401722304178118158977166257385798481220371310965375832560799130047835515641508271233707653932972665929984845303883633822597335497109823584506032758537622656999514239624509136234666102274107889432698771849761883848074478888786672753849196309085368913519051586766329461655652680247145480051058805157531155418778225330635410716399644507077737711806046752571645161851677915856716912850299142148233151936150566200642290042844389678133485880754284680741819699197200005407272102669019216827347554510366095909836503276069879265664125964397472416211244588040221199955649819958442505265556563030221776684146798894999577550886993176824258693364598618319257123902068695275360413553221209279134850065442772191281323862267198603491887337445106896694155941427309822931601695271782808978788741780170756580019667898821679496480779593668626864607899120310373391455521281614338829152535000301049429567381570012982770706570133445211913803423454342705693642291710039711852841432388030270634442574776537101097509017975354311585682766149877327580485059220206111948580493399191635193616552148180846231124547754886013306366663007057500629501086109155926684751549101123793311366996967415191369531467199383436982067746952099687664097465982992074137756976935663344145288107691598921034898692636224188910728912762064510018370951205293231250023381316400588051823912296103116514072550510344211516589755316266848497770939359455830440014740164715390080616704413001244379216134999554366931786718502452328670841259756955998012495645473086248824027696358684365599187466294897740397708653562986210822413588273581318206351390253209330789288509056990084944623440901464387846038605321720542868770191073741073139357812991955644595231650201085544092826845390286552948824727955072146080869690485658405251924482657142967711461055601966502819633029298920209979290508955377393408834767689359457317195453904742931088499362861109849416051738109679942517415460447411606394922543378042515995922207801411829206595649178543380020111629682485341298232095613782503896693361525764734236448898962082288027721217945462550510164931276100772295369205524959442244007887081014727887849428736302056360607760019252850103921312101434688743140054226517407273372768617334120631347296482713795798403094839020560910413921527798857036881423869250074062368398763040748156700789316811008645880628469941509981018969984896383396000915816091216728700510570860261461604341905703084032987267406424183306191939004155321966215114878032158004739057316227274524372852340802546840723933043301619893535753207124000911517664502586354457841404009101523775598243114608114270738730007380725052441052233785815386683246027952482839149885928497237473393920690044584869182606663948343346719590502529451650767360004779970748299877076433564826465030466351731177155361168367106675632871965818049047403121117829067517813277997432236423564848010918029364589013624178808122406449186080446257206220212937905584275165792921587276177475508098476038452656239460864989165474863990003103335651218392921764098944926034246773548362865208504663242721922724696863208557155456984128660412316156339124859722258840149480810209908651836210049597388982208776645849236822751342138506427413726285106534431337172183445150981940869757197563339450935329763410056808070725662373901721305086302575538480344255904078511687425637845415578758433980186759234768677392097114954983601934848847064801503889726495450484961526730119578807188864642138919900842018915985030639845485684120148846695244895940894078802149333362278532753549658494285814417755821130817936788697955796899141400248539275687782794314849263017608856226840015114992330429108231385391486927177842869645201470078581556252041741623469999301428546148809611556856802204967805799121259700084625565197896889566159862794693467506633088464852866791046750354421936206244485547951737309173766375219631243573693463443103657017678416114883295298484495514142519136922379928027364253468470522839831365450389389675508931938340851059221133050355484562271034504969057081341374366179720178250780539506203491674096492622933135243048884351546021127369593109450562367802843658588049766585204121070531682959151816787197089580571492220624031200218358632200021355968990629213617382283454064070328469903913224843299209231964632278928865878181327738162740016978161236263941608503587125452332839652792392416774017232458166098086057369761944740053636637651705212872320012287412508029774056160653484553030305230788335074403532593322372441653497996430417593599945765173632631897257813710889139913448571995246005684606836059307918030658685240249692841089205959116074544120205100368330562068523918231981118800733861186529235809108389602262774606118444745668015778100653302161140390386773050068318836091768075656405662943354587127555287177435317720711746178789693028258213958497645881810100276865660565262221052536365479080888114206771295719315777913685493542514126725872670289101804239525349275958260486893556245542667726482019775444330701069912725412162744848331911785837282083230833704961864323695015754610517160245889031425121359920801580572759309309515533799946914096752758176351322645052749787572096291509455727144758335508852952678029327245071938314127885988771171838613872058994498032693587721616187473577337518656788207564049362990264610509979709088954283109843005308880259882516122876415321266062220755585067717781603374328883895507589253311993981352361063931286968821197388793935146549152477377463590156732937532024748363503632053179901094245234884995295309394973608455151184558082037789421219127501465859382254987158372354399029601516631448301317541083240501228066862515713772525642350869963159978788228508950667698991407846080612321727032957319535916970384341003220108749095022290040735571594961700947367945466785472974983277440986059409261084098942578239282596570885429072370364542725300653430463664448256900578981066544323791669177198004406553764551581722456792233292711699893700740912799956529769577040851373687606378332725675656510417435597014064108131156420887271771115581215895471220348689788541488099424993523931311585345036096892210015299101525714886777338885870785624032854233362944376589546461222167568072028376877341870726743909673024103242508610446655926860564530795009142252556891438813319416207892352492155232721746405039574424435175314189485269988729649348663036151367597851774203622852025253517390193858386938594678527025808927921605721417130304584685815417289864814066779572908267064740907103394900129634415294136526209484117167184736613216946825508865524542925855312713299157969137089971280266113246940917232325015804152379342247793851824832264273318054981312263269146155834296643114225673909134133480709255301766599294650758505099148243153462061271375128198018285017298379658291678890750724235103448822606631191450666484406291842842244268960820933727717292072972412152412066828583467163039218238749148472041324108838056127538009113105898396463359707235824157344728429895367574841229864724836062378700140729054580217564901499101044968036798972513897268333428332072951835850221132689921240444446542680720207527049071567264568153547903346303163915584512274099301601395403923868812681113061156369162601445456662847326481288107692400022190224167818976115371916254354364169861798466709644408866082480745020852236733076983962970569828673568823048694744782244575435193223268855456172377038706159303040982641234020665837006760343814192601432521699117189759555847198033886487490228234783371862605094865103844287569578039593753319104391225492992374774817869606777029283037931689895339648939471322996648920634358186493822232840860346170519706747324950953272084198808230681530405903544621190544817076006759685778540623655890435607706160290011359869776038991556215912493866759944217512611760270829456161686307406851024320374313761338729859361453622847745086838803952274881206092432326233555994701708398573243174097921939319364353942327125608440323551762857452171089921115019548218509635885667577938843370947700519314954369301556786420895303344554240694580775037845723556919184726359323967323483953745526429018526733055493456632777293077042063732418830819709635993065073582957387873043684698687743153341062665632779941317138854020332770604374634038854675755135200382011805752796461612992663409639854693874178526472200451973603550397001696292316624740301469170898495728532091201749136065941876144528028921701078985716047820798137821960737369628944264164658455089362639556299985312973681568732751194904314676456362523961076099109919843698314674143454718963877883794353869915645497262888156167938806325753777192147646501320653044280364706463028768596565184624261734312261686636872675646187304581872902662914361800119033711258256969149150971834074091695597207488901662705321493640174645861180946088884153030278679290545136262076419102082036865325031100423677794582467548516326965242314498239247641162944106577751507270065891611490759457889594547681922297935738966037330583435269131219149429274870897871309695279262730528982981785296493575178789086317592209472175934555744686352896751686085044198213822787200091834796346247323786135732791803678491314204710490399637467563908041578115024957382215461829028224336659671243039325986265758070284867206954814998624217760656861031425424964309872269604301741164209871988479018617644044760776031675073194375815378864609481884518077096779151697707917224846257575251271419881910779853127210480092674005451214517889873632607088259941037032698279898190907771084373830484996405007598183656708787930409556914173936066343863974881451884869954268066070996049247304610833944437275482981674717676498315739727876576913934963870496035384828988647074297333985367278101573890007710241319415962102144345705169562520298514376608449278509766289582997611144359777016548689565125447489379657924904032458856923604305199950483981056362416837451007664314001294115248694655637896966772274713022003768380957248476864259843237511282722592358584506698866404540057002798850548180475258709108382821981754817554052051061081775935978154062174560665827320760855944401899717014506828151274284369534318576751645525931391602657320581174854916090690772607606747527522314191135935417147388815907958175524258892005770246310053332761838457087436277064110958963881368695740503298247522708801631083617705918564111022889861846627169064632388179635349147301495180119167483736441045600306342792804005167073496952744135467072247942976363837664397872005293896855603812504285086371633521665271994585453447218463545687513453602452997712524348747963128943913226832989768336673891859711476084112370101205642284168590487744986929989004038735540692305589242387740681215223148769940564073902385454687975565937945101099975860587034093878166573779119549998903105866327210948167207932969228876028744516374261035840970114366854920284198662085125003964664348009596758349647749652470530092245958275461497876345259621430414048874669864678641665321634385651279392787464061411604398105436660626461197905474741487272275979880100330400252394630987287414288412318809708421134843034301242620952064367544429759277017203322948852154588229032427766357832161835316915973090103847734155472579953088134250882247886673293373219696595823922220605745073748776033930429689199814205163103090826306155320690485947355390087212095107848051404997328878785339628933422750601143765371083784293749729152896083560463161849463333039179556989526682541537274202779479385631010794899117157406361789387215447723263572292987378850007953723331516195615571186306055585277727963281838554256544712108128409713957781574668323336122755782080234813068801524103360547507211368629816188330965734215727569696109323629027342184849081686850556750366631401902054620119483986348353377343617786669526634006192570166918901422346673833195972937907645173853085561074840534364350570302049996464020192965458101308212898434849305831283762181040996954450594833820298214592147016319512883708250903210150089165495964347604086878400405465275158108689223449505761179194862812456011812645490984962235115387958229356818593595253576576070579090169450543198527121574557212081400177679587859458834747515166180838859632631172303365998521442208326247743692028641928104030231161891366235777921485235433482546042797781892472351119181533461747902231656802949546631844798863652815564336751967272439188108003417834344318587989559745872404698612940037790427910104560401363497071695706926212406615605989001029622080103407623179090708006358722764810725508068272676656022117076659021413407490530937620502461075147872075764253705836023639546687956301366718288082311791793586842267733467354597308437486148930683232444098073008606782915864904640282043629688991764344869103149299911785428930705720414982310929364964170683000489989521915889950161170478722597158887482736280044029198321480791538015961069280395382669051097326349672654497795794358136143329390364151075151193541634188454433624194179516232463960910315110488680159704415434101396147661298166400419928817885237921734463560493035172092025765365801187957913694636160599425424984159447279832746305387844936934525839936116705146388629785677268925238339562496620238029785890753644663586525379051177825322502085828783861312513691208578423433500439012649541223610353233439007492742179734859403425259745535971657711106010001461422256200239844206681465420796152556462108873884608740565236649352167980491113835674796823615355432833616009236689532796579876686973955586387101925062161922014942682565214794410988803393103023991134840148966199367292047481086909189965696371069718718412359597112260346960349346434625704708146615198195236700444668984661697886503443680576335079748731674387686474320749481243689477486706687805946880547979276652843663279634721013800202893027150877396045488628129220131429984388795135694498127526835186133358607710153235301531584860330682948105875365167022032185326480703723974052373109124595038639288515793763788480409331015499965671089282875051966492830008839845883587757456831615635315880835179872661853935339313188515791080286091311598662866972211595087764734793521166016792384757478763252830222633681695815481872512629383121523787330972967414003691094408650870459790526802887217839978379034294249835107405460453180898792824833025712152157061624961986336315123495545616657927136532159612640078828401925837412031620916329357408251789530420356985093837812760958236550180575463535400977221578020161884011772738976263589269971330576542522596469617336073002768287820656316342368081297733965830366513394548635684398399578342475130525845875167969108713767318371808391562369613322183596723995216363269301058235739683408665145343101060781909137011485535955565978453908069668520472461249123454543670419469160195550781878948523347775846550217157754524925097159997191398523329173239333342973693517655790517767984561077733796734335442829393705755481634098646479275153517461547130857401430863890055628736357040222328874720116573823193635552643835428557183407735376982774421100406566975270534241881494896217225659242734966027670891509311297219090158572316120767901213894072550365353535617782122012835260286746263313878334824913920763920569430872395066449222712064576825124985594810793120823321438656864282854750058411382355952837934686311333621347342523146692510681616520037085070784907759484883986236975367563253044036751412376522847165936376489309080928230454791177077826616820124508928732226434425051145950185245873980074871478351503707001533602174472365462486837666240345616847173830327382628860494270871915766901482147204339145188459574059812338948102294791062695834949826937785546157670559555147645750174100037186242941076733394409861110208709069591454681915984622861291875840710883319304735460192715655426353445778061651319709685670619318206825953088354828483829970140382438443645961038405690106540157148050995317383832898750705780229953187732142353892542154283113114276801265777668193400393918269309124097700568258219671861813053266846374416498241697399518331856481557796916314519449079454423795647455804492738510474465310013605650614667974801944225803321592274313652199252012117414692767852861569703620372020689758415850322215477457856402723678625523546649542675432240899032449170546426212741596136209487789157403927369801276003571344109310174968263187434169052741517803877798935405556791923817937842286404131203436204457042340777585155770461897552935086097256875475901812746921442685120748769412769284668765187622683122489739566864996508282704411080407313594083761636705278429924584182419066619427911849527615884405640694792751153565910446681666682644204137597536907477054726644909201955766155212266416113950279335103885565950349693100835687228821464223344293362544675249823303535748323383152952916549293086729727389269725060165007786537560239149832501545440171839310725081683293443478255268253996034786892842951806546233926616015873939141158995951204260592142696355389115533032450372418898052067084366022916081188306715426987958232495952281944359735913212910512937294267680908770271576249301803118328205626715628737412183377380812377598086058322137508312946845959325887823924662357619809101161931428768857531719903750336441351300746410422409182308733454237989977551139366392638512278429004632625901408598588966540655636425004484751210221514623424260563674576920047548463101527630650600149123013568121150043804468494630192574918739968059855118923677376870924085065747707775035967033290987642432337567402884389688527202512071238638700640729022636434197998858408680995439281018627833362688936975038877378567210841924153630021655327942039444560608583401416472999302772963234061911179259574571085128625518872541111091190077353601168965279169464700935115708327189914833101969528889870304696417627392901612021663624306127101762215453849471433479557668933656957390260768947794426340304278321893660297485849082241215362763324282649681968235620332954150565484294084639446862958173063884472765578328654975612635300609966176277407240546231578761387403772902303127678614482508688532606438407387220158069616938994010421732156721294971577809061005926938176675110579822268558654438306749898258020786289577016509086198470365838649672766123423499611661272316799970010389236842489682695218504875681336838685664176113756311909366967600743448173139676052675155929131290773368067261341479374840713182259073550589753250970265811431881967615793740560316948249128026902361852977143988806625863637375033088596009036667705236584406957032233761271656476743819641460659585909427725522893589519706780549936176800912447901324013499946247288630909571684619512174924307638412844957348783766450586534350931666219726703691983952684567156135295128806510829295882841531907405575785741812611798159592023651366780649826316193274642004696154919744065566399118486451273375836629817015221968646183810220220163488912246245096686859343197171494897863432235534698528621917965955059848340821416625452991084065944192763378994764466495342074722168807411773102172380115512053816212873228507267541864464484938674646366800151622462024717850987086262223128778012395242091220809264555910040911374532337644435618783646291350924904133175837284121530801222980027646878348412275604581937614527802813186596196774921421727652521855818684277040802349846458446594347816395086807763748797936977483761665105388382599263658610698632830878730575315409711636732373944840848304730835469037814730468209627982924081600826644168235715084354893178925966420321219776087153818595726366519244446927978940346773502510394538612343081989542300347552560415810963470262352591129544263464271880039277063421927699354941454547527237610556275113610926496034689888116124068452094121606499888953845277298239767517459767238197800624985750389312249675231748757218546171448016985841607979373862847351636225072782967447712030479316022512262832746094934739425408793522538594932105413857684544051800453858739412378530248878401595054501066136633266453326702560757012784343379499836213637678235157375887239149862160766942768074422151823604147762825340237483928175571027121305829612195342553248245077635574090942366702431389319200041556388699731398985209534234288680692809894908817846894864640319703822121943476632100442860400504261892665221081951730520603000806468880216426970515431908575000649560137925516947289264608372757004398927973594987087590313505762639340185763578599060563232760808376069963368647567077984425633221534015125094023004497501434785165771249255418186250648262751613227886920210048296086622388414297777356123502279245755437919407633989546882492079595398231147763555986864319792064926999397469845698332795419519547944085901525938707545841231607473043450358479379337944684495026806349013828953411411156283833463322440830670060653060989004446621908459272607631658167574182298336494292671375691780320248386079975339077600934866497663200026768689053153883677152537592857732942990582710212655731957191321315315680814672175674400579458092823419998759863330294301869443044115997352315009883134046735194912096658193056791922058825472325155156261711367141422322422436992527389336306924106681931207201910210717560582172671982413539217186298127989594388364893984983598438511780952454645563523621764969472907108087098726790866386874857592911793344984414526585613907934897398845070495518100347664495123677437734785400942435141148017743581700559780073015715758089704307962429084496760940692504100509588883704708202752387298593366762318807840112319281861916981971569522448419993017856356960838433840209986711527906302728501090264448831287033783195982323663510135514001055763714842243198731792191537087893118026491632530418623675898591235530964924290670627636864545314582028354612484978010989328424354840651118626672604199294240464407898203676904996959679244710739566672424883468869309473860647280442332271440109950081888254093217798015385009932093181722362449636073754483806406644066419392931387841847628087405321060074571304343959087017269746851055506492996715116760025658255162061286857644458576381208671964957228894916374821655047727245483905343721073857810114433322895888222477828028879285268863778786679744125294932869826141626560732891709559887120162401485354298427767299346871447605139821795394082365645578622172796045633857578635671259583176768294023487881402998008503008791286383338313348059009678427903174831521469048682697624107605408914688362479879085720538363361480229414144839935870907347302153657308977251159502454574411327463046547301809236847328179739462586896144497767339139174592129317803679504028567405595740196071996533834837685999850007591459736687269979931857273109070064706380123608188611236925137432734014379850833334757879931024044218223104249962899579270265822213467658580021469107687777075620041898385922235461872736509008256280723624874443051694498390609095845168127497719608194508492746363813585925602006939704435969985762250848735331975550769317335437683840766767768889120167359288964936073177939062024612757635162641870216695359056095149984426956489514558441751638672141420517587022798026430502994591641576822612731090747467067490242602000900264082342343337272405088581851507562464798967859863329188391720844894493038832926073562680875726404939481212225975164718401027179266325348429870954435008175014833510896666846084809847787934116734637238572111939986610553436822891531265316787984801731104631708226984101227392444442094406070782787065023440987162037382946158339829226231436251298336504575600784637165333458063487367501380081741015185912110886259054938347587019647391833188572747565532253854032465884633264377775545053742456221982962534044350056648667093265469427695985345241914226426471771470716083085794189277742177113543361358179167372900492823226332608471448436839766264781600168142111401920891024017921814479056811442330394404849571180472685433968923684652414360580052636574574524053130864629004756917174715515956736643537440717951092543217152226178687388593145353211162209735764385479794026285297061355837700520667241047540001725591441505352549575226212626036730782115137136276426442561741734116707897915009307063609513684648558431003001210455144865524239811202435401456667079343177001769956227192460776273296501792860567396829560422945230852137537525915241932792471943643454083780091031592429956028416746139389814325592454175430635319989866724906435328782280590291019454855056681006988276664924237717828506350689043058608187772304776800371209741057944381941191006498470809511631510891643678390538067531234273082876103010336322790610943639411529331002746561152731570926439996490911237677151008173472819522533765730960186796843003624603982605210165093966435955843501863844340042112723451665166956749943797291917078030720052245683803047653657674219057344187583761191993637157725754301072205292844087223882553647215452464472566947831262665157298246890616224724322518355110856790532323381979036723781482289096197201167450971667639959132372847173850317628932397407696452987435320348918571843255108538027264177314517695191995832931236243744297737445995115002452608226362330197942792648981693587164445081667921488556442077769758699397288704430711475586122216628401114714522366489490097292185310585167909187203803486779442403980664474566269283102334547046619448522361275885247777299813904434438579769129723004951792349084552548471673556010264635542805580787263667229250055571441840695124163141434510131122110853421775344368796551150974930867891613067306468606736845067565609157169887975401826111372147633984426694749436938767156742333840322118612497125531610381732795168762793273008577177907637299351837849579375518792293712840590502522479220503712695432815507213985668607536308901101042389496837582134483621954599925858286325557746309931945136960574342946529427430142932529117402095111062056344103778121470006466650441028359026355046983184247297906151028374221998394360988823171728734216609377396842525615048465669782024260594127893603997425329435484837261069807777490130049442651479101452433152878845778680611874564050422357145594061367325662970925928574577484619953118217115766682900387780215131683881334394949472870323748302855189887298133134220358193867112251633036792536556586017928407551187656413944874032814709597404304619895203248263118935864082977683505493256205166583438580426330635290299803227765645535767256743515097817548810425895018672486006092095064720782547078920954833358560399716922026139888813193575367699111299941383405430949712136985218444503011157837266284085535589537301103782255966147075913140578635367686172857866899716680369959023442881218645309077899993118785535154702882596483829546222078353853358883793574144319157439552039581077160132284839164303021204774166324643241893426447572825363185267393141517807396835007581176165467643062797966750823674821008469737998075789506423822818127077166731831647274716933059383554109874459681236149750492079237452107679296458645285399440015387751981468824780950034137118859768233751392759544985264449860611411476127365111499996318661746891759935557686908549055780341008388242762405680434393545611135631053128389719704744335740560936249930823506168037760900343622182875808975902073119970889949974676237542712676390001025904661645387081410695801738094562796576885410675365417138465918762757143191925356406604183661632611221199996406973833221094769990098134060407715952496632809142558096083637470725622604358585485689340787071860659527150590817133240711297871394304791736876281723569982761240626001056992587225901188128669094484705130917583669099747987914132911719470779078308321915453508958509624615142084857138646517943447112929080951978640946499725161966038421727806447752739336828380869731111380139495658461378072276564173995991488172483840253105589374548128738254899200738056619680568136279340987658100243234753960936233674143944218685548009083107596234948083661485184803484318227127803076622003221365776943804565100628416720491021498195490188842564572206564814812390296208932332872851239991920836705746846957125336766233908434485158008288336834668855185588097360700578003997589821560741050473263700822610273009705275318841586390729820996360072370217297562505443970393277227773605772044312452210877184347785399545409328331198717922859877482645974787739505001894825440328570644674370577783146341190519841852264397390220870366364712944879756509532790180842927687276403488420711119380475298017881638007454697830682543958608552731530508337965172857808005705226645109441536138640546078227087248055430558325804179213514645068984065268204592206984336090499231377260533707005789851211714655605148548066580373387157797680934586822152892644419861625347070244709003406158601088673207025659629602621254423819409525256831705948315829396664336675701242312649790943218691858307519164596006305866270625751971939529775465388465865291151932968910460052652612137117637764152156149324609873908592147852102911716071971701785400579836742041460107599212149678847483915488281671749140466040576934617148025961948331329329266750149330986653307101069341079399395480531376819622971696641786578930399131325679217404756862266493191627055819600856049957989652919192218113448945562347236107533009857176608109737261893497303698995296065667512557097210696386232438821062843483263270069780522646026768181735379964274449821429576238186156694311951337219783589262885599210039210145390363088651257428764467721000722392767295391597602019667094269312105080787322818631234186448077041739157000932350286404336682978820855684014505075037231846572060723668517534221138889032713765154232013312694740462503018742928344257661733679003180624673258827876009940451230714412919224250071543092769291648538330469133729714937989327126183061877816584639057825187974464308173637761687900421516552486869586264660302559202325121275575842076513935214471223930189489536269628888034330456233202444684337476523562773614214255404217812573343546384774775857115078627644227367792482305343703820150091207387058383515347238216049908679829096873472724641354516939271485423090398350120869164469671668607991157602739198064147624928015438697677284321794744309259661873785618716867556148344261704666807757004631904296406431137260071815545605845279103957820520775102345355240519380644773586537589200875774425047359416387898088353310304358252340679895120548143981245672332884367949510896552631359635889460250821481107876704923683999099907486633167971361390672962533646489538713682141772085162090788410226184510493560964755914265056491714116664061368322541141724002724882051723064527889107780778327531718444734766032289010729240922045783707309887432985556426067156041763605400118643000062762240697710865512361416387617843078148414263749204331780644027474410693933381960545096831719713845935228009291626729206004349514659272145630036708112167580528902450691746587761138665528450882537003603721852843076755891624865341102244071222276461723026512640719512804194080405337308239028252849252676694901083459464979748341805519128576700374110890627023786270238613246800008236245661454041901783556682337146641250541462024678084361205914655944886578861012143441967616468076143998991319277907293736218759015456610100897173073182936263309239336955657772856325574954611415527652032840992739214488178263428064792550749655152482522201291526933857724685244777913622947653612661175715903513617820760575565622506773588141289112635750074291262077070314827111021678048370930319824230599870123208413865165758464076326122113057127719841712125941295153522556141030349425642969789495184424958193127747354359132584707096817121451140730478777030071388319364611180517610582407105872609076673989559464319100684232502747999481493832042549807910599248892656291503679989175855981343986178097569385307364887647372015575612082221919108002614779971357313533321064052407526538256266654459330031024713717551192898692670102451711722071197184009214472570002288271321861335884267707334529292889003899664272890651217675815376307396990977474796550892693668084762628046959281065557335464955723693350170842770533775982535901479481762184702587452442916289544361919420543436783914062955336168955832896141054546942490117824062007984941376034109889995498013151746485487807193273850786693286073568404555034060353692936319047926803046793717639937516976348522282481582763444226300441039523563429919834084807463230034031960200946832269152776903076668607250458432477879183902360265670634850028996427543957111398981774518091472047815083045701001821333975216210393032154805699367765909348743761192509408478431240953645142159132367363365040988979632194864908841604392847594375655429500327984350269625564717840021377469696153878820219316026462961720822670017044169795070632529861791130918672874213079781922644821973144348396844220385695568718727723331375318353992818161928514641734431219849814602269922204030554069869642211277409768563299818330168726771483471097839354981972932675366274073619805414352510378977389815912179038263742187718469275901133442090200397267658098626848506805665131394241814862114993782863683208550604819254049266001793828745522137438057402272589154330803848937643220175506354883667647534757591881375356178241366799056578169817603730102390236821383731409464968160861727753651321025144750650453394955815996500399792742125670422501975720248544737768793583342962153970398347705360638471322774563927133808598579831574506289767053200881368906152735103535561303360871263774725860812099021430779971356250846679265761247610950820241693270151545069936123442200433996326342756229770717518268398177321429212795939108814539881545465905097700253444005158590580664745992404163312057258726260161913410304814188592461156547707688352047448252819839562253000326304510762194930596678767496051804645396922395725689411936918823938966507467526496769080024701574225907522510288314613877239325287471601114767754966247553681132003119555413689668346420572735397281724062721194113142975447492522371365305739543274531769371587125301059488402942605925679585484323112825530325860171462256295217572447529064214999490937526964781148315780214447295679064826145160950671544317114893047896781326111546879373686576990885468341556670238138152781817843727819309792684201734472676520011867320221828374229623725168216159084169216818365759679467260392473958658596238474320242910994212380848675022934056161880360905346679717223287906692717793503719907621864184951966375033358698771940936728258965874623345651970897797480669308633589855519610901752730654331629852212917691021324278413075852081872266819172757395299122536836882965591925884605710276393731043256287084605645031461101885907437046566941890317396987949639627209934339240992767856189960641277806225842073942983144466487602819352645597537405135750309344103624559309063199800265730396514795344958617188917700043196855989633435050877890361831730687962524624219662411389410764220868029459493659713724507754349302640671782527495753605545615917607969494261895917528908009165985612378584565516657161978211145503662657212125726814313626547153101500529003258556821638132491246988989434541980159917575257564071414056097234362957788400290756191408965612139396912323548835136853776935521975951539806178071679810291980043979631105805819223388402978104343986458914957290906371551037282252825177105923923568387413282344337190961848738212201041763150628380300570034222699619847285561072256219534026596713974656350952071743631325010179828889149989866753460386690156262589000207765588073274755693865486194926159029417990006652831493468008817035351595265558066426186408688146128217255831842879317407840024570020173833894230873991953661472152590279523306251134289618420290396608104169077512866676768363299955817872964927968071507404957476878534719500671102919754371413829159407376663680130189758019857546677970491829000813679193871920229323330578872234608322151486749326382251816470147283080497704584719836080236053156502823012602836749750212258732612201108266457869407518309299018524119620307746814648043719396787425375048855627172321069644078374672614563031271908464131081118503954478049375175463566269718068054685595953148131540404780191858196182427665300969912616154245510159631871180998087500356074864934381421500456232086256577409824957903629248808837139395122128159424703367677152238578090480296301221375923899984933973288736422045640376224178011088922258324017920819010440883693020623483252162253343401170236687827145970918722319972229157615324076796383712049047128096400445795305691124617101940497578338648379021348541324286205628406647588599456595932773846799400660927639564928623122733124402031157275965782666627884850659574895881419859803377258193542706594636186824474454483906167316587641964182698206165514772269354202022599814050134350206323058060501011702622506500368652999716232304890459584621639285505543262225847114463569870929326608496761649154929553082377464818883370705112611544900298046080828819814891284195213002844702344055625253202617667994847169499074552107360683558134599037627659539634250629244421042966868090634995374756863398241732073433897959112628122376640849324582099866877325398835315820334278481482641077525832222787524743613004021565872326471020124661673851955070357511629669178572614687383761238149410479959057434659506124571157611302139745555809663323849453240219888211012531743243649030192171700500399949005440896591065027878050666574784856850759118030259851840749587051304534274250561832801451180964825515461407743613939159247589404211775869794405857828340847771331190885103423817124287131646203820444212414100079946116802047763334944230560904569170165860498838228811014377915380614970659175879008762359809018293986775177219542723602514387935066912999815958015137107838908424025801059898086669354766089552102080192212692016568498660715950452642996320661873298477484447691053048003426078210929971174785997100863804920090687210993807395282350339130999788589107861366532686974201591163950620769800139272639188746930411654727122143658511077171597618846601527893989081664122983987994920873497453338818048296662918447906683716285423105866306138435950070328155164679882623064421747899821977812298196595452288890274464480567785000047291006576730038061278902086007952855342602441600700383969287463848348471760747377017372053378053369051302947637297491649133642322919237992045331382124569669545641545189824626802042955626515232789433873763044418584617252261405010922246220480219410612372639434878069511817362574706115678017364788761255120151348983655039634243514014401462950446731953762942262237042933113224156787938937338151645486479178616703282324247123828285797671271681721451112474657948665807451221780208457769060583292957433950609398771929454012309097067317467252188755903049034318380158311803378881457451422690381423707294271068238764828662096427748484554175344503335377507831602514444832667610483635384562520939880026388860561214148036710857478584859809577870204665352610493551372699437130733707730905486015638940798391638378045298750189073831753459758586133581549974579174348082275766151629921784016907385210046862939549631264945206539371079571941396271148253511391316098984324266942792296272753559537998901031617826640175374888011059904397946026448479092835457899689913881249920706093886870848674242225903703226277528757055393472469819466238287612741919981123488821195924845706877595617328786782318951797238470401531826653351694298530993892799323220823481168094238971526439461581434863353642866680459872737320508367487736277103672954751199123928181555045403218474424510257032072224640233834493005899264847819946830539156729035595776560421379174036494874839428143594967344343592716096558849316092590026668851962240093448144216570111308822664228284593454004140862142627354685580543587713199010767039975205607158155208788382928798958303926532115103444711211554601315444833461750970892934934175317596820555858879178292943813491398686675113472849307395224796521939153176871721470053963193768870936038968530852178044533828449578836889158068295257585308002008297959841835786264444229107793686729012623733202185342366180856250334239970241822279869744828495841423292257809540500578841340254760924136136396580296206962701893847883420469008042192184255690119955271173952340603139153016828001547988694050863811472463769836031708215995243659320706095812863363824908834310781677260613441116420058266655104305744108191246529390995379101487086943687482146978442723552765454172596763950437724553580806135066598232183699834492598987174519595556687769052640029252410659411048891445332555917485085357180523268661688190404545884044558678657262934965852681967700930951780174954770639779008672540110343468537280052341586772233577634081688093987638012063991797863545350401665662435393774621447957100438469190609188449187195230167234875663891276281993022095628571217936640227929975112989155800826874589107204299964731886105596072954433733850121919948811789904529788323236101650714313276963578438589104421395666104774943662585652173305740538147507170038914779978934548690266865763433287440077838339565056915811976154445524301855249702906953026654680002910351718118001493607616378275790253502594373810277582745638643465559914777130119969318754990585671385395336677628072458450014571182500832252198367008415396498672956246234946683893096073973034903499926248665751392329872690592733910994144054439686375262802998486150992072536229610795808821728805506264501188452187415874645492283142821285434850067764414170920751647241146708381000089448030943565222962406211326301194652112336235374064607009183904463291004093011239280438140374595348359227862836250455974338848165770937235611382445455737163171744148110477904691830669918426151135771346672860294403094891181947644597808037757935178454044000339396356477541519425841028505546594038843140217105194164701108505523659766445967978779689368983498845584356993402744479825344159921118240983847841183145079978728388023410710702624151065119999041747103940947994612302463136728929191859045762746633156668388055610595114492947330401737329756457203825224138635395014730189733487462372182981170808847990356871128086253925021205518973627766334513082582069317595894461482059991558607661813767165575380596271914338696953078796683804007575759105660961861304699333609299659289420152912987665909480537443608415247397609689132911795849297527630381965287673915444324472190793007790469072585114833332933674506631098116176446316483162278198116573330324018659030701243723776845511174381058967884404004327892153795073067186645492445060292171526623184785050488654725364223304204903837761551067055656974776439206732241383714007972859163794649653903002774955386257404743964371600722638205391579440708434185450393587341759413173760529029377745707636621556976225482190951312094354144440905045548630855702737086474120497432675421838263152319208969622036785271584799841440286227870892465299309542424510366566266671226738930903393049222947270088912599291028502703355822685635861353584946432336392698570332509993033555646680319573655505805239972089134822439297818747358061253125837896326672860442049588590646747720560144705972975085158633370153378259660930463497576777945655507121812307186233284226216706618124190550104036895587526745324295496307165488842713687187267699923794949318839540059464243641294821654372896171117553143678570138623143457189433790351030474447405381311636461144750457146192975442504804958842239435173426079159377630858667610716948565015275494177278107678370857582801086526629244592273934597985224370040700616875153728975149202517573725992356562785014343859014320276747343083377743394112513049650527203816797084895243081986067872746512925826214510706679427345204967873125920645910997439198525190838389075366203120841479998308125986125042055221047657924468924770345166792222584813198172217114179509329263372450347588230814408112659764066827273690221492868855456566914721036013088385327960575711987589950856028763239665246735762714078951664022446708652231162975542240276461632946758949224767453133011605666843316372379422754461170634735484229053352537862169108309419662682656580943325141942444968344735889028588118687487722157282851068614307297517267861937871567485398845974576971190165522321471457080230273554106940271296604288109859840789500703511579586292510891197292316485417523966829339847623828569548483113090986613599771231157715239360513099615780829073199676660319926995134678502257293877827965947092440703768072416229017783649068576361886526852903072110065266449880663990603766170864310991830475174722390570936104905537220868662214607257335880133902522452281240566854839560411946872265605936988085805316303870109080044952736664474766904234072729422519101777817883593198641939109663446767556445738694079687699402674550423744188400031595422749607099026113654948687554065286422849250469663735858281241365528908726144808218773344802862278780086759327823956899389202064837368543813256640868588089086555936870892003291290513358792531840870591496761666638589173348023806505341350002876072034564073399239786996105163284042618051861701475741967585876554901099405150724626546924679835198186027696820105852155179674361242180929495600373174128269565740674001604323230744283969388691540978887860375916317129278949898097181717067817867932003016798556374716641686307549666062326064743977570206688865038030529869966295714726727193631701897494034665258786102857912545416520902469868227859991653723692397216954532281135164115821862786499629621061729109720439961226974893430706746567830220297188358043821562435604394846560111608810563691051539474970969632417315184463566163628809553382104980352089414576252472552280529763740730384717529522519451753855865656853309284004844629107798017172458118050664635114072010057082807971413829033504836930253116224758948219198281756710211712953937346992437363201106892056942445300879916825655254924003398343276653562969537749601046022801329792512437978961810046028609783855148517798888834191566378213364492633914899842611378716800376776582005541735738266675623004593175193660050287894287036397276290076682871780968128182702786974606342525281897304084532871462941082411904723870221011639075854198003112321920682775546933167295016603277034402612643002929145469462492187802491668072864821270562187097900925982353724870790990809641329402207302820556792947922437416906922807419526917735186784037527510911413431869701680795423357308336635292305015021753045032947282208666512453724460926758488514166891729470333028423426143823758134459414666593730003762899298238417415527308983805709785017116673581370457031792385524317554721356561065540251588397281098974814507353381894283922640951729377987614993184049120786482673460022809254431343760156022568777071280708535280364852733408366367847899781464262243721065323341871647119460082282711708999862857331138642912424077842848748644841703348033762393624320521393808723008966948674611653900976158997086900203715578980139889221912082744607441165681826359892401303577998102304544031317331795181911933416827406221555815592128074429794137783869972579912831173969286593509868395948416106867287454800084740929016881890713289001107125901237429379268799461122292721614812582985512530930589422807293093529946211525574766696611834422081853301704740241000544596592909382686034954343400593507868851477967733885554446143388986417635805808832877012839210595196858083343589757221838102227016104090455665460358661167393855493733902444493183955906009544704845374315953390281618714844641420201990037032296589750616417016370929125375426597384929153453206430380941427452627706367764717822967166505008813240419044816013793955662931087465345078257155557393672072705586988980414298283270974227815545377060412562433316299109813303213253711933973297861922168065450325989380323981545080699393460879369190352964202000173560325422501275448136223223568776594699745226348087781159277007636376003308324345968479847152668122323562712235559439161153392071633529735160056319628607230878946151405620162777073308398544960375681402296556493969564201460181280426212906034967050629546343639534620502008842344526964002479382815913871690002824489425791702159721928501277589534720722281499732940931183752251424098094664315071561849518210748171667046444367921105774070245505956101222833271096171302374937797526352020641758448484143711238512579530543063442997949517612490566870560056955252071126028817113571522733625552859527618432326894172408640673366265112221095475198263981054749007018273958007971770862206971674415921969389967147490284053724234360218270652663567148462446812722727089832830572422661368979176964592637371473571796591458059058352534283384640038792527479095623837522207036693803217779949936151792411382890200620736031928977800164648590321402300070944550874688518218119380036423778972505013860483250970637950955228427246949393567989102365899159223848487850423629545184360369651960595663013428150597849830330964400420527349281750459405436614061459979102716088273641627648305627950741351208719935202096304249532025798380507062811627525612661409915987304614394521673623411539151931515602069895602767685480488455670072192914465757022674501038934241154474434911236507667104708943838534837309665871739932650554417607790447702945456484564906604652072518311118043952974280682211015011257270633479249549870776506042658581435914384181671160930646973710853689137556927284094943094388001424961397050964605627359176373594760458808192737540705516524567599345522054676747825249497509689130181893688417509309004935359747913960540447331177928841897021095181459219401227729037430995639859182426103663755157555172650319582808893841277977068113185624087924083339169982146709158737873848303419655119909228438846973806755973695426838100421057098887882973268964728245226656699767410801975299439683960868487555589203704047386015459459319239159190967188371409929388401967458269503516834491340411790164901073532929044329435976163363012256791979803064621874119951771251455865457937762434415709829008905770783990973569946804870431476001978394475876144988936852497889774579109206063267703461627943500781173028477096758752237836547348298353157060723544361061343376213434369500051876519271537525997280362583700619056362047800085523763258603894251167985143279663182119168544972175117420326177178932377497902454005945316415650331972058417941662344558778941347804911820993772215941862829651484008167367468862899056750387984503987254887202124170138859572971789552842170688507225059594960514379490310598940566529830764395836308996693841997061543921721456128555379687890460552460080971128658319925415082260627061161809432212110980729081136785096323258583056310853121425818830425419443710148612055294743324084561749507770839769735137666866704812944886153895560756805494362621848060717777501165208722049878703099810973857974954893400233565112175343553090116823240198746498175367418600454628664595547348243611021229136608860500840531920760143303182056218483575417281044409888578476871476681385124931645537213389120682594117495254736822645965261417824975917453886948432794292713308040094372402158592136781190854887176289379321004947180541109053029451304117364779913681945912779705785378611400712624082353724246539234650343760895411033256722238980386574884395334136130788895607654524206946445398644138793590534717630928562944142657077956828759331627434323812060004919022450858877765257193183300884601824580230603616565756679240665660852389786203644887932878687308270803286255944600531955622813833890240326088253223101688721241302291232316525106527707511437839197033287358024207633818189134413472168641472629741819179479812607514742786282124034178749313500344263197498379288583408963197567816851513505354515065400428339962840266479202339617525195180693045904037119040595132828903994126189185137871100421666295669291844785387206068227927311072373678059717968792736510041148272417779502250423471567702766552338138126444323433401754607274579934592452944179500924621802544911959828611123208562926825316162388563854604443418898749672938064601475527867472551497775053746215794195610277450165756835100820195769062799175862126265141275097478337778116499625191299600289978037292499851940118169626470497158541201249607282196878223046829544895955916076614853585843304046847254931502048217746655863580814658528636101258463286610761105602509599305060585192336332355219565928539105219959800407907720861859008757514748531989943434325619111278421725974271554294481803034294803246606838845094217938852441038727628272141058483461746523952603086040967130864899893751811865554689953206650889784035461756888195881395719616610505572935263810637834450326223569333044026403628340434612696440229438165169725711031714969172107163291840871108916104517337268339030469560098480156737806752075982891054413050380447071743906093639852309706764594162046644096984858113584022165580983197407301522139157530476541728596877146454672804421103654181156944909340541929200151300843303280615021209093817971375474672682935567640705404010124674860269655472769107979885531650573079446120125475832606152480130809202029340984180239534457622875103766610825668390923909612815826244167801605082296138594894639948593632742154521717748856444402758998779264328658998191096158222034556127573112844037682206824810628030198857232044727962214580832481945636871389897778973044450101348637161435807281664248052768449922269357522445733698675151032987587961209157078565464114305601062039334816711570642413429089037993300495182668635789502240845971035620775551812563915553542130349435590809580017593822760069293769243469795558464925617417565480492999691649619923617164817387979237824664758655413041213999627849929994429921095980479042318058377609056486208145317327687196794008044194156496021216223883639489574989326813740982985201944380184290265139494470637344501354830123098026970049792759777789850403176504077994391090058148068920507307482301630724986091169007665237179727538126339322944890268975261569666767446426861748692609681913249376740438097775850580859968839780195180062793639171456893886770918664173633899802894254461416186622815137333048827399859581082600518569467922515414464079726065159384792264918437084709610717129843388935700023128148441381197950010866787453267855306457801667348911213560344361698077071427465354457069796152961867867880069034535736280069599520607037507779130792685929003010468447165134281536710907869890234421208917452071687762038783397341188796868861412534028133776560972176070195777995516007689466628587509035904812215564110173660612959790849462450615653386788279691498952416952822953226112328549500576716819722381211552854068805421735598646959952964673853376108684984720048653029147038960376079889374131571296209133942459381648984618136396609645540497317007628426220582216848829317821735109012827049699819462973133593548418133172414662288580021031100401600156285673618125288010665457714448427598659893035767466609170117241258285208940046942274373352960603857980752967748617317034259972815448133636723907223503678859306500734507942706432474273965279986191367235888111157037385828686353387931713945171224990079742382018356949152803092829220231528937876538196336310617423354605163754053987867341556812337964857816833735641864887464725592548012474980412412098874273087831669521444185474653179958552374159901145832384731025266387328225968194427355878508917405233486210880881447723948495822585151558336108361011847564344853186285465722639985108741042208902758742381979843007456922615704357140352098852296088130836893326320839507261270157216384500828420335174584769451200363821637212871717871897473715018064684975380972189137257589565091554966782069917775489291942872959974860638240177033511034739818938198919366062791534217704554522350749335763570529449405185530118604560367812769415129972183863636652476188290002454980381721211655529948096875111962093841773978618795497848511558125661836794407090165642025772755310556570279887811235054229308109241115855787634330899828658774709746554619135001616943103811907171811924225761692000594066920272970602376875963037104333274233432127482065492244513896260622617303352070296321843610242920728986185356935511737955002081055143556962147483872727093249648645530511622972287115639564991811745431521717833451180346782684345948520030846244650079669321761906994599090344729303547446872203014375765233866588426347896361722204761234039617452879050360812654236288790476160260768717002280992460148907879370292396912622967251292958431988815818381224410560180677595903729858843936894627115137173885316308138611982885250115452795744497810537877856711682078970941606833347465243320138016581145804473751852252146440885710908535141876214900753850746368187944179290591403605853843142091051670194661167446578902942488693717548262101625531784416180542811076979655467371475897110352863757730771831662937721375103911629478735180931800251179953626333692746554323091152047136953616074317921446059534298401944318639415787590134840763957215273534747871975126702452909185478862464406840619964323818705888552629254886427189712938379789713479029672386590138487565129454593939741646346431773632655266760291865694811543542325938732957626280698878098766113809009698539155503004136110108258751207920166360026464570504090277302358860733921562246569980068560924753058212362163824583333015069345452705741313556608494543622404966591491261656337439708472541004627116718623036073879158570019680079680521321808277684340068891360680214350835546131106567228483243355077225469950408944590952480475354842557517395743389936513226025378670099623181591220425899361972418157435312188185817960510849752311269250750594130989783632345175804766437551004054716510527622938687932146456089215272981237667161263544959894294325079482422826719612492931300869469407636562323505894528904479487699694083419780557659039154384677915250429132366062253699528023777132536901744305518665341874642655660984118848849888456623946705455864271877653939091452294652528952190152346280019061660533835512551846167941831384426842798020043244207826310070060838240038397985738031017818961802961244422970303442134055451843012904668575218358630948576150800669793312584933854677003753072311170545619316378888679215855333587249067961424447938743600400503696435081641700716754423816731550325885427623132412332087523297656786753394794739479374198817090894230239344415185045944494948100102511656134961162094111338689374039703236532036843261831677061280394038374901966203075582705530449963069667732978802744388972326463257951673410330182082501574760025492726844140651863459120734430847478450712894470171286343377078621740926886208602946869713414861308254495262086834238077943759746699763007182672964268458035081647314811185855032476142264549217806221303136598383602297843321819924454156482329855867827524203837421602047714610816387246711024039062289115482637808542771966500119776411079283698961110318614111092258199587746263083043132431263028978331725073353467010527334621087851446099619840043600073154560002813069105902228172204144680030496472104875317901103869045717254851836958648280592039168646327427478398553459768189952454836135809372530866979394575084212549735010265001410408705096793229448158148537663403909631665122646120811454323348995403386346131884486922086862617606045919108416766570222087754676564063282341628905732844628063727740247007022228254189776602928014068065820605470231989729577747801943588227514974272735864511893981115958847897555045504934152322229285090294919039562383937000098756077595941370357988662652073707918638301117172357254948928471314563708275417208766466251232124303869403095639357070823783980212577828293904360872985586584887317603926561642661503473686465307726310114152014123628195692602309780299295854006829621177294892924319043420982491783687080707137559641438906757654365324668601389312865719684249498823493967538365808448663223806658701074421746065789717934935178866014933855720122002061644966529520333013037042172705790606238164954478352278428186539531359564318283942670946159778129236719626813054110897196555474889240817362638598939695433082256248933138762523774736015557361973742001303715901819172229967962511485706554693992687564279456804895085486574890228725859792557420566886327002692560500586173068627552133882228203077925640904000705783872816368676202217539863427559466478370225197838712746389337623078659842265025714296617857141080523687102126741800628702942983390558746290614582573564806340728916103160787863150681380309208634035245358393923694259785489416110307125337646614382600659230005525774847069177676121284123303207749124153572749259600809990853238417991148741290222960389217421060307945181956308295026562067986989034576132148448721998131206854054906936159656603422804500947303383644276115341505515617069790714566957685057117564115261751892413591014757733534223321210046837928971434277309532032257086510212037425006570812006914256774694493736567057123306200119049298275429455270911984127891074560242470835180999467368232389939516630066740301544535679474209535026516063480707172543291238825369849912950269335184351675751986187899282677813335153673061510713380514388163731260834108918276914194623325193674322225286788424570220201932672975179412135809116452818364556627255912558153328452451720550943537688526345282962497227668790310519122253059587669447021250921499549660907986371974039765933575015493832550262496013040676020439884966146752864371172632481880761788947659217599631341441914981848156973576243843703955591977198326296608670640467434681931345824186494361000748241079366613930956602110067835696064022059068674973318790644843929141998310563359907938727115038869148867643750774404000486271055944444909027626805536109821319522245461916299965257592694593353400822739818213050056189517202360593442126177175446608972141839187355966707560970294844020093364453161161011778851181187216802235084374468751470558588837730867604694333757204732307716949426994427308250532722014185577780556274066766555831073464701319074031664405288454008669558569530255526469509319413215462287802465771811779956660170190043536085140170919188165806065038320557313669173164307394093009559355265457357563828179924919232409416879965764779693070397558021008848161840959628090234161336588915366850643804941157321426770848855824741874795547019268486990469511108170772259783402726679129846866331508541610400339567817860386122261457354865429949507179884847592783093826991551147195816267555736381712132419453079138251498348183876099306991860406439835672938751584697763256823186268328062551037200070388558259569099263077354389883452348178542737524767910738953619918007318064558995189286407721343206578051096835938546744412576496835975798712665276603641721689243782103716443832985487224591267650335500106444454888815030381005788401413772055716821806931178179102510573273200239157618769955054835294021986483185207613079183079623944561661334919815952106537107020929710062864372271424795984796984927041218678734240888032689222608017433641107997478678187903974564381235427490340694985850784587785095133198661863640300754889163084794188516755585578962541653724294946537534707287499243855620036473582296298300508081992194157273687152451310616358952800626085519395500198305319889765444429568452292139186015111642482723811381111674342384392147145440470599963262453050271575946299057250248875320070552727285090874411638624963122981091407833203198346518596694300255198761665031660480074025227200690610375867361985715018062985116560243865493547560091815860367895668682289312013305824302911064654459824592845505539766266708222276077297381628757179920486197655969844648771542765973841910008892913128209911382168556589105218156064978537539414584607011298487702373356687043001675088442949101745350654747632057037274020154340538273105191468344871701405623609331858305895656974710561922856747262433507832619667550035251154244692743215717523514356404676736161969723059175360344844062675001607352641435210992375233744307840676018995339516102700293162889858760159928661987569932610961914349044028674037687868948514983483246093518126635745814878641767836572229186239256189957048227220803419269690749368361819498836982279254216918794891800143287306642985679131360132515223925196771006966005006985071036182040882643980925476870292194923342193337411479740289412104700686958492691285169003509585641926579583029561350196761954060158880533177738862717249926592615388544135726321134573788510905460606114303096653861357662974188403033631759789893899942660265108569173855614036565578623362817777178790649155613456495797772782333592477687543508878898749518573894454711346261767867395991083734061801879107442338448456014933407164652549446204748012027082404725075783219144615079916682943936154720659668496528960820574114962163879164495659379214093716875721163360693112863506239031669773630045132859229752873395952805628733935542575499659349124700930807131640436030879301660913875949408199283506810573026709578881990122578682950136797230610658040474258210874569537566426229528602443199086815640718382386011130390325974511545468978211149886651678866019391888116706730278272945346741954230331886445392382106419613556815343842421121285551403884581265287307236302549937758177292937484606286161342641689404650298864046995751506515328895765174579128619997839561851324394456632737238527991559349558305565412963146410426337249867351086089831350213079077617710580256340756368929382478003069558640016154969759839062764811087937670785891825806313881581766697463040279143500494988549709845062113156977791189654485190656398452180191376433464942945813831722814520428020369363564099546030003041568669591417776645543669890571232290344006405408368919453648509357134696768193019032620974590715006408773278242771817886944670191874007014417591887113366022950758229606265237352511777190485106621117436168238830397186972949914843019178491253152373103557522742146847708050039822029383702693261678368510398616218303658524679943843204377597552466189152570231703273841328301590234963684083341387969541532255135169987719412226680260834556253177812631872522659024538771977497445216945801903330187902139579977715282726005152539176509796933194884465035367180380410743986709762444256337213649093798510205430886322967135946253915391076530687147699752641803500669814185441975742546231921140144704367451712437179952884297738508790712050709449639990285898215796477788253430295108159660363140643552250739799172309310038615208589262979834587100833964332091303893045518676788512603467043707664366116914282809110384782264233492134039981055771461436149564470136378437588045234507048817044976323464117617420565462937723663221310255838841173415869013644450264340801612924492398142781390249645148340347818318201931828063898705671134194056004826384238397484935443006454150150738711053470640458918628435986473458853299046998646492279667827704256532233853819831263359953427963416671781009782240120773309359460794223567890404219580685466777898635028615450729530862351442158310431652408047418967637114781083582460469576412801435530352600942071471444728050020276147028703793996459126316662033690166345104778446841898922062020779380711595231384391438547528009425815507246100924502462035457375690383839911232621587229866596263443789793073766199941581777998650067874153040076374059923674932078683095017354522670520065523391843680911522052501135036001978740598359128647343184275682199857360836045645095504618749188281713254743181895496302997241353341113757263425316135216536976753448096167811508695019002714219801202947810160035831362281450467634476887656812111276940927297504182257918504653601446848034186426218041814891657559888180559496964018734438475733596334655020125387889605164884079456057785129409160840833374242555621100598086172762045468648323860513052343867144419039952109763008526198112849971863698326797705906166864345173861056671141835068657827251829874221777544961624969916973986771918652713101259940260141579067352796036188202491937587653605969482156323669446986870818570014939487265473658297930209851179814035435690504163956864645181719605222534411941092621405568566975720484476974488358341081323561535592845725222245446775308060246832417696560073813831810157162396239836531893179358399187451488082975469296057544885707837823007469799098252823517807566940675036381652027487092333187689158597978005873026120132569543726125386313766661885085094523703361361416234891891142806837614667627469518441131348988458996461595366338459700086056535819695210066497280030286930660407630694597932771479292863190452781026419247692238074379707724171843126348937657072972305322430032104912208066549310449270967244876227782446098289664570804170128520789366885257308807967212317889796735508390723383935712448198179640513571466810414496733160789701555181373643958054419267860371878196322762007764909513667425425115130503543665706740625240671013386746127274676470971627627589096484228357664565446838922354339929053090810335698072544971705701545252936612955299448656525956550843254411380226932653139641130484519526761169426855929282780315570244675416710013907257199098911334515535544704517578212391176881487253848378486944873829727624631786585688741939657095959647739470304804086750946646337718794451859691613817087172136852576412955652504515898967524903376231301500070726125828768033545029711330720693218819911174005587137751743950002524144813807149391233993247066960899454051011962032886840908380535606712908043569775588915851677265847903881712610217498536579442584712423415098759072491622368051771834916175593346804872885653702585922346686178929733198698274296325535703582784011901230008491751076358514854834075317961374665749221384434638954133014680542222058532102731144507194716778904168112487700405347082180503648583394627680294825770904303687224432106308840164201316218648823424708362525051300098035151294540388392507627421226638306809554199078003970534698993002169974849284966187792706022006475116362300854958989455457499243361616595596495910808092898972876115562393839976144776435229134071379859314655166246249191653184375301447367220286611912099877291696941528355476145225271731089260236138480555235276586852696254473543331966900135732964687413786486881050802823606855999011741115456487271591926770906019978740013469746838574458915752478008037857872903008967047422960217387674554907762010810270981896007592149960723115398764917196143113404084120491170725955694627210089038227722195439848455051908670613749760838382041350571307349823233300696286629372846475799691366607572031498292980456889789516820179437201179779920580307092870542500656105356437179579182731413972892923899340240936778477276307775133463401288176323539237996589393119884065749555843559849264076148461483364638872459460822058912506006909745523505347047874849057425466725983023840227188403147699170799281346479815299880532525982263971102486122933801183578107983431253598618787964546877641057133265560851419438811644948023516811115812239912137697586351829609005544775396867950379074544941981370088506276058989734913625784741666039068871181612800042912628711921268725983651368087967233559344916167621907742266968892088197499560519860245080967220753179076333883938429941055220641269230730595819691131862709229588871203258128651108814612163098179227138228846494103882011960375062408989244795747506281617550597892751974498625220200606538120519774231640341553804687958118891870451977613043029338912472988594028896070689996292182950225201291611369685022888222071046442598613230551924747895195710135062314346443206914921347294226943230815393597060036804704503391182312430143852772478413880445937561875134303349146029766359888388902458524673885534543790790077572965528504051273128231757888774723318285512218231272449720374918479442106926633746696423696607823164295237249877365116121705823343798274218570352151667317220610554768889574832488379764993943778585331637208418525728603443077165206464250715126042504815275727796126751763222177938154920367672685561397572449247055003104824780951735705505787729782473647564475598534814452000128094745536388310653441708887460599263004576673592438806739993385263241448791009006022292210523927561824541164591015595119619062818078383186710995800001914799580654018268625173339526545309181725795301631458490064854609951547371215646773182340824783749243752142197598088165248827206103683776704032060690543441508288018614106163622027067356103938001262463253594935322918061021309900045167132528843925119859026314160897984305739493359817737146966383242863290414625152796587837610443745306465259639952926257518803755499159289214758376313616035423372983516488323191434745378146128029503670191294720747258627565816145891620857107221049720161896905944171493906715650195210106535877481249735249702504799736409684570285558965353605898200880503936245496943404935383387744256475441986618365542293205454305643616761838291479415429192651002710162435518998485683272244131061944686368041591392891862517542917949204942584090357161016750752624184147702456377675886105228305695155995949788253936923051835916126881624541998830262379599027160499519542175429841711224068350001466474007425584492152139007746025538015480592889563605373040868311078618609688892427031781631807025856844181940889523087335719546964856638562232010901710700630624764187188607103707833842651135252710886204812750423054797137797699545018889942163920970349939551682227498079460939597891981803810921010547180262712621611940690745001797759211355063234445278970870659650889748490321964968368122182321679035404547916324882341065411078278689836742954091324286540809993523598407641857990477552237840344897073016052605841484896586853192330106749317870511528521762987958720359652290859612902086518319256785054710500580860406317882435954131850722167114171422601092616007607200584381850514393868439431149634103820065844486888399240453362107073897324812318791809324989161941183813149942668987287283150098792428209393401429120279295206747337099767508006152153685006774700217233271027540848519540146117807855305277498666276856310121737364432461813613169640792982324829549399108836355206052164068588964286144636464250167237980511317358362639039587200920754799660356256268554302624998865901044516491467757778454894030290015584464397979056831979712399336234061186255894165970465701838124059478165745113341960043070222756630941857618273332552948945798397359764815120727710591624323138575362893998021507011476761299595346285262698389550796874717002342212176615014458068519164203122910593651457432763817785100247898872180646583187658604135642642321033366656343697924319563397624986470380382707884340272258607348789160543288153919014960697422331678048199285791338381128131908983468582044557429531427852613033428259444929560422403515019827280876935420915540855905270246003410466935315584734976026385958868661694866913046839392522570029890125857808896456099691672636117916636699678858534986659102063580181578998295351784334349181117244677008543030214450546751221869022565793164518080614765437369863389538509822626219070320926999755236986394148712350227855529024731198605953490579361635768064751068684582353392974186660606979529291183163880384929105034643779919600401742638288560535648388610703594546758819867964160175659739751639403105250941081378450755567354086860958161692196976673783789311016479045762088425213123136393063281035412967859058374632409253665835091948703278220458838026615325303769567586961818492720904492923055901934228174754673023336559931603566320373902103425445183131439606622637156774606459183886819623690027532548497150293178009356261246767970181349075632172223612211801735314118443648857339593473021829116616573254242553852952417293870622847068944246804999156316151885095990822624400829026401308691905232422063258397384895887800778336089219831908363274353056734133725468095875716287702883766395690763184504119077304008863101488772423755447159475495737061747438240808419673908457954383853710688354269745794696554320758239471477035161205594617159144204947113026756369705814092568664513279224154639584814294980959700634073720005983181792939805512166598587098299184529138826777679341032971164305920771222812298115196494046285483209733819140832493112599165218388365576192422272727949481919733342772177840381227946218017196261061055667004385957256803510713923015931753744852551529201809453890430017533342100431823713039120380818259685807803889129452617046100181374870458445675973725749229761157497294137234721321348992470414259313925199026305097777336018572675892254120949956759549993054601998613688644135100676587594841482930743089025715270532961991184939914099310711652003902601311441862713066068893211725325700354904443185435566912657787473973911032511538420658187240000910456286499123648078960419593630585135169085003540974150917118625557366788679535925866464692358925162866169328751744732084714870327038298805129907728469829510375375540087949819504950401675199090071081255859086351094240431660987742896969583392679301027753844229294481200453584110523099410503751789099380300400963356712272550847412336465773963449266673083949280983141983008188026169554688077998208404128688710800893685160680848504991300249331726939557361799675229647986126500711836098703780170696378552547133051244922933137146320665903713685484953582571247794988953996684466767168810603557905026981380122027027376674338529042159723395604818998424570600439050330880559195812936422403176224301382635941427595838686424792195817827005597192320241156937435055139419471276668131673946760120520808116332350637937047206827199631932741846293984286858466349897261543982528674012377927431188254878754904087443705857349290698432966734535595659631561916529290432810166268834233635971345580367854607785615446938810060756496438877503458227468397068706027920037794181090948969863301019697751643126520511405102190946252761211375654370420468341810348325584025926706616918178386211629288866074863001065808906039924953551867050525884552515725838997012537891545520678396667468444885139452678766591363195846439209852142842925588615336895258288218735929065439242361963598431500142672375457159675800882920413128902467758039977664220101356693722035991462121867471711711018615771100971843522608581262848564470194701769719159947417499510631167354108096672770964588643137273564373568785958727310600313695937614435620094894680387405853354804154917422805513976300399004709380420436987723534168480461812137073773113299799811852870496842896837436352431347801820089655720057800790275628685607296501329706380978516373565212337842827567386060591604831234439421987512622625320431442641828975593847961525210573190815166918483423181243174776594547733923116616959143715769159864321895852865955459528703309786921782098558514489743689738157778402834577855412469288480915798610859052951920863593651724793960344808539537760080100958317835827035763632076703917589675243598885623908706682305055422601981427175633430889102386579074060045196855220261794068322489512517272095805666110961704831165357442239746823275465077522534446727808538854320528117961497775433923342144022681143382616137656245704772589225199301381285644794625591947997807849490094757423527657890148919634413667959998555600310537538158196872935181802883906738895859559140870906589548882606034365828492539366963164944426826340888136406142185580005782025245655906962561888457725612441566847156137878629121377428370786642674541954718449974207615889874863234019266972260225519778213325105764440414250553513210097476201848840770149527225251500392764219329774509715347168531397193395525191950302670326856130170288673369083796102521502135719387943981786097766761902150584425098142069025131869727127103745110761922518502889591981085076082338175859632988279956936472239479750525432166636864118453905590406122923283261107409393167449864668989823995641447229489994638945974264058564963513789774432487995762294154780487999818718396879758208188840141091763910158771371852882965163182449434335089517982271331147298012580275057532527917535473653652962709128573902816732752539437272036240616435415504512107389442432205299395730652827716826268355853235587745796965379346015123703463256253661823726428354813838128281823138414020910780966050585738888656500261060059664368891297074322818384601048772631540078211618401400069352268747499466777928880347996045754927114902828982609027209115022374640872880876431021772834395918620733213263260413280001211877759681434313856362143469680311815594784908092683886447076829486322385176968855262407185253522192841636085354818481314159945862774493532580772218142505868588261557879235579983451834317010970436780168922392382681756177080836485849557690651878373177815104823806537142006787935846217866731139802823025089719244049840203561099744295829927178332727579760972909298279909089337683950481469046360324586626124970916772091789750830953981035478714841242650134798388913428271949673126482783650753254438249442498310845701397403924770511966997201317335451616875958369540191960391844131299707143350795219718752032026791246970690532390368511704982376934160235398196047770706398763593935605658729799765313079039004404950926516126720236760859158977504113100008664324721940845632303141677295807541067001449213652274811649170119174543622287256735804886695954430235330309930183717065553136198119750344574027958208679283933399800757485373136383486877012162835115814565339778372665221862105799918283659770052452916331757549588771401016351209235911568572476272615379419063591745889085525734506265584575787993723803326384450315712863171649156872856092362691338133157630928277799814072519524178571675506459212382326772673485894060761707981704174322394121326024013700526726133980792505250874839734010688346462458685079814682089386502823437762337806033784729457843424258169389222808318364204584124780175721160220267105852371836433579377668797925700755716160232542032894455289871349758503058267023047771460973649676060339418120803832830493374810002568273379375355369745050766122835907210725785719952723723422083507246673242134312908249160599698236468074967063405516874878430430369356645501957753762583839122604736766876169337434840730905636351921829790721392553301050970355551050191623963648056336591906008129191543213956963056360832642117420794985294855771410043088155969123296088857781727168063113324212580976278374177420170930449896415952166619283605407573116817094184291112333852863695902644788108224796722879827379425510990026749359254566414884001917736302178947911236300833267611430973808857580239022803264819799376170595713943414582531129315576404156514955656791094041231917988137081933967588171849307147128663160634021917642546845632746662182097290680250037523720420985028656208846725570419922188500205100380177157615966025396728940563913846770561402341745074519343401294908394068358532639422190417027802849302529773301666762229458865128312237779487748889756423326543871465743806140320711081051488268483002191815203487288068187311609332839189058756303401007952555866776149663046122181121571495494581195117069489055702427285126995388978058001217381312662963055056018116013440260357508749266413919783408815255775511940007174913093860010746631250643079691271284016367727916327551071798454257579487076468142220883706373645781712489852911009684701895489064867741106024451003681427962477846313150039185409676206096259341784797836027754712250063717393862361599043896330761024387985382813420862292409638064543213045244927281727056351980938594319357210442567809381155201447943309766823243370299456753954617390374123250947157452748135768544193369043741426469194191515379861697626336204094723653511462298797714569246074732001506023611601467800779275291781012723694166201288771874179799273017611794099862754959674876137821475056085997055552399559119940407403907447551788829926238253614431711856378516107432237941387266529705455773131903744927171031082971383250111546278944102556941087021334756139083788992009992963359465644019157696882326445455179685252486588639000599532073416976789456818050049297682468576333306004236206735041436954309642639787424733622618620802451146466165987852076327037601610555677511209885657437001360678220386792186315833136094027786214360223253363090303211843755089696685512596073294454875702805410949151408754926658442181826884926670314672274865964587336422416074997407282641782278311606105286160338663562536802453448057966354825295374224751662261754204235826531977714646485201170633649064794817035471605353665434742193082324397753721608490811448147294331619787230845337662339420312526911391042131486947097160386741282972913852667313413779288169627114638840748108409268524768127099775802193868594506340031212436177653983864654715890796980067162031506154703924257902696917908799505139749476774455306428627645022537837723020847001944824533569538150484151353872959419664637902046359324456379592408516908911914165349181149322000072703300207853641659479790869212214941581131586561474160099637505571589742894675168666929907424645136077914915714655357812759498820332750712519048762117254150515708452113311642704348855084145473299352348745574405128604642525548012782550811434553684596601761914132281702617455625409624138120491789602495915279460445132935073458649494478566559091232494842366413773726009602885184145246063143856690179466122188309850805401865273611106795605665217447398761734824635298589709090584649931619489270209235692868273567058459287034335175821188373947731449975060925550872915473973294703111316816381600297325852826731396035575480787795611394117188795125831589198043023695462385943761991662286443523051438994279862694273190811075466509660751477630064286599884731936426652971628801084141435183415167746075195152952092334500997579669716687907702248718571845436111037583323537117997777263969664775198166973395306206376581449505741723256350015041404321884378789978779828536690963704595676861482445414779761567470216113459085734871255452105799538278097512275108309885282350208892795485354016111649722146584691703163802226434808161686270601398995311311595198189541168678431126712490230313852358288184117872377861113153187464229210326410821895886168279497544582653389642615382963194647549046083553832518666713418476228920662521251794300038823285509065014280045212023874658989570935553644869953222138506578360282499062527576094966021638335431140973778035345207211545481413144332403014524517488245465257778060865355265320035351569391155777035624282860183788281158551363599349752613628113572966097893999071890075815834544813759545593758205220809362139695107155529301177537435760321759779350120576773541129236355171054981950796902964232390764958756880868249111192545995787521011012019678816813525126469402434494440327473410322862839973572897746277981795521687309848914062800666801630718044558913724583398335667151213156326253501079828857312107074397623640517139913660113061704235717889105943763639339370485804700567391456574212388896387322460247483634147829541945117455343579931280117689042249652265488867557192562228389220218785122134680505520890311934140822169023997274367614072796582063642830808874811512159234977043822499194643719399716429802152214648495698962300172514449983853283357473787026165178450572797652901531558700273053895254255452242136259226419758483423488766830897895034399957644717221109641103583495033287261549369091014937944678066431023591273103258902649186095004318291904454219858085966412788356974894050920833546438944741176390553562549465654038255680066109423954025018731314370121678273949434055681871134604493370805708118376813150496540159181866736351666082739445353380489628239347825666467141896101511656315720239924661031288029311035729409125620553456194470285886756915490660035607166683096890490121916049116844339969588334526622559930047742216603906082952072844178795416689674269182600699440546397022571258246576005083439456322235982558481863468976514909787477532354151604938409055146366800052633371135245398048044037580349262844472157738917967092505986976714998807721240333925237566606024959783339617346249368620929514920187551077900179144715681722145928171332307959122451011731292072464772015685652991973122467403433277257315696084148842683607741887104208382472004704880739319979004522046775529483528229125801866951993262187797510373316265273635718962827732659052301873230159360687044876521379757012993426889504642725273141980605216380028710273280303378647814870034557907400732136756950937742226046705827252625182295859709682210754114496655030637204817441450130858267625980555244696144089539135267146098344006672530142923893458161774977489746132390727734611760310044695301731547983636102789272644614337751175646424221499175975752878696278025196212496654778232732206230483319899070962044105669939909442187987694115849873825050822235887389684976888179483631999508332111186458454914653635693009733530301200919974514847527437212362699656383324568525012519768558688955423750130057496939184898480168004742492850859054478161139075220412771686345496039358367528607890674561934061648835167961597032052520003016378845536063647410519198658268071520389799865372093905559903675051040773783540714522436748153084916408062567097258208798179501743159496495330999863718511018638334871847088531601153154602133896618869972121637187703991940244427843927345669215110547666849399187259779065606936650337752302406099596387342209794410780478676448504672314502683035514146174302398740910048174969154603867943125507560611309604101379613610884985351501375163113981875261538814708707832212740040724108957870848148173452133664372197528315984235387480161299158124550565868515627144941129872712940212683988993782686989051008700164608208428670443206294573578158388973142878756966288670104011540939650174329828349439086147700636935494382973450659604768134907978069127129609033167379416138128927440440306737077997716636396362794847501339555952516842728151810548096811248286122658354428732930732212937704963265203105054667995464734218196985673635294177331093586330938485792841616075139829621352197276527655382401364627619585889972148353788460860931497087345259800795109026850050362550268421945341405781208779902032221495492072444416861111142426407251186655758040329596876600784453962312053420328546392067928601644045848082192750874262623395105294640911550176482446641646496494509764691545656215420025978545716462509518405767804268033084480705893075227799447887566296459141995565470002786773819074219715935109149924606010936113103412972013918716060281200662052126304975882476956451273812833258959205836414787289306398067827135687869107548587153319700217908812872861903731935191032678510760108851641487168738241089971495424572136184554479581970845811747173431889404217858057406225752329407084128766715970876077106976808735128363341172521387211468239506870836864415830420630557594637850109748815395994443617309536012893586261349284002828461062373476348154463769855834204171763084795544368236528943200735345696012464897497890022044794479634391580258285564399326188633455180426462978135054904086194022867230877244053399572931824485482777202718462240765495160428445694038390951279515299234499463861940079558068468614038973014759451488529302699871599523454036000378516094487684764102377679916497326694283258354273782409809882027010588834098516907476876399545988958921406415394748849376072921823483694840509458237086000018244986954504874890810456193139988860157961529589264286741036035460747763111271824485529986305797681553869166506742926387242345540494997990232978152068950500127175522037624073016355939812488208637528144239470188131686016548720651240382380938930209164958849447477876519967784422794197376602636230578982995482957036214889137446682167262035247557959074257846360167208561258083384061869163485829246722310605997975194430213697715179968380958327115945655022335702382893347302041919089609458269807342099362157052280647409080120926622614650247821515876572620796760978361012169673296744242954774931250062037730657751576840575149247125988400973826025689183179326269182757840510377996991555362550580589813550696497599973500579575559915085063015096341287649636374096879338230414302853275319256103972464094481564462432223323206644888087756587790232117396886739063338541259113473363211752918253135194007592494078092996827047527093522131301925569527384911333921213615093658551229241724951783339370477211524482521339720660346859826698293353399629027707040912202987046387128072425481305386276089709249008966128508128711727413139891408010828874288791271649242154822173836550050305238050999723422762035156548357509495940257323473378021016502515979706980389630198119029450915126486409800784693186079898657535449992986753763030331861481996262776235911906937725636511125078778564944965437084566886911910533729570263931726953962919219122480069450273097597334576326365184107188420927237411960354244854061172363396908965376744153118454437981863510386635568471522235142221571220820597615824652469015650237853798077378218081439692091684385188522535138589140471059310091478463358373349594659715189315252061925943430921236333626658744755245108412306259942768478814655488494229227938604353559083474891606166477859513965205997493865674944888637000438702931683946341983922215366441090258888039330858037821320939459263295983500522922694851744436215654024636686675038081407341321375378373465703881486551476740108081229689015915375331351585416038124065665729986194427212543336268431088392544464511378829759739709527922687920474513869577569305335791309002032751607768020645418028408098159118023741606516229715897030520219786808895361989439262435547606296364118885207804027400443255579188743178760615470377939045680841689781775676749038442115829249669589012842498629017915566790596743601191124160437677393606632290268627010507291107953604382566501689218145028447164981484608251521058479881567915056698271429032815247713814167795450683942463776571667645566520343527833733687681655861310406538855708452341360029890298126038243069798080404090797932776761118171825774328846547191883128572066703539730028623648806376663961909749178127556463736071172876925093492873834109712740999011947250707287468226311030196763133112072708397748093224962725687210269623096732994845082360708477373042064414661340899149363771816921282093271976020484522468921612281447716954983383200014452696978282555515841357648319906895657263680671616242565941132188328315672756132126308034361204311877734792645794083611072558282252826887934566091274780603999955461309078934109132811424499445947161958490947897930850757412595530989426684649829663812250795964076617276041734860156719336875052602638146846345697632099588556436005085975497090336096279736903072240310193210651576874996170076137479475902288286762825216411333876346846171272234684080851211942974329240155867576257150656154562385611397702931333020170596816504879620404497613165713523928673881409065145551641241538997878813772522126029529972467071760004420676238948181931048300755889504603368564127929036505711536787229934011037737216304347359035487306097476047240422820598365313955252947620783594133169605632492076289191649564524430358425642918132455446226175117616137174161013623175587777600539776069756650416107369616902004794504571710687384105106908261971024419004115443010587996083317917549371896425394975339966181577151217444935815225532445606235123995043703925179069583382392087856274845920802511207375769031054694380980382095505723472230771098902151136015068232680754165571820692239875428843313472666291644102235338010140387485972466950394006315219140461975089451243365316916591294155879434155052557204122992763484460065842733476644733043309415415188606511102804908887647990820137406226143074137511470079183395495813328222232376499916907647498192283180507705163067452349103730110725521921142268774663846392811682872841276602604294607201553184059841005610513461691392062363329279206019651805130715212997099854497958935680028297212395631180525151095000253940306523761277719020546158495056478078324828211980766046019168784084675042977404382593417738097359729765448430467818683045023280798057756083763572503150917090891570875266367423286327626416959748946623571510649104423739517990808171377945891573616828774487970570988600356139156818979691781646448926281116893189107006755194308135815541601008795458639711018165105843043817425800214626077762020968401600590788887257510147105624911373081674222247315505388749102111306381209817085079148630921076938953984552095301163091150665635285414682278728216149676485898447470058183581887594782587604271732485690588316995186002643410645082543609933878087267607551896464940194047275570193779619038250054468513778556634812524694675842356267573211172412947169570059100053470419268043867180171103757302995917177494426651739102472399087625795685764809708732217271863260317771531376831034096175211936178007810611429777820350552302875597819212735107098025077894653069563245950063552383886259624875138919260744988536059671593873584822041079183562641677706995350285268857932540472775477798950361978964820442985505226401127077321977721231016404135852690153764335263043460376937632598520497405986790525789427888625408689848166280665393107592426548052174742216738958563853310798250290220522469670745871915601086398140396180314576111004593224506139901559085998815019519109313819112870086108888211521483104077095064986017739932647594129289615278874763272257393327801206184897797989974309741721499342064202186470421865872171276235808048017496393619179799019110925124822811771764454759805452739988822249422680754419420552890439999792528000196337558940656708666172771400780426582988306023862824320491844821155994614498179943200683857713065893421945876967150595395334100229368170753663926267482213365678784987885375439659432037166501930539875161247347834196324606754681379679561135555098951173344749480777469752227414973411520415912487619973138806107348806318524666563609273103288367551347406890653449152330354186799590851712252620889327131804393375279950499945418273682789035310053664804285552268897609854737958608592544360058236000765240724475855591123554649795427490137675585905871890083115127198923085243644406294761060500715924117390262008652941568226384361178025541453060924915275056503855276478656053408171539771838070226350685794431408120975122845805915737449656156169999070516294448655588809622327932542251427604918743091752293516149408672494970215904762230380282031023108435167895675100535552545023032205751561104800757780966947543307581163636994897118902864376055546328034420504919354695689335749583471581592075067005372567934591083165836601116464675465333066706853735087430729740095249298058155491456977732788665407773660006312902275900934049205866906820947320416775964521284427047519446880723033706382708625528621098193103471496349482735201876157372684096811779274006207692609976420638456839248010631615712949892324380874284910341074538327489847253370310377425739044677435668524958688497641943106102317412440488825759181709516617610529740044748467588068264775453761007777543328028538728157534519059931013608792122343141108003945720985764579116287395504179013407221167759380357118283591374743570166392492345424177346381052071607272769525841027853919506358860028133256852713111916992852982880535848511487593533798710553013531054340900701040281512631883404761342840027753995327292165927559838261057823749856702970816835780984556352449991238605791768530376375855849614108462037413622702742270078945344114106531590653787932147996136454642466934754186868160870480436678454882770012112960434525774508578741644775645258772991005816033568887648206035513560384256537367565886007745662345728500440505083449965253321183464883902493188516768641000932226279261071490987283263460062302562749560958518281937616278385096845302715048708653433046256567287006652453855383010777148474814567573292421861602089445078755358947614640222070347023973708007432180185035164940251326666061484198050740261341132984392755945832889581481859619997789390444848744581860544477527909942882782953133641034932044493179960282011860789495082298968802092148044063239225643347881780364464692812691511435496977034173694735812410555252250747509184213069547312827377198721839230119100152474832305877245383872118911391345154729336396241656784525335957260946808935820722216785859301251039761721951334582539800931360114708220780022046099381702048498799792189563963585838532177547798939420942870959725899499957304196745356960528128476594357573337683659709915808842617203434824734480808479928057705058775245975551305878714815407568700664832062498138109675236325582222053584855050678967490538803580178439788280068083026793254862162368444135117370799109089979428267466545657170559137848671160149749829437860216795054917066366163329690488288763713071362515479399530155189492407251450430013825529892741654415224993011288647937709368414676994433596574546689651349558095896993449472614209449187178930695697638489714067310311864608097198854144967492689032765218701093495839663411593842718908515811965159520555637088180463930386260351988097987823740192663156284496080732246799944762433868090740068543761917959781729493231284367024242275788630757718165935558295668591536309845670936549076526190263975617942822971080707162004436810109824304990028345012423394234847419557883476539766429389941441494710313152577032734119656159604488970754028872637419465114132222684102650936828034391912049420023692644520410674392404063860091610012904070679390497428909151755160704336277025349732465791666613508427001197500625666029160265464613398073720446752722206795520235631042160987684655898982149292941969602498624511303818944544252574795153581860228237564047381106552319547707264256245813041046713631963739516347980006275569987106854760158413829219674998331349477601752455756683444046632676123980174274242622092438434837511242954399598471098721329171198134541087269554219669197944283461909298148645520891685574289750230638225400873646319182720669743047815080777569649881641461345979507709393613548990630970616081385236569274016599870834934868963868352756192344932319512319054775900260403261513517353600007522445808574009617780153703009145201673073500961158773671495905430202485025471961027492983737838405308869897518957694462457833941941045860570794141351081149189756201484250186766080771505856254977956423333162730553104681576680700139362343456787563311123132762317858825891074656577958547804844977974275431580956806247160498090051125138522322875287070589886819563648978877141528421894760367756760790339672499859331150854420423677180231379021234930411482035567434395013229594089363713102713719790973761463572346065747573600944988650263773888190673559521131516815943059247302801502934783443896417665730375264697380689792217410833963528110789118318334695925352975327424803172077785969919834457039134506744989932768326907800785351892242791342807648170346967996363873684466622761838588267051930427575410723936356324279189815106840197955011127919815657958668005826464743504998155905249626097253604528240180682537666554338124765938839627679817425691881628010077554450210195939926806010215279064933214764774632467621024027833595366835211401396786552441858014080108243193868555751229872894142836574601882083493694346757672081065086254159117942250436979496282361309333784843281905193770090288655427094417437441483182921325888051091302692212676776286721619113559107853050778065773113754631938590706402265376911380608374168621824979198278495201686290045987634775278160063695081835593389134499327025103055948708922253574495672182947771290278388687576740117546158987098403018245588255607759961971050686608304123095994263302202456309821114354638261834348293750780545422748249873712902203664763145471672203981990302932229205351812360941720174419544118188717049648528810493042808135992261425660604950773664126805730578068164473219104464811449626821651764676081882220314303967738545342396102376128687266067482459455735555347091619644302241361992854778339925047770614017778706238585382105465785449001766601803108275336044009255770669133729645330477032924576732953363350207093267094505783579604540542040008664465641590725731743602963061005657988874703731729655720011082318468677575994828924484833532209188428378552997188118350126747424473884784510212577671822246549687361678868054718082029211191567405941597671322423676309495547924950780869863739831270868469517615973473624763795502891791844997576745447256809865736695279731924121220866408852279141830284437614645174710169956406549649850983057835663495540255829119269998415597447982996512750221445701560370261193073898449661726304881078311575227625947290362694679685068944825321885201346097710282870070924990184539054187515912062947053875377883394726517374070583257514931610503793200445168485285441592723230477584831507225642998455106224891330968464870141181543084685189045798869978612223054679173831764073188095261941988210817393593123165057685988614580892806722126748440575111321724724269685159169663868818955807975698599314063376918369935201735017606714542159761865571128482500454721125585839949655465680449741030548290109100508464901217006698210943004081653203922486191549417595827708601458288846407043554162097481295172696237088569530654867192307286776246470766402885453017541825331130322746158886366878652833688313963447809263728386530146263740799022136596546450113542063330879227179080409053360090523420407216210894224168323741051045752539750275422349162738486217954179782981025397557932092851230195546733266769891466946491218519109591937178689854083860137109597526715356593849867888035232433586849784891656492444721039575828390717693059721531387931891913389357900534416876944113508832029427891528048876623389836109444667905174320690499857970079458562177782060525496446137787662179618870327227615502637328316576505694799829926817277768410878704056827195781025547477375943783064348630459706296493118074361056362762357833869515965378276561679003294708208982537740918410462157849540534096217288597145035846866354054810659143118722200187322386844440444176737772904005976407546804523791816489206576911134468458143891108653323086685428691677743974663911501931098080759246636182694827051476465961873685191069409387660049023157161689472933482894559818316138471772570576749404155133804099555613749862500159639477353789115442786883872639499539760054930918185332205237447849478310504966103910204146632126998510651838758392214956094465083537746501077440901311680181633267061611522392145069644698320037492614046414425534032152531649566652523172341494116465131840195951820550890729651033537623691179732518466024217152196642949647850668417958047291734656001691994857913985638882168449546162113944861896964803789773081515289686300205363055343418102326996347360489322138627542961853022915422870626287169737066071819497932091414431815869660418987964429882170272111912566755543997919252211342328298684724865049365892093590007816849073047786955682448997985845402185323324171765940256080532856696360086273969307275617940073981391125791809389495740427756015077262148121999584588581926661805253408372049059552317240075438653172226994495867303995519093799475816437233559410629458959076403137577311306972834103621420405981323920692403221283379454593666927137854777254983409631840362959892660789149287149808510502502571686614919697438563249086820570419328706626930875213513621818459532529632379541487845513093278036539849197569833061048277378621395509362661701491967816913113618307291470184198441981414964723795223649663365405668542970704063421989669613910886804630039608557888305688902560030894638211485700000184535574353300494388567663884090885773719704494937755070617470908792344136617234478342070040345056475771148432585358998492855030188313410818924005139819991243930929851666284751853406334935642283412553917013193342484072290454954018985820311934396744960260932508541304555735015613789226612544630426011379048365063806720312064705704135766802051910970548312118467979055941146638098082928212982243863688264794597128765288055380030072597160886763583476671966168257199904787509729473590242977577743843989827910698002891548009507345999224281683652328070394762718559980786268234925660634056906327058520379982538420735992581541967168169307344241053982621432903215847395393582210961688279336379456222765884479430968608097847027147903447619394728644829629849053189296726188844850705879587375019353855133951712445525593483881924091404385543258439685285525817061825717238062437921115387529912324824233636918161918405648208085424126607683313166905729959231000311693903568360662088880242846285831457291251194072398291680828297197595928210438783477650759977995848704956621574417212881384814131977562431303899107095766940907579937401660032125823845731231266791993858356980133870152271828717306291336217052730384801996447800299260069351466845355857778219068987352205991929319271917879532939984442512536527713627919849628660025091108039713744918926310778225556079966377934215721339263925820486845445449427509334141432704730999927555583088111868327528674994839820133719954068988546714800812747638010109024291654396202514096523495314871579687631850307427631360527149402369815447797883497624851185481315071310762505104905065556558648216359745925781186740265284877364352681117574652043624538059966887176420367499617539461448634476739551204908898755036627952464002298005296730543866469067017944897416945503674398445019233878245544872173949332157997398824047084271171102935272993753922145739705405543607384722790435983554085794418354391419626608911947592994938278322900690493259997144451676953718954993475431666306837684670415883062651851140445296557995326265117848811712644528582255342335580996216860922474826884049317469833161326423106816274882444894514508272280263792365107572372878162066005801520872590436346835080868829129831398466406696425021606376349640303180066489935263513900138476351031636250886078651805970316403556930289415404538044313039311126539514656200745430445168719052894532189321063555222307590950436176414953216989711121147215312799737467820978754911538847986725878941498290948821674614680448307110721579309186590008015425028891128704264244030962198559751368172567340799200198382071138691117968372671966412136398696003384851673588237287275998914664811227399779730626183339924274092329069782762092220477104513510976504293567189929263994240273838762319501672401672760160164033895057588511405845582766822013651558458520583446259330296159718752691985431450842198500799054110582418926072672721670157102349633409165544549693657263882449763926770962284416870150192614093721377825847412145338581553709304450458043955720928212555223039170558218567666990535578029946173955079585105508961989310547562359766492601069747617112291909676073167831465189440176929202239424621798560558022275517737148319432727857920566702372108993286354412633661594436709807749479681286071761529085959838240466142850122609809017307931182385451128145404375471667267287677987043101126864534270935203214505934849701981481536777614416940407594037447054240811597031458700471563606748810412571791558624462220470990725681239723938602365332981671193231915336470972075964550561222980027128975742451992921747804014648300530301724817888664655507061109696699880555267032938063499626965027347748000178183204763265694296370445669959186657627541614074952202045952122665158612635115206060435833483012772041748179815183917816950666662903759067728218192046729175160054479867554614242319156331064060513245692593297818850469379000069279204713247501053127129168780858184605355161754177445567965025845353513222328894271815079288242242616074825646568259872942244368281315447511628544543871739555451286225607608934147519990300701244572455732038429094139799629940568839702141372209464890110696226065795663014830919916428155610446306787775382078501874709576859779537010453026920776060796257597135142644641649075341651521643870964843358993385206704084191522230548587560094134731391727432010138094694006006036342335004149408092512843888181532356626408760042486096337792228950163739052851463041555546292939132561334316347100981620843961674956076578771481576596316176323843572434406035767918022325153110626836550723605949288058292731172292465145279705769636482758256048989056484574778132143770983948225542831125469142501257380428995529310432428373177406678893980420750945865107738341942431531474434614858658992174282036421277515905165620117836940030748208552211295882173092332595694304403457011714506033124574745454497484668615118525121630829098759404050670984783589062175958001275321523529659463381621445742774558365448967994311567605635798118658564555968559848565270611672802766571175658078215459130445725575094616614099391802621484592238825251541596911705683008258190147100919160268189252255541365798337304721610265044549496058462610814619160204944055990678797118566023667740310240521881500379475563935119292820685458357275436787170164558554937644250975306125818989435883930365843217365986440319052336575464019665512329575132606613270900639183716629030420784485131288793275078712631017399411922161516712647999002302616784494336242262460742311166764389751804770244025019096132658075704568913800829407575615836743348916434618730891085149019714758724129802526566898811121376622984461361179510108687487959086202475720140474280120986507834281662201583275257600608779939970449239529341489440123431698796293686746181154001625079246431068689898140326569569616024936212929741983591966183870143222598301879013818381951036537812151800015481611736271469211217794596776211454084529477869920722210971088945357869803954933976784920119836110856648405347405308192949251618173677611577306108754790841923624873540455644896733049218195209999723631323503274999364702137757056522242756881102417106185054680222070139292218411896729943627959686036200021932544358842323598248993500077495720222993601270291631353049311318849244736578394739865277081413123766567454431367447780100446545949467141081777986694734856707351131098995593119020046205424496494157282967242082428182434935898504746405837545648080062405865258661717538585535695058790114247016551411305518858218287441966680891416334658226503825000896533229289223503101515178071981883153510972701348862680353906611115109732851915360321016852806363372880815043316230574490887508864000962251839727097097156990728469029569413335046355071704275874223161105266194821131364323868698019822164562426926814514806891840210736147917033581820310856895315627943964984349802271667114158984572831881509948817916921898295136529631899672322396492839267639043596739471874745076612281987377545083582490992269345136233547735125899835053149003333204000375699732009165663466724167165191147042281797370058652186183723762413130358071603881657303103405261806171344576305804330793660420255328363898667300348190495773391608149401191117414063533662804880997235477942750837963189306180546798989465165603015100838218188786391191841190565836616727926483426238560403957968651890998525563460648712392408896282428148248051047994652495616949961101506249406546527432141157162998096720737544735555368616521132258447321881188008862325011465632872966536773678921759613660242161427471507838889215943401140057163017934368889973246830670195315723487639461883785069196607134011104430680554671875189927038939465602860516567005527422297733339652811724780841660553293311318131963180330212263796657184036243968170523700809906602278099984525444851489511293846703502199171833484592258113207535236576923834902343776388949854196830490381014987146751200314038505513248285478431418175502778389236116171764751556614923705037069576612683833759545255704293489856983748202479171010211796629997598182761435389434244342911324358134837545130108855037533922964859467615590801539973353569419368155419610721641422195255481457852738667111379153997771424527852424929072066968990327303279458982898701152535749924063925577924402973785670372940807671125770806261480057013656125338423289753181751780671989112854865464098295927563436393815285607487676651400416774071357354720309996534260587374122678295513961340562162092885676918518721584300373001603309849564147777193893166460064264680385419059016225348463468823143950396182271554252932849050012068330240694038302330504578179922045007525243342583950952056077138033410900280637422983757483339635917828965130854506649917151506935521898942905345033413431679796497545798016360031299145277955447520923122344457011235604814193606086154136047361920566959413285835188369381663272150688741918354506774566334239698839266109893873025129458682692006675000527790809956731224785877469980664463188789280138250614926965853501796584362892590049349170118948261253147771141118290781793663174340418023988513322611457124501199222256279490750705908315892425305906078442329158878647255352222499527007239307899315559362217208338519560259671549615624723907582883552364140210272782252359468960110245533835152298811904132658971591262141577550226307726153974055564461555925833596146197842096325087223492492936724074185113674675126612178364165228509616509431815486740805047205919690242608488743013111368923207686406788048578744406307214430207860684254481881133005553614692371662662024677187692817739034318699589301762913137705704584146654771273664169300124176599968284085594481147472521744615585045394698227437352935406646897434805315064887258660271292337408761414621725747223781244551335324270760698008194945497051440218334788220466469803911868474101864101240760663168555937660264673398044379183931545162196957894986894753859575883338118979108777371630397710299079576227205321492943065854479579037339786702350914990178656434106917597041331990153494463832926898151722026548443948610983083205830602857278421094199737951420559486960463146032749633070434702373050048767230612616948340357845098341393531324784519934966781924388754485465431539074582391988776232143885788122858849884768048539739504701883393084178212358178929301444687122286907312679324730739641817493790923887354184072879350415232948230170077271742780769527869180367739897257563334469421079991147365506763400541254786648884544475745966510111579234946361912895238527628397782201065260985253927140747099434390318510175750668667533766303420703457025237160509568585123398424199149368450127379170395822942093017445468081200216974077211680326247301023923608275687452252454943974443879199856616261743033813673110295503251749885783014886697771056882322657388883043885685892751790594596622968319622290542237236373383842237443107792650936644614483950812697139262145551257221327864329684492322513055531060124793153860780734412059658228267164646757647127605306102327531366751156061778766850802317149559409262296458330215928974008649680430463701770884984001740446632198620069894959373955999316739415910574147827736398865245582014321269287640890670147387158053087298052011781722621726552654169825115586211087775957443674397362823960458386788847326428284231791544748601176325160562658798330819802690597024471964973095792736272440389243785991376305974816679458886284538505701781752612829187728633272940737150348301473605114453231617314643556181770335093199819683786672710728401035066440200614453387032880664532295997696946499907285086358966217298327708602727675606512478362220995271083260093643781298979341368704010229992740496260853273142165049610140869045606245562484076478795642582762489129311279866486096641784617476278087738776655312542418098870559562116074441709667092383137558446770381246423145738040860816223855270770739717583603829950032208388328416249756421660250941943214647867993805277936533351939609764347939699578268857345040358520160454234300455393075046730559748202270683546712812190846240339404133941380161721032958801627635192901016756240035189716128014624918224021182679387172596577461780940047727636174566509214187101758441767592876546155597243288709848643400337308177661382554132361225268485275276365331261992475473674146866473444113839638929774545834812269488832390478333630695220831544427866246926285298050354291308688358323127297303894800577276536101811980908186990857736554744450187382770229250504735719215361149676029805329559147663014077218027579994273657300331091779482958956155810914329088803396728146341270597836344404872555463425409169068203981029820310249237595591151946931437990505182659875990817467307696194069516120153720850188497606484514062189340547628633277050521916738400498352047401031076208858362333835874881154813132211959908196808613863652799857583553581731409534690136994715441432077690410105132691581551555320933320816844624539504420171431063575778245405398115213299908975318279633480011193934129280483611854090293321708320657789692123810015431510681530300205036350492602013103202201624798050073731879054682195382886796172721380533423400235651729052214255379222328597116758372510533185165928573964095138611934750367047733918231323729832251620994682096702096747413732067028041474740786239028635413425368607630720104739687796278008707170806399532666219962285999522817559761541398466360601466135309853739724906916803225677868362757818921550995535486020101603160642736214580897482290675614755519304320661435970183924605104409071235578855098891763318234595540046464421270487971234121230061661504359947676118503536677896993203321902375563650239387871771805918659432125063028308679317446140468422757802616155998890065485689758070889444097615121147933970562516189787751442105051135535439562476742175608999983454115584870985530698697561906741988442011518675923829145238447481276114202078087050064708167852619155642422633246763691310717453315652140806045764511796707400559947072786908528187218416672313866473064856250941774279668951831319580534024712773272558853639381872062787664921370594316479137768173290480965091485844657029257921460209648232703987286291674321635422114765163335843832911491455205671468726541602325430414247275130398933702010876982003114472625707628570041657564548423267173114265209196700250085219611409591826644731975806166153862331977792765237265790571826960889691931657062726750525821439667629373326305778185083455362355401670198702302503497479549045989521202221954568119946932073891626683065722094954840554347446991395566731041597513103702633486538281269672034013364665461187436686639925233975159256378758982408333094905669267683813162205337015948350763165017626909680870974418016022588191944516104747727160297881904462737872397882407322099829060120671268319215015805340615755884720807151286189975260749135049050431784279268586288116087963455038184808707925938066717440886509950677370462886358993502801000357615262172650601795114219774008157992604697321407072228696020802584460882175375082240687394580765525808693053563717882394799523914314097492571628892725619119772327657238768193039837287615693332227830587555488664172628837401806328781477008431361244569096722413102273528823790541252784736818498829806712318545718526810474873429086993024111814945929803588633050104047438915726062776282363174082899747215990295545925751757879698131868878958889159806691091659547027151535553263378697156858119927324886215746737311748333029877681288110881293573527128395674485522938989321901525567958543224804911332491692432761544990975887984473203296367040564065045767587699326006413765427298088343514569463992018847042852965729225823551381681162470745802060443399561399674087611063179444697983456259832576791789851214585207936720262639842533156261902851247551447530684720007698009990698585034374530318837043277976467049378564314382077496076348772713968319357067429915701766775280229388657353276416527639237624698440853225452966378503455939715705745465577747280893069825529229160461552352213593660941969714754512231067789645113328827715097806205617387897571334251790815466689568931181161824810389435841941604428556619066150103580107442979243043786425703488223102549979497800212340456584065093177810976638026189179383473873654747323189266893721755673628462406610285335524094345759851030042027279839431834573657323124768038585807125920421812524479729365287615820029250638551610493927108298075083423497839181071488653133019900610609750300627847745922944852037681500505803665866120962482174466675009345496149030923592044802880240120922516754495742189650812316351110864353103365708284172755480545804956755030359892561831098799785392037747129032901835516570153320349147731279933147317900387733962134003895803325107923161281300371772474248089181285553418462398618846385063340060017509316648788438177634001543997467762398376172262965314494551928788164586968266438752813115612313710162264484761042647714826858556634560104382892255053395558634651739387703473405849762482939936100354004921461174590623314053561088108850718675097759418702112369915881647717341528836616483350378690360851297919812193503557498414887091148508048339617779874156251321291866645877899992262339649267348924285303440806207493427639666325961124265129389082396014204414169959527521981404715449328066953463897335753828567997425748091947237255406582334199331369967340147126653254545323973412826858127134098697898441054548723542982588205689658635408712392012288709479602429867836461030754966474293730712788045399987211761746842384358495361675004680710625313724412385916801304247250641943398765840624360551226026995491971423820833394935385776596170477723238059033955879562657876659804622139955957784095616080216448314931914941988171782327323800952140858962813500497157816962363961029217170160439313137033897090683886520571795077729908801319085562047106854818579480079288646652197324416959319127371099728971999324489123389620809372067306281699670126727878548733487663330789363459333731769077093880470395206188949189953822666818444163098233176033492739467748196943282164783121562718775789764039788782307797202173008880942404431326139599569917352929953871130118678842862236408924185672946307516475194889141271417106665779069642332728474874631956858386992440187367761031434769886638435382071306308178495289891732301162054993657684235665741315891415231813376175326006679286662416333121711978977388894738299597110386040875584591555277646028065999290934961325922457911739109421192986996423406793939528196483775735043183971675386129507552571636751810699576004936234668895508951161897115338561140959523694788462806288879265893030991180723567433562152049275514283097107412085839270889759787284387895140934385418240129709981828228883547650967921713107554696882202835511523430523535550442891803716442231251243581382913200131325085133136307613781402423144839376410764909276142331781452224026951801054770358023630293822395156746599163838932432714640966034489548051523389418620111271031705235383993320275317282091262993440361740167225104040282840877046680195719128926608922297574603040289469747504819294220427612376359759961008928051968795800763525045193353485486971173567201161604587220474113543994700929226283532665206524686948179555894075013480754170561430285134574150613720421150525411533476040024220051166708699629024468806822412901076169261664975735620112798012091287846540212226771450575027132834025471808626922077638245151004999215530467981815934521941552856714656814240189134905718987623034932685637932233851631008195455236840117424402882430749627509758213109113164398059240951921037948491851762220171601435085334143586656749437737127017607719990129675815595589615488110583461750634736836820557309035518749990998483942469404519131536304183374992182212345881445945808846722096150049320588351994385213411046021373161447012552821943331696118855520415586391359352432998766498880551904453442459300380883157833566023927437071581230314961441506433972853252714204965523266954542406108733645967658487719699428237771662955950310054721638688786929030207507248525576353080381681641913193179621699887533233459398411454542878859616183832376335928846460135313085312584514081977476599996822358194774583519089244759505972135971859567564479277343542774137532695824533045986922569061559145386945288615577059023138912575604566286127068767284951628104097906273640161813313116013998627609859311223009851709546265659832770022412924161624001428808352769233582068365358002706884031044604775489788021936182741225909556223976453506375215325184812801176770132604273848906936272586827615329398702838969749601932726138448984626866785664457638615126198534326158358970966492452782348903594393235149731941601330311165289882535661254450047654924433687976995296099328459815491448288310286874157748918132264331262263931033662413804890802504358282464454562522099297928939288491701976106142598019766972312811688594683719169794109493829153619279122710074919389609413944110615489288425866008405523966120874521211143852814126575301230052180579419573741656132893225604318080059242477151093826628069208441800880319929157419989173633978133675667656336929608419290932213482109117115835771260880106309418310774712814687671809882589169265866075136588820734672254761953452987684370783948428294982420244544935779103083213730275849881700706454599129341503830449821938193496664986700158347079460218344047175979332988349307696759544120918621973840876870802167205478550991299780621710903088625590821298480049720551826709293065970560973998371889706808216002727271160517191886008962414364567054931533029962847106491258750536580919879530622289220495390157280965991470220715334289983468733477196145915262676549688824672235263427436901602480912332543550973442944401551984461020036500908439913553056147505602707279850923274886394328452797306188623655431580842136331779821341977271950526889920132536666204588785620893833571149712443454545132871989705012684524661409838658195381291636897724554257367167847085284959218767313501183737367049474705049566910469302743497680714150842101574391416254860752411170476816963875679681673166239437845077300281234736689312356622925134629907351234675754486496549276482330225799016732719456002509339983734225100685753582691658472519950370198946261630005282368679680264511360020734387223522911876018595038366317222792202583297726967210886349003151502730195005809568789697800552963457325954433117011702309497286240434939525615740491618500633685330393686557737732471039582078661904677929615127952314056986914946196012624756977748074080734692562638648893648758356896898101731143131910237055740323196519609760013208116055252978672306577161064465605048854488654197735648355981553391782952745050160165369846190954504195057209510318522608637990208028433033666933118491170915192066687420409529418913402036415409394219968392308342171224877777551603941342626839993563088194012077440183489825317103479911866742982347740739437470075061463604539375813761884800382031213636930816068126704935879242145128699433871383709263801048917123798465838618413757716506255520055921328570120263479715470216796278216553592914802332583275011363490466046668918508545725302090996917609048560571441337687331230625776749152845701264927499373524029619985642275771879000692111113200801830147059450235896718059080940800539362867994686368165263080757063768897065568211371984663970930761921492270173726661824121676990246745127673335316778088219156535922554782063807156834303465468282777999860430827909365849384866530798971935239059213142135714764510179447215052300426741410917249693261274934126051205582686923654695388864212139579441957621938013149989943556101323847799833863268593465000544926127763953110006448955286826462453125242168722728147014611359882047654964618913914356969644192621717905096975934941234155511593456403944648660647379597183170935692475008922068968714768863704394719348348704223440086250114461666298773958904645371716322708623537276797380688177248345604118082341490715080854724988814739898245489055942654585138094222305221875940510597327121268593080972903800154381091840340076719654760143101420915196562436979309021639546360614090052646076295375467537661526033085139335864520603068299572729883297403349283201925978856478288858667550221986893607378323074376888043481670923092355800184173016706923780316640291211067621131502521471924130816139065184015458593469539223331315818488409503662738337613139109448872254409146380181055359985691405331625315740189785096754804557986961374204412029892814079918252775238470936109934556551159518860006419849001545263650099363445421693302991460554324791787032529557756060707562519104041261577525680762830412203286056490146586014436281432031357399928845293912137048830450591281317305449066539566095522482223090228978919305028617338692959607573929580519188840645782508080638873933278658749771115174797789524923609354369234266970985303387919733305352343441542560590697691033270786744517468659073650822045612959439684603540232197785734818072910624810347738325944948151528443394353262642820564113497324201138625717419604010098518811330200791705320745518616892623750964685338377843530390889318767943758107511400814916995028445249844416014141624179682259781364570760756484811305076788127929228910210546178472094604491654114773958956399260979243724679359783965502214804402730062559465216332551227589429788058074823982010863290213072439485814570215185949205254231530561005446525577249972503167096768169630609555925736511641932181653625877265055997452157007171427849493482267752043778102609765599914686483074410675755149561059107326224582481015097873226214237361342616164989865099069439812288006354438805894697834221235755060858422681819471113251520398072579194772054758123206953388703084375071022102410809622003161883586368422704500142642357827735954245578185588777257910488724938748717476758839025061946772163327345856846673127661933785861932996083297488048120066843469900095164677454798593155022766959930007901113039227077649565482146325960963740427713466310081694633423154092455938661286907653065334190437739008214847074426817320268864014377228999028718125629602210740110990727347039455305166993683005370746743114100892124677832687862876053655145452015963584572870952169875203469769588658669523690783827085243900246047405161788400567720470290228136959442285289079386233992103247393666613989420304118942412644608566997990333858886092934422724107620117396435105807737036904914197929331386611549838691594945159764106234695761613085276630764948847481937647114077758515562120210501729253013600109549451525211881098776949945130354515893668562308203203450702933082586946901479924929794547444846778922439336761760247358035530225805720792864050416044436257797057111040300957757884053929702282183472781076800451406166449950226499579648198256799740852986414450910566509175106463976009604081354639150517462484108478878586847070412722724450677918580470008326491837535907222580654937831757216581194472530943490427676407489186232718092931753023246255424143723052145157933853742337829675601584511386005319897921351125379248873811814960682359482442061125867591861717653809972993517942134470892844044367074202880266048209370308891267386000783942333110737610483101888434634280364938322167596470655782120755437193087965133393272270783967595674941230646006787075373488252221960691571738358271220192603261816050565206505858221226012078306068352706834972537519206090725717698463051374153847008697234018845190516346691603199215158695756750696592526266235806033123866893678092107522048421568621376140877886274549307248259547138391876517689635934186438310748773400747368062697205556382475027191690474172225190500968880494662919074982903697025405814981224830122064695802662348702373455354828866965666400741342886823619474647513519221815118487046577727066735698133052076271641396013661667166938141518224780264601335135330519016817420471259237379977724832633566593683745152243043528385771973764333019086180377192130152619576416037800569487171118826607283289342246207762735184984482404467988583095393663351832791336053800916961109460896524866893620376854340039860455708196882492731110900059291436696930519208128906063013533290745626936266095363371697145786761901953278283311136463872822871187965957313820620585624189930222248095533009185109454853125139734379535190956134744459037997484692098412323193587981784872464749561415175359529486366994862571782895871325973096501326400181865704923202077526939537695889476906506943148204286841039670661407652417358380035254831744060131279287052600650881859529843953724335582153252768556939582124749409288691050860229988082358868079385769946987535607882181474216474637339522807768959924168848787907261404113120629564898755672942743289331684786553585968166296487213776429360134301425205202595356504120524335592441963196364580039258166393415974903796314390331794357475495009174610115323298525388745638201041351982437204798363385905561300419201157632613397069658571771078042545470910891911676482049012406013981813231320197474632897899550906004255095666739654528938447697281192478561124096240299796872236023593087661282507390429925456264634077064506412930269015004013047945090700543955235935535333660833704087597607390672728954409397008920528403131055979825251526987394957953979705821272108955915601802025440946720611651768825990297576061262169106227641839568492047352883254520036017206403288389564577306339284171538449489315485922881471416329757310826106803325217647760049645392529847600035126861485103228773438607950848827094740058644721313125365384342946694288704652806814555315222978689981487687976377405930182833526957868000423715905818457706756172074592282687724373430164247902479077946129385873059390441175057949453281109756162084368677042091946384392978162138671505513397244422814414750210813986066930394435396036735837327773949358395328522998194073551694467582514705921623769731835451136102471592915100872271036666738389042084059691966496544335201387544136038454781923117552465858284118613455026001263590927609818060057840887121234792967025727149723690636370131135816901619293756102313122593610942424266498307701752615402072184872303262733091839921626656813978238919004903252361338874097436771444415083333403991323850263629405307520472833441848304772267033807546177841482017790244667496819772472123111194734814343741055030551248380992216681109111634090781573599745566803921863021432178032802458593643559805506538458546203812053242095121561749233652400232828190084814763005126023279542113646245733687542548991602072404049615985191146519962534754770118602993774986947473661243561107004234141731245078018785786064597587735360922353170697671763924073342976664925669253787334819365275849498026042008289516417424074831314900320359212192288139926888477621770923668204336527212223026522325430251368260783681740522113523839926143821622945236220525453236037764909668342294741837211403119702684151507381422797573300223875578176801034979320097115602906476226040263632250582911686809222287407622110793157265097900978835005733586167105339096957547231234547357812236936252706612871335305759414055962349495108799997387748114703768052432296109368216816594754738762307449836448762036130745076703678959897812204243880471522568494791394895491578908753196123640605783764420245490196470824238620221585848219624383653164468405079083462797071123740267534794934395450105426955676959072146332627933133925377626341318372452096945644273644703046228008290762342199625254268850932430846610675742005926825414414858400785138822747555702915932129026451558434293004449087926173427944645858555471916071823009405025218339445831500843435688953675458788428997880945398322503356688109021185278091449479708697237551773277156486786913932180359290048369015476370235834208575434141707430472150028247272071139873462739431542804138799092243761950185138151371268507361969039771260859779687808961552800494797402495215273099476575249012625668150247727251333071489119303621161672221936419827950500071517393266032722386501856045677631925679145922691384441774796680933507631989497202690244281575625261406116484256937874571612451791393020113672010203421176103264888611609295353434499890572938388827301012270909740529908786176412043142026033041882435935534616991933074414426984422907213322727221218376259756003540581307083417193130558343629318883534048712368034384274781170409706283912652149042373775330253433609394632355781345440496624466799562159425359300930005225002637191443291119889951135332988068579310945062019150720847525956108515580748096902514123760928911562846508502241118721031645594423705678299919068749819290457399977579746288870155637869065494079177522143082515709272174110286731448072700886189781222153559992940229950997930230877716899859954457525222835467753879234624273701588620544124933724293043433806311526252027233216576852704306463250201917564203669399655195724853836064317750752030044336795751067232110063476572989883610626459327080979682420835495286786138602119828478093337152479106094388423970539705605246127426578882464242369188376228475062318040491161624156094641611058293923651824386226641933865070730826189991370095895280233897569148335583475745656282043926778086210264013772314449178489243916973977631653947157259696137362358259722099530764468128597017937813196368346541524372260475667700910975212106432079735242089776902161970158516261032947071150489819547209877364113445017842248289417060812241469574850364876001045777539885364058311194142682507275687335299731983235008340828457237524054672637693178836097973099533901403494254222503361774728031214870616308746185184117114897809085093542384210211167254417248243642090342087598663944817603622819230590111176904352287496882100559234436208964009238376991387773008729222081566463167297747556446193684596111428078901735046224745611151928377358461964096170775783562587524055568154192995798930184958104776108440579973915953962871994244896942260580266091667623986355985174432621752484503898182069821735110629249256307541064548307908320238541176318252105962923495930707378271443253830524934275997710006551778121686657522382431453298339696814660916902979587073435351373478676810597978480528726791376914218183684678713556937224428050944774774649768771605465332659062239495594852074609947122594018380903695628649862147236713708484551239608374847293461497759992390128233346509611766627231549579660139256247108039995602365102407885406610990021792645155400818590762706370774463162269188224305724076289074994713684716977338739547374156684774115447266967757918561279057027136058896599147869583545500064318932805363659010043446840332675852208999993463096264739187926628072819450169552296432471450764253943186575499706321046228710403384356841385763903653930089681945736799773519483853935476586254478729207390509661388739957972058729752380953834336776852615679357308231509733725921464276545887654563022849553916679577901249662893036980539746789597998663017033851478451432741346317920677451287474972814601653073867750450113226795108665762898637408032261742214701802292447067177019886106974576522951203557580558193004303959439741227275526356195880853899637432100404037756996292994023587446016511085948999222887654907857589851833039280011243263189652677082585007690760794399644750460109208638611478465793710328488174081624389037180925613880474845665160557846792736490564097986883397212541260482101645830620072343098031647477913637186350650324113504466883973187222334181288436400621132961291532560548404742287185135128303270622051740218703264492436289809285858733284719737298649566325089891906338528498143734698817366171660433129348357404574272771054788152052514343961884764417642568218378715008176111842019524340462266056741648151077369001853073512762232229457315341698753182387058368564676633102155582347514282252111392339244458396175254391122779850649268613167537488200450353338611666274135807322634116555804175265850805534154908349574076852706493695666183290078524079278948120168413957045818679830941462706775792012884054916820087529342906550589198608541360054857249494897851589348336068591344622414965769726120940054718439057784271965663679525163709969358185089683059124972822281755264674647542678575969240900165079852179233819410574213365519880593674036808133099011485678484462749175548877433246624310090276342590925124986700292963050584537584847721068063151945967700345211846496411705524745729064454561071329952595800478860529321410082845530644882704296297992255070795125035021185579924371385631571966068001076743964166903288336558074874056209441773698977483397378673285721358847874229858176388729130332489562760552666102805708709469528256738751432669174233045677978404883992118620542691328177378645888756594620065541125083335848984354479935441640799046248349302747096665913930798743747520959710218081750234911140274861305142276130851672602703635240140689632405941326709964373306063773731974245581258596512404441966502545155308930792475305170768679568222068071259385016885800513227711995262654344549003031172210508447695178423713976469934124300117346640444465156018356746792314287819673406984650917011031964579121550195907837113387464662647337659305036340688078926792360659984837080602731652492702574339859836991815048631050247724047820315601287198604737494748841147895066272858350717229911163031483096360735792847899527256066142142162312060915958780443280379851531857897966197540367815498679788638364515845654477637995906980311563825098875914336871777555366510614260410446172170564176289446841898358215923697729525573112687321450438273917651974206956125752701987613377395556597614899629221213717412744128413905645554337100266875373036268764177514649027467346457510289556919224996742950639280363788009435329937676818068214641123857079054178527054395217707029713895616555194561577700098859934198328620762075585232717119987299667157742921943896233331567397538001543434069543362630161056488113172244416677103351969197548912842128230937433633423189315428581191481530736658734065470777723254676622696210940140137151798017013902884810514712320946031629813556930403255341428404005803307007873543993691585439777740334071838140492970611880512898468394174520290056950798612572292589347043162104995014707931027877797953221723600924566934565512997705122079333612394755657960344575850184950682816563190612587641792529072296473171085452306873129385538287173684910430073445896544020337674460229349865040083292767800868415625240385336003289023266071995282784801464286386882830977228530032818106099275020548059165532302462462959333054320363839428625926745371187656561219752443592162555328694967088687518220394567395227267490017699041938015316375430171832243034669894729824196283548997213068245204209350790775112342448526568864805978873168054627930549427923397450910308901170141700257553204687159681586871183188522928698973314392087966947977146406245071710079670750223956080569070196014705246576699545803472394030927886901527317317590819344269637508142714126123652861298652041737216210788811385141851360648562397564008908776968401739693091788173427758118414956676098674266562162631435337231613525145323973108274570354646000017155404353458553369234420678481981047007108217717459310039982101645542540464199656474825146612804743786067540755852022582863612230337808955703368992110880732932889905429855537327384272496233918426985641176843871852109238403457769832580634988577401604896695453065080815643818480919154565618794592581990670981237567180033001688923660415632567136048062541832297294339197686308235605515122976725651979202073294429840226898126571259816849970677367533736055066155714788849815632011545581620692606763612235467755071219722732634974250401980588062918767812110599541816216651204470472198870633908788634165110332769862231068147353762859700535742629589406706484347961876281223159460493868783460370561478686247325135455054909920262194923826749903052718231830070986494100134466887180355971662535492133695177456145368904662004036427537135118102079766020686187611737248111466481046439748320700988039949414610874909294397139714888845285150514691574078195863412565849995244379466095427210107673576093802902620726370205440018928934300326253003409764930298226901351114598470304811255389194378858175965321355012458289086342416723692792610396179011173856763270158162336506931574368116249867009573133801982478557363695036158271684713802441329908964758927222015900471535164817822123385019235693187644872068782280411994689979798727019983587413942223694328322692235773705826376069272192595968720001030477912489236182208014135910942547370597038150976818646267432259912716325918003753334778592114583821002500316800152307429072805436169962923953639434958739408273672844610242912677687072208064556923891783286112834784702746123815667078075977060918218725838560826009295381584599141824369006544738206773752877400088262758845565699125237920821993251826283059479564019848319376274667231047026063341597783146969047935849994126422914590508210979536782626473037861696904979240849463415402975514325193423987815161774575490671094525400787572643513580591793652368058802284577737745980963744756077211605291464507058514667876222093841451379497258776078169550983329959524740369010756132443204835061071334472506676610394629957495272874058191579862583868166440510066359405816816116327951835542251478771846004897124251844663583057207009902375124450596959132470846829552817888800274646775067184982579692595101065696822306303336664413317897356316797866092004724657475602547427924057549832915345230583597389302616705088711871207689513702777831540086093817376972952657914904985721942537048224860296569404060497583363742290899060813752915827750245169508816362935462477480469202391913072702541800461231488118783639694839974871208359572228363281231023399546770190862331053065427617005273744379895960897824838609029595773564420536400237700276859202578639935794020468556333422018512762900244761180118753324858551082242101675937615476080955986863377835524827244478281449338566493154030499742918854979595910049369596217174489017560781271678188954637875847862515138523790057424019590336087016854939305851717879850369336644656529407698821496854379952875516053741819611684076232730168419874237682944293889102158311474437737664861586685825907708661713308139095986748791294336759530369600234090654892340552277312145815293195189629036682551183170346816219331835132650713480640290341820620684896654621953728148587333352102248169037573669928539904354493485180177541295311769390109515461460654809519144201808089778609559426991165219621695286769740840298169394598181373133128517767250954308324145097238978799147705217875281894405772548527160613327128894296372519919475316292834039609287357371088767354993691587673881122619315624878846968539253152863537738311080252821183628240841233610559791085258660051913252545240554984823992149859829671211561303194358053341011420712423015268613540757677972137304731456816643901546080266588492706166160297329891057318071917358684252060532485777000787764381326089219321033958607287120040638838884284502565893392015564335526578910008082778459301118287228108952348046116625631427160387737005044683169456818098626362170580195840428941511872283908205665372773652697177326648432315685124714620075475338229822999318179935382156018893280482182162197516133302609653157614430444129213794900189311595487928771843532202132076146306651468695611323448306433574678881048292092524958241056517479446019300279804007541148811880517422568650474260841631024223237623518080325747956476123202394979023724908025348870915309841815201220112729328245514708576816419301877079430497869024884510372436260010340782607716131386411207468421736737390932067263157929103427890542784799669093155585824880432422900919527899677223392014009493660937832001990412282940316862261927605123331716141361950265163980962598441306858357875167216146901750040090316750430773589017979604246913018604281954261400153044932304782111218919835250760821040097059427691328080867962120689156108516440488352049204095692141202437941594729769033587442727858115948911814020262215133207300621574562708285610879771892240875131844671142360209290164527959237690937201498780708321807302221347911012372398759007117163451381846117812587269442610331601771589280044103451715128523717109843829799714400564435380087802969595806312177831069972802019889399962557386945063773762809465139023706955569340105022139115102764355222948188514394489102399413150625731321405624130387121465347213432129146169403170243011839093689424505128791446609860978530889363104515918247378439996689634076636582848931787391623084001456388626736949687923068505830776387787852364682086967027180293910554773519638805600792460291303426865677419092859562184900878142867004555211193571013149342639745786805599406002392325917228983692620957840287693389430632685414164751524971558519278386328280784310733776936114122702897907385970074013414193342500312293649907699250117143111007666932286858935473214919562588962892633073975296262853952090039254569263190827465443329195629309840494377580924862763374999720917964051147988788215751611358746540277530705123203229791922942632826355582497918002175565794917403108287695770491894034404732298298556399421702252094000413893718534945025214431575466796917752158861411589166874590741062831383907480849919820660839254453915450178169308721830420743174444606246692802950221774660857820686251427437719566793160653193182566144167839382667660869148417611709919761286317938103826410224851753103185976670688710545031143524245505307675218440256604874564166498493422776544482160618173565298379731463362072924001847052401477355561230777444691743905221269450376244716088832733214181975728497013725254954834903767247539639585047171548415518616129716377604097746579351437068662149662885931290620065414213611165341342023993653879214787394349154010690663822464900048698574446771730450321733670444971045120220447006542921333710140185481869567740008117572742610788881303499712918356708281068546449177470689453742886868775480704892536450194390602022680537942355656785451611466407014009252862559658540503619339441268713031326682948693999466591175171743093831407067397714177575170493960124824551188762044908603489406364036385134027152099665482700355139848214114508366827961373887552574520787944944617831292708572022978070907782203153877990393548424149068021650947036049162501110438156798490031788712405407107450338725289840051779478495307008547411413075319434519569766072679340932177380641245403586670271635617114761134787963099192477652417536665622512989339395648253152765713939804660949356812277516690057156352087797743369615021857260557672829800542548607234934456963087850570250011424791140858631142214844013902021578891291832062263861015029748655274536716153440802505588013180770491788822758954382582366219088583260577133736104833486549589717314197525404555817415809071473333710793902136794762826039796586134309886435156900862474361105929552372373540736531283199676257507607680246401926652130000999279005077823188904106582096119028647305530793301952651375635937813033286297936369328304800730534112746906465070760191074360985767750144732358203302633346864927847751773627307468749498691174852045297395174597164151760549913450491796878177797713946865609253843181569014137045425913153910714091090017203532299281766727437228587173618127113653273827647118343302794286720247109117371797353820194676238791617695936126108092748007717452569773400782915468056053178627351644211651992443522280000562565175581632517645402912879721046013513236160142648105561488415547587081922526689851728162910220975282061201417501452379916607766534377328120420255456057633741622960194315632438938860619237059558169407757032095057180307320549737062528683835275392903053530888181451188671971392214601560576788657114727970533787475659535648874797984908224091498213546776805682531343630735942960355350070416392990526842511316883811945537585386971465445194103852919720767654318257968078311451792991585832740199684507344700819751857698822471020244223938183282128813202085149559061299349212531546495546115131350564649083178831395443186998044910198465815178516762952695926444134928077640206832866735484500403849251435751507468234619439799970548709606319259412758454966228431716858211878127844344344396840353091041210297353974949856390403977797560371375047889273051589094615020955883104409410636196673106196769522274758836507147767576001462002001425865055811565900895959970267651894494589161339995780568927503510797436030725826276855058853682511720097176763875068226285383232614322549576909170628240466016451128968404905536245301709589975247275345141073310198686202203850182242836646644082774375338807830307655456211289550307790609629001182320895875770080406987675820752033348738197825699101677676444358387623745044043042156742360946971006647974747953070450246384988387361095230687295819751413668628210650795453313069930328750758046429004861078441224151365155038090470258096717186899679777918080749818422492663926735382175047600135127230599278908723090192298276864365460145553394427960339416161542108791958597778115540903156373772523719855645228491831145895960467763714503826611828715044045628547806957535947719118336193825576363047577794937203397937465241916171635129020083386980010415002056690367834604369327985287803518651893205431083618262971079621958076060109421393825559439361389442134813569002872903873559466282589000520639182261800083424986357526359766060258077720745155792733730922648706717511199044950691301404655074798937642098393271860382767357723379529785281427295692723984380639583380206152046818454177315802888210035399269105595032427349038576393074365008897037057996331050695982434905046333904246577964155175792935522419907449893980198948868648162081130106460008508545550968328227073862491094391114087332363818473503532529112761721972809770726061760143611997732229143120180716838819332350796563875501909469485986092468083877176748106901068898716204806035381952150635254835718155531179245635294723912172275625187261898381110343038168440598820540054394383278410768402316023590494056766072717089405519840032645998972886346313080910725133882811111435955057016127267330894517554084206980347314132735413701672764314935762698230465337371861554282397892981560392718331625051913390271628892068508639732351558599502282507880902268365434316267959585533572427301714216390417360805745294249961583412441750187035583272240111263132171256344250095884653672631649481321034716443254178844668959247022771195867779909921472622273860319459068865079276242146687903210159549566475118894255382248372377057838070682634435058536519819266134568077539019212538537235463631440567722162791647618744518243370318888398901494144749217207767341284334797388080203150455492713381682484726656901161956183425813866617991026948984902150424890907936397232673072240699341256568700873422044404969918543115532393456341302706727286724395133900827409432454293522478153268164020232846523866886681842437318042527844213130481940364850646254772266817319518364108818177216819502447175577562757726352713358964425995705324012920541078453245060456983623886887291619081492050768260270099676628055196255528425231012368501114000109695256272085692685888165297863054422033052753969307495761741775262156160489652234096145405848894724265176168360136528302270722666973925917676800275722911096871460289172638439844721621728789901956935400286537089958483141388932705612805669817537143758603985764523374138434358662936968692388484079944914529641745119388809712020589783483713393890176847074248411670088341083255807263038245802193466056037709308377579672458817043151092216317002418890778958548093784868731328428782901696209609312273340014708760363186822300983821224222209376028948021705182009859323794275647609967901802157287093295050419708383533099904923205883273478623798428177012430770671269606087463687880685598203752864859746218192047395002243141586232547336325664611574519002351894120647209228434061061658697263076645957630337490574511707445621466642835329382378612166730088414771144452979864412798615380983082343329518210008358707250932123339712109510551206466088524030496742084502155169584538935212752109485535142380257535089941407012114614948704909149640775392003806439535454310998727512686446312236341459331882911853457046831536450180552395418429573297606172032944940009247707263728122078413170110436672870515923697748481454823339639877782031229083536095809987536068107835884979684845342730326043407194660195565371836901347307840550085269840266294044604991663555397316098791006222832123803696462820008410387884336138769494076283444834187772446322461705987683484535581079479464705094765863896799481269581905157910160842221433210945641783808795593696276914222652538673012386982948288898261245896153345244339363144317244265041693769862076118151667766861543728226112913383798925772858535569454881405315273641139238281239753233865643455737879736540044324577480971325894230181697164203391719445782425147242153890115756507468946238072473017808847789597804278206106381411923227907516554197023814206008847195332586446745228115740170758022565793267769126915249498795863055996963846744746702414348946238937218204100206605458513317241074066616727466797238878122071880441473372315735310087954790794291456427332826516872235140680977681998857826526911374311127283823681532002274293146116906924807095033675871819357377950737519961839640091049622823492014308084643363215355988888021455154422096028269936580753890850148947383245655089632859447171836687298628382512478254690457919118992255800016742381721707843193942261257053272930275972608237030157540380832130366658978665087066923073592123334421926376776743585299259422320556324043717966162374028691202498743174080998524364061130686788329994212509111104594847451680770318445732528742721160290776934550159648531116469348858527514542810481431780556775492080226918034684413236872075341431156061085033536583315909172208801337778539574805526490394709686492640583817565763128597271480408298965481814381501637404723923365191773863266159448740140510199886585782837036154175773927101452307083595356215849340570185721225959732302251983623014033383639586812985403978435048126547266963077943808999041931745383414222408236685006369217836473954144765927826262316182208359318485954432707302108823564314080852750472477050869225663718733014671789033065512985979503492412740308073458815666092562834779503973228498081539879233350218253089356666466121126102658797995258130513956055475899030475680698893930445266137781877244056604267852633923142114133827913783306410502948958169293944737811745905836714242882305697361003668185528595020270578216617900600086999166249219663587810327023324227990772975560650158315557716566963975871475743649399838863394118080327399582243540587029379756340297012778934029154360508981263231685518914243534915906726390731676215090939741354724474888788801011119455553969005442980041869547060988164416182152209476538011026458566996190331559265914653219810001537699821689068829639615726328983247723292732262653199365230717032423985879262394871339727280679200329980437959576254255103361877503636061084788412009046103836061038704435867180243329376613872032411881952578033352552394950269636992459360252562384315735863152269792242942082894140459449472856455198554899494674645435170792024485686567020061890486785125743304428797618022551052811705501816907011509183729950240617755441953868353714623130464375324721123085321201100527284688366210211354938399693292284334485982806448676292376858855333574876851609128097042439264124733198989172566970790263556920978500479337618971140430968193605558735495444774737496887454258987241530086912040767462961856752096825341126185815639765633344389703496194750161871007832095072843908203044754447926478619631030404206022271185345825221143642534115561176405767632961798840381390327033676791748110921655763781480081716598475249369403694912309533329581152497808370427160243358830069701736155291522122261459198368905583543079616474272675522808554998445861824832243456076237299788915593990391533682729570737191552804070451255321356882319162054257605585592871072361809341052137736453638214172979397060617960225662731510739428755432783617240051274770655159606909751876130286856747833756378383496696885127676493419449960878612959950999854217789574532491269912488659731844354264459618433211529418211427990361783334561209591597854522604331213819038155199957795569860400094531603047394647313006644721664402223782420317931961464036734275561474703907498244661917483254826010560616820164497563620125594065538642313953562434617070010409374786632689861974585499545337452511231137485328470901637372057572288291695346756951675781490272932461157306684157795562687071871974635302844537943045435705948632465584732599675822257672982983866323977416706943361926793705867654649669906837934812885025703824130347282770734655739810704227145601192282639207173786731210276534091446708576091321001102091287409130513361148410577956511079980506656145987769209149017254804875475019391066631878061621990396390875457310392724526567268868051302933543518770935161036945074045460846863950759425524836913045145689794867034294998091412756022960514288313282944510300579632980262207326789101541856953454684264489964766252237658185586957207471282390939149011745301493473554640205926493673682867776825072483121350356696130748930937366055992991059695519952847044365318565806712616540413306358022234152075798956077302190066599271301975051956889536275245977187543941653413990304972155037067531770522223480064941586343430632552180317315211888299981542461638488716832325591264846522953521092606081045862195645891181934242847264256766335027379455899203979973335530250390821290866600470114942595025790979139866481727796572154720524285605441573420406263956245630204964655578582330489505981333044004462689935294384190166728734305322682276017187973513754773379908092335502154370567024786254260223530452588927077206205764809949386261306970477577905739420312789946842101045436185631566320644337939325676165384078525630032106359790329048243398623386597340352539887901295817187281444021620595266862583649570636065112534108034988542603873366160265838148715713603336725743546597946239360993467583030957953141427595909885349729899013945996337466030043309822119465756218148690032231097993468944361127367237745814980956378303077068944124528473170502546038790859791790591850027322877202757691363380490553121924027770196098814591996141841312685503855970629412050961301703889777294617614035409914775745836412165435169018926071280414956106637105912541258243126027362056994694433181332805246676431635598232232149179525765276173569751010594647394857386738451396539189387620503751290899191124358689586923606558463404342610699768483028366143464085417974239060029406534695054219583319689795431977889922996636871514600981273188013158660950055905727756224206744606977391470361410416913719532311401881319251435698626430600140672428137165659078527314763731729638459732847647466342923971869794124408556632274164823577269387712905335414773350461760298720450730351114752325921788879991574336966387100197254716055974374317152004458331317826396212999584118217320878642159319999095423228019087656203066640012020866258839392794310413430358679647277476948772589572549232448102236408023933327340716115842965769255757076787861874405065958823965036674020530354910858729168622141506852661412211664684446298959798915374680900318269608636193976539945077349796389365023296484067010762106233117522735058319918896007124100721137591744051247819327365910668047900205499998103458981526364596703576082655952028577164173420011082172640437416312633610584066597213940823133158415733435033447334489098525944915148056263876272561569103661953980080825884629016471471219934739673554174760755295609973610642645340662845735957921603946489757041970404290010668425654244654771620769300668013012014722770668473671578094953295026817124411427730763974337020888048340227426614861758220604301823318719358605213508630910991722619473131852749682960461932222524874103245324681439345365949018376728948721684662954969310445806758156199970503266459668723220147871343596784730550936438175250321366463101574146095227290714344327083690784381319133357846250903405144259191381372393139303687764509906114232644922581625197874607786484892602007949716966410825918534261903965092765029204557661403457642996467703202225680753421008795559986814393259460459732494203842385850960371767562716090024327506535849586727032592093809381018786663066105954787139434194165391399055828088559355337188978607547630017739419142824103527768583122875063359276666131889097007429149905825522301869320552596199573919527738367251585073440181050027873002866366092327537050429039122643734450764562478369549054508285769052978326969771757291859053291988478564463970401352905149478554956263701265055673051320857382985656278126531179353095129762320526456272770572749012756015909619089912864223004209272406270087740870090545666974709360375267425076634836291844261994563635237302189300993491249436714571492130724550836724118829569512089928958360883470144085821895434010746338022279259560848549903922451961942171787520027798625485018306978428187073852472520057305083455242153231520287362858837943895112645420957305285905544050256860163513487101291826208520851762711575915992190950713979462404017149946525275721614188776361587019368909875037023531276803506513759245222903195900770457678642197915101880999612559382311965373694769687852631302028112391022215312291501132860984896137650486421572361503852296178121527970052080673263029952682424624933428215372204100240117700314466553193246297454115100552190391352751944113762949029363554335498280520299711195801196167768394443358460559501408472131753889485753907249475483697629196217704903104222485866672623404265199473283049708301727625703089341424261749159315521033716320277591644225969462602200227942384565610547787594472410257528048966064660698575502156020141842524965790896191229200684317841084271484995997801069177068048245802113795246984026591750518319060448040167211891438142015947215742550771950238726994454125701437294551387891582373773106476406052097784324044187618650034792769190159472498000490062241555479318978259990186654843760283300658025889902807298779445398537029245908636035687410483493361771901837940405340783194572043385857770289505803545380994048729130456922324964550669209591811125377764747114340157523892550506713447892494640584557923630471073739294274609105949368578430750806684944811371148956043024776078438081944656157042670189385544585150581656369454905718208356679462341728813653224258521556861566459953819926574636939320795327575941172858219051791004056235808340527667765086655658698563517325709964841019474574077339100857215282137135666435078136500483056603701394655102895325985047399468583701805995135758576703072599419247704602052475886592156127729096039230722912643975167072989670871248183104447151080762912949646042570335182504758500799595008467210496276669639221238966652388083335321200155943501086595752447112571348557857792981053845097169245117582993391689854197882592235314739241814962259692261853990419616471832818063521779565323524518097581440401872367384136767510255211055008084441259938643721993462519576281783902852767792247506409366451095164653355140793837693683070302526895871902424094427165326737228302987129305528615817358351908896013087876073864800764112013951346235168316985496700198688296375553882425060595247740299797647102926848618914742422989904566502601780713826533780684044483030280737839134113784199233942800180733669562153978412578984113389050620874690777871892136075595992627868478177937304602132795875108649707961284594791165334078905221612438320667215109909478639565759425126528755057226644126417530107004312784232499464046112522532437094822240076926776988542320947342469187210891755604001984894444377189432090775492995131692418425954915859663699141291077226340506683193304339311682130101567937076028981634164831551979894441852609908915560177449668547555413234134103412774765089352812348256149119526245827540584784653741336489431650669113811589522804872892456322570069444179339233323023764030028708811977919213016539580998505965998906774922067910672696953096878593190747319684065501049995856350552748284927041291192441433607821536822371687097480806282616216872347855946739515798811765962712910171976866757307318859650369964203814600165016257683432086936523629907781992314960671431258736618259994651844481026839795412528534480225366659894400266181450720535990204421951369144964038381409985386841100157247826272611328790109691601647253283893480736476978045381224735514503174696560315540959903058204269634629563917007377298266218095141074904568069328095166309134509409065476258212918703304930238893620023869950025626560876033401525227136403597688305934680520098880745261394161327007190488285948043193866203093914379811371756689442018159713217645504081988338971291663621063226016926880333038221518487894095118271754118294823878526971493810126336475767508389411152807980026871493472092550469577973848578354717503272403806015098115290807932973088406325383601745785789676087356418528972291831294827489673578131060248138251783361819622588689510248715222246879875266735386623731983796691267843193389602172100509094462569313805705030551424973909471043295990644871689935709882894506274813268959631252102770610798851259206832924515268065965365446935003602504746350253871965031660741592896151607117698403075798764904146649194734812445493653019236321258295370656278209481006437621422474670807660529218636805286380695433880740383202843673109586836012561804563200310877613215204828117429938803684720541117346532397413249777116069555409175685111473612979052580067640432939251847575877654153234246924943253347851694936172336984546517038632644168277191600168869009703785341489254143322661012606208177575301469750856000345001898750539612676880803639817961012010745408531380277566022058555435319010862836371347851594474100843230164432208626025295825702727258666770069994919403604769713873584247555677195137904486105072277570045284837864160801208954509912555883005816270411578842066647317457277220735747778362956715870921291499955213140481396577379989701518634701127403597291777481355336375732994437605744895252927322646401549297758146641519454371514005145041243716490550857996001577798809688491103676688730951157434718324164255930277055339476040324471988834096320075890967390936659264161128144700155589779182763151679861158281220445161698782670491553045382304422519243345442352800960398376308704209002045632441316775614998158705344190473159675140008274613976190152787404472922002337503920783745580901352970475732380121720288957921529935006175187175841352816509778085311450826495883105541429505823834148713554694085369954195368360472701634668251184731240742729937803708060574050596911599603552470158801559396143483887797359935985808937247205476674525916224171629173942608018748383024452571890528378916977547308652835547279835102510861842078032161774532953411115816924666536110706083262141060253350100558207682778859631704320112811477728961296371048084434798988339364472843385238866950319948545393774003935860121002989902556962115547070942329586815736062563760656225837320688629858438622884966643282693222291542311222144820949038564226132059670507539829379933382059354679443357457373978400744238948487569645907777159688158256472925823153821653659133300097283632512053072371401966195040722705605089302272428200562653726514523957281525050355481501077564613263565010308911132416539496315952052788559915166578196486381302623577811331761231462266123735941492440303963118342300543661668182274693126414541326519854505509937108399485988169242540165471557089238194980144846717396025775257927797890335503093321394687729591452224693300787572173002391671366383271453389504922292397220671885829545790831324798451243771611709160251207230071378621304756797105078251899518521882415157727230478167571176053605247095053024818291558059481027248912902153418932392860419508732031086930362748811946143851791972815462419017945944494554875313319427536845158044809641651473899348424004843656566076333615480565868185351227143247317190650787305271371811538984075472877312899927474835059613466158705814000425942437814328253522394574337980203404692996400720419992867345885801546703815076945437329861793887905823048241411874887821457879694078815834615934648054274341587606634148919475972667372515464643232176275819770399898948033574804339160445726879873666867636065451941608138439797925058780307146646766500590329356781672597872380651832071438412756922827657866385096323183199023007897625766335773424147188235121840127893598244774984569719582526928644394234015567913390677576615472874393096425184618683581270908842732297023871723656686557698878819026054647263368818315385789131066222719416641883912162646635496511692430371868830546673190267580444829576609830312106984284366799215009370095547068006036001740064518779473843666521228408518680109491058907311146325327980526282473670773509996475762742093904942108787744865050795188761754822063579698601649136177598848631865106224576653236310857265793973762447599155749970245841897008896323684182922258208738070441287718504531917347805899183509038780791642525395604585592337090157011867690086098414523945012434468067296592271633280902319553966319633439147839463845273582587088472088763981385378841610909570593572375236508497033405781848590233405939501152885982578877916041849670395761271178838548148607470984857497869374756656448766521657149788094919021526864608510584133976269516848624639310029385756178227485932070086130989909480891698764274718553740678006137086415804100695990951829791113925081078012468793821862178951831768957345115451103209694409887692359373826388938588125484554171084137131569114214075880840038236127959033977464659027158042288483090268045163649089373010523636576486086841874786652965110176551962302732609882287432987843877431355458975374013231650821374002092957586651088522032251126132070624642918670719295416311804136117192487079197288480234921675417013069635412233334423237406012261694234407975700315281868605444868627259497399967774327990006802236676782431983287338138613518221095477328762882114131151830633653019565559608746367303196263832627660747922329723538727022644839795406454508338305477206206300434563623991145313590324462611836014713908568842797247824882775730043216572542513734073370517042158638287723441231612902608826613691078900421583145748262066490108937545208241358266962643501868648731335521656179670989230874068301559566747263885026349011271080364517890243793542801499982633166965963054985092747564661091703655361211507539590307722612343743935512430520922834146251252797697995485058852358010647698984325860633529324249835004469948139901359096096731022888234110199117546268528404140490992109266136327636579223087044085544135064896557207232299795022660484037504286161486084605580869839594773667935549901246813681835465046980887195146075256460221551671962231831229165187573877418724169760110918452933870068584013580292145620519169111069750553939015985032443852793662421691026871115536108632434505020250615453037024685375829920471226736390432055055914606380276795671273275286031134476287362602549352432777482248510642945072985990192524856377757874410397550147613105563726085630534246366457433699462954909881558944779517252226030467383962800806687027196961678466880200841089329838816955837148027743269796153035188859834819622505861201211099372986973320431189300999929090195793042467660409519460586363000157861982083676379457906169339510348989029032280333014491689213808443887683644505530418910065582343517897676291837216207500728951995610425670978571137151561164331197993625613096545036870046435013110708656789528691613616272870675665154729017758749722676651751905355907033930810598754789297452620343762222794190134854005377939556929385584011483972043839049190599730296179082337138218728157116038660411778613027624501095832791284284087387835079923887293705666375860533046769540287720596344014507717136526128411479151560537381160391011041670505720869949174231380297708472156953173463866528304718314728483047764634091807631290026397616796651170901247054059786763339037516695590851331318600707894794549138632740393348547929734525301154042450252853162665652376275358752470308404251791077184022362397562914557636374957410186472081478346190970822511268861670062663010553433108470645906920153590177670469356190048370581716843852042741286695194508049973315735750444568312059531864354150658572542946131215716112211478233994859756749202691561323241972155323324103839791753119690669129056754698322288232414161358007462839178439753666480901049957378393413845698651008882462717896941945185224119123839997480580409965520096583937301381986788027276736959179933616857035515157384643184319333417452576652645977933252998392486394770385533142229755835402334032050512993883077671881981035576264258243697261779740205265585941025149741629978959857869985142703954817107240921399503369807005873419175212551639563508003906207200109393235567083633195680157919879269651109552939589051007269052884669901267050204174543536159856293911965440629947049659942863686025217603115986339551970590767009622645721675619885437466371562252333848016912704311773570229100386581519721467619735190347950606020531886945221945886016421781429032363306449894238050055079702313240755611244237199848738918038810474519372069519220874853520237202412268644439074915277001938942744720134371353321476468807378342780514217133113500269529520569706272170962899805322310354747688342629005234603941829757303429070816597639527874860070425192851637588295444537513595770388681289130949809744056635685568805022374362785744555749908785768527208274407038427186331143955005703074485335008554764088952199480387690997245366863948664391528334168931353833540051190346671264965909536518710841108158272668870519522135129997604996936345093521980253744088030117391581992569180064184726183809460229588783038884953722730770661594328338302196602352957568701789311793843466926848400080738328772295148164098448360931003629686391450125162655135170154068575269494918754964145832694931265814564732725664789633109002486890398402893343532150803450995593738109028204041012345197497751226592925665288596730329430796418703131279061180085032660905868677017240907501929385134019315059612304568975460318786164337767969375232318437351377732886594168526179255245283012974135391908439437759645780872209699334431189458140983104827943662234010701042822390368840673130861795957177313983813864029241183752489407312448565816575708116606033216450614581852044213074315728687359349671267787348467373342808576350789138337163605321882904687462234012895988156769552430076369528875968374857868212064737547814006062045602317925930663401128202770191220335945651354651800397607677146779375158439227317078828501803862265266674601585830669977055560457524500078219066184574734998126185020934029857446400350221663320379206039228583158928013107280919582461481174261141004521766722563289523022861987862530689326549877476468087630964865963727293730156317496532288541423661463519224755592293443084697441158132989364094929663655196802720659541173356247467753472895771295537875507950803078955613898854335793138663631613327858021096566570433828238108822186683798685755317285616562712138208141742097121871615480414223151627806426513057463334586245490011863407205130073570091587971900129900689562890094608148648978531964362162749715789794485256857055858534567501921897367617994642739594050732886351113920096388341464729888115760697378572067779916935344668193534120191406714173408687353447178995142940093170734095652955201708310391670916143811748886583593313154570772360227705430307295154949464056632740757514614762339270563459219781742590874787140708587673850577492626137222770838785993721858769865898179454399599018915455548755564379347414516211822050350159621533280963345472619825593959763661247084850757192452459196108821428878555094170140000062681990227184173154487720617983951872376516809810332170595290204190481085471165505027526658947688696372904120909207511875406773759170420873221208652812346800135672963177016143567110164291168487539973809683002798435054331256813489694961765386521088284355382173259192899592212419715425666106501794591597999490580850396516300710023289546598033656203206395308072916845163039731897827312607501912987805990366196195958139587582978601063925646962827498324752037819663160880549076854297186717161969599431250776963595454447420519245153962321562006113658348754660248708164634168972119860065123923864124368437337858626158933571526551768179697525312024516317778213240476281657116654331434626843394405750324611186338557415107251209683640856397490721525189661448109269647276674156669113638339105663505933681018900433457614864317024447375909620442090292953206088129538356130515833635790080528724601596140040603984331492946364074366103341588291717036006384792354458512951156109023223979784123888034051960378440491309286050770906732228393442173545958635424044301346988696408413973796170734006726580997484035725356993636877884696586160953187635892764767277901013241574270979630272060704222403785043649607774433609443011516294281020599055896616872223529360230824726318264637303043027117925779801401966009719085009627024658925145436613228450867152041966785752047326959089328006719372907223379607388416364486694100427160033425611357025221324765892914538225494278005766524539281710355540247676004431178286736035634741928041590963173432439223310956845039147912994304172602540300337470882668858620404572340373140434714790645500433030662769698623760590960643117574283678673523215845216767384700309387916314346851383129281567956565625601677562726140607375779790895454241772335165537167127916127340653349082402765215594660393347448913673103603379137369251634910036216681890029565815026930435198757867670573598636641966210521289687540437707111794768265685728015244369306223841794362528705908999718667383039365207701648089867363401810531101574141924796578632906376329202103552157713429712818718195818961438850346324542575941002960483459077678301886716469017517158499087932191807094644118534307224103012251406555351675654756228264370489033736245587927437733779697935337415754216668451976234588836530038520914566198576307598619234517046841704161341720910872822588637857507547944667284614141791030027300954069849735243028273749017766546875669355520450709783379270575286110994478439670957936625726862777986550713807323165807410779299175972934162605361512245476535389815028320683583709815918428905054128188072547600371709407501173986215114424702848152442752602641688374112315334798368115771069204572720458718412741060605215386832074145101885779071865109468115769856419886319562820189697019230683323589487456724932999357440075337930099444319737201378826436083597871731191954171758843883071979633282529048398251348094887738974932547318958054648032239409708766016168845981962311787145575181102962113388247613051655341236486855608451257630562004094784783261537220397746988209944882135917609473081492853403706929399827690618694788742875431766533036939820568815432807258097045815137572067659245959871842696009722294548760313306783405094874913589983596162296492567447959508280689268702965975850833083604827532325358197063741583356843175027847500009289174295640690188611606477484251440507237803000769609416000343221643116706293593280268875351798762303236582022976472412581430352840299037452507194269838842502633301381785031974912012201103440719176734743962615576610570183013692317807748987321797465346207268555018826184423994007946507704799954775840073593545223480153930879016790264437644250633548831638803794287786730959049057376570233128316608740040623143961037418496548274453577929492944135050457471830169011446728268461730431490098580111509323442798172175213906587076358709617033356363635212179640952534813216201063315631814708812713572284887236970040997141821602187722524929590660090109627315618046511074183555261214131306697671254518461996947938516569938214299245349740238097614765914584043152114164442320681295619262092726079163282530936520567850228072537454099416490010489229584485841420155844798259651279941857903622509634972716704311865540706876685874490071748255457971227951494949256301542726408439434217675103078156839022156854807663092759679668441042669105883052633606727142093424889689270423444210722594095814106589330891189093065786436415488717839931078472825974627420923903682357162707529446369990051934198655961431596224858678761349194327504769257405913019603940549006551044157988526375278422041528170308818601717516571617205587364739255165903018713675728356924444501872776826273430520254258223576416556549065504380398030608111518520135894890095553415570489237175335025350575376236791450130507830911711374940871503090407440984531762518696155676539018850034566879455344112577784715042477160555205300338699253551838550796544784186462872703177365090556383556487728965450767991219713881465757149046421824910084005934118866581408895300667092238665315246358412575151410690832980636574558168303134681639393815874494506947340558238453469126749274259568078238337973259019708058403652198753894568648407060034237531207332470815175362551759506169330715762098900016460080277426414226290635080488036329027163748748894883638448939180361095564477732705526178836244286351380996695226548716935633525269402100847285128698118347432650993396947866985456541512110382890558446745844477574803609748511649733075985633215866131729070427543053491443845809637561250708545192852409322430386070300100960326931784906969388953090021123912425590813813998321432579334727657900230164309430440145719971873077733615701914981668098460107619874847784581161659617556618683022603807330787055218744539754662112096954027625730578718692903042136020147455704473958337735556458749175623961241261819527100483005622586065695882477887892510568123122969274918731393159475355612046582436455233669646773899625184006333109246637459105712888392612018674482011085039628862469022296399394297670379850590313022630032407658493278119184140261505424851044157956726762172832115326755639298683637437597485909038550886139278226340455270055906367500994105474022479908350765262956986811599702363726029303759844974474382205645345791681283031770841106646481705951793016875311432341271687778409958114646071955908576517699225756942426650108830427934932706118582818882338358575085121814891019970151099789169378981580195050746695541438059409859539708380541356603727090807838191633507222899000548153721830983470484805644739010993685203146734199871607376731037902522864077747121014272746386753278479014130042592176579322767771325649140734577431478866162716582035859099045083793752384399636853315381095206096503116875970334683147759938829692659727449705698094151877642317411619156313660090609317595561230427237261399967657230969827829496362091856651709966578727814909419891498887851248983253334908364514221528729243610247201614749971152004930601768541190642341581780626921526002301864272038088567465205174371143156870260148775401074766217033455952036450116937104504787277167712000862298835299678616780447347465407340813569831157493954175343904578410769417946475616923667961103052706094055350182363802887965424003951310548356807343095690277385686900473428928157227788573997517891288019878964023266288874621352076981047638799325179121743679335367689844613680821371890507783055313251168769408971348440920910919518965102978087431810456535837071725220377022924496366922069440343941062932898537532411863043814209043476317178242557846592103705764997090659264193696293402025060019810754587099472720178019878632531284442255923913780008925280953567927275788269255230939723866319597135041959057926908220489168759573031844678114937711322053399913551846689911699928178857082281005712751009768316509999771139161715139406343976342839807821953682725370903112495421296149511396869724939969208925707216058968593345123288962277521512368998877586168980553236181677654042563006477197423566413169368933243956931123608678848922259967517665894096706110561005945583420328936091676432708738542858198900968197370574649909270274072605385760796600994699721684393591688429306108358644800884693104383085185470763495447424385366904998778407360228402518886230565038214614822379867716493690795035999307645072859344885112258470641589331653907382054167510543406149455717772143592747222341998042326807654367416431111764888377144996607754403602775142638366081822471365349860328543742713891824329508610441798294996772226114689371438380197148242256029279680275418063133017626353790352223174995418386496639439200366005703982151966520894879383481282915045990933311199023628044089455249765567733474474838509499285404691394812006959921968512643745112526857332952476223136402988438282953014280854312151629561892688822732565329960825598726512155798825981695575698008191966391751586325812946407198697953504657356843512524414958110884025368565280750826289789919496162158595853581338621532278286422695329975330314867921757767628656444635814166923954197396769737846500433743154813320058692643327900383943988060518708222781957184806845224578796553267515714865637292610337215403564842809810721486008401764797974647114991417150028654052724379579134392686252585807599080020983714629694908858422080909005698963740090803373217675431046738807544335701197645101791413091806305515123992167711633794442565608730122005189547620035664644949139813419291640987828844266219248001602487167784470477333826094532557434604453006397650055496264210007466556415489529409770887911430707781476758650213521558256711684693481140264505511257511599262394880235777347963482424421203776820631407893048514086164260833224292287122579118896571641993182437823502084694825741420634251835107979774264382852181173139262158548948999232840208389562468708215892911598104656925199846743154433873601533300280872557590441706382951984251772289932498392562157758567110894004094650598151690189762542272904306411162970306549153030186079549227301022238724366610879360389298882639693786107454691605288168574219963322909998873757671842560589218469258505681480146476784799946584205604904920763493460948547060770645568061932440170258586874031566915192759846733661290389168882712644865599368610959939971447160126199243813250662983291477762583816052739517075218315516128302789150922919537758564972461331048975985648528938473566922436888549540864478402960994584598722052764307982335495034239467429057348181307934205834684219382167581261415544426311915384621744239272952148729135523660829319162309101029527968936622869481978535367691857405417093056001134629449055356884925548649769272444497461874658777382958101602761054929276037115402368578004384719088933748819860778047150472356383859021707563861389094081159715483314997601569558630325043098132538876871280821361660410946615456982308613445379444063393944116820467842998492526352450524600454813081087578580978015697818084249490144195408346325190705348989329372346562625512930041300361024249771683344179271573952940313818061632747086023535358380732184457093809962048235174910122513165395742205198962849971457825121737223609161669232267843449734752335641082727325738803298738105392950400960867058809570613692270279219312077766193718632845691738763225684287588690436204475325380929162876540853050909347032150644692929314386394318916060339269229657327394473238559140328782998879751407079516674242297227982631892351438043395846263815803274237222766346530310237884053520471670486818352601104212818418833013005211756677169090544953584729280281958950028496840541201091201891626025536755243052470308009225022420310699588941764333290112660120437609168331393731184367489587923897612505501827994814747882246037770838620826554762332937854972827328062060073947709595810382013217210714682747736819209707596371493912834055556652940998634102128017064962453649465521339846195474035267542826191977985690931874664320110866327808529261486477577494317623812851318023973059537085017301278136205831117226739531090539366114823351235159249948726772964978025385574140170925428856880699296058655699030865612742080766021745737571214630776987086457962176306266325053502112529288771945722638560016486152802749845386354894041913006356528459768497226987790258891312925236483797310415399507419639049443180868688091051882844495929743422692640863086314628362954013981552610380899190822453343858637142301942508116078591062262579940894135789747425278012876645370987970797442480528706845280006704203287381384409314922521314208628759618931197949041654370898636099079837322002103407664282613965788440499505121045730318059589258842439274653596750014738703065713620320899294721516481855585474860465481927563666477671998433216319859950118343030524418316058920120095713569907088811488454013753741959418889124580081060922158496894372484505259024645636912488706447646801001287098221373546245163513529678925984460387075338320564349708694257728015056512108754862535753896016857164957136923180502568986293311038604380739971206420828323894377739894162647078442007893803223265910468508545914249321354240438009075517947581298500284374112532802856347918317533390531006503968929916983430477158355951633006938279554253834321051512948773443660047532520377086040010944571604334015113704345663453476273431635321494784223459999293522738724444482524524367144305259512356642643421237940854003021511458834162482366828001587878971410999613455867573432762375380496827051822066965187439982817340702650988472196609937527499542498079960678436462836244049191088594481690854461175653566896903394307666988813273756902039718384593384395123652980742554996044835105032301022779650175871888872143734960019137707819540258208291633069279289365460551088600775157244348068759684792187147784695747204098401992778007690603887356004503976535531230827123324655462263443707942809160539855512983906259863583182319357228605688059658722502604347035655915200235571067438170175063117888121953088180319993046457437340664387154304344812935143814339154242577869142307512938732953126585691296294273108730026960314534685589931246595687216331621225896730369262543235251966322372495665103372639734128827607327486182498386181057304851403916508450730779493721407164829515411243403875937881132503750526000855959613358846836985509646858896772561568990023973058162877176853740866655155576493440388908941492445515093552328229989513469549646309100540419978549695478364268553226015435884410007971399932663244934195070841437444915605552040170253382669100777367907490505736467388553986552629199999301910452725946901089874386027857019834166250034764984680152690525834090487108118921622743571859177970841663257591014745387195565800076141103434075838233560489257220613318629165045171428960852010196750863418131028513502922183010865591702975979107839039512274665524807866358505978309491004888018207748568180839836885011087541416524230147530659277111350463809951638218730657445875920187904917381071898597368782563891701587047656119434758667205427280419939777890378784877808847324242968157902011328139310477377055039078924776417383458353195153151112799963626981788714028743458870596395480492986495159206193236896072064862064361668732926001612619275348199190832303800853463789857649170722517490122341099499548409635364675299371441640883055899119869700436685926157269468022221842095684409294584806116877533854311384812727087262852123331652480738042824173346938538772863528436024781700435642185203275877048405307833613672696360726168455937500686037570746442132233256332819386350274308664565111826830818053207923699330932589910447275826566781250120705863999996279727470730715078712402959343846920709351769170943112839489166793973402199525413686786363696068709036200126391974467097416874358834215968155716060314489235435391329313205362640844002743234088249351002840980728157798059857601419654783744003936706825858347819726491849284426550162205510060155763518312164780925427307192737361821520033309005712302772089815392113928996227827855596026128065719285960622502389102307139566267904949880574046602811449293902871273039482659630838528435319597369704244761910047643695011092140181561170473079140585661307525386526138535446873336135275705084040463330490489526379903579820634423196653385114520121770749397430178288016772972322813012632024778753001524479719133920168372890536974682812000454480017840637990764250509434559145958105937619716174152192867535637221426409236864083427211785550946582120793672818349913854668882947015707486674396765110988056336529862724990193398286413186723022289054636465668701040243358624404593361031159723909289051619294961635930290172850467602026561269474657048858972638227342377629862912746975058704903871976987499363509495531375596678000379422715268294512603526300596877249553420158547676602351217722373668533877799022778507876551225340939571292988311344972017208580480488613004500980591232934826539156034662444800009457436783720473115994078995404821424852070064048017975151089878244964953505260529495007779963967658370782547153445199798722133649717417016734986770910642363271432325729232602402109995569136404292546459300252725748972978615775937669937953903953733924993927868981765318134592818688537146694095846344182439291665420072215515194481935216222868044887218485486227705683528855754389942688611290180884197183748364704294888961153430617029527210307913111365132222949654471861562548957685843260337184285668457917536133581902912987977190866556315874578351734141873115401941585625865123133177879697507659123007856562066126917179400491941806084795452565979315384093830457695120247647703995823078971476844670815406492168619551773377258330002756421891613959016351895450777055030784060516547975914838238080078813286042153294821629299769124236040033421286500084353503960115644355469487349921732600760960621440050387935972523653646908783922922328194865542110116644402349510070090868174488051746310472908942870407965847517350583151473476476745385190711595259484670854337487600471231232403250511385872105958687034090035095134549805810973074363295898131718143941931979453838187556668744343094053271894770626209555085251085195138781877191923654485301334090894726952159401038915470157927312139952323494640674852001199073970106870602329888224135564417519628019124615216530727449975137051538112708668340551228492059069241600848180692964512840341111694947988114317666938245523972802145584602582475350452342531364176750325978855366490162277959236203657680895719600789976472458895995835367538866044946633401286311864849085375307886052370305877722381935225126570902223702828752749891846991621819270117124477325729714254443487098150590043749755976278653358194457300993372540375596927508170100668503738937422114179029959451332758605254120764953053096749324258965719062709492080539956299903789188995360755731428404071712235675336625513918000375010313830021720444082470870806570247519344421624427943916481605775430797207822655427726271821156023792658675922326554446165711728309967750548911500432306943451456728528912674181216301753603544392659327583891621989406959579475733392316384456330360911603276766429645164988717850283316180339791158240230570244385515067320405426710713441469138852398881184954840350356248998487387542974680805045401005449426172101357818337860156127226467998568870834561932422250435117219089968564241731872243639482030172345790692921846313992497432332582076436681417373255753999033906923904091206601197087630258338013195827905025280642763619969799434555159250209647778285775315999851885587087378117531195154414953868132096827352538523909091253507303055208887770296461176628453488879602111381749825860371694629452307166377873240161938928359510372724948413508970339382803856149716176562111337318613740564801249049863125214565445575495316283478606778997495336997658477678158660216949154529363353843530528053512429880937558085852710596964276581990031830281953301293191323290733161400710597939172390152728501399017073630118556787017381287574474894990251558725951117775714946481058006086572792054880931838845647326401000229449297349852789658514644815561666061155739526545739679987742040689999497978911460086915317112738443803221339503900326765185598823887941358466974652237249900859068593291745022771306526165542026784260856881595974137671734758073618038086463354197497773495842705658533496675996920594030707189239852477344977597898616228985049887099314920458849290013271022690515114742948157938532602312224374046535620507863540938854786897727213813571402982619554775710117160015725272342613452870759543589540817702014026045928351055745946642995330538350843444444655152142828043343052994181112140903044543428355167865408712355741283537018036515482996488789508181101402526450269383720636015194277554986543572502338516401513512702284687031142427592334107434112963754517327935422750727257238361412428244558758324176575770835537454185129135315144842204094512507596737047171103509284189679329750124473304930783820874412205247188036721235590320464584097516134203792850808160311076722589750086378320615351515611341232850787889938017061136895448491116885954080530116429251969011097043434422899082585674300850836794444912426254412862796000536978500877860404222361900979986263056268713928592001000624639641562854068034068501941571050783891913401324134256863270522890828897114770041786910118833210112460523107582049709482339031735666155837946112186378175725688921271908889321294175294564853769025895823923520981656586064057658529702143885366952731168978869939545768072618460683329485823674284870234223081586370295898350327648849739063234541388478865674545696812457506320939692547243501267419818841099371026135961277135121902080898853637004673268045330125776747340752065372085039925644770838997735539192139870270286640492492853344731549074893021916164130500197933821678718923279939341744053427697677664364945851824822197621802073148988303465052574885285948071827312878928619140466217342804834600588440835250923565001045018069166157185360000475177328792938843499403559737242710032774141984547783256717756668441177638534452539048658819492745950569951528868392543695519702360031045075823915624085658039191589621026392216239843082152157968911825708241504759452247529373642047752508864360050656482247758325484925862206640708613154981267628883009857485480823499089963545416924191807338186791819385219312769780356772828085711396755991812425974991470159333318388797632312147435532663719381118639886657811930612194332575767294673304309529310870665478291013653925451529450007320800979875528370380160637219048335016841192789231640194074701096361994029674715936809298090318818617779215949032921225089932593879972750972989649831279786176737782576340064876077021110945028023384672394979056827690780894772493858558134014300490605054867885187124718423876242504150166097660425250861622463440766869653147174689674929575128617712968042376992075340820473649154844416729341506307273007585983484945754082787701769203441484298428157534639664835973989598701001166800108476399410407062535988607364294456523595228527227736052340046151899771265869202378786815677744468091966605553534165278006830735114847960410992042362901413658886375872108338319466413365353274553406265087247705201280640465645928351919623197803591771118738700251680082784598950985741284206492436773199664752085475729565156699812145724594276125829757432682387792445462994826336762383707621562160697745554999360822696899882493350517994068789122267390609342576248101525380820260287326225255470454830467644087821839972909447991081001170581698120410713564596192864052711045812253281788408039525073243313267707061682422869025271885012062143674445374211348371893340476275567297375046411286084485296509387488874140790179917847801768151691331709694024865529238644454203588969323995040799159937612462095423294057914894248060901726322431504992761129857317100498537523433629021122257681307813287886582112782101559068386770807596130316901428301708206207111042942101450838935883622859398715616294454769756273033430920747423279866212428900053295866821645392216058900990147447926769059118335684955135420473364145786779335708923765713924835248774413734492284972774546305283113437167670993010362989811193793329264986422980295086620585686896541177664771280542746650407421211538861645174639454975795604979985939182472235056000445355764059486742446728135080336892051470943509493510241405216255550744502135169387346304111405188270766731588697684456570507934551158104661529697201129551995171742940182998306707226664415885020416962634421852266669438992386571600805531155559496403924165724811891025178104848181432305469148814237695938585644835835656513560645894365046325777857559156498663220515123167528913121388708348855954679928495442072361457054121505549574536717639933611043636668127048175290573550329713624433910637350819908289165575782830447810127635025559102182057024278145787909028078643734412729989549453627309753192449670134441838549417522107707328123234186139828676841115660131680326129997129301564575856584417815734575148307369043090437731712274666358552299986995789976048255210036755921605232876272687251900561281811861817040046541664476962961024297087883740214754071122171591457148404805102293023856355491820587682021162038155801883533344278143538266279375680080057483605679679208740557345303229249238035460860770942008184334600112718145054685155699046195181394853507225711080648977911004933345699894569294554757215312447556558161686087766312133572552950225219300074644711883713935702466919730199872063859957690301794680463587114611277034022394190033860602408537564667188639864327536235046524327291051945488662158646468017854513478332807583869930812325615319072160820561668468892830957744103866852466163280629601392105170297843251905035993426868995384640725529213533099368679390803217720399385163344636406949990609477305242624060057868052640295879607531626329943541000685348408772334747306874214666000053359157283462839220130101741483739864934224139760608858305766458347987764158426455664277575465255512567782877813470330083327550477544480499025717244044932034747809053892821048922117561568701053861256378037586456667043444166010343611357273662751377393313274643355678717166617954283294451432708376481279342555323674956766878857900094476258689720647544772248257813231918807861671134766524985509581849584947727280456158262095114714275708580539923605415018224847834282668885794385296845741235759920249668235145411317161486846738262069865646172785004654101787134474025492615630347405025823804128183675744196369061984218862163611572065211826147351251944064039397886241848992507431275351414935940452337914063746727202854124436994844626861178764647524516997619743626728035170059632772126468885276278512356452872564919266720780897401304368095700779001439446072992701153768562615801422684051127467290803335232993136024091043207219670789627361985013204080884644568638124997415483058501938277739458818326701825515108337575078146248961574424232384787916834958323797850033385750236191448635551765879767070565190165707943705077772417009203276166775712824032639065966231647810480660706315751776137129608263513095837447442587241535419368487231729645671487336164875623580730314176839140679107914132898816115469646977662599206555355343758351798395325937830624493614043852881491770116924602367058210787031586160657601537742951193033033538975540101592918642257459069390818841466122743967500036317278289361842528625477651286796833039286958187411747894031592703911413345229708181445161069211676905004598590411574787310715705663414089410157897551238652736757551519216214849723577684639450425278232215253643358278603557221023766239810418472317883745589019358231800464131088448936895439485433735734731536761870466572944396121214376350457394101721606123665361706436720819222346702851219434993180225335222797807042285744139068351850574287736043543390357278289020179412761704499381038910662045033545455274726668258581508085589148154251207236817032230482192401396120824219776985857051499024103219393152701245724851333960719362864265564115601113568045530245977101523972069011696480494002534212062149681565199327487678904804586290038783941023445713257203894458236128738033115021100473826422089465321529136950805431033688310848601484700808396260053628185510832223642718685753452624160711396924259773651611005670957086192360647131837880196078368107535720202222400775471634248582501828841496780443353167233914526746604405645332909537261215558479143135137895404989465319849988050995874509534036982649624010564986857677046898472784566690253117070565532634152999432855088052151492662228989944641110018797310300525466205763602343003568785293922777746579629210069488178507223652587171332281699301368898456785409302018293175068719900003460819908512678141455687230400643569945258870461517957702847868582075750927926665913557143107071560237051320915195001068711110528370627014824978582932063464816871348242565472775055683429309969431016950948753685950914786559422854325590133945643490694009880425695042990785010307310473118373138905412443792558548598483927505798480487891711205498610355582497493885721656289651060173129607476168722161322807085918610940437284155252644610851500403624063382368311599359551779312157478844562418394541820799898062245504782768701704973530754623514524909839803741970996756522219046058549858852895513028216792120609295161876603530645439534221932396527891775586042549040794159923524866128605124753879553225994637236008435386362935806376361350824660407734277577174784795981191077953186207494125988822392551928660647975666179296930502076990140693848662910452345855999313409007786552008319187131588837990140109663566175061597160696853163619916468304426367090956072021469848183538201553293720374467503432813992894162370846485558892768885386277334774480179953852291146148402092220023576418609723098346182549188876759160030717436045512413365510826549912327404329064389482783487072222732370080580216493682726820656461386163632496908896385483717482895935738619821421105463322327275806775161384066536480408074524680608926104770383305355570641135257533625715942469775447201589279330872272766257822710668847415411716074727913901328771494174262979857559012151502428595960231646344602356232439906770163699430113983722802268952238994241723900611278677060840220848176091703950476123332661490005649901735477769300359281206294931658643160794637803079545409600847227032165019656665720678090115986209918340883878558748336018662863655134590710181790141339821512518204700292136989068108273295483427684226087619575422624710437818832679078325646185628340342193436223297495884838028698455407068354484265605582196477839688033232826333337699813751876003207680645394115019724578455145798338877155649921297284431385289544939082319116638325542966271466020359216279026327140769165659167869882240814261513975082514846311980792224798211500236743026123406954406899983852608697787726728051170086075592452958300816938674046281618506142262365423714259713261137602958514540105883737659097747929268491330845675497239907987735250210691827496817939933013568960811255220389996435220660442466822152012480547228987738072590896300926728904936069548248535783357822518101651925682819567947441380040167623585435425365621758607428990364675647576545819204928810431688588025707678977056324342228384577750361146116244721262787284702922303235453315822863551531901412000302004865370684738451337140045595667807213253702797445341822625824422666824142001197696398509147195679900735946714522094012407498608975727797582225072197185619026717293109523371087564586191676784458869637287653391326549373966926518457611121373863554670144330355426684202754862335831012848395146484255859588856909557073338551578609238538752470409736773395894220999943937180430983429192630082359061759098177712812046341955232474951343926671747050416934131418700688367207050093170291984416594415432385351511268222611024178284783470122066629615684309993634978436800810732774746385995579860881953524518849056827215112593086334004569611179589743873699218795458750233064368673486886043840150608550645181936068989067497020410639415967842981283919763966539470962922692091348404015722752459261463954198517093064112105924473304616657719945833760744150301866995839390746474591911110410221164436362824978854567717432371839439421067135761269241585136900608178517315464668699313940261589124804379629550547413470756668623012229390249285027911980284212625991093105759725674103102019336799034564786367718984627290709129354508968524792947336208356970164601544914020529016979527292174361050751412885748608623611817070479007120222486322023655606065102128053614431281168952265798658435214162380278594902801525995905812701224292603317111935373496163017134109537722145044656920132557261183825836692417902876534328971151214252726961547414551846597112051054255245918804855857603095356517722700562017449773225899608656649705764885275942920334909846068542464705028813347032299663989482070363498727741185579677366582101061935925197570509813599251451571326613986706994267789252720007545861062519079891512854747974196209888628949099033391385480386336045530787716157084048972880258255146668267086794685069280463309001237722192958463400171986981205663524858783440419379509152577715074879802499636167768822034336769938798355167497660604103314457983077143752645033534939785338192712568285603627416571196818303467883862518992009811058030220963683275023684131686460660933267025803850098444656220637279387412440874707695910081548674817457014466343604722375313651498216100308372502912415935021628789302319815416439213728745229573841515234158607607266379933218024162878685912873873182441167023398433150340725133584258043327181115107920631306256455124460623835735452719380362439123411692353777036822513606492787964407365894876769729205784699369177472531800594997164997028837203424309016563929641558279010810555868604927223757025047330070960582625118566066070891642425922046762364984524353037493396632160323814452186652972061903978679154231134556547035635253361565301431466003749395564248055511449640769781340762996098837348514341315327586860032878785098996128841053656051470594565122743929400994395872983518940384524443004484090850983981224649045188901162197820544964357348484829814788513095897326594306501222342084608510843559677234887870816633827909619375213478021183457658878936565706902548984277469475320112616626952886970897446756362514052191526108185413365863691504245512149074194815280059118377206076117004390905835703432517141983509547640275740241420994230640803114115941809045872708870226713164746869573832371899679094866327072340104530606980877294051122604900064429750474606324452177360446917058252116235458247255578943030058666229145186470663338776674600958847072829337942492685321141341532904219020646817123526784766991174829677207858631829223544020121320491701901704326198848246190226301367912611907776979047829140709860780537269094575777926940609282341770808423544003706324332107662114754868842052155258800095184969276668025051536400238721901450037848517441332568469742856584688079964600851233751826338948824409671484646319010522511451989892135752948925155331873324560390987017831800953685296911703001179433091438412268257836745274252006307393265558405398227316601924012109350245475951750057156932045492548616292027862227017860611821506112506686533158278087484239947632959461927407339372964512590271224290165672500991954871561159731825052937838536905970246842692876807379436967099429853859664616599624681750877670473275415828394055133833209436599122858545328570661628190345511192961890145433232828071496286458870279938645919615970610270830071832769151738570271298850853711285608444197854385119229925472888695541637571744428721476195707238143982949268125395917092205043398722657217955433186483751988937429666630527678009696577761307181592644986001846143411852388425245984397083247243330780784250914651255834954931892264374950613296460388195891109341925974843821502904217057832828702114860997550249892786557846352776647080133936588129530551694828231464884954764698189233139933865426919587668310124983520451560021076741255373650535992499472268123026289941061997854181339459325451997224969088803031598519586225573462681318028401682847788025489599428063543820230678083477592725703536416180414212905191513504009273433466868729803835085497267552075269440111623963123205604187902040646799836017712606507400257328689603639978061042248014409608631342878416262341249557355309166248851876987095643456785842934779823522210019250168352968826740211475070601627234926349449007877179280707383838053605850367786766184237500425462388345939272340199751005672242072312239921357557781605051592692270305147797134380385827760868402409728793660143235024943806620584468394665011453651434216430365993490505274069945278355718783860407114977273370972212613219250642181906802407406047659364208342836677700296880779399861282720896452428288210452034769637577360881723376990139614125879544170746537316367920059125132267467360183179131524652316557074399654506780580110840073673837766546802679035481372332005793204175017401353867120330455491495410889445794116058308911730855935158270534696749354561547612584120349773646579309002374959345347006241892423811061500271288724289477627865638693758169584424963640438265777637870813434637471769228395020734756230929193288488603600362688503631177400022359391936215717705995793990593640711999552739383087856197796134969470301527693401569763145789192426715081781969499393274636057441477341107165260948840796392689787744655202970900067118980225834031323197333149986213859637958551641483359885090439160025462989441833133055089453190007767187088280540690515212044358204914869056615016294882236935472807571134519599896199862990977816252543246781403469815847287399819285719006284820109061709780654101291820267198656208767622204412398565084894326653773792396149772319703618628608977429816601633854921454609239922457497355327693573106631199927172910815575591861368692360873209735930686933411900116697706878931275670290781711046563835913535527596205384310629516355160872357441685281794639225734013918704044837686302655523256478271616735936784832002343809686732472560184371648775052805216158173906508353269581202636802898096051297867305502450560159180713813160533831995803121529631509894145374749683878064767298085890942022088033095722775754709082152734298980367079013865649292163473533763168007172404431978579292052043426621381615639304096414834326422446878632431288567674976604443591539213856395711961170330453026854107028982265213001515678302207807883719717259121202419977365907422658277137976055729437344701192495406226844397672864026155654069021383958704413131306217891675388158219210871778372730824697520007246382427434841361818545045325100433097654919224866767461430620353161904576563408664230668196201808468396885529907584826861247099503263322499453150870604166064081429993598340111074147379613849841160617474924652344827606182991795185530869294817739878896513349642269288256605067937848116151717163580555669899547141718596310567626369999394906349778681757755669327844084226958776058480845078301707230669056971247441261206096355956473061248208282354658320357846754225725352638264311230948772253598175376724803148884829267007955453651853177985278193456277287418479362524760923781372009252262610050505964797516892601439225844005316735464353492290042035158737293370989554344793015387917313254382943573502098135954217785475121400735804301759542251063849679703128551783152691553279843916006439312510814393855869826096503772417447871246451764423373760332601536105104334141404486191461319337122167083370989597118720872434123944177740668275870326260079789437168437436223586556512278577243744353491353348791718871689296348982478145627968428147070766847272283945934529827856023448450600099064577449211790892246668397560085912627283346101985982408852895890181247212864013448473097963183818442954683934089699642202486645627740184013866985814389457837089169051560330357210505634110120226149094696303103475355438033567189362648933835662181907118456271917173301426633656037766073286985601104055029334652819359802232685071793144076663304821946235586492632463465191390611640489605041752355927230870840464500671872104208792364073976132736009462490709476791878196773332681674665683822449335994694318851307550969002553506315879554026998427203362874350484073718337595609749646947374196157231555214110277763752388102254686797172286937524057949578606403309848434400294618548363264762535038358243179086003357736162208383112964250502628578624916283202760996433528448300124925769912493101798136765359854695065823126379766090472628127173398419601324102344264059457453935963372067956789276812763414878235512382438427826949549800180219934394258845581428028157864844000326853611262627330855697389076327269142314625082002268782806986739883047480526737443012206710448250098290941581871657324482302121740781194663348377707959427838656915758895520586565868178006453626332906241069667392420818547972204732044676774153055594254381276038966998963657317846430588861049147663741402222041714115825155416436300593709982652208749667134163234310183469015818900284122956353549025579443852469875978909157708508194401948921750289245918668336042725058249506401925421389126483064026420728600888978255872764692066304432639398226997532696437383672286401942115946659509978441348745896660483758313656416829640426115560649099773641843701386603010843145418968703363542666294836476868450159475269494085304255471326292749109132505254400231554591928856734885057093534612424869640352467859559529304164385715612371487388591820796818179398891792088928430526168471948293715856306805017125620509877070473080535368717580291426586728238793512426601845350241756485063312367601055436120123464447315422924916017125451695980183827207310334259789399227174551033212475121277326117244588632834369817163972836660401519135756355254360107289574477051814399928255719777210644368851247133928463839438876130030934678123641024141773714932381519680276246138687215555646313772854793321132979307987211695805496562738449451301180823812323967981942666514985739677595648842952589906912107500925666771917224934383428367271375442539576616489223449988706779990105668781499968624369808372647099492296841674504843226155546284563819422364675294014693114759282883562983602811366590446893464883415048219621980251150366814326725876051977077540106583259472273336767550235532759731423137424513190596537773304460849273008680978114914243576227817294694753495181266160283177082058969100051426398369053951173658929009716115208360267431955755480427786914257397416999222481646507786622958678927364940395631196785759823664032397215535289916210621168423241077243690792219177878785418228228987401058999191212266240360353463351786324277526519154931966892176835506269873505760471542209989056003160244966886664551827377141959291180195412158154474590208639331805826838287468026012298499054587727948491321524475656702700221519445264795429146468334669938127592283862402275628750159474349663346928785340240988357609522599655751270483183773036582613295279295592109834987754684950989016661400445359609198220734309414758236058405771493307603860077625610485022024179298373043179842367134128203064973727531207737719532660281592604904099775583227379032054570955310098655353309362025600215669124665256094372174281441743244000995385545208052056495576285919095652953164446773882981351242869107815711130086514998791174675549640792398622930082881699781927252983183147189364513642731359447954427291817710064017476265528115973051403045296103564863120094925731084834572180713464202429989149438151537918568273797130953456950350054430466965373742628157035147538050392335985142472652221747877723449777915706397125865620219209283162908237361323058429083679146789965965868510972841006437082316699440105951401690754255924443704768043707161478459456753038412646106456139076814389399541306662415002434119372695853706388969886512213682847359537929992728532716650377950717869821179376073016594000841692491849495759987312507216822960746817958183041057202853548447559634686683853279006622754880999647394314720816708398232664396219966226843555910299763951887712129068265868455958765565001214427612128117719342571772161523982516321124482861497391225522137898454962103081055750184300064647213673542334313135788413313443952899580404496348855900525300802904688526941785153843633418876827718056513776122626356357022793098123758212699537617276115853204889120036717065877331001264216946829141875298907975125337816303561319756633753418468830411935244453402683639666679542047172094286089194815292743129818173775053081187436028434976727110574168343961922936585198555441313015514894252956519052101574422524788338906246339564536706168985519711318084398221565084246440576259245552669455140234305995521804718483398231421100412367956896014462015427408885871082854317893155632761439461622524696175625350817830623681827778994642811005922238146889167326041903519597396747026468353795202741691814834854983475267593456387852978011978353535863113518745636259264551078891636899155077781771575420180963475016506426819266343703556059978687057709135279785295908130371577457511838372358031136909576836173590582391598968397962769664160388622160980498274371672580215409978811767963761327914668528430486626080429003436807193653293217890979300273511503090935744122129753990213692297707113357290683846614659414149368563565514338758992971967068224632685563583494885855406980097431076172126249619104601911585688150301621154726271406201217372763135868283509526086642133840609818916761811523159661954640550875487315284577526118489535710257518335731810775527690569899134117189477849395064625358324712686811298976857044385053276273150046379995458577211712959145640061520969316451360306701935429761367912330740663287919265683291913137268844183998971129108271136481058870583360786885914359518818920097862673357996385029999532667788474980565806652811034031651259901694103750402925640514913699773316782490784875529494054011167932311101257547266144983072566685028962635289408524327581654702786972419729209085123429350627261705859261296689638147907575175849600809171356046190064192437677371035463980553960464544492884537014212519686608551115667877009305805600976042302184624969548931162472978508244199006074883775455922153005781405605407856278471305791554963410782769975107118484068792872551926292101136385168971706851054667735309272616707532907833936135953204794396214742028953545170189129583193616776668004109501077317555821665533570801487064136208700742642511710805929901239549288588451754533472617190268822373660585294472438294214760796573474239367752094516589204010183769413643916836639777822520043627048611308971810868337692911744664814841273656722973404390271444741608897323111377463092696223827778071451308308929975773706509558782382185734480308635479217056461006088237264101429401601695193404414839838254118929373569750747356442069899056308562396767941924130840458367056357990420654741051290634464375310863275595973792640906023980993109000189365230894691205150782468319245477241152423298134710782663659355480118813816507646290783392724605986196540445077391532847168303194872921147409685474118744908538601501333345279187198150775366904250502420969737156582117571165193640083781027697342525479883493726246028397074169241948345499273309127894244474999541424793831733019757462653263467472989748004108997608982722114782988304456018028879010295076087746985240707657112102747101973295886932497566515610838160695036718644435656720219609919168948684394474484544104638303339503536661773015003683600454952386612800365457021749430021214964215195781522434176731837711490686943493766597834303344999602451978760270614197897676125419342902094094272689935114196680372955317932431880340593408112497456719491368923436645812288455629160072212542336908903881539535357656876526214429781906888455759876376350717168762993760965329947740334889532070204405385560708339656993412610460991508279361033453256695413083134864687295157948933854513593656261749978448627349813493453389519839223555493817770837755792557222224650596208232922970260301074027804497411503912151142544782428042484277722383267188240424511409799559835880530111395898182607261353976428945581104316390475062578126535697564861819495850727201009900470966457331600485645164176315838504524743854093962576699424408298608113424200186446942455912103348342858319736938908343923513006622323951241454743644360173201634948378918219622285381811354665379737933788576637044926641360021042640727299976698050830058629317991729953901856033670559750974532115250853028071377088191755711186120481926393427673736994580456480109542960480312253267381234215120305511475381052686963179160333957263061317194220324626320463457641616426325131936994192343977456408083377969607860757847146668043439522717240786018681500095827382824713751123986614217123940877570317820371694697143608287195154451800491461492751431134900554240133420905742707517854655571177261089865686099097154451375140173707332266691353225166675072773602214089177314881653051060806487353317305933888359071232122775905939277548869122798289857287210753697334866422826206344498004927437114399292601742655573393892095536895734314892943849915369120132207072953715119357647483655757287330529247959760624965847140485736682098303104299904535891199243134314839926587616720648187360813970525874469995579326955367887736113586078531438659285709824956030975637348733228969309052009731864661496535073362720891857661243929673062849287313617803661259988395645910571793603531809945201961892333925072333419780279570770405300223446517552545757400056109038808386683811805112154512219525523928614286684094047103439995701336439095659326305760450485550465453398393673988403222542351458539237787824478851017306119995699123240184952747389832162110355266136300224279034888845681608495431590652230639798757001341758204399218538149243730042479636860122927397245889312348995588737211175010541166082561243345930045354974456753225367024450702310708117477077136082742842687521470204052645312027315699628313781141999024221112871807508054720697137921302203644792948366179163170367743452442171470992544568559005913550323080498826734100815069750215799151052045132900820236319501026502486702706770889746424081050853249847213111899277278213695500472751589286567444629156624293961341079333723255898171162996465179622429915862561116628740259212864876914939954635777926422505621118077911550493718741998251663626789803608747486797422270948869356043209171049392805220270116383975267577050923461034019358787530224277958143556272212959307679914988717684619779539259988227568213831272244473500788387034547720180513877737908986583362002245154169377861798357539150667127216646843509357422268896652484185323885904253439689767427042437662209682713783955696354493476456867103159721766926234447632929463047933252164845910847744058951867342777889482937923539406423570555726396005759727488411770481511014772514326072008028507861609132430098127501837488683760610209437529046379147582386184612963618948451919278024760922795962875271987718750090735405579585706673713450640703426504821043652937302313302138254898714034748745204444556803898290666706540361723417690117684503848455685180552153740040756273846255233822863202911242468044134436710009963622205326082412133632777698288839077778406705420297246233510106903693062231654286466746807746358062653962790871458343141388013797455654967459901336250953033656330671322962656867246219425697741172023626156241287114549000857607393046911170585785698703281998143747104990107416759434795603434889007877529412666491250807826549760812076101487763070613600942732505579150616928100664654891749832969588574039885403731457000073534866407761623529299804260392948677059676357557507511782628159724767975478504373766656107239455190158753149995659735169100968674008106354075338649775303883168685534520303132531416970439421611263153181916648256271987768838542729202882507936376958620126103245776868734487062105111614109741047957560612058336196443168532056702466267872206480415432604243419305321890126720948604357070786620178561553678411478878092413672744651918875786660101925773794771012543577255999501570492325000885294805986151315251707000136227880962194660043741962508680546498815213548818517883115101897696376694775176309187923377687736599803175408899884054925172247338317394606539240722275794246127721279809295767335893669838442480970683189786848279087015467632170632174587366750410042597158619179470229983874544955439060034650031120038671725504038901111295645329403811800672077198904895362554230555704087716119248144436469730185869996685229138261997941673987305687188856149069557176103693128631114470837330648245214550867472977703028075101869205510587318813340217920078484394029594111397724847441274890818836350068599220651467450148257463309206844805906692412906267449503251492648993003929804001545428066529176809690658421751476896140122776581874209557659349115252101453498649579214246073374830165703599027234558366777730305862821152949219918857140496645611743386539712947176275868216200418509151561907059938874888928579144384751627067564420893336939342028960931782119717087346634414232578355526861927845989094846770326958431152607307620252353851040643283822039125006241020507150670390470139745350251995493091888519613765264460211457273768424771800651230564803745955343250921312078903283354277161443131134789741315125814353783319904364890858178178882895288013305910876379054560511468631292267608165884123220275814611339786881801797134884312914172510723662913721664290746713304616916715087155794870673862463601684573043118547937217171708160670374997964665520946037997861562578423934748540225006594197335310590917214470946604559294105392134504332948943829104468858700623773314260780031162954800899462617678866012161044884770136929895051351269075700125773735138784856057142392091519680189948901126165666091761480210339966518722065674715553335391621415999486745768297369494251100560998786842329250272490169315110763131617745986601282874811772434437406611586115600110396487939358037796454790289305017620408262618562523445783073935516557642891155940117078686475993137640877560545968486384290121386755701427530331512897368572820742093009192830823249119330969225073002949544788256291822252201269972673435774716295000086494814154042021051758442774701908245557460716307549185290740414326800717127903836148420217642012446769286484130188876289821898802761264633868067273091608503554880895248202587303510601789542437309043410074774960226269848826485542326023531119936157657735453687356895370998819149178689427111799279156470104464367195199545174528953094203437430436502058267858053481301429811894645996917683562318047935090394888646976895470335536164789368574959034417215664661471764175886300565329700717102133855704782685991929894038769218664027419745512648477220273603104346888760590946455501864307893901370404912747805229899821501561624962233025775358225783788789775367715533965218752823300281360090838229274185355698608847431209698860764218718256059588273818574928891315605366249435418039054952252052324895730194892243787653183702653486322646212272554257993062792248889308344606533666338695011041545541020428764546575500573744682555961436565117151419369371266835984842401946813281283755264210649122840677212941231408807310747978349258773107952654616190827907572511392521657053518668861068266332870004833062182368306826153566983775947947934270980678261230021153103801578249456938684294829336696267252526829258362617574475585280994187329164028912511464826201706299202924760299652438538849232461023676660907861280192598547063494496594879585692899209299804890900107210018629747277622080660144087714000132376035890646723232465859755078881225162712236041649166921957925950815969811651580975385123362547270336775983985087734158257405487756128344134187901417768289659823918474608323355460552506344662708138178518317335565514310431902183380476532972261046696384541135850904022103143932204056525221447405341288215715614999904934177645369969654854485831386534193328838521679342418963321319698315839975132143448480753889132975797939107730857922094327721104297692460173004909954229444595309847678222009574966496785376795789974437454344044810149177475702027147700626042223027749289380094063451489440108862202936575592600977854610631183664073209091486494125416960376150917885482289168940431091961005594942199708492611558140729369397884504894275371667872706705520933842717428182189166766826496479695785778105770147301503100392454628224405358963673655654057618999968006492767403002221881534146551913737331213137484157006359541273967838284972672472744730177077119789092884173982416935382064140224873737637980867196206136611701983446930666664520442515222004051216565474051195294813072669928142385661762985816461646326206476491327028268728617914052911643570572568509625949715174652084252084083971203162806992280937110014912916185561944775378500288485552106911156848748675244627729916446802038879630292359736733143600365868662291396386437600879827721485944158007339809273514085631406565046543404112731081543467217567059355413220158310797676075042769351980818907317911064527582064290697326460739134324788909618311441796477492648352351113881039169674606061807058803269573334068434799662832602502494189713057759677387364017862409962613337197975611811455685240222591517449157768964405617684446241710300737615816299608484927988838396481949529640674069861981727377789696799978769279308852758784467093498727543762632858893258016297521540548126829322173093927234153961313410519476137555192724480210401839402602886397347916361916350670463949157336884118882641090227732998735745602533436176778355717598423140846211243362392170640754654305576149662918924220821131475044388206749034185207519229199604138993749268332980425032428597434903273228754122341353240712774745349415349959673925003911462271909209155270225846416429862144629504893143592374625415755224500552079811031754781575759352857626763834159696176864687747928415065659035246008985403812609863469009108525110305476864519796045944922315470914269660212453881649869886174028492618517485288081470996508513662393718654082217881751612594185056326129304694159908548988643545325322604773742554619720440834507150087128235010324429239541329671536730705134146591570494622552819171541785854439188661569710477842354847186034345798028364598609916110406629649090008027294199110472884486316262163289633126926029266544971069232545990058795042248288036869189692690834469784909980636377266012229754194826140951662397922475482966214673939187215063035985983045519240114435564797619456232000175138192972481855891571782613224094317861284904078720384844188629944917960806526529103712794332738971847163708835859462212606962580533331828986204462588766973785096807945385580185984657403285901721642101709464849585200276735539557766111235742434093314889289757881973890220188535173420344550179058953132769475066150706370250675659708889632610521289163080259681219383058879607701303557002407575744409158625685556127491374688208912141739298441870111078201847596119248163019668684085330142069766100500510869777344881968865272658014862260996152072146149899407959783751375365003582387580682365787358476799427889019753645916166152976035334036232205845582991564028022292125811029551362238306853393844814942440533506602559982691551920294836445160933056589039011452154567604981184736129903472393720672085911612865354739135486451418521117384251793073757092021297191507946460836240169871452133150069144785156973097178976631520916050438130834263005242077578469345006972205982981231195629776673481461438739651844070073604491607700814177276037265397170744203237181060047045462046774607161616109294109537658698067676642832848855228394620873145957738395955253662629010221713175600095606324896924217706830552485968765040453141538408878545596078300199862072859948435031173920194602582010516808079027605735413724108847599356580030208812955003614912077795654236601164676060990373604331568902259384560552731367268965058821347025144286313285295281702705442142106731108281560847625990651071419637747580372931442181396779967726301220841462622673396983242370527245458451726046565423600521041852620466818459628404838958669989554307787922877213843198391978886727295373134059689315302631277868888073947792548026963150915249364692373613410448313572507108792563456815307896265206213136279562439234559907136971468770293236564584238859004962385195176929475905038726419433940561311190155373332762232368342571677409753827193355846892274276489577078663335380473536557006818987440546941225956650487013707856124154876871887092428854664684852476825583970696613669226306576955420730759412030874153765416799787514952488050510751067839775677055704002019375960152184735434461011769974020699648365808782546648547461118728570260673592381697126787748762959157143844910446674322029623123299576060706250838361213647747762361311555764450429520060513824384894698558985818089572763812762861456276120371643663123938436839198638095243012712058190426372714694022137606843402374097648631008908977790659353452301357952694732703575132441702436483643871198315271555492010908526776954471339461645493226156355767134294354303805230017697415138945361455292663642626001937515107785930194039248106796059774725994891274179248315893323366239785759914986254167254180789249040963753342677889281580247374358897433584514545017900639814674187837596041035327163104970081647377371711961107982409411033185996699043525423077369057622927117901502572871954218773632998998851055092850621558283051870692978968962294645129045703406627307154873755052900681839831480873348651462442848878228515378318984334751693621731064681454139795500394182569981987008121474083591168365969802028600305870901873836837380474250431292424406166445989155339767255091353965950642086270690556155717076989831168993835034894984511843135182886336805207612813014989315964767670807538344296115213932930829680107082316516213251300259261716289122090244305780140919989244330131096504404705883819732279430354840219601777905797441331930667255438415884740973365201374235587695335814587474021564121920695525897543300493585559589700367053687319178355697418880918826087800270590272360076782775149692176186070563545497542807598043662865796527695428585416002071908193190976478039960139113015174812961237901904892054593624839289361050962301567004968026507075265157675176377308178182494834319160449293347716160999139491543089021235156526319421081293232197173579244565105559824918360443524308011990894287380634921869886119005746521399589440196562226319573324189881996975899147685356076901665374857147221673191387665051845275928887526809115318173562428962532826314464849878437605932095431569001920115623186133368329589022310332460633422329026173422430761255443777561574937054136782958120165530872985110411529361096992286226268931287872413539931296239662388406316615126162945585939212642844897534184728635997922393390721660904014246868304605637398058255636799844464077773378240508105550565333932264567996164141892422548748838615148649749837998473306345707550110487982339614407841851436357342894662004551870099749936207759994378592029524964115718133545630443035732820883140270482646922991889990333445674129575541715501428184239785727940659519269279084945115599725480747186847795727825668800192627365283669842330453117519370709131185022042992207863052603549005614860036243978381255995537559941798697491094506788075277888032607803568321469669635916194753770719945315117132124927620361845942615737539699546477727722298089569399806697873661045896121197000621919452095183174992522014503762585330904490695181097428498260775175388752441037800289930061775881016866860016195222963180053421067211590405762201589669044581107013188949732457317640639313019826057738050282578534404775346448275554104867745312543533694663312597808085676419626506041832466789397024518002239562048588071808863145265144577792655489500159451041430577430870764520671593637440852179992318589937593032740123309451459380888031150011584789141763476714107814188833847124546625166083920280530352016685294208890278763753406336883220089413619731537730914400968456820429453465577175426462081200304790692282947037149399317487539947808659128754050536484518940834222772360800326430364721943478826569744758343624276867545996623719058904579343875269143441013501986078188615208491181982425110062160687519976475415118212046253644322680021534265048305503691993727734797609723207697242391233761593534263813564936396221599608446268826681426350637809503954107828834254123942246013275291601334021036160027137042859446602797036409251167183036032894397199508089524139258693668782336466220515744998669232328338462493276084233469734118402774849174648872444301979770773162571773995473205533993457229415620269120976369559561763483747254941699233747640148432909238778118978238922192092118529357698838406118639307263773087398363413783588883484820028273571115436699381840316972218216904254246186478267733826893377382109230714621645923617728593909318854826839183594889740494704490398826124612120695450524053447869053239732379473145112966422047465044732997196385980163948801970758556888020038625582459872570225005192193600069102035942846984772968415392916457441691876532975465987642932462016289518456163774388931073837380324034376377204903296195774301774671717525508724234361429224321825182854845869707506727875586844487379885469988591987588508754876050601545077201000174133751633067009082726103523883502153520565682008995135356468809804321176361007061244533674481752371622654503814090754761228152950885876262714402920874860961115239194218485047565464719220056195512704766361570560723874202443551787586768562145699976570478200076773693586934178610670666668238210629633789116003717557617150988022892808772558522178299845057412120282401969608098714389383298803820593482898407478737176057695005988430342713102395297491543233278889659753133826889169322436181544951734578658355074300423680022481291343240969992519722301025781595582657938210708706055474935114747763805479626915185460186526668088024779619006722357438736288052464845078408548761662695364476357296598732955106264902055927763392344919844776806437972216881079991637376484604045549950594327113602834345451217698525545864384786978567664304892123893905060960922937932318146110463933234172776254364510541581646758765575512980921694032369283611223040598285845632976897061853745209994622095227414870260829075390393763335348395015799749689092755397078747809330613943450629273405533342030483386221721546081882768893861138077178198549698439373253820629318595588880523024881395380328154238838951574259084581026581038215890493819697657262309652259473274059903089206410076226001222463534072727254727527690130726651264657785978936050953859295891788826150592282866861959911230745938131418055079331739300618136141020365181061215801232639860549973614833498120566114119967647062928314176202405381766140799463180479913433290986757432780701419217036027993590911420816121138186483788919263382465581567790717771444015353125637882022800867435835456960005522060363765271827021829204680774372852670793417648603142569326420033106650673997087345561726464269831101006959401106304306606980362602219266243537942329288905948288250608956263452865397940841636965923337317322059143378985605558408765014840003017145955761500238894059610564370091964547873300492170521635585940753072566516140301491411767083647209441578861428413218974302299135918386557172038473755803989321461985380752049882893154045011146559781718561026502431249217150665924636017043087493207446745926874419503802386889489101890474734146701267496995731199926409194251947810780917950690131559562812371182561578771413727663642411012967690981350303072769433215155726483802067300293166232910960587315683174403322477434863886907229567513044983947470169303814562502695619436004097587657563279768971595822176168259404363010867575687739544261369993843749678053478780930281909653294833828861855092360746552369870499039043371082089392900328902966715097827702982791815088918993352455251968998116440906985774172088572896722082573691160361335019631831775604875260939612654038750350062965795581796555685301762684289953017033902750181759032037442089787321565730144072896665882404618153347299970512585519898407263694753451109444234665302162874425876764505693662475612760927894792297131914618222907934060906530711705317573820506952312946449025343064142295728856352058056241239031306309583869949706784129996146014485645541097703533119367465403403211491014523830204925161981462816504350849437297812104275150863093350954531118870579299785238337245783539826292954986248139224759381962364332277778839200584330924461199787240385117902559595867685330786354563488078404417887443120042289866563181617439926547709160171956130146106522588482714401940700306848497219935143616377870923396325778682021102767822375391086281327826368221664643248513610588153749443117193627595253049937985359299806249214611057112787280698133389821689320055542624471870325890407499842830614220240906348904691795560821514429046000387726584701704791564287525813046310650995921335129134256119959919046249842496450082331358947746124584576659742709554325264944202038852947868765430178998095764580248182175059238070601066601456968533693157123106802279844283756672675697276398433799080788393127033374421678559848876031700352476122758041276314204393911965612202252018801859365458420458535077348427242469800666561188455908759850734008538383301997623505460902335338966658311966991288930372999918681095764188924231218425680531702677096494755680810426742871723582715860433106837250576299449927732000265256786206149656911058911125183780600240095298789831497892818680249870818729954091138524300777314123859314340094774079135075412860707341451475940715464497368231977146516765441638970442639866999482992667289236842281800017870969249992469906949240295575754033433710257949751089999504339974275992650121627817991290986181773860681982416404487566527320942166271091570796432941295670077246541986287680163261543873459268630112601737160067559614899985052173238097855807418825488155772906172440482825332108431889045979880313114549639082049525793801829469016245078378358928639414554442509000959450055909124626887620823226017845206792691521267327530188358195163741836962155637959629419949990790165239334340980564844457985870990466166667693602224451363080517767007605391364358010197588247766689258842028691863026852634831306193848751067187173005288606808122465997583258333588400872298375332692398762313104676523483995750327814133647941572877210198444577040619001950902046890083596727737288019774025183192304380651106018526259769109250661686066788385037822829312751860968717791145550986618898832436039040127974462797990060955248738016509340582013880170816733050165295186561444874228517583699380725620478840974084367804380203000274941930333234264535259796076009714624103430120618782850920153787534534178215406531372140433673496069095571056638764371972076257556510709813468831929952199057286786997317511106862016689758758091830240752107236476021231074812541206413533484028986736420473342041235976123470476962496816342239045795329489147462090794854128323877748429340272545048523894531966837446405084264365626583496843664304225015102654922335950151333692617655199072761608899701725020250339397336885646685158287358578178821317040120941063882258404745283669907282786701193125662918515232769250375227301318480967831226680337509614183401590425790275749137886946665428123372917383572116139198768912704608359313813010117544850102449649575466581096364025463777645353476168370871745340775681019235155489237854744847256316387093578711160500667683115825486653731113387667436118663676822433635006315471336339333240000590145621434951180346617400173110207790208728319164369840559624045499448313457936860262313036718893131056030277459129658028778743809682181617138027709391310292719234592401938349637090998739940330630804851695544276137210414245987823055334242007593789163574971796483250413469367853683103141068243933071496636346894516412260398122188726854141527141833368717196349549338720207132851260027453547206788845099859339828544617911820417418285377770094954677151941325039110420955356947400792859603561711735953847006640588472947331735773715299758108754246654258859224219102469581279588377307227317098101199880361588025490238779370303065228871983095561362004562770992811127126035966277692474564359919119510185839548118324401963205355293667326691206806844709369952679980591345187826678762573743322080268217247101021382026713570890088343441141129695053498717529295025800896367496143730189155998376201743287109014692582377866578807683469672298541058063440754857422909358204733009235537853635189445177030350525172210371928571000759875142250113809808383265981340163560273404474710529430952393966386665257142688237414942834184668067483900416917594957897053541698708444545109427588342973733389965903507303522720886381463867950446215375360987513951890164493853852645547784743735080733814068636186481787070308191601617696476357071907701532549162939023727172486804051257090532435276384499859411037150132737919571953892801014211075440283323706465773283333736056573788805658820005206172195362068759007871302155832699399672481870309335361779109902772196672266268906987356059513581955023156269892013122261576641225149489858683599530191945007422877374716268298985024305496942309627886422234568256763767441428546069988301113162804692674209574185035919712280694557617031811285328350696446377011688594281636694227679251610401818701706643376554246091540164880233400437226504523030590236542402186427695882542496809418758538467672682645132043689141367223030954434076590790668618391653748389324795368672432216191611437840198889283301108198156304435036533213545303816107120416977485109052126265469176491942749915243292253376528003551928581483297979621338097720586939420116979133164329720883113000347533719017257098971895757842373445493372030542929367956876527537644097922706873118493598728069865550298354889407561379035585631821524385825236593855745009949646395488177375727027999956996565859979547627787311129217132953558703698920331128748395283844202638339002542477200371809524775525108069628077408475940619312939836507471396237928429386833592200571157050675129259637323075599554941973815309768677114814661119472044614081775898229024102190102974760444832352859335571152273820147360646812459353976655662744599137277655714782689983270503416888444183735018756536022255456733153824385523294984947590669559929717877208276442548038173256922926608830560264905821357144880329012960331476288698092670699993122834833374924683295383318654596257999641975790996144798661282960428677793845681073744009214894650582282747807136697225112662461285632363168226199326766385730704167876665891666301662661047947971076337399069837771436226517027648536847421811437287386770502650891742486971415962101861500544446110042414160764469842513478908056504405876031231849859524156343901908928017006592088570989690944325596384898991993778698009459379195140280173256138992937172218307193724559494828566508459313663901427379625185666356713303259985181552129151163427019332587259062690500850892236891250215011705142314808575803338898945026105247450485219841205390919200320020933452419212887777429038562581492921957465976491637257536396810541243616685960779161213494339390349154439660337954331326635205181497291934562156987689902974332287182756704119298256570190423142061883247149875862714856699289077132194005021710285183554714584801287746816313576323381836137849042324918069102372260654271624925075052677178383760586703845027830337803059653863890923369740281004139171608994764071142638968539076005758857453401559178313509550454907965432206642387799379042134403193632957392712399931555554750220456094802240458847181212166978900554314212378072691521003600470247969958544316940974668272761246699528128555213454419149458685038840226157873341550038659621235060066149669299981984782510807130968969210921854415861247912819748885263611828095520967539689189425041755531207303328262608035651118002217643336398243969237461715672442507899943551615925032802389972416137399643977353225504497587475510947064639246966765210121286885399097097361909505444414544144174670533322078939756009593519949968068153750726717927668329174656326221404263609800282803295601295402381227920104445722587047898265457220202432870768636358167059896960464967517673948923313350523721288217723249450910682980937437362240384178714150506498705173472588517018992362963408695677731633787205248233103011868653484031328759791276605208082370163993207837862579683749526804693121360319991150017428882839838889443869603993842851489993688790300362620177460190628357829109857118528088051284417636401057213142025927047351317697310385636326621995347268135761285558495063918952191163902063666131768961866682984134043065147774004043844917236127838657807653673305799567646352058370684970613729862865266909552378433982215249797816018258351327572638707118744148516966849751708571495091972476401541165749381361519021341858388809389460501428476586551734227780989935086290379564397052561157458236473550118210405301759777364521655387675763966439523837423911580235957891778756657710642353489290348261153386857569488780934501754590062528488355698804552333344890924194353852018305256339183514114179671706847784483931009120902302146961047628693259268789028308712271287167826587011789184313729118003195414149517894264499346541754916567198731801613675936415121634936875522858969579535533557425569442003571587018419601940463626295971921242375923895552968141781110154899350051325955953232160583240847541935590758729299306772474183942339524116346427128664668239833469055223372222392423031124283493958939320867169270873680268210894995008185876139307077080082070137126860006691674752081750164902768126812109647935249698622532247422299776202556498561194674590232827854028010315442042941151289946804721576657191233929782748710292699762579775842354256306841821737556672715406283930075085440980269859758425697032367179904435609098982325899405133217477468417010427923190604283658073111611223341639789154965363591120013458633730584505539074420395250326256940175032070890115065870706657025956982554388881235081957425487874588725991625594909013278403037379238244208113632721787656794675755112169611369419019964351091449703370318212966349511261609656738012584825599390089659004609838100931976131826574518009688598421550666031474212364913306801484756910222658366778573690333361444176815441938650075408573669116848818927959889328483945776076910856701936339566793351163566000733271768980471577729020599626647607988348352126368168988944318163586155223376335620420550324804169897216966147670565999474492556785214341198131086099218881805683388786610473434099193270004523911099455698335141456583377276590743877285237358785206568742747033789515178374725345596310318204840539553331142574471871609005294321903516324118431800859923875721368057668307413284423526300346750780855537997918462913881387016811083460031595568442921485029832323672866221204549010004574300019590459542617887686500488352180861811626923386647306972677849835425723642764701022681937727020157631363531679224578072557742301328004577918094081882029503108082995894154783812798466661432113420619308873933942302188648317191981938438357237804600373244681778851051104623792770360510384305536723589398729814774551562673704871799225417162666313469919588111246597589442178599514235979559262890695040413222287956580641565851786525864316781944235929134745656732552541797530354433278329426503574732008302725165147884443307816113230524721621046724329751729797728718775106333872477874875351918844108539654635412830926623895538666034604359257954300984160257195137133604280712073673423046338021917086939990028594842391047645794404595017046542056455122364597825983240905348764162246252581571170247391217301616713176698718059036226007583461318603871873229458603390434772145403583376512689811856616948787040421181833029494831031139015234859248969791695519338651396890233114311464366272245893413606014526280690322740767845590575873821767320863590286079593215651695030384031974866017436241532919834780892316314964925435582058419979858626037833720808361655890962671826110173279341232810095283551851989809944355305886751328702934667600144682886687808057684101719204862343181400179746947567428701616380514608059631231618530623076810411297187738722122861529311114024934853065675936728841331690257841846334027345631410239783461977172334817864190366068110206972182656086068093900657233152228390503587190214858196134269138428415117520268083961454703695818966663861872212285109450970866345021979808904468594085280120374142895389590786520387693415897905222274860857634345111679635809296620310325617097112639332473145556096846594582682911298274321178430711579656260950439023034431663502887018896284070398411418115938415253014034611448016983691418836216419820742537464173241520486521905730692752279599447686996726862790894591674637611164435051675162622095877602441468683383724864825658579587863494192024514796210646854872369040805406188620332097705914008138750738933141268989445002769653140004196771818661291520370107942198215452198648747728180990914014107655120027270814268451068243222807494780929240046662940540615558910099247289831444405434272829776510171947913600526751528488832745977429086220011282230578597765760722635083103016708121379060161131721369937565829730751080377583540148569690408345308356618239329741988530383348749762234148202985961277187999963103713905352599845482426881108639311898995705174259473401583110959302535433062619836649890965061193848231241506858162830835350121037682006604045406871681513345127904032942423653011384920783644129435369229186720820353432807517401466839201404200877281294657700372930814980054071513614888070400705669773345678352212682247490377944326574517763935710730973778527285886258220871411492476069276254834491775064086115235897222046189243255414559330214686151873053451040080013366280804982673979269583592782517912665985651077370478100693511446753391928301158537928279424107469078844661943658847389161692103612275533399173369781407784457958766716007771930667003875203447824360800125083002336961457457712548665146652508035221064970340901232821526440493186824375784346286904999903701638221661949768559104920595307067706395526915558315061458332352324570918542865055388978279830172620480953360216335956659402316441047768563900277860522143991858444391423748503579246423486632910048604906979875452562434832360789799099404870214820952789728087330889554807208519982942252384229049110505317258227156360411378701828037924631536602910619916114435829005252314218236529135361991158613591830386497170948074481292249741210029324731143758577690960244296104379288503292112945824721434636958627629870722196949480772690602495911706650587118535212363582889867592009141477547211394339526993259927339092529359240073797342594899559317349469563579656708755191497185818106088993279278388384962792573415738407133946892382983656269578967978031455301599196643536158194192706828366467061955397818941140575745701586148167501251357178772824022605361147518881463148860798990287007251500436146227311007315119223721588009271306615109259523828629025977268835811593261429135165332789145016387308006474797028898112913525676202526873885351479878236455363314256996908356658188401820290832509162747248029127514905774552264779293139905194455683888731760682762088654359783337191252416028307959347660505903482496096010199253300370393415086902897016364500086040075463347618240375798467908465880806874524182991325812960311228244140644081522875487024640286971152379381540669275687201318612012250313570892162384517521168095810598711800798610248166545940695605774739499928806536221084310770292617432302833106133407509994988735310093529353941559199866108236894055863243470549265610025337297685177317922655405687553064752283819227061311482209070258178339629793088973471919075998177380533171274639561991224436248278734556229404409148870233500601280969544295187463969058133257751492333715956629068874690060900941649059060789743687506122079131256988097730122834896276713470514053994240256031990039286153612256687678173748829405736827313899025805751922050575895425938042177265547483855729611144408016525563227830983766471353035492367596832939942009356423273483940715434324271373225800315954340879188567520204598676188110578476529658207755057271112476187816654277519916250890792034856956430535609650744956095218285772498073150980660560104133578442980265199433531104739779532495147065582029332551896078803181351590851083421403725141419699312882755268166505146139876622207096002978034660428857981643307207620615378822706850100688636170397688842594020236517390720556952713906833004306621557600600076727264955714758564938045862526671860977140536474665361019510532144344527695117943576360627833593185788551917575872898029056080360863441571737155496852097136502768607795039301098032314066585438664504763759658406475223039872514158055416417930383165366371834427333724291876851029113434082809121813509728763072141414951066531182328778248351950099389869007443392885659555114069134788142963769729111866219589735069974122286123699999605599583674803775260297872633171472420012149262846394430932576442038358186357188169682441886130669067756803276719950621776612284443555610760414053343762439397549386642581289292148234706512522718656480314788974794567903376013419654478791155507594513600911907354882657147540298830941647845018142577833913391284303926402753455768343555032283627091029324703713109005053900564316429055572629715873358489752406674852764658965044557492864553994233483073056997773681794641474373474420116188411979102832557681706514451318026334074271516577531937846981613306087207274111228735828032239647010177985671787001052773911640468955468241337072391414129185291472984371273663804189194192159393273099240951723955761630433236980898243888645080254595418697756000617774826613338116399151176730295144282543415340738814019427384084837682787992715618926809961895831457402867295648875379132605618787135272644033604962951147580957000188780870347439769501250640225073643191864082542145860588430603862829229857782341904405044955898645809553467103255282018304930435331845569609939859215059808262710419890010882386968847774964140136681013500852029070395224075609977789676307161743719994134981090758443181252460647405722007850017432559828536410863312813896298813545840825268328908407343744626860322152608436107887509810410607388859275166669226628806705562933603632664502991829500451278795878778624778365109481615765514086394035964301809511445958437837568525166574003496249794415666591705199251789489944810040845414220399079860160635529033745398996241895874376404335600179122412775630554884344626114847930113552812966134017795952342820935355717605012605161389865789650045521780112793268905407170737500703529474419240432256946056322602534089938899258908193790598722421513157537437303622080355361538714192995583436555564458525370330844763792043293599023086439523754693484578465930237504781185609017530501722929686373578199729071146733044252885932868089477098684186833576670942604701540860626574028498985952610129777562022193050886300594063328360761220028217823563173363696534256918078282070635881811168895875970025681752475514992913380616324067911929791658552426517536888080601772698038734540698401531430339683506541842333407219775577697685517655427674182273621194312635355976874829038438068368205523559407169257411660907251227785075726694422219707301270137361857033339559968221468283683961057675963636369995802338496785938828044785006746230667702178339437656561141637581384280729188555857667557742358070622264232754824214367342208085661018053622953936657597901135886379790107062163862184394191075872090324746290571962575183775835900338344424755089087846088847815545573546772789967762793385006183636538162900707230104039334689148300383157475561567979677360389211879755148970502943442214057485616897395815233213125150619447227889622462455839823875541114633487177595523756590977281496753282143852807379098806274241225803711583719964180400573953170254811947792643190524926971243899672460154459688328357142150413682348081382099260880510680233159402460979000369373698654186706696078916020685207171098747151825820724077222200933696425098136666533826577159326571736928413429240562808269813200503142852340443611382007846518502636182287046068197572917656120660925419046809757323769951902925169745749531085995427619734182810604393810016244207769727402160583967247583556502702992140636025584225201583738153305915474780274156487333550208464334962904542630209237763688012658908156113048675258592197866097143610301784976005569084967936586279295169834001905230469124425713460268765964653486620914232148485565720408211966529295100038047160594246574201530676130413832392933099549446101875780546262621463654172963681262594953005567463338681743730355530180986457259005257139160830297606588461332425152053481892883672099083074774846048452324209991089037096732002852548067414432282073325138937313915754119726955542010757481687418389526400998867045002104318924961130162841930829452005828738674622757597619224820220126750392691882635261735905089408542613960303751733020935490677137219693633658671840114877236774472557139141881488792259214062536313170431421336269428985049099107569721668222990508026405155069385180298093886951075371306885006028914383290454989358993381413559203329507774870217968380944612090330901405909750357433609361448511709295011205356612779123089294794625985753395116506867386960642352523009808970870602943765961125682541665734088083590888294825360204264010370096296626372927768741666073484931576167713537882314156361323426434526467491100580021886408475401280770223911319495077269058914020952745012960152633282392536469807805203511621703955753126039837254801467390875464144454918535853771883273177057280256643360309155271259906203802313839920891991994396406193128918184011170066304420189724099654653370854990081789966020564724408413183239355625707874848190745492826573591796319990563556583705119875641700852122881072443763299537289062661352750461571290177011393528782931037934223192655380924823179970934609680157945423239816153517979895572897964201612039621278667017188940807548960265788818697230279490022715850014125157786468125498613354670141905690583428611801110135695708731564364500248128168001635024966401829833425199871216944724363968295760332311471453276899687964902855403408705011887114409538293027937207807844745702019122102739978521906434322548922695647309254033236529613313039628218546037915895708244595755633679964908561434027681730295296419046806401699105194327123694662235273836125174259031516350687322057412200596066019634858187173990963966907682001705265211975064667894882845965250428496490466182291485074930736017822579696370762792005068349132312568109589996717300039802665191908913581851296426611176461118189950239192085759084111657094470882405964846909008745344968885192203206805159405295028153184587872780856649559954786621646034846864096049689095879679380967953204349231298621317762740716379581994787187715997043840953211406995175460138539519332453252455344811252699923942461721681197633153103212303931848680155172177792330878744370747986307111227881545924986482011668534216628079293054733025344581020379648080826215036749545354013656227265297807810160803027388711871216765498584957477239393575092252364347314007456306674107780929779545509582048333627994691703829547982909277043000189781760052209381096780849954158660238654073176328766796395951760782898592116274932992394520539391626408436614698782339463089100376117283001136670159702041772531274417789672864021840176257711968462779190788735880016132512634765399103136358731042355543523144131837207773141362340411543548680338526055523813562722256209634375417258367405249720181911358925124427869705767349585481682313012605526435618344667190068674213163655666508175104014174783586226157636138558860629555894376923744170099116792728793299242126092839729653003946334749523794207153532180186878152068331972218467689253430171209278176136551155957655389682215886403352486363867960379565545065216263226778024362566514861938875814124378036140481807277546262415547136597352908812471156877954132773998160064162514804480952695103675135919782168790086920266119366195893720877677016070434674043075307095555816433825340738064904480668573586152609009695975395384902833063399099494695836641415538151834788868576121350876013614610996734579277387949093830386794310741554461379481890665056353448880987528360772125172373602139028021136180520279607121047586740309015015360396424120245724255489672824646588902425147957225453043850154736428152620821673320126383709689029440962112518812186067465474158386076856343629779998968677564746468895562507377627196439803511352661497578197697694337997635727891604462499086797828733544446609139067089181286031599324587591507814235720112659306069216826250866922072124271227905547056421467826021310930380626450846691160451548130307322684762916821847417234005031363940385092598020865542927829129042441427380490480543504133952352927806424391971904822150389095282714121596588320789673991870590730220088988146749437199505058543368192674335299505386688727585228097200873450466648015734692097362619765808950296542950035868896027696910106062507415449656692770263133514278914927599210487171834685101524154908105382879500627950018931759254146951687065773365521330386425801190105731076558811928458539144711595014143455836018432244148188450279817857239143745380122183496836600267799026566406651246402480059923033527864331704198468229815800159306597907734253874231205902668144821254989034025275941184664355300040240350524748145497772480447239408861521078240860447691715984107470230222851364529492167932043021328805952870733481085161896441556773466783947967270169581637360469934047149406527062813239360286139895035814256853506325907808809131239348728824908327568832803545440561165376228433683753196020388872453338041777904833912175136079152721742192631792017212378506612224991414862002506044524029423033403055247536450120781657454406370647388281061426904874656225227385314676655577636774838091660091721889076974971187850143511544584931821631202999413562489298082878851988379676606593632905067433828286104548378875875382816619082780293038260003856589330457685846808216743001530865031137295458795796921773052728936942685714643392225643769653563240558342973550059519265103841603671283079409730874886600946850759277923087941583833847844442233968537414334977093826948183853768754550975600364849343951724206463684060986756230704448910203442252482932002894210806573778546323782468930920348775332787061035270616214674553326295615001127240785834234389357769237443871747501885079832675995181631592137348243684740764046243707217685829294967128568093395466944940645721322713914090962933277714338524909198410080380931002924916160228491135815312987408279770787395045891328747393824488917222007537382144035691254983088541567233847848607665498829267832910341065623810830588690959344302295654282141732938605647389285370522846687250954876610109707536633092626449207479703854659744511628278235319022359974663114601928603009889660472524271544025427740972777745344244617388131742471982591952966687932223689770637689568221651073998051924986399801143936733651116031704548736020883590652890860424825380373779446278950512186775758850251721788195925105975282339884800896773383326207241019271268578903690062269544575655070208557704133447751050331910331543018175241143505660497037235624000423928240470540541909695791618442804863708646015897545433053614852060299129092325483974672952853663438573838718871145226468664058485038406085015158376426169086208057857498020194398503433203287641382899927616640112943405252149968264773449035787213812147515062041416933423587347484976573675366943976711111034486069221233716237756009753549204899539457929434055152581587427306195717002171087366169926492837516396187446953386266057085650702338357585308438293712669008390975276638345152322903896372903237036911483750878948593348212524779394888614463803807726253747026459906892802701350931688107929340263012649522805140116402500909551902020757481031877827159960278993030897406977824140929145406153003688962756929564124785234437139068406937584795438948375159004299251640070538980891808988023972960022811585419777202365178719146122126379914213086833637432271973205419992017566336047903119270821426091148945405648426200340745116167638309386686577718404210292301044241533419949387874813718315574585493480022469037536543086677707003253135531649905470969562373185223018903693887324840087403066732814439912327041932140161566207986986940932926847415843228065861360074923164821359128676126538555121794696896511993471845964425185664146605801056221473536784269982342364994278154082424272947509494085394905508801214970459882417844434099659179733414362114873061339654424535029614441609576370672637034923652208080851947257106533668309281292486755425539977146974636144350694562012202313290840274838748193272827097701222231833067813520773899965579703141631293137133668310569655742595959378249018027030366381940383208137682638284040391612186112084069794033691504217183726190162900635728897006650483789815646200395183959333161699809357048836123038096231258707451171570546552358507184597789333334118078280040001812875911431827944573134694366998659578219913095245101492672419875434707854608117510498496920046605791006235106744712529929893702185116839460249893913822204193455407456498973284779257806297584173549482969753493475531911799062604013917075455103712988991036987001643858733935291149733790999379573653441975441761740225901039513058916122834727584810225382614179540853814073967961114371079965299164922152341469874146170154307824909086766253793002168220355123101361654772159609326438425215261695029548883834395364804637105769183231420432241284651633818121635717980840130206428253839336528477186769614527614092364443637527778654293399497671020687580530806117526172291467629309616503592219759838235080146703039276931646922300171604726190683335610830703156247775221350748878110677622131295027385018394104766552439798660578028867998931125315701022366383042737476379458252517376281223927548253925938814330717215143151324619377813408793792819230115101180533932861660281917748623542403924651031468589455561066669417748858487790379525605565230472035273017859403977173179966461354764096610351921647750690979309307299297704217072584075676330378890611603649757327374653916970106914067538889307509640631530915962604576265422253770325181026744163993415482574937677264759086226640472547941270482828741668835450209776461717940097012161518806367284529089062303346206189672745863010082922409754956759837339757972515424841226465376566610273074370102028978333373355063474975531270694537940153276943819620217319689719276718289272955487690548681602994615843780185206521362382061452664168696589197033548830145706981543411136046648396219112786928650630452315097055706680407936694930381733961785857858511290686787097736058812012773660478672114311281735373924830777245323103444482042782613930372162060798482042103738698025352412248693827968943185183093083252320324499681623069225754734389880437027313357710189954330663841832059644767639039352468922842644285214414250436540053284286992203975457626830423806435769834182354519570645853845882420084581107813094279036987961621625622385872235429267287647522859368442188792328239443618196218456892535594225177484342137703313736181730041062164041399919939207535696519047601478284160442101333873689006291521467678305513285138361764252220858947893804088689772199786551855051249769125136627979046324201155759950322304314491239551830125463828703662401811181389239795703895727908379265008350543982594936681005925744885344192549782919704229623715947489287262563643737304132956086611532735643534119595205095615399483841651376695061744772036912267914043754500737439907759922626522332474340949818017570423308630742402082399448300804478830385636995332048047432861853651354314734622978028044236442481846155598799991915384836964850645217778816746630087942088026359336364051965321301377187375593036397682558442589924910364666933386115355750193363441020186616031906086786649497124472281629290804228731233409325080810671206275226464443419643996657194282046765329539874515456115365002337314410335572369707944426258342630042438997152832060507878779829292992539175530138861775859986017891303996451514812087380629706693515102797661505907359405221363723106894871369522973657922890178586949319064498909267653508777963300279007036782196178892167371178289392898427618280045785590182581914126347672341160491263897474815794201846502227561167082613934911943722289347502702381321136421766402423149323793882221183811455648186215398354268640964300766511382932100466196663289756633942572621390784410078749588637261995334311260257339759820707020416768496437213255875029283166666222081960917184295540471258339503827665066423591907352412486538025117918712861195059748718991900398909926754144254955230702572589517899415724735271138065579115223020748705923418265498175101323850442286418378790739238110701413254362807902141331237915350455574017475139727067055873447188068844858336191401724694690651288019838604142667807591903235579326254287244030836546174385005931735516494285778219236000506750450453362268924960829952400389419372045314566544462656232327726552898443289442227752600947730232048548422904100623234889320487689174189086847881815568033231279137727785024341071768083400345498614018846288638691974307820489337504162917185162442223658184639496837015062142741830107237927293139231583435615186386228322130315572876575656625616987555104965952193221891710221872329971214649252804604647987310982815172212174255398088283422875798283357303003083510592291746574708135628958660255914023264499341395023155676647017845660622432793383197796145323166331143211678997582995523923060335160216296595238124636379282621641643600509885207997572518763617861605090329837098992998629178509028703854678481432565056330621935869463311110291887441259781613480865713774071967387740170138420701891789164475988472630326016730304835150099152309241540406539182811569383696993726392522903305600869750394314913367937626972406084248974670762468462674466200762107542287418473383026463345329174884899694772136120319818712961416388145531148249426708210962846515178530433782486310237736322744554382283084701144932365538708067442823981336558662811807812838777322490807729262593803825288836067785937103850803730067770559414446388207292207338225313414910786379249497951406463536738112419294717099236750022380403382571942219289563353252447716321934828721181179111260961358642410574122589056400562516795877250185948075539223995295582724604919882757994538249442388920460427028625415548384850476507484348035927984052622893464951247271037397633223437056346616748657700169795591153331891132124417166906971451259201132885634336020539231110081759630970549667465293616511203393137673414950814617717196441368809586430494564684708150222673934881589840245503399008105767021234831126209203286840275629949812267739558237914058185734896358059216769748992607473396649245982691106079399921199339864061362318736767262297914994045758512999323218175050735029002543201956892694101446062555950153460876799116244253665622673055871246601400515502026502380668409182468363940905067852796532444473261268575881889860681559666071524170515449738868658438321383474804375083758404599194879553901697398266125972671809375055128012731453194214179145082331300054889480489944064442137469782528754808152038290505680098441386398495844835460343058439695345260183446137148534331465025629745529197293249778406188189065837408415241138620095600301483893709106553497508300109028039040954886096567439732315608415355559122887388375700756197287627218679285835780890581393965856418768835973717623478149863880033400472173210100833113237179579257659982641405898683028351755451955227769797749255991662021231929684674818742411764842178544652166243399165728094165524373004720498084328182538398629827229157609935504881586137349066570904167062158954666930391983443634794949302352224431980561745204179737143650335333880010038742039108355229979530177528482203462326911181759998492994320256001044215704087358275338759011314709167318640114358824503967004474287301476319127266613059154178232595228684016854014433967447583304201811181822836554731775065534149842026230837570433332908673051738554535810816422641389667010659823584221934765093609457078460718624528709312915782313289064635875119132034399210743839967897814505089105251215089891380927177514878899074560239218436347191130221515169232478634979214731940551696622447556755315727494683108635705904468698151616908660561830877865207701024463874056883682822093507162673293523550270324105692490741132817230776960976175204543935957946287319097462097679093610301823885077252888582264188645191202596941427642778627099587811131850230961973770480352993198289774903160954918416434007303288991951994295141152007363532570751068937601725583839454283086541700980725630245857223728105210512307196427884893373223066821592676618111095266587388764904679419654925491855141044890008070948441702274853023985065645268957098438526395880070001543718450447529852767260765866802255318131828933951723241746043767029341165317567903312552111883442336456596941446421639134203944176532291174725006641678912140532822434046804694957506912273044537280961540221642719707863253216577398892972386732588349027013612270774601192596714469930665904922289082769291462727167539179056995212480189708117313541713734840152125710299304085839388593684741079595233783472835855965137752416285667999288444059947298588895417616416510187795808547546896698799322390271576457783503324672371291666282679224684017722200749749516425758598602805820691279127392335125444208740831287506753432490735241427299541465454820345328454433960730653923488497209217952517387174570471004767740335061226030788134485213004779474855656559230428228694536431082917827083831989670560066333657527782090447152155607949524245511189501406291003716691679192679932283945138651544459210535273893890071699097109087140893093692983554416127489376478426029894416359514944160945717970666056567713600179467751398930728463166447628459071893132480916762895788663920438109066871950819587152811861592616335893994695071119818479302523207735828872670234989919915123091166450141313922701126741245228759414653362794821292270779720630198179220181630216961925218498679411456307811600758354926962483840738193779458787647806619923941141045368879754896183420160298726468852550427690400557932231623135153275134158934434160716434061938063560898047420724733563430935902922547066654442979528884619657829862625113246787617508715833916929444130734337873040602334213254477624507847423890828437821896080514917964413761294740609730146679393300453084387847575605654074873941993843933658666318019911531702141794384749090268016997591675517061649366943913727397417483046987080287218220186150163222677364244319851236641740944418512497153774251385751228134505140016914218968412418655654908641288862402999022745032886780386674232754520128439531812463212378237505637371498693202954806467896097696828975931049124447344098386789743315575210224880975330002644947145094411293226762218926836857333742751123477885982643691822845704625266633173054261760140491545559354797174484170697657857949158281862619545369934212240097425277737683032482917683168062776799090749720932847976293508927414289699536947167594905577876902562305416542981269916529707212903340668739114511808663138854856895056288124867627491390961963239522754917895638596788284652406394718610405198367041033377960341563854585689132831539927758089818300902703816748447150890972275263904080559239460609288176070535989197462685909966442181192623641471384150296620546216394133633023402998464491516493543217285298105525230628142807129818000935850661652190841431148302475500554941227904626257745079605871168310669387313145949601590972843977620683728981459356958827447997211077910519225349400349879067043638036690046574217973946087004045135951960837262957783875140626520884127640023326147225586148086992211584336577856865303975017932403511897039849122310832614646108447323200997443446011422525379893962052718797228012238381055143680471214762839211649154386659682680678891378324472434137715410405366264265548348041608580900202762106229611312878460473959586516727240063299567954072219195020029002426102783474817164906270457726249395644998716944470200298772881931279763337092801314510220795569367768199726576355200555887088682903959720989895625927175987332940327213493681067000617457240256643539127957317235329116695443619484128056331036949991382027361110532571988462031298644826099119776493342213993716122973745308440828405173497499203588316700716470632923035616041229503990814859431455587420701396457634089859611598934710064578861127200230806615870315458307631138563091924117941645480060133541029178559486499257783288992961646204339914641761191366993636980844313033598880048630637151725047907389250874431832106555961080055548870262207981902282551402860778368995686819336624510913955299506464141176829640796930167132323785634081807011402388111586062970173402906270598640103416412283775321584355694530309764869354523337441653788189570740972026770482530977348691340160951463597869432472370131287394519345881252959005697097400353812149276727446178811360205018591071307675956666822718758082798296624295525782745162521948571343641718810165200339753185145027857717381893372991248094780979512264924971899747614665709505030631550302518165091499137695059676025572539555785540301162958083445565429665615252195040453575697352965178510660224864700852928821132809458653446206402331866327892724572635383480447793415806494211219558612061786967471919031610732535555704379797258722488276150202973168697363383184700235500100346349675957502921916903808472130525572280792089253460187433746652825944985754922975264569318912762683881154072398947990335936276839180674152355640973163873022414333126594526982563315614043875955093227673576242834515167653357038132531940317781308166954626790338366117463089309823630704553842245675913945637280059977864362959227713658525909806599019743519383554899285275994702814338656754311023226133236922222893199764649723332050911518098965582995989334133844861789168237817608763056189152897904710601561193786485924333766094020915431672555945383607122183338587829970818434916737659353637013435691099442012762332186300185845470164853679374249135308826580056141794559303103124612849112985420930156115523613311569392682352187471952470438276666104094600414667019706040663946149355504750105934089877739693685034531935908367014847720877548819462449262740015322592297186499380813673169031470438933496299547642553767950705641789956918455485853887086486406070298622379969560900286054884283811605756904413244478516419679973359471036765569313232912705071445412756264285438356743784858480221373289319875652690197301268666607501853548055692699655712674627646895191619672017469918664926816054221800359414518430066240050207563257043834077542431864740661330971791566412034204357939294054983021303113624563491103914597275513095622813218225977424123664464471978937773539652039117695613204152500190732370843778214115764252620946435293438790251688077785077987650137377823613095032353133513080488498176154446759745963806718831230793478904928998071621530049026374898649741636808953691528361303224887245606303395416864317700449296457120899719924253373235388704333096249539723179041300775463552524868037384983703126515687137346551368906017665573648064829798596638504081225438066050818960640053595814116063366351456048834191686502849878021121134884865144520082869095682744793200212625397328126700256254127862689136720398851020065580969411330774756070671141205218126901971945305959543668534639563248877896702347456682123244607137803246602020430953107168873442954830777550476126150052458767285440516129441583873099097402423269952312073343860953911522878575719852554139455141979135334484328426051290598081870707202723513650181038122090451552905335261166339555547092339807242303731883481352130954631522608198276302443621006925356963710390125002174227754853753805881816614105439452761337445128752986322704048670675452986438011160382784312792450998601867111072738473804827337147701768410262426033872043483209612120474545446050395230959290372864441369910940848944810813658092398245810941959398474334441072223198123758315969693024233337635628341801519456410292758708414221413137499322855556507510993088140888014278087862886479000877853763035220444496773913932257163715458368432800490073320437548075772421854514308991685839812687540850190582969961357684192857645150296410080366709400157165563545491071859366163406638256199823110927186011346137883901874826378978944584868402256583128654608517166025862562383899066156147040230433926325078368675798532575062858533799651173858738464416027974591136064425230016981874594374892590523398096850984326286125356435554010277654889030989296866537964491063371692767396962057337253629948554360797881779365233970905044882241591605812164764896150084892126763297677470671712402508245538243921124864555156705015196372659960757980555158896823050033751519083046729611883406391835955184646829637892155667566163835681036124450800410352088730405864225401232362591249312040541542120655743353865707072778348258091296632631626576956470773286698197956949384938731497791614091769105603363829767744511124260256195998431103672270252402829566378451967918003248370393748473416383758836457025626196628676598744280917879297652392754750251736875127986427149819410850458229234711758469089812508014012383823117727071542718856743504483870569108233978227977585576998819491098844203350831915825186909640320109108677532125129610374692780589101906109391080131218572880172282838255663118110858179853079863462127316936253270236554942655839520135232256000268482731542881956329975627395058675209539360365745345308323297713035054583938442296499297655940384971661345495007630821156220415623491701506150109998904013742370255924263109179149809213552453510560542245532276279052850554682389060891864365280740356243446633954387917775590937668314748866721989606212878397447936747482266722835963384877922700025580784142816990192910667647009038050323182084504805788062882240726169992563559726357540207081630105050169045102835446391006610172291671075319450080118368561629253124384794790240640753551668724666607793656002073930606815320860757999731344811684580199596339894686334670224793492782324594972910046606612759404356100001599704495649770010426828149705641692342710449058934798445380237092570107960506975458055934096925353187174429725301344529960118386253387589322735154966370432623929274848479253619454647389152202203439138440788236288681867526894984750008123508573792344594419297016255953982178088403548416738339733557036942620930079310940327959170508074934152450954623071466229650209606604258394229896906322398597466702865313805659679460793934517944020572509342218459233608877653580355325905971255178932470350143140657811383412461650161059951012414296732610791753780918476801030080878652255767338008468582695890917303673659854528742648711349577965632537363223349099398857019777058908095544219644548558292112292640174196602145834085433688080030554492688529581535309482523890205857207315880404313769238776708077823601602307710532943428902544810950059161840083198920770486961440742860230488257164787735788790291697222819854932219397705340990371700670344674977927068208142968928804864703126148522278708198588190923250718088052620251694439441577883792997378786964805424529324374762061788139432104837917582156770653730008052609736531658215772122670012487525348037056993459601531139557263728681587925776516451280772346252566008483700226538250736233119108752593243780114129747274394554395169451950886272878967033463957626311508894543815268134831412907871030044323778344157887228248680759427033185616114442996065049193828305047136932743915163332074287124924392243756267491166606439701031411779977324478977098099869663247667511275190430959640419855201824285410222739189628298399037082260056029308915587670028453999919506485213654945895171043164746673852910488201355238460650755345091253414359699277992498121618710108177154451353914733241872162399785910430228172257002857465127781617386868371251598219081070203631705018099016211451671613605141717310941700087003716440822420616016504299957256289655656885271913108783595536904349568712501843826914424172114813641644035541126183020085318875930062110726206605661307615400588867299556545091087872310171987965586823182502985904350905606297828240680239296022063586909933423317490072857704488890167251227796895983008282887308124702456402313448308488325452307164237604528441190870995316487455532635699334042236750169247166760041159848921185989831380784054988659693954593178311480766881418836779001622273475570694752029745875969224491916346654185109858312139684362564443670115387637097717907147745951167307113790036179697773686844641372798668799929455996243990765944244111887170792355945152848230932764961889573083971614980462810079656447523123608086800280097154715537674998060736898852521019921601529648163939291374375030117995101337056178905363404380266096873709778050426066122528889204882831843182713315213922408463495752921226623226725486513154134802765932442920357759657650223290515620883297018637464521266371938235106206185659660139485670648992150067004328412661814886791237393742646792519210048672216666217382750570998069772312351633468041336966792063754800298761166609319480794670239338322349217615497112516407463015888335329050532734423829675456094463848439104293915502683993655559277089278128614923464674247902122076931029572241323157373028969166488155287180142646116544646485233071301089959654519281585591346674622814903030420439441547848371282459041011055586064863565601890348127716093227038738412376349129673128783603019677340221020427160661663957628882586847401973146020462000990814600861406181916770236910280982557735030770476202414517677018602172625240503213059119154351758987330550051399009285745509142505671594839171366242375960444959988770533132880317449205212058501610262010010210170379367850066458684007681435113901327187820457566290849852944703792036547565840134807831675880386958797311041747284228651411484095813865620892976411194013973035698624522396379781765924636107433689657253061305222875140478495789648755010898775768995328102638779009969387646386611387094265680130673645010670618854944755053551505303160276451139146296607054737392331504772029447630313177783063486862336634938361732062185407311900694499233862086081386036728715249618188392276058772609324797839069517386583392039437763858662222499232229428293698192026202250907716777353757054656938708802886714875127165947087827195454524307665867464847516971085647613732465069128138261467508310918821675781778391068624030394042941022165111029101714973839409141033113265040370598235245080541602322920525994986035844792568781511922324253970745270827100384679390835219022296218014138121279190774248163659131879178432645026260749879224355959978285407147516326677280991131287140557811835451547300750846329638353520469633280244370682222554659092590778025689258494122065971724414649936864826211445493516878981877367155723487357247948748542982469809224212963867890732440650993345682207642098438139796244361036010252415601888422554862293988969203165797843766571641530063222756450544003851993176002348675620458317275083093204030664164732627008457035776681865617516096124220141254584550598030676667416785083630512401293502249251620330416083192424502363336033204192706081803007618184138268650526805321207941145648696066204563915232987517717507759813713585630747415740309009140568846692449919390518839240224271131254208403894495177093025293287367004075571067845426571702884420054149017807954581076584942164860520422851067767725441471258768388638068842200841017681420108977485907210930016710563541228524447399028479671296496166245184199447728902438623720277064226910274590545526060024543641092374439938926147669529998696934200164499211492736779087822696861666409255121922103143548749909381719877861363543958507154566849874660157814805307660520201253760913913489998786315671364245684560583641870928831516100350057197505854791669710782171624393238556822776921664998971300657083160271670445305898415863429813542068313861695568944717342721198137900687325683778482101063772836592926471209808231453161299015972870052179135173673929520785077062112489642492536396181504915472850980614602511740213285245791092154173297920982625224276469431189712267258610512848048136781417764636480475304072982931120951340141084751883535861788201995071338988232136608855126357619317335885519887112606011864783398899790213264514178641227441472031533580903494897373018274856574792724740992441190261779800874680133623754367284450946325589309401349613602365095869797766830060045157009316690487623499340054618501134099662600480737316679749758712909105451381007145582765956957580376452722010374805106673666901158702969797087287190662969372513334825657432673098456771865373346567384174378446325620421843736443840610352269279552200932249439134806869568259296074716420333970787987761978834635635765521240338524421576160275764350101212745111102289184860080152599753009512426642624423004405848603780676673460776284562215742738308343553221068817073718102833948268205161011386682090351890622929502238272476057552948807770117856569401917415495485057743163157949925913166800111833219125753980351920366440913034160104798796376037245056125866096658149144421464985677538893894731337644417655031215317056499883789458946473501636028885309777583799956023610472051791538545045304912547858677380684393524267401286461107553199290579603155239121106519452946130927943720476804325868421552253508838972377765358576818156488999754389643868240657687809027185949779655061681163130785480902212506878104025566614428028504595459081194145240364889752054035924129772676337400660906540417192722468769944601309833971057685440736321730295780699322754870237940659501315245509783266696529826850959729469456271965534239960162295590378638886524457593217322896919086437459029724045884539904000271928946069014458145082451475481984394480407743200986973199522101120090595590174307422668649631195163775582525611603585177185803653426585475229345409739710614672049398944911742192384353244735317860408494937746794884683319349866461326889139132983699100046126260106668350147734171395056170355926274801592400023668805996127022663586604749625402023596932379547047098372811898909113411595435303102843873787633007834842352283453713037289214211145478765691309488451449117281880116509424637144651077161918578738167721530746104684838808107023942232483257271537018002646795853711129406631928277494878761545515808854228748815061504806593220176569469145011191087754772068098846554552014115750760791806295468081659532679076154138362853221468796395460633927086246315253151104283974780962406732117626882133168251518287645913207721380787093917341221334854584622992149747114058366648159689033514886906055731048955287192467858890023645759961122998218776893372262344842805394033930908921229178428000664415627110775318031214845479805319960050896514219465616983091017193757358603812440776280251009401636889336525169422133364152974625122413204101724467407205190129090952583128578877849652700551199127375747227216067856179402724844486397972337420477510684185712308503362673043556208893019835749992724861230406429928998218092521863752271705297350590115931334200430756598184260964252959697776787336868711146408972795115340196445690357268833190351390044313804687121003606308907829405533485930675181653695518187562903183893694972278725784587304004104341802411860864153813960004666693019478488769919717376360130669386012612474192325866031237833321940049717814053089830627084262164586094388521955309559152831290903934845748647664139556429987572245153807327530625111322823671779862416557509517272768740468157265202360931857625375427672591228146421508801712758586727355391516925190588879611397388492227496088131537717097829556067802974474205528138554920506497873090818323076513931280254325078089609137582937745703584136965957640940723522896535312200917299665432607265778458766853241690941068887903371566687848903354884391978544399064334129919677818105523818971918108842510476391628076301040100648640540789881340389145595347684663750792236308087963314795963315929471635383322397381272941551644466847168592546944716531340622423165532224780664723252356022533310387272254989386312416732482250912151891068509505642384371675771124751381882075954896345656980479043815355023214982999064707905056541794790780504237537322870414479564762353435196435400415249280460281287923743047351233307570677344272717118805326913008869902363035692093135447764400124563391910159029608217506146611835330772672204583221503392671011479262982244295948895345536802810248680575870984977681800712647541227608919792134401994024144022925916395124648363613021686359009433558890549936786177009095390089775636772801266236597978333989886011737687941742310865078029448857151802150824287567041575952183651630753376874118958174594013972098062159734799001414324133399901140848309689020016897259222774369969901025535755374506928401428526134993678892746380191443430030181531151128199895433483465426165901909357214772929104823784736901599906338599281294620251781308759638800347273430902664652319243032226937491458365598380249248703492346388435538500860578463036496684797464665434028803258197739464964180492492764993255137810080157695861146949285891281817152664134048146189466596350459131206855195174054271743535012543063164529016383825585438476817079459074741147290643212617657828805314815627563710970904232878081267014240563505272033386404072997675457256017211147175284176884693916469254301629931236954595144808683522139725059820055855064722045224603928826904183684146333541009873629563270484046793445874765964159254251421213559473754844845220096147912057870067746402030668538314218546979681709907914235919731661883498474472334893125658879755383115991573513434472966076181029386495100575554473864372363194384330376522324095989983307400304894058482300219855020441257314818535413962635016626629677596272142894778037384677656841866027201667919189523906022406386679496765688772089546675676733516706395074112267907960046183716891737885325233276211878789870824529944641035112915345353446903093680740848182986578834554475801659027436604510723503849891037318068053900302795105603406113801520829281995265113513822109189779768467338965983310477117037152534335935414165736861867132642771883795503969964008664958345648881248437269200161108980691072417683256523073138308250878005303370845927641345772591126187552915881502529054234730881894429171973545133643005488294886048828818660554202364083124030042657022690079897614579817875201164785089306043613774966622877472418797749834900041348783882551902382831085358802231516609895959812815655191805665344582650187068645557265785952239236190603398555557306440422797796244072201480904605414486601355289930698767957675703595858015239602715100771501254364399843008144887069485284291086272847122090470722480716653027459076772827818644250472644514694796086059338998083244989980101342885408755088941315834668717682968909148739883502334764257093063760139341704010437467251547590895729053487299593232816691078235188251562535898166562805772877595671579578954763709656281743888748883202322404936191768534002358775329332463228693000983701391244480424470638916008337844140956299794446609636295605718659009987413984892026243719975413196882995205407319892735441631737253352199869780942898775656569680457022389875958479192414854349501530470231477776601092603309844984818512490784945176144254785377958207975243096038395437851257276270433564086208774530942911156924114231379973607572061418834495954718251501938260225261707523565096660259317504643540811885010971555798433228244903454777069898047198821763027774277112245565965894237659858144298298057807432266381045281181751212970823112211536404239879377109899952184852599851610568752508664591254095236708209591920346082865069753044192727058792732799859301192296457119921170707604168409696856074428637851874868196810952956005162754853817608159494572505173615391145367365098840698295916873377093609523053079859487523732828006204678515104892207421261664440554821565934833475281055696197001028358931393443875257681545332692947737326883481157743236363009305596519086119707465671147248459734841148850980256954055980380325220463086087421865102016345061610780350320595447216447875792597452681933201767916489611702776666182698930276898736012465491971474295053936786996625416313885942785739486033495521698030554708848682177482954158079822742401943058139657233893519251385355369667422398004091387612006078791997979662605064644888649923367061918835174829358093045919356079321432767887518229003586240609248761575351035356057449786035645017556965576401446476289267629569281895308541134832807678241270231397923599671533772739956916023660962382265766965206980332547338843159275212800871860871499866142941504879162794899791317616784752385362046522801927635100419553465624755171135362271178319660965751135819488434635542900345620024320350673937386607644804971962927454046838871674815207334869317497470676687384170444349703430048265746332778965894175691992084888080530011220201344913732020682889461686664736599905707060648747492312139918375332279688251303186681626033649289513333599450554691467229748779904016837884042565337224227480069641984413571612158050446280848964542952769487909367420584286129267119435720564488860205242664638849093467489945810641518644920355016577104997043948730322450189919234550648255845537786989506588989107928259298625887859156887567684942955708794827101790759548768151349300371421193708267657553613556255462144814274911282442746026862661167504505456221233351627957212524645667188116159690554618209160961865359444319981246188808924330176628614902551498187017335177543133288700996085421718656552570659135763758370295886643916266118962810105965702718637080880846882679957290300866899596607371216600664853729277837934786940359356335531453862319241138464970134820483900826411047757393775802688596096422115632291650444524428519536786141691162455758057886722380084186768137879580261769470763515956980228886624311982221737902396685814729123429189715849814975239076978768235222258240369383010501567457739612349931115957857176569380351848844553239092944396534608334832069872718693641946715981362564264617530753733458511565769542736986635884508361559412417338591377563358372990237416799005828812312004858513756232376940947467813603694121785378033834418106256900506286244674974797092140490919188865137763336006947187121715615377483377592317498423649612936908763890027746084038956671908118651757874403849522147715230036798609721399779483926032091324637669340919176456144112434051427267531532400273027833882899386498447139137465723403200061134980432696700030058887151098744423630663956635336522912835101299980959972268234970632303791388277998657935178318225063594663466882615239318122324146548602159857201399814440751872692074233077704837894499953462780943324061616445861519332074508413943896074124698354474778410289834356677493803653691771247366665987096668446477668292839460167307365776351577175593652230946800793204720538326467708446397574707259164520151042542314836561253597531390487763959991832337944130127783227048970642694048430155381691262935689255788194415997617184094687423693530900594297681822170711173914334673926565151588506597527090814041078713009649201122958168776038091971868575429111786177270461101690756638290699948281338378143768186152683880234048469761931521068779397350841035667876823493331783362464981734696050939150670488462191982729723579079489314184664071553864122957292310006351964972284060535143151818544711026332766606540449392323950992728199599919590119746266681391411117698533738161285136499663848816738425854183857787145529647280611089582604794654434952494455190075212517414749919508885852083611930775312269883503782661354341227845435893547572565652619170330161804154372229955477439702660734617475114984835902039121779050397077326692828727533484924890140035872025633176039641835492720590178396799215686548315492497788414595707381746549111455918271683572534345955891244533189695094812585849970945676858838784513028049053433493235601635903198346194206992553130323211467134865199348503402054822517045852039348961493604887107410765422387716056700862575215680500203873687614150418235235715717107600974714346296004166314554931717872662199777302320129615827121379961449858558551709734310281875067899377534986446235875837600066401696574970497110307113666240511896761822650908014997381687126733579080644114528766812391526542154196210984400012400678107735841569018316402583904004280173525025661512470840397599183079090645899694498765680216972234974445712257452642633109716814025997268386303449178647257956090452273191240877889338521704780109007465525507442295051786809692365397570377543340521260638807400966996819138211228906270011239559288516225751350427006536507971611597125306308667752971713945466494091758037592084939367743510073722521762495697449794663172689373910532653723115391389642504170148477044166320838851841155685102053054758818081796059180516073898964913962341100984171076214800195108782222027824918170123745675620449809354976960952378370917116680823182949827107324614385244591393447065255440911776316954536237077009451769107915005761716198195826020795292708355677033432643502018921049221723319077314785447124841250953788095742914847756236522723909690660192789140824270523554719037711829796484223073891167983461838980699844559885784872546224885907947331347769875173727278532099273984276168635343930736518928412048629315702557337448993507102084821281259203309495659945598087672637519852726677828949913550714822876228714097801376177148544604007837275359455080110853791208015804035466450642435336789646406179806586405454877496394985982277460350867587101947337496975748488450161775223193588657555026656567802434392327550768082461904259405748356408058843684944525180365310999817674084184851478987260910802764446021808340852528356198206537204252177201491639510974144279834018846288091308238621700441641782462441979982494913852161694774417642308741620526808764816515017822544531345311575006641118532077319393287453972073249110674206397636808071626439189881878860553460591965887989003922691530906753918064382068452868258723985165054612488515357467726869066883769044042198562809296836693997266973425116798419515143341706024453177977132370085583250812870028796125363430372060478654455903964732279433934357860071348489607012203905555555292951798273184414056455507010488191093336629369581937907832532002325088234621851867853388339818818752145684111847439647629367883557622383736839987774356302698576795823571050670127616299953360135971721126036039278710409261895413319277505345482060158127359152651470766518041499043905490657954958416099854100900314279684443990775027052884170510581956303167069600304491080095527328148048351699923170948467968014256748085727558427243176865339513897652297227933573984421131884274085530273105684104882641739750073228625244156828170138392649889356107433725585710788347001809178526029682840335760112084720507577795682522839778366666708238596047788052844379955918712582600278286714546515378399343755412378547085053068884328888246370664176593400468976585208613048893121609535924295206040613003418946207944928652936471576629148630087518132319100097434735640443369449066661136080439759005450691367859261792777639527275008079058853037933397695828599668431174831019139050894851276406429077790985414002144893935410644684775836786678115731111366134610825720217553701090971503790747024791411225062194244588930285606229346316380186051150890553831251207166872501229681499308412644961036949819700950405379204684744170260861961067368651831746806773218030733987260976782042205806361153962440530113244312112761384206120260230991854624766298936770518882600587259706193763488652558828089212121322112353295916041436410457348167532915720489251143726422845511064099650307912743681399336073444748368225581929475032214585661460831876240197728043085006887720148134169755825301905238937924075882888799779446517328385325682477345859454099251788964080483890777660225638603387221322782432090720175109182052751229582357611620069298658368712745523758426807132391616680731705339533734568986219910148525811797335014100188083413368435712766058250174841331301812786985689133050946336537057810603985486285395947550236315592089490359335319666891191183541335398518723534828771643996551257697973425293023180012588282561468876505985595674504107375631363471312562045361317166425054181954531266527729705226849479805911918210759513472229980775810268842847818855217690048908204049884049478457355660305488508263947101390623484387251157004317631043037881783164135198980528547362016048506632924093791029684313830576627334775545270106459187174036659225747606061070964703707039858003623465048087150489663505833826878651294085681890474772678325968672840579912804246898295193264564187173689106395958262832215789993487073649425161252933179929624161845655835066769311168512797311599223669067467823426499597066844121920180499559925594898012099192742256852740335084876713509599774094081970668269498276483967895652579458782037182309319111293238627504966353090842809410161642848600782001071090228581549828726739460371425325254510081800891762637758593267739304976943299576116352135257590449635281267812364223698206313996247109189772863795152983719361056128676724151732613702944236737136399535579381944951050034052038868260812084773679852283582522495765170030717937875410192344461518341958630023337235335381037869058603196599117088495909030323554041575734217876126313015527364402956237164922493903363283443224935759367906074305751224026986532325393313390140036895645286860677388678669610659410900551920457929909743729878945974338259283346270640656571396665329270480568303566423593561094321393468100506239381242216266689979090267876982848423742454566860249234236384979876613183361400165499724626329429515835168410038945729850351858142328431378768567543402851938111835988225824248041372499584375334756710563352004183944216157795800681517388925356459723231527815180716883035410236254172138978752815416493477316680755535756625989527136105968717955350918667942136979743723099599304588355827816810268845941939764188393678880675147405268971065326148670297424732957431939134732667046758543852713516248816364242397954002744590613065019430319600676338233805498491691166086453083930488518674949241848149281287472952141663600702298799619605507158121431534169696540174488144943694990020673551426288181204177125318914100007517350776831051756266702350017535307088535539769190297055430202044191153872025577746865320137704185784520491931521432787926803241586403931786710045458118114639153472603431156053250760371211102824441992613017361992542169817057914597144132752787316302513083981651766616478280172679286191546820126211506461901071211200277962059266538801578034354391309525803148357699634815839069900021353183610407170386155701630417638284234122300649425781402987401004431827476231305846230587648998384254924538264123052808180903945756078924891271670874161510333493829319757504175486175668786764848452256357355845999970545562513912219195429190201854030755812508081790183471982209583515385234117829255484442212662632339050308422827964246093403847889988766669661700254120677266986523459518025279066290007632238004255304712943328812887211583263408305569801980106461079511971512617568940076079117897186140485141622331996552441391565555366963699626487925760069500783677826483797025601369752871473710061055593122074404683198209667129249848976477267076118695728542691166512067833453107083632017659275120305124439062879484872429849094753569793716973092117501348575676421367820457574058905380210713786350944989894952404941632861751769091185694030870997850363389792216052366794476109034086769702565626496762244987800681113099231906278902568024456283074193143532830223543669595457570298080208799230388163681633960047919229500942519274054551506188349379088659521313874410011109992197352600850451661826682469730342773733088429698949375485796868846450906724250725829280888092227611924516372690236362788415257299931988319952515662908634722371270911645071928582271782143765061772836029616592650318189286706075661315944773728823909475120247290045661585214644885238081650528905330877175725901294421320416292126624473875676297177462011527456790398863237521567226567444794421901747922034840407585348801019362415312860988336510442478560865489052456383014720339825686488222737817919961039619527536624396380368772588001059560885507303407928693297682140578159717532602603602284514682474078522270744260047952368732051444064237928712559095667681029873467277089381727400799241049488695585897008919496731254530589026515764605346067893753914360718691535487526622326714913194755673835429345474989844618663955791096907921285633738029677279640496900390445928949193570232771738339344464706667300275330469888365238744493662631707867393176623471143319872875606733582453724459355391180022550337553892751770777410028887965475326035075222922755507840623050506952827978607130867478788101991595838540203261302313159673301705229092743808319357073219277851088474682792653807550751403846963203911291414684864791744082502007659300087598371347099583127348883430487210523991426233337755483000165478334082587330375342360879451558703374926599285449711260536162716475080298121227855629786200513860825225038109418077329368785333099071203804572580898297880644150567999022834196049154354978061331238389677967835658978465399346508869654211697748883385867634749474665184661705624734687931502169167488575057102679457342112779759697147918966159958416864677058409008198595059516968248907135827282534610647371440055137681351849188803491979057641276304094897128940450122529963133862765192013931056119807967120297397347410316626141484504590930241431010152646129233752165680463284203689912546053841096889828147480305162558792190139263654171558320867401469183674554720858024485187853761070046757022234817827728604621996654711820859507428716073948987832279044722443712329558999786437602832573064666732953744906298599291977743898982827280093204246301392613300497313882309730439915962371258717531959622032139507510741790340161197779258309296950854816492401153554192089553292359587820745902078281983738807709897178751028042899445198756963827872281686034222416967458853557363710876688342510824158932765296326183453521159808960449181064110530648874546409190139679260975353114924413615544155346821705944694193817419196083405430306453076757008875021264123310934545269501419527048400426815090962443681967548547425125057483687660143104042047590915655615361290192733925121715610997910080779872452688081541757856071751534035959920746364592022214155396509765632137755748762962607991015438912942000532127852669664001692639463654208903886804678402892410731412615976751580656041174798215420406690432013710414323787993795261855837745599724985412159462709093180571802775828123029211322541171312394271803333558326351702166367882648053152122596956966013564419140251358176958160736812861288573149346913506571152772617502767849905077900511911690054511502368499151399448789250958709714440861996311814244848714971365691526699945041885056283469409733681943141662330184019183062351938922566249701734468336599374067136405406067803735285474050981112206560885769068767440628927957390027998890318566540878741063953813481908370622441983611722976788230527116994399672134990064162476729414514726314517534245839152432895299879872916392484790754662635605832045907245472320466132734706999792016196636227752665013129210833568032753203949776444843972047229296983172097603481198358826720685150998848279946316433587536292560146660032189663482725386237984097976180341076566002367092150186637859024229138462729693673632457812857625073734394285506352771627168991223751598147040829135295441096250238965841620514972346078312475612615844242224342076473627380047851614997209819978322646427530391246930971950855169572656631264385429803461210011848432862679091803971419175320843531069397695171951350815194914652018262987861621947998975872791875425336515801804042904891418843571441515667200352181803341964216375191072486858471108134526551214572241692867224190212754740045335899625912830753306448759572624577487795619652008287426074190308966293815892293059433471229804130987349464543675940859894070132882919498314794819523457430403189857247797272571411912141961600123592973708807334136992530425485285483091267736518258540740920635501914082627883038896253414253406983913600957950671891358954047339420009620442413650837333729187526775112883710006690729665380599577212555202871016120853837250496293545439369753636800877664373017620456007383725130434770354254185257003698445152180677054414905699336733504709432719084528153699781459127870049854332721601587977183353421062330468064887878232074091808292584721391038008104830254306081234616751591435638838088174190822033774228323116890164843060850681406957670340338616224844898154686535858333554435369237244878273174607050699451303306048530286356817975296163808874608786912250179438028093611956422042606950155052808141975647347961334691368146737939227204398614683341206863423923115383539113761952228436955102111963851055196546442898081704517917593579521421078086471824570465999823076498433005417853130797462520107422875233784733408773446738504065245050345602664694337936921949962951428783932050065063503629741123537208810708895080080823964426249616896716327787046189327997030910126701868934848763897882547088191389547931509772209520044605850603615018633173739621823049461564460884583358915637734712179747933008587148965128352559452303585246639896241954254258621491134915844194204843195134387649522757919532747666684334039458496555971208143314906302328736068273713090053266366133554676092505082534520483296916837125872532389023556476287892590211259659984287081945335514614971549264932068291182537073699401603220073210749175742006277769806668947580791962978813009170229339806442949878854601032564703135088772661160425416395069991953030348907506435678246105867547307309835619899205899793050985001449856152839280743528506493542814186807991981782364481809161443677064393279662588755549280777853102802597780909564967606132774569773063618523808187045840865531241615939754297119143822342962282595274003383895398258969429614769903472551182250714117549499021628486474363107547769662223466588043059879178867621664468441734363607436960248713339744506216555387276185821231429093240359292812886929950355545584830065642907623588593224043445392550276689255505561619267384569479475205182946102829095672910728314207362350914132700305401259691162331141417775139783203378850779640409502239527905960451310461368017607134779151519485784123159839300042512387381608736440988166466860396299082549289598426425321085388205808930370046481190655648040240331925449741318604407244746055050961705573368235094914121835123000683546792664928100850963258738077257757063601494173590462024360987770544556490101458240253711327248091168669842288651189474323906610282952112055245881833227697067459202534936366981194686669213489491406285824572999882274561509308086281532962566891619609003306975171220156093082402611802649584770154596931072013060720932876295886746208043122248108193644094344823637709088851602721764821711356124534392558104625834503778783757138948049552768853344818562583087153244567534104226374141152957714418924601069819009656143793544309687129337942182788853055658899317141112215805276535330744949209028542477482705879988159745879552720483777178460691043864664202779867539602275482492690124858481005458631697478706554360865633046611042813772700184986145872263428504110492334862735167433249294762722545915485218936659833744288374398213161061442375957652615657166665114765294704105721228990501407348573116739438533524717721685956690869558345475675931098126846759277042349222854349192610912631828471237228015394336156881839556478363142395861650974010391082691250088112567348972072945477294455851344369421122969628312713490313697728313376268263255388086087692959527249353661216511395159324359993202138382304421483363015260500244617235556180455371259901046539444213198936988085950355920342341284871164533948505512293003363188745011795083045201735214074653816014460850933463085333804673396550247646844992923151953052507164796430104786221451894400072167334418913606654562434801549500631949654669237335990634022751119049805763502002413191007396000613760909569054108821639903367477222519380904232259658791089505455803529702589857988215770004493071313454155687378206231930234076983524517990571357982634203484627262585527197244306058366709153137950304350575556251990224769984284911738579584967080313861693717082597186434965852125162492846338131079015546083735484622932182220722652833174643347329071341329110166273927619319492718303979401170069515144838735418029752081963817774928514326570583463612994449968468533861242070149252056722268169409610892679825213288594923474833131381939006300152189315108164640146537974222195185640375872802608185766785393019781256881224456208726648458246806904808372627335086730699664154793971967492327764128991425081747588096102676029734065432934725257741986701470643489809345707202116253947395441736186427287637039054348871450101240403070535221168099263713489309497613187059002193383164652866398501260171472948891515784036617673662024029191700305901007120628155978152579401332185661214976772849329217887873633558943090692803554128954711762034041458756857416607012793020583823951780463607981908254959721296125260638841212844381969163407530189853991208997969008178629880115081261579832862691216315529678688832459551153891776169210405808869543635415263027173065343047285829413376505848325227630461381816867600620969798539399936730132564704912225056967177433174835342395513816016854758036962911516773457626757752000414468395345232653707881852321820323641012771710657087008835065784607348934013216222100444739932132500270242196067003612518856786669485410961979797436711774606152757260621765094114238035079942654542369416292698002187207396203487989644988615709437303544897917315323655679111977255093736396040040577402017319622870337041842029096299532329926319483060271289996410697037551264921507014897560839405284021351289878882873069418696484015366949735902225461121091129984994566533605176799699659695085954095603734866561222613847312331575803036822626346484633667898996865023980948144370089986481695108682558083263586117858440616176636303830116077729770720761900463026257924712044797438618469599249903087499455300490917508480911568743432789861603579765169465814801958758265631805301912624132301614804443540348704976201299305267910868354659013986021067015769495543518415442140516606688504908649504622829631820777259052361382826697956830832451967520566424930259347644521206602492781522298409576033814495651114614851001984939193943757788027744054065443301908234684005300293603791686118183383853379956129459239628298939593066287765250168068056432587095113055567097747113016708041408681579372884271418437511562168867029434461334432751945282786297867725604304653121023575231877776696632874183574245684652056658536739102197926960509333130646574788243210170496942929952350962430601400141429865389568660672987144879271587034211343727397056751508844595029961859467249694068654913329669840196271745265744957146678238966980575420328757271207526813122948868945671668724504333531608147700506208318138273718864960302744927851625580758616054210444846321408457953544130709189811928127939106369352757432412188287229741285911877231745022761620761137535328089659740123626548123810193003233855170837166594572290386034838157410846784432534798043980518703684464101317437224090757568103988887300779804880579117045976882933253403059713644021119855894059063038980996574494885236271472704575406033235632406038127811536711866918152400320672916071332821102580521945262312863901071522328656911002314201687556400421576845855812855897535559525237087047737074013198723035501294729070122942955571200668546100412889464420118975088210442280610190877102773453581708413636498630884146314937578839281818171590518990853816275526057868503032943130373259532839100370316128972211298074061038782669760568141217831539519034306785083569361804165589857949067498888507553505882017952417105043339046981312099943612942862151145657375666042493747425201988432618928323123766882219646094903155178449274443422198905594792714990724142370234525344780432957929515903319427075279391384422253367079651674372053613987041442614606558473000242429383935938517978111570131869607690108687875587633271926040592804090786425768123385377945998736023389005425639977637551107046469082425216484793730433975444922337921367499328667241326722846732946367861239586773767958097006044491207566493278175863551768274562900072392363505255575505816513659801363467905243759435462358574103335170460246989569541715447807168805995474619894850232575862076130912080356150411886255332462950398624626629885519465184144781383827147719509028941050038455005975626130006032089208748547598383082062623496585045641576180977138363526294615851504445341966330805437941557988387070950210750685672747503331209883168051319517323131092426262268875176459852354291293059832097166427629396772474231574425618263543056664610684805337380347560256406295934363186463571282515567517152802733757301062308889733662285836247503176508561895477571094898188266313585767238967061596434307718696197461701045880396468361707469777123337903162513222598772901442115594404624695683400114874023775703733116664702875202103979693865626147954669426871874227362748377295021092334019057461773281978493590542897018867415019818158018963287115731914258730193000204324050560910880504247262299729509288826717102380719976831279178367712178521119122397405764224584226324245716429146394566127687609594412310247474877774874134748489449591671944710159696148120689228203527741629421827253374596299661452701571278183432311459616020207664232005273884063372021738707776516529663180348907669943953033898026042014561072456282066946204822935306794202399591900092103209346204663567005709671488988488103754822010062278616736718847286472510948674064237104951519837382600676337201515560479234666101092459800553446129447650224202427190555273592336347334796770354057057935097845950695618048609666950001855457540319697688735770981060228287599207171518996665305817280834819061623262621800422549776884676357403553636595157703417736192850565465075730719003574653335149183586837943824512321184999558527814379163525819252985050946674592694461269416629906006746539394910180923751100416132386595467097708153457579835438676628554926971251842617427945050689769587555656744819373042300986307241752863607138985346806479225768296487008938055485035209803802777857295676706319560291964718793794429707247477216987420552599060778145516512439593639539008929599245430364570343154790069745234103494901799457465815487475814391553067947513896668474191537353629794614850017132557364719860398241442093870399447051227436165626082940870627145038631446022625602822174357992323127375411310874084900656785609462792118761324345543895500676964456527771503678635680778547946646404706528126603066644279402972678877373208786300979180521694036367380334279681197019908536650808238016196245883640684844570417744522069798129737644471699992620953510730928668230510088302684794540420377424381751363058296032126788876588276338917826544167750383175890381044964655237656612021819286660092320273362299299759739895264170798165941285950842786167912563005461268251428621996525505420295918410035313065896418559752366888223533331169174886954657179088274328183707909241241946352155644642289622545905345072443260554062719705889408439007595035102092956145999251777065168175891328068901970316875876555316833441991872681222418054161340600898448569795911566944903691357909393594936850080304837138349298462019169247261662133336129423514113540056287494748928344231903018186151471747632788625716632581569544541135190096874010541290400668776050987429021939086962349188207961200447520898775752196976160835524239124821541289440458155170087443731851603809794283069208090259722586073502293071962986104711495931879535913304199452410051144236856890986718944024050537707696492438355741180366871431288509778905816702202528208186411428588061566554658094363535243500541298046998037488858556480704977156295486611726311560363400590618135460448044888762248665156391494267961948492131235289833666828503407358785279470074009730680331656764794225419225404497673797528495710730693955795827490639498684472781155209792291828616671005361507129340647961672772431036702323050218863026077578382615058298836645323337437717352885372880439846084062376643603872652771008629532249535364769617768823097986483237606498090966360798752541827450851371397854374562305481833272367756132491395562791511891580441801252110390444906458216644897468628019650602293948021420196924680519184244349787469558835475046223170983589625076488636660424506569731170906448852857199318338461133408366444112281139100860707830123928874407829605475383966863529038307642772469282822261283708119269841724864494368948378144740451877994969048657049728697981687409636419341183724209970505021094748016652218380373617134097792030867723811255724696225178580119775298888820760341611552232053319954210932475764411912444861046434286686657142487798868002224347023481427941202606070964805250059422381232168804911683136084327997232845336508820932333580353846487224955161811897160589918350802070148355244540857521773333289399352022909717064776456517211178889491505003978956791810927045849083861102130181884854004048733062986537781428087871351493855138002751737033902600553481129053660480816508144743133340589651506266737361560904888107972450431569885414789356150923730612316161709796575086138523276386674020204423870068005366311342402256292345231026060931266230060564862946202232878371578143602622373912540531403609255998133459199950505712462337614373830449942537120118551887037401445652413780744971881567404260627819235348650279770398533222745945929282217405480414195170490825890527823250663144072519687882232358705545950383560063087442916719073328303552912506073900884304450944658322544660097534432499654894552556496329300718073799100932045191306972912899565170024561766009930364334341153882469533439189899055914912012337264453836911482653962338388507952617552668331134723348981137660556993487261109137595176242358820436266142695402173532937060578482930561213673196276972074573539613785588099838597652162275207812013186687427721754097805355289703251271298930100108721986820889995267729266010724704821000215669943464219324449944838025271327064830854888795218036818596029138369945660104377700718653943667331843481649851866185872259407169920958539902020472470828464011438024430315005384789821514649127955209933576263924316378033821682439784909024802074328664832386777610396985521797568565210548399900066752557268721431822057590659407202767749101467774169137697527939118074634618884838108006646788023434233206026915631926103102363047159043073523079953007511860058110357891415712056653490885487041968028546291680507221029483971949992733447879149605785641611555692974061816045805271014340380398894664071546947290086749168587996660655635971276455561438325479224867643048525807164034348120747650604927049408075696751464683970243719697158621043246088303060724033567245749748971739852482321240657350071975107349240225712553332619329941571436905265055225098578622929447166853037277172564218756617884746991186603225571837345250219715136283109007199864131422303284038754353717160073459553862078966586688760442578366096022655774141769246187932520578371515413069976847946447523952516244552704147387789110787651522594871738470003867933489400445954647889112435547164375374026818207956801075257799973597167865294493434609351760593739258937601209427490888645679358519870412207298515893539156805274640763229198674763814783096505695176228134647919652346375626930475930857046674852572118715993759303209498960641151732570248251011230325653668769272199213672227968999705820233718271072310852205926104720189928734426309762512245085096696445821356272239942313816497529284280608154129072826884814446231519083597321427098189633654999540751278661743530176156963276783950738214080046936004488639243720155911040421993879375035955418168909260323929934073436096751985431584790925725765085407281784328730833889910778393583163393372866807897833528783312635877559105522387151748139661747261740616605518659674544076154336650850667376881940734523667125504034048120555488165631992429032483123613440706175408648056623178771994259217250887151287801418246916919809239274170377102724998844009394509389706789641174982513014507436668752080932569509714945375132384852937070079358783182984905178341507808828005380273635239400622208607574822086627532786377603289739223328223954864962883659380001208180403257809414910078981235951578452580995373617838111901416590706873557232564333867612317307228764334702495592347432902721344091493390699845980750364028124390677932230512301605887861611416018326357020218756933254903511436726324230116793203819670450330125390789383463833721350132906465823480268481365178331182178206702909336876180247703429161023403807268711026267436590070141247163233043273278977399136225379703993903482960430287293840352907290628499077018522190512979159159289296646727678103173750175577289949205945178990970165897429340818357466177232024057485999855486251512117602131218203826374223525862672788253482926774146927586733043997409139667260145192709295210661323156457219967468163366384148783114491254240391308593839060141647046929785475115908551341119570582856576849745570333585355418150805955529905809410383799894433565581290723003669264893468230583298737394592650696837272253946047442898610698626319065667561491642809446392923144011232349042973013289483917565237597785273951836635913820075372125692684929612404298396055829030571021056606736452616812273909696330007122704227190495168062431519954803414814423302253248099461582259168616653905986815073605560668162379672560884205542735462637868076449856491492738168649563275792461576166481860601057471899383971845738459602217653591793280114568956896507111755075767708115493338936483557425270029052414958081410118053703210835114575361249022705642886123404974326234679243960948940230712975542957609893442912373135135772041866456196005084355168077768533311235070076062649551717827886503071328101465205579398121492040364089559091422820110917264403009885076307447165159009040805295106151629371017505373852767129967622088345011544432994999962890107920562326485367034699363079522645686158798893157783480254975740489036034672138422798135738974668363752997507022819975990236480814180870055077765639107271639938104807618310594388555615863559995415062339953321652044349702869884730969719761746901038729857360739911805982277738633528238874697493219023850502447706322945457322224067830046513347122959635360320762792628973729096053256463282729527956969248681529067997500269854071759801875729707950749645002175402553659334194840037489913958106068742574311633901988470958054557908191336158882886860940581951802348076463839433005448195701056124289485540331412575102913598351847889954236904262562172118075172041222144945554487014011307202937763836715892967231685588521833741383115568834583276880994576716810427066912809596750761527903202584240981570358200845841677809816425279805354070061899441133242346905710233376001988931059398220216813903723648541647393295864166426979324926468567132446083214046605836494350316553037661579423372374092592245542750933065813404904301414064342441818254468524688225404854968225917757692715242848283954143040780541321721939149150830589546592770907327612937983019175051999862431116368875015139113930384166894917406216064612449539447423173066768350114053278509188291930173353408093177699201736930660239458929088328861759342064313353501461584329127773110356113923296314312492507407834596167922886057428928371288498752917823235910668980697011030210482053010019838629094347764481637759231652218886247618238763098048317453514944947858996732124526685637231113045584733942400785046678682634564482868447359996634353967522210712912199516594311553260541460087251676852894826702893228111310786484167730659192575144128100609188945219808049189400540105376807492026970789075782883986089948361804975146458364683663754322513451968517279926269012668792180964670222312235862120594368780836378203057741826669127763268294427657066691265367407601598334703640886837396012713127167440901956221980811458761544037777605457253285622133914634515440706610181051600876126385966531847096879985066937043488714127240744060503932096742244945113447199959999710606853902957184370002321048199497593054157700951492523227638043145380156016543342576585561091863860069004977694551493912912026627009524612708148579375012624965013162213092935079714721100706377943009774432781174712047688764901757385289239119630122268505122162500189457116855180331936417728746671087703022991878038075844198488147338342962688996626801037018504734228880242044514551629933007089598475993784539531482285059343015633047907767830579350845625560286538150527744474806879258960964386429927245254744320480475317360367933651793739758914698704093445132312594507303749502282891211386669460286933146897080708928239440294704048549562914536497387312791691025239849966122124283865486485320524998523692386220172475899508486719516583620742094526344870168119935535495997274275872834453887946953726726948822181679117825140204967284327486548249250409552372732867098900473862911903202110474494931423397546809516389636664583063367469435413664198253011177174105628638471965038787264722658395073817921746030995357772529614258935036196854072288552310697307223671647724626778349368603567218197309051260470847724494148790555253040263635833960336389811621896464738238575825413692984181666100943298908878970982959924573229222211835816340238196659025857779240976474292333049112729988238474654869221180305408764667263837851858992845616785165261310642613314317471141323407442185022756203516226282365099961408197061756752665340165104893436992449646204111966781657578425986646723644843526389993659130479454336439679179405824307620037829659231023021903363404060875456924360566940520795470378594114147440827631064523794170328473361375913459338426235320883808147881592569763961857749453301915064126246222347279093225576966351301048054249540649664471312017887759851667717141826129381765634583257797401285255399229939840841437119995415448801437066064561778811281371780545559455994448915364169171026153988990489511081955592664939036229664945030016719191692869393804326010035024742392458279587173137249151773950850651221197918493968024667288376688274079442548187199337027227876711613030292403175018757390782437345871120071512454674702983815044723178953321672879001349282395725914716398209760158550202035974299144164811296554121459133308974154959556867841408021826698194683940893177014746651004971372666827807682588190978678106518709938033790524244188554996224907795510829106026564456539087506669329684124309651342114104510333124034517979619575388238714978716373005774327117675235456637926658406761542929761683075994387234234598340252661561464293326998199110423879253812255686639233994038019770255923083825487831050701951017656001746428265458745812608622345828443595131059569401794967780505962121026893279065521497182751702953539431345634852772190924426221246864409795010973294803167923885673637007404470923871367765623519584353626082348457105298491775462683478360064768774201376415046543303610449861993706857057462438290589603471083500716771001935621066925004665518151963504657386795086963336593118848355279971364809367214511474923147516456473277900188632348784777589533650480092481537301705131568434990587258483152957584156308354596977050926951762574038523281662195703762035574809583404677467610834159894358072125318616406964733061656787961656017227684127456639393396531329931627271678390205091386096722413568451520365815208975481319980477187256155950163059398234075118224892340599624284269649005734896940873623052386559357722786968018874856462010687796774157459899307582199664754545399280555832392358440182065080747633372652952603915107156464431747303073280299440412906418301861886826687116873720379964897299532155597877004773381313216955000961910216705638642275420020292862638358675447903378660044418767261976772749992856937509246000735313941581542628456002709813438721719345354757145322428911804296318512159377916229359763487953952770622579327828061537397470817420574785685751555623837248082964757577782769405812953620999678415246114541323250642818735546647795452465646848734013180735625975189394614127691501663880035278679295854325241585741705506003116435272206906921712113676776353870825264507757834720374314028503784898002703382073444173629233763772995795055054675140536578430842885611094241827919891159740177428876438188974762432732443134537600318111839118581852849158765781654859806308256850976712689150636654995818276948154707540670809749618284078068593994434451538174937409933924925508549525197101706530534511319844691459422711310724181480543149430762462053446934173903097243738628402865465441102035311012277566092874786106557973185078344186080788361728027354117875091060040284464220692500920829886088623701640179336988104166530604508906537647745265817536160564466158937841100968147294073743598588194823668545183884735256993142976057198841586999253781326621075887797658994208368439871773934036358525844756879024055277814014180416592639165611514476420504611441693130182494939654664751369989576574735377181304436805492566929825835542552045570005987281368672623248992308285285685456829551783135263116540357501119581835587291501414693790071246749135274682459534232575695199265129526536937023519023590849017028013924913676070124537740689011323881961409550939386295582515003436936552299634619961289088594606962672562437254773978816591346648427382200722753714963882744295285789598296733209955985861060218255195762680754822568335059464072111099078791866631626957288548246237166852831354219528524994173015096639871140043650478563667395280368179364351206445559460641296569838266080184195751229502723717962780046539081100578276259426011891191362978964074423550637465754149309092119416300825066329368601561731702849441443741732674380726244452601398060567013765995913338662314709839795510331378939382258700367134227060023078606748219969231259214013360998167842277568331333804164811173983466133180016745576691886788925305846035574663120828292714535459427461169740256135915659457423255631918772838500559064741480864377564146705034442285101609313787403684301555261189362262014571275328698219643769473777134583936642727441113271879610977737923509416538545061498091922358923540934868560201612729929605638832973409689545855970871119197781712118707550478682227019227567058416767091760434222923659255505930181889856543287936389838011847396999619133273967108810830732191077894604879809166241565104925278917850920059865845943158506532771520944756950008060121206956941637432862821293791917093385853206081484903329275386213511081674168845261439878813987287991288786853720641503956936647901083052814852297805701857604598128615341881859191057669544169007136838799687427204784771042840273279445180178229625935882190961456459767709636880604693138649775964341190112565183498682773396471786669186350460226975778327590875784793807963087707748288581811425864894182351486527636762319645118408762816078351774354518541770247909371572872664579508002379696688144745816249639964768093705842899892071425538413394664632010161913160171685379107331921646671817086073200854406119503646012452644920257559799635337017245342543172330392951911607094548226527434075099420675876671551932359563990917416258377103827712553380330939346099991224652778403694005486041876648241501766644604504825536559076372028842490572576421385390278269358928905410193580979468001004611918709359521041021779762447721490274763896332869158451170525235914201339333186026973533135624948143397491484567510276338019475448137825635895967376203468551399124427439760320262613679993967811048064678351909267424719259291847349637186280385573237932493070619129666630307439774496035437936432643750343936031713665461989874828380869219329075590879467694604777252231121402906338718340325474055916150965441594815928371022692361858809720445156883277123809449932116447998034984528896316425841670576474202913284363493125674119993071718460835830939863913298764571231308045379066383111348120900946124617797581408353580021434050526928334089321368787976878277632954308099711660744499691377795847818026481183013282693808602551144085307754370445610898761003596834729135610870248065813307314914123313780992857990657481405981062886089132049136252409164374563403212971058007623879426610632756856133267967243767409919123993524750089067956713910254773402183328795668495671703433455022897183726637150707781103895768312358751083502759504419421688323983162361557414005605637642916036932236964454374415525134850205121586925686789501358719894343121537969187690062863011015287078658095759920479727154282281484789637975372402126368291112433251142105431116415359633478078783474892286408230712940511266005415001292007966395589385416980775290950444027248232918650149378739764837001510003613978582138391864296464489533800018406416113983851362637931259232947195778749992950187411935114968432948287163422011751021551271179441812522383784464572584365572567616498952970669068664422174465947685475263090317169954854933848102268327466773063645053361681843402458808155505496266614000643893525996140519381099845581797621771470852489201220585280221414503484052646487393069952106387047401123532840323400952718910323090465292478727608322462582574035079720503181281748646911899000079645426769136826869497045903831987540283447404025524113498541861610012262005454990155747139586920616863654932985167055317446079475699935044959756559807111960569282555582201109005344407259308665852062280683387388157912869443548798756349191062091273587297001899322191386375958298939850609607033885038729161090522336031553980104336163863609150090928030880296669053338967491028932295520574770622952920485285382148631055831533794458596655734040378383062838168115757339265890553618205664201193950113375740069838549607769620266528738323853374224906658232389688115651522789990772860743039770680624241493428865282250414814358990427387535143691512262493247620322735963939677660719064990724900318036179298801798307064971424200307529529699620395511392297486580696812868029524770756282515127986227152240765748034398770982985144626241737916780566638163800483775424032857643827800285455524996901407816887154818940922838643043748712898032873394867581224069388378386980515712616571693439771177694028235227803927861330609294454811834685903931159291219722602345881555600317361988642428486832326185386077297762027913059026695637987744365487254754796995625103482321231035267900322473718547587036316369802102621469137751274295399326439354467722766464891540952825241741273368958523877804063173324604003918784160965540615753454239777166872957302005175379451768149917110757495561092244417685109703808629821444951017546262943345247565838221145827813472658664404223532808159130344845146774539705628972790589608139389924305430555540236443154330403439404660827492629234853987821683151841605978016062043468629702923022551352760203934925116918469007831460142433986237517853280398304318141071369395028853520900205031851106309177577583091146103367590351298651051008552955700427605739880570846015289258895560982907910348438965185163613807829638338800164072195198100631967199131818370434428473032057120207777186903271627586846418588509979900506602499661119997257829919964132852287486219620472431988367258378677615269054134861018439075142675508932986826068067417238153290966996634269998235088119420358634986098097192308988275486799660236269974104198625578096673958247624078964545043517254480569383122805195686758482991869535922770846814782463783370290277158086935115435297772374455728664471150845960811077157333744611384725991036747298943608620617077511879332033385693245939640557156388063914678958736305264154974887458546414176004762565983586296377688666126843459025138751111397467569389902955901227728011917692295872135234344376916438325556524308399753047351353475967539467271398107578511282002838430066885759743744338114336021342536315200258037784979010790852571652177908129664671118495795038048301782805495631462904579697073418138357025326581893888410558859712373026375793786425508014789854339311055323468635482295428899594236315395134845184483830681664236129708585132442181554249585195252345153567567308273362771291075828256562954481311876520272053644739405456960345969478423944102054186890258768221209544049594008271330704233678362141922114559255756886937203996193194410488133234536533389001088393137433773715262170962914433488257107584013056938893636943579683321268480614438636615857997892039445143211503221869095411770949632547303216628838876536780235932777958333060814578474246237304241996690962145250574853606279337334217143998555398622676166504118751594027912406260098638462440394725470627817501176615894837109510392981024017186568196245920718485658266490716925942247398851430672513906358127709778745446370762579291482785175381073893322854753301244147813425581158543910838733358846483406893598646603563786254669082400931818409757941388314122283867528403863458090413148497348668888695878728047139657654564350592592899482909568642990419514276682996458849333965395068216884854631067023880973586814108006284576072701428786364249978060579954645588415799752745146088557526535422288798719698621977672095943654726107138430896679865020999296604947592789899769298845362584734347639439414073368338145969123467047162320312589410155127593445009550869007229084130380745836663583867457097789874320948785140374350410101145528269952672979899914442750520484232988543362458799061761519937066295744752993583551408144776778961290894062452519685900497621368773506065450585034070506322896135579744289231239200683779144257004117580134763369695843632409948421986181025492579861418550821989814486109841550757370488012369081616566560123799037255609301918871687440335200378781434944816929259753155521257738733512123264719170791531084247327306171152402824346669124735931318266918730003311887584495745011424461271324994403251388361266350405522522870819880172454695642577989200915776522801874314399513651951077257479109080247261628324175008486393771331968928680165340903610664313213828355312841474516987837335877582812650275892742839068713817432832993183389771635415114087865904858049629087323465113081037510950721365764849328435289930762914632173983911232844828185743160480127224997831979781559672668201591913616608337753065598945756068757223695575672838292028376726714548128999021180134147912868986636016394797244424048190745069137054568587349547092817172228998289869212140256710436519656836960117553237499864457790743582136287690903896878024463592255613696925388056852022471031931743511906960518581672565722176141354101003467730524147221789286313633550546239421144564593729053381407018813305530339477612506681300570813714585397285743314905184568784486001357601652638582555052652862306534878893475653213940374571081481771048783524794581462996386982512275264986029667644919575546791266984485594387357053970796910780231836964958189696864339868826981366130257915211648220654209816299657247150987541420779614578367972627747916538312473886175700443881353899612172751275698335702835713137824278317636111722346951277745150123221823630996229533464648627618134351828165935091525364648451892303354105665094650830661543943222055517932325426607511040050692789864492491546311131425414620942660827324300452290044602155890229008263465563715250318211897436901321200811245609024007679251836133973818086389461943570514424207417247972077583092079707525249459956051254675981146473524718786391815503918583065316411225276953751359131340241876202600399684785884440985558248863370341073558914306424572607955855325733766984157749771539573078109677175772696875150411864091130120338150890329184870573183094912001271753855796116654027961269501970522596973262911052140575306285005250533115400929001870103215805561362680069491514741933589126367163217234340039977765764732359448652406697453510702752529866151209132688242441681032571559822436512215869731491121392628909946243196247901085543839939092661705925374589408872359690053760754516772415685072687948845022455398509858359990050135411139829444747048473697246784510350755213879498588683804965292227545744015042279800151448944698311943384717381404397937359694488485461200094792651565031457969750826658299296662388819381146625051218865752103814599124651331163737689064575986301350366769948512377893916371414281576106243603911244472473659578914012264438378322739647318535382934730823701604781876385670905198108472247437402841461084917215003603894271671363513507699912381755944536525856905398629048838144596021221375721301783296653962285676548306451665872595327728965907885307451758863817016490607053295507480441609041926590961299788088997172412534031587621623607883134627208493647802131717971115560922185560193525594983612797079320790309567935654701168180763223561057083938124991899627393786751234717668508211009166263130066368201484774386805171071142387924816768218302896516006361013490881081511528535358952665640223912720766632107534240895027946036175581752329697200763615001088840668925746426975533910850666311712675254624270769373777959352924470713441399737416856928906051925528154989449651980308890013146220133221806968548793444213693525862346165766440659417020728913794635564766747599493990360267661369256590739250723342346345092088440338003779640120233485296113030909032901077569342034141884564254193296145466226927004835167002878815875141846119729637998212722239545670288790444598703250958017443894597424269741388006419085651245038641110973265410744490802720266902859542225002597085539028595759051609658260008523500133604820258528410141163807373866928865988125227207490406550369075205816830637724329313330181686264646682683897014282394124172929862001357250501516373476397348111277700494694193881232483312576857901525309308591228176984622071650123873230690129540590109128710414604242782342967633718104059554858326393729858547159866935217775239333221767861939738675332403653560606929421405872714172574551247661119406765482683974796051385723336476465136338613805537544187159820370102755549050133450949126234518076469096715831716768390758722667862172125811858513323375698754947986265333387652608627836723157725978102433589527894499006024566601194269150598154920505656829187383648457318888441941286792307650586205919820935553605496962269956544804814850301609271797840057504724947480652891754339201829134643880070966032076000204574080832166929479181905273385535573969718875275766762709532713742361436247568460707496404491440126574495734643368865522220556961951727575697371955000705553503719416702832413034701153497220688583030734461929476661767633408563327124894620113841999117304132561800779998566736550706487567353016749147656973419957858786244694041459451989492704728588110924135098456689090222527377705205343327138018566076375844743529061768461609490835745996657433773669307179766167288746809090268316069356917401893916262207997322728308543990515046201968317723304766848783289278945765746857886746075192758867854188376298091127850435935291923470575486851109682752906338549219906004872118694364592747957525377679817336144458441158182982719460815227550478004112993731021429110135550996617652460791824533588712898149208286301404699147489353996275002745657840025628108118755581341256390327242929628908174594512165402097601539093571973985865679962181702222678300934941730244439040899746481097976205981234306356373508951954173998064990578193887706529143582816819264683147130159496691749736854783547206227292322787928942534101017496777573604855391075794154593658518168206922368134746364796021559094921877247123378754303491842786194884653495155435404856397507769669406081287208734877445749718410091858340735240649592932527167838160745312378580458424407017281577140302619288175992434737654165647241872688539950480366712636852393850729896768576555098286261066579228482819462980751436429314169243598366809496909677458866955590456797285524313636165749502886314719096614502805942341820848666357552048761380407376500769025469821130280543903048865547970402859017128228416054049997072375307049808493066525453345803451841099008230024901627000516164813791551163407009381660709748772853195517878393289272438660553622949742269680391894442948908550687664493475716896090150751605034782955347619362413411013472761649074935308092498733772179719919068755704279737370037295987634003122417057352379718064644254137399239993553083640248168832470364138160089803238509182866791988606667563642638586417032705666181863285862498568867701533614883236841407712376815220870994039713657604190879721452866650428347131406789830509091636194393356085243566749210803561487252197135477952511436112076321128998222720295922558553861189539351712037351972804992870215375483570099644283180855880454165993197217001143181769558524947165556797442303162556738757586657078322435623406364730824210252485731147212500972462213849575105143690168111897621258127596410692587266016885700738559653352583163643913644253367941902939371203768372549233829411666085784842569741339572401460890748819583344571467712521437809994940180247208241701265016792570532332996381253191914443411206501386623236052787487426739971996441334392580399769139516812320317050718436623793865920345908435129200366028887567995533029214808108895934040129440043968980001188508423926869135401896579335892248408039097892080369649301833000262228063475397689574577046991738018850890382556609257105537543732167137520847784531111936842446174595161608790961064097551651204741028162218791386727390402202262827409112887423435125768447407125890722445358128028333193977891376937022371599341232848185561228038537025832042747682869734011922823390081136123518427716282963257694090311673242803809878807881510941055802387111450652152302345712640490124990780652978418154104316691997729531730635550280364119424920225888302143960607001204997668407867246161351802803660495766788971499101307210806301701233159910054204978965235767250589109491062683217728287402784576080817122355597204103774250716288927389205967986732680032775218889154360877046638102828038999286173419906948480391950742045648533817300985885678100000674384456509438547278196165698069853479576730172346594247170630523906788025389340679549063051174626468073549460971904699304987178188331518813359165551481873918844670226317043728771956495032412841330744564948637585854383692112169679625661701235037809810123495666381744217965732751096818080497344076485103871647825617939258463599934890801899667447730124154367868869629470512377961475565194232300898504997271356882388366665168768362370311818886178738114835899293296783102326991768181325140564103115442729884140896393799433275396113869579144580029763267034736106727430580366484468257727480479606274183437794753571885886162450812787493422511284044503207457631904492791832546187072174695363603472272840973448227770657193414209213548797806009492982822984546989362891823243423606824410682064871328595537005470400228717287323393944912475938382176780671153789117138819578223772610252801344915778096332411811251857385031470229425135723973886143295421765214338578425201179110760395723449148316077014950771971185643776977319932065287248510862304116068294320878408752153839784268760877396324414852471657570755201251653350123792433616400956749397266880371872719057040588102352095819255794203197821826856907899086276620480971841213603676221326243033797163153142783469020814510466473941296184291383668084681662636637651237822382432602703277751080765126461497417192076056436548830527073399390012736221801842617688511251464080889770588942405107688834950195044524851918467544875804265453611949442622583237463448956510898070589454726922261844036339489321188665278897510779447522118116515173792082431072957615150947078886600975241361872531378052592446989961063926053980636524998220447150431916120815818113896309239385236716328232395072196410443175262460099143756538470291064451008865812215391748033596077776510227950183131751228674880112989434547945337382346213071966863368694032394930890457294659880412979710196132587221083835491462094054162968111042125094953978254450884125951441155138823383975953775925154888801244178910848991356626494999837530450670947072105747644113820988567421227591537699424313461882420371608050009276745108693024115111778634256928343112924376402823775574955850861198865382036219244141498902974281316979941143204035388368438223138552863438482581095553884614828698360147973032781242902723135120276156553104424330790515924292940835930309626751736404703512236515631164755104196515847887937421602290672173146808972245831468218966559123118771125857814195979670341368156477070676221028877255288262155354125881623865148988837366446648733510918767362196697483114623556142577235036434292322837457374972428943143263486803187292174156412252324462682225922667818790583791950686152370183006988656762872826148088698898867740853328578909372066285447075603673775120279665576759102875794051390213386181006977488109572301836054752162553375346634074924288919694949320409842637253978773121290423019583132773150128784649147631115191195714505086056951572736031662219773437461425879396214055523308776718960744833335903927834027528779994420649859337750763458067228327526713867030754586840370259466168107178965815628205839360338434610252147010510009969364553448936280377525880592612249753430217078362360709097440506561688001474338366673476356439580854920942784671950398538548412658914442595283916645459719540807521328508646518049963186648268709105066727331169327842616737055040771675322812703638914824979716107233388649584893530867642517386496592483103029470126981489886709418753923923122532992551359244442295758139345320873339478756460896999780891618863739123845264219239460430991932381454344061993603310014805130497758810967006857868969102072937336423226041036305550157081161718239114551368088599853264882457501690056880337543751953797899875835733149105587325594318717305179810433776400413637474442095343886899671208671030608317140630424315094136788677418448333751637348514956967642317948679101390537645249993462551091837296997065116730261696257118273194000893141836133263355298946161391845105177935409440888138841202337330455495461069937657382698484715831529706673226200491103361058880952402932151695094607843683386108038625812792424165153807212359680917729859471013312297258211602365105024876075682178814394329308341224415545351788315530478599185397251856114445416666819654164365435243127197394346192110191688386536376737394822933448564291830747939070469425713460130786146547747242635612336163881116319012011399716687025808456992244839780676379222997174308661899378291567212002625711347306004623232506348829390291664864361364803045600934259094935590743575646967680447825507857432409812384118200422611031499858075231428822723358918942038205493021165786200132898783225645356628758456275059066650824992919174590846705559737131205968032552461153245074880738560072531870348923397942675827111022966836283505203099501633105417137526631907747179796779317944647410637095100711018520936559773510577453425615410012932061098143186100887006077474656729366695934954789135407255800249486549710163315356553878808886480101197424835073054552225961847476926675459327901598604538640248516535756949292426018779410122913619223072707224486823742454672168920563011810698725912772354227308165750222075251262180785823714246601923867635907383241977216961379491385026421909163005584403570457105094550299606535541215108143893680938378105511438440805609833685283563069023153866913432060010833077945161233592846379436569660085245841965142680645035132164147314461711885218826159449438441316733041679907970450538383735530466785504514537647263471788890802523863423151280782614390048471955381859400393253814328978585359267749205877667155583731387074000548768530216790809076760793324071012083834797817737173433365197817937135482144332131327125283208624085454410379615854495048783039587108697002526782026417126981155559031830265111003620508305403679889146335491793086372185067622034811041881733761366212948359118302941315372206758504804078268484692936988371103995473217090989018963921101170695806108295355297655846774342697132467646993109983586679584566098324802844450261467933827798638434152468805267861014260795243928278490837484438990631437942207368029621483366189136833504870766653356149525829823182012019885826259419977983235913007393743951949339203832732907321470454275456604584858401910277695650493708603343517344061562550920180000143908677956766248906806428247170470976969750179896688991709784642385346891806396360611750810438389214509617993482304584796024839975909212627925272019718940934949166616481739080258199154375282001498307055875575303388874507032446650208808359123464940563517081639519465602425218194532774048833286339672284463746752138102984659568214494020035571547353934197252421545292193554206602396198243450601986370783046093392227038471281873361336508300228768107246940786467780966443550810471231111391927172801411439326572845663482858382059418759827107279995922219451970382835253172505375384674843404472960993877718647722610654832542007551680363539876347925284181919179413630517396290163174716826199557010105226964556552420405026061773897696492191098361621232307182557005228411300088967080241684406180770281656495636364057849927968025839384402464620682694036591118095906692975902309032583894062562576080791749449891222324990421274538466618417321702983156541933679429936677126539659445481715501693782376344584828066157645311220309856966008488420559418462629381219184072079243469151668340405931349801725221160765859307970577152158871300701692353255409231573612159349917733081240874761968922097180815232764531808641424562814114508361410331231132358363988441862495803259771419618143268045558790273640081921221576681486130444465249875337369943340290554176877598243377806698833273683307070457998482993875870423687766128924440332073384452169134735671190317834440728082192036727482672035391590562290532448632505006464554062945097882928641543763913737569619031457469898763629591052887798457541652844783534231164973337694139104304982424795255212116966582581932985050131366782232730925262959728831959612226487835752978239999756494888824026175907350472523140518194055591064997658413116813692196782124339004636965105217517280661167571849752595922954340609034144791613906560203605110698702314986726921459592697322126756177754389558210809927074701992198379217772773514009707746904300988671403931644059362883342453448644950724202058229813236504407662356509210978785865195509617079516646516235709155218991350685118620320768884011807311659126594553487616342774693495185807970757403861477868091916332048754384893419865732451417839516468798877745827728171609866235239449593812904282453826792259810395674769960459515381767116233502764409289062103176670611386205358250054074426314679119108398762090422857548874468792134930837662263057811006068480540136704473017000276418887756418723165176660227312696120597327891991462713110086065183469576123025721533632251192765214131184845304557355446443493609780360451660708570253784059386006769221823630677574690928514278897906800064615900189866606656980725830402685706339736802030759195024048287074685282017531488888158121642851259850437295828636741073137116566662178961470529276760811774195799998403110115840387050979477533178836617019459278607112309376971494383399595921957603082144332324024097580649390788150839776824853437732628445541012308490367764427553774088734453793109436614521003609676998991544771223118627853000031643478541274330266390723975235080954882680651988801385083269814852692637967125750815607608220773139593645453934488873575482155970256421719204358934669867575937829968168925941634280308784562243560945423105850428502609600038564575258541706990963270075202785851847037156124069064620874676420285782355403447125127426670858223819678661257375958846514791711725650007620134289020657306339953605901413838506866684669317622000144754655819177760648596431714176500015667239132398708336051883655075272823590040953866989978770520474460639407233535629530991663064415370652228316784024259561574979633961452601757404422591387218833708894343111868647296749123130378786968726116425569525722206183474239606560234848194384944972368807259213739532178438857109303507658455100459014047476691506502956752176237512104270393541023251976872433698462962931125898780147122084894878821113993133133592398533545885313028923249529636501975775936670015444706970147393683241238722640982717357217290096062616524171254208965074271088830491405684309041635168944859990465633733281041513883919595508154340008651040053712496941804201694405968115529553675478477415823676412315371293265888770452772557677229552638625180073252030585467533109021273043769179086076702697465438395154454277007909277845897450095820609218817452799280427959686098427132981497811061902436943884995974647801727640355357216895384521177402620472513323360523198049423659732041588133323434973300325766155897805472624875879500494095287401397902195282134220672421939229063088296409430846732107492444286650769166159246576023154626502008365716802367033505492680199454704982728970991840629309430445359356663180268051398436770478161332227002735488873119864859103064646454968737710000696580386586669011909602533425192269702621482909568779300088268518100429127822266537860532104465391092062316126596835663796221056718463329588266053545883012491034998827557722537110908007077800624019188537937494532050542219995785370000553403124248543934567771801117040305361212709888751541662261949371813825693985717571207568248650192331670907305948761945857766365142247764867118345115947328377826270853676722005718852742441892361898149878561572740710024643890765284960400612807994114260493875260365149847322131522096083678107173242386281834754943966440616406052126126833798347356205345407429598625975310630134231837153803178731393046075553285809862467392290752676758303295670435537974730159980559649763924903014932865180171666537646658321187600914951589985027066756558968180225836397747673377388423265598446526660646139586147957310254332435491984956837261813828417051812078174237705081005467709688638548370668044255137717647260916360212543848086172856735060233105593704766321043779193377549972947195522906240790293733467833604172096665325782256395117558250929194453279214711103005259483329418126706673410512290642948154812295765594785548587848303003221730711765854849190158165066590024792499735714960074040679773920437207670804541959865452361624382873364645589261188122377263809831520992882226695860414200409500552409639864735857799961359340089386389772898226416151030883642501079493711057121277535528642360583321724631885258393657505416785998649639873269840913467053854051076234314249140766373588554293664168704016660954835221800036377568928925882100355521482264424136906093513931263765740055085845621217683677711999902780257719715129153491312129898000134892606554453986535956429510504256514813352220662987308235384495766048544562296951828289906101037985977609779444872447462372995003845529035980444896864587182043589060583019872932279890254753039182392435399281915795226206537318326282893987980306112156244551179529061475207328298759238164613123666066687491924119094203367517627797947879127898359548886227530024042620645563461484534620123354646813375110205873394945986941777591758640903629238286428086213947766473164202375653577119226847456158338558520399425480999832931526590863029015454189046695809745298533577045536619849096038371457064538284308417512075983332360591771694484324048198671763627002175686247909191317195169471568681348419412914080825711624172524171937112240532086907819399038215013979535482773782869145959730068127123901152603934870656637077688167156842876861401765073441444292709710875813771785499000356624738793886076565893487420160053420186186667842676190265680356670940205173308341919537882824610068288473309095623633059203448221754920942256054183982931365323846185696410358064188093206574067840047346887847435501479075006324923005431857493243001931008797651923447622297136698044900501858461021398293793954581166001384395206761153668894470166204227263313893717248015458081605603302452576644704358047702251387397078574967237077476621653980348650363422304493468539364199300403352701874913826192640887121147423633224566056791910922421414474479998560360497598729467277389037903550769406240535621905797714968225384835178631754928089590006197550722824819050249047771684916072322449173286628962775765547100349102919791881628493303697920208229285330783454377390081078419726751683852408237594948542281276133124953379680611505934671728076794348090470296037505862277331285985514930640245050124137385959923123393856485418279136417051712075810494475019841403522638427237335391994191825970182145975412658706394599902664189766285179739972879753385441056098729626236633083754390098388162157018570520335004890112378609466473685287710565746547372336144011629238207937621982819640716193024204775548058019897606378112162697382926263323978134522329815527911856537217463681513829925721978526588363269134541296738876767617414051268638903532970531301840133821788964946180093615520271391696857628381154307330739066268521525697227251559749346011597612028843185675869580751337826165021068704547080096225399131900335935280999321706930290307825258176453511646523418412716306633314493657022918143778007688401555525206731481422157665044746897128203201252969765861196074371649106628174076691255653490431663595143877119704312109443347930415166763830833477230388283229165046473831957809253779684456204900798292228047836248555799070644650524524254809033641247198433791501367176239916892061057164584676604532345924647801589428047309284394680766214489659568219088512620082337079716202255242691457151508003820415082472590918286233755218923089941561583350939165581294391813733693603176667199923368059617365451634374414862256381932792349163141967404489623249674633366122165786886978737216740711563841634374033580031713944949269397372723733764217088807719589124187091411748047073182914274577180163989101360620515558475300748437575325007371862511135722861509182782507567707184956610908220326741183078956167827312077390647809692489778474684672798771472253082965752255019247170967158786810710881306039458757275892392709156486363749068998384575243553042695267293925209883711201236668120397753812647218163174037136943138046589825051838938151166810791432119134454894315122679307605915534055561222696430931507285611672697117239307874424186917617994512068431683890688417498266754803179999115623485977572354751156154555575345863288931931277930502462025792492519577673029050664378496036427063098997715009736701085338429050465609594354151445174968848829905056993502272479508021557153314393764430230030272148170903712905624705309334871748201525233792835832888265371872827680101403335607701629433462371054476075602625274848499376145528005564532804665848645185533916726262808732675223609860481936492523898539064392187673333578116029634933249337472172292355142672145003350776886087852383155268256924233607517631169774611455956517529316905557245933645023652889819184041870569867704033468134099331186359596682424684885688441482883371390399866385528093070560351651857013383320886426744405545803420328059991393470067070731784858294225106252998470442245040980430629321410393254264362292564939100274110714944348059894611489112278264635515595319290850414070826865182855527894048500947725321835892194367441247266248311590182851827786519703825130543038650343655570626881711812828089021515631026264486860613577925442173709054755750683018848030076235966656977361750644769600538229229091412916966896306123850607282582807539393577022094129519109811667013357244653169023360481937146014035264406096257491589637292258939795262649804806064592028944770533767756482031218050781508342494626029269475318242952309757466045747315931076327922028652898910008612796161799894200379404492254295967089327715204165723440748566656812147452860996439609779652467808454365632334551538476696250651632010689496211060951845182761771087393638097724156104244723486498114569018544187998664817101850996373004215399731777636637547284746078922921926309145899240342693337778561895940192505659714271838124622170536115134906776690380444857501462901093034640258954231905955018489432468296767006927788169788328165947950736366074405447197453568206328897953626882089027922471844944484570064539448415185011375455974754673349281033518869586374995952537312455239357260852067149005619572607591990109646981570665007228700276332699645529353208435525554026896542543130226764864047344671491070919298309990437031431237139819948011518096440465885562140968579823040569458386305751816582145402457836658071774307111963004812733538650998117748919779514817422392386138399137990097637467296631413168047370554762119543922977252677473682456350236432708023934379947222564067406711149194914980933135209932710815503098985544756844113194787038092269852464232935524238120253810425489497168540786425341138456393213866802849860387400361701078478758041804263797936662140480099448873742874884643399335766739101334312682789201962949146851769539954040119824916262208113707576103760284495898370059073232766223161675587805866565199831539897022299554778875017912121730535211075282590196336296786492296636562353171084527664678699812344311308151522028547173684555756634931610660612567639888075226909362113238501457248646857467482608842766479131204198624390638733473602846002565444256453103617105696077579189964234486144308182606807235778142102121692133360930068531379970256123056024061762980652041783440240553470501698348052753686756387871105796847235264728836776132364454399674419400049559411735461456405536371315020553114555284670306104887546475065142843785415366555409116234277369935415125787794686192572739214015659743449355521511424318568259058608309739075630973466172679656574962809267873781583214323559354057875508933372311779142282880154704404232869720514342967833076247731923895399099983035696656933045379224898830215727868278000254211620266544766725245883587305959222004189663811081239500020144063019700947708839369039714999802528044387600581055635804734127687970277786957313863918087759056794577644359162006458603950605052713605851381689908499059259867572481324324421595585353882999321187834887838153386562340474929264230075233629318451005648139499063183559192116588123786120709233807128849770273449639514069582369473115970351548752895951585478095834114209876071248767621180995435159644187285739318992385383198059059228574548609239095115875750847704583788412101095946325491688470419802811064188050292133880609088931985057625539565492125318990731646748075823456441624236652502793278107514277046262047820269764283905014086041177964494228579625634819763887086498633334764990971767939118879309727739263017698705477246545129889075172283700814744736641318405221722309948762352652339206705077563218628719734974018532445933519561401602363767438921557994643500538170648830958930215913908556989993141158868198478085430973007321288305714258046929176145407445154758727672185173220222203430344049847621443469071797889057961624985064079918179982008416242384783281422479580120416141474426452932295560477267299551942893118687041246978187307946263954686027901597671067336471388471704128810965516253805215842925278850292358842030732255920034866400368817208582804735250187401300064886541398585087815050869479141418744676629848340470583555678911918066812199118125538451846560314386708994655486556853676437976874600871625237940167205605770532518739718384407709869136714237754186051299263397663151144339729804454353032345891709717886138532288459308641771606669566985964262432657913739062804569626833628739712257520305385837451695520008924284119216840473576628670753669938178853652816437333245150895427515509137644934238009791264945234850317736522071445352031459920406509831421634607744015342795160344469195116217935092893146004194372426522922844776747366098448491904096605987944122208864987641537187245649703742839402317863774411710993975201457530433054496406085228758115537381710351529274033960158534427615560488426120195512649593140421019193136176781320642417907765212515090957271874867423549116710856987678522030617464801853338953242079802513135266126319647914628132303690422307792289276972643030653427897768324018658420323637565798165611384790298969294637951397465784925488070296976337387234320428430979955007194506579790984379979200572910816878336001094153274062652804838631818201817678014976159107713138308062455974859558702167834605899305164663024567901348814361143657596733449803505251203672527204355261893733929601050252506968914683034390606301700711781264776772808005109027930216834658869176884047451545337674600060651029173456555019719747629287379545437392806478778861450822594018005285864465882152716645838586885829493115707257083039730725105274050044860206715769095198081456312325264354867169559498855515128624188825376323133232922032539410811292903854120603850508430330118176008655472638198951498977339059899671776788224013101198951310038595550456243200267518011695050884808449579818116627304610482992538121066242504209859781046001008353269590060113506825865199927112494905478286379634714589092085002166432223143285808591082088753119968194893553559849158248926048977543208904962539220877543950732633119461648758766275327587644012531030013212130188349541678890659663525898614365608921293382467209523455246066209097623575898114421694111683124876589874086065798411182275475295680457893119347029775168196930222852855178128682850272616294548036940836424920585075114331959816494349309407311818470950986212148343109733281270421719519596689298744729760044153644503578986177232303110728021645172319258700356636434656999745235739644430882429158398930960161827625655989688761032152138339096617638476439114911891255266198695858867832640774249166422952415186735566993762262127019579587957353594202971619755043960512102962707680014065414052362339749250632947853706812571269999642568611842561014491772651340689060840049768538663263470146122776205125385900475517268166806210232338904181683086890583157505060178230752084432068422140948047064426810778957980457930358435517093183853796961178726989699329126610432731950493060273937497738031136875170444771639234504434286537785802629240404971387926879493736686324659989859328859320331262357043165225159724843418928354111405664040838768247240140299461576525054975174547905653744515593232897623575363134638693599414038656591155979743658672984774058910529109307247686741091853856135669188673018026471105377966858541483737527320721258050427620042026739733006361085496976166413734909864140419158177139094908397134853099082716807881531779878390360271324183322640139412423530322855017055852689011145898645921223750860492373809646298913434131920736620955741728835360777050060249873366594889761312114301721689989187205197323570295620554308187749367057427063278461333097824906897389998311417537826169090745092344687339181717917601357807450848875120097600674073121517631776870972439367186502471952004488352877665036214472996021542180166886061474423500614849474712483225970286469291113815162306017364983592630402771945714310305498405374580273905807679188721896080439981929061531585559648844533764469365648045067597756163039116783420919889059308950604974474299994713837710632807804125581219326558055867677164811901269219240556707567564430858935749252454062995059039740386775701820458394654809754209688409651373346436042686803615495741400878504500343171968594721199548969211562390722083611896747249268661871207505428811281367260212500764506265175764523781467743815479535868704389848236608435035615273169064102765621924036374908614712412661556638065216544074223479148055263086264909101966064376927789625028564907534766494995159920720707362641452341283436166516636791510879449267961247971410015094029325264506114789633292563680601865310194019536681286328937258645971155009408709423761403899148145200758609207375811946458907667692564416297642673735437033296383127850379601131184635913720014474569996737724033692085896445336943281324618934877450052112690584080182680847135417695245996761986494047403995369835724473824010884627984418392462975532563754764185999803868231166106964749228309354913154152043614162011846699982213957044198053785249116041244608615082165332491041497599675100307376855387708488391773176598672053312191949974920728179718644301900798123808868987787169805396572609821998393609454942198145090573634008075515103673110703979018877709435426144514327683116630143275678650989507887515475301201722284893266567639841663985757220041276742731017408439867278234947307120549800320377469847178473177712930169976285182926544071619168472885031128574339690842940084973996853915402095684719472692350939322556086605040463425164217829286273349034495471317752066903933713368418198369097097375729870754579121123077150031473738320258342514726902815076068956375567418153926096471562496568537785207631301641214950254854978758529341126748390088972329525521312687594708141692551290678022118927910326023304851943133224678039424902186143828135789879063449067815947414063764145592478455631948987829512070120848539179530587242253544459342968568673826770925786681445079381265616797516211326849988437227486628116703654611690052243221541564784795188006258370377064020206865133589435619603894524648669105352458953437344346096919037659484547135957038498556380875088005325730216287928614669756692577762888654095277771727124283000927478571955815587722072162142462668208586075819421796346885271045449082829855084381375882675435304692523002135756169407799339227869854649116689809469979881144725876192058606774593567617248837475422238129058768028607600057317368091464102674262421836132818052218155006292981234872170939434028115558765275069625734895419643801880539925307813048215943376195728898337257086757450466760319529815941087047889252377507844226137508196656240662564861700619986450874843755240543848099190911480470295062983688780537483670296382149305103818716136822580675827767704709592229540993339160560104714427219271869280404629839543901750649029966036234697283118767981645104193241136593369003689479788878500738250051883847759077261439715587655749973024244236378656482619734896384507931702896927113631066292004575359216957608599412257382917553811048604189442720296754505981575730773835519694354739105643500842140995592127720996769499840825538891057618631493934610855936136744933362761951881316941675108895626634819944048708311777036863822730449608009576529482535669391376508857051069430816744612282277267947684090150715476038656546960698843800109671656875332486592124372788175798314242112577552574277382710344184846929720394374613991895297578649626379403908904874368657285822532540104794758577471034177827804928016649979383535274126038006525444859214529989542338506338635848431542633966338126034625980891827535983690209698663086723894902787400613766234372041650644113381916241039856663427095950426441999021109890826684766105966399940756019397531678229165438569508796794448315758707341887506308996852294773017289429759680479009139941115736324591050977678370800181448452751185078206556444943134316244773992923115037623061822083820060895098470293900654148015161330171699561728650348780070780155631566428503835368950474330390110723661850318985700779850331596698352143295850582976167796145860865750205618782766498041789880390071726123693729755699165222388145272964712348762409415923997089380182626517627617829907927079322697111062113656173016106142560307384460202802729633082773789012808290731627089627520662477351308466731710721307489357185202988765386275232015063363789357166800448603316431002214957082389144904170250911981443686216543098202939795581378714091019185952950581314352320133832251334565715247328790124719593073408916141876690887272784335460890953696825430675799222900685248817865578480536838005541665432410834772465877953552529475997494472636529542237727060220648157936518947741031427658359318106746298822121304035806639745638324557259049178836569892922818211298631622853455779734265949056467950744600873767548424521226333502438171492733453731050104487359089098300003790995881917931630677923837028781740467513244589992726102643373884977928558268062964955637892878116327336353854862565409912183276606811088153042895197203480363319412581639489921241978049866648446306659145374472000423442296720553072949032932204368240933006309150282709514644124479892784331967304224923286331685495998258787176050547090403773770506302484909767936176578185034100188472869387614774928323024163678199109257713690748947583465159483182546169628046612033878190795914530914905356910279667038787677626269245339051259748667848596923898858545767188013663641944792887020530951898398143249960174737099649494148774201769497969254135096269489924488446871607075196169190077198694460273924069877092667850052842045283204141002318750735614708822058188374467418528972594245123954835134994769270820432995215400861840093527068072303662182633311764032626777744378610220580132420046451876777668596271337188726022281972052214955512162909014206176811084733721173238899529278259738455468950906626457657245880267154032754482883116320401816586177958906003599580221490388521871933330173669196310509886749781423370349807578998072851742853204406536844730102634394441586231097642457695090736425088315040144979094755377508796571963486132784651434725933696116128023473423008976945144672223816969038319884171400286904229479036114510179514982984446114135671243839731609648159409251218874729031409539813017406924866609777587128696300951377345791050774772042243212164812065920590274609809160792188323383266817812140181522240516829754119147809926619161901675992808453860451055275617960466057729760084711963296759130785761473761766467955381545676494208918728313208357035672902518110914009569043880867779517013285482145167118503656473296831664036422543722402917074168462395511722925865842744415446461444473068797841099621268195445919953039247677950534082181584422014273093328273759001471034288633052241008218498544326969053079606847051068536406904023196958292737655200016567036883891910131167352096334250093177165758285481892423194449810357809346502400123320513201098746229266354108278945609624337851582514748370894645139150684879785453771041105715487873845693812975097920038677339614378595198874226594055329699922558521536913221506337597862204003335285796581073894047077597321354068497065035696021907209000501232135215626717092692606768803316640120553102382639986383768602860041690728073031566657298354378776469524985817749744749624559496984804211332439658594916758503643280092276837742959167223560556643454567919494564016903730878921941467433605833113295348132396431102782499356183446344556883643171870057946178538744705070638344129656535197764909223052072847739536099191651480185491079398664603306363527925333574528107769567776432145990788614523539998445735561730416561689467407696939321964617698323455150198140760405750486640132250914183932500378256142936362321741699340110824945639666609585776914893982505210801394785497278014173240657464106170914462821891876164647100727836428913712451118034869656150785349009488470514806481367777193056846495742687968696479459654889049771745053922597642358669128723214143656361693734543208947776600975575424624609589633957123713462907552321831696702652083680578750164735221406106917125474791193691783242713009882586281811524538394781618373402143411419472547710037491452058844637740374196937951055233465449128794409755085343772014500490999701897452756461707686844512093777129133845013876919082517191106167835166854950196567591206827716415064969603582974464606477601677201633332808791282823398167362967856325079093849048868276168717006472285697362196391252111459223293667516007526050100214295963262682087676278151648731181588563343923735882191674641736720872258046123894533672739251425039934701607141503804993352209355690864883289242521380676011745577502312364794764792354424109108375510233768696928805856479907317060509743858466082073485499468665888634182733960074274170121245332331165884381743722060970596450648904140037178607787192443638509836069337483463673898867423729478742105504011961889287500816970865964490709706072662387875897503205662759906782681037424797113865489765755680951703260740182738479934603345984792804307222184574879129384083052593847353334733201459900633195358571955085804585576770486115180158073433727422324509723153487132727326390108453810897455715778696273735689898751954032773731098583711946752072490148782514242617173732923301145906159360761347543745352683041844379292120571462076041885221034142984876357327053268782240945157442050230461305536955657063459826154503734077300096912773899200563947173692993968662708099373524376973044234746598180996166843722927393625678751801292252330882852478255891515845648001429615100514731349984482165555581568788978804885143363944907192214105866925559855235460853510258146249063631289732133389470364049726384170555894973395858086174444746260177784416210370369526486724990969887683601862674781709963132256685579161334412493731582763306944852230690849004790056320965766634787109192653587342270495466015252753878655951114079928231523700186536265476061769176273880903647809050583571874287963918562843970313022781169618699321606570113350226528557239625562123084978958909849620219506956682752096492418806026333368433425882196214244397323134567067232439445897277708934766935868069530015086869453003529992778236799767183293556510836943100451878130159426648886850573380063495769893302726774670052858071474735807054358109640715464246911604445397678006640630741871370627445491021349136395327138428317217429474158154314309698924141341798574517953534069411405298184845416818115728677051294122251940201407656300148237480188712403187310894432892197484851679904720892753642465924233902015329452517739056330063800320078106443624040690144539223170640776987850108050933010834563948341842800985558996926381286171882130960182580844445549086837611615198464069234134095173795271893498075102723933946962042730957498207664900760374726232775015570331886755182570488476338801474391522792997330709638244656395792186610159091894361620330546759949780682177834595052960782036888308710937857016005197305840385657224556682125207967976324440014762005858046522910999307149302097975101092360892052994140863622731300019001589656513351850756933222605668256888275240162558355390870790681911234403843517501743593867502017623235800719660074602574428911725581957897239700769785224919159986185039697257560258451051531654683981697403895998681734367257569772743045885075478366484408263353567066024709430567796063443417004154206827036842457109672664811514269449857023962328295783208136635620686996347085807493290996225774325281208168618922345740110337290084518915772478140240563397571789871643414513964254615246477625542684049564840053867445923912452803235644643553876499808579844728879861095642581943128793807307405378423651307269906941678445572539139888830436037867907469896611509953439514275055447737879897971948291639361270219542088429768388320250794502903342143265777978275699098307073181822614548855739686434279559721924719682819600194963555505597970615687514652272087016973334287192553420474321897496015078458624071507352429398241314147539379949739992036671550122178039995545827175738456267439405986169439929183105804622624294807407536369553670215858855148532054105195569948799738778418482639464721510433392006908739520752236806301491263336520828193719328018493304251816660716938189160412797478595333842249822623151424184601150633653142874071647902469477242144545918004413985688815362924002999152227021890234202347259473488694577648295479759890563447050757981137533587621781289985325467565276395815242193390381560414884455942304643312075489700402640623349522479570595921287190178298348627938501083281141202992507019689540341343781073433762488587244420811230045026366894927862894765168845392815424247359963849463262718809187966682771928794622838894343442669133296701975095089345819513343505752950368039015814043627188506895381177290091888415578856997440347412618259648014487647069926470956642563350305061783970963222733223515697527701526754824245825464347563553718647004055944622903240355062915565684288767359301046068833762571204323443220006066646665194819934419262175936579990917442110350181411315509096013474796370838908951933000106280972721771179950538062792931386449817034829589332125180807705552290567593661299096400704168347615293804476310062912564803380599037110581788034326925308860301302721995480737900569335535856780950811017057913926147222345870807772245703794359347998102009124776790285264805433972111942548416228497234182066874409720420290917801759152189544172166578819301489171886410684359275067708134835393362138972803336165982675339693448359066356573365932700464679413856685114932493271951164162402388138267878840579691303467842740782489115350703288930764170173751813398814357482400994147492929478787979731697982282354742485445888700315699287749156184799414118653180212045749498157147741647542453868260130388636663449288850974547718269623368523505156887718703703779335478130642301497056754373319782231582524789086783845546232609029485761542976884841664899414101396862606332574330705441537790263968724240647191449236540630247188899401578130751633336004277940825842184725566618523778829825487640870252696996461896590834121121131908902655112171315166239893384191675338833439476767045540047928987896785879460140579322813213776384333680068622279511387658028996832658417770664083581737272079833311706529074183672129150923911431100033305058730375616438430534909357204531956756176384847601286046483167922820114207673813833212542372360838515010300929416028138968555010717144115218299613300308603359102793938794834708726429565666743445538873841887661029963633995662281042270125080668454098566695707816002358328939194421968695076580731590178956783770580073151052162129763007795845485802069290956948464678217155852698045339643976310137742564126832650630838244481394497426559622219621173422666604379796934836703188494949184271988684388379102682339631504585905885031183239526330310629492268375990478275322124479101098382825105151643038355212334790337686904434738853809703276946157317236292672758188500086155909311103236400473472187211565618905076171148405060702047877651950605783959963040719623123836033156554849768795173290598958703678008447264965126147129164106770783541163622433380889710486849477674474417696421164451377603915348773818836127685202839581257077032654565546540656192768378563061983346911546869376859025633558194188607924144659957685290806365219716833837816896262757969442688418593028417860580771791334212376819185267498289771797286957227344579983836649230458698221335444894192148756057390537355955223161078634050922253645681482209228541874012749617681011735645232140845081253810457173064046954349363286581827731317844167035877935972654273453479204005149669481778969831164814389014839401813480032981099442632189657870487106762475323353590379797723397679869206656186945476334029093742766760511008194589411595642136422507470602568934882017456000343447567634330268516765987038667059548941729704178378222995492132801025496903192291500888194789767573675131160684211202859700765454926794515970546352432380792138810445338613002059139727341764574134228399541865954491196686228253332308234139774101266644870897082233553855277496009269070430470335007817994490124677197255731432822686759299348104004178563837569228016314348680824877061347542751911216481192307263439208504774992659678362554927714825431120031984316194347473672993534533528100838204109298096310038251713461731648413668768538853391395221410473968677847577107949555921658024909424873691983805826079964277989503919144233317186108374454711122023725188909556978753194338141165648413619451182810712712212378329568225392116104895169083002139914842258340142269245182673930265826668361173208520587680982824846723116390251729677767120107809329871028434167973561598988891544134710784275851316731848059976745294075337720758386301706735582966309150636884509511396955629360954672322956339960959625054449837868682418397069436160516548822507608801281001354337396199750945964169170831324264811304931879737021104369380132883538666058828965971835027968430847506688975537446328731442092381789169399441890035898948011972355945319129545167124674048131697105640668467439540141399510247116394180087236486816924238911209605042371075278743216863798968976700068238317441704542169660305314039693033671259569999009801104881937501135682877681184012124978027607877832152572924322935323660386535328324668694819818245333688672465107094807714713352741362774458618589313344419193989951908946172575574233829632915706251855974349364151169860717159029349699026500730221516864170205951634010426597912569935596225497942707946671799502505727259452593169488318690325030976121578673909990127359528500338428807857409982810468542950485890739848195889404502671787456791495904340854547996034181753114307033247177421468057988248224164007503721330647804716060453069937644999888649735659014937082685116739532753540492673081415972294940506166197620331870160632484401118840578352175948346574179617497737658539713052106498399324746658179012858890973744737233460759243436300308280641212890349220556424550664369486978702956847613993765570710424250696082386811517394400663566326683360814934220718839561552343742048593089965095085584735219622704941507741894334574748255932326145116685795483573428424846234740279391485671218249936012031635493608143194047074695566990680453946352326404953068614360242850831616596319646583733652986794964367029513110952589840643923319220180692947394588739461681130119816613142550907373900997308817251074259478474658371347860384515057211900642795442664382574890289452919143500750030443575871350628317747006412422132724863519753561941765919351139114571946074968045077683726628838891533305890418375351067252011873480947681780512975271117083249496354074126582935068321374376680861238089866299268577897463958072813435195282154753641126333832703737950976133697370103950616548506080270279669442946327209186357300892469324825095948704323699387678442144993541016242218936127499654688878805616752964022920127210145556334610089215271998265173722939442505571847577768940658098312829053174897235361480833836486997274003137749545377439272193070542941987601252725243749454838654122336930258930213055418651410507930086049798458486765357102601368527326334945400180870667557181934942685233382343647474415136467645308568032404902407849324176223995529348090215324003018522913581617435327183262227915763387899169786127294627120547707052074941445741911986342146294680847663136414053952511020728107592504778943091802127257565287703633925879050926725515301135339449750223943366840924268428378002415372688216458551926629426925685568922350080386177226249273920266121906749023685422856073777888484464504766136914757858725947136753555680313823151428890600922822142618614421878871916533293459769720032758139809496816379755295974046648027492069889808378817381237227144866922474833608633630769940934451636873256241335782512487886649341449348497637846746415765139230870011910579011068827155693965069983643188304587462924216674634004098727084330727078526142293687130765430164963867534964548873029259002185832705225345026884544229415820525875394911138951771413624862038543316085350222987034953036646203627337078390021764937607076939876624318209057055829850811894776119131505236832496460715260409427455229546096002565602953656630705917092794954078314861576453830013532721675979453420517804016609996001297148648779833876421590783913824010225320028872752442341733730001463393924238380774462468963364098950582870513846933240830236358929095745866030785623654719520216406951952492181121004546499895386609913199615199505588324703523931723058506868354313821863631884623938637241929046766980156077162698289952041390665622835138279067152652283960844418061575030797385346584780860079900947440242327869318358171485196513484579818866985294739158528566530526580302092286055498096026216742314363887881020546779000382341779860480309981465129402680652503471922760351299838873669058023328718910929199111538166363886041513862705241940445797966241503009408714595954639739935286624247105592820922421026730366862448897930130586396558655760515346444603404615589973398194441070326726871915372746556207921737024306455167786977828860094752406235889835969723811988862387870808066740646044668523427840008443524153027953540524302268193938598647234596830924454852450869722513245295249662613238180185151094994678119465438692734348527578959462143511266877540557182604205451949306335869952008053068422963691272518998487872725943850247760877566692981859706149197941587352823164951508154982282603588744409184039424993391840237741654413507647001223330228341541131716539475405834895099527214944100831388760259126873241520839074979559718217138075079124408085751227532575303362215106307644955109889851010217002118234942917302241437563690938699462075087144122115555222162373833134068556376820956087381258555020420193285561846495875285992460625489786524303410561643197902285872811915199176982909397261466503155897847016953684466150876387403595779020544303174415770521954660608656569204855921772872963891748418121046690645756778907434746217777843554607319740893326307929777485595094919372746717666865973754951467888654030826004770267154320130979509911080253192023493215808232624559103650325246608967330953433934216105631645089264368602022799520609133250573210865335006945827795075796898095292016096830554583689899536876204389589535109554196874300274912667501148163324225975576411768023109295310607368411631038590912754689712392606276826804400324503334073128048343123988628092978826839858408860682259379793209135631536256701582729903408635468565213009847210913952203829589899866763652293854516129461759440710846670831872074150103825557246185961332002297080587069860577907149899047393852385199083299878379020141585008230695397845941747237769879166157363943871758125345560696128702985962366808164947728127565132153098809488421243346163821360866596216246334311991879824760572777325235478002046770806675829901184136774519450819436938375080637986485092141461931981138659617495112891909410725779551439328762266414510002168870068167299162597361987334115019695490835537076775177677303467760404235202391947854510343529798655734438151045853785847829519377424161918781127252988700480353087620204062247790626004265139062999859885326682692280094545024790073938697628236520741760760788572666379687958264708710152472798161715847111634140103824444618516021611949620293036178249434891535390798825868496384033704314619894152499490028636223634212281945660707293774672002272052176824385905745089298863801145355023784213588833395077303256009365805771856466728338075852410863718767197242966675434971498625663785981191851316712783837646354033409440960601852867246757066040403364316122228118209029788746545090781802482247299110558776771288304967450690315251490384175587745157848941697453964506039250902975309489833120119239657916447867475907124814822011865727891732691934289051115851420409493233490651415672996350956977412234576509962579677473445879232465187682326040211178161503557341673747673015731285929028567446165441106668735215387254609470451363949463134604330230934933617576791097692699065253602937538016761643796749152996284586479144375705580903301592016930721209184119496907421217552939605867508076885403854915228590878209135311888277668869981384660243446920962826564538051767877058083356286142177541472479625841696799741519090035650199286710789755830679968239712190291346711622331199026997016431753003553931439065372619295684789179837437427021498338421094184752904589681779876336560505434520399186165932557692503699422190064037958501685323693396421297429932365135817009329501634984443074491229773173392948376052326597716830429178737218661021203180438154449042578824629393899282067121867206510869346582065800575437832456547253360557134603624082540651269565698557741625088154786109943872675262175413132432343376018058448441424989155164799028403299856962472238087993047373194226328405915006338140065839294144857846108027644673465535693162744284851887284219351574219062875621628995534963429660470803089734063136535069284726622250212887484434208630071912670688447707879630818124643070045972777052470511626797567406177067220472896149506510005690223723209552382911077878749328540012330697982664735280054636066656698897872962024433064843348805763979797159801739895204635293076741914959213516816517990903119303756785994967058087635682427606743006243342546233022625403505479417619060522179933511465518878114901088023066660474041087033238336585332820347191697320008584707723062089097043556854317863764466152400734344127802315938343454893901916800555502010510459389635894509374723234035133925963624610542760132525578415447158452677982504937775744867336019097384833836749984613085905006892475343722151813321184999811141081272244411735162825456033614235064819708809454606186427077594029823871404055240326291572761418506856214667094262405901214359033251096211714445388076300854912584704670235546756767608883381257840282080331395366235808122548738591992104234566615872040511279075146553463551045626176894667195686849745167624041906042773259710707253820251039637293064234931408865561246286765393212865091662750013749657847074137698637643538772692167549407758503959235571836533684182357280098350098801773667630767625835301364540663333512257666892823317695397788747533210420133384878206139418824431281806312202437842746300698150756815671513097153861487304953952674795597378241587503847601180835764531547271369491036051356880825014271997228549268880597951643483625575268829842287513035141466057882182129422170419034641274333366514811133401393680975559593302317060317979628516949101166250676086553274620840171877443346452604632212953625242250802321139456317397923836922312597455577754606189278927678199600371866948167813622908519394400271054110397317632813389833503727557937061762672821764411780035447995946713510326297847456222170933253916657205867753880918087863613240806805134581071384022912535589634861726838525622903423674751679237346695065085121365010798566665909063647300460732004455012555675607630374128788246771439996927429316822869042724072954464580765681486252994695907130028039612701081276811651393616235166229910058574685307587646294672077373738830707768971386317791155023393851360729339761938814219846845944192823826963437832743258378423064867543638384517821283677338294749958906139522227572145344699334155771065155416406934902769930309379755929953900624000295748730575833809588479123199915192987845614996133861630820953242588559288065601687014553104345857934808670862977027185804502009404337078896970821962964466340000145633513767591667823315764240914250927122173082305708803581662404962787578315385330077616955675406509649323259057332826266205305598376286747925303731327122611276279697991639617518263309927713070664937206413392570350889778042026456502175128653751232920997703804427421165705085147873110517102105231070770289056885397382590429141344806700391150520327298399553175259268884095738228472613773145865870920720432155675008109720767247503490456009068210013415108020214134070223921541201490340152687676457410831787336791170316760027805985844010378908433039207314613469327005664993145854056032610651138840308463364407833279309585609798222911706620325236684471897812739530566613502264624651451434446845839879490843366655577850996231206278669495905517415714344788237635851443920591264135398366197547783152868607790061298556305093830761201062669684589602270541939469298968421343483652461998257642224342777335471979683134388887265959983090212902535466706375051722909061238839852410429018091979632142857914828900047792763943199311801389481462721241694614059497886083872148355924560432086342378833775985808787398290046163007913843840423118330845498312223452530596272364405215048732629163551232169180343332250441127137932570900405132616623657726505071611001984059318006181494666373587289150847370383260602843908006956668979454613911988790619046791967151577595672891214457993583087821669495780221380764130442051291909495823525004026274241963830802038057927924930958354155494647794234274509339307432167798013755079136866521362408966105596618499175443441735987877499148947746800066189493741144821928100036016342093092672546179201860148258594573890299220903386896742125636574694721320799771820832521708179599468983084581678676032127671274212979256897506291217174552490849403506675848911973146641610623866307337564996945533076816592688320646401260365157137837211699314239020279426302218434323630585254212502217067565270151365568090553201271016436529576717983909677724437741384554625684005850089148356118256840431642814929922894996524837584343129275240309824290747310614231286523285538988261300849707040516308013783534562240233764777185742343456985179572188308584406802175096299510341289283157926584056098993297805663871889702757553474500197594120233669520857716631947602872463687812677507264419129923879401741269937117898746707215502485802475829738524604493777099266015107324778015410515688570049349245809327142563684155498965088834479714735716448027460744117376559555780011711461638190056731071378517503119632902128931087303796741983405479189285227579733701224432831000882379411243891097075931865497204992663089262678777801814910482212505097558146940700808484214385160117619225212377138199896678603684925581175422439183727516139071650327788314662389237192666616904353450089316693117397968900644313320511243730376001367223992652993930753774096920507508539532215424569015717283737444245359970092065657769392350223693002248814989131328776903294277416717611562023792580277408687750135367978147938123756944826469130555365017405500015971963405329925588937938621693309372848880682932613706238733584679335084769658350098061685360685753130782284946949961469087297178379790424196225333193367085498861040935247053812954782253975510801182652706133823072315151692129318336220558611410766641334683216822690112002778088652231665238250417263230576432934073194767182747460348457283976101782553609819389602933398003864927888475604827493819328086240889495903681451536651837092023854982193983578826508934160839555255008045954676533526780180510049916656920241148901948801699496324403315893686283660658897645480575443046198713191421773801400142583699625722719788497102416180770997655221224562560778946243860097568445688037496262105927525318743194377225915053206221165914379488317473929093969407301155133305853747585446246400469810232844182679511219624723268216508608937371978875829521543519260445938028891846407670483218804147211218310115148560242402774686513783850483421950416683648364380334467268992407767113921847288971693438214381043330559480869729384718744344978420629625833186593916272162373033287660611075070625920002151199531540405194808914078683969494777948808131976470777088766780538356468008683228439514755632331826847213863297112449705928883349498490794716887433628949191984596189998908298106278880999989428379844692492197487186739507162594468337512376158567636313977936657694317579595053231635593201190045204205015297733027372782995286433623543157196787963540966437635483608059216913588628386850132519144599278525702094973804881074519637485386899103167856649058466966959209314289195364473398776323328476084143692542462972767854457605008502221228688623557345504747447118926870993969234330756446839747023300805085453446448031978063516216281994875329047353216024829925003451768486008053976948825765457650917160122662308980312853714695736328093614696009128848095333421444686859286244703572886043498736306110854365753665001198880204315735944361586438710303906398538175506291568389532443189866913431189270811590008761246204798232624235624129324009900258635520153780982981337529843161750341842193581866057416331947186966831039983928166336309737557938460829209244537191097234432571209163097811412564689167966186041519095200047496255927589778908596452985852044461068384290654052369945408226428057900693716170239149278877547244082940736776023717788508270480330857654998329327624794124044249103888083980240095833103318850015899246570523504112309460908510554310953053965109770452695545220458255692615246830053636860885782649058657949419697087499686304041085971300770330059750878631238920899645522609590323796186102592595679465535739855469273278102034217408561643458367757903690601811796911192835547575348993189850092849634428516672377399286353128523650705627456450344450525951145143073489034865462935789874175928685025711714847386556200896328386688136767741483883137536867195439321149189083947633253960515126490934825414936631255369564058226902387707645005484109702438396766583222476880064162522483000803701043255010806936675857869768264796749990596783073512477248871047502235945290344032249415855019876138164352273954705615770751495629969184658439352366595526248435519625387622552712590072347154555335324803730138023185557460552604757465972639038658603365455250871103625640259954978658685384767592381214894610484639059377346819630473957708401543512581488641969509166855033257412213401054716079786060359045753278680947626870863073673020549227442150313403202264577382475457879901677340789184881388185127225166853181811972078394452231638448846864603541408178530828469095415272628331091327456470775518806262719264639496402080380479804419203675475290090979174110483138616265406907281814535477059726242107321649375976284671848933284204685635560750631082791792200923753268974584005464183136713271763319593377976944433136454921908111774490772534729896985595769705428594048518244889802018718475919892735029741031228901756903882728272093082173300247915727257286965291614062996912518189110058457619838877210109241988934239089049167699483165835052266267101205839550035785355082800585859361435664023179939117066604562630002573760136326410697524931722489249190843394757117102206564950317631644298706957686327485916330740069282326940792047567307125026281556731725218477297354639342548733513342775042340027046824016650608046465290712101366406475411213625182567354982523635650509771929634548319517055780636791551299366617992536389475748838988076889643003313907728094001033350551587840534731731221698519417497529826016285571951844674702609930450674810183690579513426833438901647554634388386883677829400543525516101997462411528874471169059679166106269340195162757748278676661859881387274840386772795141304119255975357922117859060352708662294175508301870255828666579934977872024866790634774858776305633489097356809021188725867539590261304333123939855073215916926901058803734497062188405575843553824908506783024502490266627562007459060260755811592067521944031974570680056960313981149363959818974430900866937632353565902401522630518847542607360586719423173177862152349457783904956032967151541146285205432471892139750587119892191996992324047712686490317106786242535959801199407441446327143832996978947963189414384312096533606106311029977675504043184207221936056187596529837673839542836564788769015263644909749273617926001787687635786283663278046317565775060601053760181764925969348148023489672896024043329758922701025285070609987906268956319307463066446932526065288268371631887345589006701694270824428557724859552319727801723315604550649660441991230523481371260770227159378973662063316898441630058555157707872917555810451731493016043407383997796341450980146333148351092021750153169806498461420442274922206409062137643238216905593410175709007807740967977615837644873308318821477195059840632329622805493411537595332975065974156240223189499220505919326189386167913871698616476714324667465295443272092058615127589502797956971025285085365431432671514048062158761021018605000203322832254719393564640497672827034571727383976905149268034123949883061668178138859287815263019563951645147260378512824579396027026332631676627204334836805516817019563388376270948329281135913488121041744257481784336652809106898614253095226307081187570802988838599625992402107467455594950435163121530250493995118763467920827480151727132992986039565618915583190360383262253031391689535653391853506511961523905809150424733043619269357110592266885404094054611915121516951771818321113477156843814926475733777769512483028626340295962868018536165046778665538934445467590954366729221124153342162785286156325226678735176226843269991167314326246639294081796276350449331646856455363668759049059634285927495100123207995837848816804617262722243985242492453178752255155449418884706998636691192700606282568555503219315909714229345937141357483388223952917218612752897180313847906558682180771883906045084008953190057290135622538100814208089353676597697781610410621048268699382361159342823011942153475476839888143099531075467175065504320885134223835244722056442708972957244136453178799092195944848667820059594877915854123364102182663688252116586141102978862411201892556566056940844961522191847779087376154812903118206291634727733180617216306688368741978623812041017354388377926448252750891410331840352505445102632684683143332250147201125065497937900296689396934118876521250421709092344636899075551690673067366428421309885440882605259573230262918453148246537267737556297312359529766030472197534218744341065024004402881964198487700694387552769193539476553399358835392381175528431130761802330770903772896597985376565375557598797241180475956406541954826856347844875760599824303372960020259698281400316408480312918043367266087400261584940066801073670093857062762756992933580582945429496358238192702802888663204167739618150165462247079258963371812127247655432029177200628375982204321477549099443977609354769686741943179256308123969335726154370075458013529057451816794375875573117242626964705861884340439447004575520784504492086138775097720197342403098795942902302707076260554677126265939342855176595272969801914356826451436789618670631463667881802217210583423466964302390605949791628681949501885291403776519814886727340180725470389332905906480737622272060464490916200231864604831602019232469609195315001601613168293044302124770001013005834413538266982380349918233116633761214199002780963514194362374379613975481697001350521479737485294539258708797150800082629435784508175952321347088856619994820264152507999707089916011466149639893884016515399917938444722009910654167777391746377950552071872473415843129050835055345241962195399102217711016451850405150117962446756401694418117018352417049465572615825177047986786063707860868035697199021771186950100813912847883357110682297038241056337043182731243148592130216829554188937050132792363547805831602073134792495247495346382519493303402042691436558791186211042403882558744695089929070851160667404227025583347530161140250929562891791150521153819235544761574975031780827274449778592836809467140214190561894568944897599964400810751401227037792241426319446572204459357567048673227367973767332574087613672611533283408590839575792192929726233904322436107342541735205263620628930422372619274271470381995398756245168771800456976611050693284738835507894226066856919268128221118149921141613636058252161439644207311920783282149201953416340363165302619452084998377809883372114624840746946520116062815470634938991023769176782853226769954195041075162925667445824132937141540522144908001639553093741232669241979607275816001294707482070601105824170631325177147653221272592126775309798476670633390001675904778030941552126686660830821978746805340463993542997260162989280203701799278340246672401780836749706473648446105842962419250226263247815649779624077335852865337112799089143811707422917651987990722733953846808367060903943321439620929255120975643844636626986309879481580943332435155583682039975206370721974653442367260972910158269768817045774807074370130237726742787745746141746609370381370470985337455303295270645621679007019856722782712177878581034933026767380713232369842625534255193861800682150062930885721912208130889071198696086050358421015727641924939073060418511206165241148043727217795625318246225858987576882296025203777436449583753412024948239059276577906430413367659399368615447504202222568759196513953573146068073250175007089557185124007906520044245644778423325731635926727741611849383710053457049422825949791242892622795399879523192646013228109408613763612256425628870390511975049502685005879131545733589449711709585010456209668418464481690307179136751932203418683418439353855921970852002471010124186673642430085188595869322625260615524320785822050214643691236984851497824175766086436612568275579361350779175000282897414689056212827763212562109600009059443714600605326311521481332270675746842162502231818798154950434014108928433041740550506191131303370699467714349753473277907472958483701453835917758006141785507252636940275153227744536762547329101506628601496552547973832057342799771784481443828543549537366739673316314077463143430259789449286528876678614799963840535387784702984356291163497036067332631835798075151611096564367461498918849907359130581814961157110465928228925020612918600467280435155864768227495523633137543795552950851504689837521354868928761325897657976787335670716103827238411499305642272612275962079646030867974185295765707057351385551961743155563137942459336605378840542859860437026974566515659813632184404130704233851673460484847157152163453930797094318655180850311984061403660640966679951447747253237209494937520953927056430126237519774716232994427136458287590826369059682777637605099157988945779734611574472040040122547815612074545515723063170727075347459649393416679483934376604479062699256286516286261200669798374021086577551385664088745230501707657448146595230063066588365590107764274388056982766690223968307124590639252645413269682847875513303681036634474775426204891912811779007207817196101820856342355137432047131707095160276828903480281633672758260537093096609772894587364008876361305640597619690006635497117888696943915485790367138958631475260579279741762406369696263865486392501068513958860542330747424330689406574122046376454082821598657136355191342640068648070298713081431407242463652219168288245588735644771644605276046871280744637358981923004828810783872144116276778348255182412812248043301370069025006774252974692390900123423913532729753719652268613248410486701311223358366463888800179516788679489590153968071053996542399613269088912709501132025769467357671609882960738047774840690035520388536932558532521260394308442998389373912017325434433762910269063712909779699012479722010858978083252733055063611736765690375553572607206358345190582110108031763240088515245008903401133023632660817617869367139804308470115642457325529496637644378889241238989265446521466290662036319586253590189911797038049007015663325203185242953928778623829195536700694356600233523641058742786477041703228018336506670776062120904231373542575638752263280203958222952872123742866277589571664371479681568266902471209952169520995519577209127835165731689585553039361183643467519818425721995842846177018268676930553212557066067526635832574211783490267404686315523853629189727680454834234789386550128057448771928264650572053670097295581565674175244506386703695612870475766082058356883382483302808595904814240802772713742603345299135449434917346002171496065708624209882624190158044072175524277865764806547663552932733188759839198838644617786158620244832764799326834407200704996633592075564092831697864121330981595366995718697709189212574791666303350066779663190866730757482596852295210764944920109667427929727785654692323596448602093219480233417309829516126855003181018376833114544266469993688843275023316723956537111906495118684018730390510109080207694893821943996559255572127736677853130583389561343798950853080265105610006349236417508971505153590307025640894468768271486834900299199425356557839620425086283964350860040106992215403025963274790280811868888408728278893729457778803541124582248117401960370816122538085644799164268635454662123607016538395455069678675731375826872723708706837835623398405004999858137609120034558848597612440234347805080298886789829131468781207955939852199535079943785914444833226948975515741272465546636843179198802807277404650463982102340456659065810300804207000367353528073605088107895446692245635295794865191531912415306344236786152960270698357552317440534150388930025892105233034159313228505435184887741966296210155372379739667941214053556038114579561405549994037141430202014156071472469355790466559727616088787900909625134939058336704425343586778591003389725726198677553247619695405695327773562351665723469341440680602092899057100092572408742358322561375928418574097810461381423270784904544831594453751363627276933188186878113089973119042635619698046237183279319841346371117026898934936804911969715735960975635622195908333930169008078405868140910466582386645206428299482915509823840200834869048289720783486997640460892784155602974515420200291621673077418396933068881852613381884504697402610490008184441680229611034737577507106340044473781246899345624557451670467054331475415435991898646082216316319339632074506512342140210249484756117676820721180200304461762938933923661266262882727011521360027353058337504573973292188194980412784746871468529115454168001796966092039798320738430398855126600156729923105856416953756091889883856750889614853615772200170624020624142528471944434470654876982362007796541168787222518139387772355002719942979672101163459882617025909628505441395893920190141937099906302905852042384940526641980298069488354038029023606941473815141625430083987159746946722450822049119568504422082143805298408578576995420855493892289391884125847239496464398192345393832456556964061026154607332567026991003143141030843954075123064714886949671316713548394421918453129440983245250248071815414929038402178918985313199346670591937209859502635888525499068768502882787338564284063904621526129925012022483093600786608612754074751340660345408904496019242947144021910687115546113829323111703311056653111645664878791127241951126322076626908528088966411976909489150848851265377639104091348523244864038340731084576550382392250713609206900080273718934806646675100968183628395807147250860618188883155468262842146427935630321326060283638432397533949103679520159976304267440169735672739295685964082835625224014531823243066558656610539230886091588174651068987610220457453890490074059763086347699583018243518798106103908795001862592031748989651044374342801810512793390948564447463060602786536799739645099437947329321733416746132801651785036134256307538856478581167092179307843040294536384105824026329583770417044694504505203290090503866781839866079005726863587925927912734300247783847421577624040670177893040634120550429026891781887097963379316741091056459324336220341594054674987725825112258634507516096133108650140199010508877615344731335607744308374989432275086232290697755750164794271366133171449792116032336403005251610891364679713452514137816115199588977996495095642383167263658737261096166327892617294265984923776125829547094531251418856945764513236592870745215811446484159750831336477905057028187917785735722980084495867661184793435429101610374363091983781674189369673433083297846298493174808936829529364685947907030818841513491752734868873579207321696513865063823203721612125490675066314711592068015815771400645444134020913888936903932160767505497842207426600263019903345969918427720132915297551934708176137573471263780755614055459258748178307215947863920177376706631599526333122586413032197653993165897494215953281164883368201612666677260346431351577599552266676199413757931986808657364138910854151851797514698937130011442626932685569911620476954801253932891764656006034339287948680280512178862406036335481279070318855097550633532846427655909029524698148189061150793113742352284261115242346724031069693973952760561833830296534867505408786193921324149841721855022661124703214387346772063673176485484388726218466325357874133156784300186073963854192393044739546453164518940448735750806414671924129149557333924640609684420095821672327007070607468550649736169800575309228398825523586305147174431924087607821295924303719804429902142577446741014965156871751199654836736340934551211147298576292888950004080319940432698681218024745423863661381901510475165453180310769273687169091908894310839598332058009903091921109310611921449056028894719785572253347101127143172693026071316440486229962405176086490360849762163093806145212489961124848527281299577586692092855333825803863964440573839630441101842721569733798417579378506951350265168888425685161917396165348447963985853379601852767950730560660069023616889824763373275169998870702139250767306597075033800320204129942869726118539418865496065857899415866418285741207599408576662624603540297059602118667597352308528279215434792093208688048231832684139043522096336180018695720693888544776853118177584744297372420160223393014729631821875764708668056157031608982103714297210960160209194469886865283198900337940301699787784382249996544289269253352050828517425564737376789393065641905835603573400526739490305897004227115608586991835745556833816037565857856463187039824767845157976484583570306408978686877573840537870914106640347795119407880797208202534766936381363195539768561543964414549768950748329987947518203144794091365892848657106136925043795391212298269816738030244528684827261876882998317426917564752339605643661373035117406738522747945712911024466175659472828843555166803581806498293829487636544941166273078744831758493556577836394084631569137299278843701486381269259341998099206679237562387624179391363468237412867244535764357689260225674272599652537332579425045983901407630025538362865461085273066553685343479630305434555538152876678015079571907708803860797918081893289475246644073974033950968479224430755557560958312461569652373055677250072148425612661112107944185196065585604548843167537209249670493475333373658041746140495176645563467918397001095455589641465335485611482660265449844753561549247056631356306406739152093196239907053640358705346073232817952075927176666883170170136580790096500361355417877512285285093822351443807757313367167039864991017174007491724545243194031030516600318004509400097852662957064912799081338214403029970925062413614192502041157573220759848528160051003326301615362826192563372479686861027368941995276077773167425876072531399735939957960555208143500566207083081134683121609449087456168756256420422494895271083153832125226922946556241606945776941587433001790410069403441662079400538234698003526514922532762862035609974179562591934910941053420758257689068845072709365527554715194707544756420095178271652469295780949396651433294414542384241705169379462183915055638581238543999615325944424501757278187909417140477021440724939631227927074742917522860004336293434288480099164888109660057150592197827388641152846100377577407015970047517727350998543075596114774203388744541200602524578924297330026576691251775828147835505237672586070649823770843443337248452025230501068292550793691297445684033497166069376900038542088695708454211104080431624606622140895881607976874792715782222613564928149403791345390894829807928031854508161875067321194644095751829089252781742982144051261650995307955044482248871765131555481969264310673290493404021159973244957957167870961301847112251728658353679015383529386798609311733475856751393607605430797959161942594677444418852756151630223402670095380411525189545159164845139744323262913774939674928824675389762604417473693957533545279233056562028245808375471962883086817894982102917539946633861327638529994297201927524663542735680509975693327121353554104405275277709610488795468179412058848079667379670717824243914468423775989960617844604640978710384431144257510888131455507193315598608604177324165364146675821461171650170442058838871575875880797076950528481429088128245660728491841586254422157060137335811089231827505737665906026520637451513060848908805080312566086551340176574389072511590764199068301112804275950771687787638208647827602855277835453448744581664748865398775829702511804926236948982733568641763770680108026316441371684429510226257565168773414146971282282524350526540317428608285550858214325355513743164093385770806329805595673642056064088542614625787773881552452985334885219723126150914640465287185816898019079853352351287310111424576409909808441367900050733814560779729273583959355648469483288538291491779949157085606464270871447374519495473510163248958217780183053028301057779085816279038730426290471158623845563471828353009154304044685055159445385296728913070013071091014755939755201280788006695375297110436587112150914760114275083217291963907248256051613978286849733783147064230682806935305368499510916372597705184782056409599302155612136937652835390585310056680673696988840518040374574112790839953925638858641936663077736658477708347743912950638394846140800651164860670537168376113758735648394102969981720455381157534787863909330574557894023337796334480863139042158941940149929116900501983990162932103539904108173259932213252253578967948461672725217891866992945185017743294375079920812713119126179649398261397445000520897867381283670951955496299675547610521947045160380729873408995228088147546803886843876291923438677731789329801412947337377305718062336477977408594614169961036880936442261718529695050110021977219461383997030899931243017620124283203480969089512932271106423539758246485962085811160199222404869618996994936776628667069483258170153067860099607111042495923926355087095077182572382339512900885424031591497518335448009610404715069573926718180306484559528785037654174415775509466351160669823867926248568927263814569183457873843987482821911634808503741249084802659371323694344208092366355305234010904999540663011248812936399761100961322547748364222577608481969044319152974382627986050729485498270173127400187328382771988665399153354373297420019172135142902019557136326193580921169354969039627837801135750087664372094231646681544916240352668814516497513830959971850666126537710684809795930296766777651308851775136364237073801703749833304664064952786729392008230010034136749297229839040826966225623327842983450740145691960871666393726496619203736121365964513273235310772525909410112305794874505292124222100894586814085644174059008596505430763110072607439836777518575361475869277833622738041779931470575177676754038579886316230970215054408104006459798223113761013043359086579305475132212332701286722049242909983017454307363342630404700928338331212309733584338715031906409284341270457980095822851855518810887434517756667045089866909943353515903072886248348354898312206713655204262042355535550653488040361865218930261248540583688022757483481738406187667752872070457771330897125516702603476931071289189699131448409741591736808175755105026359818694587423002927542057773333804970166033237604076190848309510755029372193765824822332277937740782023569695735153599338693105041722763681506056166515654912323951457421627134987642503372042744074608208451991141699169723072334567260918531313706665049285550158036643980482447393290185593459762816129538907139165956280171936150669642149987945599336550985124794594134171271602304377082065777612866496574001460533293274283077909315833631924507572704557986477492632809532324428292789009298574991090347629708249619446603796988837419131332721371448382500833249334655541613539606276243759807907393380406816754161360362374115167652992482653680953055436573575897851132760070152493347006960806253792123187678241886043094774053001520609895832826570691724455398658310747205102108105348766907208024051652196096119540107544858261015901926706440706387347468164916131607813966778167769856146981935656743714149707558037340043509734221096141466321602259099073463326020418408007102974328577276894021810026633491848654574957214396469777958395978542761720797719739595699571032139162693875177246249583101296071174931572932216135878613239978735556844262390850313762171480599283767269030169651523846633940947850705739827023916024981232633224579034284362591619414536665854632463606069824328716400442750913448776905631342241357596939591303465280510379285161431691826659134046778920523483250484220979508931878826533000311452362871837877031054971218606374263210024306665863926281378451906595905967701647716613577173876590189313760980546823882842211129040276063289792978125733734106051181266227199859083256178161987828764699235870954657858691888579601671265637170163515377381451980769185405600367322394248938776240752704592877731371426724730937900017383205281955729671185886268646570964791131534694964331727315312131471349555999940421857049713965333564717434804537319086699092283438258324610091821033385593981111425556165370845546136987201897126943793320274597826721378609132488590786459738436880671310305730136828931742487222883812643885424588401425514677404574949883730511157698784934548696635123294560378511371605794982492871530004267507402744768863281895141439660531774671839793027534495209112204598765920251487950025886143627826507128691217561769138888046199106804881949871791666453594714466531402569222923365680709776020776807628020569802502356244263983856725163125195950094979351061566987700480664800029012745116131468273963774337503136603507823569807234232344632445300874390028252035235980139198293076493218562850683273347088752969377885767703793479036812076407439341820061839041674499803002269222411152771344829680239496021189416377438418225788421585833132275532326418777542028540663363492267133677006548529962374075023787215113695657129438850754197155495470317965260426656451856260254883985909222564819742649636356566306839555510571213929225499129475846260612167528216205660396584664669636984816063043441173097156417157500344491704732324133825378881785179613189380108932700795841404986390259051023762712762723828436464767924295441334184160130244206894186105996264863126789890198917446177303141750031992472275340895277366557808240095603351870784444250113678069007589289859733032452307081772165455373033981043133477336412851434995923060092360057599084478094531710590260616860226601599365571449520724650792556996412891527183439267635103634274573175048699224822555663360685958750690315019483245026704854892647550240341341728023618270828547451339870865148461313286295923103464044796990900896934744855825598248944115417339945741752047636270578673963150772087545453597138310306763906774361221611874989962180049038660437053953922451445847960074956732335858426980301059709250193211237890056691103882555208946648632988715273550487359566441857803174556423409355645875944840827190974651689131407796771489625889409364945340418858510168269905343119139345187482705965949849557921939304435839229577979923244887302531515372164257151221624917642707053615637890101975260095011476855089174550237440062315093204953220953667085528465481844925495229808763775053372698947402471768453888458222909682853974345910234355036457473522700905446654952856628853052178613014916500697206481543694594766123863537810521389217208790112428734945816749954449117060705916613392765055183004566939392365963650327918400334236799721944821891640557261732397767142872045814352079031464757084303641264577014398896806237313737687738236838264545551502171710568163187826314448901618599792775508895135609062154125525729540668417026387122390635115082314696699724216838521915520613378590350821330852679281606512385289652664046718188188771918189179183689654291401664860413985556882557220733017805490477074145553306005466936715771690518944441700792865923769632902626560586279443446841861534471232276569249748549663008679834681565353622411508830904467916552772056517789300605803293534963370342951849902134669835101461900998489238967745426882313903460550659746192978207354268981178118446697414615543760583037574579120852145614081189824708682490433603360661811225551521620775976584128078108324306707127962552185809339249585961748000912196307816427555834217838815133594377817893779633397205086246654608743624530252415566363157867790343598810453837088985714419151652033920916462220697551400614093855524159742131834603763912789838238032272958334842079832301151191856238019423853953371091595686501783085017451527151826500124250577575657187821968480801416068463173396389135194930346363611754863988085539750731680290515351595297034884721381068809759210846714486323999523984968491775077116450590896412745277964232309474367026294099820761337092890521075666377088756607611135263853119834282717041756777300926088466859531488254606135990811900431662196574195101025445306172738602428541878241717286126688983179404828243824211272664692786449628427315852978441277208315431722722057903084794955837569482042653729509293264293551261712715970617761430223441075644515287919111012243000032874455233807246318521501357094927939093373825640403824001560359046396603611081231520620925659909376359578416163739928179489874065476629681775162752348212041306634318929138635653873739576569446980536070133638810123566772999449936880629857589399675273614064465538890384999662637115899417009884475975475893290933039403784838414126491668915629056273499786992601708385841223617871255650982512962343598474970146623764776061777567844703711620251101734515238913898179998910961475347355443056011634292434168540990660532092430756036998902741790697337253884091213090082641432966359305550133010826597891765860056141132177217775918720399101635268682904273189296073459672257024658846690712396354275573218595343726723495519926909705622503692369821922619675701656390096875954644664928463224163114935574833330975170666766641597159442342751774110332109567607737116089235302355986368430540039057895798843816443127176137492822260495348359197073889799244505270053631810452397657362290042610004398432995212472445315993111452256023875367564400722552367895172177147305830811150680165920796315555788631824406459801872550529499491593554754769561419532284276559763739485560336597082996263778190193139003381341047603778054791780567509916777362465321418586316287038135728938354269130285457312479788971854583317962941509071928377902781384711821388613404820191931265750020981499064349007904891118218697093000551269767424585583606502233579709652249368082889122567987009776007036554105482757582045494920489681828527363489467012257416718116923887931434255819307790647442778285260004589635171492957796337881633245501293720554689990714562814387025698895625008377485449312062997013023693615375385313081287491214536694971631595121473012564423194584474000755976880101025058860169767405781560542200279250751791414720217073508757456034065609162988024661652337665037309036253699846053918462971243878869453989587659826970988087599839779629548534963304584431622989478535180972010074879733002618122956639976721988933729197804219248898272349057104495023258163000263247665160276288919251459658184409610375737946968226587482158336627727740032442214413757056616517042977452984898369650285242740107547533892105390529730167321093602406322787808862000084375003705086964778197848549319436969773791060628363181268985278358785173935704157471138944162766253327307178074715646751789380698856029476196249717943373558591363063632947323534570849021965552344071045799437174866462827189687102413804609163122226374037840104047453775621501770633181433837166597503606117911908702980399959499382753032872918860462934350137694518072029442138015161250961909827770271418772045381269205899196079052208058730062840295566347428255191875315631570158931556706819145466471848712831433940272507257940381084653935404454639451704666570593426967190853918782544570104842533635640691305484928880290984088288520720962706756024175220843552456780041758175858661689887558155656728253387848577778726104189739341875893598211891489901802123441266482062953605066422176398806934768408300441818449330818845993301815345113162569602553850525424744264305386129445848744238012531619927186576497692953805797152808932293785360049033887446895015582735797028428078067688033808744920275804679727896815954794186532674289689157997569046040331778331092827189071098891012259663402948452083348492411535042923715360241009303745825749451666044661091582407353778389388216110551308590674707278132094651863057167025755195092929390399140121944576374747680503124026327665020627134396053358724504570840349626610550254359810019976952591941010249907209611146263526909666538400638565963072336579673325801714310067403277544239987426982418509252897923818222082049368882051154371783336234664399107607187336552957321984847934507976158861081987942243346442745825865785951465341858235599151055337217902618333317367271673904389771373866587981349103753895917750745245339018076972792266130285173335359262703869490289289660938331820757547340488459393478742085362475067781409952074215749895111422551188509677283060466330628035014939534368117985537117496517362051738868464710655321515635898655571681740697460711112714326358630320674616126100467278186190612700944072298823657725959726318170286700620585334063676273436032494683248437389872576479146095857186103255141461155087645594981084457461623898303891398208920284391879127111578028143137302540991402157937417691746478704974242099536629225282344729646884010987592687183882137140766706445421279568995763447444988584171007144408215136414105974305795082690029175953387819508895200734270667521880730268874459996245371941989005792843860848159353646872544713097925618361175413404874773758256528679419555263741834742172516069145641178920633372906780459527634168873465523473036411028017210720632682302525233702070793613268332086129897361388144252617452677656402941701350326404289863687010973580602979934347019577516796186181091785526067326209466306798075279529226217520707424019139988746468761516262221762645444312743306644284044748215674942014916817468377567905055479623704959900514538225187399416933139709795306337754588857468378019815832016229559485542123597794756337814628448204288990392828994247319079362124818949047740591217840125045681613595820084574640249320680918683580643642985197624419254754358982538945023118852055140948257101609574943071710804905008452407454636894362104726411373281347800180740403827177627339938989965760017809473175425080337346180782888508161346217202899865086663046310197909764468169970519524482153046810505043496131386645926591250635115403471314073327265325807778320173119783809035142673260293779557206069062537338133451250927090623328543350270114260367792988661597597961707222210400340802522015038564606444326901236414978283464446278652595761813198187809935893024895318985945390201920559699864494110542599911436709698805794188187539436900161855613326444733125924847109666203569652094955732261273652987443442239314058582877208913187909298368140706598384381262854675986999276700279164636538842523568858251246949401603893986778014277550488161807020799774123895274038215682332475448866560896459457318720576933815661994906569364042872618391810232309338137411612556013965949410573321899785183881557227234620118943833995231896033992895883834389319765345640199558606268305348905073134922713034911154458896883716567254055325104835890429866516077393537723082409518552443905278096467757320084184280989655700039931994387907638294532171694569565056672567829858716692482318499154017643806887885016755372752414539400928502659014745156152676597163884092787582825996447374804821237763098433419068747294969567905979693895244973605592765197645827544427849918452216298396807316037046112999698807527100407100944398838169566567576990496502929574264410140698771130365253891035183338732536716563836056570704509533039122890662637204790833982739454282958077074866304827870532965574814358863799717319851754166699384473635315223887857816491103444913003092666681775267624751787248642904479273550097731262504975370250864145885427200450350636635253728126170881602767745450830529861866523102196633400212644800544105165717190500726614023535820599064195466706240785895059262836810458843732597243928767152355412528611662050125776400380562641427005981127950823620072796518535224480982807998051912540339962552853278065576170654919650654614517443674684534758137495706473140080271570890240207796362671970964064821052111867991275086992951088704035497408184787628756860147845315151198078555998225322691352048451637582030189357323266008146827982268386127336808974416378665500635676455164742483484566277641679808640460131594427077901917553485722557579706887256609758477319911807135436440975920294552069291066104317064365317019073962425748871533549385879202875019005092540106365228388414375838308818003187943282577437889668006602065924192763393103576074211224266346061910481261965867279605721555966357014553760844417459069956269092428614130107067505313803226107964886249779356754873617509206217592333899667462837157278638023411036509334285305895634853358842891501787676972845919732891742218356603529299157403421806454155627256874408155853503903262469913167664594508662209169577993934609574685389466308700474015288916834711818354769950795645892310172053699098460676352442361673347377119673259875246158961397118840587933522601939973102572270567660360781351578003532509319215804428052707188444925956313028358816776225191115281339905617584785402856013278641187391221055862417431174166296413897114241421958294659681513828873389367087356319869255942866057910006630302953968883948546115406534714559276279130464430579685901617101800300114270330951997711432189209890395142799408638873922589335846049690577416349165102770877900323799591660342577419834405765935103332405106388012821328855738040615837007451555193486495894876070340966419783473717203385480732484238821924022295639752030118378690909633063764587193204698561103283311437163821703321503874350130169067095323436234436324973954319201302169211378723175648857039858249200149772168835286047191556500208276752151497548524971392004693428926829520450590298855847965160452477744258587090744282078372207581382665490161117688114532878845552373517935677980339877846693313757915860946238046452952581632177263190713621848827284673354507851510535768174998435867722001686966705727437975611168830199915340779529040703807965014796755150602020018715041919119618850615904255032361203815492518771262343094712458577174721929496713416830917131492730319570638193755404139924142472380237336556363022830565106781411410479549804104833977477469789768728582825783038586719100611368682369853390078367416419019103514937718216444075918279955099425029779137762496786150537731243569279119443968404159047361303394646417461699981019989450938816351275702909026345937405025380502062297581432744227734929997974156949410716690856715065061738145425087932450471439920370915870405302515800179089934192861134178223472514380394409364267927744130551005407432909712569222730346315260218332263952502074538815188704592571447367964391096709325781063893148130929687297605552394977802692105195675652990453311329935931384184581691937715908985386808441520568703321784359166502201170406965000060488177910921615520807789601473372664265446633618764193762961782383024582977458796503177168510055043293498908990121216925354624093085681412758975936090929372449778133439160172980309413267573090260984822495927597415299326998359895126453135478429411558334250717176035766099160929329928894518149241678893569917819244863546290516228476987508925490745108889631812817944541875989867207107797652140183134902514636373858747933392889571197792711032187513485843751804644937757407668058051557410301412871013473903757233347861880544452398239082346532802090944710503633711304719039148723715940327084313659025200460581749997119695570250273757071941115364283210599010983405952555703372071721775592372385549658995338763659146866903461730066270525269112012097689771198939067367288296738514202069543520079731448344866133655883205972700371644544000939896283117300014028492475222913529526454962113446542381634003903993363813894602007760501665843973591574279207901663050519760426038784944337215436494710781520703258200792612788371720236713167360912970885246084266381784101162194213960822569005339209873257813380286076923874132725560877828501736764246586260768375486321950997716375439637307013225469619877260626123085084255473517436759666118617171055671901278374842483929111187896188663834458725144522893364529899096196333225365455151866497539215330641791326321189747126078681582957302731775044045973295578247211779800567053546102781747823412170092680528899079664780175859654600289200347718965055216318878882079749756908324080983282862501329832718529199097214231797190187278373249824540849524286368251320017838550311213278546325508616579813577710322896934951716692351789090586509398838519176057558998881231621780317610468267601621952720092475589286573727264098689373789963302310448583092181626153378975284990153310006851526417206383021194069699387212635816566990488456105479503638104513343954134576193221816186382084510677362718819689638681570727663301735392989518835521293698592659503248546410801174366986791465686187503243968355062418863087355573287365579899788723936138368280722048825974409592021436104282970813794335889996663797940052471434117867248310130181766903870852399436235995687111890151888540989738279582963265134816511652907190225843332540652216021593368251861006681110073598679300425048418445077186802737615084468293791801313641292262940487749326083116812872705326511662014831952994330305282719798575617165325428520283150856874953383339368876235685074770260359945085251329649194301487408176283466284080821829818528146506775710774442510590013655245332797585688359502751199200646555001414221831127420819054438381265744604375188582603141945292294707892257383141705643351578729426860382482151581671083633583366072887379362435770337808963156459116868426242156946126230971676378701463257525714622819084005063169456711553746815262880979248897919950704649944445533183552163725177048576009605388680478096480648842406123322642825727861092257279890194865208142429010475230863921943276249744555818754029837773960070115838193047315495252062359622651477473373062937689727497630734507038640507301677777159912716670007423136960616295806246291913269866217133575743228717323751413317210297457567769008873510499292829586332259930791625160588180164016637069364420963515513900375959056488293599492433575506197943622418860195389778598916329893292618068849345758723287604400844769354056923125217317128917305004880677051418608481739642333629541833863432967567008306904289236530539329952102224099049487978413891186671319720596936573288155479039519202999744739727469961555345084104949855484252510106743196552661382742974997424721217626645188917934194505882052685437817718750241583253201815704846744327013700468384116213625191000066938900005246621919939274286274269293662584599084837405664954260510813717799194056254779958730691626929807846774100142206241202388770163597661176916477286150773527728912208494245251249374655241125361152309757345060049829040070681661737719599968150604003101294015045958586540199859815229825294495993848881525808599279322972479825661041955237746022907103418137533552167546580437479596383349195616292763788419167899117453984363976083400523068333592007061360806189917339462229411154202884945151337345614691762239830012349004532855481922131439530163528823106372581270859287448398209701356379033140847398014370947865101126712500139903808225337837594818132166973881183399409845038109596588482430745858574266317180652355001008110802415835788078508821567690400433820083114093447879815856283208421603403592630962411073100438362590001627936068706310001787524652742159460863104421097472510052749074893787959601123899587013332206640166092798205530618606974957246713191076945142989429241207686365597515005333855041383757955564189357884482730920517131950999210127375290415345875899263967700823068710226078080732332943640644210951849783945541939537985822658779658198117707792417555398671756730837226643811863069004454259673240116506482249173877841962526038684908507103373168329799805082908778379061056939295998844879026503028518729889205522354939927560912593010597595120468552729452566420323338609068860058214308843933085575164397901133561620155343009814912326591590780764167316077451902688279498993350309196146190261731850318438822138021964463737535058862950687346115601331922876748824921044262139892098439129472079775609195793193438516254968050442612566125179273714725405684914727021585530623147009605622326829313555889071628968566704690348900163647075345977315171870086380919468309053940310346030941344577045996024057821121174297168332028360801645076112300266514184026900086417704422147429917822886436625707678135706853948710691005936552041552091840908317767952808548735695092622038847944769089186963237889518011377606076450370189359107181509962934515182893203291538687342666112058838985776208198247491349901094139931111336625325493236958070576852299821434894682113884970988848545053857029950992487966373618260011205476163813287233038793875436716986555550379650739793140311403953147654016880010465208271374011144106123776844934816874608090683190707943451800304497810693699963443540840318259151696755415250088938636483227977120116178912759797675881665581579689238751786518373215397303049814198056356060089679147163348564560958029264804490926947704160572533410939448142979150862291475384415980979944246091848832171932378500505618580832192512289936284145727833508360680486393670688102148041293871430819920063598418807125042698740665037102303853897976464633780869211774730666802374914197469403972596066078993225811122008497462979891361794694250095333062319393179879106110613773006405733269939407803982231708068711215657895899083855609061831721875460621680807572216001078835751341154634552372680369958703087415160012228676960213779026758454827677292310989667310999391685865465925261784377243035256812938241246556770637510067032912101974395570464388986806516182227232191578939615587543507673136433925583022826798263631624206703689549219620884242701111732379447697133678212038242642742172300504057540275831738680333663902997425843011787123745974479418649096982147377153391248555803284692587809034616667808112380687242499868998253278120340513048572639461503400972733140708970822431372801252599427898981492657151715013309359053500020186234051069063741802458338590194950400895357513672923063864827941141806339785941034095283551833308571528714433543345788281335664473799471818132314633684018550973510912795231149181155778997427016181579174175740505028587312509935750235367936040768445089538385259419919085899411445619351919358491312001734134930631629898667137246911093664321002941583033665485606700273216180635436110741150871661091345749624070806393894820390250875019987844355546475468824617924126140543291319304458441151148039772866360296594388676063533935077882148839329547402087854083990961930772759927739159494099991604437776730705940485293175926831624870486406729342089553785860470275767500582919801873051841879305002704897389578777657538270567904386118257972226639274896315603548376074584143106419066371048128848393836702082008861880874248258709320000682866343089730461239378895245694544340116806954965378786229392765132389628260578075127734727896650776519148288075120934040375922618010976266062034239062974745371586084542856378641336760087197024226883722123975659507445150364898708006970513484829325256565374783346491861490445950947688754654896275103886615934046357895046325628784316195577116644993022597919090257644105380807140769659242755057024401718147928144016423327283390623888273578124983669889966935479056245622462939553369538563369521206047570023670418055605958946214096759747489263244710854246205553671049977631863172820799389854351104030268438558092127730002283321610314653584589907747133330848610993525920420829411299194611340280568285272520400427762079895115493408317568908573807704880216816733503375373406450063171790246688945735500817460266650701123461629426605559192370244618165449740889548924080753950739663972752610763578484241376501753797135303853697401305988052802498426532144745901537340331143463084503934367906898604535221765541782101054593002216885741939494260306674280896175086640118330977003136577228041809969904364457616033922180137498520341944926371203265798429999677274428177101419333647549268756527472424051625105942121347135584057994122736034902744162559159421384889771788940712191601242889629907150092286941320770111946466724984678683925164945803879641247377246579711493534042385484594200863729804883254029259214528691998177603352080705771149341806528162673033065405301130008788170111089118392430974327162322558240853020825623600792490892247042433465439243881679285061078510520884986343929998142838276820049566386685807119433754416792647142371787432373969240265153320088768092911408575078135264392991435327494982887756469846579411103903472930314840396281044370595761933730272524001613282240633649578970481882085677395325273867767418733244769668286579075657233438555886307229833995422170663071361707469745025024375630608891493939587693557993660492672314459179838137845755915723242983263213266253153831374500596695206835502670932523323396955827393485404291743149936538046177923552374093687944239471773415242690111618877154266745407713071770735778310079323642188785015600033169396430772090225564703562927562014466272986168750858116190200737855970326548722229547741796966562089204820478787076607204781658042985830256254274325655148352900658610304824353383234472104356328294385105441939799959021243217212850033953624447093265149848212435790934730963787910033383400703802456169655481518902014699278264725466884853688896760720401046833272503407449468428716500336802505458671009481792539116446058757579173126271462584303901702984244224290620881177032555573924450548450659065854697187116073063663045694596247904516968362314162958628914396031223346845810421353231905474403554116539887551452762556480606433784800129026065023851947549884317320095363500936490219044312301682085779366374351725719760275853229546189866163963371831815891391563726843213911011184644316501058864548643609998136252033996199576166910179319245996742228460461810075502656517344471694386804100339581891933166358269690160782707257021523498476798947576363210150023975298131748525444564381686543275120951738436581558013381316438140462535872744734744680372430133361289021853570124275078733048506972075902066534580971273437685643781053795579591261723941990003167237401700190719446878871371736535642852717235775106036780861950145527026363219333048558929397444069371589417628630982171660769713573357055360731896537069677672259045580432722834779852433029162015274702222306465612374514634425664046804820810505434809979118295157879024238722313065757124890972226648017723535093832357694925243550826621100267259174346632570941958540471704135819286400794137190512765124904178909146806607124735054667132218594283181142034122866754617196699640171023275259034529285224027175100775240195486570197392186921567649912643053294921189305356416352525446528147234567997015905150051779074322899032685562974767726608264578879117692337460443502796228736056991467072695386027900331199189278411482513994933866377660201813989701572432792316037705898214972295097157880302503940315629164033020549884063933622373666660106437466785635920021725243966081901813780075064907247888389645394258043228140310415890774505663052533081712238857262313358430502329356536849417259560983257785384404495213315958843808985191824453694111727861052675182010276405259616899480741374941973247493551701333034550310663591882304403983726560882661784429403743618653967485006849142963382901769575906923450059766940938636000182847449341669587063219811438389655904548396589049916217359964820251825103553545429022744787278439974183799478175828251251483492463999048379316997992937181010797396516545880523411747846600195815064996958376905311658314004087348888864086856783601323574522721928343586635692642811920598376500275311962300262954456389777081926496369573977163261531552106605915288469938849468627141799705320092178073098461217457459267361697993620092735040171780773817036120955535350142421453601056320909657216166623460142345346717889337669952988189872795391437173124374347209506600836161176069301173365933607665877420089158219107868254014299428728436000830968785954844006798041596960234314775794607074431266469067866374986254372813319011252417788816552326099197904538490389395602445544868836661782038593442593767724120110667274597945066128550329154071890950532505141978783627622314801893252637388490437710971350397416089635214635927311298350728888527865632530716573912677216842395868519896811086874344519785090054803709239244834722321374323313717083693205559978321690730142118087451985454801771903303576554272012180368827396098794310128136656613856082418782551899811348360683655792803605435197596849140363257213213854253807182511272111606621001164826329677614525455645177003720569877549151083819492166118885739995339514443518239621472862332537286524031081483352701501213193285094387631960374729128244120039536323301755256940100001369391434058230076132211706145159992028328215588710985374384373176062125813444194477377323907870204658971253803000122303363514633598055365064525645416976677563143754431479242823760238922303999340149003445325596171877562182719487817237889544234426182178679489581200943355815955652155150693515305167289502853138023749493219646284994077760035396707691706334253553784807828429014182771904521500523668168007166379147968638740506083821015694416039387104629351854720940234710681356825152314687868139635208394822666898210148133247240741262333668502257339408191085319301424849536498790858270707423002487002570277001945689156252095611006927231123349054935176387541653222465744447394079856387646097308245289478063643256906029719398261033073629711835305477141096128226365099593891090028087911231043360597249627877361186562017384801514971613737762755976540735620669683479895405733148501891633894150692747258667545332260245107409921084826840898060731562022787241989233774606905521262039006149566487766971855540828145373125845506041050844087465385241228676817705546098192709783098582740163364620626531927344002818039659804465540565442554011814752940330342276106001124792905398405047743708929094972988986400277707701678227640120292597485862145219402498093142854549732525010438398687566915110351167705170228787050662449195714509189783453986668673260025838553528511870569912226108886942295404162210249767071032609068865934126839069124030913801009216990633743885306732628241130638220427267071368432650380561900270422342248582806131102206229987793055481967982134473619545920014561608387636582592445838366324123974102429821229988747283482149744241842794329009165818494023665568387001121940157303421117423820230916244034442425860239840150086147339420106075513040081575534145585723914682009036758320162231273717661586026414700453127140854899687481668065178708896719983880631097430211815976908685460374045265450780528957621184530099484874952174766038050706498593372133139793017921048063804484273566514102237672202608159143433743253050615683267442457426882193678744512795615806860999672516163970689407432549342049970399614871305638104013067974110764382529905106913060221973236513501080019824932044317192114285318640956098658639483891093050310512849724761558702106155709118813662932822701017681254017207118079417095918499941886510485819873169920702218584366768552728507479602694762060526833548283136717125197819920020240296452948412835622992492526106485740052388295583197031291632508255335795016768074624432951472348411748288346437555763461831582234840419323831258216152950625276574955461353210233909103572260816948420047129869928078379574879156485545849837902792138306091916647160972365581458279531875404279165948070254459672714637304855265672954635112891995982480415511386895925935862816544423813876336262977892862794804344299593439372923085849953109504241006012947981892868110812918855171319371629532624966856171676700495360207016944126084652382539361248653407608144672261949904232141664993777270460241641823717857197101301759890750736148254997602124137110223125681323253664101128469051625009133603586197541109855428948472025748380678547664305134928745094946655056735349951200076943879731209894500098049408479854479506432995522937525442644701976705281017967136252353512321328003451146599987384075227314417040506787811458142623575558237674386527592987722267439785587077938735129305911301266219374015183489409215289491947739700722792756070975713632036614770319907069251281015565214468949187748233772376129616339623634520402888895966614424655449870595798101980873822293232023467227150226925751349081709994621774615740394238678053712582762530778060325947776411013336868995818760571803887658336609204735348243318785302596539792702943400799122006603206768617123756875259371026356997167409938360699613829320570375526340336347098020791521887606808481995381752869356685484883054948992189959489105023634740133332406049191130354521693596903013168116497167939192054304181367685055407069037469905149020787906812884010401298144646059579316758118268052001279800943450450039088777057454473168771334489647309632102011656974141209290805034817319410934679627021225185961355910093725495291337293693629313156911138409827637564160728620276500774913693025250061647649914534485976313077762805742198455772083556845488016385597093210465982814051790329798265503747300288510742877231076543293152519377715704307541439742839473750079532563492095148827164822686706001900220646253511452721056170550795891012480339649519591816883581691299587603779992911573545550309385057097685331869683972313194661160735185655090211321322366390382845738407261073815959677884015628800878347132347963810077222711393653467152254903442819299688435212514213153387862967533455496943401880904202712636478384000302367454548845834239604525702244963565125843540809378877896052660507844561697730291418733395509913714340500029581828657827872783339180962398539599263941236967749105619945436778554570308086034296358487095231666611681666302451508172565482397070305576357256764942241125637927129711683325552179072166645480081227280293298267942619222864851927252138973162438355332809958595639249949317958593365532882685330852599751572795771478020419778171535310783867877252062969452903766768414149557454762835780530323662858338231561340823124140660027953954303471390933850273467376983712196267545332851615576042755663430391189468253518130467652954389547740699829265116688783633564186601641899965121553001528164290139237931445597271163951169410571137295639668289342760822889702031189474539300974987178547132354350463341794511065966504441359424686090190086471484331285830911939774247666232794086746528420566323539559933517852252532517298900044876165130892675474074418921126870844981789383529046457463513305176520311902334842067911239594341962185031860034317055739031050304302837687343794124556328967779104639495687096054091169796145088360586623992768444927618108451576942320023226096451431696489288978346427024963365642916377369040401213731774386908654677013666346005863294617720135581710450551474192034960223068925919339953607445786917921326851217642086204505770416479993689449518989348684808107669895846476942941912351933019027719534829818503304706452979737165028176301184015090068102828701282805230370350289419745053292219040054969541526621553977286712001353846139112880234162975233950254676026530571833112315853746069460395362221647615611235030744835464803241991575850149718905094674393629208324810181751511276104989072451838488648713998942704845816779974042715847397466555481052640018351359530788547565338377523246431982688156407833795021743823275948175117954899747697418499575820033787735289781667836491624621102646854123861124811768475595440406820928902571129507688843836753723495975067988702784613564978842995409966867473461989938195616238702923660575350637987800568967488338859135294613234185589417464314325101251985103021406735114603042883714898382300254273788230577733746485126157095202102208698120822498691767419669152557152186594356094475597486457216379655707630666566869298156640486723006231430922859073760781329153030905797114613596350284317698871959492191114973360718849305460536275710917230982531223555391427801015779421296173293274310471779107607168901196029656584953478865213864520039946727601591123233800863246152961533889008557680421200076760934711701736498663600313527545726020141160111844808346978086895402098425723176166199976122558570473130717444083178667869255963107031196002582229037944740068190614884637146933354279743475531580642408078659122528337193971395007348368234944716808937978533630540170623248945550160674008465090548613227128277831166831173376650586024109431700868765417603580339297336505250361997229771249915166728171889915856152880703733043231050118582778509832944417312800478012762147655307248948364814265646356035871934754321084825831228426501470728169806363343414592586792432525644746718076923234720129616246755973406392553649573755683933088170063474811274762298455966310888767094070382602638610685626013879237505048058256745856018773063857869328563828386252670601542650769432464342329583014487661646997105764667266465799773317516179328331154014356473042861655460030701414786359681099887157597887500214283464554683912984929895643657542239502268212454275541232737382334503934141649971196579820218341872705293940785978334268026730115447835103179989907701765702608705996934336466001691299818132391024586434413321621353721930039034784087474626433702636803136952025730259116570719570717286239645131978760158187033112194508667489596718247318796280113351356921770178862535271767534893851289706371540401711692565629216358231464651234979192801796495287221054047091289728284250774721734117237695097517474557588590516032708424971397081219770880424036652439292163569038050290666361761761997113600311579664473675659826757257943512001692865003150791354417134721958357564921343089588482199065729215621719887638477389185891097861832976286185770383827742194914036479407983611821017379161997448317471203453527369778955324992281599062956485806191476251382190426211075548104183653561920101069545442680015717655654397646678182238020043656871264951834681251543918409518406611652371123719822696510193145001562524217833239678251781084970792379543046817063010087619254678266239295613729468778219793403219230552474948994965964730407362694329043692676839501987590772313753480231083003086447965626119051647002555507110497740357074455630071556446517741971800070622553675251150551015510490979715492091736441658637590508162613196568165237671822651996569480023483547336058068500256616287588479232316013254259033698740415559503912800675677958871562448760607125820790904091687174277785273382120812831560094356513454931922928247772133651917261826888617153903223301599884762704391345216848616642223683771799245423614221618740340938712295559024772271896487057170391283617260317371502671209972929352127842109634503580922490692501187414842230081628291507543335306848662071900602243430512852311152401538768207309371118671284494041421157588261148136805375065975750891466913136116756794178004732118847923213519875935087088681608704246648834890927318579713829864824584221175737309458077158526290566589223374782364272741462792667594995341127593546045314025358157710809007426481726554294727465712033438778657634681626510181252317703674064956607381063783243763656671975169261229001859187710684480762033017529989564436171583809440455494989116194223871962246749470776642109418935766058431019740601790953007885625377145890454640939426045802336646689830187413316645892868874541429314191782282560621743526780405865788033128401929370122644533380580799912410784254125939383787213515689358426390632121744844945595376195150675523686135522209856566227829721104811246883213502355264378931667021196067443841567276680294868109205883845779069361133515835193600870993541902807663487484618557701995670727912540078381255311943947174901334798007524850463873035635416038977534618216091030959189323615857593643387576605771986532844634081244142295413728876720386669266395668287342200055534068909602899846358933756744950695042515908947524366372087048120905093445978348832386264012458607471300352337437853812947152670646743055284034520041520970850848220575132112520736491736088846708891937302512080643009114152217960855299455382281128497269216808846849463727293048448472800719396570490625089518888740827189567861698788477092805222009270678388057177067533569002589619859667753867025269379107795051102380593326019871788778061513956502420419271083101177741993390778450497760855920073404153736054984027110829494919367668322035500712758278709990118133850802496912562476554105814953250273844579820171119955441969396016150641446592023666789241389540651473013260469913601476920482700453173898768551663934494300011704476015175964157879293381087820232212176696811620059854915699062276442504249746284532313364383612190634037945366629697713631932747791371977580837475757545439647127515549314042938784636052467504566643726762492967620981002976105891375129227934830773008954899023859784316525116769421968771422347818505508326095756810670545015465402181373404950583183547822690117886346194831457641956798205655112501220530280179449748116499239885078756802589345364514316615925432428881902790569580545116549394720035449912097990939411783072598521247124008051899626027091024875595588476380252392657077766870042533560162746367773204984311264802850760059467446156489100586183280752063387332077410966001669818045481109697240686929656118629969237556005595977809174571851573012178696710851650002524787824425755758830397013448503159660258120189498111233276378342156680225317852525744310077845400162278606433436189779726522734495419009667977467414894488958938179007318703793234710983013123114715375650009968916396385095460190599679122335148056490295652875787682310719924355730107548745267198629717351807742063521807051854755265080283783816159475234861984485636032559339209277509683191018017353050485479893122479601535477245148442341002082728199923063975746235460553118209358934807072118819328819383719249329139155707099450991944079924893589679602623384543774323609825441227671907443302352447102187072732219985386674583447059755620868424465603500433209159458811405780965217474327109364072553746784756798624038652049919199798169156154295487438706372463294426314974272899686786039560225858194621889819950174790443945333054875559869729828951548054694295625504198686640658946749824812356118860320273989368621695965538250370349462952121879931625859349178756122522541819914219256635569106883239344292300915613135507143481712029877139640805581874020969341826004477784489643822360437888625492601235999899317694513262328061884237884379855432487931225663041602439531452141758773042560930743933009073592828121521385210816941759597207542181919924363765143815001911124066765520967881017061648262638978837894750248715996228166371939397514132850197588487921807116540922043270009421678078616738896770701845526293330502322398180406249544707494744310071102535962720760653749364774555369008631086493234963676159929649543294660684620497728258794106078208903409822383787628122900184267124349945777161572231971754783038448777473570445358620109597736707581667436046462857757007811975529600457366997665883791604540837442748716953383192934846441802835647639492665755395912066424535629353370945079054708677985554322471449511219608597174765254682195822322104694111455767586814222743812037193895490791250387936857454077481525204680629822351645528530274235427354034944355650769503356691315095795303209022563629136758398417459141645770760640943566520218179324322506020961653136530764540110872254602115399328118180819907011031591705638370120370995895874688151701165073421026498450354315448573840852521171713751707328803573807972106821219311343822468337617919250365647948068253967437399044066601349971144943109708405371530758382361243559240686390839509882677541987081329748658904016431436716990657049901948165222619751289030474985905715717907733153964760784358526307733401085510865419643610345738435870238387210859448199589559870996366265651618986597434201862121419087523853369479147858527075399141501638437834436537308058625835218662010426657704839404980528276755162639868450633125039065383971844735924770004275178829022518611340254812445470845663094117384119063791818197828306100969737836472610343515166482368399600071014010130721967978999239143257699058971927470843495899912761336058444301897718749458407203080238202832520461750046857441508367331146656075893973546715721963003733802434513822936016119566955496236310433644175852243848519441190127663331311187493824658619739709151454160662093007906872023556547595031331425476442620336554729004204493144480265653960860024203791590671216445564045009396223214692895745450454173703298235535691845538789243321686006914492493405639376789787596579284161175227852749541000507489004792500898998986559857043402535631917600066280216326552270086290859104610743492688056575799586897995442306271788778366505255367739211049961762353761238097896796474824758519485488732462515199662060865500078279641550646160398212606517559908121720453756866238538691559733511587515163280552275163283167069879118927423632572706990029957095740807567579903592467796815533284619248943184172699496688977689926237072383006057657332980843888482537904966303484350876179223349166316325688552900672048158651440011254058420972706613906987043550167125663150431383311373833940589779798645120669831091351664957927548589697292474025886883515916197338034221796005762021173339062354168261480701199332195883728267335980694007193177949761317450438372888947820772686082402012012089226740391604560591202964123761286229845250071349623788912186954808893419971554073147628593951575997379001488528877246124525570536655167338613752038215081972901866060536619574511185739596272282117111443357371070590415396590200920854343396761600213854511092983021856861990377333786545575511238182765011587347476886567715847873225988324211957656937248444082777434656501390187053128453170008518189980088822745697044520162083258285818942920921900423826676099346184259328031724305543820277750891875409127565863780730952436687626745112920696764491660476891314762368121799541435245136930936911490856322917357249288780967390732496818216436327349413475163646787152286784331737444348072831060352864335059787671503248130407649350861005779729518112561185635559018959966004258431385064526768148559527126775995970653284389047224413508933580734242804211377699143911719576374921083105923162772814748766034054537790606762850453229167086093371803284849718897304027986459935064424304431634371945132935852698097844942640148332762897707839352491866111030168292632272205765149486850566028594369236915497814193293359824744420472221130378903885167327820919222961937962852361981965072737136711372691201924440924860696241170461233498520342002212887222968667451986393660445123687814886822396376818899219732981958668551017184711262390581912793139552817191122866611878090824300069017511228166530985122240798525526121750718357648862153848733771602484347116045463252858281684065458514043895806084409982516989689966907630624879044844387100965007759113106969448726972201770409943629164572844921198364068313399856083627999926352211389917429253607141466497721138764761860552216333058296357301214472111834167726679320647463022249298004948348884825834942322299830560563424938234683823722064636425011719294087210034779066506353817394232284494392862130807350845533686409715513272041638217835031221235921683299648107605897940136755933634082066341791771140895664622314049642843007979286309667313635901226842206275828918238955526050796073989155131184085807892835262245376605152008245099082518698256201840904155534735301879696361727827446104808391303011234051569562517549298714872852529993534444707253860488731954563601501620620903296383134467230788612557575331225844071255797049939240961621173134343896249833238897191451512576545238471094831727875435224906036119644086347956039675774935536473942390315980747205203989016493034005613755262728410603968351538037122949234809743420767767967231686510479179905346185839551295277102277813638715098596344338585235730420216364934844505267716366932238697945193036685871780442151786566821748062420794457891196518822103682444432817471423075571751464015424683156577783786408527128806037462394062147683777982287331793487962864389341436806208465600252724963106482800806884932971369304228495968182890088925038961508862060964857138818075391767301645607198705828835916023386595127513982818816027778595619302575440222814506631961224820471339280115690197896763793840176918600075252421647524975501336300504233609165073392154934553263510088043702353324461323010957481273134282530772125544744174102592234609514280183147230406675908700178792344257201009069380511067440782170410202027667481182849461313511499370730589758369876302395083661304271757295621790165674982042058721667367075472643717114538827063792521121643684255961169863619463988826333079210024345888836027842238078341529896135409330896838422943529990102867320451606289421907535982901288655350813299621097725392573192573944261925363600934279691814691604173893040380776933818560585045235203321949154385815344318494271858954131333467395865268288215676773240038477920463649970752231742002292573640918426860149928053042518517831171181140953642296419057843371634119781490306163836206209099008342936126631012232173644534974557170741521208939391168401214060029035964816069412327240738672490352334043304605018923619774070231616302160457081632567557913522741979675033572168832568677308392238342712098701669907138953855300251593228674062115300270997938312113422865388950106894075597586630963443012851271910793940006511645688546569439781119528642029356966379009571966482000525174440484105780017280614686588326509160160368729873267430602001722416570785587722571550495898852131845592224838908411130811778667192822026898556050961521312003976387883202503649000857174297895307890718661984891858837218281049427359824951737180658365020160038823424928510933833953065013455009628156646442747464752695094168444094296044653372561211963965674042059571712196733104768065017590101278094653876485163131114881087219367094060809587888160990038035373150073816785825764457728805783714752412290990008726720928290911835788959079298091331174111015716486013832625301160586948035928040648515436343167387023857929891498574264290859390354109651934146307131892015426983992810645745905596491669334963896856023270048354065223066239807726920269710435903047196158680307971833490292531451952614326891461269407658774594591203649963846222710638969844453720484717421511073600011312583314612592954451914562605063888774022257201028530048002245983619184681309313278609604995138985906314003990743387794115131684198473444600057444689885539007315837057555613810338908719737819178045258346152974959017229747023281076304653889453036039968797437018258759713960636381507584450253336490331706395740409561595664773431511502928502966947836338324486821126510373450401876063352587788202398764146956725276753571256670996194196572335614781543751005997855633755491247724278785163611796100658906268254061471417040664974135355680539627905491766535513209853572265172244837619332670257432297880231222628610506148385113930019665039201133905815158245039274412586340725597966632640383720647018682512662947396387005404674858609374262945816374614092903351165250896059068958383954194212735311616654781836882388577599451908885929760761988873105165433784147014407917060064602801234563665452086989908529919910469567052301096895492501651781438336480750938907734496377691622938816040002572246633955961262755498354147191418882878538235645501065331330869372996975411648630278710449672832223661709277932757832600611198345212703902672890695564577246206915212370055653626477641711409025083424217939487704972744401189783413665691904511487105381150151828131639674958402395713367097306386799191860916353914334171054642232428520094786308411628474149425084611737951052851177452021373689049054220728754249401118694853945004727397682841079864804206758102081622140182432126917544884968834910825827797266859642679475646819637671186614941168455161863137195218509870771979498653615301039164115948723966352821329445913454570362351092656451426273296416696461934528899207521511602714413551706982547042439194476345642895849969529227060098854809195886424354289574861983600997256036486227330618614614687941944045880605953194603155668065870208641049984411249916710912363076589106613631416833591143282582801346854018071060529354210945687381938497172000599918914418343436753413072803213660691553650056117097832222562074100933619086916971794682967977866616662037111639073124961903700019025683049150042305637060767283053989174726129605956002076581638434096097852234907702442813706199101996057025388654356259703044592674282351291657644809611787782452479143597263565208923478472353138437533790528038623840396358531820530534753066852837821176658025550510948734200966684030512567595404453914710767685350930700148212383268916737046961420619573087075148396036551599854583832173957993198032312440336604038833074311159288459166401983771341852385779456405120706739687286290609067634054191154793060135184091299288321977370575930483128921568141539495114641685216086091104420370626499128140339244226568197746079671861484120749404188269549364588261886526636639632640863649326913093877578946283899818006563511038575563332339680077994840303833600769399860908821770091038486521353258159307568859902623421552571291212186680191269638280403080860513058318922334329027042259249596448678316141988288451876386422800562121464994470160926103634667028353686500078368927983921049187816705331530177353924096923183642053803189390334427858961507432566332987207661361039765190497813571368110720771567227072519589984115860173817771538027482922948267429999586753371295743474069861896390710280148487424864825637867440897853306115880134762249582844115802816529406813037836220591892830680353720299938669157119454278407954200139479440871120745087416897554375859669957972408791038676236109434814999353567450177972317733946198392108479841417842974806677805945827112102825191547645449085798880477566959465201309462613703933097455222057420550171634797649090162278347508747838415091999640725243492044292240712260686820889712941837592175514105930754319759588309166317008130120098207211322101907884841375580990251813058645685897214439202231316403158602745169174797273366663865288361954071360166127236724178839446285374298876690754261597587427241802850812108988856634891859365355214265600119219751470909522471499164819940473140663830298297021017353270642533276025270160474876509761510607702005061227980237234308763906920195776696542373335918746280975992365396877582927639832679976556532925094754433326443200122899339438101761823145523997463928244127609675277539000004406246361431327869123769829566954471333711988749544928236330022061823426253034475239807857017501142626493254107644352817589495304867102450964586133237378193948339140225948698382275858820962878528618553808987540903756058846207432924509362717875354668827460960706372440098490981173222477540852923085184775188860064883438425692347085956109930070218113470604843765512537895852484510421765768043266712237684634120078532135183615656256389128127729325443408988258871018279536881454807503857364659994538497365660708701407241338610486483276739318691708468039944779120845515760022434816258039196123667209814609285270697218339264060253091538823472703305003909478444708811500501984764018997147101407368070612255048941964294961508699858456915298149754876687754319385018107628417765694122898683333789796689691355884737883912127945934865964469994820166459856233860328769357421127497596826820290497581682536954057737624151838033621963985554550858505710481574046618358523828566289664538498983916749990596434164846217144070410833222646288704744405426053438370510886651414144076987332197632169126763516102452027016217058527380593646897881422038683864884135361002488993576874312132689469508030748989761221299830272955030565087276565107005905876598315175527148858017365180080588187809301834258598318930933517393425609366273221115993854774965493117603719979466041921727057873107697492993047863027280766069160398345843561845335184028234505690649753875791302138848743492579914826134815439244849560831424151959147597022098184042924156390287084764484087081952345620661144888788157884232427355319823044351308565378961293376250638182975973156497332873678807264740061808064725080196650524311762923160581727491627938728390414017025084687986992131019524868107364509677969851863370921295689332651750438257069285226710202917595473603284879313839621311719216906722144157277744293709523318183706681030332949708462309743119461240450480725000020045615578976429203491134425097064887895784903121833373475068223625917019687473884183472046866067781058716475933165867669175564323302250206523888271334790846399648123069089348571527163145974232775535782787358056894202818349112533243139696911928280128489895158939525535104739879404754924633602484459866580935516874635137207227065908040906130345307154658240703176553014462438222912007129413965565907605616176769233801328191633978357774351268748381555521396739274264753714085358082089007404806359376029818672349809376508669193223981500042562614382598373159830699833458902372844056528122747498872663477805788203221228615121736580137587214490110647008781984508154387326593434612886637166394064446701309689990735376532664067675091462147595883942526526041638221343431578653227697670813536149217027483147906655316477877557500228043678475881947390783282037688412283441686148363577281207723778840642407534583323375009053903387568064598960840468678650415356341595326107881062723026535043738840770490935345109518202495477940206021328205319245079474392488144640852849551054095469439453658439239099092118237658757118304287545490142260421668011815409323564233349159504464531784221989869377186589029168824812107262013728075272023767262959986155826313553509409148608742315966331323098818284358897591774184281716243986043524728318694727373189035307781034163511773224306410220297085542993567140783700526122702998622203306516899414422033905407498550245191527897603004140140781827246822254288328285849664886817767911614619660672771682413304904265640585517894628520944178987845904344444047856673762956752103020253970663656208194233007484853362815345756363400426307410277916442725790602566992609201519683564209402375219585704901072172389005014903750217228135536215502484616818983014734784996454927126677626374867943519036066218755956267682230222525856382588775966322411389781627096610427098746402853684632402855208758129648681340149216175450718670483352335183960855982555853643774929030249300826069684293882059789060660660174464145202063771475706604454994916074160473749265406651365158387597514900887012107785492097855768277930697837828066475150630888195206161706302806716541166356425838533155000094545831336163816247406057753488845167052253657685448696570873519811501414572554389003973689814395059835453131267182108459782624009818463475088995954984365231931877882946629479116493554711154508648836032443787519146290304500248377617340620168918798107455324174557373142223536816934788961087995481976208042645318305722521337852900614208170086607012570124125141049582542405262287628973422135472853008870415942345169299198189509102942152827442120303902280890919573852900951197293495844718538908420091066192395861316695932571270651720538041935477513663155677371157128679855063907924584534135383961049335328961545373649549365602999799553759648990367621038791683918169307813415122480315143044539220844388486708138539817739513079536942971496281443559733832625354760585387128534379569469942590929435620196727013162429132780230054444183487405047051586996816878706048802102352054746300289500739027538425146534416229454600373558070627789065183742832023409399995145035662333576849413737972581803184982736307146855211804900296214181775061916899620119871557157034659737764162999035007715354490451520507122849383221876215928620038911052853165296881615271986714186956231609237962272606124191900844188726817626297892804091903967240622639029787746375738710096729521741558494184572858188546843748686976847430449124544374341251152424149133935108791684204610729362287803676332619142731555901614205276276680564925565547734803439019484963522168074892640142679339339577574337344442484609862838256115238803931037187473427629775606671136267540257056475660133464844655116041759268580914116018792494441700499503136764201880172659660318380014067294850072593960780222498914617555492343049588639643040323963549400580135485527337060734226302418207857181050767194360996003694337876184859125448591207582482768762034932080728979560313703878546780663744680395222707577838481480601952888832266814594754030682858930753281523245041089471511830138365840978766454037871007216940288451011255421925381994160759058121082624625849585404727289890886243094145871868479700554700434104228195037657835335645531590959485463141714298645160489856190933343235491804198603305564786095360512593646372692382122773921946771441769344224175386967925299290828198393118949994236864463325650116898764110231026404195119450036947322998390077378794707971173122627151243590425890535852028086820362563019669365495237318333828857369224983484885531360459892401758585303511117948637715510648279691648415187097598641109086108408449341708640309020423886331864352849413946999742185076604497584651877022079236345763963176240477329453429692264406455185420178938906856615365159501917791204983494573051302042791774887223877144569772760207468643517107984840760907780551898572371799742320247400307363553271829474508112440516472107332275963334730155349647569448668252483535919080921082249781165256038227103510879884502265610330823535708982760445723150678719630310190408097798639749599521155572180968737709448742382591770471758317088416869893572960029800810087946017735432603078966138272716078234868313048242712078788597769325411759494007334217705976682694513904077936201383105724210232968459198973023954659624071377947922478799217347028628081932017612312672593386617997415168193831913934980160938836502574312763988984997644077964707962309106422867347873292667156826842497768025492196192126784903835371025360405167646963936367240623002968669407902140083319979583156958045457504449840196606280218050204216259555924014004896344332597960513439753393418954551723294415672490860193484468015684196815219822311850223244427340108875002460123960502705542512446745962149848339507201974497159434947697091977456829043310027655032268506662203165487732144501727137273411500880132474723581456545515436977529215714218412270827127815047231340389917563582387388665013210306302296894770054257404063130416736228944473001638077881530737364937753797588551018293089768490751353439221610706160922563937457701385744621292293969011363502945529031814318479326750283956008364265291710958915942860950641117428939482152351937081824372636626671988209097372256057708830600571245315907628241550249701733972557756693226769405133089916692441960318189535669666423106204711545718243923201390497435979338062201319288787976163832903385172797719052181549067408926095845893551512270270624122558684972526498506223039477060096170555461060934743775861926826228986799790409744448263440533927552441369964416674977245685438657123076361625103647204030594871317058188332567437600989455940349801503627586410428600788685093840973914134859681945547735740997545616763537474390526694556992884448598164748782344538448421513813303556851536325460309489788363334211806780863423646453940134857925691154276398614331903069750930135681105775027090810065648253908355634219699398666197926133985960148545534079091949623364055824215926319037665200328962313535258768273201007398866552129348625405782473684004837735626287766911923012735167180902027129431929551543949356954868496703613708761303137806828628428598191547017689881136936959268336351378451409862633617032383884191893350419417761540345745726976394233990326518521439682141018112484055473787130605707758345781464850035095908991248626216496269294098328969577764198284987568829390569225335347967555832041382121424755484852168633479630777703451685677721057624571045786186559583737413867310180504985672058519691835567456978318553125956508764210887397413242459487296093851553983407657716338389360335747603253853440197497413014358546124244165960426582800316562915207596023733918785407562514652656250470352401469781026622789156314270429851250774874671577630856856893751797456130671586219274059453218309139877554795998050428442540760382636261423944553489956546480079138846519954463096585633638135642279916372291059318918830814685402265263269022624988375343433699089934687211712562214801553469417963544094784434784014514194157645031567251576758632537254017541135644693053200967280828425737519934958079261325495298592952766267118449852855888939685593728929398079485517558812789952557377672933708420810264489415591051395241745677770317064912374227324054021516159934178948049976508901651031546074027145972746903935608172583869151487644069724979780585165770513968098187357710102796921772294165306591753894590499202481017541308933907121175022328580675656567237656529417354064757871535284702331351807455489504640477596060578851621325767617209101552798353205449548593981368347220030158196897614561203784082713156451367376157438027886643851165460168119519391796032851786514556819534559981136065118376234750824298558258938379125490524464040056014322860810583928945855288092972381627804396501094360252161684636081136055146162578975331336141618230915875488592095050224473390690997311592720677576131017273787063755158092325228798522467462480207096824769152006022101947964748900904304609819015102734066864114929015748470812898696923537505105612028455481297412831302064509497284830375596975410934099606836202576450330660678128606132977504644198851255649606983861870879061782016307137809439935726417856589410874906752022140839790960054804150776856752747366008023564987429504712801108679532174349542710607427320032396722374131679433684882904042511646443822755762096972832043626999960099089793240367700841600537269139669369134303895656834621359546238210763536741217942550695358337547432086487488235100242715582039281304115197871781537307525823640680902950495234905680431368815619407778986247540924868799800087162841671667952208135005541703504372264723399156944938904038284210103270016864004651707790461187131233059830132007767506887307950277982204277246615138862519722539937370299809070012766558750970929511565142686319176109840735465732646064469976132524570760900766619155281087761239037481046048468319094629608820527008983024540497052701705546331622254324361540365890763334572834680418680225252831935849901234231371123033678479196564442853730554914513827156993931055182664733842761965613165399315942578099473667877438447107182973185338397107122539489129458724121701759875275614217764400267281901725567721977809063465571683579160092739109309595261591152288662408525181108266784200542566835610191060635906529439551341244627772605962533905928792848019103066563577198378958148592497430856332731427997625762150642005225990961991067664252100830740245922160020016642866115641663240510854417700133272577422037574965158865791228744003869689291330063947346149302315833841269396387489366659692641016069786229262518088390420895093050537289156471393053205383103216977697025020293303985621918620848084377087181181625383682561861528687378190819839958039464873179584074989090838182462503858297831171565002702147591551023857057788360237831210307970531615370151789360550396624159026415490923666681429848452082285394313957290833855602947497781403037148600427645641827405841386072622712926429119672267706821391319551735721729086054297138398775282513766559807757357120080896215034885159860540662995539156028396022764084797371434473509188681188461021965342607305395143259614503455031497601074412152096975631302441416065405409101260928833289522781412157760829743388797755594037909951804090946396703146105725414841131234954875145593408825502680675240935738181490162434847493172112417022561434994103014705627518703203377956057505898441834415533375887417910924601690678206497521160142778168782897225572425217235161447260947188570927735199053580080887403976670337264223588731971613966720637848475000462616615072007711120081141307822723864739491950423541259813519109050977882850407092735809645100922340316168423216477519782615809453155162852424017624638058655658531299699220941896369861765038720893682838924993355525260396287799670384842073407554766527883429465975802137414805560164379707786039712256884892833840526554172382974613976337969247881301093441642977557282442292491364031282149156762203628538959132395415639413154872345692481430554265083636651581596186463330458512973934939225106203252609093947346315592486410248864846143229420373130122540881219416422142465554234223640836185431455595659618838567975962650503682249680968518381039991551995782164123712020306584319238107390989840721234991984014799538429074090388531377284679754094393040918173186581852727628083064484378860617009297531683459967844451528947440349258760341173933326554067122837468040751161431501134458648551464967314715232205734304003985783453330183300711815279728117579612415431680374610838071423727295969992701256387119977244016996067451911018402296273879530563916522082121767161458185300917002834749785498063901773598886088221880828874933238219748252278853780520132904550484829955820645958349414040665765419314364148155658191874500119690602795449195757398482872232862351756697254819267461983765886364467420697793983637475019941243804267029411245235026901562695558911503361218183834252110255106326562313951777938081675938359337879985149411119290501013836543036743129279729761126452627519792431280237623347157637408446237165031711906770609162285035631318768232711056926746909507462850409965007420660772743220831650817062366758882771893059624267519690902844137751971603410988014640190642759705740337692851983911435252129880977927280728917104609836203981896839074989994055411079926741191590236253533285366200627364480587447310988537101487462525692261569858848667392098937469601408342515051023102100724521647300764519112235120776640262333912029068225989980837310913120146797989237915642585221089492501482982899222874251239117162995070611940879754623454903811425114220224601552983007594393550415230666797729329210526961729867473847100788072241799351196845744032727283085249629874055930440193153313509650183559468728564430129747474619341015803738703644600661998194744111771213428732241145216073216311280876166293968058658234283458292037178637399867309895683956602545409103579402518690620902723066136067696065484634102057019880421940296560398900969218471340058691705303093985197896130731566954746862049431194410919881839345616928909652673399658842564175051879527896835270500391066734274323689793714327019828140927812194387254467237326698851119945557135698258693245064383094497101905834801516559385710477564791209798555679407537778476208887772290805997493762031705455797867674542760217481392477195669787524829410269502340894012769909653289019921158495711343254350391128655466971534553619653142006605763236595366264565112529435938391791595519346121462718158116194756573892317765181451322063475943712278279931479144169948855799687798375176921008136950901390106362041054452244128021058220495058764448324495254787394220896444118470445198189638265133490160478489083193294041237068227888663401385153058949940552812673322255391164879394019988437487873632005671124756455307063562833721189476767568117445995265197270014960757641102062355215159551918635600790869198458030038459141600627397241484520880692742549512122148305909960811239601498961966381277305855690510682213602059052915001411909211244951668322977201587727992037122338630200946439286288776841016508829917182527772055621950113437877509678705291906798923084503599052284762557618968702858402598689645504933519236585408707283978008263482312268593519928007945717529658081149823901332397507673293146897586793891502686942129943749852693106884048256883832540991011721071695998627491709190917645103918597737436198168314591506545542979583182039457632720058722469651080077935352317174074910346309122591259823426964859522655710467806928930058754714243108488605643680502702833086906716166792523970299810272496226831854566836125343363196830293424268718617305492183740295216915055344318602783586467250440770718847761834857420709074164211214576919569066769139636170866385556881185126802239982780659274097194604920205230081734853843431792734869483432503761915011272666829326540151875804891065534240664215364428579581664920838134700861886125968582305967678760644079467091995834410577138211139637559522659213526276264959897950389762035609826934018352108723074999364921598421121736347138651625021274129803937418164401806221267589792164333151657155954124330600655809033839177089379970918115626505636719207979161978010738171865156344931735693054332400849164557162192176001290453296067014553978635736525314587020747475135409255555648570861764664551824104948164439505981838110928085433523722801727565296954296578951505129853835248419080163853974924530013099371887718277499578703128559740626818934538490263872784332117867749371784326729221822978392845266370697561965817024460337254718452091410479600689799585168268480033200009115264139533103113035722430737781654268541126682993271174328306998390655053530130636485326127904152446121926436702092069524133688902334108784133141962925025687996236688314264261755402404777248930530220028262874486282469042461758925188735337604803729581916119995108712088591060967542126095844945145652191188973784728860318220219596299077293634110188719263021759520103787471408530655159314179860458246876435587275424429456313979551909338437359763033780799932519224507922865328425703851585871617807607152753435235930761652169335433805167284090778514209062215064546820496930884511867260488595410176855626971647897365105030008106149113422513819750722783875044339569575062563429985458816996064277724079484705463775798382570761367462391274538932969087772433579845620450036970421914681548029392298302855400775082699400582262133227001274597229912248805353151448563372776366783130208896739285395253821158626605981008026794313509278475079055926203581704348666881502032319151155718816917089541132098088669502913182745360470174208334432731225174073687417653120323822840965633031618783866331710559449724109687757536477321028101895427590861299968959596116718927472034199944506039031506060418524392546335091284546042839901232888113632464857028778141512545736095865340866260694157478425253685174291736211863722974088018054286047085797395094129603607681978996334354455551538213511797051388813934435292765630952321515583958907599761889383570322836450004178725667860581136026228281659205654223555096874762239917797927046540549372005131575553497554259280499442153907314521030706924150921098829520827041795340192815053516317505402421206566528859949830174605559182774482729746924214805614415493216841151085938156789360545547808544192676970219168592885291071529044818732717381963410876306131740509018218671863614139262550168097610394892241467733865250885256625819664298685297615623707161951370734120240823846160479033119953829370714323557965614703089129169875361513827666373359137055259027592464737424176885543380113516466474561162271068594166085587117297827362913362483958905763370298154957401964910804695830486470371674981061765584535836203595349423674879504052591756584344116962428816492243195422709093863745604731336759046427242085509480718207816972529786732105253518763521901168780492343704939228502789476492923341789692831800132429127592384897007104069805804156942900101346157911260791916948906436159651007486214512855472313873848325415520011188499478548158044171403730435349875988733418383025445551144203495253604028356514837699973799953137628013881317215760330251899006962707411720779462426684989219832630642156627393239906679210050213736590713790529540378017958530254076779629446602023545238165884911991022751446466812611331797794819322471907475253374058850122384558611712019622768778878164064586774500404316915829696239871086431534772610470493817692613932494750118017912678305893340237233253974054794346246348989808167756083171643673830095762677345490212207324159452016180117436169660346886036257085562028096205193714950694995151181885382835384303168631489902385002974203335620836814801479485796803617938963390376166348169259386765984577813485988083825739133952625876898879737363002897826784860584161178156897218448658668165594648611111971499736916837787280925323240820470719101201859861208944259771603167676897892552381350307790259003910856240352432645642140426979088000724052609664982343530399189458692126285705025064756712661110844575064869922976855681750235721222896012907536369670202712389719654561584254099624381630521760979799520955629539016614583635598340561404584581403003314549958231586182665495388458121490492962842620687263551478192052740241070266049978952602995624547225676477541691038888849264088783846420552098603804970193061729775177713765422788731462957719798950147944535497888126555743375953180345536560109250253120564454394618038612223311806621148467900411066100973482190752198936353843149751387857831364552936417576999614792521113131511377301423224962652401078815955203972557096471436097038531704641711628518948411117793854160588463012257384779135865595048122137192722550859656507800454140558582560375176199975315586669437780816081714100248153906959155674230630189038233113238816767071366661630060124200501502257501016961245459450064269494051681649921258992850457724614896247607573392955084041285782130247654741971360893586447909041531170493240454688976145631999483109255770397744388579416987127963064112822990275342542686399620274011588002876723693281962412349116146555891416815902114110518718337662538497297018028961188788598476929921409457601299987135218558870030415857267672908154275090379525078913839100130111151292811733116849446644248939410569683192787326134192712364907299732725302910501262777037467618627853004512724533405055508542404850451037831855267920177922176460987080842510716481599674334364283302264840663417049020515760315852841538173096037831640930924074807975437751967678793590414188570014109497392580566502497435398862830916378858057334486084792535259230892559824333428318680281418114697741103445328277960897414255508419319858892837591186404312782408309927955877987884152866858933749295058076994850699348260909089915077635529250802040425586792873654148869471538663298228139549814376748894289109167171500722565476053060564331819749222195622719430672423942656895332116891037805350049903517429122274254624761054365070424087656242359234332794227446355721745590558590635748016367007070597549799508808187927750246040695804695365225954982516138137049021883949619610665191011849302563681623092490967388438162057501901121934008192337205996633881052535842969174049397389088616789137039015352023936226109399679956176198703305043675699645435052310207589727509377396791429554678567469157357948940363905645167525420834822620048748257898907680745605698896435620036781710328187543678377582200849690429160619723860821882865912630531614224480403314637610630126655409154424064205149158832327806814336677370931115624031388773660668210456831628363514547173702134464754919093922671413008195428004470111686192526968514570681674549113757968084365044544047184329914040283675992219500054273705449700449945852812741159151188683398566286635085195423621335411984282281492773862279171327608763892169637032126492801262162571877912165149488327146980204256074919763215574597624020676822526341104510684746831191845196609920095218852125439200610592480503557363507789838523407367485441206945263811008636601091158128898198189484446931801402686334147309433062780431283182265615662472145955873774922779846527670758448408432997250713487515120723973475881697311126531506244586143989409848970307435190573386201082482884908882046346309274337772649435212799203249938310544566891451940125424719672859755649479271881424797318912724303965700549891256882000894875605358450011115726632791242312487229000217812319864332739248890051739615415756612833757404571487909364695818787476762328239466261822437885069213516874342135316905697278124531926996572742072635078299769049638570673848415465656322287694932175244798881939172063497723189285666894637680641057508022468040154541147044998713308327929567628651286204746683923858639682642457119191164401582225976458609812200493244333304692152638514762359349572293464646878607039736631696465920123670299788231779279738585292998277359467379784982225427647070086406470690750709297413462162700208911129254563588707628838569937023484143459344663878463678328104444518762740576958895061718704808255851934836154783350166935949030502214786001431609950738893204132040705683904636284488512031720551357782504045645227471162335224510291746176164499891433645960056778314373347524188178843776972015284617144901249759817536262595321114408485460395564324121781645715890437882065352300962446860065123726037192723482159761169780075632072069064356871091324713330743296708916210297150918194873602405991667656563854722655600315495803735323155009230394355799628347214688935942793607430429955881175295568430295447837261570812476149927520368948163119863157268861140005289726718950682486832212081547743237292955927036507121161778423432065699197390497479735482728215713673460674768316556387880525331591540870197599202125263498703280024680666031869419532000795432798850213223493982247238711647291918726778695932010639760988378867431606312152332522908342138724159095732703385287479328205528894148241365985227230434480878110512858591456483022026001342959223542363121917545077322162517663885452018874008429303573017908119491208718839329586152809679170938014221010314986250039061739189576886085299242528500554252151453275750636917087929311309076068186076427996200081273294165870023378767042475714638969425454730692598391107308987072805407602482406320874192582201947783598455686789547081743828772120567034185261402693106596115232293648445084296444849219831611763067526134551832443550825722889877236351040496358292075961453235079038766709080609463258324490363405494099693821448882631761263176814389826560166196193467405035136064321585285555097020563020871491057042583582813193504955542227636812864561308405934687218239968568849372619375251314000582803069310578828423295433079882745152675879526625004813463249172913874494715159541109300409488462757427618004802650423610156954806615345207764665767912136597697436641525518743554808218347843099081246859046869104690110175168888235494607968610995411925132288143731031406466316559433727921907847607741585817626291499311993965453781489736050091193131098606856766338328091626091840870181115731098034095905210266804200490443339387406319486806166599909079020276627538583070172490924240567994237365731903992442555696300067410639287690215287993390774816526742460623610648779170843205610791907325982947372788962966965515315541988875316342007419050103082334520302673499834115521298539443865002670493770988312935386836069455936730960830571568471790897737586950699008077743823147084485209125678560810410830379360797676741730366450003032317709835494964412975650235210921720378630873436658927456049659480446153900700708833111380238883940255344907414364560966637967455778327008441189802269277306146810527079034251196657594202232651449836112537226300839361740006594458898743063569334983978531898553774053267889149421202500641408129854265027423501362529012955179232151847125138849443070294765059360079762795701687712365481347379414809237122546661651186922338426549744265093327992872955461551867112651993822070086368547679826151485871212775548990060321768795143119243831159864220502799728460332506227772599450489051670881675917734652038542066020266985523178984411975232563690645462277385780030952862828440569437124460050392929138831937392223486007749385113811404513065801626641418525975147750405466238996013499476283152738485761543346372459306319038865854795211322953989850720025553527848673405503262115885136563426350794732646060331110397740715837407145336885627876806424006054749243964194524924957113883210454993473817338336710814038976426286949973724426140009606361614395302775116510154895630293718004510437506967299020493946077919846956134987992028951096653780419525617878348171872559272616596341710422515921250879323133661808859057020252277745398573816746343296321053996149487817871617524908316503665595530805652637569943824737522267877094456524290310877575667068158451000127174558509710172676584260944480762502718299008208884428661391131339368572532947086599451198726800492789450799093493397705551786551540350573299740700021380141232868399630407802829627971971119311604667658928409002282469511921794405330494459462977102755290115678561415248854971923740915523172568796985094808991345691003625602390791534848754262425530899741651094807555411216740068933662744759635144823828366196798265302488509526630683366955621062036260497521634120488099644499545430107780621427419859865717477746618474390637743581521058971433234678940508279634347510945790889671974133863388804786418406471633355205826696899132487682943127076762085621963374415685102140954294059900821603343551435756073998222517151396812125631591989324173618882066188758234232034764006116287197136028939795298489891277234398000240074633320320750022181499346889704082747244962107272655977048435830654200443237403473922078742739550242750345552956888093631533391828407806080401432326066533739213162626623179781105247111431221674679074337585507964380390646947608278866765939564542099630831109554269932296425602178448382650078483525091810864457254299941181728187492437476091538616509557770147152551286217013570560591686045793558096736515149837970897958979137694706712171819785184326431713456150367771021912263892393236929258669834487661616016634075576330999107995868881985719505476698598089144651757755844562174046258380528451860664450882316861412499084772074807399496531208175491455775133410438323638173974403834859414352810009223848777362950448613009010418034596730688152495410460129084558761818622617696171674603245772978341922500278514958921369416553434002670573905586886802011618915361695267206867021984453580854362768663580148232415125686721095946597968569706649881432372175125482490566556921050574547225945399171305664025887009064290783245107364985426943004409350442503828717915231211536136771989546756423309240203984468482868120474759196495594908659983176005208207710515409805684213045033887960528589823281319103173405333107799392773312276953944550588753356959683795809076515716390613272432129737590223795163379018020333821633831180185249852897003360053280097761176484729746891654078765785972747138541283210441982935989894625827279856249920373272455012494882212890434496180973787326763977843847686172783206009550214498530347888394581165830245774508122793999921147086297629861600401951737473455562819874551250374782431182358461214657177120288920775264356722631116071905897344024040062365199266543570951165983346662357409757670847843820851243925288035973381865228730916230081047091650805642268778624685569970815851288977316020349690558877496048061961551785047825969407850034958278454093075634173759454503734906116118958889376512293524774942920939421780488744143359742165655162265101862349010585592258921237996237660282778952792690415348990808146680204942130414092035363690969731085168788600922682874507632786846478393907772016887073077871723161093458299641911598210291067627388484306396565664306585130223587225617502445386986857135031532779463648006746353152009076076852151915516678326340616583074255809699065405330582944598458940078358561881230612668552779259899637888264074782304516916315232014808811487874888019984122580674642059089565311914462159868243580734422714579676760845864755677972330551934913773350773985079598919123672426396512271965630056798848736520249063711281943955350135153383328769611346261317069922200618771456105244627652243306769161148569016696634283125672399993939799982005734471396247425510416021729232561277860692093061258881168026253447367219257050298521591732130290530667421122829289271910204638164741176923125993522321717373125990347415576533260748321101491926026455277545665454877893141611324584277059882374932975734664631935843757689048054861088002353530165490502943928967523740326408346526326040881504353238868437708844585250677611572387823236021076694991620666221089166199557415469098415054916477941186722785013751174880658088872404838349693383408110568821162248363170661638697774062255031590783163585719971902006543429059617447794889367222816793488967775912647016856980750844932400372799892438818654259528292367068194963540848509309967767857202830338046620207971268210153892376578877403339779845683338828116810341377050735810682445181688342539651885411021777706970274834241087388503280901735233284984219549734464762522454025022932137272149768402119021063476581872449035102968710377539193596628596362220837874535579379899500284655261539142390907570823794393503122518884506076058648187255030607151064586399026255572362533376657062280731540117667108490029248825040639359402048938104001557805352602942358461936958423512651998971383525637445345650995621883009236009919213140782161358318662670506352148489097957918723131050865609274848939906513557552277804153991436633864773629473886730927184520348010740034771934745362206456658920596573920883391208373184015689027857420678814150027623306904792682437632441582159782014024174434828549988674910717635255227820664907466995491305812078675395103221006463750347571252444224431544691464824851386644481025408346467867542492660366816625023283193828972055045566327022072821801222272336852010718535399560475277156572591630165496817206904347921223484603004279141629095607617838173576439128905627886401499855871991526897129203282980170623155018496323199568837326042985207320064288409618990122638103542570377212463719518022036793484043568929494412123202938398472994118866019963903671847463112770300292993957072949576348500382767308618121034484080001889786830924620003788325807651654869723457259381258649258628020861684802835506307245155881590537673107822802024746100410239691466553354327248252444937720543406009834060783685170868255145709274437584240206970696974599358164052596529555508318699124719088542847961906970686380036978801974412744324777450139491220869493554411139778164824539151190516672966687680616382378286226225655270852651914590292505069615179676452317286459448424502923737226260878180795906104980297834753396883716354143672745081121458210720327222876299386850071078200830833073711888011236639674711193044730806392767761902060774617098758929344282875598790831863344265699766552090145022987223469556235220952734091034833150320282713986226967516837245032130993182368908678987166262309349643788460918139041198395343206424097012548238923962196408167643147131859322306053703771369499486558749237155854882586954990028268764158003758841494833053633914576960246311749009379139891897548368701946760745951891999112775979771590336623827796449559432772039833411106568914411439134636218905529097834373780700883492255520385839273184645942692510780315519871834540131504069943697348595950346689787314472142538205548271366767385111230759165238085847321572313517252738140879596495476111314323274227062300050438188244939014393651053418557065410305661486987078745279728673803848956546806147916192591996348046834911182233631982905393607071102779384461600390792372539369270286068900305779126758859125307354119685091010448735140637056300537601392340646625828400516329636163965876216512176078986990322631600839057906280928173541082962069839984311905866823303282079477063921520588609421672582921556296879764373663883386409471914303770866296374535034335895848318933350765043165846052336689981042098236367074269082130986969144919687689272018704506344470441291050984001136953626690664959058470306253925616415251710012249047419167414185080966436357725263605849273510181220131361090686415342121581474949072188821563845126708968220030783790281618511479965145814948420425907687014427004041748484259563737497221927805542977651467736741182857548840516639946240360659762314779298105072757580105842947387333080065823326239560160601748516146320460771475709345934477348979602453270743834856810743890002185376218519380492779876385759487707986745671059394031972779216227111039483237289977210238706301965740504923215065537916385819746860622761092151532139706598707598764697833173281926732517758818455709082754334392790002064315358278293505762471191373018555168150373438185016431687082419923321659370885001411307191676704584544461104418329349246687358225767659376181955807436284354905638442786805278426276227923970043655704542979057961010388797183872854774092212228657050434789994383028483236518695862065870175398213811902783010161942000780720682547917323328693794427476706421031842056903202518902427035214007992271699538172615206611986972308071245841190021791922423067295621278409069835089468628640211773403179985190802806833807219893552377991993189326642979557514896870621836097365828908358675153298057299424707971663601658201161546454154756937846112412948643691924583761540937773139653004399262246890593270043344170971758436428616524429985051451367002727782746093915262466542787070992865477067297047292867964696600871917277537455493672139000400487331754030213036940453896934981373895866343803723162623625528910109102421237746949935834463759841000039143393643930351917050516991599078631217827059002773197436651484017515488460434014028990484629809921381990949785715157414333886228547082820193463687064597771614517797829291584267992261947157032111079489931362638086352011738210242310171751764252322393881299659945117611115238391207933874985663765399685187304477808604631679587610179648996066317890809518231906959805891670552721576682868894991458363664338333818716099801175636801714701382937195533758915655127988954853936448641239449336929971040328627915638999348251848205338430617926760943676861209685756443958086490216636810540638216845775463936884476312758794306584938119498326935776593797286012659052594688736895857104844198592512315709595726100640597690128708117474559470342459186986879025280838859561528182291014569982226335464881611183418933498233281386500515606464046367138751830643501308197907703021680454700367959971726725095905187507158499902223419064897656367512657204400891396258210825127151093450599828223700807910221717024383397641106152243433699045645876163726857741493281997031053022240101437564479396920391950466252007716881422780190664268121171154976699001179439653073760029983825763380381805926895473201952763407362658497990782788525935181812254916307324569274332459010637943231961256919076186598957054959994017792535923629197901191693721697593044929418426093048641826430019479669451913671638597955835874083010597142449377078397119125268880642992178404343377263129288628233509591258762872194841518637048326729070369715753282254642247139532285820619626670001490045923106197728580205695029674024953887727994995301829655469233980427403029263022199605396411974365761845277489059328188316500456997503882558739473780893708730191085741539504853038587313223999060002393204317231956140722880320790749966084291788445154641702882655889434514701837324365875507640318509292976184462663334454338520469248129145001060218351157309703763714398518337163252250366597142485264443849993592000819622034818359854073718917202991439803713829947152549358856914875262235983081452890101181174035783226012393757284132864987729136537858031456436266637012110140018675458315425820319533032792285542404542078478879956767994511594091981612508756916671212874579118243816541936465791204726132651402472997839500049566456976840301795489497926133139729096208979261942413311738800296288036608507205742188261695889467853869943759744735677489863198983664217352032079459154828170491748178090765915512456311152313075208692025810988165750079033957310097996712410682636777923844398600780541320184720119555153850994239747135229355625518740056446358876533045577693873650241619673396898799552506002760393775543354500556595530025723172946211448108746921668326704920872371546964305476303143703882664058712748303694575647405214098103148203767814412008960222825259346579355255690056395492434614573207845385332364390748828945385587871892829876976660174110427387422309723990618709622372512560631043145625700489270300628547125764312377140910498740311026580366392530016947046182384965057664093427173473090195671546503795749133523013370134745028838328374286161279101160837277756510532636705002404292065010525654998345214203450037529821928179927058236183592674007644546417115858849924094130496081143041845240864985247187409046547260832849528717377788153465041827158127292942310261061766287911870560900376154614816951365597829417295712871679005191970807964918432724329235413497795155459909276444516932814327631619504225714344021426275192065118305730647552762968685917792290856499456045581462287113139066221766255225654083721948294951766405655331427197826252226022163958583397705986345914847385905758265622218642083117125404439333622188659577003888751346260523055810001680582013978358777579735988975590348870077227850276205239302824384127844648497918981187142498587386403882071845497911853840888889878120011281209657424142837487745734894460120608035118197540536692335168919464086219029947193835264787513196798492970159884971241502639518720097963695733988416820861444674792718582536225394599080702487572299658253457281475387410906789697931644042090048961052149495251509190118990898637145354566389107164983454081178222577182392699567058747531127706095680938612702513687672490901916368215158180812153943861799873011493092884609139797392253870899372790734014923225758553341350870420194560599902703854491560271855290323047301895992226071214054012545293860704966071198509388219227372687685044653383039260892262838056536706523894059443446326517435676482732521357090178314121515978732631209122861699438420423638051367952865783278566716126136583808571705608833317914044748986691778307593479884157094063134858260803794145570658983220598344965943357699625003990422793716341173952567497248975866253363154847360030329178552258756100195824127721621849143385185389983040325039081390604439242736186505448251365035213381311132071159037717527358163442442909100055910712127022457178901025696045061014668732133448689158607624129268377571720556532851828380251032589031239872561507107589916174632226431134124296627584207990675749917093932533051746975074860396411900831838046917019870821969274188550660310893625106991543738648762434457435848421547737101774377806071471036620559122086837067570921604010055193967775295901555540377106914670312425150826511488869376688246599297356063325817582054649709466755491585861950030314323761995842904641705727518725137958689393766476034223244290617047250322940559167616488274085733454273952220958147756705309623427691986924625480584336343670721793856478080571515769500098450683572544633462372411014237324224855989450719052776734614753417028705618691151267802008934015049031770043825564933131276881276737948076659132380007355253346497712684432432101303081810667425157799754923062117738838063805662231757210049302220149161471154441141909364665248490271558455142109594373836551539689116151846158737258297908937059556638007800934037542981763038780945609881151995284771457460026850786510233089296978816648986430968279888052459147876583419735711083310128709154231220947966160927205904088959757647913688313344944251234913825837490016791261998804356324660369283155510516320605046301281238285374782644966526423431414571978685686977717240665269053434696247937224427724986824348977863241364926951170355301323795451601740317666324831228721915503960886599035400499535689876713339715340941172263157194645723695823108236924069051139497572845904329075514041222106688739436247862439900377385463078698146459946397768210112907745923304499835134136558708337351633438869703397919551498279748287531497041104460013568464817501116173099052781791953925440684050866034584836962528596971065733359139463095682105364815825980383829865118216527841215994972197186694861631007526122044519001073428314304968309739400084267132673861184115328169256119411726981689677512742530079312213709716163005306084354733895673113512865261516489976181792508067230846203663717027242787647223197161927854738506995097315834582465072774537703386160988202554664661502103593494572498873609393824838327767219971639629298903320564899508406771621085522158024700370776723433224066836597368035614519118775997498528944250982692841822928614389883961115695438986901111130733616711835170370066822328060683770651121808060348771575446584207035568700230837039745184886855571743458274574603403266624016140702270189779726408762044472378347916430054676633486823120516792553739560493539711349701430354952623551414902491853714749888307228353095886894901099402087516746913970830250889966567621970732389430840171508515597904131502576657118428201126538619022783933573513815958101401516948683866462172445838893175703857128656044751531441432388280771968929178108669477848485970668199679038576269735144559600076231192533764985890206660451710786191663890810383150895240326776247594554136351045736681553899565177027265241122173330547419656826275358476393683695858145873107940348029340144879412436394534102787911031900755333338744802200036592237100517874724468660121356923373080891795959965681204655811313609722899723754667105671286878625152216132197499260448611394125743745783065279274449668214810612939873673419122170459004718374258165338542893020283801825972576826642169257493490677255985445635868253675042501359177825623740201215264913967732007125973950099729843833529591966985930744518113232922327194573099306153350976345655449240439707163238187624813523239237156293901095064204711625046872102797737929127298590957467984445839533052211647499321202848994293272514296771304611899747683201016092174093663161484772359199108386900521883657822747059510739449735776159301534043048813553444956192457536222361427347424809776226324388226659010519049961601789142759764412966358476817222037824829164979435037412817330879553133674319129232150513991197612029744179058232394537511092832239977072906015201896419309345795692737531145938241383495049701317392339865779075795019073618920735423488584656697929778444533281391949418328039385447540878760358281003043161354118519898021457604826799289499798235947925251227750577593151877091422115144306550123066973308110850742344720258179648326918485697228977177465917805357325884313008459317070452114605109960801220356166499364596406690118773233973284730946457951551913684343241485338002861632062205241139256975751308683655847108686670448742604734146174088359628903736828988274917192132650870585142939101729097176953806314984497463658731475259939377915741893365794618753676647358864734064678750934179491849364689781797639076927181016064298536068726308585680823090183657329655565338232291340751322314077725368405934730247535024136194147523092162883786939257977179442857430678449945941273300954726369343572500505544352018352488093253028002971242639635495981409635492804842013504095158820584378401046967823892074459319853768543163300130391727844967209825124440014500257826935185825692284235080887446938779356567033555678211587043369830230399006500939397051196071304170297204012298180563276923454919387707415770355079799704392740262509156093234065465148107388048598901197390365734790136028721256476701047735163899908131656334811756748501887704633757000469607675347129587567160862087139646911529855834987139128212668487954608900257171226314175194944136053627426246475319770979124896889314415794621889656039801204970057715995472212737829830693172072450414729490305406153582970107373621942406075041982262302683544997434895677384445443711417763702706785174328086931000380434056659567893968789794096436085792796291789433410451246460564308936915876716037614729990432716380083904695306125531338961936049195799964971606615137054115562621581574873868499799936138360903689831979247220820912510613874510944394174533424145202889965245494720741724078196561361806753061836179836879774323203083854980856851352966916064545499525971209687740405732300442784091121306256485365545552290466762827507016100980770385234269404686297968885263893371243996136893379584258554244297212434658904347941514824434370150491539015069941511951001594580779937022488950100938461728209701564830103379185448010539702944471883231522150468109834065529589042715992605852504577120273628996553358502682850601543467155655937941627682275252887206350768495784592589615661719054080023497290983781397735775344702831105223576356899034650755468464541403662282644559184914635595347318325905739203846365121904874352763671060997996730088532575348534209069012691869146675937865726986952748776947607678173130822315618547168827239918762823412719325924134196326951960950526811483792806816967748098201301551045491492516148193811674792426259275341202573554091203409342774057861810578568563267428007771524020184647924724107307085651964803217989650488014983001640625630766970625938967200101771768426189982722426107789587608646586254025150234214192807264596771048655924596078142778192294644124513414711755289670160118716892155713429481537301023513842248792021468603168937582972826923611146125864415609452346942298617464832456404681674157733079291268393637034355526193548065885228498316804435046244090161124248246204387421690187420689252881100052199960383561611139946950982331214362261364813600550178633173920117591085006563046506178917531204380234007366130971515129910870562135436646062948753757931955756499114611877998887158538242437038771544409875265237535587929940539744795434231989951398828218793993748983364860464859391857952323879997642584367383306573067912733227804157360767588723177335804326775778910225817976669888481271254348520947278469901929203102577322404399281042219174599293469569494316351754440873016661257964885384516341512282471712657952168276429697455652148765964920664380737183472903695478150887117132912176164589766118651797995764334515124759940210636244780787327872725584090725132629429256578763145086851709164166829057025874101728251312854629466258432180971689954834529808751096838256220278981776612940213523740064309710534188826195398648796204225760333910084915408173190381936808055551685687691618886737524743292393333211433215685368066710495102195155793564514184150267604440755034409326176373912792541575401269009393276580239043822984984349738820179977021363586002354112462234343264190231164451202602403881236465396633010671770809048035905466976858091518536060621976921815328705961117359090451994907913859569202092889940285836707326940117662257706875884665611116135261393666158703198939958999470536432067137485951565815782486350902620256066622978919421989141376645145309458037986123074856110937548540177187405615844645308072131182402230648495585966282350464937567049344908782274354745584251619911411341302672511345119123184757623064005109787819515606288370856393669762438996191069440402012658509512494758903673285675319069156992745746105823525830718588670211513731308731104526467500987949589898489843760899004348119012907705271316701205184060794515759384015698640916448321537394313223619642574123377276710878250735243136633462225551719108254807301919082335916747719480609219894778808455826215569206649728911555887040132951393376452959712187018474267319222194974975726604785831136503592013716922796832532344329429201628203559061053806120422545211652379683138005157972097442519092668969712936416455613899923396378101934288218794424542698800969764901621111491646336635936361879800164119460563072283967031419709635458663893252968426055095991677246665072351550002152146085832229486623424650392263994152155129506533666266254542901624391495918214859166302553734749664608136834213637108054049841879831541330783230739064780124425380699177924433702175409391589494445540691685311682015080028626371757597906794476547573383761439895683169353698667133594621955108445902128960974123577827651377978326567749417289583091009064349922082732318779767385021538998467984113541295263559072232278603359137351801844892303444800221112221047904916170324148903405399310245314182906034706095272069403036110262120320874373064227062365656986356953574413236322206699244067719467460270456897060757277581131741513065932868372685293223566841707098542179437827165973027028081499467793830233464239457906734154308802897283462339927215852047686229266658796640440654911149545767075010283162027132773845091882243027501413564294851821613170452328174385583572064447111191127168041246508294227381963192841471809033602358383358500009867101802357926738394124576889847872966401021273418869364242833403566500685357427650286859154109432109018391493517426937200531784813715207962257002918775294659745604968981579784824868195847281858475372633602804011688038468755291819158402358987560080598637183106052910901873667312997972175173593983820576230614809807222762850665258039676827974826132062714133855294884836130925811855959929210903773083065560831849939346813893404625082924542416589957461638235519711617390899097401100532046772393922775751806472776365770297330784357197395973004209086999966734122268556865506755351407562335008563541238383654793284989120915816929800272341750592276932701048714723382796292612937967163796433535863737281821781104621655997738809954495951528669704354518772050907494990071068161293078380005215528447812804422548784141141778863950067802583416832035747708364916490144292510495591856255443019138639200786433205919401441971160709653635484957675997059530207124182966363814441375117831493427971130632304875286221744858832505632045323847002239070625276073237954243950565559349777559666664579352857351443680362151561309635382221380497517579280006856971954196069828154450021414214869545937815567635869023113075959315182317343251747296827032920858582700202366490924976006672373285276095753964557819685245901892266239669956162386097753326123122841999445563334903064874893779677797703453810243395280473233562681869206302444497003218485502117667510728573019776504218874338460637253873432351069189119536113790444823159493470644624626782878350882207890386442082870737072174452284304099043584436101488156211284565917378230576120722037836657289899299298998564528143177425206120321162041147171662806110687733731677689638109198802510169880612835741076584569433137602308387800243558116651967809166806163327413299958928726136029300665626444466594681108684284114385493921420638747892381360387786841160538591264363474693007353800366965395318949328098344353661248215125572433871714679034994270439613051186930871949515496473611235316551570361554784394283664399972073110760901323092666866803422665152638270849454590137375399286997872073266288845946627239803095323819469034218923606828239558723558057098539813919374156119303355684643216441893657065845045339518354698632344280005369113888654588871229852343918650428336086444427860602318837417043105635761618768583361299175223912631983047146908495813141029512656749104481766758142523826086838427882588277685280396508377799624060171361688416188752595931396489401684733687304507272773415861967974068293800329441027210753095326967796567142285883219741216523017285974780343726007350955931367277423467129464625974734020128098768240558973491983129869168634495031979990931106434395651798831336204754694498030909327846187235480411767741469644347244371741936945702333887075447118682850720344054930312464878447005432442755683632839636044982771784379892343347254390802478201887270883999383662621660430044375480164531171219276467715329582537427558941589864555079079703272176796285531957856807737174762389931521182011648704775617402366914276817474993128064786224515526060617426023099116627238831477574803469041320011682662210869069901770502987283587147457514574696728954570886963487839243373557613805908099972078454982406148674073327373395724571326742549126453309398989031896878138241685869578220040422434522889566762005654867140944531502117806947789228578725528646524645107708215933359943067952263886466285179232473359152882389668309748539519075691750912825728269950276893533449588338295727543582443767554584557441928341508291219309702375362222059918770895878223534425692750021182884307046129272673454393703419707767131649217603330272426973834495277723857434617669723178547218153489180767784476778838138625851251759267789813444589355198279170763092152492566258800742014388281873153854331231483388433348291700956247635393651699339766597865195174112574781677979860690388543572833227836587364933615464868261823583299556120560461781293101575577202299771317350584680060125293273948298513226192747598999325922085490264803960157150463887539840401282970405784464088840465838710602253614814261278666722518942486739224837733395311459189106052345744875853740290313340363619958484854132636706519724562563451430798027049180362700628858777466166364421541636548604882682738719563335874490864164238399437039037862292471055239882539909853423658726233329221738303487381615429962335331242539918127459473543932331317425844197741834027978943845204137548951759303935712957637111149641039513627935670472398635231844833334120377284593207551071680508000847539284373768511917789157847912196510180065012114411169920055457382178067587982170711211636615766926423276613407222305726320557559172278974244857290579867165279541423644843782996960704468102968836970467668238471370520851374471488097385556769538230668857790131133945281320390280134645504102995040624129673250749458954054499026084863127233431173096918471819331154643121793188229317661257034451116044540838909155908649521873999744047636340231571106173545350219290210389268019060333613368682853265605205610718352131378614588750875400415129132083617560751786348798072146505073025894148305114901008577497241619896886352355909928165876485524894833671318922073177764610497146153111263131375530770001146312179949865697289818333377760979062558356580647012650418162662382287955982178652243061902699037022919651868413190279831181024792619124521529249531781649056041410621330726047894765878646490322442439309504349634505774286292795213499272481607890330881080074479900583042915103205142025738042122282364535820979734350567534355901077957635335645476555547422772592173259240756228212580454967163680117817827576335349909873488126180685443802732757853129928322662555684392938522275879305885453848145820490791928510665828626597523650000239783819060369288423642828154412317342091919889220833189290086814023861208612663771960505707731821091278786110899925310626701004834022073240679899290270787075590861314107581383623313647522425498023591473815315155536599984817334657526713931027317276188042875552331648220475014995366887040211354974247958434538298374303505319642139407818602637176303657805151730272649668292535865744506271882597279664103174437980864910837731694938867158029892379102298695713857021215931521985385796002720957639674305642766231377018312382590170064168274562312911212220237105550968695046528963466358922900277978022044952976101819894996836213805879839424541502946427356969216251136849330327127489866843428871145334499332698621971049495279226244838243078441773421661286223858657081382448877251800480723771636199095371314977430486435966209024865309121330819397828645317374026107618151001457472620172947168368156337090701191432017591742068929180979058333566196605656380515770253828150350211277635510751230081249248884653126896524160708397944969745794863522507732279045469274006478894224515393567136222208929969831377291098277385556636443825485335047130853794120708511433493737796773016562098243590532408467556486752554170760572342412925129305152296493053399483757327189469419563421428851167485920740998384532846600518561861175268087320642334471024258953709011162564490643116238609368060498957106270345580498521078619434519284182722498083321095181939128669249383533635986674017347933784528610498439831490187605838849086869817277684704333449553768556184842724110095685712289982688796683718769725218949282384356571788042930849342192610512084746741852302892798699602992708165186514499083395247683921723321270403777598886887502105453644369454925205207527630242751733840541146393254727113560261706316708003365391705923191334685329856546276703054137659284358048467160091198233841583131377472873064121515901078271508132749847162041577475370077403468178935420807929781254053028380197448164788291112175861135762599936230734856742161984004385570519761774087479459064482750344108213706712216645120202671223110249381652344056760106115879351263848657308561710924350733782442357926919863920897560639271963031029014862008151582006191270591786233970737796397807063588141862551177775285291058436043886711080695990427767398887790940534549877362174857902342569019385579229125985419077677315586590657652356237830746555923098279390777732516878807537081511492910597424869555182264721731462296609060194299338636338140416768943540866605234220392498589399026528185957083942414488972475784636992870061954766264830033434572394657368235142742052037043672758746930215665488462052604170023036498612787741796075256865067277360117049787422641498685199214065380841502856738825540651324481818015158858103089056989446784314063133472753898538605230531559039154372721529865778964621431546994306619647651216589082977070386471260045499569807502246982692852800494871185074062160394111764184235004426625893903234447213482725843092321486697597192316892828863552217482203950245957923603049844507403375102929662605945225317356761787883006496076630769019640872367814537988381336569854353046506491810203274096354353600237686476404241408203284564836544193292805520201326615271030270863648044528051362544221180132301731683925116997801612508718039753073904274415472568450901292237659088086376790024745907897596568369708446418145850904493747736927097030457408610499361811099853433991818445110100698815666098089245454580568561792794493508627775195104909108005815531138053824734053397179855567041031569398862618075455221640823658968332203010259831496058191005767910602161797098569986872995404643171354770257415481757332461141213001708006448798165349034733828633970544017753850365722977849247840168897664683834005394099872087756290873996369864468160714330070430233976509175695304626933315056946282685007157016797322688988242040096966192940030877674364954196207247704339991954490708451431759159133484239577028942097385156313439985128193167870870726009923811119396220053323108230283414965810436994766286174191956727510364298451444683048159746889074022112244351534665709350031966078735432249346913934341699723515537296894650082731046637170049823211424233028557780904678492002905617323657547959362623275104491465084815185305911572857391958602768965773438236190782262388905222026709995763503063001155446469938631332546972756473191047314942676865551821680060179056038190081324105143646098261561271247634046881765099048946823314532315849258891114429517232484651565931319922494047860464098462327450847883386270377714028002805793377352774108250191859569196649280078237204251820528905341771425750806639921896089124062686140475199771249792524042328305149043875690014862554876003794938958020256733522780644112666271660264118011067397855367268606925594797770374141169014965482872155040143513780560854067239981656544347618963229170165287987940120947906935112948802811691903183695086420544723261796007035826244242559491663581864733736991812779185230587400118888603283596465628569139637697413051937516623590222182772279829022902853520495588228917338308577169525194368224539863672937168190748383280279486251288641215037365138983848893318479539910704275164970637308650678635250483345896775971685098232973217071598637732965680501834759282448471162116336996244822897872137522149186170039114854232468311998289609911752267120881022297601559782769766861390788204055106974107572769252320564716799228214474594558934957219891397214624491607069033376353411809753298539391217659957733443573878507916475144898379428033794803499024029063075455380357640661258511891695348065609305979854866906363375336491999471378932293163477616983659397557250750558490644853504552324455376295791002647600157495583667927648437723981339351467399148111511141966096106928421610119338955114450322405889663970140108423871564315682845977471257296330955893135151198336230290400880653358644578623776069714295941110947918121815417188643280249200046042953305125104137794940055652843038657150597606915218598771345878371333581870149194999331453641261607215588476653392304089494252310088240725024708742726447608503690514630386456162104222641542928655881284164527230316722548614702738503627992955341272225336293782778997276464175124156616211766050867878339438088711810125556868682191906026522255404924599155206139550606018922567967231804931785493552039757919340421699031802538884727968117610669892842836818423948826411435470664165420386282285944105583087191686656119185286637270818550215919357262841819162522935320274269726391241536066420792620627175448993627712399162834920931794828689528229601928571128278712481178310205279749383470555188261009069397647052537846762270693052242589531028142012203641688724340961513218624813522101295558170899682454820608783120093655539343970629215679587922115759526952786581512232059829967116828157761258871635796050486452358463446716742084323339695146926197899179133125187598834040681927639709191464502126480721457250363412782305629932525800068762277379578942011625566332793867556863408472339869329172936839807951985276585659842886897306695860396098352483501241363024057562974321781360061187073897617249846439167081916383171904833487156772197809794858864786577976212101474708125290487320904003016950992646784070878586047334472965457017975332787983381633009812625206194553660435898484398693020897355029663531644161000162173796984856763639489951065457952975660015593338226738157476850521310624720598756583978296926391305748114093218781413030058583183086383113937477395782103864984130772150918451774840741816566224947536278748762338467882236027778607969376086645082346452284158807047964041819145066637581143594628896757350125251263238331019192558511762934336097920685569710769249556470215547482541685751538407008503343851222492816607923176660582000903246089292672003812778216056221427880520579289465114273948737769123973112010600820807799051498145567823518546251618872798317636645951624331763101940238916960007867312526042084778229627984386051803749858857581931048739358574250141154876032340676437641336641052408105372246162958948555370068549230410804026331586440560299169271385540365495026953181598749660464605730299024298793890662779884444313818112851030353508730668521515704078090889556182980666083489241612475556176787494908980165264103819939807352458914516797723826639054653549600207635085098198949422065733546774495623375094325438116230820108244541844708425553850877039751802368774362709549324255406321258248740860194129756246598115751685235411443112946700407697168107149178737614602027522897208335457728225043601522662565963566823377967219222020996787165755459308219452668873204172966214324409959491764105810093596543527116799421515396601485388192514794518089467595476774933388894508591776291443697439370799678712673864662387443179499596009774704591228624121995841736807871355800213819499013559444811064201162635716559552085515498504845545786227881387737875837323510401127933642249415202494163488374268692240230437868873295142546391429067776151505458248661783079634508867289813589712917877069841636838995133319989679689010581035471609798826557526270584357740027217873387291705697962619008206824409602472086407558178035173263162410743436732219640989957898419041039811441228531649913611885142340966939844441587042297356838991145977320565592810804952970429803999897229804599021119141736130130282124508419293079055537416011333614701815368559828025850092706693014341469953829675469378847320167465081609857304274569408112506017595129408326752245405517047936886101327922525051569311504013189086029680138071959396993037064390285324036872969859759320801637671431639262531247060102513075152664033100784895551510179896999280056207416789579441798480460506246885500873198201675707567567767797455810751664892496701782170019150940442901817989490490567479482815819793036566038374112282258292102843651685168547243235569826303179919197667986827555362559521897195360172014584812836042285874784955363202722753747152176230976609962219839674018253917084648680446582244997420712830030743655569364601329495707009493981373543603409364582325202045305956669322573939656347691936426332570422981659810023195267776205676087592410084813190812632894888891778136792297770058193230922358003507507845854033696147394702769229575030257313598567717105991076000265342205539486971295302796111237652646811884990157440221734070982516838593062052766675061039790366606606014333924100605419127544853132739453797909897414866436537392016126048411652338285462400754314093936341177129370303288319607923072867045670384644974657505667480784665887801028301217661432829497611867002598195372637120096577020545899681260025592465495155859442703900577288169758946897678538311509922767986219577874004182784391139352389595502651492533722017872404902374218147753911867462217629789055922062697609812888486025604478355619130800640056752315752630364894802914205270392976496968923608220062902706289773061144755338205734336283989007886858189025316036660112853199814905411037221078120135457393477387598858666917899572411584537739864043648351592114781574739508267724989755508157643627390777294754215923808231556975467506507361850580006781866532386374001383787330625771672545804255810862764495637644151924207600335588590746190735772238039305325002895702019692461276884496869581772029541155312964140206797793727206612984150662918702575740366582531155846528744034442582984932092548004015915781785130144491347473391147623096173999652809304335545528140669570227734662040027496484584488755262798169093165574864357832085212488740111912757907837158530564241079432105055354281558894005386186043518337135094628380786418878261104753132809734005753421972131384130231501026986822749630169874382860308267755122244723789053386108675825865259179066519582247673187488665790691953279123937468494062244856540569219761263177626855605476675072651065242164701615093206771832016237622020994382670274422384838098305944667223654810385179948512471590180366595480334339671844285775144960203896758194638646203314172755722329905120312762577890052549398728996536532553901876276066393290474165264581769135636081280288044836495958904008606202562307610276808453563305449052721556000032856416873907894537539332170101658785613889235242620554190092606840045296202157683090905995210821621266667692329694534031268038971098177562737510469256748059414413533236120966356387771738614884559933466655681005343020579048224051854284706495940355521774525445321689157240692540394681764932861323227799427508871535259181363005656224099387529517112920788926556782707572555370350493127142224448432808977782918276968818416228092023907877771389047274163361525032670619742520992332952306534480995476991757310862378276605262484551553749927884294501815274326920358062561318516425148425430955352251385792825829999813217172123260209581173202596776459411760358572171045926486039525898187066249208645988929242636206151426121512646570846052403809832184201170038037948176379682839912260184795391661224369188593326115352618952746303296215744737321978765609954845155312246309514932865445480790249391102008049051860070675841987294816631514066211194071574848144161988719790681024722920000907001210053469217169561817230831108656092126128236368729494066307335839814406664496983307753989997906887856057232979160115668716063517644538269923894930661960329749177187560248463977247800815398703507370915940426723363419505104065336142670864478124565891790234960049719431773856625361920859954442825297346299678065198480199747063804904540865567297567495525305241265236169720982515755569054882204056882917624724497105665076702294099941947235897533919866841526225105047285521009425672528887061638722217159376676713240814899712958791392958623217219042574884632490443357029292618996623038928439843034185909392471644405917847227959012174485247503897286696854079996355206972831056928637977028648151076766359553890746691840245750258326187093669748089050132314626504963178881574119359288428238968529563045353236320429738238017626375583779918571559497362088772296875827255139084342840717604155480992090794284151866730145028717024060611525582786892551886922602023636836696712344889394756100357699940703543342556238208872347887134326829893535366109673856244855567487866328991743443102696379704870169864504677452727984386598832670640042749616429017135752336824380750542658423327894291695466951347475728646150116258010191071615874086519289316874732060912023631948900303798109656379688521441291266843414877693256202143996457222104423399292376827865538492424386737382929302808227056935084038128906737066942414847868020655526543627393147691994111766099669264068088282046466684520655957382525796835471288680186438406383150167771201445090166106235361842700732594857672451452086078028016602937183968879001329195795918784913166056108254275479059914712278940158782416048792822350663560707070269843842356584379917495939649968949752536894155900661984661218947810802293138775330322370665002186367405802658112191722841370950585823990314890422308501642900227798033056010813269956042832685419708470559504267623874081674195652796582998849948328237944088609472929680926006001582174479195306083553995915298428475100396660375620398585343596863865021130203801843564983522889667922209657744006063722149955806774824479156015211494983540295172510081468162505918566399039037291365180492119141425177007367574454595180025233542523055810458511491803916878828398397348485897480547324417556628495879316486574440979720421485858573016244562787111263423649192961913080695091971536267351831001274029188103718461412353936263710809823752764835154951287825878021003072905911337117422576443955522133397528788980740192655788129925488243053939551621265263030569719756876123480935531171080359446279704457853893983940803378282596427095338731381315079133279865839096409395817379680384884820924009556757456213464140164195894354667162327125341462160330052537032432461202602961397684918852018091631290631026865045944412326007077034589312196791454371053743666254595437559878211694695125007350984781371715089124145901846935441014298983323740193163664672031488341248239531503559284567361715828657531687674252823913948578441191562831019887297058680522560443898857968407714300569682661272277429520832828181752894517415981462409086786942686456458419668859373922098135260716022047129801008634162663190435781010064977553181738149487197982394979344103869776587439786765619849945502165617801706361006019924342074509962804715247719159655826369713137800652597997832832112081674627285647459748406341908070062062493249884561563631934379429456050858202297493919079768029802367573507268058613956908104005526566390315561731564563314073631029617550345987746817230211763887040933314557424986678825324372749250863336383468661040555452459332329203710702605615793435688961666280068425793324739044501044359438704154301825860569474626983361518909033417266030799995546373153077932932239658638761287319369246192172207097788157730856351127072385484375506718181227762216113025358154814764060700202258107505729766437503454056677009820456039448531273760117983586357008266917644905435332867583352695983820881205019703532749630313427747054336107989602362258106119688641928915535221396041171075214552538048482000084780795699783121138670632516002140205485524351305654370299848028667209686859205980230454104620970032739608183719199983086504348134110999775209748785312180576360224005593668779442296888310087591925382011525649542648926976899458689981531126773663100608430727173356896141250231997066928521549666951898476130422527168855180679979513227553484667404694107332739491271163384681932495648243478373544414239060791075329839901957095310981815145495797373362929017834157735633341902152062949343389053700513635230644905687472849191446459334898307160639674480989400420142638561573626087578268493453918784240282317173311368402855041097085857359166576861007764173775591257958825365326526116414204861348338070421978752443743796871683067398624080662701392916520101193296437261590247304466401172451806751959176243321775104877312477268366682792656380179069470118010472514435770558055501804714755351823663649071886591011310266053044543813297267377236134473525204331886942386072211101439977914631704800411764971636811339379194723686185656804728412643786162721161988747644265321505058678846277783870628279745839372570021005134299075905819928829748153808689602711248674338846547090987740402087765584485615813959802317209661537047775972696076965106396855728105925524007186032809665930891821802599420502324433904772197751663668726009780731430055868351564067392176539278536776165754436757685321841642716857165572452702985186462084345961552758681484755698026650169483361758187393982396357990462641647677376031773612010324081388576452286744981399018150911451943335531563023301907296069973999084597024115196292089173997216968720990949853848253221024279375910739100985649047704256899849686254846041188347873925480153636006445567603568927572232857831216866286844502743651198970820207440383052180817331384562753200639808765823439036620472016766126294169850352542244981060700606050107021800284324312541636735739638153869070180734917584864555285960210580569985534938674945948768641654613908766199344257070336378134966677719943046805914571411263238908460672100045508758154097076767606765442057528104291132875624427503979406203753064900754937471974159379373585575134690678671984768736986465688448125285667115844660616173903217649910359805952515632027338928583952306177826750787320600526455266232106145663458039238375029916446556229132496219334304400917850998570445598575143557702378215864516297113048939909371686381069195646784094028107678123101196154172915381538880623569855723900332978270901285905311187605981118863019650512809677197509375357239715955157040786170713076774550735007744789075343991633539731663621622619667366253427097698074131559105996004900063681257002331722160986593459404902088565997338563649847846270967880969795377349570178488741895639211506265934123869100451195913903317723348341430974565627028609100954934398280253110348885985886689757122353758491462539557624205520897298638504036506654937598035639551992207796310447032691340782246129335637868501859055163899573067715385973604945849718850777490496814105488347026989209310980652289644204565963638362926873417667445594861738527933642510694465575316602878555928721425233781847827686255090408518811155884815671616746805429262256818570114804970306167332060721550608269135363346250855100400570812357068283616207416387939760481987655389403628318872028367482554855927085891760275507572394647231764879084037078117695316993283976758094664151322821051934109529960539084840161779839050480629913946490295676763421153828693850575932693945278467454264298299478260953497944754606717905737686875363155970254144596046825161727035191607195099744212717329899942817446477350394089295821666266817383385178096112049683408304846426691687093259060023194772077644276556944261826035398791713040393496449792726960654000114751067001388713180679395174250717336775427452624170244256734575182872900551437073565192362685330570460633536577710380020747505989175597846953994764933637365394606816054631886324082885252304993179787306122044573048797290258088387911258922750427088097105080313421301497225209785067933538918027806373552022715876832653326298769772364847773453817537890884348302229559993194741821692842362983835873875222306946799822579294460063880890356300914085298374426060924027310800596854604386127603972847077496511075002787067971724032411354063189147749027950150586702603083081796450553876017963355367296606823654461811079324338672193124414136955711673510642514666167284860714528702445095485086112577644528187605997378226263021323756094553007236760738547289864113982778332872045492101819492494833648159565189814378097311245655346914700909053227554371061665308724499545006473173257854749837141537489248630480523741386580601409637402743427567244159506888887093206979603640080697548165969155694109753070463671111496031844824610131471443614393952593551040687077283987529087410946475051798772988856005301174510018248174477035635176854856057257190847889796553988767925591363473992582413334933730748342036120934678199785093671057829847797100511242358369730576085023757849177211885485946213787413130283688309463988463260445047828113030817984765057118300607124676731107013948469457415938045597326236821574523402979108756968374988325648883687876329694785168590313204271912970979007970675852160732876580838754583340086807544747515895612561050947432414965150148758788984229040664746492794027110280938165648340225397686700404051768056008846891160130868304822354255792815850347273501319190990961535338401130994075140870360067054137359393397355165425407398790889653773621409174640493623934052340124472816129927006566072960923300633465871488530136810555241681874650411357027410486800606872801684688245972433849848716665820020987374095310421095171403328902827065694819100605760825809802179901857146381100840673332342721721957254786794022587778497091069836692247109619659006412922844176838550809298743628568177066171943493343047773111973901268257405911485348525129772006740969612607371908835536572685188073430205473518690093636977573520017610516563729740179174322188448232403302238034347156953079784287596734746445307940357171075716725584675656630161010488269066194839766393031627830438310873047512949988915321879816725668466300295296666188051248118555395500154112095734845888334764248406867612037181383949924202250439925221370937028325840174737735231761413742036922981495520537608486057118098026489918138098195634261090768645996548534931827181243388051030519300144571355441553763462302435901467177255209041069868600783632026466555979838646168336729528762336953683048952822735221207311748912938069375211840286473199637166211098872196173254297838529139179855384059795535711551212860917659586795314262553159650562485855044097848960481671518052344069037112007302844960455821080078359654172000451891614557226381523942488206295634773584238468530752189711265330509751892543182812861985057868801376018017070085262620577044717483121826094265858028606455243707683373885867763723244266933090982798184085718789143012141642588873537541914547802734556625741809315029812746460543053511265526823576859597404826097622135813502561016607204882425010144035500510573898440673985774481916831086257513802235950000087458032106708231373872564024932920620789721442316130965618084232080233523567559065833265064471953518460710856163916145279529164843896916130879018635819191743505243778439201816443006589497273365056360979574366594974854628708368666025184670627873543284165735553768454459091254502648150257279146198183837012356237883245799895806268111851264541227739452830300934087447727949619900572807552138957936088342912155898380192995204179255869845575193929302507536446163281375689087155182054618866543861240974471705791461244990291125450776077049754469223400116228091498437225295975666959940401520638726239796101984227238007037962674234343881457024400853659031182944032036475428558284779288611977701747805045870578942577987200714536545535465963700404534023664003046277316204653109924530324155615642969098623480287716371288155729906571994437597838695873859095451123330779314800018919276539149641659946778919536860757054152766458855482624336943987450501602930284442312209174153289815412535081202445726974268689525467006194163554031680967910993542029745625844915297552213487937547854539919313658967783997164347122323265859739627236811628609180762335144620241795249166065272636406011631059989773539211157596616651374846202325021577276586870871601653064747840944409856438895878540649055487603115424378299700700707609884272241535669853113458770134455278587061638539283424034786760350215629457908319332523637120680204166867243021736103783669843456145845780756064981896262765455073412528427542952073575660437595903784225428503072801864599042113888413695212951147881464817371263468255163436083728846914833087582851353348819777890629399625727013668182943081947972689343482214526704518975561720405023662953383538637170993385239689576835643754262285022522183513395017435384192334064777616081641596783350571131737593160469421621984693659961327714988102679054981237798887449399281513490920478761137988214165125485334419741672438316147482192218600900769913077622644142867495333361314478791793599549716847651842177459360932007807475229987224922050279879915780382218642527814634153445388500335522390467257889648951918059738160338197145075584595914293204493802857215305754619687064744569853588787426626007407709696057160544211052784838250963067088578857291085216328388081071601882730694831360491340145728913125264280547945487423031381868449074623986270676063666078353181018379214530033550112414630564021012804428698801375666796432984681783744415478683661119590501782128797264196320096794066360914025628717471741605016186434968577273794526416040548149620968971924911016393770064971760645421293145706306457814092597374090799815408588556126335313212143628714695006470051340631289140670073062631187187490354404295353968874068350880957326731433316115420325598032090363404487216533965082315768597786587877660949166756304088983585362181374711499363581531169940025322110993435444641573447020931939687933887262326931162060537484184162451498559077745913880304639930196124458937653272357342832763608247111038826545443415599271694383982004574588221995055119937139951207918505819177496294734130536979886066254989813062870507223934227883442368773860922074521891080164731617793874792277893627190759212511203403937023915241289648835546217910745161686864765380522790389891129255860392126271288691319885470009829128089219719031834717074536966899163270805366479013843649311853167317699992009908276517916481612861784509897499347855636790308547075285330162260049148029366842519923136910690015326923907084385741658583750068503290987623538272323737777940157350599609178834934482645744640000424444109430576082228482878249213934384556508425848209386370027141805814223653811337834458478020488006210377070190176461672715592886737177827995527782393011105758815145445102443463918477809407503004069501602132579844228209906397934557498539448686971008312233313593586511136353413681150114102842092654723782539241591298000996742502948624436624671879991645598999001929926429722695264069076792600754365504529763640818471887228846579944443883456240201556992623452763241414376900910215203575439839377094323396631505812468249912063512155267200817451240315556794090598022635176330072029224773055821918090029745279466926724902253092232228732439151629305410442826182225341148281884016801482417056768000674510779336760578050002820613957777422833516157902650310040837409815442906290402945360201299095852129679057577892291528932744649760317610903616096229166159505434145475363872090233167705374601822779366926101771991301776350630910501409299971911186522586201986743208063880680889628564476826604310813198264504849205950880682940849730874730066433498161368223733609852588142925221769457936571965339769488239416991782972098369484807661228767571520722399484514117439988089881210798950023032824222586815057855115537558634422704487191431451262140338646371300776560336559397509213884995955114220393193647167010189699041462441640552558244585036049756477410622261133909135501225492731181879217039211516759834169871310930032474928675567121616201099403094294309607349461871953101385576858374044762877288129788247809159263770303161543246529862236950621000027855005285490679875374550670235641172018753822101937537224800855383057157776595489225554947312919917728940746045403968301239178181848647563018328115191760045722073131601792736709243811907630669838209586623295189279367565294124400551962181976443076668936038874264133696797545100079332670077822242764219552502511443440836120324221613992919320270722374117777870043101539461061295028002398958434973346427286225438776856065902433319737465526066641381803359193640477362159030679759751209907456239367632913704015449314247084666274270719922301029559004725987818592033428414569840926821664671418621185227300124604206278498740473570918875401577434061939492401554964351359577167069222675806949068260065054584969022889184568940273178422817313014802019707672811289298364485982352429089471333642894773579452176232944000423931594677913032012939605885772588744133035211347209528391071707754105364246048411197456843288147063371959771930606008947373981357842657231008996372727970842059838737544729068224663947427660547059605446627045486192853516896043898132336439267295042752339377592055935813993452190365944044278671729874527440271711586257180494618795111207905340277669104068595971662840147176472454236476450800576936675811230414826576953598113338320147570443513479375326053634670347930086761270077891632336847567342314972252546978049914059915829426044021783742750279858594042163450822710426817604056821422004344712700869568743995393065364645220401792951089476782752075721816850506007982722421984712869200891108221368433668833848454597643055468799832341471201127910677070100700066411435653778499355623859366826251248478635044561467397680789199456313155321023918582723158236807715476114756305011432911587295589762974420057652407836381513486339534019465571131853328557441871142213934086985594527989464724655426520802279679983897880514912395919999071419254570513460585047393427294375994737551248605392860361257117357958563658165487361944607077849384213464930393025279754795762694439631045191841696409036945871020438026998980399836651473862767628744277882413181907445213481790730673586693226076773365886857601253213229889835566117757313452533591374602351166379678322300403059943370216068033957408396426365049008682255046029667354224118354629241110078692190301392207090205633075441042140782805922128867014085171135311472828441212956676364727618956267439329193200934532244144644674701260604466419939953650763616291433780043841683235913005385714611586343699348507748412371590094548401614452805086538467165644479092449691506666635579517199727526108554559919313058131937771761495869703943140925355394328946412812745115572391836087107933739747420400154282551788204248721286173789231664132753609608144113893674610645336538810786167099042046075822324229998743060631048042245796514478255731524567378476392600949453332112932623723531077956971579866277377926826480078533535331085067256021840327286329848316370045439550506334839953667532658181049415733971428350346542643132850080822485858038348238318586476671114298405852553880865797092269854067337984773286571141228704492574931251425095414998946320135664073519730963001102006968183408936266577646657576921233748495360578857846603909239363453643169607260009756666997226473546831966697350591622207907325132758975725691119867860454947389637451343425850296293615578486689342469049851437120756039170771911966055262797086756412159335796651943588883302753892708603040197892906321240964116343075352990222038941531386016409517360336094200084619685040760653393504847392230523480986308591172944159810900734793289156298280560218730193800578374915147767015809202550426567019195547617953064675742495317375575321575483067461649515675520752353062977538895491129964465435690699469864666776490331682170065607746056522352825585368341575365261432355295056526794596190692897423261379118344745844845915826574740851850381742072785515434137751618996755210570052079266777405063186788182787676589167805734145984149159113226529966117952504433308992944503330803213778797643168902813680108256987382380549692124129858474574575133371945687397795378471416247466220210950349681742029499311613393716643703369258995774835101154913351433790781967539128538295931657696810580263752298629055500157527368796625014208262593459288185366985477130602710991795280300250515816992809835029149717332671717362617409648668725442693247449094097685121524594571119561844807706250176838015396878825328454300413484691954156060515958042781295538128278385848664173884242968674570180007115120136933565985502953066070768367406204589926052697556297991766870585990919309623747706209884864650324949297472392454924884686642262093777604093932535619556430420154729568710091814025708118397710157135172691339500247332840813120903518071119382912357855530145484784200661989310444740580205361782835124244956855394144181496892127831953063424270786401572941529610465076778591845588296237724104763284752181421967275950890211618933823423941427154993483575589359977673340507986425479057868910901193503814732644903592561281858486899369212191393193762378813216103422000994299935050537674447876440073348508237115066953719919947687011816159695169661310515367658472960205271365874635592925967894631172630759476028426932104712909654152946428483853528696387961641179728407263962017300833892131681580556580838027434938794855048603819535029014578067911732619090785320647572227964465824073379093410716655918422556319413333211285843471438371558102067261232472681639502122397258855027147641612642489153022961055661538816592165085975391027180873215151416925295672363249978073889305879081808951627001246427088739761346535303441043354894507080429744723983141035210774662658889785116000578196482337198022361041827409039190917086419976657697954898327015832098022358024339778058959013748084626010883864792842302375795942571382681525037265153755424892378819479494116979082492556907241415178007350817778479007732517566095583492392730444160096786250677353966518413276402856332508568520141478176706248226173317714438495717931355364520745775554251833347592028099473695620279517837770310695592211217706172641756747261142923948084436621846515934179385273748957027122315873271068243139907591197148016690650546074546884979230140642214859447062068299817888031840795496596254030796877614628595105729893624322518114826277709679676682795991077456618520756594364979256214993165670237823014026916343773235721270207857159282424696163547706430757023457945497829198578701152620046749470704054084619642494803427879659560001693796180533918599986737314788282930188162976077423091839238556519705993673741042640054181400332443548165298393020952775771167022273659015352985327640456265285164626795450488647723261239671819570898893906676433258002396335835044666301037170543711829256739256863495597827738901620974372508426599621552745842842362219790822696652077716125676489044373679697558795156536908910876612865677125422852863814755201837148325601704486385387480800765798742081261641048204739530790800977276590917415214892679991894850602946745809317572900319212443978976237283223176941261091971904449287700555737258361844790786922728707512317090713377938889931457795676662687825112083549941410807488994334953481745260705118371535750635244218132427124939875939687870709177682250729707879663387859396980695081813830149091930864006587189191798867626187666405777774330534267719397011032145866476265673391447797548363449158190279802545360885489810132472289735921858791265778426588507184850327874025523430790358944224783746304101095704048452789185348014470760932115040856278387145648805870994260984270917969531287359866997593721642668511010786963279327230001162305284971945596117562324963448709147705359354923461039668948359445161927700422346719808681483650960340203470356227836597731815740791705469809839775221173382644076084257292703642228231659584579068272904694268964229345670593910694166329480814760267186180924185604585285502088249381874163069529962954436564176781759412661768438682776614920501402181915959117943438224002604562342631656689289154883751068560154730263896778883194456936477202065495560968323890175260862840862474382258330777475460428804998447105684548967944538492960541464008670985771569113453968565515103711919030225390828154518295275310814507555649602494048409993143454404220540915465264087263651071818367180123255888807795703796993657304545785517541467369139920235758563296651040967996094261199252143947690385387089666766833085630351710190398895953841236699848416798093069188001098622488919983790664202496314540093703888259310461958102628207677947466246772294248769719766832806295065826923284860596080568534404842669143583819474800800165683512865651914242990828524946141203709997494308258029885921220275232596116951368613874346530999568416088127388884313138132121060523888302159139957980723678984718850197397847688293538279405306901653353490426940833662776649689009038911546126873068592753300388025630019942120447823565223287788563127498052791113032257665691035198300376225072537864574856926394134765901266734229704984747218379578807869986683280756215409787359122562351450298130088682009782759314203469559240342677979591999340668831829947624615923473004485593850385302129981348804810896450429236689878654509806765598508862089968463721551291350973772785137145585718693844085366186901481143430820375285167193344961261089579059738991566788415044488072689915154845476551413848346259603425190335112943059412149147796468177953159155823187969012989136527313914898473751055651789699058846022066051268788297194107684945785435171963021457943108259938897042186792482052713186267511893120029987563024039052559146843760980795536745245558181231325888696816484855074932275867502223018988449427059131624678274604484274630951034953104285676641990454187181131207121203697421722687790037386678647107020042067356681753821713299036003181041341122356758650472030387052596535339018946394244358992426898376263741224798928332182062261901540886472257063913424823974467291949126954992866939018465844209049235101811510872023250838359511479008913645301573405792635449423050117379054283174729104924899452009684283800691553901230434210302884358500181808540060659508640649099325718993579066281466736740628426095608675895377168892296246773554861199560582279043406087921207354749676354884449433068497625350175423202160426435095043093994320091015145331108117035964495747855402506627711289012858371901499157784403971645003354378430303586229093759362029008475062516115102879772660212836060242255029305656842566498955726426164614886240572479167871051641109385440637463463963046416517604683875399328161947577901515789291961067291076601377829593508527252105426987804387815589946214724873185007887310964042361056600740400432586010685173230040981833779505047492806285248704308258007235468574385426702368998002108420428073776595657959142427735854023289361384913439844543693163696140197899537681301026039610272792940791040046874823406853211747050278562598349951053496748287947433960030222977508800684023733528948762704773623136506342222026957692059626951013846436427560675277005370283656208963969808757118889532265522870019267379368137936962271781073669436110085166166701940035369505708554599304827834465885376698882442974172555934416866481753177620600422265719190900635395979531724235494853752164869973345893244919842655731076588114305027448062182579052996461889003102588124017506112767134526178142316153454589291572409116550576724122733288859263967432269097234773013994194048124522643266143334067395791630741066638671328366103229816338253276670492385046192722548881066573098955728140261111688626162771350516141989423211195522091660854683602274514616895932528581929817767095547703312212930948409113036499639917279187419221072779193824893970865720335652312586219647917599456818137171178277739902660390625454429202519033165582425731191126451825654262838952281200670962223099465229740410214753744387196585631991370427993027946077147707376895987972943428987388881870942528678559595492984943056620021227376117231100077728371493774525861345679813045310112085271734921323529691115490355641500177788594675494017405396293296179268145027026238326060548083553043177811215930889718273455365115515593938233480912948694988376835891197001225554326552141396123496238543024388891176300551924690136098556510989071516355253655285686196975875779416405373934307944328285301898480910818907630409021672815811149288560894503740780002492710152995419804151903668408912101469486941590722328618023002722146020316412589983255231081300460274207454713883743441025141110775380018277056304950941625270078946118272703978954901656407580898276422944004022306838915180996377841377246778840513239347886470208782559968682059701606520921029382239355947240521724265418175157506101717278542566442808469143175600984696774805804114326102653714667802244245299404631073156746021104451238992178400759355837812692925905620494858977069317173212728210565048992007267199230475871434323298727469110758621234218246660973155380332949328714916431043400131311578333736517563706051587285076862619678489469213017460082232348946933176769829468724763721183733099553463163995692978385159744084551595969349379322501552752533584002778867986708526427588205922910287214845161385919858374144722692980918130200191912068284328406559015946234938587773332227862148395362837271901217344320676504793880501605925543126289213581184331345130481901581640316233914861929912554300085309854899251055263905585717898722091475520225149280746871095724822997647450997716428253964544584090774908916671756806819398358132933474266359157837481927801210614938915579950735771528976177314618696840335566333401871366748289033854473652140263751156529585631385743633046101979624351245390277527658448967221892963298413874332056371508854091959022416904158679484929583919864031180935235975446219823161335950215669665495513695580860712097963723843537932155181598900358039709294882994068220463362780490044014773623594094861051710162964994987742362720131028239856874103642995088202566596912793198723090674292469620094296007730307757852769482806561366033213164284633766520458350212461101456656840463556284954529068613829007261434730168050756301783908111423625562799961334170719962594397706447343719379772670252975421813990340176488472145179807345646936484195676484821295628129071660213291746836474008967991928328067319614968301507356548824876413500518228244670273456847095256939935348188203312507538373183589767843066541428193547586024872696914083044284677168579563958052423701254045267175819267404599208115261223906265062276407266043467094677921939871944414288504645292190480591571841237943775906939013441588346757778702462659573280561504101388381040437317795053533216270980703999777925490360986794963984477394708433831159364140142302497159306665514460690915615347805544065215256201663117753830686433586941525541293708335729325206990232212497596475475748892431504808655031713204697102608388017328818303926730672214831239374909506710808215854099536515211119365635747293376946040454042458305382660080825202651331265478386867860988756780732662162900476193622139816284683998591932908272593421959769626405096378288713403064997930122135447489777891145986512699989099161400006943131768087225962246114741099171428495152558631557437267673674254207411382050172146989800320361504881551803227371931172319020367290495918064996423961728746143393494557506869188329124221634299079184417624794081110652628503867935166770289554297115330609494382983204545641560986608413316736295112782104051116466081347315134422471435592687033356505296960923618781988124065813409070549121181845968647525427048251309734769170650977449433029911275716050781567277180671533053182492714219453000314618164922660113126604874692638736473896230002984499825614099420933963586524577892398383860406436904076797903611346920384155195545223205932352134302671826430488237139905054658980821195955196974691975057218657008636530801883426669735657729981572202771911782023351418150875497204043874113451935085286938535632220379452950780115716651456042333674519007579373213976476894214131166733395325930240568179949943422159977624364364153692439773267501343559073857787450954655120480774224821876836526233522784015682811229485554283725566873782029596553257030092041102535855726835385382874229316249300144935038077107828810799754229111097937879610351611722080265101139753540011432027076010046616562299170984297976420915602788954009372821479387434983806959155422098392070262109945039683616770408064066937662645677598296127363533835207756263781414113685680531057508337056368612157583214942331720327292284987211860544821772013585449792944990278101233635483316606729858186133745899381469480163829927300278088321498264977776811918655054052725576924864136785635989034806710900002138080552208379032096511677523838854165529322411128184568472343370390063493726264853357603564697856229669357407918037503402383893809784873061525863835658778578314190172846337749830030404966495585596387857096041590279505848182787775769329557171033864233721594837418320566547327188820956742602049422265681508464466966355393635297870895149471302712950597115503914152309417587246668309614914257246060634050255107435994679815849503390569601360262408680371029623669203824214126381197376523048945714544501089264657937585226634061060055048619125476846080467907413797466865843769032307525480587702698013799665406936552552025053477016376038384807221636045115508197329790170806341782439483020820956882441781673795836329396199706809384838896852972808786795755707897405118055612990270578012693073178747573743382294971474284227046769624645514286918544633801171156872444523965638341134981497902989712574722291502289428472121770198396613476375227068362901959016010080822609987293541957853263750921453822923120074630359906537958893003286397663525003179339109949454231760211564621228370035309392385363313124987107944241306761289835841564562772113916998604139091394685511162639158145667082840239931329355748193949950710468456834603488942002483254821575718569932412331427706827618379951179865879066710005293960642621871921399359245215026073094628778172094718124458548659583462302457612008168176077570248947211718168199789185933577823837296882843558112775490583964304035885329881303304409700742495618528891749227100078186574675932194431362334825910240824307179993762950679787510201305468923716227990543024415862976988149251136885773365106645977835577586404756723039796405884017451139129266940743005962222999003459977562179329651421382704306012343761169922982757656901917211539430485895262118741825890795441140294211953090730266132011227257603798915051987862608668534199115367334191087445563737308893320593234155799622801721342836270413851841556184912765760766798432555597148826197454570167246479199785562895692943550166938234535354180334702970879355639398155771356081693965123492693473152323150242967108839662705278008573451629729995878876386604035988365400373317242652644744470456224101546143897385121209641780497605030121155085087114156947256935699658184302114675509799100745855255198646921935005835789937061170356329546661927610201966709160031696825462673618805260164444642322217435987460096791998596347090575560467233889216084293549263943191120535782493644635615569421425061986908225356339531905829862519435445823216623670128132257305488566803353685011027124836670843365238044108784756442187969275889784103692023867570102227225211532102961571285474841723710418376078498129673170534672915369441272315817195133595940422236390166201697058319478146185064855159506748095139463506788020698425533863912301399820143867954563864809875815990939177817544281216459947995995454284795909030547450171397584388670868525415796270653498224929215996187356428934192224484789431532998480434743714694395784920639179431093095882990546270697680302480309098301095435667567558174564660127851474084926767650722571473489025103765609837335200651819257178517073675248588113449833251898688397526433479735114757731381507299943571165517446993806523181092773906097703539488220118556943255771345189409667978711921865188655532081147874283322431251638745297163809044749355316861448032313192440560181787969363068894288059258026245693478505190985987633377737347585768822337632270289227987835539419678687916263868422358279152023445820242313548130921040220734608322093407001971631788232615862411512422895185776286516373258303920065877169659867631498935150974361220782632551543170692158240708591169094191266409684325480427270410425641292525504879418936341765960332503511528078776188252073439242603515871473472637514707165281108979793547213633068442624931084452939093365595242777564334470825636082964203748256261265660031279753274446565874630821282345499298900185033613328973029736776044346589424665112705246394170284408773099076477577330842664880217898239297293444900444877539924642917235089478912733116442965816572982124412361767230781396689636584637280166266409162920705567451482097470905715835923925358179744450288408972577980787251167291752346940916630634778651433244066555567290581742037390179487542045383540673490862561906139292859811472023215629923679195427329747877612938566200771448207070756087988306071151293373664833820128101388965477305828863535342196492399420836823412276458620966076059599531397973237068762404531258416358509328756195668947227505325174991179166222867095421117940836826994086385795702321874387774055687123789967204207869782168778774390699614907100362260588811968642832394326379321693761541182583700091942936661259503575524510870665941628259746277897481316210051125956121519130320471412757563577413272474601563749186495783326126116541603010269904087738467686333102853878015820371015291897210929889271463053303929166089460209803629434695798543972775320090625545511709254548086586261024532266761576044010039191340777826322303706656384895831235766499624182819419581397970223622057561040673564349094819850269642096806018389386966440685222693580153090390237821115453600758481595539602453796876667572714549359066132777720128762113905908890014740719933822590217090077011646911436208030413183991628885069501481234648720841354987018732426313711484543672332438741473150741820956498498949717083302491830409703825270202881674931959685713832985075296030432701650675308876546077741286816472092735948915219660946348796968748643268217754335422471089391329760185166364257726119418582598889018956164589890654548529464359364706461063210991740067462137139444409977687329736238797294084527707659303766449692626420511607049694316464110761974703318707557318471413371515961172853513110725789906667076732818873589929387761970624689771257530257716296405178142236530536812387127607114059649041144400783957974653020356009953181437981214939785339410674452634241225856653706329424825680750538683500257335150355686706123346780662671966498625229957804711970524368472797840575533596523050909469646640401185769238343729930387739549937993463001464234251095239075190029353141165705383261676327840240250360449454361928386032844593663203405303784585455102891979049336028585701649802678039880870988488334950773835691299727801740453513174394194671907620161658333259909267612159062509775186351452442240783003016863101582179673808085935841863481789904251753455071643505552439156941763141006605303529282227735503816221541613639033743485390454405761148759311295278314186224274032474986144202800140250066409839239467569198325552884738945253172318216309598829362184391189768591815306052737165646836615462178661147943824021035896371498716039767898690091828959006857325538060471584012442965190324160043794523511584531168739014217202410500463470837353722363542750204255889892744747775635743205397335376615034734753971700609846573268304119298773154596180185136121440084415412931330356343059849664765205470350514657726317358103652908786149969771824057779167792584423098389325470120394884561276494756240194987445050695292891445285990187453709088221229313686432075444098198282367820260252664007226091714215476816198129224081460787089911555469366919830451414175257920533067709149725481590712158925550999363344357785049844222174619342609678069427404582814378379873489060750439829613990731816576058619667034535154377950774729125858817599657807691524044763249002961358668041034416339984923226188144815912547595343474096647771311517288573962739858754142828772422268091242002380807760787086185393322691850587555912377755695027895293219482630802599009766799583108741281236109956833073812834205886836632986490036995067403006992753482948386398247664857665529511683146738816199933646483036428431472705059834734259227667932152250285191181886985708410777104236138163603983798101437576328391587275561626330409441024028703855945446949028591881305258262785540740637317076008630583014136134349054790959902851091764727483895725948460700021911454062719780329984522100653458549352004965464532640016856293143329413941431454766347012125112478348426544309265536357153842417873818929847069545531864969913558947976683693406461633997467658579708754740320996594929493431309710285464961154604292756989810662221789339710893475036611652923995486086512536223280688218939964829444345658707287647480605019237116386405861072916203859015273298793693258909843111021075256743830290500424344507574928924812256676551059970473812523838368410418806371782236384413109608201742183543244312550983217070000006881929424394618602984505974793857934434476046303576961216280192306067311904297076890503625583787778850372508906612806207638916196024421638592763463118271839279926503555799786396486178037759135205146767127047312816895812595786262882716400085449083372947607379019312252758808692972841812273092352051287612727516036155017988123037951379378226080387076849491670380905724117215197947288970412114253511787013559241229771482305516958428654308654864116038574203097035645337459155830027959428187450096111981989199789411899767759998633047705848653527506409859908256593118366378165258072389674170691643469874845404320800734959276999954578999878825195190977678898244441960860388589825592356346207276083936151045921456073353138243286245396630726914086002774943043985991012541221271943204862435591634737157422123059628320904961037226988945439183511149704809059077565987317229028775839704632997606581534492864089713633079678245955751251182708303355137543542955694778743909335514317190104594036005246421158796958856510748357815722809315959934322596707419954652229781500179459909628972895817119043248140717255563041241944738939626870695897385695447839037751721548765439472086903761740209287067977373871986085733154491031594301885572636727996813436874278891566752393565444000107523751605237866168294391313156189402992557465153153209088565535983331120550647384886254114616895009508304157478465223524182510684152079671400486264202403648166241441743405087792406583852934397492330896814248861350391288155700055111960805310438258753298044720501724400411109913611565506952326488075975374097478522017217466396512114715630728743968512605777791010536848377418286938199129726803857944173782405336545934711531918854007830758995943328289771074805742641291023648089990525155873986792227431269605239903955663950558279912307476313771130907316273598760084336383061159398053764699622797624888117799773351422746571970432860535863039798817336230961849523479374456621585634341347269754190671183193116829406959293193573327176321445159182649778036142240620283135748970497829081615208934644241148639821258315499397317348016557759491738125011760662649162170905321521463702513890132299060354145285948595915207679694192245523554442328607761241608601441953162800008773546257274452187803448687835869762059571200180309318331106479781433108566197542800197595716299274574826617051865700898567697244538128283674183451107145624881032008692993397549547471219952622944340763699421602648071891391333132170032171452912786580017456549994804359838220476113524484942130418485333064005132303807667320595865481494849315463571490398334919522456593770093160297929141576161436427233959561507158264643996175402127513443964311648414394661263046680455306269176717695451434690858663411645445264453852712187692336697205487421830903372745430713991842695929502135977357077367695328366999837364574508248140891377821329073131249114954986299641157254862709446550355678921988889198452688272259800292919435298657011097744736176993897542567359466916388846544405193678825900509949597505710597865388352997914927659339760050305905064929216424939831470405895673111246749457970301170041134739346051075020501382188386176641682408235544790158081266714628184066526376869848608478248038615599718845789007062274125436911679827708982142207137367741719764142296358949262020417069608543907824174603679222730772206479274145797297643069853081318577003688780204521385632557883939584293869317674742207559515343991464599651629471225775147091134495526362803273839480702346233932830319419924365699232916959822318941219311798534686690591073597528422796714675667056689644772759662739326610450254719828583774414767117380731390860855486517099057666800522249513750039277848533587781804198122601730223417928401533415149345761689032538043020751168461343668950385633943960557579132937408741436336673959118591570432190489098649211083128228527106680674991224789673684251595114899508585195466172320851090855506847078441415697743107791493082911731059886143418559839335821688938472620963178523178072559497411548603530880535846486801896203779581545513515769423881194377560317946428763570469698353006784109855671425336524632789872679291287342045839215785456811183566115066854348693918130021407375598764583128979399218031940116661738041587038679845671246282979698070611090565599845016936386066044632756252983426891509770683145791469433925735826815131604042870104568635841910930083720575892464962781596473109904585082658906099434909489794589714795556246590786835687432768072051824328857184761786475257283598739297115736862286582520843115190098688064194605122977466923597608703238966405454097561404327417970485777925777663269095570501934411006168738837007140762788558124143164786749798197020311012343074615969366485012532115312952614475735610776672384260289298284337773868458882208903768093612316444943231994264438432129745792498322584738098699122275596479172714621699579233796989766149596883120292352847955526610621199002997767980936249908696209091808786756746077012983638909254530223542871455254199422470173916201715732575077618530075726686036505498355989073233590676502656759538465672725000014588792329729165148848107908970985813055350096797331702666874167466863459389956312672449294255433491502534485184847616366937303413344411435235959912794611104748190087092026759925974749672585601031164804958044880758352130134503379791306589616958568793771425656255789647237843701549427632298112835784138184986284086531155526847277061521028002094164875454709401601512412368259401839721899902688350249386224804532375249130938293094831064576907500442214813468250739367335850812931775703004671068247476739932816009401044602751139616373216931547137110680740354332886649270621186516179513112601803712024285504088118566689140576469348765879234649553530834273076597809916515117360647845127525588074565364779208939352877239921385764983382923940753161513861167536315767247628987371837347223248386101535674728841567772767543336797161468460538303530620564750830808306187842668340305582313939392472775324254091110009492928343171282652115290756394997104871786100000296961374614136717232646891819849918497674580109381562859068891646364077209063992309319578599433538005060489013241447196672281355208699486858244122183508804183675336837535534921773415427986723652507356923219108877184967387556954714552508624768673648374785203788576639377591212808955095204279824971325552461932936758018818498201895713200440002231068876603264346341478854701607306797093175605729773880845230279800943496108255875739639568458465867210906589781883395566908826170925760430519317857409878937824636618567523438415607654001619718276639487288582858760897210476030432324143988953150973964207775273524121594282624718803221960083211521127187521147267593876189150512611041761526806187342768154251542582690461220841109251792369649898592405806842351822290990707635675585582667650807097203506013752185940742352709264460532796874243648531626324387038576572097495614471382624553449360641606546425882473399126769462663197914017048158165395371977793115899216380554361503842496488420893156031463332969193932903759010181018141812426129553004278710561057621881971516006457021791404944101538429336790200660738760229703382576154977548240164180304306286945989296519845527303190878111714242899659488597568027301106593943734386195301645641111346953835865604025404235086078275627895320166762787803837616234831055754970128441292079124951136734613982165856186501954133641182396262932843291016099462878970243988239400143055917096704787735885583735759352301297564137048030994226330971892081941258546828253945700136948479360983202357374656352091069993410506627514875458480526915653406051044436199911095255745205860752338198517255673516586369646790746852008969307479464073529828542983453933040696019488680928806874033361754641730628392564766917601470836524330092153360233986315488943566924649183180208282942467288927659327340587448374995469671739871736639259582683176584481747357362518728161813524291740419338466654253243254247080558201530448100035282163240922758004571320921770090929522556673722989493188364412097383001420415149224664235737189414622363411296518682942419510854684542479505630723962112228088893129702091471713607938548962072430636781492207649060737035238532563331346885313373422624052491216992595409670019785985416967078625397562273613313976802600665999511727258219292439946896938927576169409336074695793568613639453189851973391862267030933859832191925178787738186262334435043637538111015316194369985066392760062366343239256191624396811970368982554367045579066542378809941483230862035350480734770724182858382861650693103009642532685879661783257887779633428038485964856825035189690052621252315880102357554037551375307503667505390197908125035064775027237397741146491601658583476723696521161836365826315585251435412475456679448878338467087401248497330759037420847036074056801232873346519997316014288479874984431032869371882433106142542869690947842404952242049390011431068190057182358091240456897156411786956040827597149236227694633114333035107694595752722800001285513347325074992671528202017955162764812880569781713828126463932600295767029197789415588573914650763539800210916066270889697761753641789338297347692001031270459092906082620337368526898909827755861302691814902492326588990348610448621794445555691950742649208867558167925207038002784141929481009183921529576932397625300721704099824714693803806922467724581495385926024898003556014858862010232750200936034237038749757089784557177394965377289763806160332423963067546207808167105199555590798537765268030632563414686760854745008759253609475754693257284258185134272261752511473534916228199781352162929464203250686396984177411207867713906633174808805257654759299296185026742096536831148038317564207268312661627307110131641487656949908200674523184688865644486598886980612944579638103214562246910733971526064062465659614424552646865818734686599015906711554409685555701709806566250453711348093551622035848309057210057197494895597240960610178665320500177569502868209021426556671922857026929467329457445932767108883610683557568633633319966291819901740091195861385488131806053668511540827168521566603153460063409480018762317291449083369765286283148993400671267125960055046505618963717946733863792131018138150151019353468371853760034962669185658046033792179402795732040633923672728409702021779379291352659481679727553388234570191679575184846596573815083201956610096323601187757252381641907841079101642502994101108323704263740044545543482718110705601520303615245020280620666289834072656673464632926743338592164102850812180156423532735377999580794615753343351337629279639433006721220591071017474408888600228416062470459371269365319046705973044194959327417568970015279162129476301901494232432692856791613248705592883815615262696666673395084714865918551255807347091137380458245334821280461178321377671034313544949703208563487650985568004046332793520662169834775483696729188848466180283178724720166679476022922867377497545864064663283367251507944096625535842028378232345261388038253982870884464268053440513278293144006851153135465717840976268657147727071516911360342457937049686458370690053703579486962636564767302700798331047435236093042119062034118971082984458818829296927246835933119639956175331721866029104441628800973515404826482805729629848873521503525683904298253218306575320408497671252861852369332835102018471439247283915040552633732135991476478078730095203230160902960878208973694620953448410583979151513773411302274910313901572571842798577958728007955170697787543697942826280899497040874214552498550252380613799721797469838568831470401509494475279581249096611686104217683052828942761682919766159760067928202896770220364875123450764100558284186452074091572121624438352725210054742182086060070735705216100369550595772586132335308073939749454781432605923066477965423945874959223632224993291060220146945253789482574641017667292241356573378839099129533694700299211237786629001578730784843451271587690773873476449424668239415970394326922570723759150256220811240210677524480178920819756430954657799432894652406704989816377915355646458908636129394892863568312512722086525191518088323666297774791192745563818279484079324725628462439428057859807950462204990821156352787198796050123831021859978451598189979253382314356371533469927854444987948392973011265174726343331940046985184669785743137411422916169855454517125394081594150533796946176606486386449952765898739384430568732074217277147540158489345636741879999459120531303356644530962738728853520672785534066088132779086430513688862289465029165501558190665041472258269101432117652302953475283897940423322417482518846626568935220583075511455414980384719946678853528732285635216889991958667917680014988168913672447536654331683939657632532442322596604134080401155166470133409412164210063781412654263283367648610561582461778850032216198543073018045179901361343747331725570151523001656216013370040436000177791891366494518006562878693050030880543221644523053010475967754957812285202465082963315960549961417991761097565513930111537319964223236235532298988595649287137368828156958323710892142199982116004526062307495626809179397608340150878669229304787818998540469635804184966233880185893691733545937091072319220917433456090434037687378523408884036124707134257539185604193042491902898360711693186480876379993284940132807986837829030462372096287146490610680277737580081660709242534614151500126101393648807832742367445034501037979793755627061950309729628040095660446624949024406655507675982013758348897482631039733182506718386732602968960893776131445959083063975724096436698924139261974916130213640034760713530532543147063833893800423997292181359253882052716037095555662835823213663972310920861659872796908950475403364183775559642414552138171534400256295897895412695028238840249333661179625155656182898381150238980048011649397925847012137229363244036327122205200369733439148475754945129687269235326833499920907567632962556256275539340287329750638325234201620934688994367669990601069760000735006364706225994120908706481410430116208574266543307620578869163961469255097125048678681417018342688118670922062535645950712472574078672643267115066739603790779016757308034692323258629436819822590048640074223091906811032610588035035828122624579575627757133778609007261054741871530078030541184053064554676166886465423229568593275485297756799172134322732601151555059814184230558460440019845170283805830707238188295472631848648370297039641676938465509403301062427605484007781972285989854402168185357438517501023676875664161857623439424074821160753669929404035809833264253039119743699388485380379372005069982282848296849049031397003233854056683039289194242812797984521552319189129967199617601168556528667913527926439468596161660525349723399390989195414855569408207125266213488168786823356083869244290353874237290120960581540214177704612964495534827534436105240736901379195380460870119381727738070522694680297106342875774742430988385924865834441365748087537427749854858830352471113387127587602553643626387118246757996364560117395482214424246412195401988244226086641927477041611934060307366280919323127520598990383609846923590883348504001888811504880744096843019215301370970080842865298230420807110672630061275984410237222481340211586452645232022762236601521576490477004017652514226779329679516258316196935903363724149232992043212924709975817632134775431090530075670553876030345896154135919169266274368298107103112928459255489502677057064644699349380408144790590858696112266133156014357292804432073126808448596807714255359576826750293309686629917807272428634893825235177669681817098495743333617991136048383461033443525889561829505909405894915177172098775636779308554478269560854840432513376709550761422069279491426528542014964480799344883111112666983332038714624885937525147968461321496021736912841990801299702305306450419589183533653840876517315986096792330229167111171125404317011280925717543128780287392358403452369638998441363954093525900256448334077711073512174771564381209843471425976746642870692369994273879289589729014045384390327428996024139288769978321188385066733588630986456721510065437956785935918057067898066040947962793656268574909949884258953712793770813451361329917331591127555855667630009532825828608180395267527347132116620019496926875470265789497834523571152216692773556854436503997478267992229535108006821781468028147451122476357688570175781220888429135908754516147787562100549544170568820164229326180866655655475219087532650357636475158407252422077264713913895266352017671596522339025270217026166980556879727298841546329474819780357774106377697905129529625293518119721234012194996337551086488355656803103492964104273768259483923401784531733416283536761388529273577034563671057959112112349920335898624342301551018105168054493729537247812985325256351484644319056222085406233697666583909386462742026690254228633041156492071280696408212286338984391281342563867241327932967367087330659716895765278214698849840896750735166641678174264902080592174608788767147545158412215229896242215805623388423030987008059540803376472306607921573765030567443422582137599527319616868000007868392093749595760809043698772412429246583429292127057150343880855809842890165216006462741254940787669657878318392114559136172193757168861791648903545090100023071378794356552174660174864335795891337047805424978288336507933998141361595909793898977526305671033146182123912285375557956860422860660137696546416690887053998020658219532973768902216479440237856320892699884562668345325070049768541663539018601550371926357041080509237474003674177042245760619571552494624853759015105900163197781488506317491934360940618970585758173177746061534367642637158332497970897950384524890470380314931281903788787218960315933727215116688798994202872949160349149098991709693227153257990083533722833533343316751336892768523521059687842753779002485325395450100342848182906409568046382795518554466134420241036996259381671631386619989944988944475089298589710047899532911904575873369891524604063799253631504309796275431832903803487604916762223353063254698965313028880860158618570608714008682393995289637322492844231095044360300272329420723594863822767076908221926796641256052496209756736147372399959372197442807666327689861786471159566683913553177584479953226734640577959886986083512621445277285070566184112701203732624747576963433781191938589400160837642106573236383592709123872407720609730469457092804491868413789932510337266773538060715706433980077537458259780493719604586299948245385850382112021122533220057509501693548462501835925755376128742166872928721017926376055606851039622101049132434576277214816687156853227354669026013574046739758174128916012604566881107815713048008243742414613660778907158028890086807026390079804711265584108805940026769723427699632167400238604132417740119296516213069976795978313856154405019359603584568716811098885668273598981334976130768665979478155549340347149162743497100596002815606996878968471900941513019364618558383775751427515431294650838104004205238533398456465886545162212721687541967678118505044846842039308849486963016569596617324320456989257391215939534616714554980203453164418207797678545540869197284388960876914351840164097173817728868887639411833391988314608382639551805740005507496278356639873290438516099391068548386174037386621735607432160825984959118489688402881474845680446835829883161341192870581930636186952299180673761519152799033345676159159847778875001183841998006048289326706176440353291548856358689068522838716583666358333581208107492693340938725729685723461476912744850731974970922358401149665235815675183287717061475905758412209230452194954625747217000981519480828237192881393210292481696266357060292162850992642502856483205856150167683365708238495594346783019863945957968242258590658020707528886982107258116305055806585103216729101898883727837849253677168085647167778821279219179437564616615115846093574728042683032956297412770749813540142780568799237279054387235064239578458176424707018974087834233197682833213873811646264945189460362496971518861028911261113049223254746261050252078352779127534199560931918745385872193374483869147770014931363811038684931434806966590790065561830042807897416745913070703312980436557508001913842074104309461833849641757831744622619407987485884935003036921508186164990381183180590639085961462259841489157767533172254724021879119398324658635749423114141342296495923526545081329335705707219139432743623510840739280505366970678463740735767205987287468006218873388384971549767202096748499397962888239657513823307939105320980460607450872670760944547588518102588128106246196845902961081592957213852049063289500349241516736535369519007516719326168256616046193152329313477183136795913616049674169624332296491002758562245655296718352195190005018113463177213566185781120561788100440563880880145056040487544290359772258568032205498278212835314155026805843091766635908487759616517511102877296411553560734879630917304665763117955832914839641673306632024493395337366276464907441331240451212347091574971504575885486686478606492634414202201185358001848497555864309555161306140682158218489404645139811073774554720541351453238237550880575661567930933570136189548820232925261655234788297783453974423341518922961382838881717935061719210257286373620210956247154368547872142199944050796181051789796283060584982535548078114018692362498303996127274369634335701218970678354794661155125242252623452135184444428606842859495530213184898321938423877173751631517291538421398840390907060749400021078464502258671738890564915542827315962820501283699992522867816319578139725602192705083564090068461162067242784314302406760751582170991868732617379049650401043722607496166039163011634426261734110255107787591408121116996277414037039834805225666872159826105378580949921277288562145822048196121924136523415058163544710590714891551679884569922334401381914770360552511433477592367601304141311196230040745317350729081797043598378825580214063292533684001660361183586374817702502614565145337054328694766993698567422375741542685251132181563375195855876273174085301207362577826998876906738337783296102846347843844386117305388987255351384629409729605825250363752347389207020239705930560708557781054048087859146304176059846804521266843940477794591546419943593240936020281125536706254502593294917684065006754528690350036132048858604866708265179061289404824478139154024872472619267721594781661444014051766256632911771563493009551111611268856669767576270130718640078858521712237526120474981933752077094527356127983999451026179180833676010812813594740768526674751343348163418999146146510834061193464435300301522012898674254678653459892336994991034299610647915176729050374867590678054882175277066836543222929982130720253514311285979049330689215716086796885417727797642066056202406607936313887286110336914256731972045677654899782151039200550536255761746644526356943395716824190636208860906495000882146358924325476244939178654458859670983314131905757081831333269127756586323742308244939668843333604127779273138384793058470173407850601309497798485898346792150372466049130140283514811823981861601562940254068175324671568459392473023020506656279655000122789024609541964171545113286526387674690161188172946725713762104987681698526298664147334322824148597417273166045973927768619965579210714083918899400889525135732774707750324809549211251417327791914314859428475236855564857520959092255434985536317696850711300986738265415353464418843345053429059042139829552384266097280043690596079243652852293813889145058205833872822431452360867608383132254194764737757900667019482394688199872124489729366862189611719469130246896541869750029886860390048974445648384594576251164169876748359090932751702081261076395321793337870081343516210292785818926097323760595719045435161649688038593273430305387162611559184997263527935488654757815251517642218625939615740085601452803141461914034393095652523708282109852507335150683045345490514105818060293659610294137443829800610118792404815754156817826222209581110191713623252787199917075668727570620867817390336077512271917572780921059122586871416249663586254179447585279296634787374140386650349179282123028855048091961785920324923508673655513263115440783581427091663926894386797548178260911392563287479974011152813250847630063854278271821204235103148956822974600384644488332894187772016846913349398540511755824714547423228031564267763868711932818446738645251159865475369088370804364659702832855528367556480544297694241256317541508968115326083289388870132446548523913142386572947545777915562324893010483652566495520299702575387651958284517358160958642502103709883935118688669925206764494990438480287192641441888865289411190742125206818397602384349660141192920804877729425275778997399027795559782652982730679348007660906181549060146926504708497426627964633279222858493113594663247490065255784932925203863154688281052472826216444963786751309841595876663673426250985468583079900733033945147170153004467009082233092474318310342670365329404254717051874049352896909339056202109167735393107307619241700777224653627207458750587029884013600020843071050782880253056116129355307763163968970166581667126751375510857423655037000162375286942150621687945557044790682356330580474961394511413827867165474986097699414726410801765110691254644867835955736123136184731563624414488761258893341931723787366772120910265065374975033451446680311540395747021821956180128301143667855345000927861453180120972537224288825443456897262306817627855778969105165202521643820205792630200737696566979520095049860714433999787431278547335007747322618745700439727312402921328285104871103895117437248250679132260486723084930898057043686505710617451867635171790129365466672161694121954936527758255033750315857125281676223002511071635841697180220082405343477596855088394429853128296580341972922989950976834429404128942856727359720342662572154911130920012607657180049085847727223922603653831360439202311109902996306327329668792650352892616430184219346533241380439272565440743836590697597166283070259757407316538055441936206150455977151045637106210006642665674062557817973334217547639905402501412688723368531570187864635095782694259312120437127884203925117974151774415702931016110927697778056590185038737094564225794508567277500033731422884675052620724500401249553959668876145979388296276025455708398015345507416534680101838797646912767075758417837200259772963515343617150982435994972234968222292564433180145325227490966700084730356077520638985647422814352349931431910050828101815438579511615333909154852793687550450490096966697016776094557310628817733090181604208322032648816784565648355595138697301290670130886150812162059750302821295546251071689326257190058354558346062743107701667318598541063907644966535568758421899167928549785554126548743387320880086528426048307809109576095853735312945955781173792644730558672215180498000077426666415761277388753168432225982956408285154443240674275054250565239853026595009154629820898546252115765336279518095301523720309536619965441925074849847425013168005651947716662950316628850252724908748242240429097170097515907315608826494963912274047885059477354280122319072528260246642941011090663704603290305334348569531866530190416263400795207980564623397374448798569388458165302980000779551890908053496228801854369267079578144638491172742456705642539398335249404648724696599005602607940844038303179417133256481040155039915114228291702565427901053437637327333127255734026229181207261778553798905652966413536274247273873317076180764138530065241756760704207260993519931711212033421823427656835363259486126861161762246134909858386063040440548902432522111801184375227509796950345191282692886859871610055045293196065519012972220694017565424180565711828663381748558598864183005606157334828432505621914101472275240449260221644478181654634002984762640519406314918296897703570071626798059662617192275423990006192853941818476389451851414523429863606850351206546610859840770412964630901421047288060640563558771681501007164041669775864434564779825225332548798631862975075649390391444740376298585417030344339734421135713687772374871635319827242234251211282664361843411702005814395828105160029428053347160728394623814628193341541633968347515435993278895988289863484062843731018490249924391304655150859981634634332193807908019064979759768411300899110479133322764916892404856316390234814312856560455093589345145066334823085826821584473614217934224452903636920409384286361398282107478905520079060672562037113438741920737839734022753090197117768542369970182272486203579828239533538360730037021920330966525451477799787145691433596966474499849253023559670117559256725354419637194686290291239316647433056570566547314831981527774136204787923546158814876276674439241164460926433353923111384825204782311277371010068376807722206848375932049183783149078880400570529281776556573436436707864131175877304141450776292707628511194630188017388823942131402841847938249663289298113062119918413331081280429785039695850084797159300506501568830484131963002451621120925515883713963578545471266775324156023275417475622438444377686565221380508424327976443212630425098060647895204938360348322438238184663155409936886764479478255553934493648273991062046148053345028193150024485235979467108491509859474390028897697037538004156412583153596826549233691516266618943614451323365863651805595070342011013779605170377363480823022660818820840197829422456383669282583833632640870317785034813458537105568400195249656035580152764493470586972612303486921898573931505455191932040721440576368776911631107726052436602313204208073420687387858896677898348232828170834854293000226609717050394188713184443516753437311376104906364622020201287341830878145956698203228757157416370652126093252946925589921778257127861147816960686545781751157385240358863798039602856269336197213900215022830493906880486791078114629129135561999391082883242913125278830876447947494831214960253013965127511470542086513210739551959902475762066330012833692084242962121925842213207306655468051588812956908840537996045462719132376123953698808846245746408636599011536326138470256741303969440078339882798220716488228019785309749626785912417329616531437223635322866719355384931657915225897926550040096279781819191648720372824982910912420229526461996877600470384508900408251819875095742410945527299599534732027184983001940271347994112101370485386870780461241164359153668646050945216364575130636709987302755903324859562850907908741663104796823445386137014634880717190627836278109814150736217122809050716474608009554927010518601660661462586510227808422765608910195979327561914675741525705784245449648169455464332226198955926384561652475692056848203227491689111070767128709090647932639799472148197454384338181804049479336716577893443519338596470566101688252662512844115545703136373901379980352437625089587293462990029451351750851787017476538870790440335269025400425698217108841719522086003202538467732958150296431338985899163694652675623861540694775037863319108309146460273480501264866089248408241249186377275023035831299641124595036461087473789303596727842389493413716018043889010074208475665847313927903054114632681825540247864044561225808903591868028143244122316973447782742199041416477832633372592338838416871933235214154276293038134285487866629210654765943130475172914621355722202876397536058247267822637305958425930083569696980086203736225309132116704757872650204427552154360585978922140348507681765705396912739668627721610378725571285628601890663454067535525599735379673151772905498191961929169200577916783184613297039965467046450298304902777470230805932127721464437171319114260936414098559777676119787097240599144439101734983271662400308429183448267588605716181521290380813559488504359784692762828544824862093191360623419395090427643675244104827807392173389967866610356815015527199639595363174184037323186720558961091111183370548380978103290814189527855413584263192305528260114943346271187979371004470133237168107064672284157936453326005735995701401847112768075794521004082160358924883955625666633388101201709164115537037599066709210642369219077132066494495255269011191681354595952992486170177442409102064930536117644165427091258948977381727380326891335198161348987262978245013291585368403317750375573631160569717106783611372003034940707221205169092056925397761069159779242371040883058545950592720007134463521525243624813176673839662192158245419030463409720970731283842175139414262294992255769195898093508473083616651505299295375231115738749494693787676552563059747929405622925262763056957435062190549995916889577166600965657625939702022926553631374367710882883352058234073661870554318511891109165390294319826576321407280688149107305115808632199051479752571356890299584009309422883370185306830055685293274334015466262420836679024394944731638251239299326958702587737345895894608072117560196774539610967962056445114430027596010608738591807288513357523110059535595338102050359900748705222874414979441052488920904513722833475253140779541926892409491018177079843519278498751724294872037435845773698428638207559861954560768568636838167855741971583330172857296185375149712899290996063822876580212982525984243557184386521398017012868867605950928927849872515330818039281890463564935430278287916807109565064363120718209016703987284028087424830297492702796428371420166265371553262974372650423800521938576915581287064337855544698886643246242587312834755421177542362414364173558303025437526792959847019972055457348053313423570596519999674055973757419439282912784502974080064435933735407789092424006821945998136301297617086278013008085312019664061804978403971112751368065398227520657117701372099787336422908467785532260971928766782479974794629830319308433846943928846620345724227688857582899556379558166324774048398536532356463391695408633927110712776038616144775848626753824975654394548576442916541705177089471345529069437356126267571116972208336714359328882959706997709534069889982916471308945908252737385603426955631210999186850198422344748335836288113867147290664576903650237077038982462796466008111589562898603284126428786356499631309429583198647311119651181916830603314804030835993966947602366100778376112288853188506727236480151517338180796492658583459563239076803526706884951662974891051703506861174913821007676413556187864000078816905110195433701162844150752395108527326272363927126307460808377196119498768197997965545408878888256478753774773029179860884317961596101799786575136144256601440908270618119349168445082211010235078828734638475730422582252363315940348505637003246364878517507383033274486603085923753119470434606170347039104444307339281075210350010419282276922863762035860222996931548588788073357505821720789946210814307968893728976631546273838401883766591942213640039361316564663160254132891234654013584876065192800881939470730117991085894123563036503081351622486009975391922299924095022611193029220910619566822179750115428346852465531806274672111792653389306966561762426725132102532155831514226596594889244796346911617315725581013294588494044351422089446976131901395514213723206150938418434102108388913322386291840221421122101074059801709291283126215296239807895393123473981976609671870674645415996730422507401650361258107752868924560873011034679348774816219025833614143378769318505215716315976790702336748394813909701069265215168948593295885636316484910694243084101563295156146794569315195555117181804594162886620166310310661077305041285769341635962091064095881194428304310217111425606935656311162650762204805005681864668754578751988659445655201373390747305209830029709625146302884538124297496899543828959311595856666083160089539103182648035758996343259273902862757980129755291669263825435773755889155966668988497930987168691795721094115571845108885275175154091357736414332540412491783777238168371730521182250317175036582095598375637980119413653465720071688074131004141931492929689925294895762035621101586055489485050697248590567475820292835448080932226512105274027537777693217274931666480505664766440302974908205692799166463217807629379985547186257057451318601964956444024906812654781711950638846994133774703369830701588971244620071556531043675325701598902471343093568243557038137131432260833599039417703027132957841051996339028756419058734351938090789339777212294164768595624109500027188009514261884237274527733488348425610303406049417044363341189104173484129770027217924878180811670296726341222814804017765924299162459243344941580046831751914626755338374183086846461358733042635213138164179468203328475918442604757761088391512370376844664442917038682043795934572707187712420605575662107843421708310028491277074497293801259928872835971262353457819533053002560497002115325697635312664946625229402659354474304579054049889528167642814029911329941761437173529648010890313702763471926051516442861119964443948879663181764148031011948192315332300365016603721454855990019439212244279484647034318776022998412868226147412107753537794488526053119323004343619152578347774745279173727206719944246572760132098449508870879855225837383576028731846025295903797902958607238888342533075492037545745696796041048287121683385830939697460584160168671727539853977861918031981532753457508946536600586898184422454363235814695414754832538898451127388482362935298306694875599860314059934227168552374269395093999292357999706887685008667099141856177905199536797341209677641107965701842748060104330559262689582680553547233315664937647003859042387187730068393359971741319724296706975824603629190583077691353757650312073800748365771130964807908432836365652477722979164956760339340262557382158148692134807046489193097831778045397949260125005762351650914905401396825377446923480622991323061283009999937341056714545513247575986738742788048610812650042788372957308680583901202705162531899553027695992519521051807382524706234636820096483905514169524719840942174888726788433901054690470483913064154425705546131593721782563347290217387513423097342763773367806142146656732335217553515867504522036757343151796875744561191478701033343889869956084068041703732356507922862620227444696852024235386400668738952162562342391659335970226468536331843289494669498901292326713449324003886740958884552248452378099926655442362837515681694781225180934128990814070012974405723088540995001475487833346703225838883062282917584921051057161667121025110730409034180265158732184280732533560501757163287648746994455345602860331310855754128854503713737184661624713568397516529171022155722199823684253025598980963002727724514626112887819960422526757417010961540018275804306081898431653573521603721485506655711907543581694166862978035196121307211892447449096545728358729782788296090293293804882536350537141065198897652557389717118760644044859453759725696118400875676193861463719163014406922964221518803558351400855945079848577922535139094698088616921157183596819969249930183571249086150701845058412504869591369190039647339406001982598057442924057387883653472720087001355131212277167890958301069958451152747163262817138450482858984105778839104452403917524790146470117174792296907857532744532967229707709383688863201865828114335926174717442206472348542875725292300750111758506190343317796016999707388157177610486874540880884512952157412088674722056912002390918399995427243198974893028445293699476101260982864330953945546758845512267934563121849249161258539526969224483490055073151952444317006831105565492320443522187061499471839052656260611555121080074492280043948520904740170194250246746204628150472830291822897788911819666830942515331138296159880389890851083772296988370733472197065965114718801317058131310810908385110968963921165797807501343105675730410570006207025181650102638184156736644844039521799933216828945485395735083005934925827699337970517365288889074975046350141566126759053663599357502486753273008667227681502695295323656354657087999615215361060995069645230536458074953160163038695616261939278213314369625681960675806066671352170538203980694611702139407205637759987271669278048998309096887248141363516152963304028158930804717964932291175864870235221376615599342289212247900362466725143839789443255551456391172805604849398630586899341080566698134962251917703688706330126372936984409120583117616721575220714672578123373113355483943591077352970849202623771278425827692272540365332666633141456104103422328903171230381466829661267522975244707301083966680587818095663697730215353056826399173355585968664109773893650081217440986600144313604286054812695263103856638504959444034931164674413466969774890246436493057344597738884476691915318661829700609416462562629537195791124102020897490348018891413692317325989501014669000684175432680660137338000661376546653679089219713028044115025840304195664509139879639217049919227027972683535947097265051108341684939468657682963702480899994708259265402824696920589331319434476168257161708572743663398023360000389786750704744201941802716464914998312558638586651668811932915512623622702065222012225668220116639071995089465995308310691571748326033409154263799586187398697630290340861765802180787812891074082276666215957992925242509418629095698209215006673751531031625504234112812532090501159714467758537556416284694015697644826865057302879956092415764459953775220387558272370239887315105860944888553346827235616926773069925265312034658721311346680425268203970576087170664742309596073994119712237211327558098804619593470409553165174540756530938551475901437961694566489045706916599388528302180092863864829315649822352350405867204953266925855791730958740638231392373080418246528844003846965506944901530620318294542728143495149618898966694201199244961889419373930257369862965046234313464661355321516746149716781211147021466662057136023291224409728165507071256467643329120496668406031086664135536802770920167510619118499671431638335189979339583175662705861544289223638625135152569215214572015244915764149766712837570858988312764470199851696249319441291971158670913388097743801508858562223593024106821757309009349962473067299345813443556064064904423996656877654076192840803822356482262168251497496708088913338512898367101191246873268793649660079606339493942553939448105616612846874623569282981133244316918727631342139454323934838714151230775227377999806277300272358317903535142605808528157553436008664179477610247714590098473818808181447221552981906740960087595099189198076721331273967895455913339007374705269999808433006328784962726276513637709025225602788494490042432772031517092044897757552383607789516091076459609705097015004600210019480831071662013389913661822260186216824210237556002202565286096135605415055705129125110183517612946657060781470970452939254264508059754449139147476152505093585992444137440569648508732267524735768844446997363551269194031628607204061179349394093292695719363684657373238606062217011565465729401949818950242953561448095799392976633597274235918352093899519895507337938739257515695391826616715321298247865914840204876645005963126841960952384503927006776125457688302324305473194930109161750872270739531786719241068364312036636223206930380777272069336217810188469688787811068166062780387820013375903086446503458356785111013549032304877750209608052284916956600146442570813117079095973572297334670420884224725250122134095680854699440075147315820936998614906333254096560686018411133933506907987484825922070622713465776978245416595115493826921709376419353779330653313274879759253605020099498783111281422143549549178588703436447028387532098937848418353479290021192774706618470317636227864453042968787292281416507016717718055826245560339366165545993323275314989290796575324440103728037296616988173049126222467142395145829631830321838864390932245397064941675170774493950922037997694712696040545809128006311398925414054102274899718249204687920031506556175237700206132090325527063966602330981052715282538660542790122734684721327630646641315320472473387460146513607267746056792068540023050898132294356235311373244466851576103850413222191139933241968757074134180592950758915505843699851214071547751703080831360559989036708082698402298253439144942075743376465734320376603970890144166032721895057624994164877522111638379097698749458342004715695581579833638255098284913437157956461410544623047546014763451252005981702287320098540165029329550713350948510283790483373969936427986188679370074137905260053631164785404761155310275456282359933468694842088645035461728596550631600186831485633537316084210713379098835015394326156417198754285088658678109490367847927919830185893798488239900977082956993016911628449925854670858025754126483893452743006598861512275972273501676275320516852590523039272253856463937038732714530366378828380885702461257462254103870633111123451038368268818811592171941497569550349145822194301043114734134884733932810246717462117708359038945635777551769333884502295149468104986168300813308801192201894591153306341396633496223796842853179198828662524974622763515600800770289847510897218192641013769821614243229430490629736226600269937550585889706588192623226244956899778645797218752132076266247322380793708364615815320307578423531296502005117823092705504229003864162390283395862674046099013161465706895320696078317604176624212518556497139864231045345611352099395257902419932884999988519087489820678511169632410974287750663514275161374489784155520061583988069841831037840664301389905932568169852128747230664557489574417008585168485131159230263871080116461783536787096884279572209889122694997990752674801011820588216420804385208236984290074729098305461606813077624674149606492255119030439930916562015781257609754030385182081999494178404638691016079898810399071127919395707671773287714755259931770403824871509576724916931391872630969847470930232112125813288096066260347374721187319848582074044284774167252058062434924153924906993974291556074472679042631579827250900859532365705671611965131412287724657280651957115923795282049755920383428576595547830964679796621298970763188030997190710464773238698690972336323540471026751889044055581353301153963240624051202180276247824482689199753047814307262130761548608402664505148139888695960099302179676674118679832917032127490067451674589054254605291203985484787252979688129737033945292265331088615073276571024517423813140210965195902500271610246507405516231413441125949086499587468342014305182521933357986765017520336579670373423595674089581996504898009283909129726048072145596112711420510666605611844867529440518786942020790444248596711084195663936301529229660032484292105132471796104628004293416327042127784071083187533038035727317205702087412351485979878330539911619347867112715338624095835675801619489580174076279931342157012096268230591677327690663801753313477696678496852934421494596108601744722054534028184536163749828917456656143578215598400724070619573214045231589034666247856204280768583785110900938779574260864908171391555358039688151022503919985787125610885070428270897192009931304179281190967446805804573628579630262438115661334692664899096846235476812393400178795087309965062547128542173309879079934863976794790834390961992177907350897691200357338491927492981578783664794525274092082530160477010915121901501517995631338370467293311381262738067491039673895432478468732527698752634767304426467199490820959568462383281846270224114235660328889723592443626594822144280269985453724289069421925051647756214815230814397819737752580842733609389812163104200990516832905108262982053628190114937513940640302531646407664257984598325999536322852934580002860385797964789659179418806041216648358228886527597517630467296194086643812819721647974143931025094335582979330174765220147577443149488693921936395517968191424248774562302210292287493907059282915878364292433636236176653936970321395336681877812062650488674309366560867317570358325347259614263315939594941354895021577828589749161680026728278364924637271656484410101011809765719968297936975182069730452347179466615279677054480248455101394673444784330793252447365164633940395928240042858147328900222078758128530978849247113656780777185255022981931572498273398360158777609318761882367794768627791005246803357546380438244183970142919692422770000903581473701173204253130614075347065546794294478634317210063674508898423067852346324042774220857941462982088610018475785884615350371305656727979448211122695905294408467075479921760458796401271926051607350406668784560111365149651521247201440923540956625168351073833329401157177479799620595540522179112563269569229184653327891186692818946285865674640906738702909574419723359431278373661647709715204847479778103294041244598019561416370829223794729359822777234094691612078555496023102149085940713299789919810499471484640873245234221937721238568797589814809287861730536977766645382718861249126707460716952267145711454473244349692099873375838725116537790852688095029388826027835013663782944275579271027036110071228474234669404312591627439111409360992594530787219007448013950901674585965025854237743021078763946570162622689079062063078450222820173022220180012730605341517618881304856113988977777592285519937581816333920555208646007310395234769168547396324129213375435157847782531651759938488427137445280042552939591595209115228478491270923858188743568798389458059041380239506129773498461731483470036491280449063921427501044316423642151545417864811116338051357144709549284427614455930599139645658300662520031051050468263201309069799833457777284663128434620006987533701271390281134119241640493435697363308290885512370078413071877973419639911970221801948189223481774642036350399173320193647817223234479221610151612931955987915912059727575305886128682364277389193617577364534282286649302544867913857566451809762111722904135874090414455441402645682582103575749639163920379356226971976775618009002349766018936374244795327116519730785948860425543925719647683008995796085959041562529779960034452764873896572535410748274458093381717816524897561162307027386437428415871355258157566666489959704139493758897194113185818796919880769387642035336790973859615667085087009944009632230323722010250864327783994527284853408413442998384170879706851896176064413111640127312968035825243899862828209325593528692147538911052337158857113116943715659156063371401476786261263157127309498976985281528847455222720261039795486509791712427980159061718734311112831607355060932663909621709648059530951009093783280157031908939102823375645380979880050703389104399483191105184484152193171099192230415156154012663537821609561517636441284988795402099911703382640679267295636262031549046662886257121134565775792952816170351241524570261524205802196641182280307928264260179101565745423122461342652150253663276381229943944137970676526677478080822704497914773784416660732360866578326257667552944725227638904563833785993509128329292039260330514844779840838523339163176135335478745916581890066461685115748310714711247405242579294593910725599828471210026065817940219879615544820950067849421509815288998618243246482727968148611812568761928525130722587168851905412081314993380886879160574086436624048621208607337621675847394072359810571582001059149472782423458505932968680087019440747079211481654401571507556093370516036803678061338985780375901971737056229818955573854380465617899520404403980509080114597710593723438665931957732061120990566099624078597554762057504037766875638829119755558423969886342236067346376727759388805477484510092670459632574924991300743716908006527235227400538178333723381513763320140178556487509629330744705048589459567789207117719549485605057335650602507073585864098773894296605589859708840356827970612662962181610617073333595955758170698545328546278230914746763057435534292650796879103641250214383196627607028561802907337036550172083758759774103239126411471114905443965552242214161678477440576644604561789168650281430313229226072120104890701320947967467784583280487042409660840443294601465697383836656318753730861050206326109028846555397705510271884015538662601368249739277741187185173848989813867346337137944426002967536503929621800980212965863537329495612969199449065644622920410473289857939132671013642853604664874873546187131514132066173572849948860185229778018601903263570655137995747999539410535034869505177631981746711500792538714104922080851029943225920546951231037116927893456573932796969446420371039651971217539302415124934863415297238066710666270882508628288324119549275487942528939945915245824623582306240385767208288334612391346610257285964644292506577567585844969160590546374315240627723214859973676014564695313462102167197324302839091690209968282337594410181436899241660552091943768280678144619864891382023077074959675489111227040831129080505503594164167553527737388058237815409049718975947896661275453537370619783344070881203995342918827858891146125272573234364502022223937217962502475081377628367812433994028250158486898788274987950099096224498549239365494852182910506033826836960031594363115192558723442243288952200131754699596396718117339791899357618397505648859091118420980048350517992211542753084720145666564559557578878720227276582722579151301104642880156291620658460259828682155819860074007350399622390808845762016429765529381315611021450690528602740367628982635933357454458848975581779568214537935005116997735601278627874322126703732223760194950529821110731071097097536881567453680499458883933168264705224529427510835351675105136577568864708312140240503311646311942944676726808675753104899682488508023593510227216352634154373117710507406205689185454905704948293973634158055602836372666134303763461304294726419519201565849066585177077669591045002424872603998238082704097875267529803950951539453343610683619641351413033680845015651859830569466429389590424996297098470007239620048263756060331782908598776175810325140171118465251833794309506361177550276972769675400759629865796059332747860591609815219318342130208721886553327558302822801183242855619766509818350465938468281211628218734470555546097455896605857232315809261531705879188191927385646809169864070325416167550205656740641129452923384546601970794854160949533765604846496104368986102543756538070030926860668514071717093642984606564112507818712153028339523383304737670888159582931122138284753373638574591396301789089753258452420655611636789775507575436732830212350659444671357778464494102344498250237940333425874680104473295069064785594685118144800006890945074855411195296064668887578222617509974260231045811290225053936194419419336148277793106952677116651764587872269771205759129926650519033138692719686852356876450843414079018621119879121497086829177234566396417388621324212388649843781751139064834811018341073552209784113235608042380891112265662268916670280983976073094051044477547969776235792978490466156589754396555726582141741575775248883306243086236374456534002822581967314951168146684592542990926491218918841500681039281313139619145009154831182960640206973998078213835342392678413725395923394793820668189842613028524503173042864322648767076722300089103588037589493980297339295086827472039843653237690644877899224253397184216354303936490597009935538888321873776463517927339565609273467155233792656635399625493374520676121001426863645772280570492524288556955639609031655976927578672359420451352587746379216755446907099119874227392033062082121550755167058887502371068579735502158350578718212264459333234033461924435040529698012497092162649911092464382617160780752350143784466577447922219220363610440694381861546874471873125767235868466730415318295021969311717057710984618044428695438960966414328173337948795775890433033150916590226967146395082656074768432052726513275591827205042699055015042811035424793905742422133785727165185090151359360779265822703057870807675304634736623117743637256064134264480692422036449172287442636815753718232748965631231593904635085151499104886077830581486159096664126147671946290753630030822191465341773612255043217628779567321915180425098898373625205204937315937266388341996797513354613272285516803839696493891457317688281742898656160481909566038605371321143973773368487602767836955754522632562948357699204927017967145926095249640287205174851151772034774643838442082478833451602904340803213094766569138932417120641118716087888291927011551610546014856826526444337576471216729599425263336352154159388053595284654836753163252527765271500424944104974160178554224407431421295904314901281636989915283582108535327310540662988633265074095999081161086957853720318178994790874271463806900384889920100438087891172263918371969314521563090503976287421318283759657071177093819066587712783901075134875376108391743562666316512287436925658565228061165683862778947356223196268328128070912836397765262452328930788086140825687683342731840649117088799422003862797995775330156473042290412409221489282007733892934476340426464443816403880937499009113949420103118040809758976711082071943783026285301040893720113976270945457490569761165370646711255252929694783216425664304865184008154626747962151259756602011731339615429982437878853673501444511792355582609739520425445388338419229335049525556658238483628827578709249606402028179927548585895423028940201544271480255518369168861860050274069686524650660176679064361398277597971673164397632513290189920349891687780432833856760835931455178803748436910087926062546822163513199942879604086625511717479610173510365031543461846774363713004071417782891590795280212439902596595852540740332865824923690537156684187943905489454387449846337787257883035475110205957073741487239174904172098570967887784136981041623537262836490120176866103581051713234355430364628872065643246529159889387652173814820988454051083968836934081810919543492011329218651874255933895916180105269066128223291221537294754767762943839331061100990073213184695029887242804488322085981030645947321743315609217162200347022286341606760810484805638268526290760589635563460893643595778062795223094767026988021764583536452148640351678478113528284852604959823701473671740523868136783738627943044163784085366581517636453466189050842690744513658876140190208367766847218801532826784601268937449506927991187486110698368332632531882841733865979108899929004124782133670114824172976487084543309414965335077217355796374593772883795292403289042862333477303236734525007680495754181063628453056481970243705845071834851058152647760171913042124049286495993481876324854631270286430283011448141708561468827692013356270155575718709232601852587934639482231785435405113241561505264209103990131136909647580992650942549715994762303076122501650199883756530853792186777162394930436496728692576422672132427214764575297878592407561572229314432294383113725888489040341437724835602220169782760306062063684554782754877187282425674778192182335034263282918340042183768646347980476587318426670929510937164044376545233245707155743983749485061366065172200647365149301411012496063617139952074829010821873117488930708479286813841647474558842568540826915192246340204607268066775564135089473774023904535791270995453817510303093853938060943853156440070294549809321502409024654591222917558130745516485791243025422412088356931779014922346154205812514537334212691826083633996540156822677124824243058413108545706522236299104959309190534000659407713860637382440799665881063693018142893352466993410516936803414403109761811925416238208185121222677463810240111720437051466762059253961960555867405134928510701484869392091470950614810385035551528336966688013249072170924861212924968795039231381524752694094196809819955334018498931032673250579081625477857805452458188239945922906471271047871192965639928867830737436225695007860827770215730564442469718848751648890420685121883343365486303660729766309398273441383913315811228679655895541030248466462331788190773170666615596770271366511694367819075389852292466877061591038825879997925327574906803860588161960877630356077262152404242013154097217100186410234541625236950291893776188963612883837306445445261732593680971451861092363532444607324808738394055535343556650240783006995687831060463813416327761122595450647183788480595223231734043966097561728085327219047031268097305255232716800382202711604448232975185505367686824371431028691090724560038819458801474713299047481287775429571928492188601245781504067676999072213033190169976407221008856795507719479633597035646592421606128434620056403089472606085958117891154071394676723036334028484915005654965781143255666905253478214198198398243917388201311750737983194551637756769954133855411469766449601852013865279516421310264924723673815644172195970446165709653960378015408138421803375994513401850780636201573376497224775177861681468056023145691379992858163404089823622178713000146492025490766957381731320140445196451519819001773003762151551943490514104070500789372621401284309797889830114664759054486494587609205996616853443212713687892971529330512773754746283516003147937617554526034337563878768451033611391158629836631531758724366711173113419558811738301825331136667627349021166804677314286875488417901974474489021577145584172727143035464754321123538831575513336080692318877940121001489623731293617055690371896830041122120700525193099385858698372136813998995298129759478498766547883074003843251396614784530394411456730638821865665666785527749731918703510392229876923326952289507890121903430508173791112706951292468796839103534265129418222964011482070882545338895729174221375059909568452273640986125085834506788974224757755981338619634222418277419694506145310689385533183218125628384635878965516531615248479930898475425395321065960658414827818849261882975993887581680904018941109835122637438765777554301046486314620495412700972894444241869997912584778283067286840628335157321622579142733278712906595989994501150681930767450613279789551642303192308758508064149171824953684406001259497423269611224543180617862709884536061010640147691370484271380476337769973640655227375724939354663675226018834034684425912324666922388480602013619144529174664261344563027834737906903066124730668890979411684085303635539089941185634313359028660478705598961400804714637502541905048715797990536749664188577890828320967284433289199075383969396035596416317375947696450140640812307797301894235062205517994907417338341330560306319480624023117367125884211542452733090127638607151701683950981782629485770389794193803923653770884841910523617441079247999648265528096113016260545983786344062674242825423041910662731785274969256136247080626733409092574590157110624296656189888722796365926289678053384765861479818710768429960217869591022374405831586392660610538320954795816373787649484479569312281168836595332044815861524851173601089799983846083899969265583375009690658620327591576599410864486198900088180094343987943111368311387121567540062739339557930164354693612082600201453860592799241622696917788015400938469679968765673249281497364593533509195363359794871865934480655400931981161928914056217555137027937775422490247005810979860210451080053686026323952190196347377179637567279621914428449292294834062669711959994663729123003182424069730702174410307394534672521872190801085838377012806570879107181935664042340865790807079551611777562735582964203685972958684051653628815466914688882792321333536280112725066177425992528490485803669168695738149550216603035577528968862237526597395406254835135749082391072935156815086700344100484205359719881515502276282632737843158668440491582516039531668755978849050515593307052293345559362211004468007258183879773266748432339921035607704701949137891404071065258906619994527737415215908007002382317027605599063639828576716330223023038863525623141882554812535456856169396622245319110965047603878493704940640069912526027836353271656272610838266469546650415480614462688687258447452567452113451661743459326322600882943305980149994956907240573390786852749241484199141718400583587119570108005898244190313915824467190515231527353733756712185750513395957146738949928552336963989297386069016647464485341626965395428244023416131209682857858353825592948546496495945599911209343051768446314126744372863882388930946182054853405201219360259757288954099509684608032649961696130296739750373106442561240898400427749123074557045523765945111624079871052297501297682723706395297393297793320135720179544302823039207203610367486975244077028118617813454073441538903034911687651333912559013137683472110290293063769693570731796135756968687681916035585714100021113219092085206932723320992811012124949886280535928096812973709889131083497524719338727358363561499239457746424382543167762313448142237317756973253324931711944821093982092093618766633486829722212780856802517395031385013071935517238089532118805508460931627330980097350676636327722660696688172086097893636530715971864807646880321555707184343785258278787857942256305626209022125360015907557511189062170871753249626817252576293091990794898950123798574663589961389682316348112424870699455751951776916366908936572131313903054186107923539582392141969661794800704596971368893078251859165201857166614405064107709426092927180839815151620638753383390007796584530872799663704369315648904104663264648613540948197213955629079537771270879174322164485994992099490871280612358156299244167846957471786339863878887658430995565096340489953737564599122863821732443358257531184429719125121383189335361080648328657075406655096213627331506835189045256215389133776365788326292356835630831091800511473833394994775819100328757775707211869009306297135185001809617269227253728837760378123595972542144464154790670501008890024951347857866692786291514933171119998588947574447939487065268407565845882375797025423141758811478611301776021281913105114665840065521367521921632892937065472101959696563067539521676270644967501776879943730850630251094622718626163747717563468483730313340653153515649451610917661929023057667945871158062867369849451014408404964900068593741109768319609260065151884980565889604658225684035036235723356508014720198874376708949706887802237363187717096190004315747703807405265381625635946521860433458699446109898557241929583716023039193780488098180291726943625154324173123701766325221564478056088140451427933389016779830535307723726771503895015557252330273242763009284970059638448761175687484368932440068118701674190528198536714019889103613264113725724223307300745653460522187872381976633845687881005343643832161618607869120612804295449782795960020321160088241383655384712207725177523408326377876497030641575959122501178936640924928565255498885495821361171635560180657396169295310370946514957817757673979648232587362133432726606380061235758711072676695014056189510735197359622477938470718565154770994049129582527062850085362896780082910333370805721899856287769761512953376579558166556877937428993949073227036821429015611730013716069048018028268109088231260011415826925507759279893720981558904974456327883170260145307165022823619122628867334203962920825359406975018633534433023922127829253963211610293169941607167032838501721084820481683648433716123085011986641086603730938370234824638403059938575108417678568444045180290643317588682366171387409277449339117939220167670792970165199851355125282587362487958684671362342301879617895942168985352816070243372100549121463415527104519674407448075933038116005883680545168542646608876578282879593435061434530209150167143133889893408581339828728693696089568785216532385445860819654120604346934741907425119838374009023488462302090574875997685762916893903616603072275370343330463483481280566765630555886100446510510378010735077960731969205009655520487974434352900476525060959332745195477356707796155725291085796892063651789195198184380133570299684202204710528651313427885332645403731400615955662379329305822574117913946984533673718548303262929728377530616755279522696290638580676603035386382886677592634453152093352671992476555789193299710402914273534715032299290574730932160095451968585429500205804377568791615020489236569538314343855922381362414850145187091605614491574240504362410739990864878913911226157682456028425124488404891563415724371605937679953825106584426948390351020985871945496608046516517118950682157974886462608237908842353565622387202590349561608697151876945663273804511192511508575284224283211271057089196620207550085787131202264867239336047359984274839472621585704004091213515575182022731353652466099749288593195396974558715943259823933976244976163286328472418727654215313071446130740624143464389541273715488616179306475575876891086867630183147765412669575355085504092826148319472077005881434813554720085724272957989070075872837256582524198199077608022877257990917400813827134688004073149882252909209160158409452685140772228792243049797477274792104040776837826388128587077179743347099175912717419107563525970329884683505202320023636672662470337872833170708362519543214167642312744421977621465880635645329880129234583361451428354461992934422285607384657953866767205158355574203820832244645579845319888407534916456743652121027681095560163942793093955548458513909793038266124565369124711627224259922082685593364383763810365556322704371932666425752027686311835906774981325591913013255480562716666219659263181038074158160536346878211821862869544794999565236211649366789472848759935156880377219984544922728084364686600790224735793840427579745079300942511747805416576058041015849733195033756316532006998603831150593107365962379266193715920655259538514714509919200283661216212617113949510677930296257850740430778624370000993160200955831148468318207903209667157074777554863995380464159635751904599996358225904432345038329954502963271691148924519371287691714558113245133502598021430297788170029562570764527208828228881904827125212776601663391455439738441011129169793396711888112967059752952532637007045712549303006528121093403224692879688806570959527967802991572692919628861770008608672793902784940116213491212151252200971295545035876825527399247881760701538008652687460908059091787066401311887746070770221285665407109405938767379640051806376097469496276701500710875746360220292568493806986225444624695025358737066270513221287068018602946800034035913833616957511084095370839869841658889332837734494108263634983086142134707050788524223771064748473881649826328203993669453497463195309257965785220715278829050020343366887959261276672383988177047733635300361757456134283768904787713959966561457998435795291060878782583638931271965267675802447970081232859087266958049522777912092174089839874025207466234445067966835167459790963645652757082052029860184905776027719651835636220159341308894584880296967233659230345576439003682223170422140704656369995300280642140289088933813109935850803634844932651391441622139615907686664085253520416670735588615469959905908008122432540376636852882632236103167460598474254461268319177945616000452989970887126241214359346504322822662832947303349968268726328400556346806684334278929633314997497018256585051062385801937036003189538680554160618124646398146068281511511981322489640034164520684357269422772986060324014403692379378701911330265156882863462839529222115320379539169806293945015744500112212002079650530156501547879664090443470157352382614608590842324962724322138735067118327229098298842121565857197830117906806342551932737301912162123525443076374126943968688272117590202414895205940896903900884412699839047514673797516582967339742733878656276366729575317060176392116369176319298715623277558802776720872408360707462084469264475058265538597391890791283274747842183114998232237052516024595103749071773282866486105464821110764689333127933665991538659205025399807999203276875569447674914029653235891719710544133317025889102002775591333896749059375180303060146648961759703190998824698235102832144692525607721665769501668354263423816477691461360198076243297827928338853511954684705848964121554375632679096522846561807801589104741664506818688552698628420334935569521709684874218501887577364912360296743039420125331486524039350508066974364870544487719736125222944473704035071915758302093513794918830473751912412445638200892837507372990572525695833567001127219485897139781496928967575408160312772717249673667819924141715561814429482035952922183795940122768916636150873707536363213627417301061662153633422297390810901707668824889389508403746113419498805258114160419336161855494413352177440910698754060767203782449057988912152916937241228065190492812606990293014736380042497120954684715617459907460819058218222516289733474175052912807552099048222920227683987786357936118483163667976760977108805897151502708255873552653346208068963201664330710009749855899462011974585452813531590957540956467539590800478353179431538652529175170736369366255029554747046488395590554293480021398088998710604182793286385241599562688180500718950162041226909560730619356473006367615081621590259334776568452549590496314426411768304355686903196806375649639422782434526944788306416169036094371575739004975994477710532043103815954509004889389561183288279153071375510029262669185911556017578297936636503073252126642083969147753146098871826683985586886627607433519967067356853546964421020737916882389259319993117462244033494629286661986443812807934856288229474823265250262860040995856492402238335313768380210246577511297200256309670747124215565113918234143227966216347682342932876396892325302899968516975955624304218887750706698602464787220945675276784432785828019603767194125634323422773509247037733795732175842554743385890735440953262578047392160222363946970413441264686503260699965100732004361452485541587522879849757986141530534843464124177644685526682048927270463336052241748062713671522987441761041995604619352156987553106178204917517171927493511743404578318996162656068024670133027257664390016712477519665166028667944447010111615779701792186409247224290394299537487240465255882099739573957519480744077399520139257310564678812211872194586764041065888141415583392576121038480668861502251147706588985411462498595088863822966564804094003564215378621527380307385959298385045340514892937643560555172315146419862748173289396877636125981509958974273101931658987081687607127483814239701784260905089615892966052580772195902553153507885246367591507263996160216291501927396390108030794282809298167227701257021379449235641126910092281910716916890356595695023685467786535781069838719570435956722982335109516334857594462845815365895525696480497696354144279031166880826618783428266482478629224454939150970420001192702716232862841707493427156919881061767666717718467769325967620985352794929337421712252470136207808049841454483524238936368065118910679902858924643301018210389564746799141683570916507512443126862375603091878805291306624222741200852696989422229265371184330101990291815108103306072287239234148800942677954028245612780751455772775564802389785032283241952083905082105127085841916196309625912741989690704003965209950726556380363434364141127648810209617241109535964078452894518168767320491808966836320639943738106476315314339949363310121798702308400329722095125179767194635923888929996533719148720608595670981118212257297889441590408960719054182764980038950609730860375076699499188301597113897048075543577681850015005481371221388550893740720254207322770799426686676173156743598630954106673195193320241624134451236617583049713014065247848457028264546248536933514959318594456848391202671647720232102076863144373679876428538924456499150681669574418570181275839783438772227437902954665797181222279845211205629217345854154752990002947199238660654383254281310281730765400012199446515146635238079111404720185912172814748814006719546412592416765135650417360635261796038899593265549062249569471898180472620099718244648495246814903738737543311634887218633677940361816511334382310807281744407607550507703686696256529131745667048528731843266747077386146997899126319180354456138988355135470250810407141804249785146203938711893525341066878568201909778503269024146541262442048627760599889082745071037642104700215737307774092196593396846514860920796854165371386088090676150858384168367536305192441411078175986816160638720677811317857028910366156017987181894620963073506035267706614359761826113437903646613521641936950972834784559452025816839063379508210487002222673773644303166779217521615887340132840585553610194341453897074059244791891790052722214540660590353245619508115485812165280259640348162263235535269045276599100994932180924270179869268916727388469137935452098009183845723316495008552722974724603628173706655096191129155052729142990837359391876177825243241748819511300218102625388659089494826921818150875718071801068409103316163984215662330621764859192369700836329674547897108232170187024712022864913061248010635584502767140769132792685323927052405793318471242887691898819474157371007698374240639198252877028507427702209763159691879979643675131623105122606593023760221134200647249638656752330859204194515853624185929625901581220293073066009332406042500241487540260131037580316994066166218211278222902185111286093631207712514475742517648561457348790468802274382086889738261270840141252995576834645674093321846941320009447103275414613656969579465713158181659958275023778501748017819150773450227546596417834398612133052170152463528509172283826367573325153190623994855109566795884845639183564090362513131932420186885234825984717262928009773860124183984112378315107552089991446972447008027015795259906229501332135005225799382769528896760548641524572534693411127043070270816847090787709665220816683101868406771252637791037698992213885123103606319518968125437065864598995192984585332605517724993450987339723910995151051370016694952070146639496407855800378224510152648265433203486418081937193176887115907847968905653378045794105487692078340564115825307247575706456935984149083100766751266160920049420894504144822855835936172516402492015963557147827625432383119421121283750290293080150874314011304867304156260280869021300828979032346349300572399804684723264985951805218570738183761827754353041774451385408236399054800266448921678820968183212192990372782381367775316792664261876457722494299585340038892124560074212328483827316998996542616618060357836714522868674782191615319059701982747522472675642700797195187263252661885710261275223256169645781108183898347344633629662854537708972571879362641540779129473056454650000377636245851917880785092267474156978628347391974336310488178281848389317272601543961887074382702819110525500794190865203565511801884052358740526775667431790605375748886196990411667171774927570525872274940204179248270023960407415570966326894234898022287322960594021970977899066119906371479529236622292883003321724246131079901543600001938516263333417284703253491462326888898082228643837125002139552727384337041720370956342048383507241986084280577720260637694031667259956665884859849330938901354931692465885527263421387157532379286683757457555679730613743174217287950204536577711451343365468463142301335950937724098001288141227328734288632900562038167832427269737686583295920037219194378310049690127861941465229245502002056208103040175478154239296762110703451782167235490813347387991095762338171112325084933525059091862791189088434179965325112838260122633910485780322000284900293006586167422652263762270424429744591693730398370016080030966381086890852020758693446494114436278694310096554941734606872474956896015039202279240567537658481225136652233558785714814990690987190693969716089195158773268720646967856107915698959396831539688256596894936648313292305688843763926079192403860958560680703948716090880113721961002111814029964184575428855528166187449676356413690473427324472425886449257521239057935891824508199006567576552699337506305599271144885368089010141791373441797955932567559360908799441113672101302157507798850834038511979639357927976465674526280171891995372736051542148828323742867527561315401825185888763907698165607281117012997213861479825581718207461972774340135423271435386350273735310767783465619001029673537996681541967845031332023962551939538131107321248613681965168424776770696804740634602877285345566675035256998850910769193441340972269708856624124615214020767563091992790421353239411690316631751664515041028116170010291462357190568523639854931022279310140934703884880000659804749930859345179536565347617062533582802452359822702218429861711181445811131117830491907160007316836444704002144914494648235795749914677843276802647944970507945642924990453163089861877984357496062403855166087222113759978034951568510421444614844732089681911354929674669228780387293446855531339478746542369937846303777519729232400643147015004747109074835064027650436172308406622260568743691269259112529721052026121180231322624988063423969468415906874749100516874430365604758347018951347327554766971817879332612748681791624011512754918769009446535174783583443102351692872254528416621814604205415499135879834218645219134911112701897436483814463594156888697228685951747941411714546074182146831691905261466449084825463940777472806905190489403762195454425843440808177828730889100741254564442163483578471836957061812019289026277530375613564417225841609094037759405454667179230186661992346097098487631918627916529673803223303728569646388524273237061770231402421783045735052218361169842370241027118376660253071342497125429626036635541348367648375569928421078874209634723075972000370452014043675242729362556364027619533334178034118146237218843814696520337952833425885529059542236469485417089997324067338348881257683077219545843795705300922845619900580322124006097908985807917549501703656667992650812595534900206750397479157540386849351917462596494619249053164326499559272874596858813522907340458290051313403723591440478944837796079141710690930164823765782943046942752623804829062409088203393235878717293173396861495507411683581399780337185949736391244898834705347371660030618468114658221010790113930506987458150828766096024672201302771291552781562296275722276127791934096600551067933355707077238088616730739121390464175657852742012590666437575922363857499453681883476764287073170292946501088090845694768937831930713901439273605237263877979366278523723657656687137576074182062422037960500256989838190931410213041147283064524184162251788589697286442425474631424252821878665326419425771578973686586134726705208552551578081410149606666510365982984200419981705089612373136149691356062955376762029758584373094303213897543493778617567371813640204557572572444785482529232874774031530331837926087600909644412428447118397716980336721154091337930175655228628353510581922058776858683220564514669240147724087081840960058077799888980772709864331621722593971466363621171318504596939972730602701072072458124579579019038509952220529092845887132730577904788343215752845862801324360032979807014256346313540631884169646764587944781449476625802380033474646079123337790876655728137122235823967820532846394814989786752646697229137268036305791228782445930244076760866411592781319266556743101157106054532327080018661595469792349194553571857570599691377270054048263148708334345724635873716234651544300180333726269475478197880759065102021819680601608680806197346803592845296498748733047750214893337127984582317617034686719227065305261173010147962515209584657440071731762970259657005005048775582504050723621679760959984941419618571947909732778566559157249707801165502353775872316416742674633683808114517222990216105968056126385275706110994590408453201965446320717588897235456012568999079510989507654381216596560570308843660946943774056436121033027521968419236344847785224864629410042961727380004310643915555897508649051040430495623550182971833246031131243447949100972983152385004589195098427199521859314376496798809029396220821754367718604533387164056967976807578707321518004474957058775972067859954855105479078830144436754236448935300412993844033188583228920708779434167150263412523804401426122010629317742765487848427108166875363540514912490213907538130645162702747765139810474915240748590465668740781142070265322897300473816799287632650755953501027156032715103909035439793568458044077969106898290945167044213256626894673558068909558636480630612351218100068217664309313542907762020196381540471819156911775504047528197402808369652369302996044584868241496324549043944319534412054103199163456780748334531106447002335942783930907525250923663896868225860982720584093631374761867740871911155409422009140526600072820753962687175009378305867800035235414974868186088792192203339970429567782947975541474574578188810654042656435976392597591889082936022470579178109947796676726191333518117492185193284924219591216717662828494840688686710267670480817673702996868944497341539984204837479577997760009459421713625969166249891798983139655503182478858997715527574177751860288818008225431177096191143507397512346272020967330233180400452503821554936300139268765353035197742816326372550267888113759341158456720942369784367487399175083700893998027935189490289706038936512636736703975738299360337816615991423913397140533096622405314314569671109018233894471482705700566263252914220527794508947927778910103571051297557284800452825643278573660717946069251487264384651147007260747332948222132677049211799696724853529252036453016548975225879360733124423004622107546756540012968645061896145176689913092948125202840885242309409974210175858637639824201153816262086823815293579814715463517561479507471630464132921469156662539790720599254100252271553574553332560144070126286035001175207673976270829026249888788911104313223148491987380122201387189953684573988045181265750833196851537818743866122802421067796006678432411977956913764235245352624724077758458127246505684654060718204280470654922871335310390278799205830462482010074576487058851431352377209345345236784938733529184649343087123209161569970943852532563346494589572215939598212058616077362495590302599650693377138362627919448170014264405000012114858213174195806226698029200673917121808184068552864916526916687460211133714907553186082211277648955840174354070081720764665879787487712931482619582714597969001252759985490605233245761654649088161793864317289728819217417827799511060411369762270916627000105367635325022549396633725812660857639642017703188645205868824326605350642825452535301362540338049665126203038101665949443283405977134614385598823109288832226020708610475206070760508006770513445026231803409003863955014032436932671455921982304605632197597027271337444779008087928974143284139159162808455182519278396642856314476304081761425126132748198362995880356424575938547130497106980443022313987206578261972985031588021359659161189599346870633452287015236661914031516685910142801017738890581593244021203874268755483415386280183832414995517500347914378308239001898898425432308310335840563351842334496541312259743792793619409697359299633216005979130549524959358011088266866029981332218297311344121170360544969579039198890174782719609897968275645888056121405208209052536637412885418291919953405364790281700596320518148503845495582559381442629296620600766692127623709451156134866276422826678089327776199276773906814859829776035976789958060316550296839902790313030177139445705644094207940583577357877998339082467754898822174811705756919673665355651401480211103082433862090014803242275001102614942251376121110781871079530468877298623990678787883159686375335668443505653434917020401058980191962050584682299817421788365643140964355380996796453486058783135292309075728297509543245026774929986900443554057171446272720327485457124974453493213949162244662848701986651659545834480306408304660039380815129989784535789321458110925098750367309505633084103257940617942145145033403675873479260496108533748900603589007596634595950331595945779761844047161029773326201377041069619372798918020828480850709779213776377339584889761717179049232905855232538035045711825187331938050298724619991278121461810666131980983272894320279217038992301046895672003604211468448227699431365233479662033416265699407294195643736234683750654879264270700120833369381049654216189897016570985112212159463316901255921894224463970363841326058771665037878730181087135710418748337222206775611288814487406885924032765334144579507747103279882108476356215710679408085097061678354073747190972664204545571556004305206756491143421577535847362270863091872914846852975123085853196116953725306877503269985486732672613993922413709067148309454767046336777088970664907066628692467934332169995293877234369479567747725076168436842726074122305868480359641011798515312151198336755156508128865731243166291879049684011609881889847263705932750104205085987338314096795557567177477088208163081465589217979057794686857736831102662172025719269129777624557077983146683691855230418487482753486554249148069037726311235992620696907510235302804150227243465760152553333416093767821357123935615462139875622979926466905294445753392289948028495818080547664339281077860924362019791653559397969526292788572904803870454449613250464210632203634059076394672066525147573525750915190299073308335889718428857171818683312551054967249765859910019478653401934171022321995276280945424856234290691421275125403313020297403518882273744358089747674004176963310686247209652585569327855077579468574160797127878071865049027086732963923892189643412587876201220381449434041300750860647986536659784767124364121129600361527601175077032485073219372763455382375028049544286300771009118187622432235214686284756686888186633610065152996832884449168986168139849746650179033678328212746695059105342259168307518486843002439747149771794994114467422239744815649633530325331009218167435100163108603878286670043512484864982906942945991026177381771676685027057523562214550015858947757816671924714214539794617505961064540211124629928213143251672487417461052099608488030822112748400137166078018827330914760803847371117711369562187276799922934341086288210914417533824600046683076526218458665104966169168542849440900726230954583348589113381916616523480983391015748980145216717952207727546974492887263054324756966813641915263605441425367638293889845742207162039797764336163224491311440026859477255061354011826634283897324082428480401209942220292827143086453631153832284253820928443390730743820442652161153657956183007922946158960508723512642683237474174554233129198880571146150383759087271279036538964029898196707870054295616842505622735960380179132271070893700082234572120808115302091880907357884396154616011288346601747956515576955253491312275859555296957275677828325025839627963886234677802613214023868155782763392520972947430684347232275786255464791808385196080164266837488230349602418202389868030604445648105637460911526966550997818536278699611039214961200032033486465571294781763668601976207709152974027843275866522522923620572479204256366297573468559343988290711885856583320775669317230337389315961095418246147552749478555713637103616428354582790412873836701802290991504865732772301715184456200186415461261873531175407555778811028228958434311327630755731982556995283077441983354411853956849010751222784484639063730113094806237287724989486318847540123509358930054496972162839189358249891640205491978080173608776090942973587075335034406991773775423152032874131831896242512704329453088991458053601122913607086038545369398972422833927255651521094179291679871465134292218863103173456404745603257183733768587397406219537999555291405955557522167010826597648733455681475253512874130232954291514475052684728517014727299175752855328662125157153639352881683122988790512052963622427993782161494041251384448162249031445015790188713313030645391397031840883804686021980446853803458984585273570480904991565346518195218398344865643662513104121758339478916635555922656245382750499191048452484706805556531272244201641150317466459864968622461162488140938973431748329959091389629163495066123951512536954384631382785094771639457407032875404355073121919460436133700707120074031144275445216521564459190479522005449673962973011338743161214509859005691057927507556050897359388271705802179276785205297092083984063061007472693188390854571016844724455415784589797713306215862785337767713830142445002355772970675318753048720469094113515533603140711753745880925261234948435221156135102984358700783611978364097972001066103827429064599362262158529934742497608338752813919284354689191195011743136421787764918969471328744700473315171233075029673227665086331033672139864811491521712156797471445145665029027704656194926498915125185322614982416627575684034124049035451452008632795114768845071564658192847142355660374873614032634573380919081159254029659366974338295817475674289849219374444551413322611692736277037024473400949236416822285937354686218829100736396294612654895532447568929361024579172236552899290990896930440749908495442782717978953380500506800647530055984443337838017071575580351493942113066610205773944777554820713491981553152580685971245895414949241363132450638312302478069449713007827173818919211306169358903831746267524391062199475937554134074702682562576869569338937314360200142411353456173316144890939756051797191302012077505932245453038177825350690088520042809688775012891631397882388733394864035235458221380061389140841986388540451360948494953900353896457943867495971716432598656883278306066194771007594880707180477634397581424086870694297470720585859339028771090513022386691262484848390406910950128942647532248828239859425941510146850838502578331761846860992283174084103125862524560042017622449545521977245820326160991836047157771981528254622201401195436599225402916515533101313393152717136574686949800466597754397965043101834338411133755226006004928092227140034651120196589256878653511748666861740357113145489738397274067673943603779942033822312093039239750560178709308429991762646037767554903102666794882295796025846534697257672923402129103971376607247499015331792401157552064238387152018470120009044366093823037972146768301736292429865323159123256826240275074799545111182492949195383969414584812587890501867487271340890111003179676560120705765437560330368741836618901356706058157731910418867750813766736807508332449546101973174622528167503710247116819015497002721205898804672643612327935527178449610579320572923000856595962644462992869657620646938100568386863158447193426524117538992300051350603443403378276982343527879710847030940294746002900313082114668204094364662882072638242004957556725409884358993100445305031275222681848231031286363482977774978714881858074038078178494216964896422854211821770112649138412962017455986651621536575409843583397405545817390657372619434258604017937214664653507714979626837184531308006429144463327300057963631914210195089809433889340877259535918346564558499303702967033060629638878848644056345390193996143997495251337770137444572772990471413215131306486935397751024578135152083715647693458967750767062046126571867725731224024356144523791708934433003689313361290962860203560730230614512936804591297817013468998972009729450785218860312824832835689588606761377066684021020742181216686992121146796939807447271426770198897844684381839258765969262880165442147690669771305674643052098132616062193640182078894489211999059444944125697302316415230368441624742006687384638500718879844010902912231462158382028069585612118359531388781656886685495111951085761746621902660628787027843786793530419884194543952933205370285783589801463853552172893158578921879561591769652204059680823100776773430875584618249261272417634199584767932958358305370908577623801566246321327048171802405377931042142940066998809250710978697820166074252005930997215338432682948702288823516522532840210958489543546166238737409301687965253702444382725098322007461487193185498823060138850534234399857628043647696501502133422525124786301741864842487286496526140015510912018247408901315410238147240786228059604371900897874268961541523980239534595930142779966483541380343620061593689372930881941778816521495250021906298569335075687082567767557343390321809936488011508229603431317754422167652890049386590023577659423897665053931641195217328243205391369482920403832547705458226304270761255805545100856432920913343414923779670361230730528583935603281452000729196504553566376078425814313952395984863862312510541830471970075394138377859614844492741194481042094583069610326657984021965206586364544597513738593479566555597616189037176344672050881895945997739873421877125659004209674239568516487831855588921067188835203269523539186514836195341262153252972987336585975214513151550400062835335078566503223072109635609211096040394664559781618603554796121953299298287269570422754114020063762174198226036099872742084359406208059988274145979129875089965794901398031624948114272198976255003340695980796882705082735241942879892353709269110196675188529054891137816214897712729400620641656295989837831036091848102956648581943159192258361406043042097209025483613642431052576349629410991558234830963174461517860053432260081765646499554495033451649867093608452589232537664178494858904118737714097853743692041098966838851144757417529264885597652817326097618588244463135074129559626671138157386866919261553556290720077332939029716796286731241405191614059040053059337479373387958790850193512796936946777725417693791369351376263994786800029134917292468384699708951058401412985774963401371140430302006853446774922914532565944634629924066889078176450061967697613186996585860246752259500048640818006561132986605995409008955545004121270590168295831697753018108280844930478691500989763244563039574373916806062542945746052277203077451704216509961818141546168136704704897700589763760294100519552290300767920642547881099809444413636254334988015347852713276827787429146431021515910243246918426721262468864456589128653916618438366594283466041150421385810043838410696615655101137699881964790999280948199245702416579976471794003645535838748613632911558534215930236126022667368238908724486609126405840988081679645748351487730059924245544546714485465907265498341577526977848309315608657826622206834773241080186120110442413274835816014237810988496017846516364484214193309789274163847874140424987413104898228412362189987522809641568286232130676823706711272423771962599547101503641862398367489414686334216027735994023306892904934361720960383735606032954183355786403283639372817678949014411888154008506933370327148592536197957305118427378751702491438995421458006597472215380745119164064223690779553301188986640034046829484857023980842965258211850533368643214476617648736988762897058158232822563024009084844046267875490213576446152502614212880711749347814679949045105225980565365669204168459789595803913803184070379277079003164104748160343841850292093762818398469348210109097828821488482184197312613426787058632509047445629100691996080293971304225633363149772589066302249227257117904403835759613874735737302668868721122709818609134682943276989429329938823006615814525778286112972108091255490518249225090127847520970650578803864047168198190513606022567869030008094900361418134440892689842344126762680281003489416492019966528565529207782376576198034703492580239077393748668658851666362535472274069690052197251756625152625358774600721521302867462314487825959087585376932744885885741838187053817202832914713292674974930259044783335028044794638184542859475757696749318297929324027024509297714141161399480232610780667934697895143234565411442253965202405061980209492251323716040031648348552730176478004931283664039375190135413913915026057834765396871058179677655637888293905324082379473884539200929649157859218103989322862595357325969046663043459712666732326810226324312924176653116059589461026744977980275470590562369258480000630074651549629049050908134720085953310851311334674690104888477832476176625598472890892276446233704605245066018341510415346328205575706583585670670998770278047469728262076047853904143430441917998239611852570038577019835354763326254434344502265139441181624464499926526680336935132779485309152405002398022667229690627271894602602365045132764194059727261877621330835169977635848695409714833361960416865644887643681176567626097101555154747545751359307371945924105826835693916295953035234775149367296088553377651350920721479621131485518850052745894960664785225522590601719847011050530610491324710723933943479083400039647417200819003419711416235718188235605598400063277709521565065495203663366166557265152840107871532103935907574888814811097928581740199939005155656320453919979662312868159620153915192182172954984696639958001180763875444782932521332146724251707196862982230105286516931484517516026456657155349042452496360982622382664744904414503489533344822462258002373195509453625446348401067086618238447242688750330391705560235388080499617761143679907607246023600978228148645548679247957067251978675982094714848914191010458450070107736277990865611325733339622337629734005547190402077121558062047666795418803033080753694601779507167608078786384548622804848443120575847407613216172029430924956920057453832662726773697648405049960707212297377898910058315857850183224471418102857610391156273596848973840520537621213385594430014568828956060999186513253010559344901402356843489522399435575893507335701173773316195948632941181186401894723056464542078318948564995196380755049579353323935715881004763186775328698756278833051010182251300933094529699299061099530493829054868082208009033564864469753924791612957627794095721156521207447920422965137221493232033147810030210768911642188965647475128050563454507940306314460229397190691182036133480844834868196919901865238559378238895937522367397751705240690072071846487208947088979562338018019510495662618963469521683240861403649801985849543274800299247551649775861427631544498540583886342301909813354062475352730237563007208688389515084767820833393215508662081443420068659503059245039910997949443629204422568142908911813314522624628278160109299852688747005612379450984318921611796430239566354726009685721778421927861854563169699595289602573123452307719510519093398193948960451250811596381932118658051355300923984658832128604731905127606816833262363071038765563279796821964951193380516852813793563293061128619523519907457012246667127018358313943380320565909635037507336955075331919884009382708847273834882465764131658514313078754887984531415650565506703527499330519854616128040605332131066458481143434852138248290977152868735636032431157738501637873470678050117764830838156158017897093901416520842784686499274482582129478421561310441952259996632358987216535901489830331382677831715078550009448209573118871046797429329325889016084841202093091886107120907619677343795892445043849337743707927423830587711977138501074418689021272768522696264812594868840176776292850552008078698224369132214676226045502719182959430455881034216206559788526486643876847233367720556851434399085170619757855692430180128941556582275688364627000137201163894157100977186578167860981783359392571508284771134476332209214053387225677126557139767788025750943819802886495511452671664368861123367234952268521936194836579039457893909022161675981801094874363607675389785141216610443465023064429661745839334077352443091057263629212028113210706198010363764978222200409638670080839631346686527137109546759736488730684275533134815061798545388829394501399109618379748785410360979148704829241200898563831591799008517372046918705753957430143540752529557564703810344381217624852074222317321116617718515039628152546566200707372980831181613243194200903962423750909136621603188738436539639623359609566593590022342532244487671800023080850950435074090743292818603741761083855530056708894749747042260491004472935096221554851542236278907527482451921908407044843880566750293186448927097927894979070428161461569755901710835793011010291086698885546299330731780194664699409740611595119812215020122332665323640399284273557784507050700182886301074651575792279532069964377514453117939375966677182672501342648704045715364557247856848468489407549513685826114833183135821295094012779211239539946642488152064386516480924289492200297292847016764030205462094110397989236849654713551054881501622363354008769697579509439120792600181790590567230170169827493250780999443384029800620838670018906265994781810822734741796675021409532358087817099562962043220794291801421126389095290197929468810195183718429775317371148928095077168915476670651705425678797709254227499603959537085000319980248737056434244758084012850760123363142076276767061627590703549068179315307153350969446627245713903990189234384291945766567075605196792484105153800836752543768223580135925523032696888815911238187885518596552577003837414786312863766024491287187327576385529218652929437387187742885303448187459768907642844186456794703056494519474349808220707971565470664828787460433063154336881951614747070697455390903740742913032231778773863213231209150515602238385328568629267249827801594903961521882098399317905477392878762008461002326679959770832238146128415150908364899804249314562047154784454102977013224621790224413965439144881970165864220822033640239316378425761534807702432231287139941427044301062816419960367601142315721720852043374634315297082006224951911494365151303677502200868146256955225539550467786519169663761474345327645288611527912897287809698004450363423573149405131781431418331483817321532861521116118280671341617325614188624765311018932821228686300503762867683305115198947984546524285369939009901537192203931316038700808902406533976858801502824406753993779893809249476027740076845663409408319984229971382203086975732227381528454347511767543081663380698400285791106241954361728346706616387719235896504582778253650553299794150161918788858714041893989312630780976616619996562252182066418744431943032112713213259820781698197007487327118708057764248655153517290045476492215823775315530062644515644541356194862889176438852617416762967053355565122913001551497671529421440507618886280749640215584920308664599324987249518873231902258968379081128673988437292672461189080581406109058366561812098990893550207819972547424645926913846185003084536703806094362989078074928533288158774156323121178878178655550247308537775255498406857203542832742602995609333433884275987554959734061333032536767152903566934590096561484916242437599929738077528820653438228740780825588271211027273295479703918289024321473437949405515056699592650627556427657590503542804878192221324261905364084871525597588337288508578026308914007301642836475436515282042429099584644090060557663799319403457654971610517915377799396963857833402168082081181631425277686408164945311590684965976767223158217240013524353478877652908076609027131916344014453330319645259586794601063629886232220920821642501332806945865426598190880511128175230351735555354715264688795379697819626783171750123294066504380953496889747448900191744443165149976145150265704841151853544186258921605806454319237455219644187941903409976404899926163404172910029586296990104418165904718253717070551942282322291274857664616689438318998020764585485383527258714096354540969710894529303769729066138009055586614187705153334490691023950470566200221308610950601377443810421529289128985380678798792459321775176790408590939335041881605886262736540314559040604606879753830512359042966531550041715258677629115609550487314241074087053639626122834120946117164986914388576007763266524450163453676073235735278161644759808372164110777813824330541664860199325980598631337270330375413131772794385404071486720836157815443533634578756889132378422334929918099405949306350205252946936012589937346852829057738211277974123727268118351764806192836836643366559605531248472037155834120070617335864898231587923138944867610602801514043239864863087539141009565325289994097021145694253213562463913934781578449894015033937318631887954082712180726838446633216332528162805854853524776320844454155416190024050685844328977862975336261253022303286753048431658503762366737909932973242239339275707937120729078907333831478716086733262346147119772513699476707769985832623211962794577661113378461471507919063602626183262220371444178622998214928747739947480802710702590668704430627117993331620323273910622217360906349248662203846977266457411441412210895980709704234804351779421584983454730142654562455420788596177696147746767032404108014725705859209049771281116040223440895508612447147581648796238410027246822585783463243803862366545860399103001342280469392888719258435005145807362538636033858012675595099485425709558717583347838376777441114275176818894495948384154165542664760381317220484915558988829382524246950334885831353214543330898216559373154946645300333505683663767840560879983783034958286134276826376077722989169093029539411536789057427598855744284731174627266488091771809942727582300723195551405514755995346988572114433672317856330125814700362418450203807939927530157127365939922396641876942536889844229906722681454127623312709330270171744042480589568918676419271025114354675651642078451515455897925065975833711677530631970794411428156197777183863818449991011849979918703716958513022013977924642310137425272642517985108133287826008424420462466933283247272042808619274313984452342262434606733121392641821897820979786905767025617265182103344200755051204506198173669769127485979100520493941765468061141553005690839802723285756856097771102836016122042454030876751963171239321847690511327463583908870623450493780957859227533461669276061777122170865610457236306440286752509046428767532774355083396065436331482279980118841131813983832862788490984567677812755149218993509921573187398997219397441699015509428452595944321711078530118595869029106576189512325486999176990809091549156094971715633356395813648208488386612408510185943769929967179100581723524746549347498593526810249456223918396299495490915218595362924752055971888689265748500463064389579430698576908553191494808951269934481149839955903537514070208880409505800252944290022802352573352667158474226078517460453487229402860043628233233086781437883357082402566101265505901777088612163610026497663216536953736170447839125870954685332514904563638207138905496649386747993810315540171458319368335232293326735461653804068569320461991876356579266272136739787415488748237940202600578288341302595622928195307289073709957492460437390890737962696222187352954661654171732044389467398098642127707733949881807485072777989872495521435120014276433279218516102274808276212918034298364543828508696863269349351137310673548500374470408908586894482049957777227690822156050493962158288031565722610753908654385639706639404092898809008655385515551641298987166700196365043899576828204823315431728947189613342213289704917129932224771827260892732002743031440775700428700697360160989126639177228690099702388069895473654004110956730737998921898298157452948235272755969082118841686931429992669991769761506686102193850045731874558023877211183046575732201318331851427603587225054711019482206467535410180345540519295983188926511085129905641937104802154347257014786079795118739752720624764925659298283516316402715694189712569632113460977115811872324798192932174067628642071089253482720137588397950872497719578666628333670960945297291234882456632113557140519327036371345876032631165056759285273087720722758514177531261766494992840624351841310666932398493999015276581450976451216516202091385613898953335081072179639843789810365647218303759428982077173837703522265026017289967466864569927367476781619949720089395152967570346863308498177289535033966664692188806844228522082871429989622068251406499593498122182142102695917863321337677113991796127812916201809963010935084637078830575369653521297095421655752498899160316257867880475096906334532993397193595183640978370341450898754831738936312755719112302664127574819195649071189039398922008539527687858275892648806089146816981968109343935741104005123248951851745381298914944353503172854536566798542350832064348520441535131258659737735548879083030657869089189093344242201745480774302914301385346140359182678708432623023983816438773092786322384836300617414029853714172860234578862020207541492468412222082043542327732158971953959989209395393436383728038615726034328305912079042962888283839360759400979811602209963032440990319222552623462110983308983289253088629243876093254629166523884904084644700658082063899603924580458156893652789876982824578882233419796489603462220184751660432803737962881672523874405165729391196468961324371440996049896981567427563603310155554640110370475198797972698852502781108517403090854913330609295925568331025375101474208826041633028957979083031591182331132438663908333258456998665561620286130221297177276745748736738058694548479856905609332121071562496523883838740371447431209320761794261152791571307300706209783082679845803439891290020695296498291073383562329985844558801341871448530058317449734126634073519504651601910137901504514880909981937753074039893168352036675029684102633455731476451770247055250991637721987367767300768111866557492564996000812286481608644309080350092690966847526871794709955252844162811781140497773702426535756452665100920205383556733179714160951475556731074133496594033713173725634262360752397464088081867769196819077605560133899769848828680009043172401367898504277460438250153838992614262518559712501331595596389760963922222807388518046715135584244338337679552025933336573128454693631503808866235078324485654148025083471819757224718487740230013727317179280268620227765375572911419341979836614712470678377411492122936819393050593025752046836907284903903524584599981135569256719595024478408644569586660216708075065076353689812391537406929176116324124243401376043986510467489364085667953584123726755076952660889743911085491561163932371098786169873133295488382209746856484151542260641105552666657684690325785956802697382627936777596533535603501451944510013728573910636226815465310031133594532682418879543710973122344239520347580273358241603683055854913771321388422789517190104254315816065806012351684810701387154411143195978971502754597959208475747402614836357268983642593344437629513947737932800807483185216750442014249117510142382424042347599893066749835041431427521229290023119567948820659699262644193859991440147563154811852791044119959964273159256039907580820912746211461517677005505831224538313384989582901031959494483257450456295171998315149343490493605662763009514729809264027497467979175589712830996908022555906292772046992216919325134301512891913417052536324490614282094779642902802353053111806688110736718420495030753944175361588244156339284664183970336166555084297229480692082008581859325886693451800395081239605529278626034646669449079457796368019188371259640171389778173800290845775986253332912238145337157802620698739988700039170318559147371799022536415137469218416634140174317895345567528496378570898535082212899166496301185729424023182822065225635400960093329990534591238786482194439748633386779999637092982156788871886270702429710284066977425599237115801949658053077304249825065392446960775508201879433510275716247353265221260901845205215939712991032521484748799946758537634451630321697305075937456463459092697293888969792368187941184229777414134964732146660529454235542310411899283546121188975812797856881121822823724468116249302368178682219197428868486954763113430872819932267705168891280480143302701889756696776434756392351775138619590360095669903224310637209730067497997631807440747427986356953826444745106990998627604988562659351965001749782751032515796631585838174296510750051819552535118953071131060827248894246684358580377536056628810135873868085056448028799690360143006173929358653778309946599984642564392762470323612449270561100653543974278707825819792732281942747590041175060345285691695751463500142542340609375250803986766623949831604615508193450303489097313439476480500136350362644378697922355707779763116392354257737363792629686707637669380190958609319026700796984677713778028701709429689712115100784245146151992885592831120225238502296778595463078944523564269150071931894760701621895071838142310757563927814476181464373264535469018089030495778018956647090833208329597723504250652449130177185220007608022172167031227555761945856788510694346339697361138009753972581290693055063710787106789121264593370356676150992290602901215793219751673764768450130888140904518553406912581766069796391494833546767547789712444481713365528674644444826418821977239213406930819634555273286535233956896168718422537246353077006867507927181770384780476563903909716747472137378932187467492048848521444495437741030886650152547779902242300915152094232664799198111946070975315357644342377534912379881658857677510030100831225247842964245982243961338845072324156986647491775756678022089624333158324439427777417401000010658811548841145709787613933606882464050963929550554319307376144643598271569312866788138364003326580487632666323493815229340696037817332953233572065115170764436795856363548993802511620606074804279260172030288397179610404253139280065712463585367025565715635653039587358475513720643492744695388053231365457405994662505923918750716606910446750972646735933361395562379048123102502801802922056055853723135222287863280977337352783298415811858475210288357708410933489426811532415560250331661949782410650822297842415168628332849571391988346659826847400894913384891522838077995813681703618709268287555806305158646533828699214651366085521818037662982023801163238539332971607189075272149646029062571599335818695312071236764668566243575890406157280620063965621807348758579886501557442280688295341887604468676486995137794572066547739389188947280271680020875272981126443472884179817339701616390618294990879090660435284465864173918742846307052949038626998225626729337907358903387602500506716336440123866375928287928405539564634878081495819148533524417803833525655846113745014544749450845605340306899534500119016481243873458201829696881738955569062383875571483164145754725026420954619770611843208884682812951642918398655401842528297216146416465297761488530228222684161728108054458590406637934135551059015299700112794794325634549106885224852659261045073104714503064352904654360724482752315553648708223111615547350970409253508292819692086105007642421723861717633982197814161423107426682665264384783283073928859639838967051549218623308956463038428841747381232817436395923523176874353865323469486768274756483655596833505382285316845980713760836899911570437034478155017693420843591905496581721801515488697487989342684886691015760609963766171391719117732372941799928418041559140412137706577398450890821455413341384396328746438912274421275281437571009534030841291767306164262538583426445439148834203621526420887853866463154473828437598959522871535247649072286217843756054958910526735452325109957506131027780598198707359341217074595728847054632378496600717299946653478538557728610690995363797976076805495602848349533783864734545443578280857701712378675236119538904474180844014563604628845743865757602481961328844654936583430357983861248937586960524556059022216891330999573826118982087250520022011792676122707190855038349217649889326582584050903864899988202860558415588741220518836305102373342710253347883739216420692921388833990912556766401370201192201076677301188438198495306976322493549265307231476277456888566267419544781604448973759959538712969696415505483404867954304199606520405612605461724186372280008254101081791768000645722796204824689689856426154491958037132746993205891359142645208183017638825520034892364173236860665233248822976290339338612772740736009762297792963586533861975663889930919709087150783516353811970324905747102366521972655139436426244886218504166063512860862070115484557254202048079535248593086001045342569131425782217861256560452292276586544738925590656820145160860053209095960426557892874733046915563478912445090247798218778399523728985314221822685427954890301963543494897475268204870792701448659381911481048818115061250622645241608657136110456640591966633625842092660625115820136195992259890463775005219143940513993714290846520759356235681385424494783131218270947935347230494513956409218324518466369036506408168989250393756321277454805676093699151627859858779008897691624895706099241898287243113269483684800005544191153919739639927199281553582344380872863790314797841380333871797256099418591533748093202350595299289160701675597088781940542681560689127354942226232349389829428327128347715724386242230727153498044632761168758640305942640369510997660073614823395954792282463594039022579875073490236181949197156753038373037958867054910580224726913065708508445115895117494179464391264872873499734587061931561321064753511883107804600036381527115402145040862738758655310453451812700124677100033402726673812747979310839883236918665003685255036219059674831676710496369008457584669914176098865488395669116390722318982313370652165529907269556261218977683084089833959466646931707772439355172796625060787670098595858349402165720496408219253617536194138293672027781113463338912784604414241965001798856921836808513143434347518888986484116785997260653603452543578878944092552608532540898841472090506525777962193374765198613160246698358708683568724351513127195539085803898049152845668800084076619351455465361432839353860161441246750747167768600605423181289018324848043059799260814626595244808045869895785554008575870744743776990231858332891322130464541277933184678684286323493923337587592263644314938328174926155843007131485265636349583725614285676204068329480062164599123408549500816242987158545145640221279719186907589255079093566717657091089113239744853418764675476669539614754538571307539090261414649372411352589598418854388899082800446162311451779969230150098278365851568497302584301934491386423231189048145713221905252608627933025611660476119072727489316144429204705865353490003016442658659398065185737899417551030473707995861591836063321502488720386215223928263472492058213431929357576050544366072512227340712761518709395033011381940936858174027070161255392989271644441488142152084528401019042293778363806334159494726936963493729061305157466649578720405963510339857526239472328364594307617829868811437290772444733297744308754005775847320145380030377738998465440321919529025685966501911830993043300020414060783745039130282628902570814817730276521170119195406496011798424257794089404203286605558779041896848748010890041434996523987827571617505831229452026505874091071776430753180968610313148616100188005158857359318015631960164271406945748337828222587915162674965832723748727470984111751750755170493315803132268254853333283696008007085201929564535428734399178781754791788463398427878643918020716265491389638360838400810461587806892529426594651946481660196817498060876026865602729427623286146881199127353489596307740236460524933722150390885652696282031922383097303476332389592523177909846406478265443606994154690664643065024914605586472270067317905002510527510984430592369983740163266905948473082978008795870514969028469483047260518154374469086695063767996978600335855136469555146461240201085702919467042226586644138831484293071479966173549880088690057125643907993102376060015077995255569422668230442769579786551249844827861486793331019913921223554131021952653541648504936625897467142217441593476123042625853410091799298672137642943716529727027724992294952180797376751442008298641597603718349878774482734323288545450147815069316246639624404835033076477972000444056173685582205534570314951993282895263726780025507648487457986010453271160039682075982461893270305260716746640211146883027531584003641526281779389823557862254275454926271519741669476241046387551682277865162841609264542824320556400509459848588332422820259165028173193625234190634324584793743865094939193858847538487350399019219757991514347073968236897170250350175339825341729142909270400296863238853371840601729226650965773023360728178479531720584355476393436825014266362986351407561614573350627238279613072815686744989833665058707897245003410447497604665779902828645713904585242212918587223822269032302298950182555409412945932680362986975946870958971162947411196851020828776560953394563805776856552766687095315710162315649568465271575487216824610472436255562505641331146533235577918887662375068953763526805585982685383869786155915254297881535408476925403126735002856000380109606637006005418427313889441687819337585995920742794630434106347246191118667289409266593562993955917980824392842511894410193314057905541948128620928404789593018374064251097370414287363328125715419032971558743473736928226901239625090072203390416764542544153418830007109392477623889124873546176851637835738880254850980819244351981232149397071155840531735967138594106320107641965928576518800961312660787434450763800867377026305859564047861060440954832522757990601828755109361707205286955278751790118321727083338692618752494775153179900309606206482775086957952500497177242727258675338325122091578140339480853622014449501763402569001004190213138085853094911831839552192099042480057100990620210609869616515569510936664202448168069164111991543885774878704779263711297826337871702194909461184809735728244943210900280773850627286243619124705568424977383771731157201383353736324725909780573829586348856624415467120719999192978336477313426084780179886850801088729895436996258153650426950292567940940314285148999362911266824187045946776096603455765671410370932793892296984827444599275222262342501963310438861731381840719236696368273349031413408282808250418065032133506267538477332036008467460461754358334190918042305081185440886865932845848883084908635600656967753898943572849405423127087566121910603783837150552278120435832290128547221933428237050773169003128636459300940367613138427218087289435105228974220535378648487786510089366736117735991244887966625655615218908560078565654151718442990893141931085356653309579999615564052159696437793052360896133779947656682386460115257791839144910244745152561132419300996651318423920659051267138277504943357142747366256655411210954141516788814625769872249932389009789992264692593993090564882095027878962038387976061158345779441428645828782023583496027281032441227366374582581175935412828328543306179104801302224085614690373337091522170201902675738651810072397910207939392342060250372361039341519403039792452512285305275967930314035491673291315118451671670800521640423356912285814225302037368492451411234274268193611288278627163014234027386716117341985044703773425082524034085332028648913846972592792783477684167636304889768919429473032683451563725438385646430853388943692251959809640287642219730844012106807870178259460553257055806959065826274222221536403955073798473477706678627023859410507627350674692766068386642694271669240857141132709736710623598061993277891893150911105610174809746342812319397970246581125364871837102980482676715190710558652443417094509076833683524846784547825786926967050779731934291078620922566021721232949547450459723964972028833067637609654762543176461166251613984571928366540396861223299625213255036743043611498317719509198365315841440858695894605817246549943815220757146852953163742696565421720468348072649419679339625896446675352511078828741911449131841526971095232500314107123145982514042204032521487587048275124969177842183680771212058235294144975178371757128148936269723704953344791007402218612653649090633952609067842102513975797119033900446767882716187781014157677032995897581853972890705294686057110472540822369643135318943661023964701954540041280032922861500117472107542989340171231093067495044666833135011167726041478246925636420365867286937816497626603363886790349998934635480914561882774223027135094939215991278793337796105800345917030477463829403645636179651368877113484726956151249520169266078725590383895023014822629773871891286969135954712158000600871986432703371422380565108349778927014934186347933335238368257893006567876776662437240346625363908688828604573548267579814075353307385572333861495595475966632001571202752584450789674341261295407092314906445754812108264749738421677447468280863599105309124577789205252523614911565132516237025887731227075361721907150444645216732579398546636741305317438990641246639591970634640291377452604227375653382981193302854089418894761047611017044082179933535213592224580078471070539597248280294673820436282953778490259772247949306033629081382809029618865452193344152653583143329444883396501269736165387593541660408317598684281721260091396666283000638909870303131096499000782194321450684677978223025681242248041426751580507855218018828902278877084407251792358760581663935734601108608268012072159341766270706312307286078889184017133746368271807685018321486161917920728295816762575998618161451588315072216243968372592301209105042974112787613138490108475638301160855128526737153740830122136095466467698211521291051591978481397474953798371386044950042367405944996908668166705988986521944974134568642148208597307351629665712716995036465868262054463754124242766282836398623827720497700089577343086980343331149387206539363632017179385673427817642292903021489879442964368419483755888125887755140920185173129955196779626484376208365087897774705392867210017826099290438007439922704207153674605241486243777978600443496122102461881604491191905547490341018988696346612694330985550913158995999872861971322658594510338615782157773976388734988892748630887041532214359680033624578409513805100800227670025075532782465458931279205436039018397029300735659050723993686920964564367154026768138169727915844940953696606200980531910024807991764902782310496458411495434351991741970189613248041115569498486984544373197040750413825995737567309394471650793854867255315031981682174968273793961483619317053789615901389711598941227324229604903523523557552254026576904785953109227495548897352026904199427171880222755441160803452101481529401459584879068222933426031168751571161627598587119878476564474345351145493102334011760252678044207004068008066843115006848689116726866356983712602323735655636506670169646328927250784649555474001098207215623361118366878575766080050102312881698274670234288388399184076562526627246488533833300837031652659951574434986889354996115788450393755985544776343365178649152510190784620137420391043071195503481250273194989858028066573348944341595073702291980578628995676314002917221551630403624362586555258708051956284472675059832769088467429480580170285869060575824215726930439609345776943040190764305493460859875376747983973176929678341061808295077804631578973904058022446579697658724004029706071016937030527273572213245242662318033468427065338079712224387832249107411088136286499569335001192740580068043859971740902382957321740827359214066787396112470602806994311695634696375228115833449323465683786154639437443892661762534839014595086420546811276815600704285863303414201685273717991678900283901614401459829014839961243408384633873225372288001923767257532571476680187238198381091958305280632969550510917856697341319648440622803279765833727562346233024619092589001182571145400247728778495658838386669449469104814686220710128971524688173622025267781277883289971620897871377887139728644100173300515714615872993181975350013471135135570677614480831336375167309529555565253766313544797235941563517045721007505410336131949617468171451989649758608177393643229514560514669568141338433905712845260982128527239010335821030566168468333610906261593513099811846496199707382738682605717052912291028680416726877927914311465267532333489206318213339984712069418355759787295867859642905227340317692475509645730681325206294472086262835338803942015760971839940269262062601943733783049867492968191581720743980372815251916324538343605066924960168804014203718510706681709426052875590721599400209393614378149798578225835527179521395186372520220303839121418159910154244073917865132048931512625388674244011188418792588396794308614911742315064924292035801133824130518463138098682958159560516546388912484266992618917100646811989196486305241345102483354943055773355199058978460206320877061037777026756383111970705540269020849535232253977551655235027341053119407979287869016041331576639030161477051522813932579513322282927349546322872910445312449289644006201587514437812020759641941275520446275744070457956985944399209455286112775848784578573095712895599720001892043796008068146801019955923410570721641355079544401869430411528261861628085620119734516920397687361588256184566653552812911845454774514873585156530375495114241197996089670959876145778773818195413401649575292575360489713685949605398403030261856084827692744020575257517257233733702025782668233720579587482834380398093236793175099547941978541074435793468237103097985619567504564618389398112899310339471832871323707282740147829159479678872164862673607138377653133911690151958226225917132668371508182278402653603934534309190452238581890294172347934752605321866249627166561410819844147546095638599916235742099430922412956040695117414298211895909707739406185748802084189001161865904521451000465602468680480271017191995927877276953709698297743273438335927110418736963712430549379464225883415359825387477478305752278024053262289573175701026815786987512052562153706261897382635189413973638492713465983801149851813917301057848928965661208928300389860752571045955012448367242530216202780592025022766624090198435854360734890868914146803710238099046580028561925783521163249793409910430254223032883563756080085559846698122656121002813002373741242892131336786896798554780251044688165909828149853530178679269071153314064453867199736883141048392717013922259756100243397294200083058495650032359311279988141220397056532661178376806128382786900390967256727857903940679002708407891743311120319417425120602812622593720031003050599237761763660087384576205282294242596427928017588898961465005989159101761832749493121580828667590524035182966291777686834758290970948833502351953579212075629724667502736365942012728940608883514082397202158016601231107084386525877569394494979405153080143851570612152767791968672451368222684131890043987991006504857673231058272712512021061515238766781934826907386725765801895293261352504405062695358985789360832369004188804881836985302853527619798271705911500157696780733245707362563803996111631747570404188460647924817947722173626880258486864451001477352102040762673612408898313779239032791296488140444058829115344269830570338042347803306868868070970683885450045575720764228811881530797362041263478159782239142809944218237279718384590620259350382923914123064647152961873720039802204384765934992899565111742752161126796410797371591660655696167031595587159096774646570818882186705332446269760685800533498782331367049257105661340049181374518724412486250882696108084424027282192497743669324559637198807075925920264000972784631276969690176211479272794459566672521401387954916746347021186388612917610868762846548879227953305312246522132560371690565408147979275774365556729711019835592526837169989371755831047748412115381786935525613679445943080053010139908574614750537765463189284129859234185329941488927572754384706557083636442229607968978852926161442858708422076252975559656784332434455464162949404816019650878898644711851482999761380593860207371448162071647222930418686256059605161051634030522468720575605239004535754709535201403151100568323852359743318511717944139855352318113125452633792816565136045314384565440225228528271022263750001147562101832055520965108321098037784669690878924477829282261164319759288112477024318664957996913364275311173170474781976373317164569389006220332254734459576546429138676097778720802210572221546760621230425150861803083523284423169780450294922956731869065268176293624119436392809318981404434048398429419139646741259170776015124040542710418321689142177020638652026510101521705166435081477655207089164171145960243372714333378782251630718843311893387218192617373235402195426535266552438746926959372423988527609681741594437977930341515277846455509299049867433137746157446367100394272909375060390509806088578431827509598899938678325698560632331196391416834185219164064219795997461163951669766209339442037521518876266656448150569103145252811787100792458156632539186339232644712721143462978430561375891231500276963856132684278854663709836213584817412364327876854358183815602420606746768584605140152886345299074026686317205422810274590378262637355274925186703042496817006575692094107219817823643062917178612313606274089686193456088963864137149593565301980958761273661837286014259320668068717755651217314387098509558575045500446289166482989893115069118915316475009593228254069368812430870759598211055341997931141987697367229238237435872796669164884933257143690937591843197605799624294698971327507889897151964071811225016471596229339976596164440470010366140120562191801540861265252375540904570452300656889099920145556694009373467744186292448374664013089309992098687753882489192128950799192643173041670526354730203443468327376111512664853780867872655476441489727456869444356047378150693314681958945619488137632760615309971913477519720623709028283553375546741968596365643153290138326401501046112301189408270966161985920580099155287836657447596145383661951826517725222636322635160164066667214442387561078559800722174066306496504890902539401968845827240012929546933996021701940227233546590104008090409160909571235165938089064368255447206693743442206373164134551826377256639081644463018772950417939814198674013464582891742454768319131905856535674537671492844003820071768229960206167173545551573835132073365442218862466167960093758505015340183407198937195715459426604331499297536149860030169880524725899635904444892855541193164921086690805159361434403851506550458955539990301494193115553564791681921077194098713315796883231024107694040926452818281627046394064166975279834228960860189006520510512809496732819792373541081086178115490836909707989989542738958832000964366515934724937418857408852962478034934141314727624876026898830549680420430126307801340037009190607831696848593693521637432730130980429146849197028036065527866225156711693700884425079119841721053497820806938488064813598835276826112126281512465275280406125933983515053396346710776561191675375608484207318729841040376164829951418841955085458433416315765991189505920736771728420324996467615113242325426632603780729748904383632284778039884082421217226402610172350976254236809756197267450228504534716799470260389168215190015937700448663434356266289227233800075756677363398248019873712104611426843307142816605420286123772947944897456164033103673628248208009196268713078983172277381710140043295328944085414927369161854241871165941073491118469156368972715474659258230197877672391987678154828621612549092158221063914563862003502192604167367261651815410357299612948395919360872319899991974660468608007505065566818029324937896326748757165737762501737762504359832337511371321258641907230032234004443624523798354505288517401855709242249817626619258723163866100855155920846727741856848849071528385523488550386091753924844262796653601099669302396300768718643452158202248420643928337911958445611123031598585306477671685733312571340313482808878581243703010857831248310060245619115765339345530897318138964640470601658761142798043858038854813368112229347975768641526226106349493240059297044209503791433632705383960832555717934155668355930297585401208762337721853147460558641907429845133188110864174157109745461459749146553423567957403188683015413802564041371882604562673286557696565020252717483754347728414508707507496439583667583395012523649265626867367123591716200652695200807905103534856182721556835592500011878510095322042686499308414859196515044080392442715181823271766163984031653597152945154897562753034304527119553925002683520359299976162949554529022234539802435761907702408289203781373831562777989722952566488880734163287099134292943755937219034581064904416204273877114327333886225647548431599433646397855887098604998524268198956975682545737406232543756126001547465533648597237408290067562586530497109586841805634959369175125263061454973885875316127076594576073096813978644317626235734009521936490640491008686383574455425988601757378084834194699238812447447249528828507026913039286952470198700714441466025273255296996707929179162153317054388444647351204810605983416334470585679327245810986993376007632729385128127472146409142052085933171805408637273417354223244305716043265323402241879586103967611899746563343085777738131495083725800925301042669827614908104464317748860372219800614390411180880971001191707198493661039780450591531322845282540090746234817100079988099643589438301863104890722180746394106209105954682889600937702557901058424948028806012387998005925900377877852544568703184217165988757880706331635897541407865345217517134136478108918373895044240632572590226351789241008076337429890825440754212938823457770446236510540632062448865059790837905951692152917914640108119109552875692424596027739446676986881729569046173869949318420978089230230230929397991006202705323394317012104762525005503340940317123818560847964044684706727242933188449447872854970512834774049476680453360114645526972181172658889271569476920093966250598186389132542696563213203639862686410015187483475423513111831581197326255376906564964805880674863371882817306033220657939027630133028527545506186393140561902154989803158349270103710044428999533192700236926400234312690345917387232178990503304862259786595066558091612593292721003063395788917813423467388936716188847722745726963052756633705571252019604359508671350616488827320707154450480357302124720437490835629638411517223679174823808094979893039530374069211717001132298401103299478983395138474335276329495540151098313022951404423062603310610365599844852408296461041643631039304985571409996252692541617662445225717622098359505498615426379365963759329975408335627784199973450226254595082654409368932608271898295240460843703086724506987706771839341960780632692196821677767756936928849760269325956705614935285867701119898466643166252990585181499786955352588678120084539278360064466257707323308161658036701689384682525768719834880686598344024526266093274325893522787848746109158362533518562039026160653292587885176469459917952696164322726695701172388825264401098262177088480913067673640391869549903620116656596083299839126473098523022455604490873752628596653674763110740186500957662388288254569050553657281280376475068889213413279175218446475571292292703754001166735576834448132546522714896006622257970107342950684595242466271210256324846056350793251618751458717816948758103079800795130099211701916517061297382603641175893231571043885009032096353371358425112236306000677032697503083847486889461341750780810725897975167685398074390095196207921102467755753718128701771670268572395580818323960403316482580236217303660297326682624519123394265112064539728368556743918656656931484009386492297880570603493752219913342813845971515413305480471626480924572424785241288101750566556891121302296236841502142437631270672428961253195976104002117205870364391150459377730662049566398295504536940909815132460080328255005272017406457869738446494215994217280107488367177109970527571724147590041908431953553826868525023688159849057180215442893857079104013278707983224845009897218314053357816616666616275661872965573971716884852679760324880909347336721813070657319511241877059979966632503082259516259308203263024851443325578765233066647015069530740713144490765992950312634925781905877377231900145707440072756617908654164323663043571956995858538608260739342521527524847840298507353276902523834845831067929785563910273698658664536232243143932142550453697434865150497126069100273262436255146410479654516483033830697460447049582887914590628661580991038085509333693013589527057152577435176209757771101442127183528174900764216010063596936544768904493318902697683852764460279131360052001991913847142904387119364429370331709259676688799264360491030461748992368941727779015607174480712459269030810991048909084071708907169129536147216824778248978915934921319079010070486189554595301951725691759181699087717002573429212283429142363189047505663077264602386246489334368316100732256457908921951057846196171318583350376903695131034719906432839331179966453913651778484969980304432262503693461265498195895427071693792370353050402769882750240456506476742726173547776825280783966503243610314921963430395287469258607461948107246471199131275520565916133740494767523241129481615042725393577359166305406538910297309741466595549990388592884060492395617566920264119179928120375295487931525287511329161945660903838609205848899787657839393423006843057214599302432476098677989033060996962983509118373819164813154122940215708688921294371069077624783585513926781799140673454784872935845494575622966580107467071380816174795347882388066828237761622839950013299850145055003222140929349827336750620164228705725868489859626578778689947311839477738690763772334585715945580971213855701077233264016944024998873241932871847907846299555788463814539828805570647434109004204899607961204273445577705302952118507601147052867774101914426114373291332924359743702838075177345790866185956485460320511678494644262483470436724093458427060768458703479671576326486610037713841426519545573743926138264386204404057619660303627592147193322761406408786241395129528493935816322580260841687896277690815586227507056012615345136275025939147817959285288401838266212342527067135175330217127340167668397296382807895809047611078447437617064608023062790109453987614723981395551232420734776326596311763588931793138727061760764305808508893772023712659488636127472419258006196638843017231185429968553321602823913663092925752432652713175166536845778752268897062811996622710307858735031247997686054181816170432423423596459348602327878347159772080396926555254208316542075887891047756976001742237434315198853145794929121026547550065186711407103324581859504607996744194499162787335269659555037798794082795212680304723280128305654666633841233948833023028087135186075265215531894268017013027118696781402144456780780583171304581429849258611920884428278758595871734517579379036801179033067511018257872832317260645923208855290473173133534650466274708762103850007614751676475305539190160390956002613248743504716362804813647728268799721457420314384641110584280840259987533140797062669632993771632640311826189479849706719091754554697672704038726588734388833160642887540514393218727806416762668332853310403186911485823503301472356575187383774116683703389505848943314795128854925227323468638458931683451964708191155478356226008632639084552621366455198853903353349443967085124386634076854036966166712749988068904351940655609439492647640937511864090206294519163956100778084176102054337368335857089243786665236607917577207608149612990427129045310818311987539628248280670199274747361042964891015618111596755990067228191999181545348329259785177307296406756390174101333463600911490260129331984217038843897047926690962335316579449888070251460534089180296755620542740377483938980985966309199642771885183974460142879398725032553738104922218854129197813936840012263403171976684110292741449447367881498760150907485641590240160145401097748164145332198418125748242949505041100509921052377037899131363355534208691353548375469373089954607852744579466738424308116089485121324936658319458064961861499751762823639900817813709221081212086728849906125944031645826070148608215202339472788452326976793766439227711161260498762281329095548483243920959705918766494097896856723636167768887376028244502274474440691925722515687248901376731710968829060343856220203053423335044740763853130850872561161432030747885680088295450134649244109450821093575695383937052252996628161671926356770860576506959928422405662572168891399818385536358367176962448932231484466140970080610599710759173441505225700402017563846090883131808466966566819783093163969598277191062794394355651553751035113799505133732629149005263084032270251002708581340431521859308032673738786263906532359593861303813623182340338362486472977454627519001795163667490624163429658522441328365191363824092246172445726034614973162174025402753901467035522185754952184976891170333100645826914749850117109961956513084433062124389675957816920104655814132335674512149289281410797838910146339704190939248222900813078040645055924755201326326789145400091931988153391113525347998626679283874349066426971761484688669324968651183588482447026026335215991636112272691240429538222737808479937616546499514835248847585390996844403692452970870951562042328210180457580458844424248913756685420924601466037546497327290377502996485118372109832475727108647225310749831485970398172979581833042052211409560935545575841444697947451438559868508199390360171400309654516741585656082116912997738900476277373778829040312220505793792477651943871213185599893370575989676467366507362411620622507945986462463353504974075947230228807663192727577526947874972647241930282332720487820687068563782865084710722546973540144647508915855047277309894448470834547551713779732712886312073911915464392397062460685229678365997296357920321245306716041065722605392389313152361589228931623735834902533399263527462767461960593803771614127807044828564828087787837664320439101193297634076365944953774589127436918007507059752577430145775278107767100332188050333475450396098411583865714622580615244038760793224992187543500783687473029931521481044104507392540767578125527912200970477354898383597312527055460988059818251308182153312364263077793746398575055955969998562697547384663145155133186525754199619192966293062023090158096764976259912539105564585442044118854207459006295614889158795190979405265680284089135270221224220492242620341719835868967327113439823873284817003656478066543681378243531571208138031383701171586947632528155776129262426019514563023261705699326702788953787690053629242523452258145204732342116549375929838793774930968825894215810111637896078954599326760424557125653125642913100982829996350116669134558674595573692152076410305160411115923208451118742822771341940122451063484043847797601553501456719029896476244166950850597644536382583523244929299789198209816156465346588917964013871897544025449562965757860488251246256794431280994692457775118830743423750379551247442888155429729327207841365091985490723458735433248025522954351431219874637752069450208485172928789122405798689202995973815959811986223098079541251774199680400758365699866692279144626164210284728952917265283752230631152889275735461237251156465229253924662044587798004007326162753318317488114743642196961009103566136191678416777243887461621388869081100124978513062713483265138251056838652720949674558981076098010399117771841495992983350995762809116984802015083920946424304608599298112698762968137593943147515450738694963260730335835301468589466693371406816150942568454542953333768778078831865229385881799653658249686935039097965248563543258189038163044967735508076615245679543733648174094201869752560309371793933371531979673055690838766602075384324274577358245416925257351164314806130482538659805141816530324002599488192225588083418508807275086607389320264904299434852706140235294054887717781050601975353146388208719410772923301383567473717566652752105377603108451547052127817185022142278232550604625179476067581562522104322514703363498571788386530967032649382279130792598515895052793423942619314633297491446856307155948593238894953039884479584094610914158971662599277943799625903175750818513029615744861354015262924588311646223444521220827340476509334912599933168852191388631239913024098181284319775111203189710956978356610026050270154389314556787962597532782985705129015826665733179810795069899210692368262923179016238204052805290680239082702833217749109933094468163864956784177134243253057796534400169551484794544054002836062377535308692355242099598119732261714017877591456899375552061382824416395635664600059423760789819869442020461908592088136362865647602734704412504499786552713295394535325855273633469213338842375594210285320818891122710048099840507561661479772306651145919722900973700190326245823867489646799612997384736680263635734221278389420824672117724180225946457067001701153890144893965585035446481103829574481386756336984113607948660340579339567791308771158142100027275572166618330837512015232459760423972266717672613696710021595960956912969544574226686968519140098531193815128460217830817798322247426676806815741912431984255247462703051280340317003882725504276432103560864464373902324679295349133651264208483308933040751952786227720374307388781424161048609423215948479399243621899528873584145622169623733660197129289613366807967107065894749727526550534673235513159461879865797082253347737195546911005597756035341673188825650329970749570888070968088472935510157292206942499006010973452145015325146155569625249730889382407005489249418154550391143250429118623875368664738145121458219048279029304585088513287205901591978193343708532436149915005997913753982623078452910243606875172918398291743734674894956849863348182070042042636971977509349258146288949962106147689425545698004661540663887669557602727347407952361756596803710368074983298256426048795450422535217359863421342420980587168837903695913853593390931591831934574329626495819696799845567466314977968464494029345034924565632738913414868800293409282779234640084989822252880924053013680269945636585783874638972456834223004451002752003098519766613418417442542413744981286099835427063750072386845154889614767694135126320086733528372843624265062668493140892319502858326133289293008070598566614734609345399863401087136760072997175605627564187203198990151478919000296998786736468218500270446232070363831390965613857763720729793742630306001985844057535405066714390982506412871444396214611588701832573020009117985957502651523742394914240167007207560622332406193146261930274480193414558391461618952960715975804043020714862189242977781147898514522168477459254600896458669990486149648151606651138071336973412914853116532916043608576629953961879612052334445972162833983240384286212446232169829590850016842548223539079304837741146759651153079319627227592602756976631606606023909769726535053874276308901720315621381354843778096124755102052472961901154323687982696625180977847484232196057542294373064874693232142420329128873233837520289758464132133945825971547237221396084270985821952357769956883562277461037522954990339155952637318566516524161551358689580082962920710013538783450796724629875431518678146840541659659632946884057780235297453541320995212814998112095353507343574445801765783653970474556437975838031801013307749400629834887303093762287260983169629540151571073863780568006149742691388299431610491460773038772540633844263699597764187426734691309280346777006779869950845907929491413469875842732707176065963314759625198431349196054208912499122285681272418775771932385752058330425341143451114858260018917968492123602605583047823445086143241800248240782892729877266936613021315659543346937997799243208836800948250092617214949206181510310473260976506092693727651398407499776175852549743500825194229523801195517612759318773733783932015782508698959537624414976675591451589366047235890001001062826961426988271461931109666325609422565063174989430354162200942783723098431688335028981403306257996331454873005766092453493220894823404048495381508156370570539586089984697468976596801456296469925808017006544305901673385700005714462763433575786539633337609716719835315647171651569760372968444674970268433349061086782839307248013662602025086900421029844068329637559547121884973762319482360368091955107549059291602560447877029669493859096243891734920475099677729503261720235033159812228944980195085456289266053820109418039514403158709540838941098312519371659689019958775755408915233904085945690777926867017372501471524982964251949515120929828979018342763161476984424732831323384649538773938991705099784577625040781583530569998739757180403585417892414610889215985985143605673271107470137529407230089707767451058289243103164542886642854215022999366599858903084127899366700451402062447855065967327589999773856904541217997634836706630140373345186552292742814655695031667958019226786244875472618536025055156411494345475441840197545648838612259490663317257711036703682601010279892572938266539572489139362747657439295056464563474535454142037391174137931269142905984734085617138705047403768017561809995111270097927563126141879189869519347999855845340530002081912762118730998787415234880526909370463665024380002687639150577693795074214006585279899917964750613778128924231719722886513351416922458332033798178976559271696694996832821762449055252163557278959592355688331953911637776844096587942968848036942753307952193436386708065940662606766588288114903976501738152822354001985913872889360202425766047030707060817357859332580220952532338352440098422501336121907904837795427318511022742647147371808924142909834862109505901883237640936692900228038740425155527999812227165470588316026125806621171635030914853066743915834783809195813492024466883170184657417268650166256918444387967431831849628241686757893800156130821778350599413158922715854019804009033629157146636928010546927787694697612868999775117459325778764625457863614605007359620860045617547747230089502138261936296698682492526668585935111040623270035578668050274643762020019221898262731419425223217202229262675843417297549913989086426266034826067518809208475589197956291410645881550558332297655549372206694724742488075006282489493016625093309122054809185548250647177131006792913289296765638484711745300102800075319686438397129665943393929964536738276975383744692181833564355101181974896717095908756521037507929553853021691757412626309898331627313873609819387658487743680954196266129325076842384478768355545442877333746726463875942708490896853025416795273486501414448027878042229783519176783717451595855827730589298180071066554211796102929738275787651789812559054418902117159293653602949717316094645831988228765538798162991775984367901099823383437250220794976343993719291001289927294708743307348095901343681839957158979333129813438903742104107783511550029602977380668670970626068428843509612121071435102143844359705139416919613661572175185074283953250283157837342650550707574702781831408612396806133118140184547833488640522027329958989442629341625903808451418209601995366883979763277227709209813864901598890435527650499747377336363023158257383882363046936427807204483849994227848024733563371068246273244695004301753271103283485343734121615305770298564406236304342658640753971638649521988648339407214155330593445883514291232225977191891102497938239424930926443496198334026724140974766428414180840552017036347930667500074023016100351776988981207851520884581631802515060480950886171810063858378061007804051649057283984259077977123667563392604993201093411119078335254901436807394198100012629158338847537397506512662940143529639930397206803634637013917659909843825884222210994765614814341492558881539368107407704227311742217220599224174316448169492630688604733417706228006676322991222776511411667035456364347965362850430229296897482830822899272972910180108657427033992452122909012734724238489604886866527638357978574604710041683517499381060039692909829208709161488596022894792655157020279518021381351630706504418215709859539721252740116456969797492920533873172551131268120130082669602753940103774381271581704340868950817956627713858972964589394215959598350441364058062035424566646463246342000271664826597093173872790117204005707344423941256375811097968121473661005310763494551116631430407164829358868415099287646407673115926299341676630862631401274063044561396064011956938666442311179136682990639436177185196329449597106094593867568886225131692423620823515351208932825712039392047130712989137064259277081602285415422593275925941837176156873998958609376390114011723675633935453686142440539662192455163726098081429320467070876396760439779339442757671197323801220448766987189135338784447763069163248712781451110581017947796746702603403842835852199014400126221636479196834467852866770246027801542471295376410797276213076448561385326114899507478254769321803233567181921103647934362632676964035104749324542073496188186670482964404423256502604849949854786489512672085251637177361615263745434387219426151781043383313207804142295974736710868267215161076399233561299957086229528705371165243713692795951415382207995858083090619766951679872008134527655462697088041010772999319566123120319301362556430342819784339397380182180985138122767722368241322961227289249303725138177296218431204878033055172553493762402686775405070842143475565738467001287553859095987103396669233081324773975601295944216199327021194682784621027882377530463722549948533083280312042743396334620030346763539221354147966344913681953730164394189036696164489468590776860294944428103377468491724632151208763514889307771961682986595947316894901947489458642437246676795783814135022536004780224076926380303844801450194596532114181421691735076754389790881887408049590760672733014347914619661369928827821106763334607961496904664857120534315293625124714366592886742735862084363151857246699409535164313395885021936793244546288847816989495205925991197839945700215171738039291601284012520006085320074410079839533350976284189790275876420590823125209331195426756153998630083417230389591104037450476644379760907230099222805400485457114039838143456110282153319954805418695116805824688169205200198089794371268588593494110377993020354558495722487408307316274496063909297922042419995305380771953409668028937191589692455172826750566054174135990112732369269733937129775240798843893480163416627297769667325522258647821457267629695894382453624826028690908142630869455180125386181951453680807934228224616208390338113356196870556914258057227294562863345420212468795515031958948520794414639696462910380562176913541943873690514793105559599417794649374335177955537781497751388727985021240186749610112221680287512102695390051046267401557257013446767918923742434628179422856810743882009195042838222978034814959600895927042341584791896234093415836375942530810284313070044835506497840110316608466275471768721128299661126084024055020288188180535790326985617422843864655182617562885687605412076714461119314554483601772920374448528867440843450451288091500673033659239209993908375806259930216404571222709339878948170035302469048767915735886662023790829616795762363444139256773637227802693357548190483835587021147286197933918921247408626503401475197085300843540601232457251780266216126740332725907621640505988038157460968684620320138698008399625738637704636873641656731963072956277854276564630804999292849019232143181919185143739121952017916767337368979077395818726401238726963385820458847024700906214079468808861993421506302649999105542935133556957403799608489516417762706979458711107664592693241998706026233070969690831805213812931579466210799599545160114037148374310579197668945265540145506112050428360711340833498921230804739343900315081858908503340835438370055142809106074219576988040012290008337587741843349848454616154036695741527223115664405022412452223480411046841726726510675214755418268880605883314708827387170260475775531327036046643054276046679228457418126659301637965622296595873206573177742506327196490939124555644726270072838738902969400208353402904012292650982306168005561184359874381316176487939287587207336614538659076218544727450796821420764130262608934554919781489374811183386211256302221662892224942648659792600715962577561603832613863438549212862738084162414383712658216795185518251638792820218024116621114403038612611253652267320117205055047267462063950800447031556400944454851978616339516555758560223082637662010582315055391729774193293686815786260131537392929626856894242098356823668674614244811889740197797570412445313039988615896193118417720169007665424342808680092485597838483922534508996426063005510333231140979098716415626025218740164842524336463749387892225134847122478244983950427320564797360146786325101686301594919047237608862710624435639884188901063357246826384727668488345947101474675400798856309294113777637785507338832525716929463494210443796866987515685112615493838189428974096109845926790462335289372481532936448938719634896263924793505003965271868445400424235516173320637329464201740921298115867006852081083380814551620109425846218446646127202137897735914252433985816893666531736862268169804855255698741061222679792592956299339291853865490560980899926168161478262493706100576249629075318682304273958812706597781366565134213760702316454255217640867868994632113850459952301300604990200595695559589342564098312780400734070412543426799676700931078423271525539829146727897750857133958614691711658162587891156122833006088350625338963030541965213791545901173935954140146750141639924793970562157434436328392532369962074921386792313160502288900060412989787829936027195024565225861194549099688201930397259652383721121507944448971088467486915327807227661274950487696616266244045276306881954789385701901542461711620200980237023251740262385417738787022065386036776662424573147009907481206094773715772622807082348854923973685543489531056458837636935301896867999859496573516850280265148352907931097054362997344322012770871103333378273279925487865184182549941266239671538183680145428389294036607572482158487710857277540759238740259329846048603791827722981299666522476205804946077120363107865068751893099146824353346077800769749452995308469583886327749467622193622904181389447347982620788478892921001818712001767038062145049850853048484594077741845718418867141619730306892532578445135299656757441070142665104386887826780143167327462889477911799316774418643161511101602142925386764877844702492405253938152009011907650774110194112350592968424093472584121853544628007296018072229277104318361608553915019384843507414571407522046710744011678036025002912264240343626192571777487512349090902772656298028978976772934871565277481034287731460569824846746946520353590734370117198096518471304596569893318581228015677356389811082813898065419667233122092325611623770651894608385185312208689888504511569810641186012062589087031956360263173610712235536618762490013915713950891198107366605515213302483475330238179657500054983590207344111486188271098270178139314357504685400478989775689874586807507611913669894726000704406121590161470572934441671326690804894098618456435103888909995450293568897658705618972893686963622368955502452228389384129576208583933031172115667640225272990792949247864568529497655683802413056273576678269029984284149410423055065818992305027030476529679193577858552401703488884740243924473249203433432210833589204826435826562660550216594415672801694875507608845274110002039961232113563968115914208377555506783889593959681455786086343845204060111513156337362225178584123977900901471117978857754573776636814550523442287632041957091283425699085807484575034882070977691894002649850530672029734247853762724936337390871954027287305741456919331178172097551261932090684122691822842955928476613715985133006386954961112138224746353230462419418867849548318291754521115615559983246912640127945018568115470236025638227533600665612848303931203355689980449529646050776780814545106918113580728480723883723952449737329525951974790406438186962431209651390789181076951865820818238604269172653874074589640142380005413451972164853149158314503345142373293451760622585137402401731317562031763440432800359742698496630758863271933492176613098358305652399461284827153362946715696471930831712877381165953006500287024854256554269171531903685483172856956112601501580972726369771312362000004965998102626948689046190275812982381274360792381938101982597401231636196170906661758525209990347973081796321245727587944334625125840208908794297721822889530822087313869729383512035757269631160898652773806361811921705008405589717543806515295029604567084484026407681869333337429049097583336198452265274649131482812465443860483559427692341374860166924069876362377321921829134482961413747030700752667878173751649993594923813342479135238765136424902738959879716334629127218101805655986225563504125898165693685540601687526441256444575559501626605487751369423575784241771392132453212763543943806951911075980227301063488081190293493388389460576837316998540509570448499741532196377151067483547263644153263082859332017385223669860287678319170015476336580928011552308772754214128930656655758722846305890578177375039136729741043211196791961036792153755229945698531442968560588507443416125341255039619187440399858327552644358935776212898625422088684270334610621975562678017106350768577381476176692452011464290795536525547284980012968285027837954847827436689339548917502294632697424410417498890912444202660554098197720588063652986551011435370427029550873912957002866936677446336670372995970356258965431370035527181976701441200413638775452092814519727962984042015416158039125616727681739826207780535155052638178027748481541625573075575778843428696531931239301556567354882112813243937731475794821944161799718418698014504593512406976824059899164568078009054063839788636098499831845649554336385539909243004743238732799548701722352800608448998586000934480175018537964427439199630532933084155831299276671669122246961566267061343760727772801264923498261849405199062788230582999213911359926197090249982738980700578134725566256788183437732339314289909697208598628610038288440218811576476788818668154796449494923308675733248473663111494454863587946297456960661899871967850889330945376174479332527470898632636876596219572537180539380086609518814917562540210342401133889540664220982962635255403542211256552247040919190541193361364905150297548886983595169227427116868058947969308142167845817642943940461119910689627005355871732108131925557526711225356307833353994413024789518918503595763686942922850383548268327650680569913179937546085292272507781600952733662275636671438854090183351775216211313449434470226042595833040890316892398776154057639324969154718758221079992379808594293500729844035818816150243287739460452092050960260046482565959265218003385483218094981838832346919016310062177063237924740814498544246228089009372321679380372160121125669378051635378973181973552522215788412406128516690482228217209655896444507384946183026134400243699031335389137319222476204656553639324332397148533080475339642476356866284361021103557171441195103676919310761387692403340769321389407657354423150329578440283997600754180927291908788446110369833692310106756953276891262227831133572008418542490918481482729493754446179717757286846599905844184563068687648619564493029413981031906608422452127170703349557540833487572885085160089350038990237769382518315078000156244041783217719573063057803225162673600371313887747305661374049081446214879452835541158089758323154514153113083239855004716674840553583490655200059385577871835486980123644368035778610761276198447358050729205008299797747103108419441909968562821806405611498110845534597615225269383336141570230706035806036728125526540397178091046356372360983676577821894672221779042146182813990453469610868190590634738478774267495540500042460494701244884891511381590079308592576425942464636701054900576085507073429382013925233416589113158784380211081345290542623017356728208057136439740955212439683788543316625749322739345765050966488439439309056891925821177687651788100745728913150969989006184933499118934528926777111695871437684427083825616204337154160026421275943128295287881709514910575637038293192323695169894742309239983178544364603917096887611507073572527001993537371495049851582754186945449806261085660239723058022806441132823643507978759590437117841276576856593588306976275893999183280916360540014766208817944287202089700005733572073023222495327580769483064982613629164889784967332830141365187712628325294409437962457326050813774239921966673726986442502929771581815719747583473359909019375429705760757092931208768234489080793001042602964235170109360995982561188557417840387234461632942295295170681049700740586232281438687927460469484162579430577761837160709352266195140768734909871139279783550196599563543880819506795248943716653268345798233689067595177815343467422115709113399615681643050011403126489806335802439122552531721901111622284847217887690720286033157670667330824185557810952000344583770705172844115102455384695872228675372067405020075329336889435460279212258452679945455646476259939515962783691903671338527441154565997824370149705991955288352397931593730573188649945544205333922768367562251111456940496457898526755725200587445717458910494036816485321226182664713077221136094301121795805103440707429220850842954189859569822459562756897295615330387933930795029420469435683543718625051116407563477384167291317084757188162746579059229760523258627159365258492228781172191393722692648939846660721932040029436075672573604568450004366855458879636094740354101939094048716389744895185877009466051254677108916660206879846685552287944713753662033179372238161258092513266300164613609214440208364457394414075057170211189320914730448237892129993402928000257699760117684876660714448457736314415125101353502199087669132749553150034113022547251994314927610444074038305904921723566462443665497176941686155405099333515577433336578694269730223849528759146405644737822523989359071555608592647585427604161499890904262314626395949189489374539231849650198704248308894576832921627742646261725048024234000687892880447690339488669434280303475685439324706740339572235774315049801469684541196798118521952529550529413547945123240527546083361748096280038320406143754547731074226405831734645186832002134189944519840374886259895993186253132113691088170960868019393553252471739980769949798259481766381588986201157827842836021526321969441216882733466481486440947912389367786351059761046758829398758706948391980284569014092693070734019845930302070882600252443786218609615847908437728661628233058056053098809622479968154831450594757882446487106277249146449663147135518310506802045992844251624182650078063533976936246643548155069812230361027074966682803594159309895510352214119613752751355165620024073631818795395026707301478137059596146818445132652275450926829406757386239993047196401838485657393012481004863811675240190718383665795162330269599182653161921867457176487568786303932242717511185180815414627360353898718038576617384597141241509765275787189697653531878910752064684783967355430502307475244354783872578561576021504957374976758731496480155101181289897481865253508638808691742389700953473720642016783103792857285883946900662174840027980585243739290178237615226790080203451267752134684423598250567106088474934489287198754230446516531549066952463637051173502307108515628318175581234050201268628831465620138663062435519037134978453282263817779622068152482286704206628641904825717062589079780241620628573665866878821223414781043230237113228527184719715630077483170685794550043575017812089210117589279567457429248343920226409011171297945979006608436438533191107914252784319123284612458303653746874714234480939169791209651686463255952582756781855049902830206875723418730137928965930186171990142570061204372444413373354167841390015122033247131778015783609752979112581242056311110015168129850702675033795029225684624935547501246751715866563165125693527116511586178850611833935424855171640731945849239177137896646257829825740756986143487683031463620833952280190658322355768909819376446447521108202243410233135360624607339592370641131424085995522301414407645817443627965485972876687445519096572617710668010461382401674523315964594954584207970447760200216310959570997494012453203998263452242133736263943562511780857628193860688905223363013615032235221671136640020371889995682583820514944478776618831424272949712348239790811701927240381454997814863774576969722838028973179183877815007233969989645291852274089622664861629911119537758845900099081609490531095773196514597955635348267298681223428750690250198524118653743847114912230924431755251016647702349468092276803963816989078520854246956628470364271451024706227202512208570793583526306663606351013676963007150726708543795911550496953775552032544130221947682489930987763915594902261281910548898814687305071577777972348313685666449569355935359946761328786224584527244352479432683347878329632188012787182152732474667214575577137235551188846151199387602974425783109549220232998493594645522802601566760755627784774953691637393890803727638244391259577118211658099174088102169892079879760350615051164643608589991826231624684777519206305065226627970936700989389549018665840574186612177541949719328005640853341412211075074747396578204590883765302228363685463931040655157243298709939099508571592708603071119175640242759184409916659678693982753003692756858189950867449127017052323722556500091377700108206194236798955818656060130274941070691437329558785896880317024680111080636288836155694142754215054347736434676751160382043963922628132442071025900076612609134320060972748115517473854784449086080653061463096256817680938562988896883913350612714237017329121605317036001151829947194934712389635288139973757621110437497582143446726313919222093663297749537304214773390663343056388442892912035524275210750641583732242601175349257202964894839980733366883416926393494553101568473365923392518680694589769761269943432310803802970882973295477863069206805081104604718603697285147375064666267179989718181160404923481193232692908488684264375823339128728135274628257915418522954391838313021941884240081962574865463325187969158160422575916130255430070881895440653932134030939184513463814464450442408687612450410481899215890938483617807156650717284387749510584506033948315181411795313854200411623371019310762791720300625432050584843849516674666722669081144052333393058186562896988723617390407216684688239716551960288172259531380987249250504968908537679629981142255569602627624522488637500881596828158353577615909475178244869523784257623552433536924571467985771909226836830709211868041456053844825195225059191270127595959743767242681205450714175173591937834967819641643375190877651268830800186040471505177067265111554842884951052073182835306983755219864770156654789477837811856401205866192808768914687694315322990949947364140237709261663752106887521746614429868295889173497515051204564849541124279590926150232039308417870277093768629930876149337848942292402656718720917466793514661208457674894398782191426504864938874289723401287191648216313547829382286714137048195074090957432368950030467442431466319126892826689188409778911663067466701229799215356416222301285591167552691762267911040176080875772576390025454786415767623068544012082823231838100716344879908583772022052531510881088735750355842525740480160662655622697348662376331765960976555471857158139856359781259056584349658375466202811333513240066325907918831844825475111151614337320826158792654240229073634369908076128515325072696332565535850831621329175525242574449128428890339416585460476930661330316510832798623047627867504979025637930357933765272572260312089598749793465481226741050826996262118472847562714333839638463310491619786660502467149792344594187529286987650551827713461567947743866671948379022088703107153272782324038379044496484827909305956802390216564010031361082887631398847231475163599108919068965621971188181671240729824044588431211428138685686882124379834291673893490599981321042941313054498500337431917600101172840040870226650970494218321548649393325062489295947935920386312410234632012836855800001454906702628286467868409979676317202750764844523783077351040950277950556407348194245779339661738972677525816987748281817180396339666265316744658232101057062667672083724651464551378216220365490056912564808059437864753555227583009464689903964178020039278111929466959486046106103523569336998793328803688861456742318638838927980223730009375695571142694439514010457729088922489355123178487435129387038765579472243860723093803858469355504251372236250407556935092839960387843888675949976163683144660502657345372124096311235138745143200638207888150972456542523869445438494201509194583025653822421145421673323934965067768312772581617308238178769618650905672819554185809416578816508060530868797357159997557880566605401594827514589426962524372798790173783639833513013030790906028717267761775204388734196808884801707113459363549987448841225479321067007890884269416912750074518324269702149158821615365825376749334750663673534878540392439350493840522327887932425277206564873801157048244340551277248006950623164438317890571993917485973679837132036455293568340681200017376280150761057654352107547423323372346672960846718012707375124514153843517944170478014115648399458227479507132180508353256926200561767139489343569484741251371330431682038024847322344990725573641406654296713300164703132109964180843592319728318178662351135872773419031422881612596190989160298994062671935835184241603954454922546601111463304065254679434075505454742639646328269019047438519242546171647349322805718513990814840174506941096167433048231382251548268612694890440324984288299185950567250388993588537600619473412734793789501629536009111309280090142751445073899468976796436311147887786831254600992537616601307879368778556824725556741461540022041561021552588374901153791514331047546549715838272782407388687776255930714253909510707303726398479467908676093550453340144708525314735272653860906308337464180875815139453723025137604464322303339252974188318152929415339117594926749056227373617351542853857590275283064383777004828157913315266742832552024876211764316099361512085041462397843128389250348215267517847676451951399230490165298362660438284747078681939702552762655854709855290087138751744134661775557993700447115873362426154669796162308797501408958065913067287590669953486280144403990516702720783109201511487211562610082697610354274060079158316447201950149683670813548265094274308002813650170996429048584104055854927408124015434536128352540048452597222469363694538921321464024003914345907270383382210008745825298426542749301589024812492687744163866558834413170375149512840011632852752286110875468463115517060745467690449593507155723798073674060330865908346792939163612376438819700574437387355080703852363483269145285427053617530634551363477313734528582490605078352097601394578632420918218141846126086527338745375275565078153050307953628310668900536227613522847556001790506967570850915291913246766126081403947396741662480298570524446044881733657117991365161008250256633784820152114968766317878871678930803806961665263584992339327493574509514163685099333409414497215183300345633452139298865314419068349797411053754877748367282926830704662548638521726928548450386003248787736995797320538018404704077915888102455143095288831457120736735002178860037300038035040162464148628089489752601325663164161696181324115199098376131699749402581176234578616605133092973577945654302659341199396425486506565543799390279245443979140157392574616347208116412185984154587132354248303606932099255563564780477139283633296182966545686527876231610975840083631117158547036427639064768210224324819299416449190863848389917265471846440736293779069456615152494208750513981393803722359548100789080799329781734983188447024420607967227178257120440761531804772731319898215842994074684335330448616751939294093474340896305709028073179179228943707672921638129888798254045013559007121354063096491546898247145410968625758355383686159734025420187485312884672625919240268582982606863106292499936931027267471151153548738214810592806509948303107309465327192247697618256002389525211472817918770523747225236217361152960140617503258165122630459891581520313597840865277583846965417395664704923638534417997575063211734545184011287649220315186934004879568162789622724099433216768094095265387664652325136790684005527923152214539027154904854661744638305687297930463279979443664844407758654562868785069006800610058026739245733302440290022795912143178989120356760795203323809274812180454039653430863595372384070187616135921298809556709573376186606565995657504040063815035455171385055076643034895558548663384612468842261631416329651622853789355505244318597775690872634208987219326990608909286623828304584467607121845673679260221808454904440723048678871499980211176944808852264642217049421337129362035168407043867088950349966424553502031156520263533604814357900792415400677936778091596847747496951035528109202725241180272298010653534708264889459826058795848948183510315904269102688384151294418330816304337949769441478756918052020062397132600737942740394562691934247766487059586762756260183410789579771762809228765344624171954508822783010029459157247702908463204003871487385321684728500961908647479560309951740709100493599538812750154623317212640792610590474512159352716322333573966611592908738833343957915670013481120084433859287768271978762235011569441555168481594610246256617508533368496054532938377967649511472984835782044773144306645335080115189146509254937774026813734775837078957016634237918606988737054901980005583862946733525065459137514373575732727200565301785161516191625076606036735481186365642822238727253129923569373949298612317008027233107947963754034227444319295252397479223151454438307426233175304059450727787568807643460332934968090239279586275846387637573905288193836692402235437872146454641010754946112354398379187828906125270894868360279695638624952771997741195568015004819912953356624934064420186782693350028740477889575332923001759526435592557086380350371057994027322006114783976969382089690031454897343666530833496115568234359397284989034971174597610426469561387009152675669774381894376694577843966504440895372421680540926559412794617106538140133508869027547462875249210571194546809447754983202608167408603394020398833336620157691435409424237779644756136753004465942581327976017144616867712090627408807347101833841743607362831008849566171934811138105852794246303612739197498937475611254325399752124677077344736033849811228948173335936137267492993419776094128570029849721007995835804597627284772011163364841866456666208243807188458303963506882643852949658524680975869535233400677877136609874078127293033381897646865895606539479199381565137155669778062808514920729360053146269200602523042737187858849876432765428562634256605565115194401892166313401923004416154603510417577120116719910154061704426396610361395886195385520240479056685993725053818001436232119239453881807284900354413253722667044576541427616455934555907288835741612442505450371132972616279939216647450687294672320294637432242304326592626203390176729610440618234245918783310330906259448592527196058687638125691697890229091874717493300764170730484236032076967249441113667263973677826672907104036066252922413926827224860103966846590216638993704633472745163782928037588310337191385051431882918464875394696809339531677228255897679080128420138280153601639321881080762072709604598434323381902365261512235414315861146075456976326902864096996029886499313502944427842943328717919171379566736941918777045611465139001322675018159266932733083199442615619092372436514394631561536812034139306462271563513260429261621043650695065475961671712835830988658332449133839990644582519655484899148894159626335344664162676563919365798371964668443900937235654359810839332029269194349729020827882048854223226113752960073438561930832708771357645169758974893584233178029635123998359682680278924036107569723475459545489857549520421121439091520931915969960885665132655830480522429750993071483913963062762422132927186817491484400734641474686710765890234520189355105024159645524472799624865393901887024793831634906111534769727844357538811146064494521700488467897400528201090649515136098111190311807169530125847390086765109840637754328940444438567150920184897907711045383331331191584494398717406279217712340901645275826725929679526312675220618821937188815353942874721913518003959603103467830622163354542066576717889395225933483593034749445510180387137163018957288814342581632414264523931900012284756727425071809956153189888412515294655210082400644926546642628811503153055508977553170146847307492992770953777711116468361765120081200192909633615605966912518957838601284534624108126856633426560726303640408049816536437254341808413447006314308325085147810941466520408635354508067988449958530852013881073280360233075703609097842658213666545863543213835448681513839587614702088665910689070011937475372450502181286460948770641989290377739097457965948645038937029554789500524660436034286424946365297423669504365460850540432354102840742194290316165695571574332745829644884374342307765024345370285115162937607734971911211422174589744048694538983004552521090148311207473499750673186735652001668975322300680153786180961352183324253238502671711484249449639916461169910187521185703879937692104283602762378566982362266871407899036824712477094596603051167682234004734569285607937637589662527991968009539633095360101515471587775094589972269131418658983941742830926147453219127995544152094450118434451964226217511461600995946731125644439229925930107773359338876280228630049909910895502392866761291783335900312254630221718339002317256395373244865462131982961449526222168313167804902656157567469550119747395123461252799025164956474743809383445464903555871970769273125855532084413904259379339394797812840646371441354641853082371800900932994701513765745679145623889837889059200083488147485531647986708554836390797878323155446272955431012315550980896454820564150909334126689307647834224329019895776324855353943135440027136876267156222851296039916458378019078261104194720415564664537029822589491982339396908010202804403034479332981009517683767777631680738564579751679521398311261700114292805040388633542831178360616891520717253042762353364228718923527002824164220544103876091688253806570672876188561227434634407699931741606009644149710332407547445894495618234993104232588397106667807523010754970843747909588696820646271167456293684079995564750317756586867994952522573844240798962044590816988845156465263905877314712649447894489090772045470808533340067549937323914289294555029463366355158824945227043068882232747577672040725871429003336667233711210240787969988192416019476083829566457623049429593468100035392317289677485119889863686836301002101617412402787739364319102688513804315584944660182187042098630521235106906169494578253837070270449676064980344808916332084797731490979799184689036564498115151186152159176612750670507367504262652611473460786167059890904696395773124779792512828561630431102369079424185105045567234459278227472209975108672210682457051571394239968998637024546599658174764195296939000405606508624450046525994579626270077827109207755837360021831945916077111349373498575748502356524410114773741843512410484529241582892315672432697789267349775574034878220011458840507534417411585713193278068331867379055708375171926016806010979308814617536163062842661561167041961031658596245085372582259333477197263569682798791124437073370307870346741984138402420633653097132075640187154819874449042900822867749049273216533126218059451236130392890320589252223661109575086213571221216777642838889424111621136853775307892843560964423997811983374133288704471711119831213309867209225664989782784028493639610751032968669050499997108164267776710144143820543714626248270382216329706309052506465219589357005077331754461744381665698410135346102412342968590672997879890370647244845331073107624283787878856902690859780469761664121201223770659114953817681608635908391548829148598074404301853024057902886651657256937860200929280113695354179380370686440311211796163509320451897671480734300015737944567388998857040095121925189854031969538603381144407970132623536671946677559739056573917744000969915055745927342864433395611616158196307022892803231592609376210194619622233315416073484880768284607685165435458431977893641709725836010852021188606234229999172104872450674889029057980641522571445976900359725897238659390122861411456632133405660453737908493176095526556635542834163103359098638628005444985594674249101066637904365615456944230548967859454037588001045754812779149526518647153921305108540903410588770110088554194710333042663721512085654184927463785305533112756411180737904198598380703218067983803628967655144372759388374063876191590085162232027213356166925364602320541587092290180693883209760891319520554657037004991048864044115030719268812136355940766317043981041815065897847232145069668909059514221564972992282440827989004057549655222306813333661908790814697054841159798286998912216618811180870197619523075549024437380976977259609397467648579411686365070477676213251432621348661415584357641219901265671132188467165848343649569474916755144693873797983819116334228545495339383059068071771004657498330726174718127146076307130920849800779489097411436594581259858553051845329782942670792115032163065658126840397507584986531943868666557838330830055182117703432008062321180721477276417623687374051313928271878737119257987260889306080617149095992804871136833136560002724354981686019266182975051584441505507178317982382146486588075351370791367808743068043164719598922906278544250342813926343473531613302466602885261423955232372327317965917642731640179858952397314679300523276529145708115545889639042985992187647357552354577891929874251618523723220815504942758388289473624303849289617587296652516746719022764934353695602316198934493266957270941254209948132622964517337777225910328508512995537023213539054652727257558584410187834220125448839474787719225432325588771025980138886932489767280759364580043193133565553404984795774440751789255262637660863476657429107943604332848751883475830268983103051750008156634726169855145447525924939765713401833759754847142448870480304738990114655182618911187257458701243857745266044059875533293116499469967251123176465236106796645799189172214023286161263954360323676793523162018496149126041685244451014386718603046759862059819664779893480488457942671646777380993835134420012845138555490092111119383078288513115160731936661761526413315106851639025891808490650312545619765606646355892122648514387973197021031360095874485131423182209780003072761491771287418086345416804437205482569872249346470839547300175790082164645709156548007903920361110561219149950275862829598196374542847560831232035137875405842023001130917966058905713035732747231008544404764168236294835874455871638537186506340764547030157410084133074766764066070888606346114048776706780560708053755695297047465442906069557324061663153103438340734879168176450431796968118764231911896587776573189784149384990505396545892540006377336517094043497214691568769211583893918263079034380614806454267928585187343330925363353540101362772835038137374678522571880650972580668780285665287790757338444656715349131784911602813305670754602014912363264209654432959350522605355406984147336832151706150426203220033679879114883222866405855086329003319559765216688995400384252666080204535489891211234532617473489613043769952031341736232837571650344639850670530175725754804196451339236431759053732953902941669312401880725451361674896646696716910654914869209980548077550948625817750698037681191920251512239159059511768838217339170521667670116840874063134353916184605708831590573424636627539403847576915661978421595177889131780797013774196437004447235019455183425947801028782269231371390287015033554084897588701628106989972081717112796993421817450113997026946785356007439069419384905223929850443791206116700728573345203838039749814246243618451178605951640818028671972776904360986592021691407587642609312275103697853067298505934457512629327902927851362236496523574659306259860981894379951896957337048021558222822354495464575716966965223526275860507263285510370543266043041367324393502583851416752396769372651236597705360025127056687106508261758718317540345544343060901465164852284073860808859091236861292737887252043285915656420704328265824451364809110063989627864669074117682313390526043574688533007093254893357163860756372027480545335769892193949660134041346032609888008488055588366885779753507011072118334529640968784739592322255105162228834615849807064880532589339790643121460647110482772971568441943946667407453298599008498769684651727350064484718935030576255542532448291656104937726983928604966865111410089943846492188796934037416197191753912850824297764652514554471065961058756405376443326224791590632370820974871529915792183093557547019615444222070392176256212430664792811215179532007268222861616943842172286437189571373055454416571085382462721216218228587525554727868347142489907761527116794420783606493589983255425023548736083126814603747924814083182313975314335685697629725932857165720699987801802173372621851513028429339147364457532951169098250265645467612972862084554288583497772889224284778716189460294213323038495552802765323294324975362199614406619339444133529072867008875822923153404070825546176415640209688686162290235735803991901168718022268710995733289296919845698481814307827330619262045635226279078984853469073156407150729433752593344987501229944362764285164945356260590820085088626512924695709567937661254271729956635281500185719589628663811786880129292569421193005918749533173383074772662657442291145407258577109765375410458339006687048539532511814071895352253581999586601859586914370882720329449530885473821028406142298854218603246734050248444069336786521681987917576535543920255758559591428275769481757079481426655654016851077328635039515159567743886874878938028470624675550902526185537562130179779489191245042111896869965026973511944539529544735814719524241185993567455863999709332050896627592059971989760352659118224355082157285490117526955224554585488326879790352747097529029203083276852415757918606434535860099902649745925295999393305702733576239814518579624626981558280321993662444967577477788020270289830912841509604933843512656018422786734852455287201430216365964279556102280820845374386612984965204602625146782163481498033776771746098356873069918448443770042228650236490387186033443150714704570147030640427035080052435167509459679598434405614844901718386372952429128616152214631852060970142158755651602805874100104013913021266722313706163654041475116497082865131705403240284006142111057150377555240489965353413209671453234370180492072643482358031005153065077922512067067246161164511227914999943214244767569870595193971387942492427090642172738578889431855332060629225935508805984325849497311588229141142257935531376147789407060323519776612909722432910025138436818636548793212062810652279847520274019988716855826227063702095761273463730963933811458685671101143999509156902354966551129344438382440121750886520735250343587499959680475632905368501327159109840556384379201930835440018246230813621628458557926627474952695482536252055928104204574008506849064378767089121083765618178747845816628536092833678504723769645402349198637501807584581061099704505254285711764215878859830030249309335293222954538943554478005440385993583762349021782229362845238607223831959155632666683773249122407670088633650447914513905383484098098298566655663188489375420191503312766215651935212429576406218040628015769749571790299166896148130567025507288379605854217084904610765509198125748401008210902526385712581781551503696737123551218355195039578071508071099867574755523503818247029116782154068159401112473469146949880016296716257278623335787969477687574653788328466388233965702258149188454162678027057369487374570257972603808529332595066478889021784329132662870494628830901712808021204840693016518508872422894318336218857881892362868856346147797013345797080406020905563152570509762438744902127221734471088606615879764831665078175142254870157154102426053170015949357426791012963541550669217191255564323104479548106308394862154076696346223020139968929894163820397844178043974023842151709071183763935601098216363093932232341355421241687141040288683743211179851419546625030681078195771012804483317385454996388680901843196838152194610128081128362326903691927639923929387946006381826060840998147236739558350550119447109405350483354277951600488480231357854674121119894237626966990840801701665372230744934759496636061008659483484281307372224677395266477316045105385872319690581310931476249449175472945969989942558646143895796150054800376021589525323781672899226636469225184289971443047034971269676417075289467728570809588127224450063101337217778250165991800797692203180801094564018599825215875688462652919228995268081461135443611333917807568374673910517056211683824220297360678534000250367393256904810279478291150163043043439517468939108158648803634719240901246819014056380515323377706569515927149186869126512999866297502087247562938900558030347223458828803687291883529208108663990494073318218170660789269472583503425994546042494967269606434647578214093557551934471828518283478738824306709877695365845334471115848545489975109548677740928504649200818091914953283731235450812683366300884588720817555079533567440703376474988438776577602353834991200164480265542609543970073027201952917777955050828212769231320278442430432335230579331022118947724404556234453477747372658078307183329410800740651386366450393935375465532612881673092220756288803487971921593048230811953209227264464676538937356126795549724387555252447295271786692743968422234390013090915623514175501916338168077152402845993104317462229641796017995040575902136275987181373213286014588084058036388248442265425245721744482867475194509185607062682722150448903630824724895553554468736840169009353831463389582781882748583357523329847420427879828662143225251261005857453356527594920704933399285638372434266768445801383105582137317905133095474243302773190161967130789456157458022665073577536117367691373299608943660732794998188201053647228767044551198280100220985919328427885258567291549518824070461856824346306793763973896239029389321415214884330089292393273215252758693852378781657555400195259141843333691164755114415726799741932900343201473559180841114712009310501369764122233735838316594545226790418270811045912400852232827363834920879439479844182334502538925712387988589142363795403037344141180421400748286200300812384525588108644668129195336197174797852155942807399131903980576637477770484357508994482851841136988213838650014624766941690793154422940018322983338475634433518711303545655828464387437402857994206240839759127124680749127869241278674500688031148060690739768065137869280663981300922971295048907114564605885177337773133780442361587140381172547405945595346942166291178783182897590017694634656859590082777696730067349978124098922610652546980740163704877770018933096725667328688915116442292125423847271079876371306517062711656866315165586468005167194830889199567997764614596899337844984172151203314612557593785097200190277557388610986433842754694854920113092285173267155452741197034452902406636321617243416747242753560762341943308321197454793541411099138090944822512058675533873690922963286653962679703612463547639473583659902327751102199963627856522260669336475881859831278943312816439076672640999111325439437650558997306285166194068984550515343602653808438739554223010881104723307288627580023207123150037793039198838465859056401643698713941654872374224283648236979687009698972768563846401708072019428932146842557808637596678212803515108018241406052139272685264606946859729208925373641776882886264661759777900286704857853216933803802179110590648677869174679964793456404725418890792157050476672187390125354678109505397138372547804004064453627825297745346200806914916655277987914411450082711024049101005608885335031282687762356919138317397150244720290429580620186074449685664551308452298044449633135326386955244222352187996038147867401679927141087471870450456058061059477620231435042516251301314137965402344133598082091289873492884428400985924096580236790111088862096543459551676936402685514080485907142824992894749285302143162365585913252430262098066018667132573733962405454988044979896478618358517801876214750338964139556230093539918148977441183496986145847152830342801346822744892328707982706763267703027431369452496960579981574491939782651222757955489068062266569965770527061174608266653796458962806613392422444083868350201547295275089097312693041415032928161307823613895375559201704756534545813680103396001692585335568244378682397863650693265336736262497734755259121830801198250837192701512067663795336507390966415414746915548955389371398290706597054963377125554419200420224080664043455211306897166091559253935846457065690271487594051786656023499455866813880281254788215416807573359752390393463669887632499929563405653784334795626530333291554222904543011669143353934104857901700840171554615176574292505089982106802629421739915896415176381428567589142732833499163060565781555324687978791151352515680363464711557908309301733848310070843696777529727421680755606899924893400228977405716312374523121982334447255721264210820561728213400207515723707351427573814021015579304824646329068053520288139956419698873680345885637791519606283451701230752924257703812939275469677751403578178813145434649425981353262139058325241729745749272226125958039318594402208026673309217128046689997183907664615426631413022774227509957563777521722124866578009120030434719778982305580371143081627000876823867803099597397825774810786406741588141411965245085476385018409392358612861495076144954034160256728950042624448077157194170236303895006585270718338313421477195381039460666335390866076918605771196118557971971060552870244499959966267068935976045311054368194659528652685260466800135139813825050479068177521775479407656570219821509689585425613708602113629841680799169120421773820559839365703541343609805835296547624495086976128641747867044540472359952749699586951348326084652751912635145882465962382051405371690515525394509012164776140811172116234255758504277696248080800233290519122135977137651909377320621781592071682064091880692754435914027107415425154869709384005535009740527039161481410494035386154353970321383871515539318425990979872334185221984291486026789508071065043909688084707573691259271720381598900829915947278074171997737540916640205391689855969088050175877081299459432068959415055180079361471624796445615574854639467719352558291580881239123798265653042705483741395004881235462812420476189725023077041716823677312811092969622518764252272761774891185591694518094899380408711689984013777755659156037370858956612077982531071986857630687062381307999643669296058003145820806870570735665604972279188351128302567038074657905396050081658321462575714419153786178992619203332850420026306668061946599499190439717795069891607324413818013557192940473817060642234925121624384646444434069354772765900616457134165427873337851923137006664016512542224393839127062753407965417967398250756396107871116791393864256500823278201016529157872005760528962891769996903685535511217536569746530185560338935275810614172408805550896624895664710099200335921086385493549168949300618848916938039028059920150257544968868365746992689525548795105185780967313595895487172497810193227377067482953251934892819748016791601315415291599111733936406346678927578823410364233589111379847699981211864674780806079387877840811075970531409424536569825667313143704661821773061403689749122173714707943037283508037735964746718020633763901271786149253557451375772825594598539583272314660762510751909285105596646571623510543418907900058248888972405055198297547957528459993365806941219169498876389413795431871576454762667549584944621615987658200027007628928720262980013152609250518965783552349159845072047088837353152923153617718196150854849721857294120449687179908180571333665784708462726455293187884926198198649296113690866857084707006758165190825585626663746675497823811881396485969314659587413961213590558574267706770578508571767025208576712840988701128844399132559798078848968639473311603607254183545667491466134532392945715471710456337646945752442067976256021407970502458352708567139323202700797416687763914747864326180450537825254268340795621918487286061185831989455744030315247556879043946681522263386416240054772130820958375848383074660030837166369023167018775368922258452555128627112563098245914773890234641691092168587826768282893540280462515567686794592713982099672840238952923443597322333350582598960007143506176285727024037319021452778449111989525262148074398790925547636425931426160547570366655694265880289652484425299223622234587415463962954270986770478288176190256076119048768923416508869154222677383038591732812215923837988655391612988782562196223878582239270759046823566181157693817094705239459484097726536547089398261492672735937154268871887770248927869283891849113066899020527736616669388679013351356723746954091546498094419933368874242280833538096484268480013655584753169905868668560809742123729421033241259908861939081626122537887308767988376595669763679920407193798537203547642777958555279162889285743308540081556410888763946846449851505778677900144760017593156507573283230889674621956781623777309027129475915109626464345467240685146006892578103962196537309312640126650077438652442560497220920368393757504513862883535473914660889428727111180711414476305462561498014238192878961602232930296847921349675305114448423487820286977806761659686272415805742815772275137628899819213211586987130112490144328445714144460392234859594143805058699623003643876391749499753060179040733943984221011325801119229520974159924953568750073374312938623460986545368422484312271422580345546536695201753396696848446376260022070166615560413975529242287906014857428447711000489687818885518640035985952618085063419017498410459050878594678978069912063569267424840942305009378533977824511299316227295831507289244251343364260092618997748249961606444247571765078304906920263023732353690753239347295776426165915592098855086959075625496651962053162788116713524481125519000641396012141798267502529129215504514934843623253119927025722795657020947523514779515077326918134159170348759311833693727549524423079558145343589329389187066152543997415253782878848388048311952011324466838109907213575367221747303701083544544637695214440443329242042256363315383198988944690317640236411228054276753079289452203289917567439012354352904629049803277128019142982001495269253215341036866502407748032342676723899455491015042098147440814794666087789924926524668602404193445257395301603994643052436294413921457952705646469142655681602391673360909868897043690003556449955199315859718026049087037317431746878566827619999744453262173004777384347069720703231542917322671959491409644171220649599769504831054130386337084060516149836979698279689356138693775318493783376462509577885599947967408011590337312489493541006460813081711430886612971128843679840266190531355997268132459781059273812473954700635431447489008865516397683209875744182274112391897179637787465319751380474930745624686713866265632705189872192935522070758041957319484136242071063359215034647690690342370217672847461640131227597938483972766299207082310363331496131128473925248370729853742187887113088585353406565097822888323263865899387033279973383508254196842213957500167095024549672460486461570483298388970486477117746395271402493193622016173683952855842773659705332505219494524059485256700532666542204735155297184992408503882864914262409671289602327894163952236865515410548571216857768411031177490553209053549683387479894896054549105076551630435746873725927524387145102097726754566501400780630715552628194967024704607466014039706697121184749730315244884685625084147684764080011475419138829148413746249606267924319934292873667486803088032120878158878568021776387200907155131269354289162712043340160611479228856101636459175040361349500740109701739927455128377687540352114133313618684344671925517352948332407318992440724705526063200177797896402250839077701353053757517891736153409179255299788488552247320346397091410664220880798023401001942018328906710343476858527341651667694800053412065355891036544386575777041273497934331320976166522941997881263686727567936543915104672196507851800610429739598047837422631403155294024601206110220442787469569305218735488430321930625836512394262315503580802450628605725829445147839549331395684338092287133846182075666962849804958499915918467187508015745247919823699744568879761778243576703768039075915473010539546289044666683085014641438503949552201870467436535008341985354085783712253796176681017692373811376827581930717848313376579203066669680157056559540514875369404011126155000170595444512941793220823907326899745563751379122845044097375493493132492580969122588207761470892748618233648955814980033235915242010787723373860931055707501166621032739849688333411859029739596941532610840699492836016438956068722955666566296799277154489065599022170653101485986475228394385525850910663604494150469149716330541795149920600238315111191768863644335104786428832747917555707622063895855977466117723124352064489999201565157907705097655203752871438618019970712594259679455491464024486153814157254664436534109626157967744530002072346346503111372022452127833870643786066648696932344384657059037462758624669224417292613028056344263070743303598454093076870716457757512394410021727150559019687342331890990701718990598020377325069659825504001329154763465239093002387422232848074314585017102519240065726872678225561425778152500579178772317706222928639210969403059571962783985439941282080186836523049099990171523022339109533672378502812848500004639459579853365006911156578018323221796764877948652614716523729027619211199534415821747931393454774034350637567973363429622611368620823531308989035808958483526235997938818634931954979931423543914366341621026181045796176502947832778188355703644290624081034513703060714106083660605485914791524149146054587411915062802667309738282608711368142182809131449525253112612875916665102282776466038298545209672335924957895738868248523098922498099840526843864319369597461983818857072599276192887980411541902601547412230346516617165460167033896001970669303143015039528940527902010977765377146022049497330026103449732226208382047920987155446938677565711427152624163038334152972133516075937403119721641866412611899083737210184654238655176515355549562316260743645583456025254560242933217008238172746197266370436426435109271009894176634586436351101891489394704652983449512653832455222491220943522595662840067309228150420099003008006052108210741107231600776700595344582089249537639360692290906144191231662917268900681019419227004122027065217672848831078194516791958808574477645049777308419233750364404527626665151929924834115645642218788904338909823839566607821897006829168211454952656070080482061412452979565519798414507356321824034335344868694758868691723762630111064852150067199704774865280635795117875476936054903288031922552966363866159871367549622109197930560232272315992696185616166892471652622922826208139362289409597511376919081134005926876473749865187554729396804201696126298653764082020090704170808222533022837426627759598053611220174752381210332993214043535830781425530514710870779074693334793099354473090075552291689654769935960921656735563528781737890767113209966041873619890898557477644734084447436410130796794970548083225043768129284357578060569356512697730141257466891707127055523579553143588163439920685616275464897734219698853054787247737689160924939235946903716560014086597622331191824067115429012685811975639740722010079651281211805667017868006097412224229181065817553442893287783010475552524063281270850547625988597193418420769997030578908866798474316224127090889188525127494446182571449465928368998728702910767937817510418277367061661903422454602535542099380079700172294925661783347437391321767033034110328070630723880202569881998533330435351063289665307107957126262564761875429535614305175505693117529511389722878348788104114272018360695308234316707529505005735982821296824005161634150306653172719308168830204768272056017175484341088626242592170035491440488599668246566284732582411715619953442075850896928491668700112538121152051830278297129972814714739064821841834643640958994737886423997018311356980318860990994372180755250324186439787211095741621193968318223887961364600788602636862807185826072213591843881134292682151197179825587692220615398739488600704390754650199308087775008781064263129071522277178670982691950118477343311013520227521598452954731007229460396875792853112224730463395312410627176311066342131911086320999956202733009670433287692607598302534164471897770538218672142034349034057031716732630006304130868788690676376854139919681414183755009912956025977573774528468589077138764355241784663043977803242826077693458525933947340538850569089322877105601205962295138191426770992029270200591022074881751477176485281849182809695896205173830328629089621942823086226134521493678342937423136814419385917418143949447106767803836365081759367535774759522808803582952242254982986056391922275954417462972150400690658979466091864581533734226095252938157358839513262353097124170060564016204483254502073389590447016594109502818406905034312942836327424415659979530416481788106098963060012603180699511175346374004788879623818165001281069368048593046146315556828541860470202569515610645515184843327819026206856795999861363856979959164933573961879247085601280791970536458237647192782477978558875050065221494901373138809204353414465189499340807272083845709792843484284241845324433154920872412941386603969754610565314310688624910150247169072126238872372398683305266728646797009109296042884810238292342839041002923417403149215188360977207831619013089886653283693706363641094201758057667051559796192517088431139507573882748640181790791926936421192082657334480908087701300161187898743319956572866659774013285339702816092070065605336478778687774058021044353378981087440428336301866422973405922664495303709967648314578808230831082657024048090472090523632397235088671816465675546465880961175306577574712006665929943407475122899827480367564150886168060889183098756809783183055907527114162277478309409441104031521336921019451783106556275838159076282636378957770823747416721618159094520664417162846623932959122273837701971834600531994819485141724589236865420249681824673374678597757225665885250930051498837310589708161237712317622575424143986939085235166130259639176674482585550490377907920544040426325601384550229226998866995433090252788435630921027998006636201162954728790292941605269597830891367681650691074624088936486422952993833753008619284765926673479353513316943400080750321041337603589516713138455542464837634919129865226743694662332859063780579293456779708324479350635905378055494469785051613654017586104384231139889418144536319109755354942606162075033136802933042640615877629636348921448648798466659796300405239061906994874690104643027798497872684832785709440286444451770875379905566774183833347668055626921642438938056321816215722780534053424884961829856387327392405966215803789698059822983923119892079542164593315744306187046177170851442316104494810692391766364425392440449401159872250722415710056643356150775481932744609193840765282509547904536713628567300878984643409879527816106191774101423736033011180729213611981912477916597374329759936619781768053096098211681405673379937183605674232426137788394947739069430524080585274626775120543445551549299512947959520140586516988024128870623371414814126068728185910466636990225994228420115054330844205581670063713732880261363602285431875733097513023929561828381605062911481296750748287922478442791298796758624383700424174223268563900148036222950521062585863311192109212385675633065906753424418375275602917422953201271291584322114154123169919415290568278975746145835075117405216736262318228457018333577588209093023915312790307582138415309626648249245224881917781927606090923232213491530966057879462310408539421259600488176722722485303407950460329853039392085523523411736483831328031968828585558491500808797670122780626238954367398159664956599274519510248893374649010423600311419877452999081014870375831922941735225323526498297170710822649293187223121713051560080335872961862934359921589466152650369580800490444308209870824770125118629858269870576569249733836513008336878234005436906245766023871277814517685848758382507694027468472283678648402879507872843117520676756929491759667758883910783700216165222111032410374751466864861863645090388405893943572380187344967274814660101983098145916451272429618651379013007261797527919168312936099751133696046760685956546340475093759043261520634571670038532466150602623682181351166961615222611880845741600064458765812662670180977669644225205405698209844911470019651069423479365114823617754515591591376648049961860788013743142567893810073167685653342135715358174745692150495121669955585845159602146125798721738746198319733248781900508544057467836310638413460397105526762343097813494416099117590669748707652439677739023313133678681240300592781704706425883037754447902148538120094717768582575027528378181226104127596256651744729693384390276372845021856630130035070090631802720183727345013598012483862906179862818632319897221075038651435477070305331505092884769591395589164710177200835985958130944824307743695665209225199677208430128137442376059621489189751342397661448563484958088181356472187990609996749422028307005866370861041847948600079841312058774561065514246073238792989622319685639940644814323862978871505038190245869736953194759403049390727589078511399109598501255977461175044118993156481279602904510698152354315757071467941637491285609950151346303431214219954595742058989326840584573917745157398798716471488043278738009446790516628559931645039940499774879408344399133412926020507574957924883017784922148262986587552985747223621169575001585689636265722482496182618179820618859274834874238766170322060361176409780751351317256452181454037890087028360218382858976165214024750061578506307209953070914329564489582088451528820180581172253480490449742599266816871708260879611978394806356691645090283941802140952268846380668449084273425319562705531334106828458896040827574213386184436280245971905421687064545861284212519999923464587235380450241927140305591866084756419555468162653909551960509175029268369719928686240841298733183927506189525516319026234174954028108108626182259132934057776541246508915865500033797754026826734158524464963122819748998340578457009999306984570031944304690740426716856685195720881818745413897349881814664002949287498281104842771707890858249288940942306706109081393694919410403577549785553204787575705142571115799597605537670757989714009836366356022443485411121371021097720335070525931214408946156679055329757705595617898925723026253256283915712793558650481671622429114420538600332450519652878369286976969312655169624465463526498182068521904597837303311790190242869538261976977163229071560504308583866069461112108913128349951973938738784801262970853823425463983815882425236279192917079059483592364973093147977361954647161680581692333799070114837828206706741862415424726341712213101012267408111162662158141222585713033929765035959723754996565720777959549376224134956085757019035283223549208096342858468747028249885481073262857140193427119570721637697696881721392907093631198674828220079423526873369437884898283522004344151972785406159193721247152159061442275018320577314426923136478038890357669877994746424377950981050401783429664660842379301048812486416728222274895749294041800636842850607942949884184918625847545857914926928405262938408247575751067990260254149431870203190773468026001687317828982752528564595344342309691424156907048334639521081080210705917492257160151682666831047939166209724348413329396773779667117849892943029592848770906541901309936187244983629292899219033754948885908184353016559155264467937484536348282520745501432522603502427053620172426472495789742086332328521626952627794357873240064863504066854524637837355698018423039245946288887157055944446056871852690554177662085101089064378078229212157920803748888525020045223787483125185214607936198656332177622698965034429222673786774657171908189043505497499244724450286320151710705318835114392291625439608297209695962630657454481626965064360444763797162993660405716519883655409342551075147031597885962372834753461792181426878919910559368691496099504470670989853155671179665930565491350727426549203548100881289230296847334981110295967288823746365498480953837828431278109959936110300607417051081007917143184012929461807503570277443908001003254806919259771721104830798837625922382296891147721668119566201389674723929325390658958632118337097099139011132899148453134150959009369243675371878245078597629082352681621702303130172920490522268816819177399896714473637886265262077451152736460587467813450252093213547485024477310841367663352234940768472282326385467987994296866660883216736074770886579890020364504013067149569050583690187787368184295623775330740822985028282966720978522738656342960800550972890175734051491333858835333130334898249242673394932942158283116659479206373385316329581998806384318904871319087112840358651274653894904884082311579191283960552817453279826903764213819986088977690764358855666985635393592081489408136865801280704125792267348037833896682120025954858279197450082016177156824366459312217126868971358767133849615708800226710029500339168863813037092019234275067144020516689586518084697002289603246052515118762686245649407065721046331103992514031409320508213880989831219477477505547149828096757765890491464361052586357280743892372800939941089843042694135911356201164833002745380794764354843420645070386098153416565254312070672766486868470925231367019469006292051746687109532681222665684114115886283427189700138926910786699310346393406944164167897598743542137211162867940592278850513411358912826052744477242577571177955721776075535016931708824659537566096513234481897346278706201195221647160672303814434208318238126220878279629931581758635312570311779504964840071073243376428001607841581665623232156100275976784098926546315897108148086517351174493109027637099941955072371551353511102299490972357212325606885294231024792340259342768614740395497464716725827503045225714533520674177940638586885787693718605148331965941699476814786424368922349543548739528666740685588794786626846674296970914500319733686063369075413856944868240655698026668004493842261984248198981460436740128505764176715142122007289866142909065207529531025273540848919695154974039763986633938513266566758414460620914778136891051910811073613884974146979029403592531996212359683583481604101133452305328160224713698697921819981272877309333728172102290491430019118139062836435722600113841950192095705360647388196014433116765743213966453551830450195959584159802659687585977967805782761475662051984623165150883968078471546101366079996223988583525051839325022065895650611886703434259646126009206641233845689777815494866169370404878336752115803849732390516678367626139241511029715153959590301855643523917721201831267572314367718131001353730468105998676028306420422833818290883326549608634697670769286625875096585534550967843479514554617802811335634494747238109055223967566622728934550691992834601920061347622641364086372948512596618476809332690596656288610612189617677006668696888606516157810972535950306745628073396099794686931412321240838931261059341778511812186230131589618160812917304918143908130941862748084425250419392038408911265647093526160850434310396232025709388010927586773615546742802376410022096136760754136111211619453213383909821067412834346260757177763951045633661777998641737627850222181427953026757508367927348226605569294545560000407625600289100846833270937810298687981376326067264501197928670203764019833244651740164383557461720061779691936092541283106118817078949976335830728889992683966793151062718837779769223194059072332447283431581057666914896251521515668745477483326900636609753295755552606250181628019829635216767337378261293069054973099505394709192062165643720365289805644128174795319305084387578871175904736907045133433946422518847410247652309309668664024734251327619857209965372980076034156099992048119800097550997245948759393386441404106967898283531606570976394696354530274867120441863260648629277687522709123311954485582785340230649627719401147836923202256033644046238365854883165508288123739605126636731774945840418268470840390741160097695151284642881813104635502197881826424268334340876063766982444845073813171551622370661223239722042337871209719010635928176165100226004945630014620861454519035848115712809888352596756931368421414217345800599756369038590443741668757822244420956949238950672294766032911787162609000508728213757686325372917923984854039635370511054343442284015492018939121933652329300869829537679586260808641206874462015399369953915621312192432796207707082610541645505194708471730635240076283903347957186985112054580119407252996489823901077666268175642234852872758533992356010884647590997993165317920560026853677409785512737546194446132634266697207988400431443515660762444957803682959937989485967161738107459865429558074073658311009578693338747924777217422611117659600546233518428914854136158010473271579118367839693153177657940859402888005934821591378591534230038667337048711537144035449712913161736431856560655614366026356835808745162788926251612830569929039574053400405861956849144320749972870093040814565000609385393869445407755310295620344274605588634793336830294723643560606751338967906612280288117564198640075174679192670135673323534668504821224741836870190846729598803474574252911027554017673616596285710483284038811721285943951745791075541699242935832073553909322727054940954580372488516135299607970649986095267908733190828724784304994191759107985291703485603769717312061143754540100208672762241193614490074812740939512482383400721083888372632035909891292376737682883372723250246088593598155166283597411436823610670847844565449165495979396446477969244346161488992628503719838571832121140308363123090124364605281804202465233027787309204554848143157621314677284791320068492253193061006012379506808984587715496479093175532448550516100512514692259815702358041499124930854939847414148528816013856803221278911774793661445280386221943496710687773798134330226681001822962460710143790160290472039688543011389356882220475673116768078138589861599192160251780834336987474970763977746435716291964553682509350009848311284353571618467276446493548658042112552573196266516403736797121384759130123875549153866366935503768373802799056814108876363105741365380573857212160687842421335980542671589813667130069338997241281239901069790956764846500803901891675830764852853462580335165703345045105066800381845527967731409772407124851328223124200538580505529593179075498313155143576185271920352520748790237343860793792243627414779001363324116618518387111003786819681893033237594579082211765263571425109556264073560396369892955771692425834797949935694190436453047309140048723910498835527243816102474213508483982504746770974784124296787207917800283327242592899975697889506975961378644110380847107422711736176328216344619073808705279063369494650834558678435043381641727905833546673619815857792624422697892023260090282582353774834742444762257667437084464639743173597041984521665228238265056244147546696795972796428294845521941570944807836573237020469097375180790002334376498164369374287662856598594472614643342723213769476204133319988899362988350279316773418162993699792889304263241613034186564423184114233913535210738494900729703808479590878431139858205785406218994873533860040410423693996508234332331346138244376171710718460736172970673769422408438665937012681394900257542535139838476748816668605274856329784234439648296538501247975886855002649296492117795135525311150377078518066901598881350481393776697499806555722962375169652506977822657011368434185874761335498258027724501147354817281468900007703366421540307260485299288914151543212620669267687399199911431031264880534125544828368027325385524453326314844279596482421291484276795482570975081979282747072558051932469304209552125378645782999071030583090776147286068511874691399514672582280784847794803316950338848907789388117802787591609275606077993384941244169703688882703715131318414089426572181874798135148953693023501857277056747340665896926473738199407679756374477773290806522636928536114862396649079625221180086139474936032234488477839972867622071437296775681497180739926957306195497258878004785560166413574879505872258203232868473540709584794145174531344952319796052608242230117137529036261040507662578735707668842725267575518033732456117783234584969536774090471117535086422851865260674656291053355760835651999616916122777461353112611310331363246653820653730664170656199992123499726128067972503878280697893799347517646409618871165884436738102342563808713114504509048966415133982122461279168391624469711374141564115940760697179508112229956139307377681737640433388890579107365946197773784513344674206886119603044737979884500965081292204233311763347986779023055845104313789697618839085542929155041509671802687513215264301929852236441248886381855389956181510557025859468798796843952027566391407899771534064549995792503787965995217415275537966476145966656452031142400115139893314814169335832042078403172651374838758014580120613949348333786016998354546353811843110735567526080840728176651170641950211092016387785134893199269065288164003597672093383040621903988241140241689802910987248075326259478099208388060853257884699794360555677126599516858861252599920633527135957464264222687148542634319948344357711304901325490835751720756475267062736937515470019512709152790102296597228294014684796306956165411234145673105198577055838776626902283738428177390438219925675666419252684724358841000993748235474890949254012265682126141755165768175592868679924156155531522317768865482420403922593637363121008809209911675780216337700901307620494556776200381627190373130190399402344719727734146558107940193678617560284906055597607153652258698621450706135154498011703215729571067123687826260693005568872221928426266110456416749528754331400224410935215016056552827653731220565950201725152854549035479734101259897704218637644227591045868917099430059801985913061508414168725714350706857204227215349326312867619065039891096473911779747882667369205844202883983759400352981530205169077422410635286400877148481096677797151326897663225293430586459775658329191682336437021090604539945976130533871039998015348038968596719580309170603980374976557816693935900793098914799290452549355002552050429121182826664825959795179824008710166266578514595419797422234351382546831947851046936912975795448760989938700862606248179424759923188293446223231733056384761716487202002540434367788043490214938471481510219507863551715116789207582192490621983108369945934247479779369111516805553616864235886673411952387266844168373276334855689008752293831862791303540382019136222823571626587448308156142096708413803119883897525357776234529829877667655328945195251754203456132499175543654700562148410169114470674868258628818137836508947554945779251011857429496415993823024391409419176611015511708370663444528902257220440720622347393201786142043368356548122746024657639994833068543172431303507826142207355808350002590025967726169298108736519940966449364905209111097332621166677048317025892956400283709312492121541274415674586092862717790242456546842264456486446938584206572255537771475302214169568329115709533985953611919689004819113172019247377789347066532434227513976031642933873190197609778992132290008702465364571401794443243195337044377435947847693186328076944647774238883057684668375233303912327763868625679255605212585456408131997065855351554202867373409400529157484015981621131327995060797678310262590281611127807863682069310608245311423571211911773720983984062449900627317693705940798974553991849831474084256031238891811346599848702335436501166271294548981290567473049488764237450459429073946954894616747575185002140346337046850538568657041606670743415265521503260316029932267415300213845889512700417098521347386624015209934466204482927345545934622981000223757538413650534730367639263459569622090240553615453630685534507204151839051093151955159592166696674706893329186004649616864496352927352634593094458330316924250119507903277686508329909833617212460623129500136205953071800860846539372865074340528354883190634989255474749803567509578521994644456130752928137456246635803545316110786690976906654627701909040649399650973200457458065038855339607475792623729272878595979657280831207848909029748236627004171302173393020037045762183134111134118250152037555996834013256622070924426590202230875829814580868237637086814397337134658013074907787964718276775608153051899376836826541624231845829701053401741227930104089524061042927218210254998120000055711637864009943472153293847822368414402492369581918314636760529922489032399291916458365160713715473107098171205035594259263054991111302987787005801567464441127829533411036540586800116776960078630345838017812718213758230078747551840342835090737141417023361132049961506306950505565494812792695922105238120176656722771237497143268489874753201411249572807961383246835135272834997937849973269282787584012324680654836645521982505558499781298823045689901391651173929639774113609294787436918617292848456948796034734899148750572795816062486064637726843971732074306832499735155574888559529357867572507012150147809275602707886702413910552830357503696137796943514250630537289043974521799505091724446400872560095253636459759380001496278579557867176146306730933052484947901207713144402078066397676148575732016171941560288753369626851063515069862798023590992099458977676126834261283158993204832051436357222095751363126838889995227605490419586499126106999652861100432276013696375585533226222274498893191261851866030701677398567955504623722890994210375154950914913716603148181322106592784779751382254518853122185318939669825747464770383136198107675841399584216618556680199428217075898313776832573166479820648636818246247272532506489908754915150783700535771365900871780232085189375389281749286615126673405819581617354488596671231639161989422763474948087748203844359287391332301650306468363836170022301202735743834027242298254816200033970797592416545027516222518434796426561883997913384876694574835045550748904184477831542461040699543525638902209287230550790897683980978010620645867267635856984263667346599236447177315344950213555012083761740531788618982601436951454251620182217678279586342953599559667021118145002202864120759403709095914256217504437376198548819059213380367164220265326604782779095304842688957964802451886768464468417475189232141217212538925027324789505487017512551051657734573624747536402812246943085428067132334376890092202661193643362708583676040646131926212306750012735391809617929689202620730992748853789146066819195873857927798462182769486541328382928638770639325487626298293938038130058496175062490612118828669789666827004220833229419477555428023537457542075109118940539058151631364218103930545212001280512576645057034338813365839081573351110309864277163306647901965218635403835706302677264525257811719217812661125498256523381981474816216093196175388036065460245208081353319303676826091139591309912207637787291954661152795820368516173255198859425197393840327511297824620864919974737152268816866023460223208765188289571227425248562168168433833735603652102519252644760400086954559507083527036056396361129938937702500787078023321444556199729018368226924383179777746860529568793978337026606698188807297089199609118762057432242908874932493935610205799669570423206543568717442310326746684909767866729450992964974652290866389066924694267413442053730934547803288945288586733911300854408964090272761115966189074145763077568831361522185815704039406922268755415845754670032991005055971025253789645611480796675035371862924415977219554515182646336642492415864208540797335310958601310275835155378721992124544453515024004643791372667935546655925141952586953713307165566986975275278549742316889189727639898904629122093708265175773239093201813355210690937612540489288329676584587748499880716800570466067800988883275453258953944914114997360931079110069186974462609215727760773748852706985522671855334415363723959803706703575229955259364920682081094571626183382251519233369884810972204805773396239476509031852053412455969780589445426577766069331956551616871432942211126497533752551692554042224031181508168879580886491540412726897137790619005289755772386119160101681674546591599205728225945498673846654602989220133482329594643566789993276802286045312688835447635844499643491595204099290588943849369746780165010635980282530367291416914813737972273789643649416530223114610366546149273312860226536356125441927124491486867238614357399859021546137545842724837589727565735092076809110865479272742857857194659546852381485821589270818630445348307505068019562761955042148024997962442786126361687532959447518363104924446487159404274894949588415414585290070257427312854305894629788968246344005690504269602546799179588753898872397927123838341453310168348279345222288030407441756256962539122330412631030022216413183680220573474697111773160287041854265512620955907527371600545921245112679418627856892339267766878752325956909236764432136810064980126855225467218151472026824809902991940218969876835314876241131187294799301185570076450150889284276251041103803692197897711631477608726075046657194759636253883557231812093561985074438410241287544467735768036454812864449322527408445099084790331943976981632027643702569375569525222699248397066851682332263692292467190977079451492515019931262694012953147351974905734564065130090110748185871080862709667274332109613732066547439458550756398449621362747682851338086978373165931456470474131943889678211081839170299111620670958292068793463649316884298375389171392763611771862204971621188182150593001720637126555091509584147320807368681685056945723570594555199756349887903991482233354142169550222333687629713161112147001730609740074502466274504992127332433611121076880539280521081876816274406953623821666649507869265248938577183007413556770601129785882149102865234806240588071277992522455065006019421095526546483345848447658962471263316110973322556975999179639515980492147078816104245395012779402802593850400427385376516760721187384864397340921450045276055472857921748118502794681971577730445103864102105618217906328243627649490002276587804585788724444611903157378423966978139873507093024164515403048129317115193926110053767028586728690644987224952975224813211827868221047136422586602371504121624172395236757509481531989955498135210446530456555979218917614024783593292740501462286503164939281535477973816872206697857469466118610712013548503414667185628968133488565887702156879228254482800119315621625284309192167171327254196222398054596406263076941337641976355342614674732610242688958788149078330939830236069017563252224405609604969255912128616456603274263483633827588160604741846498170378966346479204127629519540720644995127057107067729470802880641808072418846327313168717594459626708013078981333873030214788819074574707996534213252932382780884425553512157089613477287425569777234845121634377982718107129135222907448696019490464206424718543040491834971228296166708562885765386894827119885931962737466965211042005992945810549960743214999737107229259465594622327683393896321449855296143955293777597471098616056692814211993369057773264030507736097833325647122457212549063396827410057788185120565127378795777072939661724020944580120410888076610408786794402488835571149558364604138670486688121182527595597788587706591416311981237016106579859875803634184457188769447078332262326754563661582017676707653211649369634568298355440208781187376216081147959772597841603753835558634864898090495991093157664544324258536354351495605051398691172863051170499835100114319925155553617837657214500910082964719230645279462915858258722531956812255386952310786274648087694284874282160589549455427836828758735880556374653547968618884063750221760640432309607528176649494367122016231356186696119685110262267522423835315412615073915437235491609835901550468719425855890588103854776024082481340433684354381484913181422377303524462131146732414329683673920797326103467102861634367789334318654553139770265715021183332915405258018921016586556576945163359683112929806819780264526111110192927850332349969593872127430425092048117326482728307204490443565355366365800943155470880341135295880604936412753111512126402778845231608523826202532352398772857228063786105186467254959608654945363849401371487006852948342038304093055672424782041794633468964161105471498778595700439319956460868505679271573449924576129760689547257967721609689834894655277913898523282920399200935996546538521282784492621621775160700392842128584997279693763757611240174318612779633757929161474460575958710277402739980554682814927233008546279683123776919243631398290714873284857139136917326873350543286195056907742427302264045578888240633126440934435370075712693458421925302909569280126420287541192061196343686705071199274440869990182022186998357766225806336031342219498752517726657910873261312105728247057590831424118090610751533627558405557962258656058811055057839990929599972760672440540529987533895647469403635784555500679757088479432022216710496377636111790727930394931836719446284759325601441391160744467180374840524955073576162714999509106222735792977463163549547532274854388984863863973241611023170926501382525681873259704993717599272470271828101960927317590719004637514701868749908881980089779360780568133104844235696658188306172603767496326003183093003583844028597979532814857746312070603204180031600730639964108394113146906418536451437911858158560418092957394733947319711244899686879433601051508950822587008499677451328597577795431391717848183849046759272800631698438891417235321972098911678321436183141554737783559136924605712513080341571873353005730531815743796287848144162904640719761140381465853797608739296530996977618255482927828356946258961182286471028643287117389355802225252306807886615861227430474482207471190003985633319190115452972338331157022143618355155693470007602573516712840634148502003455640132728505290504555368635693149106856609297682374324370876091026356252728979046064891948894179119568571597967988925648698738473727596968870128689538579732558614492176825314720525972855412122237274930396487305983580612856744452416454308721253563976191231685719370458110529719257367300567509218165370258339271611112892355683977995920891877409613937540158478692159327514770046437270749512005014110557047624176093011311187523389440711229582176026705682278078083971342037895600545243350298715570320380198468120265147977665436515756908857301180392638240406695070901002738784298981938599126096156291192559719185138524996815732601535016911829545525202297397221215027338100348986944240374534359829543586552855229263414140272504052660532755422272531284034911616947064705648013085881227043165308297687179099154160460486239050074483832859048390024786770409943931572841975868274031082821290928005502941043608729369410280725586092437557510849966466873166606354198179153522727727256949916341005414434901477693019001643910204042880678435045444373441134389660010661070420324591742313826616471058273758158642894376500523763393577967068147353433018291435580888297020468282485691804402450162187212013274375320205447042364678638348737491819410930566986078729398655294804693236722544471411011647463927499835365037262237043397206424313137023840628616552100301539298713646366683720343370124742047567452256227567088530819232833086376335576188416226056772053459311642431872660437020627170548323151044779545913076854507190173416385738870428757667468909212611291035713043736752500400092033588004542377087895667741157696137089796518789614359427368748998329857288148469598962397566573883834332665458140425787667182985332866334204918460866093088007175274679196829410401038894065289871356846244824593688937335652819113387009785438820976199307091570722628854249065271833230651168465344341821522565780943037516542906755984356725674350663381374442608306201511378134573469858168370771104163483769321866924734149256333867169230938647593295729584141772445141714071497478232365832833609433283248038073146788763493817829531925154264514911740863608610139796037752235053441295822950042493972873620236016621958414841452992523911495817568618185213744615709217669024950588961652700162803021646666065785002449609075767573684253443390109413921152279858451281670449378493869061241682806253987650697061712804723067320519908492734362737648908938141758146252822276995819209777687005934776241162224786368599605356960446079715637880473027363994816984644327269760150156949939554067792020882413439940478548229220921696877229059841183323874989187885742157039515401155830329193206760465880244728475385835493478646655668355983665108554286049026744467727079649337199886398496055950509288140281765282107932605524612143191782110111041697954439999134166109655259984713931694375131747188321391586329038452934448253407438805528634762278459094701670810019338914285302230912772396696460973550580100366469159394756506596700240700095493951195614254959365183850016162809986423926756677204402252583521105497624338187932143032439439234469287351673253093163749337309412135487519753151457013406673139608702545882970589071987553739959492009002667322438363027226944718291681134252035941830520803211487529666104082300884127202400440102669608472089417422582638940455424142131474031357290653766544106276660185431148268622274136661836916609496697705459813471671466707455809260460856994104434721272486167291715150093684237541213288036484902919180686792982641734687206669465254627773291693956418273055410602847516326651346281792342645893898336963456013894761974477464139943808847304663535038316607734129639517125484042105918699452755030791464026912091600767072315574984222342696901973129346713338554016556666446144230353630939719987236740444419623174252365302021029451604377844352563489679174694541071072456708769479105431638530671481880214073216508176284463941098133897088796649438313233186593975936336812367245735830663310395809244267310261981186593014180192412329386292986713240541259398291297706591981611649238445639611609501157775707117744756844277778480025259282416204284692308250105189459794543173870288419582002298621430144499383397551410411968572696191981892141974809858687612626352998288764721518233300359265043365339124728593285684239728682371643026230191659021468736078113621709775348584808474197450885261588239965052760518602476187244718807764256903767297068963727022898228422463353402028004986658619324469367820864333767740891094702607342796554367389450682350649742199775652613942942818070171494371112163821965386888810014261408080180917183354845393085924130980305348235207181432727680266838165074369623944038695686989464213692562326542127901910490030169867614607064429973469963173671580090856641271633217376913137297398603126226860851281180711750766462820344707372737820020596367645780002559459105867650807032407462577737924109765184546130432053065050397334169234564230767354747170543952140997900598421292388994780710849874161864795045991876193574518019236921827796008534921200933481772284778810506300679356668788176775998455740611024487582806221916587450438826197950768534293974558144313378271093600400264816841288660810574817636811111976680404079680543259440264130009535031511222482099946228093815456705220482287804100155651056436218306488945801775969485455401483075467530167988809192657059237999874153623819366632759791451765991563106476341733675094701608014745572152262244564949721748982630927859046310717299233648990512807103899375700010590114974098710518006777037404667816339529115033244187626800830343758665015140247539447141770141375786088901766644850029629927458603482642703433413521047668822236837511930810013505239127790702228893474186137366455700999771406804038775103969781148609530323995914456971939827607051824015731171336711943855510571010692234211344668426248187659730468284352052912122312037574348457848936707562608317225086154434430028260233642817841914692302056470447196078747521071603350395191642917143490893765376526012962929390780880269454237787813416004694142690912208299345806839956937540564879728902971345561779458415781992228601803516304652624895863286908834222403588449113781672874442911392898888632878202784960771825120207239330010791245120568623044895112825306857278010919362668347534029315252504482522137120571371737491679543872054279227182901788319568684818067525967605790402802599746020894374620654592903407753171058829133694956631099073719862934641325953154799813519237422709451690106655124722322769150041200586736878291513069885820154148242291948959046008291809234988238447377634234099147869499874078354313345528949307702200592540797710361658774746146388968353755804949391807991309725385549677823948780030555965901536339689683101691950641024885305685889454255015474162480238170427496496926516181966157842105912279543812284725296851841320870274913485095416428025485523036847955872695653401470535748074684347088031349532475785012320614838453713675613319535371920300454806564695549783773348752681943341241092327083997050079205585376738098812708132254458661472605039328158956923192904901206324146454522897709901545255454102211273628167212541599167364671908639879262267035091485705178062807990094314177702879698216802804622044801158077331686103388449549209463268204152368609885721632333664105476419153927380520567539402124289298697098955454678091475256125468753107749207515465862164049895203371862134595203611391721475246874778236807196583311118697660465332362031094883400499587441356754138316908874286783967051560467279779653248348788315866452090329917979345194743708522067396193802985782787312892738003123245298277133529872433109103307026206355758370998599580446495601419869422547938028397534026265337680316015998092488815715280699469860058162325199332066095613384830994307090084326281038285082676957586713187883202430837376194043883598925884892823209669304387026056632447278539026980447077258863727880920996991870367348888716433455123843654629247398175630014576696532344942182329799466930899991842968444986586080942289353553750903791729436102311337483863308211158675967338690694287820345396252144987523164464049768066280993619656084589224159825877633246879673908521395095650017769097890625607320327303375001992354205735588754336506300257113849085929726351283169975762068324734413293771558371553605338787556101756406529712813850570091119952858546044071901385085028455268597492435558508885070342593451885048247824231794009161573666087067106330327476284184693915594288910065944957563959207446571605440358370298102995092933488870345128907591555005273051082972300980491867647580638060391459614849234475880505442512589558429479331156981358527531481576482150357010967112249579264368076691390833445770203656293361174735956644554947010865181941511279178741945289797234851591674471466655270446432972725298575720398378943922775057895945560252782408032543172605326989011352486717153331274577796371911555189500083789302368076538962916832079278679344858423508637522647258063946195106704514757785135222881349051170675052975649883484818455163482870934375519088332282217086820338418528092937924960357011899508871987732902163752503337597043545649542920685052896590949142268753092854436791647219915476061200195618058174190576461385758539396691131801002117129446112059712793711662559653001058368438089731186945495172952035229204397741099217576391994598010883579299326933528895799250659351124185223684105422383844972943905857503942259998985931894561956880520193000035386372532419807716420513691792488170448119311934242229182450169522372154443413591985666586382559908131705561668485711055352716184112874814727961825779254435880506652865509540621817186537861763710601515772577364695406933730910206968675994391326501845144225948746122362518970852141252857433808576047034162153688722827484460380684714452450035406217980935232030007704655123344390459508876190550700104035845221983676864775249546348878335631456176316041894026466080025930622595759262462266011209596466275225480887404537396067318749119607396749006850016053699286025860906497932268962169484028793639865181488698171836638202255827394498219577033369024842998089849276792596195823822492535148103598940190416642981127622281822503162753724824094751098430316682630892984614940777722936149482421679378690281039377841499000570164913829388602927812866685240846861798724234553983577646127152369786633091243438023708567969700700817213356968834254054823460453308487907825745724090649988554931421069457146307345464990610337351710812345842077326812855684828044471093172812231194140388123065387471784136792674108802622861992472235905166165547496496503079887949592192026309891896207188497268865512343619806652882529971546487972715231617590328332167782030266459770784908882516862356003371043014970439294863753885477083009718208637306598968719282675750247685002176786180206068988701897216014314913783852630611546455693450310804193973431809023757934410721365078895695527466561955545350995481661835813808416300034621322181431381060447796075451135222604992877568623322841155440696329272112324947939575514971186512067564783723240433309958935518945695643521984872712266326288771586753892558880416947923452732525443419060566919279829779293451041615673717420292265101339089749764017542338378823022108719785572406975488786093879584572387831832028023040329060905998051349961919081147007953283760207636220175562186067157016488065018235459322455966807351295444963405510048527965399688242647361897501578357682702513334088934484441039846143375219143149784809362313970548841643989376213460124097930784117160595543847914317577600184478703675512686003635529897278609432053604042368962244106449585372749566792256349501246017594720598806109669413873335339751124029807541892147454927776573763032908082116154526335472910625133091945139776681659694896919207327927109985794835784538273963299373413098924539776047156718507391066451241064004410396761195893744168598411904155449115429712605391793621784746656110201377005813907566290918360913804887459162841779899474382286039526316803886816368373071487934940331808966307064416553043222603295892255496498810990759640957280479120700127440032253858213275294827687501974394784597796110807019029107137977606500578456182506743109038508375783058824543002720654675913741337659600553372401271123200745410907286222039203089175170256289083077146313126988282207330852431806402228910634898614929618941574179672437176410505151251103447792007045163749556319075374365758766546175936296608962348580733311866559501974215147777674801915002452367816953758047593219001955206180101873404617154783189966643906383790449238585147479873661490747536567478247365462041426845990889622880402768842627008590875381899625704828402116828041613021221223333839084240393135595970649117975294604191374297106564408231148950906357919202248118683259036559527614311296670924192926817922360662515917709221687493986035213483959774615300212984572167501451527220600674794248901784976327568602290953517138404213738323469852665827930818259026036249106673409278859038642023016502104900873693944324379583029324942821256156683776464849973309095294205623138178195357087031377497960970583067037939002244933064031161954884126854465036819581535423085938269420706568673698092987950586528763623345168557958985146745187648208763645473628982693102308535180438218612467257617086685615052495138474225066260434413256964308702086192734723289827579172524194170867048667976283088082066017784903465424739293502676156545339552244608802113190348132479870334483899640993432831789452707976056803998117135913914631909698781771192820618529134061558607002231366931793637459766757209390715736460232632267955375511431816536664687254519666353718080577543810547588296395303838007899963730080572554015075295629687428180636091786322957310211510757505088621638919685934891453130878952108873277879249056167854653299359681690691703865380610158300968139638678835910089212517884463251289620138737099003564070300088936508667881751923092101324902374056287023734805067455996572398299312068469086061901642467108846634071559730139124288986451892348274706870811829736488109681597656345876514598361281540938921051849095171274293610280754997475568163305811097374338128323408736555137474491572992013696038382005482302567533560274335780746980668830373110285632171976774044676292517904108170721874185862827457213138317167154979832676757545786502860753908540463063993325029057154687128404516081537327815647682026453468246301030869928388557677870755438326823121418943288789175192185688669064023227552629028162427382633098304277699862730524270270041333990321648706455607250574090504761997623199770652042375444370106829585780234000201800073246375100446013225873096952858529445367602162112976899657131714921426530384717409604761879480040819181617021999540581854972587961705932425644717818029234875467644408835994342254624751497385019485592674531537752163723939728848153880623598728232182565472753689378827367133191420950348023664947365596975777015787524280498317771609578472086736964168007135895158321699632842587689657737000694036744485346212369643355127606333254173257779343541339269047030003434411508692632818440215091684943302424737915985574210504282500855286027900810987406128194111528645857786201678082082109526818567719931492222724643397015040049309447475419976453922049661429253029230228284284695549700800876333696609265316171254687541529706834620904674746158664954210186552404934345536634601486797789803863005316080296968610412642101985824374616016242148699121344880829691674097470621507772788411358511002274062541517750295526567498871354924553697529375249590354682824050761429151625154344785886827621293697244650505509244924916762117047965968463981021868207417108404811911398677888127691895698730357853017019469411742771767568179547238921670106697823497877536211909094754197955190246233033005949107460680762637204267266501501265807332976302868859925726782265874148780842516162341097364474288439845699045988010855112426625381958398356985066216500083355967797860297383301450786342509862381729185971218911637355208761929152164056335077085164640791591476798174362317265051194521931061394962813007618967447280798973169572039137395286185030827470757440835237568004299237342915692232777108950247850398753895342214295474499110144263072934648663494239048784994780757102035922504426601346102991888243355933678717312765236562196528841180844762202174548205593021293616920650483765440130990737420388531538762355998257099087018942504367116105946111812642302949588058694373427066741351848349483420825180104195662935001190278761902270293324620291775480349205517570150398050626494592038044484498862587899912915230812016693947003313097215773804999678242719223069246182763841356333368276250998489641226434974053667699009398172373618279877465667033796837146188335482630897701291209428727383926164103088123283639279854605938218159282311454297536638066845010940285282824433203980138821844451298514201445837470805987954391116602519055264577863570380154327402090969043859413199021454799336013993973297929251455924770922512960051728304139236012098562328052432346513401894005545510495005688612968877107148915455379620080512351307742843627326550065104323763027147618843950322502556299386465323648677559058060422021809578457316130299605339906655892732477720363276032363485528447772421394145731826443141955992502539239794818841657217225722409085565178971733770835543960507484532456419930144136242227446194379618890729087968366993971599850287585574084407685446228118668302852126891282804790768728299762387785989162185009999962520497490943337138125797600554736133400405246975336594583440545653263095661196508906033887443659951492414627765987872430979214302079869669555301877829456955610363975844560270182861540298644850132048172202027321909577511688978595325258748297067070195784374777884833511143889527506390386364254808937990982364332445064089805084990472740241897573144145873206266866023281605382602862911988374840587955449299450304483514798560583745769504334042625750879861195138201759245558532624884360548230906448895184440617057131513997227425504243839383891243025172942694582008065532631580042985676573252251606355437052802183592389349527901196846180534683745233124831974356781360127048781834547120614663374204897365810053010927237185846954205520982196011332105749970469475265293307670625073523007147777709964937560610338833026589092738898083882520873873303108076758237543220527225588382362414124551422402410880317490149272890303603914111948013492175494300254596428134725125554830294605046461993063392617666671941789939087300125363038995653465998792516528811732638850153823737382023128949306868327440794249406283897768765816666001403811284033015247450201666177953732084822131577874638830556100950150092950791582132972106128006197588480211402493390806402157811805648531824666294035228000703817134103014218682740914366658975746667587464172712974710388627615433668849985032210039260327055819909988148708451545128343609287483618205812667692051218929555153933709834666359634782637448903460620986388443255862582344303807931885763053916247314114778297632622041956098991496733850270052745870141405613302858743597990463728837228380605656005155145789361389558802546257465843353624429819732929329505878714242048443471815058277419164451102332290615077618527160642161537790539331573322303516586816048426928227750966519200851105404835046105112213575800914348237710322883204877750652609949890154862242526903490264963522717233479480631874041955682079360607794396700457700627526931236695190101866767654073273474581819011970359922814063763870929239857987791492549479999737808705743638589688029309292251602672437479332092123345615798283461327651123697813181815386438089608567635832846965144411379935525268555828685634999086751501532527647314555552133995027561212496871100983184235189001985736745418048833094582514758748618736750642039700207084719147596589954337704516817007130983110616213189531051290857879712447503257320275837954353571068786252315526698454909257877420766441360679340039350202117059278760217255201542069603067256309239948601183920422496464782286727628558970419570715484154700723329832755694863112456554023594160081099300003224454430470009579564351688380454564685199853360028473678985766250619273351791434976452891326276205345864154429123873641144371725617513877837746009839564185892287430115628099661239244860021126287209514408200636152994329962589319065699484072462739945142448672748814495500772980312352497147324274001972632604417798288863790991672461152897640106851169551295235961052142814019597797044977469379423214107789897585932873209536748112197671859301981288851591670263545227599478667039444198144782960403738330676812961650357986235416732805002203079939667955051303514203347812678924237051073834161173298204862353835617522074407890957974598526253962603175158339043830432474247610807496227129464744822429815892666371858198548690140271124185672838622756789054518534426938749404306324717001479431845167970930679258343538963764982931363818533192212727962231011750908220713225583315854046408116588644035503050064478945911344990090148233954830048263920319471719032427255539280560818617769847491870644780873661743921944203452806988444715105237059319778094658705087463248170825662410384843024258058732005259162858531994236434034446932144648976688713542538831041227439383938060063864748650321812752658118160138246525392911832725147912492109582692423165870060898380114996543132583625415882908867213456855436608529037555047908486789372224864180826872354617522427859523735405607372116323835679080936635863675460782880544044770868536310588330616189262651910704807617924249663755450850070215311132623856718604642500793044307111271767979990350620148473110404978719036065329842555258870330252387815048052810755322718119593324919575424834169338675863784334865743913329903670902732529739317240119434356345383480124254733028273954682370478658096844502590557396544857533321425510058196357362779279250839081683811049375998837071453754187644393190066456821659941824879528673099963158224397330659225812970307439683789820426819786092858269627168360950497720735652709831404303851220261969327283615393106985730497592105116973096078224960007114239361579323651825932181620217656185919740475582476619339186268626012399487469734090239309589588318272892608103872492493485308676005748334095685239889702517482915913546179113199841132768471597258449057373191336575093536322923556537204556890246273690546496556019269886034767708932156618714388279280001077807321682296959723681487137288041653609167366291381825880772284129436334757388534391091613688728800496436961634881050922948319161004031148858599543618152392857288381384816970214072090354197931477145712028175972638315715430565464321408153788991970616898019407366199444882729296890435656427566446752295949654773916585152013034913004240030017080802328372379336638972714486809528140369190319159339987931773878167755123925483252197154056313607885055106531564545432659764030160555168814633098957496862044038020541199931487803311090019901271000864593249013136910311171214549886783413784597910173933010476332007890523428367824656516331116837377164447951003484616448932698113286363606011487083733898386281835019454542777028130468861375507981061523386586866714642454458277585085114564543865453404810430687328704266956911158125356886411645032243373832134537934182761802362166900161570151224912737879456267119361969399531732409340093628526553411366547976546859724305319587907881138150887450888026881274091064612547864148782457724280297198186312584008209878719740941525817590295877308782980877342095714238516164758970887959023594944125681244367354142624383519291211031490102001357082987725932572423098758966155455920378849066094495949050168413222729481133734656434979539391173224616131701715813583213201851018641744229736733773056877375844445853534638822739719172281985430855342582319802534790315478046710136183391107307569499454630625617308551208100416840547455972856806610746917631619895884593761862134564081208849154147786788170154340229949545042292034706476861583022778094841272272271240101789676431557866931535420730833360082954645191172239196287378668311457979155973006973933831182948295750143564976544166100241825940934836004202949584408520269049340239362261227098833402091969660374589678680889762551211328216404833298633669074092116423888609693906262386437908859522149943655262387879460727603817019762898676206407737876545776214026635458665206138261481849781915242184669917886601430018839255353394117147734605491790620438804990429834022384187584347545740671623186049907950135092548551583978696684350096353415126146071848958747550111218198087542504574246771943269774250493830753941549653146209968055199133622316168699860362559231081045261597390150220044043524819201955005458255100661926741659619087286448598938728384555181959464531032780430435767166754211478819450047776810644883489135744675776959516028298572912178248405746169247315877519945084778263677578388563809677275591832173813381718313357217848066607778427909733336795755754777833220060252890096411628175428017133098936479975959518280198387545311064625135066078532972552202125306817256964309633209676538313196121564884492407323552517451397648185030229610764888600753741223122770299207633010722851709510558422635495562712928494733253026570057869694779843369156060853632034354650835166064179402362620753583256054564196695076805365501724569765109000792787469261256822366135187382336939847998653706845412225406261153695889785491969541400712205810985375976677404985672902111152738451029844702216257405412927780517417405429569750892182111926514266971924377685005118658301854129058530834146666962563886472657729068631771099885628252892308176272758691100501041074984345026337996524232464734240186834739596629304094576969664072805733166621573045268940504037469496250954173399584783500061173559536709631192753874299060834108673513932507927672240823074239896991311015788766704370793095064788069482084841244482585057075170517763422982041515773416934453310457529689106081099120096197495368548144192759669928736367081647912260266423392407728165669269842474975964704842467914169599976698439814535591192859737574602692024400371346253830611508635954399589966963342081895913083525784281947562261455863604657207887766798075004833933578995974398766385564853399943119171667689018818078137001041121862363121427650471740369391949350087003897035974326764329363638461405078417997104804977095314171976854744059921802915285047078902929742979972257846187118122627211270451827446058371763544565842552454534096119069506491809178114040708797347835751977843922644502680483678507320012162486072564992116519312277350006009639233002960973675438904141470941558307348514422785434310321687172521362855438064340249437268692047269193296190131084301308470138088744695727118406773382873544262898986798653955056145897642271163158507117526174234441343974393649123825621294207736905899429764224819897908306153726627957890770148473719046993398282026834966343946248605737214017970383270936025558626101585478708983804478323683571849533133160178135944128617328799119042757653710529795586414563606393413815546136968726307218152038563264905641542196826268282924380474480965487029027083742977246345253791359423395288732944217324989213865829277604996812238562061993821686287456150696562605717718251153014246254527191513831628053564071143135051026501801848827765603300520413734745595328053398889121167462787551695332627365094307579236972893946207843041421147213505414384815215698598960511876583424820130297484705579589665714640892922901737961930343470154010096928815468133791613933177794644291117125843740659542010833795107605432342094465083984946475282700625858734001153348635124181421343060719075206871890498673813263600152041172694124163907761039891814740942737678434226927964793782830779477295663678406620079702912117540498882757641722306212676170933782234705030463351005836965746681440045566228937417970554003450196707717651416799415120111941481355761599854194412972494764384689012957745116586598885939733815047468267614646312705457271364557986020180363681289672732143428149375149049471210272162337968783501623921947567415159061218807650030021913421835537412062878659414054766676960550917315346831868443975635421791348645715098779929538743269850269529078005249822568856327905816590918684162014599836549504637728487029984935719940045307995492559593423786576655010839995397418762636041611979334187513652795300173767746773054759372996171894356584847542534376235018471280944706972710638830219402678729230132985298588946270249179052555742386224079136533941258959281920261085512801790939850464631987376537339350392771986682434396919636108665619769923424403068116233528672594015955673608862068148633535400933532837633981793403002793209150423074405872177614311143953298098875721611437874582918888715136381860612994537157658295350340862581289157479564125894832918158650765411436433534564022453467880548165078423869825246173887246278414654864762965714594641906931715854682443960644156180412691454723904333603072305015953816492566820336118311700196724684039017594641058514334582299635032088465416805458107742890587118099883703134418413260275858595746611712707251679683986543194945319447527511483012307179944492133025574139666912172851313191599714277590129076210934776831423877971684069476464333161531982248090747195601072179780937555399172148416701011418032806331190127227734188666346925800082575054954474941445454738278182303094124203892034678190912468094894788242563039196821349286861403769708889283505594598374962802900848105812485362589705755395826978830228665988105302165530826189373518823979124670205591760257831112448480435098486864491370129785615976249273923975776525381382443937679272546995354852003354804248192689723872061423246056200950834166506540562803896223016801377217785811144697185795546459824985298309620084359045243889122729283073122505334134751186232838608469719305710436695560005198991748603321569696064876599980547859291649983818473057105905718832065571169384828559203954388178370771792464536720298829006692896737732404428701582247715758816304771930553288001232167323144062464077729597773794016111752932969148728098057495616860185631868312962560869753739482888593885818051186691901039485734187879181918144622521182374058707652633074505179917011679389917354171519425381825495084611864950425061316744859666905387489041085355946115469791012172407114536442589960547861795080254201792070802367669918051147535214053232910344860164629646471562495995225595994624597797784364887932133258866742951364068427371990740987309631796637962724214733221756087699311168408671461661587741024081619097581767092922503942873349856590144055257725663238564199951062741717123141366342082982397274867228140477311786992781587854614451442079573664256923268693260784580417574982858353782076251860550308441178322840823517394454784963127068020057164526312035607661524340139715631757017269577677798346249571448970767670790361612855526474105676209715536811750900661396674353466672438417280186162045972167524763602530857942330485891906693276380512190063579011474526227913336114256025125383654604811086234537070478555794317081045656523431841536809125750808436803927431900297332970835929197138503606639734002140976770033677141882828889706782359985181443429183553916884649684857800545154818282376027125654843264710569817156524076732042432092713474768088120571016833927906851479351319642484716648743866682848616100101432432431056649718377272839839034174076100667070597835569412562666799520611805504745124200796912553615192925743058093423653734115765997545419103204362326307900387415186824699952963964924416094387337421525005663520831601882345548839422273943435657596207369623904702092618246275674102254665356606203847773117656318294357872417524578515281750232720370545634022343025284961810915055694641658639240035548588946345008569347110136872548797229388398024717619850004947589984649609093470691909599473162621918229228164295279412210245908110435486143409960083846990270884469113941335756789836991534650577202790969029158866858158022720077695743486773392695303220263633981288493807729143002936357553820138006628343586864294179710061165522180198669841786696987032332998176474185998155954199315408580635215365954686483419445025881811882097921954597903981664018597632541395799439408788486364812897258834042409074542817985810540104313776856389978156097892563375241448350781302444620265616044316083997454121354632393478529800107926965756255182054021359778524401822727681578980842395844244548730641063628770879579607999089672072214894231424280870521384008989229582476834750290275204832318553941973382687979699816058217512213697228407715518071433447962679761627510817161333568682982684115377315649781039988098543217990555126547709336993408221175722894630111739149738061597292931090321579261963408717650218459247419856339244119948438880733221655121484475646610267724758776004595860478669768166799126898698177008222745593191331393277182733607705674158779967095132652639979718282525940037335159164751691513333771790263381340111847906596693681608318240907144737078166430254049467263912682441994176353504835000355521222326820986656584361883594347795371760346342731474986969666529815658232653896861457246976588238365639467873941148626881139603342839686065116454681606137789562825748693452708751284719940052554003853355638988168176893366248007056551819215726261727538671446426375943807721021445117363227478698718822139993858666095344283168306827395308099048639147805290607632645585170350258538840573031877780604883559080229546502595762198649276802591126031416930413984096763953439541322491403298215227797691286883797688387092702601927530845126561707630873298534839701484134759335741753264685679921027260466084377701569833663268486565589503403072007367359341605942004904284726205173121549636292075381583854929078266198993115251887502644644581930815535065237707214538652986523740562230354246709061839780835710086595797760804197788320217590546213100673304181144759262527902511961324925398079918692771781320151019701247051025643317278408358054348562446279846707847116014845950458391437386239999407436953801380715107259882919120716950872827938722262481681223492668828145291213822741086498883058200327828891057028932359881783539970913340343974098095608959836979262968275178632277472168351737058788395358508389464131192066512794117935779644185035325280872455466114410183667927166375545174455234525799482131083226232847753704667037049762680179761285376061375692721604576628935775658240368682787992802722046714790064576109268792178428559905246670337122879756034436181562564438285477986094888585784033320643326860610819558199877132792608833628177566670995143286244100303384322485451534377026049597873663949594372247911240214741746036595965035612333487681904941495271810137728952299943100217019993183353823294058497428320712677161580413669404993945318167128738629999597994707620482025907646664855737980784698515477549710678688443567058347925618329083151303519514938256667869142950780780462490117882701401845823172835322511613659524965414075618337563405974443619544817814061314316120484022747285120627240462377142393219361872700625128894329251146386909856385185316195661820449359908725361325785072218021364716769711370849854865612924303932713382866449130649820466694885707337597196586644722078050790715297974547704863099260411601707133667605449684258573141888759231410727996819293748488842758393532014619309130913429403342394062411198599300282273949956412881028201457033156465190112236895205014363813893805800014094009099296125507279543350464492129576101620093192062626976969662479855440156600968371781234486267578316971792321945168585926505281001235183576849061454236472200739367449180114049527344712400907813996993352763493834196547438670031894297712229718822204185647680840323125020797769621361763868459887487869262256281823112042017413727851134365856310450482471865711183755055813228344619947212264864967264922618689197440377405237958297797958625359566352884717483609742963876156145307399068235840689344214439295024309112488604358255024007971033646326870474685265013937635679070263681674276235412751524892957822080719578885365237247447330169035167878341275455284969655077777439019228131160060084950964322250212782514454041524477326918835177921843494564151851471571408929008425591885514640397622504502076887331805644399323810479692109854396440316692178229055496290471695422566975241041484352937219246233263040110599782029788978081789794410914709864949615324546192552776709839589467910345025029551782758704684251116625933405863488680174172541323943838828599085437404601554542099968233122776508982834858271063390313068923133646590149701399559928798002416323532640587055786784016918582576139346676379995400128338941022444244220816423521473926030535376375175964770695587130217152021016820314363410959663214102723262265119335778590949134239049833646133766017452944059675350380617022328027784394208034459280029057238344651403892494203618690941036642139960456665724310634973151292718342112291884760897132757566182264252091920517992204197375107880629272758440741759731913470398996217909957009502277932092047328618070117244802124355381548918931343017182263093166040530273155879745971910481364976254101408829945555143789226327336160431006945345582926578493926592148720036348146636084532580204493377269678115929975938010716311332094967545459908090671075114929118850889595036046340404844505164609651370020824421243448445338899121255693870903409523919572559560832867072537941472616015693319974107917599349216481334083088094176496821549318470219096296992150393955067899897995614026374996325010876255633510151575307129982629074792134476277120847253026929854801620140173266786658732010977744726759272704099754695457766214756947478078292879520799473646582187745098934315786544687426808352091332443373431537049097812131583563493673383716976329544473415116355147031214963354097790936274678039611737911418365182043878676484861028409109025826263520783178915005040889119054478947462868130645759784512975605522396603326533497104046825093112381597200455673375695894943642211424078797793917692451502252897663960044978092599515192117932278481964925779279618902487827361079900693832846987053066937697727626519631030957379493995158234822297973779028062291271323334931903618771041279784593636462214295595997155281797193019721039240776847352002346407078862593693452796716243272964632077574575556460036108419497085317614024213908096706548228476770463497852952235051940433727139076014972354050040455014096052738609461895161337843915277693661230658407652832105871884752078878311986766063331978108299782646492996935555178252883939426832775165932214432975136302709559674596584717637309100469227828620721506437745034406320121072811162170570319964793648101480163574779509108692211685631902280879792402095602158552506880372539556345439569216868022560181938331239670763236922995903945847165753035066737141723248261698672559977423775498590417005093993047787166436745644149987019045589405516933945393494531608155910811448666190987055767302549723370937671327245232651758133532354251428213597305538843830717372329909175102414895229776648528889831976781999762502706197417490605244744463346546345417117066517077668189439853838496818087988677523011901750796060213788579424574506484579765581356677141572180629421832422303085313458851092424276098446149192716002123963762937250757108679558443745808537007975164846819168437653128137776411434998137037951506599366726219069577579804090855533125245140403663930210089014111098752659535550597728606157056251249422722154496982411408791142292678994578387826054605010998860845095965470021035650757014530766198997933485395557740872146333378032146363038686047994604759974876756847930188128537925858222069250418307294488045393430954466226944840923888691004229870870203174324077916895603319712825090106668960882023140367879163865498362536472716636209633942937696565823569004042433552629024818415171020174367721244101184359492309514682265078093188106842429566424914190711367059970784501567973594660709428746673182959560087360690514700617344512327309427220382296699836470452027604021138734375840382705912419038669402655829620693291775823851506214093986514311094128722924528368519813186837393402065876444410370865812975622550557731113525418985776403101142298802567175234398257094569088775087913324703506113441090805964163112995733826980903411014152821348630510933602656352347981924368852765398379957177816340360152274667828741050110343615577830642390378812198494146370127895857860341092348170549472899492330830806848655672661082735143536547994245269228379375480416361333477464956794730541104333934209280500978173268522651524908012791704224257754522515262729167676193126746721321524484820916689925932005040361756377058882062023261215032257895438601423680391192681328595546289461340480317594163350783383846003264066298697364310873654604628159910124997017365503145603133803972005560153732545082714154858493673638464996165995068347296891250213773963096661157950174312985769253233373371495337983162332027680076900100976535440601560106295262780016865459256205184312257112299012426429635938862919916875233839434147046530029585494873695085311763311177743578305066608038204258873004742031300616787470779251961203347884108313217293522439457301207470509792456144178733248164659500364394566106639192788741054862862716777365924046194596346332054963125394891416741487595049726223714151419117181280440183998599696393888063829123634586798803796275926136380444923476674879602757389883093747246876523246847503568999918488634311608997035459841690653822021027606488260099037168225731648470891874561260802313435974129558807146877011928710308519270969108996941962098764557579092188475924362332692106966687618073444753813578000690695914984774263133865868111044580361959906010638601239862403842719300991790664235356464310591640979583640369514127418873446744863736523712772731898906248264871201700622209361015350896897712692643596679399917061006302136608077948671113197175555675659584726153893744261920234186635683481556303088204726301922834328034531925054364159293077691774841188927775234603154872631285403545242387391258428585587684597514374232437570383971972332678178602235120260879299701196303080076738075967958915389770911801239821211662078392492884591841241391394476575113886075449357813613571165281272716225964652807876057462181084884701393749821402032049304880170459957597534045733624892742796732430336507994611853697581799985285234612906298274047469389127394986065486092203158446769000707579277435165066616587316926181338467535613217026084060896857614954366773180321873604788443032195775097325334472959661610643688401950859048437526916335536543345994843999177360218480537173376104456332445934498715786485077389614200431458113487291381525348704857467917391384942086954776952291931159089670497469260439977464506082134168423310283089378203321104237226684461891179222669886226228643764884108165799103623543385603276363913710123809099057431208089729213609989497199154717495890711415751498142125024842915327457979063776954763686684132049228736045664021075069275639932612005368683769935418552131719322651929816157367936680201735334881507043334144707198914604173774324859061024978860292520015898434476816014358924982761284429899672070872749378933941921042439529029067485357000695543656702223215346903828519034476569325599283855810856161641769196063141490084518033866828915397443351886949889354542040010004098125477664376415995089295057741970442344008316333466898225280795698758742684326440374505787410060003319217264436796438747390361721941740713282605244143162546205938217804227039108716162225849589083503232605027709877272133328765239792492724859696023147104624076579718925214466914197722111509484619489295417722992945761082335060329618997197214222898665846227635006557859145919643297948563622291423852695294711255900939098694408638368571551167967122591003300755708640265152918742160018848765643733381080216580506806648051845951472009306469868627910889442583840098235993515515249689273350365681973042446681624611219069561584451164269866817047820099218803574353719670261084076135229304860779069894073646392847599641152528282303392101142929944321375841745727863929382830249553521372355867619531870405784593368449523710973300176369299529961581786717410356056005412755505663350029194987831114041738959152985754144361920086877593975416260585908739664922428051468274339439487735529210654341208858133193756515363983445568910163496419440919676009608284365754164828948368397548664887356691917321488049083228544321142083106437672026194123208762216907813703751770097694910236586229600089798385357746189385532217634912982392031622298372676734622796669337511963781866370730402745817707408906586949629295648978119903440969357215731843538235819853531071057584664244290026510992884265138433783937985537992119517125574095827174107521123711719574172948328323327667304327806297960723014038694102910954964047225583775330694879547854906230202993957534827379073061643364576457598528388582607777720679200193837788270726099708790770544272972956242358834223356948788391304489090890863193047843634598244125153967301091630508321100406963976133762126812192794413474161055721386875335389235404090404035038936969832243183993009327866559297642453784901861553492903240070964316964914420843503120857836239959491525034352847628434479270107082853150297191354381755160301219703112629776162100840211657252576884277285901140486238852948601457555841188288089486363149257709137171135609463061880787866377260708709057354120508035464656337414587533217991932716881420079556792245545994397219493602830597294528891101228357665547785436964607851730467147631329220327422850807251481541825547476829127831060281164310993622145217288999977093340462285281995849401167103726366025227990359011133902164230395325728641162621852420980161465229463706474369286884710700923939622700487078331454506834402138739394750063260512070074343930968111263828299892349472260227674721045884597760165386914429411593533787703079801718627082950949557598058928326334743829612738527431882419164856329074012701875235497872469738061295323207186587692874620604252044513236021275411626616355572698730875874179310193513121034759791631086453511520786007266638528994977154334005054744079692875764050209553080635798490987202833254276568095802939694277643052701510505033389439013580440378107614563849214871053625814323525890755209325400955864523144083228366379236888479554002813385821763380584087818534090150407083513950940803769502173613419443914500531076818365566049069212223038228345546519255622285792443833686533929116647911049880388662565595123524749702436868486755637733443308908911122563499708466982539610799560244356014899283940062911056848077581155126951619626145487417263867779974791073220429207536625412944691822735308491862969244021543051576055757688154394834659831661785169092615447349301361248046295868471923523894660826511993766297572463698253787162501805730369844982830677184505086532522605471553321932276794742069384889340277923749441216573199557553072496537920781999513213160298399770770192566002033663809118266495153543444071182774210506531724163458994044719216872901122681983366905607121226784322691848135591191613593642649920377633228807667857771245267875378646638156541476704569829223746039559089659208643295096911636453108119056848530310271428453222580001501573631533528537450222035578987780352020680757381776043271932190411057768878398836413737611056305627101198130880211262929443630644686676499544531143626182703703839144592398139438356870207656703535928112598492733047489963226865069697129938235336142251627761172491117368161722127170748867830586547572198907517559728981860237831953066839522072584055463928086407211541944558146663489121572194404627371020544921989673251168399870922960459420837814261831399749205825240608949302766361946194009470419485838335381155455429824696411015077308780904586098754099051165964335367079738954553020929109616004478684613674259708886478607910467767919840589312065727557196604570470419700114392984412480259268759517187656822015259228951091039352496462642595949315585446653133463219824709784584196600623662453942792594167808447862598058556406722271158187785872914639695074593644233017884102521083566727046131008763507660323774396834939444210737032077940844168526674583905661302508152495726317344679908848236607387611715547337558964984939751770835408216996400614120744942605027066348504121104351241592244789087913187557500528755599332555240977096447242637437772039094488090437435960777529798980393625542035440806537749030054111441399854243526542390411300621044445955030556627674369807988758047335807949646762220712208641119065238818762208332219487643455849612649800614009306101960658779896203835240782598966344249394890521712222744114749133645174856506037637072494948659704589653736627213315003722553712933740817556995274862707202261543493897596606280943563662105630712335900517615524396931657432577147464954378358385995748376968603180194307644614839756588087347818832452964968463377885464218430951896240999983828367687711816384455090464031793854195577610851827741546218160243310561897637893774762917166870135714350033510393240151301377820523418240871203900764680845858207251733272233560259644183444289784350340849585876985997619788181362431503646554525603790364655171553231430479748826912609335035078672468056888357475094195360633412870548319603103612080149221345201373379060821320682273944935923656527473278414194520639936129550437203795118540529335621301258142502385959672925178383480865307295434959978498453454533511403425594270744147075445103100776250638154057071288555424418478392391859672136513914111550576913188949219915201447626535387227041587328751574740015641971033139492587052647338262370246873900523251455445755992936511751549279277501549515742199462426192259813226290193656695025056438843350845635408546403944363478955132366591805203533828618900139980686879093681133525199323754123457210621489379806284037450326250655986601772445215060220962671728050172046063570105866429668287601447957663114331610622815809692228998442530593429504200859824729683744415547157369949371302232441965587379991407435041180784083117699917119273482723368213656998956638763013917899542703399035488493463102853235756672993474610882186353843416130509234872410794301664774897521362342272127641826507892852418569735781330674177247888566148397416310892487670267142875958442501149417672141689372908833250379170466745225078593808730650853727079911056296624298497381618712364111671889775442254390333910731013008475380399804541309475918294051622513834462829104563129465871361198643495878167557849213021336442104517509159540107473397720988502623006044265189467791987103309554554534359638745823558034985295961404786243331669760126476984172189153790423663736972776689346025131573505988099524083848675845746823936999222946321367576082790690659620515904537259544163532818208076831666126136031664378552108496430576768832995375452926153528130223622107084410893586474546416791641519911719934036931590342081084373661803169128424893950204245732988232204196335909361583842742246761506225732175132880667422360597725539242723218112932028224888216128760033718361453392553003445908148741937605212050846563905918923988965099492283405702374079095116373896615982430826732355483224085746225309368818777925052836626799532691307422004671752164445145870027666186539680996499531662905902413524094271966503152986979777488597460237669290355797428820708777036501531999250437317728648350405478319435321359826239560417643751595431664350051077928151800367277019011727950514329748869069516257055380988092698439107480424839768808445306564963731723913987846937925878094271801337635311553751492430793414750553475649348306636609101518852982756480313788213240979972965766170606026534512332792576419678559611206673191632296404307586442645640385319710906789864238964011601589113687288116065003170302066175383807855395505703698537083619343340526101221597549137186732726271562998257401694021913852361883618714296015481614612241636420063675111528447848936999237244904514583156658112150128757788702144374685723667197161993784911326193288139473226825626743454713509877667084139312048652616765596998499035828867514068308300398894779176659798247228444384591335620289168793593672732782453882483249031254002149340755211573102517437490330842224449459098193986848743082121757926668133706396754184025825234234359586562753518025697923794977199484545939290435116161581938108802235202713594799955756222440029368333933984418983291394322427724000668937874102966680691385284379768398270666892427976932936592676923218180749805218360008939105470621086209086578085384106760948513641635301673179849597010384086589212295381900923083637049426247803741778141610973820844787096440625988136512116952525792330567264932899058547228638080118635590399964187538919165498361496566576244241377914860733750488287903253568595402396908850459451794925845999947802043439376958953694654703014489643449588852590877793558588802868825444120776004189572469422007228377947325918384319953624537818655539038193072556936425960499396652421269259935502630332142579005646511063777196465440571511028006825361465197351771093876429649465956692850738197640454554274849508878941716180984164899886375944454905540512737991959151383664420100912589538649001657967195526386529502892300187359462601445421328921551259361498393700984748828522009682186882680004348678681688348909411247209148920295392918012781964968566771635513618557841793522578098513207466243908523874424987538699104966409417171366808401868363691953088523815992656932096201358006469374742289975365845575311952851584324763203293438923063860342285608936233435717136904863198574621789365450319623455172611573451253411414231682983873514854097634953607601455519852229211021812241882714037293888768318802984360525311602396627345100197349871004686147984772651099226789137248496727652297770913743959192725060451443245280260185315706562151692103362366345699921685341963459150478164608736430570988821474259733034513584821224812892688648785313026695151411324363475830355024928172755706998744110680432367618935715892682030622078395020716627320204046625315125159747961506933184190431849863025486036770841787287823359947704300484451395748640491088266872706479017134704849475870330539681691996470344385241034738406142753646072568428972214826243151447630593136929983853905602252391023211941788333518298292340428659770204481211691315514358273182255495794231948652678738517995973255866746939422094642778099238741277390265289143981088255366343850377879915924604528496606659237287187225157101501351782849002095944136394182866472599310322127692324098384462702630722681777926209004736999075384321522500201240922879576804677586422010208350325927188754936336543438119789539230761151172780077418705236093581261144132060924085099734775273248355727286387069358911512683680922489929054611063875566987025559678670205976294609419918449089069741348289338389824103475681564392612301846881719396847260938922828229715397667591983895233543166448321029656949407916315554013542721932949416321333565613682526334852020800665542780784349974345855663527860958556726651350353791410875924333585218507957510506990529228081626474008396626245695265626465843023500598127149696647211701934209787253994938723421112010408438452980135983787091853487011252323118331517454890927288547375820090471277978323898091316241406428422672985914162525323713514137710178152150043729571917115067732508666051243420513585695332313978875153970508206622191954963194789300347180750568781379979919398793135410845752506391806546575243520615252141954655366118757430975484434256126482104419296711348504594654331123709639367378716798187384279183625316244175993860255162224114246637360844030327694367250256270823453992301286141639382900734807231833136802782129080370200290713659006337942741563314812499593358479968718689926633522607056095591562246319819414730110478870536701194023479216496234467732628240811763312612636889222314740595575904372845104889989345217729153467378228919330231531442099584019548144502054955414972273685959833890592685837278056838601426292088072146912563073118843657849412923476783940327954552011691094979082639968037577818050637299611637749244788303677309277394063876602910388526555048778714591972936816252581206032257873164234962371732781537154337855847307028490707730647561849552234062503839060828748779362153864663564043895965788745873474741515464048413530026330637230578356680552393010233274497966618883891038706677353276677043859645327175841770867765315643931333112067873730267866494973714880348927423002405148828298853635894156650281758203975292695764875578250074231831410901600275490257788621233674707644273091291425467059397972382055597775114527044876816769250900934470590307833823302853543645073601422586922588813960434937204599948420789151170970976362594196228958085689996418868275639820308563661477433579289340038774675353997054405408098870310574444909259897007303357936836650472755299374391118181743156366366168599187732617103524906558987683591637163267942792245829038911985982160444050074950010346168318157050559055368571075790373122088956757313150917899171243095539577752146418007078810255175697230368191799504089029205814944700777636338173227110175577490885131117823497086318969022002687950446491542537236372503230887064590126938211274968891640676172329657602662813704364254256534523277256196111183139036589875765516139052775909263663914478939534602001583679905495282428283126943267530920752187554472316285601949657326489973987390977505009769806108560869821342990082466777799163005600457278715508858351424182586989179330859692422182694656327494662424679620200043955426807841385012148071803034814390763725690872546709036831877008035306236541290858615796993195156122690690952714377024800272025623399276650656078157701570864036060395467270697587257871498518397657163354158667228274085938053933244332954062247995920488728581616447674544853646756118925412471792599341216277403250533815797366336400197051143437025540582657574100973983084862621521813313519280529168932843667781461700260206662108117521562396330716882681757541719793977109888732427744273295064745038469973713440164060748500897327980991842273455027728788711318235767145619088648417636233286233044740496026946929684024531187836003327822600172598861308906181110407751489969889799861689612276072338143611446385866948848921901446321983466010585337377387436051519619421056253470759073038782821342863448268369297661468976333560847064306912044292628043153604054915995789981300993775934473018000556760730851279026367823627268631818748695808322512268113863799875042693090802086659074450631114016502785759946910239636595605427248536073514371351944731658370574509416991843584781727276173263016253584500371292817743885186184325643742701304691096467915393882664689740764298795704371976585961049859067399552571071431830893520656011396667595593032254781902399904584652004387536985772695757346564291840670940835900215346518635942677980387132979072132626070252145003272885481486106193033145904444833972469301417360113919285663080843358899144174952836145662249957353162199499376786936079592071363311585978549138875278067500018524622294282606356983808059519391930748464820079721092318787187454344604109447501520217660998247665640842073152458647316290286255738555037898891652738373132375223759558079231244404631267479159060033602296447723841851027196363783673674763511529894125389256800264310998226506946593856450426612929133265345445054207119860480791777176766184774127265348511902764005261781866581899926646283642569939457804811339344686431542912052421750290603699582139827566430823859019743318003143118970115859841710540147233230999459101045933027612625624064753320354312988600214733085769410913678187967781297077018401425352073712134766922860556446808225736471626545040797471531944608383128040709922009558435982957624705769698644628395587104146808015186205513952514863186755146509920148672434167175549842966086782428539394101554119756381134520356123793127823151860448864329921095834401517346351479112625396221183553135190658147871753287440893721018186456272598282824195461103558264155380742952487200791561361151246315504645619131806277149797668191628802905958863402851405829981869495177360814869555784712211160671325229872474544295240624570417099654479439067764224615103039054311581173115311479531430452522340151024028745354740447732722732193266261777369109054008017493808771606308793184645040698092987257762225489662336342545707364481008363256665607697087818208796009459934195928691434749398154974772904155199277899087296676914550697486262958324248377162772702148385303589775380806104316735206961710910945032039061504528196098483794857618654960220610722855423725219486259231905397576962299150470056802860997668903135529039121135972280150465992306680174996177653018098384477892133498196894763212622200959115258522300982293035022260718369413191004056873804769324723739768804760502478322366540559428123505468637037883310700237294729498691904984349513215392891164481240487526510739549519374469897495454890085664935743832526544251595907974253721761399755836820055100707932274758724725731034419791065832274555371188522531211758322501177698116449100912994020675544366023841545216399150972305317702221560961221538444301495087993169846737406263682479341672294031489074587814696200442961449471771190960635578802056381915903151028266979647640971930717408226352424065360057404403164862091459519454620249579786631955942121822819436928578556248557180889500259437698584910400332052934755967524299233228130458588760167023254180551654596209652105667582519080895462109235775018212261036205604943388080115085208776323814940835696575053690100385817002457808524712829823241225226224217107416258672104415250776288946776844950259585809361643462666576064444445856410172286996095104907462852342607173266695861847058803192081443753045527675825506097754443034447005173313361395927549793931004230244690398087862367755522401625049275931325435793682050929033261478414571880570710259012149532180693328982592754267883687229375716965921570547944255006242564287755006072697467627498596424386612624683227491524614847452703140660807630762457043050680766045595293176663216524122035361192115227850098197453246017579980692062064883199874968446131189067699273858284543835803533645074856955468282760404513875005091070604203163482997246354900175898651042472683111721516026877037760091021149317485650119163198228147009819626172176833342114736507750613839322716050279965635385031785920147348855077262630844520414422578347563917492979353804717023892911119191761825312462388293777107914693808974235795848363405984293938008358970646524750323206870348592096061221848699800623879132127380105910940420091565836710767192433308592384297994970548450995696358581521864364704867877123808783003437085202099201998349323900241807194785125739158878995585004150053480867403359077734966569224048052617444311295245362143338843039271515456977518062479079847400551986250963072696780758980708525578921256677756141549834133231052112005336513226100401118819476207254517424978660270240174247951487986035294952003494824775510625318569565482167871593328565170564036883919839660657465532868068706194723711862203801939818171041692470422938774902979348866877563984632107573006789938024641369422520757561770455605653661050795894610262242798374321953015932279949876171351847211848143170882312886350013023450725724354072685172779670272637126128466907065151563934852370210359263215806035844601837580398866751622389910114445551819279511304263808032813199294601880077396657218429611120272970663152337244104203025909390637543431089630431287803836585186808878754738871725261981048804187806039726771987334938363555615547827068371639474657899572799106894735064512435417270342260481579304971555666553733432965295584331117056607857647340206621393092940674042351630299964617714365207092147064482926214088789867898076025455217375380428519579939248308788778652234936722164200378715492954194565892656942789800378610014123845223000632901202142140746661007574845723126115414307734161114480913775334713739320727658232139758082414956771798686308408856838739080344417374637918388551129421219434957736469800545991647570955561605016601799641703996177934097484542874626418326414989050505763125299737105693009672752158465585003323307744526185089849360042726705492921079649181694672760849782592161686135099281539357920596010680983727168556757424552092584026994836442785013339660998721973615454304902816050307818315952968179738775765170272590221412573422251044525769000288646781640135724324268802117594077064200384651966921006496946114354964591546407250629363107776339868453435127964261349909424829339116510095357139122506065739351240877286356098074941061094725510599418050086157239420951851081618389843771762692269598226364850656837150989719058348767518009558553420921165117740610528459138135629753613165733990184317466129637749559347007740334749979732356176294983486462163190261545184848724935612668844041744103101920962441415723866421656372357857669607071440940985523211498625986294167997713823900314297009091302998950715114937987490685055420619115444335743280222893612644677963197744089207792618989468319735634073825537164269845872605746839056279476498120926864444491361414676320836050821819185733155806013518039807490331480119168876156774784491223387117754178475743760875985699624204319364571804999018642189826599865085248773196239919160924703109479832851412540909947329617632078375500843380540907132110187036566086130437679925849692692991100663550298287512395703883451754035076665572209749624451048887689772198326187449685962046509397970920655493823857514349613294632056004971209561468974801211250164030080613674281474223364878330038509086575439518981165671132154296094463183396328605208098826100758689841153463175196139855975331762369813162236103941287125139276325984046038665179871665724178061152780198918193023888682864611097263986206752617569849118065239342543667119402583149094540302659425183437780418720449223534707698198168148182499427125634427676658306572778054606340787391886591863579600868757420865244552127719908592423510565343557262307347960823324260595211760061189815229706191830658167273358755857761199075010391848449238068742418939664974680721946389688106972402499314811333984196417906262655269808466101935810837198382782869667420969867107660602156565127120265804214496028852364810354802286256007970637416760747485538803227706174825951223906380978508024504320260940265700610560229127442941887145201902883484160180963124506107415317540118356281000816927491488941800513615788259452068570230373258099291332845360961874980765778516654554611530633002355018368628314587033595694645895679511071760791480177772649262622597338487750082625816341689408792340605128453578995289426886966392775456203820053315763343664422336968807707377385007667024799275649002131024076419080882734701417626595585231406217277708075168198330444517504254195234851683969604352108820045314780007858103015401296731212422833610025209155043950769924044146282156438279308724164059418245346352886468831403972824574528142035459855872808071956515394811572793798608069861939085561619732889491577221322566112401605880871930083832094840148350483153476102706414185135790108810763339554160005885553581488763802431051999942775113866425753515915655965203235274265168834687633488389405261618769679770117052307952724244565883835871645840428728382057669127509589497193380794759157381959267262539957614074955080914173538471224250136410372662217729100153955814925809000723624339571428565630463307774127059784360945169762227917064711530959162189140076510556366551812834992870676654499818982333984979880008271615628599844488499053697889044475103480726282306860187248768965140839467681823495656452737614704241921198978376942084122106884993244030209713230838155794948859020983799725090814658243429864042749310386121867368572741176065626688494631412622084921788531438778383792072575217628725122707822809491935746527823574672041466218934207584865992742933026396133460078829268648794944510533889765387297282819571563890018672819673914126717374019493096630513098057247802988335354518745517561868237971109023723895127599239540492688007857042404795742078652494280824743039678276275416783557361756179030483153763006110607081625432314687399129131820731899725621742513042146231809787155451717072294963705407920013105200397191108735596745330797758470010896607223690606139552934786316334065174996288142036324595004670209685843500793049274223310701972894977747565724789997550693918686410034842959704113102672234095051349936638124553009926730794269916484732161042511531542191684671698288356324197572297362355167330753526066053902595934349615118455780457986121441318568882890365207347848156471304165978303830991619340765386152557761230971540778350264017442093018566701769742769292442482433366708973123475797416147159482687069413246408741996823810093385561838184767115514617160028391717296997784465326579279828470019425287420549972089615703226259614537912901276990294767245269414256076669920381925772307787454957864485346769957824159367515691994682518672935021124758226947635574808632896668783352100585897861682495141795097435155169278891871871769076496778232255971580033159800799669481963461060426836136118510713888103755160363489862877206832349688470233845060324194479218922243750047134913853433663311221715016453783810458287762708388195419240372349371535372856222595394234161388670090144631566248924558551862699033667520812436697829737897365104393136755769804940351167660551950675823433156510384979973633874456410312812116765939402379285225281425741087601668325620384190204718048778182514257801884147781246998185082134345758404899100452223891656858773782241995697183675590419231575290568956027055070535224797230487428965311423747503575652643771561784726957911521382465665247270804773064696495517116984894317243772000906107221022308440440267608293421090397986434028226155037897995886091906845051337801313060644646870630483730965270670326476291358085095341401103739935563305410346048199098729644200518633100013051796160880362522947790776166825752601443238227530406716029051749295072891162269964653277248267139908636572083212976543753935469405678127849778143326206576311730209716752424312213431138842856143924627128323379620069615372944584770888316293374811486116363539796030965203508043666021299166406537870708489373416634227711226171579852283064808265973755431426762823461023186464252301699317272226195200764191249510723625676442353200982622791656433688232867989191155341709145004492320148544936909528790606217912893478640972710258485642747233143459237357270343523582002852000915799720739182075791742027749806115750698193504072933783804472152457590459527251391492307669897122544449564723810012478340173560988213697461390508958652781952629545597280683689594446845724983759568089938961051612232732054362857416792884109115800306189216457652329929194763688555565363187867766205876267792923812274361755099595241300614392468657827797686981849777511582410029744857772831296786186122959086457831589402219092594882724305207399294416475246355744774816458716042603468896040540078810276146620733551026929351239315028943819576005824808749402935736987975338019786598962789581856351721134639203966941154000313032823574229845812044950421596843411043623240478033790223459069191236544997372834211336585251594148444098130634105966386051088550301844426342944372362943776563866724384546110281605552526103052596805232557909243294997949359966848585991354854055706156311791510816888860330303355171243918501886479191616887066976189663037855777934470295742494761069620244703764499307735582301367423232754445706004206087628753686643970414477939964382682187600750373987296294930796374101400880329527439162841447264348869127008881849324822019948272590461203680277419686155148519409940414241741011967871585064323797302164241733317801275505378061968460267670475672796104026081630459625922622775607117078208419659859803349630232036504619423665583136837731418576789886392517733753659646718459042658256349784030124400362193393834739066667093737638096978789364288206024881959128929401023078335365796562083320654548400015928131232403883495403135605277198308573586486821077985494823720531160671374767779452289981223936217732512019375491799954169006460747139344733803085326782209555519548355873220897487880402856919461457313391183137623064740955351401755140927840582701295212280800280153249998472913590186570857889066056667302778156650205929393215229567396589269090390198390270577391304688432453887059103021899452360111203192669225481689467263116449088505229631589284253526983454052860180032093101728516261542342179388889175961315254656622882259756891259893955646882053158554585895125263126836884434728817625475056658019840082472360422319077236841487134293186465257455520003506831561306284206081894854435141580596832234267168302931740117090011179502643606183032423709530472336962114904268001966976384870937732169825963172289340204439281913272776482400698788594220168516791167587102491719817141046246736553132639112119588648832499873173350600527654051088028037654070553892912367657598135500642303014706313171332799453032567086078309181272361644324712608950900655478488920443397683084382628263175256660915697984137855124428560001150695995291978824513159525570084301427242561214054856437588904603277250924432193661921101898088376186468418897973798670040657413809679056863155003761540225404329991806959453239932304211755600902812965765234934793748310058527072160352214933108952695953595890059138537762112923995525559221042319692826894135382544852279037646551075709862025468169432992511909066595377749622831714738565801213114620336276501244062518201580266602261653976051513381140524650197049010782088756586465978495515848665993694538113911484762483968141047648160181971304438579224708973129482247618216604395646369599452744843481329584406528727712466458299934641933630775615820991019192527513502202309219860765863692368433825205731667330562933818196461137624926213490542169735852578958065703077410962418772052688221446871536203291894197102192358391392842537501115995801971734184284734402714149536339938339982440638247297137812568072717715054068145337745919630978482902608841768357159462868369215841873419706279085026751335542904664427871103954256301399722218808992415028845017728043024885567860538203198917580507575908315286150211592705075511499775931120740598137093919640022504952896660753589094628889363692673635063995178307309050037055101475407215038016357398374149890851438294267932855743720228532372328078625933613045754627519821294937920857930525923820229750902044863637549228927370591226564506781881692772592970750175305501515951041093545228219104939236388790712092939180105247408164295645753132057671935372027234263589766726713168249653350697164014103502729614988673294522904403051683658214524159732684299057340466478436570099234411929940534246178591020106943892282653677218756407226423355765643310043433185151387536725355120744089468546734389536187666373262704561341781735477523379912869988159487222248215130640670996538193615315061728776117346060648239058974802466364052997398104807305121831391346581321408518033933223312322228632335159054458759769000506580815082529835065507272004857898513493406483613635721127120584349406393032999749622457341837339909636454651396695622574602489930415528362355819636224891808800744898065173620184390020470000036939916463968551499643079393710698764711274956252478321993201781008799091495587526602408738117909793067958860182240183317488057441538969195945610074707643488083416761537081503007991419808442547514740985077244052657455569677515843717896994469615210611265339628042000277050464720739061157534453358309581787153064134372980221074822580779287271757944033311124765938438656162525192888430729017939255089712341390015345957015212714065059987545853767747633950848389005008519542852323803523588944255003513708332019354182080575569515462214844233666205644462451069480957589782169060792075400754943771994431778484340627207533609045858121560495923146215737642135339330366569591367543404767949573398367868908803736636344886442950063646806853114412205124698388570300333719589494538047729411002815789398092654682433380888527183155733217073253864928633562069780377251862096940451059937192339564207969384301690407507813436635768205021384974421988510350200684284479436021003321641761386355374311158370387370710502368364558047656408907295062395377789944587452233419917858594840597589331462960549708438806855247624251541034966107811050459957781608050023683155760288778722714139303729547149127768331949339695945480976561830382980460548762742864150033607812911943328606836845478018421382345270236992236969607617093785542684108140328227804193460142490533604452827481471013343079350072433642566808384384093630421051243298916541210021785398003270679038966490461001011924703077955065453513958633800299667295353640213385821131832579131199320689529160205493900819691957711924816807887762748665573391052886308371037534031971831021501955347989108590107387809856203415002766729917554147416543904783104246103271809943980234340712387155055244872173610724326311752928048778253739560111480564675139951687945947470050055230885457185910062099208704013606718312619916540337455526472399458977594033967797981819391959965378914521207810967471325597270374199857133641680129305002549127125802417395049438930289275083365709563276136272440662518566498013519170120427400378310181509801547382878862797208170035911548203214992641274768345837231903680198930067598390369694368838117992736044610682612443803327297013789877430258598805121423961070578740387011429360595680493892592896689907777353944993306785267228248215338362522688400152826993379748298426174326745131239937871411727731534873004207976695380117743609546730336459916197849499875440703458672545958294755850422577917654499841705570212465330509153023335197769097143182668411041318493384578185856429795080543677067262426073897271147425690683731685852899869431033289384130099336462848786848996862292566142531320219882980958738228371660916684977928150110751935804647903775132414511121868559950607435924140609219164449421009259520959589471396205293755770264617599429879853077930984664724866666228402274978869783983521161768408755843093000995367622955073237424804329869056289436418232579472743298495396831478256934758498031101780651115195512956568845238948071687013017709825914099311364705906180005371353662910438087821499646905212440844028401832103800422269819683882754389616617700521006811602963777428300644949294711580662331147992499772692443610022992500216617939137028800995865374614571401224079858459146788057422404379806951731506891544249165213841658235330714542555675943481139060460443054035206406211486109678702274946206976542046098603959759532110893387067743131804856425596082646915818069112933806165954590267212356989678029653015337094536698210270265736416777376302839354719350866971571934303490086962892442228755914860176953266114731946206246197332838925649264011075339503076133398493530085363839522219022915871509611056633889479176016374542320957071660503678243572137495808551694510254317077372792710778721399465681690441442615749390873190519882284267449162137804076574075864100312572811819079578235077051905099199256800913952042383232203595875235264190791449274817967922361744897040221503448006866579598089981591251429256929253878192562670642139402218613794186043875903487138535275398541672874618174308349286783145124207918794559852790088087632262636150147037295661752307560590002913212417013414266873615846901084736739359665055130124301874946397869471352455560531255664096205102469589928425820819164079745224829913797163112555903690222848707709120877379437762334210898278438019939174776512914204377713315999109713038290397063583619051269711312366417192001858802946832250448535808025460104381496872019494065504813172528904988681373073667652358537551804327578265244988163524355644573554913733528925327392015739080079043290283078589182930734789090777613559494818384766096086705919658298174384305025405496064736266407899132847080658826775168210712436511922908231735185675800338925849398069987352722352377665516245680963208760557783345393065381238905283170470310842798347356583402694149482524582785001308733318076312114744347443258385424049940537019340995844192059421603167702334554642392065508515336176564584621641244173253673198200710517012187354469523329108551195549775114746748326992504805462432705740535691695028541995229316670468582707332737286501187574710970948487160993196899409473606256471448950820395407085513992047664164093255508081159070230420033405369610678129772494111455465409469251936901430925808164637167060182107224399105345033103013003648655999661852546801587336445062183152801553073889760237372752408164509818427926240886441820219482366704203833895307117117975788075094471652117595629344661402552986955738261833331354624539461649682853935974665036681642267662470889365265069696146375462690949295025462488495736960505577064688499197318952675413578652261158409119314486646239804378789513246382408179900145303119889238940420823910154304700721188685168400953167335099870911006950702895061641461970294443936550193972865322012935461472764864647762247801569796530346626596521535817765109592632783350177733528653823662006053672874479054899377327527799452777825253263088630637150031868688983441895921946528638855106263328325887345129765358597400501762134941882440656973064672691515713722865518816759106727037602155738847186854140157252119509499479294301602054506558377439545701285941198637828755118475609527156057166702204965602528709125923325532483969338249639209905296563218870686779459779072290073056658410859240271530594810288801108872037846105253351066972183725613324782119497014511847306746699402136422061483734115366300117431159565383531367057729468616403217368352121480284488824336804250558172360955381240300665710788655974398187493606789824941403693294431927309962441304583363207127255598918701397183777475039181433738829235449712506504990990558325685579659087722696704903730048783410364181586644743623944411796837413358807503902043851464804973614873130147365918215156482098072829371691893371109335356494695215418858442928963694449593300264931329588353154702944786404735444295918011168992225561435208483076599879702631392043206719703384844435158496180227888848237074346367960892805643188703440319181959930488907437626078958108914807903793595332028057111282706519647975492212288635759418130127171923463526757813087870030802866807855912254330662137080282969409779735995000459060897517207471779094876895862764705032880602779084693330319475443974228182642274900822429505759878303090856643279821800664412463853488055203753483006373267081667819368695346917288498669932713303664853770070806701406012349754530012582477336634598746667912718192524331386108723903645503638128029544569400955211244482614100341629843305867150493090950868470202950099647890458485637578941478492771083040671984100164032666743755230919288264136346080890065270246362711152347136332519600290734078105596731590306306285387690289219767672965834817524944624803439714228888177329949053810331456430827022004196304903076604856820214759394084041540337796555379351210801620215425778121148456421938727647314107271803088382359584125450094343581853711973468193363169215894393435948059849649250555120338764017170996605145744137799763604857147874967059866840619529823982280521446055453360308945521444432405276637977788392118204585623592944318370489403671094261066088734963553302739911216318426086139404099283284472382207539578071451777145368656644847264015776850325027478257612427013807422112563626844625769750501045853703183925485041940837051302733179186543193660956680750703258819342642349379978429711131104835393993733411896511281199894150987684464967477031228888666375632744236953281818497433871013622289309049025813368264622421872949049920028996991360422199991040367540924823334883205559341251566125458146756254252514719881356869061207281100266665087008353664956969633622527748064102005460111916841241601753407971120488140523282898171216828816837737165945256623092237726757999575381443966382727059883186920266639870539362381148582088489378178443176108709755686731548211274344797499742111443400864646049065589941075499234124141018924081916236335035731983637912668679084455537622796188999536818871402920489770391214804729084827490332092142835457095331025645086829000679090415244005976210104851241001958235297409717206130639540017402298250449228989170127569320223015013742034246401023158657946707293471702595668694043693910805010540446341492630041239865893216154845888835735946884034100688720859295043521223493142086771289582962603354177231494922243275207747407705403457377429801849642518004670715444834424304020263177822862161283836640917942168965266738208677902686781726340071688667314700573185938296431648508286023663519132909075757828932890561407844722794140183895973006237048587668046613958758171586240643355966285056286518519062236513310598102901069376928952451664541399332606030612660461009293373260957533267298710658038893030082507028435800846633511368051577082821489286005127322121631530278248902409590699182728731592173374041216433349172161170494483295089897888366703157200256094067786740208539219935297867948006688602282238071602220192697293883996482082051098268084084244504883073451878852099481622577539799968619319773033700658725125493321610511237298869816512951820335296976346466338063621901978278451675919797737798970710411609811499392059307403122059573757776617361843560686184054249896534411884853812622310868789544630497330886878023368281734814709069865958513383754427164393387079712901726327952275427865284499204853762447829194291743384281453461392904666522491391216731364051683155012704854594656104711921201963701530873809228087656295728322265600469607670454283721357326292609396208156715246351703773792543323455544262604262024234359641486601340445805298957685787994858248247061503870072301636925585244054460696672423530864108049851411545974384258739338598957351695244656638314765529647372275479766526798970198196871576410636164615767280093309745891902169718139036313258742721291503091676998797263553971998519794181562422956971035202826096560666807948986495498016813678851068475330700264228043303750156994728020541860046638331904727795024610516412053780767647550226445054123129406011301635759282526646284535469881731244839686615612989949770094849203613500344607442419903997306122108361075026840900090679585677948051169933195385148587708966497044276721235263177343682667616349713080487570740508586152232278457014163236466825192792519585047900084355186325175358850359184742577563446045173967324382294331462262441341296996409563856878260363367109133720610731466901145209722608261492245935298840038472595181867900912188650436920506596154068692513139089334417559175753960496398040723916312730173986430705703238566234980972207668688574377257343406725486295699041954458073892354514523080237250161151140405698122294283717083667541460636388131304079412744977032285271002880201778651933063363275885232017909906838109959875558721980650386781586884632729946161805795646819757739288096562202884568087013938009647304688401811211440697327171558752720433651647437878689834694241257795826634508583787667268920320705893350880055287854674022799814698966404280719374029506398158871427514029323505016912244016320804222237475117897723700614109487777916864069532390482735845899923448230568242058730891247756296761210454654761186171659218821647646807098856200433542907054975456922088022660307814182381146998308426411386816491281272428918808616942706962810851477826430441541688432084592550914365347867354337834196360410612194680762401281595566657436870221883254112529634696184482579585585026186774659314264515735217497200612504600045830155374012670682159763983932741475633469107427001820883022140340236116690193724318647721154754134469687176374316483987686665226943498952970111994905532412413933411331883621268443412820137477520105228938081418563165569038630039572392257044588972834207459799959869850346776420552017319182851527475268605338548150731401687663335330523532095179065974307957213745490308439055020186082484446641212330732944354736217794285718156432207017770226939890762923985106248645837990683816014394855090821984067851234108966491382024827561121755462128948112921975548480895668565610713561827280559524968352453826399933322260654281391757650187376892385153095677874350953245197884954055464455845865080891635817416940864973763490283925195875727121592691896715854744333462986349638316360187485315179270632973693029924542204013831352141205142198865440540473231187471642856062100032180619814819633758094521121225609458929468793305433285375243368482000721313173218677718737144560265061700900532805242826916018625110263037068137591431597537579943770232970547193860021897389291905116032530767379797542158606092550469773452724838964372788801899453000100649520755286532705834397075359013274392330434883335257048809814741048564233403300387357885459363732985997722430248819489451515472977972938631921705660110817482434076109974983862149844793607968529133443634709548013016005890774437503391884939492780748289798639364174494314250132630051012036334091709877497101748200734991118763732922210529808683991376152590976898942844237558330842605608255777303449277021151726677243012675098647177088043839866245770699596497973524511051215064340039413223479400502743844641706715037835857517478458446388970993005938779302398092408945373563700245969180160221146228710746599121512400294593527356589268012213613538137196246863479957192529056714964914662112766692778482638103364822092174049069365946052304041513417445282694918513375098385748658725442699155610354603983359169501267996976699731586770669070507524546608433397571484711627053192395327919134040277173152383193863039743496546301171662770411458922807857102641136051427035942278248601014215561876701987753753732530479643720253974897863277067511535848027724791553780745343175015551630423622536145096802452720137088943603148968236612880304575522972319143538814064320632732171013479511736391880170382926273617789167838817382050941265621644744475303346203973564213804927383367512617603585522623420893960111967936826754057494028043369782789822972493411225592177539511856953403564201248654836458164311244012627837021804145282710155781059163221046346313739162639179547531886382442600965883764123767441947656066286019637302621399762725929616119118468304421405697534382324390370210534833327739057451170557264535334291032383949614267391931140310077385289876059446559822955633315335456673537723911231041318293772663679199828367259680045823234143061970955763179878659286771997406783794164157695886904040917252816455971543685551519480570797535498680638448683678685916738415854765319237730307983864934060149395890927763120335749902318929067040808770036018110505772498846739772141271508406401248926967799457623086295527421991867864602168855303629241930478417345058271009927063655001416736645368438492181446096045181058869595676370321235755596202558605612129758526924410924231736751549934284149050736614926384877100483319435450317009136489124747883981292251632655679592952235367467436326785958669840230868717399791775116003903968614746379877310659349593761534929794128576389219157315599683291538038338390104060867191898491011211223003002793372189030196848322488014259109437644072225857395617790490165620560938050805404507842381721049143808337117336408686456715646776636651902398397162558148728663891863508093453926857322409848014307051693996254951714991028166896979198260947086753216264953280545232469539688872333398690224270071036752195483400831692528175958368079883896794416038539644296384424180880898094005942495843205982839224135917022296613024690191608752615929310984425048807787625405158897041103683150356146065032747545042187347730186165798774310536907977227408994126735695846530721430175636373664984158872031563150819301746272206801091679140330115435310724335232243525592856795053227573367883583782006224814013400058693297515149811437763351869235938827612529799068894685600199544226716538743449578418675856918251403078698943626009656746170525400197803285115199850637087135836236073059242878313106255903877309161961070992074122205398074655240351803561552789857470023906053155349023808128779627437343029091589811131100414214914627827547640211455248658385404335005749424449659943344042877077378453724506528182802718118554745520897897085215593541990954242121688805310123478708162047200408374814936760390258169368835884264348395368958580542573285112132884908611394843993777916840804100543275000060345446873275374128027155219532020392388434611442142743819228112286222701312511321479365255337736120493252790901534619899959547373327844256374732979280396425351690154190148626722861805819429509779855333660628459741770494777297432376195036390537481214878154002209505568693000986872328530976039582865532717963452997090491421072002614905561994712698958620672315299780486742504187208557008353538292199650366462005927775076133725105102414816876763307872603991278444708403916229822740383073504284022187834582512619317432094775464079784551546545380776391918732242066824350347364219760007006904677542555867424613693070227543222646135021351363656208307777480720247524876697200526471452687518362269089163318189747254023635580466537233151770902846751927826116579795898182538894831333524942559747808286878625493785814549598631286791572407460714200018006436497994571287492874876264629902296199633092489115592926398882532097887330761884197494964609234230335278504488786891664869693345136521618336910776205148284259954836955018014108502934966287106991930410246847225196981458101429270413691958943917099966256416551615514575669456993118835346698483304074178870131703833800435984381343099761867021520141533299350793764785547355513453942010469037880791949713983195836960575035874808428306806301653516571395191509755048156875372023256418730893687628658859242988329859837805399123694791295923856234326432284732509634961008267490442868215945352507998912174298194765499954304412160370639246474371413453820044626017764306545088882354162988268915505062718288174233152765830825617487199505646254052604049523286315935715417396295728362479336175682146399315801072539247325675869184961546665613616720938728951737829855481450408767319590542981013845653940961421165805628822103129923437974815090967821404651936708710878766820415085583577837746431005654524550552859133623121373831458557313365493114866218078135852327893042359193340190787781582701123684792219566580852770495926976982224718430023672031709760836451949779419922226475271965195993936723264962345120871434013380599427223306062100629955126274333895838901596502009690068672826182842646470646268802440680782361608211382843032080989776247939775518414663547108110307080115807000533793958884628194323483884759143229827838161573292723080973061919042641424759042450794791957423981905225425658405892627975552127645962224466146875813956431145912578018626927730636184264475303789930582949467125215526671274005048866158278406594340781803796263315134920069274436596204903024381474808684202971588700258251033710795726781477690328256213613892510453084033697494792903344671949241160351145153477492392060573328431504880422912392459931703981075370436821798941078704158102364444159295245739857218639547604714157986314551665796920480834722382753201354387395897504121734746280590955834627366486539442848387027842919997251908933191048911599186980553018197041766844659763600409459693588850764281053753677172552666074520406282933284572841313215949319358151199874885228388545166563921358129279753382224439818636822869397261333509582966919661250397034868158507575552156566552977864340300337822291468715367974291078653767317762419376948401019730542722041767922624330175220858879787807815943463431886431192602224087339600502010643771753556803411501451698655855140018433678030253385950677139825692785766535919609149496737922671252204757362442377644756545858104290174251733378898751141514371212719689222678317184890185001672986824771676946944125903612898241063612498762632974428552152329736966035465595245940586717138578291839774398890328466449303263526280564264063052647533461581634069174966377324200294093784996287209830523900026362055951243222496391004120127527994242102137877860543844996270963155852442094825533135225101493363797035176540162840018174435276147164200177497161048106140907811652333759989706294330018564326953236838105226438002074492755111171288938955868355964795126149139826818335227223752046509435424413767607206138004858353197723628829405031775550239997931261582517792187140656068448901890002169187499380643924023888462071167845952079359384470931364324402954881007866426124940070008525670223487062903221690346791099930367282223075647679531841884504506179964193482709674017003731199873896091853282148011535492818625294981728654501347878835401280820571867263678414983221295463780975655098354860274108884175412236570861748313864894349206840732327923675962760350380203566908425613602034116765744925724590743088468220851560518953179079772889073252302889558902487848204235968053863557893943672303657270552226346203961573656246336517917339421395003734087903594395063201133960079343974392441315905634223369519322378172716355785094833082411252583703820300323665867577319607591257174999712560316302912905288787561283928638106694656499893784217082875073626935334186394535023571205417897788889901248100728020724873427404043992863022348935883941825233868682662694651472848686399708950562397013239985613981742925190338300253757169995422165178509677073879939590859502738726490215825624389716919872407679028351213186611312487611011244153874728974240771884968435180816446583804385272436173491009353112566429608591855197704508505724381501228080602247516130838154045443548083101772683166813790894634077601469671924055189107770893456003278837270776900110030929538207020390213899307493350885353484427445873793870379333879626799433395945110255577189461299191801820616531607580818719155819837797847519615403153876277214311554034087609982722321382818630047513926879961027924339598146676885357145606813756791447609011876606536395189328536183617813538683718206006255494458923975709113368460252654382117603597022399344773432429218028442912141626511046507803330004634901785316805489990924913338540478767147389836627583385402575866742706913993607498589372794012800980554681346475324857066550441161245716987015094825349658818582194538264309869215067705026874993915620262075294979830124696322822055579757856378089547967828710153462504856625203142422240986432514435735438677127617095795749600185677378734464951504816166281643028687230882713759106816992026806269192864002953571375280447540250826411114891785336326170319919583664704704596650748141746431337831550119982064352618170183170328263657740139944940020003948751860859031808630314338465866049484216533503697042250694328282179356698077340702294150590633705247422040460733639015892846020856501456113322578060336502409789086064172493456457786825684134345807103356847797772599026767644532367549398138014203990716228743639542511732250494910221799481826449256624887311297923787013846773289740834380210638102355351246196871562220140245024480111225108605369725753891741775125125410818438123890403813454348758875412922544711116967226096656152929690486579834731388096470707835397769167888320184267790038909405923499269486627383021144628742837908051962775756315678824394165903359838138827905331498397519692269076889756661720604773994762882772865440696134334732482714948389236253660657540460606902202191415413449050646103720075805179848695898824407108737491074379052962007986807300630988882942335147299529234818276149076520038241336670466224094550913672847139676530646678030600913159011765298649175442124738009234872242340363183125700947679991560788809709006958932296798120683017622929297807181197156167322908270293955961492230995699106390933574535063159299498634039011212569170791998153546264219803759377378740090120011352064179612289063992796208234683507657768322504105220882726600686241996110314571479757113761192832933993658696213123473161109990352314802434568152087618062203467406297718643092095728745008505266673707248205291994337639227490664981601894885186925322009791262704802886608070166218647478835460391161295070828889656281751814351253441679814809251052520267493445073936923905815999248646433715473692462151280699495214538965129774774558157764769661450520107367779349486420815092372220883947933445340099767146182342173839481805268222656451670099585851694354089658194717886298782667361608978612783775614029741494349871704629741846733573404063245719611670330294391664883457501709980522670707841417894635324049816109945211675622135422112562024923379756115226823065266562404008584778088640523246520291482330005642547019686113204427016646252257486351568960883100138042352326031196558873705029859029808644228889791447544915142874335693646829110846308179806260426191009109611492083096858791399600199685399705155164616816074763168532076263784326375890370824435314928584350706980876580956883375149129854702037503214970182002034398835094954565156000850679473601265650032454431066257301842233395643725570401535788238270348951947765182140480943116659149889486311429376171895068713361543442025734219141661769722401323363083514296809277814693545931310884902692343902104427291421076782020601637578688978215698093570555544723697911245889285963329611085212468641983412820011495117770565080142911664135746509286026637557276790203982180679402640458067307699471829193931691966868195989610483014034773216312657020729155585905349466083170405557585087979635033575576343278115052204865783466258081295059379211245951229047099202300829634460771013250489071827495447804653805904706303710271908021953574399673103805166059233764715602746554754406250950876831946072277037331799495046223315548460623089964704445634127841371895375641192108579307609343872758917162232240882521045685086398405052418123272196787731835594271172332391386136427440974140377643638772366776868180814974977194741129713210541040088603650807949117670449418672876848743733986057698643505972623991537517227731869671491677026860979499194482191212414285171756382462490341940158547150542876174895851769314299669579435605254792038893333875043468552088584341159363105957614449458839163258784980653696768453613756547940167103517705134681547118823826390921573688349091301214589445448334582101729879047308603625184713776768001556162947207637269061837138385290852091780630686677563400906421550895419208421487652797927688917530205381410409194423135346310760619855541380078068840634762160459632018212751293508675835461519663054833652890381733952942524349205455820125245226842300225767946860862577456719614375992547062900862476392365100800942126866155786397431198317663163495331483665306892607957508472674572980605556752782841887328720555698630332357608702014252091035124642379904254512053978273299856524109303525415387399750492281338092151693297542870029010350021784598915810179017775019409689980160902675730353100162705255334978154528775536620242582818215231431145768086005692274766645695239237710064166987774450575944964245665250726137701076779850642174710642759633215638944103786875086149847661371205988157748440985271121153036098243576090254849839625942035083341704010380120531364492439783024768048652450597170701286290455985282059575496713532670644040375875179982764679701515343489579043876970612572354123381571963113230869562755871446494252704852883070292485217434984967784148808928943985599903231590542726559586095761932805591095355652135792062430884576739128453458796318540390997531933724577902848428649097055012207836354841043232455206458489071260016338601994250144935078678553852683844464995558085032149421693946652026693261113462729501840405181461149863549013728378422668080394849247427542203228020212969807657096486922636582717135103439136336800594814979521889423440317890822210248088618383673469714807987311808740387084831540080568328017470500024664378738426939951130401821524296733641579571769311791129298948659690895650202150823199179504181172872501236184676302609612677475213137215709045283972009570472982276402128785536518889883815790105376660054517921170119475977045013407817038810657374099747148436247871051214438318061694180616714194851156088602954076580673515430463589366079348174256804907902346060943876283173943415374062111957716909618562484377674068988205258923111285046769370157293763392522518650972616792952586541892583010531561999811741668045736399589783618430075467256702024144113027749514721834427981731036199910157631376838610249630094176054050981555956099155738565293193356824313574976361340023602479224280691241360768246688413424975318287998533896313448936923137301911769794952927322816130554239944220614542559750600582599850698231938410365740639636818333491714085884570431347794572848438403240764677208386087930098134368130205339607850072221288187205305214280232434131710858220331916986423020803321998630649709434872915589498091014238513392483869717460462745706564169487954359267736580613468323203819024851551204554472138836147722715312103014346214468367929956287674838392642111100983571572857120440350530944941101023271107035033996325782173656034279838531563013060196905071433771671468913354957342436031735772967426428222734276646835975585988418065742276113922593400165117120366006856975216608932532239880797597895506604158415616037284161361662581720845626725184280145702820789971874130549367437505463113943977273563517434245707674971368007778338043295739080890234150349535018195334026359765090554364174014753403525390607631271691168472066162451158061180729038879305314106102108345996982543295028350592368128243805753732450506679518729457242482336948245941317032081632982803222368987947230748154765011375579638673607921733687912765009521452750252603176922495401437566561876574659739259430869039933459086645608618985878374569518083161890760813354712317284275094551575812321366875948770145000733282021143992692031465967514823491630585405918818779983379613152194377832477326961278102192206451981742899850583867641082255207512380984708379479143209074792936040536358632883927310851362401729350860458607452312429840693361784609144339534687057316846499073576195589354498660793283761727755231811175249422025377148627333308561930577589570306390833509409129585109716411187692706950605312930448859007416629999762587430808986379277925560261426172612624721968301148127585542655790653100001009818385162496363956210874588578890872640301531675725431231582878963740211224049505436450476823996766175123632460393220809077856834219876682582916022493657284015680320552710570066199313089192519361686793595523225654954877499637584825944454825563828228390417328599663100534628010178386671976066416351022388695945958907210999008521158074462408166267934190632041586732993634264510662083470465663515943498627720996557258413146265806239663229967622401602975201588418712723510884465994755680998789675891503777522211905371827133018070278937892724355011149011548897082011762658013120789521592142548456998805803243823108445896247006817579617776262805687879867250227980747304280537522339271076332811071099007887031645669176252557396062226282426581492321957104227742771994003595814024248596919027106532855878801973880539233695535293309083102852481584032475515796417812868189567584506729155002691506444692223716523280110546839575359801630026899073444335360463899865339345063510563174174643694808076424023491825663474850744351812455891204458072636358997401039249177521937055165746593325422861109250666631327196747194896525479700592139691049546708844658231911924610524790546290954735718163567356830732923077646521088336208893951738256995952954935708666582743007214030512465316771458582909431012455950134948839876690408249414855222094393613267607074045903509918636061461079271267215556035702225642549397878873022641305603012676864224504559225114912499693769033641923286137436421996800835566735260093688488198515609321139964337627297781253870858765325739692868681540277001842034501684771431584395580109716186118011941295891887131898015797278710793599557004922189390310825877776005702803322795347155171461002109817133313363220930013996172812526676849353212013735752761826209589367858926608673296522446528931538164584859577608646464085169164277358506226583763668399246603601222932790504778973081002996564031550106844423117440731096491654275054832543271165134495355335881993174248340072447275493789316438462777493814522564098949380549382684743807947243349841180378338285288407025766781641522489416326563036172322652810753880910882657180177088245251781230258177900722341333736681963160558838578910182482419151619839198877336907161019132843315627130154310912276705979196020312446133240366204472511592188989354510698349207387694742425736668332639042007750449863797266480165186560286288711304356590613065800790327839385638894865886326551908212909279282398392498842938892554676987375178660992813246003578379730292536121816411222747576328144963321758300720733007174707352066397354481371031475712845941649401761333204478661063687802871250486456926892384366621639555860835309359583652805887939831976453285657675602032146732334291545194984430612409440793852919295890014849776661616962843852958161178146241199430169162665393905955413905014289815950771430876062952546611957224794069323573964940939103767437573694606346468413919847090364797288084898224662152936567804375959115611297722782215688197143459955460691920674477154602648853055338411857462613395059319373837852011885767028445971499656541124507846678928763482341074421018388202842561871984594981205773272675696296033933199350956458115986339745270991602374738561447140373155462491203329647927055691200802568244374260692621612683477667981358947566296577532098565130867034610572763858097652831454648651717507920143692813807975621270086538506261277046086806792415377758582749945108827914303467268757980939289646710266413669370091067693126388299432890857361388161776902634629877703869423670189585890636570958456960072140225696972011007493986668900653417612459788532436603208087816878015048203505609073471607833093106479214520765275581917205878392423946756752838857427507729981167384797301583603639762802422284909696869054153004094343936464372531375306701862459876829766425273295744082849623241413657938405681546942177495313457072561028280481191920089127509946428619997661996432155726177327330124950387535659125110582271393918986880403854353273862623205089522042991279080058248691296315393383287368168583086615269681786094142077531880569450314113411338814720450904823644667866963717145644390659418600398218759441668909500507045082949843470643785240808054195364911613499038126263972985586406029828014688582841805479048720378195311426155992965409835880837810417762738430968689454447532189133890372246764471574637930738420043240006421113501321638179837538636620379268834262113625401136699367841487292568293275418195154814178597581492788548916557016847490914974339202805520423608984491981139668477352200631898421992782114638143120075683341823609653710477436860738646137470290468542169147451479435914398545951650024191354211977849201895542475077654919675829167276124901947252718422874100817640557680748639200362845575743947998765859181476293775297672324978456097787598796587212295155902198361681176552403758212695062047755602596206251091744230159641716237887340874042088210845528981800568443909739261837144307447783275592998270954502136503057131870066536744474123585370452118090138458504832100364849081655118220286574762529905161559418410640426890085491009078084395626846377014116394734674519707068359845238896328287262499350706620648585003348088570084230357247606343874007635273136242002811519463188210957202573394837487720876015491694328640681663737138284533839815593388937421241162861200276448941053600633661046601139067624457066107087443544236838096315932764516447795521653805414153184039436600333710821435365429450156367970448815413651976739197978180628338928151864693209703513135334030170104461083402926513275929626173161183830707091055517495284992852546532668102925103988034005580072842499332433294753007725309385306170588634655797371138053472638466821534943725753858785958253899516798936668683004057126898182841747701335137081553875754842100609268199862030379813389801152883926959035149869512106225854800816818971971228149943641711071730326377229800853388902067795056558354063598131449246997231945797959832595501334045083446556291822353443346138083676237387262850426665449989410264658055182810969136324967380164042385598537780267386914739099258065288956593442764411681723370218111231584373870464290500711618166158467684048248033054411036733090942528353669156049953923819585474254839021182494396530645681195720171989916723608282637384988179651172703791115010230816495112009812300553929284589978731690680373322398320354938400650599854001334673100900171866414370225702154491708216372120808758249394382962439558743527723619479252813801286286486047482096390882300630339265300660263016244010349474037922885759052967930524320780696445342604273226012703387075225071764111752206210076357727677215800946433865064871575293731848979883697316333133340941797092642277058207903505710051034872258010006041359478258255431783483670388920272590126088215776595036441494492283020132048883615561244267749024438040374246279688159460324546866580800387115777904925144045324739083961291289417307049575494706984998942737011252430962055500795715082549908032602031690737644200378823772947584815903286454120614221789438252544373740940797779022790186449457608928853394507164338407672135717583292237402216683562820571059715215180552399811055295415860031949201610912931773993071119328850993537933243269740583892005958130702448000557414675096555068982773108610581206153310435414465096101269723003473595700187863095850084673856500758093295853613109326050812770951359484299678970563972235781043644081532077578373293522092201381445841203051508791151725205717287980333682839797595178709526333242718865584946563055945279581837248249554552353138395005537700636912438148805464539737033737946212834651985288827863287233840728303300315393848213703333999696346841855149524006572619134382191615692063659391833138558958539606276679362457096888403686369629434041838495160735975518656562066156795474150623772267525934055278556777824490879436050057783198604547111646301855039157276849258665861854127809368659968168124815097677105302891821078232201879770504567318483237015288810729817927606329844134220294825439074038465721263217136471816422438842072205979922917904665304104450714218325991572208097868748004632301952511966183232795901259674687776582511634173880323143884890902346325142181463742550358846355183617918202897550583949900471094643115661797621384783580387380897951994362057235688563864319739430618943062830568138977063451488348779521268227954895581974715154428459493480290419759765877588372373937290671766787733602309806082696945982156786703544043071614443215137804215788466075204361720807559646200122214418688998775146109184697619844403773099105888372746676747452218745067555113706159397899971502057468842240333200089362734039814983077427593021052149470540059310256559267014860052596026505853138242900262470759662534014637084219855422277198423968358814979703323179794117409186445537944789698114392127062727184429487964174352747317922470189374877916814098120271079074859342470328439626717317004372188926688525849842534523502065217337807948183603164594200677498791805524623153571993251211064740790590479443646878311631934512194721670690125926945565675225984556720273851978625118328389775815232545634062586969650604563349340832229884981114378847368051313874617769936352184213800991307233946437224335863505674503973439839437960081905782879228916484690018096510712106361194389075618645804622390005592492276488883848848190692419421283113664614818392285181432733286151664875924455625501149950928944755306157063505616756467949536497336071781237021347166292452873909864862304691391245295620981064103171018538607651014056149294904707621582730697141900677282838322875038882924860248386371485309694283415624521933412836251082312358561511554652250524283812762475931867144720090849220628816442793545576623885540567857559927901586217155244688769187406118539724776781179348628849217056910741343924722930532306268232021559162375881695692904097431809555840218480694208536380961365922598669158429878286364023729474124444322859453134112601491639204993506103825633601207838696307766717845767534952196743129641978463759893838842529235899662827718347424707014351737991694918369041906773602640353064998557277569807933019578179608975949394386214440903696539283166773949373479768069984653300336149031550017383388501827115122922488697477461952503809608673123926156803155571730509867404642953711400830955595966158313719765507414385418997875308829976785776169245854032139330334866760318571818845617365976063639966114526859290197622689362253803646361902973552484398743830807365017092872462224449879933599212900757874944833384667025306085295980338533181246336360994456572012658611735656010118583422831300692572157462160595359395801239164954459505000681154794633431481159727831859331717596009484702589581414970262021302019374575256914640031519220525624479790149551508117783303107610125727735107374009291427938443811108443888708590862112806846739410530991376605490238561466632727001010216442679502901327628290334389442441517135906485139120278553398699201009788363635153019352642026755370285651927456672344185771126248600183429159897564355483399510728781058356469682148226649849764741537865242574173971224587721938774509021118197211266479004477644176263014959353721185915712967098686000893254013487681733447352869899430832866519413570751281369960254820715421897655092660498088905033029059681749832576599763774690982498315471115775711631484437036410689460747859787634941613354001263119825763415123187712041047535648834956035733936814032280928900131005799708800021526290133641043111856495976682501159264600691214989414359242640077853484509007282016450950199940821268713755337068656206853077699711289796912718627594197349337299467280252543361981615369210580560366404928576811687166603578465418185854757785876669736544326171503223763603926657410848749800341638262499888690896620551350220475449733285142753677892761752679230084967279893825389513820604031543366081467097272186134416986424036995831964667703932163586365179220706976353795043269756802468298101185935824526557180142743874640802049672328548362285658313948509093546973524080874389905262742671422932363330021992596843337887995203300879774493704202724398181850041646224436632286092850511767143590580061757644012964398893734527968879531235566149904904567052998627398467401832400716107600821845714194094124938668691138937298410031828097181235852477569283952924805997914057792451830344207304039342846067749182201811209124490030675548608232400611329986990867108637259555221815656404150257135161100259030602996423106247285810787048182533132652206247666696456637459317074202331444274406913243088763465909213986773605708717869126622678070749072427651267683560158633584735117364370803807082983739859731076756229701270393667388200364005370003593457325784995460037105818913782221617855454012795149053941813838697317323106565149088859591408793353988782974365537884477881516687559541288322951492015221101805053348876260138722122386841604989575826886064572038321938166827943257028140252985334695270283236057785401968502412134999973943560498195895573244070814905909934840922097311925783533193167137083213342747170131764411271518872683911128304462736033450729564489466416865972296084241047389172592350151953806682027918378674730449303748110606014809001308499948876390346092907662321457457345127529642091477005669985870497906422360659693940746911697123585995373522077617812349579155138262746634241925506010455449061730327384621672552825331170981425902289916422110561294772505104709642254633915538335564497386710668034205615454606682378310450273880199453858289435510025797274805719915315271187581268321933599355533545519027545830340339781201660930677442380112331792992568056822071358961279777985955697019724618056315790449117866653478720784417597465234776922026748400833394311183311832456898320645710253521963902946667756123630394056212929968003810164417194072869591337032312553370354264191791694802839885009402630234957852217469098976828610690308520106846645991830489890301422284475422466041573649754528827242176620975325982127274570122915063461115552280245855791702055626966944470932356620407694675601662390517687904163537344171746329548596323380056289294107678406713277304755755623463557996827621841099194810121037094118778080742636616657734079305040170125611305913656108951601164175312912596360352708205579075625737037119212031969262667943899464206846110616451526535131778466897977415757407887250023823977878315954099281620706668635070933319102136999328971691147153743512504598834672064632813940295281521238483147209184607931674015787330964665756340691625268215795142545084505301034881824402076061126480599522541585733286207032142808369390473912855552233330065837749059925030868157683559387484479461201564930556764315061577358396635293191074804718303348251014487802941322046418127111817549307994138463558300266006409925296920712647529713188388666425790501504883616730325524796005775869359695858811900293835522663392729679834598344975597400251539955191612751583155707596586979851460274827783109799498533308318000054084518588929548571147925381369195511957200869557409603698577296689084402974988363286322488421959263704900088223561362608306250630416023594916099213132456976196374310861738935369301609097144284884275635584340222704526404819602779484026601858312004853335980911101409184598248625211249334977487881214990127280008447211732662114751675555676793891625017683643768388661502744540447476072020922427222340883258328574703073374011756929739310807401037710885095227445809834852519669600028131946870901548230300581496143220307728183232949054577961877956457468592039768823857579039532660800263711186642406859978340519998487198788334104955307122127940285413608970069731811703042045290824043568354617923788930174140475257776291199931954431002049794169299587502615987073344530738483092581586835982433511187540011760507423557617782647435289502144762097282652493858623368922370593872256672895824701643044327464156145177809409003011723771970497604965675954747429763212493195149981384793830499835744371597571391287640163539241848606081036393608444057200996814436911703875442576686716028131211549462108577666983240290654703188444982535473436898425732178584455261700629925589057195733311873463640435539635302848948793926852127114835755944368930164211527520058320481485719413929604174250698774039553787080262132545679744395491802680013406485977601172539272839374933573559416246531072008123040633743486282340643578179370088402244396983421311236247824014935794460597128361458679590761615715416300887708061916763285042019158984586828937009270874503088324668636921690151322796154660611336033007103090866489567536217779426850778209013274881821788959541204855120492210721793702604208470578370684273085397514859113894671943446053172052956026375076715420241967718220286300318706778589542782450414161656106441006081858549859559679320840166743706444522253056481342961883650306011716158021774133914259702958018057630368356551918971130143375732480809289081934483396880817702420087403366880432264685115374731234785355360219902617477400238953963550560015958201559087566931257528659886896413403490386409669306619624416612985686239096607831187928649980344252788291742578266329811312174629419724545152627742412578518959185609724830090847915933512842521351097608931073259052328410265010047253992296559808266089877519598914334174366100750682606200680625395110483091317667193478723786836899090983650867929514094198925039117658870314824787897650917718679694322810092610448280924622967454034396023102422503214273534558026439535967425290771586100571867835888883464611752558163097544076607008930954095946074228245769320764709315783552805565458573333760765801843854117183524830488437494203345611983847244525391725636958720236019824557791079787432244306174608249259711446929124284154944857595253373276526958681574726755447635086521153455587413169920039427957515098212037701925564282059585029261347763485519094532019809588913691858756150624539214805253409611508788192907416284106395201367292348482915926570216633347084895692415903104182345173161093769204581786876178489953966779600774274271203339650189382594750736070378992417818907151426735824429778143615093762286721568611217403020325263719287832243334254295127266216403227955223633610798430409225942208301479890342452204458171008790537292435030830945634291393365100483562750149690994173768312873141012219515337962144453889009921040902987752452985891561306704148707320591755908212391133628723445464422135441851942575447824140473261840914972666060206894659476800858108187073485624210440582511095318866006532318702829601280737963233141519546432382500449859417298209160290169612282481885151257410767940821811995836771005656460297344330082232071350458245146862398727732841421868060149409596125864447344924670989809678782656331073830174653454152552795202532359218904835042793705450036409856559995880836503678214776046808217561781065160933826223668372599388831400538283388945637371651213893616680745224107660237890074501826598277291619204091665409752640027189764460902588584701103601322671351490416215809923831774943694223840992022958931839515880041804347311248524538740615989426513698355371951841169363186946846804129522683457894865945884724695491270432645028072450674686388999128064209703270202985220122417658194896117875469061081571376773027395466364718271886255025889618349104611211178887913173005158033348240600901282838431846140242876951564928615713219417991513877339590464513628835024981851513262884217843752841780600710009052245684829194940335885969526812853314935730799452470829857720405875470554568330405124457861281761873680738100894611403602526484545942528043477092796543495837252257976211261536325075836555062011044719658235487346000971600926281323025320992518811188774635785489718477317361769993080673201125371762572968346473212938365416441458749159579555904132236097672859788077790740864501057982036183665851614761091371487085279692636347824789004315623664686497510062545680552189718849890128881065765419633191812505160245496565803965562733125643893125068131111503763582518352654282388566095258713049961310961600063633938898270310725745340115587277293274524734983159111808430145611364741412411894670858166855355390708623888626612071276333731078848887281676452256936293221606333345255842701247237555619463770123957398095526559753092108945510783761519562463443892354033943460986984362502089885739209828542638045041470119263188692828995706526775529977785095991507906774313433762337534092920415955977117470582784785354026179312099670379941701238232339475528581452928443593947798319586057979993990137515343386895538216282662288160886979438375519066357050955194768660010176511377824385586606466842937960979381906475526532486021475407756724644948136012493307175989715831765753313231100112796054332408901142724375011995998578350344099769610223043149373651353080333145065729129842464238943250026031077772642129370593537454783327147046861882740952244610962370040029099326003309278083393018726072629523576349836015420319317831193962494360450239762615634088453582429645963158308298155860198729357952399236796081554970065561197450447904045811918398740895306854800276210849578916358053177454208598802413791223108562593818436940535496918425714516398064886012254387920857417125887415307441606047353155785085421350705358001307464233058623387476146195431282302075306746688263195678982758278884186956112717501481023590649879251866152106839701689804410511512384399180669621628988818655554105510563737766987063261103608668699875296971252004389365129263042802978495590769769508082878248815707884067860290000125788914141079253448953281264909222361105901434328852811273043489367950166616104378610715440239441758554604725229197128568012615595029642321348072861261190306909676396711835821387820495197493596980190458866991938603455780327611108042717495799643076179500128784267202205210088970881246048953192458912988299966935782752885925779927502763405743695574810238113249976367779635514978063845790363154971061466490708361583288999712206931846427337819217101010686986015918926718875070031981434944768469242097227457440361591337751117082257780703362299233702775970936149311292320014461771821302043750201880724988507343171603391870692591380133466685202879154493476699185939945135626575870497002668722083009203759508039552031077498397590749379514791599480759720386140080649829492560496335230090440979152711413418847375779587618138617918645894575921874492918163670952978733922589839154280093944883682287447665895567492291233211467727564886893285211344997862198167217529086001348251625459502868436707757679049505024263224125947933653464112654279523022910296605540369061749087287023934360339027033189120448387424990037861794356482889285109308912882791057806319860024280274395256378988020589021084022536855563757998211451066963067708077764089293626984662559813675271299009736490578495978302674153773559416889233678276540200248742921847529374665782483372997729297442926657085186329974241092657134949922703200048512129784068420027413068706875683254452603269771676842924617992718999951768450177442755999065443113664260085106088599379129161845241688888218425811568704766348751854186255740409782217236301512234662568983164819492818144755930360627586372706205119332500702685050908726882790538548938547658673067501436511999630257721937596629846939594200123820708930345480986757682915723407874910723377948530734840619843986937049537266227710100194796744446580825765589495399200051422019700327295477454787253913296665868684092821746040362099441114702515976561001158014781030074931394951864592834133119633374130040470844197503111365909274045976080706475114996799804616547445919025848608267630196735977142267501215311348952260503262768751792411993021812292105997344804486702311363562280469698376798172908775810690856557664225762220777635810688434703808887711706007766623001764727666662438583021525893967644156886899258981708570123974473242232560570798815065403863920215223484937767823136139215540070819884358170448664686270946247876218977041728560947063457827778504013149926794276952219452653754941013557313269882933986622601269265854169940267160373893532296257641342673501539531690363067481887260080971979031094239883194631508898597737232397117704698448806526131170727519039600319105710518828589799324768339585863334915934779361015402389683057478552892181275718862080560845635765726461762798606588701591984775624736877932009750524268433925843806718074149690543553596808863573828325587659380875707785763188666732645128321562029294923210814138553563388513344299240118902895376300653578047960733938581184034528123723738861091313662381296773231167499509595818826914711034332710826983383019223559047878232087202192082552308219243849559059739607239422291154760443990691482198467612644841895684280418419196727753773721302290128886098517994265611431652083949646146211039422320429086895380214216270989041666944004913319624049533789714794112682432740510717271826730567428500332713829595845130875931250731244719716238672945631000437446258083547439428841592162142720029368779090605605009862449857538216165302515744710561481482716830073173946822455249207049293332288403042932709599507216010486129254968234365758017958673719283489192474808358790375687005231602103444289131981969698459143968407101068957670467322937167147564484009996026108588076582148579705848354649957444143898501041304360610343217749071728975018725471092586033861796494537096962380094967436324653068292690595456782705682444242209901001347138416784531287161196530835476558707002149366190185201761909133320480428006560215569887995712761634251432004706796884545209837455527161350758814241916082833774986539159729861800305460867541550204648840470057568619673079805367966647499721790292980496464887170008730088385104299188033830251535477218762058549143489456491102813992323279903538479257513392720263115477446694491673970142684971153005298677257620990420487389167172075312375637541619133744233923371377259257376016181295440111141887048992374872683959932409377320381789077811296497525863905212327917227657828951235424049490089365931904645102414836757703208673704472489964141129959562086161699914403018276068543272256956461080342533346448765546209201156116016673619461559893426044961161688718901425062240215353916257737868501488255202326519295441475200682327653771979174109723926440125246211769813592715805254099418073358452507250241337547026074351016871361292745686876756487910738781634010129769659009185637688119232698066626834563147174415989104618074417273541542900314337958019138821891748700267008885821380802966137633084219428947378606810472314542446317810470945812163314781167289898002102825263103877163613126262391825368579587609891337127595668179520724641013084269684716049602231306443243215434808856325525255773436227440141621114036803098252435054749498818371789441800620066635253266498735983832943551718126488459455298397265027110621579162140351690817809210822676809467715583117085190325189374651755128406116084282447562106784708827203458005923648674449793183057380426782444367096386580349953993767526953837892205604390187760035701816122505313344537737370100025864964014174042153651669185812823738829958291067911232825933511468924228965734872240656533152731810917276277699702700603552778335996399113038004113337616236525953252462782619897746686203301623238855722286883312291116452837809894149862310829635807750563851687054428972377513402310001547223243354259041851224168819228492952168308786420871905167646295600144253166995160716945009872074759939676031614888102578531449442653864152690627159964007130307907078912162634428115263990519229700678686344942708729624609924683918307355556351350042006376351078774935588673517261922880210960446292007638857606831439303446332332398431444344223863144179898916665651010930880905868310780856434477112376555973487493684357483222912154127372901029929733369795543220854120937613470149222413952685334609512890107185860555434852165413591326879291617552889010690978857372122258950564290611988557819928438786287357018997025758507320509122999303088097919888849038804797253720598082292509581125880028678856317841456696475737870244735454519851835458638876988455442773456340064655070893419256055618484226541244904162773227861295353573784377539530723558379691033813292212313254103857736791057283400974305828460490045007045647777186976215558002938814116768025020871588245823595420762760807928630105471445632699101424664779239323726195482469349467926301513668591629609772792406473064457428701784549182858061014466343087061985443360229911388797746538109824546606854704732832245180081873979580673646173860907763946173214538350491561430234706067291537114145575250529672320934117527077885522347911759585652941019644267763492017262657135574672673869842376800476265289982925187511897885970647626626503008031875390906984659452640785812790304594197348498968068868875762170814792087626765568402687840119022037003817403137778836645252972601826884298078120227462085572372782272812492428157188285147315108905692022135893611840070209036239572831517764792437901611288755042419445552010827283740793332685156171441528040151571759568427258667110123403553063466036122941642037172576028315345104434384310291390894595760293355494661195721810895955871074228126669941964987986179029739444559949637008342632889069409686989851940934155118938096248185876668450489942256332321194756260597377446265836659151462014362397631002371223309699015838147826815739321980486263758600571461435409492545921830207006269288112711607628908867397756087629124665546208173849759773495308527436271872883815356490922132747407621069990595111444295376858559199433438966719660632456089588237792478829585406274379431482168580088242765810425080012893011893026304098505532201062361705549671477952928255605873916110759985548016872458088364688559703132905049128212603609996223082070297645663834069342810949963277099404706552192182698650832403759265529439759826147680000603977431231064665924213500305562231548481001160249931283783965721414354594550193908556276573214529796702762837162067134104094056831269218842456659548509138489371866045349480961978136174518832249971844570145236996578174728077383318419862048951674144844910273517629149726820962188393156042847140734151103753564448447217000919725793873197084305559671734302813208900786989852389504824167697186008198526145708283858211979094429099564423262377858760366586047382814338658531965411520499214162837798526014796933860956983638139462467910784158426889127551996351111146567098706078403713465323667763305872896531151229798323364832326104096832078440811455394044852091467715432336238296178816843039260721261121903139801753091822937270594620483281400301393609590673052685890652638228350727794396949506117732418578923187673778734393991349840062567016335458978201657434636344175376133860765279416353639544705014781211159893148846676579875097367108786596974783406097551835788771694564669789955194011139574715019234400221690147240371232974645837942716660926103703849576740877791896635234883964148172969639234530386330655524332957478369210731418472871876200988433694919019134479294252491447811374929339062751754637337063731745399199597161764941858473272734109781933562704524929484671921333709908801534247353921879055506204016344529312386022980473593740846227050800557220553395386834143584016013698615111766943878273303615311894242211677661777532393134989138261556026399689632931685733702954294941684749061668952550724488558653048272773355672800791039182641731877466886500104154480752354471809960243839918946364646404560825707374900417172351903979018867036843625105305762504491015482306397125576884397705334016438133893544588774884777151808739885555229954843990411513741695698464133840408446984023151689434252830306829597523066505643667572309118784478244373095084538748578181093736468960719333055433719548373528016673382020428450948650123813805388534173598801822335086127301932006596885703695646358701173755511395530649130816347376876825703651377708260342521968293209158840676890133401781257069376043911465872683500656808046532611523103096806517000774551572839797325926018898148071949627507571681232829498435816336620699299749486684080917035045475375066133211759247278271773570161919558946827435644078708377633499193742959247776033145488893754810275601240549925505114756385930216079512559450624603155828302531639506293871844274375461351693178173412822877301124833087725921725444070638870926370704035972838675935338192062009120905775907195124837678876850081425017558036879920198061140503449923851687351723962380131361348768316595336943734088760717736448844315431249020737983858590303889059560898068086875303382612911345447367363999157585149234592922780942888658056027753751068014277509674555365616284845749632678382021026589387679084759689669952136003505798783630263450099019063104811973785011327912806097678058378421564206217014805747251581130398189372679107468707249950226030568088352070608084864125291789620211931723554669028425198400489182110125198007575486883179078336995253222058533665810811516698223008453635964239734315765619888400787271881119113509405476072116500009034221205436115414473161103644310541573743455229009422771664306927347570425211092090950971979285039798648718653847363469046683512985577856708871532421849052296089868284948635748219426474209156842301085122671228744835090339988095430607612106612407111383570596337292636904580832488321962021145911434677422339437990938836641255730656118200034583958819928865492154411186250081856061071798744374061704992393332971915350621609101903008872607545901895749871448750330823975603120445674964836352202680855606214103342404153009625978985782391697918059560594481237958662952175260809969920199921756762399519393030944114835920029725221035836415609557516506180589466089725241261799582798960391640526084433876911143197535847433494280978297013297592631477464719174506041826858860424108879497672462404512787000896461410823707294639186091868372865639855537244658389035913574991486554400469416575656250624575742867928155570972025811640613268954031046249826631068314419148900664939710505376684776721524051922525588985134246086225536244045314448611104663159296699292838363437348839302425161882269812701426464319638074795966721066957046040454135883385234737878189158523168275476786169193222102469842650676488824779792582292462472200320848893927577208262156303272221238435441309078576710247049452240167233886495874771612809655861295755751918414217777536150165755598277992896936577663282916954590773992340051268811472940021963428537597712085229497112121841969381683547650473572482029302011890758959795452963722895652319795360956839978759586419619075419465584860065573385424851608600358191958558121895538120445177941254038087839345740453521942758986386545153940782794496840898069402098030609185799074124553251583383811043576495568308971599361329936762020786093044845407013669200274053257622456038743133136283569010135670065208241206000279923400022407690671705736934196866647485234662887251914573875574124169331381220984512817198001848604236344578547256746270644988957987201837870633307843346020993756150294112433856654202071402728523061816225091042299120046094575555644632293932320640016643638059536069215709402508028891321732329110350057725259737614359976894997807171300067495722412212625003167777955471964726974188412562572387258835008648203111752739928198913449725945145581922978765343567799138081743667042121071912742390086127924403899713429785140952375296892660228188561626910625295758088161102538494125573591493072227501935316684277693305221128406986565453301294674778633972374392973119558934234996362499734321271330732265399745691096784059950350796731483976876720413209180190255423995793212083152888284995722253536559451964666422024557269904276249712373525737674177922724208395221208228284903821450786328214771366646126334208862977169130789575816044446148703059539073996932621791736902543607277756964330637181160734662480312813422553432996209402293293516222919104496906442032165319431909657793819868352400035746619432397595593377587206082340093952493823462041216858777773898024190501309718390936034060718750049476294844933519219800655562243049898679189025539111457250263574830083136110720172573725666337884691706672479424211706852280756348659342946426943923379420332947497065900371651738482241621848333591818640390131352892925933221255002130664106710963083890869407528667396424285025728504454793512209228791990691532289690487081344085905546905848461105549215870043391778743552495188106213037977716511232993956937996263487737207959312198539193658028544133813548865699337047525351781846828789648926204412265233682440167366918680881446900177743370321100816633100175425430855515906660181526223039199282468311741307888839484043761726762645269464234664559198617232997324378047301242445581280347494846339467517771508076278639076569889128438881403016926522905438289769790679346219734426405471954558887023523355609751067435585695728084221809369400762266175293294123088261115399306845532012589592106202361322182158053354969711967368072397379272281074962315137227691080664901193872111184693476746978699022053448052901154440060823414702189013609260794745071056804403271231461789484050424271810477849967434651868536173241676379511591848520367162893502753781832515400567415946354426992570398455445224611747785582525374360746149064579574993620741667662550472074476002852538095779105679284743858330637522501347610314053159713213734727553764486285276524572782583940676314201636805882452986612575986608396700882797194302343428340250296576160966888255325620916882694207665600820536548441231441270019735587745420039088065459184858738931526617986610097431882159179041064363852317865823700016938833679167257003281687768729953255582039823792896271428809370043133706258651250457847560677512054677845673278733695607810635691105292288039707753385782536197439376663771285979828098663923234167783993485453393428474159273535153474248322942189010523032311046355656514921171544757960233331936620792388270213792181402689079395553910209418691866627826050656573403030637816215863046252841780190586159163448980142990540667250222169991575327408621172304576190783707135128593002954491745897118435294456830232174230486226516694544252123486689584346625643466894450550466233636776384533371620254849309086668560925338251503159930291107950443411004117822659313617643613549446498934666222543571015668098631822942779824540607299173286873447217861993519906290249199569800549946446645098669514668431862396195945449903212075845352210059365564679122208011618572700482231698334173524403577937739729145668224430106085888477945226373750658928140771464002594369338833279987525764550478568923656217833661150359789554961672285828353849091977702502703298908965159626829496227059698974694034946218601893331842478476623790407863669611035631891859147987237173238540571725043758887883281345432428957566436674368018535682132712313125810010643924229357235604752083809111159394374768471284754562720016990438062210325490403116412857307006300086950747862176665122874533168281202758542611373571897999858567252468634589550469669900149809183504039458068432525149151651769343181255114539397123857560492134559108111041151165914987061983195836867267610148128207983247066497665357581646725503818157777240847425583516957366624791958103869355295465549790500658718391233719475695648971128973640274434457767459942883143042815952598897552237212210847400167022592577470588993140261621499442466150363209243161982383519160627373310072931393358909728607122526310431323566806579314337029973209917192575077336060212673352646583178021441264386051133883539861962608803498905003560120687960879080685282599113267108471697301606229766138153580563634278987600549100654277491190608262383618889704658247092248149430656907030014256902475443262537442679576986180643042802321468280396900408602162734470142622603370304877898106924942350294498153102595578097422278790323594420642269989996886627469380569372089250768381833784966858399595175463273385207824517050938404188865808704002420788795442970713187128159637038611715549389522574897379046939076374226699116452851838085589373340076800335662743509322173447847303448694969689439916836687067515994171186178426493094027423587087417716037758195119257466864280070594577675441912408685921987593359953277468377423751051975728540605369531331734654203849560555168812248356800173009497550605271855006746242400862057605151109985369225581634031578112595314769193783003710016403845356508733661782395683194471714495689246347674755484395895282187505911922009442110125792641833901339287533869497900401313620640565610181335721323221757397802555780556937603198531311276371856075555036883465002228470546787853033354731330020607321368919351730006464671043758202654154147816837359670486946952188165370577611485109712986405465355182498910885626175575972705866385723343129893088899305270689389042684615080276864823281978858878936444081956135510275739486235793583691529057038629723330036266805932116777469671573046019627932290729262455576934125064713549575237395990544728152127808605540719123651862756945516689422556184306058454390867725831882214156339186881943224353247345501559776713617938207333282840804136505606395971479178712048317267815378143986469936138098228975397962402196533089425362868140741691929886912064187357181837592983167453667686519193428641236163973780992886375019553358191347752947912407760935008426384448135274568719390334073684106429317487647318157916431690070118125922975583398811868865110698720396643940377298822620540729458444624740067354310720278173474922662859865583827558094812183858671417337275772184460061634714215969938119382675075068012332450162660865878844050874791197025860828267558344861919953239090173643203637993028257770411464627235432132142448591986152143056561037992023378885047414383008032636650189884117753849655242585055125294563813616773242603320193321124588946002542307265767385227121748666633900958210811979252772718729666151946261859217604901059560891129526456753239640171757163623568263930919067265478274138316109687787553727029010010946850220883574368848119720336937201822302067445918253092417458367957319327725747907448120544498257179908579764046820813111168328636953441838761685577321606583340927265338188059825665363760308655458894377680860272774023929650168051725278544142078587354101157770082775326090680915020948464911208094698474666995481401221266966685421978097911172247255560140533052123419431120384418087100352397945968271285808762537987112387112908438489173162423655245688990079109563680616717587169463104770240800160766069272535873654616876623848298043333208887867780874191702502544954446900791557041552846812796525371478127940517053066161223964160480641620013865487478118473905348088904872398204832979510043237698253020956092165316544325375240104954297226292629609261915619747696407197090217314399851065246767211766996148091104030247253366837979155317806854189727397268613954717176345760864646480178475346081425614578837451177174655299791768414371433303293906667101938816959171267836508313854533348872263743813254646962346620945392885954772712828820139697342620010907531785240982958712103235164798875385702890585933551305239582822612079542220168361249108525782791534174867088250211932661150575035206843813337153721236097748291910897383954163561218628633641814944526818543448338455585157815586665377027953130962730857102820359516547520775419895153056422544007469577059553641197304269134035508463228124187925492358199507945269444581934525434902200110964483906145888240851738433984955393525713368705777046144359191253704177194215110693048257971466170996886031314186852321315112381695253957468910947061696333805256963215583735834887246361898514422088770433729667228914824487573935397090812282782127634068356979657236936269503688756013746335511564719013779879209573854008643977064052753138264541099513586327893604031229568917675054540898478738026739347150525534556642720840476021982545470267693759067027369791293193554319080736939416457239327382092861934586818475508123529273888486946583576879472931160469479269227788237090269118440874723161040575583195163951463681030193664669888897492764817373938903748452933626602574467577834525858815246093336427508495562396178489330163814620013608580054972758796999348929177714613855050875156341777945211955983719079968354994213492203509316946032061460344403290361604905288616321221530709876144452600471863844202155359819428278614696371149665216069425880278078274114495684958024178921134653206475538341132696457391605924232771725898995068702344591163385005461694686910232149895095747964097693059024806940304604781936632717097790904507558733311827410053021915966523913220410798701740330738156188733678147718016859551448684699025035350935972658121395904838452902486230535114779984526027168585407587422107610273974243263090051674239348517007011950280429022926583170197185686807148817489023168730430298424050209308251999669120216390244867960516717472547606896527818807051842671983869742919381344161404498723942777114830850391424096884195329518501672212685399649843229267447842874315927835416152316547802337093138272837102189325743722790955030770226667029258230652327576353336976326217534905091022160330998546171223034085969142250120738044059923530982394031794567581733866582735195243421552742922054824731161663692782351832132577438001387177853165715998215761365235836683922918844770593819752121942667546989368506970593582982844769763883816387168870412943688485673336154875661797042536478614888222280666044995354367963526945766030690719340717874313353552224981863957509371343813010654855188100704854200264439726138869147464071646950662347561493723790971789199847901701645919201920650211991514170562511641685089402766469492356998147409681887510719804943342993277739036291181638221053402254427444020840150222306662578302982427177862506301568087680557743841432934204498670525571819341083345671314761338471133347530837420474860726328848598604841769624804702142864201593244097987886902846200630618764687878263870336246170937966871213132855724507233560966163209931034680191257673352175169114688307582263741747998713906640672113980222684618110553562568213120833891326988276244133907938378383402600121732689843557039119379627947523658227269640733767781910659935244783373684847275195601948518416948712685244128127159237448872332766827275453775937806674738370437031102304238845657577109991821109773759123473596357750728545989224318994088531539484469659968296909083749628256223110236504458022486813373107081870454708044093335775601209841139127521445301348030059076875939589924101882725066802315834119762173182324095113338657856975056534142960295147336930661076699015940073501644506534102657766005543452731933020801194856369526003984707693252174217061544144405234841160525377047740244769833996167578536453249523264760487106254600497234748974196830141740384962373106419291634968104744754017835437403035253557058591007699724707071455177018133477051225359653651458292492911202729215986272685892639259220429370912098338174232840888709080755742930479760542123431445736872621283218167891744286145678670120645332522389793704167914897756283545153117347437594660643766426919838673931695783128837262755078824470290675992136967063152791373096228640732438350313151142029368131163746248295914324532702185180650634090576286074048412142999732224296424656353732621886155588975329948696909326355015451412734954175389509088956211669273129535113481888931668749796984584719507611419710125575965904286518368898495323896708865848801263836752944306810250459669307831238174467895353487483600614859792746123741442979995360921356736726730180116631624026495956232570285320172181136675586478723471093463232360696602962411969477529995219525559872837620952983842288467816046740086677871110393628294535297173303678113099181442564119976449647884035553159403172959668313483086663314226574016682451042852455153531583712775439183946049423297829950619480834082494559225485397766764917159573170934507462470540877156747478481191027758335654355967805938414333008627111487283212805124852384401073446280877328749188927837714091929835352684608666638442432231705182534121432078587633467513450477740999490836170005591520139336669903609590835204583723773445082982381209701319793633377883436196692835034446821813183222144070730878824683299662515665303848548012344493083350572873858562424065618103994845849635035225984964933595285669331108211294460292870362629517874816641707354578778809404931948773060904774763915883270024851516947129905936737660965241185528187696359367609078830469534925588095399929865768636817066571333268601769252394229068437122878566653233881843920108556343144360578276513059772224033622363495179120844020107810451184728330607829166355455376399818776087074902188221498664955363797473764425833226515555697660225918753242063165623171481770366230797555004491360437302435427891300690610630372365364495521595567566581236554849491297457172458093590917340606257816498774698929175582089649807457568167803282234623134063927453810989736274109283933660719773998545681978195100458474402065764279400718446630276644252263814331903954500009457062873663795366543782389252688833976488735821430085892285164146854933475444779712954933909609327149776553961497690354703538136387550410825675156955310538355923852509635259656044919284084692905097651560935854054733949987947979060650487595709568698766829433638784077569294242364374528725073291999520287200306969348581190156161783217498367044318803752769689970461923837737223196996303845815459014972891329986817585920489862179110283370360748208940771474034073969320246164846658673393321133510134753417844515971315974578008949217649545007856477034315023774409750842108070396822249161762566726696635528816949885492690618360714155686776003963211742366301367101390093569748652606412868074901621412247272189729504261405104471792955690209421625282498953478824729663016914755072549381132099300623937879522285994497211916813119056308335792024302638072001296045989576311640466909840411040997992776733136474143739119178616005675768266080903900686338466503027498356923031095546093572624719733193843924484552770454930498027471841115725635146430631255180928193091468954249990266284010948716606292983243939723610646408235080279365853472671296347189468065468744606062082001637697523004574167668040239169868872058703373885738005096635835390548614213385873214079462332268809942475654269774417077312686030006969355843404863498788012705874103980900878932103198889564422918653971860830978208446679849494028558227383708149884434848350495646528244395627414364750138822523542163265244683780789886971070371952476952452908971370357157952869654994033032707103439206048341598056652103114406707447990649241033958677210805412909275212261683959032005780901250059038165417456712059658852722102796198737709018639547242317604102520634153050860887449839827628145384268815956903938321039957047239589563152531851803149687031122409608643114303462260788876974706949760147133610905079393904769154780840016859740972166527965374849489180640879986811156581549862315431172680223933161161425025118256171254543634073590929927630507117467422294954761369215542523350358197297259525308856131171734184923926972145687775670820692688265200753774712521121611648081183414771372915707808594992090187809220902802631175243048778627098104209626302704321935289482711278282814478092088013593986178952439188636304149824378381645416881511530270877490937438225357538181698447398196092818462050465939351625643182733095021412296273129470980137646733971435744017075472064404636969685883982316294572417714836568102126190189841360112508403649111542859003913392394144101300593686711984468170319868322834870833599352405004159203622674095371124870585149160754678422921619106553229748843487082467174617877409009980807535347061856182981598246722599531846841814492527805046155173916802027087255906362977728413198078881772477208691062270675452391415197924465962727849263362891252866527798907813503988318949260834714600439645380405579754338073168305231884938863192280598622732560594464531587826110211013676462853818450628530214792181481637748360254884434969314369465933064952127055927750062577689619530022918853694763020186706155501304159402674743400171658194057877912869008087256242082517281382182082050278539027159570357632819972655131907804934971955575390219878286728392706972476841130879044142399818968921755725426845850089080299424359796308457552485783831083504537395092808557558909422391805247041724884556500161125117783553359398753795546547550601086135725991697588575465660011807074585302919492917873526358613252645631999436584074812536416851041362943792927053971849468416379585940643880255641389196440871901887662012955114661920960526029606975718154484690350406090077391918781363742045401424803994455547305400045161614442465892928506877268551787542988258062983400313208835686199565613003424872653328486874756340548034035192678579426548503857060511211377700063586802385382374650513523987184071599211207589301458022099898417454419746990035266416638308650158639641243905651365432186497694751261029449752697961517981995313936089404141205167477037330312893565012835587894141360532040195367555865155787682317825382863533582968352603648058847805493056720651756102013511030684083721262050625056822291553891120054974216373096136663434643013742175617325656481131617250198186869464270834756572882965581696684771023421794949830145260537003606934983007255155788328995428898883616161758582107459364500499159365061096205160665236846639514484864879166610107130088423903431612404033639716110571744074858539349892636183013982049487957583638497937988054962940884937056482625195628613111668794055929228486073112168867761646259202177691041725820991681728246249129289582246281030736085432050101065731995331963316735444255881813581486148789703449348264994299114418445181225537572494128795086865873456131160795459262179691250157147300033282927643992672343897880901393328533261270050388632282837604895919907589635775946099307509665163268434211175330317247629049957542125537542159452181569467597519137670395956452974620739373285037905104684038687752195079242733147281981338254782948943623480140669249203357754255467389192485302491983759710737401813742632657254420788972804518432302123607268990203018511307548987786444050030839898191418947417149290724552328487979083172690310274545129156847479311702299218143629462936839508339314576445790484558827406559151737903432356708301314267746586111745600816088577435411596664240880613946302875881349673586533300944316999485373737541234077059146546529073106785721691270653444379589750329424603677547355498930839354276220305962543957715981701143887763331770289071533852884432981694376580223325356198047745828183536968167612447385201654480014701762014921428756983437416268042903565046971059346957849689971199387085143783877117398837441779924944903334833871000700485463681015434941073868653721344820608336888743755202404109079781613929494734058053310161780558102741533953420610257155663648576309537237904568925756395548940318539812209238024588022675843978795312387814511330197591891633178445915436662398035028825476477508443605341821468770783879712698621714108173550800092233068469662942253843192107017784292576102849535474924899978617917519076536876635380240962558910338063197736278710280869684477176066297271225972042276263071380600373623665981960290646349122944252089049371611218752452817489855856387528662960440424364477364908039838333366924835461573814707597625971516163039420089734115253077149197296159655375017587299583926663617704432541960377581163618881997840260458926648075682324224498335764044191385684309357429867764889197562443599063455307707651692992809375776699017303339883568852000633633855916148067228753680851469847230325166497522944752361339466894058812321119698029924407135355646293410723617793535092580836053678936503657999158978095843342131697704072039621071168116592779143796911104080887256664871515383670041698478074211181985853158095339478553104192581125547636198000203708397508243027467101628565388672495937425025724915648606088243491140531767746682088515697720766393789825822467546270691669696485237892434374682699793265425930273094869988526974943322901161643304061479947306648809190431264466197094225696759566060299509657839912654711807235464695648882447496830798381347812612992170029869565957372175550241563982300645119776868289997753834042595014898737289428567346841602473473885861818716940613146521561072045756391784277937113288259273716263456240427308006781054971634200149797272254750366005534780180657108279744616369283553880429214309662196806838109356402717236550887432546108932110032548759928558932461182760267261451999226417676145600145808504618263648607329880912361517005148314730843584198721328783470108779111148887737133076122316122002765175644350575999502614742776405252558586917331906818656202459045976700589391936922659052053037837846517841652348833993305326821875829250006518553194048670743029928967188751623821826080644215728167465365053285035385106071973417431957627633583228709050179841115154066747598580684188545123463701278906362999838300461399744868301718150585622906116430554093093968760396742043649447251863045960145368679912439471755368210188854319031012373091253571647082581404144719827287639041816717040446638747430872155270324579063457301680241690640598199701251487756626183440266264718523946609931638185548934338509699385638694809717397784301688654807619036970228950759553693281499178506919984317649923825626969174734284339667297876790794510691217409875691872336023818436629359897285754967870120475478205187624543541754720064671171684475919774609633625519913065033714046775807666892113841968698615471846879185066791268745358020581387199233659349469575457532438708568336255598765810242597212786393679714863691666619066682269382395971570131151262091745712236474134334729785329829884517042740861419279430828467472317066161683686629560986296072622339184758958941462825206628730661589928034292326469019121196237371460855068611789825895198636971816229709389545476945488391492215887711096251880025918334535717663735479757445536571399319935786504856010386084563562396862206048746369728101613976097061690891106450261861763066138924902274169474010616912732522098323880605961921882506747581846043809900092403170294272004059331243358677369523667394945161039589504352361572245164701554579993281346912405240675914528441711540456251696164727959288968153878773834846797856061963283003688130777839236777514534780989679797962382799100546362071185413089206908113935341138812247544586027109756728353645652714703093426558363751842534219836723572146694680851572637040200969248985204779306013597621789040162044939523269688625301073595912530827109179508049686315657233616278573718628159693381752307559477704829072614757411992293175745072520071408628932704458021044961899708938068898218112961371612979286159374177744301559883254382723116578759697664094173214181073986257761942009129942728241088397381029466016344365672108512112029070087687485835435296514592694456355729275693942472510070970461693503023912911576124916185607084698865459906728404531766097286674290675918160119470770631050645975707478648099013981754383572722031997869831022710821438019975038004684736002925202757742668058237435509582710149202751676366475971974557350509816919281470369941214427457097542052902964189480031751077139767415745945454239044320401723384912401977236572122704149291606419110593572009588947693018828505896984755636647251952145659142430372789803012881588130026547364604015317506677715296719788108578017156913981743602247314980405784671161444899473345516561469019567698643841160656287907480998802786524404488410887971776691409677593257439958358408696951774195101384250270415403730686193904884757099331426247996771474833090750997921328333327471675883367918412172826244421930947463550688541185665478726083545530175865219056144464532644951875940231650312439282218602059289835806007049797538728609548189872635198878167776678854728912668701377783839843469665273737322393662385728867836530711608796496006073353519236672082684259482819024113516843137549993268133040890302771653890276332602956631396387193837307786348086788602164210246300190247037473956153821620214450685866954579041440638833079852161613742274887354730501281442613074964461658022676139252636702399717005851609419440095599659408278576278927289815496387985550124031848932471981297695476855186132254438913334795723506674058518570572313133946479550489826520621494472621894950173425253774248716211451958307699241957060398891247408795805693456304759502837055267628205607395162012834229768158414531729083471230625776147398946180662735706987044014091309749947343951967717852717926042794582875172662993205032856898477045984731862001433655936891069958014140741773912431096941286755805983595751967463064378031858357845236339492079432133351339207550759824716914369020589308386738308136069277814229836321851487276757706978052514740117394979709164039776341086651271741030111553369784734477156414302416402345313231179818014639477867684093223425882031007619130362633599729526151427363302560267055832323142293988079487179841416019910701074436337476404661504640501948966962229987044401834098105431535941688220278091935245141164822300529791990210274215649718125472338482598283600818675151589218465247729765819088592464779822262347913815976701399794464088449047952845372542853598058160818864683621776908963204186508562994009267393607382181607324778389083635935304711307931766424991497296335737383435703911541149970240216198768069396602436204743710500356211461185218974118111088112641697802873719646704110714750016197432290508577312922246147516346609393940046238476183064013910440367652708068390298606701700683307582233578129850542256208954595548558437417941608281853389834019900685674643124123767867004994800138156483638968863235791035160861717299265756578109232954737525416868941319591559929126842189188344363031137836498145843451985435599469842524793810592226584709488706100513704322524218731569784777181238300920516688760602257598811561435641385092119006899246269886385612545203671212950923698486457960089062019295844983858395538671674981517133201307404105100622542203745820486675317696538226448119191298515544180302809969147152753232876584054093249387906061935693555572471297831248959485392522796529593387514691506014172016884858615199415016089381086771082994622306985602096445413417533096391924124928862340461674603603304115375243479830606242293397498190416628211898832728437698420196517803032095994999855218069959618198701117176877961368856601753730512140827794863028359959060991597221559000622243228351964285397269227116773240961678066481278237838122962491718091302202163049429593783005746647760252877148022006354669530572863412816146318736703364135635679331293786106407539339348519639485700511836053904892691254378793395897162529719935318899748691702471598294337733105940258082279661729076405836682842325705267324413067072453039961161003636818836781057269125306169596238040001387940409560726730653457206010415943187972824402468256018265519134755370287193769728107204054595278575559039677808586587279593167171635040675306552123247814739951978745118976726244002257727860651144719536386820578301280075509330227450181625627389818738530039914094302413613729934647268361632743671600659354019793526775874711142135921578607534805104202335373686223254157946018520563072719318903195677746349315410870114932295812884357632906909097595001732982911928016335651266783333329984870621296950488063791714393495910834003971940426430360928582853668383096046589461963745362038540794594345247113832395813295907695258709526317860111570213691798930199426841277666620294970755797321162309422172873020795631970383028333054852926509009683609502353696967724951975517258532116757642264999491397730467358819632918259905970127936366277482955297154277549555094301130646089292527087994489940641808324155777353584918435811875161261393226047346918313120418519738978667228375012974080945387083885023437050839622576918938044376697564307801553075627059929407678254985914605922825458066089907184476856861733976387960149406394493621030305450023628179561345298845212861557257080659982771720976907373154373030809827933421069573902929090972004847859213228604110280309332574564192996068734921486552332369714850010724350801207665902947796215001362003454844674183065800318588535221095198791020100963092172037300079916758854803685882722611603245523237658402971393855397311129962601285411043704272783236469420285372543588649506911602719926661337889358580673142976205405677063767797765820483122765532569759638831085684368939977235913235606566370270747033007841832430346683538191609364341773905952492084614760439456815143895888373645473226917970264825230590350728153438801892532642312005163713275987145375135237495179462484930219922070065649753483848635536491523190026605990389106721540083840393715079613927667534681524299931450268052564687834037501221050446317875848616395055890743540124448418684380116608002192432068399852619301011440472241857678880571191774038216712409200851637555376057872580610287174904186453215027660451656010009440486159762509082841940628156838842076729743291934384540366787498609332074861432652145796230177289829211683485470556589782158252920102251291160396847173215211219907312854766901236717916691802976455621822122312271815728907887156793350514009394587149769492037150409262001125350762618685091909609680949083481338795653331169169551072367887851276262212050741960212201937992920152442388363578317553582639246676213037018745290154796838898197647784837384053889167669322543000321585617042687972659880839651271985984737987198043559230737580399519530095845373488785068933077211463626809284269928361987416604457203241718557313839100182920055457444022557587647662485676728174986019523630016891614653145412885520174989313675394846234422623004531565902661799151729775492999589543715850033097000395008430580270452379033947716818764503811990513281804761741675901180075078213230274286534338258377214886387896139715146975715958198107589659980313955994216810204772507428347215563202476969899543490896955913191414749952146523865876700925596201501428238128770511642653518969224452295112841421544349183421935584156924394924293288734754947785322432869979225492378542146222690729529775752306149611912832042127920343278670358226984192350711794062669128160315410986623201725075135033399280829442021812219351136611429595705877295804091306890941541391002031430732696696120214674257942712873105818099896173242817502130289901654124761505561018998976311847472647220296659825922947630831346378264038549807241873900619345573211716815170224746707684814006112818885758236559419141521828922143665889487528719889563392176931940845427877674166597066010669725870473529482545256602273097808304403175299775657488548574909103388116560438687509850885552652775546786295505969642850362629044759489038427951192839233840884896394211609582533001234230190551510777602204539543345354666330529101040494130590003390206422214673954802600153248913599156183018028200142717942736469593745297626517603759648243941700587448174785691756620531447089650628365345717486612271570988969640395579884299260597485637046218394609675428052576876857549940027017943222964645194700053242311381836265196147373966930381655317500782147676403908083288624087569168851533535566040395610358542512187750735304956417525577664681693229206871554478181013297863008613461301392840246392757863713859188931281667167118559359886441995607290251217431784611489942631543266404195067280787477662682394433042717155769495428484048532560087934134249979419003226113194931486189608281789653927887374818890773331313219435000227605365230524304999038431512383695397561027863786231298953533966760730741238082841611836192947469873795468384402604496865654122143691626351817394678854451004288690607392425716301629413183663221349948791777231499828088333010529821024012926121942067117705682827708238343957176209660093691668863473640836610807799951951061265312377688526523998411357421167621334429512323727751312221316290173300189277100340476309912915648860462961542273764548542429805118325146599651794173428823978212626952698995551077456972230449415217621531447478160138330957340014833396596623522348709732092790250221140162178790199033348224878524902160274245540709058112886395433911966100018341311148213264893195328148788859677410378618919065529932415206123496315864821307445648613994781517855154744847445790288497157192001591241802003316558587030393549537750202121107067634892206494607058277035411340430580508634933791554096908842962789657483312827640025102768308903796176223060968231529573834123873218811409435129295715597806577088130277923247923428153856851038861378999923902519452717392838899715336840481522091010681072393685524243734379306256820492103847588927145443417697137850394485895001350710310902793102653666933120547757334610282426382978713872661014453995874742876004066938911343393449706795427842334372829151304900302419446924132607930928452993219848679466973572602730634622340368827887388462154881517492295922297305017502892398456636157744060503335198283457637852470904995770477962133737960984193640869371908991803288556855662900685474396741380997478302039155451546730294702978864849159173159898655977393633183133562631189602332670142719909791479288490436419711853926775422870867332485185437835811284974711264643060476811755497165786145271133731227620984821650724345709521619313603196893137047272234589351933792513569232077190026207600071894785139649733513031109557778418566742122775319116371639640116573530649250201609591066876954121027379499411360746307803488052844480348603422682407228503294612848621024060260650263121823747729169570035901284331654124485460850935711810838729088151833385374296211144261454383585237605887957345935303816087281986849201753083687827506109685534606505743734126336066787771975763777488592535604240237551099626499688892091929250741209728761428662913177024305576344641373677939524529298656757555845764775514072524407920171646253703728273121957837689739277578242459544921979839516582751318989895379706537160874963765173966642345511131997036491042202270844325087970567562739355688500136151201729681576345785488369737976493643771407284981481701633562343768710891687776397325819073642525093970597534188803014117630956285172231349641094099659008705444435606327064464963749767690313717461253058623339597744639947522534114850275031083052509680238332804418044049498107923132925523383466541975206112900771602905773957046608731704512430027140780486251230349622711221454360417736172228569001533376135467624559212308552663658692417294866983220175787850954871431854493198828456432464239739476853729461368623234147019583619301903824431793939872149944404962300867603841927168888113722657469219839238437688327481057197715169065298226881995788397476379076256811025939067468199243471273792295305162423790821373902228773615210631817651791833186256820079269465437671839376268553008052095468635586492746270569896188891986445448850107417502007457360537954966556335915941864547950603667509482296069687381197168908336178702318723740593298866083389021472712975995427713459829591657860981026992337644414891638331888808420414315744130650713389845465771383506886404388653377470096726925505191244574873931159655478027633444994685459962961939643820664788176397533876199915250052611272395342614161631245739751252643575801384216039652258443962373740929786828504895449172338282674331589295549207052660338370386037016110147757255196000063289954326496792925279081831551739972442910202617251117623421825867790831355838977893500076686735824656084659513660073728473047130721510576646634923852793008103145044908077679889960537602824517287632122055579461549697007804567537762804039830300199665964965338119278801611695569211295032854930162820071393619864095579897390832379735746094304145749443537942376670265415729920752599489908667952383592010455405776333064612319262768814687833032604055266888843921350254661465582685218193911166731911120067590153769530181182293528051723956327524700627086091636113559778697212471999767718582466200336480274381306334069457830351199990374808275573952361922526544068137091995599557332570900027075548886784361498333400906710785541355904394252701699120159374916675935513352707943160754227370176671418132571559720651632201201800647318030337988051284958027257845492014265988274000602944043168437616673786543064187381434934360654268186615628348274840882701914840295125227560341568020909191515862165753416486100400678558722951598576361892007105444943116911859905521612775528730684733704571745789564976320408086149512930218908328679474483116107266156913484821351271430812859501755620404262089292210577737015687331899109098859918713655263642192396094615579419166630215691857572368061496005992160260834319632728574152607353359835310013386986413212419752343535312824781724502626369207458606980702193247855763507187110159258070224764534879248483436669516539383900330059992537194481219928746636576735756346127611773815882774272104826025010162657854770693733822605559760021545851222683682912845677925321543863244295716821487929041835439836259443509246178695061509781871793292263462076583034363676924978578122038039938145318665266513030529355614441775536097082671116808996590486855560051237727157833906700656744293794286275378869381616405656926546471410170211039192269320788767974790177370795189312632955692771394656912731860314116575121446010721786225907763443188014989099231333744842023844674532733911584385736835933976228394314412174599830354181948952851401109599717240986480347510794555960091309723983416130698940058624512690543100709798676535458638956046975102026724599090933729889344600793954237104110669983820827922672243471979960485136840015403988317647151195942148620764129580279619387145745120512192599046252270926395749391788859472525137462486441275855754261847265684788911861566523971623490442859119634492332070243603388959215392469195556640910933695501417180839645712201859786077419772223078817492772735243052300708615048358062382651354368450144109412239346430149035551689996933062168163664800950861742792629448158812340194299000716223226252898331243548658068437038049856425251395843747360819552687671794662758488762208055455159854846678925718707719686197824248638146717953220799496057983374674005813798375256935172419759504112925854459115463196485234636910297630952217911663234006205176529330177129814206520814300154265236988942081172740595108220822007233669053781018546773244092255604282938161582074931149269265322474404592538294829946648486795008639982692993086990763063556488112535073462617676177539396817607817342431308546991793314813953449641665002435571881669814861142883742394686049401458401562990092663553278212907278587410281366234784010932377434417714153320313532561906171489560017269596014284128652217989367129008370957409716660660705622501251208454867882167414109392782520978192565374669527782288099867872867988325123968442636651200806431022437907683529266114406982153655970921243089664521201117240204618567561472370948094939597813520667921547711980972985966357983627014171242637149289456568716303174488666088354347410378584129141295251060059109558277480219246161742851554216844290718770611372654799651525743632877519202517307305495330055872028326933836317230513752227784411449290329533090288725842055103012678522626883434216663644945301915454573903190906078999526411683541862836524747840047808132729920283976429284762348230327467040761900648990051011474018794078482478663400614367109263103107405785959403182022710348638625398946049125232589848416347962585673349219743724673295682582170458495614069245719710020548690288367817342274774647524306488755196193599164425614951856812162530934857096796608988753199168483195823291172731535448421478100932174497552472296831180764039518260758660480660693194205802580074234776424122438599599774951421650177666957617528339994081780773748091325265252429676932157417422924081518211330857535579485535934293686111033875998723471700509398177292247761433073613189683061656462624804393051313612311674771276589137587284084952461460610777714342820420266989074631146676910817857812656573445541926511344039651623128678437067050429233444952768726985893964414921972320712314035556356673885204343322972567994366658682473534609756208517424019503126795906808424293954231514700684459081482045202596623089513853550214263462989523287321109572812340289429351709641251370921999334735822189717427514558693668043996284691828749975905398076697779840082060434375328256950261383707515182911071073535086932347536896747362722001847011227640408582936481713555513748260597330678798550300734700452460542416156217243484796232349290128031179305066018003813920004904048770176093514051520318765072765197457966954880201815650026120834831098558001045100826253104883191352308454585967685048504911207758432211428965432522071101892031028794882444420007018183075085433625025054523968907099394775700632767977342373738246860065203347479105072184689008220733233951795081102137260886436167052114604297899231071356291309880134395472196288335659234126771461606585567098801514201667065340948587422632279422807512942647334515013272937958542378125260637175657741674064344463669722610380848923918886334740509579024649260546730530086032207312176386564542692224561313205770171266362326247017511570210057437379905742526391389146093349982301645262724760058533512550639326990671081744874856729800577740004167011248812743598764627946510611335939119757160443686693147594519823159002174144360793484511168332595956744855487819795070838197130743537717669850618344345652977354697832765128872282572872534320585615668973224724399567676490023949772256184438701692159572863254758611998098727530543367985933700373521359532919841439347282743638206744983709216168020407328547657481714829533990752014425236649011529071866948381393221903851438919418178556622478731703455879086588575850619593570912346745399896813311134150852989854213927632013474081214021636600779528578232964685835252876787902696347206775296616681264943862415670386630808120903195102154847321805659147866828137870820675997974222443804789794698904236904919874728574175882873219000458996464416391102199040381045083185040223303068869227031868877977300826647564317384471495826463203209316816199996428407608443469625614022290268417734452701842032747241936749330463325809617672089485271404303949473689576092745568470502347109804916688789649830856182317537258544736550500956351071674119902602247910953974236617962610160245400253850470387647768311538080259951707106255265120032932701802058532841034783959258099225578421171512534434264032716114851653440365810748516335130502243104667605237553926098802303781251267271337236762594766666551832249128817688101365836984935569346816539058933370917693503630560639255082227325527155288228437474057769306648992226906252196287390831750531438056966221176905516905621547878578886900012993840303092266472128671335062342065006566526720417195258073148489852234579447344619546627669705178795618954752459730675571176466873118469238636223680184817717466429431007976976907023105336619299817420251057795582246252704901713079611991272858601662632372263817279894547649240525571587645515506168345092035541110176434260232998700876166037517500849070330364437693725635992135818944473036030603924223776501805734939286286455178759215043356613869682332548608482208682653847884003497714406046858079716268305167735564115358162979001700572910275968080852485069917667232840621024623062862937291124673041207122940642210596554903166633126443035620621255379487218931015151812640838879475791259587724846510249123626292165960078813486949625819369485736536441459558549700625906912381002776865084774714389950105601729999702265528717769174876011050060174029620048084834134733255390771816229927030107295640657222160796153108909308329710074776357534206897360192537978732101340676457775474124483770628526683118797216832364075964629282608538979359378611336207663881816339834598258921657786048859135728844232263239112851306704990189262472316711812342951290077635924370304608938316884752522691752288362794447871931907193754170597717380692832258409400703036213796627003897155267895940961181995789607310395736130773302241308658352248219475490709105452345010399382319063981265240691797362839614507990148414318548463188764894484864333581579019699509501636965946107542375831739523796902573054256684496987113346739063860386416527450402843048771547913667206769214462412367365123926934012947577881610130416239747967892878812090235423254990813348993434222170203409566970689584593068069435601260985057305839195600242707063113158084852011996068215738314284750246485770788775618276206267484597407405239990705177608421185886614964560682696776093614374283288204084736808980647499607730324663767911184131837494530674493803000032269830309525522948055998425934690287858184049447217647516667138883012761973394679210356049093212881133221269592240003979102530711624445017351278863797384090818055458916309471732248646796759761261404027915254409699367017820851489521096975952014732113022372169579454022871257723076103585643424399687574525496130572096828931367782740922566369950299105882409856765459739256923181180643414911109877017118058364036040178372405751052593283403067859174721027049970391933818197060390210066036489227594843312319282930127500304077950588649010821046653346123396900957081172454222952888214893055941108296907576916374355294114891610904414412092885616364529492583259240679244130341549278637514971085956654521060654510521675024531764324320285520456790972421029381765179838488496359287486846601770502232533620393909724334162421771307011696354165678745065748067943652532932853296575866695745332645097207057499221492458328893954130200067961589703941021601539741368610712768550233013943509668809745542974607987882965725843749754123484751423048842366809658760540815841214352049171319129105628590382194078500172081194167570678466947977457828510178429161596544495007199717955249683443892776478325073776218250875636712998756547701569896397726200511643261551232066013872330124722280396028405907362305157645291373381456454857625543396350701441026594315647758740774608771681194551131615071909704113646651439095975398264937257806644757320337997818437506124117289542466852560709273675569723795153664125274555065572983337821393128080415285244757324543919458842753768295275233289802831422261342112150692524672193810095269417483703778260556152718857475795406375711334003840595349731170818590532664296037012937572295713115064975612442310375293837199693450325997093430119389666540696156588320284442477390430186189264208698607538644515921856224835444424924357486476530803198962166570389057055387400666952255790776150640641206731460038173228528631381597812686137571756647091985844313028344937201879082012387575363519799137808389224779213844479897142475669954279912588451704386231946260118211788682574395133175642608159156251489397799995634502783292631549449546808506119972831030102170012574385145786765397150023191992586771489889243057005256809638177427046187697606964356678601229249262756856263722404043155648807944881125213234357748929556323051782608877421328769257072713913080660977446741546702706538647327696127392615460658651874498879219585035764167376824590908757892717085003410671493437575072310440504317317711717526390438833368261379583091978181874034464232266732907955236541524658418162487898780297849304166840174796360541677924993453671978484477354445724994651301944619689007920224339194614484637247603481298746006308138643591310065862666889303834474280732302420703043996031492251490360667238634000747530090991656243963092609123513178326767810053629553046992666283335363529860518418470999363149523551291757824288569483687146070834694702916228852425347444122301705159847995641615238041285037751756046407767835741444866402712618054954087167266969252064147158926538960391910268962726783447177530087268952414666227915290633813771341429299728646010699850284209619063752219538733268244798982703101492219929878445393869183544495179389204153571038947111192104276496900781109180592429765673969857824865180151227689580231326771299099078122005795525761654018754542732191219328758635937624293750550268592532095078812552721822905919141628783258982906304500963146331940095412323215200491883964164862079011261869015880742189712197463137945448767656012149198208197496398942501307857103337997297051935581702481554479597702786282269448283424543123098521959676795259841730692453462785654893189196844143852267735488378634277436937915155659310530509654514172101768959908502482976257403064940939845205963106258218704749201174279217937573429579539898391044419561044313572555291784090287637822382823089605889887985973981421928421777998674881885252460726694083259386370869898401947411272831651694710624442453679900657181660101117830203991031035012767806975375662151611633425416678649667909057752364639875941112103551648270644458769638812663176397724374906220099030101692266546477011504768105330222625258263561703725748092350322246464312221228827973137949375429559663698774444816669582092657450080520235951257304244997104170838043893865092202255665875683448736793267409877003603144080683335591143087378804830062593037847160046520174736493301937170361390938700899486643821848937445439620783047728497477331407474847716264154054269686945703498861262583328835568660186433314336730984133222247703465013620430210662005290435767643193978788519753100032621088846496481012979640147955146431602140857938789208556485612463555388798324927977503117025668894575939575478872270823785907953022856317202508000412537026690442191196108226952149720831914420299976332745478481690331689142836120706012785808457110634058992542186418621775835445784083750908986278397063475859187147426052163390572183817423480211286949920900957876988586065740424233484784102469385651156989180487516774850975780569751544948303378084706716506594072820665265318141060306414260552566040706748436359153971222765235291766291984368085366936524475547415678861320390604914572534161249896971527051748922081909909190012183018389850827397765293339946415020528309712895972456072609635170488851774128407855605116183718759056175315677173908302858234572048386484941379074903425262670949015933658937551331948405223017059540094629354988481017676615334732584139312188639902154782952685052617808647249578721760691411846931046089421623819543821458595469795184122965022740849558577742323651147224934047403801512974456564076691209868665471892416712608476572436559377077352042885766284076165064836947803774781238558635166765160171488407572837536415637462499014375829506827591251449698426557272524248154025838125201364370958035131481242776568545575893806336966827106476269247043268382859462786388047134970621031943240191675863794394353160425307739616306233981135968812105821806216742005651741689768783389924130665650985091289074397178014184443048203165515365298498210061530950947365046487813141047781113485957809628278108808007347566674987429118181704765583410766125192753236285029025843161595462786498977089199740556668521915158874122183584826809388142497836207058346295812748210359207167578725824579147628277855029873939174731908061722173885845687902486000903838750559702990467841692962914430019182238429214060927117897982674626710923010471012287381294126309072888786153990412922867570804695737239623546722332882495328426135819087359132100231436125068334839668102587844120172259886136582258140245149207592486397602524112403233576781718038239287143820654466115954170663235713231966794417363768400860303742750453850574098311243867451591274197174817236630387793344192545113597912131714506309229452804445049462908121959596489554410022292893711765640106166995699201364191109057766060046138287483113541571505347014692418443360269193458578479465205196613208931924870923580313811656136696676654201663871480538287993947965127736165170169244193637786975468186467622125400234780627957981809914816797664777948240864044816218636621035357571617292059598164235403749645356092912875999825430269796792577348476679094035910261079529663316837458831437146919750975286568151988862256684094802423455112595956094808407097191454608203161649539220439438343616146070909022665293573838192654358258499011838439653731771153609808592798102102904103550299643669416776548323525727063909245347568740183140532723365189431808680197873891486664450121318279911412048357614067319579480624118885408497317340066864220782881609346211875984121951803830425526462839194117878939196084111189761833119900321312934109465440358887420067969966405188437367623905276763170152757992535300512908219682221639216972100379636635769628175099203131106057936488246726813632662607596329028982189509900758980747782858804167818601323014638814007341823998982712985219494510522895938663493789158040016178534604771595763732851822923516939122933005897185338874741659564970573956847789636609232579819955142640587731000677009093742538443823233522390941953128193877645148422607090598265414023019356158640146081564792059394995993280990685399862019218960045898460763395511571334624505260422103719143665986897376083163825499580293051745969071347482646271188554283192406528968518661224173012752030434739488668410619930308314483795492874187154561272596670925255214530623986614555531162580842305134599357691195278438824896397837930160239004271171877498935389928921911001819365560799014459240115483826076029602565884276020066859130809125844792794268771248468865388032396127181372223178469810580354621441828511371758577449785012980211672300199041550255621154400837292780539727872132875840642207165590778049407044093955511856121334011865748677380790193502166394871835413499169553755375830234234139822438912207289824272215987144203266920865970436303855984376048202537243441103898394013166312117842634401225422341887078011736244520071146527513507159432175300770732842132090667270861291342623139949946000044044932199179859519673288078270812730091634365676665551288793604813201807352511518975597671166829617540925795622047635703893820174882268749185106162568995386941694751309366254122965193948994878867493308452544658449601096329986614551614666382964512793388822921540027617119093078882761308368600761666496579706283672482751084594697786859423605736907550970430518772378505295345924100832529474508871487070663211420088390188581170331814431435613692563805123225508441134836636651885306125384837027604296542627332590988833778165747849020703683237033077170847523217410649849579164418805195306823670981605332056173544906982947730892105052862417994812172689318415306420000644140382704664505428009192086227828959592035089944673157043957408144323919800981788997911168097456327822879006919526316362245529059252136783611184351607800907664095362264796300559706946393756856316155714200318964651592218280013730441849107893112166638926597205423993034548403542598082705328859347016633116094908548481561112608544575812719139704671436533584067206939349343415911015412289127715458413780031627836170524170145305843150175079153369926031485567266993696425445600708404281543646117957437319374610807312704065690479605079128151819231157705331846259638726030638818429023594294001606249031818710868222604078480059781632203289802068110769983778490345300056719938043469338815078786820217637391786385148853933189723277927561877338993953402043941423050928410858378637463930320627099502768504101582238843580476096034911903484116440412320249805389880412965929116680906166771897147061017221108202443398200836200100356070237508715061201597415056084629533231344877324095043499894172735602137781464233121160495644661680814737672188626091090542808948225821528445828058267163069643142055677736240449608782134865687619669584992859820577596100687140489160298692757772537485692929925365859799175884656285674658863036044528437137524340754205054413109902445725594151572366828648843046996953772044907629696649121358261625852907026992944877741857406534399567696068085125901192279940374333626236359266545984679134652354796285893256415807757228780937075742009641797261601944866914871560220605353346277993234137531311271235928394389328851239711399152364591749273127843124390955228180926715967142535164294830999336023861801158356395020114260843939645897585430746342431854263758669693040600624343212603300159815225837492726789662640301794965075330251408659652485928288031586589559367372148063830514372684377012104343776051417337880907143474129011280596570625659979845302899081457676350571691335861432629655870601441575571262704776551162450716169827321782461300309158756084532610988295481617116008506998323016238622284315618798947877165240112720613121068128775733450823507835007618171957780052786115046043748332553758885652285047359037944966222979576309942060195969818229102243266004563195734116665122390204558917685244245099000953585863436470397796659290415245636680409076752041744230462310199017996652453405615731662174758944390791422726824368065479444890197789191580659063999071999554723792014874718202803513724660412566793564178912408200332334434705286806674749165328523901244912553853839595079753782674774707794072169972201292718052663062008981208112544994752290057594137638316458112100344868420793898776770777590119137582214570598545887041360590737401772839984823732096809003932993860903921647541897473364279447045773777070184874267510492362602932530054070293072323411302637062808459648333890952770666876581982375900018081772575272118448201100386594168836599932199115424265788246828834744905068033275814704610758201367648160950679861331099149002773481317879104094311181771525312060066055055191835883607322963047055431023168260897406270800059710431834358089671740987332596685609935751780023026062173784006982388796802967354509599373121429454661161134566451839525874110421417201543642521592231065228879238306106122082501145466550714593606040427412448921831521254260539425481089618435400171790374342924594487138317556094845577123058222421269375672388060115090093573261676778272975678270159432553560385548083956412951398948523985923980145985508476057002146538479015421929626134497404986963042236299044446692875138438712930257687037659236273934186132443882438424587801621139986989177652578322363801422715858663916607236581746958200135204214156411484083399319681650883860446841496006147064382968244854125701818415209275999298635057883918229590339512048393202904465505291196485765645988678816049834435026924507617006412070647362246066142718731301001037733628891516173052773858666300617117632714698829096011478658916886829284894251467580733493505520444637752867262098625990593819675312470459768234717368987165908653270198094172072108679506246774112837926774927404053359660113867579761106784365474776825532864098005077086216815405656730913178421473960903008389147514973465389023436388781413829144105781512779637757436402984273623472066957807251846141810820085253046125812203523758954770949469047318640620572886584722685198465074249871430445717091479103561730802178288558786722011966052726675467517211613695403411745646072914553375000506533754097473608482188429927223617056318408055526665932226877354566065765636059946086004153904763609541214788817017339454286475199012558558644397062747559870463422708180355443009592440636478880424581155040939738512155889285925188098009095116585255565738583362170021153467460587876671417429228455358351761167797138651174669813286961719962959604556084139384547980993020428963460769456541930208184787626941886000278769745829251953459395941650716894001167809186563702677453358891437009345775732472082108985495852857136966089376866583389590299412811589726187870551133072460952023301514621871366626969367238446045412826713862828564132776249310190200065575034887348157316600558119085249071731203678739206436152434343175820507490413306184849770017638494187269112697136130474918300000424957450377314770154482374471749114703926695905030869954360991539652381492412305016695541881326184271280065283390303854269906816966757562273555613903685513232782674731678995356300999999756479361184405744672960073688739781902199697041543989216812958038496454144630260577379872443577292808718094681612607361757755599776675346718699814333864025848367937658584388474708044218374030344592449439788120794745849630132203365401311681853149690431966227598924265105648878980056281728577740239624861056039157786602000767615769955034418794313586570577636568288294743389787157907820752896267047269383523953329428493064903142900227617489043227848662109095508008600271906297139769498916102253332031638003439903213199664836380030018980663682506770497026825166088486566085618144084247416854607528917778184134895864949778114346001012911956588601509560204782976736459310441656361963056500335345875633244478165779127948699284007951220582499360185980098138724063667394195519863169220207957085428079862751196880219581994079794319708544031944291580473271390052588268182603672577908064524387300230087230821603198098600327558841234050183447836223050088271687573056922446837597364119772287865000079585213466666866840032120631158274018297207506345424091748742082070141685788961977670536337250947077770420455563942789605289152267735033211676843899136246988747102827528289565599085560765938602489562921190487905704307514052681320763221295964382285274993081640993123662567689773385962750045924267526469820433396233627630803388432005485613201666028307088882038780919765755309072960710513040325369928855234023325964648020668913923370216302858063876617720155056676931401127779594246316348591560708460045045546649865926064321711942939363515713680827033833099472422055560503191309616018463849667044782574089450207721121667892404456727975376036859653670401705565057559499710077285098472803861639782662848135947185769532821969208007109682949199011682540422744562287062029025243729137419084050316114214622728026224895088507569025293945517985396341392760075096187178229152810572117877199770244188964837867064967804935346975065508489795874480668464374979199247994854482813309164944819575592719537549877158695876798421536329593995956199569107081966459922958312387760530428902859798217231172300465947687399608842240966769206464634448830100755369489619156818955429588344594844856026820247902261236666015146915290387835308688756048896682342327803774016787689559114050091352346983710050468768785760002030445004372992720056394159637241109055775502544395490832688498155375394277478966985884752811792580669487689576720815410204580971486741861808544664721305685137420210665449703445101866452597047448793920508876782252940143192014573004319548975644340542215452843964926954375249169712594125720675000380950867042225756144604854681166580529829184170439138935969555981650206897603602327594732641946084012484657057814199623069146047498607614286388926607084287967802602929301159013765575502409297632906650855622821144134835787386374678834244055287824160915952567083234866913009595478050357568189416718878467059975946172169594617762974641397802318934004867531424932005498925307341803638156235381855463799561511339088193150944752633006352375116561508418687237123679328868397307300263923586282460938652793418941920814127949867768936994397367158520519905054575995209652783872347246393567969320025529594358692895543041091548095264773747758465296647711632691868678286703423412861831235838268831525383532338705854210266142859735834805411491192256997062520773930491120523691585150244355653210662006867575493630053414923862650655803194430895393119170784886891697394325613876221598111927735301648399622035344730158328152692410147154828778614162102019656125919651399133941196418617503589065088065918018068129030241711981832893576218851714740783873870624381109246231300150219182980934065021184615177203408357888477677896575559033545987290053959109560139566728146723142563291018627657503723398107797805802640616416342798302256782899936887505757936064106227810998032076922714756849778224973024916574246260191287986820817256367100943330043895799987933856175319650727097670757325065746647914633733638001950329600847757470675224750170006765204410362541832536889831544123127219838959412008339915584451978210917726910165566693671158603839742008145699459661172875349346623390345472890503435407159679025610298891056799286396288918207538960244619654086132990303652094198717317021194347799519288896272377496224624128568857828483767622300746418749533929179507246351418881899016387951629040634115832958978509528045192002605263380928593176630508979926216703152615805890782722510039884023809313415019801244026589314652394640540884581843331317376944292222796323223096622360450416567729848067949721516633092207370715278570031834398980724183112628571330735066211425212723674864862638145052689021944292074604270977197268167802865297099195380404505732763329585102429727695380469342547740132589644536783753526184081203715003000650243229622923327260166015390237599195355625918538747382511295528596453112913423052018844719932151064943310852183707766256998154528974231930130591153559259486595148217828509294930992405618219560900064153329047796641247223431385926710756949202570876042853765042889180206381435858951582270578736135630047134111662921650634420925667233620522498397332451626920750851222847153342300807959065885748188225349007638800604494916500278942013557240878436082698092894215655450097565375425348721812786081919503541872263797753688518131199286795017583219359531475335604506031086825877483726904074682728666504851841473483299953456969729509991541600304929073075746683805690643892457300033516568010439022522552664666179000483893290831569275323426868047558561748089786717621552434510559147099919004335713114367345292022354713787357521721317377989124514425619234565181569135712338428769631110399161576464247242084463036123147480526605743872113630752993425244450120237108351531308121866162843694887896670674195345178055735013886521008999996399778461568525416236305488588259473410801565198921946287809465706199228108571093035490763877880126260796815776278114046194156480592742197658344339686720598822837017427017732089068623425832745901222867715091002450544440300173625942015425203293477326219634735096287520246103635962917739416241339464325995181511633903866992729486028566745667184447543786264508738909589063460581082556547475985839440874125897956221747595382294024349347464415144566730211554110478136209965279706235432829193028235693319326971909602309054683243964012455988774651195849134857817575432695325434250748596665864037316017548143396226721760622920111120750044310547161837712727123217997547200566000416414466117894311841742643499546564936783455842512782677863529347689106950062672740931790498319471415366090791208082934142500471601004513947119479413576328391473285502125733973815143583958582420401511430898307546284030236116990501549919535730282068705570818989645897924799935342099390124704122204552766824749572853839628275116689561374519726764138962706050199803647841640669393018396126131469708676753243471559364781073810915063413673547846756316027186634841610008152935060998772309755577246752629257298775191488926921953847427562567562353772463860643844162124159509241831141987585168653559211389796573353203267293977710348799150781480680510233250810076639174960392993931798367776112728018021328499350507711678844343692740840768701675682307320569343361254807952696300289155398623017010849553576352755439221166956916131005577607851608182448812417891772983541809231110759234681237879078389282892014750780861418693602919357012685689529406147941897567471087604633688402635954541958505127199689234854370912844654835754695733230865552595215182525980538098722971927000734081570697105097094903328388887625845384649115299923765957490477078609179155988691321508834239896883115409016935003765637803533641885327755883521237210839387304013541821164667959361193627955195820314430351273237544414313130196379289815685441063073219153065310536267865092028674229918850260363823627227679932315809554127189476595647355317696913144047826050051665000978138109451093552818075939173922116425048045616101517603471047481077184186958593706783826732764395103906500332780577350451680135187938354607593953183830365534443963312613723444537574167377557654545875224074875465930129890940745380742367134164374190651885150855439643061226719522410697542236113064002064103759924575937463181174520824102905184391886197329139634666793559611997902446177990766612324742386397672521801064730154829770049123549495860406342205158069913581871227605038135076879420155358152828554858335457160360934800163447810311300375487571497562087406038680706667352409929542216988945520281443731627449683080154920137963870163164563743577468229296158268473652677089160533964579382299479314517783143980109416461654802024915566663595110150061689949607218849934611496206009465165060517322048574010598662315943558649953203551045106819140255097626723900796116633361335994638674534938103955525693134489359572340179343777809445041513349248960257297892458834548565568326718631858732276342385814250527338073617180886335156908004011642874776049163799508316418524623551586144651466391553824135426427351816546327861171286538077977806966649949256595756548552347413533525695269073808420805199177929133319631121655150310812187436635973941811484737936558464503734767558280499844867526854574214421210463980306364908702633552227965739306186750098348203887451429653544817633122880121521510234359946232586130778137240709940634662645165276537689188410907177422456018371113935731810337516053551211549113190743633713438976340317858794362253007491721718014031739172699332321162067754693637777534452898834352387702239927087925601554077730553938279580852632034693477236287371915395258842531746344969066304463459270656709497416809851053535697508316935925812596773180026057460659041539957015640537898208188050109616587990186873462960043916981557443043467277329602609864064240225106882374867910349984577180974980172876468773853179912478661286688246392143070074113385942286496891758335139845661649739307060615001639801899217741793032424685815929486508345055059221627329764410534255870533683561030040448094559987933750912089609131813346926498605462019090144390225480939366620590437621987579819426326882649836262383304545069834146520618603778843755050520783840931593543769736947197586496178010770265854071664279325917683400614741718946142319654878529740850788758821432420510741004391670524558091678827991086791986032273162851376876824550941094533904117591212286904984972937445956828531159409730718916495354790824330230854778209857157441832191893876267259376673229169365984650298027290375647566887696422491228344236805549587077600981063072977593075924830672025275191125088264930809693230277373683227833310288861395089013263854500541159717526946916082401589039267875603886674119260346680657567705387838304217051648609150230492123733866397685337925368988204881658012800640099651866199289108679883817573875697232216875036009956855835625980292753141250551142638869027557735976167706512895193407440202507580631577852843940854095386562961809664794110760745104729648403129173739825443112048339566135017363922198128599023320451044063443598248560835943460805033989674062539207568603434368775163671663039163069348624613501341764227574591170218603796969683920487864917763363472394718750337464389835932709388720964335057360011009658416829931981272257260964903731396093047964539518751726207807252381601269798019746292497688264043208853182714197445653280794631968148676796383516945696379392441504424151244792663544294448922479132222193968577947873541765325773397991040862457587357505037809027579560769337683642036374561619577164945666525981774805559653469154985288906522951164760516226547693806883747364376692622757265393313736539611931586598396836176515938559472430450560050582557779705305581383452209299584656759191826950526856236528362012053124738611914504342421769458937791338178918181957436337604942588219742854677438294400933039905475553532749021704997256892608764467396872005202480457637042806812525492130992599572621976147480955437961542889741557836946454112747441230667248364472522428765427378267974299373853569724582363003793105704524612076100714913347368000699475646116686529245936190832154091537138044207452704497184818824985810941226372290272477828984577504859501371061978930844680464901433217315280795094917650463542732390331914288704067473980781845394204120737957315625822881695215195167502041108162897794397224785633612900592882697966696836015010764443597308795510500606218027366932164037930554485900935470700844994262731237859329199306011524395924569835344803806922196628351055851424922142627742672313754967649667955169995143569807148268369808589810771693312612504434582326950300494767733415687987141077636586657558989772111287332265945970190019419138650887831555654773297132639264866665692276420717925508236056848632855713757029785947950218916858583055691153303552470268393295894095523013877148590011015486586575148944619728185659306327835291652156583999661281906228642466242411752711687600915312861588380963379939083178303416329915901835056995823636601427981923830929535841774754636396485193085229645095558533412963267168296758109555408017791261811205343294299066038218090847944757969417224366210487886175657813784183558919907554746159801112860858072958322502391084568851755926295869781279495599374119496346723882722369316083842713832440719056339660024667189754126866684823006770172273132734380064782110203989426201441784041242116082421725821253106521860557301471644376209714732488516348743594151460028356196319880583280156620389681890175007543113206002719370093040795979999792528529781498926257078482001351916842533995897625074982079856585014831936270488937175663216553900649842035497252539786983927526656191152785351656303760379572162982726572405758342597314288932234152250142802131654580149602380926774549405518367739087276971023285885728890316788049622877117415643389545462715404629155267019386729801394842417686169167511162130804471914476026410415738948879007871002724918871402458481083096147767585565164380597853258572285847825882228862817808735416304792922064636094757086365449937916104009771958646623794298502351460402245277853063991519370643841822932978966656161334897964586205162451728650103433454066959444880600712961639233870784407908018519729146721291426306588244337777839003987366691962731853105333486849974225988337680850389398079390312182378624008295117468428423953870622177829058972763517582859355849367711288904878543670724080115267600292386636299783988432477081869212740927618781029992825840823287748286595124879336031864532808429448093279595755443288426983299436721833438456599015790803544713212613032353736404312341798554408391750175180147939615704045013174463198976899233760182489245368990435748281617815744114950162595816382490303663794938137696271158769220897749943461232544407312801201543405990427497567968837586985320640690437558643752515166475394069857238854358826547122070101166860190063616000119068155910187051761764543136437631093048841056656337079402557265006487013971956559557261816327239954997021661493680693397561622448558074832662659928055356871612820330413279557198308110242522657409945680993509710662460483923071867110289769831644381840028755881343562271023708572025090236147563892891650073390035185140207188456205778916663881348710519906366900424393992052065639213618841872031613871053427175885404117839909074963250214055687545359993704045143093434456670830185844315756380646585960358739895667194985911300067819565669220646756433770383887533054634296631628976685156310859568944228098208738580383579626740960957686180864295568778663737910045391963383201654305106105433820460455949345366525207623852641507448672930820004424233896652203244373486288706762979144161597953588585993654028008799701102977347127453306109855797964453866465268643998043262714573262281678359166277484264003295590643031584976697956682946365170009777234617331264829844203549567148900698086861332495485110646245192727200968019890715183107723958526796658270387324622051155760577228604384989191736425552529522064111492937570683047472433803531023088449169704564118893448370727947295461914310817562374137222223139439816146873886687071793267212373588369238231719111983267102633958156836249559645503254893895338189101297995996064817394525983105502692555528031871423224078949548399365247618129559553560285539527936246889317846895484859524315638941862257024536480282853956117594960659525797315177152407129677654982132053511964989429805196539240191473320888568518359948326781338981392985364879628633418961252333480347237494657182515029152357990396080665185106354780626054961841598983366025746852648042942392355657533413960116060089363723637612562017396764594875930830345769329292052011747542671355851142900203336820882925324060682486369883419491454118001439740574266871921889762528458398974646896874822670329809823739892910944635253715233386550527966447397686121205893324785470747570581733150781763332270037456055102808933532335764810484131499757707362033572575148238309781408212421526848716169905409819455870208080009252840757293454739395200731743927025271350212317932787157070086220531566976307644676322605129738763778507346044161898663896480979977827392513372131030095810287510273725729065330473641331079491450145662545249543288621686885415112926296196054834046324449966403387010618255450484104942843136631213795200402742248558499311874308327539416385621901779627802147336140082464248666111434426411313889773708692702561760271170871581266955424432267372656895614582287127154156686838400191209056689439820114042935593953854312340399245064327485022145850631721193427452365273212981180852749477383826842397933273461107372814915193250589601583237311419378435737373453153886959314283969261672597207467525635337952291056088162028874323045091573355682875196838457720666134507930228417058296201581699008036027925289052200332155182313410006879123977486754151778674420444633200695293829542750293518766283860934578847480131317884041912497648626649069685499482922201546779288179471279017105317300640738410806355804782495035535329528873202130783322257438194283756714973047487014579120543797517532861117606030767744075528465833354604286748706850422088930222191320227517031538767503153941594697893121146272719457467650305841520825923803334267588570877234988284692148819142695324048042515572097897645531742307174020806738081515330351744167861136321816287464709374827640927550089255187279448965091070532757254516008992135684884041271301515730332476556501021064454381274211683955071858110920089827969641750247298675072631668174389020411184454395595734039848072273452493258256255158346783326611763828046841515067690446609743401648768399996039728423481227300603700973341281651667558469527562075087841814184827548332050278477189919902745031106889114573663248484352953028982135129786914174251395378912116745947477543199066356793723446124154850973798609767382496682016918405188980755636146317516340682357205229352550637954012025308881321679786600125301202873481601268928340856940785359037109585628905111176073303535752190553408356831717936742569956042278447509803700680669111385568383351201669684378043739340754085425859486385117007738067780189988561015632264454415048802629653686671639725640237766823878742367477996060321483449046278031837725267814958363490612443776059747882386178145733911962609233378937670968666545829968822282073324698074171734230203891942129653926407621034431748501272728587568398795024554748275601346994423178112948943865807382828372075903385662714846916495993705937349583813990346250773679836147831063318705846307112170483313494881853419779787149478862778491648374795577055801654952829294792547212454317380086223302509279567720686816992084576027913636044732668206488586155395455697528221459603594595483728209657666963640251704120933507866519801707437826638965750392647004285087368610261290312540934601018028653458660977383474455811983075995592338092962049880101889426318316593464777063172575950496852484695315098523224214742439050208152358159125777553578909857593139943523919055465140974859694617307478187736310710355940920092324081989103277932389075038052373546555210237526125779346093682496375173004991399235556336812727425806602715203242874654925657393348894597603325234283722785748134643894590392342614845011634339183067125317351991086646082737104529270989851536800382168204969685302439262021698917960447045782944441751214897434035079281498370575620224278245520490035729447368977491098106586130556317928210420177735161495312009723193059488958409641451362988873859175064598632651122842609078887980394092656406658602698785928370245639253053750949775505566251997424071297869304792019431453157379445491761190542883197371952328696702637272309065868741568823817378087803281209948211878805151348596522539155576830862527733434785180836549299895262352392908609437165073373459806941317447807305060180690277377640671987143254799398948197333134832593806282755910748420834913180589293357198736434889070673725817735282633386971620664933124586829415534507762081896887179806439200518405709451832841937244842596671522837930464391550632398142205791167316832441727523742184842408855488534517675538127741906491611655450856868109709096095856046643439205803156769543504140351754431587633817995057283616311029726421523575437715963539813289000061069844040225167678272216227573469031423667525741215074790698467008217475337196763072679228482867293222640356182389635208079695685676179327331959204337114819915575806733018407559516258504786390004926238106340088757283923470634009110272457366112056324064364310272842352053681106176191278574159409210677096135895376479993982362954166977769612140604486756091460773293423945021481484133752233606071124460602157361599311249661164723227907730719973638888605594595841650408878518129667557571527550594814496702501039695522239788523622091491946867734234842640975756779179318026164740068938933436105496385400818162420965502964362302125929703641263624736347612663157879306639966317138280097679573911868868908610551707024820116729346643424771138967956583927990960454751127479314227545235677716681083943632630984998935467379504323667908260628472923133674668497112559070832195487531850398395166328181518500822124706661089727859220020414632912720849757038515125607312945873802011704242907866851762477431960626423447632019984811169772402675479069317758180178961147986761373245449706045537530446340080056390420843036571123650302076905412641520994134950122814920109653935403652122845345895478910159191042101308019683364357949577324762852632946550495061227690192324963501649907532573301430703213050793101528534687551297065900533176931510063714629653785586396345352105448288665274382247438336779941860320814286310499555450263341206766535208054978858103436713977440102026934180277670293663074162732682775374638738619494387361869027839683851730133006699780886485421437762756369005980971841431509467206936277026312370247517545477830457253136998997816241828249206885693172853288714471840270282251327536724999239149189760355524894635731787096009421676872053601943586428612523956275732236407112902990686602175156131157569003864907381629438190393969932892232426183674567502731006460192641844406558601399392693707035560929063745718546025058396719530802519379277353543187778979732774419087973483310195689264817129131004082623131169148451639088621789252858559128897494735349710445150619399981804781199999942626729184761942223350264047598196370914767979293385301993189044859215947906648685890096888550359747161174967264215521903217566988148549186947606402719678685835648817357890201082128966421736933599359525196996561889410422964309795835544052403242427084077359945003676242139164868062952659700118787513898722087508307380507479416957483453542876585169776903933123728376675643513019077610248657545196834227759917039778756273484297507034353992900137057359783412612849456296894299013833117464694434991154427741658894084402185509800857961179882835107007173716892383854052483115187129435864242484820846824909470676978653340804076185447100526832731984816941186011892561229941272928712177152830230518087729752952573977037303337806615206091996332900625697496314836281474369269911698256831599858574600310383513414816325044144115509688322307312370924548010922913085055281869612166213860375167965491129195618042695010696372450905494412577498403125400681388603812675953971835506186701534663766098039452413918310703123149081484623007107934726960003373407661019858176958147790536836587349599277483339208269607708218927296207630351033959898598392196943357926010682674377470458721586102424589989668183330744532314253053911349663435957151749879143021026097394845896530731391096360105214099095039770848672538449810014949080732283738078495284184150911249576908846665888927398009788290865290435097395553259885293698257490680788356723463201341266561786109145364073408874492797958075142573833162621181881998881757354637175978797764284551243143182682924529315363858311077754308059302697441049135718753969530766300817724340499628915662619951278062759630972468768977185315458208716153850504121063090690170858758289026137454875103965897077142795858006965177647064878961393860492565877845361662710912445261592362319414195082505585895957584884415195899377527414589191451282084030303055635972578191509048967403531627288096984692814980557527081470545873195744906152575242132018026682094199179670633564234978532507269193864019590283950275649094826343816764215441389622662289764324058575524891424536192805682263471599268840903350338698252984753834036660302122526397218820004225573499664428021792526698509000340049071066555612660406215016270488037495207421148579958168223039213157890028732657892339209403453775097028384421342868668483432933639492896370939641281738915489544724891711131840354131852280593702340848563265470979339917371940270302876621711891857596783933219297471397019054999219274396581910836380974947328715330338420333786613394825669366266905346481084106915831444519457340514172071497552223810558122279863775749305188203260670949729783314795306329125559825049807212737370608330978177129484126269254361075647675449858495528141837051835713436763074645100112151156817200285789330195903185669828512490757038455851561805234288516116040230049082174456959579929349427710628208882893432199974701340716546288853249426753200315870460546424562312072202048158166564907609169342859173204674870636810051936497416209027455126133427124963601962678559450898745371026616155547895921300907417570960326945829089926785904704892249144663189845927498398262818574280372369775074126575008630215655646461455805061439129380912067186853519589719432140167883525513749846987275631978378047764331601961430544426367697155810980179715115111633320393154456051995251112753913256267607403132375869893573782389250883364678180971252832601099914775072354770499209034703385630457326085004078781461244000770670888540557829292610131769065938380046330563159863414998078733970789242593739852565785779119882407098655754779771289971938172130589611671315487689420097421478120942916749605859536889115773670890138084126195617726491980813137328651925470566632420118843941441240265908634118505247153117335198963952138889516697349314770482320918964381990100068238337336451064567163188192065525780654467839255673426039340338856781203562298182038087882019327003671870865173094851099205267072219122067646076655478669813869258022955420599624450172392712898123253173269838198931142951175832800264529056144975872203283922386871875651098230707739829564461191409582698712034699540776587860075655334239249906260019210993455520442892251927306432200026159176214037633630909870341322200679867384279273660685207827904992200672604282074106187099804012971887525093124803849254241293852717999214127446978613593785364296698956278091454193739016281274586771596916010566955952707429779498586298103222674533237383229957356260778950652021513326846742385071981272185948124394970467976129493710524499068925066494107929641676546892521987253309806609259522961812176880891825119418386217936746317504157786474088254865842070301716659313051455811905732951203212445832221009314474625281711708937768647010300835505126195814497770672579159767596654265688048868746860731761817059413156326316107696154178213885890156790978645800439446112045757162892867807508481527256502523249602663702691393714205959634665270623178698183352056315421663254894256570349718141620018912647414403555317524637136897771270255552239412034766164824310356628831214170419900832415253113140146301208312655957189857966177749432936257783627098023193629887179831518511949215095075949090374879167807806047234943257178279193166856477500148789477819616728553470185238285052329035676173478064810675753652092237899143780345575387413541928004022596477352223754659218647954945737899235111544226450075139586182819158748628858524226890086885939113877273544428755179196748365797668493547092695407433441604608353559003175487117948692223492213132438250812967055641770749954095908995718319244000358604086864814684021835410069743567664706092199513669055547667620601690149003400835915087999251884763988928324985575449837396526656339503715483829139016470504472399177138410284936622979630692361293839469508272866400832181769127772683417484236753845115763211586576895780576456996918516917631755942055486365974180858121892014719445968477753886629224399239515400325448565627707991957456835137351575393252370437987704003510982387250746415435745096932446298467066690160800265097607497148298220837326691282781581470103012191660318076044024313431719533953240961345825109876519428266029676699271496863991007747927370470777102485218872971294192585276411117235861176626527181397256295991827716678397961197719148017159501898493796603873972923137642145017546069496040505232254259106270956969419326584603190124388511662080676061485149366683579276607612721557982213665777417187780584743863483135229245510310797331006314992185868533501932586532810701995027618083172621595019741885468195003659267579499324226952261243172730314146908354518641664681995437672115742091623135178941061104566778090850999710748536477753360805032937512046750014316510087867453787782398534632213376223056018790893275725026270164706342596750872939199108865409356372674027373288419247703850679097989524503480510091089266261871847160960006917813172394844687583748742092597763661575059755565049945177131633519445104906815000954337378741422636260265936110360480328582276464538988529700476787040617249734497094339418294161373852726441046923745269205401734503280079321269936765407242161401757409307657002752428184684430960526368213140107670752970341440835152247475536232717739191903743650226505614567344685691287397018061037575886514838803140247548527655783575485364610332260844957528102453377872551339704168587210946719829676434037405861392967809351391355664934535059455371064518387371495088876168344705076878480080504586607806065406369231523845437284492293519689963016233935917614137812105569617477183854551043460471600059587385782080741930964679758492035114978807781686702322951041645795253615776088732653674276035091488487657064538760876600598072982230777395709555706015750595372240595505489537039333239619367265936089142687819472753289967041932205271465831829071503238614526233132519534251684612436736656286314328796532038265083480010937021517963328833751741048661021313800927323751681723143252772941688804841018463264578690704049609099775229925133458005712844347656731406016579950517847154274874490080881265709694412242783428011334644027524800649807999212733967112460652874841857110651777561479000069810673776751807770490495898696622022268021857292983524859780867589989381016102334565442224066275802678161614628443408798853232212334515111661836591989467316013983825529414979853121401981910207843375513139983864423808813267384183585574384932871190741414015801807611880275299889899091317250309126942469477262834928194153648126202508566945975636437703436621729282317323484227969473946975272798249866082456672398710816272521227762872024681200940017259594879791095735845834171953333547774884974382541776976938904673394408994062191607688245807190187130340886877197544453939514272140153500464960040332909724287032985498884437721036965620115806406243513130437148914639395911554014499460748890334278108524740243807019804757346926345167918445541214621028848516659128617622384008154854056657861009494692693795584297144653788283739114477244284091107134168863944760261791407697144749018163802257739605283914132820301309424049494043141105464812711201899302895104590595601368293799634725130141617382868443794759733197341527158828154006840521995579976005307823209786774543736267997305509138704019280587250047896557648810163192857857404383427220054660853322627155435100492052310596919432962001477107411486190513301701980137660307355913767520277730927929524268087332516510467853446556322036991691023112079922315078974753285907767407103103822336227067781629219579013016200894343630648230998789403985488935299456525361545601455752095538520972699754295924473118503533293650084148667375185215101175072198745079555477065853088181708809042142456241396132453880242140747727190310581904988414084837125283256754771498932377006137505099103834893245620020272124539036444200573932873685478602929618569604443675754828901493304063701081070869565383981948087760990067929582971411478752253369299142242000274376872338094071466974016235195320974676728605482675645115729168035238902047359926414602151797962225536654437981051929751521120266666222624886884138958614454511660350106337094280804221099828817456310002543176128622698861996166287777401819413618408815268487627419471794125005680866614450376083565687789662369422559580203831477624580633624716919216982485802529972163512523328393782740042748715362008958933612749052708026353804404058848487948559829888281263664625467607805127545114913362695675861277260947055664760088004675984153232951499235262164268242533979701536365127950623846379310455650286508387234581443648238504355950396705681758156060456987783103363294976487736173426509638915937144163742836208026628831983217694533368408773115804035739419721881846076147887584088114568471269831608152549038473972308151959709220893487637803340685114473713579255767539683341464587441466888575827921394675513792809336606349626116470561381247335248968406320639390366037362655373691538446789659763857358578291780646134539963744968305797185915058949637612458510595482924880974265249905490579890017867246513481640414752624623201972918988172887366061926131904750750013698368562397235603002696107107984669550282658967965298812360623192225253248014795237238875677254683188524070932507417513109705321772948449376898798870990921536987589634485930954600395745558099662357727481812589200647390427915151959160148707394375981544975279707938037588357387902123848089392584638967990269510414467528460342619474933265579543885257238495074522154924645114595914037869033623582037943680333018871477116916427719171039231059353426044060141042320946905540218514277759856866519525744995724170067360250435793927956532975382311116358754012050984739337349423552885624825549842882140759557185673559639400756014321896611021691934033024064014663598428906677314232392102911296847071987562908422742154810724553528126630020492053797228647241714995114959930161610958374010886455096487992456901761702100301707245600796396042877767500075896100697078114602994106798730005870488059067073528226175014449320923138215084952951985451779195070659356499370272927110345210689244528299358209126781791937975012947148716524339384993944417332856697220753405149755810557553747165355577302694032991884540576492436456337073257890348375229336390158171295689012063409994117726216241206997768537293158813931210247273308097723627822270806853915442613402516326074718832732544402845471164590566600878050392721814020935174137809846216671339133611425831145287377836708269294285070045792554239595084484805922816511080473729648025986207222361157086825632909808445842991583712775845174919078380953122345418640810477654221797354567878553123057732629180963519984414550924072592476809129502471235906153338122468002168052934156986497864868493361596318987652313162438553938490380594098936839463777710182524684282476767771240332500499045065806655862964426197285521330551265856822065917322251350483571516169191726539768133076872078121538076222065434201389580617491808132743606264495082639858632237622553529348175132312514779372124567661433784042694108412510423643900663076409146787160637299892417041566977121317984093462254470265979382133080666486332363613679029685035246992766714503396374843401510384641859455370710626773544050587688857011922945227855402698456219421241891375666055168135079199369372239335272395402948462741415682819348005252633148977815397751598800230063811387591609126043781479979954374592291238320033624847237711336876474303704398057729001901063649040059103704488805992060824867175206474353855099888948324928845327846204432588537539261872248407925842648005148477001558333642004819004153513982900075197303552007042022412766045996553898738250500184787277459438029890979253858261759484145623496665467151763584009579500238598467254744736690215061077799203540876143892267345823914640046857724805407948376190021630454906701375600904603161820322412818015433762235572520119886855699747914986449040639511501356608826807025824992906644498142274732812711963547097065877655044778123675169427542385695384889914802831029564873984434316177701227633009811583129927315469548784321378820539161027162812724699286339385706446614150354998755005212669467550290001331674166070503590486647505347656742904051841447562828234985485396956027141638902828019110537267904964180322036554217508246623145120164286592203585314782571853139429057131633422415669431217929719740854719189096814980111175809871404401067242372171583630775800405325805698371514168355945811193007149444965966871200138950180816861950532770398387545292686217786447847542797964636170186011831415083888389177658400123615901573380827731557510103034790007726337988561683973889567168812468406644703908025321269320626373826125944354356531155157827270667480344682753926273813160267456164131553201666307026092235316805399082433434461888036588117523902789219973207653929506285872198685088589834508715272917886109739488699857796849048029382256409811914601490693124109673581867637546303672365843397612213850901378570116511704702088529518246042731244293609377161783043405598903098311463762053760346070354520032706696149661079140595665473874920836913832056272930361513112139889364469805402634396984102761692110133862618166102598425576578275375094006180316570831232205253867999464805828363875671931293128072304119786629779872978037035668413154939742407952464453205023979402836263797164440565129271980149572340472797020617826829662706881659143716154236275577050722654087334395078032330564923599865838609853098164272427990914531032453962638601193051059318857373805255315942561112170008058865280893103916707110423692106281978452809126491582658299413012433837436402832968023461652119705062678269390815839146041420374412496931185512640167323294275958371133427269394334906924297947505280784908280117995940191438798208715803543665120590488425070885702512081673646936698806757795612478967819969311587779157467898243622160158662044994923298107388243040497701888789259674019721284331657334527005695842762744499261046955012388738719361609438980281003210639530734241417773001704958090103559804897411656106161699364142778368048400078138940284302909217135187809066040133349901741264920147661453215726224328992695837199397449238334572886470515075765184537743973454538415120000206926580191175449481618068285746571202743157682229348097142865263181305933393056976498778114316329405936724568781928446429164037258832258227553160341928564562304192118737941299163483127233800871604656554100437847455158646605384302046761539080002517010933293702516813498973148579322096111862241281035020304535898996813745556698391331768299029627058203342701425808066929806349139826117969200767293505995240078158399576834967439614288281518508786902156394909199962050008886087595100062317421789145189257346171831079684248281090367445741456374106596282135036772427747939117146055946049827653041544200764035110904348674008397373973566201007135656079175934037271279356324559223623817361774381685098017899265594322518330475002479397986476102510349440478709862389319319400355228288394499103867953492359138914916899518303058178997133291321698928543544973448052895795515271655001465392790185480800218401384718832579654285580584878875453326676074739366673234261300144574231369929732452860921795180115502390550112052332317442593312259739618017595795131199816956959700465483761962208996694663857705111810410563512426904117398855214272833237575011306887582623527246115383450643976258409623881284286470109431262763579455482626439090766117752668409094062904801137365629235489709414178460346508880492874338747109058991700289943199423707098513908894803321583631668949342151775955427396636308158908407912237936353506982932797445192605418267765863644567735607959429405346202394842380901310987941103988951960096137112954331041975702701951277729572607976036685231559871990121562750756165828428296373300288547376115969550703599522024185718098668799155254774649152163106233755953212998366474510210405577549443427437575579387515391609788951029076651301940645675402213141218634685833240714737355026470590688809562892663536431919129060466030554975124484873162069898027740904154405262850195766142188067307282247408659636938461881693990630211356628242751179834988729045442918668231622738934332773034551999430781184525299184672162678455957258046234771989753951348179129868289830590982792002701098911885033771648343285257406922868645859306892303477004378388522799080473077058926940713798690635140118491810230736589000864528078414288631035319033864594375064458633125106215030538944885205369326100525816653990343637578850620396929186882809573086330217134062996161738103906990024586636001051653000164355791054347757666575326801311516912577714366679608198170339729959353070401086856748267583120160888910963076359434501519301527115734522819607676143103414760106659402654203357957143307387531095660547193265392503638267049831251293118065384381104276222123946221236336503722889439137026687929473018585487763569022737178836517883474423684443714984315720447014206118758194238656736743805732340211732603453644666573740511423924475455685259124782896825632543684891100727186949314590414514809569965182996293187651558453057538763760467974612057245151915744682344434088295280545212585706860229522208508855672887479158436303404628874932942075103928672706132242514253313285623826798723904002999408159791112708614016460426324139285793803671212210221299302447863961437423210212209000146431155146660204651358575433964575751114090284077005993933390308548686706403495088995718754291883160618668144450127554712192363783655527523313428916291261763950864503151555076301540797941679372835400599247236825254528885991688302893126597791118542462555352103880937051686279525209211728866956934221872086464996640322955347178319726590141399673953088187396081007715939164464233892593687770984751135189276417287054093235266894342260227003418599782808522786616920846557198001176457489873863969882339764242870051560384332382696416670866509305887933502782371261186823007200785784392363071628997556910021342158775445264675417752936415161685658582343156317166423121846767216110836365725393631404604506807476669871449181430796345831450080080562871579798296579311839467059999111993395878270214405105354478700295248502068669113348259167815386309129373116978520560022694079127075140566434827729849060037910332344290098406785729592570041866725143575297696555098717834659054639652862212865491701232054970972336983211481600842011390222146144653130796749629976583850622140189836754933662685213218538474702670349697389754276289512971729241972457980645110540393364230532919909378299032566560619183667588763102805482034670288764063747347666960954889161632136961694340978628801361388112896107801976939826823900814846036595901732262465622069562469517274677688157476959864627733047826100160654438733155214239646930665325739392143068216544274947834181081187403862518883009134092097839817384803910552872825341601710139271814938605571435566581981077600096414593418247526444056843748496856894887121994686691413708806004315007328291905348547419499535846746845643230710593628471888882250259919652469739648934912691983997811576291082743790637946518020042708545456701838555295191868045858823666790484169823115788404811157770196721128722206462535228295231914532159941707948233518354734984628524599950701030598327272152970827503754363267184289294874999955938264161654400178127342167105519818000586988685327488316999208066060291084732207316230085943916072164785537613143785361991773750568208547611899646387675107910759038540953195782291891652324205618403509936553624651031204067064283384235514820639717598301554157804074352519611610501263766000113468988325898179408766835314626802483814095726404105314141114236956667341144865209492752546592294408392679887365256001506251933610253240618023255906856804797376254108417015348709823964390408885884598666427156880416638832955238626327935499536656596993697139758030398516365673201131216372852449812390783487329031942871908229346656011918561231338055837150565751904719009926355091210107679300551414604408593951089024860312115588266658344794633277305917004488393465926793143046616702112345915374657898488357060375232944470482824398265170398159789228516175050076609059374125712657671413803705506400216574812729733822037168531224730429235596667064388848065014579597889884564704643026051161103307754958158906102846226252775570317569218814257914298413259998602421155069147355237156342483450453879202909260160313143352889252455305193067045287410504552456085876920076005934773623053086813549396102735854184604804840192992410739244217503222408084861485578530427095299758637509608527570071520045808437915060665968276232395420540459129802800927663242785594128731898755625173606386332603212780961571407645746009439196396039904040235345552242582802092875640594550972992646000518809579038483719686469793389453405812547251522508576474096358465525742009671649006191492934915313536653403494651266100217552151710141531484043754790528254669931664351712630108417424020194381528024094710774370179385537307817751309455711829959179749489477498873985148336155148665457324419886656784959758191745613728040689455338306212252415974521822586963928497373319944578049394485174404509899557014442473533486505325344555918807819431640647139688591653080486196110017377617012070101546562736958061775302784865095797772549293331009810777893106499888018263854309005896874182253580081170040458390430291291565476958743752129346833614384550728988083872571818701203532341268680567261187779654109162269993607176777666632647853779271829489600525895599278491543642101731314523921866438473028191012967602378592491832216951244569984523355834742482623019968306384405890348418492564011932230416192767239662721863486956501874463544365208179720559669123680166056752796965367965558083641012794985512782734630574437660991386839479602435414916214378697408557915231527059618302000355074375176761733636672392190458479220031530725266326572164409747761225360131235790343531098414910579643092830741396603937147405865798921760101185849127052728763344077441913492939719264332082206628539436168759325479822082737730395854173496952020252696638798106595299209827633968721604321047748067246494254878315624861223028406510583630358583760887815918842902196434272786639278878813536302224324481653037777980916229597315868160138381486281126109513899148694267930838145879386991561661577691103149843240107979645650272372176368083030415699368150439396789069030654990758599468494890491073474869627460811356454561834485646053180245256980497104092811691967716959822680473691944984770041602743527090046469016949422330276215657413094138257380997984629833018863655018135379528430483946411911246863216500993163963391136722512325890741038241099074493074180941267662520235688238298371974434709844967212608567065886154878997663736593018602136205422958043889995840468971895869537548987828414767970800886980112634435447982666866827850747344311211394542842798423072120661173941236447783603798714099750860432793875899319498228315582965151412799526130577244372998595896524235945495210198844206990214862854315854169886173107661411003174821824493714166421934526819404431262645078179188852839598504302266962456006447054981442323948353564577355792559596996491997474342428477831012159715784221687464610769116785967427322534028173598441580960080339076559820776689096769889869086887704582601484507930650625211688731586856470389085511770425997475908191174878512908228844908157672921005849505996030694926046893836984771367103020010899971743245923412074610041245402822089059844698430183165298838074288573968508193022240445949331074330147638310863167665263926340929935295625463003820919880154056333143173603078239306207928600531302169355476545572297805500022478750238510680308242697259719303567309822131442441325136966970131164452986427419270782586249693093064815945193524298365761418557913604557232287807631996770805503740268263369902585054677690510339801171660837155741356903627630987750591490770959829512808849102165829894200833593664724775803250726290935589815054592807167660762940375926470002649520113324391989383949457002059101584401159923018885011427044471228077846471801154897049650291476138810672323676243709507786559115537924258755133620602053282271713873259380692635859194348658908370728793335121304289648811472614921167602876892412119322663283226229010775784552291619714588750789502243567242926030900627554749455804741083382197378434039718568633371573824772299467899146837545418875543663078060203875333949780299137317245283430171615530141157094770703086466284730182944496329228612274420269660569400751025686757997957438134848558668692941349203120106619787831910709205255893753036746666164627970847612741121677502982759932227797079649818466874366999583643391938926101000962974137676135558906257818644128296035470746214296134830529574781261888001437067964522478285707032060407316375623851571761997991064786995327738583089267709377924329819827895723575135174012035833099126553983257743504359854776890500902410610586715658614383635020548888263514955448923398693900097984655217724202115545350182455494900952844698425028833943170443075439791175145693085230938948906073159443349024491540914392729444372524067553308106850341091334049834429445979877674278513557019583048119448743870252371395526523936709017847308134165922520754171856503525247611624176229428354072601447137469859388897679952966753920421157202594700439005393922930417851089739883327932573848396457335387218271897634781744954941573510886068774374935961199781306489920563365773916179043837118146082024302855667158834651991331627894585244710207310964147209004560057813459435516453223744520494587851241035217782551581633389780996270946681930452581238579685701034310532242044681545597861879507284981471330814998602169624140561279989520234417313491834736630347489362550773702886036473289069619596038165643430480316035769314426552951431610589494011213320229727495297303042854169728463887102782810331676712057235972292259367066288950974740297060078303473702284232252547147349405837920762503504805156469888548606876780525193535391785894689943442218645289652959711991598244622010317945835265388479846178000205375827657833083965143438172715836761806564771120766460344849678941176024174156817659218209002868441503427301882153506191654463202436010055403796560616026316497143100348715543304507403120082837232360906181935359152358151790926090397701199730819729969426129435804867732301380139265053282536186278938319909385262829694462578255605117810038764171976475914369585403394644737184863631938855537770671541166825908399590364940202865738825120555762763982635352734602260170456572211392225027364999305419300332137357599987234387550177600953949221173201208815873997690065798822383257542231953754463525480856714942440047309965119568519703416811376226125830764325448801468660476286241693526970794622892857526349051524056474881674670464627909564551549089756193569249487187069836315552259269860439797790274773746421745592994860555746757197338277598303398439502914926415835695931462060003744801347339498837181523005129333637232650075850638664071279072732518130237475688798925599482049555395815462405410891682178667695681113130744401651080044237614003360109766089668562358118435410820884837831572457952854796195738506542648811162759171770069941829776662060164549386932052651528997145819250211899741927654693467474509199475214306364115844857666201144750383946891406074566345106681189622046533429726187024854072579972599248877073745544362350465829155556392782145765763087846322894018100916256833701831207992083614537068281554593472641186956563003407165724852720128344704910475315039546085500103476513056483598383588245206578982364837823475934056593654789723687063565031310841955406477106998426692719202852242330454727158155374006908321288744254335715852098598760006747536919146072089219572024649755461949033211901628586857425441179422400588219168418328843981757672632747985449967953727289190482682537931953419190770900958668945885039196963779982638833027046603924823619547274008064478837405611182046373832643388944139893698960197168356693321124584477812580698368820008770260581221935844333653923091735908499002051897398449043352503411534357306317787856413721307864166985866873430685727949560562769984220574920575736750473639886132667334295146388946822744240735729641914780902634455968715385244834152296037878947187670705856815984339252891367421907776039664955286350685582762083442853455423237395857595002371943453374140221496484568079682166807957892254462271588301713807791792343276534410296422284719717646035871403811614776553615979874113352272628654912924385356846670583551996322103862775603563812820553362679975545783458638248246621092161375576529417715599971588227382813225897545218788863500775665159429418682695290792828646397666071615125726591748552503030975239507556031050147274090659540180329054232928545708357481407325878256298634121568284540693662018033235201418029292392337612676655709983846322572678964767856039915068081642988852189292256589588591572843190073718370492846295565714199965905152121425964859488333773725212583747765939032964709918367728566691274912095619524594516474799055291142615834995505390762113932285365079235078162661694561713382737794502350172898436318150962604677384084024426314626275797230344366087905913182880898048011200907298484552579005571481932546768331753800209694359890127441602431229858442936935882091328528615892596378669162541722400974629287152162484723052332092884509268713910365113849391039322659970209700174632084874873207983873445586903048737898323364089985283389711761572618707696117782649923759438830082977981736017807880737687610193388248363743544463565643000047138065335962796330967885726278678056010358806006305833536365971419761984987142750070580146859663996563829618006246701335354080251558921420034199025123821483881113679785569669308927591108277396919271367335965094330389032754616777401484413551646733113969032554573052830125333459601559983132869910809684229624079023404600731304786018286403670171988847328587730637175339610187243767305383982089925010031088824917135827990128468723661646943129097286333073571466137203593259494585039632701296416949668030690101413070012249276880527031572961108551400297974147552173922995544100284713692730103808822319117929707961060205563186367499705649627632409934940809706350117796922073580697856800394898988765891148842975069844359490639817037934920984731339149359988489202462866598809569875570508315959474879918748989051467844398637630019208823921869525300204307070729751087776986743876020692365473360476753272461522726267804065708719277162151864861252291812421785599957588224786343647638507267825240554933587557318349067241272515661660783593106386649731947061920253585808761822659288174652443866900713266507607685484315818776368635119510887981559621320695860358763081730630812767628517044750998721101475406293778851587653744660085865545485765513968703725251180157948678961221680655287213794937462782941786949762505048062058712601319603866125717270807555838347188754556323370369954165732524590171298840437166902447628079528347063423493398307493770936139698211406282966208218739967367740599353347360515776422190745792127126985812321199636346425149723049299662237909870809967322227769165312222203566587319079328830524158873887116551034849617083145061716721640754824973209092873732789297569694090289685021084369273505065876550835415539895211639112131910032040137610228573141061183854376081763840968567864811884893070231043147285925805527825540478616770573257534085348021982594808207046259651963841124785684661246067167336712711675425756244511610990104585040920927312282485481800863360729759321401468053648979583591645227035672050229187215190007001424628878238325972940342454113269641619208398873041751078595568584462417389344040737512689406198079962360560623413360944537283918112079303515079615629608956534494854719265146502510718224619234326206069889751703055384169282412671178006575309148967904392431588012714952618589349450941649534679093043389636732035850597737429958884396305709887908595740445621713754939017456600771019134886207835826745009730025742351407459172426842960542048986830897490946411709465071772474811718780646950982227065325180616764496321510045775337732107517357938766698909852903401867628995560947650523647860998417905609738237534855952679466665751457876438455002180926396125191453754725400324512909034393174264874632125568505348309812842924779286565461838829309006665024884410574885865948483836159117567341564032420291611427429330604795568914031653201966966264948580306662633450868107978139747508020645040930379505112089591054501841678673998993682366961572073755322800818668679456966589789192012400656704985459743876623713488665826706816490588329373831158443187064711928739910922450405407936513448170237286974992144018023074089292951025023038483976746409103576738620804590135794589398943051094987638029907253699414977516300363648543949161805690666480323828604861126627493571106574477321292637384141192407807669976741170182942326643331924598629189853843262742883114936793867968504447952704494383199560087819576130043000032575822071218469423162402499914896056552575403542771248443888444488701504961622068142849435423942231772812142276410049786449928528231235166840847760639097918389753923282733184017111218307194474366777363221802111982327283537017666929036617741406374705548897534769938240457230156394222298267024908399744516518578066555768146990083120199820604992904973430400647953030124010808733251045611602438216608213319224959106295575612431927690468181151213014189113915882112444802425961536564999668221201317826884535926818229010448676048232825863524778961870977431512527333476081347162792526556103831376252280791683303842501075559248956738655443638974703037825549329813611330101247010828787159554030428447266429830446253016401806586349570876676944889337970045249126403746326569213249844482425160150301628066109348729899777516574346403290794920905659980254590326814299793245757907040445774036367629171673289932702177381698932042503206114716823397500798717705045150813869038924088655435768574672230378163193455007352523162082569281253184501201466984052221388972679597716503900343342961879791462811726672063641540689290018043940275581622127147107073147786433949952797630394269347133570099266844848400817670022450486292997824570364596350789820833455657525153673086577126460044567883838070921212571577318117485021744291217768757854355530576105787892969659542912892456242361761522159025922879519077351500682833707960393355931279415545542543054492895510924279493328534121497275056542419907115684412057769520698532942056990545720186695397382859822914469090945907030723993318982177340212239281866721746069834559142730806858215636459433143584832653306864383179967597652596645421683263807950522976506573670522231284961584773270178269235163193551273940809327332939692644510749827848144449651175243065433871272286600335163842707081387639616432522977669615906765309050924172354188924980881890939018126694306231183032557413981570043936494811882129994729032037439245631627398587269446098081014466647993272496658232504122437979824873169174885486379832566202676361630849534999436134918664300725948584958474003295148006128810763542325804342032203294360888056251970044033367604886283249887807445264845956636193005743235705004350992771931400857043337451467333575274384315436240543525207212884601806984729256231931312766668100995563805237585212387965624190301932704666458296062024224597436047399258581633700598275895470134031596832677237460900087411318430848653327157157011215018905727188696309162524828168808159381692856800302562177952806961700958417175676044690255620903864047974126731467379880838045770156782457084563908987850766909981945736363075868688610760726373105983575834898334087987790511665059130567837361885155906285029702533983685997580054109978610863756471689975512770653550145864525845479397482896153225921093322647857639754907601182904799090738545692401108328788892060743156838260484671344926461786174316739955406835202163263294183429132651755545680040392012191269523192997965179066381032840102907992470168213741396781870416331206992149146376813496779456966451404118425103967651712195648670475272534151195857538317969098468496807790583791067709326078631601601151044766127647594392764130808551242670325311204016517043300395208308907393610281572299816414939255366459492968822044066916019720355028111149234737346752101796001933404928940158189639754222032207745252851043486480907042479431704135239041551448711830072725391549141535082704397819189556813053978848519079875978728413886738232018267978944678729177144527963211224765528106143888521136403968964142328087609874820861198632667843266519869353590843608803639819522118005256933293644032089769819705921943010407581328929753196435196395400698798559816972274570179729458082631260811738633589071418819685842950424305231396574301586142180063698007148493503632363509353086328597685736449912572455120902099243772341963294454733782439349435132749863231078138765513887688714361030650767870728715762962661915600389651270474013541385545106469805238862773352218801012175677616856794342674859764870644895273201479861611678535718718841656955949112558996009861412581219827764804638018404042917349738791159889237776821455588444850264763681624548584476183755485994176456599824864706562416355145783899842160550341476719905459715521336085365022535590770737794748784835195760220344249218574733600636661375731057412171388720999802399165685225387126939609969721839808623481598836585231708235836549750910485641411857048166591235385979793873290466376139735804740844441793819642407905875811179756372639904256224263151802121496901056753662380187048008121601513577258907222206366024514812723657120936509266376082318959276774556675585917993733963614759742690348435014845746037282209110378207660324610114577817563813955809119653643126322231507156143197187336747156911815970722738423667714924512146199607796466987902092366580800411329278585171334083641863893530564547689501802969649081874650526629373170372983945380380513948308778932754846942803993127896474760466452868770607784772062707886993611040449621031064874342786127475684889320235606600367713192005070626481557455482574894050159416274022077040688093050527164852601077251172371794196727106059993899338946060206852996110380248454920088021323333757125161512900682563539145789885890179587482640505627591940569301066903407614629832474564570981221028289438925820320253464741577083127120434490364459928574277920294663838738412788395939840162050063884025387590087380380429604469193433572648177018374790172102706404925296608820733741124278017889260519776635606319236446590772581295899381962222420231686965407133722713419867899290142784781549326183700267957196391448351061732391650680863275727681145608997225286034236459869331292866076857262120520758395744732957513719619133202606324802963822453581399947812355488331069363311525963087396279757341559390459377583749925405117063242955361213354079008194464140462015821985260538067229489985590929925013185063755506080355349432224764159670768447979448445337254485935478753719102984201276497188361878347152614752197549557698838335747103812645621253276265162971242768779396856316984354894420274017986774202787192697287611545403064062921419434782315847665798375801552019154747831851977822094572641005708978578131732945644954262099513923280049240768703738362107461484045183339204350225799990928383413815630005343575296517148723588708404885196179115524080472270302908982050271870483799141246633765641760288846006405562638571987223243328760295998238621292057803181053932562773396286057589865753276395954209497067186703703412762969801859453221744445739093436279295800493843800569304204561591238046056068718943803654804665917980827474996811943812476948944101702781294339590247475291257949944708263553857129775114118137444965510586899544487456710808346292195512971943383660270894263558886258955812825118925462626682964276198809539175218639769634706104056826739237974746071401987627047621632525679440713037915232927844223771620431861250546077617545773147134117701438491211741919868236285690308688885815425780294691287429988978160823797302880869994354184994104478076252866687881126053789859905110062024421065376173301033516014148784781803630296401778780869539383032184658933937366162291861915045589320017900249645246762660028361050919656614970832089746050694208879818188212710043205214338270356796693597641862178012361919795263169140408285508286341519010127397365975247225584698126097440614874285127211301105738768748082068977759667022091640326526513561568651426832080764265261757356392623954922665429187687555299076172129345066851136660601337740964225787659357610206863109915632840067911126023739190153121528769204180511229594575900715965730832441253283981088010653366553535456009592797612000432626650425629295400569098529992969683373001306797630894949245678159695366387638265152933449247498749857280583422429802850849281071872293774293265145382088425412100603963010566520734920641385921883987378899602630456045096958385476642160817934724057054401058334973142486697100867288612613054025464653022862057647458976749103892027466294050554436997047235737104218662205847889901308663553898202305816818916376684317775128176989413596949116060493452048754140278395154723121826856682048501940710289750317128109068782686160997577685579487514046224673145173757225402790960283228502554677598069150259155541532583009464445598693863150263884173838881055010871502223867215702878437400538786220989974683161311470857306747702650794368565698458878501969056878688251456801963935281765653075176203101397326985901357690138039441778032059713752256038173807390703565146560681061071466420906890894426571426403627005379796995672060672866228028805002606136038419798520837673540702853804068199973490225565086916210254516768169634469877407398356402462559503243462696605355224669877108719763960092864182969010393365030239274368913509441792352986476391874520512633095894377711193019884687419096385526581960677113322621057108017385204437282610553308249052743936795288645732719508749978689607049356771199568260294186889576984390880982952593172072796156297982496775807502916197361606290161697587370587647061423482964079436000929409193421244702100611142184986555696869655269803701083826346453790488939905638487600147787164982948771935144843754251243114867973262646703117634188476991359291946615960591013670208023856076434215934236010262149270029898195668933377616786733251806294191535450309580303799865295636661759225178665769750276150226157507131782930826964206163371535094332172206867743843038126549336145274239571398707904404389029198575298893831128518506822122231679906737941821345170492666532441886468045100090587253543915159737461337150541138325945596931001676258153840058569771195639050080199742377404394186983355266057540493358500055829492888980295113182667641960621344348636962353865941611870403927030729968221419481670310961666317949423201787622828134773361832821915391581805217533310246787515242123618053895022769076263227833939770357264430750038069973112880841332793552398629693154307444388619300874029169669428394471253022211235835313494862187346251392015733309551315715235468325585718029806339050465375901117051721215429645203841193681267863598283340649745342496714421306305283279170034244287129367246516756386553510265489395188325490575359636973177873029275778031380764439607994204100062557939883815709707830916079725108512228216909757111938729732470574392158349857357296597267247715297963705533969838991970387362704656011383110783483524546126712736202860017680346569252014075805410393911816640963087908888871830313416905773882688051687866102826913519655579801264166355690987151977261909005118413451342836096616849145489972398750570958592186938007658380725024244461470078053908828097925509393067159996242860163400748495308869941262038832820054239298521360456706334088792210343591551829588630391317688766022328532390640529478086139543743045825247763248454133758835774348739702975630645194264412180164484976305257520085495217472342876912638042182269448573000473447300442324703840504355877021936819514508403803772074906208917199096935404382468645026844456598088012251908338910833914406271179541120532360720229739592379748987485326619142971135582609660510416021810008231269215324397016529317742913762039481649328280594102292034787659961468986235857718309656680676542500968829846715191164755333175381213025979128318708848714616522044900533285784688062455021994166073370835558357870646502457690588789752395484768031230919306199011956775467252649077513138287860736864140255867600463589392181246374739848407063480839107191123762377848966503486732948885810482573560170368935505452791705114711660129435147753432193652589678107115639794505444773777555478166919049449136790089248412727495051288382042506810379182944855989169439202462707892464093609584848541860507856540650747566338910259078581807744657277368875146712852980202533356573605225659096935250230629090869194410862410521075628052991990950542586351748562573603769694501487025635526710572674039522502984394878297966671921792342698172040331579076397546896320562828798954819802379797972353448459202799718355837131392080421841581574399473630352992374057183816798885182912261500359543961291465915719691826759696663067976289822922528073439462016666742962637406687595381741557595138487722708073893111642569302521415788311634118770259253326304195325746977677369612527113745551147232450139395864307283989056145741962303362394411186007551994883876954231576441052338782450441020767948170899411478558740031801365880953693139797544513422106252673609491974386989468980952255473675372418804188568178862777122205331741323112603058252234084950659638232985419311573646856763438349690802924009178148074304487951391715439419214928821094923367965224299226085949707769660651083701380452917406893384737204532431449474795734480366643017212045136175971171571277821655426507823617248904007810898617997425823184446211935364610699555520183425689471090082973047823526685791953987731125806250232090131612518475075980957744381981288954300779385505040397701272948255127219993460358363639005442678737940602524181187863728721211158938343590191620668893337902538153789160793522242707249858853128667066805796256097292872558699893998940714538880244080283121543719459760066521152233818294998099902442894700469437136441156094127217590769822232567772066249416962009748374750411796090936371290227303218302567655833229571717408736668395158362278268424894213593739381284599153144917536732421295436152707138142394757777281059393504848716908575996099986686068965127968083071027933017154972153961513734827661677119066183430201221658916545364772859445697632893616223411873252376191208351201338428315286717380766876265251773485115819985815024362461838081907737539124012054354036296143233161866436859233971666115066883733633254981646201510883220489949098518307832789183273275673295182208105092673240514674669167146644353327716563512191052057039923820286182360129766286779024161212088438684485741481087962215710111072668521072419384930160789280326721558665621222802459042753089766623378581790929852311790728157019256970985758216908849666037073789924361299668718418635367366759406960568919736222583225652322916938332619712715712855211230757349756614028865720922751553884128839522212028784437797399420719420871800789834863642415870806739055503621435801104567883204110364630604338842302259878780098246857910676635776010719167178743836563517464859110712265206859493511600443480536267473635688370823639995385389278390669861449599021591785906367644471015792518597412129151827727300299710854957115578321862085918336434319463304186811426956893901508331968413427489996714307257535937543585825807031512223701610044049127973913346431339778676202734147162970991780029281778298981392466927205092800192975958549947973877643556363808283885314399593014220382075606283866643454267077197380305756065257464699446206400346789535484166608664692838800843259706012931739266243595641523986736047863410014313656919132045392021115295709121884369277559325774669292929484827600264414322749580331417258897359959481397492431673267614948237913014669045372501983836696112141418473084578000950855474280382699903263372952563813485906926265552583708429849010252661486905228589451739659028106558870152079184103579743843783014893913976460888207118481744954416645600229555892235532955044640890354391557740352801312675348120746254879444316953644634200646236706961202204357209570564066411438432886703085228630769665859758274242647322764552824737916641069791167614460960682554134473231566043115146961034062978137098254359443084042302987249212751827745228153294986428640374082505114759506574749252230514477675039106397055638709837069612601614451757974386814922589801661969937332106955582119387719859070439687449226797618103694233350858031697065677309347029186891581598853507514044128314724658556845236306359431183937296660522477889116396916016648075236769606557263167354596845817271173194679276135781580266331508904104524528110278285251184890982758754088509810122946185273071994074658935271582862146449647795221135186418443794699442316179354118462391445814217002231516875755407600849566483034125577929314733352784016219530990731352482958390299484115545081717108395919991063950323528411191433057323639258521673021083978792066717015072059626301632385889057380658190348125664757951963188303756494702964334842422006975259937091151262359139753008206349768579157321392064309922366111196353521970619951134846602928996321264718513200118314991793870035578396731578043903806444085285315025492698032011412101683776857816952210720430228410592587881960385119375328005307343861753302485712930428936177082764563091965969293605623137503823564065593884754504916815075731794349484445394203842837568331610108180549211786210179477120290420558146606796138828626417548363645859002724457205127071395571810535853158336021784101789884288243869799589017685652944459245339235394192928955136659027071869673807099589855586608795509636715585337588385128710338969712001062395950039675216511357571231840253516540284731151827187269717379901845177177854832075182006401331502067279009894678862784040271922629820577645500130981746893436822637382621822857410498984793166614547226533625052194570547391766429132919799307940943607341837529214131843671072676489801003711143663122111605920337081486448335552868484432967981323742338860754957710001135383397498035445580570859413324792137107492018156473197534420290091711560790718699670756178902771514041361904306369874468752017848017283918966050121121381395513935519457033310521350624750286923212231870266074384969000978806069423875692091102028726579871403476334081824372213224850527967215320828114806997271040834099111141370808836289334178112420639813127025600702153602068859467262549496767818423565690959266346527006141591884195246063626991356613050581017923010313652634394137064248380770172615805443066690432320557012691116607988770058843202224903412190690273062546242333169332828453170819880379783581367357427404158504542968017160580994753970014553318271842187494347506459711748023714649194971527192677975386161150879380151488589254604901582456617025379123703293876595114284123335705058543901883065126610466231209177723112431058031199716258370877886379009364073715303502404117422213210659653888673942460245463017249435948844595312960835805146124735969611047877362274092727752553821026699575920778955777072049532616414009548471157092045135270660333541822494952954996188339373331407937047691664526784297314127131124716656096884390591857797945115048070362725930198053770843886330934448672191084134642308774268879654837666481539017455495045877014339442953587347177042950443605146466904486450303486407535864045036464963660606242250926509641257336241427733094879647513844931214636871258699945023668585497396002086962692338164760584505887166207229533497892658745226600095300412402991205387894410257314907521951225347875856507624924874901657364080306610676562955138187261426075988391968645963557039930013276410682191738643488504558342248277580740899363030494788690002550253856460733357394955677794748259218309752092366462661147384029455506737094345006396555654554866585841921243195816813705621836018679484728948976563493305597336645830822646158234731504632785587933409103357293882502484179030708108892203672928104629999102509318706049771590337355729065245274579163537549165658631873805881004143170683153555687604818450514969961384570690013550699583758135876960931848164694709594213617037521253979826890425814349787859162573278542630712890426734289000272356353235453545358495625155396146281297097892859303830884610053111400187011323749807255500675152169537893268543055350852628706260759073443631806732562853979194033636801501240054557818713923965047258275809899002928230888480242721372622251205218359496538883996451129262338434739237893472681668645656942906148698172463761407382022683855247070197311224296158306713881902844670661094239842455633383616840830691066372233771769037393013484436048118309314188623910423063679665324337244244937521592235564501945985643049934988387813137045487262484663484395313188984395207901353763387732103226822755131539124078621122429562558341571033401628153845633042058781595808415409542290182373839032833029787857194776714790681142618819059094432527850383325008323641845664230777891437823354644809395039840701188553626026590135169885182018933003972048019036736353239711537719918083259327342357387613020712741851215538156250003468136477850024903727453279319321385311991570085973701256127700869150286211460721736436019867528867170472508623894873657598083847248156285174907935009934786657533217577205848779222347570394273462953892649061780198353777588906148453720111347890290564286052890297425491167027367080269769334453522628106573939816877351377500766159152560965318524260631172827179490201968746657733436627412193600251884840289335161283945704895046040784437754164214378938362068753780831292946733519485728780035987559262163854950229452766716670000496893017129617731674021525823051480397355689928418491638657535814440602078463894845285836292544142602007883672241484601876854983511690851906147805028184627355760251410723454009670731318669529192753415507502979956994232635605297105563871625738610897860271967080922512695365693107777434492848011210938095099981964393745918866192389532484361058981670063105215750911146096079985352199759869154654258079578620305267219845252065043441437821888468701273266241036450098469500457235428964707622910239541381539563854688405644951859010251345705808783594128470439380967723867955887883071494256418532625958432880920041279750952402498893044197674616080770799133841173147777270713063669702771122715077100739500132801859814934559734455929298528014575167212178193640856432618301701571717508978059390682004800121512344102039624817300719042782600476167427601943527219349082120538844920721297682191826878212247381946345553681333332418597831025476156767372449251399055047865873666029474509030043732601180999076873965862284472207804539448290474973497749838908663854996815690224066725351625591505249175465872207665330445348382764823149814176814886194610794712759548458473620759719552151112592626626427843895875961299085564664602976799944943392678132790636782856090195731690853256346515987911731247309187482983348445422360823029685658305843511110284526747556016425150208589944705117549470017878445034506425632126210114976789393962828414952415533275560552437859070701750961341051518943374439305718275944915629291621921779838169024754993036948842442021968465286071371958350924134102447796169445880449608251825052455291322406540850012241001087084520756754691367678141480477301655745838097676962924688063620549296385544423658819958926248700826536119283845146985710136493453848205025479512311189112122770129565408046542489324212847558140303322393235478934880986120968206117949541903415821830350939888018627469918934279593477591414137259536423007110213969029138298152140058948905354928734462029000955643183089918825204835799721776126727878773512894929615054088059334384255338877896499571627361363227913413973770601208756204417333236119532464035605880834406976431296420633677148995777208588893238766429230862722821870196978208001270079485586208163417554760899035179332575561099876692721511230091050853547306075487590249920694082606291946353359314535481188171768703416198574260390128309967289093262346172559628322111456097931469727636239165762512520059560576420544711005549698183547379584917472864412366981590770040005474741631095894956885965768281051806301523029090360474108280214100131692075398805756555743216337507497421842098640188843256776896385916375247056694293248290725501427565847346736934106998082124493365664567889318258778992530868161602349476313014083502026242395732232949821185445808865033574026935883740755096264651261781232058826309048831578561998700970171832522256670428251953325260601252828434329727640922577531633548460768025543826741604601968960131216905174709112021727437240239198126302112483708438851186780049547119091455971676162770061055981116675582276030316844522203182611318518808998692588101982868485123415900585145840231839337141595297629728469140099264283434162789301697889571129295660683408513357521700476843913112672304503033758116540003451861126744947995982573104416021341047082185736065496670732411024740415471613781268302563141546869368946749492113001098774800512276131761064454730902421401734699452714547989355957678142508345328713519812068684417455959308005364039423567763791544599230778916914150960141317972444497643123964624562932926046544891512883580018507933050566123141271268102538341692655758842831990992955666622798437420087996712103679645663949467266362335248688478339764911805389973178337517994317985708819172225642978670086180706341827167487397790460320654559364253370535739678010600644648930650824130240583040306351171072085715292157514804032397521597916187768153032853384407164203009719035818727198909666292417897098593695544154213034087726898906053112573004690716085923986213890578866777133460287408204350166268413170112182031342666243846021493108932412015919366701440071884562412527266126480178906814495140474770115136252367192136336634823660786457686684322690226538813550358764087571495669981822293635253596893108551482976150640870279515618275969019136042876345348357953441529945302398633973656322699142836018315563887183803517204321463232999301874171717329003072885654616032164020849477893106118058075402603170612160040699102145042063324353440881535017704266671778941166955646069123135055818447674484880710740682542049803883256435904377708941063383379497177338357673242950345425604495133284269897922279223040056420084391087933970606490665152074261635854202108590272990716482814230295735961925020813562750097461546846427764834669843061109386244837405306747010155681399830899636212727605653171247287945335862664805258844019976825534670201872069002620216041503058829635729914785422926503350737638432782123123748536954185830773067807865454542571772244478790536212580325708566302232719778154259492953411794722212410517986803420720944125852402228061808653570135658764040286839907562424013426135330476086941748530780547008025344944407840999850866745025347536092423041660413360713342687477723682637433696716058944714040675234745018390668077561912968689529597798078273560729922386029977587517148454824955952286763423879929466103489428144104122284968566826780374444835703810995960715515064709865906829806727635821851247489014150765547134289392009953867399680756882829879753209627954049208522846248084797299750182476995508754757126726177023670067685749991311535684558559279254600472521990281184226041480532066483778256815736734498127607580445527462889890136050162699354824366764621329120700809769475399130258380112467331205645776021647128697760253897991802264179785534846941735217151000696427615193065069663399043204001995910394371062397610388702533314944628339156167834933361235186089514517506569390270498004666450879436273247921938416200862566740855600803995010487432445479660142906766457461517353882731586423442294071471031889782006483752294351918433138082264486958334363144899989241377441001300988298674315020269454923787863346126643524802415102717299715204851608984311739383896968941725912192832385310327056571969581369205755215731846437806192199724931972663736899895628174705997002174065917808543039139210359013471349087234711582724444660228209250750615426342157694496049888298473367477369244434528453839107388449156332332187402604441552256204254538006863639911709469100988738154249259118406331083236094090249080899669810457261935656559990162806652956962481787129907964827370682614027855568705814210126244134102520070703055612642465743841458237579059632094726085079199581558428647382645000580408855763350235835522426568476813150229196605423769484599063714723733645379358390739446942431019066628493475789910019072366967541318949736345943986479455180626422106211979432306421102990778909223079358102412452616054591503783805293957222292105972386067709049443043853189535000091231867546551191426488274470309485224748946889241349119162964741840827236714442006085493266099221530972645830761277251631921120997617147038403536318991626188833840933580638240182702497109995877513528887802613145611569796828420157670168378105155947346728196220778097490105572939090202785041376903648840470118432241694071476630267244901816450191580982945613123106112470435088772216120649695031011715085239767771620427006838634767375042586745041094560015953521686269672718016317491271968962252709021879166571855055049164546504792880345940362431646769907312221638426121057479312934787855074418639216127321296083419938933518106353017469426971712321469149502935992171888799866404952510057810847777007437421063910408180576722367983167086751758109298270856681079260301253594315992098806140494495814060567732654430431743899629111487935770101938912139481382744045998421834128382793514655058561594981767183687064108465742946551363151055023080581986546542663937938010085529231989949607706713947193778929602828717386690401755364648677061987353141914394555569787881351329540834798708866756950739545025978472403157948314432413254669300541943884064727157435738131069812540943546400634556277182775326777546761098128534862722945879269795852288542016998057248792657437400927505675524901434638714657795434422230686232125665669772204431048080886118512415809941736702127767310670302822647787359011242470254894717924925674222888539251416694969338388057642810457652153606753275790377728196696190516377754151668144321572052700939555917421618828660300154712407666319021532515280826230496893615077032604920766330985039777702811790868548984251253167936462168054279986214458238027672696662787141423016129680471244406483124851154296409755433509705486717867483543803297428169919553236881639264789718579767748989261572017483132470203860005356773703155265628026850748826008050080152007687683982174294414013566303812222913926729253294058374881378972384598348810965374452054840253734824647050276515141038090845207815343356273357983269636093961239022895380536318462015816857535249115407922202120185264016493946528362615461879261489794156225207850082175528576378253470146283500920246090289450081083848726871201701633785930797160516707679608385549382955037346225619184104585792345297354701569777835596322425601615780943679545989592205306787134604612299202588737914853641632952743023005301820565109567897030998729416289180181511567617094656161631192694113511095133388631613210494303845168418101140805694455670177876949542784738240171439094416271523137530421695963210159560937985089127310568041582233136450404510701685139982413519349310059310781024539251366836976269274026291218293438544763617268469280392488672813387316154250253430472363831272750011874826546003078755244713934697692315959502198913938180054984565134059615017273780094741899129443531554540799373775573970461762755089653213603120372505998330103245095089269703458226555677842512923235479966432519092886971657495426020771910842448337406069464270407349790892948817812609232397001588516430443610616641726703411618712461198231172203833317369466306542492453999217196968491973531708666990763856277423852187836314686550587783544712253418612771615042659084526277167449924642081455979479707874703153684320576763055222201235756050514477191332882145572797566689795025634934678088004453717196820139531743499508848329048757948977130392668029920949571910388467257127018295894418600603609836839910882027841595632697957765390056783339223793729639998224799284281454082534087398437098230936641163019987956577856122893066391904080144102417424228171251920533820972473671295537442032035260044158485388141991412650244056919842004669818435151404452836332452288795011973272255743992254109375233008284703769623798680736769239494119987995060114901735865946793626498571201238097662220662981618550714726348354689180296290946373002522009480219737100021202578411752573631287703994325359496773902297759546162699972511331847309405598998484581734574623473567792393190402233190672827439662269593111543987550596863149672807488635117648872585443877732740207616370023290226651825934019934010629981899749282683029257368153649174871924725442155358766576090184116638397728068475785940242195290008932820189818738616826859906718893268851251688812792672872698042664300168056037077707124515915373127617591016666267195568885371107989464461448480185690471974667468551549240869879147217179448353484341572420724276139026353115846010222293526506215998006340660244246305505963620190285478978486440515358277236786106861495488960135582688042814112761496838063421068803132553400408004344417360314895027705163847920395656295316800918469287253414005546663489507990875579637374243738063684164820687658501146446444219422816597359240400509749519288365307939210767436500701127028301151162541367359269445333472459411400218869640919388674946074954346132574396393714380950480190637652786657899772601241554341809008163682877788011450812918685702566278205738894720007485035939979331244422849471313445683874947505411181748892202802840875250977211520239320547674068147089694353275104805500870155432615227785545646371937604615190323369679040685055467823364575783602122418446226324602356476968776932996748607577858109206173033566763577994618739136375712098986384169134613761634230795161887663409239173326605325911360587074895006150326007764300124229963767720633667315319485348950647397023223293850805636631708508426137895188531397639098766116691750043211438508026169703469542002508477800343145053574324379049902258731763446246856451751148310126961519165308055473763975378607965374162217372576604822005561601417889393178065955241394911925314958688842466437749702115471497374893141521333226575733173525140049382770306382955375698205563008750601231898023364328303441790425321751227504299624898445839996345678108035871433655429894681065431597375755328361947060494115804630938243338922592357238539182110802028246422818039385249279449679295662489932544771344697247832713927141192073879170349709343769126684063457726626508673960564174258147589465663061862284163248505730157094417731681200023614524482206996783991208551838289728295140567669993738166387873163821821491726043713843662587225753524750833542859663675603754123371964039496263623305601137888911067601458230738382363365004264710128767163039441247423656781560541875992584893438342401805445406747673129583635655851741357667851672975249675778640236111601768647555930577954023109797989718263428365324731993912550805899044831099670511680538117232047938401967681392538973451249395691472712359648785241819347208504779691121153278115312072499194501139903073842416472233588133073005314997081302455253133200222355010136802484528623362486859410663238371803366921581586627602167151256695740045547803968533974894994172478641198269632297669661676601206847352821237384865158446544806673622082752670127972684252111406016701977321053297193989196216611730701925985947502492133123304727712236623485442259294439919943832317161447139659400838958513922670127335660498820281057484598888280543199354253910430452485335992025869299555033120184192832187026046878632253253436696494371532395709711527092958673166158519876787199594287700198216059293285808216134679610845017665217999243540806591567884371648978819890683897477266087868890061720313946220056440086788114311161877210894839668095653031005378877610937981441605988574012575585594832610095213567057652063976269440402079349667146548198097667576694534458051711628485971654772288102475785077860486551078478414895952437785875392709666975076833435012946445474112018817033333571989489481246792572689691268601049120913459685600367372246445416596048726899381740882674865257119831506068141952050731683445382794612764524011782953741527202789928406225256542376550020299557886630498900982122810508734558006871331366877369178284492656289121056412447126938018677290083452244818406146305148227925365096407421159019519097016523355028910690447488447489010235641191367783974962840659524126307016393126769733775990591567505782917790376397641755627530939540537202870371300008729758570490940295314633825805589952782670437099967436737239253164507697567376757776975047430733541015722893159872541183289233722593716651595644338957779635162953355657631655910412354586820680496864657923719449415414830537223447413238049250998974477488969913221099199119167339815259545442564277775494260687336798734776773119016937061621237859432655920542322139999791890006925298929216008569028608798342761205306166474661118472548742536981898956106385227606499358095749182518942534610415905887124575248629577341997052144489174621247259951958025897762636111265314744720683270575193281596972513944697474857553785508327300962818082050809124739444372379896590052247228888049601677261899732579493303260291403241940874909889449228980131819604745410064083215728312466093611926068040591376175288222726635178227210905877166281359417861436776091495027859657360869176978505242499052927990784885937962439085543623271206719078680774968935583098057003814620729115640723603026239203363489586977830982853222446969453437267709700872030411685858740068864892106601378065575935469447578728817056463592626828214710132511104667407877924301539254072284064525179956518802720231050906159956099207073196301984975668524180674151496759991258970267842035485165287707559188841799163808043200107829184796081200967011945278124817391392226392122737381562270421112701821271422363726108712879834162237746244187628000096768247288240314869989590184638671824905199035480613546006433411264522020267709379160445334818125529011480770950587753488193893643445331076367659068645877360735665609237666405955202728173109853445589464179334828493725673264216872281827060442792660332803492045509612759154972755368737014358183015248471932953645866929792138135631487117901122026415242798936367603712034427457694627927521084022108135007399193933688682863230448657254288491286775383358004006999814155299291950033754709460740802160342916229946140578047005026929734134187156069130414057023938658651615543788135308817397548614136596612438595657602316287671508871330224879629073672887073650068484363343765168159237369250667585986903677506627251001270271530531878214546427485406482406941718600823849604584107972161329618856723557902806516732799874679368650564013424155393278599294258709225767716912385060850258846128309056305351281728999286480402930911848792741837478089906467759983885651619018573425441109747033508757766872448544558225854130538540826469312806155805993297169541318274419081609381937217491406684749426626586327508558004008868500771129905354393828936240897128638382440653448121002132854216304380398733987699164525071334604174598212874853296258743420928011940437120100653607678152771007072689075879872268413605005623761997120464232057536439161749360300543771482209163746543757721763480125263042495741353952095141906956417932532352474701710736288017575927978301983791332624601886120688132147165032567611864353514190148188734056609132899002191966403039382674258509806118181243559941913321754845757628437857614213030743438735352130064685786352898230941207324793602205605195681618681595678803314832847016381162190799064241926484963178110682014073498048270218703596369895390726457219737506518934781838816732021253452546330373275500716452863021699916714541851194063481681666059670151524349860781199149380070013347806806885942144781706675800058632949588917854722549453491311981452208351838045531455366214902775358562039171698069719618277104611901130608982376062822914797932264678679456272552050327992551171726690160602554080125720535763701891220801757327810917819567260516588649664414941928212402415477093537125600955250908566533162504980409178137506033298213366128210558184908681354137709838048049274661313263828344969681991522407743767007260421259755691928001778193852830760867050766754290957993057858750154684935242191919565005146600117092540222131341086492663383406966567598472908183168757770716147690813463037684586661577518810116016127602325963659992156160234573271106015085458754912953786819631759990297610990876311848095566648329951607989591233846096095937939694977256382507504567925725390196207601594808431580646480334920848521032862370376041428923477849588177032583341687548038403517420234464593461002007453295718644240464523024124850043411324249817261395924142034401833148613173146933394684540041206859303735349949906750500540100701044558346213815070151373435784935164951226975046931909514139653220074822139790117941517351956320203867852500261325449258072061651436421801116848323040872422136161706258438449309453061956545451850106115393398871333222299565879537702445230225615774648488236547888385899695020632639205572494523082240770055193749020062276430200452544745699722982439867812350845795379251121289116736109808988844537941265302065017933895871533295773978132411673843844262318636745663811292237366196231281160212300654716431229492418503204576276933215586645086457501530453405202005132703563471961293060031133207050983581014403383178191608544628393959600126891139326270968172556158597901180767356321068652766188115107163001486972516746979600323783975204997213528361140503735073704213472179659130075464569993532091459569290677769711273544302029183974484614872896268946689526428956475495109848437895430447947526844196296037602903357685087397064810985368909512831873889651301016620178297020644411829178165751277300550050581889412930087141948256187704186217469997005517632356422507917492029612112957203724262876682336499206871912952863398718100474839766753914850020913216444052013405040686056775108170133495512736875851720668996084510937033872192190226621418056576051652142434992729911751993457991013331334335548949921632969999710464649304642071140805972522797135541768677387431630743161411445432156322276993019012248357686117450605161021314476047022863093230746621359990750607530674974760506254183167240560403614884184455000476014228774289656034941388746706562571966716481904691861630469066632338867813082187992055291261202114701146924305652776971436176483338328698968067507047586706460853194659938980598471833114500807727925260481624439263619185219186762097731600434082042305522659470570465859393009400687467276652742787041334055237149325431971477070908902107263909526496061817567144054106038699998085465725426924845377015033341819768373547725147355275975186435573542344043036045618843409792553056461194499561030383362678716661212551208814118178386394864852002942122663216307745129486484440491790503501788178503700801743549305329930883772418647385920566471945987229257553136781534646721645019668453029370659977210155120351398308230922689532007220344841068980295618788483074776674351198990666075379907369525595981154877692259770995904716862922318830918416603376639254567500491735038444145332137472200502941982882413880318915313465993493639980496309463583832748536873172733695328793930772895171336851200336284520541035868265601125387944365198377322591508001665003849169311092491957963272858627580972452037958707195285718316306017382540160912763307003955922193573190483757169200332317244848316548838949559081623696000335054738353172849556573676881913251352510786794584191817685073968925057512948145841335650265987070510775496713911059262796911409731588697730196134923935886050837955064579415874831313321937131507606070088743628902909046082729049026037389403808593843114693378252338739459334898259510169750138819958044755915424030673608983268937072146811662200930192691038139821224572021294519241332490202647979770537430927667809702029181880016853238975113752366138824538687170415333126135391508210958457419742340782723360478331221305455043692633347850950276011170190523066711182401998599794867546433087494126650007164399191000523255702834583547001353784907965291010146093041100024272932882807452047488892666083531966761389485004806728773608690212110716553985198849226242003796197937511454807770726699653817665678316305929645910003483974385251129975030291917840496135394725367288723183951187919049227769234187801394251674045292839964008016922082354701310689702619147544780259023757466481299879149234589551434788441103081061153187567004279591073540878391369578365761960316639828182531598832912430569996477050421094083625348567675663734933533052296201071845070422844919013940636499567465284005318554717647703040973049137265870735168911641374227389299036119661498994421018808861969026926791483193883207117689254966897740707906423414224289282402325943436556190005904128761158618656273813728222157024771595008343870882177968871753815474926685633981766941653111366924017859831076803743831809349439004585650622287298460304390324417571265447421527373379289859191987678655927608610696859110557214344320876609626414471707846170771655214647446020232635389344695904375234584857590914299016471830733116699815589126343880575839567274539245342483332537119926011314454631647566529556478934443482366967087128896455353389095505511237381852684830544160726486564579993992783091565877598851862585006294568167133982965493405427425834103013410600930981031845104583314408813523211938429990406510116169813511793839685081333257693618593159643463458378742909840775951785685904090663462404381667558296851658500922309179597668404226507452321728381124696912929015094441709266960043342852261607584545787356023957368564830405661147461462864912350229177092264560795119758045180390287401811784965873342753252258851182331721638085395593650267213923654103526026080946587461315949370563754893096623387242885618509012078664892910455234491732996410455294211811183432907866323632709765296637291177641938497680419345760758180162690784845580405215980606029471093039413157480595195608531502257007214221130973465759910105183991775557253817876541373985975177825576086577676031107739718661037462630006799625566518894618903335367593835304938997420647390432333460775141174783465464979273944472800567865653155403696782275595392044307252983359864135190991472971461862629757614459576137179640870174629233802611547957356699302081519563885477173884727383768319239636753847593862854297619878581318293721498329641137313152486003791124360793488553050988378119189868833463020930124690941924065114431734154265510383116882673197275281870728734130408050271132625662841697422733280783781851244797148824961865232446625136875540037686666842154524314794086493188350353091528702366494259447748785708476792061836270150298379697649732445492313446586859598712947359488135452871700333802461076966630706192865897799184498213816464203910925370306281885402406906902006947256585114516774780844286475180176110774759731813106004765897428049336758517831797022460827459131176283780798817364837353359904925954114061086909627995054089094685989223614598897763457536167543078181169628377078967757223268157180643357317031777310784960494308935401258703412603674771911798129643228887794566393182898625121315210303522042707117504044301139987218038466852357227534005108448616482762296401014365526819417917798886096013124310812226648231179713197076929907140867849264480422400193120113473019325120012972477113471344037538810689336402899497629312745184947212062818158919934389614996565821662280573122631951022409646017465353557578931802633935845810526985382502944363872436719957728456255544348341286496010863507995213717428271326797987159785047984933531791895314927318560152846840924736603898449780814113329633446432008177874019928795164000252545348117087196896835501108463233147379324803104344241771950882368316086864546807287817901526258249975908606800996476921403390867413659700906402813579151144913748133521646638797398008291835854628834935669072315646814199420476496707651297314849559037837292748831192945115906749630217315069648164331216615380692961502866298202925903678122141178643687249155119971642244695550397112434786635546819931662753758131082243737880038070546151713722941354733590238529322526360825708434942429363613086039975541062455000033673753779475895240272335712134940090824077233667222982404158993911950837147338582475749119434085597318283512452680571919539886481793901049629257050550370453883787229292658798287176483738997358352673872019554629986143197200068945185717585166406516617660364065277803621473635882458660811955631944221874329521674920464803150774401253122367767450287841210740179830105200420406264212518227840157664004335326150241742816046149308033173486320362720129170708048256750947898803039014704694042839496552998600144386502495033531707174182418226193317640247648565998641991156552847223689602344159768635856618413943863070107125685139097129398383273483545763811699079164624592392308661473221232675975932595602428879646941256729292555119270259166358083244988342193948120892808242011486966133932518859922657403976886901272482631794390467152385271539108213206572235536017952600615188302833503694317999050684440257958711807652815137171245241939464748426928909448515228726638394469883602086983421840072122966396834300108198907229441458090464817378210239513631347163045241302308874259850678941630572048945232274598905821068155964228665363412539993036912544692468394805412980261450996558841751264129501683779232061452906816181607969671791500617595499509645430895260251144982523048832162227587862995049484408983864569258928326429484886456008290945943047932186484763723948195841076237868374087206394816508605950537994573327662974161809944555706542028036366430929523663459423407456651839344931629623841233220535261383957537437819650764524753863016141979757497306884876557595155901773712324607346675157522378022589931050197883345212641841036984763247122153161085468599339100300378927974835062320646859834152161116116667710847095161043422836441226369970070263441264046417697350805539705268518589630580360695476806171914025287515173268721957322161765801253744960238999122836265881277340062249998595426176371840876164458143564689992640799617536353158243713346594632166969824625995766586970274090189512346992872751324869799218427573553114510809973796222551926723616683457166167042556446777882940955457550763241789270452106742686509312674572396017433690872723913499119842725897055806289154584857232687713194562245145922809309571600284585843345344829510438159211341298669810645717408306689851798521112613982513198367493912870795176805180386971516123021829785317651454873307076685314198587837649490590123110161453312915282327127086399807210923906195340269668025183400348645133039401958217622096948887351069586611435637117973879678877109330309840053431042683319591769166286698018683921196134971615919312469617871918289270686265292443465951672315495457573390134040225733220121760559000574382180215694232105868649357220406627135803313473079928428063955991886490057207238335184581828054676750310339922657517600988257470743091934155632540735199680272970658039566829328045186794865237644675037199348103564662762135886205128490384872109645781796454849069945593501269836622060080005221117507796343336802224735160967511029264532389271276764429980459120359426164035023074856699332982394225273345618851038875155265383927877969575525994890120400121227209750140852851340414739076478207184975814739334408519825980041826524696574337218723496840112595276841593956287153404913113848421536262461931023023486685709306050599718367222566095531470301724537327412147436604692397909926773914520125746836912728934740623370353139062394097606518523473679366340893672330888089183467896772632055637694071813678542799405621935146858935381227444489824773018550041327274892142053236481835101293182695944282378718756417793517937849071274678935217232641592139257346172288740815046760816887558331275758085457030976137085344375283279483444355140862925616654612653293803560305295291542846870912044780053058953680366724382316957804166698885316727366423283854164508879573327699999318193078529774869842834363845198996823492153194697570972550031659981760443235215338291544159471237059793613982643099249587032577452672565840220033934523750531767581415454287354097876439612534734471288808056075184802921991249865285233152622113042413251170965579167580812711442902959411415043440267761065133446038070417105510059527808035946347683279222835106815763161140171558936991177614411341794587525952537639775496887243859598155625525723608147617910013688155333219663136513015133377465223836384560357699809409362231842244726784410990509946809593421002625164452293567631574806867146195700981664673234660280413089747505338382186976159435958888408048172663694300146876239403939355602062830083138505514003526244606642529896767788171351580819961513213661877700956601352075948976288727887947590156588376505941632505601059145741296592091490364251329227004191863842853953126692726825230192997463650369535293138554452471376564106525346467549201863063971311837287976554088302617954795871964164093840470403510306956447599134534532894073675273145016370901254578115712925678139630822622355482987939913204352229688697643847443569766123937278912125824887843510974181494637055515234614219841747773690044722263116174803472295003677549110101398599751838638022186515129896894237923303648835670180552201833289793244783085159815207058245573297313697077666832118110483281796252630861970996074280161749116003528213102557210760036234736363010163814334798828967729740924575309227363726426859865203844924964049513034744590550937241789815449119122914414836081902101625696692031400643908622036370134705604514391478349718504361764292661709870773007665683754009410036531323282028441539024400915885695461727215677361673381581940428294164526381404151068326703251972801834014882796261279676227753533124087868404296270314885176022833012824075336750009437047593265930081416070545828004502197737611196883670176725752563980894442081596624859620289100436774899437334566942878657927942854190434359817387124482398623043336893512271367036331435536682674898893682587725860855534247780391742827289566742557047579133011768282139862851924931032918100037756363182174337496164120442100972739099769667204076275120624635644879806576919241935685199892352928928106856869684507675632763704124544548467259663732537204741984552610828365047702302379662657375166548292996264017608334957335604148026218864023736253171404302278006385752852528595087933763018073193489267830896727669331251334210063116543973078267058547520672851124684702022222314927686264474187173647367249951954254050951197870304418346844914322843022327667096819605088658214075756779148713577225334796195790042251486004805957859500317073830802552746827439660877064830755355601249038455423227624014040888852978283594525242696491079460132951962762165504119698544974247736217026930348127855938750092786536053552018079512687041204047165580419647382692239621253462742667856315120776443337016760313063592730955631113479286689581996665187419114576168460680250696637239830472023832077352110641638493425760618579761944154046453520309855724977163788887007881802742284147399128106853148911337167019971151783679173185911338526021376441321899220106652342001602111463420644377642779412452261700454490299863464525245648495263791630993604051669895625650070291358858124969592853289711487500951181002119344318196730846174279647273711100495675954990241614960893080300327034994653137891068253551416353654019050741351739384724118467029758803383897875623112415998149866749784141397434602795544870136363649543265377353771108866688339923967849029647573444780883650289895902754639485101287376359339716395443418779196764342115288643888949252516192381971045792399025466680276171576697401975474690477035096669284198879153565626439951368407619970821261909916720559884438752627478073124185853602228025953750611025631286319511094290643266546126494642468620860797956025291240598732011158536983470710312395779872334662562269279468957597521047888356296448452474521121941089488856999543820496467429256207687483291798043045329747477573554652411195634452675070459509667279803521390651523625523870254041711510959861923655431821195486462848339513461636347327498200134432606921587046833229740453961901498713291437448266884953566813011998964093444552674135434394763246801951431759623346055787251318070412837016228668191752261457207847368524700654263266963220471498799447721374909950337984392348737648017443063532322720247265439293405079058562597014511824894029253660195439883776128133019455943922185364005197896009926543880499605619536219891825841284968892450039279664094164023964292905034449947817682215063372192984942466090510765743708605647394190916813213506516578467519493454631592187611839800265411534026308401856640591321139592867735166791297251293106497184346562915739776323542737030468976711349161364396348859266948950843727830080121748967332728493162778961506143657415967759147967486116931072910125932576799247481407612153827808814349989951356845040596010353625082513645679299134801004443243048066894839850657098161374119009531363504056071972538115725426362047564128833354103141258286870931110172056104971068093545864194612232044032581248497488058680159963810727170479321721119690912711880650642586927092918067849103506054234775363350905574354916364047149914483994735979598072134892876561124988337532947719770789667187929737818734156990925366188333124838128515591191688427282094671795693623460228358671859400853431505553713089318143778387801396796670199329439207915452697500008665829706697514749413712856579377661493591891718323597098256268803953545664228446452718843634971659704735380691608870943313600237208301302263396965013034190959774418075720526898984682246357549156477777268543540860428908045468777165101717111404194939106005466518333570775760650888243639387727259404255913066293861504900810770258985659164283718534777113709172547004784456255602275975704345548519204430708821449388927756543915508276436636406670293686733449135912526126578376652949022740217262995545398169396192601385270256768886528524022768540080739155117279197304869238678662246554861238101649474592288266908260192940667650964677131035101734465864420963972142180722745296483962895320903870674766877750274532036311197352662138257414655619047011184142355862716267511946903633237637366276472326813045702768138840236684655551282325260540421576715751317827544973995261803150404829298156955410036128437257403505459840103522563394621134362657924893597732885029588114976609220408075722409330582116381922614699177832116474401692700924817795750860770162703329235571867696763215003737448631768804523745261230537635400951996858360532134246622936313640573163212909843763870066793421331417865125554073691930073021613517951720564367056532302185472730406618694332274483425131465299516714371121515562054860309721848340523324737167074573997452963712663555037332869698191207486887122184552014192731845910988819041638233954162859206386192777578832680579435417034012812636290649398234437760545748055654202765382740301065473978614118251057401311757208203206976888305655975381813364210263269794562071827386333369034425311163181635949934032518699793002519814237383194014505279875876155243631549349580639994890017662490653521979119709304087641355581784364940969394197646705808158177873458281423184314984187935191098801638152017197541318871528661470094291572412470463594717105656470296907437315780921452910465353932473140163785629276175541057915087558041768329900811933347512716656389599858573711032695322741977092383904736183322805999713341923004674666978276362157186783966836345752794691002856396285255994845961830660408114712871200055493655505084723046335922743457623248496268049059958831092466903354550295969583019116785331502394682264741595007695762617156896875403788827568546339627258006433888782596159638844261970161205078224431394081623711208895994039585192564688001898871003071436474088009331956017944186456513177782130924985824318719474886586930098748564639222019900645783237208483098236262574755396226637155821808770593365710928531295751657393494677694906587890124689605029452761318854597052477859835050206641673163027397674672128150537126536010779081344633458355076214423375561067044724342660715811123484719759927553424174334972556183423442790531213958549311434803169536326461457008768741137050134442008604558537965032417385530892629673376640490216490706877906610371083576000090225442047287662782578929993061947140441653121760467881648828725797852976707033436781211875406905677386704936575934680609120317515780942209649477490291365254058930720902623465395415010205364933032505963999110193802593450209135164503898569756403466800374078739692023981213274821223035861879451324902704590476672692700791704025871281764064663534402987315838393001546564308549795321325792177539390739583211774534815126039972802246876986068525148252855886874061185933622785195843540634579764937460348675692885601643030430267679462829129673629382166958210579928649065346679654207099395297936828431708231026326084892687302238806895203184265280567307829505196449526772145489486956123852939331234829687036861418945365302320359057430128911247159074856615149219430805520602669826857649424865984154568296550076467295874071308930364996164794447158794365811504093188478430497210709868331297492616478827610051937533561925821846030038037388089824822078400154484263588840049253967928999699056812624701783346427800119062415363210574256518846080182932055834893136284509524465037312684368851344373512118612149951142100571983893071591842867351196449275041679240154640751216342172896121430259052225763277081910496708755863949668214469464702688071684218732733697032436848345059726139491060773257088016815739069217587674234594519966544070610846283383690369388674542609240486568974095569988267428580666717536377074201571987459396322642533420666957090964160304321597848003506423235459215487333656727035928439315405805126959701995675115291864334900777969124142414281367050728256948765828917996773865953596034293111880265026657919476183183174269525889827318730222353300732786939555198607520600847968611030731572706864441051744645737676536311439872722576759244875541833387204384287652969006724291896744187795169338452564135505107964641459020819496804606139858652870161470562399371517336443410724846635128841693345576973519181873927536319444203103933379891143732906252102484471438487701394314707480796084536966156131662181509935032510318395377328900985117175907763421943951889694772839141298883653391858296342432724629687416571538990535697199653831236281573036046451045615772542463398112905433897954538121283258258425251753828989301197219282867178309145053576906802452798068954352576236801128903791771457224707589283355019933866315300151019064328040398518048294966393332515173865086608267522137011365901065786063366408897216551827829812485600312231247018212609096049391146806373832198574235354215161056913350268681196746122891122856853903958229464895910975958565325241266528343383669805455936563804794072759341274118238759062629066676619642682332709861224689496810401509679452371760506867910908241442204412917710736812914306696340654806945014487130565208857107389414400344338965863985939421609360254226730342204926825150593967194202425676164412224258700465334885355312281405714652310575117365521200227863680476662935522717026618987630566473338132089499766610481151554853275243724167107871792436082871756736358247122631801331204341965753847155718306444068965376248312643204070324308418642109118174372737302872276875985083400757831850941410482706872003652899123926887187918012436686527204494747989616101278726985064749314885075794049148547249715397408314249536033963788496676063869170945273619971943662126277739370457052300648414279911994064354276850996530921171592516313406853928599158110381807146683076474264137191882431615912614466090356745024657280442862760514581325418444540611811842824150878665438883012948387614254647528196721233046535895271312495839459034741358451392275989144006446896476930766832564377488930625577864302060646092511844847038507137568997642197774035811765712371544418757694204439613441432148620045078176954866801544592886523878116166501457401112301699928034508786347470184397892151926027461257508168301004213475901149855629207919995284852880513029683203941664132712878725694098495462441513768078358249852312192066058435231996842145922822870316983260919562066217798952919129244673438622019020518184836167073573753686383847130749468391230043376294190315986500496349567819685953723259998708350383100045127053667398239755461197313794244180159715146815926096309356424042575815653720277638710580546787471235420915666638787746602081789650564655835288725057414557121110611591880904922885989149512041920865161158561626332692115781995045699434870966266982285227784563489643293032751269270223853107104043260610368874696807107301913796484985786019983717209739709162821086270665639477001058003637046498638334796531407766214032942872931331625669263720920856163770845924519479459412552120411077145928662941098422151465460423768690567672382064089414920526347233799500484170805152492175102545331724072686837137421944282749710069605597259005942558237035201709237133504854821652651568354064733013385582399489604277619385255084924696049522241069065987269167487212277855601562791772707138745535464259318482579288310246308739938661921161906835745239516915263305396091804028814307559706811502073088276752509734176609878406665119280219911696256210079315445203004245010195125140312936774016313795075902001630480163729954289119220917928056544836772220378795842734917611550080906296724493506359434870835158021772237458596199539402434457261118587313769745134524196341589101647411432317722114074627054579720664876329149259441652185351674606710399560166088452326760314731175124837250364762183062593401930874203817824913145291057779112243893731935726417442575414473661081063499817096211827682130817504042485488717401290821951673590182927401801390948749710658006352884307712221363806017739935206704961221755476708119007408791804244061800610546517877670518828448411900328997593349027544651542405283508080754208515363758043438978125845598496255059046033241404966971345753398549859425232731260154274532630654061139620132954883908506305007234621580505433439935362773853933972153981691412071677851800410328113690136197468129660532564012020671046543394780005898406884175486153861410728571154033698685000753380728994735322223675398211502946194278360962025021118974289637322466324396244705011582466799296120280583851274844320813877651563301848072751386145189559300179455124425985302022664349467035365150674929524353338615302426990069385259444129392230455654685323521739787573280503875951446029777494230333337667967419612505720171440387241392632357074011230473647258182505477216668925864289582523390220735120224755196221050859424679196081569778024208286858827449717159347200635913799623043705455009326109138216560169493523538061650422925177670035849264331394702177235183718223149771552067887176044052067542137046764126320991007786786435649799866733394705765990063604725484669928461560988762339266742994323510230193732050963818594637037112537099193063262286156860796584997427850587297198007564984102013541022415256432204984286248732797500878816169081107146121765945324871570195996608593109717748777979743205277769731199024748655528238379646401722558358420208179506800859841230549490404604864571682458917421859813838978170708863910313052668968684657953124622154001716450323759348779762433176218304503721339637878179217687977504196884251170267779378051316617858613190810792382752337197681043619990110887623178739408818971290691885617616321419794847624519872384328416283657693977286770992334994066248693716573848143592210389419625084150534292174736713567354400435460352600667424275545952507138721933174975673322058677428204694966769738109392619418878732847632800649816773810176262367458197652581266927998044628716928511265267427562830316434663746589081706244617547606966850915183854485071006193656134692395801395239422601173952463946317999735972421966703171938714943705032073065132892156566474297218794226199026761049073365145700560981014023059171558801756517975031747284049281731649193633219402938850356956283873006557040589304125089125849077140524825374869312288474318527119948035023363393569857812236367511353512801489413289495305511636423972273830012152087307060413142820243813634142742306986320846094530717348476871943026486134518775589487100731768570417298590323397663858292868537046453103659153087919337156509232470977571046418163449769381073756780931134628387980040604603489835453816681158917181824125483909841163476092449594839212096368662946078161237173312851162115289986283102378004083736095149772804429089144178008015112123046583233265387924606089394249387462969937395912279916473470935979944449115351033943098032276337032025599260578781460920622785660571025187478702517929609980989297848349220314460225911558345439689948220296541272712261933401474571132400476471054224683889116286584998340591329062782535217472525936465045232062257065459012191452817366498922445985382192619204782835417758997121540097451194121803222564567050260914631537934357402509046275522824307080372457169892071338499658960190699712401727783269733821885755978522604704585203481951569503386080915463374964918086746308240728646318499672040148371518697890484139503650520636053335603068395268099802997358319190778670275947653143492455239796131160593327541974794001108709992452281918460947762077517296033398753002039696231620043531112505390944521125956960565409454431107258569652408629935336091204402658396547820892269295541337292107615398628644161811438628971196286680171657115186199868998970696425259758180386594291286537197005341790136054593415066956545207692291395515922496838197130402478361842044461324390974978562266991170920156961717446218790697853624641718238689250046611167484226334394673286116537405725788103978816573024058499454695128867731200178341705792417649522450183163201178010839975519979080950172502527052460329065418725417538774159596780358995341454695293410780657662534900819469360479755924400649588867011051519421719526245567318961196861287234720604989651561785551029464628139921272886079775902109074420488940815104672363308801750601691171710264249027315108955822927503116212337715000582619421453672209581466606170204781663145034585978729788164748895340148909453371602450387849896348746965647553614208453661968407105597025749678178398602222305437757162411100761938028428831677890710186199343635646078439548535252954628729505105133716669917801958966513857553692117027073024030944140168802379912840170055554493843186615038568969467348267649581463169268165935278791074746434431855053097032816385517942600873179644041541700983875497581302480481532321191199623624146990102456408557720554639100245414630345304340494895965779371364971986930187016601651128551597232880567611575872371672553542916599640925275133788101933981923308215919741463043201578318661850929397457261871739441662324790864977732181672560468012777339573861523747443620332989043186892822257914037772339238383723037919547032868118324291679413053531478331276848342694287229604551956140904727220371764023255276415102201713532445761549745561788360910634029939039363507372441473828593909728106783988054944646259036013858139847832004020396403872640655348972163131037139478885847362827270631477911795235647480397994867330270086277770208433079860452172863509577877587913249223400682126977132263836249393497807259968787516558431572319097079229225042103665185989576230179157432537094268333980400176004902290366279963682441092638906837250843024314450756896797389812122641824189917372355153923166442993405284494012720895320238046177764190746736541443207881531094334051118563587023445074110387405027350161723536966272203999955042320580819147282513137321655670404501190145927653589083523078965417281004004426240865307337359811399506233067906802410059559094153898487027384951719866703699373838910432352241896315016201302068041755962748223622571901978204799791063610326855341684403903214050668370508597816159625619752886495111490312934169296228886982253717985519712721968820465831894718485812420600104967505366621046598847200414626892659440710575134219978750067236254986824412046132588988430286125662945202320140100599202296406897103151337418734625411463289005008787759415451507092854866155653387746199769237391071718665423177618108846415970493336513963870606735370828807660282460576178684633056633500469920819463551600071622673078439450947423060520055512398409000911869610520735219706855295097230893750024316717533673056966271524388698373286109751743594392932085373545890897440940333793679980670700163876632321558816758348581577482545245850970145888218759370487591335796768405690633607646912321342275806102159219483178205703831634115766276690455513439540446226745054187073623190863307565061072831884623718356128557601388753084004831942896451103361111665228029017342156830230013273256728575995832309579227852354054738889423922656906879276367528519600421142356190245382574965537241115607141009450007606093005498740001602379416116311987422187659312542614527746302838720214811786885756295649558706377015375638144223575417202007244828444098244282643406876317531403511552059231543562925275755151033364695293690114889941253345407201605277793504252836127351164274259166056643425193131088395849136458512938280838199317753500079442490521199797055436536561573743040683044011668899028725599304026094525040014153806511385950050366900100103979264711430127010062929163674392039241301100952479700422915254319411226029906473797761658684666999147818633060198402102884046439766913352843282966196307190063452263743693784584729668705712341422495515494018918401830622629056060122784134524205103570963129193375197746147119280811270778589521517874395522392545293213888160305960499952650906623638885116573058954143497724853310640674848103845598696843630915527558301782546574636420353291584278442208568677844826463662898347644879495494356406908301496658739815729213466132770871166627302305343009901453358832048645040629295841694623660798737265603906010070659531143340416324574964751301050392541004054298373463003266700525074130037262001908470629659197530014438933173192362245575893574754302296736510330081590399898884117367733228284864265731892390197085788439971282702249024407700118880139454006426334692693482753626090000712746899136428114088568519958845963575477772685834201469523889488304593040927892579371195071419322666016963659268422020400413937634192382998932256998067633488704367587321560476415355735860879503441581497536784491320084860045642378145521798180566615404650494185267079481215952628400711482187783795018989770223218012693033305482237261689843582898044864625374370464920147837664644533419024855059432274888759422337345814426721912735781236256678602685400457092952172315465505506365122515196577069924010851336598769231999922076444399492879801031630545126995117713810752998155350424123794601646792048452589259080850401292049462690792562818835758257179602534093067232591487957616210866326369832524205431698471412287070951520326044423333576713768353424364323622450353318371699776162448361324183626617804804277796982505714605703514341605315017824511138674720303440970595600277627721046707959026816685007056229424833660427156302035682337451652195065066525775539610621795065449298439789359535358245256666583486580440295238972441908798188346111870141470656210752469937313945327014901252458284090851266589315362294353454676945669331541806850589518979135152383625833135806528968032743686974327456995077468497123095163011781286801953662959506576746902247752862265429406937014771303323301841133872254731186509474923723260573450477818067494247505327827667434567124548210962457249234837712635969029060938969564373557266053302989331224785971719084833693599651734499056979071915730734662677772988508453687510287075936713339447577988406927556147460439320892610288736364108059478068876718122052431739168390707752531863833948329839059550060494716910493533414536811933885128815397745397925169532844510475186855863736026802292371947349153613589951490750775823974733769056085838541562031991138282993732422143829110094784615115868143781132518534176186362925094542064976377817858311228432558131763798986088336833401459961604291224573927912444924397228118524883475576369466987539031222217788643666615425274574719448431705034853554153779364787909256549624675803868215267856258054030544256543413285830924304764094132271517552447976735144154289875806952827817660558821459390188690896008881068883231884620942417020391370575021197110726506214597225185086287701108724643216303940179613896015869464701781410535509183341220241318424715086414785916002593092143354798011525095367034085698625924335617565766920933471543285914668032160580443527189319423804067955308025499707991634847499201229883196211475569675453077832882373215643078352832949079612993202466324919816822093808123583585302319271711561689460381154110982124176790123796924339596028634278659716107163457574835861572994893865839503867127536449968871951988830722647695924170884000640485390054852918947835787353288673675726296969000464330442005921385999026289644164251934959075904508924701621814017832309061650569674604444186772311194885693145394363922225786323620531943962326024121617096842494323830675357693819887627921596402925492922492588727595312151448759979920146314153132157680633833904264133942171175621077826472210890943851335575340508245713489890756364404516806453922648091472454958943667368515973006605063264015453580566572328300654313050988787316957604134776600093888453221992987516853469362709600888485581053174537960339129244459845147018370083286353552465849144899959598031037921021713722444001365827586028135327025041957492980950642413009895103281101322673946333186128193576484604986986770213157386655645190498749678614023567059536281622916286041197745847792471087689412301930076854341770857132505948269255696342726846213826863784751443166067813284843372151007309403390626591130502804218162107744845368180954265620897834221156829794185193649188246349582685345960050872223028010179896461910000838893868493935615725894210502042127124667024900359114084858484662751538135532442143688089303870159234641565025401412928416495451509104721908842544693603028018895745210185896397181565876757987724007740047743310399670314682467928043308807524483509535697277180329252718740923060242437394862675080576081923887998493132856880116091929160735086562819750931526075316256041059283150529099602829143830950494922088810303680199806490937562374629566877803090563816816301487968045816210521746217787724195851417889366042366823345608823928152032516335903511165126654837597005924570872228287756491001353952996266882779872407501613481192904352717755486650351343007222826349220745096625745951355680554689673420790415736444827160997004826780446600632836270645579282898529438271832099954767417222869300275382571483308041396559561285733263952515076287514151175275405821103239785024770922299850711983607517372221816413344913529167236475920212721299257857172064764422713093497727081912095671191940156800278567524036990671414912402892909557156599180247378451109412298992234109148039597566494050915868037091439178160964331425555390182810047255631523882701579646095288762741477972911467831205928463402106788612603133025299782395480512382638582355907057178232849845711441792920981916257975946645071072367795671321423329717426188935604396319176909844219925003719520567553070803435641471346076461171680792545011765390277966580449424700395128501381583412299357811910299203112726179888035903846820061246241515470998395173749619865558670898350247608411551328426392808987297030179471445341451694416654106381768023801476552626160951813578432169695928331787150817302748760922868115521893918859687237438440172327721406550653812256639698853616833438094950112999647571275905990581593738376115129142690799006999268240530419386891630879390819365003432117434182012484708720220860724489214927578718044557304498854094615123634723861447541182228453052857890239773741800684765107538732604288695771218338719855853601441016663570689693351696883242229319431338753560468831622109555106293326711112716047213759761095902160785971035724282979945238044746247962312228463513895276934012665615683760757332433779064852408884733431580160765288120379006081858402408992763259785655875863858760261844186165979532576092432974333388676297609575070462896699154163711254452569380085473035153203758127968098761862418711194036743949864294619963092053819159946807097511297400428893283872440325629411466134619975203190085268381169751988934287066112522418033348675517999169611498823634403673581291642297208908680393137349261451366264697845917332232083846357594783657968714684310882497132728690604348053828642503826613397742424374437603648034363899707218077179323307233711937013386106313434172938363065135940726882702936969253981034107131157214113936827193352683020878201725754372412857731505581512955127528443342282330722567903622894882087881143964443376480761957763228097055367566693621868376893024538812214906867185994507430819307140414565213497026825804642602039472647131535033822534140734295466993355219814123193748578761593180400560967313308488194547559235652020586926255850029185639369791876143891864612070551081384808203659517135593861410050164937281112825318888061115448049992358111793589870198833207351250586756058520824514817106768733332616146084157912962719714677194612231469766280980366840579531424544158495041652518323566446941566754748645294536261851373336369852430668013296038619718445451137613436601597905786925923748540852832097858403491981302628046562369764930376831302220248405641976346760240863481509666265727870060587439228645839385359832958955295183740899918137649412312053402785005025181700316141295890320413546254122354747060531609981653728016478423484308826392099731879651309405133396954500279613656987166286082328285982040703170397037760536043227288320373579866758349553154838564002624733023042227919189849492606767199735599707541460001851084089350551738434144369221723628446223857048093050949793420285490705423119897965173759154641255042990856169248938129871937759373230307110371296898064000640022042114697382266080636566638480030255311443002810933402802788175290083885843123653936237851897913534163854479442283787510403455633124169663274956942304330963161353472900242284591681810440076601438428921969648165401028291211766812538426027411336007264120935683603485619708235412773453845333988998588349870374428070633363510887656636290833599732654072747911838461584613515101647008545576768651984546383163181435282503571742080212232422390091521957645216883279239528119684076481033718201597324080359527255936773489257592624977654374125631031826428689348056681753037024224447645307620168264801867000329957237986161530643550905497836408000393747257440087787574681803600018233347928256027082884015438501856633949234350864831311604423026761975519958807086519826622578691939327179758318563639439237771555597324200113796836470004436392908941939098272683904025249072150897607819219097338550524588767308336571690963207879265950341189819358781222111265144917479595256322701218649515461344493804057389684929848649620724021255956314240748477541502117040200757049158181990260810558539206960773011222523974601478494198531112341883275592488364366684190270613045081122534700496337496854344745400476126180529402099817026301069448041611642124382704733886789253492133885967209032863259858759649246416397331569316069971456604446065753892148764380447749365418982325414850645630654843347049810795508862492119913337921773569102703618429701229347073308605589887557665895735143849863569647369915189676811187614536095977229332300027394517038336869317755889690985050161668722007800674283432881748886261947507643697460065104302488260186928457108963984711024277215832951708979724014605490859805268082320433957126333131010356963180025993544559475825198958891322129389855438170041943796814861869189981192049211113722520790536170724997021684996501860119101263859147801495328876092527152182016747358693338943502690620207031087381053493933522302696760680093807998969173550653482507919827285439749224723411633852903794949732919392360351480645886054152753771825698230712393509936146886399457411410799135910946969058866473980841425845133203559597271356846969505035874329105825648169411431311117522186909484228020098582088981507965192693815217252195288492244369849328631571220670017059065297541565389616763073729443289556226490877818891033800953759831926392332963574062574792176698806940867880366560174226683173453758872964342707685938841241204813942770954001469845849137125942939153372260909830837700352736329310958475340025272127997508586825807685303852887359345002789834285880907987761855201144900484190716584424003041091840504104222666632068608286837396076966640717962643584262365319194112603595469482258400145569439784484746784845014984386572040231625483129772475603668355900985408414390338328967964851719055805036470753563294733525384178133074269462052934461796322169453963399755145191337066510239441081920627814229259397306193832818751020612659094792506526527075377261292129462043753966064220421984850856473991690150941960184465015850431812041831085764376418378495717457099878666235398508947995822426337082168923729819005211055352728094812149159901941530635185634969292798893937946782475946628730475929502947802529035257696770441380039576155225611747902419773481189233267701356699828059926837363227590483620511539597238361308331818458603890504291982971570618480996077329512876566607284643414698989572679241326276735513371820370602646791582292807641089044992420156298075442265204555489989436625360518641849715045215178602255210428784511856688170679457507962974322717001192110609961038540067144402481738877813455481677918486756256227092105068845709489407073857163175649353887396373433211170634293978908661757724946516324021978668994845665822427379872266068621636967655925975639650052396376651521700539380208315138312314824514262006847566379389764525338299143452671493089144370734625290777633567010150579023748334155608300541612633751615962356376906987559823543137548559006983219856746858064664028020665680902024971679526038118454163693465594736895702111110838536064068752941366899018018262725392887315251868037558766343636026707442327849413966105395303100430322342758354536827702810816722993868510896758528493076845252009887416757426340764001341602930551866433755374542085695208621986519705508079614307794942760489846724352037598143066147541779275462356195801684551278233654877803736238728766574067375014564751330543212132210407055386333520069060148001884391450103097655128756401662888312744412504660485549244075108229552122907954563567987138791616736072413379300866955017523523129008468810260604996175918991044993256709266284268220623170773838201794447486411521879405742205422663291370002046345342442781593585531486147395100992646371538724455426894273002508536519136786071489426631321306573996008588750913023431018503097284998504439844478487745742745429434880680749146217569954993853148491206147895653299872821855199566053742442830841114617850935151752278189866375430319463126020226861816959267157891576490584919744540792632705319209363131802088963772038003573676379554153317154850689848178111738323975348994462814001179120166488063192549322267320758539180454445042344628344843857215835683298459652201509487612797537422329996303232741555827126936389257137729276304101877771044799076853294349979367578639301918475121990141681127584428022306182897700584641637410910392717652747414476913041685247241920610119745854474731455357671204871372798192646115595221884978860709083901313739211442311868982054090572926479804708943105971962137701944251064667485905404286391947034097363180410887027378398818430234399959631010704689562687699029005856044511430315372316816084496301538946826438886283138056503252982670211367460822815265388290674807671292135078401329635655994489959825938988235610251457158597609354960563598016132104137224805193566205912357602537574302370947261828438051728217303262171542410515851356825096059866769993041044460960861998027454465403123929842865675185746890616272156588561525212213002979740102207990672351988224027392951914116451056004231611491942151941232188900063714637352446537245925442329089477564551103982344397343636260710125743690869797578666979137942484442858846210678415874063962308474767947267073612520094884844799962531594636800366119266241728134154996334870492161956902375754018527490111299360905892778326254176608207331924067059542242275716415214098124814309814014890831658685399027009742844680556411972746470321297649287939725649842330792847414484828544466605875815013591329229559872996499472719600524006669707129898913345386373350557573763749787343880518345768134350470726437071985902874914502083427662918212322350018829385943578326782744436022622706724620976571241835269914589654926263867940838447709661270649895027357770066432802477562824605633186881316217788821875289752070581969121916843188284788922427929433719868624347368731819192522813811501001940620330130502339700278708882788396354181488961393009362231078308437052363548083027865767370911421735285243352083083184890427338756033068717569394343135976089204343460087765220636699334071934595220539908744135403070838374653660691692312590178198833135397839994015290390908468506558068816439343548769524603080515412886119063016912212150324453452432046236183607282686057690755299543971880491025138026430281556976686878089952936271582842516463078121799934919261636167387800426154117554642015243556491194112429171844120627920605881862061522707559174629013958851446219344383655822677284833986413134533233149801569834775564488609517122137628642562134119649796042829478965709175661159955222837682589562244311422760736837125558840980748274208482561897502967714962371692381119927111826822814910235617387752318675233927983261548148845895857227979533524457322248802852593273518791413558177920589428384581484686864790277954262453246610089855563333503889216180078949729116633425689009724254681057988285738210207875266606775289455924617061132750901870395576487839065632834524624548736080297862307984494276423127760159619113237458259413640619488657663741754450125885405696959159526304794978382288101189871558750378427552222558959883527133826773572115221708087476309971547723449862809474291656596529194892786189288633339284432898564019413110868044978091061751764586741753114413610918352963979293761821742927845086198380578792978834768389768422054676550997879370423528717399937264773393497657832083344325860417862236788828620696018010674377562094064619601046139196937350226304121260945735487519561818276289797746737987455404620422914429842157641291978497113674998346550457985632033733209988261573365053155067182019191732956581765724381066922408158135753237614772285072243904955867762170991849033750060756091645747028288110715880755781956954882296955448296349756057318725439938866470039744892634003995712296448067167379426618938841584431204820470955764700461542436876716148682299958259084680998409822148082079195405325402009903570161493623744287294037801996625487995367427409715568937494160686221975803513337242999228921672919081173047145764805697238533610198901583049165851996031776013130883139633357351462081078504786656562653201463895630001572557584348204350813632097469967639131167356483634145466825320491805282410894438239954915207396956033251734147103170045119485706202683913650034424333666710073475385636462609071566261190775062557679393950519691796453013600225889668419372311661283721619438763562259293521087566763384115051495485966509096307391015201154776068745854763288626226547961476101642841545385153039887182063991882982948913856536060064143139749924584257077185539671952696189094129735122101585242123705726064991253659057777610975906853221295470115179158920462006409935756017325294962365829210002723591174629824113195817157778280991848830362725284963918868922979849251276024700413289372191292542942964820940930976785514968906966577010244781554974510157646793504987690219726177699478624215740309859025335626794439552132407615545682917931238903383816824159435206789003967746971039750332375115758935029898954267698259857252822239674739184683539574596200306913105554031532382531498697248229691050197990206132044125791186312632968327369385722799231750113220453908421434456057915495815064534103713226691135965894739731316973230363585114300341814830001442322731574620643574511972745232094804142958109459679765104119151305812548508951367689507069891829886474946345307546921598173823950703091992379691776691294406150407596980966817327606304633260563459430950813760503906226915236957915070684460819219839669708994266361007813094257068456534587092003516504468098318925069536124897077965379713655820925201377304063884704142870309312282700747972630262984985174451826849343191000491293271599395195167279638247139243143396444006322199146593614087417692707444131132410554490548194156390274898166551350757727981667244711860876500511293163178503743474740439205336885037976034487773525071430435316822673550968878334502032286650826971886932113718066802475919941713148810504074173562323543774451278905809475206399065282110009007626653147436452775531734493432000064943002731548638489183868955512236266008280362850997442267305689682427139650433143598908239241133200746997703684454825818493359145985383093868995458694913738299426958857117637407609468653089929508810280734766302605299856434550898148088098155902875174405343836727882529483094520275264836375952843883813999436670902439528754467282484469053851408569452938850578853083194806604225666914126126230493690764067104138249544709820644958490416918546070435031502882164113533153411035743260551226893382166120003842216830214841765821950702788966668427303886018075967868866730297560650431286549059167046916778058299842235085905076943442803420914476462021173251305249873787030026448959250642060313089526634727859263920245593911604768329442784400181457000924324246076320339510516865097243469186010472627472214899689109644537805537640510125000271688671257453717897001713251929411055810719414602643040117443742851431665667286971519578872153799955660211234908978196553167529475484235170472512393954959040542971438010383313330488960648425237293082359027500331159474315792427721941845461015220276249957937186090312927754998120878891447779230206217560850124599133963326215390795562999918969435882338610319337483928868077713219774951354067824299522190532537226461224135254873259545756248058790628285375129112755586306216295493615409862219127334188120351987721368205656175041575548931440862320938841005898178152322632106065580226131925845979520983759741941924945928255601420160633529361020179429535884338501519476240327598843001470699452829640008974750599998257337116526772293711363583932929564773151308406486684043663912814092851789027078561704853065074266434449020777951613503603377455012538287502685274711027279807088779644560286420472608307196696646232994580371345952650506124912803622100706944462077490621844417856943334499400499714106209289543304163892284487350744670733865560275808921600315378893877229080199418541010695239217635610987398966127560430160611862895438227743805038449113067195072496160245492107808682755179004495708974180584304280167154925437908707182793403937597007751195178586581183769041514620206459674028718914927950251772067993466310540343514545476830358681836366073152332939508299506213116171487314528946405931937298487262972018223246309447886307653128954796348462790879278900079036622310712007812251711321920456514621122186382483923799171671295744419149580591465675255250222402626297944070549311579724634421076518973536081763972738924593346510588510911318402586244867304332912840374069050393543728045070727602477249122028864461515475629311355369667025419101049732049009416100849577166261245677942127102355090168612903922977907992420258100358036343193426268018780476020600217573655284043826861991155311065217882889245950495377699731619904216447962798097614259332176231701516543964206555636577314172417472473147774779337025749214158728887666087524958905834875349292262838787422238292088366364045574290166293319422256240558775227272563230128550213299328927771517486269057494354395659197533548236303367281470947323201188972656379528885633524004347514605441820218442796837519178698192967577623970190256870153096001654934495082836198858439701229547808989386701437024394653322670069386016879381888591935220553916357531490581898463692714424689080429890081632344546546266934210884242037175066254244679531261226458213079939679795327879094635819962517662409692257847117410037216938477866817280318461606946813062917429476910464341735526806200861549479765358099163259675780100905477268851995267526219846632562065587452934909037376813339543888014418946204985575026238365270929541421614791246260868512395495486632246969323890731700971836528866433530466494930017896991779697701512905018457132753921534994614811718569208336955806499131096796262014946484061913533875990335755071073102198032140577255481236357402559164625411140053677055784060219545070510330020406546960559896459256572765065050471806326045882382183281930921224925922535814729883268173490796841171284818051596240495533364449835916229966985409274893767412263710590968190916623655199123745238125005828108041197081029217953794650810431583339100616240321007097818574522464828317727529746868522474027173108313409756451627290332428496510022135203975554508113182820681758456607889634435857618803219613340955519206773267766813489166478992666439290830526152732303716252451118571272699990679856979708169735592699852370390983040347938862918807302343195863050375379939737158959209037031812149266896331187216877289512330583438186187614947549667955789582556992469686681190033406829324474523433391818085291371229095197905872332889856280472398265391051457675575211807004399172350947506163980548852875975729635848762409417327741485358593514012065006486894850465605367204685417659404989120788824341207088279092495051897268921052332513798831842779812944267648232292791078560421743203967934427143313951493030832141831623297153481982302523328071298728498502482619696338339257535927337226456220555868960800570990487544537825194978433324886264477929869501674412260305868128878158460457190938984077837794693440224140651785079580464529623453073817560251104186075077286240289219760311592495733536181176578599177755098964597709045128657175605567340523174174131244185378229384898418554150682440245382680229532266152794572693681475971230409306042101330774436381576592633008449550203824748354945801551395225452582281956534599881710972598346841237191260423348266548179307429713691572244074404671422934933146915017831314336903101999779359490314457931792894764694070072812715999654636261910685702425530798633709287148249234982599305212275379164274050775938566072666965643159714284384118921960127115684325302629436584995654517458788217044269524462017386435341146002312173420520223945039310834658661002472253963283993634248520989600162370546773129565683739750738034782800522862070981004503572573239117054724454978702764580475612978713934169448831206224694220628458879071246625446182379270799808072582093849555492716754168875103843435164298883868771133643228541858087497360660463889140194956475396316758284710026081058022379823635743497285356998922619450312490542576597995556744010337539406879493282781408958040827374840742018225576875240029132334242916756266450546577066642306323571659666658546285000480272648018649269826539976830106791278223761720300727989644068267704821022378147255864062440357714566800838798204762267724496215236334365873993921806174973939811749215471381470126956523710481767455842490573394751816572618746195371030862902458855019465081973548296918221850048051848212934713566123869177094350424210476844221527098152072947352311972160687658170014527086439912737640886952166452548261843536796116194506797840614183615663558784480873973229674508978607038409302848570474980926312466885056422360052837555231229670249786459714282440832137465866209772627513960124423971915427304563209015398306745569103927410620728147929575288216045938062624056594976112745597307910907636901565218734709560236792320805213631815789349334299366868954715331238853239849219956396262447707419009753455255894114514552037797459327809424562927037635703681075458259807548721223840194627222944849428436052956078363608379331207612692881129857015228052761539634603070196378445686732872083053115817053708511954340619193899503596526240644775938159498397024229364174412652330545992166538085833791340197020308450288332672316517998965385387912537065786070489063635608422730913116088049829544745651368462987397865069715486176095377966938540416538257846314697931692382435316088825415629475393717531831519844637773508701433820338759679492311693886673906083910612407954647114455314438148268230447579275368375048444559023405658766982540728183143650235090292271829320480308790824918545528971083732492450723934463207451259004615241839150589815553779162017751899583636596700980271108693475326504399389195642179951471106429484112132996438382602516114378059071172806703225491003847219359113983555760128587699869548809561157715253642400305859252458335367691508228377640192452838717282689015026926645734651903551039095853940216567972405650461226418747469685087450080565717936008386019820992590885604841291611711261163332141813982921697867931859475077749244483469547439688836493583173437169475294313915949148076353160945240587584814228990978329287333790219034543939659571355380066136346044564345717049523351776457210208397560562916437480875266852091862216398620709734656412077439301236864058395749494528745037353676815801418999178366722129707678754135619669735106535028529038239930165015804451816908472206526356428444852191158135301753431202614470237528078565879868799358954526813853526500645035229901416368624527994108081731579997650605326408707035125272361987113424998046248931129632630997746976183212759580056063332360069573148497766107383470087105281254553458990252697379157263244218422814213203635266272999900878619500546806709879826590172575074100181188704520875892296787638973657892565822022191492057730232768407247661016884280800770925841645236473014264330070082528162465026952144304666265638640289276965448936958284711687580141424961623600308450453250532768924707297372142647317525657878113751486033459419004923121692726682838572210865642640760058589926511974214514978931200266388585145650159340994983571852968566276360934430496857867157688733964898080488528567542998614864019788349952251786330189520659179326349900317729975303129395303968968323799770375676161480723146292777450751736033117639936768373707839905327984613528832293882830645896653811153504546993987132375924177644997700678952629697604294930133357743286389339259110687436860201864274726570076189992252888235548198372040966483534014217476006244574584679564723687699181036159782423875329121037984275354733180782497125303201898625099001219427829964832547921380526166203903039162415111680964056691383035240286841110056345266104134832415391237904566793330052142963737268789072423033355776910899972472724968421559557448387015550716725652970555028142254779289265948767781977695107536220735725922585231715758935591829118696864022053173603069429484961006905593217038320089184648200729694353335948312870479995521882244832302268777325718945926646752292785490482147599087187490475410531330462577374870602428414041617049205047729016268736857163732044846384609170675043000222570028827472710210197775962963819894975115465449796299360595952480394751907494407742303728502188886005495658319998408873105030618552121004436201956717128842182311428040630983778837452417310703149654590476545495664286553747054117034206584114753594188273576440534126545966563006904395621778205672163670150544276652785780113035995618024860586000595794665797846448222189265013285050809042564185773868561142303834069966652230271127751841150276462082864983260435037094785341856625353969122846738739313499660851635720266373256190832173168405983351368311777297601037798882120535221637295730402174140904092202156567612194877129196499274853942822648779866862490775415863807642755341568042036898176990306101026840800536896539682935083538593641304323667898553267582406143376792844613618853181557751783022984676708537734594150490341577922525739630042752897809850009185092293915732353767234327705655400715066637362286032973665389912857779516141481604645018133399276344878730027206274805714358389101462474685696175086390236479486735672012308886923859153984387518997501896962518151724687746140779418227770455297851991319369524707081446027062072591455000871269001813438979005330129973461692745255936584236025743188798228333657489880081810338956713167781303848189227764560772421475849615577519598931423785876886279340734955320464376017589786516753942983604253357041829317105525249647550907409470347533268560010963313447097565510264025255852842085930689147754578542319841906101416829119541207972017336721301215893153625613442356157308363152975430660206710726835825425883038997000350721581635198620339263027296113227562696103582078424214634616853946335149850338014130311275110735477201036800185721201983206060150380353378156483916212365083486511867569060707992609564764254766571336845790672194417480991203406287962520622822404344956167229815269803474561259893327812788623942811494923405499858364330695810510967699201433757080241819581616687694893233387177614071673430534550184022580577599900751672923900987514295166505480120756088111454774795152682054458394324476347059086929598234016896099035070648658143045854353142350083571569180100209622326592383746158516411230066667735717720257397287660348517523229040885116639796595791535300224616811616561009334590959679066135704738289352321448165960066687651160776272194023959249894556919707782321370662674370913016998632499225667511299569849783960109084565563500075049483463972087126164720556910564559697898333094444726269068555085479450850785809125412068303166383035089058914915479524361529788529042713124660883892914710053280581466398461968902466767039179302526585707734682414038174202479012531835861850871261835570303629954849265331341819439195228305205139486334351362479684969062237548333495421086633804621575684759884117082975899934751326537208947095285746721088512292224075779455256753004205506697263935506861806637090784639336575626929503888215271583772597960707083511529462369425706943065913452770511088933074242312349546759974744867545687086747635254775348545034935164415925280575398291583276869069050484001138949018900135666414283918465866339559958074666931290995892597718886587082819377458174919391399075069563628253983956345553300889327292448508902469934692587416983304660405383956208276925711419144506895137705810937184876308266143495091847593930447355061843820413417307544031648663383090523097793888078902891279724269556983588024377345300999114961558903432240823169482610152759246973386447987535873456169846595002208614680087014597203644906083877663661072039694977308138364257618774803466154350119731988627800491430217022524682456347234283708800853689323987130282589875601248508533633577844993434881130494638317100320942928437137937834986086107478391267690869134255401956456403958208749942192288005564795596508301349331814970200682560396333661946335710616551962042859659390089126915902784122485097125425575782436509803632960341026050322311322452207497883516034300903348845908743505111030879576210989017506760438051821788767353483948071461367437559701279160153168190231327674646891298152660776216447220345828643500618272926640001429694668765239677631301163709034721393870187582237317134072549372254384282781485478763105798147468273996343401922103122533012430560270229081501140796885454843843593310477829729994801292423112468939965406391932922167523263272951896466677229190956753467044554521894822395296011842333003614014408444432471872606595639863224972624937305220429287034935441487131726640997676822701388985661535554171350642947670037541420646596801018522772833830956595944639013158778649511566877012031392914189665991673258305095324267552466811692077508544904240616683303085491053052881971076230435063117053800074095970117177588159617480189527983090081183096845044504087969201037799982566027090066255854300550241860824526737025812197757430225608953066803915188241844688799937558649657626468635402241908692017239873715615252718647866196654989722203238145640399469807003491807102278343397667968333657793409655749673824718879383784011750102747113163721191965522620994266899950677126253077537468260811588764948882216916528807828902253745558955833692920836984127331331491451694601112322011586860151237604960724766295438487971289353398760727151220057598745977605271040030776141218206173077140777591117667127354571577657590558899917965470732645642047016114025222777091857791763273508626836755964324786284097236605047444771334574767697642662010942512020240267393584338194597533092484590101674827247733968078594914954831934642536756305944256260561865239853983806190759387324260311325299173456656422709997452275280573078558077249295638016154409907344014482967934740072596894851160603718512657684754669796189295206794428414156978792545845874654491371963617875407346603792524628563570977063771859935494730333706989054271055795659910327690433697082409149237486152630504561211628930812116414058480859401827729806993432682818357036745488904609498448220830202337892007846349251718847425562771426456405436844081283846957205438220063597041710151329352559037836521507924312942215000617458555774533713502035246567972583088528639092339891379441601936350792910660541014416563364952770479799787891585585077242601667107996605191508518284402068084273369076500492113547274926870490065819760698553597761416084484663041028689962268404688903280935650761388553737090665751846597707484244054466664386485263591492667127437570227746524505761316091853614262909743772555031868766671112816175963099450243108506576436657445536570759933765864440091744463013243578076000720447958808114461977515307093890296444363396428976618762802347893293139187222946701465468097040383484060234507937382428504584212163943016576207747227412435026423971702193000087888815995527578028015342099017581507313546761400461651163796209334048784874238869004683379272948987040388566208473746675547118295663248394359232777260127454851519283633459359961196424770336706763513622131366921776190639559796280565079107392459295270010195252219478035640713445986389851719225377784696771902128629112014711491288228539652562506556694693005836907731029822671044863427122589427323757791191582372128819179228407941057854215656053761007710360543382450229951414284491811166635282744283817862486038333764700021917556964786552287453666937897283837562735492210324163363850527949643361347658569161372500289332959371511311829658246852023624812407094000387486128066035813468544564164182632713729862671947362070813480803038743391115779789268611522042765611454012242849381476345926327858317790991398332769926607527737289608109329770150092702562127824657802192685158038674506226487192924537908033835209527872878618646775146835672034025026975115700655587726090835614905396377074815933350028478543439108252054811454857315370953357755914128689003965557920364007154723924805878480062497684094634226013689548305413139558791341251823298363454786526571624044948700544409964855904676469960842365028498090577203050016531314112285151070982835184506505506666533561259007130566398568696928210607466552808331605926887231048089577783205497367750066640958818541051006290310962090890106220744581759204013864529691400583285048360613920854416890897108952583729861568145350871693826316209422804997189502372729241705829425517340412885572486255622141148400063921320399591616851610799881139548671363176193393749693521342304444510167327179681470499089281583858468248753268276478003377452068776849734764963611225874999147481811085720603235487421020268022340546970552518785763105451153698249122211704388204708698433932114568804639274957882265305066853056880103646426594648898210194176000722924851471791660997975521817883279546789460996442298143532246021494876026141735452152126277466419952923537013694719085738514337148266077077751686677160627471694850895217613234334316976139884807304213754058620082387060688203083741418797069418277054752112847111576044270207319503319837884606135215598405506521882702707101814946889869746160824811408639288733939064548957896277770840460202514035493938233232181700783001783909469899960633057478191681153940242051625298017114048226387616635378708644919286231601731065809017432310144528197260667569718390173189480203001962233186611205361350014623326807130824465973644568341012949853657492397723117258966521420857575310185751521742919217595871737702512067910958899607749382499701739893446533390297380350729719823408770957672265889202083477727476247128144817148893914021279594545179279595597902168014777442990070843064290213199180398514472095926721252500475607200816966660637158854922830221167532736409218530022600955713049328077981940705045894601123962861479127523254016493420838155471078444379270225589784306640338147740855422696081872475218899349233637994761271553556700954144612087389397059688785349518622009937268937534913355226270522639008451886877778761223955010208903871385201178800944091850471738822017705692648636749843715789659054933821794413114253320407425765312441965433877485754742742894612086241499747875752511385206129836293110497545836878919402356375553490838397501278793207959724739150270825076217731012967151291886973399962741832152247732890950724682341764897005008766528874310480290803522380652910713569909557904827074360076794760182613899647876770204106036613394989969525171492658034905670250693778253743415525676640844368902912766854468551251607858855964436096977825290868814437575657500808281854643068643057781265368074106315983672497445923105493355246644449634014428301494727023699419395129953143900391922793535767475146378072824320139330032735039693633868396170477857829131713909647901889705267498250749164025502889177644351360516509250538180053393004669252778953710051079988503674411060917700959059689011363938948620906319643890283823070886259461206795440904699959351710322534219262141423355788570505210945889956784569777564745564536312260820297556174646633136247174408692461549368127333094585534849644027323170271490625012727134227051691347960343997375724528140578607860136470250797807303851638925233526946444005530493887220373884995249034756388979935001956607975899016423782465951397103386782305297896116056721765925513136091407122564625133626392774174704681298033135918582651523205708650958758477814916572059403439918706335131374005747664892267395826392849962023180088446085734366874531135197888926158505074855770460129797690041976458844030495855307043053719784961815316061176393465374626157926855223625513562140408958692825271009430739578592491558170478981649059767256708404346944024333046307631998377880624206117178872632813546788929881324118379363411286968673642273360338425578236108933244737022244876477645184719002083925407122297829036247711176669671807565919057151573526694455625218050588977820201124429226853684096116826051626519559239482274977840739032959279854371730917295821553187859323836020607844472332451816111304411414090593933358844563508189957831673271943482370495505601559682956949507677290265295483827111848512272731867726841937102532022414293979922904160893030052871489956265571860774638441917163092681957131261617676152414654270133512705820665849771277927656455395053282705848708049477043746733210984248864109312370817180310098814052856695091639498364935328372836066587391730826968868719951453933493769864044806703242382371661900005418866733200741985789599223940784971651035383540525967118767419232602012594728705345429863420949819929034667800880059007973261614164685210927094665408121865296419090785112695039665593858357104738851293937886055239548357024275607729685649260224954284370283871021950289407216942958401152058038732896921927564967201702773328725818170576041793468497768039757587334196461890799659315083096539560447258378320281355984798555109048327286375887839806174859860759682012510084322620929111366095495012145083143256150732054471157956867220341314989893392502580685982588812592030284925034474568394921729835179954532983406427390972141326925929512965394950112940523201780977383221414305629215299013356282349756163299211641569347243900048667404844176772858523178036640441402752643840441969218216512354839243509005174940235672187568318443180925777938458214301895637759325564834689621768755505238075236046284806682130217335522375318238200810339480369088298843408602024304405525764912082173162134684582304750660077300740804909635920115489528763303432133002727883047712022681988873227565944300231705348664431081542839899197622517218134670874175137817396355778194545727943385538678011180149319415986350646635912771173984853839219519889250479623741712369490699105965719159596432825046746199404706836801644560472781885884165226418363583824352632699537727707600114204194563232137049643672448521690429209174498116736219563249689495728399063019812820725571225636384692138536018034885507163090979588254712857923646917867196566885603332678970294938506910938568533895387506477957587270124509084847970893864237902301294306100476216184915913819553748656615307300111982862373446285340427192996774142419121857625771052809599078420268177888960672800913257873280304100283815223355086097042220735909482405890561704874242669360151845599126411689200723544971477453488132530893251365543035412609987389339000544960630118530725016519821899280281983504526596981001553137421203697359856776786175693058910796554251874415770695401471229730071565861465198614913221041301895281885109103926750846978680858174832783125224070656992878295334112960268695038541633517927043131790713675180033932108001515910913224593110452789388717276637947295113536623303928516626873725665682858543850570714940059371197332778182957446712779192126615103650377685584658155434039764977966141473985659761512464724669832822082615949662924333928063478862663211216060269318195241042836710511806790190826869829049881892396615792930831844412413147757268062584957577458890909837151148187253629513603059191976085342901451528342622265724516680611172656102783267007358891757685090314758504804984412394050816174715982539535993480775413902958501395965857867414385260685232456570106388733458578697664950134994736857990030850537912361807081148424368486092597032433150090628574301675462608481097708766494217645052724185128145263468272645551553855938091885775777506593085956661214378503399648425177728263901264141748777784751324318907285919823522304338664357593504387015092260276804758286697866372001263367592763813933041009495590051234751628243058123708160748826448342046250139267048082660594637085603424841535031582794046922955384679526548874235136042184402422065160107825267667714505913842734495921679939768712301145355247016132429855994211434600193604845717114144054826370521051972659073937411529878428959729479598532944441187262161845181809762486911690586660511673465004287381974322889039673741729160643496095692721211948497072717120969944747373575448757920435873803235349768549484964207664935490104846171156527675281299833174523312320016035711447720754242094615374081829925166487403511721759320906721310893460858899302195853003520624625967822629373973204684954016470256681544380426761050271157965553482740283520974928937078808042743088843994744161885394282220821089904421966917004164129208414203706356691029642391784317355005626386218816639940397869216821170986995190555168467315148732628950816503959716589119200715818821395656657753647294085337215639889825025681724161766236402774450677075033887346009695066055963203710204646261873135172916638854137163775557115851752581284994200927295330636437635303334212850712360737704438051760188449449677737436033534216065754364010595583076406379692470482119026064434192796343954485455304782245393863302965255818391015507793546548558617647245117889331289204882118723217881569523318995226516392067931211047627873496596616153981960119112474800734633551254242269680716116265817627818460680833137322707822435631739687953189753678567013727294298909310515302645284026478472107137246000813442137112954478937917720188044207455446798743569195252285037747738592343786334520953352413092793706140746299205586057408301620793867648332871153328525775938830475066629436896134326154399562038533991954826993726251807185482125514879311172319970844836052602780224798711819613087668443187089806022152224418707449218651641292288477749491464468809266391051032395098020066411414196802694580456507682671243541781519121928218075333732899589994385133391519203123714645314191728518273396327563963668829196169621090783491203276751535138531890927477046349245023558888378925522341894598610124428128625758300063396256934245847620304735627952505391404597138264991676948308825802303360271564127321057391867476825935225338005252207128967794758282930664753030675660696453215183862177112244050720405565609909136754552000335725748894266268719917455869643002797871262956317932708290138775279440688489827214221293008093822787228879619317244649333851273053116899140035066573710377997420345740849467888177825312839407404739570516905705145861711282710768113791729683669282344826137601789777316085404520409106244124616775392913631700570741132243771952278333816591441059566355118898424337612579451109761058343358427208055879885756739915012586194516339227653060931288966977121000946332006400344917975989567697250588110357961132217417540468142025234402854452750002509068031260708134940534232948908800570348492280314210108379258840001250202288070074738148967189225252418056164058350555254476333762254868872825802432037700236340009469808414265913135771757786056753209501707440580289480172851974561371972949774357371774057902790131665293783946764180196656418616426689522293802515607991869398318095442643744168957877995164153583160946545210260528616704038203220925225266009358809103121689745421032084341924733702650987414662957668662776860115626252777436615577378810986828630326660516407124911079518078713696853061691450193544145720661171850313803914303437094619608588038119635157816173356015082352340321553645790151410541554132491876679522220679717160230974081029056622980473732183085660335888548489838079991717201712146213943080504641823283883982971907336964966749899824920918295737922352721361540547574202801553923254793810943522576544243004674976797507208367388895265201535347581117086694962971959197468045804475120789994224343724287802479864081233266835304623478303338630747143524090575490947458230825161436043137775992075543483882700861507568218419348642082373380564162816560519646615553613881411922826754473095979840300758888723185892371287697042158975711933098436304166221198709241174764933781479136319011828971581782210039216918603406872527087065772839528301684609086391982455994987046719554728279111898247055931638782639242617254915687864963417778600373529927587664135074769463593772098310914598343385894575620779280216767611544407245086357818505156994876063097613336113829398444642919587010308187468348392771081993368536118414729204988705206451402528927008757348421581831539419736599141093145666159529827969729360922904215235024710140211539832464717258271398975321383737501543484108468121974391059570742736928414607803098894823282432361872238970061916772494762992863150640611010548273813041853264793523245973300545590047411035184941600960814036111702273259098559183906627455815360874805895658177942159279162722161125963392230623638288109232010571163187311116461091290892938854347359021495682062941232939709146019051124064719932380801117717133887797167738686002412248035808139420043146299906283193580810496353562953098209656677334327082502932779293935964161438750266052249153550172478544625908607088262821686160371684654812523450811330641857613225376560339466702677859366368586874133614430432409020304670447924806357342952153724265446267581603300651546310131619004366361676796033761235932755554911221415226936383643270535315469909333536149245157460874567029579944639739003195856617749233941912377245385698871666872733503385156312116698947250748867379592973900054024034725119633793502807379810220652327080780587962592626106207034374987121357464132754886882614990672166167014205222753311201926305369166288782945679667277134890841749835266684357498366393495938050944685092433467357844705519612205701328318501563387050651361860706912739857628767202354395493236521636067257032418534058202968197620230171383873474424624962508971901197891203493951757585701584675172160715024000645529660009550017433457693724112111293947401762109165772078701843673756610609217219268199267215640734382652436873847603603401650844872407487419119292536810254252439474975587158599223646568198292649364596608683973060138239831728260119686884345614571321255765789632152729682608036723557215731817090274750928850994159990499377063316742968363733550666720221676730630622660354327592884945662168536409321159342398007187807959080903712171388431278174745467597982784185310673774172844633290282590674060280355437813377151422721226304484346000002735664300047743136638878433409470351796473726641679675204520159009393097242329653256413031664476194361457096629590478773758646032371768823739261196009220613934932645943330162740945331385893462885002249046247970539129126787565926874130260444872428087190736914811042312723748344495117079680019129508986447851039951292223081599161885280769445102268140310899792943338768587007093353080059137533091645515303876890117656350359855654722008268594694039273187181308068082105070181703657194316263648396946280632678868319056122474611290990394537640432687289494442502673177481086971148248286893511289776954091774708037537243798163099042955219718366557926951776232611863525119832897814761881503856283991166284047544471172713676887987319127124626322547120593347763247930201140070575353090144577271145767375580457828232860470843896361339281050071159855078374466903754008912569296674046564965829356616042088341356627726555190705517655441237062915373478939002840124814177997552557768731353610217775803215607228699341511557244658342204789828896624892798540413391875334692247155117469938485781460786922941533417938305821445422090345891891918298045817547198001912728809267433785975119982651868681997600263872885028728098243648516079626060027012702307573602025274565527483411321757924316535842234035459612853988455394033065336014733750905586714903723482231600769775862085526545661933396007611595323949244773242660633723694388893620552090269309681929491947516293751864743260798867729232886888212912254040359334865586623710009573905489126257210729160419005138167118390804895388214951009033171113594127057650795636896705910968593781507129108954217919596521884594477395566849081415145551899805527883516894126070151588548650013835049087139179000081644319658896545616515975319929547834609084518549983648220266080616931814370339864690046761197709039272924575974255650570917556310380138627161676753117385931680137383751473919649646796981276110972218929309623835973543591625108482195980435217717662648996046890059206254283848639302391581464008865681989208754944636811779753761636231823832750020843874181133629761053591006646827453129972299933344402439186446276814201792158570917096934103541868092348242993312679081951803617360641495496934021883640486543192621357077001740180155331715925080542348093375726059347138753480911026691471096101730686105819231419195435922669952303587538100527463019832357789875085697212016584366681689296916737649731125351487557161857716524917490083941458664174068738695749396080644505321983804960372319734809153525656715577697786703654575534135642571168317854244711941583903658764331652121614181921953763085882279497747004255126906302059535411528166593434557111768443486701040600139080758993710338144384058853452968169737324792611025597423075549401311342256441280197461070699576745015465084133425396926285938580799668968352537663054852370927502723481828814117487029820052743618154864112644515978842289229471323208591281019619042661279239732245238053411143539686136766015224356494454757515796014551095646340628598370496746982004864163320127940643010502915976157063977032274324739848412099826436005276391491247595622989759021513606799214868491051218680559067737073455289525182470516758623562384417392754863231325969615945636744629308605095918492560400931483518757631676624431446272826032143534567531326765180020806049779590558076919129818852397796395666588712884192637758582590061055532339872150101441876566597734396955644237104146499410633799333564274567596621973300770397323917445314995629270359667968225349039052142977063782022066691957260382086786816095320331758478802479686597184574271030460469927330178133499569456685152932706402609534382611615485440917230977901592983834727764986464220004711584811087071621308647484549822437248470406345396998533027009874204495955383108023112445760565565946367034458341547075230402255009715566835861409771858316447512352928133325091626502797324790137193441669192438553069617785679642729165510014257314903614709340017397203552649161872711087132185820477260156633488127251135970923864388041316453374905044275625840930148546741082617376869477254935366289287214208068458190360099137671213852766696643792886329211738528910108761384432914154467034556958671178553784907299690836449609152307752298026717302895503778726114509378315205936809051344483103162476054628104929186478411346779118301669869085461076500236704426666360278418817280757214071633625351743125040302300320883410307708442609586924842865972306530662111145845536039608125266067674063402629447875900274367922679310219532140402355274107299169077658464902614379006929884225668496945688802170026071081869842233254362188775440807381313039357710837260299677054690435038250929418533544316753886331434849443028621387396362947633461132979954605218638501403047328266410132242517287841173528631564659913817746991715843768448234562499347594270497453619022356571611510296736058459286025932910697426645903396265888911427905930142781758850937097850551585346705989513131544483358787151328001586583289945306441700337354564861910436513444589343085564763346404997320100206802867867758872905182606091584437042558786605815074293104408072741316811301641184591348426990766886967937241476526722065306413498060173059080728181817422763839166866680077023024767498975587463206431441226564719245239743921363079430180010684732223064569237044362771921038534816511653223883294474531646595237798799746634398808463414224143600378547484185006101567525376183986010329569543336393528462744593643396581206495791704292633202785781318860188198880079567402389106024626135005808221673854204017625707120858641623331881526653246875142721740559447247418197999186492077145008391209084481587439391482158543429808580451133092066044587505572573612775846158152767684839310368639286955758405641399174940847372891236821910766231356153245828721562611241949362639777652582322314664608025923812428547611541454755199381795940283910808305418115969094757299612727902206503992416358705427650321179144134866406817921163379789241096924388444807737952719740373778409840822421317502894306012634311395114837225766323504313653835480083106579449071551159815705378406794684203727133414826382567350828522011298055387266627069327057112815307975849280597926826450068533577967217368275526036200193057169268404135243501041367026530505800175003165520328961849879527452093372363659817808976369220522402074431518599425919412888985067779008629524767906502024278998492259292643753288372033894536144425138280387199600885136835961607745957034023280628376257861764629024053903899874550981314148326299538632248151480699968817172399259124037739233904384422917167661877702275720868192146596419750162486204025815889092762963910859315927727489813085927567349687208607301199050207587866505992561037489040823477138231924639326552989095783048528800231755470315169743142920702994245545047228602374755489659804340206775707373573789770914073386699996699191543904837040340092754343980916292626365975824090589441809697373116360724901507078213473195858648785364070126883183337323389622275648883341207808827001078073917623995739959195872498960789785407828653641720376234976616957171568419157882711522483696224341720259462468008412478693620290877205463611316880341898933430567199137083710192507507002802596087875015889441105491848260523193851308634879767095814070762085205854514454240911413703795591960837213203789848092104645084285196497299317503826689400465196495759615288015109349566522372025451985574304811570929047257640744009366718565536753482942450769482732146713828884520563571506805214178689359072955974048200002471195807553414922335940092154045164364148568025013633331819472870514100429306410096015203683080854919714396404400178961404476805714681927074619207360024682321956551292874832247855810748636069589522178890191055554384420725188103392746626875788053142396769196001460765509136265620634826224725437989733561135585011352103364020479461544024250432957240002961988869786529902904694119374216760937542366755070532985521597838245669617170033322377175125718372992110261367837301027980011904332301072006472111066693464661196071954017467067948895341880730970859137063261333346698655050803066370149767292312348439659872444145291989452546291141060727174988215998101999852633924386689702185373651351274901164545641628308772027938402899466272478832682996998961713631879792095406989768004997272224561494676745183541296719204151484346245986394561128779648718241267578545674280987099631241368248747486946316768733864858580521640274726293650893900934311078779664754807091416662473002975416168710699403537074778952985212115933376473236074056049840796601251016737008765995426632516837720483632878206075111349673233592533135256138910836338803590306018613185062228858509462991295996004860323626957866507532433066507725964714067114981212784778165223570853998098708954858831118880230726691075175377322704442529101071349928098687927560231814980435947095931639447525381183511606628278746123505882211135456523100182168366871842753221290942688536729862179123513318695544171533126523484894876939335525611987115031067691355356857869178966684018626238792903550703552838496051468010321994044875034341223053614530695979957515550695881738940775776344071375136322635611186535122590387572132982018466535752428718335873197295659041024335538048058408883694363909312879828209293640281568159860958921431791576228434520527290402886403010984388072718104014809303766925377893974285039604393114481185733506948839891932495650289876553436604306902917113713720975378898249649238407003293799141786161143435649080231648128726445818001320090237479934007911678585935621051350390565913110549135642146323026596494900067688398731529494047262944786397697194803115102513573682863757858410388051309342479265456809124459420348469250034028325165091845098422245693862904567235213017802743306975421853915173424022444224113140357013216086770277910153545600728722141723477674652794365519033488509098714611745267086989727845870531851636202445103799013580013331613358112885868775732157195881116354780635638186026429652241780456234523390554307786169334287459401628681530182878661784759496067587935924375608221589528126469866006420951336519118599950913943899373648006094322913194575462681433986889118233686141277063161927037664577435875049963794669084542467714896938216464183942286126043741530477305816106541564484930218782388330481518760846830632585084089398725104334773640631890224850084247298686188954165239135355846533401350158730183252643765070982967826874098566642713496302860599592174111919857587016364523544297952230571186312391298682462932807689211632266835243419196665144586753187010870435193195311099471259700928611549177436458797117105611897761853562460536090739024002257389348455368933730225602698487435535623183297257813857849579368836252325630084604182203336779806697370120819378439969541870616108824719036504968219086594652826104914231436151487449484330197847350787551094844410351556662400216565710465094102618703570830852319401757400513535140188281153150078970059437876816682126150719779216059685072658441155783554679034484987452989138072533557585213368966606789648299560263236457123349869312606046507406835045231518815577957127703304941874411540285646265206575065106785305864561250424175887010914653568074103939820099166499742546311608201965395396861207860276210845365202186150267209401872331869871830130974476677547187039736070810790545146899202583915000251152636015589617700693878273867237812577556717058414135114217536940917122144478602514102172332820824874958983481148711859772066100502657310191554990441363598756965520968669843246803888324969552028937842343464407505260609694145035900929175968539783419152337495066941733533091763589170186337677904547771987454198476063761149937305742646515181696753415484134263585820295323713428910258299773018950130869810398695606570746188285728164991856430863446116163506203113009800768134687845818018930561514517771112342012959246545847481356773822846107572395992737235930080522434662944776616593942373869319869437593599828744280634403224890515007493871445460444777905169623683050612678553599265822129203389667544437951805017178334772718012974425876508973711163716038670957930903740144474654981158646807472772331895232598757964291987416487783476889519543902630405283177361720932655334174579483285286418878754467627808596055535142069201448312275657487849378437668624229367979953675495352921315172215009090006039870555455118710725574067278072581433111523196999837123522113895594220444377434554006064533704852995051101608221097837029136634054639021737876325957454957387930174473587019140768880809397166989570997751388474569360911949993638415767068965700995407742592292777844166165883308709609286865337679957024498657780766783177531283085872791201915525370422014970176510474690590736582747879273982211586171467147712227524221622731798793251365877824577909651306227253015521247478269435947437725310504908082419985242849464787981898520505735665398383476572153759906691950186617777841301899759427166978990308929536244946983178481467036985848189898944963074156255131503502893947848172669668317133387173514495332856061450087860483398023748941244598470172527150567030335828159039743132642247607078129689477786614979185821734979019945571777130864452454355085379442876602021712947564636887396397730657581526171450106181569799437601226461590499401099225227510702714167165789803063292297526675029522392831330678300269426684080436936689177335822982212361134148509194862748780240684663932917356013631772145429512163441931308543239319700999595150916635009821597347250472018042122000971600549416084879046194076905406432493468755516534829942262042213243357810160665834805405471507727169206036752119760086315171451101188900715307641277156352909622298642029721945080498203509096963621195138617440058260248256428198703100106366696083241497755186466892066763150862164747207952601335122320353039613223274161762126944063373927936012240219681187324050290815468797767707613967023851520668758840438776319822414362445239016337593304471276511257626596964981987535391188277021429422745685006476719793476417615283658427309714579750621593204197790928370730112481408395719895958713471936014761624616968406329777402177723127645014551297950553667479300011591324473385934591364138463230358818298979429641715183762167859315183849744138466676024774891069949111883953266381167758215521029633428400657182237162116606137027488162448179543185409249322046695643244925051833109203734360128823990985018866236731845772146540771602879464759732575169676271138954260650691654141938376407524296977796497339834614022766907611275023860088482997578517501184074793034736413591235371927206476450307293536139422768076915975099167476897796168630115299472667348073170350900267864994647986194596381549269858097342329171911411818714390660402584245121638094809036925725432832372740741894991971085177655643349465584664898513016812438715102940761283428310511325154562399693802287619746057871455118324683825248198925955419837854957316713128656436287554598219021695829588819004189718255932952477730072389032407005215821158278566529032314263818751612076429983894311820925443870090232676668768092410701348273829648932274439538925947143176646743788301283789419649280204988715993576860407492062711137538577705342463262780234393406101572429894152861802640468920023347315452032783802378001204121942321338685615006286672560101011157120948108545439687375174876246567771183691869552823895822128920389462807435313582686674844865620549545458640074171032891611757019320322349582588368547822975245901855683884642739207142380903137290550631149909877908820734533400034969996507454329885946652776697350830256686116814716344046806769473983357427178939328821742278707954787962700070949024633239945893973378274846334747357702591646256621680389478302499509586848285703978434867175529419470411130673270830412993834078675271762914063487177709797882218066305679989301925509261999707017724738306020072273452874422212114506724621032061826179235091848228063520584776786020864239735693871270154770720022325035179579412474879814149822604234514457412770386898819436772154553965164075876248201480566532257409855928404476677324150954355990433469745798097637734949973033896570038938524361445769529344309382882881475583137483313017393789101654240862510403409422547873203463826618217883047342805948938532520218055475907079526146273236266121166461317725262979295765742956846922240864755052679996854658138051194327272309609041748701072859865359367390040263725063850074642548901060527201447833892974200385940121281609574529592598733354181926266233935933627351667219717514389278291045707342141873445207552777980543946699402402870965791756164723850783288944872729338362571713971666198064318549757959256143185190064511530692629120662718566010031357613628856076579462757813928910658415542396966042842046578982896742316738945506527604602348140967584136983508582080049594949115049012465194635259861223179444067686632303545997464594539245363020558361821736561848681426843200677112451006872462679613491394629783841588452579278039773132691310942851315432039029950638964671069987397497786798216210740367620449688863255509793340089784940086668226904195770944056650579348952872286528427805863460923693987683124840820341497430970614700894872979245175303380984342487273114730053597897859786519624773657759483203996257902641543920197193426161045698097990571172076670240507038462385516053679747477150605141038101488786639140267826002936653180142634605144602122169419905396629286938967718778651913987347016673976610671347850747471719036780955917280651745948801357163252275424531131197150039807863391109750590755554116327102793304810353469338466845332865494751489150281093133906659004393864180664453878708418370318293892666929492933222735584647377117261241667630706084282803845788234579701116190029830427512561847017637967105519822769158352533551316948853622676221186106610549726763116518394509610297305688985554548642180709212193766498940565565998793614180961731637067627267942460261057487777293604972319370368323864850737073881740947763202179505469973852242335320829872458886519746802520607143608604841760733450846828309500372373757651422348380398581829715126228359109084618405644733670471027472023262325459181014950334772795939472613743233353564994329453072433359275003608078297193119012659907850735763221084983890211621185117351205679963065096297196093068507286551440392050694143554549549765214731428105951261165579149807069711604158683691867832619272937809280119627183396607837175347121623562959760178595882330368864050436791853119591480474605092348407958424566097915507990409640853636082531326541438965422771549106032892138675337031950832671777014753703144151344183437777059968795331588582408881123537736072130151252482294902704436973599613226714839368146541942808818744468672358974651146537317949928383975905950902055353393402211486267737237498002280592656139221134529769225219928236957029185481505686283817137330075012186983919925644039921230274026156570372833026088611646170544299248566568605946803948456938969891865036901722344648777529023243817025080382786220444159669170741981198000419486149722963243194921721204164036659888253510152287997695035783549883209008399840168340457020148063131567808072950523382838616102485774540060412980402632032177207547382566541411281897764380345835161423563634814839166168551025087262123515958793014126320738646640926737759398523725644525698667342139515666907620131515456024082786466621857122751904417670928141852251405677356297887153328528916494478767188602919081575469490448494992804064553869332771490174996739395923021426135957146705902462740765299366362581737391614228779339247085630646246764801773646947575890378317756521908217184254457146201154659539090299216914259868890393357198705759861864773963568782633315041211516820182056376606690765480344262064796931876745150379989892838227200580009887671786776750583381136811626885653579361067075510290337931665925147649988536143318337734242767033814712230257834791187619845053990476327975022438211763435262456723549753407842636115679978712469340183971901101367617457852060075378007257992335402769969656496289697665556053471918633054920207919041885105012438099278582779412523139976621826058371698577339369073676465048901085485800425250480352852676010181942602009603069899525697608725887677945899851414371639413462532174837174310826302433501078956565303069878248404107602268443999714886182942738267264177716387486956403093066885636205999158263997982598462934391253948721067936898979195942778405407319943856686672089837348683910267415530344876444329345941259974953082933956210716687366174439984901165523043268105734839860154654138291036485464264588924406685083975112619897248742137881077511734907721519337510841316133016718185768222468250865476472709003594231053364332299123565614034411183558531242889493016468902166157694428961695112254503887199815546395915714522705141009596579692082078059656915641597675775706998434618246992077634788820381442912120094621682907632858784441859837944012058248647485994473528394189584899792370884897435823828233435379615470647607584421977152322278408696325999357223212085732254710942203354401163593492672471102065304431791065170341908791478107361809544741100957849029162641999073049050975923522939344617207957120514214662399600841995685902195403230252669073430740257715193554920512531688476125042202672910667768628137995923325629628902208565253151459361775827520782772861415915763194302552165142888915519050831602320763506364319695610155388078529169716836275232775386667793129775660194340121089241702692239324628406391428405476699145707972567353588629604425572955449120089330221629342827682585098214836698860484553180544218410350817428641125305942562994677510779323236457626426858262387180513132445014730158586631139421647048592181413399328131166137188971536031278883847852702975794564999338231420826068159470180898877898331385591299432290085443848038144728455127793058051110084644630101448419684852204786607219844708480045886756599593815395432238473531729641927428293397774332022427715238454752077157638356035075186752268149883858055812267817338603529906178320702532771927688096676884148315011940253887497826118236237121401523393719647605830634415931072404822403979425887844544808886031402618645224794630121319578337704168834872541910038075040711665166516503684887793428292571551155599648507707425417285969912185311839626636750593433126086697734757255890757742427755149048245994970839020779577806383743446299283614486150877550254441747335064583927571209382461561922576122547297437243758833539062474852042556831337967326054789278440335755640217296803865557876138530139565645061271900540118382358581413467791909744741248359463018114814701501394312258194796924718439762693693030193474579513956601943552510575850868182344929617358864406218542430536244954596419432141976803614259949458977440880344101464455883745165327434890371084009344067322978130653437070887642973462684697556076101990425432111427747874700984411864576779253879124726405613086432328309536907006259438335819955070862498150621734461252280092047007830555866756054738497066529335938369469798615778476572820390412397793997667685988239833845123947473504832539521671256715578853828207981130961852840064542517412033379516179435564176684474355173969610920033278975153079946149128160515390373003229267419048251969183490907400942009314049733157059854865471630611237584522264341504428719147292910856358492017799822970284510184320259335459369542179083167555429687524587447881231993015132442247662416382215030640107521769403240678144790473838060185627197896790942166235651469980409449247331714954551446284141135303755532267124563308841673556859216590298324601207507809967912123675168875266401342382551664971510479731398106938421504876942043462389661378983370170749561787029602824790615500418199906474763273327135735782547492505209982930336568555364024677002717170762184450213465813057835126949798522678258065188988466640868384529450013175966844549126991089870586248402253988982637793594700554943302314750976913866521946316105982368901843740078975113694218774007933297260170981845367153258728578187566201063068763694588404112922875778057253039084035864774261096456599425579306811653603818953732726323889958360486649415775949124936524263907327042935142416223276661261201345798817451021269010546351467650039057552378169394245083901092794663599833086523436935726991479962890202610213013678280216340098867352726408915288721093866358346491153159313317024070257060722444141121156910340629974702604180261813153133597643333659647936198084375835943282669198460069643397416775327677455380614427343736100664952428345446743596263323457942424366263846819177510932790306690315860509265827688928307196783827348604962719529982805901947329489071234928856540626604688799550580656233269895720504211829056685555985569008209111244115706993897050280316321931848103461725183868149097244248231143678890217934050113588010475256608765330883236941952891028027539512939240352248123688676529348730010631113143715488036056075582578434502875208049796869967807272355556312067195823750756092823374612652675190156809032253221955114724967565401682599872211467598253099183188847499452013924348805393161746490090985219500518841260974264005188267967481211661600626415159565025273554021822683393531851288234090782346556722442196028598169195305848542391191939487125826916764548723788062669703913684690725656575825121058104223784329258195825324041271051026558831130810033735833947362415380620363158817744515705114304943245684358886956568003677513777221997249745204793354759918268261291713010658142219183820487255751476285695944551510193534770945427735310434355836434608463948539273690407607498408686821123837577383771655588176642045839115359606761860995459949444958295282855384787507110460321350860484566370110433461633660321937015542874803056035572748268411444951012181066664666161337062015111491400381802089302505290459130209366841431540021466614925475929016638501049484694436610871154655612097123552528701671659674054191440547776152375492012637490255575223531152532647520238058230068410205438247980644614172670669883126289842538602181039360173602550099640875810757429026360371758574546593271785766955165726483245767206844294998501435195930661490812668920991220670803274585822991795173007626817929403081878990217972657663770063229310189753040446954415304932418712510233440413053540755483968808865136433638878392012148795461446747916043152877478258100993812999872103394342743029672060841824145625891035116675741373838176974665060479451729505604265284996055988981397251883989569802392721907631885354295667040186164045956306631491568074338434475917987457480776440328718739327110367826871972648585537166829516737542155257552357857307366769079658947549222547506330417440315633163406322849108438122659379059743954401614994421283240666230269327842086123671605304100814508612879163552930864158284850329407931642360758728190442369989696298338253066913272017209896880343672855840591248385354536650165610508984069475556798800908954402305923098675497910036719146981266259901725053224669037509300765332074981218252320871884498034522044408099542403801802140606456566700748227133392856348243300326512102908217374279339222868061455475014777914078963317883069560698201757128885554864854715569071794472660076832723292209533997829415691201683259127592914220970332103356741711331039932016554174369781447788674428393593455453639214240188415156014811951944998068189610667785327386941902948828584865958249718202522964514673646406709304519924944256118849951352869841206502267449588478203497411513573579875275479455428979730376662174536317342980274858595219522067153095033609523483935791210185547291360006975798148747964082915587603252734710156670562552457085378079540858765200364809760765783942163928601998053157283196561179135340570724702663617867721887721497606839875707061222083772889758650812628218368841856148833317659061249102096490641555481392374337848678304184316598602320727181374863214506885573249243394003875253636499833413815825285477983653132238748515308856287780297009837348683187230454278422444827039454367274265203308950470588878037232360826114712477646887391147442389152673458386452507573744345653716951140520836158427789170630350513987822329881092197654821000755463599623228973407051752393588124104924748989236971606541575786007067315254068291211850725929177848127972795841051249614450742978522644067236453910771167696925551611993800746020433133162344725771316098163508836321421636340054514779939312624395393133739334440104022975794138188899303172537902150576413770305995730238235598199875871557213863735545899417074569422178487483939827270502097047920009482057928115411916110018404664516713404357580937146153485443367628009573429522312186342761619020680264749536424580113155750978008498874782089316276952913768597052524209424047765107431119161199583010235078664379836267946796155973675392103001029872912073728819093620441291731032303842609536642006428776222664350072249656605834735068652505669073677852527845317540667401699408345446593532527706533308043907853048346922176134426447442778787946787087748436117278695474621047026883689093214534046460897815596850004953727647538635422347625607612709943859785612349305277921455187907297302531892437258243790192605788518672548744303604619543059603446804991458684816710382473306401180429798473180207603259316278629115683613942271551467670852605537921283577331502957981588414401289029284177631273947583785802949297426929271997947983315339906264718644458458634032406739845429029996625645148169428076365834393944744611759718931190386906265904508529610633061697539516270058362305449462275777123122526764035376718176584778866645644627027382932968588947480090334327935198746782095275560367153752353284842182491851932369703636224155374059593668980807242081443486075657029848428933880653468716584901600427443870679463564280299123424960806740808212043267265168871844684451479831104573705978485831877207152691855990343810222505000006361117096695265789954057652544459425206365991417271223803743368774264035627396144297428616145475606186682796019334151983042188264709323435517183648681031142131705062699386253866055179067791108086757925595427447882095545481236969178874395535693646073289023560603053669796981947174124193854971920660828464059784158539486118384306838279666747897929202834438732911158360279224812166123218265104292167830185937656063268771802829611171460405631264330355016350755876576040893855306296229965170902326068850844647486702915866695445083451987339112255389398769645806643707967208368568087524572616893304351042625783143979867477101655986348061187069205603284442040905930759676311960383313801555538296320112925957912566870919872667338173909071494198230908819815395944494864186487495381079793393486870316812456666519066605048420395021165903169069596875983515985440001146510658196189222305527603057597893968752713154128853015768549913409910226358201129329951314116543245078478395456498350032585537500523580720422380253092907044108956263015576606356165285222376952649982933472020623050330543442350827755591470245246605879478423261848659255031313207519654575898391525023354676640516736478679890079128926408884298174780637003865151883191983400361418829580378409628774554670329438288776586376874073048817261679480152489716066536317180105317102478837498658997073192681026773984836905549594520461565761899779241062972735676832668328471585722888255328596838538683619801665145449393373743827988932082358758732949487984008973244812347401616875815507348568582767805756029790127185525227311044683531024346038807601308927553929335920679180700602023100575411113660084562904698517803791765908658596841829255325749173580919563165515970035788797217254994394817486571731533290759828143443156423876456685439755710295310752170376010544226236839080835928400164247081590944157008398036796720962285702964628074449363975802208041594832693482093362195211781967689411340221566918629542166255146541768937817001851427885415325136625899807583270434245338707489470343332344848103375574458747307699643737234318406945477856411978395474557125918130784458841704634464608760363469113886151551685379416295063977525547782499159178892662515201756000264307318249095856763132653013171444603881144867779607734682625870715265150918406900893126279146959984115616021251084673998444411335738030012791664081697831272816148643727009376890536641632975919263856975345850719344027624362126755947679629073808370949644990632158274526938554783804595706835282426830862877173090635629551790687415539614474028911335714454695508499576021428728576364398878846473932493731522216502685192007780660362528234919000351598692517091094284242702009713897231332294215145397120173130158761255605150200732787652535176061564943881490284593412051317193296221633483141486452074305749071520000193764726493544604420477214368864916009311894388185507566640011047608778949856541277309083092748367141665526996900845748748472775425916923548759932716536097742126010349122893604716026420914959764042762664903321138130085738633373530229933990154921946841206114139327646561942378054502032006554067360465556165337931500349357684859765038711114171619487512880416884512854354057029399386381219325481892674510121209592416529788393292501195505947134550109632820496723095941543669368105599802794215631584927047387956800280938092131978924682041057509523441564953538075166276690187574628583952987294880713096234333855455662085189941427363489007232742877155492327639625622620583116379609761512201853801363924908596368002524854262652975159708254454240949324996346109111421255874041270937954748846106040574269980893683857457093045059030851705897452335868790959912030706955494743961773473655482823826362053164077725218024144087924999717616384348860143936583564768365955225696216606207356458402900130423991141131429292689942279449995170390623744979556612760812736378233436442441994456649125858279009343690009317399053498160234573460037586971668544746797545669056386148963025144277802382696635484969154228423335963257676647549147735322562331016290160975114194635173732548622050097494721515942245466478057023812664673900227586631452019790485484558987871715400608128296258145201146577509598808331969800168528527487180732971702411396526174611913997690849584646707808255564200691976882517553197715886556275781977037426212963398022009725843407171636659866318585653400625932263515641402613862406884760352035660904428490817937539719938238536036501094027400624513245533267995897046858909440535815183017592803522063889242220316974660531431715988082112440167995157523958058757439036339127690947806965663569193963851450464112482590402496230174333234069920760943865494999530446614356242285763003786380323391844991250863019294191440060777100607883733402324487000399232680342641917529060973474419167925983462717459732496040207702670740285769578206391131500941633345757659028056540212404952921684473464049856178526789348238056685756577118224419146929445536597684781556825078872690546741498540396170801069869419633506828763021404577608021758920100981434337618384968515287646611762459968280966795610115377926673519949274570134071323659298704717018343858342530570756887863275629192053373357501478815168516784139407424582865602449364314808033974309576954192622798668569706909604824568776934849001291670273956198570446643361541371052336585597508973862009350602032780446385736935267747502042730237161828491407707063742601389737457429463126787834526761479687358461851471399124223502246212155053408519914068715804693402626339514065537806292026066259018738673595774194089383503480277795083943737225491352997123524269032904813180768898833156495992479929476269485965328714182050795891615612934808576009692865781214181530133144763088955361267545375737717873546965894657808553914979066936543173665398192040759923064069679015446621356116405063192636456608153329999155232055019910333351629987178615140103600060948390625013957913515487705942965000502761425226817024099729140162257788723568944030437615292841749915296360623893806257952878207354898557904500847610102725723024901748715000910423110645029223536640170562646488808318210540717825059220975338240043072464789710002921436903966535656123240174633178596685150129254897607586109240265107730918686338086188824515845466109228640359601623355706554742572111390284527220871130056991553201630025473099490336124761941805718186910052359147395648359641995173996416432349387773312844856860462817179617766304736568553197442949969508682249467958539433640676509532018484535996721479283121835438787623750518427639645625984940994195319923741775169324336622104010871597890886663258158131482705262857668660345190804510197339063665506041895301651223942500511172124103630522169031210451839803068346231331749391567225951915569425247027733316890111745638544505179463275793705440866239538394447019791037781062568588552707167692714721531113855659712660485233595416831084435485834346306494316964955470310636414747997262297531165123001221491017784687942208678376271512919613229644463372978685297735094888420419876737018151121039055524700645821568280629148715971299601579001514017753376510434524912989916464774799900265749620335488254273773851959818822909641846467975526899489941378981752784529654893702973362734950926492035177791802139090096152284550713915104882353533263346502498896624983127197609926756778353480168742353923273748994788408104795151034088608798911048030499000086753294306588507151043671829793294717621764775458683267486801793202628155772348100047979107642137509260198392429172436983338325842626325666401241573804977381349342929244938843399776172799443449596752790324501790934188299647201026953077198847097188583684851448913766977692417249559329649703567405047691057672045637634754291586454853013469518165952367104400843894429487962278779891897727206013630377548208216952316418611736936361884316646396829578132064352667530055673367329721449925890787394427975624251794702391740773826492169602202483546513926861746315709176222503900099094702300420036928202205120634007934081526815243092453421824504208015233947614186782234605549234247886331887004224482758722070684993245364143718089337469844271683681286493542409549903520247757677993110590919996529412141136948555699902678909112573218074900733775084611395765806400092386435984846437007996765704421975255153322851210022257770580611845073545504117045904607878623479581603650616834031465859405858084404995671367935718713376462038238242915699124965775152585837426182008782438906602214377523600913673153965962218339446739567467562167161914438331238135361335070560468097397260497383178328125861872721737724120343226216597815015352454179788212742941197238203281128175079836534683211390660048633747892527581807270309245355788823934192239582684860074875449142087247072310393332515264194969309975132098926571255076519035038792363159904352958747618774029119191097827211133769128081692340531610800990858284134448916726534368222805911110993414213574726646572839483252134460338250708392732181555461293246475276540301339000222790265151490288598812345394753400641767515990517774078422154494159795397660140717632931949777200455465916872942482638643814819866637240470642319832135740709948633492057461658762025505959278935022811986654752468915451176321733656896215090616251440962460166098791670555913054941765935471458149048388205192825380687270673872809592447061997365892812187044542304513250282004997138432427733631450123556460048313154715753501252262761262624299688843536058604362731548359996983540702963526374351343791197068881773113104665282394291159490474454152907310013825846496069903598000623474200529195584533487335732778453858262038590223693020785493326598362399379133887812473708004278810374665222046690192885320321399634235521617605339211264286413483358887749345565740633476932242261147945242168636259373071143470183598742174973927837870975775519057470889691714800791070784912169566718205356883867383694782349308021488232159987638521016604549056754155409711869723435284030124937789270253403154240191306359698338146543863212951312865936766995949373149087088842260259446250967780578004678403038704581114043322351873309362279092043226868483568814219851389938876803014482787435025125740024580424426347267498934336019211786357320623019533486005710258843416498447003870179081343316099478726103619062542442554008331821871423082200560028123769970479255523190648252043033102772317572083365967406497823287112269694885634886356177360807314422768202454186591186365709494074042444509235646439859516953135137436180322573750250759856598300698529702250796526137153315045491227448699205868045815661410943558893481156209226063323397596684212105206769236099603861287880741378329337723509901165909107961966660541275256686310899970916336809667717819376987249747000598862535631604558590442041882242346031836823926302748990435736704059337606106458799994634108803113828237748235313340932843091702223919710191088839311423416778714987271436847909623915774525007239713352857068576094572120328383054740465029596951285467885286388638757571791758639796368863849163314988057263526443170693718423805303456972757559325289115980258904299311242799157917024188659302225090214832197867084392330512635503710545486607114435905250051968725760233255626960968887060433734542877996259569111129159913012141403862384393970028061390526891721439630983366281391558521384115722449372060121621562778687406070910848907423173243050313402146533048642888728939884482816796758580907040680237033519509912212817579526789356528556674442410261179554294721310409553330565386248227832700339238828565267772938224595312010837219339237179686978355682799902306422347400917076990060915709467310928416762880324223736952979077713465140789521204253588737401812781599133135063046143068750150062443415255643796045530799700880027886768511638997970269986462374129496475577755313290656209039021803591675942435773195102406481396529006200517997385066772474273307557706738917875452579425838742028605830144897059017856168563716898215819122012684291655978848207034600512199127186277515842709323227483019620601055106897120707142506173439827811837004943811327500520692437985640721723005916397386091395745342880501279655921046829538372676281719928786886513189279437500968317768959722410533833699068561566284774733194645443761843700688412873785173166854667059075457062545678122623006334425303450556546881955914205628908048742359314418504720981737463693583863004826423021813083001830797551565082641501195036334146880825164410946415378098728740278235966304120144212881519945755705227721745034136361777583249289179258836897578224563971479550388429246211584219141008347649622946344913110059153478828299410474059115867171022734011181592028322782076948944824966870377501290944758746922113657317687488099943866415789355597565381063521622670684508932504217569632674110183655478388153534574091247962564291319180213421932504261804429518663710021186468424018280326224225454594906672072123223247331855991339002661702556540050940972010779740224533743518580789639480204802489720734399871463737573146390945263389902988572157383167193505901460757706807598306480346160229656665469016736398995266483449236016084717593713555669721110891383099647349345033832053991963619078179311108334282992132615008309076155461510243344472112272701158723517180176202047072642200580438326406956261459591566673439062262543049736658744832150099719375873473460663079395537188137298649604791399213586451611819687967163716690365132591957381642956795687316424848039585150886808613988688535528224677973465355631609010513154141501421572487942844560262582993338246419854195685150988234783856057078526479986984997367897475031854403019754652240230781595202750157341720364444379702881858745552235453297880031929125955535899237853697279915977846488143087993725621628914899662486515594141470679203480040249085914876238238198847690643000124390282012723910550590087830072932490051526763311058239945784785964845444007530265282493557461094263705374637071526989233261221211935897755215441421108210216805016138843989074575078287110858720791334523058076196246663739547020061081616372460827251275731461693740422972878833970657916093905993455728026775694212660073539301577427293443954688028576144853603961762386800396798974070861878138656840920968747590090855350205425363126783261095095604427857274109943679310998720886872563728706324956583733539476303073763777100368284999157527976275264335196052999690481243826759868598051778091106733229599544203007720109335989508860112421109417653469433543087531982794994767712231751760981698921657108640465997471729369003658023782156733014205969846023597534537788519585247800591124392006951367979183367444472089219675681307238306706381451959053971013758995944635081379180298906393414524214384111364461791549111994672105286087743975735076707963144138481404778811900952306842702843002157249011913036749590526511151623466875006871579790614242608764214312745058567648056805960599668801175164228213240392852219744962150873182328354719126856940612799836396559846209170729013113474273324759504871062092987433695208079975384014974672595209086343185599022135280984561858588515396962135245209925158799035281057437257986556417422703799641690854297584237138946535644692684322920252428956776874851643015666218081794328458849072176636007745303953517847874796609806374107620653131221311476393072928129439425873330748113411288267619465968321538985149344585863172753145127299516202990053386606861165561971738580512567631816430293293883659190953647608798311551646579290608270918814149928789065136992620541357609059513804388932965498412934377031392389265657255330927442378447798059826787845186972067781992674023125764677743988947926133310075295158312306539944103612086666954178246038363312903527572170504885104222528252137029555691762146178080573888236198694085091474278325603199566785142914139903779145551745716460848806905130044513534003286958230848077972643547597569987846467940382081074821090195762142997179286007354195415788017400163225285578193145012399121290337436609841673369826841568862351263052889052093892797594956126448648547404709967006857454755246929151481056382715578644430533651463663664344217839612085152668979590405476723599344219854009854016599232891659795270685306167809203996150825538767502086435837581410238383779676743973928721431645688152585578954431218722000319239612189508219485073622595963703739183491327738995052188573714212900717332093142795873893664414310547912553704994510743001553017291352386359520797942840787241459716588467267687700643212796170318736497708495879155056402064978686877467316401003773014190587996386730483083008621119171328044397945562116070652674987235011713359005254744164134458993205704626360590852625269090435136081710855601893885005121097128702813083757040946236485081925260056788903087643527680187333599208855315309246415537931776179176246632247101089517473570723709157971632599785942748296288611736996592011167463198119750336046805487187778296795218329312620432127678535906846205288392093773276881214412308962715961405637746032251113657224935229135339622741267211602466545674596058055812173216703138258864982102281598162510215912893135764401347911454412763809048738759614769269924764478070756868235848242851837345421076744076916066552953689701907056102784645990095604834384429515148356620916731059779119946010517527838506184120571017860785552149702148026542152020223285494344593026154897076055605084788566817410612024131146914986186137603064825397639430181658645682387078730901558897113411612637118927514623316944258873340718192722887293629532609629780941504595273352176898931700769126944629368234871705571213639624394512104795374015541468164203258729783077297417031810919987103337617401029547453511861404843959602020906330070090540716384378372596739969209981005467006911894279123782244603152218763347968598652504457511861776077404821306040704633104477718517325541941416850250735623785091598034793507709791140866518306607195609855903554620063849129939847993804147874156647561357429219759978398386808974133216674224956727965714803282628729559204392917790331897182952306357897322358639995338675128843493593257489959950309078495398563005061833127595203379067743420880610280950626465313128918059918822931104812835101182745103955070224953830736853846232813566869604791296945165760958091335612990041490327377745301355825488579132026868707345793838500490534801677179459794097182645934045624550744790144890459361364228830020246004887017263775612965203402664853023256883985855164190526462933488949463240157306682469503015189628553352796294339337025739737241151522442204552119036899936381388480753579178652605175066844916207114125256636859431954415042069037139147062162669392827704645248515273713572005584031572358136526211983759518771363540628865439602096224383044584739028422735463843801744565804294842979301782119735062253799716651067596498331428035060732340125528980368969734960940054270985148490790617272872054492195884901004162958659668924273128443217867051596275155954990406211388151365663606920572182607741997084577538557522828059995818030854430638758152030776224164787050435955039772085614536346784301089445982268057952577287257513688378427570617584732835847176797923007492686362997583645851748430737296094790442483459261675400789567495155822929503510059288422772103509116427349016925651917609973343779608647182153690204007811982882241034849395243600267385661038546126690301448301877885564909317362404930405732459147839615497457221518112330737103042989384541004776484977797842311111682478801025494242557140260312695263876897562833645040468533701829216134737786094389159677438377991013319776730654138146093649677413539475150943445271995379980559538010548712529903285597367918233742394444815204506615185881131120598472379349102496866161457938459893735022377328875202235538709907056972032117776770135647092390329136071449814096469883410623066426221139891841968376745338943692273544607052329900681154993431679770500929584258883936273402171693998163233176574500103018744281328507910783430170516804244049011478599893389101011967520697012688475163372097351902198099243846757621760827401494648434222443556085802256755465292740006253378745239532944966175347208523204223671421280404197481886172363094636668019191326538851359848115670047095055293180889679968234428343863517375787162232945459941412338196480358515190895728320194625263318085865326611482149178215712265136601405881291254326595117107878711971593377137911062512894819370127226148224253365569999681371683942907005141466000902206321090050678413857283879539725030041654575868703309924977032340605155147931767611729762996221645730788651752161814170319468307393116603158699237603934562878266458423357652612806720491374961346839350810126020644072330313224157803014589721967019881698592692249676375075321763752272406418720322288175897384557530050300502187298989801402894001155086620784309387777079396059436234558846210360795505114962469594891273823204015042336402106042301575314105621387625263294950289079614051676737107338258820708794508046516071016088116741722818423354038436048290586990842102768355424851228317357672753982710692437541422727076486547908475491560370343079019740387808809030213971563240083863762891306279261212593038711252409109127023963100634300411738523968900309071501178577080861186660023296985997810730693608327233679039723192339336221532930870467943516571973057765902596916550218460559329532127646025496518614144438233259031925501734663843607091524601608369408477611855960847605488314862349559452222488179950245957096754375691310955998515188833978623175818752407691346166270766859654878278785915293390839737528229132216864243840935573956588139392677860074862967843672958328344152172304597980319267668945419224418726843002272045728686109151275613277503821276476071529687520636320067832468913802725084275647107706965436285652876512004353455326650975240469807163109870610890972544785336947123221353844281761225527161413919002003048257590149666677829899765254817200176132559802648142428179514767548844728252030671198052088308542477920999011311729349996827085624822909965518898664596796396451100365301208607497062968167724080303503586900469040985038748300247141880273199201704836400767650482847368111166098590891801433037742742466593951464157431941583980922792884554077765708132006306717198365024277145014265253404860441997969476740925143652151114301978030474414301290871775906818691685776943813016176344932629792807809051854507751693146959707446644978433727623590353093874203987690400598506654078066128647890929359518974640635801453924941405603785707059551574016307669389750153033481025708008902555666811417030727886574802741840222423717027114078208456873074139818081290772852699680517714592717703713295268514297967340611432320866571477467012462225454351941259563650542997940431909878027235230017804375136794295678333832109698115732847604977694511436392967601778942461231634181531071485114891672111297046401236627956354115243747576122850449306693159005778895964354833234760148202864746791290878466802541453309966414112573826400277861196822653800247093334525369521577041802924709144466872928535249851619995700837053263307017176150898264785711451862556745799163390754276172167682397479459724526891428655392211139425612574074050442158828932971805417890834992391495165397945182178828679680428805547646796456611572937253690128805182731109080937334933486414147719247137134998333404485946825248001841946931966100470322483586597955111145894023605312017241635947270882061956608688271855646041826077481918572441150120154490839922835484915223629420851091362706546363115673111575496467618280772949449439953185307509814887276724859212151260726299871477353780289913921387351947079565440648003085473997006846132296369121361946772436296650060293348958228063011067090493798978727947852995509369073165042837225116460846148525453065872927952022582591529575738390470390651571420615222566940596456853121523532767027272716302050096097972579139594689536504999211341109401288066803251606621878075501988491494997221581623261865454854455881766060793186647892270768690818309198347867989311241278472072229348751462351801477889207592166873830892593664436697475411628873532856347834001691228008767450018419107525865904705821523338666716147480104259186015868172941806105930126966462530970900587649795096158432790664080285398285094679390156585754644448036552411637384889976723426334160872651106376680472972309493871711794911011583282326024647327964790496707408101267384416333612074556762654759599266638641512216681065701714407312884446005818761483254501155782576695842328006158161708998494106657203737916781614312916342287683782253087494818869337011869997193859632515712844573668632187746379438534118707928805980091037580571472464701211704687068689290133005865093980501227884754765763936470766960471808853082021160284066795871360301087925833748513670217074279033353013647587373984280576864566420704197869591063154552605301738722192476254662101595138871384038312642645997107319386121481080794170128608437420700618073890462432374319432672699850305041861825160815025738154015796644815895077545930640591287127586153762829450236573996582470114962584182486803930372651852118865537853089900723273472719250738054122292191897820919772122925742612157887475571589369423264227424021550659684843976341245968684242188952585798488819618627751134300492774121493648118624689763219070162120673022863843433247828616361870075065570580766839281866769419103379196077606448301794028547421653160940006075868689559604583841965697983195636219177104220170480495056005114498512078689764661231852073737131362943025488622175772793479225928202526504375216327270614135210937886697886981986212820099995871707281149152890523285395803162988797925035313982726211847110857367142278246048108903829889638496450245336364714938779433267025543983340111862130859627287980227166066520509220225631888464074443931795427712115205809015389529373874377814223106089912131387644921648508202696404018822205655477081257287029317308231478127866864505991520789596173511150232525546570221240943837271496057174310027703386566707979205607296665407584706380828119780724549495543749881834364572676972117279967777904519663991522289877507162249881277296069081350986078341822404279320532582605296675897534483899338464853659985822358131465535738823550388303653986098975613073132113118430912048300496000185961291400015730145084881574623557731161666667795958249643129289647529880648884404160203628354697330797230798008990247271136937285867077644670418149278848893629430690366473794453042041081179378932661042668734135421608684424934577721246862872504663050695822386495670208077069858930773973728386915824809956046664513772257843214568036223639559305818867537647665669122216208442510457580868046008514793610738067412357536442126757940815994217571487560937879004622024212115840642369162762055559095083824630934552303790506305158568078586600860262972944181841757620299935685385897058927423681527182572910832393054284036147195415860535132759797011501274531801113121740356922186323379942803529959519532762909637849925047890098184354654767593881945016921787269138615133067591849354128621027830516974176191296425044465768390294226044079001043440284896404008860067427488231787590609565160296702650594138505665846324110663201611178406400318344710835957767248291211850038334471613418401239288207211313450424803020963641759520661525213422454833759353372680019830255608944318482863672635011490427958884479205179704104381574124350901520041091069663626653208700510288163614467758432487666377648480544847390369129226472003668369281022298579507062620148066187690351933986817802699672528151937598741989850770445170087398372879635001264745907254005792384148404172433296198738395571074912081859340094105627850707445680584962991734848410465711414170188643593990075186669351956045359211863335505339265760346750196557464150087136469577044908217760969389506915100537486869451042156543698380578053007925696088348633305275731570691953893458096904066554209619285064077321301723163980066028506807326910239568869548510659838387928416424436118755092202863974531631403927498178825475852284772542994476710533377069300606011582306768584090087415115043986821574370285034322059541582961488520899338773322564605182291536174230356383872997210991468033158349977936175269180649868379980805227273107737781143615237655530503626079055740075691647952487342765239356409265143267169292281822997083541319949195704845487657300531966790048960552113903138758027096171916170022408215817496687747890804465856804111889968613506449286299728898857670463095926027884765096135015412276938511883776063723561539540659527773382349446488108962287626732616987031166610935745993755599757688035905160249091423772637787466975485814689804444258769092519304766455119371103468429282459030782142160204458018238099649968937788963261480288622386584732942151321372144581368276852950096322514538955454619705520707352912840199152481903171962002272970266992411979119224295838744045924246019689939303014887827016351350337307301148394062394635508222655981275706768067080265222089357834585432253464077348800451627356852872740222180904092695155280733488168238714358878682709754747607609602004965471778430700789564047146224937204203350047791009857885720605839842372278162232848692067482828721840648820625129878753936485596752002264536650352939024641972657792629106374120603953919762748929629565966781393944133464832126135613334666391356768012761934996482759433307583541440143272582337450419117388588309990644575475164767617785872949193509407834493127606069864672119430890404686658666913704083517232815485880583136872547537217620000277846812212811050860792310194541441451551095724294785164898797753388524992013487620828811526245232799326749647715183856655075911841815088636846297530345516712785054497305281363787151292828068387695695045818731330463079322988379253269583072981728000888457304396649063672511820158102374942040182778277777024527771704381848091699486320919183076486148589626520021173664302910780659903796871537422269551323237733196255201272418890078687270147543269628827296405760408702737585267255594763030383569344368209568755047796366072968352634985674378713678210324094962486784510420491678441052141063148469672816720638807465071937943915993877279673035776274258388039721147612726735725270209497412302489722104142259683369766942186722179437988305545952574516908031444101014200049697832887559315649085007450563667429973839145227333778168353522898665299116640816715014270395636566538420787565247362595171350034802273100250255063348992514036015841045590395393782889975974324000638614538267244677417241310502594468500867849439337724300147074309546145823895892292690991407864376081829011484672770474617542885817136056740632850824840066332793354559231876721297023595022271021189920780733632653665340840941359419350687808302324984295232326129355820218955502700906843025318866474150707314655138257098465438032660608089915018125001854426872199134842176244243461996206140852827199290596615159415060234506369847340866692337868048338618484953253727390792147049417954390330159626415504309168713480998785441083578682515690731879764101067210972252494687553471680766809857220949666685448956457437073629621328660891042693409937490875174751627235639699672983284719225801847752941232937725943435325646643614959855651345660601677396342089257651123782547051430333037413980792516231252492201830037237962774269386692975209582136285384786658366812498040664133339974789711310696110537345722312327569338298319970547529568589702600330262911978046101892439506360044893585998698163596444273284815705816472774527339978163322628499890048681894609412661435561634225292904724908237989714195348277890786666162148639880075512717213468241893687424958908857540692044969738879857686928493631130296272959167611107887362489883739451010666990418676444884401560760887930922890776245937717034570536801251464129584797751509379817434021119144732289309663343434981384494271543044402659043503133526388113988623026626846634828791663768975385628151980477614069970137141781042486864524713987455655228835955453880454355847384409825099353017625783207044055547775544365550269443866556553672288879869931397313902691561323916100900903305339629940997108980230964478731164717509089287304630680768560507599537954637929512763797858853193820899774542609319628066920100561874081621396561039936128658376971506161622368162334213966480812200952451566251971010486686434513531140259082732012433352340891110684515685874809260427424670777814879384343447856246749155397863549664069500979524454385814590426299299154728317860502714389793221532165367839222897465642038824197711646902724931116002656195008255650108798856821716762124355432220391194801841742049350952960500181037913981907300709232302079069148955084618511924333663100339266421906212827301089990801014932185294816009197144148342796005376613230696640644401391363486229440706151778915359924111537267680996177668907114123239336084704185774533632985318413582796097672109965315660121266138918111822798702847663082519785036145706576874697499204976176593854187967541924273777275547807139936633282697030740291488340526400342829889681069711418580312727858717479974281956513833334960897115064816578229969952256656973032049420575293291570959113828061180410395422327092672528604472320137002681947873732384373179833288420584533655594085832475426136011578983597121264567148072960741677420177147827352987905447507069491851685992101035496571280807294585693441040724642174709661326555739737475872817165240688841645577161549361276221728993532749993919629218614725236134384441023495123994947137406543222555353996389523482014521243386581207865198314936150139999225282689328160863162755853938933708919584401749111759004268034380895836747298302483189722108095990729650150322570141051158780091909740593975754711159197995015587474962905690011050983884477521999316133264363528283205136483164596686662878712054209777135961681873999120594949681049024928848713639695609336995777822473777268226287654598506733998999759149408621855733331785913797823460458863378746690001134537697090787646239317681899933044098869146398213012461137916154471805457249094528313063168216152118796032136963117599300377578367870484240150146243123305941404048917553975461420886843191631951646800908742988563022478271428683959469293743885860174698324024723347048289001061342465547004339159219420898491969402641432713517748163849812216407281670402796505173696978848328277396712620393002386886109073380106753759182168076452856812808546135301295298954310891294399403047082301394884436595681815461521969944406156330050887008696832403328969513834161921363958756685068276611477468061897425088046037065777017683668362391603419552116652598554462542866873920421313705579950581781373662619329780105459364028742297181047788691055674852884158921714669304343792871905852102180415014177043833183816272550101288472511789490057868693181920383834415991216608290536197728630515591467822709343287301214717075102719029414535801388979206830473499349689373540350788194867481499711083391758602891337826343057090162408324850434783057989592204372229414230791583314070691847498364971905437928229025108010541141338361272130083677855733648806234003718868261099741368556369091514202221227645901639594575175896557603895682215267571030866139236443104490537120345822298104890273988534103248992161428432122402185634645209510377369724092735654246513476186426359816338953369068090838858597820656237674162240594935025942774155263836638876910632690712487365649204864742262367170451634090844842948759354635340326354083040952494574589880233460491204439322809784510048695094710930838343053561896978826466218750720862347627667096453661546079208245626482644402692398134717019051417243406941283719145538168202946350961478778778495606624084292757530616707094332856093475264745455052522607473631232237807488462335017439737352788664389869855333914711475127350007870909542517072022641824755539616827363149653662038316714264366406474375159937878652662411174332802212277174368618473225970843348538943603544341054006772777138269154941042597465882737021812760367975808142686422041143803789919889447462412319851865806028581761592623975849167834118235029216205845207573577706363775578149873662273810239797724384285256051118636837755814450710883955695335074463598706364581971728758881593639824510533100447411112720578988368287852648134761700474295295907138452994371248642419438226383769049240793791125671698168026265190305677572234277223285227137185755087570113551109021430432110422172710476999009459566740434997058019670012499062668663852563476580338149192176655232138578421117777457714910684941766264799930929604320110732289668659862465747792115005322303104545300637201748848563558977448520279213114680917986803930233797474055970465287111298866502436684841189670030010641446904704168324409040730526859587916299583167212553711270654288574570964278113977575535650900741984580594438959917839172754873037410668318808230909386089394796397823928544862841596556201323133132997248552323227159719876540650604494336070782713068494882595756164732343250871914099388867245342852241040060740129425856353996433326185892694383384335932072315200447881877513676773697001053452963446122631995543446584098510370291909505919950926084664017138359817736079062167281084257838227701732784983407978562377079597976200473341242713215170126542582002669680663898272294090914794325473950828619653952009929103639381513661495689391693776488001132862325671453884351700920302175993844218514939608661866196090323018953785935767653531982164869070096222038331748989976030099279789776298863555859148461836917099663515471929665681905072279546382199087059678594068624324958036679103374306490703485645680222117379826468682815160984897681526390734517516870358615973624087735389210206864144235366791215107160790506986333226986311873727540524658647714907108542140639340054051602563116151324092699516525499083249525923282741926869095206007931888160161107786462062591839249459526599376972474101498161013315122378438911572776112107109322778447634497950874633203676343243663097561440271032905250081333386502160052503213240477715410701587021513229066648069684911371226658591069505195807033793422590043909931502879904551789029428825043460626748614886263461826623558899000331042082517848730707842109173616195483874087181505905503238569713804160976025592376289891472861526382882835090853549903446710364460981720450777406378448898331522386190471277238080275754991189127064887314672998459963639089907616699748345966816795176163933944804821075229135718424502675123053240456068608257679307081907548333374470223350390855003272445468019562722985797837526033249514650774540215102712017329861893635889594915734703262942526522344677809292778348939446948717317307249284883821841141831685536935617567742067763000991550780094985786602703534088270751422827739167766052333062373129869294108042249718187833987702438022142804412846217434485757834070145277681120665705286277950972898358420063069900162367012304565555641943138779707952116957577047589104076368461012903421038234867815473565891552381420760119782615651003540628398001605628138394423368930294556544969689242846277479005639201501122015542972136300982204719969177685187422353733324868023874242253728689484720970297602192203387656969442819307015636231899553740277145540901442758921139838040684262590277076202807605988077436909868848878846263247807942820898152878429447560942133114628767002314692677498884366899371360188448883238606113010298807691040562297122746281284825721336297395485512452697650148804150429070996948431534400857807330132355444077633033343766040668531493114162406707390378184047595809529988430176288735498549456951171561086549238198914598407043159926731646804704114552856546651801089067071410454217663806011717251321974780275699370964667333284922784974851258936651335483941214722951393662972762667519995757852442360790146951818924015576163181668856935595764700332272553127003958538167765978261335606922849857403566566014925668309772797969771673749318699669523314504179937288193750794904732212176356282277360854552186402241111726285126686450609449737577163103880383402530991324228045922606419554168821680923740357459708544981806359894587728598273926259647621442438740053012381627823207548300922253852342653202600183471007420183028045455321373197981310959941419512825716854587409299861491941476349969203589003230834173114170526735164494867187667990203484582648137655342999986482114998431248732446693150966892824531035716096207223075380809983840624936209842115815991536735424017608486233360841553290621267000034493098431498906095601484352784432712100620134184729112236279076191149120636711489483267964389626208604847264900964800735793301485310057051769541659052581454272911053671639399738030944663456780455374116003369038629885476867824266131720094135835782027421581395948956700315411971949863887032703502249881676706077659698789504871004339645010221655284106938814626581723376900520123125502480690551916117974737775865672439181121158643268392077394292324117777280022883707680231550704808986432343898676028138646008660863746399140873090184068967818332045087878891383844827569545787788462555625525389461737820117981308315450105140295525791879723098949138849238897279952000934383506943223760943138408038588918353627469842916271167955139404970805051641630289562206954261639613270150140302612909595800908869938168584586765264550762305113595364515641330601577104683313477948567139024618604105224010170365234038149809353455994453764281058006109110355735020925864452282435707050143584478353277726247005438366961561852389918445438318072867318569105487371017922221849467618518280132062967183684821957589460248341035976983958205135452810559552352427614927421421132389911745371159387387332944705748327656336992490259481489997876871282698030188547011462255640929606161773298301311138923942452072988873885101862501691034052765666282805236051626902771793655656483309637294996801621422783902192331480431710615782561420971290731358040305425009066605584922755131328509092147314353573830095404982818310818625096291775438000760041492737299018389936044279099159309442793931206360449769852743037975523008444331065621976355448332822721001731252226989076668328092440506254787895612373808769484096368983540169611784079107836228041729868354594283796173356094691962620580352499694198245572960572121350866460756118458044628496503019968113080526707437348377777318767476173996477642684595325355420931041732565396891017251110108905074982830831821848750304729719716487858997772676278876735199804978955081942542351453560533756785511933171846640407975426181006400231944881739058800141069610876714387949250083827302122921844016710222882586312576813428270298465879196025070988050141394750965661056514059978101738451149921671756256975179336061042478977695592604783088700977115566799239827968192053486767370554439914544953517378773841424951578337124668305904650483104805716012017880233850206072292280578729195414838764308105581814515438920321429984182438579998508398739776656746437061296862980811440985442812052596334953617768755694301936962601698102776878277746548541458971245410397377456204954215423747256000179005576973280620864261778519786345002950714305795946078308434268537554792417110096629565300578084642788611082534202552034192674607735946052056218758580059886104571703460301865535575474324600357810495194522642483498119577497964797615114379037512087929094072554130769827379405569860589626746795440717127475203550686489519675077140009776091335534416363486261705793605617622482625106675264948517932491299758665932385218750520369191520344434962547982236689139332299563341868942969797448694972572026931444233991139740767435039031656270781992185314986231977813587194997325220059147581521084951649207672532240857588595481672846005357432128885450695721243142127601854864253879880760288108197269964635862296932397636562705054560635493318856792268161389716077828539964151510093514473970081506795389867291349502688041213541306080646840776264286332244477500618010322430288311944420513881739396954921581160382578749751635543136896852196562140785181186092049407809197624035626088461454095021525355274222749801969691802589213767716092840076305110677722495236220443888323765902628532978110948556838891741944453953101947850252607856840693810200070381460604482654707469591778634633327784912838621520029439709291002455579898137614847917826351153487209916416778362997360586767700510835544631126314285630783906039823014702126216432362290019219285201035705506554684634609474072134400299614471435303305205859686996482213669775356033125314644447894434955612520669298009632869630937927863469371206117499871337925182403601114260783837112202402765180384253962374502519748222352126902292913606514352513811360347079237856006978168493842973829923868371729644649976412409968422390122369267590111498894800182372200828428693537634930049099504680245658617094062561082947617422042678836409398819908515775461324602397467019959140800674939065779005097997803591354609713111800853991527152760172510362686979780281234273555771847234978035678273745935436579474349333072183124437298576859709992803892384325545772229563043741549003491434346825613290022766377685540275246117812299743547286427924097539527310975645454055971792849108190764879022174307362670971187642138226573651367643933222451657582541479882007957398748381236771750884877791469984267129340515312283695486449046123606723148417495654191424694021074945748108034922426042481652585373230335052305060557214118326561400415063338282241587289929228997963563174299691825650643944028333591681166958736097533083426664046674430322219847285387523096457811729134317594554314952388058571647245544822064761813179491309975583409958424793797819299559161742010240419336130332810294866590404633047169226906508666498675353036793274750647518709763100252373978956982104602581204476967342731881107116080495204351068189541337925488523452772765837679229824343384876673804103849131057883657426109755675173639982411753372954793391957474098692495564665761641788864758580983510304986418508257044390139562684722857816498633972338046620985396948266552358480378744972742517161693120655679705963972975461423518156858551129931555891348885812360208057873506449910619560127472976003769445180048843240618257274077631394605272754578071044823862283752825624795153246651990871281663347562871484306236235415625879765637015917887135960817063167314726141065500908171501611259778944425069876207573759953735693842422889261067687418191456155967857309697256742742786554393219409485227403529564818971761858865790983966096538235373511034196873890357828483902514476895462663158261350904144833842235033952113413590443871466034044374365679272248227629729324109087951032396271322785008866409188091545962909021611121949016293476670674084785348866062008045747895952698543533291932963755038700925500345710811027549294499497761527768085252660946698170956995727795936463556904235712977966432225438726562176468603560513365726149489619770457056811410432137460382168174753286644685059382798194699700518880551921584758597940937706504693978683222310593418702615738199002018269568454587975602468870729430018991873791468612070662406371280591258379691069380340827326514263157340014168707792441388970537934945164890838799154074406646282671274135689377094553968297528703721596460171165947206906053157176396885280487414453624114153252172769820679683063985492645789860759201072084166786252219547175042304801064625490679211502623168220458883742471149045018016773275663627308937749971850221738491847393150909690217542975828010409860277337106571183807249024783418958581611109498460859749420187080012774109259202011111021083229815976011458221351949864200864690698428072939260607536625352046625448070277134072826591829912056553405218164157365812866441056644792063318758377421269185689087019806194383828930693085064372304906959970046583862891718306750455650610266736840096761881094204456295237927381696969465014591716775099185225931403779917012772559924979101712229344424415946743741649143919694255637872789486567873669385099696826244244887820817814168015077962018755038963835298152076644923067913551432152937027934414130789081326365906145699959680692833990901818841184206464724294721706940290589804303168647395823772195169665498164449160407926327611917598266159026593227776003714477789850319015579430054457914861395130175885527478832677322435483367772989242245649403354309130639481771439198651250015476438751124285750236427445633752974258208556698882771177461251716840524403379917873335031038124612156392392679293264063219595077854835897044160953183756478302001032239527802153943643506387010490972782316805940280692267475337198239842814750556562887280463695880254955266716132031427383543300936607330875305256429249711648453965314510762154414005432591973096943392524612518843538052877201092477082935796381828921890963861697540810197990814397713796561059064063089762541883696420251479750709526445041588025039665834402607700588954590481267323149766254872012131867789098072132991496346293419529443628592060922850271751664193581714447526407090976855530632244638572071104621248337641136956599023412364990149567919965182142554773026281329550877851868043736897739080362171589008477523470844456963620779613729384449577669597615300457281826271528722387060911587699468246848831235904345112459145435412294424255895408357992348505338075053592953375385781317878737797822529221035317533464599033070150346110422566737330829669832432389592006204712354467408386838270887295203854727354419181839711335047246448527375062715071413775832177323840327897374671588441673949190061945843675635329851574127866684983211607479934002092528577340259562111758410827648680309831014882312213790562869445035234253890709002422323892551638607140287609045868129716111866261787182624382522598091569191692310655855365338350269156823793964321911772739069471922782518170294007610000206703255611023142159122008633867287039751199421843863062514473781348587410221732543770257684837791911315357358748648668017392703712205279625574233677267325993118816458110552847168698591602457139022213569018303635547510596609554109061064189298761752512773805312193848992115999962708548058741679099749798594559516071327448870450699142390123525041609179350884778957061422440579107263289803897785706589533630858689850386356845437189559346597530073501648294216192412489607840036627532394707950756458477655984254818751547447983799947099597628673785727355128375374664802254753129813206179372649410183342062640292778881078977338805715762973796457221218699205685842209838979946718978565257830147649833181750329808503077732871104104507301439276036184506922928016849527430048752071051683427051120675951147335189920940477064766402532196418963205043651771737559861836004467406599487711138045765385105925035270437311774644800515218411103078638213610781456493458298008247962245330627467033010836728206621491053452893613175075612073975704809434845573121417655885537524459768253021043162006580390768061518641744557925100487519248872738624673717001877189131761281388277802635565223369946073126458617752521554179149009688678934945762255913591201770463721988055410047672280835511603692383703539339111639547531552264782286298677720809531697204447245228399293705794956346879680841910008402281536543054914908036136547081683920096967169563565047674125389662510110597490725839851476350177617918648220411906298535039930961213171410005071368357004698058185749656809336255547927222497505895474722155020077816564261891498992349890192844677076550729253122817351690626187662567065269953347499954369898882405996927650025760451942701741749773329335995516027281592043714341523323705524905636211485229140790697713800279064008075221236274615435951788217269539403680985477460293795728940642596419495206889290759276123059783648808822123211091501282428874951523192809922051506911908998697003099757709499233665069770001320305368466756168321877308385614321552136000507300320018740904880128566148129982356058350309671863746227541888997540568414621274602972986019867860220433090812438039726979188375599672598959445048612791746169858364164635565406891799857531791862649213306716022606522543128340883881181764676749660639584196170304088475613609332378149689637281754285765301185956443231658102535427067090729252984894042359387778249011210244324906498890799429161522584461061044042222110227874046704309033109382432001792348124878325241190210416319470759940953569852457905788521829476699796682018915032255232336294857888571549365293196749170599929704842585413341243588595848280872830344419804726633825956555826537297414412574827735728283808647974149950508212896557943916924136746571658715130441035469085983605101655549959529402432243088350995454866632413245528376654353339446473163267272274520724557365047423667795300699458075352976491768316328553778272379575708105131463693732279167720372154454716232700405705928569221324227813049473861515711290337675348632118999205231652479793466530696783480420962021719463543795532491781767463219761728185206005102463082561073879904423974404050018084705898280212041112437892717301809859658575397297250376296088884013962984633619102061359630378392733683103590336162989629878377221893829531306252735480612774491178709600644488088270626178347931552889476153489101606985687441315180289950167863955040159782429815618036552441938214932937433443845001477072927760029007003201206859701626298559326422815003311296348709819111790717899492995805425647587908853324574831696411463141888768466776269905609938870078137929646531461902537884913039991927463807324194190526296928593922510918615765338749058387689211503816831476058206077733084512428175078977275361600392093818228401142896601872827838738490984367469617466562093174074106955885983105301830789547170367390199528573946944124252644985814573005444156639560691335101092033153960934791716918830431106221129482993678321944928286279068017599151062345140511764888135563070522799485591988111545099745062116688524341357517681110771209787917360671102349060117967370742271763381213903714986243267638886979292353349080471056954954604192428217985714208775238277697716634928278608698036925538387863369392707530958612063343402181289796900914633391211398011308797165278227781825260179468303182414610845058290114771013628604069236102689233915974163738540684053555306843803253111896740925218840931817783166790631935614908006889808275634701559359221897696333462405818440885958174938524900305785074162446109320492464380226681882712088700462098410302632555774692804021236688230093922516847684472089259493767219892497826721402146726845877067367223550213274530390450984799228124913445449527530829265557137031712159828837319622012138606877300706338242509700689758083487033189320284527380885013480872631404040446953508536230827620451198235649461401484033950639734981600116300405812015193882749988403617251123858222717658513686211430826659834842674968094480568666096220413775490829296977245825765806587428846081428529859225387412588117668473910260757870164893195257727736489748047696565454359326070872487680273538557917065704286640430473050591382914715901443336860720759056378806881319994599115408764693471754647210230288550041015105231241028365353566736255841504634480805867290565353327362568248901133444152112586275992361436203932106171696839863373953444150396299081444842858024482721914959671180632039632722321213962223734351926863690346354250487479021928460496990930138454618317245710443031871473279971027038542443629769972637797873688447297153887112282203961750409292501596832440992440306870074977180414349782869858612318058768451665230186132344811066039309722755791699119271493206731460626211833629122306187440895691469862563261037092963348977798004613922814486569024561001221988057702109807239047083096395268581179221849020260359975433457948241413202551768092766407657263907416212578076503243428037416578888861145054974231290162159825526347786767375244669524859639502842373821357373347012660165516062110619674926803517024268947705088669977946804187327951988143052498593152544046713079885844712205040361161096635891216863975280655071536807293904952753402251750412578764718273968379799305790750832568319366174845801669819825639680430707942566833502124415877125573035865730785397925059613118215163246409980763583887426443984403372641144884493333079851015409741383662169762554927685603179006196028659718982048951897434235696081496694544009920543589481360824974345261325833291376398487743566429269347579849040661369648864941061426113942966116824296479839177182103077799715064330026268739098243379425743755896895939698476541598729529010760329794231097634733088730767820313343381939988878190605259437530131070365621661099288198022470472834118222461498080370294743171615697496488426421629455769276159408236756305006004486740355071288422176229779400954434033387161700322972170854739742917102502854236134160435276830364977328411057930838911745758064118882271146130711479530308379953436155569784482787035647643859727866138102243133694902757649671839401887141193527905998527009105175491930079188330618997473296298202688501426387162364431870458515616402816983299753649405592751247756551058964045568277406182604051893446829214675586495313114293288017170227945896294638619078905767430006535398438978262697360443945083102147767389330339234793120059007504134317645525787887535911143681521666519720720679687263537330306321471609327073923912947726827271586614626101911797473817501599581110585659277655317388015078909141956660402057557798515362053014805570161089173993623353213777405101186713770870638556882199365079604912070448631676603988519614311181559665818823715988965072953226198931293153888274506586599464653538162894417162476844181745504434989753091378567729350826821923042194680432359065768283032698614551870352389966931392061399522571102614818363977962330502620747752726875794209318393425212503175752788932499110165460998313311982276793992651766024914724945273866710358413026552844831634429039190578151648945477085863392774353098615307608237125956257242897325233270900311981025548871774385880546863672619210087908941589788408350762864824890493413115346186885283547149775062903119995353603728836760062097717392162086526704551156246273546939106520153034411257046390541344248314347667306132156307230268752497519022025466864551763244298440576074961200097457629868362063199139537562387188423210246775093159453384709412723282424745901977053212634444376184898532281810863175966924457493236923847618546536908305079205897921766868337771384752717728015429283099013825939472160815906801294384615631709426650489962647758850686534017050121406289381441994578775215127341204791861551233559470729620147609406977508174842056217409848981460100574706808490077679900732610287042982828773016966335100179002548134967977481457644404404478315133774538519776571040596138347067772308678590183230838322795738034634632800832298851916913741639809400918271237304909549181769467835481656582329351098168448565938133946022749796471060447590953317666934235407243942998309142730115591044398015276073167178192666057287707034918650328888867508083326208559832699703184743536181044822709269306778657819509390150996842189511415095989299497667367248532790148280947706857789501278491784071857421058148586208047432239918594448720973815554838509260353719820454643518488038670077086824386104500185086613952141800764070257113895074255055446569269972665370900620086741154441113339221954826276671788761155956685934678414128405344452710402065210193768502263022916419780449826233801400287825202948994984756931671133127119372936074810385366997214894412508956505371500947761294725301032229478005422508874328386038457123362260602756587347663724017696529730535887728409703510146753169659578835160400462574541756637503835428515267624238144390765200328041272043081630347216514030847809034517983635054681757544908192238669523392167962776620199194021956538633835164956651921221107652470766389027401542135939170094174009857689588848420380242310419249552626161584217767571673702431296246878925766223878219453599545037448501109997000805212474053774076859867597024039668401957001496058081817821837976850007291564165940169551891436032977008045532984161091830293619049429268639000285628072982454686042129518200547763530046690284625719669166418067527000377040889372915385451004649465952971033427870749056036889346184516544064870161499149049885540955648695875073103457606157069588110092574188577086850976812783188787867267036724971873731282373828719869084326428073755872174775132752498438096938165384108560986991159029956940545118439491573775455104667670734165632359370383601082251076199413124069191251988250582992222575487226285248464752537563619834790087154157244546092563818486444737008546650650972099038432608662241784511017850118026663657064415221059420536367539191595207535834771665523556863669472408854030414920259710814894727177765304602437082847084439230503388695497823393749636492162554339576129936468177492799341892190068474138186093352042984964688353001387635162339500854819339338760904230371654376317265988490775218571088661920059531952442831571583254915981888491491048261846433593464609162015186476604112044890596146329856646022978354437262557440612071828091535302964227019149576411949677208111370603175992485119858858652804402959856487045425097246617257214681404667088159553681176401731669435022754244372287348531350674869859885013831170513601094809740131527364249003348170244805606498705683820235349951873170383244946790556013925315136423412727203331694892854591813126852186585774799099640429337962662980416278014091676023093840433045425100655525578848432316237183666965991384398595152512286538582260063431662875099936779334517371215885128978885509065131495040110395640489475889192385802728379985946446650108559655654902467959810071578757937051727770010571647419028139911372558393343922290117358221609655192530103897867971234514776838304418037564702019964013187321105281346762880848992927889989658459665494352902636171483533052928187607165858220251157807554336017503069230307067955484044635299437899097840494747330382818617156602091194006597953511465829115440904156601532894102905087012249126344451124105141249998385489905029698137661367048082446261867866596541154359215305958948683229332428271696889808548106809609223095102764116139542632591458473024118670240100597202820646046281530519672345078995907669256023241769072896698734956555517917160005322891759582867869093114809549345468023566411748400760198973885012501100589843994606347058334633407410426276074541794874403621796774519081043680706773427478487474356791599398033564373335212239947635625574431339022901241466599039598465619807304074377559891092634447185018742594807563678698917208683184902971086418109300221725005270060122171226005573977774593313234482581339658110552277971997958578022629677338457594962295696412458790707561852203853535563549759071917760843853156725185739723389895174346446298939645816564707032223613478336061750223828705725311552969198625276412416423256023405900297352850459855246952244202239503716920069445707042670178073778366194859101419918686272947341736918477544521179276879623062213328072927811279734275509937072297463428670001316946985401264281862113974389602875732107804806763598464771424964551868282218897715330609165170017434553130494174122914478318800265367539140863097971854259606720158796098366974855232222612304922310269512029515223449130351967536021349874061727179869260733877828543591685974634207770605654739460434174838886070296680707998339849321376226159978429192676221408592347362018149105044541706812813948847758395227420358987269177801341508660195339110383214089529486950731931680226587770972422788106147623347795335688743311818224936557296794487881930569732529409404690031695598723474712713075620181504685998632085128172598820744226468186741655228862825164175740429566856456343229389453873781100472723468994109027150389739865572343780883400552293986300923376804406582998936196318984556633745233363392372695920050798751722715472042222696710152964465288882833064812469348264401116837339397826825401650657458758224966277334315521758066971900449863439995474043810677083478190816448355661522922201774569512061649213383263591129332113972530317587427658152910201370430905649033132896793455721244002939103416878027492408468869404717736756889708570530291230563608559743094354062937075488594525400672836452791041525137997001676763842331517662203791349040322489072087870713444204019646738702047653923863839222163306243876760890414645607392309848443183220832308912900059475914848596893093048029756609366718569822459263124883355996886646800263924328529622079732534559986731962140553877681411971768117282943252614334496186113928824331513902020918156129148688971388195567138343284508762649543988428475646596520293691689591856148543046173817691837922765277950751957504911532213873725127404342487873011748993065728168249863782134412867995685243403639696439104380911597480818814622578546397423034334657447062262482817367756798545294287779367050632315619171620684571766605466418570756850273312904693096615635610875189778707234766844884777507492838700902584175765103180157446894821822300840957402755768571350311774838322187561876665977983955029425604685257799036686813873130764317373599301714640609559636022525420131206697798802586952042643244404971966952786631958465970554510194847465436020725662096647987440006573171121582016531279142083354023855737966360715526613620918640190334361440337382999405094419634182336694192669407393359372572731348939850456891832829132153401878928226629695977228195822502471563879513152398875883376633675273096898570167473709102316040275865019959814606255291878465687865300688541058479362918636983533885132752283983806903486642266770166096306012124379604214650827138057617585378108798406638192279030264674864785663777423457387553284348790545026496792542685227453695947013584646775870762430084428650060342567749325381840919737740154535786383876556691514076503952900938556202416205770588695971621441306812631506676549092379517099668444305023278470274378848486553956212774830916900675360649205947335530516219602629622140813309218039552394112489100214104722545338953697930765310476981841896679580204207356617496215549856743964624378079492275644316953819527078283542569769072415449832542269681726173097666541130739664357492732287216428839323296263851100866070056175166235460913320360050458913449701937861100394326172694563023762020417906813648879356010727543333399137512661399134529817451051636908812119221139208644081136710671327757260856752520458765873402470169808481855320051911613419751952846313544009682576039026113719224239227806603290524934804711715624508290252006219307474881690807157010492107981320213615121963881429977815628869048233259371973376231304431114664384426679035807384833213263521980492116762373473718763402126742737428940207169904288489306379264495970986342523531437362233809178392825224448963128296747522756802878822800833768404572662128301976823731182503886054586036579711033198946681240063150798512879922026696923196138593267216550319865164429196372129613327322401013625374027845519187125031618904397473874503555815447502404848011642441390976224969496310580416704594095748688792257903565135077750771636486411537733042957291919596922288577354093351098373247837115254943452838385312115176691954829623433338884594543016347919111960876274062832330045854881176384830264625276839478001841808793500545766805205150807736028039796829701752063114156777900648092702000971006005033485118626753689461409813277505284514563659218931187579376874321819100168665504139586176523312479288506163777890564832588892538247768539142232792707309029310710135746735646607876505959378388319419603615188731326643378578402997275500685310942509598007986146343506019664186522593137950838706823723853197337463989255191916870003679639438265819927056494433119420252293032217383935562432413825427831945163977869030673291560002093696707539089565494778068210432025195566954528083600306990911262592588547587086828017646920510354619694946442693242519841249430512951043985764975685678952515314258153836208947373896342545326086623514993488438216265578431605620095133953124680903017402629515234270412747203508311088284854520347785546046379423565309158070732359595224535390950516254972934670422152398352584466914391174890649646213489682329382381473792860858905044803538081120387101935678828879686364306213034245647825112753452993515345812677893954646397133225641729882596713360887234060336388818938465273155136366319288013366017073801766865915375620554785941236604599069538423162709781065436414901758752541082889057691437888935941393216913330392343202914778482990596939027124594968829787158036822676142315216710081701055717715578319258758121649436026896486994619093808659240150182025436534423677417838035438110595562096861489330796319825137696813032173195817349722890028682186021700648493794249301385381516210449594833089929283166702529926665472711331053428174730537973015668455382490357283769227964422945155634541592681011410212730078929669632284127555415362729049656531789020948535015976952113112881086620328657314119204437003407356078419237174763086341166159234302608969251022778984253913771751099701448831941491373610307756671008772062875970496538143554876951639169782464342053188746738850042544647702573883591184183195145419732137764825545556400683277743295769671961874943774705604145178473342426875487322072862933647638508358662169291367862503656267666282268342655898775384171837085681125379382880738266817293518514111721702306765229464660214274317451392801960466313324758712255569829944149744372789915194686051646344106519781022756083383936703641951542283479947607769601648299480398393403348752909010907678353993549991931343648661093094367174674656084407137849203710996586131525829210503886587013139764648121848508612965602725093671470043326547994614218504683888506974068474650881412832923680156254858156906673661363112366121676828235832015270559427358087909625460123994641947794524373285153583321795006697331377512206913692228367413793248909461374840419226595717769718236011104014067175562204448303441336302842154687446601932346972014185761280460205877975387300891344363980419308338671531800431245612185646605731390732682236579932862170447387492982031918275379163403588630516504820146658647153978124049968466365804072206936656256183894839830035146419524527454800846079823829070803491258792676617134941818448561170030689665381502379714879842747025995717363589711336314508947371639954346176633602100592862213554449545181559551811531961622753609089978351521968714437383173825462199037705023640958281604558663141137597840954767227915681588692146985997299370820439423678140910735972851101716841620006420169606784888166241875417148978677188495397567804208238470576376420337579964441297486953339603522892602614104963630466629750371140959111668783400437548623945073158343169387282937301841961037810929090866247949830557301272057329646126759393438430971333824536569207940916240083561615603452509543403107023077165130908680747615862030040374451284226919287607481716078574227777075366127907963746568050904445256153862481540854939140707468214504116352792974655428409651584672536568815368690931844793308413152013571925958780246905889188926283737656653520369567962943599594960914596340993679431318594120010663940187783168398781582754895997803850606404142032675812772010691587648813602780020176944956114390659401859426060712860203603933760376122139380444038167259577858372886649195772190864575827337928623976379708290477291796872735950931430733212588211208963538831909315143405535854615713979884522019953102490649693323530339194932976399311363114418796769404737069347110362639387046088361321854079772332471505984412975286078484075923117213918766392570083100857630427860657492925869098384720095847892951842401096122554704837157561728638395628880191667063065483450648067094338123575132841271602036259599996426343120697676133386172651688799992060764128494342008538376552318519748602497165184720214059075441645857901752195375345948213414248939919292140021865568306404890930531659991703053601873651821790675477260913507783177253969411941560937477749507753470496882976309749338094406508821349090503609915062538370811845763790287927463594729891076917411457873896439554501300591348755499822066624801238830154405633450373443777922353684857928424598992810637504352023280156162289470545255491189809407423613452756682523351212626187749850969306438730809438232219418106160549890663536934099488151560125373389468851297643704537979968990798924845944358780440952569030229619469681127897960756672936773010362770794913057998444369364307564258791934232697093508114465413809776085564815335374024545454476568334190812415579580414917155451537842046388523479557633505794905405298337582615901264860289621739325914741980193605681355506081317354398936204777727019268873493420369645324654901273878289860894347459137547913280581316322762004860436476012594721977305855480912838518309808429625047647248012353074675182059544926816989186345336431307336786205301866269757893916321182416870651611063212927408383266788677338483554568228320132895657203805328715747145121994465770622765101489533750209811955402805022651713193391049937645088034475993152827727369043736817192788365434759829910039298476716095218478810946715158206890514063172001071882939643340980977010701880856103680863308545322045676144195674206225155641088352470660570434906979851510938061489342584704785619581220642605937393873874615658281468608397331866373647976002401247407744514908503402783710171482207597992156006271873626375913559185595460422143014586405637601373856118757524969517391494406961154364411415220034068498001275058614421537794654734186792046034511793198140226881479113456953177272357993328707422680401314334799162279671262086892871663469874474705357315842549032585419623928309698879221274749842315666311170104296437306953563433254006297101841575017223862435991645094627808138720624990838233182876291409375275372696884507952688505094237950182213082223900020868153091896328542342581193783926878591334367058870585397063018818010735056536451077684258971253429722349554960277840193509889245843114726316966233142318421200060347205830347125505967201809973248458823132285798687307384297605181424656352331458477889338575125159553903945686943165390024555779696753891000688002298544618681360020846967315559100066982675182341637187589571772349750538940589983271285468192256610961750135488212313009057935320877011450504063171359113919066129794860131483102878998074089627908932061237884630847850678640170075468153882700545554284356796066216599608085789073461973694453826248140582773790263002639885712262362423560045120261590402161773995355259598886573455072546704201448929153825566394619360364512714798372182256602295207754696276610131555314750998065399655470736947588500764606214099737344736465775961925625370779979168123201000011674069819855682190141382489979600464973572370712335616192605863753111128887000703725008098796577056976934567019342222958594310125059016893084188703469127375253402863941885895398184707870445198615558289328359979543430494953264770673121199818540399807069652907264662802157559469025732978306316409442394697000513003393818701957639532341250479798291440754017349678885147878545797015963907506270455550675392351457114829670332196589598541175920843058131945477040145930968013834088964966771429001372477173439280926181810944181460597804191586715710102035271435396884167954918632760219573758979713588429003546754848861222953205397384669214601591244700880401657134036075673137314815020182936365764212015332667053511605695900810456565965616295991357031350734108361943864319518443275043324845261277251893548557405492525130253008863816175050552932150338887777984039610364352120088023350489352771194429412272911092133450137032023806364099555035848397266780773959341570423259922633501985713027031288081208411763258870074459124803463129096804700069246214775967236492560338832009350345339146928380163005598672263986092663482837022532647449847836281435775094210607509595501820871297528943112433191914090218671355273501644657410935200593776922859753090762907661902451824644758285637261072487363829152268141626964125153727847653479663684460980430465004853096750535215701254056686436918671384974034249383113430439720052971211638153363855669927745433932062885836030549392078203357392975051858050348828384688189724624404724046645287629105510704356818928017099820220662505670257334690483534487193071768878348191010368547492588649504673930809530700345901375558924784833310059128851093935201661247494620562137569113626554264204609533763030726297730005275571828224166301818245765611150778142647231231854104888758437071777205361087100226423963125268498253875236086368241499056656080554554366912885302849279876019015126785885261676208584809031690874527262932979740717405294760586709403978741902237243797475047762422596713058946390794744396974170944004209014561466105519005264402338496750193704058270186773862241281847347334714065358363682058551017381451932818095157766221475377728825016269426916121694052328180372651276587403252159410909706147901644492716073052009591872207644531596488055085750962352918834569275244281994876005385502889399539071936484920151063913758841912538507533087154251169694106948006939869794528913008491271145144327948111339508671647320791096697249587196311929052447407003482637049700759301754096475207806774142852681426659928189884637848435117440163057654177421645357757045234254761790073853481162049847811908607225573768379675097322232786143288422330129197816175117607370891653474661614709443548633615184280082973386564421808651470288886837278453193495577318567618223102025618980803205679147002700105327339495700013711866335868380583934831930083394615756230496548081759409698293056834349633479150541959487307977490549123671596817312991698959856925931728600512618329508259168697816343189598298484790255471675414820276233095503176630411847660055449059823793529365892080048481266390523047704196660209890567199278795422432643748513665548552822656279486946443606823683663055436807795170883886704682415769187016281705983330595182119594745102363002623264013012707375662130258448971151456211720226223662054649289326504267277910239101457352619030531447827894903883634613287797460062107385513726159475389692552148320619049766801536668991073457227230116719428775536579305046630898633939650693724606808569974207716714669932118965577357114744960568770198138880834106357637036940076779999090031958202547292248250771901449729909787091175938569978915799105158348345034766010444798087163831778946121252567515461193491115445636203748126082983496943926627057201404554046892592605112115170587738609498505804717935259146042755768703272559265399943780601747106753771593710916465659540289345245462196874569343336273460076306051570211802260336683636458892797764241127814586524016705945333234134303399880951295057732188814471227307876153294780991803409514206327029706694870356164062311868655815256322415386811355618663708353715746569870836308476961069155305040727599511312681409504851635865327506266367231372502022594276918157298731762283805312133118524813249738191023975046987411766493747727178724026160272149940519303224787032917386327873560147246287623015390313840559627068617733248946459474560642627381122546964780565595531520520787496850454854503432480531205650026823060540911598860367933429574250266430151593299265008317741918302217346236322252259479941010108558788568481630117184171780080420741626075063380206468662796389986024175487879013079118452247823934912914623878548199938097362926984504488671839285465124688856799412312158063326956556300836290017909127322078788105192621501408870895331186156184900085573268205400492495673508537582319278485585442725284624198248386794113588473373412669680810816715960948637374982078195677693454370570813005090479954996405335337035048612375568281252791780741584685552399428996040253344689808298332945151053666496883333752173391814152780741085249711878265481382109389275724197506038509602278689231227750551226078654525656105112926196355260972999279274336934158333179175166281711941956151586629681233072085705079537517131880068897550815026683310926513648272301284076268216016954380310166544094893997028805534323363694176704114562236258877894148895522798622605640541570175495261997788290283867352256885374876594237402161568525993881914498165079752929909306858009267837985075739427354121227168648379694558201778406607545240124768579678016446908694710951228609628028498357687318059043615613328572517278629870017907238554959988409601328948885410650452292463866688659255987095084060520418515315747580350137406037868439549473248364394994602021045603521432220218779960185263775450720372020575259287795456228940012610329368697907454852425800863475024301609925322280482419332214871016245745171053662807897727630374296048417532871851873986049537634793177899771971488352445694439111681386555210784581139284416621556224094022936261193862112168375198741613732115260747858907802833626918111525768049896801620366941795013875458043199205849227010267927453280311215668750091772288158084558370051383154460837989060825831237554499978830611319360734598566776295577526150723820655046443220378478632357942066433607800547670325185145791322259419719079112022682489641387263311486882159683953521882924459850603045817794765806897199569295098558414356683219373705827957012179649710787185730542075871358934868628856909121812744099628577576940171073371535107957089930020559973280427524029708547886123073728888998227758097315065808010138149823609197718880402723073471774887286280950313263657789562375118940897134815031851349393338916895763592225507145639953878986969691615645119978403798273797099722608475441589059931314633881020925374287885871312512738667388195498472397811282077191493815619356116356106580419361226521625851912986342012905758042502570029560066398194287056580900507713091654790607859255503438302264852629588801337360077050341433527452410186339310643872783029928236626058492507917968828129964920926302584429939345481529285581024726904006133332378746284748934885126936814374611439391421655977958444239922502655215044799056273819711979637330195544397640878815652480753828663861105378711276660016162591897413676422454871246094167157128920411298593087861244491776020196856598137248589250928432248327054642353840912381345206245439524490523329680428634125622509808202584720504088717337462729356600933148051143058317967862650908086779304120560182460079292660225772861740755229599713382727842653818470694279178772507499920430591215773588568601029247706408780425344381307927623083950996724030435484840858553488117508704296251969006906548535934788403238973896648164104886459680222951428282206720552649690737901121932957443131926149110579369210109381715223245187782138479697845844430925965575384146220026263047338392145060488378201250261424201650545660681304047437939610863338750011670824247246903855174676753592763026381090555765376914975024022807973703437462929030183117466580788374952958812569425462405485233021405318357223476283746672817154944067245264732743611013886482972763516131083092631897643670528331067695698531373129599576415389760629797521544231734532228527648290993398003481376385192534055755110172747830138153655718039113061782589790546863174713545693638998012606035544693793789512974097507896403537393061509364547731178882702077651983658591624756226672257706120463632003051037470805288985454927187128055535731648330008751003647754570053662965327773204635727412249657054088892014567631046150137190076926419773624229777738631202397571020280898294983127824681500759280921208190653313356228911177284787564367850568503285150275129669067605033158875908110765459687510700269137844631047809874237728279433664587839228276679660158125977151903225973649349564579050065909813957234124331509065820120280189584366981322925156088192380321132869886188079275721187580781569689059225710411651919620589575335274097853613290392910574189468703529789309913794119938115909676028963018883432363301022960020376577937062527755000539397021813929464999311037240155859314487980967307947170727298071730844658132024435335999477687887516257516414467348671003840280818202306657331552886889944684284326730758785790619463856096358312478243935894690234083584056764794883367368508239146077913440737620686246267679499987580007348364027544483382493583232124133473979333572097757604158424941619353591030924002848312322904731810600154166027404747371550489952529703431964389268869525286932254768464432025489857184465625560504812450297885824071309880735648502663412237324807537120256331475639390096000310356869324831681477954600345120636708454292068439096980076284825285042712219371306413374719212667360562398661511797457918626396632459370347107333251815992880993490674028577123589853807081808416973559897588211289990022552142019747738254493583451790948404016163630870923428594778071914782134070892686760383110563391949488777465242997294621050872443090798359682703174314719327235128296717218571120203892405418980992451687464296306319284057498142838256134295563798384673650003624880261618586037726858825979882289098830238189740554312049620117459770632874682734573538484748647199443365958155021635328867966567722090093886150753895726133338756382666920207671358694309845637807651363315569466612474149922035946630246775950332791464066707046085693473800567137812267002253719459636050973891920537704132406201259299550969627771472778878117839210682256803778233948791421470333127166398134539347388072948018825939876312767750967532615053116839523809226735349758369212368630338422862824867152736868792797209217387685363527087986519590331695926310021115345079597705808556973497349101422355389816261731437234376214030201867421639737214020942565309758794775514110682095904744445826912372431844598659892754624885605961573966844917053218402862314013086226795833000342180346692061078806878069184724231165673729613364035454300268730954295203734955910803205115414455521481125769655082579852226781935589931937116848143670949114376449118108539900804469010829669809145944085306430229063368634953853810395017290513707384331646296237570948486404447033333859218763504414913589946348371161798402220602915365668738202192772381525912658386436443622834192578030379475944981010131244311230762313225642082511424287539162315807536607919469580471645897059342185508703173499497957629190436865200079801523955790030508148506132437610770663788551947086180341970694106683074561381420351182652882189514649083807719075500419572045800379650267170951571975671384172287543919827527215529424787375086133769719253039382416854020303147530350014860983391808172777632455139855497980761565126047810158474625175731523651629760310173575457132808980790139715377702781943622709858943952585895281675099429953802934460100909901866844419559758862346686329141348022724754319348791227521480769151504961882992801135172859959413221777427506325762554766301177456518805329540174761706214362834981659345484833499992515793691317176656305135498162002450688144054351809438173242668642815419779067042642909436062690916352378944228450630763827455113662514675820694077813382627429274258707886726172897057201997246072678563707217584369041107284844917966052542936383116806162523219440152119032391141450184830646948165989414606855707726631817384708658385519753838643677297702043131582123443711626208871858341196210304181635859260615341775020431966147516936974821175521461384684855747477365195443463241246199172844139827004988697918406040034948854432170538536532048161509315441072645356529453916062983080316398046379268182784562983454032803317080309098409152666664835819071625755950939578605696252937513845490613858089228931227522424550942667039329952417748539331192058298680150287475614690747181726616491872190859459750943578966388405730318918241350704767606678493426082984996034510481223025858239206270395181738361535518341474123418497405136581296263947868847276490350851610825768662316944787541389006559108226618094024236984716565348519997030199496926627548003056659059076636233162748428242218199233018698301689373843324081595798881780840743444348151838883364464575679726160172683876191441383913056276750857814932684831170216721786946339812043116305783510359202113648157070277550678455358914505645727203290931986636000077411272276714092193282716200621579618141815798019462542581110014993284023838463987475393566070960992376286992704418351623442590660319372288148877543900389542224653361954744043681755737276046604935465740717080667980659530182283008085195365513097750096027036283983460679940367755565745398146805243474753709098181225450870700172393265860903767509247789172437831055884029909210744530985879420851294540128155970212381417591696271814348229323961867078823871462100235612619738197701170752191588804790194757077759667793398622995235530970875931088469976593797715410933459454386347923581033325751540408205625162687921941670845102646766611881481035354390645523341887033963448994648429130416263720480177874570832752484787184225425969778776585716757033553685633222762285255156025942631792582577078302569468039425062112919553120113491131863312746450005377305371989377523225837908971619379388596963204743920268281730634929943582641300534284206306171944713229019453244151248765002522057343622944117391846868466312143808125707277726985003932911385254420699916626771960464877681512184086128003086682562417138744022020066462057428828626534272376066027627506299050340299241246140516390100530294709387227739916496043503891492268842988190063131878366168083598469936379488688727317265371505613921810930718441120581824206365276733162391381045620203102302378649407210464147751808672526594900857974975190542853550175402753230020019252463357588630628367110190713608665505378609190842563177443975677594040027326542975367293704988498568875519231281315576515038280122691068526582738776723673620433634737888586700320510446555490529229997387129200189833143911851026933895600702703535369746588770881382535892718332127772077560683209493342083301397594624238661169819144874742663674303253501049354260790149397280512765099934700253764429254065638525819595781823647965708750787521984348459859614182732177158778368607043532617838817951222352448193617369149289112242878222409695557001199506357004645097416403897272060522551712923609897624437535576707565533029826470781160531368433358519446858090395168609897854806267120747266094884953687300254645941397100426064088976549869358141897353082773013179759747706675956507403733521359259908121435173892800470305071780498531613891613161523091652971146764807489026896509612210581852484295879164428642493271726648947532676895609044950051646173994498569826456093703184177618299011241084099302186915817574702904791965499079254077990203696147371740674566167514524714970342387069093672545482699387106044317560985467782670103222490447133986471707888236056051601684249481304457050296870656182118328771302941612264080868131090844118310509570317332936943745752412537565168792843402107038336702977994022779269635589946792605075646225498080403845005931253826879739866661299133955161880621547537678859724963096274531265566816077817667420935315973361842027739745249373721006388264121393541573013806224874480948081890087274403809037700172741004596672566841433184922575906935931125790821873748248376289362960925186118310072718069742538387527574261161774974075102983534224076682346939463493431819070859780603257571218811572215015616056273570781832245987418844527222506032186184416168938103033503598835702735663159440947622569940665626628911683283594790508921849557256442084170559125627721980769966782664347559345215642173130908763767320553017343021871883158820540069465763538709699489532643130459517144679570552090934830453253365005902320747594263659127991684935012711149259773004164044423542544461395542808558648635301869117735901324288607919450093280017397104655937193076117389133810237153018994637644892593861403150651291073380761042505483377735806912614883018426389169143553860953590432394968802406545305595418852715558179644743011562089278195588749704719442362804180810143403561964310685881264621962057910995639850984654148379040981643406292069148370053854194854677668352053936845590136894537876062908834956619042261769954755667122009579091973147610154420148141103983215060539908750094584024216437099325464573178058879968469891930540495799298067852448426869267312683303729389457598559461835066970177188538581134112213736806819093097376859767379840584078105115594794138949711251468240040066172240968019705201495884270948357097530663152048492187458409100690512659263455442349321184792692232932188390894368560576918980633729215894273572625652969807621914283025273459851846893721856806374905000571030471321029874519421420203888450563346589010676816937157942621234718062333863899786633277519404973620861313637442713680331519873776104946253355264464310708691161202757261990681194207938561107759884793566885074693509510105877462267644490846056512519099235408016977350218736900169463307817289341478925171474887086900791389857881722717173781779212374922225397025274941020384391881449421059660926282085024656312744292847462206964136493692502489494663599669437206489512544433459465428608837822719730952739583678254004469621814780724518553127493432119346571485495436965916748417819194956017827662713652440734885189662945305071808010916628780328801106526759163485249947799172649328768177143022285529170842174591660620116778046149977881892103821337722699389779924890116875052048273223298403943035789204380675263836494667614146608168080373122925708325769622583581294676603534371306651226961754205857632312265277721836806615536708200554735057456186506791879284631297348825743406171785088513657681071060245278195383314781578697166081948858921767924271769561940001393605256956651556016452702049875020407127265804248283972088739113806563446595661569519138639208393566499386083146092640854771750816501190393113957721379979599702407496854131169550345745373916668047526650527823452701374232821746960983786214962325963077796788297256731379396630080585983431772589057576046351781717657294881376087190550599586392672345507797400907053888936741316571544295267615843317415132074114860948685092309081708077555393275533499175233757612440617064503170361522620787021581394781411029948104812828499844717204152815853919987553233035248963146815563493750485860146139981429903102874876096703133495848397609499090266837822259092018861680526479389463924394270350882856158507368169252183479114964039654413734657894129569129740975601218456616219479208328809917912150100031275963776378653683688300169404893281387282271257856832728939626305029052977142926511555947255390471723606978516726907935865717843055984707967454594865120236136303850975709630825342399351636212644630128896243848576671706315830510297641858455011919402889673539209589820368311323371331600351235343318133648989676088425787140106395905446566012168981324447774768274346251270104843693419267066221529765219233965343558833022360717196802876039563669232129325181808632907253994510442111230646772672535978747180344046690868615188953627041242383444356126691366498469416389306324649839491446970078480042361259542249033153100292643156722667244753795094760406827156421817064713533500893331254218710202628982006539493558984127037612254769643400474428968937926725344733978354321876898753615078085476159848903858859989110266125090129885481601107628684041198959720109376210333773712824272951465567185610473230371953390467916507124211091566701760011972813559332282398276509523304021696997088589528355953602599733649380919257534656435871371982744881809115652154348635359967566201719401308818704183796705561104750041184025443149372728708408095650495759318503442905496161389634451133620650594239435987672585789144380230812929809270817248497234471162376735936979186837613517245337731288562332637085470756792027772541355827050012440336678938814344913160382155301623985403911735088411230773254697623406269155543749422251152955868123166647880406724453411520299964524331293774880834550697184875618350254352143262703123036478280936759806938115231829986215592365633632118598376501046693164627406353056276971701594580888812270737251999755333820517151478066414953975220445842905012897097884555226893059295697633232196510545623541259165091411312962366533288443174203454656126596212260192411995602843946526847953367646393917615119760984981343038254568969163034960866378907265440596014507439150813215617064415759911966504972313038441449928294362977653421480700415759988189733616308096008546496520073535679315067652711711996964458471829051077794457404976008659265720509818826222274511057703070065041149808258564680703774650995663179977276467626175875168027010918952191929523038791534099606295177404069999569917089393334965264113367294137050732914318510087521335882147750999958039374179577888397711304171008507829817062290407984571583647773050526118011986046651698799234771509277108502069980059887078691585585235296116404753800544072600414732173887671015845962142846019829243278653776371232864920918441053553394851083632576593867163350674151119104715657439261689838049498437004373161679871680535272677528358909905452012355311147654714061123390251837464332181397009531408613778454449791559133437526322606093443111083225601778062186859706726711722466307977914806750644629081546000352127005838833292990989858525488377723495456232272452751092371312630749295534961608344542291576882119463872563558590063360586427638423529983548870498657664332065795860192936405365176805077496852144734731106326019898955730938531987205933694010215003862355218207735947782697419814820378555244587040485302618591519607446584621580262807490268599717703027803086851803118830295062480627413588291027195547750080523775488814999596526906498598107445389762724733869707864312611648398536252958114446025293094558810298273249809283447934842849204870526925480599090694037257689529051201279376655669617755659223988102864995374937969099817234083945552968382530310991039145094403862883895183915417295036415837378963322325125235695192143862317492062029855548414907363787124229876002054294359490405463322850855715267093744269162625868320385892488013290024083582899679106290886515054553286125654981184787303143392253875732395824508007812218885116643737612487838975784054403058071124443973431351456642523588706807262893046834811022912861145430512502265131100458884509132361640676260017850385408128560958032012693573306516025832350186364278047952907508698700005622392739884748356920670739817660904488235221195053682720812007286052795112300416501115645810991909690444177034752778918412746612141441480411337860664951282556330751728556151284216169197787837604724592910037465074540069707097367813450143970157529326790463530566905674714070292999170801575225019336292871762794803693129290868412234433600728345024075500109149084389380656243163530021808534156678016801198733567007586296868430794338154913657229720150533697818493731165766479524472259378807642055829145216652366327110871674261368941451523554320060868019322624870749270625057019984690780386891472662892085505308405866107548294385183994115853087058331644774211408155542760639129624604334062344232874361699743612079461417395629058449867709185610383871086733280240589163919059592091572491658158873220078622673602812821938745524217088397826981951360021638266108877299872810842937071714978821393299996583285443160642404992548633576639564227968438930484686779572816000349330186618189937265715091277011772276461933124730281595869694292947001731909599907907030625948199764871925894905820283094753661936911078263425480020315173183011570558344960633294074911051156569637937432866142289154004408073498894428039762172261069321562461883145798456668713750813762034233009302165969624121009743480808907107680360050359214609314626862020354024843933733059108841566626494131037229761814490615705683478668059426343614748527438165460820083820222046054131226479067128029475819857304855655547087484032462703080972982774170418022069838391584918046086869347684841402373566358107356421835083348993338660201198398696329994794771746704515336636977174937329689598657050596858984383111761695052367237245343441733056882561522960652569822357247563039936061560471303449244808121745011176650394884855876035739853014390900203772377823279201473824807958634277919892727254045412691838237751092145074811062982578798608481790006348940268061547077911505032650054614780790846688849179906161872096450075359510779320586243531059298328656593945577020233572729957128058776156465099839698947038052896486184776193974537990456279374379232746872634832766514364704182904366413575703781421302939976122819426772530871528070800877819712913985430926824567776958376221923741972162159401427920559213149444997947856291464170980219216650964929604188195898366156504505365222300105392367094913171101014355573394021558177412512750723468915661293249482292534130698935266395933778654468541960421631081106284653960412257656190095518914737717048485043416821310121757937815961313688576228764213908640602323937818329191055305310647594977442801309060522203511492135273988972257364362898116028895427961293904298639445843868848623401135333038700994392258071450140630819911135893045368667010781957010716572524407668219223111208395732550631203042159229243711039914344236632899578644900627135792384193928288126579095605177275200932549274805728776957868138110020410484717236434244215075044729077530125596876477417990192684284607980933839419774272217857063334502224643285457175788913602219355514568105196821302589424924992269034768577606365768843607266804137634272221304708356918082420432868472272820817926000735783262285028375325969176483872956736771322626190792533686830376561289875708930236995791660730337445303603753728210378173301922247012484174073987923708692624504466632703237422462564310889696785268397349032265731842376158804492506677418916007669099609283952448417710354716528557782203736900642163095123268674460465249215902518306131256055131356424163173811814839952794782977249129930602754135244330681631398302415159402502715976492340508528333805550214779771788727251966821918504224173800918647181729553253073975857032570276330275499608382767994628130373571883113465898928405459259315256941709011484369367310887866800908234911914010728535268585235669321847786442872768702495147468896965269582688805416299641265129544533320273557097085249201303043151054113477210679872517442325277118029482060017591964785855540845911916049485371702059217711967458887760026513124879769531370584498815135386743325160311782674635247582506528903842607374177905507122973583840200753369768297249985589512240785927321377021105554426332715891742563022580914525409303587806770689124593832580803022650209853124129992502388045269449550542675732060815596366226210475981794005154946528913691310767205544613612858710469700804443385209145746474539421903786108411855706010993053691583704807066188504969231312251619119117327207698962820512535171275307291013329096867072542441784650689253416511063787673096942217032882268140589751493032993090355442957821117302405054290898732127974411690014374824359756277977565166701035073382671424797833066302487917531330674420602098784734199458723970532868741731889451173631670701614522035011884666057280027243063542150523172870434608389758035057168797490020218943920920473918863428571308494812560311517965700723409951431867419009830595469487848953358343855499524063112311068288388590396825089188537974203569635384990476432973878014088969089236444054308508027104667193995715859110189565033295866652927399765776055931643507930333416359946839874418373117202091608465484337830467676084060661367824555109444938774913433560945726403975668368823104248120573976367053240587544354938469860081692271563985614659212836015946931724392014677584729546107761174527598602757331450910218811435538581264685941751025862450585427330547003647962280513297510983830093646381169484503616073778709534951308116038066585121925805413971529042781058946571651392442390872125347685137976440225002505903197522288527295486686317993318988503774960491229821844784381010052578436167680535153277287363119125194132801421362957141131325816317195247558305265817810095670484951441845556876638783425678161962471043498205869150077841981405118714651279836551166033705761018287083997350369647256302954665284937245783089708631542264548497110557009204803686534159333796396022871514561159841952734655309618806765141557585410631849671332014719913693248488043400350140331730763520830758985713050814882746470325803913428457518676182863500510455921043952165903904151344070146389849464671586244310077888224399275570865229252057890224569646671051861303909901509572388843796964292236305703903704162452408737447449302052628429349193686148523197363242259624006816937098074014751987799488116869109753022579031633639856092482310793947145876939753733355306316272531014018244421879768307782268599202640853252159550903223410478267507947806080716012751633267325547793374231058400276426750852233343392764459881867077729886485677029486878723869648909010676260897565307082159429286001518250235457511204144960061420479816952675523804933587191441716479277037261483543342763579446301877370530209028677718033276914417245290141839625775913328377862913410252786336619073188713191131895432475300125240364159363835426338480627858221037881308232288759093440267594098260480876213787878771994559460724344378094366976775635834065890098291101582454157261273714857711462636585085945523903326382180417620852550604803835015702117529760212864592919529195110838325057065001436665439095501116773422430929462874009332168571683049592312627264845922646937341527403768996052002160651899706170668133092518855334863232602328075365001643862488116968352091480746711871973468563025964811927608466391022403292461748448262964930820835892539786626622317705228884237707333424236495952883362763702385420780458838867396318532022694321080097279015369457360092803184134326049399566155196459397169650750914297682874669761730694943972091268674465324977856342975781140579731432017989896007902983529732972785518077608195573613553148848481522031179237383487387260318528356510451251686519598869684695187540785351524819763477058675097227263047174308305950981304905476261453109858345071953192398425572576191132114344160117746353739426872228384698471608999354175646327333826897919035889001286191482795504279025804551669463154596720625483843219130966930159480450662551447945033220345096893580385430065989923960351953078394611125383718948257283307846952751962229805679210366907216077195432464979064918880802941637731384812707114906745116336225388730860808804214988774525546925003403710876237091756894199154829370527917821888301277854898974824269705973603417362248774127780906905907360876226025921648918765804736749585037450253356259022671340514782485909474299299189341699764949373889393166888857847535993113599186832981649893472720612383357476391364972356402955415350266455405490788494692616370150635171089529320421346953155072406259294720447538511118869804830516645746082760783697691529663668794555304313759106998879515197433815808649006882684498321647640743508960864658215002317677588603001115189214683793470357621430344077386908796762265328969368366359885579694651705475776157533930884770702378553544929550697561927912591965332797733301488804868669610824387005258507629064173699177166411593258761367648901508825277036167471856059825734229015267576717747812548663573697081720300353996671895225102473823288896883084956651829008736970532373967581566349480326584437474339757412564728850013158919434162669032560801210045591614054707827069149904403475132482522199982264800983095798305876527130549274762303888326947114269049641602403227344187595708903450069818523078689905183100194571523077595843123564929840483263515071871345411610782437729959326380649790369600227707654824341087441357306452705872517764581304040049561132271795595023150394374829427576330069335527393387182573760065003012809983766425873477458838256436898653010238799862096680004475005293878407731819439337849785524306189069731935497879894139505461017375764091737435711174169551984766196262565143672189611739297740468803748412206670862216441406473796506580740856734948243100328916412722206063733825830538422048166402251867816375914673102531336173478337472126875701027994778935095832587497843087849405517746533345771114103849605493181984915768961399406224501325654345148374176769275577458406188865063446388158034763826330641227465951816457116954284382356755794169633122645113829760557772065793732350636658125069609830048723467549386215728817394806588284584868598171237642924869106131711388401852431907027296740812279339374038442871864859168022260807555516843103391172504592824402470515426767266316901745054647944775423472921062352804603242291073392115815024167481848672662289079582183477480794978271986702715235827819108829022296943818908312382579488220194584744303747611372941403444052098873106772331228671313064035084614485182163513943270858055831402222036668151055224283980937374850477749081921119830501123937116983659897409235556550187364724656533871116529232678862127232715578696020646749900811208253567168171365953032361679392478138882280907839671556365672118271539737978845969694497959130234703457133625186217681366581488116080881901323371565842698545822533729206652991047168515881338604173413911210393560438477269211253588744341696896782623225763470561010225095049468722086804636793289799561458083593406314019983112934946107034878191243479567376416454901944027552229831485924576556246703622486372370962819067783865801547168722637454647993612948018647422692099632871139127856402454642123277955045171505596521368275239934504292865834680451975200889964698839807577057348699319618067550630744561408585905503358797352514937678892741864145837129582135206967407013970112595683505374733189920180978771684667448780873528956758713762886824241937317585090420488830966111764670740799452626775209020822787262841703633560023344870816414758154561906122552490475437950090338622298295466503465151161703712222320769856886363351960104958807582838889664517663550114212353528727815981683522376711245315294197699184173178357535963472745144860993163673444289731947189568528131865560955501974708901418838572383136287338968699791344283937852733477730482792787025826192926986341179499161305456214607856106639017349513367454954751657489933678322989921066355418664771595197666958523588757636217286694209429696708712743537609719140067736564990303454299485866895652368206817440785795433991734349762528449039724275911554033401204883045247291397804634551660551675761109945869334231126214515079462541782695230780125891480010033054765738902093958245172783724599637262783111124425910736660208014272219098117176648263070428312365319032595279993617822472797677903660934579001531255732432833291557385879508130532809180577572016594312120642123221712317824696475888818813684665483008740686859158784871371889417997366053118726014296691264480862167073763119841881971645374177146346011707605862286498431800283946006808392958783214154244398572285776916722242852900635758531049931891562965014723083481294368065110423290696304373666644994011797646245264922183605252105441878303996641533454316272947975337699302483661952266606906333031446324867714773773723036347769372045297178638368322610616628939626575745755200502804320329974723497463239768853329704748472868445598104696524586630253748959328894856491152458413503560454827618487747609916166780971225021602989128286209463817759722981194187212313109265668109426146443146866018150113754240337455826305606772644724937057056866647879128006246648902545460373375641783119959429298541515758242249516204154631325897299885569280939898511121652552975160432622930510078375655533154177986676712437338995838002063295978243477136105609164798039819457568145100515968349646061808666691102150764344753106602161059844133567642625894397430291702524036312174084056111373229227201957534716020013905117647454095342453340363674637567601488843799216610044324051735569706774695763460823589829363348392123178036579554215619843934515071704062443879427301936116501890756754314086996943640217241652332160808063451167958789644695606659560419585915239092173396107374384614636693269306970774244732221200610590611767790421368749375742111231471095912322280949343563370309183117811095792009742009507895986068248372308290898960314260744874023971289433041898053052133345698868377780469516157886762321708786892308085618845743232756931339624338181970584728733029287553191418220924611450878095115226607760028012090729153355120143072707767335938402955515891520394668235981517738090846437450669185046556280367211256732477334400474024226645077978769596906125422351674477075435901630149227950019298896836763372037508977627514976265848456073968301404844926596996319020463923715794512624177984354750697353040177851503194505616329401253511828113307965501910759731118637706582854530242732049389936902375190582693388015287180825944276955295998600795008335908539526190401830281756352067189195305375089526209666402981300115723871889987789351469592424510068872025209929318286263973092113793773124344296785611109104009808195022245417308440782453518086080223896239892058731304818090062327759491062728912732798022902957742802421410930893365421437814381148635129551752903172826231208311807185475795172013075189970532117213952438336708937291299643636788151884276826891640626954403165171442741458337880201503424529577865631397216857519615267384096817128828959324117274209699386896508023888042838016053066083381444247954004811715124637962509149790504647865887116539146920082584897339027985466593745696893623835161755148317962410474116644013855692574249455219115324370185531894648354609648154640499206998861208234666756012791282135897470295621548375496869983760713971415785908079608969069245618806647454484849155625194142584486428113073204584612791221848336016919135461904391397286264952903205893640650170676195610860993361481664813161257305252616205197277860644591877990193908201490931644946487056328413445193066951909963338742606595000685503818639990771804600414137211290947465033851349849267806493164324717595586323424829876673902746671132009010090404440258952057108111860507141589723864839718465750111686139589742788650595794973724133044585138586280559340198362255888402701190412051568710780746536731167849165660681358478238985772504194716263059334193927278090067123136739370751540440073585657392432069208426688127151952959505319439606893841114520683967699048472954575705735301765392152080784789266744446571257025909404103496816020155474898726261827528506437858637969258975710315133675085459362671997166584127847443250137596179985680152831190390218151846163340533523299669004201527315254606274487903496191904757660906317925152120276210832886684082082157236315060607092593828633122085792267307068429262416587047254495251980619980985947315724568530877130545353876138049274734233587532412403999286031488347260613383876199699089617053535451957865478951034775094790722481140167867276191092157994799643071605020572504948065042692167572220987834576805288270765507502782089639668917341154477033619627051007503270125523295623137179569140861972739145496074073177935100084697836226318287295420034393970200448440946775745011042816296728338999116186918137256636246266933515180159580638814797933696971926497405396884474955250073254799228563025981827802361646680450555100507476849111569922434765068020369481921402018152852935971736270714296434353553494201188459396821023578147143793141611387290424465171559422066803552932854657393582744337505404533535809076093282859491323111161315727557728087799654265858937561484086673504353688929028223812719424178342022039621623633768074606719625436016843426692568613013537302087198685377380840606502736385217571500144483464434720373087047225070650560399206017711375292363059864177303233821396673595303402202390158709796171716600960484401209292665791824500939569975900293237945304950282463828331413346365690171031342157156624935055305242240069376280277489557046121843888511973744804654554339151666422710810884538627785569323456774699667657729678384594022358981189620488703873829797775751271014060171774126145689473939018852820331216088093472513779314194237328273321293396646283646546405725670358441969563821027681657491556307669169796403860558929523760110657381159351988158774886455026692971186205004882455526086525079580827860766589124814312035474801194248770741867881603337027289500985873224437481998378004188989591237216471909842985870707215352223732974049143922852503751008786289272174494151103903782498185548598576360037327251071883683748003745369020195746515232394906254466172716908792192991228140452356326029949722451182253245098119006011791461421743480264822509482393960672176752615707726070452843364139051166691176820661665150168687630131381145982332964136906569198995066418344333770557893316693914370998132649628642324941966346717259368589178151918130110526915926956348489059928954316130269649307477850886811513813915382906802245193096889382278891437341067900568105343550590774115619624255702460512186542848013617174083649382878785878934738864426228015256838624691873836761504300420999207230684240706762700126913245048935102407695525394396193158569841455720554863102892509294174317657177387716043849756362473976783491867733760244488798624961479390887592303539496374952486614039012517093754785262444303866518473965561926255648710095324816160152379164353576475296960682666211803423660598255421158199083272103561629564925023085553626905135473827952611681490954755490876721359879582914477565531651260592516989826475855285381292810781226196927764831888579500871055183750802013290721876206402083125878662917810170753306151948984713586324777657169261811465025059531544475784725709021819077156764407398180534171620543202306778514894676594516843968713915373230506337427196187078239449665435268415584438819934796416997955497200842316355905051344731166462886919990172316144159527940076327324192743155427484106852412940391654405643279409371414330029170414304245502105655338858920129785195567838453621291732693728878560910150216795175139938935768357924558814689614178401444370060711475561663769384122305131685947871734350384487868461260478622552279792507172686989360086836079573165794840200515959401313468180745238005271393655858814647339410950581484323973730706311522270966172271184218119232711887610257502520390759359522321700210764881858552088736840142902904184431983768139662978155987642811369478560812766434058960675688400136735233996563383795016253840485015026281504827338895340968991038451567134136847574149102537917247795969353127701693978409412724397503631446896668253043764408301972558068862792630183314496471468433363883465461326033362497535615797042806430839304182459681720050908235056507844934341536833285780553254344411944518444826576065279296366180878672161539467734481638572247415544930774760737488456304824443434231802219796255052860626675946894815781860898903845642790338448005925369350244816481317958610085635331823793051063223408901483152600842614388104724034497574122507085266194065345116611236185779944983185790970499178687602821719434186101023203561558294516473158836834334026381407163733329016747466136078549931999436634602690631159120480691717339141194464369970462341829101698261936252788555965212956923655513605535917522576218253601993705098202823014961475336863697785345252620100202742627114101468166655443683881089509625048967526653534685872542752426108206344883472815898503376656813896665547215507835089483941621556597489252648120743998452170266671771653792282121796876648978522952522430627706944426745080885408219774565277193288601325252857265852357581237950056507380884578789541051631135997433197722786985457674839139890961189453299760561094303659520445754434066082467681456259293384567878608711256787094634597737967662211328732332434085871772936559821707981593244100478478688126689483538179107293054502364322871281298284630211477728701578101772816829818045197800224760742393843547315245748896178853563341410745306736123859881651018768344872772262620527786068235269764439808831341433134867980998989107369704509245512647664619202711552543870033081280020592576623648821363854535065113895960227296964039295448613681013122122972085910780613044784731041997693145554383075007601196575597782694980309943061750524423510752801787792553989517498877972642888620527642083047120024320072279071397383800857698232787360808555947260928998564303865927759288564324093532696611715871765870249924979955768941155840680097323018981281516577712884509226089279177616213582681849570827225502906484936735088034839930461108568441811361686189128994271442366798448768329451531933324537418193904027976245455154482498067284493727525535354820686817355707396777922028782370151926852559716763927035309846235868204641913705851101765802749954114176970845242259843205659253034457489822705213626275549371736161834436487680834754437325326205474226977246045169196145141518366833904177317749172743344415356405373090794536940328794001709448454004941066282043133854657976866557621938834865976880531630053179555823210586271852941927686873072046928676976665821214983281187992516386364509966479133841429035224723613245978437673211251198197542124587760059069951748780986632930100993878033218940859799175621886128927692591866350984105112049087097854999483263648782954162895437864599665876360433956938867317390656459496841543434674963000826296926833139221742631580814094220967598030122096067278564656997751953872546513324034359448158474422048008584965255933891145211681724326334973248046880575840763769332245431965657532366938428203311840729104770698949504318255944560068916721948423189845050073191306026987978214558439254047404372903784398529977223625400415617607488070334291178392576493988241537564333958614413717060923639036218303741539667761797059152450453101079203154443256708157076533518100627432011586590335532568701906043632874276102765130982533752364972323895555285294054395148095868493533495250301890366284804775285671228035186370503834893877807436466984361296624421187997718163895030782370849480778702530134008328954780165396454558544878704070652307303227540606442785295893985113437735018865901526519803570401334788436014093944115502568363280653528534615543107171498852566757429261975455761123985431343170261321282920895718557145006696702548074844979850812547513737768619010149237041913587852715456963760305410661577012481042212434419727896722612592414515683953179107086687997105891986491871988854488247193294676732069668518637462346936021299138668855522249992989453483787767471875816437657033525450530748239938367288754645602393234628792392958427926879496157077747379703457980994045945749192683529859766222280063542598925593118494466490156370562240774011081094517642863279473431714807590059853688774559472762882176130241968282757281738892134614010088695897540490169950018839713439920333429308016419404365533180903913465829336773865906618830350742902017203501935818349179736776830039283463187832526476822295212532939832483613824039326764583313940601667774795089487766939056929561639372981035951694549571239624270997715986269777542307404846714472129515550462983524358543938782865828116195616239060279333505576431747783714732133247899397755796723366953562725476271886680966754459695339776329176434639368166478716114086248676809149202351717333853209787670325014488314527197492169160209488533358768059996999626341202348771101933527092760343346928768946936486282005963116076934242970032896831950102957295610706563525580793366270587701295906884850889360113662560722838625781668677650470836535380868339683259976351640545788618165777307735744541970515515914890667492123773046386255333839636339668400805943315274623062988765709021560416975439983302872180259242860422658997504025924157089148725975587927393782576289982195150544409157661212774724703142247788572934493177547171543368986114846057533760546468827944327292822412557205035079077926698003562559290674354708039361640577249178855714014056199150506083014351415048573556814975046981914854818752333428024955333333043533097745470412925943942195581251511263617116415216674976359666188251863872780943560587358029111660186276199460585236536287468923258389126249724120887123240657752106755109361663833473527453296468183789308773704795151837268703335973539267762531427603877009811684082905754866036593701770296044270715719439786489339078394337015971421713011084441000644166471147961810549032521471067078785037373174404651262082486987612995556771918318080936195246631811200700571854218948635676441892791904801010711902185917651248566638046560837203627028280407452073867686867386578864100440658119901935192849792249437686625158499766788773345087482493677714897045054749581378230329644445146749420033212125939203729861304172632476379436927484844871750409969965862267323698049033291660356573542051403582445343376814282843609333084340531125743013864049834948646105963457909792325319655426134511115937429191232697822239220457266172495301624407715108524187901523310674754345544862133093037240789730511593278418134411558739088455937580600812791168411133240992984639224608668524192533122399372972862487537559442878678309158008236391686344798329292608405261058066766422713908420945681788519159996472098498256675728799186839935671505467837959297588132345618880238790273280352656613919385597991327303189360520573126756121268804314047795882166120145986821830829521127157957896841944818120559848586889420647992041531448967197883992269694506007442909285434728681015359350496315547243499832414570743605693905856465866461264585035475281151106855365145844492450594964126180732565059053594091554632682446681287049250858311203272851367321513271739300956035419224027488950629417904085809989934061959975710291017897441935968334512820321127198129944964261109086225731206338304940666864865535513497379631502168357866490672800868771488686452408229586260481534481606286190925428701319881966274510881327242034538051902880360726676328143136969845576032154098055170198515205416326061841822067126122562089504619708951418678985216110888906095582414748649958781585895023578567485134198308960834337019966138758530480925553860251016494709332291683306621452704438841075852006498537777589643636927693225191612513847005546163515621293695514505035063786925628977880566896519098902618027237801161683604793134214674282150084837739429865547396692242344941099377771286933295136488223182361551308178736922024549432039298127016323491410680160218840581917290467012011689129212644908566891245658570163899326782663847273765179540779359476313311067004651473588799443470431069599232524812471841287176424733748531744646987353104802345888603777522550868343432567313486694289503316842070103732943901287518714403603731734667530724738121929998232634159112687753244686728642648380077538955349909477312827285211760631905925650622505943897889812495583004383310704215938512299228392080703735601582586338559959199286935661399173987991229839828219573040007342680986289714198202867766261593696204160485919769631137970082995661564537578002914277695476827760183413383131426749642275600483184514774834165985061483115838371200003535678350992787263599085043852960264198621038310694128375909249428772081794668628620550688480778088865181039567151461225153459371949031206750790600712309395620632218454093687637842514104672636851527146886378803427454392506846175544571372215156718869166023839292458393613368473407384049317336440905174624186657886600901952818495184381088047586925299407806769998848484221979253939008365248724776664539149151174425085415273566302903031335986920198772142041645889851611874853705131450811673483541464016461516424720486949277040425320922620135139127201112205187592367184508482789721065910660262406143449479543039627202751770913998362338979970778151906122806545479603212101718012531076093618922520214289924444555411795786451033884686056402103780655510263960143870923015654498520469896345567484040360011919989309018605441605524390738044846686372587685089631123055506303696413774365062886438360767667154827993477151325743835306767170473557466701234315324343291385871597165224837333952098372579711987859202058059469889647515121604332994749201498283971616867731469111798277257566802656739637368611370472128964406300330585399523896277249290111735252943443138395052965976054137041388997965234421459043495301017011292018292476598073972431278658249893942538518468959505461798327067582717137524195968945501942151284828483685778128430629861678781541910917026033289722735294602376449384194546628805568190819422892055219313841213043798645071115044972435947664271700621886493379712480657663304145298534407796351909797764026780795384495292358754283977281998864252884896503213775004107169363358060089826110466737864030732297565495544013792957204139598550785443244894803612841533269826230892940714633764775791657817774377837871713658700972009778882220263354230784639082555701700415683337109408303728732788802733458321059434731411902032606333380965522162231940677427518734714724660699526494713965305278453474177535541079090852515025147112738500725624808625413701901486302083176318840330675049088252402813038184904757041380583644879906875915662327226314721876637886296722105397374816188936059873146210225067118455107445848147434951110376510551299960253610931666179649839571889621508775469626254897064416099796584471914509865108434593777745022509092720299599685511066425717787075534396075843109507236524166510778255299075842512264791095337402310107640312630937069630929602369039047587181825920532516480478273939592745825554301472944700626546521071707820529062616660345590665926510440017282333711170708144711505262679367647083477847672313750211311472473735643942723698321249048783212695919783063542235276505698571571091257907181168253393360445687819099098347893685968289656157438293141800531651547518704468520912279262443979757023618875611048206071694314260989658779627540429855942011344221515154837258797089201783389606568867951087878117737607553699254162969023957733154198512451521274314253788134109373214017143533586712458647368285606341729292312991359969813476678566218984461345192614285807026564496757703852818916632050904381345721358424732385442487061444498564720728370930961735388404009914569196455523784630805777196449690257650671830692126870190048875136005483913630665286691782581305971447452054055335262813584322399123707081555183936247524843337572620511815266975116865146147880269019462034401685136842215511983144420892393172512735758071637330528152530985411421917939775099090953102395779062031522274418266231295715205409955552217431373343342444837573407467039623382276285228641196037939328225295483368751792112616812704669496984085301780654568803206471251077898437530335827481977155915815811446304414257783600547896527118076976580118968284389648884045353171497498596563515262829732518584011266348753107608757695690658819282508251820326419238052986721910484276623009381059024111723142615650902193504304539973378079568847346647109154107419886326975206594044820962313541379829392571277775291258688795846003918093481385385961354843208563534902775519139647954378373219291129522023227350915924054174797799585127147127890684755444806203706214291994838454698896156049836829083185272699009111527219057949093899447526529926588972880940167684398207527940936105613027511986796024768278356724496255641601860240899768078537880560265815915228074848129793929467762266909812400942067621101904629808658076459254052137059348179218093140733014134541505809337037749668166464599929791583626693855721587470683653539255108508388534369121590882619215215392019925613534585052934932287137023967777231940075831159907670577831961816543852471470124538992274263778861615773067473309273147841331823264986595871162942300636217022128339582848917455153511378626976941029165585742718527944169462972207405661872273732917057393639014860024118375622680239846011067150104568561694748058437324637365027789084533452322516402385244344230014416994041699294290476599952400254104099472542890374782419840199722600278760073612270825600736979124559538407850146235156535457533481496201016571087630296580344280948626529731252536160627613110821393123701674965067994658304320443624506581292442946365791177757968321813052844433624697213301296906118904673208136301112709111953627658395130660578192610012297263703952897807680894577925803934616563661149680246543701189830781008826438117027751926020250346016395023765461779741983570898847232395470183581738375085473622738892758693349437563633762206993996646190335463291727131343920961891105714320185577271540212366341660974478370923786661393251628004910758173551482001095962484342764072437333099129798236152176900118786825456019321888285763433983813212687335434789509665926456212040009066779162525600431998894922586082360652547195537356706988357586505403177206694529600274460639190656203697617553101548637523354907134449718478330503011079296585548682115210127608366600834420064359213341431632913707179283125583425580765585899351640958039836198566641297689308490346280630218102678206953709526485483482679532753324480480787548739796481100606462529544691414418065398448359973529957130632345784664289898814610974308447986207457164692331801392611107116362087694191137570722237669007996643116384203662090771566659799774748854254733578621082121286807751775663565548466174590101422757792704001030616476939087442220983984486743462430565840179572240628458546638433376219574369434136794196455743287222070437345788939749659075875148393850825896405378056966368836965475408017760565810605397524134245156694302988420640722179650822493806545155596922063191108994736851841837528594447688355721533883689881371591494944871062334295527142955180659508263726646021415919050993348215847132746330967806057381937258688007151041038518160438797524488649090197338298120547709754438728670994696217822266740144884638885759694177920052256526046583475336877369395745397254527050110403720160549185836188196336707996087810463301850511364923800488734603706448079610307066633333718272563176891614668425201299392472929103979822119921106418092195060094630309479958592282680632241515272634431253715779360663117555942655677921723038248298584157729113372890138482491268935384164261995503915447966951899766057028558464248054510206494900794545442275992186728332452394457827602151423141533052616899785337104599454913308981231742564199325056704318514111305511214870278175394053437688049960167219255413929172300227320544898458409235341580860219532663733296750173151872552022173179377923110919326820244244548291431415533182089809115876961484626882289359104075582014428790873533281467190625246565118308601829172307425394955033003801559412222856475386764824104422739793104674003119386319133067799814190229875400515981136454590562467081607064586062081245989268509694978893604828167160125039880325044734466736069435728803490859163665514321871457866028417064331855734973183716821976918507297845720701957914886465042945990182985162564871896248861615176262852908052040508566669383957086325005152430782792395613524500988465685926741303532032969652045124508880621796282510666519886783547426404644476112077609300444756439253916552854335592996375352977359308252557037689477043050653057741331543166910830029431476752199920989279966267985898051586672998649318507801812910829524253245504517808025053408031737722491904786565386393214743949441508446346895706152815496213897713702008385085039823205786069506509778233604467998130140118371885952261435401952146138009578576480224784167696802690518353000954033913775042162201978696457104227021029601995697317942283014245582430593298654026031437136436943719534370749683201111492191124216985716438072426019041261018950387587359376245857993078903457175870223829030666800070699149552917294063901395436369049045726166081641752388413863546234701618815304240794961270196628298798587644183855527195472043151473096241013211715094436332836729941206291981332815524271869765600072029610758466666295117396524545781924804676996951452489471969511123455981606735369990969820955728431641526688137030122593142197928882417623252240555453592253343134201907411533424982833998598005185598181297489001341963847901011546309393045007444494870992683185391326718368364118751113622470191714466073461481640971951596547619346107952564320115507694770505328557501893328279635356691649807460398735954174044048744468426773300210954602775455536769009337534177207759276279789914659027627879209189039068840890049235994995685720935022705868358037453455339594144017791020286614036995704600865913917418309691413922887109660567646313100194202566107466949805659593049680137960550137917224336314745592966016673844078752817895619335393950747658570289422717681451887027975053624518360828257744606389339012522372027618305947142380982429624851030613874872022349793121044283382289312101555830767481901624009262064718513330273725733002474381559260934659540116188289605894390952254796523968831165098698358482491624194861633385708741903011199974402040283862075168597117291313477303183257304902613473091375999323575453986788623789651115062779472254415458500078105392105355258533887541877233185555406534408773871814699933565567907921735842381066380366893770046171791910917987893307049506012114875869954565510287952937798886627185968713014415808858425079554859248469880298019043212961186931650995548047923486829586374949967149981912437607349669790680494847016532266076245758168041837439394026782702145555930927053552797322777188865843845464290073663547810988336439023829772970768032456200005689172632951428961484679230835736192941067985869488366398051498021892027125039469303463724278177349885643583546434980076501898088195275637471231635955655237683447780760224950926425872243258428470304906914220311774700225755304815108227051379522269835254238030532634230482651784468371634003478501950877484102101750795722134018103187111788773035019303655575280040841332355800211938240902015668719432860108614497570378009048622385309808523491603909223441425067878493799647639804615817720206978342463417299760002806719709009952516764813259777919829037997928355430220686608159227278499504153353613216393398055145430999827837674633897354222135832078723055216725607510586169020078775202883716562172446364383959026851164184842573800713624943167814090861197204078361758463694799234248509188916146924315688772966606891129028494112348354603682229446529699808539197962440086320762507358585543153064713567444189244668234397772027590445770942804129233713200663007215168125573887203875485463218211654554745294792113984311112536207268394235448065843177579628276484675754671204868912232477858713722842254731934521714635749501318062391938079642063904139593060198414435903670456407346038063462406978678788386136853066673082459181934745807871085156542111245191987991978552091189363383163405373755243553574795129481719145429667096280468757038636676789693772885805529554904405193708319712411238030658183218142241523747808163946307418386466557496460131151051114205906294013280759580091782040025684003892432907393099331914214078726092921772870719272902403179151651377869866830914777839884850080169936512473593307654477113115954370150767054552898792277622699561957456701522320868649773765877930957783764935641518588060478255356223089300548718466114391700520670981735240374923622713068036754499558827632213729202226883108419520410801875330606765048447597377526176233965522254208288474808833709538165742689529533589951756526141885524768558902442598428223328448022202749090488338142332502212976302156152463697688620112101142580495028923857974228305469751658477190422190906152946272192630534830582777401720063405397929120425162268355767587967090374227834770343546699830031635450623772630240926169842936527145244320725898917979235064568591666864440765762395488987368394545920079631498753082323333179261805836530140802178080569311709458517082586950983868306447101271300955854788320423342862834919448426335927322894848301448213880835603526216340827626005754883044224061351510551739534170861324487541864516646700407486963779311221079424141381221808765830564824551701388851881309294365683939537970532439500076643023755077323180582966338926983217886460122338704759618937353500219496136170442927465937582446311545033059351341555707794960367162407497136547062340863023413227543452176391873631908928530234991408905056170229698812034491244987383252543135194736812069487811273626850162388486683024034756675992009004348135923941451588181459375215453916325662903346192370359800169547327869094394549627229802230259556924651980195260132414158576868572911325107497781387215692087108374065409483539355125982837759795931538133581987135968864139846744521930673389499280364553897770707310823933679458903662743564289032488490783953616694741463903698696519457307290536248239261438369219552991920737292487771240347187647280855494143463728533080767706173824337077243639227935978201989719765624902834160393911935661233053943778218391867881842330520650305031139195656425362393513855629690456677736094057237037311268296646733573561444629351391989772722715547230199627812584435393171008030028091714519990187678624242660676621561307403889421606068148855365053953021995031925678994611690601577984788012262125519751471713946341097334923333583340076410477392664499998097735474882912208146151206927415264542644762065058836630582949695936299148451700288615858314942836914903211586617949394223491546675546798920212119985089380414338939007073968782255021868624915510683344984891834818934399410047491082922219272600054748041277859101387289762963610419518258515997475232685248714678675320366446393418971592261729254030791451947669344905791313963097171616031786409607676324345443554618903310704380778917161369302671826711024092695937791430784058801149728931952109445902593376251864341703826317732223966195493047531908355073443001698108326816306505588188635318508286965820577006979334762846365972858125222597346585073675928239339409806752269878133402545343507232120373338128238452321302075705320047288527717370899631217559141144809432809274365121981479153570626532389933648101922584417396904148319410302484817332237107083422402461145477535067094816935694311144749535819133449201869176475899535280692715044332431626650091856059369585932562367874408953155589717161799987492518807480940167126158862196919345702377347055207713197008539260044344819261348888079777065319222574421283571966859495971732211885952809823443490189807112859852403257252562928128522189124557841888259366547067049894112805890138859523913870913282362211552003217879991593586198228901802032931356009426912455539707697840661880674676064282975885746136617667208960503575274206541977505269057680961926024673397217941540283157613296135403919654989637250456947402587449923252080567783442748808383262891886658378257591918264575044864024962119732622321674202136779335205414088983387205751214519236600295238229764119550600546733524073810092038818541340241921713942223467039785047053477245426639963236064420682715933320011653352384831273648839861932242176543823218809599913701159925227300362258138990892505780504773611462457404113140170671732665934776188421121242596308870083230560025208388454449769284887601558425762288203167479627770895025989704007028374471814586596843836768378977319964378980718086744529038729075519333959507061116551724792038555236227233082916409404584718324930537402901415987868851540513171419044558531392481561064460536593619200775438175227939230727032880864403113563594745822424385623234893690705834772818056394354473849615853754440682916696705285103683626607186009006327862823639150857597495091680157122074378153233449151437879468711835797790975062795461352189168821686980372017080240646901137871097476881093462804046993730864501932057260796793889848782646262246456594519717902170786793662086313524147798637342604402935284468508631380281319818800176658580112557206304134397556164108240405387751886003173754870968686103885738431256342651412053199386081748859372329056119338823685170277788239607407909233847856952822954714017688866239695197307338669947123288512323317473420550795292222102875858331322509440735392029916551544834664316961855915139620334218911344263369994647816569704161662174978069958409552598182320013913060909632543542886279941069460210215087171891459914200166131427730377124796378295394027669315987179789720763299390683335747386624780086632316560124130928689364102778640928733621169802028143547707669842251356101136307622239478781818353602106432781642546502400110474154334176238662970925761830002573678192772011480820286089612711560878974040489133733412226372591564394784364230112098365417570447661916169950711942713387972061193788596974731004371203230499507466128028194780610647422851043260881417724866374281159238474667133346512670568223669217316282431125381781249812045713955386642633366411849728220654642901264222678782987281534028824347453858839190069825140009729482278563076496669114234018625955971123842035163797575412124521079997716542244341594432545025350092080040769936886816331468286573591014942876838467337200759082840699683300188475784015133470498303377179918985279621564652029551263737713354672953725045654583114443067945583126681631614906099225118696047164382352538699176411525984633680816544256397263857887062707049093320268947621317065630686764696730570789077281622500534009451481112599612629938061498186407138569904359257011712815555448513555618980464362227414766483491068207443213529399624491082250420800312418976726334582071960562721438001931291044041546565999765385552744726299287050182726439802115283537453396403332647009726343031392828241680878188421379527369308682109285931299984808890144908128358538729404666622457339110465625791565260089143929533562933418975104208359315831241883628728765072080653614251416187307066612471218270719500926304234041554939449893383842485024227025641422396080919824196285291928549252542002065589140831921417572257853435026304960443826022297053518139991002918014725715766132836036964111286729551179891777904211258435051980117076610565430205112405026274289501429661148006005558843609039465429144087268722915705304134726425959625885965060977651788223874457620177686485438084644930192540123161465904599468322295830517435036925429846335830272332882655745226168557102371304331158951515754867104963952667143915561710359329666596161272638066267948659344628283968315231981024023724075504223674742014705222080917678814440782068228271816849075225845436508631268714646439605954359118719557700411143112941743098326173588635110253293133564538767264925856269772477458205327542092329622005745690552293645797550566338118265007213389269659930023664025852891898144476746207869597461713590594675047189433779042603839494847843098757506792421091994385933751827087538007037156173764963096958435890080994409553668073845502781167672919589993627975159619073867752849704373405508274886337539829715878485177694762682121889844828945749154426047784092977249915055518829078231771538260580584668171009780286552941550210421002856495517230599763768360861477328129235241521927357443176121091896994986313233297285637941780780297344804365007702443098884015699440735454213720752840182721339893918604067951080797647238124359759766508972742035421059669942083926304993163185990148929671032785465921445102399344265199485330763108987544900213747289667525864410723833922027867122488655238438025332684324992029105754861166258813857509108397810277493210864827545537550590648409585658937932174476676626060178152043814588527562305653069069616698013823720233934029289501495450888276365243115215556865037190398090208066461687372014510971313737171269380268625062932875483998074525778772720621517363106398383311230371229639543833729650157116288006428226259204394608051025016847812330959353578418233131401554616617450343150184068405394322692342812817436288422752474819663200954544888275718508486131418559764503976815957878740678010520253697876450371268867766367907489940699151924968674837710953720732580798578596298147723704931938805885380089516292320209524767835731100524381466695020138125346020272092930515635660840660889655702665438690393715881499910630010219551541617191580143606032846475767336619609250352899623318784511698697805997123832789638246715856052168225126903865952131928716672804031882851978132740176804443626913124497971417128538126582203477218561832955856555205004492434692757054617598604744186804284588295604147811941735515856534591324170295244943874208475191630857749178617406629124237836203790754024451443936568871403045864974178097863334006677454978401142804487578535924690743963672798470769992703096539634383591347757595548401931831462121996632351671344618364336867338601748427515599944550861273788126538628517657373622851329309381413606651775319324634467930354462651785055806081931553591156859217023736394782301286528711715120553303688392248063919154495823055827856668893929791972192411376252689947722748615907646787494315725394995473743067318652531777466545388965146590994858126415030932023426942958447298883596643678379518648067658508428297723814093399139392836050236696994314048561788410072861850710736012251065018821167399574005534325997536184961630748354900606843065868544502745287685542246325123053583617669074089619784890965435238648288738347433763842682380224879119174260783748829785446136890439910643575118435801998361768470293615667732512858205425008389950818358015254900959707191708147700524985221519760485854748193192218519111796796254117258195176883170566872123674473684804659945763947138138304202496401235371279576425057134286690407765756959941084131625207451394888584609263585183883742739639006980315572889869052485455972196545550476464969024397886870065916129408194976991919991615947796850359685809631905239924594190391205586671311447311289764524841785451722026690590967948506030110501854695157239618876244051695587367049672528226288216236424731385016920240267589711750113209083054275154342899985265744653516329108026816159076999443468801614995951884967057692958188134285146004036199560993550069987716420304074586528028695897900762578949902069742882629494100801697281938995400426442514434475400146242853435459129915632504211008682432506886589591927536977735334102973679410662781211936905189388625719997327506119693829890623693160319191224085958778087227460670235922739468705647872331726851271480791836164335747264184367480967170595802570880479601130384489396257994754023785863457749687075163697537675765635002005623794855525085678576687598001357696296597599331474657668467199904039699495449426081106720302932907624424439335378761825615186277695631394073911993985204738299395108009410033703250288866741397004682345029360330670835045143389074252526589323409093846352349801896827931061986644948833472621654627546683311468393680892607099653715798422362191597099565292095164823413788719139836570583214156600923594012993795364440467302327218414700302225472262841640855350262462164297210024925698354329329493086333163749663407851164113822707767258872817707852180051989354224599526807510535248173883316512524023058984051773067467137594869028800003900056663764051157372446031357088506743991937369308320297360681653580745265098068853998334276383823498762923716664001529660349193608358799428735418003036214462840427381766889949988811944460804988874663494110318694634987124552004813049111473480319573903633927202567044366852368022948913563244737111644935535938019099454650291274608146793731342417296474085790801255660564803676893170396250338130608571997710142419929458141990197263246329071329752994428582682178296818626519896485991608432738712674174745277755549025039611283447417791064936261322924592808518145586610372703224452132358461271370484528891668259325172381140874650190579270518908241228012469689899785034754139531784409279242359025286753291619158192092002073089974654723384157147210237092854853846614055401666575780374059374293944589627005410125970456135779213938685081408839245506598335170932286358271769359951770949335084945759365015585518256095799353400490067519061476941961307263453664284581060367591213072657248903460072366567621890399943217793416864382392921326307238652907030661115589993079894410860086003773475605202565591543207223320383147482813274271874301744740419059510430999834895615253837200539785037587395942311624526276020102738664044741563055570525760540882914026106461907418970897218252833164371657081890948420276256168796255973758528864616237529800670192928044136910015859907045062194188042008427512837057477460219204951661471136985300717247344476795665755124899086969705547844760454602981613622284493252855405391409298819729126673564214633669092361319712920602027978741310136208876071785469522942579091634356602896401883959162914877147028266394804909891143863033337810853140862445921966089846162621575776483181148637572882442613708502663910791189408341070036364695381318372058346257376531210300438235519126849146568374628178423680952461212330618961980768907249525220065830459554202482875647222831745176244959093173501388308536169979530874500046649624648134770832116497454182590774472751219484856804055956525618031239854324868536573504806452013038445831614348893236007420122682555878163243426692878637492594912040041450691398912358070938710031174568451751082871170612508700352298523528306142867085226692925010537001040554574310171552363344125169074308731099494326747736147704140855498472264938935501204265957945347090867879670763274922027604541689980606388189395750758120499315192649319554697730122227350527137969113927028041980808477389184132088450104230874286519886497583122150352153096391539373130343599043992105159331310522936406734346802495667215998107584406178265822081684034375700219636203653013283904662013500828756046246478716120977367465919211490765380625988363807465328664220113171840633856992010774938441582487504955887020007960534731509985469015406061757819018829622115278140858839963457349156614609028511514097730047390033208400947906321362065372669887316163414876239083615919389132916794994669888225303184774464821772919317684258972544512685345635553265549284191307917700261742572163144987435383366449302604710594487224262758291693876175487423544072448567090288391505575263141765833445247147908512012612044275397286136496809395649046183940287876244988153467940211489287684206875497887371019369334193440420089043449025915691474889700602437534416129952405704820145762932410563550028184144727002855322280875539415306324859813555634736522062082271605686337577035435851306140445863994381361862742671448960814657109409224929700231086859934796189108224338339626314456536847811376696792596691714230623620772233206819503104507779259061437131316078847374965372502985630707305845948723675360795627463813938922658589063967363540013046875096079243688867547634269990495237688498170948737489500028564091163540814667036070154158666799094914025492723385969728208427375427187618195506912813153774142941618292035668264286915623013506820184576245182305449729403883204796533556653803320644169674353209921547148713070175692602469287857879437351447822600374364416495924244019047446087278652632943805913892656580901899483562132169139768318132409901753360133850934399489933853171422324596650161590997653595582124304225748377519435273385313273766427967840361010075870071263714496803763180437824250972904669191317987398177232283195127054535666431393785350350196064883988168273916579658990357528289133940666144651797173827190887649604188222532174003615226926385664821622984634443078882408443822726259701226356020344907067552944515254811615029918826609220143957610213254553086150187678221648668265990060124363852936141957096369172324058132551016421978002360994447174112016400158507405120499093079190716970240146848776720145997235936369732841505920491637075218685080047089748541440954438010120383885755473622632058582577358329444774736885552527886866025411991982324054709932952189465645867720166001924719131493287888331528724711395969119999454849947523156222254874787520418936812709773626769491899051618888797032838617935400545534216428190797414886811314534692687459945216369535465757015356354454253452834337222187745659692413703018631048326286979410209612272171639487135164930021831670683868275502457597759281655413148061573448561011085822857978649263619214002772711189534698963645205474369025553627905274217975047193802572613681491772861817154733293633947309367676286021282017121031361426872536946761261567637060478951136503606470950601413489289276382300759184646710989008423880654402452724553078051348116448194599167733454024436845992413167667491771471544986809209472455695921832490580836619868057080207843302471617839239743606476921599461232064857219963309576919390583984799318131741234762643869703406996454876751134642575667626469635183736867301709120286206692538577808101380164161489883685052467958154377642206580038998769892649700168401801767103009371262962475619650022894955463389031373741049423489976571179293780575356450070314598241535188601604360078616903201937895250992751092515814224594989721323310408734878181765699352333055978196440011781342527512630576093902896133583640729826861477613149503960551807483073132094088272938335066118651669859564292624781654341711880284343612917067166663147794790452641320524487753749707869614972362412803441544734307651564094667841115098486803704876308085261991408616623184750901743537491639153897934536433785546792828723875415504284732615329332265744757443431828501729183394368547875604031970513774473237236803759716608420037441679772316437736233562876865915245572330697512982001408769831306646222562905652262725038571967986821650344120607880615771543539667196394226258561757492463942915405168756187726361319492954518873147080445430045690365802328099388744239793676852103300369105115731081774930565511429472236298022690754351530237140713274423387425989171370710345900885364363560556174512014860272589732131797869665535553139457304737290424031782708946251718272210761547659083860299638175651777319567733950442623595474054849672833496240883551735223891960180976718864952077372954593586218330253332103268372965946622548252490843550506308396521840121211553681235452449910852510015164141961631303287590854954489167631982661441968603301128137124993316138981032234325855611421843535633339791499712268180165629832890205719610665934527837961935281921335477458800702046794765187839816165213040675747069100187395204824720478595069366919196774792603188212213697019218947641882844246744135763259841923090467958776454188478966886111999055940381379865532441094863340221213438148363218165404862057396205258941922067510686203327635459853061989414163339528822840615547122758694900781346499084244446288307278339419155912081576827971106083370304146011368855377188007303486553743718364761937179476648425583741847364237252824757025691082441877226230402622077998591351995679689501253241487557835284444547850810081607465999279793008790209874875078755223141069910367803007628796694050368578131135212643228596451222028991888272742884183211782091893076309130343880332544271292529357132820351267483697246174562857759389541972109666782400397837939705459815815667197293595863236205792036467667716449411268528161868500166999367002810439999317981562510873630372920917307995418909477992952511594839119305905674260188234196255073722098207386146583823061065587406575627481968868634728489383789312185775261477641572769652709228369427785746846857131369573755478520329073797945461528913372406268817495930353441015389441877903803277588187002996982175494543502872735128132787122882936815321936183185870992352535870733155164467608128127713095988995339956490879969367741784001800025720530913210186816967180346911643043404862126609964507300152740780721589026865737249963733907605820982596716859039378561680333804664468324411658499610716207120695837157432103758939417748499537916829069687234534885361246649076276389163778158416458817469874240906245300259147505532090848490947894516395115590610299863175840261172802037114397624322491647321545010026196984538964276451010366028679688097351569669568663318311523410161075878950296443065484697228975730286982006922405060179292006385887813136664338365993461991958352050610712771330314693748789584176869282426408358203437147106500865423870613833120156077391853201244930437874010985313737144715551656547496081621145573458289093550913812145524612484584587587209274152398729555942893276282018425614670442445594039103790407789182061839391686848386222298870032892075298432505245771908440374217720600570296857700815491730187152338234028100229893324859363531766886865977669694602722204808941247828316744509685828737699402556218796424766785914759405899152475991103282077385694182876090084934673124625376913487778484151727110457637064612493965408716105528579592607079133110537704691585762361750190020201191237491672250280539929489247017151135055193468940630761412889764667661923416389402812983729358429231639476158513278040508982664186653563141477366003818079258170621733288128713154997421850302807504757703508846619402461710877987976557871480964870758437466461090194095345878482849762173942209548224467073169423427114756823616787210017344507365197841253796292618464321544451389825826568577535485219711362404276370600388048609960405900250403115841535327286233774586237976207548263820433820953110878161323576772994397166299875262222234896718937196261191829226955888652252545585125028364646275011616658106834475882256626706259442898504608812934414157079694729234572592433834101783586251348269120039431948535167283293877144744184786325050551296013376630049653646985214401772864783758718876128854113961086847337283758722932553613672263425598003243198040461589239378936514965722804112541005562677752638144476500582927023629402048911700526044052910878384814939017374791368753683007597760167138793746777513077783245316249568348724223667469440350763203520114948445475311634774631810899897467260938403020854704537030752199496115848557818214299557625695065517894196054399938955351377162953189125506254381429089023978888346615381340221398619470382506336924930532444285302578125898038407396783112297271735139858980282187745827923273526314082917964464376252820083035426423246584169814825137065516270666807491939186869889453986782816733757999932764753941261815964593407830971453055836807903221924091424483668657725726765101306130956660100549395047984927022899439274816589286482852921981202736645782381265723232237933988235694468016460243151374198853938938150737933330542500943426968922384435003226115763895866775404743097037969440239248949040246118292375988154872894284912310490316112452264208453326903705291676209192374453478307664002171913924627649482556848177877748354254637826251951069019952158923507186498687731027346132202195463809596675083985791848147930833374786576528363088367289092502520210160409615964436791458686329865425152959808996802830375244603178300104108596789868954675575675439311242856906694643229189617783410832469788670011280528909734657280763614023993183390787235763735687170904074393312132782995737364959524768611499593488130146368596580113146601204045742801025441928513671332015324933530829971491368785187847030146881445141391750831847309573795916508386594166937765959028141480430181295109516405413652324589482046628393985710847326451085482685468536422538835245267279076305334583336048995782464138498817950121947898815731198612501603075070286236713991249423878902358821100458747285192998074412233030905745599404595851027078712767308920973890613782798257238263306694754503281478494943637169205372094592667808990042732117459143262339811814360445307679425884542059895704568814392444788277141000011520408823023026971872125372393233919150872794109280914324539429524193716802947171191355378683357515668015331352193094465895864682606210281118318704820078290562703332510337589656831633425057022475084308153791045876193205779813346516313582796790486577132582673706416707635835398432255740170815459374874272346424366294743912919612688251473360594132390459376486631894232172423019693389532859800049996284755225061236632299883412513251072556788520472436747857289589414065802262286793584562638446214362245641296100602564955535150287000134028430683284533516611030682419906675518629682632831757778691882879788233769912294620759756782497313664608694635731230535733270450444783180669700231959297269832497318928432104055277838677652718804591516263899115197437604608355136230108295265462183570395436474434945724040425878137142784803795473596301956997654348694871239321057751506763582666785226546653592938705079460611581081147821719513813891621860888287382941425394106658953464950400101123092500119831423402555292766833432380271876055441267440447734093478700265698068238878748639352636263117262552040695526961876727643478102381391930674381184196839255056434991277337521703830877885460496755743636877427903180015140387693006887262337613600756679055406037223605695844211146591863495460480896873045443922390553996994146311711838081734254077451612185544067121011772121511990477957939753280076240470870840424127431483680113167769689460994902851626717572785849476212854777518995537385375273982798868974021692495231427927791308293678463208738452300660957967866498947079873352617810357261404793382807578805118751814527626303272949760365005061508134233234200294425827911875299525023013913136547429330072664481813609745135985663367830685810305432032025980512421189150752519040229692897686065303914704445584955917111884265406814513463520210765930626741367820387130172899116624082378836164240497176998634616337078015356356842943614146277995907840487263955480991176305284366352923329829966184790187373215484060863682937378694983548121093952473001608232373323172237395976713892326389624718240366372399421785174557934390706071191602192586877217165742950775900510131285483574158187197919827000909640605978169584998968485424945167973614887115452939255899793729361448152812347974834338564979045926034628679570146681362046592862896645482189795203301396466180960853131748986545522635994331769217457184571449079829037357061280247175066241598334935765041365449632227851096734487005637562310796330310094549611350586751898296015176751377214761607734355740690939146806854937327504544988846311501551595529170770901371193606754694419687075034879177023263414841897273511848301764236494271140244768577550681057356552263930504712031056269538954880554378982416805673498156045574260302345854288355084573814443883896783445397787183612419013028715087835440587753937725227663838782442056295550240422260475911883812893355785103208401260539298234950054798568204542282643671101371719458207722989906782297646883496301897051452928129026105310779460580667573987810095894596401142475680467228522754224033369441476052726346227622303311185831134898367644837472438457297087535564469804771998813352464566044137638680848527907875439713919188313007825278727159492866898625642128681638691170011494319559580982229325686851047744635779206299629199607488417571001779383610682354360477135280037194684276148595037578485254345447005841258793123897847919940992579835152969815839963664503757422541210638466951270334678938872303902181376498996663893110940104391204873277819670514611677823344654566666756541315836779418151132120023630297026700496641880607391497898291269339300261218552408027026250372562125433708762021603738799053165171384649828289619618384574523944806942068163550868334939885071747897414905246087689123739070781532200061168529358940527597833355982170552388926237507902695781130227895254232345384220865561831225485490553772923483766444102746969738925969366180555298560182042897446918067689389833020393195407382536507522681394196931446599636919712137675852709590776772321489219653296428040291220296871131142379663878798838205667907375335108679684272004693046290008464087259176394762763251980845890953617874473281666320486513457109907479066644208005518663685056501121048913073406567226502837377992200343347819736815783017252357336927499985415998117086960450995735121633793729458105183637514121826128589721403521613411911801078408894932908147617579535483453465491812113428181743629670454270129911386026950863546181017098134304073889647189787749684089191428905805083198281130900386671031662702336743685686487740381712646934926367300895586730422744605191280660385232662045348906350825174018229756207066760434917713836581744060748062243003425685225893271056874999091739875827835938673909220315255402901000681053881745436419521460077424409868284575787934431866215742179297234654583718959649475899797712062649354399820843344923299442218014834417394815980416172525576939373991406372956704612680484542556726362555284274232355852631730960903980165776099141322700223126253702763902292961510179910541065582783417487446547093659794599337457358098896021734602777135751328488131205838726015078964919445563803940642454003071810613910138186815595224782260918581319948411240771197564216632366981865477254825205891993811106156516477074772954051730294830374923374343729915833234453545067363838189588865818231678407422768835716902422089484149154981044473277540692356909150156828767121979073433849261701268722880445637233782659467465472428427052458721579825479873786421940663954658828288262346737904492894864193963849356899715870172158026476523598937400650773349729781391734191329963340678569724988178625028292196750669891230980708433637132016758379424588218482838954887500580238011133203358936721216121993671464983492253354576847686207784221716694478243923258921231130647542208617605353244862429918235850334074801089684468826486363278340290661423226311797361377833106197555423393505785817988690981104068225295162024513524499917357312443795749948465107179194113798902322662712879455596186705165248686511505359309233891655837318079681760741005792833704266268340558601030285465355886406666090102534204484907443131883618872984648332349059560169822210897956719220773163393965706944822217834687388192863843649568037591064404020427761895182282416821465602971188138456659404409774308031004742136360199149508686398525862224278621018862197406568002934775756838310993143295889161669764511890212485559776032690190415839918495314849352862079700204388070153668579982292373212088122503875833725844195937003292767146241926027574638735294224872538165777336003945336735279878424926624597513081499720412935109170231070595537945032612122522114846251165181466676241184198325153315975183211020795576592251200505014865491020973936575344527917952248156156116423638825723492381452191158259960068014258812937764602221069566835518947567111967322074061912881172429432657231148783836911817526842989429713874638692190413573995207804795921324145774247991755097986225870854276188163634078015553352525711375317361676841189822055667038131472257511592991671125625168916713717390251131894969647152147529668871207023314678962701604207758875829070281295138390454057844801213088918469064797709455615485840860250675726021059017067932640874638189798538239492204067387956045116141701774522426599205010717983453566652407888056098078420633929557552966397089672962832670890979448505924704554763456216027044906451352235418993564514609000512824892399156937243706628459419169630944977439711786269064516267900791601456027636058340137734455595707099941060476716191853343410843322993308699937894577810181563991373272703532246541246738724120371307288221648356917591575967429023567874625612846344168994009008384743441241781870852218115091914103749370196166692301232519490206375402141483600542576794010675990662459283078553142963013214970655986747982823420874070552832615289597933956765375270381067386955776669422153841211170159454827374145248866915273194016464736575761713888387994963926716978831314552685795269768381572125411739542373274534304653510239017771040494121615572824998982104819147818164470543126517436783216011444808103404471784197580142008385280610425130261593812737361958461627608823831345868130019334166697593054711998077801417517494621072823082945999417651494011236963108093626639935347024849158763512921754086563208764463702663827355647581763986582552403571736409304737852083630278095428823364345873944226534269237014943541285064147821671787180213512575388612233426188424003565073316204306729761747030428308402224347461173412075773583080642789492467190748030269457677917416573958445365808660588527267488885309264994833161919814196271773993444499690760889383814412312199478577242422835131267393625683442332854887279492533820964320125717604517993893126045662938033556670861973428497411087181384549855864354002653305268429407136828253055686733494867676103680044514959842362440751090081423202390161085185821720967377810952552161548634973902164917904728217273086546444114761232911946420204364858152883582988655316724626671710687471976598623105275852814992857906074159983308148175762559446269581903961476807752558759923646563441998036847294162825061271039967100517071027877136538160638091234061551030242606314593513614005441951525863562988563302481332658648399737890456502665202414067185856174448713606519212031021882804362504843483368989036300050807761334419061345521926868013964789302234935378814371344345282387178693158254218546314778046778873624773051325971040572517937814589040450116670462214936445741040608497208807877928736836813358923549457545818061523739377834756881459551889886465106630144561601600550970136779733380236103565707545022696916552639378735894526715891843830927091797944677143619501994767579452580572557089891709186838488929619449775795289530606441972041803489834773791975683654886463168741287439149165579052049013280390786747188614675224142479697453780683301168295790213213210415342022718811941353024657050788536168009238781989415320700113939609361157806254666122289130824300075064032686917752880899666005533395535929810309688007052131506579930293371590925670218653073132618660537422538274940054917011320984313275115029229246819684482403570071358883715677207764006412900633870018261983187187694742762916911333920232205688663029121137024775008797722594890760107899964479540482482654803449602469681914938047655846577814621160314195234752683225396314694900341523033687935393496640030200525079742268924204932186330608752485889263110535449576552985736788822967257522551482936017378776630802905654245295385585044820164411782672751447760524748603352784168968548367391608144921927343275752085162534129242819934507642413994844371768829845364499552053186289580210922722100439647125007842960092334909304762316328139088984872332785343980114965776675137211294956893995819828917483978468104481476656928682522404683026466718691179765747534139842899058383204473539382556521287782705685138890833506255999798436160972224137910575105695669167109438825353867057513793700842877184554649001187704601571530248214018265852078985571420347279167531049489497987999418810888723276300056675429261875463972824395564790602634565140489461346071042471308891153046951537263198015956565468658759389929302380843800246831809459880454612667417456899126364844329954593254239221968684960643698456024635860232770370170933956106384322134684100911796551703366035210833737903759903560091086100588486531110290205253082632021928959707631908352901669368386131383790500894113087742022870560023477109781187267721183853177221045018337273581224324917954694522676072870607042780633260388333451803591241530494285649849037306122425308023504579693567567088214848548662979027192205936624013236899304107096761513040758467679808069215060580880937698558775077100948544909438858012155053448359116125312741231344954779447076568809406520678394671220989058497738047133887384083763160526407758917475771483035233513350085369128095491955930955220889043032613253803749996062654142930193728137588138293713073739051407370027149870496180932122145677686376547013172471738228094128752609491269669315056716073990411089621012536561106153619441307233231906836979505077845585283016153055687816078796769979263455289036672688815477307223715955086980401926551954510102015426662236876828069565712351640376091632642749437509202165969780827081879173989794272185895818777883228653173398697016942145553586165929901092867654498083358948859536770350605464413248593588348952146462118687672551195087703822043122494244312103621086456062558074190485188429648694908095247223017040606614220940580330040462071086164894472614715388676170287283993488013872992117231249927780251978935060878089976845717171544807680419501519276263415654940127280235812504070213697832141292087152902681575377041950042065968720318227010968450213514167901746208508929331945739325224154406845212082095379099071845618986615314448362622299904597682890631896806316735872863508713124633314557926417589873007554514585452561812593528852096831193731120538859638883505843802044123727907908846140697318190557651719689902928122719042653481030611690548351383464429549043799565878941739220254145346972380111470849420230819107092750490411834204352253532308228859521592614436009528994406710295147373510479834117996392137318934866055427969892819744512761948223219361822353986567321388932716320865611330089638960559067870030643873985773865224133711448586228866859569920071672325029993919732045184943028935559068424005648915014402058601552317180201560620192897424232576602562902373269039507715554406663823181109278106497132459285363077206184672160950811541583421652506461579321607982050760447582171330692692910770597665528611106360275790439907556845345638394962786689392533962742147737460008099008253949316058626967713533110068763824472174107491930460984280815548233039425222234856079787760607776846746269722730095588891610585435816940372962702479754178001687919201316452189384643600178093469799530188845955752501527002494045201702897862339271946438051073973160379252268261669643510984993443367093347439375152435223514012822268392776431205652031795037965567732043853264019652157698945822222447678597889658562617712702776559310705228950817571792116333658039006700792589569402249922868946101164964405063299679458801763819078560131541400342197861236021108408190465638222602634792122349366937818233377680034666665945898547060981952532407019352214035180602995388737836978225788617633523704728237777016651907473952690612620593465085914724956803467605565472536986523516960689607029939989320104769062508840937835183140724695897247612077202929089269064792821581298006002961121980975294832540544012664493127484894081324113154546866665847338530072767900628299974202078528339426467016722060261952059274611939463539896085442388603296433103175552867068593428013269583306786319444881429204537101960678353559387445306467559473948806319430125455076126783050032567091585030399308794593048597102564899632815468556500663083953576101592867502107766113836642927531427405767285466128188887679194930532616322524284922146055701084527428839137311997917536527843823842812637681772577498948087620914058882230957576846704991351478337207251681585598463838763165941337177945395477971930428898841815564899711067855379019322400300094986127601203164964973582870844211279460447121099242743745516029122326636952276017190372040315819815584997962975529335769281774288192746471443583518412194235382271763779222091117062340252622295368549870949374993253218154216139185292799179450474121988259307575154010381003100037285814139416359750811681457572697397550723191326695792178444338875079373606017948128119861977331365510121652860905156455524016785403062385495780009423306818774716201240264603015935266885582317460144250986374562883656787247330279317910973623296062242645568285032515816816291201034162872539724421728564705238084872501223507367265562207037469191982441533959872361957119029193142309554475430293769181073013507618604727868365746443400601699250133390887019997466696498329951058282408948718502385438153529982403764156503280096507204122554767468436279428508110004721847792214253800865866215720817158719764168260155546580192062855568920564516008645459453645770596843299395811690881307323532401452219330407258074642217347041258352735773052784434292898124823822462196956457724226181964941211879837664056210277626437205333417696003638950127838192403841376916207334191574266873720983587540354592167322165162067190136296691125822293454842519597384762372307186212803487578059099755839715975528493421152664117677774835213340597667620684979941902175757207913652070610502125843915927299606333533360336940519902585876348632564131938513392132946379260249953211334830849616033494784988488260194134170970889044209635770609976216577585679618988651707972222216676805652116049302531270663312570545632347281347731471075933069710882018112434822758091822022861235677115285223496925392264324836723408796369643666239165296603514582899687900939667577221798025510875759114304559036168757545596420105560552690680179229068583125923629367163535079704578861900406724564179345588095425396117597493121598224754221141040811645022293651436499015450197874564342266264024941125047855041522184839428194947999356517603910691212448147741118732389179623203489657890313340106861383573995317103866523970800404208353919560453842929959296867910264685406155965092964456967548871582404361973495340889336471048135948362274138368784348906565716510909585744297138259200233935204472285039212501946525207158987596197519881999897149916133003600614269191706927088557974175185345341171834970462464039233165167384211017358513041053939761887756323912191978372753934143535253638954374561003154455964430080163155154887854262742266873771466916744306076896515142346719695917345126724842410169923431247830573621057328882186746978789556015658044456283381291769630907161451273411393852441495734249678332515911593960842581119669457651544314741021894853738538833640422182421095226797749593558463218146354028378300649635741459072625295673003507137728705372694602714999745430409413465654551291484511283397978099195854851866697972714560445183841963161684091998138655964054767479020906999078444807639888773273013125317783143089052031251055419889234565674433056840093028510310587681442615098449045405257968164623103188513916917324711702065947757251794018176460531964169764332360007033447854669948239614038205046234627866766347985564113127681403294615263031242162962554610458064257318391549890314306646288059724596820843897462929394179953461610826740271773548447103174072061545598311940504229372803653681805663035477806160779608936479848491255936279628287275154386983353730269174025912181994891762178908929632306875879524357028501129772261985030490933657435660816253050518474589578044101877840092023897997892268755859840969936254657421528433142550761726105135091718266193723835448989596885672380003301088460813456825775623641087251218704557547381009526008832420004429392326507076694197935690483469980932788039431184241525978689629688435051860509453946128091649963691037017146249610363015669430398195631730184626004939555483315977798909656402824141628219538781568178075210923781317406570779111617292914451609330754793548258797221692776155986387207383915944942021029460938495781505641886286609514036332122067517156454877898104035519473048351327162286090204390738944389054188486980898695823703607648089669077729273666595206959574789400437895529678217466868953596734593460576783148722237034446891809478037922492800087344812196109065198237360007094637290143893265355217191869440876092713921221870864233367486723934561849321818282204202081622928405874201370545230066779372280646388223804794659546404942614019009178081968060606273459463897331501388388910934725658696592005789906610969612135034135778672600122551583701478282467375958096214874024920984550361526920740445429629839940944376802323160208579685079334938606436981452922562776861462250399080350074621072675182109461857195079959597821765148644341545720037912779444551970436696888954632402799252669194907608044575228382122257630541726409803607683394853812375826157297751364185648777775404388396006885686577743717847509476414021636399360148620800350507269730470563725032401828802799373393550105871837746805526679090948943469892905662273900609650183741101819548074196357583358193586321722366061750070756450502093893479685980437744121291351285220233733558628464150858458332150821135814246910847521448539632615014533194239759651984416876382523943884843858070670267409875839113596167389808192534682043758503628943941410029030107653462196029967988809203438417191852517908926724845174958822417462606460916008274954334772167136571692070156407683310986640600587310064411638240892902306696082364638990772554149982481471587681143394368583804109255740443176690341128603615104047314451563141337856430168104155702155864532850248707502542709256424894119750072284008555978474624265387487649084156212495211105191103491595295142591177538297484116475725631220921094687727934558626983761108497808404574675813175892250192863102693852088630136725855142581735366842140502854787252041941404214103030911124386467648953494615750603189515125919514768373616320343761734384549001784603223748180827245968239651780767113621967181640190832848525827166127524836269841140567044488297195354627612777414063249681295720676260313822114999187368278900087893649220984547224339791043885895712850819043678772291824963827024289484410187810390423615874798630527918045788344091644962680050405238762794830375468343892063627704409838112474088741255867784950237131488380451365429254973852319598084193444270385814934722667634757069605431391640007976105934621568310174902410662364138842950169135824161217286331336628648749947454179779203957364895677933227988589150155560189882823638813237762079793601494191173503598051526640467829476789012428753158136186461326760973152744112425042854728639883272660921040938124644237551041310270922887823311840099368756270305398084400801973844878130146353643891511939778187760871265266903812746004517634317769070186773984669129048008292670379841751272967316426624274591157905748454129160824267627159682769489289691269651157892157319706206976664921156973143078735256331569070979638724353200677661732821899372956048422387436705312599657811808090043884786889840094858181679602547935345724652570307229847913192627604944652519815934337174704862908987822812176072698131466448995614554328306464960835604004263035291061687196636084277922796191212723505904119283987855019555616949700013318111745339661256215177207970968804699562795652627695700687055457421116122925922623634354264379548126468923653446967147101268201942895196313503077787989466363745014687695386825510185004765208034240763644458186981058591012064700936994341414464995664195861536475961207536182325338913103218219784220590323608734931587011176398137162954737383488354356348209397948443333282369323343536344607406571006675904728947447984858879163377533692074832646983276128960329604111748061612029570706068283120720996753298485357385849552723178628644060077937494164699069632051639983215343980482903055258552397638142866966492582660000479807179757845051215782298010206619799354016379078405956794647535183118010097396833575284418106325070561654803561917572778311453584362881386139326609243045279995999680179362411532546748381235982214548401759504001073726553000228499053289587651017947543975254459159733982892976483351473315157921065003298594726138402410541488031073017479453898549533413873594719330432531775509138490912211369432314403890813735590494056995343561582915806944972447231571950641086890906920153122880782493938713777927867729743780727875858803902081507751163831506207905148301372728262147346050580995881793445354224129222548093114713297139220717800458893650680357254611992734969801542242258015438711849475888895631562339781322403351199824166375237660473881069677665546578149069285718153010144468992930860773808087735952586559029260440828969816763631043002149729471424731524180348284667905940379697595140211183647604061094156046891979131243195136665045791133382633293834862623617668107849418577339141122086788493087919800380910558053234574895497787074315864130531524718401053881541689720840412567348084007152019827391487521409399184474732066087272968183180011442390959772254802987058752034754640294332063424948682404987940407823111287265859812037742512192885211596554401070837063644938883274326808257450846970514375893979332771017486346417600729772351271976824585608911313322822781593857620974230504016898915322167221960510355179314283243401525568773983537091904936848985824188249734338140097938161255088646087543497261521159895984466953070509883675345220953412153157946126597934430946039889168122181704391123187350838831551617924163906202335576057731506765924539444234658894915037687265177418454574923628196147460380606442301528784223420380277022588605816925653837114478825017108487856529969435281782933084927560390924125551959258408440725981484153499120730593351794764381323559583669653442484977581546109612098755944623140668331520790493911066716831552474662632904610116100672359444129233789231496087256038804947081342987581407837570609556520131168795490544133600696974061913033591484215956958343640517682429185125438974647550510394895576583387147171105715561565247521346531338369007707215695624979396253963087677958789525761925777939222666441305075455180055465259548152579943660949696197046317968350216441422219411734900141575161789574709323975243540744975974150806226045927101465685225152394409720030009366937782877484261401919965453082156529319559794046176022227100265271792427943967441535225859149960969586874248497132417151989215818182664416842185711467774956028274628971971856347390573985989057225388064727674324921320601564119958761773532512080737893333537555377938613661875394402126503282040212264439039148833041418531308970044046020286575702344454381331144263906097446870598983257530590573334382385912136806006915040094679490660820682878553740694630082869995748491979695007566377234371539544989590297606539364685575640934946630169329400872526452838144456836812131199618840994538391303149615219541990895609937211051954153052468788925441496000330556065524457088778208104735990494844076741980780818191487524162624989582013940189876058919090743314803486640154167816681051914154785906705617769510664396331903603728334461920509532031783193742932702701624121424853848717600180804482316862023468905306761285173330630056484265484294576557171530940169689005212066800088511287062880699409252812899707575155516089661968886751283969936041529290735223811141112740328529463219752102025908446343216168005273698916438292552655854508201105900266701517021497020891281836130661352070030306972014527719817690325152273398011645834164801372000495332667634647317843145665126873979991714300578137524704370698845797377081672738842903265388924377908016940938834800143591004015216822627192815816433917714270918885434152505376494107775891454905051844872598398725367267531084880854633374873354775957259223586769429289662982969755892736519074970184935426674989197805881115540685718152130575367202299708658570889815657931444431130003280384249228258275682488555782853961394434043742449543071339969854764524851624785638081177825219546405629112204072749670043261208884584209687289548904213043063824680762802765756381452085980507153362820251890840248222738698651423641782816195870473365529941570226041176014170569043630202921427728967638808451912633351396681157994408422917297881090830425935335400686623937209297566292379255616076647494071283218524844873144225447481027970325970224538264889907190634320594665155740916315872966426582082733734919681406068975499557600323725860549316731518422060012063076261484079519123071944101808997248765288488148699787610326678818295404753000762607977790667154519677316444958540091938307027410457788635425321933124442466031473420439827153838041791277016350651476556315137469894095190201765888011978941229944173926354708023103656677725942024113463817002629195293281776047516798410458157557257398750978932456418412513743486395087663706246776626190335913514613676287140114776479761813303668003645064732769295956564821572225434262667397885481987262626391210182231296822828187640476887323283948859324634650817809285078763682128952261077310866745235949883536913530163054512020650230254093304478793422365220262666314118542744305745805034663267508819771562422861000893109403918596296230675655823880813832371382346628393743103361335235265819138500202712529643084110114457896013011090751326163951378099379527539120176124034334400479838582353214835666144313131175713628662256489603397095032409603203467474014680559058092679762893769622530397322848475345526607563507726509907321158586636957883856544103265799527811419559027816925439808269275314543197243801981946064500860243876501916474614347117093928210948971154212517739834998814461856669100429571160795985029047201480930954395934788070582526760520345413657888967234133999507269048603929523698569359506644746176091071204013621615354304291255079259564844861492549891248504836563800486540685087721375249079970037443793297982694700918653870318698569806535830363390234803177019480230034319734743679262535164464064171278616141872563202416670933472889546429697219780886189493518048731532409117049638899108419411174015125749921600758625931448576424167821136037856853706399442110014792793369093964769756449694232774773326124185483874136694695186433851442501564160542124554287065136533856794744298780342608138837562229950215867137047377797505663625395394373668792457904185383961888304841343020617476826644798878472416051905323853150718331233684721146228099324957305008463249519021216973571267237808657906935714939137402788041575890515386572749430901132646396010159377932136964980233010428958248056242848381566130822393739472657424009811188976959500668815042100439750895572791599681398347305481654307360249659032151160779835726334347042880070541340112713156774973247076684313999800724196592852885877182564021020983917427257426186935317507062194304447507429005589467852743369328653045626596549613168074543888285521976629945143064163428389187452353753221298873630653657078794114001492444557778257402529082943049501187163905892320628761850705131433182459582678303539133596724772754514232929719353216735319992940904836935107626428477964236015552867392579709289357631428321934382458484377554401124370271237642734626326031559880613867369943212349059484809000375460039302102961494735402494783108917793561320349185507898936727398516364660761900155180822161360610059712531890911514772628181477763075354144189681554050562285476895756555332129614933799902273472854318730552886141063533868665672763427893480067258057341696136740771018187831091350604093891960628294437699297346933187834329920318603445101123111118175689808582407119124048480384552074285590707031073541176631885681379975045766834072774425201974083728357568525036596748130843602628426456309038400345730867714128676918111801903512245931658246323087608787679230303355397667725615678377408044574126471563332125476599593167770469740304895117090486778875418599357080063742607568964248395774878238690557390243525465639193973618994832824131530586549354934056554070882669109115162084454715893817337583847731233719887549697703515976085348265179817227775552413895840645989649135640236884749819230154678684460920782852127548052660505113602745360023532799184516586966595883389800268413677730944714243175975778988357645140875775702323898162341272851064476990815789432537710825756104787690794222580770038301703177295081323047265436254642474041159729040076412490326792779947834755628385044494534612585594614684179483308789948391661608084720443873210520050934923206627523703944160188380678480293326719495882782012694326339414972508020167958755506231998360666570480453010270422843915420979254703131867732268725571871895197195462233292722631968693543060797938376888710801345375543854417119143716247070769255744833148069555940166106696443722901115092149317770139964440916449818529839664298878658969173428103719258483307864514475139751451379646118730713707300680647379669353699116411203511554496374240316904203986435250557976214422959153244848136473983219083632993818408007461230042136150350373647397028134034971496952089418598516349266697663733996982876951129172720243169551294082200790822796395459625483068833594247574672403809420163382471923485386033057807080337234530745829112038155218028911212470843753885744961230022857903686241050014315078152155866621778745139461003195114357305677675004101825404541873127273551134634814613675114177600098826287909303651576979537850156995809194066532723880593666507184970774070403160332690122868250497453656483473721991697205834688164655354901329080644427976302336194527120052153087107369616244252603754445325724659833809996792638265029969079866714696819694305131427212039717454485356663998937070025124020116348334939963475573641572301578793901146709660819404390697708847707773787229806467088449548648655907085008749220092169893887644815103016577304242102044857315471870443255865694001038865540068862318982357217838511122942557560771332968731120135986592783762902974831224383927455689080084237786034440424539764752701472512001771538191616015056839576212758651917875224352098142042874762591975609250744349936995324244555315998594525165796709338805194120103331583025974149657829039088522093164094493857608359803912526238403996155246419469320956714593322207427023222275623995377332996254907422404980277814587211963809225808223096468685740610659379916732704143282420125729068314871443535713853315080992828170636873627086611230878289950848104028260810326629390923980746909600936207094190152516851531536544136723172586699594812730564262733192120667192707932912724402676186834866760320843325415287855397389549728333734604691804764238548350895248188889302912336374138509688144972925877199680969481351823701688135222782004060045503598807791726482460828667097389692449486673709202728784954711152534328787080627611677218118882043565193655579628849148952920567077005270403699399670452040911355748791121699970283066066648476864114178673633596995925454932665890862005889410722810734821078142554700434784163971048828371800074922030459206109583441393259189409795156571146383798852600126084436339437841143527986174685376747734925379625545982867293075180768356603976102736248895442838021179245122699338575884858149068369830689952823787307260238328315671625545286899707293312454618831519354029959842910885537001136817164353770983695576501750234082929627454030386128547425646323693506531444085576471939184616035644773551331122580758072616221351824065406879397881600284130522153941948941451991481778072598490452487367525354461424600148331189036899217710388237546681662277986187698401224351284625500100835868547420417985557759976182014424866465865823923730390833353834534823324478084827754053858265220970508700217080207767740078817585341562367591794761876285273784883847741336809131694925730413723926801465461169209006275710768079323409237728054861861409936121613071023730295833590978239546163452743357446416488965412510527883385440051526940547401825357893617325753458994749917948948271665595906069953409082387742525987475546984066039993078058942338128841772974703814768139971636798717106526538611029182533600987181360446178082850311202360708987310287565717247867354936328447554742502138152880474057188955209218211993285791583928210713260028470889703672206411486723917609015030485217782847636664639877945862643226379271809886042264443499520117581449707640398860436541515882438920313984392063686026225216277158316299611309894435523439281287551926848312828068211415277309799656632728001221557075069995845272025268232517778146423509621100373699659139157149359224732966861085785887955957634851121368754361675524480995690278343982581212426172709755489791819859968821363611218383996381639884911980112316429930360952368067176766241278837155110692212877166655178729314787896565056504953529009508810545064088922000509567346161824286126590446519836274726795752884966605871034084525275532264601647331205055669863518056093009944719161936556542673327477949925911951009626150420790745046587613910984925321037077533017344068730585873009279788654823331274419747967267643834286402636765113986728710571090288306946236272726564677943756810625627128046105089815035540151980827155214382495063969637697492786125881478008942645416897797277914035711627263601440565652191288614155061602803888256676352344477617044699093689333342005821751733147949163868255827938303296240600584876542409351660976212944326603118270228509221241817436315030975305142291714571242358124709513232183817491105661757342211054696531304771266040746658815065880568083319655843598732256676224439569103027452047693473587939855596322760702599395691512565980365392443111655476826699595182575303457777841296969244499115967217068539523692644292208199741883357611816550748679724548704641116080117169625809550394405249654307725692011390838395845538779763121897365437608468924418895868196129486002622951149776169842025822071793149634475574643394172013038551655295480556628973243217790606781741651773959100221660994068990465878399512416912902481726920953909881307172084266412732826620949698438173782085163082465539047986027802106373065223142175942618004503870605783691603119396950972057258625666653910923444441202222105296753204339119314223054206670071223241797057408606318248173109970610491805396338509814959905153024555493107466658801248094407310902945391906763296503366616507485259565178570553590040547866828499983257729288417267208239183231013069360711089024716307857519822736054088075186022560244963796779982611584541217306976706701730418086856140141535556753758091755370784283610426407877345632834244385658015397758784174915411849140120630395454666175700418512118681501761243884269579826359555176033095200324344060005974945056636889750322552744519400601020135871600629609262566112533035154137329477930595081290319822155480603210145937434677834653673320070723338902551178911815133858300091086195268245360791265174420951768044586719265268666190736814631463863166563348375399748455114853093328292414245793902712335841241825656771814827357678040290069983221849872474037814884152226392496378186099355189297624028755970369245088873535720357166351038672171894619699458539520590218332509781311377907250515356854168363783972413710072510686765249178876357945189162243383451992378131911000973803754432817176243103055046786636351928319109756682497873380993627474206715653159841089092884566896750830390220523829250773608548918655972199736115811325319900354619578848688131555551286958876950939896016287676141890036282364102250713051635774291286063564570276988127898762607046155899361127786633832538687401485190757308374711689753899240937863005504931844286425595275169937901167728940735760380221129851031391983381533703025770842250135750397328432057327668680380260362017556123847993096598096939485634958714471065676922180940226763708419123222500154652189731041676762917968029532063272489496054886447223566102478735643895344192131122927540159538948434072453915263638317679782858675368059627069250181761089476722470031636752148104197765502093685115627211824737898379020340911539720273763005046866853878624046458934618645689053589974968110960235807644531341622870349264258625583293448773822734654863641297055530233658785558982287133113960224860446233754774659056467713924099217733931423221632678513825993416858073968295675120850190117805362708544670472559504393832735902254502911611082863872620483526955860186160078801425664660971027077989707082988487134989064982589142950896697839093110709469140391822207353858703186223049534311619418750490979257639464947626504011643483071952337709678439677651667423778279842192588400041613373105598771078365056296526248472025249523037655424726225018497025912732718814787999591950084540368480136509341308263881097635499766304157368716741466810020475627349154057196007321306549549118797598886154870886556118794596275508269184248380369457319132502105680068740077734119764892941788577609457184661436006020288538288305919555576208421578910772584984689459883709543110398758687654006824219611623737709474697469113766231716857796939106560945613303900504202178842767013192829825489202227950842266265506777055068287521253060611139260985002220406794093733835508242244978422118834002725585501062436367472135818704836090289191057948001589176473436915972225572126565364157040440470044859749865593192109091336686796994164609366578052450841210565961187169236533712899544033046044132774163307874715487741965671682681180180751976704409606833491978961046311909836358834359631881629781077189397828664807541784865566781253769570171159131439406268738866608567313545936066140298853214801936704955737745998723686883483528578171723927824300104756125575801081100783538576329272982173911801029035017827967413990454591904501921049929332839055855637023087119473318253918620707144308671178686270721388887538367233257752516774974508843178608109069370304898264484541402906707435348390295885805891478807862572251752540699200027523138836365275773468015957706891219049558998441696776608673223805758148233377930773560497467806917500892711388515791100111028011857240914745859226992916374464589957765789547926209535067790586759942420229080732169448482368499549357885692182945527769613884339676035024239130842177102275404039294289658693034965556495393799225400785845952911140392469846241116268584728368107623579091628327215172833192679139795989321678519788835222388994009170772839309607873823798240569398902386548814350496258124356891738637951724028011068891346545985788107957155323878909833979135636026151846626089589064150436275636648632074466323592703047335569249277907186884247394474068270168739404989817210006896306435377914620788229237425626766000792167752926548534042587857411355245994388831447136971374392246833667927646337791915669613864211812191079677393745952142673656917038366584934599485575067766839078049372614598635852541547430439531724998198028946880903118455195722600858503729055445363859267438701947488021994946030053170627438886384347782635926529315929286715656967666423997665429168884547469465853990022566632613007385026891268682689706317551217982598876176052716690534918709837723353560172590399593154714957669619916980530085883256174850392073189102849540556132767920027459885073907630246492577856618216001503129303755256170302271956249436230625857024417815758358536759180101504150740807058012490761419356769859429463121478393224388153696629723160099631044134153729660125790557122920438521693135484384655638543299033718068512238962458215151943177152739042081147366203301329823745834587082652860482094814598228368171295616261403658857715111931604552158252373631331687934222508248169895965723212169589830124064007900171844950122543413415265263862771417383434163211346707553831966750371048702932842202492360881098946144929542933863330859108314194332310361984348671360315210527578351610490899563279084280062953629925558222633099827531763422636837588558184075648538256411622404738424971823664490599256279149392611641987116046083076494025239675370612696850310317280075241355916834557032312846162637651966540691380786365981066555270263179562444029458072850103218666680201238843882276930886755657791950690026525675390530703921989357315891147903312801233087413680439902548196323878298232372934134888790421074872050075908155454959591237551020351780518201218606499826787830021314387439636961179667321321500376122112221892876458782151161158040796694949349424785472600852677764551463836834154360970237433548524584910599491188196713326409253677541975450979007717770897700834502888632540747060871664686345702469052400974459423762878695763029406580820857183673869099140912495720941535392775554924817157004522914367273435092376954130275206636644969794801624038366001799587348068052550226025704134229998103001238469960836887469761560403449824993015355071009310062102454381495618138471752347257169051034344799549461277506658475715868312415956796058951931901833254915752051881062261641525879118850055212123691214441550320885547795539669226395688553921699886881448180211443607780901339054107166523476868614790915124385719365306184684480234772879709800430938673475536242569735302439714243176672391964622554131207930636848834916798850402948451168356557603308466202469806925720968731657191981803992499111238328706513785928049925113913395549804280264059871992879622162050441631498036710860663907254611553596211044191495610892789431150517455779253411342782683282492615515257762761336585207642832473561603931007328321286266115773959107537082266162384969936550283816765389310058437236048915067052807821782481135515506412457503764368177656407088111369133598682622718642902770804078463391721151651769736873481601888780060846025277435635566860278739143273498036936211311010044858779635184679274307465607094967669798430250706699863235730303455641400976443751672854074902586651538009439271034051044331935370069083709172298198253176364014151973685172672496567511049335457591290303668329041868864161422942892856631956472285472254697432076369514127891283416526293105841804598560784518967178506612240872377500082889947299387846772957878910509412564941406994598135979838037885554853177215188575634367511488213898348178491426648657859546761449767155038267239852309121540972910507479959799484830471336079160581517980848730643622362195427322408550588352315701587037057757993885933595107305181486909410492035906130628417028311549185166806290792291070065260642535025954399663299218643363470353985092201738243703188085028988312205498384443243652560657621921649067614965195152736857864233491584161043000542676892462026997168874224496514797780158859367227095324839047125174390830391107320286022657573432970835390912774884830691100974792854329679094776984612679591388561753574533799713085145660514046819318325056084613211083633199553019648637823278161993076893953688220483447721558355420766752965623377124946944500765964780046145823071273664232120112145404465895322823872788728089963899547663824173240033151708825968996965875360184744277575202056024254333723093757082964077924725355243874780375279206320797535132671423306817261110746283619857055238822348318932702408052832824278722280440107458957715059071171915234851087667513254557222948089085857660485760668616422748639631577098075068578045887788419866864312290458415813089365136873796704484755496434707533952141631084136773735618157102893262818892764391233940960653568886759347821627207180232849433266074950040956021808712815798262015089108739132096595368236589582143112626572644762650073037123391509235991020112180555982482482816072932254962659039619912823191634324699130161809435798831989064293879935887677715067932416905253062245095697646597093330767734518671005612661874435468039062511653281621151181948170859425609300334897962216375780373872199527885691463208104204797580721578304546613210192920690056723569209202604777982232573997310395125476545223682316204853205069742002545956323535274416259327964462043352844098993895829599907193452313552662656994477564365510077039984854822732371390256948893281285967592162418555587660692745558178113792894714163706026529060775759599944657786567098288229717685498410282631045448290456893740288579782326074852962099742973191222291177095843187278404214866569675249055449536002887830322817973829610953282520588551355979457909598372792168383554570781595872879981864942709761593106063551130283559638190524452175471637485687448606741104266539411274938022583427788714040525589640918442059668762918529885405391659636654745897010832264212124350957647444821659452744781489271029375571289442663457417733315643800363345679348605083433211929536915773873468305969681464640227792217107545170536479357421419750774974485447955430599547846012046664959935317752324188611033298176751594315152449476527058985338127842396248102531465807171183624258031421411581292760739907503135677170382293956902684784161998866730802138242195565209816654325009670362674229191049217441917332593289551230932142119233136073814718600780303492669390154280073353576651450508185907601834217743450717658165964791855812947246917830129360152504775260292617964823722160813711275840967693643905037498875702382973203974678279482809342950448858539534997158586061745070927006714654889212035547417065386797962124685977234572103912555794239141692320308016649653101101134361498298629082021051981732460787457894041217095722441607739579603392385297727880723846877505602705159354606735303004055110082314229820760485266835157346237717999987745007279376502667915493913552839248846007380806261006308582458044827471667157277022073639478626820844726250606343975410289251350469700943233847497162402413654175544947240066989289031753012062663926755590598128782136054716218885088840614819744556021914245609082224761388534447926978634628275513887607877038539328585282171755899237263723338104662397441999762873036570696979330416761394183917173273256627876949659472932038682132679270240113836945996343724424168834139290904174568006255725294628764096256313414934367827233542978394552532113547207187538286198501226511025967507061573878562717476958885146608823414652736818507589932980113020208260244404909887865126736877833050136566375227296840459027997390977241219888618519205091581473341598306428932540530138710238583351096894539471265466861338471889973007832946664197822951642004774065438872037727493160074574394356140336287703291983433697668201931688025195678158330353744365955283395138595807002365508457035157866443315280478536957386494192080273130889913192998066208846356610658618039211232428153290840773558100221878336187823232949007404836437038553414974081334483122402054512838371920823017701684384280045636453435725107832304244054737227635647088964219124515633418579770474966348470431625484259927192636243202867970955753687028434368064418995858578874383861811566185816357502621935786830169165309624915838405909275728656521834324028097243781662110385161901965226549380520856358135315744509889621803904201691343111131122287750209923301070024434757307118766990276313810113011973706852030576316315789583348179672195032271104734871849363092486946498667691418059202714125130292997365788828224029916581047559922493946377662334163920606146934594400439912982377910109615173503749139321994924047896422716005608535468778931178139801253559681806870198226391628088435251700860071554893016062904570039256008544622086716230093496747357790505681418831864560454733020340000748346027300183641627558108897571006231046755382625158886797230944292100866373645084924815838842850416561807849746546908252328886902913844466822229000803253183794152963720876712898540684666632148331273510230638913694264411907217785327436943245686768841439602251932808928390763677816490487594966202041540223935842357331714828874870075210302103861114783658173732435306229423325797554453974478426628996043397120631171681309492688230554623610461139470163726178097330316975025403705248231626327537898727186440006764250735371386755333453771593488683876738562643776524431768066255849907512892718918827840538357182517777854492922065925056867786043421845441540965595003783717375167367783893548581883807262832839932968101195376614549092344128476127640574330092661690504417049711199724521038275969886814130786036428394623412799968529452164484584879381363191166886965154599124416076637650920577834451981437961024036320370483711522151552077903068235530312172756067930999857024104091697060029343467774397113547058234116275879647580794971387446540239241990685315749580425300625338020661160440119353876037643057010137665515857522830932299704485435109695255212356183017420728170061709939376164047319820243018404322341273068523690221990526667343048999664898824955987672311121395631837653028070400449507706352709767788447736720332815762288916634183321890649552996466953712146915756482333340182593007771072847540403144368635953870999967395354534779203808616770661681843772032318646642359928621636793975556269175956292091676040723362785724406839829551410607771064216160016160294341664785461189321363552229137941416992926236698131422813856462804699472065335567017607653300989396226598371457050189322413023361237635322869673319895593039199288489949513739812365589049529899578572153160897453427698802105096083962455041979446925411948448675376551657898284519643259793156436878404634680713390121047794899944207801583230426601021451948188962554293455118081140629305349457670511970688019570426727955534825478134661815034364961266684726149303168175987556387483889640387719462523050335118258075682823105929968611767461968894237096537619135956983611765754339110171622747593067665557002350650809377731322935357279476073951265021792715682425814291513246396862351643554005688833038379414818930222936818000105519724154464382192107318195259220108732017237816284882664982621878653692798523508460601052547252873024492884277709581024102131044508511379196041743366343628634557908958339196927886144281844986496760000493832801807448154318500048149038196017916818476480352110186606156029840567536068989183739546982140523847316665640020934594560311909582973168920625528141946437492536774116416889997957858259564150382922738945012984570436288519723402759940786595400743475700508820389026053044969896792394721642185580409770123329176733865523930875495496351825461793880720048752570672947446389559934717283965586094925630954204960579460208934155106279126567710466796821379018204271683311325200376343408555408574954376768757237875168497766681294728870920195323194527843077258591156735771269046265767252115055138626143699512280593385386526183315121367305361094983821465613899319245185269925744202895500141265903551808501711178546566898980065200125851870167005641994747118196984008655320877164220225526321329233224642945342800586850951893238892681233620000762873261494908875242400964167450271357829761613207356160895456524547119207589140516646874136699362020745378573450929208455894012385884585720778597234422370381784880234969480106483307943462561834602425299397518576868949547448386548863514354951007128736974872300029982122917972415470621240994137187808876444076247234036611860878573429508336111073462740923111608582449216566587085872573577923815259353838023493483318761261357407506050693086842327100295333153290001339950039565610388930672595295541218985645820026332528333512513804717595498144521643249557051852734060937502596253861010920795214964604346040261145702486999027524609139485084094518106667604706345149617698429340197616314676827434270883455068051846674643511774267895408938450729504042596784914659142978721185802923199506169690635290438555540227603004177954315090789932413683364156294140998812287607511357532310822529132327391627856850049098749384892361155334377031569331436185728818787922029860896104217596725200645687113379883168882392407145250031345281741169136384063365728129677507215200466780786295511638620815776103336667290120250824759789202821837154832833654992736865153589772363351187787612656233113098088978738339005387869709214722879552953011004152504420014162121657389778415878367019051879584161372388007323209396693728874707566582006789550015340059818663914993508881620281672589519173909293690035690850046573323974373237720092886124684693110145885327249480110507893969008151385280615443204701313541781245954952744612676555639357789303175829769315011876593141701559666998668748892734831641086294902054079462941489547922898131525547328030338335493530778776695642357148608125034409393679332478144000339641917883621126259144744363360026491959932626284112158132287129630770692872621140288903418331723470530620328518408087699698586991777901445693402338286237066028276008886123840574635931137164128316572792434721693589533131804772863579118976970188626837476100863322925386401261082170711320448357090432970761955723307086048933139957437032375616384981571610002631881598694905237088820374895880201331073957724362156864098746275604216059018440157987651555385143982355645598949241901369929048055741795199079129782707922560966089198965181510361898386207175492411265164638992794912813015516982909442815130660447961414487038991668036723594495048795870715668467011061946861673534218328943679543501801551411911614453271345679590029150651362267561621559636546620090247233071955579977746839125365438894115444840738099019624720613377815288140633684729357698159805500220754485293834401957298426293005364134404193132356472762365132081376567096425248404442746900715887110495118986199172717148529351831538517484932521412650702786423954126038531512308523868416564769148903627091184119731090723656616276051730037730197892496962155306794834380262230420398620573985058105231409732710209587515055340394170985690938326361018760695639739831141216990333804951467227856690905886305100149162501142975516818887497999018002296478417891071144492000203861820142431845895009004497818804368418626867958488139035427559766735000533681259055427077630483332490758162511061180158868840105304060034004834623680540648809137204870889311875473509986103158363445686007246484162970085593561887464452050931172919200708112520933015742737186273488341729718345189335546070997551020814459580764912719087212417068386264500943910937559274885240123668722010019284341948064208908500966134437964708387022598268724184614661509818934335615152796443267529468590458341950567782207775408709728569412015401110775946648240300702842985261150917563223144925484503957788601621325322211282923993807934782607179581012860566268437917842505819622991758526565144826511247180365989064671270748301723878574701307700539569852191289098243411981383822037444991206453309181362887617946086136344588769671208918745927216760492583086816188088952221611834832993640632969182789062565987719560960228845668057497075469197622343735786332566876460377887515317695711863812561742680674310205943752797507157201414157544191847642826879261904389808827292707014710579000469793634105840116463485779675095465515469975954867932064962034426770701503999908457232460137004540498379109933526251272548968889171755362723860111118716632816632610155266802978444884336755416806982339148647266909016629149997251971686802326560152346536457887241099821863002559288044819496426483136061478018449654986933673522243271212877073381855461440473878794837465210288037543625060221595349302903039885866078288218771593904072430984462741706199880240004721457753133307765761403116943313490210720179026828966582585286282058706719335576782880191641806557985951523029218743379011015030399691448849873696245959519166770565462457595171026206257378992335875401984714903601099125430992343404851278616062796145226573910671950159622768045369665481020661361906148832946408287803260382695138764794909945468813261189433708224587387845234747219474137792400544500096326276083909214261232501885684849242445411059605180956940831522698894785732670085846822238228821268586248469049864614264295175261353457783781921503139919944141974516255942085885795548941610095054465987616149944851512028775838985881784888535657616685359913228269477021460930539202450206785520806710332005095790653368832392242396874118517743603929478867185852027761024240674345999445793655356118308446943375404186548737253664482785875882285220391370641537857932420968195889743163667594066300595725990274691382672759740277827117606696160686559886480968244449606177715648198648859847104977486477987894280669559418650195790395862360423591000739568094136387963175748698139294887750388673702303483531938287223078014071969782753866858295347389334419711599071298804784040998519505220398764161872264092346281218793827211349360816377739740994907679661258667437467719897897501565165631886864214697026631728728971139392229510656011303936907802502722977425009604995997542938431480634871627189558854008052428368836277094896854767309396630125447280835122394690635785042366058550704235160579239913914819844090763293632549897599106340543277048150798597782504225428430688391395266446803736062542717359675409555008886953758914927825546112500524854027186825250829617881834392453768723618300624854599472986278729061891238158615180195079319106745363858926655853132528213995861751403423469893671574876773239695643413201713677999908696271853166180661114688083551539992831136990875802976840932491894067986055230361385157524882165953226402656343157608086493489104731037650030500294561026400273312173202261847503881352260749966535509228150974112292411534258283889806735031347637692535918339064125930389592028163436335130403296031628885127360931567333839674842695609798842945870877389626737487592171005999701940521767703632206500912669635100415902216285314297427131847276205883182915052460351328594109949947559713122959719989216981699264878519778474342401530976509006607710485525129309677052169445613353743335355315857977884577187345490619020845795872224843752329032597745141824096717578337056905388463701209871513490577405090421509974570380299807548286512153747241053213966524195454909231749281100572103693831787907783699283166864832114492403395315010152690468287561922697266483252150445936522446193168909321054224159752652893650089139302150179081115889030591598076908727994766918102522053487281405359145602649656460622096096666995309313457186351402974390101581280508913350494166754580758640373408358973709570177263186554486444386854689544523884339599355220475197081184120145361891315708629186475880389012293173133130605154038322444374260967628895974208495789395863618085119437602610139549196221392534078284479226636403751515823976401445844565592147585396835021637252092227602458497611831524021068853165789205778106955594296782213803984892110634015881598343541026488947929425369467028115567033202218764078074418865103808191385137376323646660333132015397755093377939391335229347110433577931101667796860022292466129163810357252959061883217286714294826975878419698024544764788445666473451103939302617217145597982743844557454773350458869804326747742076354240700009465913795206817132774434616430682678772192745373193288182989914137450821707199784603429247141715638971915961714304771299910687801283565716562026320686618213608525912689403996163851315578590737085334762406459065427367774800185638083176645265983641625528435500798037369970417418637149700240545205797881662294974721476242023581952789290946373762732822235427692178916025514238622634400766894653721956873754182739304626641705411332551655914000507661464127874167637868256190977164339982364067118556116562297377869834385224005610086465265430358234241421951361680050811389162591511843133354220009786906560531058050348613269726239628594567214156465512128345062787498640998051276339956820741164103852578550257996088445284740585470377742214608130652944169988996628939667637580422603142125557039040080710180547457175642459325338389719685226855894669424138602017755337464282231455454514221607825636350228608180451974639698267805554608213880305758917607695040422556150408308120550264996823316979177312526915528732182360925126373421646923280841511287747509211797715825595719259974904850750986765946327407493357776192835923496362300581535045741804716692682592753606130963105087141133914169148057972144367181306234368713076735970768462114949646707742175409352512903297832319354649831323348274274160807438265170454596432787823955039414982794899344791336283974706333402975544850532550830993699865659884312876200227288031417658300783069389669971411960629397773879516018523300131984574224397308042296972659990145887628964292729930760758540011486994330133704211841320846148846087083780384473380803392840129809599406410645557194795559140374533470461113653102369461552013910304127013432714825929858073865055023225881804348868624716506544295660115853348937408570925956106830286900459687455825936151815814220504665885341553763129600291336702949039162754675778555523915038482117305427015852125449458342639233271051829023779468310025046901931016150108905469380068232072218990441367781836245652125002951477441580387589534922434210282774693642295398470336550656379385458116047425434898700080575397167889923040306229178529235981063794919275885308719449542669831835174979568983047374862716547945135426226552596538616036170584877209773540227823175088154979013470141866327431188704498590382165420711503710102331551582952177201811978250597829407385351249975559921677160257955405719688625701943757468420327432517641127532918699687697276734920730922569710534663793795405421115739696471554030843087515947854079048487963655141075057595928039022742504604436658579414900610899608280624223685248608888008827222652913899888509799185302389479431768504846839978047628133754873158578857953622746831568224016191332630183527482860986568869680915206868702758268812373920119906268050093299476699985643716037586935157794168570492710267119972007686749817461854079550062563510201244682766025900674461807418293835229341657137878962441220320924889462906002959914796977197271528963967344026938063004247274306317531931146648150865602433371437927157362547255283864613138616663125836019109633469671546471203564612454365718512299420976149806827934595973099267241709580347012327524373584169978785759094099977380551011416665852232249879485700121821994235042340148636658079090851960909719496630122932457084516901334733893204157207212507757646773767653239646907977465036225123225863482274949220456788716742762971006260695105897256975145082512947784762218083492576526245478544067419951922599540542398426709265778587562690392223809083104041247602538087289337717396507293688312839336908986917306343447231171660631928068696165131886891053938925391554190845729980107572488359380177891630746763782856588926844254772035295244493128873056979787550188843445874147115857402626830568803503751012890953660017331000562999157738352057453105458608596532795502626026567190692242420829731162998188394125602926411751725001269318204545073737273857588175386787736652080645346163635053622815495242470925785766322075938697121006459205037182060116177262547080525138142454170027373600114014895910113523652863109384756235352746091103753630767783241082560576305492477826584651363165532927808978985023362065109685610615725244666564072106412485543952095719233565561319348159999438251213309995760543936000827995736051263523182617996297960069777237944808079930873734573057722083824634923126311517691807864309302735117181531982108512909497537298774918078225735951427274496131142275857160159839396956057510302899577951592235679350702912211463662828016815487300972678903831291333209007095039462689203990423855752133923007955184522019608726459713550997587847814719701725005741736462935168797916542801137223168186295973793252842672272045334566186718635102272051748540010047034589995301132428781504968627554705108912559552944477245092769468356879033316331653807933968856037378037102156998081794059903617786764436835723394138892798676619567538670906871058490705984574075415495097266326124522850933435057420494612155168335591664110572006391939180997815699768734339030451522705579218361696549792774654076401234710173990040762552832462689845291044209936407919200931317783927369947496188028352039220759487945306120203683344406817078672503998700320081470396701934818298984653724042636417364905238778190526349823310522012752142533427763601684723283998870773514860857485128283912464786290483968206731723619565624007302267360775520144172814110676416742981553361813940584010201371607407440528819929433994953317151672818213278104997704984796075577447522316082582832273770188850873630530333581875228522780595942731618182412945880353616639191839921523554608775700663156431361869775582824143792755776096438120179837956361647302027456602656534473369485226225092673333534411925759702642324028937390587398981620542588191235170551965551525980388595071839964786839501540667608108507159385187069262637563868598466001702190084858519656491581784917258400417716545739740133302273058018763980640468213433695938683964870001643786330198503237229290586362204235718479535478263288905968791858687329370666880783028988314043327160696454038716325388241877538125876310061969068817393542632087088035266412763157669866668403082365749759483066595753531636050077911299521264718706685867111363628010704164137879230061632406987080602995532350530223514226408467760896256881768538947101549805329559912440148720589036653994576633151527212584977058333211093892902514488184686951407891260187983193274276725642343093158196419615800985892358453737514611179566627169237843601520032200263304956662625076902505749980825881704696093255255042236731318319636314112399483635208243141511259232027542019317178113374329487228378319578055986271319713483004758273875539284647071232559977216554463041734028734741514384630930652676756444753884528269073677444000012496472066853183962231177291935689478170080787072077459808821035461957839367037689037085322352133238265716376899850478550942190664165361572676544731967084622058979378063218152491643409673523838683785033766084491629680747496131083391520226569338922075716854367485252590479281907128594793117094571867918247439664839857341657518348045751919880692333546017972379479224392719805303483150946238703000524881677873329053272173205771477000714561764976698390813824623272964637554551965418336474469334458095855621340191105292264614144581512357076127208306925955482348481856544035250228563658676885999264384121293501355228177051264497318950009824032872253120288633447532735513363690133963561115312419762584599424578291326458923498764172510995360786979767153187531499260060538785830703984723302993740514016528341271668988412260917838265536129157055729286462287608108116323938977313989271396218954597363091633552907124840113312568442962850111288360595808960234226616930680963360103415803699493700461466501405615020980246135783580038785774139637178577496446038416747654900395835900693366767511979864646397138049809975584232118172843004470778605935636840310818237794735561316281826067254336029157063432174289605223527974410016317365125340563075441734597006988916355987315255325927879761343419434479338175965761541223470969710569333196139688144261717436107091599801841603314523211484282222146229084411939322961253587076160704754116012079740149077091807782129851791306597673537234688374950351714545779307687956052030656840447358265639559812374075740531096039992326902551218846986500991807247612588363219413688251624519280097378133474234214063706022737840856789438892034531460593451537054299460875540344272479952098850039063149808733363148825764957757380836335764164320143805349081332386749927379507875506895762929301064126676888657226942441038353399848116494331976439208781252621004126144191214807666406684303022758602780269255817240002567721537044663252852173887273092814932726643387106558153101251916360366674764000992205436599864359018990238965625955447761007780344893790617912449386309146547214669529918359854302904875726768810305774683379810682023783404791108129330593459316412566800000576821582824007989729702130418783699181377941391720602824765335343261439563949802213335763282535007916126413381538378132458167297356663129054848542527916380174968729193456649149412782152164867825883278938042506657899996991130880497475249678816227298972768981787207041750102041206411918904445518297558629479978728168031796964610525120158486656770115354204772848696754209068330442919757361027882952667484143792738784993768786730224008046810296498006957810165612177093872317267713959591693636174031052030591821832569383357251287367386706200445581378991176185021199977349074268151264325000150774691361061356439503102027941817833682379008285420436787545866099498723976941815685007157576397548697185052843586886527697492541050273423441218297720421382282558857023058728343964446725973824529152683096657554907487070723737912330937485060954889345621551306665624420976354886066714414619497814063859858147188794122771055701681007356201710367850372989643460216394514479730351729445947437802539075866708142247995815685872989960666407172393827325064644836342536939175843525859112655971802000083697306333863516440936050369525950090757802746586582095918190513215600914720278708741022486150800912160939526829909035308407314781698997869273007018218382571583307618950550049491459015802389115160136965228324759265631448760516312700082480976868883555130387369399184640451369556794740109747487150000148964695592113417174437382755299192135895637110334887059147430970594149345627094755965286373124363338487686807763298119121121439535471402177926777857342789126678207991930913582782360413087768312361507958953438971138520181786275412915015995155974584335569603277933059577721723200635427322927467256802055913252451223591151306800869200451995499997786319128873812116957901278805188363931906915802067107261594146351242053699056020230596704634468844425178942982198285329862632589969075916362652145411090330409787689747811632797359793293463571286815155564510483459454423334211591458387540004782513857231669958656469253904330028818393326163290821238801650298136468735139043963221250340702303900468586164462028135333082955635349518325690840481402711602475404191869684138917155438582942484281334470799692783570400542914980870864541568253678302520158957649893524685027220014098027425430155938509994003582782564088086487722221687065069570237056709079773216036616719176368131246248450243046317895704566781214507232451803877658115227981985227033692937565667509879173457846502006700846231633323729049770656871136896694995749032609139833413109001273526355960447922950618571491385305053402852984909723191141834335053724073997787276451046258031062619132439791726285556703963768480175036273432717731236130788519459280417375305500218333116216935416450356214271764875224279918291037353458850034923828220486556755532655944847414942416881772484761626337930604422688613658915825529336875111542073059314745557998948422457977804381493704113728754412249383603920231680333322199654486128900310668454728843121973591323423166007851880807031603714278907384864517947913106860909705845266190182306173990026803859463997024971674156372169277995547534031139485579686427913268882980364559837555992528913391452466236112026399446515802828779927375091331514805077763339393684755468799818717933072775597198271398189726030940968960122747778276142101412970829040220069817681726917465595719701419571267565066070484966266750746551646413281647421104003433199625614248629926909029385973322030262281674291805748953859316948299006308906005552934700210870081546900708820372013866593667610363670833539119047814264853919101233976481180099304538546476963031704541954810984518504457921411283529605506622160039530133535603885316923162010336392897670476056634966754526211528390620017343552618306020103380499490466069664544472334159851180556900810241443117363928824239959274631482398099223034178794181312887435047541306014847080233745428758287148833202001415818426560140119143420868701503570305851158782526764949103216491080201845582464560493456913401706021984379946702186804576571599953294525078109953344010753140813215018430222094225285866932320980082329327211893923521274284693505290949055641847820987835878567647563502693622937335451130552276861270837814124771612655974607215716875867842515983175874678389593420747148650008897651087359350385531469307228612196657167239764960157642592502480823667521511739867939303569756812799377784774232028787191472857314032707605678532684299061176239612768076423421156958548198511043542186524397526842872786940857168321729935454706965886837600563765614232534640371407985217657328575572354758164249491723004468230677672731202842780845647505050248157583443645823984709086448921097492828319309574762321110873307342776624001496731557926245502076663784374693355992019398256924367156533290151854043047558161018914539364018277967160959797110434294557002350022654564154979345136805922227794586910403320494433506994891436019613409156524653941584046325606760052159179343193473624557601803583614412833058105015829394125418326285768949022331341128104768516738870024413526324598455677014098512527496606395375760110041031276806680090842570727022220053893825572726621719947249893645259453457525595774080470919186809206830199655257158404858528925802323986594963722975815953311770210465383197960183400578058269866602398334256825091357528162824844382365232847321320590497527877088071436008077459757577757452755012041154780383191070159475742697010111263459322943474197888309948659964041929382435073126860305860940093391831748539002098505687813987584025355566374834734503319841215007539768903973267856348134049328948111140200655177038171348827643622186290799467610827102833542656657843316979066013974954888823083523578484186234507207508201716926547271625970300656432983710936457722739322906849266137188979815084073395691616258311483399180384512276745552989575823860945236314085470682584450213966498001421051722016475531407715686910365608863363400230883291233979073650040714563022242792311058984473014855393031382273054218144989456169786067607002070221804678099657379341931266923713409590763536249921317147783701458905380449431234005720092592987664792145632661463631592564545022603046556913976180293106668916965864962999585325906661841831484393539338812931535889604734647785339930931758986079572122755541667774325370296433935084010260439636179956716081638768176905930433635452946848265962968423937909652654008209134707748235546494020499574073141359661337980236252911161684110944932350799323446348004432113126551526727902480868399817541451325818998871288969488750581152362932248575633425194619439880737548642314573033692536767511500102028956640677793786722051329198357454438433401457288077030289913673440888102507491303655827939093897124065790180895483335622313373012613975199048418332519521039037729964309671218258112213819198993329414421918628246254443450134428477152116808375557619059434095757681642629113666053144139826294069544390265854474974783966438547676578673106166141076978856748645076265289993687997342317059988495486157237305979268174530594725536991835539407323269027552842113217418750239820727616812037136592877878542743993531826905974896623406864445841424602574919582723344235046692177341950347314697831139005338312354455993863783333095802166595686371762203791207415454912690197644059128747538908922792737218275241091057083204778156290492058851127161023671167203541308524865640009131036344830712512774877274589573979188350355069173262925697015509871965621289340423353007209480251000966865381014793332840964869081770221978810064744481652270929538601075140353241824381754877205322593526810105431332012028468990427054033293709659135182087661519686302952306870661338606753480464057388803414333882551350767516850417493778432764082090674403713664719632625702585633799275955300414981646446672102022479378945512859557861369932734545317464448411590410026354120350519038263373142419528910570788435214446559463121132182751595482688622515277362552835511579044123704972382043898459465957515882641292124923891689788737788028776984613109372452148992441398461235029587399761400501549993466894384307177200631758840609124057657453385442973799799322878220482571661126893403324410361655481407129966746146741913611549972504761475355770548481296318080850994213519942081171806159058655770583615225310108147040817301318201027411721375043448039175018148216419962079344052390258539084326867070298761401783518991128991520239383440297274255579530158997193817311665729473363917443559591152427758335054754743341672780722379553689213210379943314159233780747363894752481066996351001803296432649324636709875137964226826188927158514304426181677848003627000665401766106331497554300225274764695680441091512706374013893874908659205960941696409358443035402644171982547477463356204826679958432935105450059564015282555019312815953220498255986476353929442107830835839194807717906577598451725112708201126730460298980940529291715488501936234732966593008262055228252902036080236974756553530126605809968975199819240942954984002160888455586338137783638576586895364017945451944067203051212859082252602533114805227688594196684362544013107475780448647681906100600975940559682865150341663320166375914941301277123011438459560599694834345643462709615945199491852278868023449576626945187584729991924563353919245516154266595815327400130327611859912400940723595264646270632374955305774859667236170823938637626856224040151224935828684148779924485180776812765138622334244005118632890904311338730864723304574220727958587268423873103638606605807872455808317795065995113763115003990729276662619050753409233713435844926532458330566829755152872718301472879287151028438111040194332048749827434965066124027126067348354014282619237266053834634683288580994915160244955190751705780451604899176385699415235908100257406401712979767726382042411866026860920365045057335751980295372511946591908910997041531341842729227412941447419514224504392161854141284575271207609552516397089540871112058863288000473128242474120413538971297257373797729885422199622083649492201954799042472601274881281010652816192692721553107158155400803030783971082138945637311191181706748759816534938832100279605057086273281173560879736077763902643342888018099703203359486345505389334484629900401468111759778988481443985106652467812918476846647616943915774095647333598386289604287673181077095484180620213373666405031774619101159892128504992886913689807208111105853709455523814680469066940321505368464700511071214586170822925340393922884150850128595138549102202730142299388723426388095059700806052912102971581527828774432752685992149869507997059349204038640620323666830915619893964447285021323442417267156786830185574066267749420538315642673642866025992254130746073478469789198503869749590319688041472333805441850898132758987253705884880795539228554537934239238439434377287235725216700487100185804030073419438437734897553663472619241424643022264942330672724046503637673742992589757540537016264366695381489941877238881795968447556176442333011610551738758140481059779877804680704202576624066847328510268714113073481964163367484098275626832356589352102783876120119293202211697750659172698706495806162333635193831065417627239031383466702896787758608368930971212363282067484241537493674486918605732516370658446317484927121372478411195424541925227261160598022662510556850259939152603625382213042324081071325867249054473799384890596028971144437303934452285449062590101333758876351675119184196850807069769566998583585200444594472642897557061001326298308520539465182056666774256192910795239592543472853180497715750251272705868606310167984599949604666646657817619793496988991398915281490532131696105860141286912794927709417108152239850167153645833949469833583406871560662270534628253110754613384510855747081636472251022501572207146613350858403576894865876300905302216985232446556456562991531781758120909684887087492009604947736056922992585391638682492438323540880386537223670479855610280302910062895678201017838612107434297485923354670742620724865259061535937584172527404341360298888018552271656174825652712189605944187954233790738707144415854132464039621221778735591024377689457711911079824987391998657137072208217482379936264508654856912981729814119459752167517187733399605919174872465644274976652479915711482281370627852692518259246022202312777813946284376241654077739360289721651031186119340542173221827070347196443577218629235492203647423734961920218057658850883862626483461893134872969102991060976850272477733748887534736238055466942067597644902621985625917256730888830786409224671786693480905759368093548740401558861266186640978447644270716775767478176418528357781959249525565920887283934372277702644670172718082631053086980645394104290312136385321146784281202689003103735095835136188813621936131546487434089048484142728378172364012276869228482114500670888008436727952662502696632617089601152797902061136456614005800143261577005835854516059538643829693114577971551404699067411983898239363410513343638907154924564255377202377185027243052646881025087130803821152385334689138910150207040597067605129827253901463295065177301429472792398656018757823487968996601597301515285175754704880595079596215566880449681840867584155829302380067933343450071860572731181187722614267118343563839013541938520923546580574400206110557423586395027378483858223957474300164015127022370825947256042754797948666219761651879264243367450211421209075263986903188504188221169455713736633169280774248142316153584565169965931466785433225205083733483092879199087787060350719047896615458227038639461985131495987448499429031175052905790633732136024482858904279922135987159129944706976597916920750357915105236001335665285872062035239529884798903814084123159308172636964156424301371868894703533894197711321844760680389454708482693540804208165284702435413449886710058898509512381798978986216494203597383896392834881294712150650752449137570077566385083982673579660776689069480190439883916143330229939238690098412131065426498758730375634788195092641259669368139411736784750368918994858129749544340702144783631521718954125641719574039967178439311570234153805546926689514298911647454829891420728231887424327198093098973476545550273098055500647620360547568964348035042050256840358505195962879009199619241880827029793616166591742639126606290752287580531723793566607238834103886526043093065308161584235899839220053755630454289595607014099878223522882041080789843003600939704506434585166461464733898860252315649137297264344273038391627716880643508494004107567713597684787197942565748297766164806577816171913901837215853534054635834673409205020464608965157745410638196641343300800531298286145860134263459356962767665160699114129608067242576404735282043551061426862052312226271078785500340002488856187993792235736489120164052153511629566063353463305552061974629094810322500311249209726290195114635366323502193851925775756739610552899901748714463968083795599972697767066091727214728967718267403482035913449153996466434347483044265151777481820644982561870128283254054586091943107813458507180403691366085498520819519253838479703901181990854810302851913308827250279952846336210705941794998806302454951433552002082116785913231113393062164310477149652953888863934383239478890027286369468841329311827766682341189755948164537989736487082612543005389447389224437560744263395195989039080666086188446431820644467610423031489473334678669813496410699181770408808325469876265624997821472352568823330282946245060136749567723266260143539383408694023811114286700913674767972539614915289036667319518861604247971533426353153444732171181857876714429265270116124377744645475837672320623187626346080437614683585024591742891228590639708934374420344515425921952575664794739768081596327909725147456020547726522754045591217455821483380678854201194632954960131233480301446087921558116440648132698790107207685207274977127573136615319037954738853006494504155455091724206554867356606019927483900483249850160498038074500230621037304820952118716736478485748356982539938505853448594497170862069131469063537422659250878077207812401622467626296683334892156618232528072062679446956035375285646800766258928555139192442295419800464847086950922923728803600553521454582398161608131472639404016023852495959895069753713546882273691385626948164271767925800624420648709368644979211476239076253967334602104080627939009644139283685613170160178985523205020176344142389559118704831470001975459146178476612768426127325169408647490069800619019072160811973455456089229110438618940478441343080394206303211458643235225456657411311845179602113494823072767311258251846548262811563700255950038596063951000255817704755918152827995908832639349268117488024653830278680695328528019835183586807495166445634313959656034960423318947625003046970542413159076724569346402826797537552471828614768080794577460005981139522836261215491724109033383578579185274089582833637465836136879158297337408633041074771758224235120109548596512736000296746360713856285773431093898218220207100388132394253165310070727778386725905123848007499715105763768923238609382956203244057093441904373450997442769899450218673923998668839240002250268132320784122540843222355826213476211967082983860927059302165089754826604723521995792603805146921482918185658073197157365707783341004845490195369719789508851079361998861668208284805579585805913412864902181929375114724552819236367830852594884741621170547796989827891836823104060207940969717623565470272069595492700727606323591868428687043883891328640225769723645338192812282291503182492477991457098141367314184183085885550827274616034984069469658929479864982336994241856280758955140203693912843855562807751929540996387712110814474264072002035838822864941066077866478080725752795436524670328029151843831950572188841168039060790019090833446295765663973660741126239084016984837931732640161929544934247266337446865908780537344968582572021105044191410427900692658262591556271057721571715172815770710989773503983164196090023325249963448287963144816333754879749169353866929234864449654430348429025118517020287704366317409478384638254118361176743321226299831149514433002197875301593061128191741473031362471158441901316797674789443876204156350547311023996999272811663216758453585678354876650919147656764752834277948032472757219211159339072103066802236947701365923222595137364193299044297682334807801547419981770472850749232893660716794741587237316558328240506591259732876875323949452333662300824366408877823348581966418170145125402972539829764469690213172255409676091059015805101749134752147988459664202540603426302881783545425681302746767206441967557168478522848676349027202416157325818617083396551674780583727775699690949905621990627987376161819918665108886219898566506457716126735734387851032039192123741292701967572548905935990971823534442861217546629481996067991861498838102151833799543514267025892894473098410396053579105013827438770955398201416814480820686972725501638177132833465730252971598950808672860514738188765414508823363169013089243096439989359248715766012526739217198838535675388123237669177024255187401449382455271971203556621952221655162838978654109306258970864513178717553785448022207146628207156033320832630725028160911605493489521172116137535259902286387122568016425392223569698736914475218132624672748230094531489379626070555885554590030704603455127585028902132239055698317428586908210912435020082073273094809482756580500525905540330464438446409771394950446315371163810168531183097879184324295636556611912645026367387120717554967571662097684702748513310924276960806339793273006091801528197816484087856135503678401585439421521153636280885240650314326803433073802273478401494929141206607887730889412977040569118077217912266572667003330694133299157468368050235431010470908236282018130176697304967778069180892000618145072695697852159971327768234304742707431675573419681607360527618770675050576555152685767447385333844699132152017927842032229275475828568203748343796271185736605004410390333955207453476006873699666545809304463443640462792653944097713574921945353819128456546093418442829351603228780947646434367609118279592128816260799255353452208639244504798084824554335643264068798497277294757871297793547454018949190386034931004904538207153307501233564631984046502074648270238832809822987450575444714749034002558325390006853920077764928165484164460669423267512081621693374725997246607662540767125695185158363214888019280557478590357638664226584599775765246890387027417163574749936392069504187501500013933975413163684411802314984144908800187620380874277863318922073542782544713321141206223539863103215792965608144618451879647075828800981342072270642468493620946197146735362916967966560813507742448236164389394959310850651182044567852211594492161279946294340333902512041023048617744810387307848516900274506451313179940880379175455317573628817039987093283524704207751911000311829933295328437158096230801613639787985981292592721141776495077481889016867616724927266519028573697619728626007016375515081333463244818598604446235262464298182169127162550016204834922717343469242558337967966280838484011923058698058709499033647978250650834290478230233280887076593490004005709028343542487260983907246221963195352381333357183540976781973022199020591171692186947340579559922904617615570794608180690083703724921278511970099417150844954267577427286727152582858571867188269707813931000305538718638123026650333658542722265134196590754535287738292793888938693191525345319735138971450417813700931813318533175088426894275028906874955804955283656504426432381017906236793936668777427641095697954869326812266995150585534429126771905199014976700593258756158359806082770766981334539013056796269748687630680196871602410216701025465309868877189490491652387528079182838204470201918659758707213930248672612613840809677257620389463200676794863956773589387157102188447818278805430945175597649263220180141801670923555189243789852814834174897707916741706316633463727904796883946636089896098679576558495997638723662718911157949691922832852691129913662334672576603397231496051589456742405585020629017531819325065215148198559044574124357025193100480202080552868532113334627938375819061636565428621924047991976017305268924927659359934775724193265199670621628913960145144636382551348551228147797776442271475644311574733682734142824666634127925075717468717329450295191765677610039127437970297067314195768127101133325064177526903019608255711134978855807141031189642210188897036352030223124603678395166312081893867043125831269775564557465374067529461324396108846521786345340126261688608615402766153159842348130308216743997106968882838982941643797088345001280396485707796785639528900098119548042217225229286408587500854813507954265604173170054562134272463994340767556640464607580930050363703990864535263243951263528864630524648695509059440455560611873966449711738420849172228796306412792465706981475308693132944953836683221153094632835016268295767136640889984763197576197416841809976569639810700202511874960508506019059602531756897858825721610194586311673150820201169851282003099598463690839582578325958970234877745800116875072131704646174415966745370509858862594997149448306370143253327317416651051313543867315330982853039117900362905981269466461516779455950441426270901876975931392651322473988710339389636697867058461682184605775638311423629543877511139513628619869994933262125481481279828430644360801784092300511278057100701078955907415373879640865930376714019810642903565136722796101928354476780492944493902978965383553977745804172760665309353455503042457586684511988631450952465408638090731915800709334366100584605891126875601782381062813689363249962109077687234357416665679011045006176913993375788421087553769283353138303638462425579805739465730617122606397118814735759783184103936282916309002466147459214693520510977422631388900639473038555589223237132056036518165122161658209885792487081957493668747866313190138280477175958887514833594133821239679346312400352554611409005847818492183152477888076318759754047032437054972959620511116020374083465169615825554347149935162633610345655235428891127981152491909284146181512202508717977664317194586511671421362048930264036348670990798514370524720885856791073091945488471251269618572222394972874738130509791998117786558987617099133156003323901170203336885052961753080582051935491549954120721441512464219458911674366027832479024707724638691367794151093937436534361419212036658236857677978694871689391760067358828035860783857526187716186050917482779445714525818478045576905700769255136269437114537356756464620277711525966706269661952241010171218512012488367903340087615395867816953649756095165440149808528815693780286915091611121244005791254327417117942721545283085134543277862257285983493258104273543251312232264108190991434578200370208022761173302112450412526172978200032077678301373109080546055733779245046321321476049892024929274813116758734909527123782484047849975521819690538289618296156652388986167604008393655321279718391017787488045647246364707640368546855038006513179205354287637370535157682965190429334538690146971281547562160159303120164225310820306171548155707756865484650452482730474015501968127647540146586059191655755563989803775720597334808873403230790210237573895482014794065284603770968313808363531859562181945927561830377050101874367479243719150026124037592109124199109067550063113536978312539805221771636789315891491788318239590590348490088462138705687233889605307863591746267499265443801337766790174743649552226501639844786884673922142069237779500297571011368314460097687384695481427701613359674408304379962670280709814406192608334661269503110499944912663666768169626821826663953483122067728292212324417151275540309214565389816334396434333791034600333511082550934017947841227484446252134568893480828360388811316337540334698997590257549582082348695665835779932771277774326196587805722736887320869108251872497845845180116934790353940882121040356611566352840911610819464318147272694182145409361882738589684957910984530038640753852976181170742596163281732390864464396164339663023392585395422733514070411926788605524121707655270882806065951557797050276722547458888521785653664054750563531218151572087944590230190208990171011715547956292760752870328853306109694434995411073280972096069933704879331489814133710568687507940212379677770043121365436620395190764651253872133254566788899086062565120285208675380917131454715993342279842262167344928750087364285335974568900797298305287013724869486348502379797510807932424847365481106558657981335501702124903101795403351358200836824972645627640515015886351522425374688796589429757151816435903535619417329821773033042117521756735991169868416756674809121050255977814647585928044625390164145668790351542468750002646461660067512106912014872660708388516830499345096096767642122556866098346363294462119955228657714187853057471774713974015431504700537883561471488467865950931162461846562978656515364219725934926151431398017637101072697459833542045941321642629695374417663617794046962216727150001678204453638919858582239889892509247487472222728624788518809415653343399318086270740601828778697788737999165370814531340540450283757428229539897728085319888562830766572898216609611126665115287208558749810755283095715631198980758948524799846025541096668103818086414739854171908183430190936053652953069061579315920853588344609849263464797456444216814045600513270389551396237442379347818152533268508748392469902490294658845169372373144821739909004726307356603901780453111462182160265496547966159070106259842659066179151355413308456379965770006386403184361375238051384357727937075761926861412447732389698975465864269274427283347463165286314705697708959748748905940236380443196307858045783219687860192762794543201963149583922968004605516854137512313859678102092176113309154784831852925191508801914296856294767878502217379744077759033043253201473448110499429588331377978423556995128702115364122973632436676364942482852658297329458708183100641054157024634300363268008466521054439435694116697073493549341246699281392180836567100140342442336472464773004423159999269963998444885915919672151020508740152441132722224735985407276268590788930529909894249438415713394480449093953930755887257177425140589402923045453245346152194232141723793379789476297937687067447975855347580110159061328863769912656155730251822315055404203719201987199835533006935936248614363415173552686691828543861151999088306681072267115941039522539850448769512859553323850897403857207158778239850136122735578400066386132805420571838743724547988510825742431902121038189711878918212438320980694507498867870800362105438755502317520824019846043615406803081877207728530062108656588720772752129354748220594295277838081583708934065630993831330787725368795832803510145053681683582999845073370632476800006777306123626434490964005590038198894213955872514326307927220782908355479781863699245110196956968176634109974595146699470439213820172001886778819415819567553185281440637075984661032675278211831927084448784957105368613443490627103349678555620022187292673729807884145442145981834331109636922602070829700530125913275335047535694698937313673385660817950906848562645856556453627485433413147828197145883941262959442621348823974073752033598390803254465251555991467731892848850872039421561533295003683047553619587734931033858248428695405540927217415144168179787509598468753682887130860248690891593461620955620990387930999137337134741902879250119234191208477864824446617277864906809495233919289324050194268942340088305455885996044540309692628614058020160190966069479554500191980900571266083284102197701193354813829338883371828701143201532820567692604137195766098744996029274683372511594883497972749755626426562903715762959576849827375298433653286114874814325614456327450907012952148370893352047944729345696966077437878240950491943787315042491808344039695243069962165002124216015174081000719322956552547938414107656727229393022864997866455178358421587838310877388557340446284370797615107423848586284210655052597563249750518599539637529697083114744888548346042780429759299490605599189331308037073779619134652191968814334112236019713805002607388654741441620877606363958792105095376345044036542073913184679033105519084569140039661994392520677930982891360408571382112069985840797437080748836438164532582806423432953103186278087004751394482585775128194968546804287307838553241344162814051857436614962348331346341071196006682144787754306299185680079850736373304702018525033894326141449349632481232584131360686157689979802536153168813573492519082143605919599640070676961395399983691363212352641755576095854001758070661851735056727161395757482678418425763776972686087328362428709943251001072745854346412787614568390976891743607114272883937197648469612851102992213888348073531985466019014630110812464562769458124842298468999027658957524297424463808391390681441554775690658401072041878111470038684730328233346019617605004601276841542120359306064501021321425120970744067326880249754489876140154095243665166347835688742768929401247057386242968886719862947105909667903706900802058901409527779214144229191214411674609145301804984689419130765474052961741363107025599863103303273191710210109343218649650289479175119700825095326228419332799963226039124226882327940359962810470789203131715027654194477231492135361727488236521233744739401027730705058390140031075621570562592979749168021590288981823795788898522734483407255608241791187332341228014957016312912814827612723362043300787487744094200777678155943484005790614935291997813617153356352866894637254248537549312565337653581209796609744245302776656827814004101453832884923976070779784374847657587170800549775900279509054417740632771181157362377017587096958433584057012899562282434843658606174514863073024839171893849263831075974521129725521781428613728138412872154349378651265730048771902598462770265515677594372489019450541166639082651487857475221832416911782759633680269418115862333499504894194889457589497039857722460690900240527417705183599420851985342432534381065110652495339961979034738467233897362384759060696067017253683692924824932640066843365127559652440176457940140736886828467682152702962635776141743638897098448416927928999894845162270512871874999495849302999139686060893940160335341845789970084472195401794587710677234333646635094820510174042154412247705852603700181594059740473742448696794731809037878297226877548533582449721914857042998643042422233915932033575108010240093573111869979072067906840919402218392894652997460735391147967072790113471329651222242882322321006400007138956394685337721779876780179713286363080626252196017400923841812617364908589507234008116804681313632542149493694752119913130933627603722422650832417704770753970654816103542364913105533609012148473862417228544883555205610513905579534838906390697665795619666793358509937209444753838236923980709515291458589361544247172988988037047293607819629807170491682536368830657052851562856696491174955795612353556951185905512647299804244396634541995663919299685727624070964724376352621486218227150708647821525326382499149848146704607619069722230434394193073829803429361193151027350832269211476456850813721653086605588451498664094299046748309510551735046276366158813684335654153939100504463755750987515433906336145879445575001740051303156691010649232739172518125624063637541355659870477943347070422076099545028585773395994759168512330116140389513249923455962141785535827963077383698018673624210281988221143155195155700712811667500799618077965896045579860060352220278786807670547035986963138228928758822130543619239688172589004751618481252652667530620944745258325519180754425342107604619588594368554854053380150664170300770524665810621790537039568687199446571529946455544828501212043496607032374981068245443384903681399855543987496811485782325476338628021569615365755460249694896864635891009182747216374957742585314862245498662223030562045824216892662575591025079841664470112658105567270138967041745676833212162368184875402662653807461667393597721116607860449461748469349916538989571301301185923061717003086821029026871474231228072527191943074648060499787343854224310878466056829867461328250462594401032308533606237265013210674384947002976319307373549238491874194054295473227459914503641289633635660411221574837901424691979924636449346614520446787630193549410383339452681611718659353212509168268052467159883481130433508696987612980480013351614961241122289329215089980906006662034305637081218147089254590882314203485264334405570471273134266500753789576656928393971519670020266358520139026154953222465932672007248770262087805208140827659666957176581535355900474622127778181806945701498817631467085736961443250364606462559931553099315331253035207671609025100832297660589690390999627876916752168140873037326721927385721605617544812432719906468144937838704803038090073410558616191897153985314867055880053783956109764292425593361403836178297704891224571686055923562142857967097045101034142909413429383091779818736262878937491567619290172575709305369897134670350527710732787407823098196600660104315988319554963720429525171984656738174618753801486900542668512195560843708563287570877496263555611725938352968521715598740216067829791874757866791062785260176241032605301490188296299002512097089994324580247247176917754097809617795955803691879310656461207823984122375715024912947303049749961110585196259915491454332523786062324442149154818713433037988319893438826974511284296405182294811266698123610777254715143360056999850284756730205257969650645704960247682030978792535670295833950141040856072208611913806763608689802376038624549998588652159071341304065174800603609484154109256700778949501064966483006737333055593241519306577623315683692335667309431542111176329782365209949308206696151143359377641452223762728590699868802844609572780665554409256047925181111164940753337244284840732279218824767880630642017756499273885112705316844116248532622297621270846834274308540456006521668958066451927457540937543355235479826129938559384245652774126438943347196604974501847703145324095398298553938843709823989794002703897490313752037278218932968117679914949071179591569961285001315422426264466483207354690782407097924063634289818347128921032697919892312303903867153579056111669311743223568705136582108797496410914898088435095573959090585252328334230601239403119999892373305729156922410115493366066142068485591046208328320162694814257732053713435786917230166090794468084793454307460635450192333678372914874179924857426806855319631661991375694544645715454383265432845306360613551563107094183883336188217610673366765334148843364504294915595984655314836333908333371948914853553419638999310069420379785063711733296381401389000829007321683404624738005091910001124819273236549174200163142371288438301202788759143160815695174196291887624762347852445659660215001488800162710209335173644663012611584337532119464009940181753128164189067623085621697662333477627183397229038802385341945061211784140725329560319527380967949651028116346727188597862709662907824820059604907418053744818859793967456248688394970698714169467782054564150195030450680662974239130441681752154729321031395388535864033115954427716775172582054674777852153641966911482574681099816816406644348245726666946716839874972432522686108977950249795327279187249045477207371467895275171963540678631181762445363396619718490148580187251509910183704888664403764655911421046746815709019544302060200995276297171418338215911156243614637742152393389414168126063030994134326160148176452827702783808831840899106670662831009297519949011002704988144418750950992331675559396285187689442316765173485800098594274866502101707879943111826907456480671994123872607911613665108699506540257726390511025028631817219142819311139515166025816744169496463684019498876801488945419306418389811073691100848318364523047239367690947275713704855356582126390341287306258092675650499701923267635346269217691772628011354191468301059552804972881088716399390024431733151327244519688245382607523215728800407087948612254667863354874498846787032382391675165980378798096930363426629281234044926018799885076982917866588821179935357847699706041963676156352542358618197780733364010851752276805876354985913031531203744493437681287061977075708877984607654359493997195267873601063323225410697413125022949649975862249087389149456909769121533707363156573971895108882261317409350309304952622633290587844503458570177739484044416633058555031246826178614316510834446614247279338397618615577552577924453027771594145512278808252312404761835905496243932988961257588085328002363507382700208092487532468760581790185228946181898486151431591516096112926997139177791413979523411292228485311234837653755072594887168075349280936603639094498180390829154833339230101155421443822776713667604014984717367811886760180861491101292162416971971262550384596034772051018348871362532644362056038324123276420006412614214854016102728201612449124442737144024187309824404534994830703924295675865727022836372213281251937852605327044117941382804331787407708959419319813065347956923597552820666088802813743241632857507880674517654929823554482715550264131145848225690329703699254729888140762949959925467302878932081050691187368546253397996068933730767556394020808849653172250889694578710150466973363518855513728311769149575630886093330502149137516605539756997387454427691496158222531585934993452473417112787503414827821163876114751170485369626797923300164495454279511407356460147867815227689216747316427232537829424657304863414842052952811678998641071456465364399993928918512911515390371088203895761328788762863516586360463483179205121513562866930882915945825612409069502988771560074499779445125341803861514708176974407035274571492627632069561334286653639932384599244055143186806363366177753983844021355133969133874213816056006253903377022492099150367527690073431551010713381210222024776797096821815970837621497864302848005559221654026307863729822657158673703501121323692429434425403753354844316922539496641433884778937868852130122565354229438552967510879099844970246603768976818047658390012182795753963052005602894481973468289501343369278646968849590901758631926682781588627687121904278685493712855783976651951316048121054703852401209566062356768007708387528872378002898690346310410957716460831425125765982872171555250444801755096007522526118443934780403629007376931912966217993683069034730929507984178869734136515616287539912995701198043025993820013488510481316868493545974482206393281187641482258001432711860475416059158933220322157806883666342357848276078923812383097248314924448382358911175536643484658349382743503279137604104657747047702780096528341806729696903094364139352847677649396776108841529225223274527854528383548632653957028549704584999304750964318691160438967682033641668424947179532566411250009596865056255855324074210731493080209545819500908530473346329592206682600176275318733092966312450026073709078873625362295370039973145242338958658794347769496384079415953441668046773374141637200816205277823961719760089100341757683933094943574966092351853186592369586669133150958106251387311523687787263743886537734175660014078537515005853315375153551491084940324859282114717171768726842573535727270054573436610416659475929929523267976832763854131211742774586771071226212239499906949751672224296435000547359758509919104732400302893834795671820701625940273363340689892740623162701191574373195404551664019971940068952031641333401772921011991609163220471943721263450758878458470616058096941693208925395937894488902223670222919474408200836418062088124619828832572964409497216688614201160395260294753952000127618567596965758689482832268666306897507687053664399113337842756523581703209156322741425382321430223981334082673350829648070020397100148796925875837787782870699486230144152524383076324551580165965757006871210009475530069934081473447935114226240478459548721299314170026402313741572440849338710060378849534620441184646602408814764362993683027234455250957545419057147431947913445412005249536169677333423143262136274239925651514310103235607479970071331481263895738668652388893673851871830495688117851139541900829349260678331505278972605026325301064834906248346309521201665200638365028743588764419644875420062728399501921106558270062890609319678305727481170274825269338299986401215870433347948454302815155095088116064820915794643713750706315929979709457803538379909308316920450348397577737626250007482714072437888703875422533831051840382603663966902594696779584585446794531016472024607820961894409259590049175558951233491763689647810893228390236919490576049620357076659156820342909459045062447177051159482779185066531716429495990679833544696472561480212449995255766277640162410011469154665116021511087505717856067940072274144147172542962848273831785049163949807408848366563494570424983598050130671041158749500906762376471900553505343303919917352904859374401696144073486687621995910927923074774131791500787182408124309181546829053368845784036878649402795170494857456256493988267154541160179210012251518813792642878311270851661926360570469889394283648992420177611460751080328193717521344617707975428122655390812487086610467412808694682805456976763029889288778516358659566415385134255380524913054395341152923611698946214486861934125196616341269062101309013988210576914711122908143646674841693106341716582827273984313137350760326829590169962047643811059953373890182083084485782404494165422118381438298535926647162564977580278323626322405278174985983520089285407584477526905968463655038229349881384702960617370260247908537678756527301718721509702638338368004100617819940267761880850490381597622987929687049030145673750995881622224490968157708553192279288625026617889537450098384609947506948141835525353487143486746451668033539642135293456285587593900580489825504410539490505912984626750205492730338790005379573952909061127810553802430524593817886531045907787479528744511105298252931223355861105624960282823229759452522753010204817053955195144793325879137534646482978467215320956467893835056906625145697491551457479112660211930298312476803418561554104537212486143199608604167555732421878688091494178734386700683090632586968229970860757630431842722332207276214579143726862319007489019270036741823419148895774182641560769750569826864040900432598569973049435326847639419650320000950571239878070918954279675832517406639550609895927265072843159478621049009777609656622931305064595638122526242229803834220352403997907129532282273266575545115036335398650725239012602508186842479665743300735863832370303984973526282090207942674569117299400431484780984708888279784658907735356377639322830736708682797907324105317280226931388908954016033954844338441363884571389904363265486668159873094998999185996861333807968384906722905898035132269252752886726609687435612273591563655761301072559935120927449090469681495211269383826041106090776718233030980241441469700910185406143525334354562763792217537300566743429199418162902641396102711928652649808551388003979285720627454439045839901901365088593473223630796434612781089934230722282994644283547171045773059372557417422195755125216240895636751699693032074495903693038021894321724297550392460996749745765220731433907533390239473941821063837898144470072844787825489609784951515007582039725588603960318312900088823746144814979421647536175538181288377738045467995672082241959299319889883951308133578085527818311595661152323317578158002244947344548688579689370688508090121678635142698647497482794486456203107920486357418281299970906326747934871813686964770752742743335309648899381356972180082260583182323061452251394581574178934859915556434648631257096282727033353665926644813303521715855986574146132377430464996495095183344811123382263673203415791136071837058115938987343368473200755674514456129923573977935575299921972583184279865821594031556359145339216864428164076623335482931173819113540266335432425759323801489190890521414448744920042756389972913314163140573659243234791532663754556404243535485439324623038320240291467776453479022947248821766979916958444767122196210629355622185022440042974811198685146361104684164376897769327800370803108350886934487215054414729541344895100853383417171540495279269078404392788006773347182311283443025313622721514281593577598062454226964389804205512454799531449634682135079812145128725669323023037235488759704881400128271372919737581012054990501748360036865970015841168305265100966161021189415220971669779306881497594897995678104310481436330171958164843530063608519355569754069368955293272172954381662520455188522416068827648734164370935543929622482142222984561855522534204247263234304894143966853772997393310948590145792859793115531038082015331495973209741624895480294723683985715641791288527062906450071369529833061469817405031854750182995194211448656716494434533015303968778155985087501082363672745759558297551004543763565354609930260445742048720638244395316280519079327716560321767573898718168665148183265296095114492237534856857367282121720197176692520492556132785219380594704870816994052486755727594271508588737892680091235004849168005135683234322839650527914315552112779421117672470319231182827038187148245343282062278960985205764449834862345937812772271023123454613356576955004986080032528011246788015044578069195963492749586472185784905182252812146246010657134948169613739882644408373939932028888361431493000061938109908403952985624965434159847267170510431016673484453032193933027685655836667358690419592716223000178821751005937694924267408532379582015471486283188160771943926275062734110256390424414974038410760771909777211232547565003278694287662162796860014604691423717594124995687149099969261532896391824057839118075254932567506708398517988047052271216475588866250639887831688469873951414393515240645343128409599313592290016192452677180195684730554777001766223064848599078553412521365505971080214850290078093250565710763919919816187863503314302780571269211940245414224276957716321133539284492386920006009329692659579374334265306811739411697919448880511330701741576980830328395536958841204793768971252041372947962682825487282252653531468637337304045447077595166081279141539054239374321370243649699068547194842959405654159366079242342704345463692547269278516969349999779530829839327719888584866428041472302507688250734441216563540991553050109062778181114052512093974048619351261432325106595213288793952457370620658582819133447580681955132610376716658643628260888242430573234179401419646595845826584171619105825726096608722056894512102532855963972980645751786583881465707225005004306196785585959911567488482020227329549949983753282378245246110952903885103420575233894139914595532564377212602855098063291536227135664815451589614797631452661993143148872329659583663284753874498273373417766326192991616297997944738750060433152854638427921497666366135203878842769542090897749134119696581788367267540662224254136869957775741500234637305775113930625665020787460650875271893286445342536289746170007819988620609083812606593986065352885554869349201606873276416428554504423844044947945150462525082876594502091862332982778390670576058294709538384539818188693981116703297886104458186589335867208577956606215333512034503750209929925124832985180317785827817602256731219360318025556891111657519713254846797827977107285968104130193728668332102723866792710794202017237356266894195190528220830470947384103403321160599575705577352901158805994816257044762189647454094281379870297403891859217317396739478134120360091077841144010092271443493115844117943903408994676877022882215169772579285140529831577693506344002229034655174295163486961563783302997111684466037483832892580804129132121195458701537113222156204490663873455808981661872000626562982983988190186178045725016471957970999523351166759353714024528198076306315149614622511510097141611854216171729196982145997822663457429409519185896144368165134522633886465252644953336358057944556348238006390081617215370273347315643536845528440495910121899378343892603413551949576646142007197093102100954330378237670333723042055073595934758713963063088395060420301752357825117027035817508639822969190547756367953543940005567206656134397603855356385246238534449027426778139659585785996352979027975647747894542073637141869076715705655834933711110771602714593668062078989481783519828567187326561639474668551402277806545767817616318520519661280898356288637231296320237018595596328157113417699738669810701295735538762101294688744321308421754277292588810884929681045854950813454428076963361020227822616208434760328761907285943935461318489551810744138797792090800158744416575656283227272012380506209376267262519821041455520682546548475828167608246086240058487955492813715207761169976370038515690650868396231900705384753859550073754571108083982192578966425271591531891008987079499509158150333252305810114595568854746222775539475141731069747560996197219841951574317492113149047881702759405428127062592243637940807069471388569552781070138897041481863096595404676762232050938594372288436713752044778497037671553370471895430521742138009221159363076640791306742838563803989869575913306461456399570792018474045912047399383170744583236656333057892047474349600534453711598543458916897905825960110652000319392102886723498246427672485496719124571165620640293630317819848267676389026762474713212847025191770169286928831274957670070374960958972861604422822692304848670540627016494330937837287801366588753132872532766004110667017432713602197149502777618230698693990226884327804010782586309963571318293630524328956144180138773107982387089001399042968232524081434441160935628072428616134680367527094575781265084193890674555981628749040377123740492677834413789775317516291023220594392713104829612853592155377964551003389944427614651653799025212674070476147853856356669586192813079838071086767633524261654562620341211046800940112949364147844567406456218921787354595574344573637193693797227942312976364621976226953212415868291206162635261100697697182663504312484799223060305243516804099502275999848462215874326673767326920402576465570119615533752952927484511872786360025232419353451969833959128169752460261262813292779486376851557616749189939326001688992538759700622999433066218612226224891974524326787011183791351352553865464899798148935321106368511847520830636568784195525696171120940399456052655489444377652801516824721877093083389459139055070682764249523475134924287269076347107643599813371922113878477802940567582723212203353502104555356041299978467949260072710460906178255991810529856844928352965490651753191367785424110101991945395123261139231127258370339828169654204969018481800005919933681196213076973827742928114392343088038024195117792593607419319916142435620255570884640422249437399364206455810336099069646972393929230773797417053514881061898451367418222402930867322818151499211039618123170871700383698147028803763063740283218021457839907501507005195855818239364346618411843141263693155568271358761720926949621808705616837565777703762673490574102031369437832792246253144816878944008291128903616433558884390295137528486941766162805193749252194291680727300363277377233344596168660860848483922328632114744119576571364258687189492450780821033036941537939816867981550288267623599436936659978095493310072512889418724486160391838539006080805524901906765589364257806929055352721656058814980311268397169448488841926088992302557762263018275012082955019145838414440497513408105987400981152787819389515375459363002546016560733651991663265230249733935535383500655433405852674258330615552520077639085575839740345247377045929978296271674178177490523347012506467629014839416167267346403827955265563905179418370305705468553484490248154164988401129757041747713696998771187336278077722459460069772069359927698130227367634230701876745525285927699962520965890060171918043973215743890732906264806606325848029164425635743658458526042174413590319680655321979365814853747480598180557371125085490168586573673254753363171864154828606048154921041504229046237267024459718932688257119316848842685649609489076128207680864050843232842518719836349286785253288141477085076975703287464760335942362095598600089102677140456659440079085508703044655047626647228044711576202349308142491616174772484990161537556017578716881253413878387211980685009080515846236732884484942650309144357689268256357754899579303656168802672103569710359472744578377045358897171265689191905861930643484489185623934745183262024941021392333043914311720279127376037962981836619648769173765404537140908245602834545372200769411962925252625563197368892887915859009267315420741896697668427089346869031172965278065585351695073831143457673626444303676281508882998738567316430997749982363801162417793668736855924351748780685343549770897725784971832556543184957790444314541363975361565599083838996836931913440269590511480031712008522151747141603576027737869769363389711660137302706343219757586793788206099618470997572958133165655956049010804368553703255920557893774888621766688652331454991447118335533838761738531764305826371683501717783989649307594595132665635435726328567160580259033920756064231675434470399354795134941941586362666132324942961038981980869910004443680239500754324534801653779686032962437587372736834269723240457672836025986426354465458068093667704391007666213862244072972747040536750711584744574133758396475363379826106636260682013529654393881703141920143766524941265613906488006986235365156535722989807452584517464997992995794013812942497955321632805972173061377253717735393611714636014560967513846564268325395114706723843277293228913426850931237832206468768371592107998754874434134081602075809583950347222168880890784365286554205015765175636557811807554478862087886166299051863661126822374870034525015070807074338508210074969465773235624363645666354422667313568706043427483759709965457713489598242002069027671352938804360825907165839756308744220588887324862413362490676671699984249611968859830724982328138349805691667089947408886445584520037961589700895638109941367110732823001108065993061301254229888474616672182122169988569920343180408981025624179462126282074049189981208910152203839078540654874862533827435498870793670168003287779636760839626854989561590478949737983706581225492982635771086233771966889768195317281532002949410013615354475357562123139338239389669322344448412531941057982577668852907609529158026409472428741367005984133371163626291134952206538770936240634037744948445416824337113664713890506629863500393693983324424838470326193684664249527102735739780700538553212917186647786797771554445401549562576984806808647291051960476453767670609766763585934724262901820344689793934658058953260943718252757495039042373486118499617488872601227122044870766158576752763266157762432479126597459864270793808536865983809669633097898659824173131110608770270516498181380994870553617131047915194444169701356843777327823578463718939867789411912237291363251867715307581044964104513854114526025398827529440493936641711131382378207708003554861014986797706888533493190299684998421631463664170223313130706039283296973483155376877562834515187780844869458657170053404228986797612458863208554931764445954390518863199128047330066443063859566022350808204860042394117839566353797566673579162424912386689821952602241879402399245773610929626388020369903184106020181557737240804014979450891938670433207625600000958679223079570184615155029796655173806909808056546114017232023700152652150707326670216819272416746658358946124409910508905868375770261953050098461663303986578712962220714367865140425080002550654339499550436292525535112637121992599347942109548219957703971415364263774201492059439881108005840013267071179550856039395140028946682732973857247735053209686247144747229452781918073309170275622035026249966119115633994646344853194384028945970602041227182559922645146518823697979618465652886648259443459802785078425272439288578779847146867182847261857657507842189915173031672761323596159344873179484382436654116415638135148588940743771427299508654567405197842275055523625219547338167398299596826681732385520200019137769511087844235449224179767022025815862862544381871342602086573631368052872422209280181348829604262619964908367020707874910768802606224232709759769309821078536613464671698707496718154010041876818330792968908189746913585535778643425847058549880209973208982814770531463057166479472917344478812661946371775438459400231551696332786034569035853689439922946055053358584462552327154633967982485392426418963406544500184870963746381993656990807968118080101955378554155973847480601487762836735701263351325055009606170486646252863235534923841250376437371429224321230932744151702635337340481659674271815766424891830386130163915214267152758645935788528267196851902679086296044411575683972279745185944777553086820486594316343800015694572354921341087656890747478328648195059961204002027051460448664986162344624777128759238499434134278626871212317053588793128169047170581793660880607205421300375402469316338871688559633030480507292722925490508327199831435520428556463337188836611397297062601938876163431178734047375639278619989121608886545707787024242355229083834046995105377888119396457725593961478033585142234182825271991875890322130972304800128003966466544642375288874036431370649153399991115246131694997383325081326256535635254116578029022292439348114451556197592951701163611014273812796664768993532528163558051846868437308251805811163390857214361859730745831884255941977196856245154131403310512879865206390673692626716685787083359420212161273005771173363727371364796053975284639570714849892542138062228985835493262974911781845160778246706715674489024052609386685092599050829101013511522517896636920344280701721932593506132397687275484448361977728535988498083220034144922465547947438654494342116379489802109938355184252479104157051295217845187641443416897171914056565769861794211337318042690251490884388930286643094977273891547401262273181168280989135682277372872104673503531338242315190916412184774536455788792810438028407979452722640319132432467295121915824434608396280007806852220305545231295969044305735590052661194719646900089618006421452693253894533975253817100143777076375960558697520633245338379043758894209417814911071805342268478414174479946206599863932098707103530244199237366392597249431654753054462111564751100152025636058495540504101769274063229016920064301053550892376766810673745129443613367453080678690744974601251021512305364043057653177948574428256679537578869110383548590914188425285496692294909278051797238391601784866150782965931829238788535700643224037531821589827846690422395555804515070601273832674264246443618495714921775075331756540790575358906903697198802549393552026038381253611511037388100183535324618767560367219846238216990489319252635470842160974570279604441918523965238381884176038085164940754241808314089021109278372141351785171420072647536348210889216849401099425915621685652306065630769451319245446655474639709514995322159018235069932845984364710495913254924463492535389498508944553007968997548947977683931090457135829297986975300860865085363770972574107588265949584611612354753199636896909530537389631635731855855888843595098783029066780761625995970866906808948775380007702501338121083869323586791258990717262938741850499793956831444069712907527730680660878463389036702797627743380427369328319005341111324160504294749022850566966658827953946611710525513574387467175773765842372261377586403422865782255280495276318746001600458648383811967495218571699885586706948470490296956532835499591100319810407069735553970123797602383054244321009341632171066016836918811097263364248128588975828385315997595300715152429619762835257440278963003710609455794600221835293838404408887691548691371503015676278642833203589382806657397695332792657255705217928508248282787130635555102584905563506848076190283014607093553842203748929417607194767545022470169535098337946443492322993347933439802454571758181636030329338203496588828649464259890188927821457162958350667661017271299321073689414078626389651352869932189388893946627265853848755441220047830792918321015761494541660541588254539472607640635946157008022403979391727923452170497372431538058666042209696687606205963141676176817149538697190486008912552301968786576389893251782342296047553630006481510938659362275411491809833194466002745412352616817386195855692427056473360213375028128872535942634418620871433700445293104902859080346301124064233294177610523183704767008539506224216616228357306596324918737984134833730310470403180192979706270711600915763290203061963931138154621997406241800508028233423535278231953683657406161851703472752160848883006060638683408198683065004165272466468532029091415828299254174868721536105809135571413996036331359226300217710861108382750744246186001996563975773570583780086454058599587766498367190226410167383631420245950793734735229938170185670589522703053401913198037507495158711755117087161291267911719563381232772779136160043815879637867805924567960080601436176420669599292111273729920492712606716001392693656039123074053775631613089132962019027021454588389368364672698068568275256841942788864003065332319969966866030371552271889336050174354680754749684546050763236726275518786409220309756158887275778049158819297097227326903740588237994940000869309077408856728799831281010095641092116478718263682842627760338097103420302068879217751831002206447446937453383752533790699605317021021411839480947642762745259596403132527144523915383273709358565707549599553599702015720766679458239394255018063639718126730663737974037741018706319501179997421298501938577847708012594315919721843737197985770699458365237114521730796223537468357856741237906623959173550646167572325338906983792206609244526839705921636665673162186946842318411683936723384531685008472883788663687765877600285391995948530172088709822263810309377351296451805799964002460702222807776477559037856366408562574729326209632837987094118451245118902060796918319632967004040848364905014769883679995332801471307588049658563686330998943190994281129155389816346996413554379469277915302757527183386719458195386095836266716932991951312420069689789658386834885605580238552981982110010980974664173033062851765856040484515166063637406697318491773540537826455643921649970599867554437320714629550053389458185065325959364544761054372006270003885652730314350825241590586500734021104045035255720632501381091362255444945600256743188012401785168740672455352655202130775352267191840894712186945350781528363888837247869073729451672139355680166689410246253401032145849299061464299169061506819983890771240598175021194729439867738963133128476897034579314462296364326729789140512102247194437580193972742475290827063860820866787710029352543026675165190544637741224001991318786457193925074356956912931971302267980067006183740219866699396564537894095465257822100693245419027131449992772806924961972714035623086159734539922964470208153699911727049841292432965247739049729214636780625302212384086908964191223451069240483103782510746912984366050335150479082606856750951744736915045354800536767246668341292371727668428637447002100749493639965613709905447625229825815171282749917807778315991903176301519196003892881718313565143953339297962101468659043196780051781458262852766794261951103823445231417210936366126211153776495393610215005659383582873203413081060087978027173125549539076002872867095504823467300923466462948522305629824106067320391443904105262385291968772361575954455978149248672994848379467706148158633560223920982882240766926365783291897235288472935906589328387523909956037539669755368253121323251725275392959427348686932072523224908099017878261962196868175038029589744345510922941442876433068941257695239430039858425817721336016483644618522888956089698409977235384499644272149195377236547350057555091831867418254971491168682917314820005549490418662119173856691138971207061307005130595724466541103944581566093278753341933504363627931029841610856246848056330776402561943646925738907644669614016089138052725030702753987529846718626939075790026611822089244285303734613769767669406737513919182896959228345747605713096343690247855592263281308164186332780908282952711395120298348716323095603330325568505525520257019325130077820164204629992108117435396380376694091977786899251197667682877450029320157998584104350894725584242141142974937932003193416497679624934013718350701941772906441804082750974805121188230290091683617254986892224409584485575776156636359939752787040717769440161066762603053229421295363767392961573955116573219509124268746291126231045688744557413273888737320213553862324402253837767806970429163059029092519142246707349602131294218210054750816761849764692371720440502293871980291841122270915741960592878508372389057801734707206060739942623736574374373584734157389319801903660903311031446016971711056892802673891322129655934605196137567468911536697870527453344122671873278140115433623316324784707955605507020479879645105003712759420042384109073490633767325572602597667305454903324731231812640496572733054592956449603267205947169497288698387696838607071060185431576889242203179482498864000541909954587740520878490513287779968486414875702423290873272362061044465649660466505622805220654987023187662197590998167820392504332406685375940710708741630855583613900083339880684535989404222073627609393921341038829392304900397639428031499250364015366696532614358604152819879564765067521414804342344680636804635977858502499218798210802371149255156014344608279553732666746690081447527361421964346848644059476659012084416763750080937868183829070234620010545742041089388031563615947024516321875213058829362311593065358825866158565508228305066624586325250443443153546111255428914701364235135855107786719660977573804359365934238071960047532530247686014404382482043618859726872209986340795801011872116734511276271856548146518391838496597075841244714011371954323955899539395903064145080878144990562266098595909374522135292328229318635174302026087717332006749947550354715608738281538330202889024842711516372558922952408048979053616761562512373626722890942449574128234784151798691088896142199797606361124130138052640825306497670330594081015049266753107458553391623533975226790939628331958639484853283743067729157417754121174352892899368785691390744124171536334837717200220195643296997036021643965335494168292475484075607503432052025249526310594541220717784756467177661793528428558958547352003320970835933593006808087442939597582434680156729091679245061403341750264695326706433548644539520371779202272607565295744265318840221778184672894540359353467025460756852363443355871860542123946228410164113097322172136804894629463222004347207426797966839341482401843059227229042295157608012174471219863000261656599939798333861847465324118285482877709869284080074238008545826168143923387234680792320352306933484813553373580072878266360787715599437056995059389447669191355135508808998234505501508944211739823183190930361485366000346950386750287552279640391705783199606355963915691897925849849889104803099443718620210817524922969057634533206781756299188393829620441097590027602241923065122854528264277056401238026491691120604936023130297833349894920321919942891014469762415474349026737420195839314318202375965743726846398228987985050209093891795403104793320658023749586455300080926493418539213763357999748030474177046737416730096538144782996147639900963388385516451079000503812229037619339233885990466184876525845515060831180623728691684660042898428029897895568831009227361032909864393654403066988208684314162757375207866793221254269683500122822889622262656288585806719082802802829841077026160076924507186008469232115271750864120826740358283071873348427231411551924975694060562333467333674512679362607011848415166792064650973897690179286632923198351856525079455872421533087598538681818118056279871066762230096408704926554918674890793929626559496035731866674584012224098470845007112842176211085086422924732720300158204941666790612193418852189465950767005104645166335302083177010731428926137415252680901793296390442506817212506409137793533945770512210779113936369517349654737427195674954285525572057244865108639793452117935684591892467352300511897381497130587387922052096759693905811237093881962505607173657407019853609715778377387523217276370209152578026417708174723670479742190641440316685597327843293009018717380153048140834778838626706213061885836813768027127502326087197554328220073727798170089051676483925852935918303085036986479529936183424643218440556976035408737776964225974924453708979343649780044409172266843894798444162362233747710039981458510735404303728126816103994796194417476753127887336652065533377465503072695142832468505796976568306124093448667565574392767506597496951473601077020294872238330855379547115671567685802161929655581441360576214601115599748487044190472656040288997697894456319786257175520269018854715339845448755840575526056267543877349597271373840650066735143304655074788537640231276168142249299017271038804814678283464686675047120172400849278785008027111964069631621456509120526854968196669699674252887623441096204637758137813444477882070146472915344635507875216957877368661671928643827516031338813960449600528984038947860970050053666574129137659117334566918917324313484379780718104201727750849668723349129699556386467485519943882925869647794717145250608294257232831640648891110057801263320869027166304915490610843229238906034208740737709299939674342570155995103928278735879885927593834182208544424313562422647145369080415886949349824005536126182461670374636095880604621264672194499754763150887888331150706279587533852305598938720848419994787713646004111750826037682472355474213685566718752979850639656844766724836728588368625108718513173185488547978501350756080233570087614668482843034398673151952349959490394014822998518441952468288162771908987124562117130984004641949433387998785457439183154349805952911269735134949588049444201271995609371638699111824179504153858051090694851833214408871221087022436711887533952001185110424841228721526501697703949113484363394449251984365633962010865597981958653835592002273820182421298495472996913930288480709005316448464982497366687029177564010994368411451552236203977919548799534925954004717802200001565576768032690281303161359003689880848766130472119984830766662323174614091437968611586155335875650277139700219479462693411577849408486618381327493707063034486090183046991338683104806569933772568223203213425237634564300508792798964377448676422585386807885711921746544536857917066889309633924510814951605700303158061238878588705419875400706228188815746026362746611346201720433175476053074570026240450143838122950008225047642432260353960390876718745019846722099846811108791311523131556482879544342031550034467116657602093584006701902842321667866256035764510989935433328892687022067086652741007946157026312565223078667025727362677315433095325507319831399997786163513674057029702417367684364809442994380141805859612569183302192020691231397361244298002782012801551019164966395846714489180459890843433883797809517553599118626837283235291506094419239080834458224110687793679137973211666842844942285689289051081970558899229959555181220583638610686533577056523194409081830379048845187045413116702371592431998876124588649980304926399119171966303837782259193673243742243808977292544843489501008061861797297260062471006116893646283999669771857135676362134568781309431456677919309107678646132615195483056788830550382795524081841685132540389002309567232261336043965865224282817546418474035458012996780743198044266461580326499904996297790271740308349848499490401895319921094682928411586826654857767147197419884368111800794548022652808649825265005177581336789985752945989562410966478143269902646604303905935841390815279722856378696201773665925479797241735368699487999913555009761967276874500697126951639797633792217148240748616193946690177791651872947196534267251033860293000683046332972725862172695584887802842461296435264553203127281500341884939502066213138647393192855762131609899116171582774214140505794417220540999470113771190809494078990602362865002400235504568745946801383493154466032544014594305448847993559374842531642140516017437121999747461148379113047589900984912182194135384806862517343003458020455874630423282795833917743332498152184106992532699988625231427913137261457905827428154835313725537324311665705868561020039316114945240362086066436257807666146402753057746588804633026572031336391213437607338729493306630364407479201855805638385832366403321084116231651084751146915020908003681145358224563128313072634926218452371534326053221873223916955193828681003270730028573214999604143375193385084373935843819581148783813377495202988017569136764797431097930372382409577213410958057672598429433534274523267531538676738617719387761241532877192497227457323911997709743210285156788891752531260419580302471571735048785270984181520763334980770002331704434403338606102082458667679071023477106075123911361569846110036949437176005172695279895684600131590632003271287175393224717543979063930040922746275299805834408136111540948347238923573184873201079325184144762985790749304559709640456768298758611140589388405015245870217335939383653381210522111673146832883319268466556502047045369597369874518487402847320281195371849370213020621493137957588489107581173529409800335773599169045751392510924807987517409785783197808139336894691291665787443606781723069990678384921047811018862645280157711747379617430002567780841838357141729799755741680264196145776390099857770072344568736671794372335683185566009523608477697013261183929130021046333615881229707543216922004841802057053185860264066165367038258297138817639171722453485921948590146788796454989255950969756831469467558709775501420020670658892752116229473407111900512436990728372750955359176029742517345601728104295743322269853972102217354666750610097431316218304526498849086420021944050056918519970394612394906835799190523063789012729289601735151680083761904394846090547786654527390891375516754968682083042263423573863761785445550468098261643434307605669127095732941850917916763713645139905843320606163517192282262260880697868750698800537636718039718674803220023031560692677431948448665829129261831796506531831028091110006141346298461084504654737351239941116890532392573175494668916516810910626139831781935350255508100994037440025711346079012591933076332455952417081301558939179997149830700120018202639146551141213795589472395502450345171558427494269697651678399610697625628450546675187985558233423958272481764072808187621847807581905084199807536361643461736504322975851910505574360811133349037113954295510231101794173784037204445360248438510704873489220448722911296995034197664351106539356470294744958494165085458682691890529433407941868747379710275407420585704949683673314175397435140682684207036958814308673900621641992746673155302309995152698647670204704700185602189246384323156933695221538429933274400731474597445343876198093614635834150350828402859844272305113369603871950625920971850072289274022264297266739284535196533568066218037546511363538091760891288972819472776807626297349738521612823145279546360782583720130193131228863677544468817339911206387441443167811864189899121510801257710777309290079912651893001398262591337013791366054796128908775741721516691788435119508613469873509471418801857646027379535563477200506772755650157611175106703982032321800439599279630137993695404996133505701463091436846743279330112315262867626859072859212267613855264001578513766997227404598165877347070223446979795774069682582765802268297706451312709526378911002397440151563733934852874426913313079535194866343704345828245691187842202130776113325004694440092101981086030295015091742533700253078397081448922493119729495742438213490996564748617029683615643523524460645584284754048378631129397592472022273334227359572978407869086595271690536661280570641952285682630001260375006749126496919526616886559151324076100368250125938659499068106537391891514377872115926850521037684962540843314622689372690644477357547768058125851690082529008072100202143183223682363529864975806210428086467557331558312142040532551090306459508094324952200972074205657136776809685049760143519739165028835474731496330938994481987746798456335299127881739548650723082998003257574374474586765741107567418713183985609562239731651087555195239685839133039161040312082418467377922478406114832113160603323585931370333389441719482579219496316675502163898776572898211694180705242440351275015058230997126881907533890770781798555974803495812532565223684583205519707443144253875648844069352579357896182912272838069631209291044510847134705741722790760783743955477071509717306003225233097358266608781388984271494708289697784395002743133193461638149787290794642482590586658747029965232072616483384870530952208669552559154617196384464780228163984752187223813494383449515755974410443566157428037355950046271769722698342091784559235285370383955998977905028467401893760010174704308635061819584369267678897560823673195596409593274940004983713058173113810991450419008334041439121660858804824611348440357406376724070107468367276586830571872916516101783865970934786764869988491228576863758197951316597732076999064336700591921896689518513632885728055892087385229188978278738587097234643250846547211281026189343711261154915044347540571378020303012368711733225131008637459731479100767256315439497104338088727062152009967756300918263524564601922399131589705215230706580447369556725182522893678324850329957008877755111492471308426769157215838170235120356339675552989844082743375694198317412972568135224318254904802850030361818032922997776681889095718302697028796451900917735648508670604711468628028886355958948287101029543944961271237793496207238052387158874242489399013267776954377329159306834643129713953733190469806316371067378577167347340238731436845537159539206808225417257915835023045308802312601450613877335226441161608845740085737063035515976232938277241414418075072761177527044714615926688665799248873225743915582121962408100715389920598161111736409714682831960184678073921401218435586312364774517615617021203275684081340824450969284420535544991913434849483899459721937011200747976151039654231237606862090931266892377701438382147797944633506514216465875358249414294305728739044477140789304070533956493752963385031897556026656157790688564331331650869993324343069852944281963839959789073103379238168764554922346913751697407867326484224769485080888837879467900608589029688498347180033365969924169274139710778370247409587823283030290041697699183826687499946315271211018097525073126037432814883918337602553054452963644471682624860638967673186043388815302039268151972491852213669827638404114863579330929430901055377853685075642321037260078227794017546021476380578473798984913064930207609640566838827997415158309286982909467988022529456346100735648549779717773673025748247480181992903538846493796887571252530701639753240771132784188966060152723941020544444770990262695368965818217055498925941668274437462479011493585384659064997370106294091760893778582052505425631210146785091051100538644705469189962782621487488193651246116886606697065055989586973233004178635553823262345529366751029446086853507836315495340720230581040799717535112981808973697766619939966568159729401893765838695239090231059439123342775132222427113032866857839206826744904334946914964425343647339289722120671353405026081165481672953121882241239350682017354084209788280024873653601097154893843998289288909229466051536325426936193025066947750881385405991504103556690056057241368141936342100948613890727070362085092079877494312555994561545929819152124443805366799857735918659493018200205989067456731499094915401713358595087015303525105439596636960644121045523380408727516590754010390110587252909259048009385491780909582190818114253895527967139728714872231501713388159393362651120338678666207563606754914467654689669576795877635864088664587893611430728453485080654312527349507927808121474429613614624979929955090621899132004204690416711088227636474728339603378413707313791685372215817466291149014148339914207693535223814858195968200750839765207153322348575312522988883397001419990066630805168352431887206741473973085968549725952603006604429679745021432651242642313886909821721413914365692461356992519360307802144097940342912057770269830687341379097671864736256920150827655940469661701747091731881035366554121093502143257757797468808666826179038498417970017005075017936204744203983373353592968851561474574029838626587134786086250006795846878643574489762412042180691798632006757368587254506696030502844888107883913295384929696444725543726766605074946317492509691815351894245563066905775948718096133772671782360079738265442315233666381433646923546451129949678446062687667619221497346617765273547480148548588530359274645072853341550650768771293053789739789415915746189008590060745801261636456930242832306284139024911351477654843251771914454145397167137993529070648698914236385680246950208020955070310890481492683881342735931674547106812440916766159709154114291219344204432968061383285641786259901829097976744542724072563245363096232174177426159715747034452833981874276157252984802035693926787669277577907981209536148910115705116586279863752371766748301207592188767258883005033837735134456053057760925662152680934420258150040094340603001383275719726760724880968386269767990037060014419236855002621949598629074764930407740460847105866869391039437410173385694360414016384608953538571383107035613238925516256424833062410477106587368656190674662692720818535801962608535656258607480825409193939589120590320911341472089456427383696887028720150797768972677867168268489908240751638528191431262653120770240002675559506260285770623169737750039724281039275332172096769196222669299736748088115522627164271280727457165754910782716006481956842237321069474258883123243906796292027728596231955551763152816348066877780698871893907017079041062899349657695384884603309805840911003853164389686663341622772099370532647655297231470209793460231896590317724966701123072313893335825035714975487037069889442844930985033089700052340486198681435853424679857663221708573699390572566092890466067152201614150648187842950543865580084496758172281861045969160436816295514341926636627700152708040967157626766682645336953339517790482458716022130184996087666918542601627330016658303859538735719766313837015992976404477730566563140169581279600827409543727872228197694001450006757327178897504057026491038780858436187574801331151055039771947232509161112150918868418832555816840897747956876902450318535742044539822410270985554800801096851716868254663317283350708319414440964205447990469906055994207678122911810370443930618969638519395898708269486211178305229281786359871139007499135065603133246830021944404539767636235896600609376865044506015206037812133664790501166161518448306921759099281339852765561221006485786042691085100712736067388529025328477806401620648596474212114938846349920090465154894797464234943265934871037543694431735622977505790830943943701333133102723695140556308504490612052903070133221507062375516058971416697867291712724794014077580765600372904521274129123289686906972579480695816786190242968438095718878394156084682665783138160227859847896321087927005479353220151664768136892309342158492563799517168072127360974136948698852599540860118619922254557649073852117376050897087014769064393867977412402544253848780245829002665152912284876573823546043044143287122434197349388504495822621350619053527493350243556258189438719371756284119969430257097260386318321830297100787006688722977270938179066171049902102606814193122636138436692948884001138829019303121606348186339797251590487507037003703293868684612004046489838858220122702269281493338385763229550334557452999204390422990902802230831905053008149693982900797165601383908270091427845586390366179717256595616292917270082969569715557981011744987245653810682830238204308298680101811961204470110478998584173323796558632425958534458306775144139520267911770852244104929589792782623088102444874867178552175467942929006675647513029545689954551183876840817274028074853723839242974456054507875181149665175916431235254483918007419786317528000525527074660511192829859177698947914841440368492491806911946780030423181056544492107971077412828184019915640721840955013518660626696182353641378793805412825616618815380272181347890228543834148043288628581400173584190101358691058771059609857861222721680246098010644966788397412478455935935965270195484097815448105980343474931298314564006880058390760230324840045581159828302793211673054525238593990614831739003778059744901165053598100200199533981818687014896711724512197092891062180631175086437562328453682337794753634768642194199668824376953159188478362027788823443558879033628563982356001687664194085750464139387166646339092752204942832401240656889974897655633420644687057577777012501233249908584037936523114464905950048649016658525443835427565070995725077539246710714994301406042893448614931564848405684393489582964590818108061504716875171745164677416124260349933213943810636973008749424467134662926092730386146151984446278202738349645637284828688592171331119862282234431484726823273010594737834753427606843506881476118682628989435196715216889665070739929734600863097126792452139112159792682198349349653476496487446839698795439198749987070425999820460860912897955929258881460157812535435052983328077249770505510456659798965578342913160330451689759714552438794885000875881061307198066955285679872425798681071189490817649748479485883698044976402157093869451128457863243185643075102811267874113380132199593867667741733498593751867955123660673289271885385032767851604050772438900607169313245752298447775527830287704091982388150581151927503810905181704661883404514484373626296740869867208315171427534097825001892333794882382535113227253881661956212573370344215506409808721048328579917939762231100308816500896271754558869878805334060611920467127361767968966131512898692122256828888240147459498929019470293488746335295805834533537043351164914654092636640401963242352087111780568891621420283250160025469807469063539187106733060931818141861516607625459535285090718902120778449996463174847252696998763085604471045056773553711732809453633784429750880041652556300048979787210297726424481855806685605721522678484913779767171185721933801678221986542443535722217262571575465226086945193523349938855424938448704492340264509585856450758222357022366211747030995510425725347616558353780016540583979959977776515495240978776042386354759905278327535128149347241778150741650328143306627259102032339053358326849661313817008432561071065859915135627765905995484330262274894785632409181451704123834020761091792839009644139640309203554310754885534527374572517234616713469304510834595907419109909402452395768457447217219307995386170882776534000152231978542250492982602228071341049402609331346297820148442389580398827797985099892581899290365208974710481652510664517740533130531004865079375512450718431712452169758918826474819454661597798005599649217285576220321187926904916236514858994797022235158303078153001977857569268660877946534861811817063648546792788829278502144071439485176070758018705973585173938177636951186613105506805744365314126686629063770985667212088427934260009201652696870712691587484901615984579937565331928307245573356626792400134570336386000720817815039848700750988381145533398156218936200921194119071691199222743324717989628091019268237488017918753443208127890313050239076205577470471483733230648660632955212457706796432895462080687354806892532866698981694042731592268963681137928315622498012328422223694838768052902511086852077125445940347685626234933349779078955072635973151650235302407480404780447537011176224312536306214259510898901341394914515924184649957980654039528997402633623076569382224936135802767749131948393200000976464590557993468561973298284956220274173056349465214282961835992208213276314712927422105414684092521395876572839322182078065530069098673990933187604934099734237345889527814080535037417502381503330452499025874068604251844027406468200326919361738660409374899963836822193202885056960248062095285319449312581567378877419354594592687817347991496709009992281567751759554469351889010005997752978455804151224795476429131643395070643875365196129373511856115851726588144908056288287804798062084376300130706667430040836288625777621957302491906855028118715063532652025127743656511080172139939275911656259252504061329809760452858302108024809729617813835513116754172358391032429376971796600589441928630370021047754362038793882986643238399188045742379943744012975032879238555350096247187534600018772073767388484614763730733631269259317951500707259264359487156386993017421522285318640712705332737006821350262541986236294328689707303104280972887555596515807275543776414614220327541230014991968387245492494735582452759894702670324532129611495795303309687024291034707082994812712295447964052044552837911073061199169112254247206891868911751977620551619896127726289869161376703703979379258326330902664219456790626105698203170666831435007252666847342107942557334234828367260523032665845962508607300323094561272261537539576174844673951229695141643594485672926591005813367378031558499611567554943399273828439696948003344629930168447506002086221403087178856424967800566028576304339076215324630934962696402981557579013305585607798541587543675281342973273351781968163293519978477956566087170339270767930976434439666394543930093853082359100392663053267974538397893356416674154331443093285924033784157883983813527978027825806674356281474384866580155961377805501145336456487068446940043090918807382453281419007243322429550485941046461288878168686191905530802491610983000186034537069590722701463843781140987125911089201894797769563405546679780511647568360845097800846052097947185256352479111600348730063868715371844887444505136847777510775079822530642974632781129767018703074765920999572727060194197773186054260624586143615370076737318885034843171668063004759816721278139487076412891566564772434759540550064765694183717913755870203178229289474929386807220875961446723902786995172701204601909830166396981454759907444549460604506157806597635126499578208951640435471280112138565864882443631541486697358694688141325627518250577994391151075046123339012404110525160699122244074681058494894973017681544701068675663679739126176695450105541613082798595842573383631721115503443651187325352202268353605933296559918722991568495964748705119427636838998193451814488182987577352194537381251069321296926361210687211680484054489449868720301325191420966601862180700798792636563166672525748059005232291704527687947415195707701147445342128967363178307872496036651670605697131784811255990064050708211965426929480724760057072312713847983775700855710442363501226945779416243374605796214547249757285704884947497980425686299962024981819708662059089628451446178201439773157589673123747244228674273326531467407452171859513723569902544335592276064556316044787851960866617803027474614757093224220446992758027967194346629833150348818797933403036107253628604317699880455075286324853434736906905891527409210622060215446169567226713674547002988285989674133439932994060687707201819250191194339340260930108234453859842505342628497852109938083288842020713655638762219163894497545458998065783301739266351684150307723403336557630491369502696732338094600014476048602726571736046556422683392199921707374017821385907395730833085808974717442545229614925369836018251347966497070925698263638323557649205498953737121031066579892875213332255374826307270426889811874003456193891084957365510811109448827405483224164939282826481072509582288742909662059802173395577728998501776767687262751194016529957800833300410013484909603573709070448544354422128529495475013947042311073609729342516767842221296557534606615647680776394633629723884113850600896423741140475585163571043039981834042221504373090328910729795113894022297071403491569611481347730225283384769455280551616664269709020416437171801122972967478991321948006888611431710628413308589526765655743518711018566132237859269059040351975882279448143751295492175689363074104350443811434041783573483230179249332819349473925572156452195258989055198063066942337190700086718432889949862817063611318744618865402884938109003253757656243675255193759633525463195265768897955589669480282825804932198910204276425109986311053812876068348759666947424424866144130820574752141307050414140848625259844693017089635953646627529583418585056956796572770114858179250483011359317941280415515910819539963211973471770642144686991805733830891947155763492069004954601363804954241077698747286736092977752376809166302426999443615023265370455431668406449325689104311711517709111112744316945332405305442318721421258107111725926452716655299760255711571523588478592483349946524764382918241299670522416475129036253214577414867317506101643737402274334761883838108734550295667122212919847080328342794779571909306444672101825361205449076894104841819325492709516895865578050548602974006011375445877103272616149980188947956269685341991796922413979603056651113208561463622958226172964296241588362790962723655342007488759118876917613913073085916368774400004990359141943936855940244264260593265438482524134278467092005631390704639865114940937383294939884706253943902017458335354791931261688022961402488405169637324626591837714355662225643473218232721026702450422639318853992336719331590017627060058336458540631499982636716175810013344568164255259282444195046318235832162252497585733227424316654431611551838013375598781657097798085395160245352952939458784422224259773745661232364352894197201859347685720419722266048307363312127285167275238528151647665550314385135669794307141117924216163521548957395677152142734597192247520784445852901794041566765319347191598195429605014379906790583358008355286109195423189270137616043228601409244334058700468563718640365104088375166075664967085034300274271511247509584275917977682387748600218729433869310015847589714534418962467469507079544656799383311048401360376236049034877289269538386523559683677756160220362506707403500441699845126286504522173085308576235186860904920344909685961378348221459414184549256297135265718719042190932893792764927769052969402105879951493808505326641835555992132657424000077864534144947300741392587070655144394042761619491282970325962707330857650191875561044503469418239309040072449601371937606226705344351672745616107173736277866870407396925441198010871127949228601231565026711681871318878425802001674899595348992006495510979287622326096784431788524927151780270127483363406185706271036836695525015695755768041995315874972284815247349279289398239615648966566503126466849982741613092549655926867820053030177325493110401573893876484844635321628068394917579720274767614880011617306653083153659917052590178269558149767675421087713507689112807765386209302502352091104636154238451571138542447124681030146638255900445018141716505720016498789757143890325489887668558323623219082074250596532603937021682341617103749338252665727381228411983032200767935490564948396754459008214466453637397179921433818089691710317659387212949880358975962500160789311239737836692687946203513178022644327785234362272399668295163533811110334648928499071277475384202170299893068933906370249476350867126870958923833764520782442813890678000058435316990578253972183078887457845359397701216693095466047638411871840617919595088131138544915554340719227975392012471129115467620912935476110074174753589370351578972254335788972488815737643883957831638571223645025112993853223073947390348235351044222477388718128702479861579356724323494339117299616723553733490381591220344266836491963244093788012809169800176814960250962487707797664118427514653057725387921979579410254564965846909450637022798126017124917009501034034105283339170902973009854303229992132580618366405856840138752209023330169920350953976471522488723898740254724375166076861752381072994604201808578684418109271153521212716776754506892122189891268052414548917319893637618359245851594151767569557303565820349988778935867680266850275822440101481974561596215160442417301941798844786571843662662571777709739062656409781732215482616274816321469448843718306723308728170697577319474068869318945376323563860147281469697854720206836544280772008022139735653918477735810042085056580409174299914720315547176207214937926122784994666974337051762712373390242707843275417208671092074164711383777901866877479975750474912214230710347594613881712849163367840214672356047476144955894367659234638768720632530052101952541111980874600526469020576552326581467432322159546518186734353081167754032441434584746774213647644458107197367476381529984243020244465757930422036169407452831759923188024836555480001327228765788660838373652267967634107266300945009212828543539886755345142249470266617345928460096238974884290230725188790091007544132452200209511473779896569384820786844901902522857692389747113087409400801478042211499785467518164726989866337266937121939971754636836086292110078711563112068070790705207183848475758440151955408860428670287416982119224527520009423206953680982535354336832876113114600776440048815739176577688769808130581379773505593833984745686137911884379950384909247131669929759836413882021352346594159294681872817224793333015730496374358494116821538084896477536093291582250310185505843131752559078823519744785671097716331644577711001981103394512904372050110267660130082514626365164696041457746577243615281894717639881301217970689454440718921644366470951835856763001600473950872752877169274688979401065780238468604789265868637331209568138237151995456388802574614420379425049015370987577770326915310664710537463712172495149625669044268061775057766942193959734839057221699969635997883490515012270461006464746952694772063409884513839584071757847887330529370866535125499701961534959708147157692701650740406490910953956357936595774093224907058243038255193577001416478131111896356385540446785352545238039842214805596286243362952157792835057331447220352930300181708235523024076117230074944027193384940971939983283665797657416353766754917528078466140987318882566649843097022713782891406394617424592068388544763554362451273515757391016146797636184889937159075682460155177365179798404047822040098298922367397059871722753454610658053581073396127744078778489399613112380685786843492312821703669556470671943824513203191209568306742071266502724699875421066593757356920127900648933947517240358495851315559608710660723473009534509173037553412402872043912192168031536162215924116619893981307448276933571934560888115205503839147510884971197736866343583930092714907743411900834033119138978586257396767440558179282396025494505679152741208562796066662437070793066899392991425485761077263736887900012750739988194701784739725405794057767183685746655926655923080816350858941127058209505708339076657155049245724186111011709899670289976667964586738620828545031681874660859469926756533989779566417527714422766767562570674615951811699651243710474539212786306973792908697394238153608921803714986680606530181035988077462775531525641276569593333015279929894624592905628078161921178395342573318992486945896055568451989680600761083107800668763851108725105661812281610665533008493516860927887160355076298752079733608145641308891777875238170331190585036538625104154045586848766496414206511962820130224281179378298287131464696552616806058318146524611727672665199370445869374827812233953357852610096145834193287417128196285526863887198758698890212526626886014718120379169342522354355236782545309544102325336543384303817124048496196581272328911643997216843458278194303620074693047179308685585049217621742870138790475386649776165274282950843637661130826742005047969008221673632260145246309099184133941368414515384319558442263491510445033836583021086844272026642877672053518209494665789399011609639258660592365411688964262080447497302779149835988491769514490728011456652988809085946240223803839332827766190750441138572526008964512219236071976404872036922596215608834672722303281172901589314674108531836327126040553160291281921435843527006376771775890384293136580192476265532224649875877017148945055610443687309313420433968777912326941758555237858000817014358558995023942482535150510169744236153662412016681236034995276471333957423435154718467963412610677251293799936941638397174576582980798932912289213334174222496862493419558667361063189153630946234424846637114343947145604019372940080515174415618385975360633107914046058829849391871492067557652285198092460920423163483360528654179079285220971973068370428272437725695983541031102849293589861874901290367234651542546883061889988400062209799606409308986652340205801314223354083247628514083442591300935934385175401178211249903446385454428178623717624104573923789708150693656032643417549867355244840338786857419041788517169599668522733476965659478598161063361716762733216941842051674382114641920544637574765724599949530386004972317799325940580283541182958072747542746604874340354264339821045485195962153096803430072641318173237411169333528171327240838106061785237243472447192654838252595816794545120552588582164879716536943883141217682938899158824658037835396305634864863842846436886188376686022155292488612618999121715635193588791644264100588974691396326095262176879517937840306649296644165726636522410057335944738012230747146483572265699771064785562627504382795014780758059748800199153780337808829928176501779966573551096709034136009677524240490795601668859719851894775522800147094420611799239612436621089105592692104434941297954577759628665550832137228801347769591972310098669664322407651892272170590512282841287381714080475309719889957484844475950268988313152423138147258402120742038683666135591962787576726701390517882064851694386693127056507222803354811270227195682472574138764316038792542081409846809004676378053100634796466944559022708469701458146970245118552859619512191215726961778956300717855985137748098684545969533697535566667798675579055916442154954547560063090972941291773506824937006430180480067813850867826521778782408716232461616007059291553401985797674670851670973881986038580851422790895367411338059886560417665149317063108206362518100500711686333277927556200998796276399402485762392901857923776197733870992094493623558241569754901160103865131481227157838453405294474080120576361580347756851365084012929840254394157132889750616355043141856320156525142275819823747962495824874693205305204743547852816567036459777342031056141020921642025383909273904544919550966090504529587775976288998540254602953372955815531142145576486809567233390460566229192071853239924302264440241961452548129016258219256980410105868810777258830293453461536262661279900915543605493855824920749982454331377071605791651335425616786498549487115058921705731885395754619530925187868587008699747816345092108702428217613965274913392660254444178264746636359746247075749459490654572855235143258964412017542368639183000091034917835566829461866319973209389578214649843975675517109936865194390585183061825415308690660602938605690492579393313327105360188181919476993470451480168784753472161455130604826145305878306778420170866394143198274000148805175659361518532217575171408747365336802590581544993179408990402967377997497287919609155869867682083617164223256358698074409950611291464797037577812982669950366089074087233028002065142549209897330943417028064965606286033749110381932709964497826790841528960906513733330694320387988757728787510748025294937561142459378434928905515365723567317337078113822682120038029000141463059868841197568465653393451821457725358743047067963171733086323533124494422563708059188060740222922283814251011093987184699740553890468375286073530038698722184836922400463874811010668847207829676514962089604429261912728716455405812157968655085115621031144405297525313242188039953930129931401821106414728719868887282003914399714998774560256164896596528882805325746405800303979501599064816298909551095158210311596082001969661509415717832165164039424215733636286262711434784362691976786043526484379353695984843525437186216129928283175371367555737961032688820255084697350972686022165251859087202083664760762148299231565303842641702831201221445274071365615268694084381905667360630858554856109021128686619104984478230830574595765061164576967138712520709257121499526602261764204852134877909822067746782243353483891609813061426425554535105359964215847490277483372453549413540476081938396228889967538833498929821024029022547271148769775244309563769620739294778005367795935319433118501461582864919481949556055738238965294657444984904143935115421147275826006505443081562793065325542287910838369746637426003501115980059209159256009748243461235751151415090233092714079037603064599199411917981433111047139593086001989477330363231264328488966234720529270030147457303506857225050074566367400545240261161595278670527216189301467527109801265965722171408922216957059105946179343442862524404850472619091830519426905142872693603202205496044298381535866561421021625745985604374415030869438063412768793454868333450732956521969664378552779395127266201992322830007241622671823356680884930451872029503501980949472561653060811147802345674645488569905362644127917658274419430316030736549051884378430519389821519807279754071305089780731027297766753867802449597552513441571666116466392985912956795643503243747101084073232795510039280027082984558793409655654735222671848984145228170988985084703577389565961837855250125574192957622234631941862228493829497989097560735207021842162787674516662727882151141586729093963031691916579291307033916364416850547887255742264006793369554894452414091579425986181569312226012694834563770210508918616595495900921088723496548518208069280952447490008207929974496030165535846518381719592329278920247059023315299967768008250490767681693422291908281983559820835073912260537573022312857012828122647712466949419342942824738149942875509024940027862146289082478850882061384727289221640666283014802272124955991231452648274214692855289567190909147733022803829693465006554286892654662605623427089329945842798031249917742846255308127511083386513849080567834847437949554687452051543164639555240666850587510383450076566302688499492625307890820006275561092880300465665482348316207478704396935503742894868774757128771125816837551741472541939881823840079113001703926149207794688117249049027294988050812854898240814321935842433643328360585610764599169741840966463069322322585877865286620082954876337791919542379210149382333818375882518909276922516229133729015241545672421261230013730925933428335073107719936937898792035045350469731486394660944917541870153956700524753414198421993043630859553488139695507949387255299894109272776952590056684537921599865156653879559033902600780694608825308035418778886143698888230916097621634398359085790316661484714401260521754860866621969634128513104714480323252383306663679753151504020309718889378238186540518510247369616545298972614266680254904833618162190717179162148768600772701436906171343539971818291274906719568553137674718778268649067419682485032129217789143658725987572060425111315975313695197421970705357659275256122263357397226728605126634147883771969198669154607818938447613043693778510453459360473532259127591924180760800404451686079585390196243093552961589518158860350595658875913233659868353803552418857798694170611889208652922708079587146573007122775602170839253917659457069111097440545812997111307443553625277749561926087288318872881968644440505884610870421423946584427957884974583417646883535219376342447399366228609019040750488855851896674008900568567170902634332452361825245649558670382270646950611161454835406135129210307102916325346800450801731426482415693833107841387603160555696432269591932746793936283487250241027109021010176140367416045802283441179554501891962673611383018023198592880288156818644280404349579520016195184836993865131086463296706215364197349279407485167595180503410374792786784783419128468773594297015451668207419582410801536260902421927661369629246878002887407527459912565930580781826438309922107958283406432471736964600472727408698955063787388033867715193505647674992496679589173430594572615161849280892698965531766655400686766731086080606836067571879046194545187834202184057613249912697747727021793684658240509495301791862043621073810215601163064890069282625615150254610496056992752890540715719947998518493579157967560079734636567334087450449498027133775626104594522784455113078861647156162931865180775429840190040279499502140450666497710297854981472688417946452797143093069956157698760850611157401346120348762633895400746392698953683521060996392757680347013840619734815079594318697384368229023137373468410304809688402561078241204542862982931310057090347766398508366802434586592373951265924324189515982010247857934633032865716791471344973224455711043170340309215243047416478803847372830718762611833088210923778868878852763311084266590196403949622554830532903559749900947509942238641323056953750197347957515037602930121995689633794848580938761136145042045589253732849569284923214228521400975593447004976288670418778745614054448797811468426696333369655536228565129199563001163579800046941112440967082679187910804721764513634264745740594248730090947743202687042846994294001058456840391668201464585314305788261213547389387890141835216703295121695915604100328888590703566806136600090681719732814071468862399217827661835312391803145159464254089301830024715089149961314336620534813073686611333963691920413033642187058682648086810365443185553062113647950521522600303738256593473905623167274229597266873480290319278649943239967129756117782916866298070973480876468194520762259422244816524546665208086673537092058147141229103709395589656940274542360659841471313507115338947941988771190532497489783425908302343270861812025720628198316257435379695922437949547294280308106451129948224319975388721784340308905736971524032804158655800502709705827806455396270494050631210067320961861332811599921361572143118727544355996049599378889152125166776962685563153778840990929917882851303905078242403705574216845498500999523073771653868274563865504833121034842482541954070588654007956955442615480087304660623161293920284384334512168015366900122221734164005464383794782160385823594068673969415734346625823905095087261830057053404105229975355063338825146198823843776007725355955992490263251695044130184842458921208531777333803008236554567779189460803378117322399567943998878243516637644921440578945666729473975966918867023162545646791365152843391933592847900934196418616689029191068781590120368342607231055170956917725441172130968015196048705106784814690678110463773275599903789437192482647680957123622262492853156498235596709767763283283118353781657890123303771569539288013571232400234790273673397316201867189892886114232150672886781368919498564487258772970045613917461264245586976134711013314151319420895727030413242059707343746128657865330831694556324411655289784206219025609415160546831013628655598771234680496082481481315137414569218714917919058448419873295775169503196864090949671160272002646036946999276167603009428784898077209944407324216415947574575080165236791027873140249646326074912741789309606046691823546539088848997990236027657447060803167962807074289582015930003913825624542080870284216250302956856992711433541218598852259611161306707668387905138527347697198168720185409536112919842107765992535242072107384369446912412827877794122520827133279079004348912318002665114021558968241801673847653104412058006675687575426569657953900373129608753256225679183752981960879856447053630924625194649327116595336016362537425570551070998763339910061048225809006987755318871491923052848442542146111935400489463471147492322003875124235878435413129730342584410880483356771670931412775390234232693731982546532904349142718716562224613917932610703842971856032065105034332428343303253548727061704111758361761443434507268383786437774705135800698027215352736253441450633875773013034360316539208835813504570702626606945185217551431460330563975365091838745288318457426906940689401518485412371547007973226181388214746491477643266613701760763981299458887331912597578324066871690127987967740089994345511911746216209266796041518188540906196147244410965978871054044477220309167093459606376979229307924554186033166281673446152631052129682579960451300588870406326303521260107710578838749270630284207832655765583397512205950110702318854610947754310935968583084425583231286582240813271135116382922633295494212238405770668199947975109700304753104178589851806404230859969023669522499884476497357477753785017920208411026924289433069068413061313567895007204318619173855372770241471157169919185895949729733493406458249687497844131858664899226373978089553363190477894805190831760924604311760645574762001672329430169111020960219818843814010378170668621824386382817633736209941379223006591266303003070459166473254721377353523705164835592025006141156477746043629620623995823988991297832196527747313204421338556317657234864623084137153361567395952017222770926112381632708438610521614113044924537285251167442668290225574534478844957049210747478024294258603980549040020237248445737488537902881506884249942631560162168140034959933336706802066694908992861159382287919220471966942606188230284859993525493697375768157809143171445795955578525047176666789322104688113244493229185019484075418509822678688040854085390930453100201710355518434020777483552125726031896756525458156669607640199484315328551386321729987404929899393933640993173405292541441108740621419754920890448078170199598448681893557280957224551410000429848787109012361467577107968038394038844945219724679296570493507895915272291544413716487976677993434948112522710479134020727943812431088116703905916119867156867546099144090859361208681206968362541215934893086002893815649952942397554300159029871129441683418728346226015169673282420811392881513843778325024312753229747642215629897678335231117475288076586417402014272506640708173374109091723819449535611961001581875458759843930528752741475981736326529683739124279219111043801502879400708478797187274043271395216048540494534496484813589362837629346015147340425343642786542495678762783672814173658063396476055546588630619625522886539092782173029853366623005184274888972911394187562453602176973410366769865312268219030438721520623075647662088015621524521908206983704364487183427712038065555263898707477074756132147011755286037074452819451652436214824156030990359238838881265285748997856871635548798218006105481979442716535654360535937576420030384576086243887484368773091319321859137960134988407462184092222774411321952009145526564409373798071487689191490859254554631758009056092397555111827198508767173004676291953882743278574379271932823506049269476866540067445444442880219248581372597447572241855707783230614934968559871856714473640938311132156459115146206146136931602973113312521152723037438171197367799664538730835218278981744468379639221385331847652852308077759051247821306265619546754727937894950707130068176908932303066094763702823456462806080887076460371145010052111544109556584021805051125180234069177837449406872766305818818906537127481293954868230751399566647775805435972380628704665779975972682871087185371917363203914317811541858567572638739322900499545967527049945217404297596983042296137908962814414398435297024209488623054265659032695197764443316182789855729948762235505670510675064127599696122437154149998503618807521131002019662522435829604740858306906100086970699870670240419638506415074805291999778464169793612638526656020620529767091414800772563846917037512025694517377383176947468474933617193317455669919396336195431134437836491742143606465861865935975267647353324613811753762779483435367918118372491578415657363932183840910075255107443610166462184906210910507357774651532413841259478302559655808721393756652215997369262899326780350993081451634804658159367679126405544616081589455735349711100665819613952411224539712335044693298574505266138911772479029500018316571938775899599066012300079689816442250609091972504913939568327849181966825454466799778024483293534866784106558760167598302591199764311939430960253646782209925469760561880838349238019068496736206969337252571408997042538783506541798361432043351612291993521065935237133402469650890611795296587417632362957406899668974205561925340296228075320095054015583040970386484943908679313943759062651321684586283537790957585454405068229283453690686179847667137254838517866641441901238793765051922848600983749527150910053071587598485895634546127825853305814624589948963199994868164578021224558227516902101909378955695945528624766305592221627627380253589483683951183902988461773498913964021025049115531940962535761712858488001299228121889335671584118984997473709308204715244426497176875905757673816495627819574551972100244899789975176374093174292895373458423745595661859479741592057398078972431986669182266006519465606505170111944058146788437681826211800401393660070757087766842523806082985420869009129728851945457044624669558955059580731293500736593327938009187595997404119947905826130371225047803361719250258127207344654283147309461247704502106106194005813989945096125737683974765519929256081807551509335115425898086946551588237475131241061597006815676459613839569989538000457500516532135894496137539004119090838075594990202300468766327268226745371005927305056627157143199246241848275484883376188117879954030796026258642321789139357437021096438673146815843569192398779446999076270194045355319891853343366981170187883862113123104631999620152891482878276715497060844075944633287020126476217937280273901728574375965710406827151646398263260630903222920266009014018004463118065136108475731175304944382902029376276705538934671496740119069364663455555733588142517171290990542463277434710892526553165351114917871346983959756027666159073789768359212973850712544630499433857254892489497091822798869702965787031112055203236568751188546857218573765630314839520196335239231234450192532200930712724497799567520261192698639173752257533614860136603407689881089503708290582838019850683949330112193259681287550068635421413262660968905708650865377796803165195311393917509599681272777649889571228043591871644529344459520494833296604745839466298901825676300130083203053370313637248068450931156744009759449689209665789440169746849987110060410911828883600880426323684216561845240200628584822259477743953134817138998700887482350276032562105495956338775790414696633683791022908560717291491098664418162271692768269014020099259044100666625379116516048812711767932842615999457284564543557112297599482221645304127080872115352482116125765787048296410790282837154153235783357698126836909252123656095021350730889893815352380911176642860220149016409057894524447997494130813247795737531119129654392398994129972767599833106548588761505698458408635662352650541784610123970553240234995089819435629565407720975534118757128581293574889009567879315723297698323591031121650436287202764967051533196378428541479576121131676881299540299289230738958818943678840370524799383470408955867422306197857228660137549572098035929331938846350935380126920389885247708212110701466994812699008949143534977589719538754591322024970125485964572571126902878553840137923848342734370650136868985913296734149407274303340053596986883906574339191190044470541740574414236519399554500111483404565779251487070486886152194448879587745781033763262617201380226673095947080164229549538393850887556460126340367035534873300562778500362093229774677124971650018826990467510774220740291928514889844504789244621015570430713016099714402785037550864146915247877703450883351198069154191846384290663040749286816902907218442082399230525964506277945103290582841652724607738896930871854458124095985005991057198536470248433436197357167332754655743365725576655525372041217482770861603944090297705504626039273230594520124955957736387702313459691954587942008069430951715602370917703826187738636122455534966950290368060172675223709577900381106259008406729352667272372102506891021787079012757723576164389687962453551576614192815043751395431722697401140822377779865705034321666691307891238529109279994477550921076497384705626962065225924780111756701191661543703485609534840469319300433283334339904460417236071791145588612701697153542854216552931683547760877655952756666587612343356746299866745485599480073175296797634996643200573223370854065736911108241981915488245818690752901080824524110702313922594673843323381471939529460601798371284244399459700602859237273480995244684373892993238366127992193915651806710512749733068224398225580948621108883310267453366103149632141447655200220096171606297457827088360949013356393412798322065008513076917825116625553572670114825649828978174084954847342122211838530227565173713627296149369418780719810404346587061101404356470861855775502414309378965331586116569560506715730472626861023778933261948471403997116038560720682182947734714951771481041134908829423649470944379030237798226483347466787320924886605690792030091679363721116755066843575638252996863558055700854785906755491666396180824336165560584865882548803965397465171570957670063112572094406614068441722172398071162736722344547920612196661624669878148448336751819366400400909541906649546212692453434211801965154976728844802296891007280172979187538926464152020379522406886390399965684483989730804079994882023900827085292345592621303647512196876712815983302215637620101458225161285688537888099108336814435423743509633085531148999317502520821392842705494931680083555413458877003609188943626492812432567153166579512534622731226632072941602865610185566327406317947874370567915120804988178054564638251995897443445776678277970754751776181610662767462723452067429968558964450075220099413550056655700256858984713922171062404178551100989882948104826920977616539813927513972941578390164847723866531408521058176823570310111994379498665595614019868481565995982534688840149257277290934283678679584341302297455733373909738578406043053763811167615451920707331448119455524278059323066305907363122439131712313873739436627747671305643691570287751004994061510447302407409782247922567021449503636632615330296106287405205982623095665822056437135543314786415747720526230809567612407353048982170191342165668056326452962773000937007938264828484110664491146985140196304543130967455392020220698756616825723339947440154950486900771738860711760445589154892897833304152047289838134335066758033565651965722258455248592298567744572210990730713165533064791138300555960622141899050395293930267190378106278143993303080019763134073202833870943305122472361972285517014257807771828415437622973686271620523439041751338718549853855420345768539166628724037357172213938323651035669012729135741662213991388365308320150074848815786741585321036360948423411343770481800236453444612001698399403994107038283760171147764694500377713691828989960185091856906639315526296875984465645662073120533803918811476096817369403956152739203748596373020421907214674782839140082645726885781549752816724374679334408855391008289084647441163722503326914791994430070257152737624172065712188728449590449735572047083634744952083759954624211864333921667036221687468780691610622668681361137361961518612215876102654743841533227768565424231670401570608053208748425002224311623083539374327908304161711234420684672254521061341611828088500427340934701100132597973530484021578599152952313322658243910990803341809794869613100000081988300536093722722529621177253577152993552418851493848557984606435575205584177618270160265295259994545813771166717403869272865274361156546551229178700149037847747332310795169234203977362511312376761217912671791235193217481928084930029246634642676459484072973759124600181381468493794480390408545597854459968692309824456593780635564752936077690138994495727590758502502908614696701413413446757354330578082055786543055984526815003957576865736073806845709243621766592918258475802079997601132562469485313907115908389182887670589445135837597167295476732902731487182142690337796068033898054481818195968434586989141082615907277853335747583586657375882521638072271992563161545629397900903426279996797163312452021149582211779220711102202145135922814925090392025248898911829942956740739730448517344067112345451132911005080555049606391198095746781365711897019801229807201613773336423903050345725467738487149880272620163318964210077662318716526994624157796267884842053320036526501084172612701945107549122530897041653314019833026214615207959234533828665293487206529613600874546296171372115331237034753461143171568274649996067347735592189449973767054685108394079734357567952947886262647265457133164682586248756027847240984230678767708890155949556062276601205143542737721166974349197897153376781807288964459855475175071103256678860193295809622554048002547554630687314647093907724249367558318856504336075420765113229199966158032514416146466086310257351863167244905637160730615486235700920774360385560227260731867529595281109005998746374879708792577701720898095780094062426452772627014605285793752580509177653734745294765203445916942214636853372534235740647523289376491545674631147426419618949528052351507667678481221526661310012931841948883975806708549846769343569973961810995579022294856391401868664358078744148857118241596900571232668689882800210563597890896842664509464167188663586388220693781913552401679488707846778715599190658658906812877144037874053071494534834519629679870111922093667064554257360517388471073896173738001970208711057116132528345349480749758880662224765003974504668535380461808298286456142214133987778239976079810302347957701870982864846015282640215557739178707126144378346699993575634862523144373774907978652069334571546498464725948985192673757141248760048008708888160143123452504333565211849390197754774337830110573439679922428341827238424231286390040600073398533137697044122300625541156567150651015112302151479865563989302518333676184441426737273990909530809992225194558469277873919272791625591996372915191341499038440277497520448274748101572102507966282168443384479539706721512275792485452306299353385987514758956282774586518643314357104252074499595536698836807165319286997281705798141099699581539248884410625897100896191370157559532962115497102497190316231377125199385717853320953434804353059896541354361754856328720166454656932919498363091846494286403967712687224928252864843256039930242488289926771809537144634361261303742935975344153055746811284628850268634176524794944341264333687278531452392930583871749246467807427288413556454363133260780459720065398091312061435020501026515025883000834557909426368842534542710695155531244516617039705586133305280609199216437182478824336585119331861005341097037789076606161207436627751342949031863068666641886142541995476580050553448699520621916233771399190861951285277245922501064419027723613244172240576772857247482492051445332580202445998590713588261313198465624470104611081798575715303614756574251908140530848164161005422445261043942991148014746470983615891502519989706648134409574098491237634161391930374097842707015385340109665951716568611761453738116638413462120608491899277331257371052972761031538658500224545305957609426781121789773577958155228779079476980947954013960988004340579716352480458044125311680582327346187391991068089077030243067959372020735814354805305557423334608764601556231306881501515533031829524484013129742866855893374644154401318352665136378063301843115353448611723953050168608612681423569422132042450627292154759319933833010460368631223714994211102987644852807412193481973157291526285131742553499854185888438045703647868999614306071274447700053789083035591012955552544872142785448426396332922418758097077041981679341982375727080449993592262639152131672040138570746190580526877814564655062123578577091586304790056838546038780260290101272090114580463070165805435777446262517974888443694060213545163638069281897504383452533844865643858577748733467474327136693929574943313617939775707509330545055650813443820859644998384879467894895409760939616796134724847989817369216438012887865194513126905655059859611846699427597804999284804564444985230288666942042663640250190328050830459101680116430098092621962669370743808003612501579269070135945366903986896820458100622515906811919719862011934543662263408135465615133528175017594699709725641372007531145540046042945178025929969111761928752816107239645874727923225605312405451054321990078115318792264032550725922562414713703487492115252509000104069694676980922376811313677048677846277990076076212836268724802001150106840965801246587975714369989792896857737256175289007004008717646791689512841015957316228537369935839284082812469283982860897783876733908223034895030243577558951682202755589573935157505924760421385706849727073566325541807233716772025321715176923292628872205366213665718876432510537550335210349112976975432882154552550485027080181009673718001575292593290992736641516901729675593814957195743896560969060370236783856946279329694000640250067674076614627956222221706009959806712576685250934445083684894299200381691585276862767556343276179595443556421788043908452760886742668062014408262148785424530937466268667195689146471797374478813384051130921085881509583877975706393077141225604438268088878452532351111924993523334119050599657553261356242209396172546353633030376092201656664871747391936686326053314004622914751224205292580501287231674831125243550793854250754325131962342276229947593160077103725536264030545765417756996774757262286608619339068395050328030693992142554153731944322577638938822309352040816162222842699652745261078974127678736539130194368777238433719294014830051193796120450551362244372045063082488227310474845408749203240812775693273290789696532201524826559784048657245188343114952949370049883185820616404420911793861926078737857025284519319075688063505717572732988519476723290023044583469169009684430134040308944928848785686105132267898193018557398166121022631731440541059153782605614266157921618206270946445579366807368295963514018014722361453236747957017818677214794616053126708703596305403500704626846175103558623496787903261879356694407847560001095101611650933409805604898085995218598182343705756652743668363002148138117595633394081193419345803493695760911912686038240337331339519563439776757547154349035488803198689928453360742649880750277376278088126428703873814511004185839655500576302876806685891044249708566711539637244520384909748009612937555801363999547135711922658881300900877069955696148709730758324976479094376669431194355844773064953418692529279421278372344293660539308237596399019378415958388527034451166659168619948417367820187756119506974064860701735943303431106532762564116996912936782386783138579923599496959907353387398765399680736057671538066018984516421498379741784680620253898853822190321028078837257278171061991373382837027319313182557474233636562830656643050038056204574224133735516735186075707869255916808106669860724815323666259041585789312681939444678011505832587319544077683464813130886088712661941842038109914624846401192023631467142612169346636953165010439000851886771367846565944054012467017291434123732964011833175370548684820057332687955652117818103584708566133479906415062163610510533448781977806959031637107683141809324699202425256627313818527274190108183166414537095728751617824146441476685701896255712766641728181705504580823767593194225357724489621298210355948080613537168964888126968652283059927341486146644292445453663800804801237308154656094711117581893764572405652189912948650769376467241897553410710342332355971112365576654774043980219803083543844893056325678688320870091949540736806954400725605016842170111126431003031158192617099458811403030650072282814741169695389784123484612270045147925620955860810011706349836512046308590876855948591208942125539363298931015597223231692348856775290836990546480626545986386497204739012109490853914914164933869507903228871872287457754848574591766980252990332684233557450554836481525593647257128159652910961826097882703918699526769982308745627897818675073020625939318402954665055609019553152596988691140054315474838659036565172126163825528807516212978191722096806352601159581949817191620028584153809666795363227814303933222538408079686063900644672346295553731973856551650423153821782426841279142736781230123496027953161256783722770894820446144294969973401795647843038555620432500085106686145548513375238955667870036466953003371715510527010108061985190307136351519118454080952650983524415366279898649944894367187278194415150880002372497694149821152962232012174290664359863037650873411684151458289192332116227033124921613311920832329904086084897458186377843746756652271666737799134258158235788493006711052234211941338981344750550170460474619698138437020166654872522155965343193734877253590010181622557406768356086429549528034698739394792293086785299660786187043353757222622190629152628566017943323001632601682936949631265812529196712287312228774402259314341190007513262914352749587509659998845201485423447359288436848921865239077666684742976024535582023941235332292959933228158684843234132441650932728913845005017367871366471970373716266784910628835510091181158668392641934067593462362445010582765012037558417913306414579217576409203565097323109511413380957779846400174752722751372573588641610140060611951105397329740149107263665661906994653957530829536107299522401363371815350233191706521082504177464344555265012828697603001426703955459205886094053654722200553219532525540617545105645801217405907828385233753557854017290461291491097327207243428081340841004983924644224809936583104719347294315847531214797398572426459106498561887190352624215481344320067921666351438084599121933835157517097720121111749396426969632591527699894234768853571876275651305640994350494541085152506551180910242202650016330927502426303367835189609624481543801094455763773894016554112318980877243215514157865373375820020803766469273860859635415457660444411739676045052293444474693099785397083359448908756308330631497236235409847673574028773079519193337161206583007511673072593595024010974017789413113289308492367203303545205264460177975121703313977744216871830689631093120922504628543960033396199303452520831689165586062425569022619671775113581088730085345903639727585409327680096298331009662308972600569549481760030567299737376337321964485373158596470161251446895085128591590587704848200164517729093895163377333268893661485432551676817519438451941166881416759962699711195623133400535633809297154592671720988992567259764244325971510429040156725726395831058778723058717342730431006812895078972403450828552024569890588390298056848317848289529074975221092874898453805972808035328394002626389810084424573270189592400937446420693437480880637696278551182174662173766113865478398228206239004227098180187616962346386454697779963418404196740718326922586071813678847129828960953657228617310176595150694145018294539645850016271068782777803227551939633499577361410463807298137029076366464967514014451373063921426695548029989983087436683863483628906335305759675970310883888172598416950083070546229563211745921735864364445039037066916127113997118849264767169962435285063464890326878599750021155203263621851450006391129684770234001166769627648623430992733402154421558159097590363873998122726196256238656609494857733918624712903284444650978330266722313431470398026540929873393033684417348098956761473552639477419860271569518226510318702063416773322976216223695944374826846936175655986946745718915174648086913368000588367151266665799723490045482011435306531762360086990230733019611593197135722509846597761484934495898285221056918378422106767021527791439988929238741753692620110465465331065057332043158019936649143366218484398185070650028924093784531717597070462210993576263943599815976323695614338501288317646987747194119857985977550336314216373287429915733755925747460759422247806401670227474920057575303794472474853166485830722926721010010351700510708227956841441124647476123161054703466874572468570639292984973700508364556646998559967639768478838072065181513186788010398959310214218336415344892763507251459448431336803541578965480772578589771582553305920183535640226926734066675500002266303685038927489921529476915199824836779151050199737750336616208438227902502561083282604719445802025837553372330326214611400807337656750629911631999347910300673940792720033302528897457395248059790222807989819964299638037744298768755402037435426742317269409891233365710596114338907356436162193172238563435664494356200461470733136655658143499453694531424699006121286153694432842719310259694724233847603864976049853361531491861712414506680535722982298947942891657580977397908550142284957949399886096361211838979958775485995624212177405447895724347734325453462184598874145452397389055469901658939588967585844631466764882429115391420333528273744752047505581824233540169088184074362699537725899999450655652717996223917954750042596119606247395851675038861662231816359036940572976932693055400780280151028860314465386587802377307903603183873911702312485097154979511874003331693653282662317355826645218041933793863435375336621842772208693992534443794983539557964643092303699468738398474807229367672184383492789489406992385337516111582775325327040255832460712043787828168151099541932702945105346984949294028136705191622542083060757311996457871666609170749547840726400119137739085137322659531456164889996461049885120831991642276128585544572639711352467379731960776908742045902438738421168786519960037440381783376693568798055391035788389205262364554292297847812398508069473128825923914124452425679992918383726160284311090988081908602903973090198085833142022156779125435832808220018496377916535934469962685271603517126910502639033174306971131570159110069691293580699481662929074742383462964223023294692143496258612341132488268064959006558749024917524311325871850068077511743877932184873207844907148578709205048151929810946078064094650441937493276352045499847961239738935845079784993952495221236508684267588630697185842503324530657660585647087115860814065138573536574802630194692221709161626445408989024265297002280978575424525061357036585062358044599372337040930701983251013344234379685849980751391646225798674634143601603201169738964544645943849602144698900936396354333718271841021967167496702649725021431339008339413707632217239670473047539193501343572236950546410965686535376365953113534299963113871984017681116628590459171798622664807442115056944712270939089216716908575247088774656882349292870015363806457447624030447714468036746153889168250424266888923376998980555626365113350068569896514080230506790287672509376084547205308142214698460961415678342328189464337166470069744325208402754243430881939234567592195845774796629945490284230917814525158602744832477310320686730404621228277421105834050226218807099929738021049127276632279863692927418513906231368173423668195381600041301325975876553216095424443444764444800627126909462051077108980436350767429206462219355784783098602841116225366892846672747846041508020890553218254848610797877599089662730568483232619942002888713456373640469072434574969948560006540007485884733376932990480640264922843302402054275008249851948211460880640113361758391021828419246714044748620217580130345512626303038877562522462412451859705135501166853063087004263572694671520365574605915700930487739078251235718242876525982501424422156276114908639731149060083419658064247374570298172326651901566074596654808266744952933924474130118452634450988582423495849342072079775393949597748026692535662488583061609368411191673872043103694897294702695705116186304446398039643870899322279942545249558695750216844068426420227396839135012469009956983880274344546464373380749185270189360121044900408798885132090285948829810046224566269110244573181185194225808662672160808280296522208378317083080846799676698798182390236818530225767140203166052227707678637093818516010177298355703247865637788523641785969259229235650431028113304001267238624102418682446300136999584142238055896050952501423407110301150117389135006783385106828043289207362999742786922932705953565679286533131723518070109852035560949084508572674269473366055205005482208693723983646826487251819624027095333989914701203947471508242154312205623517405649261714564692933071977747941012729716196646108704615938492926617646340563983108980229580907939240439750434620887674213416590477475221678235116212744783574078597369497774319217309568389917803974415457165711210460157333420074065217133354200480175054447972981100819699284593152598766336469902759088783924686930732963755476735350488554300398178344133841408229472580622097675608284765340865191736664489257718485320773378094493552384977391064652906267080144303449001747012572710195363830466682989269923463444604402090660389587047690031692992476741075600451956307519059498438061688996426403516824259285578646460462148765841442092078856651837299754016511315720806076090367138690807820867931230897884488264978346151926054759642857153818903967640951478226614349297247388781567945126371060043016728549094700131421235749770451375448164631202493400006335852617117440673422686424654738930311629754627451142180537688004008303631666272301596178556914320133887279682464800091508225050770566621791837877585840877004826677959414082433532720164417658767999480545837401741039337048214919724340997558418664828801586117680049734166762316493463421273155130885146625804763882616125951432196097212934524251283870814471748620456764857281443944772240052285408706119290792453062734318166803651164644086321870803046888180066762010251437157847853702647116541937164772663736210243764246418670970288274653051782752810176985457873463026551296155508653624559752976143230550335858043476442785730040027689742619740096504867745613553500574581741917620619526152323759192365220659124004300108957748741008166385332577270634030031730503365350402780518909170755200432583737032968178521939462091337518145261228734101951497049761482336982897212647922150686918335225254854634691220780286401448831647380299278278033816850766442588113748956544695776583843906235454238554678260591559726924951786408383897678880224243778933913241504764173628596580745772385530934477201105543115176173710849379672793774101319834101444768405171899222337363860253778041538817495098315406699168707868543559423147138274793835648668424482055458997739345627585085867308893369425560975918208441100238363902658456670147868921027753049931116117461194651775923041502751937420013075380634605624138868546609044686372537040020066259909841960431033564094102160763218539410451140647303966275087272179070105162201052537490537128320185611048308594143487355456248537149894539703624257600545381990641678497225283470884057466681548535321193528285611249442185937430912064113720029951771579768155574250309788060133236123742470291855272817579095317326614987212323222515535047282731829203346493831626646727825530366000730978242156559091303033251566910234273279235257026736890867595383713157130746029194132269824692109218329937652267993701559605701055128258811924310001307893888003361658821541433835892166700940527817335476095830365374326990249861704506228634690602017701021709605153086168156456117663564621167635990303966326048749198372372582566001623127362804835974865871712970745548374620836439764866699618760938342121580812521145990555381428817183600671307208382522429381389215181220758944109471370426005244882552458622788957805038879667716080694338602337481751080011944466227043527720538032897488909914680381133013846415860412184274503056282793348721086817147029603552634998534002572651185706869066355012270266794270217358496550505197217616130763364374977266063887140677461207678883312158772922736643458861905762637391974536391045832173568091322741817767892179688643765249320314543647080483051295906160894357776171356881293431476233157706605656193400217620348600016071526633742248123844670464917190875730986638434840939164760273740722441348992758508934719028499182528326011156193386253543718108381404912745774482277094619098073043401429958890967255793712043563363947699574771755865274582247562692614171140881057865463623104518568879241211901162796817800562212126775351860109653340558619608187707850467099437901818288247129982587444827675175505346536066865396850628095410055039552520060013691030811977062888332732148083015583154115548299722728719228939147218738711906961651826037854275982977452103924342721091588579795892002561611070145574644859226218182157890200004629655649938753967389585547380858501562843759649507888253577028833870287596343882517601601932290461675494967919175495729251430113823066951079884682787451193325014664086591524285037664353117300757240111173868732834857301550863231804007472981698670799498097389825069607981073694244853440492699903398846296163203680427869528727006574335980012431160830702898814268152266499492545080895197254599830869020664172100182616494380562783709196472706204091878737506015822072202822454309207287487849336206590153723184240358008137903649738514304337039345490272602420706493536806016804287184444559222115103422434810159024991334001019781740899244501366487857855553238388410446215921907406328281139042375957096332255300044803790799572403333483933996085036051542954186886160577616142650029272856204797244486693026484210447501318377425810681667283596376036413254184187995022849326820593606056983303360894271210041907104382680358389523034316812155100243589568820760859192723220518634181357036861556245057200060389175710511764928976999202352018611370472802081520552603003176994267334564473460862756541554957571739153997479375856566026546282008137039080410385157363615237295788324625967251377656922862452164555391058415200554891539233797845577841394898950754163081702399164168036710965966521033857547497329084726139231677379021636051803112967080386289555753638983861918085025232847753207823078743562547485806397647452811181757918393940626349343884251111318623775082022274056582475943929064710277977380921393027102132065028676746494685599135495925474300500143679002267326290682175503557780672559268364707666654656440343962750269343808934591436512486648228057777505504715925058388146926927524306934870023140286701951595963782918793513458343237805140541674424667632104037733965494356910114205495487873739667211612046834000020743011117827251657049714319765341014653988317977917790720348929087812486067262998963757268941046426686453072648547260952051502192619507226020770237664287871871893074174514956243506654575691297244284488040431848187495098496117673542018536174570127044396757581851166973073945182581812607169714733229320279546590934458300633255899802484363262280972880316853049145966275028583753378216930026389280815371052569825981583601547025726287581678978110055428886582193685977976710063910501289457577599112166461094198112912600201014465145962555756907287454625995091512519565121306013988832120035775082686497980259970475270783881665527281362084114040258787329935237839918456908049526405698880535020636160162800818316298418722106608579684629444901933112753687282281848814227599831771936935008895633752922785751372668321544174750755356562977938553604053435356675054462054398840064862269346377022700664429035247821465107174805941814936795221901772824605918006663793501153936183540177147947795279652972466923377114765945369033791377324629092512146922972504154580917062265925727705215050765182958182546513354236458019354581025856019168386022230442016733161154717402036441333376431921242869991159729019850466017255910026517655272852965462581787600938368076036050044023869617424083057712276580209964326431221072771009069027070696509212328177580853144576185053577640598606558026691131405398411181063679029215411753507836136666691678436434091351680062534154090226763212155270987723995752060050011667301628309432977742387781346885912212379711220100487974716623749534946233749227052752222635133354182599760914261198482648749320843258634575693134203681158464747013811601624561845220291939594282617435709485168535535494055225978572602410053350176767962076280604330637842487195053823563074384334965763470350217599614909922924227465867497504216786361100197950798549418081666884797055482753447030041749278426804104848459969741814090514767673385782978549431840639513296410839608822248672904900750055465116843612169614799768040229813250579532803125020676767354523208169286168189109004931087586104414115086901992398476208050390903930315850866087187296343439272544967536000601186259051503927622714013152680360578796090293177722229843800840956934636732905465853008307035782254540728708702702418360567288378200675198620875600232719325646002536209048603209283877207159475864543260460198676362557898571220022931082042541490551272427781354838758741709649759904020779655776315556142996641412705512574815386272590542506990342722285741837850700679612585326129958178162876709638168571475127335592716539891695243517538102233715638088970781064512330429003896062690646393178824392809945840891816603052719623105832650792764423529030279787647517970072086596207418532081405641127103117834340446867959724106850975029405538926644041581694538415964304112350780725289456554936674458044184287982882435646921000941788730116933204331126522660227437209189005939472791194125201079587390616386659242180939802798186284168140970377030770039395661366463092605153242858237269324402290511180997185640032582216550656540343071436143260566347539119187603703898523488101732985477055227241165665813990520496644049831414819013369253008650963020025637883470018942894045777892913031791963960578277400315341966785176310181437185463352910905798656749675059928076296076740912539335277244722932114441166305109217216446157811041317924094566698935774019318037538855770943652774088463895080365965021558289788781899737467167936486454330727082814744244052936387362313767633672141514791747500970472940210616199983575727420852740695246016609891708322948555148961027109908685386245113787669860500782988021314758792000436743803959199434683473625097589774249797332145644325965758666534170423118612990665174626260893236118302912101198300973385566898987796990146077096428262781200774066382961396649457237243665315084009111409508098181974381199062476013501283031808596502610213574732547761858887284891233619401038057593090573525894095801088803123844777815165908531569250303047943166878602541855608035300242805900290230992055955657283907640267529596057728897050860663944715866284083203615215456928900929173487404562948808945954801155937514907081405508750921023757824663220765652263408098287737148336167717723581982552867775037484935149241966375937306690328469520102355599106760313844081712590525436444784301684721330982400597288471843091948576398843777834196125063003955701438227203373843447061400225494149174186774613413321759628754890538345906063203540121781141939161897479203201707071634617271717054807588353529443817509626497132182755300619704027026354046193802304989726990867169733020785733946747130376784875034384523622509151810591633608370155385974665313760582759303720132923127113036193763272817962743386932980566598377805498907190419563515053472699275914499841914776321778337801152888661690049711350046898198993003694076097382087672160003503134237208001883980832496210205697573868952562602487896773819992299026718215019108948738820409572094242579339133794224924861885498234229779260037509741324396147275038542747905277923069928125943403501886894925718255992799650240563466417719445631115433547062550537873074215434822378832054059389195422209131699088388097643499857061840274998298600979602497795822570709786965642512673986016245561414580249286466634164064617088474801090002179607497350633501448104151042178414964068798414935664764342635194138265468105649995194426709248631195120313096773654235867294887444633292492615447792247470961043673900999773780604741122228746342155766014643939899165887586063652133339015430680539997239584331091531276703531018505841870458158879968050542866328236895794175091824981358788741110073304941684466979856324023674310375779428228293797535941176167507134396385532719904185521638657353936341175837549264656582925327038410540112263031775758641260646957887004252182664124353978355022896532352942868908316506762345828789819092349048963398457753793522681139381831500851542769931060993110624835506453486398341916187053002560367981122514863278302573997468538233445679879333056200294119815502118419205924484837796942729702019358304594574883339151134844641862833393666325251502813337967133771925111797645783262046421318487204070615676650261365953126672404679663721945865940842553835499622659811403154720856549589089504037098452341259203827080202104342595491857786618669977755088593134655537647925584407246069711223637559247586132615717837325144328850070752401055882980461530971449252384810597047307979690231924547226176612799626040559957099301035026786818625807292103434819615170342939175824318310652159457407037232007207952603846326401428308601771569756896291508463269311482266872706134229829402290350227193595663259649882069346449490414828544941285049921684846178840169092448039147460137249586635847242953365628004285724295365827673718788874762029961604769571626539065355984009537530639207691924594403131064248580822116922862554604804443939013234815017152844544549460660144839585241583215967297257093213422675981879950688184459877067849596668852991419106991643107320015893694539147371223984056540754157427424273404505506896927668376884218631564389369828565030268809538576309732419486579380869809174781369346329946611667007203246061261689294875550848300649975708356054430667812017713750905898788278110174762984537293383480937344046701836279117573491458526264767746494513246982801862988726352458475386551989714520546161776210457578456815580323676815363231151615802283635211392246931273588473815965963976365689078601603667155742012421198555576400763761913711444100632612529761207557141401540064266777290539984840122134976554009642492581770943636174341371473368537695386062855524670553282640779319566342492341473339836773479459451488022343490259614235073798177586790237964758970866352453595087218290041292384180601080539022726959006635423803620156048329646230267377649936976602992412929526881345042678697599332240636038152997874564181866850253559000360244169668880695137582228182733365862988253315901207773350425774115818769519306657459677791418435770629848877424256091394831201425001918889369724485632871226991020511210177514043864615741482524227876554114386012224109718416083146186613274622749793716995971625092451282170146891756419146366701915847001731912952097576649699419103393071601758769274390396309930568594512771329036968262352636084909980167842071287242677629715712799077550126043264146669183414681794682992333650595842197097931028515700185816526050047249399771136196115677261051097999498477172922746832357107102738504030808335265970769435786025447548018719605192308739639831980676296465202177186797829752939622910006336118709347606141969391146150879336465453890668091197115874622903853412227427366544164424772042329967013618328530581753846478315290219217471271661135736771408301873304853842523682133527959527366961322859981669131513776276943325601627054133074996971700805373208533776475896938089290757893112637187376604893153156988441970578385453164902018790364648781205143277141666599383256285039792572082666625666838921259900246494011348532491188040303019467337948479962011906944781018481260764445966241791664385731370730614883890724017780448954247244467286664866318176962671539973769552262563740735332353353214062610804510006827808277429188398229717583471234210780467365393861465202280512915647544701153436570404699268421019817549024918313908255791426477933740552952507973278556822706374180256243227695607781417463214630774374414770622790776268526266686489235928005254293615520902072609979336521367771815967251479443896617658528223167044135545937878363568162140951204984541555938416405935041053915911426397844359369648477880342487807681317817055130890728317280733478385161284618261275054513981601360493965162130919590211810602354723357618870647665798994608176544074404044943119233788271310402475666564797711494305843416523106295061295031620187059892088931398056498933414367547798924911906095012103590176206164967551436979713953277677748866778253576182443051170027722127375615211145273133153100053386776658607400180812815281523924335514804480436870893635706767239155794138287870972395178312577698376867958279260851966253102538401625720892244997884316672294877417436702649080582566949558372228851421286647901163408049202109933568215789780395013982810151099025279656356408747577707247971583194172795594802678761593663727551571374754778091182061826532630647715654667866803489675944043359417613428670099321333652418395276160374270560505024554615896228088267430131742389031238196257885050641885077651000733298380630930084481313757618032196702245664468485229417130094594250302145782850623986426863966995243978576799934118974920822555170266759488557026351726103783240508578230571710338395563349715144366424479359106275204396863300903331852895862299532253519332094073486260721790331832369897274485068524294903043200429757632774408939428805532181186657888982292146222245850927717273389440759744941935039003255094880781406971863141638093160426475865517973785671232436817827253937687926746243994481721010007404623422467109663779648044254689640819566983126579052386013820252477299902468354830061464581161526842921596031075239269161445712604834142646877635362810665199237296329150292497256639092441793675343059530508762020548401146814021281396700774737455544521912340341072793788351456904355686640270355449001350741680302718210857337983384384994931132813638534631900902912789632364852217597994156251770348239426890201671137279958396656872350500649036162285885199633624911413666115366975628904255128261467014975384834158017917910065444747777205056071902951473423127379620858885750976748472473650815404415835775848231732556260594225325668372233856958134255562152567584623979188855350991536907494105149612843317590154401819831174497446308838038200499187884134145199541940818395038131628268710877574494639408677477794081308245541127610777407843386475506471722448018126502976278297596914272918054406959889966208270176246446148078112597538722843456671793627903595543415076116033066542480665967144778919315904615009173459531328715089291673514022392622535568319440111047562782986624997786856582370942997195796487252402246684693262399015405773836693421945439191906088869158110208029830316681115794988082766142801845095940493509047603250275295828082738637434473439799917720092676444486922798915459664725773422678869761857443708218220498140972366961995512385245952252282952643576085419116344590616449271655593816100468257323631322846019156241115692081372546547311770535694118971426997312434494590133872439391834796544969389109867473990047303242471557843117500594037691506871233741897011512749947778968679266198265076413866878057242825777517996628234394332046354065996675380396214240122813057774687579489346293515588919438680858812711112460860360122576205434985650593918671874636711881162738042380525225459930137150087479802973600078145690180001922861231985454117234840595187586451418437550302410548901600417471335995815702459951807330371260015297540565058613252959714695640787634313381612500744370874301266545247547536832521704846058642470984818618502774011281340863299304136912189260049494679853936442185694002119773126315975858820983414062151883157937010591686922983837929714551098669683585163690553666161446496552912780552672776179107697295511149640515589370944649230337961073560027074603013336113942703824796436104445290463640247654846180800486055118134495560247845967272606244976466735551483136663727584665542069302792329345769396607490797384475811240723789082979527967926496471891339222652144473435266104173503970826339351840518080514454966030138819948586199564877435094808504112280621891015755223558523007903300894529802201425826463829982787800037119104191678011850619508878624693541266274546342543174869426479361325890134903697787248143256650518330807383799671988117710010659272700417223034720713520177532455929161957610187440440003995787826669934965777115465948918404186138019583945362408222211977244174367142502668719075394457594192786163305099772712117703948988928898248637657395005377279356855040801990061129068346633858016886482077544175415115223678126033843523775026724115405827868080291931685048406644071227135138791774246356351087907611312919769307159694097725151320976663251195184835625545846527500668849223373037561872829739966910454996962732379485010731138560946619965791708533299192176667446057925522727236076657181619389869423771034706067550715873617559653697736167399502655324155755807290702526320915972330365067404446822254908770408052175357118671168445820881529972036000204355988131468276307091737779229292070853553446597734260991305152806063667630855317061896200872493832136715572913642970442756200095038641430896946767461871720755781467300293555629756059508107591360674449010671865813103181771096395064765961076626309552586712374458561448009036919365679247265049422108545419824587464776986524424403348232732222880987063850085085859281194373365705933740795289256135473948486954549055411599814857820642895907601646506377646504129051731113802334636264673173314503499842424385463207004516039468337945086809126481844940838690840398186510298590686399474158015835006718831996470472717404358800848680492018967432436851490755053292834710864303071956538867507577418478610389899801443490766207134306916328528657746278868423871602270495006749020942101845333171674954851866203028102790960916508019467736149534847625159117214534326989537997631458902789985202389523010444522413523149241358023029479981435632394288991841527398338504712576549410162527564074839032747895119971030764491479296752345198762626344732667545985928824213693055696690434033836642770624561343903818474403865360736554233607226734416746829644780765505562272745503859557550131340847789280554496302843180950175796053095821723760106812285343404822446521059435400872876435784516002271031091548279370771849512421365861917623922099083921985277187643810998307461372167549606151576781658187762521028219415813650708945911914168903893424295087038010718375909070108491191617411364169645706543271122141977539849693655350334937364498586118888904750453913136845405547872870802684678352346015228830345243978461314610378601172846840084013171247611363484829888139177186412286564223390787348529736007962847426348390394751661307637517748054994178405839086108612910966256375063564525523343979315889048166205727844648503426148140410579190012526104355043195696048772140266479403882581448407698075597013852936347646699230749583820277427700372012076962674773742357002323455133007298276992143029025474921630686024314336527964947707409565871892102803621902328122134938680766958790041855091937732116642696309838592189915360431819101737653986272964625804623778550843804318177000843740477018665928905591609297306460190457254886478926279817528591737025885037615452204982146289888489188843060332751635075645095434107334928074992041205073123984466988720137719065276247884380274822193504386159886433037300805638206058342569055985264869560287112740803893247311140518109144023056500586194987242265224808347724808373950893271064432257344218496955742636683385625928871370244476330970709557649148568515670027885334928839958220990074849221418601133072486469268016588151231692557006740329665657506204490976830389929990963463969279390012712670961638720211490682015211386828298525427269541163114053207188704976520912284455100200606234005142013813814632215563897019399730403417339163920151907624324537310861699138752305294805780930524089619435865995064228596855303445931593052070882751499063316525497257512023744189383873097801259012534715840117748519896417238672190214779970675029971918161144905312986424764691319100044536791228752855439454903316740375201841489795151791188048617245267286720734911645058532109046861852443380258698572556851671347829328161952041203105063588181482334643641650317424841031768053485692585202687336549331525456654585324388907415703188106052543154495975212359877433826970712073741107395664718933618654026268874542794953847301289696712771544657251163371619695725455504599590123719341517327683537631719089165848491915590068395492653291884770740846377714469860621438039899222056047372844587309427962108272660951164927463923420495696213313868459637578464933347138966741314832990530703931862008327548034853214756769170740861450052191727994133900682923167710206985475108152632687413342746940967060967573027741480958508204817214635284037078379315409000754004801983728087504842256670233824326604616920238697517906042271043703604616118806761500287760894477865933796210012442282431294226045713331478718894101618151659998335537168283709654439658961802841978645998899502218799477342072150425624640740647940424238034584718581712690270987955106104429849033122639158896413886240788668402997722950582748930424090014302049537052411249943857034075247576439051098986733446823611015344009875982886041679610248465126148327966879304502053328519925293819342889321519163693000738914595212062790734848388513321959807039836383806607452620583362955362039234314995078709361502291319134186942383718908127035045894637729543539083855894423347927979533095514719573333117641454350317440006058291545185976415626654985918958397029802895522951404340441397533252304687187849397663054193485423793384592517168211823250085992838134913972864589464377258324196568544233444786283270128318000728041613827519037474474503935920981247232073788979433072935608002063482524334700792876126680407389159768894266145392509722558755248508069367520736083566893527513637938089863548526823551590991912377026278448418109824683251789499183252729527236703911390517690349364120266698913268489275589727770173436582097528155280206814242589074576619117348859882711727775595706364688128822735415060661230499628973473518169988667492964577620816513729256488928071101426672333758685802676766431338778475550064407734781283090308671438774894414087183421331654594780538611588017652807940142056560226819726057708880401480491583017067191326256711417628553352530006346156650325305003157326232066206516180932114133136782639567826822890223422030409737890447227769384851869282071224388024706453805966767363774521526856661238693262359148162560449369164900913304604311007211677987295103115653973610171313756703955939478189515413151262482922036033268964607402957704008357734225045154131148139631979484419786259392934665779486797377088978940316324944805249981615307673267900222042949678925881592513607687177473023657439946131230897095800483534399885427243627590585875520702577146466240480451917461351199016510625864631762451975390155006890396763845081927432310973481747793792466831599507879831382345455769713611633242684720343024088162100377204951156773647017803414397511413621793553444217392883136825737294446198407887179748160660152008615597345236117865471737290240166819413033173655722249575751132376961564680197387258633353201500338939998819118420166834217353539763732334545949591932153750864550891417566420395747783296489423470301894028393450743404554861992030772742686576256489478967105124457086420372531104194256165629172879375011410481801439043999379403016802088946324650932083784655036625343820105386623927442691501195567888387695841283431303701958225319471632875008871592715802658198009291248409109264993150733008638246002918266173673528680802148958826863324165182627761171219372465449071111214014304257678565463253958994110261272858021445232205007921241058888098654808792765128619152362582054800861698072193606379587273610205820496159881521360996523811046661643313884914573935546447973665804872055445596561852780832736278178175925784167961589064596309635653974436484277266306955119707287252385182305178588801172918111712939850460417180799230911966145580628097557398559109595619484431180262173316739107809053901507169628184159559873543043763388719416363256216368405851927601666081174703259693679936854888623893082895492960735877072139079334598090461549473534839269196106846159871496306830579655164998233950902782070882117896246296372211664715803824530974130527203735158604134299151576064391887899358737340553961279112627098523929070960204422335896022148450991691982891245594260689893825502513567060367704957241775780003945706157782444098556961300311315869107934437988805298148737065061951497790989624996999297744058407199517966155725229966238667077093235813733272919913124873587688145822627344599198727581455605729862973584217216746907428543734398590465821146601174720302861799916639389425273451407209018682284305141569140488059720761463578505355590744465693437447052448794127338310652318523062427882307088457267661796407734060944365486823543529173300661747615180263158618555949370204951564346966495606875024310668702267888003790038906065038333451598262935722898610774614098765214792932874088511039537648065204351337638507849663338449886706383362720164432532552666981871310055922599934275629232696473099361518000420428395960850338669386428128945404635172148457782789433503064597321972315474854746676599137770056440663355669020020541236896747530754134164683665246001326340885841120798759956626223596393218902905198945892791363998472987056379428460250512845125877082303980256069392518863010719432949772198550821847137038922780607260681907344263382330060546465067325583035292026730114017262196790967781692578253000289758855905382271121141375398676089874013077513623868371240034220987551944873860905878775993613578300625987003254982700898190421138832762026572312505904547245312594188609725875945654846640659099815712943438589469744106601709482112391725655189341068966675478486195977764623669909371631513397535653567896082607895404599058097970668246520630120868873430521183676796522993871005033783564949654658601076965547103104852907102708093603162988036738509439216547349925489691973040302682623766324970652435768014362307635477582560196327181941527676975828075030210450502962692075758697258890452895531936152731000979091092303071976853200989303571912187808812531618734529801777607189910707326138063407175694098088282081034731141596728742535324853104450611087194655433099361054970205074292118357344773611878956819188437130754318820932328490312171499138652043193607225809258295156541698625882681908871782611838739429184012506570594480485367551515494904355137189556060710872266356950574762890662441220066120578091016318463760519288867839461236297211905549622942155033374023461920225230962805128639822619877743021924161253971464124497137221604963332680771784059406440175416641128983855497258400409341626124347693200747086197129744046075096067233136224075627905651098058044457117475108240121091883041483573789830658411620956908136475856048279445270595989079316351869100877967800567057221025499201423214758499387300145357067750802721443540843866324550999341193321866204207512638603524588779660993771236889131498284722952463437671057564434024181302298417121545534306244303392649532217558540316888094087414431666298819700226040374377953893648881434424549211821075706318812042266072551799598786150348701915197773877894537290572383744801064225763369277321864982660403876595278076251999552690897962176446734317750511650974726731206217867468131942149984486486697994410573072018956210184774089859163850017699729599879476021175638706056519340870306570595416986333932279821269473907211515436596867185506368667140464843940155966013445850564748369935702409054465348984515506081864069362113216194647103747343987910368318983228965121359090254477409939682640571710694693902847181245675390274574862749947756669634586677796230424683407492817183846577159612293033706292777442614027127213469266960475263163963139558226604220940969595551225754207406164618788450676026292836236521952760090239985061506717737103531903060327300165560090699065599467294432927384869113356350610168725202768513348257272848958487763783886493769607252051788474037390143044307365186665175726414336940067942106611222597408281633270715334284074771537579311277845215582551060160789704935888861809123439514875208833577855793156619760162884671232433631345478986798461097325422046001777994259253223826485870184475128005202887881778501598121229315510823370913259538111574279467353450658580019197798454851738926693523630648172944520181425844333000426918489103383322276256576527667703424885842589449430022242440840802377748543532218600703457394971599351711342329785640621891162547679057860895643381252161648991636123329832225773641803531597731367962967809969137998878348271453799967823532635587406735081408458844900725188119041097569161314858121841186096266012875620959309581964544034428215383142456029908423423176888616209058923265486488153833493551659737893999143693656692410037658140706089284758173086147363580970985584383168747459216108863726691234502106370975825900965457533338945455171416320201271624248088970316281003426241533525398502429220480839765834888656755320775734212055618733799767710822644945808800502259439035689505115739560680423857615865301980930724265345350121537736175669156753940103009207303823008844902272017917550076635428417507684583557312929103070389464329837300278051306744963333784113524818042782968983719353683251410360454151922071353831734620014145766430232522373286076144338742244444811481571322111661932997621237036890582074788684907989682529298141644273864298923117652727639940418746437569877695040594170774023617342777254655272157918873743721170490870293684879849999273870623138021955849089025725276639472191509186652619735927547227178049249565439187148190232258478210276714362076339096857643368665414929852582239926599836015522320514949247743425759920475682050186425088577997286789864721456375046090419764528759115532479638868313326081043507826099770606755457244887110536813335629463318490890821916899087465733644780956503470517329342968791450819531336117622711384177934441491507535519063158148823263894455677742578559692855712662080091667788722240049149083594604384369312519971312150060621240769492445006223086410680463232863830918176357719183576646176002562171131427346256596613089467948312021997805383341542377655119786572736978765436431633310898108222523813029841593643847369860517616765072513462746607310262243102753181801946129770368617514345884047876106733595549730060618809373015945129202507101238519945300528600654851872786922830436820113507359354721780777909630950370889085339793805116052150968954529783055487388293260819339673401875538381206393518734568776197383358259563013882769053333501104155567909262989216973512827173456886248499723443037684232146512333454686245676243633474239482858939255949843476473734469040803231552006725921966661032955417592688142887871829273556877613717683025206251826146274866090004384824605504962293772514003146879543595912554359097330161406265091649143934782131049156549064914088301649427126526448841889585595123195750021109529334766871437403124429815423201261459166793329666660799606033345455363165582235343232670366225871201986910282780972352505909154717008802155718394951961131500567756857121677471108254016172701423312368593946402181201054781863314660787566527721042540372802391227350267426542813982734156014648105855496296875349052799173849175326981856869063556561586058864494502655050519857248924761846768997788399331193036979464225008464366051497355550691981241994611825196972229204627308431155017665284751048252738864793748230819344986231054585835382296194132806024923057474495130351698030431605051920470345367436454172683374634356463771299633564908416130209339207267341229682530523096491742185622199408908149351563473836054976145889838423607994376921098319097908816929313058012838584573645450821874256939867662866063349629859242370587001929714594886159169933779186620956277104226525918661593161683844691002302434739796891643382067613056030123783664761797675343192730998291185759893784279709789938875000570069282775809187732639683821760231585643531258135714305621784762386511310072533951955925968338517956359442761006548718204594171669183767979123602218957628826581352965358469374897954769631647982572870911862992630686103745614710011092631881129562993553596020217611081224322438358057356163634360185518539300195590631148732559641395111340197178117043289936228585076660159387645405354062486753415533451368490171885271337463864857425485306018439292643413522737613969782454960771205867686330976550830936153840352089024615363845069762225461579237618445195914546274470868565006858651843410420743291447541098505235432020746521243844375047807519584001619028075827666253966442370068402070826396257204277826053645962301703948321484509645726714206988794871369251191658354171099465207404171259856753308669827728037419319113704040995139621344687469066346906851563886682689061960324542426032834589437273591737192455197783642258701242940960236480618529728688247277150460912399923159865553625696718786306944212324209269381228491185945952430686851635179769868090794118681295835361704382837661453834314566739718629899859871228881370257357624208962055580857057006023958150706360978625257803132843299239867585884266098275924512046497330092122644842109336351345638477556976851789744060261052127913628237165491378263278938928164501548860682138196587330239230426992755522818662633457628423396039537269573132977691030526995794146147395417857377512772084226270703990170686411532179104185300687325549885510703727668812841860677507924839985567456411080066575525934783939694247094281824277586885640851199805537532264656208943618256243871261439940365633350961176298012816385541775237655864740261046824010176614898746905720076969952347678431683710443587220038226215678810874451937344200666296572717551850730318940493365998490455271244028242153146602176127480296655108373774321822442314409037718829503756456292969380308540814366122967903219477582851646601717145538674084865460963013745281072799649068868906437590767948557308702911892727125198582693199126149449508920651416727830598211700469866139753464435057469754751690851555323034979297417536982342090363018418060634186037544764889701545452723752068152981313698835960733767049346359165730105181157050916375338476453609546080112248681151434356893070024110271202629226430017040045932145940611815293852758529771069280191684700030935157236617501070782917820922351576675668539639129782727930574643465270029709642958045346151160061803094203855177517926544359230854465039915120193075247122492812714925417123378770996820827835603095355055588821449999844599110529293236623076017413646175302493554174927283994493935765740762747194369184677049801314500032072794021960936039236115017083182577334895330642485591251864903195147458448103080667467380945273575211810786984334954628715835897915134892829348333948226103015823954301790011341435511948015695860079487624936088396623603012842948241608643737963430132367538710103513108884560165744447845206521909276204777214672631755798669571602383678100970492239610007671647059163596707652231655151721046541187721279927163091410809106145983068694346669782142821428767013358589150902288605315111817407389344690930282440258588455696973149589414313758349444857506724009380238423334634956316739894766489371644452504791091165576403138667875055312432420463740663742588177816416563771423379083638731411603305518267469721895150350375414153759649397158993268655351296390752116436014156015138231027361320852554253542512247047563075460666645606230495512386521444163550521411372739640247390788798875132200377252093527005220454902485398985659972496430573345971812434732407420066731055024464731833929427621079417407579185763119428884814944748758371264004395921465814373481813534318488352699109666146288701860278903533169839619803945276166288400732986100585357212804610004212475975473205185053137518214068870403792104550299600073232491527500005842486644125133879411867336757200640821555935676220739068284261761618016118746507855261814765674220053854893407913480793569421531764816975327896425441961665426212739973868594452547840988030755583736125030787506313102455766005097298986233163498768380514979564647820319918465675643170405384186553268361575729564351843484725771766932739543184567490326669330921020943552787907185867634872698414355160069735565106937929204280254078955376519723117581110300057469713422089208879208000394084526543164219805687661468548154110618669010906741792015971304210933341711306343313376920049578328612006702654370178780047907102227286452194857691941139736564973943232284447261721052480829561635128416854915211945614767543643397070206130439349200780207441675123478487287083432592823289292142106916550042683561075017777486087542658043770117769755088890310418710038584411720795474631351319320499924687087072357588119016540754993077830348831718523865517372562115169230796304197961388531742086299152020734881807052206442192503680290001627260212252807575630167120066622028946923431882433944092298319196615243249226746067481456575592330881310643317085018840493655058721632790657879962670609281187536780082246558934254259651132566471712179609499403195864825495336998223460307700285181479721491162556587799242676329269635433085897238121497546159036625354324801875215716183702542632537543316359684945741279017737604143175555924384055907158111092795913533238116505194430261376947367292976049493376158594759298352316704278053727784378211641383958915402245279712180471824090807512925554434724129807250994955971405942281387088455327423139683193113677008880153134636842014904836879732096003627070382986852984732095574242292331709713274201870667093381096443878975481296738685857175641199655239716014191733146946531592080427247097976881131805557838379265399188777258469467802290905639504683562461920433081040986858363285711532207802762901412243009047470222269204245691981043451056247544118952066318435717575204954039811408190587800619599047505106469513794615937478409401191223996482759919040265853627249845064223294766957995156882623971415932204247500708559161176174212231177279639517893250853578819143699028397557032082568819223465389487701742326166803235673457441306701077163961073928980637575278008843221835723431856242364840672839106867450805126985955823123690445426301743971319295176537791523581810494709929244056971559067770247690650535945243020628106940230493302255691352544775559908482690393159276509489545848667626088217910555044158673204314544572745496780308018658437257003321281394238309821480219603247839416473085074422403791128957264960036743464895809127655496764763277482807905657675794980321219673515951236647234370830636701573802127411040179688676692995040121047053538158812174123889893475460375711779443792664435142742100219351066009164854236127245806323262595868717900290254756922059007749473570252136946176313909958801079537405702500106670774893153035559431793493252663837604627126550557977869715061419272839714174455678378126685802006135171605938469020616977687744619240892915297535976157552062741432607790761117473105818788663996074335462210408549169255847565054887645832060708002411928041381123047372092465131102791312580973067945815358960550194558296276071298788834528290678555130462190617445379667794166190792385778952617285569506471377212009558747301130047354183242444485973305887667882401071643868620100704430201244192911597746943103136730726757953524214934565079359408137450848226015334724987660679215872279045721003224990220268243835873872086388900244273643601222315140812613476773534997945441150201931589077134742567082515198624211257476369218289659585649887660992051857324571633926084624726350629860303958570440193651985868124122295679009983409813757087840832071267846473578866199231382064292981087982603234066531241207055479753975126831245039788689873348409447594413055379228675035005222458400684804573205472853511695524796314166145969965897140414607935197616646012446150601599689452349568746704010572074040099075900348497666050097866551675404940180311765290482253486681747936292732066996411142262991226476560925375826590364137122758533640207664174855295428488535386864359628827222495743964993004301915758072084900961231546274057092037341786184504769323545922927140965500512422309287595640152374030328996465291503987930712827093602458348133295596024621379427347800469384951104739812939965357270378061280143839573769998869054554847599662280537025903563766020425742138417798167165633290733734072450934627820921038210932796445365942745664433940581881597730678631617942459988519607776660758462875519237099801028684617515407071957525484216524146277070429111267235786962373668519370313071887862564735306484381723651747159648352944830588005263666249886521604806497293838158418252409806031639943694042162905926228863302905137203281966766593570792753630429718276828394071692307874792935519468631891160796785197727148054090306568656734798524856300194640089519397161877336223540068502370797121784037942363071516477534887641072928334374083690187597381526312013342333600188765804256182932725675399346525130563440459446013192914720835276738211935532996377249558842601719510670262824352027663080382159536270541656007096518811653288511105524648152716915801685177460114343479782596509558689050410360238860702863558129479056508350464462780106805034868713403693661619993174233898049657096431048728568952954830558835768181033505370109871138027949855268402854784433512735586786816483548470652292797431904727464097814558700209394576745663800124762006610874744687582735033042515640190557989986329071623135325023111031396253774261572066627628379623066513086379259015207379578145236339120121947212786120772402328073875232081221171658179839140929629732583220491629093488189553323493507147101091319215654365392745078348004012807206488456374615874564645350083840995214601192530649988330721996925053421756726934017647455037670379969989581991124894157714685593453104182741748693603293789175156181118279256705743445424789652752037350184772879685711170226519388265141072393091907415515781537887831999397977714593918342648670881246581345399506255968176400082749914309178034444362654122776915063825909448118127947320876154996898226760126327549254809809917243940670197800036962416118786826264763627601172865852757757230033067665769583275590504734189535996571949061365621540045718221271067947081077486111153698545665821226401336178246732156650724904417359938945536586561146538493003335593909070968245601107390182352913273449152543310706668245041828466396120683452882206637601570759184729449271084222123908537412269676608323278921362786207569378377856263059809582883387172762369137834528823244295594384043184873299316693877449112099813297428164688690404812034106976395982116682755578489752632801481861644570605642912511528183901473489977177393088157368734097925734194376994389584530084075307517876457582860934160901423076598039834916621780352096940392680325150784385085673612753536251693254852174840421973333404459251100599850001036490999624311401895206215487226051788312056659960522792597733769409356176108127320910956788377764478679718887097646750885587964344129054161845829009284983371381668452684222222225293262170504692124545843694572714482391516513738297081830018685568260470403464277079510095362703134014212073803748529310189132547522112429408287796509709872564536051027821710194625962110531541065422679558597484179380759461224892003027412422960571673248314243679169531028228618158437971452624186973969552567347612062920887294770113742526503475210807853380743328724444125407832077433994484696032062379009558001038368728685851658827746968950231807065848476738972530174682282831271190271155541556591471454970282001772930692064159132604070567651071652438522976484292477202761654441986903181030223973848547522569569117155261889089410431058920368498406886237094116132187009474847254633903716038332453254044909629599355523730683094679149157231713690404304342763248211319184583875171700743795997272240382781837335512853668541188060811844154320647243234109198857886706674086382147542636806084517046148493180372601552848631427772752299048037590706518982663726051739096852729417766706502050068251648219838213260322362573321935321435267209581048598471841860586342510546916840764275444472774343992102322948615912300625098974541266277177740011058747552783011546221700945164165351809618505566133084436821011365090030478198223249038581493080558159226900910811521326147976793563932070717641160738404958836305377231365164563728863819198689882036933971321219290526257203850694889339109270579008924853643926013159541311858371590058473415347648148030569687305410113072690839421659003874778650662735647961706047515739845690297220793113184390715902057422916257848688883387787317652536867143719225770627023956669014727977409932273105876692673709788833421777640644682335578737667149072121513035461726784009408421831257948468187041625875384614827645458500707960503912372240692707686221123687908192672974814040086016039763417344585106509889201378633391743231574394816753235153624905503342480992917882480325295806868897747543172321235304392572929952124671378488764768819139819952620929224649192744437224052207183625079309695851995225081672798194674652642144102248569663748640670483984975993925268160034143059344207948805021038980904969142354826013092881866239005150753131579197028041242531199057586266123016567129852200752932061166228458328842038497284393802498043456139492621981082857985956808538125637772642991835480489308289481873281315953817323617585945167476486196188381028743429515920242505884527116202993638800574784244722982933740256866077328623898407012632537363237994883140205903126784903329461192432742447609540679141496401278607100469170543974539056880068244220357458088630792395191086311123211052858412323540659981798781178899217698718691499285958753961765756675783366320280376250725584067977563809854242741477651898021104768955455684747471555980833839224530632852395650145221617336222339804582673875326964225036027492202306520126548629036424468405339445136489516636511893040169268628688942456486666691149549455672898425656765088947293777253991488036966929525397628614336024002505038900141002839821849420727105679126998729749884486529944031917954272481175020607324365624007667024777263401197573170053008350712882263916098202344980311540122663692684177900202691613520274987996224669398319356106559420531114231801030071837207709748200016443922443254843001097017825909270557033139976754085371946328806432744435858320580177908917923713835219187974723692078154906112155263055415520962353113043972175052947805388699404745138592165365571001272225573200775643301943424373391344844841896419908835949873163007689362722972514067751242236516542020986967358355259156323854294968932809220373289126204673990821118447107988601691180256162378471937298226560691677290652037656699167681523168322912944683229878612971143296690462113618407673871873406384801122862056019256833655511838630698300519990783332887878328456552098289405186526594125599579293209863462921008766492272537570609136568962862815901281944837583381407957125104897420403371996103705013897764083369230751568385851440526749569376319852729411971219996729259968685185767331827458880556150450487586496889764383854493856345114683591874319838612689559835452205867627698914805221678291051362852577966757088918687582943661870482536403233820124453718007715946223332991944411812315440851971800113384070922325046835571939146765224720815022818974898912125605999523435389361090735159726929060688829195055891115461809768850389976253389164262735957624334506718200376426305081108393399688709904255862718802121607634657095010557293172587311293615201154168139746663478600252176395270920171382273654291291183847217503883289992927765348706356917580373276847187308308146782548697022994024750631754484927630665471432545821911426485794028249145155273469981924888339119185481711617912533620950953057780352019712211676283479346329621536141963771211252840221435708571496171291311211025259279782156187548957130128935721274334065626091976538998881705330113439329081268230391621353904846101125719470401840365708345203677127105123053017483437337207542016416080597465703215388507342958368105724691128737855507987952311700527740071980413817900643736243042815599040621209489186698333683309546573304549250946690865904837723391839808258239414446581902644199899614005202382944350008851587154176810484633066731165795819196331842868431712199737381770469153650796681754301849163422681773795244452077020907640044026638428497169087650585285097000525990655067378630522176912753190025122675780540619561490168420253308483295589560922725630026454996981742685168609585320341104123349179131914993881947523303354633058311389613327270176064628766063506862613708228740504395813870259794946615510318037898228536684491808947434609540976439542244100589582708528164264243020293256304627310808141240334946927805210986895332101238542205561060249729245412724480778134543544162066252147248957920445522378919277821661820649140538358975346256771812608175619222043452926924471336356781118731718354983611231729324290075746706166745975174556852386112658406538463575448459836787352767527944326119324843819546207553654901953222568976217869327669347787497399299902597308260315937523716548220532683192256188783190361340167296681387579049712102383953177896701122176098756412694075778228048377889602092833645550933484276540293774541136904920831250924097978341185049787050721576481791703986178625193661949525607828167347086285548433065636574632743118364009250322330179654199561064721894495598129153552126579501109751175152441402234829000368950455314721592373443201623154219710918586891629919970826493894773376983318467729695886580138647238141865922654784815269747130891719440817055503556219509186484801249223690595550366287832639815421532550290339452189252734053691482408577344260117747849811739436294089544270181863377739334381583751268717650312527139645072062851051251358811211249164098053961796315763632655751370701204018017936991659416310304658839100094608637403156734573001915419941588860079941496950720988889998383333804260924668445807975197475778742872126851535104122919779983011394834580481585048455868249730581528713055910881928621504394790323221313815062188298931372079305952398173929714679765670990754480215971774919896069746701907480135632748436418322974007133130829089380072049356238334542158398626279079961907777017720091636970815560369806977098319159650447000084191945512264010909082119266551479396088384917946819738510295538342856081260863728106131510789500509304917626551405038268629143430258220812646689988889821027192078291057777588100754098907161319755310693353153588954877577344229273631738457482984368490982773753270852965960592774880814121701342109373421827381966908814805820381957901841570532965252927475060684000773553337629080348572824292799322038437107663473797799328305577415184186807066437598125401586054421383484565132892241107020981769157849125895590584923650575793217453287190041448803725626586630025845515781051066643247449177784223587947975890485746490806165261795304647648167288708903913132192102313463447587906965003367666407345910836274676409050992088837076206527353602467272740692808120473569912349320383532267980033268911183154317707890898446249397302560443063069677244501870374432589227456866415630879337449940906886530313661677064046292334050160309956447599245576093374477135667808132093204570233228690030592893827037438536153031250053422296011318932019730825231308997070754585732810307210568666190203773049586475799352290648539141824695212686363764884078250347611216744857459304254392992899296643185882072445269616854708190677894539844260592881051434081236608885326381472185565486249234874264601233043313394459028520476245795280886949082345735331192552322600992300718648782884211496596241498481453520315099531094818534035551383241889439037595647321831974728247508319854983984572190481574071238833686057565288022843231036913096734230463820306554709148901553320532125915283288489489521610976696308829519205428019940209440916662819029092268042958637626059741185130348468314076906250130985532068619189171908419281123678376415415535955149983519648657262506594115905159183930253960756408465889124459333369049503273935607471450929145390566002480895213645569025743911536886229439682548165763535447575049383453402039142741161129086471133343161486665764125464341848480833327768720962081488412020187690349176226046550404720182720128080300434521338339050365225527883744516654341764948716507044286886354543476427932274243169435994092586072722005731853295868176836249812668487615302335165753033205039434421490718596572444854173451239185388917910235356058030682970234853301051416222416961785427680330103410195515154774124699030300767977653359574273035872001354662696361410526046841116617264790851635458868036713003295510183064930050735677560128182305357198161200880914174251031666488749295341916560486394286871217947509391447577815811705428180990576493720663581317841101764607840902395925527275689518518328962597245526896060928251265818715163073252231874509647291318644729059066258151910872915431917587699146583867335471546256602699326140651142184362879866472399259644628942954010634332414387757057508974381260330483308089391867635741339202186785770822868360715854798649143369473521564637604422919359626711933852658940546637034832147149800484428670326580328531056419692962951538670382656928715499388030291206093177866034418097332332180929306404914057073968525764340844973904957114016092554145332433480401266586135288363808257922707599896707399641839513588284241106096281499347012834883860813930044160687764263210223449211370688712020876388488622153948006882826808991297999553750282843916822701182283905431617099847421194301261193522781120530939386697151848364391476320272345509719263753522497083467182697905563301892712430595991547129340698061844499224574243087043625497686852413254412334321651205812166213925726999048925799396696265860444229492181421723075070249691868937855137640922845306880656159798842511979796567544973425162702200656337691976829866193515155911251579274666625185299464644084857041594553539184292786508326487424180388270533220381827757275499792805403247358814338136258212678288825472282887965316891159869082068683936419192959323959099181322024991892150037591885367726774117286754645378158928464090790574874594650424503417985892085811510018604810916973039884760718918402879105897605433562413498992952180128421403363145240716629453549070609827673527538421405914745024367692228920792702295121027825958297510003096243787188618673431947986567808533908172365461951285433839232755627206830709383113737986083566674114901610540673288167998015108678464443796576431976380947846341611558642922693005496261232510349520307067120827089005065942411826672916652219036683634053351667176680421849479624480415176383676656418892613066637733791118206024432831739726366852937136625786544953590814924464332910111763007757291899727724785243504856185513727258816600974000577751211375369034300888104501170902819461599144686360863228576632284285875986151444616831045806587281755822060652745047682306359972726120625751945677374860613350233101222045995275455832493119190019496486325978826909769542086585945256543404252623414607527462225562515853478109063705244320092840940834001317221890046497058877308471213694509266303545961298035050715721830238973946419321695478785938269434646835308466478947176574522437734486737953733832887471823162629524725396649556289573979634925851844100372559449257410957319584762674420312471818039035302673432659673239784452151858690858714462400452529060938818320230653844993002861233270568741646408773311399899958336375592454997875273973724308718291312805560350577157396904001845869869668285352523766680169369626170200583543293952647783416766736570230719648941875663998774505650953054723509052530476678408979814425758502196355389499930407902122608109737485401525973303103194846540449867023277767514923112337790322264808733022404221287064477773969081246942475755752445117850591113483800955130889826851031841367147859724065807805903995433597549840039180732753750873750511341516730196673879787950474379830294000299016483942938909885176379678550046638587274118533758860239079683339583778277587060962953387617566746514559536003074488177095256725720951253785563496158267147419587435323314904679141540804496092251359055626438119299357824541606000041450358836091007044923984864055779354270136349443848454246270881842166952632950787957343109271473729187992562997394316459067131022893385454442864801934173156297666836149761800630428803921996718360271941343451742627400753746750712067134150042593763582394187025183077152577102694478615497536757771342045391463701946079003680567535514025619176047203114675414273070070616827285087139058308519323294992840617195132266444551786447717797517998682543244977895666083443449834592057093777206685074858671300247834529704107427559645989362826940819008679220701879112563800317779459582546334599169938806801388814604315061729114626583280990394842658260021349183342409132383357278295923180862981010691904017059764370168340620826051632297354956517978405926754440786816831801429306026701965647405230881300044471890547977706739407616104541791114535552651565232752611814878568534189331380887454292566553795973752042224714456146714131989811405756485522571077419243396551823120537147265242882168651649402281281291652100934662358851719279126066877191842170231675603597946030821131853839957473247586755122914597482058376164488952959462380291888824385197481102095345913721006342229995519067361270583639645981037979353553658581639783852988660636701927407136827003727418583598961743530341346243483409352385290272817411297126570673602844795344533572071957919519367092395014574336215835656299956541747546786051028163787006492505235609285596583728068025467243661428589299052980315011823876410401412843307745040398215558707087119592034956130646031015631187152030748104692065819478155260939983977089201673932210229236578150653340007296282892909228217557837521712013013322769745608637013545239729797110724270511943463040964461363545363254547770416167939531270255471356105710765666279385423830418435181865146027419987392698550704590358164322318808639664612555056955282153601235610972043599076682664726382832821487123430449360043954629174531605059801895417661456148676723862964058746343013637221083593545212447960692457297681181818790992229506077193592040785986331509532784734354716515297994270630039406316269614748465206229432255941459439775470478884067136487883815825284820271215240898135946067006179563878830713168958870283925326991246675070216029638872816143885465336514858703335848595072444082813882571500935407654915858761761436041725309571445882298925402514094035447797012331521872352374087041021276070838406338547648993612977463592878686753170204281996329116345681625650734876157755589362646150525239492136668864305506888168536488494511693489227358991077629275084195391968017344899616109718288596458009455810865500319115418042318234598073124902256455014315340155128672318424479362439760917452148893504812401222009368703537359984625156658119297621971994494714025147061627576428259165134074773384231355420004804449361683803531898044523620300152695715339673529502921457384035264518910758368898722409079544100833530003835624449872173649138705581170990085282616321309191306163069852861782577989087068546014926423011484021298589003512291755853810196886953805669668302512079895447959132630785254537851650030620719899182342855678445814751032184311024966208832936326312977483284154645629972814696771713942597072632230440827529256849428221581696555523219132955849661752136927593474651704033200808919253725590600737675154968646320666584740225725980198749511129654876142394671245220065993520942394350244310182797360305993073639623931870386584077762275818688973326456507532419275705848187499600612271084876253757979275917965012811949290577918971592947208518641076478391637065200411798113050816159558349669153604532978526101788829857807456940518692330976281800653233025908188978063843769703280592980577658347533969036943363110276475335976340793144118404336418806292707887758529772407163855072857299436593476148288177011884262552579551284739809267737638704938753601839980272637993297836186442702087411681308693145459498134859079979608674589499475516800865900811892744176959477451102921889091833111834744462639746213089014167988137955794795198692460838121603713494468248029118192201483213770108089539838917093255285905039676476859164408396928616075111283686349691047901092718598942356503022795036433512861636036978763434971463971156918870459556192749192800223368016864884885641840257903635552584725824095077363964699801929114910990635229910353171798617589661448711666638753674216878073311014562923778970516899981639753871800672392738719354641432255085240663620568169727915989120277886893352276894118247896245830881498911157224142604174224862411015373986958562637892907251444790520723525633787059999336450090392068828411739668525971099696951107413413261590319070377939203684060526897429194510221955055289209203052341286515249389876867107794904078183433473982100719255480420557269751512033195551734324039472008708231469940273234705252293037973986370233148781293453708571410750530298482584642005895398118331286868488680781422214763295444837821658534076443330580084844563294897095178549391512427577234346843742999760991114495689943130963663491972785952664865275529139984492719303945255710943985309804525373415537279912252758645539894665305109962771036310383607424270930972816539014033747367996934450412540504261970874202882264443733142897038611517194114627704837180951036856473750180961919371647007070250778986094013054770648370524642395451639206023799238123387646254129824334739901399441428198882008669499438283689332415556311274302944201042210405939927967307724481324021152791069136909316076560520311852177492877105540097559483166948811595320609156068906274638578326074693511054622029463719847802225317609010237919140319009014962956918440099287754029079607479673707669988936912349649683578306302668217493173402280733327748365480531948711605171574238503759807030347502689160332628489792103620436893893770519735580038812057745952474864470525170465984153306777297893145813787679765628164001932421154096036141715470861009994682749818623340630944072417788138842421421230359880729232306334659530650421177925116488155640615555976116384274814508529352647211992767467186814746848553810682417418132425882516859923780783917252248162289250789124804594696687630835948505385648931585646771689084482578126254405096128804096686028216729204554485103335202930452629154534595907466685030301150007705077174977397812455110115580555476111793989377250046725804760051726408501403969024970484988602617788749228963597031577938320118805505689499288108983469822655621336959869707480825363239756786123640361462408678920304546209707191456343059579886079697723491335877962216828066942426416045320796393599625456864773331007484319361559917387853150973435191882919309200903631595390242365551289036017016032624639178278815883814041286357435510417588392578692252425709976464984429159057068421837122174017580423847994908541039363017178551723215760871526251055342423116004123628982332034814908542593898466903260184859649770504512962177080532151435301728887181597491686420960684552322340026325656636609073106545262607705191053620549493838754655840698266570692894766531657810401916915986445633591318714810421305698631744981762161657798149622724401058178008469864930838446184739920172504666758371201774492379113451619190968270460726223776619837964618534123359772868525614314810327235492160332382653398864430822191340610738277101739315961028178201642935890286927472825882791327459063943105934120512822126276484187394607782769625905929780531286630601914476108479758179402324348230830008770646132367566688564619165254760076206232842830323738842779039542910239880963034259723537592961082029425038530048436854347463931899324641274127870830495565149752022203261189815087794366949347611693714066792624873590285847414883934048039773618967572444816063683197735426927858985641003815808419027020309969135581718793938548316118774984599606188878014221732046450445263270111462130791991531656086996547768014547859288727382372715020760411198355786949306495043798509439556953596377113828993670432667998080644745007811950704001398851970988047196418498578052579554248201772489289378980416816553272900944856941554918772971589730450870417694952771141507601599583283619395152772121852101073218795958014850240927613210357686719439965170117802314094319271180669751568851960380705149988084679559417441963734347388283001776114220945867447509043648238965778880437957720906733265714002450411396579080271718474912475464751457485629527761630434472725499489930179435447709691097055590243383996503723942032897370148222103828206606255004142318009760591358461386523093682907130434243846089895549642110951729509129148874437468287206272793871315034634530719257236460374932167285794976741757544046445183377949060850588558765166952448621127940328066406575472207442995568811465175329808012142945237264789128147431595825223110471968223263977640635740570655360541292831461387044714213239978461175596656235569693456073465892380687828087484018580069891488274468395398416123838482798980316954946100464501801642697868128702790333178472823415112135678624689265743847172668684849048272156972704819323682925554313467758929850439159965755011588577652641306417180487931385854798996188752842644977768639697557166922898695451525693806994117798845994119766065146283498935486696079709034315039324054053398924089335937351209449151343675894347028669067920024014351178884912168701952380889400254569517391725686510437833403061206425630855896998856259876150620817003382267780886268790861585301228195921373535114548654847855376192072387460259818778214168451112486022570535220270498711333548281282965225966182549925606910538535699476909521380216541226751710853306868574531548514693431972851559981710571590482362217830339145968952255025913582313433357082513049691402315303250117508172392839137011111853106394432999648558103470892641184432820683850623670862129793494516165231863662409069928086969257891438122630026992338791037685678329042094681116181942017730234493246073523428953874680997752501078337599789484517417749836702689566625007505355983081174687481526824740639271115855685660544340788912361824775563053027936386571120943296540986407488120405964491103580091108215143887186400969819614200745624794776828500073780611452800996848121679482265736951697409085720895880015146866873722238438494255289672341391206635019272477284618540493432694969655888581370781238827585840476594428285437790883698426795139490971334224780520565147471619482944378217958533278942842966663757702776993380450662527633110201445076980040207022857613756513549187677635768481538999704160744497464954337869546210950591830081445905909652381341883982604715745419021618146139029588121376166234122727593026735459385905025720490213887345687735657586312862809964150573232405338630531270872355986344462336715831329089218017208928024383853905160190302572310743119425254255743241910289158863227263543412839166752728453488372854936022525898848861825437910999430801361533635897208283759826732608457061581907814795864926071987521619826196601574048602657316479235623672387801641248157510957487850941317189203820696784642625159714226335855190055900925668576235198331705508215227272825989786635367066380778281154388543082795563092820796469885408418872728203772201421769683896986685545208997082263036726973824146331327474869441178945308540356895117927626757401197628357469217442564877476331082252854749484867145159423901243151603808694959058069406420307290288573517350291374246510801333985282573223635028151494574108516253700377566229354298864666803203716501201261071474687678019980727707067018514503542453616567475483178169342896879723183019320055660624622090094782860343738769740095040345401523408937324667988150193595275740505790608319839560575229417513875383927427403678150794087237876803540595762745125666675458972891258008697825767727296691245632831919605487294365489013684980279467068739060976758588862348242415210187907777833759170661752793258154151435868107291490129196990629098501752922000199106824893391730845655204127751968530299178572405647242662383280903672187816487891866947599730695929782553739907193142735972279656631595326808511191936522192452837411322843186741204790052510308755492043893579302150003679199365424537955699370271998170324242192572321451789856118232687090799755410287018208500061942433635616910366695116837010231115574801638244262612849697494735718400890761868409557231260238643957179231089057021816828637409551855899503418370832680192708294682511757999936189218580790751990093818632179737361581122984255439362325582822768962032156497110447384882515250327779086053816271665646243944058338602267003463185070853111817272051564427106882165707979797935320965681161829215742909178677843477623452492025845032364614825613498586396697361339237755310242419893039354662439344776365700235634221278907016033706866966980542495867251604043386596215720390397515014723928797786823746657378504189491928102890444098940121109532933312171930759545993953464525794831648209896991004464170218541614324603494678204650219316136545015657576066362859274367451054904751975378194043710557839202262206364745174319836329213365028305874523683005536167309602221054420586645065784925375421574163500017032774877279499548638327160399588840713559894335533505971572836398631920461130533438476219159632932714588676488360695730718776270882176122708081349119996027297713360564928317536707648952187173541392021963460597986371190716179844061098358531407333321533667125652680681751893458735504058036786705090114967176041861562062657799771749354426216016338984800168650643811811746173799162422476579743555486662806829396258330282990864241952732851463036917584866423978109837459994819998132253280610521146142095516680741536114570665984134122115006858915583932942076361922972609794309969654022557548073818014942316567271405610249591027329892214366337301597655583042588436675338874783208954420640467871021982987953614548986005403693247551186532491485442971593239693902884935463457334526451020534795831913943741325965699316534724759461707120009952647572193917080195423685121639834721897584207662276836550056775862040041725932752700042633500022407188454761761802808736581143603305969485570325463699769123738656945796501445343033191369088289895877457782800152226126812682970984933579308723488139702101246780965372125137174129017818685338246825766475455184726563266907290494656481130181029221906888322447056792868466677091261786418328142495099464779470854664301367071213538266592253111857685213000074366575172759441258026292569466446676560813346617671387142513147846583324589672070873977938196861881823992802230050857879096841852268858565306775063733290553460042901531301117532040125035362149522468244128775444760692227373040725329949658276077930096176663540056687495424519514646143524254914234000507662965435926532882731678125961667419542166934660826931841227421698588733123511628159842177735927671598649271152519268342577200234915563134579546481977266875068196457002567913689924734653195606132538817663098679909928833141174886822788697069616287320616541795657731208375441612292216523560470212864938304474700122914060716799779762606552885595477039171803891692734839449071540763265134005517933559166483489833192736671903652976063441831791530353360273712359181293039597146191022945499398857806038346744494476314487187669128813879451201203944259387609022014323988686622575307738633038490112521775445417350342520588628026479188801499072024933934250268122965282710653757465806703558794150181997455840568376717159401582861236785008552760067144506764290165563041326639633125735532285264568363304382604726693646858983066943034137190655278601296235958625304715552746303449411312147767696592725890089680764147464687882954498885162117848253612310129385884121597752971690253920219061750292119940513187700930111774863559963500971710030484435922989840080204560238857078642942700830341225449862021392620888371934217137219772627647077039073890563217332210521898399952904767040251905901954306807053565679231092900044917065453847826591800127948835875097490603596455946200204778177523090999463774030093376696853105553640718881043427138309307954099491353979332214264700479686277518224729077804134213889332097971581632586543144117600160320032012014215814409996896811510135087595707672584006894856308799119088400195991410685216107222801937637483877284708970072558095032768438750023994737005840898432591233360522784166506934924902525272624854165051834728443270921434242011605439087326621777834470262779862612346416930512164877696573854678356840581297268154120968469746112730534902256579621175279578226860868728356625186683868963604214776608532448013578382345526530926785088910468763606460400674715155740859732972762354786145125658838355710173194977371359421300687938245811704758418166945373393048971700647706959003384902552706384974997728246331101244027399446042547504761898189534997689302831353434893674260474410717409681359756178595839329175019968775168236545410171697355100852763675036424395826747495345727115209744533119022498560385382225279574535147187810951661899109390786986641069872948848933764740801203547766695329059189918816668894798877930814429962011126884971241946802087710910782381841166076607318186197213075513693888911416250473052330572069471159157640630544656907155470625480403534758789179160435942357152449623284531529007632758193699527501998915707050980344725135925820006835433570720014805362966189114722308608770925988485574739984246780034692618142220043544227709626837314230537566299726465147534116594341864340429622168995345622802645132663920936856024731207227835992838880963460205219440405323485211860482091610874309025263235093473358850660754952730762038605224521120495461685194124494541517496925742972213867576468956228115504913826272886434816189001393611137339343876796114601279268374163512637532757275754114804407740719488982359979899159045860317742243192775961777874975717577630069690288288391083240245510961305195449810181580959312932541884018581181870098998981684614144842528879242795358069064113194127925298985535659540420636857942623511914522812088352912997865199731609922701477219950817317238690691936218556414241082494622056835949485056901080197138193374222003635192917474231962609191875665174705474212598672269762920746480091963671230260101537147301099829439204027065316429042182279977929182486862275504566330838947700660319669029564083637233477274710528062717678119531900711934180881815919478253206717851224448170790969821117533996362234136392985508076103229085908397344275571640512484913903911497438930780849568305443213149467697003040263970504024522504343162291022448988569924154724688207709430613774597916430996101970604921426321039530781279146427627157665130857749378981394287013716784261751229934819666811437055612257089298220990572282350472528051817490601651042387393311566369108257503232654590866202394986822752395261257535845856930951257687006910952277004936660087779256908758169138423056117924098515517893447210463629989348235195077794312453126762143590534675414255569289941894126236163063446436716108775315203719857446886612852517723668357673914959838611818161684753797196881769699705908804341235093289279165450078143457504733492496197152875076249869779068750533190869018868446562739418527546609755889417621521455174637803906453355772898676322928109896874651243000244962810578953606734193636206206162729639977548891794969549245602123210861611630459585281667556715005177329802706021813812193306432363099600963286499459244034447967864845863324175949052289285949295921253825015652405584723597914085261678070805452331629051281913443137213956012532984720414973600501853551330890261606086539022839812143505981556222895721163221384244220297958198258145833447516062731452286356465835705969797694945458278895102859600769819703973703850364283825565543895933422206480246030809265222317970997026626331611280816348315460812764281131391610367655698656168505782107785153421850843159520856093412693352739341269599473674243557496685947851241326873611997847807221265452028997481338264630765971569859343673568261552541444004763202562337379037532077019355996428437391241896391954648205943676820722190589133341127336457946431148190153765358642450769446653623924989465178073009339898886796599339448863357582742839371016684567471262200101016032838641357546801963242121899552147203551193672707548155698574203576975423807355818888995297545788757527599654873286095015788952545827272542161721349068831141008043052858492568077921001103889142972356323399831021279658427644528333809289628901397049516942947197409070038327337196160058439827130525842200258581918023334310528545756886165249322753728926868478973448269649181741159627334707392814765616407011019548023183322127920166437852514811728631372774422657244847973417628438092496411669740567163051920832752129823364511658775579196983784770180018881701544729003660568831227941472933232244193949354572403098035520411777141556224411212331275543810279698510519317831286071553798849034621694049433165177193431418482235308798578239622065214057475261406734046544091319891473265209612187217670896325813660858601962070340710152961025098782851911965371106090760699748924265078103974985783744715457701396113639206275174835842591413417131244835380487141162956612981431576019828610047604363133247139821446824113289473496110357850420387630763241804622092127650480477720301463870465690335777329640483868499962441150390740310241069133090356844178393229984540006547238077398742290976095165598080821594476299041087814453598934813312347766704448759451802629065039095002825457872993858153717457142410640199372144062362818592038564793006685338694404828675582803674384705465410208016246174764886899312836259057539843939110417588375764184379813429284597966902020575369505626301859036979985147938014224826306304098567031386400243691411882720059338295572223866105860360155407043870144418041269325884487216345024849722657719520344522700795183298772313343476610657246742510078202140616472001970713223926972847173752610132342178226707738700988520788752959245900165782566871496045247635475768555756359463595525666548842056019184406488853328639489586973869898753458940579497199919049753338569864960717578233396284705991115612568730595804239205991292718397221657735425877706799699752366391432112326131871101989707462518203126452284852887833261933333589938720628654032890082155691566267631593950044018341554820384813134138303840787801385449771184696374985102820611450738670270641159881131598705332388516902269440388163354418992614400018574856159370712228611360237781020068399511986515657089849376479777984138956774576030415142197183082889624384951786924521545187655913517695467119113125519732397562063223134943035289218334794485155251119952845198151781170716684760025539792491471601955002922636889077069123548005639569856387975106180063920655228011415412012854337738606971721887521193394467690457811475800020374699682804778647113581876929737642822759510277780293590835767765704695148710278856828925360660643215288076249376455913410649561058921415332658026484601380595211519671997107336288540262074235160418489006312980735421201210739251889257235182492248151074243556907785890997914754477923583814823825170896728961601451080739079956118475150775299213644928346487543994485771122726624437026884420599436142060513653004217233470453880354580030346909817378142051423594768733895393788089795974163149125405338619366633181586933838968292673490714382094649766701051528865754861914831843660425325888676810252853526504072142203702690871010694589891158145271609430108391967994343535178627875375991184631398597816155226204898857524984568156853517159347446806275740534036949675835538131032145400666670391858099154409506661114947563516267221256675397474296793778993499132541329346824025032688653925136014161414939706535234478027694769708872972854100371931171723238724834629597817770972875802224388214061363515811937433117623463483241192310072930299446502508258409397076020939841047540659511570866491792438992470457837702872226078025271527111856085790522775684555094604300542627868951778185471522077134937927390560853412803527248782182263674329798885681695250833296443747567226400162529642270225975420689091198769472997751794180873107885822401483138984187426531791329779505069794410468101795739569138343394032295009935516604960664808907101875088074599110388552581732017071117629000990945945102908436340201822490873804445379144960688057762781038331305701521027588244033366710604381505435997827541878991808646026628255699925141201603767057052061627636560710375457285501321690397277646381934018633081115375132326408203139777318690695002927956512929812356526345237303679234255100253693929576991733682068514932831460077447743961596771751965374129196753253920203982479972983996002700166684870861392061390117206201718372187565264962353165271129734045731073872725061363281078092110910974133979695676127706963680246804766409105572268904666388741437641900790866250239741688502517820559616798669940554924898421515277447632519353537899389399084350104273338220455275966446540023454440247973241238913045065132676112423524643931399345557864222884034537861759585970603141897301675312408438769414141807799854509306464910902996853743910193217510388448458040918484166915727320181076093360157931235040663254731387968552587020078259758942530418666230238725653583435261861692699470417476253292498717823581530501708663275654171775010035115981829248532195737963153820173117128757160939340817313369799326960974154832154706059240696016892100811613541979269675559350770373904338499892811259801869708284374184036686620470701773378561752074640541709414429018075644044521614426526967991056483821468624185773491153119895638158736441912444848614940842152358483089897215445737487435533406626250153923110706382462826876590964615636570603715760743473770990740438580466067696182738806970436093328987859852701841770461006772828696486445392028647349461272211942476963028491738610144430975522897460846686677346992595436284216663085808729483545498775864012342285406217631679163548890323543057433608680623077231455755892081063432045710316519305058240092832085384777712889370125095524112254967273590296653538837966842751679419632732015305849518018845762949295116127218190169703008811789336486017006119164948326019815827776855377254238682094389461268712294598396896084041188434106256077595553816844154410008002627021746918726428146473318803048827315145832136322978144500052895155180330751237115209823039156280489762858353252091414187187167897919427114640342413080251387764476753941107028214198521303325703275062230226086246568888127755224919346515942241803715102749703665447168224159540043984025192914277963526334033590728323991975423674385934165749833034914849076223546668323416780784774854508326443757681739933285800340359896790253038806693373422474039288316126664945743661720544632182607999550700741339116198805816991941178006178519211807277594713250063607289022880923960563368879080096010666721886001646310079965463222018445195034241197561210412915570103799372782736072981749132461934631595926397651806064978250658563275211418704797414495727018715064514237056116720169784076076037589834037388819840818600839680263225101481943879791493790483350411359453604532688165369819984562076483317633464988786727332582374237888580581068196244263586274553744177806933889210935628605143159897299199419456011433270239890160950819135006991108083334823478159322130183676876557551744022989553346360392691077530655754621913629905829216709582320960406444382621355697768905521846683697087062699986354570999973980483274573350972725839929696700265249396874935863962142540134476964561443287360811407224332880924278295386556679516048957389899685107487256793674835719381892396963154489759746250733803432363924524219007706016112156792669081298471957814625405238428476889059711157996077689900722829802657302674851770663584447006647982846350339818072710028932001489997639998399517894177987562322143949136517264776564827266383432619730176618568067648932241227671215851798712710019454178680161250231274213829825026046678495831825462816220156707678427058521334859987687798582853791434215576017987723029329480356749102889248892654652619596837217621544656858134543027325881363430281823724428846795410548252528317157713865390297795107602117954316953024804577874197821941821720585553698868553342936207219892529698718503864084677356136776571207555224894516957572821561645519979487620326748786132515451764575477485245876315399421528172295799958522565971515908803328892303455724553277916588809206090324325699958822613400959559135965879569772597918268614234091744686348794731329660373877427818890047105435895557270848263581218458404750994789505801747783598418835708081886694084398051490917750897932812600293445445689783681233677600015083694953949144148427252306574579779102238446771865319023651927749410317090085508762247413931693996940223454781563383922750033451505973084536482788281869639427868334225286906985708363036704165096719791750185545245745679248470201016881516278093417992690272964232612466252176920411927939820638213759757495037982331496293548200004991240623469864412337567492802429287706909388367127544755354018426678995497601004436167483878661451842240260620579405102852870287782493894676968863828169148173623682097739901655855618251735919363750982831774127368068693632174571745486957659918579476264348683628568147395710182043301770137484545880671124349214004954693890825955846942163632765391983911117799910700632752778970358035928404498222158275948490257577238190752453135459713197811623365024697059899968229300217120782995161268270611524284620548698310071536951335865697798145100986263189891419691722688549094277903549164249872002514448286865600527625084180310394524894711562465140249193752886586027634161566131595080257665749057095679902329930529064621686047218848281385621910558938056363983658652410188503521999669640183059290149010720473642548859038150319791998005182852086468163205377644146685784588435288853288363688616916737856782093822564131372400084502864789993861007282376126755296221234764096757046474419101326795480692107842532159382983662697444178270373338359035014765813564683740411316695422538667682366039265866533615554126869914690625916144865476192147573299895848875669158532870221180379346515566646323039544800676876452336657085182884573642197510399715937680964610023042593783008092593173567005993549205961989881757733928285185280177464404588642626248426159312861919137533599887470759073550774261083699808673843646976897930758516836955585082566811086276794970767625853279638961459635504607067072515173172467937057313717599198087788554653119765528195866450223284802414907907656792315467543303838889004346554551883042869343312992774003681366706270584572846234539530522945385040906377744728325481103552174471511015594341613873616793938586356732616633166843368532598555577303018202920624737995734206014654286263680877201541288351845931399758275317634375914560522259138898717729256798053701189583849344693689421652921787556109013457838437649176709199390644093978595544209612950009628140145521034072946520992898278287494270799599076443025714645189592416362201624257365550242799019044398452712704576941326916507654942284669042127395522314199965255372200480146633581109122807338434445607442359859410182531170167890622428317462203318707510961391157640715281288187004313408640138025170215627361372670105787592964101003701295092986880757704851545116388357451916360320973796789549627304942623939385553525117949309179697256462873042944467486927979512917118387396889576136688893000286803234415996997057235995338630840237529777887632322057950804054729082981275548669472971262613713665147657111072022213481344149965873180358689547978963719273867390067455830925718034575565695036191107311997502073261462251600040692099351331713238885040478848735089607053952397278509226137420007221297160337205620174951858896709170360946559780374186364234430950903243344043998531947855791255340447515217902020623085088369865437841093503128715794718832349896235258783887481070052225874375333616288038317820161992657820489901249107147670111220528402524687284689235122167814320457422581270354068437081126202668790855981976026506068872360651605859752082844814525435978996744300802796261188963361757509278471016701848694102653197053248663711792376940746113296957443574697329145813914197390656401661599289381146646099266015655826930782940483339713780670497756311023738757034900199649167786350405310461408676965238946676052778029906714502971196183879712835601751442878900798659428503978363251592915150890271988259201804177412664694905178350886064031887455361426594377946453873799370991711225056112383915141187849685989172081907889139926134496329956743442910360941002566219363764653760705829489270576101362281122870579138015385509663302135016164194485215806008426839929498249823218965546302696836450433811403817558665403723403185974798810611539873944651739173633300360599632552071605023240339398465214340130941437765073652143544983418997041948904062505175936770927229085456622438203922160015486720771250684041706446054382379317820067395908096610030647313192543658639148422282025782267843084844251704131876760781890974498219450021746968930679081119617617846498190054380558657508784029685149721424147622842433358505259539943045058059063842227853840917801026328199105953813091641562121212018243511403336737342075649227321666674976504930792734829039178246472919744281454611085479761319708511722490119618139351895344979878952778080732456012563806764905502842658293901299874252876761345651529518393801810114115974114483331042779669054838897478433288162421894226864050705690937605739728926850847791442701139445986914101134185376987425140311009366585484614299450752654293120746543773190408849639620490761621924694521684716516254869684310261244802269421297493675002341818385162690391310549833757533850158418688180125382904251557258915271022801537805268155081838914368145410521390477249452713572298846982281940943172949935266680020963356252213105728757218175351389401681248682968013201336772049081770772892799652185185150548524510098713743726872222870954821272989831002669548155756767050582936094574157094328251012774472920189048114402442321142066861403547084987140416795926767358327238391696721230404180276016041470734129650938906136641434380666937606179167017824787304058887385530229095012573358211657910254108164760977801468557735873649461446109029899429494219023528537503885048596306923599262594877369806702904858205011419469076882594768159692905734693943130490005872938405175460658586166903073323484110827520358056772378768350680391563323233025327863531875382132855077290945061758050747299236412280086962335720149984655377167616538424466395244057326197018157418398727139554521899960211157641977738532507713703174293579978537427981692134709508108508136063353405094020099969919132363588138021442708197095004980912099781016719657194129903879326316144809109786310290738618698256198194334002829250365847356501617653532257454663179495844003547341037573038781438690537929454442209004066452235236850368644580321134865250763899562607437799295747710950441824472154725725697754642866775943544548948253219219989602459921024323804477113205960788324158779961095684104822362723764131968070920681117240716492667676636712501743542379318896374750329929810276275650012614604658643523670095795273567774920806041132668978805695210549842531109946713686728851672592953129835946124788417435302419817377325120003358846771808654557929684979282236513358858674923731507062501377057986018842080975959923211707339336089709083616001042569699998784064701343918862042028883838342595555416950370010836278428183094087113728205710396247839730964912445164691603097559502424949034914949456457051406723406480724151870112158640919081903177673791333339656405755877898133591989651190639545826995794248107317244286841688609590836521022091407442041127034964899649838852625686426379543897456396187131168293219021604810991942422437565909261830439058526620990011495376536180047414047498515560433937554848125962090425553532558149568204841827873413351725736528209091137250929708336977575273626177344985529608704285892126545603779539980536772668940555653671005961404187095430640510125632374971816059974948562061630487645295337619299575257042145815138161240445447649746132974643781029027632997519905028387832315465221686530620505544838787068439671514023573827609294446817435578599578975500619163020575471435150057195516815633264530154653754066031573991615926575035580807166035436003109819989210343300290199727006085076670047369126269153112199875355112344499960928532022479570190011539822852278864725794117505616254663316320146524040243866098109610042766309800050978713056226445617612723670703685612060679867683896553124526783867180727365659023013858575223185662189077514001567892662291942217713557796061367476620442633816103848134596651680048769285429067605991807540172340088657305771905301079656074066725543978727621250598282180499771911561656543611658611693755802493200623678928267554467901340496072613831395121990145762525477003465888242940219402039039870177343688379392147301530641974582991862781064307105641225362786438088954965258560190100484948025492328522558273172169027504574731472982981390869347259110585132728085707852811915725098232745966928935973568308130393128808013885847397575275853197213439131246660495271544536983526796172813613854275239850935620168605822583021216652421925546271403964072253105829406435122372388697257162347907647922688376787689464290605458821676609630112847462101789616463583013141977182184175028988010333913367626732350931286200842230561762078494463148379758716331296473894500547628956648715033758072906321575137984944643432224238917287513933615950548527887856437352583536085792206698340613861559165875486516867323226340735364092210622308628190848060021846752922466854955811066358167714926578209395562685672566931789318748592773568915791794819703987826063816029279208105929161566065256479483757266792993646418479752459912798337895629791256040601419616841180896721616911226448304408276319401232784670669973598754559068704115723224847280870927628049213515634417018680443882431326290354800843766724833548362166394081320265024653020808414252399107913715755543731765291188894199056021786551841316984545964119109172007220889179752155671777226263358631588071800131373433221018622959766633225341775700115259671240336296616363614013869976036948747039214909204845906040050325166328589147140043217598348019010421925302380135356559370416009989909182219754555284828120035846147124316973878134446833917359297242604728203421112477084963941023801591493531905882602090323068458704446609195967959116666833714009356353197531997448661632864743710171891991848179397365004268584551373671428069750034869398792246117966416567500109486667430550927859972451511169370657241412404469285787948081686167452420262666678353611606747774110539651924396178103356387796638574144266443327121911827353884546030607201278012840117657630435501113134937838998097459627563349344990083290602983938475927496345516642182009327566387802594872370028386756967894186218857668601635448646910549474462644717786923070836451104714691434514473992969676767594958706060288822689448177528489435586760960185477749006007508233146246908927331983241457878693352160043659447453553466673339689998046624428435883342261717152599423438126168058158733537534227850800280318446211447588348677068982722055171514941085796842692609094790910071368010459246526032298479338428082617750368338194170187977559829616893815403579537666051492514924814181487119464763347254866913609296717112759367879253546174971219671062505065457792187858343510476551683543664156692705420614423792213337992436817383644559287576181427230905897564741957195043106332026255538788464659705248048741006077530740332284162774522228874207069717587942666391168881153219185236266235740511922927142443453774609289780991808850347384907357026295690217927548437508263960826392478550840073686164434921786637340649218841951997512837016621033212661114800460153605537743998260450555460191111419158723944560509375888246076052153743144567171131744168327504394901596275449115597323577538546542017980616608705514861601200513150681917723716661963452756912714607254948383393013902740512426156487581800851444298610027992839736956053577864764655041649654387880816797797608140831890370661357151998366224542749191433911049062476973279396861934218491621352262628105256667498357168830681256929187422394507795486937612754890843201636045116135334593756500860245291852225193212270919220510961803822138519480170255714846768084996439058335247822157492400306816870888829638120942674194005880123602953388095216198717912199231431287356301124526798620315902146087098917259340630158022022188022470057180195333611077818326653151516493685588131886527382930569365462964285628474577279920431306497465756615305092399109068299910931512481205073120060159339666046834042683956409371888132877317024297933408912015159181611160282063757440036502351019420447930975729455556113823090435093004618855469985387141685714396584107108040892064327329378417299806448942186864642136036931420240813039751287410889375318884425104237497273671113495186790124064971387711225795771030269600710633503144966852604138553267066559902616714697810875776041427075390653655513218609381309087448965172532907826634743333782726511867284880690102611644964638368624660022321577716039066094934680145927424211093756463515926949352952080669468333134315794204883858286732726814720647254431340871138338304876922816238357175393726757643869876650536376860929299162776592487749679122544828981248544619167733512109686511347009848258440839407689127473350365138056816939754842391695496945487868442446573560742087819556617145680742045256249131241628787225171019294965982934339759276301314353405649615953516129930495794712260133997922766123393834104341495463152825370997183611350292380871117817845280050093804259964933017757721778612712868410189344836253262434776622006375343152246324542823953997782534326221618055789872786848331405001871618146687667893276029982570624055513369260886146791021259310938428778660913801363409585839338197675426365310083857515930754550722655973707087838406078514949915299557880781933285261904321209842794904101240155939575111300574630734340830269464630420811316277747531178281804884879414310142849505460056252274133577164785646687591662432562655399831239886905037694768805808458875655845615520624004023018514682530017685709131003315766475858489487837383776830350915854874334245583536599422715806706687519632397133672740228021562182039850188762640468278030436851894627902781059684440877036194298704992937740210901471865251337508560562399970682973618885569955336329228362116064935339641828459438736465232113650336131032495248430470648664094778866308406146330977406035803615947580936434367072539077835006490373812204103621797593426503755665325790111101008976055277400394861873490687866928355953366493876878729317575344686183575491488864679200515613687716709105821298514932046235303803446428366399409797224184130283482242929579670511739039950780844152812045626961454357827137395745439521417728196684311043057089812534817836657972265738179743234368257682004062941047381764552676068984352348004988619557643801986329685406385322572915210224084494846853278714718427505101904113877615300810906025821701254571949959417782689875371849387295119896436351297396688043349105457097713802240916774829732094804299665248258041230490972009659109426226396509535440777640543105277442290295090461793725770348347229147506632656977341499201475649026355129456344451434805182457497055233200628712589573956704284929241105590280291219770257510465646072098343615252036758889066414149379710868043039939937193430743532913633851503704658577320222750588377997114110953918933132738352115918558166605591852479565311764005558407472840830329163405168077635703571220263965630640269352256006911718900425816866348218924062674750033324954373002573834513655284770074898704525871668303131574913252218345082507660442671287432088073312048985462638226829312292597353364251686815984885091145321195703050979545487550030760411515820231879587519873935297928678829957957226133764662694475218108063558166351525260397745095476947216719213655953683574477507602842288990273075453193829208827961930194266343383773929670529333899588781675134454512478295307010420756363530597973634480559470906861828662371736718964171007966313060206035448057302934569146162408092159903248208798627248266743807365945774687250669045977364719522218732470756391977970582505926154869505391764110021374931569908427466910396898266737854967204040829223515253006459225798239015381337861615399209580798589057048415959717887503807170259289799581277931069912904786984674857924814439010238104317171478055261601066607370494967351045921356175173988986351930685441958119826529708715820088094968150217417366465602766443790009051980291601164472591798795829128712836288695413922096513773834996248194904444840209095213811735576572610789835201114445409171625500324792735658751696584127306622757893386474400521976338249670749927689542313012086006988846305001511363220570059174196544219796454706632164476587673108347423198332764428501850948927380405491996772603818771863818063318148061011921791429758638238644459696110213812432315558482985597054334078425968839886572933920010072343552322008643564793104617447049363953060466493087532388126742093327199140496247085465008575344879819983398929540029716917902278761992003914998436040550461136371749194221122129163557211093500258904920971208107682760067919835324820954389793189332605345879260446418752097573532790081779828772137630551739833822761471783339413732310891275571451944379090390794272343631608879372871097131036542401305064381516916117781059590260331374589133860585533399448353207596763558471065428774623077363300953308957458430165550684646570977441311661568116292447619792509259556838765486983911822730800448891954731042155316652423067250597709998659957565263474101899657222993180811317809812078885207644038053079017781105223801090420199801082952055309704623081680071785968480607560319295874042235324278214039597953679316139358991975577629597882580674371057963246297565406901988876646616844605080724878688409074809582949749363959183695542012449171655680396124594022482455383355814521056292138083598431313292688217098202983243888991797478321615342865042411695027507823721815301004362770227731779899222264418573851386504369718485374278893494070629362253843976227920112719593595297528611454007018635440654390665625264633203739129115960140997579835082548852621756753555985789894319935528358458090818052088188831212381017331079662112921504301428430714005711086487394056153454419619643420453471721136857354329691245552131287754447034922808446711346662655598797092184689798476610575442901688064079453518133128032280143398391377039077949626747703827057114165603384603906293777653668101597391643664467626507997463919457201477005111324028156667056699112013106998526215834825575120197259807873866201081488830027924796438863588166688960381989040171867398767575101306260304828801799815427847746478823427754622184331500362559228908199851767652070658391221992947514450971115489832335992824508505975093262098321921620349614569541789988082442114800195049090133389881529858056464485156572834273361232177258502841863709023421888747955850680319063564787272949310099901959752276843844333034261244639099006383771744014278207037461803844248306089227773188683366465075652543992374537218976704251842254502403602301311791539979436488945480673259853244886052650821635290101373450907304564744529577235727016244604092706318659717673059041985980591000832989913404976838314875274491298584353801992098699824269467578098973489116179834691332427822840242516738552049059568347120505117615744233009513578034938211573071165170679778539420917508228411938971919941818906921447364351736848216106916252101535137645444998170530001885684531544868939103438664140099091874908242760025115937511414654813661250938400374192891711526561307211620458898288885980803764009250300292645420648458525975951180481385925354495682544964772632559235110771073308423626901712635684783822903456640739638142545958715600927776331155180194008079877190248136748532253865967723366181861668637331448290031021431047744274254653177340899340917787670076998804143853981061741408955274568304275887047690962697291272765158171793913275241639715617880152977045445649837419252573442946243598633767708156101953373400820140034934356701586469944065205996575382984575792851627275550650404341002508079539497218803458323558545603753794616668090351959360662602538854974240386649766198648603981099126938622931420338175742124966148311945114484562817905481321764072451394622985475407086253600425252277581517767745032248991368599349254660127498446283862522020111153802800595336121034537287623784528407994000200793191925287952364669019463002880608627165467333079446902948558788842043316608929756326831501183263478310783812357267744837512106754824030876614668676569577825301673844555219032457482594751696590717827896218201100641381775203691127011057755881979457477555739553687361644995889556945362548121586276972126990315859528283850687203071471272315982426248394178105170585136273885612429066357561595173692487156440410629896928764031534057986694107420545026393253005570113491638440979991953516380648989520290929385262021713537947621463819215628889276797299189460865162965831558808651886705389035344993281203566579339249792574548644935807796118898008888442708831932915447583287935180527502690643161750853859347925738384650073869662233556168919663370630741951851115610271798965728328978940613906674386863700918593254251886443756265979288650691881848480166440189908341226041949050098351060260439062801113238739451434306378499900525601342319352162491127404143379290750688904079868892931198765560217460879791082035236351522218472249341814408572784779288927321417599244655365585067371847410929158728490954373924547727806367523434123450682836774170244291908464932519606775248073378267999812004591068823936609863486975031663112569294017999925264174815072281643953779374178200323495172897526706750327722581262594933701212539288267030657818035010502403835308644204314356054512625383556073932211544197948586721287135710103189848617955274039783975577013880871745655884716770166060155600237964721209359812410538076973086059256953649844975923012150930210500266458721097216564839422314457785530030002553585127322485881073100844890535338062612678790134404293169948355924073183458835873475276890642582941462887844244373919272209597423707065771601932514561375460822486060310578842238202914625892148920907468103176586245995363792854204189362439863617392756269172116337319409782486730897602290165013173455792645392211865578413964732485872343117097719263101500759149597597813995020157349019517659734068400661662638062511098813685362745901893098843886836451494700921018972347331803005542185804660387194762424987538276928980818283269872899711765702881542066961143853648544015022774958360727894419001271029469105807103660002453430293536726340051367548686255347050814962010534249938504292738710586179386180126835008697419366882308680930196992113879526384261694920216690405150317786695011005321415083239291625894798430310759845883568898277384148020164218293014095312859293945637260181870969243201533187974103108458705069681230347540940009462881612001927304834833167296843033052634975898340390239679439954372724229137738391414928056543619064945355490807331218043192468184400507155057022537226120259288697088242597242864306106301548037257126530812792865659810584927055944381727925507678295759201220119897621063103979819563422646128225166467729539215492169010086417463607649866214903747554317283934912401095673611419565710616802179900323571910575058898903502969064774838827104153479680996491533661393758832801279450449065111158922716656442734785104082491709556079995305606364904518095406548300668243553029645651707699697269027468127477774575731880226015323226238454972036688369649380636575670733822928262874282558061213855139951100524345075516959779218838122013454064721500122135892401555047714671554746567090582037929598466580852643253868572213964640611493262759025064136805271305438916643094971025695145121177238748484743949133271665808441445733451709205900016560330453704242429879613608549620581847210973182402473313933238508287043481224185632598636006302687848212557178191656164052302703179160662884946633233468911454155623101133134522851646398547556005288578690461757566210945216379107082905153522382943991980837703922646585491732081315923655070796811411207651391486938118116243416948661245371682845764045583851422911463139968755722829329066201771093614167938270438271649164888910718504892952897470224648605015295741563739467320460219413980471661215834359465013390898992405487413274640294583187127295049707522023908462006825405428358484312746241778488598631525386168245821571945761231628601826096719544245550322706721853831370578023318048446430100146259827579253239939990991420696332725053115177742857846114178555465187644064720259009291419335461696784327516884559515280646004265873689274609564887902716604660268819550082040049710182100707642373808214817777508085014074359221591415936449016195063860630147550604182173445016169305438414663499209650053303364931807866712606495569002757919974898681307840964328282061860816107574441558821673841118961254406745486734938559071698862330877078438158413619630701276477992995531899701048491664906256665439238205277944205599405363551693031955451250979199400562587787465217981777321684865588501962700262239953701548262105407095051946227701388451722061184489373125910100452470457794048150675436662455320791082045862766016029916658089697715222789062668739510141650863621287360580849369628032233299831733130374919443200983488405023856230494259591579981939536099064432701735199476158207452842287549438843691092361094068407158359911554931389766089282616749338677986909988039200356269795841303899126451469192834390426252403862433316411462519589138336000958677423558737175372351605585139739240884095411837625747958127081082373614058919497947855713906677938091789610680819556190277474401286939813455024910822813717685326090645031877895346468609455225212636937340845644432358179703273711608475297743825367413884789819521287915860214197758518584503224821158907310382322160888699846251601408220200540964563931464366323998139430595090890719275062779461369233130086596918872866713146314243965799384581480639360781096157493188494358042900096521264207770142522366409871066563961462593351256008571060237317072334219477414900778813122534891052347388980709247813433399625023501388970354932609527738025740862146482538143816406882570996893494315029013970785537394085255664591022270894972601994234899612743957116411737672819079850872514023379609877909539180992309840905927083672053730006049174522269991152792438698872587899269115029135251618829423610434511934748264255896693434289789952669754081232769752002187650283640708555498498921319666046882793913856294156154209967354517305096291412067559197452498647903192606423161855394624487445901109007974483667690876219649472013728697037600199941871185560002779144860020026167462879176999910552657476986020406452997080453553839060309059788644470972189068972072009714314859648359738071025859306099477417791722770069230749408586021651803328097576299158461822964416287749534566465004752672096131079630073958682459690136246220931283902739164101656774717837520705236897059572084568055613763954607013627654386999430854581047619338611169999051485805042563154296272745569190621382677857379373263970513971778395774722753809690031141959525644978918217425809805987944106021602019388753118720465706536578257258848745801782017579377509217446556210002752073877092299268398242100679405370555735188523431986831566934541569837809455166541132952414525395721388696000424385012248029657602289853287809134962530219122618842684628723153835889850149080419733394635447340213294463269229882351402695202752829342774160234858152870503666541459556647765924014151628729400743174308654133050209441791931952062807949286632633291906602301202245571429770189574491827378424655531399391167057940021235935145680454696549962931262414297008412713936619063481747589318816248880695054112890725488855448838639867388513785291332488943660849657570515378517229381656977614372837178540030245573830351163574812078881041054701840293529122488972486939807874622838210854340631608834886259671413514119039394271624921876946643514639314219968423161235432312365572413955982393619837784178251269205612098053702321089260829904691586074256061487238369791787250480664701832207808427322303896072184337028861277456861037828921141305155987196085467396417727608773353017174740212066115892966391913325778940546981301896437621610565711131655162545471653404133302032715791481906073305938452967608299933562014781006173530374669243037720448605811752638324991484246297748234420048586815791786022300528779943756869721612488930582900979272354333796516668855027591774840098245942755756961204610510568736128775318824039711187168007905049120905217898713424005104782150898449556448239878295071271984149621826575131583924759623103944953717553167112607885439956046140987612545372082008835851893678650025335046540800960406353224128103725634938027017454596020133333025569785300608065416365091818197656417222688422679712321832500965161869532269866250102291639105566807504564261901581316711172889853185097710400174519373467608130729590545487604237652657843240371892464679303530946620412885202475551785839806710294503090022652335222917751175286021281743299629127020521859257487183867123238451736967186904983636362881239178956909975507753719297405636192829721293283334594312443773971108204889725102182693321581841765719014243646143414245661212529540958414279484780669427775931470489132714454114958739932350390878906635639623921330367536902061788152760365529128890204073317255480851377283131469877567887479901197599847842001068576999683286014645028136967712096901387362294358465657279675547576106644657960284591297559305187010268061148763526393943898088435561757292205724336996707885359986731667718754066741753702450895363693226692098286202713518184400809957303634314549491234958140267237116840876869327037685900456258613619450114273817588755155393760008983039633482080148826209773949560344871810153258418843744740253116952964938408701640909966681387464359129151183804218403774120500672184273989431571057708901791817518104195452403681926412287751672342232674990298753460146854057899449696604409329253931279914657118962018933193005815787797707989188188751724816258830490314487561861247857225145843557122274333294620827633987655249563888020013705879695964041893565462513737765861060959818307827631819184189001436245101386358521397234270722606686047932772643482759777292804987701573006121394706256853915390370376052343398003061860759055461206164355380398280593445827725484885009119369666917772028807023745338390864263524960544091933625781947055273657961353309229118677048815550567814316597936146680459832815603718251559262092050949243235560080754117757629831975130952079910186966779711522673989616416993119949304984230286867379502402171922546340927248908718619195677531789518283420480418719828855412626626136520163529981047294782950318639579652727273396904698626442535135386802517804212709638405196774557227308481565558289019063656895458360170818125325204390351757015240883323553079123212868097777468581451186665922332874482577149647591699121413858131942060050485908043805177054180889273824828977639313581637295322284954801686352210373182688362256563662699645247097584297793345473305695508898466326707561690153904768611578354120336694006423899197124766096490361745717594955282705369102183213496358468302901779245584470105846897946600832738328275739578492149652322207591421582018077688254103518644066423851578452015457903049407808318267796613901477613616422156383090081685653922614918185638341154402346366794816502266728121373273793056356386775448838636976986049714274462109510952067283353273344866149337967306835696412013079306600687754384928442399462302986650831740506327050412950360692810705976239403453208029075514638204483568234416426106563996604605728005310424733637856152253849361764358906732022458884077678325948828202780037186352351954555378381307619202095056929711109644413453014822849955028216099345671469940997788597570760438010445805007091460384263517788401374909476336315827623558508408285432580765134790684584359740266948464401906424000922468460404591748265040118450863731666669634609325292050885233354119368900276981487754474630393544617855577740180571893031858035167732970651936669181587952037410456173481816097645580140108808992321505377021845041804018814867752956231676599110474244547443883933770005317971966738022167486790069057010115571813511521982239664038720917965205556019343565837136665680303237077814708455459053933329165172579827047137096859315038637160311078625431101182197458859161593321280548069541048699511339461999596655295602446310482688346659070082142593552568032335499982284953804182975470452736694678282444876290176148006832815758065458653772816507106107966091754907684611633068160249095010510625847486601994095656040237706332558393906515548454253554817191913474966118108682864757092974024559835377846430498008357002836743068901130430316114931866253453400399049751305163321020593811832132519277770297539939178946124150474391075678797422725117420228406819546907825685428204193499469495782971035115632727295126199591658769747851122252813795006331262863027215480480689651135296577004647654221140594778199050211715877606451922268416016148707825306217928336298571124609618969836559196031847474193389796151143147814930395325971562604232114876437970770109133446608320750221043976494779193391528743749622260451288306343463766072834030714693283909087297730160750736616233805677154757825321590656455696850270313594704483054302577254549813219074932240045007800705748840803938816957098263825657893620705466566888950506263497958742760643820258920559890510004247704585874172082064601471437804577771533472443376148804493851497940731935500837656249233483305197789855346307351969706721646074941093284768671225929597851088914982180363246280512528544433994179967141443702232978080317286537908734259477814732866073515193785283107584186790775169246684989184879815266037345763106457966424644723124158199472610309728970105436674593633894745701193344571882804310302791705468283790603637615499897737252032508641498378977201447255807943754293404280280988736922155834078471697961630467526432235178272112415015624807264543311379850419043964936625827957408451165703322125953965669750053079260861913043223017330046834276382875364104357677006748025950656040684469719488190335386514297609343065696030212784110443895162228064459855498015526979187184352441756595212938192834666961647347391246871484863649027417411536106309048031032037779956188434417030936235130184384250543096637831047671393899374521023021451420721669496997434619551460139564680367865631924374728716130728741703218615711844147616131174738789382598073723707644828876423339521620276492436033902349715567690622677175116595395970652706720202540127567452600294758001773681807763032969446590101295929413036352818125783107697452193509434411736830719371651544897572093486077742972923889275912955797278698621886056559640393736029174070598243200371852948233062307063594377498189994685849457126942114929557197185030739024990005607529083614706287627942308944180100073074823158769832718232143109899651285857875466471981947700291514231203381213896751058378604477251262312472858829964901421337055824527151826205787699034210172547369760171442797758752314798688437043493120936963178267233242642735794040499094674191066209848920656430254221132992825495851398131352909777324516254612186789228195178337034208381082575722722410015158726071512263311118780174265830874268343137964377400295843517214712843663807593417642693868854791433433723163750180841071601054353835118906176038107534272271572211986870482114268400228027491610290182982153806093487671373835717779264795253619402845016988315743064594794724339553039377115873312280742649324795448967692175990117898429828403773097331132678001030112999838220723394199601588888557076051167468704527065147709467424889760403294679175525641549106135378751856347225816180684434807767969505652750216257195219788966931474400438324372379183634141336053205505986908734239079249282492153160292501072558996000843486008563329060741175709490018088719245259584656992001615602411116137687362716037097517117964782177510024131266651120983775802665208585964686287645849910014164379456327270115258222005334659658448827958021957320190804886293757885899678085868070152206703299658072237352387209031057133576418047001996824747271142410431316173271219818652685701243073314238369112670605963475279071309230291912363341161818267147986389560033925389627626072024518687466153447200337704800682549086882031934450751359713781769490979985647718400757901187445981569090398954875048923464655794920251109389944761881780224802432961149245063551939279672294234208100334425545307231135408685673279950548891931614172855097317512778353382330871474974455715462144970557706441338881488394724385031579309041238675128331312491029907474880153040057196428093310634232238762416225412520156259008654081128274430424058734537698157610450005821927839503969849880760731407014103021616890773371106879382522086062202520489403694936238294762497002969491926626922606981226887861014899433457661245111541446351091953853618976223923988877957193154091983547311164243025289745276478466902419315112161165730181871429165884740901617453706200291358381895852473740248620456019026465759879991613564560438197967793271107460401865605788621962661462471217119588956083759396422447127791794181538312741468310414144088587617169599422152820583535658826115480264975137643608464701845149864288702671190815247414628611307121247563040039510215645767443760207474669077889269662968308104493908624479289753947204342318968907715794478729696383202293635559587389635681992671734830594248113185204770971100572783780870576482015697586504439780442895749233960838569860654184474635921400512875303636829229095890306860161537994154675556730899281744878717727656646290321670146631860178811210651010424595917171448981395079455167713907906145180929313840440200274383900578870080257730981020266310946345019444260557723618439375514018460998023124506965380432994615812696832756652292471027873647377946438194187876886543356812501213172008423261727030513789660217515888638975473969417250202453871442201741179039183239349673486930399037265197927126719861022792256462613981214382012882440216477196299777480812709534288745373214792967940569785378891246218772399923119187385532381694760793444591930438621101655653881816537404292089014837003154845412990500705310176712024679870516178712562639281941428958055172235337496000144464992370482991881412979606555182380263733264638956050303830048973123758093165969820148705401280978790562115051734602434336060411312153431418777343308057017984163687023443453919258567738195267258383817328572156731574029687680684346166553210480729956034287805648426265291365919026064041581407501011947706345874614595762438353638857336295039201023779603639395345153609459841728799111276270540603935826098913193866519953163171404767806184972141339644542673072507914819830976013144086193934498216573846575400275504098437108670274629575715620403352264307593404083170526229814114558452370109968661632063305193055315862077127999901082286701091546683282226615854461495427973311118751054290862006549667551660328307726280181431653306251839219552893836582202277338905527379147974189438456940477232404716816607177647366823796312893382444161732698524134602251852876694640691797241158273161123190160371174706790622979993058785074896641988338980119376739610880567760723083110868921194011281869795702218358927042166685821083403205122661247018722828787937972224775368752742635118977630339177407608397418614461954844081069344986773788773370682821345167839709170323142192633319556678717387972393454525668542363340047121635040919273426665994666987767595845890855627196334732288385662087420806379696581005506184283348899697551099589442441054595526592191136220744121275175638755874828352969609050439366380830246308486148125972975019934931045168648640914711923555923440514663606939844951188699462951574124606783491304504620730358961738188316257665357420498452599266713670341988894615265600364443562208866549572729131513862962468069504748278513900437610148112954560576174440710961238204465158986005431472044201510738115234969913565845260289649875237382746150644797558525924548950891942723709248820688176579607769683994660811219022071803486239458783620852966722661353425910159612794157032844685737163980751519347914871679637725072513240109035174471903543789568559459079996494569647741218410067972048917903758308696076072532515906446986057890152324389214906654017088573597999397943770930912907067812279167777323030927580320423006838087054680001026174254688579380013613096219581662386600174476471395606778113245513147422388807192281992920817637741189294532610717295280581105349909961670739121856786774246580403064853008406197105246485468852782404632823361669489887271729763139818448275564094364372227007349914871480097945145857672688013674702260036375343916057635708413174591328090978926364424995198146053069396254389014258246850331414313500777492180883320204508653842600575300106252413405161956073220047393350612523256056300748490173946536386047507004654064691830701278493333064220554364204551026302597209779772587858444675722910598352914159653408961597900213811014201932679819679701995508577214045957551171124536111082187731051502102667138548568368648381550428481232539860620730080796353334627182822020698263109873432398642727097375129864615183511026516088792042743346519499571814691978216660119257249677415943905485324196792136768991682202818627009155051623966036879584821336603924560814830942917262652150790757124381807550487461605906931608404248651547196594918134803745136642286092897861792138558756681160031913169241972398420469723637349414742797204617133434591226888924869252640287526325614024871135145663116264196854458199557951849999378362916302502245928571475273563160554826934463666182666999192246524279721484511032897597541831534654402091788655675877148237968100899443848157772876699612139592858624449199671483140267837816404149780122127326151215602759933304368200662555418006966977344462534232355401149450480995957665951546843144775977976624758599764241566853295068323622911786941263460090134846611875923784593324981657016433422691907960940216454965217143218025447369462246512794996439586540876886544573027885131752381113741815932321534943274425804368462895647578327759728216002838708129379127180079929559764846805375440294495488819928379099707579506303494154609916446072021646038844508259539597880108005028069266397224837650590898766968366777282340047329036895517628068055128919451936349942245344970727545530593644245734547596744311398800604387843445049934117711219427141231693324748769309958358822523018815617299908064514838119595825708140839772046112137823003533584203828564547779908275896710763387036234802264752802868510676065070315819748945999642448139231615839284434937052215783462188016240093141260586296685274392069955775875161998218958110923429301846204987846738293404955474880312120883398012325437027678622185509729560244691727474134947951395091449246896162190440156128730274963393702634285927250534497786605238953748786257190275176299259214390211622299925870581316795846044145306398681567070538714289772005640127689594065167483764837490993839004894697534344076095019317948609228732709783123184795300449210396694607884821492882357348813642604897569965060306805918477031759046669753776875084401002276452813447285822113780040185020184234344028428074037628389304063294329514000148405828001869319591126761519460850002721606176825112280488574662289744495484927169454301438163908823150090152261019931497463263839146014559082214585073362512521807292500332595018930511659702281123672351620996882073499689621543132988505163620656162388196717203078308767775772858999479948246588668102577933804385447159835579605910099333381394066440210428849150665006496133800597710410721689777134202323247811772631262397256983314044043195769461792181329173264783051478825843769307576239478265066807203737312077264971912623088498828755719255849128424050525734276484167418602517953147108920871847306580456006385657631313883793481752246928936830221943424730107959593106381777860813649163107763206872033985315034510960224055764506484729734637562946460033110091877079793897384496829706390566931960964032357952264020586364187620630169755136498553814058044137268231721606411523894957269838109243000174050344086062651721070748455872562845834554583289288911151232613180492974349569685249874751139330016226378091546275683619201728186609000361776545135773335295990941275197947686411409088320144576377681371666135742495842786975541702974060724142886230674586154056868342081084698049390274366211592481939811372858084105568266664973012898409625482373150991279398286634643775036760466356071216525459475912103111252875899359779106291294963693666350509772007305152492012258868880341535964324914344796759268213381032097328088545891569247017112954882052423596351454138713246855444793209712178895935869816775776185702063246019220586046662205279254980132632072399654214687826955239497403785793371021610614840229816599318838199074800396502857730996342966097022911566600899720103244535227213616911547157990494823090017727157679550503067167829898498715570087054808068284332229704927738523335008513174054370837786695071019551079024507165743959337450705274247778177354019128291632264106576694703069779606557390859847142992986234131574002534724799602812641184796933687551448982451212468645001046015526158862302081357579889607539849836514986673964109899761922995505722119757575310756560789246515257918968409639653984927944126066366907674776489437295540058116485516169050427894878854199516960543665389613709274744471329250302405450700771760409481037966110425835448450569295641643378731368002625930356507940149767496052955402608397316339221232942749225716152010679813276273176325536768026318045266154731616446396046275426696196553461518744237331174813720581192809084550907818211067596440876328797283292707083288986685233662914880096154456842004279488566851276015227106693062345277241433285085834629300759614410831590526562998353253173512292714993249061355284497450261054900347930288588125798908000804767415762096276586543394852326351784048086985316248877626710637707903095335786198229581031276996207479554957963774966404643761991321942973338363637959073064390821159665079756523739578935326164488351081833593238591513953522249937897890574876799436589006732379878285668625774065882294140508056238640980684950229993235398362955134531177061242080425460545966483232793048852693758858664885860025410992006864031173793442617527322871189295928309008333019004792220191618825284506403199657282638295402643361464929432956373685445681132187916676607296662895177841413055541706291633723390519989068938626982358847728596007375214379331249947481942438071420185073984694607384424187715108658170324878549020507484725324655038649191416300680345810111816320322727513697544780776699644850715550806939963894052727376345798579394888710688962412587561571257184167701018233390264830384745496002480477474839301900456435060871404455656946367321114071405648909834642181992949242682507997440821248492165980775244743656478429292853293189227560077728968818696691413799277495057419862263728180078598500280656826326317594029099657561650054397950508999092283656547670029629719240855926318133330917845667536513028116947725326320870170750233619056327062708883306147992436366911617658026246086558737841056870683214633783744033276361796690841423168765934726787678487881403811766270394839343943735861840707463134151048078231720066868791972221505004776453338292275474095591875869166058064450752671004037603455690322450568113843904827834657766053428861929261188048728352362919954754393011734651660173649672618111819762301583017550073091145584613032469981370525762718718894936121498522459645373273063676145743703752921389649513667463426653434696798891330525705137573233154361692041663882842432089385817627951319655618040598072400430395412015102407202805812055368529053614000608303782694593402575133310300226428137244269855676666647699558985915295016484835626215377847896228587906549203571893372713121409678410693693651995025315541363609698710862560068219127918106924754151925707006956678089153131496853548947569765809307971104528131470788612249889369980866650166924188202167409934002279377090061111686576155527939045374745848381456401487003830568372786257411063444610564170941465165595838634404828945685368399416898907918756035274409204590118037325094201421880036188562626986222586209077491878446504442169231224196417051605585920601244818901000535462005410473381614977374257197981554627717815288918976621394897111484452489226857614769468358152950253400819665205610684078822577327855472102978782290731337258397241441172540345803862042901206608344223559675405614024657480259606400387967603519300700003944781572248377578197598147360472945843433658473815152182426358372468557005952322375185559414846454378530487999432507121581877138102544926195117804685923420356110349364856596050475586104690296261746757481634492783797492281251157211015221592440632436163601302237431405103330689738130575445693661897807210038455380892159548983005556594660388180600442076597068102178005002983009955267816898796885839596017609095217306956411412653214101335444947817264522817531411364944377281014013120029637356612169884300697773441186278622034913015541733256559478375196201976998911520084374479229732662767357472241131671786223601975499676818706616825635116262387189690008258350569274100375910796854200875670191558836048909063768300575623954446853818908230318701042602899916426990428519241630001632876490861825178350360815453056551618691464803601048338977923852334010303062487520953372041916914819071867554861348165903196012890331893870530249372574074677381952932624148294662796956460181128676510094019343643365346121727762526940706692733287074445386787748243745197508955297528294105097944924634696809041428968035039443996372668271293687133035371443414163300605538748954043239527697581310141629910918112167766666120069396753875490038565716124065340408799062776352233985849888590646436621286748482049292220222880637965458337473745853396694606396243178828112516103280026921077506605146376877195929100436465920036573889080384535411648291507352804637734423092370640514762574039077780685158471689542098497064786028097149536190222987750952526184479433456137805712048020155991554282478314875354806707212998838463957421879176727751519692253397418159317426322387139715431265760380858431787276328194816664965228274424975767847923391641741897140711613550121643035012925028580670904755332098601527167545874935163229342356861888734418834709439270132955415026788202787069259493542428165333896124144390808895933390884692082746314823513097963059608079326673066932362723861292489476944319300021806945563760394739339787123946197635540770444654571469680685398871146509524135178589445002410672752991875107741458257868754962628642104960695410975001484894289766846988387252020867135036927993615398868241691351745298136300095332877639535193103886987155959985264780833094867339133187568429493186361622215357031613296740620108726352194095717930356435056694774585282741632858555002976858889558792579224772671286848208508422381773419953164985849152266843139541841785737877122295490354781300726745473069749615957084486363971123689994624625196463784338431338243296919827446978802210730291018445341893046408457947908536783981640938101122455250199308805610473986313357917085060709604580926223151203487322146749100651275083741923397352499118604614381386066742263900814089036189272126655064378755316613322750288712439879750315966581469035875613231432129301384596070961108362333947045043114362950212496914080159421277023914394261717501573268782154001546413832581014076772626319266340542088253580886335710301777543695856989450055135154505670443936681473985856349639722052292424284519640136154833418532076962254843477654091182950319530922609975145786438896891632566920437184098272814233546920706554552380245017749699014766203721693682815626208541447519061938232414206221680342110933013789642795289074245789154269437744447125306494756806540752786367682059772115937152152244597604904856373298998866114876076486540131744404206927869682116018058727245275536721955447429221415031908777563992521098090256209247570829405958147064476564114692896556668962513795495113744295540911875346319119566702214390021521463558756768075804176029845488165012825447929135571245743382966087005788209150165796563346096145132823455300442066893368039036180796374222951265346107938903462157592377473973491826515629742651376751712698624469808193611412281819722976417582769496851747883124980258612186123811860874092138056639153999488583327743958520282480959008610579597641128870289648508618948165373164604112471731370750975031263183991432042393083458380210242251869284307013740267324299705926120700054992578228171300414002517604918185648770003382385678509579908311781400510608874822799957622442997370199689021948199284226299231914768928504744251079324411666658154734932938689332645884627047422934104027221430098955664462578426263117160042470556840696894751231648824716664069863125066945603753501594005119003053427418600168176072065993907912224849019775855064145060520086368995351750825532370387631553502328298014947596143887249309689167408222722129146857735763560973417610399102857686770692824503046984312586711668609408816914487234608616830182752260650198153480708657370602745185384254766408257005093066274660873437146188637273686366028737020067796471364253420705275939628779778337024563625858958959053850741516906038394142708903369780940409433016830206195145115508877809226061775163070316377602314541163900948948103346459734773507638997969156139430248059641219041693014144800433947041639936920708354242295837869674053153324198163233181524138275112956168151115612174172907819175284392271581653568060454599824211555572991450842375436096458773943220725971471161750783000455037934351349134681505519924873019529808495350966135578975900820623634731421538765360813650420580915243176299585024359620018374606594157773012124460876797987124219818685680363352415861277559135683352745558808188492839056503324906305089385204680529056170647664596020231562256432430688469070720086200939840372831757323896284886778496065471264129769412411580637331874084993763844993135654455344078446420844401200612494207660098665563965538739904642317081468027866029764431575441811862285432254300796309194076185439173938083235330689329701876951428009862695521220500018016604715250281257979465690092291993346763718437085350152985151194900380780116530985898364698080335237348244041756109245453695351295380407940762249656750295643654581207608853125277799900537562600285764749146604806237499191558205902533770726476583167907500099464337009037613775761120499002231762921992029147169733014196326698771216388306275852012047267785936165925785664743734443005142074916553125998703142595396342188778298075784865000591937866823296664616823279439921988081370713134659136494507917149732803907400136285827203983872311640725728520031390391724499294732212022020313935972787063298757812567113032530587462089214350780049962966352172122431151376169867439976686573053557312163056847095686844258687553132822379880904382835330263027723004650713220410669512727746465118904459827556186850816371093687539940541138736524421792375332383342153526369277471738812665245205078275730201118771958923949990505465350546194095703358264492958746998890348059406572819873057683945612417389153326981785933019832475661082504013305852479954059816566528914551441039916138071278177149595516214652774265261083530050478121852511583600403281492049610061006369704387284926187153461222718602918426457183517074408501103665060011524481010885830501860026261003166394162524622325932770651363686376846499914077013761211667032692293360482268555227537575856231696296798861557587375703012653662897271095069066628622369902654404456045539114504086699619168729513602729605651602517203039161987019293563554176857213991169977317812718366324031392903899569600538150172469792379891054249875932371116401439561076131961248190848706599947163614137270212472270866832417574198302330621376888714476989288127023883848417676535835703747162104992790317732500360939839885926130213308464297326462878777264762605508714942366053333095412435166076390830878791316195140525601275009797183143836051988361135942830243947306814005717733466510080694200545800880001694663183006107974434764829788914351366301155462101251850207092824647332230858856651127988043699324354568726920020909043272199012353431746287281141582684929758499719422103181232532023876867057985244010086251028683133522524596485500960950770839054165445576133016106250353756947631422799183337023955399515020221749807618983630519115043021658081438007732532619273033424500508237945259332794113187897309949521663799624819115322534153919818295803655653978172166584686613697675539544801625539202609173970519665446031327367105219107860570004141994576889162621629433544268918911450173616143920301398666000697251844123914107134364128913830276660850419005354255078131026643676457466133477509779713157194206877737859305450500917364980413378894180647655570350202485840194431097784974553840053503944710069028416251061474538077188278286097329300043416398163773814835350145061100395884011473825937183188164516517533336227741149197652366902733499928470472503968618175416213391807789737314600995632253410341278361674516554648781901730889238188307770734694491180540133160563831788927804706910516573390857910924222976636073847898714481221509311945329427293230614041320643541981324370667862426463134376641901434075211743846962679837292659629657585425132199287938511401642559213765633488304125974552766046709692475590444859236984791236390164527184907755425301363227960820395438580174940297232131634649176454054187594536482895928743189723592946982522856029028928300838841814808256616755329423126744523007901323630418818053376776796018910271109487004239478053664471984000189351983048015857377108100654528206883957557579717536136808029802314467169510552567772424023537673827960867019021963394629103226972333319620453515419325872329365376012226863524983995712578611211893457708028672299800524727816079842650128968503181651715894837032248441280805927239916286099683934803551353924475153343719023783536241149997038063630359487018487341665783425359789348732594347257106336452404789093574259574274859933830723937080603161957909132610988686019434600173205848387800845293869499643291158612738076003495930859404722390648596609026279014444542715208714131706597915102428818252264268256823484283691213592689851246433476331880430070789822765125051966293640697164220334752126325797479310448101643453159995101092659957012917049221219187972259393841237995568931539897696991585530961494475627938547521178791331312936375732647410371529832653173610587720929234894887112077517933341023528643717355987104513640429484444737417964451232050734266908786483544343102848089458465182992499185765051630169224107641495513999478275955691229131134130988405157491634291228021815517481005111524157127679911597079846692154623673064343864122606468427870883134285814796820309701387604359705739919007412711083218610538619177199875008843318678054296434393911064282901372712596619712698760802052381286005709430813626473342572479735712145246040878393904345688677776242064752718956304862627448766467550187812928601365989955805525507824875460614441480993524985554456549932147369516844927749352360330635450700608160526771174909509278267413380673395063076506928856193791862367355910622577224696035445714276510967393381199733940045106669774500875929275961137889622472401118034683154637240222567620999389214014913408133156286371848749772041618562360930281200664567919701229787055619291740791463900551638526990312761016697153877434759137025836777576693537447466880499010249152926121953277071809782530129075554166368921317283018991306987323654734870214887880541740328882213174318848414389802206517611868495272909520605360009769579154569656131235456906871436284380373566585347612110802019059967064605541541115794739039020290627159472168671918318963316811605718740991994689973116673171693859528889631451611334249830933789628084899125198063322476714217870584653351508915551779147212686663138507700661276175045383081705326926562764593173176429274155195771713693669114690537551793157560684686311900634506041472248659952460999189118197236841795447175124717160156364038342819302914916501144771763389948765901998579776194391316849058126496358498184065761306332883413071498550190190277355958094688590914981673008804472404812910426511518334072760602129165325463870064732443436988890138739743807249416233408802031035250815814813464488146836273787506718156255320212189505991287964717092807621469168800966128298244925500610247579850038603772243702224968614401052018685965510568204358792984440853950361788664831420896879551425108634866607826250168082337125424481321503288226055589600871640051910717444422049009913071851587675160841630460738373585231751760267614029775878741607061411044693574501837425475402030841196248979392001636218895242129105055519277728789231099859454656925884504010626415887280870673919106868472324564600503613178040591442319920022281561573589944464426550360183808795100359063351483643245493188790388583681329743328661029508813372333325882872414372044241605128016048606440870826389937365597866623803123346651752272176158694549117866715995968582389942203747446998548700362680395383563217847070909050093710963649027614660807867851387946859298056134821749511473837487587417965416976363069429062375382044217462340053817601765670671098914127365191365922701897018873404768687931164139522082062207699442512025234154936658435327329941263959698498501420028123419330623609669548795456492821535093782555930035573682330934426518627004987324542358508088743568225994753363924923263719382022685569345081413595020094681660969213827105980607134657898138967522918266988681718647753599244665183391156203446755663334632276870072571890761388766826412614112896966883170580920750898957149266808126556116142708003820799879517880782327333014024272325160230084233858529344859565640734952577880202251103079853201936530534356280837383046476481627667474959088822325831528055313412274051097155502556529297567561050986020540903936877219147209633306251487777101476535755245182716565625662713602380034879897335814288170768815333967917296919699105824515557348889909774443070963431663786753472896342180279509308602782517430376871568123173995834923623872415010785045023530607628603914554002794808483064242376827795844430839775976832934548060784000428555798072251598922402507516088818571466504070397438366700612923889928040628313436552654646722928878762742740505494942961382902968434529258824088474271225240244518342756061218722881056914076663178348768732224716971266831295570651367109339976671749801756079263063305289453086742610187939663782702541855523576259855289002055853384518172562668291506883510159574138374550701852513132895234250714149997024132437125203733561691144097266416111956858800229325566925313516307244786139634610110156401815503624339496606382846413331232602335863665764909800590152947561636875323029425256917316570530642160148831738461973279556751025177782019782874103324094636871914027063927757340538109601923820295864379239570802283154811441466544987836962014176911317785875372772547088133841227274462952320320155634125166630553677658518526943982173514363011747248596554036703888687180951322987132384957935724501957913272725567141686458459587186400732023434713274440152777125761520893992292013682279030182888212090605825864616675865219954925929769724194054669164485543190066656443488230611062797030845106142743815588261960217518257416010782128100503243498418464309961912219880183221429887248710386599362497832539896855415979970239105988538755406832282960538573375480375522251345013251450298154620766974802908392517478224139609580430141429133888539449925931919995987839747762929233490778864858423147023701710424022641422597192155767352569641831848112987757773174101166249713799711641752169436679251950088559511199556825029113344158651637425913679838150285463491694163099763351873556963602951843377704164910864587812100939665784825092439404001196806311809097553462003904890818458494364074519632423022211916286548920709864448048433899999321910924852121835463356899655353748387039928684343020536669823355625392199498942570086136570401497558681506110130626964500873867213587598813436391796431307463491821908219813815276721416039190868219665246164500031717271823862090583848792264629771201435396751066872206754327728386231376449861219659590450365222308717969926249033102087303627365394903868567437028738685588121809550447342438720241369396512906211667967601176588725468963672583915403842446291798007196391693874840361207211143440940967713249754535431664411610661099496943387294999023299918509382370756715767514253823828675481063334848061157330229638141293585869665470074588282506194792221724283631547902998758315276604037720185134830124175468335126704568068617377469516586903160952025058484593762701604211533490830843277867945568452081152422923668145986293976200710106719594442401210042674143960503339213959456265943493513996524632329971620194537632277069712171743489820800331583413684992698085192847414677529243936756123946259038357086484301143956598522977902974139192537758994012296934888386643755023092560103737057093522068428899759572977890230291443935819300608427120655972200453961445240441242652905975684319180373272142195803029887901667106590527521786240566103059613213930268988220062564066476394735176372723462229087453081725014868204091639732716858875088280450622072018235251794150709183084646560457535697409717818718412719785688474357154929263728755147948154159955066951358603202561588221872574872637770760023461198861742780142884218079072239616448454819109043411509226376831243617617458297761644542759986698513757487838567459989658214193990267585545432115978070394541364792429654960999769016472078553609876474176716663394119894985930398713200649973468622026254065385615357810145959328121931562868951775892205003977431756053412043525092001918374850965292886323224734568907840364621375438941606858922848457112617569256281578713966912131567650741684254542962806090334301938810573326645442583627620999670656904057010614110046593466954389313056620422726586344839862015865251743823935427263873736154608711646715100662604962535907779199487703426380614091036427549961665848762988056858125359498345605723989655193771778881510048670595031973170162661431329239484785657929219493580617807231843198993330706871311705740860159294441697424024460106648711079349894947700106571650143811255420563693057057157864456467297500894639322639095449261177800591584298605521189735398418299306713810177666213863490201202659477138237311870350609864702841558987914795459189391197409054560298689700511077989612094136947631006495458497459344901674046093607882625789472439412242500144585898534778909160995919480941251811793016340495200019948184725027019268316840504644413208453891894122336508020384995891852600939676230792129971759282213774047796883516589327826468514871300628213750385459699675114384761827643272130623665772950560574130076199522212053096353974747547662317967933374934268479881475501061359529135235901673579787018828567945146718722136668564504360912623591251459389539240894004099591073078886575738925798479772612164784581011935572426428218785234451519341756606706587777890748455182570600119223150602027876919134407170198833316643046431501012749912614131111591583648469242810254065177278467151929859305882815571940712420589278118748988455476818507504113293163474943363278121982334868242616409974397244265123422992661412127250987808070550716787372565682117837311994859772500879926796381617115853342662150505785976914414804719171982241773197888428909225939242619930649358835412490447283941350475975680541814847277778245035277313060008720333852811995903759712200995984277630897243967115584411227065195529418807984623030347692453554728107059022846522482684628798628513859932229302320004206275730751035667714714090118549792281338512019998081929590714144351715263333743244012693233750687770791004070308187343888623226011780926470723693703676370773235310957128341762316049734052092395593836470056755094881966593075104678459659692905211146149731215716072047720375497805261501998541948742991235759440562022370043885611970450828701217879301347580708972464246498709774235894117494807133784686186519700450607452880269702716625298530741942018436178077885612407063573403882869271383210203351677006718187027941033930158855556085199966374142630297423164691410752532259386882839813981942000902578085576753788308315675338112636675822204142539643472133458930065991091081365215399072843607659040369273363990841536870703794183385463622539206210441522520802053733756556747712789710462977091054107631751183023103648753346384883150948502149943103104700471599468881672911960172258574685590063420768797351538333121546195860890739347355701192227546742601158478509304301350594075722897438897039205735173833456936891344770308962067465003702465600332314599508400867702455490974117736301243179688541667155971457214233890171308363071412785100034092256654963136007182547070526324022599478801586577640170895115547511111822594863418186697122670363721197977749882385758660732087105439654516720358510967707870795127183942101528590065668183344536447286284051634673488443070227914895489258022120941495460190654286020534780516377002972473069242152646203404515173616809304079084905934387371982098180514828842063596016438036656188683832507662423325290392309077908629735658454597284110561332830492196692659926822793843384342555619654255670363283666653113595864389053544189607501184658217639114562196425959991628214202372433116884141403158340405237444397672403350611635385660667442460106299261457133114756274145705222656189566786418262804536105224938227907383203106048690870291579833786488199427969019328333574959309385364061934142837816628483054652147528428977585666839849809082842838753090312268839983091923304196339690761565968329955479522466654841409761011225005199401578915591391726025115272891468791502502232017678640318669372510443442137757118987229796176407404555480594219007317651756985141983411083711856963525657515898119566792502421528293457117475545918389430042992682425429519784269709665238135033856712896060597356521804837448120021848421076722927373254765050092559784117905183006534987376956803500089271625119317925891780392491995689670320209330220059426791314937324955229870871131946048863771852991218734152068322660189617092959680384667487977762807638645289714832797023675659307011769999296544532722124450450609587047529459381888417535169515822449781087683971052002977315316447954100302255439496901522667195602588569952876264850438168956797144111035421934062967189872254889490153877676417606426831461491503174521821086599334565420223691490947119828292392858565436335038132822811485483113800208938824277092353836826866716184091241717643366924681765065513998662176972946908181759989378411624046807174892204996447032496126377587976556335486390889457314826643307828039906137418742905429314421935906335607414176382766835587410185929301451159733814847619813880651016938903326719208266212724873714671751453776995221173307705981971087365506598743967920370229272666680172379882891082238990957073992163494213300575924971038800298214040835449599411191158657471929292469117370040936646680647203415336986187008502036726274314083526397707159530891019050160379789648326889036162671758171959454940366915129062703608330480552046259987184334913904379358545567797478715495649114007780797891909970168485616957216911988744942095250104838785095655040804669218942557521937296553227536215527281416692558535587408248996207663400275260699569407173414091540232577883439858394909013296126617195619868131916475388237121425860030705558719069894259877865553540883956398132912539064098863677056875305340991586284973863063892609486502842719129227374564519978237127259773026372343060503336771842251881013322228951553945170281255287703092693715478625869800372391912924392723871701406112206315557799589324711068703345738054730074013608369338529857126393136386342405120077685667829166924983867266587270895336619435615575167149242361465324587339492342545753446822995201315423213757285981371718496181654373921683073546620894978830993753846719337095082168765364108439978674079769403382159988442227067290863581525048060452865661507534111305002346485905081661498432764763404555747547224297034729009979494178309469176556262697800875487757207739957136412910625689909712819947855173674506798595000870061163054570001588149520949385436518080885277585733471767605365876692612195775115396625146235244790235346259462782155011526845481802582300624652372054486501302360051364164361296629193838704685121360008802430732111817209029070027557639346324150338033880492615973552001616182575468266601862461188527184239063605333984092901171165665919617279165682206741785827421156410494845243480205556989192603983160694593702976898950287503069037348190624861105391717689537540780147775322060961386750858505620642258056325642657181912057826248941042854855276902622646179271530682496674668245679426936851210655218760399556050519337374417400364972836298438876772241905326054379621999052579981292178569293736785728622596658325190827104373022672226906470541404179351829311981212417059412731983879813247044406520946272823644638673698243908540087578883314338234534145773403211806670202990721184594258408854402197208280322687134734612727759675107947923513434342094638444090897923291271964432306891764533843379524325450076569691996491191051846978638034005311420028019849035765309340047880060987764622641335060233586935217236285084235220660139048278662330678243027267331105580772468551920625270229682729645090150742726816908755033007958258606982758664429079772597681770908807919215894724553120077828797452905391964432616709746780077265968293813004358745909925883575299870926677230372783731822885317283278067396305981522391849883213189537387971108538102257282728157843402090861184950044588385352587423208597708156616310473625645491510543633186275222331638867581201196053990153786379804239849683508267659314258666048997190802986660195339766153648809936024083810468271444696879232072749141903825111414759848808084620043473168104082388741599038821837272793619090095279937346772396282037217229466832185733412256952548333833366700108891303909267949074976895842693451962897076192090485511385286943800423554537035038728691138652744495327655746340068026026854087758518222691979497854833297630424898825950161300319198862910062521026139755517192379217001584065507193534311331757107143022790045369656248303005361423213697565431500089850687868287782549277740030098669014417694067583105022081122743959022690411970293400772830712944684040267996760779512060658767918848260393080794942214806252405940199935237649172682849607016361966829302754368053709705303366564282213692585345154355950674500313013146922969363377544529599774618466111606209810166869790853692093742117578280327901214089069718318730164019945698331117664336601362441028414823564086904413215066054552831816376036611963411903764526126234828095144324970372470604857253007977836462902101605800319481473541482104334859086412747086821119768629928447276252849156707862231711658412211439047762116966225919653859006088053474761749059422651461484701346458459812672161921533536378469533573772112623283477536526911790096664065149825678550979535509538786564898927542737575230193902535089121505637398156701229622528605109259652926686544047377080939388584848766442037412356944019620070368668187513054523965822319807122827657816502003153459133756029784643539561681397143108422435430494986310265730684552146951970954371608118959328747492347441196237078078142874522429484708774027185501437599406682526979118764033654265852470333370781564468662659442530126471093889830806629327298708103826622336164734223738830733527178199395229748450181359924317257358100208462983611633455347912499151891457426922134804860005242484961120414042728449455002553876793880103907247760617128830809302114837850209344983010637490073033264213011669248889495990214736571916390368434750427278102098594277850583137548258066880111407146951828793037972648501868899451564666174900221039445788425808872121266009297941908940653368894438130804292322805586787701746323455198073276519105693135567314676457507068068438372120506257335051449526463088133726178193181667619532191898509929710152346792956853849110382830601341276137404991163918332379639128249825325947378727212639021772952577573340480770197894404781284607198481824700223696164454403133671185809007518349826327483151972634855921975532763982778725264601371218636807903864646369679762227902899518853394883145987878043688279245169011215329277628589234083920064588173993718513498760812913019144387074296987838974968762229139523975237882969269621266151272163613352069060639211203905304004510241845467560267507580757080207302648863431826682854935703610605944796369233103954575861752638763348891729144265975095500066665250840356960074898298353763199405998975891959585577528908918864805021515880498697635221809986438909945146825588886903057589873605260754975613853428741881488510813087248538501288776468380217615337371337364359356882063401184136036173920604963681192315183354482166084562131805016907186439988962671319652016023147332711943907831727557907934051818093754904436412802702882277499695365447749770427894937325426339553951930587020998546211725754331237400319041751233083481019091367379985347534740186050316491056976941109142470062726732059170885136084428570794415938718930418779028836483811295218598137739165276679827520893333540288021386545422564562634623438420204759434261405769649293783586272258291146020900522069611260475448385904113956788725003895043362205538536967801197565428646681656983993991126748881895006941543643056808401686090340013740338221726264967747213107287777028498747933916207078225082808969980989517047654073571895569016498721680951636456638161193301008347471881146877405324362733676011400534082557499269686096078343084279628957482594680844522824484832189623428917030484042043416217806919097835712648956879097804970104043805704578076289834632558233670149786336844257696970218796049085924968095238708621783058144194446645933415416657271209011600823524109367246209922178126299441729510321855370553134644840620666893759673265643881794091552686619898319230800630329159857984339924529049572340200379489285838971203276909914271679247631488092562888743071131135572571898991318119681995070274584287318799144052037317947745762897775688391511503657063873874591202094123831931462656400442179706304191672070238213045962883172118009722006619590574244025772514379470224309095179337185459935062002230203146744135037925120140128439703528363054512095231247736782695956832153714400479303016216230514093736881886997140668919121376742689590661236159508274580764069175844269933793272542692220733144191534889694528678085613092261588291246075162536675539821682016510213086227563706201645781081313350908494699999258357134894097330955079078246081448275466735128576449384410658013307667680600413261317094563124557002679726585958122111710008580570044013439443800542738627750691091295801083982805402580878356391910917650461888682801133127838150872000000999098262436990329176218341077994897725665368308887351984252848962294798215811633810595885952825966046584043777653315320474510109115179052907492294126381800248530587561199440923580007737605877203023049813364037235326169576241107567153649030775559049987490118651861524125662685073906537069861144781846665965098802696741986514027958781605210061319634483575301057026004193715137195702253087992197634546730741260646221964553791361190500406905557846434465409329729773228486051102025906957201697489226207979341125628738286818681940335640841318013306305731577110353945736807721007499989273107971045921105052363644641419951635334060194226645763975264178722036476696480086315524064601090011439434218023337351257067609637028356080910921563151912868876223236457783100471238431113751010594069120336793916536303699824432136386936749112588125800571891048407729682571480719291290346068620003945188567307208634683414070875021729674294120712518614677783530807966050711314656053087228654289956817984793271059914864970002692225147593970000880344448987905365805271320986906349612358891626258474654917851008663687929233737935153003403277231094120027492937682667794597205522753329858041072362752570553180246378348929889734918784053068344335679287579504029773325099380604742132249342636510114816695978277661990450076576878048026434072968861715570868250975983319185559891316852307398254781368080016982859646685400840169591679705269368474414157520924269773521078471144320280316858746542703680705362042867800484825255188367980275472003578605892612123404231992749263768261841577251681612975912461409033811714954850145438149950530023795318208132182740736357093163782437021852284595565488022835439494508428047228825203706954706442247023083465256794184865039494525699836601829043848452915957934450476900536947528387536846449531752747770111870682685552794527751110988303536940938939456545890306839717414897953263481275695170809750897406561161649735031653720987326341103017042750357059014855836600544071589469420391991861930335788321952069659370515255458543024460927392852038361849460605661354419352128479036798164541754013012601472208063924084475343499890325444182062399663046431497620488058142131888571614886037989185815405888700275902630545379807198907621288955482705989762876253814842347787445204034617884802524076902217780724370796399402777658295188861288589368671224257141872946509649687890946379262836862453541195586490794291049944356329146552767205027924203354227943182222137875229520503217995736353650516449996530810513759591856845135031370926918644963421508318209210553814141209695982256569202371157773898677261621966350397870462405429951172263872985072904659355044021227972165387428497551673572982638812198356510774901707256918497543473868766735361312674678796332598331915214973595441230934450341511232392619577788188509431304376416643431794265712016402114261279519614692815515792298196278788748498248037883183247014824299376549659676088095413082123959933443704393858606549398118681147704539553297824140406187836917607114931522839732666917780512991534465840208276343014515326531120131052829362441147665196342903276879479197490598299817098632714713069471767434192490947864934159383637683678506772789855683448083952312146106087987420605909109118402890521709524066199530055356426003294232584263384109636116021351144305690853322293176665941912890067808427745221312757427130528748984357380872418814924703333698463463352327308370946699536414113216530895830884518812078385004414254210651318328653634265555755308286347185586482661778522754990459785161319890743029401313684014847180617568727236765776794953974413090334679383464082141949111688573817744102665443928872117089727226724909873618193766964544956721994396891794592845011792439408405392250874658709415963646700608808723325225148188919857377340336819486826136904390826988852435624591014697712793809426612963859484308695640488801792707181460809800108084512024774571170121245253590292318891448062487205485611070473849404696873234152317290529233185539928896035674457031088062175313123416711393840259090475492029882007651521604328206894607148659778638785818162843446775265121505202859568835524214104254083462519506423849312827269033604602306772613482268990668732297970300998964364500473591883914120205305537791399820684958557631524437803415175359228814485035906713959154470888381570211420472030237837248103850916112140117977798315464696390481735741295445225753091262659692694919388190601488635220157556800852068209622711177955302999638086516260004075993918023125299101273628514373914796171946675990541706730875094598842033246557651022636412120749970077181272642311954278759017660721435487186533859453152956918501132914186364824026860392240899080919848485510067325347867408587795182066270857679341034517948210917910365442440058327742608601276313161936353299952393940478273599517679688569781595821108425579604041076723793624438929408212507127657473348475785460209047626776399137819026099035932066496970382993714650295728860861707562679144505625937397580729169110587986165988388685126914512458046266788006474963957962385954978632325744240487266982415197161913053074064152268571611655208325433813006212458593984452303580294878205400410342864031508360164427543495311034010823110883251982538346948639629752707256039919912061947112413342311175779543090039748082287167171586941667009323153123832106770979380185404045342119238221117576141563939294118747602070922223533246496319311325357087512318332301281251035279642245051512314563973285122006920826749095577459392491154983906953516550281116959121847660372567595533860011038539810978046785328065545027018170018176378732856512534025793709459388906504983998472990692740126197672065048629846481836916350018717524919708325689293580465693679161196004534817291973067035420073203895198402556774872391607869184602622723221975554798570422479948945651086772178551272057548635570825397768058850609134785200287852222213693088092668058073864741378736930169981681131649953574683539284179992394937586583528831214818989615555146624206396677043770410815434782243681628456770794074312112054057991675360528922917517202090025358684475160706281651967769771013973303586771362965886593003754715459239365555686859890234692604545271377462143177936192041136491949025076350354379978406876836616350301009875972279040667656384297860592621057995528239345195712917570425341288256514722221987480470145933343554979256220208005539046990217798412495120302168027484246346686582289060613523926478994060154847910243790362465575817992335309978889405865521959232269769155428223246200543394618153893218055859003424747455887342913851534680327091545195362147411480667245409844203031730230722222148560592896379629606336026779488704959839181241588136066284940614621947361867189434114801365349091399251674646332078330954925632004524444782111295883977126686433385966359998750079729983344542552746840294240608032821752045770088215692608118345183573201521004384843609218048536376540123645719633709826779253378992748774245695005569739407028754972167346882410225075475800730445868315099884573448984401043695080415591416254818900410314129392625924687892760006005223281183212767728588051506158566067308402645898623272024859071499654456950018878138538705211605245747709686456600287582504605398423200135500084592836573436711382930672701033396755835701208064200735012594703469757154777485304534576276692038721136681909033376045028098988182944855720204763059337092897830147403163928584187536507370419362529232634184811706491605275209895114318177665560136775419680987240251282775077101725805688442812005375214064721007074063127513741649264904887202585469664256357242885979311706942714425433925681571172404797355750479863089407702815266300981629424738227668333088376391949149272918449807982037076976870632273166906477660622986819505703782224179978492116724793644326282965272727328998053810016786720041464656298556047932291282515479929984375815539113982075148538744467489060127866478598736257021965565357016765300515109619589197646188206601501992043200314902289730703956988250679531868377733038487170490445689857557799068930515551044166322731135247205222795863656962444379816702262607562445091445455483738964366657857111400201937750080968975686119684469565386862710995616250772762000207267237017848333999554348466717529516418629704772191897321725587062965027265566246981652163149283391849811169833374008137209333910069817702394208682474020258794305880166453950613329633912650543606663272013606402013898574001905802916406357618624445710808428782624781481815753088773928792284668928041911512067382756791960034001003365645991977694876796347082399535336941826559531918898843590484803974362730353448421924806708614832108930906015741739649228679246229063891923115745884362147427081395499145357958666299818019344516969531217129256589327739023530948510151855512931014428947746101614324369082038935228924326615434298445936202065114385469755866229654500119205160163070253762033912253723239578706106751797129468243738920566283108363624606165961114819278395300576458585928715401702634612005527730607247914769423221752109390957701195668743799020574977418377690722055652786529257850214315283896527145108683461688983104775726505043448819567986953413760060300081012337001100101807963583879432884708979192655915967199771465607834183907419603524006126652075160738602200180168449403587187089604977345042963477396075054377605328455083320178734501210067258846653651831301384983833171125693480752839642818139898127268317328999728931441155381441274265983391608589911500668525446576793775010347947897502923972181401495157082585352804699848637338205021720274634919343974917985772500615568113827816215572563113621795960366067222563971043271304326491960450374753366595515387885476128775935832563071075991027570022045650529806359803282322731391990980118422314633417263743402136238607358273926058513123226230614172678560227272053069309002302419267977088072011839040230993418940106776179786162151789396824616730932403038298554606716332433899488863143219922433483545453624128717363753183921396943260802031011018902172261551836576161727808299673706986702516189966258284472146839264994513828552047945155193375295421721146125154387355183782010642910541641990067294419172217287146186972417773508093165441375930578364231398506421640734713342473573941784016272044444652066605813213608752334330954786362409665875429415764125618055708463301630580792397278803313316737406648496942882145347792639145154092821058411930290272718437532155045372469541738750063786492857988032278634812060221331447961473895580363064313690906395908993119692055297441113005777734633927985185846951997291085605516397080979971864604493064054645265892122465514097947592284382620449058204850023262869791041394777168363825038883011759400190405024129823770367061807244890149707305081218012554576436343442220593912405232479789636031466234172868422236762813831347667153905289948197834928291200846546455770327237012718862730635867800749156869007028839417134640206831517385984899334355219630106728614140638898125125201423770176615960011140262844586757877755704511423167147960002218340149158571561273177944780344988874156529846956750402824810344230822924749302383501914661268466273089650480082129632928301073949864625806252256216282062839874687400750683966428642125482186153732528407978324357614768080676853084308039245927669392136665248922523240588243846876462521113900678349016033811295137389027641959141740089928833818454362195325629942290847803582112127785462970684184268692932394041107899735052108155302205323951501478541485252348752180572760467057456281120651420648995444064566751853847961762729780552685909751313183733699700071788542933076657900898052189456805592973427816669077252423512080516740927552939959496562500885704376248912763243279842909669228668774099008256469315895924491397508631272104025125297382417714962834752372301649930267263672119438310461241715170166625747586967036035772624345209464432800436072766393093749100085393410440625698410991852360843612857736556208214967080306822934902752522603623323471012331707402204907364886923495282348282242192809796315040922720043430826779534455252475011005902243141045887749314806879723109132145081886249937171756579902486130392143938360610102829651374610442124517442316914997541650655839713325045262230158370972317259681470159144615670980735479029812883109781523491440962313153721717012229925565862460244893534944537207054106021617228168413877799824399249173374073621005796467119495678832619563840864157596206940051378982677676566608448567191484653113920534829148002841397770050408686195755950801178045318253400996149405692371456804422236301691434652070289924089747827561155239800116172655822231991327838167548752849064489897276713482879335981265220610765379406018992379803484937668732014677204341307678270238428731638628360142866863726779321250110486242215483349816837742942764876000858856436496177826131191312706517157392655112145150316950642656688132603005173560576844053713411201708332589268321714818400341122520915940840742810131700715063287363016018840150571904267009897057207425609518895652541683617720247628034143436050538056557840061109088437600984072915853652430543093305947071954376957922610720806639563189450043183888178058561564760038964586248316525773647798070489394821333379074785071793511249256478392789480059510312074986210903584838229113310169009899953412877807464534919802590009446529631673241918599054820629028620192019386710197387547482287661675333359344306406524370220691078977940185405881143312709297400514661817994121634672084490212122779151551400058424443470399450281779406960165639784574455052325577338858944606493471649142448658733294568741093593828324702320008847919489812440206007341990472698277099293344379264231653654008109445044983332885416285004725675885521568158225949070121624711260563664042659795925822078613525373546058700161422217506657086280251621035159484193557890188005626130210578971097248557303375291757198022057816153812262671275563542811237795709192307291901623068385161825519822745831158869189185538857600277136974172983291736903082421340715602410102200487412008402633127297229920854931195402054225519962585268814264969992392859911219200172616211352392180422090416070868393108172347184072310090362149845234879224178380804124773053096727030726359050630423752028892435669218120745623969563989209289301536109024846909990256250086883985533749309883899129148852994930824392518643377143975176941499576436690944436312339483146954976910603375948630503390576601171938547630806524707852680082298024844323950077660954061472890798285831752120123661645414523277102221430454637945223548509037809458503234208742957732386877128941860647250941099654416847824256059103719236508195802181726541956459912421302167796247791243557613623775700536784095681325740323775104769026516017275109314568200239734130443316103289396049873853613735093353769173299122508928109532010721416309416027217613405957185807281335500111618746048864865448217598606679596019906089513968704180170894982076683060473996901956443242193317911094674265049688631165164447239561798678863287995884929805270382121499167926466932595093137191103819602019343891322795478735161415986107237828500263985462122989102348459281293762178172471392231596381690843892023088372861040278454718374792199905400648048246999797948291587960438888660837092357859553591808300403074845020231552681928534001504842473467302965618023646491003592124763001642746345733838486845624605149044461597957705795650983790957211623055213587514213438986652960750185475283462380311157050751344294363251195534419059597478488507939148855049389230894067811322791542609101715134163288902593007262866568362846464499980648536345104298233827011695215957174950019049044948451116083475389483341815879909449674364652622111416211350871839674471295646200539607120764215413065495410449213901043391226821175684486962585591479033685391124264783762705129966659408296541205536494446754484181229224193921913155231146901662003805732475679641555197382672168656112475459053587479757353486436096325918956615284445885410860063985133199635580702565145859246511290912762980545111363360170020694327318592456151507288937599737073041038363860602876335462792649595265160588985076769072479294321890095299464818370564834238377005049503387459686438556450273719737611434260629753756408114315225271159214186663108315085062195408839740766724656688718116833999338797920936348811372510893813091753092525363283971383152503327996275768978936824713977877540596083873624486546984232921532660604790260881719059362134258723343480609401610437272414272505144617300539134124569218070221144715403186391793852287934932545816089654891243282345583753634573061662994886435183864463517673425000226324293649392365980553246812827105371864968354510959453640735330239575720658301822095520574519239762580826153982083270716383204180067310617234979863848514031507182617235478032059056746733388263509681879033933095746206828626920023693677216376883194396325096071059072368334096549363111049527247060895005744433186320452481107347539848446807013151692041941731422815006159217469318165211003221565129546772203174878091775450199323663545687672991797544773039155658267237355346493121430468773567924799224590518927228076364514038946597735748125841629389811763656450215838057506507844185482092830929646100504317000834797352378168309475068950844439749693279995715534270301882610866213578635414921565863755286755086683011874093660285237809285807099813008586491927755329795131790754796488728902034314747948615717248904937399569499247925348655140123385627922042511737804756032784821728708002626010692677213844239583627035882548612214048446649115811536296840822979716090046051338070756265841989135524590257494188968624371488757963988726001110687378270907427571695362911008543813210220022396010556115151671256690974631696093954332090216114860775845777183144662701897880475966945488118416832206984619985595526853415621013798517114101030829720216505620018582211096090352439124353523373284256578123408551738288360547695256158297048647495188050098756405104279909023692213338971967621550483425268769504062522557866491711087057958147478306419283532203464717725379512178114774299527642482138555406304612227671727653694203472767660164063186666538668601786562088054359590041292049404003251685780896976000050272759483689970456459560904276866130131924416037917947065650159355767358261896412668504798988295787533773191706163447056327227822102484013036706411469759920209210604083273216898538811761018592088054203706512021256988808527413768170617892435407744272961347280784380749449961376966157587374779780375051604409197745709403699344347544620307945353103377868948238852319021564043377094189738004640943817997103160845714252089320182252584778010633354901340754821475768407279002574587655068426461063574507651250455434655045515377004632075284968045918927765619776576406349615930324069282882816362121157208910876834009689993430862771015680610125998392061333292963022290404412033271124821167330969001446291832795988038518965725833495789079615294926998059551396479417224897640175934078195849568721850586714460710151819233857778564930186391516377252371128911742384224584118258153770410222191671238292172568519006979515158108473169289868075123774983414134199412963224656048968946145770957533012809632265429481696236370300780448931337596217053913001193817268514247387596401906887551172468690391346324727972617002327234815569400377891103216398081712055480517263252980501007148071001358521131177564676924152685827401189611093227824163448535304058052244027650498766967852561759643370104082217266257863351371854035973839062001562476271579895848531056922861601672926702665115620276596051099845704726131842665464160577532631777582029960877490763876374339308275267642904089551138022025070409782837575992674042529617857803365870901695113928625654687724851700103013039214356573293712004064162140619054618714676082653073411705320110260592895774121195928383524454364770903990536490982647797527988915341285243350211458279603759959666300640097266870134634839421975318865760406701826256129840884503427442286732578041133013371041992257830135736585418628344058260950342654093185497046724743269058875512741448546443459798625102242968909821351516316378261136207791402750010885816104866979401755968117361249569081235925436738713357259326350606924929376992014438321865041326280860282658744141092906920265636175438593382880239180441421036807378461372883382872262970780453829694789422427479672060989605333924322713496062744032758783770523352788734301141845567303929819136284107253410285555683484905910797912508938383797960040125187896202531224478419763517612395624680430142957386889340121388442870016327872958768626678894965565837977698009574945981818250044477349950808065193810314097036886891766760157224352585659592423360853060715018678612373407375248345177161064009342639505807636297751423593379873238097075626178217820638122096302573310914310228992704175963777638417199385663037302144425911827903767214526205207441351258881234125764733055802297143387280133239490449359301485780274865244044782304896820769860305045447905258789553862431868440524117628405078378739423050545723611645357930082708529000525560890236504430618043038205990978615034439732890893374443666195761576593864307400899034689445062578012230263860332038420571214846557141474443256924258406746732432675535138294926726316153267580574585472177597185165202951612795918890260772921800784528997257621091409357508699893354099484385872674001420090667374517358903412202884268429358469814052519401213378636194386158838234843409434255738193071300143613158873776598082058794437443084882028176905147811452587916468487523355895122337165539636162886334846497601866020867692397208464786841202018540288745494713910812079670725588550494138969362587538835104993423438194941737752161027261909850433576429658726978943726310150450442495661029348049489875021274114870757903005905116974052791848123377411219807373829313083074043326309451409398995279915851690696052492633299666064917528762548028169690799678111247394981053833559265342955756551643618740046181958528631361716894027635334307648221731100979529258921077004696222692593030699741909494057331642817146771101009159442371844633033542154130350397798864859770398529579097149244199465021159925532426000086544486658238790966344653554863986675339181000619868974462353305398617691561377742537553153513883389843594763325554291499916246232904960024946339601439700867400185505385875993050583586030060895462263102323043999540854264549495760983135673516904646030182938916291516284245279465449626138056916581032860410066178643084650955819419676550890789886381870413375490190399818873639162863906601207474310486848734796970937486269863109968746526819537452446703792282709507497480759018933390417005229989437328198945443381466109657389426129497328742794660469117544353072783575165475366505481335359014526419941345782264724955342672069492377128268627492213948549462979032888830638676089739731918744287544740463393464138906294552114468723727171265133990724153753573404553683965772549858363599853098659421044650867626263287946443307146354660791980199292397981834151576202280626653824221190525366482088369768213130655038597048716814156415607318126315830986194206441128325038717350813739676970865232238188513632774681158326875623800215146523521508206861827875082947064999343066153487759644582927373274648944850770553409560703398803613513135986198578395332871176051280389527593256567659408968914686552407965946249806843642805247686547951781589521573964705716240724763191079897798556888972084825964487407973440987261765891454238126016217443450095623577380561736867221692336607632382247161235505512993430245756232963941313455882613265028871122020194658247464921345897855367721651357573497698878013420242345783391949988679601199912502423915922750034657721957248665056371067754594523753834193216905273514665034652344164633730060265682552007089949840448546901097325176844031140176092538405613948916264792518941217970320010832527617875901889824934657667291771134698393078267912167548270127116494535434338673281319001792373630214763820941500974481860993378641028127638800753639875949960646788018320665299455595411821740832582126674262731475372494440220600048333389428386007760237114193322010182585928442913794506813995538149685891092757336946607775127949485930800729437996222908687277232233235400499135882976215640310380199431882470308641727203468273527656846066344147804548680653367425991990341363536245007287258736608597022962209464914097088558791888710978149897327814022720433087363878468320380544635937246933235756765549214813771334274951238022602133514081119412895413565009531360028122802332992225766474299859645194447734531455554875212147253473855435603911743356987311694284459869936842430531515389372223884684212983819642515706994143242492889018648798370543786458323658499307715842488115975793122309430946663984986767888964410175042176876029303325114005360539059676969584404811156046003228750309865834751641301515289275123379740424635324175843731694682246417389665291515635210620682929829453270603547672646538663907441575600404935419513546354519459751622606496082887596842765716394774088204511414890784214759143994719356609952450638402261729047162966813602202245859198392296330008757110595236068079417491926813533577813260942378924811959149845344109569453538961918036512676730508194555917917178286013160287298691414038437080977324855147820517154426987532706906927858932572473969234717858103551076219084657698182716229473689324032495097216308989921029922151130402578665278838636593119078729535089974731069057731348351232733161185930467616237105714585346544891169780080391902518794028099457143500178202857504313118341324953072146835668635422939195319044844677167887835281458608352429084183247762949102265746830492979458316429501307156750664203450223281959492213257579384572895421363518868434867243931314141598564244927224165925024253445653746215842527881964530934769650448823694402198619765691786668232272077490306074571741115068162815902787605680797373201083706288061200849648896586362818928175014114580265791395435004587985338615338402594745279387069037198076429704650893408532075446289337908843169410534001672640644296886408309499530569399590986484771987474264647464233112758561329677512828779092572535474909527740772827649766206594302147208308731737999479127300020438894443450590225104355704541035030911931968966100504730880391446827036332722533662399837960344825292789910743939540536845922502034270467444186925655069694317061807977874414728380652688244435778890509591256390289045052738281196707409693745921653735004107863542754108955454898383732907356685877087132399514894338798478308753358538485493002312796684552845692926266550634199919982728266252024660788550344730311228285970555403918525077679662957366102805534055036075777307973674172891245186357332598115763670122567604155623959273881472900236609016251715446727885788627585656688082730292605541798497739924451392140392991007961157470425592550610286295480605455920315973017495807711873714377341920783706580368408119051652051172621260896355332749373490912469055815587686384116532118381272367275576235511689483247910018878500496363478048855962039102450336375681232074407249210480276357257970288284530818276487716014731824785935033623809340363006509599757975241326331798497713980034163180815803885103200183278177983763204611730000152524014796251615103159882240337356585958820318702844771334688118097477963794831325294376536629393365218811590243470574117223822946281813098626484776844959189315609508733220595444811300876295061081496341625296020844705571849336868952352754526978999375227007520407632465117783166770027209251727685984686368883098251166190739815483636346096923015117564655183476146075630720845689398416054899882504601049865092881381942465928185353239710762413721595391223205915467048164700757578275729883449060505677282474195715763604177675438630641714312781613470742571367152937075990974289025270243581118289966957873713889990617429194964128567086463335309457687245108520434034140065202556858337325186428732041540925660797887777775794829510609592103659062329031875967234831604663390909723852979098051998849446447860693480272377651050822164351545889983331219805974419769960097743083555314110139106224676431708828193434002317365468046972566817275814953898927197069272866600966779461052682740968543073917730671332706866603384003581151494707100268614313850598902281710754923307601491084824137398789535938164953649944711598797664758655678744432620484246673945035497752471566962450771801164137065460422396467253247423902166774859884573025034696221378606472375358904614481719987941809533522208258414137341994002536653088757935837992269006237847670199261698565236599377119883156559693767535996723594840667960307228543934919514047880942791935586842864588440470069369834528658182175389632316743569463456306351201862720359440692551909149139674773923212416685862581258081104909107331928136946084767665051932426789289265299858150815862196620659456363826576443684951153000021820168347886865251875463905081856778490289692495622746956563632374759459857816329725979441149087737646184664796050937285936720257746378398343251685130188387317570005228956642740740812841849465503702969243500396810642860246381782736995720622172744852195990113099450351435881607949436563270571327313861888300324625866152765291618624443589752685439680638640067194630297123063361835288381252924976906422500647437926665422246958092471627146099027891127606240122076676930672266384864920928554434437973382424879881962318808471843492710366226141973555539960662277787285481636726288471427680252859556598923081883014459632917100707025487875999712363538487867349486037415042782863292533655993673157782422014003961393607516979765032382004735184387817697579721861122665721428197067902542421610705477339023370648819105187842439269428585322382596946747581130114005973290105370394366890093676105001933661128020833199126135337495479306364871808184014600555675229563886347249937994491397475525367271835454896035405458172731144706406660943728895130687926049652821963985642444634804750566280745529870596827302561626510135991312415926852365525044508772530330302977276831187241591824945742461254703391076827734615787938948203824683606140120746682168261273803010330511666753858991317872491048905160252148532591605265133155033265773312926752152507977322265003177858349352788657364505923813975669479901182398241144152103444971038660317042609393911043386965958369727418501647156984688186774607881602011874804508853691013556352421908221696185677793069333328080647787419866939858235693101172033002387110633046824590865892638623598654802806396846590188950947912702845318042826303619197969785687669003924878633947461700774059045203698465709891540790313717157064533003415485281890570301646106905826873197926894735849109938689812663885801389061542971061994456913661649941188685709288984760557229867814328561764718170913219502998695901978955658420812444211333195495983690722248093729916760556850885668796670318399867400592170780211660906721266191748563983713963306960317040209839737982896243503081651269077957469170244602499855042234210022661274285330628549447529505665487349781261256568643326864989186548669569534515619037266771781521700811797645848668403996449881030888118546557161964053212034918936502467312285656445567570814042919350571298011466309413363136827310143430461073943147211237598515749882732185887164404297340831885870317056295285229264015515008988014341960189342688382330787630492199399362222733186715821533420742922584009191158330845851655304733713897198283441069357475425043914188466670962915165695348980166637508628167030570718305116473402674314665159634473599968139906927442086779194916113345936791319216800286008259722839115399157313269762756124181155011185819515473070787835702572560389953213752447792347970962737401268322773062818503368408478741578120388570679035122422220476558710506984183628595235061706437735884298296092694529433458241811902371490534537475060363801558674754856240794377573230224756136412822333456880056994791331753348413503981672428621835766871278458166948001948147170717770718699319789271710133469491458669142489842272551672499288492484090226545427417318245490104659444808933436960223078616086670701145117684591247137321081290566497563417484889830220523694716726840900879825683992673638650716801192497157101366750391478285142498729900696346976730869323696317488968309000075628146824996311178848622214549949120266951595097049652683665392908727399717097063323745456168653641050900636800102125779358972404430803463628636925825344190078861691793292195827077842663380713230031043096503755674326412948922553864272886837144020534645650598516065223711428862320753299534141089865000099608879373116254793762270647681479876598033762030922104068183293476834076772537186178960235568702256684414455514133852340171893025530956959889306558982532682074509987259151944975236201450441174247261219150274056507878399731005197091739573283182120790413076712641952879288256397318185332714378427692752315010430666834371154763372847022281277118833779254999841246570604343757091567255194378801504442365977103746459471643180773114399056684904379382185384043061867091627689940260518681643167680640981614706068386870456786170233051291322638176201978231109885435198003196859571216946705293912928349406587230601648710880569781900962595723160327619928824471352261158414095125481517763075005815556412708172918640333286299548056527105360722134908749985771704465089001555590272914274249716033496376991996002082280615070610754527038443921486494808534241846111956733369006098698619209370905594746002977289723356592313603867368608095382196848259557826712850762457775503135660457117093803600879522985240383558775826190167448056109068502456286350965147847761101092908812135855606213942838457392831013659706563645851368667530889117389471987988399785219929257188496189170141329314203314891853866159702456039329801335237667660658675475532830792919244650207768062445943343177796083594268179059835173332872685136106916998720075494420503791846147921761761857269154618241601494871103067208518162473353401510978780534232372921830432581091469213793645525846736759516551904971041488950582772950878865838186029483944051117489906999037516275554267318018054492023369999905245379810679597877562041158257067930408721445276025135175621199064612167288520341201916198389824035981149917010546412341520523562790205068967514713175117864366669693605983648049121304059218339607368315335477179912347835434735955074590774577348016562289773019924484675323245188954880249144333200930159771521049048232686395341085215073385693390448874107087553676705225267111331436024321095407124898806768985411739999513123318016639027572635583761005080477075554475964404706880950823823736813879847927804700081574928130746047524043622568006034838296500137803739414374746651130554072859430719738851572278737418179322735542780235960860745477900539517500298273154966658357793620230483417271813428391497319775298202876128217867034223336007121259990049186897432834726318793149634439343121818564597770316970637628753850286717402536593067882886903402566945602370038081452491662881805821756421975868233058907694854137992366785797143827041496425794983970719449706413429574938970725055770872692554903490349060278247282863417632840701861506625173899048820533884433764691099002832091247861560480105622032859788272260334460546035362640087325771046558977122178745121883563960304562691743824169244628704540016164539758746746005101410484593531302939808542330012929760795972423729097065930477912049034215508049347190523055418310041495714589840575195365314609169012863428442107588441389398922167851003677870339820228400455609835117347972943238254329269774227610626611711682902608426295473916019074044729210127729692366406801952888012162602949051851344853793180283806861064809604911469311555720718186556411261726975899764049974375737062164064895219066150006485456604564104184667092690307376100727408432131970128575520248453796332878164836718044108718375560603928057500031702346898904570883634650793591904644996802095769322446706554567781833521698582202118330499174016309428631103194579811683496706438130225282507757056931731345378147872189737012960073757976352996856432351672988825874998812831365125622679836201726159225794675641921121009245154986881391432920724515929473117239066776570377627156946363698994654845356251227948418044357929348351060605031934769531941162883165955954221248237083951955032630572101457797540310071201173756656747858993805805883643385759110749468809205050297003648011244804637743170977044222385741553772123609506787893764216537625246275047154128842751238212500738302342362436055262459443837254091344157801828349763155337968419757752253639806277294728384653274620434667546509165010895314078315888322973573009596446353532204831322193142704315529586542823226086327117205132556334846070780740593783415793712662118389727227978600640943813134854793784884479366202802914091346387501456294599203427514883205166573910414341305576124438865343956339538180639569354187388331639367519428488343262736058956600818785800421140830990898964736871888350196332768325770050862173450763840525558866212754010055885977806128206969589369114199964236469817386808169508560078273869511066833939020178720682392408160433806333409511717264354819428042843790278875511373243327970243210131663736496671085934978343714295256708696181326709108025563967589060424470788458577031867404215083303296647493024480849306788547892159117658730895042704456902407704227979268351472698219335374787974051621793644759129621817800642445976395519397612225017137692611440694928639107857559242566578679072322385706109597008058503446742089524729578474670591538974363578056610961585718013847977153985079542396160774112528290649295204306608177029613500895989193372924382126123669265491544952873103077452510869782986607535894189695486387238340879470160912242273764926958275214490337576052466385318679087696966743812185071097283282558604484410385919188777561237947183510672343466921212927484932412480083280493190590780150040477466922980980191581751410009635085344881707851109478190499189708963143537430402766328313764268039986088787369375695825187748100250907458431298509646971747176251145594256937111566721593296283722620735119012924071516838148477631522811296218153025635846967374164269116183769488697360525172977745481267569140309668420847666199956149843750493154568403774519118076343931546518714931297103375745215750988420351750476543364647368824468857983184220421505762200077029657458215424726849257497109772669268011028474366336900407500605012707014210998010352498610742751409906817378936610564341688210284270245539609885854923274183205105318365967246192920080664859866665105614090707281051830217602860776017985967633773776591879701669591653861418457164023068480297454271387959626822263484371461713867559094157407424879267268018711268178817593513922894142276165967584284865381541096780318850551012602489509702971564982263699506276730422417320602355372640689496186570370572624005541871032703198054689943005970372887424709676298399124544464878012225699201975127177524592553609342903284487329622125664951059646162468679241384026760646580697000007937163014394552815199435939327590367623368079544845627179260625673868632086640081880655478955978124645526266460308119716840277478566970617371337012514583429120322718917787387983777600591245549347671889642848016425168925199986374821317411295422570335160327314119322621629234638898955434603374162300552993704582763248206857462921006510882191962484408615332411411587186698715044306969240090222300740250552699298903017601353595809642052719454757657737014995191220737174152635719729407110490572375941107160253484208295873389319948649022525789604987058896523588847268355001555093754135829664945265389213503861528303494518530846937414130904107150249422423416500726323378343497765480829821920180812012180725566383659911308172055586010300258068035207651470930950522729430895627888502536652131210959993801059245276273341919066170923773942409987302253421540040543044394789772585744165267912556220675037681090171469977875208263313104196309610066617341258190693004330552741930410698460938700514261846517889008368782447992904386736463098320917917934428742623674722274453611991849789836820261781910939854948634069320571385186951277740983180009119624110369162845708242417057007791690377110707439700053366679429781256397582862378429977098224706362062283221602537916319544326198665960787599317027539834794497767039191404493428190396615002210377336815277121826797188713255558024141715792248773597848467907711676656452352235578405854082555078206454013743257580783293629608369664474559434287455175408778273413159958933904935579303800514345563550112265256136192256379287129974140507177510856075803593556076583976712651427741359706933147591386583349710209734878067472893232461881209672021060810217058182072284331401573311062653200496286291991453446920440243723707276332819486008482067249581149819152993567005940115291987820734700759150325125304283370433815542472168145422037154491199505857887842366342341520171310160506378222819131233678080311234410865607735868834899165426946177126732432349089428503095083361319756748558942470166461552970516718070977775635048269557377331475733229874199489065527469466784219402967928671769088445136603895590656768012281532997428266006111153960498866863705907762942254781613602904868785354096032960209004686646727636475631074995463343895276250465440406125861407526504323728061609775105830852668090288406228868838558716203446301291825593815759640088264378652554210718235146552927172962963660448981519772298850342003141644803256160080375789325798368487143728917177768691585856736400063302825311002785943735025709009328277771378746873643155556085035979042472772649921940392400178845504341059968691792892529014263270393176392817582818874237833322707718204721367825719295278063286210314154939056453037365640809000427976572688647292517314134412901484493813313477735046619928714942812794219554744414767873164556041195151749827085702004718560207770787338347662789127514587023570246594847634868493999306644750140443559650719686267122989558347538954175806589161684733407421357719567341733743455084511418886237304878277872170198348570649728952113159599479276845629419247879426283045809129388431169903888405626678594743260353437275168518922487192934148481822112258882622425363563736697688480425006995755973286958813504221007353200784373344734773065069882000177618167336893056162786941484218848985147890379511453302837945698814519515244147627392409374859793014236523794487591480163452969291194719789279960062655383086160746021886426188160075864707384236268580115242010232347926822907854031037131850424587578958858740589704032413159069236507776177291600664915059910213432690744383378479018078594677256098785439422782022688407727159709267758590878274993047047342221005404449263311867073402255822401173474784329251210408395996151392281928006232315674627923411787330645364111927106799673710265377343574747112367479456642136118723362481659691843136964083665166489299620387345610504555521054859474890546638649480985675818721840086935164422098296441575681809183053576086145197097046927151119331393851268842151502262553711099598817080557823820421210879595291028334347012960507003409956387211575481933016939648271191558299627945774723601339577123952934900725266164119719356267133312805922959320067044974017296416947490010271020425148119692588536415848023942724113248632823408739217648446006767054026368589568980307465831798128003027605780090622329808358544778851444897474502416988866538673232258446248455901178906930389015387700240637417494176410240232188944753069734287329277667085006363153969592740704173274788109990833903219261737146550140323717394292555787489705395785608581415215166154103772401665400200188884168397115513370108752186234027326722450313422818746125069127274728328253377110889639228979898304911257105833177952851317987095309072582908792985686182435418642726627719111459388135557663637380843837669745386982915733010631094454187636148030669550174306883155460558131335920771540139468460029079919835515135809183981221298496909866515136759149000500492998110075044246856899199303835389600735819928175725005415725136812158842288430725233350469320213355999831688605050235397985901680047735727248279587968614190787791752853062155390551765737161690274378699811094507452078598146544245132556424893060735938108894435535159856311912188368793486272387906381430326067922059714204003275971901919120930684777432179274751347859346417644997027462721240156859029868447370631965698684976656636502596266660062679581859937906129512953718491823272267204013468656156867196295835642745442249727062300871709728058619852194774494097261569012788429192008322818558388010879653747288489324472630294842594475139503173411325400774877838440729320571100836245120372068635016613917907003877952859991252471886849144355077911443029206864556312537302450817156643667259597542638704924014838877852233948053754091828463340586260634196100997200691712785494433498398248481133960576938204990891209482940252138014337547122016729345363628855450831285704770198484469656233352037703673930405185292941113731991393848016750529239737713437270558731182510364898255089236226061566877518749926302846087772206942566738951703331238684695648522475581447856537826980665700081676727141537928523244623299969121142547894234422934133581945674334858813824753821147382524217379861271776868963869971399606254084267791767436538572165171021168493215685923971445041043402936098449663221047178319759740058772020752227494082048797536939333015706821364991156391939259431576835882602372186076593049289837733675647486772836957440477465759673008226893137255240406871101705932153699696916041518056355184492016097994788441502019881860513526986229887916463308511041038133227458340950503735135310119267553361514273360073324646831841536293165656468213259042703460336796279373700147636009994448230232455043962522852816854135392159478625085983524337212976036277428007313653490132168870804184568569644429838669282205376295654621610351590851199918707749155553089749928398126438669727217370792195546760179215111178674558362412375092433921328705526625444939632247471283003995190584450664076780515259652363561334163318477483412781323961618023511094946079184816709975659043671644836759995936608853300195825480253228515982638132892601829927722093111119757649068925179360295086989338153682854546724604979511740728653273235509733839867921336726460857560762598385683472417274538721167406271270872498166408216919818199084680645277327285296530256098715964187482031175252433038202114428213903007047643614128271814876218326967554924708650273533711727511533215251900326836001002019950331262227604509724843164388262988325795541545759261290058431458995493867077122866419556929911163729132949380684928857516817406070247397112327175629094855646671371123474426648515404165707989713695599260353527335023319089684572490614123475218481761587076265551120443593333961185760982197268441995860213082404409210994989974176590788459502278096368961343494524506364525489803076543657606157670565680068764825006940696232499182163111135825438009072513558707155603404043299112436576758446781374320596161661508735298048382168058600730095111825849339352170547910170331197298925283778669569056529220178042079413265412232438435650657245312098956791204979892402319520243866151312264956940967300109824707626868627153412972721987383921066704237672003131187060142811772051954649017590254927129783054202749979227436914132211649731556375787886574870600798531989564173688881638847684045717928688964946359291749097053297088309377529843870006641110738699285843129682269565592772353976364048348966012988862443466335622114726271931977960568135218679246577846978476782306584398610305370971444949709341674505075552342795486736098803172953244994566741761930833420582606760382615984545932623930062799878956780705735104615891637880743934050830225148969049107666827490820373098371407467787861014746246572330785172492919521503682471327515300368469140332996783914490003900558362745357288064141873834171244492460663352186495323464852952004230334019612711945319688468359977773634123033236326978798508263257607038128372435311950245549289123884029761458945785772428666586821808908523209937578983770564337349302434055981209386336922961715084073210637192399647052102838024209782867042352613890673667042943375458476504100737068889720605834139590720436759178573383856097990899740279182921320962939992958044212887185023308453745627497936665585094464856283225328146444744584008716466357067413593069862651152502093328536391207168547203842942887366093988535161487867475812672395361139338687197059869268371690154745637614490945505861733231092579097762441049138871972645503257878281248081118177391026329157506952668534800117492658844695910396268243388869056841510539992252336720576395716322156456497865526414595429091940466862087913664062461428398745291780603941440728044412220596381464854377571397197286169718150017236424499261158104288575896325247248060612960958102718789518488098839975116640985096713054461102551288845420696040996661182379396767682821325365138584330146544574671116575245110719536265099110228505235596275178034362341637080138264600706301559093702050012504816550468998169401830917345095150278340947606290385820044233680056476346613891405076147591922424168969535338751869131110674461364927033255958618782125791733890305234338413321074120943361838819874203091573125507175270723605745402290155659882698793708201340781700549725698494790174423924267849847099742455154831794231546860121895509992644884360100230541093084905361257754222616315074724822403855620597486160453165137072834215671005602921449883584246043863923882315794877779752791655919347486951942041073282954106000120446988232367133553665004882085827926784531157496212757543352122384188510819066050389049984308440884966584188705080738033667857835871866422602333853241600048264502165442515743140249658388945710453043630146740069268673116389470108645898077119489099983493570148133128925419369457240863075662540646876021917378892838741131747876801493651506192995490086629867041529680680757605128347058428750063182138417316734374643213012551464159329138416642129671568291867639697596085435034254883306587516713863717870599709552623354199456719879518878047911623439542073298222989945286312224972882576132776187274014897121180595912698185941681683900400362046446094534455743860645250327001983043970919155476906358564377672910557012729157662278198232006879905805647450483535158862308449653320327150364728180593819231035412763861040569566910635037883213715497302313568451211378132401165494080770842287779706923090538114779964526408819536237849799075003967329786565806645638420994485481431720990932994679809277605640289771569106768761756731149798940217968874342084073470457541770536719737952557674934043861599858709567570763671291576704255198167955977562231117888271048736134952912300641092229206250854217596055121910223322874906595036337456555164029929806048688464454518893823683385720194011993113275919797872410533295098547911760105119151124546000556129427073928673539598047645592896107364113625120825348880223108036764522448533463059597223750342857323485463546901526547191615760770975307347873765754598502655657074630428139368116392538742159233995171557767880214319653704059968938202204271294377406506472475326152141226181530129179846103507519537358187601831240954410501539985815258622239912571584274455006056426780128374416422161835835048628318043032647839454155992667139920726710580518853709929114593759278111093851163129199126812663629675632774254451282071014231782369025952740611122062320720921715573650691615550737987477286478546775341547603030184413032986088601397242976583076877663670378123196629769525380963972572622416065999804237007839519307025998011090808746588403326316872261636873230284651516855183019935918912062341145235534467163003041809626671561402733589246391731112096662490832901325526651686928161837264435768780258501942549659953939739286683355655559633945892064398547943482946360177111449894469483446295448049978404055883201915782875911639221253382654385389954276994525748975596752361926242482900284476962080690183389592920231902684206064908965148373442227575832668320645151804596417726757158408232019819748431212210501584539065484448430546994403425458964450675265772134466398081410211324565876972372776762897272279244581277824976025124034421389346289894683242829399812802153580683636727416222209785948207438353270623539535950395302427039902618877943866495755122199934207518199319875885596667394586692344844353405130148786032925165379661397603772803708466938336932024536989496273415559129449379693755520818116287807387306345906925826815571568797854667618786767765827798154020554693948994942087413892927342508210029088888229778515575781013430463558971008193733894967528765208676669657342035691190198848896888773330951333967782470145155439676715167980917708385313290176420039734459985253705420859162867347510515848102593829030643321924537426701571687439853564323839755828787933542497502186024865545008849630406430277505664155933585338221383651181374524491752871616530084101050979119451630752888013836224199093233139665554512626194582776289748529410495976761924802124475538609576185950275619684949619145445651743648661491222607257677651101068526209324863994196204102652447401556515843742482568884386509473397557698595023349189583964121180026873262342300746822634623034903526674107885620359257886634369198423516005024891885078416969766046966695912512585410620296027223503143345976225118184212814248975809235998425322062454195712387754682049680699313024010112196238773237448276512801411569953343261511890650019989403527326421550137613323942982204685652365188720690934686517748956417215629727082073682295618131962093571339729605238089991385026332031866522158798081731571382438274104816436122265280244454125392401501294409658010200793123535222726621212805330018891974477100958017039348575187390079006447521879391721056767956739423021825268350315215874857916582010818636556046661854819603502496787592344021916540741117220415067119386163158421310731702468554387225407724258005826565759235511026302043198526437423352432407078912013089689284242472639089082814049115613954933145981593777389242347915491439071352876723927615906079895608301549008489147299751252039136427214279873027272838875384356828680064504086796919892751829239385792864536706032338559681715829446569575434348186742257197693491087779813872240253092303983020527180109195397660563234305376760337102153896201082877051919783514472939366677444375260476087663556663823499080649554808284164186298214057679869887313574096529264075079868144339158248040362456933132507955521058810500775688257267678313760313033805924757781982338339427802142050743633836787278935741687513782162594189469899215820409739065365586323027507171434596895536185929210936900582230076533931219134430820817313636127455382814000939863012913717601133747122967312121316045936069556448402955707794959514525080896867290546424854435904132675575171004755269154098937317831720667419084097790940636280156270555547933253677578400448925958888105327941456092663557467265272628107425784133243385630230569103683024546265981537952366162759048841420724364889056545692570837495507393109360930197377047100478972540440397954689854073710846584381043431602186507395191006390004291985144308872775614123692619148039167881279725694475236884435750601612502135359291360785140743366889073396355570513651432708786358456530223563517699037051538680341782091573995449439060415865677680725632742306079676131750242613841190426858795892319354433105246410466375083147859050127808446723547729433972725288352759438560357278416734063309567607833758609879418033937293650529457126375208074292341735304095423490045494597773688607742238470917580672400234487392046120747718071718606645421622280218179612307046606695544325534761512665217924807671082134690450823813718230229101357353407705577225283717588996949189105251011530496723775592407951605844541338096508295989804324998430493580272493543526269442509493471173331737237343450166700695147385801270958224165332702465828956360695445193386200883643544315130931072349670654243970319922818613918839381499110788985156506802514927212647030515540202360247085417664126662030478681321495817796908206087518790867734084638809481553830561198583806010333450694820189921902109832458432054329651887316323312820672389533813298063295539571669702356305496355458520868640357883007612829726978421146698034375429365261600764008271535173734764916937666636047703632666918622663347658402800632220649825838230720021556723821594855665505730193436437967389186022732340950222003280957977402379008690198769102771546809977596552888145380504165213839911079856345973099484379541722082627912617201595346828223780657061640178894017023350972807104595395238763930027092141805976297674809736706342242043042362256896404912902021455764525788103319916895123557621109185964349625283289601401884116593099090380435845620413026236206190322858906252215974197712091309618644099345699646600431697411042561065995441238516178518695774176469472486039898497633195612330781007419015703259311283087124699631858561496100914878326344572391068370039031884814724926693411305704282638704896310881981946239721677826734779165382741703643332174789020666360010452490730873987040810579816737238853910575764541672613822337968390200080767398533750196209821105948480557919549526499623066215907174285316649311619158685482248638952206951363109156260335668273021533184606812361550990958812344606801683517942645506011328418804832867825122543476603899446511124227894578109708615060837141938085666546411239294673776497784071522777056116988161030634322015782141777939817070832211531655198311008601769287531965163548415494601710834299837406331162398336716991180022794714545856873178012046952950408577949870968691633396462619983213361096705209558307070437321958104950758505687382028982707320004521220729763321993086402041670501520721561037271982723261596228918063234507383481994802128751314766170796767944822118290513606815518024873968869416508340228463956105961895368379026861702821189861115950455625889698757596858211555497711562652280807503561212853185882665122511688207693701660552430815695564904490629920041653366223113751589325925090318688700202114100941907011986970685926722696710691906644849191887042749131032565659851715926990745049612388132963685700305878334293901848015481191770252483489154909341440979736321655848117174390122099560235455482043948138343971773020985642047567373568233604376981973539038631509881947020941179612578415832625466479802737277510791044068970069127264975121180660590734099786912548672892298764833844286394503580330041980471682234483172963560840041218420870165167638988828224882566585674303520906577097029192858505933166870819752302004616329060345486956474773443240148978691090617323258640310887495577029591663474002733579204879251535536421181499759409607752309214416678603282626905821934810024785187366924661227701509739194728880664484976581762241071222635170234765448876410489888393484274430133115513297977040479891694142086633070895677679964405652244544588282187200819596733787429508194038507027342127327397355982049286861481496749159059832536748921606962797297031991865212188176308141604788780496456126392993513629784196158312433036502210056369124341470777218531210515783137832247418291293101916214565144074807888656484750651771126097754546624791269673525830147404344190620735763576140423670867961119742187647486836904264237553379599700528697994244716003909791124289104890989873995384037882966486823325402233397315089876967063614767667624986341391854289485391291813951040254200895977191472962901877527413093806366205543767371822395809823037057117417340270563228649993597553033618828830511982340868003404313165280656286387214118349705410155362679104974087176775407481682545024142589814213382432697848206780803590823272364501243612112520849235516017436809973274067328325569140821900299985667497834078770685510896633636795334466895167666048305058611391084889492826159165021968786514158398022281849334608366022909292812799402584958448124626029995263398291363068190550310963519167622596422186112170732778469446567758468295957840037044652845795013876153086683963345011123711093542930885630374820396853881549802424150757612650136883210437956823073118389355656683552885179691993867567834680707647746763109544157721120632721377909461020514155674768336445582309441359085627298840237776326036364186381943535024419005473917439986387713649476989177795057259521567321527897251290376465641451785108050420645069999074804292587424534684860567098231718715337172135834560199315630674658527363609373019648021481146867100156531376287452697733632932981379899474749508478954072993200761196687598873761721261759620585280578939491479366449668992885569231003729637723642412623839249215064383059957728164557657015583606432051807088174987522372931155674305258515431565189448156172075489418387928293437068832788305791297161963534155046088887010833313436564904319718118326473096809248836317087770138471884691924918109980755372450551766165408352859478163674664406603095112881065982393995753915564607611437878129605250845022479869626826016967172019017862293120674629180262031992613991727424907750005656027949451311712642855408535356618695893107471647838565529077104848690543986198035387448423478583400012534140796626082558885034382513363001597578791136005299277751144219888269829738246391442688707666018319038864899024533652427076790747763930160259797359512684684822627698393778521340264806739379760436875901242238683286091898068973208041491809556783363360276219193812648071280621639664103687965526908931364277214689159415801605655889361569668700048217362488924716703627069663278038464759552837673747884154213248573385926224266995245575743090889150401072055676157022983000184484118021392887101703710914600152333387572062234194322347193315993906447391439144638133270331293486412029497761461536298552120358452793186995576289049746955370191084900489717246708960751293319239203626706030297899624900230053473494359993188235986201003613236158013986477019740133341314917878258676209163350141820615259764086086205863980792991767940990230770394654237831003276688103130841149405526522190944922747007468786639823445466881989423499538234509682058817434360015795209762335077463784038944217332231826428296617677453992142483619082281644714580179317278511766484243992757561588630482886175181127217730911221398176274350876941353423292755602849973069829555295033771235913511959479314066753557369412434829859778036876375178155626055642944982550840380780615304672255101676699210497810370274757851827271399082462664717558293300338024452913369011291485286533496450442673803796380753404808681425181428721409920738886289168106963257575999958329415804603534187136846394335361095809267794222661360917831874216685832057804343746289667759924268091840243134607254766783609732581610393313466872279434067892361523606880747059143717702463648191343821550107492327283626991732383761383690224250804997268753659823804771786695715225213967543029439501291832674606753777149499786967046862507460930267993004296432797322876566385757077749971299423559752974042576474135986770920774219168509087827714081121652690447056297660846904639089130780505484496716684925661307538461023145045094948512721056258035141491788129457805970425484839551007018503888520977377663557730811159121250236811201070256452236286057014791489406837492157060128828420141829452815170922598906590269381866905454141481660324245744433604540475571262599268032510356836847426593791509224794162339400800841785511435645682101543083428189219615851251031231538810825096102297408036915347381589918538888222664024463265741270198509846959781713670162874909538001359553950226997217122311353419982518510178958831154470638629710872938020587031613742281199187063794490821374596919774919548275067236435899752015919419844908423558175207467926196331492364552172771747408058468190820837410684532821395678270175004959394624777344797434898408541380826858441570318921724358096108198744530686809131268811951145535870283826971421295037710047814439511735958856846112016263412034979178144390266370193042862003051502573561708439186659668347435732098637455656269792381275055437742360129740731200083930580649237109820092689528697468463711242369526557290959985085162364610753067320652212211794998848379997970671889022473659011061764854922313108053301088826440516949559965253879540524807764797231931925036101207572511908221723123052223635183142152830965166265275821435201658035417106003989717484345594969174707518302294808993393895158242607173938324390541116320559920701253988663949939210023672228260344623905110959214945635668893474618629504419043580542906262087211067036474797664326518237248143390085186875910952006048134447076258473274295908917746776330623145102082202120148964380101702919347674351147930190322281357575179791135375036873391214588170178210607885063602892302617450833723876661799092012005460175532190764156095990626516380915785674066146987598599524886813415998873457367272556593108654933642600923402375584121081190480730975050729062522023791930339953805233590517779790564097052465656201917771390455046725696612900491992654367681515825299348821471242943344472456169012318866349847362922308220042863533371987584384661191582494733158750190997193901533683142232028603919419442719142631960224282952190428346782727440144530786862719021056196023608826634432988688408461935645902063925452611266657345550037047955705496416572661866349117290919685120146232539439269208486402760485458677455256140958346682575689405568160034977856606906990070546091270918970312235548722293726516083753096208455021064082089429804709805616446130960438398949985349324852288582930254929114149611347993448169959681853990391054554576978996497371046755046044103587390757772434385980091572778205763462545231450605108449275972690426247318911084085526278444512553881975424786012298905803398904012864917860683949576673879690213154571960463425521168133824024136659780547713649330950362126615895218816323078299722565152803939351515428963520672819127361348244820454864711897620450058616589946205375042203013794115054970359517492955447891884930417411252466991915191763825903022669232024052887088761523397633987398486969177609906381999816438127471222224902139358306573316523452524238773626549646414230380163499513042319849084395076159306875349905953530988431264607551688885570310179994096566282117403389672571031630080176857615248548755845354884970695681707338107038964433897395287595540047866521855143858271612389472261836363765380619787581904551480814174516214433165445506360315585553167243819617751992735729888040170683240533035895000292221333089276343696984544624768118813763291455206660067836254457844261510783725056090347963768781321128479239997106115298576572459277405286307167230771856525202017175732574901913085237117815347789423705415101223519205316545956829445727554796745748456734736228039342697277269538584967384053629806307707100090197452903984293106727108776039554841712788296089830544065662548411170700680235530815026966572562416941577422450747926454700598847800945383295202243071045231840043553022350810586668468471228436230486937110502811244371133514255496764183254749566988239014217654073041281321435055582425929212562742397829173905871839683553157886702977649094192610982712187859738012431177801571093129261247505026898733682773955947442923290730213296009651899973886581958335473627306573615707631875447208972599409938754236253564357264854764711163501038930129308639834821487113635861371748608080750790706674531642564575131979835314751190870684606141587563883063743268486522801616323446786192840008509398762975053496835601867102397703467072668174172773791600187659073664173817394362906028091983266382603873949952391363879786328455404110119005140462896883403002003458626497654288715313501324051266758657077283518677621671151394965901800720417893796910468736724110956462772519727047352702103757752835903561790227446603016036209932401049691092417099027852735151771567410782720327870111355067352154417490646694417325108818438216203378842609747913495398792153074040083832559933783322226285041339060773470231933683064881691492035673861607476262062679108825008175188099553835743887112716256542779199785940297607428998042971243542933849697200046329724031248853522702767147921134943448467341701935652919296610652237095784892817913253552654614605538850817986716860496934953904888800146864947686117282563891913271947794948531727632733596938779138851573761754610607705973533545925963005136392372366286745199169142784640902632434660971701737439582560905720267310307721251246388415536161018441138553399927158896646804591603971992789672265235684893618085096816556966516525856276995735917345989955808418172367772442621953257899834741429181813327544681900385581633238121520737491788997861702845243046267276204586995983937016715432206596654543846478669381552965119955194501633214819884121980385069963678552566877305919332591412219764814386963760221280613140891167621363884777421435661966175430085464944441240067829034733918856200670032779949744649112138481841474094766275147064050086525392855793802698133219399746622076111292829178198203404836149184165251846988620115857087555047398689795921978314383589890063017445675743597804972197160650274192975160498349095263103666000029399946785339261566426726876512280056614970145371231596147117128531705905020254002973794773524827154196941559840239424489017157658220597381036068655872543394709704768195380374162749011142121574832505837013589109820548248185492527357480693734300424811140071000669014896459502272182737904115808691066754408467435592489816435198970771838146191518078473967336424491283075371021280727892955608050878326821302654667755262886682424175916169984096383935066404097763184456806428114791011198836757354393498617660251836621932822942324859241791692410683678647986275994145928790221764051330969002152487885410437987273752691055069763021644413898910351146446081779433979262783325395568946175108357089858732248934534726335643405571568852249000731908060712128394333596950236055595315313546901506569323067894428860751029533892855096380426563519941876666175375776070590918273358180597731834933693005548959384617254086100818503167150014464403063096139247210627160325735372402922569276094185004051403641487148688843731688875614716172729577867906752798621007081756129627161179440906019320592387705352167001195630412667860461408748494129417815290520201336179831216060394489742040836016544374006460805664506948512844776235648209603131550489154209504669137084462852644833763455622815515780410188165348612446972457746856793804362234203441310023129694627325817112920801192186521526500707005171069717778520288437804008927681496226660464892852202639933512457257392279652272844343143699926975916602331891461883504478409406574496046057096093317882143747403575761098739809990754747967681618947405098077995500127320444946486470350202506688874990787710461679634395837097869769839522611662268183753203772648540154298203166730076500548460111964397462582596089901510746000642615673102808133304488297833966550075467696323967383161174677443952389777619124790753855103047557422822133261407449500173336915213003672766350233406888192141584888012241506120059184978783696850300439503778913121451607207996220475193610561597298907997465313163944202364940982426930713838340991387851936987922483698498479394413508966177093932106778250679285572913898362191278074431123786164061106081120711913839261451875948456111257459517449469623790627445682994630396388647077907742194067458181592580523870054895980725173032185688913654425312091425924842626847183285202190509655398581616967175045459018102724451124430192585085302188928943643811396934190734161898691000556073484140664828955496512127798462500758067367364070497176255580752864805398962172636154682230204419541840589935660032180531464571834674616764707323304247802144347117933550595427935326293355794546660912089817600650522374157889136726971167092160854110702966423028533229908498775934520926530024905980831475241086174649224843208191355428815243699311077162702313635568168450705186055448279937785245603880398168900120998144891664408777023813828653859181373283899560529121511875716271433438829907719031949471871716855802033366034875322718679402033771291602663268304092986097354985140354894927102478729771157406609619354386707910267639758395252822012079494967059867897981072418976802099428095289948714380832367875531001412287821266935253479152724037985786721012324402710823307174221199788926401335553622395990689528372455259652207777342225974618400373255299448741696891393500992789447533812175353457603546914992112548609569329580481973426338801418121057060484401055429491116612437606874273058541451429745742606904178268719236977806827571106297328876255341476041914198461610137434414361754285680167745065236585923883244459536383348516364357898179120560060159490226497587944451231398783702601975934633488093191384782307326030771663531951779615581101827917364272312116227921412402195966786509908405384700599852109918306549451058126916680819017870229310762420471501730137443430032577390541798649331291754827319971876713751727904966487694215693723399267292587336309464471354597796119410817292377760008335082497898962188955525817839611988592094666676059338659294089170870044171539399483223799577375357320530526036853717653656232061703496487119865098785338399727137485517930463314086478801968993190062269656311402887780011158716621649683159985480078808328633059268466154240143514744843567370273664316834345783645660773132064646865969593143397739600704069714499269567726340574636966197912174754856267658625289071899030006510944632854862738680721313701607502590638669026777210131082457383468680782689784685568189599479654633929992474375430075101197199582229100799245937433846379752761722109770268124006282332612348963372078177235729670864554564147158004218683474477637436238377576382276733706181431999360765900901164242580169474354565755885256201007497439030499198869797152863972601498007254954354189186189699427486212360235153170785461193525440655842830848666996938314028456676978115914044902437583785491795026929972801981851250002473055073710046971592084747574675999164642666200716022270695306613671124424202815975241578801854695147019996759722958377618968767221615947149804989354636627918856347657474777269332238221362336206270509405716056679428938685280082523224077300484426537349103827882126796577366086412391754398609040695739326515701197699364570918143058254438891776894518081365822341594168158488694107911223934923957232275649917362699155436271766970515590962685720086555103559611875077548661328556057180343388308722460184213115729482496617575083296842319120855030736922598617387266516383335628497426003497235015167777334585965894109072215544898321647559266120937143740663819910646836120621689531944122695009122052890086636144004055872133219856105564151507652203097005733958250510803712120462289563891432824041863299981114281213132835205679265170113333858914389015230145529617388876510705672704110455210156670843886294512851274237777593226389408587213176936501656194747712333792738197995278652677906022364301349623707126251549284015136051131649174321588729772993842718040640752393382457193174912408146886085591802770254274473485178077778570318763572563068825794668249350416596549130647369766948370597083109802649199395618408582896260294061718538053796997826068255772191861108308035102432870851184209097098868918089993806514212230728666727683678575185597782178862557397275448102370637069056443539852570870578815936434747632918334611113314039074409454826499788787688827752080835222266500769837139442869990082649749215801784696562139533959159505366963737006356231460929550644166299577698664228109081810002774020101705921899405808392071884902963848338893244995470468005348661089304361064784943584683823209481966461073826189763165977720865289540350160397066816168458890540540063579478598263691851585876284330764396677899936618267701656018540539944163651794413099529567188948609995720796701379974679742395674425976535564099024183207290900417639127374002802500636703008260841686547799383900865949421720464923846706670465059236391138388583430713034427620537554885886812962671442307094606069906707952991782162856364335108083345221815419694952867423471674402702880755272256562689063897533571166513093080392764542531988345797780025277011483788967467742626764937854310440007877783419782192476085087944562582777773821231648502168968644128104122843650171719986793548790844092018569824623896074349612979775461253361105294480079268687488818109682315060916861151536395717687110838745787726826221516510331523705085253913888904195368425177276933729223099664899395614793415302204452311598064698655802838675487690958941631595020543446755520979218543409552331417433733174231843223610758727436424745571417465639440850066231928034574305099560043157822029881607396068201357536821020306743336562281831151244441316366889942070236571074676417981769911917882095325521746560361882228390216072758586415855288225893772503098384749465383487244094518149443126061021001594301009450134189246006310914598214033310826841615608802928195889626441429195263771104451419883361230668438358549252608371954930030699267196903449364358622461488651786828282746709819558051667124302021965733124577046382096181946776470927145840774709744864060008933887634785887533290135122823577131966090390620676579719338651164952309234736837564172635308264721160705310076447791122715633326167723982261631036492111511470357912668482856203005848269262291111696437498967579351461913599250982359434768465292356526807909462986649087102130923683267797484034788053642331028079035415867167932710760235357588967280624703080382281242725034271087210265032799016090683688856498412708747298332715481030732213675201671633218546109572455981717365156012551837938291815984085922872608102805747430330262172299880668590018816720337503416191295792406403622626030728282896465948171758928880189834895853847443334686816791931436195950622620219485320115042948385677967128064113222206361249239464253521760994103055548968837960176307990478025296328350238127510260809071528127322776481697513396552317358641100518964488314297965210723263488372452998513525249417154046110225445693697849875020041198930765842965180236528854538027838596882626354189649009251779830405614454742396756583693937068634450612047011173477010926166862761454013954318660492793287320880331603511042329381898224014832275364028269756147981240597032420103095986919127995448925528742714837429911194807623840669905609964339220951498567780259200303193916816589355208807289435094870737320967592403152397167159077568577331251079516381387948483964524980166930811253298066438971277817161245348259818615604894847217621388463337507092466041883456741476127973159810665783548303972437886440487794967150773231177216928396480744823572875820964077174516852806284380701768039059323400863066238343937859122621885499772652335257311170200148001251713007117587262775175286605881894919061970824523707905291387479146381036066123788564489276565978608842755522856070163786386502546584605284812900612532625850665017687702541733039573946682757260297387231756201569907865054714992560342100101821978993471950110826752693556907780631160428740195273727656578197012078307965735862440554679187965115155613747782337999481658476409291186194380870558804189446605400039747324033300972778996213534986853985035916086500431399150085071785969492684992862293730973193507797855295051193929301188469231085479864419641699968819164863615575909197660596796497282225359882852111624144233485282756250117868249230229076944083131648970563807553661480780902816552695503341280609455595130080010639374767701671979562629115847483479866046202088911959255450438436209399818307090968856314420514706745440399664956110929034278678494105198715654248502576642699751384595338913087289244516671423435918050946831818068382436821678401327277845726076314806951577933462502105421482799028130564217050320261554317545894013102799992375082231101836448100754808551128497255066827322978016082093886232730452953559518599862189712448852911647630082121316195044746689995059283803157380427929988778820637390765560616908101137360757561510164929485786551016048889242274839238088875396615748750429182042687882829207681719856205176993685364809490299263509738201628566636149659926960862665789827684100484270605269095661797394129152081515677937331604764128332236081211075795706061322300166389407361633960538134211343688941593380865764197024770767481720958629129005255125527123514518087409003516311199914775191298688442067933798614203248184672557059013606734794486848925957230500870821420348727864279345458749270554509567192817920050646802456050188256918335231399445239989019543522402318567296406853217384738189713589546520543405616898606595495819106898694631290170641165425760775546386910322749496099811335278147215409797515727787793881677776479288675509950040088507163275492046280693246175738389371976458659997941597032826988737407930935325308447837820660924929229323773454247987719640089015674708948598678671583187084360232295697342898459269526396822238160901511653215499460279788643402649394652155126180551136526325694623709468528617753626483388205412897009489900052743955234895116255302610460348339798867495944486745331901787748268678316743400859119185857564477150975121464258474679322090166044831605173944811466111557736716613758049147325716826157229073852602435815911622060145820819698744446472944318524805567180574403148955330983586906593813802837832380742404747124765495017963578813493106799847715803677641880529330026706454924787582981300786278793517368936478733789844007962123788255550025917591160061561329945263161891286001199273318153564498240756763532767120749495647854522359642795961405705681602165974883135184926690252882882625695938624895834184457147602349663353143538419603951071767692974558862558022041937730715954359418937481187278286551219216885118912051631149486518670463163743577922723131472502310208076481423663007648757130027707078184710338647675547779857644709423488730301178024038075562527057612669640482818966264962046694255981134243613776380582570249874589983645766957334050094335474692297448589625009089045348230272669926243168444362045987559796850046286181431636385238321075117016842295690350033869354728503823001545851118584425324830698746331722911640261668465422194782058986942783985077427244648745486442878568960251944486640948123905570702754982706903298808647200624819576442905000836654069078844758791965619439419983124742336644294476644894924917561821866195600646590940081839628329716335873101125180197594194676471275727223165908325150498881352536190479617423657469056570452026525963693838864738354909812040458683591732541514947704199498542887291844153595542500201979313222365349685303036663339277484797845714538342346712192190707960704762717061577082382112478331660605011015594283153517493325039375481878352125138439376072250193748392523669721213736602618419606364269539591465701356415871066263869107766774259736438778272269599166184969104722951319693713267070850433306186382415213527601208783765466155537302119041948485259409284581859328274879467685515681814387372088183138656742388884097000234585305217363993816072080900782154234635574421141310173371014146378189499950500306867293221487207374292824416601135709723537361557013987091710059518828352727785069482969480585044093742203150877119565725539010181056049441077624387518715291900579934453296308269321271451182270125667219408130309862033985263432605296766276862184002306757539224294822998529125923314720815752929538017985300064672131036458476381415747367186924422298797020113226390641295965818611440664452338840813898975268159827447824803840041701814436064018570937524414229022225784833629405350817454052343043397189154354237585359299075821910912960069263127399612162813244010095691467627361773639697519777340521205845124826290051603292096011150712298371618547049175189053547051723586376738453395120620273327649664138807018170753648220679678117054006097177574720551061591563750220684872256339963404266294443653067797131681019208093347803941043009170764763844955579803472685913626278827946733716812959648072878481507237054878214374540927300052895142362536874664871797943074761471607069031644289059499005043034774879262982750339280338864661486579640450007440888351945018388418330030358216026858127153689433662695132155128764897613502442094994248729523588422128655389423039329141748941840479739327436502551574195678665471072510987391201444014409425037753284920177251258144761782696889105943039712266411722438729381135309505138155341415995823260977628227374518895871538062837818821098083490494978194461853564007993169530738808506918564340163671237194190322175204346193878230002243666561532149760512153492460036458072859069406188743743387689378536203068943299753348313624753710814330605761235216836106787519731166459980464032517992509438456636168017564681205311120947561396725716426042552022030906380604299517710484036790856385006982373410184845079730749131118528490132310931510280780530664300476654969244195396974935969565151063351372380550839082064971045441924669318086722811242652441952825714192089178087329571454018900813848358159119765429258013636448989315482980058345229893818097417655796195060007959306831105529964829357536147242464563821472717678318786963333281178137232810309323581598291992115005309454513683082780177894274415947721368171335337153253983637337061827203599692634180399102110355809924915472573129951287003058007151764600549861792350730862541449688504621843477765951244358967640203479280613629983050701541484545599265796585352456299374927345878688158604523657316565841262790451043472048988112823266646613174429287479306209861294713853882355445004301654298067591870464582182493270736105830600917954612751295867140114683453032984462845728537139236673971837560443097038010967527631152803050376940712762811606230544597051627606247516544333389358555932792395850425733252451673195158582888378836521839167285956960442957897511262175291597604479257544900706873669818835624166401895519731736644836537848799184873896746934397132253420973671378195805654299342259819214035029993224147440630855380990793808710863380744120120764779361852077768833421640993179928430159337862172147334475266005076216156385451582470817251354615442586795750524529464903359946148350417949925651466036865530010959006831643922367429132304895888226244570240782849136657915138382104989744116556744801055038706979799216670628237400570180298585909418921087950954320798259313380550471056409646058631948221655165012250233755012636595387223384657849363606085466106420347424083702810033785080691713877972065267660110839744424716242149842323689349589944876177759369575395691170893014532878131883271195227579996805772844085230161852340447872377231541323728489426216650632983422839196197833293510613172504138912400980318882375148257926488084397557369793368712067161065693989304298817285221768782879284518095831779018272410734121713849355943255546123555317579886853307170659559672693732751822663056126839842259822969372398229060371228168116854283114733468999491076472925330411558963645629048549885280240822405217800521673789451663284260029102488714562072962982353118986552637146231155780491160675377750239069989551970462606368704332624862567088304735260468999188945075019732316867917822819814773629671500110114596720288352458484230454165544518398538435992045006794158418071830055555565149837551056319711868071271585023332614659872888907470779643537589126672029135355927516464315624745459034381233369838850966059288161184111111961037636851289114271782429520970470548591706478366692540579690537569970260613347285803272150866003194430308669068307415503880482760049568865112589109292093425607222477986998144943571442104862718251264895532462205762688596660573185593572774768887322756828281175015541024351616649898018559538195502926148102372600407689818304175421457147306848283158357670715443183626062182223025114224757582574923955047550144256281543357847557108429034826530050752089522152337017739291085959846824733796927464339498053006467347224290747254507636347652599203772696965022586361826211025417822852875760357851937305862838502907190569772634947816452976002593005310159752958224828300085265774182230906648913480356967799276894773199921074427962419717300104359268881335754616019339787348219767982911492580441772701212251352193624591460699231614897322478240977859464667673809546611938608222447497476885242236543613380301414040348108325234978397107195847790829331504351438606136399845613360553335526214190078764124775719450624634603745181988422634234342053949663515953067232263390246082281916850795964130631088148818866108678868724012221443847991893355451094086444926077665058315491346752129712339084055427668766212155751081728994310306300159323013545322159005308139626110764629554132499612257776692847323347993567432633478023961873344798914435274952198861141744621639993302040425195179441696713912070584844178485083245726358329939118974672222957337454810495211120049646779025361396741145014412841398875567147931004234256438784024114754057356816274624400347908718410956421471483008878481823161489206964540497791511626995570777130124978228312534346524509182611143278793840944483207498387629318858275431124705536765330708840608812701190548165323712062450483292695967388896963439047751405508884387811544119107624453548109320727487085818887762039841007454852863915471482113754524782913087466867782580496531614124445455113938845763538574521017658722510037212610214513482675629619304715896140615619559848016626116016752599712692040675183674251117384117305546868755249252746770638043964591728005024909261647480953402747803036703309479652461632492026313321587164543129529643572998346611756169296671565888911031091222034996949897068823223202812652237030706780312091578112277448501725771769103513537455065422100688805221516621532263599291688266251783518253556459023255133027295763139991210248983330658995075304193279777457958823494177356546977734113165668421389770376424392827177592911095189055095566432085083731259056718028611833140797346876793880375342822625664242706524933209012032219333668080494693144151762235203379352887486451093449750728627732950035958260461461892900604292805225724499738049658479471161770950381724360913490163143967518267303913839839910603255930707390877629789737411661868435505304874268026347319141354518007316048930053016385369157235891941321588459932240077270680429293173287983588470049101806516385762174451220034334352046146157240604496160310724497046185385658294841485613215074860122408142551323769947288342697158111351563172396356231015019717618322548452341922221327008224671475761258469872893249683963299953011900165230131278112128169313382689613731507565718307885830427120622993401987913517294770281320100411894903291546375169365110173291091658151636713611528985929271972319444231363117797515247944141470042670950420513158726356301347772906117285579940076633877470235202568759009210238852086527660817930870869675219020246161753538866271434668956610487788910396783243482580695748065080919291688871488582387633321778191889702502632382055124033991220207005147662298881487394728930374846677211887712902906937176710656825729845345803348717843427614420321801726085763571631661315685958735838901071645029606310463645730158049650656168897780017226895598256138135912569751111555735825028912196849645043720699125758611215430023782465197645765308691256911727375896098179986304571473202798675559556753847410522898570882147369123492364211674425478437537362333267767960805994656009100140336522467997662330721138490933094263596507272462080481145961869638229919835060211789448729669811546176439178206639268516775913431208304480178101322306639922771368616683877904364787465898267150768908744236577076419469787436376822130824031016983315132910113960905032914233878568403840480132053953102159053220597461601701255841279923517079859618498324472341947447157229289373422288418685703736885801192531157438832853858235160043223420514164924057167871789060842467284266017842941718073724642399633467629690457986768692696936063742618845434058777655903509045625608070204211263904838912886640588453217807201949046308895594479079202713432727065581134670049004635330905816484183143703122767767370547664462606833625148628886776239346661757766211736471272054516772893625913652986517568363473693877218393721485101879251708604111091189864276595975819821790521128249398612371557374805453105771058425463718230792314052193509759153091680130972720223794880310037662279769158233645520656473656550979755849656311796032141798104634144234573872316801531883372082087174719278179346963634401396516260610150121411956701918041661792433098873898907687343361618893951125080178988951630474870893269677191046590087006308323425553198217469617300377933521285788985316952179972047937189100273482837660874525236654404909877876148381472867449605225122553623802612438390336135924611357344681802361892065004806373708684999647799303465036000257776332267778936597535983252537864623474927498404078658616134515240191558629969453198919151903506137756220078199173227704408443077635707271020167577970913066064698121303489291751607747429626909877037745520917548484641987998986455335646392635673139647237003825536057639415196714478513424303984040556044501816462847902877128186884120169463978517198179764903228290517764201364908436593082718469350580429709042114797284069704599423894043589342648658513682275351872586427156512691818908509354149944190097410087075494946975408247531459836670885874342478285405693539969498077507195118494971723888993808814105743849982486772732792665265460679912840714947515729861755912991002416538966365897091236820491274847836063994889299233779076303393972578419396371637945358608004554075705145454978965517319431832299999192243410851714490223518845175128201232926962016433986344391275484653207829662269948785746946621566910780434434136560053690422788243182865145460082681871243369171005109496643949305276082210202807027076597004829702297131498871298148229346760879557149604252899133005071947569235356320353178643792696609182355876859918643750761977607259906948730372832062842790226666189127292594630926550830372729128995098824453595362294808649697394855064115114896698972940043798726325849803735920628682847576927969602497336897613441836020654441364955737990463960706663571022811341880645506008650851702963923862496249630321942756347931179720385491110465919171940923455395349399085317623944162512459890388873132511246245265719234750198372502171563371245611409638412520613422516589927669144093527019675165237726739893119277934791637900176888983763145135126233063344337136459839646554710120749987927795852204040404905181009051178754990529305167119153001202267286940247432948749297230741118555870984416280980832555532427266634746338326360707204468350992093273980693193944669462224693610915478855819521787480549041627814790872173574387731919592329815658884826273484260431380141665966394270043871551468531886276020076099233779002345903476112074410062347930897906347058078625490205466319832004435979582454287264060319317319834132363339295642461375650728626007699237963388979649123552914098374065909231115049307134041055644636492050698611127738172508060798277782650061929385680097035943967524240916308491194073199455764267856248690173657905297181496220596765577379232175439733083112531276759481973596983126346903246088010172688738948354693789929949091499180777205170167607192966635449534023995973228399588793693773328799158275241487356660258482633577965228466098475187129446479380125241449862111462921572382120636225336121343368131856685157520921425769264809743620388040100340239941646602536716120662894544228376626044968838297917376691892566051872189405141441822489194515384919386354179928927080751250985838287048532454244498237461961834188881540960326061368196491975110856017858704761317381159363136395120784852312442153447302528529014385794800383487672520424843105239901802142532013486137172707026259566819242188537327595159090961067568097708596982487952979230328908183767352125396382026706444895044482730921318852216620778481618756286575825176969118563608048273307106708669153160565651696380903825155883114654361496675364209412169827714778931001566121520692351831502895275444647965158704292728539443870574818834272948447600145613173449736517796660470637291458254095258830177457716585606078152027659480986371258881157733281260371038579443524420425285110217748857594382104711315686609284504622318684821322781438754852916445967039013163636289519398010604809848394784635004031706034342728504533349159891342128249136095128150907831197316007712646082701879267014535049697306101590210972515533740111843624443974625542836444747024513539889390448977561511606932085625105881662296351417699186397917078746521865231195534465692357019842766820120287488492485451400212845845165743250807873922309900098814188316372412577939896690323520518905217865221824881370173683530811452519481727159754394763255099999815729424878234171686870687809095878493301013353221115553247662247292540304458663502547155288091854147136971035169444839167609819558853364757959102847036908336025718422418336685379095578135986816083082081331253460744879177657961335356300319485712579843446050958064704795764082779637711303379763716781915572420227891137219022544176225875887487152687960683860377170226431342346418244597159594752344364490287623572805621886199052179457014491091550315725657388746032452569380679834123996460401028769378436045902813098518761605389659125553362203908277426938860544028498065217349585106979425275446320836378066125011188680105918198900361847947635125060080504439674423242310706315396560980618885429990118005145123567856705891943981858811672348264519758592040249506039034196008203123784838495115651425041905336501219924954973456987804993471188811747304426416000013341526117910837841753536784514380377346391505159769888229673583870244009614715293903146984530843446839866425089424196796431890864464407215487766456832025824540676525013617492009103577634490176192906714387853934178657790572260942510554723545151990236961090410319490807542290746802553196639561306437756040849520622796509294410123331919060688450889855296190797599373962229571990746033035952010936732268852410843605512442303265464054619523913901536580818886137358913128030330848362728301170708148104674607057820233705756345453028449358172867673295337143430712240863921181882295429565236857342873188769112316444574046646185509475355047589865716547875890745094983932319446531343356955174955985349562369788527191934834730266664912337995033448686626767057105411353567007035063859388388203969939876099816376642318347794124817850160868556602148159354116617746966625994695717590530841894086802159725250247869120369608260566227009451234863890820322584099844709673509069762448695826545796838599556854270372378128215733074914279024023230350280063765616683677943940852881308998375905582934985540864003126515876459062208395497978411821725733679225708849599947452326172542945704763898840996550702922743015975535309670826409225787798667355441464054124678197968455476677305131862291224742063559602951203922373689791109943974158328586342497254003501998929137898139369741853119318878413550715180971044647124700681271737132774190696032039009258229023965877295829266887067627779818516675631664879391114717882525475495780490288153794881536830476435170783887752504565732252510944808480408823418511840160410139066883804321806487439969729131774931954941106081932938148323151832514547673856694142751592762417675873946982862246998813175402964189614457562552945016580026188307005852902105364403377318485777346724420961577483336302550492675020714560626742570021013927947588769586884994596225108221748655659346015626975691427983288557006175062868355554583229433843898534523303169442942324485452914621406378226248160468006733137708259595553225188345598945672785510602566985743974876606228370177740188108329869589728685346354006027047717145370892593358167259276926015506846999570854615575270129900271841008280594523078641672659246672741840575753086829471633183448209596424607333907010506949170378365916173100853523822068682319685315089578624166026793737642901225956211208938404660797844373932780260186464264626035177759108311076339397497567525209926465692544221528843459006568316561617761939468164751793676273900919803826465376291289405764433895889361171978034908360431135071886568763492313768162643766862370174950849087712363076250898622439975038297331722164382454273636548716925508686861759594147954743190224209566445019159398227408259103589834304938049086320475968549788770615737584065594504190212193481783546527232712886872791450091165889133913815407099803681159828756584964309613897472068169413561286013435864909432160054929691679212410417195094254253308142950613882198014585632232288226817148591211932414697275819147659887538558329522230615005772749678082582808897385561565806120036953318162876496993812210729147517325533926474383960401623797099057679781021809297671803078959419894959601608474915966564036606359563303794388648420631028597925678197754598223478965137295683718528015177048907948508622115893627945057782539404978234476685907847273749053419604689597428597439548820822703474843640117175216366542807407520519634687443541023366935305169740244481889635358673623398732578772343409417807315074217235225346612777363659144175390957966213348833103780157788103477359304306992487521162846465700062157786517534786270783620721117067390747238314983926389199911136691725587759284788889526889938623509045535683431391700993042278956562497372992192614228314520979833918682009205595603611683113203575497615080273698188007819880841628100618578744557403799813156658289815135090360404335885674766801654968595652442253934666725600439677200200744762435971634216869213298587092536736639126982825248631579358449490623087860724713693391335164163131091129258345160027499345753453316268909515156689560625734673576513099821343629016283339118678682316603854769315347213400136782498790941435827125009545191751181827176587261934621035117983722485328851514672490638210340404856817914439832831980268840906028421694066331800709306128582292815968701031319215349044483799885473013423338533720020883889068776479157239302031548585503509833952539886584019376901459087768476888599047677662367651308928130190299243261693063017847466097615091333678519564460001082834723062085688001935225420890144703264665320467236212971067919293609427164707096578743027289352020398107424415699175234495973696918675971772801418215699609130776451003128702910352117398130517428032518255953085471797094150874099571672508289909954161709689517050022922410730037723549379097023714463372660072648539468195245791741379454608850276209184413857522081268810691705591020778943065121762497795882676916454557274989708406147948322420108375052712170609236085824116216799051472363423688337991819959629384274174652235643708447304421817995966238184304543779704039698490039433218720163831210354402908384559980119453255296664948897932813232994618072081103857914274150117875785501131732455136188603281789742312983571805534649074785605063784133111278149771895276438194318311550585534759571687347008926321222716875646862360445903530896401840792111209357714248455297339443064906397136708338694994450212257315546682168132295859269300288550336754599362066554029110720317308354869157014068324633841300526519784241889275344229220506139795850477537092020829498051524753665013758841116414167962790127720363650382074091614959896603897642544588893855629426270463275022110941162254982653994927649932582207804666074807384353032895684523182736887042796373638657849848301703433205107426472855135298150341418942623724159590709811837522795279979570654855558942110299734138426888256977405152742775356644625892802085856836795308347880888798734785215916648050565232141365575447147441850427631339657726676328858144824276441102607104586037086411193337094886434382565308784034209246166487007674903668600124204678819258160884683834033059396178984308277934136723835564391182047243049582721389667918637534960943315487300206239411536852090013006869726963969834078400859404986821378013297296329285925605016529394364130509302933468950083195110852478428580322507657231723129577803264773020528263932840168652529833389735385390214251889568941400427406633765619511454396969857339719016420313869903883885776993260877075959164953333591585041206763103123788649165536842504474174366657401606501486498982586376054316650093532121310979577220568979303103482127210369072431434037620887458263098897271901387049877481920505204289561522349381250134308239405978718745019630860351489213646574173451712683264856897135850738464839979524299939624440843681198068429431979294203100074540491999015696767265658294974850120818124895470571098770673963500154732060750892392524221718620570264915265437592255752372096666570080109046745709191181992571685931883741669263333163692174620015065259196850625327101325521620952266956508209877865958290146004045824331003065016256277551079857703306900293844723717977241014464217047086512105545927979276400954707046430861871932826970295000141960590230766983958153215638907572739123505115360152546935523318429209722509476577801160635684593321032398041797926642531818953779090277500561786108373211092305415990396891470344327098880461094984241358599768385291248317600970670126136087489917628900452162619415466876690453071399584893993730564707332974784172543424000127201646806823689223390639327176422707034073300554823536114681277439867976774754019795315474282344765535975445953916836100319478933470101118753325400947445429114966079194710680262614840247053179954267995612378138112076055439641359377815828197647460381802910088753280779305692544886570367012964823493205669718711080712057697919542656294538269094202948830241386398090454665161728979061317078264156927093089423271612420399006716466718114516505149598133467117070522935500836791915246663657927041745521855967956917981452577169934576406568440314770683934822877040270297304108186066933927017582435524775789302304580790248452519758426902349085636161178782872913143302850702065597087096396934732731303780134985213103997082432766507320998667627764251748873503248949882174710087715390938069177127159060123134986880495104111729612990634842903340259028898628404650284177813314811391836487461827145529837437155698058154085082303466693421180457542516055343883582669275112426224470361246576457492796883374308882087780460304348399896423279888809350315937722213611541195407931898066390254735843909200840125711871829859873054375769661167099289066558816892650852143025800220418818512549405417079757589760386910471843205491327283191014426975797801108420897655748852766486250885560635469802502875074719849368786895342956864947430595889164239432359263726397341789320101844137886121426777166803648682420556757746314702735999771870466483048321846907058998369733666449326202961562792657210798840592015100463819995987012453440353015784642681160961474867036812077283958113400133926975661680022518632864332878894743979033000613755802875056492481157775585279805309838408436728992193546860185586081220782323840291201170902343149791093725272066810006742786452850804182411067835255613174426996974962227811168958003729141948101497196695428119692892738167481490431051709052097919460147839929674278506777933766411772324981606547884272358976860171548937149885313693483864417466077513392676101520231670256575629698929633440318747444287739806375611941001575310758851059685818097192275330794041745712042063364854098691444246194188730747508109276677736027663040337505994217469590261507585668129217660193649481539762844240889453713226455944780139201938949228607209455147099814264557985408810945120525956752259381027745610883671130521811117993026450748477990758917214176084917918031973826598118699943931736718613997175863855049780963764634282289177347557077879623668832506161240629479067816772876900772688195082292463494247602910511306000240379612597824463054296345967399856222649668392723413862549792392271426416706054507960157352553029757293718799532132558082028509148153879388435974426158894811704036142804814704201145146811237619221115048060660557179912465463861642459920557373056781155699079511390865570824179112746105959724075882260294669988274387604464162122843971649873772702917242250259148442979081799909477442802098683869856850773009021317884835064801469728082423936379647819974664820692712848612852535921105044123596783256385165207661269807360769300383393515750495882196089031760943569446429605802812765320534118794499093836227773074015694617256277452631117004306367519349900910340776236717281124706963350524630272988710812499832276463276195633023193741142443313584245878740052252620245126445245541432071877136636452511600885597718488020793798000381391914741281730008386028990713150156755606342199274988439566501222871697785231655033676034823054337217987009506586338542131537618755508452380772346533280043303209777519179735866496895587118426569167055622736709629318893063379634566396383150626902036780255506773748509892428654593916194038825048079463944061088470576646312931310448592587486513358272573575835483148453160334121372920504815853532164624081681264722107139675387606054105072607409447002478506703781512320611996693113553302175016581362799414636773000980750747439129928081288335840009180181534731708818959442877846358029349743985263271189869864721647221245990137366690591799516799099862091334309175749796032490751351196294838967164360894119602276442658946979818777361761587327764308249295661899281480725754238651405829728615000649318878309702326496324657317456894450533386313363402847340623344396031351864516056819544052483809877488005124633844271471734973129314080478899874376449621178747987723684214394052892312643455753552202610724075154758643127886833582153057195345726503958539500138049415981906626806967253738613131356230565038135762214865581687962463473302119311150859637529884980426178108892881728651324780813339626597236155562210374216994112794263553294445554810731051622911518067331849233253691035600559268779666113892772814434516878542783706338315577365186931891665691742359170726155871828610708208803769146861502726866429711166002796292406917139176596484109725038285643869921659473351597170865555271144875435726036475973402756619557098703683749073666960435078031095732950269736620560645055943343720230956945103025932138574217355667873645129845684019053965467711228028318067693429293202205628731448994692787994379858896542631297469996594611038240659367411193395200592940802770704010878110373952877734430999061096531934871695801530772429256328477443039866710516400728156436724523795846017587323442488322082546554500813838752777692479754382412154837977896775530294894402712150631376928893794470964858811387793927970058989457917406939447676821091930236077793527282534875610041339182823684384217529425775990949636958183335104623155197142356753526266821556085093175597570076223550592063404048782302335339988643119678799597578570024685114431292433934031154688976979415591823186412021386813368649469631199927489251524564476127340571716459579487820648528253206676171786927144192908306941270596884177978452248706221803999114177576612142501785798772360355068623990311338650002114581795252483671711302994330237597750754149540200002922904366047409525289990152975252373731592271381180346657812758551143458622769875520920154729814619541158150328493378014293358202223975570667727954522040807839808723983507929940566446699967236363144350923467618141745896958089873294295042111072653865216462712879295450092104378936995910515480862182616542649846775692785817364121184400685822323159136490513076921889168691175118371626189885757659553624771647692942498101219203857665233693346766555840700884717604874496653482955816039892011305718372111183928240278893705774523074076837322442352527223500318695752556260290780125051397096436203957805800753948094245253944696482274192219077456678613663136451569113412739697074102787963064785971734806214552961888840538133886363259215700484454863180351795475243051942506121735046994814111666319128894862787650888518177221171889505157137704277656988763529574286630427388078092008760676471890465828756592416356702920510603851742662876109383538806002432491378944319976431834269354599844315368637631589276173379293197813626914227014173384576104177364981656995973648010629946336813883471251837876721989931726815735118120722747336363233362883627483573989702283467560595858125664157646078855465767298721050859456356680348428837002707885858675897144446929151757787288864209529001656641252346269086103649982092975566764848360005527975004131495558603318956851642118882079206459398454219930228627673389465806680776345073316310398533987276732275150959252060460854707027345491092906179241666756035631989410134371942724425956960700522662104280826896696413770751506150666040965125023552796434788570725399043272095634888463657384831599433411981398533008156711247694102714944675656870144885515903763408318173078058604758082552169867458855808285233863925127578722717702759473940518320801085767670767144019553043606002896492167162436080973281826289804871235275159606866140129077610911144782632844249720627688388355848024343380506940881596742824107499833358318915512992028596338196311609632785098415890923481355622052644508998289823086715598182812237651952785175975942732500587857207589613743254793483711490056394548903316544257369769280412349129351852250063590749132167137330879548735656245651526067120016066172009850888019017041998206881208320665763612267880829069549304807529726040392096126149983181329529046901558151325514952814013048917083959027079027208465843045377582082426638687090958746433255867727617982886299790466780231949190962637506678630520600371997794365171137401211896462495826787118463568205886789186948985960040600229410520474677679472112124055541041854391265106555695074345556492720096359852458399188357258671968601687405209265918901237409060560976831764956110238242003928599295687263689105857169313193294333733737971739476548742821115270615692644677581322794359644867010265002104342445021930013220326506709491794108609398818291823454633396822912410689396172577904892045466815296835622559362581943563017268330006430649302953351259164679255319415724105407931205763376542742830580739312665764209491275576445592338640531535156059248538440145637057614412104050711639690990294353626567361230287492555977435318145906774197469194534488895564719514051336094677275212122922576839406804635826866302720134673626522372183568883029265583337107705848139981916208557264657571476179424390653979573643030724410591522458746518147644819839869785902184901597018173190909037790716373465188579571639439730660404417696698180136170559146633337632346353115766265307968433306307068602915934330846762795300265651394854589096966429083847060795915869875533160717061244720618373764504884032424779129384827805338607048836730050161659118660839837031349098202454810799398797292014388422086936342069507899622107965194571580343068100655337663021252806223952673107290561034521776610683166977328177013409805109456740991237242946305136583478192806037363030928946977644861373563255765819411124353117261605611338257665111871700055929052567180728522897293758743349049621456668208463688919802357180045309155255237597364551227243145773957204797843639884899433435532224936964602756779412439126954959470381742179534495021177378386413901148065224987037681828570147560020664450417072030815589009069175063556405663600622810485929542362280375233490363079208547474329626568780445205905807657070757087943410462593600608429295886600518963617581917656245129959115356465150404760810481538562984727633171320562367270581241137197451436771801712571471910347778300355897063113868665152252746031921162093395999073496910718539396354145607956179147055921624338507070683540837895161801805508587015610362618387338563166818295262138057448139165812116279689769552191062378993287079968490565323918723481227312607273322962737149956901867597082493241183921933735479064479962485408573959278302661659701005241069803728632904836020068519631378894334809231420782167845410839346876657797976537960491939572919212722239111513410864674119330157853985249635374589711932022355509524704346720174424229983332630421483785987443720780148325189767179267999392966738179648100126844025712512465766042270054784974484651580684664979330734410639054396977950507952003297028632150972636344954423631996122877201339261621293004815021189979411190970430684365903299363796089985034232965629179558261688805254016906861831471902581094769127810125959977740124273833796934061763936318064846038314056011200364982260207447837998711111229953367930184158061080844504677595584501493632101998863332167737201067556974769767748296908141123451928893468622882069772590843033830806935010688513217015493812690541767234793699445116146243675505705418812741661468172016486823115284127655961968147339458273295196136949061852674663742170671410862673164612593449225545375236212129201414067183337518848412641020468540842917778218599927815483323668113561010603257552741790495197459734843202853400006331369441091041231890389208199892820499049238899592485443914976943218832136950831092124474581131426817886147957847737323860969576950108037011302887249249071614762517174750148933894460355171865792293109310923638199397331322836743865210336691236093649252439778027609616359377659861771367146879805512669939295689671373540286545176526968394952992500723197821101954830405548420414572858518997207341230856639608322041285393952143597476279935952827377537469165816091919343280944137780261452087222903113912870775873618546864623034650252392651597449535058365616386205806679784769652096382712497236362563147710945523129034275732432920340689208047410981422546022797520219213645359147304757567014025621854055664476542007074043350312003388729830442933320201181008734135860945704253205293418179952991331041815717422404349249628972156480455795157575333140958796641872009548685113266285933802597284501087951233306630927078136928697769828640960018147882235994799023299833649263126527443086831697370546345925716891663611704416801042151137350516413372982987849016765348755909949022712196553369612144927766153803464181157630637873357704425896783278467726205815196942675698648624785740081407514788666238233328102789461166861443476570105390203285821510075040778337065201750796786234104650814400555524005110458506525933977370734556187344270237800031829530812012271706437826243531921470077151729756849971747284139994176149065463449110526475170849251984074809527678394540510640647919283253794315966803344627311201059658874293084921786084998521906260760147181264064828300082563192601740731805898716338553728051135466287747461466397037333068278311990644795894530630983890838482966200518760616573266361743288987124452126089412266725122604644258534344574101284871336876310444193690789977310297116454120899726175765179764041793582283751805862133010516555230534308307025936374439306129561299710329646063078308659296849988888532518372825444945710233202843961046594169590632674138399493564806709899441143546252992525782999381970084240705777426830721310555480059512088462443785913382302109174511914710188814835801740151090709133465126870731320967740469408227301326315297507851351699925925691440701557493662112232770511759817241535460860780944629073171291343881285893029007892710694855275411959339135954038982224110680180191640023993635735965875519108470162135074292357580267847611705072319134293721580633273903845500821023636751795691718724909670724689635993897167615315358507247948694093156088296456992656653835312786573480445937450520747411544559386244348542727551265637589202817246926898287066978257437888210679246624417884391295486705660737763223710004816061575867446075778228006696085222753623207849958984872995052844475258655354160552376848176675110771218454207110802631112020915308302458597816914022638353316293544177162939108716316403488105040543073428604739518931562150791909548905774135439432175268034126609879033961400091754858784652063715384160041743041469169662892997001359862687511797064037495264756841609431320352777562953440608159588316240132144706678752690855646140875708444835776754636072748852052895844371425672918714784127041951984407279996406875010239406963860813062724874375115536384972979576467532492916666634981975661686379561133685701479031591034715754125377813583555276269601090240912587017260393179168506733744659774433207401528927199547652642242791879123173815118804602391857323805251557761482816485478835231934717536594236135713003043557046517977935122570362762029571166564907477994010205013023582295647972887209773495727398893201636951639616350135393894831252028251738424829730072903302391193593669520193813913838468576600040382627354231359756922729128961410449978252616895821274417678005797750938083391664173934887407928080263233548645597999924184114830255418317480270748165487841271217665928505211043746776675281152832154145064837587575018654709503194992200573596932427607776680542281997782550147326645863288061078557442819764236076609510698296601749403147951863176746287958551825820178987344000946513149715934638439294560757594957805489665794056645566010153350650921506358630147039794055711218211071412571149922555074657863995671694159771558178249419961616733489539818494787374774104010566265863228918087201806235749598545127333277443071514032196227907603803135588701251200989218421990144791323529350920671600100584047010402639722836834180070289709118965375930731840735352887061284338404789938969432247833498373695649226345517563564863084006585369795412145144795926738420507364925531192848330974311092103572305295849247910101834967666522371352539468324249402841399490135822239910306111042581648465620178936504578888761901259315376754932150991450866141670131963117732129432456825620673663080661960012188182249490996647416030275213908247021103611881274629091647803328557486824409665535438073828946758667689894643349922993180804801953684493353183025904172674226655234037959354041481150328347333730304931438350805286288083139932932563134473969451010275985812533683753719790446167855774130675673464569345896726755925918685434035352341247036649291542220128308238746983029239837653908596317702255632383570997170879464178111299197543084133193657167049554408578716263897685884633858221285160329862547426451021518914167159680995388998693748951010770714678159484931455760767724973114329569907656589214149534649244278886652855216630719002757347057514678229173785699034469775852996057182280556834524761458344169147329929140805163258496934514577139843781680418101130820283207395007875655138809771386580542994881241721059263832602357701405696838490615767495454822786151603510884479010952983989151363362168077930958769394157751386297533780662800765833940037133763071893482284790198084785114539756256199960545629742512166619877074012927769271501703380361986149512139344039930413976082073825957090827411498991702439751724722928364311625411665155863802507040498620507937064564433403067990461292281370361407931203292537268861664614030762802826371636569639431982578895223804701327414382641787888805433580869880389126254046672463414541105324601431222844766867413359052260269192370553547613737447808927591918499355689279094357850346335926572658568004926649332937420691877103487288866696874920024048711657817154102047786452935604756537798600630253004100445737172577681683628518691134092573940094072678289026252376499458554090050089716512336524696728142514466772726291781559026200663542942884285494289695233829410215655612355856041405014835916680785949374424013611950935570206227887589439274175140866395440400666273216915373862443509861073623271298261975232556832831009995132475484019933657445291456403777123396458225581814487775860601363145459567907419882078614453110018181107015770504250978412715425599614339801593922834440503554019996909717780835108632201120059529149288732241135431790859986702667754664049805510243684820905795890495961111657392873612034187024240402090350181274002201864118449798086222177350694722847800438356159760555667945173716918435963725707963179389984166435900037731281161129432331807170020557218426448151194723979687346426539150396239722127926294670717038409788659060509691090532896899383285703354930010235844245464972496871076860333305216623530849497252800338248583141237659509341940508484746910609748008235144352760045276550487029019242183328148115709232246150125962827481985636565182468031864724649446930825282857657124856304848193300098060158745040317080439444976054915272851151107460883394646509807889175446068016392051253133475023907454523489566784602052482271257657796963418996145077446576755318413812281931078869780162955801740300669412679510844105570466635459269931798572174753505056804669937318488597132292154381743393971789929369303168602807543936553158308779240461280179368892280461010399101434162736122345294268547261246273210013313839220110820060412783864027528424457544468110854973893792019915152690665337360934166336033542531616171909237446332663699723610887773310784331577949953244011166064493477798565090300518063745070155181620493758380535229252096175843129230203209567067204033667336957006318539262053485460505289794238628073609052595458013901920614374798288179673649625852865537640691280813446495301244232603974539096298374966990657229446227512617884570352922664657380098000284707099901671809627847536840449669248119794044923040556513222999135147567967124945329173148074808677848773025715978373835941057243556348431482298333666600113793172166736363929608107506277978175227046835156330532717467547338630236958642298999500734457054731203243253920455692325348849885913276622014050469225115815226166600888464685173148016059687057502059257692471101714091292165164453736879934156503638882745133701344716944495461086514796141110759779648777139464462485616791936267182981543132937117742618171523441291509342680651649213624374380471070602765539396506521685854836743964600361919613553670579102681146538908494318093979904200999346277076904076370193697158350963002387157077713500604202157481168633436394166271117528730977257353923307457008610364616280784651812819374378338741111132106897827847455989088046243015640847162054044951027014742078995184717608742389610556387547526169133126584506213591976566291812612034616465211121172584701880159690876863294980076192383957033689893712162203738181477486615551507012505590393493690271884157636962587711295539868727846128359645885472558362001703209978261804722490281474733721404463592329258657952889475570841336438570439296175414803390934373352126462824526491051253397776743365650453342279569475303413249377138030590784849741305071426620836409819803456054450060920240411771716485653509431234832318512130697399297124518873916398687731164667823100808744490494289391951672385510939649538942015010323106199009552981109035332791334922811657424406432960203841176791632089471265896693922243294263063757883018478946958069795073792136120699488802724597060531921364343405516768141822318077561710419964924041665526192890722755866462963793404957203454183644912948235127052310788369891325307988578735596343893735236324227295394082827050088713506282094239672570240687154383353174954230601141610680408639252509750137846639626897375522251890548682293803184860439848409203908426176149717493982319310943346167144938087882177262029007493182400734530148442367051843129538582543732824865702522926916706803136137513489186395458359497968446259372071285433085312165071364856917856276897783432110555550802025460015022161824136160166054963447722599862351127798488659579502859996403547724343404464154850024081046048662957911862357669322678400265532414724837804740449432166643727872202964029430369903099369852704728789442393161797227056293623351994158060530410104427415658315122003889005836901076063855291288299930174407562924742719226680934736189414527350767735877400976631688388447494784661046063727917180518544818991430186263733308052612636700801484845264620056604719551931319879361385221829111894633641160757040525532166924979265302422095736333096225176279307788403513160567654758848804042033623241868650687283099118588746040270462415632781614819109391696215020171969110807920090276775208777906874273663401102289515190718888777904489216567378175768654848010105471448422817117161377922589087327552830175946505934626512415924442704321678526150525219565107183014428952241173854150468568631606960785906476641148644526328470070822235977671708008778387134280110508033932681876500889401040260879334359528490863025894695759015331490183379826068915431639314880177764619247378794386213494150288152531820482505535399927279011912047143472080205175580614693447589293807713432317877069910888511536908873310449782308533121012024672022488259788307262811381601540464416256410667046491591204856072201192991554164430242690610137783489924033844733282271291269418705621015861204510209151897149879965446707738876532617304772565388735613220793199042833166510801133640613073224844770963730870405448789099361285923815253022502681868921434650426999175670062872797010361044029909058569234429533682149880702990879002097328677566047622857538022198270539406689208563586628731804821228636153491807636966568830943259931620638166071275199332187044295538822967251081636332111614360373600898938218910281476504953503277067403345485551067652544896499783934528764533741395699678215349082522916377901649092671519147911372512124032213951901816629183184877436633986185384089180205012740057676555387199817355650329026863791389242699273140218922494522916175169034364354496361311211670637086897513012574320000052129193146181991169762763653431377308213962688841880556329060506921730763691009064712052761860203027807112981475024254023323251508651443086134696939345313581767172730755805991118389448427493364628212790695656783670363098638230581215941525413486079915886363645410408416698098746369755645574847271322902441829483575737670448850765338924981744378509022180705509436647520477692848017818288925704235076850856306035178308851298183765353162995485031327436875854416524796796112197243583508919345542983303525351125062385451480227115178448403118463648796046585559816653285593207179501910611966642047206943267426626410563046738627590547151768606230414328486325731049171019074177296867933603786454510245046893676462379089876379720585165514708610382174899818573737326808416808581419979955290671832168839850886996638765518813163106198869566473875691668030541856785328138986104406332392954045364881813979608137823432215712889190230707455618991844221402873342934872391209782292268785532270114360505580760173921364273714690614840804149957435976587855549337990309924378110078020680811584952129303864866166641855801947311779682364654389456640192889666820842499132999254270273664963922838998862201424466034072766878665628541725135956814466777454364026281808653417139991013391795598902385916335793039453388303888717987121929723574675499058228217116299644614970569267249100874622355857232895695964380745463616090735551985857122135135579646401347653051502698417869558035868493832816725453018156120465062128148373360020647442441989313325617024215106471739443812889155391211393529067096147506051778480582297655171081333937624515644543787287255415571081968225992999462925350254389029647990020973122699715896409653687605717102280880570230435113618244079515750969810989870597477649895426018077636796146499576867830372013236086181829325255540772740691027194773730881538312954245617851090437655372788316920332048055457207813403524879763467852772070071798341936091645776432840521925717451494859414256508039564066322879370577911303570782523480538447781050058071015858758519105450620742290183158480544935435780864305152337340109529097480160567688547118693674015580289924775010298947429815973709121201191699527684097107140364257281844502992274845205039396026381768385313271104045419943896857092092697010381594203117216015540907664283898279617698776746160821616035260670170576092853340614922523318195566292767379986800606481459137743757261236778818583952142764800463527748684288169319812291472978151243336260051738346125477814012166876879909945542160949045284913626825566747248054030400478977266421223010284047579698952270014624177390264502093693062652544489158847537444987873151801560965554459638696268286817960718469333563432364386936826945119850451718573510264955386235448062746686011378819908524247311084603787126457743372088528691754080669618794638850790004708257759864689609341982204355820100254568931083925699597954385239824774609538332028094129839972577813924215082993434359787792566900681008890854945211616771924173300684445276145087153281650375048936069112173107026087412701960284215053650487119514945984506096877428928729324725543602654757848657745507782371291912136559732672993726932869543985487681717758836680817543801506658566427921662111638738195433802390834966606879687175840141606307655474665830582057362765500887184827745742723429023118156054973225612685371381394334668474725924628334806085597810046301751725923408217909100439661291098570449665708131218008162380869444321371747320210698282864263049685738918734601298141907245963440198110831697954041046177172316691900887356404009781377223918975017028132886464725990993454217389705928544033133163355219494150273545000926999864229321207081052364247059122746236103849830649328490318851616282075435424653680852855679129700444748093532906091704552558862563262169563682059820317603839902812179123820824705860369779200110354806308114177924891669395651180614412626230050688793745389132726661806170254985125515172935257130615072299973010702472202182232185012237759977371340610316486638528121239408274913620696828555903800736855847525940697499859465448433346312403338697504844926692505710788230417141603280578917826856237074858781337677313399264041459295527913334265248954971990648604189007588504005349664940401703877540595545394190458017180786067815287684962856456176655837043576400531368801535013146335704959424333482229800998065468442792798190996492581674338042873988641163212444729632906692433740555749766153515519647828416575865703704060313542836623764682619345555809552898005108640654816554398312393246690124752168494527054523518263298132748177662619271067921481540780173157731227075164137456319984918848065208927657033180068430220935387284179133360407398175816212623673567209644647085346630075529864034133559457418887523255953696705179824053915430493065263075844743162483665732582555916259862271596108296670599280681353912587363163280362476449501852898090293222598489778670014375959597767588987301739218906488492627675434123402914652831796433043085528666473822338186354550243251630826185308157162158533214891399578222067789751371931525592393468719398039744954391600335921668477909048865456842985787247236956034670557018779424506362930279112799305225134278750025853622349015460932415387286638290030906951862780777357646094443820131044903705511402515069366066631310686449296487388300943576808181836506026713089650454192130383167491385091780955433824088891488315235311004470443321189894573213236360747550737873686259314940924256516566057046544180738483146105497406378644423788452535732609848761963345876299524983248752124987718479041523413124801138773161774190176798823792844286482484042801320028058221460667180966883522899264351170501894805289836390174563933409816152560298680036673700838189683247912226599949511888269233597782801814699312312054020790739985922027179585720078777216026594044808783665727281762417154918478745803644069518287908291547708295408073583560106410313693569444565405440412755489298419905424948252445733447677301931660427973884958769512674663337509017209172966095673371326519254376939277761749379934439617269453896926274860312484665562277584693194629859474633034485624547934038152130236843666089842160790603221475786952948059844477582206581974223267173042240085705018297411351449157987840362513581790132182704964501042502368964886486877738859225408026531843408765357655965280369198011078782168632373020083901048071312407658618634296009295432608819178665903542995925490067908587283097857084127122173774340692295207521859112933312450116486046123184243928234155994476281102985309816437768032008750001117680773244187613422758935526209971098227700368935707657571390026127926454076152427006192617604011215210489095963175783449536785115650918042897609220031635579446154163198007840659527897177695245850419341149166384964913311394393707931057256886931316015198860431246861709167602700633034728955410372298999281582218607596537688741236216855450576150982798684659578945620207603900284097831570871446527087528328185187590221451411895286860263972498186447371622835372857316558905222407415600558460442367449739316776059468351108031787456372422035638361834633560156972725175772330895327827149107670076952859274411745892742291108703568582400554042711864422760726248942507332812645875557501706529136858097869579333129496697331601721946878171977117376624023082610774569112673486787238476096408523239341050310687254557427985535638031657006956552007368967547436365480269100794484813770056643396940496127560135908753869850796736773566894751655778197611095979982265433714054242442608499314064409914653736389117579670631379708287348526310856232488210885506116088384423085137592762953474059794541565637372807528337303240205426002458996128784651795797105333460728478506051172346229627202041054372995828167327289045173423781141720645233349862631586925079346274543890075858523709243864403922402003303273732999995768204567793463198956318923910909749241226768432821908791733857698919400821265707608441519274985166301822109440922873980880706602862779953395702188522181412739607683368544029930847468611607516754960327885841466209146721259318035566786499324725104826923819583717602223288025458582569178142518055885839418243843704610120813617143300347002319591632696263443819430220878311765820078228397291718582191818515049541115220796743943515204376259493675014793430769985045207484723840091416699994154333314938481845134191441754396733591385891763876165275414103819678098203611408242861653353722621598281278055684414296495943316116428346390375080204320354215109740400751308300005425574282424924748287513859141751249789484982721946977782759254724319778814517285738410452853409158306709448279848072226081552074262515256327810680916602939320161131688023547435058131090104344565536954826642334270078002006807707559522635765137504801715533614903073556571968426655319853070569515164142134757264889605495731628151776930425213503799982998162262849502992536577397452049287750321789620371058534644741404986660050898380502024965714144358701386474360240614453505344248444595150358498661145919013289284250926927851706443799292870312424367712708207067423604985499481785722506121765356301721153306466374737046783003892541900674953877869385000994289738283722435490784671902452144804407865873753851704458245363694778400587047076366702310195955604694083773150588403758447485212189645159005637105663118114436467112880984825776052737155565977008736416550385685246346266760481168745046119240819070463955616181255756522631276190781192505048864455525702330340434357594141728601868530189736032724016274729442947599925909555762010600277343639194289920444335535396003728129268914699464202814491415611577996123953360397383602986953665691935938408322214389995610489119071268363209030074133787307751303007233186900517980966474863570015992615734130884590878861054484123264825718623333506849878117406310836526137782719846321962658371023923394341161269895474772770115668651656095343922778246610081526431793988138531656408069667102270701491272308312539338149325465763586263954554899572091468137535743163037496829390458919632273057875282643229648641786722855446841973906746716131820921120615283531925318845335409872980901064337777165947212633630379989010692336909878223173169700457474059347310701450982250333863615865284568132167823960496868458272322912200531280571621214731949970763492686104741130678811751079686413719949760848781159864083779709313591155706634080026086940032036022816079815618173397919977504856502307772161691581987212498017371694506073827085616320300743600998015821794136803850245732359179178496017151022127931308123696693941990290398856773975546680029624384529830152108420217739498650962347970364862232927414222126030133344106587751938176161141199117408392064808571956393736338151980969019529490921603594881386866591253213616937176901736814753689916193740128849865065635711865980472442249600563868746188981425771712272638202959055010932523552527876543952845544046252819245494510496457160594259850587135351410643397155956913125079974345806235347822766552168182435713816406643247739749986369943623793782984562813320622626735165348552399124023212234946952161239418821504194043464406117468357048954735121140593906240771904536911619522707445316909241017538301122627565905771375669002330446431925655047132259532761951452281313235234768718599213919255272453743021707392178482183572134991298674389306822432678935068687011336420026577577297364619935251683106077132403117458380067286067201787668819089068767329878193927551116598831767474292784972251322891156305451193492965388204983862018410051437025534949677276748064233923398138868490949542903074238847354447492394531088143556726314463451762280192303020759395653561788683013774088174647625850213984157480692653420642068231891981817359787076453669467506556831884060533357179514702760392944587513606422532455189367905885941088525890473376827296968823618056635875464098798882888374102027936399919798520556741349195271799664215599469458724074063319634568431671300708916717421212646421110193647461360599714377933078392384561926688028828301804193522069488666141848304706237747504009740139871303677617067298336897386146841749206627050809990348551772183099781762906359429960306558083181401059367883017888625105500367593051770977501632838632201179389978307883749780099045337787917007859434271295982958532781201957299929211998889970450660914608467405160850065332879140912644904964775173795251935958920149569690964734733578880766611859176976329499293302696753260184313408343295971665175072723362230755888338707900834962987531977862738757523852871543774599860127065217848415755402865948955914894008741094648101015540378295738410620440418562922293148857843762688731590994403010508299105131399038719380453524861948540884162798813640754614330607997415875629487677489647058085688735728483025108641626213340890802421600065371468803422886626326034443357284584781884911272016010996382558845411151831674172587461305809746517472060841947618384110627562347302446432150407929842014794296900588696310242074099334178344077491045581867298011516964403932077983862807187616030390330775768075879528000601399134382635420791191824523765107737219478967512244852778416361071815182754798862959524541780319680285864978032710224557986997684287978574225102821557812223769394799722653454337905573343932343806237690832026812963042503264702293179163090383303321607585257356935674388124588082774871688438241943624754347732058609184401016125656420817288731950932615883636954736104067850984966819683460281689996488390574368487961810900848592520293774353298063811313915011388753555919525958332223912671672995107140394716802555111583048761804432100036241371443464581743305432816535921873593104099532592089176966945771414470453917982405040889603511020402213401823157525851291724675436490838475555915916419690748372918701109192011448801782332166665492454363039535064531331076537410463657320051254873345657875065183232808083399276908410584704230966187243913797741479768753539853599352176682238354734705136059713022281968704099650987932927494834656851755549915128930141422043377889232451176119237414234249582573518941815568680645024665517019045127876079010058607753198737218623784859382634775632013561537200899366730738126805801926946341788006472221793486052508628475110417227792370654786951133154946444308008493652608516560910116656768012993159544075474370009964203939114559506646457439609788546781995521912099966990604525001495333342295501436172514185899116757003462500224402216429273777828975846798066788059703590933679116086612327393435893873471581833164652949177363870285196776323559793677342648440988462270005682135424366978817207438457426499532870190121284089610775937548643367685802131208932735969626039778022191833524118730085829291335175022779836062750457746960706490220069796643808645026862103460263236662349161457740458128015842403176402702471165217650241631823863503451431692668862736660772146231027675890369267545622406655281307150457697568139062013516797786885632356926194433942676278704868703186378219043450787484516756779398390399176408349539467989117178077106396228837250295454573550887147422104856606325017642598727336639442295373241957194425487848491666973458760191387371562128779782681994200405763001298173159208691893699009380400893345065909053701683970608764452012241130291077961261129194936090540870374391097587955130095081010585858291843008321801254357300303949000804634439661270788659289312530188179467857108962787647669575140977464506982971232310395373594479233481309214636596347250820898540264674309658823543357650586665744176562499144784004438298213099759421097825913141377627884598935766947514172621341778693688368782988120298452200117841213271711677103809764513598913029115321041953528993182263112969508425490855552345662650642396391531442949607828661692880201449614441042647903795546024580152905896067249116594603473494556935133745269422617541373260915451935816478053102884313073488061934335586843923891320913791023334584286460693492311695274345986838769185442302746869500828929813359415185991741938668746412054435873606280483525929107823647222120661143559799360406260421801460332296087249344447167734237939091515304172051915175936674589258484653995828378223319378884954955784203696413951902913009849626181102194212291683873533110001790022696725243783885365316838296623357873183451897625673777033599657591667537866529449014049559287179296579046128380862444501723740886210728084543473427313672360140960349976281172566377031096179799054676575975889558203481880287542557061008079348210167661429597553920759868575578019254167772536168079948440990130869149701609019298928434174974352506109242951716390234963251269633928844599345062082597028961111577951834060099800281085375995044456197830748412181438012075349727162593124856053716655858763437480862367996606807420506312275171741404534261348372823907858514147038509699230298484146836920241995740085539953342422958370838506567638883986007669352119801795272764449249560511429383867450495110220129249193561669789712391612417105510903518564842366500325881323945721985984922379187000038474768125500378830271852334046130987240122352678473973546565947183626327902240215591135873428968391004646671863401551615703933526534804579857707868530821502289555726078495783820376603278009343956169540422223162559344066413530084819115638807372185195587474370154017016875460345569509736131331660544899480343606144793697593865710966104844842123490592885478142287111533666265564882484636135090079096987618250907615974287845430862130700133562358546254898995394503112788917756962604675776232963303771171229770251460106251976795246558037384101561324050293496418767059176627531135250131573945744477126411156713405886555478434493023520233565111079379354288308604054054675967736673913442605609614489938707052056843098161173189245809875179120515700117413351354356475326932056988052898693319650123818896816304755697831744728910732727713463634009190978906321446025326471697931688550534835092110084942461236106784353526449468394283506855744312132641610314979169203135846573282023948396506094326102789033914479213656962753386729689705748273253244731532480857328979478144083873754166859683743774961581516422321686441352283471518102522974945179112580845852702262043534722835141421142938174852007653036145686732468007197165660560477697439861275331588351707581575199148700269422882202791474816820328982753876657706557678760311013655999325051113463917599102494888205280837958190199470105570334732108136582693190274264768964645678910272392951201364094105160838252195028605007838857861786913858732401551855881796984751209699437433669519325851022443902293965627769832063320604120786608079115170580354430839370280137329000522861702717127098842506897540920914379471414972596139374234785829462040622146624381262221324326176953192764499935876528986124153298842381859199013047378140951044284552355146028767620528342427319611175074593537016793037888495120715002733773673298905310191416980965418238862884086371419323804990939469932214663289401784730440491789447839579337221917347741710599021099341792342619218799938346051366858754378476225271586237256217258276623341279554350653847922343446099771550438517996903961343834773361153559720705167938699542123824089248642488987258369902738735782048651390395344012280684262075565249801977316728287404547086376537089432469686585408608691886302295378808104325143031315699472923953012331438241067380501696672679707415181890082590266970901740658506663788350268070552864311019937472516520600901731389619038107516131275462449376870839766872478075339936658784426491511937667564183385144880041607990088281179803250743404144077305227626516618298786371796542215744491941931254452914605017852494946624466403866566113400770246856624448185961056421557864666766059727315229294079983123077985443065561640899631926195074435449307853804768000871802669307967363468762258837711466131442539504014751508047470705491344134506881551717534549854366145277316858091488936867133712574188131881112592358712941946733591497764545031546240946235015559313325564713971430083831961389682993708287610470773304471142773107354128575121197651371596528565876229440293761904557309940784920425808300616440878601144191339644249784249103602250738723647306247014458946070281980548093224703877939103304368196615843171805522255399440947272264758815130208533463572713014844005744185922062151359773243529813475810633150815537798653107406880711654906873797109505819464680750589064317341698755908139272380038880776660637077743034301337623054930356653844972833657244627597835227779045816336142675393528055852351143239336808744493726549565703612114534101219757656331535170606185182826780244557185204343721674068438143194931384913258650800229649459828471165885542397195546996516167788914397490084513911470305806754231928851598861574645436248222748525808135450844795384339913951354292854489157087591832201672887764087362182531436846744352616898708826426959670778406362982651442487825142773430592615700625235738847848200901136138729038211121971879068381592922441543667431718467896366657280329992473724289491614166232764681427363218701934334031072370991676587412323362557400199430952347370071270544012228998390995081601623746920739912377774826708404537129841236122740685499651198031462954988407172408959529613144089704812993350116034751396530208460716886498290482431307035581847354730914209247339118158685265346669298780839998408407854576700187954626626160374965148944330226902297039788019989641859088160974324681593751729450819031263896931651053981382620894138058972773334116987329313114010252364063062907317906678277747520185222066430916720928590972637876336791978666001386910727362193560582318335512884144707998033376687191128898283958196648330653453162766305051798088204616592150991728197672979655439922500091124857296933207107732695797743940095444309210325408177441003610366401554487912082894889630729623199969898322730989673619052302808943121980735486670882861114869444549036164201913776514768488323473390061578485557554507165689755462891131522169848244353132178256854378601981867752407915909833844952877703838770807418631391686591286893782206471643812269304791801215837355769097723245977425427478813765491083876953547785048784336111776206003094713445867985944686333326782908601192660528774682054277059697270016501810119718489002561856953341123462076382979044354067474447234326606435986741980214608277964759246266434560788615247044279384674247927525001464864509325498848659396476100129817231653617242413612560256652132048536101141854370071277437966933018502120866479392990731991469235090310224601471398845470318854130717277861173541505830174830473826580875331339177930650877964868177877517737889166314519013862167518887434286563806975600348559206270010919606146323481935935101373092401422009023527542622102976252112882734078626749847908732433299538095951224273396471590919424981946954512961606175423779773173363406999872819885619457462222131139525581879042129294694263714866810624218210356962864022855424893440976614732161091699897827923037618155791718562769747220531772987784617095053676450228527465518401395346289943124207172977224708893587502832768590367463091791942778192563975620780588260637217862960719361318582335203544765921514710432937329223098036630046939633920625508747408019413226807841157049396714945622213229752130825378590567142898620716598342668800430379372439289250190242114583006043124563349397896036666533451662525778267679886895942538426610504333253811039492868063259466105117488767945641275205481773803294379112421171172615623140756691807728421654169442465590554421073184271868578763171447936453058488859403614727993969465820756745016656296053659205169443905362931855559522565102509463402025283601498577572790465116911005482626480823851943530152199162916821676602607174718066144200063864300390013826645367976412089199302876760706364282097388111684587767262962331438077387424004449677976777242229294789273733668423611138438449405992663439960060391457219881344366331796942386511715388786806584930733925432258012847348001775582412878110543616492188374919539983505201471883117301075411922974359283524072034456468877618951247271271093095756953422539233929078185702561102876228791721077838571240949108492313060252475466075294954716977423886930948136635250901646049592687449470921599279035744431760475590153666500939831129234957296143718446168653587620368464032470189451945800265110415159247128691611276621274424300622215644909517884214573306920767564902211555616797724154990266784708771603693325833910334562986808991263327362684981415569822585044891511884304584412651994472518721286369546541802846782873029646529682132817146175757358527602253670575143482730161148281488906966212770648928865941873503555109399509288292664354488993458355213955779883733448029801063992634291621834073963588254989234058272565262652590296872892274475184577483601937399158504600361421582586492383970933795248466482854721641070291666247688955631493238101680248234659052926666279826821910154598278198792647341002177189723017269422473506251959639119413955566920098059285469586299648035172838330870690983608835329528713560461101133129538359335046133809629402404099707117514345217263773640788153911888356309967623883536234015531157634702169277494699864663291378976995231096822173470630866344316160627160817048919612808791760183053160731081368713047815218252425694781260448268472292100945327584701535235024568826219229164225387095580180942896755197915942345790465913083145323306878536436654641156998614140375063073040570526344715529775337836683870988482710031810511653242118027120458871680933668631391587014050646791238920283690438164294198163225306856199723798791083639245718675500273663374554444629637980331990042571897798476773061376201812562857518606571918561741572249769688561595022695033234735428948407452959747777267782170755462459765852514534709879234423382336890704615480608195177888951077488657156807079162302149631367504224357625437008220145009888266652225919869818822620296303954170907143240775128682351524113797424853751263396048714942112124537769098846446096542319805035387414614362713008833377801097198414445305314722385342957870202050093390319026014618993145699656259071310774124462687187683018707062762096930910274609607557354028447210041245194940633285015230645740413217080081572002842778144788704265014584082721010663952661991904177645543818826165175795637709735273509601113730078772872145748925164308121634808480654171115230827033686434578685352791804661833183411009382677730315602145269693880930014563388865215037667786595826125186419847984568579393323554305153112659305212620892636685980247729805999102231976436913168959236219241037807616529178944630833255909723876252945681216626191563840585494852849705761994683875763211897563062236652558990713519480648525100308305975224118562891426021455617842752948807084869475087355446249587009563320642805294506624616001369664314025355797283331194101436056459026843548928879615495361505796311653857198819286437566387121914544811342847773879331306171761982614897542506484956627717486954472321110035388318554527574027835981262533308870885516420568191430324835667267927867237005590617881291062282190986691039368050242114252256561735247789004266713490360439582359526389076781890874287202635336189233736842548230506865339714349406492457105134485036056655439062927968055119694406552506220178649039517048560799299537317517544172587146559935274592708727251948914297091718909540780989603327659256162217378343325228307236140322293835806133129531241084039536989974619889411050116192644388691533947217220414162644200438677365922873570118266959979135234659998234566889910259717914642366862016896229416156398912720776783596194901493420244894617666514171713606218962382701320754743835064895700688776647660509367373451833119543687095958833574343583242229891477138975628385706414764587035590519110040449028571921383963054761403907618528434820764355171512854407712333766892502343509490795302824917151652240150452719249422262529981453463939601288755492483574297152490379529596691493496456386562555283180069913512486762857095304990371195156527056897783046235920343161399454740731377923488446870430004238507258105665290950794883793463394406933390247823983862064323702582779559574065762965552500096280174314032376853141511711199589083394291079733410159306745687763060457248812792791869959413434325599229553237693329698835192827105619016796038905061479482565081356938788832119587428455228521231900056486207091688841784550771275119342978531806343741044602184632800926406881579981875429871443925360491617831321497480773156706531572637545746689089153183914078936070659678614998301228845002035474976403817286998346298460464909348888198837936881322766202639077444888620800857754343797766102728615114735025884053359647717874738550919036882593246579411346222530837644975041315221111984971838212846554225664130790294354128669469341669523515286096761167289726879131168758673002097839573490400471450620041259009314141226842568752288364519153980769522634910358148615783762451324479748472282806069992006289855857934075799511731478319568551119744323257131151421303001772441455396296578503753271977548374875933015945760489615646036161658786603174718080003011496495421566722063927815247344502464144133328195701162456630966857153492141266736721242495011235212292063982255480490215641395462359855574079636000631796257507076454933839385634730399886603253253959345292428842672227642096739689076889572852812368222413482876683234813828606471682740739496339403750363020856522565059245526356970588340410384438233057885732618311209967431212267098928706095357132257393798590151506674158079042757592089591086165900232616494819225557705487135893559717433081686667663586591248260162056041349926779612143932971271164245137363399182267484388055278538633578872974045485601091499296928638296214056735063868177510132895212287917922395996266335914178343388229896525063731806395118016023000154046846850870062108764490587515081875210246395842531930489698517885485005802410589543395694666930696919218466858302661040594194885904960822437505868656485335035898377775036856235076977009737987906596392443641309871024897494169157491925423706185240706632889193926564803550576452936082389845147047077912340471419518194285198548467942056594312004849264711284027813100355783146432759241680093789719388268227253947973770863747754290861073522968378807642089215470976875755569754806642610532870255887707218776926435120912085908917465452677655279931739459584877825808837329001887106215751154330143583550346200009276741521565783226509835486042685336089321325348405667269878872845257873209941123248553588903361518980172136161770571696196720421723637907291964243186226812438117893641114539245904095339746234971257200783876789141110680977526385860013276279549944820074071784080844644695732662631570346794678362448218667640475109049905139305880606645793783907132463182900139037085586801060810591763664051223208924595898542080577643275656129499134022815026924215572950180774146858210357630807408583978005332971266209854217908977093646288521918953617844091057333558705871307013375040637440938167702891561818655236239428920840726010691978460776892399868039886627230727538225109978320251216948328212340251928304784910780369352518587983956148534477739108866443839437430054184370920821341407770877924787211684766671835865925341343557293430239498486590582757703309092481218406715243797162385376679847621865636508507963182917230679579236076130125895743573509164815272167561371067502870256873855673547330215860796602629537955658407532377667414409191866790164366649045550229701989217785633459562596782161326002149063240677380613773277064785437346982242393758606658948310533789928253754215631140958645734197312791448387387564365328129036242161014409325817899477926149665469093217474219685521165095085355187509898027713579431096809701159336087678266197736180830040250030176722641104761219516906088545882410682273171741949737632833037024699712487043456216782156804064707278601305562425745607376148984042652493696480517596066307916041904601986268473627592920639098771606584879366350893498825514448138237532192443857489819668747630231011610483223027546766898871923069153262233984516999074763394511514847439791866863327265303051623723594160493045501409092471399200876828388019958345820815795007043085763621747711996627352190684035167815757397622983827698685055296964601588274736579774951846473597027068836186464006138535699276612389569783614103681625964858064300358082286787519666175617955286097569872978108631208615288394912851657048362814445095057581470621206932732224150025291162806377143849188819447061456156533447906398405840295706127221415014702920101282032841177172984384354495847207788211064384911157242213130804641522097927188225689078369496986361409625801864670936603481633424517240932092734087692688347844303711036018830107073475882056808839998217488462712680513784352058498830875578068516980425408985535157709197018174832377704886033014793719309408629192386415918397202265009404726012371542844850831149615657272167029515678919609176436204740205076567461064415329352507980774307371673339382505595168199769364821171804383070301664409361521617354136466474300109525335479259989862138238276622940931648912030700825054897694605630720399765326436622092801152482234048252899206977928776164879587324558859777619200247018963322126779970405159936714710578612969983816999351694287974903450713165183479555547046134260607114326198266093496763563791739501770730810458360193010377134804823319030441625782518767201564182866260726977754159898077591558881573343186095680934444960302396336545811729762551482147661399801583817155325170652362062033230913654688560973254635911555654832130219331600905406779909997333927191809461390898294243926240584856783411979447970071342568271598852769190814952932816820441516896478502055022611852967446986624371756752399367276581963690893790273763613284685100558424793897542609924352609980415055097957465899624817542371543040665059148355675759453314424886521031197448502838809634044769601516872619541059320673504578137505230556793315068645186167384991981703253432681316566793834606169979177173647483022108609593186837473898532531898162457536718927549562959337255464914585358206546643252606037381978192496137141817904916381114749136897581373775806265571287117444332234267832504486026132134959155730727835799321530669290819842771727791927302852884175421326387876777674010402329070302494283426071842162249438637554781466085665580189127120819669614574408478189425489347979145231466994684953924702093938509332612292067421652865211167957774776887837360315117164438237247676539679361976096041893824466633819550467014248452389037265268338986901535647314755143522790245511361384540672531426747104453838864120715003136481724750901412737218745847686869559939592346296055881849712904131601828255067454783607103523038456524458117312572795427408038525134413842284573740340032287156086975824712616352765882151523405230566065224698859749464241638916801019670620628440232507504071870726093320720066343541715732447516995760409830290244285317051829977890510427011084472258170823940997860846025766907206384709278113903495998089298556728759028132358065531489254570487856128423672518051715110880216567626094393364592306525264682397263489186849898651260133365494416983630556084327364354919619457589673582725598821208438815670120504355686029758892628060497976343989334599123527887200044857487046800639397241380210287853458692999021128337051431205339013985318141192371266097072724532890924747854957871494009488977368223630117800537159951410143328794346494936023295156816658597185431080074643936728322712595059230377588337041418750565096793778344830446811870962642012393855792150850936683966526124631424421062302270803436351899976016354556892911179509140175400793279261568369274455992325073865897660213539175162976095058217346223176942802895589905506998015331380983618285294588596190653850238090866140493873559463663587286900998026921955482590130963738683083553410527020432029646993386438644759966820340474735831256223338859394958441456626571633900862130547279812257053339446054055348407992012512646305247878110504402602403105084107900167764820009234764416325241875207247200648353174306665633739311274263553715594682149733153608709497504003638574722984314807622232862855290337264562590905801438693547671264596763157381173303800854919169616480601123212017337797382097956106818267508386869171285437079138249638681018959085882441494924829907229449613606554071437327885515426828520722687935840276725191644473946788552950123128452858648878024785512255605956219495916226036080191212445995034193417357173032944250276300995514484145356584827325594630598484523324464374773947497443507646059171219193561101775280536665304372254961314497697990207702535795218764486602671666905379037683857465926576390046586943797792435958712358510020187731813968479684885928774099330645222425585975792420687958653021341845112405591350212563701467679237700212876369643993774859194799344802384872007494322128865843821948341428920056055407974285996425041064679695719871178582398083585628723513161208013730792980908542302349767182689711535129203017602895688636262700147371600937183946063721169436013413745106601388893805276633833710947323392881559781926644212872733315655531785574991488271835091897517874102990242026929074993299101267318909568284507809134753545208784797903468080665703759923348429344154899714277760581864116602434031510882641439545162680625450346892587088895710709295060526973701062865308340216809948411187990101134286790513357098582102545827543407956799436152497620063335329301885591841625880962796044873246107194790486203045451685122016878358511334311747567969892523618517067810882270977525949123592327468493962000155040065993966292051286779964167588522549535173700684037336317952470508946307156336312175033412510373851609402316880243773390145573920291495001203526762799831249459547299586743634759564210917908850634614066340133506255376870577201405731993286176815308783392192454429718762172023512863182148972251859123033827345163220577375228288752311056532097202858865311510233929174516562436838672672422943154532003997706075924420564344430107164814897747002420968015329279667712017841468726139997065009099222175917243398576880036350991509835134608001720044636076490752572560795721481649244091076985738345582585099320290154297265783728410213812298625652716215509804733521934494552824124966584606744560389839294318506360211905240419972216233691192501195271362915088266236065062711355238887828676005702610042153758726801609136225948296987725108629348716921235742611412028134141313659334611751664345511276142675018938297546836560596440382901206504075803878691424570419326608483686271302452509729856606612653190536644131713041206696292924019644583614254092456917505255831495248441596730623312624776257271087208992626820376179768618812933736846589080484622026297989474273016692763910937448903707516437847218729850411773160601148499872100336682355785434230411812447490843791576658225917804033870512855187269203561796775104686729544440830471040963172356009374809622261137210164325081805455374727089237249135335015861692475792396318466924487382179115060863812845679392302826761641808315594336240615556689063871332885450231126608528010800816015953885644912669641955828596170111025894389879510350097456184896632733376523069126006813244473955399592402508454274020136764312056022863023291611769760967389222914886726269193263425037099344289017483523896213748411134390204419171535570402058335855007748569170253163539357381722985203046374416925324709057479787493862283273935064552071838780440323641961481551005703743897473952471776936933691558964636216095741874653985344951495546831452694079925378839796042839896509931651498345890913079109937718956974561670247311186103526647906731221276175385309656097807408064113283127006088811518193649834430029935376746863718182224418562375165981939806032282734045551718471712554035521022859814765104987879848207922749023252412846390355220313996245362757475385453979451087684705472715574387124748993756914242752606590032517465952701482918284880269899700307174212995892078831102581486367790027767619368875956314469780720849762589946104490620029995251099121518111662647983013210339110868640938058652232602862251553692054226959762951552543126739334035551835989695791402149352492600899017118215859323331733350500394079448629430172187441013046289604508132268640533802726526169230405244238592609972946935406868154599701283188031479308565102581541172289109851023353378464319236023146336768568858307764662813775804626158522629137727652173641661409033786558676900319103436855671836469012038873047377373550396213030453945708631137307386241614623917610816632399176967140138834757616291843092915015139234792047119120861092669011287540059947247888897340067362544896213231852377671892790027288754989677616572519732874946766030147963062382123436992615589573647261326776579309155941603798212718361695000130523123156980867614107629662070865704279911125962638386508516723791970058160986623573823693553583240304291741565737626496352648656203559808477654134745585614750933155813831446617625120658546614667667900528555162994972886868883231150850136408554223867870618853009590074829272525032207331251388177858666617241624069755896519033575808337718220454260648779290810584994547280968920153315060556990308291473534120522150788714894951186948795932953731543616826430653700572700585588706524368794228813901894656231609821331797460256472795066597019512724412100916591758523851873233925655132803241984030440910505975584339043369656090954572497022208460465335750746875365758187755128473695198008791693492423918723857148021695797675938656782714129924849573514202220892654060703320341330763731419809782248373050996503992916453639641065746115036770013033602147699189569526399501997668007849348519730053511016367079992310113213028476537004976407940323422828822671065156438434898088908665826222088951419295142671599628102989845675446470407490183388257962031034991987123657535802656721793006701973656565562192296499259383565820584339455660407073962367867267342537438757982729933400286584320009033539535182617408728661684236354814948271084915258304517444097039271321969998099715271222883672296114667601765927825579353040352796492114420321756958536076338927614698571335749120406423115838557109002679151402296574602381304191443847112021571048993906327122524130614031165272043349207425749860041522773207417993610893797463981398034459740802631806794886879494186823653155122016553126602156626208171310366262398227279646116247690010029428975872000283793002568945005834878177831943628333499758485955188739418203625176012102493640656072958621250671645222835728328657017155223156326996732476977924427546002232397509733027899022374046225496379028649889847121353949064871988240037796914418548131422256332920821620927056033532143353623661024101156396972871973766078520220398934194115476828641781972568121766094711144970133032465764171440909676067006215347278939733019358568706822552733901574812669682229149790351265548782250733688416286001977267179696406405118325944990379677812114501909122736123283706201559620081058521604931127240229915431500649442014409681383211819106092175404306665581437432577948061789592112156790541536106112339298593977569777443247012189720455071711196270214246206198771756100613405629387717591513761090674978904812279817082876212406142175191227068466418312747457231163402814146198022450208143909205335654863673234727116029060166674338719290414025397358828566147470856835645067232372706243783969697714469368092381473310356591780989697194200272636284164419729453898174632789011624241696124784815939109945792498814475052155580137966160610712242173407883754100018479765025677162299877423848503099568141847979811430336350409202170086904097274973724119015856488415537506593267123017733808916886188300691710292347938704744837105848862730862891033036457282296935924254663050577975494351562366881529240784477362671663356857062062926551345349627603892773381389942724089379564262422386571372779826823587251628438940510310749254863907862858364858237209606643539004606101579700642686960118215828947134475774404140419628373662841915137978673805206448898546863108452231817088459644519219078826458264387548920008220438617315648336137918050491857816600952197373215119297907962806426523818323353203047007459817553873177877806355767861743899242482756672024330868600016484389376927110292457352824758215501002405012217841989779535755916129348338827532624246507518547231963541898031095909214760704704944584464937922187653548809643990199077056240616751278038089527560429988586722979547766182542020855869872879215371711136706889569730530526072351366637286739501173844735464376217948019265971003828417451358323657028535203033279278736905679574219042632389703860645661107209714663167625280950951951745571924076591487758979095447350507575945265093986930452774270232167883491035288958412909389978819539069608419319788048109056974104283409879722439475582701044612025512396622566177527840966776830253986422460777457308959847662739815946144925780603760837218610980632818972389206826570859130559179593916174633584366811209004148520358428080848034998309406731636863058508270002673480741789058363482206705963588125463905346314617301455393343562215038837990153687005079442871380089707196261309548673403236074563026506769909061185452731732011747464744755300861288635327904094327169841499436282128068340084993249749126547933693654849119177428329924079756855601438263123592892099242624483313508063930553551941482417776730495136837102231151256556284884753409795680405921028326232190722811803900262066722322630677818047991890205250559099182130907285299311165158770029054033808548113961567769704335954409070210147498082813622080585229312635063356079744010824917861689524546627240995883496399581655213627612164393133805141371125596517563189871939017869092768930963247025187853575960379201636570650359596916846512138346001060121138884692936195561679852859582679625478349263774938803516237945219562235572582514640695911639052235215428542132746125877056014585099506639845996248419426467847004170953558869905389304636578454266392269447928848582900545935400453031409320205838034059383489526569162626480918554401274124654405892726051694085293693825653374033660177686300249572650890749978923179374119556616048595549251268995024625181140894710766901994939786726361788005780480273609672230267800973437213836072520704255073769552097077915744670913578892784834557803492127794737334744739234533551723898207591843045118123255759124637389483592321983556340373770324052035569446982886641285320998576400394674043179022807975183561737193733728441291272502689789291941077891725573387523477750599238113084552462093583657349614098079309883212008053722400422153630767227253192972636285615933382059952195053859001784875129663218103539821054997184207293390943253946290314519951424683579275652634324246742648134763188433488484240781156236128590722676593868624643785952446941234431709523222372905130565046835231143725555552856585071439905328013222528497613935173703684163534032703840278793638229460637319748846583128252026172342349171363594593175124232545761410299480750740629024619835634974512414475292582812469842235834975645670317713491021189957847859952422888672874413516352472628134588048204948079833185772686171577758180192931819727285289134571074136263093134193387068542247828384405304691336641249333167378344569912235638906900025232765187437929301417358563262112329542539576125681677478627963949397052593859816785989504595241693240095143728812544639929654113116946713932798510620127265832982464247769657258041156451264885426240322750401797154923023036127219829989770344834257479186198100992090011878790477464541881131009679961617339088168348066969924001566598455095867206544432863108800837743908719519474146923524027112265583936249244671798045826059835461193476698098166875024856327717128064828309964498624611816581924311474770756126067376433568323782947464434592238138570793876443166394059878647956958571558426557979788819996677187490301546626384906664929548105184277850016015676675622505706681946660100054938551245285074195729136120930426685669041782612763800607319260811501481157828398565768679801030162398433498843087939565092769075304759603335592348561424977848301832465929509509055587967934554261076762890455634453634846900174674999426046051969758133133546328305497002321941669367053921194893327337948448726430200418725757409335793274083355446258435160313730129168731612450302242374049365137491961203570609401797974269212869774784470396445037107549130980875720424004303875971195258982393966368425568079441679346713910960121019162236494764624981511165724877498453706762685903473871592710564244467646883960674669404306428233914066998391140633186055341082034268347633052849496832566590123858871687188542581546749457388536762592947260261250713615349800442129319127090029729909280026317569220253041826594854759115529849159234601383618066555768624259005891601765362792237132270117748857403460706651257945117114513242643997912209561117143216351559824358613995128245942471874236099108352832239193034868216629560700174841710151116162527364483033995985643742109698451814148412262435065611003144780441099791183848338092192932305466684704162147372828694355815460692595788419284571749060245968656185059939511695349714707809778109403158422192426615427290496520819378856369296301408796574387312766546648137385553461858031080595958491926645520567771325638824118885920290751021667568010764680287416425148151338961428525989689305911205213578725180980173994526457121011455557151732256112413634961704372153396144149890116682241141062659850674435198517070554099008181566862365546667344023139952511823678601123628295813458801203502174484593336654124086811546494987942839579554976007634828530944884199984942260957531096032538422812553021693895978587642920447994057002877442846506943631815418210314291646292335578341270832174579595455618119023681150553660095926614955425572860562658915335504751762651430951522858385007724274005729165538439123437838948035810065934353389418267389073799622756534571048688771947890326148282541878148614609551279849177140516794028761108722360125322479755297209254433157613961581559779894485226098853012525400474378695519988962373844421255513292583391910099024881397116515869099280095322559845830354781446343882180169243985014102688312106927528583855869150254809087730614203488094467838010037873723430722739552632521623558880849425166075346649752771908527671369850147496388224702599503595911347864244071761307653804335292292276498276543394666199632193145266621606654827657661461851832178359476702043355997055250962292268808006889884655841784202742977887730314398424818670477860784183229297647977050684495586891525297959686210816228807689115787745371096172989553568155966108727816684559228923010824618466229952101225071453571654625339230972080665868123954556243950145393580533452515043397045855504727402686062786039641369072630012058814311120023135778112991849287615009696409046917523864180876249811682034037922799992267906492249561892208841673385803480195308611415116315784433088847796111277463718436976779234838120226971111867393579440875942051392482449268708894387465967141133295144091948837474592703248545049227794762599024661432412110801928762718568282187068071207501704501747376550056722409605266721613892031497319216319215123820246555842013489905619434756533158810464067134302107370626504351758860887718428763768127861053615208765076836212152299141787061484689492540695348733279720007153540013438101795754194432552837942143177072718459697307189252562322592815165867740730645890007100628844990446846194040555811634680544244639847424090450727089470637356393190233928908738971413313646188198862337135713797397366136701834691879849171498512648830264004696904011048779072841369016252932001903972334558452057186634119093176036996798303817753192761282336824108608703574621938021029253591641953822596459691179636266057905212260595230439661795848701439124630472606132302252739487460505339414077925358800135869713828616563740098320084165928814957555943160188084650578190847884826082630180695351369547509097847198620156538316350481925843404141502969711182523371324819712022990377174836086827233526189908397564903032180211524721853768848043204302286845902021659378247027402499992341550110075840952935417191045933580011388241063729031702432922384960811971304048011299172442397784474964967268087044443156839221975237333967634365430198324147271139443943098754793237669742803053323510156115057234252031277948654656395229869850254515864815591303374206277824968433261623154967836464897944844186781950761132272822647636464405548492425269973953978663541655721376733460501921157639559162623362937556035218749536488257185203556149787753481854535253833937850906654078988293917724857291435304239479976775648930663141788803155552458393951076208091659104046834098159868913139930177695984767278360581807347263301366863554627527144446153001457447191080639155240623490117568584980190087625783263210878543939430452406901709484030187222722790621925236275592956596086882428804397307179407742612557617480067316722039524406397269357787696701338482762735374638448741463506577628362796517813328464472471195460956852156241827583338507627808849436505302730645461349791220081817039069782443721964636356568071852439288576543976673035062152274181396177416630898450799504866819745449622289827317090986680048117149167026635779493189503790321236311351580470348459114505603604688047415464218930321634955073930993966489286326103060338371844470164786790184729649021608683417879938249019952938889923612042310053703197833095147921725557530066716278378442292412751279923809330435698630204403401823203443209434251170215452899047096733420487203786040844096500278062804503647084844761212245910703347220501555326470092834950718173542103395511138911615342449747109973408804422125649216171858699775312276318194242949107642980218877466594733584010796364125506404954312587250783699998558473731880242605996944947953914498546979133853331641254909761731444572463359233339416806438529051299647491237273134911772195379234192012871686425189586531571418401313550659374340971591559936795827589956541874475530014712594397032207640686878290797563014632036696179866106634849082226971266610569880237558617362442642956367758402250710795100320796841679253809004618400471106921024944157520765789660639877960492512398415013302608830416068563370373067282504696370938942281754024366898322645772405101257515738548069206103379649288623585136642394877712857338943377226909390277262135014196032900047470200048345514095318671654420208136319272085966867823165386685333022547694193773228056970825660096591479196863223489703885984851525897696735652625065782678071998251169015421502948824056892970377579513191372784588612782109799405259043128010542330714651997402816558357368925766983603121509868228081119420496006696588898048258043110947292007808589823478677227644686364491418585144791310131060534344027659725543975712445115375609713073708039824062898350141807812797535989840046861416748492109362359406797292005174268405893476499435449477093641292796210546156770094198066668487919700423881326676657377289502065348917344547786667892687803323453977631172464911434619776790971419011875513658450959362999522327296548621352770334656186912241919303546866862952790561725692723002859201586740368065601163872066111458962104203794339249775508716123831487750686803382871376589702017174393378629969795650597936229855265102035148280287402112886118758842693955664463758098141139277970026844937022442405313443574786211681472867058715966452032209150449295999217237432685821605869469989646955784021736544645434241639959860490049247646271448210834746762897066657297006518931915518115004400511077062336554644104092171125431608759423850213120814846733757966164619197775063152350978403930012744255982503772030999181135717298798544493102033338160313028348247546926717977478360786709777952595355769070181190544637006443563814312514066750922869511762123396144345762603863368667232250246581403657216507471815881081916816115060398239367884054433711047787597753553537240979821050104027366506017256892765133007659931835290408894549700713207316341540340785727525912492641329215932737710209053380866255384727593324489935563950190421834894484439570797102688512181612996240420428724611575877441989179314748101963275642299447715553619184399665766935466908833113524950628187079034652394615948192564661148150640590337133136684705889549535205633235111228560615942764933353099388677825448703596344215367323823158460173604224509504504606391104058824331723644880851113394308350105959130259750439873176259887412563055541612767025532509795099408015019626666830440171990832271099464587867691619012517518510829588774613258893486694800069456602079973170447206945109714568058035550423130455937051538907631165250137771887075784986643263833873506393201002938619214086014202009435900554467225355496673596090171279123125593564185134384844917696061140499024798763982102452213921870923324258623036583341515175664994630644080480674154800648941990982765319488106570530541392774838199935198630533725452009626316071508102282573647294950473748919853725159841985501471987564679052556240769532152979274522741550728402627550439438569999971923314210959909683674962966641451895897539266143766894612279086222454461919712079903113674192589909505465712028643262528322789923388524942762639111066581786478562618146287030228933176234635266199635918967675144555306869225979711324242605357751084785703520242693447210309517549213115697180501790019669573857172613492326778461975840359827217639808865516358260456862185576440825159297865473442887372210628541629443745458804047555952319848277732043850203215237318050487072639754397329620442291204563257493218724299523624576082392530298862658289991711503053074745565277965919429843750914593458108707346529041214328673589477075311584208917293598229268695676822700054459299914356275832935853078400018233879406947208046138184739191859056050050735919886904555628169771040386311785874210349273083480470364821889786280497795713457141602927716872236366329890378253219141870568881509718192283027114493040693577051732445908905107190787218416150758220698058526448537167327194133448955431113585584955374054856212718632670582485424947358191324140942462560018944420900550212566210807475938150851449613003990911717119414531557277865743423586997651378069058610362499530439444438008093730140219853187346234151516126553355802053770181089486963824618601325705114338659209037163258893512557992872009960021585242141307578867081867002636333772524020371754350278599775111205393277434626152871826917539903972822007196165385582794832682958920695838216597454446487996598185325368176027131415514968808656271349851829186358895888096382466663731237884019521920945590836214280265307864027622692450025377536417904988435188279232353368565007238990172247393310063335564500260917177379110725875052093488337420535895418093886423995659046882516703261500966298677122769819947088432926455752592120344657632712456222644296546075364062070765717846313340157049872801706359108945349275574747111148137240139586304896117302476709919194368815862845958398239521762393536142017294305173036687984935154056548226481926525168695568768998856774693069097920628315894461180739371917501966854226910800198377654821080059141168575467245961893559395111385197851419943195179077690538848857830619913483860379231684510316830136188077110488108794283477911057888596936853299562613908054575976702570043412850726687004117030737673330591687683847624558247560997320878528896335635745218855502084499981067842736047899961665595400783453762883089714628736016885781975199054644820796674798915949972023955821683860036798372390572071081153080849913331886309752950230707621572855831190416304566078624295368930824153315242510457949332049033865353465409568863637932361048005329593783168244059222836419894696565398750989074924209056781596045925081422604733616898630382945676915267626472969499625316932876529758944665612977577488422240198708148711906872057893366495546216577700849866301036066178509263302707869029382585491032381799622705280999125654908172343953714546871707244053340858759818392726693324978492311740086909022468105315250192170772963422602953027480214557908748428251330698232730978223404842545835549010779892459338108721810625893386240736141514085703112627315244576399653800178226917160101320467460101680922767033400518250134719504928154295973322428222813478613768905121154561802361010800365057797465898123251866573532091607940193953907874391766296008427231994798067420065942217999739094978348433082317861134618593054344623629212115400618044423483375328730156233705724341248185451887475703363415347365313820025634180671520036214515404189932712244144142164386630677250881338463720411304911386570224179793564703995908839968190795096095555906997221792344596741591262069184591250266843828507421357540977229531359501051277602742115103878598849964185374867148511740413237507411857767884919765926831699713392375174509337303524238557019230587883007585175851209161559784743560931799260574333227998607449046233145873643178816294903031167634056059792320876681289894607190545591210318170946138235473865585635831248225171115877929505325288383376959099026046281890958253975410695786221723849106255414737575502867507846945847545761207132199272348393688372614798850136315784915661459185219444629924613162875166406631035479066238504694562792497321370066681559252961016773585918773311289732299092356783812520909940294735786292706123055820238008690477861072961270088827270238157608835579895653754040136290393308680543692047086251733570359125945934072238772834780463605987878634672987709668719449626253209376473437114185088251632416074235234925781991347496349018056764238015020226058253938547579328428561945247591402892167430840290419415801374445559115598987751383877635687655130807237701185331293670811633621295745987778808492829750275366897021154318551671150508586240428435642642143476048928530463385815457605910427160185648285426083501143903389524711282637891588267505829972969211836674058860668217134977550021874485024433759237842829946647779260593930434615668460092073722907804618933932130610580372092901392861969268029811016199031117955187453203062107198887606509019772210667678749665105573661379201083408129176467045686432386518592461784583803919033529713858114187233452126650836230856519812509379990414266920602451093496862961651325304429075297315200468822180259051670809410998850101060714602953668169004587550902740478654120526922994511280407270719154060475332165407941110359746404657803054091029666850441672898949957821765420825954107717439130165589943600572788760033971973365866816409738445281604700467375799003271715610145466642973034082463838073327127812595135494314532389598442569368911465268735622986850626061421455546083775004826320956374998690276618028903078284230995273856761053991425341160193512173223555609477409926523400161138431996158835013662680916397916023712657825296311285802549801350442545961384960847255812469266150139781332158916350530805432037426215832074624148088940965770444218988561325903065242095409989187498198731680945303546202270349532859339117580642484321569076661459837158112521798450021191580697814807884528633691603847728868058807631738166713116557898926832341906553219452101993556399162453471142036600948069211514625080918030614699185624760519561219384159250831227078833635349097191122081791722489333463078630296315472204864868628147545794335029088645583084948236074691270552273213684879327241594801531229910022987103595488734255947554603018532704682386779438050883917299865638929196036687674837203134073895900326341756206915576356861024387147863130102873134989882429613345926633120944970642662070462567794206633153696068943833683292966018617793787192256329413708899517256707611202254082520662717903189692677283100544187894032955008570033462440711066205204178448437564158571101102252220679529093826232624492700710809876091458415972137735858233037386563904925500992406182949859569452623779914367394417569793632654577170014711181231609943903291672873530896135646867986520726408906760676586584525675326920024011796316386864592866521022262036836931492723352843090457660396877915353239141140776701982064267440625430095640392860328405964573175318999828747991061023096981181470278383637392114309899962164991077180443348838853980408003012562299640969286958169274653068121379081644201064386030825115650656630202479837186529733188452124679725560585218570626075283834606135007700476205640827730199844873005182989736346927762158766489046900809350191060443125764944874962477022893579818417072541941923425451989391088405611362154702277219078260367327973837552694949506883967049263292546707330523727135542298619414086294681657081567558427766570311873439620944552012508917705149333978712907097068832393515997318110933952279681600015901103992333184888622618940406830134919430424747770284038994061247400775469736275719305120443093083634031520194805178387480221633971592252765041108059346429195942528684626821755809500604354089953412439065704749411888797461711964367780458018927743160159361841263801242210276277890810980847191310914086739198395204292553722402363997169968711163065572498078972646583044629333148108559381960097267851378428540960624150101513452721639898430489800309756492333210200153194751969288980687217116121345413595856440642341124278467479571870294568071918681175544442013669007042244482318605330288131435356924001041985807043730326773805689088731570940230991106968153229740640214122235629763291225497838445781961400136841630260529308748833363547537846950588281404636828395397150651270701418105350724493861867989926911628477545509858082306838358743546468135502203670162617528138985600753867476056815739912376021732732386099826301149876093306560908189260304368750304016767886610140271751470070232620079913336094801191585179551874895033523081739900424620648397952123793482918041421085001438517675983930117844218664059626344920896892273799861297928870037872683029309630328650773861527390754883572943562521724571507766334772398426617394949942151111196740891411504393650096964885656744199060312668917719974364541316890408634792379106757988074082152041486419343990704740827439703331752431312960807058270174042419245851299215752472407110344143869888975657451536488276283145268521592385702331590422162644096122046745347779848981618249690024322208721521046582888834834012185849098729589483106016070737899721138504182276179381514993913691781266077495365258667213295151660165557406283311641406742798820689922996848682657729305926736736364159921094277470959294842395887217216637180920310522358172231500798767665070847350423170077463043519999576111232424939269387131786837652778261996041660894511773492317244972710195301172782947557343005912613563656681101107551541311694552071475972782325816155742775762403880567778701725986158217606307622537201710410435209222094059064242470960699071237448605906252313208733774235386439567829606768903692724884848873990006485856728551952243761532415813946562688848115184346918262863398773413593498825935824127544026438527788565323919635605269134501923413818235456776497827703843191247742017318470237903602679956761275270837958498507644963915170736474548514928956635847243692491905579446390570922411453853413060282669495441150488937494287064587629292236566915724253900175215397550782785935432563278232628133356246838130206781722335574580037508855441270019190993368970023096067231029007329589587339116870047274750914441584894837478017880953771221933187791628237220380849022625998038500391837954789279782122146144088817376390206239665973200670766355138202348612318386204076437533390102720844182860862030770728401417900365887013313608549747909706902137345158274102319906319386217457665476497798533706069176064835724276880474317734747219898439216607297948841746298921717983773988780288191011282194909402632750507119466963071568455688477148562203697968860336324540972917322037257009901174273070933353327888045577244124909870858939033442208846517956837832162647781947986951654234675577682178038361668268753243256019893226156826148952817230616090011002244821242073289512731849668436523815276144107828538364193968810089922611718126775500354227192267702221111491422043355066169527735964022412099362473203755473567183185685664301623774851793327203593817416512339385154744876565269145174427283541922192440780241499440534526268611929002609351697596186367688035091929642068535585357881156702130249364496157794657234334760114246865831647635104246587314406887244567003062147815543588812965103035108961950291431387817862508856971351387954423751282828678656180318323287001807189965745112160216780431906158246161926116718351154940960811923384133631127639188060647960986072535005336927054089945906190655356008105300525131982441342145902599520653678585179164815992633575036849816529201872740716365390643473781577280140758251447969995662426322566335326701019149131114794605955004042269186327756337002940893929697572169922600265464691644037749750058766768603529680419586625286099271051364422979663327372558911807558834782794073333330175410408132984480779674077642405200264495882604248847531130735320831911571445034265405569407333581535251304067464917456891488725168191858425484094059919330925565665754351055809131391429488674921630500002680408884813592457953801939287892376739359819024217482026376913181339637786519665037259359788667629612977039577729292851561636217704208184385892085879882891277977204608991190822124062117082860883687784162114255273108776888536500449475696763647534703619544470662484927575848850056928487177693082352498344355772609785305970346257219260985973236975278816510745083857156040242949844246925172109861108296415146527577540537089708427401850666843166129729897871110897927590303804180911895527927504421223332509358077593000724036579064723316464673980793253066305759266115387951461226188988624136218730881653768759789518055423427820923754549862390004542559669360215788064145614291388148726215400794206477380705868738977820610752937889151013356335998274393882541952736682692197431091999732657153867291376395851099156544406416624906983081561486549110750807568461651165035473332529148972916262561137577044464981041008045672945297880486363468031376313221464881889301909037009245946725636354768211012183094124999996927159323467279878522008355784238042179698601870880326320364285519390525640192177574641329856242768179285880477201535815302345379241009888467603489182128370761925077190029206880187398679590230335309212315746866514024366948048053101585500592464754142495666911079542859142891828103113135459945527298893394227121432278091446670365680592080486927588765036359191848283712771683920840553905504379674328931315126526278015028198557431244806585983827810741710274739508915236353412052695811981928944596987749280239390358550632143559484084232939890533171307540445287118865129516737186457279238793354331603168849253402956192061753247426309032575787789738971700310641638461512910231859778585940571080513788145720598682267663088721383506664217999073289691080613524629653949347034362785954566156124983234693813726411447208338808869935411890687382751380490203771398744602373996025727413819436617284482738961488409144814170103702675708707147395554631388549155295338154776993732612820881976787781454672851094846572497353555768445278597377125795933827954180322438311320769399016902591436882053770174826159012318371446196267660887327781862317953498206190813493660783628151318286134187189822201450764209118228225761334651956570391880680115920289327895719545966910520513229369087768585078877978011633476924710191362946870398345910591804035672214670150789081052562380215255405582577991739968244968292358439241050263249829530065930999470953814232836256037250398631914530511956182730192933604552904259543838410738231100896679571003429202913631261857785297987562805602101440678017846018676824011121583759408223268602929717875058759247697518003200002696688241454219585875889211794446624688759945767321117103779832886415658507439407320553456227908249443985954935983231002469497937068112124306458400154452753543113168678322152600633394510927335573629699958099682342331661784888586396847851996661883722014462115834989722755902171991091904590420169488244303478861275133436131416383200555399171461272649986085511876681500117478501364033063058523802965235904424126499833425197916768971339826332800485752227269358073043908370724688857700841992032917368979172261995100522229674339049955268726858140577333944656149639121147216392650459511059102360296697055322108215459288474818811485776229612636939528270712961524753372158179753241638498481440935063849644466421147488320427668815537114880436390460531144877638862594513262386002925026603522425200398489671992677361956960705596004384435711033257641023871268154359540276873151530811732189485448380853810811359546821290918039370343520519029811156405488642347156093992572221610920452342992774536239633181137360314081261818057552192224308363292987651437472651450347935377564651498682287413711165579218340052652780170302421617836124850308208594349545820768706598535313147293769808161336679546557509180983038710685020128417517795499843639359143244343999672640591593684673296840942060169043841229451350684472781815747870214985038786003497771422232360352753047892771053734289089267298314499382869342494515088468776297288947570763844810426155274240930412767681320090677199035481897813387700385846074674205116421492345410873297677706136106208272154765991582652970069471934232645020975725551686062594204047660280326876292439254476697391554063823914537599457520180066643415950109753015728633251047091361495458253598635494662287932618878605394593401973473477883908233581942505791758541971220361563229143205879275666909349032642972351600850165599149572821281844227163689249292932165117784389180427306920484251448385459926487564465669479105191987917792785772242694551875687814847924951841213129840611954025785761612545843255583468524771079462862304663000179746022707415655582567597968375608924034820129574458787252367854196317856984306560910354648515193326561816116630170218257459792357782045855364799989572508084035732357215284566621129533696005153694827641967692236520959735759866825457514270746169531778758193287578608093143361806652505743124756909717068649532881620989165698986277002966735389271599627013320564355522837006658549375113143244412698110540254904924057892264161342857389280575216020209562967825331598448831998597201817383516588670791081822025868381338143283708988492887147456944790426407489257648546388758992650831351892433457283057312622438777800321235099448437428622806146888902939361373703012945547859822608700162261561919758200174264373771196944962410934580776489517452292719648749376946536555080949216778339870451859280936161165216854312739359182018468286946018723926235738168128987622642377982836224307838070443850139940735109806462093853244826759374982315416365079072506252373856631139056913256812664008917675689864379692997289599229600734567479865098412226495792165848283263655615998228076835383312000225851270476924582333237458348200616490925006232578579223469671793638971544248786888924838004434993638962913532374009934027079997187450753013421483032878020192556160639922168412174447040320923468870697300499929335883735222627699663038608041962105800992818877930122947899812971140851042278428135793198775364153696057451813238790059395223574992156778382663539402956186103266965612701893474000145203437848314535608863963056187026127774144101629249678282766804612910791988268819270757822098863893215458339032939971763737238373430694260635915742409111724395758101160911682986213068486732161052501466456154099638790386310515590776356496824232256683087821836265919959713164643213727692285955849223318030734277181464731933831293133729152365683569159384472382141208801433790447700600686859358577551790749695134726980423267199485682985191484201178723358551012246560180739172436039669719105083029129745832017564242520972823961831164818947785902828550585427371431511057209889164698126636580279692429917859453140980708408558233755092983238249609126788127128978569842120591204692019299312183586165895721621809179532900202577808699561326372583243561685074384586351365854481105029982096262467511955791062621410342484504039684847345225122510564395112672577279305792624354061032996416934103452712516944279372529499285265310728998252276844449225521688977015974702820187118168720807800628824673658878539761841016842279026350638677015733845182123158181527726353898998652215497322295484266965449521047168554063331008169593695313360496450964979457124951154855234796001317137039067865015366700562848275409743352896920944541838696360888799231175716983968948544352378868643222626754881092251733925841283625671672003358617585491202914724542278486288950861273847256678090394915154384526475662962030479922779329409826214554811187398688490782731726364288141375918665100623490194080022715965477766572903279414021462692881541053598096057664340856475344028622438500535029404178030672159166096092292188556438296057057778929330744698274405209204409243418174954342264745468131691834056391829070772408031760642202282349223766863698080311481984195287826628559363335127029806854131416390069112026315816628623283637594787561644220413753469363538618272727413706211044563862901615268401729026097511750973571443471652337059229947806230440329679778228378066821483736854174343178051754047749024211132322784071202807607548600683338253705398180706448775146578544365469871230938065272730530919329064379246832094261611231703888360452608211205389082019433087299317700358161492723895918912339759113811641825635483863324785594067778659531864546440090010616352490206557108629368189269300414831419654919849613619258027137642923496598362672575227062509275727375815308911443388330819242392287603585896772959556613502131792535426448043404343846997064474104795794492631482777754856073423883199274830704409961403774100756211271073828852860306374162331213789265361747371850238203427015270747700071780214177769481962380465633116629462625681152644275247286588651489622156660557910380986126781025304455040538622981100399534526896851014382548510017817264643625284525049202193107308393261881119893777855547805207838067647273003719972518720643376325020210848137077338781696406878322748602319770280487872326278343592025332524887046150750979128791942387300996227162178611049373505070963707246087821761488438854953972479486338869379363124499009403216482732180842969998474588684233864252657219362569114472003679385984097130691913003467559528479536195888220798241031995116986993265609260778527635925712370382140769996080556180382684514257657457898241109969866768208975394270332790060131262336520633655002794243860434071686377524445624941089625293251451892331815285536171085268705960596761701628076294098483152578269271743945227610359997140011086934247104346281574123789351081243262575213012895032520237740570681020303171862107000114390663833669036129405896998358027716662537240577940352542307541047696606054883511935202468978797271988455402050004067205806917881867654017727413259799968633703826285326008315695870063689206548458512171321273365739833131883506958690736920131624957084611657975180112619173996413390839243306444173435107795096409282078234948720889965164716048270837116276478409267701752994374206642966154720643852805059256877600882872973064238192866416771455067826379712743455081167681291235232011320929354862187420133465071115857270821566946122206098839863676425902108957810412127489839510578133598787052926010541226502066684100536378515556431660395260336734619134183854402168596108662100253420207708852355617426377744531220169751112285553323358060705471375873995181660177173948629210104292376525442698108419669560947458691244237013300589329689370980449930863724204671951449380264863250722731094912462699505506225508773675294523609975240571843296785700235807367254319667321450662025395456560889765355000985233192939572439567922703194872167848275087714691610087480871732949032841848373802865488353874779820042741743098767465467594818068326956814656028410896445936550208601133933649839807839864516457556917895579585014370321544224314151458350697427221712895203488696781304830355763155168113620176884980524738797877160508212174723735975909475304449812249161718595733406867544416524238052925123023011327541554625773778880330462549813313777121292113235136503885142410814758971717646247120799179005638951830121462393137441101292178837468230993047277220972765508616838469535728961844674248079249684998804052320461688115032974110536274136295692698000143769851565194702211305443543053253132470310366783283354506299882085628709627204284213229691208009121826860741095226033281302596321292983208357408605252820995585125815545192611440678640163485676497643353092665577627687498948013734132336611328601573976034188495007153238155957054817006381880349806692877669648262184154303140084943895897623391030455972967233712307815789730055036057979343137225743971549999230158964828068903856092063706086382271411992178727740165130920723699212188318881807551071147047420856278016709338573499581940343512262911265222913593987057190659643538884275041345929668739393269947436704986887632510692470098076292357040739667015102380889545004691437293541425539154134866738015413705236426123538334130271295140159569623134518481179682126264654036645356731985609745513335783223086311869845702500759147883627614642738239605223738034126580704215934612701482354531091599772593390190496730375365661244786655858851330091806259999545940085238030092015563787110566977059320902673251240738903329663730526028576959664927537320794799715615486261153893211932984625085391221388282978406317253317214109446669364526378610195422800408719849203467402332456697679415482378839129619728864653473563443849737714236795035329949219881575096485901485356169500715552430935854901353336603331679661432050383254255960168342543201392140537513208135223831069898552720462584420980686177324519924171645200601459074341779082166116857905969858213910123734004668708832941221418788719904882024657049561672745769653649926359475440282175245903323121512140922150186634329886101590505883586416378445117237661358291555141590157764276405030010587507962316198740634069662863019288929233640811049574195599411281861579543118180120595655227548201635032616157358087235138956488449685394223394739034464056375306548888497832177236637681794344090104489549561293629356084687491688778936736691308763885634885299433640741281926062958254826688937372265639167443444435162661409556313290204092504252428787606797371425962394003252839552811144119856093409294460792838011401195845959389217683322161564087553762556421353165111993629660526120741839613670673441348776836064251148950395436772240471023861856081899107410475708794371077470801260610917021985717150336884542819803878381935760341651207736215034639685718785845469546261337572735983665304920793549531065158489323539560686957994029415600540196321340456181443900006107194523093794991369683856054479204452885758511609624832592989707703569061981872976642766647995522847137780798862589305145841945588413604266917717580654923627256511310295526933140079461928587127251745865375527871579073133273279343850369474374389394437011116915646526027565613835894748651760812955272503924760243166780429227678267868581342496212198745773106893475286485085024134610242220296974148627037859341188490173460486828080841658645280990120182500657432840673840173156461251990511071095338584228566001274845269407888637045742717731113630465581268984769690888696536214263701517988194684447066381359143855777847234805777025073794965987737340453451713966638347920680343117674911652641292695192681016003599168844534215928349744319716438162396087570044320779111576274057218193769277307528337642233927275635070653987408335359004634479163555659111945397989984028716247463033916386407570596859076559727037510504526156735496191879851101978456642186717861130504034575857955143186047419167883341531494314963897609347785411346144642225646036458821497076582560397276332039999939489173426173337950526583125258920090432568350919675326869240200010577463719571333546081329841160001509883732633378260328735792098026653200097804951576786309454197679638361754058814325679076152441247681004403162960885195738540932426306897859259591717045304698079131541923951093298963770282302956665306004093944125729190472141138957442707631230282759481045270676049248785206414443853934282100499108629913837591557760735182958309549343813178206046994851150404973895793526263905515292316954811726562449636226029282244690227698587150284429315980364289200540773096482364576684150570480592418061758152149087498156495825947533176785343890052669321060807828263212809491470473567475430489099637640890057855604703954389902297574785479571668878574688935656779627826884433098625352506316182680984279947213042781736329586220499343260662219844420711401436191641967551574801101611023269573856405464855444938516917785192252756098838773622416817245744540856353947735265428239481299050015838630135898844195986168930666176558132496918222067742654998497037564473446991778599006607522264547727384480973852683313134785067075227924986594795428352479214774582995605360318867782403589476269430005291338898075249517364978324214050952126989408203724546917066537804329218606321754547546210144057929537709144025791739607839959853475224354783319462937936983587157249161698556559289357910812036319066499182992313400555874355644605878847672116398638461007706815399591583892448338771288746119108748690687383977147146714010281249195237479813458618591861500764734697657876555075928833801425530478660504945210451579388625752287243397765075382336281245751868637814830592772563401516198667048099926506344713408898460442738117363404525404345604201109564790738492120327575454866723166463035978587289463262787577163492980804788998929933261563614498584962013127338619035777674002225400555897763674988870566840849340972619779148885109611387454579306001917554682133408032547924894531575089576754364974794926675143149822526233166541651364550237025760873937230652519596202999746332570630717115209926243877940066915829778028400331482285762346767482185083067436463221549410509143733038745122014247103705470636618013871866878422440230100379735443468282076155153357309575789231293132417895803602250709243135363962106546325480921435398103571953296572617050689309758678098588288391037066612873221108161776836054523621544846577081721084138991840874487316275890219971973428554763006915424827108201602717722617889421864641916270096577636570483879071066326844023522090706719490526179951011200382857047905846896616199112143570372637598792765817827055792831499740967347399522644121355253755323139573632519510744018291360258446087409639731109239605125546484077373788248746009426060010176897157990943733228982879391890630156976883833635627379307392325869512710742019133388442084748853192671264121107908556917042935594546108639603502917704002240897045359244247603468941386973376313430683166101733968457794114306347529778734161779450759528917192820761716704370796622191140891574345477968399695618466151948093158661191270662620762013213011681311519016194187613785107380684852867590976946554323053045070487142786442469201176743935029328421220652741363061492869204675010520220280122568619290925092449626156177195498289942178166297484105380299140639533626587059056632096044288184123968928427162313745629717053607395556931455655428493806889182481803092414232210062836762261472693257991977796552046138248336240933474026943097844157650144493080188089520814199137593284065493355921857535494293614273839369820955334760027283531100937741186604063827727701872054384591981920803005636605150803100529850874457901714582874273232853971462811389949375094668761014706609865126845518601232090965699525091546864434495122500792387168398469319270746416641734308990942667626334292607033128635604134268989577976902963728175305368691650737695839482138614756276257631819762310942437174015577199427953222400620855913221156349728090367022708089531050713531485329997994364465593936701069190743197304075308716172278331656733867851395457219873118478562154439874306649886708788257240631062383444772113475465741470538229708720623267160524267989891098017108093003203562868994123943573558836936972071572913727147700156560761273279131220840209700611370466770420630750746799698330332535371006866540899251866928408829878256899919814302380538058546637667677162111627001546131264004617630816015209744934474661454858840999047233247360744010494418769250927751911892891758347308054750183272682095665604203808910450621084525971044729063630128868290119374608012094970748391853849949950399397649730692622600712121717557446792554337033653343773936695446903428189204124686129985923660880726395444587410214950561612880829849344209813893617385650346461962768478664617752552018305869313010642219857077453591756635009334680444497298962431101210056959962441277906569732141223378273366069927228413784179391322704735752259413722548540068356117473798855611489552244879539626022000661725451446635549884091599002185329541599283984865519296803306318737898480024536343029843954097845528154467329595205536809020563481870795098707351282604626869871155088680518108975706226493809091798833058426758550819800780210987782947413503627558304136329789721249561681377254530545311768070174171472394981712575465878974111712825696612912676050702018540651746657737897162608399569954555080987104891212735448686025282651119478867270269718274387850034592606999031053265796877627032199861853876457837872459614723367596499330152841481211857120150945706099284969279307210397493636286757837744816618056130358908444873076196992429055873627345106030058616574559321538910360778904575432294718948923623834092780066525586477542534167641758498835648584462127569797229662187342562913888561406811339774492137958258029838887322385458774321129133713948649608233505507853804881618307383341081845121074951881087850497452952566500010710593329970996096247797033311012963506536967656629385649502661637039756487888850234956891054312378922833260165332065109818823411589974521175785342910777076451638757229511219954059110556007276999992313362686060154061881781488146891511668821144261906772602449934435198979067490144676147520335759283123625023536218522240359461278928760060193876580785863173150517303578121447323997429342026829017480846231081398923340244796793601832167749052702389082913714333150942564230809974983074212399126622931737092235695881609893915346778667589962839280985355889931811263738333619328616358403766879338473465166041070659536695509081731361074222342470209562131683535936722702398832283778383177030358691156429315507500037268846769883039363333790050967709214103791523484874296557543776676573388431751880423911823257537612276849200762585342538128228251541556870398679542792373681909587288714535607086192878865171141366088529948768771215792574430935791636298638218975379899313395557746903630132667517676100749421402193611145664105189648089620981117726012384686579423388132292326561659339595514387730082521744709982065130172832955167405477368537121381645753094661346500517201506900920882383971828361809829443416231630250251489138254938420280284201810585912993580333571650935490359388220571706700282467330863504372219491054699265322794463342015788978725238663991373085524938647408112946283115416318569326023837120402320133426301295062917180843820553455946867049935324689291731342213415128094830956024921515405733465501912605437184104093558884347699635992853656204304937445781286626087127200601208941129006788082442460789363200469726105800616739799215775808551230221066886714945327809304855253469545367882586452815984134145733614868454343624823423347705235587937234596698299793276732881795623683248512721490903401402512359272004339589539777218071879480880090834045117260132504027683576985395853712066963554624133270608402458101209100534581414200189150199325132091642683926551406801812296974110175820300725353547099839225449997252737576521127095185109888897201072807741059556673249977841099410265965480322228400709574368116338567420459295607214974866797198894518757270370881693530211468095847317227866651320532837012668486287829119894897973145036076721925256139134011165614959810312824329925606890084552823158978010679994594059872789392564698592546416941020917883638970860084734654830187984867292911739875032276222763302862001984230949742813358983149094831680470908658255169176532210122935214148736219335576264374879763178449813238063067087471415667432652666610290703165332226348457663689754766177106808893129587691383028807974502592595129991122499112549082382494811037893753715671635442265652893370191226436726994204491774181828648680613500762734054261619374846745000152224295433783170245179577879923723818713273656578797830651408197494165331562613910981189751419243001432793687548295133162114250012333535398731748598884459778199517449902449049203210141163015695442820153186779447290506209185489791151675186311322755004190478250424871316359000032421036008747607187977714684591855934434112326436603700702338663926046630615139790989164057795914063287389503721294169584895210475845653520230096831402165902711117302067689253057957874402766524240614854080618574606885391617751515941567904730039115224145999226686963634863080769804932335778921655906344002986228469538848011633639120662141685043558000303603948465551292383915615868076938536073609418557923178156030953911733917458471169628438588255495263015449588113287727357621386626331990139319717079219741443932131170789674116085212885647366764627703370276499726558532703099830193303064077273129973712859656866781515193979804809747638052996307475711092796643635299928066286741510546365436259551497317012338427627015253967942904740891850897003018589442544837404204168093116035187224043553397270471879503143177970536216740749688045282995692035448711446151182719130802876180113333284907042716227109312352300003239699870599306416292325664550806720807180595391795599711226926973385341226781547198316293951297384054130351982905890904646050838964368648227001160894684760105919431134563593837081120016695666702566935918991600285694824890919085062885561400012194397899460823774391747272207430070750498311911329990182681790794467195227663783425725895236749841688149471295356351123401021442014025602676787029534192858998585367125106231719368850952891869489519138238101808017766267204174381779672229463478396510525553573405369930277743612101388636708797987307189117154919425670583860961733337095433173710743034006978575444504438559950546645169809223736610889690708884432297846854343419271787304091169482816847397153058163081327702440876388846622558979809340930597296741144726125128784007147183358616525720867409865123845254282005372099168906735734529776474227883561343675695399965278335030127702829307344553374211234941872446839659545720987984236587504218010649485514933790567087520313910823822826757065314369114060740531478507340858489092107277428156766015980291588226087533719934044518419247762644641750081514799597918558663245342405284135669982617640537769550386593697657550414850344153486866286971578552986232726976344155037190577488494619245858921887338920788236381011588702060191965230159093826863401022080382216939050879873996076273603058016997239285375874693166438848111277720308483861795742542476551366330793269646118335552778376512826290564487689442540413412433042826417162301826948184436008970071237852078657326750775432746536443371850470525234693208466540487053392028677927695645996099537401247495857265470115696215177846290165447507594460139092834005070457313022216309295220442790027329502076452130519978856219115022949663843666199508454724466327855644974601026104474052315621238010776755511321377106114253295142406148282085422051325612917971913261910439026216595210652076741518358812778821098522481378259581623612818370371651837802316819063217106665633212317715433339795933182074477631139409792044896659913817312380238038765729976856238006299086703877501814343859531147479805204824271386098033917085043108455451556746790860126951135120784495028971714068971855017914995696804768867434551748929587967433787028697466499828689262957473970536488438182763163449946642285607726572002154772855994074412132528792692226484257349245114777039844016316844418775660171881689689385105976053312450787087456560183007978065916969619407152213055193744192082986711744463690496100599165399116428375886746466971003232128236289904789192976213629300338833313859118362223442801162466767255161659723769900831003888980575969240696860960836760112060118482220476114101042157836921698912276801185115222812760011623407415459102894364870119967829013163806878783105452359066522875255489296559362700181361598077315784618771190020383445072198052569510652974778586500224243195325822086925046827603667586321271163909410668799491390265146943876356805126382948460697709516688511798360720848321652608432690832083226795470515311408018046739422680670705900482154011948913665547452133713225901801897661596880249608931605610029849275612950695876631998064185291992815526321025579437141366247957918403320341827509116687914117402864700920240948458268448171919317334710419744484205567479846506560491852640955192076400689631707283357097293829783156900122592199825566218295526026184668660470524689582280133700765621260711180369869727835504951055613271226514883823543235612871482136145505605741948553991739133916788493295415170376030686022685660153837885747374904001054400114527774956925371457084478935574408092363137439743035997138720085108468665748234812176005626864976302997237893617762304620998295088739165492972947295117187388980637940956927602335285613946581665871558324065576007739780248521858110240302162634535616957872997201421301741936396130534885661885767856077936521086374690068871046162793412275129469535035123126516626120401555586326249153428001816641156975961065518818589986808996117736550445401209949662295788584940957300635398777514478388799843972702450291905319144622509163102285585795499098160035582488151047694712831015377944201136060539790134998858717195189096808904955692681123897811089483849584448688149491803148750094198816654240028046721296317931909143318150385485256584944449116321825031552284391622949501732401732872382229014733731105252864877325109568445285038678333276741152938430682519435557009835649048748160165419920165501204799877207197968635457034275487418385008558730169224877558602587822865891079855430409909090057802393000475457887202203688102254724000036070901202644974231212827792660479609344861236103654248863562317437887077517837853142415325598076083159656131572761261819824606320006898677523767503607712594985173994956809478728536914323026465060332101665868042993076773657629363665838717624938011906806149768057107397510275467578375758374368586344708044708177390358828755258473575803334785200226958408424536472122136981473589973303389221580329799802780776683771208071210396245999838170913886985397642695080616206903856069178703436483970609117682814988601933184441219256489572957299070607743397600403376210358613251093998400087580665372565265854663730980083204296814327088977769819509885058738091023940932460459271929692543388625592777512316496085833008506518188208058809724494676733649834943698986441458626052666830641400135040978460911126892284471318568772980841407077422096971759042739714139657592562175177671930011437507541059826330485513687225060841236058594733031366778650954993436738634819643299893926545523008364089557644569888981505452653941629026936452124532142091378191728404257512633026638843390985464381436798547619276802297192212759562897305320039924444140878002054559046560843754796246130754682243499848948654345746939026194228713866258712278512780259410013226124377648922140040133301593759297319696398130420925069651035772409835790229930005115792302847251875107584257768019277370048422230245062060661663702881644561917853290040249650193134391630236017196832339347807462598796530099771353382783642252957791297116769486473534206699690784957868325776227920993385746128000237513862866334893560474053003297360074939838920841023455182112916105066574392861912913338191860577906382248539096926669839428450228971644581985636461580437321120125159123691580496929433934585693181766840370162070684718444850687006723629424995901458740626971088830654910242941931471812634125346010049243308713681319772223018287470281286426333752845808200390529347182079513582852126665458594629568323182598737968862381157525935169113772925634870147922778158671921635599664392509958910316215792031138347772331894478122532966428742531377306570702264367117633432294327728918318918891508174388750202435956649143408786341659534960743826582270700146745382424608363338628876825508427845796051615626073823873952301496030957308093530556010411272799985499538781674265190254284319498606701980080884767355455960188006239183858264421864024392021275973545846678211104680056318821918690066130565442631546605596127362275624844106219735699155584121049788893962727104646169860809571562637770410781453952101129596076417003915641376885019184736423227455378236604877386686311613989054042216328041786858779893548881368854239032163230626317334829627544389598738558759158390462245133054324753822543344940786735197617221029666689767740952826261045575600327198278860933679614629355361645140681025659677056249234056792769372423748012872972246274985662548849947540352596046849167957598463714022360924772888225538504149586591108669651529953631438033444289887272669971001025103093299506175447120288301506904612436851667544487162698795769696756358809151499833134336866561654729102250730576275260582630571321280268562793169676743456324050909727556431989166653655431833214812092492153733212097902450244071662059898046694337712571688656714855555314562755887587822788815974547081110554003515831141468037393002073780996733851864134487761331451668476786699882256205389755259006110777410189912160123302141407473395110252577619165175319353713799198248982690017563802278738226919754397184602612922981203677273767471825485758709043272290011712768908476551242182409564663189086925843276246205740349092188711357053368862212272874168448465972589396722016471402005786654223602736775658596753899750686829164004988332887694393062919949283011941262135722521259835899240440913318093249267935816113606369871122914037349716581493690355421667692840143094792323515423631935105925455466904849852110094222268944802923987505617665077937948693844854403344129028301539561326824620790758134796876676769436888002052821886846015237388896498877772220089596783156291315380169934874745829386646606176687531231444579667437931857372653385041941668609461241562536116024033109838236796396076311998216050914659359391182443721861574428990514614033678779257339626240634798383620710720357771849593353832560156561457814929507013681107403458589178409222967404336343795677708688226612320968223165207513130006561156565566276729536850780100675219786977519015434083928661348396558989612969541124088422884218831203093424855847481736991962996797020885038017866034222798623757098763674578122472168546634204319001353556569411461822030861244232350733961013389186180209581790679718940742209340582137778714663765011117399574687337017872318800861674611383988694213189299001709698139498700527627055446866431253217561868564904784184629189730428904594652827161878285526018145078629399148930315993566638478151104091894374865757550966738359422367128040447858576368103998199948882763592950767000001971689614780728812579920236529842616622200972841661981998255741986459190378774223651182027251959253957155588487185286343169731432857126907143440177419672762049903316025886854032308313891409315963627624325259646330329517141313865753587024475930200510920694509414888544483254204317515259199290611931216906676813345418628467261190887437421137805519721468736591116604725324977883659005522808121971830256816718090242128681206946771250363502558217936406597389137159118399128287104937220362677737357095577860282783186425369619539695379866696889166423380344175194656883646939980006839499388797859669441832867021546752424039513380145693013793364479625873636452660718827904668191829406726950304399626176333609788024676648849549101923135364917843150397637133819364925707355577300323465810629809968195981946289911883677281246410294005243453051675739652795101248730986173843967156266615566360739500332506390404095567532532155900366284037591503980552494422763269352375121622394983423200935045798216365433484971662171697593990782392717316199722952474608650873642401870052551741717227375468367200186646360362292235566005583059755940318815781905018085446135309059891823028594575899944201738244022565349806711949423411301483470623367532942690811451447612009717131209206589277406512099586824298593176322097409694456253994912857837578551643488285349962471189775076539030179606761456008291311353233204479752421846700680051451726442383294032878428479996469898045452880783644001671808234531503784164925121442418173528798931768974156400620073598424192195920076358145629166649527818249192947911009688019032196986432649194876806966948643073681487779899451629704792124063457892049739027587968308831830586768003955021001313634640619554635946334525071188116353975556603702335158300838843021805855951288518661545663693775156545785636454091257934629178947283992725834887453616267339838228976469192570431107614587738760073766828410179687345525278530296158040711880255090642658445837350275502725712691948717734349590615944114081032621582229835374790850395637380607353752721474068680781192074602643525117860302071448544878359971722977714145267321186066895691327205732838814703927242943161987643999978688628963735998574307626540096822008194595720418475072055224273065932409967116257208667596464087874475428746017120181630443586866265482377341061083071864913570450242737194352424031914623386110852985293509880794022780537747757794029438722233330170774959776505566167838942101353274104212586202857185791630842527633941629488165322515599103560188616986734111212923020756860422997195326756905859098147525924855336924834359839257978974293868688413792616047294512002897540739125049335788115165719208210575074081132828036154736243603767240211759956671677059581064338662388923502602018861423386170663290902527449634253915790672104494486833288087440547797817074321831256866845427632494716104585600824616870860534529759200775600655934064366038206922041874480927211486775652350582944278354926536662722258108116815358361453982304360824182926795349431033910554350566225952285728072826893312701824773050174780103540531615083518061963501604835653887111816068408150127900766869281357683534650669956057259564577352597867206396451111602094232682974557604827282659917484234475308320902004486063483927284209444425320235406196181121782750921808228069976941682618470818495783699408681199351468375171471258662376689551852969020526002783927016871887339838272637245890471294218366048618317169190596714035676179071884059069921668880437180153365261585380469329977606787456200222652213297363215635741847435252217268228865813628751268263711623112642350338640429328110319931752112712556657396437635765871625361186492394250049941889487459955556330374361600465301646745592775000602371183070804248245306485801760181293534583604035826991732814766417538921125748825635451250160554434374447835178544073329241922056784276161964451652814832267038525507875715822578532820516460836368436993533353734141947837593066981871924127544602628097243839671107554291727074457861096624987423205217230115445689840633733765916594184119133316741674593138797933277899065374046608624167504447451375498223193448886082173558496015856437112272910884313551849686347417762707475438708043029177174820078446927154245129406460487787369327966342334160162679126070771595473590326508318959802267279730103926233237992049797763415872716902961840572982705961406051789598356521483919960646059556720471161813848849162846504597840621644817278899222571156240175811279181158688473038277867849466837408440233846349607134807591322179041590623548606763212565636232551580923729410653131205242712146645430459564143363342548879896748763197957831205000813274994866312376529846240704253651416169816573178376739648045200982600284373095528493140546457644910071501396117244055069861100962674517157151490875924841419724679963637595330752963073252131119638809870284908748651965638068617697747583712691509279913104891626618332229568462469527671375760242047924398979817826095624758646848284669146390999317608550381069311410967225518590479960156923962309923516703547751677772745143479383451428402031298897577178709140649326787402528805894510064890440903746039686301242733124148030729535555845216116709468637707086828500237747517192353023250973867154887055828824845684320084846689003062002649893281000558710314015262379125640087718108485522805112134714575820849509500058863013174184253150392777268209515662010713125919851702624662302279147652648483529327805871596851684328757918480172960858245921258072175168049614940335182885211793016133526043952995880193151741868194630336227855797570117447846531419682025830334294448202995784197127421521688959313835599050077964861247010323950219599735954853282584464378859068664278814720129269783109944693732558798884306024829418356747339057236216350469735034667861723261815390919933325273457307617194747777536085055387029242715993716535184262302907994739335187922913406744606232776004419314742520995134666033704755853768906005323963923675059817902257520742173932205104026487904976101988205509800502111744910749595017737131559113560718828199271406806499069691876533777949630462169734993707322046883179105841846210352978860348722135763120718527590726320118277499449294451146302457910749611807526914790454499556658063674906911810947452897333429211594751875939334233091177177685384120857065130577770759319044877868203964079591393927436930334252769616452964921185098431372225456507664043298312829966186471095572485469718827348725884209920175215274049397681319727920527114262580727426922297770980786433388258596793144991206215567248135898761824342513453720434168553468502496674504150685674826649497619689950916345543100513033993841902511143713967934134066928536561852127423934412737048827968619724702072657797169186592159202810712443787415043389788611832704799896407977364074261890888528553421827709536596891618942883406264487308582492853864924472503285493539498858292101924621970933430693478751183583179575785167863736010324586082942740708949414296172797197515915091677024460595915107406294289902260973941455287160139325332549264915593030127080916080367890217340308413548939985070427828200169684371328232762595130247087915396868886668877635301449595876483481977391176072912764847735344227731608540066028561605099841480406263999239516453319013184534000863063529762820962764733258281791406894893691533872737725905996469301576345963359948094220013310297616246369616337666094891424944644755690546285116215067489825270841824433065265034769063882071426156912716069372082489271720892979336622971414384268878561007122713097813510782496529785601511015359742957479115213277740130453094193568809552076879087716070431564182247289625607287552638838885741987313433960576946103425082227283647403941922190840473456100482020091579494303862904280541817370216366487741891376532088937820138677948643362413385385548371512780397664780696801615493691094976614845617840438311696511280909404499739779439612354441330379425572767695015428979160286035074151342568021713714019696979255623272612759333493080642813871594645330005020453227925369378115259683862593120900697200157715637205191280747317101919211926034247572106179317453130527087590497053000089528188964653503663756831647172820988656576185288086461400528256493343358580762966375286609437136892236126837806604493697116676841657458711800348879388942101075659757010964234131074789750886632118072003593489412728008277717605408900762621993438059622820658916965727119609877405018827385626188142835873811839107594853173031238348519441309701696722559967754837832013824775857059899263369666330301616547519495573108094002394384821337551954715860554192701107967279734117502102634265082351462883814853485565520720729302619870538500590479266379666062109151333006706493324640874741517212988373715562410610496415028208923924617000029710139099080875611847312814892065289627563528996675415941523091026986561811865000891004143535242206548891691405300722039273142901718790721715566963436314373345667689997959280605869409276997133451360392142351783455544224070279228689007700224773702448898240007721521231662400247474622714465094504409860535005228904763753778074078023145195451527860821952237076549056518193574379592680378483016495618571621920242304813440804098525537673264070900770836262120328608529045836638038719272890609597175789550322884730934573848122481919919511343636437975540007771090654459807757153679876214725021793675749773032828616605534898419713127599499190057563078007703933500449922675987300465656264008323761369839758844148557105549392284607653434798372125556821518003167322762260369451191158944824725225855365670831529390584515734785896048211614724141412132779949453133310091522558070498588709464422849475328698483350391043803396328612267291001088012207617816844631581406835910653865225199707029709282330043261212955486018599124834217279737386065781537119970851481922550931910853965462758495629929834487748297883019940778663724353406936716171631801562143951944370398911813041142621141708305084549196328156296591082742837128802627504722752232068517883741956631165704285611382442039254475887797317524359608607482886384564814262882838922428522537404897403880247812508994760896533674576021086179387432096572542072215915124070938596436118847937876319544824849130110839417766951695292377189087311379523619919876385870350564964853759856101075207268639836119543506863492344509919132035406142290353625391916406097073679642470921484947053779075393471707895548417453084455973966457907897799628671601464058057630547457878329106655650988197719241345624002337174922224786129561806472506599702578395367540185305418358490942113062766589711382598691900155508810679675505517398575024370533976512922515175884055902905627657667186237036264890105948049426296720162982103530111976225375592839922793821603578719586720035186197760207581501725777384499171383962611788527156172794783188737270177334527333774691194286704803715867817281640369967025165763585352430434267692334727390547705311078913547126558018105651741741570846247730434193652483870156405337567721985377661957108063991069489801635017503006761750810580175771613092644774143626135512491684749249446532743594103963216673496052630331500529942940395666033963554238652522085231054289899013913833351956495500952062221838660937687973869066001511173077834803034139610478159173252970051734891747579253111104489288518763524781971067117289229055524381949945910183319955965681738230540332663628513479353708158304388857723666869763237547608633586699265813550815496702744082496068218846516067947944050419986913830724582032453220435444665910534912466468203039942386946802539115995515961757304446616486147843046976212921818190524262318774534522952070025257117732636213899995882668805806576912484110831537648950363812227012080199883386677840810490436210260456764043871182729001119866050369690639737121159111405420964469280363032085192723690886728898455213536476465926120976147020710028163757339690132633969483482242463452527405253668229820640671536037422384605812676565508306494813054757750822262710011868011041154745002464078148154957485495836202746757774219996982292352489689252753449453468275694016137316241970388034313263505497068633338682892980993108200504259892512669635131011115737881729242969534799996358531090500228600085039286643731123843325074927380137453608249824158988857347492023523357227678704805076996664790884616024627731954647868774926286927143484265606951079587653640214115860642361671138323540903485769135074834178458404676284219486346806091125528383057775343545318639852656122088376110877901732266240768524841073773404364531046188486807182143606653108152369644653068241890309550026573390407288203140411677845810234942395615852783509939892348895167100735573027724844552867574486607576093425330852411292951478412615730088124418056682524766390588239548685762563719614196741261233545154821759886834953248963100048291932701971866745205033502407553827546952851933584146379222973856260424540063303471521338301765986277653596274534743947227104980972325340640544956537163168386151459267971774001551047472785365892269735937378126764683057881432052453941486190094980188094472358141189703312847316458980793484012649323246466126800778324941110039940149132397810793403264825717844495782634718077998068640826088987770786399317929426170516098843366376484931055536441893651392326530060413500707728850616838877584469298579677835415048953192928569510774631525249412639286809698219472722026729120793149044276742793386642285935512630887767189304595962607634347087722716821674173042876224027490653924092786393560400938932000798943427236911836656425264275779176111005499060261095569883070758849730257063980739182170835677880912616660171429868837955861856668681390424468855883925012571787437559674792458290247914368090912426212938293767304630928295618292416550394471987244076987354304585035839853050070198915515097946427008286776451121747773139712279767959457022237356741774124238350659304250133622309611162637691262574420851913545331128955843475490420762525686423749633255519769938152336437550441034808983798027456507191445227064591735145937097031625999033069733420321996706549630980497987455945904984570162285149531702129040454331447474799522593725636737084781371362695806870824162796118425393247913195966272395218231173416269019997361375760064318540013021379674199921096178155488404081212299770006997922148160138611468882856675576960178720202270726664311673179353133257161951617665028516874423948416004432777672099760491136838327315399253850426044739304455213182815990767665708573860197814133931380384944279882600722243215406675618818186074528981710603116209004410057459178296499775602494758590565369203594914053399660635195743041447849842761658657810569082383733624686291905748447126262773174447344801158538426758436387880488745591401648242130778821670729541941194142870176185988946212650330471774320493571329808290171166876260515268379075164780413847963981089417691383332071918185027218563095668665027600919047965085298050851648579261711875369564555970100169496757820473347273327531280002091648122214937262381823690951258104633081880743913086762353197343771880088580490276647895357225671611413680991857060153228665702962099757801236419182671324584330094699789589862333492793215783532592628823747799159878693478083988871977026905076458444527085928814657353411350946573473360948365840683056116269572371533739114324861371116142144507183062560033176688491901851069239935038362694724883012530432376222165235891311856882128444027885699978106807390458265743764103004657219352217609803960845991619136842100516740053588089671843610240716335579536814542419043115771349775100560286733659564540126399212476591382432839341078524109088019334293175055961736197473889242723415708970287181428398926819049099385428332991279658885179509693966719819100293483221527814448048952735849185607503885584278903795359282981385860382272470830909326273307948897459869325631885981656556298295791274154719053203250376499960495137015175415758864949524144459759939118693111544999836901349725013481956116270102266670550830612676457562434570890971606276804662314405984914212540442031491560982434556097127614468991821779577506687868871389903546162459351372049492485270393623563898381826045986989346103594061146929085495111704440749356502550286317594796214578645817552242387147606623775673260277172114052045428789899801445111487223614366094168449936459097814962056452107047381654049157715699253724603578405131177890050000522020265316641080387243226234365510045400080404532603766596257468421517845845411023190715132326001901893949707204477543505344863518719463866739162467000518751038304244148303723442038539581830986427761179974494835757916364325614299403460423942675677198390010725612781536079419422709306294340548641587273867793708040799198832977098541932398915466617403789758914215519540446972607214786274737588407156384048381559449423178615841996568515593396679574168097818908816179166687933934314924712721023060685186860593547760676853027925795137246493294507960987352960523796095592611822455693443606660929663096201898055884627157888141078414159419044108107187381832749132913827683448176350439136494911180298588825690569940758983478279197051317949152684225843584840964144260472821189799446411738088617547936602453211479949363578656406912538545567837441225403001889456929439802965966767143943832449850241488153317300157287221382041171523113800587913817237372452219673819634778277147501970552500585144722899783472838901825738545737523245916340618834473147936255396647431029475187590749883219580741136073371724837595475112768449950202740805276448974562767986149694780288109650369729305972425458156064857008840504117730501367185590056323926929660820817948252054867960864411717598291888995110227641005374065558794203892352065774204786455674787194475009720339154244328336571272835638223406907731373759625776344286179573643472827720182931280984084864080738888272978152001319992811628666341392651690019482834043803852897104056417852968549798036432022390000323887303039481090423412866274168593432815392148596984423162956900554397972412780280521593007197216376970479547944928103019349629780987790145022905900383265260954933389026859315820020063034820594910201945010741324912977677409629634166746044717508491457754136375736090302556009080304280173098022326875727213617301204105708311099656186457942874024014024741626480811177522678168355782602666969761532470348901426996655125250862044561479536947230026463316396777491081281033582559043892274010541756084134153581251130779519837970517580802938737980336332424107736212727444908378001862192284397375587922343998020483257266020691193054536903904275304075944069957159884729064783599328463986881848913071625902004561092963121770955313065541811371613035850562958604900235675733411779105168884342688081766751484643068478802018607986861912599054343149082673343944579243166883007015793213309531641371931915449777135851056054723498508821614483588093222913431256311323647965258171834911003555103460409767142709454953127708753601349059919932800015422544028712730732887972615709490233772505943072802286531370999908105272004494298730457386861241053288073047940020823570430347011492145018980564534841999683916025393911565752517526496416280409989453455431138924631245918780745656474811350515304116344370143296866552058474737570446269199586818137932163459585432187476912060941125296146461694851737307519309529893017263294978613792325084128773434571380556151303730791821543793874946496273521823240033880853987194146352420848748502319573248227482479180438549093272452466324045148672363680596887068538297187360096809942411535109711693086983589741846328004642692719576450516491998524072985128580788741488031379703334172801009451291193035552736659237144479911127656157474808528842613402202092874581826867197600350792883025192966363931751916418870822604947209405421735051873569086095907316033216205168838451745523777173310320898851001070401725573853385898061376363999071161277598673111208868399518591229264101977674421452981316609930283198433999222274249206647584449863124171915781061347263972204559811442946872546870198847149121398819620483863127806639072344453545294517315804013050439771254646750993297158076341694822265149154901014863066212609071424179991373144822533415236817704858045775073281521604391645373488676662243183663976485467242125958362676866691013122128287247721774104206603571200087056983754987380909330672647503223585832158579947101117097336412846859008382422792260183464805357786265582948010468506694418491023464747927599733819650485264380920038200572901919263221561054459511742504985522760578265474652080025129132308898971438967943993693129741685758254476160011287233116753278180259221267563889074093690290143869899267256836805744444124885528386112022316706630646590637219100648896439697780940041761321873124205229791277704996608800127839097331719330236473469063770486682755096631657307345250795207738734449604780075655857057538924142925451322340247094656156431487528596004388931469983519664871441487958359669986436524427890332404123652476339809470424104347506808318817333624554192722506420066367768262217895125454251750581159193057302935891206723900497761272872793447123445902084723390881779105805537907518366134543854126048608738259411807086967857679113465259436544261215436043731636948697613760550826423475210940387161054158151280417732463018475341598072178818779432871262352148933011137042189162265904694350694748576012353170183654228914446056502001289371492577439725942919562742348496022636098556326092655189186660815369666959714104138908274050495415807954473922005447876397375916894641813731019916704288945002063348348875939208873450582227592493557196344134617326040018594299279270249983848867165325644912681976786842004209914762090849048777969672739199733759940038041365796344304382256139444601023492126956700756650648102113143399320917304437501377614478897444479843616006335065779459052740526411899877953357698031742493660847964819629361907974727493717634365013359925253120712072613832333193489382542335275242695400684123420475559156288908399283676465545490817624206814567001537941904813207801125032254702071019622184613814693051691327935813954873879127932023700252699945366640212541094113781483738559346447486183479811023595986388890372558911696855883038040069880465314028835425293062527336916550473587260753304573908932484316605227778591295471254872184551900526823401262309669410010759982665594840812886082067748870534318985641032166157305587351266991748427515200238985703746414351753217629635271303160574647380354836608478024476632824331115362773386759340688272706225916665695776111760015556375364008682753783502932601144329776965070837953703654879303769752009249265773299614267062692733076149515077582540857446579336536582177985772809514304200872904731366083095754543035774889161993788975676062956193123039276574805175333003398920363861186416440759631393894783315640790835775818894214345680728923416159142465069521487486739433714643312646449896368412496140886862076566158927831572208407954331659144617765399568559449662870997646921411739000922816616109469870619646781607548505554764045098888305908365587886236163987197950324758212963720812736961467936317030296763407743293577260598277450097533385575727024179313295538568241965866779926606353657911090769118942002188284313702604981785014102460058645408748985822233812906581459409296026273615742102457443015039894866207823886835267636073058849865152304399030596461023658910072296596535183059336181371165115100077825559615056923356640774588807713858395162569622680912919804149881672857822477327049357747985529981951859480394309784610574645533813043075364416710166998344876029710434040699455676932941624242634397165144828378291982605321915774771324141538276592173875294523818146830674334843062886749957221665204970963966197987624090369491813551557297083485741793706812906392508438177095829437046764866270308961161795996289086837301782259227862507359065791793432255601063792923029269730553662743034741142422694132558026108408973742193827903900890231863486023295270571698483533660841982358463717929172015079626986897471463573793973322918058859068908563549295324551265672644869220894161883544565280661702794889708222351554445895990873209297356698023525157997172733829943474230024694297651168894152169757456944717877717193959989085548685678481700734920681279967609476796492875652406681525888629005968469580746003142514402180531930207058116095570530976624964355194306290562137706663814090392313288663791969232670336186154189592646291142099994182042470353062976842190418542225873288291405624852220958077658594648175936953329270024824681248170230823147440013523413593763969618377493353151665040198796505987390754381820053039035614981528850402666661468382026669925160836948507253305183174458730379514324314356646202137963661788611258617601179926740922759632764816955024747547221024319554910204266569637615671384383880193288201875443422204551419919971772105999659288438516460168124178757104045641267226610668879070744122810015604436820825328884457882398818287502883840705628564918543848580296860100046870765414053116260032652585423797558373688918631105771304839414558584741058347758318244295801956835047571976568982106015222368287424172284344458563358962245440563858110397943038236302859889593691439090801709763442568730866337046919161000973043258474385733366723713817724565439983249874964141764572370988615526512484364883296036152691611427314685907169313669628293972513692981748440234101712709365269210139846315854421375429589618972897701454145260139410612835579606217771305711379529012011788278927130619570098218985086266672844369423659736143663221171481205435648857215472026436671704827417999416281659883185683725708149085064879658831120465055828281052363109817145683684508857276594298747073080880900698148737935010338292997222031975118600517198103914806993919729365315104999466389439295787045161620140457453269856932563711510354995158746902821243952266313782485132158986854229595428734013544962786705962410770505734733764105636317829419971072460582048065296231046861377454226144650988033229135166297325535624808512705281876308670923922080262037912760213942960974180712684035003844558700994902232086684296189424976513220281333801038027495601324857842370372588036879134512860149550555701507366195922644391726524093059333308219409848992506872860203794618805158866244837669057140868971841253870568494343409111294823835240944270876582382073782039009180984639543899642371010532080098780871933700410895953172890119936254881360743733458764269558713572564306968499199217090294545262502827106062035647835032185905326175991074240587606606206227824874754990999535167213339514375267553013036614587578645251638073667473257445166299758638257400740834675673073920396964331290835623823115060983177522584822063884491289385277102082927887644095296259969417246090749716988087498232417969580451353692900124403742024280831597559298453503540224353915450966101987783490417779806468250924496513954247914730088977442936927808451662139083675108300153953438289520237805039269013152036310796261406674804860130546165575270885944064941605010966315782055723690889955377913366625888634694690269042695276626892538594322189019139971649799385346052108747515501299099704544584604693452757057019176463909480559101056055378974738869374158313799151478589172084884032792059322587644412406036320134209969730466976351964810016699025336043817890517532253949201393814468885239565422414342623140853470404840591977975988599836080635458468326211529977516784231578273903444712451538651454637464716606183437814304442067813510525471758464774184230949501955505573482811065751104875432938536229855092551867294182206601335233753277473616662340828879201529112076879172360469840306999267053868083959818927428233665142805575696122104319739732359831446269609991177285765669797370653228402582529093865812847016127549174392443920765104263249719117513509195707642942181514564494788687877740638588365390463790529020396189726546809262350594726046232946271592143367164318012660093730327520159246892090192121720140067745081997614940703177790050950945224805235841229335349594390391538286188801265595447911901285555727741312932343717346923778597881071820193649755806221484027866046324056406798969700899917360517192722427884803297153447218002691005348410676132156126491643088049676013079676065428827169932735333524668340494160625501836640490251413395706754025361883549737585850979035599328863957799084296288503609121793276628509332370256958784878850544821819773982218902852426551534342907677482850003045927869499562533218366050196138755034226795618703620819092199540024699546068809176032596620803257702608371572241040681953148651402679546774602407661979426565701640492114027035114740285780326949946681653836924966015276937333595319768778313432182376367548366053578974237078297687287442887150749123355499006659365748965235042109683445573115156489018055363699587984044416514328619942626384114475219870732549706967623255630979828769789627719699756195013681486752342628710843901469215900137537406099591860866175810689242263925572482076740419202515161290092348425819744694567799127827606704678982647186153315005845339763092987476563344052358593593832153495408322686625503837972131718263283744106185130447269092408349425996555367670157179944849369832458452242219358415470538665575225968748149319081879476709786563336909559618765966467230606749536540937843971142023896813176962570149799221311701518552839772872155675957986832343463522934860707883638321418573722073944855263016340261564549621134268513489228553672070614045625178027692945603580477877320780178709647629208486628976621000784742188793340540493457130470002726601477286103724552080738357349606672844133980855548475910927183077624543058392989271106683352322663447838247162840538491411068261351334865630934794478340349967497006525228245666751954822483587004549833926480072316981514301082968225664289288461703960197824843382561951926759566178211782675274299894970742472265101868361467278914378027978872051176675667437882414797245506008854114061532508715315592015449975881648143707470486922269193398781401951503390967353626860321250421638938631841317503632249465200925806093800660093819461998631851582599629653618211339424866702939400618970190216092898283606326410632105419784424291678700090068271804318074251304592219668966388015211715347875284873547333074077078210159129522988552050489963432291515848492249653407249232897914978728698069833104828150127500609670594473409086267003922704486573019397896037181900194319448830957158835335425395303032657879685760472430827052777803597581473940716119677635008057667754750665336539591376352152004496114477387620104143477436023211741867868745911598596086521306509656811232999477703126730966542404056753922149714203203585815642273317901296793293069561312000498819087998025881987565670150493008052269824655870718160499552306146888205503744982700750252129036358585715843699139019513608590607618415949460884476218833852358841679246828006602952852535015646143673069789946896131198801259629294449312060512892333475708844563478101686617999444991232405732151292050380143710685487647956603343735244598684792428581929808090915871531650715468547794059706107228127350269655965473016301725412417895767541218954042120904677181474253532236677706402869238484622927105440283681967882921314320727089072693448775947498223711861615986992009777933644150629504648453029992513522806612478818644090002746991644459370671582039148435275338692290203007145943533442883351936942170030130519645475716961363649288812258651793537986142939634002930242457739740090063154344644898462093137933842800138955146785871241628326315934062176361985988787044153120345299936324572624356140780188199233054590273868579329264222019672609605327586407833007258837962852127340647670379335953960695726391655764596233370583316732123203478414494455558653551091648782867045151507410044917014751474448246623431411211556889391029228423824124103811627643724348444911653757261241259622822475917655831625612660839457927017382746422437200669665639374725034910060180565336351752012700993990977868526240324682721349290454250993407995772775492854674045165013602759029408931349036028610811784375221350891135475041977808296885226950460479373193819865996219238306905166045096373895046740024100912390746942577336798891858212769172474102554611920128235379258823220723112929031620016004708221952685321939035715832822441572035713522366653755343072000761610226233465522861326932176451273747699957231877828560449767502883346887076888823562125876877372369943375674533864074168791317021732702488501393399589772950228117369507370996351842797067144840231116522686161151991466282646811495174163667528055906991513180883161420092234588757260406944737425085437304749971868894381974135289685632895939391473034966046873860873389376878741141196731893913687718617220544491960745381943546188225586469478772722783636829448306531600146826680571516824509611201250667392227151047598863572777989544415273835818806973567515634134590715048468108106262076163581366459064448138316338450814523858893915131467644152094452571570314345923967586839873920616308406969214965558383639441028939427430097275404724071771514646304831541376714595736552045861698437878527874291838547517198642415326124433992274110798238992110170947938383926181737739433545659271695605599616651044296209492299419393798845773571577635826682636090879289944275166647846310222741204213905492216193164860807998663547767609814803354621706087786720077840511094302583197249572829930084446468908750004639820301629580022041710033569771924747875724486991359732128255821012701215910788110224811952131074239814201637324958774143391765917839877901292064527531263211125576827175372946831721456809228767049915878102263458181841593760559364669333665315720055362150241124955413310538921972475470361237656658036015227433884171555154585025693708834531558368504514184202008799617967391076008955117108433431519309712055190290340793824301871628714326153395194165865399677395450083181271339825563368436947284598157331499425616594813373960975357955059181450786617146117402658993070137891746534770847813766996069456317951690840747832679720993152571980273916442193335863138467204057151777733178123044642347502057114222989819449481678847565120885176866022710352148614575439585711882326991408729579894767678298545756473144343684669209703209943147409308781161606350957261265195418330614592002140575025436659448683326659593296019993466144992385661321670489218263333571713073289003006625771107329596101467470316398617357209478580472079950676798006388279514217429914654053788036511013395479258411266896606925720361706589009150616107015935072819392059058011641025461847956798370134278915916812976029866412523710751985654126259686006187461394039436329937488339089992665462863962995334603252238211999535758892918568984432715279791983070391427327873402510103885837430819261482442752279483715298946152694231364612463492760651855780672194913192268132126018730201855435536496807269238892849987855287405574268922968383601231108682513501336563515401101973552200963055811321841655440006178199961756207887643922577665082894277899351554738733829159777078534428154352393111388525998020673923477603241493581105454872442580784202615177332331073228356050954167350798672094169616346166895603538031115633619996134338085830757647973990795967418000186653198649482189343544485522259226437406453954402229435565914146932262655097038778801893199242994972865152051960980787783012285387730922805905639617289845659142533288327013964865363768490614056281791763176235229488514280998602746271723619440379810754279199634867811621746061850823090524763642135784395852162713573923135002365471894243773958568072030587511192250449588652724390535570320280212977177237534318015673876819688163089072907304843277989640460104218274984735453629944832012176263965505944209159611952355775676956007341424414939777318343254222580203480460257976465710843362390044216341788377153474456844659764779730542985957052596285795198379420887281394715680077616309679844312430414113372521106717517165049987938927408277751100772436647395048307692650739499902802507515915430263813695808061849253648299322220756283082832716633065221406155906164349279232325759407741195458729094476471563623635283764571148725124395182971580335500823648815073765334878571865764459391011119897650176761474254033525332544202486636728300209059319623957989663328992953644718453410250191721965894138381673018592310054472628928411744378629253990634182675162231751626178531630478833935917542805007241159179399872777467585538243146959943008586890866219968988648351353082100174926828922017079198609495846824799200820874685036730366107285147016895928263722893040736784798242145357353252034889564221571159854834580603825553653970670921871358650979589287707597030600432927082584723769720203321087600972479422311455760289560158976242660825965520967065454987298101562636863684747716720333940110261645284930823516787798714557430049568346747913516394334983075976657036884964319544972239044042103800823717667355634619737679816971395272925614328707938072999910389028241085707100535878464185052047970606550043281255779492849245071125418052356748270866330014894191133719576440279346026442282177988907597309695195083541860894639391753465520188282370765744566327253948666884906793040930415572498434994628381093896386774150082756978663942348000165825693407030174926150812754594076251480357550287544608036076784558903242190704482316010148423968629631518284165155197385371066216478680438534955471201721510565099399156569271246188165826382952686642700972444894500333406979089493126035818169721598539062268034894333550254852098992763339489116457872154699872856209044598442247263821816605613348728821726589570861042440868926836713127550691420298337534189798753950979611097177651760008732037089036251205371003252115598364303549871958900033865463617622521598707859274719164444463719711111905263989210608377764865932038329316485702146367489091115668283950664757735501713669297906392264852409310993953094380502131186206188892526121622481201435484998358269807322171682947035599062665724336102489612141846288787594907390573828441228166133998796851899008728046000322068129810662773141254023606040043295650861721523072712430889631135154332448316271903190115106031623222058142602123129827061899576090447930570279504172045723294647335657475697035691845846997920832577205715413986598384860357618499884730136587138478784337715532269821390038457994742093135620046233142711596323731567110918552186430520075854840287293248201632828233128139499371051149267508135412830430519252600157126218876997327258268213320665338631430759090571054888040614248419804366568670865496580011171076890063607667358032305032552360688007498134750517044194799252672153327699612201817298385381991592390215607742322416145094605254878380003465906675445468603417458493531357554460285463752385132636309012080189060227560858472994422758129027604389843343595877667433389190143071653142537596152042358686825056177624122494084642113788398990126491532152499288922956746653958622541926084003110709657320191458907431881575920695271080104167289865709623572797446620297469860568486166626130891751550152920135451803468845615565917789157609889108399158905647381641709149218781521206576466665206847639349506161910817623970564945296873817426542568769406348633385845160789658452226518937683178643889213823263949741710592512570512153841824865956290012803435855883498720765520355019447020642067927829552466778620372584809614826135521100076195792169361350586911701668935899269152583465938095768138362224265951630688772029742417151127080607375071796448922841601333241843790940989612938978804690496953428655279686991487007632803749375114083436380771148029882852152518089765533752050882508979105645147389294001322378174603287613657015683419875961482524895982540724566264021181064864232988036267349978033191946280196366210212502897648432571877147665937938437013432639935638648917120491022816681234219212120102467044999708283654899844138592188472486859743160290561078343305993515358346561725172855682265555007032758127652358723431455275349631656812334200477198388760551766969469785760776541195436033347240320873452593619553834066489359044821305587774911918715189735346096284110199130335037042064033827165055642306173718085027045152189599566156665341182668051968421365101177767116346478146253400968045816780049102090346755257265270705871430364572273773062904222693543078936829002164241565527296148309971139001762285534356656577710616545774704459694460094523477999517210248325844079010504912745536705250347251530690310395703310214404922140532591141208594168527554234515217709299183015640550100120439287013180864043756857228627091235997660423428809167424883708440458633663781172699648246558103629159594730544900762391241587989792161858439267719227968971425094044769730895562560968229329755186061207995287167277891183067847595809812387192128015398616943315264025681046916421727604574782427993542073830100274090024624447021691984185971876147472331644858291593798814068400701704736072128661675301365844673133283972035843004874769484958650153336726937067174552118945926104241512435362604989404811874625268620794897016390978489270211545692806805945182022492366371815409085158463369763126063653998277253797896172335196309572412169555104478117127682312714516828689180560939182408552497788802376729927915391977813434010162732281307106774335129696537829899350288022904446164439421536171475974978133402937707056875749255620635592276953765389336603255542115307790234588434403693521251028678894928237300065002202342974819478662153408007364730736847799526457079291046837179016610772552571583221937707256624336604309138561538701712321120974244524127876834297385326771258810144958056507028946482955226466720525715173410072597501204967207971755349422308907586765639637408344521555984147191266737138307144092960222898409102544210847987416394716611710010070961207095918267390461364474006455220494058676149189053548363945087789623251073016358541421490230403458610992014455653956988335288194376280089651699638656493668322578437942509637269645978550215262296379065099665837851873014493027626213558869778526264139482089088864346464606120157935211864328355435988967479738581690356566292031757349605289494255798822712924586275763946055854326238437380902138039268432028835251415300816617645761722483676071988137009661590621791089759324606643394792551184495380938880901688712977974696627999725362267964684632111548342633914734998281922315740175612153995309268766791633573154889835385778768743015378033678671180373034151296087953670048741690038776287960764416384662626432199036330276327910265781751612547023223014865196348708903184158308469366668092109082090456130259099153761452847232519195144413533040836242868976222664027001673096185188679137895746107685468572924713233556470310896827165060301125225278643273749252329643694558354036362244596580176964528944729392953138749104512233871960793435069780317941673202392872377271877778908722100924971403017608110264617055960148505750369227221682268220093087819871482743602450841888770700482817397554239868465902077655130639614458596051036318775937044404033354958339666679719854758089324441076351005788867735991313183912663979968511927788663829121020145754130701076584028796076005865184283214782828917796704197524349362643591329805562896235178303112670701824792274548013991427992853273281035897484994228515969398640070910910743704710845173594718218682880909927152544841633723545911440378430903505700713214853451645336318001992496157964942583906092357855034570648049871636229708549961232524667215651936620509708128339845952638318517234851375389205142063608275435018274312290670055184286347034826593471762799159566287283783680685625878322794794059056780272166452069960691278530259453059570443278529704614335164751021867816657500687408585014484296043360421334423102514607263067080323426900589553563574734099663649987131111858120612373481795070548654413926198945971934179033428716524538009168371456082065930580065335777032082722843447305827276813616560359161069425482815883648165138927080038642700090370037933924068333401389585739119598853480596932765783916095961720694450850271279427540514269224182744132366096297238174098462610703068201660894082669920533698483582491218923896726376565262638292629809763618095689435852677034929061310155146690992966096811021584098780080410725677973542682626933498465128215781610393094402647995206812814884703010165556474596389879339561428394188425403647775686901404872597974761458746647236642614869577387785549578639977967000095801177652524694734113600904958792217190246243692171602378953649889970571458613557247976884747918970244498319325011064046753350621019704210846428989782038519648890618748541925007388373640890555986178676060847411510169010141347316447923310342389363479243902348467293706930517655264718185430231190602245748189197781088670817170536741474391473053013001034431467313019740030368325299493732019009882455760900091139430459863920681000672136956871427116578409672469622041618835484998398786753832020297572259095099679043785272779797086402836167407168756948239361590351933588988168816277587758720061841319837236510881023178459698085693285468343672760129172036867326595909791921492195738553989561783554249676325851165802296105915889467203867533341316454036291946886850137163651910381997855684629332878665695825152821005058288367050299159091226348014525896829764776387998335283001641710051879984750547842118343857666278240608935934036842141860574640266002921829580187198389406196693674468415252705981523001753272593612333779268770660817318084152929472651993753414112011420299343436820939211795821493187186210394621862155338569066244971585958897837774909042425994732520515367038091155354042731599470161569971350470676207161292146776151013828327446279920905110914856943223908275039665277701276885785708556432750331866194883234196967277142199154302734103533822102745807957939957204422218776516503396651947604196228017431275970871011731333640313176260326617636526544824422254082744623176793132821498144980475948882922829662673055701943691236283772962570313680207680204462096696808962897623423859394677752340091845328346866896182529665899851539746345943552289455724050106685834971833625381977155780545709244921544440589661557050964826173366668545953740678291588969780890505906735924059726231251943215312255334481561202942126894851713029870438272937592675234704921954346844957287062820402219861309715243425044011414890692808834805669300797590154509493730486098716091939305912285314914646951962812454907703766423424640420808779924466206838831941226352112993966092603973899156655034345009178987237750499860511714786457619880487545735731457794133414221030406943416822994161632940842116063471726745006766675389281041038141261248975973465231233055491744132322872242249333693338593428633958774738211714874937105437731575774047961132402228719549840778084317708404744609456664458619048857536630244725030477681700654052652247047450295954332214564778083608355780912914671982440614026498283266284663999432929677132655827119815175952182348218820867375147626724969847441866392989517342124387568898061367177132861944497840137815052775975803573998448598995472083297712810151801530388962156395785849718193547555052348238190498469940349432018371108130738139330794427099515681039975089166367517457246204845851180460905209232561449016026620414513195252013570630547919414028513483001830562747723795177363453743597929673613130733576783400540910445954134911274228634733474601516364450153453351268782708139364975854026807938374184841534206010936668444109496319188160925197230397893577029252583421043292473844137224169366789775226725992135740315276496815540477645014225570437739087839657205417737904429802783387181519811314253287624581933201104915717318700604342463789662289166645768530493043692825211317812086408371685867518932984444111854370075762275746314532261998710983369924171600226370437083298533415997879478077928475550023781785280959444682864012144956392741752149020477060487897965269046933430641560762989176746350874022029508282541218637574242131132444360318113284724220477205888716136954220207591800749539715646294512509188368725965944181674940854873891456695170065176447619903055249856219471642023312700022309505980232383090840099004423894886889167313355074505967334699719675676778301041464696946799996743135152028289357212876858971154871456069339918518026430285689714674759409603733271982032420572576980786135512214633635893472809773466865240172069283639939034103086704734164085903542631293793240318714967236872889233707882496308826633213039005087561780266687422596522265372478823243219837325541879486588880186446527385586333235683232403054243438537891923201822201034221930768832193768746250892098126249301997219808236925062290661354949475267162549980740172019026959678939738205383007367151702505868342305673451600824105592540233581496132253354783078047606248469254909066211082999880723679793778903818261939561893353181753777409575276530605252152239793624925165256367084996517456214396316341613348042270161263577998789304959322788533192207784782915626269864324305614909732416485263269429385854788750129603715758006593599776024504162598924386253583149623997280835043065437785723453110892413200745505087610206812193953029354808390405174433309900498649723104510481521065646133152680634512987439711574246705849128980969152998697948991251966930201121371149371259522175499974359024325568886684036098151016306776786647901964990696634978611677964259628236875238612675811782663988624443912076765276557488700869970293926690372619154270134474392795864981208159019962786965803194482854600013191618976198842213851225270378186762803857393376276289761573724116099649851239884067194342465669963219800327299811808625881088140606695455280427894822577318834807447148340614997079927320712724831589385025859364745991999175964736568072295393905504982654805187360344405420009852616626759570967038169529086095678444718277836095713363869894333730935600701979291666198720987562752305374194075775301964179536789983574635235994971159029066409371254272489650229953455714517365990644754173700919632393469416280794626131543480253679208095578215071163941439833807326184432116236175678077121635741145203087464862140800471417957906885471388849621492490809870347764809556911241111591709263075499072341816929746471610361455305035123963046412602390972677147356168700602429324611368478391924933928252887474876799635341386288389702387381131900085479416715435386490432474249250302372239930577569336089740661845565307078003510910212608211639549405711415816217647140081455263112832784351250036983266742346437387211495246023888375387243594407132361460461339208109448062979471116749740295071390073360403034921421716428029894963680286543110074014920322437048740786230837215573020857396827392703963742050826429836579277507373201592467130997419313569867728310524796831068842312603648362964687293484616391257323593607042798638918411282038249825397482243350660601554844281966187147958443375282566519892273769964127848984865487600093625874584667835198851216375608957123681849641883305511268227568329490816912778801828172277836195303392691707773701025432875305035835184716993775937764552188774519034503723941098418215311056090278018002058892221609391625358368758444468210965987424235150663837705138721212287380863897654529303020603194973241132790501337625902422123548328261231003327134662411456760050649563288791153398320491210435984705232344724550219342874076790507904378728193726950794012023681538087070272292824217093714078226469054982236002153862080715809132805055433648511596509250804278646710968116356483234999166819479595523550539945368643338351312233775530262355086117292724525441719676087267506733175913805368863651731509989621593137441504451228871426211245875430660175693709799201805711656100961179222769638436204745354446812036475389906298933179330322749014779400000907586735841433916639552321094253557087970032065516984458637730115780073224711705297963322035742398633675427757842480888890971013774728266921628222961309595658428843236903214505915186019626646632456669987513281430154507665077569502437882771239489702499582620283304219473965709300030908378328247665359045463162307144895094402723595982123224025063199080066286123338207664326850665303565253669358773858237054474228483042503758107388254944338647315137501218273514647530247661898092325124062677764898215475569710715253195591353209796025295390855814408418370653403838614411924631879466289284192356533241870704551785595156047365174288351078447734401296828528928298301609263494728867570005839912101471564836803671905112359985850046911807418891697333132026697429733341868074781963127992547765915104263385228805546796016856370204464009305963033028241964222266772547713843420636999249513230004419714687023723087644687139585326364817134266424410323661039143515566396115772028882174108186742844928596647932774657994167282698695323588120086801082720131004163856084875668847677859644896189016262755889506472991445288297442969398022888173574961427547527938659413020978923867412739856353572957209777794762059569738724276616302747665362379425960329639579431578964676398134184271319177838138562551400858171316183634641419118638655902030221516408602042937063881341878010430565101485696237202903866713975804255572034934578988018421213452536703794081631825381718168166347631117916397443660080393804705996226748699548915790722300466298541952301992017409375910477139446808173895029995899186024510215571681724692838945726005141125282733120177804458281020078937516776934171833848245616373154335177714422450477395386707157773705803014632584743593295629289730576779250971144435780862568316660959703802084546931172606795529257197276358933389994017423989794499975897192254150816427114896144964839320390505340877227502442791192566228216784800235498364242205910325877705513118750761351114077269378964906164162545550741999941414947987034196088864156835955252227466040866869733682284167723639867226749916784703471549296425808774613321912501676215638266979964341370276122001462101195754893814575378947394825995866061782972576756631296837318320605226772240107983029579167357889217173376664857532061940588342724103880266678589667175485688132147148471526278674585546703627960050756630104459560263019773572002798991997948063853811527333601510057773858139126325292577734794992396018375474334358003797147666760217101824506504931957943972010924388376662182397766694388211261652028802504308993976195653260662394526551780370049889780598678138867306248230464057085684590271093861575792794436350278413624179402489310884471605807635025343822047531204172805718330445859864678613746150339504649764829668032040331627365737436705440823154901721216937882078525188004657074382733483178225192197497626658284408432183776064627497888966903968911001551224239747681196537172924349629851705627026832504258343115434788427912174324912367305316337393342210266651857702374119353689374176135284038113320162354205152858947532128082868437581536333294499210738526058403612092430822587389343851694361596157954221331106073899784285449522308248113103898412482646077314646397026307322012500270081587604525628967184011541444167543517278180525402743353619652110965374656160936359939339468390290118041945867351355523042593602806967159132087823758085639617896113335702833421367757467193089121800036216629794199886997495237167782990735168583549053096315686152434219921252380269151585040548975438520372177786104161720379594406767924795441628768493299433293943115694561210185822524212471826280858492329863736646972844415873661423380853362613498208000184036978798672840760542076090554851344575988173154962091345811332436408148987739850063970583438983283783482187352878313017259550626742190055984442404411092103660696577098088937534452310005495129431230997242776887602411018792808661191296047621440327691629913238961837180466057092848782714666411085939001074876832104509504833887210466684052582005512825607504677646106052371498153157257133589535976513666228954612717745735855384573373750071209937038884139503079569878343834918211397234964194455505412852083619331458935560331969356854890540004693257518576356279856976352302865816120964806595180569094116575493521321425459254115399206626865672770676884934945909318680211057697176791573970758694534999800432755974949876702534038201888052345916168579939602298247856486288176541348048588391296428028602034414206754577713012443463098455882042350067276656265092556336171204798640281542165651728542682763160706960816658747251089606366046741801787841727884645629843710615046845008967005360078157807064183964299115163077821183234094857050548087443457914388408431772336929514650894020622738496320028496210104538178250792240668832909321876373376455420799928585733737282156689111706480000589460774515851907036473287860420525230413926179052827747667934786187975640676062964234376860036330301817243481305970440483485527231685577058801722599792595318479625481527072616893263068089450372515209130114296465479864138620907500304399533144992784362551065775318585196159038340054230050245485283991054427103004643988440019210510399334677414828334529278884038330189044210306563265473171916902301852418182060047157077652201262310743417544185005880743690851583128739241415754566634477211194275716274913380055669400631289736124570444802041705395424798479872443227853697353895586809601647446892548436364169957432631578984149834500101203534647413147830223506267169681755315964290624932944364306297312646777715060674085691869512068438643605589429386356526610080933122603779709900362835425013464215780750110712157622531218881115446064749579173173823353727263642953155792509423690760140421715279359736127712444061766392476538414589210218751166521133781624037138033955186128492682674428611881037405779528612530043279848941150462840750762844452777945267795634292609356502525126520908419545845951784186780105671258269428003440264211250821346753250929878158148622342717545362920787721169054433970441700189050463584330061827259302543471552337011334250500625130066000832706108896214661277885642674046854103548812704217179742015567372549965673101549869143411009026931560161477622358898588129377328510141157572165239282098113735427606944780669364857493788455312567468814731133690437917545664347963975231017051811023889130212360898594435400175992460387628398312862842841617284852460362962904944818329040281720373022405313325224759837456453965372732122230843660897689657239691459071756489177048840046549109352636410400968938648552726617920349071513152938020514073669633002198706342395141393026379122149213966558848195872311290273905837175988007751554628580050280027108591929011252278812607441651534055312503615914670794288500946461499387970076656522090730691190470495590907836932615420878655215392766377359139972214946983039435641631613815928825606109911492791986950096816930624569900173847552372110839119386781758928930566799869212857080512159910569097541453063713878847884096094137859177511589157474118833698396372850259603307248570115845131559123576522187308248349399537420815244746394267806131574782877720840671785529796913116370079705431185636482368184153557059274438184621644122214212793405579915247882756692455729998640259771561601883463907540935140422170918977004291460841253920997627623810239224568099193240209647596865336033296244555370732724714772160818223086076718101199863948666712681793250626765214473572328793386931637871852275661050280285132828382139017752050577379846641119238498617017612128893360645141103361031842274870867572124712539507396938508497226134492744652028166760503057591985854890140051139507556463166581124334744254125943618402200004359790488135552659354881874934746544648049801340406190214719061823327438676727931584772922957314962847120307783711686859135050053197435180549364199416546499147302685228881489786916069448359800147680806609671615350159310198013805175046082105943238608401161208611421747032387101117321878314552587636014127275930935591387332964938997664018753161778197160491455218204695462852178296388883575399617719949442448308759328069950788439432867990329312555133576411601067616957750247311174374073857987948926199273150503009224742343681554777913709966577627630226523266892625467030690016626242485057651426821920338006252742729579565176772990146546969479597785964853614219500027980458327213389273822062769910574184811275478406977854964137579499875255661899572863420819108930922310672142929967650748886779756693933753027713355826065333144356632892508467705502570569030024641179603235895728287581382206778044316004225715864924439612302669592898577270163023838005132523535352400913506339042506701514990435739964724010095115436513585519536595304491431160501470280264000256265033024065782808166964892650206873305661042099596243351642860970412929887773530974789359851609360897745409990011547144870396832998632924856860239565604061427235990365948522447404143943806105572371562969317534335294400464162099507882857940333415450059544859590905216997523851516872812124806442624933197762209790467311463752785084638662251187651017712266789457653122952808721461935602670314656936385274613917745401363929572574046885372867438370650601427470675172666586276389053357915913451455434332721760245720507595996417350712536369904586208933127458556565941127423091649672404710998242362287763109833593152894306723655900393668744808327561196296842134285812398955579009324534720036141331404688303306357223774569238157527047496793406415589585319379830524735489762937129697972576514724012749830044101746921666516826013235431845135131193728188398898666381324044273374451193047959000166708575801910660942822995543102664881821528404068507115403042594477217991427505164393545834270764770150745295482887507087194961209306731943136189615798075616174406264904788356422024454085750578626629637704192389676851450720987982933236086173344554255225879551860830676507672035149121995057879755537613849297847084431411371044943985479596139475485205442760814466004030296166414183222003530302569826393283209985126779965080578110429723622487492046713851214057590464724374849251957679701999847516790122888714953396622474068771026705668404982942219315178709063014677592293948665015156789627191669769610289859044633797429665284672607534347964065847323701949308072023373001373344028215211059960671850480679332343177067080550360613896012330125845875665692940180832412496616381455235503192476446991950433284827549184229145018246435833028946500822284515253643640329577155330295060916399089368989258415762779156382282919080945385423679011458032604215393924101093054595173701219760698939063539904653419810392052902673830947858797231309818399941927234207998784800623589105104797349848409586660764531908035413973039618546570491523318025125732931062380978763797552094263698383089748699482030068225653377854693803583024160208726234476742133957029147815914497654027330649975737950737041533596980411615191496473494151359499690078293155589510427479111022929726988206277708646943122901706449183439237884439256383436310352389194127206049667113966555078944470326292404430185070157446467979122381530568121783597098196721924316999875001365024480391264304558187311970142795421477316237398304525601790068569649005072751615813868272344549484218837999031477451478860269275400322788515571133147497463912036094080648999073483084740966059631523206396998301863776079242666194358746678999989820832222430770243076417952480488058761580723785040575479576451715047823998847819088483269930163117583168945043772468233838427771284242991241085731598302997019620680212188580585807441091579095146072271544662363552190304142375388115906723884588750182047781229052040887859286552961474482869558134384190358056656078870127900012741602865374639570748085564313630614604226779514363712956766838099246397960897633378349231012319773881438606174664571243922938863059057257349353835961655407569646873220266487747820439010221026413497840136325335784604729810792085247399240291228304400574399997058684107142809640365627480595538337009812950395783474956431955199821572586392088568363356507070706048003769029527199653053932962101679827642065699122220678487833973898431080184918690947210329331769094489210374346816001654850444371175560957902638099895773620941728773887983979854845212738640916020494195201087383285637708743667149647428321285582780626882800233543211197702284386521193919756726169023775203184134928562718544873421026225234667172016676586212162533111566608085068252726255273585150275362799144437061114907030414200142215471084690790144144185013590168283995338270918108330749682401714540080085490860707824343692180372879581784446357101433572815049236921920078630022387841756905568056307988803367272948815221817310686125216021285723380779488295180652939794753301984205492699084024744017325069911766040595385577068190199424711599620345277090581667241761074609090035645223058923482170368346780388050834946002438348602583495913527091037903878864844982336417648352498716824497024529271568256284518448644574434252810525270530339182700491861783002477268289717141526209068812205526561586028024916960814360201439976757012974683729570617226385990221771817700040764022334698802864794096430984413447176578402424866798709808959611982057125099439137230579124297798858451992552511915462538084116560235452895389334720302687520378464277917118894865148916936408106669087151927354263669372043629493912127785805507322452809596615234196641015992350725306468134598082284761682980166226542235975699430952799832108022340216670258251510137432643460089678247056814026038816901437281192557136324514365281233115226997531772963346974753662383765852455783874679426456983117132681979131926002436993402667300043042327967495034781175201044237329975797825858369405816370686899323860308749861953151016292736405469641063606071788643447001836021687786862915684731634415879889555016241251828756103260641489184508447512905648782624991330192976688166027086018029386093796906680905686672579874307887314125699104200389268777567903189080120917449583995070704014834975826932450109469710920215059694769965826952895859324290833569319209078235059288360568910381567560705058201452536914111282929590681706534041387541464334702770351483134396120922815150302886522731889064859226905961717986389847362676315394177275334325297388023316454155570050826156313276163338163917822879713479985929737167388821960117985666948383216944277255629921325126426907081738754342970789797714780744453238922674144179382148236358020241319657314200548959722648783519403232191459232024513587322633013557181107317894614527652368801393600260204019037783881542648045629792225818196003225513212199842246777587072404551997633119141995745717670421700874264433926856054862706463350975094177639109036727858430403886173418727350633536597171684164393190212195281827413079627277717965555479620260135498831837701693512964704877142748814101249529911484308736980783251539912674948997689841625887290463434231117089573043468727737682492006750397556233263096981363245934258260035113262853009556377450717586591501281296088982429624199098103847925995017773090020065318666352904480507532237317848702698697574961872860057606343519649634901463618764732944231238295299217351954401181641911433295669636497961952186167298387952481648356479648227852048469443200835150945170793194671603365547476185387004912214389531595510274238271073150910965344340778209733288152621143004995526270006833998447473218019138577270538147869416708953490381911174258440583018417219426212708730154305884818912297268830609224614866914065056222917791141428039543010689655943313776914375829366439034911920434119084072549832150727824418701063740120825639637643466419768211717761847272244760042504040214735587647143822526109249252995501325182649144198409962872877894456040418784593577753353788163796750996964909202700351499196658468231996261554908381747169087195324869415373957770847748418538506188314306190790202646148821526184807656909854345109793398936436575561557930342683554867948398678078471777923857452898885393687841608411535443237498444780810490789717307038726380260715487867791951901883642960064446705051223167932978511465085633165748850418765507900861403383717806679467742247353770321961881364736579108536406848364659732248519915872867068256273370325321291586166966261944396233485121082155987072598271772415364206912322283968137930329630420468234691258462605052596153368212055663368651594399251681484950669908918163737713357340934674797979054646874075422157527129136774244894756205742296236502979185012015935154024929483195574792103013283880274810905215597685745751171845110127983012759035821726246800360051599823373386589621056743821740457395874320758770500912532744674235177434244349314794414579667770803432739003295145507046848079694078833671591670099150699812103591504805408015457603315016780049713128014591060909091925448318486209486886116742411047498579535230666220234079369256670148117489222860808000273374806265135643028483649402698656278585397785419750361127364660292218688673748390204633283143664976886242036296464134080716086265739447917811325632329631991980836724537507216312620300429798728069848018773514174250851307645390988314670354003124512518619505085927701194613873265150544702942682898160679904802180134193273545993016224258403320869607902918124356974543653661205988353251517222845895485806701588659364016563635500759970564980399368311057998415102298959382677221965125649406758439823421916278103624213927210212369317174820025414223791367408629268495004649162645677641694089201259339968485563605025309438001079138154352595398341345638899192838070808607450763344105968220085905004661761180004588611242595090715217057856560252751693536613499348734418357545001128775585063763905680206498577482632461880064664738103415826518606568308488842386075966228200907154008474803921967419893017122295324597239961894548077084401168187614650088311336678922421413339949074133152929052099555871374570453395921026907463703326724605254769832816770483038436971357090422372310799670938438487554296340767942943115353336976417251515552482372267371959588368564218801073933105382871617392747768458774546569586934349833562115871905295263392694338568002386850389641843127303440985769187212176637173326829109521768259749570604473280650095336828086536773316787236428411243878375876850332347967091396065702801824365386605643385450294414310280530681048876301242341078184592244411316911957747135219423975213851569379632404857068452085251184293239974915318177932766366205773741486577303499684246807481978623171933278857006147522814545151728699250946623964910056429313707190714751973007519553327057882989764740303566827085916265680935126392588807108208027808728990584515342029461349222334785587398022126439942255993634284868721920504320736342159585325408936651158664694644833401101113804311652172737361040176333736318012061835673577020220834456577171077147231340910891100046608161385852956384107000683716587470664566508785012202533243483910005604756991810722793361594932963035436556803642448982651476456317399149338054902431610559486932941069825984381514454835358194360183025132207487398651404992230438926283198769094850033086627828509046681144924545590020952404656019683570612102028148953841663248072801560422649579508378312299889655035668937513586510105443529553470669775691708946038797226916596500712718787455315283295186502532495434973283257582259750761787760332675672298352510955259635905390872782075589980789849515682853637445273655993949284197770728555501741077324719018107520753158038790824725584779377735352942277795676230475075730372598010033329182934246016753298223162795696418159935429858471571793007589985714410358313465589681957533055211933383524918261911487516264462145964318799160274431317780614375709765837064562474436650727547826372229350851863405463232597649012455296484924983358710187296817751924642415825180365231479919675971939797629151297362320037216314187961396599139073039958943656137289394525333576275054643460478520853926812761795636245127510771947312835395892942189768669491625333098511578322494233633132055145126303184016414090400094877886566569532995030769903062786442022427341809502391634917144944758075585547416711253488859484673787806872393116066743926111251443667284754679230237113886980781508594414753439353879275800368576935364195481582913460937933566924512006460720292702122762749789995115171045222364391323539956762896370302911770743334700845259912536616507939744052526100665483772919861940037542975024557378109742481591198224696938798284837101724227998653565174831273028041510284433517309674812931054411705448043972127809331759129199719957362433116746725241261991397822911036914259628573030166097972679645503661602825860935007755315761588928000761718328666471856567940320864607228165459373273563575737833690058155198247002520683519880274592422777442270510333827979076943445332612163686237856981638805332257202934595471793776108427181228123915689709258432493571946074337153409185866251622414854326636726022829972295841648271384743578309853106593586124458542669021386480979460988204440528483925171709140247896014853366136852820836570556804781359449322384808629728162129844079024144433188268206557262282897484969231343262380282955076421696037921331442565420547048484467064321660452434350533909657162392830700859826022548276704307688403700120203796631774379396490335416032446574015160334024511003996727382687364196196841819711939949964976739880679277852646292324253524023106540047869747969374204418954808112276273217829224607794528234140944625206551986820727236990603247523957682719499265490729520182359265773900394004881945859415784279322026296999336255337273984411500680861084174824661142233273858403910344605421641477119393740504760282224321323126609278682971275525292079625602881804589898919685088842217143792885279966474534939590363998756379704509807326653098008298400542939585281744912586950132149377245862177490211142813092434199422240776701091638527906220154833423097534859081681610172006176539860083005972110680445443282269286607811081481400336706746724241921185655378335580809757418027835784563763094363954306926767088904569415343374783530516310902693193025224961216602706499151146099478562168313187715262880526350749426719531857123567023235592054718802678325841257951212267157636350528381235913778947803085145832573021189319953808518598824473760097364893683308687969076809120732113433846213064454859148905332001077694647786062540112310838902006719505368965714644615886480192395986987730516044184113608824689500596777869060516877941612126331508149832732630643923951582870869906325236604999336088570281860061464549651627048457172029771515185038712769365953930584918584163265454282655201580405019992498609480305751405947051838419364906987658793957937207398676164760967759686792148116939808169239470143903902282527205084839714094630827698561879585420251297328158415109755389559732129754832945581330718233031635638483126088281130700239196231938548804399862093533307488600181217475989172064044162756866107110369943096954365610486411072160025814363235579605095316936854304128161066552138609188272196320690637353582681607689452792711215219537700421117204035060524068473125117304856806882127593870437889455851439199658978823476867551929958714034414441965552767344373860260750973753265417531085754988509601256675546803211900789645066075130622922559310096783957656279214126608985602569984258925039553675580709964850640505218769975402486660191585796442039321220467192564831545359637720418014855737268544692865547492994080698784960727435251857722117112871009650167965736729450364516547131828796252747147504850561987371849155107236348950095978852140708419765076790739537274487688231916802734333326814482831785561675684799713802442308321258411774650211575597194214617395304059448177409415213716969657256267938465987295296893811789696661355246046026374733986368948744307507195120705399989373181592151055255423023183640512797470435189750039416889542495588852599262162335741608182785471471287643385436798241345556201004182315397597499271910650158987379531261316073064318433647009128402990734972234501613958027891312943528231361957718493380161731073090078584301421051029088828847253009336538865200499400336993161323060771063941323625197776879306667997584727657737936257344293299109401786067942050744571249717252557566243962958108264467377459600643657185848638909684456996218556486040311280058951764241329908876315751622157639164031040104819981073027359546291508219971495438282540153633085879278365847542756816498822716795956455496988618478227031910931899982795752598929321004583534411356292911246118209569285561835698828542884002662198174385825183720684296999932949657995443492824193605997845175971844947394227797519245393438164384672273945775569281340939231014821410307034168462686389532320953645415575724943065660761891964938072539684040010536223289556405942788229011607616575320325045675942520967297582825527186039562832853396359267613452022065376753027670808395240582459930737758211199951004260633289246137796222308028815424629241144725618004771129430278071446388591567805319911411635473109375764828608775069690777026947794179656043073060210082725924005989698443419056123323805904239654050318245323105376090659032407791172207285894719252572986927069743666833696488758668048227725849157511863014655517300422105037313003217401157111099694418592287134575995203507844090842407072296085426361576150670834251220281067185009276461284588962231759379499594259761405965839702093667177349626519780416735971296590472843845777473475507137391102720464793961366385150338211935347420119396121253357240334124269289460350969827874693967913660010781846133921441721185065541712941244978277389798727293945536681097907230203438322963976885189683277890293520492996875839023956081887144440747128393865144343383631109006188814638650877752520835934698822362148746259000218396043694097134959774469357921645489062116211863701264092405097521092759926577019251736686855118228250473515416719320744067185061228635020985232610872259420621407456327087866019062832909888590719524261423590314004442628250114589530068722324561380149717294027603669226492138599670355540827861933440054246897029719885767811334338742363475430358683316652547290422056809568611057857435941080725516730267258104208907593797827943143099478711638284434861257962375931683316802260556441004255374528509890412246012509943889744723514306231253025385536059570591282824638283824381881408413515298260827222756093105299293763628393294211675129237859233076079305175426003115176842163267089705609285747449365815791076320102703683030422988870958514229242174687213844232348365775389968851344418917949096652384575641769670606046764453304726690547059699504019269445804916949929116662315388605667994440293709893304336865201488853906612281397184124788120976588975867463470495643192829751553553541342680102548498897380914112301618781742717948570420576564856264517037668521282514577335959724905431094208676333939904925275137215230171563508683466083894384144990739776956618606565260600241725786771871433901011014043403588452610543257180060173353296625167738082069453509055102771337748800162258365650874641188730740235491162451824736303996947629699565334117512618118982977165563002861914583358003719797357672847006195013628258811475334395776711428526672502842349973257578827279989648202254970839659693970211668182731722844506315153752114296623284538212674863091478869714571753944058961714920247033695650690271358273465650793245644275290800263476305238457156177500872260941139066364760444340972959418711460554986976876087887110509925412433358702705660910629204039853943954916698826041721296398199500289280866180805318294253828631446177181525154678225423881443464022021132667937233245201739291458765705858337987642820090913636643406210453393430378118889760595621333974263654784322919761034023187700270918642702701475999629482313347043016432569192184883443497202894977010425908063067126146168709922637844112326686596497658500796593104466972884560285921715671314037782457296422702348029723013226420770754046947537671979279624100865381224615620656380691480880951046711940676257398702601685587175581841132257386553960164468422041886564781984006938391571908126290712989955697908198010484142534168940410955290110339068476040867675957673795704818236446962223534091584463056726988873815374446379332410419564823785422704534298592326847994693555666517606925524848245877254595110693111466228607010889304112089955561808403366744478675483207870361526985046792753243106163391324363168932559939370497588072000578837776711578367300705624417242402081969051486842425079087587050084593623087085351403566583079616534645903842988673940409092629286304367744886590163547394061641334265999637082454951185232625573958472441191872202633544660555449278634494007516684084700316462235706177174968029020387204506461964653079333147243912812235435248246159181527848863359439852700565336156257967995335086380246518162521719144662137809389100877477980596899242288539350022848106088870092619693633317623974368469286300706351882650467870399822984579568854968261053465176396837095112806581249492069970219114108345688209695286644825275545226802688138208787015759860342480305508047809797405014347167620450030783067019317392437878397019649592711734021545590124566788874329244555470328615386679662212569996739159554619217464886872532447665820014263319528924425865194155458365536384431972972408119979055620453487773436142988515099930136124703636110594157855524999214622583971539689015788273960152929338557006975317288705332813140233638886331979724563893107610354091529300179405410404263694920427261794497297315614313628987388156302141945070844191222577842647580608467739129541240864549210397090910624722785097992139632915451856171083064025344815155031474774871667207579799780295167166351045384363130229773363392853912561387092571050700454293193101842907682327874160463701783323436941059307417172183600119712834413132273457312165833366999044713966428373499236782548463119923301013973631656531955965852490241753831318533392323235076860896946058656738147391805091000969226015522280258490174983567527881188169533049424948613249605948385986035859713764208906482252657560734858295722240100447283790715994119474086929607753189891012928597915133771873204909996150689388514227624708564355095599183728593327702182988424189520002751108356533264840138814877709511987402939620788878688661869968833903954204268581249201738184008726385561779112193203392872518178768837954260351778252182306750987365036938625006707683069594866506965276918395927663085732698421898149172545657332902808858527299392314519524680060608549900683358969580895735038010581910202307513861625478988775401904019343325888704324911703693271085820797135403816098778953672319656636857440494296906661392911533939127409790720561383768237296688500307944583715171926638730253051083776635796071709602084087083258693449686509177962107294333183914375310930564544221656912912858317555586730537554902906033146008871755470213082542758265832399179521998658296812760568735549407512483431240709262266659273828895765488337857925046140970998929530486930972714263800142286611229997934103491060167566400899785392425252350212859183724943737656873492314201034678695728325144856093140559189919320283911833341006752114668998885522248551674974257510509856860002443737402717115932147013855407897350706315564419435349820091570018620777654975397986277856234440684876306296617997527312450814328217929908304160786091695209347545800929289916707910751181419461552065763897118737919739586257752316693004592485206424449347875298134373056203994413584239549790282870116429277972961592889812557690832710066601774696650292024387711452722597773814564772009333539176740817251731979714575341398343273235526802630543097219982469679253467265617439841367102161280120450455334961902287899486560993480128442730143182009452234363778290483832170434507586080015258055895784467807584127377654746142554312765116390584780029066721704090548501561383146016739430874527327472700469868630785207882727441491582943121668940214288468908620385683865878223613296555404397133670792938791135830914226616350008775353498538472507026906765015255985165532900812409826461716837279467256504651965442520905454489162283228046495668760765202262795800230453449989226712310558474184541591165172248057724936255062497034835129172598700567787504765323708303894604193236755230866530578719089520998351391802048152144090018348522120281765478004868990954553755763421134135843733472769858304839456029108284193605532944431440095490099773063578778602235820514266682131670892222898579927207294765111430166947230583125330490293187121108992243094689494677228911919988536200165086228814875448990143735347035874512674501886734230650033838201398794821024800568887060538702732254821057936717033588523702686086090995354562349221691590265790535709870171407421678448110997790795532169082991765593210979728351039054994904466694628707418579053922789777984367360702088604335347303010620438536313913958197408165056628808257265260566215327524097854858754641127780401017345928696616539358005443670926740276705807386003132364811422129952942081368730909728148423304743841857314971785495802565899367166940116190433322942456847851510593504082377239594880565001820237619410515709736241315130453372970957799861116751580867077214990349894045247346206751996639479255423967474065952767773968970563593161712392037923109214058908567777440673462305462858806620861379882292582474090672041600136670614098362322154630604493956955521778319571976222213079103683153745197382624655043502073807734009400021457842106520055542327196116977793948415650356337122903314262256220403349515404078180990272534703164274706040075124081084481858192776528834888425429423921470545299641967111322122023618549222272134534985677506925355568236190814596136453920797426902238494469193023366471000163213283648171249252218775466468293960077343825816250087915219771684619894927344286144127249534466459006245437170070782453118568804419413347771507221678069061280068527992580253154354499818576028183447884233177683351914120787636636409514371132932125341309385608743297660709554440270465659494682009651783807762740920471682708081494855374115422623719401647061004863419036529623809480662773461882072063114707382338147265148252888594461497804477552571280393132725415904255895250998867439687242378068755156705840418999753964107531880204391940667782294451980619597183841514332361069660406774569966654916053075161848217862464697982601765542575110899345405816812467280094470580394815374235434222926938311106033335839607859109586440247965651074981710619068274924548118149583915782573306700221315077592719621000654620514968122404498062916190250790638553192134056877623910571995805672050733438894286724508603852800556183638250014220278353744553379365657626127003106621244072263523258944675880800549781338351354017809692449135406855657835081844916455591433974493365959302138520232902977924865836320059049134762272314575961265553488614859646515040674884519493052997763879089761143656023336403637538217115621756987052340975447191795974281613332394406424888932894634310415719903961662257788707413398046804496541250933696411790169976216340765790948696823852612075483173416188527096548478204561579322320128745197183052115037412761258844468427532493098202584478043600319408500877369607690329255154993374268134822486713906159567431329712474406929676183925641469764614697970169641941022721612006799681206175288108418618799604152065364696896440374948360716660888511281132619198435095089458448528552722578175114059891309082935071906279748540053985660993661503766222378655554035755202579998219264598901306044854464101833052623050480904683307539734254928173125585176216233082273398680104333488758507769209695998705071237829653814805674703517861743976884092455327506671718109749151958211693493254377064235010603394610241537218185308586691354888052613692882605478406395883233464342359997851702093296825080704602848286263510172378423391775992762299803483820830607308000600166002765634027707861828572111264222954146715696839223519797523457996047996022455272033037360960469499757141563722778182429488975864768267947937366052925974453374483315385675556482692426556570277919805374953536358455245574953698099657316505515294246313408568055758288146330944082085595660346603553738529504991078885275541880504928415799945896676611591226870716541558789764436251807033409198519503445412693026376351283801190932850987087859939933017426895340283485978502455153311095628979938508362923149601894992651812008024198911660587169964157347907385291404524016869951061053218307135571546241753879274376632561265920027268751576622670322425856907129326197743122164640197595297066818081238359098889696239843132021145576996380823341917180348033943351974305918490483799752628065676347967030571909794162040876713531954393110040006475829947088302757111918678723576952598348429526865957023317613440429509578925568131118347187800010953790000584177920245849906704726440084247611925861055225165975754959614115585657681120547049334880818217771905542227325850297187331466256102591568416156706224379042974680270827068149150555853663182301398617506708541987689582541922846270893825108443503074170409309033657137960917345750213898786980505963513505250657263620253445188084558946801191795634045563780833126235885580624002380700199535376132058705382996171872162972379617607185217170732295048838122966996544187191171579440736613632200767445066849319267385370317981477399533496020806323236278060792431418211503093991231510496224214504413924163202134997103562798971834673446038103589058628163956771534362622845773645216938070313414999590727249756134234460511533746107988648127345286377996971216936440609633438903099950934099933151421492062171425325048811094263815387935969195213968780053273222849593700638764415566268818732447489567020035434490283820524682617072464524139532584835784427523050552394878602628707603456269867991554959530165817440416637130243549617821312036084610798366773421579721563758417868729976531213282114640859240517484703557480478512468057774756436272291063266772080118820094874233475775343449830088816636019159723676986091893920282957041634454665428977360929212309761131514965431193783878839384694470959034433711474779893192132534648550660669517997992713848115783762781122721363190118139113463541669191680472423295310676977198172824410962653745513245355636169364271655056432877827572252881943608673894015475255162736033824082960226851063191609899157877335094162552929319481318769360653404767252540950275664433232847902127205649539645154285786070198642644453249026240620501174191499031952061778809909452798186370594787221264496039777852986209035306915105339015531321103630598038093551096794347259651899766998049870552538091647125012437031773853795126917462403345151598297285587555761597147343904119669366830921869758182826859612507545606085765344299378919493715748508818936728327732051283286588735665474022389529049827734680142616496438359246999911991130863470998122260259644722004736855221992273905504335622686966918979751517274161816865764066673634543938075659956811636742302798556130540430899347618898831921353801723861273049087919400523042075379458887473379549258808285216350251090632304709135631967061823851185769995027888223782775470323026772750261591666728596733490834326163699363321055339025044582996292147093161807061230320014798294730108625497193023836705431846597566845141739949877879694012548494128731732237627124551391121710557302065451068760621923813016871257041939669515162856286542433924953968953972171763665154113540795923871036542835566251194063120691942272635616538669020917234692790485931735924126515532626231654419504230845708004936976049475423285343074010722124128228664961774909052859366341359604768809026705484251144329995143401674447251044325068859152882878047092579405807848307912187952125220436944437632173343201037606442097006158275188408895753768706728447530591607847224722152568630344808520799361293862505825853499699271437501081939663961908407517303648328785087601972104403688760511992308477908650274379530560086184266446015117019140452554644841790415808340620983738583771161380595135156330651167026555518065295229955727473062475311993479796762706520303364320834175415904933734231724600846212359615232308766275240440329958473386085745767715130537448298324115017962178087739884703808635939235278353254041612634038656582825113381234941991377205289642733821126942621737704022121914031454575627496076917462248174690075749901327589642512145149667363699968917670919517912150567852357737869900903991706320739125500225985839335333298041613813598537377457873801284554711029051387382350434164076439938396967997767506964351320297275006094722128650266703878082644188353179797664474911879246852781099114061396958727168754779790756966239970462060212009895070817487456831932775839482832730743103383235670487935965111487122874587732493648841904525834999306255511043347752377452507882191267096043991570541702464513420423898661537054490921313264560631753973223793831524304193242578436742913507173543453359742981367656967112837603804358702874330336868323193494835886122215444401727287391134992312817382644092320002469897261289710950825901968937913958114795261605421217435412994323159640950584872022518995552975695048884329867808287190916691655762844928169681219841874622851162472158416279717065121004095355264719017849961568529563944414711751764824092864731869820797376870923964209865998042689427710430563499951672967953305034933318106969370514832140179362169047556525745144688439189923895618159849275082222607776092856749020760751023671250973982915415466621147196940056477927067856403704864055306323136661303882748034832040290729419493972075170754235546119151973936377201861553071587892760933532888793014090054784672296390822589720145705252136925539138561639305253343080014399504066631303509074000713874897789066410616992808207266294390783518379240193914481515216137005309195299306854642386412617953521031209987520675583131032499393327148705210330798701560583115267862556164542563100790530689490352011501205485633267837389928062820115781354355937185984985656866704485095788773707098945344770822505409318200897656002649068730336014015641654318612783142363838516112762582819458135253639834946815256149471183897083446822931958649866764098666289908287165133004087168869855916676123294937815369021191259480116338371838953513716313219608527969555166480923959870665607060082208846565901572594470572982560840099883125955788925584584115331185106114178379407536137567026296954196168209407391005706164326558865648365106545191079760796891861188016180693232387773556032864609897336202946379309794294811064319450158864577189341581853073261418189377792077955444153397133952898089449969858256627909020866761947867764586502909356491893433030149521071665845102151803082924380721308284674965453802992403831659515111447850237709723523563926754404849359291569619924970402593310408100985900437224046556353715921596732842224160910590772590004746953789054526475315684161663446971476709385167706391805010727656166621887965444191495362061603104251933488455202698151230971034687872030337267993251954648055407197752558644182767431443227609189553407084451658644004888298016010679532762150365433353312991245740656102388942199041459153261071970890343876897570474166236110375236287733025123496993516155548882442086320095215560829293285298530682365925838361491187232710765172258450946865246028846856973340633159183494488616306186938953347583200053264706208844826583844465480316130459027937563020105861968430875964072184973568056198541929600312765232029669562164120156818560289166394236806335048142600428796164435454364337273983592159815347517377412442100590988407928199772241779501125017475372610407690478431515803785384001951510781985199705151989904883483607651848438310209474722525531095267588157075153353904170455631382068733295024011030206972938929504082758107838789931840249570347342669008492671209641081722744211533000641488438359405659005478061005846891177330995100322624396020582169902965892704995099804605892332340905624091848648329533931811365681633881881670571411651841928648806353432508839603724576610530514260504636848372262514594220492360077338243665431588897325845030025089107365863007656038933496549945435193488605686462903269093343685347923099214399481354884549698939761560783752892693274175465827820758440273808900641701695040228080832809658772283017103894627086127867123795561875409498008897994699645173339084239403604990135467368635075470774582312808362940812357111358031472598090550369350653118122512096214208495921060930473080941413705291052152739768652444226441311950902465115933576387536136896147027965862623350037631218276090297033870546529018720533721806383861851620793645299413680585156210873205326893495793862535454643710817931890862071679110544505197143586413368188825787594708328005266877250676437922957289394243660497558194268240589718469679854249663381908747090792163747729351533205850664066819339939104370245860166913076079772996975381925800850375578818127666395251677489302568750441355229242803397695710210471875296969504721325090783098042338195291810032933715750620327186416321091198186995979637514717409583169908338823480825293562172753510275181248424777384631672052689636389253012437170810555614892512879635001366675499521890959735585849805456500269675181809214559917936910930067726156594559215633273132877656652867400683273706246844296091124726785579168883734151980406417740229807833997529951561779646381183167503777045875888763203546265869504737721209208080066656073727936948978142802876422083742343662284471609898386587307902657038307987351011185534389045054171746830010972984555496498775920850198733554373312140847709419291533092357224865319726345974775242528529910256700310206591807625926679263044212047067587639114596825032945483397087110056263263009147598239122811418558236822150655604184368436975826092651619507700079856211980898682465415307053107654765963495494305226617318823613287470226890326002272636630918653311962860053892063038242567980655073704290963273500953919426486900912142086392471980154073487250816182224274118368343471378571629466877939569260701336120771113249759559188531043161676573079502353518679704826180918993114686830198369498236752576184046783603409184746373355262249114531980333810462782894700019698387236888664119789626104686784778223749594919025877073278215163238261122859379337118151965668256302984101737984214993118235363463704930042616486711740042122830511588704561838646974898434009036155242478753461173215995288982487705066598256875693014927804840761457537414302708828493697945992470105406342709392609775868160329537543325211557391945976125802008029916425367033783681419573016635798289743742237670860364793011467988881776248551932410772205822716070956737646496270497984103709031061959670936143389337780250789589358316194705211224844971943858571221522404781541597785697625217495072706361895897792678025546279228472298434922183618747344481456615284781891330505165440304650158648339742764266340619156468735235898000930783518038823307605513055208515512890129358802641117710072755743492252985793590068111310110575757505981181843305688181633036789655397351026734848436743757286851830729063094295496382784901408951599364317688149164662428621293834859157260226443917094511616018542256401437738900537409289904016659088644628121443279477987321102809295938546645347071586420985662612522207221450383318043968402122681170481178893099907003325327138138350329576656156613570194713981615124017931985776966774868993548141907643947084000261540310580881995274525531872976888481257581647066431926944243470112970473749067069223542145389772980511931014711313970811567996915848407964545872330993294902409013855084327129375703844753482801245083578619355307019659262167104261677500004325971074057577241688168709095148581205348129263548444128472529671076388805130806808745365960388961963941343571559259691886361621232022747286864159735450917012154003635844166843498410812293147734924807336272060362240096016358393349287449688018549840340269017295659660088670897146583946060045599781534212397024726424685535770356447876627613321796875500256704059193169550019353123001971622456154610178200708734397174021371734195634017642468284261883518887552539818507614878326023397839211508302930645192800866115450110355502955186407652718152695017246918613880920703713497215556273080856710050775846468555231154329998997365550805830784437130301717726669508835438733942037140577287829799500104335803094472578230603374767879580592465858987856304567335825535049147723640477938943992105764741838099777485227318626786533338744179320072603688417281454375939498019504874197847269884132046519149930677542852718105449256222694507896565833682192987886047608939871556345648468722471029861039532503449843416452354738245516993229231207154758497541303176820889666777103014589808141558766402643850802101986970376391584749276896520331188281494583172699690189382695370426197022870992574062742147262528485868580637288137420612293583367542159131693950668978338270933302076453625101955912218216315015615298120305391203232472679309430538881967027496348048127148675738865614702827861177110949312777436598163654975246433773821401251748293173979551509490398752258489383321701619172966585377305808508227669108278677792216753092819645193635953562079043504586444468144519976838623074403904698717010788678132905985888894614650638512370382939917577606280668777131813473998219173992493069825159049079216599027748748173956067972811167213233134929576622384057813844180898342935798307089005652683235934542992240516086072840835195716238280711081109579500175548624271418356997538717822983332932349810523277679415573016013989638360333525717905952117790587216844861307618811765221709446417047092146773227172226561838193358806985209314724194846119082168354996699737823130754245549511312521840621735790636594417176585968937283441399127784012414025137547922472685412012129754854142812517483343068778234988263933005950712521917150406426717239391862187047119456592633692624820233439328180242603050229234200625135968656423485568411556557244591415533184947050152603374037748285696913672424073241965595146010279171819110388773536434024019421562598077658472100712132338432171124758303069318298731241657335743102350782706350009236814486723298484569157151448161386446228929544541240142186739514538741446596256678179188926289621250611043235946044823121025604175153280225770911569198696436650312945111693801367259978408910577457183652791995517906707350977510970113930003400956747212755756196254077294392028823586875177386793860924319988380121749424338841590551810168154202288337486458465682569863948010869023668528018062126521517269111593713190197293294053343329442688753251379742272905018205271655054894945082200562923222326242691775518043711583196868946955770168169832798072935438051051083033981234354547860233331292509274482836283084139154443703841216020743714433934389608041049959558760966605998977865150199466573069521140586864471615915586929227534580671054761604759708839723950136026574068754180707975007143630265453489045747142151674430778568144869334266285869766237662939173556366764755891779281040817547767133672384468316134692162875029051337119726744148250165959917600949440240712032467344560645838760218309251205594093673661640208525047888957940612732663964683871962936471554240974440862594524716369615091093118838365834031206216087778188983715906801509919893157643439589161557720168738889297236388796162695925161488460733281911418884359772876372091765781590667268866381786792137600375772705750593995339270176426967049187646414890081676902212219885330968014548660575777521083081169848082957010446835728140002236357413670740916370664935068003553348031967801416073389930043279784935111048034927456628890586825242052335127861809895379057048542386543258752878395663971421640938528852342728433045780415668997049717058288583149425655026180157370282172584794173389734420243344903617150037474930936438790115699653720103811269559502936006651150362423161410756595133378776056139340287732988288260650709818925667065998111501335744946822682293232646486125327174739197994478369690718152435065152800957526498891761571234188352637320092495488424291719661315920614071137194855471394139421558172580140625272422481621030775452840577033948985052221662556035971745757412039604317253603790465934214622795746903004924411496472519887285958101592643362780866112116905493928335994542091764825258513815825227804881032450635492806101322686679449039024824922276985014772405023756073876080888181665706163783574475576049783307195150101789447444540482651730591523215762476027999786009700824549276918092018025565354177792018389196342043246017640124751664531554299081794607541035657840786399204315410030876377039215653288612068534909532509156350089178888848930450245409642858537232762386444723797723730990798268173128069149648395189482847160556109090663460877425470324532526753348319411749207052028307433389692023748104002640297286355555969233957467670910655362736138011463541598841363038058015407331270882910876312613345395323336040054686726163657219987799477660679819163696194275895113085753419681424993088224389806159771417315757407010475570318448170707075400494184283469235704122360576360000416852245528712560080536158822584850310563112920703539522931414812911680393981095661863067228247690647385690962224785911185724432459012689706307206946347598456405759246481199158498555637436994218036238262539837882544859658102729627530546428874577886350405211282591294497594875725614770108875163286771706808124327310147381803718182320342234328327662645249472608835655986654475571487238342556337411429419473933029248045568039681948664601233257734337939930473277808997706856134002531883719038900403542610654068126019083012500545004239215402417252516691749038822512308535792707031281942773349806577748220563079198659223121751618732767566601873469727218494202801631832152783649403574388659659099182787494465891343461475589561658774835723683096061735024155080205604542416373774053678926754224331529433643348053334442314123660538785684115804171081074053963897562619080290492911313594936378321468675484648028149225998399700654714897186227054921215083842762771144600932739776767442398610585550947946764472117019818125164705986985378749431967116005500139387773407455175478845448026478988154599315004184728942932683827210528258594606315831905878832392807930512464682815450640764468747774129239857579060590346231113217871374514712337383791614933536553467685657342769727189071092942547385436517243863538402321745370926640625264667121174882617885104541112331923131011532289253217329514252228503436074731799661548038604909730559854423559352975859224428096828803661270671206988086487024696839960244093103755382583528456490229848457211000018349163194174861942981593902591187488000957677096080046726962077998150998662512412573528203315601428299875944780839326686782066783729951621489737431347931201585639583072240237132449184950255185250626109432965525619131223325267637978014841286584442483680651326139936129822997612204681455004018450595627973958927317979065266937858409770991235816396848984023523048190854742681795335498748155572216369946563619084655923677183020799706742360834076105731369996778648384294040675095369741393292723902730428700015576524590622645944215563229110845463322705926383220650198337944142677621903107027511092288617903965515757591744521777266073503135971282593899737321507401900636515242222106919818494860673792891704020104921424049497100856686667395769561622341311499979773782779189392727175621752122831122357079240549546168608227893068962623878200022237167022394055357528016268072385268588023921409245497176004232263465654481676903696808907637284351954858489051270656686471350766640531756248175162260047245918254805079373990215396947157638273012632661380506453889623943439065165633671516430925111619660728491546442465782278113632278608822727039227561715225864620539458770370110892868273070319374924858455641727069282691251112813729081405737805966896532181573413875757801474662309069830265882496286714107774243874365088578416078394399104408324939007540186785311082723792191636182551780103529642057947819401180344872321417126943382859817052747956815401169976461147705038921171933842720555043952806507399587062363819842441882962156062403914466864780478990464824278061662999235403246634786003656896739335815005556536227834971111645945285191402699158609379491548875992443600408241972417862358216117429050906930287960531588751875491309214379639432029181736912263082794954294391438342769240437953188226862209433495347896193433235131860615740831171099403575683221227624974799672925622970894377950289426671774500414104869106550408712747920605143769583677536768824248811508617006220242386223361323124436736651569180579591913483400413106987611959513581316572064616181214789526556703235459174262367265542686428255377917788211984408999785680387566361069308649094594796159995352703948682823067039474334467762006386836476475314442863698643139644497268031257292344609197448074096318878816954432176175158416750037687852260032421816362660678535659634047259142068963711559598435743059822278814526048819475954308127495600496662486303313321111855448335553312323865399468096971380472875742888120509515746878753971616665613703058072387822755884713067609541735980841158386158105734347123708194753201898004841396889464875168456277719278583767614556676068194171718031618265264062154942603940364401149333087930273672722181673384373036954556911184388543681292038249956708088269995401233516880936968120276499776520152922205789389570913723432201942130310980494248661653199414550391025505213710207010400218346629633249023816351494042731218889582525137925944815740258107486363960838076244284984358059736422631687429750014416615442136988450250119301406481295419310407238762152404739117660277337507082868173304592509997765509519749767798105523172738388855259661127819743046494732840541294597149672840547718855197396943429171844494413540849923846311263736104244395816118981949576898793896501300272281581073181847769535658506456613538206556752507910558857611301533257248644691004743241323724130568377159089991316524691112151659947053096820011355563089932965645713137393104477108706532212907013915718642524549403674904258212701570220733461181534113679993889114157402536572024926691149886622576581812697470915861860033658600049935283285009273958820423986683304235935127400210151261488766703639262151760442166754671712823205014080319274484554354285002169133988043765085316083441094144492919636970137847007864055099457196246315678331025843975356287756833191406975325657418953701634399668482232190458148872284295702552210442039959184314587379740593747450896439241593203009489821402818118267867745733993655939539857145051590264916131896303125975447039975932877930904248147653167252991669051316399746769055684289349797154751590861946694146264641051560118661848990921180973337103144217612274385929472755765657121354901322755316842447047949894985808763335500622853185066738894459865908256759430723680191289495310957889843128541869342477080116020153271277532530616212844949802238542413579679945049769687339637576894084304418434602286810030316319706769715237282577292514721144225905432504531936521140529275284586282725395093255182376025615247766119736422166868871293446102916489766279420486656797566344084020015265575318773937493306153694322528553721472198204157619588880226428572298893737860744235196828375653828526573410967658236149996115910721353409861234508958967954981772016369616968073630419797824563451617271669468617970691682914819230201230112653540281949681612008343978026329739932321683533451577821960196782167965070118507195400611981414828628257813294519351191679746699544080232955353288843987079093184323896741679987426205818735822376482716930464897706546775257220788703737271984180170390270192371187055915383739383652763695729355341476238497949055404914270152111413006252467108732353750752619471731374312154233218369780193265703963833675826783495099613333843488847801560834853126686679951703904237578588895005951102473057945479448677231088920041089859685736742500771531883951811882297531660862745825354504142901544299853877380258414139852716611643625117947281632662322286809624766947579027373519595522901863465884799198417885017663653066274824722879544058436980891277905182350599502468269266813290346338493717828226082764425803231842242719220446761055010734784907512094513709445367374754576400679120224588756550320690207536922547631434152478522316717148222993696173517495742811185033985445605464401753737325128974358671078717203138490439978131829748239792949064911810981576911567617511962075546627512370372406814886974639432498955396732963628381865540840093024603102629691798664833710844369011337347796341090384784199483212211199509374409704198902817597059486457852233132988664925965384661132947098323109462641720147924846431483593288373583355947814738141301390494220291566271433625544065427912673449044138861835299865321415911186296626137188372164479095023986566575596582339162171712150248541931028012024348592052832938845971230897682186108557031605927969613544770850014560423630033828994809616065697190687518344216480150746234314024248981859749520777967438142728353635376126316866976249810157301323099100022031752688754478297798860837960623238044182077274429248891502577911530985222063096412924830806334607901033528189140201311126367809897512482770376191122392161023232751711625378076010639650254298159988533296912238817881670135997005490771961369779225788260723751171109143523328984076619783293642157772791420105622824164347306666033526774145613878742389149424024064835216090472965651143468019561734228632315280026984744154618806600926434370947191304948180591293165744673389026597361764620237840317655405870770259974310745458877270551525042827972810921333717398736636908193212180371366494544442776692591655886043814530027265560274928145484177462622358807798947847612993066633711386791344895423000672907695240266465558390632771971018521246691343902438634756213036657436581988376335027786117033072843690522693864753463534503623068547475491377641383745606598497682482229611399076835703340727274152613430468251531215120282021607284458606916134359887757164765036489841930212982717170122455436983822816647853126669791841465720273291146729222741259147921147216436502261751162145166880700085658224432676977576285027070398644331993308841432250171481193537639665476902358786230676305507636102195924624034801459361526081866863208815449266901566244015769745230025920768598856019757525520937027801237874610988059890979051337719751448728117810875844852806005102422596882142859589392686441243881119598794201383512918305818886769329982403136563339701471089199756471797923401546865867563380483939123734969371010393336215244928241196564474161246447443986660490629057955510804025139945662906473674864433094393973023738544964316796375808126649215652805453220116105616012971818397606972388973719930526875444812807696224213608980566047841381095402453270997050880370363660599405885054868592909162805406628293919424211744068158644879910790868420679572558574082095660725360079708310265375984114487539744840871409504499286731510560135802135461697135036320816294857083426079315388591962774905586336580943664978005410079974575315142548127315861742979594089487675173339032888685193637097395977402736167247732655706417199453301247561755125704498137205119257180873668737460094621233935345260655792392886621488435066266291480499762473856762995853947784052941663782945635727525303369851064505225803001507787537428849176612708389134562743837959144475084346052195845631351596455168062814828785139304405812078362127959203111570147877820041994275670788575234700195641184730718150016324148036176855092693109964585367838625328158081214324965037689004599679637239471755477328463599561169608394295551539486957196505504074162449531852032195193874037564356341013119792583619757370469119265479655097041290075733112834035845648938595411963879424871848881098405778238509456570867804483304350850482215242643139742516243231842181417512760762219484316505315774931201782694827261817398558641800964485938589883674453070274393478625646209244646856015860903004565711309083407967171948774671622762386841152308345806249018315850743132657863973400453456605676975912829469215029863269655569738474063215706843351728353041543268008007572301243175414028774929907089371482481248263750760439107213450733526939303469645901748906770550977965311592683597990128325289436605122218250681056199845786687524223422877795779235253856867111901433125962883763193029777598450060348102800074194931783826462626583100076105997132302205709353691625464442057061361880283511854464260381109945740847063123459217496166726718863374885676143978839600700037019849169355652202086449791074619869559697116022537910690706059744689437041438925758483960798585357010120479549181418919535561098590275168610179819621839068368745150935508979617351207091904501476432252766383323841319875357946471240782429524089289714611682068916838937954388963390085739269124379069525964177749387790699332995125739105598083040183955389686733461010618406748292723957515432976871778924177797804412617504846923241446685320262412530583851127292494370233513399075588352783225673821376190847102844298337266894890047636372365879320656577704526606402595346525238170557183623747909028772900227983857425927077187276495605429225939328958359779979313932590834092743914350147841547088519176792981974724367695199222858676095812955019145247064358174027482613291121046326698556430335913674036399374214745125087433144519138269678691194658928435574345949461897118381685864827043369809289440788411350758945257328901340604357405044680733159084357811972095006607089614195104344595244797432765874107364339102178875990623230985096093338442144259338794753523492124438074117813902541672285770683497080307735014985575166568810505791675393764891098437101465256980816687736737847543466789978641452551347409322922964235156441813601347769368910053852574027863023718204018548700663792875326961216842311207684043286999709360371044713474183228953693939381802471754995165506407619270089795207677158541812923307975183524423715171360648982301874373959778349017252151314261308055174502440843439766013958788582165475774046547627211395466393304712911361745013574931519779391106366001660419892844866243114639449468882545306388850474464668775267191004686010503411352468167361257044896144121813662718133954525922602029197739726375171108651551426450092784856306409289341264451037673730355928699268128622783035229334245470203768376634301416146208027141365763421239201113066917052719884879914552991018261268860459028432917521013687612672956716096670079670711608274814835148693654031197400806766948783686901710548719460415621121546003877720652889804122156943476278739763449425693701538136341096994025281728006515015369995696292254283351826246590225302806053742585903262865311468002912069975806445992659926732329801225387197281052070905269098465592583763939288009792613843498719678447265305229867656224344509397583404675353355668001341172435241349798735178591188443635963982455377760403754152213796669673669279241086819846933605288129600507110972965702643068931454748417208504559299350242903881645099249970710220522394874764413898734427551299133537938289113390635733249805519638935953921174081470788998725403826921382419144649489257647430480936193416264101774423111504401008760270604004627201852387055618397089425773743885633088017992228266449366407459947159226090132346800576597644693280182345604569591537344197126052237552834227668363561271787517095825970944123653515824433830463129965299044881258782538503948349731855050676219057613531798650695549171473594686420615995702408782549555532352306444933786013125033512369498643559169457578083575654102318600737017520721804728736699780410925121311833034601035414342625807962907595369201262552935013129081996367634889351182890890548330948869267274045923087009038873153415116541848194960681589197243442507371119168468478492655550427547391139276992972879499646772395928675614632769304587692215972209233936403157901520194177350753252521521619044122861244428250443610687834031204479056549637563058586238219679407143868522101608973775442113488985055579977511453095215196847514872291230368916117662735991982620387023863630482007707371919836118120742358883406659679141863091281375334921398607877992963839197575958960905279136260372667716709590297188170939124487852651779105615143719247013114147933068409091067117675099367962829116010617565097753889476692984423273709744943996545292888600463376020039354022194038186006451311846160523632363366579378639253851169683148593468071604750476923662481937874559041308720169170996793239820348100028870368306543919773608356315926515703456336946429844968502826085629893063847394796910546689171079384038767725230012551349912480773430586475326644616915770803190474442975950376166689117436744855644141937185950827019877086644992096313195621013908141969057167466950269823145692006714125202696473533976490651190990864377012216427442296476305993076122038696818719682155066912693518935866500684111088238320312131538860404156494846071610804500857741900563090023612006718533665799563416873395757405465350920885268162972584946530043989020427424394014253445843453539995898093034296274378938861104175290706538916351164231833634045512360968212064170105813200695542646816666854103344355476016911488647006092139087315097641052419477082232124514370931758861232439433398782864887089917188656911834731043484250744197388283688619414608430121046209235492075982617927158432541609993626245319523946330854029927263849909094559717479482985885094526470881329200435762665652405740244563379603074994576863012311336672928537721756436199994958203895971344558748047773463355085343654968373265630575789615596701798107160652710575277640285347102641628989247923630410271345097160726119801535085627720431124755420448675719322728242784128121972374391882230878365034473126910483466408389353902491172769058583441786482487533121053864519731493628675088655217994306026193339588964411362069497263875345340832879834873625509926362837176539188468595262468996210928355664929831361511197245144261445998722804931614349183982111319544384832243434991617311867490898602325290084886358511970719131625261205463144778205840270638955637720241328038760953351671740364708852679961078259457545558180177196557337548988594858144930573795544443890126751181144416954765271088412353681573624952709897716066333356637491362242556269252483824386152015015565469082991916523826376209241470500075347160005009533981807306162966140555641494889744963209200879139513580526651982096145507058755130788527329085359054029437989767142365824971098279490934867690714290501182991521848144625542862884956218294662549135633251852392697886371437760800032472921066024417374445655906504870562416650065814262977426429699711160723331000396515356358987064545219846155443188955182038097282571821876777699033556173404583366709673581547241200754102620593910350061141126206771852798642415091731608000964660895623481637078291523645928362673886042822458392348437643655101025614760056876066811910470079920989743327547197610452033110946077799519156431578760017465149592331516120368974932365429659426434509703391732794530170997667237356190961231938555520175882901701333137046755761423406994958469136567766692596836625919130315640795235482531819697890343676597303515995114685308410681777675100608083939751943522063254053428590614811490060019357359184339390478913497170002087799168023582427326230009333282513667954166769124799631579470445220440385981869648673821858991515711055087978944333107066217142708010649142232459374521475510615012498885976187066770996839360838046544417805483909000263222338045516440222321459382539331644917907076229357151393793644714573503280670557592228556639434468773455209736513717652980190330518572935548482801092415249504887092937208490174156010144328602483097930802869425227262381077236339494275179344069645436369903730142642128598948295499275435003222115137048453960035363674725278383941767757035051959597944125410875221951533692691862736100481319749466900220360934203304969038151130381057813071708217953591596124037302576333422400779044529443522473269619176648828583910500852003085610455135899983085973809000154954958956867583989956444969700178460014760907441488897081376204310304115180780203107864063068237113561031256035414185094988514418552686751982588185256197302252526211537117753895859172898005666033660978499481174102456799556391875231549600354775787996198603385656302784545744868757154706020532182303818636734396691412173959556772616732660180234878713060108191968227449419512953390065702855708751873260290964250931239785671619537806066736387580383262878797622368166322025967757875029413053042391766589459237429118367384169777787670475162588962500280634943941480013416961150851161905440316057220213607747508323471400470807599376342921601761480352722187794617840498471060363676313900577148886942734349814985515559443162633637726266408076051155237945693519239712929006025441934599368892941454483107359424633222521785820054020143372215049521713448528838206699421343083731239275973276427771049960218019519397804205186962462208447060075144558748355756556278441760108134217479934105864836900275190102564631394757733632487783852588072189055293632624596241584154823379852820684161784734381152806164726014141588512843654418398083270346845280224646218315720440733095889376441486580997366233970459598275352424758967474892253161078977890386376586258726931036049415989730444194901552304109755674026116047163717644803109803805036700211462914493696629353913821312928292596520529277410925366063914731999828506595429951391051607306844814363978791965795737058218079112280962639976321109530114571520127000980082313701089251846766868220630607929681515144992370742792876017094011617726046535299187945888119100422308015393745231347387028229331720077207371069373322197051858906596262047150703334614045709389416957918596391157629247121617283299465393612740047451960431864487294450416839256649185404907503875831592354984061610659023491759970535260628234638768105467135736769982956019740339950317381828582724624004568664672310117088607766074846021584032169809115684431791742900394943205462893962707001791021700030781695741641111232849365998550001957212554383488494760829409676450458040654130957839050891268376923262479030992628042239461691839205375245933226460554160493554205607260122311018636002039292938517190786299217385924407138727924243022560096333452492151175805124002105204490242812225443941970918873255973612057285872399311848042558789552225125995104616977717939791179799792814131016968301451218119900887001988937843191703070348485710770635575060061242491499895486480996088805307476565056605602331313987435637689319618131544671830684786753315035623975529244775510455939678220569048912491861928461136527228393691874732005780462339112785025135537749245626537563662794860364226454407953885239338620583854945037130226782405741482253392718884734978346337211926794892795138675220126640962388246150499701594603285211385783445422784512854438065100171754718809162364002059728584581595915504811912607299153955548228501129303477558264309370079649553747678730309146606112973879713298272121211725357699525361605024479144342878795685671051406053509731654308461891433822860712270545295942650005091763132413286586464321337191860132183326196042762914523752816387226768337892390227991459255652754848657300918352058215824595597856857209135613996061203152624569559574023260061620079995891051021840193205577824151354909685211654404147920571285085684683272313430346839294966004663661550469124003643620007928746941528161967994562282376323840781599216867528127117045624224354973920025986798614622699839139379333513724909336898245357060158029561008344188346815602854625618821313388356409435820668228999672292753589357278477180945366040147998651535694996418104845219892552438128509492391164452374590863641565542829536646924859390211115912286481989122529077353010150023057596068672942975487676254099163583815384566590566316174779079303025697429898755162910304466688904795779009588601842755016598874131722995022549152719862652637927539935909671325754545352412309194376554663316935364502362479022526066288775886632831985543795173673620911018503379606538299712160376990286452694466564074273795599931346843443143174364714296339212344645896012458219422172916519881705806237796758318804188564190469861742947759303990611322869273076698533352911561510116160162311294764570971895814617300087404640359604093327602281472944055359690053860259397069556662476733252243553713815198887233078790171030266582484624882535033464386014231769238273090599706939840014044039450533169177908894590323558579034265227082258286066934264088189075645592947352085632283798112456943638208818815558640495178468952287994905871979621842476311916237957689074389102885290369197150978270451630379644075639888856161901258959741132738453576792731438352990484804572690565001414527293971262680142905155458600115681232809895404084262128054178632339611576574495307083714370147692066581474922454773151551065524237961294230543228918853535162353146424992630856234163091014175714184315273041618684090959822841958973633763946930547464686282265465857663317775439599933181336307165282987624478713441524983547114359182113498467681512315330979312520994078896531652254074247082688487196738327677282957203574503073627649291022797370754641907202110510056949180852873145436318727865688105638435518736798175384474546530804099678154262084143424637435899009633471471156824384705168972638537776498698853197132807881316184676985164229768643605924519526543634376424004419595282349645724578229233279675249886373783588756793888449125587105630189978987787084431216868695774901426259921124636792114514362224953713582882780232968320020720876371389734271404795867575540711820534109881780624407328407259173483140139108090367841567086821196868625245391984028109066035855379801636055352466705641285952689108010511418979951139328920597346969220295736972278585370616023313954689532175338358390749140031506624161838936593985532941261308851594929788784449026893886345842935110019853798382791113286576452254368902465541868916626757812013661818100438338203950671317480140722464488828855522630045450557144075896213653697284763949237388365572486706946271346847627093050896197462610076304818004914568769025231818708208166327119650293701621713574659925649154053821077348424745001581712355822011761194172668459383908439078692417380227729009599418338497028198716805371527640898573290108881064944906288271857228885996202610953108755545800286598691334795354231680060253195583016206018530926153169634097124295807285387701351869664942900178480179683454272899760642179831892406362787454054257481572141729485253515884198622572501171081281938595742075384019489507138805042356056173344864847685498955500938834277226826552229668048120703030661779951330443329882077573987561196525970494512587355861671208762723178967351326740394090534377487615635520301051820153657243601366396268221019576162663310693190669410986747688542293664507399132967901688958712434741459445648019138804534991344579962853418826632830185635775553647566749492706953040578340568134983998589789840409076190617592822072115674907574391001994693868322760804440380853964936729497956323985389784849102956251617490780217898062013205354333582430295730972470362033071490095158295684821400377694764972706568597620954127042771525206473375015209528146654356592077372158303952679104257048294688247425404881154279667234557405951730185952119182206392783850597604532989666687620859246327137547922597311077105502355792636264250755092459251867885561902400346080303745786185725292969251386641890887893874058667115037361900493704046048085676104613746253687589952838651556923745528531251388177802178702784840737427852962040590795642185724899677157930479294414176374190154379979335399123663284743489304728383416339377012249925930989910685781338154383122409272317543327942256654630540206495659385669198031079704804401421203524079020116157981154641826957745353480587678143382410679383916416761622134360581930000528342161642169835040935191356195974466819128089565190010022626391698317390227799396921199076331769958556434620352706977199145210870132662149682242701622286874483941121501374645818219406445987288698258513471150122008607536461389607273803773109885774446427587476656248846779564701204169134874659551817480693299737120322370328841157608909518669181764797405283479993613092415032890126194516306907894898115060931978750657632886650027491975920837538587812366039001866355018344185685661512623330309728167977636958589574778451343583955910214249917733898888788088063338101061722403387412215475150635051945825275375670780211410972483298269966724022884144673111365082893831366894378610170617483531914094944569457161450011309749136417133562596823581723930923827299307503515063239874800866460535412521525823818901913789388158801248868513392540496959166900423320165605221479759039237355667772759822094307821273519451103114324162785662223678236251119359875513737792072676874251492566182212878694184355582200437528097240782953342238292609450232340489676393728154161949429316104805195127391526401784533556403573262599376423983636016208557357971068256465979630515654047119815359337929729414815370655793616087108166311967934266675058192924566741340390782200229152559509604571480344583473354234256528196010216366576811512049535456380308373125193925217097015022576057547822946227512023387061494547964961258822477649720915248739043514502239196009726681866918459732976074590531827934430067450356076263095286654053413569333538793352993117443827702217142730147925958912510199791574887262814161862590977081817818550598772929939627407743940297828644310398744203600847170486779735651648001930459308185044365415298947654420886521196147299097220983742903822527569639217300019163394943746041827700787425586181562976317734125690477639318877996850696565570428436348222141568547990145088401817815266516887909378926992961178637675730928511644699547476320765727616825829879957112042383342139774537367352365638274515835483765677844027775682799611716564892472402940803790260257687354339198178254059828818497845398573844251685422793131608337002101489617647793781060890286639390684312657521884802403081119826893460738368937460767343677752538167460113802343111126696670915979800864926761455681928353703687221146821997292328617363818123863710641828802468443467932385645583737923226765310704581774980019962238791839975855565776131397923421979483158594112695910553553324255831325259505622445124252576912625337585660856059387949965556823152457214256358587053428424138157332718566106133759283464208926320952648340779220684846141508738922670542467776281133294204628459779367884200997355409763722823068220961411607411754875497380345641103555449777679338838753510206502683148960679817049255812755839998025656789970565270656226820687635000652393191690059058968838801378641369213984154323349121813177120112782225072301856310602117388348182605111529987690667980439416932950991460406423420414521322553207211209605006635715367553783670660757481771522118284506238934167775257252969624513226902945177587557426308069370841277760128699350060198995085408016422075971705802366152676510421712717181604042561014064428812902165286163045175289187156890440446927342447638802221992926466754898399038144147708907168682360200124307942288980153725584447621944490587942194010883800746574466030586055011453806772828574451580662133066002359820988411534121078020147031014765063447169927600280453324052839333803779414636565885382398440768792256001294153112327798581487220719546726200096932061372066020925419039630119190922357851364934116822333601945861745603820211243397722900408607760586984956031715739001611568862228943222245936685496865081347524369214134889197406610678183323049858538597560528452802486248983032464119353221283728702797675237602575401425093726719246691625182816461451403898437296719527786502872477405787156324010097385567995748377698311900808911848974396168458042717355435596497367464686650105707200986596246464095329473937704593120271179383580893124999296414551694713122527247245251929207361315517093222731018304453712529400059505996068171818518575730977144987714969002704607024331069738858849361223103007165731731238774814098031900588722806197924657427012849391086387338354776015261412004363188158782484792596162013418819896626944536107846413115597948998508939956036165525402546244126472776588069160716987309040189374343040050219987593092355455706414325449432659629389172177136840143998652115929250728996372364658011403089411933699302285793804690452848524885019698369981985007580108522385046068512046564260514307449175729644598534826664726775259329589410213011830528376654755914797768695534263107828987130285828126400039529174717856824522188857876581793260589426346832512281216469337877472841579686288147262925671383327171815468513943289530257035556984337038881674883998679873816645829250831267375976797444454348782315640596359100135580158576567215529029288213339445539931170362467119625507251063320960227449307471331744942457470441941799735738937977625516116414199753288889330388442418296613690638592655240759428282054143239487970701102514418949062609357829546381599419620372845813656643721321066195590144063232385039489621311706669458580087526531445529409272193835338331809083835652423044990848077033475562046695796614888977302959080510321701268480536175222826215972199739506357100531295625797851082251063491872095659689926903041152081683644186874584171212657175577808866682382576350019914994226365797721325568267384222760026682471318519733696072676187721411498885980088604998651902235856445298009006243551108633165554533823851638431476592428698267694442549709122981846779249427865763537106582875122116914841623897060478124695642328955571643149034478477383512664715509994109712586447206267332663152654165137379000074346102166356451382964235352272472084081669614150861957908852425065189970552421802759252965353329760811013606403909530412909882359056756383477431813348475839747338068068107693488602779305661299165951599062823175202098517306881789793762953126287515889947243516961987007207997237061718085428745188118074753288538949406118443191712777808608831833229504847108463217626867598308396748374057243586870946615664896811507253286158659176871251669091096763261585363752440792977733665023768901089379140145113309830791278304172197717173651840170266153883930049194595672475110040927486117521077789171490305912746241473477731719207266285655558264251320090164771916366776412863734188390883268820851745499532465378872710103054882075257875565510589238807744942469012292976961226601033286321601437500432166810590485993342544440164352988063171973878580771234002753290580497380044769667348821715394903123564052818154139366375528895801322451881041740996664470698487914572619383565166839624858451167947985525434092914341799270318413725987741746694031915389527808878484195072115476153292716104102265444940093274628522179334094906308468783624951368449359862182259997425654536146292744913333817273858361269658507799529715976777030603069988022329592796109337424090407210384432376187309640199746359736950352818809033903525323086849283369980496391654939251903996217223317790870230242480750898390453271624529234018498282589468104302064284799749393179158972962128880856254031263634586693850629871769330562719367975815867876222795125568968423656163782335189713407100730228110836124741306382511451523554016785333517866244442720236825867818777572250313984762483485602532637960307771832299993568067404128997500395632018815920787561332388176758049727938833425960682196200751169296622754214258006194533580573135345286537080263962191233139187971460738223934060694844052472317665077608677235596938285437138147795632910993748394141065510799172802809302756316072046760498005422460953897886259013824535752564315908096105412044733458175692303952672811393537545169192128649901821087135987964533024573014672741838698919760855716885598764413392442376514329325098595229252815562901616499778586191011307732497921266700815620679373753165876352661916094373728245767753051036593100491867818696711816835950434816085329198123385443150985756588397709638240527370323418676834118634806140545924023585707472774014290088441845122051278154588178355244186658191477657973937233651722227158713143307321181897425575796157660809845305303501109232063137158975248113981965746050407083258309969965888747153913831199111524429464403967273311979711630541644270266134556313945844957535983118196633931698699678000700309234017802863171687080218149062220521020148448617280449632702313288539262665244828928704209835804144621344721057945198018302388074505595447609536913508280388546817343431598641735674130815195571822717544932390624992815286617482773838512560861986112311273446920184608594003803138067105670411765321344643987985609532721689750811569762986679402731466391821137489714080550260958364645876580513943534440198815696971242173227385119038680565679554440431195959943235131275594242219121134197688192334422290928862080108988654602957328563292976560780798330409022265862752197112118688577042246034063142546192497264809944969283732404243856081737937663440499399517736768964219294479526766907141649174858806692556884533318483484530420295051843707934512980216654118239880469839249614761684374313696581247993740846138798570808344216564708921570811628918804339415530781057139811494693574794677644781320318869437076378297854635528771507913553311882464119360809231399346978144614415423646864005704542822226561005696867973616410285565134430861158889813944772708924676345418007370058310216594388537123177452474559155884226092689919490636796012258352320226476635757979388241229398863550468997932484468537950462126245667301849168477967423664829891705860111613240871240633513232364052310840932612583283126370595255246266285177154955947239584194898895316967084218049454454196104477933230507847360558553722947525311397024569924015921801151571925249549182686047274510556469935242064017130646658852153795935491816395151142946027861932417525531664552201591025593467360927346190665295265570710460271479891544984425337449988783106541913447779950270876808913821678863582860589301761034981236303819851854255262281457003261587804781815950607917332553254840702037110836853047824147141471296349706125604166160346873019133271101913774325214041379687919990059700455105293742552106988154545086604140786817015396947261549187711033075941299019963468937559220088962513001825525612861093424209433418330118593370152629295393424319397969640738989496533898704426529499456557303681277251188254424500451957238383866842819924146215064886616173596138402093008982498489483779880769096013321009535116953376056418524678627565018019547860046292620236999756373880702094242752789801683675654715491339298989006203795159766934149310005831101772459925331835734388801803897427111887915892132324946464098556356244216908987609910185997192006057578754033637109910727687412389577401751649102451057539578738914680683085416416518034116130357513059265959122479378379189723496390098671319874978507475002637493619997049853207794205399798712659600570586735190485136850724146607745227189424094675904407288847007785238206586769751686982499609696269063925738699275970413101402925326763509274797227257984097233805988255111041416162377978502692334636934490108651745149975283069688492020347349020243089141521204074426986085363991748409667924317558825501204050592910496042915556147929506766588077336161756148371434867076005702917293007060930265025457742262746825335145170339730282601960322614246076317061412595592781093829530845176094623058532561588973834154545445686330881301687013098919235810558935618214241970283882298088292685440922701227283137725148486802665677805815462131539659679658522615877200126935896314734337719532458479463925966495242238011280657285081806653435314646551385838133018724527892481997818813464003628961346053050936326396442221687446573620556701972019596710171510017135154696723622907830105650761379618053323775418367859481678696345833294427954068013545499303107519607164721290305966848806930465239454952820808542982910501190017188285191652579106887083739296821739483573630884154970501579504604512686869560213548622465328189324642025234776947439456564390347029692173260253263329796911337502479360036468752920215569220405249122252983375831994635325145113451467229404946825505256261019387209627742086187028524660569719009526139004700517618060859974032978467324512806865210071583254657457873924124269211239808783971153091695146915616585285378263207742522229870389950775337862857106744715816301942317954187655620678377818999015788531009013178552159637618184230100278451152052314858243593426859057823991056436943723155264689075960604639397679800444413466309981856624138896058292443536554618111344974486555072803186888323713462469215094257249962603359337020840012911673926896322826659217310893768067698048674436681964994787454899424256510353675048130594143747716533373805477994229574993622737572154587497283443799048541838698816529583610335343243330350552663012810707489983950791646707692532646382671759783828890181342813403001982966575788193196278078815247975579288189496554659054897837667062042138464762133897596894460666589054939751560338387880888224391500988396510621970554764774276398112464218450125982471370206156087605171882398568793462588345165468823607207504105252576810050082740748334188915319686823079766869002372519895458970523279375808484802355620815492489308067616495508164966158352031027323375960416017553370756159615207411907563286387761074597305923069517941804409920594964933969911811478475589326745902320237636630428485366409869103209746458107621563736406424784429870655921713787279047918479834097682165061270145087049998577732857767863640953238323882069913833125367072486033636564510330373071023774176255794788183998723151488968510772418286770176385082959980515076832693213593137060994607179325371322655717218050964914684679787566291916708040973275291308961915495436259161159011798570825953982846606410580364026119832856805884048785628213903693148689138051531738638951878556432625027352895205178620294117805667438680792958548095532514537696395612027742701293649364404879732917529893446632946008965902849083648121382699032140966009592081370630414389790299806106970672871502261905391310381632412137700560793715108699875945420883395218457569930735295951742495432319833057400033992414554126956559422998454773163899084917920482438305941754314009262423894395766501400932691029165170896574912167078207276392218049383598669500876402406455718682389573091170923649970140890808056069932797507195454275112180797173924675623857193333826764946671805166251511589410720630769807628528119053820302867158692457867516123757392295980963817282013020957166235146805933701385964003863468041101476312029499110582613885085887362298598626583688425375103981367303809101976419069473233119842588564668085007636511989080865961669883019241287280209512561181871994211886757606273102127911709179481189859798881077021799055684624605284538434880040316681251520752056998110368968217050598413889463276366804828532834874705171567804806381815065787252609444389634687034550282946240863527959049800064971429766764320378674775562670832691024143072581954300545923498179618193720138723318596866330682112031371166700727692357056507223326656917604024484913374872905126345791694905573596842045741781200282095660304994217784186923721173383654714055930563614651612139088798700071113178913774572238904107060495270563718875293031609453289046137063389011522385092263722999895740359743339046408235986077433133069485197106599386865087330914214491037688451525147040616144074930643442021290319809635736732698291587326816526440438007724697772039802504432803179361603734426881368905853705311401774303806719101849195324247275941264380766729863926597454336771793208323149202697967741211272330598312755501056233502521290312110710156848847377339858792710648491697639761675785270486886493804628399815823461238827336262830928362503066828295296247801595152812229110462740374181324527950118169291525290700307690662430138544304201264251269928666698561683963466057226367042371225460437957431782713571891247869586150453867714064530418555740959421695761112839194610748006646670057263134553107791757596635871084019776292127523116295824295124863644511647242795589359242667366329231754107239684937116114528942800996919542103718933219517183069479731696469914444676962778314035677831751884523713911303591580099070810375711785430804193338504854502429720626670677072493563158024014024018508172742726467981339980106034004575784781307417340226782343405998516769112761455437024786088714354418226098545152583228986197572280495879294430654287161889618453885485565265804194247171775217477580855618465168603496392324026453974872492546083233313065733472237900792823832561852404622644492504663958646328670469316714635105356250952938047082663666342145679805030088923150923547314312340027658861717912574049298060945141344690032720592637477225868001764474964132991316958624491493809572122894396728856204515321869729837079564185935233110054919981245531085267462475347097760298942498609997665588944898049208716288035992692273118206183290217596254025325733226226020121267062567617352342457971794748387915747709625609282443197758700358728185191983622226550452247606906040755722999976644935769726587077647079576089137316010624302764867821104651331331290472301320024993169438016506451770968275244602487846321373978989936704157072934293067502384918846143353241036152461634185794437675424428379245814045119831109245942708550215426739892791764173606477087474001191516113538880883936325691856834603529485068319577587221751023038637839590125670024782393321464501871668597668369863556141794014403433296694953395994955224516955292167029503996026778378275328272217977180645334370751341795696386339260587305520635867531188862501834155966014974101965177885959091321337640002033375848648290767303822488321441482443759332354430463126658904656468714553494527809329704969494542950298704331260533240668689553356002079673380998196892442827188745086182014937142574936294646618732519620930387106128016042627802140149339832712609850240892869982472009392867299440167912896756617730001044872742788968151307505176299954368000460788159773478178887178607171926405328361994600228512547787444828700307815300857884559613591288528588231576287326008658767658145612817201115104360124240368661241124328671894456149281792847029274284553452590657533800972522721233248937131732623551233746630366779173226084707106693342975590864767927977085762191427341986434806852147758293414580962376414490179478097405077425669843833675390614554422972655985667309471962171172682849117278461722881712738440278038002897865816198683080233841623350676319060648919346781502434973750921589118301182689686720869133072409517514262172166501494735558002910356724936991258534197134168959250442634842980511210519778436991277300841273985273116016558795784537578856556110340251989997754090396077273032775929981214689734333955662980571153462127704711368243019910826986684057697388313613699169760135653787308670472818091078192463146263888827360414990072416077930187469528342901264794034878128777632529711352867179518624057208579933771138814816042181818109771976587718626738467846454903760820397648404501194874889195389990718570330296871534647017581030142286824197216458114127578757040878287279816422348153783601978334487489990961243702682454724105910444261188534568734392453077158601558044734217044113423760319150282833927821766111084552910873028386319428374808158014696019229755651400134167663444911220994080364439420785674627896834778455467263973026551507167358999534656175522102615248954556395378345387539666566573636695521838298284189559805924863333668531203635125974818733081273813413159943880439280426900761425703460192833596930948005187033910883312830841869957638663792683197049495744577165246902158305604764381120937976400989757602283613356511551987000813802733008481194363219358479344186137835811198759079288026744538194291781833715111995197161315035142364382804047003183051465792555306720036261948304360403539848750883958694466914872904419369455338234194571556431336776848485018882521544294505667657788277823992584046590102758238223403793169510530122302819278042665784827562666663737029325141219872014935394291221235421482280029336333265482349891579693806271070249264539900623743739964190338077887539631862442146559297762832834446366499518955576990538334597703443714498099700935579716713098704212382680564280244962915399360357785004444185015355121896170579575439146320737844789227804433976278644213104099509384060437424147699649621644500576263558739706639563957597996877998873460622026815183920946314030547558828513165012922238616798795446611199586213625350144332609294256400416387852886914858884269687717446358128034117800611908085356313152966275705618893172831412163743924395565420821462235275148025253354174742520597709035811390061626017635290754969186778816153430517562637125678920822843929215917333957188267546544849053467142641719619016788660914676130416395163244373623165820984085612715239605970830561287314197794062512076491766747257184306151446819207184450340367498872019008334698859578684147945738170435293357758163229566222635952358227541312684486252983383560815707634567642984627479964301538523145006426380580454106619201689304492506063892863811245544928513593060626614170981884587644605103152552559739453349659590726224463784224763753966019022753459771495240284981030781797689329328632146244502543929628307483378311478729652498514826652399754217416316951281609796086265727891080221050676101498199292365772505309784149001947072642867054950619235869164151746948118205148077642601849577589773120081998405110513349950514773768341279678723103076117877189286335000115495007738736170622586301029670413172239599987243986279091563723533099876835822079471112991631641593087196538449562039995261466272042678247250079503331375457390742738028641748551213378266828871631630092184450982454330745033577936527629191631178408505176620922231195295913967947965103661272473409925391697027398922174150857565829161764274421169841323025823117684738746539362690559603301458908595356370726367579284964462425008718223047999029868457254436551456952979546003316751516480490007545107377592267490163751126283752978432284543840048329449035090734031170311671816387691991783687745194156112651171833769170319325209411088702136522664520609843127165042413383590818474637946662760718365805460898713782370432036915607414245122811583261578385887985780183987666220744352947149250394559183796372785225645961589430211776686327663019675257019858365782196897456858004484231813017632556179837040682162143217977716054603406283942065526972682680927525479605037310858549607313093310877343572247670174393862925795408788637038444814106682135535940521682252952404388810911648537397111866979497519365447356794895835383690130303778947782697000818686639927098460287664591209062279955748286843685913927140225481645314805612934816561913105735703187107708394700976311528720564382482677485276624332772362727837937393199056114629058809561369241417806210822962138006467429813635302424310065499658869076985951696884142916157700531849329647022630388845506363260964201860200240751321748325585341845758767310750877104029224407806321512500775102161029463992660024978431587538318645580849545525175107883399185030130239835432027155439445862731586338124172511255409286347715574125711697410233122312890546759632553071025951090491691124809328621357301197507727754729445526771701545286953319383349301327699385496736525133891074416006578707375913696560009402178430131181077786184579211786707908805150619151755541130148235091861755696916191662292959320282450651149408237340205562309020570921951471240196270075089011967144254385112631534823602052634210313165993892803029295526916858259872516490305525787021044097063255108203481275951550591729760335163016789653714737774879183881539739443874082292700756202618748423224176034539555185561444508813857243794909624611651998238197719193989864766703123272516168377414315700294008722003728052389219697021163025001359659295000730619324050738380510560512886920253480087443013112105186048572730177269587153749216502599584762103899711519909082744112380025785148584976701967125309547009094319176670810839820779650914995809541756948819249270020165375500117843730159342746940914632326133050511018854042125992659844842753126454504924964643805892004130318354007380304191162985557453968393511808419136066388528856667676562222585417743244121763502689481226573285791269794845720767565153166069756538172387598965277051790500561508226456412343878026534506205270483638507860655225361585077769369089510043475822909056894968975877134507105460564636097018375738784138263907494901845141386176891668621504180020473054851510292718676834379949253091019566615717822268305292329414980890083899914774201444463896515217194371308559388404765962935419591388240420530382448835531811004464520347398281047242660908519067510636942968205778476424075424916643391634154319294583106295618864027988811033839447223828093405012834020019612009393660688936188145971004389490061509391000299982690182493460475533102198000093008851797175451897045457862240659753109190929862894604339703098311898159035066132068284318548511857496294899529164204345948888760968892371461476015579259381598601543673834328724198946079215854756031556271564194179706295331717057178294529553716292448386549109246637956410766589147680271034294711317068317995575665102506956463125297328883537509008352111585495734396514839501169056964648751591377306666687944845031756929593561612048761525506861605148404744250761444746588140641235389614783386982581165181276116069867460811860951222355564623218550195236442843363653479056131049192782056111202690148943380571807980541269525961928436784746092172038841976488397333240190208902139207794855186818453176778033381854102336478018329374931039385367024331099083338414212738161476962618906977773640080621007997150700497911962756180633038373229482086455324813850649627592920465493864001836391793483921691563588206804300610840686675896387397818760906800075738180818506635117758640446124583563310972127317539243897026834793018119574851239740854159054567794251386295271073783302189177214728775772323522034644623666748993636115299990088914034298348261679575169213626016304702457958691160977332510606911920400556799036232762544038100697643146614164062248982194349329365982944085431604809329440506537631295393427494997294505118108731082656032846009090939525408893806093956210217080687256131278196838417593974112653347581970483525729702536675579960754692312986226291859636439192738565666224328163526288322240511610653477169783039456476270877356314504107992635806195746178613533958737437584523693824670485365112286147527792393027610327230127424738831375289283507712563986425115109898209492834956826385583514745266612912645376465595597877995555050495721794785425875622820918400720134031057616757437076737777588036419602824931861105817887176526699590015415866239938005989376251312586646040147778064301516756259055034566344894700459829783779391838765670056639651401710205737944216074225805840735123584795560414330340068769292505055531298986604410441781944620547420288052755249329351136602791758123817844640922046308647353461533356207994310868785933903518361208242805539502948435369877555176892052552791590148926094632629608064280742403130253483228486116932494015620713107711839730436951273622403912824380427689659693007609476677253386184878349577632943080201392653605412325469473319018532611070423829618163009289978148594886231881533468338139321818826547999743996900758200070978795089425759761128818230489317372027032866010594531848417723499785020599874773195825454719826042066226690381248726609769257127996601478909003289939464332714490167419449808724799224717460189434951158580407757912962882146585331763467994445029797601787703641338516249466875485889774890000499723340873138610853756154322474682376701155870466486494797331151397681918410162888407631596195967866492000495885720371044865478528766544759330949955875874610041097036003910198312225209631312974814409242610053600976912493543238301713878671423306644135497836172547698507837320267461006240447379851873724820878583401015902065334737029782712440181899550222361396866165300116430261141367720109204111777765276080121914490266862806597535440996077987836654380636557060187833160299328056347777237490423362019364934833437713044019659616541086696379490341136407874069524893561038070883737156661571212787087072175956715750192972900410880410996230509890440768859773638279411671786894683223879922989559753106117853407777905363017239928978144557456875058181889971731475443929208591600021541690055921791827868211633947960150618820634881033112455801938463903031956998026995693000857729624159820616516317942419050948820317601734909366029909552743859971532359772923675518163020201994570467418247666824677162176057844497179613779016508411525614189984129313867960794584728051377936831154964553587718535604510481832730160893831086120907367586461556922317912673972034392580762647896678560712846988864840560275282562473666282487772317310817204817238978428826257241959186549517216174192816461894162863203721980559726536777433416062238105934142594111332506442470750972339247468019813469735030299411561948615394261289678728643573221484948112580080998762352220958462692130219972757848071723870198191840817886444768276240913526518736267976310676350576216411176458834035530544005870053857423239763170582493920311230347530020228940605992235715983594708081970250996113451384017549091708988103955367836759541893173419351446077624801729252221243654354066571829804198361712763845118905288549503243833201199610704240761647864416591852171344025981403087004648935512505213064042321036449772842581240760741749874470452444506241380771272312824806730143270517894726897424686591373281770272711426249925907439466977643930960905783795765574431250631383995164305287152036466590552079799014073131210664464711980575864523115722343641987945111931610887823371102950726180608674504421140448547158477043883802553364770584534153573805707382710891156517650022841476683337396956751690380339842809530066394708898444562974158333948167133078375611097791172055636159209838363686821557682077113561162220901910935127370611404126473484599241308054211377128036004011523581839496848567675386849200984840482771827134136889541517157113074055172390222700345229414201081320567708456792656207888391639410334072970829123303768977008255123145690139083643671544820574656880009740718021171869963026387208740765812235077550464170004418545244946044128569636387393912474715049639005340372077799965282833556727246353062374580343708380955096555634181823067675776459626434597075175955968923037488795847250720012829122642164766681884574788190253799084389537971240067762158333051449333449258783039987301455718544525625930032067390223960612836236445305325587961783834928591558201083588738047591230266764998132707461633530136847082980643063416022475635935009254294037584952556508615618029659121333904278011566329791223597785718144920072862862898154923810724188931883888646386092280679464346197509317763164756512172673714548168115389386611238144841661353557906182616263738675603819388728000462014607851011970003776727664895421827391367461157377007679896349518348509015639645891365718422455468116660004048003509367640858695689351012150188632077010779649166337574478698872710141102150786410087087892937453844203340091496786554242739076383732482838597900590485828422493322208258287766082043614461713869133906108860704021316905446008391782585880009909534567214101268704016922044225269419803124601517659016916608613448472487586344565962341450398308288426780144418522074341370567329323656116147812419278743338731499791101463150301566745715485330634330741500897047772214269151901919200887796026718714666143985668629418144366145589820275946397740223996025023283464093801140270459491560314437021112622323424272387600750601258552889999428236806950443894019791039013797210146867553342220942570246645615715626437051907548017040109615314253743374306075527884456041810878098203411725772902768454727248293331165638556981889346211311950940006315193318601680000795766515104789358477830359495564332182076223326924438057498861597280499164321747374806540520854489983368000760970925246761260224753349244355032608999760174326758544877454924857428479436463657800446788772844300347271725614679029974355515023227787450995207105049448600356550650254455536333326777602508383888393848956688749549131508516654345293030433216045164629587737845113535444293873821789670946070565732464437476580431272685051038501387165268370983822499940501513038636728656802370764286260570438080517170686210093501850208216075192822406557534542570803818246594906897181679405788927746816213774672254206372326157274546057910252792989527715421635059790818775337356036790241893717225011644610051702450606045970460189598085048218905364475802614084875983037146740066162998973018362672965291768219789194271798494920021788318847660890151763888811812991864600231866279374295523472846548032402152373893887724720666058120702176614646750730649641572392128265276351355599324108309642307647064682406998891821384700076316217068342555445612973795654785021452898845087350047602020610086728649232033596023070619519110137148427650867154430975785798847913560068105873311911064520646024847595176011428051963999967719030847895939601571605320877060676382493588139867178016899866823326549376816165523128338815001392583441985885857199768361937070197644981768852561948645540250386255871217184965909505105565409398514756340032366737493286080994019230424592772459333926061062338682207248261158802968420629566521832425158712700806246204719895784452778405851978644598578597594802989080285159944022170732502052796091044573283652741356865429892255362244373833656651536394995154100159288131326311466035714590255226778858027142924033786611703283353105981753782996273496542610155157222370408628612914560895262088459184291182382579997973165353653081421934641020880436513057471613217101493804787797599705003625285360106545046517032796972982553243011979639404972864594968173267390130248124973851672626599220240112224763427884151122827753350782571798709387971206665025348427084834478904204705440741637251805494825828850176679586367843877300381715691882920654030777851296277114934995621573366121260645263920169226640005330723551583307751127352954082319440208798464697030371576180096670742993026249303686266044980164174929798109713181606683992850171228395220240355352007887087887192401092127718246557755410309326284193344607285634595089695179390488142157228303144174662977851648815303433520602148272125676549680555740664202330184993523956550574005460075820984905544524030593299586584239474838140152089275738424897585690038738469838042838449405049820865922276595118250487691715222702694676565007987493370086916800765100405179219667634231869984888116232265085662608479504976011519880829385115058049544459269260037329790292745171443370431574369901375341652678040475994323015060766976846557838155296187600101310105552644062417883962074217729660692808568019819301008611306559666189062942419313195422753539151082714369690646070191509007087608533694473262442232392969228834101640153620196670355775311744371324960215435773215574498005783026087416487812950130194724120586713813603939206253567405644375672497833008618064403486660246068989922141721973979808347091750590531874954026778141630469074723132929799503020561348710369197700555963865528054543358630132239567458039342101944753140735993631300133837464050518842475478583946045798325488716974315323333012773378780668190729704526298388211299365142859109274738650766434434841367327078607859462574733727075226933801444943209272289804688151624716972879708172351577895707801883024097622162592004539476261751437236484453512697897966957082347769732887679838966040729829247388540310715894662860581148509544521852377977458693690006882167361290160666286582333733173858160984601305970492740369646632693814751966109105218250896876335264470204879229813797486118745589369214174808336181078412426724447760662357578014244144514920350386212517926295899029317821636098040076980808628747344481647020228981527717497830619264888732858000399674643319962248404252577427917216212333882139830064721382750047339356175320905875449854892733003472689439893093053240097754229837952883276095236362613296079927336746782943781224165713615498064645475621408019013342745829788026743055972348698155857383690844407332074695115918612282369237036977473896331267380233381008736823842548406372786397442631921627766290110289324764090382432276653675136260021982487748975283846295566952467798990263544336368643643938320029895931103554254573964739098833289490257043762139351535619733093537553765144013218332700272846956270191687450948704165661689673409272211500623982327263843146737291511019915904063852192952563234594525226847045816737253184614666031907604056218702624327296438198324253826159564278683490938257651717019330669672193116916359000419891657429281671797004823951332665675731557172908854349598080586256710795899525210077293811452430075365894893560267328210679284316673419613620413058777209158484910054132952617683306489721327792882852699772478195879842681770659947435202012324282188571762524100439775282005311573551496073041269484499056665017526420909523009487125987286686313146106061887515016378104508673992419491250641361434371293180114824919400202301339247365353374794760356462757163870471473098704130438804135420471454942302382867004763295611561742065098226420113157187340795755351159255293664111666836299662144051246766911564161043858066251274517696774519579177441561725150401967602700768671329596558076914293544011461344973250913564980257481119440122012644291215880654283926768642056430773815130207884061008811612371026765652772295166151641923648184074413594953946605000218007360974095356067156098281570170766629404658563779924808297238976080707390290104913230279376454158899471146140731288600242235191550480413049888899986005473322752545686469196101938471961186352348085372852103505656486298653542653164164463182800154205307810513674470142040094682505662500286680863911231391638715038999195547428133483746082747559710383448715467895748861947999308258165505407519560640418225692678054442280558169042776422474537806288434216459267021751981772094894281896574407839028672089230771760632519068899875449407858428082411534714017180965405662570580645226950538007168145694426565169601735071102580393213345971593196538037956204509836247760365060153943842020903785277995711906666850852878335306794101345583941471819723748297396765721107065884504923984609734752142773181101871512404034521553645776853727581290783439960681363770733197775914481078755748236790399479148996971980984061960402251176829099418690287842358268340596273945053790364988403620490994082215743167662940729233214194031811595673161013452392338459437624105210246769018349064422736976590070102461700364706805524085123112190219633119695716794092723677429292077887683950847819511523217659904083799215079013301324808939016317070502843844939105665131623002303536709230191218184218705961715361595775292994303058538322841585513975047627168698729422430346139945978274649288562123697519446259829605327228877151572091587770610456246883964810388323521084288790803670230054295188498287835354485740079907248292084300676212416662175615073516556107215152258232347186828098253835031334879523013452979419302332788577853331227181560921047210993850952680161158618491612488689739616704103336993683285538532430403838075751894092841053018049704321146979402407210956149882390378693863157606766101629392511896722184950193610203165180883336389316043585925134224543590091979805638821057085390483010437101500764070095127328526765924964917772776970672066067754197310780762584640317131104167476736790899254407557110490060096816972628171878871783811942215407215830269370337716315327775562646722257051263774304646976950544937382291927668354462995660233968332881080555837100324419842029913489909201063262701227578863393759296984219442110287292550354401839291133440303223899801809181865426920565131204474352485901863154959347935032075723840733937439936935048472887425049854301596184324647075593930463472912928612134714621399356519038332305059084271605880772854731370527225424212727162900188635596638877421895419325869438917165060626807562507653315663837576919516002464684999674764407545702790754721121046997123758683220065767249434220742280850205881902852376594773262224943906036065881022662230440118163219140096581712214935182045333838539124583349264761047674476444045024433224169242844020940525989294563082004299195248659957534713371213912847228251025233425613824380809266197869160045934391778932964247091171387511499972949988543967461787671545757210306748353681994704432958552061053548068744028919434416825676468862184781844905550233043767534212664906243900037594051917902187948517366675012273807574814792940979417378936753182976264606996113240589251346713459563981704385849641048926277394212323361241550126499392534268062683792732655382258000111550930491997615370378784448152582559593284636995495864015320066512371550648774323691098033307253359716318760604981516966498691465082482527966822487346115619058432731464474417913930967637592167921741796423595778185216069526562830780606314301300975346842837903889535367483650803166325672737646550102092855940219317945269126669603683570080050090831977491403874229318040084881629604420758613300969572729956573782150962400677120330133437710108456545423412965835680007464323602994157791705615114126163230383475546839940550335213275421827955929477157874359591271104915038157462259949059795484124422370687720445483466251520906045775816269639072766242434522070029534511849071426950230936474965860795414838907638044263205463315208736496901728164001115775193393986109184998832388008532694976883536550108112544852487842992672485058865779809157918870952393428547746014534044187615640840501831083565945706921099730626289346329235516227243329487411598567814657286278718984113720305581191950192725063930855174987778176537799432546562853159344837140181523853992048947329200439445770594843704728946809756907363629098073074401609030761554485794842078892984658162975916505643979759663641177916960882946075691477043913990101926803508943929856894876693778239693326218103741656977339146890621623902941792463472181966570180574269290008804618332132516478154885107150637251760587159552169762468092137852983365193029218750817974826177630027517196024712330456170249977976400059139019000520861468465574402929746462615447804338294370046677356183865971898233527711289261091876229422354844393725808166035660562963791997938124146608304931174070215213732940032668052977740432162700546772004942566699133460467071796107648743488198879925658307309321929593163112489088396483056103035810178764265929453928516494340042492471782938980175801151004067212211609592632623476247183984058868361644024620875762563958464713750494128926721482903505727431849027259130224773525293723541601631174084270528363616055592109255967218628586219559293159701365258979336090178891985587516743790905601782961083400808060234848300218272032243881996075808062703004414808564347636166066482115769821716632760262988414531561788231198412938588416368434004180917094695132078024298887208552540853957322390806038672049275820919840056509516346896985056218518126711892873064898878373028809696511853857998812731283447534778628671568405037787253145454732550811122176677598555506810889710986793816274448794844159740550254816215002057862000438164818094508577322397070661725725825117953819968798600522646918928793805192480461935818561803379539035152518127341528621747556273620347319029808627124313033104416479388587164285048035666523254368483042459152906035094062785999607313198976801107887307240893414670137839132015406951876322634256559168306155698016204679557905237064544730307531502374671031887118139901048080667924737980252238160840886309500480854651011295620614549186160014232728062949315248989585499307565087490981108343177017897565089438893987955459729395362585326318170634826460199635752523381579442939194891799995133622645916676792704853823929485016669053737838906810161848825554280564359896342071069691366440981740626206321416746898767316170888852652809445861585270421745556265044724734157909192799286989863236146314954732035021912231254595757083426708962751891302871774166996731632774420652188834991839432498529595636387446020583501728870407707149395911175071746985027179545867231038987678202960109594701984776243469310015530963260957462488315615976255596919411109772555008223028111548899977088311204889527351844922783755011178686796334219471969899524952635854712187751425462718326215628181615231159693662452226527807028102259911915216676073185729482374547940461423740794541742932471623265330353689963672398045036283055186092189924936995109918588794714857236116567905852866222169961940871211343900415732767860139682924210688952957472873536385862173397568512438746215593038829872990220189095070788899386096318991206616058170479204306964600383209142553527277051758928793428847011506926172995016312510672385668526570267688733845533685541548379603308972627570600850213151586635245275338025615257130003431982942735697945610109213379354263167612347343813238823427408725460248193024916334563834746874448910239828240118851568227829751589851394475882864802042801575897312089243218770694371155053701846005479697673545229417726965494242267627727584886434823346066622610265781849264737845403370761245425289164061389574965202239746664827731151217871957320108020885283361825443512283878850912852634397483295036819587899087863737273043431451564847362861405983100115353558788140738295803790344697192031864345886143855265932995965116820504681129219576778991888385867280632449333654034475922885134584569470126275418089231471404378445158084674185833783562512573933962973371896852236369225488315102694997339860744986488500738230423695757417809743395640215564336540593889731752981780070456692352781339519847058736341765520214806425914835439673908103907309620786041967274728976188878586588881929724687846263488303483165861726729089276032922790808151099717413714649153911730838829556923434499239636296740727461055654149230812298931610754999340984383247894596077835718089994151853684818640947459585749381367304112642918425097242157295576189466096366048802120992835521089031578450421768309299178193016642317221957967195185342864470008694446962030825631231581287116779452540988812914152800053332486587571457548432117290214629597381378696303155909081990594525110491207534768226601366404251033252016957517773566094545800953990020544508651328182065642765067704539192829238252043627925795173402810245718941781546407002306523730882107448312090156633859382781959581786015952453471525854162337832577160333442653505403055184022908446972911487869979349639074823487383955007640140954166409638543464213378557363335572802049909148323558830688474067692550323676475031306833573705184400274899936815599029722198548576995838894254707713693914245039393746212311357229252762449555848322234757684092243216388065507998121979399576448503784557945635839061005036239824170329485288089670568199776409033922335486027355210700964412910562993317179480606213909925824223147511280149111993164852311514998632638586672273403027998664165378429657524170442317273313122703604912860271740151183110745681083064988643205566027998451154214614204824484363095844879458139612228486797041185877089613314353113102565947623447351779261237361964169488065340427324765694737602371924392160596848621694746511647801968259115351624713455829527814846474063241308334542470358344189216906626016979563599002491709834002922524353969695377876843821299675856453034196696818964682510543605432173590179585383133613472877992862980831974145954701793129824474810589282296133948707266688317471068773252680125632831518000392457720537060338644836412312967730885406475834008007310041413304622094274016212346628908701828691684977876057427964988388891972611770950646830281814860411019142241456678415823152473700190853705346432499304668713739635072370192215982095728790568993063190426551592936818448771463194079092274249689784431891506482524624697019668039005194108090144415718022317664622737850020326084185514900324684127331378618021294850628429399348914549618404698217467600217805289155828170919631880391816906517950950540692252374089123929451156710275875780829016070525945955860197809364202947618979049829986431811355838432344665157988378405956535966190236528646085084362896896885387341901868511898350319065557080037759880368167681796579077773226912058948794290243101583836735397176663754072711600641519913101248952119531364270654794036817376866760491333082992999953216332944094493816860365598477198098985279566996313733685189253681540062637012054729281110926601361123403189915029673588380070857597478173885626195749787207424997961278462684232599581141007809722708696353283484887065361500681669781820321360775349726837427702698681639930631601496647530469971406991362820357259740640335699258295627534217790693313913346058509407066793546352197264799744897905675722679724749987737531687459012581451587596902896951697073855170625504092876868896834454723205342100908693569198680378697151183277626983417916326408537107134055628348614022258811193247350731735796231280650473493913529549282004136112034558310886881158454058504690160640613844005224011527881663429468792400512511891863282219182321953188734558852837881767869482358459472980168083515880989135082379574720286648148144351840342144932503460827167416515014996078584050299247985832489973111517479768176529493957072559749094894278170927121613331245554386714522307351553126961007377388702454148826205822249725373076776320087279107071439133975252427802098768454205365760435993799676378623084666157598396166594621922846148397577582568981955919259340260442018880705481755589357375001049320708648907120655394111856045668131209344457018831617651788468814499178978538533911191077694849058462983931869345222523332504788052554388104621862375112963947835116388517336271866653186361972295720210647986937666009713928567633075390095340718310094605298563710716410453255160089563296654264179943277074056874417004014643130373806635017221267175407801492087918663539071703888054786737585509524701695496451959783557144474835466579941195542384230190551504635837285302995083295439424166037437204626136649892397988159655966346071757870301765409377258373849516232466297736831783958664247379410853971867615433777397427902558649976812277361041537926659193249844047209185308338459610500014901215301860961194304082131380317265037059569316896857411039697566055337110282274534237978596038650617487038404297169004763735257236747654117984304027575543773340760802093205605097464902844711404390025022340138021006887363808537631494164071646310274455065183134181421565580493010007248280943778735562555929473517876112203385783241550848468297909847467354136015665925296950788270932904458765044770094934663398557069395610331351141781354072505481434634348266469599021594291290941647624029519376694945179433958946355744215129280340050159167505083025028996228585854760883561965261298784774144738173390165478924048350577556613172524314719827717617364079768405052050743355844847907178945392548689021282294164608185503051990911148444164917780224171912536900021723748601958826087966465063603394181577074057517287360894967250927071555412963705233920110618336925653734941809885951726767366296239028492795088887860443119625136010094862421747349983887006462755619287680654424088569246876741766115269587413380166023179382673578824642377925404254042428137007752120194858149332938612354184487825957254962750541377524463543071058701407991768526330422631767628887660726115839790994091748554546832734171058644736340298809015317009417292170815774104364148686688445630789847356475640038663488484414648935139709370388096390763092859634591937664899962724206777699505124058314202836058442236766258889098244088557040103492593360446379654847221886798621803365315909886686368666692500820177533271378568323735833133211154204413112436892786102497462145562398585717538065006894487012633729828187637465102478093590407104754165244325334867164500133408471986278798240308609764209849597283742292933195190436844512339115524844918561544561983889028465138080895458213318860026951917371185905698164776560913792960446616396647088430143020954455190068663031520159551832696946677340228719357306448944815428698121097749038756510473088535524834293307647655106160762407000870138328805405419657355404451152494409338557790689535333953792712857683665339883249184693162008226858950287821001055890396202437877023850915905218298522877087828514702758027573895354284448215909631092361548442287072637561199079844915496062033751400639220310904971949909124966962823206061062180022511009532635785498515195705837285472805603639967390786189030087287163984008348948621185001939454065306090409935071644211184074855928576359198507861261992341894239407688699070576910189003811683461386321596965496460296307739370538394997946892280931612745997178629118447515917562309239240435160941890400309362863446226706217592013674284465826035256031210271064875623155297181400018995171485408302654914403282284271734513632742841341268332020425980100813169710960364322172780378944763099046511271349130664169053687539358216503357826793085671079128837213640542152725428294957389006273255085741282438310979037300606139868719408307906081998088033061567004585924023230773776194062467058997350684905394573514078950804176469007535789324556423198818612186892675286272081946346658271219316920924733010027703471176051440614939120282677153989802512831222756704513255551028404833809957586008194016889594145837391846420193059383914671099683121793163242992919589720247285633960896878497665739981082605113112171850191823170692397082261996214946207871362474391553364643668471525896877543858901323563574681763570158518476087833704218654446240102708615162742341323039919988354392660831924036505557144658150296215839590475120885910106256510511497650682176384462888590334338477329382431437697146025808429965984110622645520662151823951837779184560800429367013266649704415448262744916087337008053320419979422625024697799870078765918178944491831380305008157134187116501435951839259660327558019137963996409761584878399062256893688044585541201237416959920479313595808202391452819476502073180729894530429766275619701302699204422300465106225351230491927997974971843673667310325065860082886437089981089762850103671687059788568645545708032003472056474190560522032490129018459116135925763856746450163054175423563759594862711320171342128170151605072151377936845019623279566136760008549298703519280587520088743141033092649505117942476867524319412651597108592752802538674468738782389486609251119540572291450189969685376439695960251849344775086857021068730688950877023959532565833514328388331403843685122534140968736175592803936167284224360068302157887434095860970779768741566196625042835826815880409588480328588089493366714728064876808686840760819080631370039972858296597965704679758701063453342922203037917830603692939594544828174122708716817104742512609660502503305821185606145634182131458225831003352639618462946531299987058864613365254407246114884183606777744669807300825311529828853522551382375946848578197681812210904352430351987550196973790767915755412982001314385776606225799777304938627722478655574986093898909836315058877170141952108081613805154737197307077466804060637823735919699574385275242866545700845731658973886368429044949208865627159375836980582382828632960556959433925265050904206156496737270597000112319565865276886484073816696185524538291883588247939390313823130222499743975637892631681931327147027858748607704748434411229205449049583142294886447716101725187690510982487172435141213446005036747218885049783902856290535394131356837526572620286962396243689938579881171400910424991913855125248105111960413517072474254861792009993153021401072536100291547660069186423982759423935754229074593198247355412042392752850201022576247518092050163501535239928673834895004050449384940923620456123922904628941029246505207130708217344096163651943223652770170452955599109775112748948056956963998022032347573602728063082672803106610858337825424299636791968155254093684803538316570086374847984530100692538732492584698118917376112781391834408735637250639089252958178013058738499764612425945653983560850147795353233699176843266615656713005990803167892834853567972623203954369641757694319898657120778993165040432685486638408235027688492875115371318277993134041582427691400683675376751685875513324180691747106861643348050991683595440057843944901433292049896389759202042222498565433842838952575180236390436018583554723091219338166801935746089990079024024760755022172059098247649209630053880425719231135840206053484972328085463549736084762064691747916199817165204489094940466903936017134662534908382713682234452698274348116242618828142530201530400945185333437703172403255518254819823784203703221820505405100178782903138778805519842525928566264850791404629459532258655604728801670720679418287402107381624992966484095927418780042326705355040796291390460094575206249964863986883993995437137745294717437533248881983213925933940092681020094260390394587683505176655758710956270299326492133698725149366063748867308729163090825397196289227840622052473509861760253888429593885653755609412775392820707811553591866932013121351703262143973474328545352996845357673625572384166421774179447851288427214958409092153388816769229694441205985295822341534294765553378661592706008415156122099467792946552070254088155819393951508348350262568960749727027197328271528136262870304031868364090093191950402109915792309588812238078271856086097933503947774108119023833976547591455450649454636575512348507242614192066769408598099071125683443467191214634064603558796039784413269772010988832738208569433743529956575430008651424289531129410845816105499959469293733896355837719248931760184764592274042734041681741035166423864222614362656393408508981315079365957002348857323724528246292854736674606063520037520426691171247684707192225508311837064470763262010475914507115857792527343542456561486426426688487022052365914599346902105653405515267005755352894963282678590430048509859630916349600067306551306169652995844396772693545845166734366891003224172310201852142545995260294230834027601907992162060658087018492870847197623702475585560799546011271168759995936633034414711588543930979467875167351645326212827159104660643297295941723807746186341918373251336736496938083414857089757082298015619186016345075051800925758315136383364598819559881065055855404902474241991887472367031726149668330743892809809536530665784026671631113165550300978132565763991609618652589110655809923996018352974801146355171224313659651355358801220808667295548402074667394751336148133612425503208316142090257823119893178002174609949191991650286757462134927535120261696058040440160101279626967890655497877408906325981007261239314010039588913932685187443988089699108542053620230868427196867818903576165307131688163602129930647859390355476666163292048147087210262511048089825942159313761314240777727036301702439665864754834999418315935744754056835291766279718817678681888962630325027820881450897321932369508189230172188043101156645896198771017487311535178704333158027081433785673743027391078478401228049697651398652494908396706838687122368472990708872503032434621186106400906717952376238428436451481722460738871152795454209214193268298337495210935982002582849077374116728020406437837565958165939043518586608337307050506946972742985343158007172766406864820979465097431706837588205668033486053783071473951833510711439981266547800412156658269837473124828751571953691433141371441939033712864466043892220512275326622374682699437811826519310636162915114172126004733360994647459365996835354851395886272798260389947030748440147617617486518069351701060410073464441286866745483158036893637382888935597091205361026197965641745794844002764691461627919698581259253473264960819039777535414649072305662401970754800677956097292373169415729189895997026534134233916111159720387737601664280820712549374322747580679033833874255159252459496027865564439615083559241452103189259195734961842422900430211333047560305904811000348072854538603247773080991144124751816446143071147630926262802758226558642712433863923489406984377651541556554981638119437776361721164587581936865600685455747387931557706579423342548980607111358897066391733432053959132172106321394259000866107056624534978135677324073046851959393267308227076293004508330618102135637751441904105994457361235863928800779157147843177582574734927766729899164062341918061759260532559740113265995129440508640048298680725641529271265738970035526785280554168070837768292264485997492534125790356002468583077611074024690714698582138098950454484629062571147546383703172721616128046157032006098089258597726787523225365713458968730574198643889640669224148335835371620099619234894523066267832214974970329633396090769692710916429588904907318322099548508037692785417097145867192190850374893863101671400751555319402040566944466354251740254179000436680692937801166821846746538452433080763671248825183151897263310639840640578359287516221029108117134472918449225608747160862031669985885041065338257757752094231982377972384301066435725587754370877996340855431789915894059234753694063948964415766461564895058631743607927586104774982639769306301815443177674174157432945073523345979031465862830806871375776144461839074526083970547221598767280179200623102411175461886739310505799698247618958562354607299103707283028471207043523750078790374816464897973116768208399668391393137059833862724481322086071134820765122560935339031761071178824621649844175135825050611604339392052615887583167498516116892587127661384721910614757151394753928362653456636840111652397776144232381785211498625914562866456079257173806970881149251330811314640428032533704433377916892172288226591622524314899922291834442457993767747220658436987989317031447106131015767438503594805688600560432506453740422142598474295359197444750233051252014904679832390061606366769037940273623159374014916271681959511148436749643773881715886905023094377927329221588737153940351525951570195597011347212817041227712650163337003182723677028909253363519736023626530674690410366105731107543791961790131091793051660278848473829581724130040531750598385184665234479877424588584944570654859940205160657030939370981723282981145523589310305224955316711745052010701314136824218036821257163775237866333142437762623351828917415038527784158725480511868542764216823021732147257445048319108610365658501115480083134936329582458046182116916987867047566881801299985819994454514797198599960787830541042469070086278328310286415882836485180202992103144439617820318618846868330379503365415710898358305952015695685163110137885565422985725997102017703434744187476059935304574219889334597172174005998645862641134996244946386257378727856615460895861764027183612418160429337823709129541425621686082148610814631791496536011161836045575606128999507382250737121805870991083194035358626845284360715900717742430228298499519144777778828010884676447561539334705530152503038909491997600915604531108240605866609899491466090886454747155237662037886732423280707200730255412381441425964027578812455058603364239925586377435006264606323155942362995620126488975312807896336714406152713692811337190476124943231702687515517364828763141919738188404735406218084576355218850198552339949555183991145131716317361156924395039309547673070044486173052332037266135510262538691973118802930341234270883280681022497524130059714724010037819062549303537774356118619908247297366036492925345225556250683512487042417548197553071673692894219582906450061748404690560827018940310589723825522570580501685704816151814724496241058326382329107418671332139199559255040223369808394638488639317509749101622634500078833154635636888534551240201247399482419071442399909794955109349360221011243273696459473379444047993869333840148643868411076368060760774864150937396642838947419552195096463269788437875027559315862659807819546003241665348885325698677028586712480684106710756372289243655541871646188394744912836092214561382621762867242406751456094132161655504457178695004724274032471221385769698357445881995392049998555808797222610638836297008285685969358389604091290381262890374681142858772302748992318635391360518971960456399531762673351699088592685576570745480684743347690981793701213604793336247959140028434984196967070354966479593212821954860803882641546735627891886812170262497990943004101446945522519594253079109478640072697458480826288486149511763352768177625671785713102799731793684328627517353347351626114199579506008774758967365974868445901670981394881167056516499078650663355528727757346729730462534423932819759476506978930259979714190052539239877184221452298368811184846164571204254023526939706464920663290423776204695258651825803481127275333150728519379861781171369782660816780123726155696303467240036272697228638910300577783271216807303259476382276085485030887705805894222508657516913133577704304521040123340565740864385704277323415056029452381497834442146872175658015105331744977920363257506840529652980568530963837618077261115207458529637911292504750568790271423179276939516546198795347602799018045271414954760353590530259455751618974468041860258034823743071871524961831494563833667442643364525304677866372392252813185075685958557663059216992694213724849643261725249967652527420530144479867256253939883841177072446707147977924769817301642825758600196996932542746151375368325195595984402530681347333101020803129490398893499994228548308694753647029856682673448217517544823121052011846924987208109964454852317794695069601709844350396573919646036555507427817079930440979052763222043267786524475623928841150563390538342785592502544007788412469111755299289307693326713210672266913817751483433945503613410900064249518865069115013906757249163670834673409690041345056043828590719497021677922097298268620643465054064860339574586623046051711912741030554231499342966522773062393583691811499253211784311035738868314214789944432324524062549559863169806367175208210413267010798939341269874164585924401045326136844982690953381286578559065661830274358412855753009184668747110858400640819423915695807592836269528176997366932058838651969244884765401947771040684569792269849004389625506650153813688860655583367398050772109747283495563101678206061244785616326863596078923648188953530956130537337598352683080130703451685361918880682951579241282761681533255927568410728786233124505844728811549567986909421095875759550286447371112704715442977674957628705703413119528387734985512716662843478675470027459631740108087909215064543137173293531831361948413215576096911880294327850208487721286991216015635716850976778231368959782749815463526863915621108683156282417562571504036182214874749962403762367504459749871194983544662270042324505293180718687072508640501991932671814516804029597775003778122013942883914606812959626473354716742769976472430853523641443178105597075918590555683162786344594335440901412142451253612767576163635808300784022124948250952729251419307060298733479022809661327615381831442181399661346244718312475182398479932693601638682978849388311936357406544760321511118649226144096805836601414990561967900038635598621007579017590131390484943879208819421910256795825416716224474606836874948348730755124148028963154656922869425120431822476211385751403302565782537690858373177740160932755559768011618169101741820854804091388687978965203631806120933193157815241797909551227623661762253113017603697850957888401650315586059431951747019712580410065424553025931920505985893943661392014450369249941790780940892576238271011621460532934528893924800229782338503656179660969229114409797720883409520526813148676608567896882779973147915074722208840685756878513524816049477020784790345809212999695571282843257759402902483462860984242013661775035087938192557685702266438405325045759188047595429598095137352606519480600399584452061559369672548851030863192507231228053967513298747834782584520880486701981393768235414934573898984984701832635797229636307759635672334148213109395963947526440479537399019695864162280457278703276198249872357441296412170976149425227575485691912517366964390845706493659051985493657177414062958809603172068540015446541824587505491468776203084178060328048680974755731131976316675404460488887785827129139324238539576127737313089930762772518546643399033226154368745949371432828164793618743969875223954227938129656193301657870589803731501119758416652980197862741077247295099544685646088018096267917606459262950227499290426435040323669010096209479821505198256667863228349299219223609487534728344110588279313163446740776888752880005546389516846394980234733638898025626773662890619698238839579753247886694999023272461646212086371596571203809787318550382279234642015603938813939792992676560363382486182354968152151795786267365750048556892358500148674378727571865857449499694399255770244127847428824887130720988499460470772473816208630631386587834911191413213537999163824550913476933863492649092320298898512249348234481217899150136322404362308658940116439748287411414494603637119209705589441885464251988266274053918684635931831301983090380539623825984586780110386872991559792893673097694092656323648097089233766110888451520734994395209972388173443944745420926742072423225586514559879139679630022104062408796308503698034970384156721779990387806443993983345473147809869577923658620609980584626666539166163798691701882685079613926089219560994631719416908925273711660181909900224966604470849021889296953500454120825650353839099589607068073988416396247407649769182925596045774332896752512407670787629679981990382200474930560154470033027492251579174367784796023382579463989815559433891540434887717385464286162707007415871236461645427324432153849289512859400223906621500110329161578863629956622545589668888855551105730893645892969176972528258209985456343712082047916541729528501832614326768180841478544309595484448138128926071239015535462930042031445269288989508291023664815541505857513016705844121973505806455132490402520204002242962043975060706052850625869266088397448418332036004005191061905105310874083854077056535747396345792406269366482818037406234941824457062368622006823535107533584212355650560649013648116218475699214781491851840442266786646604589862435929816882445666986847924381151567514801065375040851334684365588422971230149056098875928442084378894077879908106326625947876126637808117610587773955596652392704672724506831926158202689452541706325348866161082291120873967422197336753204593180488635793363201729947976132171095940440275086577948439127113892075465898207878042952403558312047377166106144636228820667852828159528435912780552779105479751632910912632479952011526070993879772143963322710746941376486245766801488715331154379488721718511109801510548589292986013620693001288451866657744330478163209430367467869065816985943703436023354939020381610196538357139362671418101679178761295353113384308349531941776812304386447869134787665385751743861007180726353821418862422531014916368535411998491864436514639878615103736199817482688524467830663218419861898572230636961266230229978258724567105445736690242906680638552518573556696707376434402803302656065638853611718258636453741850509336343700286443507448708723549611038759197258401008266131607600259647596497600173245820551070558506671315386465641870452460226809918401374317408841096733158376112090212753395155350787902730770209415064845736738394702726195497463311282899664286466027051912332340667024315030738731374807965320323566145175841901647523018649199257841318995666879573687841132641908876550390013337117166813257945028796204765099316638695256649445927132692041528316928913599400017070602790157167680061846067479058367062840522922881918075661779567213917925276698184120256922834730726753762401119058056902589524391150083949580126898903281656783956297799269074712434417023011807148879146414027533600377333325556284330923526093375412649189911385031847002247048332252644589196940837735598854151163326306587197885368459376679366761180332696426920932361454131606167852530329757181130923805772025402963183060681973870081868245243207900303971527621153120748560124807515588088260685317384012747249400454397293257108385948605722692160640310536934985957368703659995281137711674203732185950602915501593831202538879432599785305798673318528153035447133479283566102076229481800551378918360097362282252550461814160566627165609188915711631270190032099752998052190158765793949005236493374628547022301213846250148350129643522184717982693352759031144279157415550721532209574941059149258328385375211877899954339794646170100785619319992988971552063184354222329492574356896347478517014747698624276760751777350625813731734175696641020610215394067972089711889673430386970104511061971538076757301293507238149819198058421344751339527000541666673274051834322442421906162830219038084522186100642364406748452900104719815164654330732125321889121500998129888258199271347947691205821683657260270040018540720855597133196855821648396691009733969146215817399675798560721391225990635832976304879745039813152771518575393498524644761366707120013545236803826110338213773728767287954834668622114912031673768455502320144410008062602923564756260641577323906378700092582659466847727362034601631124490699294266932955949230309305570476242713853769401165272514421301743277346771658571608684040704796448485748016936485716632448113896311181943240683441743929641992629033758831517161921003623841274028034452061900785292622127355492108698236457505263234394656291168889200106395207312527828620158051968862838278106433767215340516981527133766826540330236425222337498807592969698584356297933653754502921576680400031890540178098076937840527316023930809336458636051371571788670835915487294064456828472371287109120262042449714459425814608590038243135102803174231976657503215377354458430211770873444404711355417923874788384783521604283404095055371974366435311417990950320522163677633127272725519181349247516267597415315987933977639713229900552525102053218131710876523934257268287251670492024425747458376327151169635701183219965566880571015044329646452935125454232757045902106104236042597821206682655113532992637583278597893370421158326893132988985698870713474717696550785093738034445215234375880429431175994953526819124691884145841424184157861100808409622978752232396668698483241189507315062913907418578632492100833117762537051933203339801409113461536532105146014427602121290192765728241606700174713621004722563038683416684003203170595165628174416606068290582336768859868710214330430752330370542072936298293986645270522362929524781496294220828604876792150438486086972309382200472489033767910370503947830481829633038698990969645472578817840794775851293796929021132492018660527317484447963776669336554789458782074513179652503338118222172917990033656594153589930354390688818198778551209709604568037789637600352909413848661419696981610358816233423838203519425664323678499931514819403138780187111655041097472478470743638762541847548902223849612565022377298094659013787511796321921985461943177263080390599187071994188794885241276326043195820158819782245195159880284254026357479792632263114430338173164540567519153508595665767275743928539302108052309961832409217173402533464033134233832774385563417831045018303616694355977528202189504314713536835786726173464253322002204302669159814164037489146895660682887012626796266883333146016100087037651192829999657070348355347050402689401149439579615031346462221433354201359918389854670300872023521721337695743792558269248778638759318286106683970452190083970073420643864042435452669967840408743822938172677035439848722329522072366315602299129570142139647687285169592186884318794752300950091297879610802560489002768874337729903438949689675918726456182721014962811907723827860037031930372953826277237564226564298675362801703329536297528699601085907389643703108432621217392765623361648800768118712763944354306116385764534416735424684828560548375840994511189974479846338754425025505515500925358050129970803763145700730391079233009499414827412100985084720458665453819446843354169716627838278089537473154427129713338334588684114449753540382798078721646734310045928690505099890965568928861129691160514843512859666069402864461934441630889857217760090156089857420354302593497929898844710787187407478642166148331342477747892578853643241626268736234398883058509333229177041266816255000961309367052108356006656469025354269280889500014997979712252608101572773017546759697434506094280341058473172570627738900572725860414814993915292967965215787034165614202279879573335693800411364473919990729488590220259293207429530351164353291192445083860123550288805813959743188593682167573514509854461741455874997114951917581088983280282243821168480665912179816673721092509826402774098284775236258726081921929533008726536682385807054756242164140284070044152832873250232739878342935099582807554298254046048211273806162924498040487286067038770148815018363704766280202344315550965508491400794630400501704098158717838754112055839355694381718178437462244266519430743872826008454942140907898979048695093476536397898383580426805448234693576354149247213833437513955218486192070925432256333664251131209912163913442763891013679151995828110979999088987575697516651673165681424926463021902025171314858425934372437272161229140989209200083058446818260209805361775882298306865726651018169797702400912484338553166524837138654970109257305071848062798579165222765979053039590080436759152789702811275022300671972437638264631887034204011319048778380083875783743604104442143999285800491547923473535198671126333833276538810174966629622090261219052781189134715690513728530043942451352882844348704123846674757847688275414688006522032364261762877609373846964423024688508032828655449368963389826159928984529143254208749347342468344737087967014862497627596627657161628802794543248221482764573805306183621941685313307685243450726445339378906392357219400601188848709518370439218594534446906574982765818350723963735033617192167733130578012599818840377126066880749203855391690843553118550981073502699119215546106525293229599597270812843715731882771521544091672841970107811300269393665172123054722424850237228251135139715574776293865338248875070794657133801546948707690331524426347583607694867752579619631525055747090701888102852953808878873044202602436752112705822844660062053380877441273001491948994504409485959579362922480695589184326643823928568742171205801709214769672730474940796871434977152504785655707701931216391489170626442129819974086226982675542960593013878059880125269585502300049522973452291261085458502942870570947380640957960914868813606527860635479071655063995587739733301345751734863472011533026197141042524235992740085739115213250848985871415074950016853508406262168662523480702469558859572303529623785767455700754242528892016383107222722644667460980680501311991601641346264693912440150507491661073833668048923817571089948755402842992171437153851025014042697802326941506478689305512762241305414961275690599053294602861114993731218997571305447788039681826614473308523566597986949216837649421056953793917332292413565004560111534323696779716721751983157788756910065067898102269107238994595641773258569360588952641185717790167866302154970978889450723589209466147083972302841773616201576339430006812310834762722170008727626870199748237087892446707949257186760574115121856442929850183582400986838251073689080631271683516300420964060148762182637724730343740706107428939534878426693995799834564462589028728492390505993202798385986422207089687281259796022798238496117258541512626135669481012515446218996935033948947683528798734908136854990325088555045644212226170881016663301786222380204459750303773887467399010448806600319181630798066497784738091878544320420902176766247024697738799935056134472286576254440673213309553977795942628692289229238533133897721985417573680094767463352788598821584732602679932557602712218102926184829623531605718819294091962571130589303527468751964133338691238387719319339023384066142667377780038127570428666656832808779562089447247322098451427400836139566498696930407433403373541998114075529726961305682754013364395057455635981037480876435134005469654019364275368144687669291889914608331366813952100211985922894783051690289325301526213591646247231223494198289091214109223388294924198338384768256046882843812551014106690360107285404355181537463865300287659084301721529786378886020466747563954467685766883580697673897062377558815630890760118481557869116096150435642132962438238219246493542526445954598496295379352661459013645520995257236257052135385367611736240771117373371165684875509515159669167958211135395285053120616312730162394747423669085998348215354088148891418458734871078525128179148830871471816164030001441922052574067340797122545586260421000878479852475077150914606962685686585806307784822416974051922439252632420990470552685690546013270298432867087939839682217586444732297361121671006545106778314194435913420891815848184450422717891479381408567816288613143426146862080872727800932732547714604897847957223434294638140207229897348546461250178369924279907474069855463268648124890594356262557210686271812848143435320745210303235656800618733346599591513939775050717492939727577602978228532149188368098414217317324323029700965711534662387683675410272718059404746175967526982864823249826593419145843332670175626634734094723682047921940164116460223306797942859502271018012508803304294659787620426873537536953364527584157326284881918474482291563053126467507215980517195139302128905902613086327808264352892487005799199026681583249044744393714097039802247429100644616641644320677661682476531817273666323154476799928661365781745674323692123803836348542840027964789122625626586042725598842626404166263317011726907776208890150668023776860254125496857170877176342685577770874570008598510207419147232692759289624843180906629117043751472209381126614980196505156333505982268437564915990968367387086877016155755570629476594731201915197468513943574202520627104050416156240009468472663322105516651804834233770546178309506751434641007867285712236151906452561331724742294359633683459445719206587950187909523277926373884128200947913033276257271334673781505061684653666100929459156481572973804114659201342543205206337677162096657111746372591570793867250259545288271904376850670742416524550130867214355346183439572094967602400683121847750428319172091528449083890295298159984045815843038561014340190161740224175068123081875573127101290894996857682541338187964507282179480981129886643235093431514611560400213903142423282422111725245244770635056880309161129522781425589830356143906330697976181506381059479247106955909988058676500233992533374518207488281905195746241337278656419617196978848754451475266607854832026982327564399929568810466711061321466029344652491250586899637594981647272818572638629835939455528567391667432045430761522461268534546520793646679496711403215675396880641235174279257937864200977325153023890109757125734050577651726953707051069116559034428888081580615282292475378793125050679324668057172316657350674637788201040730253401860799575879453801830551696174611248078512749366576370356522966712406782777801812309164584310905902549655267384573046754818708234847409094448495664144049507501009406043367788571349857591614186435487431926795258002456148745488365817833452913726227602538540387582078465213783640463076384931254307241532911567778385264244288591374492204661862406608884371239973445473853090726187115830234271811550714612331305717605287682834351318726279988990904629426517733474127235110156992313631612319667982294684019278244810967782177067265661216608376264301766365491689444270718566845602144161051504227281996631013566379568165274780814081280502824223848754020096209533785982047324034242729974948873809474901573111446107424113933485647267069096325940014480840366414789336984996864621139005960387453575739100006917678638034373378862090280306197228964185151236113643382186496300885262875584847004543734003456717686288473081378416639447047527600557090725911678094307541103112027173006225404820734965413401265348264188276971455285364712672686326800807823594358314189407497046146634605902211862694822720075218199061837127186464011906080548432464195251820683447860670841057426291896875642691358063167240137504079233528364239182697514416007550176664162128891796982207079101813648016129406530958730081586562990466072592933159801725093023671716208761446368408370811375718989254548536375491587396892835411610008714829022622131436055476684572952634368653477267880666137363288621189348217551062266313162286007909538135560804494295848313234211369764564733799320926468796075598593088584099664251089481537421307615912508238309266056083471892324844019990512521113387408052654522429803615377894010334467542288922120389134735288564767344974861038776615784048908552529644670825903998795958314948899077094177819995632104883192765916264823853404338378636338763081381977786466786569872365896706197909104560341826714504531883340952111290642732813711364060187580051263069478197060487296070052937603546290738819930257189988138566886542481777661211309842046852971216735436333091776996619046511750034646562218266513202795053323426373676896374938689177341772370953318447832954565289947060290635930684683058573835074364695988152631719950613274720188175628302224212807814588306146978902483337685631763181993468142497248086618266995847829226144812648917481810225268863957091504233101892734621000123383458274752913347525748792968244671150102271689914421401857434958572086016764027703533965746242742693749366960028182048947931057101482087797547931347619004552390065128270594136998514400465123057879081090589721261270992737057681146028206068185332014385015688084816407302197478049411357392739701190918050339599318320566611936294423378244306786985644338949502322490220627385737737182807153261912752715471211419579982888685842649148843428686958974719843029051647862172806547632620467570369820083483243486525754309444966326614681915806553652679100931413087277200299575263905978362851467716704161825030598327427094333034859046182444086046734869524421738707673787929339217205780204984224216166177498065579611996493949598898630224742668537750057906267664375601701230844118569248762007102101774521003624393315051345738954754852953704564304255964365010985913208172714889575784083378253376247958322814682193731655961204772956666450045622483446530059270296240520307069670815257550361800719391427519232083225512696787071563864055192029825627031014752898979113247410561945697335272247387765644718703264288926722150789971436304012566675378531840359656685266261052209182169027848742475362636667863945416267169134551925468702486795371958105412984707303930597589132869243572001537896738773747565645976973312447209953129211566867474803604601758782334735763732294747518137616246056085398897029275190481136086749746850002215035902392390412891051564050771571109138178713587772144985421404713898947383131718119595710808315971929254719783843076835706172711468001311812385881759087122043765472086949811501102601528889433316539784366550410788300363475838983350666814528924838346563836173330221703448478489404547524968676586633185087142903135792139309209311702157566183480233797648511028466762112107736482872274240296859760390885669526585883904692548811175311129860758849223687972032311607772942153292934454269016079490441237687097079014086655277823499324598584427105933157572114399798726449035133634227487953566631360179572143302794877295948680382569034294044866116164517098920784259257364030993343578717300646086201202653918384135059384895869486367623292233020335133392325018995364144035212334670850257856624787495064464448531440654002301457059462714170839427986865011447850428147091958637288084777596997288879098755678778546440453691643606501204370761254863981957768911133835206017284763150442817585085167114184493170516182085713754749899929937276129332136457513603762629503733792336039193262214755983350773365902427644908050516201049531405892134396720143739529838813315657218554724121900827583414349689237283469267223519797488528370533876556450987578421417161282313351302810567080763436915146348468052448624434311257767250463179892640517720551361132959608874130964715575067249977084195857671194321139139388922306415430452250735411810886073543064699704751392562306180763921936171865104419665293246885599399568042001051234055302159029643938082375840998436042194213551422628804832717149786654699051495323905471615892762771777155870389116104540333010756846725506717244954008658687901947897608229792917131889560668534360970830971746984559647022923855562809713580739980155235638735777986894553417079605831870145187621665316929944233495123991862035553930990112097419472219907342854599441910382452501610102645170399096044119937116097131078067791751611424080356139965393738637054743719539623842226502080299898496649791513907660519473288548967467136528940095089311217091604075786911031495493708430908552868026014304769674445188901084873724886476507211867302150463795065969350192425883832727153035197023345690936178051487693689654345283330949626534593772673429144101200154000518962400890125656637794284230193769184109810015644792645675072650273088899591544113705637241709396712671535365319750118269281658528111617487313131440111312468305449721854243158858888856201798887927850966936106401959979085805846855460241862336841695384959288395009582928262031851755872480035639721299418243485775651792693387698253116385149099209268360187544420791600693230411672744610520236853417220379419863094965463596146251265287255751088843455676721415925356058394696165223869442506194673726436932602391514172859433184832451056729020403238725009069628370026106482628768361639209871761662424562790280462869948179189511849713465139552647502450327316807018933249938740082584226690528121433779430966984171706908587258658129530127489311667340812564524850441735838809868271179866547608142156406736219873070303058626851644793623200169493855530194831018771630741870801308469956631406961856392728700645692556527393647711269135168505330715722811880424126616105023363470182054179939643767889238335829040017659274420078328465539413766770412515716928988553989184041843810719837166066058167035676872750325527229823374765253591110010096037598454651306054751321583368615589871247467826446870566509009938731194607148714505781047082224123663958977424677874900657992926241743472041417306540183188433339611524223206254911404396016418755144894592251319238645950294218425115749342717121172060367292558404509561378144730718838387094858596789099806462291518379237571277390061248152600055737386403295349592398920219681765485171106922569245103306324652415133895730093746661411144672529380276499153371741861552890762626332069321594740876336842782777944176069084051877169663286373130225707730606811725333260077091979385068802749978391368129758179181912729921942868957879760922589242421789271096481837586629861632030595310510721069702205888287249192543399733259514863665118380364092586572833029420410580606972529262751669203731283559122667492079840374043420567298943008548482412967477458185215693673782670419291604537846826878174161552628058424462713585769101886199001211777739837568485093193506040787789315681433246087170667274261894407408033905469249365788079546847121718263680660434340419781753702381409657799844599774519502673442095483289372355703329345641965166144368496690814956529680336071561824734912322051932982852914114391705696983884624179886273036761151449865231626177374171272206699873840998726444541240994544770545194495093390450070161512611596981613441983303766136130049104382833809799219527760467478445432741041318457836810205121304561237253204519851647221829304176014302077455919130068250589501729605560556494596029431397074999926206451704751622095975613756566784763961854376636668890743025659281614786480016565938360944835627074416655576500892281591378190592476877240827611127222436781703235698221317363500504320156439296552722949404712626207991568821928500217923300426622880009318196999103535395647696570533913859194403455497142144154265468446293284288505013459035055877198933449846208548165647343621859470649516912899268977441070894499804586415373821409274048940490720887599762341148599560839164117992624554897625101354998290919483235073034982602353492330959346070339026425994387056098557195755403319939256940727654309391678908445835576552019813517191487813301385317931891071802315208188779664413811842831981438437342221720187270020311962064941019562004227761651776776264583684036418796597357733882631461911009286896614182130822280668637485184851697604276737321816354907213682212669454184658208492848498072357358889385897006058477860792729140450814062911884354621127183101329401610277036682251960959238106577521135319164754496461679309173485382439243797237053276915382817991573693013091453066238703918329064593384796945262947899830895582679195410315666807074750105907640997153858244482765550934092163644810181781434545281560384076794483917954170823459450031408236551528590841738623292453575975232034965314245743222241142711146267128470810418715160702846259739363285210933522254869833526027713580382771047456682739817396120921740052941600066111523521474185782140466607848413363213780280032751796984021545707749013816418586195728381961797231191261132222101420892743975930501690073057089810301061275392657101140488012238689131460492640664195302553722902693078524647776276162600795383377753486407805793052637726062061927762005432907157306181473223344490393378671939349254079691895588807175434553050941136285181400200987433805173885744962323436245256692454546010193908403222906467237531043644936607916570392106389054418880673138782504542636498487848888157611378763732183644943887745330481174985887231761629323779693392981437960966481603672699449223850184528038687917404971480900169669787484081898750781047907729999601326406318750615986945312057441554583654817256048295895228134670275317796008713596442417392379894304136684656810204333155623120253465280542010900926026375931445684248883577752741772097659851092037000613055848062065057944430212259563562976798746673996947152958626738466642120835915152284292073965826197836647279218147394159739721761503718277306686713586505202869609995863320440264725687499683513171392453533334071065160950841229471068308411369085655538228153454478021958844226998857168066638864760183070132478411882442501501036907194798558903572904815921042959834458958067316396733041649955193633391829435726595690442827387688413837005129429383648407949258309726499891276691498299580790638320882353661028368307236036516642882006114640109875016899981248364649173839403057046295795524128769773976194055248982558551249941435675789624397050400449407804761248575831947620084996534740446907686968229702886720064573873564591818716274887040043999275897060485760239419231735615402369058607725233631125030034548681933282324775850698115846966287364637157195740532821564081662117406857651762316266741939297508093830534702883474845384814879742410606904629243742105320111630288842514762745078380240528756571798596678488016706029372083136472607205946731940972826445694389220991448056292899674353983400800017093438375002950056346462482228618855063489563288615265633724942284041679770003991243811090355832846759050533386204524956258280239840563093669704304488007176408928908560503886912057533265678256762638411749350909504923403720776665200073629068926718281930425139559819597607551498866966130809169172121960316804240443861781388221672474183283802345605325602100115844196088401389941838024203299081110883575871492839293931824151079340593258439851500847963567214127383216584634559161772718649824091524328827886035699010423682962951200021109081596710213015611212085790279689962821853693532010919308319580736132304826089362192251914650071438465417023765628438637113406697404143427925510876075604473233359360682355212043179295768341474951589932900021655678846414207357353033526164298421592513571465761619138948021949953705601344496670409420506755178564770860616074575194470236175619353985945413894953056057998051533224155321052462483166065147857935968001206619648928840126970290828598315753813203200168331379027487459845624717680848793899460235744325794602646642692735193856120889829862155521135993256774143506261195090194139941956278657602927158502610302843845136735876746221930713507432355349401128643994346744056077457622035286752654414534013697759480769998379910509867544472758905498292430707319891588959692038438909563312220769266737352033510482852771053893471266589483406256374122966420504752649816686119680768322816803801320432886678817863681564431378580953141835301952718490797881077854577303551816203267373750839845925077307230964444701752341240552967371544320499089242922549208040497605319903146604333350626010096165874504919155443389254122734114984102356192945603658297756144387911678648807709801865113805855575820860654337885008688100777537033705521144430452985889452189977944506066678484672643135925696863677404226614972112681115714767666814603532034145128275674445379174915290028314138704718888508829950006626569115894167961920341395110131701237774243481522306289608181651749356222687825540358781094790445312418579294300836935154724328881229991228486098332363375111597520805052860348736941157989660812890006657095569515565586484460203537134424882730434520040769003399409466325358897213685782280956917433552123091754929504057543141269110841269651554491477295391658447549756512449503492334614596107757670748720395834282605713717801889350823704446088787921862249751101214897182442230639939627227661725436208563989405777783475020973999803574208362356064540785336500947890128845408585882223990364544519404748982181729617065917898643947698960135683701439314316627001788161047329396588995647273271573089341138109077283168551560091111619609843214659651426657707091369157920961933735109691935329798451728821097591655431823017326237606632672289241169287087567088791349984738042589664327098640112055035207848343326288386761882848094279962208243650988899187127259712187545888692790346906708352547722721861834450836013051497267517756548421787987775364710092778132876119472386761562434755662840939116195608774205558848908118993415210235770054271054279030858265242807277524632095866882512717810150502189569099701293918275888991826251979733568950778850231423260079947265140268421325577044332186229183518829007003439974420703873067088231374150014628705030134611100023504998585223773322170381084141783487105712632325129379724192701530299674746657059830481677169026182539307504071747661951374217746642108312962951936422968802401806422752200475035108051592160553569666016056654295987837570837108778600522371545146791376702842941264497464244229070788796315732655075645789902922703671240573144286210567171057943921534027799963147310380945121765361783145010953614737905968689492395178419205319692541683072158276243945695885383109427747806329045195779654977380548679835164890865235410696238180918849626655451978748262713915203833763246421548820814767712870089985144125510694485730885300476171078894414547425985424566544507398559200238952736326739628028809920991808693657346185995573943712899184616219762190435822081862007907040742613362172687229190225137702286877921268392406027578493382002525752239544348883259301662211364858327407702554172787202462169011559681485597757572395704637913346723707068212064252478011706009467587728308021929526126772960363711683148987441874865624011201536610243538204848419601554432105139488416764011255781624995989009298064423785176130435231852418415206687672218819615405651281085932357454513022392854014490156622839179202370148964159007271129055731498729355800915575923504101715367477294511341329347854740425104339286825412655711638535669649444338987147659690755318166554046361082320052270909433456836330865028281717325791333370858777732455129957810935721774248759590929846716541718497348878422026027995254906527731039984888560418897605003643759312165519659659416258462318707987713297690286793629192914969837894521024055268804937025345494331620471477227225987918502342779132372803933641368222644303700482745144989672723492904399898963137864609682446453890588254103607794187562114927033083925542608943159891955221245594517727734528722916204079545816856543388516373225677378628890679847325316069108028097196899787206640787383960675534315323847092976922487666635406213356800276053500161490267971673635917273322163398689717446852610315661448965147558355889016912040534238534499861991031292067423730856130305940811226194418937849185914178586355734008141171572999160022617720653530685574973210702256512671500015781441114827923172710771384390749027496888323575643613663539068448841597196854568878161051393970128811976335889576449632491948282120370986687541535602458235307182590213043239160687073874088522238889206175588117720792158967735783312927925716085333637907198655040117258328546600285955442952647788338719713842300951440452876371044456950302674675920543571107673626811595466224412303318401356171778225403857889024364346641525675152395585963711277323928366216060321205689641926884978773422398679088476911796594462936859178883131307948442824514695178506370209153023979623340169842152039722576765997300427915704087415168848168235060452393182617357814690652330178189417573604069810782209100120713555713620906700778720110402588193830233814229626011940661119467130256281003822088719377721335760646793955482914252919503734081651382058620350260347898988682555918097103453692933319885040873633374161686900751653023432102224610347806806035906043643145818124126519586838723920581942690390371119177079917576095731704827379707077191158858619613877572404672483945279789777019225301344615528552335332887915614838947967046785692352991273869007437030555833776711555318938590557241866235188059113056816957649812848248242903598205620206969796787485770200889131457460945996481124297625183167916893446104930419045032233267358690392695591962848280198513237372502627842736281806171816621816885187594008823678260178727352168613410234161403786763674546578970305837116099347311878248828773070981271196318929618197919425064108625852455579979646532960320056355128236028137748503616164016274628054932471262049088688191243191882617009969621995606233220102285560764719944343535503523892749171073606655862072489997458586113760962493264431916452512482217538135792393920446681438882072924134887696384956273559898800580886480228901676703662055470648813366661066698297591614928404623753346999794679424994646014374168982132298635005623334032305125093152856133664031785154227193655029520647953264003588995560619470768862040255742924581052103779791598983195429671603662339408127999107579875994210632619294231581867690649227586164779228905221060427217156182969549595513268103908658373657954976192570752989537492021117288367988132426966372667239149289820587128403825244111621483750927289243804740908541110238389576318476663930839132878748365208835777536369275963605273532949484836773987467714453896276230538514985387046310116517440913850168439319090627612198115817393134124044514518237552596826821020458174874044851248057267094536626348459267514072166752584475863824646529109134331429980268634181853242594513539764020211566896958260929914369096564861673756689394254759421970059674510531380068332213491812833190904125446295365930515215590140725999074071376732280307347867176731522941281571912404768204637719354445415580422667899833850528708529782633487278537249568033974870089010665561057270835285258757980680151405813746451008865846952076985268467036644785287133385852364486059634183820506964464290134103103946714376678370801814562372271887785099509877199125479138503909408953639820228526151697427092508423228060362059382394232906346450258686702999913037454895056114659451060320595296177337645968491870509524454233562749470465539197766268193989949771797821425122662107263179765246300063648077634627265152506624842065864696470521443814403718895754570753858158591972164708857709531715952100609304836040066457955013702542921622714553845880763755870343342942664307771984218294894478659065272745479400097691028466537933916306615545961810177452055627234301049382613343629110936974408208824524838687375664602352161975160894048401131803625372883448750652268555647406777889428723591043138129918319522952230950175536047458995359914324278029419135449226716383555363708574292953010005875689432844092032338959311768134068704633684483834445820466316432733565087296311875988578990996301556190469407555030834619804381226653726067070307013805864445831274223861048880554959990224593887105314321392602569197708543583820663633823925125852685682100682105818398268150514621819679021406583061870063611931365896441095454948355967471934156395320399553256085349961648172145081626750497371165275457440039385991857635044284389339944061622227004749405401857418283950254448186397991615434216503814721922478847133072024660716093084760251596666937738956268399247727355566344319947008544205058757164058213411541923906599761381953853324852780358238634350492563219737798880472561836259131105331300007969552427384670791761053063519268684108884775507044345763244136591153114371339698483869202745486132802176010228833039876922929685846059042157593333547702483298152995507587218412379038300080269862530438473539759733475268287507364325860831646573830145594395202994124321290763372414688518224387079993674974568077085730978306997328567003883589694509006776524848216320140184553108711799128782373973410529260242069504861299517071903792994917113725148589926438015227906322202577232702139802311146606528930534210914997346997974595251520714440418103669329041663844660068379671018419971458864747448570981046705817205993621026443207193233012788699269998220521547271907704063061128578260769181110902866501431820530946361764828659329984686536618547999347171142634851518865344354549760666973611170809852738223360735957377673855967592943396826263037233243597963761813050770611574241909031793526475982055477670417968921419034305880172790895740157124497832318807903683228098749419694379391937600392666338651236995025152081818168390772553280826576499239021526515672828793860527249903431249154318908122559883547947281902546987849032194798611255993443013288561874576126550778971109089258118508260639641557442269529568854337734995555450495272787720566051070825814055953684913859748726788062178511892166118449662779425547897466521360602410531661093955464717381485392277661903804356403168029179403629856925601197930155086001397930032589873197533979339789299515520107462720013575981255699067438097224963482388310294239385272756199766459385173369453530909375742100250206590924340921588174990620232823324470159300374234070171976617502487049028541177113208616076369213330033725011570516510520225613241301110708861020185422169641295607614949613801442248173122066364531198714901240359579996417380277945575683479438322132703527550681663755587950256514886986636215616902986912062946800259366105597265487628651735380123939184299082842233110878860540027291155974158972954902379682072165528104982780418170701537319575299850030297971628289411220301076915885800489973624339949781607717584019741300941114533324593208920100272945606018538509166792465139090067491459333984037237933898722056559206970310632191408905580586822363943663410064866135233433378343758684715693736890562747340621004499411030726753601407310845329977265653175788956801566611584175343093877933296836862540127231402501000091858034207132234129005814284100161881038787769841772433200956832233249139088082898992625192506402624991848054676542295760977906994562186617288536465033255492372522290877308139168493851666306021814904957762763168378795800663669172092568208908520073510571694145596251628509641569638430929499773719154686924881234890384408074528488348966646234721463959978759959824213097347752341231192417138320641996073247033807648080594613878285283360552028879236871055268777904232871523283332630149427977466471506571647593870357345018471263748545906583707466360531838349617478216529603046760390956128701962615760023554424088609892317356429204336963830255995095982943186238235016505047120160096053935294588304139319442314966611296311845247197401571630660671943272218250122193121596744264852841435796587903285109462567417130703515292406991552480633405206246540823292779684972257085257277953182131341359723177505565260779474488749620864626978097785507776605095963176623300463797484352908348038972713502772940780636049603639728047086554143314662609072384521766708787582083751574042638357154377749509371853342545568600746435159341993272386446768097578819588303639049979828825877541354587152524505016467598089222968508308055159553803713170749393768708295829523298910792407471971841855786637606865289090859576472615421450122813798335962261088968258170380753005670538510778944323992196492722046903631096879814225691048278820046606525205512604363889964181483972521900125123250553145991611314756994572284044670668099243394018633186968307879802229823847069214336048824697066030466551556639488094034053569554548519697904363607570196457780294408835231861679227827826467804543311480266260362162748034713570529789648147081337575097624397357487529025103626137834234909947353679956240143996728494451988654589701337460282990561397843292353743323610545085161166526622881140340656055131910885777043153849668785196715464219009637572978167409827918916730028966096535443996206650930223444763026458363569788088900292368525973402750703341753275070088570804517817515693603048162524448653036150007755366584921367627217606947278872790755865193384706994832249945974893406303330081008810669541425656253278766335852498539376005385009346039599596141532363925414987628639331912035327499074281553366588069207657457403978796827074689229999975899025955412870304405728013659378799619473394030169122286250175928679748710516258644429055633484947812380866843920147790538996458551266588892775082711238964500473789780208610907412652142003807531673212518823461977922493288228366509971611600645472602260080575195666287865150945051140931184864042658901670355016668743621861789464253186992561348981302689528283971923326062346896603599093556101251887382474177862366939190635724765417114933504750779382073140771585427726709788120605391213714943011632209866603667713203813211417080525040982149418970820851625820954599007397278045109612311334839722942001637832959239082086383167663512673167221304811806135024134720052840029268325989614875775204598698244163257081336019109031132346777602689871272346538182010784509011093916972147739957361326282584552724174333658922748955359904236768271439848265343075580766755183100037395597482905384811043802438270058445808281604939682235420946375483170798287106259881336592426709956244523517391610371705592484375041913686410533809644974685471401752516421283557566302412291273158319102483218753995860958241000718715335921298327730863760429662581671679180605207404259587243449336521274649537605513314928908224451146171830938056331305165420302890524876370082746325417769680922187590202421388923095129476048054063381042055845313173060841380755041817656495941365547817798113769774601772679806382703034355063590981959024827708869539659124803658033490286053202409864334386444026849788568374692553766342042860614649032108172452124744556048493679805302807874128153317043716394613526675207473519733261756033707140573041088984253220233637045770401987310620805530998208176162610161343383671480957929500396706977107628213609121022904851681305283333123683202457877008496177972427287370112167194528861918215637707687498168876562113632952745273129392990399081450995799153632508100939906509474783900362468608813406627872404909520876960707341832840498170982483229783643327232336418414725507463583198043908680936451436521889719293481861786277414633647357136155487758367992442021944585862829258074432601735853779044005525792137359923536585148253581764295783426327903378447706068734184525706378542646058895504331394027313359335693002930175747265785760353862506892532000406234951837270805213002655978773226335050600594601500656687430084060581221214888945893002546983647432038864760486206959106626626487220359636584473344161973189762462852459441028605866002218601151042494529986752775315046753309051283531216109369417810563519335223363541378916983500970885037414688629194542843460909977880558686930880913890043941209740268299180323165659846519818634331737860832271503557005310773867565152520868420967680009962818372280197441133382656186689778329533709720177076433348281292397880581067862541841993294197656816779567147300055240710414949994024887975537044804146690686634687237775852820727317777707811565965515666984494187869581209495437779434813629878626547848276179503187458587912226192017696823227853825519043098442612318151685864128102478955570501752548710433714229365704129827455345844796946147501719182029113274174974544267025628974208383901779660553416681686524523341187868935783190094620322482121695349824870257633072565969012584086204751277016550594350676515316869795062052319859150681062898122123904756872219669637166366081826880538212416724231105309008691032922483137785594607477080826289827035161016659498407721801987087763559536066359266784930348688516199203240294518393536803655317261816988534167498907926497792920990592096395908172160281513137364961763332797967997541067360337530981663931163650114038578801349677885223349843607502675266721833454344699396498414862952729593486180596253276663626381369298193166369508761318178125555423162683229925980868527313179592393745491236873110249948113383797479349046333323502935931599923608280872608897988171623951524377581174039502121234603171104898993828839551439198752226147397931411576614446825265910039812425160565198250067486657495975603000521426523656292483664512190492003674152957311971519640284461980116106910895768546148617698131080519941874884836349808201268014133878020724266969092567203003249277289148644953717998883572326690263458051255262582171204852076899376034163707740568415889319678804189549964572928803651307077003947591298430100621462448100325906786189486212387219938477951619697857223673610586815383332275888034715460227380965311892750888714281182851533882181750767620647772794831148655356086514424702489743741398482207330798137230060971818798613846671871289271988862191283567913774650192741212587814657901539259198595727641679250736454537776658426126074571314405356950220200210409222195552966438255651850928957479784361973262410948737800968643640450122086803499997556725419340417139972590461036118187014298781010243074760231174589491130611016680791242353261236907060738589019954380852416417243181146113042194836660868234519324273642261569358909686414552294723946100604532675894121577039759079563574612717887213589521590929419833137871936475916963622925460312817445545738988435021464700509550986601282333184520710760881560859435666552176801919565233029710777335983430040413625142126369678130650368620641884489758251265649272054084449760889062423798783294144198594152477720734224514874480678314630616424636042204458351345229103478406019044998958111358192293694620144399858408338718764083728775966049276844812152806981340159751298618767261748584239057018136145830517441871603858114494090683966840119489984342446572592677859574827919855362789559022359743360999183581836764561455648339845017213131357154877438495157429722327538571597115473132170901789597921458279322812435055079907518156362252441094133595942615000549261708970611982810379607540809395590882090934689869411810660752838487341653558312993706743961353358922303313935212875048642409107036847572042299618489108498277503856560447782499711348733283621912648592046896891875304070151194879662104830235750207353936654524632424052593502652392710460366737575576895347802390385587797502266719833403868624948779443319029793784705928914646026879796344342243462052657541777191817111182214553717759651196765661891136301957457133753792975084437707630562322409580548179941425426012615979029687148868638999172426951331688602319478262685888605303071569449644447121522882785713687442183387421083979863673334403419401986420411187206064170009594127839384960493762534614838936411968509793359593967095797045313464507227993304442071987734047501550239340620184267426498392613287712814789034297994980728694074342332149054659168340824023236573532195059408362767888025022063189323047308416251915356480917176082200904650527889779527676209253841811839386334695663866874442388965373425178843261587365137848273708481373188239196495617177730705516981658958298101775122071149448892558362731399453715994526342488883818726918818702769886875077476044772258637146453672845431288455061946837135357103911332771577261303385545546604096856011037700189412565046907390601108266686580598834114343893967345993934180924281859317358971322212092545444518919747620424082671833967573583612959286937982974453949185557968067360770887437408151794989489635398671329678438106110582773830539628377846945445976376354674280668979882419451444719273678384701096762766019697836450072741889337839408529430313278459818961145350590609839974999865420247407187425172485403269668095669386538776717937423465643050064145007597809064713293347842572923468048454386524399096077626798343652649872128278043168846567714171387413844530829430968114440649302992138621994792190741936302755086509667043280849527794133289846657064161953582402843823034462900447455818844470440268891890370545473804423926740296753359380931652170755093701589487722778277264638389549503328934822801742041284639595853628769302799367096983051117104086140264160344236762960448339946617017452215423475683639032689934948847674719854179235690947895442794887880362545925406963661641511420320451272259188640973501996714301706182792778955803326947883228845148438507675197682998075471028964022377417339744781883281347139316801344231665654686560829652287216303984590712035945514096218709703077360848293637529179269303731436425892472034798210811460995306784014954936332776113952209222087480807953627662842088136633123005724077511008280911064478921800544613431923660024450544973653572561741047823116323682792360557246424402663136729753241647386474850377806468126798650289071241457530924652717311599697258142083938988190213184301651031279349276849943366767186083671576380171907912905077174644883798970215770412773586713631863910197382644941704959534301918788997464912359871499672861517829282813005850130199686582822186311489829866036263545655480643396735721466983044545954315939049050314029840087793511178307825219860843658951253378109139491554865359235473705034119378865578753809390360848591360735704867339450871421945046231127757417417826460287751396613325541826427403597823916111172848806050920803283227286518646103144244265088070487928933348684395300053937076438825468653451395907922374209306503242506843314264613143461429456099033637815188509765020829076408714857922222568824093098542066022420041950062748814836404539035385906088265279331877318956714444036040532616287780306423697971762462998719127998755568165394484327786465473120954363607729406284909075594621075453983931960351966171020106817845653205562549842944205039567036446230966849759493206835120846014448481146677069499927197266946836306078222745126563619613834870960349142821437950997648719473566174006358352590710543836938368569566831925214566472391129234534538139483034922078452743129808977146700412463872728012665880313617665947732789602431702755581105714154928634291542711868233692217519903786575472869304974866406302531365560877463146697030057303402990968621392753507748193867591188431662289446717156582297280654212246918499209132896685963020869960886420810115684782812402014327025900877297236309411512767837710970123924252208455454250924880293192941100922340065584494138265111802797095622673907988029055174531584853057563477164723302114376728977680360982664235308072586355631769130644393874095901030942345112535011031932585752231313101261110078769957661730359527311444877229390462293899799196468064765637944656262349918464134270828943778602773863537393043536026012194579096733052557616341086431203941993217630427077989377657559447196764449328501310310165821600292871017313978066585402147262524546170653741844274680547712856689376163897091240173779202459665266544501302027859048937280420746315121824258374436356755733502705255366554055959936137649794272305280199784373917260524043337802443567460584987916249685840234339203875827034737599192865440294367516630430423830668827421717096596764041654271330216027650395530570129806441543203543774808134555288310786635524072191913269523896177302615805129830781593005937487109195770591799698112168123389087415688688611998583612732054452291245811734028343706219614395661517640757740667771978389158360060328232945270867300894605874897178254553173377561198681679654645960239096213164195192198112895762432505286996851713358321438860151564336872919548447330239961415107948988227634479748007590024912138308659572158387053551080951799441582429902196517204428021216813155842661688379054354091695322225754870104327625144805585697872808721159710962525649630744966807750797842622734080996618950933961489206581291492577174959202254324044385936048824452231823627447022579431802587965191237906598682661654774618520085259838249598489083281373240663822790358176424088525165084345609286412957389316368232373212511696749562592050753890472411000396190327618307119381568847134021175852324042766932367990394360108480213383628793180738333428768040407666040288015661583081253046588408166149171721436342490960475665079153913861948618190126887545437259821232488992784963246983474291066113184245901810257694993177327245864999136256907586271613435052358277078415324117483776219897976595866563010448491453211410821912393470163119510581506810225702844238890511200521397703368278820022562309075437185329253119346394672082014840129611199248084618799988792878061535166273498240601076028594182036963170555780726429935108465455713914629229040192691214265972140471848787041278097677505160371318874211605316099863881048991658153908080845337717190677807959001410389718359420367410535523841004030709441190979419237082670642212970064579584143437457064560022390419861375730251654792114548155303870868809796201362872934246679964625141724980531184757121879125133519776500897892295486549149208492039650373139477020326492267544733031411617383101965996750082326156817246002777051438409101962570219928839735735290265131430467436538416710414576461252332080500564821256411421326488367188610577710657183378722658343623873268078175367921931757508811040830514979007243224987051256929743757533910263573809921769762288112836697577261607958604883024626116139056763163444518379570131806284083589506812405532717792776599358457541773365680413658214923448845168906126604938462282797927172801656088670317127147626534705643867010790338489992060199249003409443547977071865942717202991127132305498886654156816141798070708802484667490713658356161712596552939385816191379876268876191631828492416066667207963219516018572720388090317313691336286613103995716927574543594240229074300839105341854987191423035972787874193303235504733708588491144609149927851974472107212398143063887196222807739627392625651600330267859612524470125142955477560977498462319811217632301999552823797597095395312664227877340455564738700834742720784763153261624785149858196260997012450990403938668825092728892742740169551678937000434940207361190091425487314362780281443170855752972092127404415193266548128452153337759740833427866463764037385127025518644404140867672076838255613629227212922346323661551618057989897255966044053868040612283499618215991005300072870108476268547722450251580235629517570581213519971870878468227202232192048842984168190078956263217035787255362761009235535148376841391600123572430728960319269650606771675491302965074279480934723285097094151078488093495762920056309374884523663531534845186910750751740158576030649802534754009650179851290033885354778119563512579967642528505451573174298968515849671362540960217166604376682603546831844411673589183355823194761947796985882405354374440107577544206909479763676421426719437347980171161873665955419409011108482494992275965915645528757295183893950634706537823075264318074398786305411712968700914827132058249324982993080179283764957299135673369204713747282026883370122554228114579192597564904494309759642268055196671727868562041679574130898294129497828170737325125313122683864537813828941106907277830842885057052601775650742159254077060597736074365028884427042738102173416313849026750825356026505045466788375782450632576863877968797570319530373415491980715026244821764382474283250695009846555687520006872148056562179744618317576908861718663467190362794607851970077800687109543839272983539626704277352839217967047374906819465797321983239698819328134362698285917318902179777639884673662504026730140412352890507346257545902127321116451058024872345830749863356182290835536464282810348916139336943356991244078875980908223338316302321560912455199657305960102883624663023397821044393307200354321715418113658781351952424521677500649812558194293467942255904087794877018183040512859030379461238481305902187601706749946568659524583007765279961144891393763596055213490620793965964378204000454017111926484441230551441762027105281268780297794194172549093408153404781774477942994269760884163013293213519514886005193406795914348393656535640676648992168149362864660022321469835837909140049840506729049784645954125739238825268598735790087497522705781654815699812088950372812656838862925501874468186854826911590065877043147400949663305353199482916188493641574577248857652719106337557584461062053349634335330321749193078341503082497109524400807082697115311989659704408367959279533231040144273320206020851064028724051675204931018801953482602570162017356509306940047063875806942065524968595483361595936270764197066651068492830011370014826149708176210332300674648355660607561877262267999635746882458049491300419161538831616543994306993341248928910907175555456667590401821264222360900369223340492603976814764162152665997102135710975838895708571680532727398829441092606514308687653523230444297963642383659228638111992334821664523529925108376440607490245740240508406513811544069184621611427017204672420605624256872418693168113737417101863929193908847700385322494097712026126583891439850896873668436829446008481815307520695328796040569864801452695612846450162033636835062477959329345867457152926626677878604856150204245360394365467337317145330672148405033252764498630517478060407252789239209018072993430202520353651525380234568732457450135608900154258440424212226052190327302733696817652383653417169590457510826937873880186921840749287781485060688845471626400816319405694028211783028121501337745934104172637905627772909834029876809285142210393094455435791616406539338895820979540128805346799156173399129110746507258122889922878643912311855105862592405876233919657761638870526294505530638648716807959276006245295008750519930344437731117371045329159339898704974507199537290359344945739233113801041019421099623957816164597233479532444038653805712627220964758951926747437126212105923170265160930068750524914965429335051069615305204485323752282604669931454353334547403355473205487180549805914040280686357542487708107391455277850071818177085421685312888901737083868042142787333239008287709484614655693825115397677562202791100233495608680696074379276255318690073495989539368149982263322797869275051318130792528792064860217507091356847847334344491500269166187414502198808787266649918958315779578938097409883642356498704531968852023924876625911562122559921664725841796584639197471207414191585163921560053807916254813573015294445771192710324889401720104209467422430694016519437521777079921587432904284530292562721660090759742314493559326777797301715816038015355183406113812228278703114346220001595920823756268349235005406881386248596602006502257238345756707192290198384814511701269294023009806645276521514269716611312219902559715665256256403008046692461404860299735504608232773302434073692052980323056011734106373704341071839490583185594848154886063887716356436512553007231380733222514564904787514716662881667792159113525476794978518700971125579559351303378326826328830762295616519187046194977299617119664552124309672621846475997404839575955050102818645448783923263622408139543126972984163256568692199880974702227830258279347778124280465521865591396674925453876885129933642268651125249563349992771617742763766463264639163234654274673384460184038084137897690367767041287419349481812735692751224962530450936286109491593133184862671579709239556010396691793928981982280302435241994705616349864651165377980558134247951867698512891644574351196176705479733316284281214002558578985068006434663168688517166504514707527330559773988836296872203696437031160279962711104800903170722628203248726213360351861904509308403022086229129898410754503779824427452517927192485347418658193041971362473412468239384435962698239412708556028001018284121803443142647514790872746139340968031133143165165715511319135588345012017538297658350805701259046305945399225122779683002139837487128696647329000482942914641617259055895160481083027011541289068645769502398959535096223183646141407448884833791739703208641185044564683272338837964171540045900862198776468480578156649499617953340250589724459859309195913698702475348120045385320595862651901630853086029178408696446403188659503989645375612156984400633014647993434368989763985070806116801932393564122654063638846087797748277716194765484149201093590197734587291507749350897955431066671325862425156248985612128520679829152292813170892217035107351474768617687474193337020403786479693033336578656460117081037447394176957480450374349813580022251533987915495730455193246975880741746692926081675390917284097491671390840718248587399889133245264230020644498835062500419756754235937248245505934572828833725969855967340030215768721077802958364467006247190513075259388637385429467545805162016233381789465536249796321264164458419780005724887105291371884338841138037623577767125264574923397684034799637832618434604025101443234826403361713601870519270564336369369436009031997023887867980933992941219263676641930296007107630981394860159904222449545140540008958991385191294471301010997564385543320263260329794319548113141740491334009225035780943358660579952417469896158946782513853353862686976310231160892321754043714342824279328441988190441807959337535620058716183145321109750381523996644615647205010627869793353776793306908266859036933400872222126263163624163691605616646244679878169816895405056717605181618040615804639431495103804266652095027619543056430939836428523669194223167363722589090178875665760780500767887909054402852716185076696166850433647058734970639714925915381963154948856721821822125958892258978801489169441111108519196532966579028664512897788171726209262180596166718812442445016238900832219624325699095429980748626099472079255674404803092202209089682697212935928771126852113151534907979787166163491475956915595612869252071679732081457841371614217381524795281966493153533300862721557313377568858861758290420542079473703590447119745997255827066381938299731692700102281715549140812357030032447561787233803515607958613087740469195928069755888094280560753335666627133601048096745219099966638297863565493976824589163196446829671906817800475558146236293624180493769771173225327135354061352996566623796753432669564754905354504298630981360752306381148419146325416183249960355735920387130532660718367605515505295264702606419206073960203787141567474680855361442155242831711165146055610439382911414713656142308507014591087721330441096115411477293442729795248163801547778133674636905668434669621179410085838594029984912905246168023119234659280155607459673841685527921135760622114220164172177862280036006094664838555094132619047116614528706182153142782434291592727044565551481030312598879788258026043053856435938520262659908670887653411470922889080292699375501416545346936697226281678555561472767810445878485321107805456257104361705631101201333347081371640381038130802466174037387799963148883217784850870015564936757115248874949270755771511429172791450670329157806252871785609123006971495916317122018531063864988233758252027064800243698397869343806199505864817342334695196675469014421410216052131471707463953206031029904615533013579740324516732592036398206902242439641095613208151119890410378581743943359217066708637888260072305186913588597325306350439239676615767969831412518420886543258391829627581766997240011801838524224480783988827607897143269287583953987348592973061053569479187409699534103790740821313473774527100269271866076965759683246204869197490503566303421612166298093961767908584350496259548860182893728276279875193250090675060716814254376279385057556481868496836986865685733627857624552511312619956352334895675280598956578561937484314721038366822410312917980710489517476363602444530254472916487189378828777756730100474934926313748609070948619870449277869703874810383748458218620679712631057155532036979887033015027595117424639302173700764261785780021558250768496360204566437737799202312036957471598536544548054392970792094965597521888795348175570112781456612148204085552726051888056221240211260656513907488597424351074191004697861776791486784667557646676744382824592365008357584591013967505519289426975955997936904575339507423214525428750881145698016363909802673564729772204907274087149718206838455700757609695975245060148780621379074082851418708333450737642899626538210797248459582194682106207620628785791540287690128741642212268499993160123842844708256375251106097364206068606299493794703223050449576456607882249550947940410443008473593355134531184165741436570196299631981482264861040183618230274798127463135417390817880418692900902381926951463038664038695637659059528019299120171361462770757764849386652809119074870131518164458770802470931202735418428305936174339511488193843848238143294669275137790612482978846984302802988062487105722456016019960362443228549323146205425884363596388114542853310782397883321053771329087882876321891194222375154924352706472931681504165777819665717484827605330893263193029266742593737489397617689869857800116287018385948823231458725869257547468039970278189995786100935228996980631404265341811546899400115841902054026018176728396963211224560460118477028638272278910261603981566723657763762183245021313071083515541481235563247321970802502095909861416714027177209324907556528462347392169054538581841897854095406391973723445271732677782654958693180009211533354089100661530162263357923405168423666891365339400846784590739634107057057458870552064461004494298744736470356756016922617002399627772466335013697672814432820797625108260078783524044337505496880465256472024285493096868468434950071637840743153159191075165534152304472945494830584089058997567150426180124925187730239715939354379779572616803660766785651982950716936729204670115566054263228609303477846283862985376230218971971223213406640401389639672016989315541835296062412575138996570167935247616759450319645141938527963911614714873882785111410455427152989252130570238122906768261962898509093092755359475955360728195416126088477701375243160249205270614594639622661183345045818872212498339821457160694503148564747627056198735220006155973575163986367820832763602949548259763949641585348832707767259222684840544023219671881796701609938234546871673595880208612179499298991752943686744038275546953911876503383140625951523795993986387742977462931750569657685483114166205365486388627768945833974593650017828001878039254491434124263670052438681478440593766261977087512192116389148592012308598997548347957844536340692726881037746287513106951451343043108915976213817500905331631552425155738478561653936522747392199687941455610828996031929422876355374326115841672986695007536810706312630187532261989077937472010685938032739810494900256216706597418282414451235784402545749545759070034228176532156172975148590980598265613745775395701915474358537879296989976876562465528344569165394555069222378648126441344182224531513833190885729251892209917891062599675763830697827525716406576875220301881444065536669448521457207980498493746070492264266788374665325920952073301191976217843185985870320023998666139853008137545057562022941644347404728369389330831271819327849076013266067761680191681856441372808077139947601727428211194060498043592843244164335779930195198987874550879193869194694196387204801718672238415848666930585655997289469739858972815948818379679991337886818792109462451655280864774119159033053354381076753824179489799177539490796338471801872098554188597773019216202349449813201734222002341687561009490632252384394671654295986591967274450013344412430616813393400516327478706840450470701571620435397834757636606447556050908524103795774776105257982389442504231971781246930389385966828028865994538842026615668429124417159712750386253458155673148327687723002864887610525064969166600169296079320854908851603877906730065961140224843215348079860567129410635271350634640989848826087018655092121070598671857653909102038039090809324274172973328161610648476009776758833634805779291448392634967972254305560089464929537804270666631557464554724939452872353634452124635756596584335586768529934911673437629175530465587808923791262252210445584847903657656327957376124343600772855449677418098998689218644526197968050007069581228391775606524718206097813048191858182836272857378744979774911119917348375392413710875014539232620422913182017854911252437648274870986071306089646862738461435893587016951174672171637460164559211512297970935541861684260006260275703466472538821168029161091461689863106153247402366353762926485054811738910133718102274526202818315475972911076078661845321801488312490933771444374822632560946809694586443481861358174508975395602703125357227820822169281330093547215913148717706343357585377002608959948274001069214436971371139695293479913328799111123049116532966556407781998469410624854122878807408759236226732905115746765090156623001995597160306622979436955313129654462373216492894742324080535060400117931080890901311011577266196596598225514981016756155797257084003827977800090056216597489018908825101502125464581682848386388797420197081510128269263335676450802592533521268762966136506594581565327585868946718469597001808095656235815671004663053212307503556341720790457778707871862986942857494538252872713753520814228221136006319903634565567653493776419872258183908710533087010109788638347161425544956087448737504043585477322869796047693264420122916514988765272454624510940260028440963436292502690171301493537915195704187831090022113345001742051423797466848180160994796923514698479222626236507458739499882780058316580095761804366221127229311499031009445442972784956459263765769583408207600208561718183040618842743266927357516561754142892705923128671159208698095147732641772486575286269846206804246738802012154991314637654318608592432847977803878425608247929562517065595171532429481521062338426050060593464470625270392120386665216582725600951666808611407759763787321687764005880540417690093931017521167690105810742842565767374262401174442506605060778319753799129651343217433969803759202588013189010094763573910512226655038622558918030671430045590976734971331182757928631710058147598465772117577726706784274734797717279485081667467347688169578307160782036415230441718343139529902690579076336579595221612890373956623475139835609610703073922262533780690843107201788777604358683905608585829728848909094753781495722189076399448910035955305374544481753964272433978486032946998185698401423568846130635862395108660261578189345329853646616288927699883395019702766717719408326901862757367097232031581538499795622699452880520040725929124184527317196276816629731671357006195056028421166023561515021216481526215046903454906816076426190960030901225066705961315753265807285681345785272979683048512663337735697395218760258576192871880449316995570888269060863959010686571024802587084793976990597018833536948384193397312127838297713012271840599312687515727307290198614512578747878575855639718539118882318005760204107918758057477900390322702774885610110693020973306210568646586189159511864713684690603028059439644631973256399941219349564555738468606755172484400188970349044970103423445461064400794885033230006458691585001992429928624065032897279980207541808380489263342966886791002131083657222510607496064311284674428826158685483999794323432735867645263812406599551224122970357121926636540955146405039751309655575551193158648746769295249431328976705108033424609842087073737500280800559400033193742730344136576037698707467074091163658364760073582156918485934730289202710833851764911806151280692066732703407814479191817309406453821810030303952536894734044957372271159791551137536777573763335158906806886940253409608276329164658516124491239045598960744964675400218100980752395145058696718463362150142581305782908268896527195489604081381590922847226507653554761485819833676480700139911142961348371352400259218137822734805837102605496381503171143346416394831541132802155031473925045895064527691409054449769042850879649239830454759529753853357686746931990371334914893326538581974786558471602033654383395818156969575776915958977540622146002773131585581882089585520452038823792263176360206756856601210568317642873147659189131699163336922995798321323569256488645118980804191038475914768200636079483313694215501835753006638128762105473299403832696379865227541157957798351550600047451600788862051555267334889272179526159608807381952789890595077295218144606958289717094173919292989779613817288265536722094537519142457304087709614013925829537299429160713468285955722705780335944371400137073470279234823000077576844390650745981359325206095681672821029075216869823135168111930831075773760900555606008550176774158795059208092063960319840256582196729011609886848170318209332088797005603536584332691092207509209291008183570387039911802186785541574437790589992140905187413295185238600615207295113491749168604914459211800910040691008987264929790729906896478526554260718289207094469427974991682903839901453330187589359532008830488909954994831876901471421757985931808368782116506865480777185490710450470572576661978551327353273704761104675937827937453353576290815015129878159507479624622084099929707989560671026636295132363618288132377596595806718862121027668857946048575373342523719250594787959098996264324059105159388626859125005442397103554600035645795460236197624073838544102411905038455484519031980541268452522708298922532115083964927338786438879262881047779362617292943672824493181688229638043999676602613506970343402205649200522747260419883355585624501828009393646724755857927972137683503961994446103198665955362422132130119771668368475817155794656896050626740428535647786049569795134160924643566429321266753582670312433849158265476377902049482900544267585324218822830685172997417505024021349973363877258502677741103798442579647785565070282215416690027777668908850974990082267199113117723414029763304303893446877608626098397287433967032906907397417058825258073031647224234850159901262548982082815136881119863888982503812491432696144667802180883672894038796231663852632388820583790385787534724945389886851106170349615228051052344386138463500587964296055022592547422132990451237014667642829624228186596352331615314697321004282975925067630051075969286248904779664074416188447810938664176669851341094602765822382963787206173959217333430732584364664969663014757497486251469893515515382374611665617128275036326640662689825890851799710023212000054347286378551276477993050056499190054911742944096316774399480025400549234958174693631337779266085608004054632843155731018531269606726190818017911896798559567486828742958927933638207443486589036823420257019187724363631568985160692417114863196123772563280655203206849501683272142787486529010193225582875555728076201298554939969270985705944670892719965624703430635613533001492115966374842297085668968198467897809556697768374006046446000681427121279870927681734734561654772491675506069948306660479740845365244105006057936365548018396530813378711334754136928693313811528531089947774662940469066959888175697269150419531002101957099246011721345332401776905570214824212645761546965406820283583906796864738399493963332492271352931681603450837787860052400277977215909268650421762663061397754125402313617677240245346126190475691302155234965923153776609155683971000797549853555293227432862187364389741018497200828094619411910960751522604412785602016565396048645974907006521761812691982599213560224489780281463922994146931607789010219239924089871798849137984099550408972887071653531344983395948318657909738906049035553389588981457876300842960277892788848105292490808878769539626880752377000340534350648091970308615504190294801578394603600490255603605824881702310860820506729112991401208930355820160934936297608174574603463404847879240247377266861438522818158209521240547990469476005835236640267571607651550330542496241778561358211025848033866039261551799541280775871122315265426447371121060799916142677123254291949156211898459166912458018889976418867040052184207817256035499174706635660833103546325233482721665985945041878635071129361230126852560851158351833108314024365365995388125892230154060832651290729135042733975211191012272535796721640509130300313168907178848266671400034288546706878502524533312316282052209331782839722013573986588670885346162069408867374402267133985956874351926608631564404819724571228367924266844300970325063642763964283388494933153127566466181072222852905051988314282439978425866720167109885832841223466100661626862462521176643076906541689197910210350954974412839466012195347963322146511129217048655227763786820015335001730417802511520986240009402743077124473836879394280607785032960347406706524725031382950983811477755472839187369837167328915466559066214352449837804211345011699424433077237815089992404062298564415594208788961920721015719662388603891828877011418892984419149466949325622631381562711572865828788688033211453240173522579775223760306589939758494091573663761013457283981148103500925903599394872871187027714565175184256959722018975359329477098178254628781404112189412148324765370217734081855516615523602074683196123110214106918453755157811412074652986566925054421656568412630383762273222959159454029972185799515691348027272105264200186357532486794185057475807477183543172661110132661148205100914243562527438674767563558976404103856101172347886158669909478936387222047433847320765952154876727358307815111757057015888801008747811223661946958124252308441679936764731076933137233571581030283534128936871632951066433732334555417710136134215694553406793896593720618496489166568294258611250984021308291328108919943491360061967650428191238956808561124883407662482697001553151298933576303750461893881708057170907990797439618343007190888424272532210642775979393088493134483746997813838028331917902377456377909937282486154643242592817920467772162072925447065382221738244032347136270340303995426305864692623971461671091575540083091817994163219525146705262442491366791166749350471806400481591703530186243911791802947520660963884938483356618217557997516535517815862873985486425832540746873144834904058481907210481100613770592069155802320700672316223123747390325822380787801992668514358526392474938031871980592860386128925624674294324628351617212453642255273481730333411635031943801233801020038060310385123489124316331378093323087169238129963160093005667724732188844267862153861301654342156396750953680034383536938541420882212334825336458584641662367793688971835812160678627119013124068014711470925805404287096208594038080076174562712063649139914264513812217471828608298681822589011109879243583804369245932584085162900617758972467166948646135099317462873662609990458267328307408964562998745657219350469283373876137570591472653276102605239625509551364481410735738018215315832917930454300544506364317015101332523182652005424456323657571643957700221612276899914559234387481290191256127334150404878693526966847986703164254857764538466476174551603198550330902942861845099368857891276988709592873311299791591081214494470202794608091150686489651698257455819576850464814185146019586086266744236788075269421363471673258309078291510064996529391870625039319772433317169029291413301125749056107914456114406918387420693440703199747800692514604387389275047281838011456468128565110399974152916959025952209243091412750922349351450920038900386844899386095949803207761045829758581775718826570600437783590383890223642798040805722869134718314330340469645998382107812074641016030449692044444018796554276679370851266505743068961445902488073510301824144690273788387557584503830349898775784189990407677068387639107349208513713291267668036044580109004777956132345858322630428291971354134083599083212631227102921892951302844788046564479728984814154756397644048954745320164870517380145524104835585664166922532723952947255312192276984105545173761458562774160804235191223533978175229547972952894830027999052778237328886122173785254342326103850493996272260661453062749255257920470921571174909680008237947811679535696039113456685616299078448569925363848651195985643803218827173252131047646579380254501335252768011598216632767917318395693755172553146283908286643437805968657328791067103137869507999056105587928259530958940505843071606783405864430176567314917458303517839989255616336674420154635685004674444239831917115775337467622688362724392060638975525994399075891715962034505405831999293976411282505968629171049080844923151939788686294775731133690949896738083096802725619226711718789314713804094794305843980904869785858731140865642261293247385643049155061611396591134600136080891986664920865079039640677100931866816218101021257100647749509626322520125779081190551669494660452102345612106145340475886977748183618266133150711059016621281399697646923705303636643919977930288001971221569695076349869724065973404734074012410900201663108418508490650021387618506158541255779114645581201733533773760339193267849972432070988285765660416586526744472209046253402004430151684474039770942910908059950380623730561102904139416501690981027242068335724955953909365347823444764997847825155019931684415833189038432967199822948171448750504567187362655267045551703018901516710886532369117576039167642458130744513177971259353292498157553361809353481320077510339961767595689612870718946461206326553041216843830480921138577216492788690136041788727341097745482620162042312420155790818620777154586435271876345861596307355209667788835309492538439655788438430864317243067479803489967370398368456656531114990491766082389100943930885921727897723293550669787584093121838698778193333160259361517703927562006885937230618984913620860389529114248612693336634787722830859602148293793223880566018988588311471637014426822633711726874955784113042280998195705752104925223153723368311848177862999200583623861531350953175872882836213619027430356975783094739426883478240565855199467281714727113411056575623535451024964150586432972063604722293438751826350730489095311321530056551095462708467031870370970149515423685912943731320153288666829473437044766282101978106395990567125331902487813063724750633084265412436810347695403323299558261816031345882270916799573923524985661861848924344842345677126712500542524542364553734959817830254367488840917076452126500377111802364311765774215230697883687955848374284093408954812693040493612472408778132547892200298608787074313407685522703928484430967547570430839367268405290123607386008699346755343777460031028308244067859028562763885638737331967684413007304939483459415062086820679680320766750900501832643338567384505062987962736003637089198471219557661115627077224500642946369418592113926775381654068402851379991604033395279064877902729605830498957925967967163173580472504506057408976045337213200218788912159688500478038754479906433012193663752173904746519613547684181382155062709056281707690475141620586387895309025888370903970742608224027617303622484039438602261866563190667430136149133887621131681165518005722054124620341115594381067934810538565122875680706230586052015531515931840037303086325863745705637862887697053225841698364934132403001297194380560748561855099909656908221523709266921298451553568493332026925204674867651937062848117846426656033928014910068027205534083467085125948270981118354510198881134740999405458745667132438354634088928284664708061704921208349607676402056012332798828201194525638966749266511419423054997144157990812317002951268583776229646856013344742903867727527708024808751637687758757827035280165383427919676759109274935517609656043787838529310417879119676056084520472165686787411937875047069001015862096975191425003031962729633244968537233849538633890818427177837339292458254440232254442126762278667181956555523006647061876293331020836370077341214129969091514902454521847037943157270263224191723131601115927465798880877897252007780825062849765851335352069353189147068702478746129735120810764508534213934759982999399757956344397981244778197974684237171874031382134166575517934842697255398733007557456043848520528402418184190219373168089840286929661604829535604421915119180422739565273656709697694785334714918971153412264948829888047568987373562770330939075403373300474716733696891826049790194936080402311671610628959880240564614977116135642537447006335892632631822061675672716636248899225267617917333487881831582060374043206655764599545039550944570963917283885659166674198941655435733114112494488271717283009204487047288999245251822069948230032389274626083738911345862198441457853977130511713456788330873902362906600623383379356795738952797630820024572802565428797421657048954194570745451678994687797401536782387410298831915413724223299369766459170327977345770891729563578992677081352989955009558516534556616492742027261049357941716811066728710622210829466921218885787020385472366755469345041896018829083338037770587732016570445759294119226106472687683712457077657895954620339851676512497520459323735375207760885589808291009025537238597718885473909803808476784923447644809456359925483874548903512252863425194641924934023290977094688995484291400241648252213630919750228809152961455554053985726096995564606762410754205873973490319474988642416318396420607523724507637846797601593982798840967320229854754104171886897969111307070000179742532978820647574625823763866771346473345904645244267244885533207783621500246298827666590785296372193029229651595715082185890926130424159989758520956689353861212537216714152709618097083447068639330740816010206865947515422976143471604306580048467958115389214597324415841326494365363059619980026809390792546723059108820697059817423732688924744281326581967998284077227992027859839514687976399949032215365083918560058785150909483777217781330477845670846944283191823133035446720887459552856767415473278269880768226178446090904662607418949237289007204561768112370745396416061077454092485385638242311528800918236799654327532988174416686474700487355698447036464060891464809989890478283081640417366917857011451815384946540474536093785274061018782585904486182501076467897746730065966745040474442237886289328290480327885121751873625005663894516686991887039375518203894233950899256320272830261854948447654192178682527658619815361003460459707429227510909576487817909653518865189089738307743110312073405211825150159501032715593276375728356836858850677871765959728316443584282141904221937625720147231360433680970396058993819181912917498324253764735421448826491386137659305619067992555115418343442816352537288488937206128733811448596081804393365345264195699766638175048230216126338525664755889148555482639963255996863712759967440466623630497047018236808957416575920407380250987277978819946445752045493212842623757660083867770204772588858820032158285533717165349963133526209542133042346357553258985080558351702059732831461410491262455633178937723930464294074537073640166945863647682831244270202042988346726280198516824369650279440272282231365088085485858493187562118057104186149484445341431578659188205235023563718900543494756278375706495872972561200358985684090339759601493628031400268698415898418898370675846885490938235786948160584001259903773983007355333697498059364816729624470803875423600817714502254038119321141410300246040193910993170517302308488337036707066381907242777592165764259522144886478779376982909816150259196229051014924148663670074741987756554612191809739120502048154355530936774750444272231502710438293635407775902133774128702331862798234207500287764489935669799988767781030803512223047288667890846083332428916661159756680489046881535503167947646152058272112180388456075339871308503792100793989123205656990263316958590244599601150192539429080843566824738622110058837874254159852242479565449424481043479331578231040732615162098971447693689558151525827396561170906414664836010589248363979811388548003142936339106274910268841239749445886642090247774832184646999623908480328026703847881181321361739629701359001692190981894609012735942897615447443472513440695967575402521457212433282740226053243917287083638772655832356170240636501057314577049876016258956981183650568853973042673170866111001967308126763635664615744225021363151360242676939605204497317974440909396788107402880558845667237831529691298518652308663635690673272916648133531455261566423789380215532616231939686413553791555787706807941037566258342334818129171143195445470943161117212754389255883130723896557137018021517152841700933081479743471050651313564036972063082318551875952240770605484501768530754956720870636034132227970315842177731025418025056504068646880905904517503306839195210361110145256043688297881025313047891828111777026492641002505849126099769716691016076545099485812962236681542207876295011568842314173398468755960563574462466404827537749593498460820473126340880969724790328709525327157506803841863699956327114628558181781782075082038821587784651601267621018216528354940613265039600710006893094564979278706661374129139586286949005981264205223335963855972224378265566995581782087971284021509805560097665639722313519411218674131401585546556110468163734379039197945125277102092558983371611118060629279706545257624865300994906990878153940806138370832014117694363977658924186474814965134366390675655490570998139606052931968345311200854823253369435720509600797436372301839845915457871258838986641615350356592913657063973620933024520972196010924999802659336211217228351450296236628920346428288467744168947483584931412064895163045413707011904561534298116255267868037888499060866845608898080786703839748413938685660794564400172615741127411422277926366134523297122820934901337108061190837993009813511460806990012240113214753213316344732905087670671753943862913129905002248659615009659435132011305300399873353109337720579653320941634537106832860602352318893443912632513071448429170187277288035473356539841759447321280064935085560174131906926430812246959244399122119205366138328399358218536904227240253012636604723327402317616398955329940681184815409164046230344997703430079160892197471928127992830036212944699613779947868038053591028910948893054770418399819066083655310369497223471874278622681952081087371899876711014813353796013638228068058582956839209183921995241492743282103021435927160293069208453809441266570483976521725446162238427106828541687043681247027541410145427270169494159557274221579703246450499552138912279808554780532607722990010689351378525853624093917626475217326252599377644671758450211886768434544843161830851829548812785086104975894130089442124606650332198692441687034633868085296118220301546806345817402387895954970091819607600557160761732990341308982715473210609906298282920389594464372071860701031041151720193895671236848605658789489992119491858994932704598886990607494994489438557794909914403495607650414112937705420417639693443269631402798246427501299053508029811685105200977329844305649799964191657055029513852360308246700197885219292564010410083011037306069889735950575145236419347152106895075163890085498952302103113474548108655951805529149074419246369211399669168318816037056446292234018849358616685097661064471150216005158062692672924324656678534325967407011934260203393596126012411322024500492897779364529629865652089407515799724602550437302384593721566428587390430542499708503218336482979798208753565058307767677567882055362608537423992004529034671090874269652390622563760812052202251754590034564306159966087567711405813845289215419372600111017352510728055148045975760056315962831897227885787379236385051485215776570850415036845817667289869103843897509396738640781034071745868765077005755838912364874336433852586905326812562606581256882990360922356710551030548690705981125267257930274039239514397782376067024682940702173510983344882502095518395057015173279519869925118332123366875824061888752749951236101901362808425990563237455330746489045485118185019554451331698918441087445584497888276300988464802300242916868049422844027265314947788527845570750476471619526405244107156896167647321343924401122232998998526482196034450465917815761497335422376422566982425969059795803813421703373920900148576276538027812377777483095283969584317802891110727471423400472508395101767979384029814471006799580526932907446194588282754241920155189141474791974301017759842607419765564982537887213305617445842807154902362274077788221748345968736802366476760232284996914877884861568010760088323514713450313050066213274135315294871649880266347267723293115604273672657930122780387627307348145267122840365144635026421525296480481000945389283461325186597073795325505694400052927283029684146627172712725331921144749254451725706547655538293990151564540284937132661731658016499738586586331262504789391000454966995948297747760800284803329917416792648392197567790387183114459562958856539166511403603214439080603168300504547926235064843236238109022177531002866632318726552106977587163064853616205118011847630236897566163839938655772699898000258020790685062682462406869591847843981062486660264896066949143979531814037413747245798388904373393982544688659152314190917154102694211944561381748146921463039361176652400854324152771296663764259773960770316069065568242617210507017384617322374003494563500123891004208677975294771278534930848168683877710898244019925682301359852299701596520844309158452852205668244276297048211081748803665492372434606604998603134780091222365590316031482378304096966626298436031515543419838361689653973068972768403443425761133655056617763111274341105110121612459485027030572891483872256454753750749153343834277549140997165207350390695971719641746306377471112493879454057884318793258811136033869615294174415162836294776267170654666120954819955974302966453981562271130760995163939496022293611390641465880857336275858236421068707334578460138007913809304994313496256573172614369138930428782279663625287196377015415823296336840204127038420950665495854966827136455816201670854341929790150432088527049364940095523240421156300934337171392092183741088637685866920386980436417322566100841177563190343550890684268570033799833079035039396628515622914526751539496317996055110253397266891756495936002378793498204529524823301591478467441066330336925408703056966817194509194742351804979993324499001861469618167703451214657510762195053042256695972573167190205991883755978804204408845736824967623561547335072801984774741199052652637695811943563713404094865240359669115094650116521853305699228912820982169618679376112373220738223648824305522019016207092302440638580186941552210362097058004443354588189268524571234623845867049314822270755056010003504328681424872887030576684235956287069879651259770056029352896413064336916421130222025770002101088971878345932709287123936628024315748456167632896496826893600093936732883242969566609083025829526490400383927837391288861089663178089448570908412892017124735809869584696797783884395556496954384907108059944897946312868886584700370104020116359965934802350057987921277790911089052445192358059766682641273748255174929845503952609715303630985469448069743892259621245775207847024867022761089998475581963021798194309023682548922459071132697459004435847785796860202292973668955803508715209734295656655711936811647158367730975270864458912649557564390814672742172536014441931261543595069577945255795817378829842131950908247681106613372121580035597214268725556117705900222831492554188020000721678826462080516973876347294685446376155940857785984444116642907597509311056480594788043028899023803465525587631782502149596666314688341504210761047347336742483391807533149511233142412933463691655594734886636210349898721800945367799778963763225084514773974701434960296030694927862124655396283732379174362085027305697070976119400874608590405074976562905673528641550806526954973720684567385614109771823117853086537235043337026214517975831608950228331414602044409369825304192523994624338097232220344239194112895927845398642643289968387425350216673481642977034884381577069343271401113126494298647017975014388758455106890482254808036617382549815615257324088367576803863708893086729841581393958143040948174790025760624240552515174509210670239846857412780783779622726009491284868054944778365069397572449213065574330877571451213206458597607139712493018540739248280009417623593067677237807234045294117151575563361329207347438723073200254169621476787856237560699900002510743839972811080644161181886140089988328433032507784250086980151261875305808652967650973111425129139186276309827068813885749392493277845288854186243498754352535334366695036189132003598276021702971749123878852934187752923624084728476880581050051628283001446053270825306541955510427497329917982594171527374114609148641626415584606833980635447058249781517088733426809685178472812388589327110518465924003770760452487457783523855479250005525191674599303950719902714873235620069786178593704804003442479368075362148706823839899236251311373124988028237372592283138763686080799844402883093815560722871443251708894928315777751389688359563392851500257621201609773787100108592752983905582037297666546461500829561711773753940235199812378515897322471457607961982666338696019366790913727172548474725826623284610400786454754690251287589035481999710603577932663078094855290528908155555829320427972557809808061354075329181832226489262671984284757053874478897186883949909146020398499412532086859041263178800697107695064404060534862418167540759752411773352258920823877988667935067827249513214748077747261345160014691918385466075413032972791104453894255650355166408263612597759289157294013417326842534547352971411527809907960526293814443381918925106173406971187802005332788362540219129195123745749573308389684438884117440807016474409671937176504500976412323955598244487204112330296134253881650275545129261999414057639221507387731810738043489474672653647470283343260751004247090048345408765357785536556250701399609223330143110251963537501736205224353805594994762094666737950344583501732701434446157649743563837104535240240517181725799303665416250943556866285322395653788138048629635965132429358465045431153114216495617845179029887010355253391719593407537386634495999633088582647131662322228631424981207141184946587238810345868568457281808447766248879791871689255968482587725984486225114699097279803438492495486100988093748252048837621050648940438078371725304725790697735559952377435348075335810405326313705342135803263999023827445369066676097903959982391658882117021545959073652362063693741902231396887988689470928124900133211694799411797168013856164334982307563031254865112264605234967262311252687187317077372566558521602164155412078056101520146194495297904270766477404505910557493126593544292384648489437993925695865136305792504070603347957239440124926535209269048769293487674609898105517900676552747208736221938251854213475083084789901179931110811952989896967161184561307355081110593802469671867035794501506874191393000150799907935003837571626899545391997076064507106845442011992673065110992409770317799831410070096964593317367913513857842238201866653378939158362580561522063120237418558469229167462181693112876313253360550497789788684467649733072233596782679385899029758589160216403514000398507682723356201962945939852654434638812866871858457642979308663009597993199841213871267906641277415318176875612888691497347379556416670480363135348508270251429004966652388114302871232189129865489430072143281568483102533012656950388422901392294110976380550023516404359605192397804465952967183725630954727658361306705297715121329590848924635588545327859319365368019047061034996077476079435191008110728033353334244433206164422353050949353787288981262027932764051845259344970774869048971725193034785147511463371382362806607651130084638602341926584129598851582140188380477017342089718918861066717332419177903078745722969269167531879555514827973835568681397239955540856957876130068242937325296950639628121767302834239507665746346815481891170266725999181516506919490898703242020156272032116040762749937255379934374295179330369295017791434812925071792374537350328256847700485815359078875106603234201450464602014767565515596791954780957971512116917315621468728075572797842940430314574073376715645274155204119348990630463986410586332253919821039426771600171261148620036161694966217360621526307088319830218034153133350593522087248180442290541063658559262736647852871310789923900920467917444860580163252558077969385361151978605621485435434927761326796766731932935271788120741483703802449495273891113185228528347546409340315189459086429397117287220201353043070288307856837236716380649935460410768992048474931489165530488291291614040626331300383441914125607183103398448500894572616700943936052362926906010142496247732917567162673229624827125342370617909277905593122688503183114345047579566553244030436554594351453463802412948646375737692377158166639883738768206790495601734638012195815008205245194016111059941717713493169808056590389303771166501146942258196418329876270924252401588197727558373772770648058515645758457442141673011454857607088818858464049934412694829214053736749380353463720234809944526425641164301905660211815271092428000602382317705664650505334682567251399846838137568540271827361121376275365988088614685529670360626448521872703494222236409085477218681645348822490170421858990557674343882516950204764315217236495831923296523762398026576722050377548853122381392028801252434225065075954613278504668008377239090046633875606405863894376119150422486213131435778990625129358809309274981875991112171889065436227302623357727162809708536034138100771296202019583143027687572470575506883173865411014080583565097455880490028665014806225593531373047615432248506505959543158636728699542209459195834414041998372270636784512033118045153892668088355764460699514156259791666669075682086844662320354978597461086163973240837123790006228916946039433343480557011225071259927513265199205544863514926009382978892331723546450691575461163032021186189653491069450832346893484140282535151131032169652433938573797132033727282419057518819277630031134618114513423300014479520368575128735676695039813218986077739446497721759938441361216252059141861703132843713907327500880233878536168026892643310563408303764412079566980558273565545325271775626650677532354569952196177492020403459665233032158651098010909256033026325514567051686195420966087422150631470525521667202491341497063747249148418371016854211818317861328624957846423377699103976365069347276993235654124556164696618767652870472531705830433835030967940051065031747138047388859521855805420683795014815176305172004009153220048419078818727723852804878778093126795513246049965103353639108420427727287653234769005630573357839308815470747919383599706105016025166459772454302202412252856792000676531612072001822544727817693375397243652035267992119257664658605789370095779076988053280361976555075854029998137693260154680236713074088864494148274377960483602245236688834804032504994608141493406750966014206540281156501644591294419212742642771665935662722517505687425505684361484671353172523367339712210509294139394714082857198208744682061088614453617134829993065076781096434127350713415255064299576427978866842801147264434608688875444675083407898868389861743691182242777353308877793242334864799525555043048676654227108596230718434120779326846093495943767210304893203471294499679285361222815193556416292230051494117072628752641999295355246695724711862578878961841512889012512231335244469423517125527743508697433931740694077128648485088599695924139481754180186397193961265775802026162984963578696415394126556419666181449116541441400753280373090519973582056246882002431989173141768286521194695260532738439561688406028773569172600072414853137820067167171457773896864349133550556473352865790194719953935075305368364207563120565186069328425090271138624900750139362866484493007651097882218201464003475686728947913728569185806165171242442957345736678271315162323907318326745349623717227492789891591805917581409745713274004778454579443866603497276192272945088392218952240594738545376327046376668700260037476826405205828821014272069713870748301873654741352378642073634912142366179977218119250747961118103042903935975457205050709710996465475366077480603291192141589180513261553673570536332125527464862577877931082368391533256198376825579803836922554885740234575776630143824078120526917154942217148950932945239670433477247588473819173793364881257957625601055196667273142072354365092831633724716603623073984147165707697913696525168723339675442644350605341697372184685357986953190555944875230130000879700675358507660203139684343734355362885687365841819414184141221605919899369654441838061935253929449363984223503531676751452930007676497898549425167564792524250079926386080994269260963256474888139865863846979760157858205123905341308687669775925106402763077156589983228270698448125680852965901917396298162115511194361931899217815745316909691372377247296450250038820665099763178342298846811976869278538594043868340127020928188583815428588484947448920451898072537852302521594357719443908929011722199779958508454893429356410528228275297550913040892253795462527656706388034947371097873902574412566271423398779322336506116835540891319507634212817005952858147464246973392053797425268845653626811079934079184913518028376124936573627091726213315826669421297805673438496468684914421717022811173165200767984773269087980414437969056482556444871766114896905749844059676977502277273852838225959956174825644360798555470969332779607843719534498022812099642534788038788778626198192740711993881239771596908446912884413026341270359125529944667817012241665954466022015242037323845301450099922069940181247767517933120489570695436798967128481333389513648059741419582102122544740310080781296197189445862048402363244232285223268010265394443516523707131469580777720841408578717242979116274884762092526361131952157983550808696592812898757662349600501336394683339544540147504911561166192858350211790159544754888274758480091546761101309080810704901491660344052127462327903892114495641514738648853107551201673497454235140967611512872516636998358388644169014524725049175419156279233024451875755897356749250329849874526949078293956589467034684547853182971419304167429146826734501345788988633667522953466370458400608607709376041019040124147102756383000819225803148345060002433950436047932552951423729207556237703589302847835308222987372722582502981659157053861486038277706542392907645515857963436072415301140847285670954463481045017158380711009015618426177635904449034119449555561082580715097637032007945603796908578395512594065534964035008002113921189095870012580987356367571576750704255543483309087360191825407459183412940354458293210319889638074052574508477524457084198338294081267012687886369001765086813782692181942081569993340981271056385564755915694214825698015167087962925626183971951147855613835978151619593341498133636949962038808407543816043101126912430706006815122966638655373560130347321865004755165084426386565729600618573965704273327991801382262052400126025700693006249340931706906534899073049518490574203380373564834984423284421338673959591905576939718921019750709824319782336336053568092375552785690181750376966356596144643928612846318123325162318663995081662030021837803000454999486752311021716012261321119126701454790982204479412205496914465365949663737488055087690811804742359868185988639219502253033456262785382997010772270038942689610447979807059380206438939138388945479356367033149531922252957567971294266266158897590669302128436987366842621372621737536639836653941265066717256094425350370030546454111770000220628473931441834646703811818746483564773736772642343094415321960089440069152840122823043659192703894226998192017100296957394734219391894995224774735717605032962239029356097105161105503368039476433676814215795449010469335292924179153891671622024153885997718358227294895680202267734743028934523211280324024411114830908477151507431618639907618266741165933749084588939055865084703204978467116122342180546718660142095495295996490560322817449889120068457382977911589973263031709751517808910028021263021806050920361294843708661625860014124639266985574971915086073512300945817653000748698510150909497504550849792194863553123217655693236480463237437892746824598687448383109787335408970295153642758496787404408939156166604955638840523028468147675372867291553811140996278649157651440154079837010680491408573836802331576137391692830571062650294848678767669040324632195314547248678490741183063868812675680749410976252868851170830644867115631160093473057348953313212607921362572747458740071112798628433325010567627526879737822910119373404651222884860014045323585526343217722296620390589290780363453573765128062856150901980345509181340776320531753032294644570684647641379887367912117825995600552418391009285713032202912885298607545803443033836926814162029969366678187182890301579423847728973304149845545883178736400282974080922212215906749381085357010622325627838544732798988424031154494701967152397797500899701369661113496348473468978568271213623304464416828027337520794395578364567901409593790723691553032540692150577029167948206252326192429630113889404705822354834004069171415860010039470445048520758989632333762898835320724718991095186944652427129469356042307257837909468021142066735056080650189596696056232700944123376898629540049620518798369043504910407194787867810264360285724322903644576804283336051649654814119093806186643503822492523090605457672717404693271431655350068361403783394519672528449365355952233286438047785702208882850780646554879346676913580226308184520124440634678443580296574734096636211612800683877058876548031386413860397817385988808033648099082737120522016579877702017948433045201420004684803935145996492782002150374718393519252632481355559165711150849215168940753251103021782121127800896088142792508411313516376753274056622473744730708564389907823250760219353175965516952619503521995487097281363890437901897885404347438884081016705072481895143033551751955057380506669835450412007649201471597610904743839744377341716269989657918508472160733060493316766545862507770081347081377919330053059476329598819910333342671795570045726753505113430877170601815987735100373159759164197388459546195985078947562311752922698354022281876774697615937662925422695138079645411780850705075848768405746124085744125252889070941830799693001632101514793952382617270093834771201050607094266986660582742297044250965538936184218256484722777123292572506584893915859477330988674285125428571697771779988464040708651074726765808392373302206069658392798384289222295238778494956456552441281341492121389677209713975620663871879934792393351897613373441187615382787790643782599071904655335734934171684137940019374178189706407661062834322391778507962718764955907718861153439792493673147937649984695916950449649332212264973619839663153717999511737287134690166146512707395080395543484990879660590110175354112442140062864122908595460861638856006869477182268442448701036589584977184114775078724517359276895383748803409718913990378183309098791086858214548171806493977660873145515524532225849743834454778050339765023172610329145036263504881109638333766755313253492574886926001754638146660027113337687794555666001871950275131892432717532505318669817832551555055119373534146425701689645467891900425002262229756314221440155185984953545885264250698317553921718981964237866610266488616464699518991214931995771889094737832672329844278994307744677063935957372321162787719072488432532139373986480084036463799181578127998725347631228464163065961584955648589155265982625906044138804119688012828743149173306793612638524577689646624627101396537400890973600052185722901642360371266768258513528276843374797662613154436140453240518411606637489109038543592609765606222068631779905005247179540338602918982727811463011001133462131451745080751839642391043351116739109325288895511293508191381224459568623515639020911552292000889770735496647719594078390267497868943930768263132931429899130449180263450499833390810718354289854704678407895329224735760976229717723590313622404666312726104965496255689607734489988880577007701747117006703934501712055404563167576951840486150250563727441790659834625210708490087066240449815655378208012068560055350932747674435790985708585671065076078771860009372436911462320115558614989535081346170055714853091360067504865206544661412752201276759433072501487303473025055917962644563975921278879654881356991569690389088796250133210676425129444412659038647032443195157257514450837212120543995790657004071449873790682128442480357048237960939553279576219401607711172927422440089496478600323228778508768989220958903087697462201476098341303038831947710382114457518785771212702462853455428021393950790791605345917809994245793714751357145740042499161544034682561913947166223520083104609741742869642390219022597894857877730840775655252700605202634612318520975821081076539038803655322906864879242497898886451028811139162035713267046784071720837489586164185385744010379577438844529282802757568715703131022794122570266389519839829171758497934946092407849831854513001600004438193024613945746417440788054343489415748397608748038753197066150043842557866598746933336602900379006215273254773644818560840241556812146919050087418511283506704661424896425640087902827368457850056411250307393839235468005842854540428908240694101410729610897030833392146800601812901052491291832543422466829301858131911506806412704843425210505718675273807611632861280845923873622468764455191807460584724391403782222034684977121327883998850024798382811975279404860417139875604299365441757384926965873960819910590701377426365143273527532649085595696754671812467387797390306962038970956562786838346781841118108006095886769839950030812914067013213733266458506167488623111403138140704383759164966110812792592811110235035064269577215774687800996478228844763355389065302644092689070689924992313376989465017771067975253356244117111653407457552946634723805221235056457780556663269604909256108096096120884662648549524039959281525280343526718054056576516877640378896527964076671103255192711603788473982163147150253594322145506353667089594282591088660987559089562195688587725709049823876607563148078441045200549292237721806715016538675636369433739664601742333822913432354580045599247842436409506236601920671868785470351702633330872518677926903841783129332486219497989970160624652030996372168435651613137897116400181705558009435997781311792092510528627633614362874626635539552127977260059624506779187175955319269285429151344248772776933666525800754642787608041548753154945493228615087872086408712164002143162361042620165561828568786130844679640245566091019895483277305972192583566837335247928484799970302898603503516534929881600017036286572407209820564258424055527735376823957211614026313271463327928354356090417586756203639423531271814020731351080363352097872072918199562623120902415694934993054429043635275249037319518766346561245586610923147561357794218346384964338655724459361223159869628564099642099881809185822547380113955364856967775733022084385225889588238950155614629803290755842034993112558299329160411257797311402443705389949264778464420112659708436000850597667854754569119159856621020763157866296564080219004454084165506297168728590851069368625313365868680395496993353076101244798800452282911339183998481848564217489251970715305540813863336198698453363579674706739950585980334721654230522332383750991720613199152239716729305178683550909108689151885719061531421643046605569252337027495412654162366394491373110755243823643812147784790689515995781615393425899735158550227137512095015006900077316821769750962546790436281612634103372058059346910652729482869096942821704130016758704740585452709376867278866481791667717138479209124528908708377635880292468357569965554698375444154772084122279871881656497978378512817599142649296526827417441982396758565668494633198720009387265127073692055187443319655240716248393461357220804790077951585764858396811402489166308958244433582948515030605136781987003888508507839965232031650575881930978454020730733645466539906627770804693310324480706302258034386194990108378381704356435459829318348384987287476732184316268710925960822247828964797733992065234349827678878075491990309985434888131719866911245326537776101650610114076429814596970570357722253448545640128696236815811711059429361629326241418023834464193893091661099861742693633742940331080915596392788742027986762170543369682755689935523269169403990653180631118286458917715433573322223798789309980722073285438267893892967315513453620721762159161911488064506815391205766503444376411164142327893287643679675510004260148285976379540860408389181204441212487108360723796507534825254589232334528441978022329095499030877740169324201874549497588967447238263322124257314141055604309482512576631629601616913662796719514432828740359633721148181376382787898504110638507309015384100943706949242273994907301649360157234081914879747683885719158559788927524233203391586358862841259163028729615291620565893189106296276804652235187962910599652460102471348315931704944398783433909986200499807466902651678593841620482932418520116546040732897319610289944293673914805829379655317704864727913813277533046311716729574245315535209928600748375154985720909215143559056078251915297262699103085627333747783207386073251167598664670215732980443866582720609704890338669562617866212382582400559170410799110794533002752045981131050498214043849977256327358745652596063813045680034794061400802396992631642107778708484845241212462628885434324073291096231088925743924392426371393915530862695180655118423615560891842565826204359933853307432551094805206145591579298419301499003082068044638170622290320386690443520659416133509433793817001523689373141362810469570030771529574949427669246167816024133891783313645921217422953881560688284724686151212533767232814805583207712569249354988658778853477128525025042042012907749212650160080230938368737549515876221750721214482821121703958383078413920975945894403640961855469722408953691842045559507182225973446562093567136783309314659634339807306459611719795216266204849882872893974908435002469724692656346735299674396660958750052746235039440957147207539786857594549669485488597188697208978021751809196105606632622464961378661846968357169185377977302402988556576704313747553462417396348095799762518594517402071350983076621670833477009783606732394078954246449872544957850175674199325070430395123045933292353697380200056507619645130246608816479468388974330113203981632706072169923870252442587062374846166116370560837953420485099701042940987548219726015904282945905937631590693557781012251942853867431705107816906697458976009757260623506105813896809743160175714310421897219422487980230891867942072653642833008844174488774992838783780566056893023254523449424661232250063314205180205344586316335862026723684917566279093249544537808925756565588341483883143858864937504996247302419808418564948178712004223625707050323747531138826903511636204582421606909753536765693171794869364484805904726202340723993828365330739842266844305457377319683210376374298231101183934486622115795352331527691162715674546774484999022189610792953842487507448760643783327550954706360573051656857231401697783346937747409922744336791718687611639851891316482094619294089660255932719477729059043888047519871455063009410293743408805349125105324522124072071096339622834269385535532527631627220790779756583286494593796371848861504061794413505096937310899642912580189086941328847602022610819014566684196374327602936119978245990461642081367556812428490568636221353841768318890017421133870030016085522021329299097084550021675980479762070836767016200183813162927502449493517960752192209985658884568115777356855775414551929435941741924227246851344366090978691236707639161911539003582251916845101918717907824959138250443255872382572051944709066115710266252358284193133829785804616254158958534870090054870373230879317209476236669666142083678900182703580172706608894058577870768414476868987223547627482823925862373161090573667089057056576854761088463305088718969391685650300435595789879176552014361274161549137719643910456108261951252118555751036213190232159315269950814736917029877329968296684467137357210209246242586613318141630084012826189128062100531856498268097811390364186029827383082273654168591662607890499271790501687820421591934033959528799429378258504124926788690599480914980762595021178540795340146367652386856366641971441061687531015558847958126041406676418852462375900817031037615990101050245024032787470749823508874851629766011279034419007337145982715357814506543963834373500208843247654670426756486056950641527069610605781687778789590113750615210551013347479511233526642814181710592814280943941789107866391851486885770070850510429872556800496335291523241344113958966389033441028921813491737256134774322558530200726595860503289752022003447277072900621784635641194257578279425430163005377581185189130137183674969204730287736004761172090001783596893098473746101915012869425419473392842130721099031622153922469554724733301865240639368697005383510195717419546364749811104343537039219631913171273810436555353425700417659281439310253247859626804666745814403776016888422709484440743733059227168219734524198372153950695805321240090466640405916031547905672354470948693213530833644671510285972350449467513375055017556632042609271670312284845148649452717361405188338119887522101369152884641287828528887362587465879189181084539930742246287858335217209441768612150291782010056069137294264305431947298414832384897650136973292748996145012676671794524305848491214738311037414500888343537559899556927264814439847714481877217710391883297674061446907497918596208473422336347666567695649103461603559066923595135172702966337365231477013517041868387751864927750021903344452186339435297387592356702596806509170024857720738240964298384542484921698632881266535777501156543100498167632752351729184016826343514415316342483483314490826448141913399529330454201207412136404854650471521176198855114778158617237379319461801760992723623846862694084073506305824492315470385710204230215449451836349032587613445366606773169969937843363281165338497015982870283154662630000479982274930595487499549718678632924283537425618306895497192691740856264881987389730773785226934936971137219347089706834738041814010475597903009556629293522615164331732215385008390319876293562397475691451478082544682128806970710122014542634527263125835835611830165814074063865388356003755434996907018458535486094051306544086453104795820785614519070132653421666970422793397866764092232088057949358573098307268118343909236295106979692416121991312376615187897840467609887400106650363126637008092777424615096509098267661180940022433138476433480638805973970110795257703418319279864897774209450009902370286624475707401971187882938581862873926141486490359529345872056063119434188389783023241497751021798115476707189707086219591911045057782146307412209861800359400721065244485765700581834141820062677470051380995500087674066861934657224459898359657123586433432495336820473567298373462767058024235487746603973254277290305802191804107010350472426933993894371932053659222061403946628522406835520760690996639047963221175428275863979226449924816831138937027776057044728781582240441534778100238737731519218974018727689686697929175944272433482423692296369251739225002683238807526657134880534960628832496868102466675719856954147541603046417033461440079706408905616444495380890370808547941224961952651168688550191466421891996427589649658501145549645848126226905982868133676833401122824157358793676619942983620311567059321686466866914591609401966571763444261019249613737099227429603380877565367822660781754910352791897873182412688785095543616858141699057251874393319032929831211385590295526206866612713308182698352432484392949639659414748019806504475509535535248129521040893210300522824025978421504407986287097424816319212620761775503156983785725695340968687270094929248021880203304939164611646064374912148326717253777870976744526784490812960406503280933524587626149283661189479407988838454876681558169203641669650011339554736776136933972562816998308273721536533633193752738728979792338189339773976383399009924621813167819212783159547562145872265572811412281521797834584979890496014731348876084658488205196826899544606903877616361920754614520692048295864195128808656762499428233491814129739763481743427359872465278892873300197286053970712228001492374477044951721024443635842412931035931453622615000841336102414658669654552774836904511959398381970681164437534396641189663073557770106439562393827099428482942427807139738245285167142739918261679520996333003304708902103118165603526829725150693422309893451612030359016619937875367661090483789051714300900782796189780840955174521486336854157984533950122282030482971486595806729252060024376255431213201660722683887027443128351788220617216592732057519544738180534498299677342073634473860497785365933551753890732704849174174382911305446910359292401745161056717880252545397564100111904992901085268487451234371805864937216701762199887180667114543477509484226372581595827214139131279606149479083849947194830313372279947538511701177660258826572808162676927899833902981393448955500283216717699328804358341390283102370111380458253742979692301474263204929091818477731554135223079734852860244315974771641121763338400687566844101052138477586459292671678563463035435670309419168909527309330301517189554084421145368654602341806795921502264828184663204669228532123158257865142962351848450560060305655215839501856889856260960216191012185480735310237691126724504235592333896376634365084442208431595637045068156741014887206518590041736603388860303240639194040300343905686193637215885404715883267310099012440917521268488547902539752948447348404517779002868405456187709563248028536483334250714359218174667702757638971779488547117278393886276718554387241618414521379121696544694461425413102557605690787985416268489864285641427874515233538919971988581420657446343334317506540726010996153424608206433853785623127805600719706182402722715703931326247323913783583772594290929338885477158289282325510375531372081675230939155203119853992956273702169555638791125947559163163340831888868877251523022072543132262364488818743939797665912660075662533522740535801410338105656806569542356180312183482980542342747988798820315046001563813218902638495187408617062618307589539841792229148399255294074664288573512161572160583609228409895489808444754071034663128428516917516505612091788045249985540122512876474317769137887579554687932174667404030003878276180502140147569661309855899967800418935013197866722728803769672400532522861860813150981773191758593292453112240746131038112756209639442016233766684156853473958161975281550634599941839220180277904502315811408281990953647325494402398024557244823590019703409248647148708971697393438745392547999465557139232211766238848586022624060116271963631811694136746446862931238958524818280269245855326953482900063508812711787021585956162083521196662058687862762701071340742923254462143471253291294445035999089484788758280254330227848593905043853257402933195683214578907127165514296328715455462723935985111457980741038342494784937576582300582150727216616384833635224145159364303642929514344787202778275564418793720031010617109842101205374939473950005602013347076138332869122429201485914167210415198182519284971278663310866411220909044002925320540885117772136678380121047353281439840859839657616835859960404398042813443020001837099101180426246549468854602767128828221454761573191256456141408113085847940845631459138549884398911384087129900734541328760551662141224048247377674137581174866119832391461005352542461086583306143937155476353360226202619815852702269865190085484789677888719916280499187577598755934535045416230696447203147072168531305639928286473752542188633916569787415218435519859654882680091302870359366097214794172424629460974339628537443872222923550463137914037792793540695360993660601594170890504203262385727413546163570853437413769029230325863563775014060936148522237903242976328641200241755424050447651767295306666462237540620094808970132882121276280258985448738046955449784191707925736324580857354161351427528471712351020388897559311647023168155140800142291377179799469121618964731179849678370261680417473011961546183817991507794824425684226297647290078336890503894267128856818098084645181564478582556682163089487969097153465885582944827814181440906036969184496829363024859437450205387706480045639481721597826110914027424587658357865864126585114465335625713852661723345317108161842211717453429037741905958250457913885880466032541392031764118852689628721157855722553725918462557019745576110504379186818991226815514602838169354285894556828241316774921893180836064621100661301725062586433836714417475796088413042099491752884203424189436775959902427724689459951812775316378160493816554464988576977488171163921911022558947532983469425962061264915834098315864221565941568068636302546273830383773796100921479061514208812099814913372883904912713641630980655368912785177233103079162602849248767511966857289725145384973532726555500934484805889749149275776227858475612203718902702905089943821677319661106348509096377925933894920990743381800068229401623270290063215448716303595028415038509414837863690681237515259671008116439705854329404315068521349703366772258998764736831037933259055168816100113535404273960809069805307451149655630095964405783937357467508042811588633976408582116320553828469645561577638734659493281204274235395693929725281612923755058814584422164379102783237944691591320128958049537247743244017555006121060851450877649396745498935076941644173827803082544448560629543787195072214792137544841135784754918738699139269657698132800062102151676195694259228257142957764789779462099412176564882048937542440927505711677655941657303524852966066003256543854063129759942426538820939865477188013138569720365164761656171825911742446462533034739047201722581319563624557227011740889686651182309792052656122941733028706963416901516931456440957877241704269568765412603835020192329977805072252234198810142064430475148277913906961467605394679307338530173206178230892256318096354373030674433054337284761621290543414301809266762748674539324782739314577158275730734364541242459908568399571585705608877223184242797942562795932673100313010659553424278775813731188671224362646678087594638731879298190665404390182786364808515891752910949902790234340645629869018177274581728891731606710038309461687003564496878422102280623149029991124511569861591022724974624267862167936430801409799862668617530131265149560009446549999078550403945894971406956033109502471301992736133999070512038869806843388522041679069834735504137843825067178189306948402177748421970550162587225915292036901159679721066861298612983236192974386406034001870814440154961306786028592314130612382358374996075924766449709641038087885225273404988207767209008650446134174712817298885622392611803726681165517179194424518904581672603184648713276065979501744562413253553078217669262364389873381373942206412235799203086803938252178328005940090715603851067315538538854259358776459792304567395962649438389380723048644186556682465291456998888565489208850383692162384525456579875864621850153386765071882274055789858276205688707253262075656538476464908500203346798540240518635271862271753753875566750446941340269413421180715155267048718628666558314115420028577745696691369109447014325861166806960362033309162368675211847209580345647789310738989306281202923503536030627319940153403652286255534643411602459656578967146924754356812950340399587604082060852839694978596357063725349238776989964854184392687339750074726478261755488563837285179292272288811215901563282537346467485346640408984681910308052981025321287028978229752185311937158564473677384122419856718967183667603779278600579298835850460864132190468275502973692619344069063187255597170636882883220360871462493601660213035697356388076978002964074275902500035741075125070269488312077450926284093632240431856876642826384094627810693315027333110520213192495855145190880212731229565572627631787546480287699672845903760862141512980033070753789002783516858161612527788817636679842251201355179819579411658776192797679744181333698774814502915047896567396858476312793487995538206421557277619175808401936874005987685631495663576771628900375415458821446473570536002599367981409954987552480360347784009511788706057443055391998746332382035354680192130246682890383460033144719270004146138323137222255162964080313105047038473791285759050879308847314888361632215037879001712667491340047278653005681583950056177436380136169840561718919411939696959544880319217690363835529868325501106002557258372407258961792522169197007897714476197489227814308203449782090786187058347860252935835913390823605575238340484926181030465262731093347645055129909895901489845572377479294311079297914731857553647532495835075216552620889879133986196878564964742591391286781249336485725154162276297363479071916314998371380110901606797311783881055055708288797151105255207683850103049373832081278604084973696231615244758579897401729836834637265375781059072993339521363297102664379786562929604838697211980890117840965205406724672334577140434292025399414494113202732812194027504606941288703139600207902589229730486481341834215837145181851188747175694263594836126794028970992423623714357514159395523633101424434839469676071554469430633605811603910177638428825120093987809169857831730089127592090018355140209753318465810098357042893324803885701841196435388945468795691165811057483872993620680566375296749887868984214495978007748759272414917830446107695781678857379698580257567629209539791855001091249989418137766240991848025395761365426144901502867155610700069336174500336992549076808423021951094058763649523800438605576922973968420421984506215784397107359160485912302566380990413506064326164414988595236204549406752668350966708702407200942974356290732566893278132598643433844063795416276977144926517011629554216668610330834161082958469287391638865358129675032667099893424394023273847034680429776715842674920886699198360401775250548574362635300172973339529446353812065282130089762067619562945219807879889350015768024320656740392235324269024855372316395739585321516015959203387662672668257084245015887125235447945450760386126901821072392473004463731580889670973791892684917368138325648261063471208688209979861583992013288416046908063446182556409410007403709667476831613402496768958310602970492780657958553750796701449638797981959073467729819348210076554414779546842171108473848678720128824593459104835752067960000892574664757764577950590176515133986642219550411198944716257171445920983810492307026773643382218017118353311374805956584342366557669263117056422617179907905180819648581509022913825900943277258572249860238618696872437102074481547271194733775860998788089852893599446690408713637560676504617802378511631022351290191822925366310270243997885556600703077182472741089082770572878631488149933315562904570589656560045115537688034045852067302024860132912131255249928634510973638802759993692998072804444199435848499135051684134904894506654810382313254560262342821898636731373084338386478043487881004061861116998534057054372148095714918841539041953092491516020004946261289395687953208927240151144990618992889654431999542039927539185403331273896662578756275836283704561027841059696644396489296735043850702478631261360268368478027871698330774186886413114953145186729495769996340773753676301207669481272439788005064062963295790877571995720577397049731048736693039603878032317356282735359754197986749107405603797573713994961861106594199731307380833270590749716347064046911407704082735325537536682890038471840709164615895121675657254213776586109856097743433734424529177972872067625088175687535256624519568279303566570504603035759410058366702069229796538910280358976644154142912234942748327543454945289997702039620133303804046691979360769092460903656110315267485506360204943165909464120078876389181821387111493998172248441048862597899518089633775733584323426459894378819605262046933812629051882514526722429964156037077714524475942920390649159419657311910749611884141201802556198322245205971959780966552497163509409013182490802860743979067872952057396887843678109191458939385629274870110732267701654953464332227076782199251959955631364449106702148246085653527239479749014658209865819398722893093531119543879880691938869093947501618398512787037849976232723546679243894465030117783856342893617737751669942233872660437124238037673409882242162086881488311291481602620175095189053195118024581638825297619173065147922798965343557602037907111207695278627709851070322208834052285391963432290909250754851583266068221120427431004500354445081251109389481269998681519002096642374471530051857525103539064829345757879364492191806008203344808563564818293176157507581024941937963937377857847389155176938341790968743908397174222419351886256416292874282829618710776401537662724364727236961080775712739800175771701210691348240508654032649928778387000947044257805862504171820327541821725851812717857382981462687421480041290231694787662624025632071049476891647610254256102028079323189199465833766949421956034052321446865830169609234272030185169058940740189739613849573043687159339164224600863533568928009779946588779712885181407471693155959451063538342080110239583691852081636385016617114980860449474063553683764454800945026360056559762539872775164534272289343201318745208594992894392803833511145794168116271885358550096637506183311198639297693595168826075960021265868895207180687642969708761567604161881541460934568678115988313011743083047332461688315184094330142205516684307943173010727060184570570889679948229514988144914206942383639397294159711041200313486740274846719328812172481227787256433289663766358606949424232698646159741260204635896201239878298172982626445232677322439955079520227508453886841474122665938888102685096779137747919008199054187724399942688177996295049424777488288178151122669127594327467536553980965430624937209903177202076372823257417458529282788906523460668404208893050932150540326495752619350502674360508145113701358202293384550892149208569869563191126398616656198543289257002586739138712254969425707174548842089638551071947603133082503286354884228436981457018835333083532675460725889400399528250776502683667314346632598706534338377693746007841205032855236220050599175837255957698399122839448657749028923845807336955325552090468618092273522585761615206764394916225666253348833094081335526930001921402083865292376459405725784659673334208734927423386330952369053820204402593995586353615427380921140818784180933881217558941897841662588854168007053693255811353374564629281111981043760962433169495471661552784259353096526732522099073919398387638805463327640231837616315555621260619707557675700343848058421133035462800627162526175794115694448764229163199155758310058291214187657177451757046399545690801660207507849023472631060040190418862134226254757904056628124385713491659546048359828634151211207806854173016783057182392915895664357846885292065666258403437888673110802762939417684186346162245141230065667025875473756702051119413916456975929410173358337407974812912423123702177743525505130279320083749782866941666899414802241239238400891255431661712766925891282108463992253847088889716270339730737261267355263675190770070739847444885368924607457123971362107288263747425707883878257992308959706730129633259003133293932224854726716480770787349754829179748944730648823620140187217030485662637365002400330189969430996402223086901182610571415572051100007318144228474718621283550830031397822461045613369116444100299914943930513365277539187783126494107373694036541926719175040173185043400291954218072858273778852503959947451446452439448656146306031036282174829859269509968477172755172098291558845002350582490735387943083249489429098455946968746692370386389082461794887849022516194454625137866483500693464482397209331467381903407372765783866187203866594648120176244851329641802088694421362220729797584609065596243300103954115741142455568252800857754193722860835041912086994129268005743083287034673205803211968520545424602095811372169733544780010023316913975716951041883631290580702381650221578816469070909363876271168822514030602652815054156729279202179296171069208654051011888986398350059241320715733031949759340693514935796613831522162754555252793296341485059472164907942294820052265591400322580041484078388224288548753009779641348178571331743357248056306918299664042305288511117756097586172994295731568889675482484778325410330757748441368398111822063138923168363838219963730013475119419270724422606080700735376357192148993111298024707146595956138332576232363561013726540620963809580933655946782723965825602994452501133662419841911406009889677207865671147077327598122426669415317303111684649049630462168676437002186103086696618556693465757927415833317085973747226159576622529969903890910614701806632779835032785214897453545236267158592100127932568703639434604841784148849932416238809821395880108409324669043887409452525654757727146620812674241547614528530299828253766876833411678597054872643868905271426513484958579084933546522505504097791933610874013194678062187412522105380023945654938469434253801796306410796064122203964100424549823284384283794169583089403311832036214267530997679174453221908007009917964893975757314417608426427065687109486385933907422884284315029770082476267905922553230144983697965209514548389575219907675161063396155006154714976006114517720727712935979251301802573681648836298783542612399429530003004549803553894520110561585217716881681629581741580641967099899712249287695792745272659143107051516352473817627584278917606279778628330430079261286417650241551953471892980341360414246279406206658538397903896319299052873654039062193920433810850931468012739945621182191212879325183519428114581315331228645546957901563800083068831150355226983617188539344122546380299554539033625773434146687164166893000582755096693876718169001294301639754724110025965722678548548904532577860029818852983893886479069449567993132915692630903194581077536197569532291390986991945365235949701717490706230492631172991981648532668731117811488748384175689167191438185938246959916726807783794049708187368389312548577519639043904231367286191419383541285080234131205218321758795454761133812920976375943378272477530832996643426828974780551963496460877962240303480244799270121588226202142341540325699431733638036746307688802110490980507405364863238269627311529706250758157810856919436563778893862895210169776255857199517738369975272337047047379254404151281855442059382847636414057747377978697693016052200612376976366050399141677778710229342253210812238756872159780756632110635681330533883019639146497147558986847810270887423034151109050421032348286926194098854282710666503376076539652899064674142142832023276493000785302869377629980990278408753787272327902673350939748370531954757111079826519335914742791460362532228694513391520865440185028106983739154878825779012463173070081640983269230581964228484184523035075334161335695164417225428124948326892367799144424508842465512836748486495819788664455178352083053674101671883760399906329427771372767773702764658227684139765543803316289121839147977172029763909222286172715599453413921869485790395670272200856285714294781338656968006770966443477910450621976897972581699267951825597259225265336153422801938998106664105558825097769627923156184671231018546764900836656043015373114276670673899941097585796795304084767758558417202721159267710612218989293187035134663387567574974465376447998805416700224811579026014879502362482819766708330457710714159374060424802965115931725577517881816552061442340123942935898148080300409181581938015329855503704806373717688851882186803975809699703979764777388338548465607561967538051986889958464148816378341549291384434099844944494209188667222201611376574110301932133688238914606281647881383763230953250970753802258685496580578349994275382380203843024755729181950830264252906117338963655566762605609705187283186537773129911596352116956650054995479231546171024924029982456025750332491491846146394907406328165034575464208030860840774619388749350260487567430523971261308764398484941506434419337984704428856209084969574932625033986692332732241105262554601947667732524209884769841353883630930179908165169436937679125282395031172824997373386774358376814854211451750491539768800344813769256292346651825886147546764960061017893645093261550356784353477054601785246870467412684354426012789532913681776117471217249617871404282602548886270804280192514210426804798785192003750016131848452540065055017363190594687986764891649083613199922930282592278063328061660675922012244908424440962888967115763341061512029555136924707611664610188338353074704037628050090708262451252232364420317175841626247511875271363270753408037102109731321785678143338056046052637109391191571612965201311406106396150498886547980977114274257582715831328466085339276613945027603237591422782538538120638278296641856435193171086515456699801433768329774860796831610819366290039914449236127697700767473012842045095174648422700835055360746764445107673780246129140354540227389438169015529355914128353820197746456983687005935301860052333860669952393578102006074382033572605518537196539230999351800823034488842031145783674080424776386316127749777753447724379708502875696114609107332197524750268511073224826015370973234214433536112840117758545842495030878150255481841599447728872591007270426745336485534643356773979554984299210388995710457267216678139358569089938665266383253794256765282538696099998611611519331687686833279945410495770003448091260153545170255204536157822403855470176904172817941343837661286021680315764342367794369343589969335387734434143816093321058139254941322392419850697695220936240171251373653349183106145981091574218865026459722590692749936934916238381520714057830702384503091133980364221471950636322119754299273967107888161292580784681399848424832962719613061085075523343806773252940676575789168530286597979949622814358417480412862754856968227798683002428133545758415228642244903576294720547795741001447065473167189455466272122098053284632665947083117754328621701111326801264424571557653669139273477722673845457953317502745796715685934795597547821380525689559251591472275863483197804025043097113898605281454354700077464480261455907033542156663617893273547037743305870837805242499313267748917995379116599023734852700651445728826942979240456959680700251411201268331618708977819350943520493830187304040265061418362165429382503765476175081146585091268578119200747961378562385396774312403724709936027487177925719789196812691807391140698917844833566481604833702480787337012284249235597723999882471465162486946677969747889048546185004867786465632801158141244677492290196717226887958164359510422442813648109151556734781581316395676372563428262457366160899430717888991665033556114713222020580206177461536263560558359551150618420652416986345766747046271464696039313089111139536995288706566168716325770155587758992016961635406495457863441394832294758311126370727380566592442616486728300020076574057847942807304227141230711112930724249045374405398159837877782363264345979188875008237153505828304967243727940336116905278808001512213041684843510868090795847995486931159158873733810903879585052106956498184439791256962961710078188096732418812643823843705219038254178918490965743293353124604559748045135890257292698961806378117719928366971648798736258883900987153181151874453282043110559989373209060511566891884823308870806018976013289626975873194802260667743213162251878453029238871750864843176209964768912255570889053815717220276237192752197062760552900164560562057337802418449891253070030634171151932513299295098366846109460291299105156375247708638305355643724723435781644574278261678910200356178299412014427134727327686148654521032889830307650962436156424261296863882265380172715424737660371744203779241048879977799136151475747822803935647781393075487001568934818636101146700148723258183097962101440573439691216192250866755229821223919234428065196375021443381107411128135834162049448011277270226506364191538362375673101806528763091857998437893584195904799637338518908121635433125164711012704167624815911730619943508421726048702505696152048558226060082550171638268200245462393955801285252719986955162096177770515586445437199243259854752314957777585434312092496669429968193788405380618850972823305789015685237076723150688071733195342549469386254329552691306913646244152778986711677255555322850824644472086842463985601684431190482735019264597630442059805980973636265825567471252663374820091792899782590962552142004563913475775868965802513307023043479838239440262480655755385545391817083978054803913750072083363283097361037007479208831872800579706664093602648862900348203584109570228337167469820021164770571076655927438234618398271851694131200738514462191798494230558860747978084142945017790760783309804305285825117975976829701403984076166518574482708627231847977310246418274427752685503058267913223748688756525654282386898641881204349269498154853040624919188246351335575633614822399912992559848798069038158087225279792152195835038238388952480709940884413583110791025739485602827931457475674509980215476637597568926521999638027596451901601817288452507708626218381057219761851482786520231263127497702584525741356092300280589702386883740903006231734947817962887589979079672754030666187848225417526182392334822926703048228566956777910720699147487997685524202202253176662052446053417629672827728844824529346930593185120245802502087040062031363500203407797824347627835483516537759250836337190459134602458919232452768665587631500239853470420961542042236383488662920407576162284298520176991953679801834571300296243982084397168701328684476880288760412863400036401658271696683632414867563341845654892734412100662777834262108926636441739896549716704655886916357917368624229343181318152550727758519806769425429940487162691604513314735132057308501702752709887558524663208519984136319736594155026043584293309684464922014340444940771475005627722268891760577731507183485137512448253415929936887570728162342098183650320536379189923007363023104494635382101260406929590212976881591334149445829132402563368126497037742484707096350360880995756018859370282436874526582496787212035623322340620508639606801271014978630643175219154436085494130382504833409585721926142849207239289715774323145307187574089318015159525594456205118799303417754369801322491106257649938024260712895551463102076734125886936045884817391707959671460797171919438450790699948898383608108759644350957752669170718755297353296874475651644128408639769396760255189982771912338452204487985403056205218688740739353204612475764045777351212788396412843023117842497307511352319375276257557537695384913729438013366545051270159869276910772818802749486011649506877855160738119126424799119047653747069786657973675134878335029578689949443532657590087870326248441449947770401793975794416530901422271429547604749280624894345561889773756367965477469447042872778672193674639496922765521729674534128381662494072412383216184570010296267321371055821248349808481698308459886545769166941294459412603927911921681250906624948872717492202313873814450271493749745678629026819253699724623133036459699554103684233860137496526614684057740092078941234807724737102724896401774082300103713241616538121950199092527080070614957104549964881499697516776550367736231771761854332969922851137141937837371866903049046485204574929994939310848068333973880486316612220735213178666012030118596717032241172363220908136913536783747353888681976012690737894916165168261881346454723435126864648722212966849977447171007823169814293798227566563371420772926695082226821643563780131510351677270785236037162136774756886655402027710109326111696676838853664053546995390427345481426266534096124606598846309812256091235017466736347178755381533138741725605790638717750062047406789129039539248607563788202754178648412817441962515339638426995328577441153643086942304954306397716140162368122843627093265168293818281534828270268195489019961049604026379269126090452352794684695893145193706769708108163771623698397701131717512011634258668218967235957375622662171980851603107959644857951338256955185350610939615984513153757684061208697326647892296730386528562725602726234757388602141636816956159765539961587899855394866140325617779511050411751262815154764396109411674256902630452001800382596679529530590617516263410829703031266011205974343253229196142759976363089409340854132491764968973822609430860967748859934381435025290393606716307553735663538509528720903064849023675730795465453150493030128943343379841782631745092162620502077936454766572625658978947122723076444623641332069895675565620799763999181433234162359116553397431615975289799920239743487738227873262296029721032950792391394708725516797314931443348309236702802677826225618904898336487354957441477383751718460861026351888367101563457251679944599606772183082439904721854447923207294528319502655475600007593387970294577164240878072478524197762537737238878661812449430470570068942011089979411846042222010526504158271919341666668918406016477092134614979732852671749782252518618818568006303196459281850960054131332161942851806463743585204503200544060646050819088484628816521742564700809729058628315426206827186835974598905847118402212737792566879696901699924037529293334210906624718783636812792508531613605897068422473697379400480171113155225269739098780334571245281036927875088244259982422229363551221026870693987071518160410496617922276130149815863485822694408463355836403678699034672836428340221226186430995791552425395019857531380992512611403407710544650553032928859454832827633097964050669348738398663631422880866164997206607415500613814740792047391788622097112676103898229223637400713138295808417190651540377511114915578740660256484583443210730762415130066471150126561028341451494987630918071620775894579415748041042702051474172824663138960587443476876749421077461034285694015269265364838665984958269030585298653862501569228858410178857998337672141098576288417814299264966966757115943869368687521454465451091209199405185895797093375315127968964561253155147692993356802710666458486316477917850507074298093013112433304543718491135297696570746088285073840978600945238139492425280419818345011402757567354086892746036504774114523786386681578237212090403933010089710199162841822075621336585555665561413484418074945496762063635676990239150944123777083429928576097321584044069809959457632851852328992194259943474195537926130909525860624192844694499445388718451223707603832047407439696003832565829310354976156349290620304179389456399373783629081954468513285730825762024445314788634238173510926799036285527866737599362664785821189168764817905135046218034833506240785148552228419685136989939101657509566407817555674856908672052394067716045326581975612556987621840194768166804305469409951053370701343603649310626061296685465217419415107318776363427629359096330053064036128212907215452361528671871415232832286131940698607884508663468514350605286362699454702659330557446116540088013282689891529712174284095326291854689321263524938637852222836076923049906805050830711927475139732092243961940004847424080632132765282700979512993909062272099695885377732053342185833932242852182300592805078318725808731276021697175830253766165666594461162860298647771324386821446245636556262838192580978314942471367002911665283697308357289746465721664773537574657941764649119539329290873074651949197633945151878662290006752077626649476955219589786768108243542136064667157826961448053583758768160296160754801349380702211922187157948547605202469392233562223857982292404912831052165321484406089944680108636532522192203673183182213585657291046843929069079335620248849797364542229698844759464610349916365982790113577424823910310400801367756347324815353053262839386718193530284022766221218264702738383094104004271814746713072810140735504882033256522560936932664112069306466881360080638771188093878844819696407732612627303571815371772930767197908133436004767562155212178492869780475517878242842113132328169798176447905460160840878996555361804370468334123741716592665777002943190819923141636050520164547666024583071275521244682562689436770229866001517351915447784469232175128552284866458403974998805687571499757925707070647366338896666248622447162195893973808313700845289093921042253399917558367272680933674787721859054538160397403950161803594254420996094492682427292767538940723396899085628426676486857415083251646510030330625155006061549140323463028142797157940220691173749039519539832796374718695770891686275924560646937355657257396790472132797297802406449071815266615791902340248681521280425875147664021402751880974522896189220470902648182733313399640682456444436238465191177326705089731984417794688950953911875170850733956489466668081479127786632516361177478574697879073313800392521826218206884125180664832875061465751524289550290882127250687247057168257382665524116278037072290476743842561982525635557310606043082055891217793878741464238380174601825359128962547396670051670436288983044267269522010709806727585616979774187432927928256993475176249844841255972403791702986152483028445975884975897256522761412809538484039557387219004077402720130211614205971382525187410015095260169743279228122212354742368446897251302292697958933825891823570601519825020352370008412512799019825332735788808415446445909567444176421813253336173460960060496357376554622380052779234896275338497421752229451743520224373931391185044469326910036854169776796874140531260372272834274632591778679067197925592317334501585978685165868127279499773929723271236069408863027637401912400681920600909516857978520704657967366460108820771400811356067415221215786199396579716440606997125395169805799152576026970993955185942310290326951038653426040858830048872298213398991164847609375261118885297195284852658619498691981342152051687488638516303464041888625686326790927784071173466022857075837278816782797409738711290352474927531191532308344227969342569038696876867190234939263136577546804666544487179578477797092215689964383596908399000082755789678296763604355068173662713259225058707761780156848985974010149611858917012930137253876954344380829895534516739952176762027230391213487584731244025286195849739231813915492366453318399337750733391140075180936266142840502850152006229563064468668986205204618486343844880882467897002590410547709611716443601915207596504502167205690792996934991405523248928691821872760034457567525378438843085929004595175107968631523399181197347374068942354066800303568602927187721860116775410948738098909847575383729594411935313407884595773395644909077906159044753846029036935110029290018289740586823513931509074559200722601764642589917181523143642964268743382112294079293818498722787563880251594411385789821772365001963981877971748959195195013150644944450761294360554920334098697361623862157943069148779412893119659058297136685970545422774303939459813882427923294224973913944363279562772685250217519828574615747419632395545781688263352995824235847646886034207223611798441790843670477505398964936514709791671433203186222306156542524335186709919193152796588021774204633513653514221307574312714354852929509976972304949652273867242909410691397535744657477392126999110825957471502295007185165823906505749491059923061445706006057174557503064952852398481125943064315022180418296458377801645892696827478467733176798221539730738566304530097894633803127787722895953119838173510201131891506128784046829153647597603748602217761730958008865211630115777469681486035999607394761453998999746120252996609508999991587337276890638125356383669228609269073365577486386838117828458799893003942513049477230163226874415910584982293937695318187180170809006105291242008906618713543956716955264994926991008226772344819694932015533913160864907807250031827168759793868024920324794341771993575078450402367318868386998082558716621232869968010341180290192907002235618759398104653489172009350407490742874376713925952978388042507719456734981957700572191341055798448542646706356405024428787456719739809038859906205712092207056955435356963079854292594222072054310782216632745744141342250339028434294492027636506327275383020659939365903079313058888173517890306609418859284515125037921451188761611504663193808874701604687464033031127208793204152284949788225288967108866685935783920449390200475073383310423691143705517578806117432899475440830409418322674938529741024696712370208477981807585171145141268958302461930718439843820504271277753804828857401744334332323469920446101094677722156516130801597675629542401200855722112309994676221503452845241303202834865590639001090763340415774975239802125166497715764744793356996529604369729759019489843316681748105244737034732271868319167078873846399973393091330829271223409133363493844472279768948060579243125450110220157283426906422452043716181242129414818960805633472135103001514035667400779239583100313756327631840163481864833661081905237921892235332326893336714888791993059203228551138473733880820354769579509583335530777348903464074070500439919364790553728168957326228902306314339300757130860873058270829228080944530125126361096317618681549491705782723989549419178971656148567233305001234832590736174684625052885951007863850187944637328513022052653615502737336545292499004225713622314777962008900754030082073659979704600838158730607343670241147241407913652248097985988798968204221648794693196029588165052625436966818297005287126184404664526844142557386048850876233584388251945767945492971658477842484183205697608562475367502239307854735606440015533905758668550928581836574291137231406066032774479796104779435802905772129174221069036200507358953371964907063064934794864582736507716272188729004181330037710634406463482305565890061223596299405594276370929121777576691155853733841542510828808576261140525103927386059780844927078532785448377719622583038673829922231261297563812512700471927949194874885815883156977940120502571460043160827350592262558138215412880635396354836978257797720450224327705927334993585266475407247709672063581533231715584217871610175479200330645896386872050496603841476145102163524301460506074462542695320597591171016360481508190173348254946160777750795467177580800193860428122186648834351214154448348844719990427838742125769730033178623972513206634403641504637466501791086373507673234782810135858989037762189036838845536833006693083648008564153039296133857269342283218385054089040014652238072359585946571603627348646250860918782230737618970191678589102682141904020975687945254250906059747789366271055364903710396583094321380440080741824626468572746108000386801337931408444329665373174102872054772699104373240527306409834046910031339202829912440747693002954670567462426193478545528881069602435003577466261965390552222794160871446576474882908788951127855638164725705126642137484710850325359395850178200479329441578829977832395823521263644836866713779615439320589971236018942893732180846381222936805849433850402529997117640342940616115672222319576842641461996303831149336473973629637889758755107220002093495634094892761498644232256271867399363003713139346715959051908101659126814774091974740333150108450093184402042406059644315326651018105643318563223686756786994031002380974686247863897425983963709805615683999618547036930778522781238371503557762025414670193796190779003826232159218232990793454573482666374243280064698610316793347857472712387587086873582944064291792862630496735421862776328925776990889207553019378411185509110943304734929807037429752485569362695171544068260732112535887338221141717279139892611148182442746917844953718902223407883074753574078424947271609222467604444138919251862218934971886533393383846251526812460178313490827508473329109460271456267007186187766920311680967495707454161311774823679953880828412713916470372001751206754273333315239923563218391175985919457116133262363329368732240426682913092907831302392603704767658203355675540152786300869292728661378755188475560714556099550530681224452647486734949936659123455145218798998075981956402329122501506201260151018181905703757986276058735669289156625798360567412664834339339833692502808424250277489296163979903859651480718564986673713222510852481215279985924427240918408461335543058046412948704397185059439582975265269442911706769619067134833980644746932518159791216871092901457010403040946584431038173161402791898762382359689104078722228987564488624026578484478210865955895029962531402412907357259373991279402219107476581470624195649147994922275284494493188170489113760591752687502498060561341710399519898156356850956480274652776248991041520115094962797118284098296093991118888462639328677727049255682500024957702223480149838065691174037164875495643767686905970774110908874411707480308699716221311247810211563910434763127875575598133788047950171625574232851595010783021724525496145576991045091857399375142056362914690508362082661562041364281564830943494050371671499025902168132884567980814116203046520050758723642112330605596396071425008625428519339389120228226421028106957230898953087899154268917883754933087779505157563850997822804798791155157659809237381206047596929590655692789533415498947680590997213705978720623010792397856161121361578662992669410764511665592987183180246382568790495890364430971179244468215728642028654435116450382350897972786367363200490281268708976335568764966667493135643681578183632583765175177500349751158603441232682153310718566082973995962248655186919236349844888276573631912094201922327444054455581991999072975286024228540012882114803317182022202984093365680310789556064125181176700956601441792083795448535778940219821331194423558427439360563703875560935080279574873963491946611995583811168634372388954818346283390101795723616152564510105957531469610479890422263825213694860278670411249632738035494091761746915852870611344083416547395907620353839073321423625474768355815517446248472788995343080564899367768340343251917976437509118118852870580779781060467458062955475510062387002693158134730746752026447489704080624822484864385673718067586077390587365636358315123609807165137412709079501814162541204995098233623274531461282129365762085440383239642868281234001359980802031551708093510807455132388386148656960232758672063009774520827659287639297607149533335259781273785169070291772916817621904275040007257964284497150777056105364501747328060052791389617688910980117519861303270865761734474764033376295671979889134595814749230037015236227041900891640675862358040357930793899325017622356398915356874822878350598355305850448153142491254790533568384981663776079117088011691535157237943822357417898998455008823315558318889760502530044773696003388172104310699072356940814525299897001006852126680066449709575552311195495081741910734363722288965196691659586975472394958850758570128791465230507738113979764812870358324546917078740974223889537468783250191718009895528601988442817802751709295731657723432787331989674610411436465818599908562173655169865166906606570296758736961792296498575209459820731158102693812887608402175669475473047484900504496480637639760292441006295234931434147895774594184207395070731334920254947540570094396152055561827197183825302200689786218691719876457562039248413415757225749935063861676341505110139656848765205526180576026905669904697036105239651722831549492822425372556311611585500794367666560910181236386278590800839523508412511469241094031393357111341741456935536903574670220906533146170385284281478319081512022195708337184224189368443246190109958397824406747202837448166722575121619212386949459160544732014880449792299610335162734096634784786672611829203871983132774821250291725962637463087803680820208340757805289592976373777706695386599942486934252912119109284917905407620342410322843651776720713408465785539413597818167080463040074483054798222619086554240657048280811300915462946146674767221092545404840769966187802442588658232112063527521879079794712380181997745625220747890167789411316622187487810703291027485627299106107252746596296928201569371518906744617583121402978679922112921479902141209191263932617322814471735866298098260341837737168458707505616855570507698037244155804733818238301716035933702895553986764912529845203941915532595718170438792231069718099309840735079590967925737305916433765613118373348212233603428691602649565999319894472838365062848417860617300713124032329527015649911088386241187610080837487166648005728995862238411848583230562755707504085570169938550348034207161126720101324273854499968789121340103702706040569700009742866739134081084557120900405538683828992011769703965651531685261307767616148529753014448515582911586516557821007979475194986022121376264302770546651755917854818467443275137411959148882470624944870853281776146766705217720319960982187487564220398771103448563693287619862440844281585718946225947577342769523220276212945945602802436372556926730560517675856271343118236283527098727119054113625730704694066040711485862872195703902867879776002606940092952529207299427066518751514572435392452990660692803115365303173058827745648795941081495576205895986364285844815829940983803389674359534990904728156935122389155645951476798177205873912010925158225682192477754187990984053514590912086188124387724779701589356578218513369148476331938653318282664859273167801786669890235121306900772107196163325239267924665863841640702761942783513812526545674883647553461842467520472568172229222055650778451512720236005140957918025721650070316739225273241940949532465552161594958418267664147663968544940998517722258452688355546378232993013027499717939422161977488704008791415129924529663879761167443675408268401765988916519310499465366352556817356471166992346187144807244570447671970778428929106823937809360544617422153143221741283886863549256291651339124636726097716570252478205168224959445878685423025623996091062917835567904892952720510376457070043655052178661478316415512211820042797629133506705320705248322030395796615286108835184473317323233507571234606779697532187802307278579574127005911046379543241482909668562400598993853888907085352446748036093921526887784521338064219407974146536824955053649954752866441267595839298593622821784711091970061346273984941468797936581910142649532460245729376678372462119775659196036332144941919658531211229875997908577797145226122870241073683201474737729515414130672383790662016303530781208257456843270649730218595550139044823056920929651904829007620506365629441223172925510808276123319888560373435824519376936600792115672260196130784421290099466548206767331250025289874715920496183402307759781745276776938941687516879894806790191608854384036345861272076624569551562664319406513826494799039421037635110186451815438245766006401819430250678322117968980965339528282399661274707189845032831647926660525007040800357859568473691650104493690393039841062941095972963216313933990581000713856735998886058721640876214541986038174082840553347366346222797639149215905961711513647625933444718956137883696228374291509484674025036189423096035234036637261810240904244932889218949754094584946803657987547514038800928531343238130106262352508276591747429076327333367994362722815438961891500230479218196022091477970282061888022653915230917772063449179462413359217425798911605591237152306070592075392489666687817312341166123598544435131110460962915253794992394570636702088484954662413956411161260804909719622012976581122656721688180782976936522319511787518894087256052009317442140831684587980174574489168077546962557988187762652933172704844571780392472176751553465938796804299712912534227504247661031361788405061330432951814500063972348893373687821430805012225901215865125078022305761130852371426581176008358995995214101790490131154787729018640788010597998428586965774928994206393230725019200831676648789008529885427120798202760259286470585223094540943651282048265956581008899750925846969620673538985061184594942932237631976639497623442514069865483281498757104248389868117036193597669795681018032838397968623775884021773809006706330558753686458304459114223078898066615423573396315282898419804700333196369342212714800084374479380097261428089697259718758717422962105911241714636233251276576895042959036573700765706913318335327803271762892178638262152375415773384327159218289306713669751586756719476093263902798300571670523657032370286344230732275393975514601731832760438940658130411847573252042807810793106103159443276644075969789084478757548089449414187669543959964538622812805423020354171549334985653861942970339722902811410136553784683462928593028044943327514125828178052753287732018639580177707523838761128744833618758068437464975441056187172730809494355386920892444739750705330470273637777819483410839594832799015518706995977191535227784311349949417581885438104786069383932994658652219635033106993003892440762003959381133487205134718524335515730941892947404583369256489180771732198104701833087466631682220652852453651347532989190396876762225691122240373788635058799438731437339593956488458214648996024088389679155681448777516387718704087045120135733830261794914623286317313404311731987082635354466553599312089819796507909604202340933943036405123729853901825829274944228253873358671340705485736954096234651787220945234969596248196468026452237793247202700184206831455483456357111450233083496700992411650643616483708771985634635784450565703373910397283067030637307094717873291372494251882195063767264927407984539752784576627903622697529034697059614989247000994763814009497407538038747740736471846417738986414255269408519976716291718989526848328701211865122043969077981703799544873273668524653408743082557746497719738320689752221577514783810333041282551267834217855287923958754149901405685939677224533598953036828268351485574487203264283865101372471239563425904476200897790737023749754890615275774607131663360231636281390889642177838733324056292581329094267047214038210664092213079274463008053109168699435244634667284943252443187681438346427229663126974771354299605388750270618669597745080991987875129787457272379275095566718090912619491660226705876999859682232532557664240747137089277824918683329543861027727059879687831011298823787606233570086387076193529434807692182648402357486864163874740808090146453668216340291337630724278657724922120538013779559092317351724559210100510052075457549742141539202744740381078331043923138284813925068924306681163132806807673686670309817564454818226234997826870170634674827539243093336399803815103129082439030379797612520043141315875928562902769279923058851751400947858410638634174551037250280779192110646757653777369295364761731969304031513738808644952589395422565190163971442196928990795690527416260684203092706933187871499625723654905806467066723466419025283418173001208190731051674566056169321648144973838850674247611542263006971265062283545651090520981364696176122842615294764802745703323174521735787993327287004487093399792261019849710175077085103561364689108112397159181709534171987610335435277472562867057040829792112480405337423586247608738317875773544841043153345203363397889113652344152683916670018181539824681400568022360150488994565938540546740853349225064386297345124518742958533621749496725758219287926913158455580036679067734259022406442484830670066761526003376074452401275780883289943849541446091517051946244984686539053796101356377122282813467512527372449882828872803878365339630779858570786349871082347100546968124136894297536426209432628898749233532619619337734313132134487033808404215161697405588476151900242902867285498221713172861801189779668962585760427350500105724698770605423016306419575522992902986075510200815585721607305700995516529687533855382872926562735452055603140041641931065655958257436724297933836270253829870708159610085809761327440976703708563342934599919172209710891363773208580092410040382233492089331951897036732635014713243955566437149418836830028977864599140783814210861617998727414514767906967997216080833832929446517863341081919596416141241771238456127960843477767858715857704907185584270460202965872966515413125023702792532510669863527077378840144359851692538316993269254471355874512518543074402236521439132287365966261535925881429881844513969669334243212280565847334815049053122492733335635633089307041786566747963941158589916849857388683811091028268379872275616529003692664624416616283325754539456488057808917980552020750506285511869179096332479422054755962071893561286619838612324573718768935524638288069182649047189435956944590006317276249811754329001323779081487983420417424736893337386521381664891326510021300348602391941950562544728118256224779738061923608396788406222925531080039896859901992851165518120481830366360146379898215492071146993655487904978302543809276793971765938290870707585029054774519029553649113836801186308697992074974609489648445621212574072010391483966388673091184673746158647215366706788946543668898017040306685410215694108412955751130985170142363168751603191797736079787965945204450431586570745468408211520413241342885593796245242352355545563820890324516120432323199386238142077173174870079220762768902294433469565970471057873011429221611743559310985007790808549102782965608082485067927024432990761356585032310889230159530867581394608247261090582626403907716103229566629601179991537984833281564280874187706306603855435881122959942769949531848244702189203019178581235741931801905013171060801922384319636398929632026128945767018891425672762260434051703184198631218764222559865395239500849094939448516849550005604883633388129334646661523392615414321318292937112947479384750830033102203274598948688431038785984485190740453068231510103219245499727786841103121882292663180285532746104749145335137625933757799677112669642820540316780626406216034853349104559707594976943764503364878558672002736182113157976093093200199076891259803332904425406773550691921956302267102071924545128184513625611810559009237278650676818086272421053713168113104645903955556348863062522962966002066482826632030590956631463127604732338027708137249140233680845452790907900642981473563542158388592160827005828625642079402321871802951481126777989176501385408969796164433776562284440322566527889263195943470612969638671031429084662362224208673461566853794223092785784818540081988801955572316793365428765280603269699977094899982766849969140446763394796353519337217009903405267413676994831010249128919463686344799775710611289693620300729420835244021987215915664724290586388716247376633430798107332806022971797802630359020528150723083950618244291246122060720316359252506198582311303771467997457742546029304892456700895828183757601469880121485812126764983302382322594190100098126349482664988824254649792676549941906900542570700988135144454780876372856446521953274584677999778280096046442624198411694390306718275236865785173618227764519904310480357647608970475126911987333902734991047527573420495559831508597904483078012672851096304694269233441990385523423374943353282406129729083016640364955017014888626252919247185925826515302329511608113296316604255511625135398168079733085909721710157104887211706865640650956383863858182853370773015190320913877302494196020180659392604518885301185218323569683875157616235739777976335422284270197430855234329941844447275269092687539171332223745430535186423496120645554431941694104292021521647887833407309816721439302949331293523818774850348130986796246701199307461651223744363224183730310956774940411488602909879814053090732746486395635208413543548802043053079857846616176422577573176796893663502596391983069945550013820070946468863105874075760541844081786697730640965227197158623513124495440473737578749447159011045146239114838508992172177930610925575037191960669307182410544879704187384761148481484572006588612677667334098966947803668264180758914599655869917915175369651606593114284009669384802275422596606665929995375281044916150707047057693359901452792726816417504335783006319709906919338047937337838342823087280155556970060367902905644219822761910669570447932917031130813888881888754882169781155794892366598390976336007924652781339586836541099100214159207141681256478177537607783423956470165518486881424285079231925069023785560300215130829844540783117153868671176430944677375260236832130740273459680162268170091972776643929884591313015661405790691743172161319720088294633052010285391325924448082214949691057404363470960516076985523125014319198603621909739822242308916938993978090910914295581869502024720272996564420476164106399980942937564798703991598142596250665439523973306817700463599514953559703298878163510490598365369159017730905367876807940759236064607694434523903723647259604307808454953237944496039117264795697810170695576096215739689247732150419266120895478582854227846115248143655483959292625299237897054272171269732386702611410649960198034032743308355817089014761605036393460966935327950460560096754234950948216300604778201986229352980811525781595697770606383052220815270922420155006647105192584620268531311691160639421999948020286722080799645837182107674577810010764258889750264198724255205824818527609213916324461717698036397658444930955125340751135990467259615498067356781230912502268243868432177981618384114011057804310723019074168834771756069420412650781181360935066131631219357830596680017192889122655559511971025361537241617937367120798279625775646585539230005250856441942780413542685002721929804832241188624337099755959690564161999364261674718706457479399834490743572720595270177810533995918914979581278495975316480099971043862443069656328016878516215932152694719612770418180630607471628273497680867343558131244394410730017846045932136601009601770611454919387978326303745115604733444807280132831815163591006487490499619474459105774948781835932831264948767685503677853447248726962707616367772971406736601900640459124960943779015672703644614900819139397231259551181661965074196199757056096695405900149560899164749733571887097374683015530834938937992940488441838588226862631984328060621635611771656882526646450539009107582242614965576171603957449291872034588758636254954545319428957860825316527184349721339245006019978883116027934717340344659723072762683893225094663644158334971977493690531470960657236982234438082582939693453458155475300704284876141815671624737114873620040873912881744406497826179154441387611815390481498930622421443162408502096425678415051198219114239242970536553192582336533423158923487885075563452199980731967502098080518580067930948421765426575301485975588469608153356338609229397898224192548883450347800600429032528428217925003081358516549872565014490870336534601077409327289977163946712057510290320235770580195995754276874302643934842836783505052536051164270847664572490669954324865938760331494649196822405741812659984362657229664561234245532348217182030044195959068125118929596739577156546025625286611018889726937174509139291741037680759808811312014442669971080846290570708403863080558246647641433914717614528779815565002253744657079269118551440739487113153660021359836813247916356247721281008923485938600291911852529016692786057393755708159610085950420891855494088035353123870360930408924822678768772305324865988591760058376556439936967699159229641045212303998506411631727197597220472462677228899834285851270603973917984477593720865395772648942832724909878821575395689026721210555410849842659434704935067110488656954295138120678753244063490047146006198712584996296622376836941383775832460048728596415798107362523742751504874703106931538804200130018105765223286605584938977535818212667848160909112696837449818388359161023100946486424539839438088367847507740932808055168574141478709168462436268332741332917737099430882132050815425536845975696595127868084165449774107367052655323902051340057218243685385124875586709666840468229815134194798906717340041007142781183191543403490398083816180188589775954160577616345148386815886996499255858552521014593774658353560383855265142234437178635455480728315580073395129854880999715288189902169612727041046005045543946059325403606245215628624068696055639511080787069547635788082960913733704768801413656710636404997214470674051246572780006158887416844847292666630364962146231149860874321849159609643025517141436832707139590089731383143786140191359826909881051822106368734483869123795690315747059752838266789929891507806635574142151691805752709493873982067275140627130284748905331647683942592346522807526084996756423475739611337987231555127257092688230467937222103864659769609058068643308008014002808312326042394253319684176407524429309200686869628396055851180352728804256651765680348570312259856776824174422319624690448861182931131548793461298746796325585821110178622725810682221608699690850704151885701990055296551443027991661974713142228062015656729877541373456913699435922414351669805083283921497915232253630449215473107137373919680439404616156000397442361406473019825495929679929365143871422467624573173109526455128719249344077522590340632630603992726388223273964342177141464220278287379598996448067847475608424110543344445742707657481251493401083632928412700380461104515732036927404290222145669567006999169013310041303149729191579927774398081313245701909531563039917547694657461654911815061563542223658362153860781954719200124655289563351180496626085712469193291393451674649018990158309101380094048032043723449620807070411974968839809543659213680849799869955437975135635009281083902208842518683572106659796944012094774979491987210746632716637634218689160068507214704757991042815379847456702159140665413063155133955973505060928982889122164778970510430436231565006074889868031843705661473510687265194449409094305892622053971434848956605300549489122889535728103633744655014923737643256145704419863710853188477081832463857943493463293980677845712029295416581287822297329514989832684416066133828803389570694553633998313497868699016861482475971500725225418456495674457205794696474738878302055337299996919830164535201819659540672208089304693401762242854894881162480153768828045067486652618053110388200959746629510766892628097545353579990600906585855536607015701892483316635305309095991101007640458766501171699199179208213956322074158532933916594645350510501172481492888950934353264710308586680991534698908162842396324166793405332161729059410062382599034837243149875161252464822416631688185210482063796261696775485400618228610065699448301778440098154265182440735292978561034223902844922375867358569738545750496439579505194574831295197708235433151469346075270607995063848941719288668455073028200114740261891618779975142587193749466574605353184768908028570186161771033970984312400791170638427077786493562228610795612090103406744387930680686241253224101461258953781741010632322640617740598395176093113010768571576014186942308602817751367217151082030348939197143375682811453590461930364151912224318553815109501912659374447774792330765147949390820072402696714048658208337670136991664499572502666467378414197336731123870013728817796188032519075237574066212481092651498617666192326890479512839574837817001586927566215594045685798377991353697343912577186351672998682449156494109146259978445860837678108419736503805631631919026724110860093337292083095631426382048610966742764112546080018959267263480768616905758871859446264480510728992251839747984274815502033067137585641219002398374629153398748569994895439281385321484129526724937712122574810250516553296486027110327036256295409557572323660943273968506444738184346137402590805206429079007462585743754033593800003603804513408014232464008454280695072423754082245626367745209662301715404167592743789571355904698745298978129048836469977403487910000796128581116568041567563648782401744654483660002038763779499985848366487027474824372541417915304744795607147445136938308782180628788047813239074878954089768336978557005925928587847056701615775148119221444559899211219187005608103610985900796423220538969575816076325155202207357241886236972680352932649440405750296446089449778173974665235292947198888063653796719541637672153139617053502409627993830667780848090255101961482943847252320232795870588963987670341000829197724147992647939303225391892854408627034465646576603491008908772726084710008139867209543214262404648593972373227250349495182651339349239109082849956426737962524397738503481121660362079668810417754316391876161908441058564463802146359458681778530125348235211587032480316670508928463598424651381961507547497168429269259608226014716057694026710924546820606736736325521124309384419777741476441371317240232400509193944883442476807186778571607346858963453291087883999632612409047392777345828622775944737475750555487934768181396559043557477178069684341240919533369728306465380189643531820245786005165275514254838591267248889180633536654532901393298094342651825826249658790140605107424603580066189072180458705040922810120269221188900843220046477981625027819442840821819604260587654565082218946166287475726580276483390443702263429356913202875137373451059357513979244682913851299616109015198416419500633587610071412511000368873052628040069218384661983059147729754686955304906827438800421956802347365975987281737612366646606557740515009126185390225307490779265249904265115952444361215544128444424241218054755824646057313385950243110864163580359406230322574628418293452206242827862837073424298016823986341205708216388754740303142934739270340537588474821607416739937191025378966270126747816628285816074244606162565948893687008140368147453516820183456423093065926234622712521952620128039160204042893706485420009926444810792842089993813684273576975438831238838210285358215141021406855773591726081058616888378600793541639318812532929746515094989949775109663866996152916884460833818576682447946039853629622858587404335262730297065632407658200338604487758855198230036677357212477202147448907210917683895488867591589136197352889649199502223087758310357224692596554162484425594902742098388542621747135879868112402159582085541726175553111726781208140653287114917516744217384431125496580534378695167264680647010072175471788219700605317009055333283544428282596934281667905646212388508827321251536647384591138690486200884215926168445991523058285782462150272868352265734270737420483814639182810329817256623015027898102073398860462491171959486858230954392293110760132870753062358074939700247103917482263957076129126325255216117586820297159789039183488473972486262014712868120423511029825403367504024440498755476485203041396991202257286836115561323020794010857253352404264116201064002288390512258060164381006789069697595546458551871160545648831960106060731303151833544566037595231970720135456535667425504449187478535249115944784882577911041038746970323468377573355484588991261623761273464675181131198948132019832827424074550434343083592246753812911915573734186837432678885822329390813764212206991146093821325693663013943507710560249229274197399920579118366722060188057937038782787880956395847585665300197066333562714290267248060694754297641207129243618744650611695146359454813801854219093914344238106300861727173726761177113188316774315223915236202677990099084447413051817990932635744826157764472424355525617168432917877781346458343823150235009851013523363145952898369853969049073896979454102152420632750194916143949893529198817979508094619819748134497525591885556288015288911950383100793663010568169016315278560845398500088698191705245252170873443126260147378980756186526813642525213544795788426331539341316692978715794883314996988421811900958887781160097297823478590302002089407821526629040796994618865994479569342970529933493896096946774756182402822852794895258881792627366576037374521913300161505988568870398742778681342461171538908000958487321092264618560342685301751181966716451780898844432644292356632695549193476633316125356404710508583728699655864749313734133265629332125694086843585883318257717215163933627715830735476334962586407961503908386951738346217646887316713566218036535939629200398068546483791176315187884793076226191759255644277470606497146923796181210476788655540899981966343495152373849316038436875300937197705170595457630986140979970545043225783869835403015864101466551806860289070741398134862161558926223360074309128193453469212158622508037000815496772662895807052840610251323803450434253085590324489755689251123906765572671376664462962917689362429756197644721435680120682409094067850079247298576698808780773449416586346822548964878841422305224873721642857727080430083288318606305982023448704865031488463519712235001006019400347876745110170137511470506722097928349523276275787746703773566915750453279975334874441939463084623497560096720437744858209781504584188804718245247501680156003555835008001818776678980743338096381365183591650318772977477421830696207778632061329592029578640733102807674092649346681766108234703094899905486827062646594266528224793282634114506593097695612161234731161094247751827026689866613044771395746498816487820740077170309484043310199886055972349903486710239309069740146384640058609156540456256922480635463292054160439370028235445232199508329592150895322291258054954221148899265340013393816190024079174569311128333649299038096784029289027075580058275499511203306214996478034083825279989787572377299602703956127917208260281101447344446306969570147738882256330660714649028862379743481285701905819113165518778529958062802224798143463331985837942918366132102855585537259197707785962134781625351510081798608134352903321679655586466613735693202768761400757737442973774227661205700940300346148168678145571854135393358494041984320595611393534112911157386625176115614619426771328103079831557387275344952300083816660528932598847868498229256436377852502606172899061321644917071509633724468241430511436990726408135402983256348861002874902329189626517459811837713260547499385364686668989239338990991921570517344606937152558234065114934929182867517995997824587044556692919884232502025137805947356596114816654671307691103452226391182161119705012524925178515304952514241870396130003619808848806935509810442262397634913757347828547298948413950081885792074139935371981824539907580863127142512654111010574325774612534248069218727686864388301668469651931990341618154959372732102846294761924808623724347593280544142597488715703710982033039752694312524598548781190816607503239832353183493797285098079867813966002204128685969227969219885756181956860754568741160453664980887095204790429813101182009856963550719716020643080531676809093160856577286998383198750249180452569087705875671659073956932440340130735633304829071958455219760891427388348554391750414506947672038529324805109456822235543742789427509008430044437871672607667646249225267624322711648303536189866348251754624493400660541738462303447796711257432325240208103544273347642330022838393299431708730150639815106415866501688313493656622736245060087604499393357285951993710840554744516870877529205582195341366729461250975564479798190699578291778563706933952328013842952646041434615676644710356623541336687309932885429036461354508675260529487924580160399359357174298427249972239200741378096494843324518778898570170210337611382328767107399101200358453931391001348340973902962652373415601759405045380140789145535508632919540313140770872558950066956641127038965922146121813507293349189305003350452715038074919031724826982840110265998429742544236526623145795387453808504393138360937904509222489965272497381280437104991355069669003054208173979300216933427426639281870091239300412603929885801182051208369926492820016568457378940411709944520711410479113950376834606788725483283099834666070483102723670802900915679636781623900419079010446132692733737050650570485212085828818348704009455682718038425997827138059740666075379488010247355611931116360616731055495653577098505608868913279347442920271046115749876490098260536764958155691445696729841187434278939359384459831469158952665689212464801728794150821977998961149211561141966080727623715821797581180396250079595048053805499975322682615886999590707961719530128866896350726331925152836742161777700539412659890053003557969667469521036672526550247887467725721282158451389201022472024403400928539721382119276432129095194688072627863026878292729951654726940166111865775137148735298119210774378431844700364117734988234523304968083288370746898659218325316655890442134300665175184528946777975550654952587955616310842697707601812627688415261855176827820191057329330157400517622230467804735237548835827973878089120128925420772225413031342069210489747615979376396550785826139648092589070172548211979720880644033107693582045841633537271277541736842552921712229035390542127653970064398089616868610447249392522187244649791265794204095176080177801108610711904792374608662498413998609935913247416065404730239317547300760479435124175692309134788475366707035090900116894478334125791487469607318738018044827573745855567599816629755442711406696931985897656268370983562056689017026744541794379753060259003930206216542358286718055229660405747357108289168697581726859139885400233045816552793800385055581732690573440855873077507382868784266754201045655496237610325443915834087846079920544743452047295214166343836781311448543425129069735280507898337399648003578889698445296022251873591274212206749226681983719042102555651640916609260982197144186929679628319470260536917611404952878809033883620736467182067028078646489560477995597223829560976339559448221387515073443484519430801731798984646847375237471409717560420211459101183044193592751954987093352531064314700736617023823973836960825426011611316338250461582101164987619014592779358414744318727623097273406635034904286689385178925901372089770939992180880004166435123992835193769449398118818038259589258450670669351884271614455773998392468647614570029515461046681295833339352525534750485315190073302702212553383745024460828195298611001848784792265542524308747910290980198667211027979555667769679992762469535092293126265013054864906939195838104914874957310354216069200099908669039198943696798512187291515494991153224090471250553414234678070859916539334507280813187561688658679940353589358156168443522767462865081063057289321615143257103327036925068797808714906029107680775810368955315695359410941714897228831911174514936308280608272746393390458514368489592333877356474692397190014914015684446288673721640537038218603156297460404613501547850436318503900168660791253203488303466599521778990441677147138570781133914230531972724646279280861515051837039839158348620029633122801769052322064629607669844584271824260382048560980542386788137468042254593472414035150169322985287408850703851186177191218075042068056462261310630930152906904949091486839041007093481963299360399509873763451646612458476193124375061092820666083447142045075767245157516266133104596691347869386164168734752590055115664852398383392046310251593998598216059941726651688971119152209760721403598648205335726606933541260910039394526071876352661851241447638968497679398159436430096787630176041162551930229649207772726823803109660795509865719665817202222288542486463840767842325888565523636364340769427800041396820528582523412021242777430013739888073730665817012688178704433437726095812504558839803286935409519494468097047011335736343114490008231135560747331570818307832126555702968360595850120996386584300538588136790305723138832459652452126411240382134990439573695908424648550987612506869159631097128786399879061553113073701602917856447987100492616132474568947617533533621347572902926650588769871221248940171641913795265627048721377667743566963096097119293568075343486713289712680576275911548815471943197055677450162862760407327258057398395809912813201370258288207709240305100197986488023990987390790654174279250034339827715719832180670956578803495555225098930851625625786605855145864015982595824630949090050390163838984056844482157830139950159844173333118520048242960672911569367907076528460452894295906915792946128656304889742735610263285399824918461291002888793850748635802094341637280928299791102610491568622499274466712892153773962298818248877411823131614211422686280506205882550207327840676099838155443773286924080583131734588743291239755916783924442521984424907302762454793476662692936411163056188307815082040932078184860474233478339512825146690958181034808663695957599228861690118899101904743384831896414164178596617617882928455288470259638109165904222638833677743803209874521967451011381481178111693878877339041674157633754908357510372386584894727494302058537381717727929053139000439922514198970310539461053022253749303512799153232629780775643829391017565113719635399942080701550170726781289108418443694891305373012260205304557611849811405632067183756417955511263262505694369726239334149449816692139363130295685656912394877595890820005542856130125344310985895952132411770683666898656547110551578538467559747946436106716127610311631006134120674315378502625280383085729881815524546812196421490921182928725102251429296391479943502693460501579293122818958884714333350185558019817293441759683608149164580062887518672395205022071596966879412452842499611272259154692935234597713183482015136041722449176488931405889116196558400858349459435051744046542627021257494256887263859656908910550603755348232683031473299723603434393388264711408374246405441612839788151916952014272140491672345863355220924602800667878478917338131966833920287392039579117361120158042937234641879657397065514508132465915120817298708280229771374454108953826137865559432298580045157965147570817495680974498319707165058492403403160407199247341584516620540711755266502462327399232900543687733725771994809295423586088358575604376949102835076835238508234644274849801100732621719752809182436841070730877646321871443951246654493343645646597024563749714601400745432981219608875947514616407215196952483748991562623360692717606674568548459433130511537781820904935476049664005721072756603349498843203216385078003699729533713922960658785233005868478630883755288977766543406494367237565046606161817896316443213048711254638749416783954590041524052117173688721998528103738044430348914080341024515049350024107417865324771233006070301630891872984862647465834701232612369976091238117083707170770161814602253302716805655466640392129386193553908931709037185729244534061434447453720420636879060326172369951376506930778931294770019809151899461505749397051877297239007327460255424739513417163052424315313252893927611895519620823028828172143902030886944241014714469326838517448488305529200264910170829973627280219570696570513005121472479628379764145341633905788254245837617776961334479812170725139455262885142711728759595795075952473819413468722856824610904862272554592481375230267510968640080290582395338425716707795008595400700814155068699433824218838463791705250481545536012687743055193920532238261190553494630356403155698316817426467068308959373107825313194502246671561515060643419086060473461681035731071640812798298675670147024599415623813893806233203501297430756555136252317066565107831131747368598733715396833329782602457882253507904903574083803773281299320199261402748702475463292303143426463558653346863287829035465322312391543414120069347274691397707474921578012966941159762338445379650977868793110318104016778174567967476036451009576553512875316254515624154449340197383201335843666293594635840539174863206600456244011147603822999667030514596476235308290828140061037263562334652266481893022502623380210833620380812846649820159475629487618510158444198947064091567226090700643658467517074216271413946326565226960187318606514844443618597826156468298089786296160708076567939800049527687321072170176616452521405190766820594195398897516550586890648348261608200614151908866301204367190053411981195157001931824545932386667024371225316367548934695946396619056276900154916837377537935498661849097686094870326151232136603727237350657832339505212645526498019610672646798635849699199129597421943554551095048935701947332815641920984840022367182345231870720777328621817423604174819477537034235781748457424882502295048676401641887968685377035120155364191984339624676462711217120258085738625889470358457468118084411163399853562622582622870794597743501074424392224958031783444448245107447760294249512712687305756607123618255986552150351640685874564620578877684358872718087092974085118311750570673977841021082733092552693462644629838426964200374496975761848978945469440445993985434779580486703908296967713247355652143172275137492325167801775279875705052557086980944561067629402460035446171888462900301267145425726314486842435994088469672317894073088410566658107653548780369887544774242729356626805320526971434545515975125156662975917473771265764899753710858428569778112861652397239137688410676084941133368504053559083581585076004768225797123461682547306915808640736269296907670854170953371015688908663854085418530774875274262559740336192254986169096673091148861137384700562968459379876317139816836168324243843033590331067048666276216351579404110905491627883385154724979382894223190093589550466943840013984146750852055987564262434310486113304303746457539336627421804566180187933965712716184800905943836079880537799379379173417756746114622831376052816381625240637500858100221617994629684667659092551279645311683473875209070663835772063309958969381901580799883224316739146850112433831264689228989699309191839075427475752048914587608928223800543590822270637461332220817339773532594217608042012815245370662093587551444738978558632856635994507726455357813426844844534710338987976659206251595779366569846562437645556647213796821623237930386334959683533166695635532163905769108009253845011515008408013289649076241567600018497257799194103947641255210894061360540017779743798029685026713279112026561921932337720057627228295887597056015056525215251059345932931048803657359833857226404862970751494190986433784372830030871891543269243199479022980564949179113776163121300196437194319152473070279453496917347115814895149502359644332550454000615989545096036424205681237181923678758721517354321726774684551678175213665177884534990944127821152656377682788939712922837696905261453369909707063534056714933812273546155661259370015939035502605390492223575910193078274897472377113746302933469075577886941847929234544402737657991431022548073438058556176119764312937337920429511473370940533690809872874933969753932432095441771025742744442662837148779180897622022685196417820829885692814106641516967498754275927516514969349441062962266610782237327331827966244868089070627994814417755603473189343697132012631407944935975448170846027846362492174395856745185241684747747436401103239676179551828814223672679463592199356915497370900653109745573914441465326629462132249659885617180681894501463509749482989477180595631718913572468042421838601114954927464538268043161610764633341460523027072181602914337849053470120991567076686415431116060094362328599463279382660174725871571419905093032359836539638857709786536337572383940012413808255476296474795397013480768840791111804354379136691614861610225653747999311276430023768112633775051367608932926400641405607048786998103218250899446837983626074540163621892289895054086760497604306003147733501018494437761354387615485145518877854774068391972908709996467396862125593799818405535811401415112038583849734324953205356933237258088099223337890353058480637914597445898116251972802824712478521847743221660807189856528819395525854578711307349841334864468241064409326932854378608365993584424722111960301074242091200081430460050430768644861284163348846376996260500264532772945108297654098050174142812685544821804948949868158670018867051337324939791461112283247376938108026208088058421122361799104084698360560285544919709574325990024935715851752737683009412817712599074822955529047455582391053984695169348410914563113512124799125638177449620887750644923876650998116571351011390950032544499596029067450191787144164586159017680062423162793368770403877205542089642350674931906739789635257433896159149093430569107892419103061578336818886994628266411491524454937267491827455444149556639049738722224590811909955496437749935794640202422836652306270388836969058857793755865590757148431187888577923290239460884686865942793591978584476585007341108543620245912096413537333854852952815950428994192796597813111474097679189117977510613176183466045608395042899873079409971064139369277168602875316006517177508687986014074368511836297277477759640090179048475074487462295310789642159633454161281818968833466432321461752687218123611619032627010601113889570099720715329121887203705466087356929176930676640614464206577792478234852769781601896291974883012529482664591677365175619040391105238248343240795242691274444152566150961912362007222736651286064319080710647503016648358054745003533354511860862316682160138461617309330963334833139630695041407357853666376107166361769938579282021730243746009296978216845457384897977914711141626918528968844438770259715477193206602391574793459021740781509489252927349917714463669624693639449331316207502590546233995874598439907372310827716678980564121403111016703764705102929910860780172330861393189163117479827390386578827975271645418002388324941881876992278698966989847388725583498791507179511928766637634173761594549189798375819255952283984006958184714597312133112811334202003275009432367519771280645087206836897257765992604214449834420512426633138493398199276009931445409642604041636402612516529553860863570794564466457919331924137790141842970713947397198779420561389302561028690981739193853608423127039270693694937630535149144461936414769671703175764068169739299467849037240257439895459720798027582374199007966208518731541311896891539817142382128705090692434220878964383438380334200893217006995282865404841019501199936772563045062762388355673247803367012606294003746095117545889725444510698754052404184506174378438309619094730950245195855187558961674908499831265509290996311092568408448146272528490594126253241429394620068145251488937088103266987219336815753654892348761932084609535854926595860435884805115375762425416296018082819912874625026464098631946252897787193827928587775198664523637570062675206868193186488985750167951250503381145583145159042727908502537862428192411020766441208280387411692169488279716471519046493376306278516202380893566654865986324893588737225471537391410316850086380507216298138856060954417609602853907301175644709286628117844694179320252792846658154904324513611267281818056260158221863579980407071228668507117788612234994451340693636980566544431446507833540863079397746810916885728615353259132299015261027489176425995782039990834546252098349018410637030264084039528134018532136357050979217164975430717120311248011479950134818338026177235673239650354701292371401907377998587064520744168851683123914077470045974454145300113220976414669433100890028240206455775666427721794904846359204608614490552230777376032017529423668309014616647836900276380548467211708606285070154913244099972735178807875986391479629497772968855502825118153304044002118146846499046856803391362211739057493321775621952579044315909990729142834087822826947758371438166015371274796875907790576645426064333102729676774433047273145787232043772439211175515024425977640621628506874315948908856355649776246026310468173551730999145670744931482870098601263697190390270286806643936631744914045748010021322650151175929924605055369676858377325118688201611021149691218475316746423804117321777045517070172423761273227149036690978561108392367430983692178376560358265322069361813499331117068743514224810021866067229201127123692039109481138760364968139063893893045527190497949987378172986289056568909617172961114678361367685928416071137292832107058533845696512049716707283774016441733901994788043865816372771648391809425807637342281672414250801971219764751628944545480001141378432004013956989696065807245445542359303758947721272787770128688924510556511923379809942534788375822160149415923496795778233449417396174224957156252070196286082041024705173585479803310437381057037784672172978054751048092817001579697391525588259486805262640694506261246208278865625213305706363966135429642146338330039140684261000718417691851242812680066138496807282803614544015063261738471078295863239358525843681094375883431232776850061155684473448667690420231211926072304667752853812400476945007684222305242334716864608731229231122670824294155869350234910026347487307369046053654092448458629758894309293413538855486177033113299606358005810299642764490977688815510936068570475802463458720480221906299540642221727792347126928643168555560226919783553456375672238967779087764344802951836734172690092661474316962856073883453884396221089310499513711821993935893845951038466042310335371017173464923029114048097743457457995948906506931445020454695051638181961807443095078954627033462902666291792099355850222573537860537809826229380756676479666013287768284530957303745258471792798798611828290954440773725773498617073810496234074495187400277905284257994318667847714417177991211629078276055951345358627643330587362970527223759420062069136640045982187905974634706447780703080387144361524609555718142335044786848726044380589746132242840446688973110224130989830937871422383976115949017081742241608524356167180709874910868120019424922948559336464640451479378644364384417898898215060429442543328151135493907509730933929529258439910232292206818469382138485736726133731852489084019278541955342801604896117453223151881548670513028920154698247593159215991661876660450583083699564632045714772811923231082154721580183223085523855285589441106592466806055303890227633757405946972501292002190900543334108609530950550977060961328951822320855670893569067734942883140405415263191413382839818874575888064893577479869664762882853448488346456528967749511242655430892951487082427296950204822502763859221267387420505613112762840411671676150206852038234660700852471981710254817932451451324105047532372204290986195985401941541899430045139362802755121242849379458483426111794537010718953557828144545259965656231384349719126299139999594845568993552646079296151678327723430213624916357928299216310339550820081317886493911321956770601687023196747638988540767198702469492009546749422324535200931183398566109148016385624258751212783115637660209975115743895922678213509237775935688974408070832033086869905070845296535395332239305182592949931394519191286034542576596838601818453757458028260717694349021447979039345407377090676745097435406444471612454871163971926306890787158887741231235904203711191603022848639123352994372910834303507260389602173719766161283731615101241690332701093632461362883485367277427862211922001064601776782029062571875663066097503867462717826148269790854349100933980156532198512866885785370152031023683856937294643280976462104439328612191329412235508498690200310771752371492908194862735356868610491027370028317240262488320069193954796273025602140547046863682455429242222831327682945281718638056881548435573840151249750285144089755577471884329297226308324634715844962724550521810006213459227561284869460409644373412776124309198784943203614384572062739652750948323412485678437384109814840015972204718693611392888892695142410571501643796805919152265409697835933619092325153058268310455590403820040607056261012762540225916894934184660386368037183324998250171660915231398018842104173087139686666150949667509291780482777617668008704799147590419696514639948725522737398708230725533856414366715124137423687169158906539361200091924898424669255273062521873799498355330046266234245945222570345934137378837098420500450175674383686021756648207731988675484044326559564871594762503101885826710451103261710029196882681211891683925798235946740912674800275827982056102192900352382383615545504330141518275724530617983396449091405731270858969249753907591622801309296741869448112460571983069479375498274537064378267178228840267592336177553801620176604402204872509656023075477353231727627215898855616549680734059760517751531183647371738844400952109112970631871867923526926484307762759539597805446189162288683616094916028623142799068060186186431585488367171340818690849662596117883848264155386266818131118250866029240525096355180268208134266572537230180973704897917539737780854922317380772271043496046598796521163101373111418341067780462162618372495208116931314947216997279262627008031679254754382772243004920172341067091865929684043519662622775704246674318104152003333164726638398836714200054243733979517133527927356183242288912208024334074263512529131352427712733619422009801047133239565598095781702869994566184743665949995596655559875498112206406557195961138689101914265383826332734651517014980262447753072431657122456146733135227504295404746134665339152942315877900299459131321005254021522184039361948409518312326319374043187312926626812448348773436668926168567758034147726761405789627072831061528771397648753182625346035931140953701449359116635868967617591217436633065819124733761893699748586972600828866699705851500959917805381691823831029623664532871074868028477095858552871263616387149002516070427642730789730566068660253228824138085154476723447031919626714165081129377502404036456778429448936189748312034953986204168371228885272147219885282294087424275286726254626646697341357811195785148186633102858006683445934166196655277822235079367002114259983486884535382297501990780502000487089715622069943977823864712000150026579115744193347885788212421949442709691838849403201584400676297962525517964164404008007255880956894455584662464704384786607595383453733164862044797624184405320078719599864163016078238968569623483263158598753373091266341767514959952862738427692428350328909151680201059851526923219043378637847980955092081717815338135351312680673025452115112931535625949366890583287269757235033350628740838417113437510210556694079548486031824443888775820467634798254679430710414955545153030713311632229654992602925647789519810661432155294220723396401862133251374820631570544869504661287488409762657730191315621290934410631472796504880526679974556769045795457651060403200228849742395004343911919394533572691905924365012227062474324350171825584952385817512500911035536688476463133544935436525586046029650630463543106272764900891078782780281678091861588389136997297973814442046076884541537590264050621171530749538965013508262753494662147993892937740885793635909297811815055748109750152738373792776011439365270560287957751921646404123344378559365074790775675045205934407686979841994632128447160388449618751612557416340964962985766967562136622028710819702083471647383137577144826270817821185129875769116569892888583868610417845982155969852752401543744173538818965461315402277834687150325350926695258196873538142488496249214879825121994686787374086729438836079882604270626607514865041205941905422057811947570189868529812294451224412248210549513514732935791566772675210800244789418551234173222001497840134992166433389571215170273846641507444164758843246123822150144547643828587286952269472095230210018340732650041422363242169810155470812288653878038978570213629287709160364544637271108396975933074401523333627415522047117117314474566448204240120113499433421852324399835490140895563592202582934210462107005136781316333834122997929868195161960877654092742217077435000160468383999544670721410302983380300217271531766540379843958037233559313879132579831035374196830099913320395079222237555630957199830870896488203438950247009177777353933388959784328072796129939829493114894414743683359684978945376930269328725950408250771969663146836289301743914440971473937855895577996710561838759929669622578357908605127831812719804313765498817968370177422227632838175799882354876859883062616276393437382663825116135898191732895868278126696541943201363749894992531176308938373645272098562168069758035504897328910426889085608516062093304991924008776436480990471632314311201726666049632428321380063440384262082361355403911343944134625933261045743183222613557868279899942303519319217569669698203896923721990789056957296801757233141252514224875298922953039467005874724395464933570383085681125421643469593003795888458596398315543075278080990707124847494149856366371496624587716973366682610084571409259510591218627821932255068572684670707024076311125713974807512449307492133824538071307833439285954999460505642654190491156894574006492616783280631222708335854410167503409965791341539441980285387812128570773408491807554871997362447047019604037126778510488340847423274248568894435719025686864521831833549416463270303980912514057583526991537137104338698314450082406388478028891976879956537462786960312880462679877041441816086316248661024981424519887550942594803681699040800166906594208638121382593596493533431094264895850641171780560603788859807259356280829422716479158718369813655510127327246277011953685504483903052411595295569997127372912088243253272134165969184460306851168273572503681558620265141734179020022522779030436031222849548608101117502002167062005667727770018580394802314526742678416108857892726116793305370755732052871296532934044816309513006487701337084378802401695422121726707751236655217065324903596051939267145718986237186485178131720901362945500251592521518691964521967193247385971032725516130117514773988344661663245819269431754058885624250724495625501954342703918530815583573442424750557948491639466934533178316952454350533127344893411077236641646479672256313253074416588366330709169879032355135517678543163920523904636116414512912042554066945086600037284158480310735829516171646252845008728949511109829885546450089385777927150380980381460220260103345564843709054546183018427769611431809004654245802027890520357095183997081643440224900604550558653499788244583508738133604575208164178500184180310349785511820623920951867547007377639964926579413882105306478337649996425112049978131574516093470303637903333276741884424266245299441766768807642694712848681203027590088766990474129359495227630391454513130132400654844006158870313168829359335411705726215478101576947885200177139154724146920789604848592052010085491009060128049837411315403032445605575012244660969884467115495051589794669118909285224041577392840942354693707212639070621782630241337986216791961655870702565775762722181243368340891988108917074703402852103032303873709043509319830748689937249900195990538988251764174149064951556447297325133349674853653980599024887767257564304942709699613172973836235304974000401064584703310023290701041123784145513321111060013940080147389640509563580825531815689807377449861172285349872016071868414598216322003507334597055502246287332998975841560224990705307505532664334219350193823538477494172551287293026822188537306165321124194147224961190528362365723084286220733276015922500722877773688377862006261711208217545423458862932511955706246701680995746388859503974816846707840638924787275006772315304704818503231825005436172442064400728001179921657591355036164122851256886967477478142560323383548875712867726895358379470963865700719769269752892922327250366775799418489112619346265761939300659255849833158671610228416733737128752654689102059910494961283877479904119613373566531752830982573762258972429232611261394493444785386741238380301342792477460609163143622074305248403565944462501054726845831811589971895641608840010088935547259509378905809820145543030349929670174678737792142086289057270173033139690889834387074196292691070147797712461014805701779395152879099131793122858694218112813389296360370711484925186826727555162874835583227711189549475055008844041783314495899940343484503801154626207717942663183093196205573372284438670411033565373649148488505974559351596070733720229873832934253605182326354532510965019773156641046534114012787314393766220148765611171509619189164202092338623677907244639257322876953703296361559699616218843826134502847024323737050317093195178490882428895664347243623553370095963147379244613016291018458054658740530699873147678141088740495460459994277400550811466908154673592041557688785742178441967328412605638463448345098402397117395306652908218437247275350153758042701221055190204637319698240321036322705515923777167602585887928117323562404451885625836609156685259828893155824135841678761528938087189777070060130788501533421480492203555947325828603057431020556879668455602450440101452458458894336539726547908356567036102959596148373650353295358397926091743317686345054311728569389065663519065037361932846725951432516210337882751569611041280467804300546368069226066818529505880412190787229936292914805198374348109646072323953832316570128702727476982420064821986982428856764361659115315698464009572498204266030082711399666097603238390993930889051558919999621129387935703659448024269695345994395088074593685620976519925688224350206280097054080803774454362602351911639927663071298819419645288930269281540540014861906593921882871822656146641009172976503029286237859001402589686456431746615859634721469816265312029210046018349726448375176912805873264109351324208041266292906314675946806219419696932882366383528201235668501381355104294202746874935115477222445588385625329682146152768200021505301444068948153995303794943036995394263892158011234939378549974449640510581968288792905924618755120740434571205324227471451868722345119283903314588905969082892890435508665417528938635417297920004276562031537049530228546122528808431954605776107351488562722076246687291747792252004176037063828371390373364454951329695630014177552952863075968191471510338167214573160768571244434029694593967674965316064123892620617966904775808619948409488566711677379551207032605750530768153476552296370848238197273465280380747646197613334238678425299538235557678694490751017623670858932425852039196960646140508950299276800421458301116444247224044676531142133568387798360944936536600650484682398127678647157117298083332475937236952234752624800954948944959503652327714554289504086696264944923252322717027772882652308057732855115714857824003288699836631810486399385279525650801195964891264126616774810635382608012350087034781026896844016315061593070929829889163217620690714775571548113635246572226141632583864081282453951418258177694548802673914659261354568824665406437447230199709647207472440354446539172373291068471051532936610778896308794316021736162151920572923727808367020521189714812909073253105937909387532231180840867103847271777091766711435241903795329564775334646497155316954919844040579016766479790113571189086844398665212724949618226057849060521084451445330832176925302402241561583155088190080841202299916845094977915751601323007966447891984590041574287315171491685166547472286687325803695425472946848833163626263560933710556849447114910880447334601485243862843400821941783783245617461747933898740448325757360326740457192684764406930588982585743606765445583305621528415523029404376529697217014374940412427344242754116769279753807991668422952065829356113570712624322524385427734732093044376109307232951567391494767303997593139635273729013687882202993598968786918308263225559865365141993589366033643025069350484448903241692655815930050373301398012268279089455097496733848095422999550047697589089579019169754205223780824342998945111832864259656870848812137802708995947829313695941467489433668810874945788609150695528049577912038569284091039056392975788116834267006983077134444120145389438876775992110005361771483441546606063290139730228889186442677578905037595170423526834053933829026091747679952614605854716048719910380131103783632372446561729645415944851372377148281652435488374768118538582374704987886833990518410624714563250007601754876330387117898495243086349486852558383928292189443530928138293410034407171530811451472960195718809012077259339890830635385037900088912782403760442077473491942381973709356936630401675727161166643401901574650528679520544255913834637021124688527884675143152381789301060187406300540090710595091694176082545421887692864798647897250985924602855901964363884916611608884831064252798995423019523725182741380442407892708710920031786128582316620136293487383814766482421701156782693534482865575071468947749136003759654309836289351344197987817606031106392214636326983605577517924697554924441119576547658443327986164857688910574520225069946243879980657067719602429363861055017577749168076327425397025423956763027876408609233806223254065769852057885722975812106978152989918339628288640340900937154333278822879489381733363128395036734882392644762969732575309928886270189025635564565253797007818443021536343903261394547852304683545751644063547068094655445370721619555270684820820665155982458678251650286600750344118170547229484810204942451116037140170986931281741425890785930605679682596638047299235727563011320281870845669061479995786880034560834981037924725380816946080000643982839864696445133605723444937984857227700394132241931786856888445399446405714456119018261037957298552358752766008562697233760602164003078550207099138376502373365448168164429015526020321848804606773193813608626983364042776890818028313550612273240110657172534464311229857354698837657430318149586164967631524760100588957984379342013693282216487859989114455093975628950787664099087014563263697298419476081961942134942972497060222328716230030954075923802147642528927178040742177721993696226840528019330104705129574286309221287771976715781174250432065308081994194284830237819301710088167333835108752347451651577458463928015491091872169845650134373741587715544947952683604814652879972061578487085425520534591242766132642506108353103181664533459217164697272775916449432339735347658049402082374163277479589013032816602656051272778244404011342963444556421685632534273126486065856241094598379898592308250388984485792655427886056491346090076685746209670289687191303316232266119933049386437970111790169356126124067533178023650944828397892523796938658408096256392527495500832740623943424630759751824316107799391927383258969319837226564537986978727401335679597627802699780107140223949509380539492260565795788699839983882831744711171640476928676309665599987731662058888392846583368298637596602993626330717247860436415663971257989533565439893666494557692529516744547770355300554034105400611204916713218519116314197640597355519975182722574992631605221118169129583761155433939790523866423860413792918651266614289585363388004321377822719350826269525387218026400507346908631570839896647022821795911996237430213456719633077158161980088622629815188305153434614155091706772027168777700503361580247030972796130288450988680404710236253516019649359736313272273638107676620015594098724557609903804383989724900080314105143157592924554679721230584360309131641784220734031866002819673973221753786846646693315888542301627785500379215791632014032585557478502264049266451725392833826784112212527040487358369797249970210189719033140204040900277076302830122492248769792854820090897016254928342650828833342496923489590732135700493098042216402438565955199423197848204103010175469005368883182389818245426955790140144049374358647806028993530583104677175085035732975814129560175703588298649724531968507948198682846583692328538736615155415823230961081628877553790099090686896810452445896063832066747208616394345437788496244505445873553979622026838205343997241172621778335987530636130213799270667217753156025360135792691636112937730734837014552455887182083573089440536645567281979461960729146702503996899368630341902686295831177395023752239117361232497976096196034922309346510410908293050657613055151726711493720191160527912967085174837938600564943928148962735359533024312858558634151430261495757884396949603863165567564839376217797838463655052834600916769202351538469628450953431747403019020596201541651962413246564204858311295035932807390071655020677896960332959775312930752582195889800858198344504177237583137508803303196023553166115573169363504839038303619912975589044964878764933893532345262181292230558587058666936463115784118393925824757684691977433913687379024275109751544796567125847397639549983559251164902802912168203163955408491739475795389135263350152377935981259031025077991233864004712353194345650454163680913368025907776258552064833865657759745450086318788831390191906321925728549035126402274220285098599643294473716496835158806109719904122922780543009299694288408742050514839662700267783371626698763558176483286014652170310303736252416240134002012171837993871340089750383497450897705865335946176731696630813004068341363506638678818350318419105536414489059084729772724881180329992513012627725525579517916366245737333118131405915337998936844627203561693568862212028636002874646107538862309680939665690365091120638004233433916971532689002375359254384487808017559171885917459615621207077955727501203077073724314851820200069843868718731345689209229070651235019653292097931142082248937312802478884928855295347019498678989278590172284088811890845595171088676145317804261101005219226089032348931837017830931110934408746352374866889411533196085106600133999117116222700611370631123812717744514547944228538166292105315036582624206233063206615921197381755219486189459923361053017312546685722786831008801812225253723196710100101994799891147765199806896343993858840899066396701626593182232737652078510676085244912187126696215848242989161981230666070587008159183601602679962800819504993292869828075355133529129919469040970710018584335730057160298480151515221925538915316243649560843352913117310031976483355461138625046521031764666201503840993171945779242044401493521762841768716161730932331426771218200759732594533943889706766377674671503412084702807556050099043422761123881083876998435549198436185599541268764444165963095108663078260465348137029210301209904707717450985824322538377077192942071487891321268845040501982723303776403956694124058515633857315959938887844141204535880966777766820241505186475745293714365578892762903638212547452884336584076479449761214258247143944136391474032371310555889168329593537621367004662915058832187046183646411174312040431918415866496315136790732042387891721593228270446398724572786651245690211554426661366932330265917455455840247659290165452300705348247681699147337297956383636654543105062569031411177576529649566897300080562660102747217282337867121184006077969940643779856879643296029036390765642102871790661988155324291491041828275696927345507717956974267184143081997525041312866977519158050475606454136970425216600357745724870342552551951503184599875060178181238728346087675683243737357447822753633165529705625040442016505181302426020257007112948651862669282715722254334781570102237488170478966837717003026695653715577752854341433568371018106891939014093139238972620998923998420174397535863505696641768527770601227435410013528990189465854177664820149712020760293678450419123422618770247123703388139001543520231262021911111972779974889090460962752771945628142873203627121022205059989288341528165692581793971850133445489573753251948738437713884382235608759679896894110906478566968199102788332719288943588581124651002319012267120892932210985502477253986389649966025071338127044660655679966112881014768418870299883716979846339593490757581887369527613141271891789871926125618676743762604775976276247582640478730501782455512652647562539200565218432931488507169107519892604849958651348745618546290987571803046095639855611883981871777181327324534590407531060007013882089597580724769060326155035233283047670879349512041636972156894492881966364579785815122908897720781772494127828185841341593139914334202666425758366429542271521682646432193023894059733405901682194941322745791730713986464203289722913657843827772940981897095996878724313507735925001117970990469554506761508593594127941158706070518456032308125238339996670578871633590646944027965733891039304991098272110514863903502381531299087823008089717531407327897783990897079022323705032252145701319340210288930716081208691133667877299344155007909340676991538061962252988505164312342526843005857793558107515273856607797653266210001640623012520815893651640155344810203401862416807096788616738945410020057294803057157523640491245238044232172827358123059754260218359516022448619539605066235908144088509282604132231228171682980600030615738937011041635389418646790094790040808477584915742519978339895049780134381071064118049596593008487227431155714540413947455749898796375159250646455318272687333010841870548595565957300027595551433138022774734204800769790918835866273877515383026839524281493693075503006330252085463172537184385240337202858962199561360860012999645564106102338832198309262967198652971009112320018973421019314622999633090571691221976755523678802984893783691168460430317965091131216347204843140757220225653996566961149025479809682792071482825126817606801055184285264966902430433250617815664652944847459717545445617588632442655610485908036137352777132033978525481905824798423608608921781912869977579209700096361071893021448451666226444790797827416182922604678952303170399356383795400239961624302351937306820639668815518103048191911389986989999361639527107391840696706571149885999656057312645225505998235235548907415544297560621983294135701168199757009294408207223912710709938191227242797725986795999655841108315525572778961623290388701454547367932040598705313964248710620034558673410075841734556456665045595461065212217467849846363851940953515526308011535774786496454681745320423745660000389971163591155116212190534583689692486574251824774168610942380371533205142391083364039261248881160076100563961511926757506296000812396276217524013654042296475695730686070097966243490528767314079544636389373430565557721595456622679373679747016930036843886986606533078563611038535490748393799540411130364161185102628449738866240742697354190741243472909687052849734556214238887010155719177019482393492124385248114981604456972815468549038159711650830552824187755298673829416129672501194012741470748941345616639952986894053493965155343081227523650243396023654695932919486946613650790374277758189860286078767452457559985264133073401090771035614353443553921496357390537777229759233434211259328596421396328812178591159130428439648023818701242200878237836805388162694678443332498963129421467456438462480822650035743145136830289917270566436884935714044935741914616189266289628526103743103506594940448656511466606558348221424801321393173196229538552158031936547667331497640963612235194957329360878369570263916765556908007292313130507905083696355377608907959143972956099906106288309713345054583619474626824438449741260192279319892361445794982395841939750272842030908034423204244381728304582507195299110603959361057913798464078882986805650698340831399347692887560858544387969882408767576713162655243328376021298627176828387506729092291321092657300436748481609800314071987599158385403431132289758230535743600593457156202090035702683392050540426172856145630215919190990312972702000907871068390929379143383721086350384287954474757874463649711666338370256532153725413108149614662999659215740322842537023498044072602020605718697583040293452935556935644242581054564322613380194975059264590472471717137129472646812344736680686381889776263270112065370186464851243146312274519255534713829648268684178331565490899018879732672692208212752234616889013937105695254308037669708859374897587353633690662496706205012523231586374789478515907847765141316334717436440683954643788235974204461782627544860092168741581331924745627032644213759734034158377818645300269272719798990647264968026974948536068733444947039613150039918052182194086978435015881076584946303679253488001712926882409892716814050289937020061465564998281409840764439779944315316016668999031101448588309309580504072163958775625541599981808387892669385907485570437796434900164311927696804168924454236106586707210480549363174361212615816057478634379316333901614168425703399872172366447095418741161552541311865320445712209565007753059487117247655603121974547159666638041775121938671744165981805566063309884628428872526249707246425633029310135006950770213647041526698823075439300863232377610702843514703643323386874781689203751576890826484235502901135611414917700157647664551264654924424188646081412552829082499563175821908091122223967847440069498292396623067546930216496799711158089785051085238395878156365258683563860942478570585730816450554351305594546443735222297389233263455027458418651496582421399883145266534175152707791288066541207022755918734709895206815177818319245001540545038357090320859001695421656222535235236062070682656280381338697887050573451493011823785196099949751453315242897219553252301772360422293696786672115820353952489102115620005667352243366766322227532503570662049474738306508483930026484337983586494407241869617357549458636123903605966025111332902254881315995202949928315273599037435355213811825402046443012771645484436249253817586557094760970957719402466650741071277417801775210372026603143782855988858249664306332022442340870218196272028433122167114279685057429681322403096336753422057538526942438074479615898423644766522961886720585748279355178399231831039227916523844525826722046195545439953600848248949781831507845223919356101133568228641653211954865485724124599872427426641117572942130721405114299898869578716672548524227416253891361743838853823435758118694498694493422703916329739974627274347037350578022435085810375114699525210717434071586792119534321363446582301540496147038000682966487978765559720517281516094991780022663220466632443837658127421484776338419343358355805053187466095019074133475477866027895716453347179973261322317483001768504577785278729577019115506881980372918269784194561441835704484093533306494415138879722864209711832083772400713351645432678390558815745257277299196996256421947260949554918461679631174397222656353014945482100427265995045189899174396054232476529182894208633703114612048503263313216303186955757596860547824511911110790842476481516380881116741081931057691682883782420284553395298750006412313433479641003505917032851839537728284114393878197688426807307511982887038656278191856354002041909195546201108889436771131900998017817221188420312489595662419242849803224357041964845393608223492573213471016561474927533475446518977550747283089414287110320422958750677596245410466102273345412529041334754533415050848072568871892006865573057013261623514462353325273872078126446024975794675657152390098891473526841530645304499556673478065530875636048995503679321726841000634628759793685206239914605877840262727098792454566766870031051382934729109375691428195425834593036969467631223113195040976243532819635393945207559175236528137694636162322280872294504130054447571218314958398116294680461137121733481540419973585229749661611394770398117742509491845650487274635385516022043508931516980526889572579552404064818323180644755101869191869896902196965326800200429990391709558716488858756286918253296039343104050250439219849470855899121475197896347516996007005635031495969546229915474620806728483870537067614860367838328122318703398105820490447399082064493941113722649731960073891383576043070555781433856764478867683317319346736949205218830311794112932748386910539625887029688619458007702210726582371352016635650880876473506874805589809154845060869751972767040111046423544920461584878808289234022637011346080626991544341506282675660516736172635388241305556329091828383665666779207055620323632147248285355689198632025365024809319753682556852735699461421706791519671929758485193172128384131016268349612531414386190977615382523206670164057572733868528568226955947008880436914092278306887112867417033568422755420691698537783399863373294107586430751180418304145485611043355681428628008120808680774403362579980029908651788396197971073963653751256163380747202563985129950367130794598731095954368432355814530202843093601496106134861640541836159760687974830883431631894269892935096746176303624244823306242673897119281704307886542259843840538918648010360911546619319799572479337157419330420381023111362792898291048790805163722841241406996339076416386512338687930786235953754157809341982394728829652565863261977791262632869761817189193952610461324870386921208768686038092083827954045349230797277832691128373632835374405005404957809736267367229796176452864105793580533071843351038161738955387137980663851915196672999708000579558137154121603097364299359198286007538975386304848683526476957405420242034394076531662139224080054733228856796657444556217042635148976871136728935110226695449096174044155347125965456826157464806190578531662219857108591539879816066318502569043177204776775091432642907750696925765579092498572315783193218734886968594597395851050516358801086423762462966177876820899335439885307922447787974250202694973467595756266665169845807612722630287400717427248995793694223988374467366356713574357036949531059871427867829675034702579956602922679679946724701240068651626496286324596287305411388839613346744209094686421254864989928627264893092890536972651721838407989438331115778212754569691234407268935931027188098134648360225038771559141447602162103340331040318687586738396522941957240477168780009765255426264183925666955547569484366523192204938161400662736368351204145122634462411031658388944166274639259945677949743098708705170117159464375610528460928087314016775180255477084645845832575268193602086020348543091113975998647493669236053521420129572347025958185512750903030585031269593010783647795284878068006484209535714663183677328584870796855394666162879878513845501825193495673353183626444211718388603857444238868037025217385290606251650640374126550569295052494487300569183361831866400673055058757842441815664436517941503165078040904647664764318560657708899980615435033020799306189257168832520908047009084697583672099726573515746330283137408658131364932577848121945214759809978179130521089291726256264506948384012885423289058407560663127421463164965056448595833113703998739914754040894710709312795603521859547822611826028403373000801519998071762903318996730109684032432271275560218334209595895632421168713492340915086436674977502091193712199051668100476734299651614643610082797563512036791241898082833759868249352259972063647709488784848568025617171191014631470687510541313841007297924294955709045752732659987757834725048939962528048592237440156329193974134813155738372799077274015728392950324112732063428810046398874105137788469186522055196313133019166587525354465784341686861428933182539203289994343121510530564441199952149984841167214370509803328007366176254899848576943405064871989807665203892142849921090409452052415311091075378396035936199407914831593153705673320241013165018229401527697654261644377480554235995456479781591708784872042984534459574965841976511010544893942649678490511038547763089113399810167606233554026479063519977498834400644846659811358524933548157012027852722818685467278595538050803345883690324066520917968696422522975619866644254994666198746002111447117964624280861192887390833358106920153683629799170577831585547179379046728286665305414619167787170435773647746318680100489449658412023364881803137051948111660709956995141180034168183346864491041068585881424302602417793253468295500399430035202832314172977032546110136121185825152689448128403303037906369458469034907520709946423655530934120910695943274096428689235563585189521560232371568068737979276309224483324937318249194533732214726291034803464365320548411215466333028682435524803546236219969819571356615163795622441919391070431613527221317393077141625658872718009809326765184702066192741309217443842661321589242765463820054587509595465664017080022315235638328190476448023066543942302020188669712366141662697002113198651671056100682146590137340454860345425597597476775819656769982210481732602565944810735301877273064802920194841950116533384283346209352397636350709433322838611672151147364046812978831295735344030761497513423244099893009767727980281363430403341172276047891714608884745290071115851066760341529102882280163125319627326517409580851506219869016078550491933386511848719325872063600248814799537437266910962598130216289118430825633971154999920461170357816661545676856648928928702908025765964821617177412900317361904328259168737799794216869418271376637789712532946566281858330845103536391501105345625266630927092500142548240796211682287480776687804301967991615735484849919636184785011729340956810174104546171014189998737575288548273734110421931912802022241253232544516891347927013317491847656924050009668036384258899408275754785061099382165856983862229420762223608359879758699539664746775018747880276239331191101653152226242921480578709829004485909853240825012856382113905297050384441777085035474853313983362840989399874377857557247022301557527820106546697816679130144360186705499859134763964458678242801021708409745132530591808787961084343280087149526220846861862622032607051200920451580840505270622846407169970456523704955570812816439346607714763510198415585501080029470627268093823967479834286625380507770565715035106540392362413517043677902333027066435489966772269986172843164179109677597743892927939817003635485419603366854156323116963596465421628543541170464682936876499084784615766516788892619885401645790018977855343743323774233104402192717918718474236482695882211374396142105524793932612973550596553551588436144777562723380140067079343257771992217867509844952201100874256225376706642879805008375350568974885194993373124495615783587860968270689217637719320473854785969073573089901505724358386532641277146725506232278241233159591209679946461135501732983072267153713944918421055060540388723086035480430848538702593685415991864259957651790317507581714033289710135140933625032585127211682833081866598856443285751648026172706660312339537149791050285429215443681789922044232445541552175564071191333181927777411253457017199644218973312191622145821556033541423610777022583276063705271254473914645937879425045435092556126593176315295378375139953034108115562094701850692068507446515879290936085260761906439743790643769165151409343166942480918997902664256398154258377785992040532320350221891885603038932520488879917603362807825195208178861297422894335928500971174821530603824689497991564322505907656680865358982187297451224659857182183418283460261069798220665277662596843079724619031670175495841750303138449876248543036429293637295484383141262542257590083845545295850933391165985227181374769040842511235100852119514165388780110446827724296114693087639699585709765654352449180186466108672317085762176869350521558988830209637028360235304145400889961252737755316088816555228523209518924023705748917479192962690728951659687301301271588195874861261058325421852904451720387090302633899133306317358430285215766626950831066487689655262711064466340092850795106329300589205369559780943704211841661089292642732526679162364963319365941536228719652304908221369518935792123982156312577495777774200170259095859449448384825580396530425809815230672016676684730450735837252030386006382470303060000106499945325847778087934527336685950486502100152937021517645358212814429961785545448934287655603804147679183572852112547122443676584966634439418355310810541748792122852701004000266698082353964632325918431080667401673811467145074999824961531900286484972579116353177002760686034224601206354363944093612258220690114007787516064423328780245235549983344997397845887555683899664362569967036982009350417687110269357992312185633214587404075958754520039834223758535642332997293066022014264213182030956322141010660103922036629904646113400545039574095163468207133486637476520448124497952759076217443839094560275429713916630748555924451408398619234994373743500612694689749780161438418042838929473554097577189760697999364631988440044586804116953093407113738537542973023384500896885606032979919208133754780095855683748814928941080140440585814219774828224634484820879597774785039580996163318665556523998670148657249283416020916999281652503239407539834388385391238916184917632147964101372061623478811737655368817573789441634568576415292427850609305819847723300533732573911710697797324166498895828116221400473946939047421733447895865203083364439734895501820981606545333705193668790247588794787386453544369127860956026923275207210866287505160831510803497435506335335982832342100337523951400792813423773778316529054757071969146615656482683437468635896345671827600961701735764873475711488157180917766221012721846220873114369016317156068167067792617996545445441190771191027828964660199777736543262954858119748066259684833633197945932559987562580541114959738872080962205370666338296276362944766570437871882690645836848527344212606675693065922915198263464931643985479184804990807096397776055840808322109691682261680127595792507786947756615432335472873604558278338387182115929829269333487531073526461256457217288789832800699228031238806486728746167564179849383028064023606736142934423234335212677967754496079149734691599392830749493075377004914676979336270996056218269780072361522873469562334572781044383611368629110569884604276325324657628717126941905462777253881707692027696758867650969629922846080510813166146584101973789791655475371218728288063837172826352120529559419898584855775649160500326005715887502364025634804923343174636945204719533815956955211283071894924759807073174928879328587036120638448829929400435153829179717690873189279126391872107080417745204420389723863848542180128098881267966473033665083992723762069213626263030420928787108995415814364695937530678345764125127517666077546113061996424189979541572724460053552217725407554563647330457460789013172217672134047756479323219222882959724153534514908485879138156010431345706452092317489699026832231840262364291280941687831071514466935966216540672563087691331198005787695347774348435390162246373030412032288266941816988362667556480446766684126019527558935658873646685093591086651752320935523604068006611778492496289934200456524348429458212782456050981502806523056528921722431016436724777162798842337044728731658822869052520430124354475142625664670297984431887651601021988013768647747004484027018948019168142378051045498830838791594689278653853351975964971623318828731332561409554275833892351300233030459246850123892349775154998276169209595515395870256946818448801963024621206251681937665836866983549352253672273557972626617778707921740778590327381683587065594973066592302718593969269729285017950629894665210889667173889173546737391810434273983693724040702058840712907463954544417302802909348993497091762783376645524716445145010236177640398846160273722318647967176040018816013994195133755057780017494196586883670910283727226465953177390594865367784734393873505214771943590771704036832629809359301320221302378384097852493030146236126811878229941051840056364491424484705935648680647263288942660444437266506309047630043851354800173441496619995211110673793702966709442629645076929394068713361181647017019426161721266356656591899672753167689232990337729840030794851427943147822289497661993725706522702843581761783253938553811535197287615507598198300862063026032410770583233195120956032123352567595101417127458751535527772426789465915635035363757201353033885324216538846364375239128770741342887302400000512964074074500323072506576086866942011660918932245022087673191642521366187331948806732548209473218009418103961762593064950077892501330488607365551469510587286889566260983638550901849466757905247604153640183370101228817935953694999873241993736272660646179187249547962243085061187203251141358850164568754035259602218359443048932434250770398033342702158170312527596311992493685975355729408373209351797305456570640189615699501760916423593314010581535573040836019057930597582380936803311371220914410922869460547466257159528662373398308129944106514576163331633080078415078462401511064299614897331740153619421711208285733449379147334360413288383031301324759009080465231949667871520004770631390776445448831872555241851537447905123869965963433529035967284408197100202244802555820887744450828590049372959358060999463985956224100044116964661569878121268966196627849261431912008961985819587072735820067596508062167694091811967418578858822347735882817285133630309384792622715658461173074668696130619123971564626023227937356844160853520436770044208540661643234957999385578960248235652610990380570547294794289858358628364598367574817009995289680692874112704486789018931226265871316980026560062442801957463928588920389376125334345865362869046268282846779426661471259649120612558169058121795163571970969557609055600427813642882042284332608752965662958651060518750746385421132619618011464258464684184100258297155596685351928426745716949964996391633542829937390637198535624226051947645806672822006424229622018481552584613123385887809303938511481651120166121332254780909599494016927890327438384834874056201941213828348585925425122693410160374820309385270036232693302007942766836211220927897968061161176830821732788057197456299757917162428100013701786659828803241304416537625272764397732457346724543790925657399849505592881634862582917019315805020137101843689551046865014718556937120311454475132788092342924961824008201765857559189283834634869272783769242049689610743744654596457912076088054744735418551304146601956422022274166575166841114663202730726783603419893723120691774247077158751626568564205124122687117240808912063342737749206669218228005421499608359701491529677269396030277677102976256633782457407314024334294725351081317493302873951204400739446453051839403158404527551419039041132022644144516515089435843700964494458235195766811834579915925966789425211144549792200570017051329169218406680387485372959759512502721668874607086030007270935988004778448577038893349854914459636818346659897144595786283589255933983842063601951119747292372946513905388103179895116209710565356690326795091126237519272436574312975057024727941405716858372729100764502342762483645420225054435433501814688230323065740258611564432560125956858133949636420340272475663877264032341263569314280585026964472675390084914499508662559641827527700055289374282534350770399144038083570585969130734676593646782477835527995470798492162253573232899004818100337551935998894769505808976831920454761872350294745067894535479252943204535656397001173078215799412359478664015270213833675058469505917374576313457310417444412920488193978727596446967799679618669204758226594734849370027177858230659186188000596013832285054712564081601889316064076373345350861357940739613590671300364844807645562414374494976003209479177946187360184532161838803046556840638486899356688279863694759674639528524833836419551545780880740446679132431525055920069698577996892411539198398662407200181360508399035418268702195253428342504746402414131400486133888529897267630045093701163883232673753259534643782766634220352596494939380181285301411418647191181513402987195481970706038093237823535516538910341045810371429788731434976836689619456992068500666781008616090006040249673395486774783363167485542734523260643983628237100320961740721811598888999243822377170422854935455120808190057360783768896379955557296891357532544678149779702408968355412927833025421291575627900008865941819236197020281788031608620882233608737828385574221485344746293123055037309142572194390510077466433329443839667820608299244679599081108143808610819315018376993949620595887336701553942973092991050689372206067070237760359232729502286876561613545099262855506665313597341471405395698682644248530691643796717289170584772635580095013002915848476412106924758438682823283830281166979051431231212569307093011635902919444187032088979964899135141500065953573676204378652585978889208732233956609894574164799615849510440015546320752288891439111676019928370020222809363335578983343192937217669506465001095346588969063878895737542247972502282775121111857720472448721531553713615852371531645043511655899079236751179470934546554974176691014852732510285557194670676551242428264244411232567396508934639348408099759916375908723922763476554560975846077648634000158299520126926634041032910705165004349760468208636920773441261381205448276411131404715473803169546178732937237426772299974499484631064284277204774675446983755848874649486340049458789030214143382082227909728943588935551567717963852495142677046991438857380106652652334541162895104326092027596691735171889755909135961039102415684671092221874009763732218670778934692817566395793459077890918585037127628279682383759651349827654659775252713860920609849587649247663135209990892406254018852040024567865485776857096658599098162938881592102147182204365074215595828122562089398390493996530193231048240411270366902352560478993499916217055341433993994151023618133251593644831842482996708533020724628222870840499741197221160177949459114309363762402114321453115491032156654036189689476280730646014498585495484488030503157820368711577741488652453182228874069877534473390820348383396071367890474139901188961098626756090773509072285552538241038211262926226750368444682188992018845104221989723256667998888113544004988217672155637932315763839681436889929503745234563748666794261210861877820008716299576413698493597331349030656589358316476710843564805845728059255286813282730988468086310770607941451779294459512844562754951970754939873150389566360498148562527197173659937365620934146697352878808290102604648492904664296494278988019237344222990271382018002545028996868032211245731192497880724018910152749986131787529934234893342333281407020335009220796817510031438359703524729408395592888806749984943857416846205760777110059410766943688093757754791760711985570198486579934986993940000035014273439022694965573476182541787841378589480318119953236216730604656528058302984476325895870589280968248872950670165434515114324978530703698336618303254524431484441725379793005450841046999329100923403925092454113961241781847725184789557057075103561772857090304792541310011185213185071259984006887050405512435599396796620615726522412675246450937491399062205856895453810189018612288213001948814773724951698137811180673272812559236963355309045203345275894554362321168460993140665412579184710689976331526692436666490467376157392457766476510549441229327304236690012988167510024907041642680210034031287278758062700559199306835229947170737052991745483219786892402105724612960324150317452160244595276538452957308525559961973105466924340395433060456576326644599892458673723529381399353868197342030608400330676830618338976682766662533532156031595231486500887395439215944842841563832926447257198483891263420934082654589729346280032112435037062327710360602596008412742654036878330408971993870590700476844645335182406363479182475786706524604695470306926155570790935977066571753643868854748717292501413906362071629862274307557221968541219114424876296638650391642019879874281438997737517919992332344593898575964975062140371068165426317419098167773269636167084908412703218573144041600820680514554723571385121799746841510437526711552986616768586364239681411174925231669892652228210724831718648043951558260201812098292580249664193560519819119950206990100637834790685011160399266323592678509228026806462769349268114946743438228029524830825150327061921890946599100732433142575749581508397992717185296521753653638084221176762712915339707987844561047580872392975809711484380040071555033721324155759151403629177575929941356141588161270634966345494335147159208925006646429176718314719845720427471663951866188414334028262844481414851433339091321506370820678179886983216916444395011984241541809784969859712291487340879229213239423343446366106204397137667619792763517968290840775087053189588672051573908239593175632094581137932104222772227920437822960700058997740321217268161730252655380846921418561275204329999970010434504547774349254020319882543546237414245587783236319782340318972391785363655464782533491614885932118589424752119013590235648195062311453162901113083359510165051940236777871643083170377342731475425578306893258960214056228726988590337022308079054166725002052303258012912078967088237775803249321969032207737246166822327006074692851706420839542415700665534418032480944890212210409426699844217028747210961873511006927877366790793648133875482069704381263434943877373944021154920961487726868184728602297741071832942172496434611553245279687072250060254504483728282956825278221313386072707413363383337878555410098718874725431007824591788276988365298292724858256367689967433405057043270095440943592292389652743778844621017904667184679970062696616748045665771823929062846154247046917499948529815000436239076789015754485758348326910874458548133525169324316553266870747082171676910288709842325938244421561680254471407744325160528809847426523331833712702155754560274681625931010508619847783166102981367483366170577593824471060139034100388932038381866806550797701426049789415458665994244232125644698165940579516552101362368329691867177590867762178047249038266845357488382003687051394999414670763664958927791026220040054745869688700771491703837796762046556904877232536138340232449041459299239057576173289954463272605470367841350981875310840831592836272125793849184865218429100964669187893598538921543347090524002487092297745468629036966366596822927820065214431304396721563274185062205066289739666267450480065710918823776584960172005608395347112597755909342289129866607671069377670619858557693607743953609807120562393940526447876793439999816547752994521528360439505354526327620299652470573132348271592053676809130025491521495753131322156727225366416598912124410253461402667056033043868047586994354557031119860906119884676942650375440497578127211414069476141765853277436564017586260346875016645438853544140669482602915891834732990754153749342867830818951798581236627181350776922434856401606667432281667460185076047467047670858039098118113302846064123705962977446119319269409543221356496677211369232286528064317423238271974954396596381185927176670949806295245522981206452661508962842981040437236854063599820485918341271956862307952513667660513989818362693299586401991159052694862653115095520790321362284048089083178153740899478086495650212028573250256577706515478832353163883943484473197174666576972465493097399328334515876613074806854599165135391866743886938695662339746542433479421814159560487053271396055927527727697286000407810041266202296893941465899044281001226252633179272523047278511427121078248577685936592952603486560696694407752968830130927244460427516808091206549744600543398317589525883644333750701903356569803703587190783740136980248798418711868608360319182933018457901012213864579008535568666587273870958857501228248841318990646223665836662618005021977351041706910139876217487514147315664041001216479294739853692507970834493446872674924940625860427111017700049756823226227812928853235048272803351582033841690021232309024758223391733767503337517685246085520586645504263235872429925597471416962163192412756095043902257473983502687867692895374310049989699917861602774564925851640525122720630661290225610757824643079503121705153069485909236210571736705194368044929729508833087378616527652386784444479434535427476254680190054030784660692711356948359081489502389411954958940513510208534489739467907162867805012724789018490149014169283430018973516349218142237875604819764062920875000197682152088660691934258509898191896273566207055010149004991092987266556147437058093136938338403115977696771899704371518143824872530388330000247166686542967356885757066894981639580598357871040374853173261930277675423204228840211752108504557442491275005058311885036702484687258136004486754282712052439482989877963797514677013092660063941535401512208856968996570608436585964922125391735586950152460866419451633042448133648245639771135219580581287630603689229801165428809949999074332931321084103858505356150976671736797626768161485330601479625791854326556313866919173108214276085616752048453468389845738837613087338972250493704232516379882387202042514394608263177269954046626429596618959053401923826693205430691508253614305579792979398397754650445967479115959426174432371563801869271466430101943417297469150096065863965056186791134920366668284485879871586032585845005202928282105149902518410722755705530469263538117599003637564682303885967724755041745711004718509086667017779005783961627137683309341783778747118029580031598811739779459251041444253981664517278235984569417029395249260136597623957545957141876974518799975656768852881989013899678297678846163554600067446504058786439388419720442923937596782748160904126639378262476094301832212579362357531260716717334858306673402686654824584676363050175357468750338324416479217425473211225715612240540820270051823248103680424366299572655574428341077178256852855187920522578305038101093924003664107218131390653075701913056540278198810388244746909041503735477450952366030089740358592573466419430312390035206940330995429154661224780480059988614818473119368966780864800771286735213464765738959868539122169607159857351725701494072577559485785725939821192051369078702716242868261112703500879262378755776102600474975610553785619424997818361022884023877796816084678500814608555987370414031698236915344867609098379700177830894885847631234824808574890075320917947938763637194995721091859110009263711403014035229668966075199045200291140147372989706165130371567112836290340143364102821719169732534048631950720524185424718801770295348035668836746269477338127862247982258863797532938556934423536397334925897792613749455604335055634699343338918544598385592911143197668537477525920793114622735540094651441298202757469525885824936613592938541698070435091614052785348292090210125105424737881932094881397542388540478893541766065199775774374150719746821578030047677033267635768540851590995289133908361074848325511995249890804581649166476224502122568144495520126712553365090699903132025371654454185370598993160200528029149973651171395205726738674428008373621991029330045750406593813221367549933216004813838373099747365062012359596172951942570842366600838017817570282068099220535311589132109638241845547203572667566134309981570618148743466598077604086514268199444457141062288102172326184479236245559641624579274446934603137681466751514975689711754103995110598015652177499544593224392731038951819947878360614376903308805992052670902271566832204925753242513972217890862950894846920994962402197107096764042181733227573221801184808288186385650167895065034092293432895380825808542014947562250575064296187408213526307043063339511642194569139679310657567228063820083051056092740185655779988552021739713191554427087195544487777603956339651600421826349660320771926714856274507333995506661030429069049848865549132504909500196661618337332449532357515216602500904146700018237127408144298047678968605144160540092541768919827326978862001232041944447317682045813438253772440893497632033048373640119335921859999108612425273411378816443314487888631454461308453591827831235336773896144745908583564497765816228133183257909006522461346207672056455411849980505321340350121865187820301878078555259264426665455677182073241950579939006269612783791869486529021818148720778027741910917622690386562184338032862342129368631077315288949775886302089496286368805234918619741506574192277338477577248972749382792290008451354086414040395227330067246374745868920540874692002882326170355759685264458021150077051194817911422432256137432593016709804872594979216194834090929651307258292704191898702361180521337685115438608076379492340202518714828623325599850271149962234271050536235576979103739742889420031666863088851087789425777049646689485763946362633472543421177062145387946493237818620808646308786972572333910502709928441743398209677149280008772505749777929630267947157434993074134172556904789664302935325038818199009931895679028424766177888128063602845036821785733453678745161256282785401672721500936646128886959774384068717615324811627228973489803460677701295153268115098051399135145941599458008115744233441426124187287921304088892968012408540942496179430131644810759266495286747851240003084156159167680105112063063242869596748213359950116958509348044745501623977499472749570255994045881699310079304973334382334109527184631649505161223628954082562968949165482599916566548643145036721414275870786751665418614828620897592119965636202723722564866990027075733991255828970755687818692395198784817707483691218604027837687309122527248578718705519678768423362402119437749699021962602436420885485151852781050919825424457535947693541603563274547678844760524710063958678672254605707298683512902507430688269178873274448763927062392866604795702324384449089475609849122380457459421177236504503728994309088427273567517253861943551059146705328032237768887373135410383771251102715989078482491741260657870318547591761793199745595332243130743555837772031505340736711182112869176668352311652236065795286799602985097910380835751125412084940251289298719929510309093051441583292214919401195876894320308215131779615306709599444260467926871584631911549461800200046676851824143311237481992056051656097602461589244145538116378205724699570319633157719556500106846069576872783876579452403844129074799549412592271510877408931911975866059340703092120914246167741105258528515493644512333181510706141317022998773383238080054346508842735666159120835056385456633643343573900796174236202612930284699375613006347607037249591305311746546321593148169956841727359106348972291749827393789785904686197421407946346765797096837428783784857852842532040190543577148766445276559972963934297795410381940984790131287062215899626441657851140463516918337066615917985040964799455619302672996792006403875643540043217477285160115862401622599885859996822037551344133820064789876521176386502036311511831184037108349353994941624346732911715716224570781160440013663964329464783360337058443357751285675490296470427180766978134413089277927027417583293184590789546349727413808710999435598428492326713184221096072926012222725063579139911473943056703851160971180101349742816401775983941926544357599485795068932670500580551945137598399806703304274701050127179894669170603850877196527646308084542670083014291226193334122790569710923825550492647425577514284987506242694890582708699159589999134263644786484258962591181789373494149856881000949183687685691621470893832034361266314333696777605001074234693115319893493160924032294868016076409441755538030066430023072129284376558334233835138025504237739179571408543891060625994054864955763353003718775019925797808084167915614979565732781684767672213516515081327303724155124325107060496931898746604536995835550487169098814653792567332361592150778625704487266963874734018057474567053185417042623033838415634007181241785619800250847602801916762187298390724966714758389883332280279092466738352667675571089109244298489206998656426627321252611412139124158163611964444805089265467249521578919665564624367682888522389284881191612823282483076399330269172627664336063511318089625369153266299898604746822072023836572510727078453220776185563963764231177862113507628256040434165567637092135517293755875542516994648688916640657998620814119737911560579330036242634390225565911857425892783369715214818826458645360345398565586430544453201941643361486756462186343963625467885331459187893089462886143640381486831263436148938933458884606171295276020157559353012890872952477172527725800277272084307868637940982557322842944348384776055786784385485517690019630366938320503646601819976275468263305776570913848191006823300163018167650158491182326986187879808784712880305788372382081683335384034951847448276037693614132545382965784089844491946040790413168679448568502578932606531143282937824320843147333881171240035949570197639070472225324000296297522747132827224148500722526779381353528509352323488180792988316365300408710556293837723484353100380345916552561037634651700943471518229478058566113136288828966427502658014369458403957632629198548264408583729007902637823960636910139105946176382643856208622798848983200487527712044648226181308146174528344831143638623955423510866990580756457521134958535276371791686362832166803486811045730441126825259340189689834725686911284347953155899511478746031236226285003611098461029762474061561702338147152167590500553166874500234260198051992260087705750486626355601635319670472254552006690384473242687852013411232496827102797044227757893778127647589662077292925111320802545643456108172791505231844209230738320379593961873582600845915998618873998548997779436152134656822587043954744503593093588700422490702667629075913920754735575822604845711909377356587000002401976102617552553590640750272656577285331753002173184624824412088601548377615288383690765160580271653513492686711699002170789016548662585592760322329228802794871709442087225509454644585445505882601354555291209598584760329101073747599884380703268357549919529430787037993213772989844281386313861876734175632517380365386350185298437823452780358213068885111555892391975828066891516850771023730572064435820383455586507359434470214804399438480585395206196474408037866892220599146659119339603443490035640219225781002078567865876983586983401696350626192664419651446219937381273634245100801702504324363639996652195656833049963960702991587090327415032521175251957244546351113809129119013511141682597959393874040008627181788971292128270249060062378153017883506931401368421867529460822757530123465557043825943534047100265598115115767509121012540826004034712883680021187620155439181419784107304802568106634718911342533647736809982471408075500534016629733387172466725986791710422305182200407225616781292199873178047910538486240927447155919099567760360689733235275349523479035165751306193115290254151491106355551519195966469121865458053737090991629070342707760506017460339455680575440624406438945664174801332798576989046140582269513456663195585875462927975544995612616297374697329515840270955823679490197397818715396978320638648272161332014557613162287443117651384778471588929615320425047846324783474309394479374517182319978251140745229327713830786373349035609987539521278969448937066021649700121083551446929019223173246515360690144805981363969084933775743378273574377507325337651133650373095947035074709205156519914805780535457472107490532456144372331126072926035336915842551019322717450314267854295481862719488225758196632286526963369389500604689054924906646785537381572479163513363331080402382402727884692222146397835327843657415341181236116261174261004515946856666738866241672337797444941332126449913303558109944187958393543522502198864884259270874562055645494570370003949942137126017220151681055591247561290478746769952486686026923194942737738983822101692546135449224621638894408854870234114525929039270935879710551607417146481778833299462039265680772881662655632689504165549234226969040982223560001890083199867738779496966211821872174245240953744362430511623696562259469136091240909269840574732764614863725900311532278509663627249883426676502883174878627047831598794912050853635185818577885598413969480419275595211352520459342736740367909116680585522569401594795735016918979528147510339495508066040726854925792834005331863706424698751537384490603727942651112235919403287300626395538131859338161448678525468317689053240673827561026951163568501804674617630662352660247366722427244285943740251171250517643774789214628536405989283910573156761345517320247637906069847967355206742735652313340339660098760070085614786136067408829471341174182968711561270506508478012631362569081137289778498764495246636713384767526300540435527711923451147558717147917630896293497315187244851830860259440960685920418092113901731093013967154630857403091421112685275474525037633935705318671047702766313123826881699234377787158216745751659451922629992341084324391917079049238622129796716198720884859191808664636705517898690246581605989243932014922535349386152403786931213375259284829194703740994504955735128491541249945288419693435114429578724000753225143998933009873481706356156937613059830908704476115222890607713759936053350893011090794919273921803338587525376308320112466848955433574532196023792205002930285779793118369552121454060806483068918945958557875114389326309456250245752123730091121161133163837737664959572289490493819672370298338515047256739024052070281543425273939233809962040034139945674708321817519437686792464211862637079804087568457327599587943303642848778026889706461143483669861054074594150931521215560257648764008337394592855120275862281616069714095386273780745762289060199478421550189460884359818442444637160087372104055070073316132685165531901733874585440118752427435752615905759835291674921613642727481890511071567491820199868430175704170767267630716451251793427155603835334357801662397820084975538940249290135894042048828897509977223602656833946944307523906444677980033842395508509238628587257900261527486304538310126272244266555905893120061578429120428035581821790177051419901705169855153000921240565488093657850190386822114193517405853773033570487077804262180830378163418990923016943542916655356262070563793730835091598215025676249373422755181842595146729551915390923981003599176398277843975375278578619608363838635881722790552985872662957427780349121353369202295840579020763511443840551931284865752494368533501782695082960719960115925535511582966681543534261181911933752685952516644185813184754425063057521807866862066248934808062903778254751146833151477956275908587261144939812261310378067962296726739567755702499469886899667562572568295532793684869988359316836244826787946633350255856264971213404792920011253064872480021468446013828425314421444612860233198947889874296154346982447585474727011265500064779506158409945703764429501890344414820568252885054488336595251233214764631623764451560038823717223463426148414520934924179421805846855183658051965863517186828452294017343460189389789588991238661234129421458281833108375255787289552926738565643467606739958015587355250197487918801570845583072204749437911795138211301701604645017274500621726072103558246135047912866002620874871866665073982338177508290389324860246741495420355216895394276612095013841366795138390998546507760268322661908601296109341187722206102490132408493152576539077842916689335352091739121325201368942106867249691433902991334967959530278942585532232298848415852338162166278870235555751615315400317552202376541047102143837035957989839437652244814335656539196697571174693984598720513220276516154692418515788642108987183649862439560280213328706685037890071931445234957049696421720875943647430131953589522049029651056725891168445043489639250694087115516191333252798516676717652710149380933161758776768082728009536795082757285373138094153236613851112888599029825856830500277986389055673801255348519335618401128561180307858156621669094949215565553928919661849106157883869476417363781258715111413012824984380501878928574608394075212926736423160819801254770772832668291743070189950942155178420318024700905442147239954928847759284829530761555275002301246567051060973948740142609597017114939118107211914519052781895206465668969075377911923820280759909488739972493993034383406307161075087958423758989180442521855026295109767000181856108104837170506961373652309575373737290606702437372136948464770813165859868081123542882809179546213475805315121193916492264003984988947224910275038856330931955663520630855889984337291777081958174770170092998018247841969425924271562616169749671813863287542759035925583093354920239870519891690662952287316029414856048182726787935326679395634916090507702162247316624838618133499163716577175287532985545617217193286051034966367011494340285247893784523947943811260545930572252621430553931448153773276585344746539046380598461141170722318632129768938332884701714690512330717809545025712154370244588108959469471421777071598247071752784997547367290448725242269540653409896776225090365763594397692613765413944027501924468556093241314569519922306632056582567594854568431025804656502427890347635021799106722819673360040107758531634105430775755799508451764977600282428100831666066071406201658668578936049995433915384171068431945241697249734782695480301636469847736116490880427232506459557731919139163492256343157379146674653939374612068591585267172132208891585142372303255025438464285278951235800152760326617832074434366135929137287205807246007273974158528096355388037920671934255619197826808383736172438355298522042775696176607845308116881653777566285139411984154625907863226456483558601447158878434442704566433959572805920669286401329474982794460685700372155653581050260220443511278874942889857808926642957582618572606307846513195851253440717298869258050620004898499854317568452043753265406742834530700004812332319674960249852053106244183698101819420638580504044370199231412334274701475017079586997336099964961503081848201869789049941384043356197572271843808239583277110934329860567745579852294923509444823765441695540343008731345177768339203736118227745382625761221491436633775604761810124681150506242675436352380166349734480672718929474811532923695119356195186649167105142616300846361084524708178950537345522174031371934936556611432247124551126287395585832013651945729167130954363079564258404161629134629626916077554469950955832050222070264197035087854029204539064821556649052473855528638757136565470227831062972575108341237770677103954778453796436909736932611118187592720043138441323020975514013933932143708460601941742349419878943645437902068157746344384998070206991622017398266647869860654318936717203788155589640367136827392930716104446811209204532016024815812053976068629005691304692057359934143507796009854148185801082634941639701408978215008714873507741778868256157574269661465169264177415678880129205597782622144475700154683555515973604049986940811422487608707979229709549070179292982067616541069108509978816163659988396283229756271535569663133790837114407841196122293516704293046368647013732134402362810145508033809993685478156476671825054155363448029213736728849508696755152450689899764402342481873126486544224798619749793192069763557786083868219076409603572612073604468777950263524327426458562368000667324392091593883511870692610235393507670337256461401721468515296814664291834387034988883798929980625840349488519715628886408841088784571853940667206999509783671159728258607079379155477293630904762772106676814787231765060697340394882288915846818205057588433961809320282666654945399020829787165420385593535840266746930036843657523807781042864450261952579496110142385926385731039190288815178395345078515653227034821187617279394534917572069835955946953123029990224493727436490121601915518315505257209074717507757662385955868749929358473771510627625469259605137278935977942176051887520695961807639015428494194332413353656208414513765947512286420343242755817561131635720476704296786795732013644401367731441715035673330638193206635899680112380462043457983094215649650134553132167635015001019350679966845712398505660802937510759300036425255803714932112184561012508635189693818015767393083400677462069807427793227700326407609430117599697655920387658624971147559120520065781094253265531851889088018343995384882562246623736863980611280544853071008790028750563669420298313858469249776450298552955498531667438697373767330135422272770155074141895630751682874760335305433321726326132006818264824185280672753433505389221843225889000315528088513676936108043133833422372119115019440482440589292773920019184795123865566499957637709674921996076801950408228792592057284250578066424466920157845170221075803540197529201184038274078893416603766738928088077430205494341690669895487139084376348567584533586892228529972424424680200020690215317650821412662260124366287148960359796005743618835354500001034926099066344713185623884384528153131996118433333543540752040919468262242273711009015790711808198074279716772968946393187983562143617739523460310237272406290210927650745423373428651449545949200743944993541095440298218715039861713198693218179743887878660708566451527173105796994642780874005415426593381352440352034805174522931672606225136192195056036937574834007520238418087958375604412556479255940388216632118404593621477801142667802262888554884317809018900762660471779396852117280074926856839030150020267609966893208653932240606594204617314065665877702618127007323874134557447657428055552526194897167085477526304776322586231347609337771941392500807683613426805417536915615547123339910263030996290309762972798985676572722882547560649943800840512083948938560509580268431091581165217563383413304022534412317926894398512184622280481916824744890404126660276730031686399689701608694577272274787494867306632675056392917278475991095071528131603337480420199111817676556910787922052370000438260094906451931453765304791585081968948185171632546686182545052325292281194962564229388032517471909875556227580050060759943479337206056589417222043827694487601679400793918750699237214832337009572405935929625592874926332798492366257539371706418627960442901976697873151843024999609113302159664872433434645269756762561441830068460519017688726386872748027629307275143271618461814803559235861625747219203384649859920199102812494736436462214609725582410036151084341178017769807279668582997413084414822307027889726893722159662112580479598435864972841643144354212981421134542557332030577504727607157525341175430043567013632479747968711366388557197541089258140251551645809163930796453220074052121643050823152294279043144330355430374757960608742867696659594315170859732297856617575615678371029297480169800227950154130158064596679575147105986810242524428320046312798824860812892115367666166203840606150965079372295639984749856241657533728403021897106589380691426748334301778020462214736949505664777832290987074377911587719040342181578794723758899013951301207540636097959062266094396995966832236766145074689554330568516142364573642578980798340235937008914348384685452455051412920312733901846463328669961684461875982812540901603086920439229078265243729444909615964730971665824425891440344901543418440006021351870789724932401745732895064919837175983882241784647115921621457020036025365846493629935663988600604229327800140586813592170478328894817172409044781956882791843596633490064928929529924635179159485059188184429965814492579041073111515532951207490887656540201741308977455616653200341825676479283714893340389019330921515127453969549124379076389516958487790966345760870867339844633072627876529844365579260325074510355515322497792097908662969583146446710513567757795720317019190583078034516952995969029561862821445006179473530611842811882649576428257493029574248249860304060457974524071378857622188478576942793123272524319590304324647749719649295719053251169121754790811456079703130265162186237608209276141850813019215016493341037405716799605463132743338588789635535963765507210179171641292624122614400551495044563732591488775638063926249309352306366892062277767426411850971849577293279014322424702415615736762629463038342342306718002766290894280755859872308585960308365040605779340962082844560705827495453053765277890510245673723229373154420255304810729483342579930603459358380598471122392962679637777263813788753348551343833347904081958669783143645958744876304888455968735284174447392632746085936852247425920263096877380225382182773930663933445527830217138122847445566097590620954235509600313736737242506211000490445143177989254532182280360306075613763918952046643003552118128243561076249842389756654615905267414703123690210748397947484823924547348103288845329212480798979153725935226277067176304371804975914639798092090587046711946791338861904962296204857374985818530031298298432812412221452063068495118629496755858151410207915695028378736196813442982937420332778619242924293269770980742423973494840651226563661806923286571235068561513514593876717925592591665075444020870715396153525760947911716245983814517838765559618734717978612887719680635876639264342555805203797420913274404693085257558700355684449406692373785495437871877058509346792179428811857895504396578955329484758077003243948400852902857675566722630461507130659084806401864916655724174394946771495986402708370185592257326393786865651692952397798872985115792170708232685025196907417565996872862197571186872748695481503714226810254149244168924813250073302781321585259024865934103262377986155762841839821816276211471873034317414032411448793469933067414622252854759136879909559775566461731276929667506307321189601750097679248341009393873723879640399222345595341624806539605193126087137456364152359541569009863484919121420800571208296195690977134207691155945897458702607556397749789195248570084541908097295604984247661539186812282949507496522288916174874816052632200777813866906933176086239043135235535690172137300205021498895260504360234979607776069893843765494726388988950396069033827461012351011309492727860359717721085828826767523542514199960419993381854796801867707956332646327870834476706516699931137910223147923450476426772242066370322528921814650926096297235502841235550884529231776803015698617434888567763031491405676320900537575884698515385897954904628676442432597324495697734641675017727373450567155876959516380290483764833814090094001689350764406711567693167544983171682924513797299611785588792591491008430153403344075852921724197208984960952435499006045759475951700539723791286661437598316724100200250829422152521851622840437799125407838635518007218477529872541864074687705552246983541069529710289200793187056838715982553379225464557365684804358724967243744102236363395864311499334721288693634869725782244873281851646534803103047892470554324550979252066315790400156791288890523544773454369253355749560465946485040992220550635836546529302214141004273848304359668342391434311957278507562000642520121652220036560804660678702202532807933984317314627518758907926285138313633193296275807892529170645586277988041264581400473809621223393238977895638312089652944543181279191120368597012831379780608082144194028023076219403710937786409788017896489392427644253210473419789781888697223069031903717455991264041949552745126942158040580441447802166876524403253642379073253355603158850144862960198191826978657039672976896508975987255357547032538534962327350781075121422028086926117299635284138450164124823886829359991726216286334119454098184160275531476551893159918219552983301154766997290374731094554202935336583687648779525103805027572129053762083162755000120251709565395230539170717579147464056997990612840109563480728187918785495009495408581560051252591237886861723838844729348698783549169173057850861918117529961788160164989821035782693379804349378457516953927009296985518163727866576390442952020309216791397881028820612115816699513340913713868007426017060275257809344002562511522154326539726674361540564104552587716553892931266793767624630311210044733913932474930492053539051725834970005619524167386401845194115186650628132898851477209168134803277391649854638970506753060368229445853898753285043654342824115008633081949068145684482217129337735527094940957248090620293725859964819412502188335860396737196263957084785577161763494048312376930675772251623908233698799912752372150271754071173698324535650951992978713280711728614577208182373369901786825362510267877381182986462402833353467686724051284315627958620747349822837995995407618213697663059108645239818424428014432196343360337781080186683642010737595454904397491876299826080465942308810796421314586666213983450103881655798807528852755593332736757564489605484267156716254094145019997659163796302344394335111430059635566461673206086740499073754037287660066995592801095927646892593513395888180337972252344790269698341400739344605224241073024517857782109002203550353450635617075767432054783449690145526823942192066506012023588611669792551065920512571542890014726086946392625895731192196069956939530061470440480339802254949266181987302611286274634339318628130759343333558851703310113730427008348348404288329168796503500062625024645407070590316607880105391004735162379696440349893538505509551888990167455937698835403995020873851176881684807502272707696440169879849362074434301702177137262766071944436564453769418685453557996850971850137220017619875360468093199385579127329537588811408194329713725352330745256776896355667031280303193320551265337372703450624650694778876335088491135268723682757141686908356887849803513274910719687934419429416276791278650215977689213003860610266538319909360236279907443545286276547454810989010559954640068111253169368700594211138338820804628187916036985571851620573116610947166843830257011023014825246742424392546988753031116118196264898848238148423844270772690957341830522191431601366778405102874019416240017671189848788135267192196205230861215354930556774834965842728466685309787633241289728215920045212259754205634545801297143910372087968207465910210108348562174785124640682048106866774052370413881580103864397151368485981951984325602109943979955984914841035001295511473469649740190797230460399097130882813470517593833292629493020807779283859527374822499782045953930315576595750837823563282419453907514835140121421977815915936979496098115780587642376003631252140553549510674968167890910679457726419263108364947247785623286610798656675744187721505514881191536226571907676323932438773232524154578388659112304979191274910764505212579876794541236348738859056647675364268712247625802236601920166062485789026381481553172110432662589529233676849305657003073629627417084671353085590529730821833336990267834277414469929225684818095691449631666020451248186334015537182814980166542594224906716685618968168730806907494579863427007573238308450549724278757010801883891064717493897478238059580274101764933172164942140090565042559855564170918437886591607177589987536881763200782344905481566388265460689612506386434597209301678826869411677670867470405784311736582908014799418650647076380206921949607833102021976913279956931250556377396690588354288824481864795438610397269013739968523792214708706545834739110159726920304375953061167166807840667512299626836926926554378832275260964366734138398328725122334041391561943809879472618681864649603646631007365142436691661602147951482476663239711819186728745552094382333781667805768178539747239781192917876667824693999281618481597926323116792766698388369208866053983292430567266156785235934880784855371839357084105051640282640800511693237668880190832307706063951777913039914417987666165806718340274325508281529352970035621207328880160371280025627289047938423280608072477718619654773852200616784882185716279421383393428476286896965596469307763542952743528844704512342893728007309304436119453474571391442826578171315533544288332298427676362025655544245129331944189924137142821575364029003003090189401366904057858098262440764276825978665301687726007382697253018718664956832595513003617047959742214588382347028886445758358899059301582420250373972252021989472103751866693381001399177589856620941116855289905220823121853580904769679503684601397561251372505809423826726914512944158625769823387358907859591825678447141037353218287727700322543618615644377542278723558858100864853886949627849310320910047016496364554968796921779309618642082886501966805597233440878569195872516623222238852727431250321527844829997552054065568123721034342613829135203833442072631813325661781940402078447410803347846353050281724725774727648075249276968526390761317428366962391879935965620643886396122159747333949679320499171504694790506228913444692805223446012694008201403607971632727706193730949340524557139798293564114307935542355618000425499750978595979974341598509880338837686164730759167812991882785274899688019173307819662351418954446700530271992096822034330274521089037547313844699321965316487246019084459963768271553427478860477920572657203909030165962389203462222592490866583336237299801638533783096966631287042556978782199717225692312875635337882232332753023464396573252989282835251025104312908525635828370825405917143433959076429012301855319415802946809583516135918000820536049477448956863258699818648481564188352991202458899383952144923049189826248367099795355597618932342836523999917473600807908861375263071729435746454644735758811676878920526751177686747596590597219356446257913170752175002040877472837329118329969897279337803650705835859663589009460636517813694356676582101258578958869717373783649577380514741360775964182503917003608952684693308177582612126170475361865934528946700627092160030015262351653048864778696344741436085684188424081019783951519045002792538258070430338015747848339148685166771259071538237951373163218569474401025127417958571521504900663060013655786515664191696898916555188257914189304104847571453300472271053528592475317607074203813667676491714002871895175769636159451786723835477885731119116974719984461843418056897771688460049064319857443756307473200239464814796543862904848397760237803377503562967718536538083734223871885449348274306547279928483535938087565586948586764639533228897807696893454851246374696830011351100841247684785873261028508130802838455040435494713959761453380787579485691084739217832365080171829834441583567407357041709233585725628869499221642908220492296615186373396934473893943918064255744487301969082139402834023494286492015260131701355589705623591093838327191756399318360921055486354062871041778286869396232496032318800754364527216488122040496919988687013635512023551753729368577357036551349383507532002876573019261420935159559360099415221352811560485886745465249031339124133004327652506075837828181410640192707764796918602377950150470000934625451207085399272763111631749487084263185551158463938658677940742260968199182264886153901167456267106049668691620301443668987714466645448691316363719110950324310009981105883863884682669963413298150307096599010591421144000894294988696985278219025036753117695949966692991031691321009863385169821969057222120897047058135537567867944794465653781652033051568446541560267967282936122661550732516539773208830749501901517532742735011882848648730293228339386520352262163205686286066201431504669617457049520852638285088539186200419993975180693194387808568582753554009493266400714688410656452206824172385013745987235110184115263705326972452145601552115060332403371212030103016178652256665825617356963127651066527240890748551823453083741340659951032909156500556397659770411501999888118576975829741285306828872812814152594677223258116113083423597650161926763939315301828476265802790499988758637077930028101779874266134142922657448160481787690339188610503861068366516305814841065763893421621504992223412214463510428116869386318968103358761498607041147566465674779269999090544856483714579528242361979541381864222033578173886965143299790587847949880863539954164973494752806744269540956322639566228470133764035710438096603570096460972820051608148954442086387379184641534692381700845674939482763351659928816481664863321446838294245855098608184316831152029851326383879276817257281656414110709200386230928874403775877430339149920196725576300084365507676347168570678590754629713383920878117981581776680805260101763282713292398922021439454687051726378611545504720736914188474106219104521782388941034389601979537250065951822624265156770077553585093877277717395291318099427267336988747860232199323679824665776819497521851263345917885288505770955636621492373616043526989631788319444383666212255862539807658197479293744382059969336352695928213861193795557215094747328608872902992002096780352210249621050347169671409510160021158228752025939920202874038810334117283148983872582755246430126048021432009484528107693795669699856432422023837769797338303361303719924367846840457761425119539147774636542422075607358260615515817437007325841397959856387847331741123119062788204072924142303840990253951689774825882392249137256600884985539010508995369764742942717404671688396372916299747430729933087556676775682436099434655361883587022104248441639395657867259101356388454959275962813817395295842702578102423870701625166084137719296085760518931015141178369382215076257678060031992864481663711503908975332251299910590567806842572700592573047354246382187471307528945346703884987869074005835765553051752854367261012740958258932645874123507421505374075944335993154516406095248708454358534770917578057983435735928541793027706554821950755832559817891374473224165414026048847932190826035381770774128695419445503591961554268628362488951283242401305942161927586575159516145976111025516069522537681642433779953310180843208836188013856335089127521359230611101123714189356517036188624606766996005094616542652360930032698859441684343458945607945541016350165245893781482513781872245564392654188412190041455854500025137623463195984024192313934714388082162554972639732465846793776796999797946234531624617369636166917299679623267156350894555584875685681028741531971294220593954313665926107241146644606791263328648544612097830595641306508770324966466216628649392944584179774752693968672562851679682914263816764828167410398485534773956737150316722121600616894419982016052065026494483416598607288563286151232027390697028369220973666158028915187164910911070015874411022888954403250654189445062986304361368661781398551472860660610248903500190481667302441698973713960841060367069850056637880251210814333392041457794744368871215614645643304972705558948593690549657214990973683415856576048478110136072566469151140565960710255605193112127347054882499401435224947155615491960389219711198368440795929942028878834975834848965188246117669876648845246050499449510342614323977423945195569005568004980282293638575282123012619693739287682918730597410711041430185048890405008729670786297290438621394931171658278405654576121032602626149205770711064394067211621636039528988827677403560657009801610013002672785865385050787839689194841177385002634306779362661144361635414352052274388055743851910023343182731464805101876121792922604323821447330984962013560499601111272832909712960968338203830472318355625823830895117762185273913921621389101575494965241422543910750202997122567244669603672012213593907867681150177355395364349787295634397320436679092448973730048928909996196615785623620365653689578712988783929905258644885329586577560433693457110527078794095588376690180359129948438835093896045226673961301677050784850645750953856130480238067727967888581812778137199069086534582432298351666177092316498892837632567177041190195292374874414598102073321300666603826845859512891314346122219995011219009016938404358834447942528363840854515747871914340558139082697337331634310762032158974883535179739071867432873239112221928932694623524260105655997508805154568174475877913447208638809681176731174928586337495821395756951371939768336331004669042204000736774361917460532714136521826148968574566731415914410175789645902964315841036841175756619739163247021188893087615981440037518832014387104836122737629164903807932118205599837622757202940818902348461287624299348983650791886687381728843512850420312472111380746959701658081163260388880980763054013539094385404920788376776439765122751852558597125539480245806863424326669507024654741770842032779720825114216478714218708123820132396290527751527143059298500406891919870638885239575018526247561836296424331183319530562123766677413584178157825530754133331508813833424445399653318289836081708375809469732594639357068530486041851137807455150603056091650943387670092623626676704106954712646057468817117784506907209610889470831677305586968862771212160235603934065256854896942436646544545459594539970674135594334755835358654316604202068563565181549415057760836695797446896804784992883045015319892072250225481779381560397859755694792113458894764432376187339360775561816227934434161285163113736814691078020116021692728006074286226167309774470461245962199705898103213222038449658920660093485379339613767877537117765711650504362660505677266861392899081493257620015512137097848754107378680328468425840668157536066628536710028694665701353447170117095457919299526631974988356434849517292684397209838001208245123005505251832297726193779811054391458170654826864101288847493250446755250363885192587919768435324757941299752404841554488240462451175667128008232564864238077810704550787939656587283611542191010103754615685528503351467334629513497314251802670864026143568117892904085610516352597567139568537824371116171372005515961875155438351286477621451225727276270516351327375156767861686589017231635525969995715139461264816634040592727787637713275227737776793885182563459688556584342725818859779668464897570676616708646324955939015222737878285289999469176839331418998050247400372570364005727704225664922486036496820485089990245079717468855140686749861734205695044312954451566206641900147662694013796672170439186163857454780161797741503684898655566180955095312489846818361140548664259366088643423802929326583044190722818762074941388523143759220250989545604945622184827620187953083684616992802346613978278598407186381392287684177908497556343796390404474645658205503379195857685899125578808189668629808895938527913425844764563007852111416338958868336560259137521106565783024733679441919734114172501821675767853203233039942654879489464622780704054800314690241415849369623813204567367296588509171319535864478185552597694241579411075049975697427804605856846713956556487899335980630529836223264003322743111962055152643395680228300207196601585054266479671720180264910324626139279896535587410706599498473812527640381105860235298396803010797159468672867511432586900274572801323124533813979829193179344617981150987151032022262919890375394743245208743388173882833006751708135233870088582027400037564785382605510143853922719813798324644080785851744995353906922720027846540971985904180976145150533447229782942429493853589141943687618572774427739866044962255954391593595700654920361775366335548874498534671839876908117554174335355532754757656665037689355670945924880117991097655622975219409979605013139438903131929003356577211445825550938552835292658314420128840369770923860186046115141542312599407104128741639213888962056010988365062518920388116008691839838229437600536158794281508357522651973827513037505176499788693855066892964235667993601956354647692792502005744338322214376814072645289576901051682629131969083737114676350508257387720101470402735206785162752487702569791475770590067140841709492415056061913070629029802025232612294545944577926784201734831165119136595138784766005903777196732307308471278377145873625656528159559887836384770061601384828870792059062474002104370911082807757288649244724154245506153183697968332575328082098078342369635336041485629798860643074374982529524500845300654112430162868131514224714393491323182434262687955838814325238205636636155018514228111239417645905922440998399827775356668911458133331268732188112487677256071311778947557494946845755074290381489542303455283867549052437505288944086692858541909668908911903261359039547810787017335041538655982971861071715060771574081113211350172124334231835077264186731251232453768146294630187320086933603604628527747929197066307020581284756602550481982914247373648777963987069626534556543531001321783991286071278932045288283330564905313852475674283263577586596322729913267650998972620245343978280521765305273347192399326063463438869954648475218698579050637150806032017274881691420355330978281693580217691453393315282867287449882025443668125118089305095735776115690783843322670015128159800787776953877930882452841919037975334261523105102723812046476309951106914655585902552508535392387988100772719558043288034329670812784064031513150742168483417395106573882923143671814840711980390892257350301061709946832662899820174265812597803251790934084905396814668380105385250368589084698805086868045095194860842085498662175403539669307395529395240438702905532935999882452892859143762252192623130053386824157757571132438292475164701881783009046400194515315701203104408226003189386604828470818429626930602522635484722220562028942072342046223718597162212623974562976352089660383350507109495713792250873559111045741909096177349598178705740853861817478008531917673031620635366771431335717436433521863405307944566729768845734087162178340591631566094119833873031668470647132494034084037285552205120897521477170235809837367216915378985395452624556956096836763751897776223308171852209832823700988018026265201587092235116166694769387999540395858120208651940142909574214356991757213504529932968669402129003503307348195342593332683962404024649795851371843497145156030666753838909391921758715243458667976155213429783193627358797202595030293324228571527939694403540163260278069182124702342819573320392030079644620211207937405109208135649894613590752884390842852608162528353958906745050465938844341100659832602202658796314173847254883077764852408560490669215374128960266347776111987214227872673232826043477244501286942971228713268647280967436986562936212487798065007815371933202563818783798243946666558419851255493058420013493688737224926308585998246104277075483708212640893117689042247447917456858627538640815759203537626166153825508988042246601203912123880309746732981472805429557086561188622533152453222149214638831525786928547647835900253914691858827298337624638822197144608660778788694583310873157546470537295160025887240262845295123580545608070074601800805844173527968339228599888336372062031452527184152105370949210810025337984992210936188260233211848320903929673415597054747615490944331375921412957198994486712381239122340733164715595291710980142215916344280619009907966267701479034694526246012039070608852079036900294978008948494008292289105995192757435768387861925890866489446797509614051981032850716225624860253880699100977480947697284458498732431737754890477954017736353162762244189374772156052576549936324463684670208999620827853837059640885269020438358326986093549385614522533191934077027617353826824143232941961632534732248594363921322247920540316227083394817818612681690194774751753181398966675326093525387603075913560383040438715197942804473856609522577343318370056394937222411653874292462395347160932126321764616871852853873937648656507611004427702906639384188698618795937092321533595275978086737355587510170254452469141482724202751329243263769798748275205312502994074225232081837676135496108764195926319558104712529259185177806824361184916643448725551720321408501950041065576099311833226024805060017845008431478926295101078413952233022637027301768860354067220180080835772247951609821187797141703139238204025742633604366729352268373148130562449568727432583037905676141651105562396393677345039749133355394633814400201172848759122208280032891883381442985123024558080170159632374181204277381002018230779000945588426277598766017131213239556213724825458010871054353092341693016735514149770647722659300560854438918834606100228906064292438754885900077954369591780524801000050597402666465622387929168730029787775904063923405626034224115086226382478779571761070700168665960359150181860091199687779260393793360269688445981734373630020648870602461286989885490389405253783275186366221777060866468701592121344493817516700840386860291592060433800619373969356208625783721190599101159812500127502049845181547485083467757998894099957049060951157297513197474978029373271044932475175228511218996594943827175646767983467193761709255911504286162569961243723904227670324811180876621281861762122638351428966432040750106717426590437176311358415137222216961701542777730139966637172563703143744209015852864132106816668278852734898045917934187077021953155499786965837721978938786894768626837232504812105672072786532366217687103650245928190711988731529736173034403394891939139791590869411909626993660944138872255336153142022098830379412856934889824249062340703581573263787244946626958068973769993998006637901313664160305896346199424559491881619671181127925040314829268244531014222906510555331904807449755510367957629762614512285779982241305286140510578382456968175130260037368365603763755996086863264717640677507861916149067062331394100059766115587873005892070293024690937488399974374058264966792528941333943449036798500199406138159934439731798707804671965389095001952739885791523449964263962465049884095318465787619792831229704113472610456932934364175654291018884737907144884903961619663328258774263238889037386414618132302315689384972703752072629560795532331345881534374000816612711662165347551587214084202038454473088253184319147571553858393424942680584486337082059132625278834044545791904274042855852626845456104042647853173029526654239331860699460179451065619638669917907208820884182752316138002474595301982558404982390289304092617170821128318607323508631663992395520350043438513017676453011905718112908342625033775479743979375915923386314030539546043939087090752645645061225913350361032015025603945079297063622483427899497128658866193276472965841742770988362614369893983131208186171114190229944878125003388926132808498320257459774678740984092693948491615156628761071640127133364452960389552310650433037604694137075309069501481183012448477961676797511789458383917395564769226074984359548138867299099693528807635138735742248094000932228648634705391821036976287294948245035792733657637781191987886380051222552372584849800518143931494126469850142871129679066051642617127575375182783980508723699957505397686477617985337323860417036228337306924260476881427562653964017355785705858531592206675793488429917330712590654814273962589403891633353258259820794377230954346936181755865082349505351251627723107948918626339671043081609196889225536720817502758407327094780887118253922227160935626850705402851057267761972462456642144482488398600263479606252108793110435237378528748006460839002881495319684841382956053548280872808504423870708888662677072283250257913876883143295694322979254470571334577747560801667405044341213159114187683437465367089647983843936940175259779030639142913521098341887893923785180527648138616397149681571718743433639568981763495585976947700842116797859318600656238698614638465211202545562640314950734551433255330573328519493574534930735999911159635334834136441422843864510984556998085548024019743123932363135308079812902543322081973734035825635257567917030224551856340033602429755232815816488709268322863827697214155507621066754297541614875414871984923602254983884858901251486512495125114067478426930969220906302233870292751634806607110329078109157080404267241227620152979945704213066248016442856872213136880753395315445535847730193406519408930827795456140253259257210962820269196540960788935498442868479954739299724901761937830416979288089047892764870455491499748162125274675147303881142229611716950830056194059479352805018799585197423345894198166725240285270597992479133115478193232241726481512944785980651589228414638626254192841237770046294945992861893131071075180611323212820099476539208643744269596513370693886079731642131101816432356853169857601847915992889601159998958580906880679360737644265877061326486005899226726471967481680006352390851485837421452651068485582357380644186750833733410866142682606932993962433343250402792886226895461739580161607857709720360414605215198578655668719373864271251428003038970713544741546925821837914203795023857563916587048917919027141905311059809729549289497013683827616973954242761993289920406304408898958685606899044713200923655126549071130051627168077331194326970611788478719524582669643974782288361234594638007740896402874448958337556814108825623860524482171068954634530605823232106618370236073904267644663269790675328432996736769611171051456331424169501362073480358052718362845772092126109342525169348606295851577102969454888948402195735822465610825550397622738198042477163318401334731391468483148461550554829685913660492725144934965619839309074837268917666096135660914989659013906201869790361111324090915409057963949004584926004508469570699888970580964328895458906818633015179813038118513585603374151750664640667565825972886069329270186413696204195595109861003869703624964451610191682838241951023742349994423954292062417538883648339850416850638188690886101008930736679902155755413279390046114400462583631997033967771643126978962256023305047917447238496733951022521136945367928741538083246068619740678992407637065630741329358077150146077630744488483681751378725490984168453705797765688769208945752262994556272243771616746107609118669812013205312505074990175227809922474033625181991443530835228641343460549854247044186222523052608720329089646912578486584986837925673846178139872278553806034397343351825632031386577989701638162276777885140200403869310629802676386921491782537799490418394618311283808214158153046072467290192192014401925371946801861021508154485007254732056616534725621467717877163413634596595717207408761498574872748650450663088634645700114415763130538107200218562000181612681056126081736208168993659397575496911194224024363052275132767158177581719830026169716131753093145323512456519952732637000716650624157421361800608037685502560064170031644255196707446222525766183618210374053324263641123482742885168339398581472892534274291034821697118749937300734604155739654076797107233884517756795455361235124477621775054651323437686157953165636435254373230507072867806384121383614172079087110878187730988278879346906401048808319895673736512565270477132104661351504377706851172476006571040159709771937447434621101286878173240523488125877251669593242686627600325912510680208839665582170180320522599018349911269976592319443659984138926081079005270643959056638018250755223530432698625174596091419732977391756004021477680874049645312866142307030704724965750368390486405133878049131577287295906757373442216462357529321928716156233753783700104370952784339683747454010906482896848384545718387939363530309483919854666690749094858061783628150742272373093744345669899170840687255666599160811050113517248958434162686028248609165548146604603197420902073360896563334287924414013680546668276519780446930827322748572109884838912521532573470131172422618897400166091596792198031150645463448662399260590155318038947256890086615297140475106132436174074700473902823498503093048630543907120243040086533051789303243382673881136757433396454597458990914504603984713380859007841769937849781316206056552363700932076505393872314731484582839527806577243466483109934455553007473788415910825631516006652477087196612234064991088898945602428360109806172579208856022282544870275000735695679265662173818563700027580327470366000748002894835327795681898970573879200139402156496797644392430168995713500114100527615630113552193983970919264716024829680469794332718872571568617532260656975193670790411912734573991864427149600958538602035686168646024211710928464619463804615543841210266648487445570205199074141823994362292334515927770060425027274314821375217287500123227464437165846648841948902620809039300965943038570767447641372653394505034463831628832528590368156433319169220189840420415384335402341225585081490171892885424382987167874348994804034225732603484864801603950168639351143847956246862120988012063287002963868997650668294618223230973118083976603613627238815614814786004743582785273129860871583636894938513016536338055276941641960654839750608998496020355736194090030126682180401541099396578219397665847609522761053298725537753803509693242053769856373643416839342643084029462326259533899094369289878797373170399836643772054130718424545819123495098304860604981448979875738511625461057203035570394143724861080122139223448420767414004746541861507968266496229925365493982295466069632888671958756645050722252550101786062397617394212048235722383063478903319173681004450991039515852538124885544031882220095849261388452240037382849002341621881186650478722205734335691219068017487607695222269901821927808684166180385851895462903595200076713803129439577268226089762411824423182902973482773689756520438356281962896265641549487612249119609156928759739440715168637455405495765121680735379530691933823424423243202758174321525796851042671800051632240178543061731193705154939477678408344927613828180573682815209051459404298287498429961039493947325821570972966085866217491108485935169761435221934096650699673413921383939070236175943983515905855652766465682760823952885779735688101770595643737741014103440872396440973132761716604187348870408575409423534321580348892310900296760225972087802102099136499819494175826159820973155682438047836371254621089698531057778781199364688295008715072550335782584050929453806457453192882562309516194094611787558896539395472962962205443324622326479062672985848096159157095823148316715098035819854769538767397442704398074832660162867117866080630348888385045025570338279902450546324451846128297316320931074953955970523705119505536213169962338822157622180691847675182001946915278040609342400888421254492502480788353348159374749439716741253360034764564574962715077204248286708383131864832430726729883663635218325862776321709169821552466517475332452584676116743355001480029010357020678023816231591154999212323517803723507649705920259002961772815142950693312855159795129284348102573721589850003992771707802933016173556792610903060567102719145720966497158553542914749371756123166184991166610505907210500798082865670953281556146782121908046526477657499367657557676344514910573885753514027552616803358896036318903026834755562845765807176335189267947147828607668273567344650525706680125881413619616760460571184323483081946021336315926287623750983278039470733195562037745320178163773009112799798926198567606062120943604561438980214074925638970927978048208904627388834766008567624342905618815172209314181283147713926273497230097018238230988333098352838075768365128989170925375509960991071045675823726795278521910770481729121139835316707042945085624825157355058157746582634024288046271833741962283551041355602228815509833496307194877231335362957129516141196966841435649126649431959599012573128028714013175874780077623125006190569826134409023056720988223562248257554779928592173275005685354639505547137950929793936220929369061290043295448520891058754339811164775937000860225405517046239136565337209729589747781853135404726218017009260650002293165481184074913916862828918222762565811060048404737291236200780304506168577305913808873885574485648003329014226754663114558435857086062077150563532945229926623107018496547281021490505273624346521256600452993190701919221929454301965648533613421428561775428358816611392707230824235019918764019195990295398652939990724643562051876192324251750380672864418437767486069945489768570523760344214772502282178156350746377821506466380412240352890516605752022208716521125399662998836484696052055223966276055643627292189614149756658571646449840672383168698036921635892185490076498621591955622925089198025386642813569702765748028208142877205733232355571667574058827350411904199072372156772472566997925456597802701928299812617338366718934282325144479646539039647435888091230373149309477035534742037712921553818836715551485283916982162450841956227277125860852791279254825205108327348410181217512046581527048898761135020455224053695034825387659749717422519010782086526635703151120152800479740288462753013491762556114017075500766390714094355917243266149749841494788282147287372184273558252115472509230894254046220186778539191634996302600429525085336533956923756470742970994486322647393165804678524527958864039050992657993154899040631626219103019353378694449798657122740385278111583630502136371069841461209889089354520721752360404533298463383774002720897461047902241317807121501719068316165496432840207401733189538209226238785881140476687894894726348285203728633707349628947522537325863909148305876352471329513538832339203726252163859460460054808160803875524348628520093438560375810143289783267558842139747400862934086301208056250139390168792097157855941651506833108068234072728098858402604168615109303122622372409688808855161639124790414465618856921447302199618796589957669562293652821713382717254646964151560910802414349342252063740331428272932156474344291165383444956936148134026778683571842497104692865591140671021409119557752243812745847454229262865596090835552076619515235358283852500982315799732014258485028543461469229225091017693845649815298064232732459516298387630990591942304092479725761081155192301006627887163148862598594860465151132141052587829459700350370542290858137632317628347697973783415324551144394141043698145576963914039320235015443936606019304209801822315107785324068659972113448865709656194619273008283381587572944293589673993326898824763699955052741953921367190927283043198332856793684906855602213408359878684190387735910607752187219092300866700587802069541170875688058711277158539039280974593704302144841933195687612362546211625175013983906618729190282004273406141771575341747957566927893880967786918109819933147283966076536900593132584373574494806690608599983751286695905182819532307439361998345696204859343135624995707362388801620810918227325076326519944926585544174630471395757732090785521615803903517354293039508765698677584186023670554923808259963342933008135781966782374250748815591474789614085929042905138892440577097271506232529328475636273277480587628075273832708891968906249137569537639113966926664255151197285611354225015682025709653019596523374254675837853156434008461161943527648949143974251830441027469587786544850931496306905374902485960424683691697747956599122190476945804037707438384962459654373577350013084907061217682798255710049910669413080995043775182137930542864496807067892343629568897356154074276295376938926106682785441769788208871644894938809420498894462871411745448122046553740617977479036368438825529503586270128613850994079992859768910350048264993713194035911815227112305374119896178462546837693853459586285187658432399331228979678124606137137765950533092342930906341883633662783209659470111455200153083184615793489475772651868970462525972977088820389001052108214051297314497323916018710089982046463655523152992418175853033558600495270107847772921321699782821110928978601142489446134522890760373460585807982173942956133805208637364964779822188767414212833484935952967349322778385251079830000408043102194859433914643780419387671912749965173054491239170311027310102551800530594398200777712416576677293972405674473189638348097583394081586275721366987990003456850409921877838422350003163297337939844419315810574001008503179993256785043765593313800784541864514679309112280394846478935240941131345207145508551245045373240788484460814192336754266103655365008675286707941073224187152128075197471218600033728534956276248763163530264629941213188360331523427007392734471585350225238928169460076190590923500071048021392579109306958871184782033463279384182924864303386085204713124057382182890446935119927445975512612051984476692320785069780001786280904425203628289900810631249247920606843740097336667477244663809765241908547293339579995794854987036853978910418252789824825052568660246604874795924610652624748667569077317019468716704660552816256286828671955292568101123346546214850013268289200294369680261396384658376913308712381346550317788181898567443950162258550182406827320781049904639132964328548517047392509536406577217091935596239008395130615847210651655709928850819635232851104885315994815932936659375272497891301078748696399682968378186591646519684513553000518915471268489793508246541891136436013259578964249840221429357194307656369898618300630059386450491204854826965018683116136677802848886032168530196898533178534970760847858480217899292285189213019135891785626272483948368038626634966379043370816858388210285389072548274580443836738943955783013424865374481634406542279782378645428158477641727321375653053444370215123509591932029497582496548668056280309467797365827216526204748432873887205358366291394549549967494496173695496901276550669040369652996840293653560697842280959764653027517650245569650543297897897075291528723560599846071850811543145362572321272789356906661723376182282988486493106775877430227032655034429965353636498899822838669910034357107933438729635667337724677652507950568650614625820314402512435970134464957697665857905441191616776488027987339479684563953201968043726542395205252172782281160191503024881737771684293637161478062386821339033397951346945633976834324803166245661835733788664160392852676371835991224314332858377787463325094924961885195617979258924640564954061275958569389884583802872954261928513916112499481647916625630321512697175356254791089881578381539285685516006045010192189297413069952111364411708558434692715111188269500700644961455742230043073420035954731885382385987361313658142872751152689208142288748704428920426149340798450759387211319207463545718645677144982591496925425030609496360950888577229351512594458206924850234100604752423136687552670155279512614620616275216692653162525204186891898249387937644906363723731341633624370628433012732532112018814442839886079572778848518431193407565491874951498714629913327245405118197689841086444599269122289536755930612607566902557747911222801743944951225698779586881285441459340948993220332688758146526160095376277064429226400136639067480972036335295512385667487187019956587605782134488133915315345588707670779877418302757463867536062778675925185043686443575829954649707860127386422168880170561272387498680999136041254696352261289143004083016123205863437485035419472504090208359539240054728042852324869594340103231241692002831473795587796629294298904465526259719999073916737316473663070148302679236564719163392303423460912851415986240822609505069781176563053805986143160517396625243927250959871662510404144419102734643868669416498165175265264270203634182229311288272489704232010718330975353840058059889101032331775905811548748685281908913443989520934952837923093320339450936230021022936481593389299135647008371663782953069178197371291258277695382617932656284839356799577889049319235891943800461123736649595260957361832972680960838408109744651955689773406560812161745376500692079022253540360152879387120686626462863409048943520855757047987590994897977803817807550044362215985514746998578757231251407216943084093138735890075330565668078600258736368024879301915697759544731464008833274551312949905701019729872508467891783947198539132837277967114744168852287941882060835088974234093606124769354483976798739575867961007020971180667193677577462442635768187687135809891899357202350129279581112739396060997311357150604053168855868249761837203325420524652831456809888680528187368504728049685771711761123179531473402354934239318995270999932561839312313436199254583375403065691815486573534105717484726717164697560636684733742607658195376011768754625528815828304455008688284293299450810321554109990446468805400530338305394491355374554024363081227914424973789097922496712854841544148222970806086998133822099537566180870876678527606541793632538318308381659128674093350072965101453470717354358013582350211087824011802625760319559153687885681540781655826431585302581440744430675620428021520166794303180987874823768087401004708332831027394015188332958711040670159741597706626349380471641302700988838663080834257902605449685797722832384813102351348062719761368732119793544243802697321631256126748975914125524352322925899844024056973659690907579060230503696841365935315078064066624523986903491194525705524995422235281997288923963762783168653703579080814259431282949653179362901913095182662504600821448561599351018221982176563823618238684720744766457653958104472555804833774069195783287768676252563844131229380877194745420717685872043163902582411108965909975357190736875151034122051965076439146037104905857465731612861831135443637767333375284996355266448872119210962415469100423553639181179526578945820670444297196029436030161703352121446507695421693695088199615109350211514901311690062433222141918670232756714911890337577742420965570380425838006051857991128686934352061015246545809035563979447820941128477093895053126309916106826029068478852957432018441590357828266098600674320996924112062241947958414102652412094502351425210100345064126725121918680664785251734847794209956350852741938655107506406389797490217787500367545873262538224564071188918255124996346228637425252669068402225613702547116913844640820244868883692399475275712543359572989341425352673105479580276251549734267162623998465788853148346465730279118423996241482255685082978527362343846392277295447665610523143172263977161439984973884631714401786941717137729447821211667017669642557481280177012290454886294394598134027233878538696997478625847616581530641619067803210455736989200459030149775423734411295806948337239539854119080655304959473436908716961163799280795157906586954638804980560048964880485355002719553262375843263696836666490152525895416263304762897285568734149813215862958558785912981377558869606369658824870637803294053870076206810842292830375800608355807676821682207712150633248356378617830847690198824048321638059212389070912937512671048835983202972593902996100142597893573173171134464642534914222346334647682163703673668697283217389819549457142633891560688780730308470142641746571633124482656202732908406539038073859753359189031603420102403777029876405276073646329267913207700424277789197891259565640077230252425076370003029313719953791162288431122087043723997863965440019384515781683194411286086856260423864316918475677885457481832721610155190354498659756820800420070019303974730178112555278166477278672443548372300896448767073495816648451950581237810968496873137968383815373902421278927524358732194068423273657010835565682749036362040031287824077505077957792453073927646627548040277226415080196647210075387287481207592362088925550258274176944408825049417246650942035150115521183763404493430552831510654112077918707582299302462896062858037877032709539692794549235634471707027966287407477468281878466658783158580033081163596991584742034787035748346251327846870903341789511262282011341514792246714493755665879077367960383597830342279519992330782910254988500101022275613992509501729797021067671862007503578107309295287495535813697975210650210527977911932879596600540031841810577615236945356474577836009787489420501968452790385820921380056706844594150590623929425636431290557156955236445224986427397129144171126076103666297522596874972101262955712031702844105511829797890962548251109283511856378840286193455554034723522488595696447321201435006889361755536867981250461423076304014954636422441699031841736354266355521764134882669246256755705946755706995108568143618582815151479002459187630138219448451911108182035515130551500935295055086517565955147505485070794046002683250741314090899069418411807891071225933839506548094124859743021694235749946621293090953351719730710218968429189465046030391846360005672285774186947901248561620344931743707006591334661633337065846628952924487668767120222186690962480045941390053366030484655378669287887632717888383879916017681170672635937847958495453706037160784151548723308466220042285302592858523140431697624716268511022833545936447914183373924310407233767124772198499319784523903593369112756592847240457170294673721894168676591524027081507199291723115789746120650103474619239283890299044237403200163061350454787673848078044839763925731277731477936297476479715147928061886966527844838473286656276024432482474347803719454093770895005231569200046427550178326502633567103578072532126247356461220780332933676177953669669092025939018731212019444155717287781083836169049723419170487534871768884332910096597642392437238233785823654156856121328609914050313391462993074964471194394983032876226098466851951643863955792575468083383007451594498818123914358923649272007142377257600887741758022565247231748812759767011986251801600638140829316509569853772375266591705040017640447468190238223274084230566585873221646794532847992630835102993013163577134872698733209468569096191742722355464760912538819902010749703560551631989968278669606641604919549101745516730315201591093214395153534039340863864580646022959721660583543389787793332223805495421358736871736661348737462086412388647949766412548608053029034040120838181885969371808033900653754652188217221396803770209130254384362833522634720772783802353991448864233830536517588209937461829687124982266490614239017293642444879484333653775873360887910529602995641140728365456914528956168764860035488577885738910197810023291476890060687524791450645726079313032181562703287825919260459117016663030218497371833197323463599381564484049935172785412203014345678778175891034480779603284790212093366278452309128752815516344907588270326353810548843021116124496742032165472083301219837943190497714553909841546543777255893791698649740922233880815939900836297977109257118155900932516643270172904831487864165801044466380243936519857398267017613670963206956463904143733541997840704851259093520908738638169740729824111782006012443843343580500234700476001214168480602734683589600190325676925999310554613539418685710155947449340629493363475391060346704391798324856283515610959128291083377450164922427176620279100979950919959173655618655402741694340469887409702836964527107542537344826515714897650410146307416354109414828728925452945725201123106973528074826125378053090691315594194405377980416162884251016293620601268980320777640620512193741831792242862565330380002931666332323736359239004145305658709469795794105831308039033497581843988543948687743727941406412523956424369725982017249358890072773814083841910691715680036473943421361314008052247056256394689785269400660554217960586977418022251279393733225669021490076716036083744235758041569177161994991321185666632141757855299317754320223284237766514633577278707550620811269296753264148736155626882061774085224379594904082333297041049239143888076074267100568252479086794996068021924353446351575449618002989432757475878490032259472794380814273796340637617527823966292442551962636810025901021077624495909580102330618559676330658099109487715149752329081392820225014148968086927811202042823775429450701390960953871732953236069565498359134283587968800560979985749184464858632632753196760529805084254401009940492557654684190260626699449475050383709753940045365448658198295022534999947102943742157281807052412900553160998755219719946273757531911472200242452611438189019626478136408506844604735398211737574228159894765806005641609016297251670637572943553969580823654827365550544266000323253373391936769990641551698708730031870599892528819557585069596532852798521131164001705704239307299568734742520860256995788288812423693972855981265852389028337591084422198464304976664050294201116965815400964307915259492520111319650195381277931899878016335604810867658982636601160919762454984269289727169469175064546556435747080297260568561518404535574282429802150988655036541150373046257241384277795785834034234228252949263501407491442713103579273421960986475657389894630961949814082425530632141126029535964587495452830077688154693731189111204990532459682225403875300574618866464015548869777683687985029905212686580398290657295957886305493124726366722138776743837834534046634738403329861913331014837377788737645068205937075840763738691234857110643315525087396188076035390050779675227243022305712298417931522795636706617297479699265886098107283905124506624479737107341103537904240015099636433851026576864648133618841125914932690424368898810156078490985265338770062288892723099846890201238928586454839613061489331420498218370691836682649320616380494751817765766013746653491653471023458737747891202937096263946417373601424011392025796925035608159610927328430128023690659598222208721654909258760844180096765744598626790666026723694348811152574602499698516948044786797375996751421458463818956154512987765108564513727410068102464982902880173958208249141862092316113397923852316318560845934999445642993587156821161620759617855723431207807743329845935232216150179299855345339737151130714243230719320169973687856569604886614775123011725285049541724215687338631567355066090420438687956796488727526037643422488581511739406040576700230813105592438869924610781926295448532861933682209423975425707600334517352943940932191521406999864978397693979536176526954879186335065351163129487518750092830370667389708496082124393605417928320489242602432102806978763843870947704988609796009221136267439712883910692425612021154519813064309662569564455197782293526510568851832197222690026642672664106709032170158840786245523746130187145203826925569958635797072396518054572622723651042555565961801464057625645877534366454411782273980397504865703508235698791579076671406397653176844479576299821529101551889109765784055738485684418241809949127205756574390141123258952632087569390597959573082067447072636171227283836574190008834823048941296079172968224212644034852243514739608932102944098819896964514083545392415891267908110492674392549633591437294258267316459422286714724387312918512346558769109016722395653784531363320694307268888359077774628255178570767516499540849463891554669380464392776826492053318241704851665700758454639929108878749208637533779510881417938825829592892218500256227022147632039970083964428438319999827543095174394342786974953006389154526465542328070927231446561143122868472581648549436525280719815712162405628230367493510571664843741612859405849467798780620187026601029646817138926836471553992923247002613348049952033535253058389180768026453244616950386676007217336725529367855340402419354097956435903233981890954375307842356121496549887972524486528068720972670913828716165803779436712911661227566062901192604494149198294215858877752010445475762701199172040937477236408799119537455184573665536782158700185433729453347767560070272626944713240890936457097149825849691727265604773134047795757672454029664466603733481742204325556941405979421148445637978686409161858640779139791622434893105585881712405124505467719600045803533593360737025391056686526187706864038853352198143989525370928075072747762585973710001902559019491397787579090045168489812409691107813759195114258644530604337611171897078354269654403203649362710648567858778669663642682795669523599798688826070998258701773786097757955772474592916625645458003111457606004180468920078370433248087017518629135771850547166059173253371937449878710852981927419338399558281034868066215770670437756893139403592177185707025881898321464739467949224097355077126786410924144852585990952352144064935153637332894174168905394138457534797545045503108809005556216622381603256449911568239540145086478948928608364815087680309544026377698769023889016090507429310960160721680229679759892859383643299228810472177232062775640847363784836368405147888827248044950572009850800752078619401108793677050569646885931652902564616315084947193261053077719080402392361950231035682047568070247732136966116954178805932926494524695356730218561841225037235152697718092450963190329970738804643593089744497744901784766061037052905596343243898465385083559232649598834660408878301572641406607924086643103462956017802006163882417274998153982358632130200279928379394236502672337070763741483980681630788911317901014894681202805895191911839729637391622384982748606303510297553736876205416705485453182882854135967331565395685787204788203035970631430680729024077027000874275102649525814797225603735526328103316450605766181059158819262114348898117117206620582901902145372515507593794045937630806417226636205409014584636712074026325292449583877902000440694097832597238436886121609830205045703992474572543278094122207102791770435052916447583358895071910199520216844768884132687622525476586034115944337486594823759102511633917396618935547920865562587244449367420308254090128220557794969857233600505399316991766859695477640577946390278821902238706889078415074634530955926950853915122015334312845507135722942970419162161605643886002039636664955177063510217067792947834493667452335372937459845202853945042579885628266308311259847568151515588482143457349670031585358042063980614209122619621330832060529613536771732584708591634620399160980785205468930094018912692221780080114229911795834804503464209069536722422690462028242163993430141987252327017749477882275334856914427635393256338192114421231642781267198219417421962791254794365259248727173407538606189123222026901029245875597929810479487077484979050968552366328045845954226953882774487993325082119836420801711464279063607405035258622840856162374143597220499297608922880103718534152306752519543357420122407500613187241785781793530322600664563271371922670086805794297608347537383684317254829259354138213814039306002213384336675628287294895463384314248355542534230224048280798461288819055341571099853223508769479104226517241998687427553372047606356503839143931998016866102533418287365265155827281287640464523726335769006706888554230432959246706450382979495840976942917174453864379245037534165213655141345356271428278619313878308281223198269308636406348787389358055359178242188888297147015656349839444561257317596845918862496686874585507253748049909438854820209618876917381436734526297964581054082103163183413454437723693440917370885247787043715553458901126387522056289917155428151806666201838341562203378162962886891906396846254054129485047401249209246478354493312768948638860684640724366740436616793402978128378297806399410505085740526333743833771015105880659833175007727060133864032639998791904735075697941503766169904579522267027388557385643785660221508731392908869467345015132135933241330565510490638361133368027463410063279618951278296592401503250795644246962000232062808456053488977892776387291458614320550832502758786685157487060623166022886561458881416225298048593096944336302764075031503319867851695301776782710865316319195270912907699977658237585729909851369783882569304696190738130181543919667377548624353088588802376587774968299816560754543246151211325897194993806992707916925239093473627947291575939966470928422999750219733997311669664116079694157786580314196806325137421378234098909559169333572941554090360927964330548748162748390529857655114934980846443011256929847269724256368774807195362369443036107140432863060173881551911801875429196444080894611848970018706744151770762783264667740992017062185510718949447378696503133879988272246053498042950725671387409039544020729432596284508137116739366343239730422433458434690104051560223314533059026367658688921531966162299226722469194113554718913346469857044797494971714532592987945530554439741034150547490368547872236990646696815143342502036201853655404818731091613649700131082234722434474595354529146235643748513624757350786191408612428035049574628914516483818453764532384383258285444060539553244543468572464386606386093496706018114339542318345299736787334861437513308730886662749971743184037036101758648216325486384350442940983383741270377124017530645915692041181875655647117128244665272890181814437228935739597588035908214791925518503764174438862219546129942730907216690093999402513608639820319140431470089650967340053229603748900713658525708328512093717494143021818238083164685962301147894320449362797826604297107576394307196768539910569523056738514513134255196047017649909637415010105516272730716908218337592547151719413992964226952263719827186046917616529667108142950845148163338272479717206900536169149612122960456608040909739264810971089924746813799680925453647861000291336805116597647058832628032728190078988582950880441973259826953664270640863083530979657435063096827828674002641986254488294326355152276826708478812509947440132098255045193061783648209073782388106245077405432907917903772219743212051891102301653544993201582586073915251355955605384629484601351106194288762377933080442341147282557279168422079306197485592185151560918150629985709103622517321557304914883966775365292745347113245969819070093736422499918688283696626212934738579468282618985774289184583789684760115073967502021002749403309537303387122722379975023576555986311517815894967991305172821145571446067333923439466927948841409102778688804784665332388577528977448785963223806031220400478416171014716878380955961975738700058046104175618538288085580690642481345699819547760300833874925361525377661468371497624440640098772248877980573970354051820957129635374662887789467742596851496065560202100962280846736096722109672183156214621394908632926703649541996351673528826100361670239505704394786320417372013503624023561240648786136068210607617981925992507036713320896306896558371776923864419101673870535979926023832134563925413462303321453061912272896178631734050862576871099194513418133612885500102681718728095016916608186534724882987857108027740211128596949703092277040274619718268322541414014932534869287330387052314965066742677789678555222921063226359742265378070226016717792139733339671062930696519988177798108084216596846433593557608699818775332888424602480716339609145432477912524421258367791927976842756616189949819364010457215491289431782407264337601909915250802256309766852514543703669845551209663900448697176502851482023178198969883683022379465188816534012074079774471397646249131758650826475758492753263187848318593644533710299046513927848004837175585099948744984331147188747204338889585918714897591886200682868683478700524109528265236237484423798080042934571807773059522195956912840669104018104056707329703527467513327187870415167213393551066455968965183187525017714642677233429165156985526418350058368119090012706385337510464009809391519634102893258352516592499094115918247733852306501375518813592273683704595931221334038759636439891512788434203383946147788524930992535165462141482816140341326442697229471476439814607286005293890180724351441656465492714942171498997919876354462722990175424265494817520070633051298647818339712741401522757805713293226095982815752222387900809183703559196739221917819983506972974628303813611768468426271328902614578253286936334571033647956550967337369161780023405517049260913201198053193251514768022330257094451864236883057028963880798534523505646426836660552770735366746344637856111986012862234914243684693992993056108619823671859251628789642026723696823094162210746402393362794988552238910982261056135171138827540256181149849794773582480507558167260977961932901196539024597136834523577768777329321192025360787909742210095628370863735885074505833865819514222054448528035262583555577830158004595789307220487775613138188261110696779783477679240533101383797309646105885073822308106463193067363846366142667379976978501229343972028108940299423467015115340508206518396622552734483825808820048659605565129480650576316051428062714393076478918871109453045776182122927950100765152012272093196489151246279261178771604948606160262189208911359096814847576321410855571202032778250339111106792360165460915559976316057405879589711114695378366518187082839864135215227072238548010479905070481108459320019105946878614564184807958806027784987748146232937279531595679108956463622282730681631215368647713806392842645756144745429658944293549861283055630247398551629216884276825739880256916144131169853176518917270374291875628775219791904889034394018865724193839781345416780452272154460134000344801699443586451711289049004343545118557859965569098676677018633915032693463015147687737144619100659660044072927881218668218112914287696919915698841006262329231380323311578446182303352437095756360196582718551139240793238335874938340275020924123016783272302919636073860989985426877683852062151394403170310556569476389531590557053129040518950233076785818782220831722690639251254233385096109099383552537604296546693745726745334804750429487126160187475151833902116770341249147765499985881917537254867504631960731924812610449125233173454085144588929247749163310828336588279031419022758667132007321477507350210416899036407679386614486673358721274096739854886834085962878312185996083378786076464070774507687061488621163896117812812511781128102010313830625587374329923347176648812434529304156673720395238050956173325723162185322616483106668799614061861125922123220300640812623972199056484405355115387593532674130613696551051845668636243540727369525558195038338128708409744485406553598236298740361132855443390496336008246570419249723065408533239264606718061106316770740247498440176573392015455821844751853327521385877116389438708047351730785353317907914706732639174855072085378629288474429593663341879539631881891425420583803975013121062569255543912723768304194991979936678257228982220863417792843088023715232750617845120018816322053836226465213339816782296250982064054198905801298789220953264590601328667316447742718128201623337674418799066806422319129665669036452994900908133668061056800270276749158530765743841990495462101869245357766397685193885831808241695500489254777088697819992852619402987529846297217065959376681841699505834715765355751493261730386649827292077341775929189956618475142268352889487326378768630839931621893016089572168003351161401875080248320219160008122299774766555195986825215213707616649889586154299064004311346056787704228652555489484537355010258918307122814618309586311790469099064834220366392263095158732566254777313798639844491646294480862811078615157705421356237909782487801581300298749338324156863919515356289478519036189568672361544489792431988713123811272341349853255649585540475616822885877651335855317175920890306729791409063163285948964719040278609719134066131385470970638793618964204366580663586836470652063376884286116152823530621558117963296030747083874590421012738571122301007129232812917344352889328341575658469579048745273466698319609347749516482479722625130069126193465098582053551595811315970757084320354380161186657988049110984194054267360705754081917439972885335397475536555892976742141174418698268835761962157305686933322769119873920029532100274049069624709651843135740151322920729330421337617915607198663298022525583686519339735790927158227731717768742462020749357177625514319076302289134444537434064706125513056522846865327481538515633829909375770372223929691364287095378509597000721733847990870909755812099439363545292203555356334375388603971831247829998615397917870851142925816084223108744669570781314838697361900446142548317422080659261198542888381223675683104145562295032459530574123431900487556619335761243617632167404042508216654058999953866015327092120463502718711361848002108785714669654136557053902243167866807193314322910159931565875904028559498039635322234146429926118084386386407962634330447718291785841090907520397601029626906302647915657556644975108461568491868144528282082062990557866399739964780434274923568198830360401623138498397045114936976391149971618775866158109669532366326442919562792631569221758762643859115578961272233209006154931240223616244504450883191677283997604501706747912735693346126277941758937708730248030122597019439566905474911660815587292684746613660044054276058021538659366203443161243368640754523200939453494903119080019691295564361460534555035012602463299210552060505529511265972482446223041672512021278745805310839691698112394348752770552621201736884458278181823803415930790292770146218288977964496172647652069734225909038503259814257476349306433349221931922376057893954656387982637981984263803197961156659090854495740727939513363088782618781349861835684171715670641159471164227669570176412872570483306198835937632313379388900067572843797999332564746063721845868714547993048916804889526715965587076770935513839675540885174712209340985743024216739099696811461365982475192693797367302761927969398563734576115914833981792572769241276585549742646752418489003673115973992721318198552423432936213478457846945006365657298784382496823057801803316066174868420613939194909205052388801375620022590145304090299399489549427554646167612840810578114172919196543389115329932506450719443476726395173658046495604260157253451569342642625749361894464853360051164412711313767598013097403741887723128728785186070748192731825109699067999829598919477873455893652401434430254707557440997768179636297736509611616539130891714626101572908671971763781549174717780745985737997784905497230632752053393263579991320107927585794496620716277058729167492430656676355094554056622947034605414741121216953561652117264311133637805559503640763061146825015595805673888914012966572016574271480760183530104509179208278486785336591632777992516313800311069727080320549022942717977175579107055019283021325435427374297374202681718392804181606882993430180655591563377701662340788362209267444505717745839074687888750248601604113709639293037865944076032833616272612689500911338568959757801850705620273451711987301174776931954027439544184964913128089224027423194158349371519040358405768318175383008977900044681321364955725304978622746895886629526030519601464909759973907659886076897561440400353881566961330464128927463951280403445171513177904203786476118739546828086362525902899574026783382782011152629289184642796922059008307655111211671433327916186119297845692067527829639325413300217951546316616882518384456512581871836970212577076709818900726358467251762433133204906160947532912764812974123591508772836181772220582147476278543385798247791677399380881859417554793305926545191518079821801702529140205694432941430750891316276954323853051275339102312717181431810285797808096398959251729759148260607838130753455379685012926683035996377429838755764206597527952777757238215509681174967152339631564349402386733427804110160978048860254184459233766956175354301905195717604448383973973908399324365877313776000221205831903718903335354890851000315508370811615785427456401461752729601646957864527522944765897910686217078566209680806578350138889654786607525853462090364871906460597024028852861561661616959703816923067250808240219530517382467361494025945169908800610684605174204590519663579843166309881427340868587785729314159831228846270737808644135761394149502424268505762645585249686032408914906395733437999655985083120057355445246381886532545260498399659404702698776309668994913675073332942198807097906219535228567976705111829191118835078012783710728941476759541736231076248066094757557645023776302232114014493663684936600323689298017258450425608290824400238771807868025248607694181253789302866081684298315844166586542275481093645940817908470205178306670390126203440358709698496550683079466048721184863940116896952529327445578351324888992538254501594627103842487286162573264051934952431140201779473239612966233594313355449728198127412725792412443121348046397875745785128615358003822676977222024981079985081879148040279755888922047966310717738549615901680734948415358425395280493272140828111619627021790629736036947799610768884372148154048237276079028762116207896518592282708812893494580981803373389193408361415999845566888368115626336018301627550477677039881845500348628637092669343764318529931895099957957328970777228752310217107729265166499758850064020216801569658379027462542069794792788755729784530092082365397338352782105057546262714893805863175226038236661168411053960818750181976329148047148967553546730454887083798921794150385096702809787788163807590658146956755335289522912351827774921067277069535135273473372886252413450996694771653148849996026423989425660691109196400214792213736924131970446272197342308022498363110607823129132445006293518705671224910633848418548745886965808516726234181463736895187861483537682873536602531073025850911615512889480195718599229997744998136535945270442419490130714278984559878985935244875049295291512930039805490621427791925387108050202815243679391169937227734801175808450245123294603451865490613615234458846249747724775629504381862557956192770688152907584463518055685396124792613075683071038610239341985046368244088306356426255553962006487203348617191763792319595145574094015181908085611652111304772489638377417745031986349565624725562375152961868139356374270112961797785496043175069555384516095140920384501417963399794283291270221906489171692832488473915188066853237328844930469075568111375542064369126520174411391367365369418261240185925576183737786290045154266736473131270012681768529526818086320940612624599161321484953974172017647352597345265801558578914377978780635259164752094269375946462959153734723947223503140350957943958148848739812169151693397896472469203972917875594963473986454226039554648374918533362921611138878581397814773850886959419261287895092067324488941992617671381576299521602138284037944070477814388784422231752321496619146725459345302428410184607636655343037664616422520649540952694266860940846824707601058274371192408633384490038441078271760487279129307571468110179307167660195051222851240775976607118723699127544696317627090353235904278742999924338864145235343351753569240352064191017370083914571407699031641640531494210553081167509977974957408800156123332301745640948685450299158594286305111183156542412091925854665636088813973046334041950003314953755991629400685447195293045938684112990792781523270099706126602723951204295352760714956646768039520351493689992344272915240502726716658518475290742659136009977025474402102411805371724715148352254402707468244842759508378856496847325762963897677180916874126852865642424833043385159052552947881647116262610373586245179680247922415396232839862774644719704311601765820901033124378240519096126251272699374084147518839024477353568680071262081926424032747676936728343179963858822508690114375965892152558882530172139491160435070830657408709836177273510195682660511889094619068925244650895329097476212443891410365593244516544592218347462130498837177872565818039307278137486759608184598273147803471461285511879592622316421423878464054150642581923450645106855114749332836067092685542990053490505877535322388380610366422346108793003833262855211064204688568952819667476570387553915116611030288320945847454167951117511155473453238464551941636844103891298488462927494531064863554606297209690088078798467357714651173919143801137880363643453001566778488874187037136574229469059132610904305145901625956130921478357420949561230045391667235066822734722913287606265017969435533781030164922820450131609120995766042023059796879621102707753914384122252043389762448893426308010649165958194391366450025486177029861274741048202927247750927137966789878614608450004919427298907152650227742150107326737985189921877606223761137590631092420912566792891865026629052897088594863340243847551899790192079247244687371952083626631569565073555458252641404505654796235564270299159253522550275394623402018543693404169706412362386534798416493040924233852794520893704082412708781283602838851291401117669794737911706480049059016605440711413532020967152458443643381884991021834527307982594087065758755319197853127575105172333056501578878600538824291127888482177138832860976021328805735480284420556579397892999686410572713483930618992862727825498298856290090804334817429406429848860704188838388423699346490689477008223426547586771227114864391098541244423462589413042938161790093995128859486543966455097773070712252379723214658350428546154454626196687542521244295167336992502381009569267161826745088502095265180420257252194393527951715816433005369659876761340358240123836594842468582323513040114169841133432672678478225001501692439651804593056399925953071738494101027134478827772725432306669801340655073593673669545777200612831161259269372620895703496050505800263708125187942666178428028679379390896828494593121791274822108958318642089621022271494911214753408167342969461293128061242571329890402795699231323495819406364848282012894020529214196489888003842287120483060674562995700025411111292844213733428152811488053269290495800100169525237082713712259570437240633149694283391287894354918924199015572167826845544492824998216759596547182111429791416531977994658932974354267346447722494498213452486711806902468273580703605728493367721466418372324005582335276674719045717473892554281995198277954854978973164053028482200579773871636579521883642325809672703168914034948068067848622502457230309200427172843159883566608695220745036924746361588615878251820492580623451191496672176236905420876894264695707863355224798270240507334865367405180309967042197394281950086298548929293507736514371984003300788869503128052667033571666818644304250889621378543963790727341001282073442396142224420895585157074244773916559379890724572883213260160136146364191777113066433564755980958853295611534089268328290082655755926124687059234185061014147097005425618373109349801664924011249697684210018597827405988480304645156540203785299519020706183785411812243933458859407569077235893965696954900874451389031831095253207286577878493697957378696822231942251043581264339836318789295760474605302507166178488963251866919993455481953833348330257380267564979953071386681669519211545813008905439173615766205915316612725418853532464777351700690201081864805017270282088478013169374494130028798783571776337955333588900156951998889136433529901479971262154239258725933273800641509070761264187605404400708885057385421608461179956060974141578088644859552939518538115337641850403915943661162776290028899453176490086623148143769146283568640086285195073673219518264009774773977670984964211931685423046436322760096475549439455692400943468975021619119221188313403901425871076239603595327245486701804991199957642093183627018032103717744638498148704760519829095320681923691757962604841721552335898022675122804932124952173355182669317205122892002573511571037052878878772461694805805014681919635520513703113715807981115008599860263916314689731690646963167226504995056480000189220880650262503564003524309416970403420998205232076475957488265117820308339175609707715164333373494615959148426139440269754010645046449399224407926356969763619648803220157445154886185506596551585447653358923041081570323736444452863703421084001194397585862032596323512266935072255494890982654396700793546443347642134299658560353543472182334599147014866561737255355340139445505259283324497169314930129528745682708519185448005691617237233333030669411819140515895122265009595558984224357547811392186085259386764542625650290873756577930072598100639083532094664884938783934841573540783076607229160858928921387529200444437152443151520641545349848865006210224423660889915236247364564125041630966120629059403934320787344905204829388659185761414947838721796526743766591299843861099747177881215053950032734225347475072218642220975876794349497917346749428995785206761929597128858356608209626336113266143041730655843440974512734595551770742130119767630749365953946877819191282348039569965030435979099422268804083627531386485065495606662832068519935264967140388683376098464351335281105829356811430554319002685217026175698086272232809919329400772158197558045161190278928044610715935603338450573009237116629976861622438504581559161251551934671025573345325262579380573837204665921779874172856562803012301913179374484845399821011276682392720865314997736036130763644741182211118799036907881367095318419933916841735360713798300340170752528154355941080964187073316578962920826312448718362831359768307076503624023712931978144845259853326443567648993413650461520607980245423584244101889017576116674655154288403150482886614338205945270290153216366455555139723627088084724798094811707103053566366226124468707733604352824263061184333014473845243972572071217432859178378280835435441547766534002062891160682816436623391196619831545727761367406727840790175002253267446800338112088808582885719135614835783768685756417797683020474885376724513197473795617873039583047511700437042317997931836547692352612077794819191973085862795943985506321774471237644761005036215200284814773066748399450082520648922283850552808870206014674846175280031888205709649672895856445807686026492657778036244052340729853147362132149867259372140183740866582005195225117592037810966911774966392792321568041913810960730344933705353386285538033275434876665897037549219425580576381861637679916792422280317165192690836596477584687158985314474068776101327520832265010271337077147927194645642880031849313487124129786572607628115619418465406074977123351850522200916659825180406995024225150475749775899753811001292409093780301487663442385782234882166367938887879503648403257323859522462302134269129542754407274103516462713947137171548907998413376223230796485450864843930386309737729821157773824354079573048498944948384375724859674589899481657506990419685939954793768500223088488178711922354795004498632046762708298399390105325678905931737779688958193101704468632368100613629601386088569845329452721102791153135434041447417430380569102133399885391555132896514821502121294831875273039994126222454022406598136907542896141532638671504505317952691234956730586119344775295799121391182880061354462999460904148904034131835042598126834562335773121198450043652758680488638923554750677180910096284589368884998498197978993255281028890194658966973302828521779639227808901836517181942753087008659799314984539612691192837042103795018695720738175475771154819177607332830898950728705615187793300562293960668486904888357249515063426922559313240715425783183828596138454512168960470936002416569305382220505267934421415015596152557017719182381715433763983178298061761397442849862803821715534416579456915850092557057812491818388247083914294331024546020289724764652558827845565175832622966985086346977992725112549688660892578412140910330312262270477202683341919534719044572829604104886148092495036793433399799260563472954682366191230857336793439282871842698047032004635019894891978925269723023746507913380936418703647997308839617151906538021417567183560768350878567062984710412239178776044762219282133491080058545772149234521736743470271282395980887112424891963675291430942417631709701365382215565053234891261095670528144528701641440057128150222826121514588567003599308882174273363883102716693168710870951693484990367241883307330505547871655392339414117939460900272372642683196327715317241263872435405442276237963671324855035396472563428969115500019600279931145923430066838792913345379708892761873643301388356061339569499442454435844394409655553332438990032442272374819732854024641203021679931522747443429122881278575868605070718020005792844850463222098896958925324081331402401087418759797324327637818835467784632319233180130785233940796428207837687227987433551670489821563828131254450582341927166804432210319047763538624859331864010915169839811702922709857038647710953553505209036742575859870008506147294200564199220773572106388641976187520569617089324501701608515982207749784683577732474819931123165983278574641037828061231350551423004740390225140595186162864614792200523283398692150712899978327402997743737570557617789231965839369625284230801133915916343435835014859833275156527983107526763414846189986415683604712538180061343323000864595681794244820490084977119949978493184913103795035155550678076185310899863955278735466219302011710920621391449231855153444503173623634231338626645845624174493997593708146348342738690029594701051263081599511885825784786171849274384392881300152192578378522280229289362373329415849371459572281454342591616453245339510160063532798145111969765644831812897356497462853487090749456546588093980111856476997661392169427187674363026559378542134516565876647081769786552819779925282988135180463914146191147790328894076982709453288357128182623743668077693578250305277272454900330045115694116731687934861653903656029215234824867175999010938918782933377193767136018570591959934521317619998646520238283535995798879252776967651720755548484084244790568901257748055971791400783052221487379010484596114025079230976279528915639261453878535986730826230374316523822684797032571510212459372627080518698340312703481942063655663578367920588594364001887364976562701630363203794684574353934046046306776255756251513052622892549337483376816781598031387069587344615266452385890607549794459910635032906461892220971016423503733606222408052017025470973591130866666187808210436000148486681277641756341303560697755672005371551433293127792458454700468486177369651553195658789004685422469607633736213313359617260735475499974752229597133041584678620727519093595135469748072534718965255740781617286583044132399498041926889841227732651113162017715137018894226906059735440221882607247466113548401964408295592385820781331309810923674141651699566870387272933178102440439349540037919023378006936711350395708814327059712395649273033134029565146615594640019730265189019127956963751027801070585413785999359623171622144640706052149597503581706727229169582532146821681672625165059198217931456987078179619856565019073076768456257625325130614262082422843822341748900263420754709840854536866949615447566570185496305168665083197339913885691500758410519303777691786080955892714717783552522587123589088106502149928247204391824992063232519956721219912696676853242749579320240895006731098559952541794813001816600526458293297107685788999476559121155539061990025854186027383423074197547767031197049629211489153598931523292264259296416761215541977250042820944356098068529245925607157129620906422432285020679228799662064981649818175483388132235872790047912698688034030896867737674832669318491612738013649546081358019523810905548735284223666779725723717433215581422282103255755968374212072547369720945947893042754913368237466191808991253034522484398477941832704400808273547164691557072999621813540149083050032177840581467966039543204309126308552081743074198371368564340024926494325051879146898488074106413791397349966642329351384101295526479841767606398745861400111664665746743093793707327553873600722283738532913282060345241224653738498808362123539016128469664499785014782971129050101101817237754666582079840187693443054802611207341330985525836454087467573077429950427898369831430600048108650867664770126876090693051620620892779928780741401686160425183147077435989991032923812095185763563596714976877409588341067972184629670196876061722271752295018763279046290769097021418953326152999166053678245707797559587865196101326839105513680864651176411419812332668614157678428974384919375159538298872466846132052425609835677538806968580570777637838641398621450279777553889661230776549354389834619962026034577760601750570414623761281866263422685727549565400475015126549157305114063661051619377269715667325431165759569587113238152813421641906304942810067430773871876716603316711111898158403207648620154225390849739078076721273832303647210396395827077819991264821170203048333253407256293938397119736277729533259895041687828286028549467117346444347627220840733958063049263063539648564832512819069939506817057617811353498644082622590741258623070501165380507087272897786975820564021395216116691508464399670672622268793191749848737926747750971013255231823973498852065709882334440093171507999753234961068005795447844966148084722132454693062074491614735826252740751456412478794475513135499214430207324186494852425617915112520043745304572354065214887087165438357684833018259573180760930911485449269029500569507335619890522046935843997916328707386420143028018886155060629512972382297754458350753576429722447267229424752817239273922597862582846479812652959785144362547353394104776945153487748583944014600261297473453275760036449760147338463302593241963470730614887138896338749598502539641677435181164143328041292266000684335941368925743021452320979558262367872162772910893810451316827095221414242003381873485434320965289103006761447465585802907338760701545329279764611835257127970254070992589890587758255932551096330223444066388858397190696620167267729855967025471277750988837982305596872359854614244787427543071023975801545204389022666459712743031125169322070872917960814101840960273201717329316555136265761032603763789484217151805656388969970932357514908856556974606570761682444387422756483613049924977951247604464167995264317866623719189562213604091487009320919015162437690017492997521269743414077945062727622550376360962908928256712921517899576897128271729295321097202367722445043293840323940483691393712977053136900951782773349397723268145271553464162930690398336437426405526422731897761189666155168643819001982086282241256808265526277131740649292675113717013243900393184709184619036874440604973729897270565761200380895004701487534094964083480262466176211281275471881630041149266296031546630140220333496007864365581723422025217464854850616734875680562392916747635412115300850808406652835672180324063368249900737620382540296578293392557796848107464180387972504948576919139176605417283341888643528810295140868031903359942583941516623338387524775484430714397916655869237133930872598212103613378460441596886901130822929856144295288676785870505309824691734411294534418488835967772544856962796561941081854378506106387487546006545933894997402772896576804939850340414798800795331806968851245796998619174767690088976950050319303436199611689505349311287632505043964612151518092694376384094695435733130503084193263518895240893889312881490571108770302796806443223764953063210388103803773442140692749836650125993968274216651118461538586686345602380838936982133912157472940270686195100885367554249588196432406443970733220449494171364833767215001511659498318525249488702686541496842041878023291852488105238402197031397579692980464222481947165349247626926915780994948202278091673070871041154105214422889724253507887931918761058799616310129750615611308927517021126858996326925993142954706029733500495194495444344464171979979214288620398212684305806305791431802184918569111777845267117333121446408849686233083375342558702182575938926308826833059797842933599909665579727763567205092689287725883610044102899634739839092512858201284561665742667682758601450654698323568739175847754790894023304315164672734222340896283353621593616404977044509026938399111900349395236649162550287583380593947509638867929903623065673605287749323329394010356927975177084127419916204214342533082964203042489047053052691990875071245772157021179812007786644405006322379684458291998982579310763743015698350802672343211484237962681831110673827946344531399241172294945251629672714003415823444390738473024017036085221752645896914722353907665722442003982901618820986888945530417011326083596097113777374910581840669164589829262510584617418842902469818395687746858547945672749616537651919954479667234526449046782062569601106105249127753126071331142265952166410788565660802966261885502213504301867295320127050638043738363737140846209839006535726418877814555076806553055388974151454335320753637511375780658143548101991466723978341482216061490552428545520065997156743545889598154602082598915252153095787031548484896912131687166414710621679665305145139475612335836679329165133905867200240941954472653114253880674345125579935091065507835373553310528024196121569917850451016595042843914800487988975712202548983276923998637211180857587319487546296694114446940931640783760777867164853982697057204909450351012398653255493465470176975937967867866774856543784345252577448160766720492739818244895186225831241247977418100085486369512317716189224148627195767446899545188745183645766179208373032100106486682190154727149428632526866537436228067738185465746510643853715792736976340793035230496549774176723333306222017022707441508163748106624589159554702532139057518692145254659343269302312305786695165667255168920343927334783293573999441300370392503550841111445863187767174211035482511789534870880978346331350639237289033226959965527304492423227344108026677877629146577429169117705613118709351668337697068979831757906464104347098731106333981116299118716350402149225045920780665207362850675933483028206453063804135691197331421721804299934853108819551241826503621894405933471335313659358904386768585358759000257859498753978580358134400813343847782975163118834593572209963870157396995718573617869130766719766004804280562754333503268416195543921692068751121023373936689585910975256226693355721271734795484437250176470783743477209352269118804774282271560489047785767065935993082271565929126644537369526187606334844683987851006305071252807998540913342117479716806722137811491920720191108014835950264062226072443003349741831406902145254922122792464347309100531446651135712492341487271969787459864338582949444500534465910486806108101918639533024708700048347818652494205568813554186961786194615412280271861876217934044988680961706943179367179299784053446178575392899537373507734414531566900964366844297684370979521008648021195471333995619051128127518456265686984804425308625441596213248655027724933375545548291618206081932732432159953351291163705980641463622830902522798510833024005333102075722662048680437894678334820305584328399830779241494190929035565314467794515183890946341959688724758303644909847386108287050029467601923471013939235638978363183863399541654938282703759242162411689572328010541964344250405487135192489975111416369225424473905611226988557848663781364749661865097799580572814714730687591145516981494054459994731988115085670240536129769384881531945442915393450471540349343863835705619514999770061219571950026430092795114699960101302040173991605353906314352107833402716887456261121596451905162412272036105977248567508840650996087598323777441631880395177690749365620279075601556070238435756025582097835051687528755918405880551807514962606187040125641478639066536789053106429261716714376892636021156224846014918045933092389586766815807528298340948071457469769317273556541949353474059971644726625479112748416068874522296392282025211103327728108647336807642037501077316126174743996433229044689922920737403123803767903458790349354294246676044856499846387273921099604180899383823879721753642643147196977502696204375506515786400016243318387640686528167500644368424382044223125840886345736392195573142609821125569611890043526121239613505543067829350483856263725163015428900569415695522656440117707270364068101370559037284565812245842660464645033676812382329417438544812399028954051349887673679521616829033847207434648302471040045720486225060010436312124263597275478822472973737415219260172787344034481742108836230127414114549481969522559925728112864340056344376880563298558288206653924061909204102585445230819076600394099173590711269196720381339555046751053329020276206719426987241322422134522806315537893646608588653488066791888497777793544209712529605591301286253013992274419535660104853221677069040079031006125808516375940124200305445835359445267096350519385542234624911733330080252563986585189376161004714338994154967487949419676998696398433179971333189779623629323032786503778691952875774551386050711816654844564312389971266808938695528135619832762527743002046099195388897464215621972945555348661994366129207404974553121004236069006795662876326876121020560339768498212887536467679416377843332504565179109632873098401320376556632115537855331384318534163150466629412358981207654258797426509853934371409762435795310831337307606114497746182969056525137100239764944976742595631266447639725816357270824969548342092796515590351269399661721395090007331876764436969500833699849524352332660756173982892611413422473061479038212152942394298331637035755686136351463046436285205028560119100734890489091819099901750301257925751011786551500904379139344923839578456298728255712563244959326043194735525540973868642248845285141756255743094472960664696210526689243032897104636370853455361390197385532133036762084770667190307784633007951280758311059655675201602948785675419974754999468800197678201257537181365816878057130378698034382049871891845643515571896264786077940419652592599444640245714157058381111721288627534932197916302813574111333370068595345912148806688786280473248692454618689287191305420367349818024435113694369261843387000890141939139398111960095330330915177028688321253737198698876344657849990502094241712638016457943729938604434550209093070415678562316365680197147145908194710717417768474541980157877316915054959991344754620614675650244400042754688801846330085672496717424017694384808927574274854557690587800834909507150466812527886967704051369461227723814804095807437159759945904427650583153489292522910051546582653449732563312791920586335521688054407834245129917730692345660840992622227591887410855373853239214718208738022999604979790699549266576645652434441918126675740117429428287361854911757670306862021773903117249602565076327412406739148415235879951416785873685297101036651959233764389887310404674398521701493987056728862160734180629987580585298812624586414556100945159639479298986900029367184170733914384235510396777574512991780222644428434049497864594415893714342934994105611334825478141138519055680575979077269239199444510564006302846621272147548527973011519420960788283573987009779306171250818251085051375364173517364905839237426979923803398277256520712719085423054438053054905662082079145362422700712117686978573313122741207687110825382004618703278005577021545616046659535090892985006926667487655823540156546226018159599407270357873610606502884151880767219355032971121231267294672793622534909325296197560925617625108072692887600276096006030733653767604995491085385950883633868630382788500326542628060384776420263858915128461232690947294928251623882361696938946471623909724069731239468076576615193049004110653028105871179515928968343270286166541125623129311658703183817481165088900545662179397044516269094226938847300756630035488339061542536169745705710735304507715552801413385622772258612301293932504915325925245226626257675184678456527213397436732495023203078081620044347158542624459924335853499679785758813587523297303205934642254929404612445233752489586396383910352032910327731501170585300293492459488653275720118392041447619597990959855196932004928603483470945025548454956329406609262763650188215864749491178332858978981028629555731615834313806690167721919462746622793285260537268181119690257050255966351969383108129287770948027879589391482750752947038833488666258161213697523654766189258254323340737268195901830500648944783033300757174644623493304326493994394186275241482304055240431537778794032004053847949640055105617774963869603493316052438047433115896114462208113031920714709735629299090216027617314666010666815005677615001261246751938989136849079457959290128675136382471263329472061898949414071633226697351034016868991389712809791624505573043229743514456599420379399004792564382025417294412156517379288266486545162583525984147275674075087329584994742809483068817793083411505973432242564136478131070662978345787377216905021092580491142223303836543295564265058669524666593156144836596055016499910527994521101113990707953340255067296011731899514262860906774781542050369442285079215985656362489041570468358525964676045807873186887581670714196603065460814723279741761380650179912623264046892938930388818840985162756429946675350519478620325574804207182107202731508471347950324681400246923375955066223035828245844045451231684084067011452276472398196855421980524206789357409394065092077520803641743686639962346501900263507742547752940531151328059095450290765155240807649729692078642426952211395809939382593689203778454248473768163034036693268686182443282127308363182495834184213856968907918012921037363253728932683192951864276080888110440181319048830035932568487632357581662130417252871612805907607884408708325827501279889745454932111566525115508856074116942984075747631127831844089713865765732416461979871862239396512232465962488526553419027323942940155150760650574797296700786803275953072444580171669079699099278912500841488084813996173082618490773994324047947925562893679194974424249161653103025672109877478561074932576892500528802523972532358077976821079213652616647589794870300978556440647891361421489288019823842361679497216614732410424627834467284701801637985223901973071317459887483894046778542386227263910050571519936359806627476373344538620539527878984439286339673332783301548273265380744091030364050638529188192750679862098946001692373380671972650646177758715365816021761025789367415270091584708379697857318556039278645047775589131075230421960670336013199073081635072157819781310667183028961638342223049259478135612217342532070403731116025130648688791986842103551504759526045149812716866778888544009717856050313663150472274880766389725324213785133403136353751900560348315138489350379906436566611650666520902322332643450321881432110065588155242924356777542011506053891731192419394915684492599999711864813919760979503689905877865813000529412635217124168893499203137708907660733785732018177138521083722875892587637316814206003560868248795265736992669436818885753646398030742441292065464944063496251946319676667210206541559092580350333440334262760555428678854291103412035078080135273535747929883533739602862857740948747356278797572412890965834323736373697341202370537755184328697355153161290676277107097896155571235183233763144536948436284743841766197868411245741194156340776503276389548700631015817785331574311675955927251665506537588258053817638529563869509724396236075015241034701410959023344807679329143183895326579719839039954289683722446184691682319137253695159284011815176492423886805535262443027343500021397296088744549157214253131695601287704229419743885029984099462494883999291098467985587347007382176975068276109020819674661628729523957408049514496611816190356549665158698925521127386277779967405215106733007321465428893451914367509146624672026419502083689852060935261111488067772191175758642525326473424154734219791973429664046733593236927652364331059542562973004664951197560699044945584164394439883191047918924315812122850129766636376206519685076074325747472807808114936141342916796572144970107709667863035480240804899814269338243784059709668700710782500259796687699180093334414964743657806104247554015031257440453247549586191179008161403200147922206529208898026254182570187209893297711311754703567343895592083415944577336005646513683480458942747238510502470402719458759909223679386947800577699552038910295306091617882735659136541093948062097224093064271229788582847323078553584207621961680422794234241288893982647648623130752739398272275892008000760306134689400531630447158514987455892300305623141617006795875789478364332612849845018461122052264686793664011676385883656620720596172626733213865864000267322672431364938974230501344715179298916427320341699627030770664260640386548271881683158228870429852199589223132269963052953845195303917133570479608188726240895608133089482945115959977709220061730873169535584568772490697219531338625998102257756752594965425609934468045405924581728462291226531617826183620467451256239824042458196694073697149213158675955455708649881329753321207298987125875598012178342596685591550795477915941471692323752288423690651004484190379357702502147198068116052734656183843600810418818701211090782632803509615079944826147805325732821087653571976572406047188420058784345617155644511778720712225090091109064669096694434221644815377693524296926128316763959080432898030994157668478032745152247949997878910261155187325923085682175683563866624019690968860183817774387559296843992022185727421505892741607145764129489181876850439560658843278956694001680445398541992207039641276710088563752635678218461224138017322388882319290781767082325729626907176844812113317727981790080312892423740777057821061868209553779814043256345654252619015972209110202887747881953038335436209796012877726187818415078186673485643181411858059517829543698003173188680175399258647792240235659310342777846210961254847284160771847599516912102464282399626522283756608030874297656410037549794099378662182300677628598559845540568617406517082288527966889832268546495541244301337935968684554173902784359314029250414906373442832615377141181236390457573702358704668738836577403841826210205041427679679466520970991571256265455181202096483843515694836219007183448718187196131180569373725650017700257335002397908592914917440297836930685390160087472893668097117061771972946932016876556893121569321088063166357036077891970478605193219115338964670272840942566586763422155674817455258110683251801243783959491196485651861387049121526381117775859201249447327428365325954550091230677955753146939982138576588897196766702779493465228145578107380120991989326220347518535994133058162692500489963622216792318570061500572878715063644245068540811765365126325846456478571393940704809066588940482093402241741685864316694321555283874342987188668229359180512295447652171224896801826038015807197694137031460761411409676378486202181468647737044782803603534357123855843417157806387097307147415618995398184826080660417115089409563284751690232496453964053256602642430904469567287805019820390318185415687264740888851172449046237641043543957463470597035152728971307161971669524010975907807932984978762604752040397135921712812001519125153995221130983648558758156611235440653998753170075211668095143714703605583362484276297596321314678278617740344825149667285513220650787306683408682281960816356963759923661736414768448297126900535875845108329479207565312376646019287539741227377601908103319690008755137487101884664889787744802330401583689534169529430431005783061028775654038078466705241699047912856751084401625452614687712112946594028892485701299920290772790615356721327149571899589658400565502001659160055955862491176101985949748977563759653006699118761112183418428675252574328296612860986074552301815113542678331424294025492466387661090364504974258982425743921878063500308568503498932734928441681419355508443427692821281756846875503994818120921650021926708616290474446046054236842009991038556982122689759537878571431297683703545246951200326414577460421067435380915529838772466017485336656216464915743844436010384238773613344718178404218688645825898723658998062437684046450956499312811838264998727339926030952394060264348528730783323662256490152004045217029429756196773245903385279206450453643355866129222921348963689249241972526452269980626913373288869033438128678891649303439299660697555092199424967914050624136597472611293286432262259434782092228087878993319246259429258365094435480032288121508018193563573420969763838044889816997197243477578157008289644846992812510143112413884090427981692223414932278442339913875292303513246729205517649194997231795258943196468806857272320523825475815241569560257984940344018666544518247121292830972537212911044538907307468541762178491116889615328145450089484158011129225609677317970186363409611124028158342318093099812358221524667226687631764704624461296959174946853990688863953214914884930396132337369944229194532399537448158205807090344348312804271653544483975186937761954293434932570818965618952862348899599726594242368864900887023893702614318821433635144723949657421211758169438998733779337407764101244274561400462429910744403414509179627716888648467898904817906876760570505658458378527248712011005571237635803899690956726037424454880160683564926244644338524173608892025292731437067725362225329088467960622379916938112950199053362839465309189863401075096498747544028597248953733114341960758712544928824044620097897272138092126846874912966178225043010733960912227178087023763109064105488469902588307488013558678739622223690290387997172492449800087705690834249667620456777449979304748283201830127502519192142756956988795429768314891087552534506610751294260972961997135935495037477504344699673448694345565792731410700434905674057554902400157526693522056838201082777412577752219189610463909515025260977308509004324334597311158983512391352161723015304630874353860723629707736458415067229304570216150529107913566035761510268627053465253374813120500844024678779109592397685037243804707059129740339630263199980621814187897266999765555449948583155530953667888147876549230268565861715656345483423948885442751435380969298962339242398233084790884907310196210915673653402184730450648341839946631965746111679864486876333430639268877018044504667082210233116135092365581132668528401772385113041884419218251867907957661986214236334246362874975359778795315761036725693258940285521176486804020972987075693483055669924719168716143658446983780242393120479302062477865040052305399484648387984094875404164836415556446598358250759646119651559811228476180472090928383042541260416564070862320882172176852883725877257413283542703372305850126412564605195506291884316561970055702365832967532834557611467202110067309617842199577132596488719770748397821458104737925672231155532485498012792930211467317639894014048085611432223663457168963035229133262266363266703566080352755756017840998128013184264752432727550887170265048145263425704902632854329545136271034711397536733397783390029621583106314923739670381331624927833719715697219548774514909956558808104273300211444364524388228840651432724427104257117002930484854352180087412081193006578639168120470422253539024888859308682314298728578031671099867970035049327576320482351030995544885768677200013657174013289835582127943460139385537020998145660711015852377208612057479261985498419414370052817262562127077869725736074973969210432719412774470744792402992781142686236474384908697903757594913377093938788913011543833524311234609615794773146636225122228602554556779912304069095221990880164128223860885856629197411550054820064331324048600433506375763598775152980075572836359861612751133745704310078995120447146545502540709178242743771146062255146401821508481102855115793408444548645536249219024489510419270837922276035538731066015192178121236940110262895496458361618866293324867636575680535259779171427273466414327984589588166764897729439911745441746902427411132654854663533510745885413426199098450444223647113005446536727854816532334619238866895536359513435347157687687962167885211486430987835499546189406622403311722249951487531168640268688184414665705470186208416157726048674494151995380478829661419183743448235040904933287594151240026407813009699406866432124013991481630930442727348740959171010893135849429256894345428856800224234910961351687252887832505503391377940454614073379658850185367292609923087853219083183601077902513999812455307238779371214890734668779337635209945789729444535767669398741653818080881764018714953517901392223307266397106402274934014830918845536096908566225851791873093047386276378341967637055927723139889370746327019808309291432623089883013823551322221562369704889755176630857602767131919364494815783672906873539994185003471420793874935084974143185792597982878828405608360503297827751824906967128297405566011988749392499507844221419419261409063516386939683388365741527285833440075362008274020784885261711396801854644398494677315710858932493243484071916617766927037014256532468656502189763058813009959434990583940608777472783647212871368949832632302029867523853101668804906714068516855536649462746803878817167566513316526195041904825131505375991384528788790791457905308920157863790812150764494510388531458596650758400152570458349204722815508337390541075367101050816844769386125925204720901101628726879417622399821550345554990673151921306454377121324891813852636223543574752726068458736235532918286872521804082812324007757891627732289484242906017941053176823469033883801960506394328457302620784050033940998418417090918161562236629082076074728568945150532752092408351519947847341165534942604371692594707163995231131171724300364302937813576289706796405653171482801683158693417305584455245307281605844363018082549061638288916382164807443861145361463945807607655998293092158559105682421264742259799665251465647135801382884918752233928525981880299418793159220490601431955053887652245513697874262938141967886255523608749224894401224337437873943668008559021705725314890876735262444754949966144490084530654945313431326642525258994834555901713318940725500315150859283860480098369815967741991416161473393134908868389000830439675118892104815167043370940040509070912262706487991494144543961554978222231265337832689910812639192899048159030061544797059835777064958149518558803139747673162224795408688574177575800393782652135450405245623868714623630174227091320816511651674767757986713120866315612589248832016695185233969811478201964162530078393048958773537158804225806927466011314719912779131802267566349398349088046708500480761951300045911772221868038422751196496610067097169713105025028295683004658258732990191398333374629673318738491743801604415241300776426230503350578008312874204636578163281773023324532318429642309553153306362732285869096038096985020381959397234177545338114877569227819870191975932167124341420821409418565140459770676673997043848770475527000873301286687962743897984901057353970717884591798520987642334614531188314949442785958345712201864979780466829223949214207530772750468774707954807392445778889081226818604441665300769033650046010549044737499372829953464811442989348193054809408983537231408275189610153675888806315109116280226165873333277236927655204240076980434788614044201306506957939835869830779051922741735831071374034839120906480419522297286621875715556055306676473138777638119350528708285133410409754784021409119532171103308462891144083534185739176942920859785783075258392174608546136814443881339209521203849997075651930700877235381556135362459578682136217402892245078281905510737207982108367946517227359830098265566879474259651592737284155512508216163418359722242013327352826582865853886432395154393160720168582852115267695689078258317053047526109566516387920623370777666729930613058779097344159754207923628068749317519707076870453910117288681249773178087879938494185335236290778920241115640019218071940854665352305830027534000017260429648166746026214574465272972928791894473449601614411637935200017514818777197816097413162757836763750953595902212645805773669252253906822181150170360668283502546388479372521395343123540655639227958411802510453556254857947249602937509956748030786909391588845569648155913107534090546107794857034260498017285691115349974153140068724478191352018361514322300866023626461558924438523229548073653719943804503529637224609888459213279732891623916686279737638927456295741332485776400610618834433930633613137044364179301620837306206337982854540329923295213398192552010383732165258033167854576300332009736080344468259856222823527654062239705708702690264008892780312010154817767462036517717710457236792646566196346743073916332896986384812990394633570868236375517525871278719433333641293218124774994484051290604721711058861176743442552030555957064697826114422175518601039240318881939080366324378776068254892129981065027857187060615186397569460862496502083955408160233779721880719892498962257453394576617841243334058477736114387464787898524997044743120667377200752755547440059666615334436941251354861439731807643905653277515199958188869506734039115654267442722417049394473954000695874955713292564526021503954773328030919258969351429749843445014737886929160906552545975818809209863777025799684255758767276540780139728943780411717677239442781417799940655057016928367768866060099403104079498190653821159375595164021229026237000172083804964959069830678037900066485337638466697419267611463964767675915066840115662274798634758946381819214023459783337811103600476654711100365415105247560554859854658308685882145893912515721135239396862932347230987280563794767771607850673165903018104386324781119866024575189849190740623505629464753292139425007702804043194358090009953493658957513279403674430944369715579763656408187997900201764628710737664893825944320170020101819102703048907853351612735428406338099860322559804540971011847133389604081780301298401076225770979066247092863047255741579765300269339898847021154024203182533464548867956573818947600414779102694758915531511966036182476369679704220998189890298018902697434110887962248535185706506941949961244284347280936914334322413103515380790821183745266173129091730937936986651368257585738905285453020745798789358047387785859777869938711000768203796973469881314214225873044206467949400111474868639552954843173493376149534012304867878921386383372035451552956772596959886886693665662335004685748264637351818469031814119439060535677816262297908506344236132157992661843740024475362682938545388775889361077755951460624304136051914198624371768537510742146181729994027456822299453536895948717526674858998245454621800721660547260105220172895071117286861915069244694140211681492218946384559425128731180169147456386713248464384420097663190954535686398814538000267796249585932211602255732873224917268131560612625163726999450950257328638311298834836846867662528899340670681266895644446622116526946593886052598062777316473352118038914213908970486964202036781216781677793371265868354587837694629274663575182894494504911398051620076389791492371468686028860833405353180275983120727895736799066606667857708761265021177039661919804791294862412766059569213205426866159581880902186301016786031990704832317116794323565864309097675988511112354536037629175879301542102750841444662285762494576623580808805526218546826675905635349608225065217669707129784594292726751881026419116813079128864861230267850297651677060157725889336066526577938547973862963824501798264216327216303572204858139209606046544429539146954771026178035186350579171121128546980705656363489337138931429487464975644506906703288618517397967301853219982322625316761979988260048529246994371875813727773414004521424256876310427672030829036860795645294940617393176848971971395458218078152760516519728192314470213001415443554842068713668020043969191820158929842127100332907280392910494920670992304377816947591566405777378000270394624339400384393489830012925571222478126833966215248359634327457839105651269526491383057938907798575077782153052969535316038762235900239646208640939775181922058240453758436736718007102012100989654514294575207639696140634972370810134828397140981534623256416170191401549300832372178051545893519210230074619182775186713911769333794473910842877415335986409293647580769236817488201842247020274052747457976941142726464604208471806161521497459612678628281763987427233580190668484442776432510253495805928098388603070025211874968263336890975507334071068432543248636337798317647171984117657984500991949839220131398990766768602517915839022971442379928281916673432459805035616624871838224119514957726987010390309951563314299505256195457806121201872953482330481827593018941023750301131191036882143544014554883400829231321668259300199087747851687020015012101371576579049079265009220615849360202279623927977389423469704633170204363097032458276706023307746885202748326039936806984632804413606880388471322593376106834827413511889998800065399323743907887774478873504559568208416845408493773571556309302408623225122554359581757050009246317132095344341275316495995218083864531598008765840641612485857134956848791133962687882457986598180868816197126303422413803679592356181192096907795733670246661223613298315525932353577424982383340338977990410541516921742341196904774970246833061019646400900998477902837967710553457793087608602159217015547123155680369705268494580716284406191498005799958234821921052422820200142517554632739753857237588396874414130426983607646370835818374634621147506342608304431036668707081351032685883402267829383543711489449744939586009835948681569190476990626700555532593468907223971807557892486172450976746000733533982816442562565077731227643308325159440123783043971084420686625201162626408333014576801335768273754437018062737252444702398054512669414807506744911656659528504628660438694396134842259445939355989965858576160502846080168226713112207058888596167434625691602627365521446389502461376245467035050553536386970670298590572830597985182527180592253736476115581865811088507751311969006520897715996739214125278166612960474180285264091311508328359721566230403792219135613335870962105545534413482186788118276734275359826489304129079666294293712258834674738268066932486980048755478869205358391103906096662311719437167092762599747787055109933860095032967004252688045662917462998207922006893482605805389144328886886070879006791337338020823761557515450838141938878441119860425120241208075991887645031680125922058763712970613244713483753887722178182389715369739379521887229230816123757824149749089555456408248291025149859996713268061667733553152095005136278498864048751984611836014887860580427915234575231540535755699631586787730762359615127683146966044008631318470773116046225283723720559129022437568655660566526136492649386128549371033767103526799077959048861739499584450860865054051229630347689480063263276022549104958097460191578526653625553849158866209038753166348417102195483299877779696462387535391779531411389437708570005644851070113660880057103435140619515596895985916210247655242777952290567657111991668400354441025194787516337497992535515408627726882536650965926487289928700761792793987478072695700745336831408033353244507420777887574785319122791605591620138667648428971755789066337552963471461224841066645037059604594541173829987397742436001849352204697699284521329665210562019122124791721904035217793779393574776062856845021818894115322904094034656589988137937872067822746270867962901002492606684251670690625202557792028887475293330403620207314070706187406247283418090183423543135867343370033340438784156028648285506095382242907992993883706572380755005804273791694133612741222072909844470059691934050875206777455865765183921974877734687876194539865971951522588182222321564094191798931315056513008276144543989298032477209396785273938201346980463801590747611420395187466392191755333795590171346426174670428103775507205501810769201465946434908053701695760278119697420982676518677447149756578955293489888217493648833528482867224902696617956898391241364144500602004684512491217417527632489210188873888561544733030500707937166270853312672294128505667252017222036488285202208823253624505152727425861716920167347024368988057805789066472404904505656808011925286021158112686499628185745940033902951369774984427786855374722060570367429486643060645677705472155018513650384324907347179508334282886191846143738555699250940958211883836241320837065356929583533215852113435797951988458442299519821219187473092055259531410378236087538024971396210610319729243151895298316355048870597771430392237661372198292617760866350168485664100967511255954212259281950022282332865850087369180401617343285716351908798397674193168896863937408223962394139333778032335944753440635128614801099995136946755452264590809238525723824889644951757474449601752644091662656498377421719182540135825098665059750526074634842007543686554751011658066999306460742001686256001924924817323461015856226213058712169857778853963817845722193302712758519737812048115806266697460006230997505488351795060901850067780736015969234906247538341618217786841164272656785679810300708006892527264861037673876249297277095544884740375924363159747213371414643503328988054640396979286782553343964664436404488615288349383336134399424616140810822036557712533805670872324206083352675813094978380040572777226877576056680461301527075701010021134259774089776185470725638696576785709831586292551808554994783352186917766364887319318524268802779360225989749790786355012670698885884306257736714682886777102208897897126687611575642313611267716695979068246674024344650415558889155277240468029109644693473560067964109908095060651042662976088997814779936244970376850281623048795567971090130184259409463080751534870870893033111465530304681997119287935735782765882518047995454440807081971761213817610487935140263834249638002981004260971738958544623994226408268391226659733128597592899510098681542819167948277251588047413458092004929844874338780593032990698175848979964231714146576430531926849699621562317957429506820062715959241506484378838885997555817125703202447886912680529296003312820366673742502043334809848914671288087319728539010606204106688704149684903346298891166190610243457141382934842375837334107837050122914490683199358191630250585302761265778814135758347132656973252008947622312782894869428620132931934649932959894404790869747299350549958562606500450199299023280969379920195460283823416069798850521988641394713209564887864611487625416719689544400673105773619767865699081464426407627912001989717236266490274880270878584175486432084615671275437677257855693993895741588365976002143391194055334741747272586661136537902737776686936191699058042530497186338721659836041258485316202110231223233808673289448874506561248341019943534197884673332605805098122621667140252573477983955383064832151984922361054921524598781783520276809403697174032226173522306946718502514272800767585901019224100837849675716931911970140676368496277048204571879350487378090934909032180974973648152933776692299038152868392309288045356342092684651186390389921401986329925588660703628810225713726956771586145308250825154130782319887383355246230933510948313240013952366578779627605786016124095205761129503456593786926077153036607571240400075193286895377119587591590224995968862401980486780033083673770315853967486408118089494124520916123194807543740221875160624972639612838526556342619891802006218835582437399017962620581114803127119633092786369611812266402317306528977206405469124121542850179665874356988654986624546082640037649121138927744081640186212256920585489109914400067796740493504943614206803735119750041084005853793308540229881215832841295700501884925352606605305293327068588825694920435654294995678405143258074994703280670210744825638665966102325839994608082777750128925992477408837191773498727732964331330047340944636501549577584355027447791811741328002870950346656965503407350505737310790821010922290145173109124906235010759588605712162948304454110085814450999350716370138521110507232035130827978716348233854006905895777981166212699116358440220295614171108071428282533793178026504671869702189878469199199330450442743462172246458524558657640965018810276092554880462877951667552393099849868445643236831961296063976460777879370323993597929677053551682788777583128876576391849206466070554822021827725886666952026014316987696926668789257259091795537254383613774170412174717705099367419898780144463083493260871452131143197856887924535665870941800634371328483393464097032933270189894687842613004327991092200130448863270699557014481374512094528269247475407513289637979687984459129392653493451021068153651739097682580578535268560720903429175678056400470079556299294058074704423539030780163903315575085594755284090337814513668102598414351228150150863166810702897691737355367311985677829706453815214042335816185072279079706941624658376278871766958348914537460567109033730408437839988730445123491016756868261947187261093990564037740895884769496361166602959982452325470314249081101641376491643596469179864496066860455897519880660729476146454731128777501187833472347821891346273461542928681833524534911117272783182588925402107489363775812221045916538144016501734273171017906277375463704443391101031499995427389361238054255414925926198528087421223073787903537593586783634990894413562803784699529609670843115018628896406774669386963616588845721716575660396931414087727505408241057607235909452813861829774251001158993410577632130416936790904949018850324402216864379176818719890877499917748735394322192279633645462134811509833836771129908057581664818980481587886190718668148793924674096624117135672983143809860604035110513069720497225786006879572134113274522484933881759159829827577738576952554982818366563001381276683440290653725509048563537999720078959888286792153203966998539473355332587178134048821970683935571099575515361840541071710336504856893377271287807873420697051609213372663875807669534589205950922066877423034900200643794431150024139855909572645082638643482391559108229245832681688485142802898370182980257544464968016891875530358358033713370998591338708544795242676045812041641459575827600802421725594956468994219280132474706421230571193935880973342988529640610920267721612936019132956830604690133346204339154781781436962083235562449929556611860505158924567873949824126493053383736891625513846123854286696638229260693228432388758645583663875528256635173137971723627082957981111497818099361561235484562710721359308595071444869932506500985196046060326164655622016508538717667070735531019975943303566634982574757143133707455133203943167273037977650524148041131616991999831487776880292604391764151919868123096935766772370366945996671515038159222172761394340380726261790907970576181568339092404532445089778152027891364687099386161124669200327467372756666220670562233626062070811923642167844267794777713726035485261660481363707669937523058557332011998703698833344902656013015397039315624901818584143022124755636103463714021126421780831522332527500614732031359049022918746867504753017520218585386702529854262744600655141073599078472484244685150745935489316694523375555800545353154528260132485512696781633225481550061608284714816731671731446487682512099685217964378166424252989607613282466072332734915768957076477504193666312490771484778156725059317905925792309235576209730850826473887488140181087608716593979898210757833975191166100820520644303633890552430528418235059780271076636397384242366844193305154194192204045691958943092094256638475323779975428734227735597678189805955134197327752803194809347407326704664413359362441922786137991867556942772225467171054712056894268464507073014452273626981354024763389057388022157207342566984384981738783870861108033207610243220631345340693800406650669124526677282921603285885681580333683799060438113442772306215842703192096267242773726384938665312822959346948058243146366416583374707544405706414133844431618016246490918625368281332811317487480763905934183747571583170926814014470834713050482991329473645423551906385168979109026645332900219886717715827825323246898628171459171903397969028153010850729023058200512319049219597773278774319791461014227174391292346488382226779089857168493563195807784112652857004286069607585295810265400263426087400727496364231173867687465828489164691365910290979629673318224356754305686410596684733019776762143200487738811671353427656487273899920831231885554437090715793288050715083201642168691710942030720553025114934554741324389711178482410344102145976441451823653929002595453023619860273469611717992411880110984433352028773885887395927750865233762339433236695612206609998365878294014487815487897181456723964609776476663867040513114422359993320355431683992014127890720102846182443237176391167837380582965161461607084616482215156321882377990352267096667916102718170281705154413511388908622727111687049262777989808578414282740720511792337445595151743221313517045329755206318051995437297778638196113167839319149383017054114653387544424080489580238806980565523278383096089901212041070212834667927830304882818645439233984665554950520421955381809639089353996735996886541787409155448547943714890144567534883922593908608108962901492542229844136630852812294996560937633154441356420817090605427268743935768493238041266660430028593796320242561676245545778429340912186575606710571269337470766391644449777968285745830228605114445045731478727330354298493643756567173951349198317251209596739944764022266359892455619632208872385794887330634636316132314570758271817085241379391102047074755975403245823914012644624663905078445603717402984497040172910867500130514434695496650773758979835511368080675469805362082529997557191648412824971062324443032602207829760513417751522703076436449050140044453923399335627353287982251265427528932585053723891860537054443416345296857050373161504845275821095101641144702421265473893952525112716055242331972266523005942813209055295040994814989598384784734985787974347258348498135235859721707453326256273928581552441478416981054288720400645702936576496379531466417362886471153208105205006354656251479579475838347431138270897066947373264499323346314304931911650351975632726918047157889596307181524918988273596761075030634832676591256769307638390233895478477463313038410516692714973377711915331132446742211905109243860709652756377468882889643030935106294925066290860666447890479387641203848156146180895653046581821320216505593446551502736623442125232360059540915908971843383205236690391774420127393064265271319547120660840326925986973526160280795984621483711949843118608172389440889211756913732966971838758704919839216683933347483450861782410989648166251207338278320842790042980400246342593574811168758580716540646310264828905076611724480616991721634690506213711617416757223401060011921274554296908665383150511863876243724377591299755024706662237500714206045946181926953443161503434541846478754735464357104023245425334650765204228012704753769595787713151443260791302262008553620934066062861223230194186567093649440077899590808522539514587463814434745755710444341268955466747680709401634764252283784857664065417190441727831311627877904305114518449276728413234700339194197627030863380972021067595278546301326783929781039442696563720707617349091968255364551089494845579961046153468308184798312360157989829233163656674381572284619801514198787179097556896005874465180081702813320578671032646979603965139796722123427597091947931944116044320199591125099656640996066550801330540017819146073020521091989169642180506180142661245909890198229304867702357360195435278876384590713038210758006209221930480817845068134849586907996302087439640859219147678700997134697862993533562395165060300960921765003168237016822789091363170205808062940306955727376677275438253375290021582583942114008851705921938667039153903742259514449556838598789004397470206629202968468448931533091908084528902124920192565999933725914382504714158941359338664579620775080809659716687998732100953764499126578738027705229249921833581774891967090874338677040937576851509107827602404342590931310495498367792056359388847136211594029791182914953302665356254819223495151491190221138170306242388465393381430210978077263525016679850821613949379073431712214858921142395426473559499564783623307323138522080390874807817378719577084387923838172708135123157146981259232797838036055313566867715273709393266065291850778837545157631260140644837273635289435082865303949011903652500138418104768336578602412240718508936678915091434734541947903811283109336176528329568743072211027318291603744031832139849766707953294513796233676292757445638953658643808026707285153035532328959935551401187250240321349141973886366061797315262621280159223480084211142088027207644104199934668701024933577048116711482663059529327644465779035209441304461715428188039067636105184611182775530572786642371782782800294669555167065073044566338679700388509589255289834150993904307696313984282194147919074220801998264892846331143666229818556376003224115963141445474493275254869426985933534828493066574874056095646148809265551004060187799383563517867873584308927410231379858797116488407938399467610650778107533261496743588668021620879245957145804138873885355042456013127699099049814696262316878194082842240595903442094055838147957284920434256096570789490540742947019482370274125331119191015230152229311165945682975456245276487565253413706861903423777936972211927017181324368881393439867583890482503968246788731697771401759097384530436384637580443690584279092221841096323381602088689572314611724096044843395989567323055319302986487182144496615660101497462305592521546119237107557628577530785521428404636293544792521254868958443389747312549168224557291445196971003461535694447657200603233359550972345197418767555629180778446883940029748803784178101304344115325944514820947856487701133148808404786200445955442539395157834798715085869150130877858566530309302998588279127586134613307384062543347868711611636637886464564159158983331686785363747713652403342649732281844494859580618584199416257964785280333269705727402006832086860929001557951072035589195456182768273870699731756431423536903524888445174116836826677005429233311972347360127510421240130386250049181547059808957589406036582902852233586119846403622888898829338403859206406414642756056777815350135218305894412751992490599163081081707653693567313719066411738123592831274278412709850215058239883885623356422192663236370854661334878916947790551728885691327449719582637431421207524163987231807059641266013478706636549628964221830035935823507233080995506575789108933617656066444315430748995305509331158825108386955433024220318916575764211863948161125291654783275409248333740442910080555951540741938736163923086291874892659983645342246442485855564048135789530198381518136072368685131670769247228639339590515622287660315440250784673754283300726785572974543271618583746621317950005183884580719207580251482826044671179881650044403140260545146970876911308633355081371296381733539386939900908511005962757986831252257354845198904021472664822670551784571238887090457966289896547879156723495761774064905520395423564782132286888141595686490585434450737825193193664121601399775209265271962572154428907687530415204633798370405697614420293461997553785511111257879793701842427439959831179838490895518382780714975515581887026954844226235070803724734511960659844628511171492444755604244520275356696099553535361097736274719602541560653106880496497076342518113102556252888911699038201496528532621091232237846606005163713223996166090045982581349120831692797454391202671484041986113389578771980057534679361720605416315779283567649229814621273781525191931227199958429326886086229849033922990485210670865504367983522716329260586882186569010598895032463777313496276859449163535921350532512666177940486394812610987755344412215719506988256406373056646522920574958775433318249858404634258593794985471452496370714407724406498999848133885109524971406633822669555739438485327098302962728008206689591765500545290495461108277295727060920898105680646936312876303609840171584885361819088720038789358866117037886033440851817065920169122639354160968639108982295220952702110752145865271421027776018873439131279100208043613387165678588379431297980297063742909299595800132700748060143383642886590638356176138887991397231971693056848835583377341619772711170146361619125366011746797855301946654234849665379207281572694661000085103375080942586062231459094675765568113850910536778505937337901841813198749494843792836081127839856348129030492484745777439158201462151532874378282639204878804202313971702966507667839095300620924636481678999833981133019353351459970147046015618784240314333138621685213719790204190608750152537788811481553060055291559369469228021436291212865388018748474513206708518976626680163175639537855385274961603395152724922062977817686197501286960690907605133364717802791413953279274503563335663454401960043630408431935453792050455799825372891287171427935113501371661073703231479814508718580480835344135815022515389514138853464003934509913362017337849244601223747666618807533796363085026930662758429004769599326736762734631432850322789077514741027225874620925774364728563309535256438504606281616089084089362491682858884175138898348943216490865952664741349913815744605045441021667517241820540019620883334367719957699283187945271344224665643458166454426682688977702290313941970179049936643446163044702391247901943902948343303529274523511199422996649853257643433964181568256297275223550997760908492216556087476178873068013610929047296295371512491760458247886551353510574232554167707468253846315151354609175454041574689073331176212085129578482425307242688423457671907937345142983105449280048278785291616816981153766124973936267204004256628786456990660555550536226120021522526665237187816746515588628132378868043790890872035564274165053458475452252637186700736186534706445346094205400551535599658978733985366998423205468970235508283656586861326132390662041474756189375294683237637091401952263564782474159553251841059921608865595140912263997722911680218641195503631445557227439784205718271966386719607738294893144355000586669384908849861740390646552374400172034427446597416569464366281216813455751159239830715708778435454821327712366085683917661504597668007859916493584747867563541463967028307827490696140064981238709293926872384373114336463099006364649387054503269995878369793597370554850283011707772245631055862776955148755473657642909333363611147807041642020081907030361608450886491080514251120613877429190207957505960664463599816636408477316009618688744633701373379169942590505666103818849925857101779248676688706350324032789790172611696666432817202826541260454968870053424029016430131649347570053469336540707472664739406384735173748861362341464292326924264119062552290542305200357308496715536821951815211663956751928318813273483741101059078684526639070742500376185672827178857409143147546003358569137802351336757624589547020514225937341569428120508975357983130658649805895583328834031927958498513440738545195217372432125516133533899263527888657322817719493702559124887774141785792935923489423544707781868102297727735913679567701526658030915968223747728469402967822431239006315585836578731715795809121890265661754379917060368175816027349634285403019534157885001376942609138102846063345177043335037525970219935061047467788888760525699765865908770481908145884492078989322664426983132060341071277072448555658399648114760626097834204997682036182415810507198028354721820705443194504457669870752091118591810690087264415678134487559395205095797375550831347961914234121249155065624825211248839067337489374792704864226615094616224316944941225121842360404880819904966801076406976096225931447908448555589417908441610908564693665897971789279701646414853785891736929451680187797446561433851264104608522037598121300552661368296797034722363681373700155345076180433699943492591426336927348724936021570596452781546387118557534720125729002054589456820596419973709805151123594441823480169676141714628693588551836502116207837749692691623682644133277519220775413985237942439357266782665209353894969588937746447523804343213338132689428101463123402403611140942873793677594747383251677162998522505533190477831859553249013606361442979195290035431652366820431213995280285588633931150598729340452992873808199062252580117609836238635813377418879756763313299505591452108299446557574631480627452713187457954594789962914906146877732919221343838654867084348994976190613604744856233438975181893330317030879524030747379350681177030827769388969099025294041052793992552030959930430869603466376575225979745772874522064631439731528970014562070499762590488627446702709991818621994674180615462589867172333792281999697093584156519275756207997730153413912033292521178446112787408265949600809499624549722990694602196992219854849757876980866726052145986734221772628394873536440006109850952523515866826248603350129817160342672777528578729541450503061315064385843918246167946195983231391147413536591770375216793400785305900306269147882598825971115306016278186316687476163932185085334736473318951064163078349853681544352898507343271474658883378087959498578498692148375234432899577614752484757900966219265207617066042015190446761949246762899776508442338359558479563366317845236108054059773335118662209236583983028577315466028017829309920527750128432680648264975999731954335332629710211473472777757450098550965610602201696131972748163162835159319763587216471258441539278624235365458572429223110618108954823316060329953750836047025342968061466368289363088898806922395157280490905982370040036678602878315759625601959297107081819942720885360660815636403558356519500604640631216249029399599646028373867568029872582810955131699741593963793821848643256663800206921934566009673862242598732526077803378721692872677556818400930682957495047381360006617568228904431697795455904558002527639193121861684772977587748185497490250783794987708415513844463293466713499221565372603280111609525241202348482505096502039532131049570595317376672129959247469884181327456993754355654171841522313254827551124319652429091493987103178764005669117389410789922375915968873344488404043002943556010870049541909994589126916112572283483417296437916781912641211185965029435467759634117520418065917660007605701090714464824915830095175619209982477897642338371669488985168821329258671472187329335052554960391244128159783467777900881531838274765937892159291995259983893833168158322569610129052456076667838509085355153687519451665504396086916236275470536576720186861597432089931906961764035524479295917597715448147518689880005702022646086382536368377304495377157605804639108544657259359369996504633434465347265026230360754941629966085892496269729248882504415401840828349868817158432383538352613500081718016114867419964678154509368231081327769938927419369509821093199347230991251602124920001307837737548282724379014999113948337894379170151576565392104889834629573179385623305896296185362691203214931796555304760068775529949843468312017994604429694763882020120381961768319980063419950427914126630780512100055586778272645088410912219665488176121150051447344520918102276130434157205193122822760779242795804013193034296975009460115292842525448279308709554394224886242521871130324046675882554573569987143249429085298808021000365740494419395781223730165601423566612616976528688904397958857611705882669960994905116221463108142947158105634680232427209080053434041861932355209154168124321657665942771400413125061021758733221641498926038486914256470073324769597569045376364085719425415610074823526950610706254783679193993311751999469741748671080329899985580871268886909172835073803702331212387960911029783695714723395555733799882358468492155079643113271273973334283820991735580799577010803660374744056072398055916466607159763814647174671351340061350741402098259925806550224102284417456429500761059602360785654685079868826028179258031893105186219206480740819994203400123252086717847480128335340973348872882955948735648924584935815368631640740731274163580315674029558703427742829053519730071761636035346004739496700171525469883140327585347169735123417614434430221921502007375267514335197651166216055212663526924526785026704361095929774130924435163024511301351911758050276325045523823203744682515650932403428787513646126666731664623202340924218865031453458203687583117465278373016904319615698183083195070687027222709287083673830062919297570528480084004334733053834455000799992400608568919930956336314626712805229217438515560198117454078445293037974244663223235270905197075786263518617351695004353542082201742063193921178248921211088291134541452689253655874762384889890092942763081556473685551655888637235660806941802623962074575892248518538988323099072416678878765249061581572797471345966478514646709176855816094935912197706142534380319655015891523427640129399862624095989770346522386165379417684770782978120688813251239708945280289191459996951262254634764401133751685241220461163875255000300553433585716083612414662643820273307692149376053028526963259256811806229639097378899068040330393510180784111792801477781580939328223572096863977337971914288553965311456966119654578938191769610665281258291362051378371946756305682173485047172262390674669433333173062296194759162478482993729738615028625953192122769223003091173913944744765021069235281468487430086558020856195501048992928885060647704889664974238497686398772365848880325091915269897716687899549697780926555271439035410781887314743224241555421823681228131204032717037768914118318012901583330397110040911791608371468443771491240381220541089108602193629953865603101300909077457914466799100698125062891405322080235374920036364343481525524322535685131480625315076323383184911077965920225189392467841931319631967876622422134264100887279640304186454666209269549983548739397976067089239573424871118207121956260886763093960386891306186363931780307718776625842567395277326427015157721470640009965072296662835903675266840232471921622589181559322144095110992214609081783635423449315659291932732064001737365551069947686818798080662187644175185150326047236647895579920974634264086765747380984308256835878792178799459013510022067160061891102307587969544782583857575910263104538904070477952988628266384268468185416863999542991674909029878812134732809932933015066803273362042382897711656580143383365350965137698326952746674540052263890886178126191486040173064722629477225248287456295947502514958772065504123060289350157978782276989340648527361351330218875806540267239915230924662703948191350131998630875391778334535478387455092492127434082061549051208415084934010971686651408300156989265458582096470531828307392362680379753075986769736207578647037433347063986289606622258707365130935802639599596212972601842156835727438802588580770003400401779999062163251940747986571462472632025698682790630770078398718414789258506325283211296089881013376808205400895425725770134838008675340941521486341179865734268449936509127895055420439690744234757302021704239202894114896753554049468598512390498490070043526050967523919502412024553716948161797888336639239449494058828419482263276812626446592471425299517059622868850739212400746916388762772506711953961493544323971956613699930498163733471700867689799792711769463995504699570830541848185898479665595655016669637193412258647061792301082171198474704375608108115175460147327760620044483826566846964267752258303942702070589393777335336601169608318256693284740065779867425713087950759558494924606846042052375688274990838614049004994234466166888835821310430847036064178270691072029479628007362238664285253775922187285599658182602936373367907073130773126119849491222627929682362611282345371422592171838178075833252804840362662541889614214514042402341256132330143224826775388175773331709948101181438265947771639496475831116142016282708914543753027824460137812824794955282266746507502852478362576150192432720552786437228178946766788355939285724104101142087674302121503204226602660475400402292746600986171651757965386056307881409889730692134607298217907277091629651781053175639865954537396973039190533644630788099200242477520491407242031070060666952382779978347593560400550088639967695537320522025687364759279100613337782473044575295767397652737438923192597623585708736603767244951650047607469275051091452084228441105978843844645007022046798188247367159200753462014331047191437608292144915400642963886108426254177695186229185827634370404655982030733535661199632953081836607187624093268329709882960974341823250396285014600285424350660625798515329906391474411832866021957433249830918612472822510565749498856048180206948679747230032562846535112853331159863177228447845771514028356390342208896259013807730800210785508929136534144713471430990941893773945344185113739012628418850302923609479826844190616896441210553994083563912497082892091543125822081720060185041093134232593245347977544117145570986177787465791947448312780775722239047571251445292910358977755236638921882834222879188112723383966557998523136660385845978867929465561357823706474535479375339550166149571492667145214988412438307871142997091330696893809444922512035876924188423833469150640061076495592478758897591736193131279463237780363837227488643303071934975150791436921068064024123171090262535625730139368348722105907384992814538895988919379129891339996674718517839844014317960051209891261702726623697674717814565356940571916565814836413756021025477043196936958616154508889394336485779584107814896501853636459030739724908000922685691935937797202240360382054460399165608719842984988673809016205110444177722799353961405264838218100413527796184345065738771158078255167966056136002380189847490299698739337791611083484223866117952482477595700100171320591449605755759911514392098462448695091661419831612134048105950670814373024195954584715782661383406476435195012903077770439138559491281808506812916538346411793438424715213337040834489868195467273145323969827905350779929605031223344984004118101506992086908794495951251953504658101692009566779382792036268203642432142574299539261483348127078939770686072408869298751340591059135793612136267244358576113328930474705950423895197738715945301064193073504043038262188270757659283525910312975655030965352264079156542051860062093445839467847324767317367112663920565591429339467055692594373950452117760874496433995539117680030162570289926474617926446871762720180553920781667681129856456537242722861967894539685362758108710923931859467748944030619394025617310585822267090912156737250032402620998082890860495127826796107565849225920915455840646125491957578350022906172588169461107631033571870405047783523167233017091897923962991868050850961168586163219927572625854019526137535034580904669276422489236672240261288414364087082211221365465500776523626018567575295347574557664041602427989568064955817964623745057226141397851835217448287632848660375909972793928084724373810296012721415051004848409032674839000634378182872116374443877388171070051205850898581794748124581402356401539632828064458591735967241324512252386229984925712097731968019360404992662899340953711650044554022112874174999095963020546972396846829076647177050275785520852455203701796005983010958318829624571503397243135324979708246640161270628988515582057973798484399738128373329602890834836686662908491717296186517559256000622659384427782349213502428220188864773860108113261038111351579522620510308223809401058068388339273353657451104929548912834951161423572199670570365447688941976338806738721164109050711047501400913233177759270874643019245337377024451330382670477017945915538530996945312395030460804105757580149076938622906708366087340147328806558535033612964253405951285441074492861584815433084269303068594244066255326374875784451830394115333263256625288571857042142858299174211430705041590950349714976534648184448406966307666776140518929222330468538568136070205700492218535021227135775420091840056146958418516195902520092743451698408966018960444096995545706822889105016496221989617302617536741966622640370314944161063155802718803860243219577870868130671191532683915665831410821497032322170602339512207476021860017159066291975458323894184047385721853119475081794409291333804053863491263598700067643519060768730005145826842635170781072474175657707557523024799344431016416901636029403406572799795900269185600354526022491239943435213845878827814567002631421356653186946478366016679071843923664991270203358125363578018955485207606408227201206473111827780848844128849720936598288459595920962349582445276864487136731235547533488122615032719033019532439152137830823031092885908347855746383227788055236336067943926106746628597800818341681491959104308505275549780586597396215876976504171454253726256632788680393396636887446895111118436707927291222930942869682040454160386178142288341299607159633159142478297199828094995419728937212591413981412430806558878410633349343382542177567411846962029530382688197392050498153247642816147661625693057535926974995249317709181353452615554109752498351850163993674027230276509883815046128431251456870415305137753006072327476025803672268027867898078939816620336432897529315040862122468523339464109800428208304716212960589084936558471529650164846197663615380449889423140071098640125747651798919672505030604283358295347537974798519370321829206258118217365627360149495998420353119854307894727757358092990579473905345425216859344206626994821369295977498269876818829610711814369153371653587719031136201036405431030113718946053846072935292049148427748983293110090415763207843376849312270817666545914083135634580429655849703301765868477746735537770114820524231525035369430973711753796193631835364889580858475358341067956396623959253397433432975464452953552727433179869300559307487889618756258014248864204891150388905670798814177727204040255376746039589455674343323588405231692671418466973070899662565068451910504798502559286242408431014811265573603461086901247008305269824374784752161047637485698046336065153472802611176196596310652218021521607612703095599180870694918904333212646256039370084203381873549216318360579663740673221460050273436723450098962337170197294022618939141427351395228400177868811027241026078911246442039489173586295483166884040125729788536303477766602782392299883221921441817936416363346438276023013484496655841212589525528145929230745031870622066664376989567188003739066810967923914292150550958105841454044032069747464182894567409027388256817484278032571404546432162157040385054442355225494643052668772887339424478404414758902099813786687965751856241618747030649826748074039573055636683239490313789111729439029877308431580477294043719858103528642624428896346754094796803785362884674413503061717246488030958692902023457624829078131224325392720640544402288103332748787596273052490933169657279724715829242776304959388469300226843335592448738301076807671215738738536640459433334129405913687286996470821241442515439444698273128580267120430495916930546843114452108426061534858459035813455079742640816522392656204194330775345810373980916862577734772747939140805525726550189870348765771527190511709537032428352990940498525743762540064920493980251917846820961619445175556036735028684307768560628757859606335910999511098353059427545260100233933461505949045436707659554806858091276999470741137647680249036330398298692143324494799988008658003479103353020731705952723791415243458234196604276721227167327995933403314346715078829194910192818639526025001125517744618685730694786099282680711303485222933808513077750222371009818900346738307416514840146895212231239837560943109355473903644741178714265012212467578139646389822440440139363377558676640977581507450052600301424807215593437873437837842384167384659325131383199165857838858958634015696434631816124163700652624524134558913469344526435020384141949837600331606277115755866965024403302950288870122930964495167962052793158750430346190635603934797175147101634175444310125633946103196377025169105344759919358583982059019648996040868158827593064734385190316347965845794782308794375820417263372539844411489149087460248241058543950186728129207399320024336808020907878279400641139867309547560193887363354056162394988468078336795510213200721668031780956819070572329721649422835933992498352240116225304950365244094432756492505528385318632204184118378941854732878172925590083291771118896692928782844636721069137865304832986091678900724910435227563042216119044172930238444635731875327470357353500336256006346685883751146370379178093713823758908366260730921404772085384194884892469118125745960355901130875301304851924387458504988213055221872047826992040511073658249908493735971424269879098145834454618365145801664130424721244964298079916066011808515666435854236063350322051094688610576400448036962422769173117544922240501047458662929234253739833754953463626989338371218337612238083244514804799763674329088481665576915991267988872709711421568689824900216126071406241794539323808969379864213199541558995843754578094697015958295007605803281904317835913827688874563466295162357656999147221415854336069715665343675882613254306167175111490087742393938769578145453969017018358639289617369601404423512736845841117229574606417507985630838649572685587270396617536567496898236119543675236524711673428560767242362354726990173889290806968509231177905134586053254779251779402787602516138459128656579270491405882126997164818268269137768329804907448391501679337695967763719126632934626917749935256794881506815921825735695458684937547617872386496819928388697391384179719976035875864607811224306232378195236284983957552285097353724046798463148810065279941097252910935593827091499595100366049162653866983118025148776068087814778792033402390623934936139826178532436234464986601914167762125565796509740950392739349619469923122072963593907267772396522285165609520251912130489337491323575300234303337341819938448495729902265745968795268720914019914513868270485869456009092688918269955543588946161545424776281716361160641456615725381307462320674141557739600378834070819688048282483271609309822868400858984976658067635895750411212482548082934342776055611929625114864606718861252383281533917113820064737276289489021416927544546534207370698847896688631203231450307007491263014732466496389686803579074316979470690201864616467161054133992999606558079926318167464321336606444999964190746286285142827862589261881660459329813556354787239496068343748178144734329485698535230347637507136929685435517993906430732800276600694679096986787983848389936208904014146163011412216703129153774829493340521074434445755472195415526188284879746782336242044058573456790934859481995458835154431908281709557609944120540450558133507407580140265687993951557097389810320662178553683552561041424686884107042019427296279406305252043624377668380850519402308171106526621594460256305440382151382653844071031375853571322338893300172289866232813144456662311429062623778242681346791870486050341768309721781705250679264951440504287732280390304180285835294210113538181541679090518582120513105111766067662443715739208712486941211084377673237072761196805684653101734210172657547051430919836721153092160251258061549133571951916821561203961457949882537542866072579476982689210713398822024473765241883135979447971695889046449858330282181452439230209500257240632018992580509161476119227749379664997152595733475452983121445753252809383981641245390540298042507680749891695693699924924882867377365151679539855568523493416360983708695710343039156761307904187605402899932080388517756638118246639382504647749477712455216208271862092604391808667683900453244765886886458896117811045482321720009656029210824456977125061317843936309027107623181648306074903919628427049641191807172619741315956782305137349675686611396716029288539419990681071860156474544446667821653993234015769315825178026679841669430698034589452471105869722765931248058128590093393621055839628946652733347983350272365071680019706174410427314594207239888358755130834287581899489170345796056606276256906982200318623461515167588348400357779341795712222734953922078927684861239206608508815421039342420433793523826176007028375459895087913558697379942623707544081680588535093593881858037607964097306331910281212574543267828279203513972579133899906252378896467071785902327114228131607010978320502250021556875364763509784217417546087457098166219925522492302131905411843559575622195272143716062980175480189786039597966630871494920283685454101454808358444946899620762990119743920095338083277819257826741569674677334171903836687741399695303352976096440894976319274551813839540200168279588391601132985971244020255245503013435437314467332132085610667232079958324801504106619188032219261597375739580979477172219497769885051515160628793726617452393902022578694357896355801618973577051938930274271392731008144258070429689688959106131985679112164801321565068651409062260442888584677018620464992012429325668356484631009021454842727319303771089773900149091877440001308817722437877601331480241106784530460465786328220563014513747977246481403919763782459338300556438263302803088743334331153122324869200459426995569014827749436790925177180278914943079256997729631450050863384543670343967740385199655471899012288061180678006149338216575805254282335302289326161060406966771228367979074864513556261471796854949496305718720529310866931913788483459974867352829435708349741134206080088073237005896058099427533691748776802167635164448606734860333849913479343592281369915075061361156824651336190618725085004106679675708837248133452082720110984977027958849347121245464101473677391219585915785069756352038623804741943785290029267748597866484603993627259581561359301349557105977658418410633416484276758572855351831250152169462029608684113713833553283014631807715828848035640722709849017757943329119644109233979706927221393659418461144606009942688370716969929465887288125271117089647441768442906033595936271051518219431999229997336540207214219515968751120782367186047853201231329084807593034109268172456207688780321337225373436773920398525279862119663065568260750359249558273967264449367415946300148486701845750690067851187290963956656440252253962395723047794740211899490868815532116303866028767851480711498584576696445294086576859466735835459097512838836800889459905046354962696580252532820857193625741194870566268823740806977498082454137674903873633944261845497286774762247411965511432201324403685491636345742328273367339296642610615987632188139608215742051516806067285214728708246931791032233853209740851372730117201674575318088795724082801822492050150655228095160382620185813438411466131235385018237845893030939234479791791008765738208301783689414636264811528296631425761959412972054738016113078747931143177296058421527617782047600915140505815615281447989135652851406248971784745692229092187496353275372435028791962542659539770661686887150389868392493710370604421353943311358684669827503799889881523534263383907212833096811063294950491866598022439340078875740474552854786999976666677853132366269036258247071574748022432924354406531174752957070672228411295180406759126513949362673036830826785952518416675932836709744305242245220236630510657564533104013148241497918245176076481028171230035465002054751947458086769929226386710484753721495375140685866810837054058341165374702952509825683070954580986764494342035215340604577126634636172631242791624335473067875555445818496419783838008648464643402380485751191373254079879937110212684963044080211994107097244977453074169797474753454376246169996737665665589461466124028883778955925706106194692761800657899301616884448168286586451837996789514631890805889156093290222991232854950623332768812646493015688796034612874216315305225154268787890695314035636277128064030510090980348186975641622901420004790114600836981144735363028574669457565551944338504636152234911296254893082879671822060218416788432393398142238910151168477017155484455469341478828211232827213974066154350448528543901016493708034163735677407656426907699721411709412442618110420026026481983308290680967956312188992935114937581624087224805544441883051575783786054797289138589522413320953232920626878751664410698414697371862007484739416332462486697044634359264711472753897079041236978423273405012170193462540445033022128897652056341826994152542087747047972408714420586211248639032992697728878369782242246159220514604827382353570563516172561628902034306780458755675738162497937857074273211325497694227342714783003684271969394933202320420736397840367333850183091375550445409178162479964167658993643204519641805879940176376707275903421885481937566362360741014279003232257555745780367816125943767903899281631767743566397663559420079114912934996299892415496977284747788211537849950471848900099635779739211579876190821262125021411975947386064157171927936071796664046701527499543007128254815720304160988119901038580583968173715731260854281041676632432857168437521223011738986682321003301181301846717218697973439585842980018977363750455176888984174606898618162623214482268613465926514071972590879641709889075767301718380806673969606599458122945161304360983319191775237434641818845034286921709384280324938591256196019730074807886410546449531375524794049423227435884181323713460719751219815875361358718550654027037361050024695941296151437425866117535892863304205345556675169822132891344387320882750379380997558932885456804824463557177482822411813412522787652161514610995512930293405104545696252173799776764760633450900132653791742680710331690034488712829283467195132560186942734167688967251960555712958944743813160037835999743307078678440965784925240753709124695465449011826297797874649693057096374382747623934984503781685977415411373288219118386875882239160767080270145242250388242850553812036660145327491997750854168765802517260870857460848897696234240192341275134765648001743471192696966195943841291161561687812943482413118702786946665657627596397315808655689930149337002611256377413815806221282514432093654447662559115213545258463361176886414361898223987189211587417100364490388823375154677299047017429105947620035499216644195168697539489977742843079117369180125711381056468763831646571989926653998004529797484867623606764593756109392775863921237226641820284151391281725350780264415177314521567801420412626097396164983051746787471300494964711098196220305820710503504059413885032817595878851488729211765663201665391863690358241741792699830824102411864328535223590348215487109544126083728709386491258575554567786776374500793435636762624557900473603239163762525379347734279038416867815801830324387369425349078776092234850169464267730796572760672209273049952496658151331690511943837096950056357085028179373939153645256119725873358738842223743230574561571632481870454014120363271756346162681839299885475555420903342971313529891192632266419579103450336005946362921604778156903013917838834829262331430477327940868523148391223526624462511704878757356444485064609618827952332458334656818645985082698782314768299832723484512321341141439961717426924735060668811889144061753600633597629338061222238268104521273727001242620793740260683192288879447865162589181111994428451983657650476481134641745400413933551254324790085070154759663036969863150918113265218992892817017860504424726285514495406369023050866083800200328274518553134374734153186481444927177452891951283139257442956514394585239821790881175620686015551886322616957137682106338503579970966055022774863632380292859764102351249361305054498213887646627357290768603115220364316922459276581850344172910069462111426938328837526917448165554274251879127370431748746172968177627615464683832803246849619528744075962472554786785813127372839888464939384353579115511041543563106880574619569157082180511123129383461930641273576154479433667250374286004364722628575495025885751729252731143378879145373936987255320013791685516789193615663324972310639408892415114510430835589855373000500783429667902968891517262564870728192667821351916772711803853658463690013015966657808611064587938724136067738517056212176819681291902627934881925898837402420906657637437743533620295446950880727487364243644939073363011049647761433629015715374007900189329006366721003933661904914461405581696701122555872169807184759649348863603445012249223294827382023738771830788659303340175044767796388416812665723572650047707067391230660888359140877620527618532821628226472963842140863715411303748932795185385052891194931689093190880572638668928335477701561892868804253356746344418490247966683081038913479612534445984084054535045185589945086028695739684852799009356324067559758213625441453193295999094000039208904161391657233962884231726429727595160039558991971018780037028263409169367515816588029331160735471552693652504905490512880511478609910314365511705114365509503614542679674195098287975352895583892685820723519808222835575744518500829297822851088222823630364431132607923820044795262338291175025972486170425267607294356386791768318048272605768142776638690097432556483530085508193466353487299115968423588342983196564304708185036270859596721908013460903355162682445845159779864586274599355977982975413590544108853077155116067419414597622559551654296370196717114974432494827285876252784877072235234878381269437063385341794139576087695863417233110548729671231620542522629877012082765071498849920073837612173463161706713093796632328969519749468877011689467522373925538056648764992901715458573703237504307231785064950589002868044222599539358098111294710589892024353781995325631257678492664646548109352832532588946862122502290674889356961623385154482238603412170807216661274318860792599282795104225960365799228859269768563812368196382548481938133006524405289901118563062545988497659043262276081877719000539718618534179591324581947505038597973414251202022136222123254875631690609380897915958537636501248199946981649079985360037879225834346134846771060558941780924586672199076718324470126282074672647524197990659513339525349840025829848834617772352567515516340263976907316141583735217257927035340135146974712289042917837892781171157938019955000004019729283794987795854098563869221736388428867937117471810622363153734908911758531155592920496384690497332005276986785874267898096608523738144115372773096990176503428344044779665213472568890992207070297483285556962189005864913985286020875552227315458838206982207567219940471691072674336113940126678378842056878381249522502871664832665693938704311927576505496271566890899264037081999534250237651819496921773967660312452431006397879719620202783641354894627780744642331825784286241840568040026145742459088706164224234277833844270462413154033461109479515457828568199882376223928402627079047854560001131230074491975064336144593372676466389229418414314975519847038973884651792043578566205919062526807745874044338268112791200902154965779320275013840744245853344661432459748403509124870520935079348726584467367160398316827487727232313545416992037832775686364780118957695184442029734895747807631813871882305671568931843899738145417370767793181298163216972271090143270946314718172508869257241893572012341034276404491480003222197106804993662194464716593753323883642869581761382114449860823795145970841602934615612353161725739921183284767468037959121220099878862159842586545585718955100503257199404383238732182844941347556041078727295140527064074336124992028868776403744463706650148989049338360024738848298456088696324234540757046822267529504635444361014207419526672951112706163327458345729690469158316753037684151058920064922329513797276024259610563305987682607688749393122190444745056605351616465413877483405871178999885818468102832330827920288376694342768534573471860850553019157386310338535826156674683049557241844211585421275842012925894304281446701443321495230101586962997333013811907599911501972418873249801355964724388365254860095217236413319604710264324405165508388575065992377918314976902334600882578822859871406332842024789754465259563725378403885811615831763583043801775450636556767488304079015369626655036011671752329007570995116477015248583578708497665754942181808987978825867178330527417134306245938638336329640244689825517055163774397410813256154964703990242070122392406090645347554380146398518000001344007742097503285822468043935091951485781660299880948900815938671364556804488663932800910151182533536857644773451100263665295217859488756806618347129926173260651228897077548144815986905994281376084977728316322259721658665217763917119566042840260393006169405404777822629707989802629395852673391773847172227617693381344587668683453195731287013660007122054992098259269999713101064379234942213024423846762579250189687557247727011468278840876233581355602949638295063412437166757272605601122383677678580989860282644990036924602510533385352584407803763469704518742369154477730041409311552342764366215414567558150406833448159134262151601531286837692354178186506435958488075321617995579624162635466957843977693456896314865137825085097526156268373174647780375902888398600969023351705046353625690944603475266065095606276232833221890146268674002790633581804316187738835856938210943736041453837939763872647813921826712717492106493266562511906531244374965199316930407251953877278390872657004749930868660769544190498756372849474406800615863523196014105348626226441174461759619708254082371087718233951417214081306538672602421611056516707933789220178331020306445957171272811595359644209455422054385759898767897235439433298074155524708116776578896850484589862373403342989374597347610874318190353722213348095516283926829731178668927698246525264317723262817587977786746707612526676823222845103328525020731119539544787303198693133279030690263350482532354726073444599822417344091017945809268233491383317957869218891756356610642683488597814278406759055205907180074726574668412240557161786942132928981371913078323890748683576677220445370769746972810706056316308014748807197366539416156907355173450323473158083353310611171120087805604267637307205308290611572623038155167343263467258828082077433079501894777124560333099182496279760551830768392457499172234092783179941447810598360134437212780937448213091649811493264244324300362451009808365896305495397831007859237200839310312143085393183136855732584374369873158710360074279171828374005196344085825340374721736668856250761956976864356353299689331368536415619802506784762509109255419803114228366533389950411728481800260850624088189426908676817846808024181826204454149957771743051647554040086478297278483161850367517410205502750421913974747084224397969257292259800119608901962058345741620864568306567292803345320351230277065951041083913862991216899492187314585954425450461841330269440330054202659328882664311496517894652060536622480442233138502961488802268048884703123750166663470108503020148953519482703848007419083949102476487424373919634554505400015521545418309888730858436589132374253567639395314712992193722946276065217871256058924741426552506223831749603009196538776007084856551593101243293007664140169857484195454426545633840068226256210954850637176676198864733304234397701007230900664996057390697833334516049695420298363349081235674121555148078589592115763839167547099112316452153836760117630320050179752895913541150054702829930871334765441127780248700656614741791936149789512944267319191371513714640247094468123311471235365166295725094580566800187835616764934510657972684026491849769386835536446065117383213553554413042370380937500329298993188741225817565282965666437511061583167548221527249736457128475015928699869157261817592079605662416587942028965353587339783044689441113966081530250070028030951560113551420263576403708176857428568930293196358903192862503776753617786515049670223352714148078362850193673492545162670438925185422803975704448229983983348651153778935975836976139760086749513877560925110825331849406161299277334283869502770662099940340461815611346622849591190821319046095396595658032602341730451082605320356063470711015340234054234967904041284185567606606909576250819032752920069824566604624908115881491419822699423058633763008833435992289172567805679487658340417305366809578374186006475056802559246493958120463173873665272779427217443692122601417283029894551840602983976522615691823365731870188369887715760425367740828225781016248117424459672827234757203433895267108395058036683637146261453822918111893618027924260367951824959237316145136311113491356659358477489143181621343773307710419756660865747612481664795524755244752137434375683349722295506805861827088663559962661893343641286951228779905747417428709427793143636351625375874443935114830552759847429270038538050270761084778776447752599089148377526708626233435091868200141949707186460043966293218938258190189190867658376616957242321878581967858521192205065700053477583375515856592552497133831930640804792855776994976910700317822593081725826006581924911857532804633207393598048986864476378133196985174484252272735094752790898281333702274995686987751455817461242367465794371950953329767286467139100728590177799773462437752802837581894410110954605837349592339719944766751146381303437484936648182654186409709779285391176315083903604592003204223636417414020809833121175725366531430100678633821523563317016993368168257655067439450678174025278290846409744527450817294173510073263060668430516293126845508811429252529550796500567300318767491735604973118598434350171626649154854286194129515943986071142924526115953693822212435424251211946154820657432166080641990140974482005791388056284516673999678244522142054364315830574637368336859758887239791770971900603000621839834491424482949149140700529352760899833854643918505862826701441380098247598235678959157684997061476001985149089809317173706925635427331642833056758641469499032664140046827337192835251295857702977650683747049790283477612358216142066654247003395123679535629665144897601915187172565722301712843062701519465814176653852230177945334932206538024151938705207403845936022713061905137482917604932668643050172751850530908045052120262084187446713098411008334547623872864774437058276685669146319381499345850962148091836906094572094228948138933558642145590465255301281920806872828192625262839837812448403279397812461130974507249260296767394217705489495892180968394014013746522035544753297955913985185738025225719164508921886979255996241969812871111411651956222014742972416831537713525203023142122060608525367196223299100748036178285511699802478420975377591811429273878408349320427698380054864286532697989730669612808117467078788026531119281566889898125645006988240827711198089862320438232880009146607921028635779646739241997406695717318816356653973905118781768204510266757355348728850796849794807974332044126373181418982044937113640740278474865691980012785959739699578452000533931158040274709581666468577561441169472969724943150645367067979693989213005740713187677364842374021536957084366915160349096285342487339334224929105602533592505449201521084001973944207080476683275444452952046658741857992533108151791359271285240207811283970138978915774932587831892981819995460863436922106016689658242978098209324857048468068243034467997590842872702160822255953595196224629740875708176580214952253365844005131059760648984863287713799925114619811209254088086852840671026293411954763639000225001273880928228073920478352947173870364332727325027466191999629359893743029938818980867907806775567367719982506204206264739905116917811941874956038045724321562988636875794747719771792326481981839272632719241930174561321413519017276700217426579661640925579978520244297508137534010726994751193725963662145770577653857511856351743781339272094885665361829978766556678239844701892323846843210957613760756954478627081527165183573186014681534734915610168846447137476570248226759956518368282698365684560753562189216031805029752567796929893146408233501054064972867733013775341831276617445736693374733094479362711233359817059834836043892125638305749145723962519886652505904839297860446159804131142152222244154954156493826053350036486090174732820860426087411549089829871623175030470897579976791523370993473388270119177761411684846975039418207998755193947466371963741486680598516737532442960502455704388809229440214664804682395635427954567164622867273648900266302037007078573459302333192595822249054891853901159823529815910633111318753798304459937552138983591073069581646523254226046425479118191942310842335388346641827777568278701326952308422096008056421894364162093710003804804837486806265329267983261322998930093634195833006530179195676192983003972758031315805616673340229354740009353406645986277982262987757229178074019065009689733647375098372626503751907925005407818308060088581687187958265372000389531857118574658522269161494543058142057556413620021517796964865328668360248173600866030213724884403851620701994603315886804141829071047530942659222577137592293717357941290416837004658052125377664163904049973638682205110548174072795292711830528357720264276379142858283731580694692676944225111390137526971591179011365085858930672748286052198280568604478273905377668863667807036174536299191624774797416531511874644009914534360382094566466034290924177212629138950329526102717362099384771283044871499452762552157777726830066495446592120162557465775419534740614768085185898684231043400361887479250196380897084932006220431741717403957162860777567265697449502996904680382275763650024717592403396308610859550264752135738204718462334906568451912859280459238348323299589668330228064888328055357439695251352247665392092824010325049776234793545641399240489417839795847446660263898791349478703484524087075759596496483121359400469205950696711615799452578632426211343897790412156752688386408325502177358028723984493839571123886503487171944036961283861056240104683045654992211638197581689509306652926070099246150644171627393116057369209176883170765081442551013351392351162818942699963845886324002838770829893136237538296165592186437674225141755567824135778946254940975364674907007430545802862094368582502727743505993325446659354309967903051598752097728951736166882121971286721327379134460627677559082091969922273561422835106052824411688650850410583242493461215228727261444945638996604895989533229279579179020927792677074158583300420061279560531259971661788310468176621473099819708292320730230091281107489156269677834697149195701849461385989969504371538786864323449492906426975029430458164638211063909216905555451581001264931963060859515557397622513864222681608374466206922705448553333356843511575059241089141094126434150072207514634235591499544894709835169109616259292968356726109327994273599723964414949313512719367783699726719759642825321408075127506101635229479538354857677472206311065712788335792379883669260228783007826715111166591111243180801679447561662275627877632233114695220203832488540955315722611633047286920348810411859739371141624474183976756946410832302776181838256553983568028763188840238236076378833626476682429803944915050496133641273497274260496518588950545475634737343531937868946507433655817738151165506530787058945918420781583280457130258675714513217602126871284631873209868014611241136384764533255006548204144666567280403898118937515264196895728445676606333794639084408042687574949588410810471868817297106129870715301501955467586179565978148693083906151955701527208848503000819366002981783175501066276525017706435025912932816286164080431398206801757744645049832506770469945994770748857221651539393377592498696495215309952883091669472723969755002526377766405503732877559923953701631313520662707328890925566941354782626497651230755652366117294445059137869257555586593875073181515851545432616980264142369348004766241600050982989456616292752872016165254983010247512132022467334017813541251396710993385964865091794031957478366555080968788152796885782362792076830301651501784907437575982490159050929271715549544056390471118180165288871318449769976540219402580881698671649952020789920711496063509752753173551339443339133529278799453589431306151843151866907878295887583489787084027300298874640698834689412339610866782092391189547638733149273109745018913324675704347203518198416445599255527587177942138204230271779379154653906942252677530151070548366978096984886199994501739281369993916718073591737708884551864337246846124052226189509746486584008406483316276447539879680071469270430191448394665040658664835924372519427004411867821726542787086319052180908736475350788618862643342844674488419944262253126191025975575901241557438441251882119516988547186491171940785804911151794993231730502376363132783546624174946383791833000242941171852368056410114421607452839798565008297523918288964561268684420964944204084662446454475452023971166096091798900885319505793964236391551071147334293997679104284234277005603520952026668847243691977113811438192827619095517299531340031166626794941432165409437827720885008119429383213491619263537026803272921474288425707586648672525631223100072626510474699889395753823704950813425414043782011930055411841654991271973679173856653158002675497189294041279176796157610154485601251128386236370626463059144549116208701867876843143950904892725532482121356117121029806833153548029522559052672471352148322365665029900115950672039031512514582157060045293828677145742378241345598743008715963104284126486830063481365648852455949502515093719767108955611298942484334966715552752965154101418832669699600900535892407434586352009698297998614580438143351837169031946424205782443218527471930587462415499505153546691836825134320727503078744822007072410607363654563496953877152358772889895713698488637783099456739336639196246551458950491105621187072839601899765151784109826721211451207954281016686868755722494489154513413210645198648256401022609406189356931877343186500679910049401802421380039386492782447800764915011390820235983248141467858468668747344514182288047402375853152085090447885239047416068783009085755935038419800590154326472812671098241596084306831747696171363482813228520743014913403028031717669568166588223989825835502878092573509872346303210334950503211157843789827535961164907584288067526284449933815131036541522122843819440894153241118167294802108759233811699544856479810938690582178535927220438198581373758285499122664200098358201773030199532386269457185519308378761092549232513555371160107945487349703853252047024380849376494318118795907741234553361322661058889683029900337294376661249202127784534669324149261608689948566589887387728852991372886195400153614048733579238352224453981639686307477957842639145741147146163758251346450375847979220439701891409662405691021758253139562081264798634055729786889537374556380100293129811428640003575967949387429153498923355428236982206602249352789497377409195353031463437045139135794239104818781549225825698505238396321197469977337697727103966660190551793311842810333178976167829954173582669689164683979021566303429070142546721806505399144848195605894971115509732533406265232857449778680243367353634406355225128605164600380658821453081348793789536952075765450584589373253043248418280961762183417490668223127975837983621874739235237196983503198448417313376198332105192507446164044789538189473584906718166738359776365468426037593076755363036568652388324128151389205050222004394063593333739467008012632171080792363660698739131591366977783017590117797911890289509759846855141316983743893904894397259668161604282818357782087439951321169352962031836251405251720322340139710879430990304548241757182547788410887509781411932131637608492495044366687944620654256059648164766692084458687298791548586513304240057676407698856351964924427386424931222360675583692041005515939064600309970523489744630923128910164548682729698155040011219738857141850735861029554796965759585761951868148678607227768061104964941522337835091565152598250394155907746714688473599922696653122403179573686872043609463750427614428961923111177397170678724771712082303033301298677691063529762809833569621135931770096448889891852025875644305841291470745278130031461531010858550788630768709029550643108439876769437587039149906359771964367441606008266342308793588513560985792117840026945779459560348662450708326176192357080103906933110859753805063164293385221932686754351722257370665025913557492689489019985820798172985309678363751073947349569726003482944617523166474807310363218014092728729666228497327411950133720972143490645066507282753453854863818586210515716670780731309467990706675287089265835157023865327484271434635007626969134257935089229004403400688714405675006203822002598149268428057540313683680713010932386951686469516071780246899406810683070751648408106678441710247120570612395986870455340890121810113471715984266789742926779676794414044042821643582080671635289185676574783820508670650619214860453097575918052885860171385417688847497749840833275886278648376821865676397475599992202637074657604740122934779734389012264976911995446734235353901882638418871231497971102141778806758325121964544291181084347709289088369639708689316276916654009872957634092634587960507864850535426473455506352899141654509717554707310463489247927520708509672343209980409966506350132623521752553231444166244116523055408882352469495698950899740597287551833119821739616386456553554161410412135036971086080919560221685259727124750268784551028913414815073459126915681458815969872720897025815785178801138891059373707999547096026215835741180550099529327623599571740693497996327230756585525170935502918787370023028586515891470031906595915534921424224752466971807832542481572198185125056286687158511136910403360739316711899739801411169025189524336551743432649212817022858033229041773699328051454752145889013159674032382895931466997757024421830570674354348984983485042405188088614028249202518597074090453346225534828151905971746200172439836426321184407337082790654898048577867836827722676988511313571404277433382511146544865366859028823723481546156148035893329665035093467348809155804418970090718489037392064361748458801623502049274084219340638708958284417424132224633687195566396056424585476548305826529861738369016324840631685986045189955559357515654370172225205443763633522182624149404054927950759321788809088251517908612771919321689858346348676505224584918867250622596862641323186403647697677950090871777422208101960439262029485308020373579482496270526481245530337462798062594899206713165281661792548571530172739122932105259968596979783234177974140191854886553144023907441441715414018396685184760594827177065752888805016348603653965529856698303268614953455310586818977754465423335427335354684558866929571333972623192225425188677555180337421757196474834818444651322147743598010754539924416221436912239110367750361096202679837799272563024209893818902014400623195270418773655940500535217921676918071323845798199491398776787935086891363243578921532711681844386771981177664930337246813765996888754467751595690424882571158200867013064400373077395850213453154636688732627147223486449335721985602009458945495937093309387607764549024020491882822335748584677953027422946613277265686678813906285118138916113861440960536954634776198936337615629796309600628637555897102047472293086744831776678200772596414047946236061758484144496870633044745137011252860169545321945722454407640628178529006675673853740791679688804600103391301562235330021906268758076340678294744129094070506236871352310498294396991761707553092710292041008440769447700574285844679988474729693222806889589504213027194161040872208489056417260891629981913000651577939478848105130495961750053467328655570448655147411607741917499919657861473964295555650466417185556772508231678628383821570325835580453067862685217133653967292824785965526966559022527656688749427223470753833189741954031500155073446916448652669378310252337665488877121184976146433023554934897837432004525947846188950739428687552193682580156539063713175542620948210717141264824188063063773585092183740207495985022832968824272016060548122149025131120577170675399538103732975084430897903746738019020900530874546022950714827188888552548853501751014720105296774810654493033144240553466262084969286469185791721793082660537409385246331278644862202498220138057944060633971584269863864320664331419202404706827533701635030345585350978588261595087902571235082522541204550402676442583257542177963630101961640068403610764569452047126226646146385541653314480967080460712359892533459905902543050107129753496626639159008106063914228485831001017871620700037274764349464450635245235872316848380337389967372381756467876762148456214515734483843859017178258751503389719696002666450360938784823536121436904109198050600700583151806232085734810648863711245277648805100576424051791840561781575724010988687965954504475133046134926253541948378448533085069079514351756377764679094448628739765969425678937720344340827081906800388114758253451643924060411416085658555572305863471802232696012794318807607610566541753919083701567865336507686859289624594826512721913140462092514955787151548532182026557664635446256075003345884723597105170241909014051699399964260181846399570250920959504835433924294477674549218286907864213365904342804906078211862611914784469332652217371697520752710449869145530626070803127423555526523822057998712717313679422248063854068623517911729186022771265210968326686137814002201727348791058003416871344775629653058107170830345620489052714149484031907112308321144802207132761097301021749491263285670864142703283581200664715424751881947918968422446549000327771669388403654627855161740841058688383749843049275257003801533544045845205317685841806627376254972370716552959525094726103252791932240391143048929240096834674819490438429783854161567377126985203529909815786670030217447430042235790398846149550184223170118218412251410109345156539680230945552815983287578992672885414277300900663462269490218113651505272426895340491612495342556467931010947482961131422062596570822450556067792604715337402693604835182899957969055312059388787071067580760140573878615718902847109697587691101980855562501164716416175719641194870314833257424925599602783675387564406030074380285707453050034307069785566487101850224550696810353193305414505022168757858867877069341051661316087199541964328711079761512322754937605434599178699370369572617117089690429947099603907625176484911188663302862524542201474828712695651949314748423271357937001207656220432257268719997224643970788319832010304975064581121993128441638291582451336831263074300212320122440493849166165455410272730625910436549265438619167156047782506882486807240151076044879743782494662000982039267885293891581788695920388126819686584970130416636016425124633456870325857719914174924713502058415917402885312809257606930511467674269451192614103195249255149930573905881682762507695426082883687053014335096569759615562283674424827426128929265063040260869732337050824380215580167367693495435881966442358211781271033886846197680130518466272468761629715358540151775760637606634694387506603972720281191213876371705838059948629261022852142324274990403995831982273752945616505361680006949993400937057722315895348316886073490626396456931296913392853138576891974847718672436125899862567823665053351129999497007515632454816822643208587166014711107770364036809070872497818441917946631939851952506311383059052762267071567283499850728576336082766162236125901405025427747251096215196853916386753441788182894830762837109497099454342651460887294059170650007742632475153556087535905702050335187007463163046375357145232536236160412898340243445934423613035358347048555654917254540225981500289171009834506159976549837757906822015914738195792234446447126806638064939182874864034189204127178632775331767861480990193789348739162879203260986199910383203230304808394170523208465766802281387899266215090057659194004202140553697387713134107965233556259585646937180269046386441406901198627815376085309545323803647745846122799030226729706451505446402918066048573903299833513267621020644000978100577747712518403075009314129653047785915527862242588221920459844918325934486977531444019405521725766625636338990710948311255227561511968992638304906338527245009852845522613753574105669482038812491187640165094996611567213744549453035608646018698491025825542030679736147422022846936833929572459031641309956984190344867852931804779295774005106049478043429677176767024032998952239928881843025419092924696167398383042320002478008989472797954949802092622572415907604148046778479171430512758218302980637841337463193284518760151736819375555203031853828024386211919516081939430749696415058728828680384717501403191810805760765846376057867669581078058959747343161721592284222548350866363158707707046478284442137906194714762517326384471497390495974816274313607217975916808584767496098251925607116359435707702967362756217125794077524314326992312494829492885410465271098723941730165446514675869151004100796968683857236995657784554041337052266210077750447250888637006245228088647897953212721423747225057850354229351001534225918609288054138194751374508156388989615846890240249606225202239945128116287447721785240322234777367595250750240560319507936327655151568225465947231841047204078747233113342239586720987297499681250103430886163013262654670512586773367898334405274700864758727363303635152635144981715096523908225149261317199693328061940992116285471338839601720339154781872591223427597513112571011530380984958043113410944258389484700210885999743370209110686355997625346697855203158387806578356640476829042674283763268677820948312559121442360394439843966573388995310244845532699165248284130968878236126407212578504321851591403393454652678258870768238356901923084871865721351905777559877937813820050410097205087078699740795167158804798075253609740958052205155821612541623284137519907662810969792563930359990407994783040407604238130086147300377052235422100609175449775020656562112427956179708137460815607702663463025019930380533102546935403395648390956941166859298304445173315834256559634168298944703904661794306579448374799267282748251731474293902044215206055206206535695893471731361552455532316458337177008099759802765776301606309188282055949720049396516954092675470665196428435723749055347776489552502437580829315196595554386076452508066224065413388462686051223227365053615056075335442448323275933807962865888926814083058692362642018772737855989406906750623885001069947871677717525119592614677341531677452035213898027720621973560101566839694193296745066212227309887084258900280562406337688783867272792104977889678689586492748803727502427949446878192328183391756528362389882513272208481436266576078603555630031215005698527697141954190643781508878425995690340625227849772837343213693597247261821324973376890805246624969089458804153059623174099664862963610335590436804594113929467828435510521980813510652882964761559904792062853110447397316898977366400480076300988250895861099601653324010526460430193953939136290001042949931187694631330327944111092383122154337711031946083444615081031511100088616201658119710116044293429396258309535765055718449739835064623300491740799543964668042256904047268273493443453412609981167307634330631611417449498900795054344682745820873027080813662240072568805778982217610935888101689788538765880486083521339194301121851642381357075032533652905577344217319064838520738921250669447991699876515983566115518719134907105351188982719642347947512516043667468399125396854985529869229805858205621660859476585309791498176099710030313292200377650649726331435929723061068630535453458523053607550856583458880047392698960370293659870359731330270902991613108870161051857168777733807993637551631823362755187175627348789084426629141786044469950324317699601793467127110385246304461995442716239297214773043675433670181895080072994059216566988595589339562919225468455227813737354870792393945933196025214183523807961213205632352258927341197967861345762621308007682958714871373961120673885693043931058188688522670231055149677153071007344681368075011763853992115558801332448606063721323140102775289672330171259134488746236222075131967809169206047000200146988292471357056330759705696727339115873796244416930479570741163796048867992931963962205953007518011541766619610997233657958034191635345674712572608761367268171017824867535994806235020327150541095410397400231795622110434732750265975669196518563741144167634978226905261247465391220825736590777827599915133846492685899346717943018918762301234008800382280371758134369523878458080026643274069253329367302921227270868954887780324522606287726247726254385302094748340449818855881231048048173340912490102171323002580459660123852683586264676435000784209324114366978520915854484904476365123185069475250735307069091795237747637181803800725843698556743456077051366265887063935391520607544377664824221205437377730519923434141876993458664588903475822015336727285472534295510135371035607797385692090498286345139102185984667486635558208208223710380791395194876218655265963765669339981463142913454923291383718280455352262731582037949811898964168174302586060203728797463962426138470897781321961014339830170221155676728631438085364761678542267001248089224757366097823065268580852010488225083832962694343470040771897580450570485555429908944524059846895250189949493426372402132222424272346158101172548467119920726658637095825344900521928670266196724735563784757974863322216543262836732992196439585481513060554748290795266496407351046457419038811523076527708978293234945078562809956988576238630765598645586873154510183553082136905296539779067250982065658267400180894609224787159251860452239850669657588057352892777350177811579483665761695649729279949626414119785327947664219194516483223587261200118817775553166512443467228285637494874217801329384274010218135414074147401994805368119945141373797389058105608905427756972835086607078655479676510204696468517232692407668846883005529160996167812417050986283392609579536138457249128805147226733159244857602083013247391875502933167877427977681924183935709458240451835826053649428491238759034453638477213599541485117282052668541278627636392827770696281867233369153024949860272237648077596355064578936122922126855865185273463895054012950639949125926367059352481439223584091171485250124094120108805441741399949227935074333573404854659772043142715014542244532017221930658075312488675127791271856944672380859006081307904882555087971927548166021807410013123109743632665403782054406878394787605508386389598746825297310731547135757035297145522135263362991418613427470737616517104911077022306728223833966032899328221445411601704001988151009767190109506544596820648518401392501539119506285026076323432179874954317870811926201824828410289572731563770113736835201755674208863983064662549976098017300870463238052674066258443970781460313022001897478689121072108618781091451893149136545553259526948132867128094486471336435647622937253451346021891631863731645853291925603235729916776186052442801694992962075405716002104805084717287566317810588876939671965784494301300533267777481665059174046706268485036562530546564965145314527220625906192522080651250874580632968057507349902900123353597730686568373232982763883912321160995783168561903500067640977116193254879167548751347020145174858918822027772339545000210658395030434975295051145211613009436043757015863324803231800192675287156394883751715325373188887686225963940384689833708686586363776211188260125906233961147779525233286550674621598867436217879814494092917780791088219199345163139117124124720321664871731000324158213625556513480488063747255981771990920206796568833187902824281948505756272139437177557288494264477039324889346709375025063757844007573706968863783750578295256363892121589234964430970461494915175198605376443979923275522746007037483589680305136253060051615821843774921234570779833804728535108742031489839787089745228387735553133338372509578878969162067356940089598302635060843179738173262463104206487609829530620067378008936290284946831019156324269429945768319293216509647255440441603663499138701264834541774726830097311862742063545410532797810443472365507971945781777462742108190035817234760005418986496560554413674165855867853241020168778951254330031492332396818181906714750937678443701307225523045549447272967503456519719910654872060153616012634329977099634428633835621014472978675629509766885185275206455926456375741457779915943544928731623381614665369590500469699093140117263515598589988470835162387460789084002766997973720983001806695752964964888155782044953180801767904683871107358647624878008438114115082421924727431495421382152077006213981009477760613574706109399067461227664479555735616011851544631798329110731909561570035578759459086177681112206514985541094186539105009132165899822606792948701705697217478855505524424405722126772067063903879803816938841755656013489493794362270191303707473741113146862757546419968819382446422077169797234051806582311146295794036734250254472731740659654370516808300290976974687915774024855068426961836988483627050907107734013388428334137217150134049968596890609353053604976445226840307478520754351487786834531211791832715569879453556444552591144172053924887072538169407492036781077419485822489332690975441678817574975730784654462292830881033200464268132302083765851532056159746438670159638988872656769112433354923074841820794974453447367778468660682595993564732410064698059590796640137184173337204589651247176072858272080979545692769058465882399686871128581595939005752015699237586823922077535669879351602390791244611635411464207391003711203846704248699757466454252969844223763842528242701192364110369446987690569947742341865075546981056304497525986273578898873811544266870104260096668966246927150058207627308966383858315621941734869666033946364044121768742166191215494715358595855081656200173488107646964864976836311039518405905012158465399143931427139319098436563126761633752644645089983027012312720292495924775988667485581696458528395631879747361487435448838958617193914079803546848535293787615982209234253424592395303773253542098226096286656825374300726155336716929579508861610035605727313901556588754571775465585126906055393593220437343789685268593227262337029885933786217272395343156428013676392075698556056296235280846970841296744411090893790669244891724603473916146738072163221672879986119982152567642214042612804397132002825585563872369280894456947260689392845714178830223448565383035388752309141964908189199795598332261843152804235567099631843571399749987166533913147478190431434687981467394950981850124651725683754540611850941114923451966737842536250223920589979427305200195193169701132495614107432290734305544041712197427140890346848827999600358416155156454700033288028753831706567138787485740607847693350383586507223430039518144750409103874744849693813021374512437237819444267987523763898313144926462473382588669979252349179537483336477030647496103590242584857925840877969053518445423874501727646951417550152404307442816383235664906219838168154728553155226866407141669321553626599250634547752503808795045519830418469153641596308801406206005223899575365063721965715046587381768278253051520661649198315022072001907407319609592965534629279929728454707964174590645874949163167724393331070876795795476162445303916941435890487981317949589111394966962232144299990303357193633678924949545194730823663843058003519461667370298735014135585623405102690841821118224754872520533224486808680851797116771124543848254617643538674085305134373963557095904105002938671257304777466062442614604843790934913346192103072610128234738954071066936898958317271290017308391065513263730148831630727639310279270826133724298219819010969850020029334872321838169047709060131098932841588832336671253018382526962291014057386553514374479389612587978348697779688476517920600671916399165419758062270402090931342519332244553753823220895695896872429017983611561289858686075260673797028131202146604244234336760003876663607891540105708550413114207110125708347511517628118161398070192911018985891609104465845128016791208043769635006376634870470280199468149134053213340341188883926183589281052321220426425755458480620073569643309866333324308553033895411098053148578031935762299989960370403301099719782803026725861003741230002037125890045013943605018591483006406147163224090449103986753233082193681832084012715314850441542688453564755493838866439344283456720413346789130176594159353584752415832175296462652660489418681419096608779356064466656947230389363091561188667116193201995208495795985881600497596054294680575550537957788407430543234767406969507681730930478832915669707214598429035895996425936152817026960754795133777417365431441346993733558498141493660517925004561579921207508525294689787982752002791209076943142898920737749580075129928947286871134291395724025823735548349563413016030424027014237167756903382678267917356778354812090382743684883632301510632395512517628640601395298738368623214948616674624873915617531004013182427989399845649936547813140343278245241772232995087985900587372629973832984911186746891390761960340588778427539920072996763037430986732836151689370080350720116888143996180526430515760792666741632639309637006066856249529822983701903782862387631886623269429980434404532648606530243408379600407479288144807082113787793405369124264215540647129066033660722865925823598980184184782571100633879388749331326587456462367998224094326343109029567937299472315681863541601411303448842732938176857244297673539554404077906815847540122817650400039476093075654888289251256817971998510018159893642694301641809485043185776919252860209505847147129636372020035448479952928568750518774514408389702692970371300929178367043091892820359830577765122540940878092980154054579286587624802931757519912197299258978609283799040468369760361453700596067539372473527880106267533936831971830539695907560642814564593934126490237348736340999771367442787766271041282453867568673256330566742349067836255376958730460271975295094905616167184041115992877546982939948812673747703467867868113366279243511778770644410055316308660390337882838735042204121767892679332882165223866666330236700226622664024470944946767418082584922066781900214123633049276820061094530807996263933653206938779970804114891859325929662702899355161093372264398754031145329775044338024637580221261557932207711949923625502288225992820091036160746080935628533971730643397987925429507678589732758582243729581643165090824356395010017760579000900575700041270456361617334856213529425027047671626520168073303191397035523634180400471936721033465667230689332552272972224854680886717346808740103076583762955779505888287403378066538127785307887730996573201738393292028306473733215038807055030655556255910654820125335707932834100386938208168047263463705566582073897387059465268343555758387712736877384941590650122094768052332777521181552981176343528971777680056308594028314610648371554227493585035041549263836694146143948980129654722985764204622344407748586525130677131473569346067897813064427657525743200672495772693211760809255075474697499720648489088871137544780494050015151097567087155997094943419246813476451985887459208865873097840094882902657578508049724763836445006664670465851578820656139966873907795247159205995328192210946271799861973537235544233781210050437025760352900351856583586964188664458020776998934022212475303458552282409192461740528770242779186222792060600912519937582970018789048525436282778832337375076792146427854977096643419877812417014785447888431602692567115075460493749792495477399243525701016570319229075286899233692179656389919016948546222950527580656075977657851334037789958835396159515418088068351379132202022185559807235909777740430306883488651499078299001277271547152089158844322353962121803482780391550809560245450523831577600710115176478640932125709535946568111637845536644944613982469104328365178588760537134045748661580362962550205649426452093487102912986843106499186288719268104843511718078177133985252574987863866566339114290311270205435610439869225280541113798312300513637017868571371434229038619056157964151393081384554271478035991548772024845645589981906085885269475270611414009639730357606756521840191567255603230041603787138352407635793882892949287995757721579677708123862996093940779618050564110520463729091467485320807505418000677112559802592823374549757730678605879253321580598435451739196616634108510417105807976084271077815141163195892883929092794976862652087899005542144419372181904800480213733741567974926335714882798039032919969215849941960265521278797741108872577683024837656377326758159970170561291246890191254806092219126437493961717350894073320939981821587361642718277980658947050082825422794198667060206549333669398779589642960455733717915537359683617666902252704991967584613419541495379268746209453741022463230873866024078145649260717497790167398688432614873508119787013612542398352703890467169558369568123704589317452848525832535626666748793572166081519134085462193613485619375376995630125199495055204290597894738382641116342699265100224721301682993921749245784720158244310035974112023518542603777687596061913799153565260177466897565861056329752313456172285203524373383006808647244852002481339123489196396737791209832512511957040579367009119631106900254137094243668909583977170085671982552019344787524544189611512836778118445745013747099669438181929719061674643175981683144967209015692965734694442597562814865081423169257552532732646889968951900404437418256785344995847956704635271500171361602615160056860264663751457250540792201837449932616138876033247120625700416761685959096674145603442313836959063763353082396807620565618546276724186620929998051602847006021867743521578739350244236870228516718321715875275314913443966308645669475049680136921103195766884271307994159729095533088156519172548263399740374151178555443534171635212106007727862691193273355100814119475361854784399499941577771149677070708338356886205470842469970257158291354136101565828775806732866450408894869413311223543666147204507214502890372671515616574009446694911598057590033735068774026511761182429035466851612004998461838397702830210342540775329814558369298394489515923967459828518804243814979502159860288245650861031065541684964034055983793854418309425419357178830346501677882756242177264610724362317949261604508738679458545339288892943947089838018813249538258414574152034727863804920581250462517148995922843532433330981002046901884617925511220206797787857230806205815173671893428676088754811259356875930483710592683209279832052816485474705733516729759133222619069966235386298598135667003448629088086294350406226570622821020102847573855269346138241696925233288256086773361195238858676989248174337148298275736545495294332741590140026314516132226883979397280699129939330020391343110159004858564931604856561245457306588359775044547939658994668761023097890360785399977333482629516674629722337066527047379145098171542503453551380401416874452051877724231416991625193702710347859798677649824387353407175125679297239650190337470076226502054612628076631826798971698348954221986079874458837330108139669297937414447239121337713831510364037367931272414166913019979752664901556302865910902174806681108501236163921075232379077720705606033792243880367194597456292157073858062820752903048485228932017088744496140733070639761021362391345749720331325912866861424584912000039533098609176934161162284966247780962087995082231672126529446734786796896526133679271982938049449077350328027300645341966685791087615389959303946421796113122365473548236661903904338898613294722962644648257178945447627763267682951790737700678732179787982068149070484680297299777478065032886471686075720179034673879645282814654559092009688723640092888154255502792937074924538677782405949696637246903327512431326847353498046697011843534123878467424391943361912304434763153364079655737573802436530756058610921525558856254147365139730099522373319912093557311152435225247354900134191637044992227526790593944609804878711409650290915066316328538859562558292437926984826808504166859173375555719656421175616302881153887283512745148357031166704723153035645877491537922470866726554479782780394772118970748307737791928814665942405797580598112551035984763894165876615332011759527296604926319906499477111042107678584364131235410229745080612988824421381202263772441551685506134741010471287595841721289735095744562700154809378480249819006581409835263952892135492787400510163755960555910073479464881207614504459200177331551261872991381231836138259746302804952935652286973658826469179437072056996083605558514463600493022638728210799444986417461419313563816834332622605454949649731490283178920037436881712849929060273931435375084197538061994590789217308932560721944820130383772484819693252009878408062235426973946165002330796207752249114701925245143528086819184126758584712713117123768817081984665497811372919128586049563489211161353232472665537880590727852956699719935715431501370272809122384127859776376928761691630941488498047446331691200876491996806611689653118127574481082577685764349636881579018024682185983783660079830907365718832398404282087876226554608261890326369162198625884696876093470631520846093893617806975482160743596689368021140075979586380712794853701153194028459599790820760280125024936646718187001064463379145319142717311573694502986452274788721967347183575261878645241842080345213418860271833215010210607241649758832980188270468655729658883281172779110670145830307266242436001693012112422955752825824552650375118877155527285490438245228132837262677328217209969789740520729686485562180978733029801419858564275046455141876739226957329310089590793732010789312445193602914118183153540323357470863738482943181013588842314158299545773990040256857139636537892102056120577919730417350743582144818586690138692606770151455562270957487945614467644702475334631232645563942136551473527283802076527270481186493977891649758657691111451159992015573282608211910989312612911890503237318862505156877503857171757697437212494675514388282306658845767443227515382817368709809234494298802390955675025539795182378676927469983665453470121551826146564643195342324631580502593840973203822945966406806649858538869662430592221535332401231536079596968503369193172572875031969995615381487097434264398820924876713774414825652655392476972458199517132900025737486145394883260496182685713471432252176730144767307204131721061007565224637273507486720267406744213679720159198634777999218157542695299742940833206357723776063219940075713468224651873922777941006081619900646684651408214420411620339929679436622926328756819615357191488074068495964238618488993242196123135359327366712741689008743438305531412770523561259487175109745945810299337541624301650290224192495842707304806099480016163881081060608777753948390038182075876929276372248169977352445457304359870114620432540417871143385406714627053907471487243227961684023802762296278420179874809588868325593214954497904692466518886715982810092324654201189077698320881882224718714651488173192175422056192200724693008114828292930210310580328845879789909820972801994783794509429288139836096939554165221092286330678165745279458241500343500013535824459275866163637436700464711044812739787427790214818604120379604903056959710584315644746976421858121409701561307627236671392461271023262611326280567478422579806214262915075259493739646550553448656481477925279381981988980689598238834785402273976641924168467945015153047009287187930866418919831828353971512972048416881419331857560542190585467411780249800881287408275129564347053732122221100780908163691111994635778400682175572389892958970628467062116924947742959109448899008173186998853606055008920249265132707128873534148776269322114341087491353937079888897959950570583294410187633770985645386856705657041254477378655177898774148653352985784553171593398778244945325927912930962195510376636018701484162204271383890558072817407746726536289528015694248502351599488395346893491686399950409988503298962602941431494762133524059515268866239781677486959545681400599173990249022824477236487215395062254023992526286340062068852222562941590204969306652929490060307027859034350843354940375538602611610208666513854310549875468150543676555349231329171747416821333763160636714029066573839627022360372771166468748701346085331421261936171098989846595069702170681038140575053460861859995913971950121092073963365959029623014143489831144742922607907791874767059418256840145614680932399545741787376996716041384382681823977005513449014797441880720413175016666114253332858606641896532716101199377634420338503930079511730517848351094025298407891018636311600674161933861729276312602259816544090193736484300508824609696070514985030909343542765760649206500737441787678999528344771923448261471132009353413118774635800448864773820161822114483230544566758408028143888231476668387941130047584200270413657265934164743253250222606837374861701738848425695091448576367103027967048857213845357756270903964121605867615988313567100416410230819924260658694644427983733224547754823782994630039026670721291682935456599182263600709588428188480978917617845945167713835187739416904293769603453615459682350814698707317790350754427393477592189469148452997297674913252640267143249101261325278585832252725553022288105007994878643993136399327294800668743736962236487619771536458741174637739844460817311385659169336847461431908605126011721671552994034637153459176085668978230355333856228151137714000221209424706805066676728071200858414044080094598772399620968799439046364098508201979351622071712673902627493098557679742919866977628608642321461365468742407289437446994304632834015376828133380077593417557372560449991504891123239033196167952752912926183631072118876173636578836824559667429025973960621251483352976157555957031656546781340199789955968523626558324151804204414824544570207870295541427115591261487663495342327177076283463201955935324817893482305514774250253511735779794925297108053700789777246456698181424483723785887842590271593850990673722468930620126305000064745327990492606782331404162040109677112607922804536324367054346328009707455120177016786523915106776590114930164050891103726663426615747477363233117297560675560125307879931657353532678622084090807569779455497004498518489973760125357562903223128280770490328208589429164258441530157328735631678848104249515352869815420925165453657518345698615454938080491446933701322578029639620605559107438202819128776883636937227387376828789316692982211666105190050673385282848307637206523112601329128270263653594760674083943025274364216845671881431921377212598910360763299638697109436486572353250897972504837166452538655535341141325227928625810277555911107431682815722000878319470357025190292933400597877158201638307632659288444746717045707657140073393261317904700302109791262856227775369216724990249409699016847290215652428633894025913885254859323287745638380492886477701952714857283810374515004535105780972266797068697854843304604878665637518485086073363312756237482145223925446767186681838521177405780332750996477443126980902742471772926397032095862230619954524175303709957097166217459051171134448265642949233349159479002137734376057428124175053979204487313325475332088651543816001530872740595240461071125908914479303198999806915540722714122742743954868614190789091287697117418459195996799899135151846816859771755281505188030446083012069912379101185232438957242902987089881788411904949352849411217984686079344425598099949427161170022235145804053413810478878607412120459916783673570184040938149479790024293955911775629061282366221444449563039644368260558521037504458032591390940091681011803291805703843410923939500527819905902958111427961253944350828761749118143358871415107314026764067008080111017769925545312954684984469544328966545983165335325859487921934137455137277320539884824829843841565992959759961324672551322116847218733914513573522507172541164500227928684527637423384023381627548233777236868053889053712062706065138826962519692292274078884900385310918792274598374711390468220225797267525547916733196836345364197403753367072165530359384217486886389014155844870040524330807553636166795123093216712994265229690498268978247446163521553060565613501506119856921118094698889542203787129237633051720228576952639117607821773321388112416975796252644052659267683001797242106458521078877972571787887357758933301464814752863575795130514455222918509040442507724286928544154865983580626533342573905108670059738458691630070689025998926612649676907900688802752768507743422655196813287009831428124782515173062662547899246173492192021315633722138136599789681519595647725976572648964762089738726786999132696570571717952065740202174994338064554618694418173363798866893299737414104699260683422444524370503580529237285544742403811954807326355093037029660649844066531844083555270643250390879859556587739584021635530303661638702526600096671761632082801345172304124717125677227255557110080385892446510587486341960416096604299182020065688613436165677940216135548366345499532790225783684307805055095601930911041372862477327124693971936329167440222737175953579016103599906685531780147774833683242401439187940077020849531279989773785657641346938543969476179197948993693925363161443929832013472334153481990185922303298128039776354824317224377419873628605561855090915606685216404962881581186295267569678590767956591327615125570790299861597220337066051318874650395826845184747865805549073537326426914017555423133040054561169986625105145519966470173224752093044558676072564573256057205842684975997057009512533944067123423721160626553353035414740485586225422885752831451281729762726520500427839912411637518192483031345740371845175757742198526403612053269921195599912467994257821181479191505742587877966473210359421734277334457109091389151106408700168118588963722815672968686600480480965751512328930082444566401443467972811825934937145823102816740043803242928455616616292553262915755850475299980311693935888982711161088643766901586199936741184157906718846010056432463892352309869593811596042663012128515721877876243041294767761154303848770670923984340713010112325866547852278311852074434658237404747432848600606502269491391921732886192215819953932027987090451721172470833827695609777581315908104856574107319563812140412685306126626160179951266240419957165181812632465230514286333700339290576201934091767025766382861169066844016538283758126598506607821057038977929236298806427109465126244462863606891474674119650249027935916971934148270844872911042427638472478505274655599915590177285415206795949333606319565998977604341435566365581630211281661006654337084853523609441700332153087358694320842789675433543237796012737948906153417209794046519300596279682615809456406981334476239202009807084313506766617977004908300811894252850093675657083111694269194567362079171288613123485446734580041289204218476420276720672889953764124635754640202143150270128861619008115613946332966367592863363657237644701622284926989139976422769813235514206543854849365912865740272175400498737013313584361305061754370478512914947963389394592450411110877959207781422715550499346106059805233881991884846662018895698851394333706940601449281013205536984277721192843477290596580095742410718225240064682210405618788295101852564522406964220278643588674879462382819284996178199287465769614425840759871557443420953256078099188721674092920243478068297826037798330062478989923777598388910547686562889664867193692702038189072411832731048483589890019122727479283218563819594170145069871987897346928648648238163711544821905806337998746925882511267540538833415452303422482234877385452389147213963911395281064608449003720975008403587086080766369407254777810520439592555483314612223197326378702688980391999700502384364253181505999209591046324009021534768821814044922210971768903405285258001503594322445347353246354626097410516032096069176495541151788878377128664278733372299600502351948867351314064937128376232082285426180383807015501918787410095869953169250788288428474955870970007052820937119836999871663883181271239240841703574768208737422964212882291452213417842818955960107209236993126123389827018887681153760921272190572033928044976130897663138897053532924795099141463334590083874431851370602065095886466919950214286868802532333708046965933247845757571385115867335559941455678100804042127303941967241611141879906280086195353336516303023137698556006778767196589761738361820930971401964285468164629671289758382065704343052442102423910071778745968039502243913764821369225498427888726297010846201185108538784914877273022317737380593946017186167747720469602930177293694295658332587406388960182007497272704482266999421699968357595647672590251083332947869133631752062088047389103201610312752516976383260637085266568113077972242516728162451310520963599824852738802292890270798440570266190641486712992881033021789031895724981677544203136301427594878159778955063646344941367202075761481128917285352581166609951616436197173231693825648243609077906670547564908445213188947213750315270599049876292391317769153828099604491961854143943071417725446473829502813914647341011725040527728645606585097665160126947705546995411303444763712328158827395012407040333527979149191877031888956028593052333016672946624073628325250089202546067307987884241671809478278922486154244959464382980248985275653957121929315448776159313742861283653743860659987164860907148361316318970922119133811140396102426851584225916349005347870654286759722548162723956619979955244018651182165153957008051214246335770342783191163330567100543363822048786449816567004944392864838660406312987284972832174024197948197969822055484516103383203500466613186548154664333359669734484291752305482040347501020018221425716601364211676396569707162237970714753584761846363706630513223547844918024428704252089351078051179017735282137394900607966274496663556325997429860475539487474123670632623344880893201433062664692312297993388524922442473629247815575036443151783917592435665268608263689299461123946668738102979105184701728408396622303208626740016803372635940952076214973793605423493562640141049519219816068779842383060910818497617793245110307374830667986411104467695556959458305831518388434333711725347047317413770194012734854955488257598310555188627035386407966910963581884585308238518440510566511787589993925860629686323880525051176386080943515176094175961797285809353185146444577810225651500460625417489052646592208290414480704871151149065690796209954201306997027164920520520616564277725507704498597191177999503235338222238193796667918697570114746894625111550612199292252610434011069571193229023643029087309574141283510551536568397625364791147223061044512696571487608828670883861798529579133095885746460460217037079763004266560876626139038306858531499439432960878610683519530442570848687546276055361380954625499767895235251161445006081505124177033773755252159872539613153066199818262259338758619590724137639591659255201459029178068987565113067506590528847752484099777096966848823345078869625714782360084144577312013738169967664668241826622697445111712847176911166805623162925644461057677890250633519168958885160025846281506222583036046285758451463000568535019418816462644073501171529077212118054727097069406562892709905104247699692795294068414330286761039890518729667652594504654494959708656009136350869811335204567263324836639601083857084056144904845810688355720223322266718395903146648384766008976013535623907263792335897424238252959533027191431593131947382003573132474549761340052605240371981018014702085788032455703135767412592205710084949765235890177624246116740160255704405362825548367991541496874446870923000605934622894361664775621845383254609010583142411283164599923287026933151879167205507831875215419279555542509481038187789533307017082529397389023045250920962501840044985810904367747765733735945654521282123494599223501053805534283579077001436715371595459513276576568656851870275196102984967890376210691420997004862354556395906400596134294381452706759001354417898164965396145634159835065781367299424395765655226151583260967200199413881143106306987143405028230657629191824925667329649794731793872641498575316602092858567736048326715500609041171467494337499278315100675684668299495813899929508772706302668442246054493047162786026676954948657338716039861393755881056216163027414853710770415649531596807938081381154735317587535059632086124396967093035168035123572480023714301895986186560874497031071831000241614758341212986938976826502832023585314672576451920025919895500068292825141397614772698607839566001896066276888689296604329731289694292065639943446504218539052629309219564200398125730671610000056044165942434530712606963418131013938573536772598025525923486197398067383314875989052693270195844945482804011447157846819807513273546652145121659181510923520949340061035664995783002281588103830456725464595657262952716197588786538224222684940174475429617139697996150522650174423371331591697762984794368663517490249585549385769631075215225670092040512275297521238299636590126173772521584891007540170582044337331448813610517357595034343251738232190632383105136280274852573478671181608703462506838216216311417168724669799384310122855004148667088864016733022336296681965251297898332689065985174936581361943611731514870745362838201364344544041203176952665228886682957647267480673778463942969990688508320732224600196272343853334863063294154373379316835770783979012106635390683706695479693627480327245568253345909209065323703553880907376084690543170247606119254297117682509485434447895566765050103109777009953303947699539492456109732047393588047817843363719300534099405642459369546916822710592762698405367504010151820880516665702829482118595759642532956245664642480828412698628539025828224450937972951424642631779291152204128237120285245010711578989698268074544190258322563579319152864802434539985297787738165412533391016232281680768591643585472507509309019031025311453179186264125426167406160047544368413966577711675936688422819246945394155492896753087727874362938257484341968436211158352277273759781922591507358405130380920117362165134566143806787633959737803082307959097132640108401711487227136670543153041875941275380300651230131762769425132555995803719343134983569415818755660416799934950226929139011707991997451774731107490012974384906439524308240171246316011720019986657962756275593927272263848674707442952481229093453937388656256360250237229941587112437364606603223310681473010674349570539166317789698125132101239640039753770385405367275856353431995123493180450245256015625148454407439905310657792154439445428417356283908940357168674411454005067890833257401578302007257047058766041680702048072395301031451042144754700911114239605323054988233967583003618973521289339601179713935063274658206350794262640146791130620126483549203459331951894585413609209108357150238776603527205984535379397326688083676563591510079605477591712813230387457129552932155227898217371179667404654356848190655599715767626147226206424553108904916883683548854187687768951846322165057922087746534353783566518010426742815566666043574305602109104791148940621336848556102317614571826556422429989212942663867110694693315576375993006594841178703299603485323168599361364691445149840060139956657973923522707856935504445741383750906302126572817622984050691860160397988809387950843897406481793093039099287546764475367296862544501065487687273633918626087634762941546886801936783732463208873448782680411616216796354533162524852770981842486312829172792981294651261161474035453507983400456320029531203072876342533123469602119212036520668753126365238530891467319892757284787043905503266301463530449569820147360646778293808385951127576441565848292246530090265463332351240311227395095865459055690720065629262769453744205256066216972908808658349083847990770290924347123338246379503846779598668825613974399024194967263787927826895432040052666914445952816228166833984297354355009896831097345644670900886365942227224448319795634452272251798462858394882273609126257426750458278301346157774638828020343095943871975958449993956981995360924594094937822204214450616023148942318713765950469163310248138765532642705756236997015832055146104376757675025693373108645310516668024644977280773166818379653218063002746767059977065185052178438703045724426581729876489637662220996097753928553982707788622882751057261960189488282913949192569779225403131495268395522815309476044656867073227252041894919645980726860619504873092320619066348754926378484485344086143252568815394691331975222840227757332259204896464466334657458840264631195725496031065727467945151251518137698008377836504403533813246651163314552246370891597319496385606212074728889677537516736427425384868508402120933324534044267627090905368589286984646171855435758368418283941665895979522495045462217693505491509348941600177374328216313610568505621526662499970548022564282622851598324004594110941419596733959870566483563237478427291313818442828432459572095937678068694702495550908769007748414800767070562641918787659921395981036178158721879383147234346752349778529396798398118891559300845922348674774540284037181239262830376846418451394107891320011459529825694388905693391000076001128579859881021908104175029037096566242477584457592035277655732818564403835795043271643114774020355549000960558171479925696712000584775407961556370608615864430319638517572346072182651246870176119201154784153098939153657107118666744687631061777063857100709810377256327099866642029192309318938884908809349531744167920898328487046984106594458357573029370260829653041690865339247809718274075030828658618989341587947063348325167599849666257076078006618556882241974726015332190362195345320466922701501888643952888830055823056353071432176063714585807159317066170088211220937124901078422117516990083439832011753586410571229918917429568916731622848978489367606588486665868676647681457214059294870521085918624545832737196849532697973821768993868904830179599718077750430402198610355731914051931116822943836450659882139094269958529213821250154841292560558378427082679791581819790068533972981558611755060791422336967984895503490205765510930183609776239081233794975410549748082313509715919648347245957201678619670091043067067214187340473802605925984296011220220049146408060741704202245810962612304897389258131942521156409757827727771495991508350755799267595269495028920619840653316647382495373399001797589890458642938286067869137738659888745878423327448094071851864127354654707658949568672912392158460540213505960078093991363602073307241790489535496885044130052590218085379485111290018232844583031378348144791305195460691265800520330011383037813246629622362075813200881132950113867453947793974584641248309755322726572254575020862281500672122591690057400492581931471431197377181964596853647527485391985834998085901277980645100559762579671485696663902655726842315678548939909256843630760653289232137932897116217606799474132645389351934616679833263504665762171379752489742594576082394307030419911119284129862000982510069268300939683077485438894967868572797244875276238809417209155377398532344527594345553872273540104901474369676550608215373474093698546643975842301147463810094096692125756011972010152514384285838955393427199659901922271488997496040710789862241999941269432234102404101182195954988209154911968991301185388925598643408828986529015234400685230647035389946529002707365480958896563450537650385331028300634003358176093566025711369016784933715572826524944921494325314162608095243581908442822148874752116527602427833131834471279366610459066832998900268794535575542773214154038606376418965891771195719495864482910280553690429929331935670376857794662744078576521325611825960611886299904111756458731553347937257436228506712014245596135396610843263386303435572004038088036587547353752866896964971801749898050910092888113399469979574943312002077173060748699474993062259701962279335363246654742802710838403438022634187524437716389186854071720787968378100769236139372275984440779706373520441219611120136880309561674297423608738764884264781978139581926918196062404146155791671414899887708400620130992729732231378923900247051358027374371949299059831451448577930645590924995048684220032722526606453011575359192822800763136745287871115587884462021411275734561091956473552894932792028406856382262800644202545934625411585505833281197073384957377021570962393373284177007110745161035136433851690663685545841616152054676149478793008220043419195324321242831943825334476473612627687402010041382689698224889127373456140767082889381549499211317497106887172272816856487449550691280608173738665401179208412447982495940555816829780962991975189758391482133802346548004390131155907012915136444915489330434002516990800562432881285038162576355464773810516933847871529762840186569390043764342830772757679394475079775072199949489179886405715292255357747976586599836851550368242125043522542915604649813931067555652194745461454427236461300144988890338668784322825235069725809946959835768701167497113227797906664798511591888954372687956951989352110436731535284566143530170073564367318781859590449592286631440203226524047404654933568309688800907613453341097315177703180287724420299087540358790701440651270413477964541619669581640259644262386519964300982659894102078193581066497354248386982386345919296730889042710386490257991901480067576702908521346349284445549318425441964501642782702381020838269536445008246415841446215755146645434302868812900264841496457679557164489515944339632063813980332140390143719771289942605351051444619035241613760583981146007308200642076145836021813537351123152871250055112431781245397162141482446662692309311256419796663082844367820026679180650076144520846624659488284789833047087286721964566243051476895134172305382620326586994698921957217063585645515624941269312388884015257321372324831530598833521901516099621850923812849618727203978672254329218104314456502616549132498495469590123068985648628869970936382925942952259380212449242112723250533569761503533411551890286283375433827362633773662057525796581433702267825323835399617769502780866348236385883692366103386910859930435017920730502221424961442335562008171729748309828648975906535784799707838752788014772587547856669435075613149815606856010565222278165869729718276155632861414531018675595169320168956181622309692798601568893797363725576880439766761143290192349599477305151522970614344020837820146897909522932111184621824926936475358556553436021406050988360702801539010991284468165923407253288577492886351106251690732794635681283929742004321017885770087165155962684463868362373376724787912394117860339109609979953296362397260996088448474358250588651819076730230502405450333737495638656702440508626202873785000210441368294621695072459436047566392023007577035763236357590399949709412369300543259386158689806192980235586126300527177597042959807241987803217383887790167408731099540399695067632332836451051675800680287477268832088631120067038653352657148131920316865225609778431587107536087965932295320302821004965669933609865816874733951234274667378641233106994628169047217708889254413234314183173853782107240533016889588719999083448435868819399414882041603012139932850305894157504710511188432794445255053533756310621113016956752864444843417999917748428659812678559411945033641405408009825762390725186560554156133344302715158787898581447435938327566184651748662910834686833541358224406463621494598800553737944332990458043069855344429903680867878531893918331688945995863758600571439612614515378938745392278390941551265490444382200667228695518079658772630584185222463046156440593015902490870037051424404693067850243349401102806223801620465805922391061479062174658043908806335825945118166922021578778651693885682820884030416362065428756581080744935420067612413001067420686830107894346813014225271095187762873465957356983775369607001183931788445863304459609229138113031143003168113978672940245255236479329392303828849056062257082733829641986265532005273898065126346802762713862920276697994243311115281667141498520970499539037785584022605966934230043042664608594357086573166966705775434598879641358145404745021360739486984816725211092285601498464088147819232426215297261442490145635397843979706434804036876208632933992642797798559725403939582218293977146779790244429879276271462956925172604417929651390906351690012163583016707743728976039399136310624569368763214463552665355925673733956370588195991688286930558271576930398192013358231877773474016465422441229648947091910866896333796710575510587898187594940979819417127376063527842914718680198463780442336695767723508338928267078043471302372866208475126501755437443655164903538896292729163480695142188969039056209861286924929444289944002502057045410625729722056878196483843344232458634979046057686480428988219130622727854407227886296133895778941238817472750650743813275528794625291775909564251106049092631215119426924324094147491324323811149021268176467370097061312158987949353986228221205944128919211222736414755044712677549088364730717868271611239760458748374897146408994102605740940609584400886424918930177133686674294286484785251011284255814035989558804650859008161861322633175514566808091151407269206931305029504191419581563375560396943846213986056379807711983109996183085879343769706877657655793969666555111604528317879631211770996673785768490294785056480219244956555577791889990207070152237257001866060999726823181647225342151889344803499414497335102072130264934860829349741467487785288064031552815034254825911968805740884339792373021093101978659558006160320036118233801196827039379453282972779447504641181222029561450203728650548182459714353871700357587519118883220779790643557930205689000198622442069150489103135964916157166907238902153396585427343982584358880529995814027920470476688622542685753602872038573094850338423284033803905677131390064832265005509665844036384036838153972544317276877682054673718212531856178483043440779428635620524407681909847929739911677564969681261954269556789834626241520727372314621761067976604972642098259258218766155484566124603472043934607948316968088699414287272397028352030107784674228904804979825703385112803642572246850901768736751173738940757612463275603008822621911125180698786733946644380927930382629045157746395982689721524863208091157631379331781940579332070645766766265658226875599318223062205015355790085911718111046937138957166921320177898287363733215798300029349198123951721304118857009341540837011518337503984278313251371315778197706940680496688183788538643746241301342968394005299886488830278618238289966497531604159408086151988671008904640631446835492153715502798090746338035941401493251357064348222954635102980320980101640455853341783274985061995647084630944986878855020204155081877635680122452995026453379807749297218871229541938408717906272358745744235484484233111811051034413174723110022868230148992223556098478498660506696636117491694960572872188968328814442070909598519377330063851953230677128813477494381451715222081074220213590418156299923842342391780006163266671976877940895205784465623275933988780414331673799424125112153239999370591446369163115997413488266858762637513178997550082913642577701364675084305422471327479385493467330247997298592920113194824339209012497055419915513534193500189811426710539815318260301937919788138002372368471427508317382796904059928045502570005089338690762690189995667399960190888914852559086406067427058205249381118354737180208328975250098952807005023948157084863578878104726475007303644836998071702942884974604146120461790138278725783255395812225541338637195299468038524817749463331559066840728877227260186695425617876077301783708478978672550166762243313986517795240818222567948790283154812271293150055663224538925636029274510834390140657560196776365137852309964181234817487501327681907700858866524044744712293815566744609103588810490357485571423044795380109557017813144808730419815199159119249024168930005639949889094323497268709988145645583261493626333222759781533756580715268535058479246880960620729692141724571132131812119635661818811932183733098949763696755765586798991816226517012354116306942466993020493347879553730042741448621575638577295685055346963775658349067597869274499742133658339613886954322913957211665125718269745286661769185443957695827415401546422052117471609973744753849489906261618753782848891489626129120084638097667397750368174784500140614282630191617643638572974352084406714847960846557859012572468886120128706047955448373649540458602599903029589864322256244675664325564488093978176800697600760843763589096198795711621051921234906302595178135991385283902487280224403978351850960228813303820838294082439905105281739470785895547180523386217473797404561281680389185962223013018112338938634850815949196145546841945575535645491142256294735440185286614697999400936824850738408009976423671842686171766333388122683901625038963263652479782967143157276663044333840651713858844142232752083145306998350127235728649111672167264222808414302704577059588289795632736844683026563192382666929031065716851645704351744954335668438480967902492681400106828827002392308358112147173476480522136345354400662722421264893029115361632971651226856490768579971227225604463043995443086366404816190261806729893782414948168542122865450155206914858908959813533898722197898928980788022030936198842581458649351211905137624362659019464692481230354895708247909648623159186072895384687289609501540833425934235720777066641885335694658534620391371443194695016105342601935598818341314196755264426306394018981688528240326390899175951492710265777724366916261511144679735954599330139896825912921509194761315556224728620695628152103541433699530552124040353561701189562843795859849983515046207984593405644194757810460513260811507616675322621621495206210104924088899926609999835038803958781275922910471703206691620697026665619405778093407929388585349311693612399088951105662513124853751217225127918156944033257157259528694939347700141613891181076617177574314132551568566236050907789923662352556282722686445245095379182332790690314880778722468721736430776072158511130286960910902527471453581740716201251405045179236371350604292754207895686689485525841220859624576135793020704001650553072778767204868373292913932728569495179506415692239965895918773293043947508416999695301359212746381142154289883273408358674698735520490028020270730762305853872805124387894714440261534575004500555662441100861758901368545503803327569842695020226328543708576501658934633267170677394478733800761114254910468543354328549321502588908097634179247216854252662258532023556672427869572004686706637179878100225431385873831864143568669727319167787298914375534713256188706295570576642274196924304593351876533136388969784938711326177800999768980046083326487745115664687727241462265803182723459977467171551661701217724112625466243193535704228721590406789720213801083133180407072019355985048497444350361792242612407469344693661157769583945171653556838505929952541847889923126006941471752827352294689248546919811959902165070181746748988535948213408217960481842682891556383295608020703624921872879870217885517441562389061545678944613606728864102990638323203167687335937989469990028070959437895403451198387525146854334145850546999639382978015985487632845690245904848853491151256949058318105086515151314625305946871877943239983045379711231698394204920697670845446368732711414007821536090710958614163450396215675024008141556964510183210261672013083090731663139761160025763897571645904406976264057768758030555427609907306982405846241769251098332775322607782651750251655726626015594790233848894485988216072072162433216026933038761019742545689201970225826062152667312180672465503001698270923065406685991357738148261890259070464244420119529855393270057465735961171298604151098341508582569989338572014873105743941881237361715881280910983647817899822545832622608015015195346849179076508642282886249195473118027835291137121449051496487591629111386909036049205021373418138959244624112117287283435156024346546600240723994699457372701453040871154165188517761504706992020178898668823351076148753693881477946984051003984207650449026497676399324862718760128289861680239942688485345691117755318932354255308450795847986244736042630357441947026676992811073892161825032907901855378966587471191644444482558318979216307792736064218682344202852179090987576104323494126403747539763474797527391575572322323213746907019703895827326126902944271840844045641794673130736589775526714689586336464328813555212671105174096416193016327971179360120555958537403348128579165822465378656297151386524807214761263239809654372756408220978537139163929874211393184746166083500162213836370681938618236389100668179703384856317922622166061935003307150964811413844642852740732319180805854159101346722913946921203826484703732254047192113167325601970542414687830660217055771614194013843706081455871837294749492168728632864084148349348955742766833950951068931017286489127531266478896872879696028675425779107104302745903686531019361346532079800755275655931278519129962886712862019880587072655877295345021589573807654905005414503534600739596027092997301282668555915236760128934413058910704456618188898299847871764986653251394058778738582948839584284002907911059471011889861980633408014576655524689942563812820088705019517643950282982173703238618923757533492097034573279830059253678225946574678631337112923827536804597973149553556020647450193495210398823142586731645052168394531335182296579983314752165792804878911043065712025836660244638646909117431701771647343347803974549937662329395698725610717347321481722337914554662397393402084009748515040017993919169039123646022172733844154381853565406624975678553030546591089723024871402873866846434633078350721997092612007004774678507783006461613323893460995415852438045053461528818541021792058582259703247476846536853568223637466311938389308609870354738402737106548632746450308546294935485797579832958062964146800301223227586976049411923468872863533982013951487197664023969563200851249418173636411881906209569027609409827900754769356322812803062572437548114262416992496399167950932173300511561900169524858908681425523631142308949330028330821327368662856320887612205335200795470328180039814457918305445763739390332372106088954216675273166627832829299448316321454096878741204133349017655290424588097708011625712384436968466758273272340027617393974082931587317216353220869878788344754904520721816926563628495471932674874646373841054721753689579646843957753238379820932718404717523953015564798705626422102879646614230748404963130626313357893708173931918998750632515163595806434495275178154385861921809997365745939278376786294999096075832273034090774245150084711156871658322780014749588362755652912887508065424241849692572805330509384236153010984950128770632143180476288314192769671252143357211572371273192519568368618989827762566234734808800589180962027114836786384286461216695628734730349945154859162945288745763604864262659814704393884942890879438610076778108383273466560052949275964340002693191950178833640618040520992364425954551175633218934524445605798972271161431693992667017634443518161225953200433169116581631603174804552525048066963609616918891980393544874988963648486909566256472652328392769430847157893614737666783572401737579829575702045399985827295359665015331902623622588546884626962519424476549847720505153119515784894349771070856823422922004660009874866051788212600582532540157991717867452904612631243971229632502624670055531518973801108416461146755096180996915324794584638664256833320099391690408196769626687553231498598458513691928975000553073074628767297562863901695795938786581852043951943999903344296317885981612519833173376490557084322823945625153728198960750477333967958993903621338437638027333793567908605537095457843658482576963256504592562320258826148848522728113670611828384738882148173956466698504671597889004347527672512626912199144870448044203302720197290093845844131977591508430321222918078970472495914266798874102786430600963649744100740605966623712738193558224662123832969736535208313821567246358122327872209287509344237359611753784043105215827239616360200165948072252511814444788632384885088365252894541764918645323711955601872912741639163471948637576961690764270298982886099159592517108391123654911827848829803179675665563407486585864096666307285370758557068395721524635624245675908868342278370704925235094544209205054419395180401129470987895803645137776927770594473109106464397484328326093986844496429220125888175437869427781534881605035871981202820544722712854416041143234030232599311697666518286857786248807815968162583399063176446048996009230360156330688704423213184967695510074263841982539018666628003817151889948146978504182016927496515326869445120302009949723332835964944156326780816520262027162347240040257433905000621296844329035143696843805792853822648102548931525184467531678250065821977084656539616693544643815569802431436864503557925685741100612159478225923189497405091965453000203317602658290220307720102109223035795049468823047143376568906463297973598904061576242679717679501182986562150821274975555791039641068020055879173033198027771060082955988439857725656769606252701379266999655039325616269621306050868666116635328618412008749552717910173664225375840975748982857304734462844291937409700647901857905578699481442782811970197765687401590306309305728254870625894561957134234729708490370715842891238200666815069501964359403851542817801372031376076969706003447916178220948118522349138780611491502214975514144479149482334617953065737503907675020743226237453981116977696588354774799746724962185964390860051968286641416587012957560848425222747482797040042743486816875534618780977886421325044730436145872715236578031763006971322547513269017930238045003682300577106310972776638449275228925756817843900958129152875272278023633577477558802304049715236178672602716619790535252521482298812795012281704106649150862214251468713567780363430940299403373869137358063439076655773779009333819490203747821526755733627559992502345414104452321938256300787685595403490822150404170890189650424844989263420045847878240320060035738742687639115288020418423595918159701927244697185864227378308524090064217207229755097199028740972813200584931573950928256521550218318887319075673266099050279888461677891418264864762365669260212881731887988188882264676967688379959806324247239551807756568729613395037190642599185771244056033790439684642458663233583604185193415446154136974422635439997118989109624048817178127238318675920229442770641639214358925065307110163195160881055449793353329056091929238365108526353926598865232642133314108210361267861041417990468133064864517587847848556166157818833606919097322862197327560878886258351077347103755350254898861005221284999646303989503615118347724576946487711198462064693408902911779297691290738019557180148784703797183430111514258188415290590181053493290102047661275957652167632733699304486251710396641060106690750130931661701034424076100523880184275230874556515175586769475485383488839527913150052893705439570489463646085888832071400289469980759236674929922089579051929824865343600204613806392926269162059148721533454588259797264510783368673632102323076552228070329559875952370814432374841500284753814523668530881216052270875296143131104084716350695503699280684034209786023987858780522827638951215534304696612594797407531200591442772953885553190024134849072624075678269102335658375804465964545372573305432228018663631338028826430664113592209714254238266629921757872628553217825985051593474507057742224141666426690482011121148793105344572467796342231927995397240830977928894218444465350305208727567893899678927383419850952145199224886006103043527200982878627007115770495357493410243953229343399065680183714523837650743107066886682666473788521066716892539716194124863626526779222358467262944084794780740890404699581308799607201621773252123297829484057171301271287401600319432277601478776785653748815898160067291784747580126721682552089574094900289229523192937187051172265113664761482884344934351748536441430818428903488110031836495976548895516973345532957436821390190658390337824895108186984241856428272922708098009055870899690403511176110829319198851520338106773050867434174952986035670097097248872580924581502361796245449707659560772429717762470065629076495754212678204971863084804399148685353475184902678691296971989231959847580895436962070350954576458958620355059546057436032094076823109565209934085209972827436621505281210430103267208082942034450117236553169065433956978123099432413681902912770026279844232290647176437437343381250299657256266120974320492165955507496441491224699525991584850744880733067270872091612250938252493072262674043284774282055919942491401135393856127563512908237833980995083724410441872648691652842726071777229846757462400198996951651388934872665909093474774066015311055380915922729401568451965768520543950469430758088158188473095932201809929493233917216302792598931444241145824728952448656689567869402815088030367307953096415970594191068757576207078270603797459648682679121351621824368316604759997990211713288483588511890900856643463080450934484330508073636300446158248120568199120185946453682176967818154208674323637573283397236574421924178627554707659544934492696825295434805744237547625442372652567290523944931479492901877002457044545072062913417000388763568112109175450772531915141610407319263112532614989737275289872077733203191802226106469675121832216740594595702717488375903610571458795854998982337411555605307144166723937546083542050738131388570863926308176506382752508127498134537897254983976643581298713548478176172170955190104799316526309320206760450987109450370609945830751281386875309617295783760028483496928552848986056920084788343968379716284944297154835599327082223104986210723661489129086541717523468858424818679665175595444646598861224488235874876642374435243719307334745600422245216171015272293023282150024322885521131868489530074844009180008103917240933038465784213329166987426920820569035518318240120690877681200692537203545412992375617258087839375007577644418341258472546192813634597929607151851487434849836698893383063628655562849427801565322633924931183518361668452867223085612462111502798848872952662624676729614991976119852506971193236813480399928384146595673912326307779855576511602843676615583306211159684431938764216004712817434433253476805928545436741936468875443503000553348300100216700191969785849893022923400360407280357218570321900728818434076330637090313259482646610923570262032503179961965817407225323761092140215364830736162247450991645428294256913834704621703895345389500003045171540336834770356523786105947823486094981549229424238322626194628194846359190596013634932949417891951309767809114797518462001092357262462207321802097058522178253193733217156032560770381655816711856553469773706453668365917854155023054229956199409174611001672659448891540639890582999252795234635993439609285875406281352305042679511836690257599364943262392169734335895682732852837709852032228571573290002165337411742034163766387406105278288383552010618404442413943826077924463646943940968575336780134653033742445420246515789312392757482706077818334970433272775070989612965571821497877354695640618536032602264893255160471364365676785646824669218014713913766902678720549499746399566588534321198084368872919573546107151216673072690111643418241655190962752965335288436456811515722480192478802662024871912498881071318309052239897686944511685988996526144259040965683290898882758845582692580088371235161500647121464152739174725918185361835342647707175941602518147275566243531669965348621692890173189917566251164556253862354772087234786152542752277555460906225537964139036875569367713625350843999631637184468833688925470742854473557520733446640142476570142113559652385385121964156155064405705728692234874979378467835783976407138371099085388376069926894820196293456348434710172299137122956106094963675246856401911847490285350106087212334165700319487453618619286026979599927974199291071585450319310122463010701243209495332966278757522065482639928976438374159242457771845960294605073189147645325627356820571015673769190196171408475378227234321151110937364581855929230670644627936833998788943726135608687283446089635983236751576430660964458364400955977075756229102561018943844753044789094364937530512462825768557165582418020707680747747514396453605420440454718375008847218088965531791819689068356765427693959279437273008841997135508884301906344600308275223757601942447946254211677465363309550625096080539772817935383704496649743367124932232510990073485142257960941597498596692448683874384558246070596561204354129195793593828379737918619037261831616812377450416700745790919677897979651643036578280885180599233305822936729413272954439646671777126186178795774477851823072256490301043337570551832757372186466671518453276596078783447519451967379777618375199741890606019825793501563365335248976495640307183376348176486603417079070348169892311119213476556872100995493756279323460628853845993268129124119431321133084118666949409037737835012463635684230733205983967979158342230089998430642016012523157088881906342848410150057375039829339559482469811390580622365630739558873401952930972673541251975823842126293946671838030759027612915798554498970580280184044353974641262334176399104237495749452698000479457746704171591302692673453233498362218009695924818079394165135464675176974301177976385398788291042297565125032669083809344779955735744760282909740493507071339310370634787634689143319764532797018292136250893927963984836878874164460027780248067721153849193252002257106719614190527488263044401256642586549177639308361518454269784662872366107169666551151765988289327028371676262708821704055095550385575469605422536662832572836557929348610460427264929075809258622289030152243587441720312790323528003984368486772062460535568051367089792859114102690806327911319064172205616159254875298953988821683523326648853925385839153524509801043872985874696558197124146927718756618407530712027054040891803249065298894720028587627878059474589352418125559732209014552101338762124620241523246922366402682342341954014514112732453497087748316593570252861743610923915364481837435693607258438310626546825133300336989696801067764659128052640886078263260219142778178954894875565369350221882443267773170700269144953758301550451910737611010563858541446345455078384146353530892370498404980206054583036768545332571599126257420005249124788210902940790681211077867771338232961692918554903071515331712061577247313802467930479880596235635979447422140963369792434085820358784513177225975890975281812707448969614855429733365651143601583236066311832749976454346844305068254952986263954941157237191048336105715993903114540169856988040332454654437218065580307380042235703819573512042662674332318135646275968478789907883419553069791850928485425007796176930364751031125630693752048880108394153854070879439967036639929861397909013386719347252429463225718063939937422894848460265756131870616975945279252422413563960607219457292490675848882525180684500347475251676634259206085492670481032283747578081446668284145738228153088065966435871951917146083246102509309567165850800736482307249671536159969608918012817280833925743407044883612556134643299573222413678963818369201256294200919788087830747037326927152177797097477942540387476845345704165280903323001403706319823843224533932294672496078897087172586759373952067763581666241186520117082547265050108431504580423394603445634933406257599984700013161213709129725254334186868099348639115471474127541403138279520449095194408549547472688300786004764230041716546496341849641380486429978681922100924840673697691190561171330392785644419046397431515772973867351580468203176662932656865003783892080768029182634926493067388489631137763514392759678662536057337653486903820773538991938280330428985496572796606553038648888036488397538040243657585114494943065965025382516052396755994394785306063322853219156038221465577531695909777311267850217017122093513787032307790545154755302886303366559735740670366289516093120440947051938922088178443003569143828487488378628605568206533331417615486149002515688212025354558338163711503139385608813918597517109769361075733075228878721687044745665131025865158096734401189813437805131837275948288900070158791710441673743456350991108531740020582499603202036581133628842331416507287582802556507168416150203070954676074640922707204164792907380429953351252723622346602364042156829669566859905856914093740281806443944767171986048180075216519008513999268296313303514164602767602765492294687951146455175797499770542345751082244491367877330094147282129367434509583769834566198870695353204746917507477952037885703607822904974349174506194094632147622556632764771372385925733613835605135300202979039774256203822203453446964553584604541109587458934607218134373291539146610405719035993382460749140701881542281739415446360875861947018489012725968544985099429421297509162360245601261452946864813787580155126617183421269494344449336089169973766580531510281935407703148195035535167779623861938124841287569294781007385845237721693180981642170492027645489465259917116883012608123688793846625551951930493491897987850893958732327736821024902656300357574596250141815126661218681262502055747660082410125410903182609498298564920271897860180990292293997036540123291240155259140056879799239553048877985753847389581009803574169423068733635680418503644515841348273994448345809634137774464477099166314221253285869659258617002555866946906387637219922944623953445158399297111687959648751314020666309257583082890260611417359869916152884060199386656902647437620092025057564495732570360724791708074743686495400864582096240970867501653583637483826042259104156502052424343322234222714974807732054860048569265389917188608947658633920271402601319668099908831405996004577243123264652869031776149822720167788489791061280686860086112099786311289931866853331592404771128082658560292407863897530167777445508854885345332409343941314973615285109368237366306359621187844785602780272755311017923791610916250946862127408801982803482591926076569657426394537935151852750051400738433799398676562719226367904823079498047527927304392798310638310369095063389544599532564152442406760075591341455861798160502307282914952480546111915100757780431729353282986960663385800448803081916821515355699614073646222267344961049970697251183736848115548468767290758286219684142043912102107295970811044463088111055612131983553658886528080027919619133277729625389478625669841648611805735872505444351976127991175304131932209276316336180138501920291558623230349835920996246542674798694502058184465428103323651855283288777853834453074444381069807182650193564785873145504549857140139468162784724808110536059561674798476278203415183459192689954339529429098797979728648565388239735523643455428287920217562814005631612890071798488046282410652942544993608253314945443226146105316041960754342381590529856196596244330158571342051981485615375839033692766528292508958458971578441163107703532700393911770616403448631365483192699084779647455052242055355406724860935102209686926589791542499282231184837184798108373879696914614234877263947469269320621527488095810355013312220854310749590831973989844482182161097978131312962475476675066886147888921037344465939289794004708948012882781168315255292007491890778352238290859282209994310764299694029384205661985733236497812052427820507286004956693562446814700885241847447377192601086299522811744711939982170764615899646124174484222561243882909109300445643512290401696950251520023526038896553425636438406803773216917113822751716724870936173396456981680887435768440770056833691940535416421630100572021875208910782246369902430877652001632092707485934308598514957734400396142475495128198741611268206884730619841139655609437313627319725021440784673601585722813404741685023146368068884152324010950255339941636894638424505501748557313984185713276828082188035234736235833174306501317049956637902776946352761132736428267973798798056983853473138155134383423248902830176965668123045256706271501584770381581072118690971342857572933830020321900429554796783325412431818829674834637500931710704228720049644257602088989598346236455980606636253055758430537932981804533105524392855992927122480728907582817685607862104746022293582277230928062306515367299687736232558237813711907743306932336076352296631314442968129432283464470740987871993645242023794818012334018758491978378527059031690095516789551617154412790552898348540730377761422810395315493210071689041423649580052043767982365784562533498918671320961584759940802727409007612907320981934292906357383263100074371087270696013506808925937439801309925276934015830443429967793149912278809883671446047271301290203797883125212578122746873750567493336417884272463070530531161292517433308539389528583626263199280010592398786500786256809270563149831133611513786254812241656968255487514660774034132175722262226187520346936424675440007891939983350572322042644797572066317878477619393774057822335224636380563738149355902131121519252185880536380747448898691412748974423668083167167579504468923839445887468461647750075471442885432871108525459698953049489386298334176879264130556480719945696548216836812215331634105783747832937033480762699469417576678534163431553279932209418886597992558810861471808757999563720477658568195183330421528087323685660914060223935988288796037177931353827673806861005621182211989416822605044196329270214529028652730800932695923275442311479137093202069954836040320977493698933940391330069533765754391500975961539107368031626559114377404145736327457974787834765789578872650367977330666352642312760442480681790835322511645078171521775898913230049319593309560044100289887196506129126846146296515274988365014337771110442191982758742169663384748342700678875436517861843281170200807615722571220897103861369097093135473365254861378778779146174143150284363728502473671071947807674336643237456143744582183610430691117582678652971499737961841395436164999599550393444946352905408247011879600406337030532977178218083021471755608602415497466693977750948074777341185995998705181961720933389042707880734606802619669182463622981391855010715599703054901118470314310419959028472186370572311004713993516459951765845371952329393887030091628811343037881208063422943900483483716701386039428124217976865115478509264748308286317850299606173930389229649983513753062044350547794904697775894286904580376901755692276301287924357310762993068868053990083591306232843706753428865956296496533027149004578220931405502586353794059293589145145038875509037901743443605739095058217441813601970548672579953559259147747905614275410896019035783062962253091205338472391794239911929837090323268489067927975149130324868559771354982410105323024531798839542040344022524160066744647985287466122283137137942644263693773439687236330215108412638049831498697672662964413069442597051042144529285688009979609865768542638010562769661889544319355720998630584638494604568033023445068985049281110599885426700987305206118977297123465908361089984252413096885350246904669891312061182514931009251588313094803049848828814643722656402958180255398438330479736041487087761488375088192919046868213747307921306988639786688183532182802036795646168770603522112854028402101025691354088294847033570129552628824957969661824474922121157070751326783222543297618072572384102326409895976717161674593746545614095313299259196629728473530057205787143493692588441133165869692646501180358423956105328586910073636827137622333235641551462238189347575255908503595849604968093283688707639290092593798375928515211434616004495400307627584021051554596672096382649768885317870926183447598533720778527142229329106561603607365763181343668065697642094643225161057803850577805708674295941068069185011517295771951220701326331045004508953979596473725114102047218399038841948925392647586395918335933472443989064931185274745067804070719119921916700315013284207557281236510526571308401917751003127754377522292147100335765321498299178816732852864371131031825373558668785064213039454109246272951362205126909633988318696919098595919602566169292459952851494966802504718604520715624337555016663679251951293041930670221071718436643672712067189487405639266064841124085970693588195381142633879583924635649076368428826617321556947330454062269177216171003845753078444211187871259592437047073404007017393103373470174284187995192453277506265035755036714365758128002929032677792533442646567416804850513944736046904502819986238017300466632781944136630030739718491558959787612027766338345429221785739398370082453290136877241976241198588359007582638963531163998856794340094339301302266194389201786639211719644197294072127944057692160889182239146909551317998420856797261738719407660947124941237564250639089615080726783592145334608104126433876236331686597963935312285549360299812795743252346130091120813897850303969216854216241285168165338462083596046730910622191357556511243641020570690698815550424446955162292362079307344738537285719301658091430087121339953570893133769358998332976847660035291349402167236561717098417085268811782406235046983312208722719402960891232357579000383671450388219916674696329056273747871200677913301457738062069670072330068000443312123497753507167466676037096154779188125569853978473473149177938978451443296541315633981396271819852768366836278405979323195270755518666930121347682399757136458622392275695100922843543196329801756776779840161055539101568388043762816780489105768935918185160600337596922428321344746311085598562455480846950401077095647978230642008564358687138474290484055700479040622031231876592218152991391502510649206621822600003500192787394031086726717973777989125003160973664737778116624134422688611092366187403116521295442334382067921632248326428136042266238248208545289083791452072607498646079145100091962247897401182668473070134093126914658865255192910478572590783807074473868029561049929212269765254561433092498045624952916294593894188781556660675646891704690426384794986144881424963988840216701278746947693761796738904707876490077738816918301690229966338313236323853984185833896137248174995152342968099056735702221709483074731766602902976230020993079118041259730635187022166763255579726388018054491259352603197347345927689710911347770849723264866781104493873762704773259486272040587238601347858034046722430580547830090084126146527725375946552145583678121706883055455141789230406483626975088600235056667051173528550420264527652439848186568376740639954770837166936615372220053178148342590252962614345660453639660098092012720895919944077567661894755686658672322440011365049152599835236047727774262551040292666133128654036409487215590664013680038914689166963295261458605393570426620746748076947397697371710247870770926764625612394784734677022713780372524832281628905154751886939952759128140626746485277517154608346164167000506238559951851442369083482970421181006234713133303820790527817214236537808669271276768295129997420614450992667444871918106036951511556391436454337102757662468350875304613845081638841641895575091131927947312947423688320666756566790541156980430561503273507476461953001731549299456649412395257494381723090425374853456260540137202972298684692001614911455188216904926239491875204532952691334625980444961592579283134122328829364565492272569764184711963533900009957881931224204681264484727309059506534896932850110112454599229167930754435212915205717338754734520636784959285899600918887455582310880974738949785004664972699698759093001638249623046973115672244775116453191649257432200371514518732811572542413624755233968362201978425054206130436494706665267205207949746853758060001761931939023783677756756077536737950397095775580456560455563169792451093619056505416365630049933775004216753452753482978108903269143774241578159062907661991360828857605805267425722130977712955399431179981401873847009676574634341198329891899929691694197953363543743067013353935460611682486077318988874282150968900908873529069158899987661273295317128377233549196019226300469131636333139151640708091728532771983336263802917483694742094109231704747826185711807162542304633971854679629173263147760699268703349486637265856834454224485532711090057006366212614539914770183785135900755451214568370594485829723184824705074489136956605059805564893163356056570592598669083399367330268018900944079505459420356347475335092452120345679590959949856541072715900336729152345685255386630261905051239083892320044665049122155632291569375753200574492442885462122603921140882694559325032494713030239183558346714661915120770656692680697473232145473344817224086407308345651837070819497022671829834299569173073567466016006582485592239352235002938766092117000659424405955853256931655914114756243625393991833614472944103200408464962840468523786208057589584443521377049372372578283220634713387279109628793454073518907877772760629788662449604920239049922545039342947954732204733758082059276913138401435486830540799327525810358551551867143073588964425758482276630297995467945456013281253793926583274876411402183013424158254878283037992768184623765552304578399845543172502716218041686480956392850952926199677372704275794724709192164265432906103669374986344849924979212639127899609217527095080603111671982429861468202211582125726612184263667453628984585239708511518898831377404668017119520824912558297950377567604698605987259290576536962109547794027137791853413088872377547473898325618928444900829988027300203083383361357413265328575537055499135865495249430889604406026044951644178235495138493682509139536019934187337471751079756949450545028072812222836725644739674654534186757994726780692386413567250233776808551571510061020532946785065657889176387314153979592814271542834323482125552041365591010345503405978396467938884768294473838080016216287512338518745092833603132214997371655708988318649786923783197127146519064256236153423075236050627233248703148630862888693458093293238508363949284969615771110891766734648808338064299494141386870660813622732239436068463699369346760055738359342570119089729609802698153980604710166317828484585868798972420348285904334945244763060275388933485894784444874123526030548561716679273241730696006459301431541516010060934738832272540383260792097320775598976171978965810795471746031920117066041381711793746410110846885502850285142777652079211584560555834186704987580926446727609393759853945117529020686141017768214825268258326592672327353908181832449875882421852968107621585027010489377757179003843398118336745783178984579932623491909842844136680360023413056938273831364396492200038722534420816893614687444720002829497679180728216450116270871167304161078809868991814731396005780309611810315038942474829278415277953538711066561772837522698814740651071680294887115522311924103819021916990265496581565138736079805429019202111589509080020916001737938196774949051167078101018990577409936319795202194121471640677862411737584695092937350669770716235611590168615130905962156331054279689591754353475006235733846809445589295834707746419128406159139505845197912336514651807087528302660447563756974574902294596234354147676802866236804805524154697976290012813421253392277780740428721280330967847971602971953616321558830480554292392754736092403231248153404925658004797556291027207368435485536224996328372220259282548169438702166091186107636485463149511331230438898032488266575779033977708578331255061729895631346459829495845700104660995440647058557237159241440533673450408269962003524345359456280618538373605446874503210207408707854831955807275853744974652676603161948761727436978379961601744543579610677842652520881269799419858251220828694148382683866396377601871073083922707215481670709538670252026979335668209832269818828053283542904437338745024227281676781630696219457422188729454240223502172930494155817329339410713319633101335185420189770118951021419580589038253661647823783125753835450042497915750992880683732557634096979140154081135872038699577709000774452864456456360631990002748440836867145705233445581677048303288381559385925899244802922358450290078305557467263072766834993898726267266276464091185708717172894918328750417559114223329992167337485745249945673812289916166739500210164046801962914344383026300996033256834164810504790482237057743837027334475366719077343070096083187814279504472579421755537489112799538721619998402125150401516581123677290841713868142651066850623865015832065997234452227787543725541850448113949553771229532393855229752967348213145547209505748643129305185478034045728961653790600079230550214426353823411956131509655849423826221264479999509963340719588704269227646727267419711456945547738373173907251091192545712645175086911162731520736722137407124841520183298925363641260224712578879203495992642659428585692681321910906531245718138983968979428523508839418713011226481424970241432863884899676228503356359128279912820083378579588230806260928415751507928021344112213165986507218269173308057075474566779251321240175964227982657244138764219449303149796362315299743888292027323342616646466885211904750532351455723949644210501274784085061563164957259774292155987134612742045118522313447207363929930520367180480868895161297033359855577621358903221571108414453563156126306273270681230282754538546479046706335335564617977454392761697732147578925358316774153885156141744515822277118368037259474430817219034754652226441938346460948050882575042701447771475863985792116616594992148388237821972964806622367238579609902945126246708327256697010468549203427747603949555145553667840271735274949595781309718143421644651632702399893263669931485843968499774804211010040356159547553800692419860583878682573683982217201458391776367986755692639711692791000346851566911500311521040202002909764113709109541055393651953564248602763822782046635207688822618182657673112886431156012433465755631362921772490294980904839119739854005464020230471537700824732169202637559212310994853691975692882841180513696874264406156103410153375272383888214019761298253574292303868814005591269707230699887909278172385467087184952042236081150128472084363311646760087746258017641753260543960913987553209653447018027022852288376879197910288018257912303649373997680049167077329071096483533984959396429262389892182467779576265889715574479815774715229423128288702541839101533612738949139437425683444620489903094256575894235016011491201609953110452684542492263435448778834785434770528379785277375616032589103045289856047630789915679024204504536526880957088479761086304377441875469542707560627205864864114952042333929656095859151511454398000834095724316269093941758747303422000613060988052587664764051274863968673148726880878541247256816395753822515049462293257663376801328136042766798750784457294328218399642061072068322523496415231232506706923504947694618252004074721993086681224708853310523928864662064210812231819537422174263466383270046522529447791112520902642961322713742078600375011782785541468296731534750863724924549831941382655980216364176052153008911454607606094701304704962888476765456356667732868992276760362504099189714295683819145848428831362931809042389711814614092133203543860080776565007699477187405467336485454283608087995516876679227003193343865653852899413968497050868952612044501424711308171793706246248289117049408458393959743709790951221320446570562849919978564307435832143251388083407666621740633359696839386080908475247785979061056385159251281606608453578271240706465939379003275379894636406886383306920582261140525672751656097693272910939727910786512037471000434772081075297439712921882221477168721454385286474433330995722434144138075066147101159127836376238773879792175764497649349756182040322618411528370333410842622911919693953592450025461576559431937317880162617517028985745922008636122543039023777396636900845268473279714129959006028810896288753385825105657026824483164012638806162267978435672039133633395725455860444073414189319494743102579878680755819783381402862560133619576864091627585636178494232879596337261960067868219225580623722639192298177998899428587960173732566044056595098828316565744650578634544937988658762525485336220428796587785557621902610535652481034395477014721580926184947911509179283894308958018704690660596779051429100127317360639647683495853889629498946269986525418764059675782243944553004176440974418452561264736393570651053617447922739684372606764949675626162322324329502267994092784005503227468382124641482170212439874205784676060376748867586021837465417318557078962855111025085358674756361409441407447338216123154680348678241216874991101774090143637882845951893426000269712512210853160555904236328373879880841364328512072975630504572118584489122866730250415755579024225547960331032533380077803423400255888230413994711612896243568919684290384299081269925986447993032656420375752646655536258655352418790815795433392509389709843752842415761707211219955092796560844224873142064827877058519209323009855748328356120693600507616359871793716710059933633818983622525797748643467142873389879418873643056780561179882848491072112235780949963241934463750549096157929026528762599950726421130114832657905736016849164497317308222919836010531849988837610723181096732086361694245027613167543690826219529412421736715847160232858385773983520449386045413804844316724207195066579491980851479406543735079440658816113355763961984776250269631643473493066908614155394294540333674930138831589118944283536223488683085452569645201515630564786402994451603391281305292774412401555759925774363452798934645578287046016985176104907886807645459830417557731880283817040851068189740550082205472926634001496004886390754477059749568122516550441183320007910657734543643785971423370901242735182423969613910048432406537328178702958155377894437325530463080549021564533005893636734119680817405361396783454439841226127646894048104404702295086602857725143592601623315847379364151538503689316664646625037862407063359091977090888770019268585946445359136038630688465634718351914164462744747533527074489931294782196297382543847874089025674385940516188984961904127605270285153949040221295468220890820472540840526453044386788665833709542713339307151457755207368531845342243480225825868877038763397147914626364733516319147393834523533150974189101925357668135165437526671454141933896680413905192115878891665231760765786694798033397122115926473292637578831548006187181388068596373969607883798286089846646535347401639816853084542610274806264726077760219824849502942034042764200536936163965510380212894026929715241212723276983913788071984723354008138747501801316350668103550434472325283995490046540259175228050333721866086810693304855838174373373806088930235530473413248842993139462062279663340903591760029033247001149844305059365055984947989183533440582696001697492467208235483355036644543808837025328458217245960772491413137758455612278536380227055337852762572728435243506063651355841155010435518096426535709969394203073336271612116129356035810513659804977988119467065148087843839888949814246625310064680244633478881251551757282474329792265934288072134396846544382890077506030993415999681745776098692930308664683703628585641201864357365666708678703929088693729634058057571917444978986810477497535191785466320941457385488635094253970637471568743980163536822958876332949316077107068112772923360935231544492555000856394383806319442218348912734569193329026512855769791905599710925765847322955981238032009691943579202694469890794045175384336245809439573378081993124678335361413296170116491157834587069024484438645320446041224825666706277879193386775548696121753615540554007780879612322449494328888009151678395513200686251616682278105024948363075503846379634316207768621947121853154325604762105586188411172044499481758624776767199010451735413773267642616432283105125115441215050500218743241791816567822503290574960832426890632922805103582168539918202033499151383719335685946976267995668063264074436462993571462070003571837541649583581038362689783120578043815332610830712316919975793578813574146387576189849013294454886013852756242916792328207331420510732227444496272709318387679303000566021234355024999158653465452685001973537382344486103216787594874523516219168117509816634115522139873573385406133964079200672799758559760428126206068573623196836064722172771700250528016822999236648736714666536254548755685608383628299105845653765327869393212446088025840532667824254216105635540182477562537348681999042398217687996376956059848434445536224444118348130980425676179178684994585857165286110044850667893248520488126411597320535092242408022498105334425338352516524920005245603337154217284540245811235957753281674646118718439759054532277076311029516358678494288632714146545163369026989929641850815974350711119375088590584015546694469373615227963485811927948364182524732314494316114670783314917836356080475773193373688680518727717273902594461622329441684721323539579050167458357567536682252964281923848871913633305605016133464175398066732739892218347002317232485548330758953716940140285965712835899264538126647676402362179886782564037061687857377436953325223950038009448000195872140383538157274255194090247241545882292597178341706892432733390095956899465321747400086271616587084594188275205915000688495789092377393959489109712611173630438686221300261421988747904358883961661550467077562280080106242324036008618181741535688216345969311544070717253683749411788552828499117621907955380917148947989190608124904998519641252734395364552546149417209590385138368893321386173378719978862272381135490469155901270438004545091042321603102855917107151130938988134226641763116792719059048134820455406849825169925424377184531468693415773318949599640520390049518883122161239260151041937950808113167598174838080563325187602676009009897684315295339520365877999171925577152551437493431139866945235640060619896034322878665523065135559802841021574391666461106160598480799481648819459337209236830855749427902722694745977082079027841433172767322092444161117828736422858172224942670016526509971870242083510036934995931390546219542413440045209243860730886130274179236845734069667820047862206225015375300775197811290261227894918520131492003685153089907572504642553888642703490271351815575356912628063198536827925386140521516219409951247401752671259183687743728387443105039537729709408157256706152667510593801927677313626949244428529574331989794966753504300144363405956094595330265414597454364966882336229041609666339315947453747282548532237781535103564271641534678688808163776934603102528579900105327858270462387776385392092355409863190907151989527200194562507956012660234372506549111815838608768431610480947377455246248553294748711566784405250062465522724181912305161310626100246558055157946613534263070296893110588554528150322732281663061350724132127109403307980517068872398438979250034390235263328840435865643795856010382920333216051026212295578629756554041869911910017676955075486161985512883606588463804221629609752200757129617651506390076758608957828931571444775650710751703276471049042370513058036952149297866454016412633997498674492889055496154605099348309372705845340159547111926026246582545323809943753401538565680119346282809682951614739611219154612169803137582493442065526823415521516424937754395125954944737344827514433637454893446102404717136850233219699480694672918940388059588876148808085915694080555357600286830493387009673343888569435217683602999732335861780654240190476012182930766127397974875122849658656843780567469889423476145258528635864146405481206705315012689966924035271783091740898213474436149769688646026015525248780470194460962557268969850955025739020214813116752780587835072518329731901751803033370832938074541091086223723930550540811532703992527236448651147368880830542673929827709496810310241363705204738909323856753849002517455942823928153418281216861842110008333848449335388773731651319767001656538717394016464508597362140524925993935752088136561744891451242511593131182992111158047807097982181621989607399373664151751111838922567430046416496392670666302437665781901003239984162159556235901452543661956888327925490001027749736386924872712892172539943882804922146506570966964977748227386803154951527572313033838725588487406207579970993474654781404818371595433312314181605702046992835030345200225831485537848602559215032390088392862639454301370694121125094757624599759380491513625763137963499907830881665221073768548815741532127699037835588351048294436418948198736330694925211359069497293186370925145383266334334015222092867619110867874893393689794150165874967164700390953697603328225006239373182446503807718918697284241571544815118548050135150637750056065747459523328993307797620949080615468814833136760631175789358443257700651288376725239576016854238325889000475876541283635734420891335020509306279295657406819889823966745565336463304300260961610159142954823798412973613667253907202626152893588660544151647236273107561929605578237148105575313420147179183997506176539427373944847919670376718627868531849910917912964508842951148538320242553864647147684292114999143911133639652360298209383016797150186976690454480033190267295677826492189074197323746402670819905336200340363470506349376528108158675989479106918683802979687362406436222294286181103913288098537845467666911211201924826024011168876793697328371591780805617535233807119184151101365090858229519355411605540195532236491338345580141280551297457512457502408615888933727310621816168744943081542346389069008070890248539090077629538664341836054818719391196069062710997725103564613603466866062835018131954386852037000031449144733595832025208465930319168954436504508478942567594005705075732803284353724788225602827510824078021854955185658166081878339894225727014382205228594210121098150233740273006480365781023372814733678429245617399897242282650789957459975997720482949944478150746172804204290436378324671548623275447929550999614407879227388126481134908588761312778151496896915375223474226508692301463954691705615581391607220264484934944249482501762328000784066642829183859028249059705558856278082460236428191315421024608197370213628556095811346853415784339563032751750592883445413746261669451206682573624141104947978322378025705530918183454157407968704058608155298397551122563960590314131189791062994494160404953778758944296472950862257638215395620749099039879847844211391436917752487667155533442400631892330478429742865798556577003929847955680816099132592525858964591445176765651489536472855234060797191733814792334588553032465616972103899902476471786231248921216233188686655393433601637435314462984393773335283795907714895493048056191442304027925738095146639152890551944237899592114227925420722369062094100896878633552925612265489349470773474871378521603304430016828443264319055255087045147820222117229920574860115182871018615258501176182537652252851933468730711628864868172184989123487863675869323999992456934810370242632072532768760375767716720305602063785899567482933051256506954145038618255185481765477503803196805826885737948770731509562558792760880974900437604056903055875093452963787560618881408651058311579722291908931142166613368257017956809072701304184672325506883388595086257330052559430704842527708525101437487579317817960744395627478386690071062110277138217084889934018362320551771788447964372178210434701436030728323184187851340065264163293470404369515791228153587590423027187032469211813940381081393451851734311930297138053043254764315685358148923887393021917212632642209531952951655849520561843982524679977576095668900494439136001299834083091079996250579523860060575495487797785944956900005455160066073513811845774770217690817467867654815830951536266519820055451048210136230158798063988901936436997183467925901609501070730562583670022760091763147526626759362824528540184885205845364423007554100837036021305122540095389760929942392430598997205763037159699200445866968524258013022761386415689634771580561412552525504581502719984247875229475220857836473556059124727549180424350112968426069736597797089458256996801416929978730776239772003890247236038901905799610959824345379249865063702231641527865077595988659176647289632051635429790313651418460620309848326507916460946931530829074538585812289464788187454437166205229061256776403587147615772742624211347042744261014028493391540999384193329961758931451269554934534547549965571925123864713146352366022082178004314732209369025753769932502308034674294881538864360454161187798855978308115426944681382157001073815068474225695181881320024392242127746281393510092057513500479076507073923433603573700902064877389735482314824262924053724187481303158730975644491158245789624661334222078535977336343306490987373606155514673148867699030516823431498433370464131250272646183965719112636937350129022609290035607948973787098957098185536846685986970698293498346265355960220435705748843100784532203692553404960868486149902125467681667254026597299924386194788286483951993223605835512351453872308821857692697265260215476612475916374489771593936233125468320261296721696080550953619579638634472200671727176539145881037792064179526013997479286117864610070333021471152339965008827359745352052071865903366862434026379710569311684264451195797354988552695973158803781767494107217084711670203777650476962184098229082517884717087959923731363223536368443710128744613678446828627932028307877729090183934340714439110928277876037699533196189256391921961570341884738494192028176644053603442375399579397247398312306460471162927780989662904573004165836945474705729792370033377547162999328668193563598620549648392417852800852297400702595873795877429832978713888609199057484709654193522338899939918071793887168388457815158841802055716339486757468408731888767050744664888209607156803042607921949796239752512413940309680811847166576390492323596398143403681759603630117228150154062270748854964362772570002928403626069581429016682530793157827220713167074686913787444349523504013937912617361649377841815989908661044087612892454562211243522240537303575672278398298463715233532441665667967534983373871774183422509349214950023881047712810095384969366520060037024855539818194088809920528574368453156539207541369529104889386983691977498950279700669975766572206969778551538826830867470466435780316997312737498482716478763250309256697655770810556397337978983627290495291962205292556038896550387003236051568786358495715354319132365028906842190323985304203126499614063816206122849105214352035898051319742310373733440716497180954905311777529581036945405508878104332899741646264534754615141206776119796648466346395557960076384360327331695851859016240325638022951017721678925061272577499681557408479018061456006593856957649639415179698651094073275358725455562048716569667558609763451952823079196996803181006868284731492157005954195750459952634738856063349734999813531881681772823158827437821991247126493102253389088708276462660861044566630391493977422944316255341232562515804453928977695709066849459506293596049739964501827926971908249469597579532404420565285157163709748972077609041043668603143415438394278064165186685393227028347591800672107570555679993667054510435498569951495415980731528289558641265715681192808608864212885919873129813485861733764013394612670330239300636378720304688478547900972113387302399870895833458569520676814327815246102128837195055327536550411990189172320613682315390670416005964377032291799237271830125550235283483340990290683424282932899692460518116917785934352368453947310846848743035038002883260121502628895441466269927618132285222027027077823526356736230993299776678131489584258175718785582388902223329512587372375892523617339841231092817008274724294039803485228953976359974327088807886157744476307383233500695900815075887911162828113898394795595204600227125141811717424782193987607511301706997767645798393831623422253851522225056855384559931905751296816292697840319026298397734240722395758429952966007502366354429146478818560059686929508473578379688304086010063946925882025703678759196572985372268888533490605745781703449518889396782667205856434630441109676359816080067479744498854147655836522190689228187859765787001508596659090615288312583873172557820949996885796564377530499986793362638722577717359285188142585362441830988411479104253587216561037024609361983553602657849023813941173541341927474954981243924785304179216826232652012777449822232660969054175448851422304813328486225754085375576590525485871654799996296132707782202259870603618271042495795140799042581040615597273219874765265447191319771657127166608267702254886541064482277956851926742328697374787096979296622262391268389790946532282066706550758171966926419511263432077722063256024244661376797326023670586893360820684986084931715397118356245434308604507728260327714216729701937387953514811904751300977437503457156939244931422193430328424908870457807653999157122234778453512312389024087329045806863593570682318987369312099435723871110548315110236391056730411352326186082487198528857098966676237884594308592930953466913901189135865783558554871997061476652680727846507642514107396390809229921017554676586487822398798403101551361116156791212452843838252165150091032553354573540685786390001229920430434149372371606713761088640502517636601226423209511058327297078200586704407550832052556842726588179629517638913628048951894861660316511637886647505181549123184683139783979454593823712188998854611200545154541677962857345296678341209639755428853018472974144892267092224488602531921790302073477208761769771500962263872697005082187291809642964090533469827508932549715588416340217642677002349074587192352644312977365549140264278095186951609347296025125397053597577992041327310862346701012761363058914658947807868951379052261923055015393972520248582181953549026355377448862084938300007223509618810270228274484698330670733007132632395425552775867363896127178174040920075072800543302467461782171803300322552167938027196296652005972557151079404310480205382836088619070516152328820943092825636086830928555554549651199998361032863259622937609149491666678357181977943207669368403162210128017488913034817793675183036115782771315195624169156145623236109352221709347278991973790749966041448804431353331280862216626729257936299054909200439173490967063474267984016750846135210730174186435221997505454789171562703350997796425114163741666281333627445677632510057319317970301452340272034494557075763343313753741595051835182613318204338643807158233436643305148248235345943780980431612852080884739841022667661651301764165648444544367394287913940920829824621454748927565269120977518865141826845184133819672894390347663003044834850018405565948621506646517808288989108039049084076946712833855771872802300524765100828588232119975259365042740575295272046999225616619979580872072684174057855445192989001052949810020719288560720002148932276494641039908463168743916390478200742162770939108262595555122544125539744572310499908725863779121704181731307738538439699793958640982957033308384294677261484713128919311988340224391116720676137341748378703357024092494733964768139408531872609372747582945430224837966311753503284012508717346245600663993908948076949941537961417822068542795251006526141019870546150277875568587276534763878322876610414627446101572292261608574010302214220278547125197768608061118096290540524626739416386247058171145223026968245963793209244837757132960130033774747589923425388195744095148452939223983133195818551678402333386653291854288475792012257027374858836578146443745851452998471006326459761464270935349733963775501161385356350333841697904487380531221020323165350251405626268402478076024509890441008809316566954931508318606961291690209307734030230278134608630165267826770595246839891312503362193569532862939029393655254756991523572849267646572287951441470683229251464069485647755846421382242367593417973737736251436188527037812272243231861659504609596083396032197903888460499620063231545922144843276951564544225905970932437438916852911728158867842413518398910346998772227440913598669805039128795864507575794834335464937882869819769099881925872391838685928458651066588997887881109312862340512355907850821361656819852045979646314246819319169098676135267591319073336369851776323598902705610564464455211418513301399405946788771316980258195436925642082851691397083222856339767913715365249206458007895051623843477710455274730365528121900796989650353509469802922353531141027172387937328806471515590330781147577020073069726195379177325392250536976965019658927392088732972587158293803305660319592113215588249636391869419310910307436746683557807389637989615628012892455497679990752822535013784510130159172778585457335642298815687276816234325720619504336351810306791537432980746228641821633209605809570289365364799868907060437747667206648401754911141793866409734055408928898588584789505498148812719300511570770365442187571987663707168560174457487130872996753189103059057455026489907707283484439861962020841684874964990915778472845527289888236623149316463469816487754974101832142272289205224494697966467360648220469393836356065831763164282696635527996180753436020235252694927423663015549761844741134308420976875596007985309927076954257556087630724361250476268118037619362996770487483627087434276485001170057324971764336895106805049110754404048952139882821129247265601234364113577967722298329303086682048629815104715433348016743160970545641170955407731793105609823368302136143847751384434646406675289565156493295220936844159284999270485335730754878839381892773831358530097977021558941336304930387264409056222544411541049710119969047275888369421649218615807447971788923661432145170693492099735438095936509918829198093230253758659895025132671904826937500271342275856070301399824636671409629651309349294614079765309241008591067310305645655723826667135842253872679194910991720713530702813929055507212155042841181593710105910188458207631322561895098878257772836248825005765180973581068497555181589119259896272245905701041462346360694652857594177152127667782597444109521921652364177235803333501677573315782966952872225468003461044543972129556799060440816577611257469820934760716699127575666016881738065929862324688277063870956580530979543498563199219296876555389767016515174512760287848450585766626261273263515957140128208233236723131402716042427487961448910391633618458536953747757453842922187485574752002539275467672696651738026093605576973259992374022251731014869878054580810357060864751938266067216662709734577963204046313870023316303510713092883013339048302458190637109996496688772966407304993536841279617431112094587400107206448070163712858271643471476911268076692468484432984963997174566896837626249639104481614061099812179814667036879419584397714719465316289919666347167066149328667881411003589886341345884041626924418083055958040856181688805826227621802680927804616274133361145010092967385717715233480331437061493808705555381092517193370860362847252046029863547216407958237257611040120725914379778210263658372534888893808371272899744753075811370370108029954771403866978093078288837007707865158082604033973886085160118791257220236244063351742483614427323854101715408992078532747562644076104458224080848789273139759221650367508425621545143950878565102012840956300181709216239118612871108040239623653525623691578806372888070387900784549028156141018723158558988262723813109230290871281460295690654872903943826624396195495083258867415906930409628397033178420002596047600931236002395462057283900593189752872145512256090713726233173036720793640192761325882708939639189702321948652188849868486227915475749657831592561988455345632270621157161563211142168286160547365829834880187555928492131250304800873026224074465247420165905780176724075686863205144296931592548822903791344578675684709951698256921217535766448222198300831244370548070084892723162694840653592527434369566769489734915124090874908875325354832270065690241404873592884155973874291144789626591606606589918359022988620956309095353620161232729729981330399347212726843277409392985158118556099504316912809899766071683701139886669326439678286636290204072100457098487097220044565380910189887937560301759437967363590141665467814010108411444825650365412484665095607364103875845678633182227655811771746946526265323717114249913126755598235586676706044542305458521940391462443578831821982357572757303519326572603612895945421111522713383881436442721400570139457024741781864976918900927182183148485404295026782742623803455228383285175924963357204170240597905305963347362874677544839145771565490033982932760757950046633701005082953844511298814657461149264843155562736495511823687505744207449461159405903177072420655194176455856128540978589754243176573657665429649574568422867154033381834259684240556201913153240729624370631021175236568107345743071858476957748432897033531988914329007072632852360233974185932702388367234414339086322543792102694078897047671579572184049823405112351347602079578942813023282959434206471768655987885352572184748186368493171224070143648869427411809727568835309362824393266559828313508152929222000377781984489574610657291779218301181261799575939880872239791319624049214948850618332602170846649480744107833865782929239391012960937438587268774174346795261449504983097840312990733975561725633152155009098449569839164576323124776368351854084668490201908148726898000382954270739486678861322895296345732031052389438335220033797108845768296212602130226705693643462250394177359717076357103837738292415917072343212066940705750544388742119573663460718344724178378279938329196779756705195217595364864439931242671444714555428804124584952132582854558843366232790870273043449160970547643494855133330302535824052477887617760216563537157405510938942177046065561944155486508850795757800747947068451209707496879581543183957803742593469904932082782396187304800048736570370517426727643818408746577123161083998181382178652317217932353422469069623860699111711742897048259276642828905348128594156536897309425134056569798919845343306496729132668562431407195684292338788869680640677189762782817355916666110395576006103552720451292122844240990724727472266273979492065411485965171525112758607692875483266891258679522869058840725319162049061396003437182194336149782954255153314514072479911481353545278116112440180190140741025832044041616972173228268985302738090862183566944528397788393401488366741777137547927936677940897319773173754331788310697440001239405112617353106437704502648858640210632179568889189318059425845802056123621807723074541186885719769881403270853316635357697882281237082738469539409874020704492618685681305604444897457856877804099899730869300357174516637213679367776135731155770812423412331137887033732974195068196992127577089135005249130533780517468070052432469718641349497645329429828955451990844115208090188554668032251909118464932122800504056759473459852012992034874118574685295161002825391824501468009447987155130671319591890461735462803070455281984706563293173714204746643549987367084195690084911223281791544457169374929935223840905971439936585985922685596682863420557349902278165644888358324179109110731397427717328996021800119114528754934060458159104263356250976319754283401908268885765966145671890233779664888357195053825772928960300822122111982558138504670281869990609809404051822539162473395933016682432742808968140107712985544898086038731446750841081734170551872499022929765687086186629504880862134300178078881757143362044927662931142773492014016684744869522042895296149571207019291238033750915991435950044170993922849339098762965762283631936030316242243780264438878081219687389675851171175739310379742249045787956079108623298637633791351757495580529986884362520808351560370199825598603108775779259928310921290451966866769933723204871365430311584937439078176517415751521249878341424952261768698239903179950832211962793965140752434790455275376530684219915350903285112587752528213305049140290439361390128352518547788671723682648694005585940555883770443139596529339174488328414160867987222858962192389552741151008416612324647916441096483176668581340752051655325404806182831677821639865157592121634086577599494565902190084046496853681753602947524904243580005546050928143240820166906566016215326275238139432637411303005756902106793128170423991103767093071013598837852826708254784292814709936799426635030345262977355864480872996687142049254257368089738529770472546957146300516707395459632097476444646328030700797954546632463002756968250545079784679492012713181257763887710693357025048285495091137004177927152904759615474183373854176480074953949980954010625702015759581998978403143900133540030461723760902675311072184684380659649698965775924022702945903247290830082825209611499507491647344983631455234727292109103834334179117553660417670110616281701960945766382715294304697642854298598627283692792125620042967968298683460575120898577680359924702159379969611669452375133128789704314472851068017596931999587850610386108459027362210595251684866851081042799605302406994591448037120662557810398387178034171218222267378065373733505602612617923649719579351837444878007629866029959565737676472384212731899451227192518475852575454082713389366420222289417023941788023135029641852392836307300533631302659498964466810983843296038592782510527815995540890668243191360724623216642988595146667535356903215350151517447731698440146601138708942726076146164080613239527902898306584977647501305174003407255244529489982991108569875159091562234771551798705925880751021921238261947828482091686101247437189636436098498366313919166447769692114206733058918811084194821564078938082390998397617560698004396302265842599692910065543414233257879545647705930880063451904308388385743304175551967528796360971390940890832287901408084157566838379499522614580382350031329507812540734037896179645614163145268231648678196738065699945875351618460501196102631868104245648194498042288944652911531876581008818775352883812417995245305771328987405065725252483822486657332970888909556260242669012397421455884099056257146195543276131958907879943746391719742209028547039232289971162751852726824952097527824695399683846199042409967775326286970938887560669676938838360259931410714038885631906398750068596599912418814423414578399078842070370309043507212728152582159146675376257659517472739854560698164214442545022214777351874433958279322752367546197814671639512910666887996473701367314043929213438515321470208467574229251741006280411000139567856724183062419939903779695007826639942919284974965789401113027314479621068161427309483744691407177948354547663479733438932118210568010270889934301936965278855487084912475348216013893002322296736513065403749695013289525421384499754063565094813947734234865530024490666872767106363121303428066534409829801202538061284753579509208254392514543802581233533729012914688562701454661334539126826462025018793397000863642630251761918070080052978571954698437004903296766355193289813228930265014757011132372411257500084854751331969066087677907244924341976675919522292316339024793421445560426055897153185293210028304056035331947594717133553022120580909238024891457469726166192557501459577675831061908008992185233600230432138360454086451441100081566227317392138920910782499440090240753190918277980383596571014555848697768730619344240333229989504188105595246431248967436155472828988625053472046406501092442108417824558353322222008853006704038188586142519105581805312851185899668410861753353683542938291700330903237580498967113710110016581556299548576008668888901853244731867676691975952701181662092726645388068861845515128255607149191899092821457590455264103744970193405989975224172662418071912385432112940163150248918943529254496080317102467773606630212989323084213668620379514932314520948010107016550510758725293611541260411271051556914501343328504172198252745532308019746563736720671787846569970291682518337948111214621345764617393169805160683605905135584736351726124142032846754390640397844663583765396788577518848251823909819576185868384462706100374077982003642305207706261466402422303384208901861014312394586759389762940615326093678284689160339280178730363171101627352412645507224655890049122980084932407228300655395452319511383002507702047775487801672583559973574491926598168470922862308582893867219567235308945782114147580935897262196828370510561841760525552957076310915107242669584085558316717007411133161480883558733868647984947358295418656289045115479685663397876945714990295567531930983747869004855801358183724641146711018805521006286560904685237889682377066490096209298837308767000616762040896280735879521141492446252263147556151909165525325820821916207292424622272032664419677414990266502814955862493862879297636953160557327877321281046589248922293445133138961233078264494096522483286829990554105428044319263448503480568317317237724771844066440469936863267344793348722275087219935385990693499036136017821667720202188581065454740197628324718273918269140693114571330575617841214130264723010975345550610373198430312185153920307230190982613411775608322125813194574215509853967971467887422908606530048852675169628490711618357501059735675639164664706607036198333794395352231640618509935540540493525590119275941956690101455526305446819219056057471958859244827102882727875602515577541309844531159033207106566820717031745338722689226702684934909825364539450063612715263455000727284814904349558860390269674808975428271071760770655792674774078569434255616563934092088706356772903587153108780724800919167476699007734557283919019737140334042783648422744935888015172020096923214312221396324946332979486040078625021390610611952257026991688230587940309427138048348694833486482669642628801241235247893745115323887891172523264815038167293176419333922180298247034645295957143911425583673233375244159052212344238658049043180378458378453793811250988436193100688483676867522856528847882789645101173001447461272607681875053822768338082109100078377612296749194241886513689811798343256412593167753623636994116286643030670708064323047014545456007012495001140339935253184836140126459288127106660934681070568229937940384204507948922849164731309818211278043571415049894697238737761775294557365392705123719277278595040123592998924431951336821767433750456663024488393575577666092913212401725982860136703551900884799342771966333956463514153215679907358037385689818669659288686258476097230179948288236767503873310310684797728548627909123659400783238360805496141392475296270081258850713038514150458495948520941946437834045203284132368995151733757739180345667010009443571893522981180689905823269163657048497690475677326494816878805971215452482313665141480966269651316640697679897806815226769779868667129459996446027293663582594747282075355976865637141383976519629864337682411745793103376794436567144063507210340656753276122484060512162376727222679079578243380950560681044135802094125194867014821989026034107983010186425827471381361949761582402430142797910553522499377253874075058768092335826543475573715614452078468655212349709925017857492247569991595306983462931701073711917437609394025612328374059565628827502633102025615032755299368511068370208731812853569660203181577589286965823706927611882680554701452758725192489058660815550729272392762371816487383239036187352358002329402889587983142588915984000132156842770787385475065990503047066648568646461413696883426699819491424339371182787078671345771167143176493609878843136785433779764242584016361108772016307189237735827719760854303382258841966419050531373556410587910531769799056537759571844136827640162630291707571632268433339339717779707073450175997121302745194153659327663947764354609321012111570646429527559190537228123265733972293421853961456046142702131795670937547366841920688489965814999352382865662454112817755515437319842229646099454255125899667983894262754695829325969619824631437527092835436796289686148342798949381257992248861631454441237665525112754216807473587558780886652190468380499061810658462017153760243378760529887950923476710176537834264015567659875613076530566374616473228773289410871885236583378829981768007655677013815736383320016112222309153274235798716887413370653960222561871605773587749335116529521676836827177468899500322844808235694756393658457641414368939299067896161866631363161242760941377571394088753815957042502585035468604531785055256590265708754001211906102821001266295166279224017593106513125056497379592155949518191380459571085848908473005905440515835905595290115407191879938549103812070817045155646953451043946493691844529544282120425833644766999905764944239320520406038827980247344801237444867340162436872739475501418837646270633751103674199256740937339929226602434101026407358881554606104077731070536169342855415073999751758650225508000395715771930485647170038803084006915711559080467900069492048443639716020394670623301038180528490492787077247046665046593202298655596150490534696375136764818050869582625945806508209397656906343025833050950962966203971406965643831489659839127990630741351567828605234911423246523696693900098381915494847397691664067528272915852414900027091445875160201340964984195602968679153537414243388771768736857819292435609908282744176298046542004991602522686926493670089544398313513314655275531825393508190546182000058119590658852432807422748682106854721741190558815286832485465357343680943833694082913094331946174143209662506145343371090122922215319727024307863977409004463330972904461474296800234663610224766210016217265863199096849885748406022767329552600691816015004612750018390286267219367551395480387099838931496947680302817621496537673224160991675054700741510709055468418182975881432733097631276215393566628646266902537351456344256225259755925175931702839853885414416210281378315690034514315348351003202295652674123695045066769612986556503355929377410357755718130735446678205139280335977437779142755789335109185601315307009794264995148061239716829533554604853573202328897698350474765990870848360075710380829662556852050485258537190448825547799871688902475089959885985583552940191384111836277253682785647859141135410853062670222153287521048152623775056446785067414717903209059169659634046950007665521620439767946440954947154488324257415333358548483475490979474765515866209472217089564951813974309147351549430353832907622185156852456915339123724978283612498909012545879287121355183990618076443403796287652719376295892822341909403339737502247558705605293532205427338504222729232079513848041098239488837450632986406622774605606859441981176779622645166965973418848463700642684977390020443331881587333943486370197893010271063332324395370347826358145047081399327540224818957107509643537948318695629776198229553002212793621377014235546538801604118084373550231877938663950054080812091340672819466360243720085715357886679082269741731570970461633888285321749324805864163869980234450887061361431577847271840508081290754846655612565306576059469228272524734668332161060007286186137231752377962681031685797037704331613372318965660275582564011400435121153267179730858912751227184174198088174286173159362738853760345075744277443408473229968699635857075362703798461480600751656701807817443653939344519008255397226687069062084793476524494644014852849649748514848772050206892005745767217827580940074169054458798992489728336481691856076629906369703944564211504645537859289266731240823930448764958545389306102361826242467685844832011886343658380542558337397942931490777820471924463984403660723788491479265736965140191973145440841420481322602223909800861861858299375099304941598805746615746120514718296325137695728854626897495666506692498427967071962842147705566181540153365914447212404514598682542353238594213610939765192726040426127076895005018920857670252899858470498213513685225440583575322608567201917579318778830556367969347388150655247613811639052513718939553481697165185040265079788755931292496864395490329329681597325433352150822165302871213759652451014319539825438219695735058342595874561181026955865097171729965355491041931862821937742933788962028840787899121944329312593769193647049907662916505485753319398101704558643400426831356276971576954258107171006183357509266110864921185464375742663108844536274755656258910630944234836666088843583462956051731748631976195737000320416980678108285779695375793471233246201721609537449432094926446412410058059913280613748429104173901278015461443973521691105603219385140406339925316094542446983768102319886438187833744289708787234942270321206148299622280199573768146137199613298600572113788983232983596807810838676691770590542131119235762858579506214091027508867820558321260466759097224002325734219507408717120093306629433583180633240006294121747452948051909648970860363847902246857452529202941545693545097797827997568762385798758209703049870032568620371895332257745830827230572548855936809877330795885292297778109088320307928002671774180513969729741208110793801523572394201442918551878353234015492932141381418610257234875666028437849817139160594493248561661804598744798420814847237481079233601983557345082833709568367303248809987036278260218135979221051732512079430556795730144007749435281039141900139981807262658182114739906452371975187484017733076916283470519592729030380921262581352730224500187313099349664783203366192286806273437299888951378086048616457385282184591735449801323981318669176486536281817246176276303589395926922093610860700633060907502203208464649725261482861375747567792473739807508126690126728508065827834886944241734525838221557728523004643171113176807150466709144182259009727324376467990143863391283658266327964225025295270552106893854546488528100714203819383024906794216223485295677793723810786849904989071839760738777378488483817964491182029070230141180661034443945838338972294340338253395842189968250303232181808719746806024891733573989198687599250136784974668959072651120537234835030690009371938849351131407407434314680524030733206608878923377705376655548702416023951699499737096943894617881616340045473349208113933654923947880209786508246985602660075199709287092840384816066116298329456401887416835012730138540443503781873192126317633214923979206933213568940065068360519322711369647573396922178722263986164004790654707768934048789782186751054836413320259528576860083335837654599687848625611268854292911783878115632658321671779135540655242438116266617145544803373116457026235093772374209425734574378178137602516971059480221591472722370250773866205082279395327952379254672793236977727787192004008314157140589088562001038725139914962703461662303357193488128168931822636427492740950080046939106545197105708845807066863685217572422382490983837375321139889418164927404226730556018224474032396665860718797832151150691032564565337069221552958982165873007418805384499749142372525728595349195470493531426352440957055189814999189888995114258204922958085037429076550075138200042660786356814621940191069523696270732936015570993911487064021476664359873705495506071768555858425926009610687487343669829048266562833637332799616934205601766458475484201062547102638903645679727485361796228456646925865298217869370771008530744486125863660574685842846519426371158682374563026677278346933111094183226433116153807657278019901547257148120476397242463086978836971323491721634052740643487030162113194173790981041616363586682178909797609210684771085550919611999972976846896971292906706791716160703608376846304900121805118081337166160417241327949869753266692633228778587282853593388108297598979981629243963355145922431658041727164663841645904675042139798645465352729451204307675885746563798409169025117177387329554324107801372655120110900399969792174138831689521644975583693782510624852564523825213526219717297648625990389299680695085272834794350085793241852001471854916882443676166545804489091264492874855633627311046782501785780089265396653968705492765738122407304907038640385847359998579447119367831788808039698938702724756571708710315661982429755201784010537118132026459215127553450282320568781347517880857801613916056717751696094458999112224199260522631654682088895626169844965134681573708791012706931592492830259640691515480574084277776043670671203249288410064196117218285359306458928410673590856932225033543621529796326008163468702438030071983097172100239010698330269709166985836519308806774410442785431948538715045043583418447609707579733834430511079214110501486123235175858729529492503039528685648230595915210748416396301971843256303390208425858567965527378881531303823969937707160474622882890111103328876756050080207254864169814121630605837015813158648735238088670847635323002461184904719295198248177529218528264278160892997597501951913741901694544413643609602165847333484259723318931608042348492751522742021987609881154283214275123133743002340927006863569146796469153110138034924645562707021928730555877848982314436134906050928594040948463671871392283399004316362580336039743424463970663665706280554336257574554549555056101299567469498226638343418438043764731309195327541860836804055009708250132067276707626102289855650609417115341013100383361905518830483212759502619749117615232001230749746430848975306692664097224593713184353695428461888678615340157127796592506886143504332979963936733688432960013903706739875725631553571466548104747139969428185601620150015543875898646519504615570482267801897618795401435862840456222916159699028375763708066692850068060051263723346897728828412292675945624896036385639670608806413981814299148713301323805463148517935603241019711901374822857652152269517077048148115322535712866900501671752116860027724697665696924584414725381966255528172964865594648737072073230590619607419070247465236428658618609878268911564069911474343979896190798877014804339379266737222761221228218037073368362192734521804543527197404033393721629678303995921752023802997108671385355834058334476410112470879615723087995225691798245809985278393712984608816044794178315407755879652899064731871586711368708602956355624571149725319426765915298227736734338115560369963845609084917634204892832646245611164231277809231974268543980075012023661581522765534889640329056736506059181583619787225599346045563809418226101984962921217218528437631036711418901167839378587383822605400750028062983602287708908603411224224425040653245183634941405387985744679629410586995318475110537453896171329413496229417225987569279638746103980319750269332675651574627718081509190269314245202878012062698843861397596625704399930409370506256133117747649692620692816233096303346705465519185711613861963528294323598991936816659862128938890421679028062729592438130143990726403042733809802790773205687815246611506286562081394095507886300043047470258383123595686455007374625150126992580945817088648484691475970340824959472732882459735546613014798728398395139310056882150292490896519383353016687556109492255043343505186133270730551058067126338225514859410165970455860524294719968248119070452349163496739297149803636330429105974753588542657228835118414009170922363338237026423265783307632744252780876773680517785895250971721935264847615705165488168464102528607917321644200215484135727699584433656172004121517328006485534773087220570907534198098391684356579529167034848744447635271198054944907301133258077692749519096402810287997947774428160573004606294599574920180120826676098429579659888732831030205492198546897454573748061267561972572644908870130971833112662190068801784787078817196303331575329587142883845405030056313416463428344756252807359412301266110273490875196033684793639936418345775283767972423197313585937662153690203682148274220669293426352001538056178282667772519952195106909285061230445263984352923831366992727372108261340751865430432121939312426745891205560693445882166041604458401275574351687673447605959634185984411199048673120912861941075990850625085615617036999434428336237075452008876800949747341695591294899031411359406962914446156184575988014913394912970885448105036919014213988135520103177291177211461189885790262288000838025933762653481811825709698887575839277602101054501611696817517323285747360279451394811293931137561024485911870461945170834638933751967877645695252086070509568039909359136029326464679658617523016424742614269222625865856778466212804918867900259948529830055813160289182170659988096229767874817998974643516739114476037418723570123987167344954609896211231277599871275602373725043107630206148370749205417126217914776042767678390315701706701507684816810528830409798666921980829949609332443927910515231747792700451218891609502955276988557958641674876722639620483709021855934144365809823934417024942140527314570334669555995786022175294575819632315052953503625472399849963709814073432472936510881898218094484650847040836286119803082875356774016313474384027277273082675956820702114035300824658988445740337932363148340510825300126283646692720895597467223039982906520417593627956770016135378277120330729033361933350680380142087211447158402805981181999964823832128527670218789271487882965235303733586716407805426257210878386105978997831235787445710304633166569961778297973270586582971746138123748379819254039942173024690366798537223440888093437571497709819702372534515198787951881338488520384644524148501778788530573577143325974805737055612116122923607351375178483086652047417228764208860729122297629475077005715990869498647230272661148548167668887984693497181778775310335641369670260776584082381487904970859710198763956501755817072321470616247479551620173128690711073953670502588833120776382827364424071023804918585002053462228110206162701358252825355885832999513037216917075114709661664991879369761060309796157423593695183911818384179499379227240925909988203244373280153316570204604085968036169909320289370669378983291347698596000953857432386461091499697729750326030060080924800688483269491084514557430736157096767255116164642379138448630982546843872635304845274618860090750058846389206899577756013537967898908952194121199575040311761939701930236827201956664459307213064619009909961188934261592123024916561803093239828911014789310739566694060331813159987827023464145432243415609861902656202839756977206523333129357280945200976799265133735321535381415233140004937071203781677249650392208296040790000503337528371281384127951252738092321139374839094738241999015808312899539743259268506286676438410327321548798065393385182587246981833120757488369714428604469172571921191830668473444896292580639091321894175541355157423011053404554102337069250131264080124585492648221751820165767737855219276336297994617230707808287406778395857878470416544246791397679692219767957237017621627769462769659824200514857889356279462758974597535538014369156586498102570568736094832296746668385772985093446245701707102627558748586553054760747767107812005147396056906465349678936917236481054868678851078805253043087497317919000492954019491180313658858906562105084966819404793979459711802589911258453301596274027973241219589141343648681875033627333027945171783811281238875548503855158015586745557914660982102092040932837918505283831426766151747711656452328005577182687377240961190382724591516016362640157824800846227635637093370612949494884496372869252204790772896413711949864371299034418970895390213062813020925067866503746105466948790488871276371962588669255576693917281398523506339133812021145033034578781958860795910929371278642179079446922793172510145877465023745180789273456394057381922433035586365435711506996819441382943568951124084728980909444631681858838891490034305817533431465139591525638193408845978153122817168939477683786728420254894443261285604465280282971803444431342201527366776465401313364907570538961493537527193474626655048071671452624636296865088634957785497023558023050076411945545729949083057486330557244502474432660284316709847529374835106645029779309024328084568739885387580309383015977698097880535414318563498829653374830502780294222881202458653499547616745458041511681427622951271552502541219951691949672120352151029141481429279178765028470639505567911794639073150171712465895441196831080849526785100440177461365311972446104432353622183010657120593998571417084540500372103129959096749579083971856578685728453294550938912936244660117061366248379126582171964982069404367052714502872692982408941363710704781397831674954650009474268208723254021330049505937356482117633352934642159636350359428196540207735342658635086843634864497145802824241968097192970170748008020656138811153179665247544536137283380611790724077393060147742657934297454766695081756073510871206878687376351370821484900546041631778886331376055288550589984536964188602116588218150815759653354922933399928961270286702147005208736224413182418285844908283250715388466587315089239701980959466619486903157258855032262461637431923501849369291536083265799763901049619743478624474716403665423352091677190898735409239628626498337604592823240545624273560674293011018608687201198976524348119650027761614567085311618971542819420273480162239907377987849979225447498509662477905719035537705061018325699492363477254552462531582210137290499012857939327740807842335213603247675815952229740581669438725032126449092795754468474430893791949215143076452913599649894642569791876267851758633032004544653555270844930625926832177856060847128398233272570677438424756160674532302018948810446904172786407049185769751407373532145056911241602624852712116035709435986820790844219965452312002076085670088330379577623581941956093191312253345896369333439819690293384688560480305473947818541448388130917881895060930899315129225768767351783925142361066365003210801250610023272038357227812889610437414407123745156297019388283319624927071276674638335360923255538621020060615835206486100479611181904967531941712347078656463374988430999227088953263994434256053162933051525077894057707437907871588809575645308138438620956649036032562557437192556465689575092689836395884892804792733567966836740633384214110754442714111153100917511153209388474410723757420753385980241824795200667193215028719369938375063257746486660608714475491756022081812341656861341689247522306136474470834341533316014974560222924564328893072739435705065279843458858668190726855290410953937533771532471396944028919740459040565007997167362210163691694213746743944664981827484018663809329582038508501035859079900787280075621639366503255316616892675194777380304971536939946010309070670210456817499591086526200840175500942598424172861154210687234246579424100877913356860251432564373294580264285223891973239023249756191403716055650003858948105699119320405883743876883179677099588503767940889169307811771704930793007916000954520387881516441880928212471041285339136216466112218675711301538015632075162646948001718509317526191916804057610308805925615990547722955265219772986903615576686913198904578154416592168904640654932628121670500932195567492208006958815209385471737256521225189800500455057440428053753210821665136534633638497184936928081575669877497620933167197996044272527865238270591033452409569128197855307313882845113833554438015896624617576093752511630235018011189761008866915577441730853284492364216407198812065044376158304689885964642299360585466762569986717533496903961912226223990774271391647935097996908182176033575248458025728900288059525196064601379478251868215544652052672239700468354271278946580532837515617287679790325879818112113527758151434494892215613528708806327536446149052101176440071044403392073260454616835971118682091937550353000374574683860862326390434566850504137440386262286886408253682006467251742338329482539419509152056876417827969342328649968484338484372220325218784325337596531467346661467564779351976282802642615015860978375775279815504010462997631269440079794502397835284877003331149695422930246292095415259318008772088988218284367430805692068738778224737333733444922846851833024934164955011207015577822918006585597300859283153612261530709895408079380809367566016270347808641573879933430874831770874663649356792795349132250806634964560750552657409365537627526887244463196009662219281615687096416928400105283117706157461489853568728108077509136670958088735659859543779439739373251276318203799085718436929399038791497001577022166828467236077601263091338032813544621646611274588598924036553732111199742081006649788287482366574788829966852356563320283596018624791191698789064435306571174902132604063740901055070086633624773294923457851808317059785323506446351927295768216805458542857348399686161987738722429698028497340733814430622677861287284136802380601118338872575201874496676947608847201336862933777862864757490148111941215772338308708296730895331165068299351409847186737492756222732694485751263092676531999200780445438325289417467782928142776922215030177122732248372617365852190846992496099472592063554281402087706650322727742069239296463865906715240745088906683210711076843817371255997959403588905658152522884067738075571919129261036479595868015542591961153257394706363741521836772669888292927873605276033775981654242724504844973031488150444111617918751922543248555589918918885198252793366640872361604121700647789226636110084951210871646018757540630994840148681441793467341817822207687115074269125204821288886044847672774901510821584176137592467300414710830110465720247476643603092915572615709814609759613898539303762109512779450086795061039980851271360985837207143366103408963696997239772318182198029265959559377845532586776982737386728202269826234885773559868877117714128412019988343385752198948048682134765554809574957280284659042586122885076120642035383240741798573812455151828574751858171196877760990311939490376680002967702398008797361067310597124169298375083423386112202746616456722524660907178492645412452926738679211864476390239992790344411691657711819800266328086620290526824820872330134074973591537433742020918545943441051657655563691179559898221020211041226373700145301972939724205223876927610721324364150091333173084246455877566644863716724776269343297777401627869091484406389172671289016920485178029356057722533573458950659998556499752553440039795135344841489801378854597256684064594142222417748811349608374961547541048190895994000584480611880357139440705136995826336870788309805857217513026439352885914499283502341659809001366551969699127799730942934358457676198160518123561062802690551620031689378724779823200077145895571572054256012726593960388454073763722709156268803911787360834645682586862929124574671553065353848912010645773035181920766867025630391410705104879409163527066947529969621804358031557894542596043658166554098360257560254403081303987654075468701715431957986087705607171538644029106571981067104552195224763287821391412493947379190493761378398574517027518140088244869810284986659078437667356749303231733154413094896239423023624200028766551210203916069430427544724350111397606579849379470799721277904889503085455235987717910495507051694804964854497637979657584677395514771667643872342453420729633175847547770842828836624233527952938491913238280784480776692374838601527650668899523090154815324135759914861112965459483691575846835995215226542146589609342672473000211526089591023670966577895074012748451170322018796858097106712916086824379884193926714387407884717891558765775027040178528341917886952386166908720474754902092452229068867388152147633934770763854004176482342445358772136563871627357781162350956211063443593331686628780808563122258044549529827125734001446860376574075783207204450855423512964500204440577334064523915905226028495888077057207245829551122133535484856463368582335842440585769416715792059383494671750400976280245929601329669302573906965832189701238568851352323712916396667699498422798268394426159446969451651441736273919207051984671210012020687524293958723788674380821047467966862911669956075410462873829933977592674662494937538868617344049027813693913621583491590159174483919017206580252809722194091801035193079933865047533112015983473406337112814323285008125022675914663861683196656427759245668406699837505849971639733472183961263536998358283648032614451876222760574099932285535922333607106013310544960088585017908369323899918183731494336222977598273949083616686845814425534326786583764102978853324015748578629308563755300543375741440685651132027008858659734007780176842381092097119494591885832319514238127083833437084405213832048708838065095650116196052977820124793739398336174355087635221758879632229678098881809385765569557565645402898085339339640976252961273817158781611845976411255438486887483491322242651256032796645729244260066307858530511291160373017418123933846416564141528997066251630862427700176484992678719610436123300369621387463148042884460692777985820943757512287711000345169069774703845317923161524638543450506347978055060827556416558268576330810042867749596549102495068303106170358461027771728479033503108255221039085647833920265900965386185971909232759989350278240718406016114867388775059363314741989162434376978074437198727006253722426606763208905342818178208850515132192231872655835987351065340460581473825339732671330247536603559868452392415774951819401808018218566348383835109120440543405560954464283401585069885252578047113335129092714599650935903037751662808758352099918303692834392787502846172214010386324488746028849553341064294359405227316671001444050154756273173079027133567978929900364377262080122964568327135419444521411197372906120670989846874534887997250666232170215216033543803246259330434300910773967910968258745170523599744615179141578566449898886004469193492882092659193883174091665436230398762521560925733815472760145360999711656431779202007443147144804545323093866720315831657579813952396350302512607465881190430364376995306318381618366058114286380745405310778539050801615727871281743823279563333040211037444660811583073230012760990096349245586672527207791174709265436369987192151548510116606064567710321022341725191818901173276287912954716208238328989290589483658550962828368023992139174793214212933659527263518454722434611422930083037791908974575597119767497150982958922022654197985958045895357308226425849482267463197800784370321284312913663897040472779150701651563288534506257091901066929178139614755558311778378078072687054850948006172041446549322967330465208768469043384803065826741255094521906323940240987354369271244872829104812612260649463132211855736362773598581525813978244563620556969956726951430256281726999290629986267541571784471273322549141925555257372958775199907405887776989561170835105378857763759463343516213300800084691702362868623230342348744712047102312635203368493047924989703406639356392836503860273200307591860243777748608925134345089866548319235166523221732740873935043441951862282990172008030319787443097159273285126779200052839652721165397058226358081071849294244146678657203219046106253373550733507702703366361254148119812018625875022902776982484978816625809719479925592456705465437386722439908143841491604180172795106871041263828600089788939193151391115204482201546834479812541344070685848604407778664321498872165797926310481064463061480634407332445023559013196677577870321213220473558137366446284315693365789295606360536346328166456334286366543571039777952974291869637752431427612698805166965273117925174747560679266552794858966669472340779162913304676613502739671309342483735495506198734462271699348767250933044593942456259903360306980718205380751166684138624794589516889960571537384562697042149490258152726440307303181721410155181958155017435789886912393129709641490529802920974578539462237585507859028543982962750017661793002805494729711717627112972661762914771282778835706500163847710282632443248084375357243553977853034738900012792112388186136332926960114619474538731273430963178665636446031823853774622521592585998866227606109737718145872630726285702868760486343083758958488568904157317902111104283541355099784644789911103448009805393951000181993505271803323821297340944321716842592271086166175000605401541347780200742770142155419349756597107835508566617617397032161954038726005142431385606464147894774135832834414323161215877254081780160033511314591532287755270475452319987706216693506119537449544172258527881184511289196540825105989324553379148427489556401876310176359915063232820449672213833854697516345812007895389329119288162788412136226821085019797866613073022129106607638093582456221450477826958864347652278747287681866069383190524609869973200875388288137826640841925907999953579082330746699552921077422323170230165741668294439224762393039356068428796651646974277752742823506920082847685664535364048166808129482293772147867957052751608578482977702152580817271569818342154162264163533468575811082694502910081310591146980691795067707652715175094687322268318715107064286884844295232578978456937641848227086292590506219457222938956124451235601613613770744346283861559906783762717842529116401097888697729264349751636980151465466108777321846536251702686505132566796630734965052175266262313631875306385185685572574874962035283320223297082070484777634401037924473945009137201714513948471527841711099377986864116159185374550131533035735702085150596699588783503762660718918814500135349065096707565411303083012300639584341686633655423634848634086485723500827904659792074769676251442140832726413801820966716539635956767510073060038199015091250054766728586064299978536179321587648046523074916473908552331047252104940532978540836005946122430117169506828068367403976507623504054245560663881625747738800645504968196582797004493192335876930760116744003582771989783473474986088802784089013021431354483272783681635614376138181199620712458294432800436591570025428988828312191873501297738053399633660569913510392137241782730431651748745578051109115604689785972809695481285908361516327392876238203070471972335149980807536028334665793552437712430351783943830610915874973710573658248952356842290638427551405678858912277446912428707140914775326930845756399629042070282887771645672013078274426519933267771604707362033938839199854862024384737636020658048874287450081063453387351825386901400338704274893568633014132642439557712999198599662108589358341529930239679289611616019267936314482813247446671610151828134930008448033818590348464422507042426537310473560112635761349309849626553875389479204089875774623591784613756056363065616097425180424091066958236060764676467145754849454756821238265763322911250514470552083291622499216353355446902412429208722163693436790853058533852696237554408481764696724731884862783406728730031067377059096663493111973550032899906686797276571541073520935071298203825162322181320052199812034678489116041352246320006105901787004473892286636218251948257048222035768086056825633612282360450934704675927781107050621033175431985088898459060788940115329849898368005628599993691667189499829524162308609983939054024932133601648356816807229017375772692715598346917734152040313282597342953948414838675402354300336054971188110661589377472240252336946830377136601015167364546307826471116260125105610801193354986457656557103227512084615988663695947708716430102005123059041880187718570886996076534133983578119224030055070364255216661347877757000144069120809067591755586534622927378382377036548297905319127695715023993887126283360746130828565674930913570756532754374294346841110576372865259161527024899601977477830903462639277325331771980528043591397601015904012044765872756617236311041237683057565091230113258939189510804360613818224226378166851163905375637499498501690896187230492268632490941683912960283016218623720539043977587460815273434752351375505594314958715339453527156658393999170460668122371168095343051707705951171311163865775176068602136157424792185232557851262721519263172792585752829630813350572258331032178433263269620875121813074847118948415757362197837044320414900517490007776710037385414536342721005684869532978880689606933124492245840625333455634253479343844054661666395608598674789582118323905898438873932200343659502311737231344153798891886296399255483165341650378771334613723502293494115359575245544158288326283828414302109776994790636261076235911762701899930335635554134426519104029615329005253755805087439933366420983151809163075662109547804109061828772132488802104704811981933847083933282187640863480431554859728185741816456914059484382456536648538307492661428683547420993833871347990766770527527841689696954840937819537565639017509809784050397159598701776778013909925414621549768701871542469717397341559424895830247452184410031410876680316171744012804159773337181006611738756078837673062878629404351981278345606162432227905358170411370081705041199034543830098456033255970946933278820865137222922863931165569635900499125629334801794146346705798338502087122868660659007704167179298124537345533319953400213471978792759793763295351280238265126027354867084437076451301495253289232221079037146290057218589811667253482348720055315132305389867314677966447544214174417212116555327273358715584670085704309337405012025877096376096106899724609665093514759826951250485121141481531363549821570158402929900578890078780439663707892215062938002612433167330753533221561051872745414205707038864144521176536485655310560893115897539416029627262612231785580393421480036278083698993282305860267817306044851076980524209196442281903805804991302126124019313512670214905466916603489145713699096415892984358540196829682559425780694606798138504573199421250992258077490079257786379897675920336737208981094915074151602096300545283855666069373135579446779483893309353364332629127089820490996196650094783499379783746185422349765035967633342839309348146832631774101126291096320990949956424018026133805253959876088466620815898425521790813221404776880313630562365940074199281706511530682018586410191593904827888584899108840036578132967481249598397934019583594241802777346769183847602912662911128229667909046383001705240572942328204682159399090076906694389332399530538038314125701029583082204334827894856678077411231319049736873146395263762861043174018365693377258890819792191323911523468000330547850850647994176865545914464955203676932551082708427295845723009880471022997330732060419350932656486816148048482364807133970714920648896187040109475656772296622804831531928338742751264192209028890561610369186600829911378605568369556366053605413521965657215234636480103806300920540873263843152604099072077449017195415567548098843812591606426192261335424213686901355455275052277562943184900934589112080010983161345078947303027801126803273571279312775936313584131268430727437715615495763853513994442060531872054757991275626377505314610705974264911067026200096029327490441542093102539508325673252301136437891160161453515081546866711540707794044029292476179900771214701907440260446613432900782502424495035149860990453117628039453587984080412354527251556580381487239243628929657567261818204629058111308189113924448280761331592269272206490694752305905524318082980209449017975547748390606075679577266997983679508933214440009730834171555953577881775190232134187081001967881221979248205343512250289132517114876659099150144579028322699011196013972630301380679987503304420239170958670715077056546851826252643660739917614167303545908029244715251880135753831408104662073774472602128157253185133801994848824876868331417254841576675474930249002679922142551507087942074863120924549993750727815326425176254629643927760572380219892675594208113157231078272193580596585640220576132768175745043882726657969433148178038505574805786615629775259397723377382115663242534627435515702210016032809025305499007281232243520875972517814876393811527386502049321738342438091283525716487930072915696853591479407395982621227037376089204214368959016495030326045493369834129692650571662593906192471113707232638177198443420386223882981825632381716381750958624079096720187154928924560953798436251846535514129555595616632626412162143861387365464620087101017846626315712699970505220656931603239131705021277778582947094721261391562870692792889994565562782102265059990257827230449553766413454468717187490901340717625110324576515782699029428370976628239800490101788388060758809925102697180056161535481901547683086304961409976710677852754859404734285294550467871934661411005812925879646446210055414052138956566426648465263015398206174371084328030250345066524875619932354968269421175746563848553179423430532748664973765640392815400324670663023796699627264301494687745018167821790736729579924270545304784188937395822844331926828821358546757150344349387368268785029482552295317120370630520601886579947682746298975136692457300072225386859247234251163227126583300974606014625196390321302247631999611550375338362980630991078907024492045276445589651838816390555543167185139721300747741666929403682710117629647693540795665424782601577181877299454152077649176355370391699583204409364604074508740709223404183486920583603420163835016015408415482291247692063352551550673813034306291233734441161649629878447933242678748479232416167819983559337297215296398864884335700705934252400759699905758147130615898067220340773082824932868452048002236225501400033154313569807820874917547078453303247593720142785867095500973938332077813582464359176823351913682824540751905124104880875996762687339170029298266694353311695042670324502493629695721076608003098028236900612042679800267008744941254488699363567145301999697575320141470308882888227052585001851091573989963755362329065388289714512384513462536762290314585577364674442120630345363438172680956584137591148813486700461482603502205404125412180322387852238334760221066930245090495882428610325110398397561657863777547537430898269301887958012287773252491927633479409109336933011395471994347637687764256777467521938843127256999161052989200672970028163074743893074263124339413188465021564457260725155949592611558242164299497083472965470211874313513787799507641419500938688148738232568841069911013167714680541308956437313572845441631094095792937240873727150541105465750510570322175176748804822687193870271074413542542981710457869589294901597922150415310085481462376724927488021358922105656823233601703234141151550090066497641883132684885537981298777035282087168997502908558368129962500192642641004968824928817225883610500720961580411613643956754890263690406837249362344804336405540158288971441545639644087658106319222688195490478896033879095404850264119161523742358197067567858561000160901994312676226828723319556745048140648685282744199561291613875581128857530386532272333305276183282566251121789648138871352838385898989358029726578973562541420608410039257319885953047349821288616519728717642571646097403269340099991853611679913551518914929752001591763687941761467486272025975594949151566745252766730597552907429411906000102317760466194989380712993646900583434144333940734943535238762901700437344319418974577498225859421527246298134963922974698589007943419059543361337693863783109412836484564303775467015289303589293471945490289446662503698431554372266254698581146003958921713496190508502647207234268065457034326660098985634366537606284941644530689686612620799771763776136164483510416693037532707340937935176009805448197758943176336169520900989786301127449712069259165345611335562759308411087780016378743235667790859886947726766306223459114147166870204696632293115804667253302816261501576674383287221414263446541627867894318408267200089596556669236912142345790363742029212342640193993955425860943338622764859226184776866870567178117335588296443476123947279914447220837052565989389611112477615829417120493573390042765005583885088339977636738883556666474906119796141959211634887580015711755334690123485861626381037954253763594199579886967437015950442422453134453677714201326048872627967749387835378262586468715945649966908871204919074995386402035585730148816908029961067688543789447555474354408735389220046741663285844116270126772688199580545038557872791946652450978125752581353828603189730711356944630552966415311002072658472838744098903751941025194617244037538048831803541024482470389804993369537924596384936595927514526795868027631141719313752099855879519679336417510530850327485621004088701978429440887309447124668900332783349826332017520709387140777637257778589917024476511569966843796668816112126171038506054100169607450184587509203747934274723107930806177384347182163917129664514869715864682571076323017613038154228819818669452144004729358501457934209150069216777730844807367182783929455158600976837334183962178743040381612981122469793652721446972233894369282172146384969044391737049222199392830187847086473157249456871750825407028026715557602255119871362760193719149859470087815484047724255991709834748011577110897315926318211826190509156829890849340265866309787384023979227130444481425788024506160294643184275624535341390203721662351661169967047514957742419819833361281829209191378141170872455104662941893442638972382218960509601642771551708549162320464366903398332149940883902740561773819648892470586906799403570133928923432756883731626914462373881460936227270156166611752365246673470875677256469339431839941222588327094558150176074768038500552967465478079174759111341476395575395759121488795048356332903151178372963009572578808133310080090219077193793819738353307148611072376422621899761139260974472451294050432715491812784051187867076953374777747326129264063695869292571567943489857667133138146377132628214476694371136681051090611244133191767507202727886691222190111165784230477291750971546515610000259767593019111393270363760619437154340871841951715972930422894001553418365445308134487469036059273282080074243691112985178501597397688337477774972828831980788821547410363559745671340259568777694191994427748955886544295292018513819538075663529582519838310890149008461450216331688154650845286911059245486258326358945304192552610847586349556106548602315814730290546597899832442050235469913975742369788488884378884007969753340678216769455327677930530464976442460610805348075150387866785149326007789073432616114034572330086716943750935616418507957846616896259630636271562514600490572092168661082347807460118625703306654563809398633927963198852484075882635976545638088834730956534516466687538605032699077514726729039456445278324088371534635745261953492643257931900712541646211680953212623795865443662213866217242624203535876921380170118213186031897282984704435549440507438985734734349084811583554170209179089372939028241696901267450792448031497944153853271434479947275015275649622404562813440193193657968572831500675855074206657889797860355568009136367252234714993900373672404948787535359292913173281440529648420518368178506975412236579605556674941769686658538624723943259154368702194220180474822887732763680426057796702205693749100751298180971949047121317113824612420944556683252524397748338322602062833356499898222428803391812331932506536661648373755537146432154977709042122850126442266110238109919195994436768572903009361272921727229019033854028177733424631947184404233317386453046083810874573154282701109778553010792401081677008063837445070895283704009703075828928917527191756150785287247723633737168648568257082065506618528573573022075504905060202248913633627563097088221767691378846478000701312927923203255124404172713492782366370717289769418576282514225553207295085819834801739219270655149816431381580862235115603954966549567274121988629372915964639902162604409775189806780381681619256218362321037641823194843596990800021584928166556764643720726311124658967270184257032731203122517785305029788695915045860438347085956734556180892897760877722569985836401106677011835977283681899976029289046266970066701729409616389778239337701735968062057867775066196891368812125633907370000044254632896239514177247553022201269733233555145433953953447725081666615134397651011559661636624918787325991223934360816310963063720682177295772775758389162793603998215280900597222902825581995059346499159133830465889257699516639679560554869063992044456859553622379639017751701231990242276549640834128952679817341487996605422569929276418270369328053321415904830120021942402569941907107119971745229084601390062499407922866376459638714816023045529591206239374670592941343035362986324111304769022936138416182879208610090765770611699676026376807332366192176067456477710952184724870481245895760103105738642994111700649367955892251443992657515776277558080746791712045795878091628849025243981002888848068719573017381243904263380902739685081946699982917576729299174755493122681847699876881387291677923662574572533049672751786980290845777824184773187099262536537336311129322905302986959113675119327069527305689032494095008045427727168294475147215063153456621239456207662049082620054414741438276033808603789914929349802165106361664229874673929460836196242019073960977360142789612970368752376098417002809749152545092862535624105126863143994059222664290791080469274347805638409206435999441222624464951480012632641298781652160706519733626499294469351318182707657932123836772216992691275721425308259240963888936722765263534271614760687622126154392146215680893820322382340692964750778415061810435698277015229550746984007065842925392713144417062268423423559480276007857483786476489120067964685923231114053253096642430919671325668965920226664537064690892953529322871257860177394209993664851194632010352256587810080001325878396654194481025265122692011211854281049816389831233796018934896971806487238901633036641775085039215619540360796277901616680579155035848833431693687894988599427693670419799088961905286455496991404156843219942677213052740854038289860557120801984482347240955370443712971221421249254809109482750921287302449044454709773450357981324603680286500116663068973394668621261101413029504473123772541658175753926261877446413329703542655249567797940859782461532043245833153109910803790482199049288842393414739105829480543683916201273257013151088586199500546996251429411547670003557186235229467598167057113899859975463583416874761277720617058114170701331236627361653653971858722201814938247839614631518913069205860438395295464789604594006419536467639624822786812050730282212521352364148882692969932052284079700532675813158455180953947323992783695873479158293716583509407922421068104895261059378187768105477532748506389993005529329522823552581064755867491761558897792605566395225999092053348610474955606268998355247922642758471902277864134161544568132531381176198368446447170044532029464955105419768833464588558091418571876563553033506292667840611054065196286276801896216513114075545385016918017038237565105237743903573097235999536632736912743498907252811420986346021011047890290103408288770138552117946209752371832111695862302879104017326862045993800552989057330736060200735276164091305864692099265300178889296515208550355662018361194129037478928794569101632517334897169946678461180136839006570322804301499670002475860201865997827495139112029493194157588439108841567800601503635364694383196844033867454098028442632514344274932258433142389279658129426168171696089126672288346145174613255856506628903092743107037257175451903713524559205944597265834569810149471971260810039075494282756324977040773974795727779712603584064264534008476136344947607788373177854229770411583015250480051097978994825536891969462139516571993542916157919771404232050476446811506569524518348371217498924971128282137729180965689509978928773238543911823603968268278636125168804149059937603597873134104815940845751108855145948161949355637119078809372968812262252679758463825037209252962623605935572054538736630585489999885815248281626120716460582596316076629276569383549414703914862858369010519734682825910553039495195042824651292143204203322828520679176182716072732835670533792684973057431942067338718816470598971568172064121504301753502362892037645931929277437248273024190949908594579158540889396979366105913007889713863865450891478765723173911694410831642290831338445000259146939742273174230855022952699684986740356037771620933467508190318747561954199867978877299554151393788480961021738467159197114173398763771692892990106265182935264226994173481006249803375105352928135313902766048721006314878574025034680621255712589051454736295520605783845093594757528004167981530804218377991428671925932114330270947935135175963715495563539953068231093413666587135350215607363076089632211046893769814867436976341830822703529814738542591866741735802640935586699041079057411282311059471193297861403627935799452222633194531870395469358682583178074964336788859133874216449636111098931416464315245952003053386084729428610968049400465605577627734003972647080243678326827134404047748308456449149450904051813070968220122888693747319883988437423291209552561186202749905129578666631068729140557003192778430215948383115467467504329011171561613506939910793487375363446080461085855340541803732980069758508860906504506269892674630686819679974212493570738965667744767707336917235320787256838964804109510931417367045092731594828103964279570357656279320187103977302890868371957993524679876634980114536943363248336908746456928676102796552648594996943386394500917522870984618423887549956530753930056454930946511532630600758033272702781642041170736535754274376559776537148108916433288874117718755801086754296626984594621346449911086723922189776936913962096629173139807171449877974733802305294340369328991579085480198938896141038778223026517180194449965733421410689710743566590136523347116314028741943145174067813656629807638282477993673273910080961593956379169184173325871733065860189556230102249736159791007724873679569583923332369691218341121850840192087496806576092002151207632917912091851604380902081255724351741597482689513609750971764068113447243680241928121503638657451121812241127446055210170180242914955890771410758907913323725472010055442741175389007446383894704879228692270723642213659818271359724939535042975145165882003357940072873180232369502348061441564683805162437231489591464631381599673248002731836098333445162797461542847390157737805685410196645450830812755785681130414298142619726749301789691559665356272796081823564892667194101612456426038785562166902883483389807548925493490456442799326433904329104448374486299989807907960129693618971003348060683980697479223542580296261949794016621464136265691400737264443780279766984640898515821888151649181929354009730469741150249514406541973251043107702913379302284297220158634813464108213064615312967146097767648064686098645141162948193387887558666815585536631147179211232222623484467097313932573227591558635532754928815734733627543412959618667617949332688716065316753561779186126029277034737790735081445682136847226721658078463454360578170326083155417130744874396004129037127683297511794770759640955115895634678730430950204543138771968975915582430143780860137547030087377944246372082583919356939537140457869491923982777782715716065321790784926878729753973213928761310442515523744912029310232447008127774284255692269762997251855050912291929529655012167544318535291628795076055848901245809487862174520709220190335850212819259724372143822754980094376448258899547524410666108802627230798560647563707785621759529336110587083919304768186812627692543937021838446281254006271978287025521397440504021673565547922355647088662127929051471245207729927836152654400166394952040308897617891470350649298529808847029505529391477271160962400013980863971074211415354288587846995813106287708558947092678757348891413932653118180845983950444407288826825575122350315240337947111418466385468472308238021726266915018644865780637232793177569680475289962136635861756262795051445243673743353237716479489485890969688879353837392448076913631979870111311246555699287489563412094925612351996776551476392250743272905194797619474953061460939022343132677587371306727971380898540259386437587742037262926515855564543551039621406812772717390409182724302666946183269728210624865711850661924177127446361807052528312624953197155175676231593238583216834015353233907797336295901315742897720691827690819850620339162924843803958658829471341866038311377486866544685610015516720404975051191655635999674866803917092997869080210343706008803312579976564353305360410634268643224450402412978543447187719415099168948596002448192094146688507257081065111047569089716838756956380270362248297137945203032002285788118323198396111698228875955016034586832924461995202284234349305123214425483929752826265523342494739124898044553636763088014292360416920255833571062063973507088319993026377219578651687818858545138426814262352816937677865776237308157624813961422571899972572667665599676218940935313969344275922344572013592152748947161161057796651305197680424215730400968149502596949070396568765533327961629282656446851770413236460436372229618312076035928002747845438039906083219315430805787413790287626818352947075946267340958294035478140024456030356618834499970596573618702077040545308899876387585867910961058181839141572515795926663038883033680902207182956727753964809998364447489297025074538734348394863944703380517126061027110732116876904866287715582635717120216489209106816411435974700992061188258884708794477150208476492907879800659788609004982057977341943498041884215045346981340194084645089756771757668297412255379094945849724561224776486643038014168665097467441364096920673078593942574143026207625550960237847154970017415206939447430521950548171161187250139080084164430588903007731796252043729330004425110208303410941376530609562849652487251264028865232406587380486437565795339537520975135813015945145272809876999105001133696769644077056750350321096654610288179200425263412426966596110230924443429531033877005546640689518405798147187207265926604141467362779158045937848003105357296926525695650772937497881897955304654485675103616357150573802837080923560752177897199650875720482719680355737916402797569374823269159881653451203490877014781090047892640128647923476887366663597932288259287566729836831628175234686219612763251503992017151446051391972454134021393155538879466448447646386212116437020320395459367050517399390709097634357087369398154201631448989149341920069713265736181307948025117010303392040969898872443886137737328125210635742534662375209717499911685336695172819432069725903829116913865576855441183734506700305869979396130727039014514319692431723065486081169105830736091401615145202491514064457495225851245226873566135755031011157268637269169748108016102697642879617887777918370497030060597818123916428425985238196368545716411882083344575843514212509377885363515377641534352996129182229933339761156923132983516169369586341300002945726154958020607285216004252010638533440069044605599639303648973989078704934078809609072783667980894360848306374907498917901780573981731476090753920236112510983138984156731239128901542835035019693852497729537584777296772928277683621623048263291997409085762458749215066880289316651329824578580507412678308431625130955059869047421434276458443332990145692106442447681655723847763502189590045824285359881954820380863900152386558764863489791011420505841339251779724190026010640058798900215025015288263246233948819850332417415076854787867177933221807019405804471099000075256905348617728836862168589721704711285001470289676307370123035167007818212622213129383990912463344489477575213248760338130296049481717032422679324449852109093140101253995398292354817144583560116151729514677849573328241493971115454338034333800303050826295603533784757681732055289650256690381514875172532132455078902775737843718930899089023588503244601236053633071222748815381369218883211612615489118096373434620358940622055704540505310635252803789550872455167963122351116429274931322430652344718556339960391683670022531617534491461669501565481377090025820661444857934975989185764252156228967118066825721754513560989488391175678058062532992329241694548046185854495697053428365502836912102594582718759014241449770055999314043100263642733017360910704530576956163434769980594294682580663668959781513966429882706509191111771436994334690659118522666476794437428335386405807716874946723030484827645954019967242168422627553667044866063933478890689802007930986175073988001474513003839430352802443930182454647746049889110936541201684818288412292197518686889062977688401169357041583569239636666860803229851261728402363736387835544415772317010855247603431739719481166245916926804273464179882652929563253241615693053247574264770382712606302448407562558214539718366647392339251787204908358328466408138112797275119231089626456337295937434347645659271595136769280771836860409361291426250524132696254016647305042154741050690799722329052262036034679251828632413273573282594795019021160029796352041117724550887444680692425558712193306604511577240505051013615133176427189250182789528708410370212454246588883614781082195911965911587111856894976990419792743643388237627360876020305603578174905435491216577336412462229313223685760217245752191990370370445483822243350542456601456280397360141510089152044527487926756493505596270412884522388628374471263490791698240993894536398831985272525252008243760853921821044336169794070662072427152886888791890904230300154093123887890989072187168343484314535302237304737457286770881673020039416499361722186067593697061732726155511518946589165915976464032729134934052170027892393512216302311271124305040841000423076192945799859490876721043458578453043866796158209053507710099095964895458640499775271358012722570118266526647747683044875979002887568524132129522871899786009953627946252761372160395325668543257713283791460697926451783630200559641057679603980903583064340803956766936489307139502670182562370552557898695851537335544340998023618830864315240379838251731480320694391117677561835753924051170995597931578070666808694145027478173105519714391664479427336021819017541493686332164242863277541436546377485901757131653410747867310274296682044305160640800697158376290829046210909707358723505424134497531208315311434402744381375182371812640454888093349807233873401014360771404144747324169770289824306062513232217565086761306171477916336562340149028426954106612499628195747041936130568454035852200272237999750175333573154341395100843339604979166064363460100355161960198216241472123823061775952494948338575050260798968742771231430690464278832960363799760562480142793504730073575171751267058955586470822139776471649078992264656695775514092916902560646999770113584582012214398578356942360066461095026224160449119379279037853098616956763900608749571828409203420887037396935043872332090139567577081762853016304942676715971399454320137639497454864537357634346335844751133128805691244302600220611366444938205389819982827082178091890406728168227193745859971662759666297338449687216383237312795748215917029225606514849191982293728210698159845146746506975370351672988227464042591760727843570405400980108450513367821396584195367750340071306898385108574836347330119717780497900370177814557866735293023509386090268592210578288133031200096357547904669324606418193557570301463191382064193067140582731407083580137370065816374181344245020053123529577812310667434369130939412574261686105154718800143987275889558332407803730899066782213288219262324286888488141039944851272601455090356147461315749445625238723505749567687706818023945224715787311619559552808454982275302418943392958983090675228246667659796510338659007832210047780054295440577510040110486738811419185492995687345591265109916634661117608279048041559048728723223977489111641523862861956208401950377680560900723608754850540311099479031888733688297108653966104883451163007909399728378029270679922366159917043549623094772105686791447102813542751659908925864475622812332916132506719568754507267130418961730596616588560284739951847793856324142283010063110529378804999411359140801354261208812063007096162703318249694908897388932100826493338566696749352567977479610651419444401327046180312626909735283257605276924366255827246081435463362762121954729860111196740184361154284617969684328766770029005531484214670176879567601492370720907100938026579951919554748458888916132419837195383376118068707873537316861670352403813496451694689123274300696848685546857826552382996984596895437776563250427822257624769833388644727388746694435079041903729702648242211610531445877818542249143671626455170696919197781307383068028340641466331476711279773427947249294621901517326816726296009261329831362856715518610521678174377692859952879280742318867601476521834073575909711291236226090856835483949550768482427857930564131043456865915726527777024597545574688145084865423486418337412745405705853556864634164325024541659473445934193760053280871023053992395939360834016275289501327920204431085999025637622306705286621735671060160004326233505624894002154148183438494557408085508569852306205264599339744547110903080378149938974578835044856855550479283151025748098685022386423262387665783950311105863217555813083186412240641639600815125989708287606007667301916225484014238925090458861885322699636045199964300619599556685499425928834825886096000747257432593038718408398525359949743848863844499691294811785640995497615563332561904693323244356421119228309108167418146827681810518649030208025018730132706410703970536029194659725774012181773363398484800977003572294395720860463141748239346465622277153378937699083293351028361310008043119848138591228464548970548200898336289841907302338783612923797961172665533504462242370604913217910752496174814915925727439252460130761965639035505980702727742557194605508229549886758034057616342318464127068178132977520982770051253958363198279226177136426333367824989993032314954554816144462263913564289857975474948189729659698988885928186001291714825260827983356316329181436017122490547604659318606229244064133831425789106075924857031666522430354389769498418501926792770097723558327168559644947171946836611827422245281408093395156551035683805109091926302017001158922512072559945806427249933161387298808134878321257464677418022027080942021174772400682864340962845506445727836728789608238869234609816155673642444856823317296341985205362574653512816872659067391127494116467085569744075031257143220634629243208908775978830396913898148760812947309515548954144282312081392279989735447255033824598100405435154236122391129540174431203221010563608570799484272267556758770877532771236360036723659602333844031152236864335313812715892969829331460140829497584909009122172186283837499165536379568275346405701188337461853187891757928211634522760640179208343474574883234792234153948590522109251578465050365420563541868132678543826332110079275026843449358072381395002488204237034418351745993426743152081654142786488229712081902902400493703310619035590008616060184091061251236983763588419719741758074831689664487130706172378844281812902896517956801392247474283495038758594427906567620018386754965548601583892039828813039197189623799018405322217641580294728566804342754769421619476351969931839625524873289109867354555003953861067135876621330379122133998839184921318884788488835749899675300452833774886274098692191083995193620116591317502430550709183360874112045409880283313917996888706833000262830154382705372285919732841856993936106423052759200787558866082165355676800990307702571813236430180778475664037586566221011185806464006518982517369874057883842091417033169221112410247252470386183608212689137303668453245341528955765094614937264633252497568599653502903811829228121126441569518154503737896821393710117735938248091799938604907176993259741753279714137542333770619465731663318548272433916507720432314688125071217287722262226854173864335861946070168828141134675027478245693377503796188402115262944975842125676408317838864509685384832452739136720450323504956991055292026219844127406317030517281267075471270773963222171268687770192922589551764595544364917380461208890093375617124087961657605539466630805488941255213213410696023179766462410958513891935642495314905075027554760173946645804341465786610302619912173384765518048683504079216400091140787269213507864598481481793515957687711497729185978397817286871855515275568962596800739629064593850871197872041869247475260034529204567882374331738824893204603017062811290609779218702987443806699413570200003281697368677288189655050229480492825545531049747027279929580761854865774139511223095589062938052126304379722018393513452587471782380080739552273332542919994206962194335581896991009221499924050130880333101676424590705921678599798522990540037762463307578600211571695617609001275959186969263453659145251743084917619092467857494649519267483613093676927739152357603201628015892813413685105071025047909114573050043712989683128837027253464656920352814837668962968364560667888894768786031427198140504258097581047401863253258050780035896322641621623406802111221903315880759020481896646228706663739855603734718802417514662919421819168224367697382385498591500401223732367845803092235760758713722924735217394410205956553756252053941823828542546810943800507127754980733952392148520138176613541438236284611936133355484837622660439642185569871564165203324292881156248342843872813664103535190654068664158051931178939989959521156836135625456437018135586031570656822420647909922802920881474807971424710509675238738236783134162859532088364281543947924169335784238005456673245069342555512701114118433157182403596051846823020625853854732041564358658539931025203136499617417535141802381911130668399133028210135234808251133017716832696870761834325602156559593927747754261969825683770564611387937325500774477670560646267858047711847993344165163951262179870661344295522737637849113786428229100976567935914668587883758587748907280221654138326042314391575225416293923672015268831559047101578288396971268825036370888722419284503830732157221010734975555712099647409069419135467847302226272544403053431739306744687031775539130239748726419629232152257164804650383890965408069880919357012638439153847809627742835532809390068623725512620081985951954009203752775995335949240389731589182802292189985043026193013374070291497978688635359357823078016375792083028008426303487652214891994463097680215334439854856576727008328612545925627526769626078342784375345566301850732335165223689843013886122901945787572413205894805147777233311245531670422256635697734449596026351508211886271477418563376087226886699934061641641680142481194615905456886932218911846206635949451477615114783305746861953514917244233116986682956913162366391303055332134534639620840611522163531762083021807274932885803584557708086065271284746374553476605022519400261924641894506286896261333000995831522829634391242256879756644475817282059578326006370316736124439315510134148790906714401014270277702321621376091944899402625572101979784513965503857846226666745889479035233907421113964057063374360029599294386602889968571051484284041494236281802187052341931662097484925065071564909465905827423349503128850511171656843114389087377283476509375051887414897789515787698763522640868058503375320325763638547429601324078639980571236709271010623001139300797630937660680080434371445781940732014651806202566387842780213779150578017854746381424858757851360848005743658468142191284611374897144742453113297811239691761741316229941635331380515714720728329052618828696822977786326657656586330951362672561805166617161930015411234411467958712072442470737083063238821232293447346542158386821914688253139574183731887005861429758266496844763962380137784233736034681822801166047697360781639599825717465816703380646874696671120692591040991869337745180245305082471408763421788108654800395637445067533815165173441844839775278375580690850785887635092864520091442159291860353259793225352708724840900325468094660105145460393045814529169079057903700385362262936043624039034633333989988584916834412791981357692711691559410562403392294701600729452365699777546236092459878882513109811728657484940730835028918906814341065761913951702349562703705219762353924440936927505945783199735155411940832077185758911977890692252689300279261049843236239808294042418387594060979826614781567705360929728948706254946684583076980662609586957149531752908890320609466767158646205445331789354481960535718442660506323500209142956719245049008570940472338390835111595701724851081489776116602149503723438618286851401114764690053889887185751410805844059531638057536114132213256437259133442613549435033536657292097739507127868927463259070267127803737950776631319197315237602680811371644779150682724579037396504753620972385350897864326612448483735981731940033621367047581584216396971629212535607510162019215867013013004011183661234939800330623892892861589703953893215359625367621287899983298408290971924834501663249179137491080068287024577041861174717443501600086300520841900217014173981371953651734839854145191697458597709251487576878047513407103487759485562710778085876400636803569165640167089524243739149957741303533255125956946366811291057966191471893616738360460719337827442440512295689719185153224145719179129166520407100384947864919806022396790974261897732261849353110908965257775086659217546711928361442414483414659353405817114039557519451652253159417474960465841413570172127358906830707358470083587666381298116834909453638639630214933930990688916427636644195168502549060891497308047574175360266108862398893387897293881746946263318864862166025171889447746826415343671125043148056827283318232799399532809487810247357429225388413043394104572256904677735275300196220290161858618812151959617439960775983808695198123923316569964459342461055759879423803483270268345987058715241998592470662296397048746083326096701570199344388158542188813006669109083680408168057000571964231304302219513403263513272705554838242540518745979558434616200804519814085781757690355294224367409927016677648455652453935011449793915728753828849166961389998384854823336689008862405754599942642295620643378699667768265104649109530796721150352543562979760111387143095613679171886613878640776388557866895002316178796670636068284397312590331248954998280664939834589634706340131157746377166775669300194036588651887688146455093965813385117750631507854851411404950667633967138339145709041311446052499753810761165224713758631526100171146737628643042650949906057851372676498089159021603811260657898192697965322389631739432821400341245842259150233300351645251104597739674312922775517347742402245909601942324394037291933052949543400799584975452242683571933316249852937461085708672395996670019092733521456415200942802812381973832220232861693451600849746685615623868653149437329695251977661983271597756581443919833046808312210368478157330848373539086405811872996014343004035280494531379144769369470164901165249570216607760684307879591254430609930385007739690056662390900719212595475552233934231857283118824050143645936541708393875036402867341730055804055141627015853225267415115560588131005751173857481558556476554205483531616950557681516225329939092292737434295853372627575108594495539806668542484699736228059477576818701039912162271008188760630143866946057957481375174363166542635520253558683003093076728777888268292136921383668369579148618722464129617187518379036690004627625153792691795089314443020991467558985265869572357396677741991151018481987315953862794489207402657801438883349089543935419427222350005134368149327841719962562948133312121324614587447259731936907063751869080635789924440778777149683103343195356000353481815594382696367880868580416222364659137356247378756573470995776736369617064917846600360164323578695125114677298553962856091392209170183792337635416318778909919774243950610791867003375725093717397649950995222693735602219781703558671187040649952127459618597048197378389549392168900673095187440792226297723081902431030502863594917122438463776712773410604083671665682570417572825333556674491968839687755409133923021180593890469312028196952134852362002722226069868283084141184289755202860339521689764734073827951687399690518468455233905882273414475996785670211795834176223388364376216989543526688288337574187604162281013589593646399980126184789031292659908698954111155400906330405288515811132855208467651415035963711119662093995455411780343114474088659970815958376107885289718753172513083862249407445444207042969833595838143993851853966110835038631209509531245575590235271355763610703685170313032466848257753391084276256296835529447074649285666701764990622448003641682255191425513091638691143682607166115002724686488711793895313317534898052014788296263353756931996598757569717663240079674605939942258041169935456161838659831641088936731216793772541671863207341797769262671475937160214597336483621049359278829560851247580683468136020002040842831060601278824356668689980805449159842747441401839584272681439547927229769443749697105848526238469308715097938917806836212085799893369023814110294539425922435946101702339894421143877746879266390005921018693918058235560427129105108497589383836392759180505851353494961641327098101025374770570690807676861016630325864435127217931751146522897840741459648422907070051163795838388442228251305897610442541529379537000745891649045228475472397803167836330582405006419812591519982765542442513032671199038022299371370233181758988655522319658814998547229647212445368998651478131680875051617811636255880988607587695950308249381639753197090604660312863938923199058991914992620825032111059259604058598322892912904302339332442728907349835199721319142911437526718041054551202312741369016002840244333929943030553168931125194580421010427189853782916891980431621818162389970304993685002832462136503476014047705613334691851934861089731723044763885900768676740159791163243469103577649412967112844899194648878759173564823990709236933589314945284222412334874476976428160245974586646291329423729597876461661593680814965592829146387798431321357209245038667425101443846026311364022957968021740135939774633436479012987718330806240792046548366618240405405588438418657665006399079259084519486577613752082287027388746720275210937205353812708927071252258717066157234017030996890484470691071421540189936602775408915204907006355099286832107367005449062175168306264251888501147543273290591983177746667106375570746433126850814189750545042107648847899526688218165693862367197186737017627533665987938208528566114558670316896181614911552058215821539471688246830766317381406944538724303264757484500546447072220544513794767079107992647530774494028780557728738749825482667981727320346195608985831836260259033743717879786615429826214374112991643919950559301171718736041852612761958035533879226836389253766825456975651603616999385712832940293864478300863980741240690407494068129122568608521818607261805287656958926427392538079779649185024175047728227005058959177869615256134261054761630375688251347441514752556519138641159093489991586725623419716476267288621516267461101349909718795072369557254620650249033005471630938169708429562547908469947255731633081284226831954627175234857808192117042846071157680987696517231018201209012923021490350150358442452188410245849263442229312887138907277190656929926078734003013213072424961149640576957608247084600333684027782261367794672490513403451413014427358125953271493147520826986921534880178373671636722955674507400734471954700856553641130487784511424657819550000328920921168847596205621354579053463564431255284404208537958443382789400958005657743868582838979514276100369717906891190749372435722379306328366203401137229518400710320456338856454177830243627870103717413861750567846082893263167398839598721940425580995928715844708616929438714775094572372545492840752433257489448197034441196314010548866671078540220034545034532885187772261609155862396975266546113888463758612405758258698949504793695466185109087633674738834784278732064027126837010724396053701078814205314606590402335414782193612784101712003205881563409859653802792791668713953124157237178585614773073351242756993674734652164669539934309687821068153701013693088541444759714667247616852392050894207310688305176937768295918080561559291107526383911830965400994889885498870202973588522518617787151542906146264044753655933881486638950603907795369686059538505068587000955627922113661403892091437476069408963232180919480236883539057739050718731817655955382987846982044610730213604600211555468754571295179840254708705488861544629304416385386923745581693214157158694240217287569713239354638332348388510941247748716698702637485767001391662643368841058998935779574991950134108521595676104035495219494680672426782523206564675639274988262042713756130068108324628228838412575692426911587897468333146139496567453035941934734257393895326138698509768290423551449093864070122790310940870221863366007983000362557831447007833312578751606527510981852826521590465277579786974396103737069326701104139103799073981252912424857376871761531430309885787331996972172618226582175334492805597463027363296079291031814142517281243003309941465156911391986000611444705785677359115026918065787432201773511454846331157599194473977927313028036595048971405240806684634169048316675384867724806883963550647477829641243435080081071149964783234902708319327052347276497336740563131450530885059404955330907740812060414519745784771055333003156995569052119878605444819856225538262110918135723115409936560860736117359644959748520469150729431292076174682361817915096405154571085942464761084525552516539935422314389010222112073688141100930139592384579937604173077048709083111653782422023315743914537852148730608082800845314403430911230222640962261818684298308578210177214686927574216272137405109972315715107566408352897935623185507643715862909787277535321049756019398857313614590953059298824950416684412067725326456436443906920382937406313181070741838937335068773613557855609587495307643116706048453112950215952491420024045762114691944944990999667977124322164632498072754165589214444381800754443733622808885272480713476177259923350722882311967163370293770815490575628791198088802299088140429065850491069218924337836055665924977672616337205179445126968207633552540098092784782242519694854619290194892308547204800831260012807490987512126376294246461159436612180841146478582513499882936901603199182495168932200057263870743111253201755668589278082461540181906057083873229627855184755826161822288184185039102598002667787961309021113857580581146461909852816749002333901987446442568573716879937397172621551266351833534354550650037209483689122369665735639388875835988548025973333654666012264851759511218619766160651166852740452854103047058705026499600041489473864180337833605142511132698095154319323556077358904201692311345521244445179284094603478327884356211203704840421082849490810330973034558342888241353418224952091354415940484838525518821342954438526121826721098578113105211588176154737962583399840960130920110218460779754659824132037164187140586174557262166507280336715646648804317565831089341712020486735142812269318855857777139704691778186501444017409068403845836769773977888539529646584897116457842882014178008027457816855528220880876234022065166491637283689493551582163168884252704935981396305070059290114488639287764797251046569228175894987378133757859683534934072808002349272555507058122971948429613523142786584262092648200127054577690321617721375562534032618095015193562618207369591826719483494979803518534379991247229680757949313431464803761604417655832992043656608362363506144534571871855055077647415066626343798904826744295684401811741950101697007493304560009315189233020721990139263030184773420843227683453155856382357777554123573040871942726903441918584203862447894686561290893528062488086193045802425761862288624249625475296844878162824552990024809932916453305991854256111471500331604752988705001700926213525234975996041193779088925509497315185061827134654047996422333579321837623292012790687886441308241805029170901369044785527139953849007987386712153104207241592968603490986764445566038863364872577706332705505194499614498451170534312492769711441152436517637303844352295695528001355710189910776046083917956465420248421074300244341315255979586302762858067876261124332510808788278214991417529033170107152355275612557697301269056206318734110580947332684143982070533619392569880406285386087617983243025749325610529850582499217325291695045271644312978124027922731805066197619385060844571505486513678128660384680553518545485862515688015291043583043980792328966889177102003616321042203610734764109112743789524541406796753355261187464900438908064068294782811035200558596113823603489037545974142366202833500267967441554463498521152098403741298601793510338716791426716015990684617358390595453026358312564891004607502766016831020172951431102689322350776273200378250908655098860796347511812363118341276839411337053507817900771207131568616609185196620737112492840378068717609066911848614849496821044994443277709871632372110509994735864646489998158161251460539935055773851830746351727863197170076228503918173655576051165795260136998212651442733193024056568592754730869399380813022064357383601328490499869541540102325113192950644122776786490943708927909309950527315558249164288666743300590495347962446064039016228296053877600425376026240023992344644432514914526228270787155300925070635614309390741949052028200788960842925210537004391382262313994734161521068723106458706569133352447591684753216826192400383615237461607361704816319196816805281041244200969808825666912010860846854602465609343096316243053748312812540963191184166855750662671723111713705895317176311330397579472117567590194304343096390254177719110372572270059552382691345767665141791244343478826765058960194651793526575858722194116174612696116943488809569731133999364681088223564506482532251012654402582051331944382491504104578359823122050452012260056668418262709478707655840713155515776865023556365046538993237488935919308313019527668872326788759725599657574532849216113035626235355769626713992958059556616209078295871584337125283778465179504327942585088089200249164065837582266381268635281737389447989120767686566732169679357208643145385844884957838183119771635223746315305180838140010827011485321279442489410855867772937800136349230092794208161461926661739799717377852150486204970496365653276482470547989748570491951034290841397241130255136984198846007291648541939320024073954857220588075822089237043886021724027852138082998536255238391352376932189094961838120125249913262182403809255938424314680612133346472077193756360501475540672630618546101418136418903314654356430553694148049387938278714852985535790935124300705904683774946854918676683716497252452873216004145627290795600259033634551563551573928874405076655434007240135920285302754377676269146966380703981566004351168179369350012265455270167517993914692943195792983068501928758380058699971425746222143479434472188942771851751433363885319513799463100723179353798719415485810755436859314120754483346189601533563411923007474356587493200889006817751262784267492519856973206514821183844640512064980550389058036831616298605839037857154809179032842183251284447295482689221326915960425210084125989361241279145605127515626425589811863926620891909155141193956129924807629964765665940622224159215189848880753000437157322326521894378702067514133747042856086233710146933443524045205265151547786080630640920971317658831614498124125313617227161200887250600561790199400002603331895548337386948258580474304872202553073270214283115549563299602828732945531356931829343041757264176396857463494408225046042120318364386200592878053888319170624011184386305527909383153641429948051010384170207012059298107739372933832673386868217012339398403818712953524105240392820275196486162147072050564198410869802091309019927624089186283704479608363158618008765225879372032581961118165136748566313415100120419628013606429433673146147212123629761239643692926845362575448482449395512046412010126591863550774798047834143436844642701528204384489960076729075170330848315019146859758988250706076596419103437865263863770262800411187078323505943400669429763592568516990603452953869570804631860766954028941717944595603059769947118077383516404351494469408779976673969349990494910986761023020451218525523326841439341526293668418394289017539535812700926277698522970725959271413434407627913473381643988520131110171418623922230971043180021511637277430102478710202085517562690166944264397258587089849603271752235758115984060835448342264591449592533874918655201103711397175148885507075357012221635312739697896889643498017620809547569691614667503819558199618112641091855522496353412466876530162960256220689168659970450614514726704583550612332074596916033044746486492677607372625159382911628846089647987738213159000599684419401273749275725400417726599901907979538635514290552870134772706090177747701715394310313391371467481738486012007329561820354760445912342671753146215426249931877361820174519809632633652456327810698041071946442544090201536859623663500873821449698837657221967930738405603075915245334775617773443486826193532516641761753967310687785163573640968979438569630941546136534098248583170834465030062998884266617546905369563801671655483441303295833189782203326597735777498442206939039334595780153584964216675424251945538191531894648682933109141920466805880426592617840371786578028823946280852823515312539968157052058980063004199267218412033234507431351291056578504330423517846296721720506724005249900101012583445880788979468586137066683413478553704172741910180830650892134969481959314148945928589467702274891104718339543915758617745290822024656135927370871665371586529344687102341622615071024412835414693866459850580823073386113497498691525884177517924504143637078807544934205683938722203546578881291243951284073289157870552904409225296737491318815370218097586189713844707060274853288496881004659542322875580683966309463286152553848091894147586997814051229302883981878200295279207650553447004538574301027079626220309051816481154190632782050192960350028250667424479031617695518368898972438561086807810126520844516035465410229225671815344500970546644402743243015818253131127282673813712736740641089917937171130518242174582850888366712391091999180700208123781852982570452149664782941449622289158314179325220174858107419872239103865278355501672492903852766007402292563932818566297103604426420314345612176906643007690967992464598326979060378569051917302437600687574236760232971612348576888254349936562864401254671688850122505442650572312339565538933743736769405070598259274822072779466174222114383310045541507509916439730683108202211018025889006675575920822523324977338021994690401599113302460848431440022245148814875067534507831976527174854553847972704514237090712944604377969265122257290421377511453414533345899442004706696505223016936344314704115000718625848878666337357821717718850587848095890079181642321222791642187318780512252071088258045355277595561098068861487551243623124528231861783867022640685664002469047685302841497736585621694748837357697434496333267310884602295691130545862110745332796993010455167073440822517139902433108015505886127542318660384331984755678829091889965543859052546310760662813037509336110315578419886382275436360896873651963591614809278559740551302499320902707646431607724069657044918391199772791883001354400513358089143609486783045482927220557306816627283216329284827303234473537000158638741458261972566393672810548619592282963963127935977171124347349400525499948937427395004056849044042890705250517736514133329574494574639461711340295755324323128541998768000223244160223526423873969420099447101424569449535140505697380871720447133240272862929092338470622089149609789033993513506086021096233825118231184154080736194211887668200798793700262682974761689264523877976942071872212514414914238101158230247376996924800035465148812126905556948373218268990125995240098978745260486821367911543048131654493808867199357338188132382852584732612453326014398438801514422904702918232737464239482784151673666798878180965815768438494825997921073296182739384084663607589107126565879051958029085920277436047775539505798550697342994849853683583370375038779982863193287279495856045429363186998229511054439921470498113249893089258799022849397033074161042258932898559017370308617932127286279877016721977657080591684478614330293525449279197412671407055550101216325362476785595667802474441614718068648555438009718819417737182688932829651649027895306618571351631126193540729992683731331432326031216466932007023235488775642264267508110209054291800012254869242489869992215014288359564196975892027102135984742181183264956516470160605358083586662225487954597955740340661041345404699073823616687042283693478568017796446603900144461073147661352458337361776042727320964164547717734161968668996002308370068890167316722375407728615456105023492286679869531885328754875017660375830403810008571727026028603070355552153328171450132379590611198555304829472321045664478380986916599523763943866101328220262632094086319107669929941932251557079278274686036609430090913705036029570706144359097037498645251925852490224221465867141796855119868382215837196952571468122792450319439640541646646851287290099197938304537810831494735993266927212597778340652090275946902140386969104720479518616522526486418297693694062372439189270216200825858336804521554801722551598508259517013826086304173258603428876783982093249633839332745882650723121632157578273158167315809383995524284545047433393226490047130679356194247861273495582631879736310101927041735872888417702414807539140843110959041155698578920837495309339972589943212236215372320701604744858027405643840661642651401827115984155910431160870991375848028466125486313434636966560018295336078572696413276099476438138659422471968502421351340943206004745030345971147424157798667657006808127177067328098393301167786808167309408462775395663907478292264542979110547825696343696902338776107846309949647136953740490086923031035291619927289936943545750478813258260199780027097828222371192947826024164307088528900164087463196820067937626582836961211986911600450713124898534138479725889221081824279829374969030727288808019465161015175731596764100840138962261377795261411037697712362390068112298310517465045749236242606087758573493065112157910210944782222330869245214965065297256593408077084705453917827873915305910326928440737233516513564383480630236377208516327079882543447438812347891649976966988903634704074306780040056502882117888852022167254722129477297310573970735912640906994039356092617983942069367916628250943755688861139687374936533751740524311414376476992173461810295480850118591628903381936805092893668206103410007466576621560173006784573287503512741398384206807228094706066325152405522285105268958854087871685996378057898619348269394839472903309683741480763750712466284894054511136362021605290814706985466868975313738246269557109686831482614938868024717459447239047668796756469881007918229741713233371332301571230455858404358622692451263138304213886627338114561533021114687826508266737015337536041118916091295040702248245186191555002939818390437519442856396573386941343716209369231068719721327497459914510369710398507345254511795592318451077125323007796692302904893511948450332228428967983004890331318360759646291269111096881227301499947957791881969237307771561164257335797597102433080636288791282994549828508437597680931865135099786368209166402011309729218077780482477202772282379346622253391911292793066669873586862720429841778653468586482890399301896272666284995414468846986039500444272355174403487518361998024987424179452596821308910034754376910309750572289469593025816414459388600704297444146444456075507759980562353369214570624229974519578912972078007676908054416048226313682466209114807857495178456917399260648887198302204532235973458793705868252945625840334768280323072979509261077559929907644514054448448862518629785515962365103524333783323032957244295054607236543249352185373943408004403452885292660653231518312765385369203128301833052627854720651803260689782175913963576211019994325146526020904262003773477556427472405068615387229885422882562639334850768267539097710746770517673762210622504185679514305869963777198350105665032488083981997345089853047490109857453325814164933074044540464119671144619808449632934910764303704198958734699609707289737546336036230371903735052816164272546353381309593767816626135061531724166382163264418023733852476891826661097123252199700980572642427665713425672004382149675356604756699430222426477986014619235903653449664323063826655048889479785149971668204708856865040058238266131419842574423345317586913506298433159648678597220530038772202040131139733523884184960037077055880840498673786475511815463435759926482891934136218516171341512063241042594918225894041104315466680846782625133894848143971655717332735265173455616938465131702270691749062244086172577008265357497858346933301995053561357998021674863874703111550348349395927856871372492679688956498723394831616412069550476878931969183465233568680459734520598914600353768830071703936568394433159553758531463510497418521625648138639116816641142898165826222110578577200981909669358023041243566869413477935243013582501138550271970015879038040006239958973140225575710709627668698868361811262902095247053611726007325988370312103412047527494163346826901438314931448945246903450575080709601239039704116596417671152331594043404346608990799173431848484616178891033630171382990909346806950871718860466231145357400330749059025081746005442607827075336758668753024766840389488668929754411643884747124347494782762377861639880356026218289963301253885643653816029748991097164927378119603716252368843323221738802964181164535380946353859006090382078780813184364541392629168642756343333222336229261190290844875116649351080299542170408298127433054241723772896688545446335838977540490593340996988204337165182460404680303929686170622799273309711015462627974235985219846955059666163450375499576713501395139356232471151959796987113658001228403036579779363907834518453544211841068274684546459446784887212419002453354520805683483122179946020462551637446414220415535664122252276731923322064023550369312283978700181864520131149820766844043507209571750211525566691381870071352983433785349227748983547295995009245053566366590306232057615610135705058745364160240702740574059259740666199591798281261396756723410832821196382477663935965411180510182158296442255316692821705227120334130337761274016575577442568119048249769199891584064002417729028847814266526208548620856121742199118634560082241968231108562840140931291158348553650251252792889471577373141143642978449533894492840832287724586445469880513890545758452558639510436479668688115905864229947386737212203410657334726745766793265154312571435756591050505037197870337787157253187783340388302116349263533532349568687844366953117249559184647344098915263313027328929554990964262751513667928085402307977761657153053868181221193398555425863357504942728553184200463251385983999961236968788772227176256573993251319028560357632437655293101791556133516359156966679516667695140146535555152851260646136492014877220353156275115444429124909892915732435051830712158799874856146260030210563986564665796926791002705003283407873067123423897971035018217209333636685360051712182824107302326271341274367140228749059892141337241673523029162582633855336121963211613447718600320936742375701746596467923289348532075032792211125677218141685932770506409527126132813163665562035297693463847662864866007803149808584622701348685028890774508063224933610314311003690070536890486171999078561281932971375709516134575794559181431956301868704299304385660774096624784771324378956179494434231660210726896937597587979060404877294500485434138026383150356467368319537730062775942187085057543514365378561107707005360498954375647280200573961156736535723554772025929469466361388691740503845400866223176831750218516236536692905818398534259876909833711971385001636207477871089180560499001197522715580043235645990147050468070066180867738357877575533857726619887912567395804785876654533917251292046544943532271749508972871064259709802496485550717752686381498990998460149405946400999070134665425375370700142226028903052593545829923467136901655389528150554070365216604387862726124919661596581167686091382451397233347428349656208925158690733494629936092299135083018271791516090977777059441498005958844589801133024490107470943717575572763595632271912435877532592552600985022741219961163317807564435829901844548779428455651029192022159292616500198876366198802992073864087969104273029600935723199657004101715235633327703782993716107857486027804554607998783624066027744041797233943351283151749033465861740737137511278002141731619319411677546611540684297791995051025093204920372435191318244517477642390292738541742097927102889508267730171113330969573668057073645503910067112712572833100649933039000196609474054086569451936876740102306479796433703064334227988715256304192281219079191092974321801479514088668307577240307515874120722115539781319600515049366199005748162767175530108229592195583094897716771123359822462060152158729710955211626432539493472984395318145172547883905985644541999682133163782027686832708201004314176409652085515613257005930070573876956933133808659199431210123454603568974594581299013414147882453274129498411975525217465404515870523945834379810785242502273569998723668635603396264866389342494076496905744383216736063207029140477845638422459479679972396991120550058633208317884977281962891269469458719178379040538376274904911461285730119734359357574223371608237658269104843133620305021784958142608650825913270520556241848736842351108226663910467403636393636832708130412939664902394439786930009734125039123789852082478180876446737579310312820387448202203060982079639263136679183886515074900576902336459140812148194436436485783860600374442023332817702647330774761436261238205161489515172359220828617094300275188795092855595359835140117932319766191293557252149738789646922486710588320293340056127548179953159268720924429440326288381444960743904548902550839574106787779004908107797917708202412734501573541651718181425808048730487647785512599299915990202303786144946036803611730103322236028947449227487764440647422321579952409191577291792008485043064469890843549003714140796504972566969480732389819096621779443945553213306619166913689538037208716009014595857617196575965665589816039532269520066050068893885240760912417400079476539922029064953589829192830569284102134169084317726418282097921911426403075277623830653372103719102051645785654006864935713731741674300006033383774558986584717641155788823641413241143373705083857102570563153147409909567225010613730971449909559806683686443628906966900135257377349525904488079156050682392926978584856745774620429190775477116977512282905786208901362611404624078536916008439127260621391685884778785489925027852039575708213528633246640956231922287395674845746541312956177232141088978926629594253996330255680205215012204801299656431205066518770917923385499262741768678616288942021280519059596727174093667420595878649974562359451594047014668907945321921456944975104861333141577293758264038395881053412301581340648748717757053123506192505726573966489514780519319308338746087688357869063685246499473707686780549336358781096190330000762904229539093562245926565788732173350258590314580742201426558820999500487504718947738983493354391444839123112272537178402906025829334990026402386080260248071721168034366478263540046618691365200257129176445201973214889193667091444911783073055525612370734954063948636640089320655628731853779363259370754821981705163707685422770422943524599579752113221216311466126001772086337405469028479326696062054569254392261092840657789417294358209306939547238134771306610057220642519290597983844108654419402514803072736889377263380653027055145887221828651411031177301909781849546367127914708503213693463873418479025384662775550995478098995692506057485306464692917416198543350813869762007847533690259447715409311262393460470493360852028115820187790645880222000483135957742508281867809281230414579416828444914371996306046119633839629726569198193137818875975085944605068083786187805733160167759926320186081923760328552075364270589184483239005926340255613036429158852474909809044508908392116072221574217683214764496486650457416866775455947744185631993188683177795261803569440338710722155625145084782401623261823174015411171449837786226028981506732382625769260484546984280192901427571856808835377819823723513613026426848166519072910104268076781268430474416401608288336210572769311955493666478452653588398357967374246811793206674616745295813000513384453329936542958767152483375449296199547611478075967951322464797950037521012954631938441970608319220691499474411041879449694162659958693893092073123208054661349357631233550310906689587369692369618863034661182529865115149487919528727136779900459026748915837319016284664275897788645020720383169642668745559129456237324997650649750183349503831213298146125795234664036227627436553723132521315157253099883758640760475353461260206437214257219770323642476437234964304817461094226414723064844990949408256918861711997686321345279249710947019312394512576017110904254232206779924878577128674821120467365073619411330095169982318720423840384705598533365245485989125135051188833033476265411975008724881953145767730112221860359208317690846036492959320331870672988692789392919369304638163805824733732506056997940291828042786749093916637434222826585679668477279871071018906070614897423140653782142735869831033340750442468604407181612953797901560271731620840488392978492229381047976174637080245265388838492520038059874318271940266093425599216472661326943627711673486447767707371962696804351548256629901598210850324014674691418355428946266283683068156741541037414510400748181013268015360661955713261142842457599525529265095633427264317980460455885481524530164058807036932280658831484258705456449766688750491386359168701765670975561374915642314471956020485050696236134275352365584190973322456485999213634849514694962012924721839723669230534018753767473545880816226599395913452790169835558345670502693887769218346792303022226993594284664339598749387646453265506598914237547840056155028660474762032351085631815387713475713394335559812510071588425441466546357430350573349526392445886910154099504353136650621670134207664242446275600557406213109728252003867276013595541014109330592551064674327035829259474986153091517936904695436158810024768368852491117137644996579385583705354758664258380777376939401554354978249811326034321902667661111255327235755299938822568481663599137262427321619159828184466924595625458916627452658139170736357678388553630888865511015831327420619917917559210619054395108388157685356530535130074802260943848606309940823331027530927322708423424821055832660868298346030642382856972329111270631151636369403970196727259302580242228780394856686010923398119393908247516697129503486692731481683821776518190938464127579721972642696464569630567691964591169241666296164514089309126583107761416780852123086891810703607502193680953503159759042469295005057137381296288117368175051407549322572502551091893732699953973912198267903369954216123089736550809281052054614148651571571375107059623296519966009768294885784804880329833399703366138455658855732508636373577702578545626281471420724669168505239738577155177391615408202194610110909718493481739042183011713176352319738438190100076998134593759864886482810851609846609414464304897597801717453888683795303375845206196656295045885484138928429089801758288438034703056851649717518543429388644721633285013102505324117630691758890424637351984322855371894615779713610619696111408287503055867177631609468181488837167072539012431768053732353392710180994127068594288382786285992265852732988685936221661215826851796078079792343487469464490667850381973827633473749090762142432003477605369873326543827770057916924362681157287942999645288725531212418687155705231726906641787673389221717605252211583757388225942910959780846648951236188301535465650777215218969516224253009423786620686031436566895145189178715194799676493023749654645295766299859992673928632128695219546958383950876719272239559471542644651443515353331009309457363958581692667969686739051119845345551955453741054139456689774423948664913851290410640819145686999529512130568941511602507458027595937545475301405422850369331060548756194431349614455663911653570469650445216934585274307662163245512113396413185317636252899457456640669560513706995203534150491380513976836011669217133481337171856874238993427836874705809053374239888189284736856775874485332535818597591775506794564390332955248984344073067685257603035445764596060860668065276383691623501321682178189791557665828984896557457031269635152203150194520518442618894007979624940782884449277205610822140290381364955275569296477652883683832900360168550181443184473395862457914953437382424261246636515254398972409372445277912351525429642164812262973172746935900822797337885487973146218947857640804949808617769374351302974702129801298033491993539694121567998474955402576891947504082267944187427204312867447217572886340772378274420940076274598960444189415297884330456371128641154219640070260342542441196348115060322404425099947980935213288525288906755079166385234497247579496403680949420362663629367236250039291334528768684641524781087265434067077488998616274012013820588365866592001264736001373927309075242546632942826037954320884824956444018301308135840505501375967096810030235449731674674869581161495673165040574692103710683420261641268035875407268451350236814701256606454048389958168177810872336534611227581040352672954427526587991535997393444736752973134936669037200305862204165581016617699560133834436042525366405318986654979467243174415125334967298646800082807639720754127927756999920256243400885117450073855410314475209648430760475265278881979031817256929283931336874475727836820933634145423152370169702353598763626891859132076017404369537954254617465957529653792049926770637444933538501219344344779273021091399295039556217561539137531380435617416759500714506873492623729188963684865917029590092394254841495039782642034042382353242469516560297380095636179915092557331142720740810186626483344730305424323361944841090355629563406328619978316562281349729722253105307316765509094304353436964962387773116124129512902303896708752163412131319840269382285159749431255334095280747874894548128684161438524314350754565261352396525245853762739662660880167058008590795525590447576405366901790022751158790158374970371050208979935456490324625031633737018182179871640291587424199677838523698985689895511486838553757987894762345303522829811519041254417622832343099603649105392634050404046816610966641707752379071272153196910901666580442238619615693567898160898454911332985160221929777007848866298886083270472602037585744614413701658620485117074275982815912883894543676852851952929302628432498287217347034563871078451496034703752583361810904072427954291688039141602540065017551398661545533794249459899562749889701018720089214469466487933622773231873354664676414129915525798702395791693504041795035638168789475916960433379124607401448556364586786332308244815091618888889050777202504806272353351891582124139507651929757808406109390373877523373221142638470705969355664174146205274084151854798024131794103044004231762319330958049461913290446297893974183630261000039942375360795500978372043663467999616260420237926256843561449765117445008125347005659754017392873807786076492737666025330917965332352541338641290289880697304474904863402842317034432120438956490583229368923600074640016212929319793097208072649694277358384216560847372961332922831477463000909016553050235433928958112977844098038379715074180459177857425738137269234846325133312140160318520991180230929862574862753968256470974681501523746216443207583429519742099553772313225976245935211912680453123393158656631874633855593313065328465220757566892493522467601893895239985286091097529426467517373992656865536955330125346956331641967011249928978215123101727811269949364178581804241016358581504743905585368632020893399827742398699739619665417144646441340452028784683278309734401761623847837558996381615282183165543937674107414444904295491660000023873929043678660756773064982753876286377281235881784362948195533252305398525708606426065374569576219378054536318946338555241752848413179886655355962705315118526909435567821026592531291545001659158500828141466629254406051136304069442838432229975374571582513114085733950621828918242466567335076211844202800157603946420435482269799123966630883979978405644676725629889338601323999765122489473675219229970977580877115593741118845036761195431775946819256434246399218301434586040228993949050407040678277929723992048554861209992282466549628636030454758711463554184274740537654963076348339749586069978046393312630659934801137281436476724880578489198423252688549396217629300317136125077320968899871321205306013156972121712149554940081067865678825068568246212044040812524836869025712150583780919164965857010295745757680454812258005958873206286163469794004441530162745555724384629476238322499987647957756650372619099924216316195412691715931571771851771692060320222485396738385923481046370957281384017583637409241990416558642149583370353167800087614465556438284826539412130133474248607434861132857163522218489605010406964464195358460090591921984343449456423610570054935140960980768315143831868517263083805180991590849171473732178910177293616458460749485513543100447054170206696042643359290139166171801517307737727637035938543960910095866560094787508492741717147902558667522625408201950426043113559568619862485396855599445606480639116607601680703553982542185369667302696538200660756226626620908851183187841293542697820764149253207248880660565856448808338204998707521700891344145138326206979004328202311565030629825207530391656396621224609891079555092811312848362784404236654993198788884300396914685431553532369641619367362761398643663365031536908945383696169908787606930095888119397335366759280694890957568100467642715788247955236667982319980426282776549489387490751808636634632468586447296045442776171986812982766575036063088837100282650318721165113444634930321899898747806576014548033186803343918752908120680522543648002068280123434889276189284903026072486631251017988608832076765802327434903159773872520318075668486171314075219521687471361890632810796439281735396649157157438357292992328414890868506884081380165678077196149296489754958973752771797192202534826897667012516264595516185324001497761174883258219655657564445337718026704826871161837883973790399657603430989677798551246294805696764724928786384505656360348755052264893856598351193628093083643939055820913684881114576676649399390401301312577714713229622134648077683428438851023900709546609381170897767833797403513400631300640492954656578943143695793102256239432830325995058525392079176343365152206930862668206225541134389846058318922302903510991343755905136033394654614935929256920354110781989509336216086088431717500294593430816518056010842168963899449258715487761762523428615974149753997233558904865796154691876156378310048311086771871162080054768916968876030526158755317809664240072562671235778702222644801747080898635860798762534179944336094329893963002707994108067637661876355014446732186592996178853901347803765016724754115504662187675055358083021559954369542066364648734256506551149282630646256001969620554673999165073810571986519692279066785924827937487633114112202273178873233848116566344951478378273173148566571200814358100260845425931676357878554436438774806599753678629494301704544199665891773630601310164084153693917057131413813072570450817150223159050666110970842506381419063596083416635532413093630407929927532793573730798196206672702591554248619807421064805765966169903981990478589173189125881805414310727349486699756452994346136003297688781014109720953944005301369491397583010468967104508657942852672703327274112438485745918132788506654513951855454868043463815513871541890544609312842960673436581775648447594752034119032334252125557656833929611414355318650233917046536127716282817784056186619147778337887085679531064008801907721046032206475811631353116310876568558767162728956309808680448176523015084235548286153570781740883554903882645708564058407771431782288587357816530846450656419633610460504576603462780985175684603111269689018926306139638255701909838277441081683941205029339719382592276626735660781273512076037719344937451843433490973421434110095866366505816240740651678339162164236030782113054163647691931353887365236780629912395364023539009654364170786845577298614222326725345666166992092468338465754082273804721619482927992995503766385770935242004465055275185455981110858075926243620629063425330499933313157988655179229329063967676729666432017050609468351096186506217317896940604071674963596008114725746749423890540867765618802330676847133533212615633939183787547883785099267216248554437418149566097633926211766671570563450010987100983991659472113114376437644754830048036663378091960332798884426500737587902999572392625443083927153271898602888899968661154165160517371067052729971270835027401763281440172091643872350019386208092471126428614689046497068098879975661679799378346057463117650360128085351139328770761950252513044062214503219904259103010463923645044431242661983629213003591591999480737087279015344285188293013037586636659345853996357169060070803411389598644304525326372738184668679247000027812148382902909716736322379986756803951680337066368681447029296625529724302832709590506428655545273697997413678945842722516447761674796565894281831045767323126292838678577151948143274166567057529494180395943536332453437396998723552443171756275244997108514434146822938970670731462413786297775226971562755208114180522083854754718107017667250607016763979089926471050726267071238463432516944921906074154723975889753627224667242072560893087784866601110641454090999395879701954230252163163341523975263718822096000665876207719109333220556008692935639771918800901286509850216991888027637059869253071597679826736998685367548890890876389743532151191715701365463718493116012379780733596442871779347646928826083417153843689620344993588070302838809968930910173641354611960201967369308084417869322602593335755730026828353614806384059322926792890538126788429439266643919465149020029405890906261279844754407100882690559958202524079578499954885015713718835439646669362533742426701966365409614914534996277903988476379929499807470169529713514998931723788314939407262331228262362937250600144901910175987322086605456657738354003987747684131573909832947735633634935677240306146180526417444493663393980636495542244584222051000797608861995607806404424611388157932495651283729708668830901213895071920181330036421191222715910504079925823526999637696130889541914214177451932068249432860983384687977049906022364558417504079283686800786950183156340472827765030811011730496777899976452253654965551341020261595221308076964562552680916891104088541343652125301166553033606640909117893244988678105423403360375635236874849012915316944355403093088918761790767711301771535639547010083004097479691945874795300979843728180907028389331508543565847503948240671025459296970257145902440623822468134788343766073014910517345398861000748310474072210395386619781140973053944926764104085232130596916028296744345152991789662789652267745963879488286245728374493387776440427587957523475263412390983796237547137347631585539571073719050455829007981967883417919575769080104068941361289626805469469768447616339373225180372668013886773098741340250962339090462577181000643272156905352865287871314277186862036448779069981631247064656456591351727988070205820090904789640927317972523746022460693654181857436364552596638158058109234634517070052470896362209936465342566142054858663601666767152828814936675575928410361640867218464466551220832309621171733409009672992725183457365558085514795172133494753984905504740502262363284370601729458504227923067229412934804107205962304984899470460198038581330262272853886669207811227567423811839341585958494706860444588928053604112790849216468432703332273587504041694003150020340366845779574362274398796603361586291345067484159206208981228458544023217279126030905085045264580399783822454378460241154718769049447476414919514907020078220474098218570056602119171162799686414653518940310943053369015412760126181396238327810139380771130570934064627458661689111350112705523671690677513027068854095285018275377195409054929378410846815931676382271669021724253195280986864514014819215392009701307531967242713714788505709508628983581765212117441351885161260828226314852614461412185375313302261744898526014026722289214469938648378528947260206379265094089598898738205618561254728051447891115324657940253750080901800063361366034984964482569752444807325308438709118681483288462722883802712258613244351647207850105009127053328231036781496732627607770755031527341469648775994132042954598834232381865184259953654192698585435629366642869280525021103718256937552603577281740521064895840212820651087235701472331795162213450851749946425344795270234821162632419600105556719504347672205867968643322336773745899984987380670454413381206562289166015477032948641310057446273520347879862478695285731256679718118864055413797065828576514518284245449126616787294731687173211944780356806489433052407268802011398350284433441543461897129590166670017481662082573803609294680428912375470328821928594782370044647225205738319005143622403828707936544437083195072270531017060240285718904341542534565753153310453929503380467080342926123931056427576292399222200119553246567533365492218495467769432955968179373054896536996509012626688742318907269465348938419338779174476760074240106681592199634707004324566764989349094239815347809615836772242896890964851144192227534252951049214862492263772324626458713933639728091842404313567030378806166909216027894854385481842621625665097559750585155637213461015880347628665799293269887841433767734163746831914665027294297650987536445018931189788161423347697026455444537671225635698703436629733495445376971396469749069144563569828533159878012038317826408605326283085592472871145016460910900834866071690375858019182240529217160723155077545806254258560725550715093697183961524548112652348374317595280484074370751483740872488289570463613332389720366577780710534951553267423651938897493799236448125721668780706193069032136532576957008819437020113637123051375778735619625076676930316481874731114676689252663299530019741063202924241162094234316564136525486529267581097573064499996993773441068672015764953733565574939445147025645795563658016357964961116362728184896903709984107518139572822521607668458027505105745717434255234432756068908451830193962911626093235213032339390579167479869881328910464563047343578455558390231133645910390063892436156930027928625252498887117870435624627529284411435806618247574668409894713977708564142923703823657308153520291378358474827439431151686785447953204414123183758328793213951544238372042918232361474891616063883834472820422965037496472015042050451179306933780265666786829226072750139792972805035301557404768388516659402159535686060461321402161887498569153601471538287649817521310793171978821408056299987386198171831872838650149047409031666248214762225817454684456411862155134336748598418349536099024922537760983526514020120424892725070223996582328509684217055222175245959179021961003576012208099665822441588769367999413475963019080900754391702442743111605923012912871452913083708004744091991131931664471079747177700603916036046303218204012491536392896811237543446420093991536731445198705722693755309863533281383029745692930464191108516755890652126914280091778092991336423872035834701425018637451339049057251119059416621429343000252075784856845028871262577294814910568680975047929451145769225251655783974206289302102562654230982472263233246178296353508765359825857546529006841540992418415156220558661850464450571592375831922684949781753444380896854620180031002624833379915735410164232493213270591853307335821951880880141735923059824599780588928934875256747094834257494376200389023480754372939475484677425718660716768616717085286719203397111181415599174185875041456848441066686052393126020517968675661449612746013973114084382196853096347444669300141245735012691262717495832023336101809966789599582187802666380570739714936728796679923492252403041056733029876856004530079312123397716218855628025900274182193658358959874064466943138319363754871378321500347243093139035600279149480508987909481814210413724216291547848593758099285994271598448618699107877666190122520373971799636312256536250863412055141401602672914031001729368744631543588806548065994196148161043225995595910723979438689838158078708629273024146975153723944452679820394121786743945401981255152732502142073678260998116910909851439240153547158772996771596191726766519733554760820120887626515595380342735593368844541489556388485644722140301947901542887240954730815065527476262410676368555500146269184909525562433093178243239730880026755537455742703547780980177413200798634452499732628067297327809106532331953276306833279388522983241811351561934496513624949591768547160619993381461481533929563700808998075800252012317464052124645013724575019363754187940520792105071923223119651002626183770951217319631109887340240561218881534054795657533534752973729172533161027047012496211425515256385926155425604608880424586575103567412974103859861200517714351529850307216148026793691030212043509352766742556754278404014518253828768593823296583278847081044749321851205199324553121500279030068256779610234439201361628087343942336574381931813793769109652724067500901800556771974354270409907800454059735797791024586700321677842689098836771688339665490301616108251667150544259448978344969695407547254484057608595010776248843090751741759392743328415996000469222398025449878567611695361852784763027305543654003043631468800075563700221347704056747284198360157873291843038376627341563486659295546567393152262146929757664492191855174941430441928587836637045589034660026680848329875952702581558641063276734907257093620721406952513767961575858148271528103823715352183799612593481505689627332763390577924070206437162304848886786015778503791187196828309075331741333074601952448898907620567848134969755776177751865970264077921700556981374089766311027070418818148053308083785744766936149383180992410921642584422694944307560527348717056702147203160924485055670794896036921437657006758875549288943365334434494630045342978746849982673463738718341132373671329101605749378608022807111596664125512266676611595561973946997543321271712718064283237793937708990885232331352840177324440018766152529740824670608180748407598778373841343212825458170586363776520299874369014002667657968435861990559624333374001633743259146682872550975675131814967410306737677261221191525273759630452325541256700949555407830085301319663056416043718555367377676341093454200919679547749889153512602824849592602647935792457742666079598386866137225099761778443789189759915683776639028840358492900700947007656363282294294429330392329866833620061614845171937472125126883624605242814462926613688280693701636123234323877335973379676921440506441077932695661467112439044163678828860803919892051208900513937448475605960468860191592249434279181242203947539571710723223292202101766346951585818303270863558891615759289110897377628953492239656446161484602517886052617896210377983372220847164654252550409555896362865318823183376472866509408294495610271450201446070233543953403144465889765996786340899330944866510368011745394737082588116735752733874938074215346690663583202027117175745870270945184616635715754312749397253836498282605866405337742624544872006240618008247136816565201456953180076635152103969687284918555911045285634088371650854969661115721551434167543090463618602167359227775386366333260627273975728492359845424505027180207971765605257151131037270691487014629360019562047374150186998301621658883596834735145567662717959036759839215855604836997691175234628402653901952711374184801569752340841585014389618589159873299034527148561512082411637309214108771517404308218673227894118630796743933560093461195919640234415312470221805692248581430028648980242507727402511106138786785541907784858989863479343107812004572166047350247096226988485196344253694474435811739156281040202073865578296807341402635881932330428963529599098731403240603897721661808305560778931072962499058785943837287277298580699679691858012973860273141073386815774642591630794387898091475159078665140866711655364941588679207105410977430716425161525194864489831711900016576603302926075335451689965314347459660996453685313829051123085143226666148373932647249226191018929092433891712172128194814379587869244016728749910430789483567544293801067654834230027966816386569344884832873014192201190972686604519854215791342087078096506349051988864928160800086682133315568763512657878411992797825253469124604179225879992173110974363341974058344272008412353524853138431206009178161742615488895555302305851123965243250945480065411171202877348702722755243184117724764818992685475769254182692048248733053973941101157280679549397475366285885481595465996633241301178073732012723358379569607032153955041133463133232413894685417421762901332986597709106479879090570002632220055182871154774378518918594613258962547732378358455326053711122593422944200658912333188431637263838242966424829578430861649495010072113452874936285826808085191262043443864787725115816818167671941061198311683811812858629052773374173641611171887884238528749058225400170511292596553055625561066851657802462700529091931708563915564525874125521235180090583741324850021210131084669903454201085561060972490708921897925708522797787436861766593088986043658048988473367123589688954131421819302379975124911615355943142291898224336777871802314229793178763081413789968046925229137770892607810974403215634399818727464401765169611724152048692820958335195183009440667065956253836904126916066232232927011727420850601661605304907204963066596586516240091973884555362962815255359844764015758312408573268722632178385018421683854033815263131056018766645817129795342727983498517351109221510555773931837181082929613061032410586619496560707567068896701546921075027913656372201822839365597765944624371391635582686798345977572665309650230826597098546099668288095080708264110485726700313077939103788209700992406610491077433364127159057217264017928304882911372952280248715370030357065564973426072513370777106582255579170431780559976373644366136797182948993204969899268381056408034590151217602137325272114711481102660671923093084797409532245687354639194730955503809436981942830186593161986387476476577323291404826300754022021172317732817760121160343565846066169064044203142866463976878026701424468721930470377157136605830584302812642796526922206636886406395071834425982671734980585133487397194295920441660314980729919521299407379787824316633771069439279677776640539621555897677668817208405553836895475920866621868593514959131296045113541300243234676846423876820036131559516717294448163447079818146539362351054463182714592629740988560078411069991327506604150429265187194183671931715760074769572328975508671818638909867428077257127236791616543352407412656324315845401554168608557926543027463447474737587972184756557286581813659704781210600033392725042563000237712163509545110074902108982993024746533203126251008686520640116900490063639155200727186976342497260766784792825603036190263853445133742570359098733633175876547323982702626601322891738458903377473083944459740545628507586184348825675246627396587118664124303832648917000561860012045875832651670986289057531276292292466148963136743960675717911432172790116612775468970268097421357770631383882409539590003630950791732690144287311303006847381329669841036881157720051407345403340069818584212359952285057854554784912685616387269686150859443601296917399104463241307006882916476489453213874942165710103715465289947475359839411650558976324544091907571734657927679771472589436027600346313168137245061207114172882504649246404695615713752225008197132568741127798786642956295434685078045016336007139306279772834598179671654898149679588588600223333439340581910271175588126462959127937220917749221810306594782234860344724113612042615903807236075026015394864936652045452105216385241232179073627938699390162005032522041642590123356451895735587337335652856044077065768538562440241177311908008695350117626174948725947331624113677520059541472057850858029042922300727186092530957308001870038242367226788924416540680578783246528735028915054729697493486279339099369264913441143778698746119346572401843854586388445323570543547044120986102852222410945506561064033979019203732674197808831397214771072501396277323042586437388088635138097832640770002417477108187199393007695574471982802290463270887238754441862127323997742343398206293835072416017528427809491936332705650666835514585880231195654409409056055193759529371448782438145128805699155365303259030639401707858740357245955762942044148975997259129323339153316504576261105218001599041070418526221507506743677957673355284786473170178364822958495551813076129720947795449667337618344265910654819184568164775838472962817883837894468139978960321872026950552973868877568960138159779579290086076430648875598981575832763677912686045271632944994372256839880489393144410304526146697304502584324575913433060779790937027901460779824858918368995907393874758349558073008201912882572941725779928500170103341643382803647851286347619265044255188419252840014326364274740319748308711637143159078583879909063060987406746031194607165833384006734594539124336285897275947632301603510976144066471057420066120697745371474032891184450432739708099343421703788633048887652016690928016538953645413345638170434044245180752622182570533242841657933834662337609112580594895947660626840791167505716815442353324874089878919805976103875791318219082089571760607260648689510895510723458608923464965095888501427539426253156444801068387332949363696468188851927636608146992412466225764131520369181339882525325105062005825555896098384631459136149095552426925644412606987713278244798571640446102153543509950268950667912652189366366380807486316401827184202272841129653251743568167660747482418531118657713356344767119379865760404309281454108425686312109127818182407158428145077159296310919587030593889530915133999097221734469243651530575131290414087319213188932787695364212372516862804459096826386737983062028039228402432247418374171073809213216849045728196744246908747049007994677904823158227123104651761336162924398274655915571736698147938957578507687261071269857711688032915502711301705543575373751234549707241358873756276810409777316680759874274772000267549270812103899597834923547690972455414010623410395128842730200111987747429958610299386326729688547538848584642360811053388850754345375598790748893555099340847095528996316256201440333434191928762170257626622317802908736442484191072073113734555478153219193494794120542891723822658630514622509090370845819525607120395671127780484851140596829375203745106694650402018575029012943766688923623899677284616318833280017921533133588625859794238753354307198054261160572656192228302282031640049739980740515774091886270281024113760022717084533366560775332626210495465281995681741765989929615055414767908009669529444014016121749533296414382883986327828009978374373322978959906330317190872254873443599378846384647832411168497164313507982504928530993097444143292013327647562871631620289547895446886661191769714083675769008208656470827623755254496695869068266551939714325242735317388654086264223033879969080881193846491670055273675135323426952929970606600689111518871751507021105271203378621488816213516042617249896248871133621611852043978968912071652839487876944924422096545920958168274039601195905047349993717939924217684614239271232584385483732149654682608680492818178316951782378673473834757108258104563585290047217020031180266991062941628749669089937772925657839903922467277515330432282488477838207492096434924543101559905189253634095096891868468406629572662339287732827444895957211103234037703953480191855027820193403359809370002539715321306983560751297683784925826818373571477622160181082836329675495162651673820028822772751795879590512296198431729812746973986315265403188466745505631554417767159972703666075098594695520574233510659127339466579602540414762398582613609182876182643119679396431110122029923682220924698676349094923038636921938312119239009662330606747267480470507856864109729283345497710130246912277183320124697398120807829865950584798094199977450697355624762160715654024983681783487270268267045615913465495770917196917089299730936230881020681524925049289675282355013816803559861753601457963590164388223977188177290938093275058933024996024660604992865921598583631842044345747835845174888139556364080021309945910534658810760736837841014398923708932042069348313468054744175581040747101466015714378007402126404414775247331237638148887285226782545839848596071116688582084663666790062848827721309217956765775121310103367477446374996196839746324514334557090864741198401676122662502153381411253303511377027353143392403111352055465805723673957953801044847187736620819546795893514969417344347983045356404095344946063395614406397498575742931153615961090624823109521095819289224400629698681190003843528233162864863387430268222814150675418024883318500425014447967372269303346772228714965982854517885396773753345793867924370270544443986160149244397187680658940226468776700509402948110082729937846802850273113619790651350213867649260294713054038464240912808155386296637188079461752906128937075250681584248671705393144822681476035555602604614751941764710644053284002582440581225458806594990658145239652006353351384834450947647815574065606175176913066338247533169921270631193949573467292513994357223121760311087251339108307490545961829853568968102606729914954636911768747162279711018690867498115699469844739374400009079658985022410104558447636513955479023548778505892998619598089969855338580761248841860007156256744374911224561666346786890926738761749627946969623050847397684456165240063195520575180434834252916936653076994683408458098501103322572449767726734220308694699158587401339245344201545200881912029678785700287371256691987647939249649999627814773650871194930366372407800082558416322477331974497425104943848459385983046685048363345998832078886964925242014801175460963142885204916693516941656477185040643458824861482149486201217354592451419471643678826542610286203485174361486026071340699547516498094938654086820158380878033844808497472641603086780434911025751314453778644050543007907775541318422838007155753512456661695202123733983770441906874741508889731463651172164377613486982858815471312372994767829003151314155524326511705490412795677846448856276108373449822109313694434762146615244217277506973943002247051845328667547316576286157909257117595942453188385305076340791808696663615008893626325836102225769738014735264695688126067019102482806178737565345767743797081632942497266788002547759722421950270121853913191792346550431429657194891325329324324571759577203628579654019974193582073093916253854433496131759068592464125044115146356385238469406404176997028551675402014240028980128196603431530225194339174035192786989385164689878882926367454610230600309161339133818152895785127895233399688863572182071934629192343731590317704266745007319028341224144714001732139704948352085314472376975639079583405391347603445601425276028478532135195756978406407413026561585675810884674239272737986998797224198993404745822115852279872290999910250157688366816640437607108535486201826935723006123169133732401466547300071507674718007564368287606753374014063320614269005580932662450613121607848439746848650307227403089928618422278389509968197583392246307010018985492087152976614662484754387621692767006850066717116561046464827391859950173902187704320043248333700270146077867510879963543517639679062528862739777645397497654285960184175544487511753588752131736973251825887043074100569788075792473542127139118382280513518322702394440652985981673248985252254690134622383986854202217328179109455285909602932469976232186868195488639233927185021026437300543005879550877103037433595707435215133259459358788239850451315920181500630905099461737207049650934878546515462893850286013494160237237249848572603571579394825504758358484965485237499593074284024609201828029049479723913339943436785122751823919765943807885145575003824987190412604537865044382633619737908821538040429744507043231169666556887601637666303959330836397121743007808226707787843001066612218610344213593111807412568101602387307879731430537683318943762343287649842127637829292017408218775325218522712659075056676367487665156427895263636478739955890331360649576098470971415247760286245174513409857627571327198431844121862062319802479583425574435526755589630251649551264666226209387332410493295879480144384880856479879451384638453401739031138997933396959962775617339929318599074894108561915709267834614335121834768003893115275374826990280965573800029164237293793658437278089485159806935842738475696526415272688429435579452031880178555851469407001418302567655048697689951114567347254570863346480419332970508134282215977073234754693695864747080050816031677338859329021810223042192704242019841681568933578091876568805941234693206965585309594976850940789869035115285857789661152678386726607543001516725322274461409214154263615740891062448121007622816886654033938775392075956724867740670507144146256189245101887466703601848123782790263708973915183430944501159106656725337953801217603946275427253213092576133152526372117996815848667706662770100231628135977253871397028768834102463934146043235144579374078528444405758758451948123513680781893756732731468666661358295681946785758698496926161922730249553917280676225813701344273614973270907872918041900176195468345673934368126590222115855244414556361289602244999344060579150208838965233408830580402176242425279196508646012995623836031157343963404050273394446991219074835262252120104366170980476150039620447657244564856080519047706496147032214058788798378957337847842287081792508088127755352753828748596004594080673174458090621420318516254747287749702681807032407753803815464688578212421005303411577411867838549147852961061018180437661651031803641032771151456293531209022170153029251603851076613510439555031360401879681281903637487860672907373039380641108476223019996800767992090578937063482413344449973985585003362234699179009507247293902580675604967409301658634128829708410490068294949310892165670452206883359655888651456037457210794812016102524051450417438569099643480682500427184718353732595262989869697701239658180695134184355121263264119496220892727918365116291501841016326761688195367547368551168196881698754617043996098298086586392849817791821244381831250191170308381425904249983404027629878395072752377195865900589188128536813782018512174477237042815407481741809675945902184402696542472478976846094936333075300857600865290902634993416665589357663170430883513884390199813863114602981795810466702691069941913610578796226273578139362046630240071272570796035567800072313385461794267817959192514393575016323342547370327330255641493982437794732572994194994706742974188047808696357723808696979261255469752195659209849751824191033276524203578783671119551898574656465491587107631337083473090511002589200261404980573620328644842950188827966877829759570545242205041472124040217266767202813659001103760647287232092028562082670052909716031826018345847254071821095986686030232646347154290010684671977447697309590522821657350330533767329627951297139675865705983644790710028494492335997480302556383833483433610722119966914625148853467142097569287248682002572812124238266455400429694014198948689196665966542752587456520707446029435200399261618934016775009683461770937763654365134325829993529435394689262931731397435239404751618120688893196182069873807717480592711538683745231862251644496536285667643843430397271157345644954422084493099012333739111972989933134988538808013332027571683395949098458853106606847529096491893144223197073175172472931830799190524278206756200686686231261958014894845638933010009309388215335631437633661790318797656166003321301176107013162300517694264443879564343314393191302812730980956605166870658531778251730958546390965033790740429820479111051119159463212613815819558141809318214794207686358034675804637912958219240149458671592755710356890494029998931598546284895394046767300289196895865536453219919253225784795190644905983847586976022479972785542600120101294186981649268881658287656721502835041396713089410021423838465314168990958064947267638107126797753959121839141367916127225510354564008197020893040670405102789835383764629598314209643691629930563462888665198483164973506081674411632210741967840823976517430186760029304558836034482417365190466762813691086420047935867327712680646372327290396657204464442366180700675358784873650509344812579800146362954095241751862388216688177317395080598830096261322323078738348077688650593806508561792474552636793925434020441833408332690411945713776978326839756897393577885415434326184866444234133491675132114381315970618885688588778555917521533853567527380012003548235335888302235299409484511065590709395825940520464447115681676541671859700242643946758537341227145720823435054730120728575314604511901469412574233723978591919719544115070385341688540086524364299810843804204430773526977462340061964953645115954721932010644451606110132016322465076591424687384675916650503458232507117428008872296613746146399064566050806022496549402053737148025544519274234514975400497903759468740023065652003039664929149302899922466855848906516669350008164975416274844381992489728405477195503074157808635354971926842173116816652662810938948269934097028383466753336907167342089372905343413514367770429753199285201315387254651446055617182160802624091975299176453711713343290270799459607935787347020745749799599405833099826562780621624908585190815280189327827512206809593391066024900439016207210355561862210049114075803286629284784354140772136689943790555401900007889866234870739213849753932723606229154796496843465457550515714519779684225753355423628948588856750698156755395528055664295974614231240679615883800415094903133377683608601919869553963377225356466187284182643976044911513184437610299536114197128115670941115244155126593431066394638830678154833429543670150177185334662886429243186340847312229667821166750661479771107560390373526755097511405603230965649692286355264230770465841011850935373058598891842228768370197805496044807596305287477871553326526182924736303510333236189413245456906755323268832328905353154856211924281324625498560751791413234193183885480743433811519078956812860825526525648196505293670804445288640921880513009297718031970017558254627267272217332341603750469608610747530161016720832612737934185230430971592724584045634667290321742363535108662120496702206886698585824731769370072330746692200102640517910272690728648347393519751850231967692806421277318830767688003022872475107315818130299142037164605234222117556108752845311803880761887794166913973856593002588287148783021055189010365110304335721301287171070978226967547727984172113980459231150573390789970193320056599471336836229445282780143230152570031032514143473823130560776247988565662552727784678704478365093541937761914343769444137263829493763561669688678474062633745171991961043301802412266126823835942770375738265504944690369537558366346737729412679748477260593347737365983472286990074800346633658782881327968117759972338215723780416468300498199248423544663671893123423924215909653779317317516811201516177299443229188303394452895767717000360713361671216036100546103064154977173431018081783488963163349796345657328308354977419930996737183908939990374949363255045277930705801225114422483818396596832727414483412205693361584469869771290334068704702852082122150460257453974756560411643349681675519979047750280710928992827395568692399855706459634923966455163722408919212905655259565141870914323457917459555168837718797057136098031133180043692083785379208348877212953522272010717246945362660057362492778762478084384301497276262031745333348215728761979612844185234378129825182999053410669040016022774899305221290317301160056032843703870947873600769867021200437241242071187422508472093434937606907375378132999174971355321074192490357227204711505349851912547067210546890323236165146096184222495083812928499364697795535524349725717001270228420562322154181876406824615621904033407727263720456290730926843295875203121303525465451787943055039561721886870248899050302867509926324973460983947721508111980137906129733460323386197232403538821317441569438547765710762038720399161325500083666129348233858433270447378680488043221419899940655749211928267825864907379241401357651844629661103413406769742329636953210048259845967068535950468580655365713416172709184937351530049958754866594335113974015860927794902393990816246278298509062418385046825087245987785965122132088353361509789834319520930146135527635564773776966369674961506229338379526676444751792912410970811379346761235062359830471129490570075774744833178909308586934857976319208851406634183484613892415694464730174894823642323615549706142943134753369176523651616829776786870197861328968618751139870623506244594580235479090170970599428658193545297773414871829302796417005503600796728209042344882442770095458223772890968079452569289831919470232658234999415597989760709748655965729552211708783952136856765449574278883360631980224301922183762338511048391706462011397948563189136648149313473620269200567123547928977967552096331695862639583873509023107147478253898552096959079082036147865180280824566567410433290910055889529018073799234912889556909435067223606105055778162975649288768867473096394415187076255207267656609087532771960814476454741485357315489067439687551874695644969901863254527065009214638819840831813060505742042639320356015290841932871623987802991161749184234932801850997578002198994704577826261473291626320869686100649445747336071551771032885432968589129087485601101782630679027497323538392219360305891746173691853823582718803563507309261880794741395712304429549432935954271470717616926216840473503126556887288473934407085937099938887221243589277592970180529481392343371050001154285569251550666813415052900856331264281824884393308618743429824297240475418918820481079503855249364129313447251872944215620332966861477006316516351789512858783258704834327365542985414029023367072870552879888022465524855722123140735112777715560470612147070055625552823186435119474726838628503993087845630548422773283810804592216121536509849219564052871591907287910927772382966609436116292318775617765270357831670839132347085475785765438790917407655758616943650176679764172251674056586171545810966380454007796226615604022918138108147991960601192766815429284480564865911243492542872162517186919518957292565308850373706850374572644031564171958537979024753702527621944442329985875279032382778416224013712287658740589091570202256952078774606870419266034302402129671184004664924157953857595074055436033950147100906917185675097243866872836923613590435112570027355019341699690332142616495681827357218023018288917626922047468549964800307248043477722614659967614717904906759375443782710906829561752001657084147638164769258698630078095492028230282110326487587425521273474497516276600428266830412562112811614296139539784489846678187822995959136783422950980369992563325281531719976821040443733620069310463214230494118336544039017750192647585895255157092693970358086759204639402967776996538324592319465629465820728725436214256594035807700080252425012206720290322319269114925017776306006770602877922362781639910069063255110849998735169383424286300398701545285971268185662005023048360585181837534900548698366483699864886812815698250507423032911000468851742619907636642380059412410218403236504428797878153388466594296365493371099922577852246174831989339839937304994068446462934753364735548593602049763299190122732456579108510353953003119913354706136874777165223874335473053578213182671808980445773372998911533077595124666351895270260489493392102027809577711808175988726157315000394612768572039204372674097900305984661245316140148361978847923911667674525056961163270902874508272544153819729076269088026800697160695276338479156770225841598132835995302171505464458814103717221222793415887538774158524631752716160200564071425163916650570475993317700330534736084009266436558763310655622075808285694032310638605369396477823058830362581036784724317170060253127784402346609675448812933544484490771795874156905797274627176631084489886877517142257501626864888327162597235393110406956910671445306014960812198315496438357747378828073581237948595925111529518845458517284681455195683515446969335412970785278593080966876334698057402428533747587607199352845679868666050796772909211961068669391025967101196861999942689915728313655796221639728283144627432895940107272279190412111096786551644215766244264967368786779911430109198202059330604531864055192314931327676921097175005187084744039382771580134139669093586209986321882300532744318080156771883965739016557465199207762239105914292985988743322119653052781346527839274717373809512207984684049158853125340814956195071739473048335084925355725926614390457132236496536270091461104142499748659779003554061057602643671895757753565853942587415520960547423701116829558371946147502137449504331450131277285986650339486871642918351653937496636163161988839049393109863353076364566535678686382261837803019724574038361661199973380373222425031756202543282151775169556851990820558714919845167434383892677071583701938855202760718600299489267350283748517431614855486704001617204294604226819054162549198367868148668780902718693242898969757130298680249679076823644993645290595530717953390596176427183758779098390484655917101669221445711570328469797691326166359104171833972930145650670564089421217504694416839708312596953036270859699279022991850242565293176468901813660813000957456340505939911947961237804915684279914850855245448564774624959720797867029921149572632094712090103108718737850999523521941690998118139448185239692120655020816841188448524108971617845751672669858385674854047352717176721970220240441516122716580919135361561889809778257489678784036012819665549866664169009139436340609096981315431960658937021545940096511592470183437687911717888963817318569199373432330981758533584080966891598223849035762279147761408034802680022324768722780729496650964827812604571083146213526117690041575925222539820862179118073874480205355299788540442488684769686749258329449368708071954504825782026056169364388586508159556351613451606790357159850086399218740355013119046640883787047413359102263461300911414558087923515412533705456490804546746970268126267657927399145512166273772993471090662613614223277870332245645550917060172591422277465295653879989752369103604566069176671219730415611976965764642214037784271152295246208917408072696764879663841665990075114089070396706149139575038666609155808768761953227053640988104644769097143878664737266668349800418090890133110161977216001970800644023378707889384959909858839779335704747978681125606049449114553491580018264917619916551956619954928081292521076288219953349313406932051479609346442858047533523175854706174671803098287146182744258332816001429095211015181065455183948117659290271911924261926831338714667210994049138723419933530604718977058517160955584705563713753743845682239383747463065401210356424765696347586051038739836075956441196692543632476089714898754442260035845719714047430944690323753893767457375739595082652687140586496093323173125312364862888491948800275550500206937114820533162792897162642083379386820856632055762527532836996750268666929576187012727224003420903668095356555709786935276252139695042590562974758606647274052876986421721414144427639924043064088980868540597070299719034056171168192478422869337888101696497144358188598970769536133733314862598475670814103159458875527575071640266890281229814823193069481762782033199197785666982874345923179406916644541903646325581554955847530641833274290277434610781334529334746832559974481556327466797224726667960355374698115768326134980516909039892487874968385482802237453676430335526012813886850809261319222446124135365008250530142742788504432558033181852212246931674041786523106517464963174308930340179905523610758946749693514347151649745433816380350134384229907674299293094459107862777000190391697257609164574012323700476160036934895543013563258102369567452966357430196903715814800727778369399295661395153922874240882175506072329477617667109917032100202136191099332336264190012349545528312597846698618125236101292555640764704228213513323886252410043739428803776746041117148910351941602999790391247228345082474166443098188362412502444519707041428497025249705935904818305969263042159264141448859634358438114707401229731165830055031157485735293724256495812187977737480262323846066484309409554080341230336605852321098492016387634750629230249214103770169152690872488752761202583318528429254359565936389752752991636362357431629299509922308164282028313691590154066587519554138076275828116676699218509000742602108073520904912144389967068135631160443234526043479694915392589932904412665193016225005599835486047823963007408817283705209239250674651809179505365094430044147090887434012539060213744155412499553147590565238725656959493600064339460990030868758021680742437246663169153240308865742652405974238815338414530834910135894750303380310832312780457137977958026417196725272596785513612925231270772624231006616428199069137193096473192066543914034497465871092682703109349856133818460709578000057747370642739249567426848935584104301821870137615574389625821411159203927130417546536188947809297391829617862602777836812452600789505260001114521253780418032585663498739147923744851014600337527968849429446800875438952378386338156602746963970121924077178669183205755001872316089183882976196925831032879979752676102226860935748861945196096549621568869079707736116681486485287868582293363830089284945311373430591014824471920108891792146172017028911085221898392985290467623669258666203696045197428943389557055568602861964706079227684781375400082933384349000344238882951647547014563618919030438477202383316423569076069430318842219098402494372843632008714348758668384361501722999081915575805470036801812207596682405359554059528114016638849896409019365060387867103750915233342337510674320908697175025547814948310647928015150804292033637026215070405016474089738806690779595036621915269208635332781339198547593153011409352647284854393862561499807949989619767030914066079200567307323674723829473541037579828364512751290187473085208073253575077700452616817563978382288357042028336487712711171995277598547360454990868666630498432366912235891590416712229649978547690219917775839733068959416852094539633064048412075774640576364409905596308841317651938813689232950323334742976332808394804894468639687437817560169786716087645870329278996425027591861597362377059928622731357340067075145861897649819735624071312185865296971787223912859610175429786054708321153385768965471205856536249780274870957506141040984947445431600674655945597448926095791014406110132794967586231237291280940782362198897079589935913720532643725132893483080802704402881111582674249115736747889623233190871415890165236255923844609620502256554165134000901573840001327497616468334285709536767096653190422202230775653747433067851917347398085295694767891310362604919188175560793356255729583709654362429137135653343543917338786852632848388673198384526034490366889075605383573821088638503566153948519076372257381741603177296192266835119604730018437644179485885588933792802573862866639411831897836759793570626590885514988649382658901375035776622506024469340149085498357671978569848780334574135748449459282752946410848989398215593478858912759574890622818033369320768135506306636512847718016340011402693693907292991826086722425284834771050581526945418035914873911478679653092258882717290495745856470144541045068124893809126387829939559897685117894118013109059141557095522767663889028865865397916423806132548264791685007145563326997553192836401456242290511108705781594603639291585137251592836883043618980509568485181011005582892109092265978759622194478157744437925814801446632110259269983930826717981892282123873127489413422905013457887800838011291962425691932942617528757600163996253978396963735803686693023679736443254725799895364483136569160292968146490018548781551053739027724735073610394358759012734149406592484032285159840060672356741211309155176551450476842551490736713626261832698171918116336485584703440781047322998822476803198359344921279760827958518815910762651611929269089813407570470163861645725096174065935443524356224568959553729920280923907496764935403689747897238542787383392705403825012560297348658335683291339502822645650068506312367693965563322184058972165823958857193301098090840711235946939967167417760770978744023421661457572948472206575864332892895279585970107207703890952916995314811272091614240316737305190843087451676761934185407297443842353268670464964002708348577651839561430789948921313480828444542671236694983716710046991825494866221084184863542037986390184533969768917903000743561990988609045383892381063805296997512945340987706381310476369100570195102007144756588052650083334178739577994991905536869619378919100980365177853478071875430486170533260404015706155037347684924345679208650851550149512871070839305824518624639751467907805806439491051141173315033357526560386027477946149612700888705409344376491773895402814102905800248136680913632251529011058540444150193473213082646964462867690175212694913177106325026481151291389707352292865038156333700603057291160360960340757204015244293130173640049744369600794160643147099922217074974960722020482817620181625795710273405421451633490330508787210935611659991154022533069263372001736311707200672098083594806969623710600170156536418518065072951921288264630218473085915429774956755852769637036338259447126740558259647653525058402484491559454646327087840780673296748905555803574375667914768253019636278223546638133558388079219216701336312182949276348935230853036302325052453621272946046582904031634967480719287209585910084675960027389339320387335145587244461746544216569382011967576758978943707135914496281440525858696077686656070303257612816928557360384860254343433120570748693662591458492887910334175941799103101782046255670752290557428763821908503733879120692683586464059170072163518115571794715035198228797797098444047910389825542903199422890003472984605409147995341293825109057433236947805164107458354304818675985607737061502067735737172947123640897514604703884541553477490216464539528083405179640825888050701660355057920066044270344342904405507276539221310017294132274722412971909103878161172218842132490127403835337662892951687049047110519781933622494993074139862557273730264096508673304021084061153767234149379392114630867045356430067830800543150287427166230221558336040938294211542443384862246014471676544209862971492478830799441505403957729744533635418290731164020460206416281858598218833146466937004324936351408508589234712025913434269023858313508876939785706407186782312813721297081648762903488491840722549965767652908127997416444375732584958068984588986484607796254760855564932839331956161937575064112118633652107980692173896123432912768230393378975744498397206398932902053064548631265284267194929684264666888803728017725777284979069089324271519933733534146321262551097290036321934094271397530558263539117978200446567803191734255914944412028808686090531738827385045652244929142587194501073746332166716927541161978227583993763552933700664896655812448281376680367831699663560119423835708683848160194338105545056641839752424733172636633010100767767444622165150170776117139277856442966313404824989447543568736609441568082508244275327916812083009331383029163327382915625615655531373082082482077015099534080598467815433531427106821006343170416973413446329922829326693661404278434224349905508152449792911855982041259583848202205273346728695973881313099703973896487261408844995151405763970602162672576204827337099757019663768581229109881121299946180424810416264814001634387363306151792987667994348923092658873862990757362510165089842548688553656133968632112712196850527545371921380170730260970305752486280955961537173491482360153719034526121052252574779221956276845528643143054996182549446904293505212546857691407835815446132399820451073222058523344590941255834814471544739643798307608551304836273746470583842975867267292971453318793847490375008820200068063593363372819185543138394085982496164686607218717240925431818583212169559090722822169654450937110538683685974438123200620947195541475136365254578077700306907482119207098925687798594947320154513634702605651745412839903766606398668840512453306950719403291868896256024821172039708114689859074948583144341868976362570648748482266528471470329237922532985157041359074391906922133932788155717271988115782909473765177681030121540420394069924809993887092097459027400943166137788333826364676435526301325732002914438540921278419186806240151644252913695704954898433637178022626800241295042295923926062692830630878195415898502217692137786602517797080064632231935165036122629614703594279375777647915294782273570530046400848226119698965492102550053899155215206338627930683298847442960142383511527687852021583435239625239928945783051135703401857612123160542890493475173475791700219767029203881646904312836427467784173995555867460113512512016928164402924541422406967747832614934327538382704754778790259830089848152827214120853612613287847613218593821513057930004485015380008967859577951596837258408886136632734929483497019995692919270609973485364713176003504949424938751185848092699188250496140265533508235469912363318856073046299143198095391221376643222523276332531391591932000570810560065597077910418383713828010195342005568832910842119401159948706207979295317007975531832794448539544192841775657305453807908043902493166559245607951216288601293183917108489347274608014390354490703837392455039401111673638361182153297606851735009581339666668529548353392701820018007700462249129000730160960325945581954319206776564822489338846492229368296194677841484161908966102749753117556850532512442008735064485896659864654657230043724864536078181497770539820180416665672011180467526904468041009953116904172498531089005282873176140520299195527697638477948359269178074068784563025806887276482090918047711803493068186205636089307045930680467034783100569452585897837480854070979712948919645870812783643929302284008653238600674962842794474917220958628851928334389773498322978559832483462855260884720508791718758837484555885416985772140797004559940154515294336480226127206679177012268435728577191408599471990396207082576326735328507435175975247671997401222506128686092731144276002479010295461236127656358324036082617462964599565447810705617798343939946202174985093069909090034315379645544226896424479920192697502179954511850639498497059537745656211366638283036699956820016897040545041258469078230951262050445071395886691717885625280020775540423714027830648685902494707558408964745949155619889631179380817922158381214439892633621777774804607722994107989564550543875354817261034258081657775485037349487796631053418391095078699166140256274511654285930903911861376295372969124545205381822078668955080155079654140832587536076091178439774119714480284591480951798031333449932819070381563065960828796849039196525268870157200419089404498859312613120071291877803714664337657719730059543635747520444426909030296619272811732967861236613658153121501227371583553580263700734920124744540832719047390843720032646069513655354770807451938164322488513999837386742392080914962082615422045685423339124845075928650177108968241289877631118882660116294045336192293760745749002206838559005941333254463071959288662699481157165257599898108247721133826517847858109718165269034822092040892179432120237290700108933338864758096964168070286652181432468795360791670203454631492038029029421723358716521090742602634797873993599820154238736626255330100346460965782437726860921403984832217101194778997090197633432155666170537083513272030055264436254584320795096902879587301756761430631608579391066344075999108801657509749770376818360472415657599055603227479679251619740894395683785958741447099793168205918273048999206916303813770321185384742578622277986015591645749499377919879259898203137692554302221126240806156950571994011117271447292976760093926919513286343612024483612216103863668673873591639847503021342735808378471621721055218275739071866979264160761945766948117483215866005916130270442901238989524726953987908745991287372361100856884542103452245903710678082299066737734372466653591743497902968440479120722789374118558622648768226027876334990872414322644718027829500679366355512116570201176959079202576333480700910252022628245310469132674954429345523062160281993027355969505296858367065692196197371457792301993177644853722687642146500219741521793298447383485849693118228590888575264808563734262147473780438779790155931383538772585341784603189122751093028873725960437794124706079181025833896894780076253275820051329684099524599666195046472808393598100088721453624915769871087611409496346954146743138672100087075479829094207242945049003772589176122083420303562358483593988413026174008268585932317534690715716192488227277162503679232174522605826702734930164792888910751567965583264921500942890185884581370190450593285955518281336512143727745100111521720074779095293165844989059648403378163255266242062724691511039326408683960573538669699424627232801743952870730121151246195811895245959483789073831641382693388927892451958376877280294124835967407236194865963978897092007377973228577473149998239393896393572700018137143407162567953606138605533074998912242839129285337978442140003591236473006124565467508720705357452136172717510127131522976446700189191492534561640707136057670579274253699242790216804964894230963284178875352672811167149624569002428446853419027861587975642683847418439738113975546423235564446287615177137280610293832804135454481437951422575258101328928118862367665817820462121629352105118779194407426765833225416975365195488741638005155603015518724608004521163923879798326918406883541437187940086174622858513004744990649517615402821723923554576438786783282455880237434697276135919296018557826558171148862062385249453548490506833060369067783606026835276256991438685537321744736956897565916253912904113316027108418276838809559092414227174097975835380329030918968928186554387033788200972000604505773740601199599451355481400796113931803209164774717737855036312746727629236090276298917779531816048698150973952120695511554235876836114421055494996816953296274534512500017795342957304994355915760006252534617749881220967959056157893806896068837797742111781791774606914556346518389506208954173000074572138445047788192850224878023128757616635281972071263447164089558632463561634529300856047635826009392216995128165447976576384822094612435589594869927845236682975983256438000685523599652482275724098703448579968378549682829821967477586678491554175735625809255785652733186982116598180190186268970211151836491045327090450101191288456935993499863964145629773258775654446593287387596304717431032844652606491488016142131262991504236804328411283807925481851978232839262037522119366875145592020219365078238223554835580851086997368411516384415303333484726612113714145554967272293867324127092462554595308781994523523270178736141644647825576132460729678222177436461716845890873902857226017603206988135926752727778521035961540668515337726270914599332083830076127702948449323697979899350258499807618532153781429205767317745995543417356180156670775625559727858041856607468848457879665580916160853753207946029832067772060803752598187070059770895086212522653520054503803214126450889859406383051357585282867206878546940468898400132037820611484032604293578936839274086470869235346023784309394922256868866535155396479873693012849614995658178315923721084824218164191292284644341935551574433628252352510034010329973403913523949016619263988284006055864706490906331292543027731383327357766681368809331156701465305712764249199753607161119922897650366925096092905240968086133640878802456740765280252942534367151291023846862892515926034460820550265975427541819339110595812113802576357465588951813803333583977980572380530984723420771757622144832895753400896324199556533912922127411797924063357825034841366161829513858308763864418170141273185617483391013916623001067593408420429337622535979264919581106396110411288768866594422535642415923059850759086378486051740492947744148889357260283805032900008159836079765712125326318297692659017453368167221578637111241411414216880732356266463740057863809962663134617453753609057045540539182248555709930730585078914424991791399038867422301335540608924305335558422962520949560059161692081489027237708211153577459538945441227017529175891769705130082585538211494254421391585496719748823365008790058961846509929976329860296271164602748015964613231605949022029833415256165085729245544787858846633197971665293757204882567688593434553673780320759859030927818301439835235393283629967132898395046194105595925982379560228398848200952803441556887059238975894263296392744240351140835934306385052788535974421175561590682357695822020923619311851764618158906299223388907900270573425588423089161219995538095173169964401922653883656814319300603874651902969023893500621245661521934445481808647262781844260902421668295504461428738320395996983737528399766979194235132408783475402917687987040069118025888274231844489945743083152907886606337611929860310611697755869839084867835172380104467485713042092377780851575265155849051231378072088498148628895559457666573402245131259118927991960206204171117887665188050239502008582128309387282900221185403394024078672381192398296704735399787685498997915452686756750107396494922684401881829024362955307138369218121515681630259033623407078250558286193902920640205623475939062068253996414783195208237105597883006380012321542448459884214860255020423739766329025679842043927271690744715863431928264110700398208079936388457512581304051396979108000938302978583058284095698761684035837592318479340185017048561081278556395962297811543145144929917308431288239222487457998738584224392006829995631222695973553810901406167289422315128445891550420415916327026547809963787638804579481964601435064054040492358183889935696995541242860327258627328656726136217874769929625017279444768158420889204968716196285796406265229248241249811837329778496639026729180500269849629675852905564544818112750709506651567385270800763867290961919843570048914867430189818087988869990708950142101650230128060818428102643328251459997521887036144908376396005350224547860246833827147103264221548568549240997304767617800195210413805884143178640853808158655128536212099021897201590796236655598209106350326722828985841312811914867635943115914221245037824225921962763588227263860203171800793634371625500410899994662148744003835961188528021499169471792317251520170440268491950018249055443105349043220278906787157673366786604702170223269712298375574274857454170363424452733851298822692535013178365637797747734517511197483172311468076919052854632266007261175621646705682997894167550263309914026106815493101146209242543611078163528370567120818384017424331472765036206136774238036903637684794646771544553696879994612376376569520387902120079034214628652533502967910563725056671230507030710212697794002608501453541810219532439996327828131772422086102672328586773400950522384189515269487072775754693623486371057163632336636167689968357247902107159950380777062941471481091641154450268113874795310530203453005186965809476362368473168932546476274617499865572080574050763640030422481766810563648919534317736441367139305881517249890586345646548090596849121099972749807383998394458773829218671629438464698871137873354688197250049381884404539991786547669589822970258638797227683086419225571781307707895022320583222880666728231398413227494993790374569521347452236772949588668786357385985607285897542839569280904328891491242524475843047198954929221785415505277192901128491489551173197688953209034564017550888776768139870869404339999675472894707580571612553063250387298252150737128359372278113460521183793706465337233328337309213459822729577536929395723014049726196352905358305758669571645277925613849309808461376706236701273195631062929387781198600664960959706404539032482933691838369563806845612991246066233979786881454768610783402219573566412536186091437359952660166301064940142008513783921228187538263698864383312765093235166135839693971848530314606434623910789143167184158683181648477193889712485972937714169164135143074356596254487085836482172182179266078778471692364178346008411417279651974689536292446294526768639639373316344107585646800529570787164001681238345965660862200625987804404948375423113564641471395293570260117401860998780536627096350155320780195385569961378769912021844384372942501194177126344433849297857140582537064855935489360172233281997778027961167721920730219161728553190280630268221818089373095295646795784833864746871962977200158150670744075784280536010553555600488826612559372770464457795959447751039121730291723808109771162973560829250167255981842973179423946431654810501341164910778545929958782913592609535334385950297057472999871832874987137845996912014505246578647542834152564636371760618236532807366167875271247477835580372703086997208061486562645061535042179970205525281038611296763066799338365604428636231019602409148401124556561519841989171073955856681845107573140273750231745568709535095743554115503077311055212370108840646461360703874432989468894435030771392852876130820759000744947497514745050539737172331047975358932137438576798442186521163441002601567792027109251606786504310265866761924680904104076216766641776411472491772396414134513889591928475332977299445604298436139213541117536045454567630219150002155974411778726962467306849507074826865434285181102000464087246794509145507274857192372443484080253358644958985839908006850157685848025696326978372551081346457965298030997881990014568668109565393289919970494660477577280221173107804222194018140533565506969010383403225276833577650758702952633235731199427665732184904204738121707489616433179482140639250353746749560917275366613157975164435826390889387038792680716043616459708435657998672074363324966159783019492294828982935240161356940602857067969362127160293385339948079334488220234390158212204477502048601386585377169583101005012691947833630188625571915635660730203735866845498942840201835276723637334921841158431205307232351693227694602216276745258833869651371041000710946393802564385863238195959810855774375794909108474588300568491800319677143294880246802934363993822683809928551695764518226161925128409704318783434520356741039163441419336907816961069045539683042548618842617479647354691151435228268990475730517929292667246042651787120085607485560531035429342979420390002591110565447171777634397582238381343759988736230768582752545733844818233644215609239189014262520207851608110630930835611086222762280351157230605972786031915180456616075239660178284408613950870587710653571776455516520866598645546041713202054603677839657656955152117006388011583975513267617537646734354007131177937850035015759507243639022445398379697983940143920808960553080566389800072346010831739963264651755170090814214533043489341770804998408639654757907426766858973420700203701672550390254630596693574022617250230264048577773298012012164766146719106568256818351571870564349759749587858995480600473461474918911267035691910995126462552758615999230876614571492653337633414559018382386277002670925352229485291974100824117197638571273342153449063745556969115393096723408258625093229805991615747678197298949165725535967263398974022770995796412713240291715986409025361243471341008080860047906717924562942557652140708646467760690094248126255960258729218664130217312524558078906534339718698454008284100721034052253293285537581722437830868595200034289384665233125915487014013116181406926545435274429925884764362158755566180687025160279218088037330410545518528097049603628173489177016842005263509656919430481305721770935505157568747616314842584178206608165780877239580593341715190588877164820154969114941710879434154318284969979012552621754412429578263344727720791387402000131968614188239731295897203497952877272168433109080942517227976161412962735095948910278122422322327521077544626145907694806538266436403172371409460135458911356235234587679748025588264706209213567415487423664927420599495356739951698295115451365116498869478484167701578733180293794972939226719672288635634952568876380426861148797733592808031652344656454063332979365849168271668647509565416360956988686533027139600114803143119698927265286830633734152576673314754621199945695952390619558346303601618893321118829779699678834528037666639547720111323661949305962967466265813833628998591091362871832576485023845464790224053859238703242467809841942813538936411015873462340646340107954074681718609502579849242728125280031428303618442466853922326870969736698454814537720613505385082533863643252337211702670351840879903764699225665839618689368020971552235688683897198359444893242176701325643351766801631570143249710345442272539643473002648034328662762579322646976121942740111634948904307372316897211196137573670316287316589740182637129374453476850751476934165654276843101218865295174977224113440371022675739467459058577844629225940351661859986276288243973824019281441992036010462993069206838080650461411253137919083842050339915803745829437445157995022359855125296174475670630411365262508193896671684550393214109142087500621522529171651301406302642983218316494572908092753202684965435891643735180431022046123726469241148200018781576382983863380361466635541955622007136148891902778247412813345156348323349592195154061666174549101363255413368604059097229952909903582119985587682618413505937058780647691875907163892386377817851112040464489735167709787612908005843408367334380154769490547857967661657459398878641385885342197232474435844014269082739836130529895929547751078173180962620775059475967787639379955031516056226914784055815910846304232564751068279538763995896144559955331008893878309502141258630869015041715001294831441245336916066585394159804718040938138594395359398706392906304696919290865281128904023521872020737853347273371536023947127953032073495283242076643308912848167720003097697537242466380170878519302977908695408491579410512289347783440939442033605691800656755681445647671533386601001604340653208727951639754463340567502919782690192571626648887793560502507522593082896183899493513232300095044767826706147142743397051565302182265008288126127915739063018061744274443379948774978244367554040737723984939548586404922728328225516997549363991588101528696418882152542124016362629794958143772947802516463887621154434037625519193556658485071738307537813986770885599084114861624104563635709663792348492491068525442571781911630625891480848010866935465467433227356246465102565114764596722331710244569243890371309168907078370516723760347568459281186813417181867302806016280105412374658899668000845320808754845448730111829664546465531608322540579424407953075041600170991372240863187993914316804922059589987336322186386642354352967754589390049702236652563747485149238269441701286097464785283470230999393174072864351278645228800369146548545059934825284700504624701888232304282924638757898660643219422496419071717744057048328449972253466014546349852407483696153728151748781987954857064436708796183672625577501917241771733098618399555450529289759551742615314492953197867931228464164333588318623094929793118158693260274169906343307928501342334415240788969158137608773509546161525495170306228300420824229161124075653207647791383804963965474524388203273521445167178463560668705578932171386215510302009764205503294441016925192991399259460481152385456554805905624262797724999346896421755384366226654952320703315425626620678154695502630292237350558695617681428418561957051351198626950831933582104075305408982743540978248072072980773959400169241502002930177676106522805699632173957271647504636152888190707694702634355282755891756209917989277887661473216406823336124174743529027382347524916139459523709288139438993608434065950573265595225426323456248561266869964703313300533298397185891981129573026346753467658708855929287332942703387087900735878488918761389423738865819697141585948726499822908942546190052853986861978941639461933208024538567343872526550841949406924222525364155927800838883542204827372257767368459718654337888082054618776904967618740363443893812112954551409147162319574434191804920296297969740603146447280011867708223837810640045443689178577792647070392421135650762696473065691756363386551926919220392026261269282418476922409410101103781299436574919233204343697038493628200848720124673776951899227579167140098413167246156310672288097072940957760040512702329474106451696591787904557093531393231259094100303032378970433751908111040873543557061364229765220262752319310096228927173392948184539026578823537809465367440105424694269434948675031726525897678055811659461350655506919330473511855094499564149116781780536101628867876209966588310464537237271526128729380689098402989141518915601201351206869576816090926691516663221329872711893688404727438966747501924863929169643504180671295149512193477399344511989492726772077560285671937610225742373325756623578290371976687280333413358710268717256426411664090091413404556298199460804659913156586474346102838891593874635752225552928531755447155436907417969704755571530869536127363885872846406168859060856840383068762405095023778810767187940020549183891178622610315508856516609646115987438126909428367161524453632882739289523854001047433067140971202167101362429303917376981171793379014574845847388089374532849758183483940717551928379270420317342714903197186149056976863562557272204712823167355093087787944754203935356612895298758933267139827884731393927661697843625600750778084464720207467767988813524509884558399036457736885342539448504770389580722691680633040799992158725781564554710407120161419467489025833337962348284348495194742616865159967687985815713864593344128974961420449731358753709089942787053163287159917815648275699341608640899061131395463259881844492999273128786336435088778209501552288122837971146485293696542223334801010615338651707492864218367600761931463994792447533653083916677885362226660094881179305113083691346372690994724986038338459079898540501925816009816395906916387012537044716819395964464063406365910652758266983999068393824120587378533488284060248147927640468685488988062393924786311367881451113562519162203453543346056595921426900556574859698714355546641660003991589411703617343852470254064757283807915355985810703649480826147884049061153441249141084833109171339089117215466125537636212268221092218786627010186150158534180174913213081939025901430444822165232063557634104647502492890136132933392634773130613494578995924862165585235930714704592395431494445986955955361873598113662638192478683846358926599182933797506008792223829793699220962026086977220618405839698012844039431481969753987975985646327872184524335066469013011284479182209915950082231218983473275000043195295246356046581411856944552116625111289824942708453011796351770743398302540834846562002752408651499980245014463962041988766508226138400368099967003489585503838525995206659182075853607057839669425884145826958428808172520714176622480799273344632316414215960161486583342665053392235921629200000359415683180922414207538018389569024890663625414918139405223304425955097718795613378714518917522547531177264459978341895058496076406234986115273230050124023416393685653896506476511835750527541977117312163317165137303265537067552074360477409087429396654456750506854842137310055957799243849227259443249124900532651550948799464108468284811263263864456787522916010128358062355800509113605111786082956157718429763548637603660950332589042595871806549522688012955909761608567333980787971327692539396416153116022179023374915069657432765019899873441061495119519182533518756053714811340658038123644076018608280392212058788477518463652748159712600567162701468237433999122321155742825259623019249196865987920921014964749190858825766358425625309432620128559954024732001532712619385064793587354814448897991047500341212219115262364363752080307263984545302752972366876346705909812653260041536566951595905837410680871963343130419284241552572733323540741624637145387803940858750616538132065178905447642945981120259902968056615982207029979503301394708688732484048312798318134936141376852944603343839941551301532707598406588687523775823500384985049114738264984127564082178978644376435635252161665226409132004220840632146741489139047901146106395013192711491987828916552046184414465179918392111226811494412261956340298305396204635601748129895624724743787839930986878026134708054603656897916084624509489331070981788848248013182367324458710667019374466571695941055277155066071293223638328420035178531784111384923766209363175680644426006961278985375717191760729511620659742966412100421326158165308965180554232893590151771184872629182732255401136851074063567867675882131971495905400424534008859248716315305929273801095564245230782089078177677621930134459637289854831868721878494440552394309266481366738259847870814725489180912461335029595177339469129687977751835188538689773598074882374902216689631162483666015020366884406885338758941300660875405656165114599806162547554530483837418669724040544411383199307368232225147420716244348104626060374197515511288885740808000240086150381146235479702779055084094356487888229654467532872966026075365475668811997134655445668467902293791341958851514377314598209360847720974321387661827023852617856812217590390017574519367944703456377270799672140758683656792269982145280119828366725813078856229707853162874279969736445287365119910895697642184475872651256778906246867911014745719244604968282210694919390498151021848516172457153114186634467274967411966195208427550953021514042398217556474418698536201240545283818230046666167160496909469251331033243192188374224331664409047916785409910242473208854104778326508241863948688615088000996376305775902018748348166647337069251839377579476615713711061373151786672615341693579690655922427052795217892823557303763998006096823965929368071556583441050506259042206154920272542918129153662373066775559425851949212416560781064754566930324460766841051583897368277610586431142236248320253370129431401576429403352981402499064625366640242067384673118686446878660072815185920712457516889026611936111427232343184160605846936818890835173596747483553912712930484858321176738490706955671414047430365373021914941204927028053396230003752058054508277691673399349822247995180964390526171386960090234635442106210509842569182832491072439067654694612138516582993544417152138869650319017681297003546931207854998225881435486143767975716769092940822817061994381794521582448318209250549559714504979115399379184125436851073749712539612467524796347631276372384690749807765575028635794381523024753419471534097442132046900936316405989528656484714840118701685512777601829307687086277374641379880168761876697255947477427539835921847288467189429064627485186955849746863179544010501112054218340916247073266954942953877296453188528445233052161099680557281396543736040327647084602389468464781267403934328401181345176579768189384342319132822065109643329237692215668413994838513452393800237930758835858309545131518051460890638776818017872432095172364002934746620507385515965753440824000923728781192087779057705478535907201555591475435436329916656167189294067544240863734722346567888567117772718338280530691391626057980812650360110922322629776751486117498467705657492634677186387435542510345942457925895165317722429623942343091711917443793093407088833995526809244913382643617236218639128227379529171226500249762170665603340119698254386754520786370853224748846043727319218699965054638639619955354775664634007351271601166792770261695432178916346165280125949312505549997367878879953262631825428109072638769384751149433660454086138100409533852640979183869625593279143870173821186736951255883306211725546628682201255812113141548959503737799079045474175446766838295310570978565459191364369577337353699762096924953089306356884022759772972866093424707844185811958974055309370608543294557558678324169940016148911945934806512967954198688319984106558462114964310869767768455590519225588123021912523262916295665929971195621296884820772277064841142432166889197904013491802352558966012619080664963004552686162961216884097171964326993121118995172843858261914060373564493469689240746861087255995181995117831888048261265865934349183429146642750250429745946632484864076951324524811088589278159695910748333218950169536244902105315468252372344577963058238942407109575521318555171979019909839243046350741964774379432023091216555320309054986463042136665462154471396798269327945799847577565555538664642593576992779941803701104192425879369012874717724635970896484189213040743803602876102059182966676073752061798401995290579032348294166610220777840853920127137244239637605033038178931086655433924481545985789122133631183425462295384073141598803535702804021763291594373452002038339763342489062206862120962882762060868627038064711913565107822273118849174689483423082446490397092990591354578787490283043851504039774499706441408406228760179893932342035206105771466750664741467332369638818834979222659800998587082469058463223531936918113742461467497911144129275219424056750657910519767261641841754169953224939922094944711870885174830409828149129181296681490332619185655405094609796971537210877187087731218594897475639855425266191151947156672485001119484118734422075493366093695878654980120496380692848793931846057260073770830915627356653614339164618956874332295265626056554961010401238734954080406067228791145875441756790509412221902105561186081897400526907951776280210015122702277323334654164489310708105677118606353531848649947735821935405303584891852345800070142248399974149642322580557059221628116016653149508744472383405850561841327327063064906939139000977490831180969529276502916064066471916530932600461837565303684918268758859279766970467172904430910443386805293716139011230888349503380908740373118772872260851968644720619890583847423746194039302398419495098860228641319514145784770023799402280310624002560662943174621676867005045564797878357725490561656241588128159517565167226720615678530475079948203998922728198085292712726854190017743632223250131292763064720129843034739812496997457137459737348853925298952217571790316379179219543939023082834931214192746922577769426585189806256249575225376457503089207994511026779050003067070053743913054286790618188230340481342637848860165559935033563127132729380226102650402646892973580249778307458064936236594356138912144984987940737726876828072317762794431258530410025909491690764387736420372425027835282605999044782967818724903456024997439409056651444296617503281951576688866963176736656807277979861658681566637454563913917223533332325815767139278310690854211687392915955302814647107466875850059725602963642148916357428123760133843750082607355247936088919857780357188315694367243480896353432524341952562289340745984846858315298453520273029608552640865960275218226847828702164283482433912762689114900182987096536597321432147636983170711510176187793924051965435548158459533457144014596531502373247484157847418952001507508102332121443956626698686464114850324224802521035074372503566948099631708215993892093266969862540794200227531181019383703804246254859461297966367125838273923667143157468396002852761862679444605238822940931087082336583164097509446746985358100365754557481820056560831143281652985830181880657757103959576926787971940935241975065602354904070856982940294746877641774647539530567639717180387012627992366107559581717958748905841795604474733617631682704667233308550893743327690491666767110653525574568057048631881993594441911599369559937011964578531533235088109274563155635011589760678582020931214591247664271499355363648927265024809583520403769388945722796296865980163523326569117165508076419041461008186203119851349074494856364665795842691695871612508891519851117801215535479308921781382325645421524285387179742806578809174459633348856185580834670027956185511936675102155436922883324961425232228524038301406504572539821774192044287074629304234873232000842860318628110077805877873148079040711021161159598419743528891099300758396825335009801669690847087866093041127482183169043697896550381021792896172444149292017548410802127862834419869321331929106314142145310122681255885460671526962794619126680103125647115710895546210417911162110477572607316719608198435321814220382685787983305840075379177704344100579038418805029366767331042447035686343113673552827642829350004755846929168026520282074089565266803147571294756594818679429723287047843105598668535497892744155814080667884102838427788192389250852169249962893510637554961972575511437735479951212614282221911590610557147076975838860863419927599244619730485649277578308750207987306188825887087284165672420562971519563908437948255449974542985469005903950453817368233123058768472388347861849593738154660426566244214410045684359547687265345756347513056936371776874314126078547625226767274736977499161527759393863651325626039099198503165200010185787128875628647091616792260838091946229379428639480440977957417689730540671251814411636368118885931362421217777028326480531728660794764121750255648015174395328423823852150394191596640885116860182303961009198117477056863561538585772576398970223312052385579761277471693554019490489749810219779216789604545840194763707896105812802586009367876121326038798517586292564894611527975691983504425949000691113497733970566890750909648450478134579704080576260371679223303408042342978426303180193824737651765029266692599400675602363284090594794250522129827899740796078116886105632781189727220184871652906455163130582054355753172522497427923966729731132562634279436358419144417649428536351988860593872915213858834444726073208358754842673497897929995525347560367928437775687906243127593503504607098328247113025957782982478445376653279554688414975036913368422390511877327781651479663227648761259282720900211474133096772574391641831740516712072871818677122738657608709255890148628407517936489741394637604973348457800480154289837349702664676600183694736497656548651870995079479526238307069316669399004220496557147007447248979442064592637990892658545792275074564960340325317403424599397482367861806188030221258014810159304564922472377069781483911019424938837454545696617454485103923128983377113642641050195807948464515040568597522602006596077667598669525145103369516704372766649118154076374950738147237250899686539144353825189772079283977255080847942147696397069862312063748352034456964029698232726628404767664596753859515911688564259873311412927285207959560574569349162433993532413223938399263825513304273411508615514754637094075807117635184971620592374194466599751921768138448946685905510416786689885964828819969409348907571063803562372578184155527073799130323013033807609338982805630795436065767355155847060781127604336727171308456970733824048344480264845413277692682194219415010536452518844809688069424609103440413037286851702712574336217055044488332397045830828912325594111851661016246662387415820620317670598658127732219553518173684753358484098650245091846212135345187010881651716128459188511515717133746680379468100924487566445137041580703778999031278077598438997251804462363167187957511936610204406408318426918319699245419160519895391028285921631049305631131998040430254610752778695611561312009857035851803768575206508000670253018615349014667022628996036501478562010905589040762828075029482517906011999379044052923682163724859099689039305224330932456465744730303064302789697895076158250076426986002867669599580477730711563886700671195125688721082389999028401813322698651917034153558842200547962613855394621864094346686817497848171443519630688333131742749835000973014220404988721505746440856998843846636117452495260760453903703029081320743391041109177929670957493950450392169613645770870074353754567804072754455366372071001266115739524018178859883596703525995940536080652322914075904449829891046258371211844514254262181992464489950054078617931700201300523182776057420063490028402794245029152324999137465402895187370446578026016806635309824486191618586423123136064825231906254437836796326607444340257839067458400504682349627786571349376637158122253738937984708247613459166548791335253125883499074007555524153360252774268090809469178397146474130208312097684974498759889243272136116209695676492209454535370308744152204865948600701821256024917205988864258056355383071456429958659894636983192315963166480317613677897538198425415269954349059672228355971423541979752168159992450608656755088398674784257907598190733684165218379105422272062201203433088186507658830183391638464783193605056332618248204157075309039232057739022247227370551451661928480099792653726904660028531538696992965249914464013509797693902990043037847516704598666721104690168805761795096764394807719531619274293927604427331592838701224269117839191254559993417201850484382389299621747853110355133613036630005525782203569758935305658054470269151516952114526311645569519163532264997442248652329191634131540474857254833305019440901327645766857908530271351503229893905250459998176104676910240972247913734932931316503505089257460018052797951341304417790579980776015520991811673624974620343878081119598434705880134073615776055648659346953635856243485413612912715131227046846382322527981960802858382163286593667707724636115122108397133023734172474395446504593155440825996272759313317919319006217362788436290513451144888636597497572137699157246105301555596735941429175149351526211672396682333157326710827440113115061597962217988714709730828209713577238061093642932934396100059095580055694415902074069472519147197249237942541948014536479188664936094497499119490139031148703203138700029002356707078750093901205698876350379622485119801845118379559039662682428595978592456897315986533442418523799940801312695959395284697476799065854465997849546238553112418750793821247764180925332458332925218311777412564806746276074439915514738508437383614783029688834963661425889524881230221805266441614592155962545214616856038799183914287782674433980816520870611834227257778477414240639443829668931704533205656739875877935750026709806189140659232966381155880033706443047713044052124030346152457973314705323634945345383383224284026863133876146663258792561017500549855076457846585564071271865121287367664288136052185536889281859471723194421604444395369616466064618636881906908109086302656156281454991489880917145275019827640551394944221065007868134234192674673585226851975675592128549510724645467777260347287350078206825824973384613485914251341245598102928432706127578042175082588376335511669388580133793688875898790452417149724935434818026946481250096178224172110302839846821654987159581121595789334989712139526967682520033833297898098761034430415680848890800229484718795845595181925136233824782291521846499534161565906491154751973510767130671494828312005992219276846814881997891065828601157356921242858729282140109093300584119120094826884143084446502510370745435758925871535204884632953109885863869724618851833393953670548023035714620745660621935486500985110418584549557579285409924877463606840761994911441094776582331608048041600408600970354780039123521268983203849064962140453083321840010624689187180698608368276137186375910284770496646665494619213503155629794983060999104710165952845450626388882370124135133001748577489176021026905561345809548529313606036445721990855902303435233337048919481630205935655034331367547228857043563699685587361816417882234570363003784290069065847313899369278587947350704070165024895463433165458628034262286643939043021832500442931626907355983331289587565309955411679257806441474142620400750395822600993768861408883125990291506139772085999180464179211623945034697888410616165308631758980118491034893754825202355061649214542557103106644355344150056627230371400747710463568155220078039056297755156954915333552337788320032782002253753767421318896904754908712016273844694697016628840336935344412256050736908295754626600462456664242759604471667732231227464511623557750108645289143830322845010744338096726734395727902065952288227348303805319170729656195561673009413837062627371557960087549257855958675622385769719299515367451560898730894085494911488384251417906033718732258363995030812573751950300720347711688399391727724568268018581945933753246580081667402292173650905968698990747228605474534008617041495121663996938427685924544400642856392719147810863338108815695144495042447033766806751786655458519785412617734495752706974532655203045299330371681271841433615928433526753525717404875380586350832721234381321303741615029137472892757871093238873708326067733002027968797169817774888642749583537842963998900200872609420937012164588950894596140526886499740350289298113866886754653555937645755012844924564555263207481267566899807117249300680591673301114612249615485786534643408930199327048910914653471948059758680589034110496459494137296048560180989065309936858801254557467425841088094453281627217915225347233039183318594315608338407129999768340810623231256816798175332410009004324659210714772245054356637513276913460861318868461625791154438275397383217849215010902012136022869171412227025360163528425810250709215423451097146330251904589440267185950546921974504642597092761232727692205190385581758382748579613146383600233822992928069605609903024967345951308804878290128818784190389543331016545413947844602001936165615554760913969578344201290698241463123041096592440793189943477034319343681725542911073879755108952099615024374785457872857543766584502173078273929425261504792273304749002603683228071794800787454371943215957307002066805875927021052390382966402471879760647390646902137402502927707120609783098628976078827802999253024615985305155437860160912436825807552528548558471727910367608797016526874110441902824380244227128284234305185977241223706227067408235231061705320217715018573050528880054539624879788140719179863280778394659012102045737265604645822227386347239171199577416613514967571916932595761964987183372112722512702617526442706749024027441745680499944694546607079779185030122982349374797885577722195321993980080808619447224249087244997615797948571256460021114946907341527510113743655257646908008615150151096984301545315856078770473976220557216614389618125438949405659407462511009582795623124390157387647261751006594197451547724440419402166741286405132218366889430609647620215083992883029579240453936983867384725345950721054880929748242018626363117805716905162564787233373242790055492342813581021657475644315307524266630311721380234612561785700636538780085256099410293343131054477121484116537156395553419540076000669572661596592234569343519821902259033796158112171712268325590240022356260179079114952425100309494851128194216801001391885225659013785374596086563542858238445676354338958565490408714049534165828979116152841268332543159920233090255635091556298104883062422879814110479835569599571827425817721499517226885857294340801101342420791126257265669560985186104443529278011999415489288655064493325735570774999216442083226981874650266250295383391326211867728036091951678413560070322391826168935267809780172751465610210471175581566174989895048002858261422164700728691172903892870076298883613763827235182701294075139545951287846445670843143753027746066871446318759400572825923033092874948467399615891227958845945525172809414005529289940131687516159402440952453182968352794257703217188627204346847469937072266556399859141880215488356145809411464247435550267791763980817036370210953092708414867463162944191065440314939428659388874732584864290466788214106276730121578716472823196218063476640578696252576347058327829539277940329407685611176133602066689565580517592630849025395013983743107956591483734923974004201198410806341330763809546615363426111455499939089666049707050284737484359765302060387489333069764648117378013456040466857903018710513239677010673674401106175552144961815511901133667129559375563995969442193740388614016118157791904048845998560381894798448808884442262154048169637162217297908502532199825212295453097697688915401818182245605387317877340539219326719663593053464265708747380634989165164681009777891994255981982001100039287877740679481820878122823322449341072643883598705775937294192575100894735681074276809735221442045173720115889176496803604351997685612983532527011217450361147135845383265223811743569653642318687304815472952863370964260646736256579742991485234399596979908336753790972105691973278984295911495763323153599737073381101939445047624207972923382573040128851985700102091567417231929457405509249395736584380564385670465363112883030231275133946425406858571804045091852385602403774039365019235375627754414145848874765610568001616837784849208503103195866360828022308167392404882253012010113825262686235113839891033670006932369842745047298510798011401032870923633474279776542377206544518958429349283147868545074228272962846570027032965255814776902702966965761481959013784928851890829223456491296882330956228500582109936801414621965141095055688707264209790189317367239043451748525197023664130012679688071862456341103762283781007156351592798546255958541946470098787990012724005529637360886576906051221777099715407410535091296396667029298891620165125318957576656346285228073724948316914257079774698459506526978296446273568148991392233384906038550689535074022660435978258454993730715366011881306367111205401539565863932201206409157728749137914950946651466771435598206361558464536483497874723857499578233819660103682521801860709787263134341058306520861317224971615052873586450926265976784103498695418127193884931982667949724629052334941461483466003238348285884383949895304041806562358578671139085690496290671496394911911252566195239196397735810916406611230166555071710623990318970794612106136468227437377549797740445699214412750847837986900450832767706394385491178188914296055248457243627709626200933656869092000150777582624717038553499338896103870610208590289430097754166157791892810599527029979696440399888522491274054732143690245808481176073297357708957704975076166360812340841849726369942638377311125934230582052389928947311954948954811213863021240515187693327979326975884116127951127718927412793774369289455271362146997210679717726185987280463642602118946443040881499315034520242976785627378581014205568578271363626665181010155327935126369289368145012416660293966842790481091923603724999228162901180150304417548365638611751252291261726092408056090445082313337504977668098837147767597869153944706005653154341553314858149366430942883105239578569298236737772209583460286702358945296408408841146657512383702109973790730808484033285696921374926860774174541637904192844282227932622338896793205398173216874450837250678127128133636825430502067437354325745153686602360556595718087240728582952891273104035327129829213665106405677011818265142479489224997860399360735405562438446424425324903229396089731585622632061468355765269654777056030868014708228911507779354047772974693019134670079530658711095894699015019664996350319951377897712772106195760330432833342598934205604381003391661109786157855681774724543553052149464892622640816175474842998400560026007492687606788564456308944188638871092789393689350324174898680196679754075214362631295396665815948856576579722056873833992128691669105567641307859428581693126689554571338990965746348146915236216220501867908373160665402218422058397710963155713353307090918785640115684743933835102320332249610247847596388396161860910128298725267716553909819367011105028204345810210020020049383320654242971361737354002028940453755290114659897874168256980373121899889111906561978832736016414092348444805503458944816843531729236079439596168851038601566057249869411741131644813906085236021993073261862453740909999177883571317830250896969692209477945225881245177642696024910165984958974182486156043966102699766326828413012726121052005049800933721108124450289065681935703685323926028171519094169290285637467722902046894513106873135862842632299462286623924474791164012586442729967982276900124799934890334346020997108503539659757068880729784642897997375664998580254263060712481338684699850534478263195841849385586375806105548596507079367931121784197393568082349125455881670417862606503247728329016056461541225297341365273442443217035573478372915549968287822458161629463570328193589557492934746101607886200848423753798305998435447606141366738106670259741108227572189564587647100252842904184747124127591799396317662015694969905890155441969841408195735661719099203063227011548268151152136636827515636583563824123151764974934865471157746529731359274528573774446331269738717804721423435095083198737289053887855543083370984478966846362763230805895721735174515585352526362096952025976171927468442318905519622378948247184100559695544958787645963953578884439217077030411395126820393088283128251893923474002514193915335503580708533081769612084521188032616856646778464146515207719705215872195792456049035360285739272956119099820045632624544023512838179563535605310834622834702138349391639526282891356753607879774285900335436343520501509421230557509717002499710078720882146653452323487500991805935784057717625508064153541928824532604184851283636690028297409509736612262543032222428979354380525498313974400126823021487590400550980892548406436507086339125389058547895126450005317219593662578741992950311235615499438507291746384437802802930135112832973454116010941105850344627935677367516609439214302475765998570698958871021550014087565128653571511308573927360168348707611638499426351911374165233297921169223531616940204243708148818780753174011967051275136828096584172208606042096753004088530198384296662908535518414669954167480537761736271429048094598132952413044852405369949809059280509319666468796869143074278655851462700450342249736670024954537063015393344112955727534168464016669439212192489831060296140084100554494042966050063877255221764248343783585011813442216820085524198790841920058646468867599717773884091483901087480689946168002274595450917726337698781099710578733510579983641142247110528477546669693369067555743423417704436094801686754984361304793596009236274243294263653772439072479872555362192048756511608414059562848986974227698436493344480010702490642368749802058895977167664350483792772222414794603456615070209573640743155076342655457781280386322198603532516382563491462910370077432905587744280363387890797888934531548620549811660574836998157775078585612590904739602373143647495280431352734437399083666638874841317297751757785990462076196043002285751782264831903887672541938669641035407750878814103560971755527832533614092654930434807166628360134069547536835482116350841023066129653572042263288427232284433220782602448495106265881382799855507302245667117275431089350205040724854064902932850913120619521264569977985451683308870170543263276925462178368514370628649856695426044253350929613796979684319212775922196682587840571166632801206627875671067732211974657156429433662630839541197962672378015903292362856574811840772340763075925889144848927719020843592103487058087980176816473022069965256925868082772560818269972539828284847429272921571920597135680473297617198511987422119144129897160030521686537830963289391751678652629953938491573223645225315806376911083678906441041270360633360478391321467404226861950234016069880538305560986616947276749557380492889890760599198944272908789074096731299546404122503098886668982617577918365134951358663738893755396685355260835756520648029777108145234619675185852377688945616740928969973186770342235715964252988095070921083579422411273255514625055662455169366215560371452876308292973423930312859611758277859421393455988091044305300920313122018263076648825496554658466554052273728778701536432160947049536732759080871267876429994440802885735700980413108434716196997338841519143916557568977524454925705442590856707568641380982833281792648947832934494938737497686863354894347955517880478510004213598464146371853887088616930605682983745675426194934549127345746902890457821080816967262730392679589154763189689181087440918545612133909328324338450331160217974549382753983217798132552102124842626614421005420020618393393338786515530956158373878144213172211463742513004139112788738454470944763453100281534442018898532988055325473679028103865450895153596514493710238067141628095014552519699069996492228949322935680468346208917048395795676916577421858049870361428141363571701734017397955000780230092046132560776702932627398152955913051935089876582950352753642286825494603186563186641939090847371156295307212543530585373288026879134246561409435134534013120442320652749542687378132012106281618518410242595944111563240186086505322958660741050306696867485150769740891721663255444296683791309636776148742276636634787285994597266917089220562712315431944489490757401692635665303076731408910451214250714651941901398071422577158268785168186981845980158297364879984336600801630155420917680503386452527234117904138367074321023662188773142166286604976176880814555981723097551744970077998106189128111199761023870896966791157655553856667892770502044544862896311981887853655627696570447879249985150486202868300947230941332478455880346485154479094821147543918422854644190499784291223196929906298038577678802511743001507293207598429844181014730147858537849875240972097179683797056597943804031776487788084625965854745479059106238217650557787087971244269626239543455986693714867459615161484897555193561207251026277092404192916668890978423014718496745017778079597258566139413752342919790946096743642290108670539477434297191930090031648930472610297267181183949685514706882639870941372050365623833969212805011911842557806769460590851418038463000506496480076894809677039144018961216655744236698150350281071009679873690884870565402135171794574070289520174951099731221718632201544631137259751765584999343724297027891131334917470063580656244587102464295459505759106874607335436580410559003674770056917836037260878493477327028632998041414505973381347719794751318433579577385970631398024300949833751794964422426926150663067119208544147706709549270971909109352985907898915021124595747487882080357473419095751096000818574427120213608137332700489322223285778412068253183068638001816324076168427729137737170530489887157422404816042116706376536328253806202557620838784422121349695347478094547160607958363790792968821308793232263141836325583599486879842601860809824756604951397566955824288936512731562345629047121459841550564539233644274080045115417959564085400564149648834142169111695315659608971185354384408954356989622861956022978222257436368896085052947319566216426298000628172906300654033604231999936072121245599098657725167769657851858399049252272331807207069045505880896082378100045855861396473953467933421835269699248663523762135515781717019873449659468287621190477897623241345991718049561942459532892443468059402190235671039613885715953122926944435522701574435002920520676010352877916562098306132421759666633729640547655728024433153840964121800605255931159796202286299549724946908071588753180895827326126778162682171070969032194023306406702196919745071392913984250210912555815655142214875346122793056121107127053817987241201734884052051075343542951728502459464780853374045491318013832707883903313371309509793847041695255143662677073442093809831512459280500375924890648711710957337697021563578659329179037887288574941087201877715137321682855634365158373566217472793707742022308705696405817974271173905903956621182421041018565242688823008573995869447551069009645766733018078239798611740809147418008760694721659947538556318096416446252200045483003251302208665120562662579125252187219960363428073670428705609543714817500593775354818689743012902783153259634175180717404119290292865080245967086627170731761477502266660879242872531125106202819188301527750340822121447888305276323164469457158672803710472136694300289396827109475860423690552798619205508127340182608421210869206567136497261891828697433581271323773892388576458194402674144358198420486894576741437362908754190356253576490877596688989772847601559170397649680474837390622958457391337423330762758571950526221041927724472062200652442257404154429393929263959786935900799904796078862628396623051546002464087091616556873909037740525753908706760669293289519680693704591534553321518757927418276850083525192738244947629600664022638305933729300232735611710038566059584837480200102815568635760181730803644580011864657619855917491120246079265503041491447033573295454777702095057548637243661833238295796140749733486555029498925497155800450211855840632401419799961286565086191311613370482903386591438218030646112742594746331413173596944157651272956759054884932517363151553443190443640388246685588507270958122347578175638896398586853682259626181544552597618278084300456286993963137413393578332122374607340874387961615555854633300236544834210010415145379151892745793081931085200825875884984046779468847061646896335786048807758286414039942912112613696500112590110004605802209443277624545849224972956279893529017893357121337097377883226025744472432664511020581651231529062565394229528462801064730429011411339088386393604807084216078895255980928580813675802281345186013843832325736265845111017948648326485516834595360197526879092479968918342734118076658846093601193009500779177265086286630247452937577558451593506639006753119403912241707226135327608568870517354989920076883806707690706083948684111232266733345640124157844962880417765314376385409420450328148794032896451399325660846561458811830518882968676012799751213231759456331495489243057931713576359835493411014212928032574284856135262383142728903617939294094171185992291604974317092328375859027503654916469539149053018705132871279864491731853222144503104576425765858988269501970419192392334927896806999711006721966169785153773926613289071636372673364159116058822792263357228156149886905870935787347998145328914114468053055633664665162162697121482515777223228831364575024002210606254657588891150576395325020954211977094245400297705459929754723669662870485873961014967768326652463034668943812273572242409706351991973979436867711968940338426188775600244992509111122633898067941102952575603703612644625162867452919408796231331847171908462801752404239653767584879446022257657219118132561759698017518389515577252718821159109654799260791575188233044289604841473804338104640641283103558987844742641797316186316885196621109556785916771119136822244270121147907690489032674232461912745297732810160647632514208791234422258718215994442589536420355937821512559990658202549602570022054641373553181900385074560214965889015774539731761765949806773370015914439760412642941872818224454448086915173193599055130881930432081701410148467555377449637856189206113764624310373983560518219668695989051263598759662440659049724622770106887921168304586504692521187983114884382137469713379646985082707363923034278068051689619652927879425230186320572793336384549832791444629787198449460410920477235668897882689910177456045317433319841695256611791269157580922647502681996491710823892605499645814974053075419331551631037803491524949848088456272399877921730937495684234359311198549061445623467375813776682208872862242511334320538380041566499929451307574384768141372669876024102336636154009366872446590515050609932963573317293990989006733614438513713735092400758143278404695456780765069193272273151468128025040010138040706549985030099293090468138084861786220376261565511624965296935900546928109357266977441357554249795380562352030460170088815465559812669153201752603081277900899533789720755060902235356835077893820943731514415615980842829684291770458553211464489025947564628223409075548761497709527123407549168657211661859513211427513408337688505057882453538636012838575864242712728805318597624923871253549492833002894919516915103068855604765735474191863894432386356769984118852572767074967238028897741343065703678621069137898809922409460822271375702646278635540245831511826348117972174668129059700075744638322109273852049827920012350785209018860766241917829252194061908032002398202469146953699553676438423190893152789529356165031454334110106043876043234364619278238667932235896835621407782307012379200969493040958569056222946516964087686669983412429807004929297193962151496625372163596025405077343625499532878659615431414297409179291590870117099787985102312831574533496306183663241155363844359100253411813605940114737143195958958783827539250377416055314254565164410563002567257849862692305990617003483403156014165213181783276798989502586610647780806763355904437613700195277268728748341926595990100644609469594430006433167305514820615414746696893676357493327007333704416294152068885427524508714526149896623935004065040973122276608077086135071063283204293359695812522960891263982725872680130396496246502974046687608910024037662489052299150203965346489884718441529754033406590170275999860498241870661951762685277946565955573223731396109267237313835200568580466406057431894578869392310383606083375696812874539014973612899359499140819914523738298609283680128660993387702762582554133113174122300185105839325496555761137458123591184906430124287993431677056570922516992899635444777847445253467971836667164794356390181565781928368837720324993881417080833983484191341830008359571723443032375166949690425538701176479027471697383713873801408596055331955689700973500110179357299673983409073107259176421745978428540709129047848409398395338123233265172851838311779351394562337070959447233413007746627016677664113064764135502885223701137539559106710218177783975314207426896511010881766534752094235649933045780195770965429655115620156588348640412021136079526571639633698557189595639736591112519435682828429273571923488458442373291677028439903483526888674159408820413770969223524150602715298961931637556097840387509536539875051568754802249727098524736990588703322453769956140958962845047139138559757620107669427093592931606306274837465984154801832616618235449677151704649989250178425071476522024791075556764562578199469765038045527260646080032372550781297303054005065401150497613127797111312144808907389919336741367766995467689527803878147226573177427489892319855760325085327551650813483525964089545896466429363931319713620435809127395766661669630198296573841328425823198409277748235090152466897478879074363895211151279311121120019917009279505263700632855864611736829432434303362077335669634534185660309673157024226075366293724911639029238351618222820217395538469638267078845628487500205435964507264195174965599865931712272339995603004620681749019116122171929299566932379558685874314694064569589183569499227602526600204243196918140362838928839856625286031418418322364814268817488667019202520783532425777581465781374342358206976821622611361683839373820284323280543475406774728796927832570962717499579331647515613485946479151169116750730702360058669460657745674946775579075770443128110257833177519779150123724269339267556822331395991555038249002498938761728250080395875019291761629133412230468001697228216550067225885230511436411802989615992582109249393589431384278123868670568823089396014778481881670642114199641550569480025031027236977928320544798913827952513007698349847330166052600785527993777488892055300555775057283695808961125031704650149859372861449377114932022702782915798158292055012214568763829546188623820394363261265890977825246473519758156399588042759262091971569902912412142435977064329905132785383985926252202565038817071164342953290758116374929415716083863115991469861164176372769225802321437893949561972640283987923372270789325691105913812866325385653703602303243002341696505335802091972041646624125922338119582863815533778472959340113453932244854173251137268785651191578017517932821162592727913679605284801804124035872753614337851207917012510940027739382111666140295274777570274958794520563201086605776002747798505050831489204402416586621421069985637355324011994301947584765075314888081525387284633597360319284003327250149969467876768201412898778915058619925802177152947763090717934659690497562198053727779008155475148621963803661804047443213566356836119134636137142889167794275240532453241020486852372794286007374619274163613360944270891937224738446069898740693419705536506908602181071624280049482525472116025938670209442365603406687884841910300691390494848884760146565047660332363466649467487746369513512799138882801089864116632746276274132877287498686486214959607574678674639094618375468023726910889566648039367370943287584372561263537303956984645310841900315695469854652821627905848322356573941730906299718980152981378613656754715305041551757463653614795861950924149852391154187369226352821175982396242443432255630369150330238802401673930374966378071211413858376522989877347147343324830427322483524571865927198230248239156769544170244964072538465144825948291562588063416308075400093797858337701807920098386595913867509393252603671290765275739415179856138319754137850847831840915565150639449566194866601154148273211623486103877969121182062860858494890117306830426602766432478273150846787365138971283067255923168822097138107165024563666134827058185288351662242445739642167770555207768929731895008400390522436387779241498731271631718169132318615147352032642869723307238654827226259627104119449497034138756211689970762961490640838341804934741422561826655123170111747192696580746478315529321573875261404266287995651514299585437710669490320197253832327138436835891559161944810103720782730179443532607838062074202488734528569898193743970844675319819191826008228490476710500323302267072483195526915086856547016425675556147403103449931054913259854605503602940274315682859711659292450096501856548945584537553950504926157310562030199295277014330360201317508845410219140285888937128158136679527216650193066291676072400854463222766415701634508871222647634493729827339589475153321398184518767291344780064782943430235928519179469295559207104824206823413213162053326866311104799957482785005098695226291598005635063150406825044871129158774192647755910468303839549090595948579953440803815606629106051751565974426534090702681048678485457960238817128497478493718238270803603314979163456150018474542643305887351182708492668774457839432772290268692211378303191880895313570410554674840555063230734689123654609613605187468970666768142375735505037188764737495429001036178240719343423777843230575744670900526525646008300816304418262939836985688377256962144119523693184712337925128566883429609411118010905086930106085224106303168625047205856274900724125059516807296019139366709513184373026370602212447201992612551871741053667145213792905583555071054660429339400393886490932930530191380730084118844914437422004325939287093788042335517243028517733555330597451731689479402252361401109238735134049340677375585267666431062031537880887312081078175346897250850767594959375268940745406709315700776474177034489048993005669498992758226515425695941396720914282827622931237228353968815746077729627531688091305096008322127409037028772635248973318318308771029766930024550682490820709101830672879541450511582505399678856618843369392943626695079213950397531490168285452489933596583299274657916889323648321228791765181065254524453756161771342939823124624979143227521068097376722193156549515191724304667307472486383902338308427440242755101077159458160567445625785481028510196550857613979250572890002107583618162082358677631671644578869742506251884502142346201929679518654812068173177723754161158962048869947828366415797101418536092539507095637127201314226064152214809635657302721816447078322259551694282195256008588750588511931007206927238072947224583694098619057497433148129297318391408319981206400165133612272417527856808337380010855905333239396548828235773286202747906256277940559891109402279123126959281511084993864967523027889187385230836920994780307576104513593300668457096452545844661541749226854374771838112514364988483664238309677821996385540972192151455645827514959153241286649892920646565410029467369131909635100407641303119020434486996711676018925259113358963239512997020687199262765995053128126500938366919378833668107128845766573020607714912194258060231504272766243477985377945449828628192358221577664431773928521561843232990935311870839638057238113837220894142696112555301383754549923495602917095493994431604667781935473435153252109349393076122851720618668998315387618483712923451017622890531735133525664288986798434917435214525406748853941739075112236205556568287536805725861149631879616658819895438732086070072361826075864951220402807600943407807746395754942766483012408929586933766635258135195895518625726808694640413738474337805481264669843584150014646045648239073190144562648769215367893876550597245744122246338816962980397830998197025072272084542178032839046911465729389824799263582903315542881260868648262359707276596079027701692361332379110533458231722283932162871722695859931000473608995305913521904391861677971899682012585197847449716279097860708400723241983358400266761611182441656627659509031705212816593911383350098199431742528205990065015192622590392503628724757453950608668570220778008386435759711949073187389484852576685198391209216702450917304774912053239715752543445927592414847453178182996555922994068327996588597438488221235931898630690909015070171270447445743761724197076827997374767309597597545390664218690626379585627452950932277993047147953384856781978859956458072921269719228035973626349367333958688795098736388754317558122763363404243916932501241338835600289451745072950240820326187953661482394450078827309435450540655014636304456394930857549546772447090340814495873990593254243292748722796017719948627155971346163919873511331278128897002274300588418274173346728814581233876165647840527775227724192262292675042360129750008806929622013303682065608559824221615046607010066463104771158859412743126936627329013295099096332465792379525334605762233631489118199077689957133038994888913584184752489199622765142000022587402424336590528285850092533635770916110856420257729016342434400764651564175542716658641519835482578831029985906028910817487049050563311144262950109889910909133534656651639549910586783425688635333238593567409075313051118436321524431392080785643070635612966270838725703072450813978710858861364630720217415590029080267469860786053212458213173998902753948627394816519971806514235957453049956079411805435448260480804489493573253651993512380779066309855703615769291646169906257379090419003369274044514041716194403418859886389809411412235489604447193533196121684519381420826424486624422762733202759185818101977191280352603088387522948321187122065657252353070434197278098625863215845737275457444505072411045618604239303491547058930131470212560723662885043324049316710931754942606822292499860003301642539534540821051164987629208702573376946876829717641146196160891590729353124102819454700081925272405156880809666092971490972913957882166033708076063113723687011031060987730707815919868280060817647401826976593504583417895030199845631598864511313842901906322732877665670575674746918504371432544706722020722970905136808582636125958794777374061007764195347539638385590919698595406310269829241782027813322795701107082638403589683418008730829760771610619701079695682523423689212353591285572311188647516226861367963986541999316755860639592610926772037643446107370329860932624099852341566460618397516525694773907856121388013806969558992724866254719232360830133223118130668785873693913954844679311384632293248399626503260241867423005101737010254298861742401695781372428507074744671813987311611687691417186610479424198167163612905829593269474060289641626831141891774310268416849373528861218488801633655391424473039403421626300733577826534218839149971357292795205444906126304887671236059167431176159186548909874002673147062225330721595508369536079094026854459131319534085519574053467063249914047275320963212509465236793128426144836444363891603103951270453436777166104325193405452542532369668676082366249631594673011823663150791710758368911496724370083414237113525795509489559871932232849608549243307842754405898226022600356169680922835381561358789370662506309341557339223369713345170163399273092716325335635484596703445474048239073372519806893614684969242339073292846406783890772266007595796984566505973814492422292104498867457862602010039844179232754678758813003365111190288162907964419967526835540856941638950081526923193890139342584657162684502124833255050934685865544875570239955548028260244124364445783422931244812248202664912747661577780296314037805601772914096125838502695727933831147636350937937106756504221442805484006162630813453045458516277705004954766439517078264335049634821755270397710759646702947209133324872525948759097096848732903851755311828939709358090743781825838786384048327629047872352388614039260445099873795844809642048014156371026919493175876135783080434183672341353680808025122203165940131806643617091252169739629436552137477109032162643172481379288466094851879064582096456704960934156468755983868845219585210617866795425850098365627642567385841663281020371159354289168007889690093411478582746597498925783032959091710744123466050544831137996826437917625125480301338814861142459879360286576023208368528022510605184940231092490584294913525797673069588077790459663340276776800164174653556396491853853608208597408601247732625216539732645608231360939923758248863507414331588234452794767936855301785846922458883798021272760397633961635589443227636167295033281809569186063613424652863488614995575639174677524728150205457281982421918011194930780530398491712362137417109704898656176936338423956536068887394530134071327308573636289821445306608470166340311653722231249250448638519054945124915453964141036224512984482459449774099780422416903088729422812575101259834090860195617828955833630702735321280270577426121206944875198287221878905070404593315479821509164433239544417835309617449256108661380235707939732659503421341490995886447281780000198461421910620907786642494774540206970605963165133050375825744064708101555140974612508114469113453810813307942668106841016326706416778095754196292912832947006665368909717851088876032950465168367294579590802513425018933258073717289691445632603007861612032572039587571369615803917661658517808896377307358876566344792372163801916305400301084005069218606804810330325533226005788990269849563131508189153792396981595197408220852100205897031105335162786738547597900785732814229568085401729660534214172327572618927547215512514261828474969440877521413382230474412037636598530950818300166332262352218047832628940989218047357750857974338047656969609550791662741929496756848424914731245549322849248848509937063133644041909879278148116446086972853557137861302297164496429108607211107152792300484570555689857268286259454705020559228297923626991586951637908904448443553382412035824756025884169546515155196107353283231602551353423429878333309717482555860942072174622134631658296192628021112862562886273249059865518594246390281862505650817356282477639626842855826054099975439230248801887789235952172946422048876031347601158706109653684818253979003116148152275142070506592559077689464333659126995104650865330204267558815301787740984863484605203162070735348625613581153877081803911817178625253777518769567968754993216522176155138938191172174085105679914138512618799307985142380279382764836503799269743038042543413700800920618543797029983534435786525437066375093192860415790772499656512608744367846090141456843220913531386500684886776943464790825322489559008114698311730078539645106758943493711698923034229644491806789026197010564137707680783516641306936923180977488327968295295312506789226012504083742663469569129502283884993834880242551875185000346527348761419117491158050416674284986543595617351121454240575953710489336534787850090946993996844259900618749165856689266489908548916194092867760237221528796830673655581493607482833412536297920509518147860819159970561984317039975550942217381859028280803568105302250377387489146917014895730966470275857520511875414953877021449686679851170247323044808766411970588105718427182060200547339519686417661309151425281456556748847636636699773092217860536740356797799327911314852473522577337562181302053575634270853338746680201438986432890674549581396280369998014234809650981094007936333069000334201202433160217397797053850577238564177132276440420987145064959977446344160576318446209791695635331379911270860536089143450031234931670050206558173733446194840385393072835636552979678180229099266849820329513570174996691583304342154055815838985867628526815743246052301040329578468708676403086570892043077813136808225894804200120042850519857958688684541133889668554843857306457145842330205108842954029724541843751961263400259254046171057008700916227221958616241103890844503167543303728237700254957385109917478797837418860371201409343845549416019808803735069870874060129121356262683123881622533181445872893749693098604714202076893063554644897585563917238028027902254100935386313279022437207337640275749330288739720397414237237981647681723935161350909430493553973780487465745071755394912732346723279825196632667883243492989410937405246358289671510078278807028635896376381193469643007275026502867273635937043339719035963947882138196335481840969195099011772733630027903821328708934056415809679255323549721140177388164116264915975862714639632028885582392564916955917141239145084239645715123333615647281615725151352201851816076504476550181899762299351305426239957629207667990211760392992419260799848360471417918997828204493380630155750090282857504903520080830510227695566215182282378327739948798301804846204673423936615226595241226550011628594468433170710847072809524658288275281124061255195934132880995948094150385681254222643308732499534333826486963013097932668049997476133643674591374454807232175042816813954796326311203504624582151311033566928488518344241475453192884681528184028935561367768043209697882518269820601391415165214676397431587504118579401948023203600719374277311126742825558253980266035161315054176306621117903981948300214199914757224279405134766842717660210170296049923511122068664425293077100152541313682263362202288806174764075857924610827577408083676447074789896795409490347816613105080605752829652461966668902417433397027697208559359149536736834641302320929921430800307530206732228741830730178395568570647744739466545883935059944095109687701910305482443514073205212684078483755230715497848945511017059182122201424489468421668138292535427023388851921824576744391894596552092868580571937850870258519018831474387976290792337939351730306484831699790670865173170553157599332069653210144768279079026850564331827711027938108390803724232379924773008348243059115465653717950259229533759520470949085239689854309058664046743039398016467638935005423846680865009098982670846724901852659940329983635014395823081442028727811395250783463643313668194598199341401898015819094566461814876051707613548076119928470473002531246449516676608219777526138921089931171974658590720981564020080899469354064051862249550933616171345522103395392419806263960181382455062457980689094827018627834424341748704864329621168093078734542426862589849918336595977340338384569649503431581143431101464670575251778794557255704915724574509391706773119543009800058175429854150759876869275255893410986685534903393721965600790622343538939416988672668903924137599078421563979883999713275791087890182919872715536962879797864901344326176344569029453786213231410407585403988761579655516555545370424607815850822017814831569366469984086545748838920096690497532007519833166960558582801791375415422674204979064165613770154447565449017194401639109265658215803584646976433857829276021911160003918434436885805932533785676749870931605930928940737253179936913424721024026305623953527304414629907711433663738079281274927092248892425491465533166138523512011214804378485078913199242483938674365022231848130135795460975349437287579929238336258063319780590899320286693125240791346171265799267103078117598860329322792515434701312339929700759974650973035482328425575381085319494825638463050811074274344186677958371888458852508750037649300442257288890641601716319563137992752721469071212371200725572021259196413063049469258602911227491702863451781112067315790863756985935879460165717757959067518501205959600801773211817994900764965809070674307080689687396860366250569754130069153156505044572572610062957551750492950809685680351608844828682111068480851885638712792865174405874329387678289537980087901457730875522356675821140470255333067004997730670258460384004973962237496825994293541383737309610197835672256916280119692971744746210101747024700917365838241827395919518319542666936422615897631075287229870476313088026976216412341118963391996263291050886335550965618711272568976489295772999046268403648465042798623810124073620778492683972357997384913884501911552019069348844149406591178865343290462108666050561608197697841738722817713355136686809592479249066801142378564910323712340536516015532202071731240657305924048868230950249920932062177301395627214469383684989454291877867332522645405602459166791308157902704595907473492264353592409263899465483022585903491702770884808857326964395107125911556858835274540430656764338380881166614469291098467593785360954633672955068672934975635040166918914992343640036628969572660324237470772591288733885891321573036163695893130777278774342216278930201792928241882694002787471353721257726572191002029788811834169921946341399955795208138145996720163721759064933719799017927951937320810459400304622753859779571649313414218852433129220630689018570515311558341923292679576732423347979389433748847823588698300537458530463943601343469116284586159627082014897894606723948981086643496197115802772814962196758813711849333771242701914936884196472345382868822414301352341483181257696929180847050939225538861476254969614432990957088283502754022652080004228178420683953039832951555381635233523771483794365426547786924833515058649554017200475134198894763919817879251980276097001679397263944924067639186052736521491991885000138070058520621743494141714900884830024298900455430938339099800048931378799520282777832434890524723792467987060713279123664257294484421615302691368840778835492077598615815289911287480961179094679968515853696846844885667307831594777133223722644292529147099476088953472203803700081569825702780388887874428704335225950492579495185240387792219360005557866617144384210533149959559729211169849829698570377882259634072212556325190228308923818405950590451593984576726035702456841640204125464160387710184005357948562972157515729039047112012435874100820578576679554670593607924419527699761582634971342408945458726944267187447066454432204100436715444994182762621217434433221802861577995108793744845116747966614192802709737132479441540797295947282317624978460993688450555179341604123756664494092357891870074535568289296944666525655526268067965745239157087058968580834215862048249799576240272906255911592348083081205144780011898320824063708051837210070533860600641770357762143902452963863611145231282030857970896242292331014371882397040514856487567529173536548806219852954703783370647438295377344980734641967683129080348849825656892946056576998550123726179574409559369836486781450255724290163330073972249254657103860003478163868241099031413223138769620611434037738385332209009457463152294824648956840073904127312017522903720299146055738623123855893086752439385962864443338524046512853753838961369487163584360715871440559857294951546803069584499432689400201664327558806693098085983350500420130387008203501815267289502838574968192129562432079004431401493475073794115041284482708080845456042154515211349338819460162269453764473650731048621798997431131134972863388351230048902209987784801631908645076484237891759542470824766381315626744811012308924310850685392140002944544735286093368755571893662495604432378834285513280061572891648798806680829275097326124439269206136248512278710400889206814108603481978134880625620435500917490531269130988346004673336956924904471497461458360278568798667711495279519706174842695207686963954385040664449493975390271928296572498082120030151685775790334680587105217259992776598196746781149024933390882845057708575945954098508523450083724226784446908644729427405165712935636723274694443198119430713435139679444074902163377454686115126986699682069905333654083591433770229035637838247675631220097029465178429180057399387146125562207924331539272510800120483930915408179734072060783440040994425827346002945345955061020226350176677822937379253891950438203488203524887854625151702806978185310230145638076749547175948021870010487315565394004120743478409902427363799780419860044280039046672607167976007255140171491779420468655954673170559375223750475634816063805640128217697308797735148085644558167455415766514697667178658512686875713512077996607334751998577063667718607429628160971882997984276407056082794483590184939949153554510775597093843938914589956115342395178594276732522582636512822611985894183013605792780890671728733736186593532992149941258065987542767923635665323334477906161574416721331633415818184239837739192504693731391687745829132913715887083502288738345072700454543508831370267127168816921718976290157445339076383964418614032572464471414375390977288464084596028646769191679546073401314491234382645938443684534694483290317907396121491728348385914316126301317556875071926200413537328682028922208496154624678125887137123968132847128024335291466859532013371105613993275519294225186992917690145310014077064867465297020621047635034897049566924296332193400867010070459666008108384721218390658118429979573937676923392904208231632097301051487195570090211494928750340552674314248130850741914704069946670716946724441466681680618123657816348650345710892674153993196973916226630507764267891584812371605774804198881411997665933310782483826546073691269109253662009842831403692930130802209367258629401432651497640473613535138535268735384941915452058603519004308639719323734975763497314606028970023768135645906653493620991641367546181074057473101216679203793360642533777923430551162812387099586503675072028529123703325988487823000425062578064164126745383136137253229075102528597665795953113725019297215787701588101370596754353229723474170892793410140332977888876821462157670122587660251729905014701778445774578833151736191980655282744742461708359939343583938517469647306797344529771516925836684030329127723521936568906971619075804005754125466760639144967095743650016793862866301878384850289512123818631600640433012946246858358974642430970724834105302617504336201084045033339837951845862849869189561459615489821125162607968782032206484351780404589271464417355273883209324052947362197234827991508442798181261867569308479411674841782970574513844369132667174521757998396121824723609651035643267534095555902212052993118738745557161213565018006675742279177747268480935875330201856387275547328096607187635150042200275829235158236520123052776486255376816082476499805124689323046591601226298619921192424669573022124370755123844161032495317526899484140878952965103896639551046854081539709425316964438790631872936363585409609353856638350835173081283870819745835216838307654998884357312528173484842588370033265332697950134184197795441414202157138522497881754334451402085405559517586749639127229266398893157610852327158793018466296095261487870426235296645867391670768426425206410605450085456008817091481532194761583590663386027010604776055567357340922974870056845993109791904090330271153180231501966549707529175134793018472141919166273128560562691917277937059871729039215673995899049628941561632326686628369041188592339171798994008724913568631043047285071049856096197137056648443913591610207712779863591890410091005099795672544746861779100036839627569685313485071687103935705632068273022028966303452761845910767374615958316267488837553427041215583755666690619299641820119057406686394363337441062435065363151924775393750725955274670774316002777492077852421963486336011319006378606744814025630738224710712887084261671278478630435762497338449360256437039479010673500966899971094218830931969887040182311968232480422751285098160191200028222090229782178361655723847233269101265416453337517144993332572449140307118644749220372054753236541243645405303916841752588945594404015705714670686980981047760365589904815823294397681992489515022814791051500324944097422148105318386324195905133129375000736950483629311836848504006442816510773914897580359081955101347043486211793505842730047246749786142285746203080844865610525988861795509040897545927746246080806527445677436674122264599812653802241638871524755632444398781060991316950135276124828234673666109037695316869137669458865581283313353733539690969239881976104579949390266243596439340047834336416103879877524037815452492094043067913138438398981520992743689393619601975568808028905226878079245581381186298021015362605674877379435171757690563475186325039290864968528319162479216034408674683354342177846093058040388158427499495554160983907852079621184495099478153142364809293275958932170155342141280692299637453508335852613435213897514826560518087367789915261914533455733313666835887308007306582358525564641684803418711377337458541362452693800997683784892979736191942731203842534995366505733837583974126846171713720822020195198080607668406587737132822350328389773844710937119517570931226482144782730668388694554209035434252830045642162225181477384999091535789340308649062939117010980523931434536505889085707743480042219454856964632766496310611361278126359532339052349552011845523580191865772112685814492794490672896748968732300041049519196084025082485197565425878733852229146695276687338629854566222388814387873062198592218824765701287385956680024645962007149060611271559080408937826839851643159557801067522277076129557034885456996836667848678009969208311007406669178598764102641456160856215102830188657445760160984053122141192917870495336778808940858455076511671540897068502953172107672377593110656323106977351174714335865487445926841226124218326485581934014792673343981785720944425568912321077892768519918849016277811637902342642494808503384536553430160307102603691444943432117391489632705561754721498239813198990888679111886174188689844071475279462231474023092898039858582721851112981652603241372759205149915223089882280418484496568538111433276737457228689974231154832683138794138348568555996092781980673752766278091030528211571382679075624016858945633070479006424728552956826689197907156372874783918522140227246659316052399944591056529707735123416043045417319569723418384142805406512102578247514479868461944225210042403343678015378547088856030534965155887678545394022815448156172607995658712592521066742999082624696156636409121628276018806512360622656000549135527326923954426949026905080413585624389329916811888741454792274976307936976304517932534539148125335592119384199632541309228639476129974744093993912297927037610953599327996268538906585078622169379675055184406236160266155196153871454068554660555345428088939657999770151437332271012311491725286405984582381289350386623746443849684632562580616968366350119851509725902639640725373606240548998847664135435067624745376343760939144767644795917471250959842808031413453307516190021092268665681315301263780561015407397964189677943655217344964888281591549750750583074411505835409227493009710578304290289656431941274568914135836490638761347518095723563556226277401541017593017086860038674916218587156008504236529239001953195520120222332711758466267894697028546817824246255058118133261926114741106557917629069814132507774153896727254855473365856486872472247806597048204986170676995848041532703124043050157236549131793734149882995402256261830962489586280624758561178897855254021161976147477763802297230441861388053232934930010305379507511373515248840705545956518831131341487757536560745294780259490602803216508809737140657935070800611587121354966083491782571569606301150229676011058773808636689066658920017522031527316266741334164313057801663956316121806270081417787187078593024254915571662683365449050047285931753145779284409998526117753133407389655725486315965939457372888117062197437687579076986583071136171495677322254938032909592356088951692241830098860044548447425489917511074980284297700384889265925942330962868687842495982124517777718097513903559378524607894319629862163422276190993481573230794887912929934325827932202792683508541772006093781766924150531808606675402944488095849737304363938653914111918171225402046387063573668229147691915642767885833950232510351515815198289062726975996771817395425234413647671695403607043273508154044935773773687239825295708001615771449583019311317089244700833179862487171128192891372857853816549881317874597079040448026039553327859142123175257967447456545197939771829671973851152584234012844183763007698327860013423574840382674758981906451167100437205454854758778721528798139751593528993181016579314309742642127924824174823781832716193444709342904005015981413875612778959138738603066832573596876524300777964531285232179808557033936754772217229759499124358684237975331035462178444724032946794270432696693205047289862581641461744027842761322573728218201283064940948379667255659927196099914573472449134060994257394434730220421134537154491282527776155460653787197588360588661649468545731417966071090635947627493294272032734558319567510511092800705477041878570644628779301955547492526497388751229961113399993078676187056417535516917913712168590852501418063657514152792856508663067278828860066911634255674717675792278814578489605483873316930280907959250599236329676265980155527568136617605634262627066196246048645506117784464929581817263018840980740735610841437333240862294178334259581496363128624123017394552410847793980987226916287690768764890744708710044198922669433565790145197325121104809027575688569772500228790867502160073494207190938994133090901548635421411039275350908398306536823465033809018233691296475042273876509320369360214106794275349641828867396849096422366295290002622186199795861166614794258753371612418392521772246921814182185871079183196697592018131499241553208462448083153858633102615734593509862097472273544949599576344887234118725362790280535614732143050594588593584785238009298805325086525063031014723139738479225519019882074392634625323526748235419687633094204923750123663265288099943548894906858324553562911401677019895643756681892189118098842090801964592278882729230209128923698196884581951397301947024356507403743642289947448614487128457953988227089550880373733158008837033727788454323058496411396538088250795864419071864378152794709084434934268152479286997588500017738195700020046147842804956243984183253844607730633798674994352083648413591912145755440116210010716961915937975838378680288335873675121306766169781618874364963323227530834517679501003646043988141380074890437068959735310861867796827718471062299939504094664266226719551191385391525369633873399370137793846063725766619073366189124633838324088797772567512947296525368581951051928494821642543541198217958532257394471890156511530879836351227349029015412893616787508079022252265447473045879997992357543466288763240263376419407335079391693712897457236656808766254021584505873598653868096432988705630875594758615565159447823721591394673084140592039334287230916385782948333077614149603169027612692395532878710411557329619628167039985591327755894313054804450862270737815999493089504517864441421279838645334975377669848585170890053430196266863764588592088639568283596371092441357220719492887857306020565025365829961688741508171537682092018136921702302287371525231644828668302943564638208604684589672115878236008038410917739893929558994677230599845240028582134428348054933808238688194363882303233818261838067672387717144157700591439905978844151576831855598994071457511885506413587121830009467468356921012989081480193080283863829061461473476571774826841465693759614407201342591758481420568205745967607816902021108108253210464488697267369673555871059994763134710652126666851931047220205153473763191789635801737997968967285163755334070430008086490371056764240003160656414125825446020330466389539085511543834976495789893029254449392303670873646962278744478555514801925412827229871495171998938976153509158272490950447077049871667457182945281784115463083845788271894137925499832907661665315391292469221497582412873310603885289300510530005709369032880425166016078937523578200012260109188077032216110369134407778606035679624328967991838546045861653862864719848743266086447614526691731280679540251341940128590684313064691985386437135888565611829501636909598954372503046429696161110236180690827942357705218399586768476515563528408175136450349628655774522387085624463801590617388061662371373806861071532952255329477214974982576845954725683493069466276657087990099686713317546866682228961479378582194224678723088772547649417632828404388001410610164404650696700191585860894065492289597303957788860564318925805157893786775519437636178772778940401988334787688115703837736008959075028042321297980904580223127005727084915754519116881759533416609977592285069511723610432620879540549876367379387602286426683728013976216224289344723584128555110095909056899548906186133846235570499348366182898853984600136267481186444298690925141475448851958855043717995961827989533516903713747608856655854242276798488242062049330414894904306204889016147440315734959444498796123845809257924037499174653053258572762760669933817892124893639414505942209134846731801146829371980847463646413870713274903092177854423120540208700867447338205573194741885258590369324729277839767578648973852568052987467673500931384789537801766842498428244367605696299916741438702919173383149288272195771335121009543095777557822824843712035884738714760450433094979513624553882045822988066976093475405712843307525362089286565767204304716497413308727573132158476545157911848713700338478300788962332611819096199266155259081214081694756104325539384655429976251146618201835488159926067890219220419754947927789213488492965847028359745469818424803148371685765570504010459113245350415923268112558727709610460185640663421740324768546391843768963077204070353485409350963719611823365470209539708090784424458301902056545599590950379997443177450175710238108852340727781952799401800196837253459189719268278646576420901809562818173982335916726180011579987735350199884432917865616481712312776679400448001945149277907121012039011484190875098903545841500346386325878787909018533204827035156191221263465564099846630691978138377332829272884298356952077185247913885212246869680023000937234709094651944477487295560773513967377014785604255283511915493331227872594042251318233737522960257338094976099654907249033637321935393084549508845045393901192205623724576425945278967541652821950734430180039556576924245970923842129682449284057465929344833706707787141167576836660618317177405038904767676584863783261656854364927165295320122732640637396632174912462292266583113892151703572425026038785880756327892342749438875354040871181850452905054815700869309305125572142226676283484395595499208966431449647497337358188219931444776792035178565688679596853952901379214437403943582493555233098995784345502761975018652680592569672398993969408629602789702450335130371701529677346270643392987164526362787039146340511613145331744853349338447079596940611874986414145319250776094626395757974035485752941252158852186612267821223933459885464605385339466752590441569197169803880134153768917823177894434437587231886364923666999955959149407278925022699915007668921091079408568771144150508095441869114625482192147904140687686383277089508977150054646368354601054695738372377069532505390533537661966110322528558930208008093418269403224219414965559720934290455182832499841334126448822873041541744089296743414948584506644820101081163027387314114332995383033405465685479603156200350126979442877107626907379600087827319853943895463832733273114302074836360493866797456259035473536651260112589849886702865211033262336546403763874280497356395540525986699598337298816193604953983788822445235762387495899974538771743455405665697282716371396973713333933831717954115953761499138606043900366168557796637399109815380636749168236129212737173791815658543575232373899828284699929808462523595921846144757850461084014152003929631223460919175236260605916292872487354249729985867823484369944472045477904511036723547661347463770887067303276086802328565938646892107885722352453058520516710413821365906778626737702913592087981298708413877267966961916763538877306931834734426213229336289628135246754224608825688629144601981506469948958008015117822786898142800861032597162411157012728465282604691847850915099585966118497502157182936648464532414188504284743142209278589894199354920822570550576968883145868259166095569409330656918992601530506381898588132874114607711178454971646668016836423770720658996092714849079942914061495169183763604420687282654923426845660241677798029713604912929988913464876339772461350069008082079613906414725335080401651386288448611100010067278614741311336203876336648320462923658779422287471802175492481499185862650170063590211081032637616555791934875803806742890204802791709649196332602837873906855182551905788983226704536511015547711127386515730675004134396959681932232285468154425666311004982133439477232351006935939640473449751227516246509613276635736043995588649732178427537471656144336510204833714442946524379938725205006818601264038662952639113777626823044450572128188321356824258172669642868312589689770122599331935188903813442592495465659079905592014130111242324382690493326188279555971629784657143478922370794534242000070171315083868518461824641795714000292479133611724865280328812921468506199879708792258245293289886086958819190198024758837780329510493307590198247736515813377224759662535393053256107807105823835509131683431926836076962664361550753042337653879324285300862863179910883377656874366004191718924391514305958004681946765176887237420204218524552485220016974236275437816195043525877469705003338940810235800541358939714450847000481306254563643566844557286221570723282654567480643687302892874508829108915569914091839792139053065260944546836680207382843744867795950886515674377439083741028146973640889937467181183439851422901859241738150316574010101162392408203046817273623719857783846107631059171960900571672814297477434433667194833660742795660064053381791139231399966844596759756859778881962313991151478248904797639492244253252977522748386540947679632493545278023742472388535233954319304472934430927119069134102888394746473599947072898343976818278128389446991165493121518503099525940537606522424485651335153908450471451923607380720096321363461366132776336916467751323230907166315329258587254559750980188668354923020661967115152533733898876399037025339376661058350181531629749335199789174215431235781308405558743731892232058283362834463850401985993431091842493487295898920203460269363323120995093025630809148204850729313907502848418106065105439300513111686638387320866834683951570796736428231122084462471103957642838045241827263949850681661384360024355008498467256617080959071196500803633155406680026123812535483740261593375095165118767766242299434502825138099361895679175589441874809011404800758391606382614559090840378157906797008395444312582355593133015391005732212077046121010789628213334294135666826385489293590092857997514094796325900724222701030589563229439870460362454324565069551705085450873272440671981137930991989770395810361457923954292932034372747617093409804387512931958542283724485662091195108206029582595161810712291778811563580409415596262206026818195466688620411747930981873250877488199837285551353351426162264778738393034385157379770424333161203012911055353913780869975977865543437065627252676418694565133588628148143564411843049507171405841275385031500935218029739427897296922845446699568405756472230593276943263721335399662742896746740571724070949466715298905523311045978999048683427627667791159813946536788493938769654097983338121535723093338794915406396542657419886070147255359403716611726313795636552547793226278717483161649635242116596972905991464719035098200849481950276002760065880764319030532049700006322489087955784988156604251200306866711025288866969922445012359500575915778388487333290703878684635120827518448776561714510836681614097470078494102796627708298740282772595789997672208936738229055886793859453031348818768269112269294341433178429421802187389503993938698765316626253717159527895786072180903400384907624923234565630949119506858749591523556906147629574259880366943559449575037046843355208135249537249338141513332768180734457116735870394639226020992048763126357083857885729497144034777011457047284746942868747480051796850165083160080838445009524412524738436744948111428201232655626663689702443381756199888734298208266628891347108710630472619172021975126272575966758019981209874865067319408310673313133581208117221173917579033601212975614027267310067381465626498791419135208458334499844665892872321924227475338546014669980177872280308676618696954649920685323319847028823989405837112677437731990375541664726079290532164948538269467797783246030094613786370011161286726977185627557482425148969151426123128364639032613959370814521123278283866839967652318049863971841116270486011884707084964029619119286813621668526620000462666369355042014237616064405630507137824013904076329383294253132857665953046339280100479223467637770456427475201965912252759372071959189942537813548999760916703498281298506858653748643579312575029852681793106410926403469741330368573606719499249220547438270419134879222486660230873840174380360773704717903488536981867193783607946312675304859318200326982824044008441677654575102330607311353372776907139932940933597448373556836769585111243410126201418490820489755677290468669597531896446395287535526300768487637969030015096722282281365840205841989224409693247362110319670667591483976755881253231159065874796801540395345770435473826959798539613029019749177258512625291101035979664843949296592932156745886857135482519438565057769829882968908651353312507777762944753317198319618080435884916923357924291244647409427263429362466804823826183515016920415229327623743250205679779527076269401527936549337107868665285409079444754309807726322078570396506093811882756836827590527031517695874190042648170971638490117032915951904233088053019005741248714367443374343500365751604113703132322920095802999190912193967632118838388998845322794764663051468597335803656134059684990533559337264718956345873505536546906702199762124341652334512655886184622475046647433898624605051905170950285986523165223471950044638048512592173746696241194624275535769742542412830416782213940883084364119702423519439876027141203996442984067116828051827445785376535189196147677258716348279087574797485945315558832913255702070229828045804953673978406346985080719182359132260085917390157947843386359325134618558281978388777053155903521810240825628040347415934865789735989202167862519640229217153239581394438218975352251420800750752611884171344234380240849418219993815942429821232072043161594406989341542029574306790380281300075386682800514942129591841245468978634171154384486430306174746578309188776618487804044267565889143670559201146264578781080212389884130351656176990142254886251405564103811103783317346075091369466397492810636829012782481918682849134786744924288456504775064647323857417696999213923596423888049998547145634303487958724214010191601319142920338983784285422691099937368745863596705425073834138170407896891537381572222783522127775438288222333565488609605573106288487854220236344039760792312549838405444835038070412839217229950337881310751536487585304889760551400016319178543347674488898796557094009086183784297314522825233417820628601028028451221703091884337057141573827369026824477618791760284563821984569419470362239445792033908790891749134802299852952800379032957603008462701158367716469993188459513374987849331734140355746673455858752283502048497995078049742745200648693766736404060042692484354323116343764602656325230177817617625533819514311651545410399220682838176593995932072252898631840147837009831275502987414513896062401234404273801140535922992009670119305200231006105713020487240841757804085841323730258484854765004167788879322005005636628742645309390250978833185123863690197821310368043056895212318907109761822076670212909297001586785104237843461519659440048713320777675031787623697938415132511526846157066987564206210819956854311001794283975400632001189403710227381950161671761688004167393955321381931066399509676919740394809667028742786352447676820621181751219319380622528344060902603179697771391665534198033428125168854045692419986016747139974660898060071658005234196216679078054722637391350840096835843711355468272937851717900320844808638821750745735623916394497755388503617360836558672919158457140015472543755070846382041622139329071870280802206392300405244361680950558522170048330069308422423560371851584491468371228988842968299654669966223907749903798235743026791697673691437302556195911148788181176494053001772544269699340951420806103413970037784051308967244455921507385369892863011261510643669353334452130994182687155753089496495946176204013772926409129138037934542670008399984495813663735069135325865109146257882496083478385351027902238864444545322278698568394686758172063855129746008561929009156446623481564919413993132936239219893378169012668658878236954341001323401133451411053787778812189806547728667538120317612673097421811259050794898465185579587923037357260069074889230249249228139906966054419240091094114411647902766146757910748080227769978788965297859445546445212062245492189030324371539224107672904640472097390458868997920810733892185286815418191374254330415685980855374671726404991888381867409827499038362502814878900422197377784758822733027934379289312539917635866746833094677496189546221426832640489062262667512140181177417957494225887284190596065494223740166916189406905139998182596561261680697022167475556687245682220787221373390114011307249809164700989552701207183033405473402888119175652190593713207987863638018497878002216411677452093247062809134565985949311018334025878771936577172926941360554824728673761681066520898872429865131975079381631331974976599215312589685620737166179402929539623956156931540968058370669746573948845412359852798234123666230063203525209777557916343462831258695447640505803856261210526103976724882992014284221795171464302154568018064117724635957918921345760015482964316326851727531555951823292929945316483820937801835594735860871293026747000635520616024261128942441184892436924009726696110397552877003863882241172139999072728138767416730972805745724702641424617290091530079354034141997927198666004379376858592624342344719662116553774091018165132578517336554417546509728791933052442436936880381250136702086440095747321663184947456452863515826818038193707409924372581358943749923395894631050165793119101331880608773500859112475033053942868986935737049006495813946286656540444501983403970068705401403802147486032920347486216248165941462959200093907814523404734184234004180428339039480562552730377280926865708266837257017326751697342225923003698812571396852600290310633530253726745715238603244293219503766093487886459265793571916240639830221295965088591232856305632572891842930546422069944433802726165841569012087993297517622711546367433170222762035063111872578466223641087115319827442942712799999176622524015837569327970657506118679901820378929518873897264062571971698004734701327792538749789995116276097395076694662230985184272703800789484324899443796402515877409729667277003249244170432240821877473617960168083418901961638708835450860724162922365502073820741940861101077276453834545555621993967883104758377039701500990442408061827197643155068980831288692500887546527661165298640214734430747037561931238155042309121574911340461406222439619667227943104555181320121383302352359316295800256503596740059116534468382285422293972153396349349364438405181967005497111095654012740918843223082952191890874671885060039366755029518971506401541838170195593463277312973062177006862941276881373455916576541823599010624747861956414636716858815267793699106961444240794219231727973371791499012386314517919753991833207616578677462522914187779441763775720305493979884489121826617972141699030628697275278566835259093312637344351002189166401332632468552513165532435924369150992899896574284680576038303490425040840803293602404664867870749728813260891836172391454577642071510622418008923387469323368819902459445824296931407883213829958818457364427646640550318492852609788572328801517406381747193643359745794717608414462790558971473779752463171409834489553790405743924129849104645845397910613931808703508057879421952059683719773278686484551391834765372803261977586771482333922254649903630897992133176039826866694865477641413420517569994415402598007243339120257406656940713307167346034300003131434268579239694389569409678750045194071211193968482029469442672583712922601157764659449721133347965537025213050929339638347367520215668599002282762602139164459650576732987513559596917869252007571618261678791305782575021632131308052347818612771963098903664517933200853013804515589855007142961156978739944290147673344028608980745158107378698234398109965221652686428494591570051720535727815802718383829113515033931540273617531202348665643339317328680444528745873299581342216410748344182708671459772251859010410329040087746422731422829162243456480254690491888948089011653260000525597151377725711597660543484466275576571168120929238547638266446626533749845305879827092070481238922134048621898703527134708585838477686892244365247980399676182738105781602141337920491863923708838595690803843043604537946835404042335934491389916710062191756399983458335523922176157969667959639688290966988576370938139073862879215806927811233872426159982889211192640699508387504791300272403955950882891718858066737033137124586995765411840534073677576345505966882140387149288528501822347056390906776658353896691253973465754378656574141394699682880766299273019145207244889893892385359976468309331174035770063655455238044380281847292819864384367018667242559931409878620402919384273269117757599198424275101528161918937751645960241782719053841108352113187728004047491888401330181981516796549944874319403671070778875558198545825261739791598477586293070291707938110740492121248263331169026814955535290872940183182192782161266740987350102254301156144384676802072332253434709331147848925382719646303852324951369605178659386042561051659468217839336150530093824772728636008680376629387393226809314977538268305142866293189323313527964520293058520891993449498863177041353500487577579508734599976123260092158101471846077836039509697872530192229861457145443085208845788999109667491775607964918712352795017412540116750619304839224273461167761748932490921540752212655876192295677819075289030741939620200539664712678691832912392846309716228348682134688209473019799988488286152872087534808828839974723799559979457089931466089449535184491745118869792448099610070392156774353326219661542853713400100286852397801837735196418293225974470507463060511155383467886716544280751884155833310278772701762588393999733098084567231368759433430171717439228541401910624083883329456190481320311018102648341910549247108624335130370216012434676371835107002044418723710001078809841201137105209895072951068692147564849685177449452573469807874702732741169945280870026162878261717592937912222192057966831219606181181547467477484527289635987313063964101199084741282138622716408691781697447431008207249038062346492643802645057390690436387093327292843339243056067918235398183542797491976323270421836279694256056189864780511790920949939665403788391878270966854754064189199961326508967470372090232470678480957379548782258719536680500227345017864047100670180707143776228720568517489998037568920788535672861898836396937941866426077327011770112440784729517674474301335467612613078824267075852936035421273685861381973457625134388222906173788523296182857526772912629462336959748640381454859887893813839733678986847703979790456997400266510195126820871899364112061744739574884458670952201693127661796305231174076440463898495234158079715733468813133336595676760458085184157603546779166002421724388757339870491568483406868861191190359386001003323129411814060552328772435741618881886833274913682346631204507079726955142605738073381081585957014106906537253522093076862892047300623186653485247588473191408180466834048937344654664107458059342287900436873818554783594226131983975017683046350467226334568520674132771681632112529817724788866960418842413852190285814054456420917488514238512751289383407982183856001481617322189719573758707436784747895294639621645455057298998836944881448122942927431137681688329650413380665162926709216863829513883156098044502752552239832547366956347775718170794074408694481522425288312209173257671060062097781190070872590337378227929840504422724588821105295339377061714944834069054099431294220400925057665966379624107906361327447559852164396507171617514228702808163537126807658053538293647231130616677642674089689484396382188497886716576721432796537952202048441402750667665181592629943931284095451911199582279261195184730159628611748227563298120604847998910549188964357923092934560659425553682123074357895140458681143255937100456905156801124405807609737919612909681043235418070778737414836968164252552988062197310743015528677171077492731260712135642189632676822507504842727843558482695280339252796830256144191972222735693522404640619062244552089398151265122594753216155080455621307194428155953037339520309936950726486779845112532870901699270842593259554976169514967880953442443412539850857100090707150430956925467272410823563578891794561412491061349368847142166549523400123971147857265651862510010492597075805640034749533125553500737374860553031109476404854416767803861758413465329955299698954459561471135688663783467011888915873825225167519071562858908245154018734790536993032433007940611700639859179464428307028095769983687886694063833345094619207677744035486422797862090434653844126092135534653522763700422997438459679854456381222415985794160485414258793884604063286899465795946338223579786078223731842914078518620115527665190305457364463276397422784600548179533034779829145767523130812831767741560976640345095453490874481241409256618819317512996800100671643767212720149088721102080422678011865671687741989524741935174704547411850205316180441930730786231216082729204671365572497892689128995522316383767922264445603537599435148602286975681783203123279021286824067969022360209370889958367049010440060006313623746488148439464043131698991669811579330176009137982172381655798834192127279484533966621785028520618999028800533262855126280909114823757868666582514847489841127691387176488353061747476950788107985204528765499499888347450171875437842630669489604748190007092789425950306183610522612971656866704880730370076303860235673474742334059832914813968949901281789577677092652266826539098670414175654253887357446221262440199052815880499331683481772528585537450723741239205689862956087757261673943197354436827731007963123080183712363455631569001314061720075320391045567346972370292768558527260519870799673296622201287758300053633668307069049786362939916635138409843965320145150807639426399662201714118326166124474106505172563850669960866901804732498141051623751084459881282873003317667511726378578083668403723210995448570841149167839610065852255482020946458665826873821901840361322902262309038419392895970806067614688857297226791404044382897760485125499081158770057412769688559870676958686766824494833090536701972106812593213232229150791598178840713408429971093170817188508385872996690700882973791502622340859723220510645975081281675614303855581462513017218503227428605657956487868430651069978358466185020619227215526079476051877794067840071489294501717675222595094893205047549995908535930426104208004991519599821405139220915406666509018089992873064251377563604602763435421656831112124258677521459122559002442104828337822179168464279825110253760437764335348989016223853140671381752508424282059420747734103042327875115685665183030647533821938859048960459546199871396870803896514606503526042899549747078332574197689194710403524342448466389203926657721618139113971250442579242098703792511119530000561844838995465792589640064433489289107595154620291291409129676759155343691568723818392203196513507033283878570110145046022009769808071337265921530848240566302210177880352602076350274175069604793312084624104910572278058288592187363698472956323393026209980149224051147883241844838574899205447474532113190065233520591412974027999290615318279226570157453429439489490601732250057294341198308724848726175815575978410134810401394691865711294488557913159091772539101941508068371536834395456505860586352380794221524182995192301797951354981838971524413825862491513139631468305554841096088503443068599077644200478221568484789272557299870387217099429780435060189483169686177619758214206404853444150715372407306024898654125459195466622115863167227429247046873342019730132575330857476344761847952779220173213210213130146050033970346712092577829709396438568038807770191447103864923475656827317473131357102880799663910460136877492337773500970918839745262547214337341592213603004990435254509715846912588807452352915161788274152602753672400690051759884965473631726476889561266180451018307069541278416938592527148852100204925774428291583646747914587969111745135559832330361045918978721826110022409090728482606331625219734255943085785528962472832630079217021202633874262896736234798365848798437730716309953738510194266921734249874185305375020505840820245055627439870226091287582824351294500284574789166453473275795679641171869445084188568935571800330890436850450527297601319006011728674049438534191389155964083526171056131037599464159563557875784021768928755315423453312397091021131283094716209230342606753047225860618519497394957667734330778147652460903040151037702969337307342330299855378277481425543087888941054956047354146010216037551937103783551122177361588283549051712582222259535798509318937942679583257792502321139133750811769010266015137353764070255431536205362118474080473294519030697497001896076863372796015355309180323494106223345613292273173537464022511673294112879393898661880532631338444517867502812527990787496709953808867934521643941533493889317329566368342100908032094035964571728342928716342005300707868401985392387100818751102363172799320665689988889932195792659431581546331118843450293157330094339597880570527479635909571126218161842087105952870735081354306334328055420458924732965277631484731935437807041886202881690115975689253541495038069442085184092474369479609766021761740304567222538072197135925194385893768879256792328660368286960545689538778835539590290107263050144791978084033281499058703837727569194914604991232125168255943899817491991618867419626831885062340173058001766671655409987357751151284642672332025566975598652721109806619605148640705983988571193841164328740770576961772916048952584274340617763713699996232646692808691309825303798508389996182890231886690411406677683901967082591291048658005567362360641435639493636488050738766484872705428444770413459777202462173333003800249430583198652452682111024703574607723373439705304518831354975943275274118972152134251604757728713876561195992455527300795305484628728019711942635347031245936891421360440926871608679553055543077549093280909893844768898513395278180983012060644331806861602543288470566686885095217938400404008663052745701153991558566355499199007829880849677600993668484498769703745889572378769844750393465568400021406092791912207884814097439416031933304198765844697968771731423556570899595853901504623001370195094787351026776403423794768755887984532026464875406464717898720915337897546570149642049398188282387398079413563708340672323948646460142693423906508418023257847946903828336256843455496221286142921853821014363481832932709091259703839877943427683299880476718193204319797380912252376831856053775243183698345109346328186852293616636437132720322850824345723916061236357417638437025848891242611866237930487993711023865723145437179318812383868526376565389052273941857115806529806883657865964138701827607975141552100943757222382659513993526142523317941789120505544718704268380902625549101977269704016911397441215899405574961212373288128315243968331266690251152610179546273676155443099060528679999478416013567185755923713420161641591422220440402467679394657802163618898080166863548484616567695155460549722984985077936123875941149570953655296273762406787554451138241817371121758488510968539748823870240153526003469756895275083236071502777247727689570236846186234341586458656141380906781419505120109029406958176939705808931478379614839651856149163506207413247842946382454817458137473633117802904065096365595679108011071138133364006300520243169313958203208647295296485182998432332807785304833203278422875360868022257888265765257096425852036069195091975113447988941010622830579280189867578099780596280938146475199647805034010684394641621381225529915900630214998932215962205757743435677491712734721685712862715111204662477690467119242164656935890649501543315894362494959216382518603868848036501302013078655244728069061493226090819294061248751033617038533783768519342910287926752335666481403796959408162698471948581969031288867374960671482915793684224761862627470853679764966090365605775657798982521350581690909096517208925480700961502999330969977096379411434651416627729456381519689636889168448310856600174411341429988904523070602167713986511955729087496363585973977821931465540428395555022015951815791726088972490587020627283173978541695369254424117804968258747542933994963561331428057751974916751858733973493495691066088610550073599043980536186365882335839602280255449235540006541855759542822266861610909092279176276117617438475783702452314592702787932437149823066176314274504652404856747532594791038291302250502856018010483930023205371217304023109093643793518583441456532815236888033318445054552652227451706896692013623968107488999158235729857480327868343289945187157773738639254896753402497300434167419039591422270455685397803167049502843602429796534123408076326894345738475537279081258050481211707280458392602944378342177987361172161685049245414611896386354192993853607321567877003119880913102143853845656926124691396371039578302676250253214547298648714165886791431133301123846964623308059842563857409993662408695404075838661758980166190482293155525821109521986276820043017617610036849990978951783493402691708625535754338845299469408538760221635820101182274635544313688941381733202942472819279596435064421261341639999835644428034781125906699456920791904663282655943231630485644386356360788439476739104719987181528939049129044678842062286764517488904952139974700910757332291541133863304479219137990157277045088429169556620511125649051512052748922649319889515956975543009927224309204752481718351616553352113877639671781046965438538737233116721626690413104900453616075854185140171684783331736040817762369753394828524424838317834652373932025436277737439136715227430304550702998242762370666420589386434293314070963972332232353188703939836024602790647293480278097581273839248177752664614075465678866568713940872375917717723345144954044879647328082068993040650723488863686592279160062388954972532539996820124598692435068323314481301117649180778671819516881909437280758410095580549448501637726909259165674995494066246454413031032347281997106564148821754081736225529505383373452998951012338742235387821834497762814603330047396236473929668479512645697975074068675821367293142154115486826438415953346169009180924085533408426571681761493713753315266018696702871303318455134693382571367877636294265627473570805563805357054191906822255522908102156534990417646165652570767218530909418629560841713697911922674877741325043728912462855396364109061234759807009857403063619283893583194333711571908298878483988510031260450960265190813436291797966372146411260455259864017302169730421757194276163959207668941570686948471120963108811038304409549862689055132842927873563248373134529408286409696909418070528947893856905956777090170537542780051498535640582026165839821085775150560807919766013021994257917172595198522269856965922378422293483828906280499927766208048357888162619855768577951888970285552159627701013807827495748310522929546346910643516204504829533933195551156667064711743004267611990899297798663544008736512362103595611658335376926376859041781146938241312051045144606040506179962458324416885405389016251586572484769587061189293104723911732821552649255153590886549606989861456331481313061212779408525743161236262846609256334008430677202987114380086874899120677099276155474828950251137458046627398163656856884173143998703493008635552094595227902007939899011242914418200347151916834716895524916942604905775686685063911452850154849775583163133972048651487740296984540882826708012316067869348890548681742201448951373904800947137101208033496207462170295178005903155726429086480275991564433922171317188176806276661706920831230530860790095803086540047989306874095361090283577298803826193596991724477174623115741723475583682581995734860233222539386318930648036155082973083239782645470626124813560140152349759089448339642603986258759265652731854466900740772516290565603790408615081817050805529605880864250403835511709524052063193325805725876868575132102836179731907367829556345671361368055840138110671751123593197608266875333698355057515452364038429392449259603903995112914888864337347380728972727505393453685726217809007219241730499264518453701338560281135033327176213348089339146937269787006202377296778008998892246871962821870637484355772713135816274018708420754644023654159028306051733385829916539859092981218937333616916062743095641041494763896299178141784176810563200332429946656882711302406687472635297891590928340082181640468613431541696531594126969366668766567783346366045919872674792242101219810597227215027484301090602241898667790070396285775133884757019215119620292096002033914197920293629467887277424048319652328460571896397369416134689654803477002005949077186411312193590766482135252303805643661925312381117319345942528311905356370112455816071178001085485878856678780693102291796036803752793729295585838155480438948020581510233614274564301013528568716854743888856314496819312925086489129541898841556171462088078846692050742794296535237468477632643026150830542681584159588176820540014663413938975729522702205959219781218716920351393800776219825731073107337983322699185559938511701368586857887376104525770673679430615760561058908750938384907431833293003299604785455412408825364633434450966856775867371591630461539524654414635887339877646134821041465519609272194651029684363584413883535037027536002567577377658918539301904550667031836167671046843609242593214143527049111799699429071209176590074045741651496149829959327597207428365161482592808147543712932833653979316398993801249119898439103126967623088587813143491398363696682188612376261184550464730993967237528596626311494758999699586552497883666540688897139862322378408693588330792922674423340492202065696808777505664480162600698977570996598992131265790630479917991704540866671029892276942590809395982273925294231602077643927234292345324492096695364438425379893896512844061966970565687439507596870854704666384398023564380311898714112148192838285688716947641809262591744353553541362967407844331072614790717046312301944590333866900727071636346267618534882397689514416680716616721262084526335895727076335478479251345026750917609730990317289479435044551255960716088649166996891431438770072780035743470501125566551319275772139902968302801420172298777941595614440792420915782813794647043368571286233333205479472014958226295404914608816165948181099453005723566116267368035500713422512262425878749826611927917164866825139312016780903093944672472429937018706404203133746431361305716061636528656598263745063789449871885033953773443444710846753018701204333203971454001946482669713442410656898454981184190677064312500830775608369245303726242646674896944927541461083226521367813767532146887386519354009869845699717494198801070814495533487152526925606342686846233165043026535272432415876783458781958749597276570673669418469199475240229672197410251035639613977255393994893008609713650837469967464719755172769651717312306104688962509338682218349552611114000692293805680497451897982088513780326510011266666597573917488975234415303861852483067858175926988015763416216016488659099688288492738220940086940286392757429893000100379117008475325764311760584198991536273030709068731417215671359296995760873684888488696152308856867049719008730829564571943263954049043906110546697432098170112104042695245051613515807495044781191761361537690080012125977212448886934873807882730536772115487445988114393472275218151630713407856589658434764634190803389475001105549886628153625633342109094037659706161548917582733119411938177866210484878517440380687770187047092167663714660847788685748561787636867170077822636585009896960994927808249733674307794965390843453811271216998269800349631415443822106710166257969748302995134720902907786111300176358230128347621107701252481689754141534984202350506960410237052791623545226317388401201658439346907935702436245418148526108192996789252068055555220239991343585531765368068630017649345916442532360113497240801530301459301753855530241378167634987562730533285496553966384418816263092534778028831756108675406046395020309257179865322654425949648789345229268314374618796662458642256615017712170771574118187175261965192246191002063985038499945413318531742790892107403624850048767800270710801656103377448191009404915908056563485076971688773803353393557200647952169952582648441200319104869065877991774936342395358613817786265346761489668500378423813929996357482500291186660289318078401301996616548061352601861416126900984091148623509920345269074670165039020279803680527880967025857621224977622800079206536001851853735900704551083199573416106851659415129906339738012479156362791156147978841337181329874884196961815661352756045337036016790675855623353846235688312700651351590406850315526292918498798256540358439250382096303846693706033030428585124780185097148261572698240523376959442886816566984490435742537994316734868698397788611419976937884122852678752548620404117987391700246559823292812262116119227526503597535108491098570139614044622976914965426841732440144236066131385823478025011414035764477759565334942587182952355700462296526885778377245136784122688682777004206611842473379876623626811150751671781799758615814635034374239849912214526859346182567066359510255833690087760464078136568492427987811413768688612961990767376734854069422297058720848481314599397760300562703930733729027896970192232995181964738432614893523813222829535741838067442996412481529824884592894534636424047452703716803018390348593872001178622491056778908214086778134807357928500769071911635789444522763868356321632727784565691324369456069982611172387027938105907862703960875269157853158089704583628144051638861165362154863017362821209729503297178938799964968293011956844995002770924675268005949140510757866059982927957936963383387906743021925436704443903157857354195567479538973127695900091725873044039574945346460141812961658145259862382306232312891300450365194901461936605354624398616339149237905358611209488625655206251410582647914838433724169938876890075610014585761306507038838102415885878192203482907532360840952087752308167933276637437621810372840377915290834876078901602545899048976919246868814392932870182431813308842625912044737060189694033042792390097449089406503258669379726994681857908276813894776248639052482101771793010636187862386612869703643831566024589265218923964003954378966180223637542736483054614701528054416223395027470663912195381268476723243280099150212481738800339152025471762512609608929135273984552810155485997439458863396797013588913394580172196106400941798245822169794308075170904319053404505999756478267892635406476731270402273045569559995155009111409067503370956576623857134164121369903211738957945020159511619746370681435871493987183765800037847029349023492513753272481826179509547169437787773842275971271468031243871576827544756131102361678412500948317835390177615318939899681302237551293608290751786008834679022205768389240408406887285981881312412180874111617257340779748230829407853659256186487932449789767042931027516365084858402831084824197194918367774559234350777876172489375217108079588535334508066493192319161505169390899446983692287914636623816560168442502092498978580881719018486769194351224841649267066714104759229750268679307374344947833652346395309966558876771682271098466645267083373820888255773995955292466907185569806533937609573917304208490198062428446233828857004665832836141173357760478880582346708567696144593661783294554402154039362143865082377513480452666498992401555914985761239810534601392801614216438799128357179865224258904640653991627180625479483665475335946217413451566168501452417738056424975104927352298121592519665572504374352351550496977937992631196417159296239641509745527665823239054198563366921586707569911282677623428374690454677620587060693141257709173566258495188661336027118792561994515891797616785524650777994305849058385920739206626046634053044720783477891892398219075984826408124919550050240915308671899607050823430515154060194035338205120297653207627562340455235414583966381328065731601829749853351440777881331245549520613826523767953314002067383567623654919477234631321005119997542034654916973386532384641533867229967016466849923911986826987707232218796812237132645824359993692029935790177078227257432372482228400826399604149821878964528832005888825689712371798510020973457062984118257320119912640199358817329384911012892705800531621046211377267083059561995650552131452798773778154652521963288582975904696415035649798942029304953194006564305108369069443430368354213869793952415966416308937699433511073134398846207185121528264031063968516626828023112907853586910784139459596309393319289680694064764974066714520437157304021991561921120893550008522450006699397941196059244799795891945293699785221950496297075842199564412532255216097179664406675861944715463498789847984227431451145392818878211210234081011952382062044511564433765918883349957859250538547577642335732512575446913114786419474445037952715448138952051646602027551181432342353873705865707592120334593963718764256834983607164540181960755255624809091911072278152587594236116637605674509487736167106962802727040615277855744942991313152616465692238781865719772557031497521243039702194219433515267820519063873253191914130922003253157452080430873519198659365275407752876069158899485026344833560274510188787051922827187561712645085585546617353155574832825945695861920485409831243899075452735606439978052317168849659553721694743442597474265441479065119904436423345362088765062447039511820945045281780572203102651254946784647252357869613797014469662575477434951284652049326759884879763350177571521911292339789852231401347614739114629111812200900274513332153842521915361630530240174180829204278371631768364248882375165693218835124219677320899697139657602768331088030858196381187808106191370263769669885608114122906370827847604643166025141648857910431123944208421747392076460067670474732388642983369998951215319312464199323932397819430385465416992820446579676196094385224854738918849975524463985856567538683064422915599924362589859866880589701665160502728199671107190201121730713628896499720693819941738615821307069239849701326179587915365136490567486528366262280854078892617965933581900561009332784029654991762230759622291577038098889599719379734593196201323093659911407866449706625104233164229238232338050074789337797569914356588680694317386558827886906659971037068313515544911279490564229547641578341138681555897810240103144914565797592500549838186085454574257641928248145126561440350925074643575351891330010064125637539638659050531097964235779439576568631302927672840115732411833818158497972435147878792450662206205834457871548164807911025159372176107341303407698793493164098238498489718460215578161126076062210332973990216606768781574199554261369956713748991280086667474734771536935720702115591863810789412971422706111877903977658807425792705925119604917388994296802300224517169120390963889952345276656711338951213931801740529429178778127569699449605649395950856182928834961976949153539080439860178253158055851410598009675384017286908158132699173070305480795108760258466860966926674066358043642016043754530113283936931759227981279571310108625682565881632028319153991113888564920254378451126974079444380952268552347573981953103998615655732718073292134628189271618836414412287182750419466081839621648715838562705996327648064323910904233812056399773554337602741131493796396414018662140335875024399456037166232430750314399235941243484635176849998223941707084622866998687036077262860246323159132229352103006874839619806188690093620245076728328614080607682350648668621583225438423756377782756675932182227434892357561383529567821127800987360256458947268159833322656927635207480141783826330213180002362096615108895777792413342946993833134619226375646770421884126783005796488923815535966629394845334354425559563381464079671056479879091577484504139222166474590759030481406927823713319204117080735771367224821827228163598073275443212867489343761994827051309757426400393407980446803089665951670053060397804225511207900545302444574784630330259472934090920764034534339160396513871068638977578840453969864620427714847122912108811689815094162718885538457155854090434306842369450842145942367575473249132835459408309903607163320130715328046233831025031517369818296905322230988155094062793815995679451856792306758427210152841027137550070881916965838758418784728224413855802740170098175497635285487176781275934635815063542158253955384398481311562679546575805623723797831175512322798670162579725678677483136231535540095984800643137228993782574465569488170863805604044013574001947335945872208315186473624542370715945139154981196505411177172550821739894709462188289171585273446347113114081765432731210791183922089318743488494197471654672273121778347237306674662433349913138827715816679200318891924234917221557563910969093350317915317727830542756727217595364402629043766044360016023014325281134828139543215474995359966096650926441982030161526604493731193370553163217026433008623059891808423654956852284732359696516659736611822544070726499781789355594462869944294600141797850617604554704549583691632473621365190728057702935648819154870386825816791731003535883186577161358432768647664671080534906547989413670672217733172439964346724375195077737115437205439315882606494888278285839598048380453400233631116508672268393817588944804903634638900832561872170018424999924187891912624499702436425388999410950696747369533235911878296074908700598115952887817725832365219355332254835975177704068481388687436491228935862734875967124156991810842479757583686500621684613370959771784788031913525780615267072456525347676352278787993211187180442473858688359361325587705504622565220528889265302351439731863422307588915482468590100024919491771413011854869961469636868475077697594931777309139537802841292867237400816061039970711635102861212692603724483665941016273804919614845924396236687831236783016656152929600111210528493360225418533599975672220645820200040923273531134245647615953044314317852401602700657966714345222883761506654267137702334484303484429974554645561078291229277891644213297700476807160967020647768990300627831101123117176075833222236210145543414899091568201813740046059800218827813812107199936438738189453750624969025465942112306658578521251306006375901794389313541740867111573926550656579083795353308476032563195497048133301844617136446046456510605202117639709334620967315388971398063964282288209778409126530283387664700452277202916550039590956939146752878141951568009151546718559748617950851227977607422881666995756525144090347968986299759806520382025142428998284968481932052061663853923159248263120825481909108800490729838013105820023337505341936432892886179222857914626854505270905670878084108286123772321451814579383319893656127988238938227128138577313689060593966540767122680211525755261554060498764462910596813387543772423969974659617887271247968871023554618155647558967471722255214412356576834021479759447796394455722304278155966071385924953118029073736970979185924235570018194681999376590568341723498641832563700471903349251136710182573886649085085081527417926657222783909889830050410781461802874454085201817485753308230016830521220655743055252510951020092046172902986934322592851364261742537468411719039139086804783444988095614878940561441817727363152623220390094562424153680918751763310658197476341196662205442892977646550303493056199008838076453083218632653297174828130347540440011250172294777839882232702907674631654974415827811159213245066092842681980946896456854567563157680213040022250677407359538596833636015473954589895153272456494963065584760554196787091241560600531259724861272310961660860482144054105994623855421962981994088656666601828828437195243189366790574449553641153246229000380070512395860001879659168710992056147728756003473272634203872562928870019173618568382522571401263911309329136142394765571868110122714995520160475444810450903348762480157134204971838985518157176475319950493258356920278710504420293729218609601407301622964312677930111177433742743317383410760715088968980978699520430080244689501178173186748068438782762369715667700195503967353300398058843700935545039501144751591133075473090268660058087827787733689788156030809734372706959783734390546037017055762480216321955770951889399276106309862321999246436223378778587088757729049773447703828966502646490171529890287029944594501844103813554919371303503231205406032891520114445152592566537018058779603762557157391736523682729099240607019416807750909684102431846800478435154119397284562196515306204138565259770038286533239269048442950910462812656297581193838146983655032593801694065688506874190112306926982114440586216024649714749323101588976605483151405904604257006330203617218693158329370268311321501388512265958525100282616424014009648839965806684484136739116029377792780591283127375613905419546784703366101463421392139875095423989371943587295121391071101800238341107331966837453462526830438815712228221745280771056883237775801966885220240839715796235788374812093416230128381445578791006599588060216211234378487554439362453904579668192187884731215150771338828696660468643334431606929615719113429386594485067948827331520915920749327969028182947341645982442539761777266386685757551208402204627673786643816924340616551704630837932592972093565413298505337462655405436977156687110908135997321049412406852977543632136249197347782226844764298023996873497053649660817102496448174516033020184600725392101023730978898416436429018039878255085344283501180315528673493002882883914652337786821787904576964830573233661977256654604085714738058395559271850238823974471710611953417704688586424328611605684651921900348138622493221226218987473913117111955562726929903441240122817212962096595158222761791643981188191914357031167121469113935802166061255980771525573525088910377964037865079408544730561621599319803099263143603469508126310988315064036400738746538078724393056990546001026051832786039542770926337770696270735742987595473067500277338518018881488676976258825718697168241871400920126370912623817929877973536594374447235928566466043953179221594248338894114219313120175235175622193801649175254367459183044050705828932816333060055913225272951827495655289233582576743960221043437996742364962684000787033602704357237624218972438823967463981118329424334898562946048123101438658293081133151349176612358675111671293358176389876022828211987573565640254596125344480633563153411452231812784593554544952514672897831688275371866083006231196124523140477139729194306929155947986664207146016174817966383507793565627933960147684742917989526216752809388439706679984426422311827689494929945199964955124401374589393384264788355150219183756531891465205087626293097431752512201993641833165944792117275112232606650738749478513468112363782328639813574670651049909702030351139224689259002254385173076481775929569763733694371532871180076082343343188378623939627870904361606373471358741343609343314891959575572626045954663822109603762823986741895878856186673431059641641860653972945052637012015690792954438328999078945819813383467858090417027939792222495898006549534056489801654015468993401053205326180108989741122494200482805387021472622427221214318252473642097882101741030755987621596571988159984801584854920837212603451902508603273992583276704557707464482573002045313918806850554491869416241299759601524154879085769324845809294222760425140958575587769256642221584006574501017871625344540683847017701878995173258674516119964357412407216098531849773091890604147927589339886715569515657879261519350629712739196824553177125934396730777998493728614495291799694709226432878174789600845724699761568884228246611799039547028430061045564539970468476572133096230115560582746526384720969175076074728989400372289921388404320135080343450733142968798408443860990329132811731973389803273227113068226148812317561793304021239586776971198725265434916146885786465524347389823194277300093406616941644854315963333749780943741997472186692913891382305808245899972332578549069052211626466123379117622429328186696792838746771215206833551278113596658395804982063329864277820752452724924766024284992246686935670819354002093989116594541762436220418173216977797799500639013508555199598838652222938766082033042734816173088170519820734388456767386831789928836395503872604024794950448732118204483150740004487839721016823650569134236564755770952135696020060180046144633610155989185387016023223733175237150809948876411634236446208111873825000913738358492527404620811411277767673531727211567326390913106348647303411405535899518184540837122181078731847275422180764963196099558420408610759608241577536730543514060489062055243527488397824028282129945071934322247302975066765584586656615213716109132347560286628814793221419506528378376152332675961485425839469965627848702242834721313931897223725672603431690732544075482416267504147334965143571233900986779219861491850649511385074551751021719574380635848295734114648181659482787753976207236002285103792560310355987677879748255125175757150372315170038441746417451510816445021564679102550221224546773645936516489448339299220706345836792579033133582422838341622806708084568019406208880179246622223796991439286740859329172346787116104243457080274430916251002414903181148650610484249177560832960988542401052574124416452215895610162892394341309895330215295993346089857840196723104658632567357160942776748472250950105941358995318717212925366433013187976218083791911248341839441889683902076310303880719706000763193344391080141961258917989382816327235219008325404513724911899131866155044909255987558875683179065112577229821561081306587811823787121687838555805011886070697797845501714685502102677856533368766896171954007762015883512212944965712778485081355277721198987567326264325970335777245725192175563875779606349038288873993836151757679691222301815863861708749905376445938929584550847776340847706757168427583983907049642496207728540558666514507059405976171141425332053720010741638614144836092116161978345828158915070106498268577476583123939677425487509359574477952249208895793276129571282181114021549832308591564454516331082610449943698294868662376582621120207954285591412783224749114206374590002961443780656278666921699515700010102750096577105768249809003378824020949353306016361253708261656314625568358527478914197752881413111720631893884577304118085488612388780610561542606476232964906170668026286443527169680774295440316961099895995914998808120172343926129817868546234709156739858452510228789105090985201988683912101792963857626701476958792857153586079794287274456056290644095006547765248758118623014057444083385153784712895655620780227999331610691815896706731096157122991687408741054055343861263438175816163324641917712199547371656099033717253034866148348716248565009433298824116542978018582007124670595877463274756424769446262838516322249185430093273926775130332680811353568946173900759650188060290919610457484212493930165097948798716227289435848175783474386872538718521262249652706153942291213142899403107767681149728929362184518433884365550655589173714537679332253819616268249637829855224667417545427808898166237040138473085464253264303991291528328796796065837378208903854880425748187455133685112025990039848709960194759201228511410798834376015258401924017674891425396581406399137699070247786317008047046244591374825074165212502476960206827493511179995003413118868552108906880920448532856472775029658034187916437704869353919348902250432278214368225371627974870567228545188648276555166626640612743979450701464087747794418982564053901430199442144946060307695710857697976330340348385032503364703230397975648717839049660381476981200372327999240592503492031044732563284005058159994245484982041354839283106557923401748112231464795479531773734802573798695417332499654317619622862588005687261956345555607113468259480558230202997590222786273076392210467534636712072033145019582006748714901321208556418906468842434086196379879443113393553509523218195730806232998292241031589329690033406678856322333653856037841111510061964043336188679713749498230690690574800270432107334355258729012389664541615017701849027976749522403856771763163159898668385661656277546522245944516928124099742045306535319564972398717622576282358282694416322459192803034521687288092202519768384530765241396455909196019880394446230838327617390778476332836120291945214677600168987481600426873454306811279499436930699915153398522932507226067233685521767663935332820362594904850618410585180563580975976561268946217507752773972255208522861188338790005998036817570449873253567164688325211898232053066269962238594761991965295444943846622109730042803155540454902959552289226068099692735326127692145175754638887669387805705948581314339085234445107398644126558821030418024785247295645707920945267232178748900082469997005366547039591501497665844151547752010550074781225841166119546726038148152523193666696564614957544792831988801556583218328901203789634458208206391749905685973175652826722945428559095414776993255262341439373498346767792642254626112313571240817714391467803485194542285900222561583085821146298520196186111450080254929409911824896526466127811768394482479049645369749294525823340164635686343095336322024252839624009591231729922109833940364777867071609254827759918089175426847530651288468213224054065120238215637318614222207693831315262460501821320573548276207362411651800460526057334996756702043686361072933688378884099417191450858055752867846485117105070618572127337817665584052089535399457336845229931666866949388167687196496994516945389377782268805804388886434107128317557272100024335657643054395701717001398147254390170205264535910064478969890386140692320210822281750233612746754113798583807028946910148301917151593114305394584661780863794845963555141789690968179717645767455533432359463306774675973358158682851258453146970872637291088143471268465888392285130460344445886385093789040352331131333557229949341736200169126277737475469414282324349430057609178594207182427799912748187313752372119949653292575394101862731500044283656884820477198663391293784060207720551606388478483721729749811277631700536595721498421584459709483866150179564342482188306434205108213326949904751686957549323708921201129631278633479439767671246579537513446147220311424812902576423783505954424059103953580369532044322970010531965516057242754689183197168037832653679192983739088314500584087148305530812076153339622415156145328352546867924764852682067634301710445699254070478096688464530288431735234472955434622199224761228482769291036989297130564890504277981367144943025295890012257380573943449337337816320721231486271614442117029520034341445890534673403775064758395582553440649921884417599233633147515992962732315174007428278389014142637434257432349417233139872162739103799544507510914513899147978664804588418582739929795261688498727199891025234855744710709969534296447351299749418108638699520649814481116843011904164252982640925263739322843310694785878299147725872871451266190661378231761212512496687788738308043755457547320618521142846195418509903772299010317564396218001012164767955315794886892151308579993896147697431490968980672880053681256454608070129473233880420857076268321535091750358536058412689743727909333730353673917003709877232454795612338704321766691208544612193028301318279772075482659417522227807039676295314565074954359442056410785029682133037102702875287111391639106396230651651335992554736343300316277912623905815518250771595497901542633745660732971478035094012568476264846502994420084527971117911960947960561570424980146732567045016294793301995635625657589650314716284252669829975215908442152763960212672629078094324661975025863704728839790451471653214115503337115986866961879508640034033358201084579089253257807255450356134268923417495059500680455644064959924162337780874145183598736060325948248953574585403789513256573383379761763658009776737778306744300127786354111092455736455070647541498070573307435487851648294329882831194611582379583688014472702208246610905874136115808209231334463327298877769097194021804080330822360419101001810710024344829820371879210941501394643785790755411997845629716478564074453484365064486785461315997381421674851743964971949463676552304030515534044105409766108660566916755188950635995038609139397151957426696307023698032526836054018111768184886771087389660205843526032747804600178453757794643532682975573464210378033366969265685308804469380282502329911642892692020364300782571511831768738887520295755766832385005984303087941973219877849661708856766315697563262996933361356796354003858328918108321744185810902301875223772969467820921890122445395332345201940360045640808826512225941228896593264638860160796491535704524442626755495625180470275290425236924462987424587990696407671155058367507998570500136719607696732498605949072439916921402287023179609242254957745711150171255991330035901411820452325075383860156530788460992057444567536126965216796279843803827676901649317854220847163628145301472851646666435037180539865176058586613707610937718092926094464924528301241249002024000480029661299159000672790022941189253508222408169884563583376354029083546254923742745180165732822326956084969582454650816146004652690586785192778865110236286959938347590195313223642048998328039792804859640176211127441082991051301525462492003816807339789354084830430495964138048641649404388929648823316608466767120693871048999755602720183501120696847081182490701279529363560789923944667445734052689226638293410290751942378904911993113890880317979410298973585094554307316145848234916681931685497035262628655385679903873150785176790784480916698960216102159451313547284932631687150448065782468794277303217471330217997620523967016966938288876652054816235926706815302045737330492234643718177866387604655550156271326525426237965851438817819738639551445147401195991734332495726142615524407529484921492464739610798540094107126464440123260218827836858810634124821445121539361752985474648523260147777517049243132927510287323787247384134327985727553826626210709616425592071620093823335240172076625516824624912041847186548323200076421837435657531604669051784617497246899378970261793872395274055446026929702703218777101403743831334376704327859912734374231586907828016172003613750121605231622576863646274443383928636636823803685086023130380350591833102730478978814374453408322615698747442900538286831048253926234048246103168862633291608301183071642779284427235659531505763151760870391682145030830210927996111958924473515229115417700420764650918174447229116453231197552906616204686066026264574130169771167517601790434968734175224248774260935729900781365280089279802724104801492370008818092005977533861836425328618718876716947312548875092987246798016742667038628009529123411696562061631383388921443884070048574098969845416948353488369942846750802133525081174506423044183176928997727610707201669705614420786967108670363648895948446778018058121967993619448728562014639224160905259181112415447230713855616295436965204782532835187938563889435013065624983566177298089664558084333819857818823516905330417254818487306287354657264563725563658563836546934524556826757591400530649276878694841149119019711577566630065086685731976419025363444524327775005514558831987302447396278950362826488069081229802362134712975842116998160615631174593354310619342840982635896528982360596635618328978702176841862318179686332411496010989710445985061568745132146473422184339625029323490439453682970099326810725118926467671895881896386700752437442018030810638922824463134529621436686304621864208652201430530943797444676483524758159874864923524593056589435811717423256877644620815084844264152199072691185306354428517089211027446763281069005903432054074678180988758536926068338967578947327023746818023009901058076155241178650941607833574311610578509707093501327242241724374797999547455520202956202939869359158096130984283367324265932272014629943446172217861116592343547529090933940763887747749381266188608451326487317692467825385560880783888334608751966468845954495061313188096368827721484763130725300982996460851625907678566651850158200716680339324814883416383224362542110092724997110832506307881208783385733069182849598170992445620490414931612963505073761926824363427536135471884963632014016720184216071660233365844830991217523839405176784273723279363329822654445480803404047709168589709587440115034421917282751282017894964635174675009647395927121926318222534007764515791117420071401238818091679773388189030525085956062185611515702330474482467658875238893698119438620666605662977912398342026040004568290454563892118998141760218405299292312574451267972486430301259148453382528494294460597790922059851580732061370143101291288620794628091210403090122579933911972502167112977046379613621854890469525965676190285199631535810983836414188418164854344285895363029138588207857545903187593806075839364812915923873209940409361580065469336801099459773080724613215131551412823510349610391438115564625085007459209592147151667554032421938910165649406463477198252702986675760248713180862438303970674927321914425938211812853511635214173750653907992874646104362724803520119073494300528778288498806532447280817092844037399014054903975816321909825067729646524505107806114659185767408615588076967229720750881248008562706611839154813008774408021404577116012634743948177734308132017674727013332699329294223721767433733988254769862992496937829818493772083120863275757913152046091273768232164330489235083114857307443092678220557645293563468459692761314174298318423156931797740811491537452277222368412898169409578015358379415309917029101422300183752279241120408773834678820294504718003310337121806235626527598066517188734692008513930799864876315893890509305394294582811804036537525090182924418668905661412896339975768803957546515970086005548241345690685764147864770350107248757456173937981470304517824542977264259457824649031937132573302971378589573841171440614836792776096475295284821455940948133328510145496513791378420235072849168058876703745791410984840103886803399013519447530100474908156441293926280010048221315841559880323170597392568979975165465574029048968580484791906043824617943474319221818578766132722978656693984930038354853412289601007549752720127367976355623544581090901397408108588165011058900379133178352123671032089396948120234683986572221630026741221733905362881040740083995877799888192401261109394916464039657899603357855593196243395644356554721141894959506075562133127041113832734232777162712405199847777166588610128601492952144974191135828652359032715847784860950467469498301873505678812723246827237320833529501956966747332405608456613957683821543161588602460555523202403436285810044943309468685942080857601290240486816062171765450273774971346115884286118540325893021803763594147005674501968899607703611176759134064479051760792660084221194587510735737673422859683075946298709115548945031966805733128322185893229704787239579802445282360935192989249819113308500216202755579461490498439174471370671373229620032274378390290806504164665077573419878170764877103046045712623667494125158049909693057986046304390728619193881495010500275955712759178071564229293947081606523997286771506261731818299827334457721929610414597126817453107893013119606592895047188346566250011674990866248274596507912570772984300140708000418130121333382413193022168393869736035552789220824810490186719037301214614706995664094068638763821271642118892701899245799675942869317912209231258597247325049685691373409831629887053586442597634579402146950576543769671573084557396326914747177174811038368772399269042827553820526719525461769978099769429815216459928622998523626448977257224958878101506806776038543301413201217030410699146226004136196727593715271311797494329639707010593925983440503501915923294046224368392256291833603531264333505047556272146720529739205770324949761062862283758542992313693752341476220541784668092982964678305769719281487097406838778589011096808293154095316156129019557648111928390823969338248632718791517983829088769859801682055488263924913854401996172520009908915899780631711374324114524614924690153573993298934119749249152272515534264140571977003640187770707772248023274670421241867212517665055134966314169052580502923799952627770881503829935325061455001344495565695411860459808886041593906800416126677529431637574620106713165935229278856061525381685508039043118414106035062893290314272833557762295859720435940711914451838279699225014867179962394722556533419515297981487579295237963752655312184860511347290226182579481544298170256471645591936029889010458704918322695853567459077187979119835841820455821247802262697187117672093567115024214480571117502639069862658440022688580013266031065628310797283709435676412439659769809969379002106401489291792026619738552557495808046243022188730573196218029536808309811982837818143663808373473317063397574185067518175181344496594838580962649534082138316301883525726786035521080100746360419532987027307338104424270326397000667382277606270757494066507323550404818548788579475514031060294869625282252101233237645623867785392075894086542701621993318611072174182036152393080184748837170197558379024372932936329948686357323064728526725735233377493402339166980609895638657739656227436082113110032467766740507258388112285222176389232085658276154887136827992543781889204137802857677816402839467359497991630469905720644045845445667005471383631280875162516872557349968581666620047681815196646500560183905018331711765275114336080301989075015290594800985600382885344087907209244404918917043829751590915669210228487240129627224732432985786927063469508480443541176243882455747630187922630379571954395198305693762567241749510474706037355161901922641983339439142906995776841370536048760915211117657183722051317968835088255401495647554746844423635892759771928882632311235645851230443542466917797723436296065896143395116448936763166599976797801653988502782944507957591685951034942199374125702919589629675927337221983092610299491660325514071314588450942133298488695595868554860589827586690002020132862556723878923377280893135308398219564097021795575426493962972682890010897645986167523215451612481853188100526574324273442497331922760737789094034452413453071169013138121711399173279497544371357987309308885832868985125011706579538515016494614427723910935168333608121117718411169093388484258678476796379889937116419827290926497428443837139791231414208326579330047820088828703339044166193399584131082492100946965226086864562117985043423313401141622554629096690948491318849223342268355657459305082994115821189005444643073476283576799457166364982943158512070981835865043460467387376821136384843908704399288245200531148576062714536536434618331979093861559128070732682302326912557393566576498785405653614905845063379538517674585032699340831915017891605053094981225306311881669418349078528691991433874527275120920340044838495381601755222501291077182926804852297835172787018370819629405274610850895857351292538954061345392521667085211471434101570671511263983170976442393552037948104368985732462700348692898774632991088588142547614401534610364568346643021528792938942190617444102967226069760168756411820161801984423782479162501873367050221420723889094722960817473305329586491455282814009954920770318586618554261014759917764600810031524602249537667100891974019460541969771519262550893385043356891995514481601366612298885150958777656723813123997553542078715000853425617580136538014598593071488345250798380456064279591599221264803504376442771908301983085578898422237324191300536150024073149277963163206718002854699687283504550725995775386055147839280730780660908309133305679358907531490970267422466634226758991762295649422068517367181161659586658625242876991546218971530237943496173487657776011196680167373587618275367602489121779786043596744192268097325216197453585832056697303137032419431446757764383797152822208969834449633118839901023888334829531966375343973238907577699458159587775572490929453460064903062513348918773012763254431416191702723885349014869914913328259124631719470468081562706528172777322668950998873644829802287261137808461873731066778272614201084884646873733459595804225219729498953922675887874058333587752970604245016980431371553423518894829938304323340429567978159732413531596253292164516365074051348966618412197225318965290860238028163779190543267501372315971617232254927509555202823315090171711631739071947581138147415931864974307569629310718790718713044594541732341836708287799789541588931129656850232848715198449497111228477547506710700506777821197691045818614095004498055157952909844110044982386775679727572832517727664471300983109988044692352112944260021529345575560462605894594626662673333613421662716695465255368937815680442741581360881366531587938892283086136704654324132272635877985000823808939452451788370558900495007744966792650794668515449950504762365239439816515439849938500837539276460013969626728722753452427522207508131927316469341189060271050439780933046077869046736882290480109391157606278567864147421284597724087811192082088476355919286607988834613274322966148780815801769320209916483037141541909204304024908726233862062992572017344724249812969625864377703205827605906781689914665859971906743535367763754100761928040576493624226811667634010483879878468521169391668333564736678372089838320803350421007284106617919744941507508616659232699186383653869638315716034432107401720047872346695399195599042779502784743462623247923514536563066167106363235975188067273054599647697773291095441228679772302907349677237073327999766408728761684722518446577459898361987907565957414260643784223784478702655745237387657815371123103397930862984167881283342920085859373064839258492093832249466839318130381742644615793964269277621255880972664503977640143938222023657921750350254778252261571658601623284072916165943218312097084489813247906706591713704409247554721056968342359965806710620366042201286708170845641345968140926894694904646288649427660754632546106668870125622759436226029271543050266133204783012019874644172798881076660127043784914670129714754816262917273997598375324700307407357133317825773194380610040540130480330075741884425203482882674693951996684340420789766771834952545878998009459846590602572769474186741536686236492837866735028129688158386358481795184436337477153956662497695308071326793358938002055276304258617219737428251551699781491231709861752775897588865808867306527313407183257455638524131102943993115961767655584909000735343944045553144626692619508487249009446193287768222171458432378540146266855426032059763144619419127852357163290390562546468677365641647165308787041821086196047597991575517827924375256674131079423051979008151590970802853398527655824474038127431094158587763702832162205934532690916420427073357857036629523484096001918134059680216733371637280800270192811032081436793244142171059978270035343615314079654857363631443929318316253411871777381072544225708205936247913686804425954033642862372107504024485451142701078439877567115545626960514294563042085059497245409521462478913650876886906139457538660024424036994362814218037414393256940639208901935095448449165335180570993070547285165448185252915038348580140086197290189606463795105050908083201163774086924102171520013088894313123454544623293951430118884182272006382092855666595077832368588466793615942316453131834265297866725744492659500990483581503480246608421418724901033672089442453848328469401120613125724970483124105257222882546797842786573513068669246515717197561265569534588698722982166573151259548096841243945925997080076531689166806934893109640454829624455825793499230233421963261492843198304232416200757062225860072523775664062420253047810567522816918744898925906799309564220056857307708476096019850686041575521986237117183180648366941570282881652086266983236594778257464545433218709999855009611144867261161277107938016685547321226000219278482074419064917030040336957281621874146111992824491019886701730631231627503628966153843960028955906626518266249992020901083963119537521283245694101774907957396540523256334862740971362919795684143365087895424993514596370994569473078510106504361186616541545404943168080259733165632223209428558910427520854432005250751951571663872481233694620655951023846818624292314809864213411086753755759659559915655787159720508732172882582682047346885551595675538820360227438269447803541859439636091115116289251032008666709720130729627896177352015067147407192123190948765902324470281101630935095675655850811658554419253050611035548105201422295412676825264457310146933109142703512145636359784573489768456046884232969927991953713859750113929077947402902612825499947309571123136442017635031341294409283949969066213305329102853067328526222910379715152619710702023264465730660021354692103526970517993745049961584843864590915580941233929659466480753594757554246183516600750872706736658859194333834878266089648102118876024408301944716230538537128679233886505221849266358654776977406879343306831072608574116419004756925962658862818039072173726351597818364887809486538896150693804992243631440653627367793605359135145143670631046912785346693964414152172850070609873658118191800676497088796014756375318663614999851957440761184516678784125492009752473768791812924559447297426728111173234382011003938981007465201890248974647207894041341718112129487678722123869834519014355231622530049346480999001585950973297621301568630024340939563009563889406222154746763143841682180498087234531547678064645690019897911692485539792972962764560390578862790190839495992039565474565538443670412861459963965208751504493349735554838112722138279546240712062066812976795795816440659970246681789895224472051563347060121970908115996411398886625310600721287064219353927537885089181650093669080621380587560881449669286348789589196235200656017035816374633538263727785363570050112864814104822987995582172800082634964563138464145172798354792117362012699180628871590901902237471141097736226331486493239311435658163900858140475736041424633386953460929831480898820207816837384478635255818274308329581479803796418106516963513934352903975729371134448708492447861589702008038410781029256410803864565166610257146059006936332883632533971521539276147464696337779716226693246711581461339550193934796724650142231156084124955304838440517303014067653020994809028507681192594334966881706205060985113019619675367989345155835729989949752322594536328439075579307442428044040190234160306236882096634238000453243984774543042516106949129051134181727750797168027320881862303947734399326957678989504922487940952579197234756486401886345746054362704895369155623064001652011244659231014074657420236273956013008089404925565773493002288612451705884711747476886228968805155211358876808629215636815263199727511374634600738373236868572379890813955752769460053207103929561951831896798663527100668017404258148291262289803917662316742615545928484118754810455697639639490014060004599893604663032003859213862631391506437405086146054517391180236628920247625178923418986164203997571603107214350478524265865837538690574598216398537123103325894137845317780226287602424284918028969414126723126195071470522761728933129045738590808591374046663199968632940810368863491443144811136252859401002750957016455330442761596765583949335631627012559750940957362850355625119296688553393709275407640007626885974370220421993613755546363822008030685870331081216557014582505926944147040301049694222627481975576200893076663376649657064759367030640144731421930512708989446987793531059628377168048440522459766735261809423122072290332078178093556459767327068466912569850024766086774846674234120415030130246712259290112239547591538167143890738527838323064422885729564481783130421747916132812712609336620984457312197307081116381127060103244986044271451505457947505367477636916119695123315495142720086288069837274162217751993759282038905381304720708634868698801458676254072938345347660998148836261426999198033262592176058981427848008859563873381348959349487415927933550746063337258869258175908794117879058026183493508015657595642264062876513360673601440234497913176883451067683214538760831462294996460820028198214967942110228730231743341295494071810918797878046143430776878013947320654350930428124668892691626104683368150761554809832052847324055505561896154476669896030214859697243145716814048523399380775130844257704972595849793143954417320820816824612837811885757793655532318562704350434509921121682195228747986885262043206232958708432792621197934122386909657001505498317505456669994658199058543060312514875398285990662279930605093323944806719723923599670563173238261462302942545896011540550854752074609023794485475804560843100365071534284042297470246615279938632840998932642013152499166251652529935677352554648441457833972247678632878650561912413902949459626838343367330867531999243135828877511723773042807789623881280622357991486298103633839876089499855209359079589981415876198962553912602850951447174485488021580128894261613004660171776863401676965109703541567395784421351146288587084242648396685682711343145858753007071936613078668000038604705335885405670631695324204294833387206774824201565454841580504684613344636827379405365185608465475489733354602828454726229798837955270817418979817813535563100255407010649731488492224120660531954503217540820611596459573233307203140135751047643419094379927225551432842600945648253827447414311779314325441638167931581739380980144179761013150979695382401692057024310801927255083466005630364324877589941942440790663095085945500649345577767074978237656339750589000404585624958622657908394811984579391454135776301282009141499430576867676417315206602978402240418933380322980135378100386470187029613355277827708086974313777774646404843577313634828200553562950027019308129793789808572941717558849398395366606905553304177109928556822756481504601856375472732294414819499023689695642413358466573958617008229555977795696517920938158934647452060530975422625277183907660724337287194621434501123130987830406740361259737844299227590812296929118605753774158220612817808829226426867659151725700849415782105599443671339919023110074397855185847629664661696010439941535678067042134541977025322821636866555259325632396661535074116753019017417020436655409783960520230749675154988610764065925789277815875204633413337247395892912210235383346060237266549413124061766052149923926155764584266489274064135689677770960620200486419951732264074622484016715684082119607882831975086725868215346180069459342686315410433284796064498618572151386335922357486658027011774713331281864355836420095049861135415600051792681680051941128168006311408175431210134746797932228589204680177023784082706196538714861087103623568616076645679665672737246761176053774094285397151287511999055413035799243337389182159031388895797584100563226368925038436895089076413351422009312563582917015985873576048448121984524162683680387924384527941142331993134695883278616903007839916877997077943540356999807806320363050662276299738728919332678378921846781015312601672142680204833443279800475982797005440360606842860917678287665048761002774678418640999079133765353274673269126706386822723219005465133684525169280373826914819848603003245014563801424950545378623031561159224761084154737759306431896490069056397935475000698431630609742896788931085483182189018843112309106506506142839271673612918185765925745417746983622366156170249151481077515097949620765972290111344442796614668839499456035969930127892739209718092911895394605069018268326261379565951354073655709697415072827989199017860931498639405653752984270666100711987989203941181223370222032453504977961386148002197457177179600931717307941971267312576777252481666449410912248723363269901026540549729400491183732577940229051329980015514798307322925970004133952177750512180790486079484798353511586923082707594091068623285229262861352495745848173918667159175480319504561245635862836542458279262102478624103189416431837283753156267789856293556615490455420053833662581180419152382685895579385865896103202235202097148790368066063223300794736965232072012989662853349340034564245699344701062363965299029358703742287096388982599164735457146129099521290659263865043025201768802459967328741847371326976803495834625649809357171893197533106576829404568499589166564077725433269047801680168525543149133831039919383165809063591550961355930813328899972839832144729272576472591049716475526682328766926446085657871633521384323109114546534420857373320632001369076092114779002233203979940526255023211312754580736051157510140610428528361406243412417370771365974813083659015118308122293892832702942314050911777820374600370190335764252963296790569001940636562730327513405023898522017549700096397284133846906711549628132377760317959513545884004134723483946393413059588156519129250035030182189285607144653422959439188945646879113929674454516689799962564933642859110871565993061452705825947099614400442410031187435576461824003536179772927970334539127092537315687004681565852089242776682758099460624609863464415405231916388391687055490893184294092321951000418600253288909694286199539410559553461674085392551892091571712459420435595287631119932166001696219081336373942142219991641284948660578054289861509885227276404668380417502158145994524165823763116424665134270974941164153818911734280376846216809207575520393860724398702055191859906221161396345375424311735899445391139718276046050762050080067074247749990978115319180844569019175325537978198317053457966544485974275899266296459010318752998985621024790874966032723995751891205363629234372031674358989526608992349647232622564494899145307559711846439982497066057192554618041223100217257345073466251835787635627077589713076215445471968643962192329631746463047541273621805574172723117269000913178098786102442251957954189134407000384634436511557547365210766212007566287508684793363448629900549727040737945365999733399467778491456524751388905055869882883244044748383757196438484243918867374518025979343579936718653523051934343314629458350299120476618917034986103540292079923214422209075569509553537106576802471096274594087093703251342788139355612632061245495882133376781232677282622319997802598792664495060229889761515725884400530087640443500750598669837399905222125657030151802732129166264438129128321145118692268275424977077905558841109652453389208988118980397294777018696150978885834194830531953818078359112403386896525676067513682981223715749719440064926849514578443686500172572561501501805908554435884323834025839910582450653699411729224185521780507557667218177897422513568780170542474467629099415899228203778016635298693136106927494497756407954156964664435567969259340983590570348920374181764019383525608736365772809393568676132016211012601214592868888463944608089811826880232712286084219750143388471256129945674140299862152886524123724700643415779622024064323283779665138054711774557854127712368931078789736142108793364152258298506123324753822125545335897055769735495392141205710057753251468568082164430428846208752181338504029491540564283357409707505840123371937066484013411278332976466256577590652351900340878923291659125221925015833541828394735954430620840159474790970218693554305899689450721952510091254931961411252801574290864133524946345294802044529761950725343840139999257456665196659280070191256304546473104607871364041354532990337434034447327957149479804341893400067641221585022731749409733512867690029500810392570995477732129392506802538537825673786488705556030269040799844151169370463168014497356728832613206803631304357347866217930602348433722637420052594874439872753715075939953564855730473897647004301360159889885724495471993297082084827458961780550469231022428360260447076008798617813080274662257480902782196389826122156624107210912526459253035877601281187187283464746602463133343607778400084824860434159104590088209848834962736006771358463764800259977310501679900237806788217135008480401305506020529644936288967386452002937682589088583406285369703976005760513456180038186346290616291080535814137333514743698829546748330676414731970819007476650622568652752796771631190985602182387255534624611340442666457280284222912584263175231194864500345795929475046214551492594866924320928651191991686541376696715096965596540959806813560521995267464433559007896666000708211818365163593619599786548919284933561828325306675141751675924559147086493103052704059765658722921856360215204514849665727008829677189275778073515074972563291261332038765455329878688493809507862531056453173073289699452666710349295192933533514790020350120567230026903120714443017215610317409469292909623513834713996753734856508830391032360532292437973938092729393024405120652220639132581435087724943358881536370792185072839896896802488909445374986188013466395444501325578327783335505577149352771094129626904945017540529689324494583473349961295666094843076049219335152467465213286088353869416700043842817066129799529278078370836678665997118479868062715444605483970858652761680352661548141021890225236532940768812898011772419388777383013746654354890313145494319506619028324631873506697400151693448332190679976582963755883885598942243398791579596061599713086195732609329872657276499925166446901438405801553082120061840413473079804274450391765848097740011869850621441314461688678721349162492155004540841067449875457151059932842140893815808861332843865933177171793831117228406430402619779232179349327155672725990524368897138025627244939357806544378424953733024379337520336241933843719525519347936939763214233456242003726487634215275448517606336420861576292849227533526939418622496890353245766084085575450547124180592580486559911026737835524650239807745147373744397382318545331667266721288397506126638620800128108175515315022655719141118500201506094662743666348590365961667681877921786959351771450502191629733653712721213994045359051023562472732231150706931609421069825528798296925372912644690579400971688176993463668589044477089033942601696761172534228821811318345373496494214265867618990008804609713340919895647802420253675903060901048135296899887931612974768967421619491560561727322256489868000724006980050217768221354414254377803073952048520572464108002080082443347827158255163147481066640501609451837676688627522799060104664233455233507853003964084666023884343859292468066105248615136208009195594260265594610727471636024055863784765016616950291014275397847981362919896806474659668000397786101518186004853251764755583940935412125549322114242118863731404769660493673668185299907192066618578832216355456818306820418627411034651617303442974655101663011290372922584583032398354765778272450982794843541970736087757676392754318273751993329390698923136542342034639202430962465130723566386031381820419792658498597339144360435998667920574503017220228493511440721914301187582498639138987478693817922750439413908868624583355353683186267750012878960863369302067498967406091811132164949170891491583905996125231434309795857873322743658807479196298507945194740924345633195695704437344430190643822054873200123993547241767664173496628590741435803073048420916101936787207983626301987231023910212288252007746597094763863012442999042041116971087680298537214414044870547277899014896658630571513494892486909766556398128741380335165544206561986185998439219307541748806272720827485386571781648763205385039401841375851243246671205202025160595621857480316547428547845280890284424760088093157262620868636148560007635599999636717138262790221104294849748443523412454417238048405319026243396916604854404179058230915044029061105681980494645578943352682585721472731181737839432433681527043812729708720858586464795060851140368466130653912627757375853395788146570666383191077114098220862590060526971450406434696490142183241449936446627853186567854446111455728156450343436986564530089405369048571224192546795456846776043168065545495254432764365203803252869013981309427950591293641098378198039263857606783942752850802215192895548104769034569208342467794018418467873362466757117854466238171500708057753559212333918835030319830308314008014930141344795618738498407889332431941664461639618103185957591913171226879688135099962054133458182157273671775609487827104093460962934561116762436318523126523234953660195654422525945638507198766587959563096511573849401247959158161520944756632366639347205128176761359740240622301732303172715953137239018080418658197448723392769421686245078695239348395618444863769070686060289383686062302049658719153923815296184960653548524620586282224954738565087012216109534863745595294507339915634518617571947325511606868826910295366123112542653881869315806881420608547981721827262687430673666145738070238407944233511485774874250821681017511246453417605364139404028943168421077399293587110735294736080385125231424937929206540000719987581015975841604137162813818543516164133576605570879692628285453692116971917742615004665215507694682747010037639069089186832506874049844701270320009183622319212596394111253576180831022725836466390579252967309571198121241887573071015949380875249020226919289378156921319594522727211047973503274736202057946421419791762789262739171949496847616504214952946326304351795616438816717077489848683162986295920418090188413853016368583280292397594310021759567245952563142593687525161349583832407442485152287133433273074416740382466183647729099371831059376930221179813240335377803215836523806377898463603612169185934582716293676978568934668336282280242921313577830507066510391773693673427712807231131962977348350558583097163041704878676292066398671704150100809896552794293253174990686862576901648164618468655388593549181051874000664767121853265111190993954208391282895223809310652896537806216235116739867445015999057583242397560653132909608928438379975447406705184576456535535148397700881777647741163287492443124282665150802533524028959244833452288035044191510109130347071577645534781050074899571770958099331981857122650785364054035156870162199489008913554622959607187606643464202580701310511597366897130885099888737900946089499055852855708471772101274703932773859530177139056564011469470563639891504374673582104933605664009440848844596343653733457458141202096111022500596585133338057093318096029099550126688186272196652038924438159718590586856993518189239830714662673000145724944374266018167652476773166210740755694499665431950191950728905704884386021970423307572077382342552604243700979138001186480211056193061895633070513648288647055345439959804909829116421706536743011035236723453282691947713923707964295376862201182365822832346315796034341435894849397982122223339922227953804299961360648496863033612001928231501622634874139747323457931957196499612062211132591220773206115436604460194210126783512542069521502900398737537192927705976723625303246488437875159175445697273831727237272030122490418142458514659172200562294233104873188452092862545327963500876411561731840574318464265348845602331013077687605716037942862522477898269945696810755570438602485825827754475806042087311502162390610898142166856529796036884121947354743166247041491610020952441420523673120878798741487800132804173629275189588671109269624946209291184257418508787784907615500964595143887020144518053103365776289829725776251591749068122294912207992071335367150807037336879945686952470930161556148974796936895926809135561007975550003819969645847627478691194006110450778105367366254216678379377425996828221666262644558635959562670323343701761509485293019994287318271451434175407697296154322021347550126056184323614545019197960977918158172867823907832220945849440184791609435787292527133126836400971385892246185244021303889573290614479398758260070119109624075351765614609871332320315779043908639102345839234989398552910910897693366629739476532180314191119993354647338392129281140961100997771357104034030110429898515017744346715572853929686010222357877272339773288212358145416264302937201449315531563417307186092144895117247586888643093082990574225250600448389020221061126110421925118640427836644096247025297834993753191125382323123834773609591469744733361077801674192239533975913333751713960885154682624135389827368163839243751703795940118918833454120687739544232535481652499431939363251975594978309402089325564998900494181320995777000629862558167936621136779317753114557816290481097171323928316805925366778556973819316458877481066581618997496264492700542870783563371247639458324891660295880530737321619429367073127702761056435025074995426101750331433662110496002854659367077559688288888073476251998446065423021677799861474975895295001722614892679463421186681849437151906668966719280358192947111057467432980199449070037948867606739183470811142318044142644806565346986410365154927082676032694907687553547465171791550952871505768369970952654548152967064572042983494991123181959412459534171746979912532961143277499620144772427094664833170979447724089160263620179263108741166114062694102922567086194439332959124109765424265631212465053603081027500498840388079964804857277626632618011880471656281001505742017199428032902982095519038553156620420862761464408559518188916062066387154108501496947490228772438552354697478423383276005905306880869273550391584768899968308681531521024914659557069730225256356474639994927334942545757711946169786210498801494447051566356757751026401148483326084979270061961621744814031459706409295852291243681353483197415149694549505999105774342068237966049862661667490943654827488474317589184118737859188690085934380775580112478658081997564069202154425256306958961402285838810628954351899302280849577681180413151965536870942561214142418956975880260450808532159552091942142210323577938222260097251994140837803706413985184193164724596837716919017654612335751322158176351669166029348993052573955384484373723661573597380530765601460552920610736092302505726192153006557023787318863337877057617274069842668975733477305566316464684270188010523313677760011331720361514993445638514911286419142445491508434951256163295778801270390703956842056396901059595614861651044851920248762990673919178491276432267477252396935852159116849112718084463595465757739550418111680699635608585376154437344018002321791606598386045813697322770231217890229530405730028918513570979244602387464585649275342610124869998194143982372398235797107566294848709410293144875717362257046125279146744212591537012212692840048424085288545566326605260158570383790230064449099228952981470855391095609436863531010040342405680804590431257227294601751352775346689698883504508056051852486986428976014152552158055684450089928226780084120751433847999754579364931746616173576206856246258491543676863446794658370040269121037830012085077219354735578504174787099824951412344429559200771759123198354276696229432481210928497528069431275547671665763505442236796914439222073974889760217094439758183882093911714278591170120880293104200686433952871607442664570475541587600083122547879905608354911776846254986197724553795086146577460398788665062614777564577143137950023436143310513861054796427369067221277276557146362294880088445853707086879989070861402528893070210746923439630234113733784827618048341091644807571175014696139431444723030474810407242735919973294451879311969930335108082129048190128598121823516590690437330577964001272155211758441938658819670861767478039867391967380765659006994840927357027790262024741905126060392607354080954053440096735942589422315936740522581524095434294691005095083905984507911960698325506245435127419017092444510459476718754616940400224817887665955983857043204694206207273315677046871394590134328211656793131530338896860038452049603713651122817427650678763356820380359759573859171636232901078081008750753472026998349632207644758439875174616276627670204504213479330671761003823722951362801502797934866996956926315812861488309044708654388228414343757422979009545378713487432704255785123634711719874807144662742639478240687268890026745672008322676934088402038765537207511408096971107299248551598975540178222106460018865499439671157636615665882729614096066627826468797529650767782035130037980329807565930357211928405338228404901550747408645832255762908331829951079147402236785645631637720185396944261423502091589799663182634428946586758050216478325685129163609323617176578804611657402071384485355584971373771449121279720805456061091537607540491072315428079171484056687585544628572006939224977427874409403982856831554049597035259508188478283051362994386602272732526500816019175814059830240561259015137549357158728594113496919063234475315195518193140395874142096743843661694047942171102877027382365403602451498438322062653170158134036356050581285869455844507185511534823124415395796037789102736631982893964761912543214426277728035821049787749698157934113901670092564411244622711801283552266476752877045377319693619632936455293420711549141904512753190096462932360282449776224867772809829965101634872222776589960491722226981875165633851300902376223797952570313754496658000907574117590245065568986781419089662513957735255332445111876102529961884002522516374403061201968046138735690446717975000965648083542550887926524876930897789077143922951945702218769163824960728671959324887780076965751550955118210015111242062423460282961978758657331144262271647990740450666104261012490657789185955424032363979196029931095462834884751574088171466645708283816273769277915174919842552267179896633042411590317139909647711876362584531348850725492189941433536171399607810174828308164139553706683134545058460863920140175475957718035302322586416219632030700624717291499735903946229280348753882177421010799899976887622689953671716990810611511692279078191005186506595725505222694387930002364038683711786149835100809278408124931808260063285363392449520452245926043377659693514484740068831802338466057394808360943409439619627281003499867224561349054256755025285321355583316133402115899413038131091455029583560806423075483088268458049450851901251532148578858971324763424220963696384267432285381014952905027099273021108728412864556799807373042481683940625653061495502043216983316734227689034754285632769313966776457472277514740210274401663183753998282565078284952120871551593033215575294401764855846287183579809765264846032271263184458547728622700366351551100999270564242893802081362993280324427809810660142792276669521032285164355442983126563516836481809095510784321606334810844838789646110844467084688279682198996009934840031502069883548439776155637775104934401764722919573121820754050627280938444229388339272061264147759597842070033252431991178656746232678891609133079344680853446429491218373130425264590326414517538506761000255033618502635589896248572372311673734002405699784292688888132489871837795077563658261093065826617466104537932971113337030058353201985017640685518927860930948598831196197895992541715124927272543256561734013137281608022300929141077501354089321569109480830807839206093537561332082162723755352756423953998197437318729820102672564790232266384143772818357245950031890896333929724566891700628856669878099859895388786669881867861589946912471411351267341457766498398102436861516666632219585470735667026583433156419876552009716481544257730486280996978617815814432078252712308497949952293291800515794518586947812410366408653019942815891420122868538706210549261224779450532065165321779045700089943723742450115461408915153154693237777638173885758567595324621193784099400672967083195390253959878439606521646534111916971097119756011848023662116806856598205423840063649536444021909763162600774090678652415817382709413780389049220544256051435398940762622598200363015555256347796470097540206995739137335088217109351526367019626222043091770816972068584805205175259421355849470569190414284014919144672499061514928458033835499177807394907462905748860870342476412559415288713997119295094432367285394296422058914503080619871602123724932058212453726225513915743089658804163538383263622178750621040139155117824929220785933171933013001455279874286229433546335291313002582426470790452409600448770535272680605703854177445331839834874122118083623435741361532103309294826412817390432350358949724069578514045601723831521985495434423264553369160424558779168826570953584680681649720785718565883858607062149180388965438981948877064220931216173318838144637718850684778208104928017280711758444758334787108580259797469457147559431160216543459596638799569120716162554456224629272944581694150957089005322598934770231078518929737799438681002370883591662967155283156070885606124639124308295545109549351687494085738532452740554310910697516854440522768659819683164487143817751655620760333650189962992497033869013063863185265925347804627836319731480715784721232164997471306664258608070028949665641046076048147338889202554888145896880991356562273283700638672612785325700182696693255412058290261512810656595593431007628142128949153722625418942534099458053964903677536000547615231876269039741668220916502214684448624313643891308969054790161696062569036939167580959369783255903661983604257160402875196765421754243457776564877739445803525521188117106323019194327397140386085046548920438474480486560769805062897408969647910439927727691151699481740332111294962665220954402327598319574940998322080727505426371423772135430052387349784396107691760187533609666133823409082667840823938850893799660616736361602723296585360748623550685869189922821254141296381881085454190842426714681330208472154390619219701998050001254123846302570514973314540010922368011721244353393277121382387120613940429241927327954141103421175694548094479419000316258407481601868359592794672363890366248417138735608813955346039961662012324850611075787544952975529993405817080053679352462954985077203440794233965922286471917033216010616484550885863192711120479299617324438740483936128072696707857371045317470903939850656194114460045403989054449186655320116444519669889973368413896048150802716649314320359229263838910942839407163918049143449919006888229789880800523121200629745714816804290518209798043360547535993798861364020429591869940979358917358823800375800496016065129282416035409717274052671550172459330626902392704431588262211604361719515515021462830567729964523047087232565872736964202039531201409186510410784599489761132745119272845264313491861635428824561009936998291518242373103073426293841095555803124355170547181878389885632630280324779822888764942028492114332134593733325802426953915831059262401504419764369863829583252389079261758195491099202480276461630315274612959624941998859983635266739607946208181792593211191883144000643916265449822417381261777913250867189631646677290705019954279295135394077300834757964338682375284034675952316060208927194332235290997426605711834094902232969766160738751750645181162910840471076710345412337031758368682106921177258963070705314148966851954330519666150723608282009744234795290370624346796675209974817772937617913195328842267800966501913659664456855143349003882955234017029443952756273516154878012406946535842743974441409570061067886781178263614541172970294678415863286834753438393095074397961703081344919644702490350880211113423057274912412819907077351338227371405051454550205984709212846973333336252278959378020053486970825322558537835428612861168616882022678739759384017933596247661737068498112826169929183884025418661289022828885396434623063793054329580013618433469734351859746047683897928663361791637614718989056935708527721073794702428705880270383791399240929567799879454983191306162868862469947141922288342883301358812182802722247177128539318015729256110756786636686178697789104208357362050443042089692058284232928442115143266824653928424712072678630359106136010440617153458559410212191152985187592565933271174148445589117754750482867757193358130970187869783027906113806845500427645398657550987193735360050921198304929067209449337799287816649519470711078299051527766779143818332170693672348501238710086916687226874548302520585489843462173878129348232948466899785644487671640033051290170139699912468500469837102390377574876431483968453520052583413295229382547958845472464056566957990626321161840830759583387542459332528817973184432220180796295496328777862917035076759030559072789928122909327461824029292243663410290842791156034787673040992847266562090965226148795856821610713427466263143746271648491346602883620459792431701957459307832920246194548460288202556397021850995259274186234819349180532839706168487354442273468432839067730494934853699879107125155839432362058763358242697161804747440041837904620502883889754268151135750996925156000730739186137221233758182994390747344984490372617352313546972397898049037293128140027111937681065919787108918029759440158776067875298031131338534940731362636071035993647140680494669898170413485781342964774109649245026264722919475665746676514811144112643733254862557903527052870282279088559029841130515219037098774752536324326027713433551597852219603988588844735580578691892311719409781147317642878267665007752093003829608125455317507756626624743965917699303180934692139189159046705645013971800011856122669238708820922051715616551230942453533651687919283839350083225431100577197316709555195113116568224676956192525823081243387670740744234888049612768705977385884184534543300328455043881365389617421815885489549152374574862698839476075677447160774385950148525538073085002112012547330602529998270521641351173789045207403845001577519428382622538836503196389509528165798775510329625937691289899644996710491990642427222242083316793912793006652024300898517659697983587050471411336894235777779161385322335853551716022629749539407277248427080380681198948904148021535543435764999814963912705214814901236622418516142222341116453163254562110744495009628743080169127601961452652371142319738297245442548890025986654994783930817114387409841309664974945476036277382623496673400703416041684024314268972001386966510468787490408653538702279486671605736327324666996614385303115298964931737145801360325328590982759230392467353417510802656657103816580254242709682842948645182396282462898052448697635446135955231874606424164565455590747358567686494688480251873371391055495978206647877656623312177548836767304132709683771339065137315430075323526930232712850167822168502225407728766943261247609628975856005098688155769048335718746086489858284835584741762908240426147641405800596487272249046255707372528217363948516932122636332924618285791829786800950657444662775658682174949493224831406002967518181723450354040050190394038132929923650130579359990533561920756572771137691107376767459933356720422335203350789861849663284784436502290320476655219527103977622986537311533892389426585467668478989881664053486744404036022177623667926422315758952862520146506133707745211550533465730335307850078392272578045758719408450759822427398982376849432736101133695325127071933041084315938059460930590811404200338529809031128963824653683275998006809838090357530145122298764006244500816132113940220538463401562052567278345835685507481512892038487326623034810123899985923991819308430123824434239061515010750099048251317407933757623956084642209387682139259791971446064171305404205366926627452820317729179345065666557294215311174498733660130129370978429737496100238339286802239423427509947800893447599477397537358502917850299455227942528488797094476384428671507931623504166091868320783023341492333033196577011224252620756247590992118838763355611717927456505477649721166202672548976963380002340062433612628699992050755611350584035772445333230960294618013300813702684097296030511820364359356266470567968206992612257966384868960261437630563210097361525043994627791762336738932387247132894693696400798981651001916145283206170165424812940810884615891200819716941080149005219647152565882184308863603596392331843726366002929408669106930473360755992405781559291894456202308993586972407180251036535481237950009527372208523647289965878999897930599075248396852262451910167642800156244315759158429968969011779332600227731733449365987206078372499414117074311210578229666134624399066428274928280295202397057234469475924164437803994908539847368193858762526867510285678119875133426198270682921815519061676899031337500644983948105077232175208633957800362812664238759299908208496581486756009276633584304610697037619906321009074263805238319372917228509378286873334757030239292395518840894610712861624759930629131231207700503520739185821906858581777430515173674849426288009818281153551201169287498331418981342202032667544217994068669640105370116406459094475173286133139977667291338904908080439355556742623631780902358926001870583296068708191001632411963006385309558241677524208110789786134703020758635526604014633178719601441492610554658103487539239277641505065599810496181496894627055142368978234296799716297689081777468125900475085602585644826253453066892216737111664224716498609484361211645279252709523243020136001250723294571592612557192035433377793154949985402557674579818650734434320810977352900464113332299168246528374634320585496883288708112442333916458786995241332138057258351996380325320103823506288931570112000257544755241015063527546488212771575882086199398110302504274216288335382877533009873318086139512246474946846504040356260927035844840134844366123012947978455984274920296748928248294941587201502231806945625147885628660744245727506015375202654886317355193951415949368412293457061339488725794155051900434686179499005972013137708216527656949383055935843852370646818563406962106656944674811252337631848345810813812557563326364667696829809522187224239854713059690133405198288800800187740280818099463509397330318044220787459222671115025001803028614029270328672887385522378626509103798008189836897537955420748258435576926337744088868403637306266048814829285208508222872122664972567527286879311290825914055002943522733306687843399356601899502247225403014126941394554869508259249002955839298863908915591507021061329728864339092782582683611762404122148656846320835263618671056613498197024047392366947150276124226717125187386762076965950873911151910003765767316441052625804356605176408613215891892994346607334250795738551541901307299053615574333991657762959322120689651163450543761286228667727671691252911091448911338068577209858867095057581065913053438978569218561210290338173410135026858158851961522633970124828196680454055371855453456997136439386096964539370133534159268527530917329768409126472575611249455120170981934760645506381207328133867214492603613870209436630205728238891452055494940613512998670290986511647626866316393455178648266872654186321860225411157802156634365920828191521075959401482818584325461027082376678870491239881513230052742218118678006282758506852189497280249933221839477714024145420122362880664294302682141445379653056165369237022722337029881114004730718252640857955376761982313729229321677487263911886648443090827976217745512466013897962538461147718779656263679845153483059098050721344807435766781508720497859722518091580062075737825893838122213110253601860914045083709375816383703432448793543348277571119799132756030379750819375389989472778146822246881980104468585746249814592567103414052672830912174889420130718801542665882257809054023586738503436670166698247861665557026910699988185115618405063397844656387810237973195604096839763876456519438498461097875745340980436417968147855145418338603642404491215636483553425387308828886413821869154421423224062987779894566492222668807488197254547800863865376171445394000967843484463948588655304520711641591498950254749704690130251162710805518145752123727679175954332237631416932206793796497335321402791081021513599883706307674166589912188247893540563813775789147074852474252910404376803863487751952048289997922824265295246705944364857142379424631326949843741335751816059362937120466674017150350250811220484726731952829573627081491163980725885779643005674994053228271709388303529209598491631251959998277209604478434320086476743912707274230606036279209954499763251580592092015729942269040190392148094803872942925473847594172818556387476004768035786356010812180863103107781601577310123078126318120470542172866939715809444277693767954988589429422694593470598247347664006118747493461068924505126435377175067058353941155676847325323858883870134726463157376495633300614156793766527031859984032265420055416695920538246509223756383173454029348064061372951893021376900846675165946192021634074633643728122204592421930955258636108052518504987067555460514361205443274915231661734230807117878427957887872151441470096290860324093818635230531666188090966494986024680745645840811304376648893506069418218076190156230438376231719482641763138296757315449596987661948576161217069762171761817388616751794342869636857104918802088317080853978202950979547008100946735970745871953611091429477865561210985267418128102504472979768346455480055875055854725073200652157285171723534212132019931096473065252095078604884212030826418050772936545194218718156214910784985041948114106999471092254031702302652600439241147310361610022487405344546525230519478704403843769061440366898544740966169731134580175471911924018233902544701088354973060477508271085446781080967908859320186466840163408296955488398403840652229052119161433230294789550710685839259033314546339164382205609579784778519397450381393564635904494522912379029409093671509438141275232242922690265303269306788762057872339525935605801214545308333849546798500447800795610345545236132754657287265603768255506628061843555715123037498220564016969573434911500793785515298394943262356377057150468158272127474944191694387335356542300809863427694138913562883979303535541851982374437986741894369150537866725931277762880408751931509132326834740826109484705949466068930399784440807460609357096880986972280623833824159359381415530185613171789511090643257227482487829753113972561519314656949997419153659719970916625236943090884605604334312569717364635930917445400981772251070509073282441776698387747997148287053515427026506558403686259840326901938110077233627276860184303559735990133901488365341710512226175483737295804837678567522611437667090551347511874631764968131566180901960326922436031052554575991285857803869178219277213219456376168494238666076000244480360971994635348604018064022863592486863526657974319117940293574737578526337719380930058178458900126105301530087465896998452028232513534993935806840522839482154837566452358912786658387689303989201329223409502245704336791012503336720092728030981710203081908873586493111784013645048894837608126388939138454889664176461517693775951248212809380567431609271331723464912026000986813825446806188118609825266693203368451163874187720992828687131986877798905540031173273899334517835641033867469968214024770620081997859288443734613524776134793314996734389328461346390757164502639943371228359007615897736446544045680705084045968382358230759815815860180465643178279094961515665376889559854817474954818259866587004322125056609159821352794157852999933290330491302649140124260324596086532293305717099334718722216357313016450560691301179226951034440039268787517947958864651994035289397243883199853837189123642774539750420025208211578374522874468831464131197282881077957778542026885070324317316839757227599312338756424680665654817502107373196275654345110245086165997866500738606083038183809864568463321464381814652719500455737274834085888276336392995053710258497263349879965409548320165539642961481147765945523849467922899385368728237093112506663207318636289528979656197804701804810377613728781491380861037016166195935324709820526688573048314158341100140253555019171943076195730243708891785633836769811256262630300297175103283472776985947665413601926843533874689894306829818259837813909614335772000688006335917573837652151064197848027001362856115588908440242759927203105802955870327321829390859030716872832846778674699803264176248174128435891409044199769390448853553272062543414899215079933618477591346351469494954851517773125486347854098856260534553929637687835730629521951212086834004021106781107368613451392114184843579778011543761174937709567966421798764984727018398255024214993199481353208173772982033973292696883255331766147699943238356465103217110045221137870795618052959092042511142955620289136994588419139573219724921248858146757200665940183575182177995937196718529374600160200970517040616633219580734576606116498183307363299641234753218674702808869527964104334409612859612986209429677060847366948062105518759551571209833876779003145391368575655302570717000302317130114764336232832557559136766198703342745209866553870835788136691731467476810588014758017148114280128419773096997532871989850391642042845443129446984209694778495797691559065530978960479827298904815565188111099268249938814512723760598862279039578662303222116075243481712707375747154587549604854315172066996707403843757590576635779208836610398610841671253204906860144637972840574007383370248879574470740231966672089043852033875064602140628262643383016064017513802454761388938218519954572387425872022746693700742901745101305081657079018716682917160778418828842970745870537931375636223613545311256928486673650045622517920773193508748463366687357549753500903439116698324296853475956771363299215537669893748062218639766367941031936660434123665293990688499843813858489941392671117904014348127459518935191557536455526103321751423354855655780225717832139121081530943651797582458765260655955014395121022046923446091965936299451568747854329994453346740477128549729781733281280914626951000732418225180889979482339008615005346378942167711713396874460669842493758453317998956183668584164069755359258430893066453992462680611162768045373003880399290610794366854705092115217590401504454870208013308032071497223267710058246135247092480338691041705179779578269315537162893247811018470557882266637983333853890799588158592596741450687573528273830219047130025343640872394927930855682558400207276725054370792441769172438437491331761148370739021860221593088098173092504002070564076825981755206062424609208528288228072785948293115097898899504561123983934527021464574680142350462002254244857335311114727894402567778326041920003012479665464603580977750264433355938566331154150338355611423043918393953073501374973352193503697082690416664433678171887132666649198156850592695690274476447723150050435539978509740515818104434337966647304493221085126539122007445443867754302153821532875733243034227017500140218561380484722417056350538118819131623350605104632874645012072677431286724967308312075476808170253928881369392244674576496664832573944613172699145896961388154364375318183914986607091974090457982171946977054898084105534259255187929010474659585648511112210829104194625644334960068001670787488758272180171041951661968359319983673114086814220825977685085930285445433529267245535701039974341805294875259376246451602463098741980746482118579882017315063554815397709800701305809900284044300240925658111217881154403064717562062027532245680407679738904225090883989999584647732477370226858223097528262976224399567554924296293700228076052955269315711805957354387451588481893172479638814845022138490639398476773208115138532881261415645327688666393638380107286129836062001780623555367158529536996876031763732357794498837043171951182183111762251992055316194012612090534340140759218811672865281900826749738023523210030848584663610113218217835700805403097389086122639089908034273496540928444966277177704244541655372265501819033466965506865357748091845705048570764743331827433648862026678733489314523246412876458483636699361904347801262938464685908550637132473199508675124938009543595378278313745308115465275929906350536900790780820208374524916894395528154318055181950443490432537548218400199571235693808935534235145733104013487205545174231308865751087338704145786247300351275168151961850763340300048361514754551115312780166556279813787023607288865751487905138421870724438483010035057646068228382113559119934044728325713989557718315302597249973106411857239445809331917274517022835004890371295508713943797321018124530314262127781263412419382416141968810713588942888202354958097522484593355942767696357548346532017916530715470410883926348590256285248207094743982458871595400999162120800057818058494082535822082715129087182421315081684587825933266381741261849179822989411977330098519653342290971583156706170285629514136930543135070939222353121656292016307373596276278904044265685331598201707324103208847927092689881324426314492649623735021597318667440829915949766243938926962118731328075992281101383022643521643042179548442412797982616757198888806253822179519224413815234948422724470581382975631656279498551815560703952187221506198011002899241255969033307775041396113713426886923828072029365324187234743984163386610656302801293794991853393761731547614061535019824945781581638266553692660206359288958406287950191833485082239191493018432026773375739665995804439558175501577409802581448114029148831862493718029648346730204939025533299680081473691186019850522448894093791973111699790769422137465418214830316140013227338332804823676530426182514786679117247872901483980761513597944106227004038534405025128821747749345740245638007646226954763492347618784650180517467299153588015817978917283010196404075387507039282932924821648817725101993522529863444057600268471558932747686375936316055889312976993252452319191876952603557223559518516575596419773818434282251375119945332016797029878381416692270086800109643558394948039558259226129177255334917193141544154402498314617438007684384363249523371598367678575058213266837135286798349891311278321800991444762931698655719472965613806350966153681888199549797928673042072060384146571446277379528851726665079314459135744088008978754989378287329302300710531606641634180133606388466843343093508172750357681952221565194273174701430531200579507716521284148917651842782087480865530313609286883928388204396126554450003710426038244585890796007635632921347504420489636287389572979602546325060775961453136702433263642348003245444463427375035933785828818091220711084893150243599547891994499455477666044312301373452527419759430123638143623843803743292126848776441481465081584417168830885684699128751574584456865497697875833732262486363098190166310575495968227688335258624094289956712839187543855730561843237214921216367721516444995133240134808407530164768609104007700929158559558924567489272922477197849650310540777355706832974637019708523950195972368611937213455658229441728449899563286215091729423326767578891541101339462288185971056658726263471271792337075021553632390209259721802463062096044479060504685512298623363328547414523741975239857128017379178933827319583960325631313845994111895504421804604038635277773011441598481644043611149755026413675487489645622612274890311845172268697697638135587292240909102189078486138146686345837789404116893769809354211027838940279464466990540819213921246922073097016263037343417514139686627552522904163570791663757399813754652276723449304203351970867694987398609111822820128676945770916757220072208469488703779167906356333612522681618163239341972569870590432307895990423126636095252331093886845008916529780148767750147317744425895251844207419830678286822396941692633436127758206217234011187498949302482967271622283399264721267577342423969871070173406364283213436927338597687479946563772920265404112980304057128431719496222360586821611569012752044278269762060030083915749517871001819020493447872431067060192523064863622588957841307982881331781254573826406518019887310141279512836353902106661625374073804429726925893028002136742619330371290814394180933573110071096374402843881934610022888928456998239490627564114431945597394576796353406508614314043473559442215115497794927147848467556799677228505364416027164614594435897908480351271937073955704074590649131548515454243510108013305209644638582123176780385477761686028677604049202229663208767849366862560992785095065810030539670626285756668657386140022624788587186840648706749524487347972868506083360768309664946183997339195403940165113518807925914761180130164046000579048769188067110670021802254424834767420370224288138525643650511536024968474439620449731188327215659718348197500168160057872802075849819430477693723574975460171025242952990437988368839682188041284158487016277752381888475707642903409203694375846924767916092227549576961347445526029447098805357787844762626212691930708855492615128550238808227446040259832148389252102895776056566158969662616695335505550285390814737696575333194394196128170315195394544949735528693080449370492896117677815358398511665305603567112590827230043297973746662106541091482338997884003576606409188653813946260964423515873579922590697783229209826454532941866084838754217868496997757026758109421750554193166623748985027990180574252900077456123644571259682386296151254097530312160384431647701445061276537459973514660818375924218839661292338087593641938245026315486885312998073061526693769981181183147883548265133986498260748761210749833964168980829299401371428405544386316940341097794697690598524929513163807801882838090993707445850432144803002360359729984682048851727842327870643579287822512321724170108167938022212331542245727613163972047943898353140469384225913749874051555335087617471951188632583450700093151227418468661289086206288326543908635213529842345057077267694370840916028350276998004249512542696791216244791226201156938970784484282702599207991403346937896539168440728826176051595320788469273772438592634230193993466256961728992076386406308751015191928206847892955425659422932943512510437294397412391498389413896991670222610298156467386288671909817108776093116904094798816407291591310506866729690592906275401927204421063621023901601197877630245440135423230378699387253970103203146531779674566339221051720383674832430247147207900346087676986166283504155796960790788272827301124279666330502520327705788104196181985336891842839366388932932423900557720250341298977403665540090015581461487660942131836200132953623442323203193452926375512545826677308930389303858852356314227591547070550132704811731311431337379827545441185716596021476727664559241071641633150389294609820870336475941855878873916402389608045957230645457932788493409337618304651053040990483977462829363011740434081873157013565512787589312787646359161204359599243326797001095582851650794701631644655205229584230705238940336049668430585039184118178961790714196459873007355149832305235131451514214196473367631600840899759896762377052594897374110320681861979798838333245931114902518068671656724002597403122389960387509734409647344366645451552152479622937614812329662305175185429505916181078140929328296163365704309223941938878331633842143664762235826563547478049134997821849814109820906790785946346382760669533927261040889753557343063745342115779710693606192669229880701775533644359264770631957033607533303701156223922405553906214315552899330625325993458724191528823878741527794421241498956062145357623989885413713156672446272988192381819302877097364116716198180711781553370835717704318017180949270641602597293118399385762814940597762215677741499848784584137093706624895883580208121055896121126083736653138001882679465811522486302219648496067565354521215223616665077321161866314897822000403789609286746335571226022284104745427907714544595311833457337759811831827930068443030061311975977722424322170716771322425028719835141050389752545774032533475523268485359002808268432659116151817692944776856481024737245475850333475178397249683412952050769046546362196796263525525235428415606767894299980570532055567486308163854411610180685822479360737700214019556741071628815307644407705736223946045742808282749317560625133414179968346466542336073442727384603496139176700674281240841655094938195298569157844439120631528923278519495552687014385889148129547025707167595513084218251510227092321306403402492264043807394877475758160913592383307020888057790503765324455973197737715030693493041041361880924268313069431652489620756740506196383747647652454478861760870880479901758917692348125630364742548043695942501533549449581798825474780197776114576232685387692110145150710727425347209651990494429468279532864410376274400052464613093276333510417010589759984323012858467503591047599845064048361050155175388900354778643427274971253373889992920269025358118057541835368620880515540154379846272129177220429301270278287878617195687438413394187736420606863378644068579824112072738410545174627779399251226635918254724832596454315372793249307113054624413231320274941436665569385638441490075244632455434235361410097722225831964697080245428600046755788615296566867525847778301729946529490979836169100504392945756829792314829335443635192396895621610918991692036276050530951155560467172029006030320062499817699330622047347882620349277369376490083051044611642197052220469884404161608821192614738079384627532258999908594172694002125821005210909743109843953921769691910783685696778328413218056150188731503823770614242533315767041346135641294889889803459769884330706273663267598583891095908815239476404469776377148107718567285727270979451800004568508396602013296259281782603165579821601905558518249309784217048678968427622125705331767066797760564767958299916991863460069887385914267590192745650563187030765864938929329618204108760061661913173988394392645500781651097978261789635558995575408467650432872704304626002980367216594402903859037626198392347759013389703531597495477651389500855153161100209347723054919660652627633907059380778457480017613293260243575262319063352087023461470389804303730922617336870905371134375674891532716857771256127047132008178129010502445233247423387226932832584525384623797495086335295781971727492716443517493283104457701260447805167541792175251933828983172733624833405747915205805518172505730021539807745297335524583381462892991101535724950306501982058854547696558623485237981964288919907271824752415345467311555697645432703122598016042633178617062076684006069144292314637152803795712755121594845849858072785751218647025738999579612919898262850345326884418770886165250851325634421874479228157211947829822558783061302174974227893366329957997317345524576746727541463690173924361874666315918571423840730474996675996266982522592192614773681973801646185972209339298656446400193464781654848878187505636228149557078780053356615370328802882091792790650787816076124285556852903736358144368633198017549524499102994671572201275786167028547757820959425881013153083365077015050908774074311549847012417535012695406583021164785798738025931443580319735826336547141296772771458113475103482134761072942561585582585071869704497340225020683236509439956583582345444309863486201919034498537660311484727910552734961135496317738302436471306937570481564125424864322407484062055867526743555575014376540569531172823622797434545986699034591729432450790916621825826813517503458266656008681103213650017320669550181437178703050368171757963182422375222724274601413549861122301042045519185290867552570566994666173014887109145802980023524629471914262198664228619811972527539776358404780193420832798168425804774754612125816512181158389734851785602982631257399636121463811163698551128795370225553377654657379063558512492556391063484660372770488505161504116355698550250007472007209135079794101594701553038231974882397165892584755332857213737165995857160004929694289468824490690086488146534531214229037648927816036021832435266752154514931516717556529481779760813580677053507992447845293616875143536861862580333490426697898733435446727687770634866940676934837178321799598234103657095968663567837617926428043684957009199816750229917402768826284877527434236473104297621647287537553627411424742640851653066524910010248045844335128176627043438903950988031042211219411245912582045081564567608846997901608710455827905770945007884473548891668686760452737761284798986745373654532815306201241138041369072631249639269695582496336942940547932635080690835943626940279611196821217472629654539399148561148933602843024245516275869549326336712132430397787096310458881010228754530297046284726949215679188221636727957192859466666834964529798112827410255098372320690179365763583870462733867421895922456093563966433753026008226673890071116421643680627833876384863010366031759247477557137369296701447111385456991425431208289064404614811648793396496654603355077257988644772237040881688258676513462180721109264043485929813628169919275444496519822585158401842555169394363103851710763055430951106655482295092629535518601814603885782033710600001040708356571365608975928553079468474911023880543466498553880325728673145653487681963429376994257302980069944912721726362062109018877288529634311385014086461706877794996892042635335449861383998008434030027297299680868891264610210957559909347034850050366961153955945161098425867866942066897568996067478875338128642886343757829516401452046108508063989918723482488239376521535367023000014697801337837500143950410181552367426231786568069827443710657132132835106453148131619125432482799789586495597441918906645311305028124711463419469789072524339255695301491958364700919045032623897564554957379160884904769872142322586601451878016972391752947464498343152312404761425238411349643866696614196472054649144485292478269127485876655821679130218764616396845132675649874180789191239392790200044069966467120400297416701663013313547910451812993553303927699478315317827061096560119999455344687936551512463269666182053250400780987189088017569442950349127101029803194020337249536612413207963438627621947895766499029906322060109688280864360468111151894607119737482389383246295624394405447707677443335285383491552311236806576448323255280212466891191351203246399803767606622504827881920172551623434506543697383664673897424401566991347761404218362755568403269334594429155557618485088579740511650804415223327721339965253840543759815612413369644148279925084379790661541280475609951591804081827053916362011703599642516973109210860985065406230882741281013089480991449565561180663385500194214815899077749868873919078809518247356866336345326893281986234486667579937679198765014148810096250096102665447119017021476320748882532810261494468216695688141393714906095013866029119531218828248756641284759540478870437969842210564116201834827531855422489192741288760505260940539752424259616776044221717170251430380303490690347480148975511313896056748978510440778393816605621160595281033966885809228403531117793657603046051620733040558467135087599336182636301866179087959199497889779886517020861191706605319747887501752075814860787213449411297571563823305623730372297493173402643575262488257928163847167543145940894602958238464821382961181169564734816176094039756094041060571987016348254350117144485883374158375908049252610769168737945089115895263714446318421283801218947492544205935668323111939998367085399759022552742502468234751306921311943994316245906674193774714085049728192083293820922273296795133395808392512244791584399394007171242238785233334262338296659546591557825636141419476314222983049323414058501238757467759878017589554186956812662817016842428326869958732323898186420787654586469410076881533921170589195223737403328161454114264876843417688120219840395224643108642688794783681328060346939166790201261992893191093505965045025953411116169915573120555784779211492073753365892951786543889288519941469300610086892378046549051364392944918697122509463508132003575935453232214921891243434508269688918354084064467936541020407667244162963045543767292745724326143054049370872793008864028273733271723087213581486539796562281452574025685757195230424391307408230939618344655264122671668410105663984922898835250742885497199290250743356335488840330997761802403369198770993064088872303434014244554165884213622658736908410044888665225079143101376299757731709101944201088022008203989203944920539946298161202713555655141470143939086737331689001217249802260065320390230082076054965813003790640840689438285612529221903976666654583394035912135499273040003003445554784410336293275633357532021313867019924878339686842839227282003969415321029392957219323517102041441591547473004156905762857334607596483145460676319470420707253530272953587591811293513964167886156539954669808076804099471699913027122412900307670760765719685605598495593187269962989573131524994138796283855900515904214941341273602242495577516875188154642088200899292224628286077703641356613021252308322955519660273311100531044573224823319172201819663864972644052490838776865274761554112056127033516254762948145880429844737853507287442029201091065274227427272514285220802826721836159043419320890293763700855599527452862121367813754351329548264610048458179732082297570388374374282360667809048982790562884526368161101571390218864327073810315681422852160372544412074124491521487730750168519386077643376886982873310370534108846840870486065439289774269773742258557796109657494475336591334404331777517712500477465373896446470854628638129934658656296204547257493820724068399236794991045548886813871295925717340017341100906811592446518123804687263263471607956583573877289857865361938326914585415699372831923933091040891610924557043100508216010780166181965499358673027898883651422560646952639761566126557339423526276460052113358371431074828474145431390172688889424277442742611177104166485419402869212819791361445819235598317493695318400544625845379210625935362205831005008947977850932143322505951439234407002545194761138203634803925945178147366149671566933236480137701100011881927007053330197629955947477140237094566178584594877195503603833866002620640821997728706974160684479015467776383030331821946246733327952682547811061851907390872490374437541131790461946457342082625437402809668804076993502731496136993021119118813535665442712197891203223329769018596817175688329486122490755082343122074198773329861063943971995509225738462947340677634878781296039377144409588345575394974319137604660289400987157256436032921332996482454051297853296939546754385333341086384997416796634044864083349949555205643416089765318241927364088898738193739215453172285545806784470147776127797227794679420516692702311955381269404894184129736259679698821566155908450163775255294688592888660352348904739220662270667186032367380026299771612772890411771667786590511331527563165209774022019404256905074419238419227205230604407870018356636571441720671144838627011415159196206133457272170743786852334865344406261731791543883518696402333794781421930307966065977120660620086529984467407190151691501786910240613984614719005856365627421898747851873788440563688032256201423938830662985525044249348884472166257283121526387492448780339995797798443644718440083414816915070518123461694162971704743934050469896246000050832122727104308807320406106265731095978973978650317574638210239367981255831741240667669970763892493945974377341757270670798017608719689122452102484021582298332825063015132960114313896181341929031056969492833890390535849538728711354168979312106167426971886223486868752953291890370506341339182067105504542823038294233417987955612899266861155998526108102554855436282739539445005048040164827199851608870087686130279921487931832733277364144480309028934292223050831454098039768726566773694588735021034044021494421924598377659136168342969271252822500548149627460392174726800977906651898277709192858858559799766980385145286667312176124826764978936438722247258835771985934014288722140292028075476502010978183303625540321864794248170401292618044256529869707341618931199814753845097137067626337184056743582321525600651346065453310591926103941781146265340631385017842245768464754470013458325386677879174054213131205608734939991172187510273424046485275612598345299798878513364400526666409304541615531784213256118901677897479271077210819393402615499697048308990082360959249373558547866313120910371482497683967573092157141726692135394842687731546087740191065850714345794303788566453321147274341296381667843507212058155271123385399230602732067193342535078146263462557179290226413894431952587507448760539094250733662440814217268078381185850578478815450905488972976093731420111049094682446829824030630915052038383072774949197101699616905600716307380945491614356534053266398575186125118317530912036604241179129565174509123824930195312513840010982721532000960747642131264477690158871652679411773400536159759240309154720986706312830604112787049573890601908093339565971919066683806034059639898541543400543991823532112043765050508508861185434678674506498656391065917637243791657586530495488849333501210885183759562954695358366543556889410598269342373846274228562546074502651895662377596628867812455041219048567682563780304066646487569926572559941492330787772085428832668603552445554346390975235403845289475205585266960720585983584123065942489175099452835891231486990643177375117921850842557406432320812651132945135881851209986854917848003812418452132052843237285971090090043247767323699981883505103911314431376979021692368995677361058267788863797525808925392854876104531119031062062834186471998598026414428062906612299040777193420128503786439140637844090339962701905625512719342890820816192874028578452813229150949788578107407664626192775951114938785946821122497027997203201198385588147922961027121883611011707375366709305425476471456575312753732649511234789878687063361053281150680595848007004090504973073845844818242364714528273944611470900791444296908351956106268066976094078032508434673389506705941592666482931035272053221504317061507946191592938303109201773767946087558293845193452478727854854569232599824665092877077039783829284256495125791797859787328026781340554892272568009027413724879210297491362325886157054733469279496699007373802197388940689361618023094795211491663495109932787296903471915668199949178574909294549611680968056049570619029858077202938907739259780419584731203420234988180101924954313686835506931435427083948165821151914893144140072055067743809395265452653277577440274840051973661861638760605213271811022545256573807845619569866456188388566115679047585044470903411049880438183260632505390962882336079131266052220942095451274260140687304534028010919925246427372073775677794902535681479382211708418123693759706627151281461890299797724749459251315198681944874996557431222151301038285246006899062484509970798698283962743873691504337829924593305132741304119892292310621354250227201248511994274792302953371345207333888972939045070668908219700798322144087315566645676048018631566212138881735812369653054565728078295676640834242035827671961801400160137035787861780256300627786933758739651550570638328906310769318519912523019982438622836471531426407447997540829696185847848300179834167699305448150504695873009237747461183153276131937226011740785823751860765591804493252728348191997682139406828757931343781695656458232526835240655844354362870631570514253392689449663594585799790770105183233441833158697222891939284765560537479143702218594483830356440738352288331477221733076330198244983795408849612228553488296523266108142614792010263611332532753052636938730848825559463173095245380619027076458525061363352591637791231579540142034709494760277044167871624568903826337405634529712449795203907827328427452105134783100166579532263248543617145551757514334373916628034202173053406820500179931596636562107377674070893501520049502207450794887975538272717217741646517748176731706431525381930211626876459360960350525535749653310386042542957232097390268805802881809294693151345292781325729908442526114502511358619244368768379233673265189920388407640212582740960886797464777509763676584653288431916666351401237163911912572072796132099124505735741410775515358838147958777447714096257012516902654561470992611627511722793899823793419023606982847937216324266768900870883236580634902691582337499232780829023244073625972308113000192128590856832162907650643180695212504002865782065759505560051357495208032402821815364046629520449941624072550042265167244877525805101805556076881141023152571629002609143947959671994863669611794564965424454259635370949114571049762957313984154101456720030439831981017699752447883351780660077235902609366825551561524862381641533342854196527251203802935325315805980956740576919691125079775158905265191760140221680702551794869267519247597746872500522689875599893459147026410964847317650870113106259436659779389932525532124250359594118030719524698784103555701711953261436616698503620692190774952364347744208301637119045031580981605105221070995730452537281388098089001178930055185396328193933086472866874433967644734401730377866141407859357230458024719441735587752036246287759324319873178468126765132303538716875691415232122174915682838661676957364278566143445334533240349481898078713264614704501950331810783836478636883780537243955597491553754241112600682868196995091617630335647152996855204192286804402959126161383365075807705929532198242464916352189524061671822348674148683847761605907486252884029709822600084437106352876652762174330141047802535212893493312657415385018300659663575058347188876383001621491138400401412668805000350693883122504035136676696267985759192363721263843232194149855689974059731795488078959240460935233749500641341942915594362686901160078130986642293349965419565511269373563690928880113536377855793243924548323147393156018936651030164786436672303877335312457697896600347315186076585535461212215748450869698780725675420413929971499850412767609677176931125413857230943813582120576095195874882719469114670796953550481110445229735195166927323647442998402907385005717844996477425273197970894576885363029297503238928847454354861152965549421325727756741229031042212996844945224995259460895355341793524460933220601235407805569268145366920158707360492962192554600267905695578884399351162566723084196425224287010687683379334545967385159596054348050322165753977431043007932232787611352030342450055026287780546642960133682552781935559726858300197266307300723467224056445104327640014194483759660267870889945611126280472188657795423062659950980900686770577015508413997159672953482066728581955004607101529552098982188766739262265452520569495677948636434113102876470718893608205021753978784435661239026617950323229427557532991126531231790020074938870899848860913338394960857237043954549887033613550983826711227459280901003311316927991395242959809629403650889530144413726167301019449608825334798897144161561746040382667613808564896238588817702696529431760255673127692718125836713900019004544800562060814549636452733895607586517711310663849371345993024425132988709651451161007328605124554740972841408895947827802115419342628771657075575555410982982078925855797654266454319529650204345481733793010988991083097760059578411010544407535141538952971016781962826629374344362715848074511385363618065996638771888609986567956100562047826765813606217214629901084447971402401164948077961498091790357824204243409244346187700153580954986954323099251429315762134217748287536611451469229331290995483979389787245005742124804141061650213325315588959122419278897046356357349337878523236203017301981434446007159592306735823521638362751575393553594617208466887603985342040651695862369448057358170955605030075923939316710198471315098404830151876434416875035156828211673158492510740506632871409262112778038618589257706580440759327262872124072834265757490067524046228981021225622119992495860925453041753181664945119526765845724990019572965678290764036822724585583274130646564554461955098604372404279119418832977277922696462147454198518794934383820819744629088621407011684860745146639950200497420621332006798651240883208239391797442369707473514691096877399246615863170684185130665435339681655658754029442634230691243709317343727485673613554004523128089324549447075950912760909671712170455767700156059034441722295831324950230586518540525249610186394736272092216557620521215281496136315673088902843748103210305333554603682297786880226304901795174618711749884871203318118645138712069666588861682319146431527140721667368830182669228093255392688647059689916404197843719397478482669153607567820300306663252902702673938510751057563806043924676378336186295543126755094000125490445019549952924452397892643832208544484856750206475746227739355180400858613907478401761536577101934271403843321855829161598015532342776470494338143449573905676849911761023270810949773350657733187259488581492195739959347806107147180589085733144470369174918220443564118704385110713419251271897067129695107263980985732634238164196605718952733749151013177508379796485174686171805382677280734116487441067997381378272919107691773360668967795418608850337628439232125538463890350139449618849440750122159669526316140739110541176872307268077543073926852484569008282060004553794128074550338426255434802577368306446007597558351867970255070051450761157313224758749344562169409796597439597454890246748766581948301428502372357717757692031654128882075981467924678270229643591294435306360363164676343911589783269687706758509692648040222635052866034235089680810629261889614430971920145849920415830610401603105784296352819128344292948443437692469173874723339217183061148586210050189844569248216931588648635122316982485564021658330026078188213514815133203300581713028453853306835970094730075728960366456434424777231339931868345968459480143380000185476384552300185564841393102598907937081792154096839669541290110748425943982120757069375164795080320193134406256856685640941428991762252093027039793988671635838047626802473852514216415620531471810860462003762925331224906811135595896065456106263573793180046709330384215340179374382440940872028677892516054197576570081195480137158911492686299547684853792232600867046851790228945240371596082404929592082405721289027844280986773556800337010540569093004791532441713113184712059307449806442561720124940565704962554813016513820041439895902600392353197171974785137062267603429820808168471669877582380525982462145089499785526849681206110213339039875428626162633565703608100912638066931628093040050265333188667794280308879865590626372287428395210666843811084502406333426999782401423506018443038487679593318566575802393314569970437177554246337789937263849207517066181114505016748674355238135232310534279322566492579878202026421242413896363437074299797568746276397658229884870995823066052410947902468159912520158814331623683851464728600843992642558113950484354572260711633763883341217780311774205450979491867412759093875331832939717542084638208263981509734333436926812947085741413252658045463875563031654973401446543780992530677348154441127702458655718946340087945673004309775000798169617980175622139864277014168172461207009577525753327392755399757716658387845618428457814516298693776109107202466565396975321156613549642959563397226008620922935879926656511437213320695654308081077517215045035425774486317674580337882039086150452284904975285734597495996421898570724815178840978386650533951273501081340556468950344656703221997946522233696344387634577254431988771495239334604902114239797716452991531529956158200084477983855145373517136246047246719741039006139952444555844130847561017409553031589660863948961326348172958679818596961400004053366370852585474445894802966572897068496646964598034023770506126581695988476969023708943295506069916516337004758078445529618556790076324188027528168621385376239973020564625647589875661229148016966390253106825004119548624486836564054375972040883906874931474379277733344824268500921208347272583507068771233808128601813304238068793809415550272327682264214662383983069804414886997789392726068925272873899205019410245496685961112201614942900523995848740817459925008359801274534974656457046544595100813670161391779853685397134561289015226831075260913125894821395332385002903302306359206860650659513194347498095369691484233270950995502656825589543941247546880796749446251112108967601279349475258139207022820170272519417839846759126446693314613648976501211192872078106908287254506567753896263633651902494687600753754654634704384723376321775682118242618681313389744121143132506327939849066930193876474902253661404196834476955922006550854256836158201619057832865772730172721646261645499057162832657350404571320040209446628248281561384279234279962472632933919320888420128311088357836999669640294479941567306780249421004756228864588662303661841548149607290659533939611434716273658956646299370349045391429179908265406570349905293870434936108755928414698934863665234316734846804541656284906577984303093873709476146330745619791807612162532786777062045857408814896008713494046922125465729744538310183369557870801002840962234988063983796300061568161950573694953148146944723828210649658424039811193561463006778194469899757744225222758201021227623851944138506222197352600002570828025011722271606700518628014269832494803345687406496317859441470978224288544208784685618747267560416588266833427340547423177535826286000967217551938757563350043026386647037484560487667781481879672489438056867495950795855362016397531923623699483237636968670369702535958495116872191943523570483474437566835157198992330773387224922321043987911200194769008243717792480326958226993480550991600455217698854370404776239509862122598611663059009432763630998982229754573269291397814854285135691256668049341186037836303604307349063890527703685851446813044791036161001462634633937514819036968608731390950657449076656118698462542211119443670506833108766580883507854719945904331434861941707617103907819014245998604362388677838234003808012454680789673976749980689555976145946278287962645083511452826398330508800305627459856065351346946856206816368578507955414632387773028803514555477524543826308408997183154070134489800113580958743002433294409971357654411544937716863574269517146313124687609716118959543223383408046137037869558621650502767048107479571429438494350373468357299721554600718254182980842409467999340055399786125808228232266281093166349456359051567969966892225568030101462421583713148200115554170140710759887497088043014936672781505078997479118414314917108206999786184334106145263857306198352625940239548428593811870812937685841916475925175256339282548718525328978283583778121536865037225723857964385521364113583860261733121773579967956935003194690081100658723551658719975407242991970374039475112267182194205407885633105777138456963247237175057145398130564435751006182184559260573361375976560588273069058647807920911681382339937494251545133528657623567533681938948317345123957759879694361072581794028032425840500685049711308561769618057842580779303088312486297165883011089601513711538516484010787812200383638875281408998978648595979219865233833110039558605490201796876264231902122676293071048363243761508732391974778234100357995478869481525986021969013294323330938125442281729918964748151479023494581790640518742455348120253799728928244871004798462531747982047315434950738508621686930061092383034173156647738525631981303535000928035663558853642591003241694510614900084922195186286292539354291797446604020371935518566115702100302393659820313468787463506676408249957929883095290367493327353392106093586841581765370941062964072554334328055830699087483493959520137732342012124347997353950533703613058199229153772158894820409114591857410011951984817568908829295657637238461501110112936341436855043853606156714906717415357475211587702396250597937288166590464534067119578801932926511899964123833033541088704538049802785310941901810656025871415426553296264269677244442853606857215064153508733207407696176398748870045791444793932529692583472562275928231091230613576340535583744731192925695367001090854228748121607755551275262328287758608287516726093661424329147625133284331413163754017053006539349921507043423414439557261204736330938365716848594931697708357018833287327906009209764904348389607413213251953652767716719099364936176426682568697372146339688977259984434179054787396619359779840255700808205678757570570395517935832482661463469426427613550697128545920314954346271525634718904635462835270296101723019133887748439576377861407715450750809212475930751532293308208768501368864494248836808270526241277312164675727326509136800224729480719944061952958581032996681628809187640212608849560766677577229614897036399464312716737059357181768138183969101406196130936975393459186358001647698944254191021629025635679543636979013475381099474878813090016417526137111772806771069810117141965777369671832460048990087240403164100971814029847641235516149840063086817878970781111697487814368205572227113548171946860167517120047225183958256967327595393876822716765023254883126305556242115974134230811019166026935607954078944821839236007135971155692161480779307840678018434407426060446298975290780441901819420450971893147872347651095009290357228166542270102364773359466835108485372251583484823671212236194408128107227509773714848797368799129470287518146963608592408743107761076906422018607566656546116567464473316881821616069977257305068259903424588498658329647939107556337584324692778281945584237060802868355856772288753791020150588574278908174439777438102455930970805740383509253125334559521568951227974283658687986563786630407698633701276635788956110831044427777763291049366249453585206225655146433219098675982137305107184377352686929030856477485235309853336199044328084754133801679742424804267237427006054480883766868725154042110568739290150675375325589712650110988430570218327393809313509059959587731417089282667332964012040409630487326938044735225684040046664854631222586535812166031046028807743396210570635951904699234152181846122351837014380842086687932800479150019392703814033840036037073534804522735357622943259811594235248920345990569756687096107757888607459621923223936193421194804746126036399771286875817116127827997328753637474825237467249110491760474546610432705046011227600061620893900561453113895971877317011604245085979356529557564895768576627565738593693193700898133245298464535113730876775320065701364900748698814779029324156077765658352096594325838032791259083444117111550779683743060056427171985061903024825849678861891372875696397072041887207059509780820628848421769096819758916826825075065600389168538964071659080090648933764907253775061617520962715346849661907023297708633723191911430867394319728835230474530781162211407637056924415767876228419768109322422326759467863000009353235325238524515231688698625244818831408925257112446179219574726992703212695658980102504516392916936185608741641050507845899897953798036906451823676888264962269202008743974871050631234809359549339599641806604938673068287167163907715886029926520972986349109040143203067590310108750886252913588708783442492459721131294510699555408142020588779452876124309006594674277616450532576421133363764901079621486634029185130384946283349594764084726191812030270149706935967448373681122538693353112517026438694659263234017069499099906911336877605246579930481391207707100803847359519237785396543441448391690979135531917999937752549917111220937318831578672354211860601454788092461534499925203078292477844874173433719687236601915395262842366061278378461309219776412021737666933867336508674263637861078855323487020405461796564228872533197109638229575976519905693764415600302000193865963753099931469074593564320204346082681840835059387728956373801656266906006157081631648294397386095851368964651613298654724145402599556812706675827640983953573632815792388347204113447041814356516504155565979808662127630909578334978056134090452325696441442609024960924052429225452213678528632298946330057538625647282291954533331108671435791671507516671359300014357236338324934316551178112256733692523501694624985575047125869928540512497943673534622562192935375989264398376176558553598504944982962736642404384596319809264125660222401428716264945895263326900401464619853223985923779620644530293421450483238166508609488546267353410911223520070988125816582719004497960405750744584786345941567507427676177894137276385705403583362571521330343741234168555724121489317707315539034319521746386790171391695211678021630062121091972358918620866898137180561661888935078379016462291005866664624402364927811798906495779220243386482709458923296280219800730839031943885834586579212956440329758835622746656492358987515683668962599155739668658352732365034189722190071282035413666484013276993609973737338653450373387455506336331147558773938581903232114680949049734375010003971494229607413053094442482639084258467824289048060759796468248336045600592210538640840683122318279261512916634771162598276681226960718294318384840748417220552297178500143623639526680374723579794403659263920442378571054493312915558126345415679775987110405854060402804332092011323340608268476983458923129603035801291378146829521342919087557845253300274755972604668926064352795380827993298376429938628900745545182603189375078171353166296593337846076148034140228780989965026161437886513486216377295094608845993866249164064045923474398535769274389743594433472621605645671853767932695977889297732763372933964265560698052930205758468639536299838314930615594096110638980369353737029960125978784353037020136117426341705119406473837093932181637278149588563214165785444673146445714867902785702733925615022411718284738176507277492013509963867750272065901691601813022088197210173640831872794990444238354491491872546231357345837270321747162333938399198635796632241115106120978936593013818472485351716548623254570281549461674123485581928234055677737254200079651090126266759883039890867746250418544028165178453810768100329621658596003026858221869768090139087392525038649944719786209994031680115451953718225242143266119177989952792243703196405186266370578517360478151431491029746959791263354499919777319989335508914785242984735219630129801547198690042422333186794889519966556735681670114356990965331754266644304064720753693344556200917335366984832310567024065011921250303001462336158219963790358610663130025380947558236112957845536436904640520778818444888735193288633904590710722178222185807305356812955047471521010230228502155122007196368702205370509988405399819549267858938553824528434272716298945224419195536116323012294198615633736545258336452193847512536780939789119354296611601754809063792137808654904376602126975600716516744512243245784620339129213739735660728135349272257270989082978233499709418161881302750150113035436193536779354704903571395262765756425161850944966979784219830970426136062315376226903590651325581341975708299257203388272918553350422285285843310209295248157832930801956342503271796797872258292848688838530378033351583589827239324242956834695830853762835138186328051575003891021263826059331906350655306831760844151272652430210029373067724107409533421382578414361250985821775989912837418442545069364026320809529807990112642982157272836504905573440419787212360902107780063943911629797521691550866145056554289870595986172511631692090727769839030840361676615290199174162010549808073658055743830740525357771785502036096063567904639724660675439974329594085536411286717741627883387013020784971399404413689463312161656291262035950471991309428192633192341066767784279745287987218302230836006386278524021279374385849164860154033801252290829176387142790095748783908709242982665423467358740330291254596820045731239847842994781376066217766456735171505897362172615102114556768324616163436363437009241489659961468503747296948979287142915891645391506371560138524004813035424385726480006846396788617760905620155420201777260169641576337501702127381691173743583154112163557286698350259508242471374736782510430712407521821239834134378586015164236010640611400704674697515670961686361016556010431489414084017096067897693218981529568200216282919786733283355601700700577587198364525885306875353171691084045627215727165801770141747698921610926487045828876756859241860778732737441709749968539723101410736706758305341179208196817007478010243129737550248627231892874775253918261308082356567758796072059015216497299694765938355715520217312622517715219330843892004316830171918276117304374432148121641242773150981309961160157252581001423932571920628199767020101449305442950307591192360372438900340513900966362058295948264588510459888479137478578921402764440912540423660512018539006729294673381248011337533188378551326593612329291013237385936170217730161127830008742736533230815951798221232954954725653484339137956345601234757804043510414213924255726525553492347405368273273323412103224879663991472478254158236982109923406401302501740368342221518070919735531499696801952186845351820821696723211034907116367725751252182519801663090642148042590807282136928498482743348207067027812004403667601901566615777531665553576518035977093251799276211078454584235300488219415001045790634326960867085672436069716365802105151004060107908202373437946908211801378007313001246150564638581191604558775125355105389729262605298183886878190150018454071808860691802301360362615349538309563074633276781405938662826376500618251541025658703012976454255602929702025422742599988389310369361115776639445897300933388816442929476665947553788257638316350116449455664535287098150144001882637680109543566157059705143699422618288889810215069273031927553807132952458800148570792981827623857593212204661829613017883994764600114522718624721885414777581099393186814807533329908164337690263989734229248816167301439694572782125710091800989819787883329003716821205602414959953805563133040866907758264758942702423516443354987621359267709959504080561494685995934220035892463631993673291035532424509480158132338861189616923757850185698998213323757530331873752767824585082143170830685855837889944893111058559038648402098692856618568012147620976994160665630097708863695097783858832438815569733173952415731456960549191018459349499025322458820837828389159981832663223680803954181077911665164700553548208715383203711072400772608612201831363607650500150848755204423898803576289673937980447770063981309760626345253561939193296988353764061182274806541472794950642037603514159250546425623190985907098355380337280432616691793652292985808840195950404152136841366724034841822333723972321850725647321518528512929049353091946187351992327343295887392133748731495778813585717590326344166730032082384023453990334340646139331594785409020380287828549809668106044756550266197009305201925032618285389476022856939366542045303059444317420301923588952894157390096709060909767970619400455337887800729085228704891240368918639668010989380142877607958917767080208869621252596356852079680411774231504865641738041898938810234589027424266783552702900098648941800049104747412458894788941994604921205423698672427604706650981632250498484176627123779037387664179322146312136166790226201639398523587723120385717494299266125026024733382043448958394348939903091855420401799975028131071069155314137378710932668637668254045109631755695879172371402815644095244720529833619616373142140824883418101150340700926902751022235876561333725438331495730277936431563994380543404574108896461920850464382352429764238264330711249424394575224550694139982208901181913331682385147596329935388569470494628314360357623941246611819334560164224247341142022374511535533494190567250971598464220041617525886691170101629129236843998602628548535119839317145731602612951547825150100176207815621043185916719845069081597839906928772851404502533914468161065665833411180848799518568240816504098019588522391739421436011365912402632075095053066951420319012720388709181989128168990845618574904726133243088824066707149309199577630015229319026437107357169889066009131001990732262775249571886547146515700903322815002255156167319074968334853906585109300076205167013647606466907664288429794701902338001386975699160193564672901721136198621305946514587075670788751875700307646506196261874449548162800843720216648924923422223573177418265067161404531278139360201870868052060204943523356108646235548144398451152700670837363297663318661242414860565165419542283999995139570617613192577431356571503480575331588540225953274031823482384224307359326104398210064773505538372569870173021492575342979200170647106097874021525070519622204580739755415114726340714457700727145778464032259818075370785183056031042116777130628398574465673976565026366043823763571063148697595371338249029326475633184672369908526406498032925960004011228079888836784760016898152653263627164454960856696177226445835820575753272893458219265838744290631790750384237196004864289113251818514847306853670889659570154924923075793354008235510605772895054401475013764967070513227107822445000270712462613774949468960224359694503580448800871902453698864656420331655521312879375024434279979710590416293150217216717186467161813925388643668341942107975075310408598646254994305146109015075916725644099679814709999168287786642616768388180190522710411894865363023254320378520338266404006344129918149744412105177320955746470129045670608817959347504019191662228164439002370585195059925050211556801148930389938123627993533842347238269688776127594173993228915117978179282933269571551887325070194786364398227818997665117975522105762122194216035765344152233388436012359370001052722962827677910939001058450153120934718140399479237050438598203795616291421474329204853308879043844364414638738467354659168170592520498907606616979389435438071647790195217769465672254950882652367451149671139020747699582648883293100321275946073254779637672942336944457088067814982091019978401426861687906552830028202082662143285675922250977095872766154485142562194529476058007263785641493018751455962450944949732443327817006815115886785233944006793949940220547729879881472806144096455635609740930853482561307063910461045742751165005153940034936933596792042297684387022349629661824638727729928500200837815575821204214820670138434358976430668985289289926354969668381795542979758255387738246082147574494256865149699565513567829471581667649534938606593800220420053276099421537593430049061607821851067682890837826926655714663247763437834718667335476190897234759545724898808707442616990470406938801938693840437153993230617445573476462005798234812928535304275280152357117386765895435501251778579047593555202259508867293551288180312080655148236943921742635520861589282949638798212924444152139756928797653419759083752531129770318510555946349443935519655728086741553223088088933550640535720498298486264341319668420316297820921810685620803525629269131858646481761796816775789484739210623500934187097576540438430769904272169085681213768133269429782214285081948874182845927971811297399696606057264608138766842079527745488470692848328500621489042412836838100905595389770002469899576676323516608227854290418932786488805291875568065251632454820313643245885074866977814122980000272420592694099135918972142170902288841672885532913449766070381806545540467468961469477881576502256029526069983954562923573964235474246793258808741950069357493323787014459130272008124786257290399060157695121875043305183559131388527001825700280479757934529578241948833810997438782884128351884870261559396267957055035621782707980800829642473879042480442454127242745941971112700273818190753376138142680818938250196365346917498674067919051546282345475593417222833288188594748903263408183956114146449807767346030566063508516725056613307695756509432181531570952534039558112922134720331073902404647366101330671641388279294485284624183963307587244226755595814218059722657842263670560788862288595918959016467187676740385461989747794746507128641921680928244899462741475232345867071319565482274406541014025716761641363202501636279084876981894122412761248636525382196614870040966576437447567409629935232287751800582552777352785989144256774452822375067047853947714153298646325576288355412773252573469433370160376706043228525899810986168150288607066212632183425678435018028503561297649839378688343660207105705549168021455013962328839401007520714560825095370968717655080772260460136643166904591522071649121481883417744807627199304340672830469638143018993581248288421589969834333859951236887902313912321516644179816447911140339649065926945148893531512679016894793962948144824094471804839744966841151107112213444142889729761872725740598393871477064619550973193030723856587809946296392090402992286235565246882359592250010762702567218591129968984255020905435300125131718133054907321611842636069777476446782169759840402171046280320797273280523307340798076577787189425642702183082380997685758701535111658808230301673024721048693790794671142208798065837227221754586849804019339389767710366230665996407146397473693207128251490128864915267186964736988293350503361557987271019964774837597663313796771165098988771645346323951228320940220055024678640278633060590641720000913118998573861833206855438505377735751798277184913999649214976752826907880965520315776291332306327368503932564918682153709611578666358294520016957848848179309719374840770503471335064666915941864243546521504584586018781458938723142600979092221191192772051345439296515976962480448087148665189113740213123561147903729880761427237467598815724902931458955825177611541636619661868355534077994342178244180303451648018360893948927779302269632479323208814683930490342991589906824788324227638529567480274573907126965370363014872491309520381883066867038008490404118926511983812442251832516546530444170016657766355232847558111050220450967361689013136402508780773321011157140867716495900662122245329696685657792505970308517998168658965382354557459771971439113525756101018846273109165223122068314240320091070609031022649520435719371418591722444850891704358442986057459532342852223574077646145895799733893821448294491660274820560713163486993706510553572602865943554153627691438448379231221066749380599357470349828136202549675719605851772541855032975482218347191969670056403849940429963825682871303371151448819991622214984637471261356959327777463689172353863010012259778284447270816257097202363058448700360836326613051077606270418124417185832607724747584819418189581866975125029337470920289520538417104049770580209775097170209542174068645968023773432165890284137528894351612599999748310157887100302389072705996518641378533835255519123158971742898864468580607499601582819520310378291262362690412567704365653090253770391315399367344582998107317378775879282282820111392157122993827678876648167107821561952948095532185320524039666370552369276799708647289194543147488721442929469781271999636004054904910786304351562404520398280326842347431151875669622625816624508613637203468127806647534927521172328697324140276921020246864232651937048971634565244590719604253159237068506481499503394872528714369886803048132522825634143529255679242931317892631460124345853888316014691331847083744590245059608011199781521535637508415917348864889777239449246393176846259220518314832415219425691442931509983516271691467265433235164930321018156563058077967670290914543766040847853286549755193900917387699333881964762292173320277011384887951858883423520521746973495886281897802440716740362820926954497262162539998733996352640848353215187920653702221045170009564904914601359758736534933720763506845933402511766334257242882894346011008949548266321098213778825376014246700379281045062830831837329041983485947016955697310386063031638518046811430592152680992968889250963251111154689145781959722106076900905017114148093395368743369291285353880815408168780554849936310427877853625881913899113936352965190346950787937045863603165510183166613774764319510701515462983147950167075765090497024439842001489572622154588485560716574124337211642074638228731678531749012281237964777645218351399311296106874194653791647213403554943575944362992450243687861324074541475897948127471964422208294480621508226565649825229504144014264310350223426404673334465627144054910882683508344040733952646829238006180128982319955717286684232486668688541045008834818140909723776849090928634195348456427016576468145376525520656918734199628705776969902856431488494625518835777982488233016538405074641705724082900486232512239471626837752332943032274047240979869870316088000575219917218866909648526916859280361259760756806424265720314947492211362271539112391103166846399177353095550381844656292857234258004379487869899694971335772842556066216464793765708898710405031449435700334890414190259204164860670148376071434251833422713146435688680474988553962178970538538721009787447707441659031459943406197598537691478366193616152428212311081532539107156548616228618296640933553533991075326306800198902237316118430919014884359867827582575851677186403159667892969248113462663885510317560178688968013264231505831408308909593575375343479469335700739469176629420044106805896551435406016587070152126614188803144586364469980780273546907937139061738133284410118923535727969304470017615095639992600507577416924351942463543108075559307690570658433690358932931955536061563349006273924768102970629302585005958893317947460373903971619544621145737770387866730135052089643854930275837103926702895549764926586054990667672965721280875380000254019379314274581912924593575308496450040583983089881059850771027025570812033039745828852684483003289120180677243838447808397555909585683647795553679590533117009002134540352520183600468672877511705404340312914310044006428741404735174750089007534060191327001491381692075604169009625548206110586417001184386316312860615125748564457862060806864310251707066462193625948061609520449838334009375393865605288583719260436844315260012817454771315046001144895306009422344570196564379115132263535918779256696811871377200780158613919441853268305481025054218903602212982173946282873170060070960804314901698194683956334666982116688155178813765706538400192662699367903058253736621360080949007414746520959273810048875318704644143057709488572788421134067861136097252179066436211225510195672088943195399031000873873899239281075096280437595841231759966739287350436409426716377297941280725226599392143610333415322136638594840683682663059407324298107794165828949995388820019051129346895106969469325305721788411650418729870349413204812235993704110318472605767342041619361967862044679254271015076885709837801790943842626009641832037400686031704105932428359674059750962735846750925550409515315368515028586034836579503229515056347490694181444502491605551059137605743210720113457285505615225319609456785991413009803739002603831867146048136526638708284479043829610317542849299260920198594943591528333536622111747803643677790649511788247970464117792585852417218107306084421576193507181421693921194235032871577949928881786228208190400833440111390423782757620138486398521098772969823092467234173417433827700068232295138805574181197719024932806799255070774420264670712140102424287625902514636119662133814121722889150893187011232713667439988256899002847646944727639998433426169934108659179936541043858045600029868088627897334631961981634996751844796333812403661687749642715498742916530133414560263835062662847488254884184951222222114984791312045048503580496846817075577688120906371470902941782805021965305998178700489148642311783758753625049768389507753748328171288309444523464473459808954171205967812233520737924547446977292313869421790198457865895109723461992001939337739114547065282462386163996981227772846478927539872724045215987830206660466613266351637571340738419135142726125875257973347284866205730633447193496900765283147733031180364053855061053597349820065769011619365203451832146529458276089066744337033588610314222588520860683482134932197362281538054936551071077303590527518285960418096721911564935564864749082124636224577288993470218897969657628807606226774416207343839046013179788498783142946698958983273440187969315051128707040794049915118965049555703154153764147419646801791958559235499267835320358580174531759818864647849320144341046181422248053498286976335406198306819053228741140528855867276174799666680109608582014884821964538311703599463673321164725708515036649443255309915765355810220197542374425854676802654316563587831855784163094134519659348299261522525903537806136193111813905294086732669094155658350698040509077078380107952336678020491596652521674386689558106799589334425087832510380632792818491442158332282234802351701831136264534325409200746250162248576839292723457203170735267364408197786632667030564507521782470265565357342376607130598272366855444365644963334735437898225032967062665425102972077142897751420474582317164160013022461982467112208292713719226875429892949089451606117011032381321876588093855500873386815190120610271383596920405451576668777769629788307781875968170162708662356929430612425015519363694772890653485089194727468112695527017805266824584065222373858053487714182557448027531359672711735706867975456898250463904619377925414644827011984748932731048598408174756631409168348125265676162915549964691295554698968507175979230747231228603878897426376481195051566949888810719808633256748415734194466573846211751633436473631018643674480776807311251461594480505569806849830042769389285178594935647246725703107358533742525042006072836394879790250630714373036700284305459868789932034955864393275625826030677235612970878759544858657352585133904594079968466360679694109938128804062084104717953379514455423777699675755171536111570519040840145419251204582741074291333245144590668490773852062238344731905317744195076628504517645456875873171395427988142391052836118346935643924121122169822866418068657266399848176766884182795264675452566667737440611343538297110285653861359926513482224896135246399787089892241756039735053483494022950294254003845359702555426689796466192932376726505397777211565962405718849657507087765404367042459920557913561661304339548753752408858803308240667554126637785631094902088699859078586313661606635629044252446366417809079754504314033899394382753905456851186467422185587489637744120107031202743468814779667635907698969110544071899431180487885772637682628087604947173537837505878081061984994046971066390352134980817065415142411528356683994652026697401010257650234994475781697443990817369219913320695647138359546499214953677726612253145777249710820433775405910807698798511355327348337854647914717512845767829725896589658243681482360129101706521016613881835654165122928110528952365535624862849807787879896116005482805258368941179283003842882822682847404878566182671019828479907421758765358048558543875355245097256669021284846939052000631729075467704182511600006213825691708826745109797880761054113785352068990512041177194018373436163463800056058815170863083922731844871554876632495359941778916249338512727745231905079898396629556771611626046776696934048877323030404216067634452281630308190644247408535589986145622767787723417045225667095331022401700177022975699070129803821372228784548652399448587985503965038950758752238542072367050354637473299854254450048906893046597504715248402161483875748031581636848162532251672170083457408128002861862155977015130407640165405412173337566207477084931071972119752045201320998858481752516975590539425811046266713039412531204741492709019512454527572352269426430145742294357822986162841976321639474209723440914001180005643448005883598429766585637945735874874110028095541712231914517191923909223857720703441372563634199036982424584876303347458252786809872450039592836060967504719569014422606659065726449027212395381596067696242505816072882261979495629407877526649839176844788297548592906542521226075225111590012252497215357868860393281901723324845216561329718943175821372165071085280206798367291543445920268188959457233430980542611946922281400266664700705063089542610537444692198114249462381665263635002918842610615508075019059543498021715982984590885864880383188617852097126098215042445710393435794385974856481130816397371169292848168664192224121303964742065132882013732707781114739910894521406598082393898912153011689429193479781743623612376551403260558133957338839879833379840413693310922269139365962127724263604146700802204526903072223415345111333475815233572876243186911081523102846886194772851748315943602756188337913754132468490325846823543967765518199946136944133625415521683244865054300712621411153514578117954046494937101537394050832387872158112451765914934484922069553432837172936900738656957176667032700355967630608124502851913950487533923495176422708978677412808364698145849063854950556915336075579771402791104223962999579403741393745728592291866519230355515664259478910081049014903560153317912929477038884319417742493700908495697782725672644570083782309568709596512513860683267125454301233642850086533693909052021209680312552336724563181267163245316414088227672733898587504368033268664438745476036793537267302965951326836463394610035769541733019713503224275915068429724971645762927335187860979569846445854760688106227738861198787068217170802094285382486941039676728131049046297319781050886588258499508765859022976530213739942091582596191964754658713243073568400197346991603060868988853095731548440130430526604223239546388517671220094173019338684539095481273585904288025418001046059537257673120576669720660075376761595564522613715752960702855489773154527993202197312280289223180465363997156398171984337853106532504736640813465533596003897667208217882583997241861914347624274322359925687759028407325888907064593501008287373461874832249838666977885529785783863070824493565445276635961350880315373659014722259577757426066837357870326609573438236888765925113759755728266490327473766962529865473696797864418912255479651657465031129270439349285524907270890339764658866342331517735249411016782620347030384066952543086026751403699846355108738876471074743036328517622559194569302682577748276484940482667742613292870507385205990284823649883716023584628726857660443625235182000465833611731274749823220686470986582979088834159851599714470622763481729234989589590389417962768300985273860985324985030184553789999665554164945189816961052656888688925902164505742645891002879331646369583318713248605543104706081366637542178283671339549120885315107431804845259002151582496984380362339056265622395737420452887468351176668094480918589436572277259138348456813956563243113463009662677388572158144733932554147550862444333336372640171895407051151627138554104680075477112376955457426659455145327071760476588833008622509048924100005582175451712926659326032780503726679315542911978681551371022333188159291197150521438906934780650250602932530828156193489167195131363371743151895667695909971307102908650188442213288431418796320749975629001154988589427104479725390667853634518462509655353589976649395253605058475787658319488063171280105038565525734076269681308692041409484262427389237832498866751696838573702575067460418479147396988427538420405410815960589067476930070788955017089317308736392866818913532007269889224269267049224590203068429452213591998628005578286923453859261020978930425377013114383073640258279943833471228830377465024004215119299779222531614161573766647357947164716728817420226101098952886821798595166115980163757122682399028623006103547495035608123048604434961429405654373590584605666582482046973150236993862300550774553316247077062607898925750312834349279355598821609144020592409868056896380937449085085600360153573972053420020871047771885754263242456787740858883559788585507343247253714281020054418600557783484400483265744426010970098871304061938552713662100733526732008588049843283743173922454800607886927099282082753720031204569720748997868749019304743155896408638267988747514540815367595190146069127917057585562774034259895220124608627318565729308411369674455746922149187123080070388907774341073771300370162872697552918893739810324089725941480385145256868369985388217681869114873027848990449619148358167110884453889940738869500889296333976947009629832773796668691328342228723144135477191799672984559449730968558969040593585981303553416623902164917551971778941663878043913447838520564208271480586170944453509833029726253259248510836470289447765750195703974021429527878550554574128773110843352928982101537221524964866082615535390521809932109470801777263070951405062648524568370096532248610201447804355949647173299456791051124732007575378596130716209733424482368164063744795596898655427043528996962870851430075424169169025728390046639942749274145401535383465564893839118357655553987333911140582542417810297038504076401952854689405476422902184603000093381403439323727936586162456550967345410761970231717518201145524877576504592966467258040200713755383319361202497541986873548260167144782527215398871313730420692427194523742918342474956460200220324267635002406026214942513609957851556075033008351385751798140900584265110809249096840939032942354193409302412780403115073257005941327771712475868726716500192941507041742666522238865143045046829378519283513503233170947307918445934258231474891152984980016334179506229222999229076931067042083998732620359547192996555025828786544037997774360694541344813588224621736960584835734895262481479910167738605968748707990441901218639157236690059273262087083582391397323126062058854753119640350677682512272517842951282230656454124826859260511967737183780183534881137320250074419208683313734023115273036841451795183933698109296969239956366350022021319162920203182636633941243855627335595559879132450600786542299655956205349932838185451351249910512362670606424622690186084974334993663843156618170302092972098361906733808776043128675794404100743252141755154179992882613158863582667156827747601431321311210793771441979637054951695609391007727831923433268081340579867704385797430140213075018927354388050322895613492297313737030700973181273071755970750356354741794313305701094896135636763637432208524442768865383113406367751735780141497411595390078650802832822643749758719193874360542341058939609225669075357346831718514329059354249051428696893366359046922814069973859872114878302651974250886154493658933104584233514365974200945849238244002170950518996548644658150407144258374675708124110609391629758798508495669548696107621412017279159690154944743687476487667172155723315709191414830048244632377936139556598637504412815650925072413563580582778546688699385976627940813731724937399131220065003156687783287397189419302535696503223423430174140196852005786976056899137857821606278209500588410493136258290904039388895674173967047517697613433440219521583232691484216389036567409128210113148706648421717116230826870478792548480910011647814882225796043497172672336539738392342391513149634959924195758589168935250724506455015322456173474227385844173831587531476330141417007106755120385804183952088113598647311091358559913178071343614373605906709210741269893576078681853559550276949943848793842369087670858723486621403911858287299031311802419136715757290173260940585121203276755838564427417603375085817283532981659219045649782517006837155198563579016890521610456804714206826621616228978323127766121293662626609568051572697824390749613245724381555659992069232812315844312542794418313288208948543015886444041565895607279172080157934913098967420712332505879084584300006911255937978405844268352025682046841476289636548059873029574672901983346873375496677836748636641876737591303239798187489583913935708184430617131225846332153766182649184607402990855156116276437038630110200629023145032438017880868806785954082152033797817860233633981806935440500531855842365414269992679853315194854082050190729767011832999110255266719804170257009801604633854109617526644201377331545660510588555939016103756853800247831640766421354692144208560569731449356702141041922855987873033642719494732333409108221211770645442175777869389994669100800968346993029693482354608176194775379718638847259648132626403672858554697783988595298559813176437433619748892600668866996166683792193631216620553967224806230206329532724821337861185579881466824911744637078627922239061151173754548128845434876429226267135787294387724649263596944672075528228583552295362711935576190552548069151169945015326945230952452194613028612520468483344328745941694268683839952683153153006275124666653809411491724660326106846630341565098042622790026339807233989927276252310038583649128635784480795305062522698948313894819271259503112610460708557512590862385840989426164440097300717132130226149762905999551212787085310347630579245201508992962961469761238549192547500873532158920526867993089625586293070441241066849856175604125315727444357699891231139658366405663606271262253527592980574269780013520933795443539308243960347922940100591436571367806205048911827663545571882218016199225820890345129310936783371950998329271215889516350674124007578118979508936261537658755590525365496238145996760865237571956642449993711999855971665944759820806461689598796409261085134111786129721363810371823993417598161918505300703541131862802273214163140822076036365025024527774729253975085113618684962722740917688174583054989641541537093204854764298398122040778755468869530190348155876555068454216277619850973473044173143462451843413583365335461904722014683659520711426842615904951668289626922389946471309840910473600641133801660577049454600303052376275434628698489261143983925065409227053799710130642841709863547560494284319605973998015995187004363937638537552478105126229176438450468191348294759097125885202818447937687522548263552161802002972638154564448394133999759342815920003811700665563105870605938017146246145159871731936417527855418974399396791894139875199509560705732997067891575224108428912341014022873297861005451480080595587898707656602188309817840829283830780041745675565330286534226183843530595630079994706596766749734836259448125657372134185178261327243201742914132698203590632586549749091618449962336535464473972391925559242772184563950050301529293902817010744548296339241229148960633905834563206867821665118090403389139684923296308340363733473737809463851134588798897500899382055660120605761318932368231760365396100513045815186171502716081998214078641176650259630849218411984618074985947023101997040461843475148099921718099066505908523905915472366464638805407959744583753240360729901974903355965630284798152021619591734433561662689576290306956848565271350478840042146174028923010441010491670203949996143700632024085514840842727510012419438618284798245243133082705644327762595746444521978981892107867167388035645124902190811941936914409803438783201418893760440891984417800585582941482319365250292023864299979340232625760184540212029765193442849722670452646524069727199426986700948853274118285449132787051677468599099564263446220925624374266890221491432827499755694083202480260751912180758584643466632665602081251704287445915700649362175603292781860927246028975294162723752501233789206504863965279153160313710554819917029891790749722151280196900288889386190531063398427214359397639265102073417615764360196082473394169295452038026318130955447006042046687097500252583626852900015747396105379992698105792457159634407810549112568708060426598020151615114118077882355748714003731847298866705745738057238631255223226630939401168077115661644967360698278195234892081431418433634989558604705882606267354127357639101504906859597736699542142891225447893001183034466070766927579233623550932013378333761631463320377488715119733880333661741166225460989179096773635309407277198390420230860428195903647169203817266059795901430978705874807277202980537261371619792798830933623008084832881387558444938588444853334403699996066024858832043565225266718152282688441836166011261628110125147558660271773658985518022610690795565373439530753450001319011359401603493717010513848556146893477199355313038747867507079215875896249759579970067537453176719615902529543015043776841405366592879758881086394690084428546897263395771968700326961517183691220652240927602379407269348593880434112973242390764291272483047061924678994648099448962696208504136662343652612505940734066297532020321782417112398353249175393481117263913466542883001133829534456270883764252910815000884800433973492852904091959417723267603555864852922795457619111583469457952221595035515571867355713116361741803560669852485108889131723136718386955829976050233743919394978465973624766044771977920965100605829550449308756304122102208205756467439542414730952809261238309728779461126449850953088825881294733053167451615629267091010034913885353360605526240091150115494831297421874322588362988506411592444260578464149695775640585556987565827423833811569113199177069425594929669286604258874769484788286450060410744311983390916995558680036294657238476306547433247009495284079478483160619934973667089184477821988349839852968548687669448857615793498073579700390847855780955900703804600714583953635564940235444816935592582997181295002301380867125965212752243841065336903435631340642435033967206979147728484992534033761547318970265031012387056082239725650820899307577619542808377310105141013382098525973003010801159465604838502940119196189037101442764274919048448894399102938546760308367060946915364922647307944841725347061423866838635969530233106637156469561727786610648723774697106041534597317281253584370724253369478614339150393913065329688572896898824196917564779128272729504527621543951654657275638243356695935758502341351508517055476036352827944742308468212002126850221985671237924623377827744326710028272691967526891024298872398589148784126677490672141030140252783750913661203064080779341928248218601916513914300470841282868663674324071124211213184877804670480120241348085720816858391669020952051202875741458501309972441286247452143857851992267271676107232076165603760032680031634251160963047659989448997839801588118939255965606999539232171796679115943387464876172267913567998592390794268980179284719128185127702598127580567550339739933910685545201249916242870362135074660983470239621405144882042327113245206259477923846066055967206440950958572841098762461329420533406701418617482465893411646774107846615993517280988399992576957608510355599781256956688845183175077148847374754909630297066846942805184981276461583802909654823239454296506038236620799871536511841758262109303204579067739598548315729578974815642752411129810896775463247219298273941464962251251836634954499286399632167376430196648947444389109748000089573549083546640159613094656771854747033847124799306114339649331118158378001401644537954853770030250321301312086914322980620374120723008994838377916425229664885907898363006299467277523697105612858381851939270527642909335635752766036270676413594270130136335371254329709464420085118909212320364364159628876725934133795213937661468880974503976929479806945369762175506216634170232441627578379861691419613912000569440829828344727723478061001867796854589765952777523813217482103460067098753110733958076420431742114247491304074804146070907075814469429893938680070291999347650006580327644970087328423293161626425461375875910010589271304363284962934805759717123104205530215759350759467426804490614932428083073355401959070937868440122569832399959405658785226524715008862587073383727946097292518417902213823801722267895416164061344308916294392416829812880401888002343560076908370198832505375360558657001062420484130005905348778244739858858773054801973464159634363688882829181711370294863139509991268825048750928953352774857779544354874299485832542711366586031028245396922573912760380736036481902468709362970662994993851351729821948440034324563284438065837051710836395085820244386994026264757803568422862224702291907467653872059201411331207291153198012656908038001071074812591777433347934623971010230595609704286063324984946924999802490010799695491763255767370573922872846669507619444119654682790224217582157403143630685003522248095450730036503954962723257613859622969576559993795117211285315578298675357720796558521186701875357125935514550688509437424488125787692670946573144624981928950049558900546667138069691007021810729039212219505012149240188691449779181070024567867054031815583301991670056356149322945236682660377496447208372338138013272157887752663138094541211242149533879329505618645376076797159841333731899403183864473441666344476020124713816911710091539686878806222840185881036370407879130625704965213773440639499546069929343298192420528914756627790175028536745422376500376777109583818560683739167134019528321511882057235031926139047479606514878044757751989916366221876324118763920128579128539911102885474040329744417080563953781018021312803203366758613723586386377726726586106559370239458336811903933737589875961102299404942555856233738825997706097099457304802456340066382044936327601523378413813669176417255152698674719673449351712105961169652812639497912909970880878281275326792155122425340447859415828871882290339850776271546509900658206007711577408636762899286633762965532569651633873285452078607632322958489104151527926009520502118143372656635026957460700328584996932516779677160372768165608121373979307947693327554640033110097837457018821528282768924652647485673211681449979190900885902766182869451743610050807565741077039078460096108182716172202316488101889163294942456357933772154563922269179505808025313157117111135465786599951736414206385414843953637286196052816851174850989836690970294730791813122715384103668220939591374827174747988094096184847801609659286270501217893173645754186423646051800844383073278341503521773074726860462433361208608879185205151266597123317260083011042489482667485135601534327249418566750443933918433213302963599398655640778843402944708047470494745147411910990848096971364363294651560783125247747185428785219128621686401706281733252595389023791725335663005628136103447303581979385348979399550068112259786848127147802869486770339531109181160729090224474107102474746052277199507348580199255217396905841331111109728951436142724703161006594058457390648311952110425718515091213325254272336934093532155086690923206140561491853897642398571411747354685350214965852807617553753122971307745728881768672744301854258219438047829557742245774723876517997514594163708680230532431328052281882741903797531688689173697881887301917196235730222288764064537997529736093641114730456741019003727727672999622185746384378580133023841419617487194184756120709317927886768277071541767232043390027869603785535716198950745555306309229688055858746100850087332362851751457718580897760472006233895041878106794189928370914470186233545772588891490168069247915558528429337246729350437433367189096154134831323906116296387986889443489156761459948438803540550505395595265360864355402495271163787472592413382159798561145113761869244182725601902041360745372244598554860440312821859502723023657825838937824251103616082250162518157799328611316823777432464078606502402402818693225698657100123656561922549842164807116445140990455787055421082581067307908189647013654853123427963725931764169433802991220680110980448907516270584326793289128624606022842430799877625951483989540845240964542545646934295905694109439709065648536823336349465189767278831436559905376081290378335137142983975378188941142708655753574804529508693153614221237458755321138219784353055108884384175262315643887883132772017609166196175727068277996294098025965528722902992791496284991994044668260539903509905181388114266683188395216996789771289621479199347950846731301235322456185735729513357525467293445917063766552655260938393422583415667723098440383203203773127514294816827230438708489363079906481500550722709509532418408810523897659513082514403003793279844266910664480196274499000347948339550998379250534503611224388368107122075817771285898291489239715809445881192154093634983419355031933521936675907712404619788987578497034022121289747531760367685985042862369910655605495340755265206742090860452170504002182207416238874229225169117465466251339748956265945726067168040179513930150383284166361880942338907905433331732319905552158774528393003519513382199477981051191714896087957773047736371657024915127039004805379958613412448941965939320683830853836218096025945502669743154847983832230869533508113543600685346087545583450077289021888745845718179625413744979961185652661485113292540973880948684334320034436313391880529767501729198927184346508100248208330712682519326234688174155378774860389057132394450887006083097032587626982403773114174216045011852249587080579985955078399478232562004339591676828854474500280352284719059412949784857673673182409241558132225432849543712900832179531258906807774393563665644162788501031694421970271417843389467312185163829124734550204562226772017683393194465019591974209602878181802466564203513478041182236753815754606468880163808716171882420616349700192505279549744888396602441473224644075984039443763187794783999144633302071344076817717148527126591337085217229712914497989236840278266215209862447577099912982264948186759521976969786695602358147599454764500154363361548193530199425949923469693248612992789203721903193573993624622038414534413738141339432071962006673362252639193815082028585971491973985831018837972892392318317229764106443726170767531843655603643594891084826137092358992011053532631940248726641665085965601966674816736519187495096916677920181417139408072279029023893907406942645152819488826300933120879883098795974497649099126258036788237516347829937742559258319469020852821005730399778221473831128362727045039292485192166021952270069073260819080589585812046513204850644875286800389748625057435927026649626550575173591015261048616848316985071112114792725781680512902873686924926923863699652802813799491422758333332311292055718277282556184165136876570259429554924337787858157350328009793165864998666527285320898010527075761074558905884432074121760828977150734898184034781343172450294991863841210734947529644138520780862752755394638841899095921053874838974122882493319139784519419150745850570405552465996663998816938365096129224868089232277546384361455934232944441165574236485952115270949093768869651724593077670739018711581928859568408357347289778964205173857454990900392660050393483270166095122605146907102045331662417120466794859332156672569393223319751672039388946134317925701068622071868210491702040071489903585954528485949061895937457184342926221461001368658255272556174822559781583099955182305900216705665704682638154050632676980107151055978189504575482873889178002033027286348717431823603143632714981332828212001810043503077024422863969180961732385383776601594047968766901454149501976823702336908338461948027381723127716771327161613795515513894461983124041320440455156100400084377843843236504853958079358756774335898843557588507879765233103853531271458227020242966496418688796426072012713576780477228083788594392532851580907205027807591852068472693592404572991910791108635332839029722194658086349634637917490396054067362721733367594792146049278144765232213823463497147640042516050874936724421746850094377892837679231864586758284047983517879953529464091938192525415602552751035792870719508458038272527827894416061470369223963889216938092572536573250528470405068346375673444761520559206510932677607437312833967144996991545848257568390963824102167064282480229118988472099658912558083713745011717753540804171486644987865854735721464173304259920407676976527631759296735411572742161208156383296887983640132845304642033982810227910328085186613831291436190660711116874180926937554450589449891221835301014712480273344971085538004488444977505440110929193699823979099725574783325202074964979862063021359081683164775257152665096882787890842283628038254569176235312634774574347837623889109186371828446197069909543113350357365015363936732885154008871526431908726067726189195085300978825014896060227920972526117991004335814904640649393743029072424482746379020439498280817094184019204573842692242743300233402068447513807934097226967811358980972540609414548768384824800659421952624555831136533298987247203220084535892350244027383764675646974012498243775661716701818149306723733257918277056550680760469463674907406985753302775478399865651192339828413982002485293307516740420931829123570508248193726359022954774044510782791949011479211982947047706988950953774396495524995546059989827864808905841810430596726185090311459565966495339465162204217750008595113399383973633763861161828585258320177591338829630697952800547927062610736806348973504676026560597758447593401394130749688074313589846432612094899254293062311562480549925638293065677415576201291600230741981526507488585825084268646738062056102015125562991723045016776502750476352583801434760692227439694437347208306201907152034513424756983365811302453223045145080021136154748194894873700009401105435164600372182478516776858193237775503086422671130606383470489994675523046404870747258379197358913919906247338311158426577544508208937592210167877916299235192825813150464051507072339646375258693348420229767942828584248635323530598074544717226890881091196054539556380200588823834682324958492188500660744070784345302414494710037379008777972085788284936390772738068851426329658890273457595148467589221252347007981050857573417666325307186045270502754290582627527102854511486986535687748771209692109628539128222029673431387258180900796155654772727661551297666380870499079026042494120685236339659109093391459373374772132496978360809549660212332393315724551192005405047415886803622285094284054146605117268260921548386778785459499638498318894738841970806288241643937016041903830797579045468167935666400797034247485616086283724883463342154503910032728369237819270787532346442525320560644557535438521936441035994387363108884822557678095534380143907388916055352476299939272624943343881555795243687969334929800826131224699781520001772599852755240850396625487443601564004799443612581549012950114279724982552709434622067826905457111597076993986681360765801240073718488355924566142240013211239280739694575326634530636431605460874561154779977520349710328969414158723756143595830381789531374211103370182769851317461107648791521139268889080827149681486717452354512787962961369281803565977873797689182554100964208072400766546768372410140178165904885674575526187597457634630519719157919500178498266482133300284406158663815180177637902649077163340514952736009786485225477260257066567525552914460647570682067778097927569040548082843797173685067904605691148393213700644137509425084474183811973503188648398821955257169393910118142814807674690348432449317658634251490723927556001850651323557735854455830626848390424006861714085928570990910800070361144866631025183069997902457799693029360588656551107135736104478638230708145412708485586166086561199708053366609160873311912062320963391337805652437915291492953006071557242735896785166201268813461939975583380040978819451181712180493183654176379092898865965621363249002742458258533135629944878024699331086546694592980090515969033980661499688177205774281958946106837106828769734489002340459946324130212300964129635047743332458665772600909124644700778912170913221780828444592815944286879428301018801007334089040866678127210225417402068698557350231427622328792034101321211923992009768447505192154839660377599005391942151069624541573083875068208897609504433669150226202098310652631078933377245752721484066025825138361677321900403676224086795635199594407840782673881477132527269257792251874353514825214417058535960950865248933242061642609334393474995349897546392614122546039737649408887744107781904322398464104728628902101328901730039345252088688454709026124527629640857093089332655671498959634593506673178399665064422115067128688944784045671015336750892946405215173537085051597138547605304765179497552601999152125903592384832948427622321827506480597889253721292706073917698742916620925812954465664985372104923107754778608831376295595973357360304493293193741990943773200357661328421284963971131086873248430830088543257815916275296752053763048477132020457553637928518752057144656246229055276461410699151479603927264181965227769703573552423545148754634814078683072406296274402839527236792534661486797397862089909446296950177136879187836241671089515565404449985729217968105104455635337532544433870497958623611126574034266713572057361437360196890777528249882056937785421263687039215702395274938100015737414490222209652262134933383238415214871438645435077167787436504874490818380229403610106457902461146368091814816429520581486421370467553192806162342775817109299609831109043273173919365812876921205131035516033859433072591423378949698576111596324637410811688489129686993833462442579294512463929156004804503437630175974198374892578562329275810541242287829247367162067014771330885571994227113965105616899391580817950135494231708758455543449396461059588117710852444120409220862446520667999122761122522101981104379597445199428934987430761533736733714960978840301842711824850662643067930244739384197695193692513775276238003911930711108161199109111672358884514975576546303551478949997007943118818202922888019504318770690943212364161535081910055314903862869169564747381088219399247279836886121510882456316201758371235603823434186777206990974544782349254145478749643584152194495288465732481347938280814633179809280152494443883650384207206959385533686315452121088699124107912735682386177439809946503482330146550209018255125643524322838715067124465329671431113996026605195191803493067495877930752797986637391209857225207333400241937694490467283306157174140535750193156014972614874928897800299250678272958151151865549438926818985278239950743331972338207714938713118692095078894305739359246105945741458410692469600776820433203554608314513703121775809698160567036243368719976187515268988450723891911797906385053023576811782271999091539601511930395793626633069704417620868164616132583691837422967531759645362505793912801672016606216268205307939685477845090097849240583971348283588339838421481063233267940118025549756748328662349069469952337730799591023655889074125484867773627867494744638632176534822014149466081681072006007847675128666372325282161253815549389855793217509946421742128546274602337540753323974325486144580179744969788569007922338758880942944620770155699115769946844550609528323202541079966874265334218220214602128836979333204704947989295991191743787120500495322202414158118246992241331085802363860035339916211167748730497214747851235536139641523512016424053503476176411342436639485777014141685460114559209367312448914368717003655977061204014075805145796712881751302993633452858061918336281144923257385907957110748239785570219928403092889092287203493265714960398462031078097990009687325217371990960776183868801326268826637342211820273726888338917791322000460988199982943546643007555525827902962425077625131367166849050468127085337078503901691227146467423057990910928145288082720550120956099043168629892839654571198969682379810229766714269958748527706460295729991891820514684436704986185789234190982458603740024264861331354923966734378890574309486300598836067629748202149276976682405624739716040536046469155598655681650181641571653542446359387693177251160596811270753859724152088461982193833438058657983609778575189137612415407558830208021874114121015545193092365741776894662491115223687277664466035101715153090399962053756999313128890428487673700059787173860566016365295663980291358659824914212917072593642616350408636548743125520570598700160549676929011122424896882982499473844330484487168459664162023198122097658630358259798304189546749584455559958340207373585156236422769996892037508349942095286275514395206225023913799832530161990277019375454703885167955888951013894239038873573586984420194320472662367130995306825314384641240039239262088847237178384513582242116184823164006194636912850392102304972657459866549200445161350768870219003089431488014999630663421422160666521358643028357998936505122421555093450254323002557914415290511223512829203477307382026680708572526614835667640350330741675673521260216581693839667865211222350160617869196167855869172662135049676314307378466523421889634179853262041808131962529401903023989330753447740991756275454049023099010329759395206101780661441675491481741635841898043592398680890053437761900464876473148250022138728491769527661052170985785337472301958364682565195463739574210210234394960762740633229617455267841675085637004013481200327288699203734791728405394385356401471010887448171040541633881914712161955450324709916010306911834253682395572098898308480981786709508841803050430534021687165746072356342218067456682067033469226139462927298420034578509171282871852136621383829609833718819946834656128660220393430495786844913684521370725551737471347578037382819924276562986237269738070152434130896803608054193919193491817411166902735844700126701106261574151330474035575002347801178787764505770052205520600251040298939713093596376870834713114091275256632364113115827802010751341640493320713127690134823440389441889500786771887649784403614468150453122302422920619210449127501689896575245354625679904892443399841028892407524969577326231752622453504656298651770645968561726031946117111020560865581833235688644779418564043366578013332918192534405741317953925385429875799673693611215303129883334518390804486971371336298777977463516615565980073258461985422739811983077710964118555845338344141838305150453642970649888065670051645091354007985533187847570826227292829986599652185316074792443988238774824770238590935723104019240426739067638322930407541988084166892205820560002072346256669341866636142598463163256768142310928054934953564504803384761443111741540033651438560913280321247760239377033561543704110594977092490555955638559766933332239993033836784315471566729148708063244862678643770259615101481690601437805207846646775475569430888147459491740784721491004067400239273814690465610219230090802665083772057832760437183026471657735247158793373901509692500265410468213782406528229481800727987974433771682563361648142192409934178659788660918285657867291008512367772348035283330910615444257135190110713806114983324328895938015280045776439264506759387135693667798232825295938339554731819446745158459796980587850139129844441130918055758398110514088464452292557761364765951676356139394567381656364342721226058199972993756296509728436909479215165047754691142485746709087130558482868883590675278544078593593016782492168468045018222232891143433243271487826935591090171308839071282328482992499075625820622599785403398889816675854236673049085267507666056327424159312282831900455990623725054098970322209592363666129363225111866037860548156098898542850146145751386429362107251315994446147774508148520872762080977056558386291679767501266413336655535823925128056652574914524383605539223367347204425587092044251380922067370131259310544715343460317040688230224390660995069156254123139511685962054142243125893167127339776817472763335803814572884660202859109400104754556833748201841472436310681697715030009682163592082841211628338844034730672210015040186472310655202820607099167567190379458739909363460337029098252914670534610465446636476188268269525077054113204195297025245468245545145554791853890361013978122717316612364991143148224776753085645028246017381667063174382004111983953282046640213232280440637246953344465173725587911534566040210736528079496095643204081354308615734134038309306921842878382492028923480439200820705987281994844936844578667278620458794622626646733920470242195303817003227913070873488493237992444573672771939668388047542260011574833397837971771425918343771278925263517861375699144871629633723890368429989340626968890385003813029213399841303277902543863468260060373267457058552305358894241675279458346580400224014157426969889624617572153638148655045673640544598152863299110009424440216473020734954737023466211619480668988094461880055676165219585493476723639050123350150989250408315970079410731036066575612720963590846066700802335433617027903291068414864808495985223366414072227916189434777491197569059730358957663691075518151887449539033240313784182570537090827973967575487617562555530655750912480533138392405023602337086886722383548572242970897265037391491851492055926672187167123308444304024820656360327608192320716593913198282875682025934623644498196538926229946201114809084662436294667008505994067224626779066576240639494799593046190542999330327467881866743898016321122195443893429681702455909092635018878947499508328435410085213862777668880958414125396855684930515499668802452645081009890777786658396624883721048139819420794527329201327634313045623077712780793933470940014933846263579892787016798583587781072216239609497543403432311817016203356998928599816981729225986484616695264953562414644946883314848237482237125067251687354575557493505354025946892706161366011804282544996035835904848562271387450752456007025075955723276449997406007848213518537883698444605629121679591243391446609068968767239724865714068963126492338870181563484009498922602641580363595014192638406319206430087971780514960270208459959765849013811704519608229933623546609249445035789107239551016459664878534770009030273084650225991060399066692096322258189751057430624674024086471734752781153470390367751637282739889148435597292689683544291188515695301514383405891850213716603137383337094856845098510957960434774488447477758688085166310625924234351895588059406162923131867520405769439474996567061222775669898938914235653689647334005002093267849767813214957068466283789939558699103151225685536242779131170582539806172271769416298465253086156755946836971578669179045061515180688457028604566225262786328711990437935055356132054025800109676874624568301531383460960688805718269874335376036465946230132253835031576718591487303117238716902048143953436077873761662780431198991888623462033852045033409029278191825616647337080758863537332514485266526903753007765033822282369684764313883384455559522535002241189352355034305992356621754581061878474371478445495541649484658301600012281119842363137403672679252154681366613096897869155362607732665039983426122346400164622743705866030970604477401855597553255746398216056959572788707076984620196574307456485796979579592726455158589244185201367797107656437906256118129084994884672484889007898071361513279939861194236647893752789579725458528901056200144384171964181909952742702631465845468816535677774511725274056428178459395712701661807129148761949804314065458444209097851295285088807596214000028107597187069118438085550073773972108009110452297720998219518377408108535010322915024548688341089875926737028664167520322906993215442130663541656934424465146632973885954817201549179588646063391413917430962787563023864176630952160400184550961540670627105443102494464945853549753149741760495642361883797214647966178993598515080982303116786600998571529263069672238293369830528207445027736029358622532886899046883352016482380423318318401952378636202544489753052461244433403940066032379028920065765835773646078495543322997177955010020517320365929878519679338350165998415447872401522468790292144511001512777995915375388983994444653157719297731085817179126758850708782215948801445544142291974534416900643756623941242715476758190301098897052669234308696083138144178610908882197904531708010759259827512583072875847166935411988923891650997730292227852811854076301712878244635541864683638076041777871328819370189380303108019515606726294937821947719070265954965310819346162687504006313812670681357956897715011764372516733337730159428550110908023450478396433610026694207558983583073094368403795387210771348020789411592029191866606117586942042165060243429957968547059958838990405464728018093051221625967976498176422276261636601673447950995571265132510169704672245566578319689383346807062310434483959554474201751949361130571463774306839024597230151888344087590443165573255212452661599554196976937969208765711812041887631020740035440519764190108617834671198602092204970961615158153745582448116665584694591371075560855198307371022362996189250032487473393911733040333817806523812450032816673231311291795640278319265185899477063782442023626514725258434344744520928625675391237021753078576203213158726604359276644195898264306205106133011159094051681827505453737312512531264482243810084865166766193814507648110116134820021814195419597802828085481247298938590512079149117221135915913246065039690068435529896460060786782133891075546846578871859681066078592354121450401981145180564691107419163035368422082226040260270616523216461576284613685920823321315934425145757963440903024412199012857771928460977450044270536368560152745716403172033948568680700113997275848771384652637399411541228044543790855489768839408134609241892840573704142383955579916888631971327870147933492715770744839342658121725008280711910075585583917395957607818475432131787250979661895625664913917644244411715053059479302290631161770581552595128764213684867451081662592297549174392952225330344515184499166120317200320637048097402044393704001499585005788185048959344811937661091585021782585212206337594718468920581562949784046474683000513073012366064263704845072657815609645329327902977203522122975497221017010333789201950211018996658198209798704877352228752249515887911394242287095396902330366409354623058105714622843596939664542878975120439966430014235725724945811682344274529883132648478065484076249411366559678925998817918481316403723603222532235146925336300588434849693431035461066284534248573207289577267507534564880261296294530540382754008379554232361601827614230037545583429020800255087249358375991871342153726490414251221307601967997876909728938197668518760660771092010065244688791092151399382684180466356588681096060425881675029101653882076504423693119471662705740767144900267082009929138195353658241555058246140329370096240954512688450862726377696756341699968263111074369860618696313787188714254762755903637814364705364427751016457431511467009538985986838553665770494282440663035868644405609224198431627845861319693575745896329453916007597858675558119960833249868211472339998701174987686721989187304895146416342072208037414248703599032943119705433047554078014011700672250758357010800997240133068162406245565233455298421548750317219726031787000527487081887327850782840115618255675316949847363242629605977276811197155088045117421778682873405693497412439218796174222646281657015400409601113937531688161373332252355188233301622220992374408153056661458622294162360794568137264277839643829852295465084773749932633861945135906134551431219417126714839523633257598354739438487266597847644660227938275644339114444116115884861489795207947276694350170821948660832980328670408397716109889221797056846281980250131925510830945505080932946211973949336900096142887041450145376900092367809425054085166199670929288995357219150777052714605298196947285565177124958560761100629285941255741626887160286690053739946313634483431796460697643426354928812957720062110904753184446143563786813747523707594816165422705718373863608899860253864328304124089939835083060814669742516979409690470938976108607883065063336705376409537931340703044779283403122700155768688238342583313078829480811476826575856708902600110855996861480999737217975271987065983576557075435144232915381958182565457612727661620641405696432696165874684954867412055426985263784110802500115356982251818399056039302868229170549911362571536454623041637906996494548776659946571940031000136004207202440893189835400218589173455278506556693961840904856262345275732186098539609719567958674915570153141544763871412730249432443506862340597348654339285156797337157284648102981081366188267505253495158737180075717173388641443305248096948153461580785884977008484042279306817784858191562968920581809063369010331596417616026568808546133320829806597293788964140978280124817240842154705942050281566348195690193297009766152134300071484910776022106670051967917236753790711131186012510525442621024250474924011276442396379556286273705922569615317116617177902505097353478693671665343640128906175172116254910290354376193347811795410436535918012140005900913555063908032372366583166147179993552276981678207170895646157570965800503824829103966578768262461789035124404911387480235249096595525698678378882806219135674649102722058551518461562794245021700826701925335907396185471310894818772383313587908898044938308821850866067837531719516321065754579638153348765472894789766275174540647051048035167624075223682640769619116263400336516282628198183279832950588043399367102917922853444690815169691290723195240932324356440600954920612856975683977489848222182408154536876516129694311600879238048985785239368632362520944592245824584628011009978056857110072813663022913488565276612831480475770973729776409315170647082275762952379537999076797280751041831434235805203878495508680305218552331454054353821336555906635430789288027349182354664697806097422819323335894113553119823922368141895822178039549942850935622650411699599474876037291615375252678173445036191108902793313725260861057239164519652970553919307856277147917825366910467125126014917666929346428392362183855056932284763758864530889434006258907641807741274403704602834205130839443606444007902148451076387473969105914856378356270052422701795149052188208983215724204006854240323596382747545773225298561676585944289075026373311315778557475413081690992528611080605672878309930234067492213867705448943238741066192657148177053783635192056201535958841612241948290030241123492637752243726230651122558600315656274433649044263172232208755374775154596552478111932236788979101287151569697667639120612735464527320308387002043826429845234708649054947433128655730903823721377890798152630560433712966410037533601207795839906416593300963674225705299340319159617068646989007146271204596754887411404161136621192907359583773429249650365234992939063297344157142340094551289510975946811885435179797574841845196327874615228067981538038685100949980719812641630221760806581894383227147472583226691751543345381603013477248191325562930958253547128016656007288445959004359422381542689236440404608192166382088673408978603590229255897937396442314191569492244443970859014754702854201099770830919286711878918975827343188320914859633280267989673577124269763013556580455329246250918851535396257456761887426462698012406514235653902815869068877977718481790728303641671803639649944935013963156884934043018514033562075282413851095535312689037966551726888062549540997950374750635773837185597088248698369598946725070386779158229956253325479095304201103621558220797980025730449336307921176682282616403192279578751514721078988339280289183572160863130860270410692975035296778772585715300012523117425983656428558086724820745563421656202614298882339726516351679258915920226432910588025097110421253405759290779953649121576343375712457110574298705243186691225178595049739162043405836356038177848958932343092159622107287255915820793324313181535908875859319908518224555992919223354467091278899108920639781365010263140011231063240532263390275976644029535758036531333074857268442848274576569226031587665030831925630068891605377952864010041467747940714577461273097618005626216583575703165019993307684219025520022289876787727016440548951971368958459216882932233354460864078588234903915105169140596108881134471215295916915492744809481712208979543543020884573014875530324286113748945996419462630062920477045901754602832484982837212330718510941288202786652221503443736102127632384404867505966595920970720428061613769229826802900539237226357663431991293803931046387495943879716146074620842478225569394402978099539450785096647923565598337201920022143773283522523245982231434049061475053226289365814429282269993022041899993249064533271786303166438344317181199416359110163623434023059883820301418418356567189020097339423461150324277944544807550117021895934170672962446049625081242303925811308945421530634920018642181992516710032797757326284485434900253443777558406519290352040601413137490911413432651444605840833073239413549919780633494617983067142201460848261514915291286427301064700480960256332332349485632540417191901416614936849943759264750612155427948012691531121539724022660467619411817624425096334835409071766969685797969698632806738536474087058637979950527791124053053341665537585273561615345965411602689376346281305164316478684210027253872987596123394600111874311964306763184711867494701917925280073330740972531771048693520192650844033867523629380383958399896623994867610430463500450402600076288818852946523559446570066299464905720629970078241777165330380445210173413210705201739744410269402563210201411730308363527769827214831339675201444571578731337533428348658413859202587462898077301020235476690925553400439003302819089257976067404214590540394690417061502012923525790828393368600798827812522816017202026872967430571864847110466111791052884526129264871176942107629852647056108619390007786407283325777219567967611556648116214334525735781527356139318520086981773894423622659246491606320218578021098866265577609887060895997269138742628710460125528914513712849273196837321347705266592585581826369622287548091974647615750895839883578212300243681540890225336852157599312802500036956667139944592784330943766834909857519338424716055689265001072831279159985297638291522952556312577656174040846576818150918610335610524922239078660330280756088823964963173620509645429165019030694501183628420681325927201571155632308073445148896441347258064700893253913872332717678208842858060859315339558765508687677251415443475967226998098947290947427387741733983363425813308413397642212387986432379335503169323435608905992586467906071939408718400289044095971324664078244461704198908948258993527706490703866541630544192821596442009928970657625933470565314370766113551893522958285495974070684889542098563155632765726223825282904041311012545727027204057334663716559046332633384589880574932988570380480972887785693659849511011686650548912888148970152024225578701362495271699213430095999404490673066104775727148528573099558124667896808107249541098420657103308437868710726079778515804762041174172893141978181818617614411330767301566755104001916851289575112472586827796927411698935628201425687480147753233691411096896841608594988613120936488403904228261025655261903484009603066325474839406797322405489249402804426912287605925974873680156101784962667235558154172063888056577469058538227561898686093633635701168251550300423965542833845543668010213826565854818958645558087698840062379329251625746511402273013637048942298861330699406598439581991112497803561089301428806021850518545245722495026842513993569896474185088906015499304450719903083124915439251751519675855354584307414261989743693552383054128537607532864223951828038174256785148851301510030574134917187502014845056539381847383781569420764017212826299280318941765997882211818021816130970053100096988604127145551023574601035470494309631855052190391309303294601626344727040543689798587591868775140206772897599222420906269001790478931797601342633632567432468366908261844169832767452564778204826880356676312024924847814472323868742816326034153635546991405882019215924093448681947453756429032373197436331437833144149945324622173604476793606749902455389742932640150888564994363291860293552179959111469666394425651048902685535589400193232959096402870081246146824713204787460821544587031839354284113491133820660906387116456336302542015085572791008274921060709251980243724016401454345925428273530659055881491308637693657387763196726592159276992205374326309898237046551768463382991218842174733671060511844062908174734153533462596948361831679227033430675761443044195870131117713347147963766940788049534959421155281977526162847814494397484717155892928142731987627011453770034810083615121904222559594032348121357907062491674154553358831396842921829071924850398783895311036019854242838658164009596789882134992752581451174671619559896378982351223746596555049482957485060944949804408231369150466243935356146664561903809642347625613458872572298416319988851010488311536570429024206300013043084523959145868424064725949732402426125519688436261785806514037400772198885643020382228591952898516110985494068682598788024602232061271392075221824508893875942284169179436864975530598691587434533248704424195491430887033683394201576563962233949471811190431169762735086504912704047941474983130216977469374557490964664377685424831624223513388715478336869143406930699303898370701408208575338254284918588627133582089716553386613432848672069312155216570513015251899537024322592779350802560397087678245447734838958090379624206568482314723194598647208947533912499204846690983962331627629321227661691795741455894256286652032883691693111464375467062459663418914117414849440926415758378262620012790146271421693541515403145043943164427958582322332965307530592118365333892982734204714333723371729056263018811938984603683421033452797387332562784804882975623882069251987651981780387814216523775369344753487284184300102079205090592127057844470250584212886142667114294020154814749846178834885683292116893955992377742579165613926331097186812527853751105748923633511456137388233800765046006527753426182382079080357923669742567576363033357186832790755130786194708121719404734647988700872122082756875265225736103191719660845678311140000161067317777327217727854023798360492946937060824204065992876569447332595150196904266594352198912568089120331233933194116671391208065779345669550856369541808022251107514473590475987708354283611320207728805695972175713539225928530969113729696247649641548005460520123949703214891054981970901564948707366193929257115842463319288643020597822163688756395154152518635010120880412772475924250738119783630260882097330638797054315548484530535995824776016390270596620542305274841147123784871447295536934591840849146153676515704295572352588121258664341491744734022261307144534879439500007980207430253668836911331709288091249017345165303133545078116318200354085754570581589972473804401105910206148836016181339337683758733204500670916501021560135239176470685383481106622409380383712701160054005254513271211810409644710440595457539575757318030197937178207560574624983930664185220192000036247117282487672940610487340940624278803098602418401336769585422667586736972417057331041319141130413447234446670280264588346474809101381658268245449429314859249288961869367930940788459945386736254734284009628132790061075763080576470984530934574464282443690463521681072359208732750831980720830960621996234813914021862602096368357735546465624334878871031420863263741381211866415212512331232367010767150296698184606859630636267344657736094705397133274320835769164846315234382480092053831788293271833597134423264838046299859985247841946252413820335119861127747938101246106362076443260796357813182650722314346334529005256593191428671866511493039579122095788519604923048790244339069518342544113922285842749748961915832895673633374336658123433950708757749948885404529431832277935213709772010259743337283869704183428765984741268167950084267255318261381136221731163419294111357691222394557151886802346361671784142101772902579811737135778701701956132924545603304448233401430766644081371633467491855462832024778335061346405592491305903866751438224493762106371892710088192375871762015145082654113730057834710640397885483527399670832692416936140366500373884916296686232518710471456826812363458074993440218482788603313170493665408136454822269720096866115512913881005284571810965296706039451453130251284779942973807169247899302963333101270050640236693067033677842202143769416030112939164914904032779388520549202739217460306007270135195562586304759737360960752930074970910063715152876743954259528195363809119801134739974039543664978904573915333528012301243964323248410195196276874730703749914837818753977108970556701973676947851670582878411468782431242913491820071237307221131332813294163783714371262311222775388909719561354456062829792114259740556757898467042463056182657751961865871248900928312253964963297669427945261812783602219810722644189287532334315850579180662104107135468547450081170776087441505473796718665224120931872371650688707735559615078007006224199488824861265053911873817637685296920698464860215628184954627630304620273645270827529026379945498388036694288201329049515035556062555077189032592598703628865504952778460517208534009467284998917906930503139052096424001389037822280033748078335598287269071670570621203920218827150731628032755116579146967675716131600485682479713175668886287522450512347876409950391975012056075297225212812092765496053594381321514338646388090573781241388200783205234352612502730580278678499802892655069804601773251455146706186897568811611503003188774397380608399635309316090532276156296398530216168833165470043826802527538284913090361626751733596783830531025173812037291339020837914873835992453103883411686798361688531580722376036726309989210572891345545917407445106796576737826625955184817900820256892545582584407523588432453490964593398471741966199950656229108435951837943423649731837585160487514763003409213952645941408658069807392521427423840587721767626497172628628543390206931391684137662877097329816927105305429137188016512668077186882925745582856476261968760669114514076874811627714918567576885014095328041164377154900254712859768356774067463166610691720306470242072756071696703959924327238099929362435728286200861574082677372836170833501479685344948164542314317823525002683915399219413143432625829688903369080998835394382156988926357328832779579578621085115154149171537037962325932612959082119762700421063233262356086902196466641241490813178651651185693059056861006928445945673157874152595300526742035884630119149539359976214173482223804777313152342940968918197532510125323665860340106722716341220895830354220932739147034024321897521449542591627498649776726676697783989991193173115018960195797604593772512006832448851457430170942796651149867232283700258336474407267968425190961711493987604149542918826538362539403854130216946908176604542363997880835818563310683351222005557914665434920604151216458579483891063320215257237128391002910249791049098034012273545768927615833764828817993954594767791581977119945403218793478001624293045641062905236320659374010502661139889981436405627480657283341269548991784994953121597342543033907543132957784510992033368482988468413089343991954767977016846168331513175668841138265976756952456491250837507316544437107548259858274475704583907648648681099130678750491576609222486241269476514633299545487114418089259641887077758519488345139784766859956013792952979005161102341068343636446283081844572651606509998503610306055652539579061737620192965078725017213129015381990244508000088291136807606239176761131366809332810101164935361397978810485525987013059666487495365908053463131095621142677596856413586806428203744128768228963834536082034045451360722684455578811603441066291409670696858303580555510933559675524604083358999081652597192004683024096122899126646184818305873022099621222970278102382425652149417792070921473690532897549780028795319210069279547621409565728644785014475470688472738385565625930546499563941004023620018001046575113724898907886378265275006984404097915572923787130078012493369946702116711376906683946391324023799428056933380806850347108835915398995357175182225893542268600024542311966176510080835381442400069658355841857081393922146795960572613756245987386934161411865006631426399166747054076328477252615837053206552643828028682132559144618164905543909097087029744515594778592992345756198830360091987134028458233566353557559488618246635913912665493152371035619715161654770810313505338090928142650790844308637476632786612496518640466816739989825874467994145100105326594995343269982566270479056101884785415111858712193296192786371777528246242402934872282735436328620661828014141511373838376608005178048584323203903201943870274699493109960734121274142410793560802858815292285207023901223773184676816455871891875799114181694201365781608391564655786533317527692282888368380483800617216883277209008779827570379010601947915596136667657432783622319727420747026539271739126358814403231860523458211836299327626173926197795868066066185429256617523943829574383796870285963418687444304247582320654731638156492991403269557814047352710758012597827224957433769264483769505945274959680034189228218980198572974137966234720177099881285331745603206499073690029971909174155866072290196332430819719666018786832213298554146239500204305174001624046755059022851719139019056097095517563669406695363107486098957827663809826882137719468063190107201759174062495519285240791984614266426400009409922199676979558241195058138109642336406266432761440652327696980000097627938447456105605965736695591564118427396736875922599654936666957691684353071234429771747673405463372781533195012785451990989195843576641080349221394004508477760515129999231272235188951592334126573754956401150483765129657270200976717633749928837805517120596388276048437355913157972609346300449982757667447195126279419853424221105382476125201387585740509318678701641481375430443548360583120994185944712446866224234789659628245199389261837477472998418840464612547546490584032455899604519802192721788865159687851824200436369673102332073575504763309431836798365646195750787259140539522254436187796577730507131751016011208649348675238039524021826489461541515622914112464687861056991212599995783925325483874078472110769358724271226483753301674005670251427769761852108772235253093139469971710775753671045183402374800351798654473350206322616530042994255282489362037075017684568609546880706150118909437672028452397320365470555654515120887439488371395529426678025368570685351156374909329674308867730180089811580086649195832307733330675981146033974044679621356393792447294171408923508470355162194872799610060588615656674734742352638362933442246000534991539094479911561002451190538523902484258601181226997993698458067945009635609752585017366227431678810320137265355895750691730389690369130414340477190003851055933244437072952341181558984509560791660116608418195077680869010416066194307972447849587191614097364951724299077102002951856997465728434543494970634308439540429235171226574166493878100148576408558541343933390706372930016970743757441785407055247419504901396761134518237827629804509326330808113893966544574481053698995801004941321191637823932539163687593990656868171680747101497781871139373132721830763109106258688315613580175788515244249180209036271539860190905335899630802428806194192253868103695430458790487238526711384101365206859004430549940712927744228303361502741414444492252691055735290868662073891794308290961921173844016732333040113052064104744534130876903474006122542439391336414086740814932034787031612262223671803126942137107498045909970661787060572908545114046174594461970387059768258284859491618062956209341904351137251021817159648491843653386129770784896024913496432979139924018475550639473482506925640980242659777804964871416643359668723337095964445686298806265107163013918117797992582977657635419521665505881082425353947220486748655675253322254829400454964104694609567417268447714894002759169561324393187982628487294780673594902818618536501846686238623003372408278521206239537811729148220494754867090411286445634589433529432629507968448550987791501093991252479511900902207598928430987323326440909287040473884057246727165998985484920614202912775953862067126886592305943124343008456131539281941002982541103471464842851995213554682127813988649874783832372781044705133979355162590869274155059752962278386453807407573482220353968965734676197168993633897684804989391678524880104385016636570325454370894215903593045271069146146402394119540722005689139012199884315134091056576835893553786109909859975354951881920170235499464990826689197266899308253066404886813156997965580419302770129427074651315091064758811899293537049346001384487486103001993184939269414699807382341056345138119270022572040078635159992469930377182753418598749325628068413398066919614765885151851318027695587759208498065664188357612732166937811733052369898351598856236224526925953962684877668336626614922534777516161087133421872635621872467988080465109358352679522154691188736812073829449779595827252303988705913845739301539803118593687455135415861975937719580747405455673228208831743830720219297119485095559955467100863436918715024084087065664159108313692330392576073403983410974368540642235428684016825939320844970152473386121861077060102894666132005020400023168724841912573709843821591498138535991584372323468129808336375174524602926166375893888251410825273142868918866278100729785404371627636533214800642701426880394927061678441579735641753452165739561633261417813633920156386175239364577309014527065288593708723547726693227209335192279848963613725841367933776668109098878337476448017560404686492572169597107560870047987130942857879758481673541037598873490469674272077251908545815606666292887703071375480373167907195827671827925199825931984301794036200071248316145243086315420267629461654351248702558548629026857050565539481283211826423770067792699839888071842726676623671815693238966431519510907315478737596750072039663340913894120340903314888809274976377216204584617379908161257354739704313863025661166311911842730959220926723660391238985034710518155605221695326620904720645160142739897020507004831437651585593138093437583215718409677377620675060954386313744033610194175305300424661395932399159176927307773184162733301794630610859641426632035754713370032039401884419322113800184792111609408249184121256315427350563558492375825404399569781790712812126961814847916626299350382684949224184971503709535370622214679176565086872406511768726059197755208663157832454153381248432611312733307489785886333588833570062885638135285952132155210896463155982461800752617435565579375200000708874434266739607024652266843995486676791798068564153926699792741498143411902674012662442997276905749444894211904131353730941593015670294067249688567568635796940895579274841354688062907053413509806325976341202710492572011976809528218187189873787756496582965512507028274562783882743336190463023339333081019027890034720959199456151863473945083041445959038834034347587847986226141444968200385715037359074845915046146190219875776479863165558270318898530119142162060887616464621184826682425427687782905729310298465978834442385697486623222531144744403888506872426886646782549615052475783716616386757676998781106102995423039182874082541770830657431718177784943193693615260989761941490311105539856445651219314811938951368232977738997919279515827551128287178155004105876931954111603061731910999659321354874147782989780733127654355840931318968898793085731467491539183757936182294431974693855253958432633169025352002054015008584336654554679216069218856320068997094212880045777007636295556346095720606262101307027892847840617980372504884535298592994645846308540877705500900134531896728641762094395962910833068453738461482431178617788467165470850189908796766133154845509043926373825904024127175514526765422497715233786240141443134393579171095002898942098510053233647159302373512487994471667409366174183659842929548638064425746194622695081218657942179318111266691092128656572973027409677672296476290660628404054348476740483890378563135341694675336663185917067564197376221894254496482073987706844176770068537662725456404888797238950536634259673594103454924856768801191273018383212213544457819629302765063486205065005859900171310364684771781827560863668532209679583065808398870133379410897496517874106711227471068723739415713370552149937404644809894196834623365803899607755139398497392289582411571673452082716725074155550779284441300769692568274133184187814558538481051916917367536207733337504436158487745209547062312620178128868356664257313243040301277697220253543130084626734218250776042709761460120771917248501300977913632191059380184055121286568197153447891710631992037406174877849106063164676295208621285524498980463373823399040274119311505770635786922675019820167896157642664227106540073302189851353865551261265570120075290380818761830322509716739889585098357198455538531913062635068634288174376142958239177541683425655570674406457630675368509395789638198479648153871578846449960316800900929423960520584761554182897203595646301813246458528592623426337964633651084635012707438293672940765276744453402619556769747832690088856990268083805125286227040071196382918310207272778563349950746336698601466945243806124106589677141890984354682775016960082923397889968166119015287732690509505815903905109166791834436011214515288394518150700529762932055982551484394978236696830794565795623616215764312643710361049487800582483184746782269191958838693134212512834604597029044253285920737450513496797497875274716657447787426532812450167148085144549241977504138570150227406021294805839257994211417489065944632544182697080334993721920003924726211929400861832664906485864481458033133265509652559365127315397793426596914226976946776497752569157414526470930529625965966691976609824367887422671440070874632097378823313164192206264869204208026448733707178497263711212463535521422544215228001804866206572733422384173440710033439784391619846422845158472539442732716099415311134453739106754639695320131784497631854862371627475145864522102051492453802421564066109282177431887560986410574846653354653455574543846134011401659770444413020660967371844030664732056030021693848189791477103051798748916462157037019733437499731898231039884031681584869304651311587004736964581016292260612805198561487706931323022436205258002338575552298833835235057280931296676672483398073383342790086260639643958428226871743856579088554451484760173703969826977075306427795686637821979227769897532625290134339591034865614496695209980604833745840875723688412667022329004872182984633503195061448850472105374238725658061185110760562411465779027826307450363737705229148231520508716486565538170882530011503207110749233604658809775593919099687251827328386299377699192229549363515896115276448113534573238975878789241983045349323223077737191921197945309715145719851950293288715156821019838849674535765843378834162671870456037511515742019203856129301459714705430698282134532527711754917193807764726110986845652489698445063522960175306059668521599054773506097503869682305969799181812538776972026739223389185950075929932231174418552963321939410770408397805268406540455713527803924472515739245025772224303286787496564162357727280961352178535479861979128015149742126974035413438979445987303362621402802044663487580121355815585475982366323250852148988894765614535196753458576264219117381622551923679058818373794060867575455137102874825745604096830922424328011666046326296571942123918785213512964820515369509055153383984040838693813820152892790007488243816150872090153702345285141513312818321802825632863689710292605072490870730765651024403265397172819061337788904154737755083218582852117261624247899606600673081415017195066828390248241213813016326497648003667936613511340847819813629971675979043743195989451912920250722216065199030198635508141141011697456274919385077894871119931796024360016678456546662052053910972233978755860255226052499402763009166703077717700376891962878004012065945644304462153890487405507332212474544452859721274285026574587580722796187295034600768807507188779276957301249723673280043652406968874949657500534366509661754110227434853877513358537022018954824671159033491448583900566163426051281461207294837857870810696202200306212204457862451535800855114878551726856054871949156527617019967581290192020326236275141702973388842980598684343914885065180174318167084934816895589585512999656950031243753623034951879987035881481890860971796025423536592639260666041805169391851518840886147684600183298275595459237273643172630941172092868117057737758019376466938293002619196428805430156077183727033020516921058099933864699025634328963815528639449061446665561129914055052822918173022313829431305101724185750842171681975341454351116423368040402174386051755139918149002917538884473487143061557366517265347784030015976818283537952087683873341927621920070527337431023221067162503580052930636666519750752069654874446588809802580047640451709201616080052618834966856624239782912679739237139396525908379345064868564278309728002326607435527822878739934700035354409233335336024287574991296185678134566244916942156464751583156207727761896593402718103377780127116955465719457371341283090348581455323727128507486025232133620957849364928619746324632192963679875406294779908423109405704763236351423124844149272432327264130863500505216460556901911390878511732664351952813149355401882737435507350635323502058077136142103227322069896508985626729916146297657127726932378656196771768359450496208634906788065319303396874081716872939255500232805498497213231938156378451058545633331640907787603515852425337958878423010648704399125133566833507904753050621386349350457960063161020280350036100899258655779518556899115634644996897123475837554894407415586901665033748301750978151069748886826048998465634871307772795442042462295968960989848573893902454590055051089620018922102489313585932241210643291969655531515230012769813987813210667374057845417861731223873399251477455888337860018787368971618664669857631377854193308940689963978035879649193290152304915589312370246689390070604562939831314002690852320170123417970525349026872415218688674855562700042657385562459616851244452655176328129212556044055056527724372025595924596371179128229620979960826071141307143825685365480862308508851084898150550677207992341954191328404083718855880324018748203112387764087897903824896376809593715171319081762829598812714246759262262205157025552417700955075487640540086070774872798257472191471652329896888098096220642467395633426474499782705780660581722604539221381936505322506086893528184017447663787085351434815071962946050297218912289652498895307281738678262004083838310238409381380864335777325098985344309143997856048590129335134859990707174009956172986057841328618522100681090347511821992913561948972838328896039662562235120771532459586951254742889574492810885226975163455078159443060152770805482330050018473412356104279446526050587716340826929991483141080107632406379071607964898390950507337457584881599798353187178554974417850921569983255989563327209126530265464965836964290397137861106008759414336616203834914907385907641582152369393287194331356223238564350433520196599682950787006263561166138337877791415553818334950741170892792083417604391618358965596927411245306009328600597713005445637465097352983106582634856508220088885860350939055654702219732294436614862161234771441676241147728200112872305877560519081434352545439219507246906802985603553425944869064423489154738087696843695190738601573042370923866204528236603560361262277437478166174311577560292059265176680476659861560030824810649701776432406957688766337569846225336454182190297066578805624445077371424976449902020154634874403411597473227317643600949628679985350267028059527032513180445288615134378440190818861610992051385335786567661633326331237851116665581438876177425466699502415933767661964646591869865988527377155152974460237536156051622145762278444711724039776628752114132884663904462789258691234066072791483602361322154017302160849613107119149419202868695847526644954360841174342187391423207980358497772128905180050497406816675091441686780106773322511685213045360643158996661635817192180152289211388947537770424148199956654591974041740015771248091954315972740261451474588804341465103058192953700040017517430515105351203799151314269612976833585499956973170571551835426963277376665616155646629459132909140291803329737434674441456062983644221403333246966536465948501521346400171334068809987882078543824956474568362789261852599362468724822168998091727277622362266107086463704469040237322137102114822364625971532555046965142485242725939608577838261573444881481209115921446738346090281316951787474245878292122522282982274191562659420489902756547335607382984855954192219588396449456370388867851982349955502906624257292405716058041049797275466642195965969028150525437101795168795646943551185249554043066437350007568925151245335140592428025124231324670073626612157111457141231171574555007451069609185710893250685633651550474683822807369308967407230396549835386970458373988148322335960317599251574933426735764635420354176859366108177451448242325315555081162235197766496987031826565544898571940215466432665540562733702184267669945337174562741816802022574426848164382267903945461948885810276020217427180411938102467969354689338641962549026851993466037225125560692871587757307020645643234482840222116643050813860720114899323730584821416435745923765227141575925628761462967394908198433438325630902818218744345310849812806964099189439166740342130829620844824461427023834966537059859093226601930094425473045474282660436682874449150416062123001324670044949164801114893796377967189555793192723985355992625651948217193748224851239897022710237086766162779369879595578365137656744939186600406593061040798904208750765508113828650087156334274514378004173113980628111207527850536383048334825274598574188210432725692397716645807908488794539097663261878367732279013604443148639407902407357260428914695440327251564109026021017257912934516358196827450072591494023092491640051739961131682083116664574536009237716918725268496609347073210067212312489177356518343193097435617979503927371597718508969132196355056712568961057710176812784516664975252551007891642042229037087784794722547949179586682081395607814212334376280701427079795254395097383027475126933932775624811104857470399607791769905264048363729764714157093388822081016337529139579270378571155116763956539641604521741640709856295700721770994601703990433822903395772016124470629920232878266809229370775515588824612577150811395798353687695525086696960384814880849252102364066849219034460648792253789298100235775813577811427634059049355008946684281986341924653353939566739221545724543647204089515252310962628628458246548658298441815160895237465731917663615155241056887728354346323629551385877513828914671697059166452915437562765361407591385036640303308594636461530605257193779949655945980051988303906400533201180114835880257773154867511886086787767890717792970993558213814749486143076230573885832327306952206472340503166151010172067694067801958176295346781272485513176798432670845260846995104668779148809966053642065081026319596058366157171223950535499640109741160331139136304527249402943637627418213461740889149840596941350552863983703439727023808863438591768233751468826270280764308000356014858177076929757807104201543870784395929805357395064542883211084724123142301451961343829007986477383013262096114832556726947349331902003922684984301197353879482063548749551649009245754307382257547649050671325637490954057820555963099092956638788125999658642096211763694348103552497126950426007174921465402575168512558419437313000863234406131693478348729952533701177651926468949836299119678578137084486746674610810417400014242271208969246525092162003931924072384655734645574632735712735515030645759881250908382850611401986048748124460021327604764199027138633023601258583376124571434875475499531330061895450023658422831864120044881306055718145901466078055830836188387767098179159611465917011834169037429311065346527558010012264057037836530278843037303627705773095866925549692053408384485290551498831501046903490627674475239254573623219575578228373391644137566258940847310390787581325714897051515203957219043282045706264165225208812227542011548731419414169605566228158583386813720429415597269068247302383335297016788274359166981780194155827900783232385501162178547887374318941862923900137053027038924277598582120753644068827746455822078342347329002403223283972499534285774708958415465420424971543043773892159831694926108443112094024229869000265403423258925180307432543339632352449758844918571136591588121467799484270688845479447769983093342595273905944463631720288975672452688004079948674785462055165688221256773507601804027621776137813887528290947076595344628421348624112196938844243623845969576130713948550744574324121620703660287106455494775057295446987092340680444337935794211240373010668771063298379733474391125057807226443899982297538075578581956373302144916242244062424828581396016611236656918279289631334354105249642827268897737152921879649087852482063381486336161979969390662046880968855949892409805248970229889393824411025175409317327049694355567436128889299875447588820477284865183984037234109170143343333954192471401591690713257988190114146474507584023171436932344745702761512890557846175641767331889155395503440863754673506068878902104049183700414555517796408911594707814796759285772672913118152651027959703437576586719681931582020314906430047737328612104043231438307710436566318806188007585358571196993157856563059009539002435525889451312465612056766418531882286487333094182952306838329355144955153425702157146833187165888896367862503483461504413887005385847393065311856973793418048890040954249108566982850403007497766141463982235399438571265043520002966090058882527695575325886816674762404603057738015556875540655539886341277313106301731415782365705049909638855157029216584426551807941778820174591225520899170910494151035774860939393406086269957929112283352793040296197319258846085999686205416216746626834001444299166372811514774287838408070627553346211149426519773779264700945670391377835771668852838410940707184449881524595294849218056289289284862312158388647345766819351558998928993578506953218672680277165287547316053376829364089642335993659011406474384043107665282110048429167062670552089328933680851575723033552351608251165753008461350486116522632691644696813744754896412827036257266755489820460074416836946045992686433692225483794169535039287077724860777350359385486755693449303278292454073725568154609228164456522000487567712884185133254611972319229465059269769151520889977354443911034354247245613637222668674407578681021530390972446445651738521392871438157128119528293773625406167727575492254919708340235424949430872922764929037123365757976664207157098336954653304592999955300617500477606189956399479909548744457877980184241804083338699426717552627322705752177645148602990755547197361144498795196740108233815980245232911646033614914174838790688177912147923762045475811143953969950564669388932909466196100223096498865486957363347560977141694219916270425149568534403150730734122415528875062567719592626628169834178862600057413371291831145869231743430178281351749048582771862207243459200209963153815652788617839992488569490896144876646238017252080519621155380950478883193197556160414356346104036717529110706506983990834727300160775641203138932105023995297917767318177636646641325110003520566138601511444854888452741986827721780225926055233853589875619711783177331501412281635472643164053926663884308444111397890818096203426604338000830696812687891889278971796451041143477687521172591130297276062785116490042761799791928219967147495976472005816071619498578076617229082300564603741403258388197409756518386517236497508892301302597473944269530418850426903312604335032496075286370023071070462627247343847796545218846400366020141550899304220503441286221792882582955910632763090942376494726638392768550496779606886128061659303544387227166338962212717849994172909121336130488445038320169344260671972547999043751024950911024267282303908693642013335256412546643227251401237511874300048041873519992748126343529739650763637023940118402617699650653312271989425454768043013090096642565472653729952764533524294316813360283655119198909808536998393823185494172316979879930309829347128040803822311477794636626569995669441316450870417963529240721988836837741868842594507117128267930179131159376068703349189840080954085205013406421200313834985663090068421484293186367102837039457574627759923131537977727624895300670374160725763469046803965604225811853520219690281926390650295850977686454126541467494696397920868210712123562755315612277522764547639186430305606342727594362863544768471347358095385465001618966861629418972202819549668684463548602297813631440430893107521176307396392098194497081816998127540662397825041477206735166775647776457149366322990593688411593523247425604792080786249198366920609022219125267317147752182171705780137277001484686421152761658360789055456820262511109290491579503255091164034462177624669271104765364532032232056093383471461079658060415593765683944522280370778911439541448361406399343885780619282315278994456346202490392698663040593722901022931978272623435064759622570786614033417284137373077988538305999373312117086776685665854963351342260562726523165280957854790675950212379048538551748351429448460494684878329360223781553976709640748908463738451673071026778191280854693831517761397436188540061257569247413411858405254304338042596198418925361368145928524936342251306636892569224581056377762991525886952396520822697432682158577389496681800997439066247893956481500650856329909089697774643786055409783224270803149404690337801008287753116106996573477883673357659721663482394568522396156176191423451288779679665609441333548908883081531537442316832617065847216356013145012501257532090565382282246934088338433294384693901774247517381149074134417091720283176856496569666789253478437663844640342600821712423744970674226564335481883533949112333803908197372024151557388709096823331593594933061319076553706503429185193243039211251165478842064914660115334047896780783895666504548654404590370344652400297242714017485256265335457007829078184967762655388188123743660241378623649421557923346805779806320660679237601725870163999037550458488940218427487736380922136375556946024111705241063098353174950131603169896040938554210270141061809156630734024722742649370601452624131453426791061244322571455883766065413166881443381945383394770283594143121083474603958404978582214662515906345333028807403402692948497630438043281905797493983198849428918440518411482154034517516403130303008934245939722113959982013407933062029809204797554728412097830462626920965841952895173528095255628295701674671747265519410360628075003245680542414375627933829689137463345547619558950485664293746455142028449072679957403506476396138590438583884036066517637864234020536046396022883362355774535812899064536161234268771935811695418159050605785255937894227495784130586610660798324427031521024123826545235705311601127273456052953551388650836361268367087507373077553269256462814403569712055975733252240770496067291984821491394843505102889938280852029782122157920414907348252443373185176117614925346457991368335930188002120582019136722298297148946669745646289703768693818889759700789331957068655613584903713740065580250805070927150698883698515618780966417021267893454702852276389186669819959153324118739915761411041434040147866009036407095262171205135897107905182248962950010308396248948717401042420718245349309870730126493897487216670234288628100405161243206783013277147610117398528132298118708972114631658166131060766133393876205005501922354118943015854190398616976991204359313219897292003468153919501710873327958635759253780001120661827200420171460460510365421901722556289596352382306894779946993522540932376136789168688760717916003994779679502037511588628367502776220395812150424260069497260283349570029699531995875392253135044688125567841604936281741919249176235007322666663386841347543741594611843142122684570025241781972005396247294093249059652084369551688963506495368518471406780043849469089919710063609825307651129866088972936967202593672116748059531938850827332946304674143128144552589962473724795907628344450120073701861312793995739863944656702187248732085520355574335482047952747726393052284821386162746910539434485089460366459667881183205059660891408098388785113215175688188997182752483388488629503072261008832615781732655391930393451198344906981662874917198193449950855435582794542507830830445735150445630135040358849354178691208539839236338742878493840391879301432680847097641606723913944010009871157835115190738949118903528776609160403100438730783883051156221109694331335847130408682287575626432002521918864831467389070193108748028802658956298892160362489005708538272871769776106406887926663774849142625960400003411669619201309073028149708202419228453964343305468674294436047605750206096043728132549028240446918871872083972180975090826713488438728850509908556416641627110510756602449222217426698093753124155517090417175193250007383777036994782010093185856764035039070311215384995520626695868757102456800398985737631352892082341998916015479270544814132313259361810147794618045546762218731510501712369188646789860309299010660865171654795963273531366807565737069890544546891237871372104380815626004148917919563570135264037633328205476648677528342554960963867615732127322964405383414635104335661190503885006819224140265376217266480418002950973692133170634419711089610792062286167314263466911808176373465562664154663178382615000050718338526458452246616351287792157726470563496907433960880926947035889109124043601377326494767527556384103246837492866026913760814750719643996550467861989216349333361338758812127309984900494730385710814573328766521645610347297001351616161235662809018838504896237785389064931105632057710372351265651102118560515144016667225401004084173960073459477971696072036336663098039295427516669911434553452788054795754782792750010939622429351834857008697140584119140850201652930780804939205245988918266884876772198363852453961373585250690274745856547791107647313741502851052576546224772473950677006178796057654440205517848681887467985939903844616303208055494659385525167771503692573790415857811975536861561729522887350216636993740379699266026678478674083098964278978458382388005528260731499969536148552225974659861932115294982417084913610183475202791201707452406333929719742216491060005780994483954624821424261399522086682220271102106953328829864217954414497165874320589304991489371867727653267588885581346606652005198933454241174317787013081527356921519326127971357180527586391488126844383376120500359055114597304581719158313996203174377033975339109385215740159997771568124384924098190762854168762386447310848607458327047736824149236195931909699412339704722582272812124555601026262194857273665707348780827021944603027826425383152706378309786650134145211349243923846650000619256457285836479304271652087346485662824629366123726648786424262506953877823214795170768789680304478422282194773984692697471299125216737141216832492763881830503368780262143728910980955248278291132181930682648887036718667401854417588015347306264762626987840552565236986396109043489854634078277715586278257787234232971375865487753519049653561785412642399551940318675858426032050426015518681122359450928842818920118856949177534957589130252498917279019501873708868093761381365338838990624568608404261853225835861935046029583238922900787811744318782503167459275775679878148819101521037499258321405264846868798298381982660379090570958309870960921767133141354316965080599431802995195299147129292374001907991154080572837637073858369128873761347703773758806435241264998681063872540397803628292955943271662072782025369736966825802096782984333149096488527960528188189486992092140206134471596624184558356132025169897042424801610680068548367336582009478562945294842616399010849694777680081163262269089561263974472599713138672237373644127562494634937898481533410944375037327014132420443526435545632577232325334797521637451536391001064534151893265526808018383994177514848517501282869177938590433145446195481534653717935323904805132771425470102619403906594790391721467610984721556010945301475110227211340604224338057481766845325795714491743502896347040117951800358630162123300679669102489974296178078227645677109151184081553197260785961910553197917394436622943646587075786133786793153807849558901699695242340402794300531158504966116737573700244503513157786308406470800803558755084421692066880515004908115217164165918611745492142287706011699412800754982076282150004294047505951162092334035614833067271852368945181536328336590134979802233237031865851484048028836265106770798847115880848915157247444215105064365699921400397545539898257516718138083053249334867624324459223346801426342132100305204645219695367690990207686645998935506593632127948901126305311849289919734123376679487827318402367668578788035160189367630084142450191179425746785238013759434240872089053099121585572082223361553999754478351381394228917101021571980334398717340745373275539418495833245804476067736912714197700736104914847905101898752421156328286608937092076918426951076255935550072807233064191548359626943890381421219685092499730957876257064812878832588138540389937719233890861831616145039547379476465488146176299551287753435104846854819703195838711145036226589628304937807671299013854477254308384214381294731812259521084697824046036224597612475857550115250910930280132359494241045905157808774300405237292906114072412213373657603624704597700382889313802520006642887767998267120637895298182066834451560758272146638293258858859947411653060120135201088294839120905641172240888837415744453276442828983139305844811787614948259948319260349236663820152320125837085521297453796757528227987285192587486929366377454102275261197092020805478612830837970331057670067612106872971418999323015969464718854178012058890962089127779066914529675460105501965170735245699677671455892886014557173734931347400406762537850465444081164811906530326940817788766154267817760906228935527789831089136879002525329704045742134253944593832493826901296962362295001880050754294686166836507015405509630351809106360452683746241219430121520714825923244627620484272318596677902551182370403230340747086896351674840634718377229891371056960669036183576105524441788240959805630254383518526497537877133015368720969237296193173818064017021830318442659036113667036625097129898186510934018119007095973061775788452089540373784020721502456965107626686723197054542864907801196009995667905813208556646926519669980090855297836947591544335339013690665720455276454991697328927854057157939821042207003109706932873140683565212281388773360104208016221388682653379626999118510304832869602408346572846574028873392040858625058623093483639707144411718351932003163632294026735185181783251587802321425112076700638690490975159633850083593112261368187806480926094016509146197826334213799874587477878504588326669108561680802687520017735926995642852525282416291433127506594045889640016436241977824050142457379882786841453106809570509661043726573575793777841845060645815217605739779197594611195974887843872165618150400311531114556299226344952805989162295138282974314879043752927620360210657323634522317776292750462952861964016188437041601641654198333112686786665116634180477925475106490800464231393609086610032778365438266724187602496915690392690251663000355660971482899753258043930964445168616627440469134160670101668968200662284689559923317928518543997672944448807503360455073907303086690685292268076254633665240522551453763298923788271477269435942079027338443358119546783632818367281087199406350500777330476913962102129704837299847015796048879188860863322566339087042124412196092183073130443650591571270138389859393092281015057720459827848620359172430324247585440799464158086195708013980936002737321004676852873420411894803806321309258994290691472932410073494114676680203137036957933951142861432475130147626520721952888456872672995003711232224001712952048958564702797837083757588667789727174426802575918714723547559672593517113138814098562707287515279941356608520742387435400534281407307689646430721606768742983264606116493452184927879763907367533119397041777617555926816377747009953786988960978310706373968189540911964774666656149165407137321042208375486495818132221127137979315029834276640283606231325308590812759943806674127005440998422228970688759422492272426244994982551289977949060265955093459635186752991210561090431865401070481561387710934753766093515950541420880243569105041371046324324853420119460766583015251487049829997146863763785708628814766592271329029940971881965207522601137804171889585446555629353263205660270528026960983490829308646227671713537512619849754773520866226104786345041759756494702770544292584819446616566936666469373027314760011434523515137583297816475622840080036957536343547108093333179770985111128727139298996189100923247610351421022622986287117662661217617703254777719559789999125386959183846047402534704687289444790307730425041632756746321654370528262990746754798578592487616072171276922257598407417270152104903916753259677776605119967112912615998164969381768594627553254952735038647438519543422281211828974147532993799580542014169707009386050066193782819768527131576467123070771585344806864154901543570949349126330665268461777096123500054002314231281991920988239152118739377606429564097471101439869761050200706208179945413740534038161431043528036335001546522635748841952563611360443661747958561625261366754027562682694113847609285881927268611148841874123470241990001621451780852218628757981269707550856337054786658988805060228089409421263067043214301380649848253634503637069955940050313222071341797092843625762673388671541790321849577405347381287996985272384252485758591693712136347295679115423417123834094926833703257872028700478104787559563002065438693793878255429652967475719127758432652510755082930266756062231505191229554738077637764668551905872364505124788575457746467323341206632600384502904691973183169949271558693769606728586239231059073170320458692147151830193485098743696065166105997836421752948292545321036147953027815478055720706732679266503523383259911882745911626473140438601707026674091490837482346978475891853625359170565304319754103746277825331538761309454265157607659900158106335060119046868598235897265001825612713399008162356801593886477854852426031630031713986755342941329735067897381537613542609633509923462608499803968334689624055051502544095348026107626387178900534220983546619341646593858303903496742634242052867880935004155050566891787193752242775730656576564485345558045528210085121571724414993923417052187788225300985868483465483258394601205746310524787400635274303149975120120399697530370320634333319916098810208558406176903256972672013713041580455324462278111714320623884902195747869747580915460320109411976945075055761238438219539369619140170510334843980785174641474074816579872144996954485764615372711022033802683442297622419795095329174648696670113993103340469022486820788968006365049814725668032356671706071069620326004962816089178045585350871113431121508497485938824321528558659954435108648863068685276986313473621607218969656074006187076837498390517344418695982780883068878478648610288645488003523460127600583149451080061098034906087037651882504651377534091334521241107127172541463077758097423209818760542680737260327366841411740711888188487159653231178003410297423166513826294569783564417891562874084000210783256785983370492919470619592640730501683707636105891522756192797963542384766027864875119046156001690735772849653098136873015492851932504903139250006495107157749691100053589444162233102775952288109731554231123254226817605218389628468302946197540915370088837775346510309996634240438705212824544468805488185952501914465435872948414203872357596401354866285280121922925889779485142953674594923452847988813442090463760687879169556592444533048057600679398755491302975176132977571433989382669050504440838855218486162597662918108116052900774086151918863025501995782726129545907592423592326814802847611923070313369034494330718173908690977278699167673109063924464271930757245700854009244721655473683211153302586776150637623908986929852236582268989892627532643494708917441576344265780416494414979089696369357539388908292039010582770666208749495310751555285937493131729068265901456807734178016619815596464808582010855213803967908751124872733483177392651600504401748212832646546112374383226968697370964433335876213172874375216222724575185091887855113518005855068776225806239051205125451929127773920422733270851152747289152915794836156552240989526297110463459144450535740677410707334178912636038358372309395085738933578864765725791017097180457276103318686608632627533800833167870871214162240286891031866530283182580536890789071935495307870681096644648556750586184165597527298907259862091659668177958416552111822262465935511692469441872756796806352518659124825722507657259378713699628733478418473782737867402063317886972179733533879147660212994539165258931559495141232224426530891945265727052845866861574037671856092281573732689312696876533211537947077755654403087561310066367062751381875653934837944419945093201243345262881878328956620829771732178492526351201512467017839432834606990581076750554728348017748570501545802602188311932819077914633545401859810966135295539266481495785267445289941171307661945820954809776401134071751401512605276104466175199924819935330407030309076965796683038634566136159306800254138171254718801093458614891935170163372344454413699007574364972847152118311355789190572588341767285853005249411291665537683315126617861860900284858647174705137719101593512123578482613146731446874526076946015938071986924353447679591846019418893617347986666732741926110366816753447839081659499468191177490844669760539072685421563868286177086439210919410788582112863981651878782799900444952104771883907064400330636091791197791303823688405555243334428905391458229703974644447819474791108616798094188705087279991819627920516783566768966874428576766769184400089108824106438761745818825413009536356420392664823089384376166974665478685058541503522822871877650488020567818895440994697035785289203608652877554909588539026498359925916961998533911026898739618149729805163611052249324943756902313409435530286620430844378510042487800228780127503856007420086054689859655045401089775389086625405053630222208147673983701248694894237050092131671824498297897598071902254789616068807186931664721276643475433385168742880244169200333693591404620069599967224655291512620643084875532623582778575802487989512808734781281490015755284271109001266740220815423461804327891096466008715871496529373560583410200591381570572530087402961501678703597505741879821306563193557897657773726563915895081318330392131114247374158421215082565455540893854652368479361875430583223167336554721477486488016609342225568833765474431293345780299519425942285956962797490446523941401862081382616904383680353329131140793045388599841476683453030502890963894014827673624691091641380135608107640072335069992567898143644775793256869123139267378877269855760243152187694439979662932198145788765853990203344256224420001267524349494984027458585985824278923282344467915060835489469926183502178398559048377976783378187367104719928969490481613853735620978330381974323137803499171765142635949882077305518227457491338470195566321985370589039999331438766607598975259531057197488307381852619766875716849536132417175077382090948339278514752154563863304308981469911431393408859312903795870797763123608807949158740613788439758601282432054350267363969849788916367800011615650640000791237119185258793155981863910933300468480197681481780936275593820019046060257080603689483170683206666922348460205919336238276823180730693624579913771331761163866377885954785968559645850573837802701656810545317591865080038609061859268852961501523802509920434949030188841431368069256215951699821599312915817932737899891595702104660551119505029771926063306497887788456263755854283324560933425044031957922213314345791794024216115134279593558100999051150311228063477053124140111650104496504526725793502117020390481798492241579719738100370124979051412467317831429796840774670995791177150822675930453187593987495535889014917664143139320747229473227096668273730969625869225643418162327003291888422323022979123130012590868347643637275230680943932305089330387758366110514698602720210748197199360831335144007264169094332664864261297632498149679981975654615896074224124965099444817895795490923859767816720977603221166254532041092606561278268430318329234771571057357878128895941400513679267477062424347227936313119714265147515746101610099727570838949376722789156282189385198360809951909210043484039874833674377823050247080475288698090890403086590254478242676647213962356631302748163474653354850557642936241560205914318850125807998298592490879626903932954745553917006734354607961102491436518390461469974376444271296301409185261403574730417732363546674702459633943588194215363534590735450835098568329572185673836022243251213041612749178437335802600570351494607763584108860326616293290548835592608692383276932274072511155998462725515048293819908222161748852935587273603819653105150675179846509250536363126622814234282128569769704650180163764552334905059739925081084347446221594586880470593351192847648213120461415892255015618738265364381415707163069593164545593338196613923715457797721908491491353498701550884722497697862342358304997139406599868762575650721759542210092513760871774012331340856453445071539827030606918965773963272776381757276071493540650012809842572166656674693317890995993136695398316768539637340029612912698394968807285812551710814840633167114797453686880772896710912253078272432611688006890660529055440600681858114957073645180804185168643913003279732326145267648206827752242410925623960217587895818682059305452880231410966553330454077427112624204460355925616803585806978029888069251139185113926172854609008636957872133372162004825551090750194796954123774083026790728715227715688319321960936525686230824747821629047079724431146553186736493720154066868598689040213122286731106760748086904926560866281962783915572472060718950878299535191645152128328651333050602005529793083894933402895033144810396450829760720319303758606991837367696848146568626399711280547622032665684005309324783700447134249316937100132268636572298786977884842320719667646366267016378739415722008777533367932582812292456675525573783128904341170016338474801268486373372122577470807150373029448224674608511886673847707181316802859960802427976106498200464653458660648465455836339046212386262800557592300656222873619223132146391710305347790245929733576625372599460369071811388645870633724223313582265535083213815709207654908551748732309148730223054785211592307327630734367172787105663299069739433214397187053814016591879911918963022120134186408948610735027170206028798662661051425124084790421227405420949597386388164466252161188351585509106489293072834860666662187441911752253137151524862472585116456515397528813145508776482987840208421469636453593576700259831236192999320704385779354963813936967566811412443302468057963629308891136516483094813668622181090790018867334962083322543976215693891820191332589728171914781941335203230273328713789241216748244732796258121551907279305792138986543214010015937331188232107654986780531424089087961667224774183230524270685762456294477453921625795833104422615390222007174016357195630801268109511945360811833016725605356373554516048349878682703757471096565843531647688898904797164938429089355539427047878964410258644825027272431564204485239871655192467050934948331944378612361031519595131122375828335459442915359859299619676199155935450254716858528141226376805223847477355274593862167351421179037887349183667773688707226328348436167550906434403282709219976063823781992022780618069906767956477186694421259126498400704870793195329779975931166157749622249807870308003979060755209430946479971228235648736790124263014138996064193317213908832141128070930485518313409118922267969583523658505394620188816864138101889626682880319429232840724315015545467983763686716815996160997703344914127762189738405271782935957223500706988335526557315525972048198289553951204131461869885268881742031741735324626003838430251503105324569421194416985938394170685515285033334957173868682022279925109286744752176869603499906891000190597764154708710373913657377245807844163462301606093344396856019033567924180384503286421901160438386605714583300665626643490348158775711491043140648207413161230846906276841093895258294436694290158248665753213901899524238942765771960684161709730811716496759920323968481686147909603672860657238433419037130949527277310616301000266368150494239910864584423091301610651454471793062413084489000670385382546401505428127737970773060336063148984835579626834422181815378907143238372459453111344115166233510388314148072069689264947760901692728866560394965514456453633518148217407029403846034702697873103229415339332808747383460353519668363269790406852405404051474207533596369810153702319967191515267511611636207995747649537797416871650683221124892033310249624513633258133432150002279387892366070597502776205999837910606687928113558449646477943672803853907811314459808931408542723217449404937384687698675843136531467110344731400693695051014170583801353827384167041302272604066176531997077806697917273455846887588158176296746041623493639786548944769172813947123610372310908825236614419289818927463590968625853360209820987421896024219618932510109062038991389945350433562711092254600436563084351775750119891979002758996640879620922842283737767741509199886725625779381204151842968297942957905166408529556602117524189720767691947068590961641060090216951945456180363370925079652625308340760017460169257487335474639383831045383191082647285534239780382684371763177332014782450327676132300578173330979540652057150180960267648364278000399185994576759976249654317941674799245720614112682021772277574135794624642532410577323867407395155235200447159228180764106696671229540572121430698449465169451752421578732303634162813831816238130702918712729160276342392995611643098416782980017115710653970959596169623238541138840181437549771737434040514739827644180699652765977661592139024877237183606075560761281326947712883644987096465373856453420056324814112606931947643529572198414917260035158768535976336072124588243924950794013554127027147576691196896585075022053728077644494829252213650020800370640425363659104345667236453948744308279109129448737993650988862955800816209353163585187664173896737392739552273342458761016962785747939868818825721428610752970880144536514635913746387631222225363684089086478815444530923438940231848569784493433330725882970448730566237719091521483480311461960112846454230665571816381104401503534425088167692594258091188128095605545478464277571095251615674177203447657032335758138851683355427636355133288219252350546903481857618165449374799633505771087596588106681625782182083546917306496697279518970886751355057799286182082662368831937643158038118036568018644145582540362104570994166716345807833497463793408414534225420339934899788925243918524440449625614309058369621074842594403509031076139425044548694651097234411879955586001550558606771203538717578946764170845176844110609571755446394872269678555230599469083250463510156264822727419016747631497631952218622304256624097887508061397649109527843912445289527110055270196414638389634251842681984237854704429028585455994908269615451962308622418675904115002055149299221656535206062359407555970815579217896224029602071967499522102014780682057124224746386001590781203678333191734089007435728891381269938299361798214209553033447776660557130119219020553541901041141514580319475410329564543196516642625883670932808800693655849774442608863153385997204642723619277010028381823715081744655652526381429385093081968166203864803509942876203022815486692418584790651262737068849398610723571379093465506974727447460535941827422655274442824866748107455500374098257438208830602061728894655763736938660840408245032388858477055449749267475514073231602410104166783400267011862855018477653551785098250730744130058626481810603877933030317603105513073902614818606890428870933165702426904822057987888480718818820631301835014244575464325651639739369400869896391209515095726413588769956660552706304671081194378615439477148262264696963881843169952939865580579543833706056413952912661704894297639705034799380625902088577283910775633421658808197860985522279422071532424584728532446843234971368407478599437358901190456344206639972187705950758305495443818742579178120066633462869789090045467019107125110019848593635775890860708454756178321352276915412633488140307153207247259305777575948626330767671313402883078222707346215728912599913090539037580983048802555575755769308364312239481168139297878588231020143154066504652128241249075836572925448777411607840154213949799664682088312050903613037784375094765798371772690243020588210716505952087051758640930929334520987361234730563787387893539497030005533503515621885931951904458088295508382294466711559816899045177642258200310354600533328780296828085571389477040297332033083483089467359930289107088103244053580706854510530818145516774293337970833043632010471489447981701115323700058777473288754109903713218707371215105461149119146498179752627724403983224900074897264859621742088969370187993587035488617188162382276128548146470062962577179277635147880107416770300306120510492835472326533679431844537064798130233349027395997887736383538881730892613896961109241760162760888062174348901640928196144397163067581195650585604324282133032651525468966714967557490530872756015311657900905675015554707114350029313425658368238167321670332530580201913210937272502624147416638316947496014933126376278127346767760954805054854389052774513093655831560344703392094457353970452512258133249276937082961811023984079942214812756244231424179715856584137605820014702665957897766615511472203291733563210222121483692623578662890938384048220793284963070495724710158512747924900622083106423316001707374153849054366114793763310274562481859403990843876163545975457014875258732364148910573712447341841909425650287648714582107126206294518050788644848278544868608895111074927414484772404763045701648349970812528037166735509020753591479150932240530523396481736920366959155402481821904355828249010785631809581667592852710217191715745068268981413894074017694336397871484164913720297989926341884647736069427779410891467306366296811079463191021990643420090237656621855667067557348475400988888250603222286905249601972367906595288389067362950733033364759310131000586731702943926737352312297923788754639507493384609224500096010321351110296386642447620866513997638431348131598521767023704105565576129894030904507037859217732316444736956491801503109381788114508368397825069826222150088890386819718898340980464091244845431496469934316426347813065470329625126561777644163161372850664649044050365283546193018748721743875680602427870098790279579643913513664984113550368444314373385326354011733164364441240199653995542098972944152449759370481095482424783960687912457598712357400756159494159064211298253918994181597705468064265654529601189186067491649845559902865333193143945446478806816102784061064017497920908432816633845822500456919647264312196158926615321361792072830589590133490268706964438531007307473683505220622989090102175558468335618411892023487143546106899741069730714973427095170823026019254923799696133324175800762934849439561583851198361059914962273935079019797848073224895227087858027564604442923813141700701867199383457126567015373328976053659601259614464500676156478004631851844559846861341901068331309564303952040988604154827831459780988625374374579567732470242775534371989454661338291430250870201066358960288559600553380673180372138157759437838082040177675727660816970471115362671943614727151336560297473889576775636104121578126059975057660349130415374893024159274614559458384500430736936123223165345662010468869513515069279842852509110165454279225175051087149060443528053089985308064071278993364544027678035353808513235326072208871570007620299730607032630047574171181774178413310273961796029101963067058621930835309872798046431337777576600687147051717324407639246890119995367736799192815220067597257170876658270079900715355454413486307727846165882647319426007365805210290429038274482883063579694045082302348616788223711811105576974230013971119601478751284162055598521972436900290456725391018708553035433946954466705925054460247927796179942366013852697264225209822001791796211432712232982304925244061645826192599249376815123490285432637392325682482809822084211257143581359932866912544892118756704796933459862832291856843183523366839979450000445006605093500240959842281998096651945246663507299247376480701450316627106899068221324766498397061015337106097365848991544468151128316800631132879896660148094071438062619268770036077908907687224037011758412090370517190464326883769742704127341011959249033582017006204684196664062221830351894400456346972755814204676983942410971728407255054915688507473824634709441451442408009320739693277539346802110916450799221801429241128664374539533634803489911965975164794461818312636697086587808982592386061754645028848184829935057005058032330211251002119442239361379550535415975914575261945180740610116225684203990465388443991421589513348196898660910262166587732567933918584189120105922158097570606745639213314316371884146395845754933937634689076931547304243578231367281694876466261180625127719516050848659560658592451614563996770368865592984123234351242462438977816003756376211650929524187055597368529961851778318952655183599297846641997062432016445012050235909301416700394359273831761920812561320122471028927883139253435183552986147403737544155701954547278068042018722097867659755601299494502184852114716949630461484359520514100491640062497081571715563856242521858380210381398264206723201348597737051750853956511635125046433208435945198946785157051301246397440192803665831075683050632242569745244648238855697180521759224316627488709513169661431370532251944590629786329867740279021763271083561071705390760775336194828629536182677085551993295508440668679588803955553476515250046292423139382047940146388575239633168394490636771691543290062322657406660117537690511077280094942905311906586665517244373056442400991721213270076434965642696445277822770141199224572101186079565626881522383631163748284833550006720588959903416810745341239435577184192590138836665501282076116059368921469153222907416853645771024123916040391133607091104736515962623534243982844157760008959502403014720480541958118821936244119585356456003130796194001089900121802893322194195058024447350381863989581622317123648420801876745061686537458655960792812143407985008298191298785915189385812758544578773979992961629107193108295897678308593688196610637415914126437608479574579980803232468244900229151559885895040952789604557205174031611022961999872209152549985129776458019811742705601829134583085629602648987183968647901418041590602177321347729023484347245684272157657489413892058008913777015650802713104938227726822355163602526552283087382113701589087326380993175319138214513401066105848229618796096833605034507470575965276494113456081607823442815238960448644729314191663745719716898759009968307350394337876672071056281355944431915517374783890485340537842418856649336771552090146455456898853210867933383579037583556174216067085279940074696572850991488305182678591156577174764412805750765968401535944167614525388288554209877985001894586776667981066592420259725686593662033283773244163058702442246381481554052280350588310406828960662203733270943995867725680036635947427940864837781656861920738786096029888650910709307659122453002277946641864820993338904896202983468199114161482420358483480584345898872901576982349961752360286144944761364769003335678125795927475709288096962952267502405487026266081896975128976437848597632209328612016290194164270266651573859646414354836801664263366096204876593606349564975590155243015402506727616520492396591279125555671134242296981181872260172869303159200826402787686232537614311779487247397264844689885920021077931776630815889374890380653264216932331602579207100324633569196868279686806105801520852734394700510082950934042598155981139184456124708067755432264389647659533987659220176407491052898774705011022416194698545715641961152219240604618685239727314143937120940078531790358081668522395947478776102401766402824344767263389911242140037088667578116754262820883910852472541232989878381537774874927625094575445932938479024504467214926314372192672737551264804320075401718318025947429852724368063179392116125196078838715842211034646756575572590581631925894578220815853756813302878167460590222673088969391036186496778020769739457428152588303732835293142798975569175493868303349139913526925082393278357532993020801121691886028252404090906700518846916526042301521862041061689870989007934288259461730888136188003709873228802734591878808646449941501503029908946854861127567346287688470837452284119252228519081369759617072495686137283845739679780224398718334319713487940182870597084333173042291619851864820370863677842018627969155264681328446851506841695583883366177051696440753188117124438069710102328363977725275102800740950293443144815306479231853398837299361427637369379223833664177861955659866347987724115434035765973756651769154838510013053878386835928952446349175463362899659535880896394478213335477150057058146267122707987715909065731725778624026541020319705367673888788556733526805420089399328255921442818956996596224438730314867559553064340060644071715948098587058304962189087994594995087842443632044128933284548062414693378206964809614482934036952153813932834834659304645734650011625832095952155477522223592875547577391682791587541746821740087744344522540161796444238413682161031714281862434973187896736365765902496756367882456812718746590249937690690688215212003996632448096572179200894178530216168771046292292790817241659111920472828376692507488147907872980890374522960851527918411642956469063932917920873290893535896162386611945208779351537327246469364975213733191092783853438438202550742046319114034332893304447976103767180818210960122875397343711513151301030590920567530433298529614142649735999128746642020128636632821618301224771972420824968375019247179987144427891200210918186435346530537621273017450693130353527480459709908828048304390329431472364456926636517907867509682498214771867170562196604427310454149499080384227734632362716713642325278115490953435166574064888585981762542507505813305985074669715759528984540461094250605946106226413820270651734696982220339529483701874241512435196588530806357890189690706312823095040232186778904544045837307873912776370381635920279109250688798581083676036618316040375429040362847881875030548659344667090540608921687423404770472185383265286796556586316235004590387950257531595682778856274829751817188249055242618214364420412529260005458778954209276683348860730822524619156877484054972156344519538350310611529042010813998950269186171494126901620172893274929129889511571857258276376421116747611335484429583347739778639520174244230101677053485794644689632408216472510053928358132106944531792243050900829613249559348653800722272847150396777898033697367650484757447822991416825808356346437237574019607301089010809051628066123831238865185951947440352114496924518847699778820619762896467737343349508010573574780703077556164751154948978010308918845881624390239953510603547324631742981322779571212654231081009439885816533950568666177863235191237999031090612485689865829495220813325943599125232638648692538487297580300444660765045068484409252027343734633104690255063532845833592571466154595896246036978538387601487790625490631930680570310064814295237904900571386988863175289192252977519591902607808805474910448708471408982981191421739802591648777181487634527455486211556806561207354218760091362116029965122434456219157394021471363398306711365741449160502174042751969531309835312386649110655781908427649314786503499358702467622567674361279942517945150410021359490074340651242037136647572481893826997924365232365225027224707721960031961563367958627718851895189321787509343993177304475080393647666323274052416153020649663975587077555561681017721952604140804983210883068415870948386325456826528382638653813868022336287752323836501987177469925966728421028982743547980452373228521002923786618795823353990395769836404628001596130468534574868502873698641847459652423003608830632826934772872815017693277611871793531452202476922597658731246112253540015504638765682486861445131567043367229811425987938807024807723191376505936387476316599863857644070977951325389464120582043831036663491280513568648498261735240628534526110523690761692594433027586528352276492504919073644860910017216750311146703566397242645465255259264072687795093956278874298025867328258429036510605226640450324624243233374031193483461835302288425765828901666210010328752535088104442248616948239155443129196051436655435927344273444922748222084569535746387997649791174563032478579499202107995754410216916231365286217393221000727648248071118433946224118333272552145657124859798922476310776202425322665051466449775622937593760882061936445164694346355308513674448852095857967107019431484651019271880076043013078490344004684279848612164845988482731854566679630154632615946295000077452456795875677533389204193346436757161709912206111143111682159861387397428801868242004139019917796826677558911998053581948003960758329612730570596203873202035264683560355070401419113640739790393020579745603719499261994801558626032865784129432346030073414678045952807675609198594740499954108028199284003452365248825095848850043542726032765279185778874302258290005353116981333713092153326899448968580037813378019432587892002583338605218495927278710746531250565594025701806980676465344604731940817776614144336872968951469200062134227269510275118256797826899455895019080657818159974035049577287484353576838987165033644676328839533182601168405729852121711376855222410449055444769993917536266563940315900759270284722323208652281398529289841545356171089871646523122097486050177577531801012424155940361042007193490554851379041551116192589644649539962616727367534440471507497184779866381250535285990435845721279864036974314386548842729741871663329444464600282593643941656990853714112775962184545344623859564820095571860247645034089791660255207520982974419598138318012354726798048641338934443318618915010286649805412496316299539326033891856020809714628851212099968228701726670792342545571604334173312532941716306868351613562476995789500089487447110592905264743187134283016351274386252067200871376832217697606479859276849935520798516486597676156122203527499939462362868115401721933586149930308920100340494310103162476781635728623821386679127352619791725712384416690468782048254355014557706145352910928473746000651605963831402069668697516360515088376984185665917876203805600548884037154885814701808879745390640249520644456028757023189327288954147609424093645217495917142640664181426159112743571519529173757382075088380003439001721685094340431427347564932210937449491673647412247141238636218545806265967065834887778121331444643925963687913498729265612616217483425486154330073191797851212454171364891940445628820032391704062014931197909590034512853702253104521080504926126736810277275877578103046675491276628755663841779155819982159074209370836391928395415628222124623969629782043691025726770720700864453442350462349774604868509194426963305325185497684336515048364723728245832497768356873617676368353934962499313153855943044724904338185302019706591054217136097716659577205611865573164719914683117662452006145698348211644414756808080871213171660042695717325353725822407102407498294232488705187227244217528025271793434791734125314622578405443379150192616328759565577274124028957299884278139706762901929826734583637722697369291863082817012629319300670736498959556968930645754511459218903362355921687849201821060084776010475986833182865298044031977983521422594971970945722126931653550973551152611649300699577728435732089262349152516979577768436900921134495441619679470979937579331611249620010331333407811305800390898249734791387624170058051833372214986023224822583769507355910340029066791130441582769110479653908050544093911663873382088880806994500273450887009648892182334305750410956921347972108743891152067215789404619249872677146861643095214997780160924811128125434711198977973831161153444853674302075594356200281454905935875654155120219232263932133665563430406416307814252810398790008383234114808178441142400389819625991449715130094950201499827218737345635730359681130522219192233896452797387229730244168556255992710161302498775529934560280048085316468359241435342123198440381346441966676783310578888844317469806586766053254818428974204469160404019220316878367241534099184327467441087213131246811643907778050619425405037991928313994690630111071180060432533507452620623111041140969604302413528418108231015621954092167065428495273512565252221051886975186315780055077330689440412896955782139043646945546833561550840040494351578259168117857425237680658119071760891030240714830126317249896057074151481937783003184030741295191492132366946941616608704412113956422677526900241543526817570432971576635564415831107196038620052195897774946860338827052571301067975912485419640861441790956079936893212415484450682663692130075660182804864224034202383835129170957909313158050411769022585093547154223923723827754666787343786338400955472147252322771019933217367126931737185836699477793582318523276169636135535726419184130824181997599195370416288232387768131822922809694466848512848815670197405615431409662514878541849758848696378985950835715587124950248631089112032056767557846236561703113598875425871080426587946048716332344290464412489421181562409145023420182774385151927923342478509654267677819223883289450263706087648338993895573973576596389711843777660829448170637622787897920136137149435369187733186760023062007587643595288723698297556342436415132052873044966915254155629822068791761404015719852033581985406683542211807449334048352320991026463843809733164192108049229202888727364368008938385116944587548477029995277013617059687429115062070729848691321305353963375693060959697505389245513704223911744269869730799395235958914933144045074388490940917095357414320950837428506261267873629458907582857881552264325299871535590294898894014902920240008943658935972355049951081876809059730896536063241723158243535400152018306505631897698098884410041759522187897490531625951494991210370890270505903952123870757962787000867248719284726234625176169068170070782051498341638306601661051399534332340462078004851506141667693809738958418864390139969297713910556564362484683717550996245845646321933668303813137084271562074593571806279568152925355322765166238208408882985426988283980277963840105551866573827705225793464550181177151635803009784491151401364671585212297945437948787551729527191341066612103779054371608481208849451248210073366135675072826809068146721970921258698414806577625207090383050102335300933097143632703432874702186206146971728910804305045212570157575782818498369256371826613120230539372836684846628032626246452173570680634894778595625158877059178785913032505227858232544298737453371127631419490612200641239515748695393615750934756095378453462780214191924237577153394023332580891696038403833148915370350233082131000325334770797066948517521866010151986765765351288083468609005392618699585311868311963483633805959216028292996131964013371954661443702832901438712827805257805820353296791847847901982761643650493043505696170228236906270086407494227647495103287562029782907325494398607578354345271608501583485391649843364784735121329523673223483508315371401535235884626775860966209514606376296053709207660670602444143463333842094980971905954699037426681432006712832598173327897195409727107648834605978438034240546727821873532888379208964230722089172375535725735824349308600900575592694673897168719426410008414943561371150370763532119122658401458897130159306576330389444978783952728002015698905682649921553603400049904767884520569276162493568283462560902195907870937333625044855351816931042944846618631340389205221284134426655892133886595057697384564971493006353218688158579838974178245831681701036436955971358608323818169306725756097289484981280145219969561060967361124569445877962658086299504952629794190576080816727464879204515922200453544697767179060481528071980474309952249179759394916747159459759605490989669449483995547990183412233678074034500695910877205272859951769989441010348760498999476660653358093510487843957335612219904573018300218395302272346996163003915518953412907291601109275510756039474886368150743804891503431636499017063111464728673403416163824405937735604566734520447000491913330685472175213091815248136183402029858769557672912633291290851974873255013425630185527245278089892214908811929477099174448304884189344039223145054419941459805237873736143089165802316742487466266354615903134740436226305847495865971485039478836303370005605166466297098262547693154438082781439571692802961906734071134074430788226824875304862499069893117715104436998629510818505559184134170572767785351761942549908474694684372038204565430306500208395032887469144063594766594512907735148174355368588917691695171214856734072535423101038457767655008771175643121835723614461789144023812244279527689274048913330293152848172572468377523700935574761659916812478860466877121129709823938092936282484727231955298794386950508924230231886197397097969997252038840299626081632211532333351998245329462870205411580934997205568749232739237002191889301558915894202169156325488415064160650404335911347671565248862253626819683404149770545586312687022217698728048589240369589087701345477782472418877914410949936403390680539454320342603525275327979614721891801582388455852207567332729751189914741396492925063055198263647598155529973903344436540846502793479924034463708236908819667017268919086011151629950676080867580343171276702238810182872796472874363221671946451029150410874515083356111372139680438134009411891570586983829908748701007088426851024950497122587542700036025714335272393235899314080535109437420194140638720751763664230581100451355827354169012113041281037298518009700059128405486715012907807334495721945872955589211301716692507389560899249625403033577498644610740378031746418469681837398233676479574415555662757438338123171265831510747599246055112364196384531050305104927298851278577819063608409884449638734969532739016158739668836997632615217854342028470920165656146792784359494905070284905883300500825679009803660196464607266515583264884098987845256515522664403759112135519901517718787398314787139716307066532230524330376838270119613737532213693806643868139950500408348475051050654586295587928365244889602854550165429939674428630796539954973525206737158267014572923729697086488340420676111765333121701960601648860961130944670710382887077584681456530806939685323040374567982215708936927609241081632931213102201989862005059002167748567837502457616676453196652146456869509154934166057813921252507919547365099831893814922583833100668443345518643335861412921322744009692103520932521208644251667563917582781718141908242869883706765425791053972632507358043045228764059424642751891777156907912099985148746816893773208297935196888702326981132099651149592712010057904785923408659856454906131916290735552325413661427435332444704667454993418360625477421108856766710540192554119814279455211071587768335596056467714924442627283758357491206131445764195988972356294641323641708160756179994263491001995727490270602950171362782291805411915021446893370013664840351271994032466981423301555022982847501303125342808671235957611785918515762418004406329138031435242964071783823545014865055512360128679002694644507448328580997620157093200941217757761677352255891916945698488428633698322361397951050398407162117974375618401788189047819672041907489503586800469874045143433258727278803323897766804522857173626168374954411517618215774112013819895747280035660480291518333071800910872646945179448932439195558319942856304533662216781047001285858551169187089397322104243955267274675558591973199288182101899761962318629171872262664623188164321598273422781018103393824587823499365840245020642023169292374127793717481627537009060117585168609271718590673411653555379274735784023528905102085452547215087408050168418839782775397996453411313978991780856895509172232646129722269210702852868293384189602397601559437315992117681387406363249520352365026143739023562505744524973482796690210313222009929052539817942895214645765040201669621502813642741253739846141894193532456526875253648065555087938196719007747643265094780747281212654562450420641191325500757270033627840155590025125749484635581219803451243141892312063579474056851275888667751971398810929724738908721515272066175697457918438146060217453711463551290721038892335655351183898077476227787056490921842912064067123874579111459571138963603099703852051818909609205858394258884479814001211892207952560037703123224807936497439973077048256455118813885607553438263187576347431693138830923524479904875817891134651424728317314790296860992126360361337140476739090086317866010539445677888131684541801433326200690846966474365716259670328491437465718682506008823317146032478730062280942549960606757075144030272677497917766165990819302200343124361405379469486044498156532058490057480306742751723884819058671137551244695070803312630871952361473087360513685906213397782836449912154557765906729822130001612435543332305538840711703249121336442645522994220952560802788914235652275137589399163871288904395551819075194238894145307209543240017860133502081390075387715163052419757792306545603425342820116993560658092222466837375952657477173875483036011484049911406796938738257028491409641918489507492320618128599370718339809554852140371673349760212165250120844389054908532396834940843207431171739836240997989953040197685444894191771943450475369648520453566434250373035420791454938230459204450158324391609551581202081716235606782490052741096771002227105883633685399152718946955385193939851274832517830797938488306009493485063962959604824363860195149184169947850278181964726025234431664362937857516943613538563221832974995303538389286282861015254633947319513049706782475776692774520014333244333670818201572347263886627091196873972767059430771012742343406907576096120088685499655331552361504604502375367648897993764587358263498430265666744978084297630011894716343106743846896989543920582838582735107086471813281569393134815997714969530175919548934496541227500436310282558193674751638815926581123259694903591732122729847354912592525552833410417762217619545313904215445991404414502223768464808344741579541149291105577579778519096545253978447142994598927663030928918098412934062967591283586574099778156731654018012580067135344270689717097818323871426944861903778756750474207537428112250275095954352789710557617434967723356372590102872584780096507191649125611212118313600293450508706380308078441677630807523598552985789270204992200213338841716006567437342924062455891924062534022864061959723528103377184278404100696200688114596128920894340629726934332048237119176388676581626498139421829437804058316225950118330210277873721012268776176378909832366386913643533622394851009691339513063094122234612282587930534872680669380833082582491491332377605882806349747410679367319988965271507249483631560923885557833254958907391461813945346273014588628165515715290474832499197079943368057695456693916086575980660711228369009043507317440131302615249127042975086909810238039087760353869515384552722044215719771920399832551803189433195164023759171840475968700537301617724071741360780343887547473497666885183345184255707632458700585306530898462899646498295695569748653920670234170866639296106349877925168927497093377358545520022629219118292172378398111998612110565937423235787389216185926482078979427622383709678506396487394808112461074854998301736476228342283785894843245904736722849693824584136443732187738845680296740216299595745144312712934885738030282192228348730957076505355495341353449779256526734254537409109674404250644112091333102028492698697458103599528174004614697346439056376948684600254109961056118018815394074088973357063772791362489681925167214528716485450660454055725163765632689301907622298396936454958969079478356972765320438374338924795108046002169310861805704013554051736744680890496053515374282194173458718781580644864533051303580804459965638819682006140849208435653940803707823253157507824223426760226306594536228815524160959466171967706583833948368245428829451968325822054888198053779360078210594666841501396166764870494656901213141012043275521268263279222009839542443876689031734615883286148716940536942731656750207408950605411930624422723360444158035817715640382629446537918922534865661654495390346579371979468993617302480650046313723335506485190470802208492320761753586060294319930331910132969158841041899468766890913742023068649182294543546500078788040701035325659862032650486406149660204712939214369841248417761652189678356355934875052147826508848959041619160502868823562319046348334255304577091080466632384038705369640837252050236082917612798970377570848335584106083990359369132993735973355611636521504603022177066191381691317833094793195100128693835684256093381072800108027991884616773518227605295261346120282868197299725306538135052506062242030015047597562500874557885022988529135280148183707119398315091304342181210929163087344593310997579377388094383436140258870029509619887249644843457988167027542611157196197684954988716090980182947926188978975617613470350826578642905620251254818693419715551999971520369687218674646342711240320766530833163207534007007844752029156263165416575739442775527160107209880471616488848142088438436730804320590415208077593405151271935494622436473654043846722840448002674855779929210351486082982178622339148289907490896000100673545468682382626056226427522926977393814890442851997005310311492860462185987221999033972249823538470603366850012255702123739183583485185470232968618948753578681117134398706050491807627810911445196255809533903618256843955210549670193170544311317688701837460130436271692283622227438749119040670325716517121701688821583620459664063330933135536394046237270167369506300944244308716359058876348762232748215679269299948448312617655705923260884212184979305755771394579755978093028590261770942725979431252516116713787114237930018410112647778742839451860469669138842516791396496666499983476858560722895003070374189083882351748143586280219275705932902237470039915425787873039515608780512479931277958283123397917433665564613439490122770905752933379256040221802106972842765612431000315434551429667073397024007222372185690505726893862355189198216160698248225154276474865943819752115450901998165344432497285493848753628946916391062478013150367797691577882799023982733727354825421276547629699937823995925791804345671313092927010774202125889667111373400682193673244278576067335242828242843980402715636160877129365056251190444216053797457248727769692609467966670792743533640828164520742561939405282164522902942001929966934023440806179027127920798704131768820695546334884233079392619199409880584240672300010865505034470502813800971658592872575390837980889694927836913798416611866938717868180275283260153982131642627345991876056342161530699780041922570933169347502808500771619435838659109462908738599324287758563003648329206182409986945403432993365405385900586105214680094550968798757954697955429313791212056594217372126189401240867970051394256189519972100234920312332454330964547178594719946867119724131327897767580252495945808729389956261992742039801576421676052454921574569703878638969953533618181607738061257360190663378511414931466774689892704778896306792844928864241471557243150477395217779471966411458715351294378228703829307564210012241432945731271633780942099143847345263198413505857267115483356283441678980544048988869840315203873112570945130719702778723037667433531236855958989752335357355570378138863863497016781571075889556626182755470386642824388227131106664477140104284864307952310191616185952798870298753991518512956372681202596798574950554166019371696598316501838827674238370339844274875184606279696408576614584467305220136902246671327918937914121531359095304624724127068192381101883339601996694808941501377528552795547360799464572323614444581244951108493912899870500429039842269615312026530821113467066651654523222383104171622791942251041263908960011506373689495427829350348409233088393539423792753293704778717473018435910858025283658444338957480720554094563316373541983857134221380416624105953836404750482862970559609765102313635227152108138543718323901659991819139483720121062454402475900729903003979587192379450977204750749801629463690003334423287929093757194981906724975296157112372143643348586899255566675243475762093015114783878466802783517786716789404433733234405472544161823295070014819584724363620593871481729909743672158522392658751787346418887712543301197911158821308636599098630295350850559529354612343827703096858142721130045056165258510453223007078098184240637959456283217010060506081545465907330862698820282468391261746855920803727902577180103035291783282547988612203272504633591031302344790461937577712890488190016330959476234893510970029355396728825428277761636484641975779722594967905568452892679912454535697409140850113692425438685993823384452852891841007988729782790254407929529646971505260911327657638771030897894069753447430736341875442354488760043166855982997340717830259392993289339913622276436987143232035948484526961389396684563641011216252335915795285087868664382833061831079386738099422747413683642783011326357000569377756123073481667616274985402659235730115803141945160888548730156772685393846887629475256568195400434899393477957731509061002502077445850879096444180915269142955167198903104664222627916709495181559468768312331650942039297410287482304822736219414775990135660118474200228860072281202288488674948124079381342335842024094049000165769942352330264945748619611301561608175651231792633020415856182418636958248839938400534065252975878088856293483298103351579764393152695480004695282835396310962935994219896920435549621577819856221961866419964426672092512861679526962188989219314752663872102830949190057193743968348564964748647493981231506828369956161743170542729828919977855899900178897069931899408847283650533253576761462036013442478454253073369699166666583431895616863536056446931459049499591517535489374693210770928447662436915364892875618145071203289226425703744405154740474427310435300018700794056256692986569782757149947759358248040344738618935580347183298419880244748464844134675183973686652361349299825761829932405189022380127719012914461774708398107869338705950458332308625553390297932547224513662272782642569383358338659806627952164138044180062370228009359760985746302977193179265172893263953768896204847112046034487296325849983554515420179699442304022670076130543328865267678289843863365148844644429534821932570466885525145333285951721283680044524105351596126916632093018266573149972967305540423462119343512383686976027206450311976008503278971495604327949994455078674435659926515939938060634743101714599872642966715074004874526565671340925549932475748378381841508846022416232199147193134011278005907112064719040952416681335694214663715241232166589537653558980953799078912168852548917298682995109206183751032106010144095168406721062628452982574227580373251253502256898078902799950475906129181478034839381255856040940288285226016861916562060266941509028735931850246073314991968883902759792502312677480515244896832381848651681855944197544934478729029424005280590917799799408133360837504657450053903261266618265778096554845507591668145411515349211424579300108855963996820457037041264079774816619203890867008726040511704762333022926082321465574385904771158487247006509081834827659962429369099734427301496028432016942863927234081708072274307972732184411741028561296679027315053969675286381884638492983778698129841621657722968468643084973834166604689608546833769382618764073009410949494578384966832328495254498254553981052317147947101381407364068923377163586456546397646071151367683005228099244316510519442541299609607165933202376525473117045625210340104725738611918043381565429679767628166170552128608687007063567996799845394274036307780725022179083914302662503565415198687334088531295177964055750370427928530204854990213678148842095157883560948428539297320738707946199892095170795206475003091048566541502498177030014134949784242086697325280521963571648388611317677239124756622035108019931337079672778001492073199618843923429432639944280032331272056545870205850576220773415776344230443232179714704704119640846482867998427797256527815414736577037551309642576034053321142074562776093794417985465576471382167777462427577180981961581646737828993638950537708357418581053154398169629612053158812570450166999053121536646855815362471123634418831781987231085593202540571391574479266334358201186031234621424872877443908973554498546325125345337055349851250940522216950681164858358815949487817538781408319318103853649099094658740806480179091787155953382077439745340241966158337039402238998072708547017230075928386959534758209309537140166006106722342702804237478371161648594625815330598400593980098078785769819285360051831539186520619163713078095740980745633522666552183396847285545358308519497377602319414632374956472001482029183614450480313837263203650542064187793040453356947947776636999389517469886320310985553220642158577718601566245145738321510941181390024553720365630207034256367872950995376684794278679047209028079434542186926254486476750261368405229183579545156019975442760475734585763908265375549874675640545966728869672732618630543557217912222918423603088537030347666420816607339187591782605305358918141563225448889030685413447479086311077544005350210780214919915686605061413083303102277379792058559520170354573713744169101473741695675023011936567531235242501765086502110354126590048217350146589573316211093017483513964774686423914403799236043342979618277533663246855776775217983938132622176130422763159706090602065031788535408700921279709766486198532205409003208900113485121413444110205107733910648011250370917667579278275171177947080520806256455088766697170388839087741914589831470744230109270197632902058410886009410989353063617115695393556150540172989097706716390274100055203983484716125424525413676791241331456929348884530721355964465282064572198123448722291505486588367977230286268513851768349989408883468416889232206287319109853456164331929607853250503050263348187117716840508573707983496037186246970487996815811716503256061773342399264446822359480024843944930923738953752950227215091256222280135159401446966323393234953374493215751526185859928373846534758129827005967447432567052570132517918167777969252819511519789529189571963164448482474226896459690955851528295260218745564354029244881815474584775824833450745822132573088911143520867903762962942894514816770461769309962404017851831569470031336778985562314942883816312947858155034662054340112487054875150893752716908409913516759674025882449386453076257034375021965570003237303300577912911084459600471851880177759440899029973433234780822180043722016606661726937651370496471935940854620343791750862917123865325690073779909783712825264178590839683052391823818992169982768940634140529522928898414175793618505027554176057742415509367093897421083840356663025469576240554624443909874099107409238537354446397251486212349482926010148490951991578004150392945560643309206581808274724286466355844937514723017332119095020998071324067484392009458898513165346755114578257105366588648612476901778844479290487266466195839103835262416355742111000984892524081085386564148376862489940859399632063866054888009422031353240043456358249206704886892573489875096604686225229161368935051809233774073729461381025958596285427774901548235780666296310351990442720341507649825788079241028175048210559299809432249242676642776521464209443256714080331228276793503247983075910415110793747968803254259459302853178295350282734911624970235334326091053751792864936312739013464146770008551591721197790310309183268266306529381447503758548464188254840319747072134719305956885947985672315370834624015463940215514493321942091815399810152477694350493268205664615902118049314571913547353869934192613786850793595416895824331647698980925531788626055921820362367920383515782112871222500165232541179404848002985609003886324911309639618956426004788734796307401314519356132349739877808321694919093473923842991973647336087984897840306500824368950756920415484522620305352851884415772778272478867389200103271940484751042303174696713744775236984889009957415509538700982036060734534632067706224809229835332918901873318304558934757112013351766339837963004812255146880132489011243450630102913467739910058970891694406178423685920571371012206403271006287758104148341103496847130379369072097997080256311913433289883111143108802057452055485332619391822388645327590418118902193862034432982226537724773803452441999581697005253859362017255751578715515213489027158662561933753244731256480653045108424743762140013066107078386278950841799588115263390339859768142615764187056264883846313035857004592301639917937850496996598646551810823537275337976754183402714553501344221636742513216571573596918250899893528154841483705361621825126246818112738637179274042181271862500016099851814626265204717117430781856549771989410812156158975206748290369622582927998322915507449388388346927696110150433243283314339449186689811615343966763766882108814452977639197454317382095927759726512244780561018202584158187780966659861882063145284336498640949982539959460544467447429897864908495166563375149948125251666688169521944005094310322715196668522476558168329937535818830849129846010666769107969978784561519673286941602589859990780422380199072988555271493757354858326259107952318988622117462493054677402137289493481101865654194126122877171387524540514490194949520749943677428599578918825635061794689447364446324531677997029671192562858537802679383027664572528933857044784994917000416014817032396926332230388090390675432833651527879825791938575053282469814418756363498216814895050909872487116598509750603019586099986802276992195317059106238743881200322203022861832109466190025634174390810979984493996845718083365743211753782156726231227794575128057872157519693680699149274623879302372697678967212736175155681218954237157804521886269754722860114270306459268973764313134048258662722741293376297291593505888743222493482932416927686198891132915804611202423795595080967303945748185868199296483134261189855071792839720514992653517409263400657103772390869541385072283072701261507245426840910589530038734481493588132531895193497944129555836939640330695184889445007549510697602554196376652882515924381161653242416870443748890014797628625616417005340208846300846331549696474952703350835955780539167857226620647047258930658584533464106341124847169701575575817979770958221257151845582389505171942833062317086624074173425714292541688755016529390469045908819169984448731263833717939342628184150499471814567627626881876784663883361298892736347653609852324876282845982639654604082761795309076075008133169590413326929560271254969404291572379570531883061000574206770674670818757587577921521463140675199003878668721156152657218901883151870771878407940742324303991684240430808440400988073468001215515264628478277508948422475760099978153882944093223012809992478927156062704666665175547724896111845762592192268676785951070127087226413900934255882514879989415703905709191344065930891539471474662016595938509244993175064468773753554651249898825103849436620020877860444338099962732274367186899555715432990603540071906595748477603693228380518069620071474253935344957197225989486078121999831652459945643196311614188655113178669440272074035162062315654919060246440293456101862469468992629460999228194590199812622226479113192171350811961166933309060758536899347410993871777187414362120882203653447388479136843626721036557366707649496691920404797482101432166075451270405093811840852838392004446333888090365036030116453397942351538277068464687363544893248616484934379254945526075845389692212283899332895670469159085724143419140954649050536962491583155144616154458726827417316845948335162274121620470120412955734803000407282708744894931872701327631467940578526392738861572666166772016976831822863458504449862609986080737613811987752973934490533477320892735344569079967049208743030353222976981124156803073114858350965345801363010649281238267179075898246274028145690484586748223925281488145955661640965977936841372471592263339894926625149560812956453670371596001845487295289418108446672722932475586606382039164533586438836764110811517538672387110843966473663190461304834156529247040800855705781417258900772012813164078009349297767418898895719688570518163402829881269744497690239101098124256479620827416875976873813476912174370057392645342579132048742438964021673858257533939878085408356145856942292695243112632402485545761626333606591631620074148309043103944339297711768903384508481049013768232009520788673039670159942396026718541957298799801257848941453082569655573996360566706294903351100042736247634494688982726700579979564107899143156522682881806277532147276297720368430385432691409269788153752463869779954912344940513019534851253861973844984978686650355033023930051843419654037217894275241621541796354158806491159876809965871058897350789072625293327171048495959987995549329522192390248297030294744706996755189893996379461534077552294766525345806016942203675436782641497708012971968713679751189139500661630180464286166196240251908564127610102135748029259686569938900496239445990226896399642619311751046426064059379199208376551218421354789229000458043929343244649541762802966554049055298418455790220523376484796144364375079520904764821111661046661944449478507174895548825465241091427410745703468205859940674063993243922288070140173511623257032084344210862276831020984751143822932418869963525263939776097816728389826881668143162285031370034312716217225979759109747065533165494669792373933299239107128133053367549664300862566492876741187757390577841907816466747234920021393680224913966979131038807216553138828937794825084234053301273649803940356879351234020759027658250524420409917572743741276078165178626002374143764781044049300168765056774004465993465575913517869579900249752812884327088688981198428520994626863679859002219083948774326025041607853759406492714583318684538248258470929261153023413366563258104372847543237489045309721408945391476863303700321089482241433203486457906940673482000862652887962553126771316568905247351093665865224145842495770764661524040420445868371434663668552915412337721312108497916938688122270961627354273518722527575238141680701565769887504636103573357041098001104742883571461879779671332241770545170287309627139378376209537606984044170486150202002570413667564364800741178410067156618701880148408606488445016583083081656339559668213036712003436408481988840637232906370441932754503576074240617534717957327769895501661803010355859824173902246790712244100910108500212144666985495240245506165054571595034342265712548644467945110645048319600541019077414705449363804488717083134586009896466512345935548357202331377329326213534729409618164287246743147238339760065992403120162996456571681916647922282046853008268399139659874580596404749708368215559819804532588526990700289637589043655560983920958320307063813807376694314959303447366691446735300717780694684591066901472209777067239003922905545574652122200291451383852488867090369116793786548604731597042700829420653056781024177223765237029660693630030598415500945280096112455439667873140916306182404198394542817836604514545059997221724179051425581849751913634377424462041256522157075143753763777839267119442962956622022775624311984588633437117379920056903519141658597449234581830451521929902720870045506528655123479501279633896232410132518100031120499421094324060666288983431195870322467583237411764469228743364569269805824052544472480206702114983219262582682487466881983903087424815088941275106985401190795045494801405240457934153086898301976160114599674383868484540649279618210985937386032022754961379122747817575705536735143475697497441419134103192763610595201321050543471868979156289657731195137488845632523475819139930903552470038005081690101580803927007250440960514531913586487982464208393991901461418678001386586407407425288997218056008192373557572816404907718472344679747965738124831725097716180546761755557539111713661480007925950463045674517287632127937366832786801985594195654478398350642354702477460435103922163712743182318750965313213758136352188866445900753877552900869828898022284743187940934157290135491314080832828578379657314851176474955913854506145850923468606721017643077226892013160269007057401418512782265422541431139854848629483708907649799080662481375031339585803141922503030471165817795444358855359196456822670034593101687876373634667363290138722668771660792593401674849774357121160015916968145176668316322006377015613339241677884147476521384677253758298038315695613733223479361968289339119785494665041374373537754449567053675784719962808396868934175935502122406480312596430089050461294629316816934145253053605630983741142833097207333429510230656662761180489961137555972550703579204336229342521550058653125824645490324333898944485900811357478373801584686870097859682899594412746063121684712578332727529691430760143275096562424093535442157968537125716114235857379975775316365937260378333941512312529982416550397701278147926479945759886905734369205244804658071746675332991624948469590803436186688570263319469173482829206535234411477092791343991230572578997823915729779837475464359855082068539134556338224460975788760435294594838080250280391680037894280916546527896319729707375445246873601838766120000084564722152069212080665948078734757581192536811383359626811487503446103045918192646453573327760158188690021453020662860346449124862333112851308766637480171223354644326310064470303074816914556743785835993249011640482652873072882183090147329157289145961046749014345634997924048217338706719160266324007203719991534170109120890957850196933799393803344191750507535676507443502470190020098942955719305427104077488838999637098920774614157444208326019741445577867967399265227084703243695247131909015420966066276194714490291149838071280961183636640594685299707961100762832491305769114251031627728677711170955950383612279345397981066263395136907680640563111922089983229835240391615867444249163485379836255515298575203288336525508776900188969459692082717881175043646648510391887177822605339267460500470659636767588259294656782146293904169254689035148807609649343849067651747239425521926096291635904216808584522580137465787316830437112750160797985922897694914769481664877769043309115894696869749737957452062836874695126239246595840967919251110784641352994947508694735901285400611527838722286535063820120086759764899299013606633481603230096255481724725654976535354037246040578416521438447602067836577535156575547821121595069495791538700407457185002036201705599385145233166259124931513363550583428972070124662404900387610161463898839502639861667663364030039565179307678189267024439479111997741160995354627233588274734367265733697986150980868133004880739928757391886687347811937755299636414067917366512571131002580618980900954933945848974404761639204998364744743330109697323767132513281306490961121452134670570481096073499202942240698405061391408665809477988595025717984840801305903233683277119056573691823406061476219648308842717523016542716451942937398392113628463200818527573275185221641628707788384571981852342028515446558382031821696975080860775153975934144629457921179515349039345884963295722060042652092092447614889003940987926848182275057606730976393592793522949283815054823923981565392226302144229659237940429436012474124588964223719018086187045925009019065764631926363708103531829463550816849673336366724882914170657654814809750711080237590964040959115892654438207112072042473171367963880108012431347603126634610893419310813173496900296571385300118255555587070318917985629443231115470915713446602698799725284038964307607013158756723624929335064902490638801106595410777948861576751940434528530893993115218867324602834013108045926955413430474429905101417874967585521856794036816858436167470500186549219604445825686060152253346240680975629265050047273821173165167208083600966490045339208296108929590685043868279052245605138034584624296439332417555950046252063396220501139626125067700819089324331073974995107739354358095895624235310034389416534603245599884684422974891040717170267685850852146765478591606055965413451476697243080279469946835843560563778970345846310197996757186901430712512634168046515791226920763444663188098343501158710095167447519194853989200107639150515153694294003583610680779497817162499292130273544293403287149033426145184724304237037168746271792800074343861475633952901332010513047777130450947599964111675687110266030140102014033762018638644075750789969529460017617555431518743104202839434012033332819185557291756326832912483555072359187753451147060304582255943612532132339848418853948411830289405507289344943106769649146610158200635248062729631684079896892093935471028741091027503226111484211969839696890061666245468155262083233664000439296210223997934042731434825645716779462531570465054666856439418325310213610929103958426543496812817396784602942094786395985155915982850610464818850232845383971586765719890781967311758298316091710804237210259286245115202505021282912463347236930441095769875127400364833909628829655035927620603468415793780020911901678556897275310263962360843507535489180421780742332095207503613164162623651067445602461177604437430196362859570036019425454798887729021372256195934887915122103088077503935171238370216091139992404533600594627078460222809276777783356069367045251852524458562532882654820263809664057369779252103241345670406632984235286072797878840575442151399350013479360478930331605334049871338121549524295209370470519517250045414633557950476941322085174187036525982919429109312398829047611356127473739114505260174764192880920081928313373435510216892018909368145973350868408723886091805163165679633054477816871754373915238127850891351571448282212389986872283456308979216724244129497211079946653615103244504980883773194438987417966864856322638117967282061303369536230819384215866646388320294923924809520013907587333067499656741214417655057633486730291167130153267388898609356502833605307186241183423183567362334346724043238947009116389047926751462207061500739034801763430366628433938422183181013513365823516262476725809478650081816917538776991354735613864176733157250976023881373620371035799023582996961140409185045940362558637305227875457983680572729199306220850453268245008895246247921866897744839146175345596581246390268436135701528430422799118731123880123900727248195163687533676943089323640726843782050932589961763027047905785652190092335732770913714641968261383688266481605885246849311866359468699281388033406439743447822805367024340377022363748376357847827381792714550327981531295407169068515734701948483477530370355358846597991848101303011360125023624325539962510328558452770323036583338985034323767898120012964712548591493134613242552259247268408847956256140685483867997764070097918769104656622658091473603680860135758561724440755708077548378826225241010502459623728616468417764203010967030426953670597251876269322669921619014915687945749752517303134065552489471745001248463723351027256101640989132634974091428227446475311227180576003273293006929770902412628762284205641647214717292049604929939791775885658546365698243744995130128902772409890449024602001454766282195791566518710117839294161825469513725662358574856679272909304298282093754111617645958950071493127919514420581624505314190299372529814573689275247633108263942438718467784336324256866862308239129868909138351037873315067265901148517707007306024964984022276861952633342996519140136324325945607464373724388289593799640754700126358407492660537118055152006640360467008126227267238776931164870084988856298913764720555146420334381823949285834641508546539436934164879879801162228167230551909626081669504144688740612418860181009588447925501982677728213533975498543207001941508274372249219532961156669794951912911948948254110797503553580604836165048463580326864048182845076711600654024752367576694110308671724559643111110212422236016768219994953113121560436329807164476935025625880669958286691454903369065092682172426656255671046674168897265910853709703391369242053032060870014006149282256436974927945028352476076717598077189846668111961431200840569807785114202509695413382595382699995277525210509667868666380389921712556024776061147340025214674093486124039194006187062046883540112923681393677695501061879973618330700722787422364277529237735514341365469948961491493294717216658116614729241054674332411255112701221923262195327145230945499784107853974696814047907394461584632350184737048501550396665895867076463174293064331808719457972007192883947802663272258951006360412909831403449713873957843802095972263134269713125218676511644772502700356376912480881995075807968797579307371610738267561465636253288012294430811073221928988759733210867899441286574553001278620282150968639205998084755156207381002190970632799233782426455332529631383920142897622879950753325551154754955254802060628099236806221101885146129301334818216995557893049246544593541424235849400212512180743818825236299399432622394171841927036394109475436389660603661436468751441799101277283192784544787370986917623874023664606529854933484792183730125707188086836771672347296138846311361596321643315923731103939012246731787233920248714346221419013699896054385256034581864844511977634187416625900243966847406084202412656426695833291108355418795719905389926370572224001664028202961692443519687813571138376344350353462062679191660856523999873532361588151571611907638674012276564833592807665341622410325005618520135965249516736390015227038806723446306440329149180935836816953659056488023166720094442655215770120926228886354105483571745713969368249718414012445481285777116361527056559782543203150210505146878709718604404202704936021852537228251851458856360021813643822375379341522321810170547854901635822107553462322302243197346645898037395828811135794386203482296460893343277813927494684863355657307947155688214109714777940758236515578535981871665941854818287588325843141084042908360987787013477270675032062791387234811490268612415407243162425133666101606064943581111726408781432088311200215291609802643590524586397930742271817899637981061886893137116033641802493761930444515154270842135220476881906874972112989529461167863727191434153619320839148272600937517337640612789917913831367844164857507978568838432143535716731161222672318846121380929913096892687151258817634986313101297770133724661115247662897399838751467066781689209304717664501186431335592233107480495687259859811152252741944242388550841604339353082013636343418586204840933585266439595033690901778712864018074694421022142722864739951336837455802816997092354142111059252599867511956183120429333120182450117674730479465237312813064569178035979614068483063815060146909324670042348764020174868353349417108147854640953452988695850363114213434554982564884085207256498542359972688294908653649238884435869253407439296117272453854846115253308752363192969973024470014840276272151697866362233385840922299429518061186245144521879336716890713210349015621495773633626001981064558044749851556077424019437489872639092810182773136117566900137839121636265864770669581811171909023424353879882364056925157996874212350688082765191567480437992523620235996642418976037620356371531356353458021645416509864341807409697393831159879109368280143793480553008688506923821898274664274510940113113140836810407727478662980385850936815709920787459085608086106299037026346629016277820391490548832945471948525597477044542142099535909525768569690346836370695028623775764511927891705997854718771693678643211008194370620841028489531756651439778184741160910400894771473677325993117519504407601798377078598208503336602692825346024998976176656520669885757104753835421931268471374023409503626588957205437071807808229203681935363843814764644796790576921658646873296227418872720384855058959166466989852579097153654227022404457068234768027579531894962633925234388961328961358496932927940840556982168371669003353706742694630154792991279689339989608810138319767233613789205244770756011870176110837763182849490990196444391713879193477167722888534830799413715088594202754420567948566934574373336963083395823296028997018844784509487763238516907039119909039906100146798381025408004418069365685912477686720093780346320301714405339148249046797704971345451389917280909070846661858283690300599622796937045746746608221021721734567039210177852844454324869198321259956869033001952658965380175745324596210862712654163482034068746293942514185827348584938527094129667269927184613130337245892657547291837867907438090730967014167634488145161766208684290095513682370299615004781912229203392575649786179201472789769287990594714451249182166933559964639772975450269746400687542179217762022214064930684457485184064937761730333901190429303057810418448920622116474647511551273563134184846450908344605853433375307201339384072353378008659099197201678801584968677635569140966356015864777118108842030258883540124354216351656844314294980730440886518789631093625340750038031284657615022832828851881456269460223703584460905012663825073320115787826919721301660752185551936305305300000818826625973310788820373064333867589638771147316988644376631610641867203891769923901663736621290295129133991364391000963966545774171741860376814151927081976552017487539623632707938224742484026973955592589601210810650482824125648259345928785695111314653501772921440397381595796267034964360661390045156293417501603169418369503805808706039922462369334737428884487664797006069803640912854748033521955146607846842698280433157232654223558417649023099530767651299019346527501423984742400790428031769528134382557198479422934708218940520742765319237650547150154107136967148119176197898933809577848264840433352139858321492608025342029267335761528549657996662410226794299402037977206072865305823446079431512417534131484542070672964459082301956079821484728449937513895955563496215162874314749186696523598111663330059442739694630602728164028284765964838479723583243485082937670621387426646091799786111462583463768653273487649135455159633529728976064637855876750851379028852474940711845680042651537264449848811731173816485702139166658609946286648038915030822907541897222949994645762388613353161760657237815841282637395204802394092962682403049219755933709756402456044918213907956773691784337318619268359664768299676879645989053300441324972371165099392750182071830161478181754784505805253840864036905006706717849223296525179786246268041712832400051501070565022237600637402754340202691284956753861350538423707562425204781955199891602609265692795782336555829745015013606392839421116828107697324937470781019633013528415269301948389980144566932107827725645170389812836510734859873477520916816434702026549451553069953876287473504035995163606847138893074084132027736797413755081802173723826747175006001849529179394900982533149639983528854247522795905004944900939522064986755042765695429120362683092203770328357087914504894269423271206372900105067506339025166056919753277233596160608489783708220358565120920865245551122217770532786031908347225270504762180832848317295014539191843108347501131139154527947610121151597932184220625924436772465095073943937790528877369139058855766728883960256062651808460827103685334024995441982566674269646242217088376992720142653053880732382698575528588485517250188076130497026461113138596644279955691116032115985493824543477080561914871117278379989556612506354406032005256839186960109911357194284562200127043955584968347129142503570234111875396784474077586351872798159970869112025761786364818095938417928797104918380933168308310674005230647542279649740248861417857351774342779873696449001478753105673389742049788570788213795891888788981807827251114412989087229965679575940145511053882538452244826536400004744317071571392614523176283460118453991212947967058016619707774780752487950043401535815850503713398765513763243132519790301854559206130523672403936106822585071822758365523777231898982293162721374649011594258436805278870537007421866251875554572590936215776739118722612249935477829518082812897569850801596191131733743359503856718964307694272359613376835808827793056184562809767095476896886861389652938952117716405828108543367412796933483049104793707254767826587402244522923176003521285352440751842091875868177494120612106791873199533351136290155209234277579571444814148106650773303288185898169047494181692738640485621703933222313264108949736828024084749809843887334470587943841343940429536466630662695161745556043028092851245149905234588029753019495476185489374867878597002095436289377105970996328262832293487842453241824846944495836097467067602472579433560852916886279186783709766163151931865874725292154083992005955157880838820755870060953937377442057359291107568306134171771899807922809999082756586616680187161709648922548041672064688744734927784262857222392239770599467540601013186301539574607996153690349752101380949377125069327300331814835951596730979524286043348370965968856920476789854057410560609163047164001663684669761170544395314113736759579769526724595352037204120098610085922103650163278340618668024424041109843224411431625262848207274818490255098482136114692533736430817662746508108656452326286923924230610824354970832763704367209673948233698954165642834063374289582932471207295882090038092727433174953448084270884336974718225747815103248605057307276982028219644445455278071809417304918810110078346699982549513006323833019670722496938653803134344862774067508507583713403150827479836596339093090553935121737530316525281791696146150651254332854533866163642587657395508448927257152482405121419176530787301164893488362333816608433075382090240860853901032081704786512327360745592052812866962848099797242990016805585870878142376158475477850255077047499739979927212353879756882189396304072591924153389833784105118558553395449616501703387484705845445359060343390932794038618796111568992485843340269195277451104270741812508218240887605204110323152073835653972416162593655135236705945433351659643277405012042585740352208571838371719505660816319686971800605972257240173328025517578744819374161524709861609247684719417603681863836138968909218059974845487017854072417966572360947845591962884386826276063133298455214523345542753173780404512572080440419897053275182481863249365982864417225187211251279903863712417503465078898568859394981815384097295568128239334584072279477042919250797230765094395566650779760083538684335917327237449072107589904967762369597332769193738534525486114753624866132534328568466531416118013858665292557006265829909886287376009365990728320139870431627135914986723615528191704261141515640312353427281665459639517393780281236827994730235129379601663640920840709322477704646230281267615355852789261080649534569262820643863566551423625353877632189406368168594838640697229175901909283577446162219047181389096194605881276264760071119071296739336893549520678804513632925858783827206133863212143802710238834523412754406708515616175227440221627311960858177352211753311194368147491037067656211843107514223886256750780547940348203245276368145750994598545430816293505897314722802208389210023687367446404317782332451652252394414051585895312688319884448640084602113472956615169984071968714135061950500518015669513976581106784736537307458440328551020502213739673884275356052982382039603856488275923297463366509992707077681878861479037553744056005092210879775076667886179603735955085017775621064922625297287304691594160934766093447455714267251453420019333359612145009358420256447219142642561424991763388028217536659722912434528793757257649329652345110515549055272737232959767189050993442340565498369474011191454945837261022694516368502313468650260402908731380849771004675834208910174053690223561431605717278105299763260840476823542213017158431158623940915767632960442675725116516274491569942106736807335001948178746013897131040046268243380051762691249463853628458949946690812566343353510398952684673248179264060315505530125623455501066032466416491778207909668357473007512102100018460284993207568615018916452381912546682220581111852636330895899591914984141268431029748083208978148380767092801829550590661260630107701204832061015273412665353610181028984068468190104868398792914446141136558044910459198471903644816599578673840898803869624400867049143709426535549369910202117654163375716348795965774553479429124746968009566495604214365650585249222635270574845622129101939340384471584623196690680044585210923138704382543386256170321298944290212950730276557772535857882925217868784425015791378537574851783400917975940331547733540784602492898611425374003543695180859147029770493658133331268231833521418808072893333542851194337249406648728851778604131631622135519156835650904396210903337623148682268985345289721830039463407310076192605543421916735306575470204151615084258734259038457586127020911083622831210559418813213398343410236549173382808452298700493706557030651976736961534322786457286340441144930505657565879955312995620663434504415576588529173694967696052749477350245495588561747314893612983695779110980102890768647803354240808360405552075264051851804214698459465112020667832301019211454000217208769227908437180359245909347152639385081148061699303081909298660708645090709610139934126510779948958587307085243713254062124011984235918814555614549199541865849535364007737344227793133360561232750471344833416212551320103637501517484485953240155487148088930654096274499273745185166798318681337763075459420715234454148715593657204358205916047939309754690667473660462830236124619657037031498726164645848999268606343314216117746171165915239194844450139484339339345365514361596886479743081417390449717340186557422597891838630448237509356572161281997035620303670499831883038221142255335711098996581587160027772244920738072077493253628346610571162182069001915292954439056763657076809438523619273163273522584593893035056486966844909167179497470398573775627293363773408265553935291253536507160889616430006374959112341672526864971716482005846969853346345118226701583995968469382475202450524068361829106755246992878696097705691470778054793180261164621065378867032230237959152046984894390504297576630689186943289123828374380023445566368947115541858294479213450260740485551106347526275279399989380097502563281926000143854674677303333741739464171059307439627057542801800514087504316806758381739398310349032012114263570553421470037223299397905279677340088663543453353286072214242765454719596377446101418485645600268370651528406579163529520620431710558801716933747048886552814582768878323385152255582325991767689764155178164087160040963852432266597984245806156183723599907856907804788474900709080261233489932233303112393416072154609613848013060695722230283821877121848019281735216251659689216855142031274196197811317566830813994034608108048215236781871661578698557004848818835113095565471174520454629112506208408560909969576104773870218673694285445141170458482618107504804785409490169420346335397156500742936019114499105312795763097874385648818534953567919000067043626443033209048920960907042569539529005098817367337720482257350281730035355077898858101225903845442973178163990920521550669272186290222087937752259880185330895404691648889902683757380819001107124408797625338021611648043925610396779343600642607739971279364942615077850595691740910468201292607920700245497305798996300608733632637423276868642733822908066599287514664777176499568717082863607305336756051940909846365674191443202692854359255420663053101369822967157295669502786267272178603598289868940297359768750983763154998397989434422819823704334948156151041235903184973511558868270963813936628236650099278703953353955612014783510316686148567220216460441899053219912116025160934628849033102982319778762770796239549696815284477684345600093018214160043377408182195387566328201038057886443971090599002567735463186630347889222646300059293004787120660393705954023275567730057045009330129500981133715812752042321554380812543965543914909275621121475378253410387224349965486201378809828522731721034328949288389235647996298425828170023234727217240006344950862568843475196669311091940176460743511434212493374528894672530464366376209558572141037721025988390360343986443740454129875164472059183970066534874950482001465149651634781494820006055460959230387458726400815533839763329925439078770708059378986871214067600135206372987958644095712700962454758231571116006925919531378227319602401166211628095143480974112497717718853821680520616992296710350846130204430175772844251591806426520591151257282868622280755839435536624404455359346620778377079269794592251945874703537727668588151246184795974458657552254843322313171309848093234343486853789612764564255681211350450939924631166232122446113948460054001526824576744734642348117408450245466398217650572507268883342732077872595118393320085359728971907197114642812675038997758627195355819445010661651236089949976502783435439183593481420781153658765286131648599267698784381066296204627567397883007966813074662540061276796649138998268772220937758397824097183870246921730340813942236367897897278249015309546729618840340960028421700241391560836426833248267290212915651399024933298574247948209470501209380106536114695104380024826058661093144114453263403843324527681759308545946440886160680630779114109737128026119145169909688801317057302799218627420333166754660713574348460147215565301781087658351109077198034177413605068883429083478634047361117640471111062135828421027825005753236582893376333873306732023530238438998969231660101630485505264626147430801556608815914201634533959061569630868375959279065213726461852456398033778076093615663642497401727888689723005917641048141044437467718271004340811615825061822850667838225154891397498660982890386580173077427361047228765903018859995675228787215824173825224414821813970396520457191030554888692622556884620268535249837751620043822950967132249424460671693298674454565503511594075903978666425776131889023710051408425513055675495716624914082611466607196072997292419448305197588724807518932276380907107017763305573217693009810942964327351615501696606827147484757386854516310971105692418566873473006657572582514500124003087601200275957194367878094188480542034859495445379370448829013260863415849691516722243597557893283611721965768393963868318129133953784755252063068435403612748622041223555305819080699299201633871085960215812510297572512450798942465757806245464322222000041973449886910258535960423510614423938453302024319132326309603530351913419351375861553604011490425175755797191857228709492356391515745374525976817764123617531189499840557136837177399883678893714500114952930286083112575215526073312517286650008198412472911183919556204824266788552854175257007414162701131989933268311412684120281303096453530315551501497336426924316920926284649849726930567897455315495977565354079005197737212422486163535194030362477196373288834089672810647582344889720727549631354238363538452719974553844924050410342317610677956470402859535850643905102381625816253452804822734201601535464874518805178869121903112871996145177524559872152226225919511121744681945536320086680726636074011897960590056337890168373603026032254908685444701475534688299588172811044230816029505982105323400202052145557503742782944026171153028854982033077926557471908275577620048981383576658855443517515590225452627800801318786199167796229928726556388898569285678206599256487622425077490167950503497134335817566953928544346852323773823269834628058491002895280388940101354817054015541749236742982958088305075812745375007421657979190184314779341538713491538697716365374991928560430397891032874013298863170165099360216568555088133215092102835537531071085653647000427185594295370313651727047504713440789587450584976878302555113868859065290231937785937049144824098679619387367114763366973509090986360499978130040689599563479480022773610343274421457685927801671846417337332771972998404198140063311405892633022475260606814782039481145166890585528244092541029688363058152101498165183000841624313668042755564168620758890625339043014241493712878189343462120270139365542671697843697617933261188041478756587090115284197663589158553017734927999501150979671988806630996603534416963813041872126247405486635539867109525656447387229096352176447984712119277326755872609968769564496464769369586173175316203790389015341561598281997082666926944523193350349664226200436307252069644387264861349034045656730204907943124364963161620948144407888218772229111136716088684863051980581558293983313069329998262989170080803495183288795081461790920461829329668362228041733567996114445130341870869873590318420219195538294310104740627548448411676656432613342658151974871839653649454223572727203267087639908827597284080201415545930585285079772572216451854014604406581720341921828733796267029809889553854290081257708057324797766919060080130030859232285073048133564075001906655836510055427518919770400496160190378561189107736633749210781072088015788114572062323682136276928039765982913561311393335861747482510945076491475239091274985076766252731214644910393610332590228150333791602033080946248778542001695311748545399450660017737045904382097252352982035005580656164897011026774007596896047938117049225928941932007084606947222401386059495755344029304258955350449133795609922516658582799131751927079756099008484712391204864481218051532635346787641151905121594249087200539026458888464855344440933534928975611915721028644097232694220375728421292936461788507126464835241374267898498224403734660680076770981156136432382599342328645674724597020477540538786094794514839162992684483993662593548054036205715595254711785427610172298511862078626963752883629822246211832954325724676120865532934996625440720856509055463659901676477548139503140866106679893116175877019309279913120337388072167514137853428675001098568044167536798563801698680575265143433430515700760940992705448876037719229641873463940646848180940257587051521780712640820653994284285349945717170848297874241877933266190061934884002858282225679489910281751077395388945035385304378593116600852924311167407217104627895607734918005102353304312098161130597277885298714339858268531805400123866463453502499568198444598988513874032630601382106310342067702217650888477849428498738822026047978970457389416130035858138432700254629723288167342966767055204980347524909130233452195607193036202203500479258031558755796814461467190354449267651087126448046576007562225825878736674708165034994931600945723171956151900078499728143455041723305697963627016159932161878218585979815180232639965292450008215340675554697570335042885535356645209877343497739277292590010185422805208913354449688633762344615123937420185462004412802448566814452435467387550573218796438808245804890533722535673308331151529469504419087445977642221465537159968692588456240173604317797310405553922458733969958678240149998739663637309072483637821688838251443614548872482892146996444653472001912000364731198388684258889540836750256347786274365597796628840745017762148023205590860117774641380387191148624414475184674175359719447788606556709808744932467135394827827979396296222805799619129892904968331072711259040672719334213384877216777111403419506329836486979393602363257198480580322750661446436974894866746882895337641113443475032755428412146681266416535049849295832290607925094977233116655754766867754686304249040012259378128376000165934772482530940644430047369431879370213695903319874596976494506142762799659106268389373055447907699653421265069212749435053054638377310641048491091360741676629202198999201935468363727310357268389707170558487072883798852126315924917528699008542840570793643491569289888309374216321751287356419745493848882581138555902156225944207710814196070602099442024157422120059326680266938727547006230094295161516864116063300529598051330870306642126858875424315640038854367324492808613666282487788631799910381789782488883653149077711684291839470228753058444935138380648998131592748486240531923431583508387724099158813711808805418052677809389624982731022050147198395539063271898719910152663053233839636209276180090180346075082423155285663634099940456040139385016975777018194283683089886059359241383654568188088812076146324673339446504803737394217857356996518784523705274689611053474110725074349586485613452458120538586325719868401639701956019727972695602828305067964922052249481254072386707297556564618600640912598221503449291972239222107493522527607480413165266795462032083648349687215061632538887431460310780159465803413177686798236561790890348207249383314926405908443020301990698552884058862735325250604648291389833947784462394522265432476509645561876010597632687922905881841495430158714484813172137810030618112841308114792798116115204517583301571991886179861297240706499342941599515964855512541363386685292362230194523341027400664904609434455009696252820820982008594704047657784774051808141413314121357310797949508446243083272545231738621904879279550293386036859973227807850037581899607000018366304066263804125630119659269292879189128574145720445616963233225066840073912987721838140312574322116350843425176944858291321122325110016570104681306218808894995225425364091740936945916324433361924244016517246403389899426175166370257307070112930310789625791350857861691979424144551667081151653083384697279606803470018008593094924537292913729074164797132519914004929393388368542687008209962973921725613312323748713934544593623169323315072942444282572189244240624517136394189386491610772798641434853678410817858067022505080455483947280007604351949730602306457425217614276956780899274326985036859452510419165726635008680991559807040739217302729471086647949472117006452609906274234621816599897367772203013188007060200298247737086667181911992823065044388547888681973471991977577335663665275951236456785630900397534088382927689907944633926215902780910990294053542326690935020307258560380962341634405922544564309872222567264578328394367741814866667133954347038606946477454621932778349188774689340305820762316568788449138937774596882964225025517933261817771859874132588436413499597297004870348186295143056453338839518141188046716548952202669248312008586896403965039950094889531135852259304691398930430433810667439220520870601594104309032251157183159924631202505921020604946152324944914748270124181871201993941210325245290738395434246748295855295683915524175950460994009340202723446639119578983586651714197562283906709067772735617068278632488502138064443192122200949632229281632626454591723919842333220053964853642306938296012510238439171677586417505036255141125673532980377770570075484054593741554167039511643345386238287517753010550106023181740725272770319135927741633612753896043981189885520961660838106895192375637544304482956555507551622791075730380648746884638309715381796039972538414395040133826946384861351380745163776172699191138808693813900206982933127270030799034004072281143022946493256324238813067161088048695529924896107070850589065217707582205756910460345966893309461908133192958660804291089102653989138548370467651576987457564152563523129886593403525120021625899185412892162429031360299558973118625139253768010937924543834764116282880096258027029675173693942897073990173193270793609978768456716793426791502913868067950225298280985904248231659132616647680226175591710407959194766226072416347050611478430983190710730678541707920612037827194519766434676333438255627295073229042854152390038233044198284373393981284962275301776070248216906386770088688448668847130858926269216418861004054290311447777709111980455771488331839306586600213614561760878935655379768753550983810630920130311103206415190122962642195970734866124996237791513482048146832527483086502402665429748942261494504848276483746655303994276627962554453017662913036669121625495337632932938092806537095740166939320051786907266036989175790237145408637621082673097731863608851558794491144821571924274286712659304067252858421319783106071998648565053369931477848027099529476097277679263614099193069109076281112469651149675083503783066785634185988174063968112439637171569546023602982575589925801514195135535589916535926901631355710488131334044103191728675212074212044537843442063099040846974613618096785526077404606253103348236988623345390331350371208846446395978647500307704090202876179557476783972115969630364953603974778871176598641637076425086767079741080034995226587759424777290933924358608016311729530284269726634859171425218101136177991825706975881823137369434327464580294545929296845231721928968205177046346607135533141870336271432344721961481014941302077820442726811098361877335877160988933461447396375181896792296892763257147646053008854879021824550901525447930491549621588579206973719553404305368695746562717435263362543414384238340543156239372828504731690241811706661660566629245353487317310536730558359348873620221482125359921375042201662925217513310612706116647257117871349764837669571731815189276253463071558408984315593149326235029805362571947082912235880215484621916328895888500609436156028595155494068759788941063505378765060742837131681570695772284559251377089142734354882801370133411608400438054307095536855112203688052683627046379548278279233050533348395802238336700571217702792861105102439823715227007799566720301861319027557070656628746969553513033996830580435180668624867366435808325259495873543127435716615779030379946914828188572013167376674496931445141515946004302567176635268011206933411290598102997337033547791854379744655622105883947742461052163759792681928801597186497988801598665396672536059579370738159180552731131228493228749678813795171629516205777844261122055322417915658982916393380900461375075246367216126709630015191575183019665693747501076719404485845187323730410100035867731396337751825096104397479495618731445541997697458335933337929715913006466886039152857342038127745446820287766568548073309757272531749842746123335964188221192053014882035774553235951397003336716931693352823635986045020228989150731038302804522876874422850732357998020319782103350468069131910752847820718340111342663871300670652110769676366774452091020661354001727014740894876029365415726804149229566959984171282673763038163667071918249995374911012405736307290704085070466116765005208182750245319912568923108177465619008714487307907587751940850812682199585499626322894566654503886823944936801425608979202473465779567515507982454857015887740685189611952708877094475635067748333490482343160905326142494183041214276361168969861361794942437732667016771676303318347826921833256794608958715436370288976598079805413058755646721039365504632895766416397093348936372360236645726978250304282697757829221508929857730988467863936104428780101993646999619066036732713732859579824367594042182273193225273622853145363777479671386236672021889951437897771966465374857546532234469210785788205777399058644516340117056758264344522907239738444693242005373177641726181110423651764876418240729508734423724835198358728493397564205073677788468586544587112709014275027273842741853749309390224135248230366381640135434531173143087963559622168796455865293140090694106999534057872822553441682892383877160040432379606547409931878798997461170072057329543056025068349628641194895350709115997697300986095163073759615491384491727467292659474619033768330387223728904212992414202767285417220751400021896864020140022541119534487235242567847449143380712389368860663710617233455728969210729356961655402479430728213805048503278344368120644899898012684696889935913639690463325561535086096381295538069171231000436192046126737009072580617510148520140323577702974667891952032720109250729747062525430554469439022987612156286528287026285064629266840990973956042144418466558379135166439666409334250393187157151042259813415776988107294322983701072406075678440531967684334438478920380557966639971551802657006131473334608893403075276194689247045032774754450315428979980861305344468999097249174595009806820273125144470010140419911243388248597081220550839498362892633540120488470758651628921234437704624239287791366705886064385869899172810100624312549395420090020181770224425002285575015930034420230739070798719038868269537546949515307839266345857084767325460579493769739423460706637149973957237682259926321502772366986280759347724296175331351810571941872194729835780904541319876397897773105567303368255244264514605317998249126698333936208736657473547572174210713167044730131199785454401317186553988961081048335994959952690776839676016861185797833520735367956216071191380769587824964374188044337062909813742266482404530505743257229751644366762165736680175856447768511060877431326246120737990807751781506976815026017570470523861321774648980741538027819631192009232730806467117230088877071379674612928245672361393715157895728498814196592632279712004087037735760923707509561943341062603433896381890617489505494574998212183545567965580842000811268626928842862581333538441901202791696276075401106411927954092773160329763108074196476591823744435835893210589443417036211327674918314984718991143179413223560581665353918309187938874363163513469027257851276183106509853314023087536387485351550965306868941635941436973570976468743557792240163444339597949209355532695053498955162810990832568969711721642813064452876569561586992425995067253148042850721671643630632234732249951355747999877216848164172518578385078071604780471077155045268570498597281942612940800012735214316058318188234412589345150248322237288869900915932434451607469015201303109658261923269446734869929311333486939584341410621015834321493925754458199651336741653753966707836966806301922060971898813496072452595394812010772111259179982220830163440547061703907583204365692849559175791344336602998854428776918528621363538229329420365054418074666004853562618852690246305934822560605608298013520041583013648245855137733028168075692173773173371718256584571219437718994063054435236310528970212913175750389849571543506119469898527488265954103328116635747760909005524019908489554309179934603360338359289401101578928145759228937923070828545808865276732925069974979973652782699547198251148981144990500529156484899814139920709094897935649804941395473802444858873004990284031051325928350166360255414307792178147009064035191543272742999933565960544682421649501774978692179628723983893293424533548088183053067155451159942201496542133449977696475587872475314817733187082952606918874396691144251950835588326536669268120956163407924132073443230422363927096611287985083251287357629950514632910999328042489071542755281845263781918349261768599127557926279675098540327250186389399584304620538778283764954492396531871869207363252188437796795648201113479081924065122141780276977004774516621790912489716716151785520227963096115762532490174883068713231899425623522659697035766914482542506152667017179979583451583081484065574026145008248590118866004931215016481063984671189333038877094562210385336573873706760312002291389610210870727690341393470342226422421614968940131924515998457783471123150356681790925644369730433536906658282859033846951386010930772328983100757552138270649092880787037494093524272476537982059721501456287650192622646388219202158800254045447960350642716313959007693015019286604529448398281195207100380229676988668259602732857703412294653648483353117509906916060925927155065734594219935190011953058588758885461659425819808024085869916898859147026018274180488215223104488911163085855175139280016972349618345873024403205839011589249599558067762422083530433790388612622620872024731941835886970623037559398853017051728152151184640662220875693863900673234865332129629429865345854323618079177669678705333601788870476847761100329940774151071268898744824848264297255767970006920657414641348527380614089188519945667507195406815489057479835169868902200515199505177161230600998756760947531338922237724818750663291663502438880228742833683915475822853738773160245508123736272509112797071413854853276451835315282361222632213872936734207329028171188484161571660956952311933711596911582908552710107802364529199257809878163729014443594917198150612013504805742625219962705699331667741333270244431240551249695687515274658955580272507017684470500502783358486904259832345029416809708747819248932528383708957746162444702107132928758142308551240230251203444475185042294936776016510948798363345105778965918271278942943699254377582668243236649213517682602400709659932010753111555622008497516690972488992855495539490670538622444826920651024202809665359568307206111460571768487298863622248890951184709049332352071714738323188129839839810486570673009661617314424034064129630049670096956119405742293784640382559682106528392047984579415364109054439193211500878239307374999477781992613637939553843909060901809437919548507148684607881391346326238722698289186772790288464354295685350828344616690441914795786131945303310034096998469495326127682087746986082140382775174021917432035091442992487555704821069540135014081993318519532578887150883384157472259941145256975438738423951867640107339855699254799161853969112600420253235457849002747516873069372973540373079084222564326345021252440798287385670052140348335704920597308099645274188303337350556733261501800714445197129799081818673115949664772291629017445303779578918081555360097158785955333744678068071681408095902653218385638344470194800936392206402044324586676628341338145298366503411683246736990719303757959886021559405724435285187081762962818974388882111968393834034923512401565980493946313926270714152010651797919600388621622176137439253011242484545901276740837364319612470657541147091783279996694913000086400678148204304996901516248093075092451774636494747897139965020284361750858177458341521693317749544805485224662585922116599598055307981384755994944395887846512811531108564089825362069651334548890349205146137067790738830370524417353104803431140055797853538341633097744664572155679241155114711254868679556336222517434198726532251867239018189787680436673582578026588936172282425503326395703697682248898125087255723522117554213246048019701794204625817126398734025158254256085249110224161315959415890726902537692921604388396947481203883025736747331489865133378153672628174661175620828240149451687792995923460064746217388142164615874734811456504001650080461448178263206263066095146196074308792127084268772921298169172468620089143391735037766510085322293131923083248288407648407721060837705234555732706412029109675345429492133122856671469827910738366848348949314011570313920948876778806647390963677225851011926097478112677804320825779585943557461924630686612371840300895962690547857950865566922502417726057446907739553378717109974892934053556592171055099143298777472726994735078221271831100138750981383321352659615174285049903704502666210605070709709760740399503980979448337593167359083487407000128783405584777470513944709954564817572225807831969747054891766629196879601927145155946040784144638327436290452781939496576510662958314634807242415361457216119972121061371046973017333937771301703491691803170452359358067585876402780384404050823994528324341670882088624109708762797861425941111075609884245392512988989753402088277301500251413889128575561882553524805259325731480529918074560731396959216395063701449905159136089445185975329060029381137673037277763272523300447565022257405378453124427709312674233250425541361050722315552651948080975867659971569346145612251259004066778651789841872736221673333246536208752581769069213772232954633473844733730953855219714102608930941563729772428643334149299442235792863390220359327295629333746582864080114657388822282559414808742932113990133777979750421404229202103609970602496067016923581286180025434445763016231209029266070364303509802733101329829843744420622309281529561628617181882153982246606520156384455383686404394485893932538475202601884964348028199782172224838805580437297856620505347148696197943960400427962424556533937296889136760586054196963324416594418826715499247918571515811483473712119599703717540588469732174777070018802888122155734201200457535457463787700213674907046622758726247686100920321592973767489641300549806758342631289299489537949325886524352102094962425847464977176023208689025420476138868133981651348666615650915772151075693597240114560536446863157570660022975388097057677431402537385583984551089290543798608175134749278229630435274246750943759914933328291358778609970435136912021060457562115389867222584710916812038964623170443000985016172112688910996677930481203413608388337904192228745630500580751355950854604086150636093375668407261969830353045934992079903883167358347078000013101923839494719652914795127662973558746163332298693164581851663211699753127677209284376684785870932200272829153724055267359487765946586621655167293984361857685148061953988216061051744058495788906917477146847694099295233123905565619338262501183228616828638429763503199931777384845100052270820505056848784029483167816532769805045906567814935169825188790782524546542407575362277980294531755313906663010659873123396046813507490050472863736417644283560420651757649155073609223185420306343214916234643013455440908902746649947381530345804121161630350539644575904908460553985557537227220982110563854945469034955993555524700657382438406811334163012051385889148082362220769006329954379647792457186731573523323458273593447309155403364465129466232709120887974399973526968742951516878835535983426870335682320007447305713911611505668925697780892799679789243246283349091947344826021957791783953306686109619740991482163253609764499178842560408127639939272015526928963627003120711418455129026462117926111640521372626267900774707755816422392234610171847429076180662829903887241531638753299874353502699530425952648722720114876727082347643865153515536551201713392040268549502736649603091885461030055618055496486980673951427957740019609545581618356415008306812181621975424014812532720290370468116825996917589376713317802860479639542523583013592357979204048144026019471048065817982632566304127332843469961954232720086292472171027579535265783248221347120922206436872128330949213072214759804418292576541441956030591941436524335491642919682769579548746579238051981383176705544200673037917261331146524550802230924165726902993865103279537300069244424160566896448140618994232178501270702394411567158412985240280526197632810829813109538160342364930213432618505490186432049058584032606954667465866109746237029853843699127048646595044091650551990080895514517458664094614847988626118223945591792908803716063133166111337794547402793608310986372897589492210754380317423888440221122850029832515242989230198048102671895435307376069246717476540186743425055740263445610090190825209285720010633429710343610545363228152582330367180619501528867787512395725121829708096417897037483482108028624221493233616022990622214617892663804634309074752876423802700857514041083340144792911019153952323181993490821347862878594240129793694547690225766539637008680836251387206731172776998450009583373012567364329258265627997931504593510383566263196956827266418424039129019846046450014037326493117553826498173562616852846954794530334978116703609635394433893199952332554097785643659680777609799497127941728576940283041746672928644707689469275312761754393756362928404942061928056882633143722797106722301903354965669975055655349223976800134777431883714372958032500013663940965399758910272528167491262501421017939769601338847134380624791691212282945457875715204993370187267181386951280586807535780924547809396829028128052080710347312166483376665488795571913739991102787759324486883165104912371486854342764119027399940495929760816797223909315780856132742670813734739247220634720706487692420489358517964079304458661405650459344719753364026512187991758474500794102184669768696079246526856548856278068953680215524604652458186885570177400282323144393166204628869881587392900901795673282144263757254099707473111937066497087818130174602065279560361473781960675201241380973235102592437831918216800936726060619427929836428279050692209966606638347917766213828673254312804679834938756784007707759059226880713636427906967432540499591796152661241043643168846539990732624386142636151006893998128216430571624816041914726385422596410502173617032975949476908786222518564767714674768771306120245073421916209203069773057517456179001122752541380181748119484731642667104095960378015920851319193778804559649532685826006229881249343758711923937159650634277036508876218840689649149042992053781788548111179751408028772172859508403070145819660624918718581967309652354706893205614161826765633066959653881628813073760747214382602876117476250011557790703909971506592569036336888682677086209954135463490581186400428871541203800547249312456501773953327170752589496910318839130340459791987610289563340266899938379478516331611079674944039383117756031792524317474921732894869783228958197293569824793036432618637876625572245585759138392103659996048172830889175463010772415169391122896445139511941379788153274252494573306959184232936601488971395624823225244826718716434338056011361132643616372781890096985714415780564129249781665927172956337027356987027846503756268150254462759767618235325595266673441908274404884443027791975826157234511326406499405416182669579474453097682262069371726818135982772026899866172676054074139849485616580642634092134286602015192754457327568753168534314734415675443714957994507314203580695987893016966954505878277244800884883013971159105183806904311416099567333599426712400149118030759771511130911897703533915720172798439514766830416462156724343903629891163398500518529292467670895801755391367680446637647242863784596377720936646194115491152687056717262695094029680528837798007949628284815432837317066645624602766881022599899019988115404336089033319153490890913371333069294633833879601240802377171349961364175062107035173195000965463154502404923968979351501855706508641456268410366387399675683408288373398237225250829456414843345651068658506971900524502888542110934969469356058316074273979734454698750289401745028226336670758574376600961400641896201526008881824085941759004706590983220849759913932171362014755217831393235305427386739879483874199070548261713423223432524884246413023107220481324034792112459526578934305164936630508263183945954905213702331116273607925058946022326978811730697876848287675984135008932696804376207279542211915861650207248364182541716047277456743302860952794379483078175065213906815859488502009149004832905758937973327793107124328935755718958438208619813487162363204247000193763741669227068676846254106557881010715071665764270566815543806945914014609516812006556664743631288778013521343546311667408188579316620712441608118938720361153728371766526109168714043346232696311922407907332661662456111661227382399955247144514497963872242022582982254730125567207920628786054531449162103702805301876759159400248332486927498944448350126304820343321916737286183645895177138881684485316447582003796546120633773300096650153457226441601923552580538388009782221005869825402881424274110201829281069710529107661283155079202579286421684955807358051976387391779784922085079181486397238499575794756845496951813117825005226747387684807696276795921847753272423174649963245095980773447458985394307151868829267173068931229462636324983825223903029780576534608158390358350164901408608062835874264546033288075788480010895223881746782951486810603557774610272910328225900483235123680064248635502672028910905491071000078119535930051158697940646488617179103723693952674933267754152937904486937491208888182302151944120158737439229851489829414086180333976209883275407473680726404023725145389122895547029784198033783611377899893134006540738367151782962770098354867252496477148181186435745912022449902979515498259488227048691581347717674956547553710638576657767196313896803076641919637036347484899317288867805636668715150271374383906841101687187540642598829066846712342095924396584122379599781137830712942538172873520535481364536432479582806391079967106374787434371559802429601657419442138952200637939762939899228156989210352943584576867450441471828216066627679587498285928856386079133212162917743291685059689949081670617429272020984566390952868619199443090793142674626325374379424253647909939250325184048852622035438577649054276907228059941411019317351774125133356532628329676520589030723881467831611238500989529579493063815401563566114254460179677798469755314550882625312657534608342256394326134910783964970764604091615634582008991498101593291135552862561202767723572524521257294288144997743933396818364646562543506335764020618118969251502854866744557368648843161245176231915316181970482603426056896043596253896567818566805312786586140284128078088992209859795676994638305945481004657803649336549044896945701242341870494301531049955443680152059871053741945395298330790642448153272189653854290548534157397905778485288419659476083851779728491254511440161870749829461448618551283494832136766987480071593022001197886459072252972378204365223545356311701191201071667974517026465172567184208632065669973433503134485316308541408114727938808143613323193699349847501052866518970634982866734648738047005864750046265598696585614443610244398653219106099129774939605185081438308611269459528377668692552880631005914345249413275821221640609673956260037255610820205834891624815666005057929099074197012284401065486582719432622090174857944343147904372080104078862898392222186827932689562889651277813925354824299888038080545524508558114968295816956074828134746903953581180838447125370786398998972718429141873376726424351620747438413073719975665509019412876079778483324761582351157440325074439861894362157075625026263799920381040273930612831455530017081552874298537385598650822044049883108584552418741257061939703265956317144911167295801989008744778726599712957957240107898492800217255950014581096802218173205083198416480592160737901194993132005625990988353270749012474436446825026620677471090727995381438799515210786811297088404970785700312277365500804228740231095820514594068530484710056047754225399172596723481609577643463697824386617010277134332388047649526469515396380883052530746604063669663714076612193693170920480285439752845522053871564945671186160953922284813060681700818194179033646965641851994948839876397234389968263810399858604842609861298052672498873657146363889278328495585003416875356955204522818815273866118935079878988318104867745610132579741614901128098811701188712021047743319426899497224163799664600623199788532113702413132291401530017118720679335578989184481492552903335977223268441894451496203456331567707041044734463384449320218035517497914461757579003725871877176257017653366736001844623678742254254004810140685428573614754557680731877941917234151522001920651591572953532842867254053669837148613903340813294977106100478043407592217386039898489991158261598722798679986436975901376217296894504254182344197506267946379509646149764385088016616711359752655205532659742144737820876091485908098970458332486111727415129068146155995762360043949953005246996457232249368964830550946900587748387268264222636962948974339191292977220910044733232681968938716779691148132476820882852952624912385690303210944038307986064945181950706327286952704495865743532273094597287469650476834194006445451529364558504862506031814053120843061066017347306417940541962296641628570599908260517218442819099276616661128787331423136293375488616054258680884393633357834268998265724443204708637698100382849658251106262072745422720773595012814173651589065695326264988033793540500155338775633436773037488645953415517790743538266233228208191382362626162080242760038700149966420534155777762237054807758098636272459063335188289552632751141853322330840818774922948587101229735128837835909109214147497387519837671336132400828041207543768601819822153421789744082796778135581274635083429835390685114771521529205010409213873634894677697860112305816124731621880895143695418100531055255015911633220351800298360039031013222531785540874922505090079464957709576481188349424702939589534579502644966751901555981049251849941428058922516923459279591919956845945024771705773431751007662255210514409908102661743871589743225295201978601976609032467844408671063335940305998302906045004594040691692254305913384304903361848374389002903011204605787330247092531284758408870364203871046896500644227588703246939847027480752538884403448776848661077337675694909460244133535574205831403699998723761932907325951069087462363319470287544040941878312310156869531565972197944989574868808994978970994684726032121366774965279329257920367770443305349357271422875807068068123308697816739305550810636972891424813979673987350250546815420258620062835078453760960247999088563767797338548743678273442147775402891329702737411085561995306871339797655689585503915023334272511703135479302698962308183269361246985458139177397514321503157035541771009659637282289116946772558037657570280171537197009638430615280513235234935509229345932588381555502321592108137607194185257267646432658971575092035214146699057160935489004599683535361607775698045043067334201286915791648954601302330925357849981809970970352998897865023948290129093660260013715385269845913074690284827737513811280319590268822912206705967907918833753706165445392525044006154713589588526554755456430104695058351973363176717443415548755597798966750676224755979796520632088113967839573265585590822181722187533586640344546180728145406070290531721028709858356621429932132288356105488640569705758335183656450888303460827055803131352618910845040612268846966396142208203351671775248950657871524571670405165891676322248376528175517953286160835740767375476854441127696377853607822693111609619041716617834372055197298019144796781562251502053139416699459689065100256269616004042443765991500618628340535679539533460670129820013120326401205707225293122238646783010341994103460219427836460872669869325383595401631019566535733999440606586331976874606511001447157720370096518798217648333230435564410908256032513820701306314349034665906267060109963559082488213571182711658835651181926385914947837882655761352493275889089493576406742402999578702659503863471263258054057243998100948849231326070335440141132472615064776322000698276653869791280770514159952699890086483836501433136624849523318776519846988043902502329029480179350318105320123591700259381185357161008663932158921407719038291121693609572598765191203641519412066960292359675447376328555854934181530394509019393463014445703594809329122747363678857772477861941780237263560588623204456099930236246342338500495468002892357782223201916579967933521772527700824129379611927084775450328542940148241646534244049122671894601266951980725197526610743504621157722266568376472811948941710186031433760344816558723216184690718477459201095857418846698719578119147979383063649199880870675493230279135006990376826900305857667697596879490962780629245245347458112665054669113697453888538078635716132737210603099614666763693512143221801145017914785799281403339771860547085666652683388885536772738257666489930250155927885769792683872737507373800433663472750454062980488776726764305401703351596092715059309434785286809462295010935682196328690375250665121235298588802726137784911364937647593229442504041871981537118211434115423124131928157009301753576757224556716305789704382082979834393761258762591675129559572821618752389391614378711508669898390926703470432505341593796681232659570965907428601563911275235638863125566500636743837428969776593285999403978372664537526000416240253146279218928318697309917438572994513617566735416843817931102885909150574678426336583998049788544663685024320103683651096337313256683994369477832656959408215456113475114758291056213868510399930860719257553146962857665674501751175196395357685358952476629891298223720294987035518345441066744043522495543737241408288320275327980165362625472335042854393944013571282839530171119520339643924875424697673953712217230820213649531918413229815193257115429093293837303267492018725806859081277192901011947229575494682240328324091425157034636406652024436599741935739770338905812921109329737432721572540013527575080992900369184215965644397465869140063660704145174540182250804083766911602799277390254093920456769932777576849272735545411647616319038295049167501171787207967499300385297453038570436607689362984656293280388848793217457216273188100820756111462184218092051483140767480109273033335637519352670398499240155200758524068794251006656857780371733772281277688110631753890953916604444641628497387026620375727014963161380344450315268627084814958353531376560783853982479258497270214135492935683551655102924107665144197820997429264305699269355789002806968621811335841237593455234100734375204694285440004840054066879812794295986435206694086363020668497839679609984316166763749888538702142207506737200072555225866515426955635068762927214309989249034402263456745709639437000975646731068316650410015312459826289254323317634358879074828920979001304947059774206375298605200647199708579269192239993484392554920516738543083817699979407375437458290802506513532765763473734626219305157961059259396367575383616834491682986645209890462810539571222855092792528751717694147997115417402033596574526631426805308315753891302549347701671903624231496169237312954490606999889414774214296940393278866536083177450697609843860415092998425695080538769505947434605003777792083188991469020712590405849814286187374830420929656121458979952375085546445542096624263468114448983428042880369315900913878841361601148231019717349326972333660766018885256136680137319610634117500514729941427413086816937015550758879933908193009956811696150121203461077836720251742106690092435304081131088598167153327367769641672080373626275246715002965237318256445591639338014493569663297299880745436309695966755669076813910378495069119831589381596189996301930129123752985843377645202262041474006210219789120159880801012105664927075733111752699801036632222043084792008384321234489595313309350667707999055716830187536271555493163582865323568477614124984859276750017771891047320265216905023860672632486633275379995730032472224264943393312703698530101060227733273842047906996463623613563660960586423368791302402521974897089384217908102277042579676199341126420667725544715826081692971539902820441583003978282999098710360870369503730504527682156409182724896744753083950345678133772168642021215630188437635504331232349395981926524905149323702089139754658886929721779576249591425347524906473603884053613513432890578435207275071072153749532578065384750467419145059302971692083737393052824969596259762109115727262241200616273526436275312905802872548672961108488692229885721447409290338534552084609459878905875769555198904810814514186816240085345248819781802621103770526525769923862435172902328473302975074270452124133896162745354235961237889826280808276975066345561940567858607476138939983311442088549145242684613383700748235774459900605108618035976249670313035688411039045857544427815244046649151683447793062728429325980028005534953802721852960783959931488320786711092145179881881732115558224969093634084279053728384802075891558808062129166789689372099882556082989162884792951332208122379748566140707445295347140220936421842847544937082517829658667936508837640042279926886130037875858177606214521972566954238704192022130314726138368274666718185590148828476579333163217193853325296867328879198477365917677546072615010776169117561276911946228003336921367718522870479714534570250314993064764940392575440128594284793492118839412014565841979421648529848252108911346829772593744730617726281930471525547271542977829707317032462348046275247984208874301196397869114449053268575260679062303045154297912127221545713042897781583330939151026872391448179151696172161078178011285428573454674596137641177701758855939449568884639310282879836984628471919571192029116163667241077972687314940418225306997203395926579861144748129746101350839122536905172211136179962522475403119507649135536988397147755491548618229331685676170906157240266122302102816131361425611674518362173657411721641112525455325145107931964458739357504180097773946059354504400366229759882628600208480992037908340685607617241873632248309219451790559783962303023014171883803452269737160573213421250542059730257656115267693678939813765494221041571915420077875356017666860807610752175008828303969344526695498704585581510875558982426744942897352785344522482672887542163636779301355234865773248843694565159338262704805190823257865656016222526052987337279774361356667082755709975536724477128449156222766862680537566972406295667195124476134814964057304011673624357727672943717434121007514109418694175519956791227406329216366238746159349138003522009774249076485457641815809018995683252082234920729651672992577152372109807142366376637111629334660299007683353604168699994317044801877972530013596714579278310705605761622412118097329487198786075037930471850867049455584766676337253452431203978195131340133458107654777271915413709437126599522481406576659655879674848275027017880275989887170153379042972973969228320085383618962657386369051706846277249658019563751088201489881098223986242017971249123587398646334431431790108233695258203858239976606364382199197584005605092198911989382820612442385951595509149380685201568152811400618964198898925179931634307814790151862201444303526409115320093254153989735689589348781827639806717878529227383649710342483407692286637000326105869035485622519543832367871836407917230766625259968339972546524757816888665424286622693122445197857914178762229690118834865371239266273406573880287939624025919185789199025147476543145488515267281088341872744021474835654838215879451862602958085047719314365949721208064859488309035904826972241460112477714864555200217926942729731609569165083634441258729094568019730378478269155988617846382148767015392888723835470670235394636638553821538250196866840947801965260842151227230142455990008225713761945818992104282074275376069157619957720803738584500367990740368618884099240080385567689957466541107193347330316987069879401776736193053984694543372915408860782365866612925272878572653377624223254314817873399732840401445292224184970510231883516065887349675639710163028474952417234192192577827638974435910622582576052644554240643615071062003414140463703140070617663993680390866734438553284752135547646124513786593897520926206342394974552838710093196423730904285956621994380294127069250145170041959816877572988902895837100196757867607600090254813128157240510920053482591342226402270079349483024961158147538603265560207624714265566554209874234882590914080404046535341785508938100204422404429059587527260121241503185526381318682112660280297204166694483429831144247691626331416247512357626580116787822484898885697722920772858935368395608439933582235673508337443078041816304173205633158531813676998170248217412412366038203299551647116241956675475809927340591211157364994209648700449838867495857808866060636465920318340881914226488127000154635852534103657563001065136549486964882810504295181551411587566871383035084604411484811555318752611539585887684781013673786639905685020605771625012192082032939485750327835182169185597635080143634003387386737068380780218974974823831420497075550282253737883280926419377266708200927158520416752297369793896137118026527572320436169862221777001166703320746333694053812546857759066709201497978023853469681103477830973121727299921301037125776365916742008754714447962564805633493278546548135303055854453517115701521218494911594340680082454445976413905004130782591889790340460865080767790382524564870438844645848605534630582905388716146898892615241603040725078469730401248029633254013048878346820061298840103397653659759608644261793672628682175020435322886838446407422641439884504928377249904704930918566925982943517664863466804121718398544399727899983372769132373370808851734651374530229835268664031210048684801504440628223391053710916782125022361906914658834275040390562402440474935411615224171638904969594021152358080691673106350622918702142197562547744338242623258652214565939861541510206528195054508610195620144295515484283852216988382215089366423015457797835799294931490982156282478814711701678642421068424206132524596524363020628887991910606784235827060461354670948944560159960274761299068250706784803960554452769970786386826243801342641350558096893301688785293407141970529014052294227615193694345336165376508319603936928393103069486397604846743803151731548215468582464638790388460826091109885724363499437339810774425881227494215320269848522821252481647749034857649943742679474684440530651185693115727814868269458002768964906128532240858451370623617008441049370239285662160705367362566000296169462863158690083239770161984456537246192971493489506731317965919243044309007249455959194727571836009326238303228107016082983387550804655151243019555877738749677508785614834078097339422737069458789462345922975109931900482742518202202608162135103823317194860057800361774352218780207633277480971004412514526183651792271699559016089613954774320942085984843291375818191470873275009592684045320949539834476691820186966985706582392397735942143908761844150552270893904241214924901704200326095461193394407818783998354692169649927813083056090786742241798803410108258845741014736080806031598488674047355007622523948997800916246426927336671292610807160614270676356052592847631802845039214357121613876646876464560465887443664675252002529475131983039088982754722069181982709459443947286465195593018713443993765576944653231758466027535173246979440779248272818719352147180074620950303610302455511630318377455713194896490434471049936177358844916325240985223285174141110746327376794943482976387830545457011828757332577182623312807750618397402496932510954451373986335330902328425639899102911542246713325540124762337066984341983589525611896852297528205216615694146760007958301618057630463209890900096789624046463610654760075592863088220779987336844141501980458407465925709554671608475177364554646823366672855714443213760805225116785612028481219537821784131559297628115322658618502729490382060075784993589827460639383962423611622751830769571836698030415024932405555776308924813930889054642015101955544891532996162818734242310885133003847908758846471028316387986970728666189971758573823140664613436440251476974088530321348068997333998156565548237387650181524642043616332122618047122789284038887668349321531052095147578870748445743451823336312356537289285091388944085054285039395427766713648803066962539260242870618516934030493128019763380577413881380797748521442148338391532878141647504076656243763436859147694121243048327363900828252208240615463047830097536146592655333929118997355278639123461131613904496141254668256330033172470892108580664529108371461780713660064633355471179317359777810291947330151551544326546367784368862561157338322627434845439847793552222927120159376177587846803223114637205175640821619788711536530805002374445614150517418158295610419398157505958498293129733054184500607144010534209587838643879962557738197949779683866668391825395646870927327170018367924584489403874882501726576411714537999688364287630717675106977204427987558139794607038735169284292914888538379538823482621656427215498896739898055829204757814556064733523288505488644946971055011164304019006416317975775186307476458604219039681718526632151484270571950688215657226053095255363098879408076879277813829598771728375160728179107876778006714318379900719044082061917788445057874738751834886778535627603601052513517258934533655286979115744598785336392943198905711634481485880877652698436133138560580992590417818595133483100578344613771235771939870511091182527552847190655019965567093441066194558785621314792622572606022798029041422307157396870690240284106891257579640531857782726554172216707464546167697259331588858628091090179382693119091352342996625067744838900373283352639530757604904760304753457145078939365253332889758168238216361434563999347754241491218313491464467243624547814635257610610735781868763441729993873186065399914815290546077141801417198173404712510346458185643438544810874840454366175160904460148147655688961939565592780069852331595112651315802968309835349157226290904244554344040793381179526646868768752656019700766821935228339765495813092310879848158858784452476031919725383102762968886804342604519963554553290341062258365117252150142775257057753989309890750813208231464583884620411610779525575859307997094148023035410125948622528664199553010641817349009019060563295474615066946527158146340963897919566731039303022003296322336516830547645487730215056966774114244353179962430110111775490080752805215639661488688407231990292102579927353035554671803405640714359354427465157708556369973512538147802883036558451308706825461367021111746127815131571856595582232383768933844459418136691726262505788879430278242240824363762403292505890293474661631222711821612560861164105833859080939074070738899858179880900422298818528068074227534304797686540767663751605719415630769230146513569897199381267274029240799344794358912855302185606980811475484943663994027908255987099126386981178364060375846744249067039618395072641774497902439212363411222560901221218840482269919282417003115530607616449973109655422106277755164471671181615497369218490089433078837831173916253842959548762884851072715678049113748028869092150217843165721570254855925174225767240031773700232825439758818914314908668520961349391989705383532319349347260745785831569451197864619323924312931088978058231823156812473848607135122215378432142888172031657805614588513724086085664192356671935677216074258045613467059598577110269968579727225182184793368252870350231457076384202169493727252276198335482090878323993830500860543114479341806786988410965807108618381880710215851094751782553490005994999269104880689498173630634669369590583371690000769410291950656265329576692999696242696988509041611376656645205097723472779485676014972781928348334821760055134466824785179755718615336683631659043907366516718282829814575097827310297015959491253218663002526013614053564499107860675322546875014392967803175361431250016222621169280056348220168213779640380824878026624559852402293342275604527167126650448208648365114309521745191680298974398048071534768386726498815244134684697894039355933552208500131548026867425619289175208534542618639096022613548828754637504511820359631341822140569447963486695216405004540114690725807798450761320669086572299372591356945823493974359627699424067012471819466313007340244669225087288683495731992567822926327172400821506469901425979660201410265803956399884525409591288202490049745897737752205831071880503201333318296231525529598241019179075879280578074157284289147328603093890973199461047519658202992188927284392208054153615294585692766545572892203680724105270295051699736491273766776376338710414912009429942367178310761584192664493159069064349996862798845968945453352245259749199978983545203154922049538663148788176567921161621694522404232746243910214593019170559962236159661765899082850146279130087738657928567856638072025779426625132557686996285101523163163228067850171498055058577925987659553084994292789907713451852189248251343101369333504644822279706021137188468915005948909112607380180972216839549503550375586264614771790901368755594152328934555184964708286585231209576269784826323652163012475731062863252155588974579568485346363069054556686629788372082810801559966482466975581715218524107001068247007901100073544771339055436357404344895882742700710528153071369473760322978679568951271726509009652942148481476374360605541267088409502056611002428782502530630180781907764979036522260681965208767031667033858631238783595864041056914099298957840159687678447293218978651301882971632462213266591331965891584669813298706153500110529170421973782049088632007701560627355208513676035181507799545222233537300253985329917677392654494096208551475633597177577021472577903097673097858628367696632381011816850870011932044729890708543148763876168634127796622516230404040547837634460433940558610139567962016394108764941588195193058683442892929646581368501281910226509548471022123946936322253663515464478132431253642912216763620607650957940758077676147409553689690953774316705796518268612561670863689748251566019676858854391855415378634659504642998049882511507611001312318329737686793963896316504940872945663032362391505832075503765072730713086533619721968056682691202547796068154653267333457216750718193879331709689463780132472165746176997345874059313321247959626591267811343428679775181392177321367169764382578622938184121804167759961509417166898352134124768857485742736741677868091054406490338946156003776566908819227596289707462016195883250749991232755729448044803641866062875647694966760673041410456572477909591492222521597173400232711855949954653959080360772743948556326987338157916518239612827862948767692976758531848183788226925697893785572455236906660815184840843303107689225174065666824936428471130248995625764000226478642435996863669613941881644247025966225847738235509551623235390019865890711492677519791713906192028301105643656269732924393821185078365354085491368201295751641088572834820873218559005883334574044178392542210530856538833111443093396620896890430804078009071132371810504102319432466470845698099791991746483115904523136664130495030164073922901040498820043678410684729182882736341916113974254766363070146830531137745717093688098207743565953312499944445675412099181789873948767900946300778002513946130690166835614861174100534710563827404872673824439235844434019831026579734843288384075682111430862164647474039293415191632292992351772050866162816909905839191722427951396957174696515370274393860037646059774845073206176555750771215446405618436855947173180351620523100512411620171148050574135863280244043340184505761802990274314578848436973103848038418324859237699770978329677019536157598650464282227662544799223934400803732875549158710456976748226715624583264239272386745028633379846558072275574308031666311914573194882723827672261688137351947282773474702240126724101962094350207461112364861226855980849342720028350610261181581003073435821145696952846430476866265165403312332433461148021191437019999399571894924931916426640900245209043814227833362029989600048881205360387678448072311732143621289076807147299996335785191239199146420876756104057630066015152794536278395020574916843379269371991429650543040930275424691916842725640841852193305514337423587963555211275101937531120787023183514294489830712677386305487766917632651683658680150997507929409800844679165238239955987115580172092028163373950003674321387886765241745431388827715900151577685457732663311040671020664743745891095004245272908669090005016425303659030566366950628941510973936263444574627636639788849549337104727405086668616658905739998967574461182501211467278717481882972796283970822260832016734015639164562050983407083997312955135641682184923379038409402100742057728202193687679084580294489360682499136760491936354344330284784626732361776282600522323714866316243751875398753505410923140852151627568435058376074218779269132170434686144619820656619153618858564266362949691377426352679782723896537588639291879729541131608829674105159211666595580525726858082471596590421730392241521215686021041132087923413998630884021191871659588449554232114202730327955154225227969300362138218862376477897808770179899316742900502959894341471605734022865527976108960840533885735643134057790750406699428293568954157947464235667388014485736076783902586505454782860363920171695712623342097063255149145309993296746963199002518440749748921871648630983352335572214713907557239280958575175057704102404450866538551332000592816002013307476408527651234835367094539537361615961582515680654839879811740893973575681792002970230708811782482453045213152424444894301177409406065562464513421184058265200967854811938510754777001641380803450188344898150212209692789165976879244014715057797359523785332752391350270435332023262375566056676494776988104357234276559264273397846882126194222409113970106133448108672614497702331762452118459643413821656617420058202561567968339425006542664274006094294127660974332073631175968121172149055755054862544360891445962432822478031847581153020482445067382346779706389335492521488224246140329453816089893918116416540739201814790050270354647293821708800026929231806379025491907190018971274605310794389317965437656339822529116965546790486205515002615834349343731607004664195904107898588444626211066060708145449601727002986675276528042313118042955567898104267365634737363301192568918795655961859523355855558443997877165799771523054542681131147026638494439035092349223873092970312856489032651299895989102893107898148942203204853936613191125785329702497030529339263033810016104780941768794820309913279273620867050566322939663573198504866308912174497054394964395084290821327747600691261229226373148063525718804159121247335951225712039293764694862206784166194020488807708020699285625989720138061290087599140042344093579419593022541682462754284858396031067995495589369234248524963037754987725352937227994857420691829803652758677291310906865495118262510621273123301965871480440467928008090876410283524311194044025529010085105484997807973592789042758386225446102673898089469176213726638980559436880617793373952660968317515090167377043526871182910917543104197369868778365023297165883209172950857516172342981247761022617399903511661642834946903525255943622726864553580026573221069840427280349105513729861138926097297215623477268888902984140509954867685515328743449781170209468054217705162828993208832007845545921018286543686366112113141762516315287607221284264407873627566624669795828198810355304920147979812311149950877211669471676532813755999601599346207327011226094347263192693440362418902252298290065917668534792777263693891169912890252008337856901570647159395712352430592048890736614551703860143261959540124364125294981949633201041580620375278709894020908249502915890904017703739550785317913013295055082982171521681643997547975814532713456596453760318945783078290742299956230066027917744668028078669191466955232051230761846059869059857223262699572963844651466920176905437656841090981461156005918539756786710105169380490896995890755570737982500670864741105155577789587249421926953045920878189523825542952811720963515571939973812911547420466896370747792164078757954225892302375375188050886222909705827341424728905390492980101775955362112076057699505589867059466163966920486433558261657847037520639649071278899823383112251114832389452884146570723761303002693125897866928566758218115283877545588910952999605969572553972942950309481787477686708309162103283656125044483596863509478065655827526735469454677812144001354407274940146395143432010512805249064271124242639998371473026160231605993169672584976053781353532548931375581636231292682429861802114294945287870779136918218511741158755813476047059141599974928659406368268575867595393710208896294596405059300450739740719158129091358836661832359680419998546365375765663806898211163587293641154852396438023126940968453757507891074007311126781710848730345018267072753028618509035997053586620115285418100164665904173842158552185702357341359286170513064555226836465164309379338179719650770872901907531299303545505563472594465927469681603413522833145197989054463746408960245321061590785092218803577923395132646186632932791445451356296898394255488626655635881803922531046796679062407708461584836292356036101558106760800227417954761684361093724523920928146951786582485987512172690444567150334006260402064344489601122008050108600543707394953077162218168784283759395576827787008738605445129075260995290069721052586020320877814714545091239563897978914262686497636750763835238274429626011972035211709187824872964648096555320123056105903779125290768339918676374579391050226644877193807920205133991038751535678193866423262681728315774292660270897980391940259042637498968128610679206691011806251371745375047605672488699400047517837275175124621449700659305871132609162846633900997772828311387433259213292008455847420779537620311295427772157124991025834814112838356526960023907507687042431428012516733032404643020248481014696120000598918065753597727564508650154257750510644340845362613345714854347695878556209917189907742972684584693886061258149355669894739454206556726238585481677268519377819567593705250972174273959263739156903759020048759558319871844064364999325487411385943173164692751803585891565205722653783695964891773115591877643694214440755668357596204199247496300661745005649857760186061557193225331299617652617527785570099379181436706587475570799368210405920340391674049630236786191215221986263755522800421239094152937862958229111860442549271045761905549726559183935858007525850495313324895379886564139062410666699216395077802576916714390591321173171248211209738319862286907397896891473057329553166283867546518307771580891145687320035868375321786922418014986131944976088042291750773772874245794842700794823354930704578171009133168862615951642369390746040355121576184787864464184576500962831361048693215706072733015023883303705808731830626553976207483479145103050925133238185148772602873934738102431068800127908728452535125921834617912450253405878352520545922950527075611037645986286376010299394600995170931703366472711810641272840726925991190975690406021956854755004464131101985959991612613389517509277234496890591148012992433959556908422762824776864116485601223376134747408009133018511108089179796611001696096860082894143953680943346391162305833670378619119140917957025348606774047519228126819564398685439637038307949482182363608377106259375716127671226620282798679984641388462182555069665655717113299845567283444363467380556903468075080726572599421407708959605382949863980464019138411753551504604690595107164065268792702559254212089825456503682971265662351111291076145276331146500862271552726400523839616378276947172471758859706241146560533324497760308185018152599446810097863486442619996355221155153612790552878459253569162133031285270241406502754202762717411687476930907028659540907814765769848599989840005087861884259280968336346788613529254329729880243034413464644246747871665767760508432209766683625529984427932432009971431096240966726699869402686244548671121739591065554343167308922940460680099588067799619983146530080967313464357277009041954097038651708935962842308137150702823838589195561311944407007332486625494279581390334680312021782262581665397502149716111238548855614202874187712658368080486038907229424237307402639485115344085641519328420764218212421742986782770074260491546564066494962849339864446357532768535626906423135103379736867210624423034970117488160615943670462748934447729511538056793260328665774364417286490690729272352358072861867318649627783187551924242453997520946034730041064953267404479085913979080205851917226696848974453101590017436682016057607185403278720213474724568688630154998380909534625862972990729242164746850453825663850808575706090346497868883225813912928308148712315341658688592184723258842879855049409776722184771541137562390643272671260934700253872269142163840510504848481432454481771840677090597226518271816748410176151989418000877622770012289972316669952524949755509542472313957601319995016671248285052481537273403220973765732046663654426953671658585442206860085232143103926766460392137285379746135187487796969907790302694934048400706769354855429539543899938862008390889039480453266216637376469109626124315214896073383888222339097478091464235680494324705193658145859571024262259067260406054695164853025348651885853105182050827733358568901229171741959727644100144242961134426645764029682480609918287833399857629144067711357162326397675128172159494762834605611394178104188298864738524882953541693302429458025980923469693030253528335791572438213626588689256211584395321225341643938167816900149219731101067939174286799590442031184197816423123086923366112680727926191969408700320322536713419999335715646850880173236596651734394255041870774781215701793480113235316407295254950578722943501618361221493347724284487192093689379020715021183912782399651217630950119934048299178503765518995086876851785544670414945415592438196050715051918209189473616568555018605403183007827009115995624144911149484480571658687295051346861177662430945098528389065673995234175577432307890341738264199511475246222254790210526218861792768030016947922395592520231630974234922455843701401793996834529533188423586264325161501372393950682492524549087609037353839191724328966332675542998779027042453126821386458372352637675787047135686474607302496724518273927224606635196660246326315036251924214553903762896302700220385923590705155117186565680221036448607575821615512580493469923263357615336558999271810999635549601355721371420765165384240268027997228890037719443577978283597087133181106277220928255333646113106580509445839707087237695815344944268063365080160937798301775318296710487563136067917574044264240947860846979622420030573220427178420701914806589192143362130448789424236570661902081107456139080102367624917256035105239364609608220438486960485264287648437474341663676341215457521831163405518291225372329722141286579909363331923694067112277996976571821910654865553214318077323380231828069706479320641339885858566463506824765291947118195123081759328749627610879424106187561772572799359290422632783299919490151992934085518947973890098068889769146270164787709359352476776720437422034745054291916657019022485782209395398524838321926642865541940977641634841432427372876454919697434342218304312012546328419442591584697989719041845997494078126112514423171849247494181430020198613324665163633861370186675087026294466510923379140720565202696341480848755895742112251377085826387064608555805096964801313991995932160360618775375822664845859262409066332216759010663498105098374131001589407603342008226404695753702486873797017086863759176872148012332156834745024495688899014606931658535882336157114877436495726532801849937841538057653397020967484815400059170240867240757703995814336636410903594757835690403430696482482476033197061334260269339120892379121459579333828255636653030546612507757743889164390056039914221064924183628466817349518771479730789493722183303708095351741643105760770378998463090627126687940031141012116868826272819268518173812324719992613804580823029932837168846488681545470252239366489756771745510954528730603260606382197011244000928851432926405929114593727067656634901333124012774698030317738640406625147818508186208900099874774453829777762970951449079281512807092002336738758011219515406889322248257178719839549961386046030928270485175643812895271517675497438447276497642610430047096271496195362772418842097748305127918466647000865456742940154005898249460310062114113778087728058537810256596945429940281442941076685507760923969596259442983243610098208460095378284347583604476994522679195098887794798617079603063056371625054936720680422028253222913819667284802232752523537693443971657875624469950274187481444425822029383472097695591247697638901059976658941860666827017894916785657377179744489780138817434907537910445620828939635823975374208309625893605331312611833357877688977820453070431773856167222127920308292126328065914638722309738316396853648944255138334573796997217203521584768300662790719372009860024513237414395678511202608002960411961369436481292004876995190739400306196175158959932118532525878139205879380118397111252019943542967896209745619608051106456145928707166258583245529295880454952563406702201789018215073611453346599105169691669516478501450653665391196197048751476439169556720262696919301102017896435811398130246374453590879312583753623066789918801211647014570888411077515425037722512174112327036912210593652637000935038094357945166115468180281402082462264877131528437573563858767274182690835816122741481725606906639877925969894438497488102523997942008430198749437218779578660966678943870917137954020491641415674846968910732361076882336310636265419090824807789633943853792985578431207254592246067603386696729295628803907154712940634320957263195822963984144722033303912785197634732288619247625038674481725106327918412156017856589016527099939196880975621759960849667822622713513806633345654377331818470821691674337255864309398065492459601644812281174556409340273383726912557964851481181702681197906547089613512171998501634280667705012204300863504356837487552132806191057099352162579025040724637392979734086767354077728094462988074710804895851365802900789284604176695855856313774998565063846436044151974120124554546915297130256937788190165827191107105951281118513912069380163224333154951326078153518583703746919075089326591821307688405812961153473885257548818866750187637603108602566698404465881095208253122138917601521669272620611608711199580193046760927574558388003055170410499907889558203274840557167449861793223357200017317917411793317666734877285933113165469977767249850291316898660281813678085364867000559236165024826642127689165555116371497525622359678097357113882816302566627933899062348847260197503723339897365384844866242451645026287187963653006893623108949282709433780162617560541307141063448590273580389508022669368192221509909061155567745351145371408445763729302809028516145357079508856165973095050085575166988522533111555822756963564191346018275742062052608508361978933197387711607799796348021758865607277445490235015316725485550712718186903452577281686328024495805290080356669835739961131225455778997887173815122507516304916622371829837002159090959378957917505728321005971781243698617360955672360927230711661704333308007879696830426060665763978901491877902129022792412322043654900025679664101869669098405445394769526263828460823557152285255314889905243069649996996941260975848457979761107589731415974951130980854447161341818632325155351314634531635639038827581588229218275926993020541275967483919293526590680882756245928351172268432375791546366934530186080916805573661512963230611682993940820613676241570385638655062979566806396874095863104770189228516315503926605631019261869128647499508318734135323080164844725507908780191629358977569498705133803141781337187360253737445831980004113935145350928436641650563755505432520568806716146893574213860282886631815908749447405156454495649004267225154979147764790824999293248878924632821639797822310442962139306763287836867855361341152182647179840805012819173094245057993668122658678535375319135747182651485572888504547409114831245348720638446699215670255397529348329337310303727718641489151622730153183807032708556661112876333725193729915684944284355781114396310514625411920239522549879226098557279023663306905302467722863239360611450342799852992708180219629426001969219270910232973557294585586886865114594785375907283466577156912748710371561199052837061616647352356127318144263509502464141648261075188314347384532858150197080472217140563905972715708191591988301001607170792123172636012992403446680159124789872182804679747192183617543173554309850946376801326582157536538249832268197664338412726199882685034520598049123455633582076039775138031284187352613236268336351789768038138307410399592874307945647102009898614012748406945066523072458177247726885733564810458936205238617828979428447741664050887715071476458690963076298258881155977979984569060311810268032958829288268408794827236874168545241394931158692065944160041019179941778532570022964735741742723008309392723437779797382708237751279996412363926073112802362580715906752133342434167332643034476589108189263170820607316601979579546075617575165755527313827621176250652570619557605491255508248419427021562248560732129326097647706209498049874195862771756577837067580632206682326674787542877071432340805301171798747333246730881490352352295139445834347309187520300726395263402267307334029208987206155546802019817088110477695918197635280159999560472413549070638935046071682011166900787839440987128357404674765237150067018025996960564660840418949547800929315761240347502275128948466004201464028352603422560336790911453792316013049141903381480524746628178256953733196246582062580143806851713720579178139533740564357136948095532618859555495612348341861452437487411745682607002415213348326208869117413433042520428044803791323318770697159708195417998987481207806927830834966726502543339026351778942477433397358069806399001068544388833893324480232402949319029821431629005451725201350023600111196300331892323139359678733328339358643837423612003459383370562829016226097411736858479496984067513446441478552564654850072012158323024698927741285179609597108821891602595764429621726881225053323241665243093753761478356895781582647297366443468310993695344898953203117830914700179598600286483808036376067191192782274098187776174163385084240996797211382749901414651189066989574607332724986689901793494408759653779613292203021723427727070977646552936902048624120551405286654132196707911650737338671743111950342527432904825504901110149212912253242668235960303888107847366629469161594755370026833559342532139544879844738944697392361769394642478859065154417290523891930690288395935515739053098852852825612931806286431193119105514411346876016352454051243933519505354989554477566340323291082222414250437179852777652296849257312082784090438715214506008757345241797649375602612873402363730315715809264328660031098640420039423536065256854202708479401067372571218027676194033704108235264417131173496692352589783035572593038338705960052220456045374773017400569356459483915716594488952613421850344025728887248576995160080829245849173062985780585234704084771810527977651286185618872079668245144871881233158300695135847414925020221630746566042584084839763173656146416479983013768579472695870350912250993022999255102329185149652956872634483381115121599226480398345528281875885990641302966850818296826943814018184909479278911225966352394482259900879901458194377719620144676124481881592319309068848683520506411422918108059767502193875257569936933342216797643785312807744403764876501891011535419166792243630994353128666243540686714514841877688130575321720139641338967929180067797480644083112855658788635323923077719144215924852035541032848874194506068413378269684913964810042547833780849236596949028539885422618976831007123054448726748973814019347462096786850399198974851476942143059684173181992992351113119219441986470048770303803269529104352713993386859611904975159164126271673454663098888511425136911687870766093783745290399658511659036794452342100670628039771465757411248749325526834791042309985492741381445793685545318480312310330148274506332432316316416187954536907459153167094768856745788691526951548885660478152736911818113708480916983461886973167893736476409487261782901754167453648218925298888988980183434623459576919736592765507871089508052986527103939429311210655169706745353889090976772117987858131059134352601405892950340209265648636657747583352208741532810074925206472133499636484207837252774522679822838560975154263874089531776222024139521979137376666262658874112095646363433710746636693035330038996954116538017799168662038718946267953040430835688938878465979279184790939257237045848707233918770438579753494218836444647953100789962454872309533246738708123100425301299093448176735584367889802952952433351653199006374165426207326935369095474061413378881698880627757105903021042999489931375066806653081657042856639894384159429161509534058483026215843266286014763901267995347567854398497939228878065933324301919417733531148773786960420750962777419806693980773780359420122637631418967998494641643994922323439542905945275741184411606049149679141682707853509572750066190322880669161646904050125325615687681220916342428146963574646595451536695370430262410078902706217233804184602894685874007371088378129121360808472854752697404947556312098146675369727301189551268228722334729442366184702854588642656114472953197550981138427556032846391258863588550146196617332415741911652361091221030744744710062603822294030183708435159273082723824512047273875781778970448666948756772091546486233542818045188972348179062933179991913701459885864250006645762444806635234128696073085686512437778355849543376812213052210544262119891615311365817077902741890044578201258835299964191178387274973906609770920500658759054009453118984090064728099104741311128683659918853570031762231590805170773180014902498874609461997035528883771504343451659693066777630251430175897528094014313213706477705783724962674702885991422762617319996905775954123655854133288402222003687835924683687312739245196418190054392286022809111088190979213347471123614816321404304423037661982763964518042995803271765167672886322861213356437318073200161042737691046083339818637138559114996100453663076710593951057945564170053739222691899761541849630147570901511955137226836516033568823594066911801543529711492527148980895037917786151356720447460568814431295410051352705693732931139084549438202212962193168841909279700658496229623380554576007034642520789735016481147042678997489373446598843608127429990085008364230101530188651214579661661560739118106646363438417608620291784569218464582594193431394512673621740721550958681785953244341196546702853158136961762067813990059011347691019461215399799515870724950985228367914852526405011680633351270755988581590931029809000872560457717417585812273271663089563340007661396741605481766398001700729497384332060031390021592551532306129953368596663235421750312250905003662529009075066337419960646835447832084298723489825821937591010103679560576347967807465392643569889055609646298581482396392164102530532587305666685297517670392577556186558691868756055327401505676385811761020430672306870235771758212049043392643508584339814389379434516288108980569510868516205289299626119365159492063085302883002547979384832105570907489490333390722495071019834508355662661883054376177087135370351365850815176633619185529665855442206630207727045142495908672042017792138196111177123675994338553183118401518419709594756520572254367452048808867317244810573892906312880158564536718540166934465408369796663247911875107990641986587994210055013743971880859954151434565503712242859522199572460374148110595175864363904870210106839975486943796848100304593884715086438862847392750787285025877143842402892075633978828457778004836265326012589343443254147375064679582368661544506889390271016361859055107927365492351122094683904928669791140190172139315593920893931415810402652074639439845829145341915623893453752564978290309778138888047192916646470992660317773669395599598355374685696083325814088989585475324315791160084476400564826630279582199916921855402201025695536652870850842932272934572507369538775192221349610855430696077810504425387157421032765459363399111876890563459097908933128502672597989775859145999552554813684090023256595240740671720462125034293072100953704412040800853017496503401002762727431289041621822968115414155168123813789200234391978841900263633920826842722555777819889500655243588205254989555637035966020557700887528922692103790028522221875051274122704970193269677451005006846798932766533306182161189713650584994345596705107874500883886375228925816129850720449020121302292140511345299135456143505733667169852267201225459978023529523458443230751488598465107977258476693357558451773773125122853783452407337342320173824284532036250277382388053892937062823081004053011114326539618237175476062622976808527181607945132693329131163075117356217720454810472742465181320640970467028012029571808267623906128213924659704715307936499038123450290275837644211909445903534398045827650977345516664767275717937767121859681893693727011289785288919638880086518436534195134716095293708654312237832418047067766257564284584313833207335456059783332508720786545314287693495096957336750354709892140674503783470775175927453688508687252497099353468239218538444201995747445482690806154531419170375839530378483079443736766105251448224249492894921976911765567402905043198008506522030740738270313645990205827576628768987710858126646503047241626295445909300215938639131149077412414278226307132506325765858455987093988117095137877832241517727309126072466074868676047341675294155267287142057961477946525279236598635867677643528868900516212795673738456510701872074286889031191419185797073473076229782445817914138854361915562415264439100817404338582862535225310992103840615435054030303885684006446753485753343600619837670017350671954605939244786059851608622002362740394604870921842338501585389539832490224272573625881215307019943349685931982545750893913942321874113443152139434743511442066836743687930515002556723419220436168461257679598447203903627144360544557784401064465852716136824839984286978207507183474096518915130142800116966884333248947032497643852672017854372584615780569785378567702037720330744509628087109774111670022245083625880283623667116455366111299328526793662771068574014204698656034859476515260589693985916034541575935160469314198733840531794936035171183878969262379274817547652386332632995218795376622551122263330795968859026127038784773542317040111594602440829733596606130271334597552904151631499464265384797488146675327104416174369897173201226842739284152943350570636318901322042825939207936469058096372723545834765603299831440633123611956344904563063071974983230298054866804554534939942059783597721593675336267938494594899256157370543069213574152699584704577915932590774554450423849892347890375412007409403073318354593063875535932680713409057486582651533148563478771418034649935760981883302393765459644683888175345701112331300093195784260614473484985531338784946903935008520086964568325450319002649747476632015145186591776293778181423252047232062047756046716756375369990345466260471079804716580576146720511701879017128988201824622454600716863113534591303988530621867567672394281917676172129036378739207462816990600311055617010268935591494819179379111720832968971423917628235629972197566067087923119729478085243547515689677671603306466072327937920439468580152802218562214157561052747916777386705801913407834128199292019238627353493143764478711331297157821259268889360711187105288293044227421453785012459923221884760273199239286312714092452286588019054871595788036687184048970655908066474093450413305893603605940020903426461235717936895647785013502491868362587718973864550775849361647104061035044451188694448537128439269196592211248617691484820412925131799533455151832670511797098076126335669720321886872855056348521035648055860622171805220408675140743061766999527341305543743768158465140595915650724689413298955373068926230950440246403425148200193057405588617371597888466840099131884448611392666288457148255848865787434849240950715969219547958237457127457259946981389855451727173527090934424780139199239435903766852113275668012688719876349399495977569565090751280806510125181364146760571080837744812055353897762796252320255624151446635694497871590509054654667127675675555176255320923727455703459432897577570243379282134882842783824288802539270078721698990233160852868049147115800311763570349593182039132724718060825387137018836276890748268565450287725191284177521043694517720833410250905198990688873563547223235914001795823577809310474375968617429760475126250391291346636016799008411546311553839514995463642846133712787960037380476625790419697111962364382938734722517597224321872698053492713639553229286757202541541514782613876881771268087391450467713317187774950393837493809753978783340010818266975635266751899604179195773386357174373199576955320854184768474330490674269060823710353944232803856591893321961103599582759828221700734134992745895013438981796023229019926609600914411217933292338860171521623791766088123660250471833026270672391585140481254382634901002759666780698824891795760734306702310902217291732151915941126989138312440817439722928287135015176187576035988330496677168433730779374626357613474850563912790803494695216544318497492083285534636162428201556038167482667676357064959744031290389366641196985862276217557350811446771376200544189648974527597708490761583193498262242149087754877001938710213105384897874921372508468263556835693772072131145855138188920074352581334444395645108058711453709429262326709361519205128532811203946258347761170432078380161031847499519114011693684060610406250880949675053089353034034024213549324256741405112785267257617437829788636813624389281129153300076306873050700745163613493451600918036156179638843769261141930745182338832387997548608068934028357809869017379111663945795962444686770965217851563505141480570137929102021850761728835832928710570382525213573487757081703535450777147142442583605235266171292124558373922133042637247767133839219618070298264944652472822517026307506513212045288403448129862564030225377327374949025936727400211940322579607674114694345739773304844406278278500610368345588470939428198228480188526664912239037003140303827775807438556577657142136827006168163856934732136881050196511754240181794439072614378802020139793699878926221256762131396428383475550521073050541792645627918121287727801895158518648649473784155352237223570222517200936820453426624049016343645388567732088368912367952150331829930597257719371978026430010001766901180730242594655132745365532024849488676432190777738272630946065960853665846354396874355732765010764219012335304314189232004921501381664480989361862071402822361274886778463840125695109617730591542471933163695368531874972015552214578767495997629971294128263963222888610416831428413732204758300044367786705104815922686793285217429261269213831490308610073551551230956982979594024193674948830917590243957218205614397672398289976195295549456932138387866382223664561198616371292266300391052040284310799000116435585004280723165975193728947024382484220287664664738852011077286868191976958480240121116738460899879334156409688277407541780285335588900389650750233462453232526075974086861600279927294330143904023102233745787548001720244712894024691957862030705413633487678370812575045643080233291333650959274101183265432423433539332898605714782939746985621620491427911078823688780488421085867311441529524027923688399049437977183415868695828821397617145394727833220821486418102322244037261471377637037079849692573311232692204160771486572128839694679910401076792720780021434035613824955131930838605804368132438709666245009042057642810002094823583637762601627718981136512585780612248995030572398754816428532734010927621833481353590287423596761413230813390114273334003744117687448398057833517138432192046614086195590590758870213765619511549926767767524732752493856057352660409930242251869413803190150561459417927474493883502062614308171948373780893536341283275353884182330414452884117304526328638492499664816167788762336966109134779029653669497160996510226318927093803755587603655795067129338267038532483323218030901207932653576178317076989623892268584371126591162325744181173296636087353260833756413697151842129917778691329315590939658693413010398794626823518573054300268793271523496155973457567186590284296801037999344936037404705754331847397992452993882865716850216643816691756806772301664413774907450877395378741327271267312157358443995744656392008455902001850753239582644961217829564458795685170968196399663586404453617328478835597822403746754211609197862008415899236796105690647703830621993834411364594814855502262257679569419007806719383142658332642730695552282040162460397812567425290218626691991590241833828596694113663293003967459893628794542171576702338494018748981976821015028693750608883884313900913207685188093615756201562596018459470117811274836428203961383076932970786715547792453335544613300273797526519075141677135997084452931195033115935885201106318858208050406913106540542561190493729089495868363603558815442429809937131619532034962786283329056483622961767125244803538721161475798027971218092891798592163935889870354598293967897579112615512287390386455653669150347689298654135915071692846110428400133255135138393217720427835186397381931776033468926262906367098938277786702914809604854509026785709655286129722855515621547925306865428073841985962016401232708236285895369496883842155471001622695795187536740687757631007546336900151822815576733525322040881414349217745529018634662141036214838879558079564006667465398813415633734212692983151495004540818870737821822153518473939839679428948112615085901107987703047351143648106343823187168692641470789037970077834011019374170769867782165869301473281645934870735102682244825182185400152719858441039988652774007610652771574905475444567652694149609316257337820304658085415670701925604856366368199098970648094162207145855877782487817896641878359926997576294102852450218208093176449385896641696210585031922785664435174452795102332769767131384704950101041362351402178760908165540301845035311591128768141333134139307918197102604261378782623187634010045334849300946763018603774596882564024903467714128266712961524091006549767742544323312406498276943103340402733437393069322222141657390526892573793750701723423044790747906799351053827095850213092240745792605458517987290505148896240929773040739257260828687126623634280634974356465146273650424379573340498259742408864625844465895728445584263312584374400883975340007643167581003417365937107425226700768713822253288864709181920517946060128917740416342095822685095472791487096806055970832066132227991437583842276819795013166093001792611977331755664775287720619159354902450303634286881635147401220885793544669039568435662469986619628174803814578760129343416475660764670090556064207133839497220495001288486289892132952387001552424610519248770072057497425733175509520887384251805496957930599703295756392080205885294749495922705579852458682289828149561502817827481640634181533783039309743024986272276406293108120144072799257703222909638669101638593075858726616884622186593769110634481492433397633704247658379671162092269689719713114427988171136360633724518939574195952650199336078694845658034121764020790503961793233042625777742574297511546106222669057319312992028855944221388728734337689541505242880827429134550612772277168258503288218353564676262092855033398147132235351357013121381123677648785659458850333527911596222910321089371185082908618076537429556612143390281062393250994469196164431729640646609191612337159290530623258754460371707812210848953068221843056256271507310966546024637327160038058996062527525152998632947087818276066460005065980921047851375897043816655332615973143040072667538207841652757548891543857118411017858535567097561772675959693083063212351234620587450500457678313897661165995878338619326904187729202491837717856750910767164921676706603593567065306891644516220865712740573913404491798801981506485313903016817101921711785951029105919918266531398654664478917363488641296051433305585413213233145936254957902906084903778299637072715310016985138926925918948169784438185939704391223889765291837234812212668156263715066772961664141267897587079058177729659100517158522805388560315391192817373000336548345859202356824872354256629308691676144008080815869963060471743310292816732133171268130682848137313876020689512333092834083284710150435598517961919718096650852999709804392526175938497617526319506383760034695781249166608897444971974324875535078964090946670483062725107504113147004740982171916364712809978909375516089344405224549003918345288774493018399623924793560031931720431254386395462601629536120529927469248781142561261589704608977412586328188769376879886093792647565278690748516992908850546090430862983757943684291193066048038854091878152433082694307982711573910607558649810777550200075551417251749076311923419400178224856988330514463349826858067817091128660972871996524254176193978133916319903874630115038092116272682584834651039169400402746702389835123564490530287646670506658805382462779496841255872661613946817136409023479600178880537397015710013690655701346551276568443944504566514703807783369893457539507487995829649428577327155168018006166489405252283036722075645281418938361900760047307318604128161833153962184672305936285769501568878215272852185077521815008571359346315350099387610479246798549423240260070093115408671853724762990965569370796441026027992890470902695753507152223319646651038665932652021975735603214396500430659225436089267859134485786833680705827854886647287021684166082259528637694979606254381914736495145172194582148989109680643546836234670207234279731419899927823474247628188640245230706334722907909112726626326063534310501883448371838484885664925413367106484115675757238407850392112510075881312069193007125238165230149017445362493489293141511946444798672981965615392001477495129828927620859922280312339361294208245327431631942888650827226783397823926490110865964521910268422733499878314375764503316474886841388475222871065944447728424371186248515102783870630221774892779167397701628196437810146845495091712187060618878516792791668872589299494977296592520291005346527546701793991293234542314883286171278719395832505143241198945646011231108648091018689367262044061052318799103928149926314907768552695690870527898435746451580076967062334296830238132505231129065308305872874804518921842701466219385622225362691252272696523486264864596327368338949521561442631994950523310154824629143945942921591399708792491409138172648921546806148425078632595594952857450237231330048217036102455468990667323375895708465193545252170040088251461492126943050713825250778471174159089796228036722487178147335308343252555900890654819213404783010410845233070102966302281941336694788207437260974597048893813777691761898252663326213955856263320853831051195284226730457830313956189758771737326957531768119344664961418063651306921767916098004451631833144466681640809125928645932474718783303558730092285455095295178443045039761255494438902240093284574038998010912184157249657171884965436774357594368912186794975772301539154272442124001225908726322616071236188720214522104332188184710370618568582831029330534782598414341466597558703601762791690809029522159505952006280531817603078548782214522255004237987891408339375268874676299164648722855879484334425764599237519197496990208606777489312541746816274509303083193996047637024700419253478512759596128466776873863250831106347273381544276200522137043926581762945041881262021405680357047888966382625839911506901146192069783526778063947190349932958290081816386040402797975115498826913396586889643880305009740365896158812606733296562189303122355638338994499183501475244222621380525788682846185170969040845819830607063042153825461634673260577063109824007291851762927312940486366283790850239070721020198497272002929147107448821946928608003789610203565697343243998820338214296601936583546486003173112770795546943171240541106000605078622036885987134043864517399432798919751042848904038093197853351066023093168826862173288725203385292540498339594898228120139079443784209443014949176367036598687821329199746549448387159743237571695744242491193195299175137808935929967833947871773403138936734961196147704369181558700617283128762268243997758240600213670570379068907412832427700092470408326618791355540759360029442159767965228665104435862144755142943336255649413256753174783722088217468449433632415189125263382859284780476541198467075272963367110967732900775528734840254264083932435966048376687281094262908897431490908865227211085149204657205617674309433983266309919668274857187125503118730876421784870063123317655022426238124140208450231875540488893233460150657755228907931203479266767067487444646482161665373287381624321866874257940468470853511474279105531833799230529012416739717234284692927350612863133316508193734370248326570188563470108573479582791900208903004915685626130288308414511081847527961623086999239814720430810247402198412877839145891451284185339338246991657789335143275251200829591892849814667294245367292957549178997303987881525329739192039931574645558952757221679055544123417996512422220656734722648932896405335925739105672204685741531310721581112863209195107912339556314238841180797832530839196043164332843735106111944312909407732838607278798555178113119114053039614337567828547041442107536674051881806825003392317544455396094057159055253120661317037767543603567708736725078055800870877921398388654685599108794282437701220485568932489301771523158368025060386823415885708686163406142373612399212917798017620400131819950723891285517791486943292588391642552022970504570922516617283430581380190593596024360155245045715043047647971660452971902903471028535947124224372260382082308811827460385458489014998064389253641782678629847806580375485944430589509042035458854649304629571663397743862658166415418869327469184540014705588857874236084945442317819094375197291721564024359617038377669434391216823941954793632769494910844403922869305044722814364694780246834227273097961581771260897545655783727603037828933608957457616400040729434613786906482696797881038786881471440530703098707878233040965921889878314537545919419925242724542909266178276791559798364203084319587853155290331110767616823179552855567454525069664500544654454649462802673850154074365927277405774893481391503903137548808387926794066460190511414972739458615639153477924342668740132553905056509005972263874653378858871492888829164727286346457447420814883005552151452705688266418586561464083471387983965482434646947495341978507337244147406121634415466316984892055016139597727080260827567513169473513690957976777013690673394172321881196247274573370366891130196897496890594104119738449432347831755479238428832066696091908635449313698538751699648431000706629560221306157481888722280536649781785457074574803395774260970650148179285135427877886049758426043000652740595518320487520460324599650719898230893939728099858382632692174205146443187773489778175754833572864091637133168334193097558095636608409715579820312457070885062303755420831357482793191285594940891820355360447686512063923778616801759039486819633236064728852246979903922383732439991336320908755598524764230116416088137492584465118425216569843782444183731900581231097264305196061163767621248860576658037398930409935781171831816091559612512624525489721222817929155431283722723268939717704313110726305980294577149163507790124578053479851761233310538900417889830653440700073806597651661197406951000086517234062854458241910836799436987795467496761598464325834686814873738216170919665421505134639003096864017906330762176472166429579866238361085646305588837775599027542467905950202255758651295248030639579441718225919983480328856057454161486377289571623879122080727557620050817428045525906537129487368099545866271230228809147720276291326278033068702567418594123442810713993390753103791800040148126320232006656786698614472904028715966631351570429801340960460229740812211927747760142056425938559074418348693613911161616270133461510380314529708691738066161975686329122446418458090792602693804080350529287946840656959869049666158974304439349336382705409990065074408453624482629956269178812777136571927422496606063759674083626139631581495953607612110178776661511815423452529858100344922980349374287219941783216051974685059039888559690910719639964652461602951121571827589184807160265961819138320030876758442464891343580884459696224098746152915177669348012431835490002519492703247600142822739346838839437713147264234431638081078498960096241814488930429895172267972865946724931425020700360061424217286673274766851698795456201848252250617795528257422996935922984281073479936360772310579470165893874693395675388533960241522485639779892214189659533476454846785250425082628737946908823029260175944483534503686618063667048257758095060719487003264864638644709784686395101377706197054346601978239666457364463665346221983057476416391084077498413594798111246496608976933557260567422512596438720880730785015649884785456946195387919361102585888530480535391464912288830368420632456979679619195983487568320227617030651747789222709612626317012514755795394613929366078358784092436472867897765195016364848135918738712146082139025529302813851220788903287604244450036126139136522883713249983072018130526356125724259695766073719356328622816786654152452610731354328640006229098614804672619250067641740281646095486361276321563616469756083180021602030608304275902590281102542011774203489147904844112115926893360590762217066842386644494330700290432663499495834801196132198213541407218234826346567163786773542110415890090225281028505560864119067627532951372939994717193931296324703167427272207881420873208674935947235520425994996268102970264559716118725425602001796765546799705329445346831776852451807086069849986717574556673603677053513484321054721658624975310066809807966337695931366457613514924058345535909038104738141141299693536004735163328195425028600772452259061443634935760684762796240241193274195913468639580911267986044989237332339033617867329512643779998043044398989462189789905672204050041042779234911856222893886081662232651629113145941173464921369048844732922765110223754265155843726905957284000567258479232849235626231309850378915973784751816373111517605643079115195233691416670318517155395422478591672492116769346476069713766462527542014196187971683344519446464221383669084354597587443887852762805694894778900969412938728272637529481430772640128380251380274604116712212955219832957963106731713779466975525353154190562381431601977337265311717804358005613817661956439484919825267377273288255282401457997129281344244048378365323702469088065809941369186322269078569915773636907708449608073111413409520632280221006191897705376269555727309450965399656742250544264060965343105265726789443366131219005304282572975535797545541207788435326269819829521117667158954195474720445254043905695153223813025910369880195625226161191618855598993934878284935372730693912689922642890114714070956674966653617070935805433510893847753844915221839889414765702648418833572588466306965096442062362708914451374834561095890115160401164306518413712794158619113969255301126264248928195092604359696415363535249675203246320129082429891206192227961750056034785884045551932680484709574463151812231887042938917133845245803311962148521870006252728803022766670475647338684589823109095699850671677752930416895129983565759643925012666396147436357536656033242492364648056194173556170808331611971507939547264220804933407313279337827398395147874184046207297017686113438447432737714759226841750423272596927684393021528530871496254942522203723825653909945498015448454270925640793409986476509642775829144780359007705780304604386291324476764562768270143034743813822313256673593511514165998555483087880435483020912078501282710311893745486295841550369342597209946916609113438248261711750140545726987414368353185142344026123328275678814315615111439966145412922998132949107366780326584384724155831534695505849894182202277250426904182816557449394602513584964317563165090135952529864362697899017009022146694550178840985597337591163097493837365693192167447381482317164753929864828388305126967591061350636450831482249840137826238765145795191627451378037657177876576980578296973615861205115155206525328171553673471368674519616156696846511386376669790298060915196601962268812519093077519226756677769581792470684147776395585566660408517561758966002651330420136969940843430365923287937940611081375133070898083043731069440330911325287949734448421640754478960867793618891284476533288716088961670033854938743649470800908790939527679410032317131037809482533989994496576380437311593972033058142412295165337949944691867281418343140986953143382582795193398789605384761452686705803437451684406734775128414063323749632691048434410910557490960038159147354064986042161338222864013347962779109316694029393723757044215208435541785798616460007944769914829265830222183855471126032212103172746106273174430910433897593648842758514813001206931836653374267885586072156132434378938048586789830485875416081932659964565252140759567233588587668766528841051563849412498618453985205941591541782267161018536885982206606258428426050850699937965585709494429286900186968100946829111658560023443804199529770024742509174264795672806918649493331840433767802798334612114886943192359660953829150069244196432994456225503813859861068233190395827497401031272426361325571656937337747686936284765785205562536498587240122967031528126438612369333636002299652280472135133830145837225731545468822057039116906763593068355546288667088003173351183114097644153115953768888310112182055320778111556433905044899929072950451327505224758255759049402434559183428771437625582099836147063171861359823756497322088742561763859623281657283092413264655345114078545339276946918512379251614663798412423278960865581079491114162884294547456913173109543995942916000543619790244375716463101447924482218461898602900466648809279805504688428588168689967456659781303475826971293128774407961942889098947655255193802849633418845255297360726191399460675807927571712808210763589089327633007651814851980359181389903229253206973711851699053402848851807556137982205355704492667931853953873372568741748490126877615010717072689254637355987401563700400768720946854078252146151377444405453617167812416098520450560257435974149790788526574131677121016532228851241512790901130513093112681517154472303997627593882698976872957365520833983400503528387703982123645730952552604477778831267911588131270786719636621297821126489532202434416411212361660352375873631622870357029610308587418804448079269538812633406148311840025407395412796780654221695121534060145703602612755261777587533662703687145161719327487131649527289451484652240995633581019639238166424631856603230673146731191011097032283147181187816603849458607635345233178385783533951376880210777020385343855806678164452639530403547514590731604406049157694722763829265070039582032294161165195929677946276615602813721346797357611463429241453978796469938224931189454884887491168598606515456961260757921601540610990607910914721921038196247061720756827949764806657227412783449880514161993696748756505193175480675769424196622074887394866724297154623741025686781672189399875553384119673015660888220491145208319185718742055047939215542788376782344063250039039077222650005331584575615519677531181954605522228302751871821506333682590044400117682597028427579339962725872292385771418896040439627089997307134042771900696660399185287630863042634742744023010745231589905711439241464624243762075825991949550424333715388203962382006393679423418308396189583979556393185835526895707230786449111479836266629160433250854872919202469757272731620906179846704500710443892630049492777221782990465084061488543427319499897646922646616607198940855665744201856794665442613471632230496945566824736871334540424457241159232242096589382761590050889754248697769384599509881369001905910308210532227689487060678575266776715615492772440634067800756550431065128288323413950968818231925155870516620717438170774749888450462928442510822865452329421332291751411864891962501710854401224863756981477348624056448028280692268235975560505185148689486599140288194504434743184158361204816688473418692365999756302186900762715741431117428459709460821594971298040111037547727970244564051977405159754694010198286886516764763479093891357193367723630765464764534213264831071891640432222670175446361749381589052305343892597041364605481871690429413844479572960595221003267066986145405649219053931249460065277218985263067741267607985966245053836420022636759711601006852563446717904707433704878940750799905636576660011291375728104775262851114751901789800745084510739852695048734496131009785527071052961459202113395806429493586651219498633110176385935931798611463429277492807473244750816040828239384526777212806148006544512062845871849772546633817041213962026993999526978236019113134803793220246535327353041956187109868930622929110018511449270044022797108763163298192261181425229893197809556164180483691253996047996264147340191908929611852149344676909624690289150816110874648215111433356302306025434969484774749910580570870950197239623248837285399162829853643967927188743187090624818502157041711616368607069388126845282310638052953333868391261155817127445193495027597074817309718688120294394762314249211978478694438260972643148925889791212463266622938272931722318577059800299422142895360737782353518978800147290375034022499390454880191470242702962978287872239430314684444924546109418334276012159991124875325852148454935247003052847197499814641661117834079056902977363756128200820809638035827405330739992412036965270120618806736280610868248923145635623897590169763118199621618568471002682167343400572838934451298249739936617489483427921559506367294287295372653051297339506691186622278509604345608555973378932226677969734324558271375386041204060940424091709452650784824949778990160185392613711417579905833563189038498358638658451879572436303120006385845728795482605367952054231653154923291930499305069804329780941466774801067485461673465356664705203305296753230638693500629345391747693907251446725933966433790201266115891997787008937527525848878570743464485761245788848700126099502661860227573658649976895982641805843754478353631659782097680779306692045824935254950634810659662324973436087310607548821343823189869424854655834482732509825827463387382051901357094785263159096303390490715153460212297048351003790516239636234847222380500334983274170666891334287743440831179607943406773457961848961500897187067445225319542655141467281397886339658954178948548317525835201052526259733413919044149963654879302661309963656273266439467594645460751014009080888885918987231094061894459173681231169511769934162048654034902966828560673195056891513691140505925625890732532836953035573330341593542582308160340637478369533956443946370545088001212796490119153770147609351925827628038911462357675752139407301828054103326377048043124337381589784585587928056631970217170703124839147745623114696809795899345981920594921295042638502399769255674971438357675857340806771053359609423578828969025715245537622030506909290869006994233198602543981119155541941537495554132664178860766499801011125379373419148335726603792441813703959165059417167774315741362766892113900424491421008966307936352373351772479395341170885289154903105261184932277066788037097610545561367305650769448394635477448302393763956514535230956833866386790163378068812771218458512962379282959415671597964929405653115615973809639675336352397488070769374159015257586408396583195044521250614209872324571798750602206105855487261687264819244837253568200949120905847136900809401053073579372884737436009012515750737346354225955829186962411732093370054171202195502874725277074920366709670113151694997609172748049726107094439156846164197886901194471535481245638936427705574657904402201188168707023580648324543570907407958121846412852599146120641435650329416794798973129212571491882098983478436413615869076593555785300291576108007151655121890447629736832257406037190826930486467188850803451579139441568174721155732073295914895683688138043989391604061066825174317716794229083991422657704058134631382049338253285665416126832689142965909485073961069051417643867033422176991551598474870386208624284595256201513166505563032610397543830422175303377612883262452347656428272626329669733243078545066459319474062477707426192060508501880853600709603841364730716591601401468339889536651356499241289253700650119967359101765769646461443936055646845267266725111134216180786586667391696088864895869738986248862899315511589074071609884364408773507940989837086414953494081960746761186984901065237476668277453602742064301756149490983442622061942219796021628831798858195348519251577342023028030028602501714293627357760093133962733971007560053332257174788644015247876064277919164483457581612623502068047180787089287665126682334992147536130280502711218562411345329111594371796920858173886990769683954510673744474665557039826192798289974421749042213086479334822524021289793690801123672254894898108922261020544726740334895045354098585600230703816324248334157908796700168467967017535648328260146854613872001052408350343465150195493705104963484336488056314031811635844880141510089844204728550081526656121726153614218501684837435549846919702209719118890996838271134142582027591335709253074412975139731473826432215846229703061819452775998104029713999917071079037106277432326166834798262191909252642714106168880147327347820081021831299341919166646090753900684039182877702562471045612155828220905877448049225791631498428790571079843385789374426634054968006228554347776457448505263983220788680115540192157720985864478151191872797353880027827038402388523605997818316507689042710787870858267535306851555506328581029329377049909907301942744955700877076771951514048288820891921249265517562418005286109607315399434040568580499744339195284236033405156755079331473844556263505915344382911164485484628998942596871442480515440679638869216141241140858800567059511954642499950394243962482037797342051847412802405439722673171508515620799137755955235722257061019908928816308543634019805677643057552936005385481276123778913247410665637321850424311034356812939139197103387007101768195333364815652107279050910868850312920683110350856087724844007014559570303968348551191039022655696410640576339481197242665667542016263391560252604505251546483264050101824962866792862774019654026023431336458571906663909843273626046072551263241283700502197758615653182384661394998460576507158779231038350572338739081559330343613328227063676577610703193101730661193979476120084275803057083118903129855160347465948940733727452182382513627791096637365691784263303816733155419758529942281289220425051457844919538736807470827693546348806535722752097107135586060497766447651585723353510113090248296723631701072222796760255236803017616425984465848738901709007851658983894693782381788565397335904193662872586569337199354003958093286050054426185188691003349357554827741355083827315546143559773138506209518606900447516748383807700774056960131497988057545800964989564902467982959411827964850870823398360548302266862044263886937696031030411495357020368774143124112126177071609510148938967596566406571528273563162251424435794293216964396327189487117109936626316034026802472970022342308988118630007022322908606348908230610029399558553708571366197914003353706919665592907643822705163160613850675618559202511036298249954303701596594935665598325996157734837402220447210189314768286886420698079686156356681642053105415730179549476697100572821261685546030754322347162143971706705408940255412664050850383413157298512058602369054278453249446950794775793381645220092786112020268908899307588404137795527622254160734167027333435020587037119868293485788177928354561003563681432664630778668275059134807787803003173855610164655479893703600513059628383811496864966050818035290374623679529835402947687113784419319108230415846679882289744212668150209023920800894961922206781073123692214952780670111983843334155912525757178203726356936035727715093789960973467002394453610520634814063239633738109389802374591199510153849558220918970511823022203067309567444499994073393730620800212763584413830259834287151505533631868544606570765664077020809170771290679054538233195043201001784818768425172134642570742267094503600266398512142424840891889733613598662297756725793901312907267225690430384101166703303893593128553586740403872880964084872895130227506511989678844616580272518560186645150256891922089953384607859290840109639255105533453146637454324677625672218530091168990595181236814307656369064112716069943514918908357236403676521505315511845327529588766324724189884132647171586232958681697548041646533069588781500836713528981747633341896211378611495431566886031767318275911604821153494563406287867362526999723326886076245851329278047517299137192201517058576370649448353705577676362348429685572196555593831118048196703351377765147787042819897802702801491485379001935281142454909951025040084608039705845837186631858111436621408302295052582645400113490577765643899996272485745639864324503770301768360505195466879291198449535206288474847569161662749157484641303112587949682229879833638047981129786448732358269818780817574137615947364811945528901028189533620307858820753432624817005814039728994867716811930520735190880734566789035684012556082643033537983784215413158051926660155484544804540600157078183802682267084272731445158480633350216799931499718346772465174665034876695568201348496110928953768786705222088670467882492387787234630293162962565336233292458908563759056851839279254220528667869093679854007384239067893896130625213602375719813587975676421138164186019171542526367400033733391528324591413476811688232741060359530044570878089784525955688238790586084429073923369602436624924528322224022952987606776120895068173684280363102138480892741658734312907608807504898120923130779043034387941889298895529716161770390709588786614722871087035692504401007006497648428859881359152402253000379415273939198445593425669966149793019789737451114481449114385685124937636800541443252110574330469864792801075529383773258935807357127069081341808225661880889028631771943260595607960093666204625041240971819153333632259611061617180146271602511747696346608424840887158879092490383016968976053619086671490281191300729857938107240879844198890677345995855701383924853370477276738594039488380202364326875850596231683378128335415806214298064181638992056610346447491566705533474478431173556707011135362814948789468180637254015480182003164768351241649643202826157829853865076350616110682442966585301137425675317434504634267383263609158877139470168370206995968863745563925200652450379968233240057020119968815520347066912359329425107565496616799732320561527823130233167923896574549895112324960129381933275249157122288461829517548129607185845554692384274783333094740329295507749953641187060851225570015270402423163959656550601198409271813238687683548818167804703636242377635536880405701877740518892826382230929192657714299964645278131701794143622692581671984814942073142787504101427284548819823115737164030861680486272842832597259036771914890494886606930832793909494835268457153985850996249426268052776812281516096715373779992253413163588905927286489851589612599328793959837773336565258744160561862639936664746403524419680917439704904860298162644502185513554494803679657909435774981232999141211326691385874040556508646587020252996674682220711457029218228121484467934162600319347447337570704511394070717293274929491501864889005371828222997015406059292658208689395937318399744779295090771894843611349723425085307035024775161749726813122261568307993578744273579845259685325169949157928607610820580584247320219690644858076318056163252742477932630765405567044942570252188036802061666464911045414431113753647964416749316943001023645006768748512566068878132742829708399818397871633022772738346223019411300062938438383830048640341791725955398724105318668599116514013090734955371218047692529193401820236579594505855901849626243681549079673332583138214780712991835349763463871511525189337117998873589370479631591000653450142641898403586802304186407227140788544513812584535407186593755305862787486906856832308794463225242485944471666421802619925637218685674706467502102613777298011603312804181287181167189684524062506584173531137842902526198759744746511423086249870031621504879156615971577955231120579663619009482032289077756410008313536425181092725907605766585069603337547304478137313093258346190321825836642572338897468975658567006750379643869230475367891055643501480870166404992641922789286001794812139596804938613707733958982113932129191867913643793547110191460205614169804346903267867063459289085297804647057798032222683130523904688916957331546328507136048609238611161240712405135791978293669949722121740694065264163220383122665223942828609101401656496530715192989927265771237248019312446793976471838302743330279922923913439716738832394604235330844190488438403982213136019962838803883030072216891974347648796243873365722874749039049452309356639128602636278112395658967860737156565219818874550559560707758338708542444380656940670895479968758595980596379218413079647922818897969857220339507415433893931947500966779903363665390745591299191712342964966024199661362357000813577952785580937064692029647679178842943893688534138569856635239435690805150526965431077116061639621132336964350166989883176404843695895966343237147457505243962358887274195426801804247665983606147342449474068620774766140458822452860462667102456808277284920422728127978067513730226717892093352907040419818527688876358218217431800566079137592165127367831840526717082312795006903667397952218546841666241548032513678386446977973514325662293952637759655498799422443157946640069827545009241813922769116444046129683053128437246123761740065034577515930243701223521701470779146865788398051621403314115290550414956602469731463209870993877660654847435014773745724000947441202676720161891854944839173101996564585996931144401293924545449727521098736887182148521296307492851977158387473266505964383078735695275108737734240756705485989914345566150817181769115137194125121487803429257050820600204817330601539093027700020506462978512717522609008735076974374548903472562199393424261418500253861691404566471064549929246923880403745272346727838162065212735682150791313576438715059930672053803023737630554397727725261670821808209292301248921879657997436646423426425557770664842326243330267886303533742432010681553132324933911794013469070997895000799195187974426032046302261786349790036250433406824082070471254529268047329276128415116804818635586612598749016589634778864433744948468435764462402492601946270473750416071744659074865199416229389041887076040449900833613703827174192686447218453859414819897252025641507586634288583223312451290014547077133361021458028375991560540527898570741951209922098361293066845787206243049754054258912926494729612259745010238254249207689560652915253094743802637348159202232020589897502824792637702806476156841924717685922111843928742365760428191682691173889596201261254429611131212493730524299782652947248790246379766632899169451887120399407659403215895481439759347581464858625445667159604702721579525178257878772896286948353678631678073915947773484736676478589586273805757397339260075048070359329955090978558353754261004368622233855289369127341587709521943517497172754575675626674944603667288595888838925898781996211531720833187514811771630805481718848603173016561443736940563292189536541861477008979899595982874856945344959144367491604686058293974956583021901538048514314187680422103125078345345758464729580890321734215299439206577233332057846478781079793302671809362043353092966984075973941874748835515462560203008588690336534913671436467909616902457563231437063053436601883558111196583417528352192647229445609539561794093552198815317113506946828985052946388125035677733109646931514351699159908242073208925479303475672734778295752832506821416949741035604954033501849969752727469621124324225772237931102578320036218827742751184242386621794237072616379175270753968115338473905251885969849250194018153756964455815017431678038238076061499199535921404030250673292627762483148535849033951882897961029684375430400578147631168975704792745206258834432734961058923035352404107991220886216168093523323952416475669493041075243465516670142703961405904639127274612706383512204875969274040898986916955940114554699738501691006042812308325112837842099594730583641802074725297869771081465603146669321550656651601449982083679782338004386613116515505652110071912654167735524561430841065495205464591209312353040130559599145611957311101167655049108196295848441949780875932839741792062698995683074214074373432367237972659370668545752223103446644481188163665712081639215968208135089316141362615466530710737855777191003303495414036090055756204061739640576588796694331212001260251321023633936304489014477900041305923090790639114808982607132960534029258264056870855407957667110456141957649093670547321612998281486810216888225703580538697457076847349751726429515046835390812790002966387413980391184280810560331609448001401735551680454921229557624095332113556821506872107132848167175350950286829450579553757120315649949362005966833026984010361557127443970379170878939911189364997135084861517008435529734019238114325351385778467421487676017462387821843200659145578999692606226972882747154536900307529462751358953356653511233839847115576620311290634511843148017194624422692649295671529151534079102108678756509430332131761461872955547007740840914686520791421376136472342088640944973774525599591500847074338402837979738199135361521266561847335536998262224201574159096568864414649173652774983833037638557907844204298626934004911377481533994399687388934787518279850922114798868636686247684160376271482153579171163695452630437827233411913380574528495975156029366289703350213550935921399439160869871744800867054449802726645321378758930524077603137774942351544780401846077086405792085420800352050406720534610341252557890017536914178335913802034207238099389445940742895290649064776399259609089646485186931097328316342155670963709120139807552653152543369156590874756252862158660680199504361886809980247837091563090517883492486304209572702602283088736939231051757139848730882881241568878810984791557483367371877511057669189511544859263392646158637175379710600164855760970620402998612004068368096156800632650592301350914256721919465232330845331899931375445495093668513636424345908364610578497993142543891787738431923957238548078356832313629182099108657410040715114515106524338815946898702868731982703674707269540590646261998008384827887843389053149085676407700123164825546513334352503555808392238016169142265162047912293360074439519495284046925671457892407683980195876092249427113174559232250567883111427602573831184144734578260902553774946666536502041224223516150795817972584534513301362225448168982063728940202794685045036347528077656079185123794800414956798076210303817803116254306849311569528957971076076128461950685586459260863912306520632145494251515684881745121977764478912701996820183634934290699956051883443184967466182675616961213351634730493500527967835778111169530370269060489269288246652781605662165757011527790951368173660519016401784450707497032154167566885914636288721216471403213272312628982001079372965383810511623861950602243496940460176433367635019822295382365025883590444891546969654865786811305071745827157662730676422212983522852922596489311220508700108975303079079235047591618609386633492671214179918209512281123078090102050606420428920686779906200165097003836467283769092571170873777730926086945247880954058072241101331186834953724738177378409710181571134236538984135605018699423056207462793075897902680854450303415116490686778191565818282467663462497999125540176618959201257596654695315769763160402047703961265103126940167278412100023008998611387044668935471706316374159817701245034702308927302761741294051545578411474318732405885376588836044174512563975365038679199826147690840158541070694601167240892409266899681252580067087321294348690494683604601079281709170519736524362556370773272111984733548328326320457586771226015768398955365221565162439618256400761869701005978361979516952543365643327839370830918719828181275115312738269042750507931564612248519493707152358272390708738354938314056147165020481089157622697476633151657897640228799395624592312221355805043277538975381862141922160991774602834691936452457985350717435580324599853259555135984083035259534118605111119449950196438883220442533619977750072471831390223918891275792047164225032176414816127699696615483643810922504816664194019832917244524189293997249299272382977750049111310169329582869288935189687353685127799674950903534176886463226304493470716003049513447318219976962514488990870736771670983208316708520279244678889918241020164396048713815894893358996357823549473715226461467634857334321939859529654787714643561692599768889337276348485740194704920336598338593213238021044780379103783336810631116169376465683747722088718450424724115705354181896914930615563066087498440880323930153508558455511626628569273150866482551883517129792978825662363541768502033714871128736284249081611959383392514406382123131162909522577765914394751324101606930159939913155843887921167092469931612622496364858016436097903606123552661330946552088469216659911526961629475468110933534073030398102060669139621521709916193384929961781396250671225213761815139756272893808473964515711866540978651055535540496180595206631872566702741300373825890505727730554000335284314992665929789904686911765171757635914628890215559874477671546702160595904909371448296023470724097669408364611289351542718651157426505268700155658292003109044203911083232692544116193563498805757583767305707180449990533923434969040522983468512174815075218789274954642958980132822402889655048354033830942368781150162453196484421490002177438090069426421225151621855460045642221272771049878541855484081743772892347255699314568357232351922215124658194686971091311666545719544356834979056123021241729463295764639669443279563578269306665270617802327453283838683243105454147296179936924130076097506644991438249005000964032336116137995192756477238456250474403637750290152235788600159550702511014845652918819518448770082231362593742397888179997863463327814279678456151858359474452263086462835694969566958209634189109422448421342169283649473763450954073305703185193668564383758559416923154681844707849431991524675665589855951831040984012525452739567212298572215960968123736808130397310705886286094969602781222909808464344980017298838464045795985446655904517711418362866087028699779883032801540151703841074043340927489464840359081515856725561298826438055137601850045434761664447930011571821099776962933953296718108221129401219313983721828300169905595874139700535545488480243675796070513593017846198300641986690917935056884101566989609017203280334460897085417990953780052078532394371071923761417886284727772605142209081318049953138895104559570278978970447157732627944090840755773417701015039174108657719700594775589270509629013347572580276359237049589248722058298910362055179169172191669395611866484824392602240994243456426413798260548205171712250055278722408697218612744852209955250708631143440323594917357775575023069110494465082697810463554510317443778192997576651497445334868059084375335913052173629888522627244133813978360071907574832047339289260902958456655208363166048924848686574617976743339709900445594920849072090389914892548570460909404396048906209395689988187774172318750887900096528332131249291415991321399304414908458278398055588372444511576895979483203850996589122440321804611778536790566808726627501415844071161885758849385081253404585016243924994331845873606592622474415840687618367895972464114592591476076728236029434286065398319037558553625586135713887830369110377866035688729397355058642146853737311661741219200686996323999248007744475625893173086556090838218315583903018712686166052778866426849941038338037397417739190134942826611189117091111899755597313006646477065218568662662086138700265700777962103799634217984560390125995003041152426248518199076656669055058878429045899745580067670026196947523325580070621946872573886151195409326215789881761781603034360132897608448982751744177917330333121741756271407194416038591537473575294821457686893719244111842387151246648167516878245452880101362715277221225746631072606507945756211229239820031280842334338632978783779887091154121862158482173904347646176866472696895932381081537484839066060864395704005400544638417880053347127248575829449533774240751973126625010207719974639276365211411015237342861800584829937933647395684580089904179970320068739134097047290958459174592961564463814591711773928662771108837460105576524171507276172331213465295288373157784198543553150766092551898087114629242274055577488029614365528054669107523133000787839612320592280401627979276050028262367515880566393384230392908446331109840778775146089384115448548254998976261820080064882367089808797873057253736714621056725270093302819859828049892394700178561102423696482004742988984777775430217271133952396229339618175855536885056033581128719932644221298375935579886681474508784345339322163319695448213834666904437740612690616395923164957416038505649415461897643443886603028725433505753325809290585927287495186138327359845468922916267487584754550168430481597162604478753176321750487897986491589505457030212416933648518525847647125521260946103858791875458851207102463856840495015043953493722740712246689472026753269889071997556921614769652174106314476541983476615894664084183154713210907582872084733009467755107421866749377399474950580533900145232258826229155325937075915437278128596588421831286439076859553533417610424223715291396060238273477989313290984892064929558267648991150205292667385059103620417114906361136164957718637885373679869687003725204840401895909608884316931404642852086463379117248576096933442913855944604428214946865729983265785106423897443657649622359904565579034022132388424219038384756602184643660880998636350857763839417194953502368521746766355139390160349502801477236242432426735078415534044877844593611303235934437486369368846253406574714116695258974783739261990052479376951478758871444369572102127787403122603883480835295428175725091878460427754016194780388187744070201390625768540541472459363468290786874415069476253039065560195489507357261020577817412795598259818821304274050726900436173681741918511164247920657569450930560232216477723209959320841194613701571711019326276785268264133085908358109446006759442235596141158044992374110523328635642787924191404004209012099385725521973225819678830707353838462701822349124373292657116982327467650134843745639475761977737436627766333222694727223425259791357431914606342866115812821994902133746744225714919443436735699121713247256610016684914710979849396315305637932274264162257619984313652207605015911966610346153142976126539389355153503512213705386719206688310645049604933539974141833571495882961626040383978362575611371908004478386133088295735307768057751928052496972647743699786656569335110735921425940624104478431210523636501342701826879187492049993644089804683074618425652220456205317025850706314683410977166127161578392108839156826828206519936109869291489890020928781832019025272123888509923364702243634682991530705013997678676328473734565008812367766760717488928650562946724262260281482318903836200085664536464940648588454130946379462187622491665290894899430506188322635213021955379339449982456219904602550214929398142861333634672369367081423056251393704783307430045382260731613220297974609226971063247872137104904680572295459522690750454197455213986724010837899732110702831511224815747217898209249348570435495934511743636151267302475756493869289449700378506326552553374047013385323576484268464494541184818510896008593914082782416045772389911768492621301223502802859949745665499639883335649666173507995374274668849973819781908323802369255122796786463043022813836370964099512144573722480239757558573216360133410380693574680387342883843924068304768781601282855448891396462872104560392126120103805902892792306369366625945168070315413636831762586312233382379432865667775022943464665587944957976343380899835711456968102614072155764086645148243654924806282788331505552663266380238817338975378696067888313747498950486787679112746689570373886954186585301000364126308329157786029888542151898222685549295557081894668013594245659425390198198540978345386226010589126902059534964376580273822904256083653282095536422451121460022021434042589159591935073843287658169058062960418737040565153980607825380530690810396218670840912349004483785174647749360666521017175222554168121254112648107381831282253354897563500808943463340004357853761986443029397847689638953220545906260177356825345940861389873640697215031387323771817732017273853810008189261763686564813473254464423635320668474793287309737704914434161680368720271305568423764412548570730309630298663816639342843499978829645613368372802222684729001861473636045114313369296516690785835457571245007910509456233546872847674791405944434259892652862149341724069363497932914354278359280742917762693619729290220330586526673913389864796459837250057873283276801737376222940083320141304560547111879106201703259093741094658365008500831496249622077371348443640595983205723213892344308723889762990678325139735971269362744230973077612409840668187478296424210754451211650228360840783466050454158893829541093410632059710271838737007902606720109892334606403842171378196666703959252280145491972239934558692326477410851590900285463830116969954173128279719510119259515286935101119779471146612362257082348690728808614617876107483428106853791245618837810077969564649172976895497537759842167629766518649014377637612264501085584937175997599068172732096330435057161026066575850359346308108625434526727535977499819085084927073860840563931742645798393798965858511469391324872219401328898915577861489510040941779500099316508933472975671829496344397037143008210399289804178269677235422059809803561452801250004733978911225291482387161224247068148127968002893384391004176461099932462884195325864308823475671187054054618899989630738171493875046854586981315048821892246440269641111635458312448814293427416920820688041282127625112936210821835307578804467311370015249281269404846693224038844993713442424410644550237629187062534151336381261856136483046232572827339849567343046400552837263837254032311210008967479720869774069110356370552073885297117967890975096180365922390997332850713745298455248394802743498596639572662518140558124405871324568509586408767318296175169152685404538761531514332626674399700747511216581647188185590140477139744753666171754933776269926144463544692850313947560617061737200270835887872835308531667184824876980955555166406419161059955766179358696262628045285229972199340519556311670373503639652719257502328954608880252897514930593831903339640615701128760808401941660154788499592884186772810289180509480962894744539946086616742617161205141055179987543703485252375881233664887766195487692332654477329867386948680859344920291641460825842669386829071174045322923087545896563266092754008161060077392333777234631239078958621132007041925720574432617908305431541334298651469828227400727958157044907286549172036586653858469744230994562208101704359297852725161852098164996985127914459451565414540255970061427264597609970342448484663008989941325055013452909349283693749711086524143388205194215646564683595339798185532103110827011923922814633331091692403097534066242337441446053204209231041188977974495750845662455719869603613801166777577053479044427921940212119933662831598318984376716005424742837011187813434197326737352382230642322979997158908344290447803288800381856779777813826852253007116637243835023898674775354560908018941945725655869784444184083496833825362365905571098175680817662632065207182608101606623832748398060106663802632041075470452114211861481631517633096731063650511652300118431028570581154391112924518505680269410684568962460816443129568667155783545355948042310605868865635027194870579826114994419262957171910530757400355337324140982024971223679624789568901453582761120667213130127814822208453213381231102532266018849685796803713951542307694261649839342744625367586200801545057818889141939517617809179473080326720950912542166128509313566269195547447324564901680412780516705782156391319883416356531861111161197924974349834185904687017111754970213414567259557024128237863925006785915109862282906113873885518859367206910273508723130911818457244396178681468017665852541329822425644284534919697398106425151768719792793676600721840188770000032879713663280335107523092508837518892704466824048601117703235574166467534104923758917128838182413523073241184005260359760534996366479562535429431785714205189730925144573334780189908014607988538968363969569307544194410237365963733608597060194830461521482134800487397188195645485366858148418676824288286099509924542612651505534212207928135228686544278776443556863170506222766988848456443857832955436816762868499589040341874425049828760609449178244224766643401492459373537958546627866347043252103391698487073648644564358107855427824647498787383543285367350942969277053554189740432422925722965508939072212859762072788040658041667127228000587692567841881481367049375515467820500909477514168748326620212241381039581900198456033614287821131973013065561063768561576944211190514916251196281796955176510851251080831898333378088453330280438526403505064125414831271005934578878059689424634626464970731728086592001887679214111440554416814376778021395299882123388346079833123193158500503268074642644145850057399433437490106147643680605951376807022265738065844556797242142522225200881255723350305385266672262877353596361674339316458764995765649910397127217718603669126778702603292844846189705066611034382302719808969049426256492529418378472036050110198772083496757529644695741207950421715610865901573643518783804552002623059574375737521642494583369981261401677667416049511879362318089190737703851682554349963394363117132667071525603414223052430141801077744067248227346105571104814354862128565106771905856785246467053631864464589742596123796679228988223591376932983426714157354881394741220742095544440761342518649500985497123877458304845854811337471136751810122013259510184762548190650893443037776908484774560062495715633919726387372381096964094281259027363296856812431905396708331149806559672055933483467235376308742582461074817462641448257177634893602677816741850499584317178665447274755701223612420734985273638931179480554908323194389473872237123266444514100920153822255944404030733593915329782284275336747049328353375753133765681720678634233391287322451584551127771038855020251532813930978722593940491993374396347715524854976503019351416089425760955938294801705890766733461235078908899369008652345080210649459201537663761843451263094129893370959272550092977935749136170219236443680891888185825957547122473168819946981952713608751131272616524934253190694069185075198876072560850939491118630039640307711228828405131014098884360489003582973144154378356998067851684028945091585172262581252733563405952786836732388423864582136231095670017177301946219197366834995321936722430639088743858803694357595725561942025727484709545103652944127656565718987278588076086558468888491110985954035145098750567687612019008111970870702444377982402136254284032724121964361398399129608375261311945156031851247934099130979969329479201082005807393180974695291762391453305364642929065133722934665263417471139878637293350045240482211213783856232862366935177647882383713046129641310171014236105938227982659524259828546744832722827376646636204441496779700174312910879988358192855291495139757459686406438898075592977870283078731055999623986521017880739281078187503529102995305662836036145554892245527212481249785996695722218906091599538281698434203121387848158579080945131203976738912630193883769790411985728394436390066753120687435109401903368504906886898988180590866064112922674578428308800902290999203901660649039064990833802324054771648725943145812298792139517041392138890184893181745875013118607753764229990519838773793855988131284510374838206307710232366839573558242231252032002401583497683266347603544492670357945209270847469927369964853981931815480877541062481171953077733750379731211894844710919940047635106483402891684859263438120595941600324549794998543580948897074847342004414384443618985541781282647300129166641831727137064094118989291025825708442680423405419718986457219430330400905713761681630690948533708379873960179633847672239187534453598989264093894004143389292318157750821437478404037316724437269159526930642784483273906494357468295418806231049853672671467692286899367609841263089997280820311679746076712335906382716907089503450248309317699053649213037573231111601060351702462943615978324985191530877298478831996133276879198683765668958168403484801784942724770810695217458784432044987137083867741510886239038659671477279760999983453144246150632191388321164881902274724603022002543952144293777010192363236851636563411982674755415040044061282498477177516706126618344252328850722868445054966387804602889747276142682047094971532420917445765711139833435143957297936448310384700599738220755169669710267063100392201049835772944740662795148031464080482517709716122099883130535919302022243668760774616490603981420866840861664704716014042472544234866444255894362388508159643613847645203603233135104746100286677875359087581398863731725587496730323159637462959610834728456416189138572894495461874687414039916502018293959453865731186108455475699682520807403960571742045051591066735102642386862322288873881779724815872202582468079137252766160788396484686209094422789324210028889688920041373617885662252421612131557320450546644397336684125012282557872494685528671720260126389882303230887545116328931675322215579238996025287113977973247715490948206971922093914734346943195161190999190744357342792445243882024724687263032298186914500767447922955228434169673640683308880495670819121941799365625114193769163658263856004288931446685995606671679547144805494358608825161175888533792267914506439353800724263950097017299611164901532925340270165811292042690417141573786232520476974721377870442487143984218475289581047537908468174265670970847248212493062014655359286306657755091792319685628554358419494351767509418393927606767353515346237461020704374739073455475360913686207038277046248326959817302804190501763296067237472248227625061398762416409826660664852935902029939893112188307876747094561198926834541025920736723610061165862335786944880833744040223189986830382586112836780405628022374580780178539755559626637218667253749573750706752702650020542534685342784556367617779388197778975364448495897491483778440491153929310118189981214528802882000216584465058234636367842084053789538542710227355116753077952458083152665728622029783466895325505022603253025448091967394929438366369320350041007465204592668100162095264291348787816708188723607697350925746968584192615204512994455126033040697839467441251497488349898664560918040939652114879455282755707993737662985544520915574936866826917535568520815866351542173826700405921880668345911693262639169849466247718217569691376480310128491487047378277301787939713461285123173109988323215646115849074088883778661121793396766730287572975339176051605858101880198228005740326845010477258954165030016340412758813633397929127649614095391239180256368436865359954276706836964386103818938106208122508594324325172533385756995627822924297111549251485260117795359623672389523351426698690236454375000678083705368924469022906333938051118497312268643211222870317879412188520793399444852267805595423757343116583971541614977627131826211614824795354960935041444507111321670260130258599429920867524712048828847920648591435036433653188998559771711449001001869806375504800177950003982072358162587390873213707165395244465498523097132984472807640280636710001253203625106126827696160079356074521648786607935584145828002768133276439146254781913593955966072391831784452813846914835204124990522039100948844076137697174213687162911423518557214721151175684995495354718373092029895820431830060856031428757369077449011963272245552123775492292071260773257086458576534814990515398964802685393464258840571164306631604128007053391121651654926616744553065400866004382323772545972926796299449075892378936202330124324858034929806022609464756116520057239148948050196946342294842572069807541585189766748006669535853550065439034986856978670298233580537534738772509902951913772914197352374541314114778175777902002340798069648523948567019990360680346320459772429527745262063335671933194867841229021828696772767320739290462646328816649499020437604599753166798329220386557436792955107989717808085122213644249504958078918451580802177642304001716899804335611047825981734675631537417444916065179998664500881617535313375161193945342427942362451789847820288481063326460483009779803073252354839375595654105231556741339871441502100114730972224441808125085200429635183181827074562359129451824744438126207536774755521633038203166516466506869032720956635020086939999629351436540188902186647294755933392218927739997151828459775822887460155050888205532531913745834034303605246261358769796071007734232153291041630625690257351695069344906188268952951255097967220690872701513181671024176393314180339109362146336528826549288835045997734549755678511164660040150699607522528588140307529369405988445854804143036215619750732839710172943432264723720508133249497236656130208569086732265469310891990203165097357971059397372759774823203935294409135258892541669026846541687681771062463264592692287524992057168647735368534190905807353030742606109994086328522233077001115282281303205846316942502537617525483675321752946699014676313347382029791596919290181036596320011995197472795138514009365619167923413383723481030330218302168112818140492507393287862829403402138417015138031147604450649940138150555203085124469935258804961109347513332444924703442069034263297975242378048619844736552851990357139198518690834604412722830594806922719452677711253372857982767437327544712260567060439510237572072896468804051712014066896021941413070203071781532685371427852524320147555512131895847310155505802119953407889500796928905452913775433088156560929726286720895982680754846394181710871805867450959848629505571581707535807500521869778926426036328057574426686326150903309482586848906610894312337639294928870326420236597654053784180630454308780033786523591706292141669482026186194940061488229743872100450217861522944567898000524631199201678474992517895563814159932722733782370115247564868958381886220925118506145056885847266479389004486988413935947905596863608804512019225365560770027923859752571977352406479670403002784294075074859586845866810936185565585280048433672261772327478473581272161362474022355257994569969273421184060236406601494616980504986725997378106286865065289541644811339175648414978326047358438610450287031041833821515900463100736611278288282981919663636388325414138974292850338194336013214690199174929709517974023611868911235688481175055855815902659513709720268478767028456485767429211837573206913500714238205047178117794615639789064459579534680543873735888640435615591334161839775279107695453217425006647804264915023026380653507763750272003569979470434034968414465608371301087990767339851976995774633219245889044037521206944143291013387290333728754510570596145283716476845285045932190765225476946964866873515689944354675147680448473746107143104438607404451339331883581911904992022975648041547114561078308495473215297831497908956997882503435087211558984300620039793596154254980065901685989008189003251872364114989971387012131216054004252644576223173291586861629948670269113665104259697507297677182688405018670581960972190258059676870540462848007518329893005676350188636164708992482708960735658967796032558587795486837126429592708699052278538228488833835240457081980002683616021392937734962044269068069043684139551594629582808836897516245211719168836579394052035093155045649378252039122093351932725040269873511396705582982545170023743028266517855463080479850735507209878577949475947703418061816369832863948047293219385555534212463140965676981773712368883875525266960916570071135603961230763600984144580857141935377486195823316464535182281333830718720553390169894010649956219320746548555085198045484780100531099074039790704381300490199680404020554131163570736104387729066085688655665154502343125081193439663838832307233085807293176779071707855911111718967695254248472987061222264818631144475813727085179771110117704288142410202125335365709533922386308539686711743402187956052794881243842064840414270595596642198075087981222372840212593512000828384422928584437711103560293166551309416696755486943788989096548557155253025205619660296546024926940194616234592887393280436188183668512054638921162928244664285608863403629850217236166988192669012448350239466648861874892853932296988343765678603799845427820707228162371595587174533906863833410023067689860867902312944580366525492373615058351612206978778318401337852438645083966460888461546035080063814446903574074830068884614672627492428209885060053946512141882559059953041350899773625668533429790277149724728633744485786603488125233265932053694556514532828555685653791441649442266559427264016485781070443872663596347626189886914970727491991261371067438778212672490151112771439353464366782070312759427936076733662064985277398385782454480923514147601606208087023257657558986085651742480190959962730115598625082234728464969005361261744655548694093422614671631765499072476313018492115859477435662753282911556919432094261402084345645260091702570318208942707543787555959233196064192680521624962126830552860564467483663123569880327942358806005686909418817448408296013638642399114814067839856430574362760822745008236642028770998285669812794715763211420253521239374141428931501817919834150609872145792707874199802959047685111075467338012500506348191648083690427287735701083645798450334992643665075589691350777630634860203273581219259932033453309286089894616218851614391422376182823088012915633202626595059809490617823163684718860560765370685282419847768324327031637739223889804335076327700811090263706706873438616582314498887808113889570848808754701142385493196405004197061081404773222569261250358638656865261545855753862561513565665353478953174489529561805416465912753083478626724129930582333592427115830504856609898573235434122078247443085499458605731250404664944218190647316837839404777757987941093128084692268418830508196697601300939388308222820824465837250156231229503399159125839248193886887142399499078331630649564000572925092532810422136633064472071749905843759961746073200031164584382630076844008580391217614123128167438837176917365088985992326086731745974076846030734108408233198215432091387691469663549910824830335200016831248644796621926795173303312819857074117129855523673673351564377980869913930964047595846634115507961426573433279741503988018635735523551178016187794763367998923993265552491203388241739103136987667357151421276568854179837822152185369437261685538080100319774816908461420497368635193658473378272823982471400363035904242964610780991783223166184465866223051823321470949130062045543549236911067207125372831234895727006506104869389099463740172709942190268659228546503986423565802140092887247838986974561280624316320619441394084087774895915558628011566441226562982715012988899450756269489079350055793146116685316109015771189446345157560582090386277559071026656102436780736680630345627248810047922814989135822666002839110168185394340749551271294266629332807113353909003748277197966010991865542653838145000449758864224451917586595341768222456295706260191183417750828409819052954933779773711485715773031882661899749023493551061312689822096886824705909346622008102117918607598707053278469832653354893952877757616324580861316905779418459979362635606860447491779890667554013236756850983353224805427465273480754610218839048390315036927552945792263989907650089646617215247141599783745856098693258982541131066668037512429971762729550717412274253435329445155107521975320908503596127066586803101802231283351919456607035689721621151867918997976616255749303511820913095632989286504329497203406106526641956088679642037641196023891768059966913422518374687027401636435031241604550918668458900725969300404168609139842484353742505199568512720396457370107613558157022360265269371561909735728417606162244876896356289451354963699092497470097845927309903159860179552914630187981415023107868474298154787798528671773064924246326540383997450161957947020591021410688026662149753895097899284049961745618664105182856597673607021839710663550559846227672219951634321055441058838006158488694564509440664720510351167184665014659695613054629823783948530716255281491380986832198873955892164112278144827805027264081363865074565874946944602054347118396121102639589881848443743727611099658677783809329909983107778883872862591753282541218100178171655134958361728845275406438606785145564686426940792190745213225700234168241461619865988045788603432690416137051946568601722453066890186915033111555143695054159069113045448442927843848081432939845259932311399216221006015367964390407262606707320970320657585075580006264669200521478392363087935112834977103930728292791383523365935176653089401501229066362695726822303159484217194164716734347977813214592794171112807196307836532051540369139919267475986129817583077511448483473071636726242450244948330520792913551996090554038936818610380332604728033840587904448284951086037397925092724576667798157595288422184926990149263290400326442995893188080302591118694877877522077083171792605815595808940272381882853743376840457126157077550051923052366115533317663869292539461531080245206180890500574838547540739463322961575208347763090077816714568193223189638561865634735067442002094616221293580115883257140049389342920803613441823502083453861565395406733944428862726752279616144730718552592024864203926206357767710142813472625928601237563319668269697810275918522421739131940444371960567297352614771911895880543465141629809165258105151420586127725438128559979403707437413140833428739402687802661286794944525005827706820623477644678520089505785770120411141288813098989742863003573004730111387810714070769283880099562611010989520969666125255609305587620621752617872669869248158428738920339893989758863662176086175816067852607179778489014162590291510205660046982499670213496659255928002713442755976598493143562859977023786225759473605025547625050159180561375527024914738921323590478942410620077818891517218801714907570610306227928258433993738648044937558385841009998119656045309116103704055844340998605550102139195549011424767212599591062387490582308167659976669368627649330651677264663242466737768756384487502788189160625049598956756299840438760869851176556712335013215867914736601484414609379227775665650037064558762747997616756661841881798443146118728438044167270903815961042791983757839021645001198679332489519475383873644474354084726763111947966665821728913483377522088305911253221616694554626917451855952770627581742558982688966764768723054476028817637172111779754918766352948088046664026099042369343972488806574141178547781267026289439562662095606909706397539333176272952493907742263395151951854530159836098347021151284992552356101003386227638821835743977887310778786446639001485914313300182143280063131156990683875242098525734532215454309003608285640362577122964873286910728680723410039116197797427113679360219515835904486383841033898566421556208310224585523113464600372854199828015437291785552215648817779929793430961684320546325068338195870957931884782684737249527091096738555984964457387475404770420393991968012076011905367209942131800833959331710583376325104606051997076324275068199058742796229271277370949997336310528625135617087518322618612951756607168768251741933994974417105359742333534178953002257112718291613251444227130654143808232170491004559140035333114562055975620652782598054536542903333076729072744619190104911802352655732918488671562569064079247149383551645504517718515241138539087049217406693559462453689039326277358209462312536456354894223669028762381628361699046420914487261213954815840041591389960948909021654877646487451788649092937280033424737490851173216648812291850199864568211910752625859126579810825643312612430812366714582385586394573779005434748103618350342380503591111714165713300428653066248516007142014747798186107812911679192306150669207339229620621189272507141930362692154406037753564522214861832007938415016276923808177378613596421792270105726165472493664610964484585928920422970901379941235424719901509393592597327170225838844884033887251370937299841343268424376054326513262216770618450303416272683268718635547842803003762681568898634957615429706440674601530722918487769005396654539983429873743778334482745023033701515433943146056300920237682943100026337429277831058397929364154457732596239611995836300500236170961064209361146063505624282104050434033034434457645511591594869708642967298925851197757879399571411840917879400494863345460493329640407880876542506984311839904442413080672910719721239039068698533247060300656664050146647401128312605382354630707545115718695080031981129937463992727595397058686967301539771527150545452713155207213889139990435627186357328654848231164371798954040006955323243593330889668481397374372353130249056600944501797849242966763579637876350008446445743195586303642441788215087783216428056247731731897963463892538767253440540221746156673908216537467176888941062472520937956303985997687137809787621034716963724089383347087263052438930203577909853849652156670693206410674653416588259507123504334915507076594113575457348060725189729796141618719852607172195357837419897043300447248922044844670907644558189625604553347832580345663822656070445798004168339582482653905539777804985600458762903352085223779834970830799026627214864612935003074113489066412962011503926599657180815790606719523974400254047047782153303376006389833915126870795811054208756501667913768905926062415482206805480470715466753020499560275994777853965538696426435987691994551346527180451967639496729899856764612414929835167388576992092658353290107951506858541110103737958212092874943965315488303358574000200725340816127755348730247363297437449790003561823013141989491048707805895938577103730340073275214066899623968461050265005204290598548684556805413702966085058707802429236175514562524792933329351661281297071449142965744675145250280624837710726219514024051724880077130038321582602681721789940668990730473957121262294840276543082773477563487062572373111941820755629536062107595713436048076860879213098786240526487846168835271274005335445568903333695207891532016591628154696687324254631954979329278686404540516173347255841599141653324819938936647880377058636274665398475425628750254699385880655139070338644986141356966070786664808306990346075049535507449976340286844255202545543821940557057419795973395968136705997527953408844844288859164629899110252806435096242099979330673783538876445561074558718424532693684648451309762551645831456059434476583764903499709643868068799947803406145861785683540943945857301475072001151771063422905592186475506187289295357920418997028100907299050630970302279541440095702304472207864527275493000012473122033224545992197431181877040685373269470558239044225906431421339026619139735746488751879386703815492818827513704287962757134006534349315484532190348743161501187289179747209321596655451062541167110300867092931686705404936230271649197885130199541717736554468191087804395438527217868953338948756063188166128177902338268377410883594569510517176597314311436267228750822938894638285924356996920682131104154738498639683312921603434737055964360112129451725465735051394790651868020143313033210182806290601259108354862043315586196766069846037766656332195342120462584939742270680800031016235411801904462261145493526370890568806883558254361743931382690158108855554382121163026601698450312998302405401401283040064593324183540820093278065405188786804259771920848318267553166935883855573800427601417596821444104321366328314048706071866580116093495354083956482557725384468709405815265136867793158372547964699214473267259643503745925502479818874264242235915561731859755478383414330991047020369017174514500684098748506001429108864767637174427987677059978900172539691086091560907245722321329832630753971619094162855470710462605901622094011683790665995206835067634783998400282922179152141867246364598689252516077853375191183072245184548844230720538650415275080905021361026326558803352143625209423688891997957657763871671119633470763793449318181531153767135515545003104653732424934483744653898789039253472803771457277873369399321753987050150170656518229798054650693714646885912299862194572368608264986795655363174884517606067017812579752878517379106382155351647498844555855918648970747513963328052410365905616341581001076980062596577128916185333711030616769127768196465765586853348477442072691461512921671759265574130761840740716192566976846198809061301250420381200345840945529777806376847413540381144328565419065957553944036302003437106673199018560861470994431669908836704884902409179908780223350285827825277763454701641731851886466127283953861611754687532316325355971556613267679888945095479612285799667361560821567244777690650807911697195144920678181406114475475670880437845219262967447544054985972065160711826627406274958611739875004989715373277974523240646315111029209297018103268020342565488398605853340348189661623392380863663899902895457999518846791271949974222579351258612342096971039713642886410322753647558562953566828107012724040773751523631405482461832414695695239161505586044321646065593425550265955427101339160333947025138004160405049648754306573984750490536333632988846762662092854806158032754264343128385757390931338227612349567489927844828628962408666590916890435549432689629427687078364106304604684565870728351233772516775778297876534971800813410604980042171312659450430699228020440498880039087147714322072571842343778320130307082048283757245898125496322208452222590778982854078969276460626103319630016042770973005276361037251720873203256380953028237409980905114394099589444539162343349581191493634390429812583927359286133614930618060488346377173248476141165320307182669540297982082996982147004304958137801863973722437298090958787153121124990061581499937360436338882429828089094676481865602678932160354777905182365664343020502749860757119142822987360308662506945193295984854863509819407475413343091390783552707038203835652714929332264562983601222389944872050405410978907639794151997445405987501284080941892525830641011373074580944223916004349888959651673973188965842880122847287189694446304050175775780557733339197905793058946435680825732827643293628245631940943608069109506099828367314707734766425692887088456588607205841352666788627332420648924383647674076724176135686337981348491075925003249108202613544495587142495172300668803807338962853436049239099339798502450754562210845932046945201742983450294391865172793279653316371584306287968622672305896424680926206689704943993215715223257550819094957264111909727398193476681648780486717664418366457702125102575834753480926944516945293825796567085827811174490359543003348219398733793121119939593959307474062116631881250013967436310797972066646456669459032336805117915860565670472636657157302167930046456881944368235443168577718304561720736208170177238066077043979907919734671305580255264019058362716785020525579606128948037050937322817532230362320718310469461705315076852961959429559588619710385685593705540116408558718424244697594159748751293048310700318872267105772997134317554235730009553102140624892570358832709209493935772843118602587093166950383239604125023881285525650211468183500567993548146391819576205010300702233869661590011188656705567090064708769688280276912397414965761849123478004321924482449535590605094175568720465867107726199328158578724630004949290198418610630619395999357217024658487614099440874768408036214148607266223565853489052607212864713822007422130243396140056688018937407740068497479364037138412468699137866869330321966527687148276718357503554152067980294571847514948383196072370892212131856815702897033442733498561528772819972902924596279709371669980598444995117336731028698277474684130555025309223178054542910585792282933669863685039240635668209068651068085607246271897265519602366943422394544056839729342733697961401463858407284366150731321397068418698240018865569438660668110779773952325878594849374164575677628652616313948219986648340465463551244677778901800851338212079882878336469962577759475690891867075975659114794906758565538168699591308781768838850618383688656882366507489228201396049830284999296364817828116459124748707790716355769174617490916478710825880515857034085316907024364777262157213972483486727905067874251356865911537551465359436135336688386195531581036065777893801166660725760276032817998410702621503193172464404657424985547452928914051081849501250110597985575866438845877262058624209157740900647968773448282039056530922814624425545836872192666795761627100743005452738409493991703214631901670342684797845704341312803699179037966741950743430230345373152175391838692420935630115234685969002585985833262886513360032394753918227368325000651309848726673247385110928221014227062768973352788496350255983812246229865123575629121439811946525832598632801932726821932368187148649233517185662023752966050998650042191248003951557447983892370597054244112238174422681667478684723595135189919117913904044385893613573873549272559541291973681707210524830403666306486832386929285528980836703120664819479787226113287062733843637129061053489240430504425597287362982085271611891955580240311927813667215134022636085354207467168692109344858343617519298761415434757423846138098058734616130325521597382434148477393986403746840833553517745433722098025314762152351223595462031032840988926790482535688168477431632855527785690370772770463066786512656524172112108567051386488539708348369783049719776777141901624992240100571288432673417426981991736550199664640637574175027660030079446273639504422418374543055607682514425922898350274207291603289695076213146369363059826387676247508272340010628272380234457626344672824224291540965779383866517827779113622956665770100407064451470164991873418976103886043537408564937685268957569297793629416834724764972298257561660747972285339818920293495406969587330546788341072551240107893238706981459106950864133755532119571886983395484447437418645819848015346119893399307019834506448185297797398674129221994869762467274947964752557256902718618271811790040732070656682542007311913806270829936287064732907831920313945184967487791937753678134628761851403109979683602485144985650810959511380028977346206093558320795066945794137908130264984435430896367575059055694878983008609331497620661113632216025923345023965728671438533029728692885497514197926368448528638690468450870862577096135510369492664378843077211164879697643628233009530819955520008727435687184810599335275587088669050378612807720450355855927909763476557102656490262948305300815062590129140773327909350165562688908980327772726179940800886969496914680252890155468771388953549717023691931667336695425274808797569796527215196143417083930205643177094062805097945909895887112252636583033640155090116686008675759314925977857019341464255774863050881553701804500918228033402442155223189522871434354269049719335614570621052186918574514969230016297840179486317684700870340482351396924633805760586425672385551223357672840814397246245970963639201557087679519757092710806826023627936649930821988731804961293408220959181312433635361355910674829867858387001421831070980430206672553768953048543092527286160301882536320050970143066341012238824757033369064973455589025085407969937948506362084577598907500712013973447572061774367888142131740727957348613806772479687487432103631211933483717258461302641851510256671532687737172584619542499052430358753139658425188855173445892848066273831918630226898702079416794830833714735710277174980433608765562745438202810426779193775799841763247525914593011416779641671382360976013287532248061671349573455773862130964426394750050026120393051744971176327602538476862539289189102526773858230695896536577872463048765752091551138474216200027164457396660719920621896199920891455915959904462456690937611133712466770739500917719729967878832372678285651263376759364151263571073562715414393819261567967146675165489818858890689677052259758330873117280620840547102669055348988761476205042274330744909263988810878883549015390913526682667870404373762721215810674417232165519804950527889183129090703820241821167502226298100265349342642122134807187692039027099064467874504454337719913559630417303582687030314840973357833738710512856820108835514207878569119337762530426651368443016128585437561793045409698751206710237481384303504021529178383133287828028477299934574514738027346484138218815078954201668247829598573573799880035720078657900362884564897730315642770673461333431399127874999647943408083903370259375459360309203653323196028297225303095025348838991846913270281627735743316521783822837335785794904380611715139532812284381870740905772555829820660855104489020751243315840061837782289276129966502736721339651334734078604599377337633204998612863032645192246995763917472148246727677209300816305185311435287716910054490256291362094928316706556623819549140662236618157265728688600877120556587990938690650549428876119201377834953667925989354801065190205332243081027912979818133363117519348177611232097336716118068732206681761287221458846584727421018378505658427508662510427120789138263635326160596818552088835564890195989703605777226014434221260991044704871994557601705614253240390923146905590992508252996593895607144732114641892252014310267507197633487347639004012238954697041569531620886004275209562952242268089722073421765950014598733616809252783018818686398092047468873278897794684844686803453849365584391002170784517269305897408348719131744126508416634367874768538587073173301894466073452100704970035252433254080984741557644128856608704386549678090383321389071909899921150225022972586981939157908743488516834792993235353427873922001433783496544690956362402248507454815316702067577052034846161538548540332479642622152162525355994200919488466166536190423776500715913939972022600421086096083773242242994206372702413024180512868791985243513320697438261252505924361516318676995504065938646983936775432191244611366516513818147234402343294112349379711718686884724947042423064877898288364362600260319369534464178970058793939103362308631977312136281464517571276375307731745221781325453359771299542566645931895527272777859494988364814148160794556241265656717621296236942101885862577808020008398145320225646100465770710061746375497161851303113850703916364809738922559830011141979079795240233938150150567624391833124506146524797144302054601004849880248948828843207306458677967256774900006990331781682543297709189338155759469664432340199998493071489964519057440638684734830812325221018515864860239142426704757211237538769378290827449231045306986522357469641902155854912529471166903948164114662629548518874856227717096619894976747839130394960260170634950055493555313467598317395796577742704598242134356002241607230473037945070354056311037110566103300521312806856123135726939630460675444450974442851363298007043203980092037637518285307091159510732384474457870144018721279103629631012380466565803141092019926948000248998584845439386440676890184839668735869107775342335354271734201038406292800483837464221620933437010740819640395929487381145715464859583827491905267762561651426827679174735937030865040073741477988175650260328071773696665598700850742935634341051594385169424088385008476872465770009933812684872128291447930101567402326660820682681186957716913776982309742023756725403887041923053714638209033468432649275765159631327002521806612326445067365309528098614559503088702860307378349502456870426352591441949693546548631098365618859483960376077011457772938638807548251023523440787358620998196280243601487335531450384352011291484548003802368492298781822184366499123563765950921677076042350007903927626373766584765876372323383140095459336350685131064840620657627600698578694618590438200766696240594650764683629859613919384197753946149658887808867730399285040782527952623554351510623214392658409887810401518812428538328864872817199059156930565936521276526728177483527170258899852215253701340189144880383942988953190762965473970495018178859604221775169186601809484947101721589607558759134981814004691975764716612813264480597047411052977419535698340396843359217211373806163741562811695892205357494478154441965985505452069630374654231165529794137296520964928502265934585539343343009483085451974891063754495772677090415685562266334949585447988876265616212060957530090481287242158267917333238932284223454258701880184863565227542789386636627458396547263422099726057359348524586227401660589390070583047431630892676087650307512101493911105153929882485460177739856990806610307230470864034844193156297633074818357908560261818666054295220894752034218450693013910686974441627293945702367972697247533873450129646688193417647446721897794986152120232590155055449518211355982270611026582770374122182282443674651478591066768718199126565966101126745947407474812836533427407907101092401490290049701393219100813012618888775235809654863368366578340783958676965111969115737694860056149082084182862608815451644841471149093195490975329786314073020506205060710065236892643710213685617138519112621425570893597803541427185635862922063516741996214015891189492708606395158646033599450103061096801387413663439281064756065981351621708274263496558822470175385122459701248674313156079075351995311765480490294806597039845253273057566976296907062475466910469363926978975621229720026226915645489941606337124535685048787403678822206805517926768230091939769513001285279009662169840229020640031132769764066860133149737226527404507067493677002479056885355579476278163934189224279562352493188374717565064033870645187594135378452198086132162990223523663147515781389565924552840479765286736263236144192551324198868998889251016204023090630494232034494689193205774283945636398282641257665707735801488966485574851160299859218203504397094526256575401934367505521366819748795331418055559700741347488602727138741552041348796863830614637954408151403933269426965143867201854265477198752242836142936056561618589911039283136959968946835597907164587579122567742205193279873389397491850592461835156171023367005795791643202977548931577790540372050631794723582125387319875028456765287141560517064418548004397773039693625080029931532874197112618614379353458430729355481671471596867585957794841222240739249474705218214166418476660391213424005661422187069235965317649724336343060834142360713089806870995648058239808486509183288757600599764544023254339105986775725884565795708314027729061270954524814739134195799991705255818097299533729426602852970317223000032010261263471585216529721438228876019312839015304693975077508010795233847941427300621513761692869302058272853835948322700802245796277363443601943384452441733092111790346684419005886539666361493074697990168019709269581887248136808440886502539525982134057130669715178687609263224370852241155363994473155417826030981724110710508960783335650637188119537182219299320125028326639644512942313844798000347346688768007314495377164092204541270560851068993638409496480427927575907480492857872089298308513693437256951641315803962350211251982299662952237537835096292960841878127499059446281685447932792354489964164785650267859969738837934926771429903948047401698974815987951880250131994864027605862118813577295493250341134579308905905476371814882250055351805053378035346001345574038331163193948127004178773631516851833041815545711092485772851082814825118323720811959646682085077542449819348633015196634072660659101350413020687355434340314410762183520534065165677354146563955172963950062581139083543545784546803537300527019614107157640558801908888306699636438746205448023833660532224389355952738085237976333300233643469531449702055439643005821209015285648602836009082165347908738563148514192465160082506085447227599986427892056889803723842091525448899870336006775419338274881178621511269230978030740935818843438359332351508699008374256922061952252923435403237991604850577763329982452922718659604605103134611906140915851974117014204289605933289100972406694680771317599995540605595302813119957075388173000681232113275686077398301985131181339368988604347159525844489270350820349849268244769615668491238086881802914992022781439701992648266312748774491745919068414249096629214450814810931777583518267109080636703653721214825988342955756751067689188203012300191586007077428495605933204397253207592810005056871547805113207270940120353727001303621324310948724700121887204881516937488239143453198053399960080120074634259336863821566089703031425670086074683487079373528373724004140347719781604247675055253100784794822991831709321005635671869140874290496643656527710005060202702284274941403875002128273917842630570858349585778842091258124276412795212287953205345905069333081920581985907366731796892850170422554498173484836722313272911943818280842626220375803726353337179760467831518265105247148596504628153857310854604613225002570652447778073900861059677673090658456486673933762340997748814825624736617477705072241631154734609238996898026790990535496987765789999744294048505202013909542404192543980710321352868871727468118883884617486329475176751999945404745529863481174097174103750391041221020565805343504922297990540950578848358011721386326879098529645629855502746518837867411599878714604486883085125221980303789821136296495836664154085329104164762505004262944747697311978832365786972129303788805653986620743115611451196149622258399604678228504095982645305060904938646989692000762147248831554513070886946981227700452098992195105141308305098369063567661918949223073034991891378531312971535376120419154740241789943587160704851134822300471247235461155203116281197189191971469439311478305869654227109838678733666149383719265447215857005266696801738740494024110350463941129746974121307659548547128225998939223351554232761806314910552096689910682318040546749550921314601713440168583105654895002488494045803531021645503092299481089726143211802863969296275852181850699116437577202686774909693825012057415523936338199819892623284734388785077732225692668319333572285888503575532332286043740478439360234419635269390284133975065152454967341532443248455489858737347186379967602182590097641037918272241690774429421794157623978401865105722033115465498053968829158040686409948601820507393378571797328446380367001444438013862907233691697888182857749231788793302600101693810743848071811857235993413317409311069672128516556753871494501167074600685191927101026304881955274845892924382691137157126192436754201404149093044279921080272432301931729892999443581022426160894968988397983110337034759280235309926784035546463180922180448407488173574489532089415896928254954584027706388219808068673145868401333186335054831668100348341160204081516096735657379543262193350147411207350038679819448775075630680242895074009183102540074135183663012985494245232173817576480340665878921879221237247763135900099080811402271760635292269976210940171441577028999986232025918067682209485519967006118734763105113848533659882685703874396935454095069909596514945695120406110389006306802647603390800750719799004939910217514498121210019908798103375748165685085773506879835072124705792819322895137861735711369710696974467149464930592270559563979092198722608175575573822551583887644496369460951052761622657405635620020815448711617548652888429445777981051249017711162367301146292059175204339668696819169679813253935363142796516348998868012127496577934192545372703012037820006806662590565382595995542131121008419431144079023896931899613033332240945609039486524127431756818724667760774270015543846147197169926130581217946716168174064299867015578550917826052649670354891747037973615215723100508083298883114302476920952473632013465412101537743170733020199710286811882367318976846673781613369221899818818126270253892890469861282388110719668852597424327521493199725888014108902495002981794784693054654483630191173396348423162644272406492156690370253938864596778756344377932001215642714613870037787521727321212519762399124352587056386692649410407591463865703700384298574923430927843243747573850450770478769574878547158949269302543465427286910566096939272605006576688541002300235978762699546687717902244655391129868165401634940401139694933658201296184051501649420034053629198639687459058624557643022429235673065607900027456263790124878414844044205425482175924608611670110118801924319856215743700170352314305769349263899780120716640741221980726629592803404705355386788083706076939421575692802481196944416196765519311191059069702237092257012950629013171886352671106022522887767322478323729962655623177564752753684290224409353831110262285852880399773465293642188743600918815267926837394574892609354397908497804104703487417465772515393815907850872960949448253287057280468133425767846686020046731449867036407657566167588712313878975931149714063320816439944930982784831598532139633685329509029362830003781611199698850612754817992085155642571496210192945816842484765447351969149029266169285712698413072062926563605422897752221526670763916554068695193925074672504684359093421477132118268314995150565517649424918602200866302639023062012764589149368205432337451762664425542849071396536977457788045564487854582629540101509161672856632024452457148216712547319672583245608187750983860863287218453482133039695343566583518505706152955478179791374222184569169491267062635285939079677723840345468208213936012161603372535774751191010975589295322008592130130443705300641914858394710298810292751301905341251074109136334312993259769777058722717207695253356773393000486263070862866456354186092100463154534092038025783465270246188736994856164319323834632477586722096420270930844265544721840240653537111220007299175344378484351057701362028296988781796342270379758291164752303606252709543320123598474780512120488863102826668401635738739679593006192600746767887521266798295927430845719129117017190051978955065512781899258127401732662948529788445441282848899724544332550996738192602868266296511925350887650844481524475864719494718516423698489921242125769493249118542220885206942501187166498331034196953683095427336393812296142012155762477259813029308955278156024813954495001535788618679898691723815025267121157095741147325179234616985034767985417474920297183491294896519671888630640541087067449101003033612145990788588002649658767862676403797794702734489411347937143091074468815089822480697604603810444087458596550278756300184952469422124054351029009393584860294311715236281859049560271986263472782858160596493788183060980777329423605262517986045285255167479883529794098101713013067828113087853894709096710744125780379443557713791560468550972136894778412698612685170090616788088473036704430696024373960473465793800159619547707180463514589998103040508973262527944865053590475622878619365115304641568679919203795676301726174633074526970943145306314872716110296405402622757208830726455298744684961805654375331368928607039107133948816566853538166496616328976967622461517290466612015322845356744546244196433074483470965005650313261654243360856447953860329142246570743987189038801726404975738618586824230633324094020756975913413732467474036382220163295143254760756501921511519200446387037133366605496362840442046427313947606029755952481969454065390584840156617650833874211759695605541319808158460097225660090355879921297145344044570173246893269731506054161569124652725982846615483188669294259669569565783886020566714611030206450557477698670635005782572067470252766077912943574669868423740435288835779616192478055356426549956810531922177514086465768141621009127830317335833825565025252678941323511534489996108560968001547674559141120810741820299759926221539188848439013039652799490469612990541639897990263085097859414347351347856699826182436409824784575912076723955461411805605116168730287739807612690166016836398150740163778066097625387680547072941593840630728892293138800772158776690770446614470957115541560162843435253697765290981504262955807913282855018143175027803744918334993039400405523477145377900980599127116590552038796452436369135247867772321601719934517737295606955730234831468276765045143424804261946832727298308629013426213902676409802994452447287104184194288438109668672131281664971333970838264678479948974507670812643063401598149025921860096399784017886336246079628317385227703172632900476265239330258470003721908900936493042725358483028074847077361389408956629964565377860050687372415772510862529123813203511467472068087076130698211015629932939978494270947969543639369826295549541988354119542948672284515599201007625944707775884855139845376984655787233486438997937955189425514214115210997810348576352264746319521608151077542506142128242555981150302031202178895680119747154560007623672515693319109905757492357051098497971013561479628555984699940096389867131884918807897736902531848378854361931496925843034303037283180786926775999374821189688196939291161292069060261726947771844180928925370962296420446688320443432627618767116048760843120597832150455888991927507401136078070026223303031890857284674817830629660065483718619190795624719638315777562967350406276576051585559078781930741150049696339270975332062735482272040460660672882977396479336214265995174965144712116463019376226665934381278770404491772140609624720898268365470266885838741874577982096405045256220657256577998518505594938870915443564584631921861965519065570871999923100641683176135983154859977010951992305857503983832179043946215000851823371282956504715285996009873273039605283438040655385731434460938785985006174474934849646145173542826084182232350061552921381156360748192962161699019533531897697841662897766917808396430487286792269695391361559169118851387865016840320303092581082644014633768377584282961948622585068295985313468653925635187663619948574732184195363177617441123730068827231153884776799276113929270977004587914766100032976899495493120200725614182067381373842279030168919170037565232903887295770232337217547573625376301441767026586806802097412252331099698468715081120509693637651260045091404144321675633944114714731841381053552058772881290829333921910911119218073249839003166816629245924093021480148110199939600219971244638253308049561490267475558933653491868353911576366313018406812345566036275208202960732742768483259695261722855432593906420395053650854916888702194590779427367440631616223102024023757898869294007978861667603680717112555946610919664844766207342279326623936466594365524268013667052255397152317409312697002017680081317927581569748887638961327068456677691115160079893192772951191279749332241644409519702064387497972370171663835868771315646456962055547710356959505659723385049073069925260097344252080420959431611380740701734723284621316370810108038321066396908295100225514970473117609961064321546264994698032446526195341575800599845635245784178191666644237232657569275123172122453479077406227467816221450804954236270627238735613185631885398231828749546816567391911775525509322323669428792395248228666255814687991744768191964552719070784900466338640494484501856601326167934205919917434380035590029418550173593471106841856136260593337311443306496742523454641826197472139840805639206229439117274534898453320942916149424542674579036011480403552527874715490510952609889956301243669378587714779627853302848667535277103209474200877716860572227778055408064203618162035243391235465606263310946589983266732056588499299722002658968814265992732964109510995957270095344505454119213172263887269788302544890630825485306320118432694894842838348689008747529969832637137289787956486731599868133501266073444429113748395297510556031782449794516297774627433672542734552087295411131429292644752014328281256806710874666964583783858894803416598623993291548367599115002509329728411335186723727376081267395954652767809091415907214572401408862921195137935221259211165909203879976142693403372163467850591449126347338060275231001225759793990706633587606833456342611936276659155623424364839335412019033230397830018165757916275911013629260211234524354966094529221204182286284543436667110272830559990891622824201527779488070828565806837345744335494514710115787200552702355257740673659861062687907401824983942435757697361257690023610442414501862151038119405816722876914747855441548936637809012542316640992875150725619362879861484639111424709313745522875123869542630428065945756913414132707287685587899263075895061878251068464847418671980887286100550113341366523785277523831022125220551953188955457563244195471446158067725046002524775918189295890964902645080731402321422332265165039813523816521595348356267509778820689991525752084993485221627471407723679903282044183640490895373574516272723601344965410861458855769821208530798679264311843339291673509064965494111757831430801391178757936589775038228292924312217199612664895376933731920074079675663816581280807788393070067611860240468990416301448999851713182915598052814208747917205564986341864490698844126661152993846796030827881228494428650344201922689585807923609807685880434442024289077827993332995053622260490335424842265905237557293901812743905637881129079579858332802530304455500090644223229400819575962818535868649704466086501379450568422553254991750415227261920731040594443905066359479258252881624953721756343537957576172598066285206290394512393578591163351714629831265575861840150167332099313729576813707140081388754636220318996848370580837289586912456286587202948438765966456051465218188710061605265083088735993228642345659261820050616767177504058898345691995910209418711615134523089583325619219221121220241106731250640748094605890663372271138602300819912979037763123618646108302759426302330936756968730243045644214501265636371375951257203758182372201383461652295597489517200451644015890589401309680184934335786840547772661493582794536388037462136088328089118511381274712109184211918254428135347019523336026131040828206468426017573191012369473510345608383591321020587110714917759562968729755326227644113968659691471449303996006349064323252187381612907834892332789482529407462119806861020383928531573922707627716685749757525692471722500959926620020844214642752927858310354771500437659023653029154162876957250969780449463601511228291017381376807332630310351822602564747612382571983161676124873285362626239712869736707036670975848096522786136490775858107418644509033758776116273991480939675772638114207225904829151939083690708919286280524401843025227528254750911731052731136434092769090196563988491816920863349854861801910575153880348005061482149277575602167755349346880572961912316015907030005643095415444414224225115065236515792940697192666081871497714047318769960996678688370700741821292372977502166161868034832971063863214981000442920196158479124512377017747659614543284432743173861172437877629609261097774481945091575224824769302415878815009184078123139348742972229060476958178874275930010491921082889708841287815270512927739085625066073485990922796985917975595366848297107199663746380485141297138578702453146581671772287733629519214372985843883057780423053762970288056873584879157847717688324100604428040115275863603837750896359868786530888929840722814663706920113208496892091444912533854614282371219362942724084091112874974694529736855825998799371232224033441821530059012448685763472614969525913664251262606186201338932144060351411766587704112539611742833912660180956191159650517970023371704474230678441079833123706955146440632358305528121135963988174290177659287807666462142547980188951743114846008225973088577589767584082264184277197949195709458484648391155621382142430548032177840027260393830307143361137489954325751989959798039345711326777929772037851836445634442226837511646391010934571656642504325001109072501334375773964141712653894181465513058146767831868909050494778832499044547212221891263002070430972520579766063101625250760315507991658016004322697306592314310889634410212821010283235724810091457620063689848724438084995013348860964832389036113363778363891512097026923716908137713625669376826783509940139465622137397149368829401383226119431623880243587661732198247427703678537652881134424668128643377226221025149370591852641970612927678012559981735353707797696306211905955777933070417554508851976354239296599279394462851261000988464251135941265880665106526289494851460344184367988996247022057717113203766255931702938275717214903383488715842831035666172123155118750608731246363767764781692815121438404006612994529243965929910574597103801834813410597035973480939318742086619398582020446478336935487142805210601113475953474673352264566989941210995284976887163803729087349260121325707338433521128284524355097374710749226604563020717956015564046782728665373738827173645102215797823233675801460474901878993111533645546577543684274367784895061703233050827250415056992990144010817803770774086830102079253709485597068711547854937484676401387769378606789549356946689804188230795059566931487494931036146267766031588747763108127246011995175666611445684235784078553316736929997409560269885922453404483947530620562684463065604568771139699137509541326287883004921456077608661351111701527371655537024354171381479438614028804973399847741629171225929199158275345854697455126521533675075681558559415378410246084285788322393969541575986599638610139839361287527031764275924030595749683419898853201388760373103982935620127757472386085177737979806079999383651800951140473956866607742758627793510999180028362170801228064799482718790913312418010851255478773085289549204159809082431908435950896259791159184638351895672276842534543142823192306412988058841629909978456507179416672358828958602756151750173261792408159230121611954981380690271735386944154237740979005028665739006772253811905199450819246754140627830016632485640016861276450389031665957272672342283188902720274618867190857259891867387459183296056898231077836737675177546166966039022377253647963093369995426328478558969625880179935659020322069253433980893792805965736647036168845709496609688704042005139400398000546789758001560072786318366258393728390802770384908183229802742580897874454841466987001718459834820585902328740697786372095472564247984206177242000249939470423031054680530911041559038961078530428162741949876996187817545514958979670092873925710182470363376933002231405151028997261456991888986193952973253089755522782443718875266559864469528270516362747288244003855717649155174086052209214196633489118867672566866011640562369283432454411382258624873235503460671206022059980610409526906542628510873783735941827346309669588365474815392928807753594449490693490273531006599016687135608493845877484318041049496200109180794897100804351518374280150220047133480388883065093391850199680572640644065473557937474440601051318069451743349011381554880101449155984143627057303526454218368896558170282828255020262471633284989740594824299890975682275178598398396365806611815346362731739182886165746891402898833476882248849725340819673618313380548672068053418226993075529561914117207301477992360108360834977879531926764676024814464218392709363051754265723875426898773443546725556910392477379618861604008689332758769441655040335622661824044134049953793630174116733128287347312003151426853339610864680305987991830410570820609675739169013515267297518980897933091553561740171377370035889508672850239535994892864992640566155329053265794447429801080906473070745523780473029580264535891027224447774192114628714107316363176898801811847053791067883665558730430413643820949141936715834077409384448607272318148313081104313533557273852849436485068667793232694829876670360314601714957071596352044803160631328589899956821339027075261134908400845499062467457300364979502472803879912180052848509377255994305245383259086073945910668069619141388325491444808606118912547236221948163077571080111199997730081043206807741701552016147233175258851119698060613223613187296946178705921551427572959656505655952729385057877137577937052999624200400197980448631506040421224157853959508563687191635156176741818490438675417976167950715368171868761576325933866253491307584399570117283695100441304995056482686453487484735979464470900147906591357478827364203991565543957687642129269777628878115233319531858776920775007503081883972743751385588135411341695794852950117687005207981552410010137666769425961532570519164585245418103154923185462586515995758632970649820833812322839608000452020764512253391892638258245733853709664631342297390716108946889276525409193259508116775390424081211764572263914763388811622398021175346465868400302399184101796937637972655433719571300503553961659815521297631014917243342101230576021932028577812516489432417847188062061451354144774703736078159065874722637977444254129171875083656700591681377089341749703835834299877490285222026842028327107775756193610948295005017075955227144674431439263782317612372483591094944232201881526895609037626497203177345353867985847452034309842381290108671389911960260517574045559617799717730704940866239558864872957035741376190470768241421429712772338312454815263866344354651386608630664570218857125369964605555705838640735080504907962288869462175130989211962074003937902307323174593339202162903342517404911608621925718885632018961854422948958389322288148449771335776753936047438775860980285298976658392171456390039568825033100855592957372107963196174362126841955370409595463905589382763474832237007754345473242356875488548429833905313363584416380972388627057289947196711803992575436784135834733512713651713523066540373746708290424172945341525334651666412865127699960216380223744043102989598185946142384488637495032971260587925546877597553196824668249628491770917217917275603443248125934429408604782023813403213422549037436623165429007378687057403845842736469970680009179912247762606339389759996606778781587212814054518524113896733868556815125383794758037388992588328759236975128380186211172912267910150378276460712396657788066731579220982611748879465543986987304542682626764111553702793970849332111315215106733098277034943042316549339042157011613368721845404121287966759661085252053272120398398438698055601865140060637585317189851909671050227722903359489548670915827107891653397611575056618612561210162877037996290074597611487621951876526497265330134033710118440759565650628636326479418814561046322111875898034394243205635137122337201139950157419281365453507918756746535277428058439073115253950813656763226078726329304079807818950104122060904022821112286149584102772685249441693199669304200123612042349624631361650215362437082094549098838835110456229749244051474191552758706829483110643584265510219996597489191472538489080685909130669341490958951400942312325120286208905478000857638771077127290229285244092451030658990396254758771898723784290031082687887679906045651584374248748583160573504485342836676300904610353284723712719739721413684524693900478539765479897345205360150838181400315828424983814602771458762434906554778468241745206055269578054343094420471492416630300553622176797692979078923737496151532812831412845029777786343057064344867366962314811556394954028885423093442867054804585699844797270066936182537668328378434232225553019771287817418075836153283897872175363272178381255301426271982998705798148916729270367207615117807964308654719220918790665856259201579508916819337704363302010421330458943447322113720479265625583984299153069663026769139552917287140395850880958854182074315219943385217772746464642243033336923509649513920627852370698878171302811484087685205717846271396178233056522735865146549359276570748258196602301111850404284254591097091198238082984673131794269415757684727189600737909909546447351696570214480158329278582430838458775376146877882011053733825392631581603388769790975585767158005247904231569923671440922150444620081953374026685474467862497583370092055115900858154796990559265969623626664747966965584503965271615950390195698645593336366884497235416383780966598997447120757962240276025817311419703767067096163997759971781087140160476242086356931794980472943400922953083113493000408117024867595592031494349672229558008783612640058024095851761128572744723568116645620272317685425630834677133185598302241048761114124074923576199950580953351938771094068386434432251208250813815375237132226769403910378312976479420316764526487683030644213818207715735734115628520147767666964346173103949043520314167762962575878201576220431359737538393246842311068844553256683517433075440200996894025095865917488361266760769106318136318049926584317572248152210147942692133406926091375774286339703380037975988958892355724083031340024647291797852738085496662284296835498342733594633660575437967485448120331127292331106423339421618251234513331117119509744919044600896784411277473565066941775439287142132885975100392834333256780295294426471438872184010877924026925716292694274144263469864134803816104172038128007227957051711617039419753630393538103442231767240246238668627454452063471537281161716659087901955777320899956530352208282150734667898215032838612950313584817215350724074048850172896007502796680883797573754438377453257977170208441221745623030364052842058770601052838994043668614644015122989173585713018390039422342280848292108713964322455593554524944623414511367496532193898422927309081354051459599123044726010965359943897733071009789418254654349933460462252228104826912909452211858128203235858573362736279236388213827408885487073899193672925734029591019404505536351261706006921783187868400622261953914495170866717412310712788121583607512474117787101257094975618879658975393353476070599606480242159224086286475961662026004235798965393634191872846247053932817405673521386483882303079047788569066276539442502606772480804667204441472143118218557716496867622232754424486808473908676189887653924479034009728303313119122104443706402621579025710251483067126111518642579317390156077942916215580403269161022112056560889793729871780359198546573852129388136547899412425028835255501894389117478122924785727374970453576674179593666928048481382904046108566238081960912870219292182744804482839899900637185743741200568628924949202109364238426694065012010755754768725875575024019441784315543940810668277919301879027907470995964658113474542114995530299348745683656216547417155841516651126840007939771233461445249539394289355644103679768116816785523662397440856433945096029575019898179217141634148216523907469323071306896250281974521789358665275829132518872642867855313868845663301800611192168877315015956162983064113271650210029381494143357399507027718258131589290236160993641691778267504859610564740795214233995148054073324313029835445989863086590811658491529352969015689357385552626936922049253668149108189098926158001613993668841444923416847710719531337328713558244182742329060262104604235142327439972225446438749205113572740741814544626544459545624272115909880030132883340241496094400430234570782119076402585001307352055189021901174974440217221697201486661306035993392518516045529088103564534331811945343226552804370457145260715470839755483833643960915442067867564582802184943065670463368710804316337121185211608930588366931592928442238337331394175757877062905284872421085817722550911439855378174067379772824086381176979189756640366588524358979216407472850207884863560968241950826241234546662392845357368066871544498131311091349672551294294359405273912355546287337939103716416764418761817877623104269515186442555207181016152925727687740065749952815688345734708000925672707989316964757243646940814677152171794045806010989500915792312650416397210889786401078966261756222032724781652379176695380794002261582143189296408418498863812991214211041749426730793695791709875938787577953524114918551820445512803582282760459058920053403661108620441293308073299070201211334715405618658780566578305972116621049772254627902077456614155866726666807928363751355461360968323411776800124308474434303945988956029871555194154439553514161109283938871115660313558670619516948925298524351857606261389214621345294795501772889657901922862575461008965631665022480911831533636575121763320024393732856558561790223011551835979132867037141787786497887031259563371266292250749440586175141244678284830729144401085489578876137897965347693844165074236966383667789681965613162459109540581295396200673067700847691199897150238019357147315546857662434562986958501491796785650493724546600297028982350564548863318764088009845697547901151332575563066171749098728970448752684621815124881543911322624176619287852894744820454524836192984006973206441360003778721264787571463788369335809457382106140964482273160726223550678098831293075565420225847754482559968845353843433073818565539909499910813699361945307788532680213657058893276217555508618759274787882498275096928173081255688873287260003864812220117398188039231907598176740159365244075506643530892091243366351737731618486568721809908151693557521351634296828057960556533049073141769680760738860492167985841643201519850536765621852216022745858441319108394921481215933121293172161008360583366437134305521789664069901364684274921096496002117550226555138851545360411358595242013489651978413654403850443360329275365689066044038006499971462245275996805978576890954667048543667566800308057698786606783994615613264490585089357669259896168178001827406509594253483533806849351592645404966978511643179316828733226588786987822520976702123192631953270735476969462278276796715997931055190690071266208695188931913125525405359820956530683397113392533699685618896789317767163644338398833189776082308111556668938193441655530407144081962128464482576486948819485004320296446676892862384639234674354521931710511892730992811230676982676883113904439325552794197916803166252808145772326297349290378210146133499174712526294493122169928667646658342036639251363862170519500790942425921349841780440536686363717332931173621237707486983037460605225967267797205207285513315571457415500679160500208766847481128493859895789757077600469934731378602428969515956929541092426396248386702324681099724852725140991402856720286356635314020358357205886664517911226322384649694562567675473313736371206978890947047966461793346752926676882021305621026805851442761882923926212964458794587744798275824495915691817197779731589186260725112900429831231333656776108288130692418322950769916730763017590092486012501504350148157342403888774602871896214866741268959445262402876737123266288053397403684768283528807474224315796975816554373637887773146391751908788647431126077897320656252052124173768102259481745569199392606047698130311150223164545779630200082560952554068172590369540079213810915846483782407053562194088817179492603035640662190815811367827868301040576482861273222886227134552124773582249203173936652263416858127860860597548757282573303209264103537883657390304517267844946262920310048246184568058275449012184656053983875492979311130855843236147936852378311987406630277614903634518489789719396359424994494830996922200428571333036641806560080225681281288545832276456951683750547546359118081774480638221894640875564822694694597583980141878614037075094874040750802661861030917792591824142891592896534086419343210491672630214380202762022713258111041669332755567740256471910287253961098747498397443333288739523678949270419046029565151518181966021157218547761042945830440676364137817900579129506892563901334807077144493721928168100529585858880713713537474456215873047236756923415392811377543461452202927138320615025449904057266676149393278261451587548020265188070219053484988795559623756748881623021630246467909462680508057595784268649936863941536004974223635832715802372445164532948727536408386994261383454576856719112965039886388303241665004310906389640237225314688891232269229433554821144689081246496936941021040868769419007369609922629758232935723018758490470939428447362657621773761643871911431949628381515996344896059589725663404310914580746764091707025910980395347763576153275935527149419602911767268260985342862227936350165836379285632789950254543760100224609121479077243843913452855197791966976866194726031887500027876312598758485912514268670340818393930496357739382770650037129505818141300407739189252225380034174630224098652290180526792683956033621846811488351532928051077280116115388807704193640064355467246844352508549059978458141334150438829927208171709929892189046319539689855979220623315126275930681022158483786715494128673677825993710239217368774394460555204928593942902893871459508906365262078045997941220793456518541119556693635991621646793307859385897689579292681861472397631736372198828837072806528710390204944349454408068232936382107409065728142552924228676133416411286286322281701355773900644232889591874025526224274098539465019587760368177162940190989893946637808162232184922125595606788962024444364121754243707683714128887387484477120464156593855747454891594538151769495578380567711560300149090781048498100610380647041788666158812005916949972893349049867040203214546469634143551084585621098068561308569236103413788755251668748231526334710360151172242202996202673221383897356765302629617260097235474217748113374997947811648448086619110003017880499002628500086937275813179504967030768990542601972896241982126832662749366588790226317349538612500499913688090943135492668199569639706244961807803931348439778366742839478652054136510234231926130880775449702027241225271216964146071065702473438629864203763932635229014204108152962177936916070400348049910267110819747355047774388734349986923684538925537586734550762352754845360587577960681656048795777784617856864985561277567623881396569045518915429573061263953900876347238121821637512769633436539167305949327293051744154966921229030790854650029923852321663534550096473015284979632625789953492825364302429744981094621853998570915691261514273621376233302284862247120646214085687823223366382649888970307067758561358925917409776323358564008213686853351712711029154047955007444988057810827008784394310395238640826019252691828227910670245910324668264673196789052261736143276932557268706932861468008375493598180328019334212035763619800799418028403364335891372318919721304312954177260614198430081243507316181986155146263286025605570659853629249820619460329147306371911840219363658365497994645128007105608883598851620887615337745561695082955461740114184250500667237491843034941320287543375127151565533026622377123131335942594159407255404106868799428407797869399451645890121881828819532500474821411663933552480100230274166518609537330783347346163548807189169656398620919266334508236641574575280527450975846325837539566850882384223761128823386413337284161625416989641900119535465209450208926823321009817105548529729788885886501733668110256843713174405179678518566709314610130377609643173459893749580898167922517291900716656659744964761814152047753377105800750132165903160334703299812088742486167665406320748762876037747451298418686286620924073207492850533291509585774834750390634576265090387465418665875092176904048597810735651653786024548594835738206797405840086154792678136146808844190302115244710541513540952656826784590024586572022588149660593866679947288250249050547455583136360740767878621896579361612840253858782795683962422696586729963563742615544766843651545576315317899512291793801362244043260071997401359825524905679577609307792892170788085074168678949453890358603336781846026633603084303041943669695328643514076718099381513651770689504614928021395811716552375792217758836900344020748329815264106760030290248063467214944561858845405806387870344950402228331602496845628666317494664562001757713775252748620864568369927615969521625989363530488195575373413063442611729389530118843082966274205942395347160969991524200563147164048983104075156287488490205772798088791806248733797773748318505417005142449229348754245186276727671939616761710769297088262739954129512630448692325723875123415466203085970717210790429554739589031448038475814637714391149136507311972522508011352299805940897567663046909002430240074190186906883711263613779633831378433004294085904421595564009459921134153687014444857220915319503771080824137878748276153472366175134563255936041789017806023045090476049491815553909285579774065422629899053904417915129330467559698438318965143588558725457208923344717209038958084300149562998123950481235168346889887628352161460357075253445835847145344051134307580214577144136770289043678554101648416936257944652374111601588185933788085360528549060546006186132597293415695555895743465863406423109079848849019830005761211002714778790424306962190480656100546197215490694442209751548121431729904587755222767232314012023452848520949706632298582108431085441502156144829977205857185740248797207783651549010459948987003681146059775507081227310329812911411148529200387285722975560489169772540734760484893739820553249586983808388842377128837755170443096023816567384669032273074053098351962729350724462716794543163719932666500289903200422374375063913324390990097859753913113726753572381205057482461847206186272043828760764641069729619660107368410980973054902737996927824664387099480236415171041491736581472386223605827410369099797059589713513856095742700992835534367801646817524870224414240619614946286380858443197002748273767448633085888691481428504104348176455114080603254211067196093445165177009718164425404264397822980977220896569290406715841510891016496631298579696432902480156054555820898015724788369012773338018612722440798653443505289749250069907872881026836034997381806888972257527369470095734579258206163008725081894049394194075848288274284742025133716182855447260062982792596421493694798446210177087903172325881806646818143611750008567970514484673866288834030870120739855936362218695897905212842834295265462035481693170052471288141384574653654367368554983895836994614248588220792838704827199435961998970220930558244128952214770147654886031027184008415869937320660891025292712134363796152804468334497317953881106992215033587688822978194057027864962524246166345994034224934368330412813706525740615604716217382703447174068872130142528848002425236983470477579229833924435322250354561381803815114717608760502158743221805292219266112246855577638164114478208406808030610157383237816150813126669478404750608400495125460844282964100974389469351606399337890516045544777241308441483007796731651627951533038657017666979849816245798250826503938691797375424313969125980516750726127359732216991067292617516716780442872890523043558271352847017017864635379467185070314145433650603433075461824919291779234598922842488493691085641648809121798807751613508602697482605033455911705896430898849016562414176588903213553317373056506862442419372184559924897148978520603130755621373266270626135536798493214121258968471176254778377120712146211336048435583387307361870932736894027612305186956041401509942197455087910207882780579038081894910042077914162169845999594368169895217972576134123465400520121135578225712848450864465338322127500212908557890236413409635189664369494345288077791310257679672681453850339443107798406559021533509367605502334584947638512088676108865080517025455636348948457883118402050163495065082088629933442226367988317058412442966308734621631728649810852102796089656350867737288645839750395234569616047082452667221528364059259649782052196645938461755573256134825236006605960049114934596510385697112309823819346635537364034818581772894384349602234636448887438209303613353587100669929667186705556252142267415881776420201191286793365962716878405616422053984499900078767145565278099853257001604365546501818756221887251993899432244839838832272417406863911329374040461353143664736078345536683079899415876896271267194235108242748473902084078665338489751715293422162302140459976916916187378280248177915219618676374172122078225661841417008633429433847833974459855611359677119195342525821703776695552498990864774055162770220856597075544842474311482675007114458467318167882089848004775752788434793113819166293012465310719347605131476563023429245716247533865222533691746554062298866821448644122091748502514785353069239471026598651569338706456134693550022703259168912864757115457326560612126544608218832550057483764851854879808968661989157557627331094960582621989557420268826729146214013276880866049142799688403816178299563402567733074376046969555186356893019967082033868046307470982101773668883669215632167777385691133474078096414711316324409325652017579291856865011489027418130502332795500953367256133986655448685818181530458568519148916524513143051578435924581492948779533514604358431089316498483477593975984410582142348696646234765414617672291962993013029838432418972238564270665219423322642122749043385166044547914881764209228124683443218694301158066796744430526941504023026668973580391281626965092233280250533365230434321971221334722694698119229148657032126315458659294662108356342793758223770048291234440781619148488827209105091432677880725779333120092562168656474400760979908281175738299299304203257283178354513994035542099664595669880519373085360981476651913746273674953905567314661127533284249088414544339308973975472485443236134151560829906830002946028764098123778222551102890531506266668798711083409832205724835261760561005233397633129274125325563749116511099320678913007425973671552998509828648669011096019274363893492240234531095715555217922723586067717942802550120941990957519199688336103542989949329689201739457345688912377303580100003391797202852410795039878515087246762751396610877475123823924655772815001718118271458522950093946295027722940084021157384280740056190963275068496418784596745993836446700753223766125058712284774468906292434212505064966016612010327707564046631461126060371924491717560266780842333996434466647746538913268709953725772489348396939606597379781067800724303622848371476606633569157231692227755554178951648804816895864172643316884011348091402258034976885615196350767409936182109684136808289066168329265782338859873992713522446566212011107758851949942009079096859492934759401550381691786869253164953374543503708167658573453924300174802837831141484839074546742807407690906237624726082509049821491385514301870101314882390973441269287480025254216503588752497115132911545371706752467160285879353377450803763851993261342174322818459956565610874629218447690313534996767883996788845858006662564300314921853709243478444858277379956772992564939818355262102822530109075919022839959367206544683486550391230157247917383509180378022880871579719166954179016828579198886065714475437852551608180641949140162133235912228509208775635050367580421754100549619083512797090808200663050981603112036025593374893010188877604005286102095578348677600911449278841695034838803111592212825395547421922641469303357718494636960082629195840110758855103450377102677656681763180592998285911008629152321771286483574524824793328046883987785689454903379996238189674607380721564366216025642721851114909919270869632156329293297758592973148988295750562283612107647571409475481870588817037407354783825713714530595767733265207506531128793895074818550394548190074270943502794258774863114387868914635413147019387913985625134472065800402063264841160697533302095605290275857924686865660433626095096060433924798833780123100473482348402928562675690004998382016185934363988236050135043340088623732969773426893165496723618758418873245463253844846126453917616870846103466314784493836967641487898247864612831003577818216922316956503711423544930937337567148989293760488432716820784377798659184185475114413556585261296034035006340567924407208235827921095721142895729364672735515533157342362793773394224077370069295410467286776811381523528146482564871047032551654497749278465699050343017781834011714830861566662893652835884029209757394774009600353464515490934986819186925438840416283576824996115219423606081570033860627446340677756897273640149722340394863991569253384582659050485416342787561190711368242856484594003230621540274683033921262665612471256035876955148578338036551938844811181598980148718452581457078884432575843810453173624362046652058331996587998759118106859361711665151830574803631451507135088512063686951461079564149317117246111386418212780949821979509086511504978432435831179319578232318620818461360388196755563627808425441669280687907194641314808043281799541799044859580933088074773900132381188045549731599428377662409603791916519244466485339660838202340817544886686026562628800083960480168392772522159399157097112279519143451324244275526903617974438047593420876730307323211573162446140043550995229232310370880013642909969595663945252776179538113907810885606761569557019860176714763543616480308688883414150743328401012111046240841349044131169146097976016519711971728431487705836422949110792622801505679123526981749832310964658022523335126822939834936095138885350860405908737577880755116909265738813697872490787810525964747827561001126503523760141023293129521947540525138159155496200571455933477563889162521489339776594069055769231697035503189476173248826691574632651920376787691180380123485491964345911547950664563725496497424812370314281663896624435612903650901256599816828668180068783344879042452210657180570045688518006943345177173368648433117093793990099581933806302628617756855687171075565354054362340673418849675571057753765878016010011131481706580234439529494883009890585159660901566760173587012820983918584916770207491063826810316736720792949830644158687863312683464488761593423441171469205606287534295359986433855102190061355931901604449448602887253259209806766582481225429749037027048722192882433823524017168586949701349660332751025427608924563373421677309840117974217896299479315198322314795522470683264915657694059999550852778414345068238665518833953797116559204503213308477502708964288089406043007991366014876026632534561202351575353164479897484997149209659901057644833240696220091618463193833393847957363598468237203404338413377491044648882750710081033987971332618289845271172237644459691765144604718959888487368791062642834904385404410660230927427867342413544434425116921205799759174304122738171825015955379207766470907065364859749583092518165398015419704614905754512593539382176120791058901616117448516356848553636017617568239103631490622988338095806545754970388941702202105228958751627040640358241501536367215248755333569365128414202508231782484110283523339070805610045494953262266752009516330600714925804919906090678289930871652215083511103503852553605178109030579359009601899011902195583832023677311842022763339227883540905313753220428684872366800828406404225890847649663589564050302477266446611825802010815210590140861598388459225925813167502664175145045332856728937144477920745342189261567556248804751056322839667351517660802186559330089766842190784466140642278473890950525647765481451963056150255725347124828819657982811071477910898544243904534307245657644266110268315983083961724034681576006724020910703666011132648280406477666880767098971952551189732776516966091566425455824388222560233155003199695322819763937573762576951381403222228953751800519523299731949564800316935231249590539843965122457525308704179177599296723353771523289550930568079342926479548804460668989830588997151946397862828235791110995221024055259012760106582279815749094101313589581590474482093366888845678144764014705740384038756113737828238846247467653715229862872733163037179101773438620915063420710829735452399815579871217459791215866649157232469169672127116712993248931479871856370044241350560883061377755900426000756344484913534359988607063511216884423884378433185187603668142724362767919463209224388433968333571335892402287230805608344000683320753114945544693991938435031533222732928533350357739478719660943633005680579611968605744800254829564959784739898092837455658002860076676771764556228469481526984710237748618765592606040545167573340502739932270209169196106605094217892650867951142604034980534419286571368641396560782568359120102865943127853014986484641641924774208532352730272350685030446324631244629780097094096538929163536720199535037258682320736774581124943310754697406171166189045448579876537182590748935937406688526010081196229954424634178563321755255017178529798711679453168158215034562872862698375177784801421270357859932440013190571833809364835395541868861022493834355046632203994735239611778415181977919703357799708208253500384223014592813267360893502676272690540000322659016405662833545683843751104633909344645715707536096863984829807189474278421098898445194910744500573893193210271087526025880438921048628720839254869359091270024824005125012978150840769125527751802960374998919015406916611277826279866232405248828823067609576558203247192837793461966631860202847309263584529285648963173801635830887449621317885500164244700575334905232856424336118189541160739489275677754973016856880218346917005883903660945541548837990075011041646088623717391920722477493691352907469891535387210684639935137038855812456898502179948712184273512588447714380064692789089150912794632686609371006523917860961313581668592228825738487328414275961668801737917605311189334469375815297644942351701198332990971895196813230003854155505759815211390883740513553452561358086615760463284737663271972753944168410809731775094789176149591981838598809401500279058406342125760634119400023430229395180053104187221310895490527561083783692766983756398922349515547872831668322534881436432282627940541954782992811863098304611780050574042887176892829046588431140360604754386205473443546148126271402747148720717011259270023826370383275076733016106904757497477165639107603364507100530758437202494445491088169788467943396502031421008472608750798725780752406157388949706321661055134658934091847499852300713580661007267056877677453615566831041476240120167784499661306440086496591003806584094409508465540553952625417833112268648631522822108287627818776351145365074881405252794198919771199679669915726930170267160483687853067820643910812116748969626587771923612862479270631473456425425473662043008149530311791566953863166578523083129415652554219940557319358000871598322037352215375770956355863319567025547695806322622481125190516691891937477978610049529133005332754433570429927120947602975213680272070064089891812115735332841952387633935869112939631617537647285365452864361855536165838576298424223572093022586069411121707755775052021786193752055145846741560616185231135145663899061439643395070381389029208942001271109898605787086206726848370237365709059024898110194329429520054762913794024474167437529338927481612390641592212187335959691620034756709131674467248475362209444586500022837807917594771720615532223122200434138868672245580869515401071156852896614626766734861324442756819412004586979959868873077661575163199828296344188905793171921011700902429481448606804548527356940361494879194130236589837603307206151307618957773501348932915766234723001356538313064189696226447160024280140557780806461067246221415234024009902429506153690081909554417775325863235054532437600542720788037343858559207492314479127438263535085263294855109381661109739017755922200290981884668841054521146485155927425271535552143174624665484678316005085678758421245570001641521053925298288396385026658339782711371335318027900299303699691628753101141170111889246376683939293171874728061982370312485423533838392616281169169500098263032734021288385688713813372590115319634504294459778200459383227675576995224394917128153114766046006735151726035771068219551391666533827892896178885068772494959775594717660582619578628684585652586268704566751955964414166561906920426517481375021403718324530234856395208633239894910173089625557639394814828827585965533681402208267830636263895231972796365651942141565476332366412125313695250554627074093536153773009186368239827882667176873324474217819085261022855761379426145873043977675350212623609137838374805775597988875699444023910402495565890204584914855316785134653968055763803996060512372966502685716938641976695243445142062566398451106370100687099182261907687084658001970866823495721719301527430029960173996872195785400217015466258772444244545367676786560384819309897527861014758365167780409511764226064524564172637017674136896907997951466045837719744564914103190078855238558829725350432781561320232759271106856477716035175237334731895050624234680042522423457331230495019457660281590350432213523222417989451972187095041423736153693017338864542708999448705312285759156583066256539474565570991590038751819852310151672473829428022773654410617395803165587347771494286898784856074798017481087113771603532145492917740104355210975122938478607515716662950780299427508138926917202051487518661490390884651875108488150670289876579371145362468180196542962584986362949570922215491819218013824019921266401864941262329653853973795564551900727635729505275955372389468500930854446048118107700019229759371670736416833273122881582837594918477048527739411269149289207789732170511514904615062601619284405162596516715015424906858031463165408641616488848015423219971596967342955145609023199773875554256633359580167736737403354295848902093322663656007932307483979685125869328512990446952420765465073700431832822502894262532500765737253017093712515848519180392535876370325426339213818401545340152263424526313423022906382909207964039496139324903286173523217442894420812779934137695264635629550073968766162389348069517272104320589097720711914421376063280797133134387378392943426026871847643445737092622532311782531334206287014216245659339806147019237364434188644528768472790909511876312743392674299379817063275552398772360980330665847949227874677521826214523238563876596675784408764893678493689411311539892807127110394498022589768057754352169976202851544801933144007984440394793091024354176277286170458863310620312995273461397032326689264249873508960852099661590868894112570761419411268728317515566461462598046094108815592322439908518270593779153589325273879888070035977505169252503460732049586122105194778568738111889163733967955365551841153015921956379554109531888639818551821863216659488886805497973411119021588237024448350603567797212200265378827625953884681588637134690047436854154372713903388854108699412912126508197179817820699946413667668258055232212922988312011622802091386246071222622204557366169753958940393859907273413330527873783029662864444676412154278388001410677079753310601389884242425847711845152546917492153483592896217540718271051621262047068237119211131323033095123924299995770842515917084636249167492738855479384255656844394063759128074550946042089372137059858406123551335001216513840531884081272980978409268589275024790507894292374137074098416662618223708612327812806110476873121804837672225452725352545705948208945450445045037606235632679467776663912033782394357445976070596070865098540516984304130661318475139479375660354726821519422120917198649044981018836415576126851571820948375379186013740269318492781451652645964610658799113623328724988291367857347955777657103974763395686938204317171464980564122328303809277016627380459555929637384958097995364079814624402903350428675400466474159300756962574611218533052724995459788103097593971967746097511259318247403743297370069338858234904673314394887575115855130849617167188612746694704155379557207099755114600326684783612981394439021200872968628262122252960374693118314309426925331080876486891402077858804302518409319620822287274402426372035894471374740003081852336746134411813985906775076486261491726464786853690976839750739932716957321175298707614809322235043555895912349762836228499165617885151608371847396319142810382497337364709151403287534546875561202334435007722622605183652765535811194697033473466052031508380703664986323091911444416398604345343513089513837221587775150207420342176173359595843692145491706446367193059130610682136972164103542292816845854557997831186312030936324289194985482891254487300886545567401149249146870948938316750198317343457175804205947357040183823317711343360499744740981585568462363651715767455760670113489122257690241937812732476519699993992784440947934244382081139536436038057799391708221732787300582275716173584394468808398331978103378671060381413379618031145999736019968135932647249683745284517953930677178869457944655400985435911685078431029576021815258469041489373237802843302681999542188031263661575107465968019911021064420486939098989062829841698256702979494689952666012656476496680691671479835658898019575261515548440219261470231600501826902843580961407690148950000056162121468827213645380784659838579928104740216392540570020103049124589189560219882250988179250109680496136703614888788628083241417427257675655043742372641721417096851063085070255166789745219674817167919375739617847276777389697366497516482159888062070643095797499109865545155467442414257518862304869353361002141655521311933836670970538211431256772889887536934861037119876553752445320961268149656588454136727874814421726225197130793639887386058624052737251371379640864930875681473522788023017389152602723366064361043173808345800819368094780276529368032189222585875367153544500744210181452175672457522296881364232418782486299855965417658787929379238063671844530819916185101766533211676056751529037404315168314034053303011733103183520985068990780797198430477279281444298261746297628382509954270281235687390739893206949632548613689227531886164766821173811726836735999435103198587135721663022015693690955983669973022754626108768678136161077279380369220076460377351601846780864509109115201889440826638478605306988182103293633891699514709446580183307653924805181791363398513971700146385205930849474898832672570529048366058874551025436434128526673487972595682737295407583087187777487621055194761140667279209569580149290178229244948515802837507728424701727576159214046076212877438099620807765366124925623316332420572576947817886686330409531737815592347025821895761190287259937183553301371706408500403086688778863023170780225328025686386838908614010926013032915667694037934531830352554817076232854692316918300530585584837315068766330356928053581448288411010821603877409970982979809369071665457763795189023398646021273525633204784601528577121759795463217149628734817935112104309548863566314366126124030174641955463866339746162825957578297146380374328293694609414874010398335674993273508351351580430612849192244581861510556077632872169388482605229529869699256275746762850754025385050546608923119804622709880729551441287723032420686709558218047127055217396354504847538068336991493880957092696313746758902089857174318570458812767053196625651878708824211960548427361218291308438259884109431698489521806850323321666285196023572258642074695325616314887815670889172990638517846000191766611840895721282753994320501314791042328428986295830903620683507727951477215143928723698188733662016792167618839771542333661588125078221674687287640430264929178740083067179118385189990899469327931989773739346548263369071904111923357078656442263794491111872807173260865942018507627811234463437867738929973699004969956691243634350505206695875082584907823704410551169920436491579876974676204130379125888020449650481523715664372060892219173935762576197583025952888483128148769021558414750804518427820583553493211217834272375284370748846719374860292495746045127708804645445931428155525517869894930304367221181877605361466250602443563804467864155160812819366550485610368417483252639824010824819396552323522491090889243746799333831213407514961161206280122562387541375760444612943296129420679343262308473059214063369320811272273914185453868494373488867833240368214194782401350639530224428327995148748175454328356582284763922666260556984196396382706794215468071633535169654871178812534679167482723168037743127665886149416073294737828606280023234987699888977829913677553338544766281588057860324378244364387512443341754398247961305396999140041133505878402193062011308241661053150094639800486322981784442892467340354572044134883550318514419284854800832387922615578266602095925512020181651415739881927665530817162076698503942723651069307290996446460449751778203251505842092699237542496010856159676705348811623467205461217734248052015509451757004199235610058534665212658271560527993576806235584462114391383953921972048318311108467255836586076821677753083122968861661571334568017075753402667636011346647932940395705477800627323071994556475493538128514416417047829715500416281524856925036197985220263737046416163108741769857949631468500217167148699249171995258485291150003760892710180258972026217851924361570705973863910469478851084659722535238824255287366320477010219610835977647104664328476586549119818248646965194688642953503567436160612396016389810920277365252662437384359910569647262694511701627825916339680682992497698648746626269300169949222097444871701824525145691922265657793716778455927273427476672120423130627592876830693843257408840962501851282914448884822798939986685691685862596869042943961536254173159017124326904161393268020031004077616771390417873052753318407100660223436013057038200038587469374364477727504470651631880554784146332301207669797960287053857866120304793168759846027817874413415448598517117996947602339716694413048590361149806227983013012029126620233059342653208227046491844330782549160389893866256258454061001112827517336495831624608158800336180983672023002540070264334955994473209676412135076397719801373523066172933507858698672298465122309201198817202368355965999066506679600567839919008663941262920441473174352490486692231647113366769573536534415298763512170826973714450982832102505330397855763776856806523426936092312555780482781210044315510077960019888952089334193111658224971237642253427327504485912687698685387657321858354634415160455245735059577224417300589583088166346916706174358486192096616718642137949874725101697987588205620410542514077364410061671068725054862487426061027810793910084686538247534076092113485613097370406248499333638301876190514675824116832313394080378278584492855300086375037107007420283998134696493483584868057498082757922430144282279006875835627005220048727652656194209731464829080678857745633795179979638973978923937672230044811241328409154622882716062472721709505923953822313606423747859526373101265321774312417226516697287644616433277880950335482480161132024149472234912863222924377276055655666251207545503922468530307478849919620011957124566918519414196915766142826639036541297573480930598828282477855789582834592935090155053520645353191939276860977864852123675128317275917110114984390607599343565715731241865319884712888120795349049158179980849598128760285437804344592135128994402484940147852476663973893511114682114152265023984892162766638910906410027266273689691998404967606930586326199195066420574186696598337439215815022697357723382298229769084186070646006057840946469569211981880659286379169152623841703899354881010646139377927602083911345755011350612739036530172703625345599793721738459668716896017959080253785640281963051040445195976521231661704133907489473126470812001919252550433372721122933910009929329950634487592162439320969667067294719181872436991351922230649218357649911323280748193606155305587149649468105230049883143173963088939547250399780392401875416043203238580596513074254670875786832283439187021170790799529960779165884279172314744048373357584880781702711144074293910157200523928536251693906148822826825052312231835819985404988168784062213596064199963054692920843900723664760146410490576290055854715054349474331807005842657092127300761274773827887973553547650052561696586802559900411767585380062687989532312826905579991710399936545560171090203220632303693562541912827162008474540638275080561518236360358185134480410020357251144751133581892059542708502109882833180535091679695807566199729211994078003676868058353493370273682774422799911802334504187245152304560618991372907735475598265016722881007773566277819346281038426454002796368554806811698499088487193716533040715885566387087559383594012477961000960407154368053048960796382613316634345554592829042228908615663065715377646927667892761744423253566158597452933069716732072484566211055606401915702278784582619585390776114740051223532654692531894046450848103606944632668127586823489170285486713180714632934255948742279461334120741115329441280138739332555949032602291605181914636205277606426451520814676263870992880396766698573209584199267455118830365558205901779369507643751332329796546558439846544924302342855507537240364809754033907922686463050880084781013165697649513811018024057403664537730573666090777970184028620477409965218054819632852147094252196372023235017815316546140422643250836154028642183338940740030944586398440651530628856237737716546816674915368133226479902628722398277823482688689820713862364050382646902887127739093513568559011141298462039429760278414756840603408564773218355274580967585641419451877025031793052181595065277406705725784708591514452234359204101094713499811841696470220486699383413236197872038959533109486908886935330588327660904247031592613165819305547584649933120519252756377417191264764273761252385154280848412112260333605903484506172707537751814283528877252372254747804134915197062176208393623044891142927653740076736975195838888890983636787437516028476592376221022710916166162001180626703666481809687494892900281162707987508825696157935396372403938429563388613064528506528149324221011721795750812258625349600852384332699193411231268949464333922741163597334355820497494851993889691580754968294094371339618608865776649430301219110738336580962667452315041145815201588748458545917260352073883691349897692279688343093295693657599731068943374331982033140337852239552722382970658475164690060097094057006225182503558431364016206903251151782763755726621220253510945493764755900542187688652873821935724207661063880488122083172040542584458346741467791121366718824466439367104875938862626734795392976919847832720792958251621557680254850695787469903544165209100797739608424884365181056139240246667079365250479254275269625153797386192019002315141125903341813796922611902245427746479452455614393649375821317421963424229296437771066668022484839930238958079780250514868444401797802323061169510615874976928715853960734343373773688653730905505541631304525868045838500515524327372014439049301654000423680492808829069464010492644084298960643402996186286982675955454824811571078951714307925102292375489553372228620628179533161346921942306797459606924273958709715483260054196491170773890228091151347824298616493459255400885061156764389492265687115699362114241680448956443809971448702078150235038226049712294041512322981018459899887753553668242924670966033037306887609944056147710693079932194123955443221352920407300642221378047578488465811940742136643973227792515176281875077766701278377158377160140203882472372046224618242150581685089997764287798871220615769800898438874957914237876823485810478787801232195597540618951552726943707595997880998326149739853406494815184688473449313003337843456826763618154866111522699914853549875312521042697672943614194468726816770656162826429121541145272296893155335434066273016959436830355130898230109561788097927118980609572015513734808589873250822056100817282578723981891951179104442471492436507404898578018741954022116972499687253880866071989330973515283549173945933947645008905501106647719752253031320764498493756184730593343169982674940307909753945908566356224314979420795237040380164085441221779421339717780950987984451508882581281686741406940435997982045170258490271897148766080667196344367676783848111545917422934408827550630727384629729015779792502393908317413285112284901892809720223303215772192604142391546593868541973394596659363887062751145923368894393842713362847922302678310980746327335912984504117134807924018064681857327109167983398360588989472186325155951110613903224540856388409248445526217250341157912196042044887206891546345062406735625247633227359242782216816774668881176544048911342827546807288952087584565244241512366012463564304213017537763167625773980670771642672167590911058277716950309800388012311623266768495402829715492443576180545864214054505308696362027546406454220850074241122005198009394208201131463724247881327556402368398137525314439864427020335349277465690261995633403783747848888991205581841543635700921396704986577447812628868661229674097824251263076968368529351282391356383583865186447880174689958623266773337473919264749678525579875301768277749454748591372859200279213018881477199803220930895071128175978257781195969873373666213278566617597693500883411233317472769638120155802519475972490376103659675280871114636237912868044385850925403051337752737218333783587734624348152087558037163523492833050543239973203280773970821401395132659053000727586082154564285368268859178190023844512736945389769804914850532570686634547880892935346033607522466944879425281648084900323336586316995023048402300473993081380173153246133948616002225725158840830603480371443185659131158594437217571122050733459039220423874283734853226687574532261554978870024953827131360273570318824167700017040423640137566605869716508791085297751676750403485519213187472209190291151756970704397910250226152744869345507417358764405795735212018028222961310042419824766658832225893357651745259587917464839158456624443573156989352639763128373187741614631968485870136192335036910742737899746176808159297369080579389947873558991767142501470490103966916134173243309146505586557548973569944313473878163412383056413229974748399871473830900260371208234309220647276207672852966991475443538822536272330280752136170344658967317238093528602053728721761140942276669037543899285797529466092361568381135828593253290347278409342291675377776278026003107796166585937715178335367038110808878478457683939402969722313363164589935779344104724604005350394758250824030079162695439501466981628595537765367714344671034327919426207237397609818249148771346732818467008206861940947687635733745502192924281562624391329433852888061975984495266577414428413286473532253226849535193437183643811202261975958199375439757921934251801168775533603689704359107791252776885128638359310211322146611433305125833907256544147885977926697325092504737113484594281748882978274554477277694683571214586137467638789195826765572150925238975001768600602064313248178627969037064600014837932872072374301753858365375225601523795834671772504593170690499195748741697549512553375879103405596994618002196636674665880161564362170594084324132902825328051147185082362683400912500579362796598003901969007623648943039521110861105073828539536532371788710350732175976538309340840082700860013413990265472261662605123103712670985138811066964596421817421585720122349526481724199533434341713708071117425706917851580511067369800750486427562389911906591006831744718499942394217297066818947977980656485999757675835675620030380549798028538766533040755836159280730969587410915491359733551005667887855180547273527549823345502871794575901215118139780082817052138755921694210093049419807658719683687469890217223103949445609046907884193693597609296223013193202283779807798977916649152270258294668176932193927670728543595731956486092371952409576731976437552966922386771723142639624998165036811526108828351001414328633470434528514352616178697040161584588923470495056628405618228475658785430126933572624526507033123112243484487839104515922263225563345244628973248757040662124528454719480122485225664100047398088011502043520236654250747329081047489204777949285110875022650939952486160671791621726175557160299531941977577096831131490130490948314200933827530787194327708275914398657813239402155620724760787596273848519455698177122877238183726004321658938705084825511948292080302923314780104784949235749158514465851526755718222254870669758434637448354565513235419994123865304353858031552476382793069860185519453901852495471289785731468790652344796463591478419546227718935104794824995252114465168859170100690450716985289899405878059366988065080578263366011300487487081769880274098599447106882455855114223866093720050299522925312108018744006335810589605257681951687143406533290820548962623275896075695042607449041892130993953223936541692567004496162140063718708548494137466469792710793364004491320900420702344182944221328008143380611927544539423571248362802366807953757424959384983660450784347432913587597208692579679923225324277849004560132133228679114933742807209126694622223208056220258794424069685591599434921003303704195536500655743465410337637890610618440386275021719844698562587627647452174036654806946051603475445714628726029136757410953559155347229281150597272478544785654249316924021772231182107680386136278305734502953062727239620154361381573139971729858194130686552125486580226192667360924325909775576991607059586360107937111824460230454611320327011909570443779206219646570017847192644030055141288810816152417095099346395367910159440792232313818275473198665355192775599329506385567617573982873436916537151945932331544657917274603741364527011895598591928192562617259962557572098155377610267169198686961193495848498508593191589163678200035187846688892733901272148984081312457602241921482635400004163751454446482062418843464768737253287404941143441535329877063924472047681069404398030872481475648882190022577014022051918860909280133214313171598551615556451778469986866893974897207275148497182299509746919397676928181146037564701485347938318380542889580988690674726310634978956602143358067933399028654930461211813132440831472946892216573664956452616932052941736026026285027756730542639671270908036995292604311049998969073938327046909871268443197133712193222132115438572670331274004237313656383579031031924347589925607334535939676514349884240687538863226506413837545109376031324342347722299865651228724075486936425561219699697820529064074827107390608002910295050263147179946618815359454010573532404927586426644383888205989701563856287789522574078087752599548762856133476946802654113038872390715518603075640161048116280829286793455538368923800889783212058239351668769647918831041796776457941327797095686521389521610561394268014176349096722764780247903547742783798709514427111837706219541889081545039237572100296058202262939607641064239595155262975858110578128018064886470213904044960507808161102757971522279898947782767140158187932557836726390805274880322477964303105458881911025454916081621614095255580887184451432444589034956258976316347123224687476599085761997408110758539901263337264747044318619383044948521372702006451742836113298774379118036883833609580051234732925727728868505861074741034235246038722840425032238480501317007569628698704788184019364686375862310618961305814982521576479028890080793688227609354567395969651513799130358880142409927963437250902377826362456524771492863168573616240361072839847133531239153510613583475619453180342683744215293248091863682884940448657538774287506532499232695132974635302971319841928764536479761184959077822565355811629335599870349305874630748111331432400501286169733650720447491451479159996736164359042076943612084534742829915161642623431990862728881457039921530207074214208802448527240394121605616055996452924042872658320169598108875401411931276648583244165619132807058314848459864482312094917406676245659744976992152034151578466575502286466054995947167146136710447264007051352607816526288224146735395293654803073800785851719879076563394817724327698310962670989453102263991698772461380632466520693542860654872462423856741576586388772787484693702496729781216608135867442183500335636289110142796570349697348414831286917833890408420271235637255685062909118736564950675212234496205425788000354954593079198386506166192639923021393751345264985082092653572134967728509367446342785867972002382602240804513006679827114388846630088238489653965375376082129218210902910728018974668494935783718990519671154702225110456170322193956842563580417613531656071194093314750174159087622815310535928815581921588768469875938775076073151851581484592917419581932872850655853918093142036083740434927201456056589047988625409448330343641830928826517905285031366648816276545840623441503026199157459801493168960112147116030480709989773110860984816648042603039533662786485483898451206863271425850221712889029509997815893557952693120405151529549743283481023884418625935961853225263119935019673367827224973057225582708335681770518645737586626993017909282242622103680049267284005140951343809415008234591649610944145498358781248760771435266442738782185350668179271244871977735745350358027388562245916071794290818856674983190579082535729965917595213599224332896172004649587725282322878960893405330829172786252075952433431819988372150209374137350802455883434928828028084029361737430337351265588635857063288217032894195032899634922977493594378375852025749106967999425830270404939052161314010618181490650198689690840531615374194472199082005301660011155318777825282005132840989263669320762293136639891575400241142412103008086937209694988201088148140964164003060883701353861409705934784016747848895906769541465002813432499305236074196336134467099517443568694937404753792937366572437795992292395589111675307425346192039674072836642814929450335860181797585254121705770547380548441918434400136295800658574196851106796454959616405457128868411600410920929566189426296417453348990374594439544921222444114215327005701136739733602199701978462083796031448325737303049626754558726244003263496617313872784731163336384256517188785171338182591989729428060120446252862683611251152381477955762620712758263814902052229329642020425386440280650511964096677704355359399762168849508014579260353176823201173745680969927604676282108353841290187598995018000027025096621782217400599594709547770318590111171736143822315849424285503084090847296995809716467176984603569459588273515904897068870360146821289665980245778350136052557256000401239969592921055718646903609355740496842957679656547774332487153750183658601413102246964004739223745353584599091567966705515063900502354590501727841209952559949896557414176664133548519677110976854524203988299268191071005769502415706891781804624078646507136191014886779402842851325082734439300784925269345949022036001135041191657810626063283000681544602156455395702608347314041506275771658386530255064934365593880221750243011002146763288332506317489765874402788360525539378991122307684789628217646994043186566656943281079728828295517078292679210215641308907684760042620022300814612333821162442306072327966359511185006438537245538625703487083863167209938941540301308036291735970193350146169738339386181140276228998560787146085443911427514651061530808769684530467754670277929806968088484797152783763307467598552875495815695678572176844229341388733126478829467009079540804711388240161584267114462854829241363128951060052222406290705610197612506269721087568512045482298673321579847769372088875612173449416379420852769900495477625685111575533922968797795713756143813500634354891599818496637514383344024179136664090100062424396238203716217822863188376067671108651564752845605729969713476244756976937826102759840000824721721445530030232175984275259343751838348323934868211884354746274486559076256795115656694128751185831917096400553836725093329311019594591702011260040061653217924285104998592662814874703784849603112163974734942009332219455439393857616363689276596878480959733984810629113593869195358382352943644532180027930429238518123791091290286240221108637634978962039854663845759922901918386461357659200543583041675726211308490907804733232218095643143440422757439158023852839524272594795327642817539454076262836641746931230333234945483083627471197899983269400459336883106493261023491776318901623122544973966100318196376506344419733646788890032965547393107111785162414777516099032714671469842546069964353422932287566218630558275873021828530339670324383858436264654038843819162800400019792955804666984471840382281692195068297450557560299934632296899387503599550299803839751448757895880977123253486272089347604983125960914385088839816415514267089971768602126256325224670646297518009391864431997711123031073523168019039253928297288210780564822956302305404455079948309247232071534748457538130423735555966949771669563877577503221749206989663965218745334777035241665628916729859419872938997801664256743686580959955971292951107220246496853662237455588513071579525738037075012610351765416219943655097982528805073836666227821524151415393903240036739236847315926348539870588095613971699616029527955922012179611703768974686568280815097859296926350273927624157247635939927842671773693138962871935822965131400339314740543672842841248777581817353963814018066142198464958252031022981307469124147403075204048789705883351415654645279110931313164013444903447496850981744150757235268769368807417343889764655738754890774567603872775660081520284014947512697889267172898457051849832086561358937433003538846956056066322722255733034942419843539750906791984707227509154555335824301223562769375627452594762388127906977922251886424382187882237561331808183089592365691465950193806294687936710631783999880225504575606985396094201215482669327704178121929098273728868572136667976380561183028869144927388139649776716681193456303671889534975527077332680874255065619752272494344261285071946216077694202064005119289464874057377598394642423839060415735208788174214067077222774274645551545161051797517503238922356102570283850150133193921523622945407727722340888616658214353538568750714175760236548390146909641049074021430084838887265498312887700303678324437812617346260435872278573407510571994935531183800577533434449614858381187047830418157184983923290354954282675966924854037337668590858767932203126226144948266777122016541579066602096544619612473847041682141091954413673433104265770453783454357789508165052024522711884210683526467391418994827570730550922908743815157112614034363108535487236524765567581988927795043368649630620025800724780977229507401303989422186477161505501575954576293342013836222731103878052239955000257514348647671850373641548126526479230666239240382214037766066182580703241471188036140083902433552619153277491475747235374948409401312664091148695322324511269205135258025424360044335663476421888427109407119459268621268489817699447344119017820653171374068482211518051683557830865938670204383234367531128916165553464928233491525655459112274673587205413210327265423264606798589037483123997340580585897571991941888435609996621978947796744251628984673257792454668631802171918395292710562546754229116413941049858568248960110217975382346159989109738669595434485944377746737839987588290241058381928672990154944336044591318603899767762364514631589003782139437933898451568552704222242470075590995497308965613490901310401711398296246622678533507156418172357221674337107122976233692691138529455208237964035517437650502708215290468229093306570194672198461713548003062781264587496342520507382129358501885865197298486270154520855087481416062905461369867528819243140987109068539978991071279286851194358026288890686781169106619654175777887025818641758203459860562753136787126947860331228649884611652672244404082711311791122863887825184262920372207409245641783783290299970180310188398969310224720455219626198666400813224920389107286986171373547751266123233804443268488166505770158596612308768794203941384440977140628682247263096156727767743392917413114265446164803850776814684173388184202419393586652134849059880773829723995757049357661379157053702707929720081882212638347317307630482052977661713680738002187047777890468615837182045253620356355395503812342704812697924615552160306012613805112362773920374125024606086738656848916663855194880890694337158784191425076578606872349384566372759815010859434041204143744359708796622762715375471252649228101650102698690045816354003685972397200988849600816161544110632578302135233329797401261810508479560823963107041310557415570209556767353677203570191778736551986892060586106459425809221301743039458198870950348458950470476407556063371496354928488347415995919993571487394546885333168813920798505176592317933388139847629123214453510924041575991072813723773483533754212727830875266173288562000165774526834467806047717938944655445103906844690877793130437190577525126247013386657733142407050122063271055859197888752141533642144231931425983260143044054061587228884821010846931165732937120878887999439810031795902052713872058488331694877440901551083133881492575820926799451822838905133034020479209831042772830992804920083463696818926613706159135810760937889714956140069322135333679764642894044296676696775040017193490118039657445912202433342969070581220961433825599820885482117921908577166983597288947728555460481935787522571060779517996447178526229214556029747609024044376470608692655726551308990804847533669082728763356042899531242366159446503820339771593216496014723985295633631035464044010603089784611646381027160057248982060520060226283486801951121616639744406272325743745743102590408563021853680787081038267566549123117523855566740691737673717730588912065922188879559236102355250012699132946177476475443289001193173410574283274869479286619280752384705700219913851538208554859663777227995928408331717611160952853787162911757062109914243639726703323705279479385631221429948061401680600707666696664080497678919943694712213529591483554626617254435159820435086897269614672302072497062247575231442426167658946016975161102046318586052471249256177491139308156249574887180565968331418117092336010237286502284871990021185914044201338329861864066830224640037324395946266518359235735918251580082308700427057985697673427559822521191451246035835883183242271260880877947540781339970514035210479663915194870743093969961589010972639004399475398204613088901967238652780423946828351421336552509808468843296306264422465205766057485334231964322647472157373622953905221963543445208196669259372994151920165672931520262853602059536817469359179833498394298668157321237603960246626911951734148580042511687975827329539145322293611946823379970251391975758875093634263237656242410660535296764898406058819716420239274125894544941849174619881141359339956424784430254102136374694307293173141536116707255600758493112999622529797417535670551597585426336256483309480153303605473185795405211974919772868269744274535184733364751635732276756453738220403333513672765837696652985632500732137772361833661722783976362506484744857855299844596065958192257616185295768289291610962898131762810641613169259865083950509035439893992237525940006920297445445005938032231154757595537820490511708101172709805746303719928727833904873707394223564024023789213778347920522996996876365894637300694988315027524100911040683388072624431258518505926504453353168375481489882092790562130451545874182049100821116372561594376694546017614438585768083363781202303865156236047008048624647234828118673538973530732812475980292400232446369320190079154965599570785258665673712561206392990113604131664591057963047601807136892546962839534869265034858847474844365685069943810138676702811038390004786043843250363504160210176801203909524368430055509741558758669082283202929900808240638849590831172991106279050452424735177346333613891094767938423505082624885192933813836108876639574813421038253219024071627834815300442509556641050706185845354005557944330777411270763271474016714580703422627879114936551914961178088210800297164430682277372688814273758313291928430999828299841270250819540264020292421492120544638934026327656735301473314546355829871366408972931485738833838755416551551302624492088094536740983928885126856879991065325970774456809390408711911662418028936724479677018080848191108046559655910236381953635970077750788378186936426574589429642154901785512028846104185870913504217325949132145958997996480010038488467148792676223963446641438595674502538491184469702157401711224783030018816514730812708308070468895364208326491422029095501471595419797372371215443825572049470548012562494470075882664018487683694633920587388502592005178186877275285524921960495995232776307058950071423679988292715745890303212720331179405145712610922670777302990563519530482811467420267075088523019687605506000843179991159818719496134334811524813618575973166042253496154566217022919833470723223729941650851591107555802836219802912417412160416884256789559658946249716721083700968454608476363251447175625979890580837693902277025827497190387466411444113696164448470705182746553419325230330311092348325951942403906903871095053318661758114906824780992753502272224745584039436137577991177280070495924567923733438778560232318481752467020985563802534646651481655022640276341440656478944881362686225591166010712773664958622878844906200215236450326668338485461666422331480475127233979490462328385980310164967693327321947124015777525788262048324144108580521496056422240307236691205743587531191894430923306046926743686252010248513673783713577011841804322866715155985264540144487265565065302390422151485850344152963404542406364892420924715637941853522505562965726349675615733683647660394956931122775713692795398473899554540191851733606013963154289826458649792220699197226025465156670618828350652172736777410331809040470488289558567794665672820515663191827646409181579419170967742486106890950454642832542157899419823096776096083348864270247173476173680058598121192350923427776943445147619773878204948784739644267523265288209884868135257492782314912789657587530201706851904586741418110355475621845412021610079190288175116269595448554041871929120152431821200318099361562662511437365598989919726733547410738238830558105094448143802095346143880465309437051835236338744870705127474725839035001996909297033963735324540537838164569342316369905128048414101373738359271104566141485563977555661536483771657221422194224174488618317826131344010211828499436944607498160826411808813180078915685832261470285741867361640048714959647194993823922060966013339028367336826386436972117496074369742592781767871038784836831970381429374225572688989397267553631560780129438216765920865874684619074302598231130114609668317113890647903310776354801672545972438040533128016379723018786284523838084637460251526456860113455870162434454670797130871660838627605554608151790630732182480869468302552483043498114346862440085708691877240707690325195109278090500505809699791176290262863521711665197589247483414462795026817153989373872367263563419228313941461356342569368611347786716971247715434842390002232369508811473665125382592260981757850739409951479851211264099790187609492139625251782658764174119215308902029242627185714929404624867660073510454451482236210043308460016701369836750227165565968336594431400880442094268946869477042401690895102901574925099453247052941829370340670833120446754962249903764509507420739755037701010152015335752681001393712314544904297729383094974463862651389177578978779320459432292578449752335200032425204891092437764527004528526575388828603446033882008108328224874569638175136242089592322114083370350175036110107254640086813888133967717705128695774490767555120110796165713437716081997876112141640613192194388982404138713949300475484559293463373162304784220377310539630102272388666431737282012652740892392689811186193509942022799051247031885423089777465834331844412634502126976922682444458037880398377009199950739446317171947005710558137516079537227130241200186985500448090206266862436589394719485819027405242810139150421950943192779495363592083750663850694559169521853643521857590378206497860103430161369236275187870371079501460100976171540062084517518375136345309852981966610260160799083322217929754332747694225209852093563633975203834026201386185663213649600913859396000917483551486520563085467688278505243790245320251845816689327728799860921259737054515873427898331084064212425315000820919546803660095934008164385619937182211670278954944328590232062549366858993312212916925298247050821651988132968884966870339550153992525769358618997012002903596173015040280283156099490873357627567499383244572489533065286913139836702388289275329879161572913755414651874225323811222268532590395438843228291605645656701060917289358974925831120201225188424031967922104033127565014406384830374334305722466566172217461574792528614370439972056822434473774749386285087407439284640215700329046718669244065315903540668302301013869202316947300970403347741864466075879181095347698400667961103002941773284428277755303131279830660954686363216541661598714931155686121054060958253450850532756998592081600310110700998884028500665515025708012908057506644244995374113331864320763690918403155727958767489730201835882418260900838809277563914059828677147380138372528090799344559746723104356978348328776567233686552762894643605241651340549889625183264078329551427997017347740610291447747841762217230879845759630050354163878670816049058909806113664356623431731469715093771488689252596468703970987846032663725114528529035473687968674255777153502241004664963778959478905440122459440549790007383324984837994419019585221689961887426034661797355105965672025820456181149656891476427283132815852406213730458612231986278849930075799342959974897832294337236145912139069830047747660244968729328890585852399191296482648005257506962847715725217377264466833961396909016923261102006529283085770303603599394338596591567699743621799891764999504999899889676742682173883097159864169591149924591277272056747979238402676755315060288999382050342851325668285972174993128648662489878847042509665954445180064198291321209839873077367153325176348507220874814170130799611162808559205833917056353392451633182373777819956936188930934865608417390739496473956301753161047155088465584860088250613251575855112033181219696861023534663532816667280774863687676362122628924986113450942117030728899848841165910414224530605519636349641617910135218049878290823433331226930698207586926243724284319222825546074366101925551562342345559324567582213482012126648421897537230382990687826991589151938648737893658318431284422111729275647604904063121379623127329721098623215751379052621670736942584633096886204530323983798081176208758200547520691217533789062317895027709954434471838157602534924386574709823687171462650351612288120341262430619769689633388995438826790524663332625358097122558999268161480613243554052267800744858311628880218366560225452496111606717588007222909970556925969685615572486239132074230400070557653994604640576594152376985429622018371329417180233387738697375145878322744274424651329631682852668430767810858181374861964366384371637869428428154811183524713225980206472818236014803026475393508350395522574825114754491781773263768827630392002357364001598509873419296245282232148174564604877651798357916024342548081109822821015884808771327475024051465380479525651319661343018586874773246493680821325519227775601351552906663311937435679992916016090658115121384590452478658758381093679676097308386118145007481294362352022935583896807549131451139537369380695609462538016825237022067010007813101579800370397317366260356162390773680701353762105210358088022096458873101171894182729168779404439473736929820119628650029248017467121443566282693915934789303419520129676107508542001293753528698592462516613260224280387550236172359771058505232472291025693662514595843809265528892852024910920528753090526220219072741219991559561853763609830155818779418545777625960394931793349754260663621892521213633140470053719658469358654225453328248763243037682738494799990709380849027123549602194523200420673087135571449922115354990711013543822299277347025852140424880995505515506486117268939844815650010668501002750608277378508670060550345575864984502903014990381388721040107921932751195004955567579793798848229488125143324806124424883975898011577934776506858359550408244966902773811185597226321693578976883933983583612873826217439513534493095095204828325495962709363553462718751738704841436545760148165635617474922421726467773528860873337546823778669741418866549976781523094046332538341117611633809205167687075649886213804344265311762851243366556512566000541480815827011084586351254169417189577038394377850264575826540615376373362209556823934928083825981974795372935551722954913156870461043888933513795629661833179701111585591370239122074360832695123737169063449583312305540302513671776473020763223836707473873046607082229668319240832115551505410708290316912585164641799185030960508814632246798527051795408532751751525601351278633194460131124531833900500402525087795201076604422592644398695089191622378148214761133452363629773356222636253330945232497488772431530294043505229442592549143007298904340144560872160266099491247954442057129691089372219421370404564034595172799169545225704147405100786535892675240867677764819219914989277579707023322524924852870517297027785282340629341964657282881105237523574925292229549747168059264693561332553694785345506454438369337176360232785098996881547153366576669862422386030207475279020012325848121899306304813326537781495976228913431890686645606680369714717722627957545855200368170375478353226233403732868857537491662359969940672262688768255524372700399894308823011603721136567707342123995923996821337944207726752458920509420167176395730461050804263845531150261183559950052468662150079700895492258159519904660912950843619330867369507933168004555875784047692882495121872252556083335356325373570812660234587499890149046136480584330363004137514058395309277654855789334299145780677127635433085579679182864020274879652343655649082350214661666391776291395437814687923745073532627553409472287649977220912534854721594036378077356170932221075073632668943932846531611904358072082710242421983960030686740446974231124074592335353531196702775845879061432580539484379274870593891483389384169275721224440032975779642557205324498503227552988534891182940603569647637886616006044512940970799091204167272407819466971454183211068304536661979982663112786195399469500692078799398733227376058896870238826557165451970040927042364581716841418280369659805834961716726259132003340537695200849220527228710587067532669513262178579445825073468334426360669955877871781464490634121983001125359199716531910157444497080451405163853490741460284331223719215635273687420585368373834985462186809354420484110619949962381162680077680182983965631952890474305593033176618982572385434228824059320600531307631590838142229603079249261851952149598986784774496617085400725223116919714624707811013599723630289454921060842587850960990713412503410774717818425854218092700027342218593729935960484490575596787676173205435966999779179277542152246722847652640584059192740048535111533846550111748856952260689535664341088385621283276070543358830782984333256895618059759977468579189992240185254997629663456890643958101200979159209441594584457611985874533886526054809969447672164933918264611230419716382440181386174172297782487621959783180286433494216796080395147161651699604049123537116023819691616124325805084681137929949413176033104035997803528069407509074767373602521919713949490999111744486338907837158104201813670284888819340456294887250586894693974259089272027819794296446529152336916450764045664465683473271362907077718240796888244428460432718413242745363934571600050231936808518971421971883647448915143276180442294477635295704190903794902795837304736271815074201228283810851425311383362929106661879577994491198345552891296957265219694936229208393502322739954632657225490219464563801588424561501647128680391749582976454117455918163836386013320595166346584898363028828414069131979192456776650778343990435072785187555113704221715499724800734079068919893928101554378875710367042130883463180442326060032753764078666785617594333236231245342959148213954074491576041461297084124139324395312930745050684637795293748953097306096721596403639213814033181392216771067535818334263628724080566903438209011131675456222200691420890492999539913231060156091154974433332681260904744412008224217868227776305376750393885310591017317484811515425659890814135739710405341195775171474041174913499320377864895279367737744737876356656173283551596920152546795445511588680707767795762331574525358934865508090426086525377215555890689873734491586509896324865552958922130929770202058514517117012911614717200205504370326390369066806522988951573381814867372478198692393001257833934189598156011848475099940103791345114426369765305062704906087026855907209036587615719999751804724226211934761121299699829664129209412558684316535909237450593749137324675818657587394777608654983674680716522271825427377137105944047601692968856290836008803248860656604466509279628027494211021821403044779542418871506933393505527825956688169722351426464340806655663715095371117465925961058533598004342117222785664699610304688789094867313282810553688755320713805340239968337425664687533656850003205259447911596199629769448222568952748087399599368850288245986533998181182129912993963959412069651022770655304927053919438687514674322696516024021837575192451786755276904302217724851054151860785809062709127141803377605647245025803035482010848063599398253281390406057331846047042683144587794417059515342977338760664161161914522349649234718589297919284233092092574550230020073764503017977172451958058226542820104267062871197367515909058929159476062422275657832688829533655618572243675086453895057578095847332377713745725486949150077736513035514170570489476630133935600754835749048906724744899207295989882906156208276746521449835376348349550822135428160248035865615507204984030016325419926839980745671093035223450240130176331064879604608444871514134729062075598074400922957287936995586244987942141287011111721790630246203607591485867666923853093720639390058573259717204518942895944952839732377303178428611277334118324502828142148938216474422242701258484963079299942323987825359512461007466223895843205206915519402976464838532816386959300243670875785117117588048781221793750636454071030523195400045881890946288873902195139997559746785750911881953471703810166737486153864064853848706519072114347617014582794880745720949378059445166526447565903092066810857362983134139220922464820295480151535714269566176026736264759102000049410024138477351750411857375120865294948103529469235599546990296448657050115749301418531037749648740392068897956913903637934015768533241359367900759725860408458198073941064115879525570601108456892937887645026940231428816792722946711670255212503796334700108554482259552342877332606655448798703440656938270672616594977061827587121889258439465231483620560435245412163162810759947940619224666150579379377045293521926685758470733277773318220348349896433665326108439847396013139558263854363200368653181392582358720395489290908399289881483783384564380590918051884258473156512003545234095213269198781764148838118846241490012735482754384014511392151340956419660026729571247463924471503672211049482222002382519349428953291996865082128230913346421662623346804069755338580215302455584834586761412838404892776340211977956556499565351320218187784501102946708727912780693790417514504197390668313962976597267289501585186203603367230633084705032985653240191447227529457012117409199759108946897088317360651294445704735919873959317436304093934212573064117061339253620599539908192609328472994348631943106224068258357657654060441331886080141277710013517094126137709408653222610988402739067767157443016113680973520907653859083632236253600745233785598584411011624163573703440554248085264560734389719992030993498248792891641753796995968317911881037485028010623396160095470942523162494201568159407438630292035210014055223588627631442765247137723040567515901160034241524001703029617668775924815615911212583330812086420170948869179099796065088447565652710677739426864012051291412148341231177940859013744623548542663348385522837739960969135558742204116512818258101256482178678559319293067383976617277111689221590443007274410774174222884295488157409714136531354268044890203715354512359630213341958074166090862091320108025125823904005235473918519223351620325427871187341448356114476708547060561086662616393058972469065593524907273588118085686161369161149976476296867579129675224506769510720572656243463529392710901700328772234207968943682065402054006131910078536976090990995975103624331183043141596495904728120245402739144675236620835803590658936642999864979715862552263407714516834765404197243849557517708620930013969176490070467939104228587174396985926141793774324545566585842036985701729855218686676667152748853732226566021317461113093030932058031064210896341600101089363340469360585214082141695052375010474261816331566899673745787577322950130737084281793658541390056176517904075404476214535687159762805907408010752283662300105735979259436590184052042300266886344240890454069494937511534166934035919721744356008170498347794668057821513161342647941800336914261061623426683468231785350257392396136080436045259325014386279192301749413365360739296539312841575884083494894004734183555254270515031432152441522516005311159328323321266307309761591000118262398169336987746471559100030926410056061142309867958848888484297766110455026248567448046723958026499315395715714144652508440431512126719044946498596878214220588097347033110612255161550637836953340714051084657558790465177171809268426684029879211269505184262731887218233063029172440256547884056210769666615436364894336520966746530004919794125380721387736171910710429322066355958702087820409783158273980418043440652366250148498018771237995567846833174887588668175898590912395913739941684887895399652952500427288136157660327950615985760645126571534974799119447362980713190684221891018779445074099116721165443097736438325283073053280828778563862525143410058799407921972799506569943954939494222180555446792654883983007300349479080461167295185613161599906111004031390963818585720103630788606891906442512191262196419671483091396785871252363866700837300948148896417907670016672188028083980309040580044247072249896162094366072152865606712694013267234225100958926298235867185569413433148581658804900425809869443932322597143157873220350155951954150948104634427887059837035184346746259482138742406877645352471954330317885315159063067971770770641804395879568538069449545221297165759240228711322216795720123289053997955433393206597130364707567877047521883713461624699460993803631434419655610746080134218947139390853530235434250086339153743242456549211260802013992489393928881706517426858972443119331591259553324355764793658389569883770960883467130810446225588337384654834871601991415363876293613660725754533548680545980543989711811662617434413020869925875611450168414465567687730811084059364746347260407673938973463177695885392465400665035345515247370696134958984273997977264366272173095402834690629599403754626472932253757554324280549044742216599017985585626540525402273242452592136926933323233732362650056330369894370549635632832444599294600936587158565162637424022908634490522169686165338244398114085010567482393142580672239261063115286040991474987947474889950832488461234542073049595940127316568542036003638895749525509705293607567440241492336765310242051566651141046464299349544967554596670871017806154861258782580327097616212061365739416167693055405997302010668662889419502290456233523995033927233808481814066803912431779254493810643800925592894191271563750304650516750157762439674914911225190515300512210148132478321585541994505076025493211332723214074377178461245253883669263284932196733903548011441324616530225558128731563774938343574677510662136420828202777369416422480736506688781237828094010154904088812708200524749777864172500858352980082069178237446439783818131851707176554524851828723073912594969279268868704058504774986994255745114140219689623941633240319626600758693927106089824502468025664768917094448267794114311657122493737663278853914234853735863557783730497022835521936545561004067824223700826115545891810959039069278891317023345125798443394612850072521427839411536020134453186672915150372165373569119808790114872681118002718125209273395398651402650056642894424453917030301311985378659907508591625509035401808167929752178153586468247578553637738440610978477122325116314371971133487902408211218616562688997545953127535596930154611007510595309518266013425228246425416658681928054872620876987465350362949312410929251862263845673943985433748216006286155931353771395539378923261215961482698914845856941762173405421098455585630015000491673758011539573632674681864071189676417786592414557000724756420625223047839862119289967869557843112111307118190456640646152758607572230078856316172722671691568233838709542629109172387313241619271397219483328376389056191843639792756104179228943775532905030723423201192222226764781302605993356824606054801934369530189313642622119806741819208803309365724313250468523757402325274720084483624070725914569141800629437933083043837085411496697803851618242827866032896637049817662705547887348760167891807379174123365651735871416389065589564304657704568636748150943602373300481108666444986117130801502953846139961396007808056402994553654980982221024002405339712248687720259697413609121812411925575007246632350798847013868223160668366062720802180420124480451747017685119781460253117941071713693682936759486288268132386817156947285418447748886045461426252281458325406546206359445958223333165712842433776998944015496779381909298222935895570125462374842914325064859598335771528725500115406388595934743182464704532564516617165226048304175116220345050755744946647373129947323167874451880293279893181871060094062689663509085426133462030632252934709288981844981355192097969567638292252606124261560318577584363984579394045305028459660180115671802473418188493918357644849711488321558921956086401436616368557113864657373546344440401217066627743844215975553603647865044219731026454787263609689427042965239381748284870768836520482748905163296525724977799555971369358172920534477710232604882161540567225805931510486125062624731459073687669781876391074031210349063935781662177475835198781341262823071003734655113060783067301729569878074493620374749865129276783509330118891592439986596555258562635658447020714136951012903265095955962487058625124590139756945183230191457013825011559891872775581293540748990040896065358199342350533405320617107424323204413587602090965216394237614263996299700954134596375613767916093439018026278788285600702661334522190156880380851191522449364618780986320746683236473778972852485874972895330802654892593723205846279346817871229097528436865383090633773699349728094064759738262433736316679594232926878126822416652970682323391380955622567042111596804309548958025481390500077521285879200359571873140916975661598980067069973082372737848606329540737469539392183600906631692763582496961136678158535565730912461167920151995381556919516295721277171722533011356451930112357592041129359856019956286737388348614367442932242604076307601322490837355750966360066149821797775833761584242394427470017679091118691132185216663403296889098544153575381992502479311930083479096360483604212917493745484164235222436587453101217078988508237089727762863040690454395503192232286279560905958110822544841897310597323713673266481713973113007861469038958290944709132048342598755298256870865595178296490484537780009187033242144579926070516144697581398250377928055509869860053715214070621960091651855120507000570573937114338044174377197208660966753439557213746003260854427171743068414814906057605408675078694793727691906220419336256579164833330228864216807943694117923582383670008220050771590086200844043092592089546597935210328314947973161542574442947795137400647948523376844957200484641848276903569395325696455938088086797029802333953604907056029206058675275846320020565362399453609079790776582501145263835488001320485205477473282935141608997660833239292688768347266837234632353893359427304792170324068310756991149293530849825373585097833768193494857488467740160554488499488476516030290223641754647464002530620368015676348829557867706440464096181454354245571096524059803876320107905521423468408769917375866287256368318598537956316567207046483817224333077099243096741962110191073040256883280986455652170010345802019588361638556136539281696827939660709810306801610147260194207264854974991303701599069064699362659544810589332354032004786220463348158596819640729534279145238217498747106572933569699874309492272275726753939965489945689366358223349143559575029439017179799385116304221294205080494237107414581249280146666213557786706254841156517013604392587644953114429954867025400195373135825009573080890788189019063697932094803765196526666135337034506505591150442563163221730639181466968616469810306573962984507481728269891062853301781845443603431193515959740819848125243410516580052184024953665691110443559941899957324069806356609043377775497870930623334645139931497865397449297229163510971997425111667097247356617401800994993972677240155194521146296519471187766616413225887476814117671543984611492614371226381095987310834395464546547470859247155560246935508847267193157521517542554340690239174879314823832564220728093551535085346072879806875109748281234095747483553478039310313217035428034260069196218482859677320320252614665982526244963316768989661012068912448076069108742527664078343779448842068483103721890580041447570487362815504361597464450759374810626263469585265707455884200671595519578984412864781652354875751265901687787568916775060498796897635368810101347153715665802251777092197739887870194211424710937706346170819000129963764954428321635757879120601230070584092493840632677348784871628514604372564257292068724522469621062552719032384730233544808185509168920412258313136081586833269760072036038856215142741586653238346110424018136640944709631758040998713309955574838489082992539577357153362283029620805323580252325638755910247379098991379818775686612970509050482433754240540458161880746691186079251608724118117617035797211525727166141994025081010412090153440538392242173496896535638302896130565046632821772367730762502660289625602842042222568364219180886484048216489513999425062119572261246599585859770006648175551353477652782172954031360628832146902654778053391299868523059693505869210180016692150960739748597737151442347099305337798187399479409150639672134557543669149701647723225460369242788952499743473155025917523153119493049708254665379424254477557145613512034639705232151960491386946718006234381499115406250224866889476701172924807216640323770855836425647631006765082388755573116161073978993390027928195912678201314207879548769592958613543466236425372231099852062600823400618753644692060222262587496925009039120013738165079317721793802348173714380872468402476754244979772411021856954415594152784764382295964712071426045329190967636958365854260202283432963822470176694586558569822182330934345016699284150424390937364208759926243741326052167480979572633365307481429422037875390046662488830414916759901241217696494789322898867789531237534234432701176784712877555191574833583514803075292321006953722309140403962416726827417389630034103873293321751282540611769469608419774732660489156362952686657030152515422073764683823325145500742579148473578144806383243595585544091188507269279717964492015071724444052606711807064917433209994681198684644635464897654338639599660302169283522475460325583832395233244514609267490978094638987205068376630216045482223900659065797073299019381291591978266811051658909395778565712149789049164765245184930887384761620196733491652802223150231925508536528705064023632064564446324571554615413369608095940925522299094274032302348969363401746726033000438179859168592261450573768226500814775856280820763137850156735694313871141185520291163241271061563920819951284127641051977907306410728299901856433411134015263996903391477790252367445302359790858870637020788316398330441977590788585842054678970947563960111693296708671554828641448000676303976268956751444479338168420346490510102954993819688361435567498169444912198066920534386157139520666377827102225520221545139413279991211636982122766133818975375779032071018370145432234127920749705990097265662767204860338277634651459280271475770148933832391180680696689770185056531196130924404543009740341255496847679535321040923082690179756558538958603340262819100497910349856101661052042395105977071169612993373740002326294975091568049456307109058922878547536868180225332126285536593358900139474607998958378706234927714788880105057601315894076648431817459150630908661157555701888409389428042103458745184439768950691023803223635947505030843837464388540710366404702790319201607294355245471975083711227474492671076852345509493939578168254890238221839374585582899366148873101851772126208885642499269684967070703243034027485192508065425286389209442244504777249536250739126922892972073471340464094304504140276379519552720849454992139325886815542701139498378348018039501149332401799884265764701864365148764884564367753576255413923194196564532479703872667994679356329459056053473138996218790513618969587252375199820439560374056793772758785319557583414528867480491883630442981432565005844669564073298014574406873108383725791766356923602286611733790048993726089576581777447180666132373854520371584933977226127944547816896129138245490517155737143201816689101695213096119322530098057277950969031585343370763441658276381282681454823102468392005697527073927831498416672835522652191863908044509525475025569729000234808895293201558500862562034342318510850858724164985333435848703809183532091543397746854243684224038045024883619430371287663625748941923574977129582271515036518117608088906405050444238771273077075082193576046232727205726427215908669859457677166429694873948554193214512026971522907819738584333098705753609173966013722986831743128312443013051089261198475107292955312057823077602905006073078438676998864625853087531189597153208978455776688021102007919179771043206358047737271089531569047552811434104474810932176875266946319502697668344668210159434209039644679968866923793693405999799014953467487293113251173941793729161805403315361674288468023426934240992097964929399421895394989004870858310959646792883439363438363704161035040163495250926464145957507388680347372786736257550293853532094863706440893312543540896891936353882683394974908556454548689990313777456173522036182631167622108373530553965362331784566365532751269864460897366929094527350435337036958255319628538308111455428869988840377365646621105572228015642883187379412024932994557179263634357540855958517444891063409491600707300094007401598171678433851466211988500182632030859938798757529222468983371622135830054485368668045840711979912545898900118875573456746071136564571407043422885126231453202159191225403212203690114439007506138006678806506419415468402378196632794939545978011344007183704205859969736304178528670729749264558144320039812795421256767415577526054595319710198663336757541450074019178222474621721522888069243539476657396823923435664906602143903288368674545435735932378570027356509897122496217802744852169141894656775845948900351026347799802024906869601157979662903594132364071086650370399616991376107622787657293629416124436656708536751972094073721407024151351941260536255118016737538915827135706452301090906780059174561404070029501782830877753048614158876808650157197372448758563237647800858506027554750666264496649332348945128324617122226943271863441523480185882810481137522171359945634010647368901119097999741928042203641179295250346581797890912299865378245962059296793840720737042749557892065756848204979238056689746582422454724956716508312835027953976104257416296468550211399970305150419396740411465066554050407190450211674256109311929241814607782250427063043362875115909064060856938412312129264574599917664825793296632313626593664877939206364260215494873220088672329483567483519342233940917639592460224239652572005913947214535390108997249469065205685321707183740701862831992503794886557128553991718616741988446217388884669364864264050433160309908974580911725912555550255489682332189984054837521909848901197625148230720622727382031799477591676859234518235820751325151550060943394206190928016702998583260622912615301607620540916135198996505816128724868054783505327358013429975758619126689042429864214154798423467419835239717502343469307402542440412004034317646650604617384480594572633255527873021145324054082732252688461027473037969623923714030257028969283392141683572855444332242552926801516734855385320175052894345297974165835304985350140530361085197512483835720381481729111273279234006798746819005959540010470707747465565012775521825324482296214433313657699269024327299917695289669189779404903994091952843083227755338247461699829032681399062396780895243905737469695908221338056012754237948518374420379198341658866371011779354022414656935255703906353724131298928298363067413449991796882448565680657197388510580479745622261793839162210821406695801340332605631559859354061245003386583608894875837074890698439865322185910327767343973009279897983825181972455487321221703903612222701622828079258044986504168592124750976249381810698376567711047794391327692866554774946246003955506157194364676434241303592255876314886791967466521547334281191289347791338507463408851210685968161023416640365298127252620202854144989495034526750720214433725250948988446586005435782999575787599462524638934027784683575144735634433713400696505820914468026378439783804099158933354235991862784574731313600792161285494381830344911058768813229237889004981935879336636695295166736044197702890241910786640829978305823365781298695852187332071798545752368233365191462314159862981282884521028039172658570435311196492620020351508437576603524130655606035666885424917024877838040070752243819208679981416352717059004910302407228209540159373085545000614771091443852540717474958301062032711676466728963644506320245454942795755110242348727898559128461171297311775269318091377647951085579287263651211875093831756798615474403072450705025730170821260409155944920938255386422617601645604695146610799222916402039283830914770491344553977520654633580594472459700149025347307577961220790743601990278220542609113582901454818761043822979038618282514334688725801437927280969952939622569720388515704434430281574096961151467044679977343984372292762005946411021588902699331573915792885349825876680236679541071926897109330845418583521454428776043026373863253368276675078731361363391215484418051906538932283433534459490927682849839829494701456644416892203646932871715332362953542541654256139415717702978713298123473293481244161716746187373315737932872631176664101785914734116153930850037897908836810924688594527179103057453157640253739046249492741407247310727930714029877979220666114289893114577877309664940155520891862915411854740740920210575072042668085095212942206621882788831817340964740304309014659653210305229301762127411618651965747321216024974073967231441284606393150418170702172730940722580289992361409810936241426939404721789851810578984277857765755350087074073877803276955261877915552087912906743382417787029028760988839781039789365512511432010300420493940184041024539017613191563826091870412978440797951332489313158335072962892405765510540744211954889625475186616475589475426235583328767405149886206148735816631842712845308994022151581396094358548453321146066177773139411306062960292303693784459531889884190225830517807049397504537062207167608819852988069133012164493654744540742497291088610732458470492621377301431338125629046823223914042305269327467319651032074204651740824898110099866341954054330498652916772135115243089009259433837528667966211683799624097601305753695959642900448913582376801227956766246662086087614395045465937169546418361575706739058722601288281354065552499110396767282454621385015122672511543842226315389906935356315463846670286205047353870608148979354669703535377587130080397968897467260754048365040444046957856380118974922746133824832529282684048998350244778813971022189150017954835545508827884390735597191787340383524894975194829987824116496895492941334239385218142654343714689283591826437941985510652820476154522573780019639300902149642354753430748413060103297293897619410291527827139988962329819442194160050428492267167476843324399617279839915150310566386162678729723003203508635708027611334109534664646900618137169703377545780830221520956381163638206013362421094336095988111796821738791745360369987229393984093429458001280617661122249022021441216950340442900526417628620596767059858648279698450523378830934995735021301846926530836142433464057098109210497072610556920695781743789267186665351492610593587714448148027399720813539754457476057650669442905149685702687343397396895803261478504260242160545830195022084359570673194761024333201823384929771509575987862198191507506863492683956967850300565990884076388284947606000968106928564896426324773621529979688963429334676035781134661163717194102151497959749087456793395959052686999931584838894475744878767661003968904496856001969991506765442836294789285710364132899278518970681418098602146081545165849854519280163740279777036403143370181590221590393350876476998239258417761409664345566509100408389539103465884116084700193319315634243060780033134132248487559557627309275878491818487756720500968311369222359243436074431984333874382395233991989414390611806148395426371274587144407160464908983489762133795062809799170934863007798090080102242727071175928995109393876881924945414332738842719682057346114946929514419088582709665702433965961070166696273147402266896121307507790085782438123296229794667833151302819976602689034458849854667515730180473156225928163123778796983328790029289945165598350359742060724200680142362199022552182210644502767827234780417019674606741370215616122460410695716547622346464114667791349062085889810803482572968500223221088318646463055644100664472158739951275842443183204224532926142973197071193621142855665767068803750381397670661782780972950430953324429189855865183778419773909273857577093180483505629046610164539203425724769484640260409592705322906042886052845191957055039467677142849332002587785862251375934216492674559139965573121495688248087610855721345598165243907185040369606436225576906508590223361041474673270652252827272967481881166132736449096852561452600733634770246411618637152952475664370310985439033645761560250337486036082714045509195529501641653123091347965037115560296208621383186737364762687695096894706192803089027988712389220225610591456354721342492818589589378455487275059777429061802969772933102867281156331546645164295920353400837274874849341472228291387110823466216799032357633594856237572531038232040717520782386464075399970956000082518928047844330694167878441240653814571709423464182712223876294812412558872228639542489510691392014750009182000728057665396135756600774281619824065310809122602089344619461075117026441405353204627105765928029925039912481410594519190695785229363158519441677746718046623528619845877459657385078075823530350722219879111545980111335904377100292456377462904956004389697395708776894965898834667285782601881956165249478323037493158808006417666505560839895306822914468973722345332286319018984462128084170881319597591828691613121965687004489184278245481629574556490094578101901867432037680043273426066839764302537991708404123565063984519876500965485195537724069201684659663798173991293479102458912926690799006885265292098979962701898477884725862128090537984165455036643549424308554804930926577981800875516610348806210068123068337785948822501308588657901609521898654562507871742426197427978949737648265170564245514042209269480388064560536083364945702602813815236413404212219538108983585669656725290094513569265632548587518109074470657178496884200927808235864439203976918019292636645463847128527074539516005922062483403933112481419092076080041701356260131516388199486297974356625710215167359421606952234213334810388465425858425451067590708159217779300347391958907190378601983226432622697188349288062435687523385502356431816660783034868128809261591838216091471175795409190184956754731133099576644520191184135958417808282627670045498926624338277034504347979490174682496413520297005678587518671132928848663624822585138530537211222982972165873579770315077784407513265863872565802361214092205468336567211469973787462042623052658149003912135983813421548507036328815313705205545088401673211104293350623940724320344920218896226662057866793433601838092581042125074951595096872856448603158717956559002459220444664294272002154834356541358098128660124984487650053899446474417273471902793815935856655425061339591630271397306910051895521762693628500503889356222078989962920895885176287371562391257403867305731061757903293122435973194506014369614826074758847629021408438674577280687625725343717277430375890855798178503962398780282530652059510202886910771114744758475418045738818374439976597955891021057530077143759120914947048730485594342912559844435619088950736839756983412212383559965582035048200044334528039452838499409973677964613538155532273349506808147736465711357064757791999722656330267169993051821317836268670593397187159030135776797382636775795933258064621140469923023026738504074413377266502878608311080430579460421068595495492144988909410415107906018555606516197833194493996589919075589370506516858060915074357314327273935637012702489482681201848362687637999566838420324093867699098830695417712850706287993686031916320009259760616625508936228608671725332779528211052589527799492042840354672896193523242292629845176118146355610803205264112446962532380930187282813594017600194799508927585777599403949221871639696248019283618823652846701894632799915887842684173093294256680587483793911268725521036106335423997718157962897650484237086677577955417862477183179477137672477846472966549961635498357836096899202315023316359199185603250962088201450893984390421504695893312151425522893785829024335012836712520771288752001559820313366995072304361640565502268587501604936647163882499403006358691761942714482292935078828884968571708388133437644096126297649350613175549783648592590861017761767375102787367301608249793194563679830059379934532695252447836992394533815223169777546687299535692608377566115145993488885148998255864251344576914795470968899159599361771266138374858350705014178962742536115035961925532249581503120159218479195610478329036158857663383606423326595579943732968629059695690459971901053033635378241349468012908945385104977325505369968694810704312998972157112779393284233009249957871636673309979231705968235080551805785552046823287248388914435094050280613876362688503329802035222638033391641097210364569260500746602110115112666513732316461558702080258520078449435989910524073677186746285288615326359091587130132774658654675718933218333064199606029513976486479168033838210938466331077660023739847986540877915996475307158019088034954729053684932300710378117315259391022557973452131568499009030867373234289982462260220584900633279494830490552817021722925234815558631246778814539923125567201167551338481402701074675761759736346338458298700482646906960968045878504050806060719874910174653682333784574532616764379378658117981544521172533826179028102388657882794726885491177060520014471950143584803829017954647811745323748054834710462656835295032803644042157951730737675158650549634356789805812295035100854203094635214789981803684960268340613247635470459567743485361959859326164760903937566175856188289020511223810358184152768405863846747080084778252116776952450777441088535503124825525222177023193088929462366817876117769285425939038218357207732525962230558870988165611993196963323114309919335051776912255276459072084636767164266386713576347276263369338022155674236842213388216593022182495947405217086289193553193786237710961119642350185568882970554693248593369530028264164145852306603620262477653994092312713140364863069143668676386074914615495882210208938321083251560640701885391536917736365149497724917488641595749697474418494002450392315052772340245637606437642478247603675843741663330242403305743015462147262005315959126927426541032293262421112730741444574593161356189541898485305013145698307800449847172737275421914064897300557153874620844548751722629609863881095554032757117374704799659049764585224120947772937238780845576774090348622004368721190496711302761356959360462316641987211096682279313294199790987703286619230469712301167789486346264345563970612859607969057800569807537628781462229510962558378441636318921909892655255407308292841508736844556581384278550756288864538794625107785837873130556223809214055042404902678062041305338623008907154427803879227132375529205981058024181671959466498276265588554945426544808238497969231765203213754579208774029459488485662755934490286876135606299254118069994617528688396816683003944790150339668152288475545009066711096070036580003742157120379040608497023619868142405322123958763967177826524678272508335088578968706085720065637306722363496536944673739904433945465269237046739522890835999203063137979397870553699696518898407480640203372881000225926254853559985377278859682059718117627595399043015875311215929504292069072172087486618196814217191549195285353872105670261634652049536996862537160100445560557829476157942726634218543261799198210243666286393556689280080564550223669892409422524967973982562691064420613984587149162001354895164972320050068289351671092533633004731693927821620684226327878920314037870347972648835456932837025996558946694098917143281323034575425177816538369188445551626763152848227072572761177329768935252602583230026022223571035142585313308947765085376216696361164431544700234796982532389411365161626996663612921264962685385943777558157942744896227775448018134980984199950378604248170345598942010010878547868446532790698888844240082935366550481957033961260659916340018771299213254473207258582675347424250317705426944431990942163729413945930505956528058931293979063213329225126254218939254103358909495971126108029489833059032219606356771521122540463996261435434170122859111107500298556817947116005363255793774421162784551898820379030386018062812492543947059432211280448001399912425195244236747405798720471656114806665276505124516237011804877495204058810173536764179577922871225224681977128196112707593520056311027629713257658470480146165906673232232452400394594593968334844298182060212458925476548971089318235180605433257372040912925361161921702162388825664791207775615083100253621656415415953018857082191394756113517985376092777960847771947224685429844592617114775210622544303263229487165395892456087189870417517486590533022094327135653301013148654976277627784307527715072202816845088182815361485266794203838555588953309511534840677784763797821334215016682278411082289878091917511522716492630867329058589917959114477033500271297835798609401414389791507543396893224334896141766963644066442788594663035216909824072164389645033638404538615902260465339113683317290801191496758638051943923369059072636785435589958783736341953896237432301293325434610078029457972613631089937985148498790018267938227308084778476509417255955992064291566284316749948362208442836447085562935095204983297411059282514002360330351379563698126087027655823181764343811306232191778661129033814989628132032255226731109511247649852865186326942394890700035740547480760003551142583793136046150265689032578747689194348261274418635447407140436749258326298327903210470571760248308383508294601969541907142268652431414075150105577963744502583834857100280928476650040769434458530719737826117707865873787128699132523958922919831486222758439275807465158729315926340473537658150742899770581165484086523599476764994437815284876548577885674166549177471289159501779607328555072465986614862885701300281044868502337430649167502531164702175667991530961045495710668829332712294640478802897562931598841133159539305672702547699986923423785955667614439018346613595940820981373574720988549553492348525699051543573044636830011116681998029456531199573397695629985268579596707965862135031314075203252182731477347470518384097354307170787680284468036287881456187026619101559445782718324161413785880539785795857442262479458715829848958864099453647385538638003828736745452708288960273574273062542106726376574737410422432056062177843652691003112726906296705126669931741192169786881643874284328668998508118519537374297279763355522236333164398183524918065335814905776696081371927296931825299935914078089206433152956694941717586355101764064869583227958742832564604646776284827006984537467350378221380256323781789406738961083605512889443950738213452843352522896167277816023539392799550319024625160643392063899342183006198439210918771702827386245809198699174469255526927926453836469337857769574635414954507139474455133604686684834397148669888594391409957711643644307208397286291173556694423588092503563049654280007515907239554165359341260586856573325301661888957414529405962917160000857700773195397515395997388915109411120983432561748856480943055828752416240718168816504890054912880911027347625283486759052832653878783612950324592033485976038127394666391050925731860967897056494258720562785099795633027879739850878187392021366624777035691979823001884191010986408438381291576906372674907342104075025213129898029006409009707767164286227959127335193091280326686501600235277107072653465955704998955648391837703362040566959731921037445335004643323652377944250641730588896270184594351709920416888587184746728661919235460400119018461926485627672777676059145790982116852340121322220758010532299925129907613042264706637761906659798360790108862601407215524729420094953632895055076082259501794276766595396119246340400116854998023261958172059231299777683397246440154216815531885318263123849118976135152709406868562513453651574152187211402904314043460895289895404479839509238783605030296444456222084070084484578618967020760313485231324588491142886299016136482881688250009764055551056652005336267545866327346911475594167037871719217601996427784239910193169149433950693231241217642782269804290549972146003102973630768440298283029640004916489428068851305093125480963065537367288979335493544965577450920257855332614904302361886586371449128531056293318161913045324364835365248209763847603379067952175435628521582127839870058247777992299134138332414869545182042832846658786671873936882232868451309261860128359733799596744989288408701332157142815939956523653404369523746640209165045841622477025142972835739872447793548682093864027505329691171405472494432882103086701090611667394151694868091889214582033952729276011926897164710338234541747591160770445820114008572002260853716304367953035773307308311636060888696203293962124871577490607693532877392500659418431577682685532025480155422710672309503352438174841448351504494834875820351732864232291438417319525088437479342623219114581569522455179886659466631810347388357585639271401831047225552402995841073462481882744475024942119353144184336021889932389622229648018176407481006349084690150595178653289913966342504588996545011653830569162085932558548479857838244920870113493058031831934344814990927649993816285933766828706510458351930131408212913046664392418994316083034184344079549681560100922020661549185275008161772022025004820995074933480306737273524213128245914876309306051455389090192339125518656064151773921021198538163135932116517186275451520781087860955009812057873292609133666967663826866207337362551741797166330851896632598700036374187376730364450518546720444474707501097485702782072364950883769563014008545017868693664340803326034074004847285003127706886601961133431673398906140853790712270952997651965651418473940717126385107573265960534213763130414898984372082397604404745225356792860812232079947304867376955791845467072447293368086256194468040405222266543657847375023777801539830277903198333912929769206802866936320361656747968748463771638314329638077397685494848806162844953935712454190961675653771450333825872553934226997050593179274281728801112282241175910481496336047900022110752186797309856812165457009591318304622801708938314275026975814455300351464036334822881734815573936951076406327088874933489026379683683286384748397902269889221998674767238954472130170346349400442209405333655233441104770167321195212403361562454262143135576394778191783172371292229814238553248437711215029661659959970127713171945464552029388818614025932688791365664460505271788126563013777595904555135872340237345290435113460043153080378545665657945831604406988315937447415600986478692737598950159162939966075708571336042292399036056793017699539020105082200077263202852650729994368698103737430286812427680414699417021010056758291611085832063848709588100813066687466149703918142299648871558614234276253846545854954915496053937674583882054183753006470976283222798009160079228882087648753855430808832636958477868279943606600302513141918633032820377252522249087336833631482118172366312902088581800714390317710045984366877972385699055757734227776527488650897268684373669239705714500083447557222156621392435034715752018930321578891589247866071927716290243931899028674855728955885581178809932178358798353113225686575064191770864232888835694632494180248796078860031455250550550743396484605797515355171089949016987828295225724046044400367373774068005240213409786382551896337878178669994030015027809398203502028229194681251883887233815921723036346867572021154387793027479198274874444763830109187972121294409554813334327174722495354990298336180985466745503097226100805148868914655383124095318753095076121234298383481563961920346491028825940738684191254804076625641170565737227941762591979383493955755395595125073036528804174899543269131249989670016439256046419037053068273020313045893190676376623007759205070317383968254197670586564473294429460811009724496891981711232530830411965745813195046785281067888508799612612359362764963989148695350958466499828004792304696815704218854735942219939340094183590827459229704474102564990088983236114882275298426143655144680095811637253369302260293120615414894845979256319937818005953920451649873368523462053942185165819428318995494192337073910083949494149419853731305509278278702485467729484722960522011535607193086264903346890654341688506303697369785813530405088700064482679562506572540359186080269022473155029972344051889716455089924999035942421841643013159533769701592028499869205482801520401780336844494222324860915688477300323543172904236861576344066375024328134144697210366653789636860805758430144070181721903780357947834809095357692157889715520621713637707723718307737375614919074383375364271228368334676958493412724920577740411695542725140673313798864032567108308486346629823749766283194377019114388691067191496098966054596305082072980343420231588402735562739728116773474971132905316703883881466192505545159108185727360521560423637482616862859900453885781512393222919732045475325094173026093869889314264261592607279728582670587739495666694348133531745555155491152534851046581174043741489860647135866271781884236898975188166269770754716698941381111882438843848188122545669356551013452208527666989485077729851860791336327034424391491677560971684493165704696153466797536659861259910524008458973128932927884780218118763240630367536447844840410091741058003827204544266310048416135162083956257263250564920547129161798549692182014298033221703566657105380987174993395465522123890707298727126898644696255340458160553532968169282298262936608944010078194692768494174989200871810872981900443350872909803739712957005430698673191949542537364544837567176320530844921540285661636721124660309328375006054534220997387719431458261288091588490446373912175473773670569717826062892901493826014811105802717171424369553882696968288878257703336204140773242772217166647490496490116410675845801618604113851167390013593358850479285229474036800745679742041518562084760037278017990441210423405877702531987928934404778847871054656648708580746076577268857811599279787053123138891090314958801977118235522936668809372690945325095108876451941537399102971623486419716550147206718908701938073608603609185616554851925852184585683007006285874903080648547003951478239676832985249573447798676113109494386528568994080238290884577948551778593624600319067567290328546223792204888548011223244415081580788925208605393433190281516463248911116888969838944689213859286692432020802524326267922974760736854617039407460319799383408141223803475330805968453335147659067963916862207488888512974515827237462391150796271091869075426388135547419708049103724618488031629540900805277035855041148231294694675797999914033332957545688392901812607723633138685263065081695190027987993073503523256719092448881437455016936744298783350671966077737069497476102447273940918438347373776389777564839729435929201696439004263938152536767841692126053129121993054013267359591012416961279851009098230180524160511199068947681775322861737699861532274456623239739340784860771860143065672096230903622723856663126141122522258953605228825722396633300152500347582745796516845644552167342167833754793551867613486265336072871283964683176413105494240215371320045649660078130901637408556865591361267156828334482140885994037938968945993302123510305066052112511009025646748291934644546162603050447463066277314579576186247388076105316481460625490110241747370946764974059400751304065599388212352890371478756289063983384739351344709617817118486294187952201608464586912768904074647173908051060655030644318028995904128270027273990103430797216833849421113207658910505282124728821062717279538599984134736531439849609999197838319081165107008950623183520326911974909189440966318109287372051785387368288951066419590320666717155746953795029898476484790954782969268123787882266051552988436591942637574114766797850628939170548872811304831644863921507029973090654808483052598224805278281493616311244925906925713688745526191633217655349564274278427944078038586265913595216348057107406783950721075483077356241800136851682132882142416569729629429175455656208161444018074747463445671957218350165775034245058952124731551938527291965595948575689377906953106946319214450416761742213771455474803864162233080169475161528207082993301491028488094213269038611942418278382258570501498930735958884047256115270476535092524451520273153782667734920886134722396993855218180896992206007176079316989857109130532520443842708888784702489970413657145421708254114010312984580326948476069818930062527243371630257593550963726245483952527406987944260169628261036517648376336780766433720711471187837945407047350373920648791414069283968348242676601593896814232192905879983124042098249246519257356157045967100872679744932593115572014870042300518999755870084278753158543567936583354628600485018631543171026173079897196940014226755158921771020264032436528982163579594057460734278387449048030075709902070961277747501380381855845366050502972185873746449542967326489294037560300469690371737312209857047207459607778374551767665688347333483198393610794209192221583712232005016041714334424744426363367400250650014853420482782003390264689613327370949948458192936339225833353897523796765041825402998504644963441991897321473495776704564487462075388041233391324399886146506933715844474794539187362916763805071696636584274677824707268605033156555453048851014347892487149793961044453770416752720909070498794964270748583492306795274363060823394717563122410175698424998989766577370884193305354425230197742248111850492164953488897126711664770440309241500906525361424106190559875313604030555712766108203785580122494031260966385986260490436222275395631265080140774418744411613866371275903281166232472070914426694583634740588423988588008696793888215886279181198409172344468766049997209184157173387128733867617367699821173089038806065057078206440293017177483803099686782970152336995350024400841522624176561869201804863978170419530698871655747033327379527933342197500859916468111055425784334468328578882749017323724422962446569970408334238038445997053659071990297832974250209594361153671363090446578516780573548925618230939662336659231927913512801381222673458648369173722538187761780718581348836884849821984465124812553794649523213749345488019355421546818985898937363147499985339790109703991364036851782513840094384556380865913805491817727569580985985447305437578941572052722058085849312098545196571765410856316144427209289225858994462398262816443492792687324957601846199790205100976666635948381996473215512015566014159772795936818758106879812320812109740791145987773507940120992191731946505273426004939529408067302469489738501227672665165620662104595950766690985810844087747355106171992527003359945830325765559732763322009880843109890041893809911868496427130367292161018480848745419288760931678636600211600961165641906472719370245921692385550380796747631059814296356469485185914877669265876388134945364783112143471347973696735672661094067927583377079057137862442919952481879222229988594317960816378190439750990317611622664627715864287224485569995592959060227964627449651863617617672703537254508845396949554185380917076753072502343859370988417106027308869143514865418113247173146502884546895706345828657826189332624367021446231741773590161325092084368037058773693720659764723588034413993536679749858463836578961950142756065012252915695486208303018311318462915634294477535494642201821786379187775061885945484038053272019515413577246153621785519264916324744163650532568608275101298813489141749477957478112411023913080632649894926237744623639998541638128733532264776056452112302910275214566168100960181324815308823308955425269470727581725492223807107525530645920769287886827425831154193135012296150983637436389107467417045727937564734448477214686608395507621822728177545751927315708139917320249587671270742289353953003345018077784658605672467628778370511347062406323774726293418943564923878459446946813931856288216506751010403183409912898322537081841505168967273565723356824293102837465940231276417089542247357840005885711823351391501710001868739911447961373162251863595165312031025637560254743628618756831676908231433872224179464719173841305938569608955188985039813882909028445926079481539844881545548078438358389704730905731454524754662526668733055772075063051612075391645919923336600929245528723401747013180634954168098711511045253093244054109078330604523219339809010599911330625314013564425010638776005651692309137269132332048799544820640094837195694956509105177673606050120883155961085700003334952146584273383578656748870144340864794688574072181217834595104588422117410308949859608937358368571037094820195655147711180803511350701531025977025418298762109950019250082597055610727557770938545365978209524070206868250230873111452748001114916482260838136300668456559173269571649883278480362810070833499247703796624705568396190645734838145540248946297529334052963893563341242199880517826821027871942366393935812371226302239928968432173186140081048908590122386393604171023332338350433268682377814176635963607967118844648548044186929095715163877644367476316419021374412256164833457092320872116115212729878218846605915964355026752651223819230603109382716451678209878013752504092961413067499749573466011245769626683206139296098773825432883920286813802924765746149350899532275127900492756661942325439847217870241406919448021584569909985417687981764064177018757545661017074842074912767988923542055013339237537626447722763044668532521327811055758834815518073841895759964622889212504025586826369196543231433514948639948402202518060558371015532024066500523593003738468986810424518328985812490467600918820304307487937343613942976875809651986052281042858147993360234722154456281540439469522942938979471365223690682195148336511800066881999902753701533780191602716746686202124359661997425423290628104145582749264746664468807811493098979976491501389012355264051438788826176577750126950279561078924513774869644150358585397599084588714403015282299174268298192136802468801312581568658707246290936804593297006825112919371605659963489687841571132554767867037811001381172206819069679291053156526695979425035103741647582867221239103636951944692082785397267279154135054783724894368887124956391402134782739960490520315825937536181212239193625629293323003938874822150781431109015564781021039452560700304266345116183674470937546160483782174220802996417252534235517727489517446486146472715449854138143933552997528245126926348376633715176509920508730473072896888766950361584704980256198674693136505426566280596224549323528826600467622435107722259118356093151259558711628887531607128918838639823346531249374351705922449890574241947473298604568494528438520509680465929593720598925568654876602430693072047007698345379888045887515936289687134204278145485174931628717161732049354064601580678527055358804212763684569503788422030184511926871100711218752852215323969128379531604441098764333173365922587838975059541732265451318860093756578571962810850327714657432686485968603877148463273493525576952617856818165012840692255967540847121676616441892413353498972270127080545889658066755530049094551870527596587683796981815506401158605443064332142643944735231621331606880639212474498476047575725532932295941090191840199506388484830685917148975263620958939426896787614025083505576690927422467122001577266474847475379507965499534292045249484668488012169789916919780527415078878344896921379035805524006482255797144148821916934822407597042235218153852121731371315820085886350640292397876593530077354698523118134485945647933469902016441332240460465339084653270532162781435881765316089625111534306217383838867853315048682716942757681252320111188466223931272685399921031885772925444087220477785691315586968389277362088507658959792620630406505390701457083804235947522211585797906405304638957144125621122853561230129674455092329189995184114644026852230850747714513082813369534919312344225838124318798507454254826518758635039449725805765062166581995082499567544278389456823243019026315492204755891554665953420159165897266756418426429974573609520564454428333967423620758680613295409640303518960465980332241382694098595220159885707163556341636118059084039414223079542694245195272704459181556953574311533754482164476328578608622369501869247343474681312133642871999022354463979913121305562654313231322919527858840331530339338324201662722797369073178163380958905879631442700261258028415676760727423958608828288103772020166616669984301007011050530743304847713629016528813082362927200560265647088757481374094083682796910021102373422755291391167656089962759461286243262590390843345707419902596157435939670692563938796637823631870559860338750360701558590346101945126065165941885846148565313268741775792247807352894073593170761904884196264442367934612115735619822576671565066137302306703109330762396237621632613405441550872012322141366394880074821036292258830848625880443444809020807317716096129231860670287615497604495922647160078644447589372941163931873983900967461249218866903158670980244621169992688912628442792505302766240691420996232072375415653241522126386001615194926960500338823094606337582051083168833605115269440960340320391431129406426344233881345025789701014461679943226222206488527682034687774715782980160723091007620150682191321252577924113117140563575967551921901248741195127959315897985066409602555713400493783834636747054896614463078791794303371826768553458800699731718329706225824619451999987865238035180137855455477627810872678372505249396617965133022348765101418936077467040095028195325904409648314332906357104704252652873179217561725734761079697726835534214104609728009985574983981443014607718562506325589063678006412193696150812413559025311273623515360290301025659711325779044668165354270816693539484758005401230504548283383393928025667288607779049354526422782188086682341792267776101382475049305346442742866399832268897541426471355884267303873372922148363783344614510340173621335974229317890858116342616189963922449930971428870721928179211177885089967359437262044439205789298973688509521603328099197422808617161701339617484346371092532684552636276416354645780416777426625773319027947230945082937239676466725741895795824426301490112203585162746471399554982834506280681497740216775867566911173727534508183371874081409756890756996833430048435416811938740699016901345624529558631322842576657983177387568037352649330150619805594708046835434252704062381058349184087907717555769636432783415785987128594619652212963377366090725244457834244861542226192465875019714351530977482012743036573179385358063355072964090145143019671228952203350956857751521323807026280588050463130576546348924514214372430427369868138749540149735488295379981824410017122724754432393379343644242772641133064950186805412354464874309565262551063424095267763523554609674933247278982719446047821302512967202673677498859203762394671325204599940000970020627208768922955838858442880994502708575506805155854890831161059993326662198952128270510704995049951816225478036280240223556338844844353279935949927535551520579320609136555437576310555080005525478809677827954667280930923742876145015107384542917779635280722438947808568012021592298814754443507446885404681486823240028550759434219865902499348328750582456059633336957007048545808656728932125469327924071028169467505679290739103726479182781924359334188665965388636428544554352296003952363984761295937952402693878867985208849756123504420977198349085811621269388761803918034496982096637206980332095290516485304399288177058768701372075930955160032779833481320747329183549648664918304041806230483603025975203516964420707851282801598918778934035034031586028059048746110506491052223516831343703203658456962793275145809856287144825707811367318368157936045551510642215008977467546419940500366366542754967033642511803898127834737841191133824445186703060831351609810367933853688871104787966162698151359748307475361834434060763466735760725784818865676282571009027395432934589997129613346556161090336840250729954090622193662399976311619813217795086585007924015342061016458989414566482202229231393790818721216819496162913781782532611131741277679371092559708495855006035483592796856158150241251951190447235955419168705233575279172622517754186947317380781749306803377723283613375360093202013409085020969657317275410613317064191081620013820672425202653949291887228863225781747322345874193918263172620395658485604544421785238769746811174972553829621301706169551684297899196027506936647403422219523719556596803865340176512682668853795684332611762837380602524488327751383397698077268978317742467303546145837965396637581437772484415152550016045395395529140882091920329948195133460191150959701698571592505900830574437266277938847156651157369730164212510459258043475116840640915449837884351645887258403293973881306917704796887063352566233641381824338817771581489324376110280158821481938850733588159642852421634326242847828774861499054028425254095069026198222367938384756442969967115941342536992034105020268797721328953303501264095195432748049287821024998826558310301229214919624494729162391319701638860940909135095736554655057092111999929276439273630545696525188031572297612916540808663209028968179675387948862618379565501706415961362805991830879850420183866760890771152669231053241100630432108918931551148468942795409674245964321744117801974038482106768135890898989755945693722854440032682189069460108865309641571408653813624068098904294864206807699287917299252408362599264975052109394594651852971175106344191662094248677346046136189445665776853811162190670950273841330264508303933890572201874414515383682509868373859216226050178594840800289578996337837231228712507529309307143444944470987884842322027323693280199313250739022864766431561620438268088649496369565255398545539872600724263778309406880880123434059919615188481025466638453748234790816016751022814840953967080834351979862889345776587493855598680087540613815074909912826461762554813638149775325467318109679610359335900124806008050168470685565512396999342842995693443078505587831775553308429420815573441071530548796221057218164759411222449295259524795292400170231007942388779233570324689071117826852112800357190812070854983437952577369611209542410742390531248682575681139474391424902021198463995522487148271797686328280220855154096708827042497726173704219035505036252107312830650235080587732443513278198786484209859488613673900474766213091312999279413986552050312399888693158444174608397215859419277993202960684072087123063022761392380149521813672919293890843252115346271995103119601320785980773083494417693215282974559546747639290272617796042813669311397949696538954604465629656148575370089351574236296882877073779992227873884936657395944777296499458310283913236944378912823186918894712386939450834920608198464232810212061182054948794470950906844673155290822408977582825257978531847768056815693972235397576305419840022433987949060756270310834672274989564013895311331052597840589758711770033538220609560637727309796757739911796109556685893093673203092551797170410620183705771874336970255445108466370869580081195437300634362179154310148644838687534317728993701884976335999443529252395268846777057701472701772790214493394894034998900324945303951316510355344825673894320490270854005066023597893247180167879484479419539680358447962392999958548805481462477149043593755977449134710532955745520427011678199631085607433441669958455497859507028609963135728281709525660165690030610461414032946274507066019530580473006058647416513809346142346258072430938797508168881157168901097092453125422254565088881057982808932603200821206250481601716900453357376147190904841485952858117080638819292117494100819641917140921504938820248205196394718096315924678833339672141531827998346469826649149497450611293863111422216352206791084714285695915282120370511350728025531620458657767093469289383395470792513188027983208863098496008645521204977340229307330669415748948677257661860682789984919327502543672697710529652551646821567167072160937267969104135788472748534613346364769463007336620884656367010015978142848025129733227158328659186109639141114204406632894635277204208463488729291074465272375667166782774251576596813557454508936107779099666798022939861650625224887676748028574741828905791365526415575565716190358645328576855099439670730697286090358770891921289353334167815146466057786779741301113481523506515794662815430941337282976400787592223268622635610963975396283586105827050576992559175473457581802600173305895116678702222163454972038469362656481060851090502801154466956579738636733519121903055460624091474239235689698014301547671864723220536236874332941537682953862674761714445354081424995450502184538256958276374167083920420776589075790611733742173951223851634658764101885171625708529621082182610786095904161589092851711279192918341972969355974066314140771315894196806593611408328186675488676965454904057027058136682212924706520877775643769352407976103048968533693644158560529641929145424968755282147773405177655117375949504357399573023710546904212445436110654218076864344890237083150254281578166971511526103394858874201979351860936004797064086971984257835854475205118974313211539667686141515209701537096734687558115372115671178697313577773509488616844024782184970584886876956465576365829199178824963294068833685906137008089290410929859430558714830142335012497900256604047181067829359626225375210390750932694418683403172326808634827792752056118379622208681818601775455746488189630775677490044432551556948220061923523937153833581135801374991077623100395956819135682917961519365886301411932424750223359142265397883174412584397636107195320325880937011543685864110855832678014473646121799178585877904056269158170235664226171975754699273137041792789986105751541972364367720810115172532263691041089633282846412041402585000851378800732622209113840421726179290430212731498630519270629292481750738890035901345995108364434087582290585524469638192837286965805957854782917891851180768364610284113303463319737777073656529515892516423634971600380057789072162422369382141742136443347202507384927600976834228137654432173239540965453765874797378521521075092045153878112524362391866716935118938669374419175689530718708305152188792700352491691584633175540140979487545190432053468865274988652765800296365474871786494102169200562220213654666237933997627441616214355844904200166109262505455961022276148024441637486112197362891751670314933934719371096341103402372698315943050998495217367287672857712514359250432115541598477442769878289506504411898543459850115866624994224445075004150019781495009656450576332061380774235498177651057606016931751972013822083266867190734418567337471350754915569528305729547235642720227367722689406486124805550596456078657767806692876595357739523577536133499970680824905003305976257201721364243131991516762626678031326795438828110506006042595502173849804098703282806652522261571765400750697166235185424565368986312008695617866935349155092807214181767433625613872571642257019554082001792252469544193378013887974253400315458442738814859790271717254652243356683494409460162102723323054813401997489498616276349600572772484240899097316938346675944067603925698310889858744819404778328616549281418392872739619500075553102709597065956505575608653747899960145577499926388688069733312996335441933014464766907420468613287838150675615259916868329951539950433367815162589924743116020833288922566265404954690354239011130782671009873683035416057469381608064528754490111874729668080361371410872533252722571458950578943975407391300944556497803377567095301437750308058428787299915918951880871944643959482564516318575035925075563056481610457226503151872726065237449226051497827760215744984074027008929082950636775818197739418621870813060867747263605898813410251586188365665128017670026990112477616804522765535150394024720734602526561581407469949140537620004532005782072730979503178691994047664355138527694293041641729547047822325978784237859284420564449138871058388419639596609405254622158412363564174379730170410222673410670314778023213752574250506340800514276161602639977019305785692501243474574526319616041382517097188009639207242954924953709036294528848590914872559698646991210831058857495550627324972984703858291583673519534493829808494929513706603081686894747915292189363640071839494983399759752482914665076062982111418877078044267101264934194814197084181260732474520206321737152946128349096289002615297561269387624310940771689549931381936055730544159383216598807893079204240449414639541243825654164681229721224463129049138997839582696443842738378605596532031174077517165790726570978359861505496823089436524720970590306290597971491113254587550290818720111475648465910993999829931939426100380382724846387993925945375894198009909605462651545127032840227771360700010250158938747893411111410477954952818561187902378923959759910610142254138620200668791973823454507506127596818500560632714229029168726125316994431568097689234577874777272623695268076630724622057367624592048771116150891503944132302280645213315955947256603697437342812552258628649508123324909364975299569707801218519609270596735799866733188285936710626465994760392956394219337730719324465726614407532766965212949253422837774068545917855931684134296766007253823043069506075588343908033799338122528276826246429877536152578820774953218395791488280358154087078643234874618837817359558732463334628128406432442418320394957870884942853816923411851582709693987495785351509999311675247022643207981769173389694230802586459947827543344652989034666377808718828098958392819166896866225446669602945696815471102899461731884021424131686963578728281197983257258169251112926274915449709579919148203669018304218567094019509452497127405985934185195100578848291976081071326094970622309153841181025101387834719293832387275286457856923014643153993078594906643769734896978481032920848924507845249580976786713206407003204839965668615133403680460940328805811980558066318855353386809091132515018645578502191834545858937663334494856524855580974530085809647520965815238406325673597208942493064464036376566709866325338498149425233049605110925485945030997209505543893503589788954574827817701400068929265878311822760425620897222208412333074722873642986536654227760115163235287463377623030453873254491962682827138286285736250645888775740175280638494640230179169881882700801505570257455873080280385126037171606884597282895278593438950158165768088064365151343788159265538858369521881748003781233303164003797144110444473130993551866033741710281720086177644242620087890781760969283150497555155649858110299017836476109319106985587545586263984674068179505967126355875542427165833666683566246674983545394984004159143923512891929317317940891232557975041174856033763980197922443687325102109604275059449005345717431871481498662276045223200045892972885706426934560251936541145916261972534949589317570927901786642763534485716734242773497299892695362917153364419252229582854086503229105800482756621805442446831373165657628721616815018311127282993377135168160428858250363634461289899854520936968423113781514365120897357686186854079575098954389899502901761345507161059878394420331156395499466327214399593553446017965048069453154035259717416837471637753189885607639004883009647390371553571192915433637251610560743182244773587519757840481279149360270421701010900989210877300685617316144407495066496255386802017140408956701315406550015607173823193479514753664782568132571511552668529617483134615922301227459781990491786734075615940259727107058696002453049068932447154985848075293493278677054226679899554142064226801258466063083081908866817959493066113760752437171692475087497322001841244719555509801562653809075482280761697434416557686672526705889925981322377559278600919660545565317513375600897146100204930863522898988515795183757493148299528169079274183609295563936379474042059953682781630402375410057492636269437795359040633176675871053768385467965598693207240584499494132355229978345653505906041945900525632415391975856486439740892567766309097726012068409906719432328008932766699894063908968784236790532764919213262694151662393413775090944386015439212692178351588457619589315439370368751522099601685899864262288650717100803403534234847006650186551036616829707192320105353262568144889005642865354799998451505164921172327648978056360877057605632381317890458887841369670336169445708961473138310936577075765864364880282908305423598393995781726409009017464701329378641742778850143499183054420272250100618807571129854874826186678218699323729269890946953040913349017958937640266479126166436976955339773825779194114018342725148543695696852223686456644586153295092750489012293652553068708584411506490477499920880748054278018458636552552817467395298223448378965654107673056624306468530216180414114540398078733486242367216011054474008816984736598290751863411699153046867945688153253209819306518607903174782694114943760881097705172798076282271049967917266378256227360533369426903558422139243586927957540520900975524691757756770139089163039504595289067357314361481801178857778691948080288274167290424763406048228646754238205108604525584641676346569128623968231131515363059105733762547163768235454646879950154687637406175425828802593671079978615603452491685280578891852409588681634409668476647712670775418903786212406269166257919466907209411221924614504621083541889332838108244371382342897432715000784239879101483930955248969316730368632050723332821020405474846677010129786914287187954628445355862351283389079056722051588194115607585428835267558001929019022855460154181176867403047545974073422747776753479298675073618813357185471623531895099405554618160358464146403514932552587207019677936880531257796330778604337778514189416312041993536630271281586522624510957134701880746815686058461710987582850065866682430464687209171535635564054630733634637440673063013979246753676463486244901353352360606941054253659679494397557923169049665887735268670572702582339261262617507349597183713024245811635891680795949040012147865368814277177018653919176190607325775754926657423206787716405247823884372955785532050783479783139625522187351648660788327516260908010070200716694759688108739476800533215869463191245986419529250734917926363292073900667274595673400388278866833880435758775936529411476661558108650924565360735432958243070572403697381588322770833846211062435237481115677446879179615867309779828249145929615464295335301813661616435889127099943131163468391283223940200461637456462381510925369525971806262325274780231319539935002250696924297492328394514825105291469397773053957581347765378035270993152540953648869689929907119859168006830992367862019390143785092524721302364926720180212888539281856822277388476940606277031265832642297532393738614643621517121841224625000693525773026451564246995660220607344981855578544152383111461798787787059749786975965937483955520091693407261725755981938011248846803756392885369280881053238044432384815247999211249731063238513233496942337176202541178712060153210151118500144518050092413428160610675335888486288794901330734116481232126654180459060608335465590197363299249781117038703778832125364514888185555769356728846340166956572143933493391321827075878563035926039841226413391517818061744131953034093595470896948665508776923271906539345249520719761173267881338045196071361223274862335565103461293113808276016565686309303200544891411087822332708579168285645377476787120279932679031081191587816226514918765907962420772901282025691307313872911182995303550080558820802361275162321302772437032810627354169955663273892995470441410790346451839195467178312524810982287555669591322412504293947948255822403376151011461700124798649448209287245608042683626982756696998263619898898141911766379337373970099564120738768902535868168395455589646355747986008788562783851859035480548010053769062963291997296594384344363429654645298329583141559368549077137562405980956232203651723354430971859964454081149155592472271834091890885158087865478174421140092987308566279588782850495851356730981290667590418625353800349819721365914846088613332726291396740639204119299441252171412955569015182931611678201164113140489979576048663593581137717811201389067618584224098892946825340245133068251657375061946777296699456266582096480312770253413576098900624915295599361798984242251125834794529432616194349943366889464229666682705024463444152376421685943767690431230403417787573087141297296574894471715580531505658011014959153578792364611370077437747749706606325194810213990948553674514043480001586261983270963210124889749841288254368961810888866062910097213721018135387840531561370490893655858433119665664013047668196490560344380689194956943043098543182904957550870269378552665005626076950388848403048729027888272200202716933389830168867969265960261408503945100884135528330762330912428709644955760023890112268071042137066971458993312286815595862056642015204372696475450645868010385906173104133740094000595086018750079723920799268851839512908386982628639259279048313780517456059640001776057992600162371007567106689630920542700499403812259756275329969677711608809716272495195191660595292269084321716144146974066105140115850671991854297183363718836858316887266259047659780660669716188316341448641886226512816975300197362092037613264268718752360227626227068165086710349291799792258937792292615113378685838303877525799009385429109248088982775273553485033687881994727814070937338762332855213076426118468553180648331700012617869458701854192589674772767071252048956133242554299176974785808414178634716710368981512586608633162608132159082879996187126458864598026716454825201124980719237938503037266772055089929129944185905122988208851900769924700246360884838984566972541874999379844248134526816893932985293001494907126507434700599127525961034010539272879573071337977164707378355086275536693345114302654077674794779570626845624686428917252340620886487035646834793313875419452129853023861881329878974586404848908615766956234259484095705586872211356069679657610898543188043929319872210111484852276709575523383688140646000379330835923073972201865755062918875989363478305763410963828595023658457578749030314462253602788682760310246344374455274125440865458362789350636598912649398664145291392970322679976593428441192979531905005371965347468352200906422616258689562576604331278401476223249754308804624465559548781110257423047421798764163130630289321227006962676949234534443873732589591526315932198750380164822149378230777578118997984855212203594354414000228450598266079626017179264549102973237891182133525576221144226188175149453278836348179494566753447655285432919522630358466017089001824409595696766384633376494677338140694933457870709787707450620351672314638188100564305019508961970077928438288730909839390267851800374403048045609326572777367251712840268723282190415999860643687386505111874993192123434798710339532839425526248056516446050404529748513915429011009808348778612395924912289099335946922503880711890927193744297398483836857452171363564980773231066767709777149364250850889027499449757150969778163279539019427784123819645562428937718105220867397943429825095956304293764399290032873302344885950530422467213734079592711526546955663606609841261718950356420504831051111741547698587816051890113980740379538647325259018283167937487043038725004512840910376011354843889906259148895756139116591187206961985909289211125124547161663720774138080116815013188374912426411837424834473457255926640770053887210715592170802614607859933599460744382283709327943982572832840542855310440077263222874994115288909368015382272442895230329922033147153512486467419531229840917821517930870549787216927299053267580748940025491013576349106500639004063366109760965603759541467713872266278587336987012959651060291361897596832028266588459061615949066171246396395577054355260987860365143363729547241217300898386842842993241472583251386440162456602419506764087792026164988794816641829753411369036555006204749530781157135309349508563108960588286985282213731234259019483341249473998091939055182778190799602234164385990160507818780271978344582040197346006015939643043476731901356707556528436935388195361893657813383965764917585009377544289357700533320077131730706629673331590009117133264953538026895954648083866383520754837766906567975791566081297823913476199575382736981593206931215060532285744058320967638048866997828673984996305333026885600062243851283116963820219350728502222537671330654993349428674845601581593461671237062930468103944479495296524837465423603751560431332980679939071768035421896924696272727303720237386906233126782595693898936295873197228943306473070353929357466918258988115977056961980823866808966768044313714746112520406439978247384148591390687468669074815375169907557696899295555349386574681120322035644874698749985863033706902139208663133407044494258530539654589291133481674970364584281060776034256756539279248127450870441983508687778143866009005438610615893548704388121251715618670424362859347108645732226733651926807059509568225696612342151259027545866054111813797310426543119957159598832388510347650623394339562116155379251785567622779256598892056643231804534490568855558087839519849084574584894584901187611197569221055841012618436650972196582898790781230163756512405769810489415298562943805332919141207852874277742410184807077953109844031897041159134493167404309830026487537490001627425011430530462471083705550003925979820549399592479889639710765022424094176368322258890329063865423133765743538443888801089654596803484373067743598680447028651174097005214880048148809725889508770887785809097318366701530434260916399358032506995957522884494693223710063883970506418330480437219179550733835027495306464409289214519497545144381260128260204606898360576882862739187628833401542383985564808224601339092604266582805867080234740866562119992068712020859152535837035594662896347785936865675300007605584201484828017832052725948315196833077101619104261248315103520004704733448545328087228782712898073475557769054367821026013702336599068786332585605337826438401690429810095054302395787515077489453740545617731812888201594188030033708770399815188219087614957272659422779939935406751561719318390704968690591408222729802768051701266269998576041262664640878905485930388926220175524942362304193556238426560958308542573448591232844979165952282266945112115530043034850483423752988606726832865222886366002202958900806157297719918215213036402246891462204511813474770485598652194531857025055059546404272875616075422483911763075392875175191155665586182276844233802526572275991941174255104692143018534667954988513206936764565717857252384191058318724131198225102341744781216606605943476691017439981727824712150557726175900972440869446197146251807018963738934486043248413038742400984769835037946378460497069561806919993179535590528274265581458451561199413061976171743424375232670472963106293395062458178566801764892324160614753084650197940407547930747750575302410461008971080376216789027459622699599637005744578605146322096240022113453849907250307869351441851079035617494778190585690918169810303654704223171563228998548677743608390690188928588369567140642666364824911465428901491959649619052604081662282562749255509121317974456702916499595719727398690873986820863246971255185528361543494786425736140139575156432941870085061377111484862794523489350617435255567254704493500796254912021924182507633690944885004539011350655822224462227714508978041742913453849172524036815496812332480642887313040199344991449972440959576769475394986859821297417398561010444534991491128676847750038868310775992659259926598396107987498993885162388774526454242622053461479740602842813080434758726224006921748152000101808515756566940959373338353135955079638342565301813257551314013119215570781020323793112163914645953914222184379864215349811503314854287370095188764934053772062912509564890882582327804115990793209224160737928803174944670981837852394958480342834729794895841032905484356336693053733979144003561680678009835373253410584742085318658042801010813657014389302530257738727927469107142227793036756531871423259507885400894160977304774930345447809223434670539113774302496930043522740719756106599091821000831189753791107488347150460093698327766113448046283480374497422467107310854269477810666772694049806709206574496942033260491699958368879499576210663735570108180832527799425909858522612074239072268991668812275426301424522617788653479587533092952207224433628816152502456233330972585868109757228485314443765351060878495977837306523673263283803916787129382027150830034481257596659233413823359116174723012612197500603177786882930015256949790383286840519960909117601677087689389514591927612631676084209616319636745722947695574899042537857079537413724610026925053989427667081602186077830994767872875489841764601693289328563312105758069903301822523458983387247664704112568478856054855169727742688486301757316430516910348405381805760956715482281061864298978492021525766390628916617075483955565974365212955499250930000987522242055066218978419643747418081638237788594526851278549810404740747386558223601654189672632041261891523485256056377576222427061392074508594692264933418370173374542639443422830034064628274101036132768070602200202086270942012844051627908814303684002708123849194042652536486928431571197869721618769388254046480389593021342087834873182040400301616084902302153321071028001073270456281887947804359868220381142332213353176953322373782605880105906144432878648185149416706612108555575397011840566391241794594176048169084852092018237594046157519560657934526025591581342384545920515249099064583919177531326266319611365669362179531847826604226162495302601484228492375886702387138208682589863984970561805786300600622692766691859153847587977564288683102176062990998891102738842786312284371233444274990583249958234214360964144708596361472909701180291080578197795520969938240186476246527932917404153356171502694407683234285585239981171410105200607827627113516906669715913349166879792740961319936216031854982528396521244730302016048618888143760635875972396587147534244745002144105219819025848258531361697270771885794996798324565325830390855687708589253717812947333615642165522491787665315959221701161096095805665298891670715618481977947286700489669994215596628360948329730254656394481111671284471910194844255212481341463919143975901696795319954677775241404817962266004780641678949149230223523160302038919162164113050671720361265135718242605427246257313810272264825493854782603684268978182726633599260645723284013582654287593926464767531345919783143972311252356391100175972756564718050469347682412569375881367796651001549821573343281616611671464222729023869725671778840177485291626357750635034499716164489867919193615022172239271288039171075148976616604568281015252164387223631905671169846475825095962515235826090432779923961752307249951551506528393624788269567886779828138710274327028242363991521897796648999947280871547389003166929749759171217459465128099216048536705635864054273209296046678866001410993496397102290193300237065235985621960370212570036879187681209774007174420584042529599019809589916486927938541039143732194751984293958189907959231701538857282015620251173717852553154064843788652027607508894113071521008454306447070478499147054081063895495836456302124342214540933914401098138415522503240135841932485447786108876618916287002797533602491056396912131549378254727558331796189224274709891365753697221746278214985646475820654899742506568708794851590768845801073589552284123217661618671395118410369108915908791459896861016334000361674968882819855825208441565275355254938638544829221075207680076759254730914000368399790082170881492950091653287600718258450751576387372062429742291137233206634328658132022930426198527490055258274286736113539794139648704214713084675960425398688683076041665331011426966070362676978530213301022499107611943270057041756549394615945231321907537994698003375247557622201492260793490894212382450754468491166890399550690204066531930137619536241762169465770637081798140557607961814123895792882099349449852251169837946908567293024662914685011109627828425482171134995908891846389891010619100691054959318010113394701495578593258705702223461441395293634422231597651701939953174275979033769256607666909301518892425583192385289156183413884249700084794986159809022371654751713276601970621979080922442681702372028105646903871614374517128555433716727259866251078890553356243101304940267322277584195728954171333975840109408487501811581953391824442468915212213724457685582810543651574559362398015352529972989816728141423668347779033658815040018514477774862666208537199890351441040588308800358658465319282940339031678954110522231544495613015893982798421160414477127858070943275375284162523222879234966246024040267890640950936688503624544802709997533407624448187398388096346841662595503982027436568113653124972943700327502847566122078648529479607757620357813404061595574418253613600367171732240437606770131571208812528184367785843934489461418325907096807484207876346098685517429760394796050219872935157519498388767249601987205934782839166694711071510151121267242335902111888707938548945097119982520166130300907617910579684629797295085983874374974287024043630157753596691209384692321445278214280246479819808446337043269669903232458100645809958162182851809883935916891705366795667917140903001046418074011753879363802222802600721554329095240097041950907517360645417890672964260171774501880877300174097318789170976638915294448358012134114046305502804319039642158518706107535333257275446124052974160874642686744537739529271624462770100399102552422686151826448491658921397584607926997053427588494335280564173683169946234341992315359789474646401354924732148062605479968929791289598497007667781754030366462113793527750699266038947934523932848564180624436266014673276406035172109450726710979935298744952483927533222304632505995272568845979385449851853582815780636720395708104713570578665088785489030595954942782565180742793905276222680748579412969859756143229135389452718501290295088642946701409778093398897354972078702699050893712897306399208539150369135550385557816803054861975635709953485270145929973831316398748868523049090273374078783538040614481882493082643791907701566450172048317224384678256229491999539329378974542749834814314650343955812755151531634735823230296525779999938102791923599169673389420836937440250424824103268601113103340118912666765126696778009116486806293094796186869872604987984501403898794837067345942648714812445606738376216053009594722004074122917866366653423214173162499107351591338404043007065138026733835654301429340248577719151043504210885350865297747656611198808545179188026548808551562008282140101068335421922389094618164049654294039677176368602708332238205441213913450514993131257516337938744774934343658228487306073876403960349743137733979867421329863919872625475076759120182188174714670016978286741608661787818029786014444649026738699961573405413029197260714705624741920620103410464903183258690617312500673866742504032947078256872413372116008911872694218221822921601466764358011056447980178929554825274216864975248799369236753458514416024464606088870949412913723394932541180467602053348957361421308058583642056648934016175556739326748216230169156608424856207540812242671946592343911114357269004425063575947917961610940650423708046565442190271890248861954027735614327637911854168915368529275402680449028780087054639289370091139818694006533107873699715935973409126876556668243898178651029433182232433068897173679239322309125407060405029677117049232119621895551831196993612260630182217235388964082366261211131439871490764665251750506643489934266146086378735786190577287836924090221859963503168440353942926703710344021020079721254999796645534658096501235770448381612741190600186692271264673080189455343824858464414252496485520368792297075012968925914768850102007376598090574844286348645930490452201267629234909217884963687232232815020461313573704326938942701066490479616062345196638067703538667007148735384785434402045999959505691437020973731301498455459539090020432290263131067637419938991894377093181354832636374327004665427884940372178763399249347317248580069737697045877621480403970942015436805766794340040348877654166226445028657172171697235930750474120265535996407177811269980785729560665049599203710573534945229265952422765024390972034227814624685178129564649061679151704865366685963962111528807212328457793402541268859298678632492560497233564607338381736745046049672136261876869618823957086882243395363412681926352895680441121592918458296222645370253611375095944195266314753142100907880671709842398037204101810100583490249688630775615322438013445485903404151223308465670736324583618730737850069861445932557113970782904709834312371932488096729725392508283164953331919295967698326533244069742708962715187963781287750959178255927796432579776450862760270666600123151188203504905597140635622573770625280740545310732188092562084206157317733941852009364009147177707325569634788648727018117221724352006613206636116471568175991165931435093568092471925538774013853268101793652491530987330963987573435493483905150205019425665909034774284861166335580729188742965704000652063974455895539660456845764336002435677665037289551723946462022375660229527242730989899682291294071026768749284785683318742852588297329326377878527641293003948169766692025024729075277922442436081061940143309586846906109324319555766555008080605576942031842559637936291677228628215148993299668594804631059211665379468050407315848045005101383369849517809699732874388658444013891315140755745979462506915499927434978026357084852438875439817899836659108442119304445334085569891845828111869646978485641521550558763684294721064147755311042847958498789867075779586338344238571649808985651016033620625732834499061309306616248426047308467148111488165385239442125868669990479481044306004457632445415085997065486464456033126058819353883030718502043024293167809714524103996693068412751739387233474199237289360210048591947735912120229980749625516533823589632383638821412891605916165133207709672140795863695394550831526886176386560440608121059690588884303949162423965604867352656277606585895070469184345830517048074479826056427360427587533337940464942141082115064433013568795713185315375090343371411835997496518883824197140982286630412627294259220501796818952778639486658616133328592714572926199748592056444553008136950373811434229738815959192276520552926993551168087140177542499667505302472753025890366730959826431008068291315477165501838518697032957906891430217642933232326187871051224061624162757105877346685008068288534324368443325284576381389757128546482355666036840341368929404736911904334399858967594036936257722409718731322467401407753547136489984072452631430915280064269657733618116278176093755156439974930077361315906965383971202255229054718864303731159015431438027987896386224074356046321149822242363176230871029694088345009953862616913004069885997207016939021836962558009365362491577251488200121285514284190278569005026854109545041120992152806771731569067256913395752885440506771816075745051447464962187861575586618760311928061276861424548061764228945975133561857711136298131565957145798271298092262952230152876122526580203166900736458268497966300695902491311282411401763588010135020123327003336850037923204359504775340265966385400933471643840696794670340530328504049994569835839406966146519453746428446838897501647461456983524504512210359987557079903562233394999715831255491349596344696396750748210268185775906555524068703593308256272722617562181026016113642082013628237681152417449636871909211660522228889741776901955153184570508812826992778561663786262265078445765280689893651247215147259187886822394639609543313685317687175500836360689197269896233340986277645717653107381753069514439916055069563924450210838398126660671599794645967780908332806508249944194106222577627075239767460969992642502404386001120568511022952387033727364628976013250490836154108853175564364333808202498985320054277066424171513068915455073258224244022239624083168108411765198541864241292432853759716167253281651088619910622126737537809933132164477893484704026754430666849665645929942582182506662431556454104411165400371757383302500405064143550063353435849904632320625235136328729816329571939369066658327402809145681092553509090345691625406850549910080378144835081487505936690328324480261660949879267759507392379527346170569151309146634299183640269652916080494589788243296545347018579560906106547322994230692698567412259629357570807009010774471172960686620744943003741355335659938508856146337414442448966165108105613239422581862048536622152456150101942330630397506836475564439357102202251106867952284252926136493439374585905795819245411250018614264703168117398915819014033701814822121492403366484078199919690318461580674954936991409572209725684756930913923219190285363819952247988119657224098934893433079614704980802018657743690767843129166417075011020239602669193217557338867467967482628984147268611084783669768689021218544138894248392242334304276719252226742766704987443807266568371601824848472145713390186723501971739434949330157012529743204440111465663403094644140314215745046640231182613460942571269695257592552659707563140775004923074476118504455770581829777115074407699962538219326977311678414262573294000003020891930958750632195422398642673275295463852394608455866248069500401399686117532227822609367732668721710461573725345359559120606435576471639226022731884408537277966913074414788815547375604962591235156222344939701528362237779664350681924358687982483486667104291773069694786687973818744618819262235555799975990973892528638911103451037160765807061717084752992861159736405071853335840585184076572554674717345677859299276645214620630320997604399897786465164511693049069327837814913979527215235182167154171576207743973999573070341105827389405492754880942876628016387643718245461565013500006200806208002594802546977346343845840839180153883676855103350684346315239208000749329547468087527731801976068822479340289172975715044275023636456723163792929722777491609737691410693737402866866294464242094321267653320419371822402213631235969518755522344036178185328691640493957408040721752547789443772371165243557588213171364106748363659614313658771777612421802676244157246331592866433121017320716391927509777446121961234382907693988320220086100966664445393274039520530816278281942591615688418107765701523668814709700826273346472662310243269450268629581196556615111547732303416889865470931171776998438999430851522596123804683643365038269275789045024526931015488747391711033643942632280538120431501365829833380765930128806593028489867984387838914229907066608823103576697704040359013837881409476461476254290904415630860899644435731542048158494515334303709214017976372575172575839774347160396363586571368131206879044565501964581788392652436703174488450269235096987248312178584868540446364848316183639061543419477300497581071935948545361817442174967475747329411094683974510036680034923802120932040645147767527536757778008058018921198088751037823730579745437816519740038875438514226729349737389355185201813090798422114316531531700013508228934848559692531646832684499159144863731731425130959644154363877583598185671269026147496995367375572985428916642971989649863979188944914062766039185010581884450829673061203515974615558391737285751181113644443977557322797336249112375582536120478293062144632295633379144648719756712504773755894157624976594776828323150383547296121388150420417254928610463841883374270825359214161249819302427057030933537142340013721492947574083683441919500578024795402210566017974160230768759229719761721968379636752166793130568543710119434167272103308770260093838960933132403254350028833870809732542520925373420016556892786909900919399653208129948280403335895844323256027520786138750474312431814522075638181482555025262741848347673193425909713121915150791689955923044021541973580027031762465694399157187040537538073845826526905518198918959770816570008689268508271022891580238609433472653067637627046039082821798041002684045328919806416455882391122654935475805042466012398069678877272228839556289592329372070933011789362953492220265480107374303191217552343278588056420243488781774482371336243526008565796309822661679403913538582239330330894342787341841900046218588238930297623638192528529304015184556422741232734746894891606315561648514904559783522189095342195479173411861735677947349586062996547356407792088782938737335110445331314284126683780971568505033949125433318499686708103995062822154762740989481146797060625330091286251833079395576614250578144583562986328521475712065470420121594708551373603074735382325327065104937015215285120387945703626709069800526431254285453511266533453473877149448036250071709162750674422760134560024742868369201607600527398426159465211910241459989181158167185309955425239715557332712252058440278758096466435129634025271155844588108829479701155095441399561134821380719641044805497715806679592163761096648576374887337856675605838294252639168789556638486630025299856161634864201075192748340646957748633154542659132636158575075348593566512686778078662990253501606165660197577865554857188137666897669628841626870571986022278561005536455954863760199108349325921335325325883575337660749494235541260933503915176727555255911504366350672012910058403698266617136777099851754840196181815816224866694522045574328414381296860457978313338407508582025443312668936493211648236222707991930085129107206598914647382026391036304295925446488136585244955171020452241103619395951757723538209070612356770538308589948244803510193527083845457634864367920558486245154190147733785397064214390682542484183430646801093784089050168769747318415886207936603349320472524448497516632929333640631953733510332203073627574476478976839126701139063360711521818570200759440318637212719772041992047523768449278887895854106955576843662892839668875310194479138741052129346985989692957292169064997997592732330716106015021425213127133917052607422540659910604219239745951240369653545630456083143571845077238770431138338167590659617443072963955387040330282690163971645377672643465088933099801651890609867062906886218392143934659033249146504772965321979185923050469907721721963152477187714746313455353971824960260037051568241870297288693669329584168694651924343011927713954975168245419635519713684491201556934086813048123604159449181409477036489802598181726249697969027457893932770990803110118494239343960940414438338680007174982998025075209019590346745722621334253950975245316262895103141816070468287477684728929747516356201333603401218186318997507432132248386217240506815788195054976068028084948078011194392304300359543932786053751126906339637530213168866129431925270732092232629687642445654822947673783785567976204244048090636912830994826841149984597620282960385553659482440641293271771982250151935013477677692065524600026537632340369658366076549873085223241404169466531301788799197811429101802912786399899748482886272170506982427464620854084039290751976468092112450154666873759268388319279571716237352933796185550732866417865929265989880396502574137395074896751105906841446802894931627716545845281181520386278241053533296613850564396532928998912519587364134333595614518483601388586106793448334817519519691931558281836169909508928220018584737235055515432807622292994421135460670113141190583090821958294527531867572711557980225259799616155377008230046725959409047734160214893453199349804593902378173340604847836790697437211275898206535518320311271428465428619807104553070135947053203541156532502601038095017700024578961278127813422764230779113651153642446655242117539530851143498373768658685298989322322299219787436434217326520604301532058896374627354005069860146126961807144630659500567653141231901991219977895550410388920848528799136989220254897836673525054346202100716383049705822437409402414979118178585030836336355571183394462578635970111885597357545749575382303040395859492182989432958251953972249380838319478303392451428152576784889360575967577580933125465844244241304291832824915139173438439913092321657821579284718529546850231540969380469958108569913545664518797812634413388104229470193300643007364651262498182538257894157565321330603528354356524113446461966271264821752389752050992953872166387416449553120853090810556293744209107682995213338320846062562713777594117334342434751411960268451188408183188969660577187506344079980769803181101735148306049592010589618267368325379713078028214249471774749200236741291568108101465119355415646635323124089647286675535304349634836439693154926141261989755135710225258318645249977073445689700895608490461748399535215280961762781521035523274652486708558313428348669139575005084616109590796303913186611341924558400013983831255582809969281215199334645090251031232914167270159070452169716539902470953089330315705215698907765176187084694991595850998988619153771087752065241221294297938889785111682412190584547987795157876019918669202043348575769522131873969951971640711715084798605762516187538960660190048697416381889718765075992254845379041107034782588141248889092313991872756062384085514756891876477806087143383686351298623882979347977969920763730216402557623909830724448312437198342573935707393198605929031931279753144035748913187291974514237716130842381345101753702635269653688753148586162458185766599299318595638053376042420148594400995813761602694511341591270743981223526440586943122603493649903481934639584639275145507185913156559584244400842638078218706795091301081919001136656009201768163108090044752664927683187637710999078470749288065032912945174073025706391408738018804898634266868798710251912459162570230019963559925250463670382844565326622516657100860949739097049358148701190826627244506114583961042590194714371494613001229894002434377996508560643202551315478563573696382750248894872999914192168142423711448357708471899769257339572475306176036745650239147369990591144187471350421466874519260739919797756311593488709120243025622447390309133263422979059291116892316426640975762822870872414162716881359348632399200150029365197219511316932692253463846058380887828272991682092998944786631620132796570341200885660387063826649839108371724294559948268919701685625007504217556403275273007907383879333488152653935967554202416726452410412130378309262123048765343263533339975426286437180814056682171706169059560411626414253770749538004086143826840749537939250297538780162173531601551523349706015007351934074332574997800227592428574949562567604443936696396429401855844495499230126913319349862167746726227237071880932842019920697656328102647437098205726592347767995059162448753995208680178709432586844215038340796652623525775458741836492867033506716596074728017318464642331281599332368607814994819080170840737361662315767470698943595702026945151886943917108282040801083144600945826370414195390595155820719671814934252736986249979257430897473553793568521457329424154254548038963042750724588721347208300042408966503646802236072825079933128310758738555639488846044423365663111282724912381031425110490769963428003439599228227731515269022882168327337287674988832327407885500282128051819425954056779139373155581732179515938508993506815436033960997963712446951585586549740181428497582578894599903908337191988730596544700517974567943889396106844753134117000556359313563387375837576708237037817429291909583372024121007519909978942129343271052390698766289414258381102419085765634844793318029935947910745196208888102706117466086369761354293415048199287415430205505228568047503203085297217556633765735449234058999932305805010513961391734515877724966697941267389733993479222940499634519368217636996051317680286848408415506246541085193736349287111160906523297158621786025718384062189188280410744769721231587339366918421987269579108879612581752033301343016313361311999750105371700559792581315595381689556521564505172340540983104810671784179451158278290707358206485372959468323365807075322311446486830074261755529585722656626482851778906463097818021165262433677764780762996382813406027713124584373725320368445731478898635954520213511853085094134176570769852321026668632229491347867610352012319818094040144456719643264949461826320193492735533298544331400419336122915825829704023887650655018326578378407902241639201919801115359343860232586425289299596549144644041340110598053482065450960210594195820619415402022097712280324519896466928117470452091645168716311248829940105516826493822731484728660309642983319266072385914757793266339832682324192182746839691120930218104297841064027077589331428213221796869427853008541446032835329100264706566398972094487481994941972889371118953268076755327791279991657453950061932923028054404093158692892942348454886528407065847766527042058479549392709316412114757361270180960688198068530130949839898262102323187526502955032155442817477643867235805776767978499032423382052671177006620846872667565103451274528913602937196455831169653530706874948351183256853753896103639941570585761476093512507597147848683014409812419487142903449741248351294141405141354870264133542693482930922527030419660537864991712681482928639036062145619269858224271415887660175503456229899184807509639157870776129257737646875383181030117956429438555894408657891047590987642895473256563228434576977018773793023083282547285019361474714745475672288543040280506414964404893127659369702595828494856740869426464829285361854932635947151021044658653207459252618615063862016349014214945163600009524194328307356618548132538472795319619911403704134769464869716162432780749698141095575616386988826637261005347326618460617780236505992309695167456417967779436448420142407558058143452095775846984880815574570789883643866472505179224492395302689415586975812855628486627786402599508187347301872943770008391730957324505737646263556694447857144007656911271717070843489483097844729709812300102004371502959572902826849435275432458953663884140472851461656365708268187450115533687637883076826928110317962274164549057413278726048907335062222491654197895290203460392575446447532123310152387164163729673297750594285924698205146360117302688411704867447860931233588378661510033546629049019604652181057320104441021192439669505667761872644119334752141095741884130613224139410786190428239978772370274191834573895847263390907820336255631622516008977656453510755242977627055328504242253621955591409521199041413267471739273122401552440531928373502119683545234639896321789070389583385535179341216787240670939773773970563417542125487383622065500643281766234213446209142904109921935852030921888389065879671661078558867227564467596944158155036865067791806533824828068627986497699182372743686522948726585669544549891732451573091014264075734020130683505822481029828329842749934414387046336573622447397061181156071789156928758497497406102087861612088822280520906142003619891130023004989798921086246635845475164905201473366249051447533518305492467283642954429370292670475497248419810518905714019979657648458450327386701592589134267518637454396396774632494346065470149533716396522750530257966268004028125529993551889879092166099656346954101232088014611998982468773801071934571201879318262181770950975060075548706354198806050535544189441375297844213003300815709855926796225871301642255701741053994620288577929544731250678704016973467886614518119218276640422340561633529735056650071017989283967909228009917186800501717511635997237539035275785368943340562028197941088397396612933987783236920753470465180104652144514768589577939853727133355698496835261443586880428083150921168005739951405536955572286016706510617763852807828965712512060532469534766427357972306677288219268233272374384004244218511910319674998210159706944823956819989432407817025501598140940746746624641261790063907849940815709816942562408938051298810115082729518624265930100478965884193808566151532382778295124340920466765299130431675948598526951374297016824970925232385271099279389656744054024691623938122154115743805116035517686602845760740019451735259972343773107063973265378595037882609518950046338588540778567051480106304906710997647562323710656616805578008855784609020580321231136858868734722309190217086107048055576376146436003336905585282183206592858668815391941998270695965867296529359701821826675864005876567955441804284988148478300631545070324696936660650287401042475862104794532964238168596414241964360853195324486930686998769521357831586677249854358592756151093845468616410841513331128251407062767581906910207070191816559621445071890695444452939979761548333392139911529603462514107418075731027440246605187847185854005861170349198541243439775314581481980326962068687727596284231834055373591742534623271297487683008189279074511729743771295606181164030289590740754004622202922417565657737173522702172111082485226956540198456968021104105852336867425575602413602254361300394951458139220093348397418585959944673729400070943648717198131981563728059667862704776999263169027090067639357232629586191585407398563494076628200902260271230620981889838192046824725332360048647168454536336519216265549247346259503967856641360428346904213830265574380204206866009251215787378335732369508284572141146540410885678561410595647415862689621216836975636040840569419266394870550813785504134525869802217078441144621926148287152238881986193539627041270390154557106788794976827400853659808201659978327050864345882348438878795702843354056508227877129861653740491326859461318241958980808420881363312127662271869418922433315160227936165828912211232050562553624576517513811655040786228509895303988065088166314217060684932833353935563954516585471590529323690377220453703023010287606465451896487079339647349247099975868126128287646188743664966914394003027603122633368288944242535862770606423873155822486739001451332528800138200695386442905238467227833432267753637339055639569390480459125559263405041140654097837778240348264691982316744663404290405583132908611236779004758680620112432054624306814995949192187197799939732247294260626177363420137330497984499431584952302957775641012926044675228345274200960077839153906296725533677372027067985208593614226751216747198991611620369798069628105450602091590651126049253301034173701501556035135429564990920690569010292684724947195658510397658807999538360468241058127501096057365243555711582418299096810368691251166707442157582481085942136093161051397611426244557469581925739073725419118905919857520758531912126486725891292709973922545152439613699023485898452953515201240939313170765924230260477472448986440041733311132771248689146757069988516441106340992540361898561538263885125759154749277903597173259429622129820712935770047695727573020679958985998115885326808064017373846033225557683805290351740330655989535302822265647387572367810336422664767817388923326869677879797659783754621379196441883965589271714219728005042795843599738564566555673966967528357509252419669471289200639072069566882944447504360605920106859634264086021168247234847892212478337640020962974824280388842496421200791854903880875846897967819498952702190972161728552881992548732541171485606619862534954029611070078257989998383799961198799512794929857545531401460552767897636922782132950700713774725066907024948765017534185616776616295310096541690654132372344668769721121717977487373727050863042344984163047407688634160776681505962549951913927118678259750662423058410445415568358731511134994556579235978734769119590537852583506704311945115337983708266409676121065660508942137593886723785445738445092748647861886716208397523989364205410766171415137388310808583809386389670709624464362175186970949949460421840644813172084356297493854821432838102766788953173209053875871604446929374000215540169274650098551012526501138949711013128378392621408712148717658581343612321889269152742103351809167022065915054411050986471660995673594653481333117302814759289907047799414380682443431854261013379004649938641464797568345226370185418007153022718719388810473300753015161970665997647270262078586679409025030922923326528151009885805420976396372345571399389192832810712830963512764496546326067226493110365448331117136486144732012976090835650157816127728342785392232507064568620265387848552509280565584867639990784604846457277215068692964577783777531805169581952608345355230091069798807433207595847032848176576360646414614236750437857115043582554989824861932912574724493612631943770460483101520404184161905005367299614963256035232795257199345909906589493746924137412119236685835374810911754101931083975238782941802712022890152090141422495379123734525210464188886464269939171580562496089929426800345990104260831931664873647302325415017228280352346049633776899946550536605219610857864004394793270496887374190277874060793842506946323571407157959625582675246514701165544591854177446601019564873644894500793320526362462792405701003834000366279500386881352297990860297847833973627712300574495617160631554779301491827366063973769963379111875213403296994942490927114018451169282268046063579201043425519905182854251054848208216777596217380651163012564880073174629527262383342359447267559375355116762629287561869291840535993112925495258774168326622452941574717874696787944646880098166499868451188152144591257495759255262283530735889280795508148596079156248751561999696819586641886143222696145634719673887957890130658639078952691939894938652809353262833588285389332527146467291916905972292454527916321329566084816926361720501994107342053089547935652381846588159071014021658211924566675400017546963749356627892723088820266589161440701272926183819157942741942233352257015016957676807421080359326369256205615910792347856298887216490591382987003150181136863361085735147509994393463023964623641942721780745761631142158082813524795189794008022671396061474453395298064759768795483397591356054001487090543700324109395394741482306858610474626297482254251811612875324154888275326647316760243038350845765606785533874624596614392213443611910514522650876451838457375420171697097542804861691395482850592885256514793575605724292297523977705935946247153023983785831887856377715954329281020859266672090498624122299635989232709934392251766927132540744955421209652617158391740849709860127105160460169907541659631248957528757723646744915652278491317462738569541323122158424371617124901358381141381326083065867955434150544495504358738695987698848986873093418634038834894161593728715924342450081373351232221560529662341643510031735256058622983606563945166615765656540334804336053678495655897203885460830347048349890056653052835026004404417363718758599195342374563430584715564522545098114846725025325739982418445646338926089282708591102415417062383512026634004879015678992592643653724900245519338857018593365813516772460038967443507263887815521847392432514569795478611007075774361413901570661100446756839306336996871015628926710735031863643129755680093451123671919623352879547071410556777036065969354831053586313260926638058924293906617788855603173475820646414355569531551596107854236611190901546697537573122426464724826751419535330455122754619617131278464435155787270167956078975071904282997011405716398079300331586970527006613994470735180788665123974593834989791103141266651579429992976007152814836130293254733749648029725598120903143923074414319851631244158249900076368418006468477425675874267205338805681483784701017291839937182950114628586532748882853159934064517215447866839150148098899725670290117647107467871953558308776027210496854267420750498935149348749167241655724600780481750532230465335522953860971243567830176828324917884684135613642798540919069627751227496594426831844870852483205845414675809900692971446522230258010752159503892299309332398618253846588070026348983045643725070920914021321875968133140753171060885285371710438572169415485251632507016759468012836330161288389459610614996792358471342178194299059392884803538254091707366898604270063316275579982868069893950019050547157588118874378154313971539229525809374284922745744348336114808865273065050023337154372865098950152906576287838718541059231083704815579386809874013887594689481159370987772410699848130879334546226989570140635000941973934581663272864195149513138265225484770883321550420906074303244270115917253738265784502726369230091833016630491560585405248666259086087756489563305729120968055700993557983975546019943406467577468751120751325556895221631085690342667520509128084852090108733888222211001292851742325647532491682191333132874362445056069779629583993950893651847818072980591451303410808691590276983817516416684332651365628167300954181200439089176538752871678994893807835119185879263505885456588268470937405957341295612963117945762488199275170178389552737304528878323934758805983118256356126015965178030686809676975954670136810658460682316688089735644361684810083234077819546008348580270992651994594266694454436274824571630528953986031739452944022427777580216183706590019156124959473684942700811877440763589477139187272517304268845916883823212068565107955626809465461770089730988131814136843405244572161644492639796846123911519938914412291946639491387077306049585734450773590523239930396834603407865371399744070966934274472436063158055223827864329950963915925715108954045920523235012828252741975976104978400792040562486260725922447299824275850068563267907879366411711127198645157655769893445523423307040491469196614016695330020906884206549733660795285523347699839124676470835141964517971955542489281632831832210449304075342711132732140229916580591822358885762713722915673960823974300695972221679376920010644412250553947064827527438642005373896348966877058707935120736848615842328620695030901009340650535119206812956967939801099465799083367598970457743803193816265794931466718437489731073570787443513495421714335616317030946688871220780193453376594154614073729280670459726637506347884078624791480402542708888586808813866477087650881665299939952309778059209840049820858817205750446930598593419221407800697121034991916252500906369233886053192302785004649927921513331160952350334811318564059049821739396157388337743974608844895189717085918827437018349990211010847369291080823168609617783563237733966121405093265172530111068555435312518501659145218316722890717238755545202459024913444029602080797357122188097974059224553275574871903069233002190954211034754651956529160766941222597313701336244307431194483580192328221184227158520533446971386471175449653986329727345051506291057590714226480448634278838380994139352306529671015802436361989485234598921632313098123425705311270862138590298440546766694125497588687554492815468496976209776258428081093389467278208646559496010010335011460874280721781381601254339319778407953993833641573367823280328169538229042975451194564319349529844086037070378953460839381124071841849953946239360601174593879365517231011005668163746679663271833502908635339023384859026745662219116405197566647341103364769956971114741283440629506464589391771589109877753956053578779334143533360278691134668144759517109869267485513767079031163856209092022218901903574928790758571377819908197460281521674109543864735089794266941190535078093056997368321156750597768694422308890217619424246121672848068102189698966361263616774277094945331974436612326448510756412098148566029748837889529451084437733701360179766667028449260931947673079922394001705874082070355739879765581863483303269716683781350046638932522949571664757012481899075947069170127666870604509845887121706935948621927116024947538362897426630959805537622301156755689254345965233200665927406870379722849067576797986120856553409493416319698047597091648304622783142896896835275860212113771865477624197541470229063480060823184839552535662614084597838204275233946843287124149766174860554281633658213127444198431963248695051142495607503276081728722032411964296107593705023449720898056061310347856743059400432710314592446320776008907735238431263794615334048776053046263457101358657870192156820407661694320661990307260145549642217657248387443056270063039100165382556125216296840640732719382626876621279246086275147177798512443669510230330034795520264882844914019872746321631339847440370314290432065766032784681552120513869437650520305737238377476350170503263959596391443790151126167943516085148822766571051517140814832154879065953752507854810408616858393186652744457844293284918400163371912570214014594037366729365552175721754845007749942372622558670329132865909959669141908306451100265219146527997910109884164927050950539228365497525534798603023735667601198168871505585087179581768153998232467107715746811843033327325933444729691380994075199782934734258382249149889991250238640889014313969744666335455203394258331633973240680382818132223844316964154867586334153568710347992509904440602608552213965452925102884950518400232368825670573261165613072666663026682848202812661599819300145583807201969815621735047478535252458358464971406882152341013694230556036748892664159665337029253818230236840435919760152345598428862220949350414004926654986699207901037051307525154989824705177931647370811660710101577157848584177376984073347083448217328470397409497726410498183550208163945833922743026641475887938162099769440620733822059255191875160934095032382093467230525640606662097479142339855476879647963841614549964513664894505624014585922637911068114477483404368200790739826519021686427081482469063778072737434103146691421528923410891605132900113973196036751937830393837359988888362761841393171781242935265936589550979063358887427137235045812390324417117170916628881440410069215355345580385089979552935470839346571971554450448306149385453945133627628192350221121836737681735023350042182097059527664404746083703860422012967740802639598663592745312409919643288868339296790371468152433104586102306937458404258313386017472667900695797075866145606400949887977952613833491032018330731602709524124298830244701494591414285749170222549307917613050698021023265398436733642924706882941340243330210062850892236341614881338137216138656214878064697441414583692657786472517106165588902209975306997912803097373350147837733381738970843407978632052663654146824400514150779508470106387722100515140349645494433694468600001947514482736649222689732244446297950657685441044953099984125640401123441032887275050067010125786899162566125769820992429542741206177043181053540944602648449707794422312352579509465577939880535912413062495355098526332515941915638947272045159250620656801315810423225308090200209416080000064910405687581279313807293119812760537869080068835247892675888323980819689351891267379162573641531686374968284367369758870369210563823450412112319126346372692478172321681061876920335801547121500443897966523765370760053695032744721617036021471322560096103101021604800635007470843111233819513939080756847898355111423860438205871952416024152646220132496932775452265545523390223947445153202906036108540584692405869717296578809972112772447907857607257327797805466871119527543807568122795876069219283574494285249979600181717039345895819504501305455935397368703486998044663883428072551746235759714012975979656674719621682004248350361875877793153894960556913598171938367221910555692514865185902079523152626062591632270249299102474817444314346115689720511370688701079871806810897758689328929215799079609823314704191814020592356252803373045250442404759627396253192515479129989445062254323943460819691099127417815145795586472913185290533301138491192478603673205873914549632528486916448383920682050948959871818841256330357818189260508667325909223848111947208530202005641058675471660300105500022322801308675136974336856147241455841249780764132145760732066886560970250450064558780178511133788895885249031465887690934453871524743806210391383434424741785962105610547439015258942336060220816160827501699212402480535197756382372230726687372376929987864851528803453530134321956585145349994406489333785669003160272863120549609894637604332631428199965932576508414051743038905412661576250357625615042957547310411422754025651671142366691498858087942245605324008658164308717204543956540105207133288864894543474600194833266389297042442406386605375155486866320869499993860561898843734007313132926968239715762605384365324439197492066098427599831589298880168021406991725537560136288750011088369428812338693613109426587647221709109811124607350454132800895874688846790367606306815685899416067937204771525342362761589311803053682446339422204852470054699102843183098656573034862937365412795574691172994468749528513552321141979958425786355260752914648460197091870595001767134584538036648416009752245050325464058442706001694159498558278176869551844273280541581433048432590062572078200678524116725691193990085325304765170653041108162198118777755576224637832428064277271617342906978783161337197473886825193400097668118351974153175817404912918816381653075853938274382650431428546936193846861347700720190204901282758209952856850999899434841688233518915959756274389773131122722448300985471185265848285432715727957031079330190447507532902871028195760383711779240691672019946232438534030360800405084419055968907540367521263204138468971907573364266933393717122275434453896127449485121183090001198158019943486737858757395135587181770842141680575440454763944047615787567886135675654758651107446524860067755554176546166182359600480710122536410021685045258996777340990673907840550451221916546901732318037915523873040980303601685709367358830444166049958415904848582205448192426708251060197130752376958472782646299360239823365199044701732034252718476182150405329429895551253078670173262848559440669583314999087802326590454155001352247985310691531836243364259852374124883720342210377724235349207119742407338112522498610705382179821200976543278318104861903594839751766925734194001309259469244199737478413048576376777714833271076384675243145440749790794114516042512949515454809878275251734700694306470484273085903920016520297898583871022005854068273852172624785723799350940061687839825381470532345509936443634230038974005242428332522080473839989126521318383737166346517956466279648933635604473559144238675654030033196440540852814517885109469046684716797053326811904107894738939038048264336263351623783564274659638017343833306780015174090428621918842802992152464873226705039883031266049291783640870346286424873565823618178006448538718209998248389860648280069436451082043413596062968312507890572294463123627960726446113578940639203030954967636950684749789297762139869208825813639530981673023860507571521050857454203102309727188614369317489626825485362660909120605997046579579833607945470914141323188893401011435950828683941289049032611728438744922265369287659471648179287413060782422318969023085056720470025616315638284440927485423481720122835365399537250801362260947946176336112743330886846020964283817431281979330682359624592460786754077296657396496208334438912751356696915498519280292490757893753206728244898200536146667743274194533657441579407519317078362086564375625245000649920399575469911043109552922211846029049399576374090281985909674477835883385958776865601820895796040343347706361215893508051287945337203461903060878736573761510599410533680113870634370346027108325641340452419925675784267987077067145801417806646486040665185874133412613260134110519735467872125897117051947137282001957842099894765548348888037464862093006039389383629993241488889299516420465263831046390784202280658541005465862832677999418533679733608078719385184929103096153038663736840394278299192606800080746196014889017600705489953167605528185013269644615953108239160120513422368228821715557537068126879548502384197204040456948880565032402636947339976802724714678822034216773854950715971272153122596379333152195470832102897834527912392937224591697638235324702359221052371935491202945292011119316105688379388558330553286991461257188861259057328002869946978729552989174246103751163572832734594265467222218857012743828093421606076101472544524304796436209718128574140288925033057985763776292605614272654440491807742346970215142223296043451310963538557504470741504900859896436029569924609693952799057209523012291250179823760711456222290675762237452736035229676564853697828065458634404608804375531226150249404672665989614705935586774184609369227670995388251596914852482128065953753998792670993015964024643007169007426726817671043457709723486422564777522116480891050389126160625847467186809573155958215973102574741607328047570800409475983385978604067276429332877946995112174713370106811278353693320628922889613881802607301140762954146148992419185309282269937083840418019278691392353740883184591184440173247552963948462393316745012944296762917220297895335976991353020306095245798119192803748270414157559892610074996527178124227202647173765939378060522150530124358978196287865982811181342973725550721225190834194784825187915943948275020174451416122727969388447499056683776829404414854125505676386361404669769148757561344169598341777961828753944194086507152573798569382262934934751176629710275086064431316477993235283075159155538789153801193517751598709756095725736779619943474421521722558458790539524480462910754662599032008188036223428279049975020058231711229248729802315245603208389474640075152368757558952212545127755904925252085173420056288580810348088506760275655443525946533885827966359499661378116773467020629148638311944469455900468950638615550603000233300782806004733288388501944724856149323553264649630981735313722681849770550041325369505259486279242477757768589624285650655037787937447644602028917250186015013272940461747132794039174916489509549416237388902157445923045695682634732597480249210775440945109995686760874384281240128480508531213459655910278711603363487440108311642867006623164957709989818516300407208199896015755330916031033235071105887321604177484050803507556270624384923665790381226840713605957182570273234811716806971746434619853624502363190839242766202627981384811884015234603178443980002003038386096742016750297179991983151669426475780371258139860983980089965016548752704414303774691198588624744941046149662104959891049377428743791442285688031212828359884153601383375374358448122086903080332124920914745223948788875496381021751107288241492010747259955256403542342224658847534769701547875246961174002505217110416269195581760657910940893561006417720941178099613686868965634459104551467961645353207688852567211798286241975544312373097023152007109443915923779290517277203819109360106746456388669982835863460380516057790839524453566649983653786864468033544088175893122302437944343186469777849151359251072529190178762587318531863600448848067339017826590775540748891090836101912201334493297692033162984035829942973769034166035956585580727319024173402898472170716798885359750153830522472548382752532988921606128599004068119223527816461674839141246794109911668630969765490796370066814348150267388878232504418783617045545518102053947015279323489811416943604346843754102588679039619680531436204713045115883639255052750348851703871844707804264390672771171741704429807574154032256715687718445995934262019365646761599445441569125012771393109140636090610660033570613439641923392657778447407910882380468220785405794709452785618390261692009222922897018758969778860286173162221171532979432494588676128821876126761307090163205001700104875329172318858458329602598978742660686667599017109985060857551132052121942027903177153136245072061884981926300677996362336818213305221054866566260714000823692824953323573809665370332163872363357150576884926986472542695952474163893466140867434443665574485243069578995247492379193096576886385219170547211665812002035027607529426868999066076237941252637737648472470749931639068793041468545837939515065443782763293166848927075651013512972413078407242654951610512241753170633049286619062936155318581748014179493266625961530122858329115229648547908119322533841406273084277521620197987367577762169824718866128383751177030515044176213000483230118339976586953325592015396266344596831608802168740303765571788099920245022234335809309617636525763839853128770524769152748133477065668023453427132070212158655536977246099977285394794498686106037002988707918758683557743292305096905363360514926008583546961875378873452844413956346806693285723866463667499862309245984985731307680510382914605009478429248136829702087009715816772219815445934936345288385599467213257919776130328372931178913098300559410053761606954203160785181886074536514518877669572121654765220457506778623674387906779976547733010986782205590240812954321549844804622290781034449440798095710999916940410465959998268314993257117515415671400193018714734887993365845911619835565841726259055794599761373150717280790580835559924252526237285480982861338101802104863264641751684556586700238813816074239280572360444207887136165736280401952741797981793839594250170537350221620196354672663481877569281176930097202844252610908878414069694596901211410554652364393161648887490575082034478371349664533656993673834676779952791940130283267063453197750114979151041913509685463907315224588571413418889100701885139989864524992268985504233614688541559718212232570034532237361057957808091623010769725960442540178567302639077390294722461203503568253995145178170741031647366408239413642210880898300041820535029190937468217165054917357603758489756883454664422803568021283619958075030728475814104183618232376442927714911539892486490420919051690199277033570147135701467469751564453263393437958783563098399984703293622881122685352635401221533941103588699431200912765278603648006486299940991410137747013795080100683360652956485529259030709050226876561745888485650667151297569330455690318739416730823163564455459081664504676132564060933230338152076759523474449484365838275996512597171878778068062177982536001410897720302322902386318034967965271879842820490103451989667152509514618488402114254341397560360484977182559300319432244252480772974378079122066586481458065419112431371985880078988694546539069006008702106912122287169077802522252508721142130472770989457122514381377125917504737934183569322312565407935040309416021849531995035219199351600725945951397270778868075296462289011913662782760985843120109010103439497597317806482337622099644976280338656358977396937797687321328506229491515614340399318957574119723756799179015969665894934659231200114455180888702415026226879746159750350315216572102371428443851071274465030329798500592589087698595239592172504982669366563202197864167303818445047725431322328381073958605279577470851639512030425028901998074537249340525060849324115568783053027275496520122907211540611548137699552389654114094273755302048626334683608204942830665191961237782366594683826627696743030849928128976636654391322157804703820710782692571191557342725947735920155090411967139674064172212594388484602937493514718784583522064354215103103446715809677751366106326674797488553543348890879259320344126377138788485205173010483342877703311855679064401867123417234002812504618576419619145527690763207114798584160438458034525488107072506527870818191242612189726854595305640268927755305296946893747468399241828261428040210420861691076013895876627795205913087936393273845164977282841681425004829094557256848562694938213065083929551417024845914990865606302432112998498410110499228312279331415625969104634112132651950498206076396418937949564819450309395365699243101816488973772906167755411186288033971253816751238108541513088233487994796573476420963536794969951780913232631301648068353337533245988512894597844349271017200915034170873111895090538217227664984834246950926909405503864572434180806729309369818394109828250819465740151654086813463091244003136715373165401824895418240542062703145856526053607820126265654568529052824234281109424666277728242137033149415954095113306933222055931768478597910330631005436979335191999150092911743326713607716209776578131608152373505731479150969132816356564861757049160792011888439826106785870040996531898850040106823267551852836214233985930050687426796572725103572912747284986836873229323509629205245581927926677241599241078703617607722905260222750872224487550679957049688346524005884204481738327201456311924646277086548672228624688160644714440784406836670919128897169451147365420650787566699847972806151946207637879667879849487309373604635264485218325387950451557176213270487371096784389104620120511065475122475465733045230484780341276168075497914481161780316035454901574640903157805497696231644816688197407670053249530836555039999245242406674131133958637354920634648697591384216425026615573576956190256537206692684556535868040006333669043179209688726235355597788321200915882176383665495214961239736351130885677855757929398268900820827342636101275709303478971397216888798393014077419720632608146615773752590709460292755145912275735978561645445881267489349757817651407269521527373503094513248477955865866768154978751259525899831529802684870138199582210725770865767401175039247504333691805884721814988193239669986687910067396486397438527687390912864231561930663954437266235497715492547591355829091044296759027210621589928285727791827277880761681550554757426497560374021693942211264284245980027919015715833425108911058967281227569125467426668146619059329449507961550865418825861092132113911473294486010672877409875460065801153432529870663015780070174933891078351894108160946826844229043906461273422354059877833120054324229120651302700356052020919399730279554161774636216081427765597059883734861628060649170118432481858434007126454332733853897293214293163582799820824437897632611867949995075696417806779694034877322988463719444039526188584883781305305209079422874313993224099362487190453389078869886560257255438800390144515552825477212091095604078486156821901726126589005720186622129521197952162370692407571667151754803642774572352634576190669025690231339162726539575769222755385710127185343216468726124960712638144227910372857334178656042024048872011368354743385548150596134781049291483547378256244905614793403346068073995102741390026252606485598123099437117293574540214262246477167804997223656600177405680682123764062255347223377408715745479978056248270512907406898307008579189686310932552419057739176141274016820020110987537513515792563055805781972054509233826426693939831658740894337266454857026790691501235876248126865016054377563433079091670349820466528718118640281921282457408948587282960439475153590044862561227585376248923403982964865210914970915128838406157721412088365786647479494826555004838198171447883605403952045426661577955693485463137451892145455238528431819633296852115328559396833102691164766806844487688048047064869451631914133299015070627772057662923691825618218402600362446909658577928138683136657060398397456510343060141483779778595087435213356210208336908224574168705997139183635610916310594219449541910274780319726444997570072134036636437372937603647552965828107101631559376819441585545097791771716781196036757164807952538733669358537449644784865889735357763066771636080485359564930595827770478708530688324058652450746260341262662653164920613555245634515339519838873865162584103809475660014162436193084574445789150917269388805619915561617141792554866113522289209867285102489844477767602200657925413820970858862831768652890876198187838050483864790311944277538610477686722024751985331802118200591858783806372625286845843641051995927546045624832846280876508913036889918497964312958617854130643123362876666210990892500578775986828136582978402467907472418699700198343195671190529579818482610855898852593832678874021935757151579559122104743951054106296793793484175458337755882431873227639051979490990350678066726557443669372521953132951025581789733949531522515823395333086782406049792457326354277667580785735473373334491833728334346607041980914775052773363917547933630658754765699266354319033819689081482927665552418015134849279639371054876483383967762906843803560992817308943152052824320665873233995434203275410736385530475174682606883442280204516557566797052941345437673309274028441111842992690147730226872171659930459383220058671407214353415985535965291538533370926019304081819252005460925588691562132832166317484014654179812254789654046511397016635206499943141129043522197605263093652487366464240535886738517585899434185933184811504087745060876304150337021616516783624865789932944319895289857736946164636209340528464769390347991578410744917875546626622446514116389937626836093149948199768570570659632005779296965378209412943525820829377494686790918278569424729598528267933215042245858231205461764798145235461439209249034179116273630227766140206779696492118598154899572401077149518500717509834984418117425042536898495971626152192389775642903567785999125983326330853017891525097863939595125747977752909225622552912146835663103272107558448401763202259360289911539199022167612902088778179078794531043486925132024587022338830210981202454319146748145332274078264181660062116771042194929582249471495027482101169241025281373989247865672511361347147129382866634543689639269867775722312038051630166092895068133114210266077756650503902085334085559292333516512399433394077776828900759441111862777428063184446715747797852518109942909925200610839265842676908217101081312154759613492912504590213555883283744301339887379349757026850577621627706040636470304536148150075038561122816917877345935929048837652939742986496590060365223870283485393193249778261469727362575765559308225698059327918598918132759330290809094050190265012221179477432684195436860865287742237399211919485290889671029031355394285571448553579435393499165958816295384133649502463128315895227803450845401456292180333578932985280909861275140956849436461562224724908898733618734022798568526973409652255789862086328007336262310533715136308932359917171881034479215578044114514879403332541272008915446756989175266125287661689869648592900794707757136938684844579538124205345684596756793066543267520554712149049475750530791940454642275228367642678211025016255731840358360308435281063379627012042758019937999740066022808618669159776730232226225519256449939319297944717663051182431563608838740050467215245728838103578433459578493869877197272784813948844847597058184564217356568312769426274413110273013345133564129571516610795135548424554708603163332556967454766269698109758282151465812324922708690708867536883894274543527572146689822663794107708127428383727597069363426658989895602943321333255845830778908028645433059378634457291935555071740586446571864089045981780288567574004243231992775295978690260419443596922808879797840027332629370847349923871829653307917913256153314515716508748672624490590854014538454597876542631850102650947685825043433046523282643972991410151698973809056341594418289166745870783141067946317540137316290680002179619306191816054814051036257834505399029325114115779620615871374402753750275369714401824208626998163645127423896011807968220235318641060565257527444807208879969480785820104924465097788148287852323244251219152333207314410279674397227244452292674457660747197312088727813113022246659989845734246856857366996132375849784845942493648163769511691229892104906715408091729778343070532562843149286471540818939438056058337009385654759025205750234747058373953344636390435329756219505191639540964283395589800095985957488659310549017340682621305514525220502738807224027841694073190610379271014140906088982532380856642277757422428157157819717236133047374110247355135379455750568630938540254164131432490146254010483844827683215223642539083012138089724937634589008127218497879344325399794320564019661434003351300145123001756853918092631280107939629614865495561805582375330376186330845078664253209163453485346966355450109296120240345432861182451433968101670630783337428149852303100320716184966451246567506486427282453650327323004259620436615804843484297989511195827195168030517068766111690016941638031799318968853748649303042748135664509170385521360649986394418293822569185315324979935820632386028281800857708848823421605325278537207336387586392424427069366999034324956979246651536276722804009462824820802925743537463584738699773091452721962042591370919626657281481199306585606787819383738196975023135563108294278943836348375293824858149875767838500191904346213741874594100041367066616296799040404521335491610212646140906172193485384330083005062436661548935795548706744989587543299546068600343030822908908023493283709691569039093643406528183631788679361108779180542584524203098309510034902275446787368839573989723364200016703911297556621302474302146460271287002794899357559405044989811562795731288564598060580416904425023796858271564656250630227414510096226643218953762525327093845289150861172376494711102252758198110581209842918961945273986068216021334101002116613122069460671935385705646816187883576915850108631938083732701671004516677413006673152357889103626432503761198736389052720449419665828746452793369350455503986489607279211860369599670138831997533558279618185772786017638748086221969765821929085006957687024423089645089617137645935854554859026860168368228578874304934140120372510384819485513756730845223133628484254855480254859728180904449805619476735340845725011854654499315252925902871653780894496192525018695809662622775351387385905349357392171434554196487378018475354843458840587733633464971707143026710647566624095280646419178516365259457067355616651215553047280666167958514114126715403690960644282146411622866695695765532510060541788447765788377723668491609364566968357467961364669318038241041493617561308487473328959302561535045351134142310850090207678749359335002712424402193726354061015361518999797815206609366203206770608697908404366817458148715563651457806013344434554552873673045216613028863252650020179885012928656505130511627319284616559863272802085613472146393228829785649843705505014227053190836639041522403918049833879986690316970422573758212453891242979664699735737355375788125066770665029951602415274196340670312491747214481346745024037715184664886588239863997315412115823145941742931996462260071780189230486992500549585944971427047000555135996800831508660787807014183629273017657258378298230262745493199702258306304279752902961635581203756383355991665394681469927121347193226524196536895155220444375100586143812500308583550330677014896683245693472385290361026896344308297291747954279412119678360332722299976302984821940783800387367491703882349941107592750782472972514267643784961425381006349576435095786751107326169623387981044817762311422432055465857731904187709709662605198051784459363066089061577739633919592044898353314199710485477369061370089807218338485560353970555765443853049411654689909209289448498202849199883684252526165547965626024947663025774317988015383114748948871415359648394626210348653504061076577199144838415092387943932408238046668942827307079116280888282896927010699357192238666381256266449166461619609051053783330857619148352233287074807080230017875004396689424872121068831771758261536005613583957920742163771868843978278158783741728356943099278444472751590344740746535458096307394805450396165556033869245853470698314739750314312599841451652345822116838323282198716456648027265322248828920406528732630852810901759456274008517463198634509268680105942907107371140396089846302237239684581973770546829145426017080323929597830531524277878663321958955907604427914722244957809619082378664158761308772462255198967583064097833039146174305526575944733621357567168898737521977282912345607269664045257539137806166172896968438707309771959252616387176138512606845233179548834892621864867630869691334528119884916422338653829364627398389141485678307109265385704544623968343584805500277221651939941182550897447084588345771591581833913267124499619350964871937555747435622952885938365591365025136341365766307689752630572942577741030898823870322658991893362581924584731798895309618264961318618204312606799233901960951865368806386724515824931191841418898544317181173125217884541716427989258305481849711443494832568599817469221182860558013351351899321628606318479379683160041977129927542482125269613517359880228822806428966021249364389339513339715286150218388431779168361843414850355147769195586505330450314198533876028956385788186548864281645561762634542257510267759913625630971736083884169202686128874958317643764282858766901473461666866447823553782865618148460113105169508514700416993736423603298556701499964332112240132201339070573441813680558554614751919231540234781731151993714605446045967860397501825621324933579966677778703062920627857768938364108011251102102393765195899106733036883653866762360137995307288224940166273104740141647896501246938029304717163291781074338498110685673975023298787447209352186032166774485024560098260127606791216658679467636409339593168517302133344425002579332117055661982136354267110818806633594814139227240452936570364721470363391902547876596182845427451144813670342604354048517696454744143080225224835256373572547765575452084118977352843084652135799373154102116874065102755931089072473150904294562657656387795695554395491745074287463047800397504749865626351094692018363203287916306200513213446766028488506670775249605242663278276848319209996243613350622173068092051330892009452762027785340487085006556794831677877261210529142266968913070045387225892301085659244770670458685255777966607312948422073604832290649609822366614489827125894825262698171427602603197539798719748026590328509201035524224739034702559795712849394500303429616771081716440874629275843702385381644436854655420656267484982762679321272893250829668430320847537204608671968196345211801163035327343231654753500322580277937569231533972796292288110892320616100565302105793967600838556001885602633459041894617190308884634340095354747986943761494524860198798547628883920400631827129297446693233326870387372488287247173516694576322467448993402430665425052018432019686088869211505334988504583280167018009789263984020748783359267104132290927167615445609610611053949185037792605223251462272848400826712739913022412468234343597664690008524040845376751664616785472787034249261677703042465416431720869627080937513249787755134203265484602166586116202530812540390284045751405597040898921151417867589733897894358212287590375837282374880293814564147111740387114905391100184708012627144399289610498132754157055344991066796135145327695423668719252418577405452368171675764173461787712840469156152990402259227888192014341412339841177543207621440475921349865414352498502357819220401034720101500665136904070690002492306787117729188959258371647437171445728478792421362842748255545425510598146514061652582616655073237738923735867397304459501793044229263333214244292183709741040827078295680415601814905759074270939735785015740379535080917689479689348532929630081864104124749707122976486095058526890891633399410979926145255025640930002687711762257619077407638456774400234610690534582295626273031310426572276998834906816888262040030437948654430828369357144721474678477153793701056196938523103156332155969398699849907784907088671470975125083702995942955744354173639674087720772690147749433497970307297996730200103704051518735145746795380435450706998477599897372065380624045209276263756529348244117128091766071294567024277821258971213379785884507609574160515674485625436666238708507567677113819452292814349720624150917167465517281800111072044336456041211754335051002700445249903901228336762406879640904734147264686898370997953852056063644901347391863532012988517954799343825699238981815520731020228698741627818776919830986697802839049618047771892151885438856377527591455988485538544556885118006032604469431896941853002210358521681216445913455170291721328853911109405687840866564987156996196556753585269277460728599692986026033593642844702434630502328779097712223409504286985167197059402857966759892995239813072187964041776549505489982419057474769086638625161702694541772230341375980137993979779670769572669448428701547644536708204025730320458629767335437954286529980903956857108273893551405616879878640299721175758536827036578758864278925199034692682714579316645410375284185724556433995532632904694497478442945055886805612524748137237974646032883468832492112520702889405674853214788611536938511318383141563037779391829072701469893752602126382297546869336882999392928456508359419711433588023794089500248021996496923359487181157460908341556649802684174261161931334764000986964253503178665370614433207747161022002350068945789543154662433192566590344640144141882523773663473703973073322153330091544007465847413056482831049872885507460164884151320931101523159735984687153976087229745419326954050012837718129606536628112085709865937899496988561829203834729822509169792505987878795261747584146822171818725765255782449224061966313318189902066010056292790298031775643828797810736368935901591238232115899346621597752907067089821817067260882842222682037513339021541336114893418349869772862475600505914521212005701869308026732770187434206896661162099512242700908311663713350438805741225231466252809083602578715824357785142110050240697186979995369596888243861641018879139465756033265598329306562724751869561272521237557457259152595495501468967410331919622167750085605445910246409744099652797429739896753093867499885238881401104366703897789025038066265149716758062952535727418015486605730186452617812481530460926744354136002483878975614578501914194914840703181542950019668527602587292826636070425904648944675966099754423184314434262169034934982892985304171160124307899990947945545983638950769483458422349084818918185169003303795269105590003592325872303579752422113025885648750997048569392578532911181863690050412145827097386476303383990333166204813365410827647906283793998569460866334020171456083820111300661795681967375094487989843287533106632301391747729112737774839232817940764659473578044339661508729497164558051882454910495694014934284889550119960695769636262819030770252551120139888818184298500035825762524029729689231590573906790116731323856251977602350876616554133855066565430149629930500759596096239898425943038322867132169291937039619723548178346242027667590397637842086033660912525126477803975169704109959419887796275561671505791644247295151876027645431241514525529190047253015313473613576405106955819363072511484616629712068610708275166168550156192967298514446915737872646118178096574721442094177833994970489965510929754234922935168301778649158822170811379521743261248301424270234219137472708684070483379271416411645784952363376460629593471185101072623363493003180982317818647189684639043799230378186972577824739969534391462392811413877177055644878707729211898875563934782019392156059549396060481379191083068646373472754003665015995658694362515292729115022731072091706657191187202273139289519044732801125770351275373275662912368572637174964423647376326392371982668802477904932717227918976321731611239457188695839994535158793386213450532408856745703337332576215881079747235973152704844176272368573354576129080288570014931111584234732972555120559747538019407517760747091022282639647287021387959037596936673333278668249766881621818521273109557865861863335149065570892407853295733889839571283255961036822628751748462330127784619673894861156351887750516011080414000703674487953956646461119513087585416261362654417704630175415786948224232025615741073950347105329840050979935017366251442243253997863738168686077766653682327810204483154320037446616711043025244549905070091059938900174467626557125788673490563610212477779007885737169563952909897306227889613418844714541416225213004465290732774439728468203372987209376830791206787643436919623264223490068345071252244840935304456032006840328003644325957445793669577268946315603498224402068110009624589505083093597913151117180478995026832296691764677221324720697791722018134905301484682731323032622315092826542973695708101205370033084367426244161758511372763387040637613365917124484289095720506057280504602705904105655797278764183492326491620092895345793922006416160226389166994326410638767293061588579536232232215358870396552786562108679464026400457518955850631397987420549886079487179002457498352054621498821088888812346709594108969980769972446237084678173185540598872352930150718980463647649191823177516542156102747622417296116188163321607851248532088184180763059049431452016071668047178597847755873201806798766068311527603683596474803829672617305511221704055035823385009914035366236872693854277666873299802937330555219984327767330399915820436978926857485934706221255493684635002919797819290050583802003142758560265958090966289866174744943856662915257776131570196073174135522221024039131494077959559491653106922384984043866002353346387639529776013682625125801236691468575367967734430586958100732186708467688978917142640357655261951504227339289224172602837418569739669847792268782015617078673393571504079394985549676006189572099134286818348935984920123403934230671490493863372101623072494917295878508432504536904262856810583246390054320784667980710079153040360212770505809147378070294482746855794931929177935125955033444195909517822140800289328542523600919176862606696702803083218286313700261026879535156224526215815453805333740941238759296421396847570910947473918261127992651860679432465362418503752721071487735362822566922617415289849692035219284904691299431768745387270749200610565031096674984874125154328361054416966158292994079251539642040523610637331543696444336491282147470788386438835409654593069507130906645873604489541772866824746315491018925997038367290241930820978112191797110109483313965075013131426375572014764778694764717104963813248459101214908574902997767261091295124230210211409134924957009500774415742055225237575326792017309999206543243777346334703058067161637189885938137625577025559128693406444062648651984537096957798908926336000044757000267306842505475326572855826000129258194173080062123867308794124156914185394963037241389309543301302886298441769495107413990097622285197538455460381150915485479475854663053634817395261654948366325226163014418392227475884340802819752932304715258549028982219250560221278551058267985000556467248777941448075398454338624447860858431139024384313383784984203376534221196226413654372916848396014178720335018955872731228363584683199177318060763796705660190916281533283452747544513838338088106721817893411840642562222360497617955843582050421368713845288082114384730576142156293147996141273463433018150610065675702382804220854619414616294388462686191141952969847862697237961394689736731280430615780917784248647076040051669808317521202916552542787050640701539834050911129747906050828730215676587758715515819204835872886017881605905399334765822904858895963055741078212854085865159300508645466793421077337478010075144122560873377431048860933316752550545708473285218103619505890285516552738660802323927441334290992251659476812914775195277648883231555054485259688344313299902311813685384621982677850748088400809602144578348594235356205926837226618787274459911738253822358687450344660544401159071127329441561822484335468632116619133910022548606185702947487623224595051947980299130609795157632452031422735148003924045662665486994967476336899951624304654368438818682388015224032415690599670203922984218803247691850744019279742024863727766035342448306119119334336409555227004805469794366327036597264450246683614500871769516524538385862077487050484184602880635484698126221145998452826962047940335843938775714979465139496626563173002579140309391421212835179283019488658496333953590436244887632440701623754527208710167260825191939179368399218424007770881348433638204402252580715482587408935958206575425404090842425143171443926998766627911784264310411686089327278771434312856670088621929142302535730429216413509071503304132917467239914853928123223791151616282625512798069168791194871250585634656772924802997366176498656490493074364368030701760223593497970862592538562285414940427736260477546591852996646018630466220301875605041687161460882239862831518323596786553693640220404655223869167582720824641012092639103785536803887436841998223291416085777379216623859050594123199223682131067663069034540828084847156679854347466323449280362685952800641704618006759808627011526505935682248391725991411572753143909847670191764629828570848298030586272710266635605085708060415915058968395305780155132322242952709126608362291414672066681054912115136462734270810682604356280899530606588612430907078562238702936076717970536653284413698392120419521495876933266424085471325549941289549446068155638825751385880201416872828795289628145117998278071471496712905059848905967975282425330569086571082957864491548840914170468218619136246475746731933878527066816608813135778610019605952115587348334292713478723074463925438569564583970892275018402184750291049434858145031853817428181678800644910682284572086566293794352369522784312199844583650150271606217679961411305382821371769600343287179122404352226674766363543953981388376254434978215369873827922207079290000364473329729057789891870046995930828970140105053067426940762592035077747040569693513714388116880231391008322784822522045653930366963323080061197067842411536820118152146404541219815357934244687641551528902230655456652316660169701109062852721246970194918292285157815877555070055035092887742979909612038426351627873068338027031243894175603864923948492801403381160154990868264067472163700812754644014032238384833506495835239126235426883736218407634284474493086774092775552051978659814474893954311838014365870723477322880333090478795214020962163986511625601312321330701243589293640445567945381129950250839227973016346393547483708760025127872363728854836853542681180676976360002227188651267530992919805442232776212916253946208831652954870748936019317033518791509447782893610243799522452540705710487096608249509427509075732520344412652654352545374292151341963626131255704918493267577188731473624302812769225373170434350869911141337737301501709754070583787827997869951262906960459416255555130180987026655893314116906748654590364470242015128919954427114115280063832664522036607408259547165145552097313975519248225332689379165648024710636783434079882951713735011463767491819214249370987429513677392744120050376081536625152206084955470297736034716301331918198555245840007991803672766561901759168731044266086743066124646499508112665040177347304131925484461895235180026538024333225585900241055391739452445588604947246032794274788982608580766786525074864603654423105867658510376889157944634855990098173062432484910551496924168687126153728173232839623061838223140718634828605431883132940561477679588880377318938006907137066135479599949813607915335038815549761979047087843154423180012660422927182683596105476897808425189516067487630624926473019127531391986430528730971995074874211148562519275310871745762003222295733641379174830205391645847394861252311630491248680594965018463022240033249668612437512398703171254129180481007603430213157308228700444319839500533158413310531859506637189552421382936799861174328636172243058008006119019765232805053020459610884335026554132605408363538067794587468028924611751577741910011361865246614427253326800593925113139468589081925545874996973042982776779243535702645770576386618310588710862357833601630825946017774820668231015361997604447407626458792090820003267067879021838742127816678118722647910336025111415004062755017239508186367917252617574369868153415477613595507633341101937790378766450774545958959549004092632848938482596689703530634630926059399512343604250963330212831051725346383886334240728140466026746682548611501231065988605774064522900447770717615113134928120958399970245077331133765226952155124154830858373322711281861986850716190506350303983136197204961171477986031571481807225730383994105585634377714032563158039609634839911796390973412174498442073248189644341637834404110491551811654751786730395401831282036804470005992858650480137790229212465709178274245336619121815801587820522770703912416519052583847849667744253843483943333210571194606777165237027684744325275804098607170609594646771874023741818650796986290245874553174689563766762984054462501799011229544290194958797188122487827590794116856087053371396829880738260911591032736179853107829117092365211096364895978918778518973279121542736679356865887062026207239967445298419192486256264666317725313781456011590931646164665646557572296042263009730026929533441624599429016531699727215291147716118778209206933179047077060396173878063956430815963137159141894464556186648999167409049715619993106282050512918969543724303745990375438190128225033225439960971414814443798128252198009947795706271076827591694674902238095961244130304148752188568993096345873570607820726136655224729578588896163391380835012724796382981390278642773840275415968084510830707759228642063408294754630565171272296269472600294462540501927657355292415737218082740936528921792932610666731644980321763177685427662789205519511402970042626882105957249619400324478657096290472381739487581515074688765310217831306730850131697060593316728145122795602803476655479413471767678722879450327888572412547499860136740500404129399907637331300103816814035157859084319030193352334886231453873894992277044451185994822931483191081214430009079808315376167220108263739703440203425273593426326260661491242929129418470171247510352013195836127800276828869444349236218212842828156889750507880715313107324002673305017293891602560573589190239862962408485728919056966809507067373247736585359033241360452603429711955103949267833978692747513756200828324227995892393318775326036906581949512994183077413498698234965272171259229290896851595211631879702606342107007313456028416721438702453627803358598657029219447091093354273095792247260119025459142714870292878858063222203654207667085170231328818655910010825934725101019918116692490494226915837954451303152013094755191189030025174705811582610301068074744466342172564861643207997971497684299609186686458110630664542121010903192290757449136980048519500846881465065003945221094059557499739574698381500811217924360963199931354067074893705886397573046027717513839959518655246636214718261983216466798578961547716818325503723372247793015491308051704251414935564656888593165754588609529296527894529303697548547640085720247522934358696647322956208097280063365434943855825132033864454322094785117152268583790634852757433393311686266728788688677560587213268465250847302943294529701059722841076731491621824173849722931147539287380061062751285096145365943886803801908431939948628316352726012726470861559635692834430525040381953433961858510572591714330344797782593758053608456004077783911859626733915228047636229305081016676356180671478455536506172543170327135963082139024826610084468153528921069546150410164381794354534244137563417095712993689746900470105368902917832627752554362592348843421571673426116826202734577515008722508752859278509395023965675022182617816245204874581288287744478096491618606519722179127282004414032493048070780661757868848464528827703405950363393205793574841483665820521669630440281513712606259302134699023296345022693170491766778812347102961222489657485956525855330432795927912279985926571622898942322118392138205831611941968354786456060307061344365532228978738731340833454726160465606859097718122323195563516386033738323601476306983586724954077745505712469848401115845392122673012499154743146713343077213999158775088014889394760445214609760253136790473466536018027839274490569901491580414124078370213725828966485537551934789313984853273002152957640026827130367481214083211985327274500572489900677806361087019515908927203306481955995924789787764587688276594849496614856913516847801750532746449799070071065488415286334062509558097792060936690330044712680501048975477581222311622168830735573910727299717298856988956780379628013153990578379993327303967211103731013039650135867552178534237739477981119617174966833417626157272327878133043294613193611469241054185735328372375777992560698024300847159856863630146227693553984901771911863800620818104597475572266382352330983821807695872015390357884699284422521609069315664301064055182060282032441475977147994656675601079858988596323580495399143549789006136962563713586045921658394548153478506039854652825937566152231367369774050705231122194068113936826811436955575976106903619045917628546744465522907668504621586105375575044853809395078250047207112622800344418210117690473351421564394478712670736511591648756383683930724337049913570665699521574437618633152369222548951547063745717604868423364000009473646498604753197585810242231320497658936871676845245022310863230548718845740445307944103570296780679914462404249582962195350703266116052485725091819558936332675201162145129684193826152895125095726122339270635300131727775790858855127138370439152888381316075549849688018577732538620314477143328482245630491430845815609833540533285418036872507079083359741360220497498173825188102352929036733685344911838569678992427822377156826250384121161955191618082597645653324568304987545364328091102025368381741829258617101186034565640513721547931878169810036308413234634956114316998577517485356589545306460756647276224613804086830249095838227219097826828082164154711929507217547171237682834810352572516497240080511292089029167860599373594996310448311438639897961430779097142650402524282867344515636764530915630430288790308498854798689825830902519969736895510657429494091242450089976495736549089617415118900506164761780187553129388631426041580184044568432838228497320466711536220284896807961765942760915828229249601154385661837518552115396679670823067923743247448834627722664005011062407305997757083256895479794301193590258549109844274706625457499092430065337925629450617845611973207552938522114572790349409676119831894912923081776516320140769009498554365955089884634053111334144792115392802102184896470066335247368096878895825984320941801664790465269223004632171365294098601948807403087480217215034401646700541385360041374181646474422179915354325956254062906116865317990264235175764840561152585851392469737053866775034652050042788939846735862281588955121619340648354485518951197271608169322108301752335225592114194809146565466572310491852868976299612863908432601387769423962840809979346460093745627900352036044862419846589815966321448731587044825688359946052331890820839499230557621818653951668359870446774738191288844698567068825339956801555469882515813964480265541864332695596401879447243223864922196974848174368810590022342429087993502397639959465932075320327378428150609328456350869763909988817798552702111216531668260808076143403676830232159251777041702885861636542614713054897496434556805777399377288337116681549805536637035541893891571020197502462861619828351421815119193749364870808291312535121765204690353592893716927969439603030489440800415267820961144598116720577943547913179461621537954420190452093419241329444721692176811138167317059421905847036569427529372076026811827329089094935696735193062270295990917443554835640896992714819931437630722494073545236396461810977523996635875291529308270543649460836461837211782963938083665288887916654634351120057868643781170605907696559494439931150992949083918635408257292421283745901294846732615618388366520411202511142684752280236285401510252476205167299424275620568935644848698569310128389657369643909609349026751764683356614004141091515166091473408512767983904530006823741257463744218289160767955984017766441273936159195242588684137270127769996374852407275468368643463577143038872823543137476329393074420282638122038906428194276943421036799621674631395838033960186370072646457880551931345032522027355917062389895904643673294891984262528229939871496183793915825049449944921467105343143589379907990657964520854099849916520120634624584344118968821844023416517481582912596196681175594009502251882162679927501889962027359308460976662074160592019969463224317618616824727318875530289864161632627807286095532581681043238509904964776395659394244047584683804204183457292006044832042203063199853695621066755626480460846470600903899031579691787643369562940918680823080077509422313847136802235801944910120585953572069482431499164765601056890089429084006539199425929340646189598026150262162594952273632163680568229952428126726104064126947839335443996504684130881983289525996427867039628301362492809344492181752716375206225385019069099569002859137872720133005397364521618034933038027992494351615183524106393815196245157878884568892569569347942990252421976186553583599610293594480335369771281154687146610144106148569888703393140733201155863549508797358832897625101851040628980551273110942718729373962333720606047983307698941935892204474184451253876267787717951004783210926492943904541315802721100119810749650757434667432295966986316127856432768093077950562731809855079595009820619955730304282186146552380049506468550738372800186971771887156701048902801317056964314683215293749729776182539402463942582230291585790623308526768325501322354895638767306551030372394306778457006744741926754018461372194708608555505316886145624658703854495322291527676247209527570737422422115065071930216765058534906386343242884790249415207846134882680335242646582572064858041128476752856371535093674292322888905615466419624229062853784083464919971920870582763499321409729891625114804614453701749342038540102191722825419885228767077350604836397818205563058420302455807168793585770175563449455655450367859813922734437682980077050094514381366746620105655978759635740955384391880722909752243018910109583136893243423990877745434435407451546436409500986519426458934096021948342739103940019528108879538970210132956502015786628189994342406521097333577494939872461650652458989339601678978760743173256615841594110681870063304069946627555533357733276136062834048220139012618556911986609025165246172661335846808843672393384762684120799466926434879256724008061481506040664257592779075761596786910139162990703624243346850331871221244208241638126662293171417151676796976236206480113752896848196897560658332404079731587411425814365104639142897587673161863533241803015323617397452071055941083895840170920783930186386080798696220738647037919598868362559676982232355947377104337734838304433676260425782560435448603256976812856494409968285512009649585038077171724028667577427908033340706630386828816313555450533892249099892887555359160302849280014173882132735246473215533777600913601623498487267867757637705171345718419774028126829295545863739835295433760886488580280445881305093796363419479297179105443962486475871047493880139377290970130600041347654189951200025085541403146913004705313624828321176415820559366355549732724811676427628556807764553692963073809463580352525618022995563067966900193556457336982205220787894327799851228390125948897842296601699558210559280112875782624184297183639556625847523874933492169526696771324995692757389340424626553789176818357205265567164767967803323642512770811093767163875821370932587909615158015938831592693446912157151575319674674400193295909510617095443491936695890750597020274823922881647286320483642618822579797237869940040639352833942394820761549639999236677005589756522931842350348089010279086881928680003791825611665659609079593730391246124596741643431950623960716470048064579738144319952750471521741796554767799704658407918321942429681784811645882360080775114699270016463110554541796524733341641214500234486239997209357709169643693649288062827239852941790200074909804371632599594191423282435777279889433104098119046897834282178139514838938396385133421299711239470226405366248821983004246429018959350247337645295793096230521762540813380853021067066675021955060853618004232164809612020929672423830556531052710565824289312813666451930457121608374190379468135589401063981674381946430215315297087935315337170136311503415530844634439808261454809202336273187925928204416177458792487495250524442152823147182854053892876114216520116358827870279420044349442247230330717283250291017870354215117219474012284481393094729850925558170038518669832425737441307925507783933327462566733819898339099267091489304685872906874783039964190252106155259300935321485414803245575199934315684439201863856617252623518651701497724028742918584849991098023312509087443534475238663913974602594750197971082513981621926357002440170774395500886846586015015413999489154098827114588586221374656269196330135623086874546544844615947138809735267711643408662367957750272390797784064855417441686270233962575745244696359938163330252781763249023790061594463114114614252327593429790425509486379656511361365055419389264120020460962457558619878009298994151291145713130858602438712820453927857503987216008870611232660602574668956487556959519271789878481647831441732414497972189915468827708094839561634248551472766240194201479822261482050799198228084109681948406244424959928164316634679674355937189180375415013795754055033028028595698996767962486129496274583656515783414668638219280125487471541960668560848502153129642906343907168877636126579806529198739711732696735383966995520079605992161390021496126563710217093416898406063993048296703966913127917394699312496426563159472257289727383618114777443177869828675097873061187898421077838309895408813445641089160389572118638126674344781338610962788720135056650739413489966901371789223038895335543143496841894566779962646152690675611581352338732393781164884524762012139428807559244695936562333145623561250922685698677330091064402440591374175724635180597604378173514161947430142916942962378397216307298671632736597095404334082841657252091612014838747758059069142242350986212795327417710544919314763002628020382301995850889743878222557011330964112887731419322571949197594705961958127305931183707326326263382789071661967126322432890410306365786246329630740073730776067662742982000893681000385308792982718596612275426570616987255605561816834446390344574043361423607870223382657270091772812465777409162932932101134705971289461326086192717090655487627004526008850553553370841168030061837943651439664108242261780016361960491851529838073842426074280289026357532876321019175150817593510993997355923245053561415225878224969833367283677783050743431703031554375744557624850801254966682688835492114374977552206593049287748194141157478064388646893508901564297155578955790156673114101606113439061842311973565206885383427712197642993398890854751846515092506791778917058816262470801035337453286964757291720255838610054594887447497833743458235490906403359320563021059840939567806051522171873261058595352724340860866937079320115973083995604748253792239519126103524780673457950270615379267642072368773237752443763857670145733442165661129146656266756923977565401157735186880612457117543739747189930048475556066922508945613405018579886525979107464161403197848671401642383105595465157956792615175747066626478720881900854410756728484056243008968287462413305491332480105635590722266852482953441198477659737602940922985785182521946136917667040412044874884842293058057194136739617247376996047215389556320631987337442456004603860522873778786459684179560884873367800811464551545187033741253124942539240112525530356991575611228305008880076481765716675405799536732632318277129504040619028464061884748044411719092580895210857161391512291617522252852893113976493145163522309861201408343148540289369763708454131128796685522694916944240010220812642586595696535935215038893249832909053804240030563010975401408837501643617646619738060139517454684833082392529902864862080698137403432279131120115907099546290438886017728715917304486307300516638356069792095101462685992098502075714849384542025918883573860615702336171350889499454786710428616541090495399626994990584444380921612478300313664056425934938110445129304441271897339917977394934824761209199259150186597208684752726903045986171482935685986754088151882388746706222490605315146718334114915242219957356419376693466712837147684692735809374230297383181663984501938484598214043101609201689564969279433079400674183938508326064645259859670276387334212993163016616662940393249728987029609292888174705270460545764656956845779887239496120368422259126692260850040723263944757858028415030151502207291616805157062500634108285625253734115721300074366830988143852166093715440029365326973139928038958770783056196377513871644600600522626842211776897910472273585670619670879751793514600448629930341797392383959244657409992173158140987796904194311737907978374088211397879657830131050034495670527734219438357616813740653900830335691393551977016712645020029364865591490241858784754642066930971221052208205252910457564070803474351769411990457484853588507843769334298599217822295596551590892767943459919333161177570057927950815977631977552980583028200295701979754211983245882595472582127618170931115527399463322032105781604773516474964107821683906843882833734142825688816492335181874977726527971926588060340593540718852894809856381655296387785141866874557608727730399123607393285969885401175119275891193662083487726169121447288464115943859705848845753408533687775975742707111019802302763203266934174103610686322651646208462559305357737734026227726714776597562713972855956656941650852652665640976200396414081962546028505243832443604306734731285887243032236506238159513901630294568468626017263053064061813682590936775813241800969527159426598201569248672536403836265923303197085362504566559266698382474236654627560268961365704553444242481426923797551542992214913760224942018720871977512584270441171928784355595969371343821657466272763946265031127577014610307598312101857059868916548255169913084672373454405649847799200982649423236596202856995307912357553232357895764900263185332081485351886001894705381378685428017098837220844941442360194588984534429841489759536688867649398612263598329749204532392515433208165867778162616561108319505587113002789193670358668259776602965682850826829967070217007811862672653527337605167186221619807641588481030322157804224840962970929350814307292420943553278516828917758318774257419615075218481615945125661861209319554904376975021293969423666264078280244354717816304203693415173178226053976243062693163049523335418420159963236289532100391882339284183305945963810257804595963113689519248226916401094136825447680494787875260291593882264245383712813059152595152754591117345774429169057412527852723387350966617069470417541721996912947861422166959065260337215136114462769819176754528602004792586035587205983966351771917458322251567785117811328859363135779972820471438078736727755862523461885657258317889726185864832200447682279949216918292090181131418800747224664698560805194376721469454763553101302146723125967770946655032503670990092296176334708892758235728725879870651363697371306859945502752313545158527585312023488087194246068303945279611544339865742155519366341244885484322556669113616601874294288129875284049221927657522249710476219153735326823167295551643049368908414771202870349054949513225721490106514641278186096461043191105573157045481778820069260273825951037677208246061989416082162829982324278082133086538457145480056500809614638084622159518107100508512659781859273012277601810682079948331721638761862108317772266873156301768023736624445517946906045391603916578580268847647717378971633246342327508423499247241690150709618002328438315102850637649680646576961635067404641322649064443371404073472160387172082822149886632084509790419599939805369243791688257748427987866864785991020574978276148281226937243609465846396659962213647818686606383440818277918852746594557196113597348853185549011851178644655601725778322754535162259701059711294703684491074757157997303321803207285190547869854819288174108753590209825721533692612350344502221321845471717414894872081926802150728080681171192249078522191872123109924046053498931877763377054547411608594288204232464729084097858940583047119068483560805462731720946138520661645615573797555302028805729040141348933130437199572501803826557029854662414513337095449773060206309972921533067489569775977242151365402777161809353262770806370236275650111445938422208502945469319824301330106206717427896597842686739905453043392041619473204213115830974925859945261303096196717946126243648697348926288401155408573554586130903473050123322690931155735907107244865385544504450573289626027634878171087172814661654900550549635248644414017822651568669969459644963871732480997604208307620905766910887464687872055416104575111655639480446361114034319913274287992887760432013691833675937259777769828817857456261553765472348541845840695639980692407501558413362508255881081597240933102018653164855184061098830117103108844891834553817330611436733480424531227859781605687189807357697036305530959156455871696767976726468552605339122206205444799541449933246568418840825255879698104186034117852475852071506601839412168386425457752764916611173526155914647679076780241451244719061644594951407819725881282641565916584993827090882364167747051650439688487002766408427375419447588217933613746679232011704768516982911049098924030153407373844803636241487390002337120370558134846730404378343354748351884548269241082334170299867140085493235432654694369647949459571217354897182293230926022016200241234300861403041967703869976419880853707497672206369325221647255354575824233686052283521264935979944906536642878712997479547550504657252820123901363197266585323661236913382331427921535309054091757610453199693366976987308376021482285635407804261155376955168912996174795231814833353129606073264243214002452062038295866963375185307650495611037938993801345033732341551725917941360379262743223840072941479642279527039748965121086738321579270668177964336749205307316189749424957442671132990179582083637283730014268959466579163570516982749868418601838001155822731281351751888483403216074453313065013261963649909404976882409131011367952216985731549244614168675542088493470029951695159383741045902237386613708275173592315495252081807313745992126564688345119792822044765500917330106103289798935806943102705925800205226713394456451205280718679051316059727687721951045973698884262593787120512038602597308691478368539343760160638823408878531032723110181441492104951020138819975859598728353791910185899881616512526282894908511809354501060193413546448344344655751570102883053714489676422304946544772391631283020607953227611596046911572579538151717825806040679730489096075464159905087513313194684628256815772026138228886367300194505727994608610186128460029069010168614123737378226762074826754318427240102722874646599259649723102396350203591662687183092362162187052690061101049059769742418907248067110191976558336395888163072984995521931652154945862941933945250225413389753611432572020124162631768428052937392129826840921134322284423340447914229139889595737929473878887421177054970739007038582185881507129076774134493374437800271121015626419682249573854489506468686374057863391665238554242776612120359923517959476141568725747510897529220088453094615365360239757472453811073240380894774949413304480249090682234048601314040627749112067789979169314508752872217602508413095307438801086597801254174470382908393131082382449575794181106768113440204015399258732416177920610167285611839421342849020020124594697870452772393429614658511850322649084180052776817967165938789637487404034977577333454725251028773023041793499847008422608560764627754002321365116682026114632719826513806276237759897972255399310758461219500446336455050497406965093519839199075317545792574258229083895740974958504450838671675589484653262120962927952613708292893220838031512510631209496099074433229365913154422082825770923355634393224839208043239786279860950018230367069754524585360726243313757186622249406814770407528830150414354796773655073916885570079953189806640938175618471936389050877441733521180508848496444021010889722327482784399007174244160542895356787767610309180710233651860376217019744900655125268913626751985381151825370247504193893781854520778498931766579502206803967607950645176192646755182796426473562804933351500848957780080355325621583519896687592106887367132474257109920656022551964682854640054871041955410071864870053092062981773960723157600338978010011986068013987374864931652146309258417450916160594655350228059937992238365846566259179730621119435243686334737462655832866070089496321227053688544137345291195836765780085937770923129398672680903739089736973718317148958209166656183479856699035747707608680396092033895882006930451802647053012771360552673153767253698009735573777706310367197276640867688079412246372922779518696588281098668646548646694810800713559067747650107513461355775505672176236971729807571700165660669375741455910758997491014449326562810675698786287517418246805055998873837632861226272183323740066476305197071726093186008142323659827399703657303917685332914493958334938766631931868955539385613870607201570610046271272543618523891126257564651003278696033706853941677106847591204617846429137768593831949678475294363229889914702275677947694238196255260196244816277262213194525625136884290095413359226480890392634922687603282964178165954229120974855947367329746414583699955671578089681698148659811356060993563567875520997105659210978773898922476797104551979289361139191211476771367050710835552865791460033078032400290359432599761895287052581680396505510306477711898166857366377268770044389370410558094371472607638054307156064921949054168249097785434150942470342254524399980195436134254586548021186317611910455748836735909086799220731560694308977174551000776301994708387408719051819278675549622433506898879852023791193639007757765915494809144364550140721238196653443465171427462129903255724862351350839379046551016159335854320551232823189616713536191529398601839530934919820168465979094424349085689049526841194137348070008652151060509408594617339207946868609308031006571178134647984037416014036950867233802955969334417915055211775977266515205510063780167726052478343991695389453615105798720503923560140249806248300202720990770940998895760887533768606541827900416278531436829235419655358739780783939841147222243986972375376625292827540311967393064674636582345841425095532064021531083346359670883882419446319880689641018887392861642070352573830345750788580153263680039706072678928721555537049253378036372661045180077991900280848597116533190769045030608770311162335251253418264985210667298378537194580673136720690124547684238700667945991245617472116695430008117175476612418447391777831080324492655865307871662364556790509431286438937013077196691334286526343907097125641409422936180201264541752902971190818459805359161736933391334078267456575371421029430075319677999679641682700796581943675514243789747573436058457037647622620638118441032737837324808879916986844772790912712259966909522563901503538372672902989765675172018361925263488326216533422063704680437292406045157866518670898785507382237294922321758868138302115811698505986848244384515603865002163646376914298479549860579756585164895494745173002139292646328996337186691691948392263491035801099186488516878623566200152927551009301342049565711468524322791672211013954234115642780208356274985779014561026398212764472224126114720945917412747953148038167038540211155682795321942118313708945550215087404598085884259145913911159567456533410075105436244984688933329023058088189115814399771103058138883757045726310703991929125892306382547634328137466062863749004272545989208650696207750828534459795997790435682145731192339050263738388828414976165234536796724709173628751236878747210612055850764029871293393575452532021931349836104045600026183724977101239995696441965343397369565971242565271339466042346169592059285652106877850612041047401915618737282931471635447456051451851959018392329731282053045990197801980482545358760961004314750081984785793495280218595924458496109285659501475923354804828776914283688541743771361139754832100175957161427540191223088779152615910680833486284828371956088147651217403584040682883420386774799934274754208780268891851028188386008738673836242756199131578576392638700948883581259237116088992637646262857605053730922866028952531737353255900234297327161085367000355898671637337733093427256292659394172947160704684790037759373197278812366007741745535305210217719942503674025319817935706084593303360971421183291573629597853721491430847804208382475097827508810834733291155283314523647257904628480227015974633000725384186153340241655826742748157676699022825846691378013085039275628498302745153939520383081766224679769881754025715271049097814330889867257407665685448063877640034336288698551894712037409608115597966194060000269432844228293414982973652161030079426292567946762149549051669491951313537430322490037862091595915973900056795674875135359781199514778325437022506450428857096774806273161975913646111921371863972008565057619151510580487570794708929554366588755056116554147652238945188913353407024814307893389425727429600053226583123385756327192298208665943221633079785510058712931303295802099438796955750870412589361605017486878077806301944614760621809033234176762145701288359762736448327824791580641756552241740593336816300392751837809963155125036585795447909864349677965383301259192356510763893670997546595293986107888837166810622639936080335828989547659815783581972174498432625688336145631778496110919615209149324123373567450875412108396508790824598660885467893382214355019801218681117542206609158857765437336367273883762162261777520895191228806734199195966504996297395240558839648593388953713964711045064781872501630727109717809638381836851188523714454967667869682112719105630052538346342830570528430815927226389810388248186530613571725033345688493380272044371257789130004603999356873418296284470412376162143703964205901552985006070211904509137458666703709155522309516802583172858271696232136056470979677913214196110728994682579549761240798403520077693328866351813687949858985737638321789581503193899735365400747601845732847673787220307369272356184339201712568010095288488413788175232437864654598780665417545678898219406500852333370351233672308207104979671417537216332492311393567398197066542965698455694524013960569073137467740769139593210796341417425154489939391748203897917616633044593249217844164480840125787850837510580998665035426138740742060504901339077485360155585645667367043362596117618190449354923690154200570135570551571832805856017412157744973299504681950372009821760490081771608233830217357711434385693525673610807111262699107164476714896756175332222447633593003900190210704751518892228652664547872417331033780479745199906058329407991774440234023317996712431304499947217270244669872186116732225296887598739082495792417036322837974639599278870618544323811999801426681418393555578342567159065672324495411053326051115204739308456762776882680275192997257778866386440650339683865948393673728550881971000593669395235173101152555951099762885781063615625951913427411181002145234804787522174694273412595162331482594154479526705929462766340953628471517025604540659475630514835133577286484092772592102974197616093784383539218971593043840967839530634784191994210334650795482023559841586947301411937494957083722997297533979801243513241833213376797614006328638166219809963626963830046788989508514977762549531494568904840073750863482604066701936062592108363324164248102046660046489900591569210242251152856401592292598532243568349270103074347637812195511120051473619746509954491473775456432828566642386244740063204017257892333011655116226364734471100009796643764464774186012373946529358770218817550438513318369918480644073743918981515459811592069989246939077998537728287453409087803691359329897132395554740342013301698477549390500489453123521866933373105991458379029270475107637225629481592567245595405788554352702853791461676847343487325757124801427822741328414582762550780856981000660492983786575622220666740647355422437275598358564838257788200717039840934945970610319797354510177959278355429100463673807536413631614365470503242181035112450466948028769498342864042028143546023371635181290451494543433769045431526269992986592706547543552318353277334045692406994565356953346012837649291985872299407996608150495260258590317170265589610945853273525984732603280125663939726750329827740029561210126512697188831715249847507035646892755450724338663583007691487296216719797988041054725409564815567011067586238829904957133640688415404112976564494545671862541240262949403393625727514360867626687362790236162777895057483120148433827712208837251811251539905608760516667768988214766342432812578362768716700701434026713861104579725207269737609015582154375259575559072999566518275629288775367899440842067419080814475390961151658932939183530953128855029024292258707261306215121058210367831388340592472923063015217642748065523382716180954682072897906358291956227353201170780898653338367158876937059930958285786065930838395868991060150212493203337084319291182906802027680720640298601459881539031417860833399805377332957506652292703484110714038259560187808525594952585156276974869796345194471156603038183238606479401791970293318214525801214637143962886487915680004787759122663611552505570660256123069949786680921032191794196756865199846323422207793458279398123572900614127656828339199741595900373765823458118697390345312735460444990125516158470942106667146379686299935563583330238742625832025590595497427496678645619217217676908606800023260110124233036521415250626757628507011175933416930856692711986256068927143907607174952887321404594943703828953301983530227414401346761108673264717652551251422020521905483424689567560773226517833628448373099461649450114533824137012252265669559094966050697224170658375956042184650851424610744172129388147765115217292873822157255771545014554895703138445481102363506162546724060387223412304036579729242933424060700410893952144253820948928958855657581302635065802963973965098650122045424838276482584716549226890559465925974514387665039715167718434681623061337988222879931670812534867960576692653979899828502560221540895538966587805283388397238748671616218257156860330480651683349108571641420948748453584107169484376443041033042408462755761265091591126015969600685358752774957028991764266476241573766850398905888457650177363249514411070802093895474179083842308435605086175955571968931048676865526852802945355181184368040667182176360891479467774376825496999620854482444517598452160538969390744636827468341052814385579386804487081159691710280660027602643960566288805043697668295226842490200938741919002518122693956446621533368437676426306925499223295341849650535595901294506626110902527198117828736499527670841545979464920366404905682219757724851758007974617529877808509478530707902066337093966916205436335925811297588966278873341965302571302529234798171764634358874821360408977887014650360045315414929700306486143452691583350797087028015033177210288179464687638900920060581554135239040301920636444938149054447809037777265973558382525257581932096743357582440179804632655836586367422337203914474240459117058309849546771880595067976492424608623041565752867930939051483958368051542420630259310023293307318372290717588953295304414083248986954194925722879397960821981979145004934148386516632436868913590236193927783021210795498482111626835639612831962441283734890596677282471809381957660528364065178363525465085418076818826894736225624421934560050390018988619415775271009061082314504627363846515558337324067790662330748698517130916389662868858826979905348385690756836488545267505564617931090893957661255279114539802000004303141614858986174111923866066234911056137258009127647270100151347735437488271553269148135684349062409958788303836397015590077385734145706852905721247492596221228374360806045563887935762617741107356818578653455957996043649329557773078757713113510006228718076155588036563168255187069667171096799047428923742361274403973278177444381316171660248447127435341118821366068167447168370515456277724388216966438247587666251170998548564825951986433331980177425109500258676627065418053072384057721963408975838130459216905805557008951840761575361084420487437939847597232782232257794042690243859871118299143049362942201081918767914463817352986782627720317783507243510261977188886049341170945880589582431673808943220749914189394132201577463310913320214331871123954384527993333894177583628152088513602496402807507082662729180335104071873941993541214446888097046831984030971443021761745301687858350512117254489308782110202829382018244368237000795338434228526612938959797521607520346084810927042253916266146974081569891233411334955163125771371230032651109530682391665800122589497278921004461807090356051578936859756939700842121603581163641313245445404618882797537423595112294789789952561378783283437923479635394710015604832509659191745891202571477560948108542740262919164281826853545012917732437050865740757121931628742886498577688965637858960599843585713391913563669661434864539872055819255348149066367181895436453459776517743093675359561378790284946601760295591187895669795976703238697810022125424201303360130730086990649045687674275068811821043687117229924979717721544093384205974820898577162846292582158900290826452782598793337970656927598582015639451601649672936743198809196830396720366676094189021555474159524360493711926517298056383486634055482357747980855530390039334538340387045001379108989179076485116156858808100107666548569226999934190977528679106204586826860258211758716630168782520067097572476882614566314874065946961407813856663071875160823281827556398917680480540360028696378037542948723621085230961837167309654508291445889713760931849994142297859483905586958771179994817284262753965312592240935464395063268308641169325746900630758537796872964835286838233417206000885943109280245384644908393608005617651222534856083439798836051713748717489440639344607476552799947107251542120823829525051857524322828057099719774051770614092896029993889458376803194755049699271810036461970794825246148753847138077856151527481878098319046549596161599895149616727919714390560276290065338299020204138829084733805090643847180088185248093539267192424554263145813892510833219989169445344192353556078399322574871022708254453810545976710984381789618828347905017891019913129082059299421122645994643765445294550764209277385991376919052633520562459671755875345987822770910725055389202952666912552249089421535351710329792416661643592388131991378013141112661248349914730856009150104297993330305142324561065363067918702416004778910337421317708660957328884523358985483610481259425614758855799225339178569052267484743994388376180825580384481363919590414525981122263450057940991329863758519830184500986634725613572956308542027505059521615161977004234549687223381668248887662641129041572722780708292147666665766608209010524304584585323099684835150837538971088167336002520529116979357815171271438001379465297873251105021911754061754622986676110575077523146789513141337912914288677130541148390810578628969147944485940974008996706651141813578233785695447411468075223104284437680413343811894525008022730165798219596445338518427832952247032581444664348070637519974016567726977982640056259607324416697904999309510450877185040076834452700565768085555501641637308323425777605416913207262926718965741826797879750698716671727674870191557718675900250840571651519972670089859663182647453525953675898297194956751828394300717769793419900527605670507359081705882655548536847922015472773517679009024308862609311017494588006065263467225193314582134467543002516204871596809849427103712221798810939928409509740181449293548429519053940895723737197879729892171343693509795687782092748595116973255092211463067415579832447837195041089939113428681798384247188032698844081891175534692994140252553911971281928546066929503043899454133747346761682925127711952186114774698639502623281785190569704147476046358745793225875607239633837484701210335123514948468858669862186350664426113182635525561259483390357891726757872895917080221020914376398570217824283453518585051067930964783456896187959979500649831995889485531492273365482833103862640438935523523444454756703462581000157843359897566836437790099023124892961902106302735355127828223622359340080743005121080339230532587145370512568783849677320765691216894990055116474962694645233098622244880235674975403483935021752476999020943816467537398562071844299824614200666580385259079122874127636220199170535803866348606581433860825291381857427968117786604642316503112110475509501626138750285480767767182352057031564365668308971833141778365880713521445805565883360960380469532188740410689265976357624695456152059809997965972364978512045591732062700972148876884789638643621858350077635470336359446997100748499157460966687039044647501453879465330447064427211415767421091340147388142570024403832530757844801867923647360952797360713843612684582177313981650948340562333242662028235875706153253607959817739511471332951098878609632460656313300866048805137718988709315399974890407084848171847630986254439553092577473690965817731783352963468458645332458487317673375795672015422120530005834537385999542937562283035858601805250799077768143093173548068460018456079030582515080675527532015322119621931234356221245577450882334207843389947564295686744705711942900212230499038343872574475326638786228290013248536909341855571709160253030213290388837929281275990606626246490574143504641254232574544080282059642618052883289844738567367708209435964893514424422707293800192783742255504326175131349383652578889096889112365467251422840782791826327604017806087375582084255237632894929181740125117961085347451095368214298153160609320010849840130754474273845051783919815058178446217241070756998340185773651679150360356847265585523128010948004523522456399485288373000428444695360478501245273007589682691061550915595661528850907328552721982897889751783761594106155726934791044545910612261080281754769054877245424962987915831936723358255817914970777962056202708894748833601365222030888711699710469351897842420321228333995259946566665335063610198353586325182109487353814277646038427868944018755665156437846983716906109365870793052781515328540383707601870716427220119083499296670195013952086396155620993966480271176880235768895715333006749116331581000440283819396270252490518643883129562324208322889701032200050049893393934712357113850383005960662432900007071577187649109812906565007912693592697810983873708181413452806940373279200117653116329937512240815897847108954661942641304476877785126507569622417686473947367163777004357208413888661071329774136042112666226583474420676085049311881070838016044749948545598474096360990786759999833436796617915760061689301439999499133481477772521222429144046348665659167274676948742590313369490353146200651524862727265569092629159431558807779887611298907844829299708118233453221977452665518627185855555854434874322678009295242390858898763745848838291838072699587441900956004992750567992570452054834195482615729023029920861998002126169926296082983493201808362239921656295107815171585075501987109406019944296549381966009872890150009020565391115417351349083930749850168721940127075392503462543600814568060306424441908781185546003146026487350035163191086754582992716807021184763426984983801760217307842663474165458273213251344849603924130314953853776874790445417046429928098049355007332907963745039399308504114968801028090347854138594351598218350470826068666422068351301321047630449300762475606801547314303282253236283454446873978371092378128871250293398714329312729528382784927234020303052845435235534814061964612895177886109828315820464607953169534172258429382760920091596064080801615193987727324198395915080415911953793927383573828568783055599194710043040960965050294104207371749426382259128698512399392394459409262406477033119396230122421933780658887548660996725107518966099692033302972194013467494754999481726000572665383455554075569345154363436669069324057918774135934864114178326067914756087216786047881127029079288921459855528800678851038850783908991167948984131803013759479995563185907254360437035639366352143044069661891057328247311048948549455012031338166236446212886130361387234434167378425473503887495948488848012203875376056505706469347967568092497356810530441046546368818064928197511322799924394958681817484372431467620085500100722202629009180715508237043321731955065643631691780950738874357543116002955461260312478876969507776269258613782406896760271420611890884882340439362047460554811179668265286290982832830760258886137053043728951408599415323419264090911032087224271260564827482920204446753720495997160115601379127921585950078813530321304079818922910180128778533248635682390085302844890954344191146582389647571318204745022637251956858227690806728596858513527707136434701784474656914551717849649638148001939831657828584831284634442676143070981474929787330708022012994216936307244490608025381892998892689462021799095357413846461907348358363034120005402116777307201647452457216709372236341084749548342693629377487209499999666891107101477073620500951880883855999849190262864999216368533864403632227235730292864860561486845306588820726730423350397918849551771221978137800175932934732301420046227174296499938918645060866676457552065761204334404264496356973160287642394467949500291567521699376541630848731786137334515580133542716699704133600720676326829815840690614776052450560498311665072179086900675363470152350119916875535656939814884848159078966774950182842227019800067833574979881537867108422798119929305717808375154024630085068245366482811366240411307756304365703888160863736326623187196103522438151270972654779044295484100563766930911986266447445976275101029110295545529119024306450744414435790966574890533403289559389664680099393215968029411121787682878252660245754346124226110831065981726866102859046410429295135688820946939982614892225488575974479755147948631720666329074734610687011442030888574233043161638624301952419232671344412058923327709224146526840738060468399214369909275685359108222088157371923992445923921446048345937833949607170073400804648473183091929971357775524781252695756470577398152943876149677376875028656154362161790072847004599166132588379282527700874021405413514204485402020866835402926218141510472513450459474812211484225352530216937410937841215357324123845289165954579758616787695216406394871585609663051459786977500067502522063660459951636761479296789060499145291205627475278049027758407147849741569792963698677975827944746426668427814259171903621639172743105646246126382840400041615091878628878239866777481776359992732996169105697924308006187086578809687592572973137869454818951579154960853441020376344917144580291792668700182251710004604091883168879570692897667065319058807174111885066917714476716375622034577603630129751313067011581880389113668786895326387339128178239371902467605952704727390072204191955392516158581569709808144430034515027751602230598173454415578307390219429361753490419191940428115124825857235076763050265096289807432108335964671229391293582385264359468179288902456870373267406302199393816825761418464984990211702997214680331458060155493066119628866206995138329334532508906920705987030427105958175959871226663866126471996242210472702469578605830314660460242342161764948170320532776104685222023463135517007630264063132762394605122203390577284807213322005331441064428553826311590640134401037313159403511541540806782835264249478029931052275659521845805205564843730612803506272152876569727395197914846362007675085764826802185050121991626132696755393882706815527822996119847641354367224487395259229588429586853662672100406133283202458825013454454351894541068643027074148257872580796046360146378003619466611564411157899146745437831711872092603070644924740291145029746395219774814233387004017568265588431389850147618211465281298981013226781686086433367881847952503016593004934975677044324407946163781421457982589142187317595426939244385641175679769844255180037895273197399953656265790582847336811754218789416136152159209375255761768022639882662868186667973555383417974193441698985974080350536639060632474295703652246684015408803094208061714665205243783919682642850050252656734294359004821923210335474747452258562499424476403361741632542641723173031541588036341159229150540495419473667643122403875912530520257240130978725424007676270744643005294239778000854307814120958718046074535406998689683658072011240784672471992888110855363739920964887010095013874711690188975149174360356134097914255598805832047667092764014630228174581824041262041723401135569564525080517998632718684438650311035372115386725074880911851060718433466303899619565368417015279521630868241533331651628302049304859622142511931550146592738359596551093191491507944235056887613998159930260166893261782331255500575634203092298783790474948641364809928682206596837834131382393046653877479355585029792131824996040561611969459813284183251606090848354269310978732026442640486132958418284206956126578021002072309005635855018154845635165002563088471911859667149496200748397328643850663232203556853880551427737151921796058313662752805340022244520678691369558230739436934755926781834759019236634114312658811375138283554722304709383983176076547362357386413702581460164618104094846332452491087503131407867471057359667387059237428951562040303225403699013465706222534041179096328465410865821627844127924044491780667068688641145038882736688868213132164320024101830952776386545859890562201094168536801860661030580698364458881852140928029150952326655989218420726544560325457903233056366223834953063594266600014486281365518707548615557745255658681991375674089062136683079861978072250668500796306960963421274781384465251896429227483446506160633207903612435368225723781133483852320687781741899588856787915019171143977819673018761790660141375588882173345529906222459945506018286225881180731214560085325474680400122324639797561803622884953691431341610139737672868634639074236761763269835444746643611555210937099029466304074906293805044879905065421228452502564331740878267148549936297633942833752213390689284732918474827282779599114000752257873858812135308098057659602035466597204769139617850967734553390519918993027188388502059148825939589469083399052665063740887396327856881344012651094372680271762056672227581762044790246518172739721971554369777477869367610737560247334530694222066234763721215888660928387458722726967523927849295281227968810988472057982262155551885850280467648720776497983389765066533734436305456878075231948516040440783183668636673917979592455569982199043574581574815469566610259612826062192069912917231989588927529217263998611236050298875595894822536479932776922992799454854357757599963359832943125199881576650785291995915849940998684390158119077476628107423545024948386371522495920583950888497389234292827093355887752077426176711607623250359722918069806267312004472732117521829319991295851273826742268924752807736836844879180370896760390402990241048197691288472788832646789691102931808167693892530781378749262591391047936084759534083385260403018584800297677350995080354508598231782119237079655694089235512586216860859283823674736317165096405563840856724291194249242253486321306519209902672410504813426707603363521168244710457211028609529021481892991060038109502197232362975469760742249814835187016734585924028416259413657035941111040814387097843595892814249113405166124727300187895109279097388080588823728437612220446662694922812606498840597831328301818786600358992182061021844748645425877426179251152393770214090825380801950224496731312820997027725368459183662987281707163203475401258327504702361708973328617561118050240683256149622232542356688510710468511319956160202345740828172058616724159569542088158974675510269899806503959885986363282272847569232261873144093012514286190052725295335446792696151804360380313396709097023908763746661707679072746597256434756912575237299225458430798050306741736204486138600005188754601340200234106573125258157858937431317686862210532276206911582165121206377365493334114125188684683896078818309820456769700903998886503697750614013271916848277897150352150810149724388810019853973960343272539090088582812958603939117931588520635342334672863083785597430542929004067023642099795244641586932546554234351966955317526787207040926886077790674650123580856518449625203669139692352218743299966997029513749703467019172498755609158349043721778210142767967879411167850318125036182002084128638720309733213992539291558363077178929714990774271669446936698642328257974438534922706385865255532703705983526857086394865451508673738778270964058632108915638706104893820712543609883255042902072026413747304331834037979264171574112938803253931313103162708586605592646635172530657919172753009945504242791478301144574444899680654205315829913486693555450759894262852539142748432157555503990084643081005797403959798445295811993715634763871840891106805896192815289784878864516279044469923267669956371835020602894145221362645707956642343675704590958018769902954826334473324130079766202639817454746081941028458123874186076603117781671814916191281719764682903154513687744524302872180124116230210492928249159345201253441398929424655802861556692549424013631224565343582135977203731927895484097838813395751891260023595742845692342308702340760376832332816546614189583161523991210771810093712503139580299770730864170836483066504203342320348130445302261992660972106884553294170147046218461044812325668351332683377704278138091718536566457298445287027360896218331330247815526192826995891702123269795112412819716245762150764875022395026992746050328627998161824157246953713403816371205684982431382426611851839072088658178487357771757207228650774335487354318957962587984956995422346803812192770164591951545589538710244160901862449045721901310914402245334051115623262117902335541134576633642327548848675496318888424545334804289737349582947329178866709386380053120126015363011330976475776909763447017247884154108373921568917807193731485076750789727891748148747565034020078407887073382235195909991356182361307658468856441337379988847476516679244592059166106293728489732825943117760664715845283546068660361873566046000920647837333300697614915253186140311241026146471149578197941055246255878241722327665619633846265753020262525067696335017937281786535227659699972660376229303768677380101508215875133300768523782062808305767959370755764367986556475783211556186441491291532313329895252348135763052924437304313383360667516190793423776197592287763516467203016355452577876419788549279935883419887185896655444129966642873020392020465188888159273123866211088309609922940638986540171333151767674013024338226809529398563105647671022243282094580674325615200912934530258630272148752272527459701799958120446247737752539241896023574847892305804287913669489637424641322863446162353775074883948926957155035331986739044215449701085354754751990362671405347491965765529173381827686976430060743739341248041588562303534344009634829778225743898226885914906106405545453949282888178824481313353278084096538250975132930867382891961585954913837978501636637899551624884780145701804751725132440380239381599373682363615928476940328229811730535605323548013022931865649112792057637136212683074742810040507926252939561484366026132711639710469232953285454086078509769909610863494917141763164628056410040937731618149106819118713708723175130991566633028385786764020005853181681706093988612975273103209212751693660847821596539159571765406554721843535661877233824854411441300657793890140166780651813477059059804771835194948974203394253087695703815761736170480661906559841640850468138065825012247181629111960741822141893119630422068889016886118663952160374377481387654809859291520272454629906935085527927750969475097040468231667765996200692282393617565457938841926366221007764586266579526081489109662101207667267990719751062764729623656138262290145149426758664448628896506986706343613781928232323946870245007622804568405303787212829348070854262776917950858861034307606304761241337782559708049965736521159472222448442063496091148063184003969630613850637774879039168450960865479870137630422703392528594779832943398532135238050343205446376749194414802266479403690886379221607391169468184069226188600492775818141562741640590430212179849051920283115357469411680667748483932874073669576503741695945465536531395296030601850514600309002931266608706234510464910942904190402333489984570762039086625184457432612897473283773031147329190944832329872021347931221764047842130272465730435039420961251360139203684029684866537491021850040261723426373151283773669698412502559364623107635962268332807960840618016251481808952516909401181446171764363876803939909481609336749981969489283341550979822539347916554437034660642450508795716829465205501271213564363865387219723378619376424051550335155550169820693054537990046321958349129189498894041978819141092466537673209175682154288596414504603048416599032013263601275306498620505424072717726999989972538190002850964625144326277999228123718924207724892583672839904133120216265371349546193319680724686358947516838829435923300448700020718936490602617641066958835620302473929203254495194591351448848103281663964423743576649246661534058833576647137812295822494379465331276311521658748907784190884617032497149102808523933566089219416517101776407818416422206602317872810488413477574554738684453016080545022329684975091144766259071315370676402942776521727093715977237419239206090720601414746575195446749745094001869787138650181059125002429791672013138564821038770626405047320375438468531398038884991007275736048986370540282304337122540183477374114212438919580873917591534115955256039036989024916109677816493455598305397584464729510281886457070236470528181225617097390504286752808252149176361313841450246630593495778825504069344355537246835380685166259442141142163120295872609322797136454694868576501400539916280791906126676580808489755298284787352279946784510745141383922674076824621836024008459628387979312791123605861890641787338645754032971556952062607344305207322535990751531871111822098683222374933433122815765382822288718455876116419992580510711050969241655263652309629544780802762922883528995663366643068394889130682644278865485853389694909390925110415085727367104965891412261134066573186663219209849256532794825161297788199829496170280825495881057035953621470728161322220911288574427450948347424177768103243189847633901142682848292842745265205088581658033941303610109178630267185328915156609122342622242326741200844880121099406567720433030238192572483551639522200491894104596900624875779270880666607819733137987557476833233206436651004656882966798211537282758945920449653462637071031922711858760134777114998630468769668819313652941141966583427800126610042070936958321380594363249199132230515342652239954787650367274901827588895151581134429863148014592188465645567008290304497831110344640783707777250186406277861712139825597407974109785488270105888563077453953746393157750261369646650158681504054390546613254157369921747180255662879384947080916883821353857771524046314089246344254203912599530185927095516527481859835139131817010239448718919949377131140931803420560134645456654571809978766246651288524067797150936058495052645787840118915406329448617496726404463115428242647260395583969254511349171821844054768564343716401343190442336831283891650122590638317807296840579022530017533953542069560201546685586730737848097435519686137220624373051878477682005331700537857558077304131840934387830917903191374052224714527236935412301577351914377104198746936423865747058078660384851531728744535158503426689454973765365452686897853437864757198496841854954647931076127409692602649289980788232701902060613774838843561531294725172179996247577571798195325354167981968352010820458132259002947013313106930983602936981213283222586646021068609963208188641233801995571982087114748418494016280926657036110566714277007627970932073710531219568562036712135099851456049968426918752319765607537083783546989811247180095979774773209383619423200663845185825776460313580018908405650842365339542655660808612212911481357992555035945309279582173960905172101498661902594245432920512756834199826768151466432283974477669615836821158913250831722439699450020394446339641859272556512818219345591011086806591085124050026282938087175918587238934530672630751574709010524956981792975790934051919614244613719972286265941605915946423219340493219404905051487845699133557408872297497113514094175567664168444446572822368057329966459195231310468924490218177129543509712786855854066155746592398798339397393835371376751817561166180534358535337584024365273747132042632784524698942708803939568566981725905709509528028752257306357419407475684878621513424024861821727232685018746485182655137670930845192586196242177781818204519723747533534942843948273748296709144687879881862085463684542788199512397410702856405121395703947838147303265973793262180637337038146304986235113761091028417912738178654892773519966742031233663374553822622492383065480912465480741638446980989517342423545206504532570675048031754633947810735277885517597831783547199224292083208549250742141975204702094261211960119745701683179044142766452626867457091545722180000054668943053102432502605141066556565049385547861174345222429202504062385481559444687579389541793002637622108215327584952387675567343074773536735668572780206514899622515459897820677509803191590326080796104789707533257778758012689848074482901962604111610420417695906727663301058326842641118404436232462244985889597510662454954286211301739117731022246450865075053586408375873119508717275426664165965979689147014342260683098429150343391759369883940020721041772050824287588077211895346301530420124942351463799214592269395165107453005567204339844335820653937050784191282862692333639635617647316061459343871387499769916750009805145086865282872580565861778949916158236558919401025768579051915087066128623768325366159335893683262226038997887638548975822678818701939984137113775981757470715514991862377154135420889179968095356592258880109665841654901721379958794789937772179558855035672188754018690154485792401100200107184720385275614413589274918413671959365999721600572190999782489548911997238839689476653161184958133248388529075499596357354116991459903257768889611925431003824228947822466569793646545588599102664334480818920728804278207556417545121883653570729658657648862399397636714755975480010755216713486255213621133677616560003493036187009235613218229958178980439378174332935070531574131050719689525560309314986786862888231989809153266766244318465275111737545857703612566575943493354321936013337593114658426141404779727081724546715128298560013274153351422658977383699472759157075364361536503891272056213035415898688271329174242070347497775353734754030146022888284029368309545677989869993530441878290902291895241827429373528230486163506436067077685553143475012696602491959440053903240083849885698061872381052604694898172223686195333893364306798056885826985141121552289894627660088619745435063894647463293061446749662396018711806301302276061834309880859998939630394127315268032866248584943912513467747452213603169789378283424810515878414708825750621083662418900930515583084899425462283081864839284468482314462023826168980813664046649311320833606462915851052120032505654866500120611462321365577938854930954479181179690880432335526032988766206339137009611997833135492080337914919362650223145756151838167629884995659757486314494301428166827539675706393360932843766168985174370159023325725222617262145062697749650686136590427059892109974591521394983412053791032762609404103938086956911385296457762347326448834104437831446520841005876878725059457714945937576000173015224380309232488705039497453971888964579601688066971562515329296032454919522523138536809006348947288319628473903379800454248397161549756304498794936109306532003073310214480618889044253144407781831766404647463482090529841637999948704438005095198107020724921078258456087385392559273480727902039109584241513566792196409350837989488807452997731607537395193012905996536918532796105227491104767569818687810742361226965001859501617125180930619977489575370415605746980267960480500876848537009144373819939283706313641035634055132327693582043733557263190517899931432358421032356859186407864087176556716421649129341393826612876904784649274399510091043013344813210271972797613482590555716063993670826869680314113930598328952647580665875473477442398117592863220225944867577771521188518658624283499231678666179875596431581857063824992373173024079659944723300753109842376893575079635021758960657395854242382294679607583885496757111603674972933851428335448079964746201366683361634977057630426228807598521016251509831926385244087000694843736828794433019903935290829215697066409562346032101346374698778106847249009490107073728057261995181420509003605194067953775904882744437788176029646798973949765567913569126102542266524606529522407945310265542987994592581847885940610490257001688583343997405598201979317611287194463559386191700709903669226034240235367377315026385974396341004622890515365846360907405485966785394546499134439139240470545767017891180364402726427580271708552055763904869567174817899964094887978095214017711743165612330966671632794200224034297715359151477258758017409160652875491627301019277123069762384502077240702499170137551454012143445219711721908385098560375237891097593116986542270277031114756178641117856594407281417404311714784267238037131694198571673742432459531272136180891466718596582699581298948673389980171304594933423973046492842945518720464901824008832774657768151285033308413845321109438559789390747083799424569908951997329567644930727750890749488611803848647649829153710105275992885807147790131687946763446701093114932323395092594739727946051823021684356530512280015090771703962708703267411180167722250350165575688115520055914754799550456866528648127398033896076840930142325927559636990474764645492250244146785479446093170197265949945479094297659067283797400678085842167265880448556257104356391356836555921910817826674356907619301705428424894376174505219822408734119435890311124389218792665535225939495239151428847618035239891905657914694425798448406773959380147081321815261016459400455964482275522251326080804172809572320315087936355523638588053660114524067670177362408783351625115378150978902219761234963750166257106053488552724301621434583277567654066893280517666002366496637089151487750972946047669310019158829286582912475985098030226183867034289991538143123968135293858102184968273959349575982084038522278370384362642391398480893891707864867645273915566503385965890897004834469807427086405160741812889269151572880997075286406994761650111842295582850797009015631655251530485302550900577489756521671427529392883320605123669484473803516721695373735904061956368022977745922690100592675667032486838090261246499946120573810248055162243793918808798349018644493610459665825265755333691368899794336691100585862037435363802885412762553351821059255398839391274133544144921760923810111235533944081364381432257609459763531363295480876157759643523629305951427445880883479367135832887894909081377137778638416752909425312468828197820525660504811890786735747348008293185469194516079244724721817438512102295802026807707114455211896724293396264676920880790936480339883990364641217326002638581468873123613485855582218730551296489222634082446155588027621996632201619245543420838305448760388256096219667135971928750458717744971748594085372483037288850938346699098701629557994374382397045078369825041807609008384817627166064037797606926337802587503274162505905311596990487344423854378277579335897972091423135601376519062794766365965060710587428793666001249012656458752636063050341776357115642300642946686577393481268207328674069132629434287697034889672867881106380788513564516243058971588937651656185449677452800354092806425603978084411444812141131852790176518703264536076936509869671845104373617472414402735835171188330731052127278235573389828706920899678748005093091449889750289515537017941694619699577795062583123128025152734102777678610304974670371576172255730544314226740464612471790261871686655808029615569210084933880915323547837917045067119701795913940653831375767595371846847772041876715774106159355696488393900408089702205575765860694991416385616318119256750565034198288808219167617869632025842380960121562592419352212561329735950731285449333087591356087139129172830420488859997244321640142494306529625531726723360308972825294324984723267725948673924310481585745278582588115832869492878504902972638456277766279170828919187523740256766819677304197787281899707243705207580375708025729792695515947964379532560225647290144019571257610332723317932814028336873214384905630759484432203917509488972430449137613842310191930610350152894637075500877282259920308546312162466146853998727061997419075545832947029849264370197018489568699460676525571371741492032074741442350617121770739632917707958857426526713810396570569408941488817528970258559845313466283589664774589137373795431584284665000612888242177061930728235169998935703770173617920725501334629453946374443875554027482942247783941662197578398374747263188237047428638159817526173760380811290106407017136069079233507152220237814305658769724214226540599886516037357420824917820452153910918916454230567068185549590836061177490151801515685773029678641847086879339580479365575438267979045377431037546065743509283507047720895004699535731050348001971185063425475804492455082929009995550074798543536285644051013260040473444254397335131987197750519942254319966079973723931604580390345652768140055789390372622823236315343188497580021693099200976219636956257422678857062863698354453384118642708998125916948526991772302765457805998751203070756153025213875907248495810989945667883648313930662011732094303807233771739193065742017530662778738328242585050673952020375325743149746468834787059185464816561914901936866613348226881078718578248570005761263670678208086529596756183306338755239884485941102630436701489193089133625614822425076844306671732654290156023955612596680865786973171368935235650629712172128652126154790114701366811616687571494911821149182050620218540662907585573587177309941893696180985378743250630482320336036408978831164241035325355386613887068707175854476628217027939359278552540247200118098052004209167853876369397970648658274174114557172439474124075470832070657964755917525621349001083862209957885447024538771282169736789066831214906495662677855689704958115921330712716693908393592863851405019728372340773405108748615633338206485319681056113668979006177790994518693605409773175584162022750626820428640220082710178471192509499325065169802173378945870612388360405735019673609106562454256064696941809567747811256481677290012180551884149890528021227890228373596933790701505457318575807272508142489347438280457111210728694223620556359076703050290187793128067391660176712227642389354013255653410615785296989270035931017919916569015870780572313084993813538368801661137045368672401083986295920059825274057441226332555061059266828604560180791098512013981740228412366408573130136794148842410158265571995195492198615727619711667482602151232394152723656369279361652985855453032977753370461609821895087378570304747412332414847396339046513407280008111754335777974439874720481490252766569528024818092481662891978980794709422233316642613182733798865428993545425868630610373976736274377117042926625420333114312834779452447801759882937021450467084637232387565183723166743087720176881877862865095041532697325505656695783218698838932004299690898287924284527069570817198362504533234846241167121499025225112095619065524580996339633843738204095156683852484854189016463232821960712211408990063382216968307133196986255872349038439883881352301381561280485949405022297259951699299918887676186854740362766095895851022965744035552766574769552743689326257822992880947900537339188331552540420077092208386423577486839239659547669719121565799594513934576218563389345672934921949550436027722978048550472118130460038182928976164117994837565919511036895650428504534544101791625063395906182158795361609724103774823476741659674595194368517488691336341793833218208794547345195420595054777637160699623638622916799695226923893440749841446460261105313709809718262628803187057465769549208354810934989869717403813234486628027154260040581630970522898782675939463635435173332587805007190978477583338480042924501234919892442557852300856381319938095450154599742270418685990395420854666814429583014304995263068247432413056791162986835522065418944816574866096364169913754747113315585097073202695000386284000288453703693860739582309879370001455157441001668510032925063097618704838254524851619696436475524182502845022887339767146169404879265440027181380573123138621991209850813474003690251168517507540309811981016041499367482938653013117819774299103404291497263031222599044082647316499868277083630645342983961666611101143493926325581133062052860527842147640718180361728179347417490736454223977324370935403154615339193482846204867131415085245724367653158240038417359145966205622186632111128284992242872274077688541478632995157857106553461011690678865094866557452850300039280062548517882536874678740111945413193162514601627777130010005651131710898048886369564154114436595282072707796178268394680765806562149633922793070575051058991183646077981482319850109201021414939160763636479747456840059602847793372776062054953585662218298333759009619574099395135457651913033054998828496625598816141255174340668218413466134818349164777263011021606079363172351498748585941013212692913452377572152826065329763777942374242048338962896154280252728656138756504280447628575997230994557861528422114506088270759088937762178253678075075802769843632074758165387815146476003146028544537454990970122430305008890787380828903722739052529055066049346325839351637972334378396511815594164263495154302007593666465473437854699048211000442157703265249427441223097926879313813429701565205942971267588065003522780300172083345785407511072562560005061938299388272966835713594839954935033949163935056640702296292031684883899577278951520773626867974318477820554820362654270840447374676055009006213011537485037069092434176909449034397484212843263708112538433268986491168791970545867968341098983220419945669188631613130278173417364741247977819679941677378745713650869335256829798892000593137403673906922429132093556413155834179956728353584524329587175886777421253595701910379115320178975071949787328651662986611826116398389741879652274591112675937737468312600273578292164116835085237221127344344594481422977341012415165949262507575972546782550844445732854390637287938619711577726509749089069290871995863401261689594784616111668085023987311109453222471177871881307826315191012153794113561462446776582416349795935563508519802358968667671146396448898038085507336348595874719512652003618767616550384268374575785165711856366984474407002041263446442940551266678889133586957109456596402036398832194269695220037160492898055935297485779220037683064259817307557453208288097764855029865298951535105647180073116966314498745335257131519753629903163061972837777242994504051476593628375876324734180557700981871487534390930939867185765607506154065730802145989140381336498421730476260147271396164135078360195780585813205952557834620059467366292998293790934831243583184700451214672791507483879697013447260824820475706542409007755777342971207567897149569535180024318248751931933415198936785227270276725719179504557585682237711042717226476683934156657396809181282634924894341485838350352650675611792770973828925824323098234948735271525393528957443940354421247007352169469810602743731659750193802401021666293142846772166030087412349345283235151095844572637506127442225827511758042004826499872420062626649408151519237455523954901336838071368372969337975029037696675206264911815430623594880760096253907597962912111299172198034815157148419381083966457002256841701127184661319083397116079833426139412207017032500753435030358207208358093193318466551596301362688633558579705582671266620739123298675386265912900612291789069983284297572410899463438430051602516499484751217959112376783245535023587725877103199274330330407713006589860792291676293601965829859480346669385684324739721630704039468536835745112411481484965378439988322250927928927642317886191547984920431779221930212429004416609724187193661267085766986609591749749363589613701899244667870757731861694155030320130637292436965957254026399851110982077231428994993478992142749868666022334387180262844188118659731649817710595340218157621791701541612091224108277153182524239442946402844284068024611915569882239132128272746531253540292968385344731724150834660062074614129378760087183148105323020398675592657330567731229912448940061251987428833565435953992010819322908946399129234455872606181574810153249921251832259188648425187385257802303078395260373347443640241120899964219972698761770396121483653455781728923058418051721583106215123071225118925265373568689517321323075272762041069455194961189743144638270893000840542462105078934071784978070492832106131907915583372964862032890933365104832422898575999466453331206204219395996098414308162614481615397169102066012188434146599521451412213506195480700541684852393487299617830143000858217654305128974107468238621665357285862735197277747175476526270866109707070218207457836565091981548866846401130270142029731119133879060908518874843727461697927393611056869402812793551701029503209982607251580981899106827017116966733523650702690246151367260206627602368296268960834768255105190972536964100864339541557700696725838736994285809750695976136882933563299156806325760157569039711405204828179866870092752875855833465679378985749749340146285050672280263907889766907609760676909308978883111206156140661377362785658263990798373126715571797652393960456179728962195184476163147654223317103671800422495847370767700669464156747387658119439501691823778985685548181377600508321323548540368491128384549584819626261523768405666544393083900625553031749686942038202535239197579914330377480472031357824751829653063246468933818532840732366512695756311266594446323273832702948421999840961451255810436703724899039733027082323497253577645403608318694385266135210293015026668296334349727446309795404899669712756901473247443156187179873780421582998970353288769415820470062229216757669264434154769801605924803627712259470823708110962672320844137980148214000005860130269710237125640841230985545240512760178174365701631406758612379637805864448983461046101345126095795865507579065178407422197995754237900375667939452673458030750695267677050266240478953112855439462997715379428778922110746493028184895682946247945338344300653477126502676603407380962929750797983350606263822396672917393287209420802646812179315829062081135798358319696696292402354608345810264273197715442916836479105878534569811218573550687852365658918900428296704008015265342046430930664762013412175694633265548727055349013807354130128200035548633664984191007504236436151655835290120261157543401636803793228356207417548447983618503140635828339708990149117027919156824467642420296164788250947113149082877100500571474896801721964527616354318265598343073485486591856639007199852729792716210997274345971387643216159243744864838456397050364806235679472299489600508765629198810077658518692383677763438892829206222998462434415822527245120834922656004428990500341377212583292143970890910561678247534242903292319969648533589172069603195948053946892667136035141457099560964627207072639906718576358299217726434183320020276015421857139485223321738865913564853820841923463250042596509779379455579119327505378434100967016622163961001699413030374807484312795302672990282471030020135128786146424105451479454245776629132325506772985009102820631912715257908325866007106270743134225710635306571732368641466294723014968329833879158757308551930111570197598567393038455562808368697413872541291818617455327766674693209075964510763759469943829252161117474278931398295201944488953146454548071581697986973679025608649222812056276346053078437067432315911669071925370095206389928042354090379584627292991978433803635532887527115012625749839110697829807609395589096107985284050477053030087376751160555745210961650690694014175497553879285473001218407318792308029604689123925821755930908130100711446179646500708813526259284210030937179793817741807771354293381262552587638093809372392381483434353304604664047837068712304903399994482481074440003274993396097609369692175254956159946973266771211833064941076859473210050695264075434433915745462306246680534115250338116646193817725316603755351900592785952412924890994530582626140706100847059824619341371147134642382269216713403741823185664461786373588448269401886354568191054657313185011384305011486299465389325451731035173946225222591004101820433729903264688419499352353054908171582941362169164946022023356677421134616225184965552364318056804740955606971806606033611942186568969441591126768927984468336637682112277562577509441254683779735097605823977461030087908576731132917176796508964065000207799059523707376976540427289979619272152731913519561124869570136902865630100133537555273975226734770541353205353562321500754149225167965780152270770188427975279473042941243002415913951103401416841973999195194769992452484176447522144179928022947522571626052779263763802854662713525929656001900744210907818327987173069314058981454695712046788496840413679375078791941178511783136393789369486587088439090860640863954602528476990969482322258498698722816716485729895650108279217523233726403963020806755610905204979956748304319105623972664647981202013209727035173282744798527779190193795839643397685443923801513565701556589265364639396617190260620512152983088956860636671037261810961063565624970152305845877001791466346796227046224801743494423523509389579934009214183631347872990289042624914738714410041074255868458792006220531658037140024074257583454144446764764858387370522366536466631634531810652779982896243081368621349849349923430983375742827573326929168709557403835145235368287190888952965086893970028899957247490541494256289091710736150009315791322509673493008490029133992523740279856465828107916559558283295263298850763672880121261633046498447683025693403860153074081684283988820499235454492120462976022860701710036581527882058060296509703723876686643178591461837277475470476223845500908105483897470463651823948199694768779278288436822410767427509568211444729083563467864315293651192891246926760196926795890955955033387429891452593998853079847894759878159816847258615644632058192322625661829286404172213209350861560885486021988235885702225944414609261271169470681550004042027336471212993853245172045711622201034328403867197582553780159331172476306268139482750890615702748452051892127101553004913101329139038309430027400431939252983172179853910707012131454372449825785789583430025504259331628969534130325750244297584271055408721553480780963333365928027939040233617757379332021369940706317286068641961070776044045291545016302536728633993007334711696364920575302174657689098097191805718202537559277283936966039959366802137522683154838652629745884845093801598939768421770676246806820575330466556437307588221443554463137493729015494860762799944389739997576239173762723945836913762990112746176918651325480209381099898325083737031665952190817794444837518036039711423290677621575424279906959955519277264761175170708285645334059794065023330810782519900857443236499511680919039073439963951924524400746633339562129726111246517107736459940816031661960907121414685525387234559138008785165991480651266439273280886506245759778389658257308843326098136781556513934939809020593991837598868398536084294358483166744388810338487403608858262344144418044007557021177825726525541720186260713360075772970700504081532899399380131890365519424976596857297467798206593916320392371451053976556876324973185141355370951984007253907631067491190372467424431106969607092682822699703711580440026949006820951685147960834252094065860549836734546567357034367193478581495026824728496579376935589219551403268703711111780361554156776951904778211144184125778107365278218620082112189215320888473066233131442610583238400877112706420816908077746962959032185101981330910985215928640972891660677468126714633437003775877664689167399160508179793922868780379484595273504095224177456602927716566602973019873700684311142207545450195949068859155245043170477492719756596611359221139607878682218979705797703689622013334777247287845567345704292986956925535509738978447601641526356026306451849111244616746352568434946447433434614939806367523600532152072771958594202098938422955602607760579416365918814841369451790727474364600828122543284501825498342121198129716927230215082152562296105167439837212752597316762786959759824267697999125313238338488340604916300921199830633589197168027503239891893918508051712584153014415818062557902852226725605881579025175879398829021798147349844805222337254238747035403781693455957444809171531600650670215155494684073026220047711806169124155261531968988316537642601312507119170447608527862346111523622864466618538865228474670046829639696598420076011251412586826487421305687071372408011756748140556211850963532422105837752666066308118654802996854881649190311896720145336948839158090709915357483490759605190573960830243521878977427747521972884233250347565862868941242797020374666817265770028830010464741970068697768513679550329207410701135744022387185065409496742702483140409991481790393977774556460017446498237540872606559333803771549989075589158803486770850643309859134623544371657651275217220740081891069523110695267358772101441161752875188777988241017364746551270822820346616044805833578160552726095766260582009826718584412825772708668292847073641347196637933227871032101553960890386502481000295935785979510789786449459368704959716561387640845975469631938873465214614299900418607994552951347470771103878608878951955937241244312614384734866270450182721168341865147867483095407406100595831958564246966395178866298465950864105643481153091324495014975425091935967376055668957740737478339972451626018714935406907381176565118012736870418746401980481773599612517231396569636034639382024572741928016052999252735896158235068954069191327713511963540705498111743936330284343559568340593397770061997558046654113508550117921473954725733884398218896532234360890174595105015584470338643438245220426185089660172218011674994097569361348873417682387338982326525194223669421267254287416303903766274814784218223935019314251268040259656882010432670428961706615561118382330197579505226019544677650910416898148421136568076891634597342807948699992436674036171618528351097760044714991915687078526820962244251126189403216467569958923237841490046334260150497304573340340642562164249665947782021018502979000075372295680906566438396688657025942126487303056418586039173536909503169695565647832130057603445724070251744619581633941966522353481535654442655964325481334551724598356456256681651877294606044888027928524548340638761581679028000963063071351199671733138195432506320224149704358824407478126277827493938283135040190939445331407507628532732941224467628261320755699141015563626701197732056789290454090234789840677351004411332882112976081557032930764967493438535005896473349376572856844328472794385176964930357229463761816639512320596679548266148087139283517637398156866130431310957300138471073612214182017002652856959327407081488675656803774195274394951762320639914428675177363538838364036372637038664464308608967382746155287988870598808954857328236381611356024848225305515189979933108150113485190844344315592232481553728244991704006699307814737829133491071478488926572106166928451942247322178068476144266216797361994394192034307737523201436954563636879096865902631237619479623597653617307531638215860033230195870811386886984321770362926184624152651693537378770303339023606072679817564125648396972224583842079581510406639724198431628164406945898086932253283933129879500409832162293147526681600956564932825433836366450898160111929236053424390542444797090650623228062444207657289438159905069586569844904808683825479656463239573297809106023495975179797960441971964509290676559953067136390540519329240970729857314743112601751164871387846558771819051079492444849108602883108192433161081679818251466981522774868168701428187760908982353154571342808637791759835683459333180156795570545892416266124555864757384211581652319121805789436311849797535654891047387365606711411555759838528962670193089240229019831742999393179439102225429828458488609611113955551897120549802699861112452021887022276064388079951298863267597423093425588948081959529169223042501893452782024391988541126627479163237982302690529848136446097647553250666316023781387335277197073150633539709144551053801967722033713505592150512392276977444792750449717614178436264150509573021494545063507410134468438934714924590028331862005354863590039341848918033966739863149571674824521774291051947318432334137071395497884112579133733898273757391685775651204027065179779697091284148369788469674141266157046934997435040796701269089012321938686134912879232818487343852765871356664184202139519857623981322062500139994876053850384729418869936993850993233864427564675373853694038660148945750197491896188533447825226055103181125421658075946525039928433025642833491948689462443824081855750169915622629032218751610983600012806523771513989408024239817376596372718345728234000982185252992914826483441497148153858695862837908636176356286136002581945688852197895337902250563319291381747554593510038909667921062364884888843411588224391480734749315205943462222984330490682518624415651716700068587041407481828979972013126372222729400923049599580656773343367878951980192734389918351578121240606600911202419672714245768429799796729683391392870462036866078554912633777848593775545267089360254756983058808751186604776489837619926255813411979668592028736764080705980787609419092763265412386555095285782644693591506860769219988857498309665541862738551428846448550233623484930328424442066312461687745475323943452658975843339412339127387137100928059661020589451888680011252324246490082898176609498048689666880429703445709140974469709127126070063577537436140235557686637008341796109962625540261117758590647860579091076706669421404759323824141070503486348925801285406492191582232588513527167483296709104886234751823487158179777667006137732946823986454002109612832144065655435717880428281001428848609800007427823777613344947423738347261509878984810268885643586995294663576558528374541883328234467797778002607830535939142017526749718192525042401724405963295244222077874110877153447992607688648331515848109865178757666281168051956334941931843704329264032192942428929759957472709196887976240680137429820376579251794406465685400872663734856741132639708797150877261633583748076027893874654780651792145807605760605332944925349165135451091787874012919979310172572303647574779528544442397462322411738583516063954807825519548219127675786955726426779741873080375229814871261453208218769344777411036267993003735138956531601844393142724367164198277355504981008581039291339100622053040954105246932149543693894788010819158434104188374522584756933770380453362000336651248502767636821599765128850825329642589986436140487390629291164626299046355289466304618896979708105626273151097528519148741187256467070691566055599245685427204745108562427322568791032733975201054142523609141816814833693589779169952590547205455291284752030278400420159091311600531902554310455269748134659959434029053108625294234478882325757384768372214797257119158778517418842109346406708127101844994436692275763621032318080650646834586211312207466182347905325598951836640804475202526063912774720676150189687354205777942974851316512152373883936485233352495388640386585997154435410089244803400521255558456111634751796612951778422255632472268268444139219738933221876381953854117394187913094602211977838402941516948897460404362534286381301037347457696294972622210685046375118361011447570061345206344585491545129522863888178472153669350264798044242236937861437349047275724823763688865859251860435326138004353064939962190726855134496976779469862611449582148603450775338614349684939039567734632813078032898808645454958871249240147556158336369403056034809682739420198221344687009703645194732711794554207669289405647929713250402909218425187215848659035766392358572680478932993893884557705071196106334348698917912541220351363772066976968876511643686424271613750025610729289876383188901825982353212254185344677976248576609687107735457813821568294783148771132385309556839189440447061450488077979891368482160567389141667860916024988435376064775851252407629768257827023752708433774878143415463902669224674047565946474549485964669175864966800309873926923168184862384074523033886392927120259706679732674755675871508965656604337597144871335613487173776031951379412812207913336200837818664883593869716212516877076278231449568878777946553087882832738599658401110457670159662505633835339811350819682497400979138549979100162066505371971558349131261637905911588122975342665725158884537350173804108376031769562411061984281067408272245512896793735349060081247339353908337556697843203554832019079055581042401628011347557316846665084670124575758835288003579754622681379608365046907850277400516067106184082073939606307934694702509715951554179570820150470058266374712631054640212345807819544831559556806072693666805464090594343779221445220872626799565756905149061559437733770299120806104881079712866821373367115733077417756190593665267987236959372453316072289484880987732557356212232786728985708915698817739435278053638020035772952014029943552379493167913034779934237398388626155806056788661019820228916650847846836844147627567268746843016151362434685527949783057453010698941527531132341021927644827183137611165878018349017592354452320611019649509920014638086436750457966759522155614508261052121999986329541845916966450537793127165798404872660662388247333739718304553664451957572503960137136293834031044369089012178044305166512840192684177248448928670851791181264972185471003150199056542298679109190415187124755116458261175389620460971276931849973853056614134729093071903957531124103074028469304943756671321782988752470009948381382869942251306660937412912612916245143658583873181624389721120007052168259626736795187433728106961136409450329016858945453372310265232550886030551401139750489662124606147856149687187341047423174060996735295789298669392073710010585739047433636909314343189416196051403154881701729129593151241774342969174222388661899636361535540982569861276964624060965970443141159047809860282010829798809247124324073465949849591325428296686796399701026328704970181380135383219565116990978828362049622050354097621342473804595170672183011798954055428588183087664894535403442315968879686396860903274893412635442460746135856936554156258204664267096471742611484300115274783372017810094296717069406244947323778452773914988084095932838302326398139700260996317910902605032285793189373411172349690415525379296638579602801820112744892218670578753156860732694564947329700849476283899074646102459893156625996428918526576297410266804296610520552862534821400986672610229060777119525100282312397129618101406766943185453662668283636605905128955310284593632721432041633488285332023544106288559489017738738726222754346471783430712397792740983831414903436168787559236797530694945731860743425749522859451656070461873065751712907508029431418222657993041171014855998129675846260405631171739567388220857645070616584221625967853672663860348190284041664296982717266267557682315792983997138527102592121251368548177140222449252376992141898548742346922230212777959357434277215161372082272260646069442376060130550809189671589016182324518672029851781216030475304536956831042657188242948103065845112813218035612963795669651400766036745227515193316268842286958519829973717109605297989970550733211180190632942192061461932002783791623972038973976401609825368368549245285605659295539725158856045736700179286117994421580667584474406960463963832368583072390197034361138417569586212596353775951078380436278820144934464873255840034989146906361755930274447327312230214714736745340507478776324022335252540712245155285286599444613962505699167122405472440478922860421861475202320596294248503453269003555322239923808776681934209392113881300580202602173075001497322259046535986880056697874725331162777732954398244894084665119255569794318974683556318072900742831662023236496068150120321172661027374431934339139626990449966470827448869984524930119230844093546258615854742738893247596215948266921329367922976460395243639828146365090715376749932094536177852305000591643523933334447827230131412472864588037782065708987344987382690441333106314283512023933191639846627911433078438696579390931030568183542326598683237748902442052826990728656975719882962265005643306265102541955382938753215629654373939859200956313676092987587429371728684815801141683347680207640083483958799921299654430220732602226234864934506703502337846376057766922361724635265453548553089365203849079882188440951882967339760285986453150858893410045329860976327038174973999216138667730678895865797941195663879310551513908957183414177376612972876232452826039581700201542418804698471683158429093657130697385124422364210065986815711656982241296339961995681394803235996657250838496614755840803226320036403028892707782524936012369927867226449375987968676729011117917328726517956557930526863781378257403109097283783960973123588591956569013010541026826545837762487013270843646104142844810541335237224112516655082189896592448310068546254821508397300549817361752386320173746438584733813945536574317853382383015262631572126040864180699755974980110379946495966123441701854452416309838147512656527823550991356689540397776961867974363073509569815440449561425091260772550195349455209560488092551737180507955161751135829684555246776403940531270256454831446697791805206153164696744243765968771021389283787175259271346476635044597579128797335265200727297316393194205542126314020576468042324911042024748633832373618569173270874259359512316302751037517937659470321083145722000903271264843770440108288055698486919825909122866921779448473089501183596133874399057345572676864765363504364044809105936726199193452637772760906091420359177584864473498311988606906588080178919592324839383117603842699420441748732327994744085606381817930168207498167453055964187991917046635441302296458574953889330556219482766278489767970225625302431415365526108687691429123459772861139895485662557234636758852989047297865620265677347479300714753112409349459568988023816752349686647577120195213968301731872946926693061135565481281605636903812221968494206566958446510212419976501043361169052002737607766353127981761208863089412863744726658601419324766537753131803136981520410769689415724754626810372655675034921482625600734250971371385417285795580471631864857676606970893691009940641451630017035710028643839211553877748816248475370222738133867299000196674194124746886201016082823120266932633167530087476745131525042442027740158604398171594413693127764042718707907568351945614628485064197001163955113354324590833098320429703802556770521498645092011599063958083730503726333083025065802392735942714785007497248132661968206863322215506855283783229322142814153396253938656150532453369566699799095989680378461440133779348457122791477606907776651329868460291941641856661827059035386402774716395277543837244689051063253056559990326900101855176254084156178743552207237976006380302397195157548118345460170858266647461353316264156424779573506162969219067223481155765791356916341561536677437961847682942275898870137207822862132393133678240378773518465065655087710454754112536683310074118061561101915152806706193326686460800651511766763570631606285803346400037635943722346584027795142026344561535523483401413727519470930251641740632933926154090170572657995903741402812068074031396964136536018455064681327798303529399072440911607497273069212141827396894076145112338223647711086443422747549084475833046521910432917927060761877541383640418087787873990803507530940467178057053515191731462578610387891585302769257659770108082295049737763363471139019604416077227360818189321744986951859138073888219747875112277561167845088294440027250295991072164216852503783260525522791973429133087956254088167862885586266401712323543778640446115084179570563969080875168909997981262103605503690586638318686640835674137834351449662744306797587736964357982198172780196997554429786939951217161495183838057047056568792956038378294476519731491602868671727583240865727144218825978330296522658003439816229423964233261479971524854688375737225025637649480590520204732266748656257628912551194052168982435173255515857363858826729831987777578385451268134985442036127660445766966576696261139369341249838127266062256058992691141696784951089212998216817753566849670529497235040798791246248228239045342842712742996696419605777251208501887444207939898530646690917931443778531691236220518099570897822495787415125166246483594535577286209315881035551540359967999171951915995134594155395408297428190732630382730729295702385760624746881164655592242691259008106009554229465253559650711359579050804976465048686693616027707129352450047301672106533887051117921081613588476540845847395006659696642669251799643750144341210824582033421992245804782648469776982121492261428435066315579265720427528276164828227126634508020861861079496448639231447718723501319094394141942406735156031196691401600659530707366519285822059942048252591658103890375826346012498580925062607521121859982350938274088971188041079797389113156489472879155466763623525848003776754559916975615055858743040469157800805481108439916797304400347779800791554220808729443816427003336159936821158876983263022225768768209158743357613196637068734451031172302331119489302313446043681975251661012705092713337130374815294735501445521057364604786292819867324325330677804658083422157876936227975292258198648500785923831319370119065341798529455114272878820617893646986733568971083073687738847495690241040681091667320126637320697637440515812571333572083403316880203286444502014448271088544595486926857139811436940038223100349758606437938725872292399483107975045554074061321205697231445591793112898581134323731183195769430935790159347187349298702172719810990827705295664694751154309465687340840644523299374332875137412234546329556050696574981929254866149361761687166299936320005227746672184161973616266415885778127999540921964936747305593931364304442976420675442920828304068234458933200832499464775437643259829110343029495552366581525494919679373807970556250194098205331647151599256697803232563944883223012588827288238245014037987022341079112834216583340486049817347575375987754003150501921819595283455367668372386832328262395135927065024008481447524954587165677359892379262213424334547306177606430066897492683758681855787842409458233324894751393407204985583621163692184221812764648170073934658489251353479059612140894657146563510007386153582226895743787779296202198140532674890328376758624179828806513828768839116853911972613497735238355003398029327142101833439895390101760121977753677830933547339264097670937724963118547058434694232057487862301762498492185913263355146132387545186939213452206065510080048934177965370062984373779007397853587449107974668395664687654064861450436774616203604121861498475677204242591308824636521506292746796736085149042753501123667774906639539548238080936334001197588368515913246928813840737623509014213654427689997555586856802633900325999287926087702720413476195381420061874314871564390155233230302246047938028941882535454428628962896112298557603819117325261210103056122463013463099952905639492478826064036679164960920973854670855475276981021915649704283937023201384597899593237686129717282845558139892560204615566054761323042454263377768347185125852418701837871724201761730427526423638643598786922486111231170042540171068738032450940121608979744388197594904465672788420390543546279292876489956389506883915421178511316595530361941592695718517567882092155684979111022932720793663372293540654008097431050975472213641952998154850208164004574917119815122157839851276907868010739873495321523298696539250437292826536851963161199011471010740004624939357188988651484579363359626565934997191616710036205929372988909613524537353120029681496008413693350996437412738635602489513607450458907071704155650198768614824113917986894404029757492550712712652626729560908920595053930404243847876263305002304390000706935764292228834613257763215074450114329741953718290388327187446083450792370494987411839658508223366457507170838885238028472201546997615531799294621477567260082868281393966241255226720405077365223433527162906117583252961446056375471688044860809571296965476145779248475618733738498723646990232498494437484057871940458679882736827040259109914193810006613791667031970417761908631321360331460288166254949081570184858382354113331277344987497512883230240318210658009643516453985270028156565219695909408243101003481656472853027706609062807282856454132399984697479321313102940702880661413879975961399402967132220777798298930821868330255501133721290215188528871153156755441744369095054261275173788480726019481806002877235965858701753155150477073897275911608335174842760540933587278113900299456003372641397548383900900885213539201872397566836429312806839892670308907766960559131337211421083456994531805503964961516675781317523627988678995852681971364140389084308319196210675190883671815711532855611684267070034138366735926789963049533877627468730461868240089992181312915852463143693332971473286101555559072149287782294461082840761918444990705697570603832938620493914116236929592958212016136603325177287125234099055550647174224679749291531006180517214437219405263742677896593701849771642300896072724390834267316157574795303437266848202980015027483463996800034808761842197355669849483053500561131392514482751895578926912603933746546202811584079462521604565487329537672956391992099176298686753412882150269823046009834675052137264967870802633623831447605345072262193346632984597014237484854122497967452123105574168501613905252370241307173864468499873650496978574982867634629963760186793648287765308822028769459465354805398221405649389111181417478889180899015001206033030887419895737473662184413833277890694405997949540701632326964087067625003114740710494401276750778280604567799881388732918011859411862998440744630374527203720989507258159522661829367414614845888257457500215788987451299183142849126432533973173804537041527051662717615831456348420399475078311667605889923859344047143596293282484685168710605187517749980634907269962803693925271758231794121051345752078081646151803425393014636041637827932056261041589344618536906215821471487252884876071102304247957849656206979848098926251651112299626463939236680163575759008610260488059736517509363275372313883045965631012174125227666176535852612272166500604601544551315207517893472874124891550122178624506463120801941476636683914222175667356754622972347817918567145534395346321313816406739007940266136253779333192414489186084308887145928007837625057445122851633278225593393609539085972873209510580730417499180125436873407955335473094394645511316346087444892121467243235202088626171700416088349614911711095762655530263152882825777688426505731107859118651063363262922929102975797085975469752685392480103683497085262976528732435892801807913438987187320970932500686185675002512628001811449692584935890559609430267405058793592579578496621449474999745996530025785209838368571397030196803133824253868700989949347852642982115607142439939631790096549103729622064891595835264907391957677306785154680512061607352936124019981518003041729081966950309542320564867461693157628247025530344033098702528511878149870936474433074678604041611463643214288247332091715433340487807257690105502282615566277715132474343309343308391604645507468838253416994517722917138672514692482882577133165375980005208334593800256841579683434124195776095851929156460462987009086270985048594770656067836943036972007824695091769795635181327528186969039735344823549109796785777094324816726762674786484087538833365037188864653818084705311240322226456514792623602802540855668837359471401680830155710501568807189201479196798978696523289449142806913628900310675751719478123803630344813614852071277290791259526072169620713469386035755318972236021371584349918631434326899192881966014362683012116094818013937104804402474006786305758041046319899451339036148714871102358735986437042524380809720314072791699574391855360334484363054811406232009986526447177331716743478468184027537395286880034681048387188280869008190790921112217533429541620393091859871546348846431913081709044071598745503847907113948538274887934678301159203224711436690121922528429160483897187556567992727705379993110201567672788625900262419362630144173436906936733894148657596164186569925943944048226220108882095493508819378498485198222575901124590724565915777568300124900629466183084432031867966237403502212880725549070454011158174259342633676082634734716106036578357073351641989788114349692718541890717021123777825268594496319952904049373419640757674024864699733834658694742297666385566018043336291373958492279068449984800180129714324044063931314333244762388729670771621807411764606777507049466233671840779703899305729118183883165508113149878104127562580938947358181314689636686457500503506634342215387740452409063715516206405511915221284788735917081153445996373187516832636611946010010619375074600296790124695397761155723517912594842251401121340520401729157624592811878730747832660266618254748997019270917259681547237435355626444630697603273744531251524952537628456176395894480397194159551982625205761902446685862086563330007378173880225346944596562518175085753202797819861425357821645140450982888891477134599408981932872822810725579257606448510279852095452955850196353652499734233329899685801683081675203058344788399643764281481491393769975699497354442068414679851856553666836939085181977953493245793823751584152030814711697320725202627867776074855951082614425129877783131163336815361058314587705102430728589271629701798835848785005446855357897091739378115850306139982301326700219804658401583848682094031372837488590845151366967370209241874834639596498152599855392068199260204004536945332926444159258536275196340666043444691092060040708848024211391087788171511156200924646716596244038054180245453472529598592073327098423044714341421209530103801054006713620824571532605209969770354990668635930184398089314023504980797085171157491450778849938955029889055678148000447036940967915489052850493532514109955992297639884740488270618153467529228634623786069150111512893880174131956354462163810170002740910060776366499139892764219428879122179159682005348826909604050244742433015044768955441235458203273844625838298390395279539342233913201372198753854191658137402608634958120587952924951920117943589896842280228269136394642613690315604780144641600516939449127881585160284188077050828115156054873471564462751673141354155198386117922102886878189999609159496737673289073359937942025309859224640572736055992173838748668352954980133863556113271766290371661030388843529687334262222213211573772569542324577413125917995756413133976922593475767738826779180995189931380374401414185203544145562851253622822683942426677509381028482063083391440929565689391648964043305760081531903322490730483097685318760592048907931420524031052376375529154991386429971010740859851008444577524119338598705887038864195418544242485166962654367068944010239222942977876406205911547744532385640593162067989266275233310078095131820639058211639841706769273178134320469598138480276290725086505070882852220030144554802367673351345800559912022810214653045017320312990043301345432873911643606614204883863706579154907068744243327101657739075557831419185022131738126200667373981309055939854898356248626463533082830858914350606058729391689825877673154821770117320409067752104590077785150520614278549383659152909139223433984743991827871372825311609593299690400292378244472372660859899637933728586346583059012535063245496833506208766787255675846222863371076604626130845276110038691769360066032828605466389945801011417863303239007272879652481798056536263010371407731029902746590687295197606741207020357087299324191777154481515732809311659358287444316229680676643322494173219946498204518093111404397777811649449247389662940461462238315444848690028185043624395923708809931192010100662212240861236637841429932695260113954076854402565926950596698793610325481648679025482555175922273388547911262609700781812821580531305222094807259918039818976456893806612079621931934159875245782989653146987738100708860094117860239522993840162618433658785916977705826039055785585781925050834474528055630568297823990739833663820459903368778956055752714900040014596667926659471082971379479675784332309330103884245944565308466127240635923728964999518238284386729309461834355243327818825428218745101968150202721655399469776782907517334944743325875162699883887473508384781019441069166286286855293531762282576044402706077079219028333546700880318063442430376126964751310602835467263294497491482866844106719644587942317260393284962479827754784091525098484098667227227028903473910681405569536612186322805184411823696222671606796898643973438545216336526589675297885578812960694260282087709240204623929673930099138256146618642304644059100728362346237183639592433097767474353656093723949558487526847455167984710076626020417742312054741692178085133699565441752571596742435237236754087933694159581656824666942208896650128808008895200414500786908173213377032161804242042671272344527212615751143461079728938033475170916800027017316010294658773655705535017494858000347690693256259076830382817331601446535946014460004670737635547273903134159805703662897585659487735435182135918182906617841948266654559863236515333245250897775863139256446033874519926250951329080773366821454717129106961461868700696769135896907378555756594658355855034116227261648696197858715528681733588299105401850573348188566357181972960750434527971371813324168776133265092027080036709760202403427564213065146261738223066123736774534280461699212314437650367251741766598879100351414610791615108998879844614312360267518700645104258716329059255741397454399726083835797560152274216229022008717654935086110040282773151872931040444521645526798198860655316378367607486053213643350211024415306611027052075260567485179176275087986270785505321536920415915083027291777587348692216568284644767092473524486444052278832892220493307722144547562289393271740256604540538346255433883324539824495053838983151053432138015569007703263776130095409485324694508496730148106932851230625544342413577310051773751803830115247203849930162273651659419424004482114297201196432293266026415118531613689799562232038432028540616147409301936069497938046140301044451788832209921131870612842099626797135940997309828858342288573751449843489199246363704390513174824474083775846892755475997749682093884653149056243886716612480579818996887537170908886869300593705981069279361809967757742163666357663317342208549841302555006861892635329138074586013906614224495928206063733700233211715070277225415896666077204430131057828086694971614284747952956106239957693216943087093711443555880743495714772229933703702884668382387841775921646581405083492896993555794527936587545520429248637446611614602794886711081353118560478423188215055850998664633669006156672356782791972970172331724288761970819158140759755775700525339351510576539045583347748415789288083518727293874058240552081665098585986176499358640118313367591337044189795343677816029233216705969426270186744760172275773213987098677287096605852464512179576686706743155022120982808648042806319256023747320051724646948363108734736341527045027752884549727165839495514695827000431418969085800843852657681545799574317959389554441940655636785110539356925903586469677699419702579958544975947189951917488935394952859370454296531809266074954970833436788494788534855468133403420603306164519427483649945719520080394857795788684550081426332307700414431274591560645268679509543836210454237090420088720941562458593405493740936552360287885014324321463250317357035613164327005829026204939617938756323566118351739281347136246730714860106832816888429078211647236252929273805496680646952521907150915819150517266685750970525700962406159044363192584195668280887591099120261646824367094476828175806623316720829808149337405121260241271218010562441963469119077915350201603917583621869574336774087382035352235865857999544225803265353782411768698293062730369179809798518196437669048712545303585149185458980396304404946954766918026675882406162380356355076979617917280490800178611635089843003136861512028561620572666468079832348869122553150390520743104216379850123580312515618705747699929965276756257755935997598760579052303817744304616300115278690524335418818070928530989322280105646132987081972689826205788746908090125372540866343214612351350104475504219388494609419564968164061762541369151292643529658858318404931563327869600728770534743034019272626825439456486217250850303631578581194315945488831876182448484803848220451752208712942167876529583502526878630726636217992623029009943401364441395315699626692043987691328635121208370189343986376349903126631041240292360386678219981367959786496419303404424223352931206746142708763969755030558364458393920969078558782731908069195805986237808273920974294164345238813548146437960064328735910075317767740259149843255634479654774091598110683679593951038075010973372562119176774593478186439411296657661991355899230723968244906621205539377830040139930812655424121192740994485210161335353399209072264758976703050127065436255555807469278613726246152934813943183213100075428247039350088487492257892474157386136180635342230027068648596435765900072773277354965883131501536356765870215721365963976923107991042041735475146878172778904394840026941345008238850324681013124807682632491809189914951764660312535634719874359870004719164222187511997131777565261181775215274611972383969791689736320091390021908858854263850613876728034127689382541069228430589064201493481528747330294884562938765406107899640196238874649812604433732726128388551947701950551851800157320137058270156368107497502027639122168160139020603502774152920676960791937960922947297216291024130470698924737819678536946297702590912007573777109198802097167661610144613410103851274271497647422561809711531437636082790313488214775526907894826726574558992237692220796372948660733747601413297129359788006198137732616787454118215908941693518955976884713590002289201174777818384865737434094036230142542074192573251663169520829482440538677887387656599174672866672621199382013412215241086912248731823641461750730746742649061972445231052647044914821487258745305719903466542177222604035643577263088952243375331433104822992582327059160988871597355265046370690913318579252273648379047309756143053421375279243014679598912590634218615812870552433530329956566438064967700725220782374945697033179887982551738163324431412920725294264166051528895195209756040922010633066533424189415749609789652243686425443647914596281710775660417974464738969671328085476754443015558478781581015321180350026508614550932100550942200649297172756679397741972333710568467934480880161802892900042684361324670604091882562921590755412950435871004841007714027638536346645236278272946664470669539405821734777620760074678135350054155892016604267594409612513859034037723254193657361576357842713032492770326460394138298645350050396192138563950305837565529425972003489999129463892609363974890612703373479978251572768062699242937076821781720574072321784706632446687509732910012099064357958592198087556589099918526622002571806158680436816695393265153345406557210609467088978071350632465621236026950778588310253089820097413760216579357431886754892916639275097632608109807821602820653719821460191787055946455739754657709390542022914269636751926121335153016792205290593078451506420430633965994876552929332021977254645700531004778439123338642262335797274937568559635700092860551778403190611802625379592245254392756867027192090302788968432793471215446514064850987423317304718400267114202878389556059775746755850812262862888211602955810955834285084416055536865793329527179228615261314598136261351898943487090301645631886608621310171803767563509477221517433934478246885552205678763008555888171775864517496931070775826160396270000522942154639394919908721509943411856848561380200910498386126540625541306969863630115566073113784763546348366024731851958768245418697034643162242458924932342433275913735967999344597426192594650577224093332221476995959844197881059514066532173716442596851396288735499301749886038798178948871809041771082657121677856776394792671979233369101846051888046704718182250433861286569035333277090453986067672381924970809628791777333264329383089494596772292949773849147814172964432038058283747306492874335271192958867020998769099563345112683757720680084370236222624042462975677819269111146431829105853109477059396534490530361041318898507632381418680965141030763205514814482880872482296774577093435012333997807519133831985248071621089695885797912467643073337387016109283609429055713770433323463204552682182539596103025936131763205272607016747032183426141559812024409547034033436818359120231253646664285703655401196158559814121186661984378828913511049595348353611827371173550125226706437006592860687994052620548763874582383536207515049197788286855568057569680799238015078874571023905805645985950165535144665419177457220733894780124759046752941073816399297912965388919690473683910134838317878950491670555304873951023483740346723806922195468482641256805942557434409198181155456805776765161633668021715436259266885750013723454229416660970993863985111550201155211935397210649858943915005647913856949485144134844521976539729121726384747402076244568818037241013922204383792526677166934057544702890017014240545351278424529320438875904750455962489322556730632674972092490565703394847520632723483202309882855762262118666254654297085498575003700977301996027972802743265913735743535382610127845396196800090370617008033649188334353175863909080183684292117190784967124030617205858624138740968011607297884058487708035593414404498894341988325606445213609519011541565443965134481662170437751524106247860678654174126574035640826136996861057775233306376676890295752914642572765243833662589338652505905939559207196791298045467607691617279475292372549203268250938586831076254044922729440979245393796069491560275094445161390838703232085233529992744657515463688697561873685782602308682790798334390910043551215247821809597108481354579532390089782281219939689825466302041987441894457001230405394454513181416160911266631910019216320438059222527018706226977653021167570903573023473833475947383902619278272425264152826934044909563875477347957259509085705082127718665966029883828501695599011807536907845493928485158329555927323376616343110320181274201629456773506469348252509604465141029010097669214624701036870140888829950749969494421609102893426664168284601761773081975565446274863126036796305465098966993962831205076032661858854138817108648030337869944057697586030203455064092174932563014882502030155244608380349374847581062145075722510386114332185302692336109367120239740360781717550306067534568867853109081117286785420791011291562500110487602130982191146757866201406074943457096336863189665817981709868336129976578668007674827707104800788142159393221693389829924490837584435907305404151639103143670528183819102383249907388271160630902547711892762901249395423497756751604058168791579822951780564297303073443439395516364045673045233515393212731376915284612958918044322269124185897350944939533827105243098059081577257485226979286588923019205199557273440702941910642317805444369373207932754332553266300200801528439752572730038499300048920257825529047114757201037415163357605734132273011697879715267105961185985050581716605606283504462032892754061426929010403551415483626220124696992243660187843490956155703621860523457906505292613949459950956422557159776743817315636047162266760153339928709895125458473891171495262818194179822878325710529161564210206183056552864107799978421005221371518219825595084881282094694176248825558935135482876304243554108211171342420648331892729185313078453167065154852379640784652069334728686397023825185617477962115443649144032994556826836806335874732704004537820691522182594790515739602534399377885741165678306519252171517107069227915111310848021614133262207709991113069325336921669101600746229890497600671700929429491813825839478317118694391769375079214895326204633787417047284122396697426818919072198824406154864701777098757086166500862494628787224291500602239218850089624919375496794938453826534092185963524995155719267874333743473147807047284635773519223322950460147420209704822492611858667544919214283047728142411890715805068476756343450680920283636238852331730274239734511213000076432759394957752457594672298970768151493402865079130009413070488091621757272869349275632312131823742258601931115794358589203616333658166426207829014112394008237476087586361429329353674344361861517353227478507282916371132411250695966520596708374160154276572931640532411518799079337537068479312598059584691578166263462465476969744649122262673960383061693126600112182969326097313458704602717836770080125173065340840236266586696116158150694492105910872830555935106029979283811869663662205877715481675039174699681174258808976777632008320438597294190959272346154402131677681983111249898659842118789035251704689645162377109693159591137579978544451155426083387393660919719175437061318392161561729050592338555300873695650461570991227495565579810285955684693095119953320055454879454553868941351536212835599360533155288667475888035599333055674317892497556698780272174214602171200288783611164382957059062383854471267935908774811043674088269650604397538820860178267641281918314384961359712128434903957741118715257124466526548517485771378344058649363331858992350885685517943419196182284399990894493962930721598704152956240493708828118779925979405227529177318807553541415855691049732245141114982801708355159710230538228841830854938427280356346982567076890405834986940153047140826720512698270193368486266249450266510229325706169950932411503258169280440617699851010267149626817839800218203898037987739922694442468385893277303116471653045527819707977006665526706445828962340436054170019540596920760831587845422889442664256699928857814630945614241228821958944455542883933621091194188083370351613215412763134843073759352537736027013469853540874178253865722076561335120357255897832770065408099014427766362535057490220977511454104691103650136275627950935410150558381393242023687504541813140391822770383465312431346988295224495955831380636143931787011351663725273919591038705639095284339795772665459991149682659283568050274589903528414189266695733175490066365341628710761291035855463986907975972589338081981162686392826333866525177251294886019136064868499444292305501771123346183735778770890175917703392340696819482361115714003217549354845952090717215940096326328613920437643569054126980064643687128730511237267357151377520194047232068136838880472468939887533128234796356877623694972875820988369047268690079262398005218734900590278569802269491820972177229917159327792207500263767688064830653448401322451149631805564847197956139729768577118021800386367303076157387437320173477256048177323167020957775968569484035844675268699501529420851437670916076104980604223909692752640747516931556410909705393303126698686333649581958424852768296052577005736970083053750067646958781853512963062883941884602807220532363370572899281485416298822408471115239335201086523031894351343064193389075382654535600843347613941921609186016207157941103008625518400889984525991575883945525975891616616769976902368278177750380926458218140378277837509706533039088668151295512628171518021906824081294344970377534296824416814377605291116983473384968455678296711157565219583757122028794385521159661678418948234946107379640522592457096867028484037359395989505282059220547059194048994329152990465959883153114365969393789089763120560066389686947527212035605035935316518737263003853435819241295443920321322039842098792489726477084204895923613943801012513903582447581264329301088453407698852394430525796482212817196729133386075271021599310145766420167256192940567767593896537295868501428189847623872767237637358451557597183935230915666946754049147172096975557500156765686212822013595078886666715387928140141114694313232101688966333777620607121748509743077088847046316193108027680221765862196756412872471944836240588639132446970142170544053726422290894169978828565550093255167688070632761829307029910066561198535311379808098550302614821977703325119148798839972548545141575316616806864691183674584366911968511613392492982197263193723772416112089988249368913750962514382463989859509908274315730219407547412908088563087674707154510490145465793343264871802676466179441633897833251736353259299120390663252028876245941445706918966827491390827911459448224694721442462721426504399384648294564506319151972883465806041602359882867110143782391559468640860277973695177366173205761304867453080927353280035838553747244444619754000144070931079708769649222812972864664906066121923431619557617990885901752854090309161298812398060647094595184386210335373706274826425654386385773454219333982491322398913335834218605811202412685925942246689387396699887755154462790761803425545610935152248597241785028027398181491654339228500077083082914459000564760445064365231356136154595337056513386133629592218780518097271038357341838757859222680590822867430312254322835852441954616835967521530559840045360241941705964764619687384431656856434972539259951565827461089047790260096509719039479511727112836502673268424743484750809946375096756724880717596065660250398247707952560536763804196171637608886230255132806564396339331900901611875225904557528886210456546008791673632119768441407348889136397856212255388042632939158157092197437432902971173604128216267502359152862946450620214560460876330955436446154688395487402208755885758107753538576457916449122450601796697561364391353822111066732796850401885872258448174098328873272000590219784889005369318496136348492203125192216889240837156167703466897737994787451499558687401391212718883431333236088044894738499059234111166495778619358027390393602616089305141689012883381428929907191160589404865802034892202040254655500459112428393129985959238103377910015321613866217507854718327877412980698662938816460873802402966616583296967642282200685861669141896819960706435430735135864906793318352646810123342085840335579088374624726159848375524722223349574912341858309697308280564071292723886596686061991107002863376220225774951938990567423625285094457484314161238567064448578958028626957561439410817825812968525236185940915945484642164767243871907310792566507274086408311641560299015589779343844981250953990035041326337935322506773461342830244139497477444131278818537952049006921663874451409936790514258931368986041801880747448710230083141356234664735372866660831672800567569710357485851569567753249717001102350578523953626728256610375069789028491076158032641620640562830644589273546235964358585954995516096779054998181489150071319308164308009201528679621868925443920067851693410098112145774174314522244742186867680577608399837708952020104269881654131970884564747774498476565549969828546907208177166812567819723162127914663617802773631167102937720359701138803968604846913653924831338023827392102026189457424542969778363607304329410278764617835478792074080980657784305413671477531839117537919557673968298555373316149901501481676864745239375787779729842847940732662446853743027304771052069561578127752963679706553814140510681792686927612104362730682025899499973955990427923810841058170568822739421855285851805246047915401121684582855094385882705003240654510584682238917569277427791911952589700197077130695485101295143365694226680699494252678269077050115040119498453140445866630972820651520041992728639894617432807447561523032205528909179852796119790176565547881533093444313442603362576730376229005933133089197435845728676356116836379544066723918029353407219938815314669098930862059715255198765554066166480960151147866063595778814283918262143001567242214002827445418014553692386477988200839963342710192456066991480019123555862385039334260858054587174897569048776074947248386707884694276788875956965679965674398842149285483332601607594454701533653656618294452746642644331979965505591397077105337935103643517300142205031995211664799907103820932697233698828444790074799834581962915583130592541904600210173455735159791596989377151154146169746944963624269375571687198989033761301116975943220058559102482174063088729173679785475485274974144362505363302460802977263294177979681693113851033791231008921752619675620479157702726201019229969758499632602660417899780923877879609880268311384730733445994582952660701310875348168360516339189198902321103360414542534934218453452807518666213504886071706201705405869154342762276231884380284110840028038449488599733267964294518970693421613755363651174968972302354063201182913029871986367064184029621744094455996517125703594429538071393567667729144699533379071364039370696606562138415685565097534327232770343237541053647802135739036637895320279494473744209735632374893857908279623798479157618015882731187801036819575413611871616774209784140087985702708760489223860562885901157534328422329708639729428944090576368121863895552211082586923323475811950210095088287069775417268911206733017490239266614482556562954812775629086817331736205522302058866440373770422083634568431484473264556205651946615381516393949852075904147661245123505598813589530285944605287220115606180277354365892047548953518856972338204681746751937131211989724269193459690204566434261373142024434855312610617251450327688271827288376844444629502309210254011438798480143216933436277520485449335850933627845130680588942071824287324984270979741816996959666993385952080983715854865920961873557541982705641653241745571584782368097406529884696159093424519178347401361403525972536182423230964193207794103198121597315654055325961690343996479568143196074442054981112997889841060365201403511170078857838015150773216720875698221591670953519842483721154764989801431984370295124736108959595665101106189025398401152930697163585336731753013213169820016623173894911175516102183040700312681495190843536056816083519852673276254712157910994512880594140969160040506740751540460728933903627106593040984304588561510793935885667908976738308312751947268126151595241862192725563839963295542136825349817845110671874852705407946037087223023428340782697021517835995621507127045990241659693172181049677964701559377576266860750167951902841051967303265497049884827025776907388089221868094208790823150967111499795750304199420103529826905365755592093584030979823770186370362794515133279395458960859926807513389217303710795460197415879744986017826620192430147559681929318314078799687671009782470060834059814884359295212203396622903210678495573513350354106164801077507307576994290119962342309669565387207090829383514903437020608748724402222133206608371815584080296044517099178410675939547349004542678695728962925544511950417108279886846347020349646181057353407093036962497111538299383600146835428683172488721106657329625606193993138990925351111857191400554528201114832729695228732655582093132586710377952773768728442520735651642501265856445269845903176458638229322174730488882442545873421865561268547221625460503622204189166044806673724386598091224447613364471633827135795407212895255134845195448297362282267863321931736094651123149773350904784078174948585355810434564436592933255557667093739713922952585974855198607952021271490207069592157509127353671265532774484021308728878471269302402575085088421422889932407080291890647868766623827770810586390285785771356596571401985103922732467153713909415473358785864072918698314964016815015192654363983462690375547274039877895963511886694699172181548950318024147985696938322101117643848497447779202753006219614306500150637432608745502561920129853719581696646012986010660999513359603034580588351780526904674139366021264767396772463281380229271209075898158231421586255002486778179497420734381656710641728645183914365477601013704827669374723905381083897568754305557964920562953182619850731805218611801116376717539442389344259476470843382230483944251005941621154614650176541447643622391736795608009377766166656447884370411819000170741304634305458400658623929615340365823325794991528718591851817614450321354403557859664975132774218292733139185309160235551435975238180206122546621606559208089969642383786032579917471912895676938211575761987825471240238351994367287860381690468284533956812310648366329839761473850519474896472317001815448549540504763874062868567563953554576528309974117851395666198446462630241619060894335364419449048416842821830290923157476477929361081426163191913178908951370432604135639865765474874773887422810320224970535574955486109790314790177392559585967704451589554444682267869109330204007299437218510715934842238230630214594773122130898161072615667139482545517616476864809246136032448832109752688055031323234953716520441010367643626334366488261615242368055727291593915063079286463254014726790251859661685849360016159475612606480849068432054070725913749442363713501919849249780461822360118859069456459455525067918548058025696394820138150850233993911975545302960453191711606472945070735990715308447122363061764688735512187970231077513074754443976358533048868503153967516835431081900029217500839789384066006959903970283584191052043247325921863317978445634374445342892776621132470429266156257281826645896409863640987638297384409250782575038085116919106121895083360145451795765136745290699065393742215283120246037880619574025985573679660491131358219650897554812269986898594629690068318219565970902449365672667858655381584811467135422197769142436209477969984692362043678945519220086172818655803811445155463088301125266577614126919848590295425510211399540616150627889423761282210697503484413648630633705130336919243442378099693617112300294561982971780539112864445192499897457016712559854701198339383908782723677585505194781380447642065549315426126301966162001530868574760921728602794057733992590069216115948621537397730183100130397411110044800599130107558906909931751787575798365253793670726690478556619430064702813986150274994041547188081569819624830370835319710664619572841756674730492470439491804339477780575326054114030465618355977184672053492296264010341635942056614588230774146850751621135512378235027926376499633812234870393276161234684414114323869958820617806016530431508762056030950894218707697676540180213752371811491059933752121898287568423577705188624570706499934426665941252223435057648271308587373806437477944408624117675289169273272682458332014224942067735177317088242745798757750458824810987903435383521793534711998081439011818840228928290466772113227088073760116096394727097983304694258111329421307727861560418021868365499338204100479731993760542029786484225942485985413439629639212906379863580252967564905922520654861136195612698355389009244643873238301618964132652856886607600438807106296309784766125619240051281305536907527641915887189519481842023076150977564320390782426882989354936840469367118633812356618237326522791143232988063534551976910658987984734853019971251283488003176940969223347618740088751297808756964946241275534430867523463907393593555402870924555336965328686599088961916000305159108439063073793308973068277903688568818805417259477635925905475249585999807667226762497540483730554070081941649590032325494351295925364999877569400895988223586042605859729760116764078618029309057055608703501151954438185537324290546212077330028604735696571414227036810837696227300626928276147280388728245087994974885533077067933087321582120141589155651043112976746577152415130327818803434879645200108743712535857841775448208050001860246764061983799580203026742639516258016956866055485187788104794175206887045499089125313840745660124060713799246627947472254442511633970435809213295739398082181792438567835893578433094209232737306493030317433364345275436754512374294485926496874681452218475217638181278574134530198286771077737072330727952361619626937834321513136687166693092367637266193860908737081091005295820292372714587571625558137725169511738857512373692956963791687850164726257707586706672087784202507522006537550191619521268489776926327521038979905735534916904801734182734390943473883130428836382256442003020156923436891411731908536107704857150180951780525181893362333010728108825806679917936631938826933737971768408582731137998421670060604202289300744244687944537862301612859210362578760836506771723901399361617538208784802818387833464068790757859278662505377429634527844256817223672511847428726217553353207296813155829247204774259228106045453062715868882011751276298124784045130352192015663715934192710913166542911711120451185031134262436699539989494227189011901431003118838132286192823869072917913766653624562284233712519132299588188727233199869984880078664320176156065634231693968331517980853009504291030768816561053466617456491847466092098111743780006203518638632588946965692134556162149574092416428884867529523000112336681168691550120173882826202502897933786994631587328146187616891687004843198955982719216994853709908738299671892311658065998777338786097587220230930378348580598310812843940827507587131859004308902362396389875037152786094515840128485736196726106666419096748453206624076736305403007053600081735989135069967178176196563954849334764530775904126594387190605972970539987665021537205907168768337639711302488119405687779917262520332047362182521202436453912156115159290822485996604603342055938702008993013621612324378645271794381143223273095865082063163775417494651634467196895395846022745239571402616208654693599705232141655290693974517941273512579333297361012706005767689513053225254188138140816806652182332691969925807628872966296047246846824253580580230047055351281505207651852236610807630789547720893296616695635856769453707959179137159742887036070068923066805742541634983335404946233792770436969818161863853689505392331952227874856543033420939128952691570017849284241686720117848287301581552133109785906409828787793371524207366600238212444206053850723852817471234244346582913747912612761764088045073761288244415289028557329629751523251371588682451856652893171287650604250221141309018153380909183480709203131593837346615665497043492690128260598840864904164493766811275375570841313077437508962497481928714148772839078681958832218881578819581709509640748539049516316895454708776069340824680071059255597433184436969445392973351831917739238707461965774193867971394836715771934810030331582654803250304994280422866286722679510057973414411940938331376697673766462555802403165783313500299174500455591912061357324637933401347736217174895578951709733392912556954444406446462673213201087850436962608728696512799394178279721360003706675162521472475771007435970356456089398966673726408514490972976779212759506063497733252940783007928543565535152783176232572689205907473687531845407415666455603442496027349001289519815565418488282355455029194046772501337793539379900679754246940522727251668843475488339646789204027415903957599438160279058362416176818387840931245391488043909132945550976478632065627952602501344904371770626859377833832900189782306429407585214335954744085078246459311618273087425962705740900094271445019632634613766547555167006725805986200162813602905484001561715188936959233484463752167007299368480673689125753565767949410195790044793540150484955130457749208831344625373056783903075021015204593739986724329401402341697892219207508408958672007258038117049622578282240652397752275711546320753426223390417256405931709199321204261317158147564062589526104802966347464856246191268209474972669631013995424847616930946238333040332382662764809433449352628299805335814055046868773659726891050109197618042197799032976571779859867740835037813625276526254052534387009767042384136958467198581336108679978902570478872800996962552377991475753604424830123721001362639550627504766384679497663595445668685599270209843151210626776560125861642434475150410200228928491660660497369313851557383910449376205740197126866460558312787393306027716756895885035057357929099226430784997281212714008327386370352434754256262741367239211355510232765185365450705804219307314948815127763905832230951970942778740377851019438512188660379162187762006701177420260459545849904871565333211121110052840570699490794334698112604291044077552936904574702890149754430187662537059009647789204063454039513892268578606465373780135267806829970853098803139747457150746195570014755340034332657692604284845481785097000417890745381148727810330922188830548942759847689176791756129774608018076922665262378824865496232423810451509376120989532416327446172781651489945425839488971101017918956746114543161785644100223627126987944327817888748001717396436680031472240642550990418371516352244670622077080094274254347663319041575592635727020986033493309275379598561679980854603538495617122918419926457159472586784809350527294714812361847185353000659164160071287735180526316757218990543464795359337687985120968194665743525103357174823872078748077492987512779669858153483704775496897745491456651582343541391197034787896926170765315426401735376945495294889721363275914923606612519227963532822696236516386336889147112147426982494594478002868398341133910076234836949672401210206026409641151117518398998626771787645501504076305716798099938081322294312813971786647009738250476028936685600332934291264686564172195895495779787600442580800405084634883809701991249142697226965683413369690871055025211964857148667011058856287245520292508014488550275496147942455343631996068838392457125468334106539191497739481493585938785686003514494536429579304070277517305811088408239499419599244631373131916588753958118527996133032791292494924908208866422233064482580580955296931711038018040312726921324385857450415167295688665528712048618464189859598461274481970686956828503730801000175385146424808433653232811955621006594933322431663898146794930590254842114533989923663893698860082369809297469930643945473429907385658961944161787437675727902879032225139560256852197765054688783819910795141795645035336478601476634319924475611102126426877329818742919824687620030244167728140320217188542305144796140726130930008203676824677204809081151717991922107456807553856091195822873947360432820450248825810713424929119137294631942196299066413227078026420019435880989778912237942794048368368252173486604834324666866119774947000049207561433950382346021536848203667455686398492247452691698844546828717090077162839457438200831059953865842459050227234275381862868123132018276233311886129059601976952243226026968476005438310465273464024344054864411267917962347379802063692976645733542291441518623970638827313926696742449740349468364290840281852121030564429947327871550150551051385547776541478134946091943466863536185293552540447607669197705615072482121231186865021921332856964193889535319559940428438402675808299338468948631932540517915360008668316261735963832643448409441346893311734651029453062629510498084788490205758290406384750564926141643283800137970126839377907040992615932800155251214838516280539248132554475267810989474428161991860343289858061990607448200478475679759914605830802925609681271117728576560213705929948551252314769741388138439757649888478359858395595201203857725100669180446963082566975551691328368684835574027494283035390557245033523524153877698790540218469701537026509299042710431549023769626537599069291906980811867057140185861433675740488283044507653877660360482664697688256689573845582649918588215857004010900944387845240930676005922218882187820104297980855174076579300226584455447864642513148252340578004225768072878904944136469098308593532871052977304931399924512552765324372935076719397124912129194089162462325003240104840664185763976086940810279961695611473363924729520971236958998946266626138040077689758583726766262574870668830216356508665892489767415024166944810665182973406143461299028013664433596305496467828418704257262836111197400951931071929686779480128721364543142881278710953541460142573291440796961570405699186649718907524122037674155202093361952549114251930961303430538513980270772330915940222024665432783411836811106171363585872907944292988613261616387775115988215178277832875692117876572274818679041350508385866640588613981584108422304985313963451480731179829936602135203828771888472686761983447012509594640947332562383940738335591916928224775981924713685074812001987061524651625802821466124356410656560789319265467045296337611807696069880631142027241303620971312826041756164633187038848517377888498654916859892602703434674342306581449336690749623609624853088881481296142504183398076790184671983083840897145980595850166402698325981505148358738342675897888387594126078763405475071918686268442956278282656804842623609071523627783332331436584913699911329819616685402493507264624085300079214290374961658112967353602494840073183653823300749148016005926883722474727369416244906661660714971375146218366662594011459480027044623520649584708193117246856880412314942310739993162333466472306156732012767114227867774974572098844697585464416742108112765416729196288285160755822276632635144058908447610875883475886234912348747821517955626065769925580782310538318211977026588073996291176675737700679962093255804032851843917601042836865504010600262144643865209454138020390291439519922649155251680819887405217756866422705620106615885886842869528730544896328663404536938329971407181300215316148348053772639590588057171055262279679094431349395765455263861876690065250401147415540660993593348007976006654416676417418633491329115783738532615716893233003201396664494492939767797933942858846096493679564371365353223261223782548377678301297222944021202320989398294502326885862507525829847677661144823787421939490056884617269832392695626509471703235835235681316101111125774238505966460633611071923149330385019070106575926965676223866896471593451890636100029542022232143870727257541632221391698099691702737301283371483633598929816947858700882061504220296051112469550626596853943114462651445229083654889237141204550968703705389227567718037788116117290538417684566879691786685793173031513736321853373833020375457604909921682127079150241369507436202182018780562573504252138033621331519632762428934322303501326978200932931803858300914860078318003483996818820074366533835919964807640676237807082564291351449932705681308844980501282449194641513714163390758138570868068545407121815670542502880396588262589356048634894959056124467255554768656304252955444848495538583225015549180416286942153481938187536315072424502726586112806417884124983965022791711207817554853659816218416439693435922921424647345455108201104376456635852122122223727902441882236591363371346292495273690401774085342863724749689691284176804956505481647640574648391267563926863278241631536767701565546781346498814246022075813600700773025687887622422425604626019146427117044073199432087499727554574083037502040677450999922532253184780858068877036524267919156800559220243425494079964184498470308010490552939343962291928086712443432537433181376353719862957649729950943752342043300022846350028453727855173021744097588504886778760638010896186620125198207213101452995694275633588963620583312679887250732276060600976521557370137037096868914444576554517915376436602486567167755323865440321637851033240379663381459825764886666524180012309599866357338157542999810249105253463419031736844224093309598242409608577868042710800889635213598860991697908899971587237565300746964282707148217939741973268630982255096597712847688409522772759339944922468799109096620439922408990115071260933106136709351145341262533559914861756273653381291232599262789059684390380182593208130415399985255504269720372577219280290041630772217756342941744668536573678309331159280728399677371218169135085037548490838459089962149047281808886324948813882866974857423974566646285687100306402086911367642390374941436745203135506297757129458317284557384810369821919209270598569531744111487695106706305321586783995122696612896232348414831361199972926838704978470317596787877605217667039226336549789109802441471672409406199907478145259508340583678352318494500694784803169814231839983568831870806493823691658596193556988359135234331162799684725393428626448890992611093480001078280837918372405552729096077271174282242960041922194521657549496022918690047440477313880590697465959741172352556363489210251271904668918263382338867178997545371141906734064260923013518425375350302556121525555077178630977370696819877066877405897454394305907875246782131167901349130319424393612088694692245248630032305841686141903347727324327037000428327395411085095006338187955781951613853574647037519159708114492069552223235395044239657703702672653374577185865136531372184768687028471937028880069740835312094116133209353079972584405681566339445559515889963396122402758821815577740156640344101893893433192229107562310272133989450088633902296235200874066899995979439176898258319797701037142663138517952089634228662850695065049127163527738200898315581507614005451567740320936584129906160007662124378530903430311522348733869443524788214005913202453079197148528528931552282589588310834931685897793680718266592094049592681494021550506745987990670477470077710282604642919172041403002989467344185899979755429980643709296580615584841673538764222973233997329298863545474443476992734917513940988193639232594244648215725718173184117051457776029555803034095674759272746858238144684856238808574293449905920974958482867325304502604162375998779964537426951284647458296574730724214062151774240965215072564004849862796997781056017714835468703245653090235118407882651437336610008859734206920757420759705152695456147979935104698066093000419527997873005755131235225807066689772177960139574624475673946103574119120401549390785821668544081222560338295704621170820689134648638010203566369948659442753897558434195740604161390025462183475655105104449452735489167209031130392537577943692814043743265083052588329083136293747942962290349516845172403776836874381496692862906891705122342515901244785909382040565603740209537101694498448958047110264124258884362578474481558105688042315653814192955846272335535128842578464821086516668451481316551309133837653199675464473786819716242335837473516821434880322502151584000184567077769742041501917496023447825302796667982529206792815077800392826055494541162882218280992087375631896738586243390824997552167337483569664384668769943421369073822755392261979070737051856463743961587589165271374690417097464939621546146255468343963867754975827644132454149960943566213590494149416410542397140216029080276548198673336450513200996487565104098812976937245029911816413075450870213344135304531050809060122722934921664736727268906791328360329281605702975138498600856418613773738268351130004958389841776925935030923655899016312139541859960869499039276160149081690119931425782988565018447499572443574567663979093355611306764828559057291019465794278525090233996868340527370287405624498594480742330482998363005068145675374177271751591414856279635570109896785513650521588109180892810819856084795262412454024457865725739646279203364932415821660786615017787255911674501226805608829996209168907737802021334283990696006519955882613786711565492107102394956545111406839476422018914612275973765568701903638638048343277761957770265527175552938708205186060057077695312267011698031596894135891775991879823981608134374871820842569900378133019966162022192277794638142462255946642056375698236975560169881495709120939102419026670286887813199398696280040144565508836330636120482210804625316712135054317682017544191437346884167477010772819838159983383608848366500627931181322264435828907339185852027647766926609186655402333881566634308456841560109888183902524575414763396206382384074646933988934917276201320735774304090753417647768904355031913835527516089999160126330301811096196692697098373598720040022969421848676237094683749089105323270847194598830109264432804473565935955046551433022752518499983649736538488047176343197888353857227839233182128724779905794523587448753609729236379563941934043327991494350190806128433185906868651183000481749918706444064174170409474066967205873720871793004138630695478863181557547315769008962485755722668385145709943299189722467407870591432901487536435484687828481736255636926068538905572992334602555114970629821091976133835275586110715585573088417996751801515917459750778365464163447003686112003768624203358131405348669614661158421228013398489211132605747838658996969613507119854999803705869730321824192662410071805093055882279884238007008822992722520186511885675172457467929970639197764510800430079814465782283071512523043755782742598005526196823791314003795292875594977081908607713746075434243569303845667564237530199965500828401616563841908612722381784463408562701781787074166571198605485900192678168240683898158259710630717813821597980740555848730035307674624073592519511370115532359111032892057026628273217341232142606389354653943018012439866448205925698150545003710179436557326866731615558058313098301181463037306341950963355114206196474882818820250528896488947713315608452843034142353641395601517002296653348431761237357827745467933963878557796878540880304261617400119959468720626396798032518621989204981352572589458001164941189929691577194395935134986097832466841464099044120244731769369428601833278610878528983347383647724743373251459090055970294055926133911480694192346174388584570227017613180802025636392985300871780184451650981936440407721232424016184469241947649747425709543211799269361351484851916171435724555661685914775518120959342096264218779164095604447664145272354440196775044367416169455355995296137938089332812664363200963206758385223926877635013567082816770418220152121249342828529030202200750398016589051358496402145308015760397870889362571704742580445207268760996499777514271178190228751140565358769107303969549361903257611001671293143040612908724494532095460224424276792665017546785397226845815690093803601340640605050480577177509873687044818318764454140235248286810875136306571032024419886822620215018652086242138043985475309116372313078035955827740082168447737415602202540371122738910787917540693010741272741671807675102954135084903463268326179365054203128111209288764654805725696075195583611188897256525732249356829620480063538935483298305218509419412184164757116772991077119492520087536413644604009942605210856006704511867663569429631408094201021555079612496638621889650921779342698700224897768254892278948305580595504703278939507971788536880997494628362747373121733419263946012244342300704351848553946578392630115106448862270877980600674911804665147240896972197565860661440392368207245631835880450627147694391978851397123085629486834450449683504283833579777991548302342681830778822486902003675361953843708487934152347353686803412495225604229294069829349691020260081196076847795321084857562690016703884793411483930406716468098568192516804136467136747018712079525932477526643237010788719381556657015825376813281969136258664299071696720055856881208620592035029692162011693420156563641197524963935853432684917631392302220387841708105418609457337793024947073501782846723636009708054069120209638206466796891579525584155179762299435601523465601760646888282749699089781778200163752709023689235595019391134705586439574136948216011297120336293891207106527074073417067044177832467164728210392058181577585442351564041679910490337488692657704858139120809138503039644180550871267757753350904631179011284283767626777048883149170737923537759458025018338107021537806662234741796490092901032245499464997220444961270023067224611315072027173633309982280533736123115041360177971589028162306906807195629372292232294556436274958464768004196209064928609727518898041784786148388673469785862385245679436111637640888298777031215870977485556202038414235861430814392657199553841146529833215733811142924292418414115745127324898746552940796927682174029205561407343956265968060708101982886689221037730081649945334726285909516732214293118810567392109687789389424064900169741475363951320623941907296590187154377986346383672494572674551224156686371926028798747419535632193174826641698651087446249854746230994350230913782722565184908178805781760937782586188814555953140176812738092316730572478426173944716514498726358137574893624307355633377337219994772502270986372819852204462414313472294985404702170504095987183030083972854162328924327955288266568149496104533570460104894123177939339796305644427710127438822026658295203264950126921388307277514990281225603937863080553208964976759938894018082257805524836218992105788880051194628697123905855020948742240720421307965998741096648156406501867322851957601044652005244748649546091294087752016362862500845204923461031874850055200803971369197273862639860630299826960301348825234001615051925575720205597403065656847029823953117758942342843292308259389980579602592820889732424918877579880541741869462317975406732960741352096931999960862086471362336925892673611757137495296150394229516013198867341303885312458138832270367790437748786906234824986536933755421413692127545247173760240991206433296118197161668395980812747715059497949253403851776590367090707415013555627847749826670484391260958342796310244019269862837876146238037216813636867287747960398765972792164864535878622680870194774209656319778596205848233109742268614748900122819114403316224062748564512086258739483842874731714816702102554414006016430178282833060437789556381116398956932093867057685460442724336874472470726668601739133637035496319503103464042570838954522279250743029656161778902158663145491957236359573259422908244142921246228341643082521667267174635077503222902030415339821241639815416014976827210885524446437219838545067565024181632723392728216202438352479579945082968849485411965431470119304920221750990427789692864975904985224795684907344006210353489434043508173343904409356492083416395942507371284177234468231170584193644868282193776631220054034009457783152975022340689515005804950155047723082976128507061875781783456138717959005110716770793589917014094301051333611724632309329140367734195636945058513109444726405582057888733097383152565577658582809282963818959469203623124215633296899116936545351603775900893275624960792308979997069687679088781219702968834145755120626806101962575569652108593283449665298417826334845908570031783967044602592527754014324940154325313730279151396528857189611049773120423924246199165611825934121731615453716680103729407450489466370247921347184329917827129472004535652602144391217463914531435023067437212851037669332139781178792044461642934039075628035740474100300342945667299151648881159286293130693512779574429146278962602223204591407805686822110399961128044468508874271392091581928727986529400234991748281378791289438573753938604958972201460976649818202129706330797248738812692632122020674430553498615640937376679473335424285446773236647150745583214140094239970654690328957659125229327320605052031299594705738273409649567381185550493106136367925425678161373143446535346063764895359121535213374186042689912677882003043264363713559664978656809061128373473061198512350869953601260117458119369143570843290464549601669994022522021388301986289648184140480577413791747468245964425868855852615923713798857956419156698366951896956197525168021973408599530391512994511206158506260070913156298997667155344524239844763997665398412097709302058936027337926224820184547069867927152318407277890223636909384092850131561194224302526366634735152572557443685809282223044770372337095600893965718517931533627385771792378074754389006744613055673016969641461353433200747297298289515476088513226238698964613661266241246020820061184396205062383739683769529423438368899321024468230739736901432320378264370650887933740701992839398928056025309273942679060650296877624613273627066404636675139076723345194301445119984026932471506292547817291856976264738977368046311250995959795608788212526573735023455113277561626445760542727310556613519088637557468166467988768883447870483284029534601912340964691334407843603862441624707120720194637564150748724774185725353869234483086170599683292664915512394672978387170205072859209048593631626192523552556877519441605164328041702795254516366735294160798398824353947931765245600635985733965156022407234782325105023361691620925941378938221789620961290434906366570538537662416027949940487630167367885663938710932973231285396572824194672775271448059890125202905651610886731826174709836619807191566821430805273885451288106053486520338180178288928263497834110982355526630991109383807994439213491149680899424560385917771070190742726164776051842152181292424098092502163606251253374237397446252786294054293618729276587381146988255409475844029498299037293555287724027038561240475456704912205376129436138253523561512478946627294139883715336442228639575972413710310237632402300619306153940819969578537963792106771282495192803227440165166699663683531388237656832810422618135357133331918830727428775510019767231473455730285827227553561201190742216471467479856528037069195574962454879824047246577579471853898320344010984065900691891235768467858636870594545845782635774585864153382076221379724884262036616133268038219667203398150421813196078782835784064183633697020493869673397043469332623676651780337642435860724552119258635285774862067261569803361646121233768527157664583944148326937031456777620870451423047232455617748900760177596580010117511124683076743298611888764766084585646837832210911372069308209111919655546840563249561832537452388467007654975298585727790819169355308469020160615728210007145594687577536373307615161069424982249913594425577985312644642414803336382817516108278850895995082065722754276990440602405701743899078742463785565911791313563297936605977501588687146131185224878142944050349676845287016377025494716316488646695768474475760405496869814877378452364345937417533998636856167497320148284758798867942915148202519871706494938923445557156459979146774572824450666891748106078162588175442089266902318590845783264758795117195424081304865437202123238767107367748535960996804656713766915452748701391298458887784752536953917307016130512497952355200028702647340219840184162416038252648207570787217047728876914521679932910686837932616450537411701091418183709267344290685719743160825613014440370914723900292396526349168394369819736664136111800866860361538420473907437426107547548556002567340325477948489744453348790572190978584605546621194152026866735693926544454070671192396260239312239623240516437711692140483232887274342692694353310904868738536257221488850121268297261811327699253053215188091211799734242020114437980882376509673203071476673585592961287175907834636294879833994462284116460076574106233934251099891160669147511604154175224226851177646412326181497295726386849481419315456402921581822662134167112420379788847715474425381484148098698408518451743081935329283300548222541421889662077893190667573036618236321445302851017897892224078194634609960460010338265888523207521299869630748833901038304172640997760693230867160741370388761444163810426255062761471261604795341416734606706534014875104823485848055308271219093555648895569986142824953485723958571224941077202898068500679161525770250662923799734085643763520629081620286871535069180771607522964584522916215460732436199670338924933003522746374600578719240794527833380210346441040132893601217069244260358967527713288864929013386904453707099907066901875043576735383003922123451359751470677025421588804154089132582545222232474697922665852475822941214911743609085937573745181193262643100210520802124684548243025326495887762108501722119611775854650119553141677831244772443542172675061952791324776699921961721207294851876384209361472746192874854237278712549081886252598394736240955134035573360734248653546882725020895278030051736365505747374198316723980502779495559167180737716960553966189319552891745909482484513196466412202362820629250880050928774961702320212961279178390822980016905335471048138050968244774729821078855429170737438065202667104310625178282089601780106933597651414723088044731556244658082066783388600323340150559605277491583751048462258332784386193569319017162278506604181572315679691669234415459669836289987084265643283781433427529791272899414307523546077205638332361500767874247095993037397100322439095247274214995228761747192922409497938336854144992507416958144748396200814206227918017604279961632727300692304017355607198036379478920352281046433133183672664093176434982813840208835826028412543382895361394658868700520005570877969572671105823706672433390864136353658055588651102209659199495897244627630591903313272649802095152574624612618904049743927808898169199836378417725192356892207662432481431993224657362320219695421920044985357782479408729657980993848512054598164979328670569823020673167230810042204616512206281528238809767005577485171393230244264691355613487974523853248490923988130713280710596382023498515817312201707563122135587105738375226601044094692115437747595356213137152638043109474805709359689000590721512954925855213138053327437178921375237479213246486684570383284443547767964716588394988251283622056106847768590321677450235374272105761598746427156167809471151463515353793916031032548611647125365370557567017643129683497167718635037963015648500867288990219292568472253263660282651796121107512149948053172206650197583603707489907695000114396209892913155815328593989749820167396282549553968004268784412844844087545117991942485823545363573480936623837697979984960277545971806604603759442201558841441550956829178196481229886867378307031562450384812533466147259533101717958832482926253556071335085180105905300172132089315277650004181741320535677844871905650256369877462648609671049707660607201027322260316889202582121618931791084229165095410431013111229586644992304951134927803505716886833387127907393391255105695616297149106723537031792539261756295656801612712463158520640882450136467295332034828744091777752679083503858574353256692496858267675927096854566731070760322954745983821550101933582227193462010978708971583788467788246551341393492993639079899620576942097062958387971790573330737010609435766861112121071316686173190695115451962570785824282475778155451846458648008961457683044714967618390327797719042960563873336453708499819196885702827312433999944699539013065571497530148042728940686226061227050577327245007855753024567724782580495939910824386576429561899977691765382166500423837694693702714967416751682945117366555037891342151918467088754794466950996192207120873331908256276665377544383662437501185815607859974244600773956170362267803222166205205411846856700626467158983735628614305731793946447463747496583181462327692647319332794063948567875411186258927365785916972679515521537754403368514718413776177790075826013957671599074412837470509206279747738598722639948863268698076963960678211507769443519326698069256822108764590803083242290124703179836872319780228770949921531175496414581158129545108363214296621536499597366163693672547729252875740097419594937006036315771162751405864490490828665637422878612462512253868325126214014078991111547139997739307499582419777066948728911706236577085021609829459272955981699486125915687133479517816517142181998547465971525377841014323800345652364207638549343766859928250584896531612816600652170551566977349881009747244497039209450166297989235543507744842430211928545278087142337876368943479232412685535311008993987293001008787415591277482016665196646902524166993515063563934968738620994785334340636599396653554208105384830169191762679392322873893864248896685523937059068287198233151845963386818129306428091184332307884938845377283436665269513232103181569276457126650219771978642364664573379612464450279817588892669098205498152163776961412882383895812278172972344749298767906451348674596937293851601981571978974273144240461591920936202050511681466098781201875008748144857691058651907182112363442773063019659435183565635572864205392766143854541920847572649691176836044013574212657896503129794210374115891428476016370464911991129120391440247841416973095358846804031174916481376050360536696855742359928466257128935742186185639734487258420424454734236474296073795534125841612516766596843166630529881751174730071760399228696661209336052720380013542867233445458882626083123733334128673771666017113406588062526831131094308801056476676197484940375254165841419085298917305202318212091488895610103185116470606121899024061269045746570518750239155443028737022220613893886128407017157618514135041255706821371301617203217587687282081995619091015750299876559411471960691548590785329691584752981646914905036085296990827112598685951167300499606416548079131552569837181526290191538518340252664376442795447299809573087736660680661050745474393083367049547149174840496897701503938919057647902115928719231773067123450813837553427293048078829919779866305659682329055890052016904912593614632165272431623961865600320238323612828211663145440003806006576546729045731121918295175500854134322782409894160050332025002036322503528094609381244730452586533118827207764882541640531663388496812144036346363433997299571132214721095329524487158921096631027081737526293001102991802989606040513825677918325270054727122237251120899946020543487041211099221367324385578135735947252323095111536390265363321521754924040968172956184534220248016525489367218595261154137980475843701152771980727227565057080302634980345207907113041766046219309348832623491294183182196160847432273467991228939601328051046097652752847936606946475925850541699816200062703866897577273194189945477106726369572024516885397211378145362101199711848877695974785769604622927287743611611884232121321466754269872696278780744783276680613638527453043886713810806822019609460156679583103303125173501967626627020106263537687473717264119994572118331238810564554702306862900628659810201320409450690581437316907051611827262629238640025459238423119435248717308151425541350501471393859549025185856195883945835413763311114970011399060397445949957210131396146719430089321552434814316403529294594004640049029330565913015764665315972345800582669362826343104642393068231234209480276022686154309323121583351434829798277600352102799185100009917782045146671297464625636830661281957023587682661427654974359140581984585493732674180467319723509583330886855544608734053024937773321036155124096247188456567375886881090599382903006586587565375913496052378702658212406882313207408044051442966432759366477867043545940806208099099310480391599201287011160714196546430307676555993080981635679292594044244337287034845520108240160205632718909011148880954970489849653222205279780500710121237481454947049683284916254915331534037058422403258756280602990418941740479594268005826066619847240345067405414313994739176063433742722166431902353512007521755685858782436142166699521595609334270252371311698222168244147953881399564342630625590230118484941650871430650734568358045749932382565372014362179565287036752070439601710746493156075089064373483386477161326639183036975684087270046097941283796279892155573681829816860474201093032202220440582823676094537118706634852321660571665242871740657873855449891494599871696945583218541465604861026772457722471704911456536721852174601993231770324780817808210288026940982293453496146315506067026252136194125763820074962614072514445074214788069337592060555021065231252524927922066077327583382688696472428994599429329194530613626089927540230191824314040249069698039958056475976338856323542720752902903040106259525227880016984257781474906731477563847738695835656075287410812884486786800053336771051741167338435448480003729520474947218388509065806673439511422310743745703611109180425247055387676710419323723880570350424931136844472044439773298785013270691589243953186626287414283804969674870233853413029742861899405946790034963169662607877034952684936063974817231439848864628519066999538257752022907645587488995925250824123251756987638537761102240750898710263787262174625432370483206438978171029934413833677792176475348772980758415909656933901083067985196476850982003918517141220991826993916733672162662004494604408348859443908801143282864736330960452594749223146189072936658297840756352143921684732682517123521377074675958987321444687089978907257829516991106372356270386510544028180140275739620151205829866229940475543932897675217990993834236716180266422190816960882010114834479720551139085023962180410697317146153251490906140598015136618033709539149147850565729777185060732186581997303717904011934189565004980636034281307607363801241580227068357035625174698317660906456370284425239106974311662193252792074058062123465178826749500025189761934704648655678844632980595646986097010060379664508032824791277966995510213885026605502943537139700669950168162420251664639337083958072499490279217282922203623056297755008628376560181054906625047626904789060516663183305909489374067400218294986134462005008400053298710424410399156015679118179707642964651727907752995345644366370836986757178205289474196682192649816339013492685190256474092410343800591681094108772312696934323711742298409020690925861847942687354951357434520580678653105623876490978568889302807196135760871965706316861303618295554440441293677652864985481225501243292558482119361329621880064737144339007190887606190098027713638719311912461166404461526521953731096437435000155412462684220056301455013312208979313719078092866018323491882728496669952937416293282789340118156619664056092163769410550723822180752674914728702742949184584085556881087240933157763257824239444076886246884171984720308693345759027370756257537316211836928271246861318313352218346079447238663162642755937493541201024954091257574170377744952116293036724493420024369119488315533206728797850072984405214033191410642879784344698143147884815767126618097155210165025602444223165455437689424562680678861551411755393766802119411992136313048970367328435430162648129464411038455530778936735501640770870436351523970000050820480657573271466278970472584930994023745077908845591799215455922479374895408141122919268526799030379489054081518738754645781399618756183175973208170243930058893952303617757412827007074787795607869238459671505920744878977860925583371887837076784945557743717216598014423574248274880335360792179568465436068784309835133818248903448629656634561471927021853022794102550913691696735533140643606841788529553161371215589877856998028097582188777340095545380843607441108041992054203884677602882749059810940416118097886426300311089356802592141988615849970267605436631591774329667558292583114433933921829713290004017554718396681186769609909634104179637236994124840705153889833104483036670261517785314569691944949517070539948658560981230745461746978235115234821167002739862388984703766127637397860906638654618932853364640153049099179696799485077963388961512139732266115061289895740690234513684757885231463079540832087571866096085295027693718259044750297136541358288040013921168741179924956133194243843896552242124903414418234266565940644066802160163791252598564847678409463208727883791643151080694657927016184986944550411476598093528823349212614180603888048491799214704351142789964008229123702732715449816433824784373038455383973559280802620858221781047391821519481750038390934419203561619217165661174084174669146526341398451538088741550242332742267754643739877487242420974264783112071881531555193283510786108233989272598078309936296107626168772471032991139708598314801754197332410649750770936734913554714678886671588379593641709312317390767223028839548526186731234079583657415576592174886646449673940190473471404946092520531984164924225776414741190748529169008119781311245179708752587959988924711377388943440552622559608333018227976105874806872290004556440573945523635751147611852461183112124806785063036316401895052194635620614203140373399456380646155945337424404658076978286629061687690732120807989950382543892526139064463860576331085229817115427136472466333960651730483127578466366003507878963880380257494532662159989226538152453878865283424384485220272627811183609472947404985281426392117434943560538201938888152633140896727470981902992197296099264736705945880346870260372693250259750979870315361054447349359675254738954719402285770386717145386966344048841855922018110203458149921917916361400570629547857018744527280816513533435528886995390505560337704862808061786613132183478125183747878525765731649547265340979019356027707201692517998553511953905987967226819415568463319754761183151589886766342235952151132860953601534376284119166097550099836236969390891930749428167743484395075242845361207087746569878215250726835598897576473880499816700906656390953133045180052727685785735587791089523620982034838588238636013358221878412204694485133011732469035585423543461840319033640159406624434314322017856384692317155896410184996744879160928915967292017447857923488665663856860571985907677937528685921854959432845605503061825944983871078964733274143882971923611762097734975786312923777743500902387724996399628758223272223006543833545812391539120403802690854795185235703618566401946762080910909434277249178791275319582659747107544957683290919229120785177899136010802832154590332333998566129642340444970749070207479635957374273009037158954638690528086203592469043096095122621568660051351969795820058628717666477876936780189696631662706850456596096906268793722351856187037619978922163366805315475272048753413238721560387675524204078383463587830349056645436207216217019677708627845649171054339739437067766952543757078842990630696410014850536995470506360163710579344980036001507893475023187971416298412773016424264338585618809520447282248279084895289931723365169259254903573757475103720245822870195476011190620653569342922563358951900957468068918483711297737963384118011204200455047666990122742671881576169577588051941572200600054663898371685604681969225293913930748455777911719536463782222776703106922192558450102849941028563462771931524509027457691099746736626576773423756241471574195547843215366232618322106542082477569926532533057953217198973824564828062225096548543136410289833717416570450974001278145043352785519505112425668389550827161387498945200007058202248372106525736462078308305978338361748116890744801887564039472915347366701025575898858095580452505922739116040947370777109963515661998277183331309449539869017500630108505202376814384003149531897651122416463324425559431040174263825383751762596980246514429010273448983019884816706091672210333200353319237370971429490695071222208350073141429923853927912718735042239647307836833279281890882924668807166366123236551800302634110153422491126695688966895375868760996169361882819982804472529086145430767356964794946328065764826309590303339369037574198007893653448910730756628737656866889011137522608784334032761960845501448728968287714987328595193330228594269887376129587189654321829551806581189808898615173940066987420506192462323085570388719121343983142772331472531237024452960635362800408876308927004223043580718812491779903441838045284316381105698678733399515793549244336726647075911698189603592380892422466724869245958023868003260348014551455223771600408682483805329865868379527802902994989845431361764658578254891702523070327175259774071443419990743456039176120492048430549404355580850380882771741170131274063922060059378870826207671196776387135575877195135428589639720094811900282580537205733245361572981828566874697323458433255351666574243025525854525741631164767870297184599047816226787274047624292472875857435244098243228955837402189715365985962838606669742134799644373738359115143106423409444205128416687183047083358447835798391756138555551597046990352745288217488278292785740219042545191922380284283276128204868900880289205841575949888338679667212441295184273097567935542346960665979196579822749317007891574016443382844804169092650517311780281668131429767471961729952887152523994636309875931974195357187393372470029669237982254582277902935812413948048466199270233405436636061980643840404156541824343297805083181813398382847938761728344556912652632242335780227984756132118561128358961064988381004089149161757158064653272254660370632633760936793932315747240049978154252748748845124283987301844611836544248398269211711020772897373227792943444116621018206610346615080029250517845400246826885053386514062498526808653612060604281638042230296216251750791915121182501136445863277793626435052115655677803857571703912444808163102090145776630870795312633484868984393003100666361237971895270009921173214360676739496993052955532628083094042393352948170933423247754176407205783032441585950983018300367709786150775036735027020854654843925728757415466193111001739104140056643550931190791640822880116412200211529287132706770222588678301294183774808526379408576352103700678777665459047136208274713151645765991390145976966827029977677370656559723120026783079330753678926712322419328808433981801572045213558922391586107427397979205751430744509499370371787916447451249759445416222657255822739524239305294586736379676684348689095877002053154376297908491286406793584569481702969317315574224791236732645419257610655090047034086596637064817430763653611291816900310573542913149686219635389335127589309628914298611743729629437497833648239052605183662982013319683294897137957508056227389429374072066434888350595617283013373875741032919199127596365407668106595256804992093443618261151879666659485198095604036116481590064013248456660122735239160777851453936966086301351168378579942899441844444897663867155050415397986371708334543868401274064964864712200849450107969188785507151582650493573476569354134932041626596287089407918210941235253762399725181543150200415191214803949557614764658786539478135634754117213924321288673182210940167125380571855614175144813982631276361493673490088289573726540294220374791109387904355367047255455012125030495861524881639398224291218931778240413463628395371725680620166409625606825225718038573424583530546095157269788551740322244370977352148480127349332785795052768991624321144400546584521696522893854576244471429182161713487085015728401550546813377255217634946806637989268586880418000330036262176061920941539975651409678635400672785286813961421137839996660357803449777086373381531009739129918710902624788418501260154941549954467081365460469619820935187426736998706556648764044925864544467171870091234129292220016630878686824538268490611328275587029141403068348359404154644274614171311579480636730290500802990566865993140213585422974818013975580014443485380044720458164533784247124572972369424808154152963027328735643760348125779160862284262649915515666054290496679452531096598268476631111767350259009468730342141510099644984148126590795869001909996345184670940695479046709831650098579785353116263682651078169937896015505709615923513537113201913683468339943442308814772285739740236556023367755392906245241220002993967195795952642568255339312175100092044169788218964244533288467608022501865553134740523257279913309204650894690686684826157810397452095817628585281988030938905576328247249570567083380342659129194652782130275660664618940696193309160244113090979519369889210379349516697792041571369378218858225621907206529151028962612617913357319540038105152735677652427202234744003431424573034481978440642500728942854334735873752856475403939352084344819220068020193496859478753132047235143274737552525757523496948901640782083717696370158360085885465559003858673029660725559188651782303179839948111425333126257374045804826413843729105397475943495206606534160337305139580350747264052915063798019134277391040205102862709726703650447983781849708966898560603148078364018443295866217393895891324413220265225539953706542432165009018406215291118543285937884324485764942786869435889963337533907997079389060410015178356465307031805716805014687990321101146480124760167100270215712042702737147287054759776560178311304653920213159116194962911570751144191381946297284082312362133022996124337498782850186411239915640640132080861019551201790619231496932139205537044228801599781238689048650296061506116294240340783595518303778214539117208681638341972206711042350842922619525280065310937884233169705226397287117408832522841584276724841772684846400496567044547662170167184292050852088326102776122896152871919996517501954102545633873838061037915736485337174601300442864980451953209337052923835068323626687350719248858512737357837196485411004785904815946072723178977655910217684717280462686735683284298103654842265145819187059411470180175676004972151733118209923800297749982249902234757802269582256147464544030197774691977480521762946260445703015820761643573607228715689244039955622836426675076264048910614974252450903469132155054453238118247568113183326669431624517027116520979286178061433445175395254943119284779647563736987993066082439748625911169942479061093731126776624293893561481730089707976596220213433334352161434702261182099137349845729716734211472576564616204453180814601702739512612624693837165130521578650316299004823312804001981373528609386476787769213229044751010641000744069076744733983377813299488752608574646048010277685540538634491980485132063922218485323938068347803647221172368651779521467401589195365018209285785894987400919857067656743741227429086955994209063215087638638725752443114775336508038330643064442538094798431261152524526232499889748587463489714468228140126172430542153367127008522668230093198961840394428099836444666049550953118373347744625441864007120705280618551854678822392741638433261601385127879187083544188437569089623590589636955978844712035224969018519087406535486022784344833608473809028638696344577427932512889433355704842156424304458111056801001702756781351385287143383632556273221732182297439615851107493052594134174385453646716404157291353329009184521430014605619520971669319312248446807852117525262935050382241590141561493940652299628994895410547498839754133314553686034966647914824199400508979521451563573691066647431753468254705261044906481461337349000780684192010486874290209753808769228631926724349454871105673877521074513338920495732871852488037491870756035444139241172484802578060681761648449563233254421039513720784752987117098798109985381572817024400526178682141385640232801259700339707616462680775501068679640208565593573054448063962220877384255307034872806313890770149570614639303486184931939319383210640594322099568007350944117156161322880265252119917222389596460611969858306456501264778460190545160191153935651699113958786496739049488935568588834944001998162908795121751017494742095719260879662662298064843016887993581796894343133024221602805870580655382061119427760961810146205009693370340024371364000838506620626771300599143359587351432636420978585271186324576449872815884976619239234211511131022156460720014813808103671554025156659376628907930568090204920139924504740243283470117292032150218104900319984470110818024130894809813559406938139099673787551652921676692645010050464254551430862934592606748812561463530838115803121860926934481826653275237136574784589201951281751482625827448478237389180124395571056232810208650304599717635436398993194256761564215672797454742217022354702729852741161466117809501873716066544546127285967917535246757262510326572650528754299303612669929400506973116802679790934956925427676717462833383548158016693975715929334674081605098101002820880760908484265119715110769120987240467158007036398544788479619162765519171275194903316450672573047089196693964935148584139295979379424484074715655728850604950490142774758895754822103378837143198477345546427979657855634266216657570320609610419926162919786415791953747498968750616963816121169211500605451921814571882845929953602872507213756819803526072953015031896509011712865296311144512016893262705872870395036306603950701267156929917468093478759563092676426760980711562608117144656091922632617095603746939161751728725838678659513138218160035791223753775801400335366418835925060499942881041485856810344894136384367189617274126626609682077618600115599080501155256778271437874407415286403186428815052357881019643601644496320672679966951360391264453252727304258569608447859188966171710235982941763862992813106698752903282115432277812246512418187276374001083046406860601769308357558721941378803800147136224356601066856407732524737424397306993633214093605208935496488328248068837284263445716114846525698490252957398046710489532275846099407674403079110404430131168255288891931598433178623455546775990834142828034044649962930593328916454106098925994044549945857375022124350286149914739927908757547332934120454577512631220287923389574546554258919608047459495035465175606332130990400745786548142666375354507165252681242968388114087182838429473455949747207675685607553173314034647220985003751869707074589497318004447381992545904680785914687973222222090008017758179672364295721282510967373094506682767797363382113682946762340330255355266086209902196555779319437010656181892594277302275822364909634090853085058134833459524861620603885125115859499065655500745808103161095891862099497826901831238756431763320601023973472906942351900352562648480600307970122105633521964980923590557860003069285135637924364592028745861831240206796620902981124639371678249060815560458336827009621878306240276548547187125648345515047623615112170405520749120169754875032676118113107182599453801172107486939852329647464738765057935291907639844624894704019740328368797952545580529691277606808863533758389201044358781451821018552750810337634998882297520386684939595652559863522741466696504023581845743287305665524850472175562060875557961568886518785960559082237332780017059298104492495524272439717928680067297050288413191128181992304713087483953367796443559422858914316801001725263037719714991851448552355591067490105204541397999212427467921683601216506073363700176058964795663738750779841831159107501592642307905243147190506413659063105551318502520366215472893512206512508888621556698613198276260317515066606491046767245997276340456317717375185535538699467468022618893009763774975512310500180242464454024217539283173229040493352499494723822706656252479053235790003508774504822691882264357212197924448982061260227478399787949836949255401902089560406543663470179780975014179989999028307050204356179045725190102102948892133427003515451932722419680551003374279748399206163730839739788825761087459488519790127314705547544321017439453354875365476601822384612975073020933946900861555486303001765568123702613763547077825001557514925931793662164571827898290251018069526671345225600779835230343047300172796843640317930914268056686782097822853847816947719703052254973966352528341232911251843192174296852112207737430623231622628883311074893798067649501329865155105676136389756789099234213614462833924069917248760308421246351425607261592868356982858701672888551638215578842442831720455499047827986419644581310277814301281578226117618003660239480036044473905650773412161317158524041576848628457004659846160458179066117038399941464136661613774027869895337037154338734609887414006634503720098845465907200938544226797754923446735149654793098564221982849857590837094752598246621022147589433552144205591812711908849893415980196332484815781611984472162972791521442773215686979676022237237911723047713619367056936621666338339652774644433831896250669191222389299021587207770121255801253521273308752893857821913122770853649771209741782274257733379933189903041053388352909945616940159374491092200097380598160199612843385619945011339395735958182861275348283445843836074589388989804272605853226523064740757631861957594989757712253182462338094209769014887102137869846954385361797683622855022045708244233256643584868197804503226372576376242394639046579533266192475376663940437011274511347506236904820793104590466838569902562148443284939779768207827081836686566786984895021300279914821715197372355696380662116400440237754434048732397877948619223512312523773311482632664440116748032667917027047699890337449954367615456986441094933842022794283429353876610685633482068317612665549184963947479199941233654307500850702613642924959922651892719811404125084799742823973041948580264238431901716497486242639913294243080966008983100480944555344362678209941569447708612796412062257470721209183112931623484922653877091707541195661505060713770673421091053566169228924156837209852168076179980998244850082220989070819503478310376082840941131439461260561608494968442943059180254507028383464860996803777793993586667612579531476371925984482167968711141735392267501373717891472396513412217599781294559047673080295873549041333927559990226381018728142491408431952113909019352371120537278365525291721091128219212205150331750176560063740869953522562439933101986083709301506143154876514743755172615548039491751193480572271543282911116870472080617740399948306078811418507274107811457050490666561409274754934704830515074574707034366461602156004540516815798055636838388191869731502492284124713575311300689514312034517603761478412282856693867279025520486036390881091800612155086399784895294889860754536148775660354151302051948116752198362248983570546871335967143435038515417410716651003883803943932195867015973158529996996424009683661370381925165244828131082717127535940319183833341171554243951408375371122615965874495107532229996408968332214804041137830473309506385404214392937810181514400534792343199045092076841723378460615082545443855986976204341310223009600626451222763651549893118502849969376697897640006950382145290979574826189572602061782855119901351878919038884903644563181952559097931433896598916192541189812946994165666930201615324666321241399895452724011533712154411116391145446125818086535764688337300888288135098907949064404944729722759605569839007276588994817961593976223689112223288092625042043506230742362550682684916605551119018102192703085870025890175705168080062462246952464469284966538711126588011486815126747096431124581099302743719518446591221766774217793600432630602996268373194391307987883827466325430267546554246411245167536969195692180547153414881178749699078715603671960948099051796273949471884956917961821860653852327473216417676753368530437315949935116842200986829501097789729355914573750590024352338616562099475907306514135863215675111650836629265866075994620499105971039084111347549595414628167936052114987884849220355821315902903299121457309564602735439880346331581578730842175337276774091996969442393223011863022493114610171883472035697706222435656819381840319772770077021308688419670621654550033172124736034717481966803533841759516415074379064633331767042819731732224782653769369610791562896407305223940028569240664043514555027680700950482179745808135132557159561922281923631413203615911030193152061201900085747744252982357005233566103698143192136526847922048044831437200958926009898239004552478145617826024713520332139680115774039008485111223250689508283310316748934514913792189314499106968610119040828960788045796914834006763212473957110554457154767348683440257744229895148515389600894693537697659012788742808366665314554488768847088605104426420357609717148910365159880924042548928094973433447807273949076473067716444949270655842737672922316322808736073015792321610188871016702438088519733771567433887592151412025513799633368520066831834571171843015432386461925377788108395778118977303656886911646069831356669317628125480565275270309719939979894669104550905290371228219041634963143970624067135137722353594702494811990057600155335846847342948785764971916150158209611242006035334009655306164743953122856555930370409511601456709519130074752077876338572069722392331495435287285983566191534625307959952997401533518763853632385336872896101994967070361817357371249385767245623451728178278029287017431964917802991777441168703249360773634090383909465814459404479829194470947876990792476805692632691103827527978472356283160483833724043051484505159981613469322967672075618855170637516413114438502082475507359097226387547789665589586648688560213441571302470313499223985835275601634441138241345151010061893970715646548275089576722778394054881449139395814314740631282119161052296280865738789486972441560178680674864202726508013553549195026686255892671990487215830450638685420579723090967621865865335343565388417330143780858907566051260743682342306501216082299220864081844093506092298946856840422033038663659168846730279123393437355490438561916999459064179829775113842878101788127740050546980213619208073868965164661058822275157069036507171408711531438668573025108972188995779366879119788701655531952665408824788241750835078486740866375077374826486566220306532649128943232812990414913435092754617440831829346813673424834961757755118560448151572442388808765868337588796152737730680875507183302489744418830558983621579654180210205822090005165104510986027392681769305623301895915550453476035795188718832047564180541558337568895115198815873597933793138505661885884742900927192627076161263262446783571793999002629735798099357456039241537603842046891264379372262873503013485049773229173254193812385490072995365366816661288548064673655176072556900490643074167214963631648966993445759864853896596291735419560224386769362396187772218505793052324602272966643401360615919674912479477538000542026948050674514597315227897609795312064106278574902802560357669204608501427752253589653170513999154898889887078606078395057967854443405736246859683978959634037226692273974480610371625986316436943660313529971954395419294924545269239907330462418220885940829975045132917338621656017493915686032924223487197533088426579543191911786511156208723251067592166760508189303488700512424372699384049770468185858202403238160289473198917465894411524017441373282011504774859574785044609218973413024612201996370003501093520301416897336382511566542773686587981060262202939525339559307052064070938216865851114621615926145176032970104637599600705767308651877878201170624579674670566247915744218401875652728785737495392040169649458317298667067079535614868077347163877873896527181709781322438103986511651311013069650485121868637738533297764884083989144505387244144006381143919971608016715269305975318934969038674878249965497937910642930983549594454829293661275254367614428653838028944307294419122079630581453267852270012840993594859551285686426401782876974668676643873852437436741300201455398294724098887498680081474703522430314324159490805474175132906788438236748971259859224800602512127155353251268531672592776878084448579002342476183579755520953669244041654414183866206061985933824558791039183803774592092823796769578464995947362341383252213309285725378141929828150534320708025038105986452576271146454073545872452250487408314312367215729869152788226144578226710091981052983969273081281926780588655760397663535667715304476644659331458690701077483810316720833329882453744834078852590701924025593924534752090356173449868486654704100889968130606728690453384805838626710911848354751984499524274929372015772873706244740937508366818143576325584363715356813088529024849194032843526149693101529072662717099297953374691115955628115539679335740351299796673760266898885706687245183781041913735087819316031802804674959101374177700184522298248657533745097872825565872026174762081099202222230977575280620930623256591849570592782158079981884350898274024167002804838928931824552654008117948213301839486094438191745440330195754435901112036558353866171029423581400003329431684335669932205594930753015615937071082186582238211815663098733134935583646703971306518823653441616689879717074752764849950016840114048347044148413702813316717001093618160291220598638494633884081547977412965730083618980617403457157223946769735581808249677783946833099016436924696252937476457088634550924616052925096019400984867828960554326050164914197866454282476947030951606265871582371659834647301427462666121912178160735657004280067020631480223907939574816230808257777119963633123382345862746073413678956543595711912751036358743444500257189193347447532020818657174848627412349531360392293864880778925990980478108006076108066369044959485414504451540650464611745836811766116288039311789099874256633307181788288062033240730133774216299383982966912219894707995291774429480126127002440958950380498618715117053108079811210949295772662746144004705288979839233767638985154751730013582082418806959977786592461950431431875230016332536720033207850970067754624812473782782574432938818447296051157041504959046973718882741164475975410589977329571693866084259951656175279554791214388565290517439482097337318067215549081120311876061779364386209742672912847127845265517258850880005924189256073633015239899279327284420151041621381431149411948640099900862313857787815393547228345290040172264670815139039328987670452736755264630286145250023946666955822430824158360383271126712872804188359878815574766725409095461035580684412731270417342316739454756546515626925715731751344322156459258814523612462263993847474921830595977010353046903519883739919638179391324258992988407393750137747809887320443658738803803125325973604220333674070584087733972683728784085392745120961002805033338921731652719342400295832588460323177726196078659316220021432073490479119984335952847595971821081477396758202595923319125232527179052958453531485742797707827461040117382274653293621833418500122096932884248200524956321314137560910436275379593104486186306668252165380124068447891722619705704140517680902166653010151341241662318059154128699411003335712803973549148389617396286275042003999687394382270981382782388001952427171973717001004254179297521831213158913576219063383753040221691073898498905090691028775680203479176035541341284829556152299654047419606072993776501298537221524522991567137520545296586249837643251348369591032776441653609087188782952318367930650859740431620121860604558328957991341260859123006016316529969582333370510364372949556739597945737026563929642752503175372775955575721346767396079320765144082904873367052603500228159738424794757011354139892129375586033401775496271517798313271790262611953359383995695272086644438940770382709869758192558661762810873738695071455041105533696868195954388997449010412351822342022372142140662340387588573583772647889538256470713795429869119826848207107456400646319319757651781411836269166787268318504099207662141117273053248235783814255940347716356939987606756245574756723893589873658457122708262379395226745041985983323445854688252369109948700303981513585736578547659532794676315440317335074835516636969527648355649391743006659882466997701743248019241151310783526136766587603409919236807588783134553038894025943423423750861157637306056807699698634960459162518442527913201576594736647518272830781849792297379593371864525897735649372362287640440535238318654424977565067537554086399259966060970838392907847607011589864155910232881835606601782707111913903174505741807974075363980133503190226636193239957023980937816173238898347722638268243313958988251760500023692295191853953687865523263396559737390393464646565082593549103521765749077630561887106619377754205381130412362844636870026285445671432442571218515669736145144178340583439001641359904041724859722115252854885360074082498329782709031860888016093451158803258300820830808192833825273485083022548550832828382145904294184799349019236875746660006347530428279239723077212235998303733057188091600393956871070090690132125335337413565968907109342549953600612286438259698153399119656403013645935698330404003084633302891314963243042469427616559504098184636742501787023565988028091969520471395238068826643899391784432532009976761905875042601910457794109173917570262392200661846112550650507337805484087897693297856487465511287604206543311366383713270612970807830032645522961848715729091998846755159521899858215001870975964553605504321250072219189334471138957041618905160531381540326341168566911134043627847824456793875370553475057998474539195745593360895409190917497285566112597011177308841535721235339651504452126630819241575890488010777149142101581186003032675505112871874719448761458764412359142372684266304345452597416739966758820233517337846864569686854321313966233688280028565805754338013235773532120168079937653810334271968096510822990777537340256360304855327880500325453661254930369335710766106611832617464359522759695475455028157012967609490449489717989091542774192668857201378043069582645300547180237293094350405321751334812506619064510750559023770450950842650814994494736021813954646333104322749395065016594027475140304062298570788247673341336818428967450280992792892646378315220805892730949446001397330642423759492060757565074315739344430951546084402053065349687298425260959618490682289174623979787424385865169301829328574105410765251756917219310242758800730379056880679323995575706842831985870736946878592956423242070832413737447934444482365103436563056657796499476621514707650084212197869400977356211530858486660983659240105598764412508407316707548531132538146585625708922062293447371542797734122597825510752369058659373554459531755824738207377993660187026713796613995100168186548560746838220735599524238061739654139553220523674797442557192707650190072647760603913311710980225237053602407194339056251517605571954168558170203583086031030086529499989381673534988746586328340902734745829943076970193102038498520656744059461473585565839084855542906252002197707527968459246529368654847160543077123575513431149249059087912031616483429230688079924098464733122556878564059473406227102779803173484600243481550877918178809861769139425254482032763279131473389205804589526150323645548949377312655711814627145014906277449563596332829506321151228012270596645380739726702927307687621356839186179766138042371204796990660288604965726468980266606175696584635908194990374731683831144306179203417887635527592634251507877172974835805616167277365846694864637914749958405654412606996900932757599935833798123724117329886956975153500513937938249839680409978386189204354314969845187872848359444021947123011298324719862399434239338112359386021393339768730653979779904788593255062670340325094439860274960450078465423847455642593498936434703831409049148026274360876929105228879020938371031467328635161375265363580598132338701682847757201772541108085742846243208538443842038667048566676504384989347815217291452596072487833099248312283889374445488897697474781703709238470936762264121936670523334403062688302971284194677344825571944481867927024654142005351277079285918738768249533152783162606236216788829976754200377302464127475333865884858779631315862631968052219337157712870214635864792850667446398825583644802320003721212504618721609346426913497007267019244605602961803276830405961320636633497895380143270763242613226552888395754127739482577955033742036239509786856504727591700525250858977060820234554386756803870896600823778463856900328910736705543228563985830154378489462615377621266623767886482661560288884076065534831091149862963042432251187273655993831680965801504752502377629759500885694099135059228229522782571804628498223749792557147581014775233824965308670398731194227168455373958078375519659930183199796010012361803696363123837747885978157898975720531337483446383473336839896557718035945418865338318674727537954384591395596100818984977652217193205715753636540826628191385350001593551508473475865599623286713454471788661978474443878672508605305485525976698187304034663915835208535484081706269039697535105511301320939900476724542138745699800779531724251227326494465242838550358689310117212950936855568367761120501506389110232776848039216805462081783954573660860569428669301295418533576663737570004953437579408669961983103113059696193085838984697917437841381468343409427182870872654229863403906223379007321451557110925446772048953428260656273103646948525639733233214401012326527088431258935668797771236300724247952166129760974898574300676095479264016934681098224724131823362827782386629246957154106707062385006169437656945445485388367953835215073956359525274135883559331800015199931979160174472699564013570797022494594137389439117716799725464199725998569943485417136344023038194575329312264058072850908269110393625522715017703070473401505178000029042441844407354825034616665985376964937333354994512351496343788373799513400173265217395256036216938071374701741898344958342529012352123187011543443512411720613079865657109096706897361749159135825126334208799328182739769489016205913586340194583287375801377137351432241355522991610638521849090746089843014565041258305805844641710475606624626191142167112787222799357748140400250218595046154419097027345235417016882959085271088103059141375373662530139087959922392815226488616021995261186365266782638058039967365169537817702539127617346153250814373772489082309545467090261790358597140772645199177837447027471391693286182441082159003474369418521967242492092203053895615453174102521748073187662047110139676259204768220925436091144002645668269724445766631020750059081067765313834207703798209164309333142082814902812428742974363539625541029951215336805461415664489398868844822521462066165297306727101277268161643278262148894968148218769200527573384514417114863278198709074463576272024597115044099488334746434408477548310713328791010783705445206493749858393727777402868196988628537489863248426621542359442213709497616936233339878176388715058418183809875125032402077091017741439228361530875581067122892266983301361780879033338476794389793810298491881203633503671375509805528847681938682780458326599096522929552559949870238331728787077039522771289832565006585870043948034649225245698337389766630816005589797298965832284879666607861418174341182822501361100783545640026457322769194553899315191247039819838911345063511646482067374571819191555249999570225359042986033364232604137169090875771614057434688955316603929301450803013036941731301665795184976316168802436057777835643386763160903481367554301516888906235844914980847012144873883844395689001701185426828124997476656150746117908929829949451631267377057064942801317400864161159813024154004622300631455273866833457715749385388697477021317765677179266397127786472935869397265153355774032744545422128723992604587761614046519022354461143094023587938898666799562876126989764700901213347935237047384923096816686740473817425850358887053125857728963404782663463062137550024813104659029515415431952372220558095462432161679700939056541558693582958408611279045870836604841948617085814240055870419876012061980142921463209239308565052327288886406348665184729141321810497041306978533187886311252155323276472461205830550745205304171912835232335306041310085809014319902265249990003205682328010363683342015129501535834985248099843865063661840972193098116521015342142940556840327515750346717042559303232519737091473038791925720401038841763396226568954859305725269517528277301050178345874090635499683572491545449737010942613545629466921838279346873195571623079608170771436066308021018597531381635905709433496036906268183972209167024311288803481393497352646888083051979263075517513456480916966809507922222108740384370619775648805655723305048200987594653655011611882856345896454780987822015618746010499787088586574073529774844816268646145467311162252176330889387861319330578966431210412320044073333076795324439051082048918507490346394565111182949062278440110610322951890463187286358546523496542377992504904909379594229995193397682428190231943100003578875638735612830536253824872611160862956323424326587010907835694177971093653133805964783569714019362107114214590796913574467854021308245085722484215360669136369583145849606136600400300064853247308754764617831555160064269704322667315604867425015218896188498026768216976380245968647329321423756613353803059332799706548145940179899098615820970005945185284112111000719546283017242334150375528506026683162995693094551018491419562888740622773974292313187828672510775522009222368048355745574400146502092659985896365491381035791290957002774872777483914115789272879466345237313047657154461839456771294241845936240188454367944646044975687873086121451731834935678722112254889986564130810104671433123062558056966242332728943238557753526131439160845261948746877962961312394701107211712347953848645855970847863084451166548423226632629015144647435444434789189189193454083273144765619022239509064483500897015753602676226703394276892315286686288953401911594283540674300891072890614342531149059362040010997794461879622393349736648131835469944451838047504438066677150701864372162356179590240586218215423253696225293424747714167350454879061885175417760860227891621672238180589023873523265246588384885799162333493001986036422683763672057111811585026948317154351970710650368011017710834691732450886111827871508687809209710811607222280924996883186668335154405064620682520220256871383196663710591637367213414431900902936550930105776022706122785449346799644343904163558688253827259023766820090973858977691954239922213425660212511289079075837952987879140142202675559600372408858047110343149506664854826595022609823312378766195901933707435829420189143035873769162755723516462549019800543729072288147475473797451259393602432932930083157606456488537685250847666830445291522708421294464012982081152688136214388240833283193279561100037587817765061369544968091315205246678649693580184664612732591751881826858134888313369472084849360746895067108979241146464449046183942003095334479171156087741825183447033547403011455146985109012583003078726614651131880498258956098206319792826530139766495627684266669835223471537768336397405303583970566335436246627906231141864427342561185967469179232600172187348163286122159669257438950088830862788668694523728772072985598396757164121786534446369821433877660743678097804922666218335777952915725769077572409545386407007517768950093497182337088803457311367302498340316010713922096896315511044936666234697587573811390516349456490690648312969750555395514188460715417747000662635877668808646135522186320662274311197655841363775114843887058600799449618040227980087765870162742942564791119081262726325339651230712848498119547815729307955340325091042590512632938795518158838302060549760570541638420556653102206202630006531990940424469661925286652135933864941892756479591254931753198828341283905735174066129422654923392253927147478919292776766557520042642336581207766067918149687337816186993981146942411567717252976778077979669107892555530199935001244336588169275705849130234792833461368076614920694376465276526590562899297222464822687724372540815749382357417403586487790740466810734735452058160938036706406311490989064934075951092781285275433281097428161317336993970281908137515159992132716299136689739633384232661915551065373123207857209332342706986027565163019332783546057069047577276723736877767366430696552843012342147778679228902255594113558561421471319907121540457236553887053369403236152404813127956922330012654995985642826809953365702377207340419249111051053460886106462350948208770962007422608119632621231125199957364158139467572232737216371628656627029771008410562517613610959779053792585064333649677237384547017660364365292685796091439178295993058603794307795306778109775624898487317055469450123699615343874287062410958151698544560024619266393514181778958342867675626986139399246610498740283153243072305733984554970041951782758784247505089033714984405153438771167989669965789749162110401015045894940934538901226571716773443026131213715501760440315964278916671037014799041639489874541233367471863019509055750513415474782569324074953849418687306576798020497457620988181179240737591653316022016522962940414819977044242406000995202182500832762693255275051099991883377119669083778179110076694350018451973093444331433285253319105351363021553296976330771286989343480167005973041382336949470280009643118178290277271060772598584317482778476248475628822265342360999059726311977384097853084686820752059654437092956635485601218065601338793337655171714767677810040587774606502845954207752719761400002558716508579298661594510294399843204281964764599718199783626483815953527656350257949766718635776910938269262236285992323746533829416931267824142694295207685749960297752924990649754273714942375042261091676348091234218292779111029976653510397837361767122373957661092311226752785778990188128019575926863056082365735491548507662782989753673633334866706101755979205440486815745251461244311189679810483458131296014937350457384523584924408873640900066839151127113624230300613184596717907107847315418337626066602444357786480601295569917038339971903850226484783855626060296483658541913150090825326547739847377290901307011837984431154756124363530644785376328042145213606243036703062018920140858918187471871450629161949683501438107535029518388678321593662979483005419698575391480303010907474293175546237279204311813502747859531893410076632724638754702389436265681134771034077080197830715048978297910168219078006434813079627054916892656356641172634910772045315059825367577095690298250993316371157318535832009400473397176138886088358626481234810054955643202859643732948743766879099702875385800279437184868837575930618324544158897016759590408354970054522036710082502341227875851443110524062350997443845582259742495671903236981848598803911727886290995243466146113860903082273456675806257333560998972975765054090380995118363372635890366562190607911536987084556973355598523347577654050288964897608320948931645247341909646014584522628457956944754851410972670830424794605413898214095304927593003026711943483480803065065053640247142509021259272845440873348467617198656255928489000971126794753431713537160711508817497998168622498913537791897377761292515626521070325482113159616770832828267261409138531386903105748000641773530213459767089878541130339583122490421413461480363924627556787854214048748273029240657667711366887704772034591919176528344941720250259705895594899625152747195561710594723827089651217716332255084161440880739069932954410300221466419299812904467508503553639753362807455741267591577307138221988912794543739387636685619445143975356283316334218229115733025590647997540546622652844425055762192881765230879419861022245087642843794848393642340868179572209263585841461098941180470161908431067059651567757121779259837442574402393389266608885724102588673330707761757726501800766645219480717687214214660059693004954109390887770729267318436106668016302784419737603701121902642449289920256646320231640710076238176068335188575420773640828858017127328557788519076062629173432720616966287162308159356912257340762532781856335280533842421837525781681080492671541189825531437860627387966002595662668693582264034064029403364798537910030365887731516557687800253733837877130185889224222756430145418378037983466714541348072850664585580030994686263918408627062273089035217844318569258028809959691284765100245157095840411989096344942814522965417076279569522783420525354892868368601036291244882093510207059007154724254787899579925032744518724397565460909108336761912954382113139100778891298256631236268481449461829371199040354710774580883464026009264895077546772174421856125290820457212262228073154868705997133691508431393222954089585306170702219136366350149993279789424212509406685107550207061665599439198253192523483154457736075556967970073671026407385028487884784933616635736598048570427528672645572382109883955499345894939813640161577432267292277470493617148089407639783718958217778168212064366291588152039267693600577847132169391770891948265380587177287026653049374748155645491219899450804069434799028514129509354091740758224432648764939383603141829113833909835407707975295582320527587551855637595282831868546733918217500327276938703269599407224534617050441947101254266739010526814527098301580299195984769201980281245456772514753568700200323505469817847106891553967579864938733665923241101725757679344906058669967464054151997393660258274691059673559535011161439095946245764046592676888759792251266289562691152340661277620182590949415378811914460820916264939119953837826366926679374381218521483908794173542285644710782161216501604965738105317032651687554571569450176531243483633232330753518983609340221476058589022116581834868210844377424938408533182364816454598050053827757133419965216521552808797626201276681490431536207770557509101434779876545940782413855556853597343978629531014294892720866235515148465242716763724548476276383242575200334357971310831743785209706476170540096970545374280294360731627573152809706877866528529475819986955570870941897092931957307310750728000559940453883150420552888479914651056404900389534998009922855622959783767613710404664260393727588814024881968873177413145524506281692010933634466506058475310790380579076405665865435771039970499057614199461360609099401983973673357604022962850680710759772469216206307852517178925619648455499948637525793261735457642030747921228472570826326244835057747551469077758780777991287330013406014299406497983966129078808917415943474730492593631802295624706978108697584022318876417437724069259475106123684414477615649768480305652579667134353181294357888582113861990714456683548075770416672503590142860298846899861043490887561019539151086329050884749855689354159319700874422756520639265879437987833160222389789276850157354931855698240171932164846335038044560026706508954819428399092594203756590179028343089450403948400958427748641918455045142004458374962737318826992670229618992707464243998078213411781448017983433520421460713200240795397110046804175754538073453676009688477446221508949300218781467853621646226398591173844997068240830429421940548813735277535463792523540663488130792122578301811737931964516350761650638670571789891289410185332776564428046473790516923592572339749684996008496021486667353796627149311080305881622059025732651932688271979206742741458057686274543544059673801529557925338404083230190441020777093405414570955348184979235143564198952730728546866903933925524960642693540222744965680996843634815971120799846490651630284984094028766637734701917004573716500536206928838832265438713316453050728584158056859278977423445557865925366424483557913360160562487864977554773776453200116471587048304210406957270025043467639281302642563157982373566316767120527000312189425440755474812656275753675546171111042512485565928925782909185022082978872535030923134047321068498406290873886739855608683732755146201501955630144203783972445751558541825997903717034851593676296287244659903307213070821606313752050915724489063723432227094482589691979152638608888561469695303770424709984838540005775959594838398614640015922070203386158418940402443346411402573970397191318783216302557040314812647669494167028399821555542380222599731655209737472177321021806986774228432942934692644381648568869539444050359763150304692347582389219142531662466465204583031353134344940215254852671858226614028324082869011807867374434150150655705443362385632692510946001586088164479388498778241334644676223206723640621360908132243901582245223322785092355035475987339220955515120289032409908104823370935607359255339562557924410185895228663598048501187976321359302005860447671696984310271037956844883641250577093586802484179269360602931360987442706426987716908118210512180325619946023164207589038183108181712286048902861541101763807246980940863384774500077722707832391642555669113027099747721234288139729691234895550901462318830452021091911720678923579428356991098332733590396595505672426142193858564354456973375965854364731739012733685707552717778996902696521005998556766923880794789954133934988321558485430681183143461201093031311431214375151529855587497173473500277089889108292491035481120287254586961906327956195845186242469431483781279539818426498571051513784188570353313018352785958345597372681929212515596265233584690964304230880471293104715504967206975876236787379256325366009338200172945076537908808034086284668653752836451615838409992576015950346648418409248553092289126340750038405126235149838204917281456491361909567649665985779645898951762817750620056900629695234380751586690345578341473003050186712756183149055688993683683202367863397509966253025890374454049707289760508862523676486115237532143963898688885151701723809302355670539919345426751491515123935894249566318634438020232066555027175446723760277653291496329883554805559350477009446964228593080871650014173907367390249546931341969407185662702061624571655737765705465472183701853295852841406441592685091704342093469262481924442829457715054750066982443570278506924436173875201726617583893169232540256380880843328745585089479113054519030626411035948796817430958876449455458265820116748523424803378960063589893494758579346039319543809628193405962748974742482346398985458998679177883967820381024760289115440185258709463653231421431420692387079358670176012499549798390371035392923708364636014229019486675812565700054718657013493024289138216357194583057560049727142032906515083469950365430518979915393563933565782056110209886434383011408097541415258209019140000804858979136189200624523901136844846575713241836813445568258756664653262031907543969045679877078677419076324670351832686712357133046514136347567286354226719140773797362547383829163572005019752189525052421137385018285636417546775885603278093732210758540609695395354704572707846745063934802846272134731175601035564002393121728578191256397905361558747800366678161095088011351525795446184400487819978134448751569323835889208124918546855187380238108966466263292188006127452716758277297971271307883445209220778429240852148826745191961905748287004664037075744526719638795641086085923620762664308279535607177584891766066899843740250158521649388549085617032030112985454728959930881733064047654811598646231176986790552659894691966049104062105398770626512801765685099437825837828694178292277627201867620388713044544441329593681099780321560443038426152587587943113451132641327784425515306834122680027252354152306006552425274170318007866928889079822468051848227168400791259290690484889333762214964558925871101451721267097621450616231625257440231715769273555207960523564553599096525854286270521118710941151418410372709867830420909040587336674129634843782572764728225059985868440882150350954558092681000177713049491052805504297874276280993792351488964643037483838474606821126739010850237134835632640639944223004629065886247636847147465130496148189771717153625143955140186918220735401160014279997036922966178201728607629726508206303613742274061575858937654165412798313235963150781641977485516540387538097835440721480397391301920878752148476038640805905476003007028129635140510794892251262978104212465562984359549861132040894248358527756608589744753743601530385996941855523580953442455785815077129587804845351698168364813899188641984083516060024907635817144768980130748634182279133720774786254931897677458936609533604530711980264030251313170221968377941922218168492433167937345950324755138144191885078008251666250158518741276375189821769795705436864762598255702761139036935331813465486207448933165628116591585992592063279804875112849811518262890539282165436820051123739100711373138892405876931470837695696108001347254780289908637564750144378161938321957509689008433603464747177399513162778869152250128725997891651684578166283028124303839568230564075912771606233055136902645224777730098884320452881070992346462342231208374756038377262245963549413472292493089511141301550842556723969655693946600270880154046873720190248256052570225461796680120952497555023756148423153408985473680753190239355643098611898446957565688783792848475274370827415713082459160899173894057463587598990280129094806225677923590766967011105223317924165469653763455200424457084640732629048995639110152737240467254075297220481117024461252953387079100433922874332253018320714219863094913945450001238712777094781779792052679552967501391735984404840748191574340030408597007346099833493202913867006009653411474700977363113766147198829676345813784437507673747580232635362422599599638328860312806845423172117620687536481076133989295143507532958549288850884937137274669195843250947197934107548411458913548346965027848117175369676143942845942298738198186069865329878446892267537666820637325197337939494708062454827099740824016762393102280971616988569906228018157518144842625510059587658459792332635141662856986530787503919995798015844900967064319482912161487845642756770025035620845514649396115556696126749694976606437403497879292395026237100082430174633135285027244932598338521002880715152516028338863909424672787506332774286080929594729635693346246209103060820100647487988429318338721291638218185914306672770751377434658248493741537153387692583568742642138438999857178593342102582101409490340095754084504975480189530819168210113361760454161254373725177681859668714389854315798170012790695864374635929387772500141926370075209251055391648220238223247073581776022358016766831663277110960452770109199644886764181286732648856478636645760490592018764212204510143486760042961190046608352428572123908419507628903229587323920534171192093055416107845811673075648655871971128073586200473052350851006742560596386105787677407619258545408006631385931107653929977394930065682473594928318290915320596633821488732457633520823436673052949553625171286066792094383456080766880855355348909322744603988408620620635771118168860488113199218337751520024245118478257232170160094045249050762947049656322032861693845886862109310711655152383118068092348382501296726807532904343098978810648516814366505527003161702449772246690254911236617808772510695698902990304709536744712809201886091436440081032790135294915879398313888716782955453541834739635981314835387809048531935558615422410766879885869010826346084211953120724834782376693041594112341587377778746337426381786137752716614401665141343147757363892268083529659216475627378773780876060267273359976146909761196956447674302369911776741528120453737354925555413687578394447626231376777193554597618340492755601783363720611781471611564964509180744243104135949633843213240382824123226712220634495416841492566310294831122782343053154429777178046807458071195803732002955810378274477797791839047696131233330482357138447738712726265167775805551228967424055357476680739150612278447759171371690636973441317971337129321928263159913744296753880104486165684844665534497589410042451290192652460172611198678363164422441405370480055455190048447175559434055938260362512463717849595624063786975931174234153696036458228280135854704087146088631029761933423379218039332604791445642963274519206470691950003147497963710991839514599358016190964845845510271288695631282610359739249352499769945049833972707006695311403959040563551647714919514390180924618059246590326338499106131377414420220979795842067483312526429847120236182145140360757056210665238583945207744005209439123906612764197983443090636740343579858093677880231965295470042516700005586120711345398148325541676465684790890537048753805639410874588092949953946031459160711349386048806189345365012186152360449567117784963881473705974205899034521704562840702278639946464387001316700308859005285378559041177297796665119431236678090490984981675747530279719626243392583563576766146859375905520390283162076258316741514704600280439812331025755075367225108589514125832498247167097552641142883164529470282829616396149418863339348368384214844985798476965277932499044256216893917149891626249378577623073273231655553020949192693213653433248166587612553034744318979602367677505400199318704726199252490178412777785724536583281778708655791361766394997868871336922761753632241481026696595164204136779374736763616297255224656299310322364859886194965097860705640876715463752394907551764153494587393626605626668307534730509279812471209849509518671593446155561871163515035573835953692966023445090263414658624662965034735670408961753819469706230651640787827866625983596472368796643901540405325185625485729405261717991668541212804098146467056121556486902778336537891762104513696707002140846008459358914788238167404454556688074457829092358513445881529907411505503416095874653949738360146230281285045010590086892408676249339509616381513944936114776218760452322721833226761885848774144106366248817432663596057853425109553290972892009941705014157803932113428034258763883454712197292761113874749383059360156264568908498845015270246690762944694813384051253248562770137737948949724835051149630853488593000054519078694363221764287478950658556268735862424964471682244674134332210365407830452609097181795501586208075579379398870631045584864757016178678125314565230666810032062769384138218402411253355604911660507422778787794544437908404990610217100734199152235913825784574600986655622347785181238999282068396315817018976614057079222192755036441498393035225977467117464305454171068032771043707893297081182269681683483851596401085810222857954766780787101428925398089437900124742755343938495802567776563326622207529072397306994161287465995249525046105628423615304303489802188674927264455694833385197995041055913711636867251599934083092500318717888049747474508685681263640544809104362658025033645974248508296993108304258555399125265902138364294651533025207680129895364560339858261991591790543244197536419027571200764677752887739700984777633505475559294008802337060765102223368463896202498206642073018553353518570615628236460009119069318287906453253505271501577081399366415939550837117770815649341893523828301078801996115738748652415408096642552382567111701807803776482972260212417832204748767945038868977371095002219341894793053352375503345289755810323945779332301407492745941364956829904333952209836968369810855657984081732793219262238897134827179643115924434426704672523843591284317634640598317530468994394034008959286064518336496571455310436670333389246914781335063146722261934257517801965116685200965070665096500535806360003823558417092129731474328835639011103507759617101602092769515902413266123980051747397600389693954028233853032940048183582439208073725695421218042531322125899703538135107072037127108319027471664888572690951319364797351717621646825902648130625957180096073190900595955295972216316783270325531429796676894736097874086948428340163953486273893168443029857039000754337333431324475232221009754938451396594351730905780783515801598331603957155400994447179345162914104864637422400792535550613761838376540345165913584477537352875833175137002202112263883355024209912183657869007065540451204069708816902019620340471962913107516313847516499038717533772914060297502431615743759649254935314696399170027279519053099379969872901877121167807415002979397030603749067268400533896546845926506086220537419948375002894158580191503850321999447663466188924856014641219064498727011063402360198485627455732039512926375371590507650310754696181045866897183989246081169669022179642789168427881147761606701252636575986000184237727116642998107483273763578365985628169546808390622427886386656270988741618645715475946171954657229926443272474378727155212936409157602296655178936241727362392046547725649760179163790481347688612448142337725183910256651116006538163530234623561114730321347218228067954361006434558416614981740284424727217475975763090528369533947303401704735489786771722984702022199360522626827446964940858068293527733100977560161141757978157140916437614802111210215834950259897740735546312494677737336213614869016489089688511327881662963199310561962229332098298516351158982177439276185576106574936772823688010183437878872680396635209129744243276518116501686223276382832455117643080696557753569096020692495842288897626799061833922203730863794523510667065622824913405264121331732104195992198955859455320215988706382486261446323003149332069249301373473721830324488760210929202920943779234339549535395590391321654277739060776016918723421615309961466311586661829997342038674139303324356721203900771031428328823889644417479677845767200834887304840623616433211683764718286023494580896710130185436562830912173219938563435500112206179632294448946348633618123886595605911318960981768034961102255905220315718202208301822873081390810474584283363191397663979883219020108893770311683886531562342424603003964596438350093157397275669254033419262344248832596906635124047524245461462094326040046644209519109755571102493452011117798233906518984359901392813560075043736646706449089415370219005641735494532028127588315377977673556736864443365969793860255080287235051971745149193091996372241536337366333929028250287975298723301659270465935508638290648958187192438999266687790458518050073581722908174642237986378181516781385208296636839525980257903560964716839660023768938714251929910632876393989367308277901445806816044580055177657442669357774666840533140994655631148486630437530950700629102377504874750028282000830346725022603570599889709474584395619757453713978538001709441284342521095882482333132982126227393358403130843924981515657898965953189383335412376314246881737666741548299635867034173837382542014620106452041120268123172545483259527534144450830449133077105002682093697143245741548781182329776398585885630033584458575432217316828306818065399463120562488798510804136713934542657943821174146780882643350295845492560065388307353697338572715869324991062942922960591720418785192739507584641015358025122800421788481116610281267503388314967893934186410143018162323011962369947517898294331411788373471452223723265914608977033574244354909425214576605934902349556087376171856867826159689799375141061845537835965489743648028123102493918914022257536891413294976557715565867465559559375557690398059606688065161964475567198091308683087664593482253039838812606586625874942426243761704588644110051016330844395561542899371737146844987050538424522988464125131990698241822924000290939111258536218027668590779133120080470733062202420536753623729537338741587852381282838537800596481949784653699387082972468345985229585200240463502678668482098991982217226562204514725624041191602576553437479835775986588541584730974611473558672845375610256505329498636927328806857831502618558487283269023973153544131247014161611616520454994559592290401979164468755030677762547385755778582225411542132202669689160697488678220172507786922609644813059675982202060136880447523612969438166151299019054722400212749624030707430991753852811504170046020858384632997862028494665267269607921909609126084164699974095255694533459088145083956555569092717704324999599286234278452205618454133561733991366033536352364314038485069097255217696975163409658816145582792570412231171747740134016588148247901488660994414843002069817315320889136601872675430276643141849119860948323484690488398226419761962518900499578264677565421801048665615030072269255429608571926689006151333239952735334081821933493890282141587304898484913548181974671710740258995286167341112547447343325320547973665218099002682467245282856553316954804954916397216084764205349470846240216376088397697252280318911630034105057638891341972173500212074111820188945868177738145423010593586359335729458517692302433888298155933612241407670450091798790070314025678570094119634172076228580238162318759474451691644979274369481009001287448382009492949119590916799194681320370241310660927316615268972998380291037034203378235998331615721914680355174698886362091053155876980712885676088132711936225115513298241114596939317085382769470315482879895414832163168141628257931418461758457919480459151253952201731948736066640080504843110312711978722935176245975439132856812436385988131821163628802932313095296923038510582769714489101349591380396115407369176269445022842770661499848693804050917061101041095763400989390257035888338843730275120489571894785373236662227839104907457201983920363830068555514520533226550913911825305211764090870553442070189463170244325396281731380892255736256479003399638345915201332669285612948159426477953718574838064554691889685049685062131324125690958736082119475816745294866356117054948601320083497352794772532094757327483316356874866601708313122022549924991568269193218095665244389546076250641912987781466374024039566463909463882837612466139619963272500392406949747530117775781433220313600771271625602345568395088484232637903435990320510601147263615892987515219819128048966550875803980396784406075583848826428169355047636145090165560793518430974606749697080132952763801888355947007938207401829035561992727876418044412472957975321328041878041979288036474702313998793772346228700852985475653577805145614898338027047308206047261931331919219315822460093699896436322233883796331004368130474488355874970649087161764505220701825312979331207437312011031577769677472403762954977741475744074938549910497426270115646829683675489509670005983308827736273578229468424885047459858178919795910840524587237243466074463944458637093194451431569353342964886603178659364131588513478257343035430601028369205425155929258499619850974856231278361167386156512840487826393104659999777290000827251448960642237602661285140685436750385045289708091082716362751486546679484740662369581674214470571846859062039474796615681414247451032862164981385025654467684579064372440514908595045342922831589011074871983582432153884727688877078382640020688843192935877341410641698012456907845018251028385357510787295342984148125068982384667754349252427791851032144265653787812317566130695106823946430429231068028821839148067419154328060703008337238140782018672296643235647789580870471748289500634821918471745547344894053914805006568921982773065560300542252228108086269787421379305635262160591765555909143148680653277669999484311952632938603777526485176063160105492713025779804744975051331304119914005098077981921278009279436155880457383483336989439085760367875263850669748810256607774530291046020322348464078441930301626240955802135501929788536748219706991173760959285259228672623254774368486329684576871400974227405553659634844882827351908422264388788277911721217019390723365781868346650812193847206193387849316026021166640863249906649394253003380657472157814314330961678060682988767025495799372020440850112745119945354701490765072233395071634976933414292126947932693657245245934692811782478785533478812309650854186866427634379373097853105918737757430180095114592220876786484563895850611519480532544129047104843026636333534916973196772519533487345860198954671958282904029827898799031783340940976450472348165804723475397693637072939180149718822806661273387503578665773563845810286213964575500710731929899704125831168977644425457972084716688144115087561720242839684994683970073884129138174445655516525033895682831407936263679442668597517793962459417765874852263745328250240195486415094936382605671598406407528435320503137075039065473795800253036523894671376823472329376818374810976349774742301737553740738348350906188293861029904011115070469519917539645788086117916698117421008974863721198380816673199137047637064611189345547050817922867588042422795688818881789120174994467629539423552706446536262187369854699210225028051112396223272220992972772331759449397199587440020796271581991591025281698515698309114906225927305572305815786635759244579699561958702559285187030609653877675892325197339050452243662852638500325185084972365097582988563679141351944258510584376565974831641662090494038081435680928441992545091593714975417176731275043393651603867554716508685600732543956414881738182001247645118936429617765605900904117626490856486209800544793621712273804845835902696137454871333506748701311393859542687046059888090488041349871042025278542474604743833179143058154672241316091200913519085390707920236138055671954772629306660332032308008651836478181936488150575279081803858985576327116403494731653074859202926227870106781889043701979312364687698061000142498687145820903738920624010451065161078087165228929406262678895796988373915686659878584417803590158706302584578561646419384647023236496170938331264892877637769446065711975361240828522566969277851105298632888781105877338800031716941542814819314920111457803917839963792089165202183442180799673135207810470682104072229622897279993018946646515646757873823674858575876663260491025911257432703599601839571599393150082631539902147418962907658783352199599633434817363203775257929016634384414763648545557808788325459246127010309528663241231155723577555732045462731200269313495214009429116286221603700016040150221147843818658381156282993512008652672515341553406217465948063646234956766776665384748133810530671374291092968187108240889903911341531096725382137767074542792871757132132669868957806602799517931514257536815720253825889901811564277323562329672138483218112583519583301505045782454735248272426369255698803242876745695119857143769157762815979870335305815688553471676463865160416904944148868238379646587457002239863203334767397521664394408721276414653628566197359660501833163946634994047831658723766449911584574754078466996195273621261007678262887322943339195647196983260267636197255680944236549927900427713392488324398178346414621978146247059853741812571578469039047257737670296537474321913025751445004450633992305599314434333069340006812080918299081704712848103282797639981018479345790260942961792673287825062523248936156664853326350629700295662204935247558581208179848320497256394626697817547585199108027902177217727536759617877996476231288833242024297068596567396712596184740313340269377260899493925814031426856328453090689545959694640613619718192501083211490499907815617237077394571387230269588199235498040820094773871087310618449307880412107029886454521711702838725064003208037579154374994548887423065161473535777723807642887314855330820388698936217512876637206247365065549973141376343706886827893785058353135430645214988779331098101133162389082166365130239874658472119080800378467907638124186922968060159162605256826015179923577183081797465769004213232070639056583388080509384785364654511909802609582734538164882065744730306795678321199946235761229307327584109483711270360436166537502524745143762119947001577397717775704748092868050999421272450528056175177946929007252062866727531838700629514623560256105003100749974334784801401338554225749125945329283240663175323992307347466334913272424909772209093063326772017653641867455514584817007790998816089837469190093694016584757526032641178376481597615041505153294666249037070633147457468999351452629667539607529259891587073896768160872454957852347956951421976765134492392878353194371740573537356733908089053195716720601478728503986663983664922705411813111092929715400492320133358100916411780116639830423037036639358981037149926927919144800141993147368350217996564202833489204722992501509365986949206712962351019625911093794632859954902904687128464172463472166418515956362341642395888736856943874123406388505268803971467072061080491667677402069043578134910948618097482776481285604412489589600479913041383120483991824377199666978500079808627594420403444445761853316860113631546332697069374244879570353919323383799878446369145867469379562911687450765323604651471120339113426452232083481331748040170824462281697254924387309018546597520894826492689599338702493451199697490610942195856117393161944726296413817997097063185413926231220462780869705954293092812334232308554437985158639935624730224561422018300624752150872584082383396394269848598455830678668170997445826608834097009094488236367841105511450836677297910628212030174906704697710495227193285281695463485816119650204976072780078101035993135798289437845939964644846313653519725338106125845902578100715163259582049225071630825229335739589028965991725748951796189285926867458570360954361561846546310287606437546064236503881203535415959972543958260454482497423085842338345797673143381463352213251464535809408617669046824020756706102535686022997616709765433941817569118849353139168433715755721445813169096589841029469753299481521394211824698309286916283638603629107240252975401078007900562881379945698884454171081480060395013703183240268720835194017477094998582526998185770725809624650256530999110955907824182022726558868969242693651310421596925964056995376594484547997271601748238709596242522644657718417097114624102089951540699171826896908808992018507177985630548154544499793525780700634010312537567179173839223784790843453983635580475606817340856172166543671356702006118527597746755355113879171914367781486183975759544848191967309724525504506832817294145018507773473263238480008776278612444189943985737618447565612253332842063630549639596486766768296728393901943039527350123605128118623228968281529922251651894055772529878690892086957521569316362172959022549212596611322376832445353048022880603013735373819480161323459279213606943834736807582174126118011379805208650851275473591244307859105700569266513929025944300394692073519659140963545747927758118399731046035582992834670703958364756822396654839802371719515916006257817279115795588870213281230680756408292608753774361371192026941711737429300597391897757595904906554478622943396488957833759566650886218296112842722042134294922816858564043976408077124757128857418086624305531177947999014811266563734441737222582541712364698587927718103228674216186179955658305173160659368861861142895360722702070961028419892410416104074330777814555668573737361197647261205796975341963800343311545658943115445089668562856792128294264616277406500744098635517273823509982009616016751014967824308830562769326998751662666032417343635937214821335863983147149679755064770066673392980285100750846520413305675941603683175326995752559440973125643152736005338472657384165163534803614033777123088849662742724780661477859400855068962234818002115658677207187763364010050874337569908099138015337287292348568875119649258519712704638458682047227226780347072969835924175336703605703299269938630035555103641679904222443069430070518161353825084284846012574562965775057643378289229491246307705175087385494938614553938085657743637443005064908471285149968854296300367264631315817185790762592505429351767350255150315870989269279048644622898324121543539533621768243147475228806174323707896457525217109957102376305452498974397603279433399428764862785522039958864661919928438718494963864235123343827697117835096887183139977731340725330448231791610983711952073393885346557719156824910246416429142377082819010822319137901424906449555975832588089013476876712472267450196010281839599531355856561610680935800215337265535144044127153119300412126665997305177931935408238476295154247734371148560452349815117796131513518503909028060238558922487014364214972417491924602405162642384488610022750976540669584021585332676606060537176990485502365155096270955272298051938570539416035918838839872419831532616749378116926211870540102934375840889855351043361483633469805850976026400856831063801321549766017244349980306073737548750134412411743711607591917842753259604567307861339754751014393339912751060183549531898958324550939832082433362429547601659504253189805837118795219043609274129445075258781619473544938951213969218640145687440409556496021550368883999812211472682309348020227797437683222917348979074455134353210686505997712550457067850844527706098974780233586983346335134679249565628890166984527739073285571005545233598076114002572409584508534948683458357573684912464336086632214801887103681732319961388551951446871925978822864718023022340811808157760253240043273261402458369087867843408702200966240609929401869029468982437336385713317684200372773286123578054863024937172383401766484578787436191621904992351527211424527841056569520711667901938856225212974776034266806256043447332961756979953782211558560166200336299236156557675769971433256007032105323894905207737156907350961221263619432033360891570797048928060702957921222561791563635682543353467326997486200136941572981929299649573518766409393136896828365717418410457545479636613778293873221851453319717581565173474764790114955691500419346145779374051828763019430667449421180737152896511174591903373995447823642683026805461951378676074071161064228490843443563892604527821351899973637372775687699012286397193725005577593457125440053811689311650012753403428120972046576719374929093123819191354437226357666981400133354343998160937421590365341594290420941058031127284109943562362711771630563392893555222100518746438926581025348002595063893465698006454540956129413440213556558138408872732685934868977895772923407417555947507458412698105461783932929315489843799096129665204459276830200249010862956995449726346898319587508745970083195096865650935499596260968211154588674334999771747758799206805934070121082859422114566523812109261092388632665981711791405905330388254458978068129032349206916556383400981156896921625034712224508384781268979244399813728759982985351167791017290384553389646017981843007953054896909304894941642406285366248815644070845227903567925743301214536451027842698893605571635653644107508811693626510081112192797229708050991551975019910906013180005832285546751700711627673977933075521173481473206597892629850426717639730871959920541816612143108970115753107737810320315430999057296695399103209482500895424259002138347916961481755066503548891360584476543840818210009613050435625797470574110722560427572706544216118834830206716863291312467844984915993320195651766691566479054168077788380274193245463985216966500568281416021947425703591012939662587626970434618141219394244057051935485714613898630304753312220684847406942393121565519990329835815275719419067726875766228401066939482971496334636482955299954293887336057881123633356111128718044519340759826763739096549384415989130855260250585966291356266691327626175653554364096084384684507143419066044795474480932637097924860693929632948874200325058800223148257835558624377694408920049197134837543389566528722840003411786361503844785684091205265677887720987196746174816722011917348830715770495190083169916831091428810144164316015554856673216991745944348909312057292193880859822266780599070888196387781643033612115950959659799254348009543733384530594200496192478395839361396143105866919628440863981377466938783146269046667279456364119637715707282091115473942988073493703819432467712010202548913413457189871668129878369238218935304086703968682124459208268631873962539453242186959740834668408453675725266894612505441601101900988674353110737174739800594156694852018622132560835482530272339795821585104503707213304922642611414209461716850345656954808717063308118454605538328333740327454046714475250110369661431360432086443036059284049118312136244521886129971074110941846297630482841717365100933786421274517647010101191633293634788001728851978772528641769091199172278755043604265259168777512384913555345304340692606067391566760868883536712910198134693185780229475009391363831564846406248297044145304314120953873948571317204146670700901065075240653841324316098982723020402631453803216582348262456765141304552329866143218563114971254718225693378460850690061182132907059414023660915067154301413056945177187194117435338968193473917700090608828928654519143303798674341601385447426795384083044146738146040570547361852463454776879976846023045578305039144006201752369192575307922989251074971101903988964528518985214099099567757628046017656101309173818005246034214089027706680922988715004054083779921717731323496308418374992731382728469295872241187601948842444777057564990365670072263538212398935774246832551831456388352874538544727306736140600497783020170864384329637160266352696295434055685412643308368986921878354893397686532438718195793425562793104419089345223186705691357214352537478129045943242143350909918040363397391545994303270646573130270023902972020970649234531181733339143225864994831893348504325971651034314622308958298949366172206161964921787469714191047291803401239431256288030334279614875354390187694472773132018093766797677011929710562696220989106082326715781491096404471409135726966981642670719020134991191433584830569397188330529041640642489976996505555656029909238719018968772604459746235056536469667760365435125183478516156150129010969291994214155671054985855060062122264718746405787568344481631280228563570692940284491764114498878295043173054675850625636709859742208917455728723774884056095752543353239241251597484136781958674971796503756358527490788139175436649380636539857031396816396904726576981323325705139787058258691756235074735808995782828861877140993825322963550053994840718803688209403496444794336301472659999465080584567082655899164559855350606461740867753573175898932476402710917260144596141509489749564644758275938258263254019198945814052685944561394605725737491575227001470872046389796022332035834202100764094445481405472967820353623647215442635164924337110311080949088420968053636276040375587183975587905299101791258335104914549184646123300323168806503298292944188309504337768780873964301548478774557812471548751031268151230053608601767958434854707917654375516830236826038301840908006659403203266259593033275012027342489017219149700546785275690289151632856002726406877906150958756676734512020005912684784619232160231951102311209633303605276808224093896286813381342225342090747109065474337744689761509671669800689735288935835146287900912898844761720274245056774557170436248086753896510378017109866154669392359215856020925741167743826756303099354221684705894086808599580481270307562671372775308983332884204250392819612542359320537217217978317125340140599183499465074828857398710935518068132409952895031603574086867912575180233737111118667677790988464190540749092054936421766448057901908519119382131429555115690359360161775730165855556299549420233702891736845233221989449081033676063414865386461582461789993080887101278759390924973062723970629559296459584148126236533421919139631075278308886646498764025406554484762661690211828621990708175721906000374866457494739464188383444850406204754907386668910080611256687502560857012969881720693777005290475473086431993434265844337766853868618882837455835333436702478296678089168388527648107411521165752083068662057049188947663988557164914958553171735945856229773691787676028420585224034503083451037881673783996323222027698219984022886704104056788041546557135386094743501764389917329007083808564781978713388450751644445655659673010653561601204531499397270506774554280399900022362183492643600611013875222009538070787399765299922261401679010733322608480167312757782416061498185864642544316885927914083468746906672384143726501884120986981012738244091873199561323030379143145430346954584959604267888421318296612528251082540635995360990026683783919411616763951337776385838386078688731080535239879456153107540339172954024994391577739556294822861321113583470886645374198880243748856784345914449969290038933149482585944260839225501803759568423438599455634288307573244390712589073852894492102935346674303279910940557218742632157204252511080772667838379296005320540593239481730485111041295538289187815255226854042506750696656859613261089342798294379503192232161347083800390058877256383531004384856088775135634545890067960087059617443361522375030086381940697802939191106848399918492068283045890260994832449511605837707686174802632268958631660808629457985922311058275405099404627411734212755555508130578804789399671110171600586755014869855411021329665633232998489271039909556202195793063049611050121926210120912776848223070075667321557559553634384800073828699403948173083327559896260364563042128802202965307410356654132510989320184097128613868309930219801254226758363445469961485997017014895000234882342012753260060430760792601904431831001144190805080223617928947122961761335698628368071873028379910823202159525258822956673606593265522148646585556957832464135271316685149937686843552878656569250835645823604662335400542053081458386423474952398955614293482423190778422289457231448683022287515417065824674106047667634456280384378236300309796842940056285785051672302078125527118484099458176453423542732686524969708607454435377755166935010961046880405489929233591316012501669272167368054247761843988869380993010317110239026355334483673564487921649496529577064478771856154131819498954052118748221800860099712299521430109808976501131840049499447517492351275389665601517099003264424872501267177247094889717769034570385835410974642112833715348019211954156777822563664790499747037767291030774122132169485473552161012733707660647270185113775872829779778642927844431040364225570586375830630819637420820992026860926654158004796238280723463154833458729531107370440420026158189810794293842990681276974768634231465422898866558200994088531856123219567885093032744851009005312915025561542840262672700469128236990998985682634214213141968031936038900887312904865179536826062923637073075430780723111237144433609516785825456814193140040659143494872822126684303820039578099935813217901942335065526459207905499574245074349553609679535200801110904975120900620193315700215460277940265611952171136500032249603858659982448978785179213034848754969733614735591267929314589065562423197086601696371434788308388209429236443469674805161992380971698034570818644414208602515240121317630038070498532705442417935907892939360502542917291063710005101493559984586676865419139697636699362970225262013088436679855954908179411746933730362368795862987216788383107114163688535983227529707414170154115289473743865845086680350341095155517169023078452873103069475997191160454654686635503207165255057782116098190613845005412976122361767489230154264459157203193249702778868352244727553571947340288219271112336079449927390114950154572032107915060662429246825408916250105143724954127317247666837174915173186909497634475501825965276044371465856795044149364338762134517796275170968347089168015293581440785263402317941605136827951112959064714028346988123112149630849853302212959556200822963206268739296251562293677131782226996627388974265385777624936500663847346515232685887844329773020656963681656061183693844361896990647639522431990518919393867570837257587667574322054904355798700072972887927666992654471775720209494740388072350060715274379147113595773210756005490099431383408996108795247294853119611702841215849288524509451634637098999727184992343217974302527793038955091624189013818281273491050463656184550241443457924215999108387308346173298649946573053024298842817354575743766654687648141374531617249187380583442953795244978626624187168676181329793018938717389737166927292513617850661541082258770452215871903761352213994639801159756758984483312296924010143127638435538043032132250892320305742650982642860231660425572608650284921351984580326966828278269303960026037460743705220442090179626424199308238939744581794653932521043903461917500017506624282617160182312323067649901646863801881896494829270064539204642444286568487277139041567955873490733897656008402054414508650358867990157691263057595870134088465233529909880511691157869643784104990373218640906098483264148724576925184966992803054204388079459971280450898587680799487656444290204224180469068239444278674360450603591610537743904073687943085538388831925983304843398055789356231223738446737138129380141525709333613945542919434433531714894971521346776210775268294964637917737263557357462549561009698765486846855995761934875653461362961731876454351414368899968164770751486054729036233446244250583462062236804734893859244507931256920857618751219700824440512750189321455617901518015382669456120566355940821818423215031075722754897179503612227590730808325856432210729158907145635151503491347747665210773530799989862032615866546864312440858463337965519996121391498129836938097225513734720335479799587525704752995892051588232947103871549874337544820099342154686643654329456562869368126395241591741915550877295827449526054293012172140897537279767279835635422768927300570752594774886531122824650323681788519157629705539920248513469322157095888696801129522886911171894197565042743518875536180749329973679465769583125418275379054150444983460812134624911348225134590031888716654725884928847179428525691906826844762162406831523103236495233986063264158465310368728969841172962714998915080518392643816226136156866533158767047211967136863320607710275706096969664955389240740700033837283555981651674305473603861224232904954844465513859877018277255608513294392102613367284639590061074678900727524187064009412559998335458102449907231194994995781571633882789128730994248260967255875368044131149502929446737576939222426415230985552789398401325934633571572359224571406393781313256091590307840230929130332917696829052527368011263895628314855031940528821869543006052281877272409607687485123628214387629695413083677014182602594869512179396466116650199013159961085315547527241519977845773692569248179515963120219931995819175751928881690375373788980768364556796209658263711383880473402712813749705371401810012240779483756882263773688114536571831614363460824730892515466384193124753259418001288763480052908017877692793588676166166871691906779424165169621885785865617577658183056236335869915684555133946684608833495845755810589615135440526126615602512804603185426433746297615865226539520266733563730321654327037524703204201377966745471147126477810429971271285133816173559771794912854944860929764964604574831196568807311783618114338471459043836760096620258918364252238917488682261175965746822687970891284482941883671760423271390134721217943658509110324111135500680953780563842574960769300125034360249255306924942282374531889492939277013864630631823454970251918925850922562869773086467635590215977612602815103541366027285706344480876083307834485126917778397771283766625215085691940755244581597823161101295818735322960387951973477388248006561811413380989565214899620800729387454901999292173183523137637780429682020605097091327961919618133675670962256178427659301908527685830316640486856092617166235338781771960347669798173436860715915237719243796691528524927488189155351682368912914774957446078110515205940379904336451863593127570787598070511047068749634316685196892586414242110013133524940897744864082108849309868292228214161147380175499862258881074848316525210100554692931320789155070328478731108864564955598822095296729689835328525069015488844372224705543847004533748159917926736584939716180928117782357742850456388813240392533088992701427795838497444211553696037113563399318052659029600134616019911723836285781838226023354008318847053572927816114432801449530534691361409779137090640644471114299693287555725684888669788442264220342499524333258316391561881815260511837220039738625504060145630198793533241023780926019607386433133943773068989935108405266946629442116066509343151967259854875235329062466426980022291584360753595988693995570683665396652544950501455735947803610511448760606830466732509115702193571666247069236897179063118420660087559661286600874600858843200872707492479175476733013353045507983766382530457776319142054436717152965745541485391296556691275718551844742762296964458441766711617004057901432586711549440457794912347496041120111982865519346883021955533669036635778992166222609257666029895253766190386809828606874295206591739104075829751445889510859303580299419982464086052518471326893057060020539962355093485573148009217241698163611277188093726125077855481548535287499472816287319933046546854853255465880369834062820197757507262739072088636528217543322591637347353138387542023988817227901953895090624426133184619720966088706999032670993716135070397368398454661591669022271607853301542491598117796005823308989046573534351562250603709940206090981810677655429754583815726503464140567338482315143202715554081398867833474983781652320848354957895404152112326434909324879018060518058102969532373310143414815484366630008846958346722624803933904461911214917496790707544766701943479823804465013093306308863807351602617750719659399421936164538669753037250340873200569066244613674197693012910672322279399756832257721990621163393985106969388181202020934661581772222568146406297626898050553998877633397974097132754930427543153916984993658359192827205197635119899252773840193763665925653362511974635981384838457675948110885500899085157602738322707649717336752253581383258375274466064935777645232655457863886192097044609144018869869124799525523052002421396475769851946675984973506529660631619871431932527515033049341056494486953069265462323314902329844205080436596334703899402862952794096379397787544867945523205762104342987102860220093727799441409299922279486465661121590494571255581422539216075273971427797169766416174296163816605637960731608243303172531080490852839046208636691328816680740035387322982377369911715056793906952507376718906122676632548747539913526778094391279786050902353695433300326420791139130702987497310510682945185505158919920499157170823479224927359495754553026145531641068564334601552356891992169563026728569936351255165045537221614063031417000903913946184095188254190213716970445008881902926892913209174506404797082433180160435514613179620435623723565961977391074650238194230320245647474103814757549093987816941253589837077798484342504678499824671526117725556001954115278069378126525404516089823020222909126655338975429980400876487344385585996160597548843419360419400436468073036866031669756201572838489129848422396465929577373533837712889126230756492428259434452038918548613559583981636497330229606728841501980621330248016854288872584011861608042424358701359255358557306282362680884321352537074900205663585372793343685360936005159752733805050267894252481465305928808380048774979716158260382013611058143107178845662095515983703608219861608810654774408894067412476712072273361322315898666150893541549827716279705554170800239221350718258042990360421243330268994151625692183219415697814168309201931500426906838337038417075118972161071956638664802470770128007086689091651230147804653144997356270214967057193176522983522913424656125892988796227569109777120271773559973117641057309514347864844452111508654080196159447199682114153625733803960359052506117067343337024464594371088952480345232685211039653203984267084644986537309143340758056219776722196261698619539338563782696094073361180449519646361783378012436367256315170454252223904842160709595596698244536586644433552946779911114673375681095016096716481250388814089815333133736350531565309787723879432711995394283210696935225707444742045468158054126455577967691884477237638018123122174102690727321974480467579771238741681337465113962271731568218769973460781824325278764814747716639096169661254023326452023226051630660451372512069249901336621139419020532936866521743078876505162860200269119232095943072484511227639514967284133969789150088756529549085909063897827714601336805584747871162131742439923397196668756085454545150894220830648903430141234997773127063607570296103924497359548986062762164360333135860777226008746713677058569462387821984214746927248594409993595548154907792447221712981816874061680556042227057148327873342374528955240514829234671771264811500099738276212329931736098581762160430986492001849803968028825078551525942876931934103152568438814319466293039515525439123547148228156279339815395341146114140036026795986059982452921380900779244317529581987074329814858214626180391246800580902023347067212835469058040433118374149221413050487474847645252517036396551900816205787927221870674570282072747691635679564757403526940596816369584398664462625257965146963421572554592623127753907134332898157307027905134379904236004095015697584589382334474222302293796228488274105236585825827842796241783503142912650370418533054958490023272331876821095690534647146900070893117330976421315668660302096361000517277420165533115996861664730317599374453761637931015388193818864442687573435146587288588579268887021512907384145510449034101783778330966716567093163789660623081021900685414175505175514361243067913662601788800314479300280803004257550676487820808043783636083078141142017451948170460085010475361554614567522369200747889951003110232464833689128576426864498115543538862893096024999805192068603062134184646459373881540403431512275650087151448561899176960437319739196730495847518981679254581418234209980776235350730720433075145109122350263613668928816763176090541654573505926732878522476293384481491780586895262511133080230529647572895241947481839092534411995359812438126354000283501613076318295682505464752064525030221511005960165789595114911086549094518921865010063941188159254060756970395036559683889016997678388777125523498368597129853204499765745981339939329810619279294556436205603716500329011353458680088629982684242029973966114245075540837049026076221044787216397795779743229377981167369280648525165650891082568819101417954079451489047828585188768827469071123753268100646269276237987001677879975274352305675551423028468637026566311270133309476228540720051305670467916110138632216555989487859192155827543565874400682669236745521472763702718530380789643673599644439971252958320430323572743111038354333286443644983260941222180474734432906534753185991522677519141577571303692013106378022257475167420635523328494743043897510580798767339447092971826807501932316840534179919298127718349666643251809602188913155607871715304650375514001440550812147822258307935631489583407997705167600855573192535333854993325268827777128534824455461080203473252348228185628704338260567997922723141207841793034317079370829671440523395423862758062196873783130998148806353933450802830990390395362330174569912649084027157088689510049184933265436869689885457536638030467854889711440775015401179537641741365139302776360968438439026067043568275412239831003362061816772988704797226459999492456116691398607935921463937224311927600864572385921624129778630564680412490290629377335411997419691192333943759024428820229803152723555221252724415095733733864489664606472180259627753988201910768060249474328741492874628320515515907450085038212960245486358593464570885807521041133773511694601709973662141123615229143604232756873394816197401072991414588324280293465430937244937731440208997686366698766299010755301644531350772242005326984473504483518994911161851384345067117119521824920506133518737138480182582714555404435179743290314444036616518386020829000326599554632039315864614901342221296757676065080442413864556688890506439765612204604962073356796416430385171092818497093966545829310706521808869218840579814441473040346787546451226809004969647396277452020060359921443592561416735774516061971021405914456418446266002493027874816995570184245270681820844808468565329548151358191009972492983409565201455665546743710556074550400067112351995524379702599530797095132197275860684490105743289325074313915980920237720225237826897997474062790532756240768418456455425411717121723724923612075291246233216803829304830837598927858697334719237357106442628334391070504998495441736294337046389592018165315997520707014653240009501062322482953722868958642335393323183262740017007095008984927032439304674483212055056754564958687440060694248415426971814206430681438695118507184793250796018456294650409505337285819705422743744252048698751336053154744073884456861764406209663422819148178296219204097453929129641866060455225549716180104696621148528456233142842806436574740262503056986836327971744811148549142519968287940409525069584756133856066572793172068312968970251289164669711411426439354301327639750146570008297865938438394187035887507825531442466354884657427543607918389855554140602676086982606562634136522689653239637522476692820551012334064643382167710066494901014045620750407784098097822671923460288236974853062418733444482833302622005219672905547629052208572193367892412886171945443644978030905213777798369684573211310331769720962445975403840961766561469655917103597583832795570847711714827636560292367155183177780154728537831994327241546691124168800047853302487448354516101350773076890666219742957838195177319845120830649022533469450122159587430832844882444010315223619533914158658144534383638517296106534358978322513921144090305412966977887819842368257151611288943624761163480451242807588582627362718618197373957957077213186234137250420642569343342401878326572462032634493706957205640962491527191205366322501268638691305393197067736442207734182787598394041484003560497765517802831026549205274324495117496011981279325813377258809625562665462543563948345345114088629431051792911636757700288064983610420727143615145846276243826456484667697200321582424104013618020078816895662594587651732410216348562137536779644805747187133266786110456240961248985666443577211596344975434518704624859077272351194222806440595618887404017661032731597424123042922695363628461748786213938366147947188120500260091746444031692327490570397526261872115840011261166687681315466546207064314727901196470024754829561248991342694532561167793263742674726822561650458461825958032166338875579669494368528603076969687547612212458348964039728565344174634518638799680813396709558505830115592085736311887259244621512462815151176607624899187878101112917199354771727628764780957195376610010332802014365973847472167420152229055294397126249145378556688881449880859348577457141294825274428199760206080831419517622843110091312870099099452941500027821820844373368956599510599544284308339950098005851604156801588034755258196582366992525900125147841687156344888450021698361674774817430445159279809276191443491517932072984222592118453815686780577623832440431514038982049556216564866542131346613518803026124568615462817819398850696141131931435118771415416228566050154302210551558000862353224111886136728281446169167569127014357359604128322839231256360460522832456341207107821140985702757051637898746824601054559509902108465179754351238915243772171933444717433085644890334387066722386640695977131849956146577652392079163146818406765644058857594500339802222991540455259065172053544169402242572502909013954365771336088385888999667787550545665612290538847282518665883212923184119826294944384389705721640248413978544109091852451445111993306024205559379374764399920805802706184552776029210220199464389066954467516366391912534385989372180112696999334683098892798476444071063755151665213098472926359366811368706217030352394362232102075119710606356210363152873518921973962469541782047680444716077314729561416259006848885608747761307649578420445086643418565728698657095551191952438979955165989185024757733843607733779503321292237729542125526950449150823176233239058452649002747886601517622359536667900066685476459362564926131431561084902146508955054745470229270020281733687275013923036698878655094578521337797008635594811999437204139275485482893953933129704101688345688337699943027441501952761833035731457481639156017818851497712791445955122624373833789455815830072325350927248201005048813764041541316541753342910817432311616747153497325002551822696360264241154952363241801889182924084417021446544228813420599894145013836889531932276207169349934182472162520694043894729262308592093893275991382631274514452990156645371112370198463557167761392121978257830945030612264407372984216159416990360365610360021707742680110776173537802225848565209942327831523166642964492625130362016910663914102849899460646653197151093787707278495629061477680665572883795659228499686278199914474911237124066370020697804371530538570773027179677839840142135811811162077843396002644165278624727010356110513171139100246594187025281501017743529922867386139356039876500895119553257732851362699856002532646183691111586205397978228855564742507185664990020654621398668531994385608440310720192050035567324652174205027380988004528928467384133679992227061857463952122878145687353909013404659660223448557952524884160339407464900936947435314934665722831138132910678778175246621073061297576237062042985491772041912453408543112088841348384724808235047370348997530780091762915466891793632463789261882721008674208622464092112385573369453063548670458514506419060543991665694035420726812963148095053311074208005187761956182120187274619381517014999276171465617735194802149729733992710019425129075757807345757646329841707220396670651746759212583931941254463155815589834671229069798682025332750707389367768413881377122543322808291846608411348436763184755832146907758381841362088862471596538788170823225718785079699277001702284524449907445592385104389114590159646586529096226920225923241520237759193655360571649215820704929953125373585034106513855427938196690188014341975217533153925698782594363505563693612339788047397042245352819903907121981503075986464561993650002174087316185769792151732947974108497139282942687738709185731721404838000065892511887005428073678900700871182200778459555976157244029524523965880556479518626536706633339263190989804361166516314074957852404951599714406031827893099955036144879529651668810952215084180231034627065084381518521772628375642083784705993819161084634694926850841579779074127484032045638449266444451185145606590292003857605458698491235387641044948617153642668293084855726902730065603794433321856791204410249954054201390281746842997207270014036296912925327420797111145778598566131802186774504428976681039001224340859769489363613618989184740476364155615022102409535800058636169881420487660749275563556012585151818601340053654393562804523620271539028305784258666670221971032243071807314299572020862511504910309997172733866437826240184650164786480722437087914414549841609492072693744958579751776294884989154988218350246550556343376914162171532227323631460046366023123941712509628228332256354884125773385056490901704134677501105895767461472613336747427272309548534378899139593524420685523460188201522144435321039443222266108167000315400748088353618445282844454765521223920917581332009322439397382284666511117991017075523888918265781179688786277052836443547013108568266480918462189360649982028898739813261309492728475859010921734656347883725403866564952740880366384125861910319548123336192410441410553251867636867624956639006314804134382213320690532718901031811163189952747855782854044259604821352293542285353661339012944045429560840185722332769127384335720121570662495817612288241818930632768978856987198714306099057576871787634533514140258881385805078169871512059038574940569598052429390877258530457365890945839175599546306687860147149916976493049651154944336498074747225051576839063764628427808405576488381633573038144835255539447822423775425934985466634906943895830187966725483949384172258222508889316663171004828234068165069865859977847736126375354496363683093911152829907692564760467694791982205418732166098354887953894783741728345672778003897631134633141027979701537990627425493260108428629684124168580076422108949351169652464486021434510561996674947001680436027336875394787681485645036027025773613428169327664082437651184302468972646569697677774902694372382139866939276480546291000532634833987778759367566733095976046100087759979471785189218267458492590825320413513319781448244120642011137807761397121572350764955794845706683849496605055115060737564213009810294006106960944760752986817036772350210491262479285802427772944554599141042947086937814127448145161816365027292296733213470771677031556364685379339795451234344960168277116544044681271353804608023578220309910910702348251019144168200490949198378498887734670779544965810662365284423377789270673511355614213998268561774944860714068450887773126835357559191124839543012366788095823219671149740765559662964261614173278008083118308495215335571031840146127073210405304421991705188439169170688396403679663876836449667795022262980867824752225350924045131831974905414949899981212040404785299060287567036124348765962310352148667240229332818419553980874285431545518848529293734698831195192707341228450663334278374668271265673900215027054269169335408197366454721778324760047543450060606566517415264071274389121854897501872833482012024217574147184090342016486167104960799676279051784801226335833070337600130609694969283347192297388622498451057021764618120858867513641810665339162517913477856598694945567687458842392334755926473916977327625486080521777783729188714014315107226304921330389154374107145174837415521928898607669873164168588485756941935020833777551605715781330950096778859155545945862222818330017293008176162057292226109046715243738856775021553512116054693677050284991155664753710072940650593831442699887072799492582727153742356231706251618495437704846952237578309462963409347888717000223499077648466710536878253949069195407049801294471550428027212453281384110915323500427179007530513305728424449483074005823569647860321640245502777029693762615970958479443527544753813381905136630944999971953533443715517968987056123452970040541591759354777644945054454676783352083137431864844398796935437797602243811753886120237140859059774724942525793249493489816892345492993932712292641324711758854077508562416911738159027647559321618666053806109089255600468642134872031590460350020479106038822456548112089766628477935482524770511578496092032165887665667346468587881338346033639554664773585915410399725334125437940277055470475980652747429237846184413237136798573097632335807478373729470441577906651273787965141266084618732132786585147305570045656991719119906519364654591832111316545892375274432910522282852996591547888450874288315238122174727088272889418968865783951898585537656019714470425017461352397120097149551718731652566547173776585978463827393760146457461500542915557167284592028595998199338805521926154105250631633288343488770406566350014271708234343826422108839487342725054170151730537315571861914075696541757383341751732113515275379894670028328606967116721842525996354567229999641267561188900865253788097425613563247955177433103152916518144659909642708469638841945662395176440324063338456769466707617127155755348574812363203779400126472731315137172581674350542351109791481163426067087613125971710169146896661466786519846679222482910906541782539550326822609109811942414526845916594040648081454093312229353480202847006823545924948199990067430403764257864713354991034477781781895186269995852491028857920532845924183742418129751981230372887582128955390120919289216038284229488961669131678242150054615492851264408242434965511853669700587137942558624034584879808498774554458337087877535994378345952098324679483340712770110258555101669313467060390753215464624804444294862458330490779212987391108434762045090636681497770479275595480132396027013586088661634979823406354915382195871866425362177793121793026988072580708342502912327294723307083682901072129258131883625674077680538234859268746889361163777778621066939073109271192071855694181310950890478376979527637293594112033981032694145166520365470144271438860731392123505353346970674926455054326513872535357427703419143674294495108163744713011282838113007814583892549070722261993457718181402030189032148245271138266934963541441847431136830892560303659481427442904474402773538820397515730844747849048620873180733994504991286746275327048431539967780489451520002118521394068665484869758296247915584736861066700968932582353544077352970807888374171136957371887958838358163695165504267805032844994685389150118845761063101244297789692759956220345855466905067324758300583919705286496890737584793280028575909708725589548505989031903518157221071768706901593719869608627504042115789337399405282513599092987488346242200026647974695084214513015468663142811577144526146484445850786381965259347304314024710918466890226541555972119673446582759371049371550609985799324106078022713328011237009125913193624928084764620018852220812732725491865834233882722973766748147427043971666756055897184733339971246572082761566955566260161215921581096681179482958609262523602051725665802641814189658113584241586333202326163057502953081909722234576304702310404113227488637720005544524841653302366680867262676685827640759766427132765080936314436344269842028668439998573882620710374145610244797406384063502989740686204765174384988264788001149776299055368520642655195828867647026396962201646845417081623201351436545182362316207980270456848660666543161095958559184051541705069513001780821102878040413385492823311556947319113063196593574548011609459814833837064246992349429642764177873009261505563270367944702842555575058185049871739146723520803065359361059745032168750787248903546818742383774049858702928885816458715743300401519574924523198335021074126411939153542824713750710652154179894723432781558126172552748971606166358116741700126183162870980835646906775098446578572916651513563032610963124379658271387204281095661883506928804523144682227735542640528680956398083589867042751370704749370399816837799323135732866634548790454866289515296582492062095803088902295927767924321255336810163532172268854088710185871653025832947373431458533291121752963257505613491921499110989992454220829538475690956387254744250709883286092388560102969568614333790988011044802745369204350125527393427142813038247790498450257830755414814935920028719345446823572384171221597745716276929803506628749816897324509691080936561361935649672962637054964727291907426933393256262550578887109814091840642185739623587411984213218215082614045596164375850148459278749829077123576741857551396617040611117215906334692118750320352488819621140902992782189555974116959375479369755666682728360597821256356938265547898660042401971684540477719811954424741218158551664134091984715940408807481891561623438829228980577487967427960252202754370720246694798219578133342105771056618642300715763384798258653000929703146841532614257215266686028050336234052102216589838987927130205188457314149412182292658819279044138192672018707933608859358201919785724329132497007831168136008646722523445228214601827716269228229584994713044475767325375865506244839611506658496571529854974917842851711464163962133875896217944103702968023920524311577483960131530008377138379618879569798760177689128081879568019785164618922591967084493704310020236414478145530205580892120578652613859530182705898263418478035123516786992672021902092533992878595372759117766010327976410493063790227774720942734437277257575987341874990904221530674697985781524433348491034538903419526755798992960952362432323510429871770944716443808249236805511872684510879833650416359236704330419371659322661255106858628717742155520833786148082574894984071345856701707023471247630083230613990154647538423242460619398059653486887722187171210407868769681758578701539328964107910439114437546059751187486982890097956950297559125168789759543064079512361027116779330457529975007590919106855807644229730407361209925736543814506171242586005974668180468398085091385476554863452364310825942167080992889268077648285899684477866159049052610672496534828851156327512825127468339924123807253628515020439692658791001092146319685260655142146785028078275096855138393567970430925504093727313779407125561114686011803277162246571921218171559071877103510661665579675586314004782492599300088655547146672138127023609730437300540077040959527301494072168026591996754136472271898378905167458816553511085491264663310251259342224786803076951980175991576278494015800369379212832191540039899421420762299271439023105223315323815141366272756126539029105427000972950088952522575001711465724999349664556282020299157505038467364455345224889636788931549568110963882491220168986831168671741433275002275996270003278755695373801448908873542401636840802634586586212795260713499688369600346812857103190505067156861226357181444007671364297997127356083449596474014960272522764115335206324725557508311330714538999649161752828409456697340068699480837226975241215655943171742959918251491862690279607583218379348449038324184699954294524170041478588935401118405142353212867517329450006388017829659866965658991570985379644501072052976598111719431466354350752789964772988701773860981057743022031207819345541163678475207835889102647370412789482431567430507508560661780435047146646458387509856531076693473766264289816970109374073929702187714117745204882810955833586242222250527227440855515310235546078788085333575115883424642904538333877678944123688485863299628888085852209301913908282289202024698937158275372273742063345263034297927230673293238290946624834469481869437073955315325669338849909917555928191748118802020390876377860806368249425808340096572033634766157402652957154592640884724464434272227871060954473088907673807095503707513463343834134199921023222014148167049041640996898498299130877676429761389848964722489064638311057344097214821098373934503263067583547176894074000889799137863071178191203312860789682714064507072736132449494158519769822433364325289485516521855222622135580203352630254637755655229457567091110327048908980612184081380999634620681198263584031727244481229026608030351661816423451989450059583964354894330025096358900096438520093613380760637235092305159888412926636657142775872065794930754708317123555985446733011388029418821600898847498434541001239860330177385456873363678946900966348969342916656172659270872295860347444752321275054688790499030983402352307774318405824816002187831380930804429657480509156801031651704567453802837035921465426973536943279236792254411728760795436300590098773185810939395963311222548343845709698785846443595873428510595056109902474800390832122792368245655161448656355625919361258462248082832337344712138542659267777540577606954884284078114280444765536478758571614701225721525008290159603392584422957453393636268154125920620273548983906573604104697831278521985621711455616030390780566518001604687924654229698319948787648099928357920683437185279286782488735051184082722162744130347500220516709158598094335021688938986269716890613566508126193159321665644321444935758330009432049501199393956793319186083439800600479858932608231345360931260574910756831322846968059908893135624225749737761979074565808147630708955176682107612954804244071355564247852551224635546597228008719836160701844840200602858170314104608515053275325038462311614042575528102936097447084843171377685343641131853653863232843233248012519139766394075540120518648261436030426865501675516937792087824318735366409164789760899090602500763780754096806320766765030730572617048238207925990613898585902231364310828112184729112658534707086133841534833684933769161585419703843687866900468802019078723437930972315535604744003199906860046471132123130673953851905238922730214526388877917344223504167375733679573948632104029891262170150079398576092617256417029298954930446187587971828077833831340465689153848266476703590919846096860407761022638229338721852362423891634810969113511446571109410339593952440097636441406068831160564775671165778607970443619833654726005861571975045954936499448594470888527255325460396555077277406517847797104933376998553557239176240755888166445601679424443353075339206596035385251719300033812952012590647037233966829705611475365376756481819562899180802352139762161223666399458775924275786202018169536840068916460107535914787551008297926839856381538770279510901699244869863034105396651187727339795256711482256682596320033791043897308214611969918106480475916773596494617177387963082889433755863244840597086282281630892573200633608352598997738329110290875531940941337883785516277421404234545628990494577107358858513389406478581091862962623231157504448006657279155320827343810363823950735797377965793368735507731694754137722192377438870809068496316857479903901402246137144605189424395695821467211650905832776880672487338253071857601870355793572817370650619712159083190461368708932454658882828066923386370504911319780363512262643035786191192630875887167775140483928251943041272189793456856967223203362306205372487288426574439126992592259956770085489203097545107493745980527880600703207173372822765961662984491748238907484016775927073535384256453804847972032658284899953378288294781331001095661204965882087323952209872440316555551692361660674014375752342247822444717015679547306601105789868996215987835501823116853040126317167986978715239100721973412810716385558144493551840189444611754210892600766931431052859220195824965242595010247106804215789711332882913187903816940613211056253511545551408344191896604330251400014564323588992084959471860975606843047020346066612767306702850573048911751296369809145456639602202659214999946797364473005439016921922237935310037568730853595978388973447905903617332881615950871101057577363993194320857928441185979654988592235024563300174575123072222667456887397032647654997277850841248175109674335516838179076501620679986771104797729098963832314524185140225950939915183715649702620193954199685665366314895604117920673618499862018642299079747089840282381007727081070895328287720761411390604576795172651243267290208509916012011845749161169391212675411266735861214030976011812513690316899462942279713839699148168186878573322952264550498597764963604788177390532089070979916041049743160307936438103126006386592349619911663762306081575286937773476589977628101748291746283397883611670852957408148457209626793995102002704154739081584476154874803908069398203249474753343349588347359829136744048156243024681112223017263100248448773410053000405579811564893224555546997513467832354707521452468413938683809980049512476320022785222810965992823182524807085599381413848101973222532230707818786841586520266969758523842688930242315043847302859537310467293306839350591363991887187813602832238426885477277832002005877851606534196613205096242250529193701812483604757267707810174281519343086878002914718126941353208017638447144694727095197845046615529024562037631126678126240753602763412866716751172580901110839037653615226692443073581435182872544288762025948408297022475775532064435942934696484990296493876883118016638890493843670053421857843446507579615244965976169316216322026418670396118925059641158606719068634325774808009036290499371398585135395252560705806800454038091572932241700632756379194725051681528881839020744362961706771748038221972145214047570883289407095156850526758711065530066971190950656281198034572262411673684904895854779440031440894529952853161055039229880240148255689509157379266917633469969329378370318524381793404757408422010845887854128625361357430796904027673593811428342651378435497095978206597981037737487402416486436900094288122237784944060014668425935784611851610797624506966772302017194135204489279876634131510281528552696580859038954454108980462422235417181513164592924734285742456499374382794879991353519254651147067854054674343019811334450019115644964328186425695058572157352095966472835437638447533465327958650242446315637427936540238633281640953822759644743209734844605101771588766726930634502095924322579959848795882585604527549258201771859168475245936746713851292401724021983236859427451360464947639227268666362074699057934838549960562298234950286280760486600867365832577845979119873025155266974154970136445351784517390410625085077672671460000295008203081276636013201243130128884726998211673224341257323539869955689120760528208819886139948884720422066183972870897891769810131184370237796714731596719388508225654334632548009407240875818769322590595509698701087825619230491422432134587805990996644312476921507521823304469184430044414673955877789429525269585815911868087184200072932672667106213444710277945631652298105836620103014874645676476570937232031955561892801844836579284410908808958051624594627251385606631987040651165483529300237309467269555810088984004724094221993947845012284986626974124017952974237149667668667848424916790201933759517123944498353170223684477706709184903757627087680345210078184176722332276846225546023345709008931734737935138865103491283960927407580448582489230679510485520004461841104109157089687331754386479181180882335584361497608287916863300348992433116624883184947629199890281778877625339183941351258084318857395650033179584569909523594424601730073486728012632879010064188917588731267958006888075583712877344419210340890558069808039006953076390568911070008161950190055930511190287753204666324801052714658551211196930730953281440056903937048411009947558551395535035770917341673702338170685437234112260955350662572323421506963858526607093237675351330601213502954441354868340340662409659240417711393380426638571834826113409057225849650728233732453038140971530721529856221777067794375602368761041326208814857457406359233422050221123102384867502827750896403600279748934858958404717116180882157705619771511624334249387516583411293405457849031182989760373920196319509316229184923510927596338609369392678724152695922764986998396157668441849024055550096228808060509330762918725561076916452938474399295003379575077538129092699352413927284062135583573344441978175863069417896635553658309140663493118467433482605020013872432173280767306901630670779847347884730903823180557360287283201560354399243753669070343226767111461805187251638890040512846061481036444633175280562969101425743821273794280292832510865737619236155574930373620863981333840691064135786920354675639696356443452054759001302110232903841792906579731998989755050758633550447805186507484985198636906776070731824349778717695155645967953772940688196715176191752316355287951828562826388745264186742847482260372423107457395252019579673419851505664796228423333099658332585095879433143316938192192151289490233152274404338447547747461929332456582599925612377200244419600497541903422647409390350819236993609468727528147577880638540191575999947636161096664482646175339920043594823146494801860155864528380650630472102295206578848749883563979973114991689201838614585585002327632538364138593396493223125900556182444784807522419392164552540653421701958456345283482956199801302076097185969274193909377919873211122374960621210530579945815706668770087179195974321332282290215591623816550824569106233314380616060829979729086075289396145511297804577732193317675503827151322750394242989607655148473770922511912925191752683491423344610111528543735940745970673008277617936239082260924739770533274590156062798772198418163291638365546572240441708391221300996271161664104518155801710027823665379048635303392351279138971632569270339420184555392051812420777171520694626924979007269470855483911156926374969589182927312853628547692338717375904907294124485989259231044179040672229277887144963820863894366889614105179020574002773622588628740582325633808939224739217550400694462569214056695857137096276754132576876893364255719661862505969646890160819833355631012548088793733612143618803403887500493552742318072213914068604796346805642214046436067828950313180820262385918188125805052915340418057023336888767619162162116254684380085366510059751308803924921960052785241461767260369146203637320784520186796038261719716625967489606566985690011023138914309311875328246023800504866675807183124293790122098483530344526520429004039260225583376492338481430158141650368458077487500010473711206946341964991656013024636964322989838520827178572232033920042557520480526507895156427917066082306472655388590191636822317423665241639100618952027102344003844636571037609028700621299999152527504686290563596255228556473130947431452714175405229896862419349384937955029638291286031487073873584415942568590243214452025012203141179379087794866492605332922753814075491201177227702761751982227391267263132967640750844908037140588981545070691429250593305508586274703800654075630552585221671119912452475281498072183752632577799963286482068397259839746751352043691454491859080438262335233661423696323058900093141656732530296671088894989176446875341079487624780538228829403148632039943619628219039722979040442866746654044381517813361019330664085899214702026734273103183659372205188533531531517529292369555154586962502121207220626297319816671451624822557597772254607787620051273326806534112330931350770281462241344066301636116041870484085407314597285388888659839801901794776402406074752041578336745938377197717172426388967386782475237342351361597290871797869344235422916943148939054341540791024251763063229124981739267131064589551895149228633942569057013291490226917061424573164704028360408337739991183906299947855251133256581311635804185198915684885863448536098795034596123775092010033943953585640575960666157594929609599331986550648227332257680281155031146901915925070663583520355279069885429582112145345208270864682359738821580983890547805344508376619444031392374616445239025324289671383551953651540161673277593282016580871246700185517915019163933349724203181624072245859609150757472546345594250613071516777561387508699951874036821471945519948731931516381892194340536399000449957866287006321808653413789349100695781853424608427276691061139658940149943152831870973369457249900376075205239959547488943864576871240981185018259466893908857609933969755326533208532957674583047780724973106717756429620548715860182173216530632935584288728136454194974847290150358949835807003656330441993890910169084933351881841811682292984312356508117989932733438598968398306776391140240215232593026922671774649701281245352320536921768428989141679191675491305989001273568419819614139540218494286217285306250814544173128665763323761202217270691789794526947999262530190611732356903410580120750755406827050530103117136413447162759270106061007177250322415430047590264820169326617393002662774653151955060409053271317117949109352491682875896171024959666261149950505598658033633412199955370490636498824981057624236857744504318323636530807198853726371544265517070155867908017216985279168794838031070581382853951789108478462938116692642420592325673384794445978450821969072516121890420902813040349689627923004648868228044659383150120656675840852636760789206393281019203237851824348629852666726171090649195914696171383161659415359317175017174611800512158408969407198776745108394579907920009668107681297741504324145660486448630032944659356687755049509772024377308058917966420173745258440708490428271247602205910434760864476647460616164760614052729341979540076149039031829518327207964768487132052415520634687079424486818754601798999384868104345749259392415700572515906506271419428992320507350998847596191423392852461445151689336357309606676359796941761755610340495675089735181039072909079375728738588430067045288775407939195341365102482729669846376705658145506313696484848080877824498965950646396316295516470147846410185492439600979615697091612243353827578852468315774011232432920233668643266767296651883876581550999021017017385447590520553956055476745559598399167033432943553081624319672692974010203740319156006662009505348353400501322975311853769203544617706660156285371867997871177011257828299322195376568134670202322039067938808243400218935483290491821157915785304018522532841244668294667723194008313459008154150928327346820074693831735409007613168622434894919946339521488234001254415238485219874788091502001218943662444478528112071217970692575674004152589455913546185614689360536986892546892918921817204807940162195885984641139706209438654561023570378006258809478710746569654892463999122232922168233143438605966632896145221964845633082676851233982808845250502062195504271646557938526777780502682536308542503822542479914428993960002521621065579155590681596155697057919967254753270701334931713031334555247841637446997999640709962386932216763453821724252369412659870956390623176959208431314426553434976246360735723610917719501446199321330595706348563460762866534668905844764344498979207555685266996467431402002665218528232921923875958943680579718526706312853394819672182891780041451140157389103917193225918904417898804303814604292010372387427854729122383401111510118747299999606963911156998996485091405795430106106572384279248685618208853505230271869621569093087169402407981102067236191971945202218305267815679035089347213955847142142218701153787324331660192127644963366639212449876238451816227114040624860092431219327762684296330714953170573734903889096810622873827794754169199949515645948859070149931014724540247941370371014514480386868532693677649980540518488824868219483514995303816425941454175410875884596454343878190359138455268401704990104293952649246356285515140738225097152871641285388681284986380191985807994468903078369299178195618861287872544477191441317026069178307568392796758991931630526409175071007101318011975097009808036474951419344942055685390407013071475861147385191715336050238189965405651886156979242039637594687547490050254121489844033762775900635643984337948151396375575472113642955656621408399734717277718856863303181059595592970441421045720209056517605910555740953565393381455325296345765337957957734267814752783751031982776137124004502242127639807749769875427003303067721025089750404827684325916159624398517733485985045756732598632250454907640925379500407088159348024720234801894997838251562073483952614105391730497524252986808435221138518319186186731627023050017502725684441917372638234379110008535969001278558379552852113275596742599127011880258724863694378140885286800083656090710124877933810758219844550803637198373773580238179474472459336624425538236098347214460604303543573237805695371553972318202551618400254432197311804889071017206007566440922707666417366692571171428114671327404113715773191827332200027863915349745846714578718268385637583639204663446469289598917901818153123067910035974151265285876392458227243399449152992165386752521856041666958389104759088952059208718598909947673207658401864139951220284960379626396011480865364536707457457865717954569952123507532955828885408196904595862867864613188198810498336668549107878571410776846742928824636120154092363574587066590487627990511540184074666845508009946479718650456169807589418077550349617436281516726167456600179861373201583657359626290183749173964964236277075332991960330635183730346473710563467060366770196844783912650324879959748879118821654751604852576256005812900768262728535414331277979939172179832401397113911760686107976008631482629476938134651296211563629654259053889228935410358190544130013102366576997688112395505880825347368496287194558098995044376508829455276026752801652595394523205461905832917191542478216526876528801855918250649656183469962051177929254559050223451377591014580656087609783484845237232402960305103107363591082800794380166516539147521186526013755828827219809505711307708649694167814174725071715358533896861552252069381465864265884225881096112698273526139051316483227588949499551317189733379906011706358881603601625194559347708008299544524240663258334953561545280549871264674589521341490397508666470343240354794808871275197499365775392229406150542160406389635799772684219384978264015446145203366248096321182315617182876160046694914089844778346586885167493418874447817557103152394052575562063129746729207415079993859519337693400434348937191426923425969479330565242721567303670037669869509844520117570640011766867649133058808622865247584719730315566838116292435298507077213192668930495797057486317124192564692603242282554151032225066214134945979474048497433778495296013109284558471870765402857607318077583006027641332457826576545355692203961424254538493764396420838036560506933061671057482115791276133785382204063403692600557198859649335514983386073161514969037153821043683753550580940066484913953330058841388484072539346268085388032002740436047649989233933796893905981317655794481574903522748690162715566292069823303896042570806330105931382940521493518094722313520107741157757563265360079297801288437199182216064438515229227720391747482688634853442697673689905385566057433018960664285082080983571964311661134896001386353869209725871678836785584597506510945527767102088668287735598966492374214453037955319455474013270600769301989211311947197435218325852834519586080848260479160195427877558029962324383142333672328461376863687588936429386932921603982838954685445637112450307762265014753924425974698046278675388762251819127973742173782514954268843411485760505173371918935003712833655019628681447605146625230582618493738595325332000224084825583093442414325530247295453458621360495764121601018359565730581802461768430037515373830504421194397875962908203831979008209287944988564870853753927782234352147239835923602402676526476781782540773745710803241359988281860052858487298133598162604923424930011152723291625301291203275131209052870527274200974375863231875950681505413988956794496082890640517863805281697488070855382878214235008354748112579161275990314502323364901692169052979667793738466744511394790758579062345731131842489593959043085885813562113569950267812581970022464591484467097422827803388867930567990603380688046438171347376934600979007367708205919513252215990764172907457866159588750974277350671020871099298983322294574561512117771083775215207678233851070621274208340999053465294485486431312890489649071511644189851501867118965868454918273850755697015853338739525096875181140867710846475675434813974910965792251192170100559410722060046404207116026416160778478530449878285936333471726029208383791385862325552941822487557346287310213809315180356182053570865687426589198657476509881319166488351851802783577312839956662536964043276630482547018452624613084756856701839400851294521231469669683097179028941470896476806876280763103565747995351724117879320174276413895106762983125568517645632016945233892495570894181487709958442289317539469631944996052559334984476522988355140716444982175678279935564089177183463371989240383540333324484597264778386495745843403690658159394925661892218289857976131880962729758457183156838336968795122510415953317258650493045490244461367929464754482918905904927483884316511758879503800255181162249595242059011867657118118445200328490097446805110372436472949686012626313784211622365883339200985524257954201846773638856243401118806447975371638927453350088725462157888196669173084551135244935886431828835254926555377286086836383033123237465584709522642870151018556309799425783531465720659799093270195974267602399798260990961977837981756946782152918359546010433087799242324529612960177319543987968262527145677652366639611860296397023268007988045997815545723470892686267151968510657575600854705220110139213770392256173661295699217507780385897634916483015443839405374374372823097980192071849349251261435513853710257324941197579758427057136031073913020369077158727312048381523682451408658190456681810192947090370328069173361139100197858365961481376882233022042257281183424015213925797948603431510360171390766595867964295671160395748468259758818278249028350044273993657072353819676771384004643701702609174848358046932140150496779525200797629072325744692703742031346194320693717092780196994074826434335975047154033681191611034167984321977692925698607144545944863355985431308170082671684059189533961489855348443161019257504564943464318595597855137230715269477920818947384514381416742233881849382475240797734250235787419317503222585480877826781629724230700533068512796047964567695424542948123407417988532502841257662429690665643625324777133908340274171425931863824476742180865005783853590597377742840730058013752297572525711814550966355766495767734565926458834502462477071696597206542369485566163932798854509470803746420966119119629377119219996505528039667496064308709635281838024732039392593904439226611163167002295952183655212596723686656026223583558705442481377019540001407271080022583084129389063644375898401578760539670960042710415746024828337745588906315498845250151643761339135495394843282000248746971827056337758527898277621662115759745630318941942351154874832331989776628889134027490640055923896954177173279822082649255450291821799776271717505142450636008892879461433851743404408835437733538469683079833097659582142811376710818348673023275522474329731229775639804932055561357151987505960027683817304731750501004286634960198613039188872100618485257476201346780711425528230252660004950275258681053744445473647677006977932282133936792575183704581948101582035705581968579812237996551726418073077223456231619572815154303111719010040753702036730609657024250599890991137799126984142365342470657071159817458946513804557001300337021937169667821983857868546476529921683754551348115806766248297522666360849188850563513372459653641896917363706591876040784588767582566501628123799412355585555997486508727716284850494621150644636426524470611257903637726061775905726324650375951972980031048130478652279050139419336255662489557346086086269664595746400278247806738708897691087308359314607332832396602498257646657459001596171039043996469651445734955997548470584740819704948637861412230251208657347914384958200810958962050147728256156529537044403716280454620253445692374668102933117632420643205299396206276450266840818080379410428881986071601469665244680251747894319335055184752279189859139864259697383833905939944793527240250225526412520835327143328653750189198580849784449520815442826964740809004768484023684882943888662524773052157428948166154275346747303978911942180894795680357347204619658422103091072012834287324944667510880104085729125159207523239191490936607369863851509059343865231901734270687896174551870590040514833398484121813361757499991225104644527228036956150613286954837675641200547061055081229831547729022103243354612743110744903544277973236433249746434935976070316501629897106170498452750546512894329968268017877380157236640831208049333770576722036486735143019526759114674190536531495104925635588849624203424601298823496277263971414005479598843961492801186642367629526413791150988480616631205386477007290423074641855111959303522802869284312994592922278937153239032983273704019724109350075326661508329206405283486470932301224935017121023428690139722404254975023355279147304295230225595668179843707855557496060697931708773864939275197727941824768045365511609268805917506332507674357744355560368599800555713479361601923932601724563686282146777484123862385660602231519789758443678086593055532155637271668324770758316372371358291134712307362138883658840641281993753362820481153138754391866504006776149967797357318919256246104158538807351716535236885299731111960628045592427900369139458254654489440086266775185268706763785780051118322745410547139145123245455972798619274015190114114791520204878753957200588835048450082916667488423405662940264890262641350598432835002454971275507879815482508347382921762985349902257041895664312160845521307125106159648116392689250494983950768588421873406241225814038202287563463318709042458562942282071034180054103277039302860689642760540806056949086645532589797568860080572659087770121171110148013427303229398320250526440081147924265796168801389694494583364450158176138592404542509798798952587371061451541578820911017543626912463243829860399856434536055011783777097266025551176764938052898135870803888089390251611459802797634733168586101881593759808718195685101867725261284769735099336867676233086516192366574448912885921408399809463551870625818000280956289215234938771737898221967421436286807125417471436286507889187746808892240623954351861509459506605022775186735842328070505558044085372121621827990989014698397927756889147304903070861001049470741376328780896640652423889687110569561347659840302853825991756965059429838455100951728783995601577758608275597622182491759669942909566569092053701122659038389950843536623511823281898839614950704910656055941883344504621447867077985422346607834249908688539486906373214254983494753598951306740591673185813272755269195306827038177826526635513234049050877809011610588405920890602033634268623561750414454621489809791740922998838804956870832989961329047783273127920434436949110787046810318736078977312464829854661205929187920329069517275292339245179495377991550856164577955764139011509046280797113254316795994575133969572636773526729989911051531294772930443862676873841546803022460547204284414023669931175958623382167172237040028436961517914935672208715086405586571255996615838663261747574574274366473816060644641630317770827529043945290924979893176099299521112188221004449778623114786001946950892930818212777676676941905927132893817219903247096675173063793931403446785429345677329400192580978312601849907817134813943490970868956655083549029369382278574617140632685530139985833132913033200955777767584364738158303374345631309883247192769477733220701930182873940703763833552580522696590919605436925515321676655985358104055831172062732515702205255091537383921386038491844648817635476965697802470958295352596667789900778191947408099793276122204327580901579127280147584731241636771787961614817988290091386855093828449914068236036854358224825102599207186484449579429749385281953836352557158282701537474631707951947123445530688230777598866091588379660183397105700320668099169481343573946702438495268753047718193954704992804510088767215142040383267774948891922845193875452978347970569410963343693420945616308613335031188463545758913325743719990016502416790242875692845014757122981130964741690045416581108946274331544263982786037554504676021262240429398338395904820713566446168253713769792895449479840169834370162472963005919258458515417353042383589055551601217580198373420528549286860684359088750861365969474155302801164366706520143833066611957119402433511667483322412403626355842453391439353216990279810785190287627700180425510587574037071962971407643592982512053025387035268510962293196009295939054165557840558596989182399699785934304051343171559719277756265274119625021035881766492370047778690747059351225977246118026381098573043342841156622292656330172250276580762456570444409186977345005289901701911928005496934931138299177542568919753135335807530717736874730402294861367436766890140808895217938223576008469373824090626077799688166859404189753920008245214409064262068979964345515553140555015657847735720934229117632338602026210317274966683389569553717384437708549310594147602831124193075870189287275467366309174647069929860650677166314724329556268801315340511436050234546626888990015007299457436371369374828713115804608958662420602379131051094845046422731759280141304060022389167831780150506661138499128288277146159745954697251665507728865717431687277316289587593244206530031411352048790409434715349560351944830615800590950435189713447721703207202586168014564426110038435238994273681730663990004246369541788583906891144416298664601939163202399731741628219212398768940940761066557919288966284011287189007043654458243378034281524044001778186813062276709730226255292654874058920419467638132263756420358615514125824411453031309913924227991909926247763612198343693397249115841719539728243390605849208267658493887024183409766822554246005265199335873179269755691402743313386941225735916362165734601537932981268140389001443546420837834761352610608044464113767586678080843663142123771781949910774929817067568158095672674967838212166700887191391685607464168098884468137770668846581262004154898759824227612783437344007454830984112982815517768668953798037741622513087959282827603299606816067530378170442234686976637175132355187163680592078115307128961561998130128841275357782851364870345461906827769835809807963744505335884660500593987719301941493508397055697676975114779261976001067251012480639194483686880186160173562326259638617096040580677896832863886584143077836984757786275802775853661288892209538334158976196083100946126309680274300955179430549877277699401261475128750830405224955882902115926763286143796859062990033429832270476153637889358380694639457757588612851357302407492675058370458637163695601328285811472777636472911718547323361910203442437605209611112065621383210735854562695774353836219922578197033613020131075275574945453960602101224866057086708853189555781033237988586322025639058819459344949868822486255790887615656531100481670124662507197935625552597564914412558540725826805109322495688855787101366141010749315451369729188147809694009772947145734469849649684485233202686632948229359467853856846928495500789319466559526537284603610579594622513987586647951743018339195621292283694453385217537924829233257412662333253124899261397057494283556730078773089723521540596995308220899109769684851860891294934016889764045337563123697222955654470721002901348021190459055258249042647822549447637043460546152430145479746032546357362197062769290163143247709646649846198049035067456920340729694861571416806757619240842619867428704187147180607017241886776036976714328533480161395363824368524439001752772243722439712535206160169083486707838142760860439476899929892589220961325247949700206143803573371003764979686429592089904310736654439590394747842351090516720715407114300147742105013375369895172033277974865152079017477841481697278139799557759943725160595093614101452259853722937430661047924518453063829803425989818949467276209735865435035654910726960011436969713519484492285260684021869141702057163537346979284128580487837725317505906366265164744158144993017603721556576306470972913611970520265884000548835134291507172532993476575879586669207582315433872368817479855491662338216650985288605655079539971830371128458525106010528947896925496949008891865134225908622693833726458375942271035921815604491244083348601866046549631377168315249166455740473946016526643058410880982249461220407711585941749534094136217686870371908716560943360348510438909200278786385095337272224283292492530960133179059177507603247443301393717137178288513896430091978973161263948207033974476910472666505220784186170558249489765645180685157183808007269087783928707345909516472252513511022164973231812707741765713816315574935056052291945726248763309161587531630724041327311865732415069005692513349942941823616734414776572290630799902526074125019125014964733441568815749148559961704697533824115249496223328768936137816755846317320183559995955253130457484122265178407357912178492833610734616989385365381248792500165149889621823814757860608953721052270507545352848833299922992574380444042198171141900299299576883438927411781850681322887435234351197445786021427398824791616448416704135084816340441775583809083394093732198264654843752845263144107968718095276313913771725530575373525153524068214502464158184330537750798443285623651272834594882722508991195465793873962268852454142747890463477242741091923802462948860383355453243086053614005072325947840824097894254662312768803283997509503020217758820239173101749524571565973731885343226929454604157601487544703733228474268576021503084159523820130062213833969274191774392930580704961469770166364397169916768872140638208782705447209282563196602701993797160417173021866947133841998967940046869695155950422537909599674469655293167190405975956016934228057993489221637605451583339448629182293871418321314540738227977501865173502649580531503707531713717602950591735328202439735215101576488393707621961838073640429625831905886113616023672471679477832341607527795423223039510514460167682342547603622562064295109343326452204216690061072277762639358145047656307753777764045622001402224070745891549616797413494068558624614855153658592765778836865276644763731391630203934756418010269749286711054085038710469778644970950022708796757133629111959850082728228966917278449864803205779002318516702622131472273487333397764911597083927382724502975286453514564902706469886903513971872984161355177648077237476318533717301794859087906649812622464616825978865601163827899823118491427888983122668666403053449810916402685068771647446254117334091259029987977598420538964927721147808213008252171593221998727937382515136658856811870251389725262884960691098321176685868286324399334984519586069313556007072653378626325351118443389882677006758406470185163278934879548990540068747314786808076385050138064275342863398860941584413643065580273314266966617257316556796807377314070229853959002134476887477670912773796039771718081946709382674848657543822103714603661612827198134125499699324720272071697746931334580164406262617185425599842949139920147243045602122947411519285056628410529594480423149510836760770273796433056283880659795992068842705000756802359628884538800410771142579407693924045867221120329230304760626923426549537606671443176677624766275382012226692974900024643947322618622654844439543288831450108449859331070914218568399115241044533217673407594488844441924952591018523360496564516491471714097339894291091210666969266162779902181950998982928992523392305111400824493196727662828327113851542299095569578491591488073142091720039873038394747158701801244232431561408891770108985843860629684097522177484469668486794589829161481340793516154245567146301942381331290279371924547592925606211650424255314420061331370042903059340794710301918037654735714411398776504103943389041021180965689066901555854896297263997337873700107023100332888396361700558371931199608605008726997856130188668848885899196514271701448629253471654822383573033513410620872455030662425330440714229982362250034864183236447200912692918817112557091725188853179639339651031226059213134185616855300621881383230896758490208432355022666628889028437331350116908681208111824790258622315239515325933247421772055020042914545016345177099374538319233763139180519801220050500317456284551917498747988132123762361937879732220897664487016639858248119206169740872757570623994559938672409819851309617080067775323715672969588236241108110060138233207538152515341716123153225607538435818100035788122631559406344234793688616677444943227746887990581229522237523698218894698818467342361709287197989299958979019995570264065569763063273253384758603910906401021411140731961316262867158015685853972936137161450408863580637746420694541986102201453881498853288038217367091337497877907364904321990226508288136997604680561313509251171539031502460567394748775270375152832371952031174441563469587882356745279681161578161181870879812129612358714714939144069959004120804712489140363393787111742689826763632793535586264397114210708195376752565186078567914502988859159713512605833548173590263523022616438594860673783920609280625950395041678865458691367458702114272403791793826343479613716584003521464436310849946789253444625143981335483578036005024791999895571476219118637061932116779064205817522315868237019704045048910877194382606280345147580049388517473935049438227268854627324947112690757237494391869701693429220671089929422186714952015642354109466223913815867260474941761831874620143462428075285599724510538378578944311290102977785858459879774696004666967672049477667160651539917013830418963696385671391679659289439629501137726613154333736090305782441213648668485634726970539499872415811023596237812791060108625055644973978921143331166031398880461753242314888842007850536220205369778848167422629967311786681210155876561570469984913031722092257092549289498653775777344683766648494774437206014639702624035088597205099115080218041387580584199406668253248306636032251568373932033541012825170148746219265305374462787496015874017377908445781459184502784497848245956478512051826622484141119763604891532290835471994507166713766515272753648114951747512173438190918665864923639480604107532302675154091005676686933611740006572861415715030566080662213338390644497859608309538959382325281264424485879689759004155378860339930778751045565641925795947533677257123623392327280574963663465404235124570003706312696633311261391516125717181321631769505646209768405896696852691888423221933779045143906335486365537371216062652736126970032484606147487531942042105730894404386334322801304008417591804107266532755316419202686925726701746070985948049769416705168453636205826887875151382884843227889136714641958611905230874023585833891964908486542534583348764048812914769247610690533087727813598286417780173782470544680029231858632535671355945781827802117733445719142027885489423663658052129686576926084768598943293880303943806663576953818760669578986139225721983989003025147163477811750811536687644130888442324280704722684995980792470160238030662174409215517126585163325632664751864565845099808485821765603371493748510675953675584605509125354613559399072638858302535351923678434309172201034713380544438966695966529491893471873530117576870689627150958030761247650732448621339296024711561219165475822527157942216887273543545080568460455430916383144996123422260204978450204559050244773712460190144766386580028806044188326020297416874913451380158371066549685256418865873022130822396031481068114956535850907632153794843921301899161081398061138788711986442374193072005718776542137143990667136053616455093116174739341921238150863514629738363722702246841612767203941074498224866362284278128798372599306584315700276661155281324970081644051936997240876350307774515410053935029456324255430272477940453586383090548330660914516221603793552647020409463785684671111330159427697003469746430864113128481305044691274462825458039095559541980600745477266926796562097707704549648743548382810215043242128723672596001343096656906761842656804438504100081547460166761407038849066903640436033135112687376135926261929974282312034366866275664680667963354732216248305917343435493097270389302304080710032400082085738213436480480456328794712507994121106305558936759375510575477001683530143025496907916702981600768401935046600343514068710310029092070476216787474689485104131272523341535266583574583983098170733269958603852087012769559858156575077143674509177701168847441630283897442467738633656619941798883339455899231677871602935581853343858392665779564186301946799439971791899276506491194379889731803878337440553061167916039923333076339069243883700546105759915833768217895140285310242678644579294428847229499277887014671705084941059676355751833178479313996364897179087305211621042248405052441918692477594154324802632587871636553104820105311255668176979285091014548680797893089745558636538733357250416998576419962841834661205385731341718250524230313131097898678724001724498563533354268754825770766814599093516765328343528405096133019025064600500021433363871496194182764135463685504744395159585533186547840011503868730758622578215147624362730258268296861767243692271300881286512360192072946909058408554251521293324982399437810916257697998902707236459718758457385565024187523624422148382841421396066750013223801894873032224640149583732015562262859756970086301391088284844535335562947399418992424856273207047060798529507917979530145396108955433637683566574795232672492235606823488350897927712483042020197128519079213822279359156648016149051858132462363938462701124274006005230783091782203906711427538142353003524451542310598920607049786593837790596245286242192821229281154886087467382829566489721135908846184742671714665289814731875174515491743108242188219820911451188177661194289500952033046405362580837662280879694226096678542830941704696990466064226351921027436730708585951779577455099588841849592909272694444835112014868151864805236522526061983576740612018840183045041368266206137262518582369994621715751912683393263454948909872216657782255588235535350208752839274162790132119322033584958558212087377877408119322267024582500171861976729658580852768694193665533870071089798495602928298818328545814303969023213507972670810782058002021853035015803566802001433382200840878984191830093217830898217810748906967869248854466744686610150981297741384355355636377465789429172051298895043100113483290128255235961535876819880552131499239040474377574896542294394426141747591940690912429660969350564172529527197986242211696594638032085775282144622401805002243975649754371564097775026836376498079137591826329520054622327207825468822302734949476558296710761095210605148752882915968092233769389221484106845637635709853170219878634506302607307100728645563877526804784554072830786530750237380498148649979210197961356018449815711319834546587555924900140456497508525682850257786005669537578299339914239255268697368624038219422753958695413165165179883088829908084302678564986483869200375540378041219633232705053597566761149051942587044569877217934291222814766030461379489456297248640353218648739107647918500753473963701079131227068792639011772959234579497219220245365523290273591723630706928268803266239381408609003188033611681649197799719315116762853311299336129755926749380212895876219559929098551117123998376403664900117364823347436150785241776773437805149052333485622975217617103114256560443199094494437528725230417034442115503206263710111087884231740086653458050509394720869532313335240067183955482842372079325541227941957421993254129216838073809150238338829211011406337056087856445915379843027953741566343169948357980782432642516316121319271139818892884147934691869897847755682367070894631764252444516251787182478681117989617613101414334313978709873508569811658961180936260043734527508304744732818883468720792985347266616709089520004975216961385166077182883164875431081017910203227744792979932194380054673695972793059135856663424783725226146158556057926531434119900122716127880630102329131035285042431028172978079840757447092253149927195893581887918967057645692867977006848638937259957105835205467869937121977231767477312731703198453975525049891911232372344425423610691174231877658107813667037158907257690961898848576843821321164158155600939870467297016266603929828156091390881264623046297156769820687089695557993883398605116588475276088643586972858352731006978915262573757018522087688690225353846043338805880136994627849645387051641313901584780297961635971625600155751956472488118662081801091731438526587823814787538271535343345803487142660484777802560543984632350373152973344265154463307314538738120308110554289487283340381093675690454682993706828540954612598780352265928125990661273287577907507031697578131242886819051012321701398089393247150999986656046629782073586619423714816082267477881898271584727274383055557972459257451754522259534989591237005476218841989973391881879623348535515565040922644445660672466273932735143251052920589054463593736540449522597515612324764693589767164093963644958993734547644236850745121942793800060301274884656682703428605719422663550073441305368802592490147986242146658281082721898327798919308420980013294552761339142077473588785641945841137954900516494571346407621525697853332975969709857465784937856931439860669645780827749409068584317468311870927694785099309862198587537097600925760529462667304128117413677764360591065052119437293698119578411049101064550657260215696052404601346202136592911569185691529101817077805830001157330119137012881345719583654595909189325950847624611125003623204850004430697124778521096963151755273469331216836638672225984540561805475722061081536270798447738476749301065646529707670412188655221497552483749574679670135172633811867546141344429024865883469391879039701687279971856022457540021368013538484963069183116926401127790416944591203521010977151442752133677412217644322956735126566185710531781937067980536465120339942438535644932697217887597504773333933304273738294220511711172004571597956242396551990190919273954632276231146692419301792273218681162097303193579792058135102733053009457126025589631964928950586200678423625475531461086741637777320492075787782402187846954046954116286073786915373686047560980397416671925680214755200415222275461062927800341154108283673723602384142776027059319184941181722790208805265183710827599117076696982862032362138674394749385523662252263409129701280069363595847884599744191058638444828834361476622306577236518004700174429186602778463360744694541567995241750001947986417346479232843305468037464079785754793615719483484268701799679612052661886604279739519352110809655100556799862196912009183939857915740515796199027636342047412821089716633884892954949441602884397404849448086455838738076737804170009495751216028929219641584860282716224517910453016078863675864158245968334942366398663931984545141387365271939867734869514814187033634964041997521884181326948093947864446671760764052038594258871109068623809984327522560913444073471922680914007580518160714934950309746303760783412912841111562822015061650202619182744398174618931080608927898087910044126549689639218842179023383862790215478411908429791936086898214169954380674612424071103302210531974451689087737786078020218513847948410516238926348589486111782118131096917530795709204635469613681462597304498766137337949231970438555045181961039142900349001987202038822628933236230849318064764127103125569856879938841081958742571957572558561229934772991466080989219852328243187340661183811541073633523393465029673122007064236613646967281769729206749026812264293101015442203906607663882181201971512020346751043830218644276029340626315290451186390411416973409842630992764376451949316191585866847896267776212993871444830794280537996957337726332713473327311196476363049163973746395469147453902890193498344291267838571690230497905181976298193859067695047293057377667701247841792605244074203453785779540878642853154139669986843744857556162570436804052815558264107035433018034449572390141057210861145624370106706862143879398638776175792428106653555227672085662434544145537173873066092273259186113178671632715829554422617961838983790615109548597696339383588402159207831380459629510069079707509560705114574449945677266480619409521590306407314637918641126353663178775936103540567887602440249277644315819786677506201805495106959461685892047076364152024368516482544405749003763378885941350623701469569850471941561828885069067464327483581292173064665410041778270801723014281533711170410575849723698484259285042895745387654208429938262087025168317236040489569739778115504722559566069596448572027810713846974834722297373361889963778488192390993977633443132509118373508445626674823464262563159155445899137203435161737309558444001175632331790019288468532808332932468455514178476607665876667061340988552073204562760195886901203307669349294460499545317718222626109836477339885825445180435252505457580265960590430539672885505813002534959444127056188164371617324380050101236311877398466047959195866058700215368342582913550714271019725002525566799363514212238080359068590202516230330036224458953990996353534618383358814474611970570568471678289842364311561699550556580212095797182947019100712781093875009737968997062559407758360106841927741393291438772400728825066567373536945192026310471925982691265304280463069590347754581750654064373953234110438163346906440717821825075900639284130805678788845458260373342298390134700959670688773301821807183385494214120709536980911697275898755717245838849773583487739065371583986089344418310061954360207234680849617159043522341048612163677706588766153030284025825850529151011490551132761912701203918806975319824501758411541303085072663905610763216889116755971202096883953911509114923004522378968781816430224657200755564452845884308365792227807292332460950458684711820004857522362562062219509340879555347834159049533552285448251207857722825912873980520374547239058167358239877602309386780217672844666402295740140370681182691272367618366539943150407339900190685244781436663954283365687016797385534365373031425265867446702114410124902097417478099416496973008233089508218804412608413957100739815109705468905451450898696213097876943095037273534151742413060941114571829482153791472355354894873619765270210404140873330382437906853470698815838430213743261046872677108523687033775063188890719835612542053549802251558867095061146984564918287068442444003901914667968193835143853444634348906320348448670428288846883775032888321192483729961213288004654713575292083952199378160985603119025053284967851169606912328736962466945133918279642325680147147071568056119114100349165037627694664498797369741534463373588793904218591032571876815678537737930332593092160435866229499818572169985207196463693778962207750492836151879107005997460819722581434008601956048892499031875698772344002178880626789766749723448521579258713941876729341260831897682198877660766782739454386765326931186434497691725586971259429103796965245517276534922274658325380881826458635907069267732811364713183538484357555072616007711308054809999076811271462932524209642595159672868781707542803184338318799935053741586701144613880874125452495959415956673419411731860405086433476736139527615558323156412240975998768307980322704833137869687504280190656475440007296868637722075606695534713241468584482773579009462386623960246942173904931328059767351656735744940369370645086932145700015017375888068227091937857154275758195123701209602384882744728204792479078510441710832399300937944893731730158955602168768211269501753913138780871238923117802839393528443810922716201248774300343009199190979373516764249577956028467676362067458153077796950865554095013819981413382571336879766783407148649354782726264809957216661442103414216734268282085917727963160415957475844316247230752644042039329204872308448595337633115059440677137290612554869851266278228530908332908719328324649980667838764625878595952061832628551977644518973612722023671668027207580947974811099711306962127613530726207301023945510557440986146026800935203903411971990958593849639142040641829184620348294624613608972599830840816257164009264805795098251696384776171628340548371417563093274850764081343746316663140588294747326867426479225735580795209326502543764418736985640898655910672756336369194872248788187700087958714491405693905314044326410659754269482240939291541397075941616212809302509294892707362141177620198732259734398200606900279705948797309025922628840671121315490809533232729666489442159101251972913496591388013647071803386190759136377260969242900142045476643692046260355626910143591160471393282015247188362941481238249605108335640591816064926625410498715968098843653852929703435239265883469788448091775007447148566345439366098047744512500712278816057505245476369415431734025480980956919113540820239404886940411440810989453687141439756918506176099525644913601883263992314885038420977466300520078600822850319545609694768266531501503191100880229864972113248373699841520482073762413106572877250445365646110860943717225473085486110175827199549100940860805665626958570854740106814363887275136636813727224079450525930982520008558755988447744678352097059920143945575592281352779324849529170145521916377738333547794732755717511078735391238804989655289652767539382481753773021139933311131472804754586300550592370459797872425550549256466265889204881063836959260611411790551853379125347829823894931225793896965728474106165010688643396063371295353002988644791094630714964515158636345801587117848218814101859393267122892590311702543362839011316540980182687493716510438523612627345154069638779655752306712840222580112298662712385450997257276764902296154781571978257294928621039789075105074050581929516896803284137799981217914186271015152406923908669971950989659252329115385722476897290040678826480459695447442961423784037164155570350976758166108370311503285611271681351913168670544903688736983235966266675744014759139007900850821027140424529719428325284237245049990444339659889738550552644221183657008054005796326188397638528833771394806725669710066369785130786307952433143520390801332458380173379114494838211266431922887823045990469725475015521561636751231100182579087083727431104284351808838653953111850429314478129362992857011192303925179624210345751593701161811220980405104298618091509790928242346994348648759749029934612503163326803210655992231111376868271132706307889127847000011381856552216451211841245537844264815335794275656826605655526357942804422042098311811489549415100283785721059565984132414768171524661438499600205980692701380386718040962872891398947648616046184175857896266862924428404224674622479650371809750623299675392566986444189316393612319593416100421529272168641462459861260948858716575627754467972662155893565232812302083177604054212453378922731691894293866053000801848507522218565920155993708296509562205645609618275927140278671378652810566651139302444732872277937547062906301588149313541495128097654054486507219059654787169294955364056705453437473302879492480236236579320029201009258447283796178237412742913536457098668871707964403498249574974699797930618704562860026509082038962516715878261875684108851898134296658248954123154876130294444139486535164017901192453599445919687511771594476479486846451875275468320987971181694576939784572054756837155720950524209085863288031096620267523951908809784814934342486355360315687247737465863595226251641300532366558726388015226342108219694121188426202638003016699835277242785047427926534564383162161681375568738834761666020294329073966695891814800057174978500391564543168747430662300223299394029716278601923907995797948548503767507334906685345674783117916447815416785693793246811053531438068777282957696856429039977176332893487955436982014629607349841885501570816709925089946939761767824008271458065255708472848999379442271449091071570152937469819369048490037565536825093689534082428696962846681721264162635126254330841042811955938525990733927163753271789928558404033510487572474842845540348656636641691698805958504011753273713646099681466726323395433452203431811600887409148777107425347846434210424536264023699259844990429332295358643800802805122768202453710626263192864332871060085526128591385684380107440519728819193249627950845907150057813127696801160323388482200755999246767046642265008235334932934668714170942298020231996521271018965706877632888228664654038552234488381504703489257201724567466806176965970873789797340031916880603158641664734007325499580031276842743048118367514807803850983010924943466788508508293586868919879206247782916313123020861353101268340530185218374475616527080292413686984364230450050457945062371465625198504875880486141650385546872518675739267457353511027529545177365810165079185525083115737452105537737188472168100549569335113671371432904638652240761703917655442035814514950937692049019016333692917381646274586950832424180220534264932904048578871404144514903254848089167939937605506448639103377779411449485278937501676945630356002357171219104755277958186548013967970615341014076750222056268137712294636417405405738985639971573792871925094691367629437808600658847973726920050036271322573070127651627303920806789954711996293166054003240379495788234390683721184147397593930115303229166012191903893681468573673677319007015514013352327189326803600495461288095666365717004249491681450154000012164667355622382782039437288353551133974234495113412917721253745590616559347658218850347085254417515376177621625647360680954543747135477910715047651337328712018440198032010768431397845505178863459283028591629021846222608588778034129348239195380185207551575814762759844225612753771137449399705782943545932946623194875814507246029339855410944864693148594522389970830909013191156391556787062093455790405805376657948298679928759833611635048916199300017688568717969616183637738957326932715989387436236889329598968557037097180644247390377732242184642816578945815287938940812468911158267309936139922130029607067493321537201135888029411877962656994395041350185760181415498119352371340729002892371334468351685707897770487672663589477154538002725490240984445736195773479175803012041840180831075521427395471787652025290411695998314566814401606520320845850013855245392040018004734437818208239834497105755227877997244727487497070135319080233054046753796133434325858368299411710355297493990058185781706858182331629438727938302487567373717884670857701459743902920346385353868839233420058329208041054080760352559254999724581392689653577015863505422796845830188777349166440045410901048120911105641749991345139134918222301985115056839002279378493633684904340646201398847334321091768059573847353610169585976743990802515412852183402491010980797610969956551968724370226296556734069271936861256714421779512743138284718439825483147638920630855700281880153341714685758682696429159253586102466767715253694309512396180293312702251319299479492977374749530778995214871787722077456365410545401521756442738429474121154924454367371977642199610005030817210338883192390414606800891359244033143900683801841144326076137331332544169307573385036184601806181217855861352631120915862664345888675337063693823712176514897346730008785575026173245675233398913515495953958632586498124972373120777349087804632043048831638067226022085762429278738568365959154805753514644146149852512118196890743319555512428779166080776988953821249413002760902811234681052344618958232439754303448213610114823676103363210405221027383785886666984621130315435235667161804495689327269954884469649984460940474209890794924861170554620845311396014019481656915623536943129948852572595488205056370438781063399606897314702281974910456689959474459255060450814234373856659226726207006600715471095330079817908158580169056785972283652962286980236178029071363447265878627885870653486589556780466004001381118174786256360795749900634252006595694031434686540468466109890474294701130151469854171891128845665801258657826284080516403132896955268896072496294274995992797113987466452709343639973478137066326277517333766041791743581177976912547148783087303263617984359462045868790870531538356927387686784944890754988834446354787042676631295543560220348758534441217725390814102624490155191257245588635212806000857566418955505426785447605029721935975119992104655427822083019304246966730013149891541901840230370897066178157814624959391647533026062759239389372623395856180472938339046908611647408864577182741968107315318239559355662184566541226244962566928986656608467503781274187578691651048727880669602178579667386004165714760045426220006772122423448483996022993642946508507033507943127805956185073603917235292698501461150436939440654824890332531536661813688904287231854779460261783485686316439958473432334826566462169973150215455055729793392872263550434108843466766485724100450794440497730697391757242948037789903343168678346824512372495312864859553577352547254461140837065183406541290392424644616627777938581950806163718188323388101613597573626244335278724535853912991098506790154232328458885702604470552774079922912185745900448044989534780268025449757561419807725915404306382811282744563821624957522992511194465004493025227975785441504603471072644538441082422167358634906649637225677700648079205503928834485642205228316147409820155570450575406229497442768705765140143052123418373908261015572137778452777261456034367817566475349401782500253864717288532958555509607364960633246355896125163597911124434120370777496309140491584613867960293704383165177319330491719915288207394012198647546936783951994493549508931464739484834167881913784397903246105363254349757807575941958137491870853285833111935332775331993681453162469096696833842170006561220409214356338757350762072838438151252434781190029958896743292080917117245697099870491833047893589365207392016913862854732708298935637798749010006711914518004049017335974906875885136704050012771526937978482223370204651372624065415962282733615343774908507016463535297256658242406618573033357680597357446113573729270853250833759836241066511839730729673229714989983431127321570171996445126997407684744766574236792431434982328738333325411660888366123121237056199929820519562514184524449697713619351157301557417357025605150720129999121551768710899223086611085507264302839729048005207949832865532280164605402621602219857643700534344169703643301248119755961648639708877800126546465671180181189299221966816386802735815130091990774002734488284875242413978972729691615658722222504925824620670688250277247329376478527758390075939154862594881780304224875971063692906546575360749241175859241568852719192492369103303513826031870575307979717905496019778037644611191359931417344877303127071068317864077698243711674946663733347756104615961459094446625435106187334643470471253529378633825723681761606657965711986733043526724670129633427628901248549413659104937368610659738320257206544124368662185181649105585742736892935868117693520052699799038759811185616283056554850132017867924604475347840412890659332875259753101034338755892580275630666209933649539934097767658462055146197521224217903499132053096686190686063416456913208633523703678295669213493549518375365758502129462586983341465948741645841868465853879133979329122388108957494743421640944152369406801392039147708801557184532975466134340598727501580813256627825834657100221108325540379660773890123033678145111562744118781264752269908338526412803830986017255622343509738592902545510078737979322258648614979330162781922903220466330494417984023776966503024293665349224668881792616380477082573355224901790818294406009872691530312933415750600272368321924261872274461081852372363935612309796612429956486611302291393232493039897465171771004870300196453948007771550678728430564529186024215125682556002941785572990149045230557947845042237484323006008484747828124186821439904926356069881048191491680274716310427113534840163185590483008496763806012383554785699432253529736808600682676763065784916094106710977801499490027841845627903548822444752658026073557084960842538350340479541679314886477786417162213780763414558063105491066152582701632567016714046782070309020022162190698870752369245325874324955202750622185412080679550246634722621569293694012540525976234464100052135970172905552169981791105266119945667018992911963591055858071110140041516329414424353612572203376146230397019140428341666950862851479814317918905169041017657920766059168025978425154418643403665322462022988351306738884863999572859832677648107258440098924099313393728460828798026653426632759051787983446324834079643314792442365627811995513467252280949089876127395364744648111221715124664456922571036537880956386554731951397117858735637457150012857333061408573617855684022265281531121397882704393654587722637322452662223388167103115299279697278734652061356608762524678184772577251399488859982607433781853820081652264195321177600945839116281591118385551001437729192911499779062009113930563203828584720811252883400600599924783248269963001418758127780694333201098087172843954245626682481474179059777426312727531932335210059343026509980868957456404581219665447372084231682985663442121586763477967123067566437062168608379824720542619195550218694261297005613695424560884569504459140721872668994171269283709409744943129765296584383404231379523354111740022923134638829406681267854415550564745522418656483113119929753374680950327920103436979996438066454659415505580494842404892429105417781024140357100011068072825866329370918770456376054446683383945587601249363859449705752801903591265146446518193126801789984440353449581576097670244981613550518336129569848591315102118461626255008976925895293926741203673077163356734712675620362586451669753617213891936634411371457702564493255961953679843162842710568727120747151441873766320599287732935804508923654147393897850103351980257598877368559895249018090605814449953945400937903815849863748556070509870513493377695535732448763665503755615313225546709742847890209465120131110183055237677388394945111735897529552700025844931844264274241407893330857022175596922955401013470214579631411978844324180694051032840427301170430238612447742080185111619764121531413771013004455495984884319047461442371872939230113218530855606119924026210861037938685843972001364426583652582264992402198612856887805849051064276112090729308031929991763258090738546991877633065725624544877112464260784107714752480302712415168501683695764487006374851308321108436535024576686226942738725435250665634261196531906456715853310581882349246611334287428755733072477657887122612494121164337782179575294823396715479547817383751626674232062388669792072096446917853489256469631714078025794222428101388742100825687640975254793244982696795429358411628967847388261432192478808365493843593940723221337601682652384034197468757206704218078285169212904355397487861000523838455979525461916711740733098917274364751188288495301343080272145201555852265347717599410838446699693311910684091410722440269079231195963501870176858972351990021192321252471015774196856908233229657666052182229921111104838486758483383104461459389241459807632111874551174634239206145404406405305631496099697349536218554762007534273502465299895264768392877170948278233959798888532632729097493370615257279981559608935182339045003365835631234894158809955991148633740192046311994336430789072128101481621857775428077075013597789130955605965288784749121981512800031146143808499853750037591185483035984585663658366176456382326468217272386941152480796672144513845272158103231166293307077236015248844760304971435706452364758162290260401767352343965166696417902823615463808149206410232253276018264671992901051821365957716178981211214960629272941379479737236602873085905062761009331136481612732640963517406831443266671997128404690502024994956507987482930365778787710034609788362191743029022900588347803219684553781410507447547653392770599402781474575696165291555276349653006908276242734466189047131165426246331144906856432561083708065279952065876815275181882394524957125482648060851212373131846669286093448679359934709185689309234636753201483019630598568910741609971700604242010572789632821263579429185534059087939806592434176024304679529134250470751924537746912108220111950329886832883040696326893032682540567466761891257545422968178432868996408805534855916189165986547416790719615310769277069486123542265321390155235453622352807010556805608983422468872393832984598010950453295421606527529863216793874497488123369660529127699264252662438393858657980419391838372584737930508397866695122842632928814852858581068854514910191704407748213593125650382411672869063270582565639265875405310756784490680857042356290250910283171667614731648686556331421457845925469141008633519250747112295959924893394321727371778922083199048946296187379844325213108417126746644154472209034031468644222319022155293759767159455828475395055113832591211578946250029505389338443667317246056501732380318634941204452888935738144462532192563708250341535995521956419530493746017981958050046710660149143929873313495536640127206950806453273926315470616393786819561539361372310736943047747197975516105233505090706487267809100542613823531755045435266528468817839659309331174629626791949045604651991965610117674894381159080583128711240918437893305744162595707837473222789531520369761023083484766115711635453562174881227818141822623881357913772456610496147737159986906594848464692886718294397315814816944232522576258077496919583363518842353312051633034153291450290677638748137316526188679674715657261363066385618076241784426375368062722866317085543759556632770392542099668560714777137030099349664922175385068114548269748362580873321823068555826122728401290250460957167748929791212183763433296495936011686959915277626955501455428355288770261770863940758626462933466883580843802438024999518471784957284221028214270277755154099854482262848157150361099416266440669038753488434666291640234797506535074884061723347982851629995112615709585132110327580537592344126218029441114873714926314738671676551952157518925871493022237870806521785052524635211541793574477672868011219632685305828509381126762707299153822570167968014466583021643494854422042661018203341559557283701227953006235795570254729016222760435865952243819000339715356687477856316569721660884644215395949333563473295514055645863168092012109487410337215197927361147034701782837594763838008424300142063113881194406605904017031435505851304468321005659012854523441452323941848440020514703125697090201098529460122934256955203347894185721798656339734639966098892077988366301227313703284999414064338728863929091774647171214145613897401269735119824183418504780408401496246208227732218822175659169924582591785380930039177899975118695979327681417818329745660262388741652976481518540396381950232481100513375914238016342019609385923306248411757620994252304465601793475274374266574852870593932054328910292729760166002361982163524217284925659110183433216169139768778770995387591266739561634182149266021719135907380471173343717787475011250238011506940540892220686454798222364525304405417367621941448335803049912654841527419881831005687278913782869404073245377860778173293372511787929146782404434910222214774855897201753119881795969656371950743162406920996426103676036961810326086553159358110275775104870050110450407811890109830099076850363208862493501256100426859493095905823343520625826883500197502529344334535953675481942720405162674697283326248897610105668080501074047894598751525982917087412550931455833722070321588160144630687952623718013477378862026584077010900115871352554357024216627849905295979489934923372946111994192903565909553301775410461713911993957119203661554359840311676354753915701968186992321963382105546102399179480669907621882143382613625004931423224815214534374593751657723075288788320276863750368876513278970929878074317927575987134421705650839562464704096836491311644842503007805283388372123588633718719456617894595444237635255178411950088832476887091168366898532787472730784504564828048490372116091256740376535471721318646546783483382098769082474318153106609081402011660779429570296323261772136967213243924440099400983453498280184062329857171522176654425910591503623574023605840343395049374052246207696190795969117642036813024470286304539365530819425831727818357985446800506288750006190545282672490589653427124605415308281676655603113537803328766648573024448358315033059723971048294081230352299769977801277531925306222035002303969980721343379716738827697162997606273753820820047003392686433168888545012378467958743524922523423780560812646174079553440878291094256427202056421928231506295044300219668943604227805404656550321855824653749695805177435929535651207128788041924590825141494273534275705339380724886309485625598078626880527064771083287174625549734885687637593434803871861104934752567804582840049817557222693790293838171221673863158533331830948837790117200495185973231536634444476100991153407204251071414726537135313888087327925641720397868254345042807277813192468847623248943148362043726783422532396242207944165590576980165222482767668299938731010056470507116937425321530359679642363948264565262409767950366744245732209834191055816731747828961963370873878891575912884303273280584867038346501190775425548335232341329573252608189627532105364735095510975013181163060037872123110442242477226650216127184998206340018723158630757928915838735173100855631439750482615597490275323542697511420895034464069291945865686171855123882780846436917236330355082206226736643404478115758655314269086982587753791330121380990918645547866655083703143110268763283256380346359150779919355844064442914999198715233386913232304827742567953158866391341835440490158965574866096534136128762017901346826125655807579183171624004072949074019710586298125479843670952514480369469611579165273959703964771965801088359720523733471411825540265149868987953701627512442337354701392526258942175497373529270435055294805858964052380255917168596695464045219772714646140278207689239986136848036679471679998522730109794499187334758762042041866428663898933229095925781954840488557749921549675393646836069207272163493100979883566349697509852522135055461834400687876580476246115827345064169266966509265261558701842232004204714362018746009596286357473761342764872823849900149905610644246386739587498083359820580854258141901299237787483542992598773570460097721977188619154242357746375350867665112331815263451153230124436663412653241948411173908439867662102200332497939474121019891229682626890439959057589909855074901508322167501132321854930584765637795340681293758154490248570004938057204571828173534473177564839992953269257359923069249520979479221383149572641309522825663166691487574566267888986316552090066828096244136954810127106234364336812728663217206571034465816351043324624968854117073727625392022251770292459121626448462478420573066345839445144426633319987733535642105136766064670383372897917565017470595181548295140843227925276594638739153915562643437239239055043444230488359925406543323546245146299004149831265612857066748723972886749643666743718773162446760474027922684605382990221638045924965258442529537805581360275353890984161132863063787069791113066534820644409850511402833716438661610798018666823724101244759191173351981687681814797487239198460625320535367481569726480231377835769995962140880260613385142770091924693409361999212663988785503290385032361845564772495330733911290016311002187230307014118677397643770022067003289951499675372664622715263398508503004738393167996509872782768613435536017675273031378925472346590853164703385091032986727972175315536008813955380211948754676053404562302572181193049535342573957109852711786271753778591325296190173835184517397158997405360077870938281683085339908621114217105033842226438012256646416501843415140383904173053586574969934293712065151291842767020579653510724388726141694992555465226469059303113951795179930051731995602403683836801050154469824134612007932311337459870292802391215334086870313309957892842442001555442167502102155208455148602551303315522468715324453355969839045314992752778198777059654157320125841793540953192200012051837023286998865286118942149156423223147765978785948731354065302135218308921458792879730352161725404245181478792658385578548190591846817317897610210867113656396761712552961174454227393537030358104007219467920632353727904808019908118950469437349723185930645430124937967776120821849393276255456224411282505003868527466337659832464676545058747059474772177734671748723085127155931521730611635153287962097756756341944757500474470201134927363110890933638529954932963424490554723956421441897578207093903036207113139024248871560990701356228664641295855912526942297880010432382062951644699274036253636134164204672347155234236173261943991800584661011215341133415466110494795769717873872238615528174522969869823340881942768964072104827002589604404684920530571635751879089566149900291658877290326113318703605355704917068440431699977955183709723889366285087626688445926037915623226819623354079087402773480248027806260657954307242235042712365701989586494133600390586299295508896043902120682944514415858686954434081476458737274087037876795870698174177312764347892508461890032803115595784409744618923256498450327425341058334092220207590995325531383021798497772981849191031914251383287032912235575595212603334353577723700457458122183605305515035924609244785332124067296572776872177421008396762899779527177388305672719174580629217673582042942594775983440746844875919278505998286236522171164951652775876003772892551667272431917105516787460587443114448775133201815585937908816783123292920371290287691202798393665496253611067689703130383244375104626536901784338076071898274392372541615540479548874119484088953746637987243170008596882568224880564621323534359812978276967655628859233383126955541688447637386886830466806979443702299665134673426839954876877568106672883090005953163094788927969665131181137450483233610411848133515858737936416549203396577280687483719581041875364357961653030723589563888044724072289784045169936820307376009398290647754899161621460658259708256792506890689411620899606394119863623407917995584432779786368378335065243157011968819730854612080825469406375306301924990292400386982718702210006408428751799658114684321909642786282834260986978208817805536554905662332277014092449113483433815138899503565654474517134592214441346244796568756628767718560098228493804041570129859868858961690321664371261360877455223902984076774963990171353760200072121891541483678580227191019288701176573878438704587426484969501891254172539342469811616325416038390917136215033966670266062242854365576667727043131163169293870663440308343641780341561281060481361145799269710044814318461227611693632688407342476408102302119851101866019424904499511759671809482541203996851932504262364274812266556440289463939035131812218814771562672936946951061514426518212459576407967500035946244531383029176952643304921679148211302178997152002244911905548946004403830055622816685872947763398798950292994918327929692463934811694468345747554441208440880647072056953891468489390513068165711061946257095800048380049998751519134981496353858825731085460735961017847489399741231849585752276474001965851658910745447860548241011573441642333570373401819880591264152497737755136233348571942332177745016187664434514821019877940113149233212482312170814045741987521703401382955015881392419647437677339294123080065376097816457014830440776291188048412638198581637364200917826765092268006637602392732481733798711735829178123246003110649960306377146676176711722468825319945414353343080670989447899336142792565547516762567761053293726268075834157085718558223411995347554144688491212162450958873379249659227582887631329800536017972952156077200386836328923960192111452028585005581750049858255176952304667784001270345288901868521454634263554205643164862724823737428459316294267827296620618073508085157676911548691060273235861137407930765203745694922170043212828621239371580591233054110821725397756282119577458753751723679218639153104367107909649645219190489620064903078769775489817277249071117825514076816344435622219336912876638000004489759608183487026772004440539597963932775802657289397478876232525502561380592608109033936259473482129537104854946303284961620526756193796983638248665337030891713416078395540765904668255289333707256375804682260066919766137298637108668879000945082385196649411419127094993407269476406605960345290793206574030887261061612354730519365213597189377472806623929897008289444257119341381009456313144684590246450252681917441022753371624176723095314526370673741096685018212872185126531020814003821487649370828331060794297736011551168943255380794855104363969900296107648304310701230083797787368861526842468221330304065615599903311084696904336591526414167999897069577270694011645972464954182050099468671313269498957290550464821327553589764048179231785243419989324750721550837491834129123045743391145785831162886455170744707500888327945832101592584094947407002680020168233579722352655209548672071103182828722448966690508431896908848019632392238569634650414422259527771687634928857185470435437542489416315768680382945999474949434873557152168250161197110345428241507385681476266449109456223945104371009655963237317011510675335106611480030005988727000919713556313365913401383235793105576708339983269549404961219940205210040568466572935307385632537665778677715989384036856167247263649315327011752416206456238484018653532770851514934008427211727908300657856941784076302467530215944186065023835397460387019823226016511024661348244827789230450420524732234712707471067103930598891245687637181606441421950897666544267029791745716128042140533087429166124253197387794385134104645595570893506231535624866825402650452076125822455926710025469859520445227316496665239881989549145013944039042489388248983952636638950677345686053017988995969468297403924934977888480942963557805730596778092626478587582309891783227747653230074390413360467763906768637656351056784587473454680396578740449356410980715767191136078628144802631650341168958952874954766713258460256270343692813720479389435741439179293130443043954836121872684232833136016246017777868638767268716371389477161965207841667286817631328867537198369010230815820140836804391098905454445443914742132871323470527638731813447619354711941629954351095674915975218829597981804621218106163718065057342966960933344180587111737302375409071906651710825758188870321455619797759142454818168270456882441063008498632530379853883253886041612601761294538084008689141054663367851195032191041113140657932176285609306364324366820946511559591326888056773768639316361696815913956496640281318813978187557156107939071257733882638969778794613487903992903176022134928761669423394856093646659578452771391119072811885247756430828884737892586428081622043808822641909525319630457861318240347734554161200636018542003887531797646143226777595074849120039585119353987711671184090958051655491790538452506865878797855299631772223793645571940002027702658087902388866415953804990705653062486962240384952702765692032734770261214095894901773630316497412051658199617389593706306701651835748632993117504196700848957615057891999182027285423406778857177540793683920521597176296715001881510481897378401057919366835505480684960155968746879143496900482964102750469477476752014702832316472350660872529405173824291343585982490891784604247420781777672849805890617765073303802234509181272757603704307288085213319890117347556555177911097775110257623214091530044776200715020067468168543958526439370537045216390074687394765514305719541382838628259420812025683335741387882480926584912574410724713852844741618772278592206357496636715166996564101518126505977249459852855410696642404648973466517897501548704059832948886276033086104636057948919272377496791449121198874101571021596039851753103559278560825873369811134062618602958999120333434564118400572656310942950914289476191744492629613049782204676553088518236693596250316608177489238637781214413869725471606971492065131992603034540024213541346711508347355449160416081878209998557653498293602333212939797718407379143749079383034009799431378780492814092052032471688249888485309438152419239624852517506139455765709951677977686795979080081452228673568990773192594057375923411886397321286469346214360120235790952459996387113348290551283842823416135657110636069757015616744120295521511860058652803181330623790821715865522622339930578870911426750256902298415688111130774349008263486387590062182126732272036161839272114310637671355821839031849378290019611419761746204138078304733486721422262789324877430370622657022717333681501015230974122487319166628186911968070589802291186897621470430577866108115463706734789268068758872679049927370196306619571934902005234369870319634381190888004648641726983356172627430055943362570526879281661120550815964526670348187166363972344929469073855765757676119308484779101596878435183198812389573416009628617462931735161997677533581922386693780310331475474436822407643728570567157465485485532621956510549286542955597993989556462932612428843747507713478070005415370605484265485305023370848101779569141900938714805172139307077781607676891473883835353478738727208525814157091169757160290140657897333501615398593961730431542924197812082362478809397021275988174477344344295830551873076243347254526437501260167921920546550849901963239419654989041128487930459789880982409684221812265340263351359596932828774899429349424084055927313888697240830373744736272313117304158416782307785968862451772913895870252826676322889148733166602035867522533969428595446903731830003450432400782885772981820342078397162540719728617294911084636308093365728474303092960305563976412080970588188122382341787110038971067167829180965136921216155143132907324690396611709175978738104651550782599156889628516165854848861379286910551402807853065250787788824210328993988012421697920742977995995917424253797147049942722570716010455665681639973087434897357915835709395483870522498464593839431486278591676970870526341330708374242149566869412605650834031024962438424743674562799096459790628280395284289085806599334699839416159655887489567944848661464674623150781790084125852098885451935144162119799293895370837932304912977888192196128445430669236339814374811743145293070345769006456281261025533086952130207763897256681480215600369480822615420812869813630277451724110840362202625345874112851923482563257254594744743195126230990891763912037038781189422226948277503134333760439042036818976869531604076499349667640615141450892557260575222995321316785848792478411740764099595712739104512542091700593485557191646361596991757179944519340274767570197656928754263298222149981536975481114460766194385872203645283232050089665838398086327596829074210448646503887028528671285779358356097471429936761885338427771288762880708091169392840985897779869978561750834183537587841546967108015064132381732862235096887434843039715319732835005424174966186503016882740027610117751214482888494177680793615204621379013216939045509134437254157398913713087217670815712180076006299704831928783300249351736475016507457789305747179905150872037256574915013461582874560857094850887799647391315350754152119625058979885815512202382617923249884800929226390322816448718115266085052681718850694683388639448704481485187607575609524538416755648767496172357072239218836311141403589605867404239075821347880769579718563998366563747807144930459380605542620130513532734902738001975730561475837146639309230009645153075114668526192056066891345871665129093281009955551301151104669938283179541647324029006930310880488665548717177924109953834362956706164180030153611077082818844215505107145114797091285601877721257600234394030359214285895057973305147507227824288328784561515288040656873402109076576047307468576739690034807155478286379259834755173872092244957511139193228894785177494007710645240864591236244186722096955488835319096071065556686086332507510223016122579592303469770544518066921624010715019557599540163681855572961443155291712165895158084326677384577573441864008147820111785047210473125431944850905671625219549938368767704684063193507548966366363799372629607589645633053299696068156432931072670964833858849964119655081965565704099530019979195022909278425633647272561375917174887013058185211359771430944838076385488220647615086248808827407550585233749272264813018200939847532460968814038078723872971543177443535381377851550446801915396123968843711968762812804901229171862268105072524632022361584788309492962607210425144463848234044520958456870673447923848527036146205450960666196733549619094685104967038641436993091258151419270162505239467133326788322182181128672550193593068521768729982330456831374473633558116793951903331573680951953897795973430053703374637329262906436454503842150526509527872577937106166517506507586914896650551567681100339260624264064945250480544031356232501824503174242907437372667820229836211932413400103914914549253742496772661431754450338401167344205376768946755772546297599877483535743575927586844618759357383780920648045439972280449407747678247974039976729640544570868617417106034140381651315775367999548097876773049830998519867414270619892020707968320280579086942155753723468926427930725323822302088386941815524624402959145174945754732224495512786898870763671022692414499273789893532431645347958395817409505542003052686625116712216198061537658214141666236685260106909080594461494800226532203713154680204051534993462238548307667272716131357274780048621673085394908672121854288287040909238198292967249606630519200748888219455391394525031583141117561079322712970518109774193917578061313374994302690025404006040285586272257255561852652566696636175741739107791774724935225639810366786502908343805784393033861489372635874603850585816535644826277539622101747613608372572161432289748853980989256588234811578446681279133611942277613770826660947417926355968228524692629784368665179479850250641719015132081999296555845736249525227308780863629596228691415477124071795593978991396018475363537359658209764606990634731102155897286278501179482021678798854574921787100686673969467692385022599342438699888202495413653347546395128335043659904971998263879559110495688473604626535929654210369583436674923813456214267626262112295914656481604800937928190692312836248825978160781746912301180691553647344182915427219293081892093887491231107704723291769363208305066370409998440542878416159557879600486724946171005615414366696738933171306479891077599516003030418747035996955758650573094834773066630264926550372941197842405162017929066015995030316001625852546559330248060835813011531854347396137569588610937959403629854745896028487385045618040766409606155382232997866752888109766455548055253028587973577888315441867863171843946624711969468709895461430969379133150385569978252067602231952325425977906447228337977948703934006399442583494526477784576608065287897192487960080080386135851030948958911175684500747484558902999960571704401747669193361307554493246007898634691757247321173909399354161595034763296460782985019816949770967095281097137192853327734523058430831937853807553322447456045262313586786872051173809887016285507581915811416591749966262405703931108095228173771143974355787942342885606286118337498946933970227082161091662919445907232279948399592091079459939123691030085475543264301248730876157906730809159739677411818004981190261245686813759046344835756010043293154821828181126897045142676112944558886125153488894346987593265338743335151032417956641382345505597824778133532091138965509656617479571095899784795495143132187334105061134323548043370398688228413110537972839765178804981487170524530136832071699992115171122918397844935453307986608357516141624367058346232593837648733724455769579767379611054301060457506504324792397147615362062611397603010671958718941299768147372210528065855967216903410615592704916462516731645724222043354397565238277798980400070226654515194587164218225753792524290979881010477966694863615803333785893203579841333952929121541783835932934461775338758686491639011080294896908272857863127634377327604503369611420076349374350354725369165674135532491144202443096953757028543455427640787228754905728829863129241059072383015392804451096195498166328476379022315378502086890598736327054661030011943563010766752947317858096786429179569367130390895024132124162892590532290481037121536252923875868253776688418399861143328206723811814837557230180556006131971303939728067976905821740470078475449842958228164810146199094239990476901284730297748010236784418705542592230321837794204031509407570580465771330505665722096723000960421828359082396650209657921055103712155991469286053146747785271272395744177019695886609053456389148050609178089890949167902950455918285089951858012953563460678701290510744026146760492375611075901862258156766309604776615387750757086243330322919176561137350068029083334628922727866051568773902300773088069448862032516592921478907944238765287429602650776782295607223219756218530662067311668782898185695806604797768587687800080291906256952194624480228494292706789170118764686224979032031661049376840424824321890121794266895004082691832813210681149134821715465379978634565486085920168920639879527460377667400573666247925760365294440878146555716393525912533781341716883042633004085617766341663132253600738105964303814632136143155252692375735483585344446488972984838219715876283123886598120666091676474283561545852126616113855964262475786999131852082963851934134295077858943969917125277858258919167544826773456751646091898740353093309193006514125457343789457575677515512816133880826141737715092748233007139399849472046738177824929569411114460223447807053278612443347588225696387141426799194188597176921260376629059483297054312463912630162277023719575832523176959221283836643102360652096957617592424254126451229457621316211622036462199029275986557116413079623537618088895741541543003693889350958504733162365352044302012962973252636987537258597737573562783862572422473263982928809166679326617139396049965424127640780795518840892792585630568139173892518483415533536599671395248507231471011965579179400692909008046753235941051243556314744215961568917483442158310908815154390250337474730484679102840206475425240104620691286674542011784573346262712166957754581271444586445832523964613821527947345936602443490710711200354875143953082823961183206400674890766266005049556284586913759287700034565513518335042503084779275203211020942606127418758365390125747641405818883282847946692941563123883738947080245373931217752076310979491320617881461328279138791733759476445472502381623229749738953936945905070637809610845793357148106107682388920680686096563465378936965396124794327097834276425867923646771847246517128120846198003123547560227725020451928329659428095098798220628168497523399464997330879990949804211307147341188281977058147554674246266791299027153607213081576402686532265764575511999269874451922080350969939245343737091363895496086664105492165854839907808152113552889526597907669198722977947692627101168124601338338694417291703054052132059434690540714319444953837120205893914706839420798290487841429820497097214301247383091012390495143655898375812670927184163701046090817294305755121698913875940650268329807210503634492119191557542312738098156200106084171706816474583925295714539971474556784148034626991175542853893827452344653326235537051580809507379991149851748852780307356604687088570602218672171975361872568480597556108987693173825620730138009331994165746392159402355141407301823090173972453799595682288517771768334558362516242237392833536242546507662238327313417888540301482232141705875869669399200211224734477911655874761166617704114403336029286795023888389737136541486143602877525124533216674399603378236208306516265050521635752663986061451524664167233898038589513152487976691780968646711719435901271273235267862747591776449915768057555294717168732928499420530167651249478980165471851018481846369580993521179112011126149380157594371377892582608966755791327011522901430866446074237818059207708019478730278885198646223897214290609935363508402055938210970085014672971911693703003611978208044133397398839549169407119578963218852774053077381481062846576381308301969347180727128454101219506012078958341317416124179869229810249754837916780019138923976851717603910863967717948917120898296923874179185604180843057033441141032808671102724922014451205132528166045821104502254515947234973692298565862895926656614865278113018544827639043307845976294649681857280423134711969719935575672844794852928667189969439704198630177365615706282419348083461913643162465368252850446350244394204609848776213334024113951719619440531658653988828649833577410570208939904248939155509581883810029100419350376710250588120852125171061125953365133218248688182228605196118933976648695467672637845979042395885520615619682939585241747555792409874678458148723039059573653732422351853660864302528466645096041372540698398332070711634433469665070036717342748648955585870112991238868242683180983206657412357131424038560117459434951379481709381120277362812255196972802961640315804843302832757654628540616475137473125990524310387302112562040117829540484974925860252153401840955103099137905629601571330691634065616989969578167366844927667316783163419444026253840383095348090206966034486293206207902664972987469464938464260412925171356195364564490277006163655278585761380225308824896848058310092050244218332566987358283111602167168946949667877377548813973031126464133221812434562302138648195751019510220256510436169231686604571098743936102879676313534158575117019660732179690187601626998506118550646466992199413087541796448929755379870684144660244592635524717855265143119174250842862272416987446199060873442803483880339343244904604252966918908088159084140978839162224684005734977690323286741570389253885534011366384542207974090123927571025569545063238234213971212871204218961516333767359694696600176368631119524647689416768003106460748568503957197687460225647410897508955635892750475037721514902931355204106894775412792038166054792417438216601081342616323199464919484850115997456002348608567696891815538486186965048379410220596598901654437799531000060935878272958437888828379257146382762995374737474882554195204881905636025497492956049530351049122975593473750794324061634988870810559924065760104474420990138373523071197378416727628602565364575280351679411201867659694494275684842765031746793800815912835888053490204069248958910330002880707402516007682232519448245915853910691518603970475414766296968238746706909911449940204071998323667094914383514858856941531823503512848511523344210091681792975541086247865249531782742345218785648197621643412085006044031103758721389899989566500563102613739219823656626963415214544734903134448931392712309380108975794852688465753126418922266008998173679903336420201715141145925285672553791688934153158856773444075512367626876795485613958385115142617974402083697980842591075895629609710687229003228280433255754989427026387865196645466560779094500699472129854154307787445414369898067786488356068152741286641561170095397679850308131877854119495571651216824132997158341809573914800035347870451373230809993546784840492444532208495373954260460321075228950843778349914519342247923000438453622303893391697308856462731055676967692806256462842299539992782752590604817005601593527067952383783738694524132967875713131702958302150668604528319009376424711566117442244761814021445514007213128456057205160973708912309663993575897422593752885355559913546722261055009042790617534440144251636598459862546113357068041236823902042094939798430327849235793801500796388219005852007679502463865672172088613222719607334407159812045161537927754927662082270625869792814597617353753045129956024110468274740377038745650940074977825518771163287319198316475689446873561345093777718907544562764737800545183393865437724053072275113716456892777120122438133606720476090330827012258153925358457400896672336652110781145538577532344241504462005558512210211164020123162486673284532972153217896373340568985657084330153827666341634363605465726703749669721685294248138179589558967449363409244486434875366927381740025253558733082231655535209922893308596567519786698747507391008938867161677633016294707580697909295695809281872129129906248581669520681542747035010879814671067829405648388482799805822420992109213638563575765297682847060419837277758002148738413691820634988080179687875792029064670032428235351473451115385180004983860882380068750143076457152006198158328474677000870313297935771445322470522573542325482473480897307025826495528219716821865794379037605034888413413169734249914339125313400716469139973376701192729096374222151560107921718317313263253201934637246732854108406385942067416280249148792691720116843309450237221832176068302452004942318227318988676926041254748835048262170090478233331979917439506629477171145886567145997099648587675951581772923355163555465139486244092480798950375893314938482463951959186676192162241389422177593184081604417339153339521395696758527881147683257214309310196558950864856480795926807264216760719817977682197892305422647903627838001892433690927337552435024166984021176924123300215838908077567616435973088033825821753651908755491325984205288198383168369040832681454243529051295508231551201404937651987499191466374275584726386425419863982517420177347207051725803219927705640731723432630049099028894249576946130812266345344693109399919930178937829237871912225170791710140056711463894452132371763523941916913827669956221853608804930056124681699433371183893121860603699270933175669782876669225805956272141227942335847461887109539264703967092769837183299185184382486082561072439105055682252198756639657524273412758354245439464791748864080240844807340725895032876456632270998934318438991674350021381891288029616912062999740261770049460252605134384162465070603078697601605006278353238916879380688982177715705465542554874740229492914127537058476789931666619089294756340735429689535120685005584220929713286028703657837878303632161032164921993205461535255197123000716006139726414768935175797623454811101183696212094715711384799753016537596589889297294223797256295517365647012044715826701457540212632329341165511977345012029207610917607182506103353727315495754551145818619512909035424691655167333518243053290946276564410411714254944271679313676714958282848478004821251370088744316365184459164369939050653449101376610965192194806498474084451249876675740550404712898788360389700699699169143392329300283701985856065967991393584403653605482271681624401149370379329060601014715473655908013206168738900008169758231945794714468295153643209743573303943661434075082967492668343951946524579806237885144071737867681888322443166256596807164896817424405871840173857530829704671454450650552876431965549060161730998797659482909121650673206535717782001548102762763825704110435663648145473535575208635865928653860788112415225550492345566096831023494916185461363148129127085703054437305807776936304460327278072112049107922238023232679205748226536782523458441111907406686217086880350525829110868271058934257234424403878140567350549749304559237212765528395418858573084501609657224700663571915606166088404154016792989420244688453648661017883630313853236590933497855900819562440201738661416754169817857354602828077566606879731484730660413821557170887854936271472627090040256744985448978828449373996435038736634371955904601654947651868189058102589205896442964558440272900931411295233074303296327203164809013309340894435651725279563478870429310181058136324595172598641516905491290444804796448368796165066798755727416622857566804778313438106987970462861538779696576558860152960013162825223035347150942212905436307241009850457193722716335669832930471102599335484929302732519948112222014667727265094601557271537333321486224742102445787762297567992366697837505245312089141533094827864726427769075405387344520220272871982038431847363160916259517880137657540980814101497545042169885899801594289349478816239631080440430238525887563255090256673660010824021337164881004777401489650202997313228343502342306628020829617343389171744587280593991558599138024535707692545794707597903194510688700514941375790048627577647321171208986204590315898623837457510717339127167822516037537548535333565513459142740177792321851382876262220721460683563913163466510225726674601054896609595046494709788073256683957316359937314301972348757352869354916143675015022708364491595130803666663060091013709680646582660667415258391990544747853991619290330388837783415269856082525073764220993466318504099233055574730729401712843359814124162512330601808729951897570615772210398024351528037828189209718416334259844123074050207965930873458855063358446899415688671439249810120214820962969846739631835134652892149719541056827940337397723134234963904275251790435110749768352350003536152491422887116949016028184744709391541291100200256208120547084014142941167485710462847986840203284375486133712530974025978768913629644957077722873018788894816185959102519637774183049846332206011051431790274999757308473465061400838442893000786249329938347273893806337720627221858337353620178034770886853119625517532154495477071887606579685158187062581762735998147140338934677076984742000605140088576695552673370411321494802600133001188257106198322193401790876460770512446141412964890162983246357308731084209469272926077268161308773431159040174366542850012292295182175508508509679541095897504291052675521783867960258424840121132990657339996421816466135429712194330865741107682312527779835026754553950848338987202011410081691629617317933509428890913609581256605514790606443063435911649278057630155758723293711304368172579130229862525700498390487374786562152674019512465396884116413030797633887878946919153412390964779013778690182164445123563650222870121756886100167065363748979063423903073026978838184663495067146080942844041565709736083192362690239470640408097030552178715268387230344168972510186506509007578839590068720919155545285811562672657974777361938581131826755869422849633033352887268630073710977296761414345311659590992723649298684601101973000399219090042258538549685208321929419927778892156131429969370036250194825550878279713840572977650740222893044299143176004054029837642732424659427801844882208619392854972912268496235102510607841369406671958470141155041607239212889718503518684882029426279684229721893895161232173637916955655221407241968309880951838064964178225232752430786611392586445723104468052772246282403890745872262403904665154180181289326725055144692021759173402653185882068934718587466210199240550061519132211175804327916652043871584090539942030587771918870678661564574337017404198224089242626962656171647497514923260918359806561066785477961856445979866895928396173362033411001703238698479881571490349490129780725566230566209132404038559263642842730709672856582879877121549345973560997638635179937324092092089877360447458871756869084454840568876265958907733637454618031713310284687821157947839004893501468956567059509233154178010635955754097348261554969125323368930245799180454127557085436558531927919490607987075818064066371150038695112773089552691497718040580270349149404280614064875259152641682574441442533952036924019997167918323496914774349898024168380978125000421208163994989403570767900562237478618601070856572891810434838112400614200958872067211361255320259436909423890867159320990912203561802256445933770933066922763962622820988608959878740850209468448162975954206334736724407336887728155490371484401264636886950034004406779039597976170893133596866761704899653376189448121405441249448433517278749167567620026352846706087716198470952743379152147249792432343507072627330002572316551359884191350638580489670083493329658210605677897422316930439616392300095682250790319434964689134552471666742402365015253682804922665060596719083962252010371911263033828830362437351916665233970141978231499964931932158772276666509017770510094606966497748576903838286848585060363817054290478731775046165795241042669753626687753895294227895355605610678863589558238739303878862658803733067741176673027225486078773447867692261392097102983855430850863362292054273266639658358659885659892027755299482018944526041446207292378182972392777410539148140581154564366803342616730599110446622255728235832195213058468909438173739212220849852611666154069784902898495941317597000525717135593522498722231886639084694183934427656478616081297194958152653493252608151370097610273973613188775107468397870561536557546171488583863563474568913773150073055381883135435463114638389559318435201625512070491660922176917103961523492043702560501472721296995864579731628727726524146313772706773994946850639103590609579543908973433231925699980639969663793295902022434120967578423107484788327522612585373164089897567162855502690949590270061936361300470597148564283829014062294131468359175539096542362428193230487774537960661084224755096030744776802160046966521803957120863399547089467355654578275135773880238303529256165325083093170748434745164890532091252452627246877279463428155094245593589863926804681000669489305788502186276267266144294807924600336785995319646489081463891821072693570406245294839757391678885107813582568256469707540994116511043759580735501841670668957268432691368156813725144710255127691916678308292514475169676888860779710237716013039585801734784269121005082417929770306784531730422663449347854635735797162420325331468541257616893242488263096010105180013676713208595070358748123357672319829856959485378600569735835846907848457504049101145418741776457707316306949846683247751246167849566660717912087384986260293832400764050941946154227324460560123106881773365197258812875205958695725151723403019410729951745343684105917200402752870806258381464737410295140696789129386261767419091964125147845163959021776386604038400571571739985916110577128113675150739851926161455646863998926304176914872451754957261937010387413800746303812119186720616502680600880445363217922759084357289352386585427028419372415931389651298928426325914073750387630167856635937572801038885505540088197086763823929936145927788014336743142210631302760311954111960194583662146862117658815602765285269099752923122130551151330895482332606757723768141133677892998106512736889937581305947716471032113522585353747752291478266816068676767642498790031869661382749346691336668745579108293246094767720063223959377717258807420232399209683791648359173212582327234778215728554406614549234150719170441130608429982591295670519603795055222779656013847201833196323209574076737739531155330065949386911096839129971311338939560902184550905770067083793902446569613668232066277505539407480076521086397868170261683843010918178440846433998422262093532634000102527881331346542392664385355337830109195234359954467840702223924292706292888839901984922801940589948348876078434936287704017032738149618407767110189020264827002730779574013311430148531183716777959240399673144540267039690342607171971974821658351404337725919987566624669626161175922917443191581032010722984164187950541935447976174294914851047253676991185690773442750264104447144695278825463946186613062579736891017092689290479966625907516645600316941146098036456046384173705545469107894871134518058822918402668429850130357934237421988376931795716644468541467831183350685783436685709035325023663754212511604554150385783439244327756929101495976566621883780205856765191784112779481346890901271495956425613908134826461951539550259833660672956279960626829868463335232628341033666559596168732834464308127330490347116916231405961044230585308339747690464348562409435341438781652612854785355619625895636449828549439293751130847895678374462116203318500071305459573352392636089646913773220687725075023826804280219724444682755030621804627589052182154853808584833014057192271963308473325149342947934711140891535528886705134465350255752255904389262262005203821966571058746449962911553239487295232744675292316440581097169975632781081793237451806924469653084419695861322531531967006640879198402454592591352551577844417443225002430699928489718944588543060450235417018841303358620615655876944557439824893746237161869528297883792000795675726254998022461303784839494165071572786926419066552253223657671304347918621249916357738717527544510619820085038476568589102886588803617613344745782428251737638708353614793634342741157429363254698810108269729137235990693999298961127928904285080986976630340712084553434612744955009293225690442514108564714123584444317631706015991780209034571355425204113689647629820462897480776238390935683618220473507423023907518087761259784855306472435753425458909519167983098143552371276526733039929546027888669508360210433758241059235774686928259441589528804608825914434808930213645053529905632713049747738748851868595815998352523294482416065854500674067979572866684614010094308311602906676635955285187515440121281833091020620760117971315897644021524420600264602756399738699441612381771064560987930729053587967554090963774550680495257464843291596156802219493241185914104001620368404174772187667314004414518515637234191329188220384396882840206346577669704133319772117600830420093882769313982980984858206895237638922756203160668342552787135641477571960420568070905939144354543793043658808932906734894270957665008864173642801565161633166205428399492725179074892582279626964515283858927365696705375773916852695823120357741014370006562416845258171649605015596507041194825045835595277519116545424469061801195191884868760164187687705849638399921141498226964176620697838424403311365455730241596010818474762050170122033703984601806037191751399701847106909311787902852042456027842420024678534478925912668235380387069341686460445470696880150102504574652376941003982622753221463517328024180640525647958607248884420649331169209341174568872959808757815300724788347683031020423531083305940115306175011404557151877228064937025521439267639963188156251597029331662297586608604820482943640163594634961585853327163731487048258390894493137642060061013251937136786258101498572355767671805979451632758668921817709105626556312125903215004489195445422424205584186014924735728773816043960788967523344937112132129223980594596524870566999266797428582064331868212433066731586890329064957456234794144498158108440676588155716460728190643235735410056028839020237437789556162313670697050411454147676100973335000200007374026716914717773457667531248254422254295256542262073334145395752571543149101157459656661403219654938648504786073310070358143568468886014022524539824200332698066597774580733509436239547183352340359802046763908600905457945644920955562198930154485913330671304388538243939254932319220267061484221806265511723575246001655021642757675779360516288924745409818418861461811103419671008221449671309718812211792407840902656703976242371821084499867837445079655390052921505077246989864748800843094472960958848059910664046190977281207219657034312391661034425324480254050068974369517377073160070231602461741652571415450198942165640872435323734880766431584927223809906420055791626414698927739727250007665596028764973360686951160789975414429559068553741319800514899682554134600752377654502747136997733229748888155715227861385025425691178996782911484933261390810783758960163512489288671334071593364669421517218864526220018986824846620618134661776993083635623327720413968620770653037441262429649650413595765580870796470528439232721506632579018026952253557428315141498017471568387139385664750404808857134069773361172154548102374956904771180922080510532537031893297430523126049924135540535494119280079280284055773603222098986112162532832936555294796862371066464546595302098021230313186203568178296637316220560768255095745721095635763225050542142516796833985358320662864193988429072013340267353231560710525294447856408292990971936013206610473848861264073554522773741972920555582400701988866610098025118667216692164760842693381982395825753518293484920127188634246069013171612211353837955255682873169745357111213430860990590671301686789081127675947477791745866729616449252380524892145883324838066251754826872217088876839912183819562237142454533841264728266846813484344299326110224242409082762669223508180263143727939562806594685905577640078455098471777872348671367732407478705299724489798228477199809921867549465436583786928373362943139135784425656970410102566582711683415773933244217483498638397421865412189330659572131434129990939940119619494419689243694226155428641346867079721377113068104169681723309878057574282273224904231376215067960952769342282847210851952017070964823697796329690811371317677621359126386354677716564974488765097206749072722491159180028497469967457594632707607326626101082740996675881838101417582260504004706220034784996218607891060346456974558122450600542497048141697862968798383416741737761092154361411530366328743955862037877089369405453472659398529970334087120940845096540947117084505130587875675591970642118190984505992776270845508081898050105480007104910580287628035742028467794875740930330605845075440252949973941084653217324924992320109333550680316339261313673004007930889536778087216181574559286005420309403995636505654719782129444777008338242944130989835736770976960573894830615442425898723926430204064980860311894045837310215340264236290879337662663693918060814920331525498616104262151460067818122807141001959993525984889114960661600753612211493761968979623944792508091611750032193566667550513425212465100446035483707260448444732815341074800742852719830001706123255190807266637555616259290918048772579341528949149485079744978262416032257281779444666824637921401148056125296185858144226472826742310729033480876273411123441313662725100476645870798140498928576267086717778901470164962714820959420910309003174288093137176280120503735300301297768440839559525807597473894759177800803540110690468249390359164598550231342044942865663877802836828996388437031857863503429480732581057652162442257924342708909441806361838281321982566926078905592976305812590964393076501158934148313222161256817732483017603181742287099400133892680612308064693321585814354509865904840013548740572798457323061831415380384413698928051927716943217602449645126774974751687619102606058226907879391923653703941273016564397884409748294545482416426829495889161482306718144223582212186309821509695739204928497878175114092577859661639745440149232331655308927835896103194675765561692376498522550695170305663780566466492702116850815532123173235499342790117927239976370928192115953392102025080152604372733693032954303195284174500151914232979921295059168679775212814871576277566700489213326899096305424347331983693896501387907966218033619618845157095020706140867738453052829830265674423748344097964485101414666818087859233409166565872252352897882760279969645078597921993873042572420140487192905467952537712971084143385641939092549030451750776508790519934276438671059371318767398473600687280358826089751313580065610798873511054975059607111351386749915356662597073789060180701210214413963504694429403380994502433816434715004924016398063483692141446151428520027886092046323995379048010721167049926207269354539563001339833569693031277254496071442446949052409357650230013866493582403039461021656552202650708301554547106288355282768592192509661053473318721126863387511510171554105634137520706109953418994147582237992914135510152020638319095853851911559452883213961888883686221598619774379793841194869350247158223293367895164916669008074420331592613374582568534986145920057944810442961355065927286341858097972229810520814196678110755466191866534831319416539982485765505443458310699319136712435144545895640798944197656821808022852760774912530637871583228720673647394560080323492806306484826870322473941238707953543600419408728949926342904498395738338531379521797913650718025045913098601996933047962908224241198581174084311844492340306838432776920013783758387094868845855297715473742005852697306980204057530934309069640544515885856665796832488065159384435231235054474295752078010399100512568152702028387271601684774262081543930805355136435293817995099795327712601141425518277487146338980043084823990702855680743113650859144334920074317221661830798364822887968089651027267818596141979526769214169699445167777524245545456857826091866239897999843266557338238253753992015699262660125795123217086891868337257206872846033102607522437066765526238399172692768330146593160234146763986271810127342736765065086399275462102308411511649275625376580400116568560146381459422663067106439960517480158181535042505633942188803169868632418276647775799831067457698083965388098863625060064415157252769568527066466780397337214157332726344439647097884164015872246113908383904386533425475854067007048914904009434300604992740300455197666665079969994646544676110633944392809107381225447413628225250265207580504987926544999209220543632778267767638668215688465433725255968953137982901578130188315489549973527463156055017239084381601210315051538199928898557915925165022207543661500016502371454131290666039284803675941167641259996581827050115463914647534558858143520139163451495575827377007327830616870307942339118309966723107354304496827420385961973630244600600860742881790347582505275081972655478864679309839946285825730679237902647010011727397734935087932562565867206829135996771825537453467789995410189278838809427033953479855088479426450285481624049646717457424372073409796169105777304255211723485147111975657290730671374997110262126098730492804134315187315373896765066941872880620679893552893392984279521710171491739922325270477837013015546169286250024507564355913328548493189083620185133593437182025911884890659160809771371552331520178942428439667139304241484379123699276286275180170579465723758478174416997815308944102783147400482848456559996916186164413640560336220396064033436407559378075716505425820501979086393979956474594356885887024956678378672824990703823884757072514622703010704689652681671619050566193803086825752490953823239694338132401221045039600545477992094007753723522251015184715386683217350844549353753826098452470314436499351804499752601904491511498267596197465131041928198355477334146980784176313814498237559620327404611401493005433813627197733390832080136165980054711207539993620546406036375453270223239545222995020959443975755989328978874314449527037535554250515695612267878080107961873022815826197504833799446344539498192821757945168082052477130072389228702140729322735712250521138885132108840013660145615948708393852052367853103522720883554187302990095755863390353807558353222954660606979382435918897883123286818015413047325312778873786797168064213218859230448199895560339802047040778907432568835432181585826756972623217011902498816045189661505952570423101385226628722009958189647244815274087752792921244082460548084492337110419235242679962620841041868160959441640667606200292127693266044261319523474411367834124521848848728212935526423334914335963399885002072474297928355271569379829696999069758145653426320592156779488388454207734055149402200159716258558080294087752145017561852714037190675087801200782453132349618206009074819182595019340394580043800892942884028939805656360890171891736312751591048623430824675980928652280274022111966152104408543533100522614557559974559942343372531388244031788668882495966305017357717632140672182554514668881786493510795931123199261112451992515980829833984853285781925941066469364352734016687932584014709968537989983288425379903088443368203519502074754838459774152223133638743615225145118475570167076517749025796717248618772682975462524537026768877170182430029784284692015808078744541160884016128117087521556509235553306323049759053774451482197465467586408360094980150565655903091723810499058815485202255746719094258633421431913679194110868279524676704889263653976322435978538602504318605038982516261712945652620494197347554868284102830133130057233636427218100930358511876509579218274501235111597635989410877759515469963191214533371579643159633931587227449346758629328550982698689452547624438878764681347336676380004182383155217160728637507656927559893863745646843948388803723091826887240629455044204938563900149261123800577821140243396776613291970847130379998731436689469024565022721839685982003601448147967379602950722098286156789241757180969032780135273767339193126685479431992826258370636071473714371194349472031235541854756290828334872288130897623299289804844188375145609889334496982182877528952127398581048282517878563628542245603984662175267101270191525516577552409104105101160746917297942104315577369751313855072549236618703820427253311002620228707506130718801944529688591511126271882673205286672850071179046468220126475758234778108776672233379278195403627939656817053850619015842024019753584986987870134469303917109538215600452361943405168502071876380854655111832943445740454718632822829317518429913249115076655200995241619874879637943876319398061103647621729252742180563307625215748228034773252479766014410100349202136734600580002851194580599299746088987462372026139293264623697545786789225599342993794918105692527201069020141690637630849872384936199463511541727104071310227230808457684049564743927596669711698889460018565576736721057831771662256911086715888945470645025569220189457642637048167657529551706205587567274405519051530395541530842558798264090530165669396480144567615938008448021396949189166093472226541887292068587527450518000646200324321719904417937527174879125907773673870008669509777119814726791501782788672644742087801710517114050048810228173496562909617712015245914308771182861744902686092195357520469650066443832456755869540339722668730652140796300905626987174932341543355029735303383373606628793535928297861474817348325263509458565965917524189844129814137787277573481948015779367535413543300032985430515666940026263797388860713348884863861480156225403288290202235010657670855036866028752350757778608647617759124594252697439398565896097934854920837916872862127919563509338188656148370567468414698295627448489594858657296445778736387254447175532536659281934895688476055615312414462222123805262714933031366425299328737018522451977716558905277012834971248847320257922464727585563121747982463230811736855316149030260382192632140715531146270655276285509976881062861130750309458766298255632057968165968258887603356891110849730883325861349157761258019946685076625701778610511147435728695147950213017142517146679054388339872286150379080299626688927797634071069387646042140646630206828724209854716306338750887217252335839577715501398552892190025015759094890861069966001436219286444005118155423889944172706850467322617302170702860092901299228866514024998731046031448060046345498645224633849602106546501015880827902895375649027624873501385207329687614450653681097295973662030059426397731473497610280804470886531320843880359209066926035055250852481431444132845766685024179539839298360478787782937499489961008591642051815808180920344042728254185963812611889141215035884093298909135442376592047413761917205291115763103762970278340941508057337436026599887562900331449259055353637798271828427461664399062200296845148690133265676153509638406409593566475929164061003320409454763170273068296240223792986394562656085333871069373030142939951590951102300536412913240240912700481137084257404506264369308085643889132944996816536892214826167568278632434058542231578397951337753597823096024381545434729735261843936175946261153644113038259524258776952260338794353884360787287726536952827698674758703687418653308387881923397215077201675324480850660821612403673857441549014671727342519333744035455438784102899509352558779321353766271591973553858276204417638496251027319321137253443272911860273904492080180555241754311790010688728079802292599314722605884895501655756609678546608534461373914385415545248160636271186668936011168052145887478086984496465414745965821506567333744028135742312089861694319171863163031602459623794337660120118682649636423015738408487319242939958681055405631485370104819821650476624404252230797249240996098774000362144766423506208597268963972998129159353241091166916374108586299703878270228829631641998726901162374502821201506533285625557724939621102488632259776556971139414860979505088513410309390858120967983043926090780139927639536017334415261473410916455209501347007505222676139014457153070971888495016570738203738426878811810129862597841452109650282411569685570412764798368947006954294227163032806706544557616395272591658810152007108951657532401667606482647859666582838925955054110624001277421424561525636381666079800533624459893389635178365066136060539569707757585034466340861078863417410750497034588589437326581779437726175179159934880148721589192980303350530359060980287519588692220016537232361262749505196699498978854194772516635175039164498561525680058690253769642826959497204598021957523633646390739491209287164290281995385415984984652723149438098559605176520124316648606558817675494902356070651511620094741738613371161147058830569782472014165339663331972256456899648314967086705638319692488082983591973999489818282711693974429493410485929817552071402477523035539715861152343664709568379526770007402422980747556275474838636532840991973583596520988624654366594271975964202412814022807282650800340394861693296490013593036656293642257156035545436688804324651890723674183125992179995620223948681627748618169723132971484550786312391304121227390449874482528273340872057062843979943412505625312200048747830292214230767607275470246532311772331241979676270829689210909277052315707347424500825650753370289671071219378844637557592388929308068725865601877363277301007353025267691281035681238615860980502587352593727668121181762732595509302654583285248149950562969199974679714425516282598276403735878070741325692368515469368349603362122062190935219577633670384813009100630287985559301760003671087605763347014595894840273049566343931113423258067216081199336992423043628884630485405169187228754206965607143556568674146516763273711493548983128750286228774056533625461966931842642775898325867024770590750010960801884923754986231309539774392727055304807848891988273355102817968260152758584622191743163754100352592423104275022152973585165902802403234980668056737204637863117773768848154770841993771543174738798036172284825098784198398642092033959284060012455064073233127491119268501416628665935203966246314592176451922603804684317663038258908910555563755751354771747106745552173849808718007324738587561336020782391569330759353379633986125817883425435908003842915069981381026710624485607203270067675893038507753735091186721010328364174039396869917146185444969625786085461734074030183356549128176242663149819516673047522329906326743482886317377372694691543506594521688592746196344652256820453206650117970757771522515158921381595973314170551839380913162589724119073552666976848228733201856492770898543028765136687735419017053022952679867375923427026744529128120018975718276865771654008353596150506048282804341456711596609900255227857156062563594402745647857412849611319138131018096255771422347856095575908048368959848780995112776712299081536252737540005309785688799898169918482594518492561479712843120387179526475634703592080821775546297044636336613517840619988697613935572390445367793169509456620366152972937597194671350801574214301429762737819032144546359081563286421954393947227786267801507779735756518448421368127333172762527580440022146202698768609460565670593588909684548541325361323787660641455181713300211990491954192690287342599989619782623476658652914968591579090440324506759820930816620544513236540294131964740050748053901906582585258443870069021685745945471287660588581708116366584215915627129754770123238527612191368480480751480150558967820581475017561005280927395041267486236205648878382253843624853639356482381106149738517508557661627759780264743992677506215333838780872485349241902382449238357626236853456939138547737380476995394163620868177696676499346400340056946363796812997080542226677773107605072706518038588746640550573875375149492618091865603019615608239029301827244484082365193144023011898055439029277311161442114640343097240541082513077545603473020954895937055311640412786882514589028390013510337189242945063109418062896831792617508123015860148968507316837786680992334407879704413124901642852524155868608373708258692736944456007956724294459010893452280294056380472341181635263891858770544386626244936488218337828485221961063909899129834619906210144434408743439040637439818105440468050806380067637539967645922550959465905461976879118647764129751308310692640313736286462302747968513408258627299640135528754389449660661602723027043858898237393088171315899520612668779184414723923248538704843562994537627644811167603381024627997355171708791370501131840261685272267004305731247696395295901159878794681960642364925861277613246020986590409563095924811297668538864612740734366095384275196494055250745719957651866164764064456893197207452690056001101094485892783279158627152911730493580520189701819154329024204009998373416837512824651106451341381148299175008247074110011458487492550492362424936331102005745095401421678548137989514372824706928792981185714691479403793796598016144461017516403341138773822866055433105232038672307830634099141505600664166776526575599364223403263975464393253619763912215755526733616261789171577167825210292332659753053027830876145996064446898496823598445985752844464059237472960358463347168945516821227188564345141787052104795121532005700004596109103262886351871650742196541590136707478992604724970059594688752570366907999318747701541122260864136349932288603407372737286970244345828538413020835902103800950093870971510454048083937013346790423260956549136898345861977137488237859866186691230845549611804004481689477443511178527054173905626090112815679633823956139743437300042812745221967042629229828245052973337098501799409952750825072754507657538740911527288583017766189153851713073446676532315302212209513989984187550576249504173603867256381824250493175076670930788585179322880754958403528855135255341408206400476102327288075729943954600539327707638042730950537587063343206221032052885465600079661114036973751933953975047182190823364679492110356424380523382530241649201255929057399462109220297084979955264542869079836672164620500589787087774425636792560317367896133033072048088463176272264711670189874802859734135955686545012193524000780344117648474912260313960397696843235555862673777778956482431431119667811958658750871871032794872383852701138892842717663234925048868197592469214451208119493954847404776427175556547835645339517551175942589079144461953621857823013664808233335508926463788690237443345774446002829259175282807404347091825437442998327662438635517862928244599112690719191751299633143244328778728959835781846689344881476904576167151947351281688067442798524896148341894597624933259785929971137840247849118710164224529998670742514809308670881228878838874450640603886120903065015361110411093149658844920691971958169938835915232154693219580977021007595682139124500712008196318334338750616099060256693138382232417910045754514158882032367714770755843318582910453711939361867584937403821081058595307251460608902766348886886724330420731953000808853474715221469811298272822652895567884995269929360670243736582107854430954519384833756448078687218788694166625611946015503353729808214401072826768673596297943840777548170939849408705163065991138256184680116714254898807419741773794876369070965399197149537185553890381507230914344328005933093060287268724108855620322278273287774153372420890348639929830375330981138951815983447344419978064906857799869607141090762357905164588993864116174805082567181496820182462203371583930664352412021939142620698845254851316121485982303771597775594580750507267483724138856285243756243186534380536636569271527665868993858267817884006188317955595645534771881702619209891869719798039820698156406940114422973260381021456564899160465294352391790113428240757027304328015025817665582792186274395360247311258248046595744144966823782583415629742100362803483964852268697917601748512333527782934580663769141562401719632529767512950202290348739972393972035716757361454963723504710400580486047053300492878799389894940201067619452962238532541777381052289956098571287552175462883898666947454297543247639162930423926821329679805947835628630099330721763880717054690497288316379214132999629418244154479973161179218055431856516848616774291518805481510582333560005354169401526474474977055081503213746089104996619591379653330995136698980244584116579899474705124741528409775562663482337679653214931032721490047300733748121995890943398116769561528655861456249529047825767030755437229117563208018665738674199357385628948676309878965117394824303773210265882679048648532075661009807799480873414315905111380186967297742960444877011256604796164377245765411312421124140900596826477593679735752128331625285999379247953723266889341203735619045932128179776487766066935817162765541702982171045888770526488823742182867624926060378330305786256486493884887229643705200518741381988508940363808718664058501783473106910050803047854091278278197991263477208454353301747892887088061023464019575522679382660827095636896710635639159914935217259489187801049640112905788406400724801623447242116937589431799579156590831460398301543471174888058203171467991451771966841100164277046684954680611394233853058118180464455645075435894962473159841761560461948451536059286589518288013235433159089226607647031892634229520250759479135431857771907322681383680919109584946058489826966638356692894113535265088925329185315253243749139724737258748772566355214486861886516324833022179151100564481478047642756359501318249234466933846743526844611779058656160667765939148214448509849465459320285188958532666437614291657851115836041159655428156389370406502577405450226275947790744980898790356714402204441554402149094464685284110704686626954325847586898338318229891748876478586508761657638443442886258633921081880749835722593454658316022361199438141225824075599040554662727453348939095299730044710321986265426123981094649746671614296081450594188790944613981242333460402367390687223239696308089395535356592613476132496755771550410143382230609312421798416727867464131185440394668313467203233123645488922761404246757719772421818705963357316414736708623505945913421424577440199591192242618392671697663049475223499478872972608905677289387442892543624701012325987292521782641021864687308055450155726123857423877886693362826263979153443896128485466262678579819194258900353851746188193212681750939120915722157194457320433747228731034673642128270248521288069461700540850515045729629076930460147020189021956379442976957945437174469136247171761832736585554739594824327256448755950984279411912590040406141476492135030025274257287215229273925031352184228956330275963055909319423162906926368750143655305234006410555860243877592389469556938473511680915754481084255001212423263745021995062151422900962375858804303145794158908576673279553001515221917710462976276910046959416171912032898829227013889169410703166518207527706861683215826271970586016414882533410539387086528652492377624750814857232815057350620901370613009342189794303403315283324269032743539436807356119869160560321483667503529304152043805026545538162796414022272171558733930367268752617689162212392632030896319165744524252071242847906425504805039265810182944958551509104912419172137118016178912751700065886353402825567721876895534729597646207755081113883715816198813635233650180823334311705354712748045600712074523458621671322659905602510110468246014593100714630489560476198738391557786306037452189230347182651453177935575732647118710162616880169826897358165964359905894892983127656858993805984783994706122512372823832505188360203790683982357814176855710803347572804118554689692187521368669613729054692975446605683420489737584252374992505929522115888456906617721599950909837790081200722816962653940546410594407928883721753695802754347915709941140397913378278370618515809188580960510177280504343833911004986804782028072399179851557417210261748472380211973753144914560192026706544709623247664603396653196540978688829612628308498901912641089000914021900851744980588538220038607645376458004656414726699442554739600560732711349993065538142329831421969303792112295826017222665233055662642699428817069059565520076191851251100944725072413986822646707983471814586146816150755402618617948584981685784272865094761734647278972926676435560738334535433266909223510697573712429418122746171680007832783412984725969677100691500782430253508643616089729773204316795137462851633499830568356005217750132557900508152263740889871897139768493058987035723681653883791124491302806532897287362530985799494011161734507930395585124297660656823817834202522000765316599144308696402195178052478981996555900072968797332070378549522444058758416447102386565192899375629291390734779234099694242352606319929926380080137471541119484788919661713836440402081830937406465267768730605537739678923502716738718752921415896690210707446139540146492166319265499866624282642183007544801005143412089310099020376618547371844770575844012892252785001839801002673771905899171333063984280856953524382450872013889072875433954086131282156968289151085247870056880263426906233568478388702398727014524248219993118421412029645332939166964541649910125278758100162455766934914905698128712854988997713876028699047379743581033362266545105794739518589114998134506544721753250218644728007311307989881321476848491613291912790028026801655215041274431154296455392320838087555330286281096716161047451824497854622299196501223947096423067737255047473263429980782880043270948147142356767891073740291850051137155916057736163586948536800908967380475463863861654687157015869219242883041332380528431297622130763091556194810042602393617039349660738079715902759426410788882181736792674461916690375347835298472171215999576247768801987091882916802288531927191734392641923802057185729922484303742230889529808793922275271762011002619163052786662209179908186380311894922130318280150253702600153575688987706372193265535387959738527778739811204883815230986012143449782765073900320113615701825436249035990198146693024730470665702860790871776256583272295596172269693812402748152759996812472138466924786760165285889819201687505879693707546187206259957641224592593388748688078341431602374815110925767886303732695513016026182015728641316233095365016664097707180827024057327534749822868591305714783174040954699965452726714466548734713534232754633608618678238326230632948885123148347750288444528380510333604279293525215568222713357827940444232031912594297780572295807346823088593496834508377514826765757571367832449844897166257099227316302165300047458523753901900141289492003601532709215995634476541129896932654177192782802621819515201796377313270558265705481244747444352847294857500309498295698226753300158332814303592484932245179655209901347293872867569173929104618399105281411435675590787075961924254189660026657273846338893002018457011894302120708325573093585539472853587678024563846726993612509314910467862829354448026727831164781239049782538848349953648477169721665626672624608584626934678562339820838068366678398007196158074010544907341331197986819846396089179456835447709053554614576274901180987667627152897525552302278280230320369659449891652412884948372796583527457317015127876837998239902187501762832034538913745884957254196074011701149678272956597523687328784200829496300153705473795061308385552757434863619239037109560952579667142596836039233546437898760394396866539512374256030186723714567812841621514529924658096608179414086766790930920596260231785464425730098301728692568917620741273128933600962037933380971152880344956908277054020389146245812743802551974315222421691770580117520962893665182243200543241613571524344511230248923019916412177634205512330427509497935387599168936964400541304931951873727914807769066736256531984016764904649938506765160640010692578725709854246725244313479332857665799506460337909840871443537508044241939080281733698310736559304221948534629697704982828010251070586411556570202740571180380522975366738620746890585895417696228258541787983430087880334033733036399288979839481164529594189041006721661682497307081667675372117277352997565604876178531413544344634761986494382208373175650104023083794568640587451071616528524024699042650849384148341628071410269379938182903539078826706240934359938975936842447875682593181745316674727374916756084247389892827078765053264795951239100327091838171506490098677929064994557739233385576007029491267304397719068498785727586197818512607502131400975115349687212696708348181940380366153505232507222037656286381761041087752032450454087260221220220876945910652400282032519343223390883042254876013031822805663854556886981502196149422420942413941528907611088098334844898207121789002355762736039601728020968028406472481016500406562220371682995107578799587209809757874626084044731890582437066036408106874068866126690545914902096652799134892551258546164073028577694231656770595474670757611620821132238390892689738696870729441989800689075012224551199316372083685490771785643817695732523226860300109590484125250312546718768981670796111437707657000007274798027718936347190131902991474255739476617406443957646007417947394623412404900073772506207083587250384357881986131569764512552615603925067747845226186807369645591373692332506652701245735003420395295574019088648622418273268235323199620641740352381259345331248776027171251044060030743442452645020873143428959680620545043539120896173794888840767212590112843263375199876131465052527709356239473306681962777812903738633512462865989615628560926821012075380302275676847565200741763789387958549834866729714908086452690309552161610675681151429772345560002546679902828569802369606957928885662009730585304222552331213599366016770352720848313066668652134151993782687438661351619394776225082819606051636388448386097249992337873311569200887330156099006853523479167020169199198052687647652030032868380229949211152184928073650294170509858248667117822255371671108804560667277592119332023289104013959008286858922323184220114280407000299635311966465076186699388750959167024167448983707790968813905603786836088261475542229278074754181911052933735828995518522564186185204703650502309226754516238852487201788775310031927463755769909791282222253780853752067081754266184277281715378052199732490042762353382289886643852919009141419491665993704267560264432428664275281824983201543957552448498012908473235416677133011477748042761449837009968057106216937499064637153925768824910602902951725846593728245918262058014657779635682950756289165066565563720735146787278758292678711122432720671800739064514537240613257564248765279101198287250033312362360980734863590321244904768587741005157182573560868396595170450887855923611496103927340205951042688257052949992352068473240184288086171684984977067852384956892868094150102792855753191270301490880877624211195517998736203552881146388332854650762995459826018024547525161405848955984159883078648912141187893468253870330220918568079521163065011080183024722911209155200071166757884285509975657190146162696526887052719154432184057409827012673016764241315252083396137798774708738133895022579766530559525365621193805424102449609873454090396338409755602747446730828546036463602870005793156847770507804052708599294063408639643925817350070163616107785556229623132713059119324173635934906735451347341071833923031061901107216305596348054244480418997580158892289987913331765506175668836246401718610858930901219165181742190637361068175063649062860108062111056056948356031548016403883124354337832437940774671640921849517766414459602079424804676509242547403135333268860320025960194078454333994129576556950949379646635905213286347642105592378548604584400163135084457008497114743438155900251424198776180653103339217731728624001995335138344488269600108169756490012618141321740035123245029265051564301335374425244765299050588076918526001661928857809461669074287048564008835585106441622482976909343267292539513235437521861357809811585938824706461558805622085174240623809198052865965277745942232781721810680701184078032968477369849794441439672311525226383246700998403178319744600398762857180925186835456492073728500812634591049150711420787943139704603936459484949352837743182408661816678805114161859813374194879901678984440047312006844427808000050971280010933043382017544571787868998666313319345597333674817940319450931069588791947922666309959405264532673292229749263729790234482619581891821886680402777414447259174254913449621273552179090292158479201274226102477167609737797140604258384895260730603350713899877988610392745930478150510958398558722254801288703335525828528789671847734769331259379517061245128897721133891821044349850625949958490126441554526176760319036408846192819935170111958874014649133839864687461793228272075936886157181036729403525461393596144018493746876830286862658097102387092260953702093739675148512536145691621420893555099784044073336552489812627590746090249012310185364994596097360895822079466700536699961671786330131377600561373996498658778150686348048839850655236417574262732923523667805251247178740790610677814049780762037631243988634045658895581808955995817818209527943020636045753054858387252803937872105142393665423968111315285913499900348559726104434904856992190530582502709025272397812234421689491002415105176416873265809856247020296868087943866845585126763865324309159674380516501118159644199201269453675754580203234284452590971141918462525396085254800540749416574389632520441868356795710286919457337680813768850385700249524181302093907350001419803506347063812810654710957496683468959021010790698213662457424124862088904783235549885809115266469210436168052248915831420220805089105759751555108707448992384097447732351370661747682623855403402177372674989325310244828906157836272038029868897818214958062632882926577643038181765415205791938251950254206840732647117591026574046853258773272410772991873339616872935750136682488151494731074124318236673309328838892220629047817416293512530978854221920796448433359822914916094176501878424602913950858634257198062005498682434964107436545594726808524852217123528527290114247581247404161310491335589564225888291880469883430717143969379833609966388854685485605419027533688120425144154589878908385752951464991841125869422832365376658424603517881683828199044633291436982046096562223037999878952860452025332837854771816955733413966684249870376996129755956871467132391685737041014228232400021118381167204032663399866031684859863077201924924566882597197272108822955243394437789579963274850226673244943160513108937080289862945231665204071072197859071784249902097413402346669945859375756914972230741984190589899343275432435413182609870709049555800877312811437023678256910040110821602755638041433464828597367035526420748360285790346805040561036189955494582277968127032207854659600508503300111817534374190533250220763237131554253789974295339886478606393447433575662255689728316347603080497042392722703936354584463880866797242576367852763462873515754743564684867612661311662341945734168099407916404783601894687268682761737271566851637889371194867421014379509083068623711957495513395623787208592627893256000612546563049833933071779612882977026200349329772123426967024190899523453696166706825855229815184107364992947047360586427730885759050436540100678306529446951926712697219800695722957913187066114733611128522459438948144037404373712226250432725865450364166609343875434577604352420782566923541307321660925584772746720237708548039718422223121998405579983288781880565896951760606148576810816809717555255930473665601393963169957887768023959125415270332382625487346691319732702800295913434741519683219766168249700301607451692831619196585746751707768396305616498751716469173383888401977289501980328383572573626322399993875797538777277071019598799896352790496471628923643140493755104988518431885271531906367698969270201013016063288679506016151886319222982566681516482981920610106604113106844506686689471781809340371431588838123078090958977642315754438705970886321588374651322007086400520244108334985834547546760291570107772212302500396687675656080716377550912922479080869111118095494881258050994421790867569638323614239441579758912805084861380434908910319475271380527958251001683573197544142718811195579422046791949888247369190249773482948843224711185611831685382853859371641527031954477701928488637101210228132519005063195777416641644955456455467082121029741002792983224417589872858805837515983282765681433974242259598679273416011033377985890620775939876684807636309469805943340800414085737779120073933714271029867990069971726985943675180718673406054901871994913991853188107444857110062922634490186476368080950650277594171077974698835012617515078241048597015342364834320657594140707887422111681515074046513064432081006057109986970837400184646308593729510155935508066150677557840071055031183146914828903367560548560930992586760633432574648332816970583991310480236795786605076944195717396996644800899893490121173748687250563831688351918173202976779419303533559593818897227453896157645221064628179584464077323588567503203340416830887055452956451701823161745317836561491566342194591110081276394095518059752483282138534192397299513169923499319726493138178954965257081509157312112624646407127161502786866633794553677195594745150735688771790895027633129476897801078903438013636501129890082004704813219414414664602141664683097428572652472460561014551530701256358573218815262785594987628422492783737139375333243324621105949298396531074138849142101715324069183683713536174663461989234183728685098173412352524732803719445683675928049415714841209143157769720307476604010229523507258578373760973147488862031243747319011341178995689111273084782553380985420957328258527420025763043021524617342199512617293384984727458806814817808676018560109247180240679332136747099232035161530769842540959806160620896479362201398547905189490269033525718311161877704819304824127727516291025691770429109903775461853481598183312187120814952888176717211480354916514498451446089264831639351682614076321499394526141943071712825542248966776611715108291425208664363899698291447783642205593950777490677213105996102963648732214497886258172463211620357103281126913052519180948324556975881205260574893306169548392551853215884512355324604251774094273522333416439224400006227662571895433368019733992253491705964629617131991037263171274634644745605405036173646569332994640992098162080350023886332527235511839098805638557949225311339659212929041217593061468135768452144280192270066297404311619045070705082183221567530970795917922203744007370062555337270793432343917978476275685996440823651920376233325419783026838878629553874528669140600525486976693787664238075603880396610105462255386643691651622503383175749497729086402885258981547553281968837707445430078301581850304547858887308975712477183211793203187934217496058403489166677796007932446344004090424822281618119276184074482956466344835244614918683785545611316268555532800790660856451189217761246066873821455090777420969547075711644175910217496476475818676280012317373848988628923874452894499338350670278800869442892372572834089638373277278111311033761163321760273621429969677297448986601129122562669396165893206628831233289694668468847928851848214515484339319197125852756764164654113570522273182336859331972617867640521157466193390478775285491900124513996038132807491167057400271803863962685685036404238859105296982769020110355922228743217182673654892381039441052654972996845694248690539788385564834922006841924771404371457356125164184241606740024388672895345015918120013213237648589757865646343441151395015562939533276457606296730934261847460468254289119047814075255319323007551323697547173093547111149288560651740540438092461296428718286967741117638469871917493512866780543196475037238957553050971497290348006127896267997268554232574415726299102146360332077096098419912381897305016767110558753837694240560567020653454895010159998888566361331059270331716858089315725274914646204854020893450223816291357889443372308758462223260553863434579754635526888008701395981054861212204701695595924402070332324323202791990320415652135063224611165343723142764538519591970844042406948987324464281324278746508627432856139517974608928691323167706191558163818057999756942754156862203997549290476770094702304426687115612512704620799883121823956059603016719001392713826621307623717027144983455394218887748702578473741605673708739895415284312918299640897465559484606496160759896878349273345254656991483255091002825471783419180101930952955101200945105641235766862701125678500371952587438990595035001429043056660466567500323479735774147751386913003458384388928330978282061739262545155721166177951762972349925923803820767885924534635160169535497728693587157840463185344131959409377532590127802145850863126014846041707195074173472168651039185965643305775565284263353664313737808628420847693093810865460855644853747465100350795549507487865068699745818017964559667735563926654095859954574910274874799097905498640831984853704702949797368698040800817274708630749716451587303485369584930182338144605622162508763982502853651667798127580209658322175297526350232533954504052008211411053068792529470639804510089489068015319113063015419694651843318593273155368828272575880909596584413471261204760322484164745689377693258822790085706670541852656806429872540652898386774056774471650472432197770102265276794034610268556972869840068738379888126771444575135988553965227049497591978887511613766440776469574675300942160592819574454722038989328283786316084829302692712767526919760272283478635170847580710045439954619937574293854080222993269791287597777867673983230964797634674246524246283935799826863514327501159367385810119007562655807466493480949541483220708515263095705582113312308525610499621695346918320847792237528173401599546306220540355908875572257416872008706839528782330607728259364889543499683188516794332627926593607357839831839920623625852840827596961808586380743448108674069111724120135789308605280000797630656819479190384975321109628320737714128927107662097528200578755813867932348496650593314778260856865706081334574689581151343071141609868047046098194900425040799726847079315469802778071352036822697821919785146213616238274361567849102417793516122140341540107984767115240901214857415893128897253226879555892344546227525679706864009749830599496348723645149580394920314983705144954840979323486788835388321589322023666626896844278789441536505446353481648021932983502582211453018262718237852187614322246631847157626925726019798218418682888971551127572901764223298220794471701198968124295384443384688024266090137117904220246047866263547759504268428341811753033558356092098918093869251182249258854207731783268120898993401424545857484739608830266035146722149067198749814230420857040692830224892902690768092786029837757765791116113788585782860976995242209588459394405565083798539873203944314913919140491264661121056245344931568177948249852559379568806658294162760311810913802232545716683033315262823226394476169463486934908531726643552514021014429205162186596682334358613246897476453864645137473057727897094289916735871822351581829013009110415412803064252521533966215822757187816889484352155727190260570806677363217339592551782423489215927303334948288759017902836707569877756059507233863605903198684838379643534428339970173493353189517321730614830601651454308677833282895641332211283895266955396328018386570537108348820034249567547296197289056134899749023139794176872344456112687558002598252233758839114762443571661411399032897605497088705393033708680388564909700511334673454106552562459150563698534423760587367161114840223030273065364907329068848031121515937503727996016798089687741985386946850313847373555096756453051516380459783839926021372541628941466110638438386302128036303011189628409229853327344645597172349786163976927202463695985255838313869069345123639489545403038605007798351107753738142833527355152350872232836737118874208457587169617840043600380634462886099704336733346841682792726094591628172510795048141964347406926241349876423179392284850460151694263649922442412991916998067386182526899051307466756638509509783629343633695529207533983822429944292180006260875890622719356396051066715914097528794546263943063836822732936683359486289200164049574002662976408919883428187742697874772737885547614025392195655245397128720867940898651957186712246510164096502861522855858982469587026203050465865230760711393118555630839109487686220327134713517469746090389615659722707884871916089219771434681231024573895329971456345189336706777589093277954693430466211719554343963266204420883300868573946741946977304585659435132161809797770993801946448005890026564057201991914211056727141252272195551142472904248554455152317137755135458081313848971354695444957101195086035932191331821526856142811455875233741345956999590602079373367198646616807900549779939659119139643562919741487466218815774202139972872385116752178813282465628860570566803204480246816613725690066750375522612050181028018380337096052736306188765349950733201312755682956186199477823218551198617044693269889012699746189510429711181375358653273285090266329630709784501383057266786343429056438404673334113108730142750132499719768514004806595108290327790967893995636362580630998923798702130371386092669845932654749494312721033866873030315308324508512177164464992385345438653395763521241005483421914736786872344365936993354394237345237577974691156243102182714984093428705930326882799942614930056476356840378929436918021232510258357676516104683639345431432082310530759195123754845985441885970884663437645575196475071215046029074030608690645388019351455136708333420841720519718778170429528407468263244721227802491361464483528150353797088012074310981807183052986750343516423601523383745939191287214550613092534191445043586468263714011078127220087238327866130411511970396975738903159643892021161356284513979515742413630702314815559831013821675642342885850279855320990427100696425510810467297013163510682941577954271282710802013126692362644862350837682577121338765094157398502121374122166228144579730075619460912265193742052782229883304969675595889609526446570960895224706409251076685345089472722806592414376848256065892969712388450097019777156997713352187810381850653771211172634330320165929339262217328611335686916479328190916884065546621558179288356137602953287161393085548685987280465334756829026605742072060048186826878330824045774300095097532397728731942571002427553169304942562698850940831940770472202194763003895304345121476026209450695316907959652965907011882190673531903502134082179960898128986690129973434735551886000358651918014342359267400997074894671104979325870712132312301521451003900273608793103227554908120918174715641139998157143021708963483570308642985025338243649565348105076380286478627563510456884937027028495975759321519903385443970403512185833766707624908599552755926502884983200322049944979851929156220750227743589664886001839635623502072625660993168756599593581315614178965370700242119425922994879056886804366438081455168758102303819339585500825671872438146376668506369229024594827431146139622937851817197070292841766746245594396010621084811236157440771407688878478353993153599619148982245362271606122683144816984277727135645470812338228285258852482781824309259049453304473853246262263577082871248238182710779795171909828101755933440568542985883360620475353090537456588797148962093003412160165356681722769640709775667687393137823993574293299122362831153264914682334585137783203805975334427370864451660474146990397849727321011956761527695288563364787826339971553969415520582827656358839003191985295956924512615638913827193001923796858913340955504049776531327495055543801014560536582512687559531046365217275946290723218298892735232740040369786843754084719500213286265429983171836212777983244851298024581725797996676948063447139510632838723058221964579530656911660778426963408017051590807070670121571180298773521962735952679140676699881131240138574812283029925991531077825067647937885079575251329698223115559393379770797278568941586523767316521763129636479547744375597272225377314837427860041454969245133861677713610002361755206058888254790060022203667801355493887754692534160630423715582122073509893969682629079604894756205668833512075867466573763100727182753219142608696577151940005545973432598500765668617161470394609321742082151443758751213042340184125539570905369361441359108176893654936721169236157421289283962802111543600382879159592352523250492632544813451810476819286313731222428936471757545186738128802567321165822928119389335941229062905290186279218059360927228116248767138331473375406429766637422425475228880536634301407892642327435187824400078788186141939688062519285881220749839011517038515194963120555588474827739951418418956143469749196827864045272163581487722583793221590606658937681266854813375484091890723696338483395499007246711303391777928266130358055527282847669169950132608341894079687429268424741013588523807678077906160018244191782379229552904483979190142324385476724458142146408890873053156706604859593508575358246642143248608104250105296067998587844986499725646981747142799360365137848301429027131602004169645812856316026492395350856261302183158284349670666188902653947276477482212502995267227762682144842141191531408397045669175056153622031311752318851802291600412790542382050645916696631123148637138761387493804495187839178949609544165249475584812855929610250668995733242190777672118868399418892595965900471623611270498634906874566528219008671588758397083940933237880481203388110992996720510211509788655992086531359138251146663347905529101177401281831463886418030651152404697424041616084219811162692123831126193750722094506663485312917665433768499195603461927278620954687524239009334829956497209336614631448091266273958881589117729572121288305880145179490749618234990531197955616313669723528392562753535632842638681996501025473814002707829107238934680907189852204296590194970594795383498527615893384729395369333267420437709719315987101386578808579718032259447616020027062583739103804846205433457495320428422747225296452008392993298723700710521289653736259565215856494663406451155538505957667114325071464007927664783613973977615395620665554205186630487491652390616950132847087055311737804171942581473512062070300512407954581459241382230337537225577480107301482160918973148394932525575561212327664127112062199846725970075799551234131737119568198314881568078860896191417687774049296647282141041570898431665289771951078352175715501769117907528022696795235956638295979320153347631281488278771562410337299360138746980551744411826845092743205408459600842162588770277280948465123714803993896181115059981077108693111321885475104407676683488493130691072456597587447347281176076410517323938541791713774639716260458357258848444764025869862638225061650621538294709262474311215962168206004563511034614870840282206258067562530268279732184121929858786199766276536208650212070235536230348656561211352762676048352708819827354218650820657254355630488940295354994745046762050867947292428034943356621404468187142389533047153346214115561960137039514131051453340233429616709610135391471980233785626940707502414153720363701071471421401021991561346723774247532621799867392385337832055150622041481110341721969396991958021466421558374374705881675953943458772356329299909956184984232422904982342165440074220864274057296074837001474835965247719769005345424726320418519174791827146628221652885205576990359733813246003920633238350762361179198725549139693842048995662509579762444985368054043143706805051906486336985388924667853880671421547673484343601929033514579136255548838824324114138479780634968024370578293367568497731515627355674839384181284081023372338127971132822314533821855935870624305903922726339278592844197662858534523647632898137569346126320395160097219058085095743743965506959402351000297799600350306771216365999153774651650512879309159234069132016381080009752965551361632852949621503203469208670330865844126511824333756246756426011922466971120087024818700213817024785797959030546097359797667408385259120609877539917830760222442483650710829578543695061308176150509369608223175911656224454095392751475516882501759691899225489325805159941002668017963388608989327427914109985185689246602502586483631665092700560582524974820439506425374375409794292532917428289350355963262692885016871450707045166931448267353680695476999680568115183511051163262371998901321406086995696729263420329917440784616745467119838759667274502272339604836612606050447065888835739836477462481095519359236387824553022801531546539404779714374320653002297520486952367634962035289945467295985878349337357596937711721264287835295299354650897006111309530226486986121098533309908795577643163351941241798563303316113293981002218974526098374082742959038585567786937725029027658384381095581572250619507904575480168443602431697918721835661057884797775890866828210441130151293116120905368769232273804103562997725409852800685356848476971439381376447515946273469065524637621306810899808805076776063450246883420846998474921102545812575753396180742282743521808915950235505813815823407521941533043105608591650539538077291447385402708957349040905692645049591344808319852124575322186905375567103531371425603494248179635684388174273830342543675101909889799102014574281570495198513912237671475449785185300856852091739071248407071718508081471481440895800255638951377626296895952871709046919741339650575886214092751737732113527783880859252558759264497899912798543081319220103343525206290391775334022539958444146589559999605192242642522882990714302340904452156202490538631233962162485947244182831147068630649171163445062571413528088903681205217887656517060469510722031147953691872126818170641143242138990788129546277483269110407087699861129060738156593613812577102838164064570833227167213301933782684736379224499997596825057204580212178280978805239272453142212622994581381699951780442751571647660356710103823564147215877902708022673214236334218942470138071281958922466039277503682940974092902528667261453034886575061555848112836477284915010477869966870837156184556442908239010521038871230609273392497027326766378130862624291455230334106421500581067699038015513180994796323715855643016141741502185610498394575014437713081394832291734882135204007193559458615694693083090919828161629570392769366044351559477901032801379629710455726682886402672348596914499040881335755082439025349718780984927906631720116327576143108859373554101454189394150181616095784629078931406346605885238135741357133940857179597867141944914367145532406075387635021793213740103316281866026385601777143154754396432666742662182092356952525020653070425002496765814159090927791572827295818999342564987934127032229652581163667118036027926753483136538594389542107828244092289907594069121362988636840964251014016301075042490819028222280110602346350348972217825068964965414313911622052792019844171459497957559739022449396796363965176657943716564667477192669838928877395413312787701568624463063115024056147180464549069319635663655716401596818677976804470829291735496970140722715599606658744693692831489051093456407082035740257048898668487642539673157504744361029373765919429498293519685755448921863789461955509936250971599400296789767698086365204920886953246574476997983510606343196364155631416825502973722585956931505824547405086780748682510489487738434566613135964393357178203375145800439550337695436629103659555951831997311473312117850847573657998101670670835988314716721870452123283417782426276889484180322425476653554979023146512205906557622531136507055600378007665607283269218200371242411694959216936615297268316131138000924551985723467183543381522473130929699114996941361369832562391485918948972092523713946101026684639866755864141815410088451557144222144206457569382194442124389753116341668549093953642365959788430317429314746932797702645917747261719875651514219169065422414489618554991936535609436745516088726625748833600055585317760665837750951327485463687083476784580711739938206789316321912929614341610000734457350183352715552357900658880911896575591142934631688983203309542555879232929703071532902937183517911797126908980276476324084608261258570820371663425095880703129786305704983469124796187460233898259838911958846711609996095871007231545508263744395290893207610603691741612606470459380386831756104094452634035974924348502641895254081464420372660882342880056291762177770414195793687245980165200615058695862000814544011007473783979492818810659669705098335404185157093310472178915927329001558814060577744981738062733224294382019119223261093224051381004235439351827719156560563081890670935418450256686346833451225444182077908570688151244119630018523145226982541232210723898832134379715338229629190071008207995191746334919496230314609733638970013530114247618101054271168809761485106804404638120309265204513351584143091371482780070496514520397163368101138999998815421340320768772847450593860207734688049940595787553814805426175079478777299756771532060085154525923133509005635190281848741247368288251134545880202728067868624061374984694348155179720954699400144187051891928762531363169409037138466000922264541277510837900779792910768857873900726531919075406878958177878130744032716248405095336221116418591616751205695999493994085979104708626371270171969105967938010006245374078747776544599736613767407346926903981471883782219640732828192098005959556251260763694463233576965439680380914967441932085938079421898546648022992337873124377471649142851968040272885000802443645986296138440103498287523108512881274625496203635449354724354336359644548706290234762203856458831750194788440513461043055943599355333275626898672518037738777179203067989521380199066347308136302116480731989307908671381468173028699897066644850848722616702186050667541627146898688966047758414679116432081067975075441364884454807311996904105693791167157474993844394354825174168166058843587824675784870278124938843353891075313700052438572680942665569727914974669007872946073290965294420809119901203081588799776480758171013616676029025575717694707396070046563284985106409414487335171426079118799129172190896030103426619525919023405480153664211450072655325689642317303798959872095897428661450397721450101125123289363472960627467051393142709805036631945884231954092412710840294494115019116703952670308239289498960864312805849991588166246705977728933178364139780284871068202460567482939488011314868409569740079579941761350596116113055666686318933466237595577682297539151978239429192781109549564960698173368603235785059200752249554888170812997569984487742643080450631310336720518391835272995162776826651036450593479191464345344965161351892073576838609322800056342934042823443417659147770981462558693170546180662592705970886021581268541377845179259714058899652987008338113350791079832160605411432692984945450843358771528811229203246051781232723940510318611530935540246785796000664000430366786488801459868818966217697821842829242691841431535217836490457519112858457304774129262290764183953304416725763536286321502309278041507860820597869037823229411864959061164204999946948543353522943271073725098131913638844551125710549941721593595675890797893083659541621858733333002717553482787593115461055125982916081705886023256998587726062277756858101539629255988384349779800998228466019721583603703417168628401183074087104900802923813156723023688725840720399446255205584823988964032434955402789119104982900580628218610097736104227274912561850320804138396906701340062260319038330707756214597934227099362539061243134315541283726215175821766526350460582960944345088930673646589473189522486286676875333381332536612133526762440778790068706981394225071109886921685590301968897847005793535386913990546761476311472656177607096833769224142559941105799019832044368722513989883597021487428189449182144863376016215123286093570091927591959644037776298729517844640856271867043159494570478976908295375095324126377877530011997521698014577582823144955277224384949879498904450379130832535393349195829043222647190445828776707890521745607893914027856115991369497331612373559609220586170225508093284607856941616417855756359717869925536509006371331919816990155278585214641186679638790921883638184559305928872693385815285362004116979308979682001373059086496151120065896824490530731099631432259555173978803081572360803338264000765504003010779426194960812449194368029981349749829303701509691964288407805985621096416968870933300146721466201586958651556144790045193657542782065487312528915068314648478880247240399262335860122452692194605937069081971391892796553616552523505212879948358471722932681008779009168540840380031966185274742464385349933285540719509426225919199180309141265151369981591499091301015709129115603708652762526283151675869149439963496596209244889753220389041215920588420677536923286378922706478174200248113292755103170631900439430649061844168739138595204380683660227047978685154071266162625627608539525487356934932967710504128474221928396201553150474419599419618624373874479541820528544618180804781099587749124589075544050148176850267711914427224321471580936297435234954486196041819179658513603087358926128208546008523264691031425651697557152883319279355807294406318476702868714838806655907341628803146294541939173523659597879556864199240837194048067527103151801275383339787752663584908201446255373933857587040377455086119668699502797480637708392640639155882568113455219340630774781270803824983627739733340530038636768700407600941326872747456430687852415644314876373540125375357156058712260648025499830164101018525720020413934174749038804071810205912116701440892472992216770174855002986008061557161759999758595861587347139617530316644732866876402496267648374536357740528224191356286759334778312086499237884220892397678669818194175971059887561566100114121731739604777031349195410272155722608611032396181863519846923554411039522892305147492930668532503434770909679191293630527745620612536403662240902964787697189645160477530274157048882000993570264926613315386606064532259823121339155510920610812303737506875104425204001812421131726150876951127729407395353066523225137613738069516715107747038681686917512740389285029496528794140367463776415839840907120734939991429271154190818840672058548511115070752742829390560849340193033983470742819525393403885054313257388931733412124753061502713542814867134203793342878934921504980440117213342894048719175316258506329085251605567242219444440341286966666641920139042112712986183488540222366091088059199457728909260601101181375485365580140113306257433697103510637072097250339035695393458948337851649199349733698519585533194015238705666697039420125810997907309199290280538064156978127180652348977637883548598217777341881729923695271927524192037036046136108282375023802460779026886128246228146792716218777025914366989506203793555604643490843031557194979060874736027292842322034411778695456825947093675430391178891630723167663553218408925245754665436288859215820733205759322250732514567549020084424924862086530430440318329429060958481824329368974597131502075830561513866458572094795815164541414448932183958282829028454377706473252801687093813616620635434350025485343309840532388258458006872530024039079721815424042600076527411069851353839339615261701222342267360598596986665239592648870390990093399213391363379888513728892206247074291473742200672227586143685126747743105549014405122595050477194866416794589687782038836787932807010207264530604514087849465820586453651886529845700282984758916761259638889973234992929404282227300954779317360117189126622480846748004463893905641681772202924800967730558582234368697726034940913020658482528850234345164438635502573360130842127635833237292515877244493495535021870672393540597273491702004530847990790305727001286623451447021574210610045395858682731497571856223425282130512857431502998000878757379490777507210917689029412453711989664472951361062714385333058174844936842242785104647105593278982988893342870808513712364477053809254624649518681887458958595344355293581257134210195486634708387586638561425806366677487633680513602149262926501115048465086984897840652402216901566379870613419253028575728487502990336508560008582785139146538258080083173498660760550127890750668216067006852174481819835257990588202164321291756806092982003257354637848055333754407658583653122506290883182757673533894703417909740109071049641936616013436725366323643244761563401114412257993067114498184140798255406426232615267245921636985921136425782426582710769215069366289250553408208049814829624967417312027108529711924053316987931643449403665830838283406572405839747894545666441299647037360481116132239907607404531013689003663300024433200226840978625802748917582992361959103850559108397132590216965486512692860235208867926843870139531928822394119672689591622231963575076310535788430873361721450808248202191343690243587479575731474900975396862466753381117723223458813398759113146746318696645945429455930160479730980696368175913320360480108189219632468525853453684772884448402779741298392234805798337379511619229055121192227449277939979391263761367966810066270777328772143063776537958301511004069985174819557763623925731916724649650706994919094396562311613333472157077285634343309754336703122769326320072212506155739777355467860642883613809529945242229420048835402266666429043014097480681919427674782344133268445088578138206783098132208980131958787523526458186836616553873802197547511045734732454782366935369956159752040749993113636238128785979898944571693876976279719944883122952027227987118312656950894957988982320967905709761530762918172908902018358644139545857935980410936315231945975496653755415337196449183816425267888067372520212634438376221753913131904737971436436429662417725363041380764378674192150080388107076189477718819867136091984549727052812936885338983824931622103732329362145144826464010097050046733406383878303869067614849000172516023218848033017621769442978919165246131800783703943167988996777711444176605055949986813303829137078211993618944931816855074723748982497300995993034064136553820345848722969525097186762404628583553444981923432018694611581609684629780094696203890690525783375457933843117244375487906771443424211994412093119426133889441893679453999836740457326800323667025668444531688999163856273586946254220777486505056712356736678791307253549310860060280566377268708439824449448129856949492669118829967759892815326173533103451023995637780414243820050494743404343145789879899354292114601303782510490202656874566686732511616281035012197457048716359274741199628233209490980168395649515699205604594834832060666514052635048281415122344968450348885161594969779837666336957527685999504769939321637494094822670130248104237235900078271718793013354857614557272476496080651101681223962605466445037333958739479204635895710525103829348222343203355098401209959986412498515325800918711318108834590431855877157395200669030110775157915526467701170665942966491444812717189136939623197089845940210541728609317072916875195559456260024133569278391442017229849478629940313240962546940366183331696743122652485671712908126249037572243034444681188653019324773169270592697862491574878797161355553796810681553248416853628356073955606921496995502203974424499942777301495318898901657711618157187934929414442655548898563780553294513285220886404323509421587972949717647050138630700489720246989302058885981726023617827769323101356731484742041465465432944448696410344787035234160128301428817001654989817490710517319245416584638084823968591547841318844123418875870218965736297739275215634677872021363511736860754671559485867368042084076787744138736009262898831044219897085796156394658012192427985445956401356469980927530183425572607803853196932186262909458527388010034489127336208449008708002517946222111002435135996385675223934122166893775971642540435698085942601148784503721356197919776423892821547822233426307851772335152887669085241004327318724854668336364806296911855425293121786419496654593441264705829544165025432903373107737112591923178686772107425282290458986827187683345871843784849653494523192089109655572125861417028331438193745386024368557013539523525203669657635172576731559015558086697546598459549508645651994633003264179420598567745313512198111341781001904997474966769675346678753102973520690286611006388983681429916704581039089820871470765970551471190281100112245973435422894673940522175544835248465461968364411227544672289658847714208708951225898501992555256674948729595851913682839672004267725001256242577784614646226332758594297370719135940367575051798263509422359604353447266756262798607694733572710139203835986021980362385935536830887984057796740874606684173330366862930993046687187890131440250363662145363168643324677000756837492227862828976336160004490263239862854734259252270995901917424627529640518011843555101832412004433893890049898330804813485776057203528890999878541914266889229534426866282412500523310147241084071455048521312719965372943844019031169912423666428829425231824053082351678311777711885212724691172886989011952345909988172277904978348873550451427258417754999023667052318452530156686511596247431287488430720842609454202886637378442506802071027449929461523566944926370229947727768779136260813840793067036197855827357325768450204977632958091185678381922330057571743334469202257484112038585352496039182563329670692755130386937257307246527347886444897080042463750890194120354670469193732810625654453994964247914778062363135978449402278609042745357042974005687490171486772226632254918355620971610629132548050685214272751896143825027205083804703447916224609391025166222342250134821440329570702195961797086902133543683024735320815531962943302135343278633916834344619470813120999719196234444845156749687135879332099741626112755240258983584690010306398019831749337690783835511621460111732636419570725043898221033752927080150617570886159951209097516829207647574113875707124161146456806938790602649177072302743785766453673996051891850538659994229188008698257514569799795621553315079114733096157753586434667128031324314916870777149335590364027257850706337137619431921995631919715090245739893044031324331888750498337893839563502672434883447971706393019719922163871767491721706540707576825941238302038581138274885965143522943072367134549624954836435089741466897543024011971453186283978244562555988604756771338928347128408357590086888284854950434887144447891633995336992032290907934347224627745600786755057700536492148572836217367709994702202757050914021241936837628823190112483124933846205899709467466038546960102605401024399552912500368083262729946736623416784553155997858940509812755203395374822583082406013654908099668835083655496074915650989231621564542743205328162856765037930931539704438170782273158971661822150879578734233065614951833343545818013589420935571683062760368452589435036477046128262639284730638630705539282977261381383088785502702060203051433730120282400620312689937758113952891610561426492764423859124381457976150725891273845288445952398214429494298547908738192268278731830860316770987160918913536498282708308323389844055705737588688670825410674739891471505339113511762229026445547847053358783859098326507335373764220400223154373415711444534555606038582175585346442980752135511940582444138325696290521947761520960887159841637562320645739013076157728665353211435128352252029877040407315765907484507742318480107428747961317009873605795744659751421342791325472771377431766521666205790849130530077067751719088356476582366020228933168142626700815670118589869928362732937756086036206860254032132167117939008134131069571673654284904944976005508754580996393301828350843914278781197378595226438306760719007356294567515155606479891752718861060541058403285534638085796150498370619458821752388928418701675512067338255549416014584524567570615331391877313246246843512585279524099510999961973223438356751100201333680815586887604454211171073059651413977639668884706512788730331100385356988719872690036909625290477090569657997136403930547554380442777797757658892806668837393806914022341753703143383683131552569493197152772969845111852395057268701565084795400819163136140282781040521794615973015840365280645856874623125929669572470034776926427009435574308307641394065819224554318423298658258990132013962684999673733316310082294322566257797673016915343757194987524764051552283216702536239129025982843164508329194050302946511755286367459022811708983817257126884908953146225906158260209458607668288669380569292615482674748079583352181807191303860235088454973981823151029137745412185162808453524784816828972327387603978926413833871978117398619649801310802310642637255275079643985208380028774957041231139038456550497757769485905337825977579517420755186153588807984859765979308248382003672499699074925055762838249977009901168048561334164654738315702350338146232581436443814198672634258431639543661226674682826205682131260821883413265669101078189137086898345707604276279576417974121795400270422726988639864594558734602346670582035929387129791964587950474590396908601967942672068044823664573921585742842158193004859262256722486437172631934806080721528184134791891504445805671046868422139798959704299512485764085249446986562655453099419811602481417428403883413708513780753218928414422796533380925280145665584365702866314190171735578820249806152431413570677510106655721798931903943703449985811136207492737886446983191599000542446619837070664787184841695506857440095923181082376937210641460448301095549362822428163295147978130550047247037696160364243688293338433639979078015510255988688212524352935078364836825067372390532107741349876356824817035010352194019269422715631451987015521595713933989824726615297717533135122040139942728322482761539066957923497919311875244598124624894293412575493852944880183441444631378795144455666883996640483686733661606138421001325960888897705691224979522071889964432383115962284713751931283896901496609665440587787628803772836837813469139478390974960667179002084603433486352558422815651574010904380955782266039134638672690172290592124211558966105165591041129895091518755820113930483967249112120328267614105569184162995016477200479054608172286669925869569708926410352097341248447917656505061163015788986895467607550170404283017735368409862410510475557700054554627118445666611849762368354814612606055232878635409181334626282322260775636300649547308388994374588277528203103717482240131005927904240805157860982560982998848127068870105624066773797256694182564106761722846059661869748724736937973899475555340800997269356870881003855575835337561191309359331491173176840456616593806226287097869198938576064792955546643092598536521623041911447692757941031442591519789027130661604096445584086551412960448528759785355405384833247923347877062189769505108771020025842374778424438806687966884566466079235209908536146912380511078867223502019839371246793566342349033969724507893223057240125036280556476987771902064540294467053689372774611234802040556516468690511936273501519447791992657727858588598838615281917424607112050168279043062633489783007723584106566269737024583700289466726775281832336227139919022479014738336238405395177239676682375082587535991890119530569036016320462302437300740568832046229625615605460486300805921684766517485845596558629825219978741651379901301714789911458657170756957884787940112981356000599198879029819226518510135607215169377529299731238925232512378101794775891596243127277581989204598037212146147037098226412562184256103237077591772895625811377370613704929531760004909113194404233781097604421175279753312159845151617465985573121042296620379209211449579236385901024061144220456799013894226318246904506824294400254275935140549253027793391279451547569753286819624254354706327190156126507240236594639889879833336897087737290086893187651746321717069938394204380621620872015780224096578333614609478709554961928549184878547988012519707677290139612039543417975812898832010540933319730695537335542475022902280333874481087228949712205617735929934892887396976781554454187080084278652246845539564853608177997982232434804962522874512457142390045056673504042319263540283921955565444186596432128175129735821204277926238301454497002922496281492596523732869607912160014672235442870451272900969226112630305799844007736384526689248844189134336007236325315086777276505790761228347352578324245162631320186012476763949188807971258399026438067121309302884965509071475091836129128964612648206419497690982505262411330213395941649234960356578383487913539439544283150734666884036963605166383549304539475748446281243400842321946977469625578840401380845825956711114918864184283750560077169326759323499688898250611960011477574500805217593254459817546145443799365010404239583698584243360888656213277969038431122337863163753875323678252600105093626468703706213265946942410564763971304885223574517154585739808790903897659539788202508940717492800028032423863880604146489011700717288009645336034423232692315566479286411950347278392738096192743480972659450707233080076115871355152649870686814385858767241538386863297636244289204361493863096339963094034647452687220128498638370212737871098323297821830783320965763776408700681539719234265467956969301230757077821204957695310600261126671664268187352080509289106840455009803754719865789131312452684958270300813930627555622608831745930099774269343513175746287078689458013062038113876938508283782500105265743555365761467707158200993102260992970949493126774040125980342208368636403661492516171533940945922417256120165362933906767105676515521625094314461190852530725059727405445780032170802538710236907750858316776079064098939321609439630396342413840472270346183820480933004640098669790455075868854864771020049139160196743858507471458880985136613484388967786752963680743500944290039784248666495122620838674775267149060899975500341278536775194763517166062152921635232667734898148082429383721946022346736896079354960791019079261616539468288254209570670887250097008499279583279755296960031538837049064883202136190426889802815755476936191476735266031748722724689949242957187294532817426981663364329153470975146239339835400610720391505585005902876347618501234308462216758826403555340193000913559212906306665695131629640032379444617383260720432247383676180721943276212599487385623368193389761285167302934557830359948367055545110022095677457437741035068593070207114644024262800997878282991253892025668553804741291479877234765327492266282706631231822941974178403866428474004249604141521722793471844984387357315454973400065643069619333583015704965045135373000535225557566084383087543178060888104633901427577213264076546072810031036434531069442093531260456894006020148110270735625457557844891093782475101705514048820376921726694262778462885110221995415094713831614950963684256801669997085491958521671081279106007151058856441506248936265019710249188026247929552714146652781290408742767086046273973296862784376594016153749266383422947272801045714962522071516441435273441609037500946974659377857920300219846725658850555327640877031794701568940772676913178641875854455638507491669297264021498913619471850480603198731639463245672330666546690722073190953359605626615774279310817877526450190623171547516843205721882370067059471000218692706071163826763580856213644346711594812481553488834344469728631559357891605826308270143403172053263582611858799468855158434645786584063729871781066306793078103216689778228826870722158782817142960950666360912850390865488503274056092271054878054120051901968635129816771607202851145580733837623791674389976052825103664163716613535365799668241194741657654349348762799687893295616117206200783172996624193928926897034543387597122964276403771969509235430917335183707330854218989201937735813898977230891488531912290831354327963412814980002115568066897387896988205047905642922641004547454349625150302409372380084546520645082275828538963876429944131084952395298605253174505361815296240951962325853550654662931046279503849724877154557360764707026045674567841726127918628305825106972947662280804269924446460753642662745296352275300347082647543923344680469547906670084668481394338009135346236806377545086275849566888170255278138167633964816653397546616983333650581602006573041457834853559953333700106820701903156349011260834525544618767932308486622163222868066944156342824461801480497848596496983753506881180075873837929604405860114646643341239848811480304968867472124130057130846365716745160775789516944997911685602001307002084657195937574178883152596084922886516173509118931452106959102580479576645272140308858083023091220080019207436989177047316555758678316837469179202220312696405695715289873981286447730009192913549223538059834323282717066936893749911972027196777091603560554215415397180075471763368533794962936345733392808957108487875425574580132659501852978565091548603110451350453800156240363169625411006929311897325853574333116369987125294116320265810447932287549653858052987253946483042019810359026078456533849338330280825552412263259392325043487758053617060659755178793294948558552255776065384873327719135907357376412830593138500092768973359489475399952930511766652973250545858998163274336417609462839930337005030914664170186561533381107981451689968024240010555342870566605662366492847137867884485517647862305181733425935635940321077312193047811036200688845390118831392528036383386118968144306871603610760007061682037372082527549088236479464308629489675440594138200059717850492483018386200594928631834973079916686562288090390809138521748945532376757781987021356134130598902618320101558949141857685954079284463755819135740637738537624168697630709750929165549664443801951875577963342043759874920957486059031409424312086648862069485882973208043421727852940329705682526854936952309242987651690775894647853483247194581201571097513178674210553943337509071619730749189826353145417502757538740519407677926851117974293171904221752021325722568560498801470006799535159617586114202360526637187209984855590951412323721836974118299117070931241667984621603856329430789186574214055643942139284270548649947854607936126898674571299920363211086544250737022887211220363980613705143629854804490638600585266240669840676602584864442310405693657744683655292686280822247005270655180190976446312216660470783936053461046203635862596507373649690654316894390201584440798934272423862119305358166838470037685851406242302254467083731697673139225854993323213618267377988735227487018966305649240121387443969095399806582584022434505643349307154368073511560547516100952911103188372605564185268801864671459753933557422000222125000069862433254350379857848180182357137115631197201605381704524466489711514550223439388805038799227846790242504268936955604776755045489310067737664403329495118571630704168277019928554503199978232725657919981882152282643522300884892426992101921443947093634119588137026561083255344418081810671121831051073010780668834018036839679028478314132439634863970698079134613918703322034267230516036646293572879799054951937207445216967867570828635577701751219494813158384956980882625846373951308296271638012603511257611899694228321698287097511617810618217534274128512361768897005532887598931169530459505136865573014765898281941720448833695231693320561985940534342375149617157474211240666146256760959323249993057760640506745143438871736183278280445454753517346490792267162297274917428115227615809119164940948279537673315857520064973256770437575067025306979206748255811233960621415251272818739553398429931876691421887880276799348093957820487007756806766950161002743218944667411241754528816975324499640719346501573325903340612204529940559811370866186381135137340795001134988174273090278947893381281683219645473878981328805702292985711000028146840303121298940483619343236517953667028672741901561011439871257317854864917943808087201205749041845813697364152826653802213510153701975710550307613489477041760069690486225657565571626048948701228051924700311439700955071298862202997156870583716709282693399611160415330999474715189284376274786939668159909339832874527607991152954797494081413965337924671152524993709916424548481107479342781906221732026304873571662339309223505974600132717766134660772936333238153416020393828758360302248695750627576877023076141963895881252796371940148353915801009812082894646408910361813027722959363702570098534024492512054808978066507331739417472593597384576965708599502129070150282714796941565886973445167573175824598271411347153715571575164649339759356480849103161731313755918357922978523167304920145191679550038666495062605762136685683750301235326590248585227261121911612026551947664086282908362869220191247663003519247442894066293039625707126482566128208391394082195053608749404158861357713211318433357507485383705432877846556706736699610532943418342902914097763460338969725436273727231365464461028327359404101959532756985722072205646868792349279661462779490998706656365824560425565325335409147139586808640110429559455049783932485212998641700150902153857125641066842613543319933305845904674630696724811808245211752589832393101094972136388438329260500588990139857228909108599969192827317566744733503092137828392168133698694242268293726810654161957186140974265217785695503212042111962566758888760886985040586760355337514342813548002135989836381225228531976889645026403414788061556599703980991384835991416648126300862032455410755336514484164222204019207966975571329990651814978633441067801450285354542110354844585848594031649732460128210122693269493643869547197716042434741066953112369144559057130997649552515020951729818803927153442287904313732182549748985085478390698224434688444876997448701572742788372435009135538714821822837285207074016043853108357809902175061082655642607732635825186122030267714118138421314391472282557230977518757635004837911378889337433317920779193590709470111721223698621826226613813522769980914596352279417724999266364794249356514607508464094031215967347176936887886467575051766639146046283963672988634128120606964364848282008377606348609201455085302460446511251220010453797268623389542730837536617777679368003076934276463445650773090869963835157416107531190597687107091260450793137224621342018567416743888427155674165416179302164415778837806387481418878349249921800721734231183107917567749840795568468209347885111832310568063505831551064050170478858735229954655775644458505061777196120331485787701217960933572975756378877831731033681633067448430844002031923013097965439517732284997497717912522903743317619824143608751049960731989393793025979496044716159290840599341002040132328952927615801623861641743657972380470035994728398446939394720409390150532166048257643207505665924854959710634465769295203834703534707322590283919216932691206098939590710609012920327447204230232034707645767100543484985906536597983611892267925430015425096397488135572484135895989356587409068171902551821533659093171195320132010284832581943510461314341573639473151200863044810923960164459284777338689542886313509483317610892989437842470614880882457474041710215495102721698717820877882822351849531686355837183954386226324182423101489631963665236664671217359844300113819385399448806195154544762727996266908608632325406008454802777058122902163736489960965488823534757267660919669030283619554375159644802742967582834112705515770753806349162900456854578534062402838632273153679824977058735386772478535378964189957366493065069594971395677389948923850148304036216988346839917512200218401918586810590841687386830406855495037089869514024788989592995108060187860016639391527113810142721883929499457375785844226275211180053368596190534128746612121728414512508960197702981793600953412346492449987061478838047452404137878819556649084096361855484578047005680093037679765415730209826019322382388016366444122085024795380989778870885616730738869629140003657128557810918016870393602139757261310049245329264806590211989812986905477720221480854104319798518760346929888431954317451083121128851444792146236063110070494418482258030295448729914881980759307903638355341817783287828600370910059208078035182342251438359731996302456406579877080269950801868723030906875904117117204105818002225707967759506528389287736438511187086032288492216072545023157785687288645245076948709751549900065410229305877650733425216707769028430700363255924047890222577492049692647976246040478843761794776779188234292863421994814668984567963288836874696356460578730732025510165445297130572814147486950217161425218012466341396428020139036768359942999274215498279014498589502900388307901392199856040746111696842048195341671494076385624562984551220147529025095441412235378046340673132681001808264362837661591405097359364797350362651613391396597443632208008312417794149084532215506078683681724181970376062439992029030965245049768240340183447804740844965122947899203791753114609869147889706653859860900763775316749996918580198316469930176914557086497748876002357465164697795003719874580265795161800958821730048746237728391291667413813134369424322836304534822744909154013761557038561634913393457048154191281051432617504348787119822776955491731028086970978412727665102827745151915638561929152099634370215323852619036634577685531984930055383950970285218301542572495946086719815461641299852062964409153686300439348847023984381285763280782983146551337467693706255051875410657391788217962407845844588716104311324404181702874436507133890672842970026176145632304275503341816784767363386227419725400072577458074512955285378577606751886786497210544533251540071801688244571791310044694930391843110481417763513167325742787156247466720494994946673931205420077142778956988003138558252064473914425919466215254046600984059563425200725307570127435423645157783662225420583077381162409051492496777758539327686943559175218111443778204419158577480099088647419138766274403982228367486464514894809479078142885445033405658815877651464568753907923287607361409312590792109468798942222343318888825001174237783753156484755755983448249468593229383481793891098909495770600407567245574966435107830423519934820124848289040130280788483335563596244038409056900122436593307722635431441284120102785766971227665029185692447358685321237233453016348172615968695154763587021398171202677696489326770893293016867378427881038944011864779168881250267519485308225400689391953494427681224025696926028803404383081467805742112122033687488551472566075313228630930669007700490035194586398018112316788984498661491275961739722142913788517255992435681517630634022056924912246877389723801457815724780867953841267089059177837267678831438320169613763278203578591074633687982250832692447764800200587357251285301064926751546226392401381822144306955584202839412255612583356957861682027915690913211328158237098914259231054751939983472658275306189072757714548074589576474712360795819160912924256238033104153542440655077778555394442548918347289515374424585441956655044349924222824748984525933326960155136745425320735480805321145112312842882235909573579080825004912949948262782999438003196287257347657123088415634086428211866963799816960215825127520037170906937631435413608589818441723206138733424073699065522277623426479319329584266281545099358023377493757299017096916616376544725444759297220218336121869460773792721600750258029153556176897721702046181406117662696965899349100674932653142845229660785769069418895949288793429063833099939211019458979419027088626222322580223620011591794800522098372926197885669698429921774715803450403457213350932910382769179301862479161571037196505889310192127116946050755140561816084281556569412062292832558188946805985419802750322356563656978665546126805500709422709041527546576495276413893814411318820025788353791691371577001694393491991646408172470326328056664083375817352204678660423042790573673146984167197819270527858320031529105952221542795176568721562388206957984165488218058814645299152785698821925277436346791738506965527971395459361895217892312148600802024655108072749201873081603809637074586975779560224009341085541423542895499879336553363205837516214564617494483508030571785715487605383987661209095074843881419709092259020242438642266101011354860388267169787545378779078082010770805471694844842136111703654974775693767743381378240038754659206266230864241952818392441649205583672557545989315247530443817194346458999664746479277198481417665797099410984585727560694724061059784147632434291060126209126536674826911682198924257953308238601291641691990722877807038806587412997455557529405848652787830575677958149670853584000773054928210280890242917728106564182221489073152472459355884302050007025318268959483374113998617954093837721865386224442930491721294682833693931677097982933379524368754475836220207046929923305620421829119830817374279038213919884223049405264563356768055749755718077934846418469799858289947694194364484090652581262961788674911980012472093110818008282140913580705027903421186613166116025650885711290283831823779717316268747715615101166712593176078884059141806058895276887334108122302289076107298588513241072746530921881660056007248617171301266692076372642735830711221782028575508592127237692904137475978725286286389541830351405820593396496011528147757488200157691910449107046028713359654876204879033828097227435099459608659208338363472555054548084892855711459172613357887328317314820007847259891761413222318837042122338604793029985299706615120583109613636020280825972039164472530321297476855332422565886611102379019837021400994001558918870924062777852126119642790609075951724498984708784255970666484155983448384012863978132885649935034926658226292753223103171135235094935939381570432806641367271204931011282442863464062157861089541405957209759674653061617892485591054530006651658478598945360570103563710895618493444754212877185589858354981675390506304019359867145124033431312590749331304859004997565746532763340745309132570444123097910027863181497029316639699286251934967865123003578487938303375919587769243469789890586416288200050415594169930454747402743798817752585852199984898228391086139571790663465413086558881897692091872161473560651671116956976135956720523463028600850727538445039661438350129821922996670010776208262002065598493097123982430637514296179905323831992631614788574442351344609860632770597522769610091748095484243855518934121076771359016620897144604601169347421040079225225462167621992092590389479694034601966770100824878127674293409837785142382301274882990976276842125380377407817062489884407178938331191899688904535586243607534655106099796478902048037822641675692134930363149131460420267537089404127078760435349870813913993648585471196184482556521835752583788248314517185703928708902062332119872279296189828848449540573328297199199854511027867448011150495789711168307237032055610658716072793050885931159382249858369070734549372015529054281418494236145741429955873884326630350128179309494269353309471512900883631871507693600995415147445516263687340200030174163678555482934872686695343736464030711716901916802029614878912340423439685709733436224200856292345982234209271431520081058040928738156778907923709126835023018971925972469584306639577756869853739453562676250113972846693584838326160567276640168794433945555027561312685086998531384493302375714733579405112140363937280181785376124659627401595195107865826442668653570416853957303539054097873301903696623785451401806748342033151539590581077939735570827863960652812633028285440327348384496357829316497488300239632784715009445543825549617372072459702213805052086670619405837166452589850091187840993110112949698199027608516345417325442674604219667207684274292283962138923862233310617478741512621022498051098390462190373346077984726528893694542738030376236522381178718959180294102615509441604051545833414115552894204123198987406977066045893554387572693786790985480064407690226678383215508175443700825558816478632429275276343025237491602557492660384958057290030169981642381985382767111818490621032215073064910375004347878957361438175068043043869005123858405055946090852995860896326506490227911604661995324459094751613051532671779643973576352625003748104104202346664590540026910554685202638823983795620555730086709378568838212602813493684844279942333771840222618022210629759145200854875894652666160637918864273478796571354419287465335967800761769365714042022106053567653048335454333834950648890256979116619259862906711450914277869555658871243872918791010495474585764800051911942098824005603921016067265093488155314686240876584527447514417077776597687440090885223673548358845999982363878451652864643467872488304369708728914284181758125737208698314775690000205382396415874386014679524132536034858391419690857855240877677517903344259295856249849622489715056466329898995169782737236227276074317598060586928165914242609655139228854448139616005823240509505183086328869977909518648358513767961833940090853903580533076659549919641406210176542583138985615007726525805024654525260850905202406055518256064615808543322297022789604457165729359337084318073602556137926432460400011636627030181467168680053417374831515425124288084172721763668702314529670358919167394925192510569825315266593056160469484310464729112234457693614306357173087911067516302506882900633644467535756287977958702274168185847606267245929124683546178985325395701796501540245480267252383509466331517854957767253422512834332268978041688146313996258124084145561553785717288555754701857314339496584156848941222551145537813876269085117393344143807210011810348463191226404963536686921137338834652009286017818440155039967560497775922663354245708443576206384233601052748927761567285251359587484123254753422457407836537015896356469076427800415442983968274278385273002660622005332511717638978799792419362710378459203386714193243396110331494040411461555976356932579369318975181595636508123634634952927141972826461308440518406721157025375919691845266872479143962001341014881270249004368299498118843380252898828782481720659213580395131032027754749562826386707220351330433236260590786928878852585013030846308511772811633081549890421727763029862018903197912618083406866363421537671907677629106904090453940490264994714369623241436545999885248818779436328712585837430583615711215995819332449958158000703139764395819161443333615941436451935784429115429608098565550957753364841959589121644094396432674816133841249078562851158259350748713484184027771656452052681516934243531552130697006897665966650713451395252960983474972554644357607374537697030873236023253806271225635181438139627334250793427310942911320163248700941264353082592961132782570147337711767906927307156766951530989351091471640237235387316274647049151053976296619289034171744615466796194291673365582541666201651275318317451193463349451714123587146422820313090792327882213796388663122270649636073952215266261971106269738052405149644452570970397837143047207416385720648780160890356840360808123716925328900572418301138661761986258136763157666112459972072479777201637187567778202393129407756965710872478178082530469130937634290778054573875592921982807024789922158911933628311253537302717028935968390091820668373694742370276229255324643949292650830341211451516289838529242623364249720435392976055262738570636819754605494676543850689418342202875008165271799160169703375459321787730334175806191474949575196787831483614910958457904230019070625396149530126512894462960261107262374910285437170337793654407811712735324729165322161667428326722802191357092833237391180177719083325066712573091243024154282145537938409790039100458316104509219686189101490200477502455540511534765903243291115567949293754404760944736155954893130047965074776270275261796691325088108040991136982833311212553539775095443514560845462362623729020262951041104198704918087132407235842152696785225222881764245904166456810131087396815821907758676415764752039648565579811829595012486078688967238034028922848176601875197134545967213677905180063973538694829869359500625343642484703745638511096932727653256528690496385792128442722345228427545822059686941373445884272055775319789945558502394664470536781888939058056288916133346602238593937363478480684276539634510599458541387931697298706747406905356037162416420972040676051723112075957551503091364687333958011618528585348960190712774068052748284453364116153527581958229869203257029161719217652583253337042337844553134486675488980137638837861152660420380201664664359389221958792800292819948674328463923846008346050341024163112282451467402660465537373147681375739662966052405061519092396808542959966669795667225100908216986622842401982145514788361948513047882713747027929984558691370309654560038877365575734745018804742971263372810226259982723182582528202655353653958241800974655634175282953046731386321094196938686112898519208580230750442658028121511768908132348109037311223145786191130796507171847704374568201826954829574412584218362822890246745953042342847631967072462307748441193097426231979583215941400236285260890170336106182166586832280523458163612337289101406104081093417160228714465782768877348822275319860162431261792155218082352784768694479376106626713393888295292677788751078809973770182928611378292648533469679407998269073453182856911602008969120465984273410588376219386097211345050929356560970306739858324781468775182334559241387278737261486004203658569750017387725352101180491488624881175558805562942275742544527338425718953814404554051971672755443932512312894891004978950223963324661358691919482122041873102751257588272207602362820848338185975860889366483838581891583198532378943134901592958038486165085797226853632209736178258663351505288581750178942110872422163799638936595922848667001848702664260117054895698462396735772263007153081167302363644732135173094744297882511570242619640896609283268283406480759890189062969736447981163635091658979418798715843905511330325837661708872936804937786678313451704466744443248644150981282508410360635206156284221177650320615545287010310727849752887615444747983870298992143402614216492117119173589235396113930046947068617423930682514283189921499736534932226602523954016615436245440327271452329968120654341355795945890181223149282885861670990297165987832546270150091146047394562122474008261780783137614222097732768297172425662255567627709521422422037268190514570798799681423025622030322275591551082037972863387794200723580228162781323163181667629037230988646750468376755715680981366140455047386876780479378167702599851347458887620675137221885209813770911677429326135358876346656219016723753292120335130855946968143278698347944169577010638691307813076933336493136261005761911819024364852572663115025900766365626261180703758486928734914992450448401345160721040171249637710042908820359247225443153605476428996221245307959986197607118178276566228733057639090890616157654624288682911510708025074973861974002650808093957642190687128760071343902762128220611392626611819529443410505987902021774778071863039909072712568242371188647082929619251640470970164080928185443076050555445202996638721560972108153943424613661422238357496255808499696333448639675040714554283555312149674779038018158355111465251271529021889647875047206092186048598275450293775170041111585283401163239061320881336302003480810704539679528415914588089142834793395071032863341159420718900294594540944644824488734244411015880591767779328653024607103239082566157371799682706643783745601673875457231391479547498218970686871785056785047808468198667102594668779981101654488771615521729135014428148891490006637202854442313147630000032922231680201584322192339843004489670582595754014502541745463518296090585713322259727887942581842893478785330355830747482988545863094763875257839672178025526717581477967616131665551844646595065497225736192840062584664478885088059987179207737706978568411036050100500026322037008312834761129489661196226106772808753030109229526979686887288204217183763779772889645376279035583099587049850844958457274592735950692012418640954471252477271380438812456399122065031852881035335077928850684052929874982268073345614871954214273494438181304787453168898410960130219392880191570564092515492258069628711868561347478596080986964210230399037364100541024968689995640403225839231349998696185116032128946149778644305252271270608009984411310592313698994872704225751285307977057381952701820359132462073555723780707730886042527298239310372703866190530486271819411211179050058739383599916219351645244807486196701228513637008448102033785691251768030935494784336726915656886065819259822789660503837618901336550491218522720819756553969491199388181639193628330426764552648957707850248588070305875935053203560127295638034708384789257582381549339262829327325536781997034109899319102907532731171613498097975603303892659117031175112004298460677362306857250260002100862188732613272620654292967473441004449950310607426349088617872653942812411090343038666946969538584504039547689624239173909945411434065451088278294005131289945664489731375877381853940386233398379041938561267463528149848134749682054527139851918098772402378874247175986148674689953673222936431204944753676057702931768077424711471139318996672796371744396473377621467608341221142970553766521564559423559334655707512076727200153387674054817015690905302243964017158048676711682861790118998746580634851531498215681039039571304395603206623741610000443478598913985976395704834726305730455913399105026160693026364334882014948248670180595560094738776930690061418579581834091784625065755654892210700158951354112792666998771588089238214678666841755693102785387342007585351706406261330905060028659332631705691725740472305444424118568846541411055992757690529962004872245569294914319705400755491081276453670323214759949456768547094919263909955368412734494827125696610453593587519187666736605952490140991527336546722797556693657820369695668592086480902296611967972054675817727289649681353807926043814305602971713058650268897949181998393043071031065194226664068981926004097884630122703549544129651044515020083250530716666654618693153732487655464648059767519181176263329633871237931720277147935663921196937230107178630163164092102471735403308237977948124130856474974493831346392962957060008365949929357981859126641774519712608663612830006416699012482174257057115096338181571725307061349657127449703064200497012250134667425876737659955438391181865036204066051310845050273970840885181778278715012137902414955989781074023798981362933628394653091867603133316865073160344577494632658786606131065850934955851565020681648453260040144802355809033118634827955350142433622963358860594665478576719762796047415293015022047859362367946810570141660754324135536701884781294860528095132204099374513005109336722964172155794418490017365771185760746929446286339825114233701951665384350080637164098765392761090788021836809098921266229213786450360066635570905363578172661417022762546085841428381471529379482861531433531347501970539182442332421891458506555837599516893080789830790158162971513011859807170266993342349819429715888016351525686813650204603717785656872827554611533612571733606852079419913338293690586759998612409715845764427599497129265285342498484319332070112168738853078560054037231535263307876351249985413362699598289740343711498630387191224149446456303164834303820618054025346840313139439016091800638809080194113341866836693561425231602953477344939492799427725919552373728606260516531557398836502829152609315246233660255951700241635911128621058053461703346750811660012991375392119870732356031688930795104028534214293847862542513575972373193800138384738203508301686838624267066700702084503471984103238656172814861396158141117132924481693831262278881238538085347520743996845186421328884696098135209635992774947043882198019319550070643890699650319748804096210943326821424944210169690421049033082951656071307429703812420858586135815368089887411061575531123248738588641763796214744532793521949186846510690041409706258353600945331531108455003078974943769187227017211599212861992436010170521353525102249355755036374452079435440067145128435832767844347764383261953217938771149398363188103408642844514347706913169528946936427083960727967070877931012916234342191629997204196340882316899624276886181883321598003127092700277820154696116888971997039750137322255498678707922659524869074645011098066263295998863523660716430882967618527621029847390598304677706330562027593683178810138240497127179191697225891520411520249029356686014719899772415983864093818591262761231545150859707290276893459513937617449101049348244606848156353591888067109080985465543631099856660276794235660685603748354540297154000533150465950233587495497914798958385725616794540881523640769078702913521721259889618557798438179228527367846020745403125432428515714316164384998659331180952459382664012832198066502235269625855880554085504895297616226039583531555939214734853185849979101883538697694912474050974724624252713079417693514126880844043312984014626990997633704387783076766244537653977270116101256621294175015245904773994329671206825291752470348340802395406718996766677417380727348785411541761157046187129201014837915724223079691712284694695701754945805601868599236650439739131390425590669268394111335307625807591094812387625951269472549944320230372409242292125190767541764925904086340095804498996564001188805404744058828529534081728810839274665091839283694900303859453422266677197954830233093774830963926283102090504815458547285233213260408249088926667250810654178207449684707900922501052534629258493085126452472318227905700866194732697609505140053804055380510577866250450297261649437125531837433640380142822893745594769641862793850413986032592467789166868457361933625509771798600757351247697824108980834570362307540672911873102742364938357397242789355341566170007466082829252548130311779495160597608333814671707504511422959846495371200121662010856109292714635300743209284236736995705033823032894048297127180247805317621733659062418083362354160036159022934692932940181365013192374802646232253511108127000309336969736712614512539543604079499430989163704850131772589948700784851850747216039084431180890663191137847429012726138085540912007137320397326602104662567776101982944549444874272826897694720274132516505550065619146198789074572644721249297206632757686624037010709125246903405901613524456097791846840754945745699643314167323464790957521274209424736614692855877709345740742818183096950406167765892011515864285468361121281670496922817504249722300772735553983803825415553184511264787788012792919487925315648583809350622014092468013481061731569009144408466432575297637043537928496066893962435652369472332764948938808130552323503909174026923276077677655761975179580648005301661242006203557472892448301603805966617361811458609282202143505349925498923893382214717302923347148138452449317790871059880708256553090693010696704940630537951708831398831074878870920142404527443412472244587282573846432097146277874651088707711843116999707839414267904745669224606606418467892873340185816384572607324011135151649777913679492805836497971970429814817656175565624191372038519162445753958823754779623590870990715056475039696885058838277930288310181076016955887243355793733103197446057591656517758369279231514812185353397777667434233039384342776419286713906367814902174251146106779257884477975544966855924824860136634464884202909403130667949819253554059724130901759142894244917091440996737490750157468148563772465493209170051385053640507280871753760521599476937240129538603620790206740500712635902412730556787130067033671542253837230681001866215406267562426544399277387315117852395164794381075395067906530635494756523262778299381752663272835339897839125911618682815356895177891935663214778497369732238309248833835780336575856615944220714507192639613474537306244675903732250493908892233276659256223390419811197660807758065058547760064077947838236656724208713077443767320326470863399360733403959175572015924056431988101938224879905583350713922417149001385958221002119051536599275385346600150168276322398052987182273825285334172246415376867851865719738438341900107719339969616146109020234839690024971297456596787776834846767615162642949390622702812843941960531319650232552965133162493785677754399277482263836692253207216713374213516014769864418432641277737595098574241816407445836185806272556000394467522599178960457367828129923315790746591275824763544975419754817720841334857038076077059111548561157518342037122035769248128016550732342261679798291494847757141205524577419939008319485415676963008985268918834527914299812322071907102535561066758252301355540712435760993717584159286358359686068971389275404827898374256799973243860244210599469548578184819957537497968564160662620260530699611707899154893985155373923925654400076216950390748278934905956132822285584870117426402255836314289854351753060129657040233439610937061766615014516606403704697880025433717326398578147970756221948037247687970991795353410724111218239251526789177155660944729363275913539124957370341758276750593726397734488425325511360436448822797558380968357907973126260545688481673907322683421697872510036712771950780347819269274272712963042128635498537396502941386046479633859463104358174039908490314726997975383523217912793525606239356331938923432647541720437536697184913604587993988000181677306704769064422640362661858242259048079669785448716715145472333885268469840350475842480626190904237995876900821114500298729264218772012849334200772710072478941270671424663196125101199800811718599031622363819196463413227152375072240018198274852133449910783436562262220630295827598548859929308133847383517493642054222357705411321810118495345429356979078157194178893094252989383931434069497989148371455952098824881487981989886623085959791340584148273799859866460848310400070117637361504495975462534250801993093749488135470628583838711495242733911045347825160439920459568512016519108775466575533289128317890021066988970147254891221906716446907799781102021650638251504308383543059416294063468203434563929794173225329036149625248353897823527358640106445068565949018396953318116314436899795585715477253963018584800666007415414408805137134193112820334660164367005823448844541534675730522115457300307308993291179044166682531559287395559549154193522082049752353922822521330276718312260841595501565872916760659353080034770764828744601310398876515415468831881059599114892593760284032867078391540709473004449885354686372676905425558453798547849882534210785077355173077554597089836230463193261528823403079119532495555018713544351108034876404086694281157903989697822453483411043125574689317773743604002699489191227923169416568723731473245167145837609224428272671027212209316990560640107421068446584185919857060014716115930235992800112572071691813929388317170901336788706348577819160585598731538005623239961735335012457632758678506345524527714289426570069283414134932920520605034913642930725891956279796291750587217206996471214873798491794876253265558380364945034898117145985451052974536753508080883534999178863030027614786328117837507441768150494318146627771582235373691137222312478010248786352449360149289902489036158992795960572700303028667893153175277426655161415490296085039337423967868210093641044869438519475390643451418020343452679876908855282069430221850194933456584907347165376568490818218874416029588409971521163930855640793574815860755754965298954189160031686719784733065436322577867221627577256369409663507037461800806597575584265515470078029548924404354511272760106965419368288399168704431399057661203689614448816735929107060136371126125305601897257205683416812122799405521556410494275877268042984989265653932394843140145770934015706805961354259605504938033221589532453976256062329755089785649783432617655650462997979184628140243129356851527769526534677479309651636311728036789578133594571736683056709597079868676924778517031488521562402234236887797328094542535586951517675530294615107602776639217759560494177638684686057785850904497068172156971436987316053882915508533859971705384838367172438929524465316700372309937910553042130571781790301739740017911347393336391493848045401188747872757268174839370700879227493185466073955349489973263787882886498962990014582144453342535368632620675998872467491507546794578931375559521088750793215060023464633695102705760457338421797741217281396130932211666545058487105101660961747267185822222839290449399119703051659006295080761579614588056041196023559135860932900307356226900441045724644326728145960190340377192470462082272065083534992677758822323677514213007904309540281970170851694074667742995442567005459994607880203553463903086600103368840895680423685221872443244400537404743243913041570141029649371500873405149249679258731638009234053814152803761319738345659849888586705932661418061129424162775793796429726387065939582754948474422025460990041797016366207793980253383143661728795692625373307370741942339415161060134302350813169709962563499469313317821936276532408899718525630661354268857504379424697199505008996594827081679428954063414844213611879437193373611870010336589617514050291621160415574205078373745655050448394438223933924957759792450929662811422672341067891213926287188272163579223143410975154350708513345954590892607454068317900894893032767406777270401403866635385419805488817711381025106014540474795047956539072473345708737727817367722921241439557271835075645396880484164537290004369521286125699462274958498270069569903030008885408346978626225581848483813261566605944610929438614408291484389948614418750298319306447798810105166758094403845926097245213262807965046118578716623717706439391391836489614165469708488011633077376135492030042550309670280265099328129480070590526113203689472705359586689521557268565838330682085734415002024462018971259394128018824143314196537035688657629687194445477222313617326233690970485937434753303242251677301888869995734477951514497354617344208615367048630654117514767596939273762816320745228497790526723184587371419493748948820048653245382952634093749175997847712631934924542106553349863150729105703203694292269737920856368575717324758617350466345106592922678285936618537541395893815903135145006174406817578085020718464972907248091246295675841919410988810591133706413632332917890077620978827151954660596040707042047815384442316323059233845958227944082987772795431814960701124492945293311204343198701353894368029900137987143501797334290565228898974331209031991515180085980198493559247626701650481021256861279347039450479027486690543429580379250998074585118781274440433285087080490170609259029926938739887587950865691872646203793014605935945638454959047670212542282304582350014373994569228522989487394542920769352820438994889280216223654686326271781474841902931969893480481978076540453864268360244398859323439570142377750532302610972052042252414095845056298512245804465381513624299609585435772719902036178788372099475782269342691477915785534892021656637318494925649252479719990064086743380787327261481625083688262391251441895723908743049143878600022893752805310583096807102140738920968545834355398763947511970023298566873780106926355524474384282246074955004563164235380528708184559760700606358441651905638259848049084085308373346984252730498906842658285577029982927359695796066473560304294424085956975840022961318335728708404708942527195678409716709986274845573362491585749346802545785128211156487428623295431772142542524637491434517878360594215549082886519227953702911191904700106430217878241165190085849417678837882556754812359383626969619387627343829950199845256921494801645042341202268403971440957145777271629905905484750522490559936647390952696212289669072450064203067222179011711482909892096688910097535832604668965661474961777591169960382628947309709595687681906948525419902905020935207492218672555858685609946591494825164840473727852099692173062938941756481339302148100266666755948674764653898795398017096920031449678540605615534079024415176561140133938035521731731918815822060816759977760027503816550476381650636602759200290801488572139020790835109561092706291203805684863763508438451279318548647196797706371870915648072240720180754759486754320058333876699383648418113777164308947789141616147407277847305788882814194438356492124138891362137574755570474396484975624123422980197493638296099483090235390289790052329663029992154856867756448973396359498610527975390623398015453154796136772180514901717522248069679136987717200965182657772121672018090445063452167445485593975417259216102392600888903136852575267260424283139608368952675022062849291318561097420351974958658581529521429336016034244583524828657162458873012362295589393939111249473471618266716799364576585536935132647097723999170199632582592623833464599349259144220444437265667330823225286491487420773073408873804473752284078350169486459227799257563839350501591814824871216804453967303454384910990675070342933988667058542786515114575922232776509084767524578979706171053264307110804672331840247269008540504014580283856834213834834079513181484703900125955840866928169341351313703567594352006972145696043978863919788053767872508129876825104476291840880626348435126168795436824261765937528222272274364156070930135776491132539505395033946378790325082733442258339762086145081061717047323452080131118954944416643511734833438874204821346547076293634208795356531226891166712681719408260622043066949010837591699382982251927247277868294349910900865246763761574969687865111053983295335686860903784033504955678142303255563340441157843407959490053740127979653032924494501625529799982049888290820665657318475789535706173934630304458857174397025054119246665056510143853796228332083813468584604660441330339904899712593733020049032331984928047852901855137553816976338436523241701986419423774691377551648048296665250818909866463091716410036145451967273273496800537193849804831588652266046874802167795486217643533472294346723018045585391166692057609311178575724359093602799101300694959480057541984271218741419309967318741640928178966199579777421871525226240799197322422368563951965995147391802231564958852646113641453330985911043263588821494729557677040755191716715161518972805898822191155285094887555453509891676902308058912025068006270409830987733496860430143115780414028795580689588009115632956346425245120739700265791221236941059724159795506477555089883407122686738108169087548703861766983177219136550087431980399221802922385674205326873427705881627329781511690445997972237697462695556091057185583781590617264767078317834739208513190123993412210504765189692050807250784388295941906339666855984751767665413694930106096179955679967940275189657126209158706572678136177719741744033078803144002806409736262436820333738867711458534856193806904748925856857913285466624400736901644589792758568478754470096875018005981641046903070055166105904142139559161184848154448782478651606839121070451526907855540899162883227303665852755590798933186748813167303808005765705851452297537728522902693783817166745291039823002010042672040703212368301961099496474567855427202339835669626131115192015809753150814910166123399879594388936253533145781548505435898922081329672825552861600755482665414085457188156983945056097608331098807427234826788271776386298300622372851600390775454738311886903381547872182699726760349041508538094623041097788516301641661299833795072507467972623244724924669952549328017164719901021054090702946599084093183633307456629031594316979050152095921882447359540475846514964949168799615164614476578771932343489108099145703247212191511380332699405718762362624603462370373076382177912644514857331027671750844623510267277522364598005543684533773367976012652016794872970257494778055856268102549423559607714344573058799400534164807774582178765327363065540795335475527560840285493393031975555865988011594163623557021243227981507349313345604026732539396618894303675665081356543424517457967586420741886871988140042799909523748513720545255145326385966585485626165711243788500597497226786225776388147353947985520065261330145810761524614002018785371539406294041469187673751106980793151350175388605395367936649639085859405438405299925523629082606424209363777066172040063155372783865413146697954165583167996686792831578199521819780283623231586520132495647622594467814241681719510054137837931329174971894200947119129195456544144081304849971265387494905104838433790841070695300651705032172754777958959426090608612141938604866458655650321391633319464674012586399073873506931555602340609769742664601997301600672579235583658620086611535917540157057717204759041223643096763680006377141677533159034370859052708652336334969495951532010279630048262904037703633873193201398234630971361240823161046734730434587593839265525296460680293220061000324776755258834092463090454336662255121535783079284796294169248284560675032101774311225917898911597593707844042966820474393571770767382260075059058432583624920479164956901743163480545804851982214177471367637529869122694482889544282915802604495841514740523796884120133460928562998221925934542053604338478448195521685000905293354073119313129953000545502650317212816835189613637586118895386148607328783399590682978060378528633390415521312170101166929534065148802607591598173341511886003027652924753709703379310001751522855068511440749848414635360194980996794220002832474505196743011097552972356703419636949939173484905315256604128987925542346380183582559665404033854879324314100075036159515454428444519433383462537958213826252684296343623499334328744259968199981514214619690753439818841831103667048134702914290245673346665670900637089779523856093633472387144018610279471373129277892631220160780041565585599961026674356398395618540382279773676663623285022822832957248298543997652408847064951493021981234544549399123571598817888747027504023088254859530057249561075723692391274247800615769422497526888038408951637349225278319648736741274470186121611936400933965887569018424684312532271722571764797231594986946191728815861502414193460575188112548839040752783257402047221910955489555585199645133529594760098114283081431543757959221234656502761362787039061097619131188271838958671812805877118358834107170365384706576557016990294275098828670464366036025144433035158912708309254211918418011607303523295465005038710476984552349890528653790958331111936379126633080229077572758204805477189988606821644332910657884281925546547341178602254959184514668429923164438206441394146329912686611255315293671021121857026758454464929226277887815649317099132714719781757939698347364532931009479873184280799407826120860317564251179469637548782637837802779111635635265840980058964327938622535465208279637124077290283884157845980864978814331174692463488907105529919677729077820222791857444147185033903252675797919471734247427750341395105753358799049297742541968452913405450450419320699125459867440886838588589430520737288431509398089251185615033871556526339400897191958742918521244728021122396812665066945651114866922469555246750390017676328609800761384897293282014472340456954555003661911289583205409272314202812783733531263656062503521490444655061645628607051331522276686455452988727097482363265476073231397838444299842157295075616234924264688109026907227729035517072469032857508997916048514037436026017902253697693401224459731409855213987778868620245816432933420744104093690940596081220689110023777619307936648136401969699667597792344585363148811407086555039592696031158125475807105580380008347905021266705534671343627955316834426751175189437504549737806209821065635674545204512708774372773320127139370872096020942992107494737273844154297412220624425571719915887704329230812818386624485113727738228885939844255635230858511101147893619712667324276169638246421955585943318658845225437439454911854785638750377032258890237597658503522768739066983917060599253370760045651231975189900124483884871685543007614164168253849148288568728117456410777676240113829874137109745383347487467454467100222187576182948123661815184000396872288965345819502059723934167878005003650288119584818558299264159665510043285965407641746324622890918024739293465953525625428071812028036720113872344196634040281131451030267648459835807549668055915715559582687072046590947182404154967172745410681981480579138405853939767789874728936364005496666196788884560946463975959672980051678553996469795272396491318219276483139062500029974617320832795575234027269492217242024233467401743006348549498944178659664028703841642828374532507835642577658403213743620516183290587867163128829817807372114244118718575382946295580865785192667182971522793719786354020536822159893530640153850539309495670350172628312371964370359543591200852006362129039266311631962956059740382231138169606804185140555329793647754538244847660476740894825852882354056444801114304698531147636266268079511948778614583259429485194616782902854629896670824413701773622455929601957468921023169629347170705390197656858862540311856671152283213052170715299674845188535392391374309951492688025871788226851973502489439034347698847336471699638518083858571380758149666060670802872007337917394256213909254034543196459879620777902544272441350986244012932570657268604029654842371652952715621169617286893460069674997547738176395104291466610862342987247727484680690104829265976414374247362918486794001874086885587538194698318544593018425228017714588566122260185355680158491031812729047884424879382238239639702913194558161583401705737082383718734759710663008087753295309583656375060950597610356069339038004339423958813167213923206192777944090357235681736239690590870792677319292521270671884653247953780746861676559004857698327566739959455607564775221127677059224558154501775052496745316618763284518519303872036636675614223136596035510469651596237620976467899691519504290742028325723368533382884463202732993741746638656555804589977526808469934674156434437280455751527157275150330278736702656935563766622055241056257817622504141886775318668115030901240911508849048576396802368263821361857328263643452714343818849942159893732591294290082263388142449362443067063064888631731983452223963529388115842462303112206282891877453501752320114252730507490939263057983906209015113439054599254279145360337462960403544244254411926147981411549444552237037969711134446030076096711826551429537230053918329945599328578583595646835919857545971114577253573083766800835320565156600726262104994145040627481473780817034141139896382386748772678495333328500844680761119446944839039144407804666298354766480257143984512816404647031111816788841077813934351002517093518157147079068726607453570087129716226442953634667579951617303190285144845149461944547569918510860563186434769399747500856443231231928206484136212605990397886140678909516425455113659894032697402584759715718921278456508114056049687433133697912516060559729744855049587122862534053116755638327869580147643103953791254884856210370935852434802656452893844331527766790838361007579764329214447308678756688099192053381441528488124787334697179691969255523016735034501648515592925756882593180962543115372974811798764338122688791777397258241958293605381373706536893017257223331211531092564317837231425850292173199070409091290027378686703735421409390894659555316843958654395391778126978659716784506286785783956615062456846178818475876608882751358993841083114944328407979074825289352414291433511224480095593606267052782653669042438948947254490939636357211069354658053122751184149698667398857252614251025715493909391535461721328157010113512320475308536352723803274266754550015000656152820444339191782315635776172858666544153861020214363821289567531233257033617294779619346379059686257262835946847512623255864093204878663869146129684908560006099326694177471358830132255426004660503738527640515663279844270108509200204594073413462264193247253299607106936276692137816544840670674821278061165982796568474234841208837657358150645649636080302036507602056718711927626122472269025540718375586988350484997695508246474888043821209894473586861200510372638312562854944511225629591227435506574313308171827907769420961508431455360241143010297783738099139269538563314964401381130816840263980307136437538238362622236603737983281706174054714901047863936116481289963138867802037838879576345884603533547349081464590555978695042665283547296208676568097654220759328647844516872114049875396577585477856863129428588510738537265624162953364268352311062445335370756222532438218739947712291019764352880336658432242034493192084993015519424337233917036868096197156501134781448736155175659399851648656525040592814523781906022525154225132131192135111610821337914680868048509258577686121546014447840781901520444235694088621824856183636883974298441382054906267026278003628619169560152473022305362607327789231264714821968792734531594218660833016123245285520113754301773639964110223810501040914137234293373506617147728335244365600010539105852781253040325807869057956826108096221689407118009266216030506567159002437051362773302993976553298756392821503595848873170123214433121748261566319476178116886698078115296869401029415086525881163155398421874953274882104081045915649781488730312024373113224432155470553507945440856901513243557317973029708182820401836947848205646799396054633480529865639388772299498866588734713616415153883779976403753262303537409349430129879275467062307430197773805306918275424231990101384160663353582569513302261541586676745373940100213106731339305135365547446068410758407764209815445821047690341897120598087903746865196774313571215720659368346954385624820536471219181987310121955815042288432351597282872983960284325858783989471664460324036512562670649467742019421484559760911329605008189555571382981019461436278996511900548482208948663362788769920622567790263122382480706966169458711611030743762206292025673375525638487440532902141137633911056248300735480124503127588982004208202318994844524953147842829118726901510154209934309632948884079644139825604057178397751565811272425936627091008793981808590050048122935921871617508580228181730860418338132713456901813404304989091340205133412144220814646218407237365487584846423941006967520032980549608230703549254026837385148649957350564832204255350201745499656055749147442672844870742543737282308291159352124492794844259988211758656292012983279499362296757472998079423948771210156789630627815306081129487385967004974931335107502478752037684211065814008592379835238568412380830238887952251100130313904327273860604533011784410809432581561905248446481399561038226995113117970927691814180496244982386010952932852321320305678582584836939911942826512313809398365138088287495728919284856937142044988524196783950588246761199380084349731243505571419645697791598111395775872009289080370193305896646414591609810347192768774606431788388081100571679554258049156654182973270394954298740493601682752295104919490923715291430521445777391640709363113973394176503257084506530486755099846642126983393594180631171801376616654535775091022484427626454838204415584060311924334216975165780112475173467606934656980640434883023189145438831110975586678803106634750639200852693628178786827666451355672233547209173533484762017847081179921405673152717024711199596843096292386673201739064754919528543550838317987048954136368083564892671423479527798797260645518488259801868708726675348020966041644330335591885237715907347085311582280764835854628955974896852995297079178874444601839889251051055205105560237900327917354427945298987807158890562249263269320562083373207005283542105524144169719317995548927959350684280588608108013403766146451009294873114262907160710342462065751007035259171024297143796567595881888719683533422049066381503825741146938491326935639228111237249682679448139270872241693515605099275272281860476389606958649652745414613838582527434810320234838197467718428968971555793865073231455550155015407102597900760672415524672519415660838096609092561937505255900611013193192268845768107577866156743588941230333279685898329006963632317988230913121639684414908124909200111096268404168499706279006057103148445754562693174741121919136691335745654359612676237853020197874912001884815417985413652073097536853925333729709407165171563158741218500181892250813292454400248470398259073853219981143110677101439595016877056105710517684334863229174223708246307489482537998352822050312362256944841146687840023702294949036708089271839401358328990854526934713107614001591302445029063272334339876796552519816231277079864647801492091317390156304656151055344280645160674381926689234635255306029441196005784029910535618898229388009042703771169234905936756819643114289974471019708399853012730979246265424253169808970984607453121753794994217507273806794401363988002219468419308497961583259107100270878596385486112587819772834047621069246757556819555722671668021485909961400206443001856177689092596269041579222301621200592306275468089184925756810482188402259075502169065978211908542585211015145011663910422795498304364190690641833524264122225098335491076789726867731780945618359628882315672101939503911231063091457120312902375253832784133551983096973498650547026842193440158095827940194360022744484108148559778150155611306019550967526509537794586315322370821176765259874024268493067271156811127707972800964439281652962381225678473073614058678538577089713430730137567785464194520690021912644462310891962837602116288252911146748425496629087038941377736631469839358769795502408463789864016365951911714704391003522829382616408663476875283261389761278997719190811378022139196262402703354125712827698059285874665689509654094363030291571877189931543736679281114730656863340802633112084547095496906822269316265465498366963141339149718359491187407925562809927565636096654264430850384451811428761901391880095154877880791180393703865617535062636773990554182772638868660015157986772312281239360727985154068808808300050559676788774053542079607534739616976367585076076443076810417982866602279168586871005239067942274879494579615946604211819890398127787859628449490219351334059318453772401683156702552714519739031722817154584014491430450861604200642975560213358581149075207744233248791927684216815899142478103871871166451869237574454382126571545229030063161050565115935754516521884999750203843273245235344715873722350423289769279806255297675833938382767025703054424876318871265484202804099083754584168778637606449620965746219882678245893954714176100905791872387346282356798626852054518781311699567582230164006822296955174534861417196804826084977512604671553665762971300062074258220828682305369448438894654894230884570986638147844505228393377823024118341202516889430429454210949324041936714276186576366552269512532690778927903684820144441649680025046790155225469899114282740153460068900116208437260846853290607118576352503457566062849222209426472579623268113632822237690751335067455988613696808062745390909834574232561631193877962182781337444251310245255408285135160012001997355712173632953074579116638237686434739789227156212523216367251196731963640293384687721061117903845959923536267885799998977150701277788789437946350815668320207551581868349418240956579890401589974084819569595517570242766520957942879721662439706352298934779438470684794972823603058851171168997783834377124359808744468580357355319885628834125101807854793654736045650189498952460577951894187201053507711480496906061145720527530690670120552612789645889508829291582573467036888297988714086263626697204572017746338996820935991318647149293827934942703351336878554961552045803059564342184025022323666652378284519553507225892514255146690260609807378492591051126477255329080842461116194097248601072049061794097503334499631289219887745357066625072118867568092862048382297706062896525452744942615132637531560721246079057873668549379471068617777141029619781069973035953196834994449422919641428148239818873894525462895133062624830967337068766452881074580491489591673986155385144651607431960377551691049064963344504260182586339950789037516205585784342326546937001589777556688794785605065956083885709218828943333545467103720826427235714152164149043347101797608447667784013391404738784850288160613399381679356819835885180239915171371434522293961672557064047632383578847234482806831204195357121269482313157739125246688932545236593425998214494724130906451894227278984952302153563549228970237932245047677684935338909574897261873284438141834769694264258646194345721382842387549635423845497635877364503928220079721882358601607205423311423114409562584336681889483599707823495980945702715182708446841608354068353431721730054922195341908138437329124704533019545462052250208353428505555543176042494042185621117839610772184792751359271768638142822877551223910208224436729081949952731669226244138176631888755240827088277389807884073940352373631087919086715523920900564027058949640753781398984623944078351653457247196817320496490899114205784352285372216450795202994310443425884700541554866016877774310502159311862607236519951692612327459584139777555229090657672763724205146333163929461181657331933076438996782331305223860857552692235655332483178999949460156607852182617625552038070069387274409500677013486787643494055342276533432563716102843110864228288844454138804259308082394357950953353168492112703057689662046158691271595297635642164195158195715309322904440155208612333849155964636457539868463119483785628701728794039411259233166824215017001250371954478307084926211216282893140335115836936060309208732541005556241666439665229135325310036380175728544486015905181482603941061220812853112511736761364242711036139686032303764566384600089730950572476452898982141618930158001774978264019203328766887688469438352114109792979826456698370754671252046715413711485537463318099307288108919383776731447792015605399026773800006978595302295512195435775008872225272833395441792073163580448658405288861758248268619721756060578700449309433158590304524544944435551961207091826560944308431262184276258822962094614594649971872901782751013773031777411940161343387257421645028501860467363199298152449572737104428173667529864686740858132406475698792985013215846668487903168369149290602941839822309512688541374396222856312190421930746461492872846389715995063134091139795324150191312526748551863774051317871609732536866300207693686864651018632841424740351025810855476246457904137973504901811795003672452970195577423137010875520624115933369273365659867501303562460512471161789136834647874402907401788309911132725529207878763439311160419457316169166255440370659965369925271267441300252455183327039291752449788315359685791935438597652661849200180613113338481640206456276284187088103176310088883512021028725493552624947896900840647295718434338471316443190023686228202070478650385425883676907229471239252382359309553513441231905477449065402409694491578636158930521753667179781707022704248548695682252469797115290240386108090782533153950814245228241081630415498093389123353395905458730039515648243572995357248384660152101490720478046992823300121174064450863084273626334579381696573211034729366118575188266454505327081460140533642178191739836798839524647013084360901853830715543505742264883889929151367135582404426219337587726036517763858961609116593298617128147836354784223690271013112610660506762108590150852168796278800663739108349367207739345999193493815628902616619716990341284583130178124104948910699688431938163875809463958381803157385736590655071408117089262094607512702220686968530018657235448088089083599124100202320730780213253920723473593064810077876123435648865134623289587879497105718471481339890428692233688904232151054926903681561905526589638833501824013403139014767938566687034960951334023205744544509349641726842764586948301348600040578088385584663558349770863926395432019202838534186949892795129292244845625575600129866734620641437041588823256403825993770600310467918339510858419545204811363882328299504204322441484045159543296960981534981709980170400363720268656968037698857321694152916301032938895317016453081507105118983684541198433667849500140588902394355945229721804913422552766824232032594255488500686415761771237322203020898621877220780224471116936873247584713855513420157165086595555522806169003277988422982632728963956679981804374300531935430113722499948566891398464700301092536852366662119631130382600885243784880675365927141314978811699375831028953986239486887912662513019084619296470256499840382019834241626528691066150213137908805924550633822819137822417286073277177705306533572390375454149448120522729488694378975774567849585884537660277810745538044876843095891683953259485524507770909256114448563994852833999227909706329957400878358616569874600725065900347679567341042322673908360433445224583493667852666299116351321983599170758140255746747141914928390216685496395971859392412177911166616980183060720178772596572185328988278421112880547789190381709531730269460845530869233114174259070409695954160362649719832535908544747545688358334992987636912142673214061517531707296732297348068226206126906122616905840731569237667610377259136741315286129094878943972789492157169558959876996267281184601308873651849852603209982159549923276454347091768024568252068205912667379006534464380476038837893787204296396791253007206248584448475257219290476853912659718450838287965473116352296635574970466984854242875050204758499795220484422200627771674754362381615320874274034676267873760260945810618146767701151698324803491748324261322829471749513927299369391256022767371840086648488206529428063529952680234105022035058940141934441792909271213239480780395052041230814807931700277631557152368654549215034214856683264125669954661981643313089691692543498193251170207618490542979348685440610065261776712183423544586174341514435066015508629443483231996872643384495235313034506659242933762530364013018472018840501865591209125826971614143275514419928705743935992807975520037707122865311124584241890758966305188912672427075835710842961365418694500415289791799313103530240844371860467969350968493916951598386989779506345937015408007090190254650054272349931916176329984446470401814234877680105229873947226839982012733673885538290020932252481530655436575827606245794532639350521420241147106165152247920568550525024947004962261804058107253923336894197572503744490185299650028239075964415624251425993485534053290807278924245386804339015828659191616263688777687635313717355942744165484142805944377272217394016183870414735823452968439497423366205777972525214448539260590487152562421510360485764567332610039050695315357786414351112419815414936572319111993575450372589559860672429171477037050529696803842027367410008001141831238449686165486857295224597509076355825994999952506057600752639765436000298385672026423906091873781880680771028075314702144191362439577187028450617092772026766120287097635899403288581244715084488060018034038874587573897675963094131146519583230402378151662059623415160307465929170297248836906703407977594636750594640319692502143044480062423348997398932817438649747562432324909766076482445087680973230926260123733322290566040496050074640220154670351708693081044506202135322509733708686192656651212364238357820746885743901113966817622447005963927830721954806265545789961194355632759397261079433463130844901581187385387871988782870708070211724517567471821457009787093653164958026560533441120470475248955158890787479174249487673656183113616910969605695596964221937668826629581401182506272528510585685184702243043455314674749035609049216175622450845376521209833408523419958103370307689669149659852575698818970640632193537874548227467081951622574866099830700112627214622603543185559202683001272253541140946210709478532242150172354433665524743181412846764223990666876965987324616180434396056971963399064357986332526003298152077032185028708096455625195049816432803421810656959362706691873730818508567689410113415719970633620534776123122194839714368608194997018124290581077261920983510726954267048493416948095368504062231039579361636591695707710885358191690432516540900949585671431316346457000008212977058578889208671424551884615115976500026066716929164191216035837004830925758214173690751504707390716152638303376274092925959156831241810272036536296935482437960309513604050596469871081930554027949906024955318297878136226950193387940277063177801755162755660526154703034363461286588173469038188098494118524552785961604863112962685150394219896079619679688651079937548950096174031025006942201107284914161325759205091203697346860341356289633077106430023350466203812772354287146457145438688412332575218988297171528067975357802965516062464389655787310720275683108044759863575491420892053988635506252821531136511780949319933150301978836753091360417730558992795399319598656589119509362328720676314147992856655881426430713660586988862315969625886217099203293916899424471679752109337339502693526127094398470219322848853616248976448779200597333532667935714827724690639150116634731069971653160696302842080726109674102895581624214390516606491592858838271710254520027988679409206541918956648390189051951585376026802359578619022509784263432230802111866286921050432474228515678101562968624354469649094918638188858824665718513140101324630604517051164088780268428275400400484597770100865928366929971211065196407332615900721915306880713131398873874063125859620630097687238102457759670974110479518117445964028836157550754658838310314370107710260046731695519300322789970815234966128543416014274717111195581643006234746457206134411563012303780068688571403411125061700616682854207473248718628628386917818215643150293279666645908986786276260376749659698927278799187728954065700359688805007819336423150307812501478743057556758826574932635972978907569507155459805175183752681039542689452925629182483858311057984962937790350639371577896828149814007687154472426236182251922418649375351532323875314082655979713357887691097212604038755617573171511454528871920554681335725238890239504735538787126933624928781733476206310244099009120607222992988631549397771977204109442004491492707644108721933906549283667387405744786930097360794426519083702886179389559210001950044595518672336204431839896986526884036023134970595984345244096210805500494729519885496259670015647774411265483989152620499894757933594133064302504889181236651921684642791083598444727281133465789625617329490577935778961633390270825842215501758562454830109837665439505151108407021878548835677451472108416626003464277645390601135371517818974082106048681533743683353372077366481612975588357833901640753868593149229144792752902412674663306467202974750571180452749724394561157035135298282099358513097119680956583673790433008743312933997023835564961145764562134564900100275710507900501253216170255991959036805434602810555752995624770059488199710723662838907868339812319087161756046002166164528446931365666347117690338728455628088784719201022055421902787320080621457412329173802151186342448270717106315497728649252848857158125433988842149057358821275527197591599917119371949908993726642795154294285592088670893220200690062084483129672048444851620827731361403972156016398806825704608140134437557056220436885630397496054505130520058730765052495504266005176114657232115728956624120110261465833876511458886538340648927074617576971436365816448095196623969241158028462391134941465905676489025484121215132593096041024286398018335171298055292752831350897220748704574566522804737883478047190390585772607490558775153900909193533462527102878125563089878715274389015773454715912488242611369853153166130605667284926074088748359076055689660592210342670018958167992400854219288327237218559720894848464261189248717448112892738799403742420160228447818543698875589177337773263020265669567882080863588535842988085264567003822829944819043422715140397039524134062496474667656460244212915356758194654907842528614055085024842481063050094857795498490992573200683459058105645418329001698629440240660087569566585725760209657800828419351787991083952480107905634384180544994156314916227445607210044594261389708718270951416139220464338299831915539333282527615903235640640364120812919727672919585717517702496780939309987954230572467288837010602408795981321537264105006893829692217795013075127212901722402873368596057806095842112991515871158678528669430007827707596580865318270514484847075152332688005433744263042441437158308850969787446480312911168566522016885397518602614796251535292253609216932217857458508331696250892721578019275066109062881348245654010482343372391985619925820034348357421750811453504493744181609274950284528510466391421992133965236489114524972022906186887394586300073497841708554564046433703382080276672562020602394719445701836329573736227953732410534634581866718746790008752917722505285178444526373582417045149878160058362707449456594556771388093478603121735634249021773719045666232927298953525846437127477441725260107960353244859749287344869287138157301259022443500278290221727560607318798724693410816236528324640062030945139365035364185934425032361175760368558435279856577142619915740652961382345390339324972096915098919259593357420106758883570469108348818149577768788360741840587637330305453713204892755625691149963980118816816136636066282701387408257298662711930683122301438308269971566685979616939125735252717513948407641300264749874162391940674010495291205681529068756281155453890317195721395178464219735330309356488851827701417792391720849304091206960674224841059224165817470828946149610331362433343236323409087678590058485649132216833596854624547854939726433441942065054534421289185671210356346623754649302574585213434716215744061353401411835213456771080172037903714233402346351019864458491417549067168441532728274490326230959796497977406493585430008144417771412181693321064014657678125863350991160478039712677998915917004708938959361033419142733909295409752725395043153964182269766466385731976593548284899925976355858281879820861426727210655414314888033958812633379722999357222820197497435935922290386285528185868890572117935349502690590351199060461562082835346120129098473461542063041391796474673857803060078701351214218028573213593368309542142662507820838632708723249820143192846045641681630579369764789306027588135096133405542293697779698537637435621981201209970629253438347713325855975993422562011462800814205177153167510496995278985119157235105662866773859830079791611968930719313763587317057190106527296375728175085700087984328056896781498623482807237503382149332766549494157082963926657871925257419356778588066652786273858496395309882916785662482189357058918998038110152531580413344620070245364421478801823052907558808152028569338928995428754684525799604928711520956476200960396266416785652530502701753583181000990950768552952962175455002602937121893548172531769983356698094663541458661491477112122350182105310466536411179525053759075078747507362075485880588161715470171173545668808548276390488712851707524887756608331201660396672432174669969032768003826515708228512819569839368516750280998981835140537751772777367057719903765522990676056929070903419191821360334708633272016829536216411394798379711989691217256209410978824458010918829295952119022109482550245173784726387086865103931633181122692608742356380869795877779097452619855523669618206302091044735008244239439338488735460187555821478793864701113995782330319377381857576181758598446985648986114117297246969216213844335047925020692613529240466798708612615316230534705903625725214534665524373784606052655419253590109315586517226797705939173891148016126257528606596677342425204201220374050126233371153416478077191046813741088238298498980129880638216584550249589973876644635350141419507908160405299943320479722755901208380717404196807079404413058093419444232303401579688061707556019072181593426191316392861940106233642541141948985195102767170869704025691025100506293149639638738183430355560171855342054714342096254515170209012919214193018706727457687200027668602261442034998642469852632646184219235549252993320184654680031547086856903701725793395875206340446291574416652609975716475475794976594442088391138256546323081526094516914141573451095142844455575668954904898013568145052609700199071967207498998898402880759106507112409740576299306270363611335643759263344702476677137191354502855635620533958477801570187451192891020774794623986816682542026204196195605438301724458408996608915060240588500035360475276071532169067063635385119023075002700884373335143536741637035395806176757393205559426022429944608650838107543812409797253711418634664267626633852855196117074184802087165978625046972287021398631606942195156006634121663944499259748413205262938389166266178554973782616915854302311909903195795753651672021282560221688442515878725234509028392561512707825260879595543369563251081648486378744927265723688078096635980632961429373006851395330992199949398703427620796148587578856613729748457906224543567610619795129262546676693496414624278847574367291175468782052308048493809212253551370966326510654346850103154741398666466871395754040509753394353551033750000160758522183287073972254083368737829447557748771599848403632122980510836853744488293227731889176965390069867030051416695670444766474773812459855019221360254481329631971605206619930511430902559677341361100299012386461888615826781015902229216954953855037144529339922723809668315706134547114779683747121313696819245814179160244370414095125266211785934166819622548205643178104518512078856147076610524066860522105317085923548606703992325588250170103205284123592811713259131973162736619577951507594463058103254287550296343028788871473119442955949745584706288519138003089093056165132207689180812955169355479854258179823076258435130653134292148738705954861598465102145007863843153315628262537320219475882604828103336908956856213942092515200518702299226298357938400375332963999252953832493947765207021749515937505359399516801271966554116312636558380681517811099396912409742168362443979470271215781867001257391676381189349897080868335259788688663948515708909915815386640048625366067719347192116366165694128085925781200432508488923608706237527243599046807717236809928315463922078579642000086329132973042188493309213203724570781436867874215729033045515651741824562767000111817685318114459396675615562983894804148500997842855221091990072276601632589266416122239373817416864873861342637946073817237853199381013906633785875087319915646305735688657601396690231577713111982034477113059077547588218813092413266157474111206172000993575308294141222468939749455592478445448656733068791083890301636682313926480097480940428935230913950825529296093178522886425261945812978419287508960984462320180031223968916236234312167161673507287198267828822133467629958394081698539779756212311244160955813506939801620770108366517272974225571925786405077916789833882961122083533486962437524236006429881459872921373663865358457342925168109485082337210730789166238906203072885978817590191658729199940061386453007782271859349381184124622427891110555279009886146654907455507913917035263249760966834367578438856994365416524154104240748159161522913944205407059864664282899354421372196809167994176874896053993628093400567237680806935008117740268735102543776504077915062800402498759149747558727653817568358891875538917748625678638876915457909968769095204102839590845099479450508158223705311591520814405988531257066031684198164327447910618897441945641604696725326395669344486872263516959738642855614453389775561944046042621032064738473881298523677749954084759915444275525370332059855310507761160124192618379007268001021253541991929049985590308254179274076709024346019136698229464588902419568555110538391986842125096198816246955058403680544365398741881211557361814461966191962206824182357570571431156283722570961477008175979982526230144135302077879530316438539362118418329257097617368581042385585398654932388040304015599231353093374666212837177533261099556883371062444146482692871069521952823376298995615275572509540070550276388556068349118528636221036998558782654397607281162820730688230231889678372815838794538622797144757891346667553887226800139739061318306795289754275331022946940255952832709020614497571419871199059255116203963234301777515281167813452328943989145139083803191068178834317913742279630238001051246136010122891939517637193425518956899770538293804492534908691331238623955911297283864637772505010914293297851575659479714089921375218849425784294504014856109717925622732338806942776500716854812101837712380043498148430375597184545118958692893739172709937053106416015883663972442167467398200575114546550900070795162270859013458976452731157331833913452455845645593173577846026435050647769066457119962019449061029302663393277143304736028151191872099686239424994120839881017074296521442857309797024256879149347584418394593107551850512728995057760758009311911188085402026167906640911720402989215465501130095664570917219017476116229921340215604514574475342368042438104775054586254513219716025167928936717407070518495090405878809060976822423370572294031438039917449614398968462226971276487131156850907707125499133016954037534609909810436319389297954681393745267300469334079516977881589671907561039120900790090995419799260180183116881185924451569996260427220843641184458811557471536585713617563251505979619581316105260118627033699080743236997120618491268367942473014421138781483214626058769821366688194302264281132907840743776526233259545881378101034408332962974139651626097538858201296397771235253028052944782631267423092966309308104564509066078931722227517000391466178617346123945281609173506583610878205465521905397863433782602381108756346140697923623190806141385037589834592771592964578992052476049945119301992696000366932439963434382423207494870107779628902899670057273880769929204017899006534341719170998685760206439118290961438495158018099282962985347003755243013624083424208337328768706462216864120966438584151876592803561386149619344713424327419017713502488004031573010415478171354906696304493523800045815393477885529586060066611589054196138370072843724976343410596009978068461864693995323120197058871627244143270590935200920383518611421276695138849706872531746114433102851795005784473116213163901992589122501892880767922538627532936130607843990212730652594867667720414122913254791949165499673663862503911287443476392527229736724415593963724722129206992261991735297627372944494635578261867470788436773691310942892736139108335693372490485371730987126338226554697086249077386369326155143310360592122933361814433014550949578581681387481866067654950393901900974679613341136177347062897659336499427769791988922625044379516050359980595773901811550085825708535254002211375164773927521843859249088531726204321203323240594644907788898933472224479086515341518657591132400095523957511319567556017367374282314607029510057863023083257817940682265593995433261395770756317723661962821968706844248714365235951084103385837688390747447337486850366164050817183663654249974060819072291124973658731847464338226034743114264672492617489035188053133183903123069003166908697282340418814967762863197570370677483969228572764193183407946464435905073133666370892772138944905249670321881574514282116473436056091948123255761208309571287686356378583395582823853773039562687940168008453390234274856051430874825539002019304689771851389857165711081917420573736357178630522113216675400698261692649211038803699513800721933833132916128940932691570890536025367333753968309285799615129475728089518187508357508535792333645315803924301434278068289160242943481184560271059164010680325875583487687173124842102563972448567714947108927909318277976885178232227318392929428590249343243057406676439483723206693383757259491357212448197888261053769073150204576347989637526851248511861107611003067839338581559019861757899768605700484629764487044642624810908488452423851960033162799602117648656774987604075402564796930569082332353221934402579429753083869770652982749733073059293748577242624128036036738943117383831792616167050933073596188312528210455003209141048376316478941004579539979819228782495998431332581523069965897937098933621892405631252095264787550887165772045607593881710138325772548001041257332730429435317805967073853685579972058865448140155931822047203231813666033880561588880599953748377493033661998913348392403538996548056232703402964037911492808525941044459304221286501248493108176787866564683807012507996422802266742802123647294102801765826697153451985885571762022572133177658351544726537457365342733493345994824878072321972494159000517811231746205507294771331733800039165705712820281703305374221625953980337020049903093584836839943563624658552789239817295836485284906954180646120814827326314842205331744980130443426580683023879672714300210299479921218902177104049342117245409903101932292130297199004805177074411531515547007651723611590898185833167572158294130260352502491696459674053346670722771818614266088014002010254760345032672241786184325232878029282934362223533806560641269909133602014349302869614917339243748208176365566085294179766941120063636165106948624700290395983268561291086475567386478931049225703664729089817874870351681489951902406720798650549021499957667737244720198703578224059272959646257606478974447075465595011865117321811825758599941404167156161107723986788353311128208546443382428090279220798819307596590205072224931877068243128335391836822762669169564945179753494099946015434123209116415837644476385800796401869877638902776572380021449286022394216658558172710697029146750687634288532555716459934762598041163827969574789034675519046600462325919749124234061257996882128175227859817111400407210393939401751852412476255657861149039714439988254316597221032589782372540594718985692707538171016519547815591791763469468131237982505260776629268864739602315627507026698343118001571414480850856308162496711836239249225686743639963715173271594665692919244818028548704664260225177519614349689183425513364342274786681395259961418474141005918794186123209150069344902214171509103887048836396967745549880527974506295764228102590304221786285438946071596266043085095591923575432006008027808346718448791917389058073556972473708627898946871276766667514534429036780699641663542590337006932760761873967980779783489443691845806049922757608292314000413434729425171495838399584845790096133624196258991351603307067049589066574490109197133112573408987353373411697948092053073812738896024138739980197776880053304328149469022286097631631682241753508814827087008964672630692226379356219841407338094762118298386708007394285171428717260209482164071501262513747211243641118030164598480376987995049306230682689155347092864470120502016483905055896123153154581094039155464397465869595083697340497021746883051844866643728928421948625584202097636505110576736644419802579635176486235573001213335667413066890293114759121371323426241295763142073176655466102379103487603625624231254918826841125525282980234550678148606618817522796252495017436605811221249259018495437406013330901134389712234465740246405883605983300598403200291684383444978764016761919007475457090652761319985030937729710651367252649553087376891800270747043687162172016816417287779699186053585296357577842485206137423429806521136011099045830154794614739370681219315934613608583830008082365115955045231134302355175188033873714189279266871917424214370519714750445324504908903961833397674030572595505417296017822853911903681115326037824792403623134103032328010878407713667478316200827452517654420207919561904349962956005868092893710872411403883705367303092653739404606373215880023978928758770840477041995863491836731606017731310774223079429991543580080278504405012122818972060666734088257310750126545995779274472886132756877773444547181506993833693991775816577920514950100812566807821154463087048328518096239444894216443116963609624399074907341580449135578444148472773033498325973369968414153437030802011449787212081339375303462429978287966318336570171300365837663083112159335734116418117551328731438086770825982773028870626158467251216597807401368216735019922144359099647227492646255840601195963620757419029013847762534909538810410954995243415383845959753422290505194585214782150949220160357367877189318199246845308574590478697217905306957248209789195864804446699443765038046641297278615314336402662599792738415766965714212837543062803154683068964108182607031164126357151935703351671399241983056907518166270321646047212663642531953466562178051014166778938096967060763786831078316160629975336144080290213630450259179566072684244946663870453352553486941288916651737494189494134659711017820257611087989561996658188261974071289738600697948902145076698469215544280634799987361852221997865228323973612311202968561456661150736594085474434652506934697952398925439910933569465285053621617954767139141696197538774778464482285397201015106136407771602113988956998239471864607863981781657259580595072912674802471760392816454823072903684493336814190129021043252196534141143847599961287429259252097071580098463567496617515318389726129626069669183394038096687924391771186802255343164571879484466959349750444450715488863282501245192205944608157891564416024851498081091372356428838923847624232828444667232078578611700529335731903634145852723494139613997340883222554894186374298299836131894824410131465476842646875310140275658398552882897632814874488338568693095407770830595046716923175465976735610611826856859348402495367409585830222500296560247831045515168851323481866398823682570456892693198755911906672999089407396400447390320062039074296808232810342819573424594777928527115661179705816396889783016679853856016271702893577900578551565139655771213652517795859480904488289122436966659148858320751134780323833644971940770579143233860400862993627906790942588437705915180764217669981444850393177809077466313860258752409698437228076463028529342540248329902840072534204839412139015185118595596543912364016245646751228556893428667614010633728294060712187567057462744598193205036413730817624851667445009349937304310486101851977214136350209221726485998032631434572877990570098802927430410380360296512344011297813578457376245080764917826572881239280261833821416582840692646744696258048199211725804285901592309761586526077641143527161130818895288500777401900659780724925202371175227590554541438299648361145211684645773291572803877452105307631122470025418489921933709810000966306502522483883687603708979799811624243963940975904582062569072660747105510521241881266555493181529040982181641926167804127960391166425430926212713866998228253239924833871708105503703622525883334586091584172565785098818216713639585285524833017829972024126232335899991366434454176886961242882037540599903845712000400454547561462573789983032746050198236691653880507616191878933622325041850194844970775572679631341777056535203815985193791733607066075314107491198976406487470382603373241671537885298283566165694112944784945811508961053583821815333140858663599097763418723915103797955917749503687525681486350887678243690787741723755356543841813090881013983307504264903022958739834374839826890491057177232092648159623681676842166414793356234674374216818807334300428159943954659407489923232310572932322195199615421866696619538508205005627973707483859414459209232957064576528822859593096760112120508543299251734699969145578944674599814591259933642722041211658890293266558240707851740122829827915153073362538594092930997793842890303198815166747678252663959017646372260868677314885363845266212926493993030481639490837143305151551404269717945538344192064841329400236475545566370304886701564870551666953416061386955887254326826875434938081884762903032877914114486572059014358954623939057389859973156211493600827695577930961323138879381171174543005934474350210191896123862672112020301751433936373838012054322083292463012129532810716989023480003655287657003324208631326618176799235483049853938863238586471807149197011357043215580452776402960911423991071482674491934963305688299816472345716814448749331260320308367271808100245900654539994749424907284838316546354402793451753047831897876597804893217539748970188960858558909237982763059363006020505805130032532214988023700297007750520727441725129929898016326320591581862956642749762685914883569145658685160406256845484004556304914540899270859528718115856137469778293336869801568233043849035450854021305931149448096905644914229719644864003708373121451857128130618504333288336744832220570975095853379494063575217090813265845804070038128326352233391785644923791635099670110848786158012172656341711387279413385169255149164958934326554803273689447064936853795353389628006156948615946000007719586512129961703612674978205569091490644125676492313356666968962415737293755739657721355515283679324286967950955903653536584065336823925577595461824370814572121896334297030231908528554989158151897676636082837188568315323042863805826705076336561654926833514738327024280549359066737815425068736632207738049563231844994691636508685417936479276363279767700542559907959572757608555721479402488869595878386355607507794367898612669628782570424513560897994448906041472422443305740424222469677439225085764558101393564499206018639634052158498574048215883770331143967636166586922064273371295895970690989250308755863199001705249025437301810356300011861209731414407669359692992003455070394492755179864299866106352389356207865947290028698935711669949034409418851921513114185016370768972230879076182230593853521214344260406053484569277713587622738961893890520762122688431011241575641045537226195407428648722790924218062122799354422644682701494025694600978522817260074941543330685461127106203685638398420160163596484507960437166438568663093647474240115346390148335970561778127541112732408246377936876506694600328601849422089059500953315570861372160671715382607383967548381967658032020362834698037223066992771748485530692670469323405404189084839064900729935527253633130579859246836122245447934620772699241846066388886910022289955210998286759930925320780991951059029725039737349815030592341061975879620075852640077500274588264359181834729009625532804580688365747017397597221493060340385791636767619744640305713012474798620601109735484683801611321574789691306147892167124997677492717060923876754975247446152867805349767421897246998370262754866536451200198680482291548893512642715241809778682717587099316919555376552518070490855269568666856046762347812888077154806659727054714859926086310122430613328011807742664852566266311507760702718752101208260062788222930692233969569000343034278571705841160162597495545976755460297357942393541100607692242200567881113798184880976173793280916381334815012405485172190786875989906433095039024898492044405862623437407306537674878333616558216281184110738611692365983475941356811465947386044765044815758055106505381985868105692029538195918441958628645070240885608836605578989446507870070236352992706863788883634401320783761224303957683387177556418960596391291359558074762187098410227501250392537010123511058482208911116748185028013437123399806547468339508902715127562241317319744489629059839356002314801295269926092432552784089935418501089888151377282073345119348335856506922120003135602898497188670592280195210107724604819829383958852979926919022373118424825957629215959485628750597461496148738893180889380335985551192471095881693414455110368894746444095787388176943679073619834668090445647832115529921144216724145656123684999397780633007759757579828011477241179391781361046450961623567804767121552947243091290698930316378428774548821933361121611602259540285413270072455331390367150512521166369021555034881339047362758309588875884116262864413188585285470116168541625235251155691332908900319166896913202707120828100286574801579404315161595782386056721580648009865605560805688467794074320088778069177479498414890280801774776825889402565212445349680222513672439677659271576339799745243299469050560814908672387045503301680452144408885944800740238852713806643660279450050235431746467663037724688710642720148654535234322147571051422429736123314790588329094315622919753017856386778544527918767227974960146036016068755533018661386825108090523444897403192344294637651441484843308758939851398305359892349781573166635995775797768656408026273058185705132836902982750666065977160880286435729884756199552871141314412483262701474266216386246958674661566228417776156179543291547231074877816866628660197865795722808370059658136697344189972573948099688114146171772855615575062952191120869592447594635454120879398708278707920492938514340235502251477706634799610736224079922545069797924171167745817322505333213197270381180575664763992001442934435206343210072332028663917158518235877749164109970546199461644703388611059836063339900554649408308834150124438572823734956286194793529345587595684672499472303390367546282316929101572015530512719676063444165466672851456969193312527379986534626177012239829648475866503852668581511855779684638075777863983711736873317739920473410955025625554511604784184121874944608325670393852082929909872904276252680473113554717084550644192383046312863440436437799668351401672662101955569966610742504409634034796776500246019404726666596465689715465359295853860211845357993931610057311872132564562000822370767245048396149974089018252295227718001276754546931578407341286457926921058933005855806907897729352011929311798510635596118715665623167953460704647232143668499811823822333519944638927392949464769048763693895221140982767277408493711971071792111015558347310858103050420799747645819874914474187902640215544127829623460954709839174335929718966523673888861701029598210503375822872777717195301789212380627058196327611667464194659626161574607567545618818093183474405606874505181228743146152445048465986737850045522137436064915924574474414701824874339268281954934124928826116929082146253784047067178991113131678686940284703779095058145895578890535852966416679908743025764538744365942382320392637469622729840547163273997210901461149705491183937673926199542173187797255724534204327324169607134896732145550487336230357987492407821036664368868760470610391104459669561284792270092504614913751902981179222651593820040903055616139264378109361935619044096957566350281691160233570868847248545117291804832912144190149617914553473367239131063884741773938177878227511025692917301186277706996841949561632909441792764595053722468185843442062457161904517325564651464573914119309157206228423877613283194007576279822491789724213543311769545479638053553975741370548613774037393921444596255863447366447834313260467527476068622414234056821095594881375754740292749318647487954028106024593458846098192539920522595110983209365166202324529005764451872332514476245206449897565170888437529667133949455670299179020296553779089337706433224263680603138792275803076581329087392414308827582489544979668427842931125650787196503831390577916616113128040259303284997225442859277111890712332150787298011916256628579129303545450941828900872304966100740051014406800377746805290397204389966695914336048593685671160859996586820508434252776615643856887613742749026721995936668901166731110219217347866110466098919693270734369467711893214474858580694133221236426521677949998317688120507424964006331422028223450659895161905021148670623588950415314608302268335121162114540440324624110598142502210178700033294663967856020585966061681753385893690350527886240133819839230692110356439670084044216483214184833638676550267503206630733239555653575752375535481363979509295846059377292071686181856300839775929463248535043484149552958214024826588620607686749646336790461579362368897844178760665163102987594316997328010395064189526387503021712299954272898657711729002029160613868114224084553793372254473790193527456938838841097396483750325779786726292049578312753439923443398414333685702052106567644008729096695368137603967070032515750619360841579437323592634240593095989215408347871647013260671282214715199883508690389093727766395084912708537157947798808079583351668603033966838117554028995461115545498612897560610905795426878954654952464254045392237909214229702713671951390626159166512685084278904989297605623064344917381490964779838075204895711101735664884434785243500479989049079400540837768662451609073838764699433858056929113134117057915837413917060453429443624049001031535622511551702315695035378569244122197498927837194186115417422611975827793980908945408588460185598939953353416715656005250622849745259016920978009863469254012492266982156823611246063158502828889286310457555430723346925923099409301106514114948028547747203108079969366184961385915156278995456029150831981519432970331680186745580547192630338090870596373923200296215811704431726051162640833181413908910666840087447223207253660716842180161502374376346186044088409793358943819023524333396459932838075573356990998116555029907157209803205311830117814464739313867473089121330590927790469809854902448989102496832653486875478939810999345431390644882051800273141566362306798490154491487712011826411667974337346045152772307989296244280825780063630404507930183820400145937851002556103332253839282374939024055819305885318700153196994198426620144987462709885546379554316453038730373786999862945866902438106469615482994755750616074581754956854557621342408348065312218482677640930066897425447420414719344772372054934716434232440277816377440345445778066449562994118111891982839577568576189905199598709446936709993141927137193067856787500609742410626557381917422121792141531897705057609220890027387350771330070813062710508859448551333476897246822483229032127818261382541139338886270047813065686127149875989741677252180852329855965379117459182780426240893603022017708662746404717366717160085333574571477143208025177097373907372165029682321231568202436204263577326264200803662802132192153973237765022258958021283076894998487116315727075806472061282803535384624704625810740141585992710094005318192622494561920187249727741994359487203556534219015728374770126886161354638658938257815734228668318711764814328674393870199199610948895434823419356414987945762675848220411007243718044270970455947040882891137041904239918713846364722848604948193524445102070424131574635565101205304142660315860715840787591717419796088583691985948154265878047580791791949546763351574194174700696655811256430904643033837808506130691858636201756242274446833595782595974578520676640473966783660070307095606761347213748173423987795184051673597172048057455149618153378575280244727933418883527448354856318387828535569854066275591379225150401121912871415328173609047878188494153855109990816249159071729148880041880272488768827427124846817325723917609248332988593057103811588256546635336645514905962984017305119209391446845953452968936197411392496498233048576621961475906474899365209936568294259761006735509387276941873597769050620271008222361091737677055677685042045817747619479594395956904035095582642413574864077016962180608119854698792696833037810145760137417416595330853404992619308687539980019052971347644205187616147442574062374342441699759417208540602257079452698139121314148228805275869951693177067946286266508774383072611868054490573892769847781649526189150019796036364238830056354063377442738772325423657686549191439425155403055933642315161337032813298682890701994684997905038553091236989972307154200093034916011541272479986855083648042947751325560575493343813463425362586171403839882837189685498996153895164982759829717659926665749851704936952069885137667061823066853526965743590660602078823102619219894241093797035997972245804713241721051087360472729496876410940146859381313972895945875797747756819486603154063149159656691081195438740472074029411023687058377409300034055151765123449325924155488337694774402509210927756494476234903639013251106654190157713622584240407176032762532494755424080569539585283422644814679786223236342608475265730202380249175194690103475351118108167007929959425764367134731067920654364409293747512787652351522634514891269198366870319531611979447675371225656608483537438412113842451266935467104230803667259805479984953714657133882471512742772754670458271539731122307112300166030155454642041690969101052511148361761917716189272029855761191646799714446704238893713467917944527302443787196593109256811214054048213255769059167984999201702857865327001270459947826227509862728564360568859637829697248529349993819119410597316465971043775299188546803812792650361391666538875485135507248537304735412562375959650887985952202838829912034911910744292325228218289090363915768173019330148626740104584255966807265858495503908476503746874035103916980679324486561085257134138902037980062024133219748378236187053062694108212115617391446337925447993135318176009552045311843921628136683546647391563039586063136822602602499148355205487691781455007313589598965666639818314718991360039516984448414797648186548338322363147847432819847120030249427858957772991500843322197266284736410677625133132345171968958680119999496387156887074184546729736836699412476897569968353013963749434909569262473320760806775624792383644961549222828880404798854352343769960033486431878187679615977203531452750778560386512808715721040768650158989438642855964460026350398797671333160714738911460357906192526184242851048701537092457850380787590789182906874045204037867659642061992207963196835727839112619964676814044007329891508731017477297446806677979259253929328677466694944814140669025196426538748780488874639431686295071713950673947025215710602202513651077702400506879058561980440056446786657857641397407916750686179990057777358584225668748483633783032849611917562904131221459847088105271588994607252269256877773009773532147483257498278229861652084512439027291832696358548973595809772533411600011027735822517172447857976829323699878260483780564514130456148873617211020495414842776364056045597678626070934503467764504874271575355321229982618740612263319192984758702067901541546680995178473378593209357366548662440686197099504973416256480112322481075752275978239432043394370482633763142198046294495053556961608193419208691965571759693781196996544653740967370872426976851150289501375168196007097947911040944032082406352225779709755181393896031722989878001167758800603288928725365734038117923058647930067482087615454849630642207312620074639571614331481273598356631569702859112942389790386978345430214449309531126339007281229017455679292725165613943295375572916246169551557102634346947671045343296215155137386682655843073906423719129059819822922291777734222583833058813726111503591035522421230790943839803665334552814309006414981752690328750699841191221585937354767802776419964010983966796377409475378710309581164113980227262704519021730930086752244984534442259901955475758419406951013594429217103559189202765358308793515439257474406208583850602102699478756084752861119006016548216966809808009812488025858642395687958000423110722723971228503777023786026423927356255476273903006486632236949699514187221894003074508663095887392539943104341138430920834069864477002619812902360689589212719906201553182550198173675699179974248311465510384331661170430170048334623468199865255006273531085060870816687637601545571505609377302941460323504618105171674141248959729309646739555462781943797901068702069553481460231860417669296978454493672181613607980533682663174406023207264140755764883304565803750036383102934220626906248075999111255077063145698655209881968314170766993798911566191437439199472849958592669939305253746976515838933083890585154095730706136506462233369516528001913340804231343991701078876824097354996199701022657949223391745014293409583011363381285940089641669672253194155550955112168715195313191072008388516258582036209838771559782603452484937652561895783857395207990422932825003823825429074049655169255583413842986279679299399379214154550451312160342800242785698601950364518658414690759236517086743535920454021419379471880311203232129493307631832226116700118215593402700893551855046273289824081783681233490239708158982351550655869895261728530312109961893279472980217513264297954390721893952646272928183646018947271841760835747670999767924626123990115988724564784144828111703471396177792295743208252953434887349827221747692930669260874657246739032053387428739860896020486369689624132656970998593591545722895998332172054807348825839938800158217818939266449328508436989057388020044296212898079071340812828277726514641533353663138711041955959271817213397798270284782210725012367963384219982105429160135505779619572431471180320468344337336043231979819057028954662088172321744058987467244873729768664752193692581325028421909253742561690297225213331637944061582168116686189339329287955366883761636622655042263864281725295859275483478847140726749372301927482810618370477691869773286645360402019474333001398573740846852623992204896005417064738100006538540168519028121864479165889111385117419116839838160370293056036450944053233671215626286567755615678877555510520980928900007782130101590372619987978640467898274241680751510486028344390793233538648261215859487263463329529833567992911317998305430128762792237896362502826912133829544714304985657350632062642563610390300857739477077774677624769557503503045176990474741675888473874534774485167648890592092221212813714129663574865492601643059156553675565863923302960227662449254240063962028507375590206942466608945766174140133354785067533498633319183687112348672374183174477976557627940200504137881705456508332631470327107920549041185787139005850116584960489270966741149902346936037383181423311563772027085687570877888922721222904638658438617336034698387472176387805228454394053535040173402236422984389665778884092536434840857320471736317336469816024225688120977355367964969429492314764778426782434686720343174455026165720338301972069491910252774503277141751435232213631300226474080048649287389619312565079641718084726003335536931394481879401075680880773557618249760125181934490949490928637454794966709081784876253649866925461741308168918633604590644355718835124032069279667015642204827418213741257355107949349405402014126572240667877255842445058565414826682069283980704821235010622825492365352484986836806209679470900681179094071523191221476123422905659832519718715660072952374770639435271942651912243963397175791219054659774498833457783714263155069741167756938227611244771650416080494608190884372442354438198597853151842650399315053667028127765363197809540612688188902020706418691539885059240158040586696045062285112708715420933062592415294270970625426654228803127974119013942354670502900813340975381244116131231534914628021075565542344343536687548661259626654989795504598661059724339860284982215892443475262351064346638241555212545100468517393558601091342070857403973137563081535460767413129451370462453113586904830071382679649437931401381246906554589900060814189862169203518010371921944775674430560879223119584829593545988382820259385749962957239294817276086361358070111338171423273486004283366182470520796678719178203267501539203844179633115300301770474750325484357392679323878617680792790008110582455099382515029342916234942407344285995874014086419728618872260735584207828649880866722813411686102861627937940625844168998947447294105045891951033621928053853013715382737583673611271675260872579744170557561803471505109227951296143437009683877285824987542097589657698792403876762966066533239588503044897188430085772690013634803104289080260379587729111059098456164324717916022937534874565680495504951761983371542483796978327795048687817284095917693993897431451217418859225769391777960900959372469796789281225484506936667805748180809602060603958252478749300162715400400151574713283370268659864518408791222239880241920720830624483491156692241999809940673315600403384817051689625984097630991249302713498529329236449934369111342227529948317364002831162518500727234325411335548934689132227438401577548194794567347232509484581190916319007765377556265953794921970512962097263473612937073059291534606213702991113445945430142882964465219239372042751553012393155143607347362123248082630450819305568860297863474131857097494664020863819260454987884109420236926964325902972832062476823928777833566118023422137428137078156375192123519593119430741848070135243048058854867361213059556554514080312527740151874269007381413983194404884625516238613823103544183185540806591348370194724064377048533769176346375021154686822311058617320364796739085451625138380288679705781982094513016025220566886571728950402597008342870675913629920806037076742399899954345003004138417980540861466791272104692114257428139626796963028210655167883527865981651277562289286250386341118033504563195607668156686191141627900836028622324514162910680678276904818692368010955453270899699995255459443849872877982355579170542715385449389484102091252381302783337053578323293820801328743592720884247032899667064774341002507357057844685525700290066760092269923239232701770245840354309470879519444193847550971321015332873906416471188703113369945385410883202443831008816470783167343121423844176880467592770633953371807319788100888875872441307642442684408188714537194197673194217025752521823820380947347683507782914607738606824394818091396658555540410322049867794514854904575877791666165232714908421102363280092930283187440167941531670815184246912341548067542498420881641919477703741488685380167322314917449979563178789674581581792620960142985112499646269106179762502181144117941254452936312063408948859836853990184277626410024328027624577076745773920668977811913449251327308548692764428726901822695557146205239673027168212603151738109549094211120861653670208924381017202896360920642037006605714155658142607573822112458445963143843334013641616705537912625265170914282547987727108836844952918940782092871671198606565766212577913606796939937886698586842591988308535883143606669796882649994038530099912461314740327368848755517503437175992079811208921087554637967697685229306116609728002574289039577470584438588868979417380374261581468045377900634065922541992309033947630206432234266285097813910057450758735670195529557712477227819542102714764696192171066061580038524496633615891966708508873398993499306595368144093088183333726129935633957742726644803479599275405070065176106533438871052537541567503553805873814810302445918880427220907319330527247222924403347953409995062936894773254395150416836695317903015271785671591931445503838738524156302019804330007543847594460424020240940224293521964839389278488678023486615986616524838949464473305042565884870266803331286554704416543127236501434899871799188672380407820066881208632725135651635132358738792074774029044876094451176027126373702408179675539755247818757270358877697705775935104449333494438071771174393188887475518907050464956476773041698836741582538081318056849501736856425894036371632835617137839584160123737091664185646761430413992005742670159834588114694489414342134464999013189697818210919976940725515795942418144468944488457423592584636792165122700303387593438169036852354942499207452841798954102194461662196685219886515249214050179045197625295598902286357418015274918487869554016617422490568372471524192595161173339731681563834997318861616817887910472259385556082415542897921900360455948485457503605232049711242767759087147824946472844858063969724824358626131113291481843973517608713800986756617881511748191275352324493151141893576410821377073368364424952407620663992761973796608428719007607596296008610706254541124043936269181825858361049242811533519963233529409896655906270486962047544667481572899429940290680516397244097629024748177792494050306256150343582445895501002199417111461400796799821193891751802437573100600006117214825111291476036674363787514896679338032960278935105666455549626193308547094669408193647687575020207343288815223105735195000765790721466505839652690171657002832672813037413533179871013142526173212690891429173044310257088710044996698475220432534026437954075905846468856052684266536750774991787172864936651024793512741269569487289328808046356501513852351570810101862687619493819606443669525169114966173236229622869780030418641515074153039751293769059088706371640374563472247599749243748106044555008238035238758231765261965911286737593785359292557754533415010015928350771777233031796012075927752963600784411253359555395038286534399637781430381538135726571824026240491613089646137460440085174115293175970504496619043684691231421889876571307167799888378754242433665188680687739470074534680294840530703553678899182422016815898315897568734523586905874161138052441527784461070419503720426452107361263647755034999058114669349186247201619859997504508335551478113305150483731218905655796901833827508385098386396105457377716054944636024182007879206397642186325902896037493046399889976158449413843467951274825374945248038959500242637298885333711929407070145102784994033706849880216281057793062275009566469267411454147605003038237568336613301298990286176888570592650098014485576345532536068672075009392761394396410047534021303206584242528529499866077690310364398193851047177836250003502936662064157987429654086623958964969169614668711953499413337752245971758004125130679115476209580743878027016024038280958555373249342230681781461142172378831445123425869056118048157871809284820352063062891879017155644287717226731237017019678601057815975727034246286378282766560356113722800339542274835597124355756917282786439403067242252070177725542214337624891872380065529578588432349204579119324370805827925485217008430683736624807823815200188611547191380366842359488623636872845265409009377939235557199625308961268334616344854969985640598943274194508868017753127655272716161131774734335232516033658859361731288814835691934367937489639176756878036185293621410926952944769328186046376943792829680974112202957572075605301075414255270916064276986780517248803759364887804858553341745493740478583998869212739949065308142142944564379015702447874645611920427473257111450696056530590801597360300853956262528232885173534837752285150804075271493309413625640826486462976301210199269539184143004149518547856862757352993722113993558261378093393466431551129867046859449108366541648711595896458578967981287622651928785986860418811888842180423339414993817339855548293766520075441933932645792204383892234913365385174336544942461987692044336635101615374039218121993927385674915473551996929183885826835423113077636616468612535159321171299618732308774312938857069300188809792395402461728970720438166389912053200256499651186756396323531168095373971519615367162397280965481923711605268604424646798539177077250918166519504258418086145304179919522534996442230562530276841642907685315323018310534314812847446364315264267385458977260094649241724238888927787426934889753720981389055201543211736704019147660460295726499908154885408382676674607815642248103431096181263067379939161640121087874240578641520002184807877520263861487691089286044743212834797919913209366569172898111348540795752406934572986065062475764448707489685575571372770995519616041191559401836216047131502273069443263310738918898819536911302297123479322490264707321391321637736879936606876590130016132242768185605965883840744701892501637252570263732097849655812166132504353390522725987111468698135320894933726739899590798291693263383097669870832016710388805247244281527904226395733686416466406145155930843788301662535723586818068704567083348587052296589688146295305753026411538381593240636662887812345464538787222299103107650342289070352527535458040570782734164300742120925064532344942743788659674053764569698909649894129447855015874013856521908000603378826512791548121620435416154844958695622709256138015820753438763920235496010207416530834260689959382265862539437136803903184332809681909251490587661792836762910670286668318887828577081300902359199929464657428484337185681171570309086288103553485958351377852127449198887483237788856852959439928006963399771576460841227292068169586647671316480930010091681999229681829214647659479173420853986941167569437485652273236409164752113938095209673177491149562138575407670569597808506496184598255884924334577552297887119049105846208538647568164545497246164083046482965334723274224873665960647596005916061569606745396360533886137265455258494954533268950932706087805097201493524930546628973797124453894088158283680953125740092754338356495628325593289594848302002041195067735253230989877340169432353223439867928032587665812699909686414912696787397904958015689769702651489615668286843548781038545204582836973956746458368758993304391628039370199014389962662055560019347699517293381011627167060197060382553499482312885073076130944209607386718293029336961237681271410427514449639812813944556871451973654277139271030534806655707563512956578107240804485322197150474418869341922762251801262951031643361041625098201846280925475259998869651984835721440750455222117099793146151737586236519718041470662538888291085914468894778334380725277119683260066163079249636474055234336721781081472210588586102810352543849030897188323742428413594673921461505671891125108119394262403851146282740438408511554279722671332003453581930287634864330332260907309490375450735161553572115332809270955639318916386240316138442202316031494538360116858573922226772407782572835545143775414353729713481290462395152974517846721081298096154392229463891936589700816065204829494240913972431338756614191075139959677701751977471811326482412907633047558497231678049912028347131663825976152302013440651806289426810751236137430018055369801540552946476382537409109336354400531819978993947139349214458853088179253470537057236297934163293698668076067210507017983504966112331663956944559422470379500456888263247630359561928424771964787382889192481004853950496687015733765206482856881806466982219504457747069542622918658701430696625262780274067135854837366035895534882792391412049274443726523599207601926072975135587297587687631602068499486097888292997082607108964563845990385327952157431647993483898972733411058640305704477402651897093024321302656278337069709248664207074060096644401013045669335660158457311490625667954012672667624334858670552535114489950930583124210450358715290058922754527362431162536841744675169808036321044863640884141817118422113777420318653979230647034951663611963531154533354756251183243962985201005523190342058835554835991845753297703737014210846717709641363220559670008636368179296545347273617358484089389208400793080768729004465719751943033183270909851930226163406471504529460398965382560636690377390828211594270886717494963900101930176465557334538731161137359226375968185442902803236272000529129767982334940508924291716097308317937027893775613438002323488035735083357995991322699142196457371621957322648578748040532668882135045238777802086873561187744762531196170199830738480620409951084036789276422086894253652135579779300723169578132150135509616733640646629558332252348702113321207193249537421906131944715566596344302048700285829608770606298106803897542266140455701653598685638967582240879905971706881980864073245712127986325922996826840432678872566990954136496372899925428881511697787792193053223750184060250086025060218140074648166490080885552817276887687818014092128000061075068041624764665544530250936110585567532584579581454226417018168858511769909151149936676290448075844026086437845283915231655568714683940155279655739285310926753865544933474822016620221618849675234797320361543245683374613221113609927058463555448203062094842520683309547261858344530183834490146447475693435565777256343894480568195108841136632237048782627055405743024301927227522587639998663724522469764232777085052217780882918043471223389230596732073879836943607082388990584177650376983223417821603824401888160658162736790550621921378220426638723348328624402550304236635491267876465426499283320009174403514603062944898292757317079950868139983886059768400195443476168581746675418761990505766008845063671188982743942824105675705129976550669922376347339224534449596714559657181782678749638226930978258675435816408532279917137489532545788578298764653725787001803778541799505697207248670687108611397604514349038130018586180677682908594330330260023159241282241500033861755560356874293540898819529892997665422956455534214317279544724070296845534430062421674830866502483219415358043299200468421188080420544222694315700427055263931793740116533215440986315608769327831383143615430470139816372684015435331449739049201380903596453209634226399398427704357192757945302743664245090552784238291671007156702283055315380281814764536888038680128948128029313332618409488759298375493428192481980919255328764814101534659071837970988946865141609687199348624768569385883072920137053933209222928101488683723732731772770841187006969634782224171972404035357460917118539479061829001049341568339852720733271833490075013159438815525511255484537692451674457992428131082392861126927652343918660527978303936587350306406745082985309171250061056574202981854943061592536008715642173494372390307036558649717395109674521229430513775521893025203351597579063753408281005505643505904528296563502551686759279175281678974446770677121187746792002939977363778770644248483062849480054453007797541821721297162675686132186285358201583833646742240554423804536236956309244894718138905866117136624691584442931779259445454017272461527999073872517138953063621679879814792182945045490936180945417509704389442818400983510852198260763035478319644362531472219390905053501123793275056598079763449903378477281146234174179701787075518614973533660808374084589079678991936114786348989356805407713229396224264156194139623543118838806890218953687617823464872604701879648161391216073442394945595524867365479307373810653514257347445219804039292396356277157541650025514913831930970643570882934463413488932783855901680064710217066289483307719683113975536974729220824247982026628843043705558912548291804740838073106277377657001062237969509200424261810609192183043849002177668477644132346098845597933685014774104667014452193459449065168356860520209981387010122103748485364481503506198303663396479411797692033109138582229572430049398139728928458320651610556188815065577002173583259102827003159230232438985493395830024179109405661701898347678258083756337524949502863883250011955600519397480001608125230316415018126759795670593023110941751182134871455329731276455971583475311440306566630348082500388425966895374765010124905576334484197508339313041987645956801964377037554731053106648071327103904483922323941776684611537687840259337889377187049472068200968027479025378100091292073008777048113070081780670408110671901304376135980304810788060629597214173119528963008987042968119895907733665168323392151710087368284469744389438326323554895690931851478994315437492452619806892438439039357650653127001013044674011151680463536815123710840409111539156315904142091282519729703027695055787861112588760155110613605015638510853834567428101504799168521772878038259541168418106178000092796255343386592257371409433034779762671576821653789761389855784712098772645527142209680816573367068270855164062601680564026817015406436625293291454787325566353493793396079819792488099709357133975690295365571445335112302426188468696480911612808900665120558622489752298537758835376265546731973801110721235602989766744696412426072264995391401527629712154124492055756809771199531532424313572280914536329858982130952358368695156618292486677271613270256004865789878972295486219074785739555721850220734421021993200082366659604272384534424194779482504805253040290648561794172461792115886324113675321582579511930195092845521866068117479447397591505058491886061014205565861809394709533617854006973122406191637609917515390301591081532073146932433410078095168497109238694640275723209113554259969489942066291952871711138254475560199441399654842593739117550777390959853576910174467514103351190065589869241894971706698367426993834388735910405454739003737742377910677666515068877383066930030026183431787022037363438466692354094878147528870507919142251558855530192396629878286353277139641357891846812227657168191436419264077112458687643943523852475439692662955678431697161132816682863515136275848475974289032283867361607581840351483347001802857536265285551733470843051974968760714276792423700111816652069326087744410783553074137658497447900185563682973234815864536256742210232480487888835784987830115456619909549153188685092909081102669423979560225430239713751546282175053729895388565015327196080769359426573522530679363181518610341745488652489823175760866600027363530241743964343312463093639945723462660050317182127637413965352460968182843175993379785270656374198978850220063765244682343774042221559546223712938374478911023096277632657522368302761808357576597288858798392051203421671783877833584988201260337100571201598427939615474902435578332748572913741787447984219075651211709516612275421362673402460852270398425291746985093023326907306031763310132470512771233217652975897511877508391507050902231532882507442121201231348220373267870116912251459738388458690671364615710297795352902830763038796396964038930907457293198400745023792923464065048106562560325015593857640008158006409295209130555904270389300077559744020291881006082836493991710305547622369612844873487711408366856076415261628179493366720974491459769541089698777732725146060364223344970910855192603452771993358012607055891888288360084700929309751052280116407474015812039640325905872605468632805199802876376219898226085714224440892146572613920852407390955500690471618325773332563194036195391678859289804386998589646614300140489769104247639777274169686542374685926969845690469777884144885328303260928447721633533390072230228791440125982599807547725782372099112813435937273852238237698113586807020077652732416115027188698871991881063393149282754898205855721086628355343334435302208141424228637909939317324707081762260492261489353779035274683560953004430001242157855454793153177113803461557867567733691040891531431978611286217107340258296875217672025573905916774121770471787884332835003215227795779927703008135532070628188222249439329261887772269739673677126007493142526508927963742362225355742722148894485600901001537160752457304371449745861983202593282300056562416977295761526782956154323035997851068281845032182860622623924923150580601927611780082841483217057166159239496037885377236410675837197161873082156468350412202399072888798753700646214603360588974341609084829640884278901911545789258724145366999031725904677668067323052240927093687811623733463709365141054624308410354283032850897476098523092198330644428245758650278033748752402735341811013385620894339727087645195063716223620956968848118001402193745237532462414112075315962918625045718417092953312691378079808420646331278497059576500551811527523289675541440254868671517428092764901616688968654688344524182792260689799299955121014943228441564430308596881358058513526515608622859748448198452930920959202199827562284937666350535652383752782817883572749630988284548162600402950846759858680490401845725954861476056662964191766139001675196148314027241154468590576560981463045027214051457019708003604192247145516861479890589268292406004816972926678511740252598997539231753151661326986241905904728705496679909257668515900557247501660802907856453755726592171534476879873654226763626891236008293902797775377351309416954648457216559732949389442695049463043763019099331831656765171820175151861345412288764075517493143319089404313655020360437334900662116175214833085751389874087397934690337980404978179115247820690501475975040772339426422971089042924015570903143959791963995545052921528528899761659269863663874676996393826436999066143546754653923859228421775431283594754631319782528572823263682923981271998854023220022277449527858057086422543490146672064475030328954011876634180083964105564308294158871311899756043117095853850911471675784778250358483817501067350435820120473954399297837121051761850644084559469401421796105894374327019216799064002704385631800672700831534701707187871468868615987768369081403927320014286726461867255246805859282639820091173144787842185219218870821085232394934726731634751220082183611687503677556399702945878733338836832654391010805298818233875630729411298321143304161999230134029841137891215657664829062852171470039990196920891253732831665628174780309988618895623773113450847146444356677059298530281574218601125438600315346528792488576830473130767459618085498868210394951706142776558031490547264196795962039104291143641427305849702441349388936439286396485629197041066674238444087369394825370347395416162029978260074585664527782924522289277396965612266522509067937100360883265059344590766513865028242046249069022417316079071772796249316531545790004525261755310959712231470924042034832436686978062396987832576175871505126352912290548054458619404656251585326179367426458193175022832567010728133883788262760235918378746462969061724931605703390388260000172829644928368602097056791002186348650739075647842462946678336804091299980053448306018109119674861815668317103721561772652966513878867367092835929738163027646515826047192808331398765875114633733698004797655490380566265394953033009861618262433428717284748469966712091356439524637663776191830739133221004388307681324004288722199694368758392042179673198211244345723533643136156914064470192652749476816757193562660318123372958212154033944849356214883808819137684515934751157992844028280490734656687922509565712000269892004717793572715475834628655932962416948512206874049395548919543582759753489798997203841191720292519972881455844534061456628222472656971640172849380477145832684711573134884297577689871915305985914016847553772478113408172327015221817347322174975431119021431543356134771936851210341920187075672528947863839615928122025048564242492430778101970786375050430859150872356847131297143399643467264358436825737108813044007847142354018845769884383789986963326708429992553643843085525740184770222959799020873977866663230737193856333260277916784902412171398571614641165639416561253964942677686959100131672298327630735294635561096956635884080988825468513420723755205173218397838226726445413572659348607317000003516530105300862279365600626272547949660603420073945167147676862439837638410938138132867841980046850093131739466536818836916342098048957895866949510275900353389906225927725563906061019775123462413002310164121222791365907613743374371799895315652899013855406204149369813012957635284420721192005861912560549095089170955820066798541269390486011497031685987410214060338356242896953666468420061546378225192799282132321633191630487376070457377607674613454300791278821483404722680038572351485113773646142943396576474715903194249771564343308158689750357557354230171598895259039084762476211369248309793789098802353233282307220914422788217196759257370890462800761827426399570254430232704461813777502738696396186151660231634695115745345327967409705668250034765644634267578897050124244601145959789221768588204391937286050176653337987031281743107542285608790619863189944106951138563364247951682206264695992563994419737537072698335461647643360523601451870113212384904512983313599477379031222763115690699701268396045406876765672385229275001262426244378530610487878139232245475879587337950316255619204791762237592471439278237741978965405555723145529232800586250412635304764517242994107221002734705942963532381053253702578344019996013413063703782370530731693390652676097718752584204466966527664375478138931606118557378787814523120552020980759550597468874310354982756572191345471464508207883862049760829026998829812012141194866958793905872829712026061218842055480159241735523049048907317821551931155253509032694231063715591862008905510486680326276583286371591133128041232904403615415489794425018760169676304876598102798316481638826806750694768674551145650567952513797185116364254978843387826429017306027068006625112208455867902409418163320196948758694021959217793127501062583991433604113813015517499702163105684825222609752151061693654350971364243259615690920357346787479622408771706423806794844114745198419461311371306606980244074369245522195398916934588563894635191928559401429199337466971783835068055632693643054372280538634552468058422301645735341363290107573023985948484795342554350248967264908041720519196720611403920027465710151604905300175044568087047756809824883519568719208910323489870809508311096048211380629214183366802725064114839700977890307353506849291805095281446556950232622434054030301947455011051208268572496731837625748460309688227877979800483225210571629694908697384143809525967565013449261214740718444378699178730983517929503203693509301811857829919843414909961715728517436394526956664600080036615297025762535127335479732560934240263729980787914325501832132822632910729053463134767216580349656442494368834076597120939188544106332062820210243279470738960312649378802484865003790465097765906591010639134921616699314625446775901773718425036020185074237544701758279555403148908361963696520398221938819105812654067319589470910294650331164629154158711959652463440148663720308488066878707309186895385141162965510184588176217415326616932006799048535694486051369793401724084507356096040029899066529288164363833020060290981561780594719502175539761826680157352668138476475100808636558034980856272072912840688341903500900748083148130167901310688232018100465601924812883182802410342524330549934395134944431825998252249840244489112900649489386622069175429850884998212863655896230532470593515546131850636895040490393246884188418591341959053569976777427442407762288096467266186189066186495497503466155808370197138961027467385069978461534253300512204690827964660120753921484478049544875740550095548983440595327252210189121464584783796561676464984046095911660113252639402900066471734135280445538098487011110218141566603144082306980924944657513717891440639333436494296139356520774516404754399417517664371440777973846289465285437034527035047640066579507297586037939161736164873262612123897158676812339921621065193562136727453064692168863390147243695180703753920523436761151941345327012452918189479618913251945578726027821972675133765909489783791306422494631829372290238021957743863901936464638643121946594674111609176416897234434619404189794606268344530340786384861386422653544471251500063154618584330193721768392167841731857556636196624597437141141199473219160685897919696547171069450054175703735379194087129386162293806142696787623411605817924223032052849391676221380968283683798310883534055488822987731317371614308714378518003624361498837808108214586476161624748064029852617723873456313920295446303078275483983274274331077835344716843434688909965383634078845820292162189802114272160773719303206663869095802947809255446309578320973402845061545160981990174422824284540090357217722805710055052640050531595248394983566063464993740348782410987899162736466358137679112880960106598915597210924983628955670397325996608505590282424645091853077194721701298306334998289479378494496425022818613041001866631863623504555105183869485701611976699494203123240661091287844403007409500127779406096497788453309718127858494379535722776234150190194048316159214969250995839823567138964038978039056520475831891230874255630443880687315228641941741712987193318737855218789528813163878483832221365267017411212865155957328396646236351892898340394330501431699737916711203174478792115062322545937780871020780062910173245888341091218847251378945728488952934104657720175703729267178573092656907021849553994701723528873735669725833218095863416978042997089334712629404045515217491361166319226648550035915788388895908003452866533168677432065236444508697455789946448581950702939006306892309184765004437994790325694337883634669298477868338343206045060042098229113656399281626702637509270969639690076015358996623962594372129596087554247265925205895176418291794988217226662320730891394112325961120684409955870645824209649502380781969504579862489950666162347112199642097206627943475696816411173177433611890357429919894722792588983209390265063386403443879903989906697150113449254924018098146140872907817149617299684806488548807763803501769806625339349157831251896448667781842761819749510352950557590799746174924280463031231787213666861388303750785165834438735818529330836206424271993549260502719215344970995080760913483408073962982600291544962355680761681510888311207974870516785177699114952430882142950885779741935845515099697788330970228690870569974394851335872620137692376218166206729310875126611099142205225700872821957402436939570205306955294491929227630901683146246593603639687363648111787900814560239631866079283957690210128578845486241837707965489510397804674086418377526295723748843742301139298485160117793074192532498617934035614205223353742367138345722816487459142450668143074609398154764654960020512465222954995234497379276245157453421715445246860903793121717205193986912102390165907142337217185244598375125932854107270451246662183902971779252660606879286725394413083467522176451417287656146590866075710936012255479032550777577620703065407869003610331841194972315306305314317242097522537005510435403764030968679580446081680247801695929389924444725259589652813770049868458661548606171893288694752181401154926499279431596892049932061384346101839740129389521442431729861200310019870223831900202938829565221626300805492590927252564502120152608128983169965344328011764882990469331548401165741056766671428787065146890597851318344380984968935681339927909799827585548548404302509832997505377508729755346012642244484477602797625636801099408580671419788335527027343054469630776913141711280945813050387083713203044113366478993308019395228017124134498173161680171666905839735243043141769605101711319240121331066400997525756946969697113546522733794387953239437635624637030346842858794451566891842569287159612299653668132234155741997887495080288846584424767132339203277380567650477604275331332379681436922017347905175170371963587034275173475837883399621319284674315847467005710770198545828295897473737103477367825075754119066579177841704854323848526292793132588333593920043088788987559117510368976633366210234281461222377612561077311818798229742922007272703672516593137970875831980881676288492664664207614093885507191575076320518630660190686538226413901732715712037420964800501644896822014254786265075113520620646294557371147980594491521213222690844127140170442231918425411895715375594046265271297329486365980985804269160562687027789807304991751527125944988160745271460336772177273407687796578932057203588733637362607563966914893116069459253648922988681720930112306197886825819319946822474282892062545334657213378291748936302966483394026361076961385838807908357812251110396043895903675694106404335846578210963923326854359040371704982675277177513135180829082921638960982579719379559976316041120636174961772652800277425041819410563813021755541403750021728454605546687153642317461727049799354466505836187906160544964982735289666597786513966170618459115844326853616760701962072230688399987752567775642641675262372040209400824887250777194215112970073325122604705621858175081998596074920993964867956568975136451933107357905182453064151623584300777438683406537317548328392225981258316311228317081355234943788831741498675878592132319674409892073137746398815383944676077792432365127990961067446898485337977720774919767946016852842783560889709997432946189505406045251993301520857807932374665464051054114025139071570112421314220609494967930636212304924404226031241645249254355073898979447516975910720856068067071011892904001281236210946039226881959846600846247281430824642105362004578131280924191662570611890718731668707415569994200500100238182172821008207870673057006667550837919976703184780929227836303194998631650524425610029798203854018148800317424488667573667183730814459892921192291297139644321758353604116615817619215449848092865157439929016779892729418558837426377808638364885825881934907147677114989851198387123386786975963567319349124649175771221711268967557278594369795429106509147482564440607368729321296286717206942439996178648689008985605918452531434869695925283031033111462264628970634383774002446674788217773704479124525853271586919355452627075541289971543544995507284002841913827687843217014187195549361894433758245503278930515891555588543242102858322562491152261807423549877156900520889159018280901188910650653536478457222850015009040028669355853249793805366574882728718520467162112994400281890116432133906089022444278447515520324140565738247569384593364896605945142947346930414878306274285039842601654108757123783914604094824480999026496153724048516791488130650649057614166015779071394862134613642659610036432795316490284179949347041563856402083628018551061409687597034485589873670575806152391826154037707173391032990063207769468377898990023880893755296853106357861508023925148827773943694088440767839911137950743296428109952507767276934232199221320583047657505433823687624207812281015863114571596594230680258558813553814513678942186144264732059214715142711637519331969837716816662485531902564908399426540268917394199806340411588613502603551726623173064183402071467769761373873197727455235178730625829240183740580777414532587883274147016318998433946421010281749873825877831268159450853430941225796421281021605877527230280809819221798712184797401442262121176357115774654684596482168360543409821829236612204405356485689220282880703233407501858745169341843171039811362251119731094896622580517588340044748822227245241406689692005348852912784370510385303306916772587574093696250623454374358188524187804467725739684088404624560598314099412383517415516713038416756360519696341495864042228449713117484434411958146510963013878160096357351714735631838241603471607222692073376757276745246117052388188667310613943152964786803274803708185754302799956856580467599314323466636516773133928701214150280693762909325592866833396535042146858306873853685768877734722952686309264560511444548365011260594645696140520170606186153783357345224175165771605339804018675767130249819972682160078475637367412599171854872182086391613371827882706181005073142028104837696259236139512308849102964621374970443142894460912646023746600739859524943060546114060055142135969601582491245065421566779251936035933299096824388347491608567078214166910389511778511911801119589705740119719533772708704876929704815668698837064758034973843789809128510924705790552407528758408973897670985359297106559584060096874508783202460003785966193017945041205034606529000771855191194049333900859162885098077557014144434020863632840584017194249735679365604096035657366549423552877195793080398695940857244623368354640142903013743515242457187022008314363050178929444677207882486554101123274505595866449973769777930051046048580831537938109612802710693252767495436299832108366717906478161429084641170293481282343547509551836504097485336322960818497008165766523594461359367480631592329058448959902541991878373660072481973741021112372817027657107458480625154858093795267771768728427372755383145047335914683829597683263346018983359461700836852190663387983611321229329719072453262508995361385725330965916316066150977087861782508990816385580874000326169880314126163600585049771098636017015275214961368755764656542533352734382532887743933074546433936431385661371225537948548041285369101358913640466969954897695233805826194506557220850708673850876093051438306305784537924057367575362306491666163408915989159511201007378136595216751664993076384588977534361551043918434470201424728221287701590803867924068589860028660152902746180941312151597013624432974552292415606382874577203917515777776715485832067148550759306013569664007202644534081773776774453944562155108104767269787231872195611754074856434500335637302478752018269008975026498367923994532746002842849539537674961872197299851473861034461047242576203325720079702328250795879593155267366673577496423021120531813718627848010622133568139241966152673267063012881353783036904538198495924195582060253488417273005146217970232594906263581780634273166817348291822538235870653796643354364314040928199541327074012113422070652861694566964339420290297807090461377221624108213678213743836804581813214415079436362213204666320364406523086246842821303385460636848259119547801669308230215777654549534512501130638995388235271007662425445026219470867461604747820090745610816287195643402124643257387665549128865103771564855545972194248631687395195475342028855294018516900032359143951710246952364144533857651246877778679032777517636051574971987041905631532743900523033693501383049346989601113898898628522224692779935653420482359175128691066492415488679868129933217573763656314117932261808015467728893527051346900646354038806291400946197229891117348446865557124506227247677194003714342577449393291178371198857279120738239718702426471897005308013618485019149633600755400681843690324816773487439314549440966666557060843617640016085739009801014019809962855871405335779232673402057073483074813460849333605147850409385716283305817472396760203436240963144978789814725212425266977594714905784111369603716533941417515301077474203874202664845049957121681975602954272848790195643665606806157020382078586633135293688408486704544478966549116368683577326390972540834494254825073962020435429750627011771699187092331618473158869989662008395477181612397937877702685127445564272543809296084107923989075867240771260654056790630407603376463447698669758326544923729366394704444600074416074475555766152895011768030406391479106875685392574115321432988312462268923612427904343069804543647497877075455808934307696621690358516273923631172167900125664136173707318003085407182387115325636903795170007944694493121237296555564080571026339681207658647672612043542586371804311107567924190169816440447393230034437822572820410778843711280823722691465946716018652320818205368061646424213686375106781607685159947930932398272068293312465405641334854953475860571808257399789281619270689705184808344411866717362748557742684933868335297384308215194875378728407402015673783860176142005562942495086166951551901946801887172217037624266580423875525996579073551898273894685202509962252350792495439051699819661037543369200938795968918728785914911065367756068363961241173225038446906404513972207049551420661990817454974592086520514503562177093947908197420795625360918766387852021920472201937228912330471992639429476134615271941564642477673750826103151952917363013653849868326619567680418718162019833241865072024505587652678899870610464365527141151475016501472401417011706417506699263415483413442046767676687999424957932872057781451059491154353738442166682779737874513393165914691296437327984560392882581379135245855652597660765141595545450106880889927886416226711070921568475115217057360632245096831166410768316800515837494489175083275586928417307938689030508284686896531467118236417703924846108217194389712911216054237207406152728463856364907737726747695467692622704422061015406524075666957334264524399025301603195358019611655508579303463018943188126796336166554342628985394643411666078436744842390715826521703630046641252302647631517500396585198232681721587976116208122852782807295084667237783321093845449172400147378724747786600474828812239995509357441267811054260892708307651071776116547863850886749630381007779983654570513771180280534071917913691291556131367564213626967236784728951175880006689318348610448061031170098985096090404222205189198511198709187313274041863775483082419716406850432601548616552614932681106214152954710466932493169595931031749038733200655799853229833474594615759869368031738765662174986270831028280610728102797377976238606373914767203305729095325652833985218108414396096595707642577411917165755971426051516204760056633700539864336106351674169873880465494724594178443423670806810654456829801173225779686483761823763543876360372787452225421013058521938252650312987162922868896069581413882839777228485312429596705275244125901428549959604021916370183694273119792182991066544268235848273280501286955314701129643923258638499106823364160544536635996798990611110762381980845514049937523786810390528327940051928772199219633316493254263764619203798844176099719237300305022692778633337580302895552029967634451798901355912876889861295520088760824878736686423455696075036605359098649635500221766995013995610299433462997229077797354060394347682967493491879993718833724034299624627973215993758620139747257365297345749077455240429792458936701121039422585316754265654311629834234254427207782472115400712025254553326511167873921678951027445635485537447730074727942665493270328839719494458035879581324096713385856762706722080693863181152808308569722086205155009413241666971862622853643726645566168995003185231804024864341074716717138873029938663311811846683309263935943300249502883067717239576882221924209263751991427408348937319365078280921265342172054268701743222363600196223338876967453370337010937673005578003330719628392267204544154816467963862249829588845287587964736119590581405550738063627889082758648783228648137470932655272529013513236543138585606573295992914143078381642183798512522816348910303430316570542993801982574284476686508949801356452179906828029975989575002584784942140818630700530045407010252479029482974534112593847144407327255840080232262586082733884617823745678271297307355917439609872857385942568638222970317912143403589683717282984771826308732084420175003826601883320970785736060736386630736813421566724526097156067454404727402563402990247937326772679089047117546019283123324790042314793970129133715165231464537620995428652532869372556275992605362238016938188025458851279929831460430208040194441018811918880229536724471793278016099346230600332316454706310141856047519929921335023462863463200533718275710676093874111032196305784656645485941608400893630029669972200503414165789458020962094512178208177361487624683500231745077613203450372477949875197071597179602743407458770446478093581122494013121487971656173370986102745918746664215201563917170056660826874243035464667290276448971201246090983274185419791826970726975178985843966889464726690336567311021057053376414749241491833570727891239935881300873132355017048575519002155411031091852597892055982622099212676917672961656415312481262077572828850963017536873395545914963365793872118560583127971209137737382900517714285946473739022857195471046870836211431937686302459279640948696988157594803509148551396742152675850768039751094005581841223117660579781014821478831374248692333647905143730321393171769733911373577896018785619541329435852684746869231238608857038884360607954131216588156349971991261837462479899093334367713835599544124310101148692982342624684117035669404383253466809151468515213673431677298586172251908829547528089250488138815012190805724723024590043585819910336093912117267670245375884533449319226711886497748460893415278801578283812728171917064038369860336476114998151926364500293115412160237888507954013156423055638887448493739802690533762303705540157046991870311165484722366696754370314475469463977170932869076673230720146891254557484808624353565747282684184069689139812990394981952666298349046311090847040747393391342376341306908204068112291880068370343300856084943105177229485193782612478736474790651725119416771523169640588616239553961179712612612285208830309728909575137549162845591162276411700061968754716724348587991240049622634282131613714841846088371608271699161243123937769220174589908877819072680168257112955734035741055874434524024892023568276324961236622728409930345554797853011401846213108201526362898703687441710816978685110112006930495306264875708753735463175828338255016705333039404523424975790379696696500765498558347876889736093232827134942652200269937225437976329793571102346274925357686409144633833139808237581178206797007017639604775925744708835517521045270113082751276321535496760652830057368318290865660244547796655861733286257761917181361572751149744214032007344371839769864785975440485158579608805847621369342576657458374188886494440231491370864603806261226500141739359354614931466184335544159719070129975653371381917515436078092529894952768766133286136424410019952957868610689636252659604654360537656888568559922274181844742747345624061483131102033229341958189921704795704687806664834830253487163214622505418132061031634590604140433522675692780105721064192993330713467406111550400172753575955788274691418943833404338936290555264431319314201499060289475987811421705222953573597146009364979775957953125967021779406586396948471540273506446477586666763677669034654523976517368396628499737862234244269120616003805490634144270122868608563792354951540811121331756778574884384832915362218609561292785217577754632870996827390229089952602313493474799749586615570856511623307322562718286977490264616817758245731856531347547970965601546439794492336286063874808706069601185664769407995095084000769786800358875300726859350136648480709464349822953895067561848052478488385198349252595205269091240012239117055048291488397244707134553195251932955035454974364905022047986309037662919903574675826003297076513638742336295935713650815565717292917784512537237401027086854953364220981197514486776003155579303511000919510448095902452298382747835045321327701814453989084483176228777302721717505141441373303395303721531320560215572233433424219697144233663051776476220878964812351252334606211432190749375700925792343597611336501215653332352014177195857043486726168151194960127451919715358847244342575764546702164952303362923027730593516222658691429751655958439050719665557325302548053111278773244009385039245445683846037290457593581685967956332395941038849812077136610810610012113422570268159122743415611849657305063579072943096912078627580091359399374621596560227137511772731338797033841709934668266545393750835985115683976671704889174555109314078930779896725199739692432935038919141644518136018648540380150307079485814669907605277421597682022625959954717182137482448347971162239304249494533920466807949259808778669451896997694430334488875876521477169138597716658165354992642825442062920418624154218613938359701646432928771268247682352566868344942342928143135303094046020458812759206607640705639401060995195520457645918301275765831546700993948498086210633000621615407624439475759228038486814776370224735030830745576145247570418566775360159758683080893851742894513285281893276438279858624465368693858068455233526624972821449438541875576207051349708006696383176587545624676313069792618611274224450521558401322596413747792113892942686330798096873854186432674479648253394689934351916912785726787788210104686511222799102931507194372126389831375005894077284958157434730736462757113019513256081611856029407690942271956531188814855897185997577705672385639634461687212024144470695448515172171049968275704422092675837622699765464108787982799754844571750131087121123805329690132538328622650151530727142250218068841665426066098257880201224605280081703567397072310322395936338094590895279107468435693480104940659113285455434932970692600271233056397919349215277999921063368572045096467359826015148150934564569094159104582499496414628275961418937728964065707706169056323609294450432248682289933611885741881426102248672295470689393908666208764559195934521891799008093502223367643996623560649099241711549540696883408351844993075520915167794126660861226906004894590149795586285637353269257293984352614938164555315206156826484470334238169062497606088780940157835196773930764013927614873195487929640741427736835700402699777717310404310541984572987012876645737633045592150628887251424257000227390786275101420718479877052322642324318787972211296603427235977414608045631799777189614387266108225421575641693999772102818490684597048718185791095993842556592051352646534264052190718218808804913394946683377002218338860689144770175600171094356230974708942639077920088428521951478571379282519863515900771871420293557038976226466557024059351021847424176870383108530384323448504312481848080117620910035363681863917914703152881878332359704873974078548084743871488938671949438779755422956018321048834985805727791339842511162767160810137581877937357359060071403949035984019850436474021362655561231777207484978712645689145147854358854073212547264696494383559309140474051107664450426354123298595653805036259557791658467389109168991180861434546345229546079316090338090082591742845242702885147092996428023361701980938292483067741816878425255705848483672538770399406105465837854492141443980131048512924152512323871583796708627897146718594423060515651179191257230423757951249061844011598438618712688343338913384093368322357512408598168138811331527611324681819645749118325231397179889120144636874666387791741830319161435704723110384867080991610690051061495993800186386686046505903178087063296953093754652993845188057835242790977378364684989381510102966863424141958345311111768648807810941922549707354885517026251164986769361581894200750093600265375273084311650578913151045597651664713358983194512324096703182088327269842430223811945346578477705340616827866196510595606993106669667160663332390269331818026680406902421938905904941595360628137754420988234497541583804218658414400662917917086282133341956475673612748875698224672432077881072375098525250020747250746532562617144761100710872402581867749057125855732467661725413595826048245065163516992509589566958506862738644403395824691176246108920979681794873059963661161547402399585307467170021073866380085884731461696597982525688241889953768005813304142050523944706353246951795082514575966297381734873690786013422204536730114645696900769247719082304772504671581939037371947152016537633433833088597717777617656431477827871062033239298898211834928040088784587589394884740759473339508148620615122107483753958900460622081989487243020956679404324683652331483778596048716215384245584521932818253256101789709458866339972991155495135463420063281497954950737679681820199994432967691907384412445700615342255580211064744880795377273327690694763772801677119482505419422519174859233116500040500866377659911780164123883835595031481900404807249747437677942505661622691691990131386575209029375657931835761103566066343730407602158176696061799057648915657892656058267020765696161558610114325497624788587162250122077865146069916204782767122171726450498258556606499286915336705423249700415742073555820499905233200351027315719069413111779952840824958815698103782265437269967186448355941911388990298925200801329976780227550012355242399487495626310103554861845494276873423133362072298027013280680194454369900153139003120685690834826297438998325459064578033349776915135889229401734252431544179178101454871950616482331861769827869755422752422039165120244872745278935760504604338314471271042095167046147209073657575509956872934840768132891884693864515824080271724425631696270621887684473213230306049241768241846896116805467541951510339514069843360536484822605176235231275388955536862582803030446176773045863691553460703867987796883456904140218783710586641406059713421303937786600243909883303143141949747883147386516289700283272344945176568403158460651510620799134957409285959620934712319915440527752180329032376278347829361294708056056019349706834234402145849183621803571165063083326564122855148262073569468807629368430173896855079387868327930387179338178391813730937904316052417271189871153522783908406710200254937755812656930873463977576316977382181242966832100527191497521366477687403369569350593972574233894531708355338133942049190263032845049435778891821890903464729043087594676140813724018729582180743142644028744609346058308992167294097352337878971820618098481731293907884813871822538486216661754581048022867881674660390799976503535987955677323006263921811859683599063225573714786892479040324487865271718100025333072761929922513705076502585052296185875520940456378929914853360038145869850019454339129217921347870993278698321678113973614888894940446760188154371312850236546208086430178902966446706907572724628443224085443806639536684756142622557287433316429662122326760480044254613010552543551528369923643362602862930966881381055631261701911849922592183126117087552314183339473813486686208183063974263191108465782679115317365630525668420877166079447671551452453545615132469966512919339439187971855215376757290226959596798646150094359663820882910321818558676337620955082996529722494604318935037544998169208597904671866997695894259421461314770705923404599664026435383575117051593529642674386917024318461383013191920324835235326119343814669968905622498020328333066376031613030640081097368124362217618752422523975154630393626957757008018580731040138176356301702202161595734822538851117004707614860481928009344258054788219785941407829665874825589733225459041059423403187809285313303971653346290449725938491140616734779216922310607360440874632553684758948840960383935137323152032560379896399171992078106738639698233046664570768844402041806832288824630493659341051448518310010264763821018062717524709332841376686770584689695369313678460780568854812949879310490318513782086848522214045478783505277887173492744351180542341068871029945900564966568405085527763964655435061285898896554995230906978780514929619705255026022401163614736069397693059295003909152984169180817167870896358945380240364032270804452192505060443367459564989914841685566109110137162763551424316823834904555702296013167090450993692580756015035123754973040517725508079727543853604379693315614708092571903703592648100457537020536764944874192297512286457797303719248542515537729846876205935937066160523203606573787018820977434574949281626147332140519108354778616855807738065829093786730475901567320886638034427847957659403918620125178532801941837626497582817353359754896594279979160260301429299619317903558450519769702552286300058798751014286702307455999737158460618986196929779020757176990787054109593017525731443796224770269974225261914214635060801520311498593723604228604926270049851149421993491591611307648457505238796599191337207495132858697623817104459967831357585818428509159531828139789078889847805128899296182312357033762424211367488254261094387497085384722144057322331405734590372163144355421281440175177037102961130906455693859913266436725013863680561404233963011989179163077334213059347831834658410052719077299411732708283034778939576514447759945893252513214833654263960465006242237881303078302686144120573228638603759557093613414755390419539678509905355842041636177289986214144951420610622634781029836841642377452853188044279263147341340576593649277306065457251256507607942727090950276037286696130399817630746438699741267581158820814506853310684489672949345341611230335050854401014169694936777676585607591004615632951915528570193408982455306725143027841302297111975737328124676563974728179770652992222753226209927076782008106895860717813962482724071937380524966874988168568157811743641614251112625698167034185039627380084177517581531409709721006028950295995464545200209400893259604555887562331744817925242640227947724525251008369855054701328210185570602143614721691329895681622666131297411047727930138358203801890398266470756926339012897542106135746918545805072421651075168339026505111840130030435099647550144769515253621336598110302465922843258703110138861383193309860922524238660316302929896315510676018682654689757656703312077330996490335559534213855291348910775819342261217610442712171021022034161503696560956604232647681848678886254476430188287291954480657833298051909282860450500234619993910280020648435918584578306243475704626911697548603254360753096001738702535644393768676297692418732749661486123431848501251320512200881055829828864241024009212545392651250942721565875346348323961561688511801571233316758330834907444263395388166360134210517888435022394482148801983590228815081832107419131852900189781442117122616742339505864439112757855073838809559740376340157833537658554938436933546218352693592071149395200748067700143732226104492291917076440335994114795321880725449498878603097051181781867358586207600513104328933138797970438273234039535087368165382356001218833391559324884100963367944093780387800038791282544644934704563310218501474882979177621393351218022132273246362514686689876242079992785165346456541980571676884007848095036516858854010691038348206457291916657071861731638719650294311445138380195223391945032394431347810073676788889529163248422072891570214505561359579239066512248230244684163996544837547359579356094307330628283607486847407225057943544105850469497720899695990891321743619372024315613315961182451538528438683706265172381154421612131844303662668112451683822017552768194304214811548149865246698673346187276149579848050296053241157464501130842328031951343405721917995273561437680376539666233842886552817669031477808461754258598035492225730143378674820088755973337593580409453324531972739249195462531905975910953946100581375611293880869974892475834473401607551921094893960610973171673196581633217112315045584841168189068985871307339175937410176688689106589661736722338029992000612113278226794927093878389790060940728657769532898625514100466673501422309550943455836374335372454182820608916076351259182537469129331973530546347711266547384187314278011625336823623629169997608202712471726220269006087597625296309247120482387031361439107685020682131783784291820883083393782755421651671777929023328900578688461592651202419834582169659623503733537300089314913517115545552253208525489236820633397171444314871888801362221139706030698778033502667029532223063594218777878840943377684428180850233346362944870097260960741807850596111090664212832755362152084840070060359187323215952474538016878822281235393354666130856377822805857979292215319793042375769434229973981281165382118867577460155259964574685089672888920395909516047648492661312299704236368602160846985262813086022856720707524324949762453828755468995986452792853803714877143202801443888317496571846680946752041271444557993178926246227566846613061756679385799086965262205018351170373223493181035614272196354135070364474188103818484116939446983368134485365639124011840827615407721266243678112938212680922276852835366500126895646953582480947158948504719913916001701404772305037127647270420581724948303100610323998162709023379855071601355182747527892261060389878385690702214262677380110974932568756857191774486395691925660300130534357898970872860448633340264156683717649601027600794419013099605862137584604557779193047525706915029977183623579963034240143640329354485876650354430882933987487932199495788611903204009188250050587476039597672563308535461343460018243269622491346345600054790943572160742391495654906587267960559422731845431963893149239459314987712136426442708472761066605990327368355490953429850551298384652786304085784272670124335456874843123152603130934218041540977398690398960355168798882022800649160946874368135737759734618687939403241145417615469748681400897282229149312883321289504323565631561778742261098849299513753077386033257838734925749098285864492447051515167856282185889451450590834398873077765616212384255077316725782549342174450412333061472135926669637817504531278998991412306164122414525712967508646715857228780032217070945977960920761409623888262029701045261696653620061960828663592420281433854215617778476891828865578794265200805346205770987167384720154533667577745469356221993967986844910954076192392059112185453681480320268780092276602356542311178752477112646033474020965688858109010172103581948128553840657658394120926974868571619133946712014190559917973071599646573147185639330749036117479752785069574754661082274072617945271216118715599003173739922153785094231996217247706459748029852341720409241685512903246096807240617790260035365585904341493318127053819222071311295731934053386173309787546684480535426001927848634923656384161320103038859220934530584125801719260930745309339039499078351700132985224618318957251167760216049310219233718460949064346429598726062864987801928642891603204463025384834980091387627447698038374112946890751651858788837569949824682357258320755540219740796925707330206535804045132618627594161628659936504088682332447375801118310837143774790365737541198766530074036636073353823481645799036145349336293214804622693925938846801044226499449610983155129913360520998690849640208140009364429499606220948301822158882489164868824770052387971356027512320475471674329386522899809704087590304183475518575574566733624137101330243835200125322214212100418162124314066065628740185703963958920924143166723938038779489000876425408672275867005767697672524458747277116860580723162107856729965180155579891106165319340481066423294479896065448036371858944176967597849124312805244318550626106372129868978791430481615923030418141603218035118299760706742822188218667058632592050829073438869167168591646283819624849873365943148869040780837938171942263394268715906559705171406000777135073608286741385597730410129336988991836110665665686042757655891371954480863728598426759145164848390727470192292597780845186698794420436989876294936463048163441035528033568332344786155066600083220216335826016731623421225363252633191804281705723809066318471487223797182070396624040171681868934246096006832876560484617724681069758277112058082665662039478057315608858259952071321304449243995669974880625272937114793465811644221067650616860935501252980537154764093385661444629959813930963553053652795656995265310964035764770339584656805008943348559373600861346569160393317572798502673440294043565382262711108725396619589425557749814242471947823151619603934120194618194971911865450560608452011496518206622381715377845831462554225724083169127217317571939249761420701118800573666167179118033336251437683201804730980423397551689796156266818811368813999520260071281485526706466965329232221007129945360665259246764176138130556723968224780116870597467813353844422624074813292633358168763161226348828200182981054866214142950410539628130655725235841265976068322435095029047072864742853965482701466191246502060818024252456631868713329527325491228601897365593629294154979532852212583503128656799795475886463195641009963461385921663601595500815834916199447231108561644363050161468899529145353834336122206707358432401710547475894682204347062883935103420305568256090796124113146428549192983011479645254387701309471699873176254793450468808959018864030067286736282363218365047213288301468329038060250258420855269801533147736370960795990714732541292239101160559201699027603628938026807714772945706202643343878879318203919984530312339259795518473390577487569698310800817078612864220198055034501044417221057301202442935664902480469446932785809823241413744680519092154016515871914006441693707142219663966475653038747716314302734662240934960877345681386936110721958497923338470874332556122469561667868579008913368887721716089302704416438614660690616064675564835255695174992691041347409593858345593954361877346871038130588007438910122078987725150721159374994547091598288533890061231529107118107485991007728026505187267040252537654482689813122468553720717029785499618135967921227956076464982288944655555861723001096441262687002541045145261932715918061307922177926985239288890133824963886315966990314050413040687462859983440622410693020691479334350167226921145550752945206206447634031048475649078815207279673355690922318743786070464581260347297306374852695321005111624819960906546213804732678771677576814250229360656077764305338904403555158091314961291216359378704586483812799908424370661889959918321409676860253290291669812088197227665716770365183672671407892607661743315581657980535975639723839581204870601655016658806462294220882914303419097013537612374001674562344600352072093157282744822038666777569192069103443662617074469471676825579138678750110821107373605305225036812566579332875654869014812993399561719025588206482349179961679856750861763670604499804760236700312437099302303306492585771508131869164017954906649803690193563285166584473782969006143934412888996192643425460271372084719207080194573547340206727281325045354625084574684449382623191267134901305244253639839926578837254290188699024972881614529209572109023753892052900486776298980832973892586723601231152950178852955667354387819668755845465342532492989702671207294923952793003743025865996396335652543108197950557354697837704639958694361479744646231861573480444343680974296805274997262150576560596210276712414186110947517628002908549279841170628666699024975640295899197238854095208437779027579749492114255788989758922047818250960146833006661542312160881162398033067594024814504758551458745049175003205719604753675402206293383842317159010457316962389590873710540401103460531117151955910682944593298455263005105359813916625486475066859203252726949281349415844402283679228114401685870559706136607579179299816510145008756748153238528452511234400515929666092457077399047347440069644596337462234503520864275343844263952458299189315979151518801825026982207614443012719771486520061276805976251658602367088689258569095030897134634082148745139055826212705501474739290025021074421271244806487605002727641806048615025815792075446962626007190851670612315954529762373742608098481086960032106487848803076151364232122094493932720886766840469123177029619595411179405450676564217078152037079073574774865034617825536646235590168928021827260552781535050940162993613979344471250415899790695754446645235824834761443559565860735303197755337996933268776200676799662912928014774357828774118150813594119010399129851492759555070441742522057080339441688183233422201389088703125974164217639222236338740489451796785493390752408968923375048039670734681018567576805154737863228768823463487735551173421154118956286987836918736136016267621216286843586585002999280157234149887160630282043684623316419827588387711901126092929916172050871903668153582245907447394467065683285614095281025982105172891519616862078113617322119254095723292917101537361948759398380152949271984986463141651516759469722515150758860380953136871505949584630032864890681918082828577245351174135923623075899099287695425018406605832814208469356572805562520319606093115799547222884059287554499112463617271278484451921041544007455994792587030537727368700728403763343987129662910857031214577233360111924691413424569513623040142912468142330905395167534621758858717981335289709731948665736937068172246782812921215941179540133118136971349958232651000399442998765024544811395391228876854177139068468942379603922221347771271044644975525213104044444533192623639521355206750333800686462574608782567508144249363038788883637818393257895897359730865064454695253070288536870416377770680641047329998730004907350576562341404571392226038467693969700452170371042741342861658427788831136817486803430553589519660810300205337318328846108752213728050301986989992470443006855262448502256173989917799926922336224595563794294817124738634031437318570484472127033752045259081024236663146983670790852924552693834152500928029425635602230142026719170148447891457841771957359213905752388144236206398439962988407741110178497798071903663571057556898646508379091414780613236081993458230389386464414065035347293558525913633483893892863997263250251400743716589761605890031699243913228831988584286272335686135720286461867336239978430961616081514165572724205209146127466342918239461161377655262668866727887098397592623473492908950306476543234984917765478889199001936967187743586211325612021768727517429352922729359525456818880890027202534428107769350744087380836067195310197204140961907517224868038823651742424184753233105233062637112878553643090571055338659895661005962086240878304031766300151857720225465674014282325683095343620561228811234594072497094177684742919560040641397367111011091498891441800907792647666520840757873326267499831019464972347051378280686281164820724508285971346147423814186789121545819559217192841411544149254020644382664329703372958119800617634041090250024405367636260172929421463432680804680210776210307667942742117071374439848302138477882375019316719930055517648963571050922997241663153217274823193021672036359682282297482803071864496100024245494472014380581501629500772298018220091985054274387063382487051673035804622683541714664539893002115067247601505336603655685392354574344224124680744066488618402993181089932732818648266931092754870318073974525106152112007031345094492646565667929540560558101366740011119037704442118927161948330954646016593599505079948855299951170648457061576044553005948814319157894007241216478965816587147547391000400509306284655811920586776034565282838295657125604687166590609503553636306648995786536490463578031954590630104326914644331553994263982349486019485291121582965548739621386115126733384338142625877824405229467764983393987944704807557209034947239248152910557875319799801544899130709324861300293294675611501467531264113944272832683691871662875729198868511415628665184601450577514487209798333803845650718152095715798286742576005607607410917140835017936697531439921442048632625750871273648167524750634365438693530116577390404494371177743234079814546650555085759958486258856961500220486421739013429496566291873452226326069067009479159542424389930309692762254348071064617583326104405144360451324034035767881218744771637474291922610211320785756025018375194385449158431068326962568282081019557205200088337278752335633320586580555756239754240206679997623326232544161764174356298728587486735723644543428549807302298396021026748527399655022554744087088184299363216702511738153321874883812420979296035126512541674978064608742456818162336171274838624541784343195681112879500057260319653569210112288863211752552928128857954596903692086302167801017967516642185645425627281694467191298594503120464754207753760719887228850439465574464069706038501000798086441377625684410914279483223024409777459947567888599041325249149537580132463513480412496650823833025700823503093703614844173307924387793604389613357692154075064324349741647712700717414054141592481496018214753345398930976807114346892551960867114256863620104961614636277164068160125097904114271521240220277007028769005734878126480945358875021252993069931427602315980883615094314484794862611904899189796317108676334304487791577205303259917886369016313307029910699299839780915697204282845588488690838214122003348887752398025727487931544085590719271449525056499519347295449209396000902297905901153714634354828781378446790769409011493634247738363162029575439608346737789454114483881241221943774110308055710113273664131276316525168923119432604744212049946745060720316897363985471324552375437052591636141407698644755996868887194184164764854687448505074948861230967930402741423380393350224441690692472007017957823934031099180754703930568126935429511304170230043144745401474058433010052167906578566144832243632674075439539899031202713670788639040694473531095810752020723885233786206665538844708129478124846543684137171894460899829200295511629748488639142777598865361607127431878840117944010887035489830282020017689833070680645912351459965121517695318506145550509620101277322501661848600997717845509682107208249413774274458606979757319567248515767217908289063025092738384150561480551689203059256434985946576221398179963797254727393157852560057383027466186565010847259189669197881153088416464056989570808260409142326555055741947876351123874650011794468690631741245421856684534471882644041429549912634697439717005606632103586385062169100389375170981349677443197946404197767013610105857558324659973366402028838913177287750308223901834253073135060927564823806747635138696383305307839578927327299177112121635364629913361104427162643658079203730796778359833896749051952644093095553417126163567965428761457216213761888648945542631044937872514296100078709798824584393825011144868701188080372873775129585348869322227003522320307021065770749263557965817473621273904847897131802141635979987179654512973069092226173386862020630018954425168352906666335786201881026563822091375126153719794516106409328459606634561151154467611012162658129954531040274981883094928902053974797934797124977907203545506667254673482865923528530043840900421716358738156002672256801055435767008484014015162280097939353288850935846127457080547674440228753585715691333771996418799856573351307986323005127286508258753965637818550657558013374020756865591856836237142724321083190275463515215142390162415007275226674173605723905223992659728767530417675103218955008816406099410358565364532991813125851751694786904355904499114085428096567222467521725648192978600467755666057158351924626881173723490832541422675466937999307612009203147504631867050260670417978645198653224952049588650681648615205965787871389562662903931825927090433984816205853678469947499560071876382349180325957139987229222364021573725708138804780513625118755290015547300316134038946082821816350284347732803196483841404701431478894443056442741801330183245864636959470609699382831925030711081765974052501987273973566698998166437966474051207168608445737688199566907724260590728467782692307079133214469084025276763914356043359751011673968333412223667856440561963059340976801291901736691968894199479225751514867385480595257484139974404080947870858797078585503103613485161544548348094383491171624459179321859189322390015117980478864078776565154603804772760863821494258048233491768687889730770361778923404350873946221025871120943743190583629689817836637874029338135597437552688591899775606721502513550487434326584595395739563705062899774193494594110502755786572926828190797554276939393398959537076960891534291497577539332593013407943480483426947055365192378702662089820618404148627024038623643098502545896489316943869094867685217371025811423858914974758997214196797218400617636641394897680557269400323963928807920668152288897547478516702961276581621755307692388996021624044245899260738014839462725192282990648236139636430369121639908831709129833362205489972811495648956408529542991148475526533924769917686332461393510079139780439651599905936865947821624362614371802416872601962119384896843876668208712185474801047980054608422930427330437887029718460747718004170148831189766743389220770044405141762593129800371713298685595263902821905807955504559764883192648322817935191812291466938972450126094431276632220524024955879242646632896255579559388314667611745795682437918324138060075731867358813644812147346581545300075601099736560692727780572972248615345250870886390116391744930032614043508215642104256728959023644547780243609753085419636944748668423561793834046471875822183075223603555549878924142458872798239857344721225460047616346801671787959169319306601832801311402787263953796803578972558895384949530787206833530101380937629493236298481335268134822653519597998624692376082718149010983523211824293035035169456198199275742760574498993802570115204754020244346685671635563636934543737683339973723446101471279280319720175365295638875197703394299892073403197852362602584913854579985014973263831357353320180054401106007243804348048352703475263943638099379030731080508049392573204451580658449572097166487043805565596961417978954287333422134575423466607360379706886670812563978279270812416350292592442184652929621344294744138976428509983064800506641798283651469267918725865351609105652343418498065834354832427950382051950645065528113615800169396780372119270321898105490841742690928102114850429179104877587903712110707675291365856521152200197027900722231762652251391954931137045889884204880812445522551283934605985346866124895213035392975224995077805915502877716953270493660948616075221265896243791480811881954423270442735314550796790130269697543403026764012220061696885975266821158846480634851078251012682575824631867992472101835435952188122193422112572147001086891971813828515989229772132949311335624048091893594371108259732514925027756200591954007003343983818186629580188712667491458275248321365524061754560788762270945422760166297644071937812469151841847938863545751585120312698879808605701469257842926941836631849613017530423803415215301538580645517512744932358602405361844169500795939210383775292874699889531292823471583825222334407030304372629272266660337596735221049273071535438011713441093613352546333015487189574436882748499032729263007581816964037848813404018635999748375829986512206518445792287390933738472293023266707503332223375799404409993264548307663347423024326622752684348629106224609116412237830411359145222169825812892355473774252103840168720205537149991269710902476846755612750130093675532028952282521239421838905317604338661516430930695181472248455781673968084067937357948419721742071390441572938061665912997597317898968220320030204350688533918486757095915750442507731477106106050606096899198860471279209664372869563856372588579771351785583829365292221037152001420208425698048273635238958355612777999654857766464725795560960765965177574066220371849246520053269007320971604850192481352101167623198666571302464726952005957249748413527105896473121458795111266367808791571897471439258923667872587715935033886838395702362651593325760367629575560368287661554329250933316821895340911416433282059068961454042349043821756269368511524151717449677643375021532941328764752289032615132689870707879575028100609602853261384507438514521155582136314172553518227032234993476399816732874560984227006919324070703155680906421503750918681981844279192194693394704834545266404166151236631820495288738792798199338133533473431037454363429669809906506901091091804820148225189155530066862754281072592848250495130716595631120447051806499529000856934281449608342568466656216943304032109254594720109458548065954817585173707510890277309395116227647766908798769198824599560827818266651767895257731469780829194493576703024647363161313068260290024446736979192704980042128418492444627133519852030493379657254043170249948356493546141036234372035417861886451469871632012759105061484663115289892044860048619920773780189304821652749823447025270787187453384676840684947544534285572661364127554673279076371729412542534473934732213538416101924001117747953611715355259069501863894631215263668627531519821546949367592344074121721466518306175482108232240890174463549844813382738754174032008705701085090956519071117667530857553612983626113981503438715943802929782076554338203681204324004299772000280293970218145823274189512468349883384547170085616758281063182488735503351371552434577521914854565021680652063377722445732966249470372883735314595421420229196055963556657063070195137792210385962157071968683602605113402219450948941800480914006666407899143978265826750085001181250627874560536787917082399016145488916000082033188961176771826749581305771485317140391096132937504260398511049960827987772480713693197924486380693013642564912343727338570012870603105057522409102383322683276549755548120377508702169800439501024883247539051208409255093362177437654691413456560409414918891621745845463294727959268073398562075296264982812810505154713026773000829484783054491377263131159213523892027439579608825891610753041302232558272545108516022012858693355489238173798888465962132546838658781828388631786464857195228958218552258823745284761991682917220087165422725399544580199594155538510777028891631369851099369995809762303855715336946797121958816239752154619978925760899926316421805228998337402708331233506770579938913855811872302009848368573352306565205383493909872171122132153013446913661693502320378718521406282857357916799419075715342062426508528980196022445579873617611547187056804658467910833405146184414801268425040437148970391132572843755524029913404549849083495312277649158328388842602629418391072300884723105120449508462487248468716474040252363378479921998571996014959443430641519312189160884999356499328504557616627167460929161288371905600302425633094725974832405700626996064573230591458952986425340952156726865171748501141701016203467790255314474610990887513706401693444706354042733202448441870235192808167652065206652064857095501738767129614553566468474155325343592820495272621371835032576400868593123043433199775624628353424568818261754836823432154723043050896454242122945171606460784681136911067827516135136916283495991363926752517595657991245696665183179616606897932152089332279149100282722668989773882896595090988637268259669543251338303754143561581191225589005925946782851311985927967924704974209959376803379977275215830253416980096718305640589160708384639686917834357674124737936742800243527639052981461972365953108041796839331728454751274055939358592520215266114322570011075215539834691281822765708342943753371197572556812769332435537608168721859840887047806446891282160410038772998060861924943620038652137431796628304147630212846558100350393348897442695601717936807973302612034954555539444368473122676957607884712288950552129723908709081622876801963087239385578438098325238405465651043421898146247202265280020689574837428363333121598367208224018675099170657658086994753282545001840634087208044386471811518647703527869488482293523357203118023758514927662803914893509641031956217186776629722175048050199646240678004766567096708423838916744545958658699214350851850910331482972057719831432960807050121691568615744105203668172902187333412978563622333165322390980692942987442668834303744277340719125278426589019910814206359690977594907438866784075843817553758343958497090162435139943506147047553793904222221750081891529427563915070598562814640149671373271365111958408587997606833762966944116072295335191471928390217965416189987894475828695294679587855013933270646705580323681859234035778018603023554507856750714499072681050131807021105582153595528298672291810263236459307364982729990449218838253071820818789580703025977454875423572912313315905789286837882577743372782957885117959762291968827297415612682008956713830720166866229287438086536571706378616022859974012226678492717682342331182452489936191427859565152759680333178943592357176151766194829838983344442031613299226113738640353881754250644377882445484046055266649625992228033543200472952636490357706113042643383509725100251048341126299143290318250470806809111384721123630573966482539234755038432247630182676063283574689787676164323394023491670580517879821065224017891796809956022030143951865668433445695074927012193328125290440942683831831114441183079114417669208892515688443348469875106747136326553902570592234587821156746773748159728003004783662904997021249689663412931051130746099116923163779870085320290436068951441346987933368734461840830366542439059945412550462780908144297780779472029827324026158781266303772130509425163807473307699540112757646449843329572224525712445384571648061841881257157562857357603786174761529879239655911838126859619102122877732355957632815034326931084215038095382781831932418100123030108683922301525396808384571050387921915280156334152070018144731193382075427665571908207269978792741833415750846553037497625410971698885529930122489848678779131825604227038734287803001812593203110224638907547243435445587809475834245853719202254699283050031846978187486006798162859344585496244306865609715671809929784301586883428104831138286412725801412121742542861512813520263146433292044621037608057583173541883940876720855324650160697875940105235908907393989184228438987549973750585281813783680007753172107600752605319572114317471706883328233873355079164818579196827975928399575919711962071685208236146012312341269494245712042674560803949275729261050646943780633259750798907479216582452444797302452395629106317640745133197459429085693984991936484711305586274678911497870411931597796174259122543648327834786884040066619351302100281921186817158508916958764317920231375865933804543120161375623881608963525217051969764601736434432790592849403100099392442629874795284171944035540168907914809358562102725462564880733984473470194989297761610475613909847514005351085172224630673739534629657151027297581320403736486614463472914118825876164708314713906343006890714372116952113739993562771835409002159479289091550095718218952767994183848263608908798068269129130480429996755723596666947469356091057614509410442139210130637468838059789057029907097826044567620351034683515970981737436442244387880448062665019725210289162348900479082482881227844615667134532148820064169833391765496149627832603198278734132992471854689827597704218907644070542390891322944583295417125082989376996451879733247626663291494572171825741600151070695032366028422145579592174845906302603998742230769356052998167616998775884398192004150835044267838325108818037436280410025298076613933188158645436257102523777899428869584664771422615594794263480583623227649022305662079305399384550218860282308540095103980867207916232232224698007205062074660963360659161376658476696650557479651351128024280805783559467298684420335908055900923443948250607551719384071198740991102944748486036451643604269250325965586083366898521317625883893446831514562451169158460277061730361241717731037166066134677084246069572233185627913793145939954298572497514202747046004695886436005731318371208904432862185479160375908163256288478753498211500284264761702702059355254588746237032720124481673693481296835216023049286078845965256669749830682886388607875288339432811860028155734832477494443352468588176067994037589191376851899594288928879381918952932405759187522990356129242498047019460607502213421416097366687151680809535371450495695221490776130401287125752789220233371010149208838421663726093000784970750934826682558150740472286688468946508481271701346496345929006268899556774299999765121300215350548116007608160760262859426228081817883851036795609643289620261838460056063488754238617326972954419401723719726192990503987499836625444414528952511160346740869974310857248489031046582380924855458791573814832938099535319235535882739657301765246805982518607152268519397979720535518218976767318890603095307517542965550609126651426305272795067187483579378261791471601748079607241070470894288205781949035633273777710937054002899099711061384178773048742400156275716743767462007859262491891438690352799090899511083365406754510282950580677414775550475937651322237359302281742645703255438595716838262760463775130503533621352161952878611192247711695970502109936503315520423573990026754340018930763037778230462229661747862650931838556693955796767678769603125301238577730518279348283369497462099111565865306240420526816459360119236452410829584056718003440017600642578127641235374626278890724766140078466387730198554100091190923368070095240637247726659983974994399326971614690085191564148604130482802754268382728153443105673604211465458169431617043273161902907374994499123889031044359467282813550305588824516358975428305431285559099813972613578011654596171845285021489744969910534585646829694993827261593774716244608726739779318582465726922680961924092354966652908216155955754786980220762985387559654294334134465456120201124197643262479296123230421906706456868422680871717072804157420441126494349778172436340472382982630716740201843645621782717228681639151720521056302654554434566867800511819178092520376946111116015073810866557627176975630161990909268741327618007127048683241059167525633434203065911874696501923736248293164970867704207272419117926454159732207831972865069270099248592948395171083885434428176892271541204281396676851661148161591498836096565532221698852807365344331157203706571260281391828868919162442750481149609564666997338414998875672807474877863225699099888310134937525746143892626245574358587760700005199806427402540503146091500601502458587403839086687986691968941416183714510108322127775040480976652585774804038734562760454204461866881541816345271881262308741292265265538781494102389435533823362227387101285515188559713491538783869763950264817477665285189949876842372655224494468115903545948524877983892067893451138034171071941331510564153390448098755618843465625726201640034329876815023658783626155466370462417666737976593212980531374817447261093460092692861304815116216230414849504737722378461854622292455150781288579816130075762613374387925507588509157667187547320045807883238523183576022893307372709018701178853211558984875552261545721116809876636220229518876947109843976802564511228112341487202460105970811854671683762421162468237690510358996142543820518933844384073805344563556720467362898907013701769695869666421224412809551948484153592136695143097277892302392947834536468170855885775705063876526486959649527516675060103693126089729590137067323385848963529295548221777817405204845042770038471673563967022053586625305635285535225388465848376587123283207519770321248399869748812889984527203993776600992096461719325090444039437814217365130964418612634708161510627646111155982935436372562162217751170110745548082358013835381186839116452698544783343293153552609760142117906057936200916752797275333525100468124711678434623622252059243495499031003409575932727287970810174879892802848341425316140873108131458879790666965609063078306889381433682868916777596569043836528786290973392792669198309206671483545424343654167763759922126343727077339659148584478991921858926039233807693778053846482378440534165872039735555576521824532273941865028134764068531503454630451119549769024911264692448494582937408831029720491563239312964379842585355093292764596954860875943151724781296592919884501116072891983244518071348342845134407056121713850483873256430775132750736511341796372426689864823318236217522180522770871716671103462631051049738469292043374075728054610641912992664929290174562010201520319001181938523226125178542621043508837938749186604496356750873834520934829091291228283283877421687761062317505510863190701173406409717628550537300772423714433693447372138642698825451194222558599407950121186784019653620124827608472584649252666849819310866133711184242525604043403588606841536931804790378956795643678959251165671097975336279359773477267914696809889462156715051682350768644008269392749918702926133614128905447947062116275261448225180831153338059032257077190441031253784124092751973183634589294151003740558977853298049380123113388955644495545858525575476585222489456497201381724100978244055009473106343064058225409608019938523990146339584288151045891075604449238673035557372671009805438932240812913682865193350325575663668915164683051202575166276507511543405891156963328161994126725462535999322728015385702773337160811410822672934972717757653259109908495066417258682584933087280023845745108388241989544393413450836729718029153373869742764748812555328283392800154156401428744380663370873095402665421852602466277325925096832701493650039966129151778492782272507069476117386641754271533129985040302915367911417061282086539355712475008113829295896542317714730215170913067612336020199423237207689295994115538188350092533953348655885226040564541353319852733141406150786946023791195565411074359783765121175987695950860556701054442965845222715513500430456250442417979433506835013496929437733064811685830806394479313776787951020656026527334936016989415936162315820575156936601610673851047081959166749392323658697730251456168505247147155480742210321003999425430246666926150364650808224059937343997577888649873039588162709687755185422602909822031131917011844037540222044574264049962312652110699567490702907013378623697364485274189267428455973389101514104832264156369964761354718079947655891491726909941163685934596716666750296185635090687380012720895276470303563864376389758773288235175726262126066788661963274405951730828526347627264806884054787966238412576185405975502981823743745376228404589094783968441915462630690207367501192065594416571226861837065759249007659062229731031961952473347624414723496281201712291694809500372717722246805264296455210647484078883718857772762687769635446256404415525639219613784980826390990720972861124973200351829797221285832264456740542961749045279373392707565686755156841117216978356038563264406379249876144801376541791658403875602797427513521639193184962086364976522845483725875056438580813447019011744939304305708899247827628734806333576290731806851432202516455935892592877573368753295969837794360863839904208145367032936727990990058481413512028581866750255930869116015987605136037078213879044434019206260704265401971590305067135065785191858106749756435866679476140168713629019474068774697753824816149529630559273424853696010003664838307994554464485274853884275248655452590553613077304010281256684477768157912227064528361036135479233421724579005468185302134638397289014394928743424867364955199822321350892018175952141990709416415948353978781196155675079508062498991585563237377835889645531109704524943337233961563768107694468886857862517090034246728798837921458042521093828033445356969955415925853551477266150783372648934110117765563613098774400830980429983780762493564643596476914515826893224339912402580506607160801078995361973402659606222762751842907241038088585195265776438669338264605964930130361470554118763434532347031071863360871518574911023206195745359396864058503430199257558200308038303783117468988305080504872451628069443255093454257988727264081918063114316710204660755408632006920853326360847994712430203711467861126154720603973386360496247424504696773368056297577631847133189057703231954122256746242078108484756950292407135554434421857962871974627090064175567763059281794547960026360220634326023018650338895774912491330731185516230097825308552435935899539077208670203560196178022909524201678089440967499625855398851434778186850579721480517445114294547323227358515754037493599569669669267087142186870187527409203614807407694914542303750414755369282785437305630794116770226448074726252854219858477321946617928920387989062691855833746990408887341262808430623675729240511186106928434148224596236013934346528838905252136284920530813547752879366404367727543553081281560398934117136206838939915478639261875004572282244443132276841229545948830062138759234912963216718175751880323570887251406559103385113161473012558848039819311997066098809131471663429534832184203054541805500468609412188765312885160188724144695773271680058039256708583433475938744206418223364500453408629011945856544158089039699111213374140262761239974329398122507100291033111854010809337266804124618090208418457534446281937151037711913144817007365890624235266326902504769027739709347932631234781830624211501899417543511416050660385673143266845941803850435894887761890111327446165949848569456264326895471979920477859574093676015816402715953301659743407279533427982621689263422058875614426986604992299305933787554883215857807110124171701381215729500563711501921650807504059718953268502065639519855267012238360093215313074420014872643620121047889838853143029127281905325717153872672688717464697819836698475820904795579362977074017760208089402889233492271959682457422907322509009085656822340979246282494610736022535671470253269022909676189303344137565168599782188771495830294295810875247881437495287949531819832085429111282974053963073537230558927689310536275314671933479706857099943532177152635205372775253615746580014536468337699170409851321470909138113934450014825966525554028889626459739450372637298357653998691406296798683628889793028529342459642778988066374717983813726700527815768052326100917909933552468461301977272624508805367213501328863200748462909483583005999859488895005877701886611946732190720846421154702565656148536145116132524439363829351715954698641073182348967649380653451851064668739497694538881219300429035197174668197256105793101117814771228655096874470561330623684312568239504092276650834829761772712375860004755883029076637832824636888077280821350377606471497468270257397628524253150894305120880049029084649480854322819167572298664915871701241073676290950595506516745261157498671174376822098126455524222910530893403327547451103223619064290560568281937838956864252238389375895534815930133921557212534931399148611302181416255640933399843029708985142728520730938292486927633295091798843546631928798580332704567771290138142928438367840842998246052532976115903151959566041794692664704788137895722395774154352290786458446784692701341533300345662852360272152793764639517809045400190292823769169362735396748411064745847378305267140206478882528385943889538569998740061351998846416037090920813738861043244336695667538617781606315295466236966249982283261841104489076935277625041533198757384105986878935545520578706956586388757619681321634405781238764935325625297106393326747476894039384311330215086754108536455264563716568738671297391998975766827852316545807409606996100289348640614881770783221581130471047060195384128797689515932088558371203893282711345754648173625035117932199752210310259294558597754730611996782985300526712939240150016748267737291967967878018984831130779226603692837744951897676365339739124231024565006272902271447328288985261935358203536356394151882808039944554316608039510393813792504055618571990832967432487056852946183128681811930630599689061193923060303293244285437561160256560328118743507783190739104464963580822738149043312217462878212115969213558197216076527541212597160407244808882780244428945022465430089717314990672360617668617374675265586921003075120937025135797762835549519916589813888884545166252210880412918766048378815362664733117555970202519403461966801540723496419083499279021923732923189267132527733238740708457930548568953763297643886453559294747570575351026569773161595956672837225096522191956898882792964792714993883741649707580443385788528837032988532625866729669491470030474763934549074473433298512808028857466180722718252840486278682823371060267334736829349609859640982269886874949370800837891803493116464368525077709121800470496381021955483833710804452767101506205990644145325548533000982667157334427148341655484853395636630413921959695784172923915724459151770297655813776466595282325202645447200422338586647997358009644450124032503028561208398023827245502828795975809672579362822570852078962031683709579905839600810745722327559519315121850291748754304829812260589389370686692331023911915611646510960661905947863065249210421474516500714535426451146105551230627470118816761833835775048446724425430659350690296791234757631751056119287600211150952932284956558372256839095582405373097626162057375988076105006672458498579411942790565017521730345338196387283627518017946531659756706885489113176830918004538834727341160280485048716264456585610154500287968673885351469308449509004058009735264886313505777087033347797281098503539145615945304098447089087020805420352371861193249971372685941194642147198012879189425748087548630135151161002030787340245391039490521301364799243569241492865142852233893765855099148688600839981520198825610932200329963158207974123538605556116678843368812691898256415954718534474777155886902316241195854070754587436596006194035221830900024668742244211701960721459550611142924163129221926069559159133000799662410721422113233832067600760080660124043844927739563670944435606393315742489309487290754536069968909014704292453156514205328685816826466425375302270634672226648320739984599204975369906030391918758325142838312222961702880936209209192480199995494705787559603500746210279247295567284276482506296837507976639172099860708078228503861415140210804330654929692553476375916814071714199487460565525565910833553248164859093855761164320631426459022329419585168399807197993707768235413603119054982524111704062620672275208550871148940891719555024786009656715001532740268791191269917107742733218243730014908904311416961535142490001054207310197640600488977028137169279980960742903786173028361975550054278244473738276972030194876673087176605900893693744410202109814211873379604225270497390369744214133563434612349705402584709842786640975274835400946469212056369013035813612731181211839018643534389877803322174596641360664724006320328019368336684638193151156977182251256000016361739457757678108371801361868015247764419655523046507328848601190327337449164011232879817480799598913391576220248800853379548158182160730368378140325480037532986655774625361078612070776526080200172882177063126194239192195046240879345818262350163658864520275174696516071729297280589622077904766740701203238349959001783209589618752913892093809535137334915017510305695547491149929065662539661587577411868828326930035633435776141441062480115303786559596159908564194281244885600122235028559374081015095522717879832981369774705765017750046972245440742904947514075959518818376107310883931537943078434259786297128610567886223002174639652090803970255138176676053472749855127798205115565411545434268929198715480307801346371548721359173186724489158364451546204193758849816225007043624107261531668097289534062096376419736914121710508505838731493250684634277479433498741579800042321595985082726549543232037597510857203885233584441423656312605694152037270573794896441807228391293531907784782970552114079154440827985102186796419362033487249923965344147061855040254206239734746921320922378239676393247144738017595610790830915866724367317092968695700130560933448314149330660072005686360848629941271250990846378947559344368173426563784660873078306145027618655530390869822482972285744885992061669667816894110646235702321426722990737990169525527996419195936573131972508282242459626408485423006511706749472898644711398903409899065885056371169622210118003617702313811312403938536176093061839947057844558793594732256161168488543584969224099804535751038678552986612322500999684747349109805743100862642178986604619569712850009520975276880429453801327050704678679796235434080005506262893915159806864492339125820061636677067329530782986197458141849938624841254048094175807287099845297794371213663332035249353539699445266532987199204849288060489894091331920807871406729047343010908713879846147623029330291847212754527906017990087419239886991653821133709706186080174211729402320996171320586411873613172982680373763576681949290972865626673531658865607201329597547722364600177561954452337090533619738860945409209629092523865118493597469807982036703409467271960447522322570886231962670961283809287544041516832334973359175668380384114364341858290112596965569439300498489896792716248343375229891033188104119060204604882284636133014906593416605952127504082141324845229297649059536039425794972266261288136511483617538630636036567853329772347825953373059320141505817982877217742057656063106357075245063976263996980897926166623903729073647572985556045132180903815781653229874173428236936483477383363770291956838073606423749349508610763469904315283011412781583906830072432281403013989971999293356638828969150004333152046291798848794732237957244336216059994291829825128312290994286421958710677295147496115252969645941081614764273704632456536281815111981774983388169129134696659933104788071849727938824385238002730782139589321414175171958397712951941392936649342655602734933014100078544401359374632823520173330103265455327164703816797528563353771141278767477993848914910284213297615826185506577005637836381804566145107416038030448753030892659961927772911556403033403418091994094274158305054881405745358629852520056871665478012905917068493856827929592647417330029771771376686833367702973818862571357014788619856349666181998436735678254266311874698926425594674864989625036426643803094554489376419182062280880684631939976936896632797764563767899884152971289317350251653765732916512290526689973520725084416693028778783080436120364391900206768818667742648426778028750136594761703910039357004605932181467591718467923256374243943343364961521797259895495341379034869724908246755703981810235722667093930410034338031411953131765648155888392353846797359978812458391648994170515457316733768732839475732039607491228764929128366056353797970027072515871154547601427447956929200860728950811283727008937947206604169177544028914960145683208836329408942823742814689619380824984880327886177459946169464965725411340635218509629648894047561914847322470123720906182188858183421989336054838318216302138693327255903560018981658895515158413760859396393518649292524443251473900955475483565246493746697298538655299010211711961847256140522427713347809202432401969661773159300022897880894425627827836217521505003911500205447291030348194410771232843910362097650533112544740776000726267711216584138288564153731662159252464266389817495097234327765269250038346087853937492647481205381656480734359141329426324616123147474583214511380777207043641978561250187210540023156591630221939744378004202292558509732933382987822695100610408705465755073065863147152526566643399036097175467125486138315458451679059958451964754178602542066649831236271711641380496814702187686531368054912814069236789893615446809259475294586087784304492157608084820084924119131394554034186987855991246348059032890373229585040152478179160982955116095123820707326257441349841774570942473196693212763918859911394379813746045349440257006614093192434524865014521358844041729576169303128095474824550075988291145238669913730381711398673092873169911116999318469593670938766685934279580081513727851811980832681380846733444335282081294049397884304604153691744741090963340127719382744616521660617012542682332963591088512030531600583290837827998497442610590306523280890347339349166762129499313183420791648584712102011588614116388065567538793927154988761112141109837673825841444740038772640236287442942005710596959962082891328966970608873920986788895356729622021352069781991620396109504901961546612007100016522910721034810644664531140355562626159656485205297978450244241349359779321755628318376899352872537621966701922141486516962096466249024908142891240966498705336772296846994004640401845788413957071738678236685189536264291679973229055109017404421182194823736253046644347313055765115542944116867681487807148538207492523219139109853446695820336380010634290184785904711328180501716653177776479819891314490031891803129095770179199715291340919313216328719994157862156483039652734936865953728312323914735492223391384814121465526418173278107051319976369149497544976450879576212784157740858879552660026730290870909445560539082176266250870112616553756857574616837649244286032535702841537270007872922658994986475234762782016948742558988986313360396249798478835925942081384314538203435887210749235232115826872367739261181479453380433032218709098164929072595029685097357246185669933772992197199173041536943039466167482738111627046581788501172650472556380910695498840425634238711779674672511169060577632108645172941804467213994336198636426437509981651521190648476893167802080726646953840342113313601796577312636989187289878612157034840114862481403655751445311023853617274638018838449941995422752324674080940981270350521214053475069656779552412737088498177924222044470428353043973230179557943704193487824690498739107558351592989695950509704845427336754643931872778471639471189514452183355515835537185770767457279315105661045063168617093274544213732491816772825319378472854437668636380418241363322455474674124801934338534763504953060336150708224124572404105587331702347970303620613103074817977804955834910083413633029738673960601719883980638698907225319888936008701358918873932671947334277426303608675190269485466423878940912186315381200687657198327808855702952452141565996479818625678818321527248387979829330980861494809900936941858315352629343568376118528994192158192537704158505031453068697595645118513563568647557938256918400402270612837531584534031178448692067720892948634229921885752678463969882124351225939591015736209948859208544866762373375425927757911300682328417065674047887249335550241413034810542099299471205453007187474814454136948904678037658770644364751189856943902344932009123936567184395663301340286929498996751053431154691731536047002493610888291610658642882594793213673603890695028527276640961636106965842764733096007045266739656625552379947464042860617991586670661977003831730488907816311890695249085473392801209674947392652563542897296275285652487688122457358642983779265840712067047841467214267382509409768115686507095875732240918466061040944413255052303167649103587680054514608690046719872872572995501488654718519459525838308858797360292857697855721710208454980418826991970914848329805680366743100507420582269045827071209263442019374573992667348644565391687452535055216127226833895153659425902862574987825859089037287077565007235702434832049051806362991541913790862470685429317800152831529256192646911597436366031066625131093970546369706714412968257961454601780178034810193482652859356301946891923697825224380630147370151577398330853680606333526993968568524413406351659614066600983135937765492831889657515573882188983195752424101341978240631945241155826767113652402667048716158314918364572677803969749604557008683243532838527804275980018083500469001845573919775431256857493495427683921791988402317082193098510908056762944640564896684375596168689663789269352481673622586840240586623454682717103895298156732786041632985586863119089417343935664160398647714791459289709938542732613381730145652435618789226149620299543441927840817902309391195377308057679770571550917134900501595491142274574191432031544410455359936567671423896297884634569837709280990444031437319689789158196488781865642651205710843325985585323561493486866070445434020933120453842005863404558771196776273809433138810221435853084975429724540042928955838520672030320983789311575227414879136504641622625959572849598826682973244322221709722878010689892928370458341788216788462378414468267480146771781126750113158749230005964295830349109142937141490635239125538258227554529102213831044127897901505857681618054483612795324298939863055610998996771277359940797932633479886350197189711854153207535380527862732139269533615969498413758846807301343976725993071235643861738864069333782995469087604485711416571900154586684589924729309011390959484640214947780761700919338329882437494684778320559657533051590870193261773009331081952047891171518155341438162366325393131717752889788103091763069273961965682199159654550742006680675407373168819035943341733993978733568054671072071345731592528926249668017171332854282800841506509857450947939717999765302509705313503755142057301594806118348817177321998011418115391973849025620213308612574572138922780343667033258212454974294342787739545021790270047090368363877128576465488931723129008113769386091948309404559442655676782409160648524582106953307403260446414052905237012743448964485497738446566785748831817667247785331623155614190351397949798724774195892690037665356881130102097993626264268618935821808051673841635168570500523571753447961732115921472140349057079436689736318822586306894280298806220766634988072416614164469809233019437481865701158061892679662091990067873242017791856022046679351794694571405427593222837341985237286226086280313151429229562594361271743435524181506221124163832096859811733709181985138261301054651816711768075891731799472863643917099783368866309944964791053053707137509044488901059821162249057916713125688446784747692185281516638961967842544526101548155270046748295764917049192790422359366904039677867333720899300732793804364950411206823954519291985269970173401934797413265421729666989147606567922039946949559602933147753230305982346503763061406992653737106461228912028303208598681508854615972846134453665995742199450293061047554958257731680042865079426113509741897080142377310664580350312560125887084777676943656666872750176506966982771257995264218011581915773676347144877156027631902239790470392426701462832265751985896026072016803984730418350909349977622789945952536991154483017182514289706948192844184315782479663350136587945023777017275332464733723393113925980528912790545766104529969489815831932975394408577469954733968163792824620002093534452636965200490514945258537204395260549601503228685124739109834341533396195890977046600331154370281398706915047478102275002322747065085243305836319882119384622672034079799051187067202655461535429143506500734386092320271762908018508593665593665641600093302586036517508766847950500518386655237347928179661913483267964231881778921075525603765306200674945249384176293064585184516482645104112237677607384941745675747506674114931939683328409026366068093071221529212204910787214531754103514919354254090986857002591761746687632215546523453075503723965809681051904052137732315842192899340419301013969047376908436413589585437860046658256205811078217635729686746319861714251910471581558840667623266172218159066890438313537767979716724353483834306002657538482507785341720431749133737919203170995887326943707042425799173346456022906839303716169540843864854203179901503210501542901153785953739337904655412655600381167045652746192480552465389712481742635104125070381376279648033586960425672336596351957748860124203639271892906773750859531008963745913475396942677786804090861962591157794735024394839923067036429435540577573759007187791362052624046277181161269938430727398774477706677937366820034054914200337942532695335064856501618221729995284390728369155504672746886886525923977053193309662536094945534531089242908848109922615522130969609091859903131753625257683990509508419121038097914659743937981750129001483602677466418742519562223474391144705739341656429559756053242235235791786723428679347943799334228856964653747625403600168544469993608529796136718818675922065680628440084764034224926829925290710299435872428164218622263479172492888880527383585387641720997708998995838951456499222870521700757204683792714683244169999266367041543847394776554107044008115638046509631303575603412601259088033113731716539350330986877032026584454384648637973347458069002059465443129782946410698219625305758828116093678038901634404029699804794385097855682209451509092102911703230885859500475802426868946394035605384689793982564026190806828924337676415138185662810114497305177419355505483761547846671889695599547915418913193746229211287975029931264408929024312277103775872729128722385021628498010297446148459313959851431611406602802618597187488020743495072963184332801248417087283722430572713296454863432480008750610306332062490353633253116591719077276540248918130585843117005136087691356168708168624073473657853645621987502144990029636314113790376199559521467212548832164617950883347073556015904756605449492690151134418565903979948178352170076691149164898910810373336956926517007111850585432719085208597881400095259026433680992226329600685321146987730681298822006419055761656659924731357581858056996927534560199473253210448819981517429878535123190228580224894915157514294937369912365117444920971084984751554815856593265746859918201930001352451923816713538331321928859771960306990999619860774886649423212661685738235605431077055004053361318767829107573343973383973548504474287401838755196183302104818877640949015065128362280860390989543056211936754410314991044946966137075966577635298428829972266605506929939732443322468538546713180278392720163404716567397947900043128683967015565779926529348444295220535208423504797939269429644512761452041840765155113494790529268143348614525674357160136333763955394603505035994874499014419009219136393260354940309756513862955289673065450183702857513645230989148973555784774301280520241337278489563028606843154223493894840392216920607183562732602392648432770879517531300496659652312387315301844952245850670451768834597432769772639534287560541008327312539656863136786764979074019842653270250902964418032370726332406343250959003713843641466310568127210754768681372864435374208074529046855290870915446274285332922204024644292402817137419583115577860678745824455717159028429076939223673016227079523629476833680960335630631047961165274656459452957825294996287205992638887122025485341720830358074004424036338387015911508256801638898015305136104212336003177748935870757107024942939999725265055521886399842617935924426539848132579078685417680363969547826334799544573112359256471924492444571486202524659685757947996301255279806822847933175819801104445305579336511975063337447349688455053760221405959717180046644898272920336281972383339254046361065897473746866015560923600548109648927271291923363545785506688471258028812483328813564127349765556589945851986170705086087311029464885200641044547003475279709632854659044104214073426149144254252129879400530229940609714147350347392934310245953044289943554201872087462762554316092796533212126095824400579698860528668748118280362919476231738148424361499626336466947235904378280548182772472205962686934713279608480250190104799254250134127536329062749834636956300923476423605984815055628354727764348422613845856756996661051857065227865090390502039771459920751746152874669382850391161986176360544824639239536210764659321106044084707802954206789149921520302916406967664751945684271183530058211144456057374540261017015251775367431819984422683883476469329328687530965906176814112152038974122894890592988563894459103059527014462914500968777908542183547311832794151386470367040458506979695035729801025435900150458041329258631838063211419705245985084629818704964370143389586407056866607961084745476279728618383333579976526880103800299869776955232454026464375691336015104469712732846197296279598516321096160344370293821224149312750188904643197867458673408826475768383295806286289921540698912524296540866711488952491187418133627882602733979480636014775658366190047258202271259919257636681731602844286867817109499244450837767117151704087503195971022192922882926451229587517744734974711070068818640542248532821099610479299820137159549646584462138296695588572963843805238688962295802787535975168553115939918545781328607976106449454034439888297540423223740350283264616605656825402911707068529480318457029652399193564117857517555258515603189970304207117232173639962356535217968977601853727417010450853747958346595889355337197035021370837700153641669315325222964414440931813529548791969146182405431114263283627628865137999911182700500014107033807884888464626240346395696043997542271839644996918555405281600480165487383549418133241297287823791896966816862322121605067457000686665430895713221523294556073503713558531723591495583851540254011390398552399569431530202448379341161901305876939259921197428047537035284939229691976701814090184685650037168883221894228444448458496135037817265379293856006356360202887343997574947823275612372548657592215005086917471193783471653335658808265032226847357947239127225536097726496145046128897855566550303236870372075958620989882481691117057927104708273769926025546255870320066256801890222736047559583170778949720342380473667038046302681978197767285538185998655102313637516743314869520542860149341496614379484768303608574369489199616739818465037834233136647452036829023441163004711928885470541297594013729941887409983861960818640919037210794263802556246415836992214420691846332149183639878362165043209441075082142235682791303026283320590541559225013189224300014480743500948961235043015788142746363686006373801667479067705782358963778396186853373967005721369409376907609111545864357383644056796169153745198569724684931531853664039075160269228922398899464261032881104351901701965576811034952986825902706730801785786112867432672132758587396251525579229211217751737313119345830106543397200125675340350930482129604108389402905205303248320300448683590222098935959449583816598315017824687239990437087519141845594436673845371016459239790768125205222053590523988146382121316980121448576450666205798635606645416812154034730382682829376848492878628353485664953632536313939623592974859841563920956804816436132469430709370121886204034052451691559158166384730136147433588670077272524086858564332362079076284698766384267369733018609966131012152517772022791459134548545284227391986975129670534877513789637520143666208642137425602509318996344718661669326394859464874657865141599673680556424323629679356979497753590104962009083392800767588001815919371650029046996110803115575031630693053743546133494538033021291448684709472467826369836877631352718786329937484762263455098450062468798968211549360907887151422056317753528849568939286528553345967124138809847241087964477418797653556322587433264440202395542895999341749272400572348326920149563791442103516795343612620244621739286373271799311620911583784010881983975656371117471971679573354923169596208715215330802253506779944995136337738781152078852077166735627374333128150097874348567269511795746622764416489350295587886623356370653652203089662383149908490883714313934025687324691486674046934717556396102935426516746149888979080995581024571478448182677631308471225347521821519940415758208949043197657350818916722972056273649169336196342488987548503243982127941231308024457736752852286609580493310467553709006345039834675347238830404147283017680231821859200844798446444170563752334714071727231109501332032407233911799335424566825377929546885868416047293036762546433703670196343038878125538418393442668257372352274588030693034625105939839267153499515863295020721633665252483812906365849643909943665163203838052411474121973330568380601965529087655328597017243738007043935707932514085062116992419984261558353059158237400667618304543252231576497645920813423613879898256901064380679937858425913766263126771029156965464314062138803089315351275943761959411788951717954594142296729399978908007397065605199597517888236867315788390303045417355091267247090847480773782659734412041520835184470903734368219743436252655655623416332039909974905181718321382567397062255825413750906392363586770766741058424980516171234628564028323133101965473167605554770480705627860977158588319509882873220223762551125906889188359642737837325161808625030363128618675061340497550190851718118402376406357292568404460351703614451339670249578370323715158635848320737427487777461406350944197982624429122208015956243885485860378975969786979541156128270248123246081329602154736552896435665485448032877493919361571182197135478142163950394563524718442454038080263527203318207835217710087905049237622855151995129759042724569409607186911790361355815281555211789769420717939345151997491296615888051783090601880245846084760154887555976971155936000942895056069531208946966660832931295945522195266323486305823687032546957583814689578709978904327546225862456758376029390013158175944920482020729266540675441886500945648203455792468278054328805388762046287105656992261584514779719909929958648947842563480587071276767314581761193726555645357812052227088318794433758369683342893040699762982911877230748047641441379716623049794372964203197815751555737329997897311274624086839348789919704756597672747933007326970559805414948330412491370080976797710742793297369345319382015296932440722854812429263680633308967231224393411392017121518072074926686777548678958156014734564551893970529236384977262893563392101461403987054325578186152841726778704422313773171055301190902502021257576350439657978232099204593942172056357228451520603631944834657169476393337017184910018155296253956651499244862525484596584677600144819747440497074078066582760551233500012065427285214967345006243261425515236734733424770161436994748882761234228264838600949986170591832009811412721216503000838501484769425821684682815237702384717413714406755243492452949661890910649307528369678574570551069285858118003049859764952027452143634029960778883412842126843985405593417630450095790453285282371556682283877364471156491924472006259479744299066639393890415439690436328860846735926225539718643277938581809637509944114068244687563344620860266874642893372526692908184381045940042921080972294257934488532703015497769393522229659834807247059366861962785842323264520987657678513883484984935268002837080322562980168803068642322989755107293071128602232213261380457993775379620085764820498761599851267415507286372972442275385178414098675310241030999526779188813710926161099746620123064131673904748859032760972780734272523435631408163582658556845666293704174483497197148118603920281639077666738295438376785777374209393967250091872653055037884065723013094234358644551044073248624988720770968789179581784021131358838697196354187505770735621279446013469163035470272861097091793030841932622935680364331381594705434049910188284322139397370477437517260077904206186921804463868884255173474320658984544535015161453139412492896167595675283614929774385151650442422548934257533081645080222983246776844486235968642482941138949491302274319676130166107582226779544763015878421232066399733197430005370121558336021399890938942763960268175508694273172817568670783097682719610791790800374585267943864345396567111491937451453542930030827313282901900915364682169879830837964548390802110031579062117609112661951503849812474443268752209569989467662874770391180689851097199639626877081375359792083318431506055602245532476806629546661741227339474388033429241843184549137614101521099475994496644206277111866828151831571521605674009339160223704329204758556971491685002723318541905266126806925383716326755335073301071414697634613252751000603345664766348675107869037704717906474985457921021982052650904171032326046017533127458127206097508438548002955249494959423097794209538617153254480689711581213385210355267212698656838567599537975659233696309785861628611277821106521938384647030311015426714381233344313186181833448634181870863309559855991130783856017352600458636662005006704650845764586723001025688304915722214372963527177448286430332210787744834979515189548887467837039855917680111519811502047187808864838115622655860450157575473608981540324906944502691554384580907866897798106796739629523121875697746489782456228514937063590831736734439785128191568636281823076148077426852199284338312441538948194405824305886365938917502014308124356244717410595142376758942687846840072028742309979929323524864863333161712246181625828269682396632893073250588442373336301368852260933393716168473634261224593522953333072545474044361597891205719980844299101546200134835104491000121749241585702105064956666933306186922596632431727330043846588819845887896172824367422857872681153844519768582361891044367250367647856881478228383261586574164971550808355681187882526643150558350782647820968734164290385162040344756111222513081075436301068161116569414617963472178037691793228949920613659683517135908669151044980648232673583475830065388852148980006918482201214054236363335187483160272400157987774289839384578518971838634115207425725232874442225631840151442189462363903166110253239650664106937536624244963188415243668561199646532792890008770241409650374955967605196551752007164376623143906907183806838603441761492484547495788660815636419472925041661961151418560515036231260971383159593414887059501706488803349597501142409986747967547267519025194572011386591555520585469999099416572786775626338346154068058029840375489255813218235868403690167205514313642076676431835217533073195696827587316631009991572975136804532400650048579609638144383211728353812672065154366311226209593973271345193065166049392123734859815697169210641505411211324942518272127077366733007652755767640065888375287844161229853049145336420705582609046883066524012723473137850120828133255417692890486187909067286577984290700850880838365936895800384262846777317499649755169237344775826751275078338410146392743715605126954719057434805368147830432514703739180385607620524827320767670965148819520994383881216430712125903060375582325336590622871965266566652596436174149036801311864454780194917499182634915553872327886797225290904610409223854661556427404431072552387964798942894469825977673500223859838731547536347849755907913606051332088349285938718386421113794278964180130377715218994814636278070468448273302294064445387269847385743938722239707549097033187276134907665163789925372568894823216766552024262983292672119151417370095402699684521585528119300087750183721926956944688582031547858018883355003831230404789276105097021453335367847413774682785175715735484526672065197342686019729084043993425196684059653695493794916459917354098275441196408498322052106244235628856427031868989357106719962115249355512679064721872855529888693106726823479580248360001629936458751639198816691557378289210631095257417169358506692188592168658709944968938871470759891387309976144616648270169268158659285234126176737092009548400300648834936355030174877717516463417953888803458639640756042771254232684093856206762671028184200205200474452325814292221800367914793762631882648066727759720225414087017526748316944342963160701935871440616639433764687276061967179000774172597407753742841998669188137273594444007245185159668201085949813081882571775327344778548956021530735844384015935131927687128775191159467130619105696207315731535549785081195009950230517401517408529160942729786152739684732349229878778345752096034620426068731008787136875803084005675956347086542353561723285955328808380077299274263529539855137319957194846622607587528513184314130444622259143119118388592455697484410167103983846891382750621386088631028873163890967823568919710512991181719438116432152105936645972179179606477821916495867252146878047721652220559529753187662724662705185413689647429163765316896045270608784286531427384121745372068166028842263789577187341763749011543866927205869145888286279173261130185110701124349749492031425364550351771991635689999261308894804216767311672671763443403255287511073154198337316625300159908749997974495815542328294875232194456728261308263635066275905007208403626787206073603183341833193742308808518104648212167853633314407101329683695224893232512045627420337588744298829674325086367922859298527975005305305135001421602402137866745487236148502604349108490613036770311621246506826299273473897193550440666805656050352707754452369761907523065895111201650824827757394698930731988675051368221311989376105323014419693454509245369361282352858575527825299331111132426081281909800748926940723075113101837640087677370897361948477112204435634060688047965847835182573014043354062536212651629057544769726921645912793966850744523810751917523235392101616826304130299637214700463981184047909198732285275329492544996083221151249682349838561956576056410573822852342749319101731835651169299526121420134729640404791115626711046254878726719816274418525042029025498350630580884797105001653268651710604668443967803955304779162695207457980797141338255584500048961956370544861177443991601022083070096105411800905746065578286683851954236577748692752189306452285132486719366342216344080485639676581465821033303537710634203776408258199342928595728486082563242743528835650398917842475660503989047356092875171473742510367906005335764353160179010543221882315375397076837298291502447504392462505866114634950079140385955511458039562614776634219865962570213333267423659224347941300826420035929376944590547901160467195258217944719782995318723320858910263089095809538256713846508983078957028803657026723269838219063405866744021745178680533533972141479463971921623093432968615271595705288222543200029487086206190469606295222210381238528092935609015096455334436692222302519158861843174702269545488760466734924583690493056729252075131818749628728933707112172732357495086736933061042627447377464692545239306179983565944449610405521813011144359442694414188370569645676194728182916587795058005351784766782582979773777688147020954709237875323900842710323793180291598460736152365584376290373499988227322405962209185764731100604981572845941996915692328544438182224189871156878571171581753471221704483379964447237538367212612544561014526058947728136159968036145928646261344768946890221413025308237118731760242773786791872170560637122393436891904957085580986710740713139028665902002045464385899345389519355404411736973766167351863155748898111620964789233077571089587224000736569556207154470506386507828021479531657312103933446630177919971053816093428784913992595206086244162903964773777975114040429510419770547614198726782743698627171164179222439509877608119230408315603087104488117312640903002987560249110202819150322908409122980405189041848925630111696194825318775163205207780908248564445776844002993810893663346292422261795189588010245441646703018969186524454737404964536153095989141410356937594897535029062664454934824287492326545586780752693004345778360528623647985383897806491384537768397361967253829276496563611858688445216336735422996969180411655624587908543883034762550303204146944375789292461973998187970048655183049727501641604468597721798330765898751971555120098766317846514249624181215327927326128800510979384492325650468198978174386681738906994688839279827989282978013848965723345407458794049564022298266864243994571451346452287373190323369678317274389101445972540962513173980212490979488047809251153011232393392789267783523093494943360193032650388504599841706360577666595983148944661983932223393191099807385936434626764565254548786704227531279813328518146957704069886621780905161472394920539603854782994863008856422338027709761943646288995854593856556353971761601566420226599133937362022854928791577188907152043010230209451235939105773536498950193666697562476109978393952987175959334402387230241865262436628219015456712225873440121911733556568467804536591575698880851441086837416516831068193151598416217910400418838516919513288329808067367300490716011923625886849642460715522570513945640087263086752791242729019999274228859772540449191298701626393850897114798952819328972024612272248697761251635474326765912704620766214425725125086511922489254921854198693280801741787359149498778551918492045486970915637923028526287098375365665598137633084939073865812396803557447857435545030851629680307889807522623509167030806620154870021592700936943814591081500954791568668516156585124285430887187406705459356317472189845711694861297936935652333974795006189558064861007310520905715499973970453577556128308326597896316638520437731883826345103058862413279152116896762158406663043065796391767005237914637548702268490940764349542983816320853212462241797998059611241670279445574660881579529853201056843580136763574236274352435946736980733352657177590646101482590201036121682515791604749876654391190391786134149976327815158929077886913040692850870714610516166915083401621297416169666546694233338510672958075420151979629547992317498897903758202960919652893226975495318616667249770709597813391265271389140194192922959270752668454339012078476058456947603295308350729393109577310223081426044799024424734742141885423267961823701548242401122552287248126873992287807788673689253240360915505480048362031788826028782851224514394765289002946815901591228204408277680884630407659503119157102788321893568920251069104413776065002705613820753605543732883313263333929895398332550813927680627910849659866659198889428410697060958231707019166208213358334114804622455201844330209617489293514877715252634673948606168258144553431588076041020231078604686902013486187925289542279481862638236583682775153809588060358881705357118734636751009325728438262285465516751499584342177039712907253096199714540715969620737686665779613686974800766170102760231333536559963412000200571394839968905653531993944663697638227224767152951771230630940099367163223752609731681296062386535051627345113461324098036077183067626360071045124861382550260469901373865872294093090299800482190189852871730195628625147902475436895637261868613933029493879449904201955146561896422656009819521112709476034194623025949496878593284175074737908724135522864608388902122112720923500971484530273244826148386887096480848233172097164143007024707185537143785665839934564922975801427207117826084515624657465975015114497278526152361200104151849328333403959549776775260721579104940183929166228375202838724777523181590021266486509427034711195701931733728252714505199806461165801434087375680070650144707639898068144233139763466725958991323769588251502770187111864570901961764235912580799494172553414824064277879815133073356856513900285024626024841933462664358297583653464683545018197824706036529632989523617729260794172335506166335570428632053306942752844730742373856483456384259153160965533148083781724626108146866144327552183053216482283715682298077157307266507329206729223359541876402559348796513281366347339093279479045647843556830471873292483359610089284630331743500791451092575342243434318817442981931271186726885596520835939543777045733137343228450907115038262050814800411426853390616021492215179706441690462725974725144820136396627178945831310475814715824064512540206240367017081957427718754063419901440794547617775318530955491719873091614650135147088161347830933020005812066449252751841951503156994965649116741098829422854343706899888067046610440023224130919092441587153768570848711564416201518642420303577469469757570432106020387486290285991288202978909054848096745214603995743878030306408791267024154549528403520423936403786535712566218942584822251982486320749840801628632077348046708228025832509289738874445286158432451634542638031652469896350675903612159953718402420208403290777367161258168327737151547925438702214746650966748826907107434344837435979979554485068947553354477400287242086492855206693217205304985464253657666559102186681864502032224329845581429933335723113389544300657122445138262435663313298209588632798703372503453338970123398510045316644318101475547480864346096417724953680730796702631557108066894212327866270817043900051130274814869952607845883034815159747239955405148902868958041238476113388609711470567297145559832341790783766125525789521452405515642087176528350654569296688241664188277767088622163613152870323897462862626753017472290405402276892560187686766843514215522581776255545556730510638765732916836968360252739719372164269282291344028617101382340267870298097513812208652095581135236172483248063443891907621239739892589955661577999293250601386808366786107976019473812113930365236266642211275468359126443271414099018901126729034717433707366109551973482304565271742559432241217000936260177235779337009170316583336221588743435418626900115271499406075059148873083245664826712708457659203700942250403660307665413108816452638335547098867127401241007361673077213478759797413652745371331736380449813973027188424969501767645815473708266196312735483759677359754269701360861595064461970706243295949131257670938448339364441743567109901131965642519538974692918236069138193619349033609318085255843167149696305804691757029528538924828979423091601872335645596829100703695900009923684656975748380730490935222525889413204433871815616584641015989288328709735583428510473342497459819575761013559357099501641397871642230365099960804804658010658504229650370183458936851906675395996204476156536241080816759157137689497173217841652749807904109828813422893720217046450002431267568073237717030535622421669122711412158952206717904396231731816465314110284438211695896525260504887381048145016441886202795155979268877793468927084499376184844406231565613631303884798819155161178064568892780523767925321480003095264279734459602508289450224111176829227773076198359402387110352256654607204009211473980844801231533848816728890095432003164655335997719222194692785965726179299893525891153311601731896156384817857516322670453912164841206794912632304717466632275248616331873613208381512292463549480110702039985798745337499503478078352558105405445879093392281402716966064957396594065470086057349914189247744653218461634648091072511645645386325232660126128951219271141622243013901507400411840631034026860644574300440406717505312938125710024177660582151119587676449076405938977378529690957273089481397402469294398351989647238788634182171988029561262437141805919834719268150683414888260743774032819309467888433010953850526711968651249829048010185835584759775329313199571670704374445694652376570014832849774183085131247497974794854617212589907602998194709288636532429399047087928967478983739288134353873122896023115354776271180779014025446017257141976378313833223394373834281657709929632720751248526697346754277909123603805766123014564297759835479001332393155713353308928247354385086492791490169484289061657641281554851472620420142494238648621810352990376284613717276416189806443801425823967905494260877210103112374629766974403642790235279634137070217827178290491727606071915902366211504284347807061009844612738791549691346427696023552060154447328426443489839230024324727292807422132040185564997584049340573205097990919000561621928537786140949120969613612519138220944203232708370858365443999422010427259666501885115004588225656384329490849889548544119692407679990758147574041140451410289366682737382246251933792560402190550695717825929236489773078485642663370193597767394800408514333156842753609134212562932235860201259546867399901379622105076689406374456346638902812983842030002280367105447854908658158707391134580627444499309992177836445420100450178644043109802316421273613491110778730578615679911243079386317270310739679149765014574363235082156079756892205425360295030192595084202564841235788686478746018342843715886309151902739281554845177159402904544271741949035100347133798623824139781412598153214987973692510247119288681109612491245612038643314245607549054160741500839307419057960890348626280861811786142806810561328166513218157377310556463788600806380933252571909675236760117716681620657541059804205774270691525630959333736995788187433992044211810894308067522869432219094527015577938948724602410569672647555096762410363563227637844527408695459963894671118628869826622933982935404269992254764847161112684407135814861203689586841948271608776891157769469750660503904582015648235684655241274349001972422865081822033860774053600451628175027523031987822797338957528075388110881163568942161041409353472799055940601182772457954994292852368753669154082298992992882540254481400013502559351549563442783343671260750984821247054672840819428762873883848518037811196676287826527356819795363913299522071771338053307692651177982547368130910419328670477003679999800381060359099533925644765325193962645050387041945341752154563464433869786898317101575024351808754277314812820468923574403231572510361921981833081614470275893037776541631560277478351984882332014114072181670626891707111560832492755535105556718033479778926253078010750184164444302607745927519030831551014087353581561395653925177371260869670553161029894106729273008441192262647191444633304771428434545761634058316038820790579957379046884933980593974319927296996152820468087989670207892989967708986468220569764068118013869092339086009688380237060267147502712808802186318747527462215105909701627470739938845028974541756812445413379551160209023281474915451053675200802341759950097927987835557995849638961990080188052048128332364056830646949876630838914737359968924093314735504322725664193740308618192305571047095803283760992998202438628570645078358848986715721422478145323782413018368227307197780112689134752573795521871954861612256188585392267756700158350701792546150070132296141063620867255226547766731034523428233429337086879890931780650509265485895298649656177346240128666813672498377252013890115260386115714544821750464259438630320313882036325458182334301976021822256972003731510453416003806812874208840351957889900931946295030612702694758881106027678319543248246450533133779956623686448386585773727384456852023902802453842473750914868264512228839848870825128292347644155029659739390326854965317751116552796976169398640353561901498393051486803562210032995010337725029657301424860157840798305620389625792151534537934244776020508351596653055183745138379897612781331902379466375410429262909419805285084686413903396729614020835095805705484421131908569287864511144736882782542355760576141610228745728446314137551484155866333637742091668795267410426931004298227917570041037255040491882684121668222301912233873569485505259771615369441785188782627482561695537766360837677797600334857627143562333867296045600606193987269686352186417624321463439771523138052978583159288476318600637646068095327519728148427370684099669308612542163577492834477464451644347919552545221889951662280207116582267318131158254394073256717504536960068837943139543842214840782697185613577932634457467497412801988402565152559296556804564409143986764354618121777562222986252659666849593536566644110222710985796316486100841449455080108477504947908089521467087652058827628269188504552703505533551250851122035674163641673545432427994424330070912041877477675691814560101207102827025037487583263069537906370403421306037614607162895017374813521947623694591589444622702514256681082380484436668544271328191141662757634379489738306183745921770624778689440604180794417678037393453694484893832143400438682177683139210015973349113790864751248427103821442704843059508521534425604587368695991571126675650785569734139791342753469626083987150848120838729880891843355508787893653981886578501736427952479089619277081118178837562453518522097130592996842891207667057182101516318694569610984505889940299179732184874832933243239961080562687348352919590777142940108598325398726824044280954911984102827679437558839891848934166424515431005009958400355562215771440450785503247413608061314091040386632882259646637023151495059736154691236004215903005733321817009972555165744538065142510765015437059903222202891722227235992499316103524431331371576962713711783489441184766526515294606631105321414911908603324517181728221160468112460890895727539793572026346086627074510437241842709061184324620794224667555216390797872103252035935811024309269198669885015963410417575315739031281184192704521822598030561434771212067167617295627037883256881101708024611967058616709302824191733359196800949085167353791825184421272721098908813453452452567546068022610058193542686862839976953934981325436770258330588983606959802321529236534624856491803939270920976065731726943076353355755303725422361992324431473964969562055585378041295304904379222172499014546201659767610672087056228636735099084040220532729291089521695644641647292998351379125318012671870253921327710328209387013760584295105534178525234947491216959351138302284486196461566867597786979796186372818393676592077248270350538264783051474779212601444315673524236167689883915513272927627833353437157265745404567911083847649944093513143341684788085842689985777074394153188198902435032236383269637629700400945581043970308255250168997076682868004807950421849830972169021167237748910159477434719733343920623951011669751831112275499760713429888499486832137635104481439307498060946801107719463709788600040056972304825116478349154552135174804474097626488643526260901557994499353965698430655342681003479377079714765385304132618754355486781606226476143366188167676520267306307186221053257565217241218861181262503762679358115916422985514590010884401086301937633350334697658681643152607801766208964328859018085295670444849603794067750142149175167951867777371807894701044358723227774486885928506298998040546875829902820966244948809446833612157769188502736480211855905222447257021407597478513728943815233881124195900221087456344965928519405823887848621920591543238959788846235710207074217692148505680672528738427277408784972898033276596655678599274928796183799477242666494813498891304932743411169847311063719559073362868378948587031779737925931163361844817418777696423847682825875839731366894652911249652188101346085303229550200157036069277828919909967089506650778448299842466511680315945565199296854810263492705413404839646621309970822194652077637787190189593888170761046842798427469751845261115156258636538115199788235294993410079059610303614251531836678879180277000026522661776008909549418749797469579888243887648572533063196169385166247974807526349192543579443173978094969574005965981851345578936280649153071797849443944832145338262375309855906764347903064232960266386156045022277999524388101212903859042984370206183565419752773166472881461158737562243145851791268968009182854308745841897585167145038330862251283668818656412527082194322737233911592718043661016314381333595147626509416991974906305883551231202380313173069707069134774657894311085409102764242486698615462312081651577384886429229257923623998539838976799277671552607219805720022138118243259345675517417928468138879510707376728831102038185092323158005890647626919433094706863307497959452190179273336598877389163381530269825702430272161520579727573323271731272613114769568819095230633740774760059439169748556532611419948662070476456649103879994962269760034630300581921895827777134902946639631187536329384272959073660591199079789882323011936968198347102732027835326655692332111873752666888814247059397821455186258763011616277761569645016889513379521611627682549508569637041824706124382408171896298461108969124523828854393043818210753101108933552186414810769774510252244658708441978130170211482314586985841950050923012592788118226616852184088822156301592788659160744558056399678036745077019819964467762290123996717766787519181030216788037910065968911385510542301868650584515989676630862917992442492471101448502460660266492945557958317709768810002387172454215794507198232060965907233402089314328059591207295576062387026360847804036501837558744332250605371789813289844188657400480849452890608828982606770278664835545473597387019243689339218260290518286942467134817044199692362000003743214384330519667595579544315328400799717442371861906263502631895444163699170422226219053760973269332541013381263526429342774313096454625407608372719380404948679700530472371115234613535125385473308236301310425161121969835056733449317283771230056622928587690053304700849366358256511701195634855793043218579013509074083662129518545801731284999237753606907415261908977223365045233605720979277953532677603812546495962942179993058265963953789416869819123290249615220631670524579749546158456635638681287568631736012219947426577342045324784840703219949850282095039084467776670926128078939277733902693957207334590677169139872158740323602487215721978301040306032867163736809683096062505012520530437362289846240272509707363514931765066244990334752584047515520800877268871344084771175545561207264651308744597940088133054072938615767805631368439365116107962180510996289809937871941579409328164432667412891699438324813808892587458583005540214071582621478277455310112151267215658100428033865924397228732007332881073222177376363423845286710899544039636045068930266848939742845838423254072811276860789531218755576969463909954890407377913789845783076762174182612202276874443173203069135793104424685961480403612730324439666451692926502791470390274561807434189005892451417532952720375204867557376408905972354304191352771317640835447124245001070412544596794188600888560920321173754378968833414394921955853843909148921410806299256116040429891529337991258454461412941531097822245864419954018447813568446278023814305242357763973279408912544518934288767728363269156217959497460587569479370255513334446149410303053332484696614764761624828542483549713165577637721209879050153275252376361725989562143872845931777486097957672249212774348243768323597274472843652963622879501069241634866468371415542724010651449155060710912853812527348148762466186065308826894072490343194075682332154512693149429321294714704236029026756318353606359677443055826685261298395728528004675468121205489789341283251075702122403504192889567779134518820303279416566541107579020621316964023134053464975037655234210815332862742311637290007654083744189150668676639239927710641644290244900836282731825564752200882035624269676739110137815328630771514001269645666526387020986658773997478317661465623259743114201148990313953533910621084346975200686345959702142714673696830576294601977603133464467583604817286351907953931322840736255950970391114468554019920760272124050124488780604315506805396546240242774972688936912102047537559070649357451107614502239475317835756389404247735790289723991624608763669300994940223739085036763280159140325118077316770157086440798816545948950953511686864600815703796840513189903409606302969268757754682579220597189775035573725095886356169413535550373287396034899726596903898219803597825394640200380116257645042585846029005564850736534918821584876640978681009770009658969383584327052596955650146800936401521465057106294976376693302578571533521597039994864982479374684973259308078088730643696966794950050782646682592735641001290471782301818931341008339107718891489021714584161066457190992960249080565402531073573506044065934260456886668161639974290439379515332618133173483802698294744599221173053526213151847524543832769400102221253132984818561507494361203225655460499882925376334348626985738360678176959934606032511810668062035962357654403873429135367023878546668997306360668602534063255947908618498697351788547645323103497951231585774487792158679142729930618044887817377371287100579928236912328532949307271335861979706948430928035350551398143193753940176522689423668185973355861041565925644572304510379825419509479316400651424799702974598738704233822401864436724938519638035202158435048198251318854679391563344714211654298798203412970273663135272768777456596985726286472998039481761308944982057829092383500290200072031569744936253613320864300297084052087889087192856311575131005854043553226738736223491912989308358676810107027434927473128959760730284470369021135757789761395496169184525009263383664234373721097526374689766332142304427163541796338938494825364546119421652096123776730283242329686314457526787203308230334426406576994569804770112429311427211872373671554881437249831736608969014825318861176008628171503504904050569706902057452433458188291969099092066493754480037655935953953291553236323162660231272892161133473035832918395151345944257452148883237815360285085663864643708403725507920302190373891852284693817807295896708299649242049360641868104946519602607770968310099294203097757626875967512459173874756595713414644801879982503552758117045981769345779030269329856238009648644410585045915211268225199597436758573052342504181359492084986915086759666680016065227480324873380392162673071889772472226414711250811609759193462835175892491996657711113672084880142696079921563057433172384526614082607470447983008018566718235399445271158828128813804258878401899309862834248387708043213649497348226860692739098206906409547291133664374530527883978010340462312320281974201591777986207853122453528426273572597117784883315682815882985449570536170910401829193423192385020089438576975720279883310725821906890909634540057472096416358422120957041072923670037174023819846518500385172762668864139048395077455798179094144611484518759428794257541501012421106863160408938143804713971066962764845219253702105797136210083773774752035353696221301761579177685879895333976775693430319757810789301688884079225224460853158297877196834930214269417814918694514402521065152446680882574155239969836265574087423373044223524610267723960023483941830381700494577534413283205942042831405919135457202008167180326717364950625763772859964789101579205626175815331283428576221954100691409849413619283471797062479430395964791622157168457380450572340609538853315639640234736725493445764050301252880138375739758059909315111983537849121680762768271395936851172333436593420416679087577429230112611328664796702876925657564912230990350381104184675654990541732020525601767510833633298484603053868531138845735705631828967648642075739046196433148426021172517269779635761458348818795909926390140165690910655496846713279823825484897049422292391096732871884240563041286404990497022416613393306190943121765697942300705456263971833845683172844306553092650883176243500682008823395513671607385857987202052229532265019634480557703070710970358913940294750574824717793727538334668548051244815120051838270415392717893778159277495007919876532501160752415319619176007534465987946428375202949406999554454537782763235818063937859163366181682335911917465684126441829213163756734740989134575469143567616357132179924753553215414175258694904323643447134515844513460672586486168271689732721576247026560298725664151821530843911339195984599808945113640555202165646006825195947157763310707625499423626940979361630505370914836186126461225568906122453266584369904031293518901420920842776956709959076119443498779723403447896535066642348093606313477324444504257502425312678625164609083548639668893768741036987949846214643015779518673718664651907588529422824930433066209015651324260151651933665646450695707703943379510166693879205586959713796132012155725940507126159643969290272737203716568060516357675743011525826611418616280658753248232229009704877789038117754492410688181632073930595081231559786545039069378425094392188513194522265771597256276593716224634444051132267772506624193534596515025042130664264073771478245069683496998582037451661078844407356256045797401871448709107295814748991396548518221979629076505851718770698825897585311699152881301826511913844639575738260457194493590679701921021137438074734205658129512176432971050505137288885309408043362219874320231930005647177159564544488450436923152533360363026573822287333060298283832018413710673293922984779863714774772589089771822388946271465877502337239605107874719755527272780392091311514431924463761665576639534022557942418870475239342812364215003703799875198383471903953320214628971895097858314659412371065158935160005638891568346349035903708944852843241541337199468883408197674664973820369725616494407495406156402466663919178155099834004116159097640628493336402369263232704337349459907458585577201396626840901328729296646726978786622356182518970555757122061252286690431526418074704095125657349096702282947190258536545200707504255256995083465838420787444365498328198669620918108625636798015293346890775443587557930069682580903704430881219128829287429349236573832121780626699932443892991010783477605790659419048890037867051497068023033132606811596630596629491281058348947239219908187122055073749776108808978902252936376554811533702351880209622875893425750455420525784603899611977027909304980740018256594073994068956477720230202595051499073080455378123375777337251593130885107032881690212353665829982859367267180923879122432105540456262080227452261896534950215978353398861348243892290654792405372348834080511896136218165460226256252495739841937669168308143870742790373384485087458912861061753344287101904658333472452738908230780392767433645786001097862943251812610118264262102920077056610228412502573143539358133488726073845890007192381692020555228250035216413020468954202849698661509321493469809232327394397571351475786810393004919546638831060663471920974174206286599207878626305072095893940754423081044779237329550158537738880117549201764232612618525603484751590796348298378530455465973942925244118530850492684953637840569193384271517026783181206152596851021888988372940220712061725972386370810351427479814667604239704117845340283863858280290971470982952831360026219314325020344276076461267873244454637378320899261205401102680141525183885600395594720518849438842856629700521350613399916711588711676668174808644553806069471255045454475450433933653025013586973714507319706209125357353755134096423787108323019247540234381426527345553772712017933996954743399237767285846146911680096850658781389588015933532125923067415464842406397189997967739318014843360443466705864451935720924070175554975687201784262029812646628914904810060949866931876125740850526773514599203196530627571223328972376043581198567280386069982562090957426272814590177274607554588934320981108815392816475930574482478820138472731649483578474710167493312338502318219879344211651896360384529436734365633310145971184961158243044472445076244425173220162083267522518494490102031036542181487214267092037846875074217975394103948539878091597006073749269001189010817263719239180722180232321080810345517829947927667175766702925642308367785966038164106876974433989506919072986614815831998264887443022191713656113254978792269391231011725380345799109167242714474363811608994937719067358214208516247345026469618201624548164587429539361601084117949472999880867101612402102555966414262503345201185833378968480564591544491631852607327954698178641940658153416357602999839626006569797466661297099552043303290733956137303248685565780122535966039990174705802388773214878673971862625653498475803062243029699628558018022091093729533006629205973267057486388526142971543131802751264016127161347271026106302342476646476378318239771408880673654699449958173120688223228068047545770945164604160744833379608788305256222864087636132916997626935761942229153198676289672517142262833470920816711749277959063705125575512041885006029439044782980348135249189789857525165133912314948998751240641667109986570326706776432254830574964684965694866321539297947955074410392120609706871685123927469242989373067662321922538394501766482637870803601913582617115963640025279837224403473205785816767374722066267065197812874686482073334211959498673227952563375630003072216798138769363584375043943021680012444718903120203206190530887501710276963584506771620582744205078635283833496278049641027381096235590770141423323655832573762777825853517547529907892159876013779635559924811660976737301454407405169991556032862744101731502999145799733024229919428519870926888112549437354893426108690483331414419096145817200913732193462926801235224699372147201349440747048841416965712152834697487988307743627858174203232683443014085437088077666456413831742684971008669717132343134827868177129951947967631265384022258856738724413715093873616776058518928504935219154842473396598251668949096915756947689679687386562506920580840374594227851746640100339047327431960600879273692150505119582464584593961290738175267323494372827153300429341463419379551196027046311456425962344741506594847648062011374769268305519783837101547010089245408027206215113309086581527584864780328580893292614364204385985303329426601179266421936398897356523416038882347516409292159320491361047003963365625095558943399502632857125677138847990227960162741043189544754085495838667296832074083142980573220991937645272275888539505597624788272719261344338085867006613357705929093288204422726921876346929772023281982969284319454553148728993535178674415862737557233544534505445859758053086170819421871172800589222646945587986250363525659575558917015843975065025748766321530273551466799634285889269979168258114985649886154868797861625541576208228034360772626039502998823655313864315730900336617261341825978133455300304836914909307349829047779718608652778225010436702622225598739288961122530230996528055453065830867360505424531883916944895699598652871127089086873033858494543824827134699030617940503967366050494305851283793525791837617049621623561075126431600012296163974003223483674458368492924399237801279119732463451198066448115940608601600591743034428071952807817386782820697358050205348583322768970745357461067546202683953177741742880512649317311837158010110943377204867358879822624263619449363156808247638455493803565382605922173568596502051034994611523587430887118457924483613095038863088647363967235662505239693567798397520459955668843434648752931211093763421301206713216333702486779238371993009189348512958807547319778419229488518203521259706977760582503603050991866947001635534650182317840512829655511766959308924899999991681083706439503399230383176132185548470849383767159900895888498643404496420034612316939007640603284476853832071393932365815515165452013490482124765890154174814286979610635110948415433167305680101831421124041355535234304176903527246046049857219306947802355846300880705773506946645862877538295277637385073409914855379793847966225678904276742393112695865764740225012833407512221306602971950326612633251036376782594955305470079990472413647349024060801032717102428871723254456469548988806336002647142351250939133713516781301855818337832365536166587482021698027840002851585871462612238206752662051477341298683050478990388061016041754172584304394946283646877910364633882039885265230562226543169458861835887522691036060646109313977127793073650838973570828709137664842959496263661865239250605831549787652489308649106841064075415911224749777163019205836525701655383606227468960690745132543702778084806138238129961900566529502917148522379369423711878504403359928195857810325800670685455019577468721897689943387266259153148377055818803364777604557990362963321710818373388410217093024801483951586211427294352493358795025913035753069735184738248072580146894868317160700760120235888333612208361369327600630056122680528026138287428324801827868841906532331792895956976277642051560913536714523690318419731409812706344537981447537785304998143093018171696888970555979879273617296416392072593246800687523941364219277643137568377098574006939100145035065781044718115496819863684903152949967326088771097999706375097706956137116254750817427121935850449874423863880692889271389469982354586666524051330632492862827829708091566318438938770347728897585669490264016123979684325083283309032066349082305184224998124911615339183318980270776482639529792258629238938142794737018860042181927984843272597231947598285309836320544082103200147262946371259698991688895028998518384693515900620945187406158578130048378876189879550819613454117969100768931968093423076439627368852026548713473837330840858513072431304006113627880964138930771547016970064810356798834425812009226361166462844821698091283328852040682615259020992122477087294691855676110629889072264881115877733932272957136666640759350568118876902082858998082924847018516792969237911106834959984391358011395390218225193300287499721616926256312581644811834785889667804950040207649261111820228604119051332144732463612141630899462836253040343501874041269912147454230420935081114379076716030260097719037551467244842554220081585922889704513627252597607330626445252725989070621220205602163397499061464239594231207965952496684146182738930343881517378223313829900495526407131229971934975706438800768836662724861654052044584144414416804924505763335068233682609097745051591963000893738196153778572709771035194311550911655672766580975060372956684891499688740333106284119447603711277531161530185109103310900503897150038388857615564619897102486664119660682188975444932526090713678862647144371504538528938418814076236754578663418963736877081930984701471917160073238034966334935216921173536674166090176509407173316501969959250540733835033908556924581515920973933183274424385057404967629837126149183223026283704442989808615111820198782352693761185113206625596974620430871828637688370725072103872971632201598102404923116199145265207564599467586987629749661798062561385403575045866829718373476178637379010055134788511571152486273436650168578201667983760341454163864467639192044441181011199515532002485417963549840125214833292356807667441975453894088348865496095351855109659477207197516973370793004954272604863541749254301786587801119057423796412070917044036471512058873992670786493211831889580492382785534939867000482935157038511071861527228147667325649874740763296418166830502870005449475500549532260633880169733027485221212255263531312360161167100750386725684665499367146550568387102921972227307886934185442516015966973185637996812823098798377130357268431675548282039687370072215339341603181000715351902446229465682353989708963398509450995976418662075551851956851222006835472377938376836247724794991321941178041507825800637636164153907512401891321294498899991158471738064748271150673340696778758703053862243887373249273599296240822456892535616176717621518366409043912047960318184534870157840820566210177162116130646181331869141572001416960280510214781791042068468785954022196681365303770594245142246190324477823540369148521657466452184872419177970673345344887361908164505341008011697438933605830563085370720711731359675338341462834349276268030374045881610154863818090977655745308954828798902557570523711059880298980274536687747719390388662588605604748841081520993744241112782722109957902413637258170897211534162510909186904124879595234752951978902297746050881374470465552306543771757213360651467785308202783215405900974078424841621898099035950461218817750576002640057147895735849555893384748653539492379480374635695408458503896040071429572393663453434471652301035417076582041047456074559292254025158295931600940562278708766570138426481470326936212601542989154257632497801693747031526158015429535717266309145121517576475577442094482156939973988439896708126387318608854979565798052955752744336650191350079729531139949171278517157872036601200535673713557092292088318973239742158055519069737900169740992136310374339934979614611053386063693457421677759335155429442469867157873628485978545789108242398398791710179098282938848152698815005146840474090825147065319776262834646371381706892375717418590288880978258228611144408547202393670417777157600939389334113885225158359670031070203787621538629094771332075637360070387129449193760422431499270336638341499849318453226571192308514989139901253765846819940541414119242051381800169477487180580988955600098211589319091902086336390639186110953225307207008432044555434562646811404953861347350549755769299289420181232736414025548414570858678461366869778675158303983550123566041299099117148587479921665517752559431018778968492859165148332685253462744278556795870219098385525812753344584765579152587623243618367794671597962805957024086779987884852104743441204784389167578372304964850280589691997771612551474735243699240801867832258211746918367395611165189356719155151040760895925429699021826843142104443663446960500471933601041642935910820954572915549114297772847123807084410471713750894925111797597287692034655303182105044716960903166512423440850164745171299665047201053778416944470959068846779272118115613921110947944429942927494643801085919823084346181928538448573205110984611352008006162462897851015199833824164402207963770462936014881717002009483535702570100111713768062198799310461800169354729292882882369157260483640628206890920247275410749523099305680177695652635529212546877442154507116783261895674375926180182834268810269319052837569387408014097049975855440186683266255007260990786957754678697916953558420340845681998438895188913295345653201273250237603077826119170890440934127011122623297862231865914516268026586216310464574657040274035865165297980806456250030699446698943982363262877243183252820516447969520927145626386104277870132717415085373662371967022034210175134600536080445025808248417994658879427276119577610636224457727048303702392143926266574482629666784116187944154283367995648406334073671529666972073344580631244041737565269186719405365124643560139477193607164894587819309789383995941308999142675535661558510925945723324662659998523248105203633449693180214789367964077734069866940037879827950371224318953539501452510692226519602589029202099041915003596894369423497543027701427053459157825014317104011925599664802641415928770457707348725612536440998479827144904069597744206926918774514358181858518074054058170257734370220993416075308137139148597456995172060791140141422833060539563824734625441587550626907989881758026541342114353782955009816126454559706829932750994087006538356249613800371030898437556350951091328706374592012920403811012308911233914093668624340773629452601696178860872121651800593368912420664421732769360214417687269443214473290118178099181726743179620236861404577352728744601340914121325323514145963689788419467398814188187997246205333590560061061101741613062168365285727865056216338905076766247743442764182762537453649144204193410117831884504395109466592979171253304104721943089999949254899918520645738634984645029229215587965497795396049357342545143675147945127441296209563035012560394528590714621093685759671582912107078304155809268863150827952485981527897568104322157207929309859000642121237965917507886509935199882281388100273946966948430238639762495730272384710238902503663022385258323190089423149105315265016558288288057908614914768801042203104735934240388253073675958197854207140081814988743078226603902194952032053252044045218925587836446490302471775453207778457982383710384256402423999968021744486023153007365225275949091735853157741132527981541540698362508240738590717353453896210907627349717319585103942544596621988292405630248144324100599925499286066502559886775455573350078818088814897926916635049292879551617171724030542466782218931285362484922227116631482016667487100030088999991049319401497113506331986046235457263807788616405066802399442872586340961902986031790239919471328148674496673974274744321744766230096764522537878783398920936721116046373182156585121890722506811902037659218438554077264710910712116179602692685101551487087619344413586826098056900213215513348937477638259183234538793897701200677720919788100625415069969000703512358628166879727269018158219090057940142949680803751215311047981686182372343174282831785281309021117047228277488038104692958142701612172504851827049717527028065768606373729039952802280027634013807042242210705855095569546752513776286762039416449880367027877365393221981049019875126202462261971076027630267044577951980385557855250686095730775511322539102595979386604637562504410332567875837131353269408806838860312054595477368608416763244020698404572617983968252123791340472010995065499551870489226057431797370766495096291667582152411699683291381556675042998063723762711002187000175041626133587924956441237040287666158392223359264164334965617553190107851854743731194622445157026492201144849449203804067309812683389337731289196754438118128911591871300184990632525573861205909646673761534217805147934948523118853956491765986266992613825492604093058691600623331049581951782845605251250998665417584823941726799599737847282549151505545640865881270857860909625054423481912974405409562787924426256211694953515685865869262372919561702280034898920803792209201956660652606079702504024584890501056512300446780585373607893953646153647924662492647033934093810152447481432671229118734618472330092115842280372714413387679278246586435728625021089910943296121914414469540341360439166360125451396065361246143484178925512821439036965224466211639984483715944029479383736925549034948001475227606858639052957715656598225580263186337301642892102130455888906278249234677530218100585353774842761429993547310545907207831279709713236904230786574185098490458144069602643713194768776086319381105666195609082249498763195428995819545641737806076780485998142117935880780472112119417242181059575831319019627787198229812522813655810643736945069260787493238444602944225906529414609743055702401044659984087886695127363027684820027487314895804821690258459874024838875173371642804067542340817713065962433703919374963009638084412794275434105541861679513621154361822927788200422061883709865704224781045690448241983461279847994776007517648459806657329477547022844787385375662643645903848693487161590264541322881951717240671649536897567847260295604066127905688234577460957479486031529224367712639297227147218336266847315657816685895162848618511716085183220636103501763807473404554159357123449133481735238509351448932390179534360002131229103718068607867042535973094258991258099715498013293118838615785188820109543285152251677655589188410044759945385126313493398861312683018234308080189385966959843876639067074830832313669290228349480782907198264740059768963647267989286471491929093417366409538813026942887793670165079030895738101189038058730786612803783515092803170064440828632519032332073094343792671176525218677536923338891142720023423635236566295844608407379594671615154579283584889098160342314472063784838233218824630161198977767265032414687526517869521304776323301247922577375550532418311395416763741951056346866707355011070856365872646992996780557748956570775026344688462776831000361850161728351303050753818051313962234418616988213590621919121188578349168863633602987375662654264470189555301135836663506251271740207193155409844954809707757953039496774760302085384615029958633960476968183671232513946311748407940239821347854909619898337313029161768234696421588628019593301747560714708074767729379763254927708888333557052067080761535218070954954486204187110999130519269910607926886966615995106635577825275672089725138098869759164663387896170463228465631991277722287827845042587887260049325417979910340303971803065278794546846879540870706269560634622804848225747862830473562132987069420100882117740235246423408759125797045996725882381798439740045024089779926398956482412190503130740452460285131240282037418824258314317738551095332981306871078886796302000721509118958041304811898410501742192815661598673049217758097524751010009594103050543708894110458428493120035322140044012170492946064514730380070145438704837859451118645305240725988451967805363472468424138160951311203725230740235471309623998839845247057564879397467283765183103540647716442043390935773238159263674983745844943735019717906367662721494549632052601321824206655054587165686988871697866578216961693304283595313483475850545305426622151700856950954489169571987533488830101436405944333343987670551844226636118318425098645413785550599572263972016765199759557735365675375797465707590001739283744085693227495725816816332265699714330820601206715023666955791985458663161425263221470236758977746147900473659389888367914330081510204859537414103380857934427988016758771194425309041536485074080708116189957193609041944129957509625539305497229778170181378659793954151760046297249539097632099206766198702436823839196274798177279408593224276770953090792005485683785337114392986207229421118435333645311729985784059427130253870361033886324406417158193275416318210418323794195661536618334560101428256442424280831031081004549144731714955969464070439205791182150952502232467142256220926476172588633673014836405011536344483599978343403524783489068744226009737157659353642529542699735794873450321307120619293618324222262326816124852319602879006119664500140056354550377266539383368620421147629656809569949568149823065751018372206888550210922744782747507378033287034645137601681939364753124233310048037020539208737690878105983247926755889561023094837518703230517300347818518125018182545604951503738312778614826400578121424247084357649629895604933511719887599704285035118392398585944770257042403663092270058039361647674664862497706936209314980037648766562522251663867729737989502111827544509121750552367389222072339200469594515236304127489337607153007804692355305230283698037387471596422209109914294789321807467985799313547100567840737430901475655851677466535087106467671271327741659880180242712161071361571396476295422252022670946126537457425133473517272197647229214014034703741886898765341603749938778070450921678924742599161875042486945820447451799540328303729385833540103657187117352829504943273029533463045628472749956778679479013022399441654100909695838326169018727259461880136080921890809203342661548759315223722398245095399033692275881950099587520931085703998346708643708856060997350770881609046695040122929223242210537540818031877411220456871076234524240579684070003250872865551304335544026634494205809829668126705662471879159897400503675801539503076925614690146553134092435223958484907344540729409156409486177777557935064844475020142405180908574403591287665351929991614930660691192825858449241791032414848945496375827788355544808090902952129531737885988082975826391220076707956693326481769417008260583092646790663680440290178457117674520734470842712874342760811929896280786665998840723205469032364748094525290487246236789009805753885070910191528918133839543194340300366267548317049492846961232428893808025685366548632858546694626869154423566619290188757560052967470705691993633247962922880365005777995892373525454301363016904056346503920338409976794759181538300005499687952076788423854618000461176157325882740608920437728103723930594254689420728993162470156660872772472820646582392364076645448143641922341537838914390975451744716396164536055275760682428252257914449034276078302606627529519514655889530235704014698813846393402754695203441622345503577790796799464119357127199125545292094371386218829421840767783305569516873431486588302911393855124637056363950268148441855932334184238442925136562553567006027941583522474620640914677335656674991085653988241337328644457473275541031989787112987345453551410610558036921515311466323073646550377560975666212190192010383457398177659060633659125681746601055664953538480409648976942758197891190254328515477329225078339749358144754083338163702524815225619354366347485635232082031983384870076072294272521638644375253796878837269897906078574155857545742367289424784414285223297293132378441806234382150988558085985692068182930009739902813293300397071936853418272442506626681092478645882031460846359687115251565750829697861000213313927773013184306017399143416814070339401505870335520234878486657881124577712815538124269946752489234770571788221742606238965176585686524753528389603559673976665116334495860304251668428614226186487892017369727642779096881977917301115554298882292314317756425972412202998172072617502727660593759932791703251167110123115509903499738952140307022776651619101279208758193377914251896751068909154998929233061986981097740596058608124605998417094394913953097314956203208436806558577336823878581241005893086072434955383877384854962589875600418780131028999149997409038886377924608865259901906532831025799402117434324211935251610582939248880761546044205535622364991907344894334015485716719546988556578329855748065535630667063971168727239920743438079487763431136658981182758887975190598416605729290978901743951080141658962678573968584467338538331470307787987793518920358835003647495303464523752552776602048094839165875627554186605940702491102211089379106352916128779761893191926432830648100764174113240752893743301374890157733468599420634250280414253200601422533963792879818588052770510345109150114386747264585860552879944613758857915629099002018650546100322034889260470523274358538896777382616025331396624980257184896852786663566252043475207394981186190497893074411990450650388295103322443128328823304635266382052174767149277129355032750850211013645530778631969608662883892905180355025538761076544536300140586116297712325265246157744682674762495112037556693355688376406535156332285942219165376476236946946595643615064759687638131062537373115677213637798392957977564887163059685351426369108082126975702954604791102269829017976173267580634544494122976741922270946125628826085611798462063829406974026113031490704716968237283055644083169367860788827973898395773862635054520230407434760122263550340440666644393749403933901954606407429923848938974266609248752301269787980707571203368773028978704386565162495508978771225206440286616435711171192012108385877003087245388181034630307845023812900998462790065501070868618857952433634895187620913348143065328435222429375603696226496287980061546394710057981863356365765285316753912962919024460410349617051845082467932076512591555795402141875787583758977164385408188199094559477266714135359816908659117462916740624471246531340523340891209571934650954994309413013828528407852531554820665259912123470723977423220514983900763122015420488559514941077098819934630524273932657124722463156157301410116853666456553796230464724935830826049193518311511046989990285193438627713284436230504642207206150567142439558900558941245657195832220734038244574779913019771131594719434387550461549499007112516352893665802054855334643672564331540991034836763442770860206284751229128939560276980216997379838513480695103278391804928693031522563342410459212651072110110939196005681766990624568090974517749478987043175316200816410724535303188520964160614160439158938883682837550994508421457764681218417354938884288696607279395326727976451940014427171911965885660283415214554608849233187609131068976486624372270856367742748340966846277297089214185215613433437359302411480666032354475985991925582776646864052644692179237784528490936167176112772819165208924370187522296555889472962374223556829463850604942631460989210426878737946294118616080984703029817001719246905448067838483282186102181423119846046149607915081091074330461435902189645618955797804391638755334021433052814530832607270663551144596629829896606470785715818981751144504373437621679057910281510084140510968353416421066623501722347346236605011060855041832277490891237501403018311860434347779272772669920418840665634770981651180124138956416506134511988188892704988324400234280714587283151577680549567206392664594881173856395034282949155702834980074101268737109132639148999362575091469875438495868740280395140376537907570743187686116125849984435913459415251942550306190330703856698805740726471794431772338637253431683580137473316525981956484365213745582522451469307617420172443063330195782224568039557841723365728061653677306970025930585479531883700290850110532922168025392563653027083592097562261932173698331865673311141722614370200278525409760960299765863072823282906936737825659656182440904252793531264800060640790368589153732147444434388887819042933663518369881111703908939834066099881129242364268230034693862759480779628577804005656322604720691500632250344155307857086607026172819101160850894121827072406449609733075258747712229506619376411754017765500868755293403050334553799648620679693710151975819567347396509469295327707179689561219351828206376970906780536465324498526543971286771784887313661034798150135886436517544994765283443019828846044628776909778667104102172014042574260772001385271461171315713999749693592175637823106637469669846683776035683887700402880780808970848334794223932194149294197280131212919894980232239100084215261602845357179678395096311996718702303205014804496463069731464363666246913121227913958130206231690546704809554371244170345528866927861486401205473946944339062985199666446162540766658480251620239742597045779389549243004467050928422977735079030456405039808079180787113533801110364510448920131632257313558285223533346596683446274176079374908478299250848101159665634803867199893310968416452137777889823686804648501447216188191302487893603395100811939652678173642916813463857968201149920454319532406449146529272493965760663377145117963339167496468881650474421449351256582444832154001445914012791703588498564372946157446332539308358899962138024894385362953083283289271452433384609440171943064096671228262685364007581761110770501074209439837730700124410853855135513766977059280738910685718196791905858127597891299969795409872419580743443668895130948476744859646417831747640848348435211116191350004453015849418359782381698259365957535453290734888506909093707539724316518175569691106761865537433119674405169190219972974027688850321027347771392840968202180064919107499873014304326260188366741585661168491922761762003140667221249026564643760152660001868210920375933657834999119926167716123428390757731735665819261926919760587508145998134779302115176664856532668476613416289234615014451791314334001336670875198349413726847656516267978300446409966290724168763375036663562880864345771505173058037368332701155524100316589575037234351196722734776934401142904872238960316396498399982268072607157820094840321600499235962964443810345427387225763161333144733946892318450827538861695991654840067303948333316537772964362553950605317952832968380855776302746758996182817736596254749711466414164720740686763024622169195384690736054942009961456908791427665129931509681159920561343059885677399418705590544538842859904132374544442868319225400164368979751374580666005508087148460680492931102621681408625713879781441427339986555903968074558074735568931193783999978546336112578719656389565994849952452967524102669209792241076189415270041472511646452014598165479271067487448317526816682699352279115030211150535993535191705055226463686553158049078447095885042211967277935533778700071754548643503791563585505494364228758533137682600683755147687250882883571299437492711373205456427003518950768959725220559034103453454274100776194166387299210339131402324493951832277403117861185672242611434135037218597715691761817165859372651330592169300627921279411796493034644890541187513872707276272096898401669124925368363767963879984439253674291122180581679444958025403865866372706344632412488661624947780643007730927767184560094910316213941394950448819746857791270155000992774728667273350970066907843076905169650328048618212424221705589485644404432830135569928048528267244232731056429270008068781360358816653852555533282520419385846724645493623599050248361820711417060640679958978429093731406332477719830973926064055826791842635879333157251497033392062667951660020757568928905086113521079849557347484254993894644919824351747562481003392877536809437618037639921265378626518963094022789370390120299849310038618550018565244096800311179506803165990698662148193534033228216396948617511683782567692729497742109342709279577942022751827602945158257950773761107597441722968325843245860281647597308731603285053430282133253154847117987038558720893164865801803066635180213141586380861265277629248731386607058041446082473175137519226405261581016730754246078683029491464088656877103417197274859829528670456025242301441405722876972792121598172008188778142840308792252992457338657971973419012079161642601862600141578152091508408616580804226403860273170332549399575676523770500525488690391971749748801036830965298191980098770643113461231734131269315760333941802418063262548811008955978394234784056965402342441383399306927096128145394785792081508116674208292186632535956329507318063514039095691882054602920730422587735119432484629940342558061067123021188386070744002234885807527316465118117073257258456197690553965605088835495053291468619768817824588774983223074683263687402906955048652327390296193851426023386009622193178833966380941917286350458952915961324564310691495755040869657573034828353619907958623553411333452342028780152592893197696534562430673985870316541670597247362718043795433141490825583782733477662349639440568014572210537650106322542143300018930550893379811964465629536534382035331203319318686030886095893932228955381289267777575088864954490654442089597803330426075803327794610999392281439424734026538419903976524372640305926864591233464777475693153524794887433575192767947240873492262167220955735970375785179132288652298435153079347415788890833908995864085949768381570842493858402882139780677459346561401882528137879817469670200928289339676824655796974470664584945637749202601121523289486133303181435936570593734767823287962361538480439443683711150315135414475521552944062849455624682624513474328328212549181779582811325303948601636218738624947225801348750878549828372936968893464850463095427084531163817533893360854814746123667547168711712537470561511318296427800696306184687498917403797129298213581794900011050464708195384932186551659698112255591149836812299654017805304338940916015231603705640722444109248609068607394905993198799608570803297711203519356368639395359474561332048392836942484248861275381520302639625086141723516404703520653820609224126376601366985080612241671664034384917426552676823563693723612692147522464130304778349289752235621682699322982190766956298460807199299068707668537565485945084182184563264737191699049840077653540084241962514924013225403212200067566039574829151670577514309957956103340178948872002270238939828177044981457768511649390102105123317275623422720872311770524649568843942941880019091640220936500723265971787489533879856126468558343217472274580203171969459320789075285022899126957067158209000906528629064212842248048413243086705847839386229892831374157371198221722014379161342875575016673669614748712846607604802701091410812267819417869436048159789594321905731065274762268644115292607420699420558045505126801304415429069433611584298660802243080633822207845941140915635703760504527290195932017481067283787429795950773303373160959442526613027805207313070302246365224227601509336879592198128315964000750818593548063367687446430669420374144329556064267480777305920774482123309285470824077175336073221923670868498220812310917032670260075808955952672093626903327045615894838800452891522969573561314432419509021735272684335060099543473444840471821417147128124852824598963105898538459503998360231620747215074462565129182025565185756476393361339172633935303512153827761224888650704995077098265407969195547251261543775162100040268154432506221835310530298278188206643936275293953418176171566326413435832709955747272573146752679803178289624551760745443741170524544857977758366835458392791150712415486336486559596282349793857372898826414566715252309611454525777305169689243625704407385260870933408023731033273722856861043814329261398255300078195845152476110567431991195798186844300631018867751205279189711218809426913858313885986262705572720624965332013558088229481478103956171686517138043516681467630781887517827921099754372893843431868287078604764004893792446164841187288447711711768205690681541752120363456903206261806043915473375805240677692982163127134811451528502242819865141235600752166228329863077212195102177264785290356338390322111898672675373056890122944961271072443696990807351925727378197693803396594032536099840225479700103111329525854454243022169209277799455470441316060630341703566738898050600509971128067709181336343726460537367128046291423471699528348405294194614888115164427074147651064479672898370003139499870842921122093353048247146345894854238635188979178899768295327893564163884111951766955030730057653156054822422091782882200895667372189431624847431179461259079383044235767661056067314257574786808348192776200749719442064661376581763053906683703819446122615324815521339292428209684669434445575337657959689457106047515146351444983730207815745236902778229826189073641100491228580035377666629323301003106269001724883828164448871956236107363745039557474387664903492397135048552684071709966218158325719601317853901998265788854609681281253383073938483426991073217029684996733213137032792702286451606080524856840143428266966798318116088593865112371121711089319563821541929025753410001181863110890630774779153348299685271066534743425879404716719447856618025667648993401377991135251935308474061213202143186139904598862459519443069052714127621165911301900095845837422666791298649768858824582929538257586567240761227378500125702210453246662153228843595877346093557495551190532727854996947374713161955266416338935606358553414592261799615510814256586436001989732436447556571908002888720753526630064850566633956163873410961329759208762673217085917679096993630765284842345254223238241961672911459525545708051600744216194481301883801705884158610430706499597834519002706329945365618733013055810154847088034747308676441276663954874991749783984906429253920947639603127583110909138404212871683212778089878106438221790384833855841011221493659824720473826501078244133160010238041270582820749483994007296440206181430894212255482340400360427284434988767538415235116591789655705667049062523430199394549850409251950954047296851343347129747866790550994654148343890456704506269670676512492229773846662656475518669882930940608501145403417838910799681257511570033400228922875439087819685912792714355835951025262139766364889531386069745469429856346011734834475804608825726165345474251461852159083183599707129151454113275180011671238480173435202151521502716600246595845895712286087796204423081565308558968873776173655395238378340049793440269483107764249958608891130936217666712104704488739673309197731425854238354109608048067477422133839695123866203730188522992770598878355341149834569116499876878053612538702798065096280744689040592803456204344142900965984161224492678332776735431188610783886037180472511058221443880730785295869490270006957575301827478376199522382418005641901772587487602017519241633068715338161601625072751918164303288161811651560014045255443908007139496205047780782849136590585422096059211450906200132523250683072817308573655303137250631157718149698966647869361417772557749788762709684292263253361756223574552417895968805257381057492985205786051366500894461919426136429842699020687290449645051058628559931194866783229311114908737739229381222573269674454353964737006998405092915728954528910126266964327718402823897824222815716238852765130346629487704299410600233061662696688911776312339357747125888647666226966752993685572447761354945736917319898122005727470886574266862838574669576352191201126478012916564150718439120837162574463195992428625563621010802865275237806750881389827635116051974999911841506640451347689133905308966326481399595869961039172077044011395441538733785852337979835959000779409533053964947054619885041789022730575500679295319468337751521706024724900246812106601437917192781679087497898185710931144454388292736730268490717490820182320775293843636017904169818598205162499184403425745599490558778114425203466989298773472916247937045479147613499511547060148296757588836181663369438273608974787642072813516193234022831907479354013779905724432402753351635824695957072552873173434811788301838065771801008062032138130073960320451419706365923522240112832724212331685910620529812703508509349045412339708563844609680191459911299929666497338999423585205407738284094943198695235401847168320437597059737115012560261903733208750888888047936699934701128181698155386771381895540453999972395454124641416033307848447273202777768729060061293851695283221816696858020264180284551745414469983699793519354433989762498225024490535222064550339561964028550032709041423491556726109882590767599257041687989606845204716879132118970428507784357718318456399147257489353786690081647522064088738127993089379590139027914469771283152059718205376950505141685271660193128811094079961166638751181176294785351448484410838990008644676161964140771588760367497488895242123889445919734886810707468614509207044159928138562453765664113172881879670276125300047459729856236137499359339871229023984946214511568508195206635623879641974055774406897926644684944950194534868727392749660426160561500918046023502001050769431239809991680845664057092010285465502905623559847686389652868073484935139918875209858729895081472619984410571899611754276503416489878842782829674075650836264871602997916420122349420115221972280295960625298926273212345775085316627117522572854527063070609423090095654737156178263033754933780654871515707636547622690123214327067399905248222756346199460889345855522192876600174926556958850788264474437778126714378210090875119609939264522762349467710710934935526020313210604316131481560431619795079333902751491683516455439346775043413233062860362504191661207675380722068092791354704503304938072653765364175673139851565948771278581086417788476096849036030613274794544303068017557570138474332556394228411678320749985874487658615548704397907867895476251357514193254330581399391546493850472945187801408661762184857267684495354221128856122786972022709413990767916664209290366770045940861014818533978357805791558884412672139365833404618273564739331278892685255098915704606816336448032748815257925445553178972131766985133983696417770958761778179822288184058919365421129260953814964528712655476725278363173842944646517565191376668674856002363125531492920456956745636125715397014347248485365567233787883183877496389428422329843609301376467764241428030562999834806469093060532194414032047360910448229027630038272861359526838229074717792811045781609702885600006211724329141138004111149210011814713584621742501736308172738317184086057695685659937304653278025449981594322706297310259912701374535748956661368445607720106878506143224522779066620429109069662991444814979778307405938973863614413357297780958772458255200213800307295699677933484157708327763003917403188274281220650816116999922759270889037312467542236923025446062487783285673793241708260756038513567605632660772328165895115374494626542571179466270964047122299402672016314300457915145922168260680779527926312768106916961618207806132053867076809951559103691188727627951132346258903517997052088262583413953963613228581980669750350528000891544091851809167063280512052573003457661485203481435955135908831929471717639138305836372827626289697757521289660089035109859668630304043788654421084340080453250980819931482251729877863475127438752780202788085860196866497874969754280099479164588731234367626868909644797411115904170308078340685689441574781128037612500538490066612178871615706036593599639234161744459990811934668959026429004162370783954168571588102830990805260835278391541723623184163581487010773537892914881312044586744553549270104049034633240017902940248616956952472187668481069419883649242592217029993263323499443156298836767144235683191725557479676875470299475008958753168540032619010588589347386968391023785498027384711625896226042837735543778116207552915956594714236661529040874287513013644924416665466270174552401200307407467086218857596169278250008098681868103461913552087568861091980257544313099408291570339460432689691684484065764390159065800611600483693402134728508978633883457257150655752428001369413199716790486433779321429683225531834649544165928157885804286760746160124163911132168466366843275730296771164380645180728782746152371825982804355605997289335348675427227389378085183934099672253091585019990110105101944706602489641333022981360668230152607671425936902166429416062007743084919477779719799418919402011614188418884750804294985368519891386613426837691387795796110049244178892238784097312594142908899266147289140202187687032560441212983721177493400506913146539373249215873381489683767930629507685195612434717523041079327592073420944540164518567828198837641015489680117163641286206487853706037638119881043573742876156834711079538198465500196153493485132583713935951853077276331905617490857484757923050224222537597313875286842498064014190142503567950151811525658187198124811674371388506965983770387898001846618525024257364513106576546687428135244156958203870274773092364618766273167624318172367166088319012833069064337233165804138241943508837320938751251531629623346512207877755694303460511888753161519395262588988038089238606386518488603583032043772840990581816807470298888841208498431329793899283912710863689713815010488292121124930838841070506191177119232127798161219912346683548513746381814520252786432094148013605854803788260646196987238423655781962892835009376577071322310238202823266270465569918648185334574255007277218556113712219089183208176792307488777367226267761193171826012499235428518837962066789516572936453220228755912289540221001401338722632514015831329316567330502147890652168971782996710365739523241826953608449670305243541374058790140352281522465533852432455543584809338526417872586086452644527355052203395307234271126249061732036106262947068106858611399522404133088819957737171633068573136094850679716659188567337979494704567399256797379472416081181552213690953988362841842971447799950851669777760955341454857378379456299262263033613625161326982920170038618590578448118689096702624401737081609690869996061780790067370064747744151956344229234263956266616325529819626399085898910557412061967624553942241708619275930382807170802012492169093311372889866417124033354711841289517636056577365952587596605196313296594163124423361963153193488494697199962953369356967590881575667642383166518260677607444076873460902682928682544773520598236572412675075871676328945108436337719037664759824877738950421387584952021486738632149215409706739986880897463344748609982545211136482395993855821493887085097109738348090769164483460472179839843696683786473300967145815427357619135612708887696130311175441064193801100084089037946990886013868770806590669659441026466944137254545208905769716156521119006160928686875820706332116103131520665613847190407603916814957985642984875646270210795724047347858881143624025554536844529804226596934760345327664431139542208176484969007256312636693685498104497170616187513883864489718043027597728038563103473318349184073466545354604741129863840631474162024065195296279179317138911261420668071697448040939682068423503760157554124426360287153239355405306205221562679645162087982152205219714032626437419248867514917006532977567014410303114002936293701072553183885402187718405981718338322490531755301400922100281483570183235807227804365661946635195120018650873259468086734807141877681873411181144889001569638623115915914864656816975507381054796862525641607064314950440340625800302158519619882679758422910623917690048478382749726442872095411437845418615716407884055528853322531336055128928693839979773312105572270295182080320532157898069508739649705306857802413154672313375572169240382347374801536401645341152447806277571985340122825625682898367334255012389572698905029034470094573135849134077549065490751062139096641019048579540773187064006179987403459722255080354261213849399853293190419686979882081540024462208026371347599133908333699648976837726035254924218850529138752989534174817299837457348580646852781241235235207019013894942319586190748806184513005042415153227202578987896314513615821582542663087541592799606334368014499437305450938904293048073583270720942797947366071119912439162562756226998118228541053383368389890883959335514483098450422691268863841716358553942909388382564000223411502959480412923091716821767883942862476032051559394810182563821377512425752803094664900041832679717353841782341957943879461642942443976833566086813003095064199431360648338759070594618022180460399475056743786061367660092478017882742326059550734936434275671566578041498313498624659325826743500346179957095745305919882560094280056233292720807522623851661800577082153366814735443854935011438126796369983735108381044231142558583192981748529780390423051078014483936633874411978900163426805878485611440127937057120822251025837914557816271887517932945584915245631863655853034878684437010878502464163441780385476718859178519052733644291039079456053113313440495889595440846795899648809550653809783981465149864307590084943690216211194481369446376106100705609663469782846301075836237628109646122619460788985371751610118208420925480132865797421373668671667291505110958345559450604451334520291101994180639745026559685164841745555811279199814472514557684854086551574251641148205984827574941868668867509691471961139619730797958275661727957715719771303694317500588042826146108488340570433667732749507508710156681326895130248871807712968148975494065375673454559489500263226183308952412613804275262785868841409837142160900571016071993926040286813865154847798285295477504694572466635349490583794596396147191115015285502627765241926635054444432026600496268228623122238845773683417144609605095484268577019553174902992434432167481880755934420007313702175540125902614973881928599193023809242238404801108484883897653531481510765345165415409833788255095805290808793576874674194963772371647448284935283219407563462623976338392327351661455746192369869348738332876828156939691708733063557340357706274472842368681357007291725036152604206800468098095426776718043815480077788344771995500324230804587482277713468981641694344120749496730875726921450951343453026295320908958045601361523763356915620749388572747325757205934333309351874724992566507701573526022145829424146994231835262394206378430385399831197514544603303556459728305434699407062287840562786742125820285174639811420219326087194133357348687998389220938722583915983336588760355514566402782605261747415395858589761739839983578518657698692179152153466042476735542880800677787657419389083701988629902924964694765254167703511426309399175071666670247761463502296883408933278085428349082186508985338733548008406609608654816078019023115308847041901196099590262079157415010651879344871496903709728821567799610733914895383466445199435916563043329383756246105235409506014953792962530315760499350518594451233396720583250038283062720130921209130134696661770780807307098235669052023430896811249974587590714618367112040820208521719706702321186575218255154673606711399453799220771193854641001563725570561463727117565173157477855696058029522197298546894541360797862684229434380960785199668830183590189782209654757940144462811607449267141828439497733976367390076265901429807634378187805422868657805730693051027576135692369502026581563441447307765662519167010756584218268406085307183083136916697063577361716153197432679600586652628100623499342145771096247325987847732826911243991371808146538592168365715251096660281806976259839288848566846618331733420402630093294921200594563509822333216024767508569120904132595771237253017018788747929510402803544731618839153655285391579304928467906218018752612877735313177467269117050840761616835262342078198829635919713557993467794387237918204442666584546588187318875352554246795758869796524935640024623445486501065088189568041969434709311033040569493913143077037589189542425917835271128098707986946726420213551247486162092727435428338563837939115658098273213404270812498778974416503511077773915384668966046452449549819019594415171280873599235590602257227349941458356612194072146031706822695511387694721336764342034797683016617983411715168267964431481683340994449333613692360241807572055684193286863112188561235291996301028695185293902620284864906917925931470377490963917570147600901642299493663968841083384507004481732477121199140192813312393166460347891135673505989576019545861424622598448101760678880196237177578480546633132516299692281183673073333123795203759005333754690584640429226736018041208574325282254297646216959552430161101238723678294281616221588582794675859290404442248352917262796442779125075187433138786339942668452306144913731459409152289395557127846170620222754412850141943701993822431999275949842194337286615861943564561533736470154948975072889135544005828496256003912880236927301284347796484805047887186901896368798573899569117463269898508414311167811024112609795995738421782197610504158395606286770610890655486366310427189929488032002131141214159192079570975480718402926464574575366612318335628488633172804227089801228986653273430983307775205232333927334279917454613132669878731399587826968324950472588336371848160790818848582041037696859651117371864313567042850265565377254148309107501911409282650691804739942994767683003967810799406279359477531918893100945313746329020325878732813672268231312992046396318115123432288174908900300251623040047648489035228513342202076935252651770844621705957355540439896063394246409206914805610329056816320817098251721943090252364831706194850783479693649405162451927773354755253615872798783960579254382441267547203297511823394335325121971463371304787467330692207636717420439866203473518635815055090648320509575485193479149574398243700470426777112564102981057277305512712551490604545463290670335188639652231355344482221325926430238052803017820164137846389243984251496899941409345645299015439566493793252358928706078655094953732447897067627563366858944720126483659736385904068467066616305428873136900885667920645612305912134021359300089768963468477135025518559392198343679256039327924386394599406465082669355667621101623895475309185326977694597352381787923229016955647664066306599634695037272893453609164838269114731132340481609203379135162725120764413456907842808073912347521307946334624293888139521910231846796969115381347889722366096988289271891105531866610941414383418270141665931775733029469270014392169951853093264492145413737635311062258907361289943533259214124268191897616085766205631172770998333326071387894148688763339979826609273442651311062623814705259627944061533870380815136314518175711229575590404625815340299715238008173857592373560124561051630336833476750315543105918536361621888969230709706590784475920262393573134416777903602735952181716195188359001891701998201857640955910888658101108852490826631977376263621906785113482302474863522562802325166729303376849057697731055499308971686956701227742175649253538913393234658361554490664373592990476441384641898246745822046054797245418465487869513644432746009741191222196904034524272781061761996048865999325305833827408293130341557420078531568276791576791055623657752215811645508047579674420411636246293170241247366494582183647038167545670546729360243791315020005450516229620755636132408596509875679556789567047964370575761568404244060957829966109332153234949331747033767119525816431289821114725687967164554246731093822912182000284869141193700333015696813667006128280485286417913235568654662244117510292822876372381361301826641899793692954634759490191549039137232828441816903609492690473912752453744681331109634472199466695745191341132311629595871212972267596387644394248772555510774859289911551663661791063419156935509371617262282406178730918237586859332664275323881321662110470428366187837784674330102926892206854721018234754710830100243754166949525054779627497901842339745747967902750599066122115889377393299746540289993264807132260722523279753340099454837397104830755571907812999345943473026696972917408145473734000447834660621831385806531809361429089542395350978066215269772381224601528202084439746559692897239663361538731762316359695090791073409206607824421920161397134800473037304768940335116387208651836941902584768336360136974806491034223252901269938669331659570052420762246973841931675191306350853947396349253757487448167322456152053869323461292396732481477660736692427934370254763111592470583582441704583543324009671640745361680239394856522367036557660140637281334391905813970920011038903123055454987909548902325308631372175178557924558239723062290224156788042961183755725198645053280110236865028428590168374267368194562599483574481549144328572628790956037615979374193394255082476023713239035975655605469206240968561593204196289835925907929303507817486557798613886383103510443890631230259622541672667971040219054115805757193999793349342566447275832196876032184108518177467573888158765206730873853648729265785963862679523055499672436148650824969010524744181021288368458506469738556806379575692496880450783247540501023732704867946349548841609274770851821254709834995199565493053781076201297475875743112374973482392497249787042502019171855110501809177902099655718011580054153195444474659437626025862346518847427097776167297853381376056726802825917482045250936272506187443712509173917065587725298614786035616682465954821854919663244818427070408292154453640770498678350429136391106504136919730360095472983690554798057508013873019274944312865639273709122910456476278214061855753388083706019201831542863746322918624763607185193255773142068387818047071406945036909199260554421797906464691795484801047480953347594711874661359177866548409482645631135540582774748295331461837623287040187023637140540358404411319542370509192914830724053891953074728040810352603376705435223919159369594354289844193804894428090213473997762407603705258146344767338328381216949142306821262255658913631519203002448820236454961899755372857886866804668602290643257096480079731743344424441645639250557509035938359895075725270264957455269290784245969211930423252585170573066447642053420492600707843810144867437268976397290028821582737223007703442327828369383958694795256370474600968588114356967513900546167111709345259663549785832708976671530028200745170397180177379866322605227517583258859574290931118639575928070159648442472207450942333901287016381861397405098012550642894821236744315403685922754157378007811501809535243961986107921580828700633271859440386703397830489046349350293557865598594067237140727526730528903470496489537358799206868747364720142059138223399575234328016874667577687436739500410672872877816042256567172519146429835066847452745179715599836753777428401152123167359380473089541564450011447561706076753067152643277003262569814012628440973610756772258909142767430474835359842385325641446173892109088959277043502180416087510615996116812669784172219059219633909891988927072835384774844680876639682187308688643346426310685784247270255390185436356932349819569770207639053395114476031718699752050063612470330257083628777193942019166703842521878873993033653335151516455430011741789449556333529604308284271904661300996945357359581320174557699189115253995195240723546572058457774279204631588884974671372981956456003862584756550829299355151538661873654437692702675483658831410066469795491191322654971245391863235446520914769342126560931268982245988946367063195542998754212226397517540428608267381441141448955273771649121966798144486188510115191428053634500329910831077536581455211884453514701296170537585295119104338241161019625049196282322063746128122820795125210672922844678019684396841035685989350158214875182250094085095064480294816602291105315425764053842735319609398103466854881409337236718068869920094979142695880940499644167475800053632243147790805840200860462147904531215051822221435993050857031283023762834111120292045583607392867682662508203378795675240427573350894693744190846637584252639690078000063304667764353904260978994833045010281672889373327858621590938164987738743642180005697231664269001330638484612254928862062346282685129881344358105890424506255128519950068293880435658997218043135824989503148752598735319657499245664424586185951854530580912390429157185595246224489265363598146286427334690792843336906636332244995611070428215769907655184773867042950484683391561433633661087675870047506253998613119181096917621068382260935506753456049246332649100350271120496790623815972574689356666141166385437842546930006351523162195845068764655934335706988604574920726014913951545251373474253650410051999942218209840399772710105456625694700046352631556575226846529311328512566271748917368438363915552458354166207664682835637925706974535280029442297660717817526321477279457299310999443926161275772701795827490035620980479052885966409237803723852516103106924411914048998743872877979197628089322978028650045184837673924121144161920235925570393972530196991602169151237344686905170820801343431627011189224995914903512639793459658980625954384324962982966173612901608363609944115719674305587485198628471926835269438539075684046580021006978070772792998020149842495954977116807445086823971370334640465988792710045886523996539730303752338696267426639823667390259806446358179020203370251427192271735974002896101090660722514773142533099274413782055646347439513861126990871773437598237279507765459890205526295784461553013424616680685372313436030571665229767412974460444279426468952618794431856022708903327082095643561372348660839867104648711408493597420083696961359160816582093387358864936362494092432139867052150773453222287508275269619969184545253982465502606052476182770914039838742926313328415568747054790163503890359400645235026865930571271161934358989452718995076239935393893574372057788998386562764580538712413422693408468340791393772539832450771099716807370920687437018101611764928148577103903410935283591419094712940178081586094840556490387590276151088344164659306111220416350402345828602846603490307258690856069494893651144821928949068324973154129207180070824046987117492831062162968627650474514931436656360947231498167791813090767554881023865798042980936679638808410786708802981234616749853448808170677716113959357164421322904022755924899660614617078103059659529417945099105042573750998553112484011885906943292191500818819026307256329951975942534140815323901587136514240290699344329402517561370951286576364092341543732631844364714710637709487118596199512411346960647318023450854812375093080872477541791465796229057587502539799027890429842911856630396081147580863797382560276058866451397630578738448447583714262420391387415610270470027348716842296229404321120170061251886353642093804419517252143649240201751265996561362070183718977541479736882174230840185714682575080098427104755090667268414093426092021940669086609861816140713103858032226949971206264117560563368803658287110118043297560283840220291143151704172464834583536936063000220914925280154014765412148549171007754241817627637763057954946459626563017472995307190299476090703123925521587647805369348475760333653841361792387530188439644411245180318656377974859932402026366278482871942756590057538142387372481481869672510778091550749484308672990813164467284524184830167817101306546613857747891834070050937681963410342147049963026758975761711291999048047845965733002437073279894079719995233223769447896350264105748520685206383971551584091400389053916043512240459393023656031382685342341046844811419893495090750228620769008664818410562550456189460912986981476834573452645798241644704439628765449295235573243703781234633252385153203603964808106856981227719064924389461801605250414548118067295064643967559223690807137701415789096353113730765147509790400533479343896467418966839019234726784482631687525722991748896444480623935813614746715059513712413744473378193228522074081366130446218839864459561592045673974742854035854719583143304594390811497689442773704352586892200348487755066835193337392623359115303830701649426719023857537638476876226559564867164158788005939695272113329817239219667146973309317731308595250229830408062673596412845942533721102655868197788361409613057488262809578695591857181857062412177212144995649603281576240694218377698589947737188793211368376410268221803110569873511243401165899802518472338359566083155077988478415289548113643355103374455401070686210348641220314171323341093347246802087557708438171523497608223006717615301115066311781035242211415863248873422679700223334630667243817248660665805191460047807223501208147096912469007277171179636342360404772120375502782059021977708130546973761777303865637656792669281508731786260388060570416461446495936151725839242724019132274127973084800954015161970255106192797485398757725429105513128713430126439455067870562199153475393041355659278868428942292556700963882036440003469663184135903676631608621285473276744535750810943265488327003066414642476128181201756989279730150245628005943291234462339019954389936559999456794748129741460911237470879219711050194950436869819865196477115544277977749578856331821451395425161617246350758835974595009914506389775165473171224030956495959612077880469868458353846238143840489492850048508902055902893892258522647591482606810024378879318257048834138783737799174826485943966649447040177620415187342305839674981971788535860520696778383097528599155167705924199320584433442221251249274592542731458299217976082433812348001124660504681038658224025932430652782616985450630422718618713873832453867700333332876954672809796775519130606762578954430810474639796983650031456887882329339438018985163513124082184047394270260948602883655341599137107597397737405802987302102039221050531542449167096359559979502967844845912179685636932009238214640746111493357320397050257127852483827819519221208853179564372566128249957154631738809235859113403006519455121667734955358558392624776527110269342149855043775294837739801876881675318376452874314689271097480502729403893833832012917582336680273312654530973527979414477682801507806947782863772744284981126566657600972168304559832455559708270668672203794795034409245409821142241776875032692588232540426441912708924044089667946370868323559876585612265276657113507925679335716215119223938702140969298320791939728569394637184726575434443506730597644558390842215445195221960949322805157077313929373107520079001661262304597498959548944851999878423933901235007447078223250155288835660188671637701682198355412689047371488370177758991965116385541557594006584336997268312522404481529513351535292534374582854892145138918535178261550701224172233930684262541075575417646813421036236355991109705250443354969415562768207493031592159535161680722603336907015232410047282178556308029563715673416982421337852460135239231445488164526077352411297700050970452803441991937734334201105068362342172114585271998749306201738649294613137591194174577277474704448355011078706717746682506422245767243155583898057666974323295581769906315181087763613310049183375438904306139790927004143354724153864558024925131123520231872377769915367625767716664091685153989912430048573728158151735885951784868405370523432018243726750879812565810437745399978506296612699035254186695689327016914467318980411477216971194893025695696751465042315475089348361651225409380972332248573333769208396471521862656000206514947887914020324616473276028021066561591825248252709294280163461943984268199189864699179702495112425090891042775574040827955136474324088853077324060782778762808104398442175299495937448766789409404894795871230795305282802254616273405294175980323542247721872486758649380651439083754353718645282101908863443741565618165307104382023588094207874830405231110768090579545958771170876894965623943128263034814119403882648687257735219835265922007250559953315786316391119779686110113826807577471317418351453366487724869079758966489180483393042324014571565461953018690844314666866293131072831556774789858336878424238436684249435252438376695580858530430795001785063231960368429831242546863893746955657945317579681231274716445947926632973070179907789252373579542048513170229761164240376098171825355053729375866927404417790966433961508679203582440391793898109597132130965894419726347338323344547680781683150550311668405403851635976253930074010949226909252150171724786654611677997017080648525614337398079968933417196147909513061150786934822585605739543578178469287905337814305462006845321923353539198370029381492856147759957323370813820640251230891393022426789023931980044006861137254042530394955687321428721143763605979910348205191943887099759969580205632146831069541435697455041035731418759523524198700926653011832580540566411983829154015084004086708655168287715857322470964634062117691664529920450494419007498133688337199536528835523199837752474509337128595169600286608482412757851229049193721472654785915410699144678652277994328437407882595291908796762554055306278372162806002321307949798210806457366316694193104722756981026033662155314315733776641734464611222586634509312289549632707702111581274517849075351616755318766409131803163845538296838612810357737448385764076353058681422433393038909851116269377290832314900818828813981552336079694575873596808664386552570268486517420206877696173347385369339540110376793748166285233748705501924542767516280785674749259612126829194058451300086178246268336214157693808339434758506218335706900033164398076438605870197800903415412700498912052695786301041877190335415343551959128916922091075534754287712737350940298878951097256303926312417766169748754275371192094758600620444110972830523517866620169374141405548354550173053072244853351563974772523227574028186343186228814862888783270818861760538270672788830042199271262749771737772806942229966352401322351005939229781794064240918434670309084223964360421098637178869230922676940478866537260304707264234304613869016736729430146112586108134553427549512022030666658540753797014617175311702742142265046346063063007367500230452674836116047217208863616770009259794474543404004893275327787726132060241333459399406969934118920579186512053807294193246489444655849964304318167904356831833629706145310187115337512042470681168005098628504844515275819474976967655694847359526557375046932571151515812000117249675406163953153802282693233060108857866037717038523037397170019872008959786965415730764013984189463384379971029182404963027431856110868067344863506681241124041237213264171900301319712166809679364577739447207375100926272043014926106382176437321757201869317572947533761418086586862690744634281933958910894717693849484960815538921503912715684816114415882671454655289610887476576236837785289028819192965290449748954142332345398809471221938064794142953482925974375749888785368349542378035873624617562552498557582368319269999390317857982603956083074121984666347856876109166797745051846092378475868257375772998619933335995491838994587420203751242802343457971800397036648906502268664985711641945546561038930241103417389236436741285622173312104823728258605269323284680633640028351637400976411592239637549123098577099312782901531263078575487791392849870556900114478346861866118672079375092555878169419928700164261380777100840450741249052106118137428790005157813503727986360146007966655868446457032653130747985284050542435109018662352259829694591461952142438426089875953305268274593018447951792083563634418670011773187512960942426999856838186331214433474946701198832896207854152272650753511548665302099332180311164817224836439394131466141989978332337609976669206831705958610998995922683603548050504801964641460860546709273897863077252292841312285685927490360145652277250662734302684694276206409957518334040195804855402255501350798758586127418255631925164613643912856143398300697730657318525624914835408620340028665062273097120806751996326361228976576780273484398379600208341532870547174623101668311489140710803366950195540016299384057084241481645892864814423934417175287721587154083362083790410872813074317061768075538655917500850603612506510462182556770279247489420002971282102300394927410384420216177382267653431339373439368113459255230429043854466972459843636466063782226042308597443795714249243908991238345914339814079448626359067032611883979115605654588428162315708209720918651741911399195647422590671905607106865594027755646667271269144986096278629571484663630214950768542954555026148302530991969915587340635086447215219938448779864652575127121324901626469274371952981268335135954327752461054004706350216145556382385896963971979813107147897131061356267787331117655594177750642613203819453315723792570473575336868019194490494388438004065706313915231370536601334124908361578640767580177411823676070257027111091328562895163127189452499129380506278096499771653321342780466162353546346662296435068484808633122323885507349867962834734369435128751173761722915989201725079211122007176363283819453503829953241378707546121819405919222112738034862874735126522202050173538253061161117846270395324748237788300075984324087512614829244470176501317014021663706355647308865055862031539896786752796371227897072651500371905027003576289159546273528320032165875104298167307826260344185507641131651414042233431713197947213173129092976617521816926183217675399682806255483095603506135971224037983144762667631410085074885139014384350783742954305240677334022825077125467664949920264324782614934206069132192728333290705754780783528091013649296072125984392600447942100652657530225248024658619424803446408454240010259796180224120135810323704462658764051224399148639443437356643422400818767336316332265876445123490586969123927878941976079337160645862858314749846781693827487599091901743923629014360066584613162297688130635681348921600519882246336250599529918896936686671857585522206781637671602669120650091844547112461726516005010421360284907869581140175320092825389585906140635150968709669412652859675417584722061240432235825193936843230525914526763707044968389307211278256696374505855744031130773934442637652774793869392025539612934779250041443447521001706736952960701247346962001508436774974605182382503997443580764355991495028757983127719168954450967433755745948142027042310604309238092382780021373155980793512156250819096194734061322321280546138134742434917405069761955675831026214062261545370111630277411887107340023668440702392935269808661823639886455592716071915582685685579970172898181413152637228118667598475676288109835873025685371614641461184348532369033842478168232583209346282486575455618277376477032836397072414769128600706337710794186818841964281437183910027828781685458149653248561373309444786518239555070147255844176101198354191404051794650171864920353099271822311371645615818889434874966909681870025877527744408275627407132185580275095602813248865339802485188105505401730660641633391470821809533664073719178544712000078631522339353374461235743640226681371504437773662538577435961591537257897275401702021504116053484790175543103916188722434453224333620902961603372995270305922910238977307924797960892118246922100805447830630728142575441847171760767203553415776775604899456455251014084137724134533637869676299142211778016647920212840354206035671822540716845970828900262590495925962943566713031974780190242729074750602346664344465602754878570897670695205850706009152663265058167969300956853343459269099203255933053651439188700723425265675395101696289155656076417951961379710874947763617740318265439631737379977220657215385156921743425919588194765246048143209925028842176740487397311196953800903379674310630365786532190373747843604578248150811280558760556712347911530910031230759894278906945138409430894039418853726785251412949364976849970359211340478259347588997490684519624372421240529278572529213141247885595419267299930232769365182583901254863617339879137359880020964165884216494044235121700576139168720152083964008495798068777252840807451574499930972467810416445363474311476976257783039736154644161743195404178569638243077044679309378201307444029817182627875823258766821346483325640946783399996886589774430030600125635288237537765235374044216275453437759341659646038552213108999086361968009727352743305816124816331763295529027255168785582108586579909500108443698714309469791584384175828091295920347069597664063403092512213606655618931551669171856625594870714305754195671164428977341909747139089431097034210621588356883350497561434572113510101895039090623954728513088894450667361140381651789780674581935562258358786293284986637001163610149554729846004176159097091747856053254765801898549906895983444907248919238308751356646056215800178650777405647082127525950235459225909759588861825713678868353113689760396147402724907200697007075626273429681931726756950090204180020344363712916287129483588227140088865916327969326961121967894803207229038424359742515359693086049766664872701707460944890573150237028800800828082809092539598036682002345278175588133872162141979335792777780080979329742989982068989691338915491914841830933307637008767072211054348215360396510511728284880901211739067498936998387435248139274779917107900241267522119788939469479542026524429974653069008082549631991623608375472711436452144811143458813768867108285672927488688489276233552400926218374263745344360364904478356774288651667963755465230260265486061581731444752482376078745264734776742387529791417096239242828586267942284700765402524845523518206482024165519665612856037472571159083715761523297064392043337708900099761005182994969174443324240401881394358803923589726562523134849286166703851721868840086028255642134994113911767016789004246351971357223829132982910674156854801887886373367156047875773603447637286396632097100866873963036386532311488315890012574692064948724179416016138130040366397070077805824207837498024674326644883954009531606400373422747658444867997865225171077686803682046879231850009308308528104781836629118813078955262479835087665816863429272535675101097202428267373656043345386942664064081401718880618976734193715158357388045063847805394458228844892541992158698733022823787848502941207721258932731224486151419124113075352684975804256621022093756254195301202485604966381402414835666468531838489706870893598582799336923178021687052893418952164652381961758467177143871068780611118585046862679784600372337087850768739083308550816649009284402167407667195815837550795121895258135799924101145885619764887617777317939224846417124959614349996257605869414824195225562141685734488143859630297316983302099882195686943120954219382389461894502388960731467527202365630878182519960317716015970236763615414294396218770474765967501009039406333387380607308008542494639517536523236190797621749431616332640552833822356716789124802215277787782938361609395220880108969038320820095203088062055177487868701721065161018584456751095201163369828614339758803618719911548665728121668206426863180182771183770127930440465977622113107365576983064720946407886986047010219889218395481527722376570772380815802349230729436269507073022995425007281605763775851706166688884770859898747766610758295345785774876770094986248508080160726587048524123973931688052306559308641815842830602199530744002595032035424562772223241354063912218786025475066223216963713290150077182109346890835486206710205786410538319720655767471666493032462440457264943462394938852006838661716091600160129896052141729835195007553400176777000908093233614112478820753637764383192902511053962705819180771485152648147834757982572159214903477522750451297137214930273050824640235719222011772192385411664112491055217161479020846261579262902979519284746503353611950342217652919781646700034847900033967292103536967107075582477195346314768264923461956205731292781632161977885711446174992308941563105076414917825556748269024559454849917513884926984010278891922179845404241855586051823054654045869614527843521423248351299418804460053952306191373370824543898286644105235663704829236536730904324291525370311386302090713474794868692467690082655969246787630258147982561716317777339388720710738371210354176849742146392582312144389791074957178345084001264416694665816969004331988181974710403606971449016570229897607083676168292555720503774031714203674408991549573665915200941249856908866379636122296355912327963625863893878895821750496532343592120554095332791502172003911389277930284337493520657363281451742251755207428322730622321013179313991711745307757794955481907569547324304631504527748344435997356709610506113829921983323806768644134646088997692021365498754582150380681566807997926655750545518682892171517145001323124264237850452020524380509235291406074591017597133714749808414441082543307724663897262826143135913066960142993784738795394463528860145109410249563901062509331136892876963160246148464434851582094314220705619226106876131354342319020487514315150273940532482429043497783400557647900363780816075230680539531144602170299049468525236378491961629576837249475558425614567454274598200143934406131053963358162310380880344944880578472223996282253030203010946569987890413549995669015331513266402823242610223482280576667348212575265330078353030707980637048255973247276030354039351375934271500173659052327855665488898188755618428410204708310540109573393461691799319413347707664096682883629862263233768578997476204196753679488219992161043998351038734878886616968645459571300952434942238383081885789895280626145409833739477636202197754342431429691451437558846230478867880464484603908529450215892033185432668094649981074442815818408902899375828366971490724795165805029260756920608416018583465690708591487646147393412017528110710404062626612332851045526822324661191485092394559925355457079136309778013752218836619927520341374852947265581878120845592146705750929274067059714361116965530285054292657791239371083968497798262920524751532860933455906084735504353807084312305224288502033483297296643524426271857257853493333044049820215046368181580839234411169955596166122593028430710394666694237061393579366352383891491038499283920223800635808534280183338690257909802069984206101080799744542288197412015250852498856138629728856126642597979637541504715626748782747318991637776187526261230173970913229896054045688642928505316440245643683879174084305534869354837394797002204087131624652649415846267132844936771563232538833098156446097072083375319284001219636763959277131393574038861470198301343827547832043778849296207097025832922849183092385946970094978136644295309660073364989312327061986100033025787287235629108505259334973041779366140610285155105638253537755350873917114974006946197057936927990605847640028890312454786605574189961686113709745319075819653488603397290949121768257799702796423785511025084566783864578791447290811391410806275007240515181249685559369177568379782050488723130696465374219821126348259460366267580359059962018538075376964808420593662618954032624503788218662918263248535976911190599129176356258274201999592970380288846811901162891452921839570181270259270847213479255560019312756641573253472476746851517348217790756528261734311842581735337494136792034250377190914922870387932201892778901698610305772085320888070046496297255831039940382618331626519980137026417424695509239513979771185784591233283259041343744459683277474190823293762646615866641658475772019170349511586359607530042321730516126856019234486297364054274722774280449152840153133371750040312964076974255726274155177461453978104140319403713030997656412068856305769415300091720505662224631366268367549757923524472073956058643327737027431194315425147126564938123522477329485573630239884756354353669364690357857832612693029840114706435883884234139852503291294558817817288194650604362220493290425773255892681200661034819238619990919413729348943974816056867699193905155849013545891754972324432967632350705852964089188355682988754357490810667048414832426919276169927294281910139774837394997475730042126997007485436987857185828081018761922109792051944920504662394754361188550672947732689351426923383553518130779105170360156420052021902686709169414686215571292447833465176456558664249776722149461104066966674601599381541431944401924327274416505948364205524653304891854390183020596795410812270007482167535128214037803461275532273435559346701967911499888804579491677240671904317337190883112449515109173885948172394580227385765259463735092985689517883170942352976229241258384788615732809656446163539486571436546075072724695374582543817186536364453299538870404891020982689722341501392946982389711812558939152760969264113315734793944852127747755103685075336001025604871459615263512762143252352797057846089141400031987182234446507619375461852587346932848883977103931937108002836295505963179224249504045877161240640023713284906287880598562430891704836860058291812565529116240446544301581942108802695668044123526986144108161267880951174241022014974453527598387023898979239795962501223030568594218165938900582346608623402905934814588380740958753163571551003747428554335088218010655228117658249399357348480398621707265602869965168374309495071286297520912613396713371324455390406611470392111282181023023385911620210722577245055471393324198664411710731033637707259878893758744080319536883625032756436577304453727209618481875880484460003857131783559989511369473996294589021198777105506124004729610369026190947103267913092112357098012805880199993258962747323524260923684359248704521518187009329339238503163634661124542697851282779927132565924507375835928714913778773168190148301901760825094099712971002956091432737601782422942064823380461474807930739816305667431602213912943398711988211000117238081909075159055783970844695713738838410214306711151003878882868965204386725827820214164569874005462443811957480250316780758893065944921731375304758168977122516049285782859323187420062700858092431713816476648386879205190155861583042691671767280938581605994398319281941646935440938180388079809415213966187270703771942200330383579572141610536738142533834218516274407601485346802086963264618424515601592615908063691969100553832380689326357948097890321314879451905624004546619005056413514736193604452112084037553201055725429888835236096564649119008628283407535321699401691490459311870982600883863433045621029355801666715634211327420951770944292277740106097954928334525019380319344764319670948335207843631169394681577462194751157140695671266779341553881023429667577490792174651586739086707207735716376441728175616505066946416446343015461586308167331291459809381673321559814099417007039725316827456160189762933687324730619432990962954181641559248731291705672264437552553758644782282781853229346149154045107692910809347029573724014093384004996745635314060207680339105569246411605390668364339799309620136875508492925746668655556987469719572673011598853638446274871317453630610176988887261235031223337196188074790083951158857772756652056642666215890361772587683840529079595622770740028132211738009292034994811323934476381027693794056128794490216069485438593592508300791654186159779887774564713457432523843989647292271080922845567873312636555747947846208170319063897009871604805026031009642836419601829793461521582175743786319035420931720971575925610220883221780058603472619133227834954839277561940891513265215899667934889444379521770679783444557654609153055377027333259261970768631159855208791814687615827462234266412159780696733180245267622824704877531940916436902426589936219328554510753694313932461903795974009376104320197928529172602272951078193426518025314278067956053763614660610107358235266359387426731012860296887276879469050816477014246158061686275742377606566907962390533335227342383578421218887179373020949759871246773769509232177522214852434158510946283066189321868374807232867300604462892439982113131513115188874230516230467301571411698977696847653158538869139244205895798852429249799020412555675742547974345474367644420804982234896374933301814706809595751915328441923861407043019778900539229899220587183074198205426304050843485747244684008316699995268766465981360282911805562724966812645701395216166186099139167726353883282868327698791411749984252613564351946363726496514438198204012296882236215469729525169764793599989085050825711802369117381329584635063734536222933798490493578314774928915430994495811876295443463696053578827544025863194124007586266505938052084216986805202210940163854961567900138927451029801925408069267653195675881588668102411728876523634678591140233733657953662440790605556219391904417447993769980467462562246898404783820272015689345398697486781938576374955414390492332051849795688304002771990474056683753101437775925753206863769931456804580861700605119548003036956010053471655358913340656977588484813774081846894638336241037653661728604703378277074483378877560275190375930518100761378431527204022650319548607466626707431544016104952052015151862578730648898463805952291650017503718266311254323532411225442673444641331078796756460987840492827432210136825401232333709869053222787479651791495425658743474108278032168790645344744416851125163037855323133175763480042461299757017203126439820459918106908910891808038820269678697584614863731567524151909537828646296976216970849852480269254734438155510503959842123746356127871244781516270890952453080222093384712995421874312759618642666957854033303101866304052900362864930955543653635367672992058820634800555052281136538482222354657978497983365419742628578092641784020073020047045888606195671061237404367148618692048319018300165556631111909157259929110481613404665962298586401269150736467944755560376647631104490799365209939956516615922177972579619957348506846526920409645551843956422505172392031562911238687760290827654043800098382654896392009610963192034760582197790182690307779458658366998525548735684377244260811692455421559471522614398605958382239113560870766409722632329923052346239964549311708820144214414830263366384860195783750338440254485567891197148984503447311410585398225332745240035821597971339441029711737239262189649783643008473264973351296225414623083794790782251849656303366955808093206719256348653140897272820712010721236200697790067990006592937286998369728652474275003669087606719242543789839615461509647293303530518384126484909342739546180866248543628583753521737482063141730387735107707155006789269002946095358633653733610585317458937421531559698512837460813396076375894573020142599582704287395503889480086071523469469536293443466862772878573106032170348579422215839236756929520543940698718225396608286831267440327390904282353261919754446829008219173581569805991265530349020510945581327107125569495400986915789167086366401882377178179068728665368192668019886702131909248496927245497990759418737604655946343026732029244304847467141978728048521324493427191241360861744312992206573422222508537274173023716048474983531106577805500367889325150606700623886936491063979202208704298003359296296144791130593769717176202370720520839402190483609276573268891884474941048604813805592585515789538658750606380501131449865857139555882293460600743520619959870578433912962833765788410838506457657851289404638865171732002071546983773076536282741370993569984137426881368752606429867826763870593702509153397832978972259085100948803716321344838378869147110186436929850694944445336683389972504922253846662716714623675717073181944918445853519580239879011916509119280015531831714207758734854798828533570230869693896096985319449673705131858627612194773540866276712743789666131758628843887083456428892499721567224449314350288556255943633763175113388797542505133259108735099172688029842241192573165004756084351381947489928013886861838719652376336735256729472184450472258041316654632027085528045410380215742537699356315112467787801426046709401480816588615990084543706678355117000735395280580048299399266575290526129479886304610408817701229110186465219099954012969602587880657152794305041534578493015359783756729874037832040040099021146677548659047588248667912940846988284943315956978492907992126350006306938993983018194618399992304595557477816767382146555223241243306823284321957203314252264391129586590876317757692153330285589221344011569209803423804340466703554789183731550671857118426583865621250951609688867219705332653573757239849653141145883814099422070484204183354842252662302654316358174415762508022859491298204666553374533553066697471923993977199052075030215622394331399711740386669237805706899676368408500441544218047087462717104560425762835786514020393756922110861920782971659556533673497576343180126387096755807271482269193684380848176681680884640491755012181042505982008249058829293913975826407279141714643181102918516807211070156451367511772742190777637428945411148414919116576543170953890047527728319704878136589210565115954265681774010226474043436011010809240020507805963840130975385291426014925332549232877596758180085894802153525622041927934915760068995473445693180425268986909847291751647717320718789638857624924308687206165794249933696313648363772839106890116282845528121758020270894128499571800920869054243755224514200677519614062235368637243793036869682538342345610637978506820878309468312730227582105972945520725660149607349449437888434860670340889349719174727358783144068229497491155398052125677670586104872400898188331242224346725225316010608709466563493590974197136529014243310381604600610886762370812057486217304839017526557770407058829830261966701633387495340841449435100388538898164852076607690297225832065956822089299408453326882910215257506601367516179519670366497026406758338018017522790433851104045101914174551935109208329088023980040534316282805965251387396213323043136324848744255884790501154176939951387437310107759276140061883921742430039260717879103996400989496482341407992365144512105328465885559428676482509186230821208158055830489044225195895690896054177110604656081775794041898012354074473852979990073942967324107319068719843897256002227582189956945013919742527866679489383471468247305450591966873290390480758000202336717337793136646319841569241998357829246449684536032384570898863955395006541113558978225751194122099350644112721926493764553762588215087689332052608662309633509768707276046473662753975706384485017022858093479461584702199216908938621644207020002492065131448457426759978982189008038288377253022643880827504639364739328091896189042813302102275561163686107992215384187778843932363576601076977898604658069403758503745284446290651004171584837801462528444364173783021082749806105837443945852846065220719552915794808500149160304491303749913342985568349433744315241931232870078164249181029979556448064527740257236310368142150002200120085438034598428371843117122429176029740779257899416791814447822654933017656745442071215850027148698374938300740331459466350081699152203813406442936631359102718032517414558410969508405724048399569107160868624293118361132011360547316642077136321410118635830864193255709680369584559479249031850792969613079440878191263144139661953531981083224141446194441294703274442588617402674489247459220186781880888227487348342222542870428418742067596989449750258009602023286675810731511679108856987369607412704898868356636034418272249123345616478703656666626481381536539542687033254218443004409201544124928668765784283827962835433637563019435614553322642474842414765863505807465047663443472654858941403866396247178484598818249068852293287515201023251371803037179736462356839770824954395773227495102069359550146960454700421066816790444047841542528475302963347201788304881690565435005953439741837166632416083373322288442974808572123864922315064875771152471428941425157714702126133476785062882887666737596056596767093525680242812995459437421757812811813997049034842697456025086348620373483401836958061117818628710456753396841466874149571477086674725431820086638322228637993360059601883094083047648286696369380158478798012678542069808304677920385759315936020691252268354768961299047384857884674681655669996319893300850477577495667491136187253840116739554221733884520583594968601786798747784340468508871525779711228382536360536377785741376960024348780533293217561524329216548543840032021627375034053698034559758282246612965605829840185720489971580024779795729846238813826798935249496083267224729116797039554825301524553104731764271958926801786977534190382232084849759202609749911389940154951281416014234250480888761829286289867997051548793490901188051570705275509339677769224367216781260650514661615939290711895310265971938165998615797632480895735968211133083909273337009450037881727272684094931649263441724163464580350048869163325355004418602246298878287472127981421725677331248713279447757045923296305878540008640624202069175811708338623753351930684008750522293295532260847301280633460540663465507401249956800416469268412890497224210368560200290057480141617007521018701636944995453458470839922598348995491745577776119606217903218599797516332150251365657603951911566519377528441531131600924112671354527619020651652182849949743389753153683153061989928124133398699694487246381026810282456803174146456709083041364986012827443679098436799444194291971177724171739983118624351430703273438135476368569872654630209468120334611860985431084814584106863740487801464513385889380780395000392466248444413384595196383905514738901664268950037060221035034932382313921053708969402909844866047345504699189692175603416442191240325179003396045417452407610004996590776769275560875482485564084881974757292768623075503647155330029228414552197250442642535211515047810683741598034504402331255472030246275301080179225849496630373209828821355768866598669168130343674049027585639979244242672062563460304129777418952994848218664213720331834134068909709477707564203069060121484073847916062294046340214154551958558389650220894528535944628078480588846526457525706635620578215008775531144479547383218744469834641828982026362096673547303997502507186087697210543523509818222572879420198592297941324387848526189092383247225830670187304727247062000132478280784773068598628536522811192875119104410527912271191493086456703852927582093536030764771427701213096318095309793500061894737525751012867450496084489983978988410183941856914002876325697903894240028443439322925905834940522627071319354473959962708827027299520226464072652390947052983886942243576880721744995433749357051318883341807611521963604885566813734310100518048440070378157891083113523961562287987323946266033895644605018844709837875338214052899040352482521355816846500170480572241736348312955696607204296123718571118725595253246841005816804375603664585886015786259925636177569716600028075373813761863060291003721324836508535389624957046036031863150649492101231538798199394948339110049356152941093947895944502554456751743372969001901090746713260069397078164003961047804151511397959314372456635856472723990332106125537217079105893684825193519326344144339290266784614620593108444609854815543005168118497145030126620020756153348587919936965718577995416742280772776550504708549003211278684623043369817288726334673696529481717208583975415434564647022561453867769799403045518503154459095177835687046106139313121663060176791920790301647366209537426466215560498155840276011202278191224211204530958636732888320297208630686004824418746294370478675279350990158035472815132735327203270628338374056721848741685332197020899325940476615843976987311777933292063696235945037919291619989232541302667200571643066986193220751125661504132862633415142032082806409260340732733446283283921690604895146775514492741703943172219050240303460223243847383771419136600370915481523338449192993609864784443591733523702115678899699220984351036596685271058450965511869898053476130846370701565924968005274478306504945337212437365639377934805116003601574764014811329671558748050181869667062289040856542688987099205059835232619278794212260418479084473688686914343862835906194632414114868883068680431763381388035768554917098674012724925154816496639091491127535751133319910446502526416827877389892946069971791261403933954342319839463286118044996943878428871136194148056167033350428517839904310979465871802698057088999220648129030257464675404983031713217459070598173355893247135444363876246006840961000645650265965665243600677778902695878132661892207902317496143821200278932777706433684417415080028576970583808816686852628375666486115348270062732052648488832521135166029043142539611609067818227914702894396584420544740511284150642835608343786523099346714577928894472971549468617985066214963492768247121345562626951330736205717824072965461722757385600293941310996574160375989561918805012597854744125676180080490818415949975669733697084501395624425709724243196183644050125099980002733130241057394901415938455874083985379257908213472241640969377722980684971303590984918125756773907576299667110688213907863110784829226887723999304100489076277958468272700168278894404715335003797276997209324694164458964232018822877964051178790241040107024515800014383800705401283787744596414669367722422976966017386446160911784922955208624983533257103764768584195110569056797828288999795269692479736997773260257133366027909143455923570789357570641697336954643491343881291021965105471110576252598518548614667566638032850708376749646858023000508495326268772067543503343444372136213238105989819775253140320374830603682325309839536594989348447574298966238118875473874255778269812494989873769577202421938121830402773476662341625089853799490086670573079362065838670737734283269129524694829649035916034697522303625733057327688103676008906935169196036629552669784024999319180603905056600695225438508050768617943158013987757334034239618463628097660942273782300634607953241713006809596795842946092845672802480315474885421784864510782456166900507878535977052328366965662900023377066929395260573172388360703883456384326972643428275359488917776690724671245802680576249138654487648217086058918483095258061213776712295841271890625959423352417373576865300602217578628199162361812909889280582608279280830725478426160739990118200708650416839611062777683850743727948794416750162616165179313627829295440632926224030162151523323324866407378856591046110721410576636653600113369191155310821984037179486704504788290237583541729104044809768635336293746853024791042709344947886856334884733949144138813659597302083322372571012608134385641424040202873981358903501629541412176379857212192637642408840600390816708222553519999890198926383453833036774746933778812929395992651823149250841271404771247727090060262728087945584508403769359664389047866167270237195185681189287311576356800342395974749918222460497391769216089013278135928384185029513364935741961251751228581218897577351840630479741071321093324454587064076150471897412312438333301191221044255631711662240677905927388771393126369633221764501906625826941065434895822821816000680675210789228036902192284546287472778612265928868011726923863458436484381561942973822917233200205535022633687929079124072358975418983524182532410199041693064673062280516901132573351845843070754582455037616620299334863366216205727336627619085760407050955733897800916406921844690173351114499848277623863412189689826357732528481829927507665346428275101124565084756006320940699559540033947610923251026465795781798416967233947303119278087461068474012470149382936810906419722796977995127898441268870646843310234459374557404075302202576416496259911112696774079376571888640455550746356120750974349997226748567908483734656546536484070962981688994182939688075912884619215335444303308011330561585766357556491791438589509768250379577238651481577265851544595352919425457312018793599602868476342238626952999551768745615292955830811827091247275683602499795797246274671965710659027094507137407445865423524064935677105737709000770832021847181867277113211744233582511651462784794870402574352336783440744945480289756088003807545746488808886920452811260831479954084323729475370967895783172367379234092529103648235690580307375153707742411932208694736932619079692172698931055469594658386692550678706971431125775786102012678455651177103553115884085139911416113449404102186979015765973041989100278439053889787741425064940443029213029513006195886639954769784047325597617398489801023472681403110516462750258235353647771484982668781027070073699100639722460849334363432997855165794966333549454438172857591786691999135830632285864313533890769782245147879915157330300640873010744240087672464988467732654431168466469256819546563294357289745694839451411263971709231379293466420954790503132632592430139298804297390468823212821528913671379476287482716523649986751038852848241356065432611427251511458224690030082370050911253271086736046465762445035456266003810846413586140787533124796182105986131575835743850702713266993688488413266255104018675144455153101039067849056354949187752618606553713365550245423159072747065413231099375563742278548363410613562595395926914742677839150874244022638263847173538364768013288094953867132920724612516036708212910692216870141303867657015364671328285147910555931378036122736791933400600808494714352650795480659606823782755117295303244504203101455276809685559756418890018053948998711820095880105569244933272423757877499721471217871437907328720919964480583658683430452526818951338709935171681612026264278908765363615624343273937030999677454432303016059006809528825515988638091901642680068000043956616007295881444429526110290897436726772454515152322698719790728786591847394868798838094605912538901510901305291985835998119157026343549228615761533150879029586156129435455437348509741222569551063219770988673154542058621423572622824774113913355482433271572765754129706374660583175199551951809994392767420392582201557023257730574539250218840035970348936759842554483267334827119407082919653896192457488760089776928646450804115566801349844739420741468990445626294875276150457179470011966964495911330252426054320130699242633301929712301917758571300794956018300134297065628054513482861811821233493999165107211027124104864782910954665839478006450077792140211818895555579562491106492154161988238554108823614763484015748117670474888912593215504379335311540181026057102030537502027323651387775391170019808989039053244724257612365729193915375667713398135613899649050184139727062883390398708727484417834552415252861971286805878860389667662173213876797248986613719600644671517952230078650603917566801015358428648173680783843415139526483414250157676748614512019621740190211498520554056361339042727077856342333305321938681625511625790022522543959948169846025491701432710604006084011160187340192852068974201591357799652395100112464754174922007256431551174805008816058385017545624301588042946140521445166091154445401260345639213857040835821767941529241458884812620619495355936528597842132660538850728346398076593190584282617583280875010021872550676705171092561598626436396536199389309282221880824092632829400297187024474948424900211999352982442034831918392127278612987678825741009827024301921102937071276955125222240584214346776462591748625657184401902233136863832859681064774617873355496086147527635528215604522861183642402437581736496725159965255543493493470624402106656567279891658189640204759106051137145223920891394010417383251940857999366380522530872824445013130819363038305339674096608886771058802352213439657912082756554242182679636452612818121010132555402164764085013021737948284841018737307455160653909767162285997162807319171478615220803104292983409921944873677357258318448727099416399963436112867228320890405755881969996657168040759003918406732872112166099873859359426578515599753599001736326680735441256778627930548657890805137930639456057923030495330747112771761353411475258032440757177330053971213902629605414507206846726534673231636585228713803485750038459953269486070077122132121989668252729865618094262375490934622186340387390700796320330766003079225936777008417745842452325724945696998819088812322546579261761068561707785843411444404408242356630012451403097417627150568557070439392334270806786126997178095939693047805771715003808672366346824548648278350868525406249613030524779886642248787423730077858016304680808735087601541466367279181114152947030020093480022598591562919418144306581355656592641281656154463064508063101154843925436488834212486291349876073804337259099977092065802867181392557002536176916301319639205725287633747482126407125771212955762816024092968512628883228696005093106521129710579101618188882275725150330958912835335975138201813196099773578645915704147484035626726802911807645413516097775015694804154201821934594572838688288551860905280416166752343079642920329899595888582327421450414165904189154021848174300309793987498173210636513807242900598012589096177416149964300189520990056665458205356199048450305937900370053030442269036499601203376543793587305105846338364670347763260913920313714626833498707249786459487216367224085294267572112485747933028290960337229434369484682324834874281022036683133630290203457714887545891472071005403803930615237759161026102072822254870269541099192495239977232823292231842596904609050608137617748066925892055085528922430749940907273156463891689820151090361175630605655786538199584214937269664036485802823241124126736713947002849370196083750626047059836944084308171455391901083407219141453765039250146388603764988246619947139407168187494070024860908882575530635329078367934886016689253401161694456214131349989856197984217113419593091058762403469540007180426931815915428761296632929722999779796244753268262871554278077423214565097450583641439201530645572085130290166335105184327321185870592653940151546274235429394033800076510496673257551651570334987757504543142396105997757554919479145071908918365755540608852449504489174355907696083206041933148095381585426951575886937900998939266843480783023657449773794242237324656848689024088616417970614420850417216851095645014453238962954950915233244149262779769768586125523336784062468396158334132928167907168808114806503817109581958468846488909923746293254900689471158621985562938281751977333208295934773080796457951185345422109633240178820918043347712315854111500768680580893376628827057264617228207230299073775756925879099314373017350283285647254619546697672267132961123579643129975116303038788867099715485924289190012788023492510159648410345749115987974443006443248626155608491268220275789352246399617200799706858105574673710708243513427175152000037895584820167043297308143458576514678475815294886103266865593267124139612707536956739481355042944585201282321818942731618682540962034196919231564222439446649601820791379789141156833667649306121132450547571283039530703778026340868718635629223568507047614604882998939577941181173743647423299441940298814209188871608126462035455652696572842425175335249442693163926992555368340523988901056567643508442575108495795826194785525656631367213104449779957797415197850641448592339768745728736006400210713003810830393484975628413602259704256611685859275855172098243740881945342492801906227202247308225641434947210524375477152777786434380830646441794495972506687963155624959038829775859219925822141354106335250779444601696700457716438545382033431100040868651627566442717188204914602284985293221584712577337130709757171757936759143600044370177299353629639605789387123880908796767838609240233395373508902452056301143705501002693479181715348080236230948715018004106893178240422993911605703252357890277349212946604355467528202813157775390951694654634565813683135746167169585095953096704927349152992468728877505925299579649911751088290686104939389239942245855169931779524126504606315841611565291744573785697019627225042997963677380223674639171646466032299454520128162975265658516611029547489179991087575846411077223254891235743065566279408889226527565376736213820024256990366267743371775976411914802898658448853485413661071127163588384934727172357457923484765424821036553885401394627482383506057187516074251167369901083782244135874964844943404772512868389683889195219616976249569712862503926608578677760353138148738454138558233922333107929995824901107565599453587999351786792452563510918854642099418487271073510222893491316638419919050578458764872805281216228591750026013260208755414847808294294062858748848475705474688020495994109346446907980388440787785410867055843621343400502090022757049043403299805027335136879944961964711278949218748259398084289548600563098439270439154000680253924676914773109567242109910682050905409152297275288730280257161454726677357222421723345051029836091097132141913691451802257602112886244907485712437185807664078816168267796122037651399052024254719525419105419039877826156926612211108752978918466112829251637274099974074238281820058333704071175221047003390008588831401365143585095028413157843627322414672332545478083401187381237279299006505941218111716137715211949340560729817134269387470016962046698384706735436753535976629655498702099048661966544651619761533178490471981972972299672191250747901344877774184411251504426569331019005090941146335942304278711050095593319783361755501845586942078579756748405589757352000043093688723579187862333624639536605845008082279354167980021294910839597531350923112046680169302296278840948075028849183369599844203076149131844071834832819361202795634463921659728636570279759746611769510026786556793585658556273242997481946132846236221069885719758533473026694282293562564100846841668522306977341178131813886046634179889375393819348939533117163601964117468637763898134200631812801816404778239892450447270428072515662444927016230398562434893105308406750547407957382648286470786010162600662738788652561707691560132264677733869520556473549763377926116372006548482113345701990741067036471166065877772114973345699604813297016424444113608670407024992199045744838734183032417443228450356016442134748146370550386708468046183765831917249377809344397689182991104676734232403309777584477439526571350803402643685857731510672481118825148592826969713504617634707438944347177570719702224242481802780187720760076347127146220423897678856968448445770168052419352640677524670392872541445543166954077755358554394843357843241310527048223355534758238360202748162338349165238866115343423675635445061952406792808947949924341947819404091090341343717195255703073931107214699050084146645712631557756483661940499847506009423997103777453667420165753613014443880595860303163535702704348726335905734674472151781232281161225517047947623659037350276845715040368178628412029332528943416321176738455003220689585086164309332980516942970294337123221646738948157568358683864573815190749187153671786178320906457400335149577974691129477018379582289304472039322020907681365399414358732220567600626950998384292976313399310545626734472130522946748017579183506100172569966688724771072628850038724182237817809294190428177899275916623679005704245020839627758012068946706710760610144552393555402088019905121818914896336572795542990432368779172314483093150255893361393511727024642033683182489762674905668118542696723756355732928251150548564872841289381781632598492867569279555550066068091188539819468841842133237029464891335139141902857601642351456623157495409616542861076624146760811846929805877433875455931462971992963436740783209685626369035222677942073209852460877695859684191455533324646170928410264740725180763879456096918710331564039423360066524794912658389170681295348882042798269708967781042971257841526682965192859779087892298222401717971389356226588662754729931376873855992348519479104775528226045917408135174593553705138140097511735730656852009861863000648802376560187098506054518218280589430771286092527383120118042586330909405288830606649396565025364841965205014684513480517135168578054301752905441787593403569327910158196851130438528277414111995348965139411562222506046479478808999781534590411461884511145203792574301332534220470509818690599796455058670113652680449083150053218355596895278328917887917081113026524114109049097185051397420201955867436795059597796184885042124410480920819954978342903866051409532463147321554381251062778844825477105910797237308317040276455568158531396691141959320327381665019788517348119967589277951951252812864310834914623227221763103351719546679021139373489466698673304267707567578035996898530104315393869944781638183369100938558961403882175614737072089905619739881615299935820197362555092734222397720220090663218044974830005591563277757069895680688453264132077337547367176257131026172025892314000966972363292545558434611184728386624391989540471058994432385902657891989163018796126113892169319923820739616589598335498803390024634775858893413166198462517781582666896898629423387978558582491895196931409903188651938970785218463989186243913859129653911536954164452559246464870624893499021442434717270437657958395852461343890950900289694886494459366145822501487125701906709208142470023838686896987124858814817359440903309854720129203962771624802601650403022999458024423483549213979018531825509210573802088152399214410945147622431564072601690954474295987763580058129858629979450941980692628137708768722053742869139182875755717145367948291953709666185334937870529331164995315557799214998490974564196881776086144274694997726387773461544800360317523223275824012792450437139738012438874342862078290189485503583097089066336207470402246446891922880404821173218581407412350210839075154759594584001092521883048342594399718283911892080934750927803705206874365036402190689492076762155593585885186595482033737211802141688747072292159554569744623628291431130626170969659275868783211289889139780471937424719050454702043756748169555366207213878477704475335550552214657198535668989796285545579706478119205181958385910415806146041479570335956326042686773655641151450651510336342987854576683068270785335497501672766742348689730345860704679149355714446259615053246022246202523144255845128467675763686572825676994112415962158694343337492826116305307285200462821668825064121801925138400204937122369077209619735657878087143065912129846471431074671457540376606273036042942880961902609457955171035075037653208594723144857490337278852998999518032009663547085150732806404403771775703848593625979085373269181582866879715724539051483842356493966573543946072478218344477914007186487748877500209461803427148518587118265672871105443535892882284399142981191919050633937497516890497855921093613783260586032434588914650760395354926409004559753313102052864982656993714597014000880461060783037539321154126625787803636267284302014830033346138805904412065572585328183991798755588109492669504409765230804303127651707804646239421251732172246332865683149924168382362715506196084403236967377991300829390438090106677345099697261732260330655700522352060984579404365877065311031645326554937259037832812555203509237833300126383078215523705879031446939087112503947476227900396461971578631262657860525526629136066445514244413687616152335170293515420058022962582337746661985397713739225444077257366317343718077324758554143676135284680017041641200434464822253081494119785549590783407049104810432954693794704174599173367128393711766687398198165194080828413219171682983059940458138016309470775687245094800653299263758961164191858219617284686037186279523423855779555201409896084030145704509855766349347465625412946135723964829159078795901399091719973767979030997481750906389159631663729553923061425732869448496632939828574977943300301807018467992678247530386788507408919728873080412091454901453761418797525700689439862614924632193757185275986162053271176813007386456752373469762936937600508768224069492937610183755588076289981896814884064608773555186211579637644152361314671204151917462589751476128699674851975068879208133707727695578890099828869532198106900563672399991086414464446836367979627469178282839806360389823711319003160485262635162485493220094030860107167035790835171759574389923290318052428293034357663450501363383787976934154382270038638481598773706305977323376516656111115676044426390517679706609423053515424479353505261022666404436085330378802653903208084547777634480283760046325122241363346553528874785018537435422653335804186760833984755135815838301683993552818536010547061833550110495149610339230053925404738173883479968382719860431414966219114457606052683544077622992236014287497885445545475450111219822109734581565121915722054621221140017030751636173310608006075293355246328128867897678956095226554106088617952478482914077051104077144062147783966283917577225117953418528615752477192765766106379990484406378406579033650656234388131362701235844425310208837581329096537982097941581125595879390681580067435508124305712197358315723101232866152924870406960154539711050008911833912181702158643180672524738576880703509777027112642325898389714987101832824438803239130137444757511383107740335726554944161528702951248318303149061724483508010438732027420316200693950279913846066591373605143383769866188754837149211380259347489498545503118507679535169176538194522172288703116838252995365934138333326682247977946668854043934030390978840863101678766520165652002098345052158903968279977861954884277349384120465786304431361163037048046525452984540690824507837212053024379912499584251641105230986748445641950800780063833385149623193544447757942570917696282847982799686688014324138039847105450891129100552086347908512298754612428926138155852875997463299177178479964224491877391899946975957644860842005342141996366213146810807738661205268057309393165324543636405812734721757220305334486612474037124743920543841695218988969024603502230750050616332344831919267714453062599040128924664420914415107222650283806056199542430230119375936720030952396823870543482129473185065211957042853805968532581425068389540397162336919847268306132092379285869953572359400568365462210743804510013784551304104452893941969154548747132046675301402630093885957466691899629866054248520959991164684205100223830727287004089782631994236209013142458643962897420216240051620682170582030025691570198836369486150635256365543669342987372476203049016640546399882301634107323375143403030457135886496865716942555168639343854888828562272864430888332877430273250692410771222117832003927319736352647125879035231775799631085325677715681221051647722555458001378194608920877571402995108435371622122683315390919103015973620587253307857474181002163150888784253865472028504850589636737838784960100494969188978424422367999124390427651851599917977800141477673363386951916401359615101804560950376423747224199472207374584738799941620793489168929078693145146842092016843068439106940210531237146738467657802819655659845873482187933665039721000139988062885865707293703304559509432151058912367819427123176094936294375709099660281196717145590018192694680584005303804198534140410268205592695147324599305073253442555744061629073322747238797448292872885607040541379209483509016381407372529907646564743648819012795969893726001381050863401322837957368924760559907267198419365836385906016211737660595165639754049011114557846598125521678551150732363609164953308886438687702136738786266903079678391939591355098633734272714432030950397562069913131404302072096304021124373555939007743385218012999995824916341552809840001460259684154402909430055835436727379314905031169825787621005706054027307277896508172240822284250505649611688102871698052047838581664702971368866051421587835060468233245048782739522237677728697500422414953217186020642692767358933688949486725421012426491554568661666408338084190977502860785859263107212933852634288229534197520887641918272577000575289475868062205071858203145635016092454930144069096453620444844283792866809315227015375705873277958850954547593393009808486670179841635832303397138138703361674859786446100781975425523475992385888612656611597751250400791510843869712850174291267598076315876980539816974242960584267329250595278764715574054738238058479957655368154828932381613770777322145846705800257441305767157017409641266410367980790260296991447161779014886282667241450035295683969970978996580001977978456276270747455452645977174234396403040730524682392333697715539853991530181084573719658899143152859286916828779752543557679662608535225636838700753931873991196030288680254251712879267203305150429588943637238383736093355481806666740916960066716917531683263151890891383567993768648099811926001235185254850782966634026060677403265923434630609526395958652023004596905221534584802649089900259835542543192548076350033340942950754292174169676325084144774595801809764809531571551099659863370198088075614193749069781906954840392705142364250106162281715898488177999013013905558972099937985703665547698500014694489479513924191454098923129126952230065230315834369133697643928721231935472957958024690563384320633602035328208784789361114340490100145615438554275274926231396306246973960663852639481076510072246712291065012343930386224716922243252196624856486125581762964461243539579794438036533671595693135783301366999568774457435340883326998891430298390648512058363894583352956820915103664187043485999501176574992947710191247445367616011093009199437134846797020925090487792671271337700429986745866734922168296987838058222771231051563970498538914100120216682259756227609530303779071626287014400184644678636825781273112399372716900348701413839028467619494377672309158598469991000582246537205034078012105979153025882057891296197800312406973009166155546741245908948903021358293792602125345649395452020548668466657733476929180111960929197346171459499050173511798817947283555558761970569116273454973496015258223704079087881907991588388697675547764782991305452855052260478102113546907000101751615672516931121163071815884584662064107674080579574164159872785980124055978849171923699536710171735322613989752926164185090065036757231921706439786806401349590155363809605016803705964061022729916995794118242961150928968394553886756025163364236576201324510661418536930570337212477005242105995975982027452085563732447721059950234400146602298927465345310730929425155974522358053367484971027876308613853485356524357573556132737959555563287459971794845600743384963453414024420839145015645382696587130591018303497474507506169582169030851929945845964518305622200023540161373290395010171356030953730029464097330203134193940667891156983070646059942335901880222530103347271466326335002609176251768987465908437159837485516981399381386005071430115722930162504963760917986034269410582802765923398314934996446680243832138216090858382463054583968148440824734856217337052029332022387178101322459615974640102916295941412374428760839783251734304094042005037073008359053452266164134030658635737678266970077731818352993821687378354928380818987678246400346531612926579359130555737950333086341523955556904139154085034213030918334110298779367683904351651341784948498158933637144580455806685031810854189118914300432352441223204510879436028149151026336732315751636926758393613363920559525075702854731727214775954822666974926367138709372092077572807500801999890503211598992470002304268136179976412736187178408783721553358844746342831344109212575645747322689237427393137702859913527264016040016740406974513077690550397197164344413112081807048834048386009164953062164803836970730236988522974491273606849506678335791443709068858789715047495194011521516292190314111016823627165282399779960651409153753775896073292186577213860762595256202608711820101752867967374011429828274202627686095295888589386088316669884882293345693288581712461682508701361187907582461081559403958012813009856338903171247005884609392881432894092648459061045064992419795997169390646419305312167428792914217952725975534868705022312793592847572330316222495809308277497133813171587613156409074625808119557975921095770497677300727257262279557443386770101062071788353026814517620101696088796544050085174718597897187458623278038833351138895182661156961098448351716201960574795383969874961097402656100783456428496899615236738996063214240646236434357765342683494316730468139556692600089161623882332178520544965348331161210458491628119778084857226958309110811043812926564500495387375777830954946472033158606532310179278942932474265605171129166028384947582460855243887401498123626280858964688104835682524245870536928203048581310948296874646409009426103462774120494728129875523986026020697694060367221774936442460128521850378767603429057562050924888015480551271399938566285688690247196763278935934631631504476417989199302013417311626680167636500655911348803892205604423032959810828938244275413890921482326760530615220563275373704587533890575546263099935190998728980864899463006364641946790774240813467149224939200461255102767669476612688984189501872283121904574027034013069968192450458897804034431447325787551346522584674164276209113759781379969341333637577011085579834445492197643215520767474309026621494293332687631085213928646018832360223929780100858991279360149710760121365851935894799976046063581679546373810945464831907185653032111490942760802413703592062891275229134947711046468941737399818688920821521481206694987194035962321375042112105734601791484804128848834191859132722179695619510408073162604010694525699102823820232815151296185415718286776249220312751781335172280069187457518460970491708365422332368866836467510279666286358683502270659493266291074500242953955024966437550883754929477428321695123635285344474677609056363589673903031279349652040310051270193851223706779270256044773168280366071040776167464585237417388079578797581889175014715543321216002646412706440626354755281839287569042000199561555809140337134869836829537993953123593040865398703180425017039349725912083953273214132934269754131690481406475737101954220153753266786215277006584348422810798768520879791094443473614939407430429027817074486858082226657069615379661603713884346463632198210497232716819799413473807681622233452366537590923506580050452788157412864354945983579981718084390848869624652684591041914878895571421871427156754550970382436661037725465464283635673536540692629210000214617244621698067403331897976367944851590436262418189978289003428702757368301565369653580299284294553817374472699172783532581412873905861065692107392873484414870945108516149156324699725367512959659267549188263097796210183433721664521109418006230662987842710349187978735579863764264747126640482368932622244438865429859167908242308911959384555050540978677793897954874271302579800428285031279733306572671529797737455387572478904119961756498737492096442620082401686192717532615592995185219076600726560756395591077074258981294080185913472409452178752350869725485038242241192426862892790952849102985524908507675704345402659113157662701960102833058132076192183761849067468943165361993920962003106304522155486883368819438729927104212579745802711706542027076063550862636987739043187557022535082004460241972062760363976144091381601019294591097759042876704307864645070582501780835954500942895208454167646318484030195880639499370424713346504951738556849980118131101478723824318514025785303185231928872739661864823100106797347321039048936478301981577822176014243123784910154034434195602618494505769900184673456859805538808544612570409805323662150655741901283747684474141725198965066020946686301930916599662205400799721927988946993482628293596762680473591271937251230597220417064295014734040241062121615959305922537438688883216908288182169101237021843825048603198915456794923925319581920648704280699286913541723016125433364964538728368148898966048043943835542515658586942642811945327230823670564212574702726472009515029715270915371326919253700324653030033745289238103890317559985660153071999915635468269880691940030196188944615966476105495912190827920505811448782006851375925639262835156877594850368889964595795478025877637188743758102253589247224946309316838767512879585499778868800786800070089915172313767115191937929671325779132265516988253503915258709185122533269037509122078411664029821947916514002227296222867722008969566516099039303813149401396019495804245459689707078943536587637677370259685210300094259437403940062584671227786177038313087273717441908612140987597910739628924251845193292200234438096498500252090148607884403715551924977232496225660124829955788663583111745297803182036881388880408467805598922042984931033485948233331816048076031632477540144201505387114605776147213327953421645904174146914686721104330310347652869092162733189783676226308230379421986139883358989210899462837691543016045350259145364151009858771785649477752847679186090385782011441577005699638684192055647222303585755101505925402947772041803574771286415872095192407249221248198982777601823109432562821766123693298276145902885890817664198564331768757143885110745451592195422428679245767800190919035638458111105448069968820103769820902871630643823449880452115631370816792625759964116007058904047074176369893706496204052802010433547371760254127455803441459804820908274294308701582349882253460351405178198964415220090980081015545659787481465883456928343986258913147690784461727659722821075527932015235276306370616548501860753307974248195686095632442765981019718909078696409468378097029241823318020277311650014493064832559574867716963780964403991774658668592023949176996224875136453859042902608942469115774324016214779588997100119696101759672135598300008199403620704932957790604602720985957041108532566772438660791457032329946286482810980328972711967027360292065701907419074267483731201297614017422554911427039319161505492043470343991215903379292479898151920455282569299336294872243276163800324479940785030635663482763031979042934258974385317015551677623294897291280836076419153841546295593839455608297431086997022449504132288498302985515378014572073951192522900174189220077197906869193762521167027076112513700711007282127781550576007559165483332056828570489276577656026398622445582549802201318678670290330733335406854390986095190048799121968046652419102386330841133417555652368921671285573538719423431351248587148676762185043821466744967957755844682083115804393742376268272246022520865664083617449613948266291196367028622332299655622689037551009060653788403615623041132021289285163764230650921567085870010326146274462234774116522517759459751070424542384611695162742009938303152050086414449287900705505314582138733610372739815150985155412949230832564073188011088482975337257492755799943766728651979704601711936470786336180519151839047465213531299988999885512548522744247451437424671252705750795061819983963801628657565946390726501315245294576141050565844038362324045125363414712674395114780123083511009680947818537255182186495220101359389672852534823701242846812803084173042848630752640180039900587216696756680256169120766400034643119739248167669567564614344019299581645119274486965213955262387062439065860504581719583542234933747337384463018104837926231108561995428889798200547089830769089082546297949268559141543134047061445772390261553062865909443927038496427069548322812614198693849510864234897558106312851054771540267984469011282526494000843233653230650317245563124497379889116105959535303548281574978659501733798711471641086112151681036231733997467583714795659547191521702421494027294963662533525874060766216397851807772207401114732097980569954659953087734913792811252331679152525990022342527281956885598739099743945039738450430857099923502070330292070925224280555379907056099921407116968291113705625942156344773494824867155379032310672275287709242850364493008372281036555020970676146826778274810163523496845269761933234371290090046152423291479674719032990569346166329257567037570761785152350088816234721146995320728164614905355406271547069475678684381413455573336936486764243121127669415888931713677083172233557610222413018008448468122365968437055653513864548680682377209346254093564421785295403718351788909171871576452093690641404110920792141380141640197814787987712096998127275737100790284498415627875026003212956186543785425305159009415954914788395222392550172926329816640325363991049667266691900142072742997933921101743810500441958538787950300682414143188661872062582369189601284485127604326254120743353689140121765405475179455271670043976150038143370232203464267332493458360673148929263990417767799460613994020019603089612804443099761667108706665117163809831644581584322683767600353912325062298772682017471349990480914391911376400789149342259711141294631550014215015135985589145364066151772624907862439391740641669913182550635617758522838184866221626779754246994343052326189693682997933084000497662883071264738183619439310431590691836587080162258829279190875587481141449062709267034787985215975888078396410542724104472005797696363293888344974012415412405018384664427174972943537814257100564747861999351382837511362867398123443753232595044012990250564668638315473890675404157905742297407051412000704271031085547074463976239277683765205717301190954706839949717366743810263742157761851811410471699224208972044554434079030286847124692296848723927659346644667650249026044461600382911328656046808593097758906131386789305979209119231446440123930735409601230265113719870920448591520650038515484606966011892574487262357809430703561012613091349439638465654825160203681949771619441369906568951812297502882064912974509608224280699396008637900415242516635408140882357547861300292198061114548843707516626890671487330076357668889185647810050582104507823031968072978301457083105695822938150672828814127325768592666540867419036816301709103630104827146556029245198198422357099301852121996517025499211103914474283084530655897115209526484005974456176267677672654444354162433876512026986970256972836866464331267039329650266314019915169545710940977773541593019354721679179647905163813080712331744707305847602043801320740033908488952693167098583594653929516939212350938984918156750576567099051264931564962802329560066187712043730897437398004492610970295396461123270221387498832982686866764730686220517474660943304969944997497532148812419437163081345995433744227855546994899845579967441268424642133977173894093252971587762582951181782394477427568444756738691549140157728077628521581100586705445478926660151384069222179811809259281164381886551083093686324330618548422806874101627578255773213295886520610085494574893303538030934387373814498319395834640577110994174238585026946249217948240987882206243370990341717925691424759461534312473702574065438830948482545247734566846474246024082293238595156006138805630331591915263700496007127098979194243191838832215469391576177427454397112672327933466977653107637238451172745603862195067733694004377424498359945030889139233330169308503251800469505956154804919412171756516799970098375177501680437395678488142600472465511187016287248005300104374301815112295888624277886931919534781276258794240721505762918975241669491254573196854670715042768975581618891088147898062988368515777092117626640147320524280810774061715940679571824701258826144313198333511709732010631118324060726114185496433685631379697742261736558295421686757865450606708133265581604830970460700079143148711240470518268296353207353424208593776953476039874495108825627522884446848205170580688200111019753132445454123434948742827744359446906739261679871334545369296546580053913027060260964486186531320109044078306534072327590295095147526459405296177658686588211804684086679384284885358501784293671383126716360411491375416357555093670982033043074920064263552819515564276176010402027314298399035748818126971440343829640423209630546775108348134809461299052905290876348269843849941719865476442779396585707588373411254652882632643996933191245800401295304982731599101001229923836905620359855486536670086786112906475378485359646280298531434288255291267510829469691230894801062720770696394837819291810983254598458688090790614860289663943704923633281778013789774690540600612846660620946971179121038645038664420806980531121839517179421980983465756362283645413185458647875834722163239022655393349700780148585764201837280385044387332485315545321871583822519618348643213699850206075130652006804813191158470806469205823298320991767072598689976427819977518377132823807703360439339427425958099739794734544947412346804292184182813498792554917995995629061341925297598290026675939164881788460967655770183117960299628934970396700278012664100174606900131527665443188909486262762423552300789837183012918278928034622667089942933694179104744749092083851130997198917988162675228941731561787801133684604778614968768247618301412402202892929774070362395829505226521684951816188749138753330162000935835762879341727042228951652183503436231185676945544718884268644362903414253627392712924853338810828052843300270873620189611507079821368839297190508610290820617067491912356627959588624151042053206319033813296757046875329768030989903264548936708473451407898232352637449974066544314241467919086889016228433435479585299895625289786816252415879777183065129365322114577910392078495758825178036988131506494739523139387930148524398779516023696390037440441265505847590323875848614597189782290330881781752823970638487768474048133823868720299612940320827175466420914640220030301122712012278005536700387812353810769525875786155051732330899588383189623093009041370756576004072146457346161726673111030115699420345899718826901712437634257033833114882374925928172219656373060496454688879266337381769922901673075620874420894432078259626882246758401975281296015341181839192628957782386497946224754941302936518296114628795759284979618926347411910780975214267947416214116919687241556221224776477844990160607121534278556457115063149811177276910351244454908576882902288164623159691516171521828426050563260409951223736188667712983839480458506223144276182113296588286452820021408269630832666533286685933546739870368651098578754537909948660422528393284958649938210936050610003101186769623656877818419528854219349782210095963054654869246750759206332824656529425719622386503835984226188789382774137142538759155395627638825296983223925712029177698385992935091938229455017378818668023561030048545168934025721591850589397665025319602031014478762726779273901707029633657915962906120562934595506078277276738847532292380392900990209176379515937229659282470562107163882666153501195508042780426978521926689248732674027322143213611711860699408051451932036632524472489937382396570725590371931903496019583762463219417157612504855706787858400928076470616841156175620519741600935017336038428222273515571782685026966176601983877096599712957315931538504392206717139054220510972405805763552208938772624260571481150935290205942544261179559552696618306384411441773298756774458489475209102405794327324041155143585661413214558771397823527860091086071130851050323421673428314087236514242073126872248425740967233437993072897006421418388105296798196367059477332203365461049018054779187054372512326355576090316043427616250736162729983365578131243435943519892188310277480449531285190625229627780141421614583465156308689496308825743288917661358991078979363722246009946327165590152735036000841893995705888230374036751741947212038565818394180080540386183997287165570249614403680115290488254775893130525863405121425896302632073714431376484049438379068710129518776781932011565219088520414746793318135158727779758590580674263974351106785256140049403921259448035778516067282386642719803642152664051659246917286392598016037463232993165060818609308387755318922905261194311873173289317781565222766105496646532700441701233810767621281754417741921012541017524165714802188279277605439807757186688164494524069114766902524920586045057843923594358543793786188093381965774047353223411229203865591944219834293475367129203955140602986515080916405639772389874494046027154080400262795362577942745351338298490750478049472928220885525492215478388912358847467462299380253055968092601810045813138524839697346764693127912733279291226872253492694726864762859063868272783170365355101150046418721069807871358444663036249539013610524331600509600060491196367303303211422766777773274627962878419757678202043036991010265790152290074098563897666370984974097229311142845719703582333459753209813187696412372552523707889343882163414402825895604296206933312306545068569926591911174163096598150351286654393098519038000328082878545358330058443402314842047348966806899336693869102371262931478283563926493473719507346823142557894141478067383683901906597876189509171412089289228693860714488527120974293647456023695401392198843641027849345311007340409340432089583107624542967049764522798024606137071605348298147888383233091733760063423598635707817673954277580805649996625161675017848788957078393531781795929659049143089381415147809539249866698409119883839335295133747903988716100495535319847087752258705748199620282811947748603903646938793568027078777493166696772650286685765232114414414708046447724129266663455742512920227608452159385950930658826406921053734770214207520337601802634010861679898515018613975111588159935255223403056329682720429397460364772388918127387303060075503636756895320215629644645798928833584003174198067942124733978723035436937636764164716147706666323224531605378518706215061388044182918755782451983100128305381273817341646471340876876266938320055008464773997704992149463040548844496715235302774644585222476549966197267918412575537333956953209188104195702100649560131175139090795056227684376796041794415951610239321263945825429241176128521276608024768614924615010608135051675712758896866203521713096492971815752703004779354579898625218855520737888614289372184206286775714390569897410448184182038834813352323256619525297047915734524839684634170141328665494738110386064594574192674912376780387938418618769597844827056009483257848752253162904518827500613630953400255995821856749347347208760834393410915692089640227447197368591122827254867604486634911601960973786698165721853274180311417730456194464985821435618164738915911810648053015578724927546393242213178007257947773882417060182868998222178559136167185129054985156550505302830486648465643631152172769406418335367304123719341119723184067442861630847935396765016665294232736143490886311434050278983954617068453125844005505925065663984356220832576782539561937088800602908046623281462653738743181985412264159300314575951754510025328000269753100627917784999683146075138548607847560198366843370685889201779156851540786723084844478911817057279878937592975380396194443102022335752448149746630377452764998036022148373258118365525616814930387646867902659142876770101900997977553325264324383363522004359457949487546416148281535539366237382578769266613146653228288586098776975013065287564674335453361449394942283891123033582320199428129789268945683368678103185635159322315653978791413333189034609314845948348857808192271082654874698253491969025908150811570135611350150320072831007126654578882369642079937549306465211168525764591747157869955606805708532146364813200337549832622552327323757931120874598120291937415243094295931442427326110057142036054954378701964303236845522369932905383670680880131442868340879748280635624600546502487224533821925417750199711568422201128390155103702742684371667953851281071204161000346484794409965164615508439003813285824988571626380835660387912946204026221623607529391185808510618534999271914208866034075057219306455464226816556725623379271130652734517852801692462527873779808827606246670398301201948118565185911453415539581290463534607653591472451936713381068476722234696798571971190844826464717564317048909176177787144393943915190468657188432058728468742769700809327650577899277682275840128680512690192111489818682581788741822488764867194381303453551313824662607656409734615608236360933775803857100729624127087101392016944865673051729856278942370199477507967079467402255069849495574912828105579248195724907316096578447315240890036756832401997472559769304837504070901742973036355833816147397669119932537024162171702580878274198977822064595860055109686466758514830013994798630832412553387518296186135277757887526227926690078915865348300280914313598446786729686249482577741766773943925904251233815458137454391714322584044958940602910504533680846985657782729094969871530407417075775390618257240753378909431731073264640570840481524890606532896752248366782714356609973402510302652790495268069326641609468011847482980993892285995685715269070793991203261408465298175688708888430999573450175526848788289888730587701193901125866977910284435594935597368583334473879876572426473614081832326881347023416069300502752306125274100659286509726203281238492387684249087969935647625604742890773188543090011520706445037226863406755503386130765270431685043935615321442600164892114454266575805746170363696738908981637347675918579681377096784581556592767621457674120661075655496474086520111744861588003861473064420204823587388639165918161193824050591334955375888855792510312763709973168381145805225423591534954046196730997757626798905134979670726399396568936627977169729406836314453907657382599253598183140246770851369547576368888221067455294947841955664621529511793473374511673358075228341511138885330386274777717996486627260152501181534783911934595197823888295275954190050536151987753235976120879028227270606253164977719189542161545025347970869107243474037112319907457091027451098665365356429721965039840684791415225455640785199656780449932333231907923720349702263598358910222183961954164664000819537598087004248764838075977388200193322880682305510543255041002364739512594741549360402508219276941475588148162117444304213085024546271559002158040424989533283737236827425413364223359751136927550088982478551844581172018031721794443116442425766801976064195834416499097441075462383169751725521321344837842699688019933043052155493116841601691593713972922984967154639387065739432007877689429404982333438350025446667331502359721717483261364157066083315177347724462523813905115382925878859529567883171543835567657924490463693734758311715180508125382245730711909287848713776206672853040386527969939491044558342420887336632054737140871609561355295306759997113236988179805871482086732198426312517980313425126302645711757639245239602020809040604206194748039482311617055204862659612592496424118986540832001984477530135077126826803474443534271677535423244082157351327085074584105541502265670535374910465293934754069832125911959115508406321335240252526515757196016548776498079567414995496999789253654569226570707747830853810232657261093214359177030702491551276420546341145040839794189948468316580181245716756709505311232358594831608839325517945031859172887785923496754034728511848021080124517701653074339670178614119797101492670435090130376093623653056495774610205242449070652680567602681293138425491970503694351485999819116441028726130675093713501244774922255132882454386542657368186567222267814821533574996208992245780290382724106248955275123732795253424703775249341227846540384332382896050331162482933612886580055194785512240959398278188110457732020374700570307811356747024399975896087555671692461417281683451005169146081892141932034591417004816750634330803131700934790625587887664810809180951829176062352510315946376915198271339973309468954683522915579678681613585167249517799074895833282872978628048086092953715503299971804618887818316806400940535162079272918872239505195730364404768381820431088207032227982715586549799826643095009983450389005129547157554417162119568518318314614312881405949944841841986953536300475090886658951974757010586446466942129028506158833133260708246399432052418488133083077395851851186083333078921704653944139507760155395615942646391214448289496286958037698256180955244310953624921730667470230885502498318296768088380101183810389029757199861319891305604446872518353227330863933361012299076175988936414762040945782937156593529314459466295464333790352359912964870877938610124282142214422712657199849436206368445218624757871112460998152017191714451844087049996653114239361895750547301519936943684892331121316728758665770061291572830028436853306539118693597205955050578140056961624085909803435986706158757723470407629175676819838556667042750173017841478842637660889905516922413608192836098904625207020292429045341941989322674890259035472721512362515180270637174255751936821714381847982043268473911132812097354046153965817143445512490534552427409462137659360479268977026076961628972868494748876976637839427518896193612321108769588563093185289824149166362014956349673121839368482141075575806919048980243113973591164471263094041171067620938777502749186241453206049924675579054992298173101578129292894428486255146310392751471990434248660202552123724536204252793478349404537493773249048114377973376090160459112697073803545306781864435811264025299647635082002335145490965813522878630645991794943983459037882301132947091613956445987520023716706712697691940784335863229152261437854138941170540302509435352135381439259903003975493561040587775515322313083473032560694110679051382944744336802442227468526361430788050413678551850947389960597958789668154739474437419982756059114366763358984925971985270137773646526555267219831808407661299402718801828507842252395217924285278133764875549266787418999284543682109332593055893310477586187899869309458087126961472742353872327879532026321538546730628861141168508817965730020830854135597650107098555865866570806968753184630477675970117849470217368898533975523978408794106435124499328056426119628651312672031894811158026588316424887963429899243814513071354775535558219398056858263548334981667858958506799664983844151129104844989086820695946113723995400807688242421984092201937206082429038540004993685975739533259238398168692010291785071622856824235897739666086489431606930598792906506678596540878117993990642504651285462039173363503969383826526769113592554187464149757914437736697053470764023730107521294043223314149035187808185706543648098894542763782058543786975209972511586174257202154030858939214017146289089455201734070363919697491995395419140086178802326738642445095794470561960783586303089078801350037284615144069713850867834758500025941096598599304831061571153143838943075454232112399105597265591427965985266741015155647178876102906992042100088299617548641740157577123708617031706542514243362892329942450361238771697242915723444909729238339465157411742596204783657767694963585563306916712282909741796771726051308215145266944104874485154372511879612799985733930874774485134435175059654423666336002176408915330027528200916097312489086386238566764539964545160264712548101971869795741582816073003507104010806964582612023649955612619587838638898083920513978761952842902774181715114899153605337658218199952040418509949448036701384451277335186736605439094686817527787286671189159941438122423507094826814986319738761658267224957209788600603871267277127294456681345328207623124508058317641405037754108669578391915914974660388473287653857487196263248425982914459347067496677265928896723386211948602826627185324065739544432276119541986674298443420947170320816515690097202252437202189283962223383838212759465196278404114147365371771154699074766765885476832610985402598509595103373122394707509291415914316414405043062119289848141796033527153039954674755646615894266973024705454094770674446079821863732563218589790023596985579543808526272524316328270497988721655895633765700326241945440811121025047928381561762159335193513753611376599855929511175380243132806062822287623223271502081493161002162024459197335729323976525600673158299057501717804797475080829264333244525517279126782649504648379005261617459784304584862917509450441709331354306361369307521815469254911271872277830904573447722075773647557033719065763080660215623713165440984496397077352436616998541857794852787296319773380672582604836908632684259220053799228855106774575857995386562621413019099598426192046406178397415340717429144881595299621574623782803984534184961061396041075186735468556117813814295836649271891480311187307146486019645013347470820951132143490595138756597851382725584066131658277231932762411888007795093960828269832628442953334063386317175680360278704761144935798460055518691963066675917643904199323335811819889233245131538668562945348327407992350738668312924522897251274118014894794884931078235187190145603082328355008673615460247593410502401370123895996405855099783660625587826224580807510573635107295281281458349045915368328389887791488883354410851871783395089074340948619059710713194315431035530301591310740010109114831255383100389238687480636714009661507598838506898436544399588398236976545788014434198352419794010680782101918684286917363865678520603965229781877731246336977211836603685474804185735126095585045406758302432978561604628699687885493683924316718696523025674923433152375715310735992519149223126598259479714995099217700798709738061144222920633172900439044502624848794034557060251705275201143828366335061334327845763278273350640116435678441925413551448873337234577697761263788378012261504808323637718536819870705784508745079683088231271740807213724577063946625349007602180411565752617507271641275785678725890218911412196002387704890376786530311484564094319418862901242724710049978979640651741212053818577071794408518351749715519164295133134402441651215406918669074375457945856785100790628312067770609844688044713306509099268590988183889504732969779917548092315630383217190859958047803464785000107787249413808987218943762317622798403025137219241615291576133324589499221572462977795213054175976705730742069794797527285424272473338935301684934006412538556379499292097353404329628997374548822941983443097144623486369594378266529738371705591386957915348236311351086728088247177720227401073427803955593390273026931554067261193241559423154039520211603766206867977309426060576143762411606549150567631152066410266732198325416945070859752849860228252083479361588906615707069430870690356150028337099639777972445827066900156355682307909471731101838367777075190278465608799115044313579947562025515570446773071890431661678371939569473044388449077589933893246032848804441007894524282047362302693659645203628869468903972767853448844532886482214358649050730731968430679449628575293132609933658837083806013218782889082572327789380489018579779641149427712778512856991850939795891349002399777759841398054894162309886860027221992797314117803504661579385906742151077693799081466299337502206835910224547516552577201369753135679589008700087567150493308015141913889495889600940723929985474789228464530407773549088103129135324916752500829590963406244561545312266779952481345657857068438931311215564025689812642611755785780669374906995360922863952676627420999870388414673196595789720641848831122350497058165552261935993439363109518213578013668409337674071740527013636530003267565562594130033959883702932681840461371597172756924564845119158791348112423585035901016660093049830044989856529030769112749707014235035486197221606861364860494349760437740559119078558901715812834780834830325768989852966562505696263279261126999710985551280123655422352753167764133284670661105893185825859958167847662212955501357341567273446835810252628561351503637441080676138930742250184381913410560041697218603754568322736585801238919876494567570265655369169295405281243236763831710796316640251542436415197962574493024833272363687963419857155524240942434161593994374191750557353971438946048782295042720524615963227834153793985543559830539005226501470020926614747490958429856555552415490044022246002057101848831207416713376570337782802646811659341584410916969524127504328540261376260308608088702687847278158509948694079813407967320834589831369547844157596263932768767045094479235895945446365919745081958809897501900326551005824105955853379914842433946386320197078927565138855104372134672543431834863422269570650446188102798279295997750320056349416192670484570161350939540676791852828046965028227702279363498720337376135709215905358789444256364351605666039625132983478609575798027190191627289309423290745057007020228930246158761823482282571104176576562679928456565547336707929901922800957870244699649343093531174108017723264141725590878501132111227404160042066833598033724534218187586582054704601180167837632705155691246838178297043063529921747807656105865877754905814593821777150773232703346692800275563471416444707489700061158591311948924073710109040032397661515826177149812407106122179940636586778983128110695994455411016133285056427895421424615482219592441001394210903479157105057425963426847777163267912190070792089963061941863923973036573823100037793776278597193347142636819286959047326762157424925748078079119902577658330395299310220208558671978615099220382066208458816491192186031642056407614191663304031595262450804705313383040579577877231199344458931890360533623735044262145334085039742994335543189981440526134478819134636551634657756492711561902151480002234615443054567037184821975639088444846312992505692589079597450579170898126915808494833021844905984713633536799483331547887959607966677273738407884761001976056388405152710281187666077284214252761233331707284285396581144880027831298536423443248937094143198684503791520550416852839824495766089482951949062304719074867809975879466691314180434421493280869119546541410820577681432515770421047791726318501265696737788440372727798321924140748819215826902272367520604115016723766475063238591883135754183110070437721763088740635140264310564009889901606114573133014071074532068590628705727957647408270015665633405151213699458880352791815365535951366129135014099989213165369129724474326174725947235061571185206015876468826287770508339634005909631507045984740831303476569239579724862165663031844762427812818900212280271152788096531190892834111146764581525507315883913848000327181926606066214553644644173886899527174638596903057810790725092144801863523794803014441625210306629858308894199416600184341609303296570458124030156124732768473535487640414089975241910081824749393699377780775051448544718734089254552144173458620953105440707566563435674546341735677204457555343630918835117850314183479114753383065620971952617217535977938321118470562509411133231140546333695886349891210154785172333928311899238772103367885372678950417645222787102438291793162500710603647148170814283412669025343932316106869729043883054446603564088964017061988384677130705639714011959770344149450829479851699248303882588460427255877608628366949541960243846065226525393340158484793200872976286539755075890882858962827996399724420323416051294503842856454093139675761348201066673841093634215062850560398559330282838709069546555593675800106206063428595807993642657596287852190948730712766068283876236271587699300413177500628348470513195169147161376470925008056608884951402413935946517713995346258668205717413328412547724511248496697144888707345488170965022483015013959905067576112284504515977890305838049825316886089384072604152693662804366165443498104243170690463795228519552529575745953717727069226250971172400616025907410514514284253974257722572666027204539986408113804693175815793028089806890104862886836215567202385067406890486191885227893617884162881050462048739508494935245276409725676170512243305975428151491086361241532533716551827979581910546350501156141084096811491110065246070831919285243649830055545277399040768276138491012627251577453287531823853795316577411862031447170421513419522661910903877574158506526530080909261525392949546281079860506528829711593144319819787300772010152275752498380648995087964016080485443375656385248743194884046571054745327957324852074961220224911406135331347085881398432400909193757780110735197072979854376478996559425835160335688713316176331770486282512183802845898244235672879303141350039081035244719186205148263726862408584461305007191822757224623143083929720506760290411194634366728818114098769914963278109017961572090074259298814216387772734822698560721649756249226441362517310899095634346309980738712620237696853972958423973854215875079411465510308070182480317771751990869447209128712086756517528673452163165262052445126273129141425854275927286385450442052781876530626358972530367468083253289045059466268939211895119788614333359524256938041039740190708247495335753806389366962020015081085230150530492903559631236405635166972093273722720684346746918264982759650630488094989355542908444741094064108538381370604490470361570884248525047972905212928734848488344652667825967754814899254716878602967630548697247991060549579224185688270058695001621783066536613945013216319408198043316306353803427492062415184578162070554592192088619315265379787750885110259757136393959343407446716747158075958044415683842027078734721739977207896062147142080066657258318757163248598208319533525914742246698315121452716045606894466143236510698462097089302330261227301909608268188003423429392435797793651501286279658912245580420448475605479449476861145158205763343313124886453618852407576530899132558088467268573262701883473494228787433847507129398068192129391781880650597127505723761953222435645450186032049759222170416180619637720650011542991659087842371849041663075108162551149249621751366588972617855216271727139814241071389385026635740175823036122425508602439253324035339360849706622665394788781589527732316142151454363440009416209498680790494715211865018831987371952130464280967514482263989345155918464692866904419298444790746339363192261905112977219254154239759584075354866066303751198580895931491890772012467856965188214236143978780682328896212414609371362750163659522168936281945501136310953588493838321181069425515642730363964933278672502926119147843275629158727848474980622851307047517511373123827988629603979827749078629580027820509800911552309248486357239065371543070149960042718317141855582026023148270101708239156145915485360795280705610678246788171584889013896379222566403574472730590555781439743941066159493307720065949399382424227837407474413225204209181307929682851262401040599676760710021601589250570310242244442215529806895072070757741769110941656384818759758441242679326790610036421642204145934685211209405794635965719462279917461672569665125013032174863352408546886903781875480038057851726184782395537743240295016024911317067293311500358727971377358589416564176329351292625944865199965377505619638993802523653775172056040204332849318290129951169923816827798101701871220530839480734301214529012433250972471688455647313230033273419856181114585792198542669250765677659146459880029952399061026776856022901678573147995609130572639898542599195481546909570298411181172563396752554364928735259964265963861463073368968205784889614056659240007190416513490172319616625360296647128390525807896533017374576329590831782330555309747722165177405278888246007713129351658957064819325244374093125736126633412995795325199360261447035214767135899230702089376572512494847350173055898390113786509040132533290787323455864808014151816921918679601151737015810503178479184498396367950978254020448354610994914306139025796849419574336220142763659332770396481588966640446034981210579917137690941450349992348486393649263784296878139441002336813545465893839989180755779230534011458352525560362059744826348933255327541743661755293435506507745917504843445658811447806307194073568729736094524033560108345395197120821094020415526765022133770731626508843245388156221180787785443844729629240003310095427416448906121182457119643655284551995634324923363874656625652092869821640650283525041660191835409245423314097331266249898350128827349893677541271690702652433497674153357504191770180007094074819000756497408410229089208653304614997376345936605192071803302886027544362791266192539531264050874973837055286792528006722518757159466317477625459921909421092995485691417676643793123816073111135001997792707961359751786998567569922793028737723643707502979265823285836296013024582162850748997036179748416334977007086791409863782625810905909431955908877377194072849456218209094764994963130446764445642213059173476335990955298667443883591314687788363302254076113358734725284928074713994834794450476252888438629809962381605417934842347143561274221263227538046045388989170353550023682319019574174415664737071725920682621055248923786704362601449174325873810242030210976725417519053858788720235551066483398130816081139159566408657015621562750077987975511993290217736573552087131321255647034938622620932668703519877629504084080007729757299724944354383632381315519144188956616877317853635422343643432548062554298206403708225962573527631381064105673458804031678747957059908260391480853042717723404133156677648811333215198147278782858550412477592233870112598674887346395854721330869713352071779696791811654752182315262001831704773043077032573540325992486090649465754475500786769563303433878977320844828655553548367326874825433975696450693038093424984441128904567927913430982475774863230172002069251116533434347711756693105849949025370945558508162089068640726870169718407188051985171281709847245947337854468932302475280569913096603894550285737388788548315110487724521229656453964980639776497695543852847465443775102721693685643072110999154018403502326113084771489277943987173504870388466325990335291605942451707194647544913328804385978752665236761154759785781685653344326906744986623281928215044791182488288532379603157280780705603514228784067448582330125488268031280061479337781690355886562150134920119827698429209575384235022476871807021259596237801164645139847136289143687272446238325608036555612903315761937594785708360367915145751054833183903907849136170802902156311761796603872272164894808076670671375303714825856474811134733417322642725388515485218805314026769487270581327745733694772608678490688833065213558385129031519421768383280083487570207768141540517678011521233997465953857978786589254402547805319405965753884393261301290505793729036385898523465147386766689508340377509540008038386242877280142055891099318675553009736671001108371493114717042370128820064364086249679312092692039914772442754787300203723591494749923344711975873672104370110434246336437317006092566048269768726381228820133723371347738200370776615800421534109553626074831655227178446508158333690062867329848747714769745225139819470395865872050474133513360990731945641978159098854237148541877271142508880460873297343766361889374971784796853828706662342717823577291817983735485173650940971321967622796741854120347124625308687451417457890067242952370257284799704828902522258055457438052961783122891556207906489433443020036428158922883182201924805109902591283067867101628132615801561879183830598468684653885577136490015728600479005058882483096452967809566441235217399382889847594047696873486617206702293828511471666553445704011264347835593340202827570819832622126055878795125027675270111413101682201122125237141615673453966538109860792474817505048641737654386314592144876036831109518191487854502264490571877773150074744406839090647977655100174329062002460247083131257643420859624488138996014202799680100285509869974200699452530984440725108798391087654529241602080232760766478005144865813396903674659230812897050286309831948348325446024864746129884811097572048230982647656867368008253561593292480214761716996173372874765175470761782734153932218743214714861342332810658361759958441490142553386266961840745566645414599725767286023114959133911558893104179514178194249197293479066264821701384469748736091437327067965248569703420564586469779876254998211925629180880442666333443636386674315127072601114517097714694860763319091648453767066844801789545218294545380021344202099526203299901703888609532797404948874051970772395759711544390090143657294479290639061453493245893502582369296185469632061785102254569824465108257798254338364876903992588808493809464329510359057168984156505706031966888287852121035480839697072801233427302874542099787053211881522816916459220538537672931779430387578883279507042821964519857582638171599343582496104119643893559265108659226985706139637849716935741079802160537743834485463614459149721235873407234600795901683837643334026020251028037607249341166906725875621115719398823267366884560973545921223693290555716054660768058238646842317431836294025164700242995762402037341071136078166164202710875809506995211670140582113139141068404228065561213169796122751052280470696550444966307584855584404004273546281768802667493010997250396353313280593134346735342434424902943486079671630040167874985391406899012733421896932533364906509491397185614755491887339288854774994555423961337090554416539652236490069829658352585226808146316393716079450723667248513460341803296447090645212147121572053634760822990370108019755042781331674534776374830534908628638058984804220397206124600576096280929834314949575299814555688468823377813503301284271306834047122691664615264590251584849084596312968852957379262596036103921047929060825965147039474825022925134876395786701493785401559355359024950234037325718700349546553164965017441627707177831226536131440878556445103927846193897395798567619347929502384304394190060028087921710369774940312689315961125266616329727815826377260334468127680837362222393892604911803517796182556742062700305509982499360078499708313870537430237163029701781419995999372894465217725073633001674027333562229215696355818213441328929862293568985310938649202747234903590898044334999063368594133515486907618804395791408669045574321936109334509936653865642279387397980116264902196421954143619907341058058936126652812600416528483440088781639164490948575768655671910093730602076483333735878897310758085970272353069599004144933438611415986669755551824571422780185558444629081686203973410064728530771880014688107705330238581627955013427489591612408487602973493394089138780191535120896990573534398240112697964421837963816780591311753780063695759576739537559705755184216923185028240019059793739530287746398996795261968872955982416182903135573647765859966125589109551714024670700657394524806787590517291161309953664963429120491187086764752548969411364885408903086149796569003490492792845107455902219128401545787092558778931571077678147252200869725644754342598512741400779683426219547911204515165450631535624235914746042981678736938538033922036085914182158915624395664967649450595437229565247248107600859599460050867292387668554895619349804242160606272197175971127663426531604219560178265526297745988554143708172505074621914963065450831133818234492146581566964288566194674283255704793301988684020932909864733780367460200674010412857727149120053341140440490808607111386309238129575708588281856389651046441375777478118568225442942422099980330060200109177478154777583711358531906227683131149559316280164169130582606207822927663456861406539189657362574033779876940508014501371703960758218046003203235576559759140070775408501445639817509374871034366481107614334708480020757274444452767256391944543294074960771051699126159416239703617983001104916768714173427636179520557085785167810301242449862956842775480816315881149985129304727276428993694267465895701551226792672526854415084433701775062294473967929965946438531254320947341111534513404017325830922114804500984559961709206073976681090103521448433316961227029654192093194972336288991439909763582985625340538707920635688843592954571078908423550894549739203172875200616723246599268566140420073375571752419749510216365166520744392424596494066597486619039216998179880124016892358822684096811462797902530762022297640864289950049860300991419842625782180660707142983601510315122846038849729210017671113831504660309501630767234724130280791706889956553121559369496356261765753042758656756733087866758585546647846250851920239262150540949847102607211060451013511390672412165285944794348345586189285202505753784483025842064820181379022006402542968785838528492960254256013657594329995605823899433647808926162305132143577214643489076260406502908757289019301745473064820008144701631293236370706049530101662147463828539661570782613161349815495322211658333378445680990171989668329993061394146053403947229895524763419569556744214490469803455705850558541694161507576964404246781473525674504163779922479887607184437899072219763246962342788393871338692900834564715169107682307826782576329037656850837685950584997482509275972706972111283096149592695665676658412792807904634872119693731669425283347152583609276165683885144428608467509913648176733662806499101043985148517599246943890099915628924128754867766039951084456983439315928775242553571253685093794933790027233040777118193947929590722107055368267770199666578760433684276377464394625420984015999514193475485752259092795966519945187093344465086191477254471442040613091247706744388945826263460426105647330150144494029259214053641376481590621815381362225987411615823358828009770143376829535277300854413015356886789105170405050800752166051830922993842463998854260653578118214610914042806673370965705827398156438785634086393987675908277869464813653808548229553978724331818530502350546494112579598592334730270849530294960579109892072367604178687037134499093042614752697525162576021033820979260146904974833217365154866311463146409318905511441084883721829981121799107045175724619110890049973215163774851599843898102614621253089785771406422354174152130538882782444576121321975107436930585842542985400683776747956240463094846936883817428771047347196637352774062691259424066205769512013587270702868998268890396492366017244480733117001664940481220646007113112503107097237751002084917513106208154391710044850272016019206187202594807315413220895731715793273842162244642846363641522791813751857824485898984593552952205038802980050405094987618622417961159361314097243480919907808835435012113296248272963419762469509215573367125785234100451428091458927054520562747187414872705089406178383618351340381201698482281573336100367335488226569405826867708460992763553310562398422614542243037353000228487175457868128502347696075177086654204536902405291984858509755743154369712507888906552125448225463447779231779219265872663007660224323961131860223033271459078092662579005826642851729614610342021630111573475461548047805850921019350234469576989286325617836623163110137743936678899081318470644724470399473991760228587522110399559241008380416407937267383957313466187192815573812012902669426747404008721863997355529147180247963145501632521916294386269908540277468496038029390660662552560340599546915810501172470172438924958835498260013806454778943293286369780410083183215978788141549418830307108436287862616063882528068851661211836001484530008190718617961259665589570276107963308874281244503197994267300056315506019551524973733111195958301812829330335903720783837604703583257530480887450434904576696309927902872915872368875408157389343941170574521866473158769416617111538663425834774861732096865487502616205237101824957591218336715548692155976169106740326372661762334514467986412053670344086604709144848079637306415660363949433902476987488836745082833140661160055079140112537670230213242941262888369365409613803094330458622053330191498047595821415087696291854114375118084029975182057739795778508373864198750742388225593590540071351223085900961030619226994056957223280396754172534736943994705636301637606290132461027209347845185710282938549354215853753623393043583655399262090244823373153935950796635220569089367524208135108907094522769644817903831688510217931333199921598500064340855922862387613941373330900911181487362024050163056116849659734817854643834704676735469874581543619263268481254171493207494466763278297322347020156389529493844086087681653853380527168931869845329506798462251146335819058238927967232253127238668074457965327763060674978342197054863335625251180930561306918337810333195061861576193472454026676960906051561312360407143262115986511277596899960233884950415020688371066066441270735933195457267783491259381987257514572181940079115481140970934733370517678390845993348890717594641700755010185969496858329338961128599982062369619462705078084743099183354424302835008907224778800829681294092555107032921261419410754906227237915636993486641510502149945085785635862892872084406175101499579768878144369358975149777251844478233221028447384435573759292288918642693618152247533731593258798045533434845898020495561053007089157554833492318368395666852939940630065208367746143799046267592806853605181753783569110141933162364240077077297757940382517800856946432884599440843788431517591831170656245669826285927232827828529036334997510687542058476980680028678299765938744398169299679680052780124658201986914427974207949530280888502533086585649076179041962233834309293838001273237051699005033537556907603003301633476142461212155837913595359417369732388230070104458547578457415797682735705132560115565650367977080338087174920738205643354967064126117330016349091350078949988438751835826685882615406217572556928558335832165995462607309233407428206154151526955259594272067661625554370033899814923759886206603157487516403837140642587828079638031470294852880301589400280013655887710320539593013183100245400264437379173787509955131707808526968650866329568970321710050506233368904551585761080185655881748953071806553358241276787472286866479975001353463796221459259453213528024877248314069903444442805549655842131814395187318844190834780910416186165804553183745987216905272649865299307543463983417041175733756834699588971815208991029328132992370444960011262043536861599268950452909205682140567310076629569398436858026269588046063772572472847822095365069118235592614978305313081237427620223074602312335748861555345174276209996781291036887259732020283218199896175442335487754029001206746177645323111137071075943637465452941141302730131929477519373692595355903876213487057462635767784995999159183635048457829978827527891030035961935029232645213634498735747595797843463979598134230501672630217814819810551978410630266019090910482943503934220207596487284471107475585509879268739960180456342339550263402691166102328972432756909961557368028768147157381728843780194011187982165140469334414190858688257146386560630306998389332516763774759109122208205719273234185586087587666628012898158786572347078749010878580777085604472746824727182256945886060360728966786265348484447591157472880069026926963880494172769985766557169054976365141066015754029234163457730120015286334678694322840134338013525860563096503592264985135861732275675248088564719220832829807385465381098747211091841619840278850453907149262765527530352943247747591668326496825131819659368359451370233837264670344445687492556814813605407250757364526195893745443966804476499782408039062022246046731387239669027136997839584125922148046514157932678394867094234843634389238574069785576480261803666881716546710215194595559213284063889892982676367472082082697216638788361014950588573558597752567373577482536970140345406236524388061622152140768669569820342179130582116861617792515582498964984466023078271191690233229170408909018132761337684316155646483751307848885370807566438609355306048657126628011260757400429580160823607976605524408288581632213575200041160843094743142249305283142721370200834275037082156899847965360204622317134119333841419819109651004087820589066450300284600755713136894512329420788903588682456923878239445962080785061327970051353077185923433655273859307478310045186887710545813241828502417145540602060747390087673148342632788051667922753571664853653980324723448637504212142769623871539679617768336424385471137508115753075823879021173115159374702234851672910780008935566151112048974701590454915521307612609087760917525747763174331066370502234810565944138959069642122196821481355584265953864689606952453461752324956434825852532414078485342466607532378031095097228626753611970985016947668956462361077923561166845749444976570793865861160849811223379131975911973348881889828434903795280822533489037825424845911317637439286607443191283796320551757082786662588371016619963000508940427851128564024613798379646772495586482911211548466291544032491448633438389105133550796255871470637523781000793076190930395242838721306942815598855865435062958039252241680264968490471659521424325283915457518560186481072532116704325240328304910231175308265870454019756446493244772791219763613136496961668807557661564295681872346641131837234644184083023411888522393093883415992568120276583736310523445510387127281364032058546120549944613400726617352390118993484586152266217461350781538086565894776089024672784868482449732572645077200885697655335112776759773680169492724720763547544712675874684139564192534358893447776411728949874121885559072116882764378208663246010157104833521059058341503053989126601107613368646085848762863310840906209740518001414578538970490292329811328920477506325419116862774429635760588314272234663964539057232119956947723135327169258769088584215168595188081169448731441681066023797939179924570278506732565667370610866496728714063581676206293837314444380213843418661838047340636867757856910080107372600652751362288154422897682801816473414846260837312559989652171054113731037988943772056723584365556039118450953331955650589791335800122763367159899726448096654336388850859525908300167770745074579438273072222687107689019506628140389800754889202736239858059361155271606759888688288916279984296442709070188209507297048483264855984938502470362827283299652926847329664025147972203742588818972314293885927527877370278614529160417229441626884574088331901476049876274073526227937951020671889447774684429368508319032802131637570949542672105628736148599621579262989312057247195763139206080516336795892631048503421082800876352431783564162166772453428772616813808116838335847591656299545864712806573452793835906032934622161075161447299059833774656720290873896745280526445374419625480183632946899915995995517413923110639342041004090064319828871443679323305865942192208083434388254871203292376633742692438566113022745679929844164409817134031299516068786647108513313332223392528225806184598387666671390935606143855435937910609018809493851853030751627504691960056799807886548278280366374998929865100705135195928414026701743046488170961288592496144727309822731946938275686806218457743865928105681036764269552616196647091720983133725720710250171272372388970604031753457967248971186812091336635256902365433701833670459251500076552476076388059478623537431758582739113334402029555183507913729703768924959191220689232228330086365083952588575214307727012267723605538033321853119982982501178368354757394016351396811593661566090877446240918240293008707523770102333973348751371502947306036886991907585647208002627696955748380769933781817514743256101103462443834331724042247836960715778825097100049806464737490852394234569836195876936238302995707775073900188812619741322111275680886563305931874079396366134095772145518410554092998576107266707744241227506968423502329030937931736140629044513766828606176908686591734281528723449793369559364336840862797070448434545788565500748777128630132909615179019925632160554824812841872773648943575575054675291202500369005982269309428058637126081194057292334882447243275944529774348306004332822917442316947036449676334658678894915624641691682833863575128998103593708462901177932398339401325397036358220257837421435825296099194470363764384958740180408639507970491331745887229330395154888400557829893474363591804693712681017582377676096645022827353810419929138427342080404434918708157172901428506010961071641293600897171401926110263166875556339328882553363690099466852217882360315001637983244179979155044271307842614546053282654375722554712863317206534447892087512762004223538808482188957184255780774531410784287046622720616457221765033936228554057094070297554555093815683496249647970196031313780037613319141270128792675904645027539560513790660527072356995754204454088901269391404566966147413540547745083086436575300697390210568202079700836998103465584055578020366325226539029906717162637234371689026313909940808774318400083645778686918267269539896101431553900068478147406559589326221533393996914266555218244308436499630191417943348850269241776051692750390609283940552428721065759509251954410830733873379090160826549588361111550960220765713184548543010630271022568629231837733876571885459104539660009271201850362129762129027357890645504833937208519508673413543483640335058612828459488215146066010099225540345878125394129733045990551991641247736656918934566000856203532370160723227844506037906681774688499820347954079818892244192974213823966569894499789567370852927050396703050164623867990605406777894158405809037748827749446192565659025768116131486357492814712395689505754222429392766166633066381714978595358648463612225535158649696550002753300728939978979243516184704879654847103110237087984133112215302509676149200247145774577707094959564657836899556919694411976502160844111377187172496342676175372464455758454934460125927235290333556773380847070593260272508312717011611445475057970820998941006941730083630284383849627161819092596551722459019062108237035562303294039254739712529117924484816201406287454545445481015117914632080199387266264421108925733241262770056999748713251909302455803018603147261304630890286806802141853969140457931650980877970159643691445756458368659770280454047495838531103902887239096512864204883160577208971577770785069308290100085631867677139455102325445373593498630772002994717378162215600183916107826015256467366165453640742210407176381704136992725992063747066372275437794561168901212747498653251561986932063286266872590143455387006729619565531238757799188968379565324299813286854836409931529536846541273226058856060107762075256593039528322996412095524464914853105308579520826684025390526689893832375431075068400245605575486736643110853684712500545565528166416366476397449653220080936791780684713929182372970761473282558389066786298537631115262698493413944257176236071630700731877030240461287953433483945484342527667062797595881186726219489103825223466026909845264506585820572401779343532053969761199428774892666717489489108899098494311517270340990342045215911463968020971219844198223352326958156705988970554376836703176601476524512182626613625225966522560669893766305856952854919217099363976512850483877655604487300306189773379896109751310776136017654325234223818663590125546326844900842690684228478585603591835880672908604916272324254353791079432356387082605228431105970123987973870975395047321110258433330786958894113189124168876391217595900568242086227176986612880492329208385753303459833382465017324323388513525587187901510785421751522579188508583277679479594834642603164421153762539218199793308103017368597855384050999960431608197400961222148236692206041977126251010254682859677067123594955142897332130327191837916313411788541056254033094272224688929877286185699411884920344840875254449843493377395515776641918440452601631323478120759856924560221938071573544487569605656516593829819204026225110385038502315650944788874151887374750861300268505721389068541661036635739401503117164077409517558271319141477832824949906969916615953060238866939040097044879882606579536559636805539363656836221856419393305056049137600268750505117365642099984242347439965460842520669909039023456887233483184702321847426140187914945500698174958584069533297935407843833163604653617991489607813828210661556735442312267702784326092908396408575344559237697353692345470386942300437262199389731303938959042406154078472038028228709925475729550153927014826497742336886330127337689208224433119375565893546888738819282276237710434633639004775365791290184488434907691157577964346002425619696831856839858818100906351116791050444848619333133826043470442830855487043377795864273640828388051699521325223901920717620177684574095323872634454957535397566727551427111022401203326551127221049681229909724721503776735869547175876874824246869360617099340481334638970504549695637707167625707996746178601657383966299481070851101479934127062872024386357269725930334610095003479347625085693116632285145971659641673484835095092327108235056367361892633105706290893646361946778394169322054039235780137266771349396534240484852113138519393895920404798311223361435294004908373039742579131082424317988429791115862973302934625805803688243044352702661543396277969968059072866681122760133634624926440412718535792121841414883313434080057741711496655027974544522648308806901948366246145045167793559301464764741463196881222657042133131248508282652746181343944378666737922403466022092877464563599422816053748243476367824473170776952171624773266413186535020963213476028080979111747419493815593082825735349609473230986068161603735628831781690098388883339366271913258332742499052012968161182895166515599245446199627912657033391928669040905431261335839975346791553555605170354358370823215736546349337226413610676335728801189309711659099185823251756787602267769262487256537527499811904407231067263457643436972710124354723946924207572978696433014267296759542008281401255227088196484761338686317220794384163468189777257838382014056316327653752192074888929440958077974351350868486344677415434834340408459357998285009702713640603948209643704957671085950225553339379800755364313455002599807571112749081160583951268450081003459830513614766804055269674162170034764972405213619781545905323692071714157940709162812088047324255015724439053077766586649041114064510252142037683786979995298717729168861546363980017337271027445693802241844384924112990371396034186954315837000455449146776734854711702941225721620618547231824865088528182574348688134316057415129975680154445945649102867677527292376606319285756974917780442433201159614174822244851640390921713664164902287288158034622515695840212746158666298082465613767351128981217670897106695185385766068939173742576757070979215326272763671782606112965111840847479190923147330796396719337615067519031370806925206634943195796069265824449654993523255338689456271356115946000446797929992122514252150046707131546552859000375845961328974073190653511324538772271133980810123103812084989442931435504622678347230270914798363462171033008625572134923569227029147845614928765636342378535572928427505821869291108716407304617752355391983041183781110306531295582983441744967424978327259539357587041254434326388509965470700705682179136791028024165937231174123807954496960625701767703480768723965564266857364496599410745460201322610054178196666232179767796019529545152702113113186675573637957746743697246370500902584894344355549822839605685829812704330205590325945959969627793797492167183567005956530593203529304551070604688566027091937679505675642610705223943686990381579673059566289286817017824638599492942530619163960392474376685097090440615171646771149491440316867726595448108653301411304189551805298776240940231363921895961932732334649193268172733984170885877590389195711128602488042363079930340021842640940489729205735721486506005478409951870360213691976674474913218954195207769497123388106453719888205572650165908274907441129502798066770900411476102488974244609383737067549285826725750824827828130306097306107461792110923775973608868424157831518298197712497009640914930356822446461488469333900499053305314179647628553955408887228467876593755028584497558183065621552128817415510666098134121827337159992116063102985445226920676185869717181921873530878802163749284625867744041094485460913064423946084389519886414866366117161965814029672648599622518740854437761809752435305899924532287387054955048536503085400458665639275013292807505861314151794313004779657320436418844568264231611398064757699282341532539037161871662972401700420852322493713323472792205162542907685007261129990108923321430126280194311882534432213046730323759301452172871617911176921987020320597208393889466705980609759850903456765315621888843194182349806090117298144524174883396450814823827412224889076614729568617003898773598322644296332757875914733644323289847073457058910933021953486941310190908100444330146792870891961343031190923211068820770936887854182867510778651849450851520056307052719638581097984512889656038842720009959330831794812621479802950836618767250614290313154685640256387100572856813364617114790991789074101044422939265029055454680709176813920868303110654395902202312151634195353112887369237129914321155784328705031569405742761230963982958995092857116445617405558221677529957148944286088544751429904871723981362345106165835814462098339104932594244298537480464147749558003818248589599683612228892060954860268021863998642887254701492804310729112269195643214741657510336977518668460282519830914438536450864016573446313894606880769009716450822018937851174931916448101670530695209251729585441601435688206311288194866334276495838646625704947733435150107509121673305322800486834657637509962355034128111188812406873575360218057606473442970246787510239691517119798512406205048796353806076685155715108893236399796547078452152707837478833102484709551625888178250075354090984684894481449837255467307907796445738511415975274869223465026278703754017724058501307696129151413345664840509795857139711498187990741699475888865198275290512541568425667981598892445806598533449349499102468254117503563694838657027593323900426791812186428029795051021065894714026751438524624645413974734957020217752792671494182706339872404279257332988959503004844920079995949918820825803093402345091180236101470082329388307324954776221740521664305378461532569432194405646283127835605984435596709610121249060844624996647610774836924407997319110238684326259047402611192997652468750237480065295438492600149047784635403608089750168903931671043308252337230084607909992376597446624800503132038078989207408950526761940762581335260216003814608069741620196878871290934402315008286911184633061790984688284122319096288583795021649588845053147865406053122107341746747747157901277059650525597034022171569685388252414921407334501947416412464634499620162724059214246777938320746579843555274407653921921711241845295452727067627601993319759199398831156615128906783673908320797617307023451224874247339295792143813172575687241686087932215706534591626713278507910824241755214734945511488468463266783910010835735409578338466493028149224861159033196416096582812538868124417355778398484018005344178154406889231641451883621905958741349519838929808284824967885990217706537690697328219339285682190362980066048911715467406089560836584915356134882161141678367807765373045215627829335606186394302773772349219117149374638395164876272636505049524884334061668712626404699633431081801987809357843646953646899068395807145014728354174455063030366919962382185640535450154979160657056163010618831093851302753292802407236403482212488806976036242761958171971212529601128604366121692658791365795914239654664499853089717357193055775780343355706785596668389269444625152704244057701785487750293720858932958323169135639885624617204285668252472477632165378799859433042976119375642614320274485848687873786344481645022774461481359554474769337363755627980792952228387820253773517703535363822974423538922113864325612807869148747477412116009385690391711401083670846122413129320738475130169419110925725676981332274134753710950924074864144923762090359057240611980730974135693383780983021615286450352837918835363054412288988501761482322879506111092840348037162973129498660094691033210234844699317740308946777744366026463347577659751805184926674430558374090206656976810069771033905777249157645343635435589495387463181916199864094056896608099673259729308196655696144627538012945341868963676970940942735086297958950303407932579450314372643524530359257628890380819301874842539274040838321972972211720610282301125983782385272712888584731903302228912715216154363680358208915952950603870570393923605100994490975773440373405585765301518854810744432593720866340902686914626699837415672869155647101276985612935857533801164397095203198049108185323707221143601957050778883192594114222926662411793905265754867363874143621324267786985851619580538209276254565445583875806529637361560771716993076185088170286486308527138846167975261548067304426529079012380141946866142492939832568391496588527746457391280534997456095236666567662124319015296141975234036071272103338388808948922913871344482610254070568484784196914757384018106523011039977514097211318772789037972387522621319400577427149991456278251283732637169941990491239798786599282945033488749443920103815559886723437154440256997991484663225731771920079994607977297149662473585740933261776870652025366831014921902563585503958225018394081941820526587153907414519884183002814822211473925492160503423547388356080950213291309630385266899238894094937561435354453736502337497368478462596372526700734385029496928096680902939924601194354906323293002577344194968613844060104277619054930964005036487809754612084184941544393679113281542857915716212815740484853754161031830861384650433378052392958181537873037253566880740242752844812315611529538372043497779407568758045615490113660441391414734254986585306869897204037929346201655037710795595649774895723108033790983216377171599340390038840993103633734802647970619455083460432626495680086784190626287734559972869181805014077463396539246743414511334004439554246101399819120836180611862865105975380772531239513367290861946532562835937156812263340545713190341738957019169015198842112151849609171580052472719724090115465396082516582798679699077716326112807668903186307947722081030835845972426841190873217640972083450755793715999114342538714435976089715102204375437312413299043548347915937477302909494648053664191153508200284006709515915313707416309784765994445884830599702224459669429790942409004146630469514761298495331108504330515777265360756828414733058275730788312388588030685826997503570664431797367925492045962202650585346461947212878102482363959906537302945987206234207525686982649840403988749831192791323048974812456101940104082360950271261882611375344155444963353870043101306206090397291718689593715180675416757427720397758227087664512482030699450666466309185215857401039524088178640296094090316556665924152404187931196330184401356348930031112861599194784726210472205515979097846770977340713592734122298622799712445852948291352411005930687379516155382382090763521195860521990769107851304768508322765392349818589609854773428283710162906315475276636154095264653262112479913251202859885226280903226265728690414993898043353590474282149476130163692116192535174513660371750182134320524389497804603469268665518168996158981949951462633579961555809306030400115700907881037838127637873397367009560957961259232467879403281080890755854174916069087612152030435688051500221810654536724189301559122022076153554048294068999512883495059683029868625830221346446348098197759414486449066602667663542694267154871255509320630007447871492123358823899972715157168464508126769169675619981026496571194729662416857095569592706895253191516514878616964666176569748101769801981807024648723461431839344024915109371962416122791191589618720995638887936028765571071625573850217571226159277035423314349979022237923516243948920878834247288472818247297813259440528544726171894469739504254193738272129055545119369542056449610679137165327942169891942934948946365120797363059890695167135665442666753853044366381510112032511534925554557895712537167743355639021102013738967942316628745661080567965074581413411075754927533647473112675694311134126918703701008401830645396297780636011890852271314527802801328167014256934863420670754782139615808100648562856967544879420905864792552975535703101206716547480904146880600222769274544834913552441010322579814232794644907071193825094756559212971204962136236251865354493828876949892139227626204945605614073878526883620688723094008775093298309962362882248722773619048219322372430960866686493849517019271027599072989255615395732992529769747862803615055664286760096079008755259247161788214945184376945517079282584277585977719436805202276022670200323275457001422757523397666443551295673955163383936606114582697805188167495959583236926585844152575446809432225900216728894339423813615629867001856339314511170738112874042479081451175079502874987794839536534519141542769967090240267120936149200783666695292615443210609388060092637913790820075753889194666169162531552304488941283346462395270336594130436611881888240038904017291272705766098092561840434126756896929327027906813744605595124105912648108925291789911575409386818296886973151465716297658328410326088089777997783095086597257712827491076633989930652579524900456704635790411013845811069932291979203114598620533159566322024101829062719539159906773591690658425636296778213431043949063161063726978406963738998883248377001739415069696507733312500523535816443772868919716662692174023200701529501623626210708415398086655645542498308425362784429509867949498342059782220792799051862406839425649351668022120939292848587027156060961719377166542540711660051676188042991061855554729092322920823043869383657667576426791481788927505524326234737048587303462434351293256872963059145856884784836923114188167279869335489514397782620641819809601847550069181311158801991764699870843232736474503485522602920078651411981957087166976242758017230399428081652304412579469767275752796898227199437157161259685995307658946525021238370696168777207321878071538276043895436494173895863757511638221240391124726880289301195155715367550627455153344665860363399250252018800894079377548997159502267322782738487039240687826302623034530389945182861070099739386638572821584637742527825861658830129309491825234046143813667493649134674319683539477758426902691567167382619375200874163362610957385984849440415823121692051421899995168589080368989600294947238794347344070118987048504874619596903097840577048096788877501758671185009925245719868990665963556205462671393669215588802766875473785907084590607669352578300267930511408381252373665535036492351017806911295061555460762705658978310333494213036172214613000936157106580262328448453805776361005466785818637735271402535454102816989070137456161881102551537425708028948282450557743388183928593417579497706728397227668884618890739806488682988282787273629380667106187554868968463645241363273180614615200905723454290538744611312915588421393596462729368987109450420554954687495433810503447526739914165470301353177594448963826423454283518691899432386330070149498556417770585593088380378752297146532007875424674659274426747621358259977276818604534223257735539235734306383938542277186349321514158108742234209179252935318240525861392073101706769454287207238992929407331108296554724411780075832760399549193079230544207767832945391309800523117570313199025483415581735854915422281048715817358656198733033125070510236262510004784750192321483884067669831021727694340367097440538495642127219105991655239471065848645708551106561613874076363703950715173613887977996041247761124638670552043926377968817963674658082766390571826014437340765450660399134643144899416501078522562009833780116659485597258741994697423990212447989829634391340700439783649864715022232018426490239768553576713245153602475322426233613798505035079275955442539506573780513063669844603288951818379591198187915420409430724919440758410523283178230003243090080444817267311457606399082016872578086882603074310962148834959480346308132496187825896505711007483975625431909103503141915417199322029340456369073048845635496329127306830053786708926840366815369820894176471412402458276079759952474265338830670319101665752441869459349329700713397237273538650669443214370211943782093427449821973847474928551797331491595337454675327956045194279791320243336670290670007539136993949203258400052800615531785414040184957612897611859142137885005185404441511430119949418470840666340041187964452553461557819853524053524177359745863711731848962377259018807834191978463456652797329852480141683249097316646764924632658620569340879841359896565432481357273910530083321313648394761135857028737700485888241992925230097850726915211152231233257077468331251207852492575901267201460509962486812109691877125222316877421172160918431696072750121177858253386879491114665338634265355116750227468852106618261381135721523956880077839998455655771736013754306458056591723922428875153371165317656279930129248416380666498463406755120414656712376631908838735533303453336817588086570138766662243384887225427854281528522559523959008700036235536085598426550721618211074898562996961066119676125338880688990534264117088044380261603305487566489119672763371259496023576799856414849271398232135266727231006188686916819912044993627361061461138356221147559590571035035209833432709021474419754633658768564505359200918745559790556688081459387768253339881053884751016106171396337077892711036942914416080820557617669997563444595412465601290901901500387650852365698006842140000063698422438589874359010506340120838636304493966516188448462988365465253955310646547614588704314499723593489610913341668953266046078401324925697534516846581081940684215105750460760485575530569348295829375880078461714969729797786842079701249769816637686597220573059281147407443481376237595141902531830550929311716154228263292038617926003006499133928787974828335657540240480249606943162970696321280012415020869674170386246476279608067612228324421276690714106618396068948464212000435128037576290249715171664238776055169808553588027472807104869417664833997361693914423570204605203668034485316372683711572377530457562221466297473624301726140057220138470192709747298847632420309405522253569786942515461595692561912931892405062845505576531636976702620386425383305021089439684868545377621760707768341715597624911447084902835145079877493247136843174996195122455764321106604187682524174559423911208023569898178387245963553714269980141321980458528698810508777216216353079932858659748793570224529593554500288565439900236647475760909947814117162448524771948829255080433965934919954221176340727383258996708204839323267481920076023506973739953380458154104810785101592842422380409105519771305123976726449813566218850820714969298376531280364030838023774781727663406806437963907904709144591063499137502824359499300769589114555731650120372201980220905014378573772532151571759354485458284339192880159767872884945966021227754493044635980955275132633820328019355460773977614942744252010896933511628251586607232937014004854803705547089289991761106463528532651938942144495710012932675523055250790262789674478435407166827036864149837124017516282472590637786315265989739576538929749184892218398003706043501328334364239936592926279831263153859976716903929931524573174021956074000117108558000153449625037441963627127141855364173688060572873005640437061013487981228771944759148363448860512878230881209282597964494581567920970065012721993198962701999662064364676928369423992006575393418121181229558603842943969959802422330172307544592803266901767653661070161619920560298719169503949268390883767653347052774611565367203199968207210264802822055647769425122890479259043447381855661217576617821951550025513813012349497730950156760070620251267367503331041621412898667576054297360926755453035302867458775390787483032647644180698581372107931085753511800053864299746282202738737980709583817016872547374914249434228916600746675028264063897994428962778342620494883086217160635909773678716078634185127215638797667127363309302392618907136546664229311443165998005848821983715341424365459114324890384782515264953217561181283340145669397557585482260781589045742332977196713135925677912390856690858637395033156930417169732236714733733209786176648800952770402014136006822627825563748996674423017857324746783678594336376753907759914880037051673201673791363848044489274696440228194717649424082583724259382441940988420387671977314772080583874106114699080965555262061660114637811702579070704140428837638012732843308337594053850971209023195161841186939019594113993070726682226314498564343082342110441476924488463045829824346924549247846590493776721150439543446333106621516153286056346516183360620832416036858231315981581362523852455968389000684667678858185706645366139589746104501308415153979837488539766365371879171929053310215479626857844647342115688976652983634873716771038365572838058863745088156032222308419755196191064441610701857819810318732649219900620291807723359708376905678758166215558789024174998945463626156645480606373769399582282251975075916303855506538554519762654034063435973566060287404985607521585485371641479210791469025527259566280439128060364861125356884020015126033361383168834389635255027921500471018052985173888530746977280549057753315923978851444964290060723634870099333681151443686050964220746622975480389052179286024050803782029595078855992033056765270665412615227958003290878983829585156315853052489822335646971333762554403581128394180449922748125431263664221840701647440856973916194409403080710370834566003240118937695992021731864725062244973909832374654212469973218923590532599751707504089064665485041251611220606261926995901995823684796567430500461679100261875019157108144036198139838657407214579610441111774110632300041891921076340433025508980735620377417319595684799593915599328871124156560034347950470075094306137444710020375552748488159667562613569715829328635454975119580217456899623360453669353664696806932874828377683324088199576692344250857287539361639890264536172200575068189170867626453401516479864318678262768716261713801331314562531070446023862844175010188544115587093027446463642046277094707935816320763933357934687430053551423415578910461498103567753120511651559148327885377177527585048682627016371923327285574400287935622189055079512376146354592834019944732067256050484721974636537716951266612014449823425414072766056501627356726048239906829377890256084717395172232692384731871879496763215699170621929692375815279768395097515691377405790220001547652490036897709559773697686383994770796232242653855840254397576965764906922603962718089967501664927594762374361079584796618980233707291944047564782447492712840282225209752374804600354507538708875578972104782563416316613496120917009073023393158602376768146624697511057239764509291521898168191610195228301383249848930671461724480881028477882547355348025486930058449535303776261532164953252095933217106378435027582063640708064972026074901351133159425033094996217833658165861791221963965144461396692330601885783405459029895354205280249552811845727352949598622461476898034756851550721595814596010539410145148985996963861697379755126821781015583055509867689042455995921473348970832057035990376986767249272641013215973553171246918251733786123141702749059336896928238667653195819885953158852361612008848660513917236009250743809535901614230164521880670726555438985876582618942334771756147809398344162441550323897602609361418611364877242146748992483447860640139269890686807523299314624156687058161843506367268160282885572841364398398257903674988706960740943569838303871522868004399481805797834095090915021216070130002205117607858417369338290710530519808063122915099843400403069863431994145459607366426772976931030658653715271471458677065963129305632262250215878145448317485577297872348441209222726411964391560641154801336535897842772392168071620822480716208016735755916505303400669475792638304825743052323152255516502099319029664319691378910153222380752156012712786437958050770273561934545904626388677201286595396892625780444087264569984616875022350268550970665150382204267548099326731751748462889954422276160565535914110962221508528089269527078764070804936756102669395416224061802444250961049283015529195314476828829427451727521950338978782154467715715080331145526160862291984031900893962013399986073164060567614380432929262944896325009435484971792353658457835643193880697624435522266524593704894487025713030495803259453329547581880769493476190236337672233965396524445571787109300759607403589838629193810386131883718563724258140314541415196204103702153284719577089202517839519264882978597575613317577707079461070819797151153488745395952464501888015271763425450732479532300227262819449622070549670620134829071941893087759424709564840449490789968990750627000405547365841160993494648632294530650907470262488106460413652186383408041312646643150388479946972810942385565380591598636553506833284732080068955485182881535618797499576805475887738255976013356905010046127023737256371056925393878405441796663214884510575716667279598861894474809894778255111509912605932417282771898657741387861197185970049664254669711620620282925230200817679540137253774909806882172556477317781986503056406348551575670463898319323466163141282807621801481398917388763109500645571734574327426825221017304066318770119189522500798056882876797951420145256063053267807167308789352814926859028774790670409817134737271478206414414598837521223724488096279097852139766017819636434768823000482235103024248438014841069334079390898102434761572884543317783293227743878674360377149761528218369391295751933199526286091007535034574902610451897088172985747903005995602640097647946422776638611682900596432703193934800587713645783259688473408275788091556379851165528274361259070580940412614880350729167781772161465087381878981137925102895726898087157837472483824167307986800204560111600709763427605581827575392423671998937036801388761866096500080176537791102596585077495483429322756081023926744610738353099101650077966723828561744984124885159297906382018367986227311304962655027927569210823020318765804760745552063042061893646372134406961705013040126333689902505105919235844084584613646278351382035697359831376208257799236976824860066766021072742459642374359691796927520441200498775278510676424774515071992429241433404000609345254338731585086826049162487819487071195360680387765366697347385012109179428812112777135633560369895515474901849275429295396656919753208120425913353377118148922403292377015892514058352042285580227809162087085729817771976962869558537720279254912100135783677827509964870149305171728928928453286482815495299169600706488400301329668188201787973393428136771253811519538159168873019589700474424956780367293677810868625248503656846612561535251212768276546192814007843098930703450409416145669575652964813358690019035004877257929178317248435360874570309365483077065408726190047495555899142447073536525827528221634914293279327410256207484656654148171872263774626419633963485382740609546897856569568188929938042758924707759208726291350547291812269073436551896848408797552519722567143607280524879741511611242002235233980381221791583309373050738010280859143712057495142952432703064845271995883179022653933152870590277508669203854784643922378592897115609309051378630384102819381453472541972704299271935525446105666653899288738629125532622386938961645423730993464952946050960794794422146892331765959372314252853794285423413396570708280068487614462775727050257770428967723127430148500416488718453597992993741460553261034570426102282759081951028723417947871563186161720156133874713027075484517968053255180679195686329522926579372262029955787869422780961502065308358336396273900088556764476588508447101099433966157524018162637090336432512403346759263300206111439390953956488562120117861095127154236872419186142162520819398508569151437345994374174683338665879329932952806143114524904397464271831342406045444870940048254395485409570661117484308596011318959954698920766690779814718699157202385873443438536781182890164353814580485810972057003550716281118424064128036491812251660249785609365412989164049419662669995627578568652205839480851031220577384183468280407362350291122613813925890973433777090502014226036023066060505578112697812500545138001456283662013973723447172604126734273999828008586121918073525137593107579883732919974456335536465336353244773964917850521224034371458309606848521767749681331359511296167107454441017571236487280312778675897159207997945685717721527662566404558817325482301860891062908991015709642313516193381922434588495096402798004926888331753568067501122161468088742502505405367071073469318653724645359206345969087767987933274434622161224411469915525779207564968738554829271407188445597750039942911397928934460671782399563464938445591552138807056949480629926354440373649817812882909479141934426848357570594548842103426312468568161992116315685511731957007323516210834829269507039070952341337708633696436917217352190466693082146172145611575316245883861501993655676541252699872074465831064246017673229876820207960259222544733512967365169025712977328812433331013027542260487545198197120658345716026758165411224040564293144957250947143628380883760470701120646779564695137342953568691383462199713840432371647214511693003541414460035309946419009292386428682540445445247063045773226508524983655420474152096602384512876767075137256123894097926510528515663090122018038957663960898323213709647625818285762691959603314243229394467744887113155233366872419828029658286351060208549618217104898401265981795165137220817810292559659167905462532421098782490519661352010096612635278079356667796416290304915207579796474535920880151489770769845307843851397402181477362657275312176668820641780334323814530703331186714837782133199905472433021601000453135138754760326319249970614695986617501088262239634758664414888480641139795026969119479317102129365100549537089894436806216433802835848337796265156927561938703157296898345941670807311610072083952582229262951808768704295462155445598806427844218859737788470672588393649881676834843358441580398368760335826196491119584493103540319803040401971415600634899221098447254852460876345139016965334775739269947807916170093101680680996473911332550471199947858753401954433169742425983101172400949245555123339448469183882382795995805380462711450802223165705727549665095598408127478098790150991682042259973016765163034087222865540051620806970019247230606965342528504395850576508529709276204730036618074096463251266954558078883336305745190384875890925652741901626870537148975873396504910025509250210353863336181187674293775334827926839158062924190822539516257603615093196662278762533045918550437111505394878553724717129360940765372847757999990095005972570415128433462483246682215606446318885118856885486481758185975149621301881231863740666242206622548890969642927375125615374196937867920821377196917275363237158935073317675606015404148361635817678785224376056976679155854110656138451253104662554053016000251617370448532544412776534106175826541103439777836253972951919798804276942594871073293549005855553881377529595946223218293180862645015993249739598439901710566205595447788894838185644750894553266997707839829458382163929041471043160933490521364967392246443549738991024649472474453281231192245201043928514511950411927553905470049440269166536229395003350473929609525422675059609889970201309799292245161850089914284047882653469759393608928036974407127562641778039825804307713592263654885822937542868324290153054813372002776097615091866652022687361058562643432733876691935202492899150923288904695125299406872141026226923308059459425985917975434558145053261040929845482176232574009054488944681406625339468953054612165508885763226354467133011279530853834168898557852389072643177349283819421920272564813604708258742803711714824789143870076992147130105439194452143323048838093663131873031164970718543315948697247912246576306452035350453659231178829359358520248323724931452598124562199761830660835391781174865258082552238189639365211134225348971629618879245681821898986843661351024484138698222796582185196302822228079459253020395657810459406601227442248346391584597359321758809071112365633861044719595995565377758522289595773246108849052538262846922426621689375160697644182739423991373106203893611755334039462514799880568877925855212084325732266860318426877908419110100500975761613845360402005042031992002170477303942500623790425233211835695448667865514023901835363026865827251514240147509689845740149485177851866183759232549621121849218027811228627242244992428701495211464937898939618923659684465910495067201393615614702150597434230104175467135245903826988110899080429032744748184977400240077029394375902482741192090680891887284011770102209720586287953462648088595839258689028652400571210921604664911507884979487074150632923954980275956449911366091965732706661399316370692330711075774822973269590085172299134962445483590004292831617213749276928543174920912261467008869159028081039915442381532169343963620896862542362586182663912577192561125676373444958995651764831312063579737930795366448569011898042104895423455785169535931436667863919487726271646633769175542214739292756297816935240094733358105144887454587975131865654013674323115312522264528003740777512476225513562013729170439133774122791210077751546181568766377176961936631399492646806918814583993159623913359748174894720319019270359546529284410878587622626921755233128418076402153055064945484772519953836622590881106663948058856192405310117787950925583453433522189264199683867222786238889628453669592651425350522569649593918399458518459226333073253929499448203201591824106841567645478353829373381824954029000912928059237128339462191837294360921161458453926548162938856095832056323096426346393453194657879647199630430834261082841342558289975930317487785162894443540950715427161907890927846294634476115065108677654970845475528222048552788456952506373087426925927080948226828172538926738258763638108933089854495019252355441476640601611210961664389547634701655715794992416810922771000496343101196762027176489688952894704834154266120395978695565461505784928618425111311554784294879273799241558422028615298204316430466921984740426326742256436979869513499336295378048794670891526066709363212259976797241024791217953876406751089290969570119014297821404676514764835179377441517994749543646144244220772705628046882894497085606579446294361567953863217129014727291112419641190907258802986107316552649709889639566479059014000405579541502687198102997238884758621676151778428793333245294212805683991736079697904482590694358780251632747818275912732714240788404743474836683310500650884948182465084034308863981515743103129885810961551466328423237614340344944815204085145587033997737692481224024670695537129988339897367342001576254082495304613254050516379255644409575674078885193280285748429224622830508719265698261018188456487123654778278805359741192350255405045258089506392170555747771754862304761156676734127209960304284330785944939687916431730828903015287514107319045896268770722125675526694309427717055223282805431165064713862491295949664674601118588941149628356331895930249489271101495096590202951841360147506001772491955194775128135149135566135814668216316260574746427222673540943846013347913542078721789866969188685097985623592965595355482167170433848855526274612738239472146337413326816833934564421453730693923710791440796496400099494567599356848208912187201897617003153754417654356547341237379160803749150476680156172551055327142325853846306390241231787776637032471303887186929490864296612060222752823565432215693541488955137149251575526894839861476768989640130373630225115550888785591923001940029292541077100000270934754906802047739202108553881315555013083286112954296454132775059825393519369456725406448127103472842710489285075020332462707675596293816068086391854264547388464269879946680730570306568277274820285950778155617069269362833822254423900110302339105164148291390025446511744001545258849036441444693124210814964818550217820805540507229304564236732039728848107291985650389818454326348398780154065201331619508790769949121524712613466441824090344263123625484504597426003770594175739876097725579422451214251766270514519047858910424160832273416934754513198769367388155129242866813859088504468563230367419754794535042236285534136410706160592211211431390931400826160811532690637253704477416392016377015961872250921818200920528044633128689387199999462994257309640936483653114112020286390865119535301491572227443039603738367613096366382510571664592999231999523745619128451548568360196334436962299666151857665662170381100981238849245729750919379728571790062722222252155733564342332882112664727900676183382198769546653822379897876468428313984055216060190459974691318419055176359179868450782213582323122661663741415761974687668678133205081422929387911922475409817180049755864090689073617208714837703787888745815684490130308138138904528750950991343606423497782878609332879429731357185060179704245298909857226126954852016089554691224795662222543954540724595444717930687338112406623096769384350782731518198470281050973597486437215687017846078625312469899517417103686785112812830057420979687917870449517822223558427669229741426019740242045834211054479061152632369711813801031245641749907367876541975992369535272481180783679444155459705671542113820177045624764150876772349504698843981731484148141150056080094528881862626293430859682594590890208153768618843056805239778899735847232532043959870400922674781655953391959369217317213723871301365317535803638117363875882787305041523888899741005226711310020847491058820856775188110833420081015981837140960671209434012750549238644175644645076231023600070946763863240763954589002358274486268602063040289506904985376385632276519266604793761837334590742640126426219898246940397472813684945223696732375777284689555093944878247681579279528599271883594069513658116145670510682000096111687260408841144172090449575217577433617127526300291075723996685782769306262856026328922034835071089325225649149328052939106463259161601353369545661235134522074253209863019049155791531515675520678755772424220802784364059003643555530609095118934736504807419018638328946759800628858229681640980199810927377831820864344917329535068473981312548086716320664588509375305738476163160338142470973757057338904715313991806455729167240971359573010904825416605209041871816410113995466528543260674430042589348981575104355722791381036786899704354945503811486958748468741554134307008738366218825185061913273905798849098459051004526581800950886280038695016496832529058625456074551733564999689896411433431780599703121208567848339240383472304758944576875605068926903557607205906300858336278763865652102345668634527229328585521913784543800537149756271629369829356769729892096303112605088080297425433053482821563652932102359656716999823208920237727077529413757070606261395200438029106770556608002530178452398219274929772357917632784669630091907977302541567065107093725585455473400559909875957348178733494920591216497443686524112690032981933308484388418059208755956060339399408974277193832727763947089987030235168888720344784430499579512711222645032295823480308436395597271462789292267074148929685640416393216457260150474930645703943514765005860118269228806437429313386214186803804271373805177315549596221240432348847870760891439385960345152460345832288534799562465680427641103619432265096048041279064918959005401144554506831616574176202325602336929191911566933816513387602780313078047708426001617512027971163338040595421380174845166389158951424385783196479027914869107337054110819056333615696632944316488419694584176665247872354460157464927753418332992339219823791592030595963677573874732574662319653215430431911352621803564802252771528179237721535283383504182801648842672809119244814958863551807827745274382204619127960839733887837692864140913949287616727682192372984190395573670496253015140478543893282492338387531653067206865018920730160849350929119750903040381372105253836033105016830434483841581151051940884006643562048112809895932567247892966559201242603219366040065734843071786747965629868460956254535280409274760384669346294631527347085978342979780969930136813959903977961577778554324053622626453852119772385912460156823103229745313864624048749939116281754123753903970813613700710996952037351750732336804624898593724718205215135517729878681235732099475193109628631099668016090102209342831517601745701672065800502916147888315030484587758619181091030681761876178414091559490302485680781845964188776011540939534881010173753550903371475529483417658100177558714567339411558295287413703392810634283483129395434326219192218777340352239351231204738327788007596607823868920468979078229776093981487973672413224950446049948318766785086282348372997222974385816025394318708828479457316523652558083494659065643234572466086047282796801105454590863588520248052701922678527437030746102396821538778001501752088010585496326746869395355773711628232190964422699665242863763887849242243595999964409729225066188980649357654852959165968427337933101444286168523304175273185739539196895129781061456392356829832924262426031906949348352431242682585798608554660403467825180060182707245267392210646226290656451997784572136462344930799764141623018893873096523216545057302668072462979779602987618764699491150600362130642143715004272286176656054566841256807483600018372723138592701234173215201763125095625116347974585085487121179648636793960587832385889636401592922299766930270431813808204701443577546250846805243654427178118445740810241162766378183186112490602673032105863723650135033039794287450904860142660986283225587860963449323759436378959360450675179373733003870813402232219237611163129120974960808395380084167745406789994305451509170842613805850414965348735015692634775589210534458774352211955377762120667880893678137895277495182617648850455876051202430066037715049086056123385433637706278166897876580958714269058853717030907670579848233352807595846000399415798384527468406193657215307935726400685053571597163636637184882095168530808204639306088817957650350972806059455901084477313832931130622443426069073235393090907448002514726481523401482750343985310090350055215963878929826674612919216501126760369706520970128946879631631071375304901545654765302741612040856018627064911183463096753761876413050604178568163625242684299129309964446362106143229266123947300325049636621310077610788277528934265875022572247721573717638157910771163400340415646990426744206554722600411464240856638112365650424951966657819794368309589349468383852438091260933379935435797613362362713541251716295787874482216235748246608435892662069069302739452944296088697638398353393857010100736034309900777543767451475397200185565287734332996915269934146991122815105633349290154037358853442521517506982126696016896738366365225771156481094411752385914582957809816276219146648884624490313355050990441925586464121336665934052431255356804970759280579531004920159770735819866540514582586713252876470080844820944039635371607849406483569634034727482794410496841158065281444724614589430843685257063513372400174406463725070092458454827225541278037548716263285315143221497424491528153388915578647061307169841675857039527837257220889427459745628663748347983401686334292912665717175496054955517062056861697370091730170305272905499433403314099523813168405687317863650613768597162980863571534617149380510225738474772441417929840279483265932049876478639983328966017957072406612400578412140882503110727244293253861688411967097500758657140805298850704900976983452469564660487763548951372525621510293698714520323049010311188015992073468942572203940497946279246193070377626712115629926148251083509096514208884314130734922562701765704439451504050404376774391371950895448000034275454129311686154898110016011363370261525963521413861900191875997684494255841241711595122652802664210207224226464261855402004294209289891840337254571336838153315410701041632149128230635939140882582074077437980111988563035594607243829237032237652543158788456075046786673048501888367685797641609236288000700015895792625191264927911389901378171087677823344144142070855997801900821249350310668077375574221538041726745637823227919334891113218771078756282965860235000683943991116564217899549922220636593155097103205989191364106974325844863285117706449943101478179286500480752708698093483910863719975511131960658201788197741974762036369070617439733775743363405810118524781331012907765626786075643599758488622711368212022418010174693346905984271121659149659597664841475146726686738911024641181471811338693667939861255645186090151294992814711269327389527503030783604973138996904757717917609052755102360500174116464466359736223185521395276720380674603024211985557136058690939108955788314494124200536300530803472173862231424805829974355089751668477044670852248262015419900908597780589754782460851627354683443276712667663175258975843691653865353775705729821022769703329855309892401502213528763641597797393212485266603745351440487699325926469722934451653058920528934966908078539651103372992648358203945896335815593238420461599428011823568556386066798837094988909057228084390114327678198744678543254510759957254056830257573523880186350516969930550017000618301793331883507032342443833833174483744707615123287296389815427905061816375548783275817412389445921872333379222917796582575505196187015954564479701201832488090082665572210658804581332305980569590174123014877049028926601024002542483459163738196957720034594787765433164160841003436868513756345771275294959278173705162838251725868680277018657828768857186736476490037819852349814964816096538121759968106580498264292269866947715511418714857247552429648250350981197319937050077880052719987061563925718110276091114695603481448689655491885598254964562056702846790866929378110685301827737340190609392767074188139245420680237746922137850998907871172622499430889056406059305620601428522206904456014198330612605962842354296468104036400056757359142442964992947404625772267989540307415699672029808331776499224751496431444234947124570093251295382118653740109172809077990401137835029845560263102124364184587147039719485858270187665300741462380805849470958227511895869150680408728306270015992439778398141463164403660329785102731545201188814520535251635166695455080610520168476303427245503787462951767813909883660578273417221479048183682782078466960228789676923797755502128524290386761645472982611164862242381199869229924855905695977043478551757291258727750467284263357272568295765472400243524123403664221369607198374793948542616394154841311194662680620848576212420469892302558388827305315633637213049686353241750576945820423364894446647597189535442287161297426336089773792657022593064358300968968935849080865747934850643077834095207480669126271707011116092521178527055781687824748996677879113461307675669617411277352102005856684033737157158436712570270390092083935629915548657534909798301485258622529483238746111424897149488942247709408513733504646120622268982508560147655827029733244820634739808154575501513270598834233848560826848932934481880367658115406346512962808853654445765953547396146908483391089163501975123554534360164688472079946506049355244588187578691896220832679329088493950752203743475371212143067216083074677434848573128080128750487726181299101615791194536357785066958213742187581987157213113055070223388978296533071425066675308107664055758294305540585235760939195233020800870781939673519937319349351310380440535352390784391683499898313423690676915616825239762979287750529489064260382135441673770585914962591641721986475844598802771359145706110079196690800921182596607393783128998328888913175819970011434252729532921662987430954422117632068173416238905236540625092345915881554021189366983187264357322840724828131856925198322800167152662741193920279445634372686377140914572918602125595446242563332514480809861923680329825637394423679302982675800656561212483894530590501487295175289871919170548664809409617612249832698709817014545400951528827105022668910872298252357188892816891806066766659753187684020702913012336159529066410904911381777557690304923963274055166562185643890446222331112573701365961283410188756965738364345094132366338579580527397166951445606682014660192815480009293868896845796644168160685416063265182292984974453349924016483372850895705892970697150199480372639149318141550776603250653168496778439147502887241965691528869816857402906572304707443207389812591771136833031982838509901988171049633414258633613221027293405104918593237357522173363118541500346488514313641709781094029888043174392416360977886328983120947780614573881074020463666748835898590202521256347656044707183306317471295852291270106928412551791645209876042681834428553690159386061506911108609090347615667026613591878480381431362533403222884677452447292734425846095137704399259868509799466166520236469345615932298147789410967399437901144557443629489514832972631361483644360716603461215091493419450495223699486595599309405654898800081704389423170117571095332889635212753536363139619275224466830260434253594074086101438808238347516345396444272790586574324529696359827192537326965415915894624824107460507048181735281002457775419152365144201967853082701897360795579249912302095610772879846664114997757839536272522098790759702857327011562995393275545279756255675905045671569246974785551677589464651319267172909701538023276998627957514825467186252768420127119371751373681364254933429931968216873112593982122322014099026383135341098212113183874844776552373062347637756237169587796965336535227028697388652177270064842431828226478567381357812725399879307015104278081797915145477507520491575022433565927562265717919846446719796585023504053370995245531924336049257021784667022330762953421074780572246269032462349099260273450508354108301745659528325635772000963757801299651044766586165320785062044260628301306119097808630171991925406098310943302508499192796559711849421159029442444149252473721390957766117951521239257242162313080034396555202749580932416705790491563330084854202287590009966458783061044720179739137147271456889141936321099384941401474053638750748357440424147516186849932641047921623579907227822838299020266124107659322228717427388138054216764124761827913144808948158354410462231348277322074305927544352901341587590215871911043590388508580149407349119306224313189232707256327656732745967388316580060502704040196381435311756529774403848600848518146530878247122068845308183143692017445971258646490238635204375434138101805630259079928049347359794474618926019599228388868751394050154504402933817607789718149700074705865959567883965404846251967764617630334991721545963667624032337423863875541752352971052872964009762025169625372291995823140558402400908001473941599533429559760916173728089010902807043809413193032688732802829368102922937205276692025766205795510922748837684756150926812733197397867127707420412976758148168164179154727253718020001691219480772745133112323300300769694570152748768632724362755909034207517712488837518769791371737590344976772360532721344638300522250638450539999115518416372046835666060652274871280418422510362828518154937132618466537018019456424915617888898768729460717311367099956255958704339032158368785982003499326796135337768370345316723178845161539824206204202040522798608549470476534750102114947178643258323203346135142069433537583440672778035638302876184434673842434493065689107003339633667213938795558341290755399561728138630462063303291989982140632011426513964020282463356914054084882905494227334990005248688232392777449883148057816631127842654179958878246613313945777997541452938213133187387917664435078925627282401327305317795751715682261443644099365081497945224616473616919374846738845689281742220187116369424986195075881445081349153316424060734896820777632256016728290870300794784901542374462152666426052765555385634999864450245179693832482173329231629181560830249744376521719310210769474747204306624530278145880477128082799934342645730107857109046832573646992845011791566705619279161920250594398638449832195960641039730431161278179533084692911508930799709978968135393690285608443099602711532871035744858263985716938202299110191415124172044622838121887844058977003422202552455236173442645958320251242358308330204685284219428312775863402996280006617811571648195711520354038861256747761396548550427048607892985616236140038304247719871219329141559044306406947712628958966047036181253837328500644374353481464878029735624440893217334762863768647914411249400660338661042987330048101460990609756925831427549394249506031541171086673245001095515740586199116497193922602302131658389173631516488061131661173772221443238197702407869145767761788085097480452718359879129880938140045854468965458536474372548677042482490970122193841339329686531184635554843126521156889593025140054162448307593816597507221406545750018549506780175289978932261301239949087924740684043342480392602677975477899394488305161414617387808119148520606759428675416296880918634698927416181662325978815439981484031197304493260820071196297511494263963015901325148357623177383825890548389621556897118912062389620354445576893138879916703133270132559422186721930314601835176610615989305723992227039757329005438247107551882058998739911856655118966083303535571471791568603719118036573045625331015998880580936691467078504128625657529905397190862893971426718599427319665189597395603207522970951296389115130325551040444278691138891740599527765299162040833343697453974336460651058783886386438306088194671228077083909430648465393910600260464680458244772922702173201146719213856818061832380156121874755918501272700320503884723820456306167735524701992337286165917825761393526466487292401819240326696069369984476563191602248151823685019410946943449415952825418615037820364073362662012226721799798092763050537667280636725486022388827481728776090253335490877332282531754734957343290028621016675611551100516463572558424969054422030841432021544297347977332953453508770207130797329364928136710794505328846440981899799048520651405023823838318712461266603105598041323255764100416313387433226762346892624673301796926805109026252843442609340312147850461708500801823638361890172049107718037050944908668322449862825505074255256349574111920600413473241935146611855952136731061218511546630140023891572179019821492934687504532817400690563888816902778846091602818092612820829671595911065152845892944689530356107549150577404132530095109471098494091227712603696324239430339854026508460998090000437283700612791258169829806338912150036206411663695323943320495566189202570811185153033341754718635806026983683093936617008377158599896352633058937784905338248963332331981893564532046934533557978661090857371197870795545356207765510680572671914624647409286182140242304035615096203785750570557058473347604922234204840303108420046683049331689735285188058637402723938439574647787196534656548550129338238679163517296428979003123687148077148917002931622045911185016394251591922323027571114855127986158541468035680785621109659489015078439562650588163676068495151974212377554320881125184610902497373849993158457793151088435750470027481887269177386600442076254730981656477919444218697084644876177607161814251599434460987578061935150620086446578136675560126712866269398296293561690042147082763738505625816777106682505735948471976087749885524831103779026158034722491485051822835821599149548227266699691470312156865112320599693815492794270201855234897417858095848827532864520419794894985854438520524063716405400042615710905401449371921230545317914348746481456037672107593512197421897304912880588748473393280565770511908727864690517883097205108860577831097877844272663691277436859767283594655804002812556393089328675943292482805234842966670422746693145406849632673377897596907975285743636246472124083762061490288281563140780595871112670551216673236792652021479629322695317465754861481230571928591468409715176736828020833649195285757920328912299535646605627086695712976211032560130612910597291905213701323637290376659948510041516453819398241295472427395843716699242531534996928064632326522498565657845834739218161990303438773750138009038296968567213970427097233071499661147042376668904112725880807518460395493669839474673136419118094156551948560251740902486239332486220739573760386954182817740156475212099376745593503929945074279161862678130146160361896133641188987058125127716302106320836016870785564531229273402883932672944159600649904950470522198603730930692142310830314826021506287903177269186474540409811763138687786972485449858757098542350969677565786072385926635014020856023467497112794761451611609449654833327971602898363757480255613644142003949866009872294299483707686759544641685222499361169897603742883411423285289928739790913237481933326298305743750765083393463709410328900913481714991718286176032820408735718891595220698054665671935581229334366099861617115796705117851315500240324202592758460048285577867350696435402493325312085195258854027146441316053812484004335149910427765187035625737537504811627809299044272311588002130203334912789828939381901898612124788331502609247873884670695144178914193194263524163584340145450606905059657773633072744064669677666550956309379912346087846545532837262374760704478942479111074768266684004717770291137248864728500903439237961981863141933074823195889663552928944869595958382180684490997681735593731094654732202590263025533063291030209715809980876683849602081484945181588255694088980801115620706287794695262497037658796627409181460261745089445984180618090253853471898507416869373892664808216496889727852985870060897642581589102393808769697550946834265349414043081425226917671897374118546674254265772946177728991629742872887159055095345143201668370676428958982887522496118347892526812362119317966849538392083982947288622500024712896247746975050344448737749273035221793858919558119240333815663281149545805100901567731723371755814041715738544512900585726173989723093083425211711768511573455553727204249843308079876184810889810491511945815867375993262545443307268496136073549216264062086346669418413365222146166998751864402382762507504675073425823814198383654973090042554810606522416947702854999544046564574018038783236345660871968187051615981363478407425394926109299273046628908884545454949903247396448178975858312393590217289024896502369140344653629543094289473167557677332508259602853388628582329738486781757102306014665597473942946023935941361776032360089817867279365809804241408920103770689391608556472475651057055821057302369055398788943293183003992834274135008817217505273953896020519906282092924307689350630617801655025233686183109040803382911913337678700041744268782937960581852408195156641536495984249033431949173387926026717487683697550541986668855364685818368991510562901660343160906386755907549796363349499064793216025580904474363456252448809579157060238818612178570589524629462363279566458262034698190758549604694933586761838352923259325356580229805531923651246871926561553774005268020392775415186989458769197867758741720616369387656708544776022477836120493320806814770156448840135345694465814804008943775147223027576839528333270307096559946777378968753445990537616772543172923853100324589564951075082541437994950365821392566723956299275233277908745429761961822504385540610820391505409032131504036699464492282488028035053915736218539074662606705780878880174049656359524271612591256223510313041968713874436228970634989021195471480428559406802531325171748443945539860096106320601278037091190564015935552135985007625069685733363909640849707590804630916157281063310119484915032115081728027302539320154803398911039166492283493481545878069673296182788844408865857129624400696334898815422323084099729504687270110758803281930011257664593945632331649324991254579315629853763684030506404440610036567009836272181525630929679154442780327819132747068950634510385472730467941755761493367423284135516845427681647075819956115029296000960811952478140818698112448664619491641143258152435988918724438529061025674187869973608660561294368986813316190941858555244017805422851442895348758243534789893796981434464317293380208328620856909644971967817381935644310926265703009940673599288533270341194715022195557998901831515058059919992256140860736475361033261917289603846366698256075500014988396112543018118378286802526736526754835298025723669329875166420715472284279905330528800508762242004339031750318807556097026568461589199724820870050091263179301133811305433800189486319998859537324967129951401425453344522606543813690973041845502827057356543439448545797036377638362240202942055858303676079155565507336085873449137820496159481241315964783440975241411560017667705464173316706655195766999409679470212232037467293231488149692242248907805920650640814208647568438798799948960055580723828027780846410584136554486672943310930731465380987171166591979022241624236614524080099014357486088931885703500461416193837055868761920055506109804239344765622012099644641623268709570811555640688864125959973883698749575190899110697621989157181762784520640301747034391447758254428963371039789170094448736906285707851873574755953151553152317559936743090686492422016100370630657373023227128793135249470332542631512011345425435691114627949640283745512290463418582478556884133232302920129382253997447092572369152811767464001847723501910165217740683688016064999622286614898423663328683295397577963504613531378259184018472118345059130885878734353209637278652825269703499177020805749110157713965430486504956025075568478321051831381561292682439574214236398151241140372459581017204188342839720962605219006984750339849098700204164880433950357357987480564668561562683909242033014007300525734889889806854544176385724830377637950658552874692273667788395961226999504393912035354290581903167552568902797678506638077592775915037518908436185600742559132538553763022955472940312329731050922079379912716034192284453864011098176329011302693796193133863477351098869150415133035662430949010849544065682930575547543062680602230968267144503733503677417268424406611249955743846474058446503545971876414701108973776210873378009243421567744597215552915994428742478656990524784991469402868140205834239742378581186775397239788967883496782507815823211427307795349586576203784258004085383917195169801286943291031733513321212205567591403638174747421782820828179982061839286238393430301698056335606063993204373589949473621804581098531934651888434982843153466276178415821819686074769613228123006784713517231351326184458702064614649074639226758519203118850218199604388991651685904715409228317529464905459102419772625462317985304058791336969287639428917327012745877741211322954070899514807874007462233469463737380053205834940076072528738427392857230780460898382929094378179414914049938485808297122536775708252264417957437509964859856839373470161457479960657895947730766140038785549786313333536855726967757444361888838391863776741321681813144991589278386871958581498851812635117973978554121947597532550778267938275817436117802029416730560735186624660163727577495061607754888817391352629665627055484341720442099376280103843919238580884840708623701483806494228119309136576188665866277660842190437524337646177568017798666821494391871770817956439780577406965103125206320219964229057994175079739936509871033454799549798943076067846322318712808328950288613040498214810717756531297519960681896004485824771873078616520477320261610809919103727845091447545071514456975725743876273601815008055213301003932303041432315153192291130776158054373312501192598091805693235107302793161997363347209884370606638454900595611111882434151842554448089953239500533670345880068171681862026600914967228883696208656344365342465918584339622820472008965190046928888708258755918195406632790226474925323780022091254723831290782877186603036600613896727580951440999447418606031987940523743143749205934369799516631096872034141062883988331552257317187123668189395349441533953687902863137072492024348309409749606758797487551400106337996323698238855281495977366038946741476005140395467883674598119266105504142239140695116293164111889663982227684873907029287960259065413035386936944504310007883684339831121527904081157156310343370775607175720499812573686133509028344908742744152474324698928109245244654324573075005307485207423512405667845829113065418545999249722459931790577805486569209316158721788978757496868098655092088042243954357575091153579491255382397198385753328442870198855530246097492163936174137996391399598841479645890926726168558821483990822751333059191913814923198852255079067507138039737294522625682694594737717925872844136034531362381554727847792303168348079267260877003310271074177795158115005327561001973082102934114292242862311596466754660923041366483992487562721376071846611273820088903343288601681993584232925181065235760879160174319802894149111013692216396314455587001014071126796567365576867189100612733825309348727626238172656401703307794030701172934428814156402030462525428390294280740466352406652626608817311706262066739529921785181318537480453286805561757922021899881149416432190161421608684824764689886628257277265289617914792910238053663386173030587758612564870812999203742156270425527701362086792179811799952751802891703295084281243305727174373994024501898691429731976213740915515462573918853502360997664374427460769411411024055236930635317715848757849567384419615315422204340731227544674640696950520115889523250916723972775307927772985161108555474051528479975339500330294112408602956821941039110209039971573286343978149034075751060701396785722837464559659928956219007384294212039096319106316831601995721417519714367878916944219447594080145290096850060030804165458430797315968625061471520683950955152465480845450934077165542396381647133747148612743395230499857137780919458926681456450469620460495728106650030075030114475993765607762560719396317044052807049557965251646075676825220240337034186993929077243017673527013124629883368710277623008852777660264323432363054560273826595858082919651426075076165924500847594482852803342869947332439816889409195322639250048201912898421401703151126460305970087639540953824682771961143702788107864331235217126338792639917180620546927871549867348877432101602016084126131173696017417197167178102003517549531243176427007324575415736551056319886119919861487918915177768271495878247156008421056824637639725094579388933664923457889324503635292306750870914853903061308953690034044491350258011825408025129488768372697207579001879556084055960452284072650134727597559201912547508137052448918281048506406078572356719483889296135032710678532853601118177902910529961784633584755727308590927314080156434681669828584950340529294493512542793952050495000378856739647196555957225255808290532284172535192665515096970414965501111510565358362889982686367040283771504219802693878347358342826493189214950892624160377486536525273238425897768137924840318897718652320739924383872333583250785429081232275509988058164665151614815649982668158169833876903107775990652847103663547726017553102986668485645514668704751344970451250221482061213475004499957042035025842429157372260540918852609496763581981608834931652510128768112185026909155400213290785564390383972949478757377324117500030072938946533216569818673572272199129925182729185697432045083826946532788754740549113527873384218474337401480902618408000831626617738396128956104821822933034219670405288579400434174870108334832158865329162496807959486096556719796645293620633725588084755682863165750921017471806176551670820106421092033854659448486428248404191657958953595338159832961904697517153979156999574000069206921729668159582038357444700323557437260647622642423070806704592212404379850002852744439140384919897775931451381410387047677604944026970822858859115403513200235181070642917777641430885822059471176458148229084227448226063755087655233923368435048842611626296761775198988721867616738055796448228579870180230086629338505140760869229661370397369452026263807668524662414249129810974879481178322969937049192774611803410934619735623192213325379620865703614418518953002937145420800696981552754021369491883746493026549421950308385656254032798808419739842712384555679335384086155902698079218573244674086567168557655951046994224102637407748647032625300184586843945455101769610834054202583605826139980805138660752981150562975398305447154742613723578875158562463484971158579085199765204388126615170812463766842900768754692476195689025737296256837391411465010739783320507691729864088309511333035388657671589138783438328158180418908825693656997129235177886702072092253927622656078407821102350565703082823010807392445614680768774095529176470323997364500253484700802725009931163906856866023741258787069987276956687273924481732434956357248969333067635810767900067613079026788519928665969322560605435596746497908067880743714338017972955700682897273537384622710722668190708269298597565308201876644902189069490772558251650282160667334776640462240315663276613921800833259169418532730578414782177292995015986591750237322362963131943672717758065014459264020893581094359516208951195488997357292972722224938148755459653593963545375577239384680370367945794295865029897348469998536809019050900260654296493975669322782342783003538146092605087614504705425252553444060910227085800142275345514782283543039710452403333194067233778857693876373336252006216442333444103801501717228527928104905604609903320981593145423370366655235143161609390214842228532898169926155061965176629270896043269778807771146996974735084915333738187811961290156695226609178947854938468434977054881338729029308875701329527690437347098896685891108868813844171006523594961245083486092489712151864147893411698184546911791076678007124782189138390903597008976754194314563406065341048858886537502566149384511194530107372800352224037992023187268617849010703121674007088158843051575021747823236117310452920756159297135599979561911020518681112851009072845790579824386260348827198056218949505768403315230718862956671709696455074994206784843231157119159125593687705683466800475054666257519683107718996968626614318201883523430748035888379491269057201630794409632128452219590553957476546222445652687603137959457933325634308116361987843861037273504682521859644636003490351335237955618263713223578996004575235484707239326029937423467425353037691359159276078052336715506333835205515277346568207681761860038923538933606976801421637028580093114488684297735861860559365636812215594957560840535332468780444273708839738667757667797355580565916871222066520950502432410557162667230115008345346408663399746510396998814748005978236549092987348821817467449725185727764041013803993945864772115542763875732151455639679459170956064281738649048298987484264922472230923245165100454368757096854790000965198762631849434088734510411548800584411634871369713594124789750562877129363353500439819145118019232499844016447765430848103495818817634365156327535005734920451663793680798593613794210529489031876459401749735149619578196601541314337115505295877683059127769815505013333802191345251899712883883185519186134513276535300753632313447089402288036687824131989330807056881117843109729669408314173487788803203415095644591149022066951149707043006134090855615621797603399887058229176304113537508796016469781296668032511983341873268245297531759103180942270736339753961106549443846989449588393578645211729538166871493109780530922792781036130156818109986938384869237288251950914282018166840829603428470078513166252570209294762461796241427988378492182323310731348157282708714271843146597483411385394427106989142909155215013675552672439490899954688509650365685567238590187335635505168441419523630587763667257294337456415512655079704895389839503676925962290473540870784083958805085505544393672416739741482192583329412600543864601999643986193087941168136658704309304419057338190002752102415563836778371612508470167984864313864298301344008858457264009363216923936224753164078386519863961548181091540018811288826206927447705690484737034548398304141796075232024595645407278511725244680810924058253762013931259053732765417900969712006908324319638159636997737372790521333511939190786471862559535960415072004982033886354096680009710668281272338050753680249500489161896881309378434116133368299005228223828688880088551827781580145203012433684066432661975911454796901038339129927040880794898503369567346974000520245760726759621026485273866873441233959643254876673281243112897822851089961642497376966683722677813785813186939432933257608134866902709014663603296668151094647538284204547632205059480764140574955423716282229546406908235936497916210429703698606608821120388330032976063917651035571240524174558795706083237290560875724768464244863741411066519084334285660785781284304879602603874412435816557595875403490011012749162119977243317147082157041480428800661024201535565217039760432485946753298844527901649959466175048733521470304307107125593958335601699843643473210643474204363341021705493889363896902567099885089003058656127504016795350983513077950575606712032322814868653916402726851113106920176905962436045342901561067971358407749780166360943926906950527814995098869505194572685306394850663113545109453126596131817770534803303914307194103506558912838559426230088281633322250110549206079508193620894576057236216212115725276159817328470696399934291486862366318533967012756450821583466773815161834996017109380233103909801610553210026743946667202293936178317766790037805795060314003110838737218628341387759272290465795895841406122117881919215537233515796749674552555581656692842065218949105333672154412202892923261600308908486242384796348284537668230957986543536111733816633703280999299745856600811817185145128559369367930005221426801855748187788602894798110757909228786962393733219654791495622805568979695580522404396714793461059505186631124362942605401691055387748196537620523114941108460096908292092159638391473031517055302330237946967366709909125513516699249546282920578169761648403233138251131804046132260058424547155936627085887877126732749128945376503585347390284690264281762546923169481888235106140926876305623359180035786528589512032484768377531237751203415884427330715003971733059493152698763391508169419708937163960905676212434237070580294973356889892420716544500379308521447024035178379729864168214252031133981857700557437992743123527222805325031241129592228443928332323303942898400945257483022098102416487612067323527703940673726969343825743651460237280132787551308793377471459464790607506729496232629408745755678801791877905644855908412833411454356894220906975128900435384844901804967255275300311335211566917143508879851253931984900967751716771426067540044681419282185490953088743383568148317985045820761981295424413091823306230817875094254268669273769724844666487068264448792673887805771384781393570030823821354388949573409977488850888842595721210561249414959592107531472264028655560279295759476179790148196833211440750341079368601507065582733138881215404903395814166035456001054478736679113803006758824902797203330151948622062292084902510713397610686938933424619880711130247873629087338247885660430266872240121973527715440798731076995789981493889506195819575939871286643153825819048789745590390768825693675641058298739386313098173772613996605255139689255168895983689255656566951153725161368664005465320534255017976240711714479399302093354912541493576390850994715102971408963484379000846258847221876041539374423455687419784138001214422164056177438991390449773124436828917561408538837498585887008274723664821419206156979997467089732235555743303723502098764606455177029404636994040256348875939296097690953556684419231165521585785783394436140704526312055444201478930594129045171322374147574122023948036300609909765674905267014317308805915973901796591488901536152544799061131737509875351591393781886691453968213945240757412417825337952930461021737922519098944925898489684474803009093964898961856898409873565214835847701924049416969962105355873910851060646816309240153497435591497970630785412448119917996228930626444483533616492947459812389169479646860364027772745891183416456912247295281479763816695475923301852729090785511411879185110791271924442397666724597025960049842142614729974483550839492114290442831527757736976076096352253301278606264761980584130832330498781424389266698617259194040860576845290932030622216318755507782688541095518033405854388386505190071864466703329453010558712570181481658982544169725215817571942408185663474620964450431068278708407552272957234704203673539124453041502850565957800427950956618466438193423357808632252630106162165526532123029052288951832185935418511173946093817161747730836993545897599825759035213394338396948107709266668489317534654942489736496190119361293238457161877115343141295321098237966319577770612937117557708344164264687797320946258804612778903891377584469950744241296441163991168863789920692549962130683518003375290015106288485330277384884720732029936001585609516483739743788910292441644795991140588007381236746207952774358107213633311855039190322827005685653315536843318468114753735892749128928007694259486238736150706676263780819604416671145189472351698869237130570152068721068290233837758595293759496217464072899153996358258081437198071474427602410018228614307802561971852483527433519635755743920095618848281620314779357935090690492260329107180753264103597055203595260069594585218248208257895855300023990655082350611846719405693533835315889482221732838805896314308062852322443358157651014401100423339868642015649898162563205210056394093203927230617305358950986726241508017277483584618318919078772522284324395815439557012814677357988190801050951799449105477803431035779597206207179378863963438404204460692134481949610347612217120368132273281978613207273620749974577783310485729048519123726503506526140399827774478556199787739421578984440449865458965217604427942751898806640634815792390757127446427999145497416091863533685022216761500285767249427529051507743826011523680494741385301724772013120712676304219843643415167357279274381239526843710875905948098115296764969816758509519524440176755701248443603479270375799259603900781689333558927349045142266978522795467964195396575738112931263435453757886055714092912639935857733090907018331828004824303308351354223608172630645830639496468149272511031975084467098399554468261173306544800743750173673028104097776789585826191170196269745137288907057536883336930605084223207988893277502756113835480168057384759030409161718531302876547710059927343624523444910847506633756304105281007367038159313394534581231356736029989084549241342678357803684546560559948482583244423651974823251895523785634093624306374715821364540002350887657797393743461845142602413710764932459191190466585690197493206655855827048018033135578011350215098308091702369452570237823331993945537006829288979332943425294660255190065261109910125695261671416902062557126518070078587460643655085097622299272977747567364636267152038961075777068570245931792970875488730751160692545223990562234199583087413443967399331783726764338358785867907533808983772886527194539103330304245610714052728711521015633576498121320800040230261780359128982489112650655076439987131884350476586838682097222311116633114161308713929605400595668456983073660078402787825566125345281197454644665794731265353943870857808806163612386303432728113024938398064172948702341733923636463734964572382561150573464972051158212569852796146917242167446996219098977007244042881804504252520389553043883592515350158790844139096222420278290581352149969539553123123502118799926293402789165740160726633783290831569964386457364594984273725706555179405591234371239133044765873654721975776150797675185558024644597228279901707384182316091872937100235091789963506457674654577200833527061265130267143709406292609128211028519545298674257656811525151164375308797882429834505744616817122202350024635740031851174140523974074363132656117970593784240248510102401154661304854173105336983578729231699966470712292847196850313051610508000400290834723792804050360572486427169193945910327878974587530428703429576416091130855736402678283951302212250242162811628219587882744321526779646932940666821929097308971152862953661907742043256734255321708441440996198886812612711108642965594362342670557385448226791082329126497406870862961262048183073280091486713300318589220375025829102032499744580789901334796733904009899603057968593504627960544673431719272914937092113571923056998961800146019642513494879535161533005508624180913917188390815190545411489431876182839859978082099547107020775504546753002671887950211391038719766146037058229348056965961794599988383606744121297234481850530407222608319815495058028556339576089360829253313769807191562901958871951066564019904561330716591626733627278814455819690045413831866726576318166527491715025824244191345313419142786270235492509135926588523357494569568882975419035995675776811083193146134117615007164376081135128622933266210836176468679129971487474891085027554778640281336191091461790876933822338426553398685451473196963703025231959956620721127923174761884189344973879426997715783247796387164268889906613243594106497536636949877500629697697086336649156717398266714353730567568961753881855824087757025304071701102612146792111388129947301084585972103948313316002578131972336040815936992022863886599086043679860202850964971804667313402394344688570942816437363156111954484709085224964540798126963704497409348926761929806545679944885417246640485884366706603260953227306453150027894090531362624489197687868561026919374447694532628935695048094584643118418557615338560880756744333877408877429571267795126426183328223862739469641084939739672801706367466382413002414916640014137747242642751438646984682650477321792474099586212592566472438098387805860648509416326333487660272663130644112873263863663790038894277851793771981386663732964154553497714908991555799514279031605283277881472344063706121787493225573784007996366743644310551708024780692031526297398241884170541287521937604820355619571728829838100751064293651187701156001724347053560516901169998158863957514349393700189745919718156112579740283784854451168090019415816487187188073122774195943241010704238382320011876850924649365672458154464394512058604446229390033551826811513762441013197927840299186217498533438249794562384702325112858841965710285668059128916031591430671369735012288205652494879740983064158467722283234062943747905669595910968825089398031149596383667806204197450295542862048064539138877136119798798276098074420571454896467784516963726711857153581718079884165946187162882273163594315581709202147051679267571894480225961299593219560034091397433235855231519672703102552655717955409820117557800095083232485035597969465248957186218334446009797711215927213260810203991244150477407368149420747515672213410078093774492309919938842049559851662856571210738548412702953580317103534767034044705250355800529895237897173987727232445635407515144130653081132249669719963501944184327179249480753061257897948596542080047647459470481505319802513612947323262673038694715916968539351891222018926637216637142285078193125082466474021490538562436293086892361282709616135608715057844151281827668140954658429546485719159993437457259342489965399109262590266779303939982154358396201922181248051771005299654765807106898716181306301046290391108940132356439088552752672929841649988744876437277447174837689674157982289992633882046064612839261279290488858587290174059010692574630828659037093340218632961285343038603771940532025915430573931883728728909303573501657774539791440404348178653071637361112321775815531191917566611374245200404262266185846574670514379707848653444784931646512151879656081117642810406500613925932448466254025876141344587800816259810736399080480181574060650299846469191732991010717365270338812231695734983777332297673888066119091766384781094746705827446844080165782584975817585022403452189615036916207376059511521424571600723247817026586391460986045733051247494788532203429497829965645336061195755553157209153261635159396328899505015375218547012936294918258012486680711938089090017033485879218433410766010310084400282135688620262866016313441951868471124886022786855261458835294654840366805803526176880158981929368623251956437811998251705706352139716640185229531406092426438796695945983544317063693064030487195968069664439273979245733239118936416792094306124719395335224320709560226398601949294970373130565903296097850527375690182234795085961835640992277820127251197536102896450342740719146490535696396307144537938224323233883256735352340726662459901505544628159430010397030345541349342505591337914485400943666598621735044564135591281440054470639825667076038932387755481058897984256756907164554066936165665969032052488197199170235914294605798474860125116215656453609817999033519785425236332797321969278010275901035516738356096709867139978999902883804020514493840828999504822681736301121756940899254675892417720503909810104006270349181600770126834714600121625567541867823576140592529369377477616063857444340505593031355442293537660269151469035041188098550813119022942866574042698348790797898578967447648662152819488205740159571628554868393020530351801922403807249811649461011961415001704931649232962496144495662276663008630802422686924964476876444131273713645989287817878408731083809661983655601552263197100026032182027026343762756503136734726367855385328901781841946175882952456611115565778391182917696996149519745201662750299497465712516288422357290321714164726918150041270810160167091623887459119551371795095875053000850607920585995594544336136846300545781517294850340181467977986429053777011155375783324460954264692449291584434518617469981124926533630291203552115897128368292303006949221393112251539276820792614466623957506401243242655192375266410990215058005396093660094128723023427214218054511088078038785013474466635277045715304434377539596881797036732496385269074914118926627987918524238968736665518930817631857018877800954976117619722012037346192364726346801943556431731963893498418520226036654538885049109850349742130972392915344082672866058795459784029644036607187725040180447937030367166887166667632717448241447888696297221593102650158802035870908004268118864855272778299365912691081557184500203315990108350210462554346190404451258149772009942046804279395941161392652422148479889424994633381406751505352231896943786231755268529082162156294900367847156587037361722489269122513777368640209075653823565167397490528015792395466850722912121683131931407538852483264904501626092790944315477250470975438532175726945644178521180130817162831191291073267544520709406026696740177774914948697419361545354412211207944518968662883190058138800241190142348999662244296290867486219683951156112659696216233228906572043368033307368574261707449585820665739340500729461276647548830561141375393882196630023827219641768982524248063777335003047733436001638574923329731801054754044970147836408188200507076145477298499810848070437943700075134324512087528413350835676188478571877575484667351116549277281749125452234789735160269699461722509997018091010458012322482559536909430905003028936244820395633715553171856942422445970836218797194756882944375375349747077320717786105557592909560385575287940002158864286327301138011675093736397315398044780072555900480190105963635147979349848373905615737931253230491904789372795782836304634568131449464150655638559667642861969622499066690526778712388434506738522622405036580576487712026259866227071770798030733749651441566614900998520396461899651194543491275965629319769909104241616960999322120869111971621464267982371032075891166551158443459818946815459270579941246281651209312283493077439403205814379182664693993270743884697208235935315829273608562156506756859618093998202681614625798388759721232812954467365478971207501949266716147983726097040292021933420471580195246120728381124723157899384693240314106947369692363234764958568350509523028552798273496923513726462962844052683305024762493261146415589821693540176906431049097190327576345424275271013187411155608239022953616630904646553575177729905011337036710756996472739636928343907082311508526943027040618801032421081608792733280237107838456857336415354768549957089516833903609008129634365324518972986719872892017667074054918498413550543131318075802164392910937725401342251766487458596257337133968670414102742784561155673568671568530417342669360553119162153073041287309546003009757736182928780781506558097209300500145444097088235398147641877788770672798498118403014029867518813079221495920471682577320018796296356938762874371216838477544700691859714381488739926685300522817917985699202932581048801026389559031112407343929861297696293721275220606096717638394936361464813589607109302603267720544495245299703453007498766849378459807056241966389291056749145717886027384347945861565326032633117767373238032813734679698640992760301418711457157137723005660903710741230007323029904892336819805443683851328448002205617580655276728275022582534556271937138978128574360791929301483199887688866251862892786642075073378509909454795052904893842594138986353298632289704582493195039459822643645515416281974521831347947896352106767940430501035935519809776786957090927146653527421703319534860737606842916044982602636587960389099762500857187482357123866966520063008542900333493344078367868098034796558556321221365836111580157646368957743814367991397456036994963376920090052210837745660189134696967532300597077891782086946578405377515428965258352526699442028250881864547311974313417717342695187041907245510922187641461891731598724760990673445384396176253001710097113488854398535023695863611854340388256202385103993016386853085502385521660856983541629797009389045252434984200578849524480023706790387964300366631470253049714094699284372773715169674398976563167578947683635580773730635571102658421522187085420685576503169515271369006120280035600235828187082700212728607370021930070529080995072376754445365412891015071200103932657044128832751681903228206843949538370870808738481875476398555694925863569231029573320413227183585664542592387922582945526241936122195078094638540074116220097580820586710772476904617625803188291909983702665580635448061200425214368017885512394699940271244853914716312131959935170853567370827066861494733985961838689410310515830808768668862637267354478388021790410926980192265556978001671904974755940815792424776038159665943303019744296056136022935661543924165083829337435035575734406389736526143251944703959125430293835588412907573564391364862148655472472936115127832252953670400983532953483256621789751347777913375566817418143075336609074295482213095256841981262468342968164998442470489784718679749348057204009572379734693105534535668213833442808797982811984340248606711721475704635221852920361728468790093045737368635158555879261461432734728013048148162761585697358351847992329757224981688786339657060987808571506488158201603248253310512531062075958454504691676942819869691152060490515640727262118539302691790218104194590893894067495937882849340967432740449419714278503881557314009596137088286139502637640773283497672990034521990356056181286407968386795274659702861698223700383130170167252386210768452874642927702445264598642074736250689150815294056037332934017275340825982741370194770777485080287241660447930565534617787161563246908533404873957240156147466843341270348038736725755618094362318547101662538463417700460863725579552762925215045793896454256706808745009980354449891696281009406922747968788021062844489776409130476914880302726351209108756837140853414539101708144597824765625577045894220151353169604695779501956330660770919931343546366220470217791985448611394278219586397995976378794094085384963142587481158792334587386148030592761654322957791465375148801557562554085995906613175234906389246968538757042076018998817263206295619995958021175297872683467940149684602161972714901078974694164108367450660696146130679100894969763195393160042668012103681162147900648279091052194100073332282689155414405331349464616483176302124898334037499221726148814449283177253877725005459240154175328834984484989355483621577317421943198266233611526626726321920207252085797477658006529353668238131878548273285821882232691833445480767818307783720298792199119868827045483306635394161126261749344156128810187201865799688466635557097334546779571564214743483133720715900140928374534276828474906053079373981313628467459269084166017735188551580652115284921327670276707314937646005544761941593694455211097404568744314598574496423360210943639810243083661703740662717967770580651903106198809096230009798005783737528351438612786825913104874693942086371615595117321390257143877493449026492725900476600736543827255041754452484773693219663404497827245693014714357602318903860362320777606099037113196198724118756829997632795446887583044130646248485490788465253926186044308706365424741310826103988603747887150105620934180203882614000295861006728915282092015621197304607072485466222873256166838761159119056760180316973549711468550522851536450310589604767457327016990238646760310926896511587990723189056530949534439032461175085595360093941973294241170012903968089559678622321942288752351623092385758439284518299360799202201168981019126323032041216575525933046453753274124783550251899305938993226787687642823980146786945884483672347996476104808245837014767520236137038373223964696219539168027365272818817974331765468217770379988296880192944772579603940816368234464113652831101019704765801770324975391751984111212877706116228455392049871585505656460726515413181980269417420443021603423305873548935241853010684801781821272645841004834380105423775927079578040537821026419172804926265637397185592589199554119345195127788747498594056232956908934100589045227136249132914450401094672576358936658571281256505949579397180499846752750724350083418862293807957097345153216011269267670215802180321275297262597490549678095857311766689265133151391367795606305929488046670446613746321625710236300435307528996139242127994018957292518656238088303210107409784744093069317800202808140769079900084433266957287734891044932251741313471486571677722970306942699955024156803389624528204666619107831479073444242095231616586871191808451944872301016776857258694826273958786293652462483451810920695548978852768737040793354827865700924637650643377110334112661007935469232840160482221899913307721556915134492185836026054868153928552143454372855244169452066808497267426311927375907211767196688697896076664300128171373921775026262475111632766697514220838362580525063762313885447818095116651139207983574743248355090648482839854375696556030344568306809705263643537299390420433469102797064657193963389522552560542888940797897117173979143412305230011404964314759283543909084183159871265762424178576875751946405669820899972896377754258886401292571434480668405836251592429066366310733644374776861412208210304870889487634888220576397483649786962817441147939491197157170114808321794869656557694264671020203470538105317800933134254811779698797784179383377351732248029699099237616314004175214570142099807023304271955460992224636364933355334702610148961894775694692594529206948632805201158231133561007835525791788989837283483635993230040684863813162870136594691271053267256638031148957601381004494821018521685949316037497256549609389395775762893968472152807885375336922339010521081838696352011298064049479754202188483913475358271702966853114048435159844618208940427586310205420393285200973502513869626904365342358288085751441012655424058697291992619541986855752398758022799884967530790287186965282489614756236948869132160448603291643564561106154305197761637555969215531285737833624449138502978802518051861204017682807187723023450466297669333191333387660405388476667364951397639702075329416343387557878372931519640198288961288939801076982978666408348415853724739716399882437860606445794310500916664186405880341492247352908492413912367723950354485873485494909927824634909546716367834480587177394054009366787083727397697413016040036397549677157389528169601368602325011130837640062104165443271326531934256027180667748492331358195148725181588434461562782119329214941445274691337131608830615621307414463125243717959040727641502107305851278862872371742061164421735330205517524285777477548720331458904917100374861272628302386635618304841386045684669828566521101776341865584202564175824761592689020857182832303251287150266944192713761371779371875045398212794698420388102450599187230472160083892544666432584590176975528350039579057896169486955338423967415255551790155475542685114369112841587236661037182290360490141088181863877634231905576437608156619088162147949023261113723763153585069783319466509163200422833559863160675686882195199004173833758913950655923767902744787384592203205473576431230876484588387401681573146342111805673585295465918720695827068067313417034701859631585383106176084440043563008527106652787892416786403610001498520653740582415636449845332091822594985305942450725983431709825805187946327630219730904677790167412181711207672570464666521580192862259700709751609676829144785370014269150004107511357112729939294873351816664854394933812562890722285850094710653871679508812896824537668064461544954211645511514962946721868760530918189863867325770923960741189112042507350744699393339512914086649969067941018198801246900674310183787160905526424101386394062705335766963746636571244057283910932252531306210335479226604194550776259988314249964232598431000582655352436859948097421131980978087798424398505192033206040356297789422921111670126059167218441171077552862107140877556136375068053101765188671721778627204799126912900075549250129010977110521575954443364103707077222356872610342218369936918067409657246099762688834517785060247006801019582662571004232795501203628460366887999250555796927683453846829832523103525964182560416798470470655167819224680104447766510650815112375294650966440370035730229833870172776548583005843454796401756126503508643716068137362749916921513125477052496755452257840012104845359272766663179450092229269416469176224324262148913257586908953176443357273414818023031784400107982084016217506490504668965386227441221240915067372458362416801160485825200505506201671397155043954846826796587172893258540622090874612780859860282314581156049017789192145950647724653159519219775175013238187575943504082269171341452803327312997118105062054402282591497676482500841001409228887401664727569313473367024163587028227291993315712580011150936703068642589025383032755087721868818458221158003651728337404844542385677500004593293983570771112206642943438519767759170488676384932485769670639690888419867303178823739395346988427996083072165272304211200644278471077636805581322167644223915394664667744377721764966651273870994983043362421348186614713564682014291775021461534839978477361214297675708867273089578169444168863378404246966351960775603864077896004036145173842601406779040890474363385055732931316252051019962200045887054479499076712356095516232389840679473081494029846100882898158816657701562836438333031935170494319881676899152573950938431396095798174006613922137325785430611013529809173214782122133570475056188420931366176542767295291213791226363632376729342962669867614761169425997551608007912926095151155395234446492483824820876289467578004877188256136486170154231773557614239192669950612950932354449172326674183083772072440581999082531199619437734754991247971356572135581038724809601468825213501695484936515477500933332237472798117704108755285461402517845508996092574529452219372975744946236873701522335871771974352217668122722138336063628188091518893915737244966298238708122300435443131514985825544665624812741905035712344293792873313496127466173771515052867001149652763749084992172704230407198714974268442307951340890612198817077022969832424293879733701022317039467811216836000052665370437367187037059824957623218906006701154098518994916081704681470389331871318400408753811647967760796823780044231513658332460275033973565997276462380717280666203465537784346125067874114141251912736992644303584608984842510605298586121864568341735681249640674562085068839168453209827506766463855609220756491749710972359080687078198799706143078237408373399279081390336675901429512240615646847456302104793235461571884388781082252711064038828041174097117461905154986358123547240301579497864961110807434967726824119549436866265420338859531625971683487734939130181368944982194362333763904287763777670753829746080087636995046450926182057937753729950520979763033781067319363961045100248600076125278221799871838096278696115996757835921589599975163728979265441765791722772830225053549433282029732985112107077584467894708404368368166654542309097767101642405843117270146913971893243810836787614200393435601362781328653580554103612149274252111320565866345745705404690956402866513263606147628565226382777824349616681605455381519613390062462375496330340989972606298398699793067441502292307033334202608171134448971705377187911067518015656254194231545247621771415304369730090630312833592371609841922515684842061563975121640400887745110505457173319089288781914332652630324800515925640974600044837717380420803670137060388646284821067468515364630064688226619419356755575360530473795883992747777766088223550329956650756638606866535302972797945630669520630054815369905242909613641317418550387021167170285814561616139075299543821790283915710475536337785013519553494229063459651610589317862823417500989335043916048244907013895517291933824353656569389042050940584966844744964616381301452475071850432367135601347024098721838257153130847480176015857455602416132868035768626066228856240041128254681703575347101218779526491887199853441393923613815714645688266437576840742563123460416881717296846349933800477491633875094555801367067108018262136066929471849425725737020353967986746591619124139674549223583558387785801631978173979094112983470964014125511779120909213670293530623483823026593391448469975262775411424337978353491577986332147306935254504394520215063270857132410614973386383112045391729216942891348070654467962538540020795505868834662434633938273786541767306125912472972745976893649891336331783131176566814792200937744774302948047634086247452512489685033165708829241557600714887685587258828906012318345726722884699267442840747414200998343100865220841295427195137527861477491977336299232777093633852350322478984631901850805861441302369452547473619832230840598950219149062240618192268126035063312376096504715860301166868431033986209512257816934252577343671142280091663528340838820193621086412554583020365356664215271457652388808109387784199921667334560990847781117177240018887749281183485247696281421500743598664821818523361560100669984077363731812219902217551993252448470590430921800559365349529425883383169939361260241102454478106289945930066126746549535285365864561032996633449185366624978416129904754585556949741518673902671261952223130592136959695765976152902592393955205627701202441589150481891176867849711214024000059309820056705487421611070575038305736054920122902932216214985180363561912394845415642524774665044026624813883933691090651406088453480458127442309748989646761408505922160807186993071684066435601268606289754520207621970705939423884675705347195383000629608876767014737580308781318499695342848685425608140958002284813057397892894048103952571496522534276025596677518276662291843560421438130062751933942852194772025777945350048173111155514408530496202427271692472730788285525697201980192704669767886221460625416389271865284633572828896627058154335446820477102230936869314482659143074926629418426107750415075333653992588324661433059466648887599758599994837374344507874808073886856651098276701226697947266865329846955458510362842918441307963398934000938497044247542593903424373609475977701083509728032449096580173406918682636220145189337998922553737089087300469595832232483426777456809358583518463769577521005036132174219214823763071734475357600959812982386854859085144601019691567779756710967968926125394741949273153354437595556597138885263436023305354895284207428400990723663250797491316120419372449039917001785026987373494927818395392154241712783854977908828553473526579427863437863348082647251662550493633508285003924872301309163797760307667041722490377359709300811719421145098637998044831687660410403572274179351693715331908581810765494223690944992029307815446818523327531402929366081454626085130936971300013435182490740177758467683858105707583475935933676170897911956354641223664553180479624659140456982312691518329751654802737307756533022116724528509145541489515504810688585566160717681137690007945090323574573955553923538953262837494877526906551220181850820121901879568927216742040104760693457121122654027946389905908120279610183137713358773832691117027493570876587395325081036358047685290499795046157075312399687914922127634339495540606062795320374879039016811396669283994220148454396194492808042828404645153278677638494746125808694653147850268685118504996793675810394112357660149926858249645452330379066956261674740775082529154929571988677592171713119187981374103368591220168193122117440242729122896315776334784965583074299681454853872043777234775182501725115375368925216971364840819726168262649578523767703669014066700480177590946494838061416560422258434109158338187135748799659300950170508657485829138819411680721194805996566821857535455173024330531053617713822205608282079993722365390450491220303781215487082574872197968433864022628452876916843066522206066312989083748151366406812208403561195881146238990512673869068492456877819435785669825577308648136351674089478196343579232247236749172537457445671098002483420421200067003532644535464476470334953628058800541819634639238665342230447673844682966907445692407818808507569184200542669277403595907815766329013598140719116769803898939347974362425752593429540990672539502538739746174057001482968715120290554405073242391443972415918585864408298464150043069442682005862282389843976282992694304604152501147957255948061853483400848784843420231365051831837698347763797604677295244864915641371511064148329914936618705722109054371877448208468446775911089200178830603956239220242340395795415840022259361180613416000430994894145113066880713062579518868436176969290629868884656782321189525823266847295436101805245628026246199135529116593169144037038248462471393931024024740992397006082783865527996172396347552948298831177801052980632497989520182726555255790744022336859938055608765408958893697706070752653670239053717251703412391999314925498015477085497969663716520372833751673673161369277474532897909494093470731091200123027387562896081384905845573340749451086670316711639139905780316234755766151452776059540497833301595143521948315746240033281921217440395539238460096295950803999191674567288039663034938208326230362641843295585447626471612681598828118123922539810165060030107766240584475571378422713315606834429452878102766861408021735496943583337986333923655249151230040702980425806752615550742710243080931120690263617185400427443450949947423506199453517277859231032077316622075201869162729100133570408558499691288284273738562971462180302173544752938173269401213010151933272689150796453707085646834810051854849565804255938602594771399608307614565236004188980712492849699637927984961612947721618477708609341593821638973379966998603293092793790861337716622352568145591576918983439089528494224140437638184734200691571261627795890174265401145365366163716267527635011823383686394673463979329754360366222983182562602956503355781523220670036811314689170244073769955455805356056337578113199167662423631897473037612027019582181941958046038512685826776874632294507508160382309478702113620157736615432784589971374674539483066927076664997506893090699543349981175043509744436115340325816283001768770974689676445324679906941642684268644864189408304179066400887250273466523269265105202141247885961929999444564855045057614072241992203791073960137996448165096092863577373894523842542067855679267020197081782738412142474016307353726851003496474496525419877182361939152300725590146402241291445802589582508653216068549665355824626349447895194769513242835326793989602080730115163754332116801969476658420090241769153925277148268072901734560538729479307481233841277950331796784630799251137934417402209040229522831718998377184740153494334296291682891551245262845261863060975742585699998984443288012785011217355850799146374586663368752552489621945867484052923006642454306104387458718561856617791396614816455865131451575896041636107095722625587839484944272428899570358272893046929453543165124137726108304588154441546758389280481905362597333405744845250300817648551621658938721494451200768976944960123198218446650067200321995906069482802593253046857601586988032823284823902990057475519037184629050252988232781237570814478377504139330708667985233855751455710688571617685044082113656213722042705785522133806837741635395197827605100989946826078292542456043547874224721381387574052430718413238143742518359868618278186899830673094807233694988014277368724530307390985878988414199041443687572414817979663709748868144146382549128580751037182641506987826847106037206571635818101307652518387211664136787776834544013954757055256521546660369015911797397582428920226305002903845696289415776129684785911787891069170299168499052797357076809949674002793683741654148262146611818994775982311407634405206309977475804544369819279126949951932874119435217539968260324749713942239900577554029706290408829357318360604354698536003877131103351142621622864910791828550453898974724149782008476416314428743783652625462441143818215496811574054078939797079891353145627871198348791160846981207687673672729000422893400624870713145622211578326485700570000358644005589163807620046888935411565443926197818516335184939471864424818784468191593133467935602078961183808853399702570675540109304223692980461436899127785560292052300211457585448377406005963394987969524458949147775183608338022619784588686978008544016599973938330092491748308704659338130348535234545872956540580449696256740281090954894755057515263634033882176595152530990099957562012469412346334656808525046047198771026482762663202678276767317052417616573276496965060276981375940595108522984407752787128840422885630405002690407080026158192082294446283943414945322705362154223243440600282917264419015279975202724068831770828913348540585593796099623998641507220084137049991793642622264209103851109766464347642093171021728679058960221341284694858850273783737513150798138664354386360177864984111075588083691995070051816040471032354450500753563498608572399659220603232896581777305902202499411611444259112120335483439333962555395635666158917830741654012262111794233061387391509542122526848141110758801645367136979546241346273470513793558218892365475540481228288179480238289364158093444229559933312107301964531452653414373712616638714320291266079685439339020383170867749639709290278894820520636720245136009226918570536198871231685027574981517837927731874184696304922826136798499267409194661064946417986898441614070070634175248379818080599223571615642376963082101555237058284431178960789114973659637717663579066971743164496130609963059167991938917837298562014499126323400883768623407418755119277361498151992807369091122348401114960752418796178378555873647993623392082335846755108940004035154387281510713254933600006982494325619173225368431491908448327179066430316316096327351857684236634795429756768059598151774698425648766802350217375404392804979257690723251701551671652752110071577859545689306407622351124099438681178715742090356762091797950052312088169538846390155869459510689420872933358090485923346598862028074379316501197025080454225193302040737269427484192518123175886418475420532958485504200629055848846363964711408111209811615106209570058466548170519208074909509832257261530345486220527490404404769700190624590161168874810930899929475926322988953820237615226312961868804531219082491502368877308673532584658666455172167331091874922370293238558124299700958895767637547115929500895593239356631582111078206818169126756616960227634903825029569619386616067168989941093318197694541076350165868113855552658138619327296201805446717579683484424591383602364219083961478176864127080499920357453861396325004612033876238610773911165603659667051858866209712184922892447104262888043674393635836333091037275510694146477246807788552591894881686582708027484174000203714237894036438653736554928499608635650813379725566569488979488116357697965035065316007421410479488588228694612373783010541358876373964286782554825021574465874818051980404281736634826922488996903328314149988764175894676004157766406659594358820346437943824660521649003074745488407567803719970954718734924361786858187531533532249714531789032100075660140338070925908342334647740368483914660458770182815861651669936741808570988502273262965309874022657426906878489195335579717552440212184776377760795338085421801828319762826490905374980836932897923335461529438291775805501886285919367151076202659796415084043724443683941559928661095674489087100821932177511340103549029063032692198755641085869817785088170015023948432120970871970826595723915972917554453903451325943639447616351311901578747541599035238146075951028825205693151215905446575331800997204540059216392257281433815738872663242283418965173106435126247636029308980680446594714186093724443272320131058884497299927568401048794985412744918547756066466846723230236001609949519091322082909941796409370257517436035186156184786266190393743574258407569166916209026777827287653918887116048025243521661225496055102497973226265153176181262060155683916294952772596682588571243105432194781965081931530667581564240941427242332300092678716078957515490593879539799930032861778035227335468963750508556419527835980686630336955627613115202425476715629874004543616693102126023004483171521928022043477489921334609807886887551757519960770018343457421793250479023481625670670016766571061526980542357028173235498291353878175302319455016692742174708933501897270959852543932053759712239192744452761919586744643470657357450851398579120052656546154255569119330924159154892986420868802491776067559797109291413028591454665791050767424875290109934751998028856226130362757313362323860753001157986461300328103752570715634387954572698667467875587176990562371134085551735840031562634122437895263446098687530874600971865422370059630076005044626758059331723855804253372683345121979964605584479184953999905712828355701065807476037531473808417085961670075692293539021301311597372051952520542192951254734352163982542116065319186637041353650143201012232591893637161339542311272722511708145939592405748509508073585583940909216718281842069114006839977386805711835352148377080979827074317339072989512354340672186576178208571418165454474607360415143701695359190813086276551908341751811047872230855943721276516061724716664313394651836848037246832611899867218502635302459603628700900050175561579081010147214069473007035635699644910429705050818634504776416413465364755596141316161276530554651549174285390731559481926047783258777487653611656214476984796076967024974649238367650436057783750401543003124222245949575820105164479889574796889287587195164064351699938731825934454972607064817408298505961714254683653031873163354034807659207868582769147640169282271254894877135663400273713217215120399416374368824291397787780484584967838577417308041930746878271184268848491931817258153177859381432881184109638959969555750162560223618914363977553807173569219198070525685010025043462184317441270114586347435926533943119350951112835353336134321959497518779867312889388601041694156364787299472125891381427782123275866762611559268027558314749011479281466758681949850563673492761455198905397082906655658894708744606063173474779943219528474745838419960146847228232751956161504643668819472286693399589852011763176456431297080977467499724559470892641579005741305628984549237228593060898424755291224088915581767204347706071393506487638527823036867012147242127586072093450212848570927242915892336211283487718793297223869638804647280675330189422530065702595308450734244123933776715538342356046983622463191935801691170439016552298917894688799688310060278335165645298694939714661128509914603402409052028121915919595284744054081051741624924225643161103778050900812155685696777189100164155986338272449378576419432245462071398596305207056635308345063673482967822040201143459585717093292779831265717941940209016212678400861003880060832009902774997113422318299790844744818330226520129858266600230948871156262706427768024088285688185748921663901515796164926236867192782316293641816195093934299706143658479937396463493072046191286579757252822753339004990185914958067755590067031826749527954068363043497099855230012264905388232393643976921114776613914146394518720727602207419583055209165547439334100397359836099449395677777008257269512031623623507918352978656029186234446308880891850853984030144526645772837918092805473850163621095826366505523229641056820412836412985031294317643873401113960421312122580727627261938449353170134549271668921751095713895142672875678374363527446332621670365384143665326441394524340168749370722979795323797016275595585859178004835942938475567299246743228603620299408918916158878899832045687625658568145192478301665801390679967333929095330463493893073720778648068669346717986253415761153753088452576414767309774909313136080873202717223106734390527554666432706421943573225347748212243886302919416366291295311848239480972702708653155965331780357713763286586560998252679664113312180679282568302887345630524769031914886314885155559043165701298105157660764453903203571092521195490256500862113478226323096965555844387595923119932517495630591817088456512755965476826742028314262814763806640494326410330177952589263584168376871549802166155261049533326447394614961234408273893789580255409297132013187383077817201668030394948566087765030750272678703671829418604217322300694343364701958976288441419442746830473063880526373634552227346740810027527146177768050049263432547290004634113688627480775887301158978884461310622599850156540911593824629232968462350687017639598314244652573167951304289875539355281306099213988060569995071130798016579396669116480303162668964496617388455158590287379803531209413362490156101570567946601875774693083061576894338606264639201684020543048986996778009630983239247725085778643273657179583003469208335296141314052870630264250885714847552031773502980655753477726142262310433496167430067088295895073955569346309618094672976100780618973434878152876333200494918315948351038421752976009185263357877577224395302912534944139441685139516157639924583470751007689638541403115255615360309362006494213236217317262778231620010805436912722227215237474707572006494732539513085097990940327236341855783363342693766396713984094843678133500936212015876071605214247112080347718732448452947864458503247571830635733558005450422234106805465909834652197265011535488037099341359303704884841801414881962990670044028721286197097262616563844185510338648264749136693049687074954834224447200697546604028308546553158758143437229133154517610377833264803701170573778647386713170778748780176369563666092475050090159555702819373321977899536858514865392373829216447673222986717350890273499381105339521857095878384352614488626767920727555266490304143393790398778076733986077672714284742303309066355763290861364089653085855350065417616632842595568608361529732756289254296860216568725832589741364313516417802689670713016355009180702332003667790578112818117778766732440844104686521430312275046291273122126970784169936927641599485053477105466725712961378466029847654464696625854987764979092178130561436886736642129411838432759602557421861671910843884274115693239047752688438508720305326772087549131106226032514008209592876684212164347644721795890182466221115738700720792694211946399634544798028278031779773061888725353952775294747717750605053486546269206912351974230556194038105466397193223508410160555415227811115313683552918109298983316703505604003217940108870748875286171391541404349495315783238091853701913441409281252796834749880432033493067847294507796002482642948677226722715142226739183678905264149431585629168139386875265791988133905597695093478686299661721962128684777793959741809781743097156879896519831864703571378572812799936218181716258219452995400017761918959606380662446970016441147457429184417043849219308283876116328010533957499739970182513022876553014627747690139382655475771002956480334492585349178556749668240699686817178367443434658952306249491316622310633880240803388060764806619072787268681799842791840835285210856576027877873141856848325132066112759586923926302083719622377996429733388959157273099178876355103098040236945852487602556539781951670448745946277565232617242851787919311525885470733676230775293075267434386733416204158743645682651600019385834567749603634738197464124183538493111697255367870254382956489477300535398928855752340141833459465126101613527886085596327615219981244384382468144916945334333025923625139189484246866782893694354333795966737784860926838653002026692086158374758287879972910584996059158539411571545175240172855354648626645270109292409999731644285976569683471775615308519042399567381868194440311366467800229955120516518501034262317182842901370201576530701521156840738559733981214108087318940725806028701396742005563282216747517094454816538475969681543988185720287185582727227591256311258723323311322362767309922067688879191280209722278886649120470626652951837287293294416817677700049023404907493532658017942182831757352466553547720594679870092979608139319850487191130964350270412934882494937813849957553483510999276492204796383454315411223041627313117498357278461876412798126252116955445550528362394200748690855961204175494087218751592790375889487066161705271146350283458688155859965552416666724806607608864593343249262273538799305757645379462906989926774365748749862393689290598684315622503710346351299946950341436491603120418933205184002109775493373856062002270354511418970640160677878508842024694064402062275928800847140634017437551793173816345753735519524113267406938845821452076066286069381388951668209780787323179655946916495901187787993706580749429657895516838235610303562430638668831959480319804550297637800979563262600295443189561587812157038550167225048672735516287103341939909510183290013898175348592355900761397667197325692637235509832120936797079179634372142495772560552923358376836669058475555138753818590995924687159525778522778282878153530673247173284771956482083712565579829849236796240580630589335589985838285014834311852560668869263465940506549695134154439214367496733235078368176210897305524501885507738634414793515472971900576330965771074500147634667327740291272840771880594796872089340597309309631697678721391342138878406744408457271032905778674516465991826283295392171044360009348587611009871527455651187588318423865112891116409537495326513908714328222071361563236567100337313281772132023281523493135122256011057522383800008243129025609944998843737469027318833736947749816616385356006259405377926627266775317141819073734545637061766172544699079792652809321602416175667768688979390938669057778112892320773090660299861957887489822345983813621409961487002397084083953361632193682445495273976237543311882998323074850164438737754362426566166584415993130258342350461188540081348638524545292154657054140137526143564326831222119935749051013060525004245571390159054217498742888342017372952386319691109769301608960878642052100902434181775423886834981422782508338155324901496982162028240090656956674651069143892050839057999105925816324571263688563681682295621197794575109598568346326699583503914625863404749513403071132732818803367023544769398444328534851109796372318147345648581269122418260824634435623607257630301262998720025084890582559302741791463143407726541288423699804067709204541726624169048318170868514619329383582889438016554391230238772034741638924005306340717883466148770517711208940313552013050919956761176386952128521977866431849377825961824906496652518373030421360848703461300016979628202416791366222836459527914399922766441429548428784264241816914275044648710609969426230315141465981815903986287697482219508547421092096427262626202373380844990520725687984490834079247931167310994031059787706927428599818512385223300932708365968790427648112314386952791990028816451975302914766929308504321962751523370787194117992063242151240031447290014228061060133719630839350614166217362605062800002127003589481965029349599945705739460470858657403052070785368063679362758083442742716495638685674576406089847769815152514821526343833396150061795738107520049200226806819078149981783661002183971867214467488326127742310738113611765473771266521759369059788606524465225196226151999752339321815216034149962238733595295689139684630712871752531363502449770494739683334679500545613352208723653154268421954246605353044945008526841687457353061530963082398796188947650985677388292976345884520954931643702571162942484415977175653961047294697396130063208626530972747088935475653773569594758352540112207968075576155503706742547953926466998435466719318528529591263483369568841629290509812684638905893512957179590777502613970765319158934690615924228319372084206696270625888552221182451716072757249485403699983214424904932127945719294637083058152614178670328307691277434236741373276460471563503439756771882517614850881818082773555151170808651413606215150763045134001809200403951942834988710850420464961417063360277563106470149590441820736918943240379201601607046530014344847631717812784531914108715275133642181428727805130673832751419889102114615922297674262120593918123686157374380721919755634796548490359376420639344699690659681860618864109419390390531723524589735845816623044475519482311472470278017912754938885494928953258767063594164417982452283792414851031517379219213960340266910049720594085568476120610630180296979721884007671554667348247158835176274013317083470041775192495310152470540495486633239788794308193410041216269413369702341952122946461896518407232236786658417059976158946406195778847299540229349914071519110087700598571828856546062718400427167558781681334418631081200036373174344232855350371779831838984389358863938622461216804167927187836547218955942465907149387394760478945308755452299424035849743128781562154896252882636643368644354144561771152390387765376923052509435989001303469338451311413451543078845736867716657783918449063079669162412688209949061851325274056202649389497669442005560721160574774513762873643402885449167050618281825804622843846114035279558937325254475948758797916231821212545636307702115971365637709625737594083709929593854639987102388557371746806485611381121788971546721290926118142358176012890270714500731538920838009868591269080461322974209415778694033932577618033843346723211162278472605948849436245662465238047770638553795890379938490512014087345211181057247855369923837452507418595950065775375108176748098093805439438173865812646096182888458248370431047269147466202631418278322422561708814530091984618867430523018288199101851810930156169609709699876674766025944679719304708717030531363037385769466899406133197457204174915423695028879635889659395377897032709868243377375997489893691053769733991465079396100250768746800966446565106039435536389395111409957373337871264362797825769840419214453572260419459644549808991659175275050734168266816574917062532461448192947451557960178864519366273139115912200640934107391832566770954976309557100241931385798442108512874544980465632313828110657158608322752928535254533802800469883707271726122857885242545216832967550624943336714816358422452269283272029777656901381226666844656632375653108417746944405165195424089283329531704547764151552078624561946920277203725635855730620382582784746999721188658237406997316145177347761149399992273804692181871621533701747809658409028889275302810861410405637004343760661515226460385804068701530103916675345621299674739415619120423818834238129996680791114982275423903379498685314180732550212307863836171121877035651106208870105140029598765772477037056743416664699234719591484167388549904478982009693839695540563739269090571477998039472071975209103911854489220214430280393310236901877225603828663369506423522474356225588615690573136576312366071713586115295949110873529517480725959396670949079527974913439614040593199037638997830810560025961882364057871255952489543800161527010692152897007744941166599497582534322465104731883802945517742799730657345553127995744426452723531730151971118774849690684875591846409585321258786549819310608972113140079245143563423900276132143739465490015981164211763171086321378622650709547635182752034311890652932420700163255662677531709081079183189726069478901815379969141640886045535178951940296474035863708259876411749606600393405904251015272613641815609764090324118370463679364123433803901264616334055918454851086738925143426188625812192977899478732507989523449717084262250688021655738984749960797994378273911120453199959356307603801558885208898295620983542526441052194287250580920725713219952688916832684311267159531103105274489936461991745118955612918692625734602940236608974581948165464347041419187271545638120185627705821028554035242425868654157352204340939726755358864254487081968743252467157386981761199035349323786935904215152279033053235827957189251070668924745820123509019084944141580689251735523200432730214985618853163925271824443989734998871248231820193520481629649409236646565333197939431948658698860124818078083671427690695364523033819629427289272213764692132613897910194098577372139598469011531108231564720915258190565559332235439178271973028348351502945762897036624608966313911171738840126202790404805364393208513959801159254990398854627623689567308660400241534312379561965844754758609073275778111908585536444624718415439635319444511745655795193554178348278063647732892105355759208481886639505487324822302912898833140183975451813759332018693780014169580662837532784826355200520638151319205909176610862375317449773764993823028989306253292592838362264555813115241656021479474516358542757462391532818192970643583007582452495472259833214701847500256940979909843522872719682031293135820531012146754664204640009438071956524104168069849607111229565236666204607268883758769878557478581333742469848204699207156655885685334520603715052125023100952368577402304244550867959518289555669880742786752988898048560219450158410059638614368958868102492430913159457186121568058907518803405546152691415837302996079108276655001642005944564037216715485910726384529837370832862706959568708841509140013611031910930932587690331152252189638206536103824578385590190506891467877483651306001204512245358198256190538649609403065263533987097375354414164599394044671970471325583491422212454836886560426942654666683551696010598884084975090074129165317312775505827677741229551575622296866837089504799352935458157668878930006100502320137286113557584131201520409785558449272739436415258526984938142360664982761782089932357096417189393367973011128419863174908233789448517908382350580620143524176943856258033339332788730878906136921362190548181235070243151868970611645500275000366463693978963770665808209037920227176264188898735855755178501553653446259081955243696624749392975653391879694994211544881326407603434055818683956202305527698215863053234177611413542944705938504714837109129652814730823465567449812802700446991401343335212145670055436516638157467007632081976041265997264277371900365292005583698329066009511697369309058142973163796249670407927693213556449396157873873429048384355641171823022234484646084404849361936657987258634253631816998103644440876510711933294373042093835286074509083667662974020762407482090583546903605532174508779802971973549217150561660169342270396694433021811257646768131534265358406721360764559506461181560327749445985429055289981651969243616182292006485627245748899349041811602741645230904796881908447199065571319251973055701610953415706621237349389896981171061742115313637212959116620377871423219056404978239014097845075790558811438817211998314703084243581174156417098771724307687329390483278899296124736918400791163866094042838714835301073972905783062389672449340767868756034063893897265838793572957300741115599534739804419993206223181355766886900854677841640909068869001173684044435334930760615778512610375275675856992526983831346119668807398401831997438577461530033573443888766547932198959213354179791656023968107543019347461672325262720861634160623267546031142692401650959550812298055527032508101737644923940081205357758556274667501747237253949374413580249062495957644985335268657589784203777458525270977757947905399932714317302278342228603281228938016924718709673543599867473150926028169489862498953178026690733868827429856346035440478916974987424797641737039785293129454688359509728937033658603672693165015184183781842911958825850260302704559797061919947538214821153568978838572507055631733591244103212771771745562674451300313156750885538759639372345027388619133689863472108367789634302899396695232479753850521163835600287218510573914750438798579422013737335923707757821411226138619628720097186057541841270863056682326862573426797502182869991345240477576935565440639731935402317548090231943884654137342941383568361622056550568321774090542968026501958979724839699067304480372730945427934025396107307084991177069208004291425354769527647304007271853662657759551259062482034320632186675516435183194276393879379169958721984120552112428770288055651259336036549534995880817514633728476419593662871947654286538578047504976672678430244655637711973185867943907266291309467920814416759700247948130190544639566629935445798970469604598663175943415638854511384095900027169899893450161347159953446206365678524359868544708597785176932967829174869271709841528328815891679925242606254634241394248712797360850587169960211852210086952942868297104275796255947726671534159837869571917342549450615324653734225956797906949050269575613800094531734538748236654947921170996732091760488361558123829330708407325924667529803513622953933373400780898578468684700730941228004876715227764916418912748102786064458504276199529619224668191417547783305708524509740654767825267135176205439681220860627124201794105775854792751233404567470629900903429659524782417329183821818487224533025924376300647329663291505112488278193223904201755089928675401888470372597154050138658919437817605703016636572608802327920063956812559345687483430559667830331684988551075171590871295467017433829080646845362383778411734776371351346348768020296757273761529309460251425446141535385851478472028805352355455423877072468541687075794142484054545997624726641535367809708536492358201132168004523002894715802203832733352221132967951376551508969859431634218175240885059403655865240322860142402538786438683737360441982889433238265738363297470691758974907746698740101453969067896698467938955150792632188321216901613569653320446194164089734938732507056168576844426182865947601676289932502142197711242147801316645538979453628389239983594995379601825452586559879484313504429822897889316964755228026839654514176759078348286079522661358230441645824420292528716414240098962778491521052192943537884513486526562956601149548116248724103481949446983523201491647770469348069530032761910926836590244164654958793360849838356620555875327640151342590551596775716626511487405747793543327405919474942720116051460957911459940446159888388539099145260889220654517321127675998763803613817892677258082263010383153881701515483307378995467572203922999165606176798215736007304750394544327090832983036473818940564135062645249590531239371561839753728378482602731935776415284770575458744052804028963710990339170324958064260962024731712128633259261290581978029300341827995557978270845463193206992972195934894402854891064978614943272532435606299692330556610379835889439491093164610025468442437834400520104951089727115622518869054092045092763790994822605306348622021159538412009678737472156392840065438355897790903902052552945349428342565513680030516110531919041181856967789811282990177713361115256108737680626900452650199796962599599853938715750630248689136124920359900044368447813317258209699389092043687906849403943128068690556449612714693258604727841991739328672899741090832379358710816783463645806080319221226172626450037352737171300590010446186552159661161426735818740849886164430263331682950496969167518803385125334624416253700691074527902123976896449291467155840325740630118312273936768432015538235917510977974274104447154782297139248489191846662528744857978933303100122157963815907543852674765649918283704463604889773583654505352125794663840128833951519731472994875716841285123906676533209752488381687424558951841979913903045963911518939414655944298281653837755228324342288581462846220865416813849263180860814554866196310644937501414090101478558454383874541533850999125751753270908832304163999627184903285716707053618196866825867878026491958053980810606079846719588643640750566256716741066920809908556437087837346648246069409114142007031404696936273166779819330360932234051043389550880998296197756787733480325795769635171179248807747800714885524763576024334937067037046198127400974726406757595580539829091055989708573591762954839418364920662397393673025425205253909528338298956313543350460797277044092286616911430767959285277588054463041003394901084353944343319092730423998092970635628574852511099940182330960553411359348110551115735610294457107123806600284792772170268975962344868242778080560310726390685886813089213131540616311137170901943086016282605076456271319717387075805345264481634738040971983968805589654728388877983757402860335575215327141046691614874481555504732926201772782320684798726130601319679544577531943917845548625370860187038682573808456262533152583275542679034875401064492048541390364159561719774673537196821284640963906788587685850603139423242839597768929083833299502200701456387508303081164391485734463904149559313134186499188825385072820169693578611161898211941030619416988236484251394399039137381087733090962586332297504894317030861254996122072138327549662026574312978149622231126659043316140793961632042178549240034651534557100800151560207131754518210004345521327354910734985950527849812818583588064645407118063447377025961092154788790675810716085491352982408610198142973086464477913691816177707259614167977967045663227363657030565464509976411516796237840839444228607556662107423830767250945357021612942477312949094731781705054177267158986667457177468983534637114430538204359561779350588672762641115437450208983236882952868445896709024941069442097057441539101971608661280208173209635596016875789840468406502218116174847476867847886929330296259307874161983232443505565154525237546350009341078378693273450823925677282676748578643406997348802483352348889736715825538060094940141515046309664912045197724252164864599031109575205581458247394708054455238593819295605984356192480354751622226650824358539912214201761258657243595563898776485920993004050988333363542741606105072531053079329284740576548747153144302407789315829238943506782461291543987904180759890182928227756909835165641991832278762202767502914140274734588405995791115305555005797650790142949234501628125319131186540992744764002927250175735862780953657329385917954037362287233909354687796483686527666301280697630090990758105962935558295553859438575098311300764928062973276840983167735033163649179416689576705394860615133390873954270196955287381715567326738164446933650106675680189721696046517565771299428981318374840105126483925685011382119941136625888411578660605201996599785462676077719241851046356043394817554796366326027651727297627485542404670902316591963724726708910428519085459803802035834057218683979239756073217682620981221338305221101396662561920887429827967875070899144828111927522382413511996181124120315693257527848514882108314361579576652312714761323040691389095932226206058784025012254140724861905685046967692600006728623139842643990327423955722490939685729559252062763215865882737741757804788205077787676749957779240112279705134248210423987180165467781498429541118871264278453056928749595235001340418543332676573009940247196989361127990897956380561380076585055609482139454882274833383962983425652530355764574401578903465713564569835701354483596268607363473013548526460800195781659635628007946060302158329673188899609399631043844269252327465925388096565299858410449063368956438604123910760539817421790271839106354699752138527649531698974718265992944542391672951729300947066458177364789265652948644982638541936872097199092919160982305020294526165467211679386786980826782166261759902847634832181271314088060175631828852976602666257130106335916534618521219316774790494572774326226563999488310325096617535955447309514515342982574947092287463372046535728089046147433031158014148619766524408446443702489431429855794056911099373705737044304158329313488694321753660601504371098226734789469751387251720778285651454721182441099848755444600553356954949220948449783985901899402060543831491108611646926227799288444450756969694380830176917653712970216007387527257019211497488450712417568239274350069050800619592562043943116683522457537156547357807941890536008060868439776221047509991354939560410929139417109673662323463533287592484053618350920631867320257736758777727480202709741841453004548992402848720454677978193333399577094495622390210996421367752336120218738980812453502384624185125559638074929231190456198982447118364936366687312431054592542268624732231108859729251301965594942224837437013314044572496861842373434721519971783378745444656014666775767427095316912851903300247821327299362730678507770846656021448884668164247113056893837105137837054558320342284522709491810947281202538150761898227637830906091223425728526450810989256222237145758830731878255628059044875527934340147776273256421540576368667746881206257968424583475884146552619123745390698494667490734128906056740310233286289583721254768934406147029937811536420784318094727990509717874796665821762820048769300708860001810512402746981508494718295474602291085649873574985763001501386083308519796594024122688084976015858158761185514200284837440145701058598059227424759641326902239030873878811963339888276394174434044419687739265517854594166377793264859831784897929669599945757127919764297617848774185742150489209655002279782328108086957267973990856850565298455484636261389329414815021004817107995148072929001633395148871789696473015464085120067058532592411019342780792359481821234861252221626314587794412112604372764430006024733091375500735454939798798701314325859421449099181702897743490515656750030986330103584662755800149465362684649063204413119011285519952172249067279866861659243593389501773353931876728455001182036562170226220104837167988487308363152962675669682810570129347036917591194602758761010789004308484524414885229827178881347352955504253239187637369708541039093990082760683797782333319325088921884627665766782282708677370482266401451642475191486434113696646372180731877776171910535361009440531394227412623334105999826621715196167875314585069961884460333476319898390975368261512082033930073145983327048002927781334418788606894924598626009415274766959961299716804723175837998169092963100075035446840708035022830565593989777773841779124646628274530353882411746035486640573675087298947428182608760502852495269548823357709409081903366486878756942689639844406316496268874302483352666414535255930137749658453544873685744837395532467030175901634663254316611817251740083529063230162659387087858124747308526994750004077565769560343979597935382949504296267040095531151445496535701252632551362780049807514826035175221927428988773955208589712333581889421289040773401576540894922693690123583323536444830667251601741608396526207869376054186430207745303243895363784043860479306340576747565506164397636262636284392857978627649845800604551238063685841977325130992441808172908170643080533840545685209594428035491501552778060125482760812568305002064106519918244787775859208083969821198642261817539169036379354637893010425608670583260294136851334955396846484624080785968698121889406753897863228333758412572214889916878196585232889983119644941261018492810851780047507522088041439709677868499977898103110309859275990588716914340455735578359088557339423558800245989711637206267462500743875576246905094963179680653445601202821034122108880798047556448188141382234158672591657893923439650615154802118598944830930400601956771293918578603703273999478605839874361067856934012989022329996988544658155211901101846229558663993593616860931813027986085818937632493593643624978118673443795969666616624679606175549091214244073046374467420081170755495894501979335412581237190873507499854765023383721234216170539894555030653614277577274251850242941707021996928232911569659568980092142690769690187659412466602810025020225836444177023704870728529737725233544474192345925347473115802633302686244962004996362841097122539565827356152795174992032452961973065737972194920353849075062877675665655470548123210608569872577125629504734409134215890527338915916448121529532213718652527199326391337931293785359954749916156112187332638510273575210035476136715745013612144886234212008769638337778206667373767418277174357784880881450679915650494230233396150245328458962626249700773782046017405212065105191243273241606127655666012590527890925670589307809676474093197233429464620797156677583078800017168636642368436836118893390390223523254042521889956136760112043306827969112703679197670396864622577193790210563831608511127763851062945751165602276351476971218925840523716038466922544787729954446809096802707581093112227809087968944022099404650382124996926542868877611405852684233860638865249280154415757081782733613382314805825876091228479889984578653300919331471507846091945577920248833827155460939774705991321017972790564689464513553912392486362549722525105928278500415924014695311450907046352716180963422541101776858865089776375661713615964657350779936016622843773718995451215524814568246368568245555048603296066682491949250198468851912134701900097844732668544892356796673086089669609108155361496718222338636533034223687740603804377277985582191732479754041193972274914351168296391601400783539199372781418321142612791751987048678722870808831008813141425853139632478189745787817175117822556858659334011186973458159509270833091468139648695466398688004603433979757937385589407425659088046974540823096392615355958435622211981327339875553838932176685182378608513231628279978847096895261704196483199691504152869772276930446489878809625986636873750868122012154167827585671235329185413892253910720158772266585036746070919519776019107218533410522954991833041204579327189932139603824467529408606796836437442341124939266806245604621518819762466018367831057073600077248299040637301004449382049852028625548757097556093570949006445880633218105277274530378224483419672255808641729063417129741948807328025670432990738710178186234694898750690812607781099451645071272085004045378630770375242800680931008656509960882579606768340594626567152559255602680968346659431564822593052043822361553034611843114011206504033258252340219809018299663874598307914898883146807805351355419660689057507110561445438571603407037592333593874412127121647857156874783708634560549470573881898236507308920777220472517400625399407813247237909067768799740393921341221238432927298913118977590917435056793725449642666078586204079293970033206810043993781801788501083500330877225909946260567113981097938413578249580440317867544696500283880976826692620966377169703954012622887334278947336648934389383738406588941095922711258638230313826305941757443499852792981072928187485724420773472402255189826731561367203885532983183624658999407811223490075942181704271840950746664826928194963355762153932793916828928539330591403981753568394943649515064745645897051588021221135713231871322225863180234952659020926100754140277792740305356219698100350565338496810586166600776686354638609649944996783090709161024169666049553259428230015000665755152181950579985294278677983613514239975388999976279625750067982540110211778793985916946889371440311741828794179602951347048340893185973243118009039806545242216376317745079931997836933106186047622217175224202065580466677928653148872056392503174302441336866864752313126910783653069970982658813274774292132339433064643874070565713704955148280775313147382124878488315979247077480949892807392380883355272656686274780983744600226936837861092322102847434601226041415682922740945850635524218666106972488277500515878020450308755583864835789660746572806597735822161623484677536484257302097099907885244368664000709566971162376386785029167725374619118483262774999227855234831459043819585180737793426211599098896302278953187692228038382192059517023325880661234193145983026704069797224466272350810855147103449155142329283225863524380726821134275883154337704535330309879222381731057994593638914773055705886343656701239028891587969137609580093595731882889771505365585511386977687268492479094400324584896332135396612784807990201937132971203566535278876779477974758002372961546706282202836632788942714438358214286665368217832774695029238384089035128758531719596645330158027988648349961251554265947313883858307280052869454203264577397466035115753772637039732396768031640783998336686702991763782908952421351725783150277065023339084343836267499662045610132439859574031077615784616122432997696713257082655438627015042245449650538556625347029146945596225487039275606963408324497133289142207456439754160233142625562613412417657906928788562708829397271745253470709737105421490789859500155529506996854987520343109495152011302383901839140622430853462018936384046751389812503324646762051727390404065849719997933582673619537617062482998384719247208352374568683429916292107087616229415197772056972024804637582772063939654244092626973029821205746839168056419324070172961246746616515748843136346491406165102605437900573914400986430271837724590441644177410994758096077718160991642266788096511026308546286575041412479359890324622534892163569606683631733175467434445972557497292574650435127468083806775455888558556932125947642270614160867604014213210230042012083524089346562238169703178837667699774402763105853353414388480930591611492818714734420078623370111982043064999947859513615166858381824915476918432339452203747328558735017635627061030830995084961693744093322561552850521186866198319091143633407498029652071056869538305608735986558670012466565812911100057681881964560526702504896559844153395537276829305721160368504122407648155712077003188035239950282586769979166660802201147260777276586712127168240620424543302762013242312766737005413825527855993105368678353274234903428528889633875099804274490930178141220481070636585744401636951070608205588517218183396764221045309089226922734375352062771942769773104613365056110808410908914235274285012778350401685628482577041566820286202711691597950126221618319141675101946686757144133605291721013673432796748071235196364207779474019543169942150426120813995417749371891916926565707839741770685025641459742872670087916427530413232484394448635793591078585007744263626936343890781704485379826596641184730499879244031030786501740300972727906741297001474034669114603953274086979079402714268743669950439987745447014508188882854893468455338114393255542012199242659479356591812050620675902696825448379091203780489236513711351032338092934148762741492090733722735322890021623177580102223729179457777351218976374928896779355899523786271628861205332511533687692958090021796788307362690871174237238009885855625880044341603087279971459420418889023103993488515178638162099001891605288772236766368028591302563648119693537120354567909677168168794963663422790830212281166781238828192003364041640313117940069944357155092723306869171442824671676655455078309257609409466838026735608479849401330591500041100896106796777744718418415848397111564414765176124672267409357045282796913926395278447359913275332353624786209036045819842381476904171496305639011254335698511415687272773150055334521023011615245027540993338150780272063915214252442961483103730229731197398753694936279750871206295022885942684625700558098376475688634585036361430624070860926069479557120181304649754911404218715931761070250757208452335644712610296135064739994214362240068445425501303956968919858155211358735341058070759663863099102450195762200722578629230673261133280506145899647610248723378691909601467902432076617849686532030206201305056901500114023962527002298967455801151532530871073736438737690213337834040122050454667529724782456704318412449053506822074098677601349199606192071902521920328796033789077395723573571948717997309399927040204411212272487045550114854006928479960843007574186519117398353379186969375329350453671518887723232732213772111830270277229441431027710614191004199403803222372182939555159777284193974212488587361026840710823760310662740086414491072189321350920107100883198374222077697625944145518442012987708964822474727749435780562341743684249094357887485840971120793619143525773219072161726529684711988099323700859936724272358203148457759652279684092605016176403932402125409035015118172695653893429202663945688814012486483906910443674221796693837492432747877718745375269686612886410761452424060161199525224593565092640003637457809596867601275305628875673147570288184533260060944324959975641384453323779798879257827430886052676392190932526191654636226152144244089819770440355693119342685050498473147744005097190866204458299908597020778413335003215162884636840635421321549243507012254741077906856503858182070951906591230529795041182598263176422670163445162988678790795014476966678971321489481239271079884134594827662886325300467307450344495938340664503036506163720616021345540630319063558184811521357961374184746473692263081124305138842410645407102886228012191032500945669191040062038912964210717775580204002391505554686947403962795789817267079385143733095603183819843612320935636013966048310017867641597843085095487463668304236528386931223785263018522199578242439091327994911340669426374694771595874521732151145292108465148167660430540340907283822967484241089606609320652875425898977206653856548681769112020945313895629273293729380688351418189617153538245897124976436926455079291050706420935049726377260742209354052666260554177355029392960684975876795241533891239963287328412190425834199748679986213281673182810433789517142026176006762837027584257006042861142383319784322472979734969457903633774383078037065993465279843482325204963738127481361379528141847555721552146282939254309163458790471669075511735158219313801378422710366421148726083320102439519839472997476067433954580889247968146679080278643898891558876857402418421337064859309390384838590649698284262863240278155279571278581663153375084576208346149848518039683447282024143897109060467081426299985557622444723618733654184873648475957410265848694671565813915401264224410746648921518220008441706552581205864046542492168208562159261706768124845477644186203391802062655563080539916421501313982040397989219301039484168975707718969013932490649604382056563923166539979920433464603017121439706341959111855766691475144757132930002150968210326529224844360217716335609107231599617752930928276741361524329639732577983602235950959767547742573482150512438883095063172898231951331988766605114075430895443962829549739009080306124176769908295615023881982655538041863628079914334318193804446990888250475000542865023214699975678702466834391569284810315621106915497046390794397346582135305115249592548975774051732810571862165169128848203600932951427510030218638720564990660930935112047646789445976762151304688767651015337973657005202542925736279981263326635486944470733714778238015611076085991846676333676931284714902874226401206344528743679423731337872239042488166526182793865781071584755713696685185623656270702664461510763471253195692799010284457905030775094542501288456868588606625103272650049180427502876142305141234680964077737541427530271238131795458102437175965495334028231746721235451154000724803275189562505686297384070025088045020258581940104100175032791191170037457995922140946910304172280669353363183626024374283582359375366226257658842364946673385662374714703453252636684750577891689269799701024609208463508142402343889199129556193790323797213714264894056014686423368531800308790623785737114275794447612618304389865576872012664325258401641336782865522008479596470529846616537715331517579329726387414634205597106606532399966714915835259304051343148963464886994118433894790809381298944941139869980030474564805884598221612210833952924986190105189427062570087919090960636169028080256815460695731241368094737296011083729839228948601589400719425899549288188176222215440621224729907839785204548047579754857836465222569256507904129683045580091728753130933153434294471001144309341302788611218310155608040698598521018973191967546837876765556312477442076776590632104011316224647353890755195383984454742845502099469971806803781295944251772785260688089314911193422086348896798375106002128786943543847937251860084268040041100242275781013112451570095916235700518641650755187393022263291238234356283562521071282352902238230425565508676832914117727671944043593299322858208593596107526801966367993658423945071089202304891183945643436054323439706936411711359622387990957051751065866172338935703451389258007396360025893462450211015525128829952103239011632274946020533519976374668701393244537512265393296073023408498903457627451788436347599096774897963741545155697832994151590703475022493461009630524304816134667222163171948177671543353373434560849725332196244312583908318383235800865463713227302592192882036507971243191526506669711598078221660369941950604676988256912244582965774467444994603691920815421941583955048032304976449501523421727241555682374647060890454332268858626094950211888445567883620529536372681336027309184133508052356429639816179619552107860367657143655936971845204506871852194841045802343996211575127722197447423547837479245596804138747419024695038815877291877260308347151323492766144934267455184557603099633929094172547039590523597984791995384645579330496540556100189163327239878090672498987776544281625332171850503657734500177144257633667165552778535330033085796116682186701666739685893089812544983237565410021836501420828034112972503934575327522353123958310662352116036571394554141571890508970821090516587973919237430972551718701783591250711809546999795138434374314016814947350090704126601774449942933539764337557038766010078699203407247530358051622004132811684206257676285082954427031504980072194417436143070065960795943315264389709225649731211520203161104173452638082362378317751722128591374110822223205592558086934117465635543148456642167266710946217645626730004999580678295015175998016467378244304475295462585748305043502675401606990879078170711056878624334400999336561156667441014806394285350151423787889687665120941708754365090379423454636242187280376708601069195127698670676651395399130341876756127306898665623842963165732962221688468969458455005633221513918726246461023892783604120210980034287970254786843297176508926393354583128158649585956952061540815127364910004333772798807711723892020572294854067110158244661400897320855590563889148760757244753756665085173133397793947284110952677582059789886022869921737032852616951388135856788419378215472809533906268904570673982717530470017855733561619888271507698939306344599764589715743929929656481185076290651822505074322345682704774682776760599587521785655669692995922257112976744848027708388940418706174452172414195041907058028659746755827430433395795850821625348545879253820829413738945205522127889685393150399875652619301560509760567124339102809078553311242642215785102148247482864535714022857754122483371910495100042325356926229470146614966186369138174967179131902782328867638402822343383469125337680195511444577895219070835451417241480100760941962270399353070646909510224570896499731460087345231033130599121517514283407208404451322124496638432044937818960104428019058933189463659271052232394235709148112804016442652595898729883904419152752502304277632675321758831488132510951505792766983970999183439213289132600595413404768327226929682557062531717620823063861454698559504603285023067467174732045242733901482384073953908592485484728137916885452154924026945408009251039004901837976428369842212936460941486513615602365916554465538616911170266722704518991636520923110176080184798138551857960110742942319456454057545288153537623019022785223015706818589503797183148080416084699385554970692409723210118189781562794194826488764324057557823806292447754389004192167706707147275516071949425427620943800378400356043400328048057612746907164794006727894430938977151562676582735399551695186157979309144884225346211326438267206734523339228608798150956356795550309393341203732091674102936458964583483151872183989578487878999857030366761430994868491829105304521955963969106915821702549098879056083811014825036660773672594218184457822993715699805504111842266770429830277593078927551655626240112127063560505032336621361604219777459260110796527672985002796579025888045252397843899252285267228348061180083490596798442020262519391103126006754275554567660164578400311550453137263217560252211681592207953222332389668159981194197418739667971271728248469806093762160769491069135414741701449477603063121378328583093932522104127035068299663408416589280534190417348951045826461851533050326998155311352961020142292412118356974355522987028937175466093322518610530082044777508122104898534487426351039278000810838325763025350158850557017273478542412850090916101675437568978175524441943250049257529917411333908820447118629885212978575426270342745394721072353700009007301765356683099332212767330563851496130495474303311567014653141273144077242837008601706724493526073862493538630238031704068824388081432389636984060822234573015958617696332135007388215374511975910864438546901981907227594677317984253307725362398917187550113752748261796199061243029425643384844707244928284860158707577974636724326182839160560297103134042573333829831651129281274953975921541520306119352060228748179240820743200180316860802946012720568012041218612588547533560346580054536614034136633341523664657888114816923536592978892637037803528804563687899724176891104626670847779395139477801516423775540198160951314191855760007117653265531167981802358971188904313557444496029173066676359042524351976056557270849877576258916926999316919712712337684449389862919513259460962832788922685861180756960672058129803700682043264466321258934075062803575492406113330651405291628199657840104980330694858761575563942863358968455230801405004154495950996413602861276468718265781379618579418829351058648226118443276236674297967081283568902154374359623903282464210317672802181760949898944557523470403194519538918448028356337425430702238234693946722408487535953353810692600692009308840738772475155643510536084114444662177556517109805442174464928672772921939924662549822971151055472124765103525985862333881079547932803928475499995931476864575198352722864333064120589050067403979123100423352083986050437129971422115609884961020505363008540342817455856272060443083828858062070093771261361811866970980704906234600075717270426871086676206932440998142936060595099685673649331943755573987729597483787375834910272495119587995141558342421097786832139687709957058920370955507254605105834210754631549676300194200512152456973670784962605948850825943280540761328530150687315568953486600355628916317101408967059900589944442234773054716382196382606786752891709461243656561291087807459959750664419270406873294556695294944233078659348005768930699532512285086919498585768227866848419388834730343686880388555494407299438250716455326973814170639791910591235035807060844842231229949571338094677123661524846594839137709498432003156575438925518020512582384701505990985208150916346038883772657273567216612281137797966859356945467206518972447614235054989345644759163244558386958812471604368811471670254133979520253940956745438186102958080289377685101730318454154038495975589361593556166272149535936493460380430292031038234623079883262016917233995025369175427347302703266462906934847727717661527218508983561059449653321393347763849697311508054722808516198184816275860422953780806011170884833450473281858513272834500175423878278980314033607246357736838837424335947524110302808657524141615981562811434438113625528318677691497463594459161408644875254616602535833650715127980575948261193788976674381670505541548229530065597698733421075203668709970909781154106266647310752031984968641685481472639671754728849750588448909445809367348449088126387839702614325221210062989720943610408722509083655978973265548911127357603464005662852803087166200414856112338874979567014105193899150384627989731837580623962963547645102359757056804358821914250695375304210236433262292368670438866641952532533666028870941394547089643350802011290773474390348155980075571929939796038384302859648489599562430640305152051124121286803109835149987057771062872258567379396196807598938894805086038153363013495928942777739091846471257783551823876482622876685606671491919216859734078372310067787947718692523199635072511676207363805832371032742494304778198020026717144931265618340316494874232430191372822240176885123202806352028988771760592787231077266828451224731731345864460224186557377095090127050353492673488950037147359276789961297151978497786620795541975776287980909120254160573851631877701427349178776464481858265069428454066480774892749766650138710417336036235594763732239893490977634046200254781063361328635665242682288870993628722306114549236784317917851099757763707367791639383509239492096001742285154195965149523931478760294820337258155455384479443470634124583392011541910730736654657884145894106781423454087009113586278259366172854823994044312946123448605286570616300453321388255473296170234458081327312139927182761406970125903018734119857259203640879861184556633276514894250187964843754537568877769034936987528712505291529987470257372703903765021173740216840911002260920154919574603733583175473811219327271491460763575665044079791089734742393111484773539024441124042026211525322691199940557325304836543955718527196449818064155636128945775209451053062875173550216345528323371454024187834947743903787519161694281087296935378454742066488763023095766071873563354552843413035871049230166704607719984803742963277243472237940150963028249020302670654660437046287396945413902380188951447265985845912550843984359970475476533344417304842497569149528290057545262568062239173523005603836970738087640829605548498246945023479611132286302910923584479028344015049731286481713086672462830172813668452063291035881285407732286348740932964380423930767545742543007795599848779333179868371576591808792245459344910445503027932569550274091877282056084845199842084261823365467338074096425473177971346674624579788456004892872794615927123593348673614815889249898100346407800561441583804590030605311335750770947604639008252786456414428752452656815145576250234434058482500306340532284094424189411786481001832477247978517349312170017494744552791070920071846990069180742450105310931718059438093296481259558622592308434162706452968496145130096990945517512412374235144319891346634031736514339688151029275606576963170448017530177083628219468919602063096334206110643489328741788720105716819483333037243142038153022366802875993003835493713018848823163598908795311521286335345440028500639518792693826771801218776519300071579143663929900582408958547387353587595258912125960754813010125996853851535646950381991528807499498932372993801825694279010977569306907091285783055880205396348337140559936233843183400184314441126890563703915331238984257932125802049303090034926661669099031034770912236867421371584268346294155222097702840400390157519208794422887578635526952322060056336198836420136404326480208528959239356694790021237719808027218543128468325080226373028213284855261291246830297425973651607704217721173251442689889915248245326575608653139367900747926228933814280438394808957728629228490543104957015859149063905491269583364129544548748329183144931521098523339407673324673166831699133736207460418302755292314574684515319283299588830198351048320435819985240017432853606696783144432042033282537369201461127181101118181513561127747705564742608606513666364795705769172599308084090857685314487994591232063829651150028730942766532520259685888286448021447989442558913365041802748897606520545130998726295960985796384976487838460915365909909041519475382736352322275198933286391817299294927010294479377347845523778587748589302595536067049028234106919880859100623353052634589964773813988452159736033854623340662844500627324109554876929403269303235131734793348726843887098654816463224647802993963096944368885197998528472407094714911177114084914962551845449510383302757804645191448087645559657224172545135089176063735383602183536495756084641276405875381316034042917856433792412338708820753683726147760693112650241881528863686135377869691512426018973868026833653414086244398392924841857593152193720753488276680356851373266927196989091502781454612583275879252937358222626972713555870348360945831960137174543487721611621159915591581355181682856079930726261930173228843799106897175984931269407325106473145471098329841002719969208226068632971206507088454887367018518377386315575801076858717216449464546974325229656407733778791690864017723035488529933107653113311790101746319306676189499731634497635637399196638114757815482688863078331238202267564482013558390681815966184627308389005125552172663620249224229076613779687653537249930808588006744899562505812586868869638870438444695931976916589319365252378554707149966995718744472855212342100220502981489495059486573736511933086162116374812917945713721282765961702502191646938641507501016671261366738491588215379766613441477220699778494300298890394031184293400799353824469482586882574981181487215525549414670219882968126753401680707622068501207149928913477820914850150856810416063702519401389664678159641617343120459736380655933572891505915403885933796454428792836437161846457583180541704200875582754424707347633047784433935667609588127131045865068059585340459554638175789270270373213330963768884526897534652474379636026539388938415950447088802446636601496176365590751990505449202858215220496953688027699884720151438870293613079407142098527462149934846927842373695199464222692383739194168457158700489587226581673021608839832230793535791407706069409927079749411132233545372548321477752996874804287384352426125001258657741460643588732384477595266741660967890129406740834239214503662012691786913051535555332610556459124980902639228230668002099338930417462123611109779312743621543104601271279022267118778388632350003420009969644678485938357655744946501258465881209424727254996125177819663352669730177386859395841903852007385437948013569804689654213119812144823924266149480061161229990225567932202586377760030574472312695527066808356591913834156861463563060869335057542584600453100443645654463375474309685288720836577386363943892385519457705554979581563795621089216203629941447774071731081914511016130765217952846767733982280980822276668909397624158320017454257724521200685448019813286136540389873725274661522779775005407924478607051384161732287466229166865736040884407468835069354680439445931818751784624272374539325392539012115910166226641414519041751779571945822948631297062221307680938945143075993747886910534969035120144178088224880851763913477585566250890811826402787069665278745270547206661125473519626051815925896212530177791148944276836667034861325692093361411178996322441127800491853856719241952463441722857718714901191857829291956362737540538797800278450302540715420542682075733466221191240175582088601704155243960337952814838212956894333818802629109256351671122322123310395811222398339124908097100722857160900873622435350146414774368345643795709258843824220319807779233545241482087850004592277966411079943402327676720671467423620859550649571304697442420841557143559471326541550836008099949964070750512306138461337203166207626767592018817048552286700506434444151495067778528164060229728941484368365450814777206073423295353590680752207203232166929065887922799742583684330166339213449072850759172485964774576659019737309715814164534250697242522129784358010940079797747746394892119599360331225284831708634839410876924726247424887256644366603700985824122170196729678294233137986683042181199110214451542183639075145710915732790281232340877244857803758884450901470574106240149503412780541790539610143497345866262006809710120734770603003581371201992691388648945736674698593987913474141621678236063267496345068130256541314777918475530199883201370547220684368762373987926259767098939078837974511699866408086428704123293422119538700920070247407855337653358866560079581199750815713347938404539700446575977985630968166884580082380442203966355328239216053789143265077511855050105243180623033547413105874732845897595063288385061417001973246260095337702296049094630317593932784153063477760412662330957867701985464798234660746326311327417318349944676500430666268999265118993539042042254155575853464203901303835344410086487461301272159293709727462747620620469222450715240308432035512812425776066538842082637300670252731688524867163272035591363357853466457414006717280268910579442385745215874701463594027971816450011988850011531318929399608588424418555756470277858264350816987694036618167455870577690636987083958526056718959205404489129588993958831514394575350227702374122075776219239044367582881423298431445682583246707346793737915541511161912734394622530056515945727825099845707977528813479501515424115725721364009943609695985646332945931837578692779102827990302007402726271575961299565105970367852211798419043668595345150578921861447243634737383715121861631462773386737285137265103427039764010443257952206661288135041975449078589907808982846683932989457910828606226105412665612575370291114569126034904343192751410024674274875611012028368181501397772754215283326077248883138657181895040300818182796985752059353434419841620045536464970616906059958529101264147457985304067010954943832908565739940543506325755555089408294769432595106292785999401925649340645071182620296522246976753134480429022589202466485874778175395055552818948983172816591481012426059769052900355850289780943071271728696838721102037149650235269370281644984545080471647369932462619745288060429771877900914576162121027700314091752130614603876028658671507852168771700709633741995782112573509330757772536852069455931873542601855299183157564632434336931698187167871336126204573662677775002397794981591982192654531782976916263005014237587174037787429156255758455816951973919010438052011429071750511173906399449190379521098445659823140203236576534039693631325639729553755639706411073772843830355321152899522457753707666800793809436261635628563753986502745987551829216451670195166675021782214041707496107029666634338768153182078894207214457887905888793950735804202418796660489187617579222911330934139158427647223558851011161408449243234365822866900014477051293501323654676655438910029480517676646521564929720231578630072430819423272967040766166649960073741574528238779033218159031416338820480593462299150725549336888856314364217583844659164199089637973996283905346909053696894822926195692193203404968528130721921928039575376735666055004418926459375808540335745916271346850935620155906879033846001431649359582390470995532848901559953656996818861978705453089249647841790047185394724150257020321725015521170294675509152664690952609394940752133713306705914676230464100711150828363989407197527494937633251629248005368216998771144045241459297149265086584395279925420897639865128686833675956877678392804216899237441090970880254486497515335346906898547708635116768880458140738915634656337665108628082778829400283783748025108143004571812379355740924223426523981722915444026669000148254329939349184786783611301392252949893686287080113857267279356686773555433846685993438545254948142184118882888424958204764715804513300646046480090143716191859947122294876008339081833985749198782589280296786746124423729857671669860450747881553184616610090979226795980240407538557643405426777284930057008036478926846492065399739557196121507110195052840378463813209191497232651912012846570178468045450848861866966788090470455517192836644836329900857732648365026655641466601935913292135519208166430559133007747161197974091670226880573082364551671450638386142137391603461878936711544772680720349168330734414287173734836306344375266449397115426127518175698808028989888085567316334794105362112896135101181570041228094934738477467995153843892534885791879881322774001602847162472697965647231720907250903189087394013525417832875380505104346743859893522839066940483180664293497080451735688692777641723803433924893550044354276956173379159908587546487191685638741529554478947363292582112182420433319449911307854339437569053465377761045523910166187742408197103135336642318973096887748260500390731504322025200660121495187504611400200978384667115077935669798960819452172383185363339445775485327118215453992271994004332953198247246892515462017895623221044874311485963753922321407029944675588456272583664349909534015470867879420161791600506966145038165809936197654038557433797344075709974656523923130705474553958472627976194876206303450181765902933416437398479990961791106307443662959244403858214038591807621927008329516147384838773213426392413467609229677385714046837108955674509850518664728135144842527569471838489929841963370631943120063013405319923708690290925099042969613314397236869593707624726266897615954271361127953415195158823508407840682333009958946388912668643154221334155121603503569026694319061866771225242818736047081562967682601503309996443657295490873697519070204535453677233545539666019384026179174789776324752660455415014587172667797601290380553251875538217326180082944308599969903001420754494072796983437117050822989819186724520630420315267066680559125842393555470187899491605745400751871647918182376523385878147819736009306629983572082075035715428453739259901082159234940507567208690534140026491286212461165704909622462306916130564498231923871653054883133587858768343764683684729081426833104929149197639463985262302534408684369424533262382972162363591167635927665447803316808436118363801112947996785606310500623655287292583688559462185245917242965881282970416176639865164870503509190746204847001936768220164632536483067637576889936055990142606706998165954518795687947541843160146839353096177903929368679821652988666324403666325499796145875537408100371655214706192436233203095332560679840986009289180061613471799205670085819303150547635596921511442946099427427636089960067139959497538873957503280608297263099052952602851788768763436894355318227987692097439450752008664855012358550860266376985356430217539929011653592335265216187381883034477224669249398663039468822920822471711927169014781727077767029565162738413652285702323272793759245299035302353481179868386047950982705111325454231523438817886911845503908940867883903790396755579924311430075914145473140511429117903602659017808333543180837527049554933369073559736049845936067746537879805686399477726630064243848671304842698311257925543230440683425974425577342300082923711106922649948180564583239055714067373943308433603662403867749200657609247323833248079140384551210900820246242981297923297234332118293445132563671259939300658546975360469650270983706124971336852870933670274554298476234869400297598394108264749659774025504779073899845251333307620668918101257706859592672013764286664106008954285259691480271980931785726958706125740614487876875733847909429262821493251602466956619429530295058661835213401705260079842784669931645947982276288886810081856349860093302656127961054631227254772913259888172890080623244878124429194702933809428768462516175813635480335620951121077809278516379713776890294151416231115508261833953078264903251365969818114712023310340469438636128863910458460572025883358536114451245783093417670497966859868305116417829330336210536309183352655497578005263438811922238158352089221193981308935675498911655017310681673844630950867118458704314258692600095232875011707845857991295632695027405407169909661692877626549961315846957939114967399293532110577266234558432357151625812755201119753310325663340698370567637628835685489477660345315729668621968532440498171929793734680100239016586256469473517983492371116660546735811285636258768146759501841026723786853591640974402522760813258249870643507297843037708706811342850474767493111649188031283662351823465558137118843311075557714479300665597623585444191850501503414751419613681866873788833285066650833084179153084868525029476706924594695601506329615716273145778651146551968151151227190933312620351919988740053550789851074102180379592381131574339120434807175583268485656755521438046878280852132635527229638524774356133977721679713909012214055445503647379007138459301180034651148830385463605152659815002273293433486306678254632477928924069554440560999016656513965686933638597772735506919225923395657442308492936767529110890698659300414642515952773218963925631359762396487341518804519172882699861585721516300192151006781095655627198706515360943473676845185365925404006497702614579833106710636719348695680486522581371572010745970931818125200922739120630024857792698419055378049513791636722406433592530062450741353001124252739075162115794556812427980384620623428224059596515816058831980662397089086730256446363453790601414094000792720779775839500328357868182340724616986984108300084157356344079411468532139402542583794181481870136633708807436177221572147776749886374660298959923170679695124194511444636587793497230242679503747632041951731196129591791975179503243309228900492723651744276412234540765000715769142105124168341625056253292480209085854729497027823775522200772582200167158440578033538756770073817242521993123185806950244499295453339418225260352161813139442820076369993246845894116607078456526789661115917012846410509888136821097820530400703270244767598662041070868917021756998254960351538186747781951005679457320520661771131821664685736423117962165393115509744270382460471437259478397746063640367937662709403942242627451414945594282811137141038118254086935792221095753943184646312651099251758538426259324434101866093248498176512235485850806075039875327572166070705724280387035042740559041340968617499954709267801775754147323154373958945562846299239510203873673273368361897892290901672415934814159704961531054510340413672503639823869243275983366022249091074648661525275284171168484593823885754304761639922372401460849565443067595509194338622469952775898201707314088526966173262264076353181584187866364014535529175722578557576216830644770068928022117998681166871163698271340314650111135067456553410226888594296924619928109056444076655360831826398231251141456078937902135976672322523215146054919783219246583152638614512574591941976970921232423508282060898498525766471887671376989321163613713960879915511573913023284792431075236186581753297981592602837596831141019276790359175559894300867694261638707282858708029604120143327668740253306206993292105320895255627160454256914089712099885696551736843457715510434413514589108642011288255592767962959618907618567666808591370881545061847995270543521783293963471065410355986985396776071461550460128575342024918249857657345050541202075670236363303058493639060679177729857235637274363900244594375362080856171008715197177810500152698518678232980802615320050083993051204539113456808563790644923951896127738828977653922617934104847342941737010857300230374816940578732436471012938500931258672299598310829472519722088770474967311565491338125452672817652445331094717203758785776250190869755137218359899687292524917837057532404341204107149255926102687910434899362966701302908278794085490733723631619301201178966656867421157083242937104499207543840263141760372889927081102305875986536116209536490308484255303185022987200423359776716042438681019913884221402816697203738690782512602986731521727120098500285827169290034083316633125600631564484766179018971267443474872708341788826498891485809004088220688728906321408509428512184547777163271259096485948259585201268951697070057227344946088196571684600971983117692683720816647990563165298408261939484028235071525090342525845674540614543017196081729823539725590967432319186024154003416141475813285106687247969947197763867142201528594217222314096354659475605434398521466327356150634201817808016121040608387974973389559376370009712203672139461747585372988330243072766427844558663205416703330802246721417458676031494331658853272526486870071459447040590734992539446609337604094120429605741217258143949913176095244272240540124644441819935394862504365994611937231581399209695220751438846993877326148693679288382628716163548334796875343359572077023706588550165270105848285593452685402673327746684123639687179648471235369368581163334495022355876492129313889576381673579866932112937004139550538691512386287699481274291364351119733676889728549607555393981436843695841283404415406068778320954047324700450902938336601444845569600956453666497429751168872751895057019502021480363550852660156170309138186710525222559198734457141320882199849741268890790808351524490055856282490705485564765331159346663275118072043865034164628560681642187441902677397634820786192050083196110048781839198079106493419449890053295180102662565736496184470989511834050999177586076762571759551477411298008777457793183399101337653161666385931200664580988161320493110110488984024542609694981605200136453141450401975169475860827516972691237167924106537259172089980400488020912837150093866558453357501985960491648667251973062541064955816439839794714445352258390274933495690967002659434343099145171057396478480576882316594209978762769432762463299342099267796915076780840396464713971461023090634864826034769419003356960400765283241998574493142000872739792628121804597626657134498629001498364283613685714400187680242506078171955382768097838826222250952752595481286151638213196107286932852896921425711890399754957301321411077002662901247633547851315905382174983879957992091501303336036074622978659425447403348798514367480773580111147005169592810392368979797147317591690268751305858878259692663438316112849656887300593504336004149762725526664481785601003285664727173597934003837884878628952172839126485767990843365679415050822072246141800798423988995449364972177233672594873774234479359226304274425379789756931982680085922060996291850973706345420634054566606392937666013861351930565513340023350811675345693020616794519043175024480074673592688641839674964352699406703966322404144492702762686180441074265834178440472598393192681179365347157302322311593349010116113957778451494391515466956864337340893137874837121254392377153283929597571502116730482192125534303383814748879172897381852787379913628887853559952718246173962059060333595670853053860612089564341765648817718749211237200557356682126079523326276889127198195391072332771588190931880470981577006685378993018294486322621800222582767642382024674754758536653664725013318673457475089722936171447071299674351865594305134803541267730883228219744827879655986278433604876092153985677620086061335773803459603216197370314297958865592138024201555446704608546860228103597158400929551445648783379150342143359592320554912590459884094984488021420748045509450234249680716890084963479857283348471252017086012668467197817898691880113079610058262398900085991579533828754096882340746096663253618175748817725569523518286233866038998319642281507781427781127813508645430908207823230967240569693922862005783494572113951243056540527681927820520839109897737208208927426638655308223366805240397300237822149920282754410293772964166140271338251108219730677071720348268650956402445737293338910520528600463838071944648529450219651047772565721421211209062789334346350071830257223688329409354635808974848414375062815022194785173989094648794315399295400671490381536523299263694347733122307607134829932318020471459149835885174983479413389825087934494947801757939991401291122047039504483225986141731201307939694532168307408831889968702439048032955871681564032399990263875741779745063558183325399338634935392470109100596992027622859467936767506513905725348619866129847916898582647498426429069177865191062381914518546411829121611123254859915109823506168550649323110973712874188287038148236720413985291569855283038020180922143705177059911807386592696920552837392555069770159427709376349303971909850547878557157489291111299558450899534753139128612624605808613688233629339950012084085206273172358826138705468187983677620518744310489381488369075902982560124223234854144467179439979287979175690447672490876592902517163417322141865951851663666702746069012816329213873957415056176308162720492868926052661471621907727539255922782539940688823823990318896085093009167579812873666441471125560239601335559027313467568649630316290540375470453185124431551215741916457783173066062808308417857258727811171678000327159478609013830974397864653873998194808555744443052312912740388314921539952518442721690949938655043131900303082396349305398781226308513357599594929877868320947526249157762554007866022844844014815079888591996664518101193362647485626017710497252557143014896169862815947480690652806336422222952824508228647943398363111344359656090208166544043622261048161324729777824459664849135339152445834924941856476825472319978778418130412656977467302754095101196806741094272338232372123768206540432019962481235016529058930191058673995873598272248062835878129626513875563936511715615234891408096768024772328932565205171639943397314999268825134855717112681549986184492901813241568642993548255792693098038675008295576066493353535301233950569015620085323799732816467363829288018233670671627469286950957636638212432286313608218181317567948277731952010131745964029843996525927694966805202388643769394486101258377704938458365723564306973777500472564215259671789079930575719209316728883643890080742679601100280448706404791832518066411684889962519122112992669354257771461393370353820240895110082200030078687772471593942438378576602303061893041966209294082036332869711509136550859797616326470070985119249949592690827353091888880674593302931317784580783927277709366316639532059286285726479679592661661151789675481719947815298048645025825288660552189602515091961147228304702668734588921903996818060890570612510719671164159263308380987142933929900286911636038801453560991390652852942409338907160997882631937463149463121190395751235261423523530468503068688616702259607378773391857832655307736451851216462667751009205563753714094658208406109921491852105779323010869075431056877761031538512070991566428063637735426030099569935944497889613641726622810155407873548553018956737541073464700784056363882063149111521406313698722822011702945488099824513184710312036642647235026934357190821035369684069477327117411559383230999996069064113047754757068624377093005880471672356201595751875059786730664728652937336375839988360926675095879903775141496501965821917467130721988413037147645309343673453826370923000987693580034501836776079799727662511222721004680989631469429300236811874879445185406541298333623805993318033214720515763596244291779656101606814216263486548331390671324819152498522939267142261016632520006309412521243961265005471441801922869854539955028443746518612939242184912977133338601438814235822877011081160180788783161397364708503698661934195210144805482571084455024766476042056455285789599258549672506759547047355277037433560256153793517724440824307872311637438439300137265371471451015197328342597488793788116425693359713490987137003399226138993064335868993718882763275566308902931411350545041656293467586702350260587424729112650389578080791730749613471980176769113162303361381721427164455749835192646413445836864249052737961356220638363194202643301999947375165156855667651777070007910548210239618969926446676029774196848354198156911983949496777014933695446410818430034688777671638384140301256931955726207355097615706977938015971862814968092712026877493977621877157040347826518722771548668846547528741682238628110175374138744552041690071528180630025270340530224887619281259128256683387012765546446655874265338583979383263859922283232124178651855971953546732101591417768893252004714947162041269298902864584379437476705258234558024308646093717085133627718475879376839577889643102557355503106489524382626395470954775567359003076278589968601910678287254453080079508204724563585145680325215519135058921372516152560877942827461322459469404701230056165047622278778725197504725106011181708324914978952165858744306858079677477323095251499052345945508245603700961967912583907189758093069696698776268150264932981343156794582752026311867439203372389946137749609314948501944453773328906014759828422231791453066440340131525382281685543056197339399229598476211219408072898644035631802504566226910891826169842414804202911074310243566970448026096374775189556997165082155519945782895113291428187261976409269635500946412634329040203651030000172861615694331593961412507810681376263864149294763468006039196590469812953551312462217471632239167970153260681965387651696004585691673730974959423115097285009401484004311542587956539810153075150034437158551080347241398883444980471274156477178681322313784051884970623993069573538129205097381370566667773081238904535631532372412383788711613615540075795576376996388303361069568079715454701789955727910994399276703989885836699417833897913734589631012597683948614368552285304546440085983016626387688482697711991518243274942219999177041975853527752085439143456938155398805648561545184803903172355912735123028061002429204922117143624979193211627076848502486706770237813716930118826245344834991982472015937887500854949463831728411661654369556062244332670307931716684513975399467935343627615675659217963508171005740637565914821248799098757435929542421635170667742837404097999634197574342500578598949634816444906937116789044750660674721357404992637530672545834988888381074982402228128634104415899240895988316015559858391628827398963709308523070508369729379473163258580135832831503012279819927557470307921549508608364789739446850341615863160042756177530834084906643027168063152396511999506283086417763862210643398414415097269569026098238977246188991605310841302035010622467508390643332969495520653298954585149274385352189258194853853099249784460500076102983649387846310372813594129839636900275666730466200959034028106204409551585669878403523233079514688057337112144918631602415153538253710751055125537120639553582062196582734206570981965851792405398360078387002969957206654956932678812117656599288048640283634318290332240044627912761781883924989668339257403404175414128295189909351106802893074343140146113311602759567710301499494381925973216710201590293172900485063814053091839012002218071697230468928467798788679685577844114212569370451688846826111236571964490038156175356816902163070056484686499413378835869588386126632159902639866178030762353853148120139214423542099217917502479241599715235036250050914837512166051588138207222118797637981807073027405141311740015275438399642514035682933640510110736996620356756117619786552615517699530717754699261517199882070786609329871620579241209823836999641634603744241177150472201382399776986666976992466707933500477207160117483897103436549962680780990794308867016907105558189448393671699937359495453672962018892892027495266321064403098722238380512675845495931950193777924345278215017961832623056887343969510957579685207712050216470819713906736105548027573758748953015812546608443436316220787558751201936704981749692106546753811827595448670039809318398649381988918783812553204992829404287099688050713190975123398217703477054033059126183249871142816619171343692450850496628836397892411982344198606921569567242481293746360849375079780946249185000826005221976406026635633514523662647678438731641348434602000325633016869320898379644696383404402550900774060371970478620645332654994742550259841158111329097902019769780426814737204191006072067345156721525913817193739398405511366144105281189051554051748938848932636538219672182465406806264707458877769644489494641872896659894070299465432521684514062243384157646525781079136120193815101617895426239524045491752818907387683114327241599459287933845197923717909135730119259062366659474205074576074999443357012107533240744103696311435397250529462838836154624296156902283554277893653069574135130809013574942898102004678124604532297038019466781956536848962898311578179899352333875260105999257103584694798499073003371049443258308561446176013292074136936062404148537449729436266740166842056300367899073857220196822770527632511971392850128105254445573416094868789532948735285327358979417511341965762220524286813565514315429095358704035721396255923919762100598883201227946446210022647255222889014112512437321861868126109912203779524270439350110336622960355515905691205728289860787978512703172901582091757839765585038182749806744851112984447151035097089117607951476166182857747202555045656428001000680201533085485340944962449250021254331399813092888858206733046863535863025370750431325648817788150009718107757144879460486296400143693061894577896031960636216254253437976902096248077214653833968013609836733638378997656863273220438325529766725158324964573162416793406989093966046326230111274273369822695464291291033210168741919123155843449067920498283367960404999912899277195765256854066406866622172334784243067976905664184334275828948253630559308109806818415406793689596188270476287605351704926347475363743042999066343686820730501831665795931270517764645879602726033193677517980685109537855466452517988453090328529224707511305107832510068710199175022722833204115153775108309553510780666290656280507269473975776635205278355350809958092043639366563163084474519422082971788493206059713060829624211658328188347254990996215393724864035510580890600078851312273641430185812257916585425799688714357862481874036669350909141748811799819870827741687410902378388872169869176643665477352638409349339841340159458544501614980898646852735818952593500970540817979617552206635133607029923300372551250714050640957483090040028809866458131498073077101797888105767300980958802499200388598650971443435351249861621134061818329793883415224937169692834730171494855799922241820204138395450290333469133744978241635170062104887573235591542479380256756755970856588242015901468585520523635030265964516885000465666829699660834871194576736911684655925591717488520587543328130570827891080335884324360106693696725136322108586092891606642980315149667708177813585990055771723378900456802964985377677357205423583953748293765049871511539233316348346826436467377483405926527875224597998349798189630758018642506981231252795716395112809710556609054263105583901828737986931403374599021596768650152803287810355273223726794929750202886052092985969028673420531315287817948651568845587513772709489447746189408761872281562027709321273525076502695437961862658474745467085904967922711725941819754956291077164039662280847059597921621797214653441064688145913111955205685345048439013181113055438039483399884477035320376482673621229395572527525382684505022510942183568348341192021867153500614838469291006028639716466082918607100170758964363512432640676043622256460527477812261317558145445016109634397357076997908897461142468781421636530562753489771386208187315276114431216621814814575445688780043834639204103464014524935155097922225098579415552909751229292703514838497293004976127725231145341636158163043528256215881334813497986875926866518353009901189293852012330542616816201176904827749092087839069496131742749572308785529247709585670985795702859813924228526996266731453576923125761183546087124837306515087881086608760152569929933076012940065279281019128383456784316212115931124928687971324263377210719566283386340992112106578840257902871166795913974255080640948337273000155609173609210471790111706833914859377899679372160550396979064182096802029743773487078163765384724529996004753567451653147526955552159032294213163728597444794840629211946786608444055513169833097471896799887009396487448707636691228442475493316708117391218856004822181403206882863404216811510621921323983258806513855671378619054234033760151044902576522646241607033020023458651739173088181365655042557557573378766201324777113064191654393681880328526814153724610298664009380331977878668168048439578753059266846932310830023822980717120284834095356676828304745193918237297045535340007465129152715614476225776947147780745694683730265332896990651541324180890182315519640997615678646150030816403958582409997715799822266868197941576173636877510921905113305081002191375353833355399408823429227806034397738788864343878987519809744347708646988776878336098137339406544221657234655812690967000737340755871702363414167982871881994835190119062075038329503749368240875610542104349395342408815614926236602521132760142892347187033185612300147333887480695475263482094778476379515254794949123374168635983008623604011705860964848645225846061355864668087375360009344418358653175887155157105637333506344042199424035736267479247793812957466709625822737848717958387909073843982801213946772362097149275969285247439729182337019296180228430941095605006364055386097486074707493624904407491309094188769148594972220212866520869686983318852044866121244275286118362383271825102829612117811578540139878508617422540507480572258704076302279549704965756313461469445322302773249202852276435047957188246896384722329270054627351210598377476694506780396524227770691624056612260239226766268766996797483278975222812926959381012458534142226799100695684582392334575051142731043368299784330658172705235401350851984910068821167731723601078673178849042969622989436518329699834878756951714067845556622368901417703730463895442687519939112513608231003749386239968651109556680488160801105465792365958095959803906330717851708216334505172890366077839148952887576208342624815510440615020880983755758134115401036485309855808293775631251995631262898685187266474070134870029312530409865136062538000173346548475302148770256935802756133198787038504968249836246870505999968467165409754448307283961320462318659020375439941054399425408206625455759849039924054140888235716501647592403033028559539238554563177094380405708622140321647135878112048784210320099261964178164088930878888080349064705200979010510540839960688276320826273616066594900394057612620484072617168732323236389214076522928752129773092837270295008223184622654668742969870031255603538628091231882629879540799430918218813948388722480460901426451296946392104343979237928955861410583125045687797284197936399623895223089091992072970805841858932927391659160139539507745825538417554217509991669529536671026343358345520418220148293433125181925021238680463230008977244815725384764735209614483349592442415573522929104092292872978706708499347969123661471771841758888465557980114314392308638941432853753165015022931235287372688726150070841838585234410543054443442447105601886638450768076576214863364126228593205096631009332362487229740295879936890679967892762055261239173916552031242193493695538284322419798463932575778305276826823578251090699085173034225355014174086042110928506509320599812959457331494258561345714450351617978085127937088714973985565425616582240289246057607784938038511394437249668458328522638422717382730061242063482110564225725634287119057955806283126159129763779801375884258778930623513899351577344559112479101961457565084815319214257959023208685456530882835161389027744360432692707731106482531311601166961588905910927952804973972689661342615398588883093225170121372994273666306175596640289622598271451190357846680792034576177257386622398770475805027514626552085323221457408489689472275988198695803143489916261940897646037467130207425617201550948811948989165072733772110515939655055092123310748051051621872476281215281634803858280010960238813455927193649348135106258905903856218411752147360698978833850687905928638314441170940734422061662855597211986803173034318822624170367906705216701806064849213541378934144483513082277286835807110286232349065377166076934191659597288017225507532285695317010830562897101117499827827762820947495703647981380163683559695218445322361684484827184130024291511410777625884658121385153798638862651977742928262547744473879945710574852012136347454788969075770073487835263420677383900308091322805707779588234780889034971338795438031125849940554567353606939669730736944341397219558824006371834912125694816435995559735412394262260547024742882900983239574752782262242703638971056591226277129653075301337190866798967669970172062430128522010744941328199169963989916638114242202233918191034323431535362440812309337667264995743291149751441149073045840204242297386982268677439193704564341658688870440082445628590523175829062903346971746854225501589658354882599653757820647161733258284420775766427976309539219488465440170398020358823238534522876380354126139075782544831794968580154290918620772172354474283852549408886423708617872770123648932545367884258524529845501489150423962857751566938289712970352612859928011457999184209414841355199077573390636885252158930514618392491608740599170993273648908587770078755803975071451535327968188233287850198963154560846388028871238300613986329291950497261250008845527126915054900494324375520725550414115488597647233678096671192593189670471404897133226348178682181129998042715987630035837308154299420984388455471428894070702019154805195231595350617627322702297365460546990973252366697488782551680886413444985753301782638848393838929948536674609932138559252864233773944099352746684574806476280717236102983195296707994501089892572774836636282347422212156735124200663705215680076441941014360552090739445821152547821228590732046130179150392869921428653571398765770563731826073841582327220914068148976680406317854021572675522200934630388534390626243814520693985214544325575390784479324185862478655381275179179366604328216433847551176540019268745971856548765528609130076199436151550779793041536537278681552923531508910384335552292046830668747210590295594332675709188872047924789415076868870516677505789471519148318316427389962793554115608274318960550450232330303652216333975975750581135839199932553223214429792799526141839956428747492572908396946815376361110936425304831702964145157770103004424845223055089738007518079327403253947072597158344536153041395759338465094924668395953053819280951139004043214483857432867405403062287028933733779345475776148320359422986166765426048924553855841283074736923874672313741809818759616009306128581662368686025032833134307421275485203812994278591758456806786646941796724784848398284252117074376676478644487118422403862612399376782250836360252508587956608611162556405936224249950966432054301584498671801368972495406453232209314674954078769190639326752885642412618654405557183422890916879894343113542827454589990318800131672668331311450854394201846087713874963402830257085529931064780730891128063455634595701361558203829462520603458937877329140238248186714375321897409299926913851784097172846403176023129057884369405814706089250411571573737814387851635162946712771784116440197334291951069691925448468699765992985528762749017457259819093355290239671357645221075487770682950478750917858349238587731390665302278234943736822909860185218208082417831344098968548909363471969108060110965108188934506017436875919952603450847929313551155341506588352968759150117930112875066893579642031629566562602543043659101433485404128362199846953193844332927057387547585951706798986328894498543507259163685398925122485467398008534065455387225673912180401195514639335270841021535333910271500861898115917505796947877527499749928836459626059310177715788608267118209127059651792914215937664812025746501243493372289866479169824671661681370583674371615269493657331914538857666693976284496787177725065642984188375260337621900869590514390765202119832895991279621796517349437638789156391329950632022520032656732305693056980290452503897927425869462982829855596707770632174778873059199272245395860553529545624514619745254231254237211195715579707036337553779158631810275148592166933634430621332465377624921190818339827581323047738034682658727328553904565987746861974626503884660344731793612564257752862853986260975739411044138287969387520528886350958757801484216439083404353443708504359845550563008294194814310225360062102561498350785625885137885568041594200433639627200227164765682556836280719622158922176379394697174496284191343162075873165977898514534947358197687110685174151819652831108271529875138197651783088284538063036769341798074694025424814773735955447555513918247143335778132263922810775569986895686459272168886520105789572110895529082955253311106505819996619788043787061177779891531178402056331060440006693536547960471623053420051531535344374938956929210758024163659958246597624733158383810958856334737157726752487816439735167820389188035168454345635080546852690765868166249933836822304386984193214882937814617466562634892462867826678913358789109223307430765203183875195022273103046292227595582061318587691024357803711062673886338066400004723091382906223608761802498518413790985404832282000058312383029132306197742570571367956557931145469829216622343226273692625031642852844631305578969003152143437929649085079714731536246268964449763058211543374803927387579799458016720450756132037639942336774767249450439666374886515797384105330719262782977043149164955498682905050090223593932773986941591178444543937268143501789863446812659770424342746264954328635732800864373242617944327717891180455410698485061889032784183080480483364033006269458667160149920083520584820748423182770753543372597152409583641984143240586804459852615491921976220195218004797874604279913783656469495468048336033914629759326376774129169589518886447863479602884230914475551819931851229923087195185707237511224380759605164957359528578168697517842379409152367645534698261999573053486000173588385532344915645630433269805809393561249324720312307085874509813174179168505010156311545841291926936900408302798916849968704582825089933026314270339850714356426677075132881217209733053384325086076787884519884056521772804414204155100086198938245539062413840600150902901998775610348610039815142311020617610363514906939894705462920683504426981047884418986191655826411116537586898932177523013999162391196950883425940618199815573449126526285285849612333991926452773231956377294366449646038352751619156291298839143639981451491530212093733926552212201194782686103510185398045213019132204505286310458346590258580479693734752864027693481717835781214653727468909801275958864779963277945567241167238861836588713022576938030542009108932091703015867874261764324102067068815060297519084722536981710193680819529843647507369577411075905386884631496561056520106985720967618965168933291091943100652719244728080982961149094261738722461431860952886282626581622244468021811106124756281112779328229756474393272711309720832798200812511088299692260802241472767940305443686590683873963771546639684885408164003731851792322937852148901224606428369405081871859642537495574396550910643667157442175672477924490992156623539555727574936121290347797986200114988359819616376617759057549687566577208550187922697364584530083115925725278377925911936852422830500201757741575079077967008040800648114537482894655915869602504901595377828944143609140394817365077109785041931824534861915222958830821075229896990228081152783935425892358716974578227376538342610811996609094199248063823716441038247255103889583152500962982905464383703431609636282180748786123400679220960635538318117854835967682022114802611991924208236820526623540720635951242119702714996077637760090697140327935980485881669821477353805456341095626910127887994735079227040344541707680076947942958519927568188088523235689003001202713130375136370112926777356777308244606516340340093411837082999320953667013625969244445522484750214757390388885441159017850220156253358203741546647833868228668815384666572562835682654987170851329220200272330287348334987875803787415939585951196273580120307056483081154506616124114920187641923652594520967041323443473596297934802321268352148116144694199061580627698362280651821727506373994842713790492919306558081741103301269528823287092541618226895828761203749257914354214186340653608101668083435803411505367569319713831601976493725882476404192365623008538887446000047686293496592281437752156681713368309705252187618496928576663208409341274013816511314571137563438028434632460604964809321816259447478174838679058330265012384626833023322787093588674065904334746562493836745207684650290221036587407563023779327879759105639945684171534056595295280546873121566274962204742232819203992669847914856645825555925917830859172342514895379477943718459444318972350894946192561782926668486933123514840058573609043804671104355115011355071710297675444222960660484296262814581313670045849267609126963518356978418698205980214545789516403077251193744561473406946827500492587806174300090996750509521444637962439765249821662196947754384600772482616128230939820924039887014559764606513237866839817367626154711040000392783539878367309710853185863125397654471062104426690827199222111434282877624843432320228326949521686868151211808563895961719745557024916671107024953864779191707028162555865765314580596127541212945403223950559526073730867836117922784282944214340994251180717799932579424682943106789124319156783523909309030990930695862071065685946032021229263317874021996374572423781549490940852422849588621296838430153661301828769803301076080415775630790006714728432121138143206622500587106684164108132151005534778726059805227235951647765308590019862914979391926512348687001826033038022688587998129439761369360440350824682749037429188666994155622458801227337972327576258162832697320080427682481226785792549013995228133031716429618009438743556316660466504715531069826989188609769904705419575078523030112646897960366309341174150205402174522590077892673766966874343787262462509359532866389810414775122064520318662585320243015178345848533763220064330647527139921342558723151261602035953235816844143957225767176581125665938377950129503165502354579736878311265542855994352553579243980793912041711827318321937757694427196047131127005019732767831001427880999039997380989030225885074615056075015381487398815216435188352872261895022220728971341040358816823749533411379273216728944737687098712478029585916580051398395420177928266104696213080488457031281246880317091818009568901921192630169089486555055394388415084636947454995011592710236449401979338441704487287614401534016009076525746262605562931976169621807490703653132503484562526922333893321124347319226100158535139829984078928956325388753740921482854701461136668306428948053475032176241494950980324349250833787870424571417402432876371702757275937524101235684886634723077943005273776379773470608113527843149056714467629054347138891722627902478408185061643011130243326613001183036175510733321624129836365447207533569512623596002712754133795146801713928126377691594196395942589741825522810995288024385214750995061175402511536194404703772524269311807702480870354668464796884020241235828823313029132444690593422641877637416290262172481544877917630449049950939756731201535158149937461889138291837059372461239180190514078851346347185247434284312291201125520302039472976455223738478236817417743682912217774000616576878690992109554330045910645139192305523252145460936963696018155218512846779174451255326414856411304581838821194037322178524561503216898588109899462892917302816430589964337993397635458138133727259606199607126879828034225479544646798735367801935516171286030690451503452189483684316039614070299486364621625683269225826994862173072975659342215746647933428727358361141014724614718387486885886977042584473244334535005413091894524065437511301818406557716795311505210149503827033874298160595464404813585651164235700556355272119958285069346237175847442837913667833724569237059302098198684472219316144238306400009439269513814080871183850036138819293443305715423558094612370248224492645262499926746143881491011144553803397780029008819482997906195163230458350015925915525957349157113935559729080449793423894350487419679223226585471964694567091806718808784804884299038262001902621926858705617522982744631553426208301267792340942166401867284946179689746573650062359175796401316760768326161916924690496658287770281496637433054725334565504614032677821049820200185225388882658882387343157150517823746494555252919316121286756147236810132214422413513116663182118153754243395955387788988238965630711088970377588907111765014302945654852769229404484164648681315472202675278442471862526260657910363452626936707713027032609824538844079350170188162475235849893602935399098170840136974797871923813142432762275284539166291140055508414448404737103530268016157620487895497435960168994278279868784575150727493132513351450212350303091853339120610813681568091462429993965783384084828133725398476612008899887400635707661162768988614845589257762263835971836626412757636921363584247029181422804305948582998220209723463326963326086981740689552979793050374379139978641855849858781808376734753697615970073136859507768382144141654038940518278965055803199674511289467640309876483230967096334333920871941182306823806937173765212842613812071295753094709814360019869708261887813065815999639515331221214175396918746222835541227194578500636722272367280326840877482274838776992929771829282315169107850566738492949081505662778243689162860857418616601395554368954990610842958323938707713821106674303258719777060705120877185783404817690448513936519335552850077562728800788854038730675543899504623892645885384283406256900135294478657127324071073985116141118666662010980102496097365950231139120688470752316231905036100550028267963914227229760670916511198613945146124164616002046672719611640692507558460746010682207373149829832317693018562851590616095346340964312099031209479898750255230861063084972807854157542164618271881610371366034026863872604745035505061487632421580391066443662973628438335567359126343971168719447018676951867762715446121780321405035058118917490652395033788786339485269612725633696127366670450019030814023039854560303882414218190626700316293269764162593992611195831916599013892395860430126649616698282861659809676371219521528898787296725373111487485657545177783602943806353324352844630381483590831235344127217269984772244194513652780642227447499258176782491500264534343144606642362065117589262719075914745663060868917472977601385472883662599138327365854151471845643945927267055544784653738214768277992651132342463853020159378038269061082519423023485357886134313918899156851576475747421605211639089606433219893496209978470374311023882051314372418404499851237135858717251054252095848418756533285266432359497570273075254512988864571958071915591334355696549420926276432292036548824059036133353761952794334147043703336121567219329335993738366875314221016545087287566652296170287000270745796530584083339798910344200649710890314937085624810762549150621584671463296630791496485030504839224094586135176683203267029112887588004235025756556945091886117122910316512662303515997642165837499792490128519828946280200886687203336340899799753979100707162845335238440322246612362771038072491161914721367723302727086463455877139682970120531400205637982815715266482390509832595273105298817702342635566131356084783369141125869538389112456022709339432569895884668494476354881592803424278822856877031436156573644498757417994615402815396835455839785051434461213807810183325355823292956993284138307012916888043735998621219535609459486014426859824254452385265585280435393631882589272323255482517788157804573247806863300156190318185551423334990800495838773490220734150502886647189365678435377887646271846806301842013612561216318920239371989613000807444836325987406505702841765470622847420790953815644469999118344842970871328551970326264270269450673887787343943061460799989734461394891291450637731507616702505541316506048569568574023212514648120215233525920175893973990762741515001230531238504339606266200097850697716194805666851800258770961937109406052476999963460555952714978219429988431427231755137010007858344997919718210468936187193119677711046887086841622995357165218061473078993230426970523403846643034954960217451611774446683152550616379559590987923157411990598756831297564836754039552400118925528669064678152260934620813015485629632163548327999444016950338156138693822258415960059112557567488501538810510937966258213600416295517181432768299695215478892592517247444375931493805857464575827667569632353540674737385877193840258104609827932654354683283618097357932227216393345665994522979618880978598090264287972476859141304322516130442044120939296179144337081910120388716503472934811852569790051536066676190235041050712755257610523441817116200576494257246731885886910057786027637666587187082216901335449932106116387119495351391238701328239365929711600386513729783860212062059838615749855765655404986256201407042316500337593265595095402318130127518208894381684809923526380064273757616334797151403200781265391881076866988573980416253355597987651202640396636310757198425541551842406687196972852510375852141398045149322157507957359559053065173167271812652572276892006978825389520550261566203349468877258330230351623373287599368880472425405873904297893766455710514629685097968472346961601446537405616986934376260117267705326650843076121746620885871229488912330709175438946707287571057159227628677809170702239222852739976311519453979250623152210427757525250801735953604612462333384132576602512314080332503685568263407383252588321715037669783441258973820931977996629577237302767798304364430879545970783396711797470237129125744900574861970597873609154635908626173245919970073507019810861742027907041006555934828147166300391466045308012557370828889039271275507338793656632210209885188443216029874370651025343396790957239636208258656138558167602132998137736497508355636399161601885205526065511446479876105493670000340323723570087533090655072608356980157645954500984639879121508466203388540002799219053759256558974405393135002355747770029660732265108908793946454140030754424153124071761762617269149171418869174370201476016706850156927738335668482256226102920157292823896969081478038797017857727559777513094251232942921114479504668825662193134160660030635616196705319858330177023416209973013205802321335482307858424616429639184921698031539367132315898827905419049770295587598123894590647503389859503109004794214579471188893543202808313159611491166794665483213253147581374033252841682560183624451801837619414155705517334599520684316111897202926213201736392290753096412245004507311412133334799677529343709808117756096701472630085192516580988666004692993199934780309726284739761003921810771617335266518943888109547911872903856085878415303144316639545521779834683750565040750883579632756640482472609266890748298609832023657979364415514858201467867246454197701764271518222930324857245910349632357468771862735500063825749159103497162530985838969673312649452207566479849084574111985275161871165530796946619468368267097304158714117771995850188277354638474336278658727586947432966913191527735653287161132416206767301808003733483912645474447747274204921790288389180782180311250292797867568552060478546619362264559873021672314835778549988358348500584361266162241739717861033507054315207523631827828304328588922803101311956473268580518451146660883810760671366723014669362596693667268456947505651061114596743830084641047555852752506536435375510689156637411780391359720349591598927828166514491558246338872638521576056693744827126114489735177764457275803546581477655134167870879685093101799931375358349507418390072734304450878565115994561855164868495381771877036032050354301174820748195597520801577426433579161551362318086852491018013588077251139111758287512118356341078149646559076781677001412851387918136157006125301633210411670637452063857522300828034677995433975722713193995092187653034963361605514037386919790583001545092723001399916998542205439971697740844542303794745063231202913187086957438480017047795307013795161262215951481432569599854479549164376544997361447566158868445688988263768619754616377465509480260081677401240182561919155648808937863421106966002161748501807327915891188393223805122990092853883256460150532045970099952183253548000883558362385418886470630425560654535862866542389810478961824582628458327085629995954423230656093767270693475007452951791566698368382772831579799764889485746758074399715134050804225022765263228706450577214015989694870682854060394991442642375873127604920928365882514498472142072428887453017791534041684203651712158284502060648993191303812513359547390944842671001564624980724873794467908909545769160546594228290657374517882581103243777381071237157867680143576275003676104550813834936379909740700639118973387329149452325280039203231498181708795860934903429179662382140623729038369192941320064024715793398380233832846324931034739402887300846049602929912367927540030718440904658249987111965915145164275001795326818345037611239457081516437552365910684283686128555445431812114909728281365788166532347943535666076330176694394282151925628867309183182832821156265499483137313149435456643877944242665340091001529870072115721158236177076720004298576645112771616838153260164608769274981558024324341888719526934475382075086136339983151045517686952019774988390860722763708033580835057212229656764873038754294558134944679102340620055790670933117132366185968717517628847998140458494592769718353730079685818767811464551379479350110184067008201774142823891379612355119164900091940095154131171828841185277743728705298219294366899115871218444356498243083094697111828638142310346237719545927689277216968173772262965868516844730362441269664268694286252596498645616838812370300040423268251178017175341818578614278978173868319251129261496102894521845633358231578432414243351398850513967693808091270903660499383329873874063026382878003620332819496580422633390888807791652271059869386596494431734165990199396703041067529151845453099880119810359180327337075454540799350705999184119479984208063253885948501571875168612994882003886360563652760024286737846473308272540361491868527690895155279464272408034987079636025975360828241491785915703452731856206372236228523824088148874143322041304232707164654704198355890525124570582497024218850680187797118174706058807186231185327505416991723545262555383788016840847456898183895625116471077457507070402091811169244275475729576870602771500734675907337777752109113284820233177329033037625257465761982159836604665808699509233951479866777973637855833928091670783826493245543056287068720733122899840667558037791227251978825358491354425038511700391654710099235252932574789680552196550609538362038899008585358304487606295912385054497343973239720536836664315296221442114308240669093110120284188578026740520425569743413785577648333291271219593106577204038021880068539033658023776048054352658633880685497684548829229590408591225084457484058347614075661973322973644102349894821123859082709313352415488398635869484889252572703231231975703819763954989363085593162086467792353640535238830461982631122970583579299084552563104010898932868439321633858581062735975229602422929475107275332888927670421529162963509371278641343899979836465822630300897631661931214567976201132625043311526870017925522944101886254469704708528461081643792364829467438553832027701478281897651701607529702644224927870917623862225810303137921980397618460062998309362916046820734087387322335767181189035996448617092062669107833276286581071676019184632936607929136914903913119224067862826912754555980352163325380359680547758870728443209607511450071256458378417308174340366816765076432879847507844802560379536871964589898106003691979237950131790063288050728651327935238527752128641352789993611107891365346149958532355214341438690681721015820886030125406879928446347944921208469284890774204935094547378088857443124496709232562491102546326092130349153799454552137818841549860052438708690448139534182818527644528671907536291339191081672947062673918092317574972645250075683285411147834198321650303026341344271181714678061420205714493801257633877807564633388129778797091279644057636760865537400194874492866835366384858684110232252730979983886629933697778249878189362410004332526200203017633807869681559400417350851169992521449011995219066287705407977109532776499975316556535702999392747370627432495367714942958488152832114679792773596833421232897480407729219359173883624794522082039754628376883379089486106317803433253940351110207440398467983680299039350767138750958846720377635135550175965297988087526127910529270087263047360846867767055074938017321029603381112755437016679009944575698098370354902323988344926331525362966921033694957113788922120576301890707758599499267643758384738027151871801531287231259756010323233650285269230701117344264838165542053064327039028895372709720504049955838806507023156438563113576484926305757035994316899205910784137413052234693620717379863072381840620509027733234772135457198947604997264137333098423388097042567378300911052598458413112131223730077543688381325581489558108643664831505297440147680764736723412113254496323517652726818933829432937163507724735939220481005620854788195748624844403854495977497209772302610970242769827351692166131026611001971988523858088827791733168453049348813662346140938682323518629078738518604376290928118698796933540220223545805177658057920329007949557312775494290313730862081299408883139271902293533066710930627361186109372678482239335379606238732293064355093544535816112628561563268142629475712191513780787530910570281212878947261705877752864460168449603596602984422666484135573459236157039407087511431361979934409650913464759454044359518852566275005086050566134658663592880854001819716528657718410045468685055190751703392482043459609141880168095897581804531180738936048862754950023600518466670642185750261183723432438938025664325209606918639748185003473726972297958891819066985750667661943491707559774430923566955954538158009969589986669621493123369589672781705418130913712176367331593407380526215716014459211844252917759131687233532231918858000633590594174122774356811728729441731906168829481680882388683161591998149960966555152492575103341488001125219174998712743105434458217724587860272508345563299873588724817498217224127946561436956498131149232061636242763970817270110439373862149231757563267757995741811045740930864837450428030921712835959198413534057974709944699663751358073118762213884087734177482272220922323811257425172039775879049157783098889999873133618232378776329244889412092974761223667225181705005291212875837590798676301681143276535041321365187404044220780858788624315117033762918673355444615149040110431353643525945077228852232040256825036167513749999754756129652105454948220467600053545249098124101576071167084318259440733322086480588052144449991092586594472413629505434540175876233168107169050751587319497387381273038336624186585202723203376859057423497307830647785739235327930379572593813985063933172163972327657766470390783325295303413913680824472147048700986877286689468948991632298183975303125430833366831314222986876837348979082523910332809409824413882953022553763489460246173758855705162663645496864441421980862325134301777551124666184645392475868037335317656356487844463979718430947315569832957584603132717745142187443466366962618653720568644506041718277126664784498072918720779119861823537547883405154318317160826908150654367274810121215071033349413468937143752465110511462595547510154786378047947525484542686046925590976441304818043483759086120900303542825426177761699987875037743936169907715406288863582731375952157385602394107702830562880983968469657135169098012247275222622326917843183784177672693451806984270595953629557355441668661495205828157710383480897976810306973239604907195436528109090257847785757652160193381141580980478711608332149137897733593264269043763859984673895751886654641027094825436934754050204721362085911224175294403701868695310127055938209331307233232126748302717916793030851952828351163351028909191666887230334000957424173311967167232515854706265827784717938051952972252427554328835136404325535343604215029042870793961553456368252345016795809566997054063687535713031667619188086965177151636667887412778059657279884231194439198500563597098892014423261455491665469611117937307505202877034306024202652160684355509403495626127693736607542030920975479634544300937216036664033461783804991079471211975351665568227032189778952835740853868801612922828505721595785346151107686708659096237682161783429440368967446990612395765528948673932670474910455916813503386240290190542626922026593772348617076157331428379990031276177093357030925091143675021450245542437860064449254238300584481455185605824046515523989517241907803234639222195060702897279618324456178664854983607428396903643539636533169814725779252338273520332006666358725795175668923949591937100722891451841982361422951245998240334418339434823890201372094974251456393595994057403026448919565738535793049696999509647306555039808630453810011527971179383295642651925554142610298046482886366699479901110295023528786765951094078631101573403564574876799782035639936734169021154295615459720801025332641333857283832738137320802372255318259983628119357201586391127535529956870994537625602812944592682933104840461490368540312038202989821977252087593400116729284463088382471828085350833142330688965508153894827465699017744013923482481816279384096561268954501453985165809700793409706588544100510522836323816142706992081749853717706830922699141949681498362123314977654623434465317012048397228680498038222560443090856883838930703865936757866907810218702187569798499343582283517752397836293081252031689864057152664822175112246156466782091349634031844770695158777433463946502077796913927002624405658138327024719139246474550134493626518954532253059629909438828955610049442159568066124258517980125790512219962341840652982859984724538286140944748813982981434410332441466710698109859489245136397482451937327198145183539747125637618525224541232890709807217959936756276098977277796702843715230729289380505437677154946492970303637574544860892731019663032647633697163469395360698895906811114437631567664321186442621281406204064017531267281914015586033193379939529928855819717127936003982079167858626636297137203067574708009164945976587244919458379971563019315153703967542992932907806426513564381592402758879227676241767197563715869508736812203561563262344430768179460818029342253457738117341349710277233421588221914499832111865479479950547393037515486730125468620650687153470659420107826617423855130197282476468291888103626346028423260328265769181138199309123695028135413190599160189992070116351741760935192223929281141541950775330360964163270243750662879788106985080706770322128460815232003784296543111424668238434666768004449712054579836391107073487228918434463093747382000237695463356053176720230991427657735119729227880706230699264548285189516172093171478711957854539645196204170334160841682274153841095601788924500600920031087774970866602618155433910818005755879422209926179647717950558959474437839882879244886938643719256131403769798243734580933646363744411440543361151024993032240588742007730978013206974030025433845582294030011852196137726496870794413190876683931914033205995840214956403451825480179939830960467983806350652500956416055513500433997590969193639220271392185623769601198236671076343083684046882563604565188836064598906913903122560035752871833408941810458206666203982829489022243280283802707623404426195823847386289083344042999696125956233210252674804753482174966617418047661855363619357505979529150126100296059445368337681029747545377435912442042880641507732268269057666185176066463255863518768674170588010526093634583379062336793513103269110051875749135645049213283218529116577766166025928272324478873130923106624805753564743378833187502195119431027579258021702685665475976704317743388923675051037461923736001789343301757426361711015215849422949016944430476170122417667428095927373931801616898247184855803312732394896617980705279181807694095190334990857458655111599270085290551667531910182148601948963030773483142509617582813201133534274775224449761245610629257675773343001744836484058426985212146785440667699939255602503965925173079546124789602880062410054369281331482577253912698977629104068608974523891529598155276885097910968633190092878919821089098146435824618733677261729105143990355091223121961238325009934975378239949420179124077405174640042903414548190544598399098293016307471538152396028820598788212010217793629203524165798144490733009700193193775629299404016123800612673684689484204140220356833649903036312642177047464578472178413889836926661037318912691558034960391437207153131439754924106640632736068882812361471278654078711810198318969699599726456804753514460883113204952407772861710789917545269269186579116680581675275452617235661050662431653315632914432540607733327180672633706890403850311390891437368176983644343569981298313993479784906340222704073963873553136180265032056438089978624440631568313927725838584828657648978272629190540547430236199476676140711929379389427352725912622908337705651425466009456769624890920024172422859324311784402052073328121643842939527498513163577610839912326389018528770107702714616736040458313691713319890995141362875771286200112457838924311815312037409423656525480526478606882875135247680273539985875481002635985989737110383369780391975457026338300536861494996709347930388249174444499822260443632132821431292057686818521085531146940077554289628032550077148685812458525141287817006000203883668929134550172964919253702946645975885618247037083320139924092165275580711289030939483053068282287330475717611235006309594312662335107730579306374281719487109946409758665537839831479759035228869363111487920836531910894559514355238407820619007448886972138686870082166441132924970302647433206381470089237093328962573483997834559940236093302682578222058939033728403707169676265313176176859505848101424973233826412955030021752304699917179994130850288201971771504539269170666608079309215340179177704916061241982364491979934562623573290208573558864403393979890427428803511488181542426961000927414020869075597531916478484233723637299327830622851413488019383757516135724106699970946771063325002128786993102260362288420406283151371329258931849988622286449075597932227868731612366604692068715770609089824438121833319405235289301869542353095042328050434477891510182661053419554444251877540939049385012820898424731615064514817599614717993631494829827040473553251689260594610637804492597463647496543402738899759315750386367668235664097636453001828097587081834012845824865787205769730833925566572691069713460619196923060472249800129994051302791957373510130123542143568139769328109994946606929070591757868366046348483498210621942100365701588321453452344914369861883229589546715011196783207627188937082564414462451310175670978135779478914866336112429056877403944849137447561543153539120821827770491383746509774546948581496276704045370641248719057302944577936426437160833209973522407683661469242833877616256620944017238982420511934377874626803785118872708180767117679722718932118185496964851409683826083097949241211122189698042813430601545517538058035214950376628904213367666436015182708640501817448881347124988059472007183886230691728038442961015210500811714891699720294899977260355009613662885939046305769072742138395683966478728762256225405631463128690932353756146671267431413413357143190992390716525415171868729009473706639333597588864649568327650633360288139387197326539538265993098426438852456533658289022778165651593494637567868156757849679001122102428160935579352406653156357235419918956091927122251989842572953481202832391108057897839208474918658286362732714420911586999104072420074014550468853321811360404767274126544357612004550002094726750736841053947807523097035557377239171700453942154614160903713945444903787873088395066040537238703793046220174427366447292557079636075042348061137189341740898717193880214998627630299657820296631478700426007815353845362868269866195764438698405446926066141960813391454276311907059325978184036671384404410105925554596809445161018941901315242016567763217138499635268041839264870710149045847025437642089898648544505541736975451561105574268170826989526582023779144457778895055880410295114585450760130712927217070428509351011487991157371901652791181413495265742852907267594373731087253139805802942594610830303031706961743378151678792877480641326585215916014331536843659932802242704928025817595275369788657252881264693449251276037339334156235379810241175670413096727406566472430257769563681357163870936601130457818228265409531684828659610200583691448156937007961423057938856410157490743743548146333580088024142137529956892213481885843252677241316780430013170072772075618358391754275916508178040612949410589854943933481752924717181613123245111175663555238133212561885618135294967677833204195143628900095885537916414591456271039722449204966151971374162866306342570681199061507885139891505764409988004807173648249903127291184415080223673626113074569843353214681342245097061807402168654932746482655216306941722327314993705487758200375382419336424278440062783848449052813631519782903670060905000065606621568676331216735531908743373291568939433796577063856419131156344266586644545866926834108475714274997955045561933205062085896108348594875998837843707009313178524080200277216244975803647524305442443755864318090906244166071705070889053696956856497384185651749694970974314414062790587618451722978550392196213669563126875248289069882960250264590946881925735860943822999762294281089836810804572018337839662193115121918128736151053723326998667266397642405621040787574241475910066689292439162322348265155939968977203012158416439121387134638230790576569842877141119713214632299164538113279602753336486941599545000488724125430843624781186516553165953173161251503113261869174714897589997500532348377905739864120938306807736820979480773780742613242785159060421737161081675634990342389090386931946698510859319166591138341235990144990695692568640185310358846300818426336386429844150862058802542879263276721186106984964248501048731407780928860689851878530440425399793587577060549715528837132809148483090432920967351058793681920204913628127335110510693714266946828115124763644112609050631707984403276705323546053993135260381222267263239242640625089789495686829382524966372113883630322247288592293455565548973688388349658218023802268641747096741870050764943716614400211783270236258604672541844928652591363836287731642642534031565413739738899319450539019197047691134447989787128297652035949658272150902275883049584172921306646632427142650826765354411201968234469570679247277597811222433323982322268064891209599961944464516308778437476449981815839210443855582058345412145506555562820499913548975331347049869928374334535784579722871275333487386081619849836083897579097874610316238883040237553504757329518868977217021948795880656173507660972669645524828799383420375104390275660419418576540329605505201539938835356343259857742043521359686195622464891090221098175853589806875042007864027427981329159803549992111660042809627992302625674543449400247515137215765248230216502870880813487824362632029398123525527988304770207493166279395983315424118039482643963175933054907729694908239270332806223032513908398689964571286023201058183491197538808991993116010737864885351872899276633270997990043578893670403188311542147477764015995129491922012578412161924266900569068232258390246752381701057987885924509882496831067486367589780688407015993026995931307634116326290212285506067016451244149101194534523216205775441578036579547922580432593408091833527937310847094397731923278557562148051785964458585739742437768320773952762402718342901798557485081513449928796778688929643332008396061428626179418920378232484017512072138769538693233546835729082772513595732479426358253998596094624754408982709136992194776985426872945383465451335560093526135553404835865753506925629003025886003602045146888211396154649363793206119496867932463619332345815284028457799111747196047682087363480640825456500602750164498890668382773002441368443285107225688939342468255596480958031950327847115974429230425706422371443391332580946928398003665857021426360925565049974597295694461481652508726813472365835882019381092510632533777946299118144930026717960284817187718567791591431759456768015826104426100045558747693771388559002752906314806097974975691815046033180049575934125402349493477495673845714451019853432671448114409400704620218849834909942893334139346689090536408211345462937311595383117472259010823291992109539206337088076739627204222774064343522697981084402543427398658186529434237521562922767408893619930217161569956684534664566457702453056724973865210423231360974264388202456095986805636886822436166083046632639915727591562005554930448731169507682472046028916679718223465751515330344815345617319876422007567391975690638736578437264889546226742202515053728291127493783819417828223388855076682475576518864363232827296651915174115973641117794983971124563439682536355943524897499316414567467583370219164589743982592188648371534513052611167157766065434533164463431197863812981164586097037439583946704272942645723375520753087255692882363182173142489707769744452951299480177829972591366873029170791346755120623687948169726041999161637804714421806843828337640559136032923366736975984364718530506376752465508246548962321371460036137406261660074391955962769442242570276502716333598670340259006408667085277947132759870341553969922762784003961012557683043785756778710698897556752310882288172218496841934787948762577910323745888588634455416375935203293358925421653104487579138709850949846699850144193569365558709656810373426293481787155392754296482467223165359947840018332964602587803528240416277001891299110112280985126693494538328355468794749694179768656195687990564897532776133076628640836294399213549852085430093889739502266880484770709354525537479959560608567109009616105942831728587879650844820294952343008821962871713697945779015376780013748864062833600424463206180831985627258318002227789300741164728107373922872869908730553784031447132281063559943223288262738714217080006883134835559344959999392651317607607737587872592314473168134560832659652032595939958249179813776631375486199719276601073305657892369987831800445103655951401087377279785832379380243414452431329137530133939633232992679682774807810792549603174436297777070592951830194804714915914985492735117114379873299800004050850723678398307875929295807524725489259609366043354934578897143435676170331797097038919927870833302973346223463524702693980204883119331480105877494553032721198216689328551216595471827454658505202219713298537068031833241282000978295245240003827990032219316024270082254256562054370557779631862531801827346140442452281825123027877625046360913756772860899768631162147962042453667231127462177994562041324963620273962562056933445118443025104201800349432734078529176966831586247943396758240805021875100042044502872625424494241570797780726302052840660461679370450949446960729990637595684570063678168236143793584148515889916707181920157242972960919939610552828664244213890180878636879872154804674541471052721785897670691135914248195415876591529855942092231215750439441850421761589206055814988189324199511899298653195812171505080593593145324879834971189451174997073282571381345963920886991804931536096349169217144959159778739723195185551008738509932112184438904758119206809436596307656111304534082524527552074902177970258494552157173817298220066143319287630325188427214980270524873388765865179201544249874204518625428453173814024072863068226949542650112893775138164407901271077775289811129134016368310535361104800149337968238551391096328083660808752970157800118243904621962058173117103049151443697330517237242488380423218767889340694784946843142739232048971929492351843741353896738524308157894052692105842220821436539321585860175242405294751848168966712364791580094054072495596709923550116058105533601587030570007151729921063428889024328119881936987094206837824592514822880669886048173320115240822634273895408862177123369881419826637176443882817705691642516944014658578400347067062532649602571593306999385170558685959343332904509646704659026851530772209934262515517469699380983366773168250656867760023454148822784816799185328708925991831900096589478628052507166608653787006671516843207010047990246953192767238351408154728890375187097390990612723061340040415949280032509585424624693193395380648760636371058678155423253337916678723241725298021316862944648330114624760370723112929459607533061957910208685792797364692905129964624653126347151510834723741484354056337836571332346335636973268017006095280159581742633831705647344051458883833262202132713249752664333397291739618122708444810906311886293550017758585344464965422817930883951149768204103592397790942043688422010007975099756881518809747887765474404139428056064776288919961999351544012746367217553362505950022783512469948690067347649314948321330210835678276281262126708844447213403373195287811996352479928958206265506972348465302840221024524926534378117565667380006119473842985271294413112523841373981601336325986506578872992799878578693773711220151865998964547798072803577393096822075446840864221419917792656539888976122457917641656145667925178236670889122683603151414778200295954615699582804867570903776807992721426349260872069736476481830215692333698070469143604756906080553541071593594534913241554160622921325146446601545511135817274161902394147136489367744683983372028415512939552864980100807663783378952675424351651885671400866919669154387986379646182329852318649834092624059851309548929360382451466185369874079478788129535485328238045507053581426838564327240499480165245028899475059379514264642016935884981956434640423479640704895076664482704622057526313732412260487804704167580187261253698852013084040940352597758443390192575319518461752760582696047679887764731109457373101431454076221325931345423453062031142312959756057303600782264260507006904821061785872570781447637418321320058252206335337553653388910070555543482413917829722747991063883314503335394597316843546861224267583487508701647416163514566829574850025135263146751789919593255287225800644004561317539069877595020032716488441802799897987599087412764659838680831596072367893686596241451929015672013606150792460693703611756914548011632588557896500415466247650816552400606212454066966695953206991999001013335815757476418850010158294039291049969195351394660719556541712843564373562386329844023964152915326569105683335686061126452390896315869199739950310992705859441319503521594581630603531213884757332354531748873476377852882016873003260118722306932113756007884527980524319431765103257146884010251568780953085653359886867852016173870275162944791833340063056501127841437584889809856483579607046085287898847842722082338261383901389993408683601439925666429977953749557156263570466296034145133359246801045249526225128842864002697409543547189294410367790676923056386639981003746161867358430771309875052923959714093082732650999404932727315621978646871119182635040972502762994557635489757414930024751507123808933661067704112708918817448783746654306837955428456742765071159253738519353418378299484084198089533275757492442681345721526794722427996297718416680993660798181887906163453125492915887563108373651908632288165195262244249301107837589793795204762065787306007793789262759141249278005250969133756986628348592955695854516465930623616524461161991125416061956301085174042492460195918165913123487384607821939899301942301557226570444427223935816148144393826251131580961351983334814880991795370917290389353225594014473782283818779955357428229836284995637734488600223829724608287538749388455007008299105488509719524139868299930681654350488853777674963371149117200643423558138543071903841085580684359139272513940897703047712964632786256096976371198246145118731135941405136604936368675551708038916934116563619203615365872775982314110951509897997074144845952510325997315756245867555792798059642742957547395713415321552783732172728229284194031205716036105063653837013007201220899485403547632110333935033423618013356251757854801003458868221196178223641127147027685770826926207217145186249845334007391944393043602021050050132987061425791517465433888757518686777201634098610371651118565392309819680864632946203636070485043395098344932372333792395735947539223779748592680547208798858353439121577456329075035641803715959588380678914745794745332765030661090714521328029665896246523457055612326384730753967090447837482879781233605817411851021337995834581514474968604991553881188156983286650865651278103921868260229464274612040185456765832459034449425865124207299041906295451349446868716744148260550625233008683413189827034472979856033047885055488799576088348157338703208835376521592505021288016325812159379010442693813784312266814506662507727427167648053718838820377891547550809902762682153067880058774811314755949353179000922685434242479533810029328088348144356705185257660869673914780708927960219975482142248318807542885768687071825648654952856356070970205124091067091937255813720665527714126060229580537584821730762639612381788710880589844241878674359594241558202421108573012460032695435378730052453634639552981106803287893871555177248477012651707656223511700809991414749157213470966817805645153031078447723006972487826123296396456907348708478892841430662876654182493385008991638847400144879750751091983911483256372823669200064639762549373034661197085380198720904092701734836199792617015750556064552851639692256504016427206683252413494541883885999928734118552858586541982014873769477318111561520109141205519852963297390554264492210126451486729292771281405433365277551779774673835332052113743293789266327817697127731570133702648840255394336201994013818513393613351126441976711651836028491639041122897318045291602092143187751627954088454533918405884946254196123786621654763381767257216958057674734767550683376981641427264528538576387486405385620991313054839434417631347548106468658397742634235449576769317451178668958863181878062884471993602572592915328491329252402448085098348992234498227684012367019257957980437131597355121663721466854934306532623937624958109391416595052864120683900999115374217517548891535604583760218799972209983106586977108283703779374857444946990593708023926004564008872649669566756484013443732744323805524953853344626220306276402312712580870247399197441561254300492249952706283961528635333881425901348515431076877496322241080781313558556197207948494996954628724705545498655911814782638526785458392930963936643456490364588349536568404390634093527612066371349331256696414840528671529137875733120418487824136930266317871459816800095274748938165902090097664800322220566198477355141381236135493555833223643214315828754714773140540592041577054399801752102876048648206392995671460664287879771542012163926718457591515142904112565472617123794414496959431198334376487326123963675845279449893038832194959641279248517687985581578905292214590243866073293282264539575276464281665308120088647035797818061278958192632647598743542651175014442779597079504153883705036992013835703920053395647372744305412700825964664029366540735513821611047318947823237470340146997908122333077599978975606073367420840905331294347127565070445552618866533458644330644503459617766083679432532816369181848446324137245982356545741062400758763334037665112169035729082812878232652487507929360116180810609450522793914030632533868661729951970865437902895825738298407954658279790812885262653417698193917342125370064761313419042175334688024498134969437225271485742497778506760288463368126661355183665615876316909148735356373816676597498153228013749742587383976095535099254936398215148664532864971484570004753824203130938273447983052065189134220935658421904492525689977944399310492509392413033557737315005642012591154804025901195227112132778455663805625620320273512024461827119804246351917948294586376151556738487579642836175973205345413841960025427264458373926008007150939494538924999787246848517320611785136904760376822096861686747204650258815090737453585445510543126508029177278536299037600631409503423681274672548595977779305288832330295406311421194886063157043107333886080078945213169095902494372963681320932418560567053790753252977838350243241437805224914201608960396863571282657339762035658254758607213257933422926957072216971610499305203354614709092167182667750968818822120668265959737108430812170976413496250199840952404890897257008602950398141796990599389421491846260834321107169322487837562759309119775111403775058614833055944686150758537765875900548731743953629896418188528588609821110310067683504816385482407926373337174538822683662612685460394159836691072129679803644614345785049476391539662652784123738500736938871579958041674512341783695414643598176000525107084961398172004756993120913511202280468217094708991380434281228714782012750051369876020435592553274925809501789992651177652862229540273749676237312925744500710339684718365273572509226719152464485442503416681307192734668339212834340334517670693310773464532239325201284984280405718982233250674636828205039592071456130950870325070303154544901521920904935431973393418694602636995594166946655531830454732951621391967189401967921656120999526272419998324202255305883683328379635550244881693009983186674716052515450937025700085914632432102974454032015019967110718739664971436274485767012851577372782328047980753720967038301802325171158393782112747452258885605112970009074795062813279796355177016063278494509474219510282378034783656570088444503179064318434175374269559703219056656583405138996961379608657391341638971352217148994546868550753410404949991944023992182948121999940418944928955540073561925582862568031808813539896507981782716842064453464487288096873791101773630314469097588500895850606994627136844734323309283690665811071619794501220914289737439824392412296592851287658237165293838578657752540120165429181130648228519161230537268086325063354188355078569002243140435916655582291307005736841200099889944032634946159174586491085902646723651227198537864860450507717100048694704905382795035023723138652694969170405145340835055320943934872816790124486081770313387500605790100065083164211165465361816104583182634643311817615097804327058281417059346450258057157818719343531670642438060448140414743774264551126208159216309917218967199352469943084650936237614417686746837880940918941796403438421230150376966477315946941565944195614587556653387791167112426717537855391726969769336624465869044810050703232538877615521931662920891929975189634434799247609089264259393993557023301025797543240129278695849452856730002928561674176303180945597299633146524408339887895076321031935144015047697029535174730271310131434553377694009652777307712286512262357519776126591967592191093484277523535860267730799812863489396882253610735317303728486619071866512834042508465075234706284236146147453456812243470119336044311855386252820022112628392579679950408606267848624743908382371604442807554879390035108793824304181465563104462749571714113442174914266260034658414014880606364184434154201704496050192113226705992765441004010652596759964186340373828737056452218948151569515943554720458125870137467758154267780279363182148265916815951011660076360659038911912308532417572125591732836845604543857045218977289829311547812374634556700890737579783188638690539359763867137874532439340687453543976924307597993010090406210614819509352310152533170023268693250538404575576638834897236448194466754959007224214438520967300770722720225806103845233862386819976020029632567352839656963758350575525012103342764084672036253270298931311524872777385901190712363084049959024987599674587923551513692189430008398634240289387092293389712549957375347664519499393995335660103026757985498758325226027340462011787836222955796110620761077086430527965964452866103729253054125131978266261947054062179292486175493399964629980566406298012068418210668883121458373595331657386126959633357270302139783727942965491290674794345417846813225823798210658221273386531685436598777641649993454564271687344923633444627455509659370982043025301542016922236757959673766789215901086551327257382273405036954982611388221408576785028960102494102964843738574571512548938642169814903928670030891591783469765443472744556976626398131319766120882818736694288261616570632572691624733521717839774301395042478473050582328927594156697139262632583473877249878605822158275195315859688433192473113186873087259368491688766237121431058277488475802607445223069831680640784068957242174837175508727945287891321347466052922106949898043274498897478343591592787680980717663778506510541971466699931688735666241435862537993163125795025694052486152283303023827427666325838596549549609343261541438426810663232528979757141973980289101264186495252919337988127087875181377719449620425098925949700043387728160071002283018695661847139237542294618476528257152376745221674823068374385962839590106981353757321039653218781646891490400693394482477244394791000530470375191173584619123408249495592184848033779862461292755299735971591128087508312366346294151971170997384777379757525659441834202076638630497650375889490686432704717305584579593662855269129937967533610448645993739474426611949867632720185497215116557625074612657377207353900219050065921300750689371273646359042188111249494604370849892957296721589523296819209235501529634910240979041801242025342317031699817998127300447127517811045570486065280600995453821989589477117696627248331072857555632481094384558545417265389704328524135507031292184326869979397471406836869764487358014265526930220424243752354420405305310796152568157529896645514331518370331813833428414673217800181147594264090970038071732632829783904843537737783046131047448453680578670787185392494733670393278777620689389113206983752154993039718226547691860203855134203588211949398473174558071286463927191530298416034704178079717049269498015142031291158663691919336191792203462059095902420423590176921445621334010543967035632357421231191206518030623612725828797498936114275806452293177803651200819568364766441688628146242687954465326891333702803015461821069139866139435419604028455878960852624603770314531007766696789772238040727938556329844044816891050133884280393546016955202419254691743516998134534225334893675909232078989143678908450576165456471217575088285760400224514716850791693287135625012188281392703767127744826955454212096207691908215301018162526457252008841131819620637421121458103302759961029553688894572299435354281495440693038762493056026916823901751172552458293829489096733003749131632434733771300235185041151755502134734597672589463028317419943017536670748320189823689315546572505910281027903117470784127046322021527165254495060733660502082056924615553104310940517652327129642231444216192966856216022851738796799323591203429595146768410394900685985662861192669527968990398217729742592656502051607166838884478290146456305557518282338270494507913985204549979158288212863315657170486466565475626481053865477061758140454734101351425499869947024951935718744575188490720602855131946384313882256653667319914284875086232526162224983042723489586779800048179885956781302130590877812351048811795757476625888161843192537402597481302986776694371052150747940711723653636145808042660531054566064512432494716828108736788545811173642460934739827212657598719675121739477829976581619796183601558172014055941290284939563146707544530010599264281462167646282134523304546777939060338694094582362469529445209320514320199095399502391368922182818057474251506270261438119390534972369888438995898226524920202587704187108764027480575493332599981363404014351363256831964002804450012800197248932665631361974440066705017398365362796925588374431506457522163455323250880838883246632493260877673228626354676668724082482613409306031510938193634316268886226695252083815388546008382399772663613358079971849580682385882199110496503813646976949024353017464274942314150400896711931079341297539936088435057029237938796322846495105143391555585859046851719057686418197654918459332786305295190652986906718063968904409416044543785423833292611907744421846821211346871325083675253831691984721734509654207577022099924462453901333515075445221779303275511150265533621739356943653917795928277845745858309762351994438402884393000905488258134520430630889728496544549333109619355446260633783481471994997822987958384456647959407874982995618443130108111365849683736934809808982536162825181685348272461179499207913960162493403891953386635134145697306883982983978234844254486732964162594487062042942575962544779195546065956666721187583838319146401957794848190002705637972899098820004695741697020464743778352752091348466118216730044155630117951300773482089725589890716286680882553836029057536658198222294188701862317025189238650501423432621538590986815792215963819408601587571882487628861782511573877572812400167087336708883359862414038563153500048667211245014723538451328675389484823113883248219484415798477010798487634786819360517925820306362016526828529749493198282748238349298755986580457655390530701959130132817116420459330556888744650018125796317421257382604590262127964284083359728123503076294392262734762708708650501603509148364224505322189445868412802840756684487965397332045821482131610068137833431570617149198950946752641884242378166222001212250338710062218882129059434597545414111184067861892351281281710454991680621364159302749470688973196967114909676137611778874236871007134731580241050724055424281441030801165575870141024517420045733909601027844981160437962958095358684914942517243739471013982605256811742368713653853493981935834596691977107839961604186589709104110307350806876307682861908015471633138973650636413243968590574521060706976545021583758794661974857632525404652695768956575249637639077767893986096757470794128148792670520441396693177028476694020370844929053203621733980440630208125372500586246655130193168945808697379946098081361385383822362022016361783348188946353670088893576126590309697217289514235542943959672414587955516269795716183929530129680009095075999697558555519496262096877839744842123980560734678116409787358391803323713846684638874705145708960160073960058376282227623194596228073125311187389568116882287320139708162436198328334308289898490192273658683162541647598368664016888001938346030325993709642416772473237807218837227934408285970818983038127595920514673919440687349186265489777267071887116581172213093306069593372459863055888692218168776206658981687134099919618797536596308420104850099968525492274848319676195899281302098544816780619367708961212820878837728031397498119808483790684370593590444052985444690357696550872467387820867729644362951000653456081560789767133919789782176339332817858474279402726476351665587856922605890106769308456241394569779885881693610280837243838120530545674953299802467107001448507347540890747586678711823129667096276507549758250694328192431929863124476910163048373929211602297822978954597176554952336758134556427991401269480368563984632039081086083037768119372755931274021153691574828582558391970150317052137429152791913805535430135601663359284000723107407795691656451837664858179536746329065726689120933984668541084659488563408870982247736813794101138197419521923934805240748324477811239492337797796788727440767434525638653437092935057001983043155693725654496027123504657719878702742523247688993689331333593297466930493815354429824181605264646454221450678900808310408535259356265619205135326674267385171058303256208169058629304557430664786207902433253255387841977599875738440026281602414298182950752257498154599245651094552761455679109709159220498561308605053192549966550546252719142420878725787773382306844213611731975451019020056783332980464698420342520805026465000809359207636860417082254189058279358510818801289437131876560919823279688815142856822012611837069180932838582216852270974079936617775391854006617778855246318191823092838975254444961335722461870188560392882774293023000136102594262521601330694531585939471010795581977079606221698574072627116111084737976698738166098087604474309871046897042222606196482482412385712936640112627383351366296054592969738350482015632679915292686787258316477818388213506534830004888311415347984833750240440414846429563839969497883798308008856750961369211592891978419803481439376653058907650663818545247241090973511772068823943080035240251972046390453976667364078607280939245694857734805672232461550970718839220280738517488159438031612494544324930095294463647367061692625625830676702960147404089150693769301348533964252506783523229309664637649339613428573781925567578783493145380140623557294167528598024698807576002827530161796448123640014629326678989993141557884405508222231400953867975559719608261837440600975993408304834793810624052948017245317853232543434422908519630300485132648468625242755834725101545064569286700132021012260816446512209502282058788164483391494266383431861765834561009029357273257002938405039044644549565863425537597723714560847852281400546783323210775166560495696479242501799880144952465204236773886558442707801168244301780087087185672212100070442982475741719773275692377063497376387406461478695438206751870378343832585913501945903718568542727520510158656485904049489265894922417282084661626754061606467666349876907115314943970215483004445523104108779057638155504860730944308008773011962456378676794461325054990222446783587615126014648524426683410774952774254995149053499471396061100827372404965711770671875836926098348522523781230395876910118766270242709640675909907422333147369194508596917919111448804070494509845953175739192510764672090649175647934021050354742717168394009747912886388309780881556944130142372085902616899158111607934860141846989752064545099525692107993967618418168432505804723500584929645123992324817638055151145168385608291946580241860010599787388204694066999952159559346498351688690855918321618320646563456686704792228468616407525760352815926994788796189906676347107523117596052741394755666574982667471341588533289390687086392780048221413945025001763062995791164142301219976046230023416740705085341634923423333280009854391235223432933457588743750808667511903226111421216333650940300847266341030541325770749753151623172260691022841642541394831379416849735520132870116391475350689829147555342252172222519754763778176092589438243432147216318801612061715341641000164752072407483274683370408678033624545313649964254217155094942494790425417019617129800088247426521566388012839404650944111821555949787780904333106849610694627610726833433665269734868817482978985369757767319764111479307559806949339835172245018975097762723267034903235545137237409639627983255495405376838199997713567902019602592454556535919609891279248583490694918361164974979467711228680597804741093574286806187253328558427346736730595286235585657512856078876254343038557348783193549825549008134029854217845628095058028412918550250961198657921761110334884478545371086594970889188365979846508716533614780663999391682037012633468560743736101507896429425524550282382181582200232176323559955864449691171379887320609228326967027063116138023830935811896401226709916020286937535587701142066288876363362899683353833720209367291556206951065159786653160748125368871816594808486795733577055939049604766985822083379815915797859834951556290627246794027961120258082975118036914621420909555534333648410535496619188423060372546561618932845957456678762832344526505304825220848406076716114569463727125684460127730249441879898418794634232404074215353904375646895249342686685327925335704795253466997948823708949657016570731466724672862851651407182154693160415872389776508840038280172778838037931499001076953269522736961083487879167199857493473486985516382160576027516590159813012163312423996964949670122560636557010114630004537512150024228359241257276721839936890359589576458856632562086588688353170552544369571892390032480560400320662119225619224449101538938592326360730758635534737100651554534808853073028626346833030100224224689490946438639004383828940064174239235141331384683564965134448042655628491135818375703627879616239813257985421259928224613893716947887642486948715162463638141507750268717556694619966293670781342581410300761190150666184257169213072422109807013053584565202888240554615674992283618253602626417911624849077446944745914523395394006969348813485792226001219380394015729235319816813853204799944351796345094709620823152417063013577371177486833445330500646758716579053894071468498825317665385141389622679248339993269069398637157793219209573456200193247731735903679536711147911040323393910310944180857229189497344198925948827238845931212674972356743742073678361492977813867331265174347387751512299756010110248590934907529295531981195250651438323566885533717912604655652925683789388657276588452615616321325364695469699118142548504351305753609545194723139147421104172846425834754779413027865331392795915908502984238078656157221176054689921948657105727274589587279118448599430678612699954307020513327908949170591981533335912138323290796295432286024593855499033729697197614631995365020292104099804851500216045784374421089374596110511234525167913722547546399361442294147866467667622691329753493769681016631391827017325633908601885188414889700156350948910063319682014440968818048193562408498344435213480545977540017322949226683130077272331213115734106859517965476096605778038572833399541643295947915103831795252904047565125155567697433825006617518230545376663176289621129200970821462712752855448045273692532362963155641616693718412720475450773227255893357197097637196227218279568659817314219556971162764898193921009305734119946219709407711328452456597022330468109110476208807911840664190397876886410023764981243285160743869798250211180084300919841614238605889277236103128285770677378237276422157590765837275700582283956931548424720576485347101911404444263422458281692173347821545358472123334025046260173791591431720001710959852768317961737032667274214433173321710693405072456765764794069019303493369578073945634107251927726058816144351250783199381840071922039393509147802633826559430451259152742235312412244170772138914813365312133373668034688390679370017922238582818939881004786427086861559403340580637803643648136525033404554290279451388160353095357084550449092186295591393970445333171819221864275151492187337128682449660062816371685905913366560199200378661914279030606854672800593732260569557694889972356940282164979190173299701518790349538865767932664737478781042036086175535296469695499916176203904613772549503875586592732616381779050346529173365899405204111611302102443595412169533005307951066073817640334668035530643794962863647362422763723353519783690099677109704313523924519678689354147230086281994752421053236134146294428480295173855230632440235390359685914409048702774645259051654584128425729157199880294005304441606837963954508025425819062025646592076803722671196210467473217050200465173135552293600343593071904763798702419104625244135364132879279670549299167979470466784472747364898359790100932237626049389126409076763268521335090300800697295600455349850456117390269409321932390035858190884719151006737140627769701507787234439232046453345335679615756056641174847784129114453103984018551188976049670088531459302614690489135852444815465663159205087764361983596471508720137852738926079508538802698472584243780655845028726073558220000355506884369014876719577029231294109997439663759003219940356329751358653661479565440268496503748602152336644435057610520930465276274872877069021713556685375838481532018615626987762684475404253124303138568669937354815792186919187922769542188239410751430018510234232532803123210715889583348035024518310310950972458178713694810021000523959144834376246070371322259614260423424204026962422540858969720969364883775121614686638012969716866778565764626604596548745508841458791802902683664067113012387919562377289210290996263320402298373828487659098378730295576004013604337773394738550835452797959485875961974028122085497273289627572764814304467269226243534332963967219211761525636049405295230391460647484301960967326861344308171366239713650118053321805503359105846849650184944073325165931767657399116033419729462196118112314492975279692300621208591210645993823729595013173244530821705775087215227367288515350157728966904072169865249714960119324082289603082419197872980887545973052683632291822688425792643942433621901452736972194237331412096999753586143082721668591416397437005729963031164375096915902279285840156984824089119980970146438027972830001688402844891601719914551842729587205052893843488634206708719523308695737620309097620235170247809004578008334713722563155021008293302834636709318333839581299072937151976447885926362555468074627022303092020492123389555541854990852608709721247212238572562804717156972285456305026514795648560631308943797924993532343311288310338835488073991438259305553686112596895758578506463965834070337239567541356804840357587760677865861700875198643739392733521331867905134307884850850048182522438096919711141690244146175556345103323503586104209171434180978298313327299017471647612826188395062113373313846973561569320412446562739156039667141210611631899028577944578371254083625663777088703003950310029041385874953510110313862260557417690208906373157856601845982371155684007105726683153720936335378189355475872054702520954213222407837166876378232732149049613477597685168592001816177310676640231460100553307048546128068472493324597552024816704714761505722453978049397791985734971565294520400731917067561984883927984038633443378656454232356511895822307309222162074882531875444421703551663651638840192099745882930487355548465427921987459839198279887635245250030058435823900807898455249231722327633209859418881600285544378068158099055067087340667942307218535143724458459214329741464691254387360279173093857141048074396240331931633804079225365415925175269126121365063458109939840082803525202587783320248950885815233037873460203463973449318805729241192710264844786419138347141330151818254215376211406046188620053683509536061842357817140151085244207834419854088966418770667718677597659800888598729902438899659473779320070050439806706073520506642878413331459762303109403112152069010663719671229923522774298358821253341021091379561370969808960596878479226853246428517966272476843174880271566377499960804608565491277665644056144953740431443126308262753713420290477881460845137946079016060474582113556840116852485789877473554382648276040128403827595173669562934672755695841315857611864311592609765168227757907512315721279784983473017762188715629337338720203949156555566100734011147035539984947726970782045626654507679796402114826099505052520520282284378228246106233170219901436961181004156004217244714764498203544219001844907392562641955077307796681880022884114613934086930443585018599626033107575992580300477160361832231820804192389058573405492593044684409722597696041366999227905707957034837671257084756421628558453880597411810021138932170637141505020655596105941396656996726033584047410043889887704747695263788211481476695449598269295246469961018847745034175848882354230477905009978197775944291680507162542567248604131932077185432236007360350281674726746295448478760173143089182491283147278584197461492508532843323117369058915179611018320976714876520270570690012084905333390181948693770471004708688607926379442131124545775285498774127321515327533422815516699985029839477201204507165714413286858492389507704031544456608131486264848667365475934276492701581991402073633955228867301823103081108247333680078450633125443020947705075691184096491114435245636978042320906412474265030908199121831082999452046632936282424475854772357841257179009596523555392079244929480302224833964392348539108516296977834357315747046107224170210639321652959567344139829090523642894693408860477046702697795617715609369751016462301671314126463502227178940315575053728822175709411271103080613861201814682207340202244148829739235437833813837650697283828842208089510849809319230974832453462504266966108347845708781977512297690167671965715450864469183485061593671494099790334333105668359178911394896094622610998158194260100958992023500130945138123635870391020293545590258615025978636865305540397126676403714891872681106454250670631524006959063739893592397367529510674476801545512127723305643845105247195275273575769915270659353570657782379520251526155008691536441954601144151084304241408486406900345044011052988580461225770778153397396043916739945579175553312732490610173137605167297885755696866698184174755153929419679216422891969314947207500980497721406387802312830608202172960221667610847600291835533819256086872634582988769627319038805871377318546814975701207327718342572371939246776748985709754047523086179201255777851824712646397437502366708742640663424097544722739689839307018374387534585037529231235907467815285168063991993090793648268557157957535015352835808294543829290099611970478935664349324047151578186775217127392427924785210033715747946149722482129541942817012474902191014387369791941378297466409214695802634069373796088022797625425833575516728412403435708358589330129874260088415177014686429833246052258920386327600550553840141856498852505578205082985618716447869093200140071634451131031420323265562140606075046204719592035026133853874047187309835584156062995425799081290380764629034214735077108371439154609311491282254511190690978515654607791951032389611017687025703764517364068088516379882863245903589668075853312756361414068039199547873136939126929483625952236515080982350812056083448873472137410412984509595159539595600646723740132298246209979832096096696444691919241277124699094064181457704841447684934110634325173142076116467509913977003212986097419302927880155257665372598181286691339681148819749997889216318786873260418391171465622815064089849623690467966422659743715899235233713046296761407833618421368385581363531899886035812326874958681653797065564201161502142272461217515722828324261129298427942419305975397169285336694104603295537360258637207492490131821437615706578843769576637656200218180683992107952368970225597873341985106822250077051310517606901188677338772092383021169750935732316580676088548439722091820772070528967890547593255205982870317807442572078238148981037604245611836697153680539373704517021114935533867991460394365675866870698146647602550576770835437773980186389543237852996818467171387081574609800018749997873448773254892735690755206195863788688335429045042484657109636200721170559610658702294316001396446942162944928167115937351952848861257635565139754867871278150618325935884626568349571115701817512806505568569067164580825313771741662542245065145709016960443784862602052124885727995886146917609210602573240253737282101762677665356700056917154849790682575343766904986940973380791526844863993399576813002250294533884390410161614962155158484712843770055461982980482287255187512794400025022358288080734717486571547932259389042897039625026968561390250180558713508463509284191782303424723656880192022899009726045800425720056992016015485922115768877876853894530198993822661564154978658660610987796875142683533198895608198666657903812407660147012784882963406398744355797413823568273801430380622580985163324306996695019924689577242169773003188029545540991337671391106898373867240367825362942515785592032635036984346142006759063357692373343449927759455209370386610658391532535754106458715371229109164446546237967552709786998428591697776450845542448092065231438579431772670831252185624741395360643096402462338489138627670048462625421696368616781730898330127734231429739882638428154510216817253229112706065617314207177272153171142764169303894493611295764718691676651952485673451836988200523134334734161836952209867786173513919815463483977471498572425364982514867659494398380150958939971549603676210409921784026457390003160076800746575790489572826748301092494710970542383911171800481297683885315173506651711672095624409681941616575684610871388579539299361441206977775280676275284037406704051168104067774818606495204228199826115588143679329567387923731072561622509379826355597792314124097339299085728713410355775464267743501342918790647363153263286320440194888217550673908821329010105531369086192539637712184094922446088627093733803851432481125906055464220014222496514451160095048680019848862483058397002254107815466600683523086066110116398822876417711535516257401343941280305800300550185759511622020671640021136420098352599693914601212785620217839581239727335402073070317380230486019377312243586439800359438904629424531147229458795301771726962793001615846251300488967785611077879742582272186586432803034468302621424888394069109301303666629981310812848268832937163900245870383846689006737806135362213457740016675419545833457022117839980956247642482875781556822611440177773513618490042741345008754152936526470377846529193745755451266956409486305016230897544086565483217148394192222164228366383582364633623722999355637165413094687512457837180806507278795193801117369486731594252026654167340502096861687956795763560781103857216236324090055925672895843961793751865804121802293864091932384290065274895086099055989012010224960066957945626567782479332125278546974663424046918993791700979384802545179348221805668390105769985548689360038465753149919267021978404468695277027201120947978690921459902372282518730800058193212279445139865871514929506453932885586909843358158021554143964337369863045101969418966613132062197908691269198282111437335743130378114647780448672711086731780646363755225108306841411805569229331012778940704961638084063556589616698106050429437911722295520312596141482674192776955438496668866645821352501278098191571055062387270002322888320259260330959970618507497584767594293811571359844338606443529987681790687374366781333093987761303165892395914934996216154331259776662314593788305281267844281515607978525383931211825691047320020149933821543397075910272884620177954610495625309705962668783125450756276234369029924532803658770044957839012402952886122476418134113300759956292997266129392993158337463891503671981057645644415187770499734778299249299807749771448516408424002158685654227028370806579959063529925064187813685182959578739001831019437851995330176171690886750594888915857033082098494232626625453146711098733910571167586779204346227457346699515738401605700461363977173645550750937811771185985515678795701276588027092914623465606960015545777004921831614308555494103849193837462117972230980582155821388399762544236680163246156900205714003880742867172288542622171481970324291938002803531473837117915116579729754881528867482674151116067916074660496256896736037041941135474823410530827737527827402235789678755093402636894035844042182832386979844647311135669523260412074337986055330219571548247297579748249481089203485402353411420794239486043127404679957222768272695231846594295579783044573865660133773070650646137167496163893464496610837680504029353958248301312231658724155400649971065463105645534739013702714513613791136979313600125671029391366061108501601429592940878122321151182016089142432077025750474485274204518910459356528318586035930377907084777343149360930579610265101621824774845797768310330267826397658708828869976963757316186153477538146135299447380073554550802426522444548777386114389099593344919224613582985530188956660732317808915868244698810343102937427293060358779519399958999399644287097138580712969633089685229596895623951154510264984166778528096125320771349230148335691941153170651958283218986418398485853389997542522074601526935143090874863927627441369310678841596930795931868497181012324362745423934137421849588762332539477974796229656180020059244846486407177460885887461356291810898632347497588300450008773943443261364229071569120214677563218079118148602999838258909838925460379640977718215555956680194837522175790721459051551218164425223034156031990994408125355310859209058074765503976493345735158769075972606338611712446429038738040176443752236750122276924815147430974271298117475975436760013977065632725796296743938598386242994539602979368248022381414780370707263906470879744145754392703072966644312124218221696121390326307014376472313622033759270550651571625040274971344285543669771509844040112239949777954033649236523622704742519034753271903334955591707753638972575053196755207458376493923659213253154550185062956436087244223164582651803312715487900309865703816694168427074395974733312928533055270084857393494601576469425537457441942218547010461063463591084935196772579176004199637409494775659066235555598390074481383769364828897597411350555613180993662277913062835506864695288060627420398857142551439261218873751740674942447458629634835121347473254790520824079088030245588665871252409332896239233707191172520311177206081810826643302819389137462924307403499245161519224220644939368708170997425823305464067227732679657353105011412371846295455269214795225947432777076914150044636870241397463002867164420582890758215136308006518513119229911604722983781331613560595105912576399589338829385862459486853942250291603035282528291940245804942017694878093691467204991970501155393702112149240690871031709255885845905328810034405018433258397747779146378892938236821896308444235526133596203353912653460486132830255306704422989939093643350665113859865495859795581372552107328106857982860185953469320927190269906023711780744654442394309555404876217465527874406392066948254787909477897758100068637078530606267283941210938722489055772395678384255124979380651712065409917351862632030172853308199807237793487253312238292901026033860270704875663292069212445059891335790322128708891619729655119083978517719668123186845588733741753817333825701531897079827319650657371503910869526506621120950685390227638871071224046068741876589162130262066373489233902377589136482533204871468951366124844933973489918553182690253423044733236027756629614140627041010835844131241338916884265565390393198593571755408705934515011204572822314781598503493871577383529262883276843765404305319503066949234045216344776221180797343036105897508009148223271086430953087291143836597537823025911193309483617508134152768449966473975068791091232636533440455488727808296372688468109566032134998579386180667607187041358050064815936087361926451675307019053724555838271160182889357033576972371807137343511550983838596519439384382687599683655956826621542026808551765920214633690248643927759445861231294064252115030367247520393982565929658444186708455012722523290553072853030702262221018139307497141970996493436940993911376848211775206843813488046111677169168597698400250821972542942388785504439716614420618582424372130038387150230381510708949615063819990497727980821436797345611073593205356840968258290513080989373417894875423209332502773029669700247632533739395281763521527425749027586448543804013447681007343915032264691438941440153376812462418016212589478536472402449622192914058896359590586155751103429687960070161413595551638150051711779614331038715196539358055405183929656563440475694922873016205127526955513894311801110204798164393944539605882948833293504587564249915956148233584070444327319446503147890892669228897353314795556306519309378435226646892212103098222957016489726398223822323583173209417673944918899008659529506092144319494738712558155372566239579690052042223417942805461041426004844290207797869484191591186616091488338805391921187190626782755637586420728171870390302590782201178900042625515806359495564956900471058889857845105537060012355730572752825300257661644452568902294958539055573930694781381846975886036123402223217400925414035825237829045839214569253607431482838615515169794517584383900751977453993890437920108365066006935847417496346348799791176250335105701877000212889440661494559758348648557262293711665748389872590875690969189406920937825952584139802280000865400540903854885503808244218421097343343981307077582926052219667417804442050676715940840906335690467056415617933605014609699722544108054908797229539412134191778667609753894349487540298892168246075023148181576047351150991323038778665912416499019206828964988295081175512842270642673636987985417738400325042816808371135872044719394709124518799879953991646870373926309740820169697673555759148325264956834255550665416209497212205317676032641995236385688778220505283347342299194380356294907653652420169682397304061700169356409772411349889268724739363344889514017121738570809151516580201324937821460185972669390286535607701907860522826367311279907924138695863760740262008238594058779968347915657718961345272057614610558507196904235232836978840122112848161831642502424396186331522806395296610602363611817352557538957000205734593356209992289358835529199707014434643964461992363033895453206603766523658013868215895729239624797029450305615278101251800054580181273016163256036563846678401660476791421331105909900971604934927729610754068261738584325799507235244928545718254796098474964357911548173147591094068797528354944299172249427609424356974635398532384049485287002886179930856745962841641519629337308431213939142423900366633337208847117452191462304294318103151815808582049028933149228392784371385731567198360908167214422823187952057973674464171459369980224524137898429380369641060186268322073137817476756084945314962370055301666667036358634824169799797417729700363940286509341094729529753793094587331322554841081947886880015958897438561928410384550119645404332154923863829192893616491105409493814972643663413768295177424604427885300494081716481639826802358655277236093098375969669618906376663010505010981882197579860295999149370492957202136266303432417186017781441479115133746245073241390118861550351114147937510649695508609146643124728424496680727388087365935789851038570814455762387903670998545887219123776021725582586289531292577516470391880786590162432079107443364115490783094341898176620020142615500557901914739012729686716846543287164431158623589074082943933769378695613183238613780367266730733861581427553666363452760693981057840783088075669370267207977166835954825123533160792056317432408295272279737285939701928675097286226041501871494330789355930695930365465415268480589378740360609365356066364334574832839476612904817040936325541861426371223350722717241421171837684261604648131630617793215259795240093780757978810979213513751547718395705983935104690888269433217075557640284565813244987036109304930840362738213698819899787402259376895907337679071931928158652828922490046757748319513410529003450957843380228967878872103095033424674039827190599730882570460705705423822365044391775926998042319763188437582212494394377908441812115164869037718106454928848127791827815422835253142429079164208711229838845481363690307850651296690014253966431529980931305497325684672682523449346189384469510012603905110640288039396659307493897015850729670339501262304593425576829406659184692135816962237011915314831612637621404118832792703367681900520848622018099152756115423096690866508144185976561383742505319342045317842825458631315064300247998817090927827911126406715430608730508296256854340621375244198333882372136029927474999892305311800935373168803587751972755859395372189183915078960222740122740901963854309169162613918638520734688506054861225953273320689241115301357486174269594989853979400366331668761818311176175294481335602415564815879052458051680182913226298205558906260914686287486806337930673865151646422792515878239828689702140438164362097024639293074443421608977008481450168930231653332236333449245312482434540283216117949019444636199420641613743688786819505444223097702397816143929076728294875169169385875613899438788788505242519758852658567111189165929683663452141665982038051265601255291799613167125179045010750121745077122206964514898249675349282693945896334956971883723598727910717836241609523256216138363721570596998165197471784872367945134055173735879620598194249839040641674894676596120704031537992853718711736322219777137211129989353145821249090595876734226071785232560414030367456139817496661194440287358122975424259962371255421048170853584620029374764391567463276855957279400680577680849208341160571845177738689369823595696346691204602876485167010033268913102346413092285246838391683467787550943654107026676236359765450065848553519203530066855668911576728376179112509768452397823862781709607622172546233123806641319568876559925687747902417229776385979566700638873998578923059790866699699721593140498717094199740938102429413707332831454545036020906659942433612552695888932252466564444607370990016435412366222562823633270134703125681756758180899181016233167018920571389366961418173608763344373656082766705459828621646118147917371699006631314540197362818420633222760419181166008884724222637047976565466292957007897008646162684221644437059642675173237141865356139791957999420163032206481290366817816692907987923268375551990187818397440365779547039262218317959019950923712262902466621836611252112059975400529829497872341037170430957943465486781331733030857824023573428253752014006510576602407200980355466383953245700579585645390484719559417963614408599800614589690972793059329347285357195912398306950489239901113107144111435725499273251840892058641137836924217302505507716370400213391858478719363238719666184754931828391002792593458055509487019014696646708616311835001929559602968190256550837563310119823213190423039935364372396450549690909926430617716065960473635289604751582832641316408186812955068442614929689543766603771573139749403592294314428432604956991908117482659682893351746850502000400070487758951406512120815459430759653169158809244383497654721156160889718358174581204965300534950857911730930946186269046594928074514635169998414673397713423621675082000549365509779988743483475157495012709043545278113437820063672430299691860496750708205209203392772149407867533744964817227708666283393876425109848194404911731294218088349290903272751393527259179499585218432956920575038760386520739258680843570916669718964430629530030833922275337894941487584205768382389705625634299127798807553127853124502845976197347190264188926514402829147244993214441245396862886366917083923068556454970243161374163833993577610495380940171178349930746335023916150996662769580194154536023973028371296866146473426996935449998691153189068811726372724778502623695679620641904832972113949436569416332376996700208037326588960314227061750382277249271184347078491339472653070068698681706846561172905255345647711416636970559561080818167274599196856551440814304359980480775853496589887577891827839247810589212557020623141051314240257982203468073347072198061282177154500472952339240671347678896676071144146279618132896453634475045886831862080956179192348871926581945505752103502731337623369786771815097229191488033907557321632703682220808360386581634897809041821511307720969331380349317027360296543057153277074615519463378578783262331395779955648311873425511910999994098389971668828695453831654265010247026214880816529906761227332887489652490909345120689229609211717718649525079338043011748282844896163665390283448228598508575237382294366754411655474701881521746814552526378978153878281921322444231867447980868533779986169701054375656394073413579586553652932776701948104335834499026263216022053834820645077954151095724395739351772406035715871120946431307198996215316967702129605952428974941510277504673826444064037332581579481728868683242079082197698231450227715173981635807922600705279917453452545152801820067533774548991057828184500004131061980120160566416335229165486797734157412799400925480064171482629759398670444723857224800892632800431953038883871756763718145770127297860723001957213178774211206632198340856118339887022932539726400499595770537305772481437120658044970785795383757018117587453935317025887634558872003697327967521363717980466683713485285989899747657818882946108603587630287025129888808307463210542170728620352668328425880048577826981080156545614555903486293803703625619746589712695275327438285028589581915094582048566752292972997581858536964148852760958783967758283024912456395154122465098246808987058465434773686497917948294248570877815412564519977767260282737544391951800678866931874007773346093106608012612389861923238362185479252128348436569095248473734128790566980131661630182192776368403712887861359939080857619086750574989803760804802847433831313874742819705617527833583710172355770414567601451705323011534281465614025483828826626973233549051238455436266102954445940242255064311769804571851192350024900587210568975477518848631494474693749498209888430644358973624650921154992527296670763899744062785430929656860787100761912792734723608951547106912055919940834190627112885584516997111065023241493410826845642849927974541070393689734513191230892057976721499033282004777381090589394548504937569653206223627348894337772774059768943864760121915571621995721040226005389154053134150080013632901304512624710723109538466549050862178939743560977579417483208341444799301013354473622476732906394990839331633083253623920333018290816531561402631561347841633656775233188793111960058114849016828268936752308847296181262154296449751550458904186144168128391290500876909701959165628590456095562656836402892657750534755109265319828633971105667743683849907968669957758095898773976488945404899832617590561312850418041232411023912071268200692724682654833656980520601360051420844040712323862373655703106872899464534574712380284629880743068838398459458026888754909501241014333510915657330626115199895871215490042093561429456317268987599129706946047115845230356121713173865501166618871424898334394540585134692995421149302526272440585844912649172617995119703381474298008230257586394568965412482326620231155013800352537667197175934790576840229129220442969205545965818889362570107568620209568395047156015237351770872894940399086863083065900382216977940568331330754923683658883012040429247843393814173798416858149984672949566967097558132011340123994583485738821211585340744784077823410859729161194018256735279148082929107641517239441620201655705068562245773845144390964043021509100090865193161587851711255703849305941468081828190599259488588831702578012684203708178700957275528594040734006773063885373833431897983826436759864743327972590183700556305276666681682977722491926203218287176901578899810830143678614287560411509163899921297359322239736176362529154885460018295088894598842056530274225984322791893589847894539623099004221417122651683611681183872229096653956108726958857393463232832668655684958271406618775787078371149118495054507773408244515380974905994812393970958695656510299468701981394164964543459255610010736862353238845426088374521660727555790915106854527329212915527033362008147331514584409746555413499393989275540383479446453989507738391247815660075974464679189315180511507758394965028851606481493517315672026243717259733198229334710304395970107998121360990881687234641626323825784836422831455605210583794629185033047971756978450998330031286602596433496176175365156594166272401879579245271753728898008892047150227495847490285304944273368452169877455416750785017239395736811200204493410862672129311079741385308535750885845612029177675426466078361164455850619613670966869513354802071460102498707235084794184958839485054726613031969151192938969887331330601534244880638218678820204438425014567084392636816019747858186785078172268719279164806425483168246411963930472440418242553053615918837174463870582162009622941200117996336333546703842760779156512942994620477729334932931739768483820765147114296214860140598128033833065721928650604131050492974515673844395149648859851539591714786878385247421629321426894266529236086370258014014403275640155322673938316182983563719064675218973718040543297378086982209960579695789399264992374998688955022482591105432069782814202284085974061105271845230609760781962971846912688754833825195099159903386551965932684004106908201721911088279394261922529223533021049915644166772304990811897183071702258091615337692286831947073266654438830554110001343124436816888616258878152356381389674048790886393801816796128012004197291436637514281818018162997001414067060894433040288521044352399286754590304484448768033343792098914578403417915445100632066009615313192910286236064371824098311226157262173865524302267786815822847686825520984424520857275824200842783679835146911651517555776058824973056378019754512987256301128975681860281431072467720895934377669233386981195559814978596799779042633452914313453618712310555300845660624526124387483878401436937396164633098621310351542820330924826586169172801217997583893847911340970571697174624247922808408463297126006943076618529751410749926197238898706888805353673720599738867167604451203233273192200655441307966122514344767236860668177344876869566922712452597990248534498741468453481118631626093774493162171697661789315418008360657044954358344681935209656716568782116437093914410760932568345640335868069170434693470163428139853407077176148416819656136682190406717218102977155691491833740636114869559976951364508059320020622570501243161930602667742387672668440020732025336261798507844271007875400794064675400139727433977782980998770623721378203369366823420451487547103211025923077968970855946073245020913783186747609738023677834561443458442345948524999103632038057276316031663176249186220595173005703298005524848293158023684816264854034535168627012126387121278040862197377251163471264087933281586371811848731146598882955766464806372144441664773647883158204008776974632384470325987156294812194496751931581139531368039390294169281153947522078169426040410605787332807307948252735490490158542551385903149578106217412926492021557300899427532014166308812964967736978085559716161241259634628337962097406750234953688779852355712272642576124642480578700355047120177270565592912413486315860799872664399307331343369700305383309615748828464686619885502931590351004137925549809277156004098162155637576942103051458403227818483229640223584942578767183214869792154601947030960229261556820579307732343791365400970807577676852191700844541529387442583502678476939122277502273185572427983987195686769595063420016736537356009305109083315987587248686599178132776974096937425193688523166316853312068717922207573760007829456605144317279838356193460370492592859468833857770903673666598914073518793096643003273955220559497158753334365487465618695782823680678825368458920188429577619129902557638332713308436845066962774809444079622577883880116344347527638335464752273405330090667195900435967455935483887551110847275606704006615590213991223588638136706440012956668420291379025287154804723580108103071108084648253791959465086287675430131525837138445255424112320864838737465646104271455814363808034231021867274052435732121852168841650970669847301955492906326348561776928322140396844611211607501327215786028618718457363550338987142175714259254160333540869615289181109895914065500363079476458968999531527851029909389504389825467496439663210393457154814131797919454301668870756494799106308022663971381901123484919421045085142798763761716168981074647964637815061647097300820096677096563430553470280868416666451344414135679929195385490558908429757585623526577204368268496995205833649643591473646479033907033492282467570509785054135576893893680329144148360995844036518404916196770533266075073285262932435113262097748636653236630465161885110245064143033952119370095467912194826363400190940059005722767627123229943149895656667533959714693296414310778103438050290027222044325063409687384700826973628343176566344704730408691531087648684332940630911902565763678707624334316093310449018414416740877293446878216464652855367225496073459242527614079459894731825985569250903719066932110214361417846684866039139219577652371679016309914906773443353370747128545616292985566723389742178424928486211523615185884040548686324244225515574471694658987598981347975400495770444532353807936936432455867136947354568026507263507721165501436036349498997617818587625636256565312865222925589256772631665121029662767490213453192292654761728226720901847056212426115300382194710751560854771614321756950190807125513557885756496103823884087619943331768507220595668142214893522850408215381272634475415073142123690374388482409034510745349083936831788920265121331166027859044980073464144347681869163836038354170240418119828085317601328786282843255434384947133942188420242336492857531311161147570267507111388760729718029478009357283976810025736258599394005564091005400595114372914244007245483583702805474223934826539766006155829012417950075495961772700315623016672669199133366951185449239663646207796175212692364780368411356373211864874706201973450002244157773915377829153005378046284107684936816381138525177353098567064953528463777950667245421860209625810885462869785791970818534415778143273629809916762891365193442644987416014788782441796127368248963470093547606508475573857709778951581634146897585384637495632976286046587043066390443769464733330516875496510023632758422890232539085986774437918288093117319882243315698864219066557525947844176369288795006864977841488752500556300985017843598519986561595986640750228538794246981464757355162462620539854179635879780874639592393115911811433662361633996912677428299346037327201688594668323287393350803018402233938590310645751060997943090562755809932060474972191538738656414171140152316767827278272858237890342115854696504870465606223670606410287212709949974746077858971780937430564579918017662837353173784340074771877630137540419140908593363980441096916841780656760912667750394801822713319775363259914035563848480779439492237392096406203683831640961025069064603865221347273019190375362826285319579051575349683000402519442933961021731059076688287656136573382344647871176566939618111948430440959959897457884557256927643934108822837867593568496521886193563849596513030043099380401832588169463590028143389798816817314924126068017272065333010798464168021543284557757790769199604118550043027278500545793862158984745102979244113058209962053044290359969069958562942049371911897317748332433701297416458674141377232547485187238984412144792192080523272358291310930230598069266073893399914667163005408714074548211155991507288531599904911207077680829819877786269910079471430807879828229413181817023868257136228568319983733156807118345915901578889197816826806257495676858763411681104517825484979992842862837703416650583066227009874045816261334571989379278063711340693304077752236583582726953326322586379182741493169457398613196253207462280353589253632404629946765369440593462438286367585240173510952506098670448581438584672152894776105794862795164496198314382082445206149336758360757297234106893327970757819399836674695246890801152112308454700781338988927238367069556257878271776751197035991237887496663244367357166098304407986134942304149304256328486472291968602657156261178964728215342989088009982222274195414371053019304753362492948919437164053686420999731000774646759420986861687686684913316655964728943401032793147767604855831400594373942080046807623563953027201161503472054435233310083455011262916997768516622181589257596676219330794726664661452081266499463361345954043377112021845987516898810862024672590210315496925985755696089657321328802678019354892611944915018072766237796698054679941781400088292073815047348040568735323805978312902366319391228126509079943991290404415452903010806037144869637220186638143298472562406492839882621159387353473319282015290928948341518756802765155829933214200699501678137483061816933760421150736323998127663193148186932744852727771631395687846116630339647085410271369826334104301391835448574613343861273683917286057947150982666865373363368841972728917020072975312806385341987912271533397725450549064491994172525287627485817059193205565299805367958712067502288470798980630164734154682566981514259382765342545403794266101043170411658986358322893716665433433306481708200925767613681649470204094653015550667606566823920408131797929306489546768928023140778367703221785282144565806308689741432977651838643045864949496688904593810054575698617212016687242181116387366805072882137599187609814848110928316698578265707267781604228428294774051352816615454755909014371895636411235482376249874603020048205797020121304151892428022182522575250911820381545924861396522968196525610148275139331079849701452048889263520045282229590975371983106958700535999334986773309714028985277844311807541011017931734771005729920500118639045235615482334153082727778610769929373751367247438884285821847880220965014475983062844429575978520302590895117767078599893219660496701741906858519397088773381500285709042175692881846154655350122596931033479330243617058784159230130137325468110372605597055747335071898265949024274254612829414816056284926886680914393905559308185528798293314999695252828366444553017739112958220744629307544923963443599580288904896865876241135256286380798004288552706670945839673644215750257664321836894000879249148625238972511883259436675033101422434585077735196506025264241909600785805499550234792795573920334981006549234620296246441362011554843094210355877423404121441835154836078800276873082114990861568946532036856307516476714947857664191033088678156761370843929539666776434843570457692597787269007966114570898802733453635123604266731573997881968427717717534307751482792239241519724718512180831349604645298872792354980552482567892477044501635127764894082123279640702797873416138657049918581126210406320718563482612814380050669816926079270178785199920108464777514920203835474612569848114789372303589569776309559611295488375109880387848599560262241261310416265712992991265432574557729960977674027931604539440855007124669882686689832714622752200845703506115480950316976068257015492113918280457690965436063596812312848855864031076297067011150894195193103609058445010484548230846374231001397601494006721893392937929390198620477883056871230410532837831648210245074340514252381995807956013292836493548000733078781849899329372865378915251472005858755469142623127555691703352904823903616215939431871820394651280985446751168723695177760182591532183268044964725471799121016196361227591934610643852519336657143001287975374915615167490955876358962779377299435886111404574992724851321542036317555162434599169063971250380559618347623000666040275688505622270984685186719668141760070975336807726118496496703414345694598260958383439215451260135260728800754695733971295173113066788899080300733791726086801529393439954516299251707115151256020937039502550508787237194523640592358867197113901348938626807166648049256700345439299560948318689535503311865028183327492828548238613141114741137026647779656322909981733466652084025460022618974225199185486090371896488994461425584385764485047500983200526618032109355992886865720357153063315554685897094106263267651814016822626706061686116680796898448140405505181275681761340371477494042145834325373659780895229808789001946626029258634178092614527933743590290727445855062006515330921341064424761126742880813188704254320410055661984079931860867991884190475340156972896107893380248745641705633688867663647094162571129583471486010388161288773711088400234672678350325331187847642169592206197477603742449329722150636816407685038345844499999669357028210044039074997520487662963459886841087381194525283081554055022727209767339512486172393664578072578538991280486755685809934828262293685185080322258570873550788662219143774597110404850876941073620574189785140088565211076226498292888038961510353213125142831511678434527780982032324736633836926799214129196797330740751414250695251824311471860075027451479709336489205882446058470157253673698116000694827428003603643390041204515922482893967956505987105672723285819688722237172296225542892620796953717819775747314234115513779336453000930498823775992426012438063412146457634960666427729738594398042221596161664068799963294302524665258629332780319886259609471571135854029282620075682569903060733760463280718635365052589488636812539945744922503210876405575967497793554955832560546186115118951119602179605417192944027260060811817691177129993580159056163851001770619728995447146182292302682345276625821553578270201411860199854540023970328644422796369179986497992431755662263474640599405574190693282773633608649611042447262291762549414835282855350610260142209241458737567762696194258299982582927473473494831160395395306056754384091202806072284383416723544624627128069906021472418691636472398590034873313494546159957214506678024351228005345383516198460522205340479723693991714921918540772563708165030656390408366803671338474359655452238497553209369372203629639076985273463348295940230612604939640154426943491543181181096723011333845248286464644018025032352160684560511510386652358635149869553872024144072019726810568318414217606497076094664756426509166234305252764169932491803993823984277439436733748001106457916853430134690863505400601638694241041815205872885613109684602622554101803796649773825036121799829706831230084837457552077873196254672770874760561366248497858249591405979093449146251869815840087808445547499433136186683033731721958258736002045058991536300843203990724496474345734496779997551091223764253036966591713203970904138940580417716423869954201360311181726558905133453485833884816353169814270387948333785847470382370072739476379252310701006531017606424325635116960588962313422504159368167144245553121288745549034473522346990113813268434867770634058246490933422988649243204916945522600376990521553573787360861746234812109310930826241075893047554122731935921071615572378627058086873897355786929722793839967927898015247542427205245518842826776374181183135610451711401445994870593999630548654481497872443342986317107153440015933073423384891435298790294601273194255691924539295861574510007239675446135562380429026160539337691801500366521052711891412770104450585043169399512663460017922993498635877250583281481264457292390203048473232415916149837670144218007619684727926719997152566471056366888568488914012908211127648696074936569113294239824451982399095768369836092694221946163893662933643523774210415828213639727963951248537465773573921914213679362976048358566599321351331889670773574826431240475421837795393679353419158026465188934907649856263592829001429153830145458411895520139868691006850453082643030958827108666613160499364017980837024499249553909304797313455887325403325879523531397141227236027599513953654117547950257055788651916613609606025350827882874520186507762221772684818620729742189575864403650858226275700725481197741102538472038196520965576684476143631348071661635315833310190177863576293523052820081257673076606897863647002428923766542597943671245723879315192068665396130180960703620335639324889224216106460183461498836169273193502688673038455876930629598771662997853790469805669089019815622944949241624102581274995787180230451544759304033657855070019330371636782597283113427859684731980222554235934334612586414227606844246294581021256356943499572719043811075473809523625203135267056464246574338543288846191087634438593969962945924116136058841631293589813164600685275791414482044996276367312518334975140790476328313933041730631670967899282612242303640952201009646087521720476482384765372775637691153370291778867622775383895242158992923944628863206422592402558800521003802141720730398899129833806262637174333325834067623409987561527376913000755825965266742623878656195047957138634610052687177240171899589157774132585209483357876635430605856750246675022712241305737757434916130219757432175078760344163094415277076317377405446653219820569092122519735382879952628876098725115548362966090824856371773156138162706778732832456784323021344340129720218517993081512063347140504757166242118603192868197593524859323017652486860031764593713058002487507864864453619581295379817366547991348324262353032359527899727485046909224068944899488258977490285393769161534642093323070428550175150132810837113176403966011176216228453477133090409644180086238165244837432876345394548879477053993129721639464980681143848653853645120495470887166013229845681797689017110323731698857871282100921180651985297301294426371691199556797662999373274057573242257194991221170880295511904649433202634510320626564702164373283621912545657508136053263814064645338348821055013148012962768443268631918073931438875365141795401580596376006466832114287718266944421051852020768761325495239702728482830072924841492412687866121658845226842904660943475660808011887985994707781438367576271314107418858437768484461782847316539077989121118297675855956326323015617755131103826038544827508480118602363319310131668480373387105495891741907110911904925121599252247418667855901117739262620830933596659999790995844647779433473482086959356636541116001096147252274221778687076523678719813092741722680246437256784312269422021910585007803306179610926843011515677064799013373130872897895445791638283865253373417812453867519884014700570492654389097594491615221476452767825779009402861217806119317575352410975881177313441499730645006277330521636939219857723460996139272129768774257024477021425210429997026105973758625436328600335047797571427230314672679901511025554037933316338554852254413233179816809060368382161894698672278423566035259800638395101282190406444946350064566158356260462833479853647550407246547304843294461321923036520303186159134904901271910842431281690496960895787114102364111502118777869159690230092444896235362102126777756789963561465612283459924288120130560860174272793532056748623242829764098055104803244837951880122849398334252394450684047623862258424286664471924976660149481483289500666373405409927496646111371123393749848438083452148236397575779875696657040579437786206180494291216233055532025804879379216653081734008318988422691046650741943489044243548131764721836140132987118192991451001232169915711305418824880190956442230436623243414507406881908326401120654767739880998452236909748503554967343675447086017132845962089575541093922308096065533301245559343622178222829336231193164584046827411659091914541746194141944389029210523480165988442913278232118000860474341742545291129799852471601780874416503928035427108242324200429739437040857056111756009701518168621310086900456449629437426917872974437301527957502748315507786428712075057373697325754323188162055541776779621099723805782738506905989703230269990762871323495373976675106063276152263062883702596271090089484829156035887088784458050630729205587975147480837494853452929172923850362615456696843583564715523374661615387292204325888350581682536513320621777899670677720654412526146666545425699828811834220962558452596705162504751991686503308536679488356490610523195099945590937277247453929972299319796698068376289077818495843540738873249484788950772249785327730306864002175970199398782510446816147803718137214538799142338028133787300266159190657521588932899624630845293601586714456110075984302244838987431800616438630886784613440769177866799775849700088424253170359371495583735674242690569634765511499557586591796792997535560486686153097354937270503946777609158869045542886926037247571394725628697793905022364482704323047905119195353750968554234473471995111414526758112057131511396805272397524078148130076777159382551581855618358132066213345390653616000110934686026267592018606315319196371144160306423579439909293974261341004733287240619463149485490241389518838698466375665372684095613734992435144348343216968060035357422369405171393847538767585714026193357002365506523313087467744328283121592581877098137289640745590845176525759096328559308413807923041168223870883649058466359255227556556622151435926964072565376023713703724855507204715341373024728943779701436160771051219136283339624120287307890100477201151394802761844072614396698381464750689419351128798072406796615023472688270094887186846413001573581899367945540791173492373048252091201902527478298904781652809529562525793353535966396162454544707241332606436474508931225649966250328836564103596706285354575157060785068184552536655419926250697771945252486635494768336264177250204884394196295832714154856643000891987147704229095619456782296687514624111971059171535939961200753461376644520667413019491106699320182445673040653020653416139952683654444730778221669148986696371784917768632377744003031946932462576506984985739301465317479555301876590516262638459442286090785978936847447625739600492533664297940701101152369459626310196485237999126985649483218535011029169846194471809492045933507587628427985284638631395686101513032166264876882971959397182674264270594371977340901975505235428620776261380903125794404727966107765992574815888177355409909909043576466870247634903211654394867114155525723305110252919946362302882950758403385785555631960344453098094500753798364915094449817800421875806926730283330999719997449597818253182832613860297092241678197124609477883897848591769468847670468242969303053294522989515206266243347042244269740551048040034600013587613889102336894768213948686958498359999845063167178846435981303207187389664202522632237205426157451299340525401366802580064900022547313566945991606864790318193988043536278385855142594691838274463406569418357845166704928145929302479826840538927127203942949144271699311478654728561383924036428260132146252491377168640464845675725563332277059391480014397757707766706660778770356738226047849075806049987673717725616727561233083917470670975291534644754126485780712611403860734757703319242545381115954399883337819244347826703249352635175667132981485962777746059988698971475506224706179147257554611389101960950812341509407700288874599339331337299713018393898515828867682169054320472318269150305221329871435137621895595465615481614871679185374496303666732923772585154462866476401109943109097098341848198596418813552196797165843725884627658418496291353842862098862404968921250831457555346234545436500050839188674350183930891179198580031903619863859994344785011746063537281612361505677095153603562737557741271678269461439595812564318372121932767132189780377378719580945193707743026381325257848861082830007731880410267677648432035445272491107684608517991317368635273952641636960817941297233378020970376528817522239863958517058075839933558904041155061379151740287481234281957126268684540825484612433279329647586371693777929984667390803153868580741930143382065401110640213226688808186147369794738651775239073546001555001053308758347838319142532232569230603430335645252703143947581544081099182393721576285069673586181743009134038383075727091638653415237714602454180044031266470994186992363872152807622575477821377623130525134353186845905965000543333092454961955729660487775101389880104426068219696880559168890672562246802984859394664311143654592528965456827273449139871027028157571179203004131579869350992836635445199515999116394824173000201021315529569521356747149842683348331922670286062077447622933127053509233450146224678021452654335808804295220612973090718755936187038648064549244255998339397318305786430791505286595930312550785461257141332380389260077311278384505853734971661234500439155992131084822611187281974029101452179901142522189405990047974755195643388420917965024353287939840585196020867138580946491243543795987824519028573019588033753298231773083258091791017417439767722355911608479283273551550508451049159672604919226763338582270636723180206372118802729868846255466525599430230160802548086681071804788245948950711182637844577658810195009143747555983207796565442176213406196275367488161773879022585923153817090741063593885282800949316005618996832378480581443233799739825975734946584782620034877587287765672009900485171548483120952681184426977002919680574122170802234361527476176786917318498441938112389098673858632097950961203515337512285110836033513372852188151245132644177060899446807240251622539230441185549248679629626768184252514799784153514067846111045000488518639910879392805224742771883745203613153140788858794659784644685694664765072794750160408891100559789254944549304104538345665001058390002530448952917284380019590779555932612372546875271996202536451607177548586703969670269918447161350479955983097454744753077076037613357663683606520419247435142745491184895500734746491122386512616088454364784878119126137116567923155878707841397327506905534112851372767444610829377176408591259176680536425376970305228550170441178114837167425640899903315962986570839714968640701317270863587038008762181271398474203383954974214493270984335847231219939929702242138806547582560276280534204352054688628369834799379452362046328339913853976747839227902560157984716914411940549118489456520255390249855258856932450464446371041725341538240593026965652096207980186051407990080946952882178453708100951582882746834836701166174139986999172896438971995709386612850740512874907606379332005827407444504395147801423449490061439143973288286975175704908514577312596681624733239657083319920077530438293239379894470203330521578074894422943634923097188070704653088733409525423661017731776915408048203663066189101468562072646206845182333334747771828860724301414385882543290832757299616569199513031705392035032590491528865532668638355019735126997192439858507230240898913265108865169472204433562822397725290895860722405059136282262488322053272366738124824024142592615586226266462990076674612355333382198920948956010263620124380026489951047405882880238593809825695753417289861783818994556121317263730330993777282187672950475131058485599548694177727687157318352317350575808283277584425949294455379170062133800451648540690660193481933972772492350307765569502015052867392656477154600558743081209754881138418572673459404040195007999136479941087820861957014007078203978292894313264199927422707399711656575607690836444184135714565908083757533898479355267841321319560908423595834782048357089957961525478063412937248995200543805576246371619919942004156267952470084807943063754384121183550199743633522676500896710333092451865479494162897512317638422792766734612192930577946984673273089490129709448025143790615155840600374365307098889210707017462360273183023869706342624526929291643498646963531010497872708001475664619181344646657931283431514683048523234464449522281947764871216959036690234805297041739486983614248362979617080317627751855109274884218448968311281465538145838775325495883503107956131762355058453928891994413248915864397842182092227752371057175846796623343162464198628794393456673059192363749660635619768724662084013290657386186440225489167240697858560475817160174765343294507373574391590854547873549683590595115122624410948450870286716667861994317486147882533966863230588373534896544599909379397934491801699940012479060828008822171178469073540018691096372122585319950161374082582408792170437418423688112421268977951837574568145058826729201711535854037598832709665460461766304766824409944041033468477055451251631324094556389358521258119791573379804206810355374468843253239929309259547781478466620774916875511434032420416336012203518395110291373274655321626819799263693863756686595406328242056341460546767223880434320894696064195129646998576785713446270577962995161089966999298367990808539778494415401182690099011402181060660701446793800697907622173485785049387405728628822787904385659399493173833160237280994484243108519060306610007751431717002525707302244175608842207284718102846778179262645463816826501887208059827139968298335893164790448673302859135268881147802450392012694244039700412821232358841507786330597970434274490648008544873988349014123692454955191920268330381312319127845268716836176554742223707595639528337215348218494852249945250921316601931432028673091423382965734705389622294733892160898011546797251976750527653386116913942367807283108885878682947342363079490517454693005045954463663060109649925524337675541824736480340369183688678663131483350178245033911873388169119050815753833318452848298552621460559236974694108524390103106294062589635990933630801641225496800406437410116580042858419636714856780299678695352372323311890483541806025586888939088259813235279587000968042661039865037348297588497399155200312413207815703643298210057628445455444895092073207404693782603390505250955830087359366238941616060736333352175314208032128651511568599413345196046093617020697439262822299484395111574349285739910243691934326109106602330773188950210452940035422343160980652632377598499369584352317705145997123307715573937586955781990443329029809001190592283180316761742396655364833904443714821541337068983393666444239616543531706085735861587079423992215965605149676969104347614247371112138382699127138852801282208821286954363766798398401445847509793015700661772575221984662257394546637335383985611692501644223368383968054961185734340201381177208213607912573406286641488271635177146939351476310076896820943010821343588121102051974038762030628354604631017463106397313004234741975692902547760535369806809549696225675519970507040230062920751534387250215785124653621278172068959624661646634462132722177301630489442595774352810463669873257389281413820884995333325391566037891874561556769259185411597430183737825168210595397814626456122738287516343818622704383874882569432594846368417745360875748840562619394705192026482275022308960786476402929610291102137399349500531136230616706174015379583784329783077154175929910655256393137606097447322271485155674705384338753807145184162967120555841252452464494239222573309323289023167046355003323136051739002787070073718596228694023218763837827547498742346477766915598438644435498882300316046704273587556109711427389561475403415044629497231670035847086043945786951045996545623722943858098222091069255080117125149639063308913604426239986938729372128213678959469034308920737342016546801653692689621016902455495803202314411353285004244882993297519805870832256925701484652325839597026106906843292564815320415947779307731089273486818102830874678999443191585494624257119406769038650875284273617340927897173300420954676537416080317918795595911049240497768559854597384563817448048706773890395310503525259018375809811676915799206646831804653003683668276456303163950157262493504431820322601613428202501223107583797175572607779109402958277551014542723754885836603310575130035820119415744847223027496216535704444735353493773815872003066778551575093117249275349626165569905449230296700858220351718296850785670939205776645759491849907485692736353936690731712029637226108008946749754664081367026609251196436488739735663038550768127974781046627302561582802169302918634812936815162513270395493808289649927485497605800648936983358453959924520780276502195503692564833671707539652285828363952937952084782116942248597443234245219142276047467456839369424493536206884647972356491329045316652862652401567965293880485345810666546567258685989728993578465290079380279228455495745957820851238821222371150527271647769955605588609706791831542708516237068317291655754185834816463514708693233313391831870541650173534137463903752410005742455768526352350000787415473982156166058671404691667496756164801072884354138077636377410738314522651359914892328691106406499960541172011723664224928816640737734829418749624720205594525317341329069003750218921743937413594018172376910354165951955585066284992691433289465179716271926065854139026722993409676649459881688679495009158859246628211327638327457973922086968054101279861533981067411422251951537997760171715920998079628978522830538539509496126043512765118243447153997568390132605378089618928221635812848705196274047186436298658339985748684400141928823789014129508206847155649785045711806671644063338276875951480405666747317022882080451733774046128337343753785103780598132266863967586939561706731653245787521616854652159367365447978875509140755083351768020717719724692188691063907343257939827621343271748747617570484043877846178952500511066610829439450579999909819285229091693029447528721228056326786248833506473452117359773607144951327234895804647817536442438471887857435922555338662576407002026204330669111956225665631256624428803439633983378363250833790745399473116674471009428404495505812768423008107975923912378409217690083814529970263143423000517485810347814079638941090394175623529693643813095525969599842468751906230011713489759128821463553677876617085171147456356813052375937394946141453947057166752307073754314657604000015492243620320290817724060564233236216148919699552608185809543323382672364864004764469346693067459011211632892832340759113932290305953679821440691741059522444346469232891185217063737097215066903404777253714695019644888484033069226911130695049933492009333954045988337079903060212603655729069102246108467359561692604964201137826310548001373985845772355012264090943012557550198083682367994224745028854590537422483000694889043492069418401234944553373644145066804375938835767307404718883931423032692403318687033379202391221400936295409298621018042421541787632980680039480985442094772985665706706767527650966681052411244267042527969453473773924478545631723461704457820283829863567738600650226016240763602904288942545963911808327377658190858861807941284500578503291352227099088744981630335739703946711942498900612465933271432836532819083178410344615473375615364330250461593966926779267492575423205547604479081205125443210215658161767781178383525854167880959884988261432031220504115074349976356278576360633911172934848163201272098924549793549521275144978235750573901276013694153043540473400159849179367760725061525923379796350843296789993801860725621769979342988426131041033496337448179424032741645350213316784749839600491475723364949886443737607930148716208201504587107238972331165016925793475036507554079851929045134085547282413962320003688623755343110195614979843905044961584730791733792922439054042906319761807175280677191849636489137270607394979020677053231687053414534122092443165691523339318388956794495313548948011315131860118866332666166815493323099884896194360850314346259437488451253291811219578402222386968873614387192537787880768626071163769254675719190384992148571440440582519299989537093411495046753528382252371737639049788732928024975971241373179938406501115378639000566612215873614518747836165734907163309348394339185989528281971536198000181982408305661051350258282283837981051727245388870365074657079004509044553104012656923080579272350962793816466488160935013665504864459272687120877924969732840297238641547410737087406991122229804105747650614781819541596024528592205428301240055349367388416603125968783480014400859781520667475607389877950778308980568629196976602776681642351586036690575168868113712937840771026810059253940401818832310912440995476903830611682339463204234325584087168769981564699462345377470914492722461979451564945275433405427136078045827624878315087754324013616029012512284570639783751928654632316451725781438747096479479910799200800188907563992335992702833075027705097958115811502285950800000514815098449225021236267993899874571716712434247820916780925038144562773052193742226629224143975326567616896220974782297416322114091236014019080371250236273138735344548015636199529312887647021134282017495647374804156714382033602060334669644574992885762327147391053307576104215072634528156743525225188389360208878466116039503091794679959119185307982381296229553537095530114014523910972312357957496245734426799194842571445900536781822719214912985225291100707359987695737429370472977294959287005364003288786992005802428041812085028151054577754954143412803550152809463219356174882299348275234642381416130086496669863106072166547606794032374589041502992101538250002837667246217278571425949548261549832892202861022099771393033459589663521472011041259848635746348518176892551818194784501353796768132415557310304816955840996814261584828966444150386022739135827003440821970601669797989000021787102405155713453857520144391763727227692402586661514436124240568759475490804469724172928771348285217642346291251716326002345397391128627641159880735612789067077949869500026098642835344730715254790320429256732069012571282840220834557702567076616744624156838330718482371701850075385393137522537355554949165334778880903385368787377840659495826669847984089203773845194935387828595539370361788718522158840858048132104895177059298980554460260310984271421246845510571915111077683352970520619267511375722732224454457721149715692411182362090915880345038862014261466536005726939932947388260194651218254809869614593269217343246658444422249552175599203898489211608551826131281413431031365326664155363918855745017645370323963000104573562230872173360627759070103661308019990455779215637393596994947655267088455716096501872261060094815844279110024208304444919510317468434957446270347312999050009615230577728785710646337231881675676460905261613673874101330930804319720377007166567325835265740314314890793943226802456448885218396403804715391272142283388767399993906370880268628781524815058194152546519034250409584040626780672252822025532205740031371220239547609860392163986457015714610760190731733601553354662247562486521339269257223550715846077756495597624775965120450631368022587563079887676704253889977486196533895120440350163805155124747605227847807852913177442793067018172642485675559952496508693432610180387133875891451342573438524270102350026994240225436990036533409677141276382087992600816971116081080798494798029981286848418220944320899282295515932741979204135485508282306995168251245285378641320577542977449505318955968085252663978492580108192492117500433939907374679800432358913529549385931138927181752719946711093912146782010119043205273404314717242402111426213912103311627268323036287162530202594154153508863052258194287237236035406789886895967775834284769981336547984544224799660335021426984416087065665996619975485596965741285855926932107262352465075601438815043502501117069634466396318870924752439776854918965811014955731619739279958599023575048532072093100678139829138549438440870252003406480137084357232988185315959309716629757741154688539329698934449817395503591138603661234918943028642161463231834337098058403977899507092282669377939398742748034229302894462778019159413130294863527440639332227459537937861135484821294802635665674128259283295213194758253092284920551538568182652243033473213611901721629995038923108590168809797023166990257187116805582994502694575284122103266290454021032847475139273118704960627528975519823382742581541803422754925756247831651334256233411296114085256404074332446041647118751814738593897474072470223498324681421666168793752595044653794088007678593609218954996081788979572387047555928546109789825837451214574826970607111067053474556378656738032694830760635672838698689282394373625021705730333160081581611630409689910130963913483122507464994176184374906062684651231052132502123019734652504133036371256643888319282882556729084394882148122963824889403126272747013428010244109144101429466305272519504629640363027930220284702640278318769468416865041827090417790569117776851115603736006355310334595031487786976311759513990714938842570187280655719471791410153725639365406244383888651635442251697861379556067841733899822638018019436538252308484113475264231250359950831644993951944260746680043605019841059318971447745691041029929310284742903630153438893917536482265314292698251567141229139445953677822910795685848291883025822933961926236713552313036539267576248127857308757352044533913782392988756312065954634501359971500712917405773275164536322563388382436685148732734919687888420067000695269902791141071178891074910026354428398992732587499379548109584319978031426156019328529384781091991042554371214446703602162181159794897599749506924991604149642127596557056256424659223103691296457251463279001842941217268140701652885619829994748337135050247258313960090050742694268210171590952135581949162211892624870839879364746966889653625917341321245177030402274676667594193583489869501275063111641211425530528729307925214351135701288833283682023398552119068637175058710398032752155831074498049547711448456826389622197148976950260256503399219800040120504817732563066937952013208216942396750419155791110352047115415118296045334444751826556568263167898659148539038578148814442190115973618247468161217370889864109039435696861498033511284852772599703300206046495560473225990737679789960126956312661926746079272293176523809152173272001383026541897007147739292736228334891108083778409264767551187977635833231498791733780888908406054777787729510237170188070802058803049425861705661768834599975764298590581328757471519172404271731924878280796198811339596182592124976969333323548068206094282191624160203166690568583663267636814936261573222917053236792138986933149906229160483003840574064962475863267652798687197626275682399435888954239042578001978901497507639430439327395851214321962707830386822870221482169971000625698675142576324594494298544041046208733671871930278181424834066287334976349516251414054689248713241309888257147139927715899298394650558879571789607034312604572451803096417104126882901107443710385004487768263146080206734489543646145952592894820503825066970895092227473292308599482926154324301399987649585155364221312984964798237733154972142067830924140247141517396785780286120948473407455395998161051762252220358618355062478304301442442939027859196623591600429808345108070991521134225153810651540037630296972958364542285867409120705985273939539500986401212967008089197067350382062626612390046112987710411930355844536216160506889178498743412037334183205998724874181153696063826651599100939193540855464596217299871059061267004199994748809632919298593143525946665133967202530559291857526569227038080273489250872304304929117176139877373803088185859279046824435494567563994902937973030380407040263365819130153993098267912917115350093007000557243697967475697986977264918066110193442758937233521329607439363115579480811055329452702603386831761025264705299399772681040147513021649635737832994371248539760833125798700369955970308147695149831488809770410702542955163070325789818427149835937786399162737177162638503744642299749420325189804654884623701968116829593451837644936116576351115822605290793160986910931906986692891369764242227587230458302679842567432753770240550962003927843248789508106357278054136992918819508026847232847036712101973613447819867426750240465531934278756823336158034875217499357766333009090910746028873077050755023489884442853686699513698835520323084742451409298070867809011208670258516666018135251138950724453900523274153790340267657412473762861725152770173176162147412779209760473492147732973828629527233397576041475984637677227531878182645062354068996746797109759759598937938907886312898213177004676056352801776077003976509251468458211130325158576540399816281434936652753257240510658621918644063544565342097361589260957219666700942863423282000201727562010809132484531022588090627244228599190081439794384180529116013365867034489554731288251905222983085580003149932477871039523509444168492737543393796577194712155598530440593422051149148545357175171637671738273557970403066647152412089893408041735054139963801273680264936103826922997189492747541250626715173528247305395272774331180459212815490617761066895756560527042197682170251230010355145449805136508585897252713952500100226219540091053085908579143648556859410899993831015743452104385892889482314850158806237263450343496393409487147573520347404223675846518526704118159818939249443685700487417125169638507462901101372367322031530123305275465016969856919481088352391731450368456728633345693507839460297455149027692016234350307513903755060106792159032528639291912792267103236857019487504422137942554549394282354461943124845967389016521987065219760760199922040204471050216703585393180856152531943943290286336222670726293318686547202732881399280685894354703718793970945031169122507827503913959695684381152908089256213361674721539108196610617937078843543673513573653242449871007223434775645511556508490285872188969672276118956939017419632103650506576400159210513115471092084906613666959247614658675803552471367247542250573244587030850816783953484029923358956191135113006259717360268064671382969207820711412004226648111218423221403515168836194267940865645191129177833092746614066695064088191812825549521477761053714488143748316179506283804684331417045463930483276265299577022703970668296800551812231964465535308701829760069424023558593182678793306293663597109049289371183812898732542176053854001183263027705428736008851310263526832023571509291391592534895971760551989648846498752682295311376683401616673888057592340555264550642648878301300156498285463529688392227527490710496294856924354286491049818511176214420264336267436513826724299168768886978738946139644161529282424477010735890168783812195778112884650577202095516009664746947942236964770266437306536574579566563605445136085547546156860374225040575219382147962948996936759874589414580844943833299448384899147322158192250646493012726619650195264606030978209902939544210315737935100334386914369674737769698479293176279586104284967384225722890690460678736738015335543790674026394695563072333042882690538447243252472605348245464898168685692335374429497227070013180092595067423146873418754435402752241041708688535584223244402752325756315109047591987641553976191203902629845420616574833845687760343332622008138979632886504110351394816986164212072729088985734699745614907311797646803561529397001980561700313184974401727442825290933803854430030070761906497135203980034289775775207756005748023991551062552479734640543669148115455369421599625684306098714204302988834556506464285392660846392531029412727500108299022819458310104205298557289092633644864554533172705265752081874858120009441674014925466008906514261088231953693476174461226781669144942419958596064405148827935588017523247268317707533448154050790391789410818020098366901896099635956791278200660510768481600199754927937774303735248081328971644189441977794977516664901281771732772345486942466952963473970738188845560072541698255475298489397522826980240616936360431701928539243278104708049177514538304366366542804380013987791650648733971207512704959560195750613183675499550185040750300239654301957998673631154727070386903776383346794463129871165071800137256623799429007748864701950276774637709943962050950393223237820709491609122504185729064947988544217641557002514464642551947116333606554953813681074259657446393705955595882655539735649145647375037007019147512383210096206407326012227618041008203340378066947243281205230098466246752022546661228293809127839995893715784894438001816251124465149989831586726997505322156730048824823666671418266498127191926384255687230101759014275518722122033045691678169990540037952772934924782838592650772509197864522591944143028882872783614393174337490403118065405185766701363421973786319314146426297366667604962204841187018088313102576476048654422889802701863568307725413393257700567295541738059635810110996081089603322138806177445358352915582789583049022259796814167972995589972557068368840774060789110113671212327288326167586958438333143158738482086152022689213909352256054962387779444040402255849028268065186256714070574197111830502112632894451274676803324532433860715371573406565240465537742015255547414092643849031258304401372419142040046010551100543462808905267407544978110280411813461804239442260147433725269516731386789739258747751773695208260441118891155614531188763465608584175253137079822946085102989054480885935598735700633820297495827353242235588511963340513153148272678284006988254669230232746887506406485640648364450803816751369120807542568376502691822681432381723656033928948223371802822999395178091442579120555048847909248055244961480426147246497634888054807419020591834858115190989772008643232303221582939367469579673499829892295461628522608678894265630683353025108257230207247434092413762167117671497691715866637959376936320428463330679694158654472400503499563101330659899303111339787697066040921756742777890194601218080320634146949711108559487745944997438436555428981265125634710274636864121517101449592892007550793733753860174785699241406213640062733801838436691461150855934959677953721721436747786577479051905340309829042458811016349820440580136539626733391807760389361557681825871933970768788777872276492535088518957312673193190054499148579748148513671897949621114151461364297568122139149782348679254410893306578306691237057288808511507030087046273936337889965570963206468808683390684121055756072630271807879034935982142223803871683328737895115156926258592667582080397783272182801176456312019089835428653433956199146880487282940931339833205760723852178230801250383686408723566670184770081501625063125373411378560621827882892568411595608773591581650707744411534606690821710019444136880146508597681056343707588430673912303495798824274104909219582347318977055004209734126369476336532762116759898081064509712396430535773123636131042927476207026051638970719676764230911852600809559409522486011134008527293397195976962990759477316127797635831918863766351214389132330832072549247864552858640876099150238990456539118357920989947669701208055984834856991346220267215354557116412139825899256736570439205699600811213943819042040231099179419960654145703572580220419450691394996938868955431845166861540642604821288527408713080883812645845200235785416067250584763420453350987948214707759487314863596533666738541441630598908731327929789108747377417927252644646951346233044860536409358804331910143198777117986680990897873386135876197742205946496647902732166878411001527335720346956925094013671407453391511230938518477865710416882811047239771134498133615365690999664302268940791175833596642038119637443916264556299115901664256122535437002743654285039347619070521968624759855005688944058460774756094559506071788173289461530682107700789038202356176641523742777835423911706661682024522975298466778006746323394120450607463749032281131558687662084931956441820516177334871999543641326090434090043709162257719228003182115221086362355569871917393438273514299551350115402219601272381033465076394035142001488069337131807679937533435700622280078320810979709294228582409884887239758948647284442832950099674810694263594019575011745283075698140434496181758384381021223524595108919764809368044910836009621168159746903240465804289960693525696985147675517033025630353479762735865663937560118125361534085909499576206605749176719025777475956306277735000034231930348220318057661523175091170688430067970395906091914512565958157348618211947106886232233489149769015311710097972653810535439027613429922329869243380829448791323249805972896982793673686346663988579479422324460461731450187852458228457179673728723740292646484256201545063094777285667847697019610831646697458651473379045006834769734098679806052653409875623150478238311379646387322088157586638142451402309826520294933094562886429482370218219818898857617163396539690326901965789087333871545131063710386074483346789236374330182426671851062253878996675811566720775964446848522582143018184099701353316698931416950928472302996979125437720760735263335473288426076888262108261653557733629932303378943276239395094918185251717175118535913476639646373431015580802332586004863820110610948202690043867804111569059008338094085179420772697070376307397200495833199517011849047422608247586186272009620805972522020837765243849608243105991029713554588588476786854689578734552031645557315004185197260824130363545123150419021574719072203470033069380198762418956328255388439606809876123147444594916233887318482184649833500559200645129005902157674346417767438403634431219745322872439841199986273904210297937990436761087789117625708980069266702048057027704938121618278482752224359049811488099485464387365093226146326638467145148147892628454132874309086559358500983500496060155060764859866116272535314661104156945253101877105038648750430931448936338149920720979002664245816130786778793351354039736007108386954119078691465330145511713518349619308187468358305200094650574979838536381115825510016216288414910503957338315531759847265376300266071405041137223940457703531991042489452433723035374826935095279295618390071393064710929864960569662563902063523762548894961439350831519448259605754780387846197042503821200163820183360094170520206105447037978637778539990148891679505028786394088567559556074231564454585891050095367502927173063458747613253620471170801636615232398943863281512859904834225471855430659448116138645421794992856307406646588262956618925701261633955897200013432522348402693015695438339639905367757181769592519359918292974553142899365092969900279605259151580705425942528771488433745396494170807818671648180861390039685543293763395522840577079062606328550680161938238053600334689061568057456855537801722364105556198507363485981292520350806545844039023303709048473663478812317977782360095143228561482551956172627216791557958516949027064322183182111102497366037187993038025137577588991509751594610506219179003342542765958980660510448095989741393500268242269979958653490544205285385961309887826402717760401371894305417421213614231928925972541615082420211929028652224005671117490270775225174861076698891092565507363671883769574710738693939681949759016575708647525444999300314058774459493572498587645691546230190669381394899401385006377555774073711173252511511964255989698402004323391896548828608647565993177240752811474245090795696927158474553031172812935045141933493169467480986981998189275513413390928995743974776885790997276952290630015741559859797146219741846094355627393028527056381228509594425460046618429849284582619655808687766723527880641271236969740887744700828703598924835303780369126423507482820318999162439398390216011252635238562291618166945958273801610856662708152183688645345535289297166121227778565170045788146521904317068377138569978907663708938788462691611076143361127433505296168795553004054975274595067871456331979012287808475738286553825337082570075204974548416797110028188636208687087862200581934649047443730770431517900191346234830284584850672108457016857616453120042848775427689036597632447498232426314690574906218081972058152130623521013093615434282435859465527238095432398532817836896461958135318188399019810692655783717753386143666146127010421971610988293761791507389688137148190593772187396671842749745463505800731636890123200679535528508414883193154999690605235025031181155241627403811500689648060390389610156754379060696217891455063987932576996964119043840719227996053886246732565071352251324405999422515332755700583425953810013747023625490042144968755906893195590204771872140764908801026242352366011987066646493223976879729894260966682990839126416462471769611633025640581240276577386448087364489780211712344529643244855597159009525466300705696105875724594216461848015257093438511339270209649626588546853573051667233121710708432970512515087307345628124376345328484480035563356405211435764451403658240600334279487362496313383532789856857535127381401729559333676656731700859223357335480538588589939903075786135937560110540010422136530938706699477438949961493291551373777912169863426505463377733304374698135442353402563896482783845340037004037863462555000216893291399909065900329963736964374856981984581905671454601434218380161833474244080001383037516818974792105027549529112623735957416633921394470953387689613546261334015465270554225424398159549616185734909278879337113575580658809633385466312069582779011304943113765321440858796998297377921296901522425398016947702584973073702091924042931119569468891517701799161838762856778194915917899571340577027085834216307814603618850507615210765740136437765717999128278182663465203522285235933140859524504730554261455311856273490350765779917818869339888729694889249942415104026909501858023717990897044619699995650754620148821705083623863517849410619579666917347193085803096800413159399038873319146972800285530460830015094370888939809210318607519609536775794570565781948434422694992646413518846360381465292952720809690412622094651864610515645440204028740956607767146499831664439146852698539229669589381346180749479967993422779884525053879705620415943911269429719247511189965034446820342149193921105566835914478939436851189835963417727319604822711437949601376006773570986896992412711022315166456778585222334708513365842176013928554998422586173389199968651726325518823687406895189522859031359198313767434922635997341456510727012555740698260088637915965881318687228562086009829798502445676180160746001444991368632626164050937454087453402617759445626028043942493545069961791240190450564829896354906097278808395329817519820023556939237655262920508260109767684529613120582597864689795416578713779935195884958981026007392400546260300180987746738305790274974359249391337235035014868540310413648613564861488789419384321606613454269409489516325590369389126826915482252078028745045581656858810724750317233520917718004724803100797899512025251138901689752029331920516783437632113283592742209856108798122097953451458853787721704640401506303598916898602335122313197106783757231940277582954020889333633498819667029065263589053001845630964011769952090489197435082589733933393132944721767643398890374055385282297105506162843649702213425848512283381378749257184449829714891663286482191432656438041751481187646947107101802511692085377543374156987596392800953057235438466794179269107515184146567808735642417665481098319881212286187349665719194155930858388588731016539636612714064208160106982381570549703969967019575976517089708820174534517335456783495075962283222910604027268069218380414282358949315411885837201473965601401130059361296679774634909122831679227881157179225742954089198770619191077202456560074674319513970732398063956360412564487817259738611888684878666781841824455880587342581523603404637596704392087108429097330939762308574119669093336235797410482585547376274422865976167558739145348445532405948105966368039187785899372304480208138456288582225150908546929767327618835760878616795186527897916411579481580094800357228401989186198906453497863707206103754548389442184021074968888345640240893716877924386248043508120185509839930377010381517117577457780923986685615913855473342794185757959124750055381650299051719456279715422460920834449969005900498284231255295094727188387208019103966172488183488298868714220093353570296567048578744095327365447549386914447638284353868965130326732242488740026856408718746886976979378494858308100341438020150634672462523819105637699669469929627490235277062221412301634757371032961749442158464886814170901045170309372430382610286156940539605553268907568534774310724513570430791569438060222010992938640238929013827906397316135308477180379352246669189264146755376808061676750756285961599719172631396098816152298149132857060451759926057922597054468227766717549636078133256455967366582082379522442019454790366486570052105639213128689316892602527741158520272958232768941312215621194057643007959793372457911967319201825347896818673538615380817481141807172338177056834043007302743739062822156789607777232572906580220865501744757452774540677646516827764403573621287111131430254786748082525061598432803603873438449045504292560585062201380184767503307843660727700656594890335846889018326896239990838611966135396763825840287130982886765192237797640399770970347315472469880426954820945075948510707793452609825436297600618077089131323489745753037693793498340732646434084707090810829803696028202536375535470324183524583031655009322057414248285458174115816818380070826688050347549865685437094771339897452416233984897555037854921198988564721741160618786404872512948961349222961508124372521654948217261552065279694141731517511045422335270815439063021075713878165730104588449919941654016835028453561186825489516767741775560704303973442725200287322504663300321480306368466794307509712169649477936768506154886839996708905986609801150489006755023246472958396908841568244016802892363451428758801257241730973444964609782605077269047132274257430144699527417526707908596951364452041609223676087896637844057815667178417948849343535256118611238972405934581296574203790990877768481328647402843988098589541943824052952748183026197699297716994772195997541784476628628359392357049022121498600270600156481694561150619871167527270289569292526976224342535057188401343079749323310565801766754687723707383188787839375188598173883769661184067321703652166508245586216699680236943450695119158133244812105617454672836729567622937828196367240685672700894761544790186432691928327593224970488403984499722865266196133806955005039810296823151042601522198928736190039374013656898783378859411963576415004753602790273486406189983131458535807552766633025878885300148288749212596993246841587780671707034926317284274983583748462683250597246758616591834439097452487999016051294710908058113718609158428839556271615691707592737076690342360385890847769870413813067339924788189605608506096868942800977560126836747395847211994822512077449133967623733699680579605111830209234830203894903800327882523144682121849988987194526927916490306879945089524682648875589139970631783826260172255312761581578746753947129851095418928736481688890435964343477543740023011661684401813546309112944153785721181862533885121002769830376481097173347823336096704374605577567966016585632563463201829352068532647853656225142549613255762622909757256438710191222563680850235018250181732287080843046018238051592673767586095549820498872450392999047229671334928152030296362053659458759585500116103719767957051771460368481408111236733880306658229422371993185632973968366730115297137706772143906602282493561047561171671853824752637210430753413284617402537489038166521592770783502730182342455388810171626988240120423803385479124933721982605022751421724296237286700376462128113061501339114408320008596593115260982132165389320568200077809511606644184484002498219190585174654746357307929033601773858078550437185467107277544061030983503278434976689491662674790033665922010754544313213882491538058878866160802804172321058093267023167975245456929090763330384347777498500874107138002363789598811454814124232405070975550093128559109668694960056243547979214562854791226322158483037280175947989274212377097093822666534017575696104641221908888152965236910831657636439055929068778932613556576677638682833779317469821837453781128643474674264523114907373898073183296692179043371372482288995375420138392503003127736077815125147973104225225683791980116103639823467833120389998726588063901988105744524384284970427308147998908280103468442869286549451534660540029729391167288680771500886881069186640510916260348248527964902076352933848971425030593004821779397290874194357175426318855461774250619364529579799510977222348736474906809113112432071130865508208085619828852653973825341495145629601112519503200234562250012470600905297740961863832331176532986746821234370647713723754155847876436528941158634401102188896725873838948489223278342029385502560647967588168535836680905174805519902587896572906625822623892302887751898084061219193911805185547215662747361787687212894818540293370164739362187729753222229183735809560713797719801801974449508987519572091296490672630333610026002682199857551327162048618525177927438760864795161954505042709910551258288513369020071639618380087598588811609976786089430702342095306042001218949731641846651765503957739161162162254325033173757442144014773812838346863966263500045541792654339415158817799800393143076905648228409592893355779190886228073231234401255372803351792475004984447304552957275895096151065578027149212011058772482674304773225851287507442974550521420584497202366320554002073107363471645069440589037103538629265670601329304994816728590592377237579114516769294202168838755026906195849984827043804633018560242675504659833433491401876934758255066160466276935899483691582122641028147032509125303398490840734394626276842238293570671002147939979676117746289903863782434593267696175103668390809793588273116280124243456357952218052889713947277440519143083800988926058716621621772006983283985149235826590917069965443315032900699832902799961335638819966323878399746490892905767306696611614033016382376843694015861866902166367607868504123380754882596854723053903015464521412593553326920385482162203605340692196246080328877765575653811334808699827875636616184285143912096457987524517479169479734573558809918807189337971279781029368182872204469355101662973502717205008016060916484168515715839563683160361931427954935945131397999030324217694851248288044293639536952307560807163203624078215255505339254634631037976198172300986934929941470845858751925654760605665606342475887109795768799986859843754721752711464115103756923666095726361176489935467463666629963719172104817627396228690926618898828079123498260140096794195471924411640326203761328480829834561395547773615267109059873214017982903917056377581393733299363121686254113838952655772709778506708437748736842169917844902675518709689934866570886439551451413862705499911700224424313061337337028462038701094784126161275923508178381906056374456210512741392404822669478063198544699461623380099742874564476739798828235680307932311275535763229555451573417618223422848980616866037403198376624560007896543576497168099465329341550954504408215580753364526640242986373485082501588990451065888933471470312415860613850655963676297787208735907527111419325273895173308548490834216718024128308665462534795401327504173914166783185022964653731707387185974274851132922687177147402440533539237846536475668722128156590184539993126117279290383387294849285943049044396692360722962199497893562482329405311844346148312806688081764721688433388095991377926994618446543465926392904953240853760850528468478468288544175887239621398850965445190450636125240877580790145134853465567508340753707113945296800843922522422603604426352535282006059825179245630683522584734705657725320995576163572293670130416198732584558842171351837195587246310608886944644304733280127092857292025738849659118420358408288241802387757787938515271151772923449796021953355282206101226475205966968841886207017660165825510865834768014308227569126072798994803035300974729668962841598863668451354859472698461297865738258807899549035931636213261179605915157331210681750130497622806378055519752603062809003949595993493494020040617079360370795615561478587022119266583286105189451217687376526340775691577392644172775088983583733463156955711896681381625998955858979038181219238819733894159240117109117471278591934394052790754719234918819884720112932583193070971269577556033423554666984982171832084512447749585616548083222205476591774606701949106959010406850645403815572474752975099436214052283421187037064919112410828125913085458012041581072445810611756057901915169400572459323001097018576596992893772328850404244449402820606846685389858036427234103366877019256744489699679692891144862439102784334753196095273693469710084033545674993744779537345032772888183968236960253620615090710956891360915794657635543078242048203470688749834843032551839662032036149871776440675246884339100759551795214464439245415905600851337705751023182320684938251366478612041665551922043475667360097798130500722392103940338945897472273907977316407548057797559829798072126243038359110490322300992489157272323130336980101462848266994252161171757464895686105163203251474179654741774643199893603034210333397074177882671870248478357313747146450108783651305133385359342848147005816442918698569532687348313116956352919658907698659811999436197224497076721295830084199976002145213847615557896858763936959690294548153601165085819297656621170687649912785451656539978115311547522587730274568616338186718897412223834599197655443978719651881841497133078578494389942651891534232827462270945289273224203857403917898990825222325810895330598579564731232772428219541936831572807778785954321113570832492887939503497542066022916161463711503549746167343294345596064669645604825985595460777509986945183989187932303914987513245864416997569601664184948191253444555426250840578460697792768069143210619380787719907011720983470963429600050651560889298775036251817243380537400085054138101381150641967005858183029683219997616720747074696339037538167306596651376108796436801224207523335738521872287373460369123714764953705191306636661280864212325601569776728482881430283271553279840961902219298281887115833083479898147358789334006806037839762713149549024927916080903775826218948298393706664405959685054833556553448339438425932763833000584379669300716798922206973428719168701955596991021515025835382011399731118165767140096049095177810442090019095950447522988946673441778786931099976490507959862254293755908953616840065718570483687909855461965781919606238273966135753027655567744988190894419414709811888334645561449345659845334827663897624778822646860532499504401555811211686469035768389940171081390549484826756118183782213047019265203420986388196625248656132713441373698966199142394938155619217161872198750166354939412614910998330447446885781406610598829803252227161860684923035743133700011661439632465295129892653408676403041999799600761348606469372136340311797591492997537483790459706016653291569585119343941778618089084285321548179100022553283953067295123734406461178209392891074401783920943911468837447138269605578920313549251124251937943833150982120932842646689690373743356058472656834435286635557821324033051422921569587188542305151425374899858164024000261514126691617266489935097064703253378727785377244175495145498902047268167234128274475975149886389851357498750333321218426919866815208204255934408712036547626149283700477546703674316370882129964174252626322799125239277624189831953213306006313321299287275186829868051581707991913033643781001059623387080307884309724658431156807503071031618551100397823695367788184514301934987446495599993475990870133257119317705975222374337816172259327318330397634778818564565815917029030806865441656195250999027810264527016253856900491858696759691444524926994601100720536003440477859195450914260936081071111362257554081722539619312260749815992372771054751819761782485728768567401946335806666428798199223088195657669428826016616585693019770498895319767410083989550351711384879913604045117874071307517649305634253037562714703809742245666660963418590407865346123756511990696298334618668544216061532968005756857586542051895373866974044874926350929040251584124181791785112775178638497213033114380091550713691629325301040249216148793270554717732833989471175244008086951509691017941012461614982047092878415040593000409071585948167011557407330296679988912384921759934945781860442129565613124554731712912321014086106755679420306983664823459455735682901883820142285998830137278885517461351652434256060417975983554942572251790346183995570952909175158921759369318773392575627426681397202831494027214362036978579024641187288739354297858036886714542326694883399783740815073369053774493475951304273381614838284481160390307899526766113604727911052325801698498014405523798140161007849818004832601403004779179848921271492179776957826667532829526713213961694723061441186762180020360154031183364930199444469063573447710102041762878290124965012624861619467215244522009977371544434423731498720224800048207246361874493861932579670491727517311326742183475803899014718513072669491863258220690823241360070805247751910890694729798926508994937378621227685148580028264796477037091669066581553924963328143084508017369905853257307066073615091702147704625696208246119534797368061763187379798854775448227308310646195540930943148777814978782390496405109948629921567066517410606662048263663755734069175239241259398362882817167231679278322530344353985478750033968093206050413556413796557692343007017222200268614743627163398064554400288952016831733868669193687848165480527922451862163725721936604971853621226727457126468773676040082103829759612489093233256678616823256843792885946710954344218485828948936890498531691455645686172680336875253330112018356957998029295601859967036335951275406457372884280404354317208886861891304424025362630536810372563905752486060189233228820955560230956411698619310760376385709369054277188432540872760548574614509179365138755898527517094513604161987558242449677213795567648941592115097880347388460910331976958729470116252545565663638615605489948278130466755941045588529930572809645558547065697331851136763417330634915030815825605208394376197445164212238413188811694297132150358885418553855160826500369803524428972780639411827699155334489178576225313307925670911057182754487596475881315696897896427975024534865034799771051556235613122722279593382537551663851029218712597507992256058827220671486302587981718389188291119812128861698702326576054557192135453517437527007339572825172818826648412715473885116544465169079114983650607445041229028012526254043081317659171293489184412613761173840195011706343075368111636446727680713354701836703884758164890360328249705967607291732071944973071009183733677284993679619682791476579997697273228630384516586923922586341924315551402524916900848383954118381744143710819547949875824532414619513831199336475489144583904057974745844091695093009646980969497033806307518026395177931428829305070915614683408226555746978890695651784545670000680682393891616578378660268769499414835029051958889672675337119620840091751008980133440353872058414170186390858710884075017645685277816038145135014011620779462475910120937391990526798623969049284835576673472717253581519335564077747333087312822776730749862439091224562976338965989645205430308426980484179026053926955935557819828142891295699172105898773854253177525957901571850066805370386676780996676711849877460730391004535974313224972086288095271691218893139591644011708705804914729374523151989413105644321258178836664983173801023088036700215990167578518102253123837730594954535638407202117461578647834869512251493418468085439585985676202667912919052058887106050337473644077078040866867382930190069704939114736095538924709099000767118680501594041403319013049081106530187243277136022991992840302006367893166376887061956326900531885399306730521870397837935943355817019848933347468955937007589648062754012309303587388408206585668508525245140168462556038956571672807936881720766098314100035966529205976719578749809245959399819089867590018312335440449428092651593808134999172442727205396996044431138022599016045830752011819249592715881177812381021421626802225608029708992882798299742773331957867099942666888009548394773538019666230258187296816020791828265159392189526616633987244939534773311278585605731946346890951703873706798807506576737498708956457706507245776342841219423618182020481597246399270542105204224640006324960207469887845180629209036212261384539783338921911862877642973053439694651788505180684667986087192832965646821380952591029412699643721414882065084656419270569886237500997653900818276894752462951257971970309736851203884388488826333894682733464298482061718649870865494358709106263113489425344658303062375331965174144472745925271349567723291802910043160239927178044017026818631770817813682581446681972692779830405757915576145850692812764683650146608043003370322040135920695288389963915009699849125699399613470700686893484775226806148542122328155353052317984518740144878661474233441084686394457427001654845174164346320708694487386558891678489365477156283860204248236090480908616003494910050879247487162461211221769510330909786710523944828473851361039912102525832869920611195030332129494686877442181231962990911863098611399429970859225066350620867027082996538405563035742753135238716992116285060879964504236234140926990680689364575041808861539259678830156060554202324784671184470010942834216852914232526789804776457420713097391828882458148381236106074427760668205908988650820546194060295766936469754940236722233957837166656064118646211620744759546580089186003451939240565235972906699108833812679976357075699534051499184130724423051459886201094554970526205110788543173442805773831326171773667392949274133677734184490265034339750988058507364120565096981304332366498269599584248671843783963012624630185922686612897584664277104620524236643838743160560879349337648341219862979205771911228102462780340265740210716714410673497892319927761164015001917715952884855717727815028937452781221113934298917445123389234194310466740935793930562483229074892311100149394893396061404589232570411711202487879539770797007787911299754890879870494221484542736722945926512822325448295829946983958269176357087068164851210268125886033961893239543957872692329669668675084382883863058270441000038039441710506392956111356544555433294513451236829653393226831310053083954524767876792413804348326479082201161664079543016400698912481776368442800353782380365969763790748147244893479008357835059439675992611604481855124230335396039563508368086488478006143285908160598919438938017287545023466515829896905617462112047087898284917713472522461563449778179475344919846151093343482641195254449717902741930258679031539370361433188655473875102912242941162136433163824849245996945177821190735200744647077322954584785870382408525890671076291780838024656253550100309140935171636009613919253073641568607547172550126173413800666609409784077119196721989531911300954437350990336451271249364263103474321935745016267858412479638089465384178634292196533456487869956607035749348227101444120735404640018394596540808110090989527378162409228932240106733217918174514637705350787278918518828861109968909712293462552736364393200308939146109102820557804735166335876043443456339697085117005836253063832980612365078965378143783437018348035694513929595306856193574600829316372356827668683093634892556152171499542984740033972019675646742343170526199956453401208350589192037801592235966170848864361796138873915253435596835817063733982816628166999634697893987844312850664945267764332945763990795365171390190172778056660889925529986962171711504595497753423694817788618127964420714853070411969177942905463336659571759682147063082074964162723820463300069632016982906853974294700877892747487494378405488983955151671654610706593521173945641943951213624240772947400377497134600436096887881750618007933918818166836671838903095408782665151034793808674381826863972620951903722215747708144956451781258436584171233994539746948428908897923253036080544967612854238926400482082595906235677365423199361299946471536801071927255394280705412180275179370146353209476743617768161813313104569501132859633781654301959690197838548799276559044628410716322328671399863324269278659344322697246030639605885129469162363239507721208222392544592475770059543211720820225557774947517029872965252596223317406371275162200000986912972465569845643459559419477115276235504094908653077668298310787296988409490230127079683599630108403191555981676312806514499046319673228494916455682234160160273917365200073964759009245084431588326656021072736809731605430760942626089463875143360969552820773829483340160877114225581573556338456711049447760318755208648961469437970901847644917158758765676524944366047230265132086182395584767949269730786301243885070274923134899099804665517606991297874583808203145234946290941579988727074343064576922649475590858106358837063983421950177348117273614091542626533815468513439151935259966555757609130163887108091416464533257339621826024787220554104880306045924558158266153433150401376047029805437031499756820586298419780655546548010415451961863626999924931435040114542320062479932126621467599159360779089854302880833751486050998058650687297682414074546336226392232472742041591082000590685538522840662429549400762565768001317193411985407709763567706287753321469404674707335895519613043282167892800661260776374923856190800540705488570619791560925209729846771668389319709473700204624865049931690857465707471076704219170224897154725347199605604845351814496314916618038981090232128456175603216072824811808167360890782401003831437951860782917921353409325123164539393519041976910464634527832334236714100816486759862037406521688135507333399344122890862324919766040154664610711879857153853415205425596092159963286446029494772558874340004311726953038346508391363477495186893783260926495823917684359362793583582506452498259986729369668410830028634571414801550349431133872717161047445916737484850701039904397514522190651422854244310528245403953943213846351361251101110554416508166940754752574647086927445394903353779096386063855024873087731126795112392617508403039906388240775629405950422203881371980260300156424019093290046330027148561883043372450028928382968066007837018607233010743095090576094961594706118514310315247008750354173123916407239268633395488782284692986251426346900084348819663154675565499170322210252770461923968515455932327207531794258157294707975485955763827979896829939790448753068858310989316285000131343591320388587962397718664134134039909271270089264589676110373372400550665231647001799926301287995207557623996366827204745352880051290673727888150841487296333756116719326455163557872049602790438594050288978694873686510744378060945679340477092146244381882443536299508172551001521750893222106140238404646453791435766166146611002249965430036449569902707563560376821027829297192986870161060835435526756710901298007315871860298849161811513361894094334344761212436844029647027016803194913854975623741776190306745717734587743210969852588876535887817701432809038063800132417739372753117380739691737161891821941774243479467803070273242748194116933231839376600684778228909891434771426936395350228513526007766244182015776122826681153331400709539569014410816288891097635694430928132532347294128798438839976065077863791881105719594817605358429151103090508092101982180589817053593151604782114141289287109837940912536868957903784389588758162516750135114640288520863401301548759757609307708988760479331527099474352508020316231120903146861946269280089861614608849691802071617159476561477830154748139867278867147839392950127160170779385638145749531475064878756653891731987411813909487893475933222864815631500069387342636376236597052038037888995265048652373177477530455911816369276516229908112092357203052717541809103415597410017748122281191385846049796888763099682759278770418108298523911974474827061279558912705438022921036649153173632155021778446605588270597238950065930398544402504372531548711775238997014023753386719960896452611590696998389049745869304812346854284212348828117061655705027965195313097602300159120595835890198867660221315792408180581229200700950877068382812395701126808130572616810964326988254765170437651917912686796800164216917167546975500370947294210985258047164376041560313026732430551572471605836873783217296398669892196920333698228803353125680357510736579642315052058278192654181077607872923530705860421309829386685293441883470525539293006864484251686115366868307283781245773709411666532617517412898565624489610043690801766301207083210755670850282405231420342171411684087663877538548847189523809048032504826542021019747954558579931645414540639650777408018306986539126861897666091517929614303369810575406912791523474964799645101794133286232113829138554838357479133051018313699453161826583827614506709479597860541627093418129190336133225551235957690953067163135405713375648141801678678478253653020251584543199344085646647503186833468642156284821251758209158469838991617693212129515108792625873011135956853001308517075047628326255839036392685272481140729300898243456790051833917833521833483135327880337902715991077798719936395486682215672814987665785481019779809043731650911835736945621817115321944650961106305498293060948639941122989501514912267624733010873647097284076376101255061967468752024582048665071552297163793739258890597723062143808381761128628635368579158222584775939980769788491499905288790859362795029150259805174169129438284418266802820096931516664863130248955658720043023152926117738182355009637608866981064398572063278726833928022188451580863867243469846800593357202702080767999462096102845690793950899681143492702137577746206219404914564703513528179556886996494962154870335155701452623579879432006992273059022626581519995105328399666213352864822483431263315841335011149689589351388914610734851414902841624009982717904944136176263177400065380176892594609392682307480240782028468601606649619713874769499601852303436298827564986237629147389351270299045032376467733791874136159915591206297239026529744892045530950071815512646449236242455891391923563259646951805798350406806202359166016699230923429750191679193700105879637930071007880571642593430287193795717560051523542088534099380382984114071708130064219664739785323405120857219355975346437614144285257064574298374676432622615354991106729311968384152738176663490074133733151889492413205568994092111364118299523927019735012271547759061337174932656329226402494815578980373710629893120722625258628034190997446079329418972716111490761972898455198514830059461812633901683004540000967392440065061453808172910494683347784966748260196811803541771320132786331938309331798540580443222869575916293629217428056006166595468535573111951513456964928479220128173802338135894745257173156368950493102197033124783208457771633736117404149118880481627912244534622016054508733160153957783523506218454757485012103362665959034073297606373703546460868524122110143886201217166255037196362649183573028648378207697627488039938847505742311142234700328244611669914801399403255518419199612684203297447204431907239861712579247241251390798520311981191924421022234393643468162809612353660728760500183324080040814365022281399329188295949172322731019470272385705149347496260570343345964543158354029560460328602827121985390408592502074558626234757920900126691201210178834819933891808926186356550325125640771426496213616407317289430822128157507185477822587023754625928698573378271094779464799109632652153794510836197988708148242941740881818024738100819150289430663624068648356113551503421340208797348626854166548448513815637186221584282884505816927095805337008300261241356064054288993861168688892836964839544374636192472191116385992149178007588142642785662353944954793040711187029065666217371823415936538774583049782284856543579305235594692297402552722838187097340466380007977571894506580170139452111365765349225281709029141623346768928957256985959214802826551635351838669259309800514402267707960222938730656375146420830419611440543778541041592427692408768250586490288065396434407427622632343032874417233838468188027605907630054650629163301592628596426917477231069576144254616450178665626065464816317864101010323578198697862023139253503517231628088410498994891398614756713827019807823906008008979907910818253082047482703610430894144906826571098919463353406094296522714914378780330144847438608817589784692095656743848850837359174692415135933150155298777620353122455199833224366835449363189056476414365423624351750977144230905593543298915355643223651971874403245508170576018643497898902162136420578852258609764294757004403231209770638657406774008471262574636069784637110371551791086691868892922325897061632364368625921526311893003271999972792293149735525032561484828397273989090846841806151151067720469509934161586359777723007673695384671662546259939706535455645961642715469597138094221956563791379949733664948484473909129604143574648070394748377415773342375198815286519425108692424291605950443409293774803379894125678787731299501512913610392245259628776421145849968030394174485884641299216146083675132756823430361117189669954963386979577547387077381140366001658015079889663650261841813738482158131598177138076314101583953029324917713688863677543882503353046689325847698466583468043317853654763016213218480725208107077407554197954430134682957153917779695992664510737941793625501507279129866440534653632089180428956653776325122736069552483809003097930227722980890607716823795289060050010718732691946677858526148380712112278695995704200331651769975878259269327188465064002959213211839881648452411686999851379163375788152832359111826575449047355269883717455803355515089427108791626618674730438316685847883525738295378942731117921198038399539631034804268759002334064141676266755789034999393052606207651767202553588382337046115943355443634813345764325989913874894166400385715182800931986727408884493299613209799682552343580289972751507712647083003027829118314071898847903731997959069489802548266034141089818397155056198089831470527425653601433928052769437775888498087735280470530285728480939780404983349617882264879681565756665435073965412081445587220305195603982299764940440631227141673455111450259869701311533408262662965896011543515531594532182716192525871966530635508063001451648569454653801485752631714114910050653002671671378478751266081757439920099502371950005711695457352335279030658087613719029024151179035833551290495317652599347796217738806825775855153394905409812940363862486654741736915742257472383220642839324297611658508956082336641625833264025861558320850030418009605465149737995098549962600102956597816260503332399922588443580592422548042123899678422761692307663564876346070739139853407842494587070732057094956833782039268938824753922944378222584431278279981464228217584690108694844437263762375890925934588747409548402959625960921733760088324577743411500201848525420216308940855918164547766475240229930236926584116748321532691941235781335131577794141293182829780482299251406960208284235183417061434422808317162590990549580869263773823509366305474102262727055921277394255686639410523666940897349133443565562980599401772919369011589023208833174701883849949147466720734061334744907678264786487492356458849019447324755153045543772378675110262408789718648833146688782717551819756807816575393384411930397670181860171116941383314340931241511723917845086248368272137214338293147548125298223798672156893676094261741973101381870436565983119568293916637450460521833736857134703608263886012228805649414998707969656023885302440805577710541619625310206410862951599677593050404282928460375658902984902208095755519491843031284302811673899799247433574579800205302598516743513761727897209951413937268847468188549440305472239795804576815458866041231695577398563707813031123071871657887392382571135060170489769170943420036987535307280409344106536813509962188983394373839374495606205515360194979798272823349373069004874748217319942855701659561416552791666147814356822189646813768907199582858562795890198806617396653900376082541005044961404275881000807022162709928861530775747339113933456725270945933898642731060566647087871221417163289437183718476223454257338747990951961146379502536446864037265457451930107552723382809622605400460982693158102339957392649972692691277626910682650798365171309963835517712405179619525032214381579633388706998446934089206772901563216640845152466073686704915411004515233182200177097627153242778941841596979199965848838518813529262002905866913634175255072711455307147559996401554172938616801992802670016514470697316038872581903574301370979948525108303455375757115774259897244285011676992924651089885822486489492692282779652329653161702252892366430812954409355325263194686836928374692602594544171511411610501111635967664623722436189927887648162305630787498155472691779734602927540784023938557450959782248270253616718257738175302599417524312444464229593653989067479682449191084566810285395956777228958449672505038768154865634184706538692466795503761906160593263030263062670271999504357515922775307119324301506285352452403400112517581964701037033627681210894492581175915266793940405141379466891712132647270667075636648637976842128697307027096022014739597804516784428243263395715191080448988949240304221920802547497560618411634704683302200004454114441520743642975906243476650635549494655334759061659207515799328303212569332286826540461383138399112618823912916463645532157741483369625724056459515758296654491990684300282916193954232703235050229120799845284294395729718144902867292561283125439701358908041252892793885278237371661179135566680420289794012742113552150359000316538144998055142214408342182433267680784050809502449437109296431107090225500784619829389555868078505859222848621320890773892514273600092946635246959350212444606069411392656213700268459786619904475593942503517921547365406964174805154927464865854952366120770147822355565666214496301500249737791107684856568652060479434929992113318875216656670529204683995161988749815852816479975661154538631722450830311768288738363122216167613554458728292360649218045851128299548290895691752526398864741519214219791842605458463705076782267568598446200447041419467037446030984557564605785231086136309733328794052396690080267051957022345536720661347289917337421838966609779914556704686359959327058600812319272888659835050689677521047053302445482984581219497335249155894612583281758726023852733046936159785079585435527700580319762561824457560613709915337296062307871240562584329535266009824065531119864277878911380507699210019479328460147694494294086972150556821564120616460599271087791241682639559728749843902658833322139158155890242174204854615676771733697379857740354371600031778663469560927364375330647277304904000051033471169381235327510482587456296425191310326144894310314616248886750340173657684350097762748335665523899138822351381720833239716614445131416388248335713785502547146533799832255846558092200410655745182209636934161823733164503237881385277337904973382429299026456474975587009423305147172603190926326112272077048806339659331658624759273292650503365422458223795493092884555648672782515492761816541948654089102989505327312256680180391843508775257134055743849708135300254564852212004588665540059784412971492542055741040778708709036146710558933572207548426800545819146532996653467788455313291253516619797092983794358366061668342012298434702978312621319206717222372167160864155948246933861810517333522439144644867582435567335690598196648151033046377820826058104957985271185194680742329179525857121154200156143065034653709186051837893787275134341830479933246223845600606631927476539900972350423004391505976153352258709835761631637670417525940749049102560755355194376732201668387673251445465918837173175892572687338477156149807144465186646284472154590844982492389132349771933678716256337656694676170991090577760906658801249159671378938857294008116486252064837034750814765726865245112468544465600210356721499315562049609679207204487761673822401146545164170068078600962663815775180854332664628693931529964069892273198031785469498332784275435426901356516420806271532929183933744094273406770796595614316286471719527565986733265364758057000715922573103436892439288598522311598620776048807295911972787727288780496362798934489592223829192770328994716576705194027259968998899711106577237478313310093895443057558390920774255227019696354514857368030419120309314724773416191646032064953764960022547374171322257455972209211834013232984647875210502086596626996745118265069680282212687788600361893136041142663623016625397357009284770328419741134938370746624227108993168787784329549488669528397785017366996521435860528072042516361743769783624503635105988509665823197469779037672346388595521428755701147777136348386697643022175249937763196517354383523819203544011723971706001625471367889552968738724110160301741457881997478402779696838084211351559580272560629110445170547437909336717959807234656458295513782806157028498392920848593148101781940288962191001813210541128255911585739405215557304568949506237175051479456679562130249167859449165820875555114988341604973794261056198948533511655868907149915446419800591152370701228788072976292576133921002209520230191587758366683412757713548249380552428168040150987798511326623082394989781291082507937213416689018668486082846021875251078668551332831238310981615145765774900931370885533463992569857714581544665821756546081447780376068004523087764167326014254243494916044871774024155662094185359760752071251174935933596493540582394893870299518371459735848525098291092312916906467116729081738381070617975873671977260559510892843258323214409546074873652667555999627615999303924840902267912254840312954954237216667653991967316922041433230368390677193402789347018330036253603354379170104199593331602799741336984142711008592599210392284028535243071424906712095166329470544246574213374889794144182039800436024712888981535013311498806405061901956141644293787467285972699292021557721068146780931631631046713172518463704224953889860137201363372536300831074977127563604502560948629129035882564919855960262021616206477173442390461992861168936309266490242748808742369233148026708378247001614679286532170453365587929795515471953460423499536103013340069147296459468565888346797626739134425233458835736679025005263961738683851562615724526558843870940463058895407337738020446293674557721375168612043739239397340262735614991037349631161137105730609915391051882347427156113178033154630453017974626318510873011089688151996589118250449918097818674600919793845618733019987574385101964466656178803017967544413817917891533092969292925980555363834030398586047440702729104691386571798060331811420163658274942221515994518420035553827973706803294226891238961017965916811274670634458871721960532041143236642922851451774068776617897478425165780227388991633664376914103639976006488616551428722062839177293655941785285058394729390856337950760700685484013186365968500635261218232204272771317962397956422274892352018053739274585020167891406147177291892983031429811283237720968530269890856578409368586129904024738486134304856795308668426565491912109921998007483334153136050408437720521611470989831331621892116346830698670660837326813157416564681881250173638712134620901346951905040403486609994451959449843093061438398915511420501530512643291560749094238675480222615344966371398938509157191217538969703692156621105886097785447904687008636556235697801436310306064143437557655528018552410802438162326746322293340086038945793984211157422438461749983332035610946210947925738097703774485382080467926973495687094587581948172433549928692587771629636494412183655281872485995225853731848490673792126232847600129202530392804035832447570145665724894292038030928681553053644421084072325967318544127904866077528984289582392373469275485785465711528482978203022758033854687808104044344867764624209485952466324090408001058550876834248554501400896503007130881238592985476589188208087929162037100706950563357967275212890945059603932703837110051324560651746359799652911067850237767581648362019415400427466036456061372274224521600276065475040716867424857736800344168135567171130125375970850939886884602668567073667758136038670742422469620411317322695265366287547168980377361781605226219800593127172911734107599343008044548829536923280950516462777654223531418667045794604730298001325031405815388599399418490803112446912241283275841926727410135884523703518139126314811498838111677257118717446985643898713824444391987288006157537762720526941980671140548749986654686329565540750943989191866433133882325301392760609097030081424121573577790391795491836255785707890975658150387463844411496493367504488219068977867106591524767857128928620477845368678595196741096575154610594010871668586595206434429910388230285078491854081906032980211093368153303307028390327304321025701184017030131422948926134728360323848483521778266883226300740556367775227784726336043319781697850587966962657264449132977094328047392874629134993825594771426757885301668723593160097313828770224114301798639987778863352602647280528157356994165079202234519630069058217210079262463549790536930656897110351057438509424756319568837994068992323185357754800272464195077720607278350777380158465516669248427879077092412405860320286195281702520615185965762766030555087009434310563494454773432730535055904818431729954223648942437251883292464805811388109105086229859475818056575370368544824197579892603995411294011428737794231958422562532004306017355262669663075609080245071219148075308461271194434348268014155339959666621459678779470969563012238782323510426426386583108821101899289282357422902650754336316710088422173975215916521478785880487588723357659266289725752940143414471647923886274488886809350341737874880935248373239583220714712854539397842891950451027028463262928053364512181625157730206971820005728324389225195939261169342514920237329751679924615828658837146053898726632317774249162140282678449040076809468604425463700983203085660653160390369959924859440005084469461525009854921798553806887013735118559580538947516312094615079719693387720799658988135141507243011210225231913979768251835115740696598850082088728808210480169776553060377275416573733556491316700326742166158764834702946219683160817309160612808684208029802659010015909308820039115218545967752203417954000080733939888726965126108810284437908169852597912578496440691254831980214791594748543659758381281046409851933701409609732976409122800288202619301323893363279043768681641051483543017656679368130003723373159050947470924362944834525308947828913224930531869151102377528436479871806443469115281539847636747384576110141086768239159788724831055956379177664598108606460095891636130476676406018838339051779466984791974475691042147035906384136348715878625728925708358263290701995714561223652040380987807538743899729806188684060450799191154135854569347270221421688025796204916113307394853691890400331647445696260437539472132530734536517775671900206671010481978587118925023299217192333045261499121402464196336571198099255105947629108021256908700115553285333023730590742821151013892129501621343171425053545513268372142875950516910263833015236111554142034033836318302063346612429382998692653031523362151831572864939741706929869508613222492150672145740895911205018974060599244520702598252648456101866803502046450312453435483453916806511232695857535224466450379579677155347048512573512207402601074670210924703349703125266699877646445710214899977642271598130611245291026588395909721577848382309336434701355956364339334053363735443473932507104612832746555287846085941951607405585413867199945104374316678737594951929596430502628093720526584328569870435261736146149322028667164016508190737874767012336063328671130587538942629103340090527895474216953373580359676294541502908764345046068115732480346668180038343289391263356938537388349849915741438857067626203155156311307169814281376863842344152858978637755649497261085857070434279510373486133969187695358137915729467311263179230673750525039636384482356326663280149024487211089721080576521869286048144654581108997044242493179816847122218752893185456690510899441942644056753668542497115188985893072448359846511210410948385775004761587561885959398534400823820510427542590849729983371299926426622484048490572461778359680368236207510644087317933179593019519696775442698653336213070492543382139666743130770247156679875075548823969003092538957082841862176621486194120550719387309832555885611456513638233721134655391794291819123782246250185915881717038179459243414788249002052032623364535139769963996574428526156304010624031086118344590814435616884138389394525674033122094232772640325050799436673582098667871852388811589629699329000494504262433600720882184313332347280654500333327633932044484205033234365816095136221411682337726432962339079605445696825089729770633317997169142598446730470687129501907663466478625598522737167457865926578388252621464328691444675286688066739614529383929081915563698719732148613759726572822091268334515499979482516333186339690969958561622279358816435547823076618221296989805355607299179458514217131428322289244852303638477123945171601722687411728248137713516205727375278623040893138247084225703676836262512159249667822560461060630400330868042356559317059281427019565964817439369867818725797430757278067431285322821548780797340740494480878652535818457614234477608706693489488421040414695117267993230635460556836863597069474478473203680436468624289240106087425108670251874675380269758738768085299756778870797931589261964209313587900706745269312200551552902181329167038343229403068178902609977453632636917042938490854251314061695537174615919117342662654714265283164196358268938400802044665964686710069052829951688790883340085961209053856223874822458392348086627998096554405695071468906248107423809631995978361048781312189920635556039763825614831551982340636882660410305506435421165621258397715507743373626976369993211435199107410425766965029876284631049287571945214670123073548653755201746300733544065657820156377382892926356701559662920803940638871806014791346900212372948256052014526366233682728049541367314344115407507164408661086140393815989863002621266499888525783395753060828459142808681466429053856889803165316867092385526191073148007799496611970881459932748613132960063328713916779409069228743330470415612395536985434739419601732845403389446575338275064808290899706524380813293547788783323060988876220950817389012177120343606920270199104519512604575721778362140789535826372916973648907110734621664769747180113301918960860811647625889805392890352084857987742566651213432597892430870635997264524012005562928747083300563844403506778649980628535413881678824628447420858674747093040510143498494209672975405460427999736768282694859479794391998701954075192421208938477462307138430603297397034790309250141182955603021560175782280796401093267024708362548318244699143367823094387571297546896305713521601173348924912668164019861277737670270517596405962643229082688184253288636248411983873232199328436374491021304265356529079888559570292388518596059372318946450970284929010406270579992292185748277241116559529957672356194903057948806964135949555968518054576508417461105152750321875980977014401854331863178265766543622843710849513401482358220250986463074507258837243965490284229653810657091096851608858173194729683883293239516798617862199865766965049104777428555673380706676066759552611976094532045542526765537757208607021990016220447586037886973465633785373368181204613338907559808632417683140903328461016960456357562135066674044711476430854559681470974457057442122392544877474884560499379986377350279326036439556724894143135311025679670534343205866356642081186388279278265270092995386852872815796608339344734079492755987420063844911796131047668066163519364427538062031278707795724251594485669585858319383020236245032587218791530902911001018195457286538194599175064513709722708519577925016424394374724902853267622457584171260473405301015030483817528511920116741990822029827055681026573379891239790275256776360749164008400157846360120583045281276018704221633275014558356214684785661068958332890612844074353537748005961026102323885014553263172337365774901046612130617872653921528107598903121591974171585070411132677920933026186185890089880216756075551875381337580506178430203496445015718602095172190494341333576182336227746507956672574435671673536615303184583238572757747513676612170443755296093230302020337813191937554005822037530754717281063504910018178081551519766857074796430157916398846941822285922216915870982434304544625651900425692539769740599386007733632445461718971326024061169027932132224808125696449894786768047448701877360042135388514225716295646950704511179415728293462183961717857362738984376693139987763886953841831011232380013660715934158963997447952397961650212374985712384312327627885856221933756409708920317382351001816961067978097676571541670845083015864328730135970657549961131986401055015683911127268208264835484409650228569524801927245165643514783655489830327679566525219510218011859540385164867968484346333571909837655886043924558302351336079958990211204341774142491696251824900817991889682528575471964885734195035998428084563990243104505678422713890665637723743172817436717729487234162911281336927435907914316073032671460408148986209270868262375406914855476441302289293867561528453351914377399558454299101236125447174343317180470638298791245529418174826654812133363375697573825100274495318726066561393094039505887759852512854697423702144881135744077234324193721477666804818897759663955185158681394474654659321932721417448305771102372467537217313060109686293585208055197092216574925211767892550280849552721424183805923022620627973672237482714017887848446452750910300385625705765952457788098224646441389344091964483727042287784074944478524316021309867968469395044757587601799048343134700420231585580426875875835629486872247018779001783767029660565472891691254441324339642257533922892407843468345823711966608668203132440427034406924602478397859182489027214285793947008102014268849872575093084378298261016485383208627807842455686704146059750707391602937050003515057309358282630331479825428238084974216350534309576756036626864138281626282789423100076911356605331875234897221541237275958171458119476967893982141673783435824087964762809473402128412796572977606094585194383045424422681768793775236168145871239976418197974162500044511217853285931307121736098309994548206744629597690056634668141059095971010933653682935900783481178850886743785832883148352775019710125747041020264435657593211967909106596296946163651151313750236284162746394311905279686330620015615830447106974790193470337536553044856037078319842205712820331126074952879002967722667317500850976483391245032046865320893639692396293954695968225532253893351344999222341924141072223960350004653245502410502833660925776055337608146101716402717190109396498614127339489866954045379285997951378451276082578453628684692319677320129023794660809319677020971913660187170465578460896407654940401013297449750382492128465129561019037572151714273435208956504208471472166251214957507146710758048737917963810934143226175714462416236043032342861030801070845587783624026749950389537256485589017211152470649535985251085814923683275107173212133517874187229429535081976363037242321198322154733999893624250202262210716016234950401513608449431105903702492872197075417755381705207976738311436717459656772602001654706319955163439527515515454321367477710692464490426311537936706382233799140479848387289562090885520177153496815151791899570331386029712288498620550834833975227157671902584160397331609413802554512384389188574627164758282449608858021831519800399981083211208020068591738049935351767903607218839370030812057373973203226326367285969736937674739874303190630482750582529257308211630407624688606211447339420329563078378891485473099870714264574117504270564289231104083147225396830809066160440350938651268787155050147338430214654370150843709502058192258141057990246171275087135151724346122477091038762736084928164373368517690878237161299155801740145142099135766998041659382531446569753084567676626343169182981079174628471783567139739711809673902667022884897607163311680970789963761482591179143361863807877490352534961847220834676190806447970723186651636794505996735018542337355279654521398886720592937992744656678815974591938112945782250477050095438553150958324226115638391225936612513749588097891538683295186855620386334463179608149249932721225976855310041119329888983041203173151751160279164926804505367705104318943499007517284917109035369870918134561981203689482181886321146448859196073018123867207087016789077182491820310001305787361360251103396183494471027878258339778755629081105789284571975377462047226445891713486360999402099695808707655466037600447365557308873792857562831459141104131933139368895749546607178130098313656046409776442347037239613816560435777961351345059535971215553050225766736197379495491034445439524490400361502083507116759050581034911623099652001308110716481096776150635581718690647257974123323181278907417142560341797385440669830968217817944456312094295703570857787566898866989613919053228509977548093301843163041646509443630189237446155465902626511798948356489821770672768107957863113321383229198848101172775002743785461401464812015784373128134359728166787642248456486514307163684010372609624901806086618950925207416795412846225233144646471957591381744661727392003075834164458750414878129753574423556685873516968911150592841436251893192403536476442551468181013531185850789199547848093732311275347123328296143907190000993775169876354312672827968157138599489197470531923291122217458312881168081660209520882332963467900918117894337167020168921245518635543498802748191007330140763360091189972762950198231581750468192735689742917378015430983680623368569919789717306742142275923051693748614530718972870719240520096013353438034123251323206635923941655887924996054011257378647367417303097248113076038834554741227986257726831356242107787813041473429123369959978088704786476404176245287050490757487181315041938574478043244757141889669326061001790714122789052551587099906911843999222661531882942273574721009393760860283715759730196596728452733573114547691581592641858351340742852053885274018578129513260769997256463391160056692863442108938433929307524110726349831641748795887043105652720684355593098956376114090489271905856333168205823273849567156575700246210764850639514885471518743784268836958269042019751059274305957131007188249214654616447203567571430979929426893192106553481443263223885575328132716349929519535745795123320510095234315844757554115681290002439834226904135566675105602719794779252758088399039587757085276745334896831034228175892555739781656272739977103098204044586050552204571812479031428405001161314114586072439872096323262183678369161046229438059836417915497609531800183892595850287666497312331049131270354598341604781523852955365691251332123313147829980010699166329482076978789812151492857097129146121933597911659946612150715705133809229205383478594736106172911744830589366904852134356144467600170900357786275604364105830550355898642059682084059238133764510830545187803869777630707499960636581720741932837669296535759667211979853992202543685413292851088245650399132726421922410617650179966920347726009572041894556264382732705330449257650605562967864543231792788611397083601128845889070106496165261924501141482630560602981300533549655710310138161974398586713020491713550149999724055540204763364472624260568232961832055349063945585767574285323309720584099990451709681113518235872929969556903338558995376954584837060194065802570873300123454647707863473343409001700632023942310476773643896236876125251800301535701416552771174083792446031726744210309357635406574181078103152642238390001060976831647463235560608309188727706887462293105462205604148303579609292455939650187940342052499329401673104108746042664140870577790267532958266737350242454981677566900956763579879758087558307885078464309144771212413421910054492909703843227119972691199718744805111273951813486625439445444390279237695191857525910754735232271712592150980398503373029139002765525133464274390264566716633769984009158467352171384719609058109707840442562704942810632562018407078455935559198463965251182491365060558295979992369421559739651764189847902956557855487873032521818649135648623866414334689622483014168322828040867228193462096182668065617399834166513849374590105083507169185866388985218249967007564782063035875863053921690091771298420349813886568174711520558599480500960357242162322146333492085905810878594388308148700606622524666580377123890405987410363173360798471125594546500181766698679344665389021380111284464945962522007560286834330498326206527577182320648731495259274738957345215280984987520779870339520815359624755092659339043901229698926008182215913583092550015494666074146025878411862699259178122256900310580127469036834766880714161414902487084693977639154192107113254947339731308909142895449131467348781610856320102508213154061753562856086104533879579343355352223266620970973955166740631498179405170160238839477011580840430590010488049528200630429482540154608698817222219040658271233094519956119728125633558806839906365178211518126355251088334869563074455861870222421420705853721027835097554945919847525444656516937679285699304066544887690581985852103989176533631460337713200020009880292548540500917740379969000754892167887753462391418514660030005175779190054181961335616432906776394331118508821003049912903166873475248242177463598833866642421764194594483448833098188963810022016628997736696084566231874834964738003992120090209134781275815162609081282611747779061596535420718489451092685564239683872110948177941972544561763899533783470835150727497952631173595888984886944539482876633924054129535159348701233049163522383252543748299581790399482707207674175494929593558607421894521046539801896919113682030924745236900033342961987205370195317400809165214830456514639227919760322289111424380860937267507366929953255919855696833346767431696209566985221853508997352633645145916412951633660574959138377848791004446166476911238301774640854203514845108086576173630477644068574031014944698831898869823362561597530924579286998423300553062517192574085276876189757162945672864625307938253369246202458135585869257902465842308219584438392459192427883158203044374739577800635310739911673397997601180601600504538235515517869681237325494438176772287982880914282553074856271600826278765590863969426866604939008996263559349271483431645135110095245029677151265867002691227931686105940048217606231968688892193462575088040685379779595518774380457101585451384446384488362326910525935159679580979773914915676356769709520053356903726378968201317683572945963269567125226646465209726873904081317219757840054452550460995106855784021392741545781601391373509007418707871535395896432951841851237534069661485025998350765667906862646186459057591039652239671480752411302018664762558524586550605099389182909798732840111820433473709963063914429477739715642826973926618443895440663143361459158482030174514171736247742110236127156733302975976683305365851240401929386778094894491148658600525550972542891235507838571395257651121560168278699343210013616094543843339973560803602933905115319644601892408827241359778640112594474341405057684125102703655381527337978771032582530760064416412242120718584869420494376846796158907557488897969463562890658737636476659487027980541830245144665778119640093080795758895834155722274099917186318882969883461542812915276534378061425145090963612462241840646279037423568567093558432033970647340924746098278665815321158182466705387186591367750430432649435620237971196244796064336937826038630071813473382562076513937700831897000874410366508689712112693427015532717885249062834730883849392120138621656161677914771776165388765485884754657168374738960490370920007036558095816480467528266062592783559103457749566057320754148064091536753002595090524485093561813480354821534989089133231859036875423940862868075630790932889858436717166560760244436568168036980339022523488674412526294087441693526819670396538422885354471552422374138177893582533020498994009573220650251791021102222310010829960675729721977317319764786344591788920044107412063218798908841001657234596564706966064435558307631335739141185814193061843991014665455088083684218814140230752202288822400630557918599095851123678711293291651046945651900220509591669478087091050347825318717098368769918895956515692852920450501897859724286660152242840239711791801878616201576381286587941406609375195432625266212790489353361299033816862565210141539699887958648283495461077409114112779073187688793998948378302835863494171017120721550526367110152101887187504333373141070021520448568891231890813761209884890544034343799271164356436555822970538363556368681805608819295118770264113732029572453894041732759384835706313045082056300456160400542089470910146204571410604855976481762291520604722636806775125007547432657266882949138268569324013189299723386565095909193162982868390557502317554697824158745413682215689913760961286312681590732493413280316035600760710680124968926325045898809404055610011836735989604101752618884949145495293723917790735331437639017119938888819689130158465253012797596870847299952250616889704125586725878100906500691889885275160448606584056327640796486416749930623967506802813043606514675854032414894728805255676423096128018263683612718021646783648346784947216680348524770994864012758559866956179704250787914489478557639475360359085258741791831033855390249257049837337714038087630058077345929735775451851225989719897668488342319854902766475516349286811654387225995752653568855115625126488877235956689159519529190721170291615092370751437951341229664475005327767549460549019473550330264188954307640595344998812088592090907993588676164047248517430487167237242731114383676359515485927067438979474842373580083622077080883925944957236683200283555727257499907664206322460708946689465242666720751943653649671008462895127541519356763872818748904115759528248122236682971080318571966504787263925959662911537332641996304767047612880902824600916073002626942849240452267717759838839395504187183027361101365234011785828950828002323258945494717038353576720079477385817724039387381626132351258133197171520442250096051237796680766535240391332525513338113424648169740734407371435023401251369262242125123941254587414032442531439717318686937009837283084052840577776941508438281338205150101000503149221586678685338780105363074422054863833991447735860034209049357762440070136832769609109481574105080274353244293376158322401148248948111262614600099735355864568213569198486570156474602608158492778161236372548621730510451985891704159733172314810296091343824115864583265261766035914746861128087119650562469497537246406788776231010333483638943867873975807985186623228213433013775144626496617504726698311255928099860527583901504844181489717539370022077757336586148953341355422824847800093360586599678105259161090088036941879520573194348686058759943686521075931433412833577862080225890312648419517690223034459119881657516893009399519707031309121619677581131293221700525761360986956750588212076790768892604570566111755574716842086346129906004136393952957447193194806738127830185351905073904267819458065772750921927042160194772214328389111439269594114719285131134051611691999361117493443936200045120400307737394838132247502076266323595581689491308608139383993987861769930568894907412043695093924023573878037449187071109270542697678161610137572934722427965048152819850172108642220017914562927572840048949700216033361764240094988688497939159504531740174347270287646352013089840133272510420467651880830705950229291850904730890105500289705521976945859990011923179726313593790907783913737109541216525865524856970345002212586737841235005904257590109919231652812305575872129579606832331305247946732077975800416146225686414080253674809372694113195803886199088456943056644881176181546030096432826005861127112228104585038767714051417689708799390053070934770299497582665300895266280980029578349832864616708009963752750900005421834770646453139138305042054987544246018410589007241597189691111161487283646542332930546397567382120294067662957391912097591919992828111601303676851409955665479039475797180896532558164606561701634610133764227237572736824115577349348806404903103088161060185193696170029311094429688070759554503017747572712464341496335828205200294975730690500563474531078521379613663953446010856651310781269560099649817432850096248244211375213333577681271985735647033680697304165810129203960996945643207882042765584003088277962852550257949218693024559691735203773283043588124226307153650138799879242374135105670377958248260916281168577653906671742633315524822330216671783588210139842694371922851157565310125370610888958749700682701575656186233164407015328728385999890116961969805583270587445859558319345839329185840871134840905354988178192297304426236642665919211646905070128898211195101241722506454586213144924292198322207760596394257504122639962431530827319286435707217632216535766847281094513598310140334065293812610462152702985122702628669167717504985338169669979883149986338030026417149461505411190207851913406607791007668992454970282625292180645072557592118067708474314402461852784380615434815926425559449431191826239374634847346680394986906878084043099591140606409192033829474117584850372139617828698470266296398335754080675528043461071290898256515142311449089787769735312642154275714956230434056012453078247909566109567210588775184421134855504912069476797063479847441409743484789966435249330742016430476192596722131393240178807411313940872879386865913563979534856377035700366717702188284646234861469384661759187444024241003593050561934896884653480127320392888547643125768847236866857803554861697079483313937110922616058940439089523277857445492275499459482708463207292714969718677791679060787090650721461775129799275966005904330321836068561608002258763844981963969250254217030215596974944757356585143710965568119970165705367451835288484422728711873482638848091557331227177072397027735308267025008235966914719347151245323434741106081514649125503727313461690753252571746874326838170297849772942806331113296110880505965209573320810224218952244110836798764364614697847516837402027296578409086039392803342363555795307422989921261866343798806575763963721819616371872707420228370377165899157274986413758875343849672777474798025359463857105239530265787028379617617162419020658359995992921274743478145654524010482590430867780111045058630039296582346547541439687436750640746684972339111169234301726088895346144979221493881832828934763890827848265288838681782919344169159707679899809130554718076983365252715995420348405181293745880629514307473173904940474769371705803867461332082303013428477324567233161902857700518886924509219358051800179251617707422948741204368039489398954053572283774372077927586381995376030238634910461112081392026925441690458142941095537931762250808589631295724986964978570553225504944424215743577512678363143724995220177128058338973641207659771295946077174500499981138006901932906911519658346834946370052627933513026274433820031586697648075203501353424379263655306616692419411201219079018750555104613870841204765391092444942409762969115972179315387870097828428393767512262398178266806975467428342985389824096720091225819123669908470711190281953202483213513944106974197477354206284782947365567439405223424931594288630578176764229148057501354616942667799172619350618547570496171984933705653443235380320982741126578221441929548891023112802778672930988157068397316662348293376093550369558553800783198762570139133095658724432989428958493138907519620630306554695282781900810046407173613963421864378447760724756145355508089753046783688981975199590104838284131627802067123193862898527356438064319180020166626963543401302905775557028652132793578942531455636099383420100391643297386397969106388572330132322601551057586898217556875476870512650210709632493629545070721627086597718819763973504281653273897182314530701749025582243180568034545884260106920848163114410893953393144025229041149742182291320092643467451409589022062597966189888882220511160883564293105903807810631315651566372162652964764227401050997179827527640659721249138935338453290232557180517556776252158931450416618850090184378145303281322772518492456086833520029865669307027606927993774320253254250281476391289137169653487112378290619964497409789317099079570191932277167642110905002428526006171223501354025798392864286353815561646755761386199506145457052604763204829413096477633299886539628573351985457170783399574461111018646991449506279709339342169978804354384052869703408002670775000942748185177803317364064728951442537514529549378349651522232007424710418811222750717830864171114710517214455493329492722691294185438324965689753498861064270802834814186352123568216944205824121316058340383819820099793642675609487539813221779627189837655343607523445219603334904022862393463825795716220468636338869889232158000576369831915265885929127742574055010252338782395743635382829198808210191745905502915998073512604623850631106558814429972779214586978616637730327625350012793231537899467155177659790378023823527548105530142488658511252723152334568061579353196835074911654496148005862438165373288207908482734234601922809334925919041044749180033614659495391215502969417036093667446294720077114279340179409446633320444804659187508746207028262847597092011547608433179773148388614775651127545754931505462008149518730228487426318479551011504750390670283200512512783906251115504306191441793694889675466523716539491253948247058069980800369213619422638597891295318978915986216397320827472712210277921489357440665176255670033962709173853202582261829623239312963005716775284379629807031502108070128684502330768979492320429889269037068736394293795339388011167837339348241649055408222239794059642557297218369337982821517152009466992294036699129556866325076005807051643425077289969464607002770413398105068843220454271795911277846143117626120709972063721626876150414490592444795395298480500596982779997163792785963772821667699143894067763224685387429290265674579444634647431630493834203986893145913910731063447760087800056467308150993664075574770273776259323632565576416336185853309652191869520165134492934844885525024413107052963912676481333502031434119406468909751248640538512884760383110866135183579379699639469136774158717404788221744237631333257794698345941150555692913394501208219294252368941629392673408498413719878280288060332789062535579974381452308005442226040524020810057737652213436334369088356859413549444276365659268821388529810095477166818844698850528294150837662053665007242365189298577984944768856087161041308713605265324105377731704023522963332119271142257991195108461828514961575966920450310540055228106971559378551895851208739207939222963177996588942697158814129310522370238472318207000096117530443929353308154519765269169487638997167158926880897421615026451077717335013446172202145415379378239277739315993862012440058952980196397400882340750826750796888642309756164567165249855317496447276161060381211396088870697830380283901823746425331277267946916508168980268672281616403515398742127266154907350433965733250245557966566911743672318695529761725949260014121838156256840350505678944703571172386710779973842462023674302753779339652476028685763711572826509215776535352348094752795474197066974094355940287182498063353377259511278267954683975003568977879074224393687952402526608841943735491661515281525312712531793983821115433063026964763879104513636840759779291058776752249494048967349932734373473635718478048927416185662500267495406892111828332314288934918253483192636492413719185160533984532422421785770479023279136725916719436240757762573924579325121336179577054570477865937763327684812893220125903012404459616230983593049421176315101631197486919412821242878769691726259805230485123117410087997283879538790037730908918047036301116099413618730498066020686644207577943004054598797406212953308434071244480443577374776050353586694480129755670514722639321585091850482607994219465790478927420140263824795053884118730234669236294356723669427424109304854805659754127630587185383878690634329540949867389106057437658141891762863361520287978778824959640819830450910253421419548786889326749177552052392080925306512442990906862717568990047955633034688350210372555854232947224605281569738310392396121827595215088606077738780282356066972737449299159514189066791735836149018496731811944976008256757197042202838622152822730583211976000636317172536210142142106935666637505651009528818479284919977214155933640700987009365714300871704549923527317903370337890379094156034134671686315950379542410532487476090973774440395424380743068207173802745575565133477798882536946656899768113276085580684100789030829566492393775986416481589013688310320126102301886785647894493348610586467349163031985840237938904424848369219374101802468672288273559405244140635734448870174664165429471768932156772868900781948653199041230538403343726695481051243418744546449315432300084781024665640031476601929889703707000877946094981937780118904571543853718015188243889604000431131389128971192286711293075337602847809398239134720209480381910078182178983903891098344554678273298364525756230514491857144177859562630849485720301839113528426851535614716437976817787811088299143970177125271129263206132144887685422715208488587013274354521590203298461221530855452985038270475074334083029979437338170722097866139679927595736819120526591474394309173713060845181998202105241023615314551810372778067999741679557370381782987739092056453519020347238534734908026506195247861388245481261863845536090797305707336474365906884344318563111246176567743699348715724415648369635659636398306133827110884294890930686687065574035678462627306443360909114546301259220969393048793545826568566527863015191161152378819136343448368919689964125473420502424251245452701758245026228596210406692068883120400346974796525580321078723158397083581385417611102435985032076936092484884007905400314585881322437823640170379695855623497126003965752392350943531236121151520239705341909902044553973259127680449310831467760923133633400139892185929335056604531331577322893141318862749581584640991650074182738939139682506674988467498022627169662155511576502480367932618765955648114299440399437194344129378240625234310794244472647017660030638894337733202722393513206286599959557098653464002132156377511590448325173267785108277155557312880738808866436662960261975711868373197006328796261684605547478305984470167307549543585595344662159366512883115930022494794249031610732690012017172154354315932845313054857334081049407948883850805144918095273811412958486850967588459541571917773110392866537886800263728495997994565516446201262103158049445516954474571093721207479383654372932383192515015768137579196674038165929107660491639578873269350349384763791576556682559426846998723706456846597875471378581348327907347537781546969517495948752373979732398699121091966311181255843288902744553548714579820675449261159431957057646835907189626814870573554993588499685318134196561990550839864977962672787656437056482061618452858367388932805482254315640795183866130479964569281507782218875485136519228508427826503433385642946560630314471319584730320979090731274911447286417702397234054478291918005462361354873945986309004749212136563373215899447100379539930864560298713251715140173932471692368737835029160411482704454828569545158179211767463675207913804269779609937858312415626021312346829466019120482383352026627788533802520731913203345300819754521313525161056061706831583750571342444852381826339685428317314124388738647396433251950613959128821846328382654515388102390794117005792922768123547539788310549174686225722040576853701265259578968759135936540291470987819350986895470994110706082038203781709268816950741843821166282716232838279319923837635763371442943310588344404102729603014574987505306939876734414416410189980291253343425592949382065144938842820444356748589238497140158738784765839944127830659102093962134637555289434215136485211415625193006341484210086212019043075212351427768048132561813196346487871550668630721462245017224419822442637607481741672443462530503898943721372346687392583602675230591465273247341093136645094243590538114462514016992436878332413009268439494744650137804065612251047606424344026546744076131355548922057657428957881940864775526074990804025150824074559552626688552701903943250948962402012272122754150199426257933437164154511381443452612397659686940846218695222549405239938434252725057348625158693469767508710676431688581457443238742957420662705717926806823879538263690712095304062513951897771275002655204213991147300202105739844755891929370248661665273596952626781687132491372862895262442951758149565325862216845957533600366006467111339070411695526498435516605385685811576388415591845460584357388086417121837390492077881872376891025983239050722886654412297055803287506767811280619067137092133253845127685514175852787581634343280170295936341024473049506034376095303613044748890942370998559748907800155894854013825159069548448596466124457219645136196565159302888712509238193086876885072226841907119424746225607790649470025105766854308804569411625212439158878735408819211438154576866326792511265211958192430953753776705764478686781537631191451400117078032016640145173612698941511115609295534684919247452900410955901052952527500651010979744471526046934402773107265617090745254966957773420727593818816442306046163038998079609828438472605063560404227241851678581968247664924415428971250094811906026805265202297975296731391890623860270268050155799194104459654627643511756182049757546527281000229907923834946335603337281972199969738547725283557304333560897145537946385814395439488745968069025227747986841926995916874293290428573576289827133628754460461929336499619603693937102581442602180393426048103787700143283340787621867652351601591992292667326223296671500953764985960942450209184806528475128366520254250847233400273282007550756006789598511651011564344063155424741544372278373483678352658927715769516218182045197599198415129784066293045880558616511326333538393858424050404345518312591920607236191190461182249146467503217155450179409423705318312448080090301939330808420981429263442339546457585745084613616011966288061429982147010930802709120182418256880305219221745048746437722401615987111636759756696540483070920001291351156187123485779825760886529599130256850715687708739924711990687752554838077791965732386516688055616602625233185342106369103763186967317663148972424853884857150610611351711209974421683533311273023324840930460749747021445607929078816543555872827964090849731817017382042676730055856563479500293272735001646137103808487509865753331377910398402992800335782360166098552294509119714694711294160771615600252576435362920182127438645553011232862220181788078616560723445220305439632432058931729776391605003695112171552326635759421006516516672189427696081788017489537456958591151583525099022739844591528298114842357849149325686995719088647886838571814302665177394099696222709846980224733078567693132764544001846032305968936136791557787447094249615328016184546643882543954405279376657460814003066759344272987103254095825129064322120601514439518086047183781039985648014067312184129294563792057155744214343395588875336946085131114099924303056773788765707376976957253078632038774348790935476792271312807548816420555620000537773767370557013146337805327316413372112038477685425882656504420734585371234771987391231593879878865105288318836030966569558363337880071444767432618943109793836777584255048333132361017862907366702956317359902726187104574468899398286238931111182434899256572552479696722087094298190294364895732713111559497720860899992306770349596883171219351560249918928775354207262864640263286567871184740301757746626973163293845439756905965097402251835987887979973031378089521396844832846346393925641201166379369312979728915430012601186905867429830600169933381222514169063148857515881557103039669922008029638126225768715936301966292940309365949067562459597655642110922249339891994040317775211777938208299044982031380963023463440676338394033084884704620828039820690225864276822233153934829668911327876535326479655297522216529026883375078212098030146008361617587463451861147097057182622092419779093647407035816902931432294551451556290048066013239468821451763113863411446444934859576497722400948978481170138096951792803623098473168663319069345124466679916666119060427726990491116176338108763042781048257549538263986753979457993754546163526101248978225157244814127950347533706019037139379342563881491572724058517499994270297819503376458606013987450098828464225965798421765140462383197342185793607764650390470025226953141735498511750721195061525824166939468427385671413209600784531478317192357581271528030150745413235589228815001765009701075722257117246114807488136604685131800876619695090261195731214571267327692077707227602662961387922730423719111774404593086763471044286827020247083652460197485774080983676154747602450633774867836517269276971400163468535129821752105517488379412432923962029481665065562775926481106354616857738427025842588363139374720351363080303600895862390436233102712027044179493685977267722502555143521116113109430726925933104605564951219392001506688713517541595870569679902098841728080560653089443401785105389409137386125774435392506068773277337410375675250186561473882178261029686135954316362871823808917718783543876768646013244095153903408392274892043375868634907545464145528578099308148972793898133405279558960029398082900380049091955319435669370196805806372394904933269627712018267853303132247703986046522735143011115204057886878582961406408520912394377261369486143747297083785537798243780895019896189769408083263032865609235537276526113601735162043521724223015838829375982804364915137195595120702294620430374569021467673507146691698972928782425137296464463031431759792493871607735713441272180504194400831709579858503601340055106154499219905640981366582256402048638946274765313891995379130774572561933406313648952866157608226303198822512623198462032631090326770356790610731538145394809707279341748582901837629681202310505353994460890810359412235636085021069474843582285065651535150949403354603266171633405131434561016357976919426080955446421807922528834277788987265113971319297871841414974373514374388089378660663255356682306044244508452734572125113336511024721131752912275760522591421876689168179890669582228127766661171031873321673792444843841885076742699269869124218490775659697218328931908844783118033069442448952572304173224060512491834365114331720152313704647771121981409843534774657534503353828130992248030087438388687328422924881308676478601533162768279393190457391530790795821895814869696845332947438503346262462072931203307540980050202810265830575928945276398659499539753908807514585617038842303297988666644605175233402561390419676274166791017473655907416935684611445171608585089197101887157518255390557591953302249442408322251469930121048387491420591650289309291229622288420576623212659613863430373689470883374711974101731047203513116733310202563736872791813462069567178321899754807714643273208837347704715074484553036962103085943287008683301004935428455970874977134146370177760266741111763673803580957118954489179430969987983430308825289029631073936906646507434496457120916717810663952278212223822503949274569963481840869847313153089892319231879006835374238001543773624122471949449840676420462146833946420430451490600929104748117128204165292534892470432016799574817166091921227970015788025176068262367818363279173056250808797146507558452183094359622207695351358425548152787535914544476188897666549163777198222113434646732435840632348418832135231519912008477829917232962693121657638816808436006473001184615105463269335628996837208474943248039406383084370501664048178922717925400090649417299350957443984687640840020319907533805322144786116434123566435373501344450671523388295912350905371080660938086074482266081798242338853910169204357290861317484820137524347901480016025321502806598824098636683506857493842683779481768484447649216318784666416239829951343410157305627081193170990693727809486946596159652428793672229320566559929638748906414125802946511606439187788075906573879687231876278995676572800740878243954568008170206709384904010752580334668577753093389843803173465101459654798943567820667432446936359985917745775532678364783472109663312360163503400764846312025962338016014386161603055386434217347641829010053113113750241835453462274483963050232919677778420893516820591567041091340553402603688925373689916294727723006092379743826310272723056642376236138507395897224828508131775361536965490788331799481720638135197817353220801517925775857005118407920613708823420818081246718629872949740427663321615555262387229650493262921770551344816966746113922572798981588548239801267814953108117954632518207822187667764705619319253774923368288733762104169574709338525063460670452910309734554183095869169884499336086308200736168398061503446829358670754717806552238815117191000443980308422341734321564317847213921230318913224908402232603668284273491824738714336910706031859796460416375271665990892908364934141541073295958841439106186829488904135100611765719160174612538890687097647540297219780920890959895026096333800179985751375443328181687796985183124279511207829448421478533118772707674231592299543575612604292590068651724566003436674914960028334900487846726355617986554061687409769721303512679155026916165297466695649823508596636813504566673815897821642152337556739617346905843001746240460331895070370852663718276000013086220483907483784104840118123365476089397811001975964327003159994437899584915259210436016108874512853216525449420226212846477608645889597104849234368440972052816515736942669138686123571617366724591684086462750756611212725738730054095434557434324017286667854269309449298554779431219398583366842265381301968534376182517066253404549274282987247164152952148338292562375016328989970112405695185313642914035265841812111169592689480020402930970865569914827164486929439452674596952581853046685851641989246647583139730930805239286432776254533528442745753531942013596593323547254932520983756957316990140155026980436037589383679997380750509028759964170492643265556947392477592464714242387273818522470846237352616141690035253908765621559606636433685958513994471002868957473329045433783014356774572137811493347213286033520138244562573395091906179400389065867510400652018863065434610746064748565269465608650961700773222003818576062878043571015217586938212158185083127822451164399735068388362257487990607709301855169782467990805952056819646787186286159462658548894227369958291087220191530091803642788475113918627755798755378065980711398509144251751328117511576087445231760034754853949406958330764992917121716469142570054929201612620221007982691565977096809051044170914885568095696825505361258140730106614959375910793420141840120086199056959791948405291171521315850195791795451518187705775619861013596130842795514949770790194246661721221859269191272710822172168910503045372331601905289193682842731529372082316289093285469991838298454633176367493832031534179692616579213228853146427768783615304198979420739168082101974596338986822746088760710455495013779212248048974756778216997545248328803945529043020894299188184622354005146517023953654139776865935890504841174293913853549327195941625918274672883883122314416199598157600645548107767053909743031735140232755450808907149636632951723300273328363762389030990297874356425594216189048198115116926615718309519528738917028742237335945553754706792304739238343409081629424634702255473158362188811190348797714310278686233860781372047588601600211409811740965626587293791483791441311633047850167736183980951605397171273935049641730643891863126175682419535544199959964717627259567206927554204395494093481859831053982609234189058082635602356388187715566778855685453281370609647339294431268309338248019584837211804526737155609223657311262169433607716299012708514667033194494054981770407163776577180368341672257497994057606220579170136881340721595890647409175402973875092920957743849738401535446895239251664977317281673654758697598525639947489865377563771590278944535169514502671131894460106961363811718255022737458469299235287733435478519659717690639392774016805075595178832523593840768841197480706932849501012403378047218580484158086417488943034258156534859545738911987303304252109566830288859867177953565695965304147728590071541659950734209874431670587748827842112566336611163138279414120168375989974903614500440647028250364460093433681911774557149763140349913258255538188785273230730824104127524489090370697479366328457421886105920198981714281646709087692641232514218211328393722429340782008090097281116905800231794972587987175928360683773056159245430192669737602924253884386319754265931013309039001857966169050771709000038261177135299149371406564166058769690908316581106626378596741578527885798876030783043757566206745376193276217324399444674983988228088784208260944606639369311592447521844773629220474884825509224369344185842946261663885014907222122438684702954354111458246504890411517648298282902807807466402814148748573935343914521710253424591139399053533366827745882650457219579067974961562540001437563721395941460380584870395793038321025469790527081899364159800011061888698616371245957058101562511841879596417206568479030668356176861292013556083915362116011705938742644152701508281175175463480169105004486362034149227105932069781923790330770151826774868023843610488128652261039379067281997099844612453994133260020134620243450686653035569109287773135009172811776837089269484507608695282273461603216285109796233890838310918483621839693543020509344851331682869128084320049833120633849389097113860274949633503524763538137466789208888428360174142217944365714013882755495835552495944289642649839841606838328359415012995484188013882882924031092295651456233656255067508929667163512753628218137581342147846004799070550875452006625918053270738799246546293478744437332601412717017942145003466312942080256583151630141911028503931588267123518601032522045800187288666569088578787072787012624151333643952544842724437145853425444434146455822291275432246038462631547309557177774154982663070715942627272150002658595305472607784806512161678251958803184303021130380509197146347500631855634690325937732046548880492471900587601843830582640763338233608214378761517422362161516825314531115740441925664189072780376507791980790085906567340707504883934385026578933269000785284742249344139510542163524691476057321962262780734881760447705047468485268477214245660344825665908425477204042458253716945909852154284611530754458097582335125918154038311233630662268650472142124856603595379630617476343363662992322942621718030235658906285137626308521236308605064793855256895962347908614850615245966450559970957489833348368518676529720036268235413716995846807206846435290898278377859248539129226930796288165153556412327650624051462427929402314205726043033257889665439528316367717846465689938676472090868406004537351530069356146555680652250088622100075965732332436768537767504529647906230519542135994859464021069240962031404227345452833822073439205037588294341379753685969082296549946251906043206172313811933514120363147300582231254505068841282253748686153018665688264685311706612494285648444912038211249884111371507428402923281255712753589939381433977528568181872958157199715282340939772723636448011350641612591410238045943997514903667491611573307799245931882459056661762536247217968195936171431161113813312249356954904828084488159705657210137658846416608954998426335567616226233498910090169579814217030191391382411333697592489303344553985315788643738596437376894396465917873241521152486219333551264780746981247693004889555917915917804961452272398603816348448980207227476483199358149762888869576318380503069854767349200591191780843820881359721540504793937423236187149159729947993034583497159886732217096729773280910720352520457352573243594722427384182742372295271251012087853873086723094941604571119673251349969760880166762984324263384196168738387468160009243945747401999344286892856139733925648821860731773710839342738168801887193239465286753268272553422733919667607067701649546128140899991061952984102407014295454954168861913901492104888679499643625991092202837250008622911908380369211492843393090846149461407739164462714433084863769844649143809107295047879455161697849911098504107037374460067765164752568121110721246260506787111871303523859591731191568401576385796594630022406432859134486013536233658227784460427538310072180651842106789638978284057335983226026632169416319260131734233922607041103424407284166944335907225648078286601826681990650017308127120547624967032427626558809468099131302574100491348949269085361352527088915883728367862124713886692636538717265410773927008952135557949618541969894298561226633396228755120101625100253057578953755803337484383061026342675175756524390213853590801407484302384935534959665301927143403706967854147678059754459560141520369138278646404989183681902959199158722642166081963468961948209696922462939444931835536425227910552375399382900940134827690911292442334938334821518907336682791297423622516257029564125684418933190930962313336276348053489553612236965857004771165691357959258398611649338181751447981734517212913943958217780962964644650345646033282768294047955110242132376968733406437453738927433489255889950612076461253014189479131111141386691072108027251868486664603225342417383709265582752615038591574307839032804838336837460447394403121220166498064071145668265454369077695701980123531780739926762860425857448799708557607236096228841413563383098994422715499661301050701570314528987300709586170864975815707192380510541883564209066150220171426545772735302551180734151569410068579362754037709289375054041209543853723313678714991151937902905166500527218061720831236706514805446052510115342921668816264927291399162441781664877432267212766014561265758497434128605747284019963520569268795089215368819390191772928612240161735902085648080328075342101664992251152573794988600160313334991378817533450758509658822244820508840005708086491198421868655181918505052695660521726393832298506657048159492900434905640367071775463203969063596022283126644099767355693542654729296767259607302394290567927871559337616754057754227023213543092786331692096994277892466008253212281271078028238916046308248909466880135056991008785421340558486734665346834280651823634189451835067251712077994892501919328801279284337445174538218487400121355644386194771788008110948794024941256581129519955856784446483337603304711442982230054468332106133240922150333977165984507589615736156719293807206359544624445359277283881720173561033312869126633232949630085690007820310695371873608948322031435683945063075581604001926964104143358876447665813795224344243148144583405378093411094870990363381512959045730544733647992536242955050913506256087488088735690579042402895787233314653077722100205872585256376264745969171556069784069030528583007889355509431180987987877201273635849014920005591243544201110660801805096998900662371871188064409691837039044848276333268731906411697008067733142483386847487216430450872677483253260353008175809022434587949704133575937235245366085764083599327411771586297282830953377572060570809861747087658794353603830441905770623589707537281998394239674183656207429125035375492234118443080861410032205735603628764048797541299538731097434906767209009940324189019797173348353658589658970264776972257229670311379948189910788496499286006694235946544509579277374121590103372875684040862730042236409278616821067730784088772286258051040142030562537149388387001982230247066733144154830473318188703867101854549410557099087803097589396706180547627166948646818187289072708700900069030965028934890037734946508849453411085640318023826455926529512920269672534042602742750364151806649416569511557108480101617389633640965140018173899172546346937604019587077380405421003644748616556040819777078808800143488361143875760709456751022933189000727815348715182109446202717639397104020517905689774822802158377314675655747486770904844600249603607033090733231953603355980342515220783738778556707557605848241290647160904585700185299484542630010315312462684534108773473096353402669311300652854205643627624193883771350013678700569340272410308771617753065539078642873810041395849828469959718099684339604210326281500054564179671306105044803510484583974889717823943500905850879237913685970252322837918042500342703186421877029652529286302116361916368849600962199837261460570964271620901436997470737010660193184488319644002209716658214718317721582523430249553307392330742893644739054892631837612435397483271524136793406939115244443832847542633213033540376437776892366029933505275729275862102255958665598225576455060905724392149125765902894802676100258674468898455142715687051255562987875420741639068055443542018090226308526697256931351101668857679867004555001565394903611161262232841556622926036734876359443591015659646814964240083248949977268311136400453513351336065347081421423124279612316124498107504268784982068190313612233832121976653864706568482225149493008155539420836117738277038158168460705938361840335241372819387694674388561890498917356037403099253350897561204252587881230526740154314009860704514574525668292614842394795966531467728612477362750702979159392249608138007274124143463827177446493036392126670000625019400997980214950384140768841249739494759202994418417957653162820238399768656176895200078352454612725314316662400343568261678183108097430851586701773209228094315911362380599095707707373300576923357532965236658036154732623919942208011248693890153632244823169736830424128810486208442663009375388319808933061656111821516590109756313563418767557431906879610882752368638777794828819929163333843889231744943242907890867755547512937979349529273888946733311873405855206385658001242955890072505880022012006480011278658596289794161214422335634041696702195411989375973103268290821606593750432193901728950780823974067787410851477436143044406634996245477874514027746627441984263515673702285530608799831148673420130853417465173177227355224094736006376500587503683791915249023292262055490923934815861685127776191409101232809965752117809230550564120931137930273099040033437284930300188859391324284869592214812176430141572606939045841718786921871748308208500797838202077260474960599725321095908054743690499110131226998717669312513623754900305114669783724998762686728953357038519846480915265008744716314378397023848983520421571422809514790405273401533915400116903509098706339108486218794976368358681646250647289010338231760618008951292630210670654499571488892276411059696056331424871378057242508991998409792966333869869643058313906298801882989190736240852282759107010626191909713187239402440213956698770695231503634367663192508137443567460671541621948705016793656017010729965940358210592214900775997099784678422400278944623039354336758442860965014826944813374066368545679516380494986142301622611484472393483547226974869045898744460517237062034463853725813246882966496390655804674753295819632895792846505697159017854813260524104864346553457783959509928640024960717903410172416621456746106241523152047315094317655984192990116837764492847513175642381531956890152035881092199246427444959659117335575343794902908888837631541229687834327349355767917295138196846666066979282211221593520201115033286571129470762102059694061845346979885236083460081971757287714439357232762820418895182645706707497134924950349826701809461370636398460061535709530329679871186612773863080300136865187471991188334602771220919509694440742187265230807283278157513430679693070836254061300584152757769946061397821160806295488079243174286243233930064433073309389094255449386575173681820100023579792648960310327387221458832453738473100054636162846488593562739934419107787819713445937267221074921344953998033224730821961617667684052371120264023643458781627915997424382336894201369249873727737892740232742067556107191138148752987549942493838856723762303243574095136236170775576214543190010748272352934597579291943876291637698781596188284392099673702577634295849267678501555868251818063364557672161996479869843944407424864685578829896703258400198786751778213621913240847364652693191023350834543612160317536974768670185051655889540609933129890948709600695429154797763889360286615093219888517683113090969405890161276336150069845377218356862111755649033541801703994780032213186293486019270371661907341629079957018696634443052725587053653427268067581218570995074623143827310774076215878289634573018514108174090714294729959193073875683057408135942804499803118201407068863590178335564432802488945974458130477114961853522855120576242123369251396599760905368271489950251651673123948303310552389712730209606129199840497306346038082744929549916543210893098458373718450481348062805413263035423969450809787191776344815564609895943855897564562504229405455336454193740309772663708635331215041399986461467244406828959776133687700793283752219956812367793085153444968177555839494808500670987513625153371329034426671135387635967451457115723629753782730478003558982473000131063984368635190888413626165268114242030615619170689235888180350937291149748235512810081653027678760525690340894645309343473365678409086525676758413890541037378220232332964863785772043090701002582872277872133323822145296241194058482788573797267786652656084961293432180326089974276395730321550070255852847836129339271354824869511016246958892514426509516769498826795502487811910880082290164526472495011398618885748689687068577825765489560081004000030029048117123522481563055721956734911814248054700178216024559281382420969127776192889174546488684424824621187013042927462881347026042215826884421541253762911219492158377523722664788291874320650254985840828818516673542463677604290758203405070047795450741856059383210713304906140891109033127106521203486618348155731608974972735739947954449523883274574150212564295803858219535064463401141594772362096978549956564797838908248066993964713035683643039646721507236790610108700791452316449502299379003085388810711999083779484731924484493355810450711941832222826595522660616264923757706144697545464316826645848602839277438789541754113580078968334534155640696963384726667856549969435960572777042668764399142383046029322368419612128064319452877159277647083050138784663103758443908420363378452329262583135965914087827551175745291077416831668829652729943057981029690988663108512666400534967118037151742025616860214888160634138216799212089491128624875402486329366941098673922121506660597507414807453594479357857738487098337653471738105445599367834057132852024705781227261441717832696737417093544257463651993847164669671440848678065132168842233094796097936800174783700734400033142977891982424059850106350414788435410180393731431142122909442903560083401974503496279789330038283229164244179607364821526040203435489182857933744048223840583767730972150084077081388747447578676077762889115882208555409558333362281690306040632269741739809773538392669010666445711623650297422347805232762790284797788211097325746474798528356725112573791684230884637171285478358947551488149489577241617506752346134776660780504315867768959338757701891496606488851274982762416476498423505756905771772930095483471384366166699466378315461176812307132775899627466833191026573460055232702434170091437315584030623769538999807688061987635830285166727093464332800410785869077374054217483514258193042523713957040571631063361432265801144297437362250045155383892381315870052588351260510141109132916690127590894011293618131330441884866680453543371702305503889065358985135210693575731969225831733806051831818077447975103107575685737156542302004314535273661355395122741206129606293863545973880516799683532180023552511220918788380434771912691304149135167370426612212128643441779214456662842161291694011233820601465944507490456659266885291496484947915477864021841833546717862452856300977149700209678483219146639142403041741313058381203009148007926429636666236220406185699768928537852305173453050834889779213901043969439787729323633243171986530421561570620547686757008083029223942832838901839717773832762512405083581524202611886645177840304535256664156004063645193261187469759254294378712765019503548737020387309517810994086977509526056942523013288130562201393671364903624164980058399229066593721287021266571379093850668127428217134447522476825096632892336705551214513231526946726041219466707338984729389797104945624243075080519184948539292327891715040788895734324071998333626580544850555040976790195695334970120706756759696932794698985708124726350433931338944755154707266548330797557965822264096880489690440506538062265648210818832416133103714876029797927210292451897737573478789198476873613779015113353149986193468254845740061583110575837946534247030030872845844468698258779780240666031062324865151375906460578193264853564879577149329776287918143334031961159557435586492913167572233924379386987999424103726587308281304831855267380632479832891453840372167794616361052537993133548954358418876312508184209312574725644648911334393843623446057447066163893814630574517348293456246087016775301879041110755315020344127193778230976077374413026351774389861527101289268966078085898148384931697188367512188839260454662931834405686834804552099627908254305651224852676242795603561431701379615964214611387604395762275447252400032794528007739601302070962879084843733030174894825718244887741116003170139240676476090808510763808731052988574767058131654595104148363985429073691421469800266867088838387743612312511062265443573360017376807064681183272945099825190825769572512512363574516869451669525305888945578189627989149416991249335468964262540328231070631507731971834785479425033282326418790800678587614459415629400487279556415009698575541226665176313387982367663593719060908595252251106212617278630319388410440531153042550268934640266691123034151188386951342397788434118727803391370451277533153382566040946316446444652693906235202815751540183819108717143543509651288232831179202798580953258749515107180265060965348678097183645306534714963331378899848919020024433393821050013530801861140328308988544685620703349064263867825874709308873521502029736681514439973277538886926943346070144119615614305320602035043178209826930337073762667307942534256256387141950648531664318675147985914984638415031434281211070267537347346151711694895871930013420421058544901371735515803635331202789780987097968807971266373526889149431151374373291889676695181871686602064418526127296915720136226580901675457965836135822129883984512605150837877948904940489589232608371633884599740868869672547616383384387075345726709397377603828708264284533816267226712997155934971175925511187108965976616516021694437018949241257745028761742432245966591378102240716700638896765255353356449210455009459132425917460369177482197172108122353401228831018745176182486425780611968096384378864613346513899198379187902120153527295953611471712320747041034121719084865952764463447081511599944895138413689601200796086913576535690835605897537262899064239759564822204244906187212443620451906329091822347875410975876739713134206635293487452054516040936747417826823357391944748880609571974349319749640514498585129431522706715430377332657249736476491673647685630886143856963466886492917480784675223202578934162919890916889517878102737351386854003564997193313828405335170088783882933811812327945822827443160285909111017433294404073569762379804681572502401101853603494094875824304251624847563618809135526727191102827379389307505493628870429582977423509013377238275028395743502082159770107561827743937913597662024877442801962118181218910376637449967194230493588606729433711223472605787019121358320356235047456771724095487930000473945228204496156493910787232874747026822267157635328043276802145449823215616340530917762799963345066341438744266716908823668425272778330713414825918279476423923455460489118238387629568217021822331327003768605000741192219893902273761993973473812092327844661147975757673708809252187890023858584936904510666706147573823289997907271134347404148694961677689324364381728039405608968860828261340533396862693145186096913463182737170461818141356849181128348247502754005118635911751783839885251522723542627135132066645491752074127083353642097314447470918345547268073843364627786623550208003790366970651775395313412035288329770391629701474523446680444679869436764888032693133174294638166335524664930540392193457109224995722921053407260876660766916815466090304313464836245005297409807235314548222460885999238886559751743458276421845299055156105857897673549279424656265468896283987594083877955570072990497657111175037809584466898320417253796259936940084879868282676634245861770705880181007811575965498742133965286105728484964662466049990948154527235436707167327642440926080483727661182865314951776180338772735705976390418432139140359404245059774147205411834187727478718610431041396896957377424939521241718123230461691108810203573433082404225506620775795098287206738178822673363542251505361890874709860070918768025432781377820508029719052050610727105973816796831460097805445903962821486537007868244286460121555639061976154685181807388995186126105498694268670125447874248743665038277662081588517814677721445015391565352078575379752141266850327343884696473409439804677915187799219587632155146092749633143131226906796777198423754224010405467990728112698083766008759551820407610765067306465448462026907062182110101339081928092619420199024090042588115867229830012959552276407983958282804207349833473193252248138970389642121232808337293369427910821490792010288194790709733625441628389696029841348384971428519245100763742503776410109932857280710009187041755032323003448582309748729647085835332422458337818004196390126133762594328745459464559521744437822712429540370145597618530765465762730837381326200031445935750145186022337507564913346845134509642436681607927150809749972124336701169644619767378791944280899489329317183172584737425017359419474075566790735806191266364483932761769482124700493254077663076867406605055276048936492016842703433034614158827186699884801655295181850559815531321922125536950726217746009209281444254926358585469169013008565247483294992383619572728414809386357989229591258810439763750737578244405084490328089130926429355746262637635861910586644277300483679008261290677953362132650299302151462814812259349129406831530965795478953517434136305427663008178842392524962943596353628893459188025192844573421715520129685313711755675122278537920278271476158540964777642630917890028935860052234221442354215257326253550041864854447975172504418254605438618033578046141839610941785562103915969523764208763664700702043809471109546118956685165304521899182821442732826022314211762060154214462435757897349802853614835925031624165730665717388938942782137916715050334773373229464329101412977856132339706977811009985136926201943057214311424772363138482731672810280076934381020787962419235556684757955323588820079259823806928608686002842317433466682890478028271842583462485608727978348343170860062095455513711001279042072482112577985828088989461228723406901036565303322885410499639984416999396052042402953253299758036393164856230953909518826982542898648057133586853751955961800375332918924576758966051364476377602845791933129293955627551357079806666945667753318749725749080843911683687220743271795790806478796392516476122335334925840753807542449725990082274720233348973021366620430764965819133622230149155544485034221479827988742891003727248363833198451284136382512699127447234332463582008072823372538393703383476586892190148308277959217719530611459745448536606844885065010626670176907849754892168665313323465544376976987671265360728561419104447178838903003882914198504070412656386601172752904831314093708044616976874829263416672273032450854410163126065640201977920399305930610717741453616495456412398389307249855782611860706532091113523440397780235791652763168059031729056629625302299014361370201799206232471618917653580923549177297025913360474946383617694832169620981827475640912102001408594172562527653908756151481790095521857685735482420948583983456344851860950039632921382902559533401330079792209488324517080914403783180062828748407835596418280072048752949662610677930733307013728132232971684422702199002915745780439884043496739265127600131816612148343822505331036467776296559145421387685197796685486901369267975583131000759912519640507716485763678335992670063099093812770206639273280811329474880037175469719131960661332377934450650447652299777412915084194779566767371410544080350447473641438370483792750490306911368043665221216879519340475752519555510215179204032392030162825373424371039982172114374377615597144649323115470896632744753927105443061781483803464288116408480518597716684434332215791907105594283603982754129063402233773126930524111002489006617816112860861530456802347856852277211875030159527864546251696964650178959516835227388166283317597628837609609628725759596903526211356540599023617519424137353663663357736503867614552696769929730085058070503694738658728725480734722931867672921644635600724060397506106801830621030863276200459045638820999844665992928959520117308295177896586994280197379583797018255692156363757560603081455597741302346674612531903090281242622628113270937260854646403829768992462827049140988088724405017741069653881570542686731182830896658157380508476313682564249100481117910577545921766322755092682594496246488684047759367861137448452364586617602650547353394201171051845822876701333400778608781595486834330931377477995275849215178864547123279070498968328011689938423962801997988639833839133454768464414562935001692029501750666528900386590193346653054082267522584218298966026026943695230969608880348152566672997505593576823705369935522244969494210502024704990064855935712473629500320592979667851407056361993721302357005674139735035067385594738077108914225011802871957252231468818091389763296473625878071253934685485918961057331841657311145656208691738457683385746618829038387912021759880806567306380573319867070044307510160936909377990484965691137486623591379022408242331689588841376261917739947433825141131783336274622731730630438017159701776538090858162948491542915422810430895096611489737697602818817915976954985220233852148549699293295840621720034482524082552607968897020659412130787601049020153784328270938065044587227526789899326913385064731227108279667571530386379235145722663277584230168905013438584991101817330240556473312627265575271670712657284937917984751265334183819227380735191482859625348645205606542577418375083435863790911258504563242269464181357320084114755877488711973975715377277896841486732526042146224347382684660436423474616968939478755887033657591905993626186067413597731566593776987852324897200651144937354972453290194799152595761031643630737184206934992750018176542879897932563295180794001600462773630853394953206509615071280633505188292043940246417155493302946776173754680927454430985903386698011893305912921917905691032480337898856003119909296090373771512875259311239410154582003366628323582202892857594271823353814026676895888059674922400067384748722920001146285343864872188464069562398141089297910787190370966973270870045298487580211169683249300777208237571016195094624631380681683987831400532856352196297531492941952660546019602119629503067543157669951007080823458718361530330114746447989844028007979742962677473529052923220769681492495836383819427026023036401144501049507924117717686238659428497358438413616824557339422610616618372375297773598507796152641549118750970931415853972893934087745575474490126553817261698079344645924198183363695155002146822913128746954126016464143663012448788055466700843920768099090978372846574958960143114860911856798530460322613436647894194877339179348401824124088922917280202117646903052282643585022842636730615303593190012703581911465973508666847713152950985330952831389659076693747093202814604733667888405335252842451030959603945598209101253316515167346398509081221159579497502484998772494993261610090777065842942105342772182327934155722111682617532135765583301812673426053343469098212318938657067741691832816049348647132534963450009780710935190587100887547144068305854185746445219727726307450827720668523348973764303957355561676447189709505270832977052841305857139502604897088015885155585380275609858358370253257368836761550610126297104863464046994067298039404452751791577088517965476234287051703812622009072932792196698613408972212203615404071357972386988325078903168869881340402040006351664925316990812667459478005842779272402199947326132531217242577192447589401400110882709780054208768928566823159452238899039695349538447939070017882826930536521105507027136638599608901616236729380588136375953917309932896527192253300807844973474996347729973825665698825468785926260418061046920106290084059649743383182155848544422650957103386733115040365866215845757508869730173170902142421646304860665365713614115844441818474784319417920784460960468901942747048774545631137317998027969085464232977583689211814815611706124660246835080608752626626255839066925758082125765856826208677495073793556431299261264623520582266963114965967419379852596768163022059794274056799276490778520292764444329097298940286923957933655157945125338736882898529129641319123981307025418576339929412909889599808215401659660021821534548339667989911939322045388645542772263407856064176901738034213254089816698484064884728574212370052983477884910733248386475353140749008506499608028068016251636186992106658908321405150098203824352868653431611816224226867702352899207215485132023528672960497993405950172514472247145942740909142570864645497292451554415203166115193108695025529194669156883737186992507368701777195024383484722949279161439047850485919094095068748516834980994123640164411372999152620624798977617055403553487544388569107519585845600435818701646993142289134719119657622912630108931651792843503686323680229939569225138523644953211185505725116849729240790831109920522474415603894673671140332441024275511475556844863324105863484704140519686776683086951887199031130594414769904436810106509801697815122444410016845158758544074485758672072277678206664704964598674884182772103279576749063165500551419855383472639855862961232774543860970376994973149921148404596530723155526132627506583454312290343112398853723099560219794584875505927818590234451982516216051338975930534104119886423959472995280131614302727371035612362129662457438248743069226974959549871634266391786301175145930849794914336646190030620763625311000616785551298360013996983352692066736260406651527485583292583690039611173121572868749339204691930777085423130147954698928258138732598412983593582118190693529180166104526674791030899512812859128513869430617803155613453012734989649850319299161762016200124564149386133730015010928727262863913366099498635466201216108591540809097730955605645469423741720620156812305436302624330845257175223502791909902972749813575235945189921596678244125853343644491891105121952570200718217742053130334857726853174023368893060599018468250666375759175417292097080083539091426372270769310417060295880499191700697634917606633554146965714506866016920122075866477453965638751927628228173314024007189719090999913638674896876039508202785112475449350944208563425407918633143353863459944814162246808680647625235434174120787523824296088518211270762444254851097421087288610389004340338003859061922335778041780519891115966963970421010456658516183710076014098856947110340303700716223791535269967951335406244713645254111299146121880209421393270538926047227841955904746497804985220278275693425965519145227289046423258526602307321411650439142778455597720167373033496859632540356225927004699936951170533818748377409287263435503093743439768945690957532910832234754729584328235018380022002942160370449263071432244687114199432629740043519885029843838105953997882201109898626149457407289475856806568950208816010667052747832596470363885209220605044852681645917902296037023604834900313891583914788824143910446880616088116089144006962336549405461985616719166273684986892192656971454532060760087923599966288873246774131236188228349195167293508977092734429705751729700915940672749857607014382011576583982220902864755132380529670356208429175286917323306188556205501475903398809648120260630640085120065734944855498621470722744827229766926632363414585801989186296347594729688529704276537204145821732431542370070019226946464240509941865304334322549938863024831483649281798209683638087703247461968586380033458198148815706069153866480481952404814039253885217087316643236150757401122134095980058506965931314647538292181636150401413819073230637092528932991547766522858588342823681364213322682668360948085377297060562117393319395119027956730069756710649889354260050353101981007799914551526955276657562044866789472769845914903677551852464482063440056636372569160801188420761979261692539473459619739493382987007166762127047488361015328494779015263731486216119959683006700683669127235616970939106603120579678901315625068336899377753503427602372988324247078578736611417445026496622232590389586626952618633288300095941063891083843574429971790038803267628123936297241792177709023071029200159804380367947185558137835658900389611888593058944528602828187978428521345812597882839104953071134314370900349593375246581514488099873973649911088361046685531212798463909960396933150761266634657279771416495029391649924084336023471982986617782382521757686892084923759241283731572005839928035993089936451794881950977676943974865879024325514906271956702804454650753068767442877937615762939459106219842979028558000674172475608335380944210317225639605313132098063742213547634800158608060165350481062782941690577891617882099488117341466563453352899592031060327413805842504874441625362634196919767943827920040209696177328179815506709312421976215872029718996661212432887350609494141150831280149496472922588311224504628071303324845088738777495883364608284902121045383237466909112341479606801233006885285438417527374755143182421286280953935670159581146344452385167020819523333233828760169538974813249852757690102899041935832489182158664334384267454741651028044806263930172943779261532246696011606854533022815860197429603265685955332679530690081779893153370634346795184311572258167117921281553059374936722437272736347009236837625621229975798668002794814603911073450143157669727228311125237741895538146957137503617341395080089460675345995133139080523740405898582095012679601200378164108444686030818093800676094378072281086977669675460897869876460869227174912830196139482658537325793534559979882448228158949442109619661053909212763937014173011914170425127644283101214584759182320754965175337176146926852425194085064750229236632103999505861663261201876388953752649577121009778076356414182186313168430735668653678244282305814915784232852057317842363932542471366874299965336856647342675672286819622645194028335730486621122662584550875818809792184650828754099482203966629366538638478410090628250661009308183262794357662957493267746441598851554393436701471641104727194189380673851703032823511627388977566027535362644601435056553098630721413431810472188204721855973184155276641075925336643251167728481354973941162644778238641397616783819083170828083126934846216717697215382355238256499930869368671303313020635799620215439949747677690357907136053233658451425686697347461255385596441733909888589286471968882312973518071392178683868738492741314188463949002522608665846906328188116962332942177859508878147540195954900023864530366880506909589443843926925969354037940607618302083385980123414792637012479960076903475491622993822058496285167457132889930498634450043499115840397208020510567945948862381756212837570637037044545813606365236131647228196109471596058137202074513641037336450325600681324225108034623415036308269102879358806873529214639496064757395886423358119041697439640024398835861411677612180218544425972129483857682690568471875693846367541696115622884796530813917525504151794055301808679171502649123566781176519114536574580202554346880452605008743629452955443227819580954815669233192688053626094836458481434404918625822552507399555828489139643452970901703577374234269051725867513620633096681426087038449894113540314636370613556408836950421132108622955856228385239394497426485508010969875834843395727404015893926085847329373499312029209163215559408117425395642072914930864567138136674457760091025092431149110700310821977170487233466626524639360179201733614935144638994932194222479005723997070578395710584889239114574487213032328559899944904598972597301476746364060322149407350599210052303052719200139357621953494465025899182319775207258022491719183316620196996782114189501209306084544976790709117801081189117461101403023543922383542230491430188352640243544946317483574300057888552048515205435171122413951340287434668332066830272698256050638944102498097133485623609058724861348914664779916371941228881963397093534843905452350982894361091326621963104025059390495633588398174934104915799622938887943622941095465956943219824738324554063184111250761307097872344688635050507952285275117113239280677346335029534870676740256921607750725435028116875008547838486975895072581725572615285073061723556043241456200128577698161595375727437248061590873986212134683406530051411709865653924316296288173003895452243991958937589397683742350221927816481269883739211745562764963217678455998271386858190043934155776105507708665043365882745686951340220264266043688495167778761913015488615316607067806138896126577392754760464401014327235343087634806083411106534039188789908273643057869202900865709312546298452045603435576421773312538662686556931536358646890742882199188216486363040817356543328929332268545544333207036055948247758646342552895115786539603889394121540560878801278739290883299845696221232934823546474717700593705516356830949424542094700550440485079193921775151861733792798276029259030333838225329146975834325877059185579794486788016836104181560499822398241767019451941605992799137908605351573697649054326819946119473220045258514126955335724221028266816476752967167334989251941874850834996945836279794720932758382752244966592245515002458865292546965234872403694658726968211045975278684030014339759516042717009363945197214779824586609268250708475170504789994678116314167705344225230623444399653776193277675470548069814157326211568323622846343441324302423716820574660219130871795339698657239838388097173764733911748696998690303001078560390217904005066799262255812782257855470882310615208174851573088474069397348065695683219810838221083537098524164269128390920299483098490042888239152673233673659009397713237258662689250766644796703346818505235553467843020261143922432275114054414272953929196161610813342407798754336319257424570012568147207251532272557183130326103816173097922027396169572337084343921675722596395132123699691902173965354503983728338841358078368709137357744085307187526967869090271357670784985033231442813938701643604589579493737312234549318331646677462578604298409335188114832906984513859098240484384023528718160055101273991339805083045288801248577177194008183929512927771681873963290165551732800650982643310261602059236869373590609883526396004458228357566745781977396891757958012980380246871371774306543600520801801032408621849460403086089014074259935580067441737944981324618189514681970516715049749656209312052471549540941157300229615323908803923642082719278332198666306920142134129156824194998529072367085811969368785321828457660404034055437350785272098314662076767273050535356695542132703778390198627830053826242961191252919414797697420975417698765593116195945810262347619240326412257482206434383610347107206456318518373780080632671896438477914823394127393562356941913038246216318733031880795216346018459868432925937686713117378561849898055879792155112517529480666548140617411525197461479456427691668583486363339516301319929353926229303260427239012360631290632974273149462584849358818253017991081824527067079769268018833031123250327562084711028356906364289357754746004096048059056097879871532444778598003279330893148283083082465471301209186400594864650251351475023232480936705635453455619545882455058209685820642467808260318464580398608942700513460235848246267149772337973670239259182669178844210801808528757970853874431093792969131328715137166720921920485179715817211149723631093549402751809117348437788748968361121676265841683195640390674852734120238255006566206080915420090123342128421419638034708928038141517715731928846133092296584413060432058365860655988635623665353255026702678059129826327181206071964676136816847282707332992726431257090594796947480084817046147266090254520677367144097735776264755912534499000040514054872718524220599175159911888515336597646148575176500206241333348387672273460758336171130658737549132522004431388814872968151351326798813731228153122659956763416470259860397423808250448816646795117996529189455320451581217883704361489018911621701016168673291775329735725861477078371106724404718314963440421913231693871607724137587890394907005424217438642807683656824705122738861763510163859919686239605362635392899220071593837782918703141099047791497260371597345928416344957541470898324442373200007593372012353603246655132499759086103542443683853602187868935033810463307067022657469564855926471186966198255235521935286980858551695791490389032490957057193492645566478391432988172337054442260780726549148134828502648851711800941317906898763196157702527155591133686009349011997325347713610817690258472361812667949314423391092831977368213323565265450663949358882393047030438541067195848095765591764729785513710498718865032044270799821434643657478947357305430691389559546502396253794595487405539031858014923134251527004525679281337498594520012078704861752426724665701044814417932861518352682095193980156107997779846092672075789943810923939285993572896756280911865503060608111931061334429903622110221932495515797236902427267960220818236788141206209560623496317406924359579391416553548150027380180796149582077165839648231418327753678495769053741941251134648221441247155850916953637389533766189642380025656100054813060338102869360255741523565235974311508699659592091677459006273760312250494544311861535187316384463046931911098666334067315102722092010684683667943076793336262953598659607159394760727102859463904409007546456423635419340137754615978758999186647379677309342211312012325844161576339762015100666912757601340200414580099186097915949086470966175676353471215626902853000706352309253104506137822092566898845501730767744235590860066007743722940101839836269379402831813826467058590462452973731015081427778704258948903371504364354825620215876274979096672678795136335181743972527887872932282224696271001938579880571988878899689679063927153923364694868232298696438126170833827849082587891886624797708930410080951322071266568908337071550145120842430313816889793844788539357076664173097272987728172807246774846225844795948784446457875532451086686995359001861115181447742436780713395683015971926307049758182585568300895696264144192274107048817463365219935807010757727925609653495780106268704485020653697933565506103597904420339794229655440365803798000887900961461654140990204622077794916021311239536287446773399597587996954775565732602104446746942299793937257126460756168866836760796269985383085114312138488686195157846194194968730848995280190799481774966495616633641295527804480103365941860910595547540360656173067907509690527617161517302903387731626184816451052425716062558462240840502129626357257255366669531793802021361626762069085282447227084690851834333544950434747493444803973846116751116266508994631238040808238706360057759259858144557607132128514661472573747699267442826223588065116099734467318890395700057779455610476915791554641053196257450812024851619491828266632199924596708614131456440096527607305733085522246281180716765856083281042365802613153840604631690457807279734785204642295161713404477328998224511497862550410471884675642131720325069756054861536284332911221760472107698227864604397963969917847837374174533185204087968361107322281909586785720749328045396079934217656742718432604253410818844033897788220136907444942205188834634303321614412198327872498872000982302135420032438532116339362342036101395220880637963972208534728385725150655457868487021981510088683271332498477870055713873701075357310550345549468766469441138827214947452962462292356694864462354300880083007165405299607587406575481097021248879476501987031886355850793453978186418471382321692643695685940244498504749548320580001878936102951938079257507210834735032462702920375154940814961051542836318800549726057490501584377051390055233796147994142938029306960821729444019053973783879165423424033120275513203833789915599986748078859737560896183214227078888448561113507885264533834410153772896678222587072414019073646362990856488713896865280715209241374124516857683898227783700968028900367145608837052494014184006448125177797282021893888220948787097639656243213481874232029313973452592340134722724349258396021847499958661866532605668854535640446388068465733745015266055993087187866047572724306675860300229562249720539605768330771531716761750284044890865880530223276363582194350941170298703345187880009162266036055369536802121353416638648055705558053430908284029440269765903818865060892479458544613337651246519320270124668287698339046329669011442737791447640609158190915418576824872477111235551940567015179118881747651206206276779018578456759280747756338533906183319128340263190390337353843394417440027246833125490279562550370398338111645617009293809683679151005547243219436046957245402800126448137797859639588860790956385880994665381501576051109031554359959683363598361700623824411326264638736385843344067377196829670169772142100435628717526463764527549851557501391553183099868118122796638609561620368425968613918490375681200856491696977381513955271543512389879251275675784940038369902109410673864506969723170442813620258672211194046328571453659126066419987329297672749983033188525389229477537258294003940661506127802744554478354617928203138998504817650210734006292586897982990176896286623351532873604781446579285231325423926270321492599504830937331377309096807015808605306302523263020127514835235138472555083836134625909810581527933680650161196426947419812795108113987035113025827232468204564673149048860535992399493851928390265763859770654223899008543573046844457336268424390372509059593047890544314586846872464443258006942281465698276390232438109973088465214097637889632486394714897624116589341159716167024170815523362609523118624588533773966053932195067869392375106133448752561121761008471164315380158330922411212782301746087913563293450374741242862892525396048441182153431091273493019459467040496336932038322119504984632408690656617471493643023373907038548638627929354787417669571485010586015594874437144996583070302729116208815576283656312393967433961892513711331334342634611476307665982097249000652629407259506825652574685917393959994824341021605700428193792264049594667889778582908571878160799259354178323284749517309830767995716682281134481458480406814347464123478237335221146626576239593750612446423285299193773497239480162844448319654138593767143625205034313096227302611436933822015574125967472713781408116518484221480472595444186902130618506628964378661519004954925753942081751934900166688813881265773200627179672481137533583987111837612541247946735516060347513474868014236815435857349664053828674690296908627895966762613176824421184579094801459970875433955455093092488281209157338000611932193191943877379705501017017349526807135896247116881235098630297190270258042348808274752521217435678956814559899775271136397268561261704855227813852607368138223212807535938549313644816445313636788183047451512774958484513287298359574467794056356842855157340454758863536673024267816836298361959338980936215692174502892871726995219710388436604196363793691028610492918262211242029547069130899663658240633623819279136610659101691346278499278602639314209457166889808045901262109614445546630901612739501305362521218566176372466608214674108190120928547411241230696017223683156173411129184446459854617523001760109926802107779268950584333668468135147154039010188027737233293165424392622819118043363513255617585333346221887690068465973621754250139304634472860637784238716444269751769265033761880569830836187067024377073549156373199104845464176141623209237574390598125618057278182272096897711543977550726907655101766603294635659407389120389567266979188249514204676279386783086698116929844863375979476011217877806624940400241400681024353999195607768179076542825096094369751065305068875455427357019748041013403044559882259362716257849886204072371253806704411052413225744317596542814806508318581606205591616342262360199205693115698134876171813286246782838130658016935178671108802462002907403595675561991836816421897961553501635789571011535769710064321268010580990032377439378856953691077093401660329247309525159769271501152041220513592723380574114687318925695646479683358439083916747285570117544905452413634911932536788978781083595167370699655817557241720869335906856480284528537741796593542428184209919787447098161590052586907031781653023112596882420828462505069076783737225355430401133351293506034911379395861313417587019694243544460278533527477480831791647145220155485557917433202825169929575649600657575010716066166862492120072298999411781362473853109488732736415249525506486312662388661017729746381491357148451130768722837143822473208836901380967397348637719806810571558070634606596297996111805033741901965439735225624831194711417979873882005731324232034622256399578189707826592182127332865696268395180480157799235052473942928487456503785859682139933255268522376888593098893975832202547876177572769235413088609163950651557388615568299174203491407990468496302114311381773723741950846606034973762954901678247797112932175201794843923217637297683732497629745720558352855008693162304549740754640520084570482561928164867287698266586718234768148513620437706537561041299962848488343778634497757007933917165614659512419187231733200649929867328886038963459660825690720867871740958907399225759028300932564300279693853296914091620405526565582435662045434541369526638019357604798134729496719945376497758616293514132634555591869087142159665124778608289029683543084626639348483152002766151683798986931011261810540644509059050279532558334252974760823894558575691781152712093975726792144347460393949903899292206562766899000627500956209751697836144118020591641885898119611768276232135596065257711914161537749285889160096058361284790581661286928754421500348309481987141941015451479394553710063065229281535766588808171724754822114989774351914519725026443938751102143576052134918124262102828005906253156701251845410152660468932434013032275646936830924888696116440110408375365582690472275343822210572160537068322694650056454794108701156178806553848884248749950069650846239458963902046242836844942063763433602169526889499901336643013252538414658274762365127709554135782658695830136654282809839454391179679200463789357964915495013219962726581273838079487641433176733846935076581436244266876933663792321120161598750883588668305613287229832847511647867808929031634049292170657791997805464061597457549702624826344818513777034952096968214409669903208413167737549635843085780066000282466526712396187294788879262057765038004582518025401845969440062525214927183613806587531151945203501670424578846734274891544863088147535919526092854830354805488973997198407153807836593676839741893492383376790894683592269997143068402973602060006878945969850216072216956078788299945839371050081366241359987212970858886369312801841155763901571630306984064618504335581943754734937868184164292667264683087208629078056070500232045352326172977832186417617794294899543670995224354827022917948343810450546399956803938700230602660539627194723374733242260004528446385276325988573456229009473415535681882706940976534983665465990091298933260439565593474945455746844578808654942234746463727690504911953305973363910032143622439516364423323590762542152271593005601499078622099150184380231426218999076212950807061457902571473440740800706968749580918118624301087401292981558181856260624295838953185442709567336176051187973555421077029958568439087412208414369435398527898529159652391703993637340136326786121242141972155183086766943736128041083207651916013105318382034644136128102529195882925239492038505031211003855894127292222219098719732113439178152777776080202578536329123557907825219388888260257839415489384165288991635525803965452196062994686636566039813929620372453880952056613440312491969801492397660252492954548727359332688974975052192640797775492842827344614737935912636296354420951820294260495054124936422271640705750772546663956572258003616591765435874398011191982321232810079523249551377498779384367919040672482830400285562790900567546827893170744017355520947547299408270039347516814574618383207910145854766647211978413466476537247414216696125173274433522877849763349696041237821783445140833228696144100355507202894810947223733528634479966794701512995544540127962818468104512311625079015996770241420584621941725226314627160174760593826694798553966281373088258984368952315032189948222316151519074462653209982362281089644964474763448687982441140918527717395680083217559695237929610414854449230855028569846421040210971415590169366673081757899012974822523236276504617688548877269515173896515686686178681202667991739434435600128640310036275799339747889955707249720222430078053443330521628111440212595041759730576581576906709887020757183699124426312226110991685671541233213877523029214202430588318374919996937726118399020647525368628589316863959800674848385409798281476277863447439308235087581222215199994430320059504953148662167665730846125763273104471404778538115642020182335093603003544612925784304888416415993878485359134502635496101039070126745454186398320885393904844111146629818390499209563247011124951251548310399286979536964463395040575534554773230257164391721995848218307818190455026656289767986929196344519032406725575251998714963874788730122932852392621662987316516360512310965331817659901014085076935479747648769154174490823503545460092936832776328467634258958836477201047354100348254477818308660399943327686174774883001900493980676383972783600854158559261252087789619937384943581424355766914389928518475395437235256029762998476143240249568846753403197916198637423209375871820572206918100856573402235781585356505029031113355827580117446227803659459686871299466961275643219752955943900616289261493358496376645920272681769793249700592776150540387338036924828403378711070152968053298102228890400333415533117848588869080012398522753912895303446699095592523394118501362653909729711635596341424155382798032589881895473462538073655162828293405451034397782860425934693809024481637784203770458061870331860199527899401686155732423798836184529885900151453003850471325620607379158282778765729296132008666987349710941722094253923993179607076963282513262858326378748864755183714684122708823637944311427550632240421789652894170751070190034655954583157493049216892172952139087432732312321169121057405422847769704785748473308660863672545192276690677362244727024849975080745508932899478377863766522131600694320268808702410316609854126465894781935390838746387228326377425348094350842412261321014991923924883116296194485645511273155906945883303202575081638528653852834665379650638669992883260912397181369109103309233877288938344325144588519395671364018987623153317259539790716350620315897066474722741607269125133571492035657346914234054869548172544959527203176688306286609903326446132168059072691774525541503406878116799593056108342776737515085210889066657430035541218045660825646439726031280181555808983318125074617034495361483612889580269801538668607135175394753165741067195802195471964473712982626289154074765795064448337821075304039273222106915379502677232828684346815133643162705559390055013161742101722356124458389895664912676783981111068463175910683251852160529848102620321828759432831520478112860918870535845370785793842599207169625071345404783100451432663060853372969708149185837114147240682556028923549922725105101673767683210197039435648374485789161812350836523054604887628635548793861428387658153959522339962598498148783931204538621667270783229423312979649816954391154920622745328999361352004427083222460670843221215078793617357654471743606803618531209970578913684979171904919804904264857563976782565156518436825201916079836883978866322948482317861610503281372107084458810255735130656595765919673428688638255713421853898002411678652173137227926675572084220755657712200721764857905274968701845656279377162659608496256085689061891190069857217617396036258281181556618675590914015118306966400193592778599159064479028034212494323491745416604127766877839826199392113246017244118013493075970974923348477467028818776377122495021541330686805877119745208709213080512389816811888396440924895287855441583460999844606905583456879102810367529014977657747867330285196261380043686680883026162523548170590686485332003219305159915129385694020511997803285140202283964573386878606218182470839631272524381067849652956481524464521866740646215780089493975717026083618062346841913156618691436687681805297008858625242564184207266622341386660127673657067042136513887439256165841220761751522248183977435128720995274464390096759203583661720109565650624817561676944864748764683745876865780154714672422971216308593928922256254296329393429584139562248355475292832018805701310578652304549895988909698643772418401709909429457976840334189159612684250474502081198447487871517508559756410420133303752300668267320297358325099376944892423392933658668520345719067168171719772422760397631305689657551321666650084101827164335546442366288524247812121239016081263035432751072765666413787973657725735344931051751436627963641294729992820250553826723947361548800922207001289557751898063759567464264336633727766175656477377671015385679247373559870651959547339913258967985280148419615993559049259596628419078242058402253203873983727071773481147747886759204612884814895010059633361871474938692672039051942380547354936333615518517174270107154897321012218786111321794738841158391748447927427729764518763309577333301251901809707958289539800286459244456709093283799181629748707027733569563601399650469168933992908181251131130594162621661189227306904170031248726273838367602093619365242550185072236502502497848295382032476374413845542671192627030530596862120627919850208583367322224416374217932762535157592715469690646129389902189062804280606786446556121827850662863180534109058788931945131382892468203714604090759384652491405491850839944763161921878291141002127443440561925062505151955252456184737787381548574055668253338223462580530170853323240478479580440944828838628990707678634236859734695935667289897725558315896356687856287493980814724373790097461990321133971693275335718543602802340695514782054630642695308976050125476087723616479072821445224613756116279691258383268992286601100749673478384295836174182362193410182149076317280523377328582103170296152952316529660122179347112992524056514811631626853484510126913261675074929599480359028416877462183836859942916515397554924975735022220546377807277953221221843639634487644868891264245071845999978796715858275468881773968776330826106967158407755936896501274662301344228428337064000173453772478548838372347201334182930162791960132399563556579439543379094569689881368193268239548631570661301386084374960732971176177638997043339185978192794287929352774677072901623398763808520015858816570119565612698953466842234919230741863595965604036337041350138569452207069163649630935305191581900933781909207008275466997215597782114355413970528111239682759807691907652434963003449681864500000765667901262152899219406364287861880614007443072337696590310396885436059209162295304758130517700121400862378410663971690198098976706222385597957777097054079094280453196307369441487065786316861991008670403594951206931372292949229176615035571072071122468847829310105059492903412542275473252470379836880341032687154807614961048485517555745564407695117646032828930786483586736918362822068077840926869233644732294918674011859604606612527239253625903143276892889741983697688736844070930515421621111724166092511431642343282236270145823670831288881236208016377012154871949280975175482569327079013770373541097371136114776640093948322448327326547594140703635965947704355441458852435392171141279535859020640868839018353140536896878497117289615417156807664092615967709159112057013359000574470948403276339831293106796445848541178267422638739216799590573644199458088954398566533854342552752731596008969392907286807354485216359555595123841313495132691464532524294780036475652129677849110407902650235899937776174806950269605541894668804772878462937509075793322786422835844145277700205974745743580215702382372957641579248377869387700838980989035524058908521547203444658862765554286830831925044415060977189148109602522927491396613606952064128517381816461620209871081198104132934992248674988998996944317338752412651428730930856795256581870318314050500012434693463529832346120930037718762735986994701134932408701837663971373954320305843018726298172146179676879731156775196240281812090164313619137125620646582374401309467111261667259949482160457752451581013800672165504888152065559071168740843063058660653569770191025324919723851158886523213987191701894460827059717272134110786003875042100657473665831419138246397766708773373148787311973750934318206413327707956907170610374384645849960976035382558291332405461237196124735498544257299094424828003964552318260082442125152126454194282958838017546094258523942931799530016633256981331198990231081538767344955746188124296558863428656002085445401613381852301245503987430732458452469889545040583598231781414756748827198290701772028440575016131923604016285023969680630490180141234494457931690756116804820122907613833148435652319160506025677723837705884507647752085151459069533551610340261358026923174622814506681190632329943510088359713247799380809460474810300554025854905744769744017627356141718911112199426505306903905643751889434021541528084032421657256072104706556114837743781419861956663141787660467909593869645316034533672605249059190118448347297687258474509351907690558476843497672884669192034416319952767131258207163480673618252401249913692272942464554604760875713066420164272185906362291684630623298545004830496783492135975436980381406472476072176643328758309500604964168905028595435093663230670302363119991480813436002526147563726389699613316746819201739852588100822219337247862125064726954635199807758764674247683105862773905768255440994706922152773427600516282539390592469144457049214157966583012186837882347820880963529415889770798293048796611027256058304401807090076693961464725798422867717998664532741643601951474618010059062208921062185403465174515583891308753773845418438262254214938627162735272796427340602727849167641442343271161856275736854850675398075835905306790738271855590443070436917733233294841516557089449102241618415348180596384518622843288016557909808793282274314554468107165102072281987295784972743095569218256991206948263359934330496432443703465859600367755216379563251196265372709122654551160352110437154158304997156147084179130673725476655528115926144272176692438516485084754609005267227365267567666015134703168451128556711320142372203020380028776005786747934172239170559844881068446865857696607976100801817102626817387303744995888847632281553340798564649379919395265927761897005807958389280178424457923066046994501125025255826576871671579375075671581920152980701076760440949310957869247202579049886084115824657729194812306760018191727389111666039643004730656961869812489843525384619099636103527116754056987572744656483547565965325992702821747144286769334713757461942037700238656009333116433438103952987714561422322819858533460419312095937917426425315780238624554318033446983836829747804658689590931064555932060432448196444461724133448551145279799711064512791766281156814997598036490240855230326325460483466577734305337094459897219961054379242142983049271593090808039132080040074971713937979363318625821964626612946585058563629749003780002363180888340463944513536963310365487529367894772151792353836615027406935754325291550362954382311311838240282098394979502490884023650361493506517958890579528741018184166738607553970417794453694941571243539465278306184715403170736548695867074753956283218777799672760402385320948992879124874009780828517828607213030343004324884363837989567735391001230342270946813970172398202866349039512213508070048387918146523038558614435135371562919474518752888959388334864234938743196816979092956605898385939133564143681300725189149354216300938452232268704504060468415817554085873468854392975168716787036468320711652064277992212372202937176195216882437009053054852248694683426178785773457565215444318134663298506515743656701668322587799578941465248500950978625089930228602543516143973343131903145506413666146841483471466897401198490817891102062434756748874774309947563226855682303041578370764500747846455952135458239947566611389313295878692134807528552410896120293430762743884411784311835000442897463680671727147693339245596680455104236815638651842204618827626949937552786130604189546135056355330919117174243398391949306124287020067378706803064761565330451727023601132026063330473234968294670163179962431914938372678540938964808236505259878824279582317562107230182101469222531648672212013236994960749951432772933304343973213500353899928580342454796725111180211489369543853749903734914255081075174050605934413943734172411276173222141046451982993565315800656347080273539713513713345140700906544107335486632703868192661740638043034441928336752442308212346805107970540649037421977096914433628790972742560896240967507178702796306942851170020205702440512568520787275844342892954403390167913748136430100725920890323475339215834079204225399789923682738398881025889338882418128704529052369144908444797222770751326799742866787083194249095112155559833745542949556887306844949537978528906335449973811677137112069259682913114223730369959969000499430870589922521449825345407881500945580746110669330341708193710599502339702502827588611551242408665122778251082729366500138533564538108848950230145149457932190983734554483552115938171198602548256198011446820026129702947882224537109590084490896967622280982040714745047199820256844696216506436124301748246861778149750897093015301007798793035197505380174169639830584753501135527542220331141752273937571116713572756947337993374766255145352678170190460009090748394037510875762441293470501065705001797314625092857642805805686588424821182892689541985204921199320660413811948430236181781924252502658327443723374220215452410644060959442188779221154939353939220926543717362710383782451231519638325701221269300453232119672666753249327146213213458406879463296477000880041867967390198937749446061599360902409425111398250732103397451249248310685895889540047079588854906667594704998604969074874538449507031387096253320447604354907553583141067785915998124298339679564551227374897185870655135502509438865494728505874957242425507813497967347879382864530403012682807996780534862949452028176404279052263332237936650681923698424949758638666297230107487236885602496440904032461763414241228330834752526839150939081240710327656298585678772842250245388305662186397495305783727715981557643633003794957609024797807177980843461614229181690700922505920230746028747352235997113206323577159811625237486952591935935609926642859825025117844981775084294187132698049760112249458255113801978032028284378415706997095982313622673560529431185830756972249384559137864916637999370032912888373503668152083282013055119298427994707725561111705739839527597016338430081442255853288609027661957628375430150718588068443758593907761262592603027309405419398049901607077261075661387234618804661623419139293863132556377071255293271612945246280465794517562169947987415776478689541413352004521915551146164370159291148251706154726559729536611824370392903325940577395506165599629760127054379457728756277727486691165450347021169195542316492650258643665751577707480198989314740383165929927596958825874544702730741454005766882090479899242985202644926616402938707351588383396525031240496181457115148222459304487912109994630532423482297370010548164847174511016506991906739296798116568541262732750316286339529135008405557009472039419482386464855103918701554402862971567619114261369463385193213614022834342320896130725036455888068391332714744606208627975525619756441969004278799345939940459242302487410229628145257645690661483324773014155016988639060119315238084147049201954064921537478016210481679910203356609750718385224963368858659664654346054406928653734977735834773669110162346259038798367130768781249921384385269906487810278879540301609334393177370156985232704554755948904827187670390288004507462341733165071651795660550366052356381412235575718652800407872718116495010539052707594432917253138437823326042897787340228289412320401056608989710893494278999691791737772154668032363349963919382065628115816944900288486041736978297474428930928091748979171738994942116016052677481640613737715186408462249414145699557495459241663693008363665812391275504978513260265275606937661819395557799978253273768793451758403180310111274564286861813551117535101133992421685929544607782728676011143336736187252654282219812871861892412126214555191468227470000357416803653469974476023727228589897528285670388894726949838726150279105822144038324992037012833790371009117561738380133411800940805042200942216757670779704267269211640462546083565661088949864847745856604487774349519542520821121706442562518077589934604946482414878696410719734918502687559701844157923144382230785348606362175969782268330439529300626717572302555191360229963421315018564099978062518392928027582297978071231569854957999004794751258549333069129399771671392689592309994511790714853348547705570576125796807401822857305695198292714428788766043341784714260237381862661365808242805394822850902277745874093905670113527790433512829427228064205358531863076014864533808138564397790589942342139267272009628096023109689939743870263619109812243343007695541897283078665564439000413329910189062236214534781688873994551138372312576145677405722703805086958702156441436081717269460753907322936535285839587353601609204172195316721412992853550807340211639361737428925440185744437138086768208482102188030967468088153068996560029588674356268280256441366495329503511520316101753445961715373924342508192635534673917510077094094480023900694943177355988546516761102569327781042575143401400890750290009002146936978098896218294208696662580522901237739913016341464662212151138231311411198206978728523452862803022435236174566628475947747044493813708396981458812081900303946293809593854190079959424401511959498103598976879882752978745752693168022978533123466945689918743522175582575673243307382683699550992135940720153962227199467083288144733988909685968879791521626779156660034185758338740163224761473676534286997214126723807955987556361101096723983154750798945470446230285130072952815635945866034400307241299931735344030930878225567715187129718141519916158848848446828682949177059879505078940393110811454755893487020409000909274628707934898240539974510806237731905334798973780867764834174830815205206303063331068920643824002339622118146318110102378449278219709008335856996986949499184358833703314657286987361701083768269224706613441387711448453553771960463324238366932169131023080266971472340332219787992900854919331818683495228401082272731727218428597381218962913773641501884885336968880460245312892234697425232508742878167246078762540805905070940971130286163683402064454795654712221831924656016857110846302639263471804257605052319825697698068973785610728990827724518513761800902904470623193331975642865774331970171100939265145781714666024448415664858034750448735665265486306413084371803849197265319312291225558948083665471679521722474417268518506403814691732104676869989623990484235674779526281893147641426790377111118005558094700032691172888791982233361094032824051897308085922438028527371593105681163569316501480881793783485827459514557139789162681176078164876971414247863861315974289058451719066643508745074101909962795354537629881170263421503368853181669167843304226273516150961377732135302670099569975205013417911221499158766239876467694880247930341408054492645159232699376144846322291689371271557648659714576511299830704728284445597919107392659905642115598368618226133719461610635975405439975814245301043562346807649796040660500263288205077967702055760795800898165906439630036085180093105628907587427698825100003672446336094455351082247705451187132197224290163068213929494405838932633442177638236372950046989404859798656019541259488282671117786166943229927673822902642566456068314733619725576443713560340038394037824235549185024647743873229146273054141361465551579046004893733703901351533302468768965300880921171647820838196016911189394668531862369018507623574616569982732282353449839389951654839892034242455993210595507285739567055859935259789363251859740453081095014135944233868268538471935588052064473892851432875945900409322100484068624937210401477699863207691935552384892392523258888353114065067067419286320693022179920245289623783141134875096450524185573239583944071752495977752882895460853996384228733524245123274057536877323926427673132099416092871515652679222215116566108877372230772556342764845842789445273577419460334595278320564176958437930136831596931949134790695313964161929482704408309145949560002598508379493186959262253884316079778121226752313225605220975469003768584962666461470920061451210598302843067587345779280061518215953882995800935917307780305493982294317948222779601646755963594084623467333028306819755706154604287807964188291132639183021073441553678583582588908340748773920788987934394298385208197055094027175244305526509062271820834248975104242727073504101218087338008276894600742639690277714277304057348605874932116134911225597654869949323180570735570986189718985751932935117733401904405531399650741460435391293348573164532726085807730935324483679854371919777482409041467822591907095961610894144719078670281473136043814820039518300778462307576579305804891324466803387944252750506053751818410936672041620567692830042654706535402892093311089967463729698075348871259224021437358457464821209746613588453534367513532998071360996163724390290508705460924590181430753111753243744304930845128316993149545260190537539565610731366375932688208004375255694240311974441735713650926221443220368944316827022278840179792460195441969725436610869239319483347752789155866912372939613602086950568363699371637799929972917426851833674431024148473297693130246941016109848628362874686942711329927488093365146548432560271016648613157152295921082741580009823643837109465138779224663141037843033717114881728276686073951238354563977931520801142183522591590794874987971722208083545864384810827736279412809847177240703426816169191411933858808526745827436341472227631385185764420972668088341148343747837398321749072756447930735302866000943315072958317335264006963848523109507315313062639225401212747053074887765118935369780739052319828838250636149018067880575357956226844836625878849607665067454418410218206771061390851143802184760006676409025118634976738394670010740456608841224963181646692662716359222232400600838635017765621960906676399907843432002107227468514066532816287796918032642804729845291431634945833719626942289664210296783031132976477405357193478593927454669419717417398756434573103148273968074930000453697023237669844703438190470064305443995860259317445911871784040082284574159340242004466223925488017021230529687349034629695799323907881357161212517947053895761445645574311977115841834754704414543498991244794305056177128453553785994547003017830886754546322775637833581346477777716581595004101401521492339215202726538926028404544539146632639749094535172322167936618488317340846912317900956696965696492663285922980824469413507562592905885826815167559665450996502271382368052454802101034194286120504066462648365236559375219455239251427206182678365597484352985083034229136594226015789142833311006697612394757355067882652853175076212378438342785312555000889377328550893168723576907314401513956243984181648899372404741496390751143741362253907409120385517495790998667941872698133410045525736536282385472007872271099510380211763096526630088328205951543913813051767015539962347315782070404380627286350324348816010827373769270040550383912500137396014765664199105841707613107580791276536750783908325031860966961508856295740984581901367482081885836515477138657220707382248190575960057884902774113380602428769717771896554638083699826679569957998218120599913828121745340056395932919873273639567772260213304274789445792917115647994002282125339099384709583432284723488615111529945291563590210724899842704051523766853180804444413214168845994434820888615953216881880160311440311507414824154553184803940115998075018852901279897011856386115646582873315077269146788602406785814279312394381422271152024112521179958284510508548499277432737447265666095457283176922409289013507148120515947400400662783307843592657210790540891653010740066161680119608146054863284335921636637663140758527674030110277985988220973283643496663579102301360343234241259502181491085016018398447233472096357847000525956280916028370486695900260542357521930576671952408827463178638200178227363687784676500523392770989348195836486255669424490384575219749925153713504257641620814192036488630282724192504152676537300410465934386702358378771532603328600875679966141715217609773920889749202678413088474220152408741028716002513134061868150078300027903686679481177577993867855225943727188016751577729275251128212366990665217906710876235387477521534162753330076884225263912934643967167420364565407183027935579429053442806774103350044597653465803827773385364442741382496973818282536443603775077553249394633929746618872719819986552580491336331785268886159669903031540464635381003558032749810570891133216062455964140407110754493611578675440624145206147341431602420166880876338857081479935910143927994308231745178388078171452752483201975562324646494224182405108298863405172261389880977587690710899428002425966074367670841678808844313660837661594339481829667421130083032727940178810181461056672001908665825136380593780386756303791442801136746855936455311930297722707447973071803326165087263868274916793331632610130410432352424622245592922692678735784378394643064296022075843030830747444217742696233141971991980786869239397548908350745794177688126016151391092660006537833027619241675976191995931725309282443633362353405668290637176544445547719604518474141279295590933604359334470797544046844832410388238726810589276342178817888993010038352444811319520674153874051218984006331231022091509531346568079495144802273913568205330060926036236906057611467904695069092484426081395498004932065113294072474425811634324766342574588439622907582663161193912140625819744703297191900905428808402776700683346292965299249668533255273048743143495569423039540530665817385324183859300705637342165927265957161644256772072497339624825299273550887704316342938424515652124236965498469532846438952880146841285120601199696368993413271415450868455483176515856532439861761405053500805025346665864133331589205398265984698086435767386369927911006954959058387338777634671865931708395896390642512421640634645515526049731678203473727516940855692150945074554941618042573040133391591085327050159309053478123500476362982018121436747497791517488351256242454079888487213556111080189185585781008671728801603195298734806024998151657991908348579463537551690318992563070625065676169594814724218868067744979790523173971734035666422886094959512957824067692646638428876291236333631109040531636787434715741174320045284354288691995591786903677879507565715337672992324440347851863220515324203841136356750552833292136003669888433216043700270162202105702270423609887674155718720445986621239016591479754115446898114999480104410463433656345147114915543096248345691529791223898303632286317998933933209991203167161514969113545246186801164882054690778568140826294458293299390972340189290373946853844733049166277651334378793653602477213069937812302867154762807653536187798746237815546835265889061902693926829220561745846469018289435628516531930371396904354338064288624570421489144162146409789131788255842843039707392840214021729235170813252877174460301856367703494475639142653273370587730898019247138206542727751535114522351312295805500126456497930246307820850041594957038224800595009010242928719447579277861474811502116137454859190654315642797161187255637023408561099497887461553022955728251074071866746969853270303136419634669405303371718458177849433721472900913842923769071400057809721762360335668225641870486634910364218124956522968762183829840578064098668802644360024228291198499243096569794842578505386371374174688614070344193343583045872312798580691095691965273938710767635394739752632856895589267879751601692259401110016727386435435051584430963579396644941668336567300241841837008714784021160336928020770801063041464623257170005702800447190277139772814324532971358731109371829769628611010152344507291773903848912965884108668249052208324146254781389109079438373929208811186788655166434475811578161439472991021920612972210496194845796801084904253102000226300677342190824226954184223610394585549684397822475969811295795089855960143715549949808035183175928422199235674024105594239092764126518754763551738760617682100094540112521569536841762013687772431737859064394779396179962063836268481132561299106313569934364259439677011355617639237682041336661005292512956292909981776465625587331874995092454457792399729662806036967011728747787315505040459774940130376186887756900822809312930056421566002024650304007364741988776525531468660158450791996851597992096300109794268854961473569918405607910351252274002625111125720052708634803569387366349224701673818309421637345723345728900369323672318425397276777907664899611037110393747019440071754146142913187658213929675506378740729201768521753715979766773019164649181356282496202862106131192243653237255441970165307889169750939642754589386764635414512701827651963030659164360954507814929219919787397079165490562237656951962825689926611398366014353146662607616295192550841785679432427302608881109093557924000667475181744070808194089631947590124716568606087832471368955239085244255666382656840598972425684329238965327435019624306939482933531564179621183760475569168372933853010779617949400513241332107941262784553563614240601126461036982272284318994214428483179216840395729391922698823856595419230128708070998802236525195622124353394273446593433210879823332023223864036173828323634951848908386907406080639489448794513679475374417223534641943495075755741895641123517326826770743719048457661462941695063042054264078526853352786370335366979855792606547279153206434473319087917294460241920236282611459990510504232785480302687071293699663723793303515387604490085228854092727031927840643806422291494675736934550013513076753796347731121211114456635347710093003091687749453018965228634781671349814748026537533054991195570279625101006644227887857820958137115343231359829284720502188611024156999682669743540059465303111683662256485330619483199749558417190909973956830575542324973701232049609671379311163027110736477451669240833573950667872577384375525320980673540423645884397095598573964393560171723378526920065376798377057110607684635857377800261955373911273278255385442938287948630863163061721659572476862529996398179827609446313014811598948398830624506077538815422850563805510632367075911351772563907153646672494345140725678273062769728329409506438555439159511102424100658163480807365559463642043853852406215241761281191112370024884083034402991591546206208311617815446726574827887037186534157485741654122127015657104544523811382099772900676783377211807876434571774804229547335582312427413267493478259332907529473104237968964901863217503263707694303757273867276624203079560087842089117430456235378592609353768229278560679810918948989129566196895171830861753893148489160781232083149063318377263979826350125392585803850138896126713653327880067925486159141284828663531977019970708255044775754921441979887135100011480932966773096068002186401752971731984238100456827123101359572590364065717561072011508113454559248295905044502685225287329388150552596443576977132623048079660404061899658795553283898046324116758298432889791462119487400026908922300566862739090810425384961656587721741804684216827625523798936886716149425929360555052555048640671562568247631731596858032243538732942998581360435878827895930302126848394634965081353080687033900447485975819809226505596605933761799360304596497889863804033683376356934901319075277294427833127825562970998233039210400958669029282883048171861318143526251337139279943269308249544708624083713394105490762941341697486991480146128430134930609459418054508159309487117890415433293517960058207695667824128819263947411818336976951805533447341915721165295506702661952594748283131252242257023246164301939077890638196453796994236421994837187404286838564330150557132778675263739697988516839464978254345860697229629539347742779164119703920948777293378036942524969776148891178025679970007664159241187434204003215567696137560293424906615217699637281897101502209770691088410208687765976500795022615554183924182578476236126278766479788761226526943702530116660605076574910652407270982294835598019242926381680178940804102941005574082571332148706629097993000023903270717826786463711329327246188781082620698477321410302777407204161673352318805142525560605677141389418528204306480248919914460016100628334956411124752275831050839238393376611944769048878836672506990608633416251098684104732698263254001170748818091505146185735811361216984575340457957114288335901987516761444424541149466858135138067577872585297081790390005023247087327195407943027149747655130112714414470876642420760413597610803590933180918175122518523217577754678379152788573326944058218470376545076962744844780449721261333860647252751347623703282161592698120995173601560415205144298100412378050960278043982766324969444150826785209467680913248951860531860257438292677373754379424277222055540748885689013964000260651978877091568163806455908293577583279612354917171220195695250483418837653562926224408127336790928393348646869147286732957960822478847998640842303514068643119428788692932300490938174778397714844088580968954672119916703557224976660359223575922856218117662429239394275463876228306368502376353432724296794746898625059575556849561856273384516345649111398987277394986547679631350064145897706698030676038737348137540772499881444642410803786728358505937360413900058155190244827245841495456762479313495512021854406110118032091697161869393217392285735554900602648064665352410426564967341725293681967990316595050944435644630164344570754848023430903719341019448499832807338100404011787241168802056422276540814522503796181069441687830644566476274111156808055038931567229345903087734281333046648879870850945076159075252783446483025629148980134388084721307118753015861335094439734898235698497869756271036994665189498262161726806623173460725659270737505497349106653221589198574258212690509755230032527556687330419492963280341124337222707898911812444205843182311778772713257810644054909432485288092914319810735605972316392436179902295449073043748481896103741008990873089216737945729668894580844731777460769651978254222821729001177301194787722664204620576140140798660273793128643848127656226081349245209044991421693296843196416861352503823603452197891184772191337924362786082528294501995776069910384470498918369725177492956392917197969263950319970352929586201302064770807441444952239311710648760565029582172587192818507289778448819437337591551862310288309968001272738977576659960334948090079661025607263539777361464867120868020667421173317342623770467854465208341038820732225588677099644263102406955852141236306185157827268153765938334481257942757446958425460249848337623182358042250592499368676944249699037115600804327341736097114244210733560789095212173631664926063102779986444365458102753064898725836963327144682669145666821645986745521089002953661645576316215144248499611191926346515223186595301395818061146588838025573572951698794612974260561599470800786607762717249602303483796886811757791652945587893962127911431435922241596653327096421808620965577156581500569052640441764404819763635913103686845762857780575618221280238335698615240100436993543322657420587757222377927797424513426862503404643828353509490974275842572672897449556566455070751434609681305999844991550210001065598236661992924837958877943434301540376975676474458232511933745239187280645319196843299104748939674234737318417411637702202447670459876457619868794389474820650862428416026628187110811182830434104090030618315279620116248475555185293464272349102291598860724527198411314306927939465764802108660473369269679164288474185285097501496273672831284531356195111430213021101799911217259113653644946674811219121871888504175922844230098379615565693710783540084285563795658661808818603851319811853318968469229799693500910233194303478049788208642075307298282584711561326148575252136071979669735283715851351046391734264409121015736484048116241997217001486280054729463229392553565841937599497393397796477192821658817367609086453301795554947794985736883296767587819529541253690569176281187068519794683120298462103451633433739704265762845059570370311521247578872178228297222854311998802069740378484455009543829523936374578981402120745563832072097291484987256492979421498086528766369544315834063623230431250960489499934815927738126262559070394416551003106602495119390968300694070940916680236690768411002476304876180126666430820661121612148108357754366800146343607531691532286746066594374153864562746470206958029193024773741113973748199416843658438467479757153926063703309035835911036688832666927803537430170567185450968403511445739316646433797107043776428294502584416730312763637026675377742255669151755348863857436244761796205505212562327573578538911652263758920821053505908354843372523815462889871213349057265739822284802137683444221996233019228487526862211342176301500883354994834462212155248588391116013240398095176712287689835017663316257713931262652768307290076724869774769349943292125757700352481703554358446852362610130563811194824353772161637078797811254671005325780788457732973363710279698998330043928514871124274855647669411357376026181186347671280316378808523037801926080108681659434007415834468601922143869257887434292675735494100536688231791350679578949534154203283648130859026762266478540342797039163772928630230043751720665806530642553961267001458829295035964918168211785359815594274209163774707844724707961058344199518925691997192374712930271932252953375900221562339792409943701125439436280183513146124271969605986832611032173868933110383422091014647939655617195610752124451116608563038537211588978206388699595826130253963247156530636827153655038847387853202336132824465507973713691241098237267013634021184945722487672915479370975470499955651480260101362307882987674752690080888553436373983751102473114836548081048014321066899063718820428029341852258424006798756579215961123981154410637929641795256259918047799756842088753180953919505731832868115106732055194095056056856330069345190674803185212578955164649331597410120486290136839450269014874516992223864311805659933007242614538827474474335047816447187170765271696484690265537815450294547042537511700712417035229282493971870044582580719644425467149367521279976247321728543706519250110681527571763907549026251351718431583570764903037685494403104124754060531393061981225477590856070769818595988511198357687945256300361703822057141802951338174507560046238963677570848936400611569783794638245993954703160141368161673388235601961833485185432384363560720301278406449740728457978924233708854951924444077744812038078358410145684696789012934247613594065165466572620858791231593648862689517221826392306183931617755697671958447779621046849462731394317729483000595397592348199022758875901332257357412596003108022849373566392037940964615323076492018105144450777264964356777921003497081339334661259709289436990548199879380084993139621007001543874222260875013675244832466121668456962557585427573128189564332037959723048411070879800059795684700068534289609951501161143582523170445080385965420424449959164774277572145042848975119712494848508306201368068681616419110291097172042046078480540592594899430995814380734195240603341050000279087536478990344320815108111546711974826109050470351025217928378871083504466678046644142759734631178327876390324889974186752745471011681848117210749101327049897433408555543171729870399994379953924889347499354457999449749947168056226306863153197098184203445032159376310398030558498371069896552597356316798883456631941414406436324862679223440982141891949799385527948535717566495339333255499905101636557795868759153695992758150776549313575791484148337396486486937098089457682800511210042844243860401051104028411770807098136700263242857316540548191504618427151352322014392008856053309617047623757618056758987830166886353321346361554719504510880875009456989005852364621774658895366093044955925452269814607486029047816587249289002626539197556544991361848639503685933756108651090229429607747093065434192703645889960504238414542124599868223663699915637729799859270664678526887252630674204091285665705268206418508036369650835178655686581147461740282112614748453045858906351002937563439820536863542016030559600124630388048537927465648848313964436090600237420076791106281470078545845704572701832961826605497509537425420012952237348471392212507721804312422317605020510817548981314228896448043097429284520055321839631309636081510400456358838600477886773595091246617388863505198503932126452665616050531685526473711468931792569639047839406965448322070206085350401249325647330471106983844880649218437699571232327958019035355316836659806724429246597176150795847447731994209848286191037977455992546125773931353866720339897287418079821088464727952908152274202829641818910954819407179930519764364407520443314236308580566816697381168016176486447621113862073865304166598625431996712013583753961617205289014105893708556488292596482177659746905209644870985579918243863425222838653877417233572865873099901853410948569039149376042088949912282659019778057833269829140333044695011158564841090552087236589682477237852555950375712624782774099785908280637495094314130930726357561052501492971024746290773883950510553087621254031738631339339302620753101533033157488181915938148810415890821313589508764670200002836467564218117008890954282679704299333428445463146765104062035847072558948577778045034010011557032137444552784997184832303048925797047956465863371157404563360543306882334395006471277878293248813745262240316172605887703402142333530945994601271904330004307394217400535158137585789094957314702994988176699244859469036570402095552250294455193711327156492456971373212266225260104303592060747151231869379012237714147025536598389006861793763463645617483213671411579372458723521343040990438765087736914781619437774904950233440306784736663636871806968723676283059732211651055047311579154771573985437123046929527399823217448957431204434139970302424965517103049164371401861285801104585376587837220738321986467059010636960546112766601437954781927593942812765947960816499935686143446798725025490780071221779211692973727276331415290554324361318980641095940275831265952014608389027443157163966760997213304652609014135127483710777201208667842940677913883859665330833116441466492977988538286518243763172673141586401461959913026500261141276468782510458037232811290543562784021668722685546431849941162788684867080556505650026900260814182876284160186077963110707423239540833839029396639816970827609137199437281414586912168526655709193829323585887869939610253698865266386446984819273921752026659337272335822686802761715396961096706009905699955544063130554594925970981456230857414883488066203119459522817165917233104459103839224152790126874089035865487554505121323710998599636372836810722528216296089283700222824460448096706749474530508975943785977902439551873434012736667451107047391084016771322933293264584409976066653887315182078875052013840357344098541768842590434726204327436194780256732194079568461081061353761947872943820328667518139154581383452570733413321087319666597482804531658860375677805880782785715019823822849040107942036991590174329858962489540051640298307262884673419101056425378813441825173295296400341961864797723780962679682009863635731814923268947509013257995307833503835218451599158531092002527666505090075046253653258186982768174230238341241969003082879065084015525102405305413026139211264213163331375517234966615433908131383906336591771978458466166122973241090415549396390518694703760099465309316130791858604956071369619076788160610481184800781711306672059109391639623025813046587879444562498207089542464018149387847815108362122860504900787622332760567880747582528915640055061678697993091205335508259356539822707530303491106672864817569205786500931067121529691296424796659983563575718056389819720057893102239715357668917392108207386215083050323865839686097848235740503971659070617629499207270551510584679100382497846478777985937871858622863911624648635800510211997922033329090248457029950806565342305747899666144373479425361390544294102895089082056901665063358696562286003819288698075678411816013345784186139508865346385797914075323280163491984580034713540131901004009867625825442599104339863273510130081585725228548991842132208040707646244813412256142674502693121576492727448952823056071791829909556009793540380397668896620533184256651064955472303033572672856036249611146784047040705326999332980636452344066369676168921696043190988266669469043488806085282494624048906118070757723589695459595535726326506268824836206556058920814455698982070466136754375000119232890998807931809651193805021128340145685862517490552830100728254828224427847978187625854126478267571683480865221104429052181961605960612146661684527484323284691363912173613902579362118182815829647328286832962383741766050592544482545762420197168453266256320332241652842750945559014887844764097489150209719180438275869912585091803605093428204149041807964778901257552939663674718825813497884737020137800178321833295561488416650954714816217938568080784074174696436420095006411057271225037411848339766043112038457430805914109693123053300780220571939167007703638845804625630632552955815351861292755577927947207823085196923308842204236671548084001557378252403158879511527165399564823999267783279641425840135494497434987304549184600413497161629316645351149419148978226732904778348784268664392327535488121455140887818710718007409650218396411911289887474149712274306507033898384109351367528362203484714588337805843521884475036128557144289557835859365702700197641875759716927023115012931689834204539593214568821464253125034617594920234186871376282887345706346024258114322233489717248516150009230940939851731237546473350697040487239093692252425358017827436113994429633442139020825125054010190581647937061621829149479687392165539238966451323659535008849102025129214804647476395654381461374956469229241289881661431702784897318361692876718802417908449691438133726464473627062666771040032752570382797659789948251435852268915331486690876444807925643863096433867739271177485422635434485251317104264508853782908909462019301679672493235735232015370248603788238180343729380838551153384401225669790306062569180443360692219557370561729689346448580613274428916685901913300082816690974061209071845168608828042360078617555703837118046863751906143669922815223189222643531723769979256490214241790706011691128876670923429702100279926279336268049588004665925746743680326185847421836106877083028340137093083766883291431231302589749552008261880773429364601824020046896792387565305432436131023949015520604751262892139933487259419883212743968221114872608626411868156555193300221023899046555693927154469844166029532870238440761958402804803003489879517992628539379231358752077091491307667709447999094738552278957707975767473752209112444028105656555915138319637562533341543069362348386918955279230987033042997408824982206540965732595069814420048901294602449202620797445891656824532291811272130288761807278797658171002401899008280397704410925815413066839030018429849548541286661666806353988108326874998281386672356080203615536875572968175039784209681035748296738685075439764749522043326864253418420861463208490419436299588241117446790500569658430602140255567248671526423961455313874256221836318732155428746340473504189611429214251639627473404058036086098204974794359697566683550962225772153108842412521016866582311678223923426964683463882182551164752876952109614184150244698734802944987885954268419782457982506649521922630714372907259915038840253707442846020004769850750698474554760373888109691352304345518887292249924615603410137987519494603720151110779497746638520399865451727193988257902798506988167646971808168304000957644722123495232523981629873412467026804053501807476191156772138454299263180016738560782639899763678678871800161819221563629993674335632319339385455517109155727750367056750917653777681127766388607233153013148984450873910817458011439257022514420438181227061461642184325504609927936231068391234808795053665556151795808773372704547946853631731647602318446556449820878024724846619624165622813934158884185984246414925869728740032370209858712434506631981968376079772110641326444668583592975014335600426762321500193969611113420125477146898482375744674971301383857857171426000487809648172643526119717185981112412532473403340427866565351699869779383619930792859773676978167611687575263292728266433127720194750917496881343598964454889517665095741861564037956269199610829116050311035289063486123634221721765915054439917321572837068690876895431785616859764841281853123264962678034874436109444037057426561733249736507303011509775985045312012338322615707855894615826275873070340326750042254165679379484252197284401559722355068043864499731655477664081603960007008399135552638779958774110232507849223413308219520523391151801006871039358489928476080289837975580794327469499741817038979907480094407844808541205833501526306560219412183119221272577315095740855978461266372719090242026943046734672835042480736391350895699991835192963208275369215361000824763344419806601693446765947604313777472340420931583703636087570010442139163210074473966613302476153756667061615480756219045887041200891125844732045161527997762528514301233693796393449390665525143444161310423102618169744308398278958549196738358395401639482260692154807637559921107655138172980982673865888144417176643359258232650876791314828960951306659520535470640786789543520956162892212178071884548022475339831004542814696939036839110815715123884277872454569709931880222059305022938217518275466113891940793974282775568454725842990490816550773702194955052313818845662766394161912090501165667654884031708306543169713331623496216206090109951010764169733498627372382944164130855565560940438834325028820901245430172388186484432470536893994231140209615787329853101078805069810336524700217997129745951826119886425379350226177205179715356061540472405959009373121610382300703734807293066580916491196162616220924268072891338241998504911884658053686737104693167660667664225781604579636767631126943687796883946532019890444693503217946215313520191118191028926086022586276404768072629115256754167426682294022782883124834382561801880115934715826157847467058316027513423909700526668479858246311955726330620766233298428442244544514558423711241909090943931132495812265697620153007544636904940531195675433312956889388195781372517142348774202412841651942493729981490378681886727100825300805737064692738715548159178596231653783081845139379845989050932637921062095040695155597085574619709780039948133527630358018695306520362494929202300358482000215009778874979733794171297891747110059779109869510159967318858125218568836999372911478143675775374871016744623163739940257705455001837010769704564270719308892298411623374424162285643758173044299072316970216871400113203742028808322337256337664225753663884383482690609002619035345350236369340474994106737715848170187202359802279701543088207911666579135762586586774547313116117779400707443582888455499810823795898869199889113440822754215380332841331149339827169199008397329863684716562451389228951278623759913182654499959925144179851757074848896320632194102034636515333328615530472611481216492822068475000091337314873522308275233358248373336540781712823763896582608116162260598813772377876046052847262671392064244727320449775514023562715792153212005258743066735383773386970849882668038314345012828292536104314395468162247304447920734788411551872662675975449561198897746356099082879356811468524928917277644569424125869012267811689091191412932524845439565169928606106280769544366121677793297376835072172243952817176054455905856214440805425127673861889106541703997435298185108288286424851312919243630498244216490066375209999733930473944323758078229827081773033114580968534089004853999970627963147190979372396409368608274851420764858137030323849429495559630983225231477824514582359323297789594774391917693440960801457340274553658677301176162611903468805373937522102749950518475225033923381963260272092988487576469534949023177078873625656368187113282970889843646508445402170107220462196478776260504679734048386126307436102277208427713496280011999613607819260279136843220264297543753349677844794666848804466352669703974494965307034750466864491232802344986974283027273847030329137650843054179113984763875807878110121993146870652640754221323605757404396863461289325781559884417934734396932775297756921959557810864526451842821871087714271656197555311729465958100417415072557136825817794420045618880490843241614338507050632924735247151891566364967209262454853092740754980277677498346414501635649451021912015980156171479488079346537371714621853581232541922967727391996663455753892112276668844883506937219335569348020095366439301682234005912703223435001574082937408236893787337940511929289974765587788320818721150339394575821836753200408015324667047205601446187870620734503596252495223590160692301319474350225681545476659768674345046481712593180932482752596815232523170954999317550649988406886813641209127733943374424696435996462763907109818947798073446714752592382106892018303589217399947974497216467295761322542131837989939061332310182609071435589110806479553534870966095243396500734910860719155686817863153852905023783464870571505804853158229196929370416463636218982115106627331028371175133281276909828360105940762212768950264563101226506164735533312270655735245898452671478694736203805495905622263616997461561987094852717372279865381838774008339580527413022378199686312641306735768021939207418024582676976774714146992758068745346713084281272247361735152985127603467818367400771308651087039135944762732594942532733942592516819926239062972523095130856738387185919961288611691516238927821925459355832242108424950305199477561364130375575643264096597574753851341832930388570726182427688410777162667267056605838189090656814361213003809079809332454950240571727474399686527609002647638688527633844010618946181443962084755973205200601205666298542014081817152110706609212165001953948532088719996748175339435681028105715766737613696786176394174328417967232351849546995736459291836364968274936239001718040235586922238235209682341211177341164915988709418559067541922687791767408768066267755889145875986615491617154231273802363366156165121348647143538283950638200401569251613561348081377801058596024480294800323478240792557273781626111448843928989498419360325270026251721375963075295350309761951927004737220250444825261878071902697196675517734157561751013137879746722367232577375157945137630180390185225396445585501507126474006328512475679008133047147147182575071934336730153329066142087421116170570123049670452402428040116078699994421632201964680085003053213415474248764571681809505549126887432219133372438348661666477769665516372587751182447407824918348894497587275883499586509119321763122648825601111863030935597066168686260092057401928147462823406149047321045370195551582992527374252350065250983164824603344753243699815378584139970193442993339935373509559571714743085779984937875318029393551668790071713698909952248894832944119939538818014043960480213269928565107766451006601663363797546612739514510823673924468456394008425223600360972983914893208428142865016960402536081315790053408384727050681717696660321164976014478496520859961572432095769401684888571841116128261336272164427154786977027415792177012853095567831760363257773371080766302024891206385665505712278034377571824502248241536061226352797928975449577876481594104469916311437358228512536834034583620798040187435151063258950998348910740201583742743591562342777238367019252843133614013830064424956671571234722938106979328013093203395155842938809678620802470426456619081041976956687113956633532391357928262211246067431543544986808551595379070646279864055697589567738005343017924193409625271482265232926400785280470671137838399328630534532114568402606740595788028056452641473944237064252278403327413048987753746923750873445499734745274977941919650945296103305544909605527449462540491491812988508820420341509797497164703394072821755440334811304272737607829620922273859489238365386096625805974168938912024417846602581268875695041991726090362936946423864217162673292353290387602864613070523407689625150028565142010752969829649803707102859928627333101229546720594762667902136536937196632806315341678430423438445626708279336744231748074899937977215442444239035519766269128837882301681678701197788165405057411593474751139697705283591752721375050832578141053576513657876910079851561843209480994058826249405146709272201917348049549150595954956419245354215025807063698545676038957753067097477919249425095035331486910098753933323758394069338811326372176066584492183498884703972753920692215332857870535102734505771861274699190763307790079646781414059663679234198146226086921388158668108905625424480007364743191969114062707345686149721372703666464227569606378332157047773183929781017978502474394137501772694407901704718546004409557372769504674017227691184350242030720690876245943561558142119934569425077177952822971200616041541633548497036526221458181231974033058954729181021196366506816206455868680140943197649563942890651536435026230054843571122169081637316438532155017517529460854046379484449711560336541487242665502283482739795471449954989425745810257644729481076504224666319505026097199018933698709334926119308898144112464553318190720644933359207867863613002124840000369319726159360027961590086749132620273807725740136634448670463242486323116629110898054180141449159612065986691493047983953975581318119782919909330796532659697618540541769117994623893616361277323745303441186923163924384287512927426765257306797637710827622632055252723460929021486039003803902706966016443172464007340859394035237391120865684256681856065356351101079592400077512746622500214583334417607626897144730940521143821022294449147313630199230495907896389856936393786703298388758770434165789886821701578505505137394026060826955472825170317638125782872267430207291789328977512404937343551876685760282158564063716408525751366203939827497197820436976459645457261938118516426591497615651949541590854640240484160422547235646324097954561815604970551645742727104551144911562807830591047066674658179935800100178709245207268381641171357120186372250531187628460684586169773700468247752686459161630294564713984041583533129427142440841380712999310688049533035139940503433549251419728603805849893578077366353192428249593184730511849748901264471025135888883026486835896345864891179018571485216479119799620818742377233162571703613774567924014225172669260235928591959287423963754721185122351930601814228552539082991059492231497315539513100599491250078325447466865284224098628809582084436203218381672248279326766787092433725192302077746474003060066818303890713934855754487844550215456623562263212706326910933298230587718609956620757987501005864448681015675494766019753341139690099148402710832768360804514974047851116405736408716804578642996791824667392644831107864135926094917306389408766987666509394606141509434041314536104088646243179077127136731104886877721802750300360938626733849039839423175180519884038578489922708853371261514561403127266343774073626960509184612212281967422912982854598090622597560772196328399564944186166558076034381227588471170366876212936239429725831617499169158809818502528338255040731890825009315331849332495089914955219788955819229623647968305800262679298923055798109184771990491778023256889238521035344019970094127439446247919042000396701669524231154741832589259053088600691277721017215751701866106381795504543070027558114843687448178908985353610036662794593288812148943926917361867282209099552202878928144419264586522411186136826620902608552080187436539053096510339063192754455536700466047292338041764317073711549386716607761375433464694810193620820515563156171885005985150464616941834234153261117821032805343489923390346056203536270940419212595262746759138615817598578380680517811561040808312186184433204621025562970628248542619355269120591667322183838107895670060404605954143863114979962840161023687384615228325329740882175301730750891144419935308416250457340723561642576536816072646580082814490333148074920381020871954806856293162872486382924783080451232702374162374990935789643854077003812845300275328099598423663074306888261522132022047515336424053690563817191504592598357865722506946116380860419608199461918381475355207800522899910871009580493852804382357523030197747573760423749523995619811306571662186453474849059115055583579289756335722090242927301948097908670243117017658916782230878983797638520272343195767550935975964720067392860867465720471095337939157931314834654989835493187831751359462534845966553579635304361182982383378108539696960358782361589431652412926615392860290020430784829512004533348882981467405947101101867305327722804480146337091794389301143505768762341596185605329418264172396373099558179310740167115989727597454412987456637268483481559125569497891021451047059217429483490144983715562411804286336723984722035081245593419660441678329289801573670576251080379748387137711808956700753852354313094098954657157920103486887997187187773474208528248905807228158572750518545741293785980280114435218765573347154698328500299182166361419580530466738318117229562370738557735161583821287773893217146623016095342923528816203302951176773210230339900727942221378169560444216637982695922380531025796059721489841429960989830702863387897476656307803046178386182211612107695944576726058888312096857950443254544038521843045763996651457835324001821955813189169524950323451025556082070925833678174027115195635835085717422547511119517693557936628472454108653641670005412873451592058808066773089865156201856680670319285767207926350008744764960794017956916856832800549843827481284553523319889847392905750208630542630155927913889892391510591327446415566509550494805500928147156473523308183993885878910513888640219094565138784788718801184806614194018343997159701629072170419038621886996132546135965228676121702293017881426995220981678304025341635898295806354201880055441541200467492499535763540354675251762361428387128448559828376247820334793250791628315428183645958823137081373016595803547550452518400669243468960714561403395845691104212946760684280394916966862729890458022324757633398452370914084528329148817996547434722327041705888780314138901861101542315244995304442596077610721282265644790194472218482289793349706452459762142702353066045561616944408831276561804496119767572202184242069078598797036640666203578025619752165342804500197155007585063741289369987253685172753849644790382775358447695411608359894184552737428276685216704765369781045020777274191079882263429376789038422853584036532001876626571399382651186863875091778741672317467427272897534111419211381819820166547153840962820156329504984129230288472312584415981890803014572198892996513134503277766527491378492217475643486506477431108290650619377500955140315504442343763655387138725146412402538933305726052670979960561807986201752501734976616801356173195927212716775651204602852133536512425976663717339586224449389441158961617732629961267583395656400575202754241057658299926463992972593640454308977898520908536561108542063912585732961198420121725844085643285403558367924595176324676308095848956748341800534695372384526117936239121312823236059374458682135433934416379842764078399064878681389704524714114827123249214573470268373727915418605914949238559444150586806516808818996383848110226625888817646083859266635776890509856984514803916735987749536662110378428091045534125661057820043201980213893636355074005317804513891841443663416104329234846769904111499690107738200140111962752310524235401598153871718139380611945496153541926531971295140598732661134392609491238766561574557023452838659244099435386702148256752494090491965023859082148400720532713604261263109026270144232284668211205126128282351789216077560847592880109729036991070152478039997205466040177631874365791884319306001371035230843338821305580168689586964953954446287823956286580155236796435287060804541759777434534808693294027448984371115273664849158791107857442417070912763980087646144001700124658704085789245664500813195588443991473676862581007084570937182710753576322032441754103723654806535246551659055724327233472974480096748953208864868450760684054079757755965161391063344571232079912668377196560911136317477623001673214370734272200713226967991620915090903836355113389098757129622638070537242139590261897215045234506324748102145008178265855999297318242174299705395026409841489267586391640172712351349717750538789349329112119924009376506400799633355504319540595000266589792998480364941047281069311810950284844469644653077280778894631974912847208624527588687891826678150220811174000650238288284028292705672583952804893140945857035167247372260415374470619021703796070689320411077900527782473512083117404220259203833409551011578410131676355730213274522711245688595676442082823837854375595465494327137989327401350662068762588107898211571794353232834402884220964373997668487116601745046510347280558092137544332247668131315586694308395567791295208083578599080687315492880973460502078361243899703604025035409229415329803463126530967297377125450853002045320633196301701394647939999652335583360807763742315361764131475995821525582721545578456888761376317453883699859971894241784045670889596902971497661742037568459887605544549722242103644138832571666834260467871966186782070218001415602276013964989491080988633409626392342504778209699284534911162927688431288875463049494949825456942167202941219295960659373605388469717629093273409304178996410643420063379741261297007135545504953580795539798526227044032476010675077596848617975778172936291030675560410663434752420314708873378030641574623612642550314908700914310514490681113093067289137352378834593387387048920684727008583272091558258318752082805281129825127068669405920461414610667791034991201181638365287125000804481036075262693634405472417057623367338783944808717672245840694189150657345881960896267621949371448128383387370389557912664315913483467267911457900005474395535215861717266257174328245614067720897552147183827207954605073318831977835639452795355743715997708928735569467831158112108965809965334996926954321342375457081967362341198487239167044737593576791389685853938179115462040082894814945565871779244361531587356872593046041342684843469126876590279989927243667477076018306794719214054676463028117562776126464066651934375543469340461988809586595924968774963348924004157672894365337709799451934504447952429711891229256249797209680958434512146787696254579341572376813046433186424639317981083424212563017415294814723594383850155071785465727034052353461331402540498711463489039433699861675594907497611368062498080786882806065313843092122867407084703220824723769472594603149370322587769627594731183917548083540286442343236118609310673258820055167638070424877825405239672869537539843506730902260467825781905288677038095473010226155046153081060692765242960978584560150931424550633306102091362540679347889102028078487590446798384073061567664407198250636870156663059498214612841375641456552527710279844762231856238282661642508479399617071991191070264897570987594922812956157216259293613512009493243507223656215261918907828381303767699497418410576258036430912932890992540373685491181554948485102437560946315092597149160123201823190953608128265162090119335459937294802281394497268059789579668178835793362276134256707225453503304418096028217443178330362883441313995499019079079772972401737916438746310281540294204744989010848020154506840650252697643099427718144604513207112265386390766744761006095982237028724076496401639797583907146688599965810008482914409059121787498437443320497478100502166639369039111716878961769969300401763221519369573262176830226708811726233290704226622464475507166520657701951524512538737915669190177124641885581601360353618400367300858364467198988883542040001811775345577649094216401704000444891637601116290120669592834839825884498814203954801074499743606326919498085266662105266475077308791365515545699483943728135065540324295186655315968561591266924799112786553943280735221243014473076855689487926853254704527342387415161382146703526626834233544793824910939134780070768696867260603332052477723760508617599251743335619634317333392614977059746694024289035446090474877317731174923040374027128903240739419326077317466757678267878018953952740839945406074704801323368338498064406340473098588783663497830293979987259913684505110961999640922255912227351272388299481876403521326597682031813309972407918265688970295734402519575050039127348193184202841660099947447742793176187138295496239615557403362205392480552990356531739155682895077713475561979434958522157002684139599686794270497951853573379379232670339402200577372211364951311644879056054103418508659194782272652529300754708194270858674318831520113155506217787713057065560641261455499325689739304953540350322422237929677410209855939361430571156148298121570188066424812469595469021689493999963711484013686083064747035116155837494793113362309441176868614657690253879678951529811449278660061795915389724183938815526979500658913189510236857658341744346274345938445097969118451340540287214574661046454376592056191391544205369505596045034168471373954755867266836917442822629486547548479061776460285130395215410311365151612375679280189323391867492534359866618243525168644405898065179514290810144193229605128050222892723073351782394255552505579167991294495491703066945793295184637045645780948279900319414183856655057839511944179526492659086614783758478171474970076718170369594475954075464587409595604358632250741773576258858526071605341320903669314573678084557333233567930327541389469916260565034010477605373247971715828353710368449694217292555963085000150076958058356761767914651944714669509457850707333684645473521190587786796261625311350587680563781639515066268258450825720640962985750781427293503384900391755288637837087780674768642336180100862460851315462818288259540099423491304788509825861261858125795874786775558690242404787660069548905996349022305699247267217532285450054341694799082696681999887267771863839564222075792128909357684337249182011639507229762944143592220645186328548203446466346201456630307371320467212071519911185739744415883319561399689202841153943121614299402705294510944391769453268886337308446914197864180397925431578912357472500328470475339293954575259881752204002268971344330560533980464403845269367672934252531519951336656482935559354418970085747508938318294485967216920943283135213430619233247448478177006246606327398188874814650961043112207709641608473494111812940597120816645730349078645881788471432418068419644298452357243340671794084189297802007435706561558294623775483984045838484057891756954615522304098811413902757316425330662836674714144817951803650507315116067308842348207104462650164406442573039273050970217766230389509576348559412620229804150207762341021405086683429178084742081184852288964110967034081013634319595371737785063216567966537632447716605139538884594116769355963155887588055029016675377293897452754646826828279912059529674926329332754579889793757064961089480484657816899111159104696373512178611701320066718611467470605908400465000079337734794652155350871614697328809213593503565248030110097564640900251576374031318092205548765425480231252669205803955529713817808567325128413012123755725335491922355485993070514262905613329965276545439491379109120262529088630551821914961064893963200578593900363681401660482865274504529228772486654418818069602363343842577891513549852791423930937287041957511077589381824111475088373319883537887214181603284550985752371874829672662844267342997016051445740257911583858374470108476782462109642368571399459792875310857215175458911850772278029212232641929376783406220761138681266322149540313090854572040947439875828880649349209268563686839376567461541319783539747970535015104984530566550908595718992614564169932295412589924951813768589130369710000076605762205874589154780071193751597516791228415895765457661590675359959832202315413468327820017875044951286165568657224822367787179622543193075767398000352812777611656298887283450131352434136913886188438261878339928955835284578790383868508600492910094611206672952408452816563557805058599120616130298815284783324829410361274490379270064059302084822798068720355818016912796479450039689339993201961892769481595813817247811503208765881247335954849988202451056486672699995892184496114303506216916756170076823516968838043494094503780401931159638791992834407793848031410723449721934333636583163382742807213788892169993266396742266965821189944683397701799221185505316787514285648517226814131169003042967682605154826361259573965595252047348219557602348167046343741567416270329228895571232151748393360905800174427402865610136447499724093368698829254924722707508468076434365086641794284243113555412013438113325017920228892909097733320001230284816094793538045940208530109610324694016262728058743838932505516610767718962711982363388315001656920248896584500510861808770567432974850363356545233161806210406286396343752197059353767362553041938532039103413456983162834143864658500640704843398990433292523089194551415490097002907958185526334627150881502168612950784016077389283271623200774140534663073100041968900731590099015162261435436423821998586274199120901537196195758228376985744843820343517778811382089333050600811388128821297293720848407993213702300585721377372997091097322491919088239853921004947951691323130275111247541242089350941347594949672981682190631619921220326699749099856351979877517701844869255480596503527018871774105894754344989134850625862043066216296870580716296070276001946749783718520237392814558503414824269530648309562072901117104090193400215803848772361034192310935693619786351000918861791424142927888575666141248790810014664086951481457666161979951750184704390982294004225120909714199335503520225185835346537668206252672975657754576272735901577741541386521296498229637569553436539573468002158876725477864448331737675988379119982925795882796054238031540720322497990836904318010031376054140234277780210679430220530828858600659965169366907329442501087596828720083607638023140792720940064288876290496879340623329195141411272975035039112434081260654619700530990718623004567278943847937325522964548860378900259593926510528341032600242336817471629066437567669441499212910526887875242701295526367149546682833489222057796230244017641983738508935347668833457818706777293041829113600752380343839298216122877293746959062372766257970762836267306830487612623580009343325804730388285755977261275319082818746007838642188147229928281495902953607109745713532251379467000508852726267233474023572717220609428998679786688255777396272714311881499905043287385741454345855828494968564584537947226253013993686348890490719996150995218628186445744703626741753855376424402828610622947303664679367580270522451445699833407664761197145930846728123553480223455034953232077131529950249289374754682637176658930064189003116454727630111178881579903853764597948389269744048610489202397090627042685811968449589698964734687460640789044053045524330343079304630896624696256413588436650341364057522352273925367997521843537087387402575226124846271168894492486218686893132345580821659481856303110541232949544735963780463516837989119931549233264391186238715745757950965175701077652021296390211953236184669142379919978808642458028738593533553689823946075908649408602204558745625883419795021403027502847602268834054735566527638514287943217332717493415065203406221935930352892844309472230255012447360390730184527338695475919964512236175894116200479648861058122978267457136201632300279137868405471887230490982725949217627215729202360909581015212494770726736872204458472711451150415773134672741902348848332654108555478768856321166573387063040880494436831676235626379113272472269711121347688257449631943278877114107234701959367237263805890228302038781350498780354935806935575981100488168131852395981688983182242816058988908445947730023374930655075109159353205143148019056817770205890056505453621555318266471005393674917174804477819726624683592963475156155962954056535620512253726471782600103572707345582406087882802878268216982232518129146942225438237571131978887027768175757766817953157913277546726412799430646949329605733700653016912180588811268486351932097748285005375465584649677742403267776769114388002951007144187584697690513603555901639967504466015577408358249957069947738875608176088263914795254384537879834457056315991160776261410949877049216732331229390136559236868946668344668225006073547785577715851460106561238761174869752734631721484547654831768201866155167231999048876840352782738374064931956755247583343617044101919323744088801611880639600025911338360492248170294284371003669482822658177280012075983685064952950108360614354117375435137845944698399390427249430874642736457668205726126766494687376505539512989763743754810050016095500561743695949951676758620324927908311334526482452326086468031113246443569468185998910261159360535440544668303419614880704075752716788290352497076040571957458888016560554755324692999474284336578145968796660688963709463560350300713817094133678357313922198939630337152205815811596013844596861649955152838947185219518473109028652862134668243283720457837597479618395892608672383597341391549668321139354798114393518847583990017771777334270841203660080992557643728864910321686719903603777536446522474082872754014156649421051900245302145517462936899503747140395493598063630335858501611787264730725087331764837999717696870272262891623819099290918893658058059691926043808715706014546327312007245971579065882542381677860361072433806404201570078617240330531121395980374692925984913946144374693578277708273218725772122468177828046210238729955741435902428914548053602105867506509102679593095498460717425334070313481690027342738449131176613309760123761324118641826735365751133598351665744697960058070270702941067549302294928874313631031663597606287380414421324972593970029020759935082337659172525386374055767078342418745594947627311588365379000963025414540566340351045428773132140106789124639244124093899532852296419329062777868810995770919911373371965296218506936889547487624277827779891034421232699679700636484844804029894565012200304204695826364647759814178616515086655959025058271570294097703041782643522902422376366561492312228533471558867357107682478298763433871128591163692116965974823359589355033830792830746448447431064297816242040128351143776251749741517635018923862232823677652351242487661431925481162683668399473629628235429949752105715279628707847411248297423142394624055119635017248941756834671682485447413472608278906022008074131411661354393890173493125190734737814451332821256770233749017211050329904954648694421926825298036972328446700366355866591085162767646292510922793892578847877431886255146262283817950859796630986842911792344027808442727837963275242278065982519983332537415054179935731487194608417719475447575494491726470724117337600088591304720811655740377551663136992006578153638530866880133556233112859932332993318293234965953139065863505141808263158720817624244446730220052999601129283537202006339382878600690264358202858403661341572506818939678012047051357467340311473466525473039420029382886452992705623722864425571331132998365788503000459640664213690354544641979919176006658778405981924228422174405192412660480289368605255951224911083236468490978923305753933103862718487050811528046755664717829210050178322587063959536378739198601350857800532889006421163381069841932553311868777761317702390802499229169249610961498159026996169368932493326088371409724587007976110437357084895370802001376659148921566587888982457270161337914476067644492016039682713066191949119045736278921457136053822344626631126117062736271682044425711458946994864589954889736962805781772277409275652264237739575589811955692443306493551358689669426551401044757155958895896925560176427836155434875423116697500739286037644364657781507363466335533466101692249620568977344726661262273316105969707493129207023761053014294345327778362461137201156427082813888359396089954170869757913285203032443595174223786332138453044531553880596734154898136687539962452201615798919384539375165204969204698359362283443867605861290935297584352196725449213882957962244409558787733912806039738174248329706851438477220922612260956102027532155986038353910341648794041367622355084095783637229830005855792053000245685643810162488436359202685274264557931375730382034882603678138549098030289736738676814042130794485149384456275645000982945580857213635708649780972004634204419684638776122628491961239432986587306986833700003212694737101605404265629335545564037833322528180907487917347497731995120231321648370648524686626850940791778605032155699558814734855772610608728773127181067791142180380208149225282626262322655723819386055449847173497703805936497350390780152062878692515348839152610583391643181079842357602855537378731038576909850537202320647486256977567925449245813712736273414271341781550725199802353004444744594876093261140646619370773773278538721519841889631552943618862580394000932411573994736844430627000907103144040291820358244910609219594833085089998994994185497370931477157076366393159108108011174825104025482185253352196488394177907132581460852912884898140469542159676058220102747101398460236636738198303316511702241442335683056217371889674572049738673125069730962674069841760479243138067347527463094926299521128660657000510837804609869926965717537983867380750728138832964478989565506666886686334784722703560149045294211389272341320599648912872562477127080728669531937078687711375338251458856575812227492284088538127469145724280653920950506789873535927517133502602089727435919168382279718726012048512330247562783896508532219619625923220620396107129012014825432064094160956403519009367011798073574495677864523053247812743023637780739778013083545067924739659667660672789574754672533254857194001029422798244320366925771979795799977767515954017092500197470895968676091642076982067611166252272248909396124839686315382272132409800360634375013675910848661623491202869702998681378017816332512450279124964677161863373062165732047554305197932222649373944735733880834707963511223442409832894480087181010723365487024530828790399851934983442655626298205111424389617270754574815638799737513766114029224599178946313112017977274750795872247016399818776322866751720353243513127934714029205470619103219713728919874828588262199152244126208184860035601007089855807387055869640269527991423938252317724081642417228672944438907474285634465416313337897019140746195433292362503132952741825321051873478551279556116161214477433432666940680226287670974995246664827615539262997472856989567934707797485300107633075500964893500027003878945508320363970681230321211096195644265451982064536920375876253903804925964893432025844903924822618895557469976648038751009194965177119620146732671174080274997389594560903156777784760879068392933896411678927619240901551953828526766732098731573901324630952194071974216549474143408895525776615015047817178908626581719660383548111222114990321890990446837459818199968392034472494715955909783078693446855944788470800600388920921186209167708761728500071208811274550241669486403273086657333464332137494820977675598828434621304841895655828085050065484549446795434899161021600688433164308855602144664887234094630127327456466959736632508704999584314376900259253091625054393771650200859853733633571171925902575437918403769817667804660327156064426118043885328114247593555318715755479010591531188194477906437879804644357033800175431431571145866560831226308703217578032533881412811632510691006677355505201899696787334824799329534914775862831089440019225115933615779806920625621331449162434013699197796985085745977241924462616773302668973858013868669916071300881061129929889195601084114818162316122317204156348769725944506264645793759043965097581689964840914401140193021478606564708642894608716863812776929895573644796661508335545639997338234993748129684507049641445024051363047908100574529366072935414541435991279936355722218930799349302557194984101878597845600820114678700329966732168256901505822547413060255221951500731322316401229888214899409013208563344674489522512323520887053975593663977861355839622824977480080593678096615990280262999597186309474215016860262827046649616878211126065105086414640502182543407518573918323853312696331251424611706931862831693088794436031067700379866873814858879317108630922905751658150211262535169789857845424078238531180774492344695023851995745869864816996107189095951554929179230283225632691445884064803987784057330689456125215734803099640630971812169891696779249369374499478403280078468565140916691280759060677680579689183262442924165673685873985393229735670744441558014567552288016430701974312682098617253353687201327721274560541326398518455515761716844628447382720960508476206589155027334756002277745280068966897657432007187762602071795232827078813479628498552367205011207268595033136942396072942932733468898709896569653797797755142882962849238197948554188482039651667312705930724343780865697855857034186306519127703031406115524664488346083620397804388993576128062491113851021771843804438149578392844002005248580327005271377636991964602395645923300081716869495145399144952919540689616540026779738062797185277749948134430413799362463065992582190827733217921157217964286623908231738818446643375236955569743103821105145545085394621440581692015644828893310812928217428136793863911746410876222389794517921450356168742304704794190849778870225161509122375251556057948121299251661085307542755262652690591104847304779389218995672179365648490260340388396501393023526911253548255638086869633992616888289180109443181889944816656921110858919576848467513573490859941904614247338681670995897874123520394793227676900652440148980391793713178555190725551534870867575679971630685618044230901321409039099569280374462517110589792740884065832792596182943434525166475160179433663460497747303562958561907068518678373529443655988971181243389955639553077774877172819472600136139564151905134866617650221833830557069165712545911044857036398159471263396263880272315322499575563016422678517542114675412636449561997703826891757877097860045826578198454800447942990565888636255100143341988320431102339393365303143873082453462245608195192286191580363807373556939928581012138844582498488668157703291468494902379189977590754158462261459343961524946562143305533638093668042414987250789079518955303877307047871108310678829111326553845132847854479215552464810987695941269659486112956640609123319295471564153754495607902677181964882383170199101185116960707912684239241929410656267755858239669755930313618099236660071916700362948678349943746253124684800531251738174772141653312998962786552013662880428213039623674626361129609512397618175254519089670526722033905330301860765661417622283787182067758183641072115907030817306788236400369743271311952656176925963490564117932618596637487347451545017505052105920537820885717535228085977956579060948650812656652471063045782473426395429013850635128578881606830537597233239912207962163573649620190437947071264894924675396300109208174319846790861041198552214608478716792802875591205406288252099254084273692174949716878329232808120850571666285366707976968382481336547214194858769401986693678649610258241346631134514994929194130831295101992949556478118374672749054243262814264095778474644397175331740259923091847059396248057904698196390237504806578694295155360286336852351491582578475568371638351497577901861838022587314892826428043218601300655620429494063883508791125867151681534038204253144632988041746967440957905753225188798398565938686369690627244791150063139970380544857363678942939946434650508563176066115961714672994702735458467797603001037500366993915437437024839624169139022662225527700025756013961052609885288297120982880756142569983621335274459862891083119378675600564793579753812223210796160573474783324206680147845482621113442757518594139113605005768571355861164782950769130537359026207451741670565833395688744430206981496839488784605473497239884757999062228715384136901060006214648975190607914208909135643417408189307684004127156964376161711566104600200204508903667128619783884600945738150181885371572811796816793790462047703023545660649613511878063020384382373406446334017256088693014724274202484102053256985426455428875793930852225919535591873517209025659502899978403635463564498279074713183453095080360929372948888639950594109175078793484658987569072909834048144686787560628277879492333617328466151150313086280869401498000983023553140401030998426757084287734736974772386219416620284353786671260533813727151085635507898279337033105604058596772128796724822606493510124551963887617025469044316540602309528577865129948369246327247990949104729500349431545963722510885878827747899433272572814936480210931340172350082382792251544536840292616597046154474253074255975653270336074987052414983524130423416998292269140446157907262812690147001085108160072117535977636237449850786683682846763287752970667870232509927450152918910078989738322294146204599269882699142602054490488179251198547886887779336209480614390356233641038797045334191118889934314188926083905717482501946914228331339690703584443950885751285177881038897138674820709027989708690845989985738586461069464281528788410560964598025865180013957398374557676460944437259548760886162661266861241246515787194389838775851532644383889223294754598004319274444210390041184853795090382564992724456983059510096287338659282767320481608957709039547363170517263988952080829213549902342875086643062744451810072743269666806657943056626493101868863169367884562700638774453546232745693201405142907704704770798992643226172134284221180429910681607222739100059637008319512644895047902404676428664379809092004703816698637691753779731664002808675612610579648749863309384675010231201778026737968424451212790911580172874808136891759229537602008316055576452244936330258489794875903126736628399853695048370149613961230201326396088648131394848332542847779799110393999153249867238817492631315650210360412996854651024542803687303882782858745076596393840715883698627980469606454140420559884833486687985658359115500018773325389654719962016484460080725309346382237070113604998329747218951892662092513499366373975945020021299231746165267661504687499374171060261807780601825048621216391619172190239192986462951003032643658223186026397709654792296593192292166243531421912412836546826479683890552396557647109295910155494911667611166830012202471752778277451868999114849037715029859186131664982770667257828717494015919363757847262259977243624075782631290914333412739885627249231134587679515726490669966326167964620478004398004199030222881968757339709718709726714840598334652488398551313855764614842571207460511751329989613877852990157302815788704930229137524267661271330123258448939003617287570489499389634017640234798244183251052964827760466718607594536666644790731496470713879060651916723308560733479934336075444466837803501208858647599188920782409733062291461134788648847554792704762434049014732720762325608928081279474239993890299958290912227754920823068345034799816886267318424681062637273361564630133843462720365738898951903114995509318661936051581982773777600687817086834639766919624192455368276094587209928742996197599669208959169446079860377976856815205533946232581910863371618691161700827434038423315026364970723335667230944799561723821435962435229298593313480122023679652448834715319897759256306923431086150969913578937181733242171249985018594489349436035273364851423722454253602606312074134512522696708801954067613432749502524213574487646856476136919799690792043557726761361984681288491072356394232516494018875125566789392499060239357810205702724745198545764031255564935734662120845473800690016176821907741472901829035125946085557675333872297963951621655695444938942274529408955510301256962064339860841017170035157264699296402789311547930781471377044345617257300398883555558990378287969105602633745357059001795035900213975711029126612359691804883116838779432782572275473602729761614494979839055199125037366077372654192096244460196322014373099133662944679047857397441435553416093017632072570758700648724115969939377204312509336874310561387283937939532415204325062967903843807012751021436399854301964284450516583880016672020694013825100944968273544987872566741485234593691169647741976721230006465994699536538067391202391663510993587640004407338143766481740954113073714756792756495434340094115741352670744573866388881193063073139089036571584971558186163292694217752439608931427114163272817792464845503366624779334316194017876110409059366986418437707353596696702251241081753746007436819313948455283186447612686648842758704565108810705232724299339192055003483165709119242659614445348927035984649303135092369159264779974960941301506414129616962230690992409755726341481910636890676333357111717697719817007994552229421439234711282091613687964197191133263302024251858575781788229877954614660125361772778394535609041327115502631778223540734978810406446357844615221739594438750248697418568993648877261010213949359977181499394452966852430053752727279212720996128345191969652375724805275899507406409605905014297247046568591733901877129155706274070187504507389346786672236502256463194005197117431475190461855002367710784306309381249453229559022586216190620154459522936240367487595814722780981039752713513254862974437038727541965755795041826128488320408124720501591388049007432546109907731699792882844860398068421767899893683332598455263819313457690394552744229208788525445294565061864905693936124067830124198074158345404048407202169308440340523228484133956144188018239369675450323979719477727972419023356030045973903047099971676548736159739965747943561747230285126407315797695299516849942923588627669786305073271290737535150482880130652284949717122245810947858069498435460434647648899451724011388498215435308706549461804215661016298302850177545561679499456273463551720422754020284705007840624159813295374708303473268611100763506575381728486831783867782705368341350671299721946420906916519867712766502591245822100513860782210549893876488271200719881138178760067750651512435629126325560251302669959783470871331352416688485764567544655855098931421165753339383614652484954425319366047374395850207780030804106695970577714647023497403061616413802176627840539595349347579472686003484406278705052134302973355662902101206806304789892871255157823016463725457766586116971410249258353366344741522059461964002034077652842178569642585881021324212663304680185858383514832062633118065078312992102432407258003371747201716201978147552651106777498104489767222249374843294404705920371877904440445319397175283997315353115202800007676001570620830364760112822890775509243112193709283319057955990991768001792026799566277552574975832291650518481456520175801156244211854063514695265332139295296656629051544096551212322332032104334586761827717489250861766244090287372742503299905268967685460826538348943392033031538845250591562018745477818621273204763645878214267299643181680474071629110764765529522980369621441197939751150774182641952769215990842967524566150010077436468356727931408661289260129623501417118860878379147874453752737119004065517766236082504708142285946196441837442585273598032809836705979776204421481648137293531975306765453967319817893814978702968410155218518519573918464747526098736759024468997339831693312530776289334315175993105934713278976118672283705500070721406568792022497692335425377188046826021129131082178193733078146995328453369945003711840988700259152473097367896262322472474146797424303445988394856860936567499811776751736819955729927827190227319047633773358151122656444078386251126384168797349929235464613512551484053416777366571691960091132875563053149100673075757397130018437521524744583000670792335068431192244659553061926743949387260983793335765691196308229261923719490566510523469477030026965564887877413424195640745631464809717662724338177267191259355618758907919901726522609261844692894016803318076748639533349383593536136794606713509023496293661677316989080579023616188693321056728341792072444803213784767194662115755068515816573849286705012307032874042403461560187967244335312142223938602785353030596644857720941957545696263427829109195622055584906174938141432827589160168766925932431646985277919695898220314932859624009958118958846298216043062375844313259785291452084259487172344409651277509100901358358616491755642830659877256309301084111152498867778634981274111132167298369581193368753916708756342656752493806707675181948787089724330794805133786689224083430248790927570970271645458496458802062689293863206279046004264181330004908290984418895203383761658366668839125304359175602096295422067865973671858573888612681898380353092505336791074311942321700437445055258287600304536158202420410578839484553560545682141129245388004936845684702201412514193705422490091648061175266922352531176109598836502167470298254290970003349755367917317187988554314479316726077388138266405968031525504062650325382593705034478268777351712857479230328437747419933324776913952414634664300007117896086455338930167801223333483604721372646687018463080585817465659468569534608060312390760058128691085014315311798025403441745877643893394873790087513240398408487291283819635181501722609019612457339865744883244450095761179786401559997758570966238502784763370350253849346014728029150246178604632821874941893979007158372767465683131116183424896292745664935083785555381796005337649768895631955318272154829203051263096712913424264438492147325500770114606371883615468381648975265053364236368169085614927158646364420997662951465969959753087983407832137741345204482489350631319876158084073500141953424120325384714828802866467042706620188993415643929501881309123329267192527088001235327338006093366815909829217573141146173427724170631593247265865926887074598237841065096651824475627142387633339220416100193611313615294495740518629041995657157325316621285760563892757678710980998797492921257390566300489467917804239433869760556630171480415553294225868781725508644129266428416552051810803274927407964439112241863212389028091396592532395904098401151950762847133925301904561280242522094408737743877272167466910473624788589707628116287252766412237444653491720990085789130322521216525585010821935097940479294406313223534784785553197139143312592154014591992235671781079358208210188523466418155634168224735406130668731005725619890678737931874006008067774826195135972740513873750510900195000635229258351057363173618332437580836572701486228601398503890861690677452466099850983581454660706080563251819428778960622584060934312325303340794975050568012500880010136414215483348799234121474167405269608533619277663343269880886024947811604176616493783435770195876254486116557544602053258088631368713295169848343587695226328754640286841832537203201576697106407287781396513316598794004696604016043247167605895926965900352784959958514052194532123403709830506413461643033069499520412341039964372856984767587462679692622254451986695648441870085405179073352993560155522652493632856723556486944748535024149991772697853945001967711738534223746015391142350885448214948807508007367796555308562249742207921801197287783297053234702997039190680034063815813142962435784707643493352732926607464561279720845104553224517616037631605326348981183108377846368438796007898654066481179763421046046153232074393322799885439024827272117330037866471355516342478498476465626030955299267510530018912127344758254006863522915897847224352841932042111063834071992029354270655433189767609868794460769876437870250887293021017214609648839763778117893502078085290006959568258661090727727649780476545660364950750698961190190945062843850153541013694094402024487015855163844196917878869131677879979887883238550570056055274983664005247533951637120070752649556307047034171979932430727749663546844579519008740743089499856352957030939166140358420279275451436781751100729937755058676060082544385164938677953250145858382735695612438788260069259805501198868946814367474064987226220706953897419773318048296106955292849844250541204461284255758403626222233552868783908262019266721168281075169323865882640212083545881320589143538780622443280684710407917673578139670410689477391436923115315230686890002748663725835549361464578343570185657647601451427667346828403677392427299510807583989177422251911896709302499034228762103458994117833236610287900855196217667080424697829906862904478270886400034281475966625047929350816954276226668581616081768057938395700124796672231416823088710043026627343289531056409683262843323715487787815347493427073704631529228909056532127071479165873571847967289930687656560186380733415758428203317182822040350140891411633798604883939372609910946115820070328845784605889647993406694326528486075023041396947474542672642950475527281170752017706097147124464729510751638576234005420051790719883042839253332675086551423282327309457103343325571907132113317160153972900795013879540900917829333512287790565081930372873444291937646978826644557520762349272338858777765058626542894581682503878813762088049675396698536304362681078527152808029645266338058141801711860784069721488520833507583350648717842549405160342080203522931431803052558549992239908168530393438799658151600041785199440631964844162239613521701747909937299049121121733673584647009596862235705995539218283860812356735511860857794904556990474206054914786127414137743855358916580044049244749980616276178458901337709155912169542533458305732167715142011189840406010036838324127155437730627565016541962086283031215902478419764843295931060270233538649578189048468340092170827733850535857668488436178930812639380933196463974041690912203691836968161774684387725320083403692231724302010900221962475824329702469929598393973633576343251532116076383482482530553255477823983786874584912896007725832038398208635433057691422042909603476115409778026057159896877738247610983503708982457532001406077705106610910808796063254887224311541276255489407478829950056058523164645553027866731192196530738848544533746819665278684737522444177224836857642901824784244716148992197145017241054944992996782302939329054180329550841956535288197976929541480103764590044849400280474366380798241084790825427371289825813086831190509327829414406508432040737785522396293794385029261264564489352771522897477190642481736592360244976772106703766783978162181839576254491479771521067813548028345950020499465307600333211206127464808227032007791004609800406758397742619366676199586549182860366753726522202586917786652153240559185361310452551059655289072627382497314555860944826233758276706012023163604102192046516224740544979237773020488947511884519068998304757410716985801152365954938560663285240433126234805481102373277122400175267972891966090965219583463965311567045486987243045504499368640007541307702450763311170671868391209182320033086311808719308353607105105245857015411082450609891108852421731025248071358214107289078492543496411036610154787865079627619671069652248139192813879328805703211581608154298696227593493927355727404792782218641923178684776591988392710446125368794714942413129623689587567285656319666435005832776437412677805818167577151122125985365670938457045366005856180503342769144142160750060094899026710267376755785309917809191312450520279232226178942125301215514254729338385711485224782216793556239499058355922165365754733022056226138904549515095596912329415805143651171288174219673543066300110183223301455653603381290200561078262239581136669416927205538066126911098707274008222991187193385490818186636139239018045130684527733361969613398297950232152123132325451139889963798925739685577909579263196356692885145838103740507407323392468570857292802518137285081733182695110806981537046659447978189349765567729723511873276290533345492964867750052283473406111428588480541779119154313568672762234864397616408244368323408139504763378736926334211506753462491386488261944402002857032295885582392481667168816792143589000206029775539527834298677876693906456895711465480827062923316618317853127900355390947328372219716805737076633927349627267809580163729594935544377682722899617188844186453493309191110864714578504786059823019888388890859313266960692078868658726803677834483815445790398595481415311120200975911405926023961857991454277265510537907334624264797532935488469430638250332475828853290639672229254047191657189190738411277132961707920847858189587326155065549525818576117833135343982801360850700777844459717098395327006734524734349651910642275566911747687400907881489546652430811584079577575741719947009308042415532805720754901735731366825363534965445936936895341190845763511956719784572095729630638523643889140554463189215548855199460429352417262067552390405354562124451247864038652868826883784096864805039827256970162215056141225267109805946614425352793968539008364421381892207154824768358121147939079921414503554616283844735414701852053351308758092022518381728259711069703798262883355408542183883995523923704676715077417108187104992265557658506797512857659100149530980428150236510842255038296591446808647595260503591757060743611993602058373905360688806559339021577007516278694240028007221574715823421642846290445657267184711952313692359388212367065695532542623610605254799244088658938017961868673401034503315399463808506253953410689176434619322975277729871009340969715462787443798799442950228081497335149068056275080853112945251083486237934011950844120164516154894204405098807553263365401845369503913160119014387660543949664620365825789787489913297496898236615179313336829059055942359927480690353213891352790372648623840244645035352988045467692645846407615653452692019915847637448714080064931527909853278708692088798369728741412078512181617969986923154613733974721179280082591790300181426888028572618461144806938312782508264127582254542232168477503901099393479217509992213752663953725282660970960793725623860000262970055397541266954959653289197818851677240964910436357721988971266103932695111684206118602254725086778333297505728094644325061605417384561299227434314741478316992843412128230302122328514319160816193516958466190304970979190024789353900484541589920450417747011842912378459963984785823170269739249749052031183399972555317869693183559423513711043861335828781380614133617107366199259764264316644278648551701860810671434668860184243700785948925437773022227404479646085863107273357838531817253239082899363476688979805130134215301982788671790748559247065419532489581193172388120649374502565818199958568221138783272305181269776587519506340014154595395854067425714554802485871046372102716236450163662356456108899712460059064260570137445786294913247781249858771050194616700683733294959090763974335954819405021885312114920752835106842466805134014790371292337604964121396917309931567710580636629982212236599908667262689047810517976700880180058089547300246633561199867616755610133748076124432705203344554362999242279826328229303889749933843627607934472420524056843056461123657528045166321714990975613326383046428461434743424531377719971594410629604360951454127552141220751674732088279829296329734582964059120524660998656547271800937505930286574245334738778914404363627330462879322984017186866909304483564230225193641471006181581246152777649754506023614694645977946156398766297879055801423005291515225177256825143636605663923954833597792680984185671923022266303291801961438492982099992340637299469724161531630146031027430585052017908620837211484441023221213639485974531115588403194937565224942876312485964734280464608949074614725014239577002179639219461892477817429145325173562746307828863422730613127305085270765523529431787337028819852328032412187815349378794036538002896106473594121836247531970336580160035630262229430087834180690431268875642410002569952627999190947956063832458860675559871485736835604982253793355959760781033901890584182265777514568249820318539944687876668066604882219346414805920557125600856404808583494441325138756093710604820434588454277139558132529097571382571089398384097553540607800515095502672624580848263777790742376274556399775069527109007077114115794900116447081909150044336855239885010440112689677944856081958877132287088858365393281456019664593424537140722287285697308274831554267124142911563074860220896019428851537574970060574159944928091432247355905073419905972483033400543918424952796544946485830732171447457492889689058254921371284349536836803637186619578053272716620480394624526063097937779774939757615407001796828948099061216827745723088656334061812095411925275858762637191972605935397046467975210890813186199854973309643522625671750654787712629893267497616792432645261921861299036369070567224247328162844319605437224290280523231789137077790042453249009405312519851351578919344526619579775361543514371547448632088662592303378037539642717191001838127340953270680366296163299623192061272485521097440469848105334248080216615973871923500127204236368126247638975838488059758588954257332101796064600046253451346334815800267068278275722343492457439700637942816387998590315141154234026646936137613468366031589018947785370946707558845500734534308837268262871969579296038202913914322585604882731220076826957246826067735550288306486255467620007753293155861512653604727458698174012251680186911027890548192777790598689097457247046828965842712827094157423209546895096513718749889375556469562636345374259596831233232993439206427825925905097830628534349558515932251370238557379722220750772412961563791486335880770026770674884347832765281514175731234374500605053643432992038440880662637034426124155136052669640589306731288508718622365654421853409672261293942300350243081798816003028011973162569069417369113790849178761871514356554541031127058703735248758590946143564149896374145676755837486202954090561007130158478250649577521545783051371974679045867944886646459041627008393797919787807587866639069074942123644633527359350310954197191286945142181139708628695183143654204460505117665889161685028447796540958136032282809212772208647583350159680772777491911229817502095250333520352393300819126947574736496098506320832847959629370367975286633566239842467866144519322841354570644958698791614845907514782771466621291343198194651442345686060659314074868926305662550188823854114764180501207718928071872695343275114967411374535918571006419730953421097049582108411194762516424337777820291707157599264638246309855477070308222377886317791607542948189780286020883366789555863838103429265408996826334811543979172811658107288002681289993730511788555903012655913244421335932140825838942187593758648905669614668605059686737976180515151057293586033702834882775487850849936001570065734747390329611390888516249429027707679784904484965685072472693958103930442017785116264289023342816221386755072271039524962905545009785347952042872959490231689173230873672615018715651903685362593941581092343729531390336244044293910982176537006916013388361388544765996351843193252272112527433842803325171004394676899516245333566776181248792481423564399580860604155424650315857175698075361956690407780483344842033820300515745609218236900700018234318846458000888664715032951179637950531909363808948438489200389184516061252849569465813079280241611340366811252682000260892244198705816691329514826433188374807824634101276145838876811521384112636078693980760961466975418409757262542996888799732849571422582334969623437694913631397056234964098101939041695571678052223284108746412748963248021953010187302935191645123765376239222239415737281413024799145443157735013996656921107015498849585254138004169870690275576552905455202534235722080268189755184504076264314520896443891172830491761006726383708237779407500070130232632437341055246041354499746344463963653360301865824433863044525120820792933660867272026655350719521710027654725267045187502147953529113620381543863628548113120294602329647267578222465936774747662541632485948221148878719743171568848073953385956931944427658377591557321424553625266218300685165978175857406437968779676055918846750525638856056289010617896891943166998553821678068904960122744962636693922846549929452262041944428088054349140651390460136391461933833461405625801976976612192194268862726719094920255437449563309053378671736088380209018851309939704201289378948268939298020526908150569390963309839527293903990088555739926094984279465839959335799416305324703840428697185787510122861654359433433924558486761346011985632213330928598043143586516121887642716949140236886850254717579750488763482251111838521940447872885323854310632300133428223179756592813943358504691536761295289906234793159495646885740887009763140910109988226842889530952020872192116134012561870520066999537481913451712546944352775687206007321013642089987015357452224869323720562532451017355390050606913636738809585242394260168885608116357759621452852404254379704833124447999644647954761367416798239668738846474140603675501570991092144092939886630234843893958609494951493810896854222103411815863052750810288199589117888277226039388609478233812116424783951476084141860755157532621030675115934272781828710481146108898286011251435438226411458509738188584085224670548679957477926718290513118993495906411034654169096083630871441735023748490907286913414461902061589607161381486427693493347669504227523083878386384160580951089714582543513794687967456647725978392214811628721578597065979770330252725776593475719464635394264869031564458284449558109263386956109913819814247997424573579834406813719323419856198692405152939701501016802970686371868503741351483402056251047915324127166927684990146880699304059743022040222806391220947659056818043088526130216033978409435618680758610335524570270806899817314198193645686096991748342253524710328980201465393033948225566415429084469961202585054964813926812268095197968902003254549624621758345991743420227482358557546027215429427028963602178349690826803474687494153825976120535888670732348762808800651852409678940136374197858261249088160859873900154138326619553540619632440902931732477289765366094148344518481368213919630775662345709970022335793074585371131343645114030428978141329828978811976842888309901439122020220541730783552884252812180724536698760759573313878230789427755232116406205343988957412064038428050664343104358158427293733304499788411079614384616844909022374176547787783916211959550994283117140983811931842260608762651170278217497486265214868513326970107967690261469253622608590611958037397001759556559758112007221346538785364727971605712271995648437293536881657536555324485858271122167648063996927088308621304791657377110476552505925179303787103589051353142373642853393237919790795528587424081483191585979474368178360404223169411154144142719493512896660284634010511396015230228405861186289996453991131051745691671540626129395985465217713556923965693001671740011653356635528484235336507386300562872474961997534290829805280603877492289333431672617700883135129345209717148034839960235440780053047796469122209855363964569692918918326485500839855600900729699440731691163614758961153093270823653772800439641123287399297484333516234836259604306784195574112507435315004002069710089788756037092463441713682504212714026332905874914759776489568574556452987645946200829616164714880820530372356159982461763691415271163913843962175831271114283629527547598187387786219403577030816477949051815104446010820198836848748280274979266698218311458500017828804361114849860798183807018120135391252614864803367050791656331896160489162096452878775467326900648924934349893134962779831244999382332093487091777864295596888231861612758153261310277187102695359380520215476783690635459531147514025728718427255268936132513386481413356054288174343538145756145525680748005680185574790916498929036546840203058775163412616364521352923006963458746738035883183054209475494915967545671529300600012528461138501381557059871007823000895825087602109734291718185215885956934932276863364151404418233858278529122242222634962186307332820928355669143763695405317455718899189827732553234827572476638608070101243755576071513239095068575749939582432777395093530089118808931998704294557608923689151796016751471157533869890953132293214890822828801263430002757886956497965387857419792876033207612777449577059120173855675093900488371138768165647038283297604321268292303178887469986360630653366687484592381904543654466987563539732555045824564510906230449370827082115035524334043541583964054345292044438866019476724469735930032525750468334152503024628023875196843950894848175039296557600018124795373995397753131267879701600421563072162346690686124946314829103440931511770293765079387242538293435927697520643877227588438333807677076248996912945113373206220823803724550807502124546756782904134419851710869145470949628283517121267352883378409750723288130715582018197580279608199780065457359982998615698547797859425125473873676296959607966266489117361879783217080703072301404261758529736648672524898888784973013144138539762005710327247811202670959259294243391401471019983807206765808397027761629338636284752785866873422706397307225820016407650952760248430095577234185218434791996751638120623513245525296207398929655311720909819489949651060510566735937185586967099712576505686161058750435398995119235037193588665715334784913936602956297967792175302163978318963385833361884258676940849257056930620487742162390659313321431886758014321776622848388903878746661904655343133816286861095223091868946162171107757126380958242042963605987427897873984704940149392080814185815659492531840488314989725992071979072379495510047950170723176834065540746492576946995866290956002231991057492467815184018948547695771627826464956083548973057368309507277302116851662437223182115110019081393045390258388504862488066226137384308870325247525654974589243725425812289554539429851719799780000832002415348125464189392435344239346474224249479223479270571519544158500494913503513627106212397530404028450544442151223712720429089858921813188581575884280445902015003789315097530197184287719239956003811123522179080569583732193503802887813158090143149814952392550798988224080006255084731621591721000203718807603257457123892756412691558491722989975165367758584824185371365099044062561313385468152736734530339815837193689803578173775997539804486993569208649958388977725670030055175084646530699903353174320105733700862981178458381107670257101486053905048491415306535512895772096594400524481984022003801080929676812754977105960697374345975295992865721472770936846927867655099606465094581322051201607549755445748206160671849625333819087885321011660546372911934124009233348778607706224623682146564696584335366861425979513537455742820305093432278296440073226565557492084625063687669487559312619570148976463998058494275004576269089828020853934937358983098321134972108346438316995334903753757882249655556858027037362043487608525249677636209065932001075679489616246612220093734708402641429505206042995862772106438422226499552439021996213860274830342799118000216861332241065983100557115561577440281677141272204480809345942768219009396387536437384485222611728863286629500494166003074659735972185593785727086667095342745296737646120574475655004068499272750561886888387651697541916082912827115118428993153403327077740197179331089189668344754544613183900406718659336208054151817272786719716273978133933835393425255924469586694399049307154752060978525352126708156314323100751610833082938695912672520989386257693877405108189825130276495769942343483731187027995244398295216597346907498537184315354046766435568978073135533198285568884654649991174774943694366412513928389953795691599272939522288133949616407109073798166351431715707067857122808552582583079543055489736115984893432338887676575539735781130924127520652862447765843787436949935485867128779751874977759059281637657992883444945201602283221227623136979782438088728740121507244186454021922000514633616931935011618946969926359689708929966630211590635538887175916746268570081365222207425054445744749081491358925799398301423002582122626884296295748268198966753412540598557995344951506839803445649147730600663855462756499894820854100410231864872994822734688508992968945274467921789713635572936322423211130118379119756271579658763402083720644233803293879620627847484809222165899951516337447117599628185511602490212589441328819983449740716233094344153971882659452289343371216859569548294014989597691821930910045922956778099369246124015432964587426610766830109613773287487024985514978895656063758828914892354124962972088737695364790757054814609329944259084601925523391193861902271025712224615100591474802900998318191549826861453969212056088853863002034981101499488099314533291294939905104011730376683037274095020646125110463303813172615597548247821738306195180489879524974878513961993658862180432225925370995537230313992105561396222043804665890730119989992037355012427036832023677867714096814485897340930565003242810969288483421467083172369342047197873768841592978797369284058949053020534177821259203958527777328551976376689055118762658163676492143729748217954620898338889821807199988050844454889808377832578720556994522905884178542551827192065841638461483279250344802010137602872424438077979284685316567122042341038539379668135903154819773768571657213551328203053092661222945727774743683744060597975038823071145644831658158377295136939915732408659710531368186921772925951217721207225510401225047164453305261794150279270857640944239314490755795452484259781345724463397293492946536948101110009344836467325958976415166048496876291364146243450981506530288001466293156695356567379400864882566178352933992000024280988383365097882677819270018443464898363225207202233337305646819282956645253309222244081985942267339526879725728033944770164961337131991628757651970761386211479243107239443863026380894963244382523293862948558394479979091317740795223180653244634888868599798409833417141441097695579665649471384932187405485035927240372920362232596189258734698304190116204899622800735141646368139840972456207379360716318854836362070677585504399778942968826814847354767990569296524001843715991876238709558628411262055898963918000209048113205728845795080804843137411145114427753547668600654962846136538155348900345714469875173901906272977859884364220559653392858456711443658442159818698156563863408151440536233934420910679168103125002593138828548445276937892635603237074129034824503922945495401303735239280633232178389648156991840943946528895651086753769291316413884305828433238849495082631588032686899928947373379316498107867128376273510317246156474436858935673613195821911688863925632826761547095444678593135674000264498379075479992385155336383225873382366047758885171830815700984077142623265893000281584336711130427239350371067630648254234394426536163594124613204863224099560387290872779424066925689252898353659156059879002114711561174234457499899107570119356867473357246720347861147064770751160065061503869558445086247252972805320769274915861459747739266068273093010333328731512755765823931821791357180513585900420087839629241272986092879518673641621635683521751492331589056062391013592988883652442965845723403588034566592542839492575886461654458273976633305727582564341711170510891357029382068093457588640290384534000694700388924254005939793062017917975846790088322857694347437746431959452873007050628419100513689136944953069922260611925157560280689443360638564872764787455464669826759726020975502637842907869587931256273842438585181728659429230172286807329776782602297989600347451673261738153168516679185631898726006494558569294867422090050208327169414644348568099813076758029774784953325171678738627337284285088684137630554278728139690289845534915193113593398055691353191998762799142865110300400910200229610535039071034642691308074134421522751776472247335552346892529324519481427552687158762031254823313750581067791124560447578746111123366908323065123103709690364263166663634343808221529319832457867234832874123006386888810393952747029251297537375143519896227327523121331327328339679561699188488862617587057067952967507755592297501251532358578700315383187444361763465730743230467424610896323707501545455043292834617299953234589273606573482118789471060306200992995015637639204079568916604810421022171619289172896910448597228771990990176448972470733407753233131555813273377258008403163992104115344348268225628281150092451430796516605957157593853447202249490861529218329367422953497386782059609136928999861787437328229682460038924462135989190108155619247778352820495512457644919493520898358385643264955984662090793963908436823928014885236031989222225966254438613557972016413102533389663675246611159628733711923461027394977419977049811500664905439880405468802526605630046439710052382528310437878950199581346551674523485896927543685863346388849061889223881087563798455415489812314556750517805189190337096128160028478181979290798395951903404411666911233972466786065663739940590463981438973450031043145981578024781880241924767518190560144892285532648673728398086119097744544691469396242670491644084291800874468356832808460663951941741096581644393502096367125660931729768707388360163092876714923224469585223152116890479101569760185047132387667119593867667131389391951872705285489662193610791137626580025235778190950356340205482060437986960393440830353869138661414182809484257259144078455164118058029553801399679208836772045366265709390593441255079758120228228281922440823509259717633415295035698412308251659446070989027022534312544458071337054692673921927515785400960286763240351205110189822532690987117358766367796614853654206934541240334754188352347845869100316937691718357591811105561369755175830928005675522054393658891828515614407272263267882173408941127506215986667125549973662632791850179438898811157429608126618274612817752091088379138065339119600166054791656618401421347950192847035051112667694094326734750699343883191116312293581760788841841129016235404645746317301962759528747889368566406443038991680509471127088666589814924265662196144695591728787478704214363243672801587768830676703314836746165765649882801831716403918580593883019815797346306222944387615224576586343051661971673973810788959703332905940368521158678683704656478656472123542133620293601037600527363108097861660180141926364849902513034056838412095381919007861327129187435818843450352313368002961688657438646733178500405540542110726784937458865999211700362861073741498183101079199167761617563419245872983526711382324536006409546303152513606258069514689405102068061490272174161167182587829573199836399512397640839216739132255660146541745633849951589215756403756585933009997443055021401594033083254787690110698085614320136033885220885245147571234246346430519665730651801015146146615729188335468069046344928311658534236837685577565170167927614315887965257377989042349576341027300608319286388133287288043361347615833707529385463396518819166124567599153830875301002412728808081018094547066049420597206944146318537876569547293162743205973466341881166525111591326839199070787293485411459371950707874285813194345936830350056748678976165282577188451860137755292617118303040366960505572421559036126146855827305573026529409364147947283557792660515327708201730728492656768531814406692320257450529091006570355187420689297911611846995511139123894996259575705437006405768437936245143822927785909767945741943937124188163414784405422064210483172959582134559244982140470639734521695016029421273608217999032704138946199054733718595447744614965676239104266717615946970536475898358901768360319907811893411069990222179919602786247753617772238512804198844541434961631270674758912014831104632114476950248890769122033725679741616772297527517169571943030218832616649136733975939897668964568384675789628881617488867824523969633208403547386267379989988370696975410258652016939636903208062286551980326819076488270451929986933020915460655890548093234255096976804719668015342645703143307064353451075771982160153823483871596402009562364459264202957364772743612583655659116345241757041849882121187536190352798080163953023368274328725633444755794372413891969776937600316482415847560322347823899910409248887642397119239918537892112917892177884011814248849350217266105497050376349676590888567970192447357473548019396005256766783184399787460273823766287830620858070895718055022659127415406894699439987361262054213046250027849347656018462956585010495715025986216792314003562822774607468733428685195042257659920272718461388765357747622860017466135853087691548516224944898621849659629227405015980054591343920833564230403654016188165246050476940755498511601722180077221894867586177828425437565267532531592046274902941352428473510619425412818049304570434615716359552813174631141066902421539322112613313381315245515138516661242044617630959040511818829809751299652878447575115850204670647351741379030690378340958406761591194908599162756972112012497738173160263357714469429254552720030498867627893302044910578953780740398971430570385392418116839908409786845347603390773325085365884610540568040867665666324719794573497696166984137903760251997305241713298673015967049476263006507882650654486767959628526417197270927912265629214907959998157976878393840029787194790534703663224371894265769496398818191775388453163460029506614405605752903569710428957608216214597884005985609441363271975725789574726744564087393691750168096088015919455720305131518798434719395937033419078275448882675351594165461165123248057848307700740827485369926691003002005476582121618870456234266347093599368404819788520372295080083202317036694641356416835037748589701566248958198187866603542094668868242444995486171494642572100211580843538789336380270139866554843840598300727914767873208028824605073976679692151791332098519352859293191615776716025677918230372229594228388475562294361799244209016485602815822692570518970406108849869911668337116578535959891258182853123925850720276284391879482652734730250339145097462361477174204542234859959073067571294292785691744168731708326138110958043590255793605933349884785065214753151953936393501511720317317369532172746960141280173163547228320419360848382530348290296156767978739222547055802282237800106061576699384033974952586382102887238261132391313472029573149362123556404320420568633056270627281668369637432019599236914624805200473419478544715202626779710460351740328504147517301983145774705428841700995217944209943947177884336652035726044279425132310971581877953609378285796301670560353139913086436588915443507709134613205899358810088543574829758318753928067196776153393227477943430498648925103198218730167085616354585114069741369874521106004656492491515561334956339835309579667651232389184388609638762435002867451563359814971872810977214260394305692437226547711419716661134727715700265377436962144415500180599620081490720597666644081866562436164704212472560562725534472356388787667231239369777833126874345464680883835800010615375353809782776105064975803138510821664822501294713216651643948996318497757636808897589515034858194177366841552575637490326880824910343040073063810415665201484272200902983263020993315377114374034487716573066147133353252204254156724910581966702217319211670969943775782878297219627146503779687769451420739965832278106741798136902366515787702424312484904770672231402872535606690047723348586208375573224396299617247192063472064793035710390503534641599462865723394411497339748124973445638135199538003290545688389817855085330171986465867772014590602721713663565949930757393862671383194259517396210269095632684741602894313079308112034023346492779424629251256446799585144490336763501564062646046010834963381869567975831048316029579697204295778897185856115245514253958560148659099005661387027392648443112052644790830873347751054227403972770325443500334594506887761986994490286314076509984833711566457435961827004565175323957052288452805554251134452905173680862087128241965082787471709571666014470027255204550036541215567959323064790783440373380762240710876391128809707684947975824702404886732852324409344223397896056040556626630511327973030721916374099123408399503223712482638024164840325230481570951275191801170690709704207541308243875649278931840580047340319144582883366467783591506692752277848360281875456155658855018359692794115674612243513699603492067780184259937318782720179043374539240093038218218864719116178141890209129869910720011610755849530778033968712250130810218903951132569793143560376222740821077526107916022966714279536975133827250991208182022228498993836183250000994131583062615390428587883006228449931662292132319825471831012061191763527459685353359397523806519852261199026160038007971102371984808534578134192122106959459301486990684249181203308063174326787709217727555602770402712162223947639548213130621678632774491729443394995959811056913466948515646628315499827832204127378342878297519437951178085006095005411271152353184542974340645014800429836763749102724469024217917562718548321672904783171120635345976303736453489672014409369744527748087067222235014522050562212146672141977413431265790951920955835706989130712230496220490852992502289841116229103855504989132760637752061869884656817442077360534071803730112977988673095292741910886620118780268995143346027007626270211615183434168669329801293551822201968400800757711139748355636390595105269565523597899268164234164349637034528697124408811281366240920833667097881653454341302953162462405644490563217930431312840084676234668058428062795507730082419864613494252136415100492127643131689511546550245878194014008728929618594884999125106978986366720814491621489796256184602461878721670191782767467707161696122793342620360811664125502053815051834058005792218508367439609391281393948997881441604094480825177817238750072779711028863705760699199965257095281559783191528913260492693247730374262087842603242006167097215102243608762154670792398055490829948306217699016822960668098360034089444453146692532349520724235438265236895886359493638601534680454435317279034912372114509335374533095629163482865333241273073659820229088920860614640594681651781358723826589814357678966166718041564294931244759280951052526492208471307190279510920865108679418514535709472911874697838133484475891009683211443075047818169959119665848059009777484800836117284364396141192677339504734658572215624680666004932699808392263911169026897768667250525462309685357841502438808797713270947384491933115672630386924173822751756042344992496889927892667559966013180669933131381460756335792718542919003149401939562915134164715975076286393016454255780137492679004647838366258084111139300544806866051993372231993416325996036903328405524578441569651915271752000820289796968076295135189554587980296324185012343595062518074111979455794360238543528752713846186125060962473917744404647105750326901327829563695148446270534611477319513751880300914034818449103663478242048194589490368552881145681652226074627584096291755091304589584967619020137994764328581878819331062630819404019951743598849485315009010458681664074485276752979283588229196417122588788737971055144512788912932277417055860106828753922360193188288777171577117688399356869640989954861966902187602334053445446042398022170240322121397672374785815537442031142697870582911756708562273606723396801679003544515120775374402601066137442424590725581379110231829017526863971647037862230545786912636343845733415821794245424502061917967921778793330624877062672104584019324520683015079071635995319634123502623357818571597759552340893461822638083458960990376443962494992789964229202441027165383483200997519897502730686305153406214019905871942083644413509126627020489163327461114227470300384954548229553207700297413308481423807575369623458823081312723940696116470395514659461440321262173472079010337540921900202109536982130868855774441986656223228340090245801741533463115103268147374422800121417739314627396459115337343706489771842000000841944723555186376038283339923358505991388164334802724098073080291628120677290452026402543708845788947921867475866036790559860468795269097500750139695413680844568041106119593467569301907429386937743670484582224577649633626141963789956330586028814276556202446721805113899540550938950400514217817370957035415845595127494658409060804182013616008034694671766772240117160847771894676164838667185892356387913591448545995290782795858226049833966598086526910158212693567731599126186167779014249841278293777280413713802672377889499584327616318411980298439192273321108649901011521667578035749460070039359448843745107103995366567895416351648454848754966291943347857767325451500730660371475211327701803684944854639899814662128722082671255524941741944036377652513667985399790279964317311921081303911018340542620091779731353298992615655164013196491318490268680594298388775172782166955862547137213538702620296783020255175887224809653264192435470805943936881943864962782037142955909950325831530581792775352106594121868371579616029936159826984385256738784421928665671482353990476659853617479321794729541425009566418815224843342011365671514632652279167952744780579040604856387183580887802703754913508637126808581182822619406862422811267287531192832491348556658712038429766023521107377231406269737186185777504035844457287824026843340901632572511614970567637176208670438585304428817113783332548123078517601400959265441224343729353273152184790153791802368438752894621553127706472401719884693959930263371965399385080779170232005220012430873019921637528827373065435530838891186532611063458748471166947891123656752048123754439331065217739990237251385476960438680613322647128717629155193763396811135790784703401711890215925975935727756938555179845881988948966823176929155076189393161826598695946543556405815884467446744883238458744973900154558670348861649816768792497251333470882014826659990179008663108392115225301101453914121920590579396918889701430228143370922810469029207656751192156506966218545036388233175487330732914715890707914915118404456589986339794093266984025858973977159256608123616847470299719076154634487539365398317293835670811620243442484064780030903821910427593939700768726418847826772155463400388261299406887172789315962007981265194190312194600799464953234393921734360462151141728273633395971176821475174695433309289495308099805115467140446380964207007135647891774230774775111022683672562853904020802705160178941041560258177579162665973787633570114110542417256685358276587585426264142268831913751576577797254917012996014248426795504412871408854758367464934204131823387469267568684945054240911278966181839700521771006314248380343439869725761374257608600865017052995746190518006522685456106093785566144142989130637939225188622613569898559613920354866153302647691840410081804835658841478727811871453293596065612246314149422366176656991025005042513874944981861536050504518150962370101615415214405691943358000741458516912986338309804586432105440945271905356156867787835583034896265112043294187936240640664600288142360030093239591016915525159564379531734669585999340710328880389686040237227918440947824782243447330701345778825497398712012866354840700726895759868128414139270066984940815509041086322582749981261387520249135314257722919893873626500976842345566169871044152269824557223479307104677872080749550414003578777812173073202469447579782689781917927545146866420111078144286964165997888586051142401603766786265217390867221683577500256076254801370636642064575523340468546538257440014408211460836712096293753203998808662599932105548646798023256020738866226336890313114545751473474181005961969011223089186080371946207673015199952989549491395216216676626589581246574586120210479093267423042428360591641638984630891276391561551587435227121212629395790055066862595510002049588912242829442584926800939495527354511146464848549890944963538730967146726469870927574402695485315951718552659699745316419178259023047867139799868666659181463850043926746380998689105606113987604779611276021743492655560501051765218608087843673614875300974444479094957499940593580096166835605075312372239533694246578403212208945437304909779078895436505986777645557854388030819179291707313404340237408708851360204120706105909391662304984885170729913939654572123700546308177053792833515448492144273810252599524733937896421381798309241942224867141339212504505160691478044208892938002775991625009650062352898594520757025707303064731067406669902536173812944768420616149366473470238417676219690797378121754927268211530035089490504455856101389507597766457746972305371525716077881430152269796217198511398514407522790547469224101759234978155891782257397369592212272374786006831946513654690655838393260206110838721597080505146691391577489147850678964107094888683927950132099156589801681539894834062902681054930600254856182438812121285388717083754872349864914719182372504279524177477369197385717111958761093797889591304220093132488809404581075193487674690872829904312998885945523639747543665161352224512264908140113886996536116481766719578872770893137724111433303007371976664182914711781726894468361525199529175957814704932069054118513132837145627200763236735567214877827585060230316350930466802082476877584467169084954066200178534520949605038579683967600000394092489369270902300675057887330804439017892590977334303530958732468385329725064670589439213600807698544308760327726391171232388582260062086534849361374586518613112587865727629247252755201156740566437598612379196321844968997336171198418598402624002850295400754417728664400728555133964962489016557118703284724688254352137096820603466068192696523742031539046069881990440968534000897416202275217961134305979708483579642757899528640492936184443395309028152691138952088378875123044007505797199865836328969050881466536432085824042985953733659920129931075433518302857404143606568516532304174138733198259217151890398949146791798524089245418307404000831190898690882097065727086297007941334246402076466085992643138753182255661265259899636179129769316670881227351045418599809031997018559434391724237011612725956848224166998413146520923510438947111734372098659616794022613024662515835475937995681144659063369911543618763627410911615641902390010013092126533868299615610713305455339517815020488128542122406433110027566153758140830824142990793153772385150651137010201258942686323605830012250469317763702999330707182691854144371365668872519053559496930534728662039640386492494381831950457756460615890667558165896126505374868763709753601357865312049296380601796534461858131517398076302870762045255634073690152235578313501276235621669465024579452199928769168338201550544508162078068825527722827608857819272590413105453980805009490133970118432542380027062036199794618262362994288450781388827942412060689934059375809033243638172276219292840468792435141208190113275351686884810837486585138517142271903615770741215886215691252081241814772721673707937083252582595683207462241543248506675049649310856201582198178919530118681339651839614338489831982360032587446446358636470556149565871958418790584288924983151154441176253102482847461894026588645733183153829885467557486425651101632703236598326544202035298741733204802604093441978561876277375987118063373458518611337408094732205859834045083437433969430755792008503704198354547010226204776937888403570147594379282196592672688021546578678112663573506847546466945084064530469653539697549951831181647478395775739520844861631479044985823059040321021959635475848064428950483878075059189635063628053031653673869803803046872249530164849863623291388905615563072425013297552409664958762473322865216492762247202284334918468649549186290557741423129051298907771088548042175069533032575401018247878186472584037723445243604395265452654551011230285482125330161645865424978848946143951920432836029006498811882244588660463991713156408877438151650641523725731602290854265804273534655134114108134782198676419550497171179689677170004582779900455515764231574981327437811830375323636184325614394571215277612360258653552727677277388518300353692898526896558765945832163410890005164931920989520348539058168986254393785608660093623521580543340020661117262170984099674453781823604917837958239457352085415055118085055340622231928163424767627491191322941503270244062593330808720419624983439484234891052951814218739142709408347243127698035016535698481953379233239132120917255254239872537616275494600893376641173781977640669434824420744265552063431475410771986137913944842032858515944142883309104589381382363722323093565400610600817568866708957400486643811878301692351185747684953374357033318698780132424794677805072877075839467018443534923399055057205305776338588121265047795535920061401969743999191697196278612361554534005643585319471344381823021412919672043052509136144728928338801597912626201777365113679194867715125940332146025136247488709694129358209048397290971388511928262762214751890568336024886972903491352706453440176448363585712221726349179314543511054687314300044912444006929762275278890751411563359818068766781376214357571670857161912545922806340498142827331694718627827001939901554546814338705337586615587898870379919633779142089569752560288985128271602190143890845135482759735602193182845485613951250258913584791093409887275594603932103748050567331745374803091442931680516035252391031963073213481918600684876749344546898125161258537210062602601848810947774674700843972577898931634968528660376087391345735906062932297063303582599092761595729023195012764620576333848210791022457738098806120407255909804720065708015109169268015309199782016522838051883288678782773528177427560527057066233910127024690909433054090280785075426596531538646708955948022701676472568138699909335086571132043885054902896696388419444905276516210284655574218835222686732884512143714215837198943209940358796518267834182066588169261225144916555854725990910429779643726430480737137437805547784360843683032298250185991310878719925508703342851446480301968982935832070828971707798141128547059852622077722262987048825708488670296559364670411457246582036847043959793357038994377891323206595792994174203562212366340722209254693189416260350649310575371520777764542919032091563920558928507099011151078754883798377980161517006224594939639184249492712051346055268949305067262723911195477558562894071359183597981870171126094676058638074147705795716860610735882887298483985632462897530778444839991248609132489658555903618631156887491760842792712856393972009573532078144419329233863307919824647924911248593927871218374891192305997221053044942931359127755877341319520154245486898530922877087196853730494720807505182072864886014521865713758570822634867630844258321318770231100811749327056746147446974181031438420844007106758924189761955814217582991645847493037259115432289738726361783830384698858457324413697848252832970893973736089965257431278178364407880953139061045703089814542267108455773051616102265969250562782434979189519781899282102971415681742613851420360972961717529259014649734848310418713463614514444587310803465632253681616867842077258216964823725023926680107464828724162981052678168582454216536444501712178578961221473231956156848047882970874650746744312792703544150028727572912499019941551647188188823519842540782392416603694007565202666846588271454642573596062783457189957579551737133000293199006647220780704438293059826903354228372055817367230704803357173334103910737770044902250448577108238858176677661892994107668967676970665047188169641760060455932602897110370329691990359803823262734963841501796717336493709808690473057236012046131559278814289501494750629105037800210696907268299896538910181338513553235124723754321556267534496353382922300332719301294888015027686232166719273576990222466505606831352228878883794251757371157034965762308292175989134939599747216187871639518574480074470110234935689061099354340429790352142961154187346396746773938730599240190741627434160847439120376500426387521256186417271369903856839656650908055609875299495741015204278594115011888213634294420109411899866339444774529249711966609532884391497224621282802056798550350212532131306624157539832218766009296645097496572965973402461447573804084974942477814644661284734878179141645130226274901748789441664471533097122440952738566717084513080373553286053199072075967029260340895162254616058656896014827005141152408416401558957579026945938328732297100551423682795068119730675618622975849197466928899618166205303965857483268200483625176230066442699669359324178107469584111783917909576252360815623865345149133499312697564121049021954820393171885445516259773143978400523848601354602236282068630483775372437284106047011768223480695709349532732741698366106180998667478553161224135015427171118285142058016900475617631819987726265892708384193746546688406540790063861343999059422824115970356817971782639830588903961713015282911187623347926743638865386908698769247537070212452263744615832220792004696156543506957530021136699082427459868173369875988594948672205570477702220037329899253890787386129511393089852419832540228647266537250817574863708532632428858065246454213454944103001080606539503809634886607547480678673558914080050778460501492335605802254673595776604041785323770980089793307713687509902813134068167539867448508120091229394187592460282711629486730230483990576270561524092876837552988558392537839874189709391888594432308797089119368502913577590399042047103873151998427354460385061325600384085413745023959196264516904313825007002993653744147624326481022936349659213344778798184130854056197291088325876221292273497964276083263238894878080013449785937071612194157822038774307146445247798792821801248918971702421411149950062760264979186180898793875341747198588876658663121352695411335011134532653765998907557754316946699014386838784332846589489124681578354037522149239998173404438388353997952916433575273378238924670866897864104871970484931620438368007470838676567450504488717633616031640515846021302065526140704838499324352589254541769126443407895949379871863613384740239925138408543615621431831686862910031760841177024971618820656967604417380115883684936527557650365150955264760147559068449073547802923172287887123734421365437492958594822032388035999463891587324087303658698710300752829643578649665471956451886640905826189227761379030240118648334110338997116648205370019131638178134114797474481656747384503872708774629180556238427940763647419773639491283006035738196008484769813753706668817961209156522043684318912667702901403312740571552815911502412979490660470694407122031821999285847303822286130594773691497023427918598278342075984447050669308974911576797395624490560992156146832703191368350677304584677867634555407198771180098233286665605220638581057902800201305481490066433790736474398793921391604182940620576991099027014242174560102571897016477980472115843251481090554075930080611172579907336449886716145620878308208161530904267588932811091929624476733746384726737017812873079086089758673562572031513651866072443215321104667247853813945380318942561337249269109886098388470306167343316553627402759076022455634159542169857777221922406104270647211366168460652146454752267036322449832439269642178283485430666807906639075224061996259167908547021054516951891238210278147717457866662861068118605875220128424716181834329077424827714186649830947719357008986914685787490687863722795741417056653963629679711235886252874731021408693807946382879299837314470775702329781918127661762066512844359841565728169311616666221160815394545688639225142615839242309855574584314173909087195405822335875329134719220763918279953084282337001676927779148914454465415454422077419521608940801223459082554120994328126469010153256529084026671094029950294852097719185283747472604267323790222356993068320810454409604430278755040504712002567321306216612243162722733067949001358120440147857058745893817279718784952678753440213254098572687086669070760280639031906411519777187040070289652508981589754849315973084398230944201556956528187466619262676043133902619964156701311785146060149981073806773189468367205508728993323520947012846723267262607253186338602481140805420358383768635493305503378605872728763057082069500596899215935409777737996568734471155547411233782793812094257646087038456350071648593936868078523987712382805449533868955418532924452782425650634786030028965624933752557208400610325582197315125213229123758285572918270520783877003403494234182606308161798265408760027484484307676837852483191786238357680892817800499944791616248577189520016538232799065872452370325700034175869362818357595885191535109128556732432225597074756659365463218528553467889945853113803405681493041092420476024813787138739143462101674585231401803539105147560550423569970924149462111726522518224756332751291039208191559750715032239483683720703412478392698649787883949963081622688257969857645598186510533996296996126860059578737800792087693562429768113270398102965059866324850580765374259961493100914565285199353960897388410205866633814283121111662505935602323615826319089404766800253107290236981442981072153355936974398880341697257993336577959787720016215643425105271864331619556174930909657024235612296000630435348146474271775334752575594282094449307026566842557589694346977460676559688916556455275838273383920502963012862452030945780558418010708198173381707315657322291965083562287084237369111597520509885811414003285454051118325639794606584348450391415194152946257057483128287545487598831198023948336691895130309308037383398992244381014856033595014945450658105667855750144989808674318925124072860482136138023271723686675394588871277276475421238179043257475319676001901158460809806970730258107380706257857284389625598377388571678666663813045584418026073145974976577635692024074551975387159806881969192860811351361651014628779756037911550431794716667622621357829837794217414554876531773508223378576995105525414596415220695014670361116742498518995656175704949132565814135805251816777997373453362946901124411286365474005461127268400479027237357885400013413896471997288604533471346508368020194757526454466859422108572031806048864847289738876581486825110093725072512094494856847946623378267254285362925913102379123527674457321081170102983414928488781612678769320568741231695092915824901526623248365274912892244365626592085598392109808796704731055439316738183086106638466304748088325128552025367346109263640783484081450191506474116579570873423188184308720711534209244355113196411220591189035822444262345053839069927903838501405362434220084918476601210253980537433435517477933893690841959513431355380336878461953593531064730716053162236367542612671997406440990435598974321061472000177705459894427714208959599174871003069397835356998575595493450215452816608372333505947813234407374920613368306830814446796439493323435734482248660683775171013278817947063456162060939394685315410670464167706659459995584213153525517503096853111867092299475591822191713156160587560846313927851013020921689742368396624381971523384353589306612336004526009447286452608677655766397781979529579153001401089593396882886426618942208363745300594476439790992266033194267560409988007910192849041917809134527103360158258948033942771159196940071556403244070293039514750713037547527142395127705859671711820681043422814365011057351030853229801509243612754123919810220588962060444791364632727579802139896632070446927248271456134169649713970945783247349300468503114666269822469692094587567790969580543373369337973036528680317915252170309536602261267428693791243996095569208037959136162775671414848352428343605593858285249510671198260910128735966902469185398506752030745284405381355860329448153928336484878944903786777336804509413782762306656302811829341586459762531841418894922989525631083406366891419677497771224996913298618966019419980472712261324854170700541805424283001159279887731428309694170875721146925676426929448188826551108368336919409995157540257228937465543027413473927134849881519744117961853089884166569533034325582381425691529135778157252538061242441895139685775242755238148019085076512432696589805010203724557747481972881859044098754802178753570574769492370098701259646004953804224517794929243954833180288496363568577727497025279496044966549523305852138351088882219185386343971106684338889359660997091597476289498634583736523466070389462725831610584650766173470600584102399755825080150599016834616601307980706892001883071386727581374894433976183146920818014641456226557881031693090246515256793178375092086378017626818388262314127032654839392797309849259636565922127906007929280714762844454449617292088537559133017805261707816330686758352695862543252125691529218106773700006798706515051896076765209125574445761790487426421260688473701593363651828909569429688060745303535895940235537078016056163831052016801350046201982054074695810246298162026446967075776410110520305719646649096065935245282446172295753408879775185878387474863998140668694988793518431484161924240237096656318276927510589440596308722894620752675255962971371501782637662643965655031594387855856192402154394399056861188395365911919473711053560421204737337563678002052439179066975911803416013103433360321927875078560449042346564912379525158317534925564265955111437899937736160013634594142098403723610689699427407930598375110550235174770892974359709553313341672973179282337620103701357914349588524653202334246213866820723047014121964454111638941255528151271025436493213407686975676527158329493647091812170010411108897518447285635483058810072311297935472780507859407147266867443703800295995836649286630733672491938262300737815420811863641464494972762395169416851891612610008661899570129506915612551383602628350644177654207665123137893199232579061071504951500818415806900355533371103717069655951097085562198300229246384123556708705595024863793601355534062536872099722445315315814412894796875636536843559821066743182277450251498272682085331170607953518693052904704842682190230635680401754897275222425241424729253735489261475725132768882458529622337334410194055965822418115065145237567795111856803182783831538566863171642334520473374124182991009931069413424404776107207659655865457631287567870633308308598177215391118762684885244561377953882028288059535221766552751721947684857117369998714335377303380077453019314244945648070582355757920024337846623866250889733260208758215960280318384924137441843701715513944301208153125086375011794479432315980046225156903953755708934160760530490210943605913147020868086983320117286277553306467067089383818149340235651020302810638611194811090343274808737817611465450298198464054611224703224045411207837560025724432697649527338496586092474250891137806207817148189679504544031002071221710096813350478156581806032426486924982057001774939264224082431718333507597367361031385434471808101122263594179890940918580492545563848120313807034145119632056492430998326643355756200311450224360963903288567244400202156819404624646291854843003847694826456577518482263407530479496650786008460172033611166696114811571887089811039847771314493810798999408639288250729901901825155497324088752678915750057434208013252084377893493381304976086540168318786885657396407402595741572355494748178779410282572075324197822395424140190629059889409547078140386529565544430975909986609405383732382264883946944420384889327541357561574085435356042545674632566361979865546961836410061735047308180923079602301935408645259935277045594891669240067483022266538546283899613477117706994995550165237774224479097789297211340655956631366253312198022957911102311940082158277539242034742544881401437805943018628854851742246952209500656007954718704031649684058135776621948389252782869490164696612572089703607813449024979034787325073014363397815860094874667567016111704096003853165753612233127421361451738923774696731689605332551859923406749448575850220653843079837352822043369246677600215456762512190870474583536846307626581404465657116393963547337979742158272590839149334271092460139284187897805151643034668681504005753314225953125411442411171936136661205318959777294732716456699676165797803572508322049384342647404795795787498317796453142905341156243683412955512265018007012906826563181687838380564181096628827883608743583148890603578291668649318871670642893661727570922834397436444821281511808474621788400093085614143690451444747479865705992047640456666333545840835532346680020471676814103399469538521361578909966852210234837476360449780699891437256486658779788846759949549660714602672851577028600518643509683893486621950000131971371132587497429527247106048091957226947113653626473546371118976166444030631092646606254511642559478762702240785281079643157714586404301361404787039868845131391084336776227777279015487049395346139714003977347829724054258174175487701517888492307236040177503803188519676849968045984648540754672019782679714869400649627593643965500893606239787363624476042990604400830880815608278318135892964543338009849510131412889629549699947565182382452712090047999116810992623683980912552847438081921108320475365045309197772380680052777708474174970552520701349897396702079070424056574357304190925732666832843930570261771208544724125871397801401523867562867554272751232500159785365193325666384077558243929002870663231783342690683709881352814077896733174643240473708792788962922432794538048394429000464220819402646473441340251410229287011832189224739439448893780043237452712969160224723327835842381356149753125662991095100363586053003455850633365783056885800915015476566289654836507649460994752306717740865383272667152777629467948776605084396323792125772356929965163833513451223401776289873842071202074149236790450845645780859344055633563380257268274490352004769903876818672177574524987906403115953170450978467504166072375115105513530344354204253332962672634609801637218065485570420588218007144717792616503549145524736441495411153977414471585674258069504322743722320286669443742882419819842620292257941163976234967670933124294990229731526514815607431778107400774345148523533315140346856872332257819506081782827677436084168436685519251489253106218055324619384144703148174157719048288850817674592709349141890127078357642749610308741023079520402924463430145543068481228216793459725814651727110846600155428963543654497303931601929962999931417099159356135905762191112964206452708965211379556866008700841830561747405993383948307589957032691376983597426830547504180186895674688450872275325084807635631726998903476215930871473223393905678419082843466731785103596410395136045998453458533722302807749872019936856746509919729611526796757345247068058054992373145648804797374595925593315311392051865914901007416365414105876902525508151884732155346228092271062651271434257024667314145454621128226811062077429891472558495093914524379797122100198029506108465137271181363222399013697131592854019113831535566554305423581631666469010131967013501267632431316769192444715836369847452477462662566478933794220849259932750663676492937692085038840789690504917401488243723378544279454929005899286836617449099782919918565299429614858515832378143307969434220360304134711607532109072573122650346305395462413708421606284578484853105604644079877800835018238195651998456349392563582977679286192769569466190180870034945914087332862938975215435504398849141966171911233410229383728263454401500996843442722475354256109082429258302149864137186516747603904270632105349248198312278651635559598509250226644593836936791986046147866600615817827421616607776190799301100687149295089371589049882683070633975225104109430809792475690771508593247061200785653767439462649671452479259098687342404081682322615861770022011493436078411193489063402109900706970573267160479043491518534792742511090148682248425018279013121418765428456016298458887659411354254620214835839218352402968133451535809767513612264348196325689609186648859214636546071408726977355881471943755953540021567291797327601764866911094466261460722387870431446304747367124340001604974975563270792653596489277698594018860113992883999454324388713428126922880300778535994957884459632136223455936000577655876130299924105316396802406930206920374154854188895020652717134085309331275110628921073189528696398957237134229473829959454132490999618276514094631633166355052470744588538762516373100755297565986174526663941923002164374274182336105975115184849201746838255141538568656799833369747148298686973148159133426322171952782662319959076571260299094510050835586649761560591793693294182581593548623789607788505589917783155395657903152665193774675785006110664161872474787811292679823083354081987331706771109746759856492158425699970794610447392651095616244330336491871278493193292651362228332774722349925140061775553954175024014107766236867194777911758978204372607731892464068301333126140075477344975557720996900733378815786389562056725215925316461205840258566425609718487297843559708495375022157264256130230794418521049490040950149483710645343021657650676222280442020199979259573683441083980323628736476653161713587600248773413255547208735505961340132990561356628688927289399924461635913162303327180083917841775168699410673153063001012481014909868368901741759678182224461222385800615683488525879917657398899259859291820505581951075243219910159270560807857383796074143340490982439409667790446065808303775150862393958879976153033235574124011446678491358220265766801496650641246017210990344013072648497718479220300037729384579658435167414954482675961143293334101086339109754772757217196577801335545194480134324205128225539801796784086614447233962781141330274346200378230209052646872746859287658716553460640347646887741906985214546300900154934265040792990064934512987257325221637578013400650838739525543323021741780409533984964172947642942263784830157631564547277138946475239869934148431154330074384750435792625904013200112607234715026651609648271337339596524819767676322647876117100724685911191689505558652485515324861536881266042694804742091993437055672722573943758764559761882102928502264059551282368175996074163225537891389984284070888220912373820013622789446754024123000871602367163472449615071943396335399771208279464403514181997496778381893245613123771759388169504191425217151143252565493391289787070676476180740885036370018235196379357418086895432374195088850604994034519465877446524410936354231566479406714943992690227503223111136739775783203259714696326892146009286325952057044930507231631643125149940654884243222736488204715275362168920044567008614696123263109620210256648960104329516454957993436770507007251320545613589406558800506491302026984677125633906340993102361429930039452098086405122040547825441867049369405168954776847000385772206095002216032128049708268213844167641342340410820004288136986521595172171247622906045291318212783051821857321953946974821235587729248308188636207831559447964995247545960356668920703509717632126487872773350885175031108372406807077340313384156622276040682778480428116577217824038832857049312840695632396625133767738655223221626451163845755945388948084986814728188382593675019923766182576971822561372663103996834174411051118983661714689370614033694123023377184642489585342751446446224687056819142272673928887978268602442374411677249000536358662969980754882475305140993566492057944845590646216489794894724886539901293611756718615555483892015366254122295211098943339180073789035771318316938062548620028471622894752935377943609874225032188632612229397752605987085333087510111164883160473425628303424180363161365358056121834744230202353310512062333682472191858060714861893389955041239568740559634469747297797767270750512580490927267622325534447437407111656573202719144035430356069568188547091838945359753238651813846889236809753922343570043296139977188904650084405344185206081355495801510769228113398100411264991077654854776992933026708786979121571423449919486780833550089836891494831102431418607124661834131446156763741449083337209863610883913974094181194263683572572940990995926574441072977948626813109384399513419879891899642507588463183232669157359713773446483671370621395875590527906458772907588449888797440852620748905857046781204808637375848110740202247620145702988883008281577195814088651836150447117390624288072460393446276544607856281182548104791074051135573120790180663873582007751325215915830470153296708269710367784090836402050574067220055279989077262822606843186167161082802542349468934166036442763895941218611093132922414918383262260172130266820282831384179783497468344057331853356696040295750933221537316995957342269405786375452712598797316170745142832673058282712991372499765680915479171684744538366465268383780954684408872961518958596888356800338465275462969206773106858167373376656594332694425562876560794276840804854360199950661948963024767032022518661500435674033001702532728462753563241078916251833815601555134980577826759534979167382617307820641156457507704789056070137416039512700537225446255774308333748342044900276185011236869444850858428705161158629834149436026708712036194992341306329463976367446690046243605750821299933205522884931342954596460604796738107593424270271647174865593823286550979734171557890980455648768401125712333243921980943277237656574745299084416946057981860653733661127229227548844500657474484741549846922308237177058227617934199455369336328651292531684570501984118687087285333102353158157001743188284117177899238936241475054923767898210911094230627649230075392325937136009631396613683580081019566662851182517503310362553409346817287628812485455659402226992274726054263140814259439732711347245643752924243642500767418644016147960867754076086851273527250736282835089883448073046833904469038020706470355216889671488186905061065527120437368978462819983259822685062958256964740630944110118157358077973696502081430314949559104283347435182665859427735622705743479419186017539980706401137053358325057279668747364486851399578169289704310945092813194961496664080705669203548885852377063457758896502253645251380732563494958262983011919275140985579425808490785945234682949653513099194298832313548086843279964950676996751046014512611411453461261849085956157456225804385252196930175763875493218064913375423179612326180012669997691855606804425390179954901942832842443335478698597718555843971681353379739659042307851463241721084995909361663729399349234549506821081717231112986038161536567948161618222426623164899632782522792398302104753533780664786673154826105785215424606995806695908883840980436801072228615553342764644675867085407493138527166515315245509221025906283893012565557105830359655570822021991222001305236220176931930085167399887662249153231639390002190720981278646261827426953863695731957109420786891860948286511182495145944025226897623316598725926315804932044078394734361108081957405047309722672496000107606233314067920278704975707660459950632306062774463239618575532607192419785933070384522055487986245131298746499972203337591468414068428858299818845954606306836050708505058994983537557439322045414606805463302996551895818127211765799099904808610480584366998675618787625013388993207659406190613387560411271493273199449442560293711382470527648498705518309315080412738210388936784820659481950789737184919429932682779927962803710004184079839843609639510522608856643172304798839810809806244314269014859311028328105901338008175966674740865348697065005336233324190885427492314635841790573660698427006972743911460023721036507488629340071513328496213932151397212805146960095108619976584332262831818029656515292963773127321357775020965928314526794227807481536166402888338664641307274497214142747071972467486467452946221152670000817980964065514082526158709863862684897099987314285276742189601211966115814076742965065184983827540058418372893321937460698576848059913831600637166420640251143351087897114005678767413314560266527447358502897111398721662338621366485403563632202220934930940043405946759372915257935135494931515144330522092138913409052626104283582636873877364661432358179449658011687441033834251216528573365399723910514231805782436917991310444075043273577098460001074821648712993106333909465240352690681118080042617960706842381833755405169663775800705103780108612613527932724748942968965758242280441897754598443859234839378039445116266029943210547270362957769873800260907079794563057838038454276577700116722422521698769228348052815304550573835590467111228505971621676983856533529914885129186043436224650295379758926808905945685363853850795461967743215860591486578921215059342372474138434725425739943952728619505108989252412912615741756679185730769329823400697359485182004348562341533111791496059946498583834678132891174442061967859421865851812251759430293710014546418389861941715042887476981458213902055433815187749039841324816223424096504824639032089219635579094108104465374615311296670909948914656780341996697404218109096112306206642816914435644282550485024660785620195338485222043711604929464581031704270468986736378143574694232989499665379722702809835629487682443303497543872138049726451983730373074130122427301679272403282669532794431792025009029817394311092277185595571095699929445027342813268559565607374332291954887328653052118971387450332558725144929290734220545288630100540126181551666914133311493293209979649149453406274131092927946259067997368728956791290919758308126637315975698649454582167504608424111097931683392389450230750206504196697588159431860852473059323891267144192952438229686392971415430911742288863443472563255902854329403020717720800527707656873167339008129404876902787892510677681597559988149770115720509083711637249050863986769785176071795616390650573480252877320967033408197544358437828052197362359731182699102821082696353642005128310480520988982075301231326405048330140502479614738022164087043258278010071529284661153809323121733389723240295892046469635724871582230876488622764298640391782271176754486893561400662890951355227445241128266270629343859817675077561420786794006898366078551120618863057741236889431087629385448552994323672716070073761125383223318684832931681794181773469243721886650515726434651158006787048324493937306766683272970921430498335514009202691359136506632317794125294692631869015167193571724984877236982130298119605705168429899225166997379107067178945379605119274926403612604723842707562853409540860572009095842474495005119909440031535397963263566224457364293561209947636791360252830819996141081407694123347312434451083630012937871598969792118755014991666720342841323288386342281897050352589677929804809645897193447799602194532336049450776410054786656977585188903558766506514454223050638673842761955026993781088310560655934585930554462933498055733275157110996706084589668639952267807285380872059049468054448700338299306999450758688124470615123729970966829842082545327831772666946164065560057991102598011026573288972076273358509430248650589368079658082167287394240929739788753780962200240747668350944744719365341340804224915768642264543566784346649262582859499721980990738653600123115544797238709751361579200621622176186058004967626820342038462308569358545161399172584704455006074433011053402412109371080362910255523492505608442409128431188128301736748779252093589069073441558429426134304171088400563016479888372857214169952275123957745335697170544874546793430730522629732759441997852583681232029407280430492067638830019069905500655720496762049856680816473131407223269946901447564906592046445534083390229125172398225735804410057534798882431487354852017840037462248599265746698835430160147871084833377573746422059191791101742835919102455964306795336492171734517518902838779213982910227780006059121137799575090115806810903430389922350364776500912612196652345126549194515230294334782719050670956024525297769195206750782765521205820002902418437818288942560931851005237008966623672671699123704458598212861862450370750753503145561501829505208186566604703261541628761565027193947029079957398427038500533295626709173004438413685710339392414315567065803411121224940068498721315270395234068744632342022752584175423828952123246008186645092392751744337579936434083416584354539345382792691418262117453932284650427075288315352951325089717208423387958945191725432323748315057492254500950200464267791085370838103761836438429722934559253086527437123462727044068868864399814886317400057247196517518113352254433257652068795058405285758517172034932473179363126105656252796727256463873522022643455566532172223480531570202913392699353235592800740466271820499180570602234079957917070058057839766018558884112433007180992301618046995385763532633933385126882161374930973728130538237816999812882172123988770975639521987095882680491525487468190194251817143350173280220459605825689102962003993963133875073013400248340260831074269387965645882801667241206264064119839398008228422137891294970138690380740042567812436646858240994162725125742023021046170741675008480574591633261698810471960272870119529486993132524851969795605008878641373887555827601651390662478968909871934291906091217044734005297487289463921251066804058026332987144304607179949249793707072245728778083895966403691902000776209640461678834227698307441534013357464349502378570371673577458626900965464127923013772038103460697339418512362562949320328408263792024562207464089840688328677121929079769040147981986777368247044320961202627165289653809792606339971351951832775033146275851797390690974870001895214178875079635192294723734953566506797142209834631568119021980144479660050833438458019247502069802415816551450298065125079574777283949149043008751134938729677343556841641742863514111698922063391858530622133646596909802362340584642991489875579944610048406830401395235978826165333634454900792886153844921289567615467340621678563210157204340152633054448231532367053940893378399264319745612962242901605809354394990319987634442335519580080058598041733894846042063857740671885647325525887432106649519569536939349224972794303211865119239481553094707920762459939143565848900442493570722826375862646205621714115608610905534511131441433637642710727468883295354164093304436012812588247839067675065891513859860417624172806924254446505679069041876679729414566240643949243699546475318878251452961812143999449842141918856900371729891408183135637370785482929880220830064481964280022892087975326215358937750660535918333920699517907117627918437239146359152665708399379055075486279265406320822163984516299146660110491924197808103150282568190371743905314603599608676187651221501890592416038630545094259393134718841141657954134072024166460178553892730856004310693359993168741767202261203798927278335910376442364973305254234735563162445578446100479717862082988412467551049045807765399892153094846687228728340544324385267605017567099196599996816301128932214619656646219344141287705718922120592283204473028534891247315247942923140448880975612900832484168492593441811808273718355873485999240097424240726240562505879359532413637194991721613482262719237770135829030325282096577493145268169566562721643051009175821841471060448298517226001427295474031541076157352327138075806379340733207485547360312426520796554201957887317225425076407382636087965184067479059843657959148130391709792247795417251565088644938772990511611303667130486741072779319983131898345721616335942303295257779789341235219466737723975516479307551963758374308464570332892994024153624388610727611190941717794480560061822056746994841661737018808712610259162672765216035753148355616485603854967774952192894149138814042256441391048776168191886176417241921149692004191977894529649142662672137745911346126257903237022354996227772038422677210790738286671929756729201695092739221080726184698437160714264991886123277958323105379850053555151274405595784685552800799359406777462997047500027049572571781179877122824527652114498289294874856798745715350896002574617398151766394113506507398650347086960087380927574353030481919750530205698352064102212289380622844980409827136950687450772238048916715525403247509760941716766319459754879026734696216491846846173329560091362038719591373752246418880870438563365979381555666067121091827567407307825322130373576668834703297368271934274973192829698417409546997741663277735213053594662541559554638886086886592751658046618486034238036848818170471649736217076647368782429000257068968098364740199066360391632363788083762399261506937248086778369012507931940181122953520894416818057199293061732593849066165627076206973321332050387144945092556618913228271009780513118393536287910614099773050142398701944397233584703078139302515008034838025731752065749336846857442964586792578443040841485538477476934867524769152864186318868341035922004382256861091876338667066892859173669705502598639842571333084030250649579799776239273750813847993324319573957297041387334565820395030174087186052226845655669510662270902101140917958540268271356602903540127864130520961374128464493580463624881163595564650853114529939549378594249176260635142446118356620739175284750846375726729542366526410169185908307160190565159452694879186044030611609349432550633464396779743498455770612568728464430751557608076448001330291654865650849407801592968593267749176977758759923039045595258809833283985688422138760132488677704943201284127295710386090806693438857570908757304545199182425796746497708070056383961508130509153409295791641456036864659657660378461299713499568270512685305169452507049660904775205769236222773799260082436064991106935020258356151488789292880004114826954188685632171860038294655367265159046363335666055548135265881696568390819204910343171746030402220726384388577730660293045907868464236379892923487807861447167323708096285874672948569908782546883917679711511725136542978133231522321090070597033690438705485065600743303430011245877352309177224326657513497518243848330708739230620221193369402665295591413466056972886872774247350536105908238422563677175494816436933472194836954039562391872780930785143846559459102024449064207378124406162598140764512250299138499120562852612744965647195586574839587327560210830144118215005679167141967523089549627280055869722383974011091290792804181800861764756715692084195355022529410083872811111716026914697110921075705869301870129997001123938577301950155531959774697193089820963064530123849870715394854872937946702893136294021291020403422658901034690485620116234331665887353324890665705619247858402113424543748489669965449151132732176977156811230345482620219743560327658764561547080226087274258647085470796727229526859618652213020415480300975719804316486350860818442641048580534618865346266355419560149326337032912498042180014340218059535381754865865804686569515416676009046403050249957021301146141414954690978695865965062055625177716393519587634316668344002998356328381644585643180265375298696445398539796224676028314628025126063057776669336044929513279550534026561483156443674120640293302235119385029598193184827236997910886767064283538196868438627931690850512182883350624749985212540509992820889494549836268653614348984598434002888862908972138176410753935527988732323638948436959493857736224246124939017137014163296414701105198536254393299677799065414440954501616734018939020328027314237332955513685110640851943678010454984474084480134027220999165574125621152113948388823614169139207320163086181356853067627900871905475544139661446700341138871825690664751690888915090921166540906206045770076179024982382135862226626755851659388736861076217304526588831756682826908155349754884312887114952167909840844838914304581792298796319443917669177928373049944756280117040234740053368630197516357169032015276679112876373390982471031828410008543807705404310932690353633821811041063679003516207522344175600605316429898781558347288303730594242093072466480054683054080900337793508127051996413971725338634535760650566768137261416675569561464892979404208772291613043480036043130465506893117356695985685595893667888616709669328792749680664833915292041309799357565727777123163280380151404265848311542796079440562148158342882948515196480396144776767875852825275690238303664662191721400290681014168027592287401897056468270690704221755668254424306341001068420427452234842311853117242808463702259552359776484542218730139139734078478308225903342848898213507512805965142620739745942308349985823514632524312424926114450667644741440826882271876427537527600853255791488639710686974225166006650049276794531800227942441713595762641826316468036700306627296262175397417449152654802006631502254533341726077723387738602583844207302298258052985492971031472681724646150013861424235641664072694226361128845201998719728959776229533871707015888531442223650783568284353606477093508479525869126583435481431146470409883458191373726044106045127707181227073075084211194569279491315041785104602846409934523097987227312366000269208967199291741592112785667924398511047428501660635544017626352484332507544874847435629366803428704868391225679505175876872373232271030243530403634254326787503746521867356568906180980511455316821509115918072490706304554894253960095881324422091806030697189252901369980451056484326549903358831124939759484857006105084881016251027000437681248317226581088782563115705282286336435698677212987587347739585069311172323297656659558500049203458782096144202753445788403117011053056181026440314073752834554359150121634528780064198919225306474485159661355991456265964703757559383678788325863527407039494208593982381122348902796675586945188144290286550187611773572216438799640414283785770253621149457250765574657280588513284921467322371830103524340394109948730740946843915229418421506557740259515278091357128951163375344560002518856265588072023953165529261924319790430083640796327620022437004077195592742045817751664773516167450239193126394068371895120168915872867463798394393421289782261774337252105488094687395735037889105628228422264186557017856377611977455235457582673376479729998431293731430386525514328092110446926876820595461359216364837440796877127443725484681498121101524986385413223931300134679534325658820673923967335736369414116933116265069634799430685297082598240234964637342343192457858764544863982304690147793356294434784241028789149257878177089417807962915830344724047608930159094092267482830302839956415091790406990026705986081344568538468965591006126485084198879591147058065614488718548927892167128409756556139050546378363953508336277991048606231723793259119773086465221057413789084068669734647936267920986559784722855336733413172093287798554091015160558156615588322108939488349010896207348279863234095966527227375518924035389942964218469225988792207157706645457500431732753049797252553837338514797981992338492457339512187312354258642460417319797827936877158584101944556221601481663946682933171546723057091380728665286151201466727952454240544713189077957921196746468871075795671018944837477441058305567505026758489177118005002082749570085627374597808773119053888506238947138375885780809990292009002583069730191563267390526014932060635335804939492353322993040580592475055072820698053154828098088849898256130576434832271482819935164935655473809781432595182293467966227310286223957506472952799372699196369795170921675247759559332648635597704593101230515895403696415272729184800326836855645434418075314446253586374875655720060863733034063959561955446193597980587335907199666440013111759483923153039530878726817308282355981201594721798823537207200849914487341015712774959035334680237413152455899976714308097507626875431971615013268563802005445068872082277188188753335731616211273112473310220395659479777989975601798091134545686584984299393244003573250429525992247366392587813288241742195884703650683295826679140764330175933376971355594061409803070850285871330285898152462360806075503642778417173094907605809694218372699265489486505636569554198042635770861137478402077635103213571120205878400687273719018603027918324750319061543289768771258840817476428725359396571534968450236449631746688184606562635584731435382053346400063160403718862717852671271311363030600403544043541728490673886663733797997029650017078467688274818539519962549924840315448484525426356172214778378301732935294964709933982934813958352717472056097594202459463207936839834171591021813333078966971338091559957862242642595310152950200851138850877918199756202113766925703605813933025200208054044133489676988929428200062873143917605448924289399964872140557672082783763833364472207669390945781315818068049261145731624054898985207854393962624556071732155488177951898507120043376603987687821196230699932853327032522407233496801003792187236017516435740110372858883115598579203028556622480253254588440992613442011399012466181839262148931520141539532147441132809803805516185464262990285942188125797572138172410448965888069848449317721026715829495009030384425290142009032421948881332451640530198604246429567330057388129800833469033916266294164945060518738266216613213604179561599824301417390539422522661653648329842741742900874425294123294685293400671403641254727397090217207980638679593166115701283061246830882132964074047008894742753905509743061570525078984878141713849286441517353112261621004403718767756017672885047973725302045565203748655722318722046755487788920313664649110432895242571634624645484770894773130657477781791306243123168000943838461225159507892846594043719744553194449732256463486832382287173540972007304156668123239917036186711079685307959712219535116739939165324075782207458792252986153974145157295379332059413121707365324295131742188368632683328060471495184609891214252329926858416723353499106475328317542797491196489998481296762017480445281164993421641479508728508410004316942258411246468715034638257767673484801992008977084074894896069599946248835099121258435295817144745620394538577063699936512396912526016332025762599489394826226986987392399205272913349341245388097699919543483951720634180720061639769874899164335596021221328225421851826476094915624959748228239901975611957830373034820622192762946425313706067485588970960742117826685600289769421966385166356512916834835207130471983829521388625996582586818998587719755597679971845061915473085124641480235129352671880727173641303408821115351392592626191766503541498062411047118566117035861992611885518198143993642796884553787505803071263211642210345231039486189975024188293600088677721980783742424010472022154769099293298542112341156840835417969733830621639680212688784800082546679232850203635991015639333438628487494727220038706369793726359971440703853308619199260401878506188169776456395153134705431207618884522065128158063501196509775881972653823378966931181832224399097892265356988665403073788563164586885278604019836336470059210247644266573834635328275193556737343773528161813164799547384789563739319230762330194635405304592223235956393045926813045982464214319845371724887352827136582897716515291183921929617087465500359575374556900055510817285465747811214554851317157252070896510762761404918617323757307149490789067515794226753068046540636904439506976827147574707090334899917564373790541723268769893842052065759694644359547293987506283958343821256881870752645757573643780803757505838559616199570130035386696892172074283124779796974581289116790333528586596703350833151834810722749555115903798151433649498221264957322711252173800181053093306419287966456163709842701098080275528540359525155439837926993462673010859421636897596135809064660294625091221765268177968988026764872357047242390874689616806112499703965373387306720556070577504064698444818878755777184895335113527286643809859757096320564918350969537107319922021433538630790663370786332428431008163448114331321939671043423659876309225420651261950754188333137638439139828251872389613304734609652294278285489446578435262483283272133506911063237867839199090267669645955540031184008667378406440792045829633955084363754584567367502353007069424954500329554484607200338362903522816399946757900877342670900722123320924303546539954937590015350629790988640400899878824411843733804344398320213069913976419069025392977774435629913659911110627962480947895815436478826135304281923954606914209444873828043968452781487981957362745030326402736005768519710511559931039211072676056697546242050427854421909552932080993318907243465818959978135484491645242549754143910676542698323315402963720635230763761180073581400893978788525014477859337737069577079595933591635527178272676014544326003061306970180160485141582710643930676027293737907839215851220947245638276555662794096937052436460978376897864210141948206235800692108363446706613064652285974309705635847676270530459083477701856061799599565760646628836559199546479819066594073940242758948495586343576201392698346595311342338545045818534540975191274335104498964927089036773022065399073753400784660583367110315032888640256476292323826306152216218529688960479759037691132930006636078985962828453488167458668752232631464908980081361517395802716960935618912667193649420080205653240893528984493462815923492889684487137571825029845974656689402965171347739498925320793459930377719488415021806424173423739198087251517190527621026531646148135469628990555642836079487841410246404559103080571965768427725051014653136090868928102529051332440392868435379902731937344555950660384582765129622415313385177407207253140500704434782964116918039438789950063057978911733525349579614437252354879574864552789099057316135150586854477226352716717265873841299950331627483073817184364416242301998920065712354641953387138392862246151934764377785855566306372765082256673587787682044833288741503648293675028586565874225224349413986472459978492936637139545756194237293042997323650075984525536646107231157281992761621393925930985136108334717265957908939792231951093793902876039376052074379792895239692434150963687026170339050676354302532371718025874340096269096721101385955568047152383930207847247722002414043340765751753201067124355879274208512664350896665874569014628355744811047504074726727343310658013837923613815482818169424532130415509942981087638861920424938945975603098205251876725719355812858925309167398469999497069162375347950315760749722032180158904410338011112099659529802849741445216297761250329810617637286284821504143554174604268714978434066354525718283621626505580234726470069954482434849192218384535107023822771137867144080495720845545899829047389385115078687493424249290179653007905482729515284221933380611532156629206439338983108093430590579637222752702755296811088017201895546209671604448476329614791844833135791070941523075152644347206706809582279462766340715210781340560503768792126233080943627735624979463554730254071377876895541126347691003924997451302635945824974478118380995893810584860714201548875268284328156834701260021414783435020110117503810234685298553031700393299449660696571959760957125355839855211775610166848944978706639875132664966913158481254082635714253344097735946364858897461259723181149727466960544810845499548769165332197092631638052876035487895807542945713433237638521951831918962309654910793903812747079553878320255041441407674117574426311288576084190826054480031456334388980074512689190087282367935474053543578216869583543943551929578021737503905306017562296460014143412040106645836285122707021608830202699335639095078274596454890861246411546478068262562626297972632061065187056660592866759685209313855335462612451171124401802265783812044128913700872266234384320207835163953887935996826650669387260022741717623821510567064832132895451992073240946783377483597931818595062847906806375290673862778977828080222438646785181977166824134146417499866912319702372979238212254714901674125278480123673080970027020113368162679448757162759691776507561490804189869740650696233018968019251867605778597307256454238736827308524806287888061522955161428929451252684920975820697683000845964078270655999662439265736808112849824923691988953858840221416656846171508040872169751858338856685373213039421753429854750688281469641885600051207841314619014313965290535875588685394097697191621353476493903508761438050987389378588299152069095259447630324992351330713079701346656087837016640604153791372086091944614024136736628744167561625897224736862945937137237732447099677024824941680531983548701331497311569144262313231255681200285017242566025865822696549717217845371738412204428258907814848269265690659800382603625097175404671828684875154606749248354283901174178302015528834085270793360586038292698349598785743705150847149643820643750652423883165957952920765564933945227747521675660877734062525783438373014040646169715190507118999608693310789620268755467489971082624367076867300263881038352936479693181614907658373115453562369990843631646875713376125783782012587174247667132753705598116899995001475187137789199131684095781144506376946161784157494794975328482593197780478579529055111701725758562709626828498327048921744959368363900115562252350222376915391289103648519903508806848093615051828875238952163166880285226699615740687660625865781067633952230552217164461326505383736736101876267572039132036677602364745160080238388993687755064340252421782212214688705566331808098853048658820173224612976730305007792877627412155236824866689708495750493970104443969945353263892502749520455227385808725521349353132729320005320395435824548182864953320872857090322139862658197353702377051741368037969710532224263726355572719231402696168154922255003905485433347361199778738632463917209526167504193217589427739605187502759391396985965662841243507493572030683034136469377457856756703845776612180066357213887524819334748016712507066251341753147696356481703920007266146661964869633995938591057028599234953681752409193479718690688351223066938163547142263983828295440921300766213085016522279744134379801656781901158574258032439564511257496934131669375478434172266975218249365394057585738712958303247354658517088684591446346585567714307484562118845248219405517335476961953049647492611202772823446573204108589039786524920947039224209352562477386606566961540641810786926304183841154920154413014877926205935621081520697978205187770358151255356195429247797986593797967177402794166118807723302926843178894582447241748214561232190245718574277109715709058566827441641541599580272984002974167782176630183244363224630977159746439783910820967542629050313986607049822074262601288946814850836265265427327708976622737768539293833459269235595776644694439170027316898348256886076827584019170984551677166875341324053913584277298386808224340989329559049820170707720037450085757520710366492352645681678054583774506787109638755103046851198684432779884378029029178833410041725091485263471572458866281940682321476944789252567663700571817473779511376739797050970363845288845591033010384753696696909555687044568473049989823214408408442480882874465353799286973657146783782544633872927829102417192945553357731887755908296717107120815594263666935755429577440180531236915962869383328152889104581524273480630523464000358819657875137861816306051894866260490717490244561661542982744466418806231753779127679008273366254577085562201899726871732269875928378871445607396776297542835021381026655992643111771462176437965914719868730164084065754833199845613501069325759324472117811756634246634648412126481730203371722100439106590787662291934002506773005002336550191361789670497450256130108292174001597454260449334228908042651569483446967157613429575883110951521614791243684155734777218493203212011423566255170775879096319787377767314000826671662612050959783561233551205470870126338569979786477903765563559755817727929861782426300696584238684457731786260481107858156826769031051083107509947099112173809167745227275639010417383451629158273372729014088385800771009166615415677403184348787527106242635871771301427237053602637273461659315214858006426573673568361617203489313565914555379726758470639962173161152522845651829170376937767129742019716947703288460530297463762708172566139445835768755091843968730026384765747697894345003821861681204988508792808918799539160680707094336502535875041631714594561440606293820953668973209309818524892524569691410278655310274154720450851012069348773494224495693540688862515632136081570609934838454545119737675175786422341340166330688115259765955842160109987864849144128515111065652430996750112891007320037727585081909268617386820740352721422052243577441831617396437060019138208422661649489337522735925101651290122276557735643085639149938955298214317343479754353235336800634210143709994546194604834709369225112089515483507741923863731145460299116699900143203566802735593027095326189710035295832670395292702800778249844766424283262037389244755644226508257390482922947388815958119293719200359073342423458773495004814142633383986338958747254129393573367094828926909520860665764110567368532424140169251531024923401935740184606345133541581242961722437536430263211642107423039467196449912095533867908892199694171791104854941811028220644007211561404688583843645483569213816450359771865884726211987616577033547456111581112884339109889889119715702502857651910185421844766700268661073424818529368802332214891816018951236636498080779208469744751062416686407032819891905749754885667400263693355141869882693508417300829397788182189211205547015028963848810573606567466363864404485876250431980848139431602077226062571380586547845789431224102424393529048091726974807373325579291802432945237615456762779396944595737972002710165001851984372036361280441542735474979048284543168080677019649873974223553881246745319091541678966986707585327805662625565150099824241412736183688024083532352813918943320073472104896677250819725391115434068300159053810424862788281577944109160685070184447420395165847846676840815594045335838904448357077376222777977876603313078394806306347563066523380037998735098381130356774577504759321359883334401662579810089115139802604261921132912476058220967966980445540621680340774123949061412399867453646887796520780314125487249278449885897249757639991573394076152726435737084943085132057638048482438333610452274924577718384989219809593472435865764868014262743717084253187749825770993823405136499620997173901624370339942542640373858216582111136130664287347437070692659249828957384884138652502076554761741493168846340965915255129782307145990831003335853172936976134270943383013231186310924029859881604017044133726883113305982269270934817803518986665018912700741190951863925072044261618216483293962314285545422400585981928642677669745080623376346584220742303463497985757870645971354219036538816640194350913172007592218910110571957338638692139310064681168705075244955076299861381523051105536064562040762308202580740172809958052972679717892434361876948381590966355645859459954017127714136705820267290356457822829701282858462544569428656882012735626751978425250268398688892781554864954321482569866125099355869128864909522900634769333630122282405685564863557999256446496790979461219368659017335211869277997665791053424283263073565810164568198990783177082957688798306595888939066674171732932934196752459341361878271055241164586594460751879026342241215355821367146091259487680356331285199362772912161594004630242703431465471028000836199723828798773491981106648904108958432159992928982368475640943158400113963963936615860851734186109460316369988424787234943631482786050316713349933461834331509374865756728425505942548661067483823898193779136076113928823970060936184096239740118030724706257071123603801098348504191012064814142423746256161539139988609347266152400618625993758928122012868056137187224861722295516440453707149603799202732047759227659431536383407482546795245562920376269077467412460538130372159602047769403869199459905225181228592829756337149611047605556678500010945546472839783186150967593984120878049384784778234221005692686979758480975190838627714516399508800127567763928937116882675307931024165224463556201029896666399142526418934986809307635791241763393171671986785412491155259424916938802110868859693614423920099975976972393272163342686045853810609238950166236327690176229599879784121168129853166081127516656619609770020883920395524961080730377912354952476018598047873800564321738797394219631520100291820657559986510481873260059390988105760058804656219217896116328425892699772351364237202026116439868761426011053360344891274509375283499201128582299935059451945936855982131416330725696583924150929133221620891435341600271986074660239459569773896891407277669165001417234952904585645181345393717171261261043252250500331737871076312100773911247583906305409941349801869569123316082072553017160038182101394182109563607855932068889644329928532933126821582602378209508095285909664441015329091263786644493541992640293469078878650687090536328947657978958677118685281851364722395063472219222198727720312154181086189754258854958496326955044243669147623778469638406822990818266030115865674395061085084607663874729377258679452008985010322431005455364701400552033387520778348800548889561461069887992452007545171051798643506672083031448315614280196917451056626754086823677815154027963339956024602362325988758735288595146050962683029984136881697510263500723263438968795940431662077453247327367518697511626911883467754205797195530071979265955039369300538075110274881008518036371062812713607100775299319523168432244298690147113538092386862338626898748971897471500209565014375924687362525107004290133777382021119368232296906118574868330427632062785953413504892466466009590921737552199580483916548939474849301687036576915713582416818494539045547103485108686433728919276633294861811227715968344002610470481086521057482927100018326261602977534574333914210012112523855129121428358136201958510389016277261024443562357979729972947524099151778097582023279263553115074789767446029084332161827075815587487513725381613003281112735505469973815167429480661705454957791819030910441404531339067954722296061236356975997584426248334744109546529547824972170771480750313979401895484522917879630162842369859492590825962212337506215333560169533804413752717875730771204477153514438063346952904862693817163049920244087159413591508893623483054113620370262409101944165707603129805551416118324944424408105808118492904136420074741057564859688182018993598328725874675697258441794340023273070637757097857189739109594275863171881954166079514836164701180240148448984622005154718029396959973969730206031756157164410279043382320082350280906264148626021539773302626570984692192964482385160474520777879442097835386971667588095200713381542182073926073537348379041737697688220795125305095228283853154047017893732355462654307046527413776068103068304350700491264759421995220124962502834962015409585047107838827881784653717468677813728770589682422509579676330079865408165105602163257289370720778599407043154252469035730964571630211873281766093846772694065978292162256326461770286181416823673029280509324107015645043561646059960672954721498268701017375198634314612386409053862276910334428407178656188292477866649118484921658252949912568384362668350100757682882091693981467931391049436447539088007012824787444953793106333988415142477838489532911478226836216503358676834744682105667468971127231630510238023090796763529413920203060401293032290854136406811823473743752622397202427035034022913537032382693122017942660059934799970148674625265664252364984418616087759499171163642247708595874346011987799973361724321775208756657962973284656190490035793735462503516405417964670789213837966407375400025281806702402289331104744191829548711914942840975752791366174681223286151993427624696918128699797388025368174168611912148466261258176671772107087097117593999109265396362806422547646045918130235602624792743776182070562079203793540030775414908929642222311468150885060131703854051016394086535619063494587289480588581001107085416923841454210565392415454840128706466001150099251712655839323427177412032734873165202389015133957515533986414059597032501238463999381702099302864444499135528118349635690640983572294189900790023873987143629500382242175252770739711054112741515130826404588756048387691586305325673807756351784071073335623931349960675129532538813691830661487510693696466332356953177203770668592980269986939328404232246503961841368584876148591095028265502981469043216973112273869247952399566191646117027486423842135017034382499010082492175009842163149299893678824736048860654930542261165445036221672399034520392768304584778061998764257757903723710964588659321857251517565125354931841965842378647388645726203682439044208477165538861900334255345699040447249626049059849111363621726932360743441980053865679722728912744561699382269271738249244894672247545959109231083426661623081662072820070717924391650562881191802394431740833454731916456820657822802923547344432737912334205763990481107012958388469185036557385964908174274547067199057946270782788701027019841742654064876268202889182058162054970835620664473038895637900231325508383202205926165613199522283689426408076201540297308759991993809912140163150892761381065853940912002971991648448120945273880054221839453419935261420658718869002072273065734491700527835402994824655564804122013841100028640380239507185594196435520835201519963149057533855059920175132504658662410234147785441513081122510358001648127648182325627898720703499957562192741715837367000927839935253741152927869683000032919241562336395387227178090854858568767832464755049411169934387601941191411516003976902627848797522195064156119119138430322073179168584180039333875256866974510949692504486715969865783126273380762650210970003508629384998512916047071719745513912008679934831620016739382274754092134872106566011282349787291846925223780499683467718508738965473721547961670816786081747433243596227714775159736039562793708350160007644734069360997658882305896237806019128341584251109302305737673638037610190321211020350608351157521447340614945638057442569754419960961530929583426934695363454571229696547662639601908310855103534870556847214840478166659054270735475224654120471075851726152632027702499080965606136188385316795216741412448956336141913224283813116453742066832197796016951319483143983250844110440266604506229913523445190377341841742420578233568520615716791619217326811664901082975478393712070803410831469508186453377828501668203404934870083110918473099391945428796122196510626141828873230447477676054861725333957727705085186862343089096504740743835692220022981318538176073132709747811907972246773425799247397348515436970785640829390939136611232224991667591558479349205083307644956272470237051195346715507059144329854358593995586589803999617866663562339102180705185236587550727606373557231701871815859926309898130818258256185084476009814096837481549154236977362789719226609474480172374517352742054320085795550370023064701392362352871069655281807229984725832744212723074615396635577512116855622464217781101443698763454602991112001383461973073295477671083211738351235996500745855788394527214122868537043073745670013678457966486880035425503943161058759046799789166145409676639967731446725869140022149497138369026391607377872665375601993177091501037772915262451417607715776994442929218709912390908892239240595186147592388847562914089611790060477724082931645820514657735683584045447351249913091789564852462680727626872196841871490865464871286283983295815269396973838104510978351830539112575482935849575459576696591136503465782379610961490525201005402566519290723751835196366986875730991920057072094654137448030454055533776460791354315930472022336627377525065182206350163238649664517906634506470134442569354072398671666586025275166860939547688563176263734357743973683737179128878745910881366642186547895266154462289302507840145248438891259357593901097026811807686811712490756757760632691704481636013497131947532174420470577861468848429231085265393784787656979112925499712640192129685539034494050054679239238378873563612121145882353731740584195496660225627274148464040532332102876002884139185319426435821600155160118611336095656160259300716562968665332277304234052509292733243505518914470817584586070721794950593690924751325015029969034046040950135515977704820635096385381585727732142850025040527014414193742088931436875081851172849609575307979651183074660017951330683805394700255954393784625184132025697967995309268932111789243830227138914243792781844543941338465559805393525200775650575465282776898121030411615237542453227530724468565023709908737069485361729718958444295502684105573370257046300483800755239870687850285682768929731287191604492131257033328362221788003335354441193948625871069024604115824069798901220928978963270384935255557579374175433248703029384368748721503070470006989749499435917347612899776374989603666964306325913667629120828698474375994077953003439045622694956768223024102126669407756366995645365008817697586619185894229100276366138212317549952540819179311821250795738536102463628748238301985857007023157576684525617057803026244345026690348841660867906116626721073727606290117187366022840940162971272478769295491844985847198673389521908035728752964975596859123647652339742912589332210801582793666316017869436026349275208830597139984981286229708523920406813365995918633676713581080510124444498861185280668579008145808960777916261762672886148569826992163068636376679327338856628526960988635649725357353406764412258511503331870454507273789828370606028099005206938358871307321061619045280659111729781791477904104325961761583305199796229247388622743308027847281241335449317305471533193351069324592297525822271558559972777678450319094260297385266964530282284884961292634770611501023113841135336014567698520795304060766294788662642903629395800583368964154193454988677245970440318352662741014296115610351526105789112678247433073346392748762991373594967530634316933990815331423140051441015255807070144055817337658931370809265231751699085051488056464427399866994601612219966368246169975639966561137175105631072685810198916377406733160301490176634468038098306941230877249774091676861379039971291111952770547272726510703028318479524708307394653879156770727359802489650313968318384202150422290711994751398109237068787072771855654659675829003854615546845231187745371956254285049675088672544768528583148297127928530941046938411892734704137103768857937153070773437749601160720761791731582784704118363618719557022082206590971717095289817795852977089843539158700276859279878243814499223160349465571386279692331704217809834786760408901800587838858060012954254932436521492397372840852597329254496917037596174373035121537534495764690449392396649008111233089573483039516483433008962021165676550660191778771735052502359204178671517412867920677871872175797205667042542795041560125026682631391801124103876706069588996861228123619515157019906095720278683023459397873245270645027129195949245614135451460587604400021074494959596625332463583817313632083344200139790940862955145097266877863702307855788415199673090872725647703124667040966025503854844769573516322288947405862482140538189055506577701174520838386544111666379701442931474348720359910625374910779221656223660954273515663328677448550314134338244344466523511978017801756418733867548493543120763189531606977618821689183396113540083826692810668107551311548396033711933835243069037228919322610337933771929935971211216646999290083417516206212668721706155998877583242520372275399635984648853520095580778143459238215000413129442570464950128068299709698075972685817821046694995578031908767336310847611409302973133769760958228109973387593799307105013681624188197105170209816230585579941498986339659299149237673444470940610055504007300902474446159450531117949577132959123788193257173046886854586523828413005863092736018628431256041940951898603296711090902243600586428018440871366737935100770385010851117421502148329473067961326793651742200201813303459937484883220100354336986815970077046987914006688192164652802086630360489587161817267007314237421584378988398445427207681198420348322219833025087533085112398603162365185332282731447366432375223178655348859633069081516088417451180483378550426113392428889472986866141331300322341418312885102777255687167828504290456009615346327445338646143546214657197789475037104009883212225317356283810223131887624308351525651148347799666563243135018736114957374945891144031628358313259421314431997525967936724093967016749861493973114720379043542152274861373467451497779846815243890213535733503465946287008957267209115717912858863297778946794158115610050541728245887395127662107940642994917249150227625543806669854340662162422002769820531545932364964251241548849346212976333634076703152247810764707992052122950528547774654404345855261849267143134935440087032110900454389751680223066135343796899583364860876087745939499780369850414841515971399494944714304199882144945570084192308193132698490619015104413652175645504166706691526826113068985478989995555776596217747150159243005338547434116694040621662708852451049775138600702075496026513539033423010112304809279853203581849079652935066103181906786893197987849182157372252340256386588380843977909177766689229089684112287084676868792067264943395913120315440799994125571660548322255690226768583107228722232971098119177570848607331413856652081053577704075814841733408895504973379168888383572182306163663893208653901524054921710530446154009683995206152257921589478193674483880674036979102647501212727480436862405492906209223895395213601078463826317851806622923956451799851798318477445167290296621116162600455217233263285116586423101118461254797798588750771862108416669037170035684131952727606696565105333075525765229298622101638196346580033862387501133500363786011179588570422229425822264819945440826245581402509405700289846854531120717026846332086125968556709350494461530516136678113823695102372126245425874319785991946489527939152873245886374962925735424898217008228838755643373297700525427869160725336078638175971799009805026294609454360231640660377845415886208203685411835305028331140160512979244902911638887709181792684972996387432930154742332569807182050257436727488221681338465604436536747688550418031186612334707175089353662065281068985486249217793074356726789223606865950368376755037864399315940671578555534276137101146061052870753115444159135007870428375488119392004622790558181781813767468281658524952586173176682223307068223924605778681045384291605746684756907665865369309616554703307484131157208422944116022435687987796875251296965856164894650480197589922013554590321794673620453675079001750083799433968725351089731024089537509965800861615250390204518772478197508102834925719075306354679776648811465798095374466435017269452665926973624855156722059358104206534075947806917845905856888522333929868621417861864652489926688657548180481238781268570489213468206721910054438415426154873597660546119580375020563222000924342231087752198637517177830313198329452698046195688563484273211881692326981705640200048620336572735885342846245845791374421847037525415945975164679069603936358205423657348915731559145257319820008250487308233523304794104211736738550992672581439791572424301085585401020743438526982995279818881670262518043535286413836325704417860203525241210956728980649749338602700129058434180394517777466879985292385917820487413355470942459314143922728749684761124128021735913294823374499742313687871515389565737644173290132392260142075651955076030130939857125542769892957785820548981588493726323823706487749711010551427659213415348296495105645805009928893709328429924168813990517378172255863434655236279109285374165043840957233475881463594247487895664240054682214430498062430268691781018362826336427276502874022817748415998529435877282901237971902286152766347714615968179863372925940035871782683394566367107328622779639860844092942969094314676656208601105232423415566517696832051263908763786059291993162125058166278731698103376724303994017798412243183427659083571194455844263781803548765292851877345829193629296086829459284412529320784823424382612581399918283962973561806068907547518009098471071721369727135360294431585631085992615133848560810226545649995324840768656266997107359942914372037632008901280731240504097905957680546004368833367936238665608926798930576957504133421847657918106532512085085975772494521939018716252320196481917654571678134934794143452938483688444192756191756754217852254253194338026202565501307747881507906562892482749484621113908910752911499138161039578945732471650964764174664011522558899010687276647078622922537304619574866229302410927018564913916817742242389657549958214192570821361075640266106291462782721851750142487859530613595182590764472147373650538696654529306730277819891659372645481773407953195514695065825212714226742134770475009697539898942204053825672649277681709911432335576417209538703357838793341969789141319551867871445879977794574451232821322006993886465216047239657797768986481543798181845291380052624393462286222561008062668482891540280364645587935040476604044380785694463991916177301073186081962481393803853723536185488203548717895782656320099687412525427382607362085115585431032082088668906435538701340755500487003120976633354159657301434844948679035923116371911431121406549577992703300793633366675922350843284675594655363870249784295280261967263495283262240866655284929158505278749680245020389771890442246555211812544428389463498315519376471054625949897668095205012255991481886237431217688222256662393809522218432357797943356584544389195683610812106897906012989867161436144893947529357305474053288526362441616637325868099452786916257654996238777771088427615796434357368197080148880712475696615707603185210461418903482184499633436490468316235036895513336431915852761027779137869390044108579050532046083041335732792415281326556322416102050118015862988175863935686589434045685828114603755817959736158244089262629477092003496771006758857002366287828722817291256036561134392945839952377679311896288158977357721978341176376489006093444440265090685604026148017759916050171359053977580540941568349675199900053005307095386521152028187635962730483872118136957739070028159572164074878033704647961284572804419136876435130065500463393262857888729864804458413718127426205715714551834743268668941676444924099982588979365470702874964168864160675808277618053747444778543977182810473883476569825128315179057081162702294063636605660862413205129497710005447520342086027887375927372716254120387180244079352833031875666782489646571543431052736304910865376820566476214165287244146507082100094156019418837388492406953250899485168081730262321616535498547532478462149390896075393558564482263841152555336752997644835800272453283745032462498865357930122846700664305862788814565824547223847962705033417030619319241473226377375090873186568649080181306026927273337990466866701205799354149892389769185084937680809342308911925021380268879594268068630968681142657500810131512796100412380858751865144082037698851666690145622834435567258940450580260933571728790778980460591868440544439360498655478887908336493404490022837820447798360494008391298972922474287486162323416995277087598799395672363708919476103073497504054312319987131475866975058983433584951394227519721586094278054245205465133521277427801151881039674412182554987427103674675301324604317975466957013915025849706646221348790738745084224800967277395017766263235165597034060446650258345929014578919848931358062663657498302813707790534904747685145839994532588901505086752221153730628061178677332919933250985664885765692079153183117894869949917257676713026721913876457022101827760785500190870366598931127168002328701296380623140706954602693376620566823968950127011308486133381683400439747894401165582751073562979122313860211871439803355127792861990809702247147321744315629893080677737299210999892446732141284158390729202697507132765617542987437486203124813281570574029876029051726410892854002157477728676838213505211143813350543468417943531779432368297737453322708863821580938196486302183167259803895285387840698089981119037412631197768758888580433437142082604582738217443227841201528257774740369296090108825455071902363314929543573127461394965894607553182510904131457736128864046541779684982138392459082257833658077925091131191264109000167396331338231438534461461830715382538757615807343872507217164901379000237305079833712572071722726323551603729987254754314585532263430867358056389887863243368260377444126991357602981420903654288995270601787261970274478875932383466174835031700114677788233314710577374376483829146729918990127449450288929230534831260175208461195479842835430734049995695706145601799580508456421231174428543198062013673805126146836638856495720058436895262715327949862233904624483199219906721774515266421659351826354948635373203065133902352727939400836365302785078547873314558888051053350339998671269647709114430574671424157514260551021485435768200825201869896461222725411584810332730238463176077555315150285075336181451484888653333970450815305667741847749499110440375029038175738852573358150425563799796768133357221162086178462066363521217119726564762669885390940713474881718773801560441447509303692894914008730799791456015226535829848566582815703268940093068645887934664344633115402725871762924076039486350688814731502523034724836859880905038933204170771341486417814639921015323128988718469793478631476277896122782266148331010728374045076824948104221560569021721460055095059299439220782060749060251088381749966883529341675194056361590069748441623053043644691055220913529441846294236089691827233692912576313707207007895865500696959484982308497152985773557304621963455394309860388128604813346209861192462470499484695095072026281088026609708729739356371857179778149413213582083937754084752304659823728193596465838160534129049400893240886020066414327626946422392016981574077027594384517522486860249157867696749507001135846270201178584444688034687391965547524000438007410289641659576839002189264492019094760822618129423089527238556674294540782290450999538526789280707492191999851276240150297381689552600585142881428127613244176318983743544221593375750742426380667519122479558162851238722270757396894295710463002160585124462918201317690281779697063897435341505911996437672970299817442910736045936925466624676719605914138078511362029611279910455907478017787331741489586496463463882798237558430213426779948128165842674537729601922463520123919855073422682621687712098544650456318663517975704580859848582129242997961555028616361715246100229308955545662138623235955041846124083363119935743285479295376726378785684309533996804145998540378752514496530614605498824188469070932303249388337341109676857390655778319689272246236516600890814999564745257693420830725047692421584884171504997505917974267047338711630113097221875178889495312065556655788291021079891386423725272781917274645340348184670403764472927065741052192890753339056074918192837907738396608201297342414562439726715078080889617045568982146220225639148384924773022033660798976083793795002098603515896840791732137333156642212249766492265942185253914746961861237045259634177677250680676722850479835252599226384730795973845207346043396944345474981078948238490937505783269985362976364802573980477341593004911450437292796221029768725413537816085042073587173429852458888626599079956894331024783841813082645422231843051013724085307400965772688194390436715842778136543508720766534685663852058946898072980630940091341966705168547349387377218109595963018033138241636453577375795193330034677029985897571166586121541364596420185729289013555286161050032647607245323758473084018149049626915659281898955536531688611618585478177066720046932769991369620766966625124470181442425222223830932538224119517345509515964119330691660144460738831712721417462725729876118262390867928097731465314125681011022064661077457633759148848444581419503702423183970546596556695055660758370493337213626840820445906641144546071272591572997363622933153258261852660870441232010371769706094311657041230531716517025422103266993652953661559137452276632852103890626993891040874457109055434871377393935598604288875621859880542344464742276193471547489400305219921966320481079479434458151213860859938114728335062023443075273366628340360061416012683292610327952632689810198470643158173641429539082844502030185179422764746840972357640563581975538981791352899798618572328707377907434486652820059737562262730474183991487919726778486891125371359378970656885763572575217910397951701138694838973409861013511701752032079936287774703214497825341177486521444406634863540162624063270612297579172909267745677154796306627292231197733872902969795359625641959902495687649110859510904124607131865911101468533061247413985567424034225320548867329790637656324749226698083386097689195983950845396764406083456710836188772695815429712138163362107919002153731780448056355645579791079915830737653350928842649204752474447813961460008770271944011465956375748915070813540178049379304504704049375873870514597879418832313100543187783389559502920272146588568912325641736832116064505774950054746139444950462261019924197414941023571817975481957454678903173921356054028871555639318068248546371864388846592560127184925244190688941758320113521723733133991881636286102598242321555970305314443721636069047671114613221315053222840701698260556018928258059608047831014274321200217514436722929963551647848071267390785938694937163288259585893159154021799305622300590452415662343322840463962490558740087179194265520146641245006981688301726255018690949259902804774570624666638823982535257059139870880510710774446507479152677209178478761650907323031247579513246804946482552339706977858943780717535198535205219034117997720532980796793569777059159463730936971836993416195602958982192753068796845680481668617618823001221326718970901205791763932815520814602285525927589882091519764949296722472385283408923337443977300574315319659039135333847687973969818243967748728053991805646768613855110050845016825072141946221180063131313825512390414409433385025702389760563893285238377045717366235718530370686364102320252155033733872703092951703361136496678870128892974713657975587470869673118193441104101754828467709664596261245222683277894562195699452168333431094595929071068811297845435308997245797649134456627451621406401292311682263260558612641996857982030125825397890957908028886869683907251957748643397433849933239711207448905535541782910140346962626507041587294798021417333616284248916128872153263586222214484824693981723540129528011995703426195064360893571583546962281634607660822496686721662787484077449333726903783559662052782615732753976584155442101957183162161302848196050346134267981612458062136109546620198611133774915834144486471861177811958426162017199637987479201240013686488103699837219982473766752027185190890860959490378683732853368262845646003729512498406182560839594734117664741509284855263062495071670505596688550697935462041354322004296045702438336791137196681600958688301130375646447519266703347657108688719386728839088886734141714264859638550579758079230650221596864285091072203777261000465732725314489058091022648392906786503660906622317687196712344491979450161383141922294153227718873421932601770352995980860332504370017395634190592721090133452952142936909695859450983395053188883284445870514037590290448438187526303902536595587675681267687240794010135595516547886701208107488975944989395329159547205432952816122462654168867713696929342969525686939444541219468807256612055829288389136552085007814431471931060212661020001507493594595313678756875723232494491551362533261745515602042192353907785030895244959738231528760407403753003964962926634144254168041131783142225076890959470695669002348850606859853379403766274387885860077340073528689206999567413430607265017592919553853485614006861145961984253407006211420847405298393059249865905040436432404795808435398240432234714318675562217820331573190770931891505018367222361450229574998597761711726455132648508247154755337820855713937538060681550760003975611242964676813710782962382490651955833563409305803771688203571340013754901992128247986513319333513487298780485166527991127039020834766955457482351448600539249707330173812139436900986816432290879460032566373945183264674089059503183556085744639339291925858055770027206332019309680086064924459350037667647278385277429763430178456398558916067330659774459963249210795554036723650047035930553035122855959928110936606957269598087214151057726741688364597505132003293484162783898776533165569606709866847030001197811244267919771667311954481579109111170081816914419390029705573552599504210289444259325377377103554515007770254911318719330943421826737520589220317544562808855718299544552136628721333477986417231681824391011024745716318830552353481380070637176081318045669675101758770887699814387500702657254336035819229003724499359799219971087203652717653878941749369423271180428946909749297972610363435904676535085495766587646513381435705779624537070235173058652335487148110945661716923278716630176300729077843821248087847347668513797788855076866474525375665055869778507722198092965828717143721523959645324857753949441528554479793349855141392736379101323044730725246180323595485836588754602659139090027778180540150773579263378027792075947339072754542949633394507111783601554928553894959222972345376227613685975325136270068923051006123658387917518496808805044742528043450701017117939461536566432635745751032496334242601602552424272755005943363855796988287492136333432805624229458859121586720523856638694269929348419428955373221124122665665085660286968318001172051365893636485588879253434442424031130786908609326846741333495864644311289092319807474241769629164991478552287885182040321099676756026705184465826525992536017656169074094307645160551499665623090869476304038530056438721300313373582704860190767348819465252800216208542314122004115840728720090878456537579398792978160980098483392023021510023487939328692728868750842175493787939517017020347228350887754125168594354394564226535887402885559049464585688510728594843608416599398986963862016657726618865439391199280268794928865189413675952390551901291001783748399428500088026326404090712266462535401723462571159687143269327766798742928583912752399723965902481718010521353630451920264041142052470078038229633350059129883479343804322205825487200158584301933067744524367744431690839065700067170277814146416397487142160265730368639016944225854109735624041296234112775456169013324187407712677775104199166052249861463139635161443127980625022096305723256952978628935649293971099405296206849185433148932020832177349706840042538883820624007526322268269793021870212623207509922980068599543393952460418468081880790647411416688478877388199395886195869969987677976871987444071321636365116487501206772779355656854567235959610445353038006459889653774728649957274311081990865991792658187016109049710631335130141323233457344762685395156506767699444410829708939963306573875501636999396666087297492991015446011044323736452459345000198407919565859745580532939837560351910656994384911290258791925894229203009729634696657894062947036595848938943991969733721677088135212241744828295827260696045740504780992260525060873371655046221143885501826946265668553152401452365599214638545219033288393754763461295490184213955062909038194417274846886552095071131763605356710046027828714119882777367933014556681977108271739316575839654368150041182420150976954211603757330461043537526256277284825754718170396689096699357040654129330017895945523587062868625370817384827996373439418481333465719622346241881625766295115789479474664430525317887532027483745324858949507268147494630576355510516859375060760544748345867753266495445214357390625811367219530774989060053704406104630897267375166372831370727542941634350556462316820581968552391122506280767263767612178005185442429920487248896967833497629532204726632587636462777347457697258216586723643014206014460364540330651846355788887658695798722452370016929741940188576948283808958027000765876165175673996737557082861647438999823960491227453408830646487797915433571415656677904716447077634460603084651675595034312121226101830691528087044486929634697788407179796097717505986674034769556406584537623640540523314221584234537870749408733501049483348754917933857017629882984740335049584424025515346548679316392254725566139376318213166998806601280037691558207607022799557001966096106300350604520708526502876508235768504261699682064022971219068429316566168692399844365597413934769695914302140541679443052503924979212906712193211569419597462068874287404204243390652938804781504845021947270746362732852837775662345281813620522764545460177097950551018507366061311351812198235350952663414505056858318183933740624734600356814740206811872541478828661238775244845823607927020478452707228957071089684500256627895477509930009991394991498659851638647394157685663005165974359463864665118199197250015875387752055346281393803029498689081888892605730984988600286932623392389798586698484269705076552446854689536213021151530636025582747181596225431485297877931293704550957805876683598976175756137553034948398755836830198451236567419567222766830978424600122831771758427425181869080955084085235772099770281226009770752846034370465554563457848798920958799225489500600748564458991200208105310482591931549722281802647453959875246669557535477611973686424839459116532475964511479294612858125271822241115784509217481080991750632985616328656024165354214038907524696926711854573638917299217413804529141458299613223461248795242175041190075984783459027039537479505450816251221271871384974529135481350113809323951544605732746296362718139148691221365112419317417451950670019258192662858026069977815261930799587605237377675951125017330342325463319866197654880431005073612455524174188654536535172848380671180029063576413755899226824195822228195394652041282699820285025223425771759310806620509359988877052194653094990782729965154270379555458247052565834993764846145001876684347533883695781930806782472156448889272355922171547775451807229840384442284116951184641016719783713901402833551164884404784267552204873057647730942775175041065462235642800737881044815263792713815827798912133421861591446840371638574939401611524643722441026000390794814035839915459662108020818581984982826092964565012285768635996801922891618866976256250673144409464902870094049699944880039174830292866412255399466865895876176738798887778865507299271533147507510797671935266928687192701391747540850756903170970563279030004844417225201705395548193096710304003223723153905915009045410827636816812266052160599334588898958792380303413536628694653102506732715885035274763936615010289163903231284828690080395570661618837345920383240932406252192698124500404249960454976688735432649358146202850621758746081365900487962923084143010425399961103800507467257829872601905374610403178942614976564741531547502813398730316464648401446246582311378411640057227672162732579077798648163882836072724209866266545401617405520626109516344872317988662875376085787770916480114801341079938899260328797803759678932246375344558445487424557105173345384159755853028748435050962008557310357119937417332934924164740353946641604253553621834985561444575294492442450364393463710529605675779351813966493382037679443555599140427483608186863071858431755628211553226785977169146229727053348590822526179934745895409328818201248983460113524149460668708346582471884517998849147762192150882970829883787749151177465152159328663350754084889888437062768671245529902089503029308776437075812685103757830163282854262641661400825855137985147517424076252166369519282997616572992924351316250455679746839703534678448697251446738024993351605035218112572135845071073696840617307801992151871416235613149362134986534585370738448115736367244503306917359593892546843441233445997121632701639633488868654386955694702479215664570929303767008246782000590585019258693168128191227729872110479638629695317011299816787164732859276973546792890919788684018491179272196033372126785970574541105021430896697018673393865362321536029379403862513297298976717793209682881929059675188538750898365822839935109163873348340719176404912908186502044618515054539220274729536609758952216610760689021931078533172055401756549701511819779048126204206489288229225105560594472803208731302199832159881261914460769721213292732901128033227156725988386504535490257743414438373223844093776669310475571922823568428599328430470678941531840520610057221339513326526871782291220971572346413317104024285743715516034131399098155574402502287548200412134883641502131020414681945405287782210985646577903842963988152268447135533914089452356114550387958838292255918129953346463893901964985803753581897437163246269524598546913893434173530374915877891211927878987272618275140777309023475667129462140757039703785154923935591680793241902473283560736778582016225442250513062315378737299518022022363936787351879524085000513642472442527455079995290256264133493575049931893291119302732837656263014953023657325293424979294611649484528281738416218777890747167670710281527665873847225698917320388147725983387189152912352324116291886315455369672361692331703327224359088028749173183715923933105390497031910105268373827369247680035837145187837246877837339431980730360705170192315428759904075766216396564428834416529911681165078798800845274659083828803726512433508138882501656179652107954325678621062872862487456984861627337299219384940979996027466606613234494595514772595114068987208970494732991012329898983868233243566488540291078532492943907396944143587144851446808397134763812300681087742376525393167952913541368043427738793652668054504670585386959682613412834390587759386738743667386880834659935168216462632761606684938114503661119727403878281428603680115233115092408945458919568612724628754939041758808196017163752930887162599931539654737346680631006564182322112547495964828972580038665685071826141503142649629314975400845984265683152892293723807860556294423594161310488106916249303477501773023684345724821938235860015981046847285377248500383454883023417561055391308786496322211019672576097486934935089875195151759037989748094432658676452457614658628597820734962093172100463436758251862494167609877241911715429261142921587928988068649690388389551715888814009807195836681666997761259691905223232655198740045947223055861442166023166219825005024670639313364464475070751735257957173859412463202725393574396509070689146074778886958997860758007323594983412535017019007433085759042960280270742566134352361073220261004099816469976429469147422230411905990300471459377836067098525274288106685693275970040350269330158596128141186547024038474881698445128104576212186981098563326752601398359571326719840843318692183194675073672260655993011945962838307204652752428287409773794981455193420869947335106237899520744765218917858927644960267532537281328337795326361680575457677669965201738105513520949649423285169621262115848830236244778502788938347564915825041373542928578046753389890198116219048783757151883385061073681925752545164632895082841271374205422897702763639098944665050338767808088251280137263516284020493830429637921354186488971247039776251926465906152408249509145429482549035821847443320230352761049341089965698524049098409169369566002001100832202852356153056565529949696507657654807909126269316244260682127534477604118110862405670371246177091962824552407161922908167527547345124744906592136729238689999748881398445276232832539361542081832546486330500589335815153307311481438382000060084550554050768451331717732239124643475743021430031087559839754398821521673872787615456430738302324155309724755101849477473791770856301004583948701925364109070696528962612124512154356929264995045669308198700196264408276861895207901392090173333800222122796992943855681270464212041329949239677691440278054315221055201888436356700912325621198152941536294873702090659584281445547881162945624741513352458050360935448823394785138835989691211332538708144103995844322974562801030470818803554505253052841391912635841384609418549118648864739131033092633406515789043231306576331443172000030586004186715078222945750809858397243942856237580299614022595763484201085538919018948335327640602441438967378449673917257819379585955671631630848772855085247045696886513352565046717749216967540331535740812413050674050554749828413916317667350471224466002462703466365891255829425369284125456841979214517336493041815027980191385709786475656062845775555899858817281622424773342558881247788138563954009269306026411275206415745826455007012957173976634827453817464170482940656862950893178463896931688335653366899682358089163557891608569403526615844077110588650900466885396704158681281075290153057000869385052968724546125149256460625034400945238517416379114083567522633613009236709101718581469522134076414204835360240901187771871479988490230584810428734702139982835129360633540757038185711398465417777963632303184713661886814881174309203006954253843785332849820710555322094337502272631287649039929560571825877303027101096704315858004258563060212320354713340440158312758514242497222475127507902362520786364454231271464066560219191105316587251258023239296407494244435226212441723078984248814083606885658980390898031176907883413027264654126921179658784824430864297020539607252455779213359721756052959209665657185875562264902874180019743819561816697971480373015941416468608472126893617338460838681941616893730189963320477785870588353713119924339288236666691717826330951940917905022408358317456043377666816335309649157790491053769882480359453293590688469473842200195287403210521355598192171209915431173169764637452921256801255529530030211035816940144400883675884155308802440057968370588531138603846870592344963040177647585657368127858546844579263038344915807187593163933852273920568207828146134521849496890142983481458795605310426713925759645365289278310859006068468538136187964110113119275593091020021246513967537865572354987601292979232282637982766108670866033451783754996817262407024637328600396855112455937841663531023967059261883976357396727451887806245011070037431276334404516038387912599532046370109347275509727252075842010847636775259730857767212830721379674195411667487173312441625433888326829329499541186145530180224074393493223544326181565842221305032870019652199180118005849129486766839069337996628916998146534606167828466333025186723315950501234772242276768976661088729182140123654259139451921595498145508820868803073010198803144028899316006195573467933319695621230823555645962672502754445430236744845721776212110160057734209297167281523899982663294292019831310400042844853385587727833972768266511140795737430668187319311400167462140300294462451828971787903561998639519351611793267286565142738374403098315478888151499887738695269800309381985919560820737603706163949434139440769362165660089452597290545966944685777814268427367943371784202623616915045521261608765512306226740436025730142491082333254342813892810335380396963851947072747026154650199109438560600073034299520503269436076378860267462543073292236604775492006680245598975359923951098256195738361886396715264575773756716016664009015998449661263527767267034242684646040238096784002246793685516598825600228271462328583874072418827718961082139573833739373953244611139085480178820053579653566630150628529220099028281282460323965194251562400415423089886507282160108447890739275503086782194408189885636930347233301198937586683585667593441390840151540263462232750601714907440272716301045749329859691298701249376716530714815865213361070622202932293046445725187034294415185492290764311994135639728288810686121088067601704671560183083939813370229796043640083329430388047553537506304159777887069742689661338762232385703882728365131856126501761199394930814509071262491348154530677555821475705601149026775920375686516358857849166816709812918703817291103497209324797361648972876785968341923483717417806406033147254449693279850140970542270225999717936864394305324801547481248351353224684816842668252728492183292609305359024433918042219084051549789264859270028464794072330335097610737047391542110114146712228765237354793158179039335691837916833229806862261411378881508959592077771143639626336119069214288436165910144448090497584626916258943703537607981348009425797880225735492584878826787837467360111951488312470814679409384895426649296155583959169777816127050344580986030741106650477480660434759066834862407979623145658475934502072392102598509882772130583239080159835379954556298270320226654713181622254645581691357204345580658747122252261458160094054808651712119864156534372487580762427010593732821969003546752326483404612051545298831234706224932400474903017764193920561446456528401187700248860574358638922865799705605552240320426130358203852865121379599793960922500293591315596795834310663339993991774960773230686292297880044138232494473497575120463650122767946112185174389620663630426015923482035795183267025855385356873859809331395011650386886609271141206620621964143614806031490991104898519739619559590962494201744139273223916222684991147743513432167787429132417579290323280897782119764011596145131334992645323518009531453645000475303038932908001369127642717227606320809357213620167658567824552164833396825988566047076683781375958232092798205499175997031161471050038450454959629206935885583199420787646839924201817473676940578355309467925642274777086579541752707845217995023668293100570366906155661970621458102102966879319429997590753683440224737796443009841143497631347681702239105023551552462873642697876435346735894026156662114495308734398417072695246663840436480512842058039707673545042618963185838025584611003751984722451847142115097093437146288126233196000192959760697603450847226279023969173332598948379327014932353855766960580155689374907030715486780521121586291845505433321270291749710391704406310342956803725766907938064985969202758911370570223650884806018897384670786389779900511940782427529363839953752292895302208223648543497173452919539039033608557687923943828010726640276969807627711689649312085194008228127194474530525445303704228095998342511776629405539875779176969438115184361555691554028423136747447525329625087089061889432985981330012681054491116251610293062314808374219136914628147908057905126853337197165573708235348867379236512072586298636779623523248271032559405190069269838339805482721064595228654495644798893217033307180774108589332452290951454268832935965387303876692095746353269623379306781235705884264274000123787321457107917484465186244782836731517889116531643174030909528469435416206573037796019934852517458465211005453991985458192547279323430099533324417766656703403787376589874012496609516242801129382793539843894465539281115656912184878369957998139810710283205045688398879132246769346837930044660889903131977444698217637569699948615300555423259586834231493492442931596686082215355069200942165909128040061424375184627923992150682997916798262371769280438237068901370707189992789920457417199250377933701857075278242491199024307689029365502098214165347101626630601061651975222649065895722096709414894818522903194861939190240191924776579409040883745231977300499515454093559810150148647418121796627328895163074628264888497554681617122746550964065578619773079776847972664546962681023251620629778750321268401267785298359629071266914945285804467029075438378609408227573368267024731721813895699171010601348086898241499248031019121150612684109522824047495718888799418315073171852502834389278762906555027275912576715046975350681087582744540767071855903567054986287247752800638347116040388838419462653101035052512240135515759585637643758577572990269426840049959893261611226283948360353520319290560936717256838756759391429215813094618483073097259279175889706796299756962871896255164087881591624847355931683223588640443439322589600819001761832807014083871810963132283825008609938356694776844587614291879647624001213924009569654307208079403290420163038438649140093264934125060666600549239000747012484151010978370705653657503607426790391139212923509534572983872343320307541246970484127258291583535561123015867906189278064746308934910034796306041174509677486611812386425409364265253610717024173729238136719855192302410275508139428814202034381464477970221073340626438447202771054380323976189636824588360669770574361893932634421694726630684269749921185723030563116010989541786677470164649925555769684718339268289650440946435143526200597357385343107611032219505901347451986392366452285976245413280028162641769580614132075424370145779912061965888332581279889179689894868288266539362500876675878159254389493392104311679700217303795234282514784314707921922699061552305788784098976610303587175929695376702105382144508632793683466764259373468418910346699051141618901682932979642567148599615726999476646116128273053918461825545414068974376489094638147120223299774942371836376581328653802162834891692665370887190704561794875585081058416524140560003005667887339338401896341824679406929686069812894977807282820910958258521084869606374988703966838572746576152292848575558816352731593079435739839439227865106231727485930455679085041184824487574864694517045852976437247182656670370704861633558965175419610138934880029562903502163266800391246880552957155786593613549739048849639048005769697508230982422363075652881072713777106653904077703769068743409631883056955956399985990459385114338858718232247039063039362810855991982433986908349418196726621814633339945501858657015998660916167836590887313403717228933663642725443091465100543455902809419419227573370384316252299302675461062220989112886672933986614993265847175558295957059617614007654874069492237777208338405437707974526486335276763751454832261260759520477405360589972769449160471778837478297564631549347948088129280027035471111415074150567018906126009048466609942290818152708147817410283302352405831297038620567800592277913345554315494133906242549885666947084564912882034619550601121393473822490267025015001574452240324623068175656293381525889210566858607656043617148810465187365653923685200325672759409856898821037173719588200802351175786882647223280437475325292339802593229437622992082101250707888707094892042763606139052092145148311403831164264489921508393951741703429070042076032783963760352678071746262909829675086067050321809437943253257459543579094363396766551939083596839099649586040304285493900997355548154117156681699921787739712912386510415490293524487217596392776133966642711926743244043808777937125101779592051834367974688878617433827615589304702948128963010109498283175358677140299346541788363306258057039079543060840539972600518395112211857138414170120790790129687887185756880357198280528746255621652931418280503562675737256704360479036085588187399275261330148156796913459293146670833276019905490907962646762010526715611135189860645960592273880399851045460715571839280508746593026671975196010269230154452416762617038661870772206621826919062355863205331521816369154625062325711824151141255053584502257662859729073389965764321583172712418137092247856635867201591622556260809240729899713182918242752879448115115817082417910738731549402188705280910970166514422784645877481810558822412020425622676884104523336828510303281245447998002946821628363906660045581225422074211898803022596347821133081013641278764736676363716028624561173441447212213047673085053260342121850347370100862819187575884322970857322335582063171952073002365694021994409024862608492383189222518597457417993051114483122144841232830481121361788965593854975025168818764146469870112132834298392638685925310011831781828689593588006036470775653858337529395310152224124549712892064375805679306038761796632602667920586505792895174959809000226132821877570411886598532587878950899143072721503278920649906136051512752612587630197974766019157345064836630815085562762073907928067510153265900747315832478493581272056245211710000583772222494538354308943096858669559129473407110027618585087584313623923122517615656207978759397092815738177732962568647632076100195464854204594310694772393835696003780888952627311603859021809601263446075161941422958006209913895454737707968904415976275573731040430418173656620393851660907565751184330838505728595796099396032049514494975381102378611004468440052641650369776098235922050473365187916196875644622124567798101503650383780709555531906852588490384442878945475656159095570200574473483776143643134420162636653601416789423622212844894808853398241976835825380447717550793042920625202392816673821138971683781130434739857381350498486642052235728561137510298348599819710540916380272261156471238664551417368254214694533389224059401134874385273533467790841697360881822078133417131792350033352841198105987450070992221471194089712411385706557063896539776169180915112225145439358866372125655437952553873571283036314035503198752815070266487393437013629531829212153637668939867857144001984764728771851635643665668758988728031189704126806323723992097556765364368969941894679921276389593574283703661272721411585530369370294422960770186722627664581522624213257169749065041441977918304898562296497808168700556240471649839336164906773601827651760434773596674177564910551986392781386644612847820381559640075749986502691764791775957053013640387058396768391901053962608254949748682900455830965584066495790755127297725316369286240168235176204383948877460438707352485361030810776226792643083073899568019208650627305122573009604872279798547026488580780356044905754988811102586749907518566792152137926130339966935671835560474279431389299602499538696563294756636480764013305583199902210514852831472531809675250843428303191267967920332293274721158922570671655580567400781629405483603764907754643034205196874432502180088435634979894440233245609456757937281622770880138743562932197156621051802238055969467605017064132058426700342564358776912797260901650342472793796994096620635064981796393163993975316752783398261190093978480468413652039168733915672984239573774239768715155139636665325651084408810566532872347292018972455327702456144603702451629836847873495119434555630542896113608011616413936542996355632164161296350413061376301162684587134325607410423766875749139506759854777963844506841851604675252273799992056120252542204187386150335477072967924029453106043558415082466959694975887153653358708101244791534771594128707082191935966057103744791195303509957701045593025193614530066849741549912835082867175153952745851597723968108938692967860056406015941481776832225108900633677721797246005264690317024582342127762727461367359246993948418554099019812857935903202408272855250008100710082153778970473851505620970814205388025840158619632469835064987772099362036600805587920849294652124757817556210161627963088380746550821221601691135879982401333235225822369055078068734904934100672197987341056320228308750519561161431455136704765627166824877904728083298160862678644949178526116219469936004710416135465046378469135043938052017383762708799770961579847302860303093706236990677706859600601513210159378994091994767706525279935873585830885258788480440137596077039695331157194263654115893597633515324411456258243868281756013491390211500408075189918954608768922412761612601301114690897293095471596318080349208334019943358865750400007653693467696234496492085447617537833453455953462416412841309384414298950420633515051417060921382207188976812270939251981735760345562440962708211135797082921668116309312502163573812774314768106294874013501877974805645240397770996269120878747965838419998160001906811856602587256961154746103349578407838803051112356508152740642742113499037525881082838378542468677545868678834809093218185902790802187291811644755045628147942368026815786028383225238069272312217750218071536260933254749394750679531549186415634675165798163277001331790453927376773484317829091054903235675083518881235667705844349216770230110029061366129298129626734178804056047398353732337434483381733931700530327810744898422508692654533400908584168674199426935769448898680595051814354153511236972937403873252117243558856791895637211696902111479512643185221270099177900193715199088479091968462509661156123667606557811345012093793442330781504987240616927710175186332889946953431815778725108353294579031183171815767814626812443751868989351661653164345759926818782421593650634084907110522700847443311645911548083036168505744566456874268349943128038343569489860450053640921570447024532363624902478082150290080510043492021442448781756390793443930381618442614782697512258344715198696420824974540207736464746468361107405621021015658683011778699615314321558873937571389909197499217555558735626669914577205789333574860754668940530375576290915491704783926789300258064806925076006645559130107259082174707804470711381930884708244490342811414616232909467634943630847937073255554711412741865915258372908677549041077954515241242383770947286455796780861237521249515763632714702181398972788060857688510871507894887622211736178243292310191689213724835659371792508485217691645053506486999155597437907381949020761767964063816465954149881928715277701377537747845122428937451269757894016100463287059535282893453645370397977034871400920643011201925935304668124914375811758141376833030336973371745208859705358254845540882230175175776805763333809882032298437406734879316165388474694852907803835476326887833125891166008284527317642020333896402391355968668817569100624633434464274245242237816368730050653909010942606872074903762030183009308747830668714613747094826045701148777679972899815358366526151614668266355613704511103177936484058710095868461472241308966086775768829222804426415899352049355157438839234946468116820809356236362856808409366502934551416156216075847734495055112170460463241360975252492254261989414937978611290499127119749850152258246912384267285524092733995020333829418426580525973487070040774739226586848775514732734336306147579827277250043076402200383865146259144352087060911771931452869833640620175030199137150700407567761428138504816767473386413165689500863423429340433994803030750754358311371252177953967945934339637163800262845842667549025867141366926204828464572959955233247533524299129263418558157153376045250050253741742875228683658957724622522837543201005691394043643945072874488521173761605636878712051109390427796621304365419341319467138034680637961313566282250715189224360835349724401120640029570936724497714709776865620255413027886141516841441667435509864695784717136231957876841955468410297450314222926697776584329730178104846922900658407980585594018042399482880670076402845373199265744255371710146236600164932786711926043248366587505081160900699079300482392324018975746084795925712730322731649543267050624509291352335620015053194604506405625852145133655194190774155892183474226371812948654685069428506337233130606109008687213008902889136097616447873418540961923470631463475696322549832557008232263483524194663871989697751166375125563109357393323476182957316673888706885812001324747151964986023568398607274624950799993532736495412413740355782768592744081570009409775217538413321685561840905971648014376247711517572903589865796126439084748171993908314827673472000106577225198179155854118817030131300583034646897050731038421119336995716878066541361872303207125341487389654229572764811725487194012360368207292561802641146999224016655587199316391454049904934499257915564565649214002102367550949759437311707608482016094768678323011954183861608345845149254458807155547602925715924899656583881427580761568799902652189847349121277992856973604111576206902352525057207787903685828659191682981012436576460140453257531094235716208741401444670511744419896555632576964527068499622626315832732486126131550811492331275592219633966596405375406759541679882066083164580046078410724701811540598355022247459980094971179346336754551956497121416803303024122466058061782969911517773572347900718966037417618508337425504687122201023919858938664014958241206023366457316834996546003618702025530999331723155496958552048636668320331978512570055814128807039072901244468322891881035051777114564162797524581879818973554711373481441734193201553447695914240115647801132567693315821446268630353000935874793175953075787938728757648683219986250866336807258185982365035910779685620713277187285387638124807234778765712387352543382243345596553835359588969221003016094436428890916237178304438767870803536481999911253347271080103907454555076138738598064330288244943829538995135681908757098813894970329886340688528557609467862464710569200588383421933836713414946034942979590604915387857024665681200091010705841974607734592584170893514360134290045669557411017369911898935764429156478488414868976163665725795600645471572543449354313105981434576138198914539033819644601043428335599001555640272682671259804580503422090442173322694732649396889857525512590256986288520785648802174859677125722875965367642748645761601057059976250139058798061322775387181820622704186062304172643055530078908667823577638887678156581275633232926351421049389456204575187323743912814013445475268035023509421560756032523051732696189265943528379947352075762459812973071748888098411960040859212665379902247107991011306947165820180504650540679508053523002410410218028069031851554705056204483116068620414830797521608645240733954600616740330043954374453962951029637811483096689661328041855781597329568047678051487395539295247595741716918226279641414200104890383851753004339253287886556248502370923569155599431736890485644846107399815521736245212919306043190687710640951543714567791910710692891803681558352313954501543256018275085724673341824773651136918110509282136099053556132679725536788819992531909524412945815131041745717075574853720755403462204230828097013557299243544871426264274172731550871323202652706179838068654499209045728244916875951960034625034755460431342073956013756158120944842504256249832362288798933905856861382002932293470014886313522307018131981031740154866331063799652572686505392586578271851543509353507633439992269128264279222575303821883800885630937915180673666078270448568034015506942026054663609014090404241988408792820085113153295256508880111695621772483464391632326807474772931306451853603555043124447265439826568866837895541356373085718482188895657592727994513131835720536563188101136850961070129343495230912833803036085891572632128426274560074686330689610212414529153425014805896267546448355939883895641646700203130093236216789093824897621808737269153609829211810755607862996725414516130988156453540284861500911606907377635342405612088642923210425155972323303846530239581936828909927723692388481724008906911740651809504344809587276605019759045174015086985004320268046927798281940465121976860729661908979189901497519116462418382415632661029366559358001328483431465650747634279152172472988957321522347328885720708652986833900800445494116134893743935475080433717638546071110913548517390066621189261915857827562667199089604084382088310022911587133345087669182137836230904344590426250062350852348751913294048442237804081642165359058711478850766883637661368880048248174034591455098793720491100284050489144793378628958038933323737769054743469173986305489643205508404513839136562997127435231905104391801992021338307729168283774784702300728373649939942448160264308905393526365095497637930034869551959782886696745577392168598650867599212867927182011121734142904480479002269130132035685112237863375133213920338750346436911579622350752225886393803064778931785245627759504868526992066556869321351605083944207884516782524801149739172672349255477935298283787044716300019176655995430939619317525505125696779751461257495199626492077772631202827284507696994175156300618362058351345213389381426137609516070187107451636310904684904229753644766999152845549981286335508994633271751675102851300607730494589936420125337314606138788585842022655723930013732023543989775322691481369666144076796457951116951442389487223929874933538694419932115903705228818357254176930696486062420440948510588944347547507975520303009862643814799123271544327354187407419167363510523091920774557903340523505326742918925884670426695273204121896305640449182429266194363399049266265041577576345381717868511123757227137720731881175664249852178398635726031384687869693492673095439098421632610581552382313653078309600500753844206490618363448503500426518168883218034371451565420783307421318637445051135586425989482155791741877797152345806283614659587564610371194339573211484899166753477314792386981057830441289491359975387483762707750348347266151768887191688047142514058686593803867559312880230572351178725871941788544510511298060205397878174938005893614035237415511545389581501340247176928100455654679650493181199966426225560196930219503960081547712618260448088066787152758219258342902127618807431949854496690042979704361854407277429827059458313890115913450960360792710323326920428479622082949499896825437482406541727357804688645252608295946437732765557328690820238742619758834191163159604778710106718556267638156320168675371109698128538127700309215580361813582113990325929563979118240506393151314858243728603375048413753684679382200978137823290959806208867812448867852470878229707430335708488880566857710069288296402199434020426709865199688271024497626182553299859025278149978546699923221561725764052778055636396297777082279717430824758170149490831615775028862285244617553343895980637623278542348475377310376751246974359148193783045711071459041223643767672621144690860563293378624797565871986730360051942432661755528461020330941163136696603516037660402207380594348530687263139452010205132789460598726704266777139750105514760799429830813735409998025333072611812377661044782241301420179701887978636375469788789821089464567541403997052107913268511268686920875911345848766848009587341737124163906104651729698580088107598917066703657432278225231385827132052596746184287266962209883303379885564072003163309047630481381008735463929515077982608054806472928882470149784084148022810942316015460005479769233763637735272980333049536075994154437146654791993291751445815489042478614493137123855629938775090349871202094174661030885418126143188340419496696327711454588661013888623339435437468598354784508613100330605358544820404160609519235708069857502366044306272258828748649212877233634419713160235071532374188912135906409486192916575253076384392279778700310483737750710371596631241327389799562413781894456315680033125419807252418987264155062331254672519372319130240257430165902398840198038225778444339090463173325587874040603020994830841563532214930628516071635727813293336657774831873046008761917647616905721800423484783286258864223475122550259568800510125382360930749265611190627685259552571575058987727395813595805782516896628605694801379219554280811290203262941390017514637290023384134634282315941768758015750563517566761859994726136868215509805280284839951663164656655639957558584511166356004720497708035067111948894256923787418510848250371550673430450103541636651605935005960011752820881908727236166814652762895137409894319638268713033883254991657553292166477269025031505008645086478951821901323886075845051634306234879523197135918811867512748542386332758166481077662285949029926707552407551540715558368360270780160050853700669732225971200132307981223438530938148871981524854872416753860599595557977415306621963638497037869830766937740824890651238385557053871677180742802289230839339316369415134625142319751978626771274296957734223083758122584743468648850590402704263832071729236101001547563723137581984343957294537832073829665820630742257161935412194003090742424108972182492581416007259401941323024705961608939995737903198808454935834951271074338839846621825470029558290603420581760318427287598888229898382547487785398987064397259781027434779801276999256063325080909263435691456992882280639669851616525956360436728346823470610173174607468229133854734116684477886565592172317353543285527186830805072967318211039715847894479690241221094177109582027549432736977460576547066423197702705861340927291719088137949326826380452159446586779489639273758289556200742235290252388261572816959173736171366501816165442207897211357303862636805370585545654487075103921493069016668760678623614016027655217147782775607392612977828349914242722271819570468344637239312302116458961733465565638995635680245048096889819053247638105152762121962593216969420471678486969759420869162503708983241800548482610561538645776356900014672673628089440622423238281604260151827583584978546865216001109571231196617580083262823873548084326421166993164910239435830169056133510760867929763454341823350518337321958343375726116076101904300488875052299058385467565687610661407604865958248754424485406278555678274923383873884059072157497854836127468438651488124840528459067362560273894189231075300517995840112661975316825844699170467406990902689971306462969260745832435663817987871963000335467723686011117503176637584064710266787898160700110693246984199696065019162101005528461391659825357397389933894324467693837329747654383827200401623332526983117302953123989180248428956517743625086675888277341688335123638472949550593193933461212084112410584072962965192950328484998619738526967551195255383003616634018257772337888303212646418359967855204693635324374389576988569720592195786736694347904043996925850273359049938591501735305722142176324171926446246421752118101651743848855515978591511858552356758751504192069834545508404315407578298560192805887654036877557995546857128594624823837678210908359402149017622248393228878070745472828106090605015825270826792079477054423432842680775674786869157597274696109753428726273217176976109558017390677679022369010400748306166792275766598084456660100802109601906382249944812776588621431273544954342879502501792375013888256389504646188908040229601977938156920563900457858930154426436048808501998481723720233851217611056819329824028970447925779851535895709501014744403744605328644926836327751885169500108656882484570189980863226180591172868418627088058073650224335752448566014219209745381547993647065838606972841977606496240537922024376373460024032652372383902183902436352983773260282024142932753183525522943992460108439463328684863025223231621630406789826806779834113275801210278693678684126033835594798849458363578772841927706724586807419929289476993480907339260361249388901752459846728387684048722180654187774812258998990440207792789171669459307676616406106627019868195383406162067039482880698371261848622972554785245357356363691165116693492734443959985036511009637256336077799868396174022734966203918849757263244704704368915040661780098301013054494837319941856486251982272748683866399116401831439689127012395475054919685672168844566436399624896325375723692575251711767535690588438935183370217883768386848490098604645618802975610442240955877680479197424135210370479028445250133000302870521711922500932394884967739643913773798599143041979870958401352785089292449311004243397766588631531491865725693168009612389065719855238340287234289603321753508556949739064725546637031607923848492796876615389225728950793753851179787243096072837952618265507869581965862991088642559084807208318291786977538306659152091757869898701957750739709060965454094357321252341073757247191325452657125170580515389784357823269466187222570176481929376781577475777499364709279631993965363264115512975348389135433494564653044472037913705912275859167518043127572845292663813197849542344463350825691940142970652713165007007087689323726364113435463409238911274626699934466934282669769984639575977090167588377625897715374915885948370034122336774327037034412740804253933841172979975828624469968019838883068125048513155784935053436247038579644553798901235014114560385872043200318226045120062042582427123860715650303537756350372920736413922664696246847413610283769149296038129331956368829309534804862012246878848666893977019347546668839339419346997541120890629458674091085817340648110716629763928387079866395795442159506533735532354516774938536897844325429041554667987811669095803419745609297870114023321064138586992956782995254927190719207444905569206112867329962206008813518958025972661588025789297186956655455487514591774768622977042866216494512136388475015425755449296593449517268344518634147674975495826109352160139221237737710217967823727316346268717688679101899903858393296572197137312367830399877852224929782454919253220719737226872710893463221789367577376495897592945910445282448929890014254637674874970239201152229438490105574119922191330299899161767295316042028567067406327841769315651779961851581988851871850012715574364518485663432800366987808068253807830809553668618095180930174715794087920070905134855212690759559994121928870476365726409416313162276437335945235735502294002313927364581828938364076261199552339786878379242809131494570465988238994268503431746732789673108317142809902243014659873100104621203657729280987809728315357284996636775760253207637442598150311437590054457650968451237708297387695217990606780843769513697984657773490297856011272399591827379889198086568669776246026590614983140431839504293903090976590975257148922840810718198314439095797051604696449465047878675179475262000497715044304861937501370497713458297959307578065080158128181930925432861902363058735256474347966632504880783584663115003711935488514513982840010189052983963040408789239730378725557539513395295434139750375424967841328633141893700518639609076338640560210422253190701974528576367808417423006582468005397652410065337304572799111948163930290193185722862343772606931091339977266751657255165695701944311392639876015453100674200336757984422419466481829276437698115898856539199984910973997599803797765825888720594626677331619385266609635229054565205824691332699703602901026673942862674825586865465648318136785092887618670365204557989850227473362686529405990287956292694543195181793519929858550297593260281156927451918943907678968719227872430448671059348657002893447513597770453103954909503366566713981349399586374140296149601849621733967890944412890333726406196564559927098372164338888440507960542088870170442214471881984764830819568525555313282977580401132672008764154148384888503148490025400645600326447308190163431295181425951744584021429576942850060590946511293625629643724757492039975629826253501428166815079974746308953415673453613187125101503807418848970635890443428957773907474109708651703914287848605232785243460847645101960819907498531792837668981708120780986377667062730379664914335318523402210051783276295906480901790603043656945767701816253531451053639798635802135102164196160718098142356409451614753826405112105710885730108334156635930905835644939983415415946480591321074132637069903255648975917923073090242083722788999549156612224977716672945864756834273019945068952538072469966232281541384147305771901280403802777482325971916138073017786388606080357168952114761465603743041227249439910876058811437684412655026496549826271906894336988624255584523039559053540405003985291895128720705676700389461898675497431816156085111514768759823986670695823132636704993002222290117212918853475451076392275633366550366098224722428353576391289713150170358222122765005010242006332118517948148973782290707325967621340641150894969261468412663111444430993300005299794584113391553597358448796698204311992818851909201305990936434761785109696245662342965797924812214301979726606383984565672775375305520858669371618687472898626288982806611270035595045377224311815399718580562905503809796103649785002213523992070963002103816513473715957360853944792738505016147431467269960201056363760994747835712173831318491527293258123734435829070384873558790779405437241633857561225876248094922192295434865476030960898637742004922451550869704305107325987723903141234471444840285759106404119838452782429470996648497564975441056339638026489202032478912953987440979478365238405532519597643909667144183897672288823147967949179866766537177227765123841246173201511422103162598547386465027966187617154220480951185066472968665733145068317846506533142697581920794148588973562702949351150879952165960687257307151404297411249581645164797172790762094319483433585052135548785131893170616669747035817785284658502838671011442785561198575870655149137567485896192191075479624458329697980203323473173361477223591590018914829965311192206024593255042966680763626076926760766127823923295546414041452824055695190874325896756901515977177505406421613392301992399230250896098089784960311360437455933191868230817543395130641446885527739781493715304786585052553886745533256942081721858569679544329335584566063086043999982678522206040259537948131810285820170556022483651963236946299589127798786006916544782984516710695592699380868724380224108095716167121194950885597685166770875431769309620355974721610278435460274119942592709483593865838602072902891453329410788449556039166034833222088282549795214313960117941008203285303069592791597508285284016914993309330866551250989525745694561580106584781861038537809633083531100024115761137711476712342891264411906814074985987413809611618423250549242237656032792589055363336069703051756027594784179372829352994955520374747721012195882629259079952389872462204100202175253539188005267514676851358619931258172640070035955138689912111010875745683800576028938757706442618651101669868997575900265874111744042691849186094699617561760774937758226306915686358429508581909758687543449897080837397510827519193763515979830161051489636227446154367260571133639021763900706959084608958677344677700839008606990057400402760520029394547398843986128925993389658856860096384913874407008135596531086773338796861069155014894319153737234746058591130528560343589873112005227369879833732265639200353044540551164216691504100687843039852131989010881852660755641224690984682923278336252393158542686222031992108624080201410498229447533665060409505525884039248833542137152928440828230738044655622093899825323170892814340197707093011044950906179452380180460880464140492899616026202306500137153497051410401055545510144624720188762113944740239565578883805789926502005191285914810237338376272702638625008328965640375706394311318408906165658408363644967195083649387201272997557211867744213458150015859878980726689937083726670458078071584077688873227153666430099229658427852213833703728461006545924267893918721332763508633268112870933627765916636207299811758484071767442847766209533743678964020270311747752087740734998449682929822351852957709867817236704836145536873172433858831143658242349428107523438663166700575835464532877007370065324054858491412579589014577831957962029932441196958268678336413497695815276030182483035726067471176831870811409092451397870393856597853176455974211534933034436187406343497149347025161429733357700660830923031844858937695949918914605096235292567110175575474284319671349058127776847651809353783467793539142725620500960119186451339994184769169204370072221641339194925222336410100574589243082193192970797940897516870770176510961315252516102323217412007919857495731928263749394747415438022733759179576246121261432468656305972861708260091843022706448204008287513897972202517379580048184090469670886582780536156714463967269885948566671531994768896401540397131870436305169294362999528320831398724049904654550689717548622088365794132081975525224885010348105825762807626027696466803074840004453325641993240006820936074803122796988288329365604556645876970335824892325164047871516313464301903874732295819200111152436500953315522660879545233288834448630507741359664080411453522428614580685371847432258797567564604553112428964757757109147199238278122501402560861806974612207358127397564996616673813160074418419149425180076381334348699173618577705590675361415229551144684671774606469265194880328241293695144221959820612821639997465978784137723899438387542631648699784411996586459729834996954207129493281657439063817161063241490181399421632102591688376478516597470348359145000953082093630253840209886076516441858347723175720724333230774444051408193606565576932263950208147764020223475214247232202759350468911616948124559761905340596146196043836140873771249750282402721035866951118736017735478700545648073966201901313182114691631347598774487677927165562614457721449074196581203610851297500631054339600306107329801460142362257891558228357503979361364643136297382353815807520979739023519464283980451218666473936221574781618719379701372164977302664884944531347090861699899625155929984965339238863707595923975327086699094743843064733433588671624373881318865693459167650417399655767864948719550281136666085687175281334767717173272728841222170095613764587410195888166109217004399713686167184768721449259083416696433242555285798847252050623064016300257553873736448529662130433561774186755076068542608912831716495206588273894918267703371215822297467925875231708531455227881199431756043553095402324250606745627466643029564500341959439718394741620806338585988476718137761972771059820321352197803389321053576449523245621454539684246289615119854830389887817550241928244600079936767388751794052144699619070821658358115768658278957020161339543706720797866608318942766592911674736009808137621026898281870595733053380077220209789546261659245660862798846423141360537416160765022291087865903905879597580070067384931391341787609682158474836109274854261250645366702718185755133436605591473053975918311182858321686007884876900636977266299168953344362101686974587044377602856733891891919828872173223377420932956506486764283906566200400401635227198211651822567503403094284903636362689077318323003154426579760846771065974516852295953454352114575883394723298357896003684444892838923709308198873632984587302540138281827300164243411925084611682284105485434099700602139149967445212915032709242324082093956469192589991746928352354322773015390613885812526945000397487718702037119958586890922749722375799795254813140759877804162683528408074845328502202664424407586753391488811759798438218364744959043668127912093646239668410155314130697632795552945505551800886851517747811147229071174069991340676991873665182956442362437501708789953284023987467099932122990202557079000098138961918287434386741046645030218597523695528106430289648888766816755247704404343822186352830068654413629519687081912955177835670856358984461609742091935177958781074076823224414062768122004113306996851676371426603485975708223339936371677061202685873006153660084510974787923080004912499029863451861875831019039979404156845885540099847424565721335643435339022910524875741528294691420085824825682578283862892987710121634314899472932596474321925684576026635236241748693284246228393309825196136419623812429597592251232445260488879174465239728803211248979841578808671446094727271130370519385373620705961243912599852707968578475328067723888418900833694921588672842043009504416984174164341138895126811217653273474921395489153338401666926163380010043803985742713167608351009958578549148659494100037407104983961116226116596604321501997164279018804811953238587190824060756764901240333075840513265625641400168234755684718076776520426210598851552889408447876314422673796267271018344005392557915717025798528528572183877555017098757134681863512289266728510292601766570799419871885968285705091020671936224281504272061748088443649095481346326168107267772453210109390252145731997049011874541632832818188922395594327561564853065466584820389680164396675374838375483499594339448655681078282855817360351883146976696500496781753582741961775127953577903618600333607150409058715686018801364809848754243860790194537405733195696756617540783488970084294656436970664307175090636204736974568230132791799249723475484221327391436210684285151249568029342573132865115632135054192406177744488577896204416277750412086243424365096183698846960183830948159986453412620241932535896763197477036192895527393195376637465407285060299716684405161961479312521242061040125573020044596831963877100410385779061593679364095141053119626761739734169458304739871469602461420140754340373387324206752131412005430233167249135832611927695943709008334174649300459490899658143422039774736818399424152777083883809909667867106108936481889465248926610969197673213042882910051138951865413678925817814550867839723107082591028955478800993231034601495113721902208757247955063561648237250252874016392935017126957210000569694233499368654595582802948685265748290740833664768162337660236712411656967183064581529496939177984516418740214618342352599229726076074474061962498640151628787427483516589369755781640102764942483469549532778959586309575540282199561448230957554522620151528064925811608837113212142493890784234697405586080856078379287569358771593302411131965777201076371676686453433032073473096418223928965228778745101321552015043381905468653235939884104689212268153119893683647150860757254985755074866883481770718203520925880746204927370749265557902157015394751460530882831270758866945802146934427409773270395275697437886436445401933661781281788845628374416757075874145470899005587825522567454588955685467800617009224749282744228963882969533392946823060166261153761444846660094990334257364115710458306705233444670731115223724983572194734683222483309690323129345491161846548275912770494982861418368152219656961891353655170743878911670320379489203555259607123696598958870326009375754427863843987599707958697314250631145210037198108305192121439479575239157843478999185693994533502812994938764918077531683396815442759478268755246403492254709565901745547473051217384426967961332652515693943853237153204710187457661333546573990822131418008032937767557187060320089348949352032583437446481453393793864139604413843003767442852713924957609204187982243748481381494625230325880486944527661551596398231884895562795459669610938145624462857945324412642733695530599291924235297623992564092622785945384058199079920090411449848722939932261616440484185717000599820391267263297064183671439267209190664902518812567391603593766192739778915248155669355157929079451446855806748892932474522424464401113180525727762450866426156487877520341179027182651866390985140842306095063992387017082233292887642558365942267969957542969767199664562219966138828114544245273374146064434145426532315954373379542497082473738251490640069547820040334034250376816034174438513987769272600290843400405743159211683759900298239335631799860596949065582749185465468336516967096243550165531770529679401053992594643618797102004082472624478900954555131399863640143866456344409746114309204305552352854214232983024591544616535245088071309912715373632252758282784339044405644762874177097526890250726443363727087806003441217488034410335996540796063683590564096067343543077227001743542083273522165278252127101548095889018430964594439500787827427348761960535003158714625059775829783459431622377282424385976646153447546006547409134943970850842972093256593878136435185368910925477668306727019235573457961382321141185668024303349618344131239064110779569882958778323572402749775376023743063610871545551128798828260575198461638189426467984036972518548082539544535924746132421346455085757187176293247733662250342548284856564229845172394901153337904908261299590880172774149607448043403131154257450126081448643472933199169049178262999626328122930271818567472702706187960464622905556033237456192491867845517206846683225814619787228627842034840980998202163749254643040195097333753842560148304345152546554796175531003748377973068314190954598291443821185776731492103078088850955551086246954505241980802432546120363256429922937894917298842439462903425833796092097608779402416457511662866761602385620030317847947830973624394428913394834168846544009528711658887493975743908172365646383190461723507561712216121166745727902756518910159641883005779162115563648903370431723546856348708173932391706155356477771996944481076862135366331839316912420646792914647779836953144705246567857095688325982708992657764162395487382016507968343787705575579100149183372266983937940387252869437248149307030294218778217809013761373034127425215726146076309654673662788740199936096814629910413375869340118398254353409890042940317212542678698383677918937799679339405565513305807844778235135350481251230405463627786891969965798593281577639674530921338578651122824111853594164508530739100561916177575322022736614648195821273148522359029186450245129845984815534766967146795559103506722917308825139842604656315468802428386330617797765142569189229203310660709640749900564300156854002674740470866704866489218133112951679466277813968251652934693725133538339196622435348346873285970294066541391806936519468568065996688428785262138953178208281221859694790995216220998295358813340565727195041481857142398329043395166364510372952148623982708849113854019271941574149724951672746695246812430686770509895160260249457186142406627677487394964366462825500813471847766928968722164923908038661212033268764668763869840572450763827055676673073407191644187891162239308371413444806125201734159232236900183260356703028321075632916109429804338552189284697385816056595219750472839987486453906937999674904085933539990820324199048749017435781412738383354717742232185073092886219271845747636933623265548467954331164072865394534402501377194916792053518113469857464135458580661530427829734194495034205624951960444856249860007548555560300102674537720963644210716947604612525429030269887266566708680938532922838399662177704074402815928340195388007679002477802295453689489604659396539445368641327923519829453990509237180991699464412465495856721549676244681684636839129570116036156362167619536013979229362809053090722086547738360581583528083736184954847809684781476576701824877107762085275291096620024516197770220341287896547039673675185937568742780121053450566720974696640294215665083721131917753018932422232610440041286379676247582609621519984346561827809120795118794843945779889748088197348163891306471567593261332327019215481647514828230877955440149977523119658967780500393135698841449257179400605730627421231463743004761507976627109148160264718271168733905354830770684018041594608018347849475304759994747739270448630541477730235133686526222013045113173816048824539275542568409015195580634618444167785029931773553232379441514175873155064343017530080698987867749509297291074019074796974421018464795742817322328438420932488687562181105424420417910341239671648157277608567823644402227676628004488201262740079762319118778762499626798684999568065596640443245915886641145043065133454099616204012969224630562360995069042811348971740806363506383905595592172628380722572789185242733196927507564160110768916971918158107495151557393578501382607237086797865915568621582421695913499178969514253320595881003860486008595406114402376864100202522213774035566213264841291412656846144241348052228474797911857089245541725956295862097893827009209372227940620242944993877331739869235108533546499193962707141875588804425038150077403235288662058211453754528089477367962691799275128292537467284312511209798174328735167784352159878147471201202486793345104333024390287339492459546656841156923469222392933578032883221558218036514960908281069650062151220418217949027563608470595501632338661112532310161933079142352258612788804947270727109852359679116411651973567586928926781189542818789496021720620310825128420863291151037812478669744333042538331346278246544543748428405352538124462658435180813484168985073741997986019653087758636182405657812132997642339351585194760655324773209690640667900894405233776972719234045288478056265779295451674819621049553050939110600281305566361423489121171687376872994107757548735190686074083455655169763162051773984547747188846922839439507445597240251383711962926320916446478694312067702932242582098826703378921537179957992566512794498051674439543439058168906372509327186677389590286850175544480737275347917736654416446292348121973251568004465864654826121590371029785473930930410397507700534915386447163920328539337106077261339984695767059915521639248555879737009993847448688766192362649271825625012505527012593760491077756250689759724814239477589468523220330930726454343649281844826664615647205289420211993542876366600581836290150520581575904599000514247842955727038999987753718078820897247398292852122198074189626433881566152893122120295703930994000774258600816106058567477180562338384563863847993615722065925873331233721906324685434471991494158465152181320771903426368788653843792020896659125655118341908109867347020830910624631474455839612241363351371547832854244398693730651744797475926308578471275589516678028248613595586134328238009841871356770157090686867778095082762848138245541213197769945871723495559234736140621535810489563678704812119210366544487511187257460936130426811015893441235524938128428957804826155091805187176083746753997942758922693175003519446897250836919481977765363345394188781973916074535034480369868792932368394929248263699289613682196390322909280633340512886916167579266192813453578233079103624646066602257389813670674700224522825440300487931883364467754135370941592163675483899753692177503259430072631126685805804562282353992486522838123663476465374659848955479174631783839350394082442323205270677358544678966955918180824331583816700734899307070899800095951830669671544289494170214583870273311224063255710726144155505052027191862693572706667901997401716718320425573250973369509988514771631871619705409026902683647514510780237743199257416426919328942426739684216165131901643819665064332574823618504858082799675630375910709986920177397110227102110955876730083298913088384448930561802939416875053547819312507516102256013864808908550281636862085250779372306970154561796883296975253668208088901569922736878525006715259981045113410148259316723153926027732739366888514335336701694609419681287650006054465364370134559466083099604555609289284213978644333227037701624075521475807792706678062453272269049787521736070837469371885297569438944702996407477829599502024345477398766453408018056970226660661739321443061956953738782022513261207607265351705494006356649478353515624991710937505352527113115200865530319292055525516284325301861855812812141158066607717001173855063984880249620553944366410482222544311307771269548358607391558173831563658328211096815973613564314756504413735485043787356311540348477033094579113607334254992847472884811666148162120878858628555449314426967406550375624209356125343043181869319087207107227270327266216776082893937663523172818672450794531330688726757491372596924317599246623575259846082488369648664368630203944216367256997831005009961235167631083192843135698919441248258783621101503929169894812285821114096366721787029483497093591336839642581507071130937210709174157156944591847359576199571636572095385289007782662308394545193229590423455082265377876815597836095266301425213970636878912693010104283656383806104301528063650139456057991655795126720755403021434815705449419410793744359417931733677092246717469854590361527707777497551047920679612424387592599287468325367591279684509791712430149070138802044463290909944826767147868620987985452681649351269640636627788869718042968156617868561953622101877701396725405041947941495992790720204928680476958548508428646369673397864364585974028306063625183696732085420356754204480983431734387803732515400227335566606152184187615877803560902225435338692083546133730305872136142454635649499944544465892510887529320611759220207829832856771991357239386778391128082893088768403542330725138159784443388653323605222199346774616867271186836458375917971156709556305695288661991002466089397877616313535976477694169048590904252431236844490509558232381797805486425319426296034374166512355392951035266165954522593038629332564116318079064421502609485990736119847753263993187897591238430722002314619020282772624487370528244582588819350448829477972939239078984180086331672061836225551274666820350019883811856335596876073626911431493842135926321284539483378928721389631924724963466472047375600736105159615823368546415548115518749407672019547288981828050366278435700310058367428509750672432386180910733622225405990632481786691432746892023190354701159661675759960695924936979659264667172373536011042125436317772873649624058202192496484046067148812178865071369161062313035298885266698865585502087267056373359732639909783798694279838225200100114439697240488314855056258151059785489170103986006086306825661893906725780200864032630891785810826576367528480912053640910390985325412856690946413017412469604903792827006554236370985534675808962258954177903973299410091454284216520064418478950596198506045571572523491879359017063789189489471079594631606486939480500432572047007288944563158130184728339865436391931075129454196574746604659289889806246553957953229075421590309455424596443119820234995664368758582584322526341608764517501688526533365716401735642639195000337850625579507857148170526122979715301737901252894252418732180644455446993536520396629499385875954982208417796533438598013241509830055260990872638694744111243845892034877784068021585948457379431287395567945029742155692333044436357730678428288182095611238222299787893798645666021418802984403395763458294329024909807898200600313931443236815017332161128427719480596836357498284615266982330279492354056968161981911159410898652605902848149740035816668013250266811004986854311592447197012462461040687373797360515020872398718202096927833784908635453878190892081372561665843551344830778253304042803945947549492154639257317170669058090851485532699798229377519904383340555688465096353613963088317210616787849128845392968037115863903972927504465665567372904028165688199789125416253326475545927419408528495577652583175396136651659011171509926902776196737463375340046181032375625604722620090370123450456770251549447538864414112996373647813364962920019887634260361620354474980392766675516844975104695709951396409352186207983365436646325467179983234024706307675828807492093724879889059434568772180041485963896066544788939621938655664671423293508491836865096515044134886627496553026248275025746583888938121960667790052750653269881422314601087164174085970652665797854500882400144124793830416636360478140007008679230633845178518537524892985416879108957513549074576154031163778676375643306455407128186676483408610373606416310552813754647593586307683037371036565007995956342518416435724469236898701259832729264010545762900493891901166275866451861931997184168349827969256114474628402603710480430651033023563665937621215702675688891748719160179644149167683126208079503627721115415959345319520006811805983750422031354580488812051040967802488623658886849986326285541479782933130629318584800006479296422859296024197745909914886286895134224294369801927199531391668700483825242681368263848135958428046986399937633982430124331915122724907078156039362956855823498666066477062810779041587912016462196855552624804368059680422830291427201798243523909248662373853286175699611271730198339167399340501805171680762337900934843251442586290917836932671951836023343465554873314513037235601152179321993172052776401140684313296811892349020118021781584554509293800749534278928758711866350767067487625703730833495542424692544915878864613695373045435041253118599858439340412843297466919002215180566751475406690090702325105561824442569034083674387295657219076703992498625958942484447411498283023808297980987458998409756706213664263918720323593411810148808712890142326417993503636310192720628397723142490426429768850940623647320015183440902059914998427263647566805388411339072289543155418418106372899764349129815684420371275639365660915491858326828654963098307568607794017194547127484766351655619563556061625217428000183713879690321439348299204841859359300746926570428625067483427926851066813189202366667072604426842242361322979159683927356262705332114294299371107468758429450185084389987295076893526125897080660164093409984388501776353889985661656322819901651890350425237550398933508953523898905555875705220903750607415379031985998277578189648876249094528451138461648051448225246724086102845836994558288562029585559917378409436102078541915727668960946873593750116425694852190165476498688801437278051255770349767770600151730160789856733756699001153462509350255654030319413657653316278584018723763621095029402843245703433845512350480828411349928541092006459381407679916692504928411690776376432884164530230840919109805827486660078382450271084093101712725400903165785888342306629645139162376592950870527763022680994964017149615594054125532763338187817428335315614096806567867468707663042596309453413173532701230963093755445583263087349511591135822967934916501259285209139219892620034355568293357332647101580438562222233419569372430757319601828437693379946330545656085651188503744908654093627960336234736111705597904839644799871607297098715911137877809515855238702793179487632965208255605519101824106244507077485016877822427328227603914179933478399319916024931594858882308282285891679103301416162604943125318154246711649748558186018136983234911054025736725031458703784961561908875814830174816511572762723528137052261839222442189594430432656726214121850141197332934785666754944798588649086633003199925905115331777513800434401441235490811334315028307028586002316157863191899270319867529476347700979128759144902906389015674636418649513240338612235138067915405288373696761592093511311164976381369845402359599275492057254102235426638019903040353682053725614559684724681561340230337514068048501659392450872223256127130404603976223332344166021979061992351118137091549591959499444301618612453167030359642877083835304751809759487530206205000159118148479300086930313784338380438539618960392452551517563142307748661768625564428022482456434128790242560337200960594760850832037599051198950262568179261200727385314186873047044045029412903420108631831634257248858264258351056980791263559939601920892008618417453880958350767893447712896537289487368348245804959377190177771629432381238174859572397616041188426237405844197378246333679347093348487326155352200816690110068581051167859911157536957111123065329760521656994596024569121771350814091979522348301284517225907103582719981053946638486147455734914079431744383281108968982565747147018545328348384880259807025475549796286290430958785624502966517316880591035961436189508736500029823857524908598695682850811766877054511424771342294478825673339705429593900754108754945757565940580125881486205702843450802658443981234025902246912385853409686895670587669060517390196908683477573648616148765845204186246652880507508944873262353874490477084545641612855787722367226794519293138237839222719955470749937657404735441162336137334075078641361453465149453380097993791997888374556040348185073514459509239856223259227548322764213902218097687272728773842329294000130197511203841128955910021264662494831753926786552009154340817102582741155414015994315465925804339872971591771288374124304640834815112715660180870875806553162460395253442795549397601666826415855036291209319020620079960942432365970477124680987722456822534194006839044800487669610938129552757770126678291519852470002513351703467435419751017581003114424497258292535138619273175330769653620800568892766663533479990110027968121014238064535986521243258396790612011531385645289310365591017392548305933298616441997910883703532827564627559990705884185688262550999848922749491927210476567458512559432413493048976227245447062203702380007852536734400263859135017776601082438946613433313947370785425561039496184162586606182696113903403624100464706952992142795229473839042617921723999712895892572481726493551551313501291625235603024143315908259470269333835821805006171221071326053108114344216987633216684210087362783604533760762045505270780975307163678384112623261852931014759743444629937859492187489944989269976231526362656698889354509951395633045743271949710309251054051641500906174120861359752655382506619922647124440151056436634772778511102337206855701375024336909648513872299071065151089793553410989126419026995030057830203283640145705553205909833423963839215347448965356559769163137689875930427522587315555693590207190235690100686138254170235519397699872296328503571437888194436772208414898429623737600824371975233440188122423726127003429345416307851752192190229431301475386887685287048903845312444145643352336761889157922262095647356373369337498382983287166075461142101902802111998218105755272387979765556200217281501870725870946415883441532620348474037544857958102382477696462696930970297046657801504277984138633687909104088122210470608059412087159930161113016779058119680504249403168830941174643226249188613625649904411830635846037881512701418565582134099592685306093809513332531453723864497765001699648785643459165405138123882382738390923102247613245197078661421321988624745067149921747229834565247610933516025125681640334162860692214339266307788944436637057919115650954139422398064509398113394622611719236331955166008955328189994963677133550282021371751359154061908713217486303618155645277874978831371784509499157005066631595697526303128870935686533269779604437458846497380583080129541921042103507468205609127949193547581091116379094143906131384995385746248754467906183913469913844639248493140054724212057863965474348640960658824016292480380099467201946778028780239655789638414795318548522006307633215643802004817773439815324653826582450215758812896148172803724701456132351529063271593972671298382796981009711581106859999490221781524880620024553669419153432125228180358316187850915946580758320919396898545146431342962215079241984999779212545813699448242978021167941921949535827688505229569081656019180092615605548239637980259077842778106160595309819645513656564489160219081357683618318533007430309773774306192003863295862229569573928079353068347424354379046986694037198288960960826447462458778225645606351192137300846549388900497843373629591212099827971253622765668325824833296187597915129448811585348344317293914816773684860233134694890079289263364951354948051081017150918643783184127671802120943310137945840337413540918814616554274022782040255137684082826694073999905823112577753246239632968415857102014637960973851710954023959291826859674995357877666361607509661612993818506605105406079575175327087185394909060477044524981736213449299569515331266983349300820672410198472445130854508803427996586627185614132163808120102696286520626300172342959217783467463762334054760159581970200295479734730828706530529159956366637200896679878783378034401567721181275768893800975522781527681847909681836199377228683745494379021916431336202516608285410406778077964856073055071550263268939904515369664760029893782346612545209649266152686180522195083662889185254046841938903766365810005286228592267277320589940519722259082061196001034549658637011083693101448267856376849552413785474546242650270914694968289214422549734899143819258108522120316515865847960466174015471113598488214079713279386455883665452738108299997328405563166792822817046138900573832856970241915485184457407941002300199702965771483882561462015412626547790699143177986373194514097273826727215709543350404458813973975540389828662985153834130296550741597079892778263496947772752591333458374479405566935861087591645757211744545199326089890037288842649747701615774459559890446410308774679839698812120239134541105602307133780328273441177615554507195409689617647524449976826338049005052433374288739319011708857549414051554497251826136842092487854288880956079783383806744097451174733328668102485315385110740929863082823912252539866345196721813300632291506348709358459610544631412514769173872088306146604942324290995586192533947420259956031451482620607826330112191119831863106703687889612591226495619077528202901836471246982069540688506404222628329223580520769432517064201612751574277641929726335217839218640370186382701501738965663467378742906064065978456861852084884657659407158449165821573671636698556380976976256129892908352800917547421137273437854391104529250478545925447816753937823627425920756539088257488145824410548849590845098142031455731152681934876914301854333749069102347033369935040077105231093796648670516672365447556931532564317694759535061817119171732480717271337482080883283181188954414668333130922262028460345627564089885595929061704549467957065624854074221239735452256198239186369828301159029530978744822904035142798572127321881765702569622134862420565232842443864227916474269579947873904463255081670681641006790552653225181163702840110841381218595431609083330026732556968650188950832267076763975349526878132240250798752435213169173684850998180728737001587742015216549089270286705001281764202273629184242533693636467445094530155027352011144581011760941144453365637206789429049512908381515890908318804038558745791749740911354741234082311430049418078830313542431959927587141476509379491893209324539573410824686231212039592383599531236777148791451629438167517452785288570384528287212125076215703853345294263935258392444298370712547705439685466258006902496074498989946752934354115608648210979690076761310939569312601762405017388517753668176578658664848206592192628120520748778612203377616362720071277446917557814875769717290741353592517729565320372162361577923531457927783752303658823189771791052978437808065790547841922721297562105812183290017665470492327288950010816073821238459557901384015979329124472099204520035889985467760239191304159401934659598422397181581611992640479821563707035206321547582481971646790538080833588682355930903068443348500426605275818810626125871800830768512998446141446531343496925614830459870600827055822721871676034234825597601757107394294334867883024008216785962454546624641754009414306445285035859115663941225075992784664628848015532367680603701688825136836380128863867785937540517269354386903060766720426888821667485647742349938461664474739934531068248906519498708337200890731002168038639910391360222031689319486547156717918452058438588880030060231121818823106464157360320865796426823830000027746616662432879636572277328169226712622289145849630240354396403500739534601159618488810656930965309241520360067847178460361202775216461325414524264770623945063904739921978708274923582022736111714462867990175430462171274809099685704594804532945625174490302653602377361734778317435584985228236570024766292571723523121703614520350242444871000537299198420829060647372067657403132966943430215651381393167826746264615415635247579287904134636754502409056901114301972026097803595605418880998648241076549559886035996371313379481797563355363505826088578283693011002533427111944272025933795939511435699752406846223684783944414205581494274851255008526993016557095983484502028828788384004626560409200952096955730806212050491967780836067609751929328152058377952223862346447137220929649630598897225871330616571336327108434444215853810791746100674080938314994013572504484412833950953747947088895567340902584429521510427100059017170026526982404258629172381065497936826697423635843986505746193934981630474653546299763718350167344018752799755156654826849486052021707409722366818499675933323672205508035991665609381771945091754392135260284535737038317164744761008991022858092958565797704597272499484201087349242180076292514930364321837232502142635295869923364793624976665244176894089014190252088864349245366907593043545470791203980431429615345115330284874935355942186250084783676067073698721089662102711304763790258391435295339254428508606527091046631031922092825284295205268458069868620286058871993576945333555179705902652524834756175511269815433409016091562220207254453708179840637735355221235749808892590699065394865973585261641134846561309381825508952230505823176427683619230284875128982325057869929091049817316575174134573173814751814736514380697889136183648469290298875751791373307647979548287463547656660141908289873314045712345687183459845445577268491664589780678383597869110445649978028579449884172616812471626015098517443157375688212258756085081931863185637250199472088332730443727426431118138155613681166199034318853020642443161328500131196159576688735930476628323397939530238365351735331622245199832003340319124119543515011566206073176837739670374098116929990209731980236392554456784999771529758766849508376236485394619912662852953837956201904428240937955410364343560724831474204817902840050121746173794896453272820902640584597795151813803516591324522569186482802763622968779686270950675178603421659457303554044827552279890197372606113995794427566927041403568671207944231401825359049018560384528118626531681995794736297156558908966738204626026975768602918319686141588982206051137868379365653793764225917198584150924290203683881840235230186937371726008096341403182575749917012555419003058989162661176678568273448360675365962310722409336051305185092396475237411403442264447158163782043209216653167246169215683198689149925734033043155218381930722742425369052280027639543854102369432252602550685714536798280718116761519683113736279118866227611823919421111878645351180363249866698930680203871789669933727420203934605300907762437675591699220462685988508346118644845245828211018238962985338847560188617664633479727768266584874163077634359059592563803329290331829739331654832117444511677654530057554877757364141471465006426591286780202024479872871620656872225876564663047459381222874594335329853140705243226222001829181352340740152571452701932072140942648326158380291810473789338099025381471546669203982929706068560770418965500456093854696634609944792562713794862871133651724746467504246901356496150012211699331326160369671865163690877458703640617401432030810489627101407353981339700286628892509216112749154326454932925691476318317447040964341771337586251746417892021905551814020171639627781829709810612818741789820541779078741045226064174775380963059376703104293201404935335645975316373826998210045171652851377135101639116929887879006810733152339005022995435954083687071115236537330202127445486373443276062106060616790441933601172740845306737441958965776329852838948706793154048137193277998179516147684432151590567361717531007052505497341949149227847933474075678336567893214340173899083505687354052224300131173739085904057333033769947140258660366150808349304038702871674185653510715641010679778169770235619664850729884641485643978794563046802884260371970664665949538854290882273486307585136827276834169522922229111231860935535607309021975827258400761441584854305943631104990637401001474798581447066267742450700665339435421804515405769914090684541270199040988694998900116539606933097458695211080191611433920677387485573079016110217613314506548701402192684658596310958800529796093999738640360660337253201385747752792347810738500037648151457542917073037433084324658904682646216592858605858907107359075118443580570132636367033294311780773567138160293439845814598234754382529761133437923371079055072975497298258246370659708507809426654784436386045821787411091915118240241131647769681142258751270595604886097034037162145765152798523884206358714252584468568492889053049790236647097979001600795125686594814087015056624292322389361824965476720428139739781369225855356953382882752578622974102192771152255429078238842827720337437367893890568351197516594132098125094046398783288468628735208671127973037761519787236325791815197270110722908016657282164877981777834340630146762620787158362222031587712717090184973381549574918381811314982885369121620081163086069767160822954257931917223601762325735685427500305166597891027307203148921953088449061238759008973888054626083309031115698956714273313190432583779291408742766174054020814063596614996339192754226856595699501738782326005873627288201412653671889287808450549701307879786908620407616137741038821277409601605133007478139611958130963302420582597628280615281516431706949282067205630849821784944898537309972955801624366276790515943982227852851894605812220601340726204930480957368016121303074861754646036865354352189249633921359522514077381136003960395628446798915563512879301149036240316220494561671741097850079596127780877808723658761169002483653210550867865458578287513264312058906804925633887312478443137725190573184440139312773742519642275350460799028837115205726333569729650883949748743502337798000036687719351336011994314488259210289954934876603740092788228520059981902891219996980130919257798755204084268049587495395140477989092935758605428056626735672948941595352996558037317570696692902115413734952127913076880116336230569385745577409113760709318656956575642584570641432167328170223789901150582140981606846095840612958049863276553760233137310132524427601910868878571968439213666110106867883826712820594938744117736160243020754044583253494937884328445160810490178720815778880994191626280517021646031604613463713842676576360431712926844517693940202855307952432787559817441731158853837466177146392366696205933145977356048579974734252365170632752460915688460034468823780755539740300229263791610535510932268669770754418795573049238963250472809952038708823410727662573074802405326613790183823273181830543835238204003824248363555988338950688134582353555993903559610050693508132956803570872386325005443820844017780546935601324349841546518020914807885401089076237485137051579255793575545792383582654336155839086022579927199243361263818900818257108494283292422174444890605798387983119902467953993805566225187793936313088820919939157876505732544595152679146295144390964585469290623009885391448367812894548237242637749841909864643971107700860466464411175812424147971525731990373774868172069376115160917997797041526762453086033717780989582007088240503213837310608162951665220290089822893322222200865300700215207641323265484106245308627299667355446944729714692296904153424009943666598925124558377945392429399819064903343041233890628159611052858828855854516550851129840328861798754237521179593704352169701726722801432076289089382774156511089605558428776209705975799802952147410963872307188143443445330808231463875178251652783629320910703132315262190585909880562959320097623045459461964779475959830735198648290073902801500749089923673133387838168635535952448204250693899068157673246753864450049476420086494885282286020656921105862394310723560302490938480360408834812230516414470205514059550596730631058239953135783869989338663412550213937950647397596720728437168115212584990556645617652909271586808510572378193784397634225954747626329046853836904857485344939727000488254392505838841743624422089671482806977101704829505227550850545320499299179304871208322580040948990822194489537866396592203837456212082454467377074182500817947568947156156401329991463224316195369057610402015243130746929195693933246410593950237333201447066247634592376549239730043712762313471030262740944088321140466167920265623264002813813318068048818733422445281337042814684550280329677970802440843383567145327481357605064372800637969624293726013825047851794850009560340460611034209906338511386391717092496289620984068006020001947582291528049962373936512179601213152430247506368582816178761748807909339147135958388701968893176060220792570871168063143592126978006727117036852255363905494574863052727454335118485564853566071601571247111944487506973933505374296475268691085993531283501093491447046930485557451375936141238265027971801431239859207159610656061789539824581032905095290814201798741701308604634688613036111380017820448595634686036726713691602245781788692703893518045158075722166191390175568338974095247619975798328788916284004077640955328393875280895860817717899830159709897069026669934705745290519700211725678710614165897672157175305076704175029324896671105704825229425474771918606255632314194649479389883467093333609420838656085679842151456248155988312508851588070779135987878958140689298344226739457020011795353547197905478206959507200919298530593860640362046628312219405956388393492473851930131290489345628264013072459670365552719414074305705695325408451528008920180695942310134959565263178062501852873117851114941842804505738565220622628967490044222792441980367498430173789275953670291736793140822197180276547956938217427122890765353900397428309986320190462124447241176088470884698553224823852657377874110486714967094610774641005486178470880072708371065474811231489090822372577254837172015886674775438983680631529672823220472617431848488691321332572764562350712158874884672213250593357332305683601683208736265641005481969677055061052881462339743373376291412482649253303139952277012565268516696227378295876810879724050493195831353705551264391270676820275699799589973557363456293892891137293502275084258420155738581630761989670721485804157438521879994988211776852476869033562590845269587623925844663380574264036426274265803310360202931040233516455423190764693166026251788702921832198180346931898670473010930784405633558286197544019552092057364657798200836839443870797770978118650243957137817582548728275606777992699594153565549110019530791709990329905810904518343008104794287089785227476399857464383481112939197092828385069454365289692985657494935802914913352556519512086539361239216371802128251144673496837131362949180627059989069674692584784387139714372619681737973110495582730474319644060100817585476102284792530307474555420368676162618922807022750868203222112944046561874788613885200948541383401919788254474940426655839458796512902503543908407375624946276239456059882089189402317528088600859990309571208023047296021222040640369320456969976415307703779273024486671159381692502484187717531133520379026866000792042109654767631080581890519488094211813316698586972543173993660556257969304713933956913895946252758084341644157301328817712146580717527874233327627267148156260608424477554429312315607327424082995486585856128412140224219290579613670201089145890589976476849713488188984826288335682773873973609752445309420340595606191012040751819573029233778190697994816543243195369875527121702502000645768291090642979404541207722139472677355232576169857984847343578782730911268642214898837677713228747161295854837192717260511143967356101772161074380966921047497271956789820003799919180376499302215254764516727369334142794007134368652606114578278574163748771442357827223415550994021387009574534208391612002244779845742188736500033125142864951883150003636397469807905271635920654255252269239839732662225795343776557210018133333892393447971257869008816783761995418551643400350922099531758703042450861081604551882774143906154157648419013152532670389805686123256411742439467853662649413561051340167753272317231604940321042767234384936900030095677857265958248589638398925257558473610722140148242814840231518175214603811233857612499878200721042368320262333204105390679789315631228686521435185935110129403112829195844803620219256407234777529434458908357069242180140932820561671409441609660950226615831694975850763636423587072522162746969735450869653864477761257029970935646593556731710557664651748629568393573882638109139173230016299480718248306762004642392159578104765370159038924097191816156587064745740657478309148178167159720687775068721822719008847861594540135007373355735421971268968608969545191432132646127653899586845988964181528038210920968399979295017168285660727088700559571712650286586424547026454608802654844199358664100407835164412345936236557578662663400399790609564574393440650828373103080314236921132670406848765615322144678827592568492876093333468468546170959066128772985886326031143917987188016228990993071953452631627903251827187597637928463815878516325547159692887881364586744535441249041971274492293795191762372716927561851803873154187714802378521559172344014595381598320431929098264434979652371604071781531131220282271681170620297451565081045538452703497467677367600036477145860341797669177856752265238423405685565678900678760585489326529049321863414841783270578765290669531855133514036915836958159009610805315669772807371464467389085203194811446095592868872772444834847368000728677191931969224017201594238781721413692854268678499508836273600222958242682312599385612742710973365067791317700951002164426730757941110763033650012138820394549858655394646399173071097064824542205000629323841517229008199671620008995834840170726766629957996956914848200862967936430307957879986485640734029215072994475417838639335973073988058004749161990984413481604368593719314308228272707595289666681817198491864817640450339882206219627271078722869407851355051406109026800563682876869346189778754535178139925466699032666258246687413409327699337587347841605949156457865902498235484006124725644094725420009139682742022380651477195138498748294132597976231794590024974583536310147401150272688052743053206378848984671368575809324445415757325635622238184196163023578136730548147042728336392205183279801172845319952943432465498204205136927684401594789283135403142689195978004358281523266121273149861326833239975722011341384655398543683393930008340207038648124189599003140178475698115785734916741003705225762176857806482788873872855724843257684478841456978675359307999308440487199117108499538088302276447962581592036616130074044532068181224442206308989223895322313755851978946919522353830341085305034305488602883587041049425249685183528424882025839036936323077273025850287560221374609126479343624767754816692059726108252922912692265084576411829025874986264971712960979351125013613725636058340504537936530740041079076099289018868952723491894532358521805558765594350504284996850052776013363919996601160126885442763179226687072456664635815422296375071700006672197746270966985590189647528210056544269324913839400700622707926736620963608578672071476573908097685269270646985223306423682781425212103336983685526075829457699407815948182282679932223048928950431265895488908083919862038902608768416215494991341756519418458449500699532779603441903249396199058542699548568914734988642894806649920682481286825271970498078122748215595495900443967616204291142142032936989906776350661017716971870392502977581312385494187272710920135728612139604763691954656226758834656473253899256147408542419657905666250920327343482071829166410002290148263715675200612065516892052881694849089728926579398660333072401992539213343110855961853020572746920574854293998657624629314406325123637193256491616977711951832456202812699831349938512202155806073851818722986163425456079376291898730220312771252007445246659422962608024068001693244141132818266308969089158301851947496395151471824017897376691545422143498845836554298437376249002714674406246481456166950403361607674495598682983067162236881065368487395642664800046899695331684323781383213650631333651827277842799164296919291002996878869831893680570677423436173521631598962251964769310048633945418804955731858367646570898168918391767342662913501672094216084368437811224887265028843306541101500505573489127292815057595688999121127058226798560489389174708690225208380826605032937172791802659468585607571009794346983168748841693023888347348888641088305020043427417016690940393429794255232382054664201083059806862933091892410097423137422919708439328577202177990182381452488397150817677858453609037290317922647824620590304612594705931852773847307414079719246268436164644959445983323251835060523078079580738212549114056150545380022799248570940468658885634251357420656743002611859441858086346662281193399009801755462957941742534270669656810607518058938648529497642674951808359543211117023809637573654022785181704380789020507435186598873590233222479215436313656295468151623776864135118540228492003941125090762526611752480508548145679138158568974398350943694111059429243450811339636718869969635574525037849337644737018217871144693006245995611117687795715336558647288707923450833624438496299961732949993205623559397935513331796414564535319472082441159192985658137530086617895573377531888240988989645579814086049405045459706973246549611608745454801003255307765257285514667405524379982385040371270173197099012358996841564318822410996342975536409840673450829761957498720124915192637853435977579388861334297766739364072109472633547350887156431857407744053162180102334926625167692987723619531422548793141742943459602388240102671248426201302671050592681130301484470822050106785116031225005550138658464291287979355453569767826340097697304985091416046945304357604320098708533061601114302534137319492275802350390247131983805418432100618911608959870061900081805720932793934372804203715496952667004803118138911019242496250845163472319928385513380398229551221865038050492606723847844175735147587050170053398878609403981103502552218099918073957351003677375264598383549493933234941303968615700757495206445823040325812130130447055253509820498457978010417110870760895306057487912817868652674251391161415453269754501814139778163450014386208433376888939641921673926771658928977334179056253812794960044722242420535325575061955408847110322462476570078644302895175080478983340134177209864564526674641561677913543576149988768481873476189531701030777058081731789185758041216908215031794420836380536784689970251359910969049896888798863715916323330707157128324636444927612781482814796183625557048722798185040645169553664305605207178677524023271434391017644863069809955002205938539046641558439985545405944018505691582391336097318031632133924225871508576547073255175369291093304914557106617404310105577257999361019650935056750828899898423162052551727817108881474797896599499468521919598838506158846836562475634588411271781260231593363475585918448002864222815980822007064085257545920949737131801035016683468462968952569469532171857884238952661357073252488571321473009685747741738406597167664777769382192977958416982959010617778475488001461331208294352034942309992166457869623301642897563398896798116111317242821242556300603350721184921082760547545629233993862185348912607310879820410295169976056140064972064154676868521627904625412047159635465364964706256351884704594426295788277681370591093601086174435704750458032309378124729184979889712279444612672770990540310817851592226545776160371117406876126478368239266859985320361230161576788878712706513346744490458966304234035380189269811879748101432775668243134287847390380566301738197261992147377909641105468780307632490114347619914336208258295335670855638352385954314525497631843181549594661560944666811653987966157479149589341925729773858437468124230943533728732661873358303028843193696236770039731818620877793534060695922137379038271673673374841022934372776230967671486744534316055898377387117876094025127639586615263924998315506170458292074507245577691209582657792054173923559675457739157629971952244142820563466911967188218904950515170797516146601549693244232001105397877392933561431205837888832866531360283240530009095063629168003844018803092827786976889816186111993603863545506791185475196775957430760235632216641538492097216010863125343671792482458022566002574322476938034201033114438561103451527366951495529271107926921344640490825717666538589060869105960653944310437294306796877459862451480711198652658325839673468676661891331892319176689249432171058618695529148133277091124385290727906749378683048909223395540982141800219059951631859085573246913781548763702878770231338577318614808432367464157014263804737505398307130359743142034842081045673582349573813025126699402891675786382809977122506048306693795915524969444439924526290851837607622614619162950483428526791105668784062332405413891092058976611706865830672749419216878367193435322077062883484920749031592099639637946650923800384204847831936564666986596986173949356368007473565124197622579426401916355723098173647485147307596106160032742892676804012924935835781375324354860350260673488007143849019314738299268114895102973465221809698224780574673645558300897805459800642026371503074099866993322771614083701122166579149754657851977845927714064370896985143913691620716464412430027739688869099338419122547171524576344239582160634389082210253348967901086650175524953943063460969052777368480814836701545606926626254306744885856876375599673991615855135740832924357404780119826796494652357210335172631829359620088804883507576795931450816785168961821619091072355758794280607440710021238432795601757507675825452866186378370024320500079154899936931861824924153806327689475058302176731503787385588787591876226163616993775832555576076832609196590791074727122558589678116268673946857419117205569846143315708408627030510540439480882324197048690801104253130846050304553522076907416499575304228023666103279032290817865439182214653959292820123737727997733539868187062287678195656394402963100020200614717448634299393504316295303869780180830369683826047096626490333723483780003575083071754432420001727666712253441497300528880210260458771265623870461593121424954168416015413326772504757184574502356059135323401816337167394729998763504420556064821543015007711538218162769683872609999533152798684187866225166906693120315100692901963736695247050830142943167435487967109282763907487587449808516449302572981517969291522355928216813054195269527724384809833930061635017983777233779089528407903482414066138905106201620493173306673321822786741011487972031813860618035736560570533334802578158165865113741732301089943806005076671703063178283589206699593018995028380922242390916056355341563956718287737948820656655376505765053776057853670333453966452334084856361758435346259910709050334890015408921655893929105778303038296938104637466411771009627867020376016457444822841322900531061527157692040994359648061231558838216185818667206848782776756215867727610973752089881760015176514167071655834926028512664592864149427002307929407566062143636910923424001450254838652727593608137762579904481671219649202076313241166968343584933765384552028196768900884039132739700026785540067004885971337637406232550033643857885879661374453443312011354943996126006362649721695977480402877463192977091729995669301215478959607047615331091971457199889325989025219362971253205792207124182566579348717734497129344277654805066540889483832015011277992317215416488022239199968615403449507558140436720594686175375115371296996960658270600930035637227162812499877106308217048006012250343984880243843829723113238383974485608797833990755270770951297810538700257542373311254751169974432225563352209821868288495024961007459679226700614093358951793067584886385010637377314913004308495330849449813106962989213756675500720500465850957173853460137992943128620290775030746588157478640986212007149294888362498019348120426419803068819105976429830807124942990387915682092994322482754466883942946985817889506670275701110165130998561233462121397147903430541061264827922614759947942246935636254466167843693200363096056483681212721950934467107261043918751549918836526231018395688981062905926976246724018568300137932558780129316337959236229605150212796734557898831019636037951114870073707869431539675364488532257362306188083894616439311650524173891270891400684406733576574046372053362918808084081205776808060413671730741484702110767530822850173630749945156387767172062617921068062594015342017693514558230682766378051146716932047460839035162796121543593809444977086265855521613533772600059119236263468174432049897349607965919867613897263611205519306940170715141383209294238045472860068162401217459261063396230678789587403396393679565106467631337460155062271360084059302628794036161799691372437500743559751425446002918747400347739957559380308130006782137420108892980227395253551273846757870557442825368351999502908604891035992700567856014997398369667621143007902139954442834511738665898485282304624275935982216599845671306293568614630339868804514440578725477001337724439667829014970257804015690978982342565607871486656431239919419388321581849281498639709206061946820670672557181275647756056103150281673661953322667571670795224537172847121310068889772588716366945506590254273759506041473548967330992739276198591224902545157478423439991522405346939414060149347857060041944573519864001516041524580897074799071478571050019325850377596129187420081979953753343956504182528650973649574992744267457292937956735481895434631740363540476152715800894732455810415661634635475002033968159924684371791164359885331703276959903080931074461447523737590274087146927271408147185356663393505941371501419988550108985030317074911370022602537381040495432665809789325094967843793139176813776711383884282508091849927545650108935800545125854011460759044130866014064248507180836952209299346484454792495715215046776425421320203571400895296676079605178244780116342822649504779307139471573779240387473824059750876648932395140948438792465376872232605096871159000661133754472213653725975801611855845899399131497686133477021933177168847144151563719651016195122185943396960185805682786934128525587752587571411182103672350006680827661195237438732612896704150100340648830000010887430568832457165078586002913819357124409478716091182597737731607739686593031543912371980280159451724171527459721383546601671443855851323026397994395680474453729027918823151377025158043100304937549630511643150880394634696192922707591727095144911653335108168456138536485261211347140802685620835517961091215978070691082009934192731263092200110895519972905389616016017737060344195739172967317950574457489702293235053361097274465477726302135117901748372282745966946348896627647623689951544449395195376522370803875003339300569435940344203927713590440194901549406419247597801283099155985639779051669070431489347987304203897998588172827112795638542323339495948967696170023030500356130213802467046452886278839581588494681420081080328233042960671650208006321644673677781741707904172821397946389249036921321755860736707588820968145097274410961969716607019019472400058433200772342848263518736458172696360468108510920792884361915066635373727332369712146650846278621563542990655399854261214706339764615690195503203725923314519840275371352688099014880381657578656638686617460157934012634756680711156764004344627161613856211735627276544371371548805632225472445448581501056617103658633550848743307156884441070806054438357300224824171159137915753715251575099343084679711275973144607196894646789112915424040455260445492420822537359023717016699777682341022358003492899400542515278854643149998003355273220226364619356462877639101900467801542947544256364160608502702376217130425339574094843603051269185245264238959241427250879274391539236288746619741197918457277623798148616795783446819413219978651825749871028507870900256614710583011565235752041604083246095009738377803270883167365891987624389286632598968742647531115913300921384726073597478619893027220233131407833554840759278490271037268116814931306149589869326392445817874222602135198975782208806523671585002140004439479583491323489568489974718244122982513486838678708605976454580463637632403951795721582902800332162045971773147438710263803705766492400566881452566652541422617804714626873308208184831744256170862700759269119944283435210907582643174094969921620234085055144595676642424911168779429813018732317073280933620309709456446071781033471889673659770407349941209301495136881049811685592789845816405015015794678327838234003575776850504032965894724540342253889155676253365921596715750725649799258437185085177309041209118999038537330026777873372973959926993822464996658590461603097457746148020911316428945095927293780568357522504068295407936895985222070663108305615880680425616460831118234255636705119990208033814932235789712288235442561354913764368632202585060802675744220431254563737287037195337313054677736861350998226370302184400278661696307453843220635986828035828548667253640027025843671440827560238527652085063795455289314630313943477503519699455990368427538193934116368661672580709650169626162035958899471863478588851562457381140356801176885282069749804594649855417999762006995773600403862402863162756794397534779499863979274887790449716995219188985744359902147681820365243783925776306285151539630656908870959690249983592089338838953089753734555910064965473893372378717357519096181950760619836551755387759466022713024007668839452354419439366541708373809955440468105524268213246557862356683507691270388995179934851649488519045363984678528573293229280332878551425907635603643436696270032549894549929475829397095046159130061184989169700345463932827148077277688083066706549161622417619265153599236191221593194050176322276312227018082147928699718935695471096112556142278906177629410503052275664801969990005937971143638206915296902441748466383318210453203841725150367575505202692682600842722360461774589992592604993519741001767711117568788924516981237588727069983849604347177061956718943339202724118718558563867966868754135395280044639790558286872430831291119849283305194738450425967046973130364252031924500379345961970516129465023306917221595589207783517071146810106889946170331639160389871757196709567148501880689988447881805298672745389276210487419999870858156202429056966661415950869794973561726208554003356471046266774369123948567231755809144257915140942657310964643220471343091869061590495840207281606171485691311798836196597360026240967595916959566734193112042558847244004795546746581809965355551921431269234208184455090487270927370999303878879883619419793158379510920530017131000632675620877134108870578013157618109698157743086832326322440000769664899637541788048268691093561069744731171675621423677654719687646227728281325073158326319360103634540094208845768848383068113050658621269116690623214551674268576442732369385620039091515456548248500817649985746082715857193957574369545993545053173300185682761339676141798340953640860171779766716107664015524383656986628836636973565092080232950571974632659020151183535143339707006490861121800959324521028760291512966740274217011028977682798401788053532721063091966687607346442259154706840884757699590664030995996723370815449456231584500956490695726909923823020014873529137969397543002796906579108958435704968256485601839627996326456246545314163194311815374288020638128282321039268731151643131044894562923147577064862690723463073849812077903054178983392749665041460565250460444071451736107265740993272174640485630490413761127923641191884076794572958352897201998691011591908841743150058658180398298524662617641703484189195682109010711459517323221557831828325416861016706848176893068173088080351300767255009435735260427547096971605162732830448363386194688187549551404226320448276599336094441300782702777674899073766377283608895004551229158792207735386650448771170545011688462987812925797502867200229567132566595185880506672451071301097680453266842277330244481970896230890142907930699416615486205771314110117904767897070488289434894017373392612346245451586062696796614526592443134903019051995140120490493642257532125811806662158129537969513715455088681384156020269064101940516441875336800343080699011018014111593744187562373250060106676459815195050138347018321900138220064563375129540042951681738286740681812793485728366907771280443240824984836256072838338819440342914741141402722640933864224299058596390227763432897345059685976537522465965058071172849480417692466999472973294692855506491438540935903070692692489680021985820455032745299940318315228299826753386551925260752695673375967771416213532918817145558305252620061064356894793939295389299849404483217727073787546839467810787397766303837456659090893075586169722101126644573830782765217323941655640848149844374206103402013584825499348068065157753442471252986935230030796488616734413629873979815073948472518617857930904018986659941319120515335280722951776276955271371200877480165698458014428616114167680475122658313915559887849150224866710774134769093301474213946615964197878667399850819359548024559250980054784074980785834637023847229591840623105015658850663488160862199301412603697665905280170361131146886974537072103809766369644342228480403465240454467394366472794329802978435962365456921137089087088131052394602486781808111579696869083380692362526213732338252765398405461936898076623620632655455819699150310503965138711995734869733183923235112777749099432554939524230812033603569806284086986350366206237132077208615898786775063064697372592752526454050662210370233459248211161022946991097748876312654805065390069390035591835697315482120745707192485848802117305071203820481757595381194782009322864834042397510579133253497045105096793778976642712826141459739616065221792920772812170354386975904277506098207489110840590266716021288061047655837050120426186363338728096434123384342370319439551778754828763587025820841971511130416956052832110672416697125108705273077447176511326164105762881863189986305444346608421082022506863372597150820725697016512332475307595248390908906887868755957543412721329336636099358695438921562757211968247230243289160284846278140496141134779543757344101755771378109767764339864299691624750324430700728314157181955650596271493833770392934272708383381908633854175661804316271869382252209402742607028329489952368839111441076572496815478482826743095804231979466960484975992311627837670965655004878734340740945173218459703042934774214842446657014887646426594854233665633012352459882946234391829794322531209618356334799614971046646617594856702788112805329864235277889367377548829712038185353208637080033884135613411160830683687118406737967193023238922012784572762202907818569534016360969166091460595300105064312783525017715063939341527206148803225232504127382184722427430699373293851650093690584022835433856547628834331451132432710064531693775852391779235669920893370848060166990419508910172446268472737867978509656187369500143275373510459867124502086949516870700294081174452208468435077003571986684084426963680849868886779170099496926766945389746947155982753077592665498538094506445460912447975761211051975432184470509871216153413591845667580229567474411969931915404248594749406864531460479005018759958202611112179250866962016324263671758440708953191469462922246356644391262233154515611504798621781598060938942959885529211917626551539198693844925575697263620250925794672274644833857136180024393349598195179085598598550687852702026876406981187868535261938301790315274406720656717110288705319286282047977619866023297239462179296284931674775628056443062661793161416034507071868071878611915372748203081455914524887595153509506934283895036015554402112359541168111774887339073235174391651904274302751118894508928428667942827268028195872267626172930924858275470424890169599113935349809527937528102412348415916209097770909280294005356715277335066223427118141319161899884697304337875993711620561446903474130043340647432973859974829811856047057497477134305260250866089120407361325399100266633533440070023832355963276430478369378914959221974523276468483977146759996982324546583168217925850005353717578077724583356899188814646761611742503448004398967228331368398710693182814324271960354363721212296783736548051614754436238557150882580356427260084618153081727297697587619758290204551685351532214320413427990343766420957542454438103594554265768852640298329711533691085199097503019179840838122273290982169277518520902475857291176710979173341475232407950541336019695086677377345228787207281587188793938740997040611119820157105210765266095807612406775326989653335298567178170492130667950151217471855832686581319636187012743432186263290586643571306191376876359222929776078914772919287899578271310069178196151378018664863247462144238729267339799560205042360623875520524402209640627291486811535206567541384582930195223134267565383459636561043953684718479716428559141465739320073092012546925448224052160418999972045166625913411900266702552337345667517457839725847608646131082713787218704388968379946684123327949383383259512187989040435587135310160224688757216519381162569621459777395176200164420769526627199235342376181465733181062106358337709308440662220618927615865947558636848624823278894069269570625594450726930819824262473911070245489538216151430695329634201377469153472202500614490140204188758450382925864871172247614436945550510826560409119159765025467125145589705142133302631305647464423091679416839634427148470494360406026166583370541978661081974528201594649459854646949779689557475236087133794254335565514499150466834673845909020342652549713175235483100028776632930685227579225114450694801022031715689454512814657132198457193964414915347157737508553530664516583797503477805907856705869606653638172063090551392334699702963742951314904154980856413942646212990285638646805032815820835857269754795796247949461165227230089612073758120418777116297599325879779211353311142622483534248251015085159793300684006891704736233038344868413299164692194731444047745053396677299198441593455666858037133418837686893585412135552310130258733041573051971679623740987170815932464849463818858330694084182707046268781968266247030498955643458737815915706481628428921551523953118820492618521035041538532621093164120624470517390495865701650405545211412519487032931674252089296222237762651852108730062588401792410203893334302846217190016190828256708030489543369322867008994135547589112097834194426996312049755215164757673199677199586876934019045012822319739489246736209412863010531549203781854920332749545016516315809887475660204901291060889453945516464241112779851507762449301196529904382323697350879057686948515456062581306307454686927170808359508369748033225090695474838030244820407512609255701240179318519152232825559922812275204679348103399854022757420274808188307367276977371757886109722189560685639994933353895159065909881926560434024611828584440157604737647595155572900347646930018353835612712941611207741877795174858479719751361981174089151955615821042530728756701022691008457136334041769080903743639220118099285858870731756420738300126762767092117313250084798862287766968306544261984527396454982011554663794299963717997913324376197677767121021102670527654559791026563999129819438427169693625997826024522775108292781211472788109697160234077703771350112913198795694057233476047299016757543693249084007457292574961883502572699019435357532380707949174047477050016164838344334496402936833626449959136687394719744418707585119335973734314099275034726582532670058468242416943745983369059830268840430289112670731757685616169614255504738451366635327634797040333204249997346945795028491909867619645932250885159764534449688342282123835283613858814356427580265997585340759390673025782406368441027320243256025782971379002199439935106763052685756985923954645453791689761679413293354773409301046704020178156663111662665098904041490898783676984526395312556721363452241235152680293961352924085283270767166178650055253406353811016131380595654677596203976099655168334204802427708341821499629880281391959682910290771339927949232779972932883446786601951173763271913631027139980122517874195533605498131119063359252394806328434474309292358716056300314322744335243689779534287836424287909118741203477562373683162672812725840300868212627366424363480921906123186027627579479540788830909072192674424391083608396847726324510943073945544000767535977876281294507536093546454218678570776159541642406028180751093677143473285782653566354183120046302076237653464766680861017651857485961911975780346039292669813829718021300074346873859539620194961993644321065053655827428953041519687245756948066927548181458883819317121719618577683604636012672680665270053072138276165962311558412246653913933254278279754275356547307244309924787101645617996807270698561873761904668896282636350645955024740807640171788693070699511991563487478634521126745870086768274401950779762159992587172501513953675698126922701760921766036174901574067763031559473774088153069652580619804714740233042849316733834616062117565134770522338572400429992564533838681126887707055161869876886405656025816359907779470426896873019927459598116382001558432253221657325185077337576124410489914197269276881703518234265687160407202090977886620828361725549323908744117525078496013087858572716554104997724868959821433595351579765680006995691645585716593947740319847328796103562232809133597790989935327296420447295452543471018805898291205091697349346254163977600657731284883114702138288866537832521421341668986063758212862455763377996538500590758690303156801759592506031296124938675005419163713060486719618246567649485125503700527470258066996743547139982983634242612547705770226243956815474568538760295952940645881915099803570111591384262717517972554661529018564885886744307057302751646097891459445562120109394387609343823930493983531889048245295654437267900495843416122447649852810931667601448986507306273849988820804088819674157890017939115263957137977894217984589874925734605503106705272770790996051554636962767586841917759318493618987208090292008869827601497378759351816048723769834552233737510312861103273071050886120276281108877167942418944032154537085051114543966215737539981903857128225930241947016013676019528506410853032882520577840620231840586002233245168597416501897869679136620566426887876341616671498598642546364258873884464406391648047928873277106061162247762695509238512809095720572486888286939511743657972265984470611797928714645448165163632535408294766633350005440904905903754814640695890540815057257496049727670052556194656603247648137701249474171611476196372458778508775449381767247973075014130079349735603435575711111884945894265479507114081115001995275504079668111278947598766605434147098546921982023912506357208980437950303782671771813789104748564288677793250749627979375678280830891934596361446656211339527623736085841367671607263026150314297672236545318242501231372065757624017749368076019783835673846273373994729518922553589484318309186693573509505414566046240957772640376728884234552366187385924756713221993633219297593219634246493878422085828504998923474976942668124261338696871761320456132668016411900608206013739529711818565081032441657662768825895658387963554507140508224975008721603960985157002924335971633643824537829891331945238732533617773902631378986800513264280656903851670965853989598476347967891895632448514233287623057534669533000111235677079837791271988388532068597419805747859743720990850081152956180355925160960758803556774908209601284700385964348196443029852248837181633253589811605308598395199158142457591193952483297660461096428156044933562395602599339046012314089813512752413504287151214107163842863741199873989384732374276132709411317761470599514004807347208425444982583508401763254105769592988368789016125544373685989743738904946575650618406862111383099640238886765676101577996325078635742975844338175021273551354065457472780326200883532525463840868977426205987766010844955891004350095033608285633403026487289405058183172195031341821377569644143734951287256475466007517714583559993553692204374665520097338743036537410448369086355696154662299475229829126462829334279982685786315080413235350232581633205016676996509456620800061910506937091269840620372582543546263487217826755828744814302620849977402100745571873639376952486636963533427604829367758453183875119075525615068915998322533323335664632667522847705026386356007322386911867452094074895514265671463250815038695854617170076723587381116676088516201927870791799402437194388139623350555051641903442515002871421418334445013839410134043484394680256051682002552133685866582830784193814064593052831650106107772465206301321333608626833259164862781894946108062725310224109525965884867910683925817841912019500269756605597005513200969276523135615318674330230442641539015111201849231555754579690909930819301116742711966154714595580331352107351585993986282835241450718302832774285985374406140467151800040530231259070575947050290349001302208603815873362045927704835245519887197877464866962695029131798941241680210284526202542976727769545913639749117878170796086742612926988876581752311176095285569846248868645006652794543357176588975915723713031020991763499945109276374467943803077874213970951636540576182165808516536255769291979123786126131103491134719839539308824109732190776924843555097862621888682704719631796109242778146573556055062750198111543432724794325252786794037493931055343075178893329032673805492705352937171782094659161708521569209661175067612602203538948310600358811273115236151484407406773676932294538773236870597314647943468681475057707951631093697435359196704931978242394352731534944608541879416836545434674602791302675411251936310687085310294699682762809330884174750462627299326141534001976575865812884143108755495031098129921561043607384536403365183182675621851112413712044864669511955529750168277697327186184879774739825460014756050213126075759385197845979013653264923109934218473851711877505676816176351380403421664726724394734960796128322061850605344116208380201750200965498758802412941408746662751611910766963642590005417695187509201091366891082695898667157652998375369253178002068849407054231723263563583934959269379043572430129727409106628817730997228269569728996856239202712633178033358603292196852341052952290843387904103499780451597328900516227236525447309844917062550214727888448172786154314799020885915988588147389010854427422591218109063050501094504552539482539855694320229558223158766059511813917877844084551020989662287985576431126364321398860079819120278953074026194330920503691897680331557815573169484014537999320208801311048915235540189763343956406360567996801026974207013327255111751509315728113148355597793242916440696492970799484944377389978601111133728889196701977811357593611460427735089945680512570784508881722273154736261579090817589711489226839544513736768641220154804780405964030255278337550765491112035006090838078654472077628408732438855687239870773398886905738855403789082952791146857422347653724279128955148813580475751935238333481893802300310343170802356441327348045710276576165209240834782824697539825923150571288498859439093150969057663252267840774315252443936073631711057180968289271733726790381787094697597289116102524205109573055567586679028510785112719077894800405714466325788849354107648691017857810300312201779418833599818818413598535958959652311671107162190596507773277638301720252240219331204175782327442587861951061280134981496976873387828224866316677795722741700466884215035772887708335907836857689304463451678885311521605738910580090334940943323475905617878187744938240647776770740198233211563606112712433372880747564056367341784322418270816031946554816869644630467076789479423096795260660568836956048669499379368953603190182918120068593084160142836238140012588412466475886209859938706249405773143761664276483599127463676595529794444510835140810093674254106507273945362452873507912748670833906638021959666427062648298555708423189032687785669237781741510147221918077199095297418603723765206341827134996793184232559235779357106626775791496336006167235703229651453681215943543949226726816494595460412492961118953484676345559426659000020863292037346577290843260194304767082085212279996002089347538795631006557037412318802945328963196910714885954338429453257969515162758776266593086727217643586687007191877141029934908312736251144229832788139401683225093317114460609321781916803574185679397103199011588210834933194066779836353193871952064541685164568627383241340249814614507869601533823211044364957291554153932399770843572000612030576878879540842199939466967909239909709471723940635263246155894618867587654826777536847516140784157615381332656680293729087523385340148208846985551633878607749134008926256868379565890042338584409758052613262955115772104535812597192137769732607264699997436160004381085476541664415101595061584836738406635890978369105175397665731987667735273492709790629834004864305991566661628500957240333714091068705312275736043805201777613710263572192367127770052214008768585397489588308363153321116770282941940807698262022602792797206984800646230442376307880749076675970899385309500238657140644755001145355239168551874859199130677745151082490985059452351295521874371795466458880976557245685725108168365940868574098710922201816444400642852650743419775697404218252106260375884922974218221178408843562525340390353753684598471370307737054567864844932849532147908218500244969279041514752745683100499516545791884859455638722847431995670583756599029053627660310165773303687214883154632872784612954356524582373802242283979852168225397188403760824493236728434795538906378209375680857545390977376845904954518702284110001909423795312724988840745304168019232631540433473316040200322237272552993193259481417274929564704082095445719874613755941570330503787875078499456741622241885625655104923781154592058238495731530437571406691099073705244032623275180621907172470373657063815897946190188444749402793241232722827757706787124379180485742629791409232854409017796527218869653223672561396848078448297380892173127280407524442215145158850649520599478908892531167782822117884879779744735936830095232039890028624677506626503516956990446712235196095068427606680257339566995125873871736653640592471509054787095727162364486552034706869012611579823928325943837607029628976320040010069904061439378058440833892762109783215164459025770388280623589998365642471109321788523561188776218387599979603727132887450663694846125984115412650573241740579916176537068759896925192619566720221099768837608224598407331239907734824226687710016017974564391105506246054517569652472340234610829761874146485576220259895399637718035631705221172196612406450005436265564183560584402324488386107268825061931065872865936007597642504586664737884800248099466050509340982030713335349212159805362467483279516288689197505516117142961569210906600082609153678596399099374913558006650014087403583226468801005800704450999961516535176968448459180913338650823021797863462491179622495428550852027249906584246877990832149833892980187197180579439790254464702695352141448944261727257229338157130885048120220921566262569960021387996562084481947177646718801558278132565143517027735138765085926777438397834445534997827774478018992639604506158213746684308014371788077611244049258799009512249099598907816660760814108931320455515187740441352650781903929529719187748786352181575606837211267300438963430253163021887885165881539739827598359339234469351023997888958979507036584748025052093310942527243454245318259699524623863748707057026749608430953404890461151035357184353802838441519033225496005200262760292810730644723176156619204238164901907118979600065973466421821235272273556718048509456436572830154282165743631914907619880584071730486757342789349240519450278518986663710637618099818319115524063635415925477235181246088832354549130840413548166081096347354974576114596135181897347501887965658765224364359446000766208421974128140516658947830410799292406185872662401372868349992542534599487423646532516162164335435068389078207168551796700985391347113815250950965566977004686776937591565005992569275127246457147277917455677549362023670034887949556074577079315743370769084676817772931401180792378021422039461194338839823310806753309063425533178692599693206407864674606443404879591086196879666992322656950733735149165765065788778212174225615104145774068018909723704462966512226102805405722710894661015632241350400042407695823557183612550545951475979903575736020226263655707500655091630799480626511236377178458738943835965016791308784082298516072331457250322062090565449560021948050431469020140835091008495706316333955234190332814230550736963829645149645344906594216513773484517978095376080436522988585980769696221519859730444175180986779941536377212068520102126307943963903774137585436735804090889805014506818132577550153049043177048860125317916471731757124214558573728164335795905566008002688295630957776621451493799129959197542954912903114859448904525985428715495302103402532798673608951322492802840793260304132818771325311952495564603395499486474767398115877891871459946140795545993896181777356892691725463791467927885057732727564030223919501735721872829018295473584599712013522777248293552993068348987118422219218596843642599067080935466682547221370468743524860831869222861698555571726640930982993848478698223177528717359336593294326118595790420971390314373062988847061342077497193337422532280684048597842131446086087968165543805235103437636389743374013671760763682286089175622155045976581298590692497201555492471905847966111193842218097184300367469686397942217660109887980341045008595621419280729229444662964446909688337866519494257300113484813878367396139519873853166643605012270014466713413070629340865508132750163220964669889663312816023528385250073603441621376501515093810899202253402082162169430490601927191218981066855960975310380208564878316502905340613182293301493401383381925315804172216834955793881003942756684139640560723091211348053097588041327279919060339630164437755259754808401389503533970457086656610089316622122745510319354005362481070973855466276435516352327264383343889126160259553180849110229127945644296037175916557549358677647326995648093905218391910497313569503486380722718236738614250305461582565309113837890124593699125422795875380512347500426559673490522630310051633399670638302464449957009380315978856050809554476278123814977344133794351375117753762278574598669246338932411633841005134709687159414218277556732276642050074790562724201165127414340469291202711471269142412067733114889461101871144872806449415408870576644712818958861854343960111394243859333651496614296885915215389347951351006295877675195591749971545656733834857580698808624646563099837606910888909080819889578773054363028369147935047753821681289030095235472142662307938295958846856796337000477920515048352569343436884097075999333549889805256217535851042759726195396246232435486718012320226725468051000370491534178826930418379589610768444062039477676416981815391602392564230661480349585432942962786236583114388993705201485183546754646026975948550680556892154400794741924608268227924115195429840976605073746628137936982967377913186627549778263589589933738046943318740047770350012417262141570633223300101587100311365918679320243944883111592455057935787154771118124765060824146635228540708141862706729251011203637041053008523815395450529739596140257815898075412959963822738289293664346496042005006480320806826303834588550994437766125716334225878171541146671442898817344878135877783412287860065067465489661619261577038084175249994795777358793083062807553665893382212906487504642218392844637560401745111409979746778436311577759131552554374437741242724753379356429856670968768587094454189678793731187656393900226860762459431090359504440822137199812293982230110190918135899334304664266787693137221694468729137289153878069099331938749799739627426036060939472408239603749250570707824896833775560784485977696385357743857183507251044954989780110427114984386969372089004433455790851259946023034071323139365074817920295108554816611104082143187631044072076023209073166656160135452320941149946392709354751213946642746706988357932140797529121457545776802517148123489537365645558907711271233101978596126980821255484040967040294166997274790872438524888694786708416949423228036851918379065159166665102503546556581713410851589769661898607216260454741995334316166870387114448213339219236838929251816976695008853711176070018669551227541705173004746526551903414323364642251035566683330052351638119425255637104186307945198746510135138347013254227490912983275283163840511713909474632829298258718617343969457026464566538416282780997475074094032634972102756091463038473234002946536255696756317723699618573603346329267172357446870463142574484872309289121699764020725030639905999914104364142462293149322677734264800611654373749574312103816541853116663003651444217583298984243328883727347487211943974674411873012290054990055525828778513456825191713481356831186058164252040315070383510022023880043300597773084284999886262632348176712452757063765768497777072021070475030883978210810361033947670270786461860268987137464946921435271901273328717830755466132109488386644069549049851156315943755335505939626553159082023055981077946036323970143680655855052444856142383840994794203939521590869194088770971026101345573734719391924724320400901053277423386042402340035582536629785605367252924304537957560925846215508347770039408989912974049534479149992243989289023716194950338790630689766756993802073856995465726502340757320458860945149345108985187471074816815908464818374189912383385098081788876375074930129460933300643993643648836529798677987160263038151971352629087934512211612816581626335197669481755572316852562036050607115877908278698049675887454299326355031867443352356027512400187723165280914310147575708243410789883355957893308370753386831237230045807180533436805479181505109753398941173572282407649314286012823041849768449639724652670152260386684299289218226096053195642315892263466152969987839275152789709587526984751294385133774940160539803226840886098387009556482307391685327658818782872878760419311756061894103890231724723736806627259156510732544816819941813791918551886055286216255784532610996508836473549770915155586098360465742068902167286485587005736161830902252609242502241990936965036775950652612917408468731138986246256069852013568167244051824061526334632964449477326279778386973464151867424496947157402010860539539711871291683976645799006937493166379143065383371423264527643528602740500285958754933403596001634090956977620751982154018130196087023384936058886126158418199332720521149420231646307618317456790623030255855528425396201877118734788834218805291013654338767213759403657603532464774340775400033725615092242232672286572626791811745813182290339205165326738129679865232344607900528359405451824392576806087262740271495305302170058536492738219945669225381338525564861273981654078422997740947395644585414908712925196997982718839029846858522837958419477913645904517726872633089867326005206878923836747085704320307205893146138990853339855344355362971632904102571360178090171244898408927464183584969282200901981296136885389280727651915188719854832329148863468530207119429480511938388641592125307360427843054376417961051709360964487271888672581788358983560680471779627244570936201844610865769455987838620763494587108889984079514059753042578720386207258030144937611536704761753583842835341369589654063564785659992364085572882290544218910357088268697153351476706758019341859439491015715569322629105379544076484454126774423134522788361125864156709740113783152638475926236305115104812701279190648881609411157344902406866048426065457392629310674505714872810121484795430647601373252127869811082975479100162796649394808376760943020079738816990578176532658487212200500410346333970128635218296510914205712167861274897607682529327405007253471783545193428868470304790065250449594843415811263398955830819432933523652964423300574341035119740506909773232410386029276363205215090556364802044534774293987219578761751201210072799792285686272199777587829670285275679852486260025694506406164285321376109376021275110828283330579823703422879929583505096178702388806491661044632678321988164108486369626339742794311508787464708242793413896636170433917631982406089649171308048295646313496373212040863121479585008067641188001817153578861764441945395086965644307520988961441053443015516183161801711282928177038373980975341111441639039004558043254235481181591575774040392691561210754008488375736417681117092032156516742390574400871339182214571664621030000588088838674676918162462770294902637550344753501983939354212235318657921113873124382266081655083478710895918397529734894499404700642917877771771616402775473906856203840550512347962472522094354199467839481098398128141080060753915339006551140474312178517772690147682805674798449128356825681563850024758075299883839132480611847130942353274685786448364059967588943372975334026278522167675145497979523673133701358621725620107555837095484109538047387822324840484819703293988220793042292505132117319909299028634257885660877972581286975157979960814517746037075130091566494626719710387179970307003656562083731196042336164424688459794201131013584959770257911791934859256538774193481269821698561673328972230370549707117209263249919953562713732167000420271845948699712587936495341018357820082682077254754883034360467210066101275153690882130854797807286029052057613260491386784271115175424742299902396501845902150134644435271001308935571023256923935641335021017427597843799672280518047675181964986156046654930953815946803642994251229183295187454452258885293184417315512190882158943820135033229652134361762463243202452172624114107853531882395203154461960888258660733833929177289326668219824918279837767636265675389283671292622998685551021433184143914685181949918011981454685075115031689583523602891675837901107340986412246661190775623645856726464193548073829771269384503994064013561465096155027374088947347805860357850858548400996402027609461247835675622969787968368888195978219471752830441264984343404734806994376372415298349350637275659634607386847365405907415019319919447864412978483610404846404824369909048916354568445448367528099807063190087580985848968076451745469253684093548709306881074331497017378980246491696417094336862712237357810814485553653699616366333481791968553392934114659631996049643660472806200706379294854264631246729039361571671280042335262440000538782559094095404008761009181664403845026049139011787594482514117363007050181832724673605206235613089248931287931460993001064163641571630523679310533656354356531799153867700909090392730917963687477410936887067688787348194277321649722441655042695527868607093122397283009439740727907472952786138597868690382001213758615336446392059371381569375155429540427961460721071934243373355358645441055283510128740834414709275412958544127570954050556863567013003360412183654353055487534265943558374229780602273264023782521784054805877512476258265366865359074400414262936063194921045285755943776603582874974679626807908363949142322893963489028553666498537252079963688621972169400271294890536255762194260820587259865891192895870699805496273344968945190928090545487027661019608268180129659700037955522652262506029926939904067300674453225499112036019885741196033437738098770344486736179512461496928090817725554655387495311822867005220799972196828907965322649805454855233165909324430250643133917517075571054960454146676847674004267767514780773290798822987797077342370264754827906010214641827288150738342315861067109688968595864118700433266175373985502899328157694412029826639416577641972749616953669251783367389725928364689552201514632603400960077642517688693144988573121988938992866288616274579730715779913935709066262297173164597751453001988223096743860095071351807527116451085960420727070574937912861764137992527469386729978193267115598550750872568235212096227367178598251293768457920725487417437817479163609300086062912663812006760146929314394331620000085838029900181430733594218150736702671104718280264554362868320294884662171969683466766923990429970745984575842057520295562117534260836588936591611984647384393008006483731325881256821064591524836999449848621560945945459433019114856529920840694345838917264203120138648059236424052048249726655920547668980377374163885674898620666315233087411151399083194240267274982579891231785538795752193281924035686163438192519495595420408385076999617623492261907921457737965821761246516331423451288183163627919703570270985064403593890082682610263984757550939262249900765301010956316416559354941647441213581475816512820399660181921574249929618881998172005773635890489528543982538210347655829781895200128083668548858593821375048785461365997710781206162197788658997865772483319515001007136363521482646434778842768484038705986173053368570759183282858117256834205074949677959933152546087974541229957751309693526945950604928647261503901179319169277104254531770543745776966300398921275374135686609180658903999592653367664217681862494018955648577025372767027155567900320539289439785531119168763267140396828466057454853073741564230162868577308402673713539677376891395745979698004829703514274873874974390207183940810658964287068328026396810995711633397794397703220367293542911349871672919760334527933543119666293356081560372261256260970008514176234590487050169549449150216078130209474331239119137652671216601663415364452840418082613440982870917823989686212965285672041599407922950201306593496959740070615849444801905250977031181770795432210188023387122393642984055339155302136726110142778619937738769081940056966919018676431352281828680453448913096636365834376284529404312644780478471824521438244813926572157856167053402235313343574878228590027350711823540181564393866902177473641603737455919545171699949260575096225625627252526715912708098679640967855246635177711868500390914478309837351624020984229705822596062376486290868641856266469346137272449127587505823988174911606956592181700239151463844561900736637589891086653530605685848669246166574508675151912849487429416252308703069080611541557899445313837399661475397013289499696268397198089940153699253854311351150001416420294201244668749263083133359865668752849817944834264250897490784761945873234290565930353620882630829225529974130498075081317597561931278175243339819103599182671459139937301966451704558974812720209792306654696080159349583637103968403712268365216071713123246905920640284205249809418297706152619475394065347565404336495504005081646613932684039007588131444622684550964244926170582563823592604640602705215222019667412143082766689665199484432215232946332578411000716350159732762010220917064462649125493993769284734384093953552861205766066794093468824677740679909382711913409922109419700851141114317257052835201733660071567391586184942240780734396337981207570074521091966397778075271059810404071011466589037606615328548946250508981652093228357558815227619263505462832482980649615185219815124345766289119222095050323589105945017210785102866799548327410611923039768421268738938499874915321679761228702353630547305659773955298112646233903463995284134027746127088610422937843563623287658948233179453590451135518806691986761749306337220247186691569362391233038748336496641702038390444270805239975846995918823447038017099643957593405926682333158277840480682114968518280679398546853219347694182168387374875838994479691064482929868388275481043785224185812581610759471135116666374378264032585732328646293936171920525772961076400033872516006476652691466984708814807146465723587632345961864849311928496778170578345202112570387874299984992843060200884052930985194456305112172655679666755900658158193881041535499147145482915924674930597169400342407166068906235450733741949218197186367204872331400093244182481227987919617304054717403420509433561629251791981040459903628331628497032638206616756474643358276570109967322372152302114997363796080829191342219543114791316052105890971237335421185166668899597382806983601147045276103409339761674827876652309811030378780870756540751832730443590311572114990191290553722642639151322093607841937488594137313077667971654623229266758379303989824437809289222799833738548818328383993499340017740509316248516308285472148537473894645420459135101080549911389300702999283585687055037969122351934888509803463083350792267926945031475115456123755313789357565902353180283656379405720816250587647354223410833659172756627153906588517442241340307075681191503380956463348471191972037876815239101755551740829777558363380111866415451425103080506916277524287962584798841855694557350082847441489261410498422108019142942184859255086097589100428088323461697947059733973917717738752217934395513240043330700260234306079972459789661459241798080280046112318075957876521842893159772838396987856125241467043722259772438948888905935604855773774966228688811030466071655559147508696923539154930427908915270119850555467876398091096200517892594914152352269758399290394718846994009496354216167792450785701111118787915062411725182990916771115491459355354546944642414196342284447753737846584777389777566396361432015251087295225904287338808701301761013922013879900599332271336959648830321913640559635202262101591961416471993272490635652087694160924314148192637159865400627929118860600567296417023618406736330385205890837145872662586913626703664764120018006929714027531364300611415107193150819466553314228832789601040624191647474258909962266787279917206278831856567227868860715687761808851993872908336395852752119264377977068538587405015123309639826887711636648159021336575615419612909387533458201712745045707056458802862225863448485345562285553994244314665878434786554940485549238657685798047396166960080669407966228077877737630937998675014691530564491976726738477833416913357095259511603842014602496849350172052192904949138199047391964941088793435688513544378451952034693076407607112988632532642715591945855384533850501892935500341172896406700825295635876224943182436687615242860283028684030082372348294736129224956911217134021223341327708691721296231297522692135913937672831157565501567848031851375952895208479537218854328576922836759742151732724719505434555601044428839907107160338801280686422752716427207451832697138811382263592574331492045051202694555093132583464055791726657008543047795119194702123222799672224920015055731820940790961007288690558529596042125257000522861285431330598920912738732233584712217362733337787820883638445480272204037082317615043751735200299844233116111077024347023237203863464137986034429402896241109880765835133865439241556170935511228918559161118466259839688349094425604623723627956698750855088573496935222548951959405032760839888989127653075736954621812706920054822970599938005418146992433580579122119953556429414654775956715884388412894018222209441052663462609805877334336031629699914256764939612846157976587345607299995376840028481909590581719367410782245950111686928447339057463736387340405649114797899912193341485104786649032490887677150831683356162607729457297117704439020739456118874822038833010329171652776981559670123234632145175691527173460846441453755547285406801852273137249728608884360728273831535104565494693560268498278016571524710561874864006995079940320300651095351158431301350305648693402837405230602604837000381464536984710771149419859754507508086303793537605145341698947096360120474296005536873812254537258966552637466550618653832729916511497986099660069750587979581925068589913365690596339123114675465381690913803903141568591232801404099832653922892934979594458263972925834368452337832468160262123473725197745409215275565516907182381531412828905901391277648945846054117990023777208672069791423307803362248613310183720995251196323224347620336184425117516526384848365593875798639283651691652337837838186430698900881438442094029413677534608504404119630753183790391529904835789065154009146558395267015380737207983180192448166272887065700161211946697381050758985992134977528159646911723440973299219171426924100736273351336048425702312242605052557354297592708592207680669352694193405644451988383427976303771591072546525596197481719034498324571794262837990252574419452525589745194189521701332046806156121581374496590018633899739997097210510700391646254909864435012233136571669392047662948152307373998306970135815702134037600594478316123204617271643212547817927157427613944133713304946305812839523758719754355304016755508478585463787268496940339648662934172554642539971585976032240065463715882967296532722945648374612200138088243201520416346193160719756585026536216211392212605222678068012587389328061724415133580399389193810326597743564478351755923350174139965840696751295635392380470227443684761762144907035769567214136322795575621389712822172487899201475485045131884481770304911327536045682076603452661012648297083108792340777600439690728300012453153834609993313424287009816521247214265029947687473863041367260078779062581588383408487734902387033310341564806477732953570006933705475216305864640941563363513782164186406418857836773641645255230383753997104798317283002158659420922750394772809891063737093357485408661611405431949871100866455789753005762372184945674672741092524250315674578640872294583238313803184076786519914082089983595537007313529437464045380139772025471161659190307415812921981332586872237053566444202175823460773662586550229673242362086707557379459768973480796146050782137904188916315194629848677171432925520713276640608622568402432117262169335205989060259070485089871546281902602656120417915203067466856461647026203605975070993451303383159655984003553754942741858511136829060592968504148392544496934984228996665564045023152704411470439816065027163793555532283783683480779162068040311632776352879861795955752936491220607424677230314267510911930029674493909221885039630951740405227926863834435403774301053776539786217985421008228027040214180261926682114937459728978212632629997825853090639738546086677935723703933646040325697238571211056427939353858797357041563376901582611982954787498629683419461660992118422545932903162122201009729876804609204933701735198636910378410599979239250505876900697093869903832772014541950667456302317322177147946071913497844669950934016792562026057032868103412834729165380628371930536184969257625309969026286644024536961613727709299069205381485902276713879266492346957334178334949731417125267965713084049346056441581828233019290566709292358561497109201466341737718126987482763585091941186942838119771398254321784098652890743029103413079971401926765104487235384889984228878629280704522986686977731422650289128088327138944044148343231959174549491384883728478365436375307655030332594709800291948930716768413803958680112823617095377232057246240088034735740262847685808578887226252621126165694157318257860651339755190034802977935452865438557585337263353168795424272245555676351378411242000707297980429645747728176560321885362763414373216078930345847376037897422742218730012671064591664905258179563922055259861981938672762456413252556125149084948443184835947953806571661492127327832548079061526630923824034140000399033488217017742150891574914829624394938177179162431345161133447388270313124252267363572733351424350988411924436297681552890533140144432672082915816942305769376592698629033467738523458855316097098334740308175452857502927102485231940719610920981085845737621668578309311421617467430717192743902438025921032192019120624879472319270948565579594159857359286260589742111958404835881294121475748710978365975650283085980076356984898160657835510393125489612237761408875968898934331367318281065095812462073356371502227451141164717149102366604665762283746253872312712196991268356404276208207025325387373414014005039115136847093884396153087134901438809296652891867414700945862257201278760500634615840174576344983079628476738178609881141823382910873960124492319083435154839770565393551965483413520279082991332424425762829227534557187123420669057452007259748771287062001168283187036269750714294517831511726006683960687738803944068106781936371935198438901755557686394436436363659560736577493505415580876986738006201073601061446125674108179067435669682400745856318642273674013770674335190613323209132060565875432314116556791478238190464887858223847386155064978985809379255424055497480554536036330237487149233669749248588185253783901119600698252955652559150183071679686273976005494955858742203620738796141972149480114769654806796419512633424421781617271182959546188584338976510609338964708565567808591684715342862762119733958078427513224531432759564707752372748952427981071872533843739456316706333014071787087923838879306930501873633479024224896770036858488114543423663357612984826563484298005002717850730428991245846748081529899998820838072813087595352762251913934438433625050690044307160976141916695719679068796904694599621592499347796652384881020763328644213318264246836391638495471905493708647252307952404447507618482360662804466623497356227861088326787938896323714180629966410145608863411248927225849734535779180659797553832752307145432745389809322087633179966135211883350663591929301295776823270277946367588729895456394924083627416191092982767023111272549816552531122979139788074879028121719887250562151725991720963443534010488497959050909706317384605170710829998788339998221547016770946362475900574665956480996137420356859962070751476603310491040520324443439198688443723645540727113106871445496722324899445284761475389793829888861321196360563863882958914236980935550602921891375632838380244065721696685704749047798317459879827190670948307235968035637934557463487062162788011147764534817961513996037220817247056532059981839216189207819340079350137018487071711575286529759186750381290987191800630233379203625136049588056775701396901694872921160821454662868206613467120835206847697636767899216048066837813377482698578571443754419996733223696232157673605528461336032894593842481424896594899866060915026907787388760869477548333846624604450101792064196521063271038411007449089462810582588359053371383492489130019527763746874921834214067598365824019319917344159675111353843582544681003719512922062413322250563945152965306910366226372658492968100174144359606428400206670487838633374750510584487583229808808103104688979706777195143519156151788518432010342383953338300624818651810463176245090888308838098351000613773016189976947224220607716905666675562983512358021917185794312303847380037242430907037921359387111767879364534737728004908594529848046905442529409276110502048648358436310772165748197372743153216583886409493614558443774370776244530136204095975351048239876151095972959608747591160307386080142013924241773297431959047522128034808397615829349769090244640507419411694026935393956159166154790859532901685190530421477527405246633688452508377638173465353582692100361943445352851382270061893427687976025409581975648677134974109887619823535734827046770569619393335412023337739486868549195946062092788031933283564233071242849726508061711629014136212959706481251748373256904591213121901475836271695561387194035719315305210171967420819206041634332919172614035279562806863700202494936401343763448925588532539811006572454813360128363395924104654221949801302348903923413805431296537974281686477094142703991334710879381573160931572575614977839907824769849441718304518487663807735341147650187091443529881094533703361374696377651756121917253687248709117200640263600464515235260253814613886671301956535804620575548233735174609284205394982812307618674178325314093982703939432160407094722193996577222562068238112530418953484857969451626467987941784300655573621523191097332851736009548571563559842077203747082391674038326522806686477008025983940560616131136787429507784912343830136447007012712523395360585269257196544416572606825591448116752686584822771970093752110188234081867512279159585327148284029962199328604872804447262430103941046058289078951802159565765270742070740536369745030917607478479060199789054681551298208015197288286150547343575497818522412474262765806668977963789427050603798047435147891322674803943649540724949613287574138413722577954081019320209982246458206146919626410151030282996539294799783604745835207713286533916848231007838535145675088341878742885101159241299831895304332882703864387432695630186808134918525925264040182867829483842162095160767764759817615996838740749819748174182569477245721776205631889984687683616633584892917233790881923173825954525375639963971667545693147014582781760178430106611229930063830109645899537965578235347741907381562035787603186804900138446251702950489257074590688602898259467204723158881484518912532546731968183317438842006390832774588601681951320291287327481267219703346572120817195795137058813512194477688920170677551509285097231379345198554399501778101785830855896101842108497447714492988691392785107837221838760058177661621344327803508028229746358069593328262529054409918698301372508019019704884766071091445641441827231450809777456300393098664159833135068531988099450923373416163020995397822198560383340624543283500559926309487478559983736480982935153830615197940158931975236390942927260564369654801331033474258078390863009358601882211650444988807542585071087905940840268131117845525864175631326042401316958464668358474500872981022124220211450029815637299489428111567737258466042362243663729767900443051408214074169582440998245146005959020440105730988521430253544652251346470988196990358512892446176618449213452785979368781757700314867814687069323549447947510316228581020591496106539860816603108178017398621121877508422041494468592907337515769954840075456996201180949947492633430487296533395679388329604854683812318632116305751256620258671526485426169925135842029828732596261144645441728689434397637122056715831904961358472626289886986057604245274262331428570189049389139952671390401567844681315484160124971843695537109665586761351071487467849847317599912045605881492391181099243907798177364497293098171667012582003351728413020549641332936373767102678868240245405034012372118327363490543588776688426563668214495613628056297398738735966428395688583977267791375630553240910800253368384464636492840931042350579841601314493592022862462536891047452631310270294856085495841930933536392864593408269335607254820930921529351338699007106668004282567397288004052075296252319360891165994924539914398790269463919972781077607698001130119864095929098204142045597715749801227819660871197011221653670974296772859694684733850578714928414265055711012734857750077140747277975120534483116655351907290704991062255202834287679504686089098684607284039511999168068070570603306940074906158379089639455875701029937047534253054486050862128570496200660003574908329335977635114449016236661753515089406171118846437882461815910806353623270949862846908179099273686884610014020837817945490200864556168674008786465933512277282262676317173331921758464000424660717460146183423902183315221902761334208645922703375409031696197991381500852156965476917989657978896891900923245982903491136331264115786853762389160490498408963148434466785793079754437986670288858398409099229862639361594665108181417455395179311738468478209896761619237146756635078940447842556593353449511100885038763932853479947429627286352668031481270535070308501353404823753694329613822825097718590048233080779168756388040233280464929824454704849759827953151348387432149302448051513260314507913311356626185618055008242009347315628655778105172037670158475809978531930470393342229122416802560567592690894301464368338654590561365620919006555570943320753436360403250700580364441905747096821348429316619930084412218016832227262278080217999835581331278071878325626658100337968110648361464343357313830908665582500313524178918279062232173662322576504580371846456648884090960052049331216652240052892074655371299446451484064256041483916508810765849552319253815335076119220933577834254007935116912513037418215744918614527239311616178177532814084426527459573904040325980864740289780832991422196816232277246457320031848049237168211267064325369349466343118997109652643379911019482409432274494306483428277120681684742780533938151411166580993113344804874104244098511724529376061929231999324654713713576383455298810961584104364804038740791332784271333276640854713614082406431854433917312166541310418076849393419316621326399778286386250486277245897264995671440043997917885995369850829309878654477861037182067660842636237666169647336788063088445703967995410968143249790706595206816887600615835612409733981003363020092820010632542244299501607444443288179333093639639847035764939834676669257447182665754375541164602065969512015175224966871468148625606463436247978000662887035223860267953831965978150254403007827085214515732486759090176102000364459822367313134491682303305091902510994300568900040662537739803037776784939226411263043475299969337049995983087982641458851593904762505700815777315194096099249510244596035199480278018993543866291951714606503245425772456913527558026785101354836895825447382029545643128748714739256734258701240400312543555411286105319648930620028610916574277272791282777315025857852286017406169017352322345232433437274808989732448871662443365515080813841593392152890974910522069687546569967921132605896241771956971701614543648657614494810419087897532055060729939880502742639433268123419591205107710618899363756544754754000246447398783730147982349639686123396238620753140344310018735253523626254669684542869316293266218303308617904642485927678973837669816261292566049979842936979230089993408526795640207829861663908645026851815325131094856224105014712311207408347737509943464820386714768469164850328233092924355399938498709755119156272875835309393677464709790928438366766743582257755574731481281637149983401960664797643554622919924073409482500057425531612019081850229730342604173308785588808830302229942199062122993004754184023992543651582857366279441515069670863450905496776200525617775800717914067346446872742592440020546914185485612296924258529377580530673695235514530101176510995162081770520507562341643978895587072087701300882393303636130784087594555624867155188915394362366657463216587151502467574909342659551879092794992160376202462102248528906734692020370054185953427281620788764346141259248689939457616425051275235272512880306607756245165062775107836410951063283790156873286323665058802741098259471017547316073747440127368586894666299583423170778077792943250034502559765053330588298840276303698640640251818238301922805764950610798891622305846417623831919815617555120777730531536879450548025729361384261441463280943160444343278822044880078329932561296861500657653069837504016365062286222845859514650644249313483542148247259958305860941868159077580949959445811429772147878658702446844113522683528544494638761669070455887563727600149502874684195643414257603199655237744508779744994319071357820937529784447474759486199199205254788429583138465654804545810328388690936812358234590977306424962949900584311094088960392916228675150571989028339861362815384946560492420928533946788443632915432837524694343336619194340375277209504782081059176559510869171115355398709932032644326976661532451795480832868237373169286620087434995417579581779685540997061003263987104457564260006903609100426847081442282973249961922894246114239129550411943066722914170458395020330858606197365795874786927362840827990638570420318301114519564050205311446579548133412940940451315678779163124481753353565984031936679119057878884847926339065164161526832762715612355417364391686129693934731349482626380664302945374444030414587214692365662067267353538309448549365221549890345401801213420527855456214984238218964830709746071936265863030154373026236713972204763929967233876639339527371706009561124783996852862313985194252955707868185370432484972352187427713136254132928039656897432624003593835967166035792950897214680325910163026519651445849790644788139595052027228750046722757092851681347092484730382990240523073268707457592739957899775301217614466097590852590930301027883140162679445908168580705455210458129010500019432241329654341640968515366828715245603904838587015500353814409731061947299424532637679167543625051309376588389777156640753853587062062690160020978201309595942723313889269950934018954234328722415262338049903784731930116764835029492978086788490445042584605255433506255706169625045800502228643624013014703825354367817570424742887182449830759060425201897480865796402223502289562724101984345107929677457262197332541447708288300089643081413373664542505962761313090339213444239336998215284139351122643032034699997158003152042233025982564565828921992385508756843420563572583083564305524891596954416493393563578669287455142896203955119241079870892525423021652205693541797191419771096274921083761801881333440227853937958063476550043236131983718917011932934292155750267123623002859687365547603091656205068292782015937357525926484270520549260735550541276839092293641018348932522093111852366682330670386496141449343356134565732014647234586088228753443822488755661846412620327759627849106581715244338557997327930107507976509649441040398447336634986536058194216651747605023390939895723666086871937523274493936829294347256978168238458194282966192640060984101194693015114812055916409151930789199337173643073139497485594649515172024527154061376768922367198776613385106891040812240842543448716570326795758181815365360293719574598452913018839739481770174797325460961769817319309466563806181698350913796296535367431919887169243317062268903278761041040636382919300012360226558046010710479330282843776208811057611869748787618658686334525641692248660916517416403702577115921271725619218487572664866131755742965505990436710249838841980380027583194067069721729585911465484676316954022653211816028666987376817532824652828789666716965556028423936897359869893928023635586271075159052726730743747769208041665118057544887814731481851471731114500704731408378076547204448023947840583849630357776255638951203317769821872641919759126185509838787741316867808445515358565808009852831870477761076024707719183673654115581865142216929586726470646263652719439080086253546546911101721293402088601965172844237978121210923322862967402279355892370757356809532136053348065103359734646111419271384543703187826816035064989410015574495701360059983938500869386715967633714740624164067522787442243058504024516404533220342254591270404766425964246360977005819795403796590463525832681630094410908678812509230470467018519559759373616380438542529338763515931666194831703263090121349058012940696271026399499111049953445034103277990546282529080795331580483755611637546034000750133671284522702036796327961571738809322793403958521513692302113577585189575930204165744346346447419955482578042864136839412436677982963820032447411321018327354929816875303660745428907671769205153474099886654848757129115408863859363392711919461957879471354354164927990802601157417519987467401990761505559139020524987183225644444745092988931249665502770228801485144952406236301522394296521125336620701290140090900485834509717362382615879233619393887743318784516105329339310032595782854910104476825613415715151248634751193409680520270839296113039614976264203019488030941961429090339857234262612880679011007043028700260428766173499663776497051110450386245153984563572071698450769264074346717375014408467106076717920761292961624613827510441353144174590425947451224380578994483436532682838403964987477178116062052224595678115444527753038262606051494336847464030915411823163862899728533014927181034986666482691519868939388152769801543722319919340863527628341107525498274922593179441084167353125821290055796679648355366717920501213398837184676703559668105568798474465504819928727934309640058315735120033353807347571520428662364230715203988300279150126333545800286761797598673161843434655740560804709200991212266629078562226445945189614274027789056173548587139100875823910558955996978396918034135313920920758646627434966281311302280787348124447060318862306619773581193573108469256365510237241042402136613054575554906579903562525847514863335771467954885720887896535365446115824927679222833464793324680730419876948588006208785096953239395753072853739143619270245308595626747434170687191284519897347087154321738826895766857031537671498901629089744529659617591366762449701008336486275989496783076808193545899494204219145379113126887887333026622906790806913004104952252391525160896983288571802177361834262739092761324189602197314788030466621117654127624207190808176612359432284925097375036823727309938728671178046415030625602808480511546150743846174876616894380611937225430475211464193311932171699833005481157023035575065317074526207177149370298771730294317987964973851596657222586677365594609848848488883813348826536503663759687108739184142721238612319848358673284686817717103577078427284523134009599520337649614937549026755455071942836587813424349399437470569988014514569096174910876573792150617804397425696170190481769986293778224766485361126575361146472610373499165633757015064919765403038567207254919998578446290018458735101623080378891247246112755013104448958274485606618226972037682756579517690318712747901464584025033201545606569651792233541021974813016028066143019127043116751300710228166278041410720884234469929360450879573512338133511411362446562217603734065413548523256649650568898972786732817623705161219868422877852455616285684742800813455295363599439790231357912272537716081761338917338149228559714108410739457582276525247811476897481824221584442739224298685494116045255480452088296695385653017493469633173538017796788138680566487289875124850523972611507260756754687566301324117161240557973651817274293265254180477760178809404847377359876772435426088854744477748770185802700479351815995436645964756707093907871400918289185978666862688833757702709761619409349372673522812868510753401151802253409946855313960239817361528642837049861227380491841267137267228603113687043295125502658055488334412656959250443776920199677919578494267042177041979323897279759373983465028699261100647837175737831060724113080080862178907653086558458261788949763378304988034314916289823812819881587654201029852217687383650077758635472388223586255822680999989398517008588954523992285750542069827286113649759013701212094941572897633728705648013865523798675799535442401435972134800417876649643206435258348998545372338007812274112184178035423174429468740719833826220461720036881797778264660057519574581374505881275656224762577872079276918614074322000967576084983542194272145131381958775321576355866108342050963768274555574047106375586376294658694378469679659715842899965685688172626984429448484344454182291121710333406834800413577456175769765267668600372455007356765054957440057156939834573628564892912372554664220721194214190488885118464131022051584470262376535072856469319797893385627266809135439544816972903498123917135965612491122375579213013434651581835141889943982186144345824237571913812819200732384504361181210238872488902274248702912321350015257410124541069684378376158786099985488626149928170878151907117397042352912087780242883265062649854031494770247219987839795189314273527771747335870836928218037231208479096372115130792708870222437513092877381774030676553860297750465109363142690130907193975402726889510943487395110559309312130422662099573926135855960973873592014187140567039811097161357584390705904009759209430998792516063264841942387193617900805876493954869283541532359986379585384291909074712869971581752315287551215042075078101024204552853094001680393661893937312455778630221232697614025708363704446898767687352876387254497555226334813991623463933078929174128462067222989306266919357932919083362288836991026215785281167366796183312289490572223679502580549386314158229614595964302070812530673083288161426726704565175355297309261373209357248427519535595220970806312633976280866126248442943275962552112590766853047660500148172181468912834053015938645400658992930749471890791191013709769004390534788371840813561090298191250950607995599316055612837543026664354787428418396068127440365624533181118198314994833827597218390122131227248719724491982814956231748747263247873464509833644348282214208426110785816316077239453622067991840071243191758517339264680174404063482191465541172924812982674913437769248982823435805710916851062730241162194832258677811055944478924430753023289762873964607658206999126433242895691828561585145577446596375454347952087597955673224581309401124967474360549300466557527955924674899537417502944505028607498564432322875333048045895666751830122264849686844910040489657791801212130798067828530387239651406886959896944793271406672078165561935515984208399817040684135085892576564084007284942255932217234726119523717364455205996237769180544212708116376996349521678525898145115354374274081162631605304794116271904428450311978657222003833039885293176402212510330373217643297119665669672137778054197956645262111706835101999239792492243293862632894722702428680130566373991411840566275442392038591340812264028823662974104662156800076364992264546482480095298040390479412296975251129871318656307052182038069385756166491016570960309551863944491602144399404730910935616621919755156582835748140084670778893272455406594712655246327649720945266426298594295450067023544030713369862766606348137908090365245767575005548237635629019164734821893068944379989377091317401832574393111990413480470160546890449651205415325807728095596899444605065080179062033585788248136908769202872564853103564665662790649022246991202313965969798424295103408965761532358267950526704652612002434432867146243889171198241637725048379930022169498358728799960489186610773625588908562837279500805765705202143774817185542112324616365726657963940626952076361891330830483574499268752112916263374619115567500988678356633272699841926421708311561180013236917336052517443645667721172561883259971139207450459063609673937595798821372451137595103490936652311614553391639068181147734206890408810338425793406836528902117371173461866838020044695212760665606985059040404580689946938200020009434930774190450264105472654200150687049501255287009067185219354277110869098472447680916568092524076336661565325246270495245220498172931607945791760552223531973368189961431272003037694825877771352147456661665395460152370336272297073572216735695822966445674386228118235179394370844147144221668921698198891289031500623595265551148304650865948074456564852858378023474124517704239644761409570754066253708515313281328102279343944162746541595132964271155127423885248656508353730829018428851300514235524896343707387302731508972323794882654053156212166193087516415046529176142758454204674089684343293805740901275493297880047505173206962842264554212008988102947088821135978894353730733696002871895658699313171869268715035953545204504834373900130358299234693291867675192221037775744990992665768967671032742226789975926826259317682454313498564980146542322454855011751351462323148451680720991066119966802205488524600719566534542440085366715844771332901171917283867164089531186713045452697243153491609181512483194316005469369257134709773419296688479744620340669343181633919861377419837459261693585519034415739733688907815126974870877907715470059622169680345573105512094994262137556860453170427647989933840315527764990529845341179971497557931901889190331839248321092051904205580149760774195308726038672227247791292327788421832144464285691419128558018245654178895029838297763615250147982261269692929170983700562271125395731002776129216141743320693749809625473019407596163084269886901854540646698850723322101542113417762813440817743630584513132887398614139075355049457377171160301528403126426465621949501274735172718751878050412199786098921648196163451674693195460673261228387917209062260658324115784780455814558211136426793024338347266298573701172707458746331618024097970426068167721858339857435552078080875932093195140167904073599920211804382899168058021188762088527987738730659475613625988833033341117906340747894798791211642412612966766664776330952993315854661346989915504984100269925767671939386015943490677222049713771442251325021034019963261994223841740429174436971761458563608471281085414781559520907783279300986406802498837821911087952452025720858982676951313987127271528386131804451908458077316415070171062674016773327243694184429107894027766533083060259264796795236740560307576146665473541717220207136750998741488708693894540190606560085571446702329272762399780809315931175090484959435836994901266624753856883066068566628611055996552337269103160739393122734405663282197739463301395489167301454232111695204048286543058602494591499886348285386249303633036313946675508558900674334346222025515659148760425712722723635845253807875191229338121815226280087708337426416630294660537232755222452993139761110720863606510170888994038483763413562244798584129486726365590604437457775842040889502611730172024351089938202025011643724369430386787155901179150496640661055428733840818953267961938841834589204344843901858452434935890740893287742833640171084651119400588107054197359749237482673564900637161696797400695872048077846976028166040336217523206150715613084642041276511470401125350604422087672987267786587783838182081538987815190983548933529718582772596705515527683003630299935729744659868390111828692670596343542855827546266608536299943549544609267382645564241576967132588606027740596129851983819992613839543604551336925236938165810928926260325887388861547346753696892747393116537689640193922559806184272410407158365443018428292551038959231153840435451468496486578269806734450802628086348597285421699266086925680645264277892454262690438854117355991661890882615666918433762417470875488992692168636674518114999189855293464428438147207881215714907014774766814716197258353065714582997982859729681421132629284436184968715320872018328189121255945688038701314736628535363355150816844653885489499807428515244402763333958891314298995044300790904676257320433207313874351473223253600637503746406610676827923715403014641328293838353431765288113811866609046739479651223084072928745841618208296197599315145939718832381347130648184994268848216051590586756434565118849866810190626358452362473987217887914006955207891348969285267718867827343608784711655977919007768739841693480859611725344288762550654492442144397102834587674709107873186241354317435829903233426544535090392984249215985103257096146433872469408378117561193896299132666085111624943573976194128214077729092582677677146298609063976126149088349117368201773709031568589346070984924353881172853073451053229697833898133987164273986516320007052099759006374487175717738196531451921505342397573257536915761300010997309352456059557580940209281341409366258057021314060718579412252341598143191991892013755850463966718360809130010003764319697274468618776725832044056014061111359580036048795244623880895468573871770769673993135461672192866778392712121229841960948800452047289904442178807942259580977752585901435854146781244177006327476074283094488078987663552281247026962532539661183651620813052213703864481506233967595034615480008788650211452510833845129289991856829082059429556730097175045007869801021762141391406853946027864083995106913039194595911013204369308160960708768968234877019358190930037226551850339640706209471466379630611872531068673583448240459662900684699993046007774975737432088874760410049710437989000340233713394622011612373569842864182067301134822015896296341428185943544096054072225834174462671106410417286885788151446388117624158252936059816345907354717332760847739016454714536742115634425994318789934968894673212021272890393362592781209923890385188703519557019007145477481807936983186308848646962733336920545259809555339888023949524344682876162643084655471444579145739203878793953387222797130093809157639238988596978202489124501880091762153906632753347923582131996665768315403474783555829236166523573418623550774252379930773419673668783887839540778185455573803884951594632160549714812507689553437556442980522726620564777656091228216302036033951685928943367636817057883512788338406130426953450458660305736385338224385897711502047248677311607283830302496777446820157228437287561092594945658131981766936078627524154568798627811774936920948394162306107334730879663805544251047426749632878509587316078693655751972471967442095218904785854722288360920424719803870622205218996175490625775469455035232547283038121693455867505283712282307759678248710509213777702246934405497499745931529767373904373282886073648221468440403360352001622400556479782176140823681686582206055773836211759059559876304709058826268609822701803873727756873267121953365361971190289605667536614225251026565233520097876397406925457909197013889086195254467787769958041654584465464773283679325001317357089032361293260231812298662273070457042705659855412751081746941496580893026862448703351106783238607060447760604019046543556224938783895519702021416563046426077840715791227621941988202789748335238537997370836999665369569135613834198977492544860187007341352909257203076800278932148611992051415571543010068684614782144640976513734956499202768594255842681981984329867715054788505761122412016002802324814701032410250187877973208844235980559340206252412517147559174653493769190696411312589302083084364617199020359404502513646692820878161435309055416767253794017260382962183992390741279985311455587852635151299242627553702433533735791447515295489905822520274736312401022394868273440775980347872579071067744028370598891076344223088903322275992857869315519807119289078688915004993589092673572632842587855691297158114899893132127551433664394493676328754877571993039473178448109644093916352557735385240719738190882714972585491541268590702072207681460695064388304074188711824992356950569623013918312519299150786694412836150525173958205690555885818065984220909569151871178127908573676808392107333418999711728804010199110798325502329131540984530218516462570212293478925965241729409964470128734063086306538345270853276411464117897367403471286643642258148815706758682810716424716833986304613481104339997310269828257846415535336102932820293591493720889512847612774738035399660989291005535030978227003212047677389773804613482990712434468260677971081952090071222722444087810813865749684970686465914885739167385334877380443367684042500140447825513882798699858395572385753784494172429757640396240576156980407737119545689122650597974108755093649149891308814918553537259031650823070161786029173499745772322898087392219427569653113691405561928269102280473757098691690853653877002885621034907745699650573744939654600009825260033156863698731434452963255474197496608181699974992475804681514297575720313123073276541770982853944919936913560940305697054035659103754081720271568043816924704085176968347540023097297748272652501231979851295607720388017826695717068155869187111928892599336014483545981767868725371025244049668333455016100168757837637932783832192809896549191881487050747640075071830643742363717582103305418344544590450905171430118008006977035983325614545893794530680801858446129080508288701999313166036185742989949796395859872618076498910852821234450673375739185734476540901825382138291740437151650293946421729390855908353455572040291671559103745024689997828259290552459343046474985721923999919727227450140205886265193012865070513891105459949754209610794154162956185304786750047636761985091057684492445973998694378433117772680206977417644044310286210383891054253707830612197856007579353875109755897432845433070662702671549979601612642533410250829442215286882097959034975545836213085209032949806712897202167463928864632601665296672413007961505680070833289532827109307968529994173774465841585789774983664679785906290283834117777708833541317155673835427364238099111171130160380914371229542074153156980746309414182979202393811711987298553886121853647756942232615092283692223202411038526395342337332929425084531052454996014319743313519098606665381259078077849717646278943326124916293475197017785838838629002799113430644521826003462172855865103843646001836174804191617214777190877742455773099775731941532046735094758383192868287360529973375149376330962323518866002747657282006641726784149496812146577876103944503614325196379705822536770822144873390674482895517062599615310283789948032241931119920258278440269413979390496123325539944907355431288886974457735214713815687877979513429051479437161154420672540238411398923354442521487986005309882549256412491760639859789581676052128463420208811803124794726506486751814088516456804643047344566717356142909966879524833700606725196010858787681025562955561689712814776786856015756688753921647324008605896136721145081830221094272675308821733813852825156931083348273619671735342241785144964612763255241665797836793980508318891687768604855313201303560030852393678570931566585781504628800923805009646696789217804601151253414622698932652186878115288826897368818011501741820954675756716949387025703356437376136867263303290247835285264251787186971042045078343109946096087688707605654733865146398517655614183778768779553279531692750601820174856359202902748646182450329359315046341100293093710140394159503249605127623780758905445992151195794042088715533324169636470212757543804057059188065881279381270543449582379883249152222426172236555088674029426169053511044701313728326179863689404431648186281588458424863847224375577361616305440613160542563170845736674258279606234852156100123578762513600771538363406672020751009847493703538393235725230525982205827417891069894089462028499867484724264499812977481484513758056438053155288839510396998358350323870008591792115093594881553836066234217217798896191352734508015053973628285468552909070733247266052909436206344034333538715173173796076737070271188790986378366991793747772109387879184871242283437793617821287843925697172780201541811331307080378131198965111975405040881768683817890873391499685326409999084839159682365752313227758827690197883214283004977750944628551532949982518226615401071133453649914298675949315014271815436663589353338946784926522653373413643290036923648882367242299920927204134526448303520229753723927145781651666397908616587246734382291072180264073894241689614885407951460456456618830206812469501263895105962723156987958530628769565225966983105688080123638348443267820694062253449946170129292358742056580625585258743734306906038873882341017672470989609741851621723551485380642404093918361397602481351051712469755522087705852652357415683874915874819358027746332897809790086939273277911005621179482884329817050480526377343313234500314397479623581402476706840907758255158792578616650324136756612425779292615192986336559335829561214938794465932979148540197865991201974610024985547979369595032589639030565449717279440012966488904764662338145330524350977276655806178712947627379453168971400127994874862322481313307307148586174673599071781738853408153974001587583350087274255015739101308934140325840793615442737521624838728202206438006197411325297916778596985780461814802077851101462764594250398186604452342325792532792793188813591749893709536063945793478196948174994431201766898923086674716579378084452003203723311834147874685800088117264317614181238400377918906611041608540302523430115252433053526610517686168086224780599130657228234257993183531451680315970004858248278799418548418398859304212799462026563799841666209096008388769938568874322996312511400611569082515142216901777540234426768354752387102956802146999238528110897190993222961755803457819615746490798521232042020374580690451908652745671712804709475690425541908380573077841027517271934624667921395399674623665212829224109441356087090804240415062985021178112611507823040567334762696786345854049593091401756703548092604876155762862794141174794203070262125229339359227727159708879224906625797656139983419030076462589014513019887731442323008710026013720868853069582033648867782117879588608126984971607149472724784865563287155146415080186813597945542373413996234681513410526866465056082062939694757718796888134601255433839592709760291379486099439317665580871362653008877924973823777167538152887925584232619100266425591110248939956184799597807031163363012342246286561084488917651325368754163235879700246640892296536579490631326456837904044973475785976231900182092361739093462755545432245739801475561868917518500858399600419646572169054032437122171142525365432955965441162114374960423428102858964994884433291887583670756015767877870333109148791029926398276982731944048566484703038205687946628343209654397435091143978663417087371794893207941052525583738517843645199788128259556005388064802561998911235963998007284799867535965295368840825135536882899628805628888512821194027369691409204478460019870040870129448892382365773405687574353897830466354628591440744405951112808358898213081978917625610133078537404114681035712321497525523890797595334373690154106428988914024143455580634496736890023052894326574480395867126705071106146998659173814118361327393784121471646442538082817817494834380082518762508378366497859051037975567762762109236558708849989230538374304812050562075969430666087897693885494337934696102115862855325507921094765705558826048647542498719792111785566930117330854667167225802908630811714912938386554009947561929627775980850473433030078819537914928875586382756216713680840165773908137409584332328330971563873934627020555368275333213264919902900749951241792110056735690328925673432227442788509385222857045138699301846379007881601342626020202495169075378858265445278090136995332475460185544114992576329208020613040348999716120837266037627446141885070577235564995179071839342970349532670761011665023180000716698813604292284195218942368157619843522746571433579848672125027238233202440584580586654385629676890810834209195805387810954244713953488511954077765543633758554176437039125096190787952744882213455896862492708326886024690205982380583747020414860875502621512360283044306061100308573157885355336029285085395667099492796401148409174589634929212367593358705906454262511931791087144716772906755561800474355427123679106907063554367627907791394569845938999525465525463168378554308117229115145663403876006917851466600166743953836822944011733296060119757106736657774593695843525647170485574105308879476307935876086497760858820132320938688327817446196012701749344981548282440482874999728562995349099842167784063857267965488511652324750508565081626456326768947759029893120891455627344035147740183482856321434009751603235863429104876056178136029257565493469965565403628348128639111891361628277851069575369705555577371344949547305592132863826331183338170940315239592689511969370685924854553137087702459823803421567281252689327581304723223327639277546593914024844942727582027297153611825783651429632139087662111902862111674529377675864325240422121533508013774039889002761355516228608535551471014633324627463066386549074747856843249343218348863344235487408721832925664590980605934379386915431530391752373365429070098897197890691696855681280373673586838047329804107236017464177435705666865511860818831193062989419919563663144523301333564954276105039815200417902792311864263388586824431783492769572114203486874947822197199274911472429807743677910389863005121284118730105068270452064718609786644290979826006889265418286163213367526612495244941323141936894696165195032656355281562990878654864439011007500057318739561508024887850733040677506524473807994517366549924118842995895986589885770669248430933878723210338784672504297800541998547910722011926193345260240892086572055537491523359148248193079141899490726347304783681843359807489929633582216169785955354420861341398186569268024223917529183187905463416391583888324162839169665260757556018187753237626732543901132081469283940038211553635247076738232398144738791891830980629065238474567042696967756958651161291667548970922470354419424465365093028625230597313831155464090733291476456697524875701692621231279388343393110060560393399751555572807209813579501043512080032374476091003737734060962617079761409170528466125718651212312219937806590670689790023604691913593219474836242621039916774502597228259260276907948622268567634750972707129969511651209508002237237795160318602639062532577886298735465996215232594496041947091178794890993790377099654935026073506633407445429906391310201550435823611222536297560917515294699444924480621154932169903198212193361751518491222088707994370493671627857414634303855868292057094988150388587863200029194850207054093331376737919718285277551450557312858298160859100595445543222144907539443982973782622791440480564937502557237634330351047849932876659015792185236700723275921026481827953543515775019426381469469597201164001439893136397735840099018510219314167284947592825628906747935499333870026492359786482119211655766452717867056955360907988105164015192709600822169028987433010561935712098633145961588197134954427329514022693915640622553092806645409770078062401423640044854076107883483295684006583550009826446431652917370232082176927463386706848650774634985693801502242685546335862875094276225189788035420782123418238708459484082635402811049333421434868054062620182588091230130509916706444518504994634636691121870260519880271442192140029544751471327036053411546478163715528435665841166121131629568955482075409160674919747079578114170150055944944960209642482871147273021131430650451034227910168919052696137714508469159804395887657811700268505355691002020395036869570297287103540060129256189767670955472698143894850466012175023680196543945489722285937957318576010547968002756911610986266728898697517315278263027421079521469525876248590615261433462891837457382190727483755300450190288530152451198029769157366418568778683249962351335240104520973114094085191994358856039769453265265842588907217251356141104175097977767315126843951578288529914693738112406499137490418679006571782251878486180661511767642702521442158638917572697934386726541852964816752178262661343889147582834620190904164672652435836450602888915966504446491790529056956946482796070093112436092018409733018637683987073380060431617260744596660978114425865007241316044575224009786234693814527023237586254013335246877920890742464762501847392083001964483827274721053053455631693750761089929452422877450420975086318750075937112564340692807535468714208316800749781422670726621950108123052431265465775050171509532059191276269726480588058816117758380455919186708294876469079241619081639291519203185907199424182617726717216246294200959652501401470974698506557453397010955508036103678766363980444709173198727567845276593137120969302351891483217455100655410861324677010233843845628164011144282891371526307793531639783260859159637797717406748030694427452691493443556187910415298998736469536641454239893969261410818011622932659717809212971613983660202031369661588391175331922530904639260542367128642377449072685815019174486738166222611860036842927427451529317527422861951793023545505243085070726128939967677210429444068579409714553683963194887719840179256894100773990172964516308114777586552328089592978208686486585610635360377744661122252156287265294016442493818801418679109344860831783198685845101797236177971658430530091815457237869003764434473281065759880657281361185041155857548856832267575179093991512024760960614864354053273852889700516333458287112845091623466590989379265505524637378276260958762677751530726884947057491531687563584995573718120290324927590043400551980768262435363980012250711799556019291682632646008185949861530475984018078104655811720155834273863517803190835967218032133594928218771740537371240906706088122444237366165872803850672359412955139027954652187792470275667756817507488635645379695110452829180369777676446895410327362257811142075158407060431353487244996449644297119697109564367132930271932428321466101736269001780677197815408363747954084159225024793807339272748892352454393318996324882221348165549918981979034189016354735772513919553791860900985477568898263029573069193026814380193549494471033485752354699700373240473129314182455773776164280951776188330747515831890225958177909164098671391008231414629253266724957990233708225080142792168197991612627462847129313538022380291868943214513195968033172558596084452894284607619811404432021898819963822734106565678407254488870577405609079726787722324287450487333127664349493148128901869554012668344534977050195089417181713953205821300610152065535938396541412793927208810387053050492229922200382990687158296108518614045697378861251571721622048686824054959012263827121242723550866501578988002018091298457130274695385805101750195301452267821457193522664022077949915514635105552812584053975556789523909939826606627839854009442420441169405324452862297916170483732994039277125124778690707669706630466289444414035646743637444541996176953899760446733324487302312124649657699029854206066036910074299486190796543212777125145474871043658469692927041956419945530176870819885696945933264013084337027630395556187016877545210584119353570014489309044514597494659415018181605621322459857855144330764423063592118640856166588504465279092495446644858799381572231369616102444334598940211196526446147624193021222296445791115646316541688152864872701991546064089216169383713572020601720050422460664194953627570521483452792496991729795361493479563320370831893948907012241948267102094451853448645788146307355615242867999294777298695431178525328521125674625861016513324439472274605755364922474392610243497534910962060574942205797297976129145578079859290232628184423307574610755008639126807382243051059339190501978249479595535143371618946101222762773632632722483075787627546099644305840126457651735441779575067486649531115180145089519584471037344819658190528855588299511977121042850394899101508878076149294058883472193594264890961515316957770750518711904314736507024318655132438334331713393802682142005385856256632922551877415400960752409324255611414932432843040733709492385247122721333347677346247937339591561046646519117731692231348486355942518888394486387612392918008457017417456756131015002921766323310617306891478393681534021061875847806540035241821191704002043454798202126508300353668933508509506874146240659501028890457534498609610010796527254418919813082728876858569466350248557637174445553327926035779871745414520736798227062638551142189196100901353234146691532655669718699442240443290522303485297892989057179535360929280547848878393977228162691880291017511245091246958650701581130172367588004708354429442008265613383969156951243397658276339729822173846393494995664761572050257007502311727820225614936468030995195227166694989938795331798160169237893774417530025579470188762970875954816959400564376265451897889093931778724402996219126543952684203982520014941102649767335452240890341183468509331850832039631117144679298230962512708650638750220727983390484996477553318832594147023627267770496632183418166686079802488802927153743977478157679566161240462107711473408126942507577963410575761958477662275629937881347671942580019360927423891111447333185452790820110850412401671909782421794496924043136047705409342447860890040071320089882142061276413233574282554676459318028501264191999921761004154410559098317772410107873366976738000433157922614742112112976301246472108133793520372917341823521851846052188617813821019593854921789209993826722202799590627625411461863815977490052134629580627437856013770211201104213578874633944924319186982023573594856889248003161051101465889634621634076131709801304504831204613242597138689746702089582813723933007881395008730109412111259880113389999006579258396317158798768290096646018447395107764940517265458018761345930471464386220113326626342793581260464505269390187849945196562534684520403522619319264174709840707758164463178782107628204052477932392580813630005020020199291373004226998505760551309434725290659696918692662612093318710751933264038416295302557497655539542301550413850062767338488929597773818197950918570674906923485062316442946496927542390118360692232740226894183557107845604181940411807751050838367864204227903364329521743223896518968707218127178773004735313461148377293097337709761041753824153585545432764118591142597533959365290114508223575499998397874151765918617310823004205686192918936196132030183272988186719114734154902095907994384543791829698012541791289391444869030445849988395072200745692790311359593246626569163669732462769844977558575633413112932607352945698896284254117942246393181712093721114064781496447294547088207165399020477302495950603949832516673089683559394761795590520378019124644077928024774137546477724586897490180546497458166353882867729040423609274387488848609079237779101105384586831939796357932948806399762270116484112236674976395225458761950280256063264462960762502900075025226511881790547536574878161651326308631149364868643691260052421261091481064044908956084602848122679806470020420475322865994817140124670245448528941409535466063111691518130078416671713442877356197007475337591133607461668042879360034522791319573348036597987698141289230104758663889592171496623259116621625650959706380999307615184293756487300885007276613347602851400852425279676406632389996204242005970398030933284937531643683116035366541243957670160970443369808245187378335132215810465257858157646300779457893323436868987448759120032984066247386825862561193919999246738877272827196822694483782618654995123579199332703120725053998862808732378881633142960751078937935982513362214907788248246312875898788017450854123993701235460692270445495843860649970093207654878847880943729380125023894065650092154734706424700966271280453043500677572248116222667943578174380620826446817556754331891481997306708176148605135419166487696272126202784475210855332313497838295282931882527482050334373360045470065671339857113744883343866930543178663603413617893422075743605067213609046863737939371163036774235140473149454278222994842124949150417421309917879756939133407286082790282974321998095442489076532370151807188072418584087362395987220390560783560332247293548325876700367746616619827210296659402958959610162320609081444983973242768716199910276127897282278411321346384507797589641617041178514359893461151692819149550470395363324035327368909345291732684943280097879555704703292639528265440120626643680086058690367664518838610940730377008597507836133687470899984952183779147865369244830940787123775078898213016843380004892385066415193294741720391970912820319220127030101779826477677809264524315071770002964221402191261077705573090609168239234602649184629753207069050252773126980700778953765962137318171069743211588955836656655608506426890035700703560059482250649432918677689219993286346383051671491325064310324072837542165232389108055153064009241197182603693451545466940288989784497776228529303786744529398259757038972132390577618594999476175943361406149817299596006284221949600039893845975030725392531719057067849432526682918534706065145123697390422381600834535221403781492512464999214111265336498182487686770808446715203247288823551472659310576327082029575788269860271924090387792210413111807183361616989417142275240456744210265611568603206199717835005500598018390925019227791972402343096566281211321095617453342760467195587083472755816860589217531365505103932154443632519287262548057250063118596356993397031884368491064025272821695140139562294313239945426374885683057775315715242955702490871212598022710540031020160579647383171228018993165982331893268741016075014981119083326704008386421264654028199960805128139172756450447097435264664520010391519514422225269997072424288930675902259999579306457409276641902384570709597626002521603598742683780836821907739054023548826130342011627274038939517074082222045537082392109110144777723314474312194912198880038479424414123512115532575294833267120089536377484666518754478261648887706108348561363140065309552277484091201235849086154734237541013711645063037098625896999509425101399431557144260026483170960116371906803906852908718527475707182253191738035889119335447690807741872217815783704850245911269688197277502187824467435844859481860714442135523368535505012466714725269694013720993934933514103942360658713876667965287865587279401664684980194540057750602298344970121948090475672851016797453607904390005896255572732088367645910049890843832824787913258537131489878475992715579044890954542447994931138332577641121856688461399074367687533642728856553738567872004736863339776080460441115440007053186329776579321729160810771098044139055863389912449400729420301655001432885935725526360566983183238247566304229688409905700009495479556634088792036918783832473615625523369559365366717654414905433576684577398658560615285756754181172213086190130991737232388678178643590320341400243125019364101104997949373436136862806643453311481928142592691234938223072764624876168546218109054186728362642577776483304518467698795748405537901207956844951352479837824589860979295968008906372976053657759949040784050773725578471028228795978305948282226191166424021089742085998717306579852931952896765899055792639050068389681475764697936298189767380257730982248654170613847563824387030970477494291955953620066345893686893565666895277820734845803025761646607840659041394600579059793535299355493404440039966076136003197335977653822391673637896869745317306824378524037969454306754522295169382315603810621242795850908605170598369208536847056282284131480373421019209031899271357324865690824700267580286400562097087833309690174341810869495572970522020647711708619024114640476802828900083621548266859809218748936293979503245025986818014537642677512167378337631173525025201627564414875952175921599202895222078729078747525387152797605097935261716722522727020098383113024984706352878361861682560173894150466012143049353994505581449520080079428353261966404723038876701559974338212876551428570658306193839706523912404068263373726332777728873564513768410468018947887090861776812866621859284339827049016352504447994253191094665822643322609901156796264142727003721522880856494487922743688901397605199645424695183859302418269178907459638501639752985740328036746201388901299906990571888131993074835813201139896575115019071021258797941494124612510318985442270646654525895674439726096420852637381401012892913379854663257720184584473047276121241802051823818017808535856856076616927565507962414570938666016409622928050533938304725057245161479004324102967756490464097798076498985972408840978040240440211686218607670297431985997107565985141612806956905021369353747281494223774259992232017336546766178082618711514153975950636107085260764256376592364913446935268097627108868439977475680211003799605756911873422076419556538099127868766067415580352114510525858339860621507424136687294263015188823562207022750170231041075767994987532932557598592437222332543990988426815991153385457089830166730226285583545589985637747275443403856317308484264410578623368965418920040962676804771697041892960456334086274047657795673611221606648712547471361026161155905499632207547476649610629157189277472781075478656365743681120442735135773999913116764958777668322109230459487814238394166382664098211051731305212334110792666946466568047638624980032198770487622330753642104784698459175120357672428183688147282751451038120646923767034364337967234703788323990068175479930497868910688540329011155680456123529546336388679766535323537712599890095147722015259010251954599982018875918634930544380714217649374089987615993111599913072236194835258767391913354180614553861709527995131476233748896815909214028962751275843416773613017192643297830549825431717984726943194238408080442423024857356994132943166057943996246715007154290503220383050904935972590073839684488885129098909573506261136802979306755119272052789549203038700132567250048631739392153050669747733736813039935716230235501681515647375374054463902619551133741728799220873693523679624177747414887800618623878815705309192091875081225103816117582187033931284768682375879201634768492990262214527874686961610371880429669331587005120272748523078462999431979305554736654900193454171984194228486239689958611740149994807372600567977770750775939020366993000181563831445385165142423083110673435454402434069565422875448264827884619118523453373468719040795059794936113187692993199307683794132461481084240348964483617997867065445984641242892746744897596989920221114458893651040412237975995330432595418498013243065307567239227356747022081415435902480872304774636908971676890086560514734626472424947003188331785763664708824854221976604635681353082662973771003043674252603040195239645881944837893619954306061486876722762849229318456508366833291212965633300105409021119941587576216029584087922854162841231144256624523829421467315324928544503462839782161286828802782112135855407650530238472208044542873864145658682205866869378827313957746787890179812264615789290905157945708037211636193232317466590382624437246604372785529670956145902434104153492292076679563899929464955380706160244393101747185971590073423956934084977218849609642841276244224704914862853685128238628428942474856722136697484674261449634002310136129033403482594266306529925882302038396999946204983163329573991280777270892115923989449491773318897484588882081912080762215980241065578227541694265122383470569028006303244449050407726909055062334247221209645221802236112975518749218674205778021036210565113695478507721935988222640022195871587633635857807357426539933898501197733631411146054852041881804917692626661665689196521875732343140269802633916776205449324168323511812735736682285027268931234113599203879657285583796652532743465251577564572234889448164227153090517858569303689338536459220031442876755926759673026604413951927294496128813593691548302431550779963417980825942192372883286239567574688787347544381548763096487620486877736528740599446355390794849330080644003388488054652140520265798909407466399249553414282981301749297250962653705884895999092543725049379040829342249211314895284622544563082197424944444009617504664538768554415900315158523891989116706411914605262334903518677267545510875021471188647715438558931986132163549825882948384229878684881957526070774767829197641723274634628961381229990575228140286406687869819196828884511973278078635579292851914351675869982685561960316828091510523847104740641490170570640670570447779111935663069294773388154563365317309692359689467718165938131478651018230142329636365711928179804978373871473739717413400190374326639137664313657149905739999607874776500535209617477355683607501928114444518939448764679425152381927317318378515190751806797937399881844892328453269076803883969710165445678116084572231618233341515991938298489163546815366743701088325974901115903553045987771956517541916095003257944713776826382732243872787120241615554602107420475920443291071837374815479068113638725685301545913724181279340830684427625250373551635948599692040323567740208920745469788805010639197649242329680812474573921272779705200794662691212215257534793602240565312193347821943684409467184704476621714388364870799489449153044663859363703922329064346005338634299293826618220612957945832565363081596386269004260662405856645449460397949270144507102579036156633004616876114005737185309588730420447257666294907899869139100742145674590598932823967516362091370897786956219529847803519943235349965036023654175520045046371585055024640413272480978586120245019762291452677967363767099112434661811794387320903754577607389549681774316574060679308120448283101726946180000266943185257450559926136495479947988330459969248207116208802792737622807605006866804232574523175935199107601630723373689102755610414841537341617851317808607536653943441520100479404910875164171445127476824501886169267646182893198241354966151295447234088981058224019958881762012441034306361620124360263567021163008739759938141628697779048261627427841221620307927077455596524400904480968542164245128010787955578217379084887896361200321433986168505874203592685630709160724729404406040036782029161251052576525669481132682782165905717379292145503274670888794175441523223555086475272255667707363700786964055622702198395708789057755410802283174391253840111358182900633364529590639177294184606702407418635472418601193905110371760651107577667344793691000760716122142066446819678680904909688920796990093733319907940149330080401564727239072534032394896714397855909590941218823127864492107768961817810936341561834428546954690791126657381021240420457664376608703013835403892626065011586631537571670845491614954021997859794910482383345798954200704542837955351632903905167207850247566808091938781899096673019795145596606655597878043680285308416456308052201071165256529591613844619430061067506552603061064705446776339448260247440521235091721123508488286981376247781706550292299757496459199871909382472608618802145078435145282560645539935037824911939764191322478103624429665519106099206758713859923301313030196311255088705528050157209637501231904108608931452904254926342997878147601141944559269094703961173822321743305229993612442828139316111382299466116261104214881780383125695823902937333827041014690935703276498623649758242147400224756320979733870877751470638277660190204912762512520714177777594140703171364692565538593863606106042224078419929345882123177337759610246777319503274614743945820433647059496271267027251407976736855780584068448159698252655605695130218530340633853099076290337853931058020082377257971988997633245897495326207385122570932469636412352453066745326933867774854097289209113657302500661863342221080684355384434964658081152595793027674765632627511144933565959531639790986348021119829717196309678258762259067418081854042439717536362563891826115215223094517367544444455058811122544021196819706675474318716782006051027960792519247223193052514015124171862297310968193085713132137894987978226705218939457537233214891266645603388854985998161302174064478097521440008385969065215549608671464674392468995398792488173280260529021575077298695339044433497745562484111269937646736281329718158059945445453585811982780545745837130164289924283234393315645787661935507585330242386905766111462396383360846870036587043128769884328798319481049815938498669931424616344111599736685554002160448460951920573318045032637641347593562042942408446663086933761562238314951534589996695865984102806003058176048692730694675658497155591606650585754673362337886811696370129488121968168109693326807750986873776560034693570934371868681102730323659428694921423869314406215632231131948813620026281686652980634546675072124305020534121147282651553183565726988179190497941663264155444940574191601287589852423153039569478828815860287902457239106898259020629468923851222023210687712149624690510359031386145244792101918070901328037527319590036363809303374339784793030551187977768597432498760295449782505411664846857309814809404629502567706734512571681833384336602218524602649122284893889205696497873890407002364810237803914577006966821087860654997448460507929495613772828516300506935522187018869072864585417733761142639816091283233864326537696480273851243056952684767079981113188334029647815204683281171594417235125164284055976844842676032403524214413260548095939915505906243339720193510352014214054639548958039096372198305100253924389569016808973661635266267413802014034142382933690802479454378252461302940736415271964442775420847654650847563774362758375190259685355471222511476179269541373822084194491915023923768168343206573274556475190776578742144284854255756924492715329179955027824044460868323175038641172575463764487713392553367819406718054256432895052788360010577118308899119914250306994626426620567067852871307007123554383780947528031545269906344179315845776624138758651271837669350495426246449386208579872170079398157488530984966877339199071588538275992127516779850756213737181215334188096206552277796375025276316928930344065101579100789396912835067285710090485705515920496671975317346419306132287490323664259576146213820290002768321080477271196818665360229214688342768228470816554136815040227204223426892676061065006892630969109205555532574662832295918530731212820308360311891323554782225137084822063913960697970979011444246754772669914527103124044503841450522754208350518046095272570615774542372695099827108480576068628470892266083138863738301322312695690449498583790047678932318296001272532380827099459952066581864221197851022798425323459359531421777426014652314885148482101134922661134479081310143137354585899834469839239807953382559113022857229902207940594175448860569726676958882612763790149593504168128481603255146783234216983033697937814129405067066360281077483094363585242364648193749002893309346730352322870908444541806377028583833499102880985632592831255801183126443216259349437065326615640079684714277343453214180122278601018750189990291676601550229254442674772136039882571077583765635131385863424652949988375995194105130321156066000970218045734147322067891812456621244436571218939778108576642001089409810846817782548570176253435864124942106241212031756757201011992531841628946396958080641270016163853217399878647589834228331434092292819543528376578089222068177049122009283545445467567155994798000297012014518964448310888451952465613290771498501660226892150609977134673727717487833125717826998019599384945734934149804020468537614323697185244615345653722604137642515537529098405078067839970435394146422418588752607727715385927817836637492557743844651990127636702764396193648097609173177266972465827953256105478901609365478538411775548891992752928052620044402802685899887554140458612053109601270535574022842696006548348382808434159450807326894228422954597639348781708202721214809768280966718719698323030540213431671949443302965449702005340634930780628712331920299350987844923911126496326578639070916332478732915846746586109264587704976487880653406601399932544060146681483195814844117241233129161843319058553959018458635447596725292177306575748686184412982602452138416240374922556623639005292895726020610345002149287477162209258501205221918802298051606947490475079471300971935619042195868902282341963498116029918025684489579456248440512108657265672644303869768227449273440813051525226125275399574835007982278333001814791165748866031760445669802619576505134680422004053498000590628471351713939226034447970362264383094352157262522076087786885023586280707789035973895560805293677633622300792822281340650616737155423744865477422936743070140931767237881129957972310532956812039425487630929254197295343221383553622761629265866861010128543427847022308199420506002227396554757584695448514137792179249623677765908459628839288158536198319607037765378562657099792369167756529167047685120126549312150534887916967209144113547396402852274662478927745709930913152290989640745466116149891458386448566668733070909248839362843985747880093087405632226450488612627525777517640653994709817791166590458065989090222313783552236790108716731585804724475381023193542195564286979888502489038593142667207237051732123949647526620793503575600351481133549086316334960864545391348988104531345450517368607500787079025925678883209695385161227521340225933404636459514957469571136490548746381310732522979319795606953860597753778695851910430209952333554231584498989672170482849589133248458253432943796291799531511378088853939385439159474687122293353766339023426150793685427721766774860616734548669051923920095148789485009185064116943758319944258308091735866492920325493974769575089149221350269700878399446409817098314870404788853721575387306472575574473404827687811728935207444944521527872013884932202289892572737320451288462326492648824556377045972577251076876526416625039870485109468618870732625860351972153670877491864245100452496118431277605281619106676113145995053354841500584736339335435298421614126422729569449466942423106547381594165920497221118110462861253222411724660811014058102277212393367331778531951252461546238094580892583901351766360101617815402695478296708087840865483677693535780084893205576242287075295512766949991509674525134482945819015315444912465719171627580810317388733910130735692812265297145371774393558943957913187723017261730076207340549127060790565336185161230690653210897450722486153275576523701939403115282392018840035570372886778429122574927761808065745930244045455384172226815058728716131647070699691784759181490655290731979344884139105199680626948486147574059423733296322231837506058728274885216925350874332181417810567304822556096886370109768597065011037945249629629183861407161956859228105483245136789474102761658531284022351649166922067087809763598684963923192356569315220766924414953620494199273223566471715642321988619919513129170841932876560936364580515939444268878725828177566896269098631093554477031422449120638404643436302741762558155581836638154607890740860371538712986308056861445279591060273025964287335464148864817416784479360994559747340212076364918677786575185569398997940788045763214155159689578366466042506040410929309071037278336407275476726850192731283200495556235667805023612861600361418358754815987285253774811915101344376105539473462210289955827106296769859732231565453662932785601724579788019496156005725788574228160276312871269147908213503913961240142680385420638261053814510872955199967665855696565931453728300883227857001855476475560127893425724901675229541370519097610410509829070879411285416899617873079981930345692149701069438239660518688994465576645135771393871686580460879977071720807375868840928095442208592605091742706911715992250107379825076517156332747439700417849213151878811788027675976341934705316352842526658012958741209109970784664490934931570100827270481960786318785914764806033974276062182161752874950507823684840723252347089472445668342390578977692953300578453675143849686683381786215552774863656099085559148000585168713217619423061492565584762566437415514301023060527619084223624459892526575362898847053995925638851794813618374288113351890769259514615437322413344804206641357808360929189047124315960019421841821454061016378703081442473047963135337875617704887554447707223614630283457969671413645083683017506905612547553559694098196325604481907906855779970285685475035038430655295461270702267114769785792691292235105139504650037315881344834600169935660018080227082570867804504955488681530296451088681299911651085171777632319826761567403147969749720621791639634075500132093832513851770377636466341040613831687717370832204463672881263767627459602341395509747622283613405309894896860526042399665286848471472997617346327848035123024186065014439104235734959176677422091624422532118178979770103017055023323847698827629057952558702006175108532138543111945680308638388375370423257803523627071291514304187520264593268753394866227863477046660329481367693812636767102898511605969349616725085507595034168518988487253918977410972240048628661448473598168748252834793641062840796708556246907724108372829195369372589156350060908042639856884153103701314959899599949307648072614494056407809957312260315961044969634988638938491750873176251747705935246050941068093719355095074368381283401286850946294337044174647188793505389271636661794677712626344916748151005353782281851330922239003369133845250978734343406544434455900559722484163815767283849861453550770508478840864586418822942389531900312087274116146147118390474793800717808152422767159990988396870396455244972001081685862879456722654683381243587426976965102760683263394303913127586397948933003121028915436899868058232150393617194192312871470154214490728799245204905507044983698087564828068974542430511535545378633955697228444328079036808524734737613226892710458997690769072425784565384396073035229307625977063543476267854266339702064643664355632604611334924861829356377906943780152097959310574583434738557084413805978755714594797207660862510685802526564503654181468277406154319380985840709690583402987511249731947468174564782149909377898690827214369891935469963787938037660384148202095951029304653553524314419721412709626113775793459823036738389250908956951133458901892805827254310016020374709760339545033412400969234052802565008701221662348801157667863780068987778767406067175355397417181934684205081188042562390461846118922779013117277746064136316100588726700228991739968591017885933203572591789351865627244106308230910955402289050272405850248708012950506664259564598840507631912650917131899468812994722840368681883850301678563042870600736807488791685246101704569875383004853642447181975876617808917091131812363410314252483976444238906919399623794091025224328768505854518470901855290726447315799751535874827443930351662147709395364156276395393301747439895143955171744544691766585776927817757884436939445725844895217349096980203362342184502382706887171217638630021972526636739596586686617613507546655500461630880768632572120403237573855341908243528996860474612521502345567464140941560183376749604773541378757534590041015159731953067845364805234696461649265091807015944658752241133195781060909880586799143122828041313746124365231408052635208096361190169269306276041108536196513211318543858770072210411479157370904410327162757739347659604163164868189387148669090770778204978365972301474337313615514724476536070508849158176229882352723581736372887206583972283600476646664621410252712633849171993272859220348542965067336623318487566510184279338476928307324314802156605173619614169725690659387607084515729571257382196179369206331164000766105680987908372144082619022852140832190683983981706388506692136333855419054401065685191425707786159709092589379805528200144943156694436625929116832249594474457742680551564388424324377437321930395564597100669205411070390672432829794373466747650039724862672073739746488423092312375562879260042506476515915347935369059287012434595172629720417112025684856586275267627687792016582217343654220528000945601119383129838103261080679371277678579605225885989613768658743676984577669179441451597361667213446005349113752436508994195732042041358017714943738429729714865294934181458592649405657533569969554877122674784182159560882703081151057682194760577384672289129438652854348473881944767971654811093505823348737405071157650969185056186196867367591728068027682617091752695775969445770269804411680189300990768704999223181699887907708287772239704690131209052829746339999714333356045771171327604097089535373258390585256832262100785658128343546594004990919216877012224568813317325159073039260777363882658975683113623025422907254801976370895907651084458610827393997297768350638509871850271652629863837916956914816816382070053017185006989111950309979961732964008778620186446513873539136877187184649539010066201855512326990161488891086338455837326130479442641144695977956919907190260288133242369820963674002822737772917790498867551246255915491862508116067976665730987658582876204712076488511149348122478140924199964864410636521576810018662713890336802474363541813789923311161888683232560035406897391963982061539698709729883162449149091103905556206119359103097998282180040848348245979514511114734146228128266182408582882972362969405615570826163205778113541898192431185482418692127576660399575934020871710605220293270462027194397418213437059381095515384958011236346132672846687252957962112351367136467504776707119834028319258574917185683585199980258992315767213718911850778104587351850066946859324156051612034386572246388546714980861642499423067066759184411872490301229359491651843847736843499125350712869039621619786095048819253752622020635231537365273750437519045965376739412964908560239037759644211411217666317905905330110274399000460192262471119929703643630178730917631250163778472185657132832059356938353150776432382316428064116569284948671574673856474947432381695649161843511015787644487939394372977075008361138302330359326230332587934947687677318139260251779424314110055409928125502945293054237455285574019880518357352466263482672012197756368125483707205140124810373236499875483816900494285557495013906435146080005572791549787203131962489076045540568723732447601247447704035672249288470456383308608003647611087841070474939574579616210571350143762755212379387750241091478465792057425325778474904421083295289697564886043310260473026982769737252788605940098135776485259691014801622757372469279007990736107512008242584358279013853790143571969823118688177622825381834125507745293867092449587203910165432878167346612114793816077794703103104169647553123693855751925230699344342753986191578029200878982114667846542667902510145455666290143491736946344565745403174359182715923319865726442331709426907640622602469646911969874559581582776361324744993158188066905663257623142038195836044934741662606245961435805365051345093988974018251343195286420884784870715312485265681498938956943397731860207179615036116629952343482877157258699165621078555932800573541852291358559689706972226228999445137406899487532180937557748732243396439388438614512427295550589407722442430609616529241246164798043352096050336110740191357321621852403736498523919259691106508446234479001518368810775944599782366601296877456532634932540885626549696601539227602480353286139085227649415641458004085701355750891283618737828405638688320459347541749918636881190892693693907939497743918464798772399370667393039169295488580111668758780353896852227485368790131738591201787296262026547670986547685818031069886347547271762220208608866343776374413750302874674887993511206412304828670522047930433218137190943038292652488234452439029295100938130105403595292162491877816508063363562396721370626626641209249141737468769117592054352211589834492500084885534102307746056082548492583821309406549497904861771074033330834559279408646976580066938271041964178827250581421312528202418246235519972102906243958638556403987401544483315194498510667040349627407314490873528765557486274675526076867347571442106436647602519148427097781792748546044581582321207875951432059004078844318849527518095214423035169313677466853173381411317559785506700324741936811194563351570918585733011380875014734585819670029336051115763939873605639919184220217614324067230201262792114850339840091044085172546117224459394823531864482676309675515927592906528038219410906356540119451855370085636698404907938932117886156634453876911810851081027499920062732173225179330878894921390159397982713831007405339976049631777496479272906437372291709731640568929800282304207860349140025749353368430375624525591615583153929674457481409840279363257739427038808622883035817161211558229119626681025932959944843585408521473062508282325888192357536925206422664208727896100002946021855596416061217900186134914180362301765116031219945686442206781500087302481169266342255838456835257092535624179000730533670975218052109420737656291494824338085217511119261859713744987811266494844420750461597459843460581316013189834431905976186305811953670669316092005373690098663302815445768542985883634313271242213805654256530697655883181929983057419531092467644299560083507366554138978971461071127372461460519918978633705734246492083428804697492920721535912362348982731200502767124912546382215978634625699032313208637765773540251464360268255172281599492887947725436110159754562597922869644277269269898650961907100337969732842714823701267407165501770443058357131420318223775576852090305227187411896132550613491883511193312285474529635963122778433648887960905297292866582919727812783002421485780970477131257561266456465164506189311240755310010679494270774194797328410720436671276493866011478540866136005660653829253775921358272730115475120629576581816133272735011828283748824643220711287582475452375089120901185501830310557916158107629797093231248249105263766645166588827540895654510013483934200633904175781776473167592081288242201308640417469236007214581635548685761874990182384572958638021661474655774152515135934280680618213038447259008790353178617500388466901480261612262352227922716140222828544229935020021550133409604252341327653221101875868245757725941331673200416002580645483766827225594120727216153292974484491798111006030703547984620144951528664939732596129506968405811817323752988471348733550496384927291939425877491734299587258461322089547694901884880822238277832562291252939204036281547176214774834927790865254150043356511169799516016502713175273812049458150448070070749190614124530573879825285598292568931023930521650954278255100491435737872153178217677744121502736871528165566431318792730249622734496488392935430584694858815943486060952019011054143286138565019354117418339838385826081832875656507313223439504191671376239553008267178652480381165222351424605549992597361919341322580083880047655896101058846135626374458364935329784976867298365876313202990510472009058861497972209136410412757942966580298709130444104103605698658236378224413324490091579519448867071635218300416160910836744348860139427065807707840835581786452401149909335746414839075235076378464523538756538502598027621114368662603364354147369316528378780319708932435879368806356900580749279473872916891209587772246604713347289882472212370894987504967845006123905242647424275739996085523387323877127307344930479403151601201262832241832149227456864617791430022250876833885277928287005696945396383666668696362422850095439732277751083689626545127663617185696983314384960300121367536005820086246120938468854466925390823965434229872221073820304570614129133053640793461151579909092600322991520432965836136477583800598032872106688825589780596668484740479375983724896179638444251381596195875552420472404784698177878439011225456475332258362949512035150601293766759896544979218981754099160537624426615280588881622393592673099343239110880471492639524859274583198829362937901902919916029882131889534325517588543888422332439864329875568935310329882373505778207258820809616575424266425387750734010408691255082900119678261007554867850163321073772143878489052983896144163450571495927978013755378295731612129860326365092968959039124385724208698583829191777185293761813000155138316090047419857338370747028053945575987911650449800270219638001640778804215964002979508335722559041478338965133584735964865678058446961196752648034658831334979795066936974124077729605469662173661286612934414511332690134579619002343258615120513363134994720786797981597327475820837341269418806897035655859974737373866363768126682085679934233963635385740063758602643105197263194478597717111021512815307657561564954243953009415505334750854182433685682699469101629678321676818279669260122179046688476730057933210921842635123763803711401088342277006020316674043920351087927668614418322853544073351102176542329244980729290201108903823040393018285361185838080964376522784877602208679246376610863109312143007112787189822142271819091668872230581470449278601301243509380101472054314547149945689827871964003969941780402723029728056786284824293975436049680425983597921457025292769472642720730504884804952889038506255628426420539856752051337273617391620516611726133139690508438125444630161387398538733236854039569082124706998545660539783075982989575689094872908287412317990362281707110596343456158545149496210627952891802711802711779758712142644682230675521101878399103806261331197637234447172982721172130593389492430219056007286099670960626778085259418978362150004151245683711054728768469886956087327930855529932097746543756003221508148662372587603862584060060594141929281356058256625508746633385926106495571757943289858328084026125753446465025963200192026334861904343600023208435183632926065680197350431671256883185805905642898578279418927231710610980708871425084173463451619339780629252136800270147366800383734327359219087975595197384694017585223754087465367627147202789069480660438552893717564133714019334361706051277565278747398514287689507021904091821286385952710760435547835483267960837846891395964256682862908152272976662428672902476048013755676859005525303423438080704887337401032477529371292365510308233204836338349276911432428192567786633029012394184707430328067830918750377878037523554349041004004339991990601683884883896322940918754121671609878472227196943319968802009736780484817113924455522615670157512859346553338912973352167958508907688988593082798127263866621564366243946360590589820702144433917587603691302861016249899368800899377299057613916385359986549457457323511385177340327160585266820798544890638834027971993794966629576119823294490387017417167440448605270232266345957748225914835090596516219370538496476710904454496657142413391474550300266919314251998885010054708540964120999064920806338850891211118801872818957968756931282700840846724069438119074185827754057619288043990815230606180085757168309200629098023752368767058419962272403162038960042702069475148331186571552432746483859423686201124081137533661057575957909473813322522892568543490944016119785473611363893429223116089123495813694947940153581071088315794317527974753517759107281458372047097209807484709098406572787924363767695240703032820486879285717922970385993415901263482991269301178044040894871688076632348715340840461404272141723219302384577248555208519323304528874794309846298156754468735060346091529513357423334958816861081196262193573391703578870993257649094429317123613650903435204002695567708009992624274931003119443088634113522786697809375657277367758497258425603250519348919766572677255710075869065488783035149211524091488735370347479720257600961027281374059710784925337468843245097960332816253054725334203459367822778931982645970385086433547716862868542101450175143656837004741026498616279414928132908259087304451375356776240303778176395977624398534584333499529796713987839454042428675536035062780278640828612011397438526726568337313241615364911827357901135929397227165135934329486947637237104079185230524313879330463451137049623884933202122326506137234986009972714379355143978874223559526966883042326331592550887203713476880138952600405368161343381037397430590536055768834402833997967359941525161121441123235424893845863235592926062516649948299508133971042326695818618774814429533924118907805451807553006547403918912091365388315975223236954992960541463414156717525866373122661041472692124974082511251298582214084103427330066149318200349302864623241040528593072149471699828375220840718825600682104191871701889748441749248193062600851047656708434237762904752830397941179997586177550335666678644167899128385848530617739574022375724927298128021177722542642068543540701406783861661566907154680588720136644041303827072383647846686842560409205196563453354575641071095280907499657509176864538330608311014534495293063182855298335180347364782960372806436506583774333998195454659450906675717900150335979625359105627231837147652012242648195611706136111856175370876691428448598750033839845228164778210926004705875528360895448089684325295120826903949280187902386531555162819802932487159226211036817577737690177021746269833561626308146617448370045315315733277829206274738040322360933482965326130224275600900789806700325407519996637851586843232002503063662700246192826346334502480192275626871299398030316613263679657000911113405035737005345861446276321208588680800694082238986114626405033168969510714386033224664023135967962013122713678284565223386458655645952269619586894395087570693366914915151302080913354799335331336670091355297303746237014565770226327415096286214381093439159114763696317525184231546472492141906174793469116115346563661772506993030032583620302753713297293848611347622396268122038648646770710545999129271263062256650876985833905814114252153611231213421371991142753490801333337984691825823836455389337487686406770823919156747467567209280147103750568051302739863124429336620037332166474050972167435433093463044738459354052823139731812847033037280489511454815853751931934619362922751856738826587896388953630105517783181389306359164521654480995807174799468683469377785913702834440306543947784456013942553859812061451903567849183842855114365031216821387984984530097864690538901797849582648921314033477454536553617605664415788419311244616025576322302886857595389682357236722413006473474613752229741803640564176769122810397154167290472076382663929298620735750185803306903041970420330915971544883273939406339995689350431755525156721487912982279819238822388373732596548334126794580116757359099684900914808200917434961713877077518199366495793755498364302733986072049370465732610978047789866962287238262929309984298110168011427526920792620252092554350601974667530287562082626310279970673524648396311947839782626263941762854587764571894980086404056563016126855164841218322491931604270946765796047195795674948231065411777161210343040634157933424032779284183730263420403519837916023966734606594780328758831416815172384909793582280506829863446746653140453037168192442175793880466687767288027954966261747263624475050585333384650888427604524701915189504052352453014196668116479295496407383486113197934455971532497687899041746816939111088286921146518291833596889176707363155125053884776211208075668947005082601240929501690592009155740784630770179943145236812192124133597966273418197668239076010796539347129458395326992103656086560065150569225089927652698570940505521386644228459037614433443213594391549211847686793886313224658857751601969884108596945015360204705673487589623230395592451473493581544446165462648429976660462714302174178853599827417612232003482902411139807287861795013883409324341520272794347971761627352459256202287558995409950895777402090106448043982800517369568594687726677358105425178732493004837329844831950746150126021721467500912206274349641340764770076551891008553659986527256878453586434793188262702219698070629447858135726951720375507867543775988931398004476296613808908259303932403194265654939236736551870812076099475128625388852146391592091489021161386192946291872910348166981311690769037860432267495627168090663488811769425484183772779901781237936739542476480400163993036527065211756759170645706558903339896557183928593029923023098909467346122487059622291860060413175013435142534951379844529207700084131943734401954998419068812932910748863863364074955641545362269595424996016286758440403825919837750013668903839019081368820699203038346535363954675081736184399766873048464927009274057594571881601393086862298011731038157298952518666533421436680963896294801954042706765975380271858170065567586058481594343608139843366381312653308474455346166875651561011020491254489980931149279923206934805779586577564541545191824533616191489655642551250729659534599648088274366475553303508149939854922317825063963772146636136508154948070246473839856590398400049136943706770620081028858351220393269239903592172460213677969139004364373100020543881490600443433657946001601859910513125834469183720203366727784300104866334516697812020029827427376718370078786788113815951526427554565695923422893781292479704682940308633014813425181404766252974195435842555632417284317309349405049011377561418967299764637927612555043297937964778783484745706478901167599059402340047610263911416998042147730216890253732962005387618631344732458541350003013822734234576869155407801864888721816959174120661973808603861277706373929871891114151600845987793167080104545357703235789760053055760200075453718655982621656323713603363755557314532143161710782921677467413398113220548578092781013987754111515783790790086603811538313697179113419584454666061472901538141866276324847605892855080901979152770810772975538942840036101938741628206816016046569391870622396214204384317372511503185736916048457327901858829711146553067921959380729250326686846642386186689669873191480138074919730769823334895960837475016301595061417941785633212940723010242949457772964360211611874945684087607116373229982927733351235024637144949824411447257521494968685949132964874241477334190335515235326222995605382672014104352802586196497439749519620753249923040906551306797798357448967836430695332056435913162755042584122922652654688015572445471351138210828938154773064119907354267253961731049192358441841485781937206409567397935667639293524790627922059186761318656884578187001091900364279230060005342698979225904318031784354168902418476665839537230961009460598149376366521471248590951066900026668572824209197920788424348069210074152785906558181574163477252988214472654156938125801663076355937900676507377573362793106401864227910203509707610674983239905714011436113186554358981069439094321326169593996926161798192724687737834886286031879965590203238175893109512350777664148579357478701892846902935203003078640842965341671960944332351849940763918063895188393399631173467417874076014460726207323937975486687490186004508710834514465651898266725239208736720918267320816729685423399980382653373789031884242188923985802624276017975182291064284372391228386493884847434664147379207726399863754670414929166125686047075971287456353615556691380224265313380003665998136705180703393429263769287409516493708339033948278227242080709897400303164529743251694925437193266714495183326911069780668854699991038364875881188071484413232440356487726021513777583018682124388848592815315800549051715384889071848986968108604983833355755372075315007324431543306302409310704682727462773029842478259665819937105196013334117034060506261491864753427361491431939068964053876707331340778773865406176834895809542602291481973846165387530177580792977390635382158431198500010785829693867302225002753114104031945576740208840284315362375821576299372069244821413087517548148459984656583547451971406142356964275925146782732117208786688994936668225269743817514930247832581946598187755947309035086060560514499112002107230131372192900997139172475347287071484105298808205860539760234600575990714986001944212855255128165936957529324610838989777686171443116831353473712945483957980391784811299209301679687854146888647088714370073323667676340989621235085808044169598060766796836689585070436804115978008403909715794572797002041668652450985132058431985237971060773705841932815421715563957114765369062872008091813352934490976005655457304564062865424778158724841390439886975640710624823928713757445010259423388468857340843883621980979663958020172700696995733943925619242725581285437294536063312024051234644547267509291952659728176358126995008689124767116642386206108668752255974500186796073992445052178596664442593947423101284520849421422739302487505450700380545591361613677909197177118610489593215295849142149078201288483530876705411630550086196193290263147093490744735926918381426119603776087714371466898765965581207675024846839688305080584278306763468521675939815757627084051670052171047840246166045807008528642608759709456351828040986622124431682836867244681870747574421641932780548176911424463977556480422056050083175540155440132519923870675736005106441436543885518237773937955960182978393598032898921452312118248552119779597433407202308708741963013943106207120739835551939774090480217855559324779402829992321786888451181254330802913211375212648751193924923791737463303488101673753045061666910578063111108873124688694455319492771036529552334108061363266804031353676768708592872816631418291726530243311546234182739894574256690897606362926626123867180237105790722464136857511062563843477045572294544198319583516423177193550570533336288851957362595448467533957686548983093588573752060311582891645223411719771084599670434553580075281964434014999746477492651213227731307620348441839856478589824938177710962494170819181360646615321676531698702882838561446584762471251176814899042704205785407778124081997438038641700242936085573298372059673234740540944490132786817953485707492150802271325614992206260494295599218736487835066346315592763780408014693419990634164121062414863253225763533261248803420916301343421351846069497205540127275546888426809301598601907976153146919987581275382461247020080006468593861692858840008480577518499015429408160491174232689920994358713319214143609928101660423801133433389352836352447668186768625378695577159373799312991163074204098338857825840516423994099309372226283189232834193107412385830544145927614898625893436271499800708750467592842856658408205712980937863496360721290036617154295934993816874495883406793849730545553812486366728388561329583514869571614590016311992170632629990198138260946464713282960870163999126690382230755421156253610524831904658515384461555357202739507017069837380960085053257107582380748075608076845013488960673078803597033366591704525577110023849726433475295574999112513667225952469161773172541326749090151810582486587952628690470496820408196489438946188890578432378668297747608715390409216335044160234121325347144202451585200122275145665054786240927114221418071320136129611693452245648417302872172911568384978369298071736206314358393678119988221133994974493001741317351520362532026441584089860975891889519613275296089739791786395725644894389378487326537607836041940830342892686640546919549464521594633822837964591996947663478532943132431705499062175838912713913268999128815845577223770299319858228605428440385984655400198547514367503468442163008266463253116961242931299688269534175461314543104582223859805248508528856858780286506110703075600475585948138817064503563561935650011274683198035572899801374779485132469909526366874775428933133056066045559339458418897713886047730129954019610831843608165705800618976325463817503458117212381813798381354850253797759920522322484012073216812970613309848405176730771360327618826014456606167483989964619412350923926450080295104513544752910577489761869106488677569759454251892332390809189989228880936761464757467823962681402045788702822825950305124168228972143934714468992020660969910710738874080564276308212244945717454298514223492838238320705850421364754692496782885294115805924278904782569961719003167013695298538520063159510690859871789205969039142989888161293173108668091019853099840769548693774256021973277003758248259258619988217489145798500033001048767834650247763585203147413827384542441980325277152006736588352956750393180941389017151758737755885708702645181122737057169010392766609925905920410076243713611465540656900125489519845628342853738281632651792355340515478119094166172577025112861246166376011891502449920943231968262548831277208191753390440686560053802399216820290673767586885881729661128588469774832850904342837874867000785331243664246900718904521769578970416767738645178925437366556676562060983713215876509141502911970010774548889317477398259274412664269145788068491923002131956957438053105168728167198335123289398164157188203932954457995637744104182096505853902803305376536743730582903052740980345118170713889936476294528405209852286835636638248957361943358728470998891299727475975651554342057595697539042575602000324838631991304654141244134589502828071211538181686073555339267347664665183494851147925375529425112741786139699525636965517760873526891199192774917809508586674066481121005577335993369783850381016833569345412332581994448781170645420185918145358379669035579005662775393596075765700177841754508342761223363069586676737336089846198129516166748034107518970059412167698844753501384319894638276076315126015962208011318126163638086859782951403101905256053534983269383914097191039025438294880888546205546898743861524115464833120840906108792660138984535917547772822769459548631851183592121297346948820739555748506266384989930942778869920176964990702461996408977167279114197916888770162803442413638182990998805791808312851990664276222469703950359887290612356117680073774398015384796611488098251549550342057641435348859139073655355893153966961726098843351442948552105959049047686369308735457815805879088441736328029464197911814883605335667640403964655169712555756974234444264571444655835132471645375932036854811994581527614767878760931655313479606356945003663568857086495957746815070811201168452149804691358624975599315741594221358351232171637392666408427707847157286164141482687378328833047741558271724666418149466949644062201738668277665436258544356433092952452700522593573860334046339492972321003990456634688589780400886427044156977845622915258667627345340238577467330369429629639731791644268177282770611732778469836699104508067470130621123699225447928088144818569595806656905897973463863592846297332770521420921685189345534487019569159017221575735922872739025028990441761397113036392846673460732706177149618033680894091767382040250871173658650699638751031402324666366419554431933103006421682144576481529907481109975369700549348220668131723233827357766906552678201236631857466363634164067398994358684486083671768442197971266950367196793682384598606836164513955406814268507339056131333689444953322638837258164002001839577879295460836672975190238870503968733611826193148223904977657141707770694934565549313923393720749897048465466611290000319007594188000042882185067797585083080901142396987734804279955224899881184660934911265109637382602210016701713411799390801715530970822239877299619301890114767380138930974459394141883384224819386324505126241134857123041019203984356669675800409390049141662449479653310864865546434781809355346028165657394224459649525854187035874486284758528289456277684394296734894051572150598250328546941921448154660012120224151018515645278082688052152507694658237131056596787629731990605071166803863581367729165622495453818117386274899470850207574466650768134915713732419420052492012099007646251581151939419045853986402594722187451474568979467485517666768517303272396013234103779871281192249691184490506091874304158231585361047831649715769727398822259737682797090643271329375155426610471785551379725776810507208027378922249483753131158906425615859804108871105958566360100821142278657966398482970815610028080694225775137130009956003908161104750939836450297229979781001072943631312302257171879947731842088822445021881884732967726736814888928845592594322520683766968142882075518604194164554505310242268889574788557502199786556005015466340519507017408958505019563791380916991749597785298335996730042114145985425382040168476170735577621303824896391950486758867195839593126488158119925456846621483517939852711882999763438819815283438155381811060616410110548701901848942962187177969870331011344461034480806293495702001188537231788775053025654013278740889054032279932999793584956091928845445995380023037201052622175590009333488072583771654755997579614485562880658633838412768537945204507342290818379884058253891208331054170985538737927942070577981655033824287938310950368030452629470760967170915104359066682623132408506765232294245842226318160068258974761309085413874175463884549655994810571198508978144690903715682687207566010649691340569459846696653122541225234319886181440537651421472406463795661339103836836395637773843033083815286327193770615942080360037353608329578341120167498794463697569422337738756468293004251706103959962575221964903472653196115318123602599142749341511425111551536759274519454424731738079303189577885678030748096313271154810578473560735105067487492026466570497676892363338804368073846786639883619693409880042395508576603616260776898395806385666434716991974225619321906059578093562886057343379752647682386530688929103037752285265821352070799260666771509218910455536444061510463658138191775203617171950031960372868165710367605370142139559107283808708467675542986306334727373069594353652052094571051059520084150671542709585515685763218379737092246993058191443315281107892724203830523202165776697210048323443261309232427911819071370854221389521681033016494835304641901853359990459577454153741848532528550295079190602425534257531864201646829348015654979372254756296907644197230056398621998409104044962152253366946879689160948915479182843814608904169927239900038567040326770287880154647594885068615384331162702255772310095134835986399171162879161750165642783451165584170104421799367281699425935840150274207183612556691290642838237234403599549628890938822427220328547140724105276456918050433774618541879867376401455763175620424429012701370627167200951487786975039249010593182561247253240312380167192009030690061935780951770247945976472954513013379528234293473032633513492479568823714228237786150695908484965573202742758462120336676853517799894036324445071428720533152060633486814134847461831716150778114684155252469515163076160649572498846230607409192245630789111059115635375520512548589950597455559737664474323772424567317666988429990666644269085380760869591569784778758671364195251151676571219238012005610839581023149640411263493005714539972299200796553493965283213341629325475859922280207481953482043239113993190604244125079786084190327931654433849300962554658820530719469968052744634651048807548315406239433486871039388366669019687851704907863514241179193305918358312097554194848141031052744640965711563285941393653808970818775317627008051009963894868700138342819254322446705072116883192181315217384991809482262726064622883170849004321724960272731003236316114450661672218685609925928601153437830917042125491360075545231698451869964954994207961944025877098110483235016915237101459352000967321244377219607785421925343454885372166395288323680875130938570757698333939594779665143496139518031663065511682081183053266049980761534110270682102783566838994040268862604916593317443349445269951619635713882450121956218206393972507181933829697178594876916789973321103633396009741255690427956320566091837580633581858364779825866714529506402470655705829629374153758431571628157487265546290714309678551249169365635015680769475417787493096541829137419275154286739672184132895475180211342132655206949642780702324641494401585295192256679857855212961118873969460935044786916759593332115550635645105989145103018037884739578849110539974551683601604020344907966448903073109175930118470095370395248454492994329732566739502485426393704743425714368425786936137598737493459806452621642821383129127082823443837356481823957004213808650647420426046982745403138782620694652963639515077102252795159435434349769185373715485912992065274007351940392339208616906872667828486909548758359478377888691471801692669254364303103509059182212784521793076587992558466944233944542649528729700499090964027772474097299537234869891222981546534324086536605021786535828021987945399575986030255733177695606085713842115984783126904134554152565633540607298035205418468556390287183619019963578242528177059041726214670411129657250852754402783475014371353007584896609027301724152378908842919645048053230278682831448928811236060716796691573011023980444618723676611442729969620190386813452667971220532091688798605846591469421749359957301061548098932242033856528991057473468631455742608791740408085414998830276062168910420531937498493814796696623569876499433128128180797776735161079383594502611874834879185381915823230983782035607363935260062737480663779953477315943021372321186306907610309774854591994916829709451256834935149091433877587081925582665784469394538400723797038926915030530294211961326146747943301189190673630702892539938328064741953837304151266278010050463459967183076169430172538391924716071180879214021268568347461433742214248625374853803813056622888958180229077472926153544791153056201151436002067488165295589313105063629948280039499829814158678987699650977881069405884479633341256310342506952796879056882801548594439595917808787621785104411990472228612717663752548424017826814855234657998362071942667895075961355080045469987638523376432638743909828599517555823403545209846425647203530697812406875858904009808791108684270304798098618345203432688114858584192258945975914945160507281042141528006855107112755680033886756162610345384090122575074193363618474879465596163034485768991675317428218080763492883540815616199714153806616365344411998571836631046691807007401301242276943553380005775954878304660784822006281773909157110168525853996305205647829488541921203109365995306501361636925738137608178232576414722191036153610768194635103821947221697160738688250167200932337458110892680995329652190999701971883306654770972357886755787803023603330131085679192316025844318452240134142278769660806254796760487267987693957468285129549072820865316142315697274492882665944814470160552913142932299690621695007476827100318571738308820717604488056077496021590674120206712144521432843065315874004771356186369248481900237386420177384632951252343103045657696008304449280436792810486955718606500754058075622918101672333462852532503674027728264856312855391619136995549087042383429219171605572689967530554646016794213924722376474616993148188488648299220321906390365396837795888983797403030981498778354647845070674712885358585269156426947022326699809091298095103425042988530556049854202610090889461191126124767719987825664431545511739267448827111729681559148281212676952350041383873851500356389080254714112871055775067932864390974492228235983926831965744232834058765387625932299531067770188561929842707277138385534252631715821489521090399385136014054169739644435499263743698940749343609746297388266020526366094948064263963811883737527766980955240891327220610646199600892605231385991699717306049163787315203013102867945062899739286170708952437157169037808719348722328008548297231531947618903013791291957513420619375420729417430071505300950414638435334011205828568797769665255371298993719193214748265236742335079667325305784559651713543354808166585704706556993662571643812325382907738803897046389234105563968385804826809473640415742732475514177716210227239642326526163232436026850902930214325142449278996040961904953978658483415068886584239931671422612418464306339487424272056153828038487362396914897993150018945526689567654625578873927893591105287574954664089887567869423142874650433234745786682487864222338621761163548781627796255433392215343572178637849809824143586236159440172998798016017986434027561769680831504034591188569727963099948098265934361916959514764563951622205717813547541433784309108622758168028883581003308960261022078925125668997101648521180303984835693438162756289764350597458126657533053673604943765328454516229257705333849338519625689415080042783798344992326285555576114609728805489029962384916621556385187107024507081561326592958482151708168429217763976016593951025211100227182061970662776802496000127361418277903073396517312843754078891399815097939676902657887969705457577754301543945554213213692415579796418116518832795666204671936020884605180114666995315207627826118120278176725793016625324418202054575999947043765542034056977735460612942569424369833987451466715550160296127843077531470537762128524993772152039745531561104980972473531552496938820952577063811622385812406052786577627084148287474764928460885440324930930249249123324246236439003176835124486118407636980323732341707497955790836669211461383918669227008973658157340497070800948248054708192241065021516510377142320069652344472289192223738980253108529584755567661832460776597649576294684850816928914670424681687957965226519786157115324516669864611594275645791505982993503084299158448672143066501241059717985652513719088726662279363334293933667499719935522833022498005886821529490784263083952453903789565460108675632019777191617933119600631187544770458481008780860964943417980195391468811775658279800947883751869076859326452062085249568068095145841338556883018843993820659866868930182238896557273312392161954012656584717818229630574226699158938220749106648603013057449538871152186811416905399291359718904114154426885508864754982111505532754414859645892942924998943326167522169799127255040408723137930859772245352940875888809086958703024141887947670709900298084502948662404325247588687239337889132012751847199812480270979606976020079130324911475148330226393536996688263781110517760658937048109669795457219326142721860997291653152142205740207357133362922833437607701753420375952757151675945640424638804635033609616643913422875760727037807092138340330337191369993860369090176574499435446682428050669819181292590921531977654107826845268200574816611355941308977937461622082308641463615774438251066074945945199094207327371617652142622524483083938719111674124280146116631004951908415114236130960167489197446349779608529091661104075693587028187738653194668801371877938585549287286400722556239104952389061490025619793475911390840530631106569281703579091676397336096268244340940111673897587241534842044394729080359371251852527991963138618771609570146822166188165866451802893104755757378806831890931741672624712194372893311516173800208024511524495030910717914054407396560296996646908626792040852585182077640231496855674648523412481445850243788797871720823779903317462850959646102521750227492366073337110303332115076742756971212825828080405741336683007122111136578685004398794600526702392193112346956823023079349169191627395625956918187786201333895076173779433433790379637266537794670234768306278509246557587721700418966940768076436482186362680718487107226710669330252090525708505219358771097202602522397689398771806024237586541510060915484141839977271444094843406956559041343993311219670011017316518220582864934385492757571800010028747938418436937870133444837604837979963484174702205499660172085936275044005015439365498032106799162375219231164190183298329471646491367644976800219757393733688028696093513966810132436836015169917458603729949854889180685731380461632193378783653385763759027626042647796133848862572642385480536581778108314812740660239665948194107646741595859548135075824914873585457602404058590265614181137830840946738117020176681089909789248604306806104620875180134870624635361860421777428082897176971874152448580386200426164248675397201977106597215760767922474724439234511808947809837965043488995426447918806248300087131484235198765140839453370856206780658312864983114588400641559372994316697361247420391095502515896565732720460547276212504228163602960068379285946025287414464408006105748683801773746836465092932538480805205014600414816165396247271026033013712037270117900198810527599239431325069179146744362699377739793425956868573334756817798222533031478101611123818241485647677353134527869517753064418737489798200163823324170935224535927595268371974044036632183459594379471007719991476135159544402767302925602762232564080168602157916363336341630761800918786065374418428769923289434992644268900690152947606701461992747378862466048938952737069482501283068326284701608153347099181677501766529077889852719121029555121695994670746503840283593467417917507225570498518499398806527193227717997603556785673954205316622890973333721803391476112866742078059476538007408768908508727193539491037063090593230509370532404902550133843147974105649270182069436789114506199726647297014998122133823703035040684758422336575797105745497019137125852955549427091359024148785499099229987763768702865459673821409587712012367902908800386167083721197619075075667446879693617728880600908080218869774650762083976654549845081224731006291919091214619931020218979567858700147689630271029501878065189160537384621720830404378159446182387314958748018810689924758382001407727679392474701184031063976405493484601122133152594908965355973722274713904543613055010070885209393027414983112993514318809174529560511980860956225821420221099310101976197740005480953785197336114210276055923939916069820438315320625315543653577334731575165477621028774686743977834429197827206136723867835451012311847333097673710371740619722722333576514732199092947563353505763543205338249858456772196087908118611946047365271761240903655348042154148190831346599042934081633049120254895040514955058193441625100600349021860243267027350820956341167208602092693662459208682218172184118906318914653604757654339759834850042337806563633901627234487508861849918300740735579010041426919015021137121308634160521024844290461168851439490798901100330013183224691436709406009968490916255839385138561628168140456631820362475239303225462364592657261178826461688800649152468551933026865293941464543319232067590296422170861178806057491021845847376246614276514228309670263028609514226787299731837329233371863509796899413777381379572929460339976223145771000657883953169808296645435034001575183117357714669945801628977085935809026764068096492749769237411109269460088209199277999991843342437367322209440258826671668179876953025447152912775611264094072832947959172416789780214571535641981454124772433406453032580851407420987300839031075188678630105949483342975355196471487862187392924929642397662173264722372535814222039232472809363819695279834134977587618470788476405522704364839136071290074801393769467678900642524159197369678457706281223749297315003410567097312836681584603789422113207739393389214518272733374877027792780586933578340160399598765362886195628233557056146249993680665470928650044671481718704034127822986111513119399819903848162640814740866472391722221274864376539642876417199518238351656368298303135643770234988831177196235908011609211829146966503628130337503579809060142187086197848897868635516983990494580181420660628682743456286443195478882879116465995870015185763620606169300032302126542450268983885167996040393548674041276718843065005235122309069787529468714741807302358048787301239286585884921976184548814722336949910644937354319162390369990292202371614192149035840721286914282824917299462388067226888726894474294932698680514761626699177807020355190835787036268863849125972407171315829023877379671006440593081962799814667642379395082263791277926215251022030687266756536575111999878996161943967548549803976182768736966911460277396115906791196834267632823030258511113340141165350233232514148649410520974570235108788757942190039990248229298973740643587202339476751084637408619220717082765157384432841956669278540026211745477092269668064318929216331128925761420941719351283323892627942408532966119439894297712068060184973784587406058127201045252959981914351917475425193219500668987122422430172716595284460296190494093019957038924528240442112847874323963749483711408337166001213135842735299602074847579697054966663391141309958358573661761179903445816343386870635403336550149564613131909082881151754599735764604312538843090716456133717419837650161534760232449866416809113641770324197750811777828831402250996060014319681008042118541464903939031576274515280578359467308063557489653820879776368846969055321081108733544918383118102920759319486240784134077240655804336503943389105615745427605922910530523076077382222706061783652566360804337822178894351488662561280807519666746565551972136349644869410989010631989377592640535118126443951660172746570784435690349382230108541714517268967355837754035962820706846229300559052614506227600751324688238852655773584795192622437761064460251940947054266516621041501336205262261572702831476401363384238270824781430968124269224104396775351088678951102757770770496416808171517723645000712408905291995414841297508555781046672079348067009484006898245574715037467082005101944091888220180726591517664918583491231720188810066826554351069517086858249676661498828160946412243499895686659780563745188378107469658540547482258691801929080942662988069540189977451748361081663705391572096619784819216474907498517139009532752957773001792821985225078315690158141868333063229812589454142099662318242061966226984282419901763898453585815133259369181735354948306752382967166166162941218118542206222920797002035484008641855818848530438481604956324980047818919907817274125297545245048238200996896543358296504595400897445535898117590229098064420149647989006625839595318824415762288390868010035131306476283977334189313465216006418099182823259676643455483682268031643663521925478685510885755039796114207717636594041863141010344137816517543359372143264452251818201544378839405246195086335831274003167048606864308218441182645087027796331155722741940276010493835528443092863242965883038432478317354823617784444866618777658137590152895010365465302402353097370988751041141225962077771137954200539133970079434669163944947985038491925824884345669691331000126981807116594192109687379212553782994762789207496637881782946400884867781071216332749205412744627224869107230006586477639543770755178802558470359353995585784342950117588753944607725511383504963449839980657118948165650782235398869607855545724053590202430712926813484340102421310072963931712567867519435300494744909220602472837204551494462666824770443174791997255432554611900873802968193584921346872522059980016646075335162951235455093563252678682619526612103929136173389169088788137509651884275858790452051661557020452258597337640915991573418697235043019067903860014439280312057653974735056995517199550078438428201005111016599765376192973445072372311059289959280684863069579708004690689172754589424196726693932794449006140071479010828171735883342556532785195455609475323863059611981482987941041515558387562344230855996794957598052773769658176971413525237536513477254374139242955050265095483651547693767063567574040564696220927907748070306679265042196307185837390397785442835606545649029335487545020772816598406095307849700477178329358538738620551895305518247091939047518483493111159885573921675054815705935482240723673576478581696977176986536021628957521212180200005741010915157145267741168129542272926222961202986516436933553548842519415842764886329752742769847742614628868984913674894070991069820820065248839587268200377722512512588908158166492204551508978161151074986418633505537686264415643847666951818678452422531101437324704566148997130810368131670127513114074304051216635019768096692625484548963879958785677409093393143159840692033966338972012048146024866951168194243558413941175116015398659959815908988396111773132367549402864902723646332658885173045767785561147979858639691386767991441087677092310609538567122860829668960005009267200252451374530111813509424647578812118886303818039298184380013868142621423290507029560572373163221920514632469566464412873284163243312336316240606987619141342730882605000668887434799160879721642765887155618187370285485019418130108750618662603476479565364799856895838674415845162836800217089210971643584234150840696942693006760925778403843623755025575251741950550893649381124038083011666964482256682721479047776836874772416448674046001768178870217317676941997319585148697323004885411611387985503161950339016469730793636724183619160893816006826668857415623097680013619784409197195325552181507953355333147664345599344908803902966193101475101689732385749669894486797139078596295298550763656825827509627943486769883022744881089738566933981070278333834705974047818907939847126699689519509093839252326761961473799363751737654474917383830692900247344106914051901566427717886912107277026696609772923645375655613550046170895987299425172160230522746143476629350461574529729921618747685366423298414767631001708051004159775297334496569306590482616240266089669001356836140700750593578292078083465790620176462516576307437175004814325948403900208163523968351015100666581840067931025526002256323397656592567262640273703298526813062874566014892131233370555570230519394538052817490978348816235433734233911448970362372346591486129810506345950838634211898755507116401330817810418148683218329344311842098332357416308819914852334108068297458879906069045042370094716308282987303928114442316703155267913106555774091664327515729194834229099523699374907833870812014682088425501919152913093675611089349869077886407543394704558725470912173439329893191098167654735196946799046418378039708405436884649432090601360231329968303610164439816823123836933004554799868876162045377944675595047226158449320733982223263097124601191975128341256169893161900225856965500143748639270914966959080599805729302319867119137729399271065209730593392429580951419557602497406476779681676111605876496842500008988629989718778368825104590372551938917639913704139109121119327205729519369339441635731899403095708489135104859965895242894583089648989793815712797183305556547779733725683140746245690291768166866486776121964126272947651608302737607180099419719911180192499680138644471563775033777988397700261254802863328132089797522202719961159392646790293045820222577989311238572307759901274419513306887835669853784185178843877142801819401549434936228068270661880061910243936976335511687114293758411708792168205394749529017274439537065817802862041440023085639283188920305026446027153014137429695350933366487189427990170867139061596298886238796915541250587112522882012303435740523731378099247465666911922102358532627428074161052839653332809550452293575114273649782371087663105590214532743622892940979751717256774372022197844005579864119580871325717829894069078713714524861260426792827384910797011897298754595774789169879556995829718875397561100072090524660001928269745544592023125570311402481016011838163431951782931320292347898522985981376843985018392258933503251145375479262691742201081310688565654860971322869881760588388942769672462081375033609409333902633194784275277656982733431144217400163681894232580294277640737411885408558842558025580458232089441358594538402147202659147709040328469367736827281784481182363401205380292814767140709943372583497844490386764829597073275139076107631258915591391717305591981341059519395306410727299470602301858098933850758555775413324455255785066616550145800658027427205780813038204381959887636809379637915942179460486503719366610653578864541582499446457669933303813153889892402573389647420300244551967284993339982077664999573611594241092176060619893624877176218298434800029430181012088245110110976511282880007648261122513849983962250302469286417076946753981001063777819641453009856134371647082844714398208939284064919636106582961251160085126134700099188440525846823270031296908932132940114087669501353888973998958272785061534110366647418076754978880051140666991484821021627099178969629915558852837547100642953207189706104311502352613678693626986063985405786777620550596617970601799312962762210418785588397822305553234892267982893171725680125823239968038665160935534041342868614971510595355201958380750294695036408783985201839516257383249542416433837464042478191896774138800921367074225712861630559870738142788927898803329235506888522955078709299575632953785343225622460924758413628511692781657325370644176643868698910584361619375369582360153712413882709158694273663753857095060165164569458118513348173844882660637870453660290088652922818032936940210464236386581555034050066079418915669086859943201466110236759257499164772748448899166510496815430550429001751535209744660982724541069215411156141480622573224361307941863218652932754643088891389447836437421247283805534000479976404669689846260118805912285440313556289113564446346083466149482466790232109000978416597693086774078703812863524931413330315948906037823555152068040920312250041471045066188334770937327506021787213455730733188588809573063970217878779869941280229016187493456092356316599031796217399615154001178446745188987423907540141964806452650348686717401048102695529060644633611944423150739269783482663888289809737427110728917004332273384874883917733317317577674281412564475652696179695228703309895380610777096843193537037224631847240245989763932480256291252198266935068093499372999040497201250147407630658041552764248568434961718944790142100344430804328203840626556618946825297373317148051145127294757156500674409490416336059440110117500496737785804101991447336269227812779327416811573436344460175595957498219830567698963207309645314814579900713923174674368865093679374464874656509363470912376539061102292601924516414810933696882177980402457956795456938800496267684180731598429658227152868680498693894716255411529331021783548480167137496624300362893537848402810760032057091824528275348407633711941497106998939504515341944658968131153881987151624397606894681663824972670775631037348705338585424918288486594818422191938976931689720347526484027163326539386919980769499418625125610745973196848160952638979588730160011900204364138726389024643466410493525266048655650520662814476449965813348054108805997106084162639184052192753223838582390573623347300992674377444409635815832693526074145521783843003229780080512284149466541804272676735758864303833058952089095424824819064234457325672723622733541904069602934680215230906429872361285456319202685149452485981138932345630519725194919600537268002426208747373404537647144074746447360810287853684191742620065440331659892289130585910118353270758280020069691949196705567303204088190146561559290252771782690482482396525292366959259169770850502205251341830487428860790733776652811338324278647542583867784695591166303119462862952767083256080453389352485507864158126594326888133915838920624168528433743460946976144257565032494045164139510737991225367556197621935075498603143174081855752562289660068184991725732546061236978567383394708351022366227803118419140345359707840879774350406010457465512202900396419675746168261147303316964664833154760825160157801670975587197138422984092049219080670122200898887992813173712333173082123074254586104540805291012603442172736901929611437303130852543486631104359917510193630820892004905399748029368023432774025625667221993753096946398637140092845737375742718553459450082088395482386222326284812898143278240176029490811553232924715279468958340648200603932012752234168612388806207712629404228296846855267376477975619355274743476664984328221805804577023806377136203077563024296295346333014914069358890605895920661695998243778570323650407759843849212186576288397882560454554438488162449008949692447418702430492866131073958567780571943590982425606331883581607499305701037806577575940127680731846396992100505189986790087228579566412179853707897598998203293853234484106243673623109719681268914130088715466482238576821392439716659605840463898449249079782712293064367434885479518814004278177523453395504679922658560834102374367617083990323361797947927211379645478729525469679692953486870876304684083734135505062653338622246712929624543858243718776693199205634633564617488930088197326806516809392803727657550040920255789438984763940980979606646115004579305808722633410248137645392685664673120482712776825776520528522700772811619394423247805235903087130791661350394454703358439072609429330687964094393279814025536086839532953353638695729322540700482417865942063702679073900504952174956985137456852531542517634134121333562838148655748581360165972943104222045530630648843486582147859537390000883665896782832085620626739111597439513911413855521640740304082291901109461714105287844611528152340481558377369271884625033173756941331065205433396906539873959821864759895528055920682925854078007174941820231701033426828302417698236656405036912084490831310606174437207666607559882702058674586759762945117944655617397101219375339545203025521675751639929422692870189846226999578429556163166912327080823661446489076899738796270536815837582005212581748549828615150131298355776285464330205990733049767298363124147355142328092006135187488444545942063417827355392947268583185159883530484164934693842756826403988518311530068524458092269938395142352874814277288762992070152029896781440989367991365615423484266166049971106211820947792514579267166963328557062754305721831268058376401017828383831432884816887188034153430681915408076453380098391883185995241009632443582565458015058337854203035099743040930018172793075367894994719803395656124482770652009136776702741692791400363264839753070446953098810018400331128461364869957310348845605092186493652665738559328489508953931441117699737437028060000177044889787841357151007078329627008743151750685962307268431452669495688541322943980344957279363775097035482892872553991337518629882284008535353095133789744740068074732170707647275348175885958112180515611156468193678486250892303685604530409785749362549342472663114688299283265429650209338148812393338859800705336828130839190819503694628380615988399430041080216123095000261939121742108555099223108733865264098523458057287093620515741563511631402498951820062291374006411360822480978727699244245232695776484911846862814278829440907963859714253471608206816361087533619168365546934604791017383728021497599876548588910955436223916091951968664262844573134573391391778416602404738125227138237051371009483938096093311183230238499272616289862531903012324407162826945544763116849383110498995418475765741758846897055536649293949469657427955883355166740827282200646832163248307600747065136632934346415578020931374869739302083006810075161935967287546076279705869558419148680119431950654434075143977473788130769832372936984389541237709312320567852714374215586885934312823585340045770868973222835837385135614988530926898773878391080494006727642563590278216513461118439689734939922709523306664861687302184445971607236541579882510210602696129626293462930073653618129187016718802986574216567007228337200861611224061714794772691297104343017830856702341838981348419693643881836386946353949669778284050406210500886431526051316934707018608525915080196470298959341113551911760732806507276877006441946888745593263559442912993087561301791009795298666703748389049218574473517000231440810203329437998365847531823482149778900683469588911938398197881257855303311637740319214902792155830477988435413951255045187884006685254173146694275395792560351051462110646070601656512628904202533640034490139904740671198092849643494778334831630979983956673271957815541910771209201760533295459096499342434626231987263653816662881557231398187246431517560135210231680787266627304152385072286243163159369934268378239353650329994136174952819011357551681187454383357250523176245142278034701685165188558838906310972214986868944621409311489855728535243143113323217631499901980604938439740068248221308815092449025585233765610414084973456430852887562658808613742914147049021178839754961938131904013151041600456417011324743364438802456195435712073355105280043415640626291462519836482886435455691718675377639715490092944401298004058847958003131678447039739598421709897780203548993222456019960430497209921123161065170916717134601218556250618519764591856853295273562262322710559316653996206896018094063521927469051486432029186622103318536209442517006521973987991400592097318239873020602138010658709158670380133715862764064152968496789979276073040314133357422710155616856743737018821499841925077478583641482943550063476541762654193064209750998016550780045782742856734402859251924677605823944562210527066452488971078577030253462310498563343874648897988854661444473927217108280924638952412821286600824136518859066370087401951834560850373652972608821007555601150727403917101621103824189098898210511384043170314604371574720621610668828537857303872014781768798894868695692407673593939605015518877638958191858590960242763835214715024180432730051359144464846252485955354110782460849012944150298657143457848285914332664024486506137451191312312889038576447342099547913066151256157477382732018564009877006485935444473468301190421890797030620272442428207954471308051904133453741256151441127064429377035605215037492323288166164539141024382477312264554593429212473440414680335937140739454212597506607051041891416679797812824388720474651235685208425756050663185232591489233209247494853922660763962513741741971222033641222966694259383763172633929277829521661711583985537836604793336335131529682724380047794271104234844980824679592746380843691651225264399231318397631413654315081025210733675047542915984012507396963415248340358896347924857868615553664921258915820259764767797431605957262565701033651490840839571222485381435115463060326279602375582458418040885895007874187327772103692686795873242731528701613787747393824136181355367453642395810738853643526831428264927109902652397716203872816380692768134160653861995714778257539458634152267801187547486762483850824381120223544308387133870873492717866429621693832290009990460023551694603090818968271285132406117613857631636166539311374950303011605648715160227518077585380967473378794716599722509938279529863460328071213860613856593146436726415004586474952585978504622945162572099554200292437393916882746417803377752684272612785316098924394455662055633563003747820881723898713966753269773760622283777004231283185953636233009202705627192030406358015347370122246582929148327819346452477114159443879167118759932090147760153687982617462648473341818628057183171038555587989577246455814242856791145233706419501019211121149002646818336406485130906311661543061996485107861365855881008278005457971952267024865479620848893308876954850344554698684553777989763950107980354655806702764517565754260070479417980322852738814731301417723585479543425811552374701506402461782312948986236685554620486863974635880013549917173431979214714808059615433587444183897151659801428460421633344901440185177626740709282775678685642137771702615433823013843817376778615737214460218796570041118539893805276680423411866119884376974568944988765395487242536129503229446757119212241479889339896660746302148827790775050996341921557703757681432912107643340709131987262993313650655054900418131028411252271540105801526855932613358427675806646660548962298818183736570880921984651039284511117978677217313409872542529014833525400080411851512680501153798706384409636490780561522842818698523731064310607668746793168464798789032883909175646735197868534397908587370084979429108228807231648471981121815710685169734294712587085149591203375508810430794429671711983048823904335843628342189931617069664808986314257372357385391359978800847681601245045933793903668302627199696857890810620457944824416097854732094826088728795236539562525480691718592782939284453081883918188837030061634138357560951698318996997329655331528929999495245451992436643840461645429480415739129164840150819272163792980946679672997444295605499640382711769759841550655500821287166769405860153687877199683313035143306468430997343976639788696381578318205590188504578828052999845144941903547935983197988779458646868958074689976937174403144327682695250424080753153766291315040145930222690605028541549673290933959474424307429591764723376080358865242780969009157660443400450122741841779637267661369562265513329766475964417253551445175554303282792860829010669085985322665573047193370495026323246339025447531443250596551507151014357047983408193659306687951988292166117504539470500129222145839180708059369311264592249870155154975774413792846869542907473738780114847297392866167746217055080061574052656240446770109722625962949004122131472649753898940251414226249487578390984764374471781989548643581403854587958686156824279815336703552083786918680178955516708858669980729121094669851026681711712046061682865466898387326655101938361745635286966756498027076044092254124418390028703385142439913044616851187685888648213803639883280625091099764444891382559276515770119955240705549114354782031408884685816716832413095818817359258893825938645208696207236541872288751768954256222194507154916625568047893115882535638634957800134684460627616121507132979309589759296722839052013289715831078037569851704702994280026326251444520703241591930609011045836545438136574321062746994058799984051700311565667832935958121487497577989395556192317434306508716766446870672944192670246828701082332251508569849007644330766266068511407013304623299491984260111341026864225882491479609898424656713764173408928826058956093177082792245801268505264405927026940019428896893256465627015059082096450979204338856066157335137975908529693794491791095712311352928177176340648042264586261035783378021205810502876853282993655727777964908448092710078912925813565067158993616288384481789704785337041776141075102072829393783792494097328598873200820606679414662469043473361108769069381978290633061288627116028740259744076844102794126267264093774721298433183883911944156505394862157053512816636864744502400417716955318260817847588445167744329636301546005653283002567425578240955712320580604280737884127481439265931857426921842922876330969371873326388447485737353608550619864683095052400441761717042417643644306950358567093634843454855376333941116315331484686815022446059619407939174610190866380952820361503978110951287735290822007956171366101968068305832979400230523344343463166153907348535795037488679474071722565220274214469450088831611991525599680964478984105967321988306700803408456496819999540182387694045567487263874433095741180124806555479359340619257640445484400544144700326739044340419688084083796205277345082008818848767287858765898006924651157610236024147132014631570330066856679222727376141053612947322590859940961196151472339090118033823130667530445445720838291322988708790383935520351241150929316886594167094871704550853844060674726233053133303515068139251636182097475997320483480599851090665656725424989457457678890809334561460611747762314977610445986255530396022060503092668451141723351978562610765868741183459821682066331693762568873024393255856276996884978287968871844686233456464539854527768812631972377724819826442492204429456036799510008368863718409081370464722502930610357882328090442768858581205756269514359342491514272398493619762433325334789560105429636119537475387198134716657377826864312222939117290795082175168930241371801622886420805408281473800147731365607015122886413195637091081916112987745738852041123234805506992380942598638815950539063840802496659865292679503442417147766322031260350361214176389199061438141646784339862637405454407229356494433751588548679473349825847290263749226408525647570822416973731107027189257079438762600026500647804274408731891487842107276009527537625471088457566655755060147505837774913423519838054176873995562402759189991613552562540000590611960218558716892623370951729440540238709815548589304841876843017316781279300308087451517037071762590809221308731725321528638510997959572068301544367843859135196265367287037987735661666486495196083117540357204120070428463837967151902793024993241547225907217307894394994607104327622557282773551604264226574681792564824003932122360316503908853633443396111179622016422286621944883447660477821374870506157615965197724501673896203852126803368704849637033079781452040637576998176969626797187033927636189469756683183661055490524368045621318182860614415797852882987881815167270060479619127882117784313706361308021284701056571843132131546868564290050219656540349811159620105232085402278970653313298242242168852586607434509937531081177328456955202700514367388061488941071398704249321917304837387298874481139403666218742312903125277943022276365396925925783034520775636523140581472736149348193096410875645033326763295130878578140767657137619033489298224525890029223704669537649456219827252955304332355397304467959360980593183176908278758373675638622425388210595154300206201246684734876437926415581874248487784206903133511485904497299811359394642419594294590606126671944562528767683776337943273467309603870452463247432043443944197401254027536817254348606118279748797070800808238859209159069291172400197247773822232937506970768145733724683661420596375115738847836632598407637853943940581858378634014430412019620321023946918124916785045096854889885611272529548067243799128325635344475464272373156387627602452628709890491205937303028157174501428406467213956983849422307849339424790671758219930008376131261677625727826219821908219817369169568763860358017830193402979422201315622855874508135215757870250066381374841169821845838108273016067976590421161585305347020076821205628406816581982992921432709777483141166089895822919833109646715776375805219556569426474413731522990637920488929731430935815486470627682758705566278713509099043362336382778897180590660270261497456119584267631976026257809684128765031138622980459419472933301287216428802735801455068719662188456985420077358400688373912131916581753257475258565524215047882183778912923070732822111941741358558416115652998049096998690925803524177528996471513224016288627580946417014328024924874164977932998850134652084121519265487763707202950390214473819192388071275271713622742952803475141500724602190190085320571824693626520873677322810501944956092009334218946823126686504925575594703025207887012002474239370705256731204353621258895961234989171773274187531881550833564220128850751696005004276040794206163422590810366053779017118257926752450986360592276492244326974120941313161135799345199645114836925881634334197039641901159761406867608890085995493363478410739052900660802187904274589826610086642795486248590175939282430183950045049532371712235579120143552457951629178742585112728202360780431359690896151406767667331360346494463983618358112670997570688122948637240779580224232038362923165132585428558455513877898226799441018899607163272115313541795496134061528306878340224639917532419114515766734763354278119503094838549054387892983349482381277989965942775818809694856328227970878154947301459087590724730723080893958083159234901671938344729549439548808966347461626043871131448191383275683005344474901476156270308216460143425194080565943958790949335385033932683728810361113334737752734837353847327393818016366407176006024650386484936277574830260964281356390891051725335335366872402922000517457876213521547818175037980300437620655074302689871279557460999793771338721266732648537911416051172730913583355804218960889661168222956043556032176381918885219744043626766248295839029309345278403969626991694153980879692183990166457854568028817095273014668232289351055022938035433971547069585360974362753664354623132569392790666253979433690183774660664151438257640544430572133474416495714917081616680407706331477951829668972039883917331301479733703801380548251312917112862798946540457486720625035178798837626228214107889727151243210811921129971592227543358436068332809978087872748233441201830817653937049974710813487726533381678330688894670552592999026929193421638345641288331494138159201865448421219100827005095638999178724010426602459553389509317895158494088156712344712229183252836021956338748297498434690552454833385058958478876652993765159402709281142068409748086115388348710181536921949698771515471452425543865387695863781560578570666829806905305318438015128470177878649190084241086529943423718776976924625025304274852825841811623222485385800033484995958921333887990888564465367536350958005868939231249945172000633285142173744318052148438141855400910142186833985677413735675289254710208106889627365123747910444607889238699448826410761874545812889335691929996743029861241608573011082182794386121905167206616853550994734924632283145615356336158029849931022523588237421463001788706222464316204016257242672598213095888362278613346193047496476365704641102230768966581818499558876808800344363538956296529386576712227604763883620146588965184165845791247869112093595280834267705980717453063189514047137813943581048078811084684800097749678948486428884699036595535095291164906122658688871242360550874066856076575469434259846913547978993463064886286000439688241272459312050180408490295154531295513137155627461305995439986761510588598079270645851684012264783984397190807669847671960804323607086608734070976343620002974741471703369567217730479807527937700636416427890183977991619110480015650460640429021723722668387464238509638118998409632276061802655665278862224307497294862423008200568617518425234495152860794492666006172928253713231139635262907317422743491127566369021533878541548020706223198283794032706429314851886163488997081043384558772328204448736042018346557790214587866446204470353775987222771618505750042562549373082777794517270649639501655726905372769074811758246749057230153764862778063612265501319920673137278906209616956022210352477261695167178762091141291438930073196628567069747028095378254355569635289864265518685335720565904855590625580523346756341693111840922192152810057058771551328236149573002467060208787910333581162434485049024386352176226696014139912032944735308243530436311873654882335989465208434592377933320810195044928316340696178222600679523505200073331175021131333633049331501766378842250677436564833370616110261845845841785565391526796807003557822995854226217737939142822078274831163316509098529955742562670918589728566687790914861974265000708762266928674886942090028157452004257659418888546049268980852739137051685819987360838493789752467865655507794632562090228729036455227128332031260458568853547215007501801978040504652852663689716014213765493447847215379463738200441009270335312774269605512007294147305852268958683110328545271297782350528305669697895277787423810956631067794317667659113766202961975865455608355326213776233754559732598717000479962143244548900664438557651878424400153090534899923908877568416628721662743790312113116526699922817244834260133844790080504366434899453467437976218781659687342117085938893982668426668887499084820587980797011900844207695195924157883817540616801515458020391841388784852973911767571759025477845403504727592343922517072236992724969395703899912870500977913080222770922390983673930972330660171104655739462468940566870472585264888327652754755739817248881768478798630866337282140902664532156106965527790269703812740685059781360789988423020351901642679954171208436351113207339053175446996453057831198305362432245316107402439485074947501086239663185427004158559518848961783929358135208615125583524967858270415072311113056853442338021018705583131625225302416626526362941769396321082681825484137515232328802318899438684926657849570134457670236792603503231907395726432514760145969120843581984557254580931561482749371105346815663710249893389071513527240625917236447931909504069125846263108424800527907914729709943053941605692063967888750683878783304437997480244450706792148391565933141278587518169425068200642058539303909296330443917004949404715300974553194060332657223968920339382881037861793264003654967345802825556125338086517288137564605949851212056177150217595391961996609481365235286248821948380804629367013431154918853585119352012112800785670632111126433039093932993641925109540228792412405259409901905174366975087363192773139886270700462350310757027192345863686166027301214044137806900134167527369375261371756521290836542580237821409382696093960880275134703674273459273263346791643429405224470575032263816467696940465765475815729470031916115591281250838846628888319756653434834170297323181603248319284827465576836484099697263192662362486366013144772108062785134115371061746441242446292187209959887881261670576886159481687426121736427944000907115032337906839558800230335437036770930070055994960881470730870530185723203700271640137364423115527390302841829578955742042026108711693226666480178468051864728231379158569668831245611769469888184842535316516784771164365277482713908944807682810189318366730730071191633397192623132972817735013069486431170801981341280621556223982507475336739586414636838078803606841395797635339280423466789033105063049786956216063564691244764209433910749726490574884130597905170071340724334229418377012362654441566758567614930687640309419784820089446569197062014178764052545371272332972019475382546257842371033010922667706045038732691200250294665325592101964065696304734243725391712782193338886608046325862170911513208124961134270000715726077077136962614237942569482791810018087028808262363712501818701406458297677076194031294128843279374099355975634620014148993385896611424136970111905249938412100409186469558039846203685618338769518063418050234079475801164849447472772872369161985553356945602215899674461327713214750341322039108770024129363369799053842081954850715393548869979235296766678405439495884337724317388379686225787576765473430963615534284517370539610414599054985854669173855716647907068387759940158766310905121294122861065680126824816340865262177232793152700647789732041137045745058612390849774162554325749778262702282401045022428612434339832986417231445045495610953555226166224219594562258946414792776621600495241715716112020997337318025204096953083593175365278321330281051042747297268529139738714530233238913427420190560828513697456486087914730310075219996682524075042224535403828357352574865066989300881024390853595549444105489011748865153270690636296832372846728145409644746390290096501105112690415253575667146240366077764981264122381976217772266347493822848780318633362780135394498892403791102751879435318033206415111468532327381655177449797213747905631746917140953766832549437080766762893488031808827155256545382897925729386940005560921507618848452103339240246478905057697794125690778449856888615946689960723795927866021181267424904833206299767113712992247906290081567768842110560805489965180405638828637046587316075044822293940526583719419786859645730187387305138134863348475803782041058813763529890659013530304147882843962420919446469216619204502919316520515825233772937544810604268041532301457516538470268789506322233749323446194661837687980739893825410827280993745715565908963545007805178913458323574399720171001367216210422785500253431636455362652163225941611322060999598693387442768715054927651051032898340166690064442172123419666694129013646296886154547707642102962172438282180756351765230417548912458050957438946738595695491836805243292187492197550054091508617121272056009910366839715310387753625659373343261884668171383491279221610473915339863856471926437532660725210057846347871046920936068027429887987985128788500996675598407513507475247471819746469786036759635593941040954631398353295279111902076528613511118494520263721033715869755349061743309775604652595495611918286525426275568186732241590266071113712361147982307299466492612332546663488199468298304090527026944481205515234898223511080382688114372191161649877934493683805674284066179825800149778229456771524771610114509827610217633600323408861385737007507506065525049125757560310063278035189457759665078536113684427528153619970424037367631226010259715836800353710713684276097767792545316761641391385188725140372356296227393551133731360756289917715634112228379192427402499540998792251881138810956051350972735412694534528113213515577186033446097012069695408245241263811612758082200546648579984717064662755789982845518603227354015499224970961297499675175371926365817498676698907856938389229602816256832671685628081563062115774400902909551292375709214000722425306215766323094303825316783001481194685111809744249043189241104150178768951406818572382085612894615598283775527296902931347960898298864967040415821303546527038587875915485325532700269494684895073244506357029849469581336236404225583664448254048238331981120101830218354258677857177696715094738447416562686002032648148566423280643333863595086158608106818360948785028519475174404590044973027818359790993606912429764883666661806251111159418183881648685457563259448129658723455800534466622013873836660492238563712682233513222020515222357418150207212202937960282770110195836223969518400732423517461218336723224685853482861682952749182763133132305368333499705528848354189032527585437604395047376249825367130601059753619966555662070728104325375851853921487337376992653403179909577385969670873071847070816290231046483100101279980128284991079644857083414621238080917443708510766610475130309662587575352976483486073259120976158962674600730688280298502438796282927852170768412372328994008614863165426278555508866428744530890075917120864364611813880016616283202096080456178671575239189301900296878506431753148517958126449541116953969664075186532650560858610794722550150812098771156099256086724853927297245940794857961163475776619848678987489876802866547284237047974618857995400933929742407959606982822606951756414730392620081001595043531587614690008162565494168612084027437466688839142186717149871235640292311891766432445053591719855136929692157577373555333826132027029003080280022833445503864216736139306028739142296426720908637333960296997048068524226667814311701390855857980941538564734349240451558997046465312967225226363567903452719453935743858535139548405101440061913030905631925310114631118348980001314338543255447450903415309071626958608336265625050217925532984862822846562377176512731649496006731997110113161303109359636436367459732993549035255644235258716305806443909050153852814340353465156017490562194172003049271810124527979862780441624430185380035621735486983245178846033020654696138057959165065913185711264493824451023003498775986567035996660310219720159350480428129596515675305338429040642479717065036003224316682494915674673227879019561979486211550054291640820705328159551252084306887356375944040701660256990823195578521427476263291768591503768734981972943151340094208218631150163230844688748558776990470094037193929178418369835157641618872787330225965708819716886944592942021428786900601002749588403780956049174410654696498929888019578012023763722873844452563808067233452742141375700201480052793275621265166266642096134957176844451746719471609250337624983098621862627545200407416241469063161719108974360668080117840439610006002656622787676733900350528984324476472043880369833328717739158217035658497172757098144178526019905709006939756621520552103601626466453363124674874242121893475101041952153858451806813723765876505677275780168787753100863526890088951093141963031335035770442930100023775942040055960733133772441656129328618856538175951529685055027214213928114053576838799924049426781996545975274402504777931959302134493554102135484267749709650289396184633170652080029213746220612224531816753216251589980249137650835282953286387680141974058015460006534733036748145900889466625754171986497054168180103984843058309482377765860093126652809299585120747696761455239777380572121049451412828287861233096805137886629304543774370199872877103992154154035227313303458469674557790936890305020065410089496167888965057126694840134539663186274314812518639553190999239939706048017521010580883169647465504263703982632353835599366722315974393288909869238431175057158773150164287950238008650172842504580410517620317889976548975128425217660567767206741315048386344605000626255493432604700529024223170695264195916314270179619946301778610164233318183609318501985865057617980468149178330833594146657222000971785762314168724353013207860210083342382334360119517386537220953670700867572970705575227696360144594399072147989631117161961733066905050433145378702499932399299524033008296582192112401169987069537839635346976339183698046438594556325188000474389761184185144115156417928226101633458233425968256937692885651117397327352431869795255436322069748461456486964084427044833896844521823691087534882663585629795033103499011968644533569190431395759026528083002364931013786175589976670115431998860267510953635665456803989305414726045531101351165808062153021260281888135481315268040823465541026409812472943738253287460087941100465486502137302691967913435905986429484112951693382945722197361917117628376269984459482423908260152863401724670735114756712443783652615340938498500513158831159183308727420370820917134902955890549590172052562073179243235835736719542781761594786313519407168410060442978631042678921785070300163194147033190867829442735592972096916878574535037208180995393653372131574754494083526724262411617042074962677485629241656472496217188384386640308000874855580133714647805985236107724492336672511109780715299927900306637368548410427689351296027632334567735380444179445977906590806064162321652505174048220528868057087205473036947472737837853306124482012894988101998889852829383173714423393808676428897459469957868572376744400266919363389250156149304537540555365861995398720175949043593648477556861466319963061651254085661574049717631583843440252623050354963147279854357455131125862938311035755822061663589169600836067487096004103098447290816367385910938678149756048415843738324269548963064788955895668862543149379093541405378487102001418422538299590775278380880002387427238640391952447090295546717085623523347875094429270566127163594741365110775340328877323109164312773879182986071817869881938813668059229419486339508640034000380447290551063859506034493822564512763823974921459052819788308726858734087582512765232769100762956049438275965668215627896999469815127407781757970861895656103270496913623392013768406861766946984634224567645588940199240978324151931418993144031510553982085798386423335929181677724740255083412306300986829946307765433730141416458706944459688876286400832584914572800706994471926736516670289168492148222963081485565323498258314107770681614973347398954733926284626945079465838671258860280977649467004560736496533724955005445995097937186619459686174211226846149091699654422372459967127409891374950831227750315601137790856174401996289586039120576131718999771550530099060002834008443281456861316947047909679652653632685861122805600648123805189285900983273539113949870442662525547059185096322206211328768589343957524520452918204874717794930045469698786464731923632570829951963448378968977102211828778716854758810002014837512027800137413824454906870160575250009093798831307380767204002769069435359032260486487247704306636531385292170436764940668133744352430676878526346691276188787104475774320211937764843801843570466558910952913126689554774785231161301253200504118381393665571807546395369489091248061611043919206096700569668261787118766835484375393999525895481127992763989710749655100280975514416689653569068260581035690577624120448266872096117249627981239238484625026526363083078015204080540773254431217091244386111873715497011837352914324689195217230706620542461197293866756928702521207982430638759310543544479649492848195042063069074276183487802469032708130571712988207733673293840880883093736553957405435144508887681120141259325261727702769131051058355108630474042573207188841755848609647355156129833039688496781881587799458715557200949989271405804345028331544886138931968028802578652997125733167114454456894616550166966829312084560943335097923901230706334245040977127061548551963117706704556738778103472668675657542414396844160650057065468112476666701955733974129323593106359708839569466814312984370117324862773112467338208741337941201745509122788264901849530776398732470588504290625108683512424940144185622476298313454144909410613169406384339543716745458828627413191994908129546940725435171258872982444553250782995564989079409070979742027206936377722761349823623043078312027946033026093554403958906457510942511034487038126916074043596710706993181946999197148327201758456887264767091861531765422787425825506232749733368432833390365190890393823784318551835049357809038482899650999595816277177348389352902852771088688333574549843240520929877635325600493927308621117301435305496132770005142805911320844500606557248975048495397287024682931978499805266363621236848962515435786449614441765247299565961596648491870997690688709311317640980680051315723134215340829022528776542795317858424761375895642217539376840148816047939663315336866514609152863471589843243941837929938076698563852705207535315746612810941092060122366574436814036372348629052150049516555556134972525089017308832807595262793536677728321752933300800734091098350127244711101293451193059594092142787454091353203435146110897474617702239425263553750589093453383381741355818297910403401708732991591856121556247451015002699607593014760857652175049324260664118965231901872961752281139120403984204973136166575408685789710477636225785464452327816001607912062748922682783916058609364958353833487945829445644175174762876624531065836073271015429453765287542969738913053791181342133872136723167613559779370908579880028610134057537680468314523360037267844313358644808323516321454659938396269677385664800171385059698008418592869162763096264562035605470898889264725385038903950405390204465001608536096619971769482582996906111210189169291865967773476241192429337787128484941719876781149857050055453746630430674747548196390865938202018724460078344763686821657098430080311957045653600001940461892735229177713285889760007624822089736291714485232166023753273344027585609989606943632022871828661781125909584574175107205462293716010676096917574748655746010628775829999709458667384232221232139073591325000135193496377742747038707941904215762302170682694838169080540439540548267518525308547048842004185773577457540422809025319468203787585586986248063063184970898722375807554215185480941866829640675723930310643273182507085258916714125051360413600163337228029539249588697747387453276105569561225380906757737578896710551451248261189425416124747270993422389477081650692406802860798053568548164157015838214565996509363017609092383410510983654121359696255977386246568150547763897198363672808418675050890295027980029605624495456841773071977235949365619931940658018329266862358467371965100908569093094090217910266807803474483519355634898470832094256359266926657235907879333609177303427701377900884820997742916645047062167916626699548175797678933145791660645752093355105721098065818673499042871091805209873075787275326438105678915824380662116671235635190356517240713007312093587291119492994506789658260413310247000173328801888265983891731956078785168565413369932219688857600938054660126812169421699957048934882584227417420534652172819960221919712294155358411651963280722183416314058414339382199633694229675390665775444542442159890126293521540789098946421240747237507687357296269585436104624735724429324084846002647673415464283078979517141500738054573921896621356639989373785869298077903151961954498866900671808758044446262049520262059179056745318369194350786049708571590305220490435575093402372851820586878461264441806773713852931193502331872152766081503929320008278264888810929113348641516684081240202647132535578320899574217471479736281400099457049109611832584775944788416129659929905919518853219769977454511234127177335780342801675052678644215468760430602189227684016873989243577088845184710658380896020358673810270168514745787292165557220569230442404322769383028015452100396412183896488364651734277707165401609343581540295577664230069980369635265278935767525182762434229829697405734927781800511663965810251397158707984676118967181041641299570281734398904607846299238508862864251973759228335135665036187633054137305670413153633608630552925140847368842958577238080593010214820062727230369595773138034263212947758748774915397721737149856068318052636490212384073533279851702595585205326322308634575822944168872237463925470019466272072230711182298630936461371386331795798006464968368191567825191267547921205949579091614424773311954375089853699412010739375583409599044620299002483363969612652963698092378252708239925077781419895937932805191713670427833938690727301848729287448174010889653751377817789099698967537025521530489071174868734518835763270881252098179031597997676212272711529706077277837515966952142718207492694035320528966132102312605303215201520206173665611753251554069219286450072941946227520751514242433071234895611184676973732527863171084286947582383339133116837203830701651395286456596368469441009681888551131076849988555901442545370850209154697310561760302359612016149908550068456265101933545148005937437090035665781652749001662834215512599773646625124236100587746888704143890081899785865963897747753475709453241021356078653237905730224166858393175971486507411683110349599246608399811044944496558072931198943988150390433107390510851354361462317910348297210440266540810049566863021868823117023130817173054400121611613962746295690383282189325785454625705836098753438796707361114109864813164237697258898407455396195919237239692499937369822387208035254179731596105848233626780153850957516252343437614533472939351269524350258330217629949624500236485492104390884476323039758678678325254498503093699235220912434799077826872715593104949521164999069426225750592533687003226740743425951482805189861254235298363486942691277727857833215328908906303197278986542053481741062059828019267111465161384637443859950167858545491759959079051771968173131092633735966805652397101241853174671155951554558546125133308125529241536443195314396088541535883615625739101481363402597388326371865840158730251816953218271281565767401217367466898398312448120850158198957235064214272567443073023288385127515490172461307871210065170693148126468680847085498698371909884618259684539370770611964940269977426043354812508500054139221172557144462143524723847998736288056094328555258597665280643784632154334044057121121010737042314616829136350502239783213265827370738327566577886490628802651163596130181783434246588668574969165763065473882865262622258031547966006036155587122783502570131509712504037175709302659690633289106440313809147212148598004595112898410893776732499783007848167907393121552194505017753028499515121932472347708535689676893163023365971190635987665769794530158814100950628022146223991265652129483006528193427006566443115991380282698860180085000121839068122005850991206830001196918943919461313004744561124164778896916767435121827433853545545434700910219660615341905295086435390419016685118509024990042611989736201052165757171278971569546428296996107505064546912040988704729750637605539870837145854907748966134628068029258936968175061823469133442501288429527141188836975313235029774884501021198853537229662721971476776118235079687326668951841653365248846457447898487713483054367871205008148515724305482614559867477936521752190956077502510431967030334726894330002349311665652682140322087206458813970987922530543003147940339430946710849956730869408330075218671912243368559290865591491260298646961889555303844899940469694716886730915898484694951477574012077102617761632627715955926011812239368346631271216256238298995135664691530660616023203856421333334214822639300846725358638579541444633614427873576475830362643030627021934094149698854832159722472928020934490268778074629315849545808386155376693000913472903585099055233650916696806780947759872629186440950528237143779997927515612818489684774126563169152787115690306310639796974926705819272279774691729065275575782297707620891365408935712830081953384664503082447343331709714722685210328876115190551839831885440824498124647527573159536035378786884363084831790890285551315277600093649194263720777719309948547044181506019353761733518404361665262073366173081252317308043641218491693012514451687302161849424519964056807793557761643741150932269262433857384809825203156628893288607997481970462917025407936740227376453655308921346962527958881432386931228278004961647947575569260498720045695175813517072535729852061546390151636767041822152707173453149230495087293465707431229635374886525274261304876835494683854235631726875302148574538303606369551040437921726118105578156722783378855259454758742845251788070469891237256560853391373650993103638348968872034715256756393668796471360132671377140007500930398076425818038405528678903649561914068566388507681596819681607549023171928344869287270737049958461629717988259836054058817437684462076472538513308695988912022626086989529255355504873149961359146869375420082445379432739761101670902761241432886762868687741752028598963235274614570747623977336840309372876732717262258938058309450893619052731073484343700200244598955549460332758051016632664478311219425318768764667259135046498764282157298143915516861411104672559775580857806955002406990499570443315117181202816215576669462154184663966806650735694882822314091787670080291691512864331066892867276977123523538287376134770919083410059017871493584701836835561187238001423201844253506113922383103119237082480448036080981254779922856840438420934462755584709048386895027969446320070187576771991887477998617626556251414091958070225041881954765844583208975384115274957279828834173211840896161206635416415452011787014175656503994218002455855237538347050236853150283171625594394985717548175003129383239305840255065135530373878531033076817939725492469184862518579212611191281607799484696699186271458466722386360536844158236180814897833932818919553069049240418643448917260395056607082575172504368366579235378268604692361667009185632939580474106617635728217510831773502216409396186509178791663684013775197479851694080046755177083264527542631114035035872607721713981401224059390776791017867010485691120535319746941173993262715228301745384074667329780145387946347075097427598174197106776791550073111966835654002418438357576456559395271284533300170937115969854963778325596350830683476753513239446647302455817363019463727109078712897996139389297004368321731846152115406419743267877616571933054007320826374976242268166740440586653033918353044736098223237841759317340623646305142675517793596615361643203861596444701618306018164989418749911945940771091319699264523678647033245556027180250171611172656375020305737840267101590244092276825955911167476519890082779493201589613141056634619512936096480977569380489096696580674566389391159371745435417363982330977681339502403803983625723976432172950995113080014668710041435939198350349244295145965863288739225506100731832652770941953154700098254259530124394786167215598846518424766950165577732794562404191620040303320200210410935882076043830443274655364297889920757677104274463784453065113738848974786428425591147717620138505652447103852898857158436673875846312013004798877855597518277813372442668852947350238439091716391527774154428711738454648687045772643882014685461924239006547996547316758901364566917205730362839232512185590394596928667199509759487311679365111738356912524595170336585490711223318381445312442655595960634949238243149181078686362302701473731420620396281029646243961905584639729179052172553487724432752545257015076426485509103165672924308696310829373513083038204824591739303050134628521570711019953391092243349968811357469945401001952503746901883103747091236177253795764203429806356873094212108228194663158779507848755483929395509637186652162098358278435672049624973181109265240704607533500981036469256546342397966665832800598156623096212380960802990915775179000490446263599070367440299870952958572170923049352731080904052538950437487241852669247190566159457608035486295840926793465491172752651500425904534506068479903027493897682163514401767229128442032362595545157507222486474185484466919807149878538451090367847260080910387378752562554307786443816594589806619022826109282023591238551910115031543757180290814734442412807914044483701253937611173426976608916327169584574759343433709634465514152909026792180713108479029948589170383413497275281573160841081518843538408239182974498425894022960757087769659828011800395722394661470475342087549170699869759288808641036542437606417220073402642338945261983827665184981880783722321711343865576815992842725733184199935215838490086244532765447934589566831827019896843834957362224265173364951700661668447273019740140681205660202768572904476760545359502976790165248660034322440356245228193308851392815789624540760387154601900080016607430340518005060778259957120233613294006749285069370860214355097540641647758833905329944917169611005496345856601517770438149918660375007431226564413889092906556666759333728529997259298719074410488107211450769173838004287532876191417441678165262315170810757654757161007189960164008771285012902473879191048152564397568482681646674722300876865421950488861045795839666542527439180331543614024888609172444510818145575270003338796422660612752472132297563914612200863913356357145830971029347287117690966344442655795940110469479613393421503961818298058062579478784135227263460036070058612973442524658923663261811762428216656114157829007120959856661838223430309291349343362848744206657583549332783048459868655831080737019864057245790457532657369170308377525089720462832471909797242538963512265015767215062287253410854303013942634541257343573141859061206336214319843221278995733108147614709171017697730642259746050398530286962071316930207595005465849987256641631025371742150778044607107925466182646537322093192427000466784485034227873808374229247846972284937618457649435650953099115812269840467125442380338610807514217834859206395503463680462622008376291400819713266663511418889915119850453337681258664680311370917592236519688142016150879756616047257171442980917980092145406027175185139328446404273741016019346419885948207993951082269648512471694785747264434629478202925650060936308791480193322986912471463505396210293095723302768302967666197261470719071824858323506107261692211135857255835186471440411779915259712773390579356277268278988119559465016162834604210109294970939301351374135812050719086097050117392337035740056821284789162078360272731877447271187615413988983248690021831794882408138364966684999828979696778169406989695987774572027132394110916084580117397476928453966080258280690486885790882387644159734039907745989830369136719693562005701797661439390709964209753193499001528837054974844167490532142145635985735414827798343378401446607402607515643336419364450866236838708907516234955322586466933117673380147804829101599292680775360145430924387903067401961456894337856195433691708235457357778793843162591017454019233515632107222576988958488939459545436331476993388474719635052314299225959725501485126338968888547986095214559914182499327185695815725202756535712938848012374774264018600711868733167782144508124245733956406533062666084315429277672318006376671598331408789303954156305474221984106154796244170061435151454382350219827324207952588140745477963389128498716892095509776889776772860528096208081962601941301756851399831359306182415173585701088558861035962172142774940300078785120092605686747500488722040726238586542084015393641342290840679647216040607828167699243285698272312390753457918283341645061253864606083080980149715111045880745550740831873996917352250805704660866087553701498658026920548710230453486601027729279109467883078338609004422212087431476865748956054807933537032264551741939510705959138252266334602865555303967531935694429886698353982836583420490641566981763029002705311281630874901906865155940755672195748999046707618552505861752801825658170479622068823265574167617897464003311028225354712423137943174857012906848022648481275869407337074214224543574933324950303364092613152867698787832921343086415017739545593277455679444965591070367190470380220033812538689430178303646129238249315896113885807665088929601774623193907656618676469961330774110996789548486273622847765606463587767441228409542816435617382302906609733916439999987691282499358197012673171210570250059485371294838700086680724606389257692728637758697582333835026588032648827627831859790336570376150709427497323468148958394848691305398827385274068711038508462897934167771104134431248224851992799467515905483970773417863978266046266464990158659976029951406292110129498449771214151805321697242997985975011675416871574367034591139954995390992541956475135245560448726440983037654703298103464724782947847073341820019573691199014560282673604801062940557750439625927988901079138278537519507151739414987641520406025468010932942319334098583021380641221967832300639430274067588774496440104572191902301733350941448956128754363964245388159984083421181646756579234035795884950770158376199311157686849751383441314619187267902458063951743272132202862953431651333089198868312811915619868026793044069250157341318681131661363773565106516513763768970384475888448801800528250573344574499125937166456989161514011497991068342231412550587113628258239479018257160897168691437359993233863783614424932709658181171996337556181313108645914344926719246808832983655265135154838930696469806650015871894897764777017139060239981700582050007795055509169969003707223788912683107936079787745274253740588500459726728821897323272101004097217212832704941076988964057959277878170333011055630825508713679201431980816921654699333394715151768065762777929952600405903243006550836511210266701573911513309654653915986386908417615208051061939869242628280463124125676583707159768428534893716667287369648059650437220079239849758903947451445383911889048909607911079984898184010000693528431967785749788213970563626797595059878026113581707574036868014539106424970496398581318839230680852509209213775586383771074882758608102679388366304088445932933153046167824564339274920914622207666336223358408617758497605855686401933830701043350596409099601167074242794709203889826610376832157071918611048520328704960893005859776806246390394736937649894407577407821597913082389641195173630907169629766562366382519702087200138523513288897645763887069118923913448772918552225438560816345639479764026007824273028305475438121418328606013374664373168334539618068902203460354514678500492638249370047643555462539423593529610083076849126410824304264441614099651416142622015544588559270916179061763729882319333914357778946024841467403433712521144412297821707613604708248987686929942100569207500877435822698834582156253726419228710839264022731401199617605816323400973295863183468796153545597873030822316785387042887776249706679245373622710336370821080119460735564003991902326756486448766979673946174018894732298124855356332889278635861708099782107484132017739468864838503510835724087027339262509164286032563875837294598604520830185663422692696948721582369101083980404340864734138520656182159264548745803809767920637383712538719204063630160789122103914749352592042934792435622447865442933253708261495117024639704957487268731615857045866928270620796043385973321818678566533526947730100401875171095270231172338010065158857814856811895710244671937290963572027122548791238439916577386734431104140841682529572589896454949874082108611951582781217237604411105787623087597921217990928597269241371601620656176461232810263499727007654126485087414912799751571014797172600457614387196045994974684075624895631516402659980421929653530957470214349115553185120786797089644715696762736215457785153383020709078632909233193394742431385255638636543251111518752430951317590083592249126023600272891782279753419512133268483380846153642195162302796667976043712696347443935784791521127370975307887164598359571381682975890738006886130132955345406261815022419175133029201871101455889841684975001694565245276054090371145445035008969010415389043498794269302441572812485645694202741295757369229554085885310865454678296056125391326864375325595955308472887080914515859212833097864291345984773851776698997023947910157299322933360607602475317002955808743374981476471979583549818847180270902832089027413170462494344753747887855426281063250835641299909698604353625920766582933988277598712659364611676414272324358705988059145887543984154985639671734544717670556150777811914871478624513753515898481557402486307994267885474103661435188520896625913024696295971334612877493485694337564821213409801536266682334205371714863181065985405573365323122334270622956215886177366429394405897391584597271840642413415039653589168377081542677387115624659762025606830681746226077034184683028217226855736217287335750089307720105475630079408607992478680490693053138554756366991188764972878429081547927012520929039946008782029701026698771264612404787304061739722868168728147969169100825054532375122962226593597888432673929866673602018656781040508209207292875391776576749795897071596260076413147969042373873617738608041461792660683703725612010616237517952551981085984800758360248157097865048875313146792418728994782748933639784594837168630883313335474476995025291388909486826533097157491708604643561920390239858330365543293110265232961769468819320330857593100538231460822763186070671636332186178186381129731590998114359178886557413598799241736228084952016532460560584291277675199401848677905344295878361463935176575589458591139799196270390218128662926996866654177121472334089401039048327788617820453873054264816503374230683594013395615168465210781061069994894244172641334930702480444284079986028602419701985206770616696959542024180374895685081441443891647272088315488964373957915983907301967027175954241278154832446011400459189770944454205312800964755599365836347917289682516821086466934960666614935594638430430743939293598627869161247088207974827980282457099923045507833719243039310146618521227496872214165326572159775008046656543059710647216726316345083088241701524622736881883976775711398262656968405520033410385354412842055797208971481154336996518809329823023522692981268245758977219392084763699490147094767944754368829956340919769095942761942972813642545616793935195435196654379649745038148127883767772924466243625172956882730894015551830760899317374671201657586672063114614192679579052303836648190331664773245204090842862584611260004419284813363892294644123834131195211613759389952744535534472945570318533845151184445589302055101389001697567991882076772312606629744489996176750376739470651345937585371760873732683823650388698009966091064259981586579942633688245830229502869695302207414865779901952702139692210812182022755598860647778268365133494493592284426067705258360831917263397380802594669335640028708042952666496675379471801865334947211975984903972024191922496997764943096974266439194929481710010682675409576144886265730104678644089771674975082638604460233693978621479585452904515567289496117202449019335873605341442884436172901708867451446468099322894643249756381627019752122040465781436705680359657217244607571027403033510515381507852403868323703497193685555537382520120465913749528686230533069566051333921826125747796810783524536955301224573474614815351597966085780345244892008056432419681274498516465444851891399809739326215201318208621175291549712365738786504929255836948428653298519145603755892033681625371683355908840373586277754090865111359920942663266972617914753897855517157871226547466914994565347899500547285533710680313832576480651123431312523831191974073409635446234728975051205418250009989894700679483908142771014179717838570704423933756112970739187554509203907788911534949080217785996024188722742739614167425015515692603175973888371809603403987419911369214713612947308731063937190408033011093277080459532047502799775027723071537786234675538970767591090513292078411611222701232355361456817430337468485372958519731398536108257964157568892800297205567890485805604147120793627649728385274190216105349506617944039571795908368825740534143296557450468801757851731721248934810490394664047020294740885900792430291091170855664613831161988808122288641516540744623166444656351300656713907649460630899887961883120643442266354094992175223467954247829219174263693670795442569363126585423077918881236195706877737023588386566117581739168144676294784218738159975201889051529378476385280061567471603630536949300225899734768317692262929624856391107214697538099662256140825709362864706376223730629015138968301970134685509877500517282269019489092745718114373488838691811017553291123349498019333120106026865033700513327143476353503644535178305225845127672530070653743203426044531056203524149355221803933146726430030629806595184366502288352370020637981422744871624328941737175652822526782952325171921018590055895760809079799095815933330197491019717800766032917422785301685513344339004235953855815220212423467923332751686366638154449143435376831016792954455196625479161322444932995711370485452983289867391794216413586642829010927163453374999823835336458031140086297085955084165777471496923645943015124317840766070677803706491251296456171531707608444893205381837644343175220163570425400416964986913970877090358615091748047250200856358575077124182814249153815116373855194972265386666618117219333609545982512217686070596755167752388448391768396320583493695286455153218713353242622630193679308048976272817782704964983079618679011416936473069691904774838761991369850360787825477471074123420732321008858382427209496491742120888551048648824492302264252229899222453781239279273803809664567852481869499831116397710013813627136292486555244159996346877590278288985665116155129945353157852749558834514218891798138821988552024930687482397680576616119088125190114296538690698793000817444745016501374332287560102141161893171181643216895704313398834334418572896676296544534660248268363657564836893334831952195142638240305157878275585219733771082638809332738521876868854862961407339649217009496756742335452199001779527865658779810387925718530787554426105431516095895273635974407734370679908622848402434722188751513948113968185482864691075839980580635410470123799067719170466668976062077379237378648251959380361880384059131572170180400627070344504145089138101099631753463124502782482619899914636405578462509126641526747917567976000897442369474576928963831817169596574447858582337922049136644970941189685948585507542437069198068255124808244513508150334755753376095626042571549100735424107366566604163955186998627276963229140320042305012945048771951651128770815173276293408775255716579278849222086143039724905762901077114636275050616738131183003385717843043244656516174125211352746094908806881724706816380356669972269691157216727405500056913636932022584672354056235612798595433626265519283208509725297369111400544675664638958809646549853707327019138721329439965190992771336197879352568641120971354956428263260145445776696478897180461913634190605124578434241388055369454559647353904663225282819892682901399497196944709090830040405788754180005370952150367835914566444233887507434727609803721518140186385081801551962602397001871628739712932717827676437015425973553745025306088062062236219978183853137168856428717675712684051834284462971668316597808968409358987830848322089649809024283708608934510327725578139036473788244633248918507897897005572560811983381146619864626426965518746377950836603099073293175140578878999623859202387218290839518559448347521119586869671436566631764346189090670260444518995700078762632248324158897962016366761495452469532278936713997479884743789997594941992174946957856401878006958215046732633249408163538162377854653977001105898328567707503566598792948410008509483068989307056215988461069533854665064203080334147193362329881413605046716980119533805780520835156084154444530902661135268282266931324165568725039690655783323960920103609465580066618151833977398809072936097861863586099262187381672841665932627094903874245163721518551972790688935026339501922116271375714883778512134559395622389896719427078466463673000954717294615836171683758901579815607531389535308638763160328102241823747606224631883542471892879614576982861389621494305118025730947840919896414569239016154600034087138808715295276420442197870962926899332906300419529306560448745731143933223812377078679837417129654842573145299109795061843624326159395891218233168693218710615206214048353109481089750418288988722831513768566690260997903091985956142527997214963259107714948715677250119434580314345898326773415354199927081052684498669110739565024286361143502229210968576565469277866259802135322442669294199038138069520151604821497123174874064329829125109147910497718540062839506173855317807645840694274434876523089475168822519842824121859598279671491995739779643999988506220957492433449437197216777735012075518406021753495323458053980388107822736346698572485377496255133545361210868538937020143334492230875103012846824485062996530460658134705204445917022462763637682670747250625631278319878792305240377730602913417771725668457013640201316557539213638841493433628669050273990649094107236833853931647979334512660805695641602108544623651578064635646490177841249038219588768909781173221649217485271949481424101581979638864720958462830402886709957493233477046836339051102535546635642541987677128641158162779020399393839130150200746407221971354710230426571450911232493288816205175344213667409429706426228555222721873474568037527247958333398519158226483896039683263306409201403936214148887998303751527267052951968236842023729929379583679116638145405500129245339937350127449865413575732620859692034076834531504861919369942247611321487261238314062123103383601515483690816951120348148200140430296048952422132026123722788209509350718926953399697245160235120806993262250777544754739384939978295046133723453523933238797190108892027902115944090891859638771360400766309515924140011775816688075482653309687612562513779524819516211254450487319909679787659418863635579435970781853882051646704243368913810693137609706469398820493145510612409980022665514579031847243599827137994108187726815980298590902508911637348888481790454773686417175611230445400187465325247740210053916927345377182740561197401017544110265081032934310937645047922061003447808096706238838053432160219236451647654064553597950117163301798363779317620447984289479216576540140910193160334018421285691943282919714114427916621531678954852229363207239336382681570037360613253827924977330727708060762027400769508971582857671991411542093291070622823726375786930488675445492675498903602521352003927485230370880217255122588579996674935816263953451253398489216982939897921074457410929294124759742809154220616649709298010023365632271279841048906485490360277664836021898745257398459968751621883017231484979906650834771338716180284233755348387520416155005374733972063561315021905024177023946448059491529962978472003172744143126514736853957131026808305092441375301772878604562492290158163006294484010707936420961886854685705285099755974217878707997820658543588187408119908189386353537085190201982462262612420388892177232296545070438633988835789849506154946201042787015276994698363063611487077746929133242722640417360635797231421263368491758557840333568977142914273063435487332597606549983371209003228699347765336612259603963193365686415993986644387326864116818750250807698271282816900775433041458916874801143499944360226541750701123945665526577020730979141845843423864804899615957482846224562122287875121933375917655610447953285779014449569490471695194501457019690416043813976473116350506745530851660037896537367457143328049294111397381031297682535872009749399919643144072945545864374835951913996247692809776180522442146559798876072647708201023851233674190090285298930145273765265234941664453591005490374138896285349420054016494863721473197736847634095799754949942994037962548824297400377114321055083612869258097150274164713676857892587811947476148294432827071073338829687699231613082980966029154508458553499589664044141533485911867649549925537823506570264615899846605741679707546004366809599854260436037486473407211547052977024920902417463548925116039175909409839320380364059163982872835970305250093047476518231493590064665781066632444005375419443307848801025157422411261932448788830893035554148877188062085536955982069201910499423079470759814985584749308233659881347402300594656995488312015912979081286789173083350287082708365392633761629819555465543110274189563148607616223275786895888341008858918468393813781150743879761592952392676452716883941933291872927492335403616523643216452300370598462900062601427090177257985233207129731212449785506660072983921654425063772309463495941053010239073119037301763028513829945542591835002629754877322783216487483114902277248922395246600908468842751044914337236929049023653780658003289963066100670655980974259098360379802113978367031430879438234853720746825729485833922843039446498726093882613489630501291365782478938793166230651583845052812695257551088537133427656953368146477468505950111935274606200347109812191257525645241874499167720156354701012723547966317733385019994374818703025998682320110858325677097891513690393542136296548765607113064880011763891814911649430782683246628396462013463257004630939917655582408065786146451055185905193563881847867267826773654842192171303604209210489957553572634654397045045432390367287762332210684250239104356172605837762273575071226688211344298157644676358813973923111199208345548636367735002071915115250169683410768540154476263395933114345047289238623703149055438603593143709605367010896905571249524582149502167469691510405358111908166510769802495739865678341348152138085236970294021856305486242155581643623506371939370053201649812955356358715132241724116871102267275358292263802705233100185555446070447357369263434481333503741752778205296765421307613891502322616046210084469306953115676300767713894911496883872100302257431334654634745874924855406051215942322079125801445324605895924542917660831539179398284198433365824224583219285908364268767209208662181556370909626339319911091115058236589792025216455800058597832282039523985621057117116507952685439268547249482431334173920784172916398573387280188906619819437857023069068014347272547447091781346804567001305722841199618933954097776428767494547674801021199610209171509427518672593662031687507184156953733149424088650536648780373391914034507562816426409357007781887953456191493267942709471700225696735409243702466062441415558514565991878205110116082612985721362766887376294118610033912726910218964471985645813360470427289403663665403585148235431083667035062393547896391300538709187000238190336200795331941586995075875544852221766550282363964621332304503482879050225881110258827117592981315578676173640199425357287037894193496465255908907569060513739891672782672427743252572422656563266011061575180691595787008642076737857038889078499206921571040930848381370030591153040730450029936459501410163696164520830140500755532274759061273690379863884215902000163147920623263751328971951945599941732728600202313221770987796115353297832862002535128741163514095441051227078100615079135446261337844758802917865327873445581842594004004378376279072297313934070804937348072543382043891479483921337795327858779817083111078753787579897103243481242023501851559132741008117349471587643294109616706995334257743587814804748323218675759406701293754333749027675069694737869118099299181271881148169065070198752676270283444257410982128596919084032704787011175802259204096462200556548155104663682045124847610634477798902165189841636494656960547507840071927802666873433417104722168080493691005786767854228529462704597113650117837104934758885514081197196659638924508825037091266377373533040644653188551196785611801973037961507116882484667334215146745403722087395278273891768596295066790463849582594254063409999837765676378342674987205410333036694799873557921126303489746891607854695176345614551537480823787687629033897591407046103190212567212111695646390921399263230414124817343159476332102066726757090496442223765586660873339820890804529892996196957603473433574459205167271904591175708648637243363197155778027482396476109941052595089955050530000110381462183272658215542310045508590257745915762955626179683073459740022299646530200253800353845863415923697993412361096255819383512754280576449602533603604729263705952148914288274739939496417038552289485841435012798452508235805832618109073584782779531404985145972160416426600143058351952671633061660433652057172845588769104697028968171475117508199345956278134744935037069228304011051642391937968032526985985084642017328415183014645059873368979816475884699161424520738690306983131667220131188192914560905573463490878382766167421671169839128471540874719656264265777429272911167138344868738508688710301865392602957258340014712384023357924322039270330444796134770407856631182196232932391149598058125678110603962904035356490423829736231879300463941137844177281537160248970616863431475718711962064343955913437580305861434572079235063098317020204272816876384197345247908747900124507456993324630476035843153903438476640969039107638261674813171376078937284488092608459762407915841975386480043415568989104764405465603451843407258640881875820446936651802824400735805384716106268611326076651899555481457043366350383567149957659554546667508434662101128582337563984248106504323595312476639073114565918183017591548901665829466948729027626772797439387327569308337420971202655674842395747669087463402059084578130887662701613386025593264025457753489419001270844073500861809042607945547516120529931303575300390213687858690341849044688966617354407829251554668338127124238399494410802224970911876216334140987910412655894543457524863988576795614932081166896551949120709170738606160886427748103955690719083370318695189436719732322903950144834535899786794525839008425312075725443652176416044869056293988404008671318258976560944500500527710202986035785931713994751196909144414611029100935668673975680277703362980008046204130264353315906619136084782668237414628886297479433623543810048220309014139533782431645042837161629706862736059169865687257948484986143774462468346237366736588807034277043341780641409862708191155629386709434333420908028646478800629621120132289552008802937650571967932991855660263561538759684688370478037188717159281309519060383992593297403825678150576376414955405009929072676854370403738462951862867314854696305956823215015031732913185611989163042849352660381625906889369136560529694502902301680040017720579255357148836159427549125938242614247418026470686966871226893073635362046990317136927397235396838229646736727127110865577939610771132722900804840433433317755903917551453545799528246717502223494577867319655212209157015074727930244662225106233562855987461880748856925480015978931366577730674357086617809521098657627985460072458161476727622017193551675403079336213268892312676846109002559346533556947888703331232899390054758851822386169848112790806296906868084810777450548521243344816197863789153167990042018354667435175878296538511146407982253732028871540204693963447088485828257158551229191424541163452338798843495505913156961468519023942961881866840669222727544755126806763201209343267575520218109532534895735817914409412862682359283257090817747017530325028778105409794119316661451347545032658295619646321455944458684014927624622027055095954562584477400335067147245576083645018693707764832015905194840101830111092816696137996770926096610253951445101998404903069209116689490178896767126344516790411938977996352182721391318928050282444580852400037266958530737547935610955760343055563049438315963642286198424039322842678260501388867527252945192006759471842438311078879706981725370708033188339329032619406999362179724850349682653141372569233442573778175978510694489780994514467841292847591507692664571512991163877834518807388448455258254036894203020409909178286173414216426962969816649161799304283294528283064377492586424889432794854312150779155444071870249497160416690545743139385609939488008166700413057841872019223516308438977454396083404643979138011780108618287588330516744368247342639032440070345996463989907200427576871855366966451726791883064317205053496507197996006248450391378359570005986129417510262436017558574121782173750774133136310076940225853043117094369047436025335873663972963051002077319221448258098439297977064124658653043872150609416907399320765989989563177685567037677685189202829747143140397859607552151963356455256674163639024730360818033844051199199807159236094730953072018330850921164202956497409261424587362103754057058450032580477566839888552821486777183270800868684859449030379458494535578384934467358556747995573099657163850591469821775818863217720392265460247133409924895186633218302503471840214910318814303682006728359625535311460283414753967513586799242933016479254270291002565940362868289104559006283060111867743882106887278041348795544390403421404599587505464723421519024345333204698441914956841519617360110574669011041024882181960597204647850299370629036827301889817447265218430106424360579782237531297731264544896790698388363358951855824591234931003575847408820646680979722750312614117802313810417758843544163469375452405733726283589228624311216944023396226615692228635872774406678304005259951822747755989717063492486755734028233782962807619166957015319245802014584254068290776172269017741569538871071811500148830534961402336298979259832176370796736831085506248096196117718235290850508904492641224485759979459958928739365332963952337097466403092650903530242755671350662911047196393246390923923988451205221576728328335956324016058713255819700205847490031453280602522538550125882306062812322703810941798135765052878182336957806555295424760121051686650424734765551975009656099583786486758357951417181249833099122508797131349504361869710986323851260475155716595893360248508785380955691879870669721285416629140748762841754842246631720685908698827368810681481828212537972342411685645650902333924347502515669567394666734445940526313261013172271247102136218949022380942015389036221440600519073191350906472851831894889197920346894355427659939998086425646304332795765738237452502299481722655940201539950318499940176505255848313663193674134484690256229606830273908924147477291946333733649790798385906538840176745934399734995236465354294152107413011117193669467775048685975535933849377150986826517053794432099487478049370016950925428543835039358562171134591312936635676192361910401158401149356435196978705708268554739149682702335943734816069883518972248278030535082226796750905382848381847776950245533161567290313187255754920378691138545393513191229106521879787315392034901166016482653942908884218089849511128624629311780994291340084121035320809803272896983612347517764865537789654507166255758706262399365973770460002252685994180432181260478307595512885633975157693754021869004123743724449512637645145123398009445164748047161122035216411584207043303071017995114507110207025980831846640664111101382199403845926028433527672096169622895122069565781200929036117214528018623527455152712404008076192780411660247618537018985395787405298277436043888043834980907396586396978859745488399153823255455104556983749626702848185021910663974318497222136810848915751731934225754094677307933180931336620701774204834949159281160328261353782011164042419629446587511038759855238562362850093127883564128550765773790380858706022841502570028198843319418558548943089396023741584860882315929835811219908695894103189439203072334429059770462882477585650348861439060437788364140207209621172665011930270420042659515694798276645544966237268328125238492534038819992640525778958173703806159079853474669961709563781970885857743591831372919211576836133863788239305695143276931657701707879363119160005833462235256099452510971075049363695263887303374375035918224904052694500217060817187359079601180292527287939310452036012450452506848380986071754075641867760807884500968545026763168475746416468607312817847832636206970789591871569813519348916616325830067437610803136891492344688060140862759744744718517439845847465858891450080799419437788287522310725871690792722922355113655465232339447445171971887138755120754630473324029312661471577698517570194467204614521660382065801199130159575130021756452307645239096982630571360912974156026430221864711692797215401559062301047156354055656742985642193439980427290068369870431415455361887878564697177068118412391794081517052183429016383906580203986163896240675934403400579980382942374440597633966791010136320886337190269844712354304055077640613420143472479476766532492664365304124489379887693980496556522354150381825473839995058546492435718798802013655534479319064243636570637858291528230435299088595823058608953428247191477757627964771961292866875968804004690072578685784942672908130404641695806763179939920073928779536439592418386294797464857672387877752416153671690384440982596496701841293224722034697023152774588608503197635139747531957707815020181457328583512807003481957257574336825532672061906236190017954709945291536999352608380251323060835929851575863049835223377403555878866608180333856534888135608161286308262612338993012952838108320402211397657815146368235498487015244467371243577331208853663824881578980894465164268918781987109609156057720967158764504155591553655638688363159394248420532044885585470100654879910269336556566448282531476976537764950258673121431440005211977421954481699362305968931569509924684339462696354280972917953611138613141214932434351102326333880811065267760116892031322965855130161887303340568967968463317264433997273148647691788591360084209083831528389440442322474968168996294704343796682484176035799364974970641298146529867983754924505578211820741660352301763921756074524417590590104775688033629119883774793087328770093641704289028789336203320621041809817821991332623585220422683541147906096945139133142902002089321736961419463991841103330476663546007042742525361971660544637806117327007421884585040840613734561747570427201434988872349573061999363955766322924773904849233456779401548159305227385136290295173966674095375540163862127988050737653961201029385354832269309923588127949214025315407642959109903414836394158643899160408165388852250433542509504189261493570378849580091986911405728037780585832589462678563994665064485021332159497158777570505979747941905325606553261795712369063755913037847402874945982174762878806499020592408768818450149188682261886223156038179442414907680737752270819942587007561608775010975592923602054902041496582570916636279176180521162402325578384587154348240033272846739334337109106637804018575455282232308860983353760562151077507426446812548171656357642818625311869604767081674815457957569017921237224489361465083238877364821094493076624738531879186220799767778738566566255111326925625628483683094761953781052116060188895275838249179561797821694933320175084532776579651727023725023637222014193308729765181314785546716057561088163772098595249438620244629166187240562009620737740413132614166166417158247913080328198407619490670881529976593456478720252714118074261045358995266800035993033122568222558974194477449377374730057524880632583901029482330786522099331721385918413507226563547944574149494307069399180795351915863847516520711994890562943121671499252238049757293901856685742793872714115233727137547276560672983121473164021372729192214321156615322319518770638576626980041020186043997716332710600868550047907245115083347082682976379174361860058125693242066079375199024702299803885740122841864984441005588295843241880799848935993919266014120265987809922874433452229307862528034902025546686772394780229672516325586119447239131461968422929800789209406194055126672740537958954263468855224354747012561419076105486998514428713518327022393479001481745338167831608766789176717849326266823749948042253211569001802341861159701530799934689056266708402573674907336669603979935476010776726495549960394795434397987487075722646913721461320053097888071799789320072984990188872743694321077527232461294280787918242582532722931902965961208324796083031544919963513071720082010440030603846160397230687393612288060422702936545190899626274931880884399767120960825235542003417217649595116342307117267771649999423469120871124984521670572309852160594756789724589790755676542057772348646298390811443312090622151022442382788679031819082496280623195441850923488483688325044794076628272091821413806670094834668705313731637847071196529878032991475122601429980922229805009851710559437312212451122322865834190099567185956138714419034995962966121013868052401190186268016724779851555990791462488968216995840859253908465354775965790816248515953255500542299200340179027057362660929787194222240423964725328477509976210049673817200898153631361890190508294822525216102996386213377978868487198420103955675621699696681890479583683382260186885986286887630349635977995951958815517608116831536224067992076255658437299298867635324983619467104783485087357447386047217743240388520702343185241971301357857912433514952592992380343868555398417652260543210362421265286725542278861326012547863853043265064306952887648150272156953753569836202955871135270970351919422097941527833185929630510769092244635830033855441748071506698615179203018553225760815343583545745910324253542028049424894009038074292268026177016454204723504050633444730316662545006619153142998257849239973543508267270979835319519535729565219734034726106730702322166954096192547718956712583799433239631792825949178458138834290319414998721697206706269068068701850754226837685193210598903436111281771991911281357993295545934011578781806061142766217672956276753030722312884745201746111220973491244014027504110162448928735679085373328189428417376872079143072263773039013133515374215903891616970883791601116719084181947891681383903219924028863872301951897132016375429358235979048035545062258628298526326398975736386807595623246985682688693715526653906894779540939448046053830425498525097636850890276846218826931560074375896064443544822010147148568622795940071237633523820995508248643027226208827399015301517461011259619290814928303652000564304239213034314369444738232880432175041461011834513333553690955376398604335579433737233461538891081065398746788875692690328025806379309608612558624467867312262217340191246466077206556187199703402233214976535906796337098868446876679482668379704675100075952239565422824211687765549025794635223540360619277801429247721166863560752892209678635043895709481229848354593648146357366030775951649181578616302312295986064778879484959946614962882550784476357241062214215937292118694075508665441521435574104099025570116788204317598656224363700019996881835693361599187426667878818029123391988051623296060804588433387529337337034723068763720622616289392349979728069756400488100730679500432689428724808976214337259962946980868624519634281988823669366158366101360639630116238752142953599356426470080038171453930707589133598449072676125053223193435509536774953207172753599263550874067197243126666304674965692098165751560753921754822214381523033512857857217263056978508744136448724331128747390098472126793293970630011151339895330126575895920289159546170052504420457746069454208958194135843375591745132910235712959925960430469572888623743986992112267417741287135491613359006538683033152346210292475779047314989131010815644478812921576588081709888772584693888295013632628019802281553025023986762634200423557048739217750651547005351957816732579228168507888774595869877419976570491285337230776645019339251658529075418471385139844531368896014728203129721125076139005179866209706183998725590549656807255677351101914773015109301179739293264181135847480149885370647578133320571714056092345759685043765997323718195785447078380469159713692216635429426137054591949476170236316152506950632683415901724545306991168248652824128093783141900063822032827379588796863212001435773128299725551074122062502308615102235028162833562779939756245606016351019056725664658687368556750694599646386691118077716512257210869708661690298685102155022933258925912640847989806208523964007088847025314791178089576199786130989447466643981049822501599664326282072603188944898007566501722604754948049607687195510645415695684922129304311391041670918010779023834449584970957240712270140956133550485520074545053686551810120181070246856180033140955773696663701391344437645417689202651022582482864696160639801797447339343538504045600243083062912377402558899378514422086550875471358738148213747856432742976813901598356153812271942677411520067878643005729957362762960628166679967041468322516281712524582170098973217088267269401829119397849567121879486618196550347942774389647618391047584647330919776506957759733105902725636657638597037888741633327009621905890980234236997167708859894785704489933180716316266937910755080083314673783483710862968941960639562197123794114526463534848931013070334843460452504787986598125183582269226224139937091624971020904214849545674634889881612939392711480881571832593722532030794533094042927729047645025610087648745747106339004827535200652079666266964753417357210477169132326193057599880448677848699583872215891524089011535310426983295140947201412245938859631384227744773165205376748322779733567525564727274210785624182053873125068138495587880022557917102661502253772804596566189228914244318797340441372621791955379590446731680783253807702713434333347969151157927113980920400397791830546971585229632871143869995719652534449893841655242894110507060337146795752367434762517850986873664292738616431581597620218277490716423207773599483933699868591127313572671822661028024939953360728931027258601707099766592854390795672670123839607157887139330950625690356415648190139527339685766245157328081495457975655280229214024680710084063791077560023150025663109325218579007113462000721081139746240794827539048192372941497831573408919300382960440441357685628327126089932296166466503709063950860061499800997793221011197487777101800160827474630298232685085121971164028235253252352526800798046559212150807808500981090359325412794531212356482098727458915062457350897435790652567057521002516919291699794594751384284738637391407127358132303750887050668619567562111145756376845732491069875785593939061834839270389249291742830749757616316995635802587825814412273253285464647330700507765293446266251976335699432686431434982145996888718831633519710491877557781824741257430880808105418401341930853137691628884021659080619551230344066437517661109747264983115181333500693185396566560231661558592234710790123608295542378015307126008911792731872784939440063295892952951280976932054337167546398681018761571232486219370160544904638139009255753145060243398496290652429981183491231531177989194647942840260383990949433801209324334537736865090378993357595974226320119446542452541615665545555802189145065902005337902599100963604410018955048450772314261151392638118095235072423739579056289636066807433214729039496869229779991493786670347033464617519008926908133122112836137405920277425760893494646468989393938016771983234966439126121142664852028997266362176326458096239781798306693860270814758296452801002701467190477722490089616932135056330957438301858834939928230762907069037821709753342209363539006231813624319120463321295886815322688363359906303291746249129559366033637644351871273279890817732445111681489664236542003644048467793518535388462346780811909305401565988201206835692931617263698736323625554161240433413383298300085889470337009429358107514884173668122078031593787318784557539111301417387187374561847841364174253573906693252793716791746144336220950205228883950889229726536951564433469376923946278485325185180612441267842165588835723817127920762333324247554112992566133109984956578085277963161458987716533941314119300256857660325310574400699911706480875265288478778660308208419453501837773601558566930712614322257373281303219030868631951754040848862381676823085014437816164950244971690256984098490926723039532521752622010490018511064700855003778710631874897975900927825908684792387290799414903215114621325710279096132135043413879040094391199699287286621974895817425570646856654531509635414380920579632712132848203965267345923861801373206200429176021201232368638784211187634404273745945426309058689413056392176671789571093424761331565151985379241736957486128082954345224243272096757199317795035585204857019172033809325479545122371927930390887691589526474071041791239055288306732490576609780757687589645250162761047552950629055125287369415386980522627567025661144445427986142000669657178884983340098326941084748941273973377725871406275114830465037460187594442172241497857195950945219505844319553413436719636386693654128859552807355214510828325427178736160171609588151862322842284555173684336172726315578866471323511559195875459301708521777767362232738628340092049424824398704807861491710613323097251021020722074166068305269394847560378010016007351238191515865871597389875912493391121291405859781336143210201882221148967467128001312918335191391379048714462295312361821982871029614738265608394489865733364378913940180423837753741005301601218599521785061538012533343280151258397418985406893278914358798762141335966166319227672664466919776935274741375967311983689152145275039610378978722352302852229028650962972932700716475991180978569699675855806918253219481474089972241752640318834958314188996278362423656384965949275475637636793057019783610033831467690379035494658752416573047018385695567979184082168152483799253034242857329614973833038515087686995913614022725447394672925613260069807499575272123756430881913198493065940836306406980633588747620895926499927388096831974694716670335066902020012608904437632717712255070168233782085092420150462932552627805124020168790260281391066352984092007088172411663660057891935074929366755731133732416809558882435631542083140369585955686186871730789313397486406610325203217812627657711111075449360370674021639610801066596655739561098654217974278628117212643539736313274177503068881841894387763398547741319694365682909457411540535296815068746825380534313025780646363271822067661707373040345605891337253550822943137621336285400556505228549876479843268735052036239059557054556305926245554980174225989518263505652537376252843002751171828140785458759678245375075814821981554861224793778832414814269466918907867810906548458800085621480621427175335729975687282534492069400339669269861125361763679710037958222064908097254461483430934391216582628140399119176797981469357269072597998593992975335173050612015723709628627085587425124905429424850189901363835074238115803685378965467315746341849073704598311705520062867657906387804916257329387923803752851945786816660259534553838921415727638755480629554656839158554611046530729759969257904680607646701702335233944783322641788424484042745326950115291952804843867234183080627259640783809139974615817885965860772364632883519541985033917120999472683735676466315656486276594889697187299247346291633284814640729125725664960486417743006691808643383635199590467733416072127769884973883114428321760500745117934121074287379605338400261755377343750529592787543668691808005943649694797356239294155310739634487518610636109172928355793101091610803512522197748627301356840551381235869453005695875983022735909665786791827803388111122088752109935183981756175694478912621956025616769865488890078300087176792854057663941186256751067178125532469638727639531555351196117417013868930059700039236100416482480987604908389721546534730199712246234549988230376894428447317178352930771016126537740403949807893524571855329775026713340130452156586188309326075369956472935695356973557246315141931301215381439877594000007838748494764428728461463440195741986445481010375307762859444590846837224523168392791511131459199119726658732154540648540142056972625633374648955973875435665049408395291026959200316024005769352536657902210592889825712949191535435715046121285560197027065926084727282080634718866894166375722336973462924927738101222324839225807403694443135090855493905467316646740392602434550990112605582087277150433221659254123923570817779945540458017213489504918152776068284253426807479423675172574487598448075478470515396489735669756062062524864633451223465129833820754039941401731231908280898923943945820342611546645958485893735349786575246167671495425725943170340390493786847546721716684920738380679608920952159119015381677139771992866585529689570505218810820364461678783675202339638659580041816961215974468500284915442676867752535593411436147157556331748454436081190221718750230999714526991335145287358127161055382387252365762559128226046600356611904775809729639731883229560990070526028251671411052757727574379046772108778796651761183710886855256130120921184962256970921016897865928387685930620776328689888165611126164102045421714293537102439362530693146314774924055926261020984504686008484169425279333937486561735292932583495723077153880228897086767368850176615729829702451502758095327411423439936629373877578453540204778642423426865395638599871212638919583592963733940938845840009283079077476557115925665668518397110992008528169023390295947296094571975726967639649662423951427635802235713228928858570030741193373862606278199480483290500743734306168437607395410984981320523800295539789479067938565621454007394629236047099396670800088762898912994896770708983597483686056705652703364642673669786040667696124664682185250444041728392443854812300455091476491282692630421712111567853758351550919996307163437067170658697022913551338688318245984585206651132674542411571848615409295394793404316353039831952701754829432823598925594159779934878218878947606121282418042044324072605906880789939658099898545544041906761253192112121947861342287495264229456895341135670611458859455264551264951565793171308537573941324248392807193668935773687044067697500549585418541925490444677425355696361494645939287884454348011864673732411609061971116893184895416943845195303603470064988267449233052718597503898966101687248570631982982100817316187991085685095950198175084300386995620348297075758782120120163064116971870695103810229232923591168522815473532607679684975033841259095215822588963200733244198858815640251756457355259239086015476756570927993524453827641521744103478719366945848102506068767048592545911630409601019800514155802233449508272403750063303888481798189509840183375468691437102663543816357141354138375589196426232846384449870457790284032960680201902343396587762299515739464888475217436185019947964854104979164856434992949867200516641737280260373767685461658919412995118273699678819825804449123909414851008300326395962240083006693964080523964021649209363873478349310031204390960306790738439792190590852155716078571756890738268834577717360719987213000969461469606759948558160792399078309845199817335315562185984341604065885379399805354932708571166950431115138393680343227273737451644834936400316671381879854379844105798095446942038698811814733848027917917044363652879791789415970208972372165087006306997417021121878056319900021510892781299517936450389637948864805355862414217749729814916237080366180675237804160994283544891338095546174588442802967586261956579106147631112536835509349535859941150128299174622309076372149372348363343211518439634071240176114544928536291588973547791997130036789425851082135277301255748192016270995300028715514753708287923651490447496659611751494341261203173348535195752881422195972832735464511042762504620857283483261723562340968527668706523578347421402064740331797864796129802388557820874146166090848016002273609122124674709650916877889748931213990366374970028291565726204171319229565470411695512047815566110229822622323281089230446149100802996869084570962512236436248066243249525436953547635876987131448638489989654425873256051678807415762449523777010586889994549577154697108503571835469484067014554783346366588375977946262874897914859490719797009340481566669417291882704930139488731993328599248907667650907507330332255898637610345220173463447338103715810572271138352041626463442384803502392571125529182596253845388815926660141359826889770361737905263392822892689035839875243904248268654550923025641921027807047048469095607199084902937432779903018307739002357287030956787619787908701885960657071935364364862309848680633049668785343736975508559930231095962324417534533106351473710916648556799149909084356722901955371152417551125170009206679273654544800173431979930042343123767933591187281681631312255893467661377782068557343255355294826128320665311750663751499736014408523740727622015841775073202268925488440193879025516702801187211501821996783168144662538272999858183679297852249003572122448530199466293973601451435973619967315566561123590087792896276109903542923878947266212975370411715196607074206641074613467786946487053441275769164720910112732178383106781488067727948074181701357757450869892556644119581989759247008869657708329861109818542772264205727432061052959947530274973379284886776918571461823756787145460358403080057158595057163157806342849181632363063204476724200155879681289910341681556268769873980227008078150109554711745632641607427418316433881325673950907699912922844559103897938742492968770579584497802157631581937207006472944546216073712977984412696690414011924082217974540411117736110221172380225898431928411527536795752765155411345335874733332413069590788761039616594522028738310751925300900685170351376251374519049246782046397605256196249063581309204893129123844574033980284410043565378253040798598834769621730065045893816345076093032347227410573174527344885285736966504915362653823067515481384247686392569967831990951565566350768988411665274552101867939801838737526844530289835747084769580535194031995996761276225065462540626895337183517893158606106281380354900135518236195906214778304027568043196934579650439679097487492396388201074600812655440116833709362719323303149714157278187264203486874714394111860477002559900838879049781740818015850292155864384388833962706990965144663771398127598988365800318172313070035996897654589280447729826790187148818484305648716699134705166818347657678631868624222252144418930666049778150043066676867545315890715554202330043577711788636115860469209465247715396412810816357929127765490464640696101038417206506721797706102463155309900838343529657912074987404182810818513786571779919199555476924637588466090173544065853849683099885185255913545892056700100903622542809439070305852161411574400739929273629944062276838829750558826644980006826238318035257913060995700076146488145707597561953608393053940616562071372417712320269378058835224780573827057289355788473455098045198461603619768736295929032824627758273348816747199468521177714816282306540485695765573937490233784547551892362170022602062933046364416340616491181318582950686450755349117057586040082134997311268247589755947030952832944934646279403129629092198825030972706829466464326075915614442731390877337563843016968975859090001364325868122969914061371231296492117553811854834630615301409571280145488093564950545125082247746948120384860023921876291878590823188041216632595835603161868107497466377469383120495185686273953156640438359371367184845666573560512292083193594510741587875019068384789657348934139159593054794965114301928565554885439005977946546578000554093851106274374101022399191599732648808900596586709450148663158931584585703948197300648226520978093302806077163875002732270986945317645882699575988810218413063560718383328945000350025096925065239997519807422251090849209629727751274688243439392744971657245286583141810887057099433641369680298361876239939156446254157466175200786104731361812616870724627310479507789596071055116602945980346919511685801482673533769347852234992965069178728247086545881337634185283426098293726476915815791236422065864396740176537626708875540378970579903233650169761657855218337528487581885833826914087483001175311077708457964317582130753221257204365171914917673637318278681998566249252386184175248235910461516820458389085223715885112766514065888658431984494397061062110835449951284336907325294677938112619625334198538956709750184389450372981104009456317588526549793389450413414388584419388842108203854913031908421508370413000203937167962588068289064052914690020591619452119877345754388284233511880337142971859875999065539047518455201529711748389347955241437049909640697670137930222022178289085257497948810473407184589251977034460672004986463555511783885592376763719248646613644783513556494586626698449991721513193384416015582154509114009084343415784113290303289657081681897753693631377424117836935338414949661330525174186052498487244624117686342120170115315805727986130574538075946679014384098178746117740720151243430983469908206822354776412243490056721096190129024221997816194278847486058925598462696315002694773718405811341096046129145435759335885357290066768422660730813529320940353818645331909339691811159982060961033040909274772576775449887317621795393870984976924537505615815170076484292376826570498450435703725264473281658415941541621202549668378391695768254323514657870100838260830985104340782676892763352346362467305347229984298976925665284702658096657174532231538065113718785783986337106807096306699047940342416302325391496892135264171220891106762432380186606579351924081117800114441640230280810899690262438833402432791648578748260128163963797200534388137573708424895082099930213676773746624156247237816610611853797046028749817163820093845775834041658791705962023457420559863253961188499920464740532574266689822727752894406482143819294375133292699751602076872816969401649474086621442986041370976642397359219994807183580463909230216552148664515367146933084168528840108834319603421406409257428729361601733687385551661773525963800096410273608304389149199723129111779140746970973694256176707433182096441810119299626713281006893642877571254795445327303377316830371788277241857548793970564903459911027458307313429524477171432700402822643986365390833403694410816191875497794127365963347747919992945569345424240967940343913238453296187942357414070566851337766189782956227659619007632041399166773748339548809763109762366993903902900559278164268209573237792859133170189554333828216733538221657690631084303716455770019648569601241131444931835974379107762270738087763181365776432808163369878543671440936957889981779615947793375998172175438374308817893116298537531697535778306945429291031835072670055901320747502990100802017166178254930945531953588107318734333613819297310172839228285622424853288157050596021656668566719951836273139911880840869961136676516752038379285547767915686763907972034210832129237502544565674961691134757655475677776838559779695601120554752764890190267738678896759226164546499449678514275423900992571770319471711254057051215277620633017983116120246686389823088704662044697209375069714133730891450408136400702449197119546063253297392895629165484284051377625097241914010970345874125881176461244886527884427191122187563122767308707779705116436141220550318458367554572633023312174623853708530103683289844328494928884294830653434462286148968777439072030692750657443092896391115477757153720351481016456016439205042425808621470449812375603689262902547188319533958436947832729886150014513168511747087048817590857051522646068416284488596017563504905026142255415692382306733847523390504017543418003087200007789613165403703515602335227205536718372927880839645120170784797980040551608322653644111631711066911635657206568440049702327945204913995229020471226910016848402297200134433365288258464074265422295202016170568638606225159011735634051535218676195573652988465352287847125446826936316902570496837538933629930410051059010236802646920262957969336319021661828655268791565065734027871897662196184589947430455208514597211830470183893173558448229681928414640593502337994459660727996556058449432630597875987023945235445048975571204679835973138025962051769729627239051870090469785607943732049675411504497570821902682765149097646816979573397727336685889241607566742433283397646626046355308352126706648250049696179716046056965332237031724043222907068212338315387446394090792994209503670698433217529806110189927847575433193931468932249872647906346862780176519342093152937327158338870217723344623620902963211282554954668099813189179425332693401293062907264833790362283138694957555611751982421833756486395533535896486521655063551353836526791848646666145112898729584830896812484390769322395400516957641846719742311797940127953940043990127233140136677331058129906892065916972976894151234218321281185411138757007045260564892130622406556970784029672872978839750350724548412753352808187158219679025501430860002180745877524164338378937277031975137873283321538366190026034305722195762102092373232335777851918117060304800072417822986625789632116290874766152442833064266289515928409058285353384022145125814336932548932643050872199429757883638973785731739438843499913314012407846102477663215769847675929435096010644385052198124492185444766654692916826768889494125991956758363982397900626311700116098689677751804023975563873219389412931370792281404505336595866480611014887503051652615982587359839890709474035884116570992356267914393010234593282010746944338228788077997255058917786252451227318872858086848882616806372417009979035284511253729700676657508165950037310060762912199383447226955163187504468048935082517977619485024384783239590116671011352300973484513530273552354564124492683506465003221678166702838583624568781990609832948620655801391825917360182304237979781722186171580951805692040592610154771382369415417145084898354995614831720115479043649115923780178184348265984934106654898016697891339165634232293001348050858696718072133585666738651722061520620727839511565776581557407477233345125274196819761426985215095734269140024125816271023028684563740859198190309709891871672647355280479773508256991219734704245281712814166103530740842828751741946139664606404312093397515993742689179152411897238845581188210566146928599006367028721709531492619306058617073714795488305286407090343312913251094455214652215769317377458148395947004948081572293388081841515835596790499946910045008286838589785002533648637776755779806274192837292852479860827329129166631094976204069707098484040763061277684257572453001823422891488757779043472806234313876266076124357733029778754778188867809281455726859187655221364653490719058079782937139689268669919987639204680776920690983866022575918989589772845527161459058100103788096487545289630039972634363590710613039211344045843591092959280393623292259478446319466025682877789739745608677945996435530003279873886631869069859871113821147719745774804407385077380972364075592414890543999350859801077687198466318724731860545182829953751038412198144463965410453080710795751264725938871260589777174583061068485821934406057214980960296318615242100299516294115623806775466492933140066159866518522007178525463177143936071637002699591703458106216790509530957188645287280172890062045288291996906979232302752816001256187117902965187639017581313176374880180490876771812173068145358412987340310390325623313281952596404248677317790926763714752430716530010147446811308980176788496596785240409601833504557375760749112217134040277199882880503259372636696624584711959092206296750040881356824818340633759035888748389013626906531140825866014261588432094294127404710890149672162863352119923839830998315296554031686156458383602509612451745508285058582333526574704232106271574033465883755442994783659939040437345940251127713348992370840955461073946301270656330840759987967169283129146279150874112799313022852097593034027593293404692203793361238050865718340273444068741228146951956664158876450506557571044554652446286567754332104979823853497685036965922354632090894724993147404058845714569052630319535008502759518532157504766003777686432143423567149645972681284036191632631967842975946136653317658102098521135625001903103874293541706198890776754565999334299095573489475702070172495757902560036818723085931622323492792793423926734371272933121814617714839874247578805588505373323247021959704382494010438771309967582011833165465424774806147037428397837478686191268247923589609103794907784287390464831071060360041125586608996252087734187077473417040023643366940937551550804559340386551794125945202861342653061728732824657150625961800514093170933156743945946849606435730477987612020825403612984459115279497834852471188495027181995482523705940887351436280430131568538652903231657140728732241959185511303120899904900434461238775071797319447896302973363476805171131029966636956303959924260516016224289042930941803475818876926390189337592480996838206083742947968065604444261940752374730749183234028633965793228677265496529508863718249220697465058701032989475894490005471469310374573496706342776155816658249786024237714433960446172464884026570521608788060799142097236142617518731284103439493687065034279150968159463269596822928295363484392719207756336633363696294690616822088515432483797276468107639855746994650470083106657404519194440208774890922973298824819370554495921491393810944520442327484765164760313286347686547026758506497764817647012099635340848671490221524082746836772270419088577531074996816152134100991911269288563062722709395133418780959491834745616123837266719576463049007248158613743270957046641782122034911823568526612617670115642746009005219807435941002272137810651802905040297819669680961171072429731395437921993558328820383444046380389888295837159118888488590211770868095229020707895630321561497417376175790460246982649854961006165701715201043126567953667457734643967807404686125913904575984778434155567735167634043508032853907130773527086839273013411598822365719381199044598046719350280577270930015241970181084582798653154295053480245561454125559946895186611922835676163545613739987832671378266302630833189981940673396794177666659611358154694487360928589456121682656209402316230985982653361708190666918890113288721248361494232300964837372679745805154432804919823134249233315924961426099162385596502721406898431866109130206344648329891718477577808008037427185269762118595161648248070935739993104954915837676499958865906069346512143115443767594901333571449379722361992843168939004671515067560964071306205614702970551696597658318695492274218195551163753169494469989522787034637849840460690987801912449602319575552667184125819953839412662762444820063597062463989879372108720067052223142580878842025406028428691602804132339800731183382049620930272683044406861272422989443076828314841456227414585678244070082886512551800961781953351627266864930193049713167663438003116331751880961104698804772021240280455393873203101254057135142447997258328075281733807708468301831437989127730700296820847302793799051545524253334751022444142208869362887444205124885636384072247060098586719228924485964753185806694971061681105330986498432450714666161383211435512340150621728200884652497570342510053695343781431427488801625046703194501450441082256061013279869899113904142467111586737949695691856043152004683434443849367982740387537735482966831699213388289641562422960378878702113444766114046439651083383474231082354119267135623686967838101597373350795871498396555341273493351633753778053901799742293917694473053534105573028144715876000968434357824209538989593041018682358593674825988089391563688112045848912148442789117568394894334145960514582236671742000759358864899428898240143271920322318128551403398425246732345190050617956220944279569233226675683231191447576373044883508437536139857529576676388829043046028388049281731947111281294347438817354548496792795565529976952804589891295761497284381322615456765567578217692399025249539572930414137234933760956992588577681093218482817976127048128535155527642473560495964068297029684289102252363170135081274175362588437949125681123666376716108508401079680337693981860218347439420333250888006930647848872397306323351664370644796947863655556043640011285266456987634466280221424860707049483885007280672513946663287056527311885245350383688382907109169883615208255094028479160208538215677204924421264703402872715283336208181942251853741283359806063995453388186689917441571297562433912262261490828543629539777341579375231397250219499314505735896086605567042764885333398564219104615294992274752049472589440972777756574504337588261997293333475757520488750879817623097924168093434219794801962509198707920218520515670813192404731696926012614638929635655717098133827835438705131757285894375479942223091563081238126146208628539050578359165447244892826326237406283674561295097487335785235053210189533295358314042356643598147811783590586613186396221067114920895603980920835751551273624485672401688739487950287805464055431561946391591421431158851354218261839402305766777436051550895559822862266624377955348098225467745889107718273799388511129565471923431832990990943314452128853780512190875731087568866274998289364910288553986182717961628373670933898628551965514827440826814213664337144869524281968059556447490808681661372262639830305071695417800986368131799090930395514502648332331405052780163982936728222510106006346950338633630108947048422166304020186628005790644986877193006694604870862669558714982541553889780795157025055431468125209077012166994489852149919960439016854241065479174923763915353804456707263884417053429252350297028321124641965232974537250509271792738717278054144379420398878401633249832899830119601012166219427121945794751958263390141665662515579190646704245672241330988350350250781290825062461003523421795128083141487665501042471710085166698047924862195009894118686032135535651413799924544833592443383896818420413294784691950103186026787743543667466014618379969520858842028009929005549046980077191310467524241338650126423601314982731558546424837959914205526519468004437555317011505373706093698902356098967995580661400280482086144333919985970279317758016845348343832653209393125210689037058482739188992529457688481318160431796562158843633313851795514692193956059387806724251159514865821033650026892344109752713698395886517892916688125422931117300659017607717337396652376025197285357321049952978088782372494970502690194587887561972334243387513366316482777544702644583873936864294572461769257952611909306965851533842728653170895379933058311227505745037502148930706285352001299392475405981377542195548205859535957279364674086638213128219718187338346467328395870038441580405198033916596066372982030319386967112886011803679950153790750402591141934254801338312022098435237354884263992341748820076002751875071406965715823375542520230794281114857942282350388983671826204430315738163224353500935130033026637982123789629661927523079171001982818282136617308043263704739248654398450804919044338292884291157499491169626345292527632242175689629187385269876086114313900200491265351943091393857515784298234356548156317606998165996295289694135211544024938712456428798572319890500141506604193871714867020891856196401016426690586900156139969970645126412305293156421814040973857655354399165139467985083529417456804828099440725161851464706703026553450553173868577197502561790737754699123170562562591146272907035327389875285096069824827220018500969338180852634920328146187178166453396318988809446655596614458133910593981134201876214106009630005058650458276617482006737835061083097492501050752706367261205411452754546852429077614861951433673135282735546693609967333115969878881175022863560553153186623156625612680881040921479384485908949574092060111330821322061698145824193254888118892038962085183924346202973454483507858596932364868653223234445886623742921153827135299053899638522945603381225351791599784747752995639761809599303878626499033932367430008415069844811726039311208779086270906877605074917907855714459467992795370337089038895861133058865621650063361475612585200069351609980679795457691839914685930178263759452851540553769939575099340628762081202055277471246212658682121649221745845279127500162279433728699787964652305815816168189185849425188758188401824220184870340367914042911688587157738457599315003017083341826488111866202509944420498493096078420993792943092421630129314486500440989698775869750127611130070459567550134528282889928543086572298935893231542232766828944975690983323437206272028098555039729200115835897712173291085681212863908544916780271464434123020705193564721143954923306974774045532685374615084361405454752879906242855397729024391434644821319617556185530768270470179459594003545926294711735695805434873334639298769432352034032513192668097838978275027185992468153568355725291244153741218511225999365422017513136497117828535360086352313157009264785811110902841751349979311487068762680969252738961972424569790251122426062890029551346364080081337349511956151668152503207657290463588879003410699406732409824231783795198518427100070207836390400091260441243380881822489696065995502296586615517052208102872001982367561559532053766111606670049876737782215108891785877169310022377877292693352744921378679742966501921505446708186739820449257576986516011555534880086953984402243276308700474864499731439644142382531278252187398786263787421413476202357686649593876378736665993282656712531759198776371696372425707924942429905362653807303436335910136959213526458775353162093451393468148893508577284691075768784445022051574018836620095530983479753758182438317018324206240714303008803891158753982983067519940223424659721794200297134417352419206997357852812663942367446887073185253362213263780458885676668506861049674710611842378513416699450119193632136094026741144890579876311578344151067399430002027972655902845756937257327964351143357738794639697178549847394289551119113455255103374695413995503577955226067514308991682717597014816166618898099539814611596125647553334075556036779505027400825333571835900213236474477168496547421160676309020040758624829230476610791668239399249076645211999777353035872508361092541956339264822631469995151420808031865354554513326042755723043231554760524436978668846616604683176263316598302415607476198350262239172881874534985411246933931551470549599421638907557346266730750967346892711774113774778887386478472017589534189093502179810284049338382918193440851602198785135858880485806303675225504808106693488040476904833511176051257528724648887927014007160028332209961219805917693635828936602089120955781484279962808990756683315487532581666880984581898093947911365367389587173191898469230227868448718325813411713467347537997647079469341171772211727512118886310506650041815537201929852738915404473294803221716275936087073797011715027684716885102045092182964210956403313713961866503048416178689175948392852380398614924966926433217193053863526378250387780025702157785949997375636463957097587059465289367551106759285402895424884110095637734122411369155768613911748283625945119804367676554606257796163097609764640611838387507559423751454050752854779402805963079978520563863296229776258490823214040229501389407036128929331508514912473172105344090005933411926412374305376225579326304825406270870494746692474608644666458575698705828418017978166626897804769710104078450899685009619540219104466637791246354230813026279108122625299569575266684178220585193660369377602153453972053065463401244716486928805277680715159200067103972734248205686039547865280049801827365735196832433362346933841731362585026164418155868874268100486265764103574626875265801986076514434397076396369083246464532483805498838866289098266943268654492360043110929572110047194596127671535881944050190009411760495210897651994088516681906742643653685927642422833145337761493901544082887251332917150617333644599040246028405201734355323555953076362900772376780619345844006568252143977749029817482598516665514000619048226458660115645975792997125930680092947092118663631657499061424082718411574682006762090548012267904597266600434241312361633520979822949895202570357522049017682997794726528369687102109870381261512233795588389468307616748652468927857764444794916661367795514025721906812451616144591299672659018765131510990598072622169653133244018361612046023223697684503531859300466732287266091024249692514044102790987737036707534565992926220293025119056412707062653526584386060977965448117011209193646723010950261385721883676089223917066379460131378474024728390441345347609228594489915387843771281918253479763730005644515592098598499173425122853610110821818432358880537056952880718074886108763319322999261582959988133474701655494959004253907977182387662985104223055337905187947834580346374257040903885991893479602431301495690285949647763632611581750220106265590482530090507431406732103011974378357818329828875826542622943131419539008110545783345896039892718279188103980109085294632141232614593534827623008748232870864425097126871086430219468363504436709611228230431095203442234491730825931987581552976718711778246086071351287790102522716161322784915478356556611764166826120094657700302240951441318660598504858693597800050702385109232225465176961487692885305538436568842729676175670136852452305896509511532946002204147962557663081179357831541019111356730896048467254011784285210693687061517701765050967837187332119391897052419988616511062959644419965907800477335809654963667612150028130536680594461638133579738675254231307501646537038429420967560122844347635945482381976096771780684969459208878948171229407434351070124438647275461304704666074555482856574597049444229541120832483272384509115370020182174148427333203667184031838110988040290592480544156326208855229415221840137944693265492745567550764631208945604453709833183775084377081103605170950949821822905165031824985021556675617180352345000754170801566544373244935433293374927357628913734287638018106004897686203891979964494944687631101364852956651959155101444847655154818486672242738331350979015293057458088072740472696111357486875437724259637580409916594636213470007819851696706052973589258306524008456188747784104410658141218396432950401269776054550511778168453432444522305692467759587757201619144377528704107456003334520814807982885049713457285078479118969228748300358764415256112473740754693434317755203577490256184091619450392003160359091661840585051943677204577239216368282576348902845008762246487372172288757067080096110358070942496681267047128136737747625848842933600662728212215902835070501525486760953271121233912672950610967525492528728438769969334856722736135816429815009695355874910369005120077758750216930183610009432387679883820748116105935345004814995242621632153132291472175717857874228678454280883297139296801573431855911966163738095457185506610559806641224971267605193506561811940022983367689836427907553717620219933764986893848693459005403701553811653894058425577886822289077458934837723557783062655688668550184249354301417016013058343716085061077403483843370684160413163140618043287964719512524408167579069274850872640450094378497178062672386035556752089723109305761683531936922280516995120436703281133000182811336762058365352657777628230452752513326315397486805767756863745770879172180690646529533700078058585624506509366758782806175329462544974500516957620804045887531418504428782663312042078907047638401476669272247403915917382346587378776585894611929765628546509040560119851852962834850835901862765297348638013679417885776746796329576586881228384324030187116358357777225206698424402888591155552143943089507760611833235843651510719406995031258361363287904834356292789557869057927004800695292780548321161277026320095621742444856579604355533595056873490688343307031112108683258710650739222946948526546115407620886462652700953100789875114107519869964932971979473040588177745890501384724990629471289327669371249929507197394738662476643312463808537961723863467976886128430630696035613616688055943261476903922872111836697595815424242113591358941776896501553673089403662031569951254061414036340350181429017476062489180172158479858276976057809602159037347796042709361957654859408713545644206746283953587635550580562681199152483830438208303742582212614249897078435856900813158374512111340406770472988179532716411043129301717379535092264176144392587246904154835209129276937126245479811025107166323845264381149881325204623970743223558488645479223767836524447590169068573243293595974146578917272933375346976378639715133218784813658117311647090854073997311427197202156314948241657254575678924192798095450788128958298995015218812793953817638582282369024257469724917421771127929447212868889410685411653119913805808006811644305166027447358660516821797798852634773835323361634969857556080610188441911778216401050786183802149849846821811917618642628987304860965597908375473776772673192209877308372503215023881312675307439204749064843756539314384550142545347256246284143676213219795703326232469248989917769676337534616744926280777071444323316671094243824720880422024655060471339319450792761312430817017293326461005683887523532875238095136304220182383271086065677518064396391087510422533139726081792325430158134257346104829975682267358585010181626460024291571507311442624837126201776019367626020985769315633673856252792601794325271821266766017812796930957631268392866756252602171998542242733919209191563508953152926718098284209223161756633714022994559483250056432195087334660185609504848129580343542816380707339171865571465402366724974073301914776926944186368383613455269007651951848840701037831676863874796839132711362725969041122326570773913648209921492015392565750844103771532881850672232520615189120405427847104617719730162537555271809732528075830737263657105401848728252743978040549044906812488788088926897246243905087975105616046963584625869036579811954277502346247004254980398985262906047824425741321005923745039953025154219154280586190391724399564999417958326142467501386973554354097661504030478371032044487585002102634349352857532125353495516347748079682739937932561227153896663317854799553878533946023305407828687899119669291439965680327792229384326548845433804137724086727461989270359257669375604619134519751304111315456496349043660917723366751663864988535197991850670889993609340311859115798401180523645075235004277023595513649314291185005859821775642736053995839023503974696574630666978478551718560208461379557059433336971294345214769181494455572637668808920359973324279198974080278287180352390571887662500705430746300013115687650906974761333941285447616729155116536790049863173365030614256070215988178669101753798801372586773503681347875891479409281407066527754220224775929567260563449108819858414009118646284750679350515143785697221587951898216875348845260335670398292193292928853816577022665105688149084189623455082419334740202446846055712333524994561538458320129884378539198390092865886389898490858658141439263105639829569515435267420468000317466083033384583632110650912252260836017383482079817103830929007593668650834554377558319390067902243692365044672872884160650786023493907833557509283119169092728448033131815483370740744921409942567992754582128681448844130369026596442717486220103708405983801317184786264306161947288539799357843596220692518445423170428783321648175851155106036548479215689251670881533067759259573188960182945249141821509867137496069513630097780030285925693071293270676727286324411617877183231917446970211745185879911750253079956050379681138974016526175570279258728181944745268033283663368162315924884504635226159236202146640957917221365937149565518031384335256210761421714151780440933527278377324378654850030098902110996197580356888160481341762244824687434311914960503743084807973109189137385978123011394787561371781402333853015129222508673436820630641540065475000406539476252117039792134146584264589544154431481710849902407661491370687417035846585158087746624673071968280932436176458373638410305573996440799130766249442969055849517594617732519459925427249672560480063788421075248466155352291093681153796209945554974080453124266401030665477157082973953149953832182391672499679068431101753142606222664543832547482930919514429285258410607709011129400099764340959761849788159160044180196810110061600741463293521765493371745888244921696427154832514755513977387134857698997502562165683260304327185417615376820735301507989193611886907179559538166289999883407511275961929222682797169589347278610847057594792902468009583623475119635415367833584139570972956495192795482815280091310568241981851598425914325147141329515433784334858704350697955224949310242761471665997569853950882053676240724711003692609447557525062124234226287365083601446047368748537581140201347111583172983562952122211595419153822583388404449200342934733168753199260282388919184959433351888782687353903422696118638172880836387424113884394922490018223016718069976851565256364648302317382894716404062483000631121130070350516964319170508501097171061759736202030557266244901445449706850489213964138696900139670819595718059919505792767500251331064932352527568229249823305216605977420088180494654453906863279940166463091958557542604098807082617691647627279772701564720477993127967308111153752241892646649675389557120758877498991228147329609622602947109501611447031674120569890678420707976562322971637881550200377199742957201141878974766788143943928995985476194117519558316580909117208510786800113513405381775062381024129655254510111311896045542357400131327838784922616168630024361910795734871651109281290250451714684041335888474909163406172851203660433701577355919215220098478017081824314937796568533442549582466129539621218072770241221657279634535560554535737391858012511911087939153363202617795840932514730643087967410513754335964067172620591302958557894818628305767235473327380734456777017811864594284524579758086931312274145702639133959131389223309655764606472372678988385392710949935325716341549655287994277810634353538834763215431901305306507526918502442547992398728255460655054489235777288061134868327146569287252594812400040493809196638405479931741441761914129878637283029497563688633653791177898084882453968065532797001281497541746781176939058786396038505496596693529498353176072746523159280025510822100500442821363184932597294035234486432207390457233931954972069372851821917208288212547611091902147807523049157023571642286542342088960295872909874058303641675461006826325182016048847562468658105173110791511985993275540353622086543599496469100616900426079262690403478587120633719820760014311841635044143167618511756485574443430190823381156952635835989971295745609053789089158509129045033403279357590260895686053629052140921412637920405437149484232028499169220895119246818362664800988905777173138584576667336248118519651731984999625137047263161299651025110276319518300383568498053819502090330655371771125971844358257068254574330090124681874871970405227054218882426045538640789302769074203734106764830748616269403986272319439146999474867864955375990193641283396747708505302891136647609575954209218918036572355542270190694213455902996482076162127233322225615485354975300192267536063755815084398368919531975781266071169122347796736182551776647742520285810946263336049795251864848370513819383946660690234686944527635709001858004999865586922546274546954712005362079052895173906278786749289344917321541235071559660406961210280564421007691710453058348799187565018770658396247263167677228878575408491269787635046718767484998179270762618819249257570624180672522972354001114913146901647099055112872961158450296535348086238618815031691717198789841664756155905898841988833582560663735870669784736821829182105665383869932722968841806548991781068309050184157950719374683830083274220754512090699327847534970645716255895797408869809228665053111078183776567577291297820632186424034125081170383012573714047909378462230294613350843216493632261008614450073670158866649772738903259313628247135075226618017580930340880816183884375942258127605823371842765468973307278150250187222486150158719326050047086319641865811118202307104866413996073759752055902664476900684195806603117439335387229559338138981625093054678526125169178973319734778335905038178051591455764079279943839436278608818091760169993375222838476641372633190741976775216032840293716192892487131048835223540238133557485391878338907085967939927696119643031925332510261973400867858450284238182962853408591344731943076053727326926099767707915850024601903363660263375915335185644864047874367334282569495851910754612330501344918508993642048705485393352494220794479273275294168180020483607665154659229275435504709536390989935203298879983329958019255586087604479490005147250079091054380641591940397219663862792036216030186994779680059496436330999279373288014542166818324557220555853180866407258107092273618907849364254743554904648767841347272104585131953755852792572858044378273383257762278922653096472851783696947405883415584934867391247780825233975346702308440508024191150646108950476507441766498277356705066331674944557954315362000208931973277447177489324646114283772833891201235054417333351973954496494058933723424032512337139685419713059831729493122453916800253468406605441645276635947548986523773147085151513934426360535265093779087516941210783754491638051342527895831608262799562903634051802039099631862424911746596641373427975226052549604201171496671097480333409558356104976659427522274495001055744229327229731796239583210792263912013740331863962593135091212603182086747578843757592897908017255610461544450606213336278835650535134193573018510254395409937152346828798154176729600045148861179449836539433082483426300132867139528011048002292174051551531316718170889484277779220500170071431272839883131662129954996452936166878669696963904792234102667927109462569829492258082563700287716849439453449337504680412553350598175936073774880615931773332212168476309446381715629747423128459419354027025188528897592093099395461656872466939827371743096615685145629572301406442768811208570916659748537212603306865547956635393851424249425728514541061939367047628974745359133893442830909156971135759831608034788561023671847058445568721897533041212427787421016338896091985732846483121088561989755897852128582481693609940449044785924751925081949292988253361356840727455726788673549689800533096221524774003869441481520058506352535338447964808856250407480575845641413927870237129260098498305670989534232642736933274493690128717195315682241772594037485882044795276526833235000965965756059350750064859848235646258558013533056160947684313669042346268702941242519781900648621783632199131989933904736273344254517693932056945908465260298372834899795054001510163115257270860514485291331874295501489215647949516023125485821009463959544614669941757306329655344976886677692633127104614257167215358829269686231203596921015883716397706860726604694485108181790951354770842603459407339104207405058689935122429818375488738354013320088141702864299627621215863177591996351000587001047369016090215799506309546745647481125277954977740978502723223222274556615062984273782146276615359566885292190217534982436131347165964255319287509861775023075934230436135754532072782407562306666214539424361019058281720944953503617921495297666351965871995456279989579053741651629126909298982058656245657034671265352228105200853354999236319455676695902081251717495767061933353718979343840458557859372767248699656274595440742512640999983250361389473544664896217090543973347566276317020039530101403116790921348704407345215872961714443118580360096496329839768815112055777172225890388464575387280325158912530256092804834443079237164474478543221137491064372333234758596063250780054738967689878156282687048667959910493399732938122416178076355884337534914858349733571522363200476128811771334854282991122173653057125004571330600284332500923082324490203252661550278380351813111961870907757920466745452267618300861439803886235086965503240708684357517409923887257868883122436282546335210193887389377960908785527490531794177974186046646762658123924312730107745108144669363036409237261743382295101023282634328722374057702941791978611941629531682779259350338573991218381373269635255478361253808359393209963306146900283671584746700007077137461088000009274537570848899085064077020377786758410338169219167233971043007679358080685808366147232548394658492463497505800546660668413042221100660030406507257797496930988287674116484287531525983056393459291981815828024411337720644283209271256481672740964716479848236909904092283812892734313378917860927947712350042766505689642849001916700856605833690170174029750353755435210422806320117026815707048055619093166301968566507725723979259167428963409760594790220196929084012036450832737973631957183229913602430146418839734476917970930936038067552353180113826598924900874472344589144289829791562573011694273045366058637186473784382270947110594708626687763004414719234663445265327210494894543194840489761691286736737045871868897625948677784299106527424766738265475998528431407169951050607448318464739895186388519983763219893566616718782428334969400293462257416334929456232374383282890558826319131236277191918307467496311295953988120340345167281874737392867094563729063413835936436275489890089941200000981927081151480386592443569584755811509487250956069984343748072989727693444034681531894431250766472878798297121359013010928238067578594304348594534861918735730585189662454376378051982887367258571887521718699578102974674837846265073439733470539517672112318360147745351677418683554369725448967998182895378009553363168357241863787064898473711117751329753697923927774238060120012874328261386005847328956819597322313327555444075057390391126688891428145351421289374228885605911062440776793130143598896295881864105662766330320276947601159613831433749276834695551143826864394767917112155545171481652484531159710430171046398424490544058670000163683748036326842108357246453633398566362893914728223734403485700963107999228177623543209035541754893514442348756058812376773974817719350581941583956793943840357304840781850317017877532330737192011679859508666837695152155186813052204092427489141575691436261125089380325287115969688933818581965217256118965987631857453007815646307278053915607018090295772357193799076095367109941803057539802490416338247479706795041465461163589141201457162359054741434694516341498921646391790644365560258394691408928130391991191913014175135520744034731901385818540701594957465984306272385622129928679549077259373121936369511357800564129794714368861162693145083785014942684152762632066135167081634046641307711766578435197428000888882025122744467954483608485006620139872296773019139167682100679857943156119359298092140321432121850123378089358562028949595279061167656943171663591077464400777383648248385330573187171594568909690393880055921985772933316010110741085265712144339751171861873543610387233276090170992158984344130465571707827541798887539910596082147049772926902073377287556611224711937351346887382958997519401761738681790357295090721681021517646921266457196319628401507510965518588764037608261001157350881127641613879375316682650340452183668345323889256516839099973752065553915730153950644038095923790812178605623677169771805765737605964829810200065490953939829781278323976235684798710976309837562936115815380815808792579313814685490119997516051971820306581340452815412810685082391640362738367757153767120514355281257304838902918208669992779338716477957968676212472566028516933472937886371714552586151220467360625925973857240530997985130168133370060520665384945183191480773100810393530374442457715428209494857828179335492386227325563763748888772418951447676234370289046089502790023922463036235818196392038428665413542049675258649617397184863766306525387528500638380989323443504909659983505634793809452666687121081704844335578986499906541652725148210845146596642351387926762947482426781264096802093662197031326918940267688577010096476744409878226336125088511928768754627344080551608684157523716383741647212892541957316241085463491748849181502867585685581389628218304883176282887440934408729922491309988157102607575280736028751371383520251085353135479014593077946086020993933473539419152277746876877665708700484625463937523355065766991278363469306009697179221608562953977934076226162140305498642438110458636596550001551602125947936382362392404147116377926433204531214162775435897236567472222252747256574212964756239864154001738744912751034703702099687663893239469064253065559748382915394109606461063109995915860652015022185237651944953147557082078006905050711577878782596797179846931923495811587101260695263575282071582658121265427420825726275561613439661662387370078880392068563681682179835359031589078599625464787968261174601715203402766993871472163337408087882249314474585305618719841116972171173538130380293643258669147752684988831401412958101145428582661182402514468964061622011994594301821657172498492074744514023501549861221857923879105958400540306307654599857031071593701763883868949589638482773284870663561821744827211637559038633270054011546644283606835110123426649785612830964440449296737401745229812309193029373355382310884756528225685866267308604534273564707633154409802372134512857471560486344005882554247236105293452287692757795395295958798893310811827380510732723477718650823132371814713500277861115699418155919086101940837207353940156052156648413674364577004908545646866233907024952345253784563525923596308965169258881102824919096226640326805110108604975617083089964563991143755647010463304467917488179793337204656909970599625158600546689801375956019002596063191487203860571316994168401480228402535456134740293025133694137934775647963834602701289602979872767120962018416803601343917088406247149340382923913330203553079421987545786811607368521674986996532447559992599362239318827411801981949626300191371674600826432341143923932042581618985385515744107053947557950071136055945240052643729677330415302020940385057318837636567658078302154088074627046744797852796879029938676294478572663653773890122195224761399273092080503771199065390267869992335784673542073461069522893077691460974835659229555175189748040713171575692277458882969052737634417600115680119877448281179702350543486923151384430601069584939015582519431505407054179620936633993929992430839595717918441161990200910175889162111796190574366998789682599795854722183270462958742079425999585271263598413080672639064411210330334189920275338066801012460382318725107207748822078607184740475467763505934037316767528137788361175613317282459486165841904067911355565668723644108644998601045773474191196557868086370255192277581394500672359519736063332178995416516221465704089589765923589237840971232851542721127757561275564942444185715714686036010048963178040140676287235227621438483543235032330021650031824862175117654773804478901530948034672711824667913598752969778614914505204550537836574966582974466328869902731152810219357874449611703573569650152527027686233184917427408288073539023254359008343380655657881976769034509800094153409862035133590332191850266396359750388416932182828413598822033086109464298597547481411420133675965151382064436503460284469495163591510068847132315941648418431225769799155210781684270565869502426898209012826915415125394690266739514159043035196126353451274224412450112575508501841108827231504091159721220874325411009046998448334455859282081521205300100595521989987236038024213354419124409022938380508124250634745350911462865066765495492674976081174441821205306604219640649559427515672869714831770276311421530635005194362481977375746377344713442556159269310141261823601819136917319989498012467044086126526976965606389884246879630255089071675124116084623583235372420062336789409384425807395813348450024991149580295188280076643521522709885821326244853412759609577112976183461708316418734645639064809899173982996080950877362604307978264320982174796649498702662339031347946073433589093581129773872077558591057769685887332896501046921584410166411661277991508415579554427783503522965484188273124014627619019466744106816406813374278782757269976352802338446567978012979388547966126811342724831486624792199088252400171609919702227996191815750863499661049217399832597286216526107636168533807819356703252625838741443629223627720459805134628746114146715748841385649559406713349433163499849329891395366089364991548218179174758821726501536590398127347770368925086675421426269165322623814996475435626543450018965916788641316611939394520449937166211036015667553482169617126708172854313168673739784260222507132084377128287271760765867426570010072161495397376313216803654521546015132740042190187448803555492251544258655291118244911944277185908470884365433127802686435276096741023321063679963091719092947034489678253050866538677901704843154003203567528537446108061120481796849872780389324669921396364141073595531928339678848869006706733086517702127156446751030331572013504620389133017614443949933036444789021024600165608220526298515898546223687618698602434483178250986271216447852473863287122858641322782508040025345583091993073621178619200007832127448769101009392347597814868335759000732271262802613538300270861245477721067706566174194169671769608906264379617437823315716426272845191379023235659270443508484402981745347273209379368099569284608153519561926604879136357104269333683092238782640285559579487580188799776041963652157001824792616349674973419322871047779744345880460348548849612179000750849104584236016978986167000706255611666167070095384004202237163509153754276061341625040892771126649386232788365585106156822883146317250643643211936916615697467952370622111623547553708667937792513476673576970227159530410876765317792678434112167779492112992003404301740071127571907740720939628487176796773386707786938039320320211489783729572750442968377075537033392502571710958383666708888568977901157851980984138814894343136608064143755384272979551383585327584148654370972936310537236776460591271898126417474714989487510893949594322303250724191809481804359960260003494910338968677954242844917871806958497518067664150013703327668502137422077546687377389461860464586523787643075991689532828908464057291631497870629979320040810061978305114804912290212474925051464602547984829703611354088318772214554914500176623763056035449745262228244606326250274468533914528817727286375677647338876802018839501912898672105703493131230168689259706253290333281893796104925197608446329208544926066385332951397246904828565292764752696509182485142453338600079911051115500482691022159286796606350772793275124269688983502431939617979766800452063117964382616060655437716518577800472156589642806237776753244524048910838007541732313403829685630750262797691854765588619292934286324269983635867554367944989416827939703052078368687931601962679061261093378596329548375300041642882492380957727093181571081277063764607921207410560875663380841712478325967694285782519214316189066523020594352912283662401319532293849010167144260564031922916541491251832966894741405120201893591507055822050987348711490947839958318446641388648203401334486081127501219936445838171463476176771630463134746132405922387134963231347533756515121257958827428056564513804216643364522289874317356471967202628909902587362818363287109370999051554960338811715696309147617847045410805472713561490125880064338010496385923666203721754973720025406682476967343407010838041152334421140562183686467875295406161037979697152188067568265261350695692606331192202630472942412097399863502361792552531323676892650475465783788679079755657891607815760151416390061485111229602880594481456905571804575371819112609714865404202590521398933708784833392168942691319273201416054507017760599295191526344995203936263017897766191368587294727749880696567937574572193778236314590581905174005293041956459287607620949013588389514883855183138998319603995420613360807553806663468897986367872109486561874297690844774609543561827688114345304608261989741237021652403993954284630883645655107517555854801715133369317524548059217010585617028240204760746983844973024302195125798402557924434661823883299409320332206264652470587965693053009745079298756535392418625534794248496461685343068869263683833450674336396864298202652834109966884590629775431779274276607911440895942257548391191979508913631214532464383928268520507533525770612824674741281038185731699167587054490119736500024263783374962889109274308668640443452603594954568385099961108701433185871358739411312461065174222171723806317720814357051133573492069322712167009690824844017415704899154396377863666157707483472756389804251602115619354936842389869780890239752722294035778792557336459326224814081392503260849027551142417421140678736815037107653147356059587389345226782473625816812810300086344725703167288048586355605960911123761625168858860812917102818840223915195113576777378432188727389137245774228753313082316562125391501162732137240288181870288955366611690142121497215905788480412043105480139934076896147844640682957531841366422164967959449800158593225180868170120440260292356994619652702896815326491095030553848646998890505081398911499692766904379532724647442986777392015206838090196437946772636791669468024182980297192769925162689098056142718850290963438995326422634325887895047212475875363834218013212620946875578083111261413764026520446245023917119648667463503188403907820133369804187373616641795882832863478236126889034182894156250541644390240094649760209278190986001059519993263977831209796766520528600244661111053045267094694977101184456518757383879761883665240201838186483070484512933950328865088830605743412944481629738066245558977411153621712417724150033806806313870629400850258782079483357427007913019938306282766367129574189513532309599068219203675184699417597048551217975974432184092109638575126355099680527963646708528428830841014822602819816579084256806541137937147895093529167776374217688876466976572809057853104187407739286893743616313950649739210778927411527382382256261879549120894970533869589663267045050914633277278106973090578827465909043367325674180055131905409275324080853516919369892731212975678030470203781932260856447417802836279750707755067650527128463701137774657134735108173006567910184044935898158452936807724747583116522472266758674489008159595027727957679099518648275374521722561595360038902963868784918405954749872526508012827535355690328999279085079726900339159775653960392282189387441739273663042278417517155690379169083154409381171669502409304657350067025167183177157369548613359320128619436434097146308840985671564939341143299925609336307975534356594039092576312204665997073129990797656221184633005481096023999464256632425544068696737014838936288803318690902355605093347232448672380043982712255253967753848110981104524405783275469844926165440189121579480981614844469797945141760160921386529642652350111665007263219809907449821863451483085760025950689955659619100718696000867327670149229732561989557247762400578407136939494845487446125447866205621500614536334738596413951240621313835364707536221425238816830153359217121543481921763100566139614986633266187578524982611802054080646531362739017616677178643558151432183324167092368708071882912623186313482738028370688350138573165528627326416776140930868182958505802723561107467197631055868865451117601487194837460028382587512111882225662246006366187534282050741161969385417431612052285463539206949540006842361808762390199369673566540357713038434102608551407426347211472930269403104007837525149296495086816474883379094091935569505308990235123690404532409670467936200872036159786587704880065801904635990540834159773524461366268144943234404249534152502834096515250568675451864278257420054803404912437760459262297764776173088658332638150475301983755539615736209833929005550262837432867722349763079463692391660576144270615868547895552880797167159673575240808213511122984908632429845494692528114518450650650213951981182219968877984301307300396042776143620444594214311392259737159937623367044791602257550407364177390794529992690930755817488588750621280041690382993183376543962030497187206908326151505386317914622696945966685997480707174776517488293613166192413489957569032271615119409090165216228761737471519079839072476096562635727034127121628327939544705948881713661735733638584300036519942821893053177683097016396305670991176476007744564850700631580693102668707739200638348934428380665098782090954892847481772996730097599859343275945914606709184727712097700512991828223673446624649931790434912757365627630261995456745343446001230140575063232195306231120224735103245110604558197130454810945951981635810592944642864359382782628711441613320451746211752242381726917597148555051184304370122266443340032706983402939204356776446581778009406892970089066088995208876568189127050916079360763280041385964214431358309076968474193586166173821080407555478581279717914728566456386317489017007447787792771502947025777590771810356960481243090738431413797214852106002780951035246635284248521114406708349945701938786970828140438837084177979743614211351506538355181055838678610041685329108394654088185474417907844672735982697119719852339749043478038503198966520097176013530483157415440023690174763334527310995741978213830724362411325542905864644968364537147721111892116356631898494364548903088588663596651720434443011385074850972988956754585040362964008524916406104889490218133923887250641565321440709252113982670878880498106995759910390552055024733882307172820180336087712608097349535131352288758147728942768788812470620938133938714695113205742563508370411581732109572916832533761544007128662811269845248130230048442450894540167315223596855414654152134443577487368422914539819720913223118550406100145853376002270332386892304616924036061196742934492177228347065227590545434385625193323096461561596833441578602937126795021119716244090784279164740567976206819430320936984947896877410409875061891460569198044439524670051091834018876593828899818251728262307262232061452444544686218135010571527985257154610409774433490946333346096615102867931620919234648070554782523162077674200561256468743809772106070869548702042347978672652338834698362463120674130323225234962458986252052128753628466832829633922931252763019759354316395394645914630866522593683217489545933131875867935307453277860446907998896190294768396940293648413937585253229879195416601409905634325005417946871573686230842879867926808873023361807909459086876332020619351007268776121868728764053852738421851502620825869313292278986385157599932124592352936856094277567760275670269958961649368977488375112640149843860481207669753673401551716174977160564211843436570874241959347459685714522016940854893949670875347649549974321123939085236171496005453406835139250574745195318512973785062878546697336098366788283988990070460097773811635663818123977416790946130657142964252424730276710028360478792467370799143097037653524946391191367736577639825480935074321440773459974466561114228470039997152889742129150568663272019418446760103990173686366919338755576614857521726854209623501747350171260298015175530148111648242128048547873252008560130707729090621442502592937429617760439995339147431239150118367456361047517456738428767277135960183468297901426726547506231687192654298295170139566799445864591132692179582180386598865624592177212976380332627798915248833262381479593425265994829391182388615168408906787677178093226966739112191449211828245785285372249373123589572929997753979329400387556281014662396553174251874291401161570247048843886553305339823136846039518181274217497509257052204659516827022142641601864473461084174330253866902125812759583679462527093141101157812223017161848175591793253793249124227727147443834384308071473229881073644911191789017989318805948430075597249370251032089204047316733512315878323546672165539403858252533043375769814069603996247246234308661796680778850824690551137317768570694373920970231874793805791872518297186433033034398114345767336073632018373903681852246833981661453958570711516256673637378625292560731781463384103012444393871978192245549994560732117538360046812328712092273025259309441616672115954891444749547099057329540520106500355375446434124831776451544092426671377388499010787918142050094068439894119132334330030702792097973929169817120403117477442983142527612460605658375581107734423730632688028177079648437012931802873263914799658507343621460594373376531307583485236940898520299261912146174016717972909466639334640329908077994421802705433990650986893552777560158692862613167466504332685591678674712779899761205797250082794575431957720521757130308876720113678933649416334551117351644624782352784552294960270486144618449754316806694824020301580626631320004141150640003124535380422855218203878996008541807070036030312624450096630225878088986811617368896214150560981827061260225439010399736328840979362659268152233900951828734364415744550595489219084946318421521119751270130736102855792645669007248718089307746566483777217680517047574095092890577686687507054110436578637665028817023859802648493237198852041222321453256256552123129545646455528097706639780219933014305530900476288954292616162321658113491495244678815815956539139199579132794186357987418808101777880995891910821985111553914827112224035895489640435846326417947117632230828077922288610032629002835304500904730028509741143905101727504475738651383888895785951011593255014681518393129201128462789723311298439585873789595920403630426408204594642144997899285831054289226668978022396390643679986623918333464736718928187139622390793460496495645706435867002244682076434395147454931703745492301282226113290733411439480538695022673593656207200318531485518998480282175421678679986100245307780729525424182572667522055241396127221790778285664182596580482246568923939132229902464038990413231938784600754459029988058684233624655529979539936883818937722580641398905005510171010197067282542530587020685060449359807514293480679643167117838313986038473575798808182981341884006393461723879577966973057850052363003552993109581235567827831559863544389766723719078259173074406532784422326498809499687593656209681012674441603351145777841076059840371477986534250801669887587926987642774186724419855344645367445547440500282170116924511734084839271794791885970270578236158137387800308534986568881669220493183713501803261905288407204663710788549226279285041066360226147802741571651838821004942907395382257899082896344631686770651600004925312327674602543109741671204248263156843872857927893463213710340777430561317171994168718380000929318745357124903184316961326240173695061962714479563676873846025552629323748784165200274117530180879607796910665518013911183347118526567850785892686477069838552991666097202203056070667091964274769984651233680497069558910463569271037631984263839162691417815465096604006550144021229961929853914321450754432921614769272459120582950843655434529298704214881444277323351421397601351060643823275562176523031168327436718933635274155932076988929999546250140189088444049235631920003359533189978511116251789972430797346024407496151317282996808335512848772090313012288593269991638644637718528047670115875988290148971458862709347438014552571445949328839817526020161059296141435928393359326319915391513610427698614165174201760983501246245409279891232498344048798242251757931064657855519318463780417289677420181461985022022876748055475190102288566015190067628417730442767175136080098563518305300833446014487096418155031091953045330216687373236820110810767472651412909314690107834150663636789468279673753314507428810197817677383837251381013027269416092796220508402535044364189027859437567472650292955579879718344253136435717290241896061068256142518423766919721548610173004669224894794430560957121562882656908643381500433730003105219319472520232487939228511994717266786130455534539040083215937941207254321136530649733431542300035736780647058243182517664793375470057480118486189000394666383088486022111802056518381722114548302250998670025211356067285590805043932287188261028029023567211730243501898929248709778951737967606764708641458613727452223983945328552718392008657338373240128877932975064433836216010167250158403942504536858237511134985283630238110180930945027943245335902585137332610687822821303606994373365386360493507777296118464372444911375356768897447866423437156569058191788430201213586042392459563052647102920057526509657089705265003882584292037590162793849350345083610644906946673535527760448501462232242095406344312664566687032457169489633100592842758540148584393523231826802656643384282346251149050923158960754323987374652424051036752652893077347093825651900982484445044067054653253247857190579371970906954867517525778811764635741854609030539883930789990311422211577400100359026956796622598783283608329573543418283625338212362120488289930230285140353813531933832863406571681732881713817341657667522839588110543606146389983160878868978715982742801810297008820853453648263395875479067514951908561188874812848934674453157907031013019749679538656310840103151004981691439526397782005580128490014937441326177442273652518562665261786857062387160472762084199138443252439963159455926252430430952425360961620172424953058535952940338728488068306823483579012123178757496811600430114492181628155645578890141198996916102313851187453684714376676870400359905177628887224649911857000687928383920898852927744879330892282259872663125342278319537325542622663943563078960802465943879447710350348285713848445167857716997258219923542598288387239671222897369877477267923375968680087259244774658222580043824329234759667100785453736595779513416445767704487881319626924280402951654934823407792140799160252059287279238206873997555640308963253432605607682945938434759045386229510981832846392092905265927890596719037434890550832527083253304966935122275305934355929705649945257295324618919577087155874107055163220924139352530742163796952473304856096893737951238319884938919934479366075024617396850268181210668141956668627766269203481729144041288754424724093371484020778143956222560374434848089472775375433141667458460510201420271816117028920698838159869465685064225311446754857997843918957081003143543131364091272841628695967337749842672888808567123238196258024993296535213791974159537896759058315908085163915709613848424075465797879867853331932219744544299708713125760286573610928329373956432289747255850977695122233105047679896247069126180121774261190895283848652104981119484492345517230363999636127851704931628819473560796936595358054538298098185543032313979332140487271804182409587119664530661054984841849094852278107318733145083717749288120611435541584738960671226633031382929289262538372469594200436415541110363228049703167881196259255962173281079473922551904918549874724349656372418821911215802915044280099917835782921441320680408405717229374243150130373528536533192817068708847012927508136390199173923469080839599529264205787296807390414929493984072088507056805478067574844873651242366938693285660420152376914345175396571789291400942547353482921444524831297165227705937767351350314788505447171179224825609793897501701576254333757876621428868911656891489083778891428323667778489355794955350140948550194719639276660137558730395049156632257587613204245620859289434600137297365275362538884642312238184963058617978462288974197711081170898963844646202766543735674385606319258516019884204847234781528011315187552748814743937363006677477183495221929849137045203957327719487210887512294720612802541288454834333412050253564467111194311890829658456734921286570473771232945703071605126213705901853519182011363497337053357616962261374523414427907306179558791874546751033153207558572471502743697626012247888858774172181322829440742746829134942055083680555730514621508022498954699479510429438749808695029116965717210252746068811548750050659239638351009951674321918669032776290853795466677945587137545191388434412142316910710210972488950330845730929238587599571206402802804598504962381712933939617718668744214194768960229989350328051898983895780583556398838270288810050971857891909859636184112022835131140442405357381486424045743851995496900686436997964216076521614339379926004161364898841006905178528512454263334201956340709335095245361245263948401291811073249975411625264403372150819840149739966085987204546003860264864723657642773000272184429382125035602897993003129946959031237323906127458573785541340871664461548266143162858857122514079091627357524538568119424690256749077726114820956808037355164002873311935529283319409538717427640469726444749389502233115494340578914371785902126559445188373336121266560964648099208322593510937179446667791818055433288957373005363128882802401132950369921080214262919235489268169733662351982457425562426863381631172532226580555318352555174851626662988699448463627454507435140017337542062670650453945827206936151902707907595918991348957582923034602001461052165570405579640919695354170444742893156668887905738855095220258087399637521275557356834941393468968893904958421750143325601385875865581110997214994339771779922608722249528960024225579201411245598358769614092877940164079349198464824295124445526495191755983155729395154622407675244417890539972291873290713099174032030513008899541602961652002950686937006437876095921446909754790979291041665221070082547021152715449747681434777884826067176961066516924447403218239696625633854423646995246848350544413643362151354931471206767932537365942146671404829205092187708549043175394526190563692095900719458191577583003813531100693846145088017605343582264024736347200115962193766680424513438651986440126246471839650643142279623178123424544710488706250883238973884024296821550171751630281083382642552825701430468819626617966180807077980153980796362728865501059429876790051427309141294280380899788947435283057710894172319131029264451016414871800086470600799045832085171488506472630839269016003880975080222853400192368545135639402907131980694663176413947045911082412813832570606206257173414073756768590611544260363534807004136976994521929015092224070097108599445244190887316131060620404500688452965922700644873151379802559279370510755206257759942862169077291795013833593783590201757303855435160383542100174580665660805042607955535780413077955140905083885539385034026714489138824664131763294540996297128565070796826159176232381384366492317744020315855429437225297707307097354961347283694903138541853524889892261981317085469610782328038191011099102624342993598911627458485306587425572837677969006857624766302373577727593506076426125300153427529056648521881231351574559345601136278643064728263900706108656963115635123024626022940537706852466795024585598621241398026712888143004257947329006769570658721885685081975906822850567851956393272995496286791144774306901741936133161668141199940157739645017374640599397596342532093175651317236930370221276192903476382134263782981823395685008403794052000302610443433455838871131682861673765278917851089433421332471271339933998328879993515091407504804503944388118261549386476944673685227213168977074394758566836224841384876396730267437790823148589861881123610212271760005774213666402281724919539192031952755456410888738170266369100261124127240676244730001357229615714459148143605505057669008088135332237801149133780130656018263097510178843535310532386456178753552841514665600479647539256363966981964490560996671286617334676426134978599480708602174730105787824018019028985991074078759566300649350060509588788448562769235741330966204455903875384845926467790870323544894895088320120958248720083757996685794904487826738112508967216379354591404677106718362045767093834985265411943707516719829883165829016372520663066516935308564317625243030954062093618249228912689248982443183839010806813128661795366517248438021021976322830615230477977677957097525982547846321540797188298747182711460036984361993150746418060485123744981517505537289086385019055107944096552846136637139524816188079136819869603974360173016552802193716926685228906778357337091744654996749716577230624591471416097443889467312225517935303274060979169329153153339050340775543105744278912465440816682933465579477733595756061360174081857308690725407701889998665454569886757183036786433225448358724675206395751300930980855375289836612769191636026402460031052730193238947507209406469956244986818960936777316703079083634895561876991806312841273325360054255846922351528967726896013426909252118085199787235945248186132316013104995619870653007049556503140659264786374237580640770658524245882331701891846661923423212345408435436809207271371653948593610080569436042872525105718685344115390459950684405000719863969504525468055572205189242367346272816632333513308308482107186318599602363782387744242803624626301455230331396990912106468095089824220449214164950134750376870622783975830632122793371419197507971452151140678706667118659907809643543027896339128442078003082935554405834603493206916421434708054944542581380232032329705406479193615500488272231677755030612756250401913670972427259581193298411509302039869940310133680057851990897687013648224811053067759725737984120104982737096152183555738159074458294392530303735772213048820852866329150490744433563798171222042214671395460744159954020962858694610052953885443118963529853179535407035194872458174457589131110134851250585111933118459838244390344890829715946536956288368828739480099008591813881240129758679797173151248608301102705734208870709639287054047676468055314018302864489682198746097768728875003352229907462767383019269001227595880468081266850807043786653359543509972004950678512339362233671048781596820688674663836289230648060961037200842382587542662268609435866691765738412854865974958340040660027948104733312526651079794130805961551956929545970926497077324575991978584098399425944440868045268927287777645525059237167358686297695495290348240006560964813855670395363039932905014029183904017926361832009307867711447113687172738322193664142333256476158964471069415438256386779568709225213374153633274852221448456168924233173637520194931270846515729143799273318629276855308005018848668690268149711998183470578110887666539768948718152482860295872463325981308241293826555227065334954705694097244296030160401353564445757039512634391497396366582731528611689172666226706741894460426744604532414420740021594248679234583401984962886491654645319938178846206499831092175321470117638059888321192396774715096247527149863387690425236977922871160967116508246803393216151339002546959328634946577769400746087015442372344573153364612045970592834259973929031053393797311436961159104277269508034782460046181291958490849201374120233566344331528948877383692712719548559801152856820197214000486208771292764548893797531311984254146120536579513345059114331694598758292082977894962033032482449382263808176338898771668502539804857890225764819955205577869686456519801960610378658408002015687539382395866907033677617661442214900071866180066560994589476269763480556148464352935046928723434790102391083833157751473859134761502120582874902900767273018964423127288942647406396939276179683253216576283836973633693783890346595294708529219907241221465954366378190008854783112880219387810239911148212602787698597290468780215109355072236449523002246400262284102870233651557228386545680132098551519236645195972436390653920698808846556077415151552516098527841970934841347084222133342233909186681236766523729393423070994950617214238238011948106750618051324332832891290785815169898577461531331088843346164418292899335220844840291262743868619895219807747442394317383774448866571951276624137316110746373828478901828129551248134639433221154716035996465586946677756446268095293748056731741437865816604533346895755549277612959509682413302096289111902139594813055853991961455750566849475969060076633161321085507292458983324487144635805378738392090700826062491239332370984472285747166131742370242713534667336412318504825288780199357976708876647578514615861558984547295373919256835554290839020827431532237139519581660741629268089849423259816106285064690423762098654461032671213246473349185922701740335395940919399477789488601550233565751855984917019117526801315526869951432855617903992423075204899030610429304190251907775830437404505578189839307265117133251458899013306646140226449091017459485803975387087956443731774937449165800533748188654785071487918900732340429681099430017004527017614777875715775535562911139626076665106326145274497665387453162284133175292737807869420547273928133032610569968440384610263065926520645559706500193752531814628576352758136178804431531334559216037660481648616134006435923107585692191721322146099962671228804146944334241109346498142471067763972885747297481048256854393084053382177968159349304677759944403274083665121552976523296916687555228189255367319518865110412395493349994898662549800552197404655157052937592219703129946015951708831093866428091634047609830552883653929637279115347162129015886681208586466106559804392537570088987000920531500684347000442000745909469022712577394303387045139453303222742332463998281798548555721155764523858934788267747856548705345126925558621091185762378656717408810034859391699149892000707148347440914924485753216000808992618779292831644345438839586255272002710628331135010257520735755015656682639202278390617466881672050055375707914182643227205439769199371570946917118857228478874015040032683103415400733506286583888770883654069391604750552548882494744900665787849750282094295443459393335891992601164676391986576490045823734994324343004659307702497416822566408397805210154295068500725034993525642137820154214821312642879546340855149716300400253821865448752807872968117841103712473502000522190500004757962153128658607329770092102740123618273642208891135368294036794592658049489573631265591124644715455028244549669251695245177868540030006840154742961935364224613736174621817750264648958306250671082646355518498662388329504279013519373153492127224370460947822097901810259966641457703699368078653577575103730439705220315687264379750542495488205218853465228333363716032999347767019364476253670742219694823106605077752343918009115498024348963807042113160976083322868183702115388807418694918799411756571470241391154495729247724806390669894932838357825363537737138020748761716873694806355431490242083410404705796855038100314711257118842171612039491791838058642476133869278309292269564964967884429150326856179740911813118948024929069057426405722598322165185258034937914890861490207101892249982244658434070530070033143178827455314743375460178148173682809862571666949441408155503755114876561434451594354858571769130689562363884502335071439261669854103787733226232426467618002667052437453822673236267724160535277926841826256905345855851743822251216654495865094817062265548523747308877417382430022303444811472882086126524050684728470987841542942357897760386779971551569478061659821056384998768512167303933069241008354351737991281358177564883458660213381013945382377648643102405110400443338403917496444352055190070862061724628237457276680661969246748290921261078371237750526584551079207964194396208666516568684229466399866924497901630308345324011321233250247001144214881330034405622306040605093178247488311353885210914948274115966439394428318912571255074542546342825675374287230736137922012408170806192824955632483050857774373864913931405062652209046869425861968571158853362557438911531163332010727915777909049638175248869675631498415842144835265794210552274991873314725840545109250095428112004583967211551082258314713519373170396388198645729529741615578388736059989585664705560615288087366907337520620533012717600936189548334961890754801874773795757363233227920386071925782849259102170051610499690701871854220739389499606286728783244357726309709651840374188662982513692307472708779707316791890803274459370419271047074821249824453256975208511674348068814781905024228040604336560498049842242827707494295874939519162791926458600956843221345070855868026840660433588849056689636382518428794303553924139247914770522717589197081428560212524335031490580127498841056353039783733255255578906569268824479485629087004807014783915062744884986440570000516483249406380933714092623345800435487747420217450594091457799009591164465434234837748083342745119342273981521952648548352058596762615132133630075566606715149029928566835188585133936759533874595910941972774951408418721828797805762454202059807105929915685919073714638692171618408945508825648037437279700372121512704781909164511537645068259147168069527232488522723633249516189498066661448815199421962843890108410441289620638822153421092260316996693887067029918380320966152750659593750421991438510947166958238388303217003819098720290558450980823948029685986985970477904512711195929421602039392680692593741756256941963109118143625806230334823162702618756890489041983361684101080392252943437652258088713082121002379193611235027770501969502822601382267681246193969660802514595101870881620909919007101966365280960424823800504958939027208067992337256927948299471362792448253226986529873216909566013130390695531928277817011795608291602695574891362780461090843396237748366943127068640219412268956092126699228283471098420943123415714257711190178645751392092544362526640422327485129408144905327773136546855290747383414708107850808294680255497534570722079263136221601572970346550381964591581901506329578361411167036209477809840982190573701663733880258830207077926806383701260562361485534729166675370086862656111158872863536298120908348361435604437528024772910027631437102515791720197613095618412686904183412667693309107398833078326235526626823521512175738431308375804157776129060811146645327756677414325628577056628322546123822323207987506819409595625743008132455205447072947335079393896779284431115347210682869268939905297116469809799896972070155610833905948952508507152512630077570830427254390873897936625246165227072704401584311662169851162562119554134463132443026343231736332786515596554120698153596785603076682183797175708001146198755637002359665143115319729213687374743780327318051047541857178134426758741906691240702674684261770857151834708841983565144517588663464998207209954961293407457941659249487967622550115004925578987328025005936815545087056638473765379556955686539702958258123335026381900060534020768695857808489717522490045281759325263396611720216556193408992679728449850968995222489133715378351643224639319778359639425506039090947005261750763826542302067584878456633633495269577851612746730745537743292927068712439025167382944879728877351422335864889375055452961160790191673258447239820212582424155461344881097461792390432843475621800932760406137448281504476560794823333053425677179307808648860094139471356967488372979000253654644913999120825338682906153413899005410192714858622953253830449808755861887666472121190366427205952010697051472658127153022899426622952974249620876743658113892328818892057506663873374942592360195562857440916072757431086929724710829748184881815341950695492813682414827233806264067475692326561560877999574026866240422066827486658211823111094733079466912039734761834394548559495930846551152341402128883951026638673032364142036969492305563377515156367317427925803855527445010505710702643429822680039119079253144124615466732665071185737015777890385528492593416177540881900244135013257115612388253806659048937955643098077816685957556332826325560455427989456847045452418094388398065820760522275166918215191556207400840745272258629650227072995413920410234258460925574992215760869993502627002791854692607848032009530935561448572455807675201755099801327176164362568057513604165386823109698002094093671517258336946924207575461392534967624796116241103742668687986763522508137631692638465950143412226282633315252739045492114461064520284959847552345720669995604541219331530417143642716445679526594070017415549511157209857936521074618951961292276228694276787266245383827894498164205739176732927229210209333816506070251329396021456393854675819432475566110542531030599966152898031424721738182250649705446700524363878580196172968857342546079953579735170505788938382689691769165273837466778741043506328785345042362825226234665830149783960947707650574457126194837694732530415813912748788803810747716190479087603477111719278727626977230075195645343653588693077510501623921375420637790436890113746186023110889731655788133958219915236978284555302239773714314850467030933917826250928946313915331001384741700135305649383998067460535622957058180520501908891620918081387163273601415585826808850940748216846440551792198598507655584688942882529450221375106562082854966690005796685365364569196074231928612561628282935185765725397435937752235369722167817884971513256572917022381361838836099403949093582820005095322281756307037771721656778957270293797136677946808094953867306729987607086165365082016846529098968425804709286596339460622518002581118109838382187492351469909284145642818026358982355441851296221506650660133716735568724839125663944819143675003931838539043290933267537060077277336483972594722292613106959685643978378072507859607953108999498904559704446030825559724350766137261065962166390312316283706221423591059943517658188564112697450595607337071628466949406810842162543899118767079437228842903956045214138747731757448214339993427649569352687885604573398260623149053419042638314005079057358957298773076956053543878758171913163877764733362994741062260767903800862976916626623759006869088960669316318135455481305163880442323487067308790263052435150241983750167062772469092082454707364590973634016973851539164866420213849407976546674974969564582070151746256220105429030897540115617161392358450951733295115980687187213552547809584994135189361439204779797678832645163287884044047395965520471165552344083186304442831845475048682771823015728384854764758888353284813386892902663971976306653397254731643246455449867121317024669161504991767393254351750223671847621285309771301488661219132383617336019002673314303661310214207415326265107431790527267598645523059472881572969170645892973940057459095802425445738748297591306152197275104862050278803560030063468354482036033103897508977189513954894516072803875513755826931234811011347105066999893942705760497416893538340248734544724462767348393427958894770225267067721473199408818200102360752817591525232410809928692108351740885863399806426694968037777747172652244820088718916866862151988741803995115738850758422652876458669632686946753550067757512320258829928463230291793952748199336571298520587194613884030907265518082411834719159496617945391654078943139831037152609048886412744511313346089327952153422024805468969733862662191352580417015512591536183772266563791441703662402191791304864120454354820043447605378564938152711536087224793558246585388893892644509217316106919297563188821126446516111552965753290808599578194332155143055659177770900700910352410510092585902888616154883860033021563723324216370074508336642052860119703884282550352870776409438604742078855223618985299827769202201564796274636890235576242463176180704970900996526365098258354666913819372130949255353875889536963066230377238598298934172871762082033482955381292241691557609207853327319433543481626640638633821732460161543287992937459580568778228393167985532994916133937481388795071167377197555250808681235681586126142445096990960292282736130635324212337436326847917591633416303192067682369442623223549829578705952224608987687375283831239815611896435253611368291927726984157851872559487436898296169713680596454947936172877303059375653676116857343518429414226978620789584027794817057639144129645348639815703878583209509230246994032908458542460340203634541620786090779989449158317418427480213394058652233995217539333687050581613607592927444650713623047716254232480374799320832035125337662554806589744089750576911922984666816314772263677795716876150620511451252316761721912867920991913776243682996790017287903076351339264635872790834365845519749501722001130878164014886869618421572596863716421262866379419151601844287013678168752782292480110104716845025120165628464078620630467169575504706359922307917435760711180404159187547566222063179042408386652492261058531948790677202718116175146653404094110480063041425592538683404705799446911890160072194790267012202989107412593235281311236457032528674511474216943982352489276307989773326980624956436276950104955769606547906301936837821098089139683361014598205891909356378544218511011307784415245824225344108145290978982118826730065257232158674758594320132226852671566060625988905210318988472969247420451206568120661660044514802931629053825447829283754074395041891498043398322628934588745991882634003527122723099708925784281846093111248655756606636245232441936464819516377170670320949705626075002698674459495453425306685216968941416428928008252498513366926711514786828044707026473081906089560323635475486037621153642167665971762006057899399768108685161098352816134850933613085836800746702360755708166539640481625272231609487501244625854355323016599795147784071058963349697026523701140814720652153736283592249240135120738935749747941492317286834318341253450071993645159629031022741923443575254768192988058080444952726006678325556532082249538504734634194083033382067306400106053291039748307766166092675951542982389251422473184237957781064576304011754490906034324106297454978858800178838115701681311323270342951738630594476237492197962851253666090472149834302760592248292156778163987205729209695200998065258071085013947274474471544734465975457323115416204651592059463145289833230798554457498359725704956255863139134923579228690258928768998190204353232583082929250713077644990090116221338805825411828190239589767320483414525309341812544683039691546674190263268434623358703598755744227558222165657110878429705495522914170399602989278018868980810339562047211795722277079848715466811782120320842061579547631278727810572478340310276879769829665977579664808415728500026903080815284182714952177716565758895250358759065678782036552077795541039117721502269244154852162059672752301541913214573861332253078853163313268664154591145182480088275926700126988605756131574344610266471806485996956163004028462145275414033731658862022541185169404136594349313087411293655628808891085671974520138644182368089576737983911604779904743844062928492536160849207583313479075009957004990601895343880567487050135098007945152865923887488160467868363591606253817274484286892018044944788583124789104268251540704802050973541756969936171047671178669241864121958572744308140498651409794728987587093468782853747055286422155135082345429361275547930861298526627887141864149499712873348083526229093458476188296281478063069372795327582060851801250150180029500299486503135888053783443819550124495786889564639868422744981468126524516747506165216501187730943354545169624176071988543812365989007486799407279765783438567518264715012437271830422821410324687929162604826394430201681207907492412784325508054674002159628020426722409349766738003469557076297928494674424724545969927499191973001832728654114530819294528226053676362840566590396912979161678918564776790758784841383353171206652184492252532384076234685370968748601714377381454156961834699549113034810827264259829734156857543786305027293998440494279589319827069706686972029302968509205289046409131021775845228167739334141211229827868960816922786532703265714478324209035675361285007201219729948109200317455138445377311884753960684227887554823801044927106116414247759096499544555187540634981091468096679825606127870830799510923730361901834913557317864965834238823436776486957033057181900577452553801167901316127037164759516182982219859459370805358000789467334400637529121197485582132076800517197350266349579442056680167048324719548343292177659323858308478497666768478069493739637580354771053981812533374283161368897967926918786004259664079384174277418733176961980587607306210105585652525596985123538161859900005121896938262184339100981788653563543180518078881778920563887089572798577140210148221998195977156296944046596637469510451559490441447341369385815354033289435854558494537657608711370791699884158347331250404775600417698421496971902535507934560520899203747798541966073930338547526657889531501790498477048431780165607153606700777367155522679552761047078797040989969798133370308336923226878950609206910059281594043486925979662668421636788516867509587116349794330855084424778454083623596085669138752667585911255918213182983523935624771744399968475118131568747780537721734487397329120476258078526214257425305385279754674672725933853521191209392416576617213570644316189032897439984881046737997996619214840589427246137569252343333677835985796485450867466835895672185482129753795359614913865984680065273305694998162642320543300216071441923722511465018212382097447545860597456115969222216158320326006295414193608989990608565834769160415166097179199895507161954777166014073810546612866891849022195365915326060753150963797004486951698840916897532361597088894732476315854453496097771531803558158809304587532753165278402752835907640769422311242605376145282286680845636722979596479840055296602744509642969541734941915493676866944615151837008382794392267179245084604159682281964756341223206148876545026040243283909490909520073196353901878980805588689572699711550120956629277930344448777912826989662245788100193050042974898076560442449660184587598962017679463464621970376503447470262732703145303430324172928129116473410273751811840480732686652440560049086560716508121168449519999363167854688107052478459496737485468386588344409809409176096186067702133745956785893663147172437005008561751750190423828527682575482550060430789518048966299561663314933343255429810708117310171995005437254019565475335110515935071652057091456947305656316458368478992727995062013062733749978311053264420337467379795212506725478834606901740469066679451396227550444076037014649178409537161364566310859363875634124461438491970913274185172391534469660570302370317501879631435079309152309264581418931535376297194256120008495836765449376178817699300070981839137525085618156133615924408501146481954384176735762165530250846831121167309655200053926019572905964788573315406774694288374002479587813993792843538165824504542235112886536233502903269462883849942409830805041501577682289538834915843240520880071981177155484618474147456282107294574056101756676931985545607858670430454040775341896210545311199034193151128070422853716470895245461616592605771823866549885602367044448614673156619779864207641856068276182586446120885228833755844585215036779710717702688243991707537599948774995819469834811598297670600758793254847749307389548106530031553254056616452958443849128548852141433352629589129294559599686165535360420907151113430140296461239541128853109740420701505792730503094741585052631873896378113427544249417307916438680943439237647024692819102926029184793306295180081644550263729882282435758685321428412071937407022110239611541511060853302795550917677882403569482176071162020998248871153573351893716960258733522942112512940094348679677456337844064386549668078108858931305863663393884133566905028651160200069626896337878988453362697763356205550289996298886920594049508374814587671828491048044968600310143877407681832612648528569517354104832489035305133921113153921824308166493265634627335940962629006379140527586834409510845945283155322087850098156649980667178537441997829259654421015065902654716956594168671469711281051629531231889340127341436458400467033782844193061136500770725654437439988811068068838858484967091206667849952379750581710952841547704165577986015256204094322247945586761141406001935874620113361025230511595220812346532940199553434027487891585641471990797237336596636439043905778096954368863692224969300236416880836267055139972698525385781022662636282715221020546608685933067489008904199594301946919764889727796871471206437233348379239970924992461109945434490487269407202119816677022405184436902495698080293539199553834099242721333829119771845707871537327352398326902120888428037325758798568898141730668376404989647662047192265019725019273669548923034913290664475900831850007989927671786175908269214084565599626590732019325253056528384503939709028551678265417065291035539211592634973015606730217364477207471967295763660625956913278287727407896696597815788195557969267013090812842608998813161668356951089485367117345347868407817539612778320227030699058180507370574878130264726450050837635580852163217246092327130326873989497662821146162571025092736063701568648739318297629848462685172781340019175274125070584115521075195627222524947791432842182853429457535795741850504878967811788277925550515695055201214135327558638461385719062625740619300702336790280410793211577964467056539142477667248819600472870500594629876058858692715944830174117134001679997097198633071654800985728878717709922644127273592073639732797366702679174002448642147126206971053985830869316086121730104981088351698030935715881433445137121794789374603889892789370936530831219371157759188017126285093959830291086197737032752043980161135332748063417082046947487217355359481009944365829678588482516658503506186350140716815798323006586032447379558053302518939754358378628053178851324284901922530134565757540188819532410047025606469690093767274557058644971797830481101024394141360192371727796681067094229726220495278428790750495733798705154761292530867404969290952293705659398966571341424938577678864424339362143137441548896463778052070270294381935363821627724502901616849428953671115091874586252486484194997552096840571736006102168925988302927498601987397054766652889213898797933802174384644415017661311396871814989943897288714128287038074818908794227977607295545191937634894009245159234513935658136314013847534240801322574375343655225685551096069002451239892867653670284388648357450121959760548714101151565240834220788317582942664776009301435691388701404862782534418521625576982948296992950123502553069896514099081161804812311494317751696155604850725316862749638963761668104488585375097397134254355325494071256508375387175924014536651537023813135095261818721330331867193296855606326305919706827687271654287301773631132019687771314167707971005661979609378549262320995774911288434227912266975333322119385376556143639516180259506559961469646409756003342584748994104422434142545113630795017852671922848058579703430263097635848211611316853507304945654774811574205272512479341374425699430816641930408720249725864146594488985741434290703792833854234174383857715005531525063632207064887241034452326301931146743422483079944824838443174828489559102982963236859046484969156557901456976330503301754492598830240838208397115568461779690951799934816019715736400142521339326024055933061396992454609521095910454804129014062309425998759380093816607219146057891581562857503174943106630816810657806728161113060159877989405533285210235464813216551165967665166221311016358910919133791579596033596428039585640573457978305133877631240931992339307045083620179535719211555726337280644331953123932409715545295421142664025359815422659775913189414953004528399446783486793543097936056988624211145622440299416150540586997449578967739736282893773124017571929919038779627629679433880236210279610244235739522439181677136215863666665463069905599733014067194706572259475305567458235736459040110873983953433725801682208957726554370462258675538766890458745524087971085302988284972904490910426521826239148640023788763631959830104362983820928531565363682903947597279631039518096543204205072050502752141525358292699917268630473475116022840435982379126276972604988597987311654292808160941221720250890612558842391003677845078223217209507844735333310284541355515419369178549877323231250681167383746086381783932527456684130753807548797397668025557679345344521047130026438093586856987635113270764535375586344029100362800707944384696978325029286330620887556233887690157974209274125261398913990560524448843563006833817616628714617662959288284616303050222996989631832774438501899281236981095961489274990519569013062017259716501002227818148556269422720279092041497948414607194918763516895542364790197523017397085912761436430984370310080105227094370647784355855047210782182523047697034803841049276176479229850905633280097031040939511770360413512563407414336093470583074470112241452879152274045795184056758931520188577487617610299404515407889814927001946231097352946055590120441714905295064277950802574004431110146456642510690415739095286734169529717332656404545777266745663722454809973790931101748118337807105105297955262458681931851142714391814264905009609275384042503309868670056332525772756627733359118951196483569627585409846519728325497866130833170246391752199444897136051954746590329018412145908655732337771966652376470857510436699057661759745464070367731075902198342719952413868674407797917782421550723719112578445332386427221237814481961969484041165149842816703998587244504188175484783275591172399583106928666807395026689843844111472810207383154708133375534678989192957635441621072576222846927619460306337419766114960952943719837416986104241218262104707682837174413604166353582579766745991510130123121139220802283356407034061672031173725901652089760252837077066908194289900064416712309479989389452704957098689018352589909154632080574629975660523727147700843846693517772862506596852197450390949332849776497558047057754213053331992587887216998420852931197692626435535319390823859831056192092626923441290741313117246712433285105570053946898447364349002830307521978541351278178059691895687590201438705585063816967949753820584129514042141554426110999895399148827402137552912191965339060070469555033952279135822259850716722535093775357971351653893078488296282228213718150444301391196212976620766096117216664945977238693712957939394955842741513743238343930790564583090683921671402205037200786723522049861528830791257989233209643307796193127462909191602820176744711417900268859671431434410677003574941127162304668320600241185864773154006029088073739611687346394076862032220364953938000554857173734562806222696364315280718657767357897338141931410529892457637751028159699819651800609202753949079772845880263512850121742423133692915115786851162669319095199083962095089943412568229323781708524249413697686531519226812422769568703006216378733143388374957074844580483656942763581044901748748888063833912619212928285867433565771485251283394408309628014520623417138896366137420566668286552160029068661101273181079603952301137507990986858800086259253008742047675123405432335238651833589288005685220896083240668978143639590109545712316550249737859082827616676857154254521733210802152826625423770972404013910462056021907924448228864389541130416138283817876109805296668716641056977487564881985931381601393931330899569247416187330867006204694534833685916882741383715292679222090456104317270051757851308260875299200011611519103367639443211905471717601989540553383600491214450179403483783618125639070194597623209825557874330529712715322371170997467333504243204588346490466628025843749671819006619635481590539602416378057392721125084918171250796999527057467779767001189686029764031229842466032543928740190054315196187867044843047519789104242813094702456999550760377472104136144916525715920643078798947072145388235213159713692471482186402157072651765971269013090020678290830947553747947008622476491899113709930239788602504140248786216272328136655047493861225273508504322005894590114266431205464259535311170477437043993556081534674084364794466083951107158146499928826966251968062922364937797944286748107556855222369525836516723418436695748727808356863105023823636954354260660604436643865480517741276659770811893162084962602909732296842570728181903376410714091483638221830194835299999150231326851645879723213424616942011013539829898934871759204460217788450766821759046100433651013862494711129484756246401208301583711542550784381010510352799321051504844821207820579125253984856951542840449653728762562969717857577113678477884238142410796254334181596591787689677354432458079784422127243379122847260678802195185637766576188629101429956366624934529120253153163298816556581614227246050492605967199490695429463380805607910129317542437040077662218398066915162297790917429714624965421002235703979973674681555044426183355757230391898082982635269502462079058614142271225072922518963777351918354836023042990335867406542170013853988804421534836843544211675611143101321008532082054666924509890659446323173832502218686589501830727216963069630743780151621674525066394998489259476387775202516411619691930028513046847365418966025438155085170894421000195242825708731482507404890924803329153730767500165189840460734692902926041352150310867325448603058775045294668070389536328679595281289312112256662413301612335481318440764716502541521580122693196472477404719461074408799129775164240934858575583601660668072538202826063240538730298696003020776361287763270710222209757474056078063537667140655024361588213871526158478349536938287728332542481003787515749286922108243269811038456530568854683428550224479588845554860026925995704820561222416107125175205473610726460482365634804759037242991250935837365671274999528401273653627102039561900043256567553349507513923380805695181537700693399315252928361943244408386264923065755730945466834475725028794516193217774322395362873795383504438610792924419209864443369990213820282535112007359035757595682259906778563962039277302370181228648756478891423246017160024608514736899592119123311629114473884388862334691592704187104919913844709960559407383289181361223221767699982488357769587303136819530546847498515918401993315660251137758367939423747664508383782716975998879573773410206542794844834490482027850712953076276413893021332145800033260039153435930744713187967261908900874088061518379023202724470537912037550465196476072706363539901494375031963112534889845655937507442744624130302230443015794911196318078316193523392523595779223953322668290559292932137801638196322290645462680026516698755148805243964930618688623368154618546324139739214805751219062357770505552074457865613717711264036026319529842729626569727009912038172092236007919269510590343169075051505168266759259089369203274325708338355893818502212271200181781864412826537618808094997432510998018819481560907737755028695351124976634053996741360742038333610383410073684323982577261352158225398315225573111752015700434987813102973201698014095729804136864271804221479877405299130341785866179020770787697533091309506875305731327415181182830832286389440476008399045373698608854596678771654377932529654469792457307471159880811059410639131037064024646669213932416513092007794704402339453041015110643487593450133007922052644280500523461543078708893185391757299372476937315177345883517444728841303778557485512747731665005606324207328354639245863813787120362812494348505973830586540809886935841670825216118814253100166533850418901600078323271283774353052027500900541017972422766885033178072744728880340298398215704215670176594927733709579472947911790255181393099429079002398758150953599803596143417199383674104458043120891062478246714483118552298112024009215391732441715506875357950341627404855231152925811691130435150947045976152987860279830570691807269040387705679987579577000852830076076331861579858178916597754853907000072563512647088625866250347125838859351088215534674187863604083572240880168969341593664974803218589466089167110098041723152522143737206523682465728385162673241702648343941796810992214297167261348385445898696953972924450596382604778047258013464485942270415703666783682951630185194822375780398072141425363744863513414893786516716999947222695793133933896774841993714292819473069820747426673696338458751622943110311666579101128722412537684015436687901329394079104621850151481781700560292660159085941055343519460635987134715704413586783213789516458630060437385342214087214272313847106642421295465342221341542328951159456088778905540454938414367206696807584457516436357014042271883329497421894069309990940256015249628669402472695308140021752948989301390538909551300152719400967005697651647421355047605705314093989239414591809302822397665955827317281702208614112945190437255153657704277266204418450816106056895324933097605873189934234962442679596228269172797135372134170017035870538239187288007086629778968300474045575755403381251992844241790431925454337197858442235345233476577941613026975739458981991565444568861727225832341473146033637401074768177545371929859525438847564834968810851100275470669649565434541365621386230857043941228057998864122018390524428217057266988069390180500296087604144006788962150799259615589395823377303705152942488751535217238804857317764880242834155186525570935194146284403614294203692570715912328777231867473798239727064165091055035878285150468552319945732621172626482754485732985562368692800178518114664996512241252819933011987236652348294483296892099065755970977307326244178496649566309034528900148954366005630138636751368230695630641873268696554633202461950075943344546981003303679889039422884694361882918294755938615495104784849564564258640465472096466727357351994141172893527811337586742652854474456954549469760405087015728915733987412600599227219071571509718958375656495895978942217493672912790778070976369779387033868385798159451183957425880218128241451578802898932193750271625625012997709774359454250161353701230368963650734775578872026132850828844759624470404651329030533128183770843947067722832669229325796122131697094613912822922817452705111306806306334621254494313362782789401898456273076138758144612452851058974277969823336930924150205688768320526858874284639821745360949634071176536284191092600808668697727258255542000475564970808867292883233262175229417908701118115134080321020272097929387251879655873608927589148997381028647214641238535238404089351514404295635161873313937830489037376014779310306543257609800106876059349984055009820047708092950538288467918536667004788299901360523123810751642504705683687380313735055166287039428480344008031903955023005135281710755618387507129816049542869137513493537088097266450742235152843292144932070483471938349728899308727057129292765928763761089750470332242628694512625874244465077442237592133168322982185513628290064357522102128702213093843302901354969096869463780440380441768196769986167009498900398900920540774029693996267912510481379242505553784039774505568065313764915130983525864507598201524527100630107276113528017958321068211353242497559475534600075870905997085336653330347678406639558824912460064379920601617173707213967053866864229381383550701540968765664196840542704581864551154439990659128057676874285785058972670688353750348454667655627316769595576761748065963039904593085364087010764134744096747626812476350008276403046329084418347749106128251739493215512843749905066681712458755329467473103800754218986181611038001650839397512445739829738783534126566353003369396395238292201081965309173584054010821595659154686959925181960020203043428489215204290947931568818114473912872427897523655838172957696078625563600291791652319429130852634903423368392262380517539959301196430543110964266288893952533241067939494636346155102737946477873589169533140830752098071787545617566034362463103390176636150197132057674013266846240943084513127241999914636085780787743187834370854414835670176014053279405300736756983742320336162387350018767872689591295399723075374102854809468523532748694307311246490249216080197452981156349569946064682343261097012591499934487762842952365039714531867835124259996189825483094050420150785048977691144429929446625220834572046461758492057433055242606082590954476785725047884870783825117710822077254052295779945308393321609386392383669519142291909018648834454315396755348309124865512498419935242959404929191662780964353234760154894059027716836602830189933918584869543218230702583616042808475525548091122126452381719373200436926499228353145442866674120849164156141842618283714327745596042244897674219108110987815646860258180963582236293097264493409683301872328266261208039730876217726845792619054843178019622180666489490172382167187207842331601596082974550171043316835580529739093765253247366052391261431961910488368979121854770937691920142720844967707412997727394208471547501638931051249774871510552232636018303288313848276952557526323671114907211063565084097968707180158442118537612891373319894437259382355148725153022225951741825488449237620647823403130995368303346192703215942751508828915422931952131006109832553955352894490561718700838404641874187320407445941222654319033735715955656572524926799039344743127679979378248349706440025644829797767983007018422422866708668061097691877994320747369341317289614991486923599010627416895913653522177123910304213088008516204306975518655064719617923693126230542821963508749921065633445441861567020518794245544361486644678826300866876761773228466431993523366882901471844212806858709125358546289863028881821347957760884052082862783224080173913476953251883153990723205905093080085491209749542988588754574305794702611017104035639817606096264571075414344493503312351780011895466770150656099577751384574746863130908421892718654921679276490261508480899063144258881680178224051364677506144785959817682687729195342444926578256172059598199989153249372588678929082790623192603324553589111901772797957339442351904412242263186924193297466846854672452591292934431570810204820883342311138123220533623575067904085561596688977304856528133458597968048091091934142623959480829733573007635827333355589655113679428410133368829101828091888387373878101182251254854094180111093891483988617429905397827561095921833186674314858171781011701324122813842886209810750407807963246395235596773949269957762306067621983009305844115596852263291367429590827775999110685863149336581976337949880675943613923322427535870478625581577175114435776042788595655788000449824062436592156975168799964910053824437421198292549028118470490975214595140145437876909856527528472299042664794138639749707593489882653612085525048496061153072259485250859330322112736679436089291099217830413084546113768285483574742269410465655234455464737287255352539596667635880792419273505829841147229712090092706709977410325349645879793719066852211409119673639149034486394013758473867933158924631867023851758498321706770169301584456136952829860551334356116554962798463348367654282429076647388328453722602652382723808990394620642239425246114659964922037305549320611726270529162624205889653848469752220608692498183527304344753369219154234894383791734268314619081415777150603275881689824684041762183349934394922384522021148088551355783005536096548598762333044411011732941547106401909352467476936551869061489835830210036745765857023983000075924228089407476237487255472223074518694151033140357179531541656642480329123882716629268144258676849089371535778857072114615779603140258940538149205831904915322936504369499638926071114579393733546191130304678985227250473854936206000748177848897547652901748816264146259520900777354882730175835969053235792983011357017125579009306448856781282257087867406619398149048655611192143994610483015632755238496707010036548019833191556645358961386112551160271457519162739826976951411139142736146363370106200342858229015516025396383249100775275100002092372113450949726025100799736808088041820149822997135580666865584687247702385580337833891033996014404145707890104255768950263551721339187819676356868031606776846469302009366125072825369058753955856636945196462838936209188470538226255955652148656791109657492404950870640639608030496335812588822934259820834856998068771809523144974478050011180865211799059251162026293450389218601341040937457158454541051882864642684594440583820063018302229850734704236671388384396816014523279394398903642722092667279396276730063865836330160598748807752970964610919946488675469685569907075842195452015764394249932664645188430712447296898508576668928521637337619965418419215057537809626466596704053234948150427550618748361646842952132207361489605560445993370521418654692815918694749353711177859551881795546665788403542055890495518180380627860022436465549773731288019208955667000877663971876906540735209972653049645596067033807843708360645770072910209899334664228753042212114763355831806837329563925652553620441499367638670807965409300942051022166792214568163339628668621069984254711573544677680497305925704174124572077962636812838982371787655129581708883223007573947211634039118090073702705896143973210187051097985238323808658997056684645194412371306423211958342227851155048640186608511856064868591808249970633534960197381138535193247008944671164904858508950956624755081106584362001643068819841734635035950398828696726516488587878740100890071019265573779297642818631513095420004642324017848834441780074326616324281666746148903100571890058668864118740273369929378308882396440186091597022638671306314118624678885210216540838048550161559663256001259540957895257243507935774463023333095320486123076135560217482450306095089551631312585565383618107166289109511773312005302266316643250470177468386615954863127017446865908781513709845218326920535169461244068370531195715035959340192984198776771526819494883336921775184265176034557149834177663922853695000503540715721244845802132466272476995847333829793825735419350818525745402121867015287482994490115302742310747776769403731235195873127010287940456576369007349638812413842075280223498964572056531029924397404870468770515230516876714334716445464855305369786631340380269871605555583180839161687755849794680618053164098194294275895733682918360995258292897682292115718887760329073958730144805173864423416198775596140748181301807499985992000796597280610830934616399877293871907246266723992206743981832775108140234226339643320109774519353451732890908896153162534904779829563120842384017172227443601406764251920160481911168358524915086830462090945469536094187683446744246066850718741303904212363613649763131895852648203046557759781995451335068923837183554138154273564457875020433397677182179069178730686971950497486009216994026872497857045686202431533215227205525030122435869638497351815309559634597557517795221505102913241812465041986372543352461163459247387789061633004845146391197290946759127686942185578632696750118157636502091882470027621717235833944074581720599426651950787656323989729243558266506682019092372845335508803309870460256814551123153258395173445678391742304924862420104635220645044374525976814173966520764732242720954225849384331702099349776249910978414438758314142777801333385529939862542567261433275823789521598409280334690445987456471430291939714530976333794758818298472560012978519740603209432939442909866010368702475319310238423393048458777606225638574676682886927601143699261673958464121215088911936194307936539486567026164720030297285508483397480593298778511986907547195037085123229173958527310732201580866626553573555661695974840245436341041759369503217923622942538346607919813035687675530937127458705128066121987777215235589663529922008247755406587646755735254159550212608053907042127431872185007500552978771669381106216955858892019623683019800331768640448454903444469028343781572555828464037556965267899729396496312469064649703603278712310465897334524586591892911970729578622736683403169459058496499115234546144764846229069790251783720219201143933780494104296979196109719099332338853069876094341335431859463563163159493753349873953058133256309375224201633334667661751497959999843790172343765156833488031118251165703595811315314767464141098120696941021206485421909801121304721469930368779302119425019600913055297848982003198141951304458907631531380535858482771767667040575639875258836769589858804584142633860605680253210932294940373227164200320320319358981235580896650837623032287573737185001550933788073891184192085330206322320491031842977706382970820895615844342471239753274013592270293853917923114379125263632805750305697882122045784259644554170189281428598588028405839808287942545698115277996932982946136045656163218733058549340993257199519557088744095501087378428137891461752359142366891823185835761704446254732019155280668120173312479989112147432507122633845834422786172109584037031842088657487387471852054875170080227447753425833379156373015936059150307271269590838894673188173522715591853540818755132423248102995954816025490681138289933453083817536502261112308136400008620796138244624434240435673393667602297062545548493413106693444112220815303787164819285787991466115044986089541854511002492313642151204084307145169544632896840147497478098241551708657708672898277819776345580878371318196418704236564327410903644176261044352014230712850169033887887832753952234931397163169736815496575308665826633734250359884395900621524444919424311885770105746225821479702754114198028553620742717953298683623154418338765474765767164269936783464046637871751744455522486368072874979384428783659864009357575979576545138480436126710138515379985124398586089219332941376142387615434412818294278455375062921764210208156371755515861970651790487786571487683204630932636842406508657089627755734626742798935727341475566209825121036217831632103727388832830029275805928012888260212116889947830866348388849777406188997855303372644192306011181358645546480838355935409442438505099133923838740218121409366745133422788684139349259660162911951254652263250630828835314815061410260165991349419280489971700709656309043067922787578649871515458326654548619516779926880303257175834897695143482403712592295584318448065467080231365079140206164544114361633887755844773542530699952552799560920287374302999080662862793417583058331860936182199360725101524753633182706227325079348701778811267612592128156683251789834066329642628167452971616282409785384836872562132283215541173911496091375463414179273275266096535703733514695674783418023933545886431445763375001385526844696114824161164796345339188908299677028298777722162127163675137707754901179134196398979908265423366053222626220721390885698865942353069951615429128249869207217786410488344950833569730794729112059277637301787704323633504401665299074832227367070790494289875612191102280246852463589774844454011386945010519467936129418473713959133632035182962920711488132487667209906440480523052780499368614277705538777882183852347184463716297255908290709156289681796096850905553743231719618015335631295347922034905747899638300506821037769169230039374502093079404968077767146433122554255516935410261255131882190420298021322913163959818011650589509031034909254081163808161695551078245000190338837114751326528699703391308496693575146290353483840934896797565193880163070738057811273755873443274949121506863257918528944934522957305636012542249052021527022594884519427012219256622085354189382027853174436414922605136485786465152016025526090970558050171931392059744777849924674768909132407396339221200430316156096809045272333048352201635215683871282644051105963213863374353868917457745675760536629948713138293786422658189095753848752784401835462018176855546977535112413468938638207525655829826220794547335144651872792416907579354514506857321672859053902778660972433164772400002491855312875158455366948864272495570501745150558687688023312407093933093810130085597124587795633125954930784183273104748369064356697273423151396232668019285118483020905644461579667372752424514183266747450029046906494767154599547472326541702636465105788279056154485298142425437322864692204711522904074553675810877489821270632631729110322922401779592712476747811952785933476301485202996899841665177304548773967565513168816055815907958008345176482062427824991036281572071210221097761414703878493421829995153877112584815660218292965575787870440949593382868946636136874286575017543533124827658279735479338388158742415943793548802643230841077994527483758195656537719164643558408813185319993663736703499691970502292617246491567944346175790238342128450631672966998338972028574524902787955371610955190957350758275394969602393289731653000152699451432956075296993938779232189974582162239546698669701687690879275642282795807119586057473683066142880500718265359395245290082759613293665800076382669825582967149037682674646650972424866965170221973600610298511868484595164803263105964345554983461900687464384999790894003024240389705733923420772446141803913235319735839198201654206915976084407394105747818517095079531310576638404456059196642668216706096199686789500784583121583406004998665599927929192791945657063086230613011496079356358784134440817231783823664318532633014565822945217445562201439364706436148609004233716743968647749958541146979061016653480135328379028669868257868632616339683411305563119757615401265732746592543004115660644350211411510183499177702268051667071381536531818430633279865073069087495801492080693167331120886668708698740709625905013122106023296430822228154537599109096480933028991305513217920516448626293691669362706618302489497343009067312359721689391916477758824134768107724986305560181044713797152490769818385234319777182270764197265859010494540187594066931777437755045438475073982555056969758421520055468080429930470433301155469154985934254321653173063128807980419014236096541765213120097060798253988070160350571460088073618168710031298909050091661676627945442817911960018859778172065214553424885531369538287394611858262358236542839059038714314791598363392068110863282353686706300399784688557709844324768427824449203675025794363643698911277869680532988483133601200121085241484405652856550597478263046611332804424380592890307038528774472646768982663835338413884538851061951035302524929512229881318985590455054175023792319752515703747464939347067611929777493277680695230516158956765495974262437466174331380780453614847584438078993675809654905081489496371069994838847083503076815990739971815506248295983422964274606600651643153244786569968956359472925298080509389657731235753852390894629374390979578514857626938830512368785214712794825164772443864401926164686240197936701961705989032444826448843357056225982842924277190396686526864427861808036139889461035707918200670923925174762245647829255206690120393722200082679542514648200792301745346088036631454286974489854247163053620010780768675993455343614907934691678260013772636343335897277380771473476459984994463114825921702637023385518068252004276038293415297423664117315019950949297885323403951396322568031596385192281015874295867022466804514427286308566201843368851048760499228209829980451454316319514133357124883377662077880370839441772383725263961980612806348649187760311109996568929647487750915089357549483313676574107857459830626053183066308138076759974684889749560139790937095571728400991247970622662481341511957290155899534153434337237946750031426942183466779679030401538412521954940026100281461756034105847175117507367822882830157660747015883830729350072275593120190712058045605076597271629591672328278962380313779860795216459125032130790233873726498441266816554419015016475956803492356493398786103914728525949200363434868727722796258926699311825074322330593085516199940253293187107795510453853905571539928965895959416523421495049460128822225233751590534481672973045483238574729016893462636944468121398644456724631175455602632536100555025150034842349209732791240063765872173368739192962388476444418803897071410517658563232304182216947333136502624858413661455356084084029720305287991031258901278821519230507017054354611518428525468296778213071695233929998368419487041567197751538371493255392368973631209792215468454137763806344043348419331621800043421493571214815696267789557485920469324150145675815530030422322904515467739672022793166413976882455689496233592997798024733311399622961887041306532900299830586278245703975853760431699621647702949719735680127339096714274312452140191033750730093117821987024332970066223661657402665484466624440087289344102836355710057615854035214793983499743575319331352695378485577887868059698190063098991619280685446591254910851135765199424939957908359776715166756927561585846527705607886248201209265423631525480888954005298859700842228379517049966664450449743814695297494234375883583828808124203721688583613936572555620491830537896418795334887238487624681236180207582195675616561961862319410708698554188314328930995525019139101618906411530741497248392434569485863104691979446179022980101816594868856067410676835153170563660261734963487128116810158281470575115585316206417248768886286543896207487952728344207905804480524776739990445368686622728551765314762327929460261741332769336527894115266528571813517100855988999672398215473753292837714301701250046618251710288914393671074057991476636630507385321553894996083706979391270460828061191058857210697575351355144991670970447220993738959093377130725346382767501017812503527034185086869353496732406116770701055065913123962771694198101304684467084875371906244481408155023806109057590117293109615721461210214637080687705958173114797670459810886720876110003169395962360139037090918650355193393073238535816865870123754970092363045154639754447702488792165218550329033316474847469015897962030279725244405574332361060594437271234374090587075988177439111438585955233515476576844854466332841421855863450225589504074448168221079435701244356530716612493975266249150102033170641847269804772793886536188553811495054697704440245092435870028572269206779749216924593298635731955240390348977471236087269712776418319700168722490981323928108230679400981004239681104671611430448773053163155116899339930225988125286808923294182020066032074752717636400740788360294366990929646200692242277391145233244642574205799148053757279806785417001699966502609118406489999786716390168352305547938322379667908193023434872168570517775347457311738542210289328315884011377981194511617886701807767995710253421042321578469048000741652591091950531357199962673865698904658646282265164509701413673961514307894567955381920342808192738638132531048579534551259046016801199097906561571441625382951458188742258882984487330959621343847548020634975682343796970736133802072075021262920103478796128565812338220283009654651393679227337206520682481285483833226464685609852271928023863163247672549685917341204938713004185437256982420200536291878168054395089547343399528873875348618054892659474334459229982023064857821462731578228997473864988484051062805959636542145082999515300476424586932949964469075701065551891054772578032939087300697218352055692201547976160838160041986627060249875313656387187228830093539148352726982291866852826177642994844899266527737388310838362551382409900921560039687235948458321615429036238955149163175312282406918548158673041004601445570162522094287652610510004768960011751210276676520777454643486889686837700712291334252475613927884767820586458422228669878692004363799849966253178306637662998245665575973353272541206542374373543666383176710138567924338786389546273244456451128266764213764308139632663059978882333458215706687321002830317578259502022189233418823900966088720747107945452886238375546866549227381523651273985016860999818450478749686530116057613860221031423885907680695905450331687062623611650950601895457591753611897297511851401849570101183621753440991280782223990893931955540342725020148008386980329369479837211789841745126410124411054547382287786826171143595930592532921175578402143014577044087467086683991180311058213848435310383129782023074985326842423051572837172644170167140923284494270309819814659625903405687457174912192673484985616299111226184352239604847063555401719032750559824470007136360044887268853716732358494148348541435183731981255474529553500920759949047978979375351688948233098976321190542452819723838998291520546032933977142171550312976332117082993831522241864565249233506332269718802230489137148686871297874774035430371386825110069556868097235603615594848657205639151169982223582879354281335720775193096216289831397028601410971291853432239795366165401886907270028240862140414795605899595824150928383202357363603110424156037630256400644150791305140577959399894169765677653210993337507755082515036821340976179587839352461901688303092906121871317624374505899341936031053829973274031868136006414750853846989586573905864924175820785447575786661610297130394656800847472340907139613502474711625317232379071864344646774539615306886091498849300425061625187337026591508551604051448861684744799780952161820317946450280419848089945634429753723347257157739699893755954123339107435949560473537936109464373050525750142581873534350080134380910577798309538992851833584619989297876907417548845182110685637154275632304877411692809504192307538276815565264962748618333785746148987283275813905475257020179213761083995955425364456534052300940568743506730207158387317717341453930124742936474872085008963999101749862279474264413177149608587744107290330472072431701805348307310054489505388434098437103041777584026894449593224121740445436663073966545704332681211641285591570087020583709771852397782626246963187083423125681026731988426784098571106546674906759953938225986818698900940156773164173859277038259623309902354046458010143584769218669745343222148116533090259457152317774745600662915426691856761042426927256326791003591170650762070090171331524504317434979179347846227336629192991679642453546486262876928537268051801200607317985984520831676783926487996329486022146345561667934725092166898132774704951912277666608764463809857105305978899232599623419053442483173874480880298642769505274306894899131618109628974933465935844681307333276035771378135250260968510576766151028763186401822949401850592923728717995825318174937669892912654341575769703141947004483927494949147015130260819960807396531238602231795694738241801826071612691248328756170235334761062961917731457310240366199574109899343512607073787640607282306651316901799958842503794635185719481685327431057816441013546332643348396939021398158193839635199961175108492783260847858370535633927391224894669024536962829990212896137109217963467220563216884572945176479364333810800730553129976594824793586776391802065876864500802125343281782875856656559626813288314423579841474934075193673738996934652278208091896496934477227451989645296127343114273450697498866401167431221435466236355691679055469701746266670312861997312047442125628125860151408275342250245143834829328232494443120286898166604355313207817511917884086200836065459356138076720966421578688662201559259754628932739844903604396853350471557765502770573735958513737348836472921573485728602711826031694217824292401559429613722686785363405979442194852038941109190600661470926482624212674001506177402485929147166511971492700277780532035242943294891819944853305442248642601602744439304795497268762428988247967545854868262621436148707075432659601469493811035284359840466078738380371346746827041260807173161914627654690608092494486027430960186817957164890885747416517771430500265705931244668290117244613603964547921341895168863722821386211564188151702878767814287186845622762158356179533785168199456105537697013162882110151280078094001551444505952132308326184541601536721182648009459106086133391242271707942898499014268530268644161636070060831975318738500688679457026556049664946363465229130229542960486224010704156891213164978960795389951619478610305741941018070829263029500365588642401598767465374737421411028458845829273628396843029680438850960699345259784098659908814796132289519385703709123020651549843109138390627145351982613453241483089705578726368039247627625965384960854327111581524978528273954436389233081154813460009704862054054981910399691818670621421952562158184080181130105324445774164726105268154515904743996797698103262600059386464992139059929874128398384138847273494764393993498306275413779322130147190721763817812915060050065805638294763820189159837431450309482986020791325639993871174322932525449637169496997582763822141770473119592008537291847656479786162285583521829672290996809231956319259439767581565699242858353818480518496755684616706082962618682761882961230285275736201547850716747366936179084479176528141666270029677227984245236620336409533581930308693523789998124332919679765317045648762949115995975735695878902987183395772301680201145346393970122239280266015309057451572517512393281886174431337304911700639358926046846722954571007727939329564645294154093755268104775499822986081580087455680982179120705862700706874651258401561654393469846288680225537447934528902158900090902781625792063753739905490084773373216623377891484328226646793551917705825314987545345462823650445763848132298914316464446857633996269481814344536467735435750716553290533311865460408062620115972734604787659484204032842854607151271945319117022939877812617797903115505515700589982359929271723190456307784098832422082453174146187663612944219749887481956788613372177518105434441540660306122762971509593698021500380346285776879414456845733299546515805713636377187285861427868752951837467870691846954788397849973765126898732264670742269324233696333300121436965987614412070491076920024032886942606620810676837090332012444545380498413423076487743317416226395072791641116336731396669117889737729037240200945517174362312992406638719013884002349671528697810634465587259783053680514360176794276391726807961344856093862668386086116905416997380105766014110150998073211648118820087852619419794958928122836865954759835694581152736299999666607234178419330526450628896678099448964529744684455474366615981589995476676215874898948967037149827218740275027847482490768281856314908266669646816087673801291344916307832775572444116925308269108769955147381859806643023215541344300305910048303606376215454044570108766870963184178522410998721190548689283026871779951680391284253021532272089197831184526105479497913579502122646618631419040750767943357769532576542668143264432089817758518613953062110406794553306669129955501738984668232406067343026460724379368700267456982485763519613429838019624214101077143770834574116970745934864382729572390958971720164237875459164294863000475085048498502275094534358914285913533835867123817301022486406491251242552233415850195728905862583695031052058875598987750204524357214469426129697823331988360211118018223120014299904820132962619854291188345812898202302537119916176959321268442258771380138883499515209705614957932966175005299644174532133562977425068539260208251136045546335269154448983146931128428224077608861075346185577562352568348085184475603328608572271504055896233929579011641959946274171225094781597966130573262581061918669167863656760595536422815848174738134259977851291945631337695571623427469618110096260449671407790480506589036971660864427343550694373798732829401334836901986694362162769015021506982173864572201815229930622126986003009596415843375565033604895290631389448585602383103763915250535727124828534801617484467630444788980489452007058685779092762829834482753376246058224668552989642026376182007020477992047947197382420414971914458343100545116503021485155692025597673830672098836786172196681011716642196251935942497407171465706144519622430893789686342195092017879022520892067464665204873820690473125348218361169281344460453507749028022152216155837717587018633909897587670205431122743064229813652474386554491577618778945709128457379964919789566471402732657383792113130517735157577238923820388882473982867416585206129389522703777668226887488434174707673507376955511507453835428943365447411203834457694153391626221386196078478030569628369885955240331806723281146307917085698416377805275597826000233166132675135245714724649752945963495309691682292408980655782899862882934123911985589469420601266128540573704552301365250522587734729336467626456861792960740087434088745842063169107409010930977465132902279123380588327251145406113176791476354378491694982609036184492734122516700464565223058554342245248240676783276946049288349258148050831334571637803877911017586578329323888458559452464560011138458727405378151073260213791114532918774716239603912191391387906499284465978947646560944185809728901530093640330254366300306096071058105560119844117552351465211800966169669530000263395662715416804679290860147634425689054507710847410515503754675257367421746711147116132596406953860363170804910621371573049546686878113008629516329165869926574349828956883071310961623421035135926907706953452286855449511025443572494587694081304523962466803703793808633977303143555460805348244347637620077595049944389414825588508726108848586927573146668006895366328287934064222460183828327536511577808415994243019180520320402850796736884840873345331278539055065606532653995731084949997258755978631039792296280599417959297933164750272236247949662939364142000683978678916991005262604319016276550620212963864731813860291095818222847386209919347068234329489486323328873476603045967280560794514946852390103250496274542667452457217194878281432508985923373664714776532032168905660841465628439902522352401839302403101548644334646514514116452881971750156797384168597463580088751782927675345051973000915926796782610023061498240555177461291744851767015486137252268966215670500968744280488631933506606743093570062324189352604626634107235267943377342626625584703414929064345374567079646737410972231880174731995451601541223350627007639286070440967963649377660691863592171145929912492879457158395152923103937292645961490574013970312437879266723892617007669851760967424100013584990564246437231160912006318556432240915983829977311761528588138315043267478718130641854999424506865983869196084479281314170773326958825955924936170338733896687940426798362658970636661862713473673393629581837545648762329177158319740002587747376238065509756982948177651256003584600178191081855635616559603299781715450828431525822900250443415085820961216529361603240273001309958070817552326916505675776969917911270522639890070190100157083087118204590877036575591043103075697983562418148442018839041210758044671242342922387274568423480094697692814184318309836903272241115836730633216712263742812154137922330553927577409256212987428157824467772396360244596269612320699390456088298193363949047964525890337964528510979159597268043448904377835149143778050919086131068132350923390609583191771957377721645893159217660688433001641946345961901712677003658272073050952420804971461643818679529674516418656767235663214940087838093663513261473202336991199232832844649523663729969288995952316619843288748714252494987477691333296175842459625459935455895092772236363978001671006493908456671784614760450305980272244179477871640997213094867708258041634061277264294563414098902716012928599664747733780720249399349781157503364691185773502522159293413078703245476557106231022745782272492626848131777611158654469533049119260923109984762447315656446179954557267134749081411392000025401865383725278379199677980809966098664340087436929401549735371444783709787995683506143198903198736889484293053875763002326665722303229413000104698102179351782693983868161081870715932692592899080442661617307296041103055573318392186210019208861659588276949082964932780930468092274502310650932851704419229769799912008379066928577598796292278221801326364200273390160880000293422219207479782469178511795466058534524949878949754897045413716619294037248981076368126424507023394628057343128730356882900294687071705634207766428926666017309299946987114073728973303533103549463252460709294281994307335575617788662597311008034479696706601716806968353254826438614880027277849449536169924220385070936330778053375474988985229807367190286111800128705435222402690556933340117702650376431811028898005686151241554149465157289590605014595636539716565923635055418985507895174912787085628288246109448856243951161095608106268082153898316373791157472006376692484236479423371420540846054734447399561577250272913625575154772228885370803928419881081864725125842580259426874848039967652288896726908452689057459437317536849610885375832262691651943044929493951358058977739281104521581641618907626064185145866748007574237117035947971008717441863749600614558154755348072555434670341036488480172017568848649899461012382153304849769195738212754072710892889883927242558080982848684069660510883958153301329432437448279969788670899169661313656606730742553723993780212815137229093283603312537494301720498737723081104745332672834081128229406978254905106565702449660371140142461255362939281362053857330769604757194995051287995128620568919052583742407164631296372259816224930994528577223803272626901200257061477099508581993602932820965081574269201987205788656628563033013876944096001193418804777119612049352469932420139276336943977636317395482532287408690855116690281416827886160676824349715788292314810100934563002317571491599757224595451808463154102454560038154130007556480471295159207220663800319161240500495051906342433925823845507965614410056804582034948447243994598838362927343368005931161944198794628175959981189489271916113809448206735495107519800814581833667673567971000137325060099641192559703418306263857037877653689073944723137705936186851997268908364130317881444615558355021104693329874286755886469665613266906011542596703562498441644017949541191292867166816738833622208955287892089451092199667323387142788494085842311670752255701574831144258685157556735318183436909751696250851569911237238132985996783457271765235877545181454585930877964470818282051198452535352164270943305176626646559266734097921206598166945421617402298109361671609179866692325388903585386332267173281203423008095117677009685637268301521644939628521420561917899967300767975797566965669403626446885326769513309419785540783089844977958944494245935689403951717898763562787389805130496671029174148881415986113115114723611888758501682854653388262338254503519992050732304558783109959103051101504543817504917275361731196525858251730444566538666593674098305580425287876113497246531626268612049665761685083089092428119737745551672591625697067338627024300815929813774015060830000024842823800195693386860172711549002709240538073150536047036524269867543053265062942813391076114592577030339518646633020733995251759365054930256972840049135498300416277614503516134346300556493264105610777357938605203975697538104311469508004553455044915206117273013890392028743160994379965569544269124821879958632944873818874405159527347566981362629505068919780466145653112708372897685071861447926725950281498625775702162389558644013386828377855491601693971243620605339131535997744908690038768653888012807710467750895309406542661374871769046166608383821177606430579469063860704779558161739241557023443039616571137884877952073499722210338085887989861084155974266390263278341729105227448456396830449438055243203904000867650892434903346700979022196216611822517946110706985685855747965546392909213430854494788293707083669893386394143368025257241485810739941857208230141502194345316255216810483504288042707655391166482170263265322133854083336469819952058759805835951490622019755902215211305185167230350881207219168690610649055027323662033006722327085736876142890027329990346011753209989250132521029339292362093399417936500998548788926682360071019270902891716264316595008839642749188969151968863312990948536408077823886448552346189469123917883765431949825914361776764606252576381257302133117508799624737696884327779901997043690619048181571965652950543583081451951331545845620011524606650588097220843789437588495372770056432946943976956428235594773013907449653763313949093035125325269453941410515671826560593599158312840199763567792926664327228675899326360602672725250220485887817360373616166734300217693408713573093399802432068833599549316776564870018705291717734481796789426084713230461485084354178109535377468710210307420732749834620900128916559887232007958719415529846541496912381700603606128782864651179274540216142288169908635839582900947425884426511837395922852992764561309870071495793288956640954602556366863538399410228437384512667930290168265613552591699042272598838972103100259790457385000630976306977152536832878459287012895853776987159579593880613469583769602735192592393552548105554482157756608896078022406724822036887901827068726138916122605614966077428623241390075099348691827600384390522246043461768053969931654171538509766505573711332393192411572862619359671114496926394446137086072820770901135395670853635301247844882925083614839679456910311366469808752925122937302164033030465896770789691892175497800025015309992227972901969235004590135630488851871552345306609639842779277914690343821092416562602522920735990220582338766397648458484801893866409986658927836560262352312625223698015411059411681108957314859035123762223207088996555776822733250659094407776509760507643926734942878912669435345219004193968713634432091447766406694914930251305416832355224826508687456764687265413224848407700608404834541489763211708163882293896129336123470097162473007254714841084326733022454233065726153419970378625660044222625593668270129706554794306032390180871255565272720351009417830645695415714207164769953196551201702983605623296765034563970603985923876100446723307733087424401880329683709940237974991064949364586273220408107869825340700469427854294938055143137782741149749157740498556382633890935938225421061894540423944695077140372354500018876559670475262052172862601162873908101298199381231559393142187806206162607860134176287513492637088867535968490195473295314715952439572763908574529630500645559284414812053955064483306684593686761005634005609771308580824994467447882839368225915819906548152377756907380029875120130035655698028405476085515439028910393008557290899678833355295531554032881905440919374393499267068666899717448411524836450022983524211253624967067131022453458045017003471820991965700024390799809664664174000574198135134007750470127450912338420899154587626910307030500956716219551387067321415352794981483798952972498159559546696849164928057695058041049061083924475350374652323443341986792130379427147344306716677152958608600541771666082729023333192057663338910217648972683016064346302349122256613698482452202130794139466985730223822858553776978013294013496001816748099629034507669740915309623119654426315139343729734022782130111195510587932220748175524179785748229321094565808927356586641014411431400429323670302185577421194739830504766445152522303296377225619086804600218732552552200448023522317211230846333010333247085924744087342057733801231829870813167229979729611612303991285986209118781092687232145032712999531159224759597545483233383050519513358669555814020532134987076215764515454553845365537496136615738988257295185572611051141296185788592419688671192384936774573255145516893295689529714040779947213280507923143649429685833872041939541778635427220796723078245369524838098677909763851555028636998121562580881079581202063157642290748889854492569264132422664428018490049046110066727783474527633216023364201991327995771169091829519351666061906433612560396800440032519532975051446374851097407144767215250624074157845325632006439886198743213840467486971660818133168840618081218718336245790815298837246765020927316272635080648483879831412821637054578104470826631713932021074023731025255365935075170953700342233053239438293151029657110854701089227079173429433913711770535668811879567121697599845212917234713837194562261316851740021829125489260610303906537410251337186604568676864703846124167648506269729440788231491142068421439306690098212790883494237583700186150080051647814399724652726808103143941455899964725074134620258613343334248677843970222587664146357768425495595294053983241393721765797311673448724147036164604776517599186335142659470907916392966073204800455470029803190165789347016501761317367553152583016285507577434729615080985856784972974957108760056613290424495416172725618007227548411604556711242893224960335952724663558512840017634835109515485830848485970594602898063613961099202277413062662461981067890196743418317305223747914074495345151663555437867219454280151586507234667125497839134651449011642137925908985364089011715831215685833878691374087619273243323656805058267895317712624502456044956954547822494618674025998187289765737910011333846545249859240840203840841117875085556986277160295388378326311046895385426249031091162429376173229440764757284871682191149852982425518545621229122176722773538928041238826472773938525234059554704777336389227650063404039921922094575631026127831116043725191553531628808458315978940911144393922193949954029151647420368836662817255459230027074821932626346849755327732816219538835775787920014068875540730597379235982356077729735503224256191351797609204453092533377861714724656103308669284955880467250786729832510652918299344578782271065518143812091903914993001160521959571722794654643948509891717423528654174524631967833018572311421775832036682950212839910345359840333145460851727462852030141784277565064125444877945540136868235989801604672129309209088781696641576712833282244349996306791595931571137696260462573706806271984700385785947311392316118933728652374871275765961239812349618087221289345903104761127964382540777868177900404466390715267254770051466197218072943443974992513862765890099786638398991322363521951314855234873308658995707876246815327517437281401838141393305128490453354074431444865573792258928875738736921257374402483654335673928370768864808125381696491916568340081623339349951742903032281114231533543757145999886223109467346600654730887210073156384542904596608848288930406948951355221253968129873798613339425307644239734120057739052959154084677229643739905900417912496836752654233956262287973234527014277303891533183197729024617255672803608572119978734643894733634534009717779726802625301125022999848848007888905423492011242442133280634615626133917693303134406415308979687400723741319463910697252312492551573226172730635911052181664431512603355048569410982664977548416123416181014119859316555721797372523200035290897990605880573821916311549403678922643653299990972357158449138247449332843191728856872703466136007275385942708892592174134141997591339145465073951032269146922833056737384360316353782529381251658045737484838804375525167748575400637646246933171041326505103321065636416697630289600888827025952014030153829837952174579422662300275543684248814886597198572976886361686466552676622156513082549510114381298807949355968522797967911744784088135218742611341275170970275277936543531596523892493851696383058713062963449290030584078007304026114741540048013158219957036322440260246263728488498972207347564439931560918713026299588109162285813328203989133811229139619976839623285002818951020657424218545685281465136089610790935752685110856480696585035802095755926709646418685190945052777391132520028743998787048952377326869919711552994764071840661789550674871604130149792113552534957546374100836749299383846042869007770080326085587798594494605873698117608473030223221314133948117038841146590387247397924493461033617492320026553349567753025248541035045909100999247034293178224119187333123616463825078263126720895084565195745308096725771472969202247126645678515170682623645557479874576385864865576334076458726674056707721482351136819317812607361842869522047988886555705872492759715600074540741376846998290923367183902155138426887516878405774276389428778704106008423913556745023391168579379190714598103782979649153055908333940288803764978148478154952215506572053486578160643342842707071073268989556989934541897801518172633055615851884920317052011997146524166664278302730695065587188935156926449475601479544448396532236896971187048200404864609266041158514091212261136318796511364517345079502536204001874312658471909282663562116439496178936169852420999060507927490825043763078472409352272236444246872131057458154756239926888490301073278835477370393282886987375815918238102488398457013736990397093159312610473396788876521357525547675128578745464835534919541546955071179859185145074317757410734410640067516300692295479443353785397271286813759341287216688209762818125095890756954196185214776889602204388693348088607670275515878432320121447398025907196564948011415221883578308190003536368917522463781170522883494622328311361951031096578001000088968084919828851641445253234947916066800275207192435500864799733676471311109263644481041557027982582843155236807136749868635733808489509836337425480787715192802032715895451668336190162157612182160060764681358546260198818608828333598290534520794499093663672277705261460963868740962043233391819475059329580143610718260267189446300069239410601054109263633556497822839733048825274087318750858421981627500361610320754102132970407917311553046073319917673551592961497196263534105909225147440534100727648517189431342492673361941750422055964239114058825812214783156689004773852752992502709319200026628360228078422415263548225247037866519217211355992855454078848152174743969301208383817498858614979939093646844053493324835781852513012500759311105568268523470765486312152473035617547131382061092383598478780429914950385202358490655174421903826503433557822409798894710072991166214762713478517108447675472256084024542756592519241037973325319830230623910476707096815692317877906531048732738339721086135346739196319727919994227923841233755785651811024558603171344565099122662904457635714438424510068018279818818493815116268789384524432849870671114270891360754208013578558516962916449231922252460008501834835157973506297477078803888413489605127811212315442425406961024131442218237525141811476065050560939878469397274351677593463596732871001357156508132521456920659011100061879637168257403445308020324776313877052923795273283060086399561149603493021217630268543459746044531820198259963694892481612967503369075970973472934095345123172323337225684398951839647248258813201313744980728209606565760084050108946047128655745899471960912111036280469473414240775532597610087394200938031096823908747230936819103164896502586655219024139831711254348695904553822710293071793985152885316629276947419078727559871364998492842972112243627230595021471520066965492128486337365056564987481346630274756777422714869598509304906535383290411513327137854754078270101604698088882169586551295046893788286755986017435722774722049783835239559632848010257995204021847958122249426292872168875692170799710810557958790355115854894198487985166331555368523762720404466127665354257414572161932778243315862294499489117958488678072118214441389753072390762657448198700027784049842272232249396530864153648477258970688655961218677700300357383840819355260726897671600422394873476641810089337991001771839848199286774786003195822105720051161951263590216984640543123014697214743082618428697592344886988125999453714115325386397001260751764086533838836083146482593183473608562786456927050320133315401019359563252154120573504266779498434619648226671051212283411594817265768148578759961248895391486890382231487838614655337303553738969960873813413241050510581902306124499440869275428831018234066201942310608624412848722050890483516616190285891557933247788594876107505043998173160968948759551941447766277351753843352022215429676071184010179541014287738075706578790582114915540435535751248468654953550494501682924370018358526643235240766405215771480092968098816562721791296219391377908789682817040421351602499447386243323186133019953803611698769832633883772086363199757507865696259917873797111364991319288107978433940084498858751855266916528850790621642905319248396600766711035064630606560722927310174521453412874531123105270390017996074741158479277338739106144400336893454674268179556566285653791740856148070920598447692615348712687905136566379818907874675967983589374010910425916214980087262334492671751649223145160206697073554957892128635944368520906538315831215079800539563694805250381658061390245087244244953327844220386943920031426058979705630298886174323144440390200876037400838514527416014740666861926376805864118732273981914902799517099537318757160889218325932879968930124401284144466676102239726348139866633708687853251640313818578469753567057379976980587530005641149809787814250339528426472437863082891269099019281024516123258453791840432834120872082606185987977785024098365184082080549503724438104966778753573884738379913153683387923484975462028583672686094324139910123770570017526129577972296809404782992240575436060356196460461075975255088333279181705664254007035325072833032037517494854325212014058423422264388686997854616305276349678276369620875867052368503223119334036866846172088558681748422117008573508429264374077494200749343373357353223791837437055200278360822951957768379726477757556321882432142610399997317711292569920274375592299587000479933630491095702676260308064476875798096645889534457605148166653139593207972020936808372530372003598038588541629481998745656243759852512647628606082408642690766423080564099680481875188154330715694638135652611015639134903912623040666738466712824320161360204560495597477058244290541499283435716941482374790976807553246036431484689781231957582825388188585130217777135138243985713884904009041967856629986241810468918701542244570168387945854305902261593624579998791016889482768287396167437696803545241804022975472029400402576783088938493531606035051203805766422607602172510159844780929705645131750439347471383674367961650796534848689687718882448387883829548830474964294992796578889960640125488023116914457274549215870735684219953554672035371075251909966552493036957345741018939246058640615742398067702955000987907013723866765085929172217344930357367906474621367836739132912717688894727224447704999877491013365197197628720517417684127615515465121552333629584968673415695783388008279656332332339869429525781270501927716561763187013829699164474542446881348764718180996119803476500070809371993152910314047708500001772050217940236020163261366288134085560792245042789651624695096479674016181801921077525811531810929866052811644254583351040252256227366751891255201351754623215836172002951731634950043058214842845289484347542593975699162231751675066657411288084105073612602778026765386036005729512827376980684839556728565810216629178717942548422481081086327727860955968613919004266571772737416322010877254527822478675139948439385357002009512093282511679552211890528932416340243783112207035714427413591250544953286059536138064023222416951020283833242534349174397589435556604434853047278455412750678846628068401190505600393509835137063395669099139145876167329753977333185243413663197956427094076909476073448346670357312328558295502158508661715364279199675409938257976354450793126678214832054841221771408189916505140190917890951878182517008350834346409914343998401036185631656306986993085245571186904058053660720305685134793810511960854382223047673138986583270835708278483704546609002016810209538322838394568795106154742140232106620471792515829606982034493089289840678156771254487281543713370274847130954111130509476583202661763196939918393545221699083629301993676490922899675687858450546663339698113149013537383015860685692654632932150419689882992403124151337054208964339121563463690552031904030456752704722624228212234119777729046612059982275358884067167662633575494036624614712666141927091400015138211029964631070535962413529772092530475066763695504063558178416933480663519971786919117867203759862838622463670068379366794511556016821409948241875380274782686221409527919867000060478762665320965889095246284811711032890562522352344058018427145660273759412266948701408923075320065534703696843715024463605704946058236535773931160321655183721458380969881965264359393690022893269115590287527515433641386670685404160319965392262082837179407975188082658430929884978838261685453851431575211271606872087882689559683937000165402330659765669324726865906125602790816510602890889902234586584836279254898338816471358559005851689216086939504964587089388379433903183478157404691543120293144127614554254601516175991512631980107101889387055834557226922403966398026776170358375838499328517947341304089557819666013701491164583364219910011305313354737921056450102214074193451794587611553517037678535437492324379876860929899451026249686325436080876220022020979168095096543329647850166311234590260799149951449603494894486735860105816777634732589842710026157785598274204129883565674875100987412736053422154070787136491217280706998100694204373015465050136504519071905699473410442715784165384132326322701977831195262806053187839159622299450555959742796563472691810760484389116850213467587754487550576268835111047339473564442741109848896057738757873826565707073147631184702935496256047943920623316286306777232316482873606378612248360430044511177659653124527972460871090201799918590621959213742497460211073719299785848540352319003238412958582183366919133563593260796720108964903701424143048901378739680588123578996935029984674233639233175859121717620679476844514905028398336022870525809906491548210905263977464156148547639665436715483751416464469790073163319809738792130329742973015795585987523931595052304138699475399224320585994441573574708249906496417592228052216715609446620136705672481305468081691236875785721637898571674732881652437857460496941640284264130503704278555829821517564149284444622239740877970375464257453666881692471114397293875378913067996066709376718932073717407874555773668307207812680394128546654379658031992166671934486266047837858968415216813807404968455222947999535170931128986012467313208103894101504363677967640819718549055608797491111605855068112074788983896575041035950832452958082426510322413638806962524314525561966911526988375231730856491322827457267460483324062051954610293723707749089183569986824771629686705328102671980961086132198323518135865832265741245110604773578035786646184829569843453318343542359337556148508151587953410109681290254060925705971629671514215484658297465834423887626219492219180165423025594088130244768893461790677263392345710404837640016683721385972371127518588809785340438689208906224697728927931651675337433698602933967027150319121970212839555930956796895797372935554017101505288159981196830475652150359938003989265201781538667987452218990347016429145338674300516167174827157052121566894243725004578118085289894908321556267034914232821082706023410237979002323029209671117500630134650580149067340728430260960783131909755535895843888129322537982498553501241208775573075552890365147458578377288656277512549338569594421136811535178161282545918047566956250758844903616576170400599844641856546421714009415356694422092891139889124540797619511105106508341168464059506376578653110819443767732717563275996163771793812244856007770326230451653366028513228076487250448977864695072436585965372962515577113078052706627165858796332737027907864404832858815455308540840320707895378736503292075043581452373158502012675919929713960580826287675463347266571915844345388672021425588125952977013087109165522051984151234407716718852154730964328042827757433975386484825723096004736831695302649244253182894485595409811519668910377473244401109444382295322070168719244993345731791875498985519210280970138164078426821211865532661312446837307034347365806787377600219194143012115072668500725638342496529987079748496093947120265667489361769968044367906094195468989041511272674273659228298302676648307383040390674089534943454006247022379620392175625633134712213340314608841011820279937817194537497281515532532856029787853508805769514664873910420884296037986502067596682442422412085860946743492621608260737887817145085006236982555573401567534799031541436459557129139187882978459764970128980078477173942164037283972487584751605087831955811752218880099520612513146979112557701826509113410487789030346428245797118935343634379617913325738208584192847227508141355249664507041700199083922850590744911308039313362364033688155269548167672413029149032747989403776346834894739664247468100970896020892654461781277921941777940841204216291691242292761778668337670685556371804675620777010779646233969586400855806701784346459271477226899089087479579237783789500485147965311077505605121227244735113763315107194352691005517529040190540706552080594114585102104820377170053517411598895531376649747518451970271967934882786823029988446299732286681039789123955902822623687919724762026158781133620282068839554534754260645123010182691995040986091755127924628510577371336320789766695371122268072851040183812131798879257534534410898156138918797505735830458879103730888932255953926611646293716215591850154437420751908554277593785835834991725809075812764796427100976895724698820472575601365839917503717515462093789532846355891642894888224777850304106723124798719092999667891191719476712564078454687809447088613647891648676557770065464301987120926701586676481143103033556791825334051510372960905154269340969021261408167637340041382795473867235287319078149495583059457908256978896096145169955115293536640126497544871820527889644952880539092195070674893454551152036446058955581003848297452545068644399605109653619600929633697477919419419742113992094978362239553255485094225973571826961537762506402408488608132068361167108613293221948757648454738575681629787408485020351792468056744452528287745508563759155177530246607766781372222863309644755823960934163460101921386922957075346855734188931067148444813122146369698733281131766508854086840817620266557284259019984419700230265954746616909615548093795636495576138054617558457201920694634338493126723624667785008691795252282033807554003107815589665147805427005105186974961283941729179045552736313211373779238383288528697569276468801919015472739220870502103377909662054512676266021852438062322527423920680495093188730300637522880097888280945004470267603137675094057312574343372095445884006770430219228963275049305939021751340753279451247637241323297768394490532418982696561049891509678266422940603905962306776634745485411239650617935694209695809120944074327962264890714937917946508672297404300524381551304931448455015471442313329950143571153654160335735933525624062121103369404107387955906840280782738140720219414833663335193629344551568902797281387570089309673981561183424067202265728844674653156707167574405253341985027456090897428657925465874535744640788815691375340012373628977956870708876478835538073264078761518539834095743837482628319367794881269406902416859306033008315220100455553246228465881644326230304393514622810684694233573341890461978417735045671289074391962512993772696076431181315190925721550255875280454401321214442830404285412675649181013706162814699818158262435156089413962624379413776122950992974634847444910188848359786518780342402794534601638566254413025522797754804428880416126758338959368919310241649617341974439810408486771635401463289139956945906550491418299957228979521859873864316504647367349286351266945977752989225630638501564607597733346982291136443188146795441079177543042338852421160740746008099378673874713984089439208322980776127122431599003700409424738583463173806666031587624501592689980357532826508128675425634209690104854775605009111411131814721132453724377109198588927971127169327832367587997396945423149182650237881902415601146576864541631118457391355591870511216622839994005765190364343107793622522877579910398113990676214527493475238956875408578211532612460482899065387298970429530866518815436190682190688041728605821950634961814291625622355176115618170234102431836275670287391600524996737131535663670329151094987601127932884369493440666723238589005283681603364773148917326073353454573837734088117539990777929170138700865427973751952392815604743866232984478233764765433709126939931114731096111841579861695226203412571129323908575827237232873909158568884841167896813898769592210025608818564900123921643585484782411369909197254940653204442958182483301045103638984761905368439153860613013452709191323733524868015183930057444956789008774777755721929399657095519900710673495112724684287391962995224532726852440874504567519840488077488848198938087901702993541671813654003181579411535156456447534706220440630856104905389431099993153798329471905253462391624836258502202278706007491707295683680401650651975567647689004013629273890039134774234853719260111574333401420314352030704135814729582780626109637686229265271439595712006337120384132622707650466445915221625362296104727771014315843889146528940832449821090394924332088689511173970449443251572807354159334625702974697801786709288575372690162958299085835514839765700309392806967463274687120150021866980686917748268090196583089335537070583485961815252822327089472189470302362996337331528559413422144055549034153806624766962977693859235123808657304896496778624927877905825259452125996718415158102625773210494969356225597521497245073649914591611104562018047516083161024903229907205265708047095785583010307858027019987119543490859639218629218545423422704044984755741597404339530150267347058834167854836849765283300191218458132438375885520230522420809101424117143472111070847658642472377541555276557329403173198018690161514920721141306789071785436770168472292022051425806244116745642454176608480311822885785480694596868572455179895646715611816661610785463596327576295757555821031501369895851848561447994368611089266898445748591903862040107142715890403704070509948477035428348377094896722939336570568108274028956511165788389458749563957259413366486606606904556106879613799705346511641107357248338544676458421314082221861251962748126514120767376139510631533178781318872537004997499008547563801664275720644886153643295895369008910367603010902162138974791584553199829795203106813679908342164730366848845032976251861774001243195975930788703762633280084838730571467320291807141617556648469101773429515466660767444038327862963896228821827818910291525343763598645711605151744812840215649240464833599529471499395181745015650969255860139529065403408347376398279457890255493886264027587480925838101138885943851800819014933334281900129928855024048338870681854359527536468470250241111202834459552304062042209860372261706236492008112926687448986086703145155129256361677688707924455373998197527133255084283598070007752052836106729457383028827458500025033836787084656945920851593372177252181771283218074679767661178671847483437192156069917802204278496445695843779667566588498251514914647429479230537718315781180647817303282850474459327186702387271876858109959154585322972070636159887070275355460000603528232332190261805820435969844815088973298098213212504250369654393144555609253134489620027439748547575342196608136869253909106114057383331104521978010404042812623999023896023646655281281037735838623664351129611182545655094657793071942354237537981311276800864105480521583020687446379174472229597778640289778236187316869089613774131656786591694177167826794114212593267745928109556732684745798109450779027363331399056610950668976744821521455646088475139625014126644854439073424829749224673309896969224108637013064982380374721116400224225454806886195493401491512700111185727898731674694516463356131195874024252889472265882887085265507885536222539537986821628781563537610421721982071437471007513125894344897500689450594659159295645036971763908896209090949952020445807516658187550005987318847179137641276106197865082286820415921730648552220744462886850699951169969394105332468497428377688146674555268648403132376903124883269228407942101135120062294538299283284596274113513827244713210310400571611962106859113619603047676889117900409054993139747951020718827841968065743441715586515714956555355407280303326411918656656905104250081596842988241167364845727474579137312207555240406330829382962453353490787746009237803569403141143478300278840056904798574883682944819564696766407887550390460374698991981414666690614826704374008664234945384715027987904802078499191727445964965522493101060964603190933898057051015767443191269446234801105748844117411862874957764166733278983287640800866684640124439479557944336851783745720223740687688871358802991286126549429107177755809550591623119529101089263232689132384987933718048388981333591337056543961351411657025931235939404008426371713359356216526243960449586651846159244369354963028130373938248554647723085344706121128649214565620565158912604882049044808254256517727078151254830628838796732916871446504135235834608529434691911420661388158253899166898073451890689415163735801313603461853897730019770978595407243688850917753971714915367632091984944764594409484895161308858212608557602221472454880834228491742067422922826995071356903942934791160396165407775997076972542143219837763054938962858913715701179950556977256624662925203867695847933235094314211981830596856140098105324404407899483069463575315644856438473465480500668576652058060658562009052120902634719582614516965775031203352626375020410557113602868737977479426951782819199302367432819317694643326321404498524123857872254749380335322505798172179433554043379314550305337130812359755694435560682292664503146707764369103956449224280962727045292803754423591574247991850292593676777299438696181160489357213162832082714789849226231328483038654054557333249416759751430891935467566050481011142928883700409897449151414650671278496376769292106438287500809170929428955152186622114018893399212466158745622218487107250258991923766030870631048103150802632172786574222564717407559667195515722751434356805624336591096164426857561748382477255237499445575248932282119625199048623294033754665394484847577884131175803402382278772296866298615201461858737959054862721574784227399944450178104052840692954297116615649767064543359633893975241211154913913321145747001070284619942151245415016326691652691965679258158792914029014206651690001013707621759747098961080999009851177946118255214100722233917884762785215519895534080302406723453627273363978601579092862967135060116732382365436598315347046674411624467423926793543512818194457686142677903389870019544689500868064799762150940768272785198632246918778976123116469340548264473209473316633914777962752697393795243685225862068379946088279659776390794998603306909209535046858165153787995584713126530647227831592793095626083985099758547231856350266866502506103394829652309274200735285045711753709683479859178671243827628770093377394144673641916342457953413712133593673357315145900602268783724060498951159826028133793694352958727856549229813959925675464024887085083114670565862887096656700753908197829871395705523864041299452735827828007003882544871584717179448944080537759418359617738216535784206437663300155394542747325334201851713005065412726673884119886812199064081722792306712405631479912115684573854398827557599392741403372448420308929194084408146300744411924710601959193220849909865590584404234177267277764662705630946981058329955596119972460198253271457732009145509515744889403496487723665141544409995788310177194727942918500519764091210496335169694266769774820958048787869302593700413124469853519781049011519963573752689700851055250923247436188520800043635457042143867429796273480917756993130289394745649318897135144866659871636670896862500657155073760954210891029632531803098087949551614511363791378657470822470507984253609608875649474488133352360303476991904264102495935889956626388519068531790630616304496674399296999574753308430258169357032724117665966619518922769686178220071107330794806220574803204248290378548474041631204882285481900351406348061840390510261521472691877280396600204736393648024312374650149351878603228986926716381831966112154053774345168509559175713601481276429094945569209362797774688485917242518755617846487730386577375059206616867947932000211620669097508536016186830629249138046357050950731667934324495085436151362221446290404728931312853494228755796786032219873332540386048911996579361880004703641778426678899932312369617620055989137714677191846814093254108647004016995485947701618463810719525067521930190212660843361049326400734939267958230602094200341455328219902123013281994487137641845008931161043023695437371684683844209756557828416138324102020148961414720104745942814787645596336688557338460714392689818882872186214346792053597333810293169749623950997843619037006957234738330618739512786739048856263781737472404174671677811494109845086193481746099210462505261036160823700703767411366524126048803306832072018568073199495430329447707806609686909571674373787865413561293417383201927327919189734687816123521355246274673771756896067846598543608670268410721681127806465041814526729324392706161092385241923639324687662893422470210635646551834165846651864179137898921474610096738116062538394058380798734022873997534736222631269924241650875347100515762476061615156020095254464334576001352807399055490673475003559139537266865312166294974952015245104776431339319956009884246757565601122713304436556603191024832262206056485724190210623583690187955887975875211836840653798348393067253797416206794321652764729495359209619136456061217332423160243628285579907385211486252776003177371405672657150168082497625469118695501449980345851209157483047293988190389363291381041210825489711266317160449683626690732302942488413745135180609740165004706302202057915312403954141566969292731767986317142640475934285927950064569247647077906879387043810425950396037650255549396785726520945433991548177980197969322579372310935358383543639910720974949329650057547003857549904079423371651197027492522443702915195908286834334354851787586059015361724215196823225740090230600598349085461865791152386856006652478291513773781192034327501966922726752398349105808267143004183224618027532019494321217084681829786679268260167431185941849535591530148453460752820924158385562058805350630658230492506790700779130360833015154186669716882826062418407736472592911218138931550131769747873596439680421810281626334846964162875120253366513179187404643947252672214941837940423056709810587942204935561624029813861563889349289154256467837807996451944982958526520175786095776614779519638879086771595131809365022974002480035106246795561947394384830174833375882766927702413198021253645750507176657351414262311145953648351151083390331703573794986696091886254939306245452507533820067476062312638991794686107108263290538922663852846104326813155582834532046078024240803955571411729399112743543472223785618848250537713404004474606100465653115706778829652627472933292651678554405135424256154212024328991253643646222369922628848501909931406049612062538751048703032749438619478269239747773488259990566118241977246258159461789734681942171670859101446999051477540039987309725545733537918399136517164172719763944002043932559211051796762733023661633456564076655081171436250634483412108660446418361842424045594356996387005362179697942472513198968800921399122093281248149854122915665145899442162511642712410607199521731652267417529510579697168736096837984351440728724241941756651920318189156391927778827480313893147273371596938641509889069716975515674008924982182116214832737713401003672913495539588306815998444780120830508662252113868979802335651158235009189475861694121771790845483215314217142918283412633147823671579248143237270783643219084930840241159846647628665707177857053164686562475334177499118447082896469376044808348876126546601470743362709079904989368808313202126588069018969433848320980085535591266639397436595046898851915375001936901070551319031539689324198964150628109381787780651731332803316750330291738712201624308736091555974512796753855427363849725246144633418020813816130783337564069061075766852862964353934555121951360039126987290487563974296532182320985871144103546897416211911962310525945113464763811940095274121375541776119642953984757235790760328304798105036795901322236166318154970151889540492450756868139856882912072383627069736699330271910979864502597063156353263495932907316771276500386264691123482008231696992327122870940495237351439454553458077615531413177401917966966998017007202478511659986958952095837836403800329184963487069280012791635417221869582163217173674453268779625121379079823610180990697394699335070274370267935989831718228542547576500767517869225183585462728557622510398431487656590364649244034092208495740657797924384596009532778070362931490992555944536556680544118943385425143716128371658571188871185074106480674017857047485276069382906051286935467845210868810526202893996403640651830437428863668368340394790661137515131919908319684319793733676961970286080602789412126314947952851074234347787092762530222628580315106457654409973221876850908691881707043936884949711784662540148150640422301019680775456641335339022993145276674795843317395399883334850183103277049389847931281336586011441770431261375356069458981481769668973062395288032747503921382998986349329670836017289407101799491750404726000827699414170649661736028460688194432777370598004632000639682340814061329494931813428648905497508820676139761858205900376366660577506287483838406138694295165065743584179222007392948634387654421727817685002006385979786811045081017261951725381940062657396731329298613517175959953332563571009522775036731138614934554419028678482274110053223771613611598538661903923202117916668996596831860339773993026976994920353095966997297487595286959762095567369932025838682481422701831794493823516566495405157161739349510360909696073893680471730492092351818849340947782121920636556017211485228651475581680115984611242677958039410233768321741615208811412399213086131955774582639415494956596740186296659713777846277495029390541570570714980629727044012194917761985299971672972979736817389075803249551867013324081920203351893761112249830971569941640270034362605586981098842403208482904963284545117980545039722396348173415967083681195491097992358805389571493755504269385421435921272389349881368801022793272485040864733844299782001702661017796417638224749217982797317444095019835266015988801621533225984418481194827264591236381676720880670069046777697450838463672900141703290192183369325847007555631105861243883585244064371332416162887035992342549091972448332272410853507410841311677368632670589622013486126912718267145872339216914425011875626418365271046340943465429953279862301759745799594045438702592403476512523408824935448095047616028955869644356131712744389855969028898184396564058646997696522112586170509691921888090401121317721565933263377167876675964748054358213815766491772476196466356457004348559059896838621814477616185605388034696810522873135705443824063870547641718940442722256703297555162643086500776256478155624789376409918319502653226075484380252170049165021375608428955371688816432723350771887951354743625692108649190920280921819413714361147519643230402497722605280640438678494389326458820894931120960645084343358749625808963459247363787471820841230830950260471682256662134524156088987673124443453502211611767980417916694332049611966954582403930060165892346083525697618914266402330793725542244463556908272862221204386686820683154626638427808272085119948078544179186845167085496553317144043874312177284671025815943293940595564807387663412887722536613549413923062260730054870913490405199688922796397380873620424170441602526271567883778398934041199824225891436280448979463172188546513630202415367677616836500203687756647531345048538013437610184764848106483515857570897650093009549730632746294506941070360441036104431829547450650585523071531631679821612680571557334974273837661948336451860044094546653249521144942222245705940833577170113000606869619569077140416861740423829636109119474884640271485059192589091583365769497888398938242821114336274726075765937400040487920803134047784059103045251137858872994150366440805856463938488967147949134431411154120144621213220642451148887904313237875787098310594507500807541394287654006704041599828249135988890662492004950408183409548706057253907935671655810180205400669641023827535972634048121609918954934130914633569364391565063902360379329491096696063665775675288127894391809184734547822825307886494626870713812463072937109587369427725399767936175753219547217134791324637305245633597985099247342562880114342611622669121751340283290510805105909518369999395185189238885954121072661649265796830984141496467637305219151585625297932081412484423506512455456682038190477404007602765245072828739156373958901643972119375470457516499026303602553469791726960399160204790497557665170621656108844359488174397028592137165731555497107162168194693121794237561252594698046840600663333110337282703824012598365606829295297583988713941520325981367827334071174303123444709168606640821318726196329770475680590010390141041330136338350827432239843710258244154995623125001082242569229428740662899087066253784368241101979949081027093539046456500935110284523275899967606526673324582094555087217359152690238338582368681042478534967321156276015037025656318401546519842732480412722791878722445250317119699870554745398303000298881432651739418558710375044040976734290496459175324756229060237009922298739358256512708343408812775536576553581201299134982672811535858615681444264195678498845443369584524600353605255564374994810520273997423193147409089084529297322736935580092771209095998484223879466015468025815038187238985516082292902043448658034847550218808121948863869555715777316159460200709828289183485381516013482368199904077467680636346706337892629621335773486225547717825450032951643118123191118591841686019538467148649481168813169048867989735077526692102969536876553325440096609352108366868772124800411944093201551587462876402724968190087692608272989812740777335975731320038472521120949520359795176719871334245623342017179355834474932394680909250949628821817343348623296211446329616825646579629560893346233904539336612128928874549501628863340619596378498356982675597217629059525706662094873861112017908623537343757505975384375199772288816228684280946845061353235201394000934544019398345552212457017433677562735589093275798410095961925100642590168189496769162247764156009460773917146666595006530787357175356826888546967064443187733062534523552886377501720059415559330284879346386336053487314197253342253879007276057750242942776059266621631737782402396180776908720043556774003068716578083621155246030798846346605770023547336642380563975541054780234698933833937687423680520158925754419254470889738817922910832258702994215116385756249393278222957818583575594746331775404822160029127912761493966824390144304314191981733782632339448390147647968882309039975673978306257682012353811822442247608415300572424763723840523756678980103458253575928912907261290239214067661944297141665649567864983275623841088958553805554577296959334247399050581564998373144198835180765511297358077094266520886178919761852625017680885207939586262687059225062312206085030774958796604758439437868947369457194182086646980936240058312574056985162432280342629350900365656603553505672578599606559070161584381892215813199911483178395414354634012949813540890342943088864514616129822685121734027787704980923705097926773277233275474803001694261371397378315473628927519465139167698012093868408313593628598067529018386659297262727406056105722147305103453839904650187582489791247231307878034211870982290050737162768397862084092685627772203911885227889310679161485917034883987748143917922004427165816025288083592763661868851521260454100857516981778723336566270393746996847864138638864851082412106153828406142070108987806114915526588703887889697070901325065885417304955805882970621671251626546352605458408176274160307214690862086119650478748883399903076494423336261171794878794742571372904923994525445732122772659826655342900306004949870843873000079190210759937856398864611569111374606664566256555174041091618536678568486276498841733389669585847605901498794253770602030108268242913766371422862225402540539252304022214659257368559523084611830465985572833162223736370207503566321307474802085446042988396161701484179132295520253674145742583203216322057958524364278681567785343859613089047353799302694312436552432360540390272868713850017656843131546835680515822750602971814336433931976232155516533978580988580496677104870706739700103707702977762269626510354085913533829118623125763815017189806862013817841489819335844033738831549906269802492597788578927513627352396352999617499186751303675109788026253082524330765258746198427384808549296095335354800304041668385542745249988405733080603194726882114689004555058063273798906628099660974537442520916168495965986521719395254530611495115768425888074272893074530105336811950241845714419080553223661432910147244931236826819821706247497721622544125924810405705112642256320241162888888556461545670353338786893757618846089390041358001507694873419608569562235214931912281734631429629172704062038174028760115382960190420132808488072728995125038869830600495162202734183133120684494596656915276390350846587423473329042662135429220483733660166257436309133614102590333603853472456723576515475067750869155151157682760587001771805679148316358190814715527471691155654269065337746797021610536440580864159573684883193206969390542308823837385730299086525767170835651337046775093228576040616064570114690938317031391363820281665902448499821413457669878277742394616307026740281549333369116077804408216798494453277048295608195941164926564539565861742269546828901744985928485691498751789360956386033745784200576037683529910559299676331618827079228714408806582907298010170983078527527308193423324996964641244288071246390728319778371892586775365515728469959806167270458091249760258128300105640380425766101578859298177370523755375801160108850151155848399777688953274846599624661659728592806322158578913012103644133540305307801825088539693973969649841651379657508109884646146784260778168391627774171814510243339650672588648274298160278872689029557947251243208754189592040600571970967165865332479325337967982267889086880681411405864761267047416467140730167189950041208225997621880637637012296945506004712949326692383028070437801514441328984535443981041468427771470435429585883410538677615366759719616076778168798702107460384355180291256793829716923722018073924144610175970820051548161684145291772557360523183624159036794417372739317951078018414874065093634864615369645148945642219610401250063828055653598180660385105177486461946052831213727802136826941319172551974747741179547777088428146419006821446699457029442881723365995557307016900067367941951714085240166700710584105943142894611578196250476747849986339056383373086952771306981024903943405489960343745769707568342204614656784467320619469825029909307710814926485421339491226968956363288230981261618565278687340667222785145516063093554900461787573014434846917370647574569018078273643798984590203511222568348983576424066786749062966720305979760064482045570908541856393491967663675816498104943442203646733058233735677626238122518996785396881078409026166981105136560938713637751710545306510974991602937499564663122789775022237160432711197791289088158769987300514787096122499351673748962545351101212889131135617422488547758415330958145920969010084920238756265784574654896058578336262694458359819399111715920542661106371477850108196326166577533490369927212919606934566806767153083064900508897143287444733650400858153639252018584151733820954307267776074007642125349990813299463243002952959930147774844422167387891677234307663734146520803988690327129553507113073027098586597291869934556389403954810997787737555396350904760991540205987059344657520079592381983184618371785827411506567525605024893419757607856353629464750807304767071025409356083298527753924455083852645568654785010439607942340351775558486402648496842699373737723778621385566846772941326178203459937983331648949980901618059494179079532471946792651979836719980947204756651032372891935865859801317123328508428525158704384179636362297939041518213514263945299380242396278797113134283835184489164658892177190228127801672891697903723713363228435230393416395778063055102005558444852596188066523807886741926908232694504403467675427468392778535705495423240188036368494593534333683651238262988719575994541878320252979401652287230757937907833301560216497241169812963459830611814115002334282806247238317611495777852381774784598000704015206354063245670075042721634534285649282166452600988930774282305224509061089044253401064013415243694673255823219502111415189750474336027742828439527941840008289797253485762142318988965902109152805949285116474851834027123756502440333959188039861124055655649195713077329482595646553714649477607322942655084522598769430384505511287261820819124841903767371209430283794264910093042414496731791266665458980298955317076017640299659906470145882861554672244842924602815072828654015337636287403463767027265040938144776674895951058864127157076805627962891562976209524830104692986257817739498878098258182632803828017727371785153745203597545833326927112089251891841998542048223590588210110301510463909247325188795023039492226501207959031290512521116729955125652526671019948290011030588895859620035763764245432789912552757420960123139074243885796189524494321033508064832865582308524763122474499350687479465537468332945011534998779967717133206625746438883003532226395622663562340989402285691772829276799619708146143409824051934461646641219242788495779971649203689673123957430347282477404539491127857328611405791521910821885227156614321665334513887698408244175768729054524152622898734882844808941473316654796857726183680502408373673707734931823877411776336696735820584991850977313318659709465362904974090895465525352193148081138031016111240895760288469171688886224739758547732722411096663177018200319887973935984185586314815207125343717918814131958687399354012729911030735894437063332652900670221414904004879588121465896334348986616332007428237678123925793663561475005933813527336413008700442913586140428720596666872227399318130083801019569483997174207687433151962008937445327890761102891983070331262136691741108805916551816810940154186932183531145231797515135434505806813791056531361546241238271794269897425207118663058106586297168138464604304907688286165563782197139753301608269770607522159375301595466620354920401868133716274882803330912952180850294626805835388208652339130316131945549301995773223883098881160656548182041492760868043139396646575516857314997632184253343877383950632677509484742890259921302890702353736142023096869270052498206076439800035648959712001460950032482387498846100999872303614978395211143463064900650418022205716900246289828688766910830030832557616261470763013166794333956652296582183299217062768368441453818992018133441837861117105194951086876953736489157069796245516601544840476304755127153202401364961034027864035058255425378921203504092166777778685990380840889181305667386325712543235892919044164743724900137005206077558193240724680120202685804934506669751944915493697289957260755298543187213342496085579549316975615240906614365156832990739106664157340885707121796782417495502761936395056307882929611100207918676121519877050829708348333091310997264485212963673881034551126988203277950786504183038830014088862424033589182875857802777575224561760382265740069259475716237544192180615983331082118512606070108467871614411696561501548001965045557835170038603689599537947951903025482229564318397325849087167402953257837113396434442942649150548813307258496691332001967011568561512851595968120536320703437483371263680430665907090119353214487935233226977657586932796747371027346347864483335482573938972704149096771442376432508873467845785277792573032766810916751194627783022333998181152328859460629907784970839592848863955845375833169657593501051054164799721925171512110791377096532778984516100188211154215278416140580251788429538537047358580643714851497911051912990974733825358680830116750104744806025887044379509099774719623971464061207257087098830353829921964634699072930317305288420656023542822312787478483224380974282935543961510042258729715023111673083664584990039122577718434231889584497789102873839302934070990976386505484553114662347350355683505560265917118382194865115784375052705271214133407822246695741291443936465717785834654411974912473535534054985736930724821699791375155995846567359171847370617809577051783692598781561944796845739918942131530862552220197449307701966526112671166494449054929717566195680953678691731097700358690354631768140871684573852153341959291510309300805615495935820749637562256232241360342394465884678358335656951353740195435218748179770438807585008616601127643242492900391996527452361776216138020574978891012783626276084607246247394875422388759289712192662703161246295663514606882268676059344517961397402952784501451060424763016498551903900244602699509987594556487649033689857342684600664395758894062204831226015196002373767107327229025916385243059938404125275924518367990632888160882798869252320681425122922388674343867137897911900020193293340918761656113411253502380102749360528017105617244923773185132358872465692145671837960883194775630018696325333600282522714439813586041328449463241891090012203287496041130345204192120770509198827532790552132916971778716767058614301536354480327062905671190718681027961747486872646618679884769489431204877012170391016682655548999760819642783327442443610092278926395544448097345640914686057655875961723743174481721945989960662009735284786347241026214281624482718871797030046106175233856825922098749689954191804405766021215781798138758637051696259241190833213789065435622569534057046420599436474104950601281546478517527819094990441406259913663022513350569837896040386310853698177047416734520978169308707522656886911138652688004968679511515468784176249282228148603824859106701543395475610067247614464261840179001504404961066942402459175640795196325917400197556214793110215827713638436609218553300075453837633695070009929348059771285991051285292326640940779174641030274730703246775797345811401649462844180034107626430072419680892259019503399964904242537181070489174099245147859774423361358938510773447022124779427139004788439201392439648480659434681356773052082538845299192084122220093880046353540436380306472658469504580862640142472695340108956339241237073380341506677148100311692256617632896146720531339382114271080560519693251220466514633319820449305846672468476247231065921317733592599404862257483004895884457710227941930062162738745746757580875909428032918249391202860458295578336914708199154365045961274679034287319921088769018475367950619909696677105841325341925972001199809035495957276968813708429447188268474460238129716312785758150509054178162588566327840123383231834691138992541474593135113758810831421082407556721468494761060600218498915506921147639289334507203519721979119804685774892294254508153534266442995812502634868575348227440079927560009671943108736067861204349119831574445090041543291287082758087642531248556259342473036185148034568483760016868800435196695843632954690140087394816453580254963332483230123110994381627492378790763746507641291945855407005777562063864343458260120487560826534324080816885463244093483554833289737886525332087207163149326078179865552511554463452404641874236685153431879649621325651172644164863149360351676098253799811360520803134426893249673677930782974783611899453401182157052294639655834243238947102968232238501297004288032264013477713459762370576465313153386022902463918849456671927590779801180450658396441465187002989758875397751662601802445990034813161749741569802881809218674480336027944571183419630179476211646707295967347619459987371273584466909506049665598046963827877415872805114714167207728769814170951795699506800507138304239085530250355010787162377154494489670035941474689340237283739410077034010703754336554799135407492895920494913211342773677496030532568014793046476923599125170349579078546606015255278988842804971927321074894467298383864140862172083173769138128722635242262338833956732267168486330545185587778719164273052631716401864997771986699897461267249516384753624132326134961812958946352518934361050359337079461450200041111645845727480378681320171889642837577286448599268156812715383678960148356526266499606355853531334321900878144784313208665925608065224027061758627175548187358649599064359332378787668282759317941985813830693555202849956428472446090211497822574603074788392428712408842432583872017554787198838340711758552356946014945784609505263011421713235742650811025685112481748272143128262120267932706570682584823561090345858663709052850543858652500504746448868354384298034078728544832601206073307874348077978006553521876791389450401055007651965120354047438123644645802458625113946999423975719568543953923116527480754589364867708616720434970513046938557240498121336030767202183185135053180653354650426100392066385362014161365733302527958342737370511603711808964332177229001286030053480978233504232393912139041776527663208563283890568975303012881847296245506474322926366573154895189191345044709234344175704715654716362759810381303335706801898901909928954013175606633386182035278358976934076208130714667417084132734027593683236744946968376606387468271105577920409667224078999736788998901605152932776363409572095666621036799005490147030876793838968422535034384541752374039093444374332910990465108602869553714093866930841636399637417664744199687196608492820617828008503823338183305557379991109088282255673540294605340305516716917929635218887155777113211859583695659274061937143767830847696938901482435168063800371391466548100701501852392745520822455455754301037725114503727858365626708107676054006224879047398786973204330907199816134659318977232382339270397226801862725057296940230150978586195882171861710186462590180561874501606595603248862585983954394510979425578012925266341602744680307985488290034134958574324605185909838586891893994878338873247686978594223666229474314103958708990019628463445969490687856945060507307668502751502915196035157214712306524673394563181199777643506580374396574795758389158779669903188046840986260837931735242152706380573043344895522953968894082205173811298392217183283317509576125690825792898154968177507608347523931710077559013085237246621740052560085727046580651832270386827601962613221227429386175117210102641635462837879159006046566702875832837598026804677292971399551142723928258855230307405145763318759105587626454154432852377197293636429286230184391225150192548314845462740140159812419224045216312484314102991871637217605294396759489673344647594340210895972788496381094433596740937694985801771968119290901549198971326129570187815885780605015663897741547034282429861281162817262100208917452723336045907194055606919679556101123056269285339372875505556243391380799080083557787714308966308975044639156884919434668689216405138806997438912730043494101454854232462682362278450768641835949651867615448007684112306144496341553985272161903727046374808148177699256374772327236349694666393350807504705984877977004701060165342429719432939647305849470856698694939583851538052270077471572806723367430097841260064863954940033710790480438129605609370456286031063077742595885951105387777508345997909977183723464993088474595503402290414477719029947815988519133766044360952636389189570799562165069576207989380450973373847138486779122534413739139845307363879176601808452127166866277617496428064356551626359872937440683780207901136066334143133948366210594480278724725809718399904051725313708534016131259328009263770354398988603237212033076061289820502997572239024624193834288101816002944152992324257213359624789166418395724251596629252081583188373398241256660708916524352891668673653757551491315402957637121014448127188574678030909925070406665326151523454402399632842646941722032233055551567337628492186741091424373646866194844849084070012938042831608500387319611869848855771157161116681068058521964895974064247051232432017900280519381743377081998831498908056769589275799309151399245799010117594895653959579911414034679263495118917944801714148053234816839256843610092794055250286962649658024683520627844722268938743644695501391465055848280720116807155673678614310334958228191265371362014305161607247315590981448888295146136420447884618165442562043786929201111998468662934666626615835659645349987412870336834527438059243713357509247476372052372641555322031626369969184969951303310158526115482955360143281180773545097763926932689117729742741172365857059358329973594702530273230545995341236342574064880000568920304216897609026936177915491042276672909896707974742895906973282220438592844380683336310751235935326836152996817250158575100320136840085584049620230823906519428338432004351898570766244439714506540570967893757603649455904032287803320013684537440709293359736220794202329578387088914869877861325372910650123311228661250523894920104360999484836731590370584643340839848914458434578463790503054680573864249928505067845338610570681866799245683561778392959319436454812203654930600660634513340901220987364232875165926909488659311056570060771425124933235346524971012891772654526321536928929886014000280350733519564221744549032426450671016430208743787864377533797546295616033941152616138390528552412770897293358285108306462282996190702071225165658069592580810619465992580478724737227854840319292691987652745503335675080666938500958469628535399967303140948886204332363784347276544339051996481156314282734771001670887446357434539137845317462361259135525800338748229232529768773485618450302989940076728051009229951797108274567203273232531611246430371843888489100968335146876659642312929013832892561327778452442495201657569835377573431864519027226919367573411562997906418198313831857793949274641412778181251694497558921811033275121253313151333375017407226319899147813278991559546885537828932699297530478164543635076440686869029296142647713393789843060240585199441179279966494250295924361729500775761871108360190464432081680839692158090779018384296859783952078605227772081815372712353912798241207467984959708160279780319438772389674485128182711671808251897973040754960698614012210905105570896014382350203300418120074095225340758428115455868626479503486592556758053730010510868025508438650255564653691132930728238617991503854578799021590067201073041378387186895221964353009195947649005760387334564281913837147067790354467356284143154156830884086968447572045273150904689868624939141505398739208812883545258014793016959498871017882395396143024107850529348206130283247908644269113293206325441069325597928553446129289140620415130207161302724936851644527198236691358901471773257523046944359122698742283263847712085352697541349523007926762269178332172603735673209418438760289966272605853547459364749908622847324429669461857654335783917277147531649417060174786351818619627058698052052980932938050396441166647552299752257986274554459590933681114980743650855258749218057665028071989042041491335651014178728188036545806436538601574885455787142792518638501079093352281113197870072091485870407465672584592534657757184153267367112865946933532008446997474458318200529354257366347664359691527476587518094618055727176564613833489156170297285745741145250011044812717342618936576204003419780140799883298924331445634180917516506456477288154087490408747655915595278278167713267298435085589739989559946210190656787417325082529597322521874793329848315953771050574109777875397742513059795343834139814996850833211171493054663953774717690345763589967474274775683555665875705360649665763863185588839572227339282263909696620794735547599175086763404033415718842109305578825358973488140592976511864496050846632856848526958519896137931855932652595553675241814087465168865439774773526031065556702273668513591539770440578441547598367446461615210001247104098978539336499017284539512988453088854339711203089236856199477044939953198212769009770465398375384776682284962952986884216565631311388908928633215885689976745390059210919613723713118220819758682110431754041778973130883020793968250374203982830842056486308357548092072024419928579619009530259649804558322834483424970441544706666505824105526048054350750205993966546670262080977701123681411038605021837393033358442369522575349107345821481984416279701473906123547545824290793207055712810109061736344829367461776718807538619545741183744382916213042806657053067715791912161274284220312902372732680882217272541537360434199625698915061497499274080388092119924274223406533552514186178561905720890760180670836793454560228249555533762250063609297266772402418118514038838037495446025918977999729901729404118424481720085798718083806326879498282283762380080315784738924964565532772968808697852429687883788215004476079741004397839193515031529750083182562829575701512563656846800544465462524480865246508654297434990221076720132721692476579515597914496660196795003606905653666982273448502860463204925157867455827588123744120039193272463451087843415533452989298362338305494849381440879537019363458324923505430494461674544981652129904164956030063607432393730190442616054008884198706191687554228445614903562328678000372735616206068728456887831330116125390071091889934954872016615326982659724001996905208989086877706038587615828992824271354894393376893477820060456772478317631991229837155587011191089294718097502452620771334197702082890972460163063568053727387472166573259014190991926387708064788877866273384164871622414271545325250619242991668549325177094844824832450902179048131880756393675574606392444476779201966737166734079417209803799624157947320011099308204310225836386202663078507498177498019578908753997531389553959839650078541024205512728371570754233347353447999091087647760668989212175080258273081938519250647042717891856343378917853442757311343231682189946068934902041406621652883093443655420157455023553245657503706905442460141177268625394754998337058635496034456712364018669175459679306086402208917674575726539824778141816845568969629117695773242170743862517125462940622394760100820996453805309689694680760691904664651559883608165496407666467128115369077489802105796078108973763432469530290606338090515017132681532534471381762995077150556640088823385487935784590625985272606492419175810910979801461814177343476596639848907583273499739426189851654659956122663991401522555116457629131357447401365057005590649022012579088612100226603520034383215167521982614999977449576129766254313191155716252037854355126037079744002127230555974983402983580501644929324293712623496483486957812931692844165313103617965569345072959390748429013720180260533372246238399642347823295393662776831671535019244851898661239548215090485954395074860450062643855182746623282267703142011314611768566413903963070221040800205908200750156322463424465516143384830062172445715097219874801875643166453485674794769444924247786097160203668914053618930614661207168517210455084738233225317017815195850551655916085056314788202227456274653738510515698112929369317088667328755299398025263166660839896292311593626602497231840436178873971422427863972327548134226456473009442357655391177732608359476775246635286489345070675330382450514122552172068437761672227318278619683810312145852143423561718334797978103674529557988232729908797230754545300261489458626274136440328982025170157370900567018519208809461020520969233446728598175507664772217673399709864932029208810357203977237046579406393298832617216733870185644195873116721143050332375668392440454875075656508522378617443009850919110345382798264623585447529374513293349711922298515872632381080971114749172696225626003525028381539678732548664705450910072984047829259073121776864511660768560969999685316254790968442526826647034777935455438650921846828005147234982135881961492769220107688864423803151250830688891410192599080351858405500410717728192998779155909498535310434627776542370147255345475817512217146267769202858429271769045822316863338561770361147452655254267229948319355649201716143933239189756215555071072138803793442488595555645106843834639072055006339219748733535923772832772163282756080071416047149422861325649595334217245831421484383320746795167446474017985222245941385649236159131254136556718378603362109839974053096849073477166472125195975181875644989190410099859742145683443514188999629701099777663030948587337343483452219983025142362997355709246620437872983620715356805644788201639241205530989831750719364058395589822143237702439284513595014249037987285177526387004116448009615101875958554137626804572095137665037394721137116029659364223521166079214975125103245495794684095496293560219844586691202925434954311939991916350967473092394239591038962563754995653934554392751848231044725310259389325352556981671598328634875966804599109004188710529778488319856830097574703963159752541466224940247114591158682138468575192553636034684908522766209213641603434125359972287951009344307855119975999391518614987602796388321882762680668760117060102578539835063824257769762789655174380535404508585025581115645699126475665610096498681094806950205699054857537894254839208090620508133747707394987045126965502818289806146262656985633493868179516897550103264871432435248322889430280873255058014957297019398799586566980089744213411403437503152591190944578651395597235786983311627495315222062081409243315108347571655391711401687803563191282302709443983158157842835858964231242115010780106140027382679131184898134342907888282179088776297392957127502891335433225862239533394320138687615430644635143053355838386313376735568183734798058015185871163839762488145280745352571621043581328728865984194052760100435750794578726224648319194744847879828463453309668182575081430094648443592357550818557193406319438823463131473735635915588757651889814726956233588980101556217963251636892867327789424019627921139862010230975872937744399655766885660568247713453571962478963555082227597463288682709125808657490883077949288874326964914620518183514725867510942817114859152951169735173329802084934674390613741628262562848320227358693257858673025927313330015074443850882014239495209707606956739529885369264834828117531281053701804103968041735065670574984718344234937762954404405698961677722744383458320851220955147008224174789160021364832279866536460220354453761555202640365728106784275958168486932479365624428588392594798475190270532900010583436442900597642076002297037607051543525650891474452707670652021730717962264356066804650529600195948015508119626152742537185622695300889355240608486171553550726855149432057247987778267943378746125811803303567363455195691364554045326029457497262265868780829846227610100910726733034707642213019715000316105588958003170038052793210169980988110863837200034613074252525423407476942712444012587636164383547672494968937299948736672230894147154092889252447354121525971660602492225411297105251251532651079780963980167316544039462274595510820614071215233552172856137153304541097111149176045954098831920978497480735206400864445563466004339900104493976764337861336785457510570533838056493438015363851468207601916044633928300955261074800205293555521686467797832801009492714779330112895708201599956545669118559898297039615748172917834680015937268085803310281383233639400108003524655025386607862056851241961785355914308555579194903417000912501393557895168127967031043069374868631330995754464128837103156429317260762669167308964294045876783412228518205541046780038360209995119712353161012824647382734833711010193275585449826849306282864861122580831781906534202798326699964689789459182517959045068549323984810487226093948728745918828043208322396121291089231113654892000044344998310212347736124473022311188467516857994543690485039806260244302756125583281712347489709468918603243925649418794618547324605522342777011315452350579013018544692975971640520267347060659535763617744625767291728610197754593813056100757993491662488414236762262346930166665820211042885303537589008378921970421009575227547997890951319495951853448593691736366557032367383909427318347532874724763586427608652739548002530639262497453791702444079873637032480339747731406895852471566102248432170596167520423979122165834456929195540286531793011549558071742221052472476232636178811054350665969182587146241448741064190317540744566228243419750350100984217651249309541137421835763232877693180453234136152593477992975567821115860408931546535362065737614791628238144835941872665477585383231999765662094188554076494061486539080388625213585634261841408529897464166769636480416996754845050914805612865249922975003150779168473403135209564975706160676427663104060878758090172098520443669425136676617631427167072810060531016157507545723186526298498113802399353497412844859576217586525045043500799483720748453938001899389689545807726339033010835359669776274633779768277774671264285819152363483208472794041899977099322321430937699615997168325946590908938404079448178112232841678512293642756264076186640793908199537830002232926448326862875295228316114470119216657780659878111721374469358151440246683707130876980634694397179018320192257988224635000048736997044060446067767037556229232907931243377203864269328252584600404595772900079436447914613344436031651062700832024318514725189377112621788198958792492757511333896395919675635589205040104074429388070859124123265712740789737506509433625976677747192034032574781813395384954827161496456335243256729394920259033476366541956735181031152834651650655231131864902429126445549076402338918662484257366330520268346397864565694893425729940160778771540279580105609583004471188266709600291396448871985306055862442605064520401102868943847809618826772047587741198664760494010197824405505292483629174320583866643743407384544659212851945318220094571033683414952420249406449321134063219159763314955325365870967830774338892822552856231457247193707152220368091797235780689584080329378256894097857331342534735175109738667912715715646450959033505495955721822411002882999381648823960549984211450636373691818842531306609548471952765995524524358292117897055822027825969270902800487549564986903650635343399337549310157317111950020257018650152028533884960238575129100340995337890502563637055731378107009082309005458738860064888229936575570711920162540006739193231988910342513246597240125279062765031807026916169061548716207777065101898439531253231604678343683025462172361627240756441032864260176462797526276461166524310261506517205429154190278033141909663215746232115080858326594660916179219956798620254738549310836772325024554933230057445082445523626746985565132124536359954850147487645716298158303068566788634076793314226770906174672503649668111445868107051396966517057139088943375184250758111832164752196980858825461076163902343421049925696296120468031595902559401679722315626312761774760989175723146980898486221380075515059041220545926055078450359903263766357236149422938692188935960303375909189791943969728869927691152661280079887857766835577630703619320398657923215069990624080477940200322891493336313909717579397877842883516280545578680383140596090359248709882533234055630525645839900002073696980507726147846653869816851681693857293501597920060029965043068941539899407878544920040720668650888383053368039664741217291570326059842383971542230587851852423575165995427938190924615007352107963910511488108510950984483779660979896034906046299879904348718892040699241973683122636541505271279317591063964629410087933508480364752464056420186053725410375019414462829229653813534274375422128197488692325035887471741440688352406267280308576126514425260078092627750449656652647630704461847061628617617034280280750545782969860742226950371138527355003703144729783925843968154394135079121650029152767539188785601542101268073814387037427000610213110030112829439637615672448134422380976598391653618708046676971069226173904921100966208721859611867134045972494780383791855805591480792363638664477819688825231901844498380178636648156368990553656690144996754815512511984513620186198396626180886944947302831657237534965492243100710903655944316190999241604681324402948412724630889351234098270413084378288344777579210010149132539125769271134785204537860195647041359619279262167433602624175956361784525309780383815663704571195354831315759363415335342533913777094975932826175153179549509278799480447125364250166181915117652512538484199042622057797541490339495969520540155373597707299902639077783820904915373344477366611629313695632183432065449575398145829711267172775728455744870022816606988915084029939193152477909410951657901796645076491482811612338809307385632486267589980345406337478333375399285438909632827509349720989858721149564069008795578160422327714209526450263035394771472347026007691079933012419692795567538596961926079657977416873865741071947376488781850137200376492986176705715132877960271224783297842665819556133252908054991059725628881578174720934858792714833882420957511411861580711513903904991289188002604603875105191216297124200833611323842330495216658450944009622941608027371063315213808505118172701794170516928132212040248225026785979339640333672138583025632159857819586660540302813680869091666448917127833876143857278600889291798889670973991397936255787169993019037463629518268574440923924367418388773450496458633046469593139453677910839869219937881314334550293493681991684156158163727906617937250818229194902296339515588032064803667041196494623192549508803782267727423892837232767897252409443478759257986894127806780800578287175810806249201475969517296114033649258350693433206693386348864677946576263024557591861971763339918935055582428673252887999411906453702777965575401830152616333772849145335931148810669022487738149450089808327279976664828777684787674426119631853341479701131667458099542957623144685662653476932537427845466507948989561565588081435793284562060790646490938827762523079360817307276426586881183669293660431290525789316513412829474342935265920206702974809587959880287291027504040362406023062139399168597604695040248283163939786682223546835069027452003120160759291586359112179571534447549748015000027792085542938504599200476720727410114033751840623555781683831672128161535848333483340007245981648455339628666922528526590380952496244249757953973457936525399770229397459767361121989560361960391507505141167929328637160423622800686266771964817212288088194243651105545024195439959858688452085527285808957781561642344307651442067916333861926903023151488042551992654955868222102599524482954340560431695825847684626995415546569081350281311529331782612833843965978927227821243454266048881801501891284334091324337167524388231164298172448466291387721289432578336884183081213954913407407919300582146684275904715214647442352716220222845969526727550328875816000040083787728954528415314948591998091773347497505004983562633270592087611062320013098292829221468051152893721438948861996490719608072263909132264772788051225888522526857813126906972308288948927332941196132647713645637929632844384744210430992394070328993293035541414599883475590883436594683852557740159246556870897117483585039827124872442021853639874332289028482966615264758538617212637268247057008834720526427724734790002723453400168038739396976341909513137982168967190950323253311584887516352780026903959738843592361648375972354744842666723608699555434577182499403026394968389825908420603287160930738977354685619423155251761499127365983203921944494130545852702868400707500292001181808317102259356579487047111196165010775429792301418888946165807031567494246695640841133742667445143126178448519999144374707624381063556411135655062200589266532460416937531064969749290565973246362045928534487732542602347246370190428569285292593888705896867125593739299173773507443750344919104447291272314737390798363436285288011702956764107336835750458494237051333745639425221951729414174067408769222541554277816264434239437296154367816699220690657802001865528644997344902956833608637684565785347216082190109751016254603118490752558490533073188503135950792057536758129071772535457335997948291809823386949905315811814410155646235230548657481865023976864318987293355348802461062085790189214578849248723038168549328830434420871944304295762409908469053441658829622559266600164086042385732181891240276737216980353556030046128365584826826519445514216249255589690712710620586661895284763016877716996925648787468028106397292958271673698108082416971184694056516703339079538231512644663290487520364179116357126699151798638826697327575165780575483329334230029631811085868349517468366134539672414625657544566668339872184026169284706803141228914714934003869980844093397703324666436152544997183914281434077367563776085179822027306835462403943342580776402412184913171375722740401029374808407552179060628765031376063978726533426759238054801390770522854756121318902979555473506206549104494162286181217890494713024927308558483447582885833034743021248157534282874121070444581092319009509652063165800074782713199340033740042663656038309633402370526844396395872887469063343189475366014630663399083261633193172871391281162176910658469013300143039138620688408933390207707081048925270743076196594588264266322115396686580502525938275353320446656363311960786253337822057893824595850961455524449007979748889118798139533504574269414789298703543997346680928329176843718780858309408352726916865115863669301705424368057129188541368380668753389113233497880285000582832606700037317155370538821225160651163404797556421310951224410568386793715804228272905133019987594023407629386963455698508229150716653008846212022827104358664498210237344061988946131242950436227466942890645666901408244630336282824064468015106738572007722070388467764535826710006329980825344183822387341580220766259705764872150035624752021190696212960687580100144783841707068992089619014737728195631833921638392123902601842549771312577577136063206770007046481120120233892515611678020352404705686720262252564811863741653299150146874763922883612182444373121659735182607165240161495133473023320472233505854832451238580544062063586422397027030530263845465434639338840644492448440262174238654021661114618891823298063777624276563406852533773916373170898674477691397210537736669480314637308918708576861651535125624292627340904854189978687881908711931949661587595609118252689583077323575697562550450069411038967824361994579015340328806721015573957151876586327987779949306305289510302922169881525880134002595663408217099991579630132220425217026510921020325110902062743812241483229251761077139663687828509503521922348881680917407621286235238646232676667098281727586162199099284746639539790619802091354635695977566764757212077441190887867163154978376352048645698897481297205009383792166945301440604232508284714843799727544501968600154695301714981302499179429653390105828594226858072670403429528564412726133311894522797439724376702210049134584065085210029139022976916498814921260975359425515372849149516644124465725858598938187209950644712854084017183720265760868898328155289548444537049655557497966479418229049768578893364219711045403497436947404411842589241873444701307362554498812003766735568754866995036642453692254653170137194042769223009359623093094410968146289277938243993909888811592707271440973128986432765363520052756615245460522500463818221600448620969980803747648553795551841372997676123870326468095009663132578939877812114671779485872447967503269112099291646065243230619185321274459465122722242839469580763437054501857563246157677505235618001189348463325388010839839213014282462968277835730153746776198371143821541972449356474296520275350188173055060200097768036845137132518128835977263279971763389993531223261594066061497718130949123250427335889279372756279341075648958255616019979832510941729809672670639433256189871487553917198864595919154711531366160509614796189858963075551639069645423211692541611173048088029415294956150798593802174449638101573552943941836113990215675613164755647781545653492843618225942452545222434473581114248894266512718141006361807792169831309386122420497831729857548958675782677999684154523167881986160036005744456875682949868760182669273746154670480414224913180528628653122925731064684738354125706483194440285400709408226175046037025968071285316858031520042630331335149286814129878436640562737022867326848183772716744787932178090628125624892038661827484507021809310807586208156782495874810769548930090531560103932544414946808751240436501100017219734393730141574756768284340967438795336146892818818345591620827169267268416987362150654052874891123735675467759823083921575583775164900757063724736396082831122034004773333685720149822305488353956479193753311996755321125507756773932686639586114975721261079329476288998296468166013286169637400417439051451681277909983516168866577543269432874894823333363596845475909593315438969297981258432540248418139191611887342664922804795532141944543205261961075439180952318921582848518121056362027241529762284113526509142610614341956872518563985282818696289299581069531401006481009978226250456511999920331112762729203908391241724151021396617193584590735483411364996180506558221562530268988075305084437188039265759091207471409206871453295698516468021736187095070602732623547336581952377636794891242390417830792143860520458030193890690138794445200957197979025846371267106250104232811267474898314624550588969471251039666362778695436370076258028738935998702128880163678473936641955003472633477955368241649371455063969929078981506729768104695968550698264937476706873731815597622172332576627019703339278126863268118252752032607629342946710048506668850185810102531853259325345321543614569163314409886794686162695462988462218436143966115256981459678735651429149353382483062614966388693890345229424512315470029781123446972619462519630773810644970683264668563664604792124881986495926277068559879707155185071911805866462608664420022930002658150584290205585051945063298400287014402000715040813104891323261021659789040336907589399819354504222968569729952192249085337490245445032550551391137553904465269927364592062037843445435807458400159369076748324194417129938946493222884765533854498285680241562906297563119466363358383853839512528205559588309918267293177699161797678217336161442363309095753453547130163365159454188505383227020261979723744635684216093712209497945423269534624645901105506327299543525201820057267212416008173662202353693040684740556958856600675369926352305508374008793344452504213054832006381359593786151269659310124416363593284236846771723375409701659704775784137533447329019339387140339077161886040734544997460702531717374691363958613416726494728596800827363174749170191715448806759902631845646611120892864994519255005251671402395681011844129896583922390153211631243011345471767187878514319722314062542482599037587788945447599843002229622065164152359404298288196548755149471389765705283492712374761573641211804457540481114552582172685818764949067748273587028436086648545130460793473499195557323563796538817517175249770961875754360114091731181592934940697079050712094119783823987431892183255488951901899755772420669925099336004019855246674425457875836898227531071640631764706015117072897194322423825200991951131649312601974413712236070760133862681051051310276130886203904191571051520545121637176470243331677923375100955243426658992611311595841976920713927867139393704317491516114471584198673188455304726240297663376327017642066832128477317174670631520035020091837870021876749242586577401216190048767187197430098979398551853570665130796122135583956000050809309270950632228324946999232594681664657432337818670085446624348217940257663756249034312180806104784382055350410009378891117267752214857214717531363056828530479950432517752444287423762688009020407328708907574574440014137441938605953657207494111951859085314520090898434713449961733626548942130784787437478837539215175835112050770056110876908351494083218023484942014511501422564986312945173759542226944057796307482653647938878202207066499368258050157567287411830661790912771270390561048857358719032623621578512850978963468002122817685368591244414396458613062813219256285861513550595015426871313441460931050758782101053029838032371777336411640086079535799729834887083063609158559256283305727891334253091919252087831443800563083426506333429501182893477351477204970908544541603585429487897258260547856327768288790843271362066267808000812879500045265554758157666721751447605109319300109057819565048524091905956162948807941640044877051300768460004166455832657798495606843611401137981362917396010814365201296050221166896977390664336941183366784199169278499696522974093564728446616846072289737076165221543911599223708435346769430307947402792147716538886704876702382094045767353621491257579881791044879296455114185828910365787529585134880809448721787754558409744945709225166283099872526035370382817056314780937005159347020110683925256022200768114005593671172023091754466337764484882172830768167476198826388118852762314962959646193050274022859474015009154394030021299785644628164631469494289063756861311912312415783339170213393246340215999877358738387305933487263273545041497541608106331152446556750565928906067530311204665566000499226549292962869147869851428102480505712734882178244148043212310381459279179625611171837557245418119841378935114776899012299443485008796139948724968340144887589103845436358950827492477459751376526714078668120212094734753758447742599912561016029828278080234429921755855518421453980709955079353239902925749814999367749874953519908894036045102087416923970272455896014571350248672198658968574325175682048564100757226686620201451614602505789872462811882713807905718098543012168046330839140504082960224434707400059582890454173439989616104401597104088296889193177530170405430434521521131331933345819973759718102937601830778101739432224280454414284997271996884281765481560202348674952140929514537714268320511710429098826348052226476662377395191458945114227698764221146162892682378817626435454517728925745116598856184636545978386481093404365278900174624462208716185048994415661570838537488261912683453534367487774356056980609924536297295695456786870289157512691631179041440421438045657659469494335724340294353478951866345600260718491420742106976540349557210961501047852996655859408975727297008775903405634866296933377629230210716383098891503060060512295297322054193250330694196584991500305571440757289303405775470756901253489694904560209338353679444258182709001784686800177979330628772252513666362919955974586759609035679422350206489057866452338888044308746702530951906235939057552334912110768670447893158953406206314407487824572012018369873623767222281374449558252333587951822634618036756358267240909331202871169248465232972537288949736590092304722519309265230168757067503404607628027791209478814818785723804167449681412814168055907069990324705678325779624869604847268746024174827616273571247467138285498582286434731247473098426943046964645118293628361663356682262698671278873456073980955967841197679576713392941842773001027760676405782710538475944740378390329339264305329373194666675540907459931017214171685971650380603196034857505197169143203647022049257253598470347632235205817484016041026716569682095621936484395288036609302385274639227448188154943742296448610773986048968419604633718354572901247880942531496695595369911428676282270942483948285794908948451995128518708167827574546555142271535315318377889211960782065343108427321977772759394927408757343621765254617502283436022709295276178725996687893027195283230076017917499948338480809761366386512433490504977635679578689206151662510434665209571789671990104779112467753744947557377454379027492090390956718072154220502544294765990615313174443181558134044023752924974180482863089225761550708696006791612846150265855718766759388785570017418399841372121656792694426995081767489832471847581277416682173822964198626195544114266096560399985331321803654502885252083115464304824523448364557374041497394955582391741082151636461221218560521964566353767958305925737046383126322219128639986770144473671006124898821137713100344210595654118762156242148230514265613587743994402760322372150648669673077789226881319175786073330063334384277352444501023202924188365284677673622439825898724782564253259242554550482523073852942867487301459197306088969419857992940373242034298827228225221336614604111877490019340610934455329747460273211687112484187102510376995476753545014036939076961118317365791729963915401015242888833331762177776658009116807738762608974105341953294559371373644776874977344260382704155593197729795477026452188634902756052671337846371554248818395069018282607457881163289346729905546595095266374765736780991303287720747616238318900968280575538208941596585558927993711461452737602110497873300634242571473788520598633355926764200663110074131053818392120877190582928513465504081160285491637459799847451811856283369366373227449062597337955985800356378132644721430579871489835186356864923001695885872231495997589627937063309110035979833322724133888782527023316104065014106966304956205048924081775661533316469335696631575391251220855962716920809473183508322768211741940857963993623629527187314444121619697395025924801205006841610263127653165894832497727650032970195956141498496597080695165206919675491807595553886841975214576685749937213037232445282146929089163192520756621465879475614890063786793249849491974680708760117262708995024819107238481571114033473382200005009241664120325326270176935633111694017461331688242637510451036902657294734357331136361493365337264095647418401050611484881321539214329265276080852103202428207591294187644631832161554054190131931296895505726465115463249729177903443172542411858011206767273659577841873127961663607378586882998476598484756610894472201048224990728507318573472483355988418757351262006035064153745992565805452951436289723325897628259886071267792093209415692244164690703929753163088060436515623719023589339981673338381720949122437715729663401978953827959916103161890634675596408700385396051915422848549668041362523047080637475143966277921343288267551396380987140845859544152459362082936944945504015809104634220912041937762062812374856629978430543585712822448308901532315255795286649002103044182102792909330357780862326164152536053092235749879968080393500822576537966441194399315117835702919875111830941107304968629330873155000087723197025183252606708953245955045218503834476842383215961095630634347138109521352000668712043067841263279677198040323968600115302165830899983836942750314640633146044221067820055135285295615789908518029783927418056575895832119469073736014886039711131782862610669372388916880072849352553730692891113926133627142089695216429198673077211540838723977343828870726807481477046552217864220606039702175021686795226270537164465128662123611531557261614919262355815269946613909131236093509385573486723584819554746464786537739532856981560635355600729752905080444310895409297370531773959696981775227460465433490969697728986143436947490698137241910807117653687168990671968696538381204110049535012176764438906828814192614482520758779045723344745321308845825674940310444387766942913443402412842780846963713465528426672264843720729850537244058820781704896915912108788335762482807773904073841552341797740037841996645493278513252889489727863623295622941494017068129507749832326672503623813285603822425958668859437868281317316236184688440431016968621106511362479169656355317888101614975177377679211073054579557333038236198157663010490523309683383257775474958886367470343571151292687051220994097165460698842556908041701035293616135613506135938814631182006965025439183133857498481157552128496106747129963670828650729216289414816849250839168213915312415707261141587840810215055785869574631294449887463837510816895689137633608114878412477766941864528286191173664870186039601500924460133428406269755855669712406009066826408168493614051565227410644649967923543001225440239304747562548588613483139055776961721285790196343396265817039009099304726922731396845281915030693187137072011339159297709083219124009593644523236610007308799949664535056009352268188222576457004964498907820825263209117699629212686750855734378381596777397587019187781519021073637441459477655548842503646864118365549821033747770351938033773941852580122400707097119462126286043392316765293888541877445360317656057199633282566326903937629082119804417353738612738665053064747087792359845945808432304090513594018878688306353660713727120791296671237511091558122736120789777862454078296755842381130769922404717671957003451379911237897382539766958514770449718440007632319578938777574459187063556425996585833589428464279058061019468429490351038677445016066705793460267170423065730097629927063954927775866583897541678624828508536407997129151153847865968192762066686764325327625625656730731875198685360744396834473061268387875108831406789441807871714537602221188480952296731256671594003781095053455136561041678339069603308351239284934506053995516327171879947765427017815086069782241457820778651962473136504758095653690093136031935986353808066188677586350945140092867866834864107502396889467772764699275204406490895734600619766145729519186594338046544030211670952092946416409847593471014256389097219506116824149041678595522879014182650422465454050101145254773834047066011513976798364127669012452854615630517925993431276547849005624226204219489312168377508830245616282960755715306512759613166345787401675214622033636756768134087383951938603418776098145115903335592556739615093564744083818759920373101006742722684347856772326032387013174454335706656813646277594937366557979645508538511092958619155519476514638638372058604314810539268764584361206011632600880668720195105927192505395531048690046024426689118582669121833409231198264164772298970349915645809283520001751123273944899849325596749530372213224423183770454684434723293299597184340200057637129910705535851912308953143178759133884992344954631824635740247876451548052317134578176353417234886991906155806701831452347122853843122264151883304842365184145212845589174753966437000269664801099127557602779464415174090061577407155200893121801853084650177006258039554382177025697630547884839133268296005778317551887625017836579248780627511621142733146527590376251424292387037706831804015974942247532627340347513266151593507222648243453875259371418276855654916894748263492630426142241458222647815756719710297261125889876242855934803790191479071699364691721249118114860971202932079246443675013620123390301714432660053570616027464904601485607931399711040534158276312606336196769508411369906448372692683190105569842193407343013287586085163077446078536287431437224709761628119293159522579008658647698778196283366228962115100227453586435431810185412180651873080142149450606979054587938476003303099229159597710991531009843156622783299623404438993766761066460557823754836696412673892970802659760250316842769899857087207895988575388957524216792056712940399070888562753462217824204869680533752882799521304935851168681815169896933135994813313517931903403840860200555861872352107417393964667937287434010918543355620588986695778209546139355168226738255020089801543321061256186166604469260570309988458127360738227492586225549736453947477052778260483116704615113895819880898407287079006875020003896226443267643025940955675761793009593912453425094818437350418954250286246509440508401526229105747038007243180575084705947534942118758661877390684877603603733716938147306123185238153376203839050205103001825601875274750343340404295207218744064797750934962813156746758118800660839635051934586674325339272063183865474355093259391659628347630094092123091996764852922669350094782122687714523199208741116833206268793270333850501294151131465051851729491445918941581775016879013979319429360726549606778379412702108196164826596742625351084319086173919310578906311976413490652458846394971985120939838383898780363360365266299323590144090163243046166936160555639279124467906933439966713546565793093088707940693780168017496446082914859940511791588164320372898621652060887139879437992571393528618519193693391841923401348675324922615716804094610374817070728169390625424135734877433276250344011815658763876479657057010906156711708655929652772082598622304586793346149359574468974245311528053233308208545476802581481696222123040246971291122833751893202768217864882570198174111626439300836898043949138532417302624689115488459465912123529938449108079684437436220786513328702648041731926206370218795749494042776408129346645812352743218597784655140762878182536133536976175202023111881161384171438625873588487947322814856928535441461339735454462448297262708861395627958777567369734833104743863202890173966683076538310472396510248122205287803198083064280056897302902637120785071367235850838858728011768038884123668692333804413775892826544979412174526204327929167065609781568511550298241671070356202415799547604709371356474334767121577340339311187373631136988196208373529368763688124726517330943186322344617170333783125861635137199982823364965396197380492949713734509309006641508303359871516902884780594577516423369034964184925312354040472920688022383720022402076453920806813996741159055004605339701791604081880701109075502962415297037904078795925070503509577760589837434527580995270758563948193447315027930490555505430391504426268320397650796670676496635708267337792778201930275982770583124769267552565878788805740618826039363891434410282802384494503280532753898752271677792542684760883339648045103774602565884878673066865732163121516267589861658793183153198405092006772138563623550215115235757263806848811275910322826831054926273598840443021342238599950597267680150872122317951324511373028887674790887604215450484033324398053441422101649076895988068085219489613083629310225391878743462603456855174476423046165031125247193828238230836520841755884574759278220145432129994690978609121779745891693403447252428443558839491659370349049650567800856157626318094137940593862485002950160354110311985101003084162757036875954499562333974937675303173336995479812705408580362990125605618954091527130455976954618679309432981005427894962935863191796057281054999996836252109623997314051818209848820455200509824798947181385946116413843624789910244034450426815522754272474796148836160421115144853606407889016677513506422505760464364677709140401606829583681571912106727978451291404901465493874299440050187384146266060342393504136767211596098499490634135568714650821820813773345867535097262518550927242873676354659746395147888691725043767201947978489701514154455554287106418637056219227902642358623990439205303287484300536837155956404804120230406304110623084050470653356492246711634544272434025156681367714091639873315571086632031162094328054015199640204899736133421307053655169078125399459964983803002841475656985787965985550279472483713558614033861725662599436015032357622143916698552065529818315139626748685915905209521809774710915071442373593027891108558983733165983068660932057841662215019424413649089257421288408613809224770688024071796664282693979938783452498456744961225526186618831219215917316653981345678715597089139121294310871438353523211286399922471671770813027333136259882637347964709458415375226809639013270469040581186376457437680907993720226097468633127043680325233624152641875640151735727828197134117975040342900419789542477269832432299392428416503339499956689882876081234895061969970877870016060949923074562849868033213194349467068223712577701498563400298771667792393621966469145128224243679812213628192170777836834354254117910860251100000225057031621985705031468511011538490014811447574047222710171823682727746620186058672231451732242701362889943143958841595064961555144826949192554515793363905999212419841986048482909488775477154481551510610807533257212669691399701261721873909432652304697695045801862005559100928378021730749142102271233857572427523026183659759487930241269016124333434212858109402537729672666885568295265814995562397189866690596824454541361113870331477336456238603629677984487893126333921687704324420923565249726960284046197788800216840090204619572441829285380249909438396771634567336118488652341479341123807811345912158710396723918644585351604079027511815001439422221338888534634608107403379457475413783618643421591246860339962594613653882990493313161008811474382281663612747408759080983141155415958997301095322003714449215106150244438990184295937242191506392546469330226330081273861549759258415866996404307989546627537974643314447640336171337597729634918354499684935215064818124590069919996349826604726435300918896367735833987710552694919861931644770512028052851799754267462861719304621083118456944387078667847810545606384556410755183679817584211564576202951529196791319706791793702495166869105320193283013839821149632604021020104452444719067472083137103273285788564628242988024111109110158452284842208888080730574069563033953612755381681184842670838489859277071061036753675573509936733834206419391651043944190225625279313998931294824909717916301849934419294748767306987480085574249806716244901719396396788602687927897816464826820075310845424074716676966567829291947565245214758017283980641808856735891795963535013200550930294216332399056050139236293990395955132968680932496089061508242921535384400667659065918157034902425955914706110861482516799858101597772709419281459450267392231223900109477846665587587653033481255532655943652211970010699131047874890027640375871837947929893560581081287639982486756095579012459313280800706224869574756854600477855449156918115322194293972020704484745823367974449222934484319944207061703195918837180635518860640563378929406766537542879790066434840827406134308331549010888478592314582925449509237876987704839222615742701531846622594979136782057491947972505334594495506855056027168153102280337034167409355947316509091156881982315042043618919845009646979985918510193453383244128027272861129036104245820405522152793212512123408012250932359125819449148846003491803455816211884673975954264149402492528866486453924850110147258567099415927426055174999754063770289534197243488391142358175480075421839621500713595732204767884844722788317642999158689696313435521411409798675384001732219869262153679384769707892670686983981548791528029736438821415156254072966880570513929206169235089577442273986862431308429844083312343667162021622436323590496488018108968980454869081756206939691006528669493393516962434830756643584902983662241996106102842861029353415436179794663534443184476625933501304718887907418507632862257006264957552234823835376842556262688038324852126917822569474043387870222089943536846063352148102109265756114643229413102700733302574984390922512596675148156644402513802442386517489618847070155973851724097549349097036350275373772744334444616748874725282492569320286296381765478475820011704533430725800931782808155170602277944443281820296538841450539199052042671620894848237272585739543465699901167652116345545293617895135046438470064364052663789179060592741674400216405893187152467710767598012722921956478137257635775735574186291500953122625402317322908635165190009761587929201726887410530704233682218984130848762975699695378849986314050796475020457143564026504392698738924652135474033075537093097172243389986748348769975691022353275658259533514232616144234509152406422760605252293409545198866640827719750469997052376894751832605229649613511907872224098009443369416511000983236331034270192988361715888451057397391011483034932021033454241766674060795566100422201948330781688931494401035353393700413440312898622980471455194922758048084637267989375396795169646936798224087977429287703192313354353432342660757116442498348776525595030824935552575676341655906363763329155021641420422336744669963814478284684311904076138887990206510898658724666959139420852324888971985552069124252367410770755257022254631079817101525767011922292647996419271703428059234838417149186328480188385687989728205249761105859558382372136380951021472122894133101311170937116327028970634858812189324249561414823429408739917486396895441582852413756513573288017166475245797497819855081136346808032121266408900575716857741045431097915594604120539365446608260385557056187058137123070442897205535000268541536285783935297164742177868842862166594189188815372094397244324539493447818125776001000603980510482124853419166034640148232762205210425865776816817866362005312748109102491849975290070635178903601072332405134552906028198680273237965557545811748034040048669625185778718385553907342137722225237753226933623355232842001584222878802074262560331956137721080997863257788138674215796148794051417511559732474195087581448354562420835123761592984631641285096264464478856388320333607906185215194952166161704011578951689723139055556625325278420611863461791543576207205370950905655620233631362030830323731152871215707914310270820278104497650151537164958410711916667461898371536858651379993904814941610905931539722475503693651032492008478664214890427313099924213968813959137012170545254674034074954827183225084924698093482866370099172698302133092027324657899615108045239628251715763530698836949999711991243924599370802607487223396591414614732422018523324114625763855867377800556398785545069749480344999839458797758785364997192023133454710273082687522835765958278080422213245861226721444384330880467940728437864027058327262893065357818602351268883586165166309908572659738787733286561945433369474328791125623767586821421428343466596726743300408337574930803642365298444376967948578539773204827273447634387064872300279434879132231678721289953822504726571267551089870327865245277938907064883419717868866374508430494082021385778074440037475125301515062952935527521534510336172099432907804988336990171691784308416222836773783652636553082832349405460541752282031176998886511412801549379617946380111680580215739187961264064532789767524906996023890231544212249805276310078241739002102292833778385949781885730301661575685565319712131372697285304793072226032763341290468128358482302204299643402543437129824301794443772170775017040858630873539242277229863179348507171202054443595818124472969610427733436154210908462157767135790667523029865874381581611208138881389777461041047633904823395811322082316048769260307110658930750357091963758727679508906645295935940144674374669725031786565470656545964120080220146258933666616447697229998866738747595096779884128314492108049741070517836645153536046242191582490113239268894011005019896857318269018337614558432130621164638727474516636177853669821185382054668789787209605794815213221243184675003744657611695207201723037279642318817649280111781258413204337298706540146731462620906983089296866802244428068439995476768601498593531662854892623352369598721148960418177441336367113438898116896410545696438654416159720833587990332251405332042594849909763529489541716292304720832997243447834396193213648525560548928688007916664539765749545078447019530419772754625382016660157300775946219852468413078040462265244318521902379353514582601381215359870653889279041671142769032526765327657759550996258433921928449871310460992994860023101474203101687497577975137501427318304402831434047314580092548533905438787501790615579190787050362758034896370721824763887656446913901564964651973701823678129402157281896511429206594849735626577769029559279499339841546035527668066552831917476329678152397236831158271200748282602504116487892285689667551580072960659493518279660588526196759095725421521159196102497544577699580294010364103461044862008601128635104922047036566477764593593942375981504528244904394038701950244315539772094725309221560188001096797365102537672386833870095366873626186119402033121310096845322896802292560656862089255341149132695622066954853976795462767371459885349125048463125654951083683126503243356354314853112586458994202876589432894334624859616169044513969981412396554871783007847774719082810535921941740751235159993120340141562572248184295326481732533830473152332203074490687437568475031709782107778700401185589242893444934851345877032401049253541410458749216791253053794362930498387559993851321316523912565898807127474451035255323352014214170819856223870747722002672446438966071874679949604247099031309285447262020857654104680040494878326688232612836110420997468751032908213209394369152363736334766668748744198634289487969338240203870167270699009951582599865204183612035062148430194768528175275535060207178563018832497411953834024466313530712257833115269822987099943319805738015337479963295142635573083736698360341596444011729192115271533704384936355845903937726980648185683303400205997838401642491637628468128872958031524728868471956492125222118440913130003077174743738297328551728122855745174273683789510763303177147768743603502776389745878591958757774172232369510090325796276141564157126438439684311487509536023658015981740771054772489882698509994685695869328721295006887127158701237422956737336767517634910951455737282408382128400648954906431099972913441373316911021083403794568801079737529032066945809817367452378455086384602752322894026233626351233145137243134406785642921192766407092723433998009441081891333542129355170726779963317525084793770250323705685539029479525249302869826112346578888575926063694879555669883694835474910330723581488774355972365489196554522767382417254957822720052951127505997891868172284778701586793907604697420309596980028627017847743886908065094895087503348790808898359250032102865454207266799206536486441246334486873696018185029382830587416021379054434285507304279762589584516884330335525548804152658118227064041164635028489366005440844725670621738579214290011272465363869939743175602566946355731684395017679085735894237661353643441971405561127729431845135745186502495128060616910032575385521883092238548243583942579836219148451521203544236229076523113765550581345332351508308424443482635837656615469556561103946200291385304086231274794643114928162018012059509226166800522127292407864303813421603665559187240393105998388622321383608950889153321589826714971030781485609787649074502556775168424519851561728839461019800827260004733267600988905029272010273022096138568354142051493370247856662911684365069413052704405222724932615044279206202126520357811559377612201988006121677663249613991478355202238945072446510344748379418052602746909681110202972012065310488277217624211140941957678948065515899869638410095461102267507741708103005891031516003817987475591828817255579676296072510791848345382823027976719309921141735098283478003112181711250468598748555765616162630116680637126624283045652822535654235319066699112360108755637405054648245541551374463506503768123482356694540464818812450693826818239556002862759981708566836585570517854710187495057073858188778916920831011290518583803624259219678819919782438965277139606133780255955674206646212363632184830476973453641382512035344645702021422497091100244528355705843256079629373602705894201176446309521350773304238395740093483600676329245068878526893417653230634620148544836133954941547764588994104050696663689508808095228769353619535143935578295176920225450495824178575830818778393902661323290560101786404528404700417286663257868053406618153319866839275839676891613167793870816886787536908415457584231387691633507740417018162404724845671945915475711890733372925958204233676805720973810937208992425988771561139510918929782263006440364380997766952046713888321670343527391407002971515316121065853090662780621370252146178525471017704356527309246072471937634930108853024567348290494012761876473819378495670756240176285670436913162365403563238994925938955046783567389165704990106660755676138984901819383638103734320738046079543547131231500820338868635365870855750771399852059051005659621089310067326426290824888384042218299459979000073442464444517399518127608998570016133203215806159883628867647259429488176211215978700934653053103946975092148457774907740970451865622121705400365883101088219750139871102400428199123868816469033413416361380790723202679279733233651833934464359649523410331140835138419892032401715135629523738098082257987338956353848381645133589935998775387370391057558736658470638279258103504152963448774199384372981239259025992081742146237055436500389993874647240596719271852297169284929311902921998846298260364626479349882836179349446402631395282620719069415695864296255754531264284444101466819382728412014717562460430174492466623377633362570133703778469293828495800392216900759028007516270209662416090326959100412402794987110497744257992024130937788749392228900742290938194724217007342986484440353719461668250747948147949273421194665579059315206536609544334436086580151252521234725185840781483944943776392298568527076445811132635432091306307853367095216086986424001842419435914524771095871017828815350027575712811359248915970927188810509327280220658013519444511263370398881851541702373005704477670105939807411422550284997025464185784950749319286423547893552552874417021903136696501246929505615851295738326619485384175295766268964143481890402275126123397018049842457217649575651609023525107944238718205068791991184167079043499850144684184212998417068818927883716463084535864800264843459659722025533355998855178106008625419331877387181592769565854127090120966248641616647478090433251077738282727960494082523584751337884199257620395135041271594845963221079056294872698925791053814950411127219187820063552878347690760683163895751484451706852551860938969099765827565922655794927296016569167135570703509683935804416240483495657229226853475108729476787037353306521923935195404636176562561926631922053887839351255206094789905073984280040400334269497819165673851919291416175482233736465610157974517575865911626634094575482022613395579355758222600335002342007999734997064042983386168459457164927146450034077910485683094741349900462627437544762004568976310510672630372149751487487058983594740303140224915454191621990644135014723401876528992386921913372019432451182105989393598720167398195251642637602699204122486452244960214930154013015881810040624304130983033420048672843494423323632803732192510452354080200117675506444930021249206177052616304230076213054910859958140873781938791760525588403197410279894152745625469972458878800073923055979489809286531849710091704030685806995163627098178067085999576650830691029331621133953031262345619080640571686971126194798019755620182734427400191207147326603034059332576832591176168603230096521967356214799205866775211458388642774373525984324953727194294133542322254265346580410283373793726438117149685474863993700916806208754738697732725581068353147821514369416068608194113780111901052244444540523661504901923558856486168211248968512575178331838130526527094538872648065226344970357670110432390548753574013112578224031993709276869849578363232450146594030117707919370904207407730695402118991492514820451736624179204522448751913754770606047155134460072529641780076804786866125896105141207768681892777385320552503112348928606805649173920427522337943383236627518292209274070694950391072925140795231826422642367370480049072226544089372549174540338756400198833401163651423399407079048339284161367807918084826425317296511947618127722726125991651800210157250676738227345611735383182632128230080191290395812568377665082573022961563085204825234239134734372154883227206132323538470939755998454352216649419237253555838328654751844302171935138027948361517615441385092342525069930990610729508572077235744690239656005883053342509922083261511186106719881515767518000750645652810797789326504993059881459257693248447056363924618248975464758489256568316478074614647382979747509783573388823445930920605404421331274742904976230895696652265567232698850118123822434468624969503319174765331069195103190649112558479819928190704501154538567858201041659556784594817894019127519017688902139757685734031963337240410990989603788681914282777839537675202332362185527386975025095209179932867313234331935065303039929528705101672073774304174502493743805900103670330400126283972480299721089102524890028326566105761093611710109680857517805346723639519259875095547674480478298274882976957757618544503163519147723204648865389085426090671691260315192087510417722716980620488422434806763151798036050224032898736736047280025509096529245856678948098448674101191015313626948828513194265064075064223853597753270678069990233309271969658820392317501357011519746053804152200553282615397060662904983812780106187386955566490605850978282607750690775496443316960331672100263365396196638622481994178856850361492853295745620868353699241292874423491847451518188803248243403617982060128454257338281427049762643344127442910196672030428223136678678563707986290517886168128080941550654037684093630259747093720190857807105890925361890581616063587675153228183429821236535897145510825134986724957867176948503474426906121814864294579426076632729038280876375965301025152886608132700910888826426784576741924608519931365414581219945602394011479388605428993438605520089328831114889694966766115511090844575722554833871151348891079319367425734356906042054329212236027108339216425159575125010329023217649882278105410563051019596534884563297101543372990917567159484356664944578154025987789588245361144900511749939322776290636546721083702418438110301218104733365358210271896877018182774012321499268587823862321857832704277588832912696343999922248883638561892224144525101974818766671014742792059738543985562203670961478300585811519889729428217882811194428752914487765994182904287079267761317761627903760807750922809189745577180096155984904225345350688828425300427570805068978925037667183850865921457891103554379325137569318683432655899627617554696101976075769301090891298030627506047563966701268085899813480975674537236236244188220161937683688761697407050654625074157807655207415597455703421010965542516777952869257307519315872276244556503073632967817561358033859168126291040205645318274982153779159646421123887074938901457835710919591893252773996673772105922663509994836755837521066664267120644060334008524204181016055950670199007740095833520916652399918602339962092385877124446649715895077320961715063042149340963094264767499646481390270953270775847601813142589266537801570693751617680144405498614752660257687528614467633667319284632689053277746107840898719497828118431352426269149283678789508942742452308619133136304227463861698687818844272068251602370025410751735117956415084542325587364929938092691074330874898436460039379923476814979193186747241194593122731358142053311896250564218919113957024791342565658131455257355402484498645462868582955327554758590637194411425503955388255347114833927834263038452993322406119639699830488492340010707121862279192962447458589146944892719657966235985770137708821679655190692496331187900700220378805822273144191434038514940360526297002788987493297536649184579699871015812796586586688334586685211691964177855667177776771118461658564734575512103449133726875469185206348095354060735361221764265462902402369932261032984204431618483319004392554294298800188511774872149036485278575049351499298992976002186195883729181501364477564745766970859537393242842168822565902274670827865865376206726195235582968709914244751977143348105377508419159056408022926804615793693884824387350574911265832265644548008792279773315711796364876527350516598192894061588793079041415830765369298561568431309002456002120256025688092082540263338063177738573643837803225295090853778649486788545026300276748059937370207437958076899843712344645129247709151299928514100311312105711700039012038596126424807739417710273810474893662262261192787334070445667328031721971366220588000169717604401214568692182798882844683405819484087166268852173192990126481523332961530289559358821915296584456539300798401234443292990331898283851846365878532664616384846876564360043796656582207475819041517721659035837385895481250957818568479112173352590858560199520116010039110343218442485087692028413460353128745590443752577035199313913219178133279314395410249665009067436542901874323507858045024265784658106168953413292505200983132273682791922805779783277969792959300804178359900495805110960470116117376633067136429035732043864756350991665688451104506842554153026249753141781451127298202947229052542467098279275080300933067433127626820658945624574298079007497264002788450384882502339594811214272788039624763497120802853864558728359250362568748335518174639021875266133906018437973581889321657624995465308723555203484649319452343507614772972649209723212436925011304669961921634614696795107215994090773175036322280766406444914776008451982159280404722475162470182900335685905807382414487438408412021315586069721888292962836269069542953651209633527247700729560473846058030446236292563620354976750731939200051601615342603408885156911599901165252468345782974502521308930570196634330030423712041013170834439181014302753231045913611860398335222930337014466307312327260296043428015166934771891604569695265070948709916602033478245837281425506588200008141331689633596788101876822291491382267350158673640881820138918207695944536494972373191039836771239507105040356877003604631715739898092729764699633895552936684711935876164728846311678784435946507521484094413841136582340352686355178104519880928434432455811957845661123622976894136139063304377049931309351758851876340940891991093110994775255152723186535219750730277500450496473523782538691734507225357006835517536363151286404680983117805001020397735299307771508899922995557115099154127914080396990884832582039783111555942675030052101955423961548691770368468033469787508431074728431512041338183021217218402045536875435398077482992636973986179361542684388208163258644305464057697210497861893889886904000317337566480238959671632345920079944655687124408699038604938180902788641100075707777492938016710635057528209083551978754783565711749489159941098186794801524322473528160030936417230527750569753252075176581108180537839751458139975053543996752772919675985051372192805951702621313778757025405328520161719168647684631257778768977548277562363266331896003918861142825641638520263581782354962440908747693274064849552452689814107432959457024228535175835916961622344344839212462567288114739311757612863670927451218186028007154207440453300985743969819042335310846628776490638869241192323018683867793661113683079657067415783824362395314312961077795812491728364585621346110705950058191415051963933177590051027987199389291854573518296598337457432301175361924359288058343952061032390346087838012436340989139399740525692766344325465671005112938654760105811848130019295899683799338138750355612624061199755016120473817972291380994186668845086832093497934919537677953859688419528356658152348179058709598022498331211242424063458273174160154171726139349233053542343449440393388327158037057529559136633264843525053866043383327918250123418597785189709487371817400342043737070934605981167013919768084250787742243351981904901579362304671821657684040456164841944583240705852525029438900777129881478393557477224460424342006078919232058621179016995267872216027235870989447655676940958602372900111792149158089543756179053924889102227095906001277591039094910718262432513883657817028111198053047140309753438522984663806523571855340542652668316664151864847041301724712679271797282014945201122836707582456100945676075786867211573708853449280972968923312887997089050049254887490290512541210748546707377570252631865593432073681783705521597994739324874547006154233993359894523824209843887428078820318448236206739108709765159249187260851161007725026744038642234355435132436039882236747489199475233861132217402297835647593818415762858989236078246531486737996489620683450356745585577563968994923074324690798680487937788640427247111483513441266875070406417017705740267405482202862401811081923200487875947640427861469211704983659792441176000706600685286140353829777615909580574611110643098940127984898709920085841863498383065651648646483761534334055447231871335647400405360632468517909930064091449648345765287620376268263611842951963550201069088884359969703688079679413568495620214036072012994334424489384990561845874016739347526950224378943036711980727367621717053707846136488817328209383868620454772809752109295761738159441406664965464105489143008612358376980688781533787756277225875007956408630749107723729509563156255977745068748311024506783796828105215086721243202055325876800865734360801284385348934313462801461895652751405469306321844932478324977032569390250718868373631473421593826428948902355551854722957554426610457840849667364090109300393160354053291819441135202485593886479046667162817448743079736561431479879747989015608342674128570495384907606069186800014758633978049584409213276058661212391752174806305423940495917190461063798948570788539016433324603465482315048728185956931074130897467577649080397456731308467863415624075526808783927461186980523552442464714734951470499621755814118536357228526421266664926697421302352599309524044300648598115277651741897206833479671784962631379093942781505377176157365306047443787297405311182949555144164526899689797819639937175248311380950336203181789171155697103579004366095477680178450605688706470239488481168051710960600432882863018188248547050036550226183362722779917163453036814998320255349071830468643449098535504753398047357840541008085103038271058617566688175469662874922365617512674247839509170131191586069490587723799680806568058748646492010501754685969683893529810679972264971577470099502813351741584730933331086618201765824919395158021487791819664245402187456385438971348510581478348001762473774029426776878218722893390761160229099506753013800574728157328144580222043174287296436323742158013738315499053440246782007549356043899432822386905722873294171111046218779122434810773804161411219191698326068094539128334116927983701545445205555513270540216582146632857011986295550472322243408299750642188832929897107176477499714326086879561951537577668407279917460843728197475889651409846654479318686136601472978886628556634663547849528271074793404619938315009977102500306670125372483538984491975473297692789737082620997428033922620989003176104911688154326232383896915300656748206596945814629507540660926679815231035671537578977508687232772925660473956971366102575522744252271487553731825267256909309325787671830254528777063142762147850193742001499964268879169703560498518421530366062533676636727756089890270421949716143836684454410860962020306402681194939337981609108658292285100279099120464451978742201470722580754617939377983027269918717337621263046417524137527230129820884321869023027319911146180118784550760201883940651491854718130114703865381055621996380943124595346828602322836992709697326862588523267464037884672380325991776518740728634333333627297144694390423242567712757727890092598553420791610334224881221054852727135488317380251490567114319072034957159891669727989555353685375154002601160298188925250340084624041801103947867933185023584617700448087905170496376077323733536456399853272431123912106187813815244773914410099287242519074947701490577602061621733305996093603627335770439761202600681727232409475497302968368506673238169263733913954906403047715286588784594736347795056297867719360775715012065580198846360049956599664860106465274480491137103850621122733672471534450192912504869668798048408349800350232077125853794086567498988974146020126003607997059900542838528179487898905516601099420037061487521084023847071305141465712393177674665739185358633293628388702692903254847721915322369196644543289426252714978650162741169634502344732881306681739700965764595043387763614332179310602647406787794364437471849771519022449768399311632342307152481061757844048070256092418033110643669129610313684234523167468685652074047504082106519069449513368480202765309866819253448563750927181613409978352927256117960704062279090689813015399544713214556723905811256993672587551635013766987327459615341537641867971621682393418752120315591140519491726911578847358145815682057301935174558925578292880432720094521416305852512002272062045688648556486259191877546121756296276355342371004879343736064131342221399656722728760703767401560973108474850932654028130759886261387775888871088625953318413629815846357127630932161467969658731873753536561898019784809321517308544653621309152821741342917343927989254199212716153110427014041924761021825474836561474144758720926960736699127456479212107035143134160783840098103111287756208602146200528025711121504510825975829808269001092277252202577817476183136109466906794142669163165272816644863460285997067220574609964070188043626620906403305544271018100309605566885623877738339812034415695900287732738945024922166792605433201491326066299346892122423230300410272866306321044188848375519478464230882355724800648940886206122507643468988706451651057281175801722461448351646963419962711819825988473548273198404341538776784454582135332396969777546232635878870580862425526798766860323686944009068813667764501118965264969043943666758120844483177318879747486092186766492040110853784882868490654121762886488626001425778347790251316196396047018837439916854664862722901677179056396454085043280088759205856807494039648592183337177541135777932616673235731791226625087746533248928396324736363618822757334312945539697147162616616350257207691962994772820186172620597867676996952743894674688804746038029687530906530649675610340673065587575932178328769558001563634833984066185826103759841331700232673020573020383683128498222795133141646318183109345093257281851858963554257108884969246129161493117483341194476283359123721920713812281133724328329433767869462040077299411556287462208152980026123663519012997601661767553089021551682593275588938210500817705151122026382978167192463160254661322117102829136130355634375795504923332588306559455427813811728470230414004312913176885576768092664495956439617864618002151402975845277215656204743583062382199241934866858732012544484709274332812046209059385450857779405651362578940557856975275410986825345207324158403242222271363725866384556439791420611722980174598070051694896388672447455896070625354370823908214433227117877356389613863118224414023201893904512848434978298524102482391879485302632899831765224707389331743845627395163214589945376441933460991689117835412308384142727568730570656669266552909974140588438126457032847022423714870606846699704569860666251524690656384798006155222262314300775096273523911230244200944235662759508234572461998006573162114661115125140518501599961542830173403360040514159129599706189837408876882742233131278540467991954468647234468465909958015358139103305864290972119801599472781939966075649936443737840406645198861005398228042280297280947070467427322889116329240128048828356956400142560801469197244367121083003442509861053725625697030363682180215236311938902883320934521904624682717820669946815702706709971496439625171005354718638074943394950006577490096567026550635022220067796244882598763747669663115393299470237363935699542855616840113497804242609760800247423179163747446592638443956372111591832811269132443066746408091226146493851929204728044610517376386593007734715444218687772928551666915597651461946150409221681629797690039543440448320949685264680327369217813305863820242037643117531211511950337261256677016234633332787734541871154716679465165984222597735499438602191042358824820031542571949141137121187659769022636235655468940827613960103808087309078674764945819182946304303828956483374457756278291737756063567716867859623541596105326588686679878955915358480026625396884147922038772816483729457180314124580062742427335764897502240105454461548891430125428578184489065969511484808566443006949171850244294009971978025648338031435605913298395118425114439075123205782186580429647675950719869723273169765256443382218955637334790619138370845989989349118236043525804866221707951790430786897862820531776147507032960889020280853518925145888869088744277160424783139751399011998518200683481497209758866453389076143260617948945349779053885679534795273712018695608510051710261824561572254074183392400205941362058228273567397405503088682396753238133415002911976986501728375263879890439371002369160327677784272271806453764089128665493912652753359793618698281049834331420297507297454128181703147430530504985597445641173957296814766260016259941776862719284027978198686657573107113987637756240073341931247275840900896130642207851543321736324656247853789886092608994039519213990824099143843739003082640095553533607746946665219757278403220642957045988370331326159936368283803259111927684373390702290006046935708583198336152931620252978041774608752984256357489093903695159371787859029044806574468053069472908365078958439872639021577222439351400176335045689563713680212013002321116788041794759180117105268668701002636168566418532980122051402702105766165115957033275061489440136276815693024991661368333844286950055582898414579196112366399248869327527942713091515130090313477713114925410198500307877203506579857904623947445451503261072196227915752659374147683419016071593663204828243253070100991673977841707863565984750730961628374035913741461057667549304848777433467722242594526753185521303242974474254497004896454390195533390581094486783409094431494887378178520400578135636552243268243161272036907842946410373970124730022157721898955214014336939521623578216511165281489708948894514567814828690353560918801446064582241300223522883948554134637491420742036603467564225213514373427258366990147797313551435929815377962868174147550580523887122862820930801346520199299154600441485399427393164168437765104814423542933726944517372736329063257195402206810400928275781614012822626703077072012414325419999756289062586105878605876112376214569985998376705228786972862770815425640343935718432678827101613443002889820855338723944213337941115783201674940652884385127238122843773901342179490882446126551487545595545822348992178834013570272297735688391218877534839759877571210097340842654491689098335858084282270308371404380255948654855822446479268436221249853362203201257118169849376404169583475212371628540272871730708611855426278453333147411693999794537190740874196252799492769105439975715423886726232520960737100749082140967106555257887947412619307881256558788891552218570448169339276219641230395360091239567992573617444112480151513267451255399740915122190136969574704117151682818962920742003614344892423194789766243312176578167640624655248865564629834661978245869072697948164924553397637522986943962787283162385907780489384769274056030453385042197836031264607603458889635331134613114539092806679999368080935150372022791687884633483230365097555080586926589836073730092832883181024858181183154659266066507803734622507185897808936649078021291865635501903546735052626505604074674228127985169801875802864092788064213374464131088103861814217403551635357862200613571569762314317735994178831245829547237033189406184668877179533379860670466061433059277058728369708616332833732459660455184521929498251860136445828321842098934912718253948299346114846774891265508726799958926357711171124144057772916605894082817236479145100204782978582277046706739965610834242235190988990348930462092586111118593502467646672687214265220248099344888148614305751303899798227540400257740083327829687937941045946457095243375542001074977837548652297859634873718033475719978258774741643815261792262562093653063108087468136549654674217034522213707310608385610976499833388438722178598884255512128490273300381145339416798830512250746156480037329683321037428661236998469285146365757314864104151500985711203305320428332498684225611619395257523172571080231640783114372751934251259121451732837944912721424460875712577572214740077696240254271917458139278209639293374277569322878443361051211728709095138430481828573901144220324933042945999012097638190049429683816883004125569919055169188598616423950438871992786479074668692626167396245744810525789168740445101408715990067305412825647554971221640966045286466536043004699860628680140129735457902619968628050441821181613155668702946446961478853664099249828508198746663069613982694686670595170064552188342977014173198484720754379024626035480645023448625682726648182668112109365794241343901232429180693434566823229417397097320865133895664771967183816391062120023235113665263432469323271672404660721714790348518144860779636466036772968377396298452266786282430410422980795845795304963846428063046163861695348921084156124263341153658367716829736521907259123980450722611688025523908623196606138928140797110940072312199692661455513926426474933619868583774626852721229299782077839456313594612647897839880172641295997951615979856286595471811453615185762080607100817865361963957424464059723575022583214821113761231992710589074158541249151587977459659103833259323067896511740402486686255692605071194686146335994029163677736667292132014236006771809978934081258672385383861617682315628828776144496956040102097510805517328047560996081678209883839089874458840632396239291689575604146301789944760869678970895214148141965274873973136238587931957746463765868844927742841207320700997595218595114070058194235194822605787542211566478878945182351710629634217819883781288460001852516129679520072575341213224750459000051651463561241769171292991293819352269003331950555113659786517431551454056691773419622061541098259000947550040876014818264220505479578100138148236359877948657279525307075579094209040394703640019705747001743794170067305603599514439936471425637932076297030758532939150478442230473444146555559834496489908035257041702749637400249304065289307858764660272806628387779995115950658159719417473699976225083332377997667631088239971469155950859621973030439796839063901951059250453659008384093120096367252669825867973114124952368223863446330351470585835911779677348361064283296115381768399783387474901943207106301715619861983607984786534159053248987552992612581201000085652753507170098651045848503825099328567969445264440590872205151235982280742446760541717894355585271581667852614590290882805038161607755614785574251677608965380293617479308822409172923291702840891903244287227783439425023638539994090096116182675482297658084897167968592303167197093346570958643970348557888278885482573854359142546449637336271257829392021146672705455356369787744980968340916921985842457853815320834855901649454027592445305241680231964100736701388166753457335738737998305451439343978131091315653461973593325125911613518705910600976935791051644719731313669899771567797817116933793756066740513951370487514605104720040524175087999887093689908973280057583869025652485110356249576426609968542987364877856014907663725161364029865139237592913752924947776552344122893291884249520992188214356478957262700011982347362858665824484115138419773213251099813254893222356470396743648193469574560572181458896472655616801873944945102768609956262596960385232685137403207648686967117043704662082137193914991378069792401826070716188930576377594447463983263023835137816080147657066497842575569245998635803861629388550483591810168709129217546040487726679087917592168087958752035785339964168749921885061399614499412005119526290809241150923110332293021265011694496693488358841839296958238052377872134858745642203672677984045034478016594149801899842431690142295682909361854051295835668414134167832306603210097674554906897047564405983154110977474055434959393906517360782771114428259912491465541002848162798744627344865809763925364405170520649738840041000462488834040401900306552558861492686621887705982167724042845969011394646683792397350138921068567579937775187248903883914447787389332688614046112454654459182521879507678274513050927311720792908016992383733365149168292225287944064787515551395146592318805936334569457285400819215491107299499935689783270085449904694078329625551031193712285003576427482043741604709985624721488825505556914094544747261418057719775912168479076681014782531776944696298367816450965569381820304946809997947040043427093822797460896443324847582892564426503822369000182632773183813421868520085157029993370769165854769475856556221536878380952042245338894962540546220000513723535947637806627532087296984839327950106493075605484331798774606266013865590929068956938295786835560858609250900435094245264248505149593529339651734859019543585130771219592427685756102562088168325322066042440915626415607026447058739963614305609097073815316022732069941669158668384586129030384103529259435473987355216767350321059453508043424361641136396245304482933872762700433890039862594801208050134544207961641016374094153112862428901508463140448501573504597625184004984916290854928694925195616509016259793511710400126716858309056882572191871840228623390161088023313620332750928701824235888359183418540730923156210756070732247238788430193094427441612088078772411752329664871738709242757240481245698605974219859072572885235743208120961930322037863752390742747938081677424172533660619488428933333432607005778994746779737180272708185401853607613002600875320168135985940551383218008123586266764061892523916627807128433815282369665136330282239789852701886451279930947717430799903233225473408067680634846522843295812530781602096564402508483916714043817241223025832184202086878360316474122729024016879929674559339584772119638808592642464259389481586132967414079546642562424695916849044325668948906874037238055185955531033585461116423989199529317199382381590414130448486610916427443801837222836836420507625743816493348557047356695310430819775675246854542900923297625738757895747993234063697226118373771202206126929675181210086478314906146204141387274806679582451267598528205298131542733782403527790436017231496343680410807912132280536592675854504557664718781908887282480864687028327771860311615633076362202868378841363104973365335978426354561769027573042837390598008081252127997436132683458686097098659758496794355150000296515638724516108614686925485466670291955452959830144613120987655803784916729922814320353011732742372333488202701894878250408880871173062114244275336630113841220742173412943981219762375629886171509949895801998975156603123404011669051936678126820180983268130698196082029261978086276495466686672491577561947486430172600565294758766049234909963382279956869766641505703221534469606208045159633932790987734714780892503344315645224001918853612387580948623007278707263881592438846705975442460974104955161086525261283967918004818240682085277169480794574679031314857711351829758561961680906585949909299145473830181288361092621643194603501768931883174963588615947170765761833808854568802039852454271693436922165655269537592920797900584188274704245711317715158043622086616037299203079395583118496528405927639798399162777597473562171034441403058007440655295657288058965199252203311026337205583119549290190430276538143709243287590364146202186452241513105651879025897207680685295737291626925650939843591870779047650174004453428645229454970224065233836914183145208761812515062645449243584067100634245317963121732186458003099392108807521742962831021812173055147403493361325787764456561428186634249309596844418117222525793957594821090916801630343485025515916246234616813478108826299377872885071021301827845182100543954819851825650151815930662670673012307847009190451870290990227626157679391322937470724088848101599198459305059829794414407829250095259928915212587405397985641064283343744588814318449133116162216310313737447226993286498542520142555320692685694259870725710446878856413614150336722843388071426814193885553751366188643532393189491963798284374859364671196959593716350281496166155383314571479627795262110477018429492039420386115073361811943708662138217715324237948025666138838849961467941774009230784942982744620468338884108889539571814556695916057493990743638106905815035920445527591910902163332983061325024340497363481969649883145782804328176367886730418644820658646922151642896159035637677518506469459604394613061853090825029370306812117714332317589094016478819158063010855275716458815888131515475435941230262008211856472981660076081817790192798157622047739822296570486872450039458349617753819711561919349237252991063554004707169227398005517577656862759935917435615232809301963333902474083912934529035167280778154290523062738167360516271057268611810242649057339696072877400423397446323611146961904538844945035436895996464647668618884645572456894656623240808535327688427703988496959441576727733129771492376510963037210199416172089394223035820877622354172609853312739700634403223337495213341573139691464698218461730294058932825234431554749941707724069265817096262907599928853654767223371492769950589802875506846676488837643591723695341233809997636972601066720813204637781897765037213848556088524363076613175251698933614316562791615768663823871694678629729529403118766540654858430636048839889227118988536822822133370356390834684743330360688364596746298673931767875754118148721003538958983265680104892557344295715568195877727801109679388705577155610496205290264092657450247600674017404106927659286580352151094703396221273541841279307056367492316582457244324087479107866150864601655915479996268206341567013498182318842881539538578672368700632829324922024795527711767250179565442339484106496545731995125656296947958868958376082830820930464155132559831317536127944230033780384397978312416036834478790052403179934143585043848333716227487337620024348454567106616325712974270605433037776689552849248204896404847569245158473828290120795720822444635539410601765794155746964234410148832351870456461982123251104808236500814637136996954263495100664218691372096923981527399124824229286505833196758892523090023077091175078143834825305353930156821830153321040756515080298595366850660809301654662980872244432484317583185117595692808274918799306917043491814129933941034638773814668163826281282748588723156088023398089524583824736221306682064335561608987700733806593709028872165154614964732954507731754781080541956791133562917128830523471871948952856035888146908608540049056256906172466977524568067506507285001360181723968867653239088684432809035367755047503197636804690489311970832427351877858505729781948401329997891445213742798036238547328271757671231752703386196020313385305046927796639873887209253654274062828000266886111781744513155782337394256132904273899131331066234750371356074214022660584180677300151282999012585151496966328892038592936354743795053366028569890860478532280836995185355606123733532817371922239789246317211993306919787234138478718180594809241138737552978164663548893834520188021096567850280905557858279341915686601603879424225301524616706614327464811244679740128415845953470497008105413293655657247314511674497330506599214600884019033456986014699925744788374309057690995884158760892070253307114181699413325420297176304919790726068053093525139038913580853813001086641466465563302956405846528379403371694192839875076756756615701777882669435416738454251258657618065182114150422451948823435223206044360239552428478379497304077559749915501402505221245505701556602112540813331245376916232166691389723672962187069499004470708987746643525548661535502771197969522066358907864317116665578248998481857196019868688327574837976113268277359130140562250748926572326391840324681173787436752537381595483601854912173977267488788598249871420449375345337090816870433454657547586413445281406075347086852804791448930173765619948379962649655452654618289343223499187389242132388837892697696352061941885289461664699664968968964608159467434662630592156432747285410925369396038008785168935630980864090403147273408445684284518092697724963647418713980616721048748244846060755133133726454417984523531668818632613840379976577532006568540251307431016873893134526146834368150137270981879958173882352345332755056503228800938588087240244038829714914938172154205590184043351875800557730968096063009875338657849930250583432226765500310353367134839459531234902612824806629534125334925020605142420699293438699997710367539121284169006356552830130799076080437915220327395505074992139431560348550845957323714879298817778500463887089156035680902067710809420566736806080005029208861124710664125694304001597073461043785841685309257549571438457830287302793298153038782384210660531785767157339269457529614487473818383207855289030016898230561446499466497066653193789957645345198456757253965723080493287031321326180798780257372448991280928445287052125949720242587765312868581576825866342476379800493059758810846627792222972652573235424258746405289392552608587437724276936764724885182929516212269149555007833660025028548083171432085760169049696741198265043409351426103518638808007238738506209352584421237414748448281787483916914032533964822536521479791878750285525143731564572475345089872500639559501295322484709562718455666866012307791520766086819580902962410569018453115113568987228503498553018772143835443718628886002873784811332769456553368728137532236977286780364409139362107006003498534409965075507615758373204779122340079094514500176176798708525788318553125952387981640753586148846368177729554448288614317069952630398746537428035364506928528443905173799688767598804138301338847436078987249306509635329391488958191162816890909337204339678317680765918108152679889655606971664874898886866812029214094489676249384796833249329021253913183695854180322605116924581665056755551677142390650475830852291199372788412452999778468345853814438480005125211738327560109692506664083495348633520442052304198228009386129441094249244748904583308797720798013494111346964852089200423129927316853327887422730571323744565708671264535302747950504608720746625929055952611970836520828054657193724536089073351675877973769839704713675573937996962203410196572746883370579705877145675788916387861000914013475257643111482769890266986241874620084234233064284076304495035710493366311698141496340324799724220408259868390681425555916035430124146920192986817679501390300211781591781392514773849070372616272732655819747882230888757346429038831295116905830008537251678355547438667386108395581023474565404943353975470439732228128558063405167028297600418303651625082381810556681076693343434332765492787553185414708171529589647659883510021283370902259675861594219462114682024878362400997191719437449042347078486160842873870699566699980045064365858028115368962652201845841844568704295259629023546167675598893563717259466775003017943773560664556989359504925591497306098835167447915013423405559352904781955656187420541208494069395287220254116716733011183877406103046615525878488541585112278856982839937288292791440142644623836988823810860242664478054160534827148651855756973472266737289054123301412778504472399653612496837223484239270087259084970998977008037858611153560741652442536083165267114469173074436451863131680497755746060737444503451559073745068986257009383456721874060063938012227522042941340052589977988933686656465628943099096614214067746527159633024314231300603547100113515802813729899143541033949884420244109638445160931575808000947906926846031380972176583733802702570337361200255191850570136490098991605181003046472193464553090970826643295147736499964286338571447111698358332776816094188907343983237607156009804995173474810549324825528684907186609455692365393854024856720838693303305887448486670658620532620168226773200800408383352454431867835597097827834425461246184166320436954578189761056440217091962113049033096844034999064703886300567726784285770025855603244353990046495665436390363335980171536588177142389773297175638080724517366610293419506604983219072466273326320351520525879045315618278900303648977570562074354311515949023035124901297143559433159344526988225106732046618975791892188764682402142253427294550060166204170893211636153391264384986567752663340047522894237688393559481484945291322522964913881329819748798507924627706999622928827669791823900900592684065337231830702189946250967052700767079263273489899253775765139670258875973184454721990528191632991008644257950079026323919066521637076177171899780585152211567269598381437755433614081387246884365535251295476804648101921082252518607012031316463722372411347542348591421645689811374342511679711783258826648021997482943440419594151912585557375253545170089757944123356114842675612185366499077121440659750454493909189881954466493903495690709663475418407778761643987383876895491440134164825700492716861757553026815513187224242770020426238244279697911156377953136591704062989767801148143952942531947705247935685216346868335339414226588966077891476629952726838987872788073813511651605034684000844417759835110356978026530188222548583600238940844673649204228979402209787878556780789658913198364314125357644282059822120503685615826753371494682183893024516080736882819769999568741896154070459869512317603945731028027002125176522290886293859410454673452123093187944063368069672619712220821508205060435483693889262943802447142518261830422760401728434815779917744590836295918291520641824292494702829612743192276758893499652875836394759333340638058573776371706057721927270977286369308675166271734918720298425471042786500543118822145180270451080144747765086167336288138330419735030905921331298985404600985108676632652861947300673895558341538655605118166886644789932125399096738017119200620910911258301036966882047263522213456025432320157623632887128584843398117809958691216329272084549154168756826843364017128641790625849483383256572006615528639565114230952002780513292257242212436250478456349904328396213601496903421211687655821848792750408963246939080832266278325902665597263044466796298910073919761556379113739160775339332996109781748272886526715355261612772506117913949536698402846045033896497202983702021341117128087446816873964927022052602305929567475773708961288395490089913330791938837133198131024435306542680381096468352796652567268672621225017354848648565570902013510964110321867412960875990313456664190524428408915368744641091476322057977012518309862066282619228586839257656711068728606869246403186862530937214217190708080534281419867284162966858866907078155368779473849259766237648936054618734554127305987584328610754515801018337536278097159319635074866492150408925649840532633137693270497275776110418559488885660576443147985239003816315677494865634381856899712178387292718618018143978847971349743046551133417406642908332913105998502249914607641705204293568153400325514512092448658028286613188048962311115885490272864764256875631529815568865894199913269822332006462150077131215407955979464340743996534351687918956102916461606108056434963424680496335059847035493317350407469035644203572231883114278452229999213509853461403939196956108687392908492845990939536802371883517511922992888255788254339575164656342109032777186554438719535521783405969098002744401929085048843971579931920078561402193395718976899758258297463985878154921472033250656789333183732405464833961095777910711127046078235331297758719560430416524309699282447235679183100701486413000983735318085505210497152349541988116245211224918507092383161204490638009398823211854532525620994713017072456771099655629913957624646312896624323728177193510490238594439163216601829537284255432316839555212513708782343525956503977226782300771576959639227060037035247143575200478508069237501651616287898521488604442358733275228872600629804459837099858691236600710936889941930252346691245313452445812717102656272824250263699279231164829608945635432133590718315920548427349800945142684898131950504205039057248349905463725803116692752485425895640391729721900661512590770778149164949469243622969414933363014820296015858947045175933801121856001702993034783039620736837915850104822457472601683825856162992768694262623783847235560359245748883613966280201573800879765663708388019902313239765305796561064811992356261946665345556329349673133700351231611035417678009791824507738087812943831089853145557131619936704249802984627298556317998505211831731811476535444898572977627481860479749067710861290870911161739212874829173907885453799838242865420754201335220007584377014016085862612368897759575774680614138115695015488590429078380259835838380069071994129870594995742661272384501671055851903448086321539654724983383308050321973037893504197466656860553041118064778377361050202557323649853251573949231122504643455335864278176757549128611713193889304924967487641136421439704115613411191197762884838736440097242269882240908261160290384395991554824772226401457722602009537091014743536550123844899110136321992359926888729066723670469072415997890938552531850056953578367318491228793240899916981061167833041148776536354148755822385084380385071134189557899187103343041470145952280291878212505555145122182337434379889927579291157247548163226478358638763386889410574249430367019055255976306813065383590004758787648709642972311649101118237464373495519324054369938122087465108206652513140019290645663839882343437415837385889311988567463419224100478620501827905849253402615103320104641240325399719345277191341912441185683482090531522778421511475925526336793364735263005183465055958472240055797207448928097471699125877251457511341413338632177375200232994412754539970220338473673443156646063653242826549602636227531028708685105962943492629767836077115151364261292658778585387004056629427063018777419641203063864243228895501525375087226028998996878683551750826058848588063656443596016245561168609396568409755636302805064602652115006729011927115302985094883105365607782744005415882753697642727383497643796737297595758922624425175182579481775854527326601848494276335080317329435959064349140020632230206070535358385774274811981615573285148882850388524825913552411416446650339977325980775313569847942773626751906951039855727210756097523468948594944873837678014352703931019649791968726103955228978895687758773588662128208135709739260374732976338038792546207230206340652043650109996743711949310585787442849654242227638493834190713709699828103807541238734658972627373308415130129488002767137066657701307430094875649778253970722839689821777970246560181562160731326511211474930711906138815208521281643282600941497271703223131119855870808308375427569005213017830909601030291249949702925959608136142015144875364903307286200371987872629829160969233583091302467084429368872201219975939413642158402582182923915563598498810715161241238051723295986582864841731366440769522388222467013331240800302844759977465780214557144152848697697099095218584156583312090979923827344856840559185279361496975503599609297761474405448076662420935001389531980144105086059061208312539245657307106326719233295019979236217699020778185166883289621535157400259591114704107599483459869555931164016885558710011710561944568521356002671957122571536436601288265550806055763261872592539837124203548204745379814546936017561698548766893087206918704530190128472187955470606558410120100695714403432579158701552461417199843119565200657081197550657592964864752816611641541881756546262018799549146119670986699451642518039384678046976126313597807270460375353804848653468076827533365821156636414246729972091054222986619498477550113441818146050061004727100304373248766701496265747525265435746489168182961395832576681236759637461643432508208770766336824858815296993374249410921018998915582704633693234330656526684461430155796784894454915323529484009208925818945346225507028995946075202119130158659792080004566131927193638604653534503149804939211575763456688300795651550175587596842316495248511242946098601227090000511895354277595402962179613978337061483236971472028153150832702403189849763066348793931983001490867196888067314376219438735562825587487403406126171737919620352487623924089700372175351088152530378618289851706143680756235897950184803391147266696829146108027059139436410237549721102629390653208546432759960479845834821806190133206662860815675707056231686534365672080487201711883440468644484421063986799473898176446692012215925323822236869509369091787015527427714422220614699263660602674820773128248706532105009615234802757106387482692168184806902560409026342693449449288450492396927061428027832888792683472017159359704677001399803786669639136169207352470731635853406985013287375975704259171575538225590970930875078613829675492036025365715104356650445437778364807415110913566481206997863767668229267303583549382105265864582760831534623121437620305007349100960840651813070121620409462206019833578525412074423104393676251866194358363329428138892703444275555720245193978298431425211479413903618481320600176126880560822510703267277590590088262761784963316450037292993725672329326448301285007569563306779202771685004644527092955036310575205955728044982587383652355001590957133806431502598207202540621383395567804278687779864386823973352615477216434344332610500256619992486646326494987246867743227773947930789674900359134899761327363009135020762919933393950249130454494335100368371193234844450042162200160667430872994324682520950640194976399153492713869929865359454119958617081727548886844206601157987584187249064773261083791812785018468638650424649025621836837307090336435770997542374365685590400330909601163273201842055297520870978204987153571110150747518790391170880249539396285137408091275691808871984781864273870053796132251321153174794781680997436067030233349903749976927967490918927091103249467152272064802835624823164734002157642417067740213299465402475372355353377774779725457650365657902722965028966791972031281184386833597067823521075053020159445633356057037991582162035688707767480229875859840331759077661100874479822823211524354401095294854060345403732243792045521462224477762277806659975328191340099803262284272155183344622620017811322315938616276175380619436724172063082934382898948215952548943542674449505802327275839126849848854208065631997177579365029000159096765751496494997727724362839188867890796789944941279326904513566271313805029682155037395266514034786852158025547209846368188875272887836145965098697930012209498564789844350720659835540292191169880006156869448055922046937637508103669832981684787342512551782055014462912020096633351282776094836561441236245897702448070102631839680097342206976598508548056047047350830845854562250094872471565499540140781588573912043568509429365660253175984601553316229562028259579527169895570245827676457707225174365390638567395554390211851118878109491449686892860688822008149175912465703448995619962441324232715720344254893331089695297637186344084702459619963982964000054004181281308152960736500289571614799509493521991502268317211183271080863585853309436927677193036702850170976958314763223930690798823512146390089747917728151837569627806197519730297250511462601175738659585793519442797347808492339643507362687421220248406547693566025142808716433067761835315715975421765341939813996938597295084886558142371871791900384503649389705003551690683679936359329328233033350368384862531077396310844643383907573153195688433725769324121081263725049422993464424202425852443129546408137909033520883934335735482217438560821455757630103630050047476031708385295471712973017547585024492589396955648978948769188172293424313836873252866722148561429935366054588959641721139554869784428116990153133554234317698600459191126876788444723927898877635968317449194852321720430195094098098080779650549114680482591647714124076924124972636702700194417991948861881219060074027200602406910339777995572440982629318784269868853524632568841327676067405893830156206474822113905489085170826210840493899961109562277513446609404446298586286050020996219704246238521400851968337189645510497006921316501025323011314464171885337564621739529042263697868065485397810688884393051985573499069175549766114893249368193742722711050041608163582907196771875655895630792834357117223798479915355818816635156879539280010614078699195406903036584734901313947547546294047522937783967916712742666870765844981314853760471693717196246272641648835192533750987656131548448654314603762098204436835003322849102047311419682195402254203141691900976306640382600555644080437502719758786488759232929548559034879668540333609963574598487396457390801326872230557315671321166395936344103247119328533212782465097332470228056884680871369024450681803045450589705091289280161791842898835710113987630259336972079295510323833991637507770009699385616170350840618139162431362895393547044043399820901185529468172775612614856875855145962857328270190999587669764631623043615791732409695375702843808502297950370754505056659540277035660217023377067722977477944516466665637414454311994422358504346180652895184078947552405707944286837805871363818045894693813600803347268628355276032434042181960849144455546632770006668128203285774924631717813541238963088561874377973282415212361086381028735540492578054104037884632528863536086285373229162980314962963264844337848020530478518014126568677154012521325099465882931600114703325420326483595203090856858390300594102916374406959659719886475990017894712755647646341252270427155270397690832075210043600099569140659352295572403834115271970837244297439765579587127415193384332028641845370135899570673381855988120871779242774085626048047764704074104558893361467062733586603436937133872593052926485247898403138438393482419588119855124171445214038778967388412883734807577502730088774416095221952579235316214985177767186688039595972163007945185439052511674001873249877998624422647966346835850895854542621581158598869811345791552068167845168777988138215030755282819520663930649221151511114821925326330493883147367845070225391541144808345655366869359477809424836784322494910506049851274892093624753250017056863431889665052524471625103892995997966781202407600163672665145830426112057503689248789250293231543613938552893000886793409325398979817958605205494135899059955876391173152577808051091859704562719409241486479655173262224232424795608925160781443893018656935729620396940796079579533855241920620816305040502430251159136095204929744869236178961272396788774715574720499800293691755887955624738844750828708688735511232229324632529260303128063689956791974462546192183818713647455975617329327234335056919042509149950800095948003792720839822152172293023932652347161189797915918660445066813569226381614925484164029398589595982674899183627656263963098599497288505031034430502364250615438626000775726534298976981815506796816658783995692973646343092258774369735216331092444288868645817543482380994011233368108332147628291630892400929926116148751820814303825881718409684591515701663438585980539417797507704616149606930393479614635794375973424667148130667127116613680061139870708129028526355317490670251829482465582753383692844677517365055173938131866966985230670644938795538417876601673009738876424459603681996411010525654522412861052862351601958236469584089619687065091974198761224635568115771687344060554260266016137955684313917038339659001716230398664567897272719215284843128692764962578438633828592637465684343265022344909903764828395158418766934839135793326659114312750875520449358218941037981924453987169733131813988532245341043649044356871699777162882021908271883279778685903339475177124334208176365323214892261905318498106045418772154925532504197188668140489227163320922526114831456685978902977391346186583680820135378828529427100742683879013687331937302169879798988789532310336020216786306361771971256840703111152254007084373068101799725980128226774362321062637783529079328973421208142147937779799193762638221946587581467009069885257338829013159199053914764314438750497536927098768871540545818636031876542222924651048780039843553665088536880800202996043899414816308167508276867844718240415795537667554782714308307378161050807501999842491625043585059113667489772643363885774077422632672630779703297302622403632185866809411165755712378855232665654393424157917948581559941825106759631078157850522297618647084335457152180483215111489238050404134838560641187898000705704879560133955396403782083928782990399141860155390348241591487588709915841527924952543489026145624596063646525395810394413678699915183249953288902809211163578301768139984053523786831190131391405904295923251351464427362656149243644556907081105519885254911423675776402660381607845235328999415405032273029080716527827833010811347302011188067471287193732226223233237341741019086668129075562254503318966314993309736278284547845646896857888473450941718292988947541192198488815108046286877841480844616813701884710069386031286778479057665706092328214216171301577098618363185240329940646570307296672764945740627706836153209077587831004134120098887519957643583173038631306216720077804950682559204806347579385740552019955637355818668199617642384378801617370725916087032440907913957609881810059754570469295297534511989007670617307346995156351450825777115656900251236838505283641497575676195964207619986591247538990624575559092009533872392741109543853056859255409170885163669705737679670188309254323072018448719990308263986733951501009419553723641848015038312909465274353707148959804208577486081884621094384732128704471101065094702039381022189783935443840585700190281346158986517999390297435837484341874238227161332010980689971377224611411296926460201230922594539902440725349147530735448142049710967321815170901386273707367126795412253517053289076638134324441870626797150165029237961016864461162088770875604112596514070401058913107682913544642058670203495371357664075753623111357273488403668729073522786714029237301113496521127261757544044508460711523302456582963625281241873570614171708945806870975314672045273929903407873660538130826623221593856084996677906387558497196215845734838306661208699314702753400684689943974541797792033577901857407389350140496569491225685167293988412224395930491579194897289535329874548852212746771047994514983359980230966578789116950888550639780661553300368688012473364920208458201285734376097203237004367745522437856743090404631315740907821946741529321825070747550422055139000593497523543168973710568006515324301786322160222767284976689932723868802039371279795724091535986131452537393926156465143142853241146284482020879287763835581714082309719912821181711310802051752833703551136737113050959802971692287738867688408338152582840748476817523926123986675039078936256263841612216954585862960283409230997209309641237950131947455968165149961262863838941400006370284395967665996994319904862045456294231604401894626994038791843510196190763345000529952595875092501074382848665990139354691895178026176574474189867288157835145079029638473584632532960371318850344074924368136728028227097347915501687706598057319261955105671099173507121009771014139543896957316130381798259493163959527543802975509385472177006229327595480816466455856792572437801268851196673012448488688401694045685962223850131564883974367331023909228259991574186175756141145362254796531861465093000910057644945478764800704074640173170970127793572695627924289002926887272322858442322349223758902786809283987524231171409805780705993339515028132663765581463462767111241256428186538190061304233641715267064140958411012006227685759800949713244401255903910471677831196027848461422322990930100157833632007878893992870614560553443749443845845807561001741061747547798405607591289627673901727737692906796834549111543794646722180775335731000240042521698835136385110456098537602469072501224247912761612078046291452248027508860818162256189399743598484139684147549154243076599287067754472342777135141037749743323166204083197572860009542202683008309788952207511051802248321959681472791091046957955953279692080047147262252703105368655717555797774346890533532208010466310424245171338789981917712630640336082854552968323920879282578322409295756956853495979483830020215785450907801305348911585231439606821863450952336631732176881102855764984856633355710130203533655979550187712511797875963242410334750002806445218821544782706997952643765369773964027132220084213204528970170428691611904362300469349512143073218496902679704381945455931284568468794565989609140567192087133441106467490292006463222703190152243464957801806411148146875588167576916952532365261433503595181230260724172528316994545410692168001003649540410560757524656961595948449788749575815879483480551270044806903031148834702392967595515729014106612045560628734194267505005111028016859881323972791840356178878897232508034190829209709541741728487436769760911827663642408702653369839942290237991426306683493603764127860786110289588746605207508806878000223372602549194335749310945079797177060417418969782456569866856613213038294887252582124558175084192286922534620631623249604262377957957848656724816338491966222235631370149697590952282518463462005464918229097988436785551748821789735715023753180351896550205961862153513940684696701825596942306647354893576179441700921616588090723338297184694176943013666077651618455607565955103024880432227655848941853821465645271355945864292817282023222497577011266549743046076875849998100042027452142526947584248321271557676009540499374000287933318571644839020875628591128186493073667795892756236025435665443835617414431581606211048475910547279029781081927864186708600318165498370868749946959189728406751528949910338063727089477077373753009227178707505919476174500882020588371282533800364817450560981203824385649509536246109173860567194488915477010908182946711367208173366460168638739101663359893971218930820373011050643224809156828709709839197837926204965266814297894135862875769535376546994574480322853207116565302058970200083633472512627102181770546435879245370182060438231390492063537300827285056355082667504094090362318117674778016532437320440491273339608914338194179982101442727305193628866928502812341201258478605319160235321024688321226206629314373893526919985106503190869337304320017198183098023533487960903799454396303602091108619444907863354628846172828953506131046830412558954781826506355181141138629764284713896650545650811018880976055817703189767732953829518078071632836588811594371614714608714183055447957795343095388879010951562590858904643805216707853543108394603578172064907027203991047294318305572880875153663844372023197316328369688469051145513892725406038887407052196576374053404564940617996868345999058837385008059902108351070637317942503106052999447583612324638679014485664086240369795297390668282545178708344238807226702788689053239094657969959879514126627668216571973836057029897513802921165296814708860010442424490360108309235313877309250670106358999482008495662967926953620517170433864205505236476747555991598163335146671742912974643532289041703386232980716854257666276671835296126083957659568965596995027099003917178633126021241442388794448353892491817716757994105510495176535243112768774117841499049091474002300542994273465337593100427418535327006477423102329734562602175059893217107097233818321291295460575546550156084637036933903920394508383638815654033554338305238829229414251889703923027333520567562749706295741770489924076233731255611967841824793107315855289026252146557581918784341480725273920629404022057339890779464895634188037687184746591506447144017314502750286245970858495521887851788680380923346709578971222956979457507497768123743290579503761861259652548895610216911456832935364023250098211259629722456763633702855695285291658631415182317176702361426004357718174420151781461229618537051707091687415265690553920447383055284088437603421123164172015341326364004657997252969088362050327320612150974361620276481580403632132592735491827212514995209543481246497652027711799884813997342368269921414909448746092162307425005253126882946302119777533839229844203811672164847562738614267072312406348819290491759126650726150627817232403964606316041573791138658954933115712922653768517937668352398064103988894970701459570904097041806269875397405845010608909486484863753799839672538069951826393115316305060445723353725679422423145730891759908992226103716625931330692779063889480779701135293888089547090013096708547728361785967414712493916716112157849621500739963224714293576538522404660436572092833554882293193650712924193965404039023810110700371630270228823022909476115406996896481702329911930663846974957500802825133016827017060066344327764211066022277337489932956413443419938632847439137059556148050087183882049183374623628813398972603763262198268008910420609432387656161554413634119302875448782807204793426337952979799712932572734708042394701755380026808413387616137073439318581974432693485848029433047444924652047167284955992711180660224382899359222670167354785996600130553628674511967772172903961605588589511163250918217646129600567103950755655583007243975620223002704992025021672024506568394991881379504899785257667933670032106528410029905699092065967843589050329702394403936363842999982562370327753922388334261446595127050887674543033380622249452188383167809250933354775990055038208318168551687585602760413974582579901167557661662795486047508060506250675232393214925250869832409384761188426216319468228121621378769799206571305503400648593649772129956137168340965865642329410633762404122359050873487755306406089922000036429482067422036232152356279788020758730663407213295109995902479691161200128791717731569124032107027737688604964001271046302370324663731674514153923779990820245285423903042497249020660771896653137677775018252102166247563064623106532473394901620475195178961235702007716731339012212004711223358266721983905821204874542498738056853692338892660901982309453269585910136448659744692994310298581587791902697911616573177520158362102766346007650699182885630059931199439126838832018244869341447239413242172793322656130756346852224257274708524577543940334028277145006017852928446610462292908660781729870110985957616571665394315849721634869362869500743408618596048558897564504463690168414025166630188435075471987271654851194377388428884945767564345543154028774641519327119077990166381496343520520402615048824132052789859324123447975076346895993890593603568098282900792274228406660628302267639911690424990067965439816427388128106870293959682757012398324168384379912958950559448179410758825645222177323324033578038247550260389685958092947162405262723504900579607647238925021688232090563263083889673400956233216219253086710451888170507076207982909856363048884220923482865866258184684584857810737331644400782906290334306820244530904452538705154869028705360740462517898295503439153457427407904600341761364581064495943176576105533592113206209521606860123588656249014460199254134448724733137326939961553600590891430243947775805666825559260540005909759353861722177663391053729435064233068671101518141106841363477487421635272126579853393620801306454371544652589692444494728619639323328128514731383877041308946559617123960958180020901659599907251701893289620110454263744862281136651119679664177489998897587864342439027121610257866877085925958592691760904714056763653531785697468737248560874230484990739788184578559351095110556496435212753877604072599307426186132149704313739131880094345600087382784242683231352698630370460790608725213898621951304439379980053407476539977823028879174461109399704280131828336451338539361479406631695897809911139009983983616186515325289268311401608558834606259157180066817197868531560517149913145037555084673441639721049826081605749767006108383968927462509075515437666798433646797235220828546421820807614986241968878087745605911599698981374453056283299648331010187533569140888713057352111299896065255135594280847632083578014016839831551565181737991032049422370521588484919640661990591043214779899800420117555117182034017800441315411927344717112402202274111514449272504609889720926271953510718867303999161080856628548534723385966982602844284421303178717515476721353192255504536205369561313702282057469631136343684036283222558712354190824354710830536211516343316015959446798441897572065713685006506055352562063030899723532831200991054829645874585471905933862575686590188359067318974766658824687651622304008676498613514711435893217373156459972374955410684748417972410252565026648281431718140520691776992367811256401955472906048523470990620314129570584534330770627080836526257180228866727374523836304168384685021964566327960757212153253428208384728129004575357817943030018690307055645748673064273741110175087838224061891511881427834157786122921826313116475120687859545843297341614480114352747288729466815275273793323553581013576629038853325041761471969888290557730497618728757683353038450912279750246609299792842291055245844587111690007502983766929365867665423638482219895446810727633697092717598822396867213804566336866596697157850701684615727097673150004087219537729611644252368382450517905763907626671814678252817550931217789033941665637421185670656166211389861415820105125617393633436730892720129814176567342474729511351922059899197307390261133249302168693993553036169995363146859597142661966269394835252632356043685973696340042889196106226713751550831968428541834412990753520645840137138548593245693682349749913978573615270580262622708433728943823415232111604318212657462023417077127847684020404845372059346461523597593035135003305066812283033541111156850347411293164126956146477137328730471749196380525870297047618886567018640522443761438175507163986291179286727003483124045105784438163079315124990294076253622700231736670257818583823739239160403485576172372306809887557735694941963829784497296334487816094460533669266044720139344004369344989483589795057350681002561972103477664774358804077422938355412210377100794969214065947486431152586904866264735787150733634805339415147985452826834906069735220510079019370403159488594439396540739279317398130603785905389122828416133070623371658710374859759604259840602783103545329387465521678573877219489958032506832362126987823673853042731313773262754435792421995861879015757942745557212112280655876211496631708895045936620144823391178664794342777075974951529742039552356288225429453015275293021806902746509496510699899843239074080536305115751326092041802848590570509774456938674516872931996222134153103429608378025886068480849499261504995460777585959799177255325821157605060405803270758018731321914989198363540066463957716633357642163516700004264775802510612157849849671797517151026025129240597172527742285592524902885915108567012542530219160943028495031644598857211079695088314540481274157901107794118896933135208250687949469755846414168383785824414178982523929255062572222592053776113242116482994483231395347044878588143546611477812588276349399202024503544792007478031873459844777575773194172623036137961482145197469220452145768018761303639479984243250724742056648077881660597683932028362399562455131758536859108624712088385552277567981531094451734043083381982474662734527183761853596279223998726441905949945803820220600437441103354666869961769530557084627076161767997172999119241904021047276061269863580820293218231437553404870727139881015045306427778055592591855084202287903740038832167166831669657447135344868000716060319446313492480720113059797750952462648710425461790584930436432977421609640427111756510477595584697231784040504007769931255127073633353399798273547923431300146145042168823167784675316944544107035732229423339166711163861500660272417335029416967220615132631462887550612267424736744532762267493783370520826791434089789368888944288909392161478736945299209864023452706331382769177586273320829227222127098424663815957925675914685781073497717957975928662580540580953556803250726166045874002817760787217336255169093088463157697360205694627762992944320090633909946497534240312018000443303727385829011516676751414899463294009424545823846961057044601669920619339525289317971931420383620959015030223191681158548431953483787785755506433129187746846698638401578865987784975257713376794222478898116782833813819775155811958890317118592852312731821849457184728214480991847513297409527098366382402822815957669170030700704943411057991983030837297682249790826872646911919718420012954773880373501161288342305100634642689526881746819413140716789129261138182917941454943511522756226379142584337231855690602730999061164256250493529725138266825276959801390160562865819389547095503877600257780504369874670077091749257494772963431968630915371839269866844274791109112246028220011650030893364307330161103095264306542156276137289776115811537635062138785887862113432708992380471934823066540183781886737615899828040444090442397136265694393879350062003506238235694472343476929299491588496749614779301575431167758872060640707177753875942353013627963225484491402388085296423720122295059382938679771344730103223359446406549098354910112206024241726465492142605891021124624064979477482991699626794048474805153112544420768833478590581728621292139312879167159650874495094032404550567140502706663270640378962974263010512182874013259729916671686259146898591483289262919330937015938232233443738187088691089387720711787479126276700282939503862520111472991450039578608533312625591519582708249969810854162073539319918960311798428000739181895602409729797421281526001812951985091186250746122587014802335754325504363795702578512442714884209183576354016416436213165960817847169448642550035142061573351018868227979536665646204014312770478219650720859957116976917807789869884881772303224000079473156286430780115675297628005858397151987192370376279328291798411571037073459051269132074416232228738827557676917152455498354329361539433879574422851852182879334581954938279538962000779125877892541741711989948053003809458322965930232495676829328944149807012726605795760177987153961883888505169409147520169603372010451469143468457248509324608893871181708449565483135933141188524665588835991856025587632182206226514523545498034604397281536583721628308391271255798176572283397058570821997260833270915296025909681751399410293575292311389679858555775878510807202646682803832497666393318805004445539867787479399380635717292595739671486612234938534371068674562310164922805460765832889420717440175656319528538850852066284041732009507632242289325634078033766924877158917990501343830614644059406719826832580966017752212170187406341395922961215735391167689705273988913709344781434427689021085247871787516691145840759438671930826468090148713069135987165747863609088992049700303016484526255220176010521828632663002841814783462379792954395972703734631796859545700294210129750453242720962618305551917691317030616958909195083738961619693684853799585603492334217546748214299899418993302623858377808923898833201371351400136584545412867911681895678337035899761280480047790205320270599311481760426312455470256487006759958747908726376759469480705560418683150842179596789136152569156524370662756246854381949876470030109120279877103970905903146442819528402489759570237489620685776947216387281999049122270988566329601257769176443715578886518915320099296409488062630221344118989555501431748412874589353546477089671200649156476238537545062195517704625788461624507465961956518709912082176480460417603766032131251659110341045966709131902383761063333015708431810290126030470761311741596516912211788815449973181653301504884035843071764284875055057462140060197857325459663158828079831021061133564123119927468866008001549676630764460495520336868912916632844527106436064270959870653795606676435287948143286603585505819124460835899447789315547049582382962759803338188074377556346572880578237916903999464090976004994769818686244720299019250629366760998269617593325803899375202621455166899476730577229737821034932845140676761248323406453746375438224440828741001704347355217665676640944822825280440224258907964079472577123376278758127443923061376769580082703437100121617325039783421022992558359942986275144479920193348389452415320548298309798741596843910488126442083397058859946067497309954166648594263122929831968175606386770685294405652217854240486048991192935375215502171168515804305817323427454105735983356756707194531620395248401810439308416863715774506161239213273366772992243310806311568265782384643753041873641930913413113284126645521343069382628976918809102545335576019919307026830588592602064502435459975297432400460921770119434794378705766280638624618893980100226768481199089717279756686407989615844642133723928116203824107771802138811844862300447346610440962159959335601363682930889393403171130383506077679200673611335708756426354454498342471931646206680802501889625809093139538342143797374075721313004396683952155972675887955838710182451205065806889318416340317626266792340569057598436478405550585705838236460328495959036075580925662867692090355814962047749563790641679684051898425265457409643346652869699363693233470827485614932610401424335657097609107738327335022217066881882601631602039419733356110332136267539248683933979571845856940666391017203453477419941763523601971031258871397348971154607380616956749344002699697311833737994794440312024483670223081161058215859006736430552556117597015598270439604500150356098871509551517891639320642449292892928301509463011814932658543355606184654389341654506273912405104045043043657824992927521324068313570344802562417511724102573747474458420637278353117851632180964230849750819309352180805352317782838829954606106625840802337006497602845394167254500137074379845447384938730331365002761565665826992879761836267952557433622193979874261656222971642584088752437482051850790753712529326989977336253250189294414271190839215832483750583629527111200391079290116391994228597667060133402797753156035716955971924709544739970164828995983847987551771980210440996601089185252240968315643202858924875177429794061987756434526506549578363609415899431355146771985956873894211055010733199580071680375941099830313447455739246387222503191587679592493008541002978106327382607091645724831871179234332789370981903319629721068371871864927020466654400628884230553636393854659008951939280722586110797566058911305180183194802419354566613920302347561128115981632884972351874737540383998857584435993201774813865962709394653227907535131826626422930436133780952073919554382612734391144961864180764508066385942037561784327526882962901283646722843514416290377819498651913289612665225632172734413933980506371816636438986432375294992039819455440527797741872379286663417334026668775480219910498612315976138454342975601268477473698061094021848325977110588281478210433503011992842945470253626462730220778799636183841625201172557859140930698126595420866590784659427376512176410448711803794552466677757269250359251445227453322304049857442145764962664944780862150471155722314466978044773842554428175342612405851737909647308604466302035023820934704772010908769312261624411456804728995297080543391935899488111023801535202833643426403642218398432699076163926799179688242793477816458989509712419549805318545344216199445386268502856646133097523589854284486896256361390225909605070504579036911761735841432139431585448573935245152182249992490245962714619353252876376610434898936123693716462072751864876402082356983956778160367238490895086129535479541772607801474217766980149899113375924160432515423198757816534140096531630428813175263810123203206552999330494840772385395548259905363978699014187334778090857755854290969171617766186378575952911153148963093259779876996843095694079694879587311512296273563923819794326850279604818511323921622508578904171231764958385517204395099957777204765799159260537084592739979845230946397053233802624022929793151085073531904196441444245551639596019869826093009444000036190807966286168376593161695554378483826454085576779540687860684434573979026626304526661848209795732455965366969645770295604869504466178223545889627034415976473077620313950257211510753100521274128611386130977446775182468022373225646173519977153074324493994737371524706608785516939168078617934846636351836921261170469195605036112717260667775860552169893341924847058520091211908447657635671473696923329241700641858455726660503492248573512650032280279102937871297930559883697028756866927076072298911549227614481437723051862245865611553292222114694055047653524910014126309387083296320299229868832405884467807859341780262562055464246115660384018045629068204635124921960497878455672440667500502928214230569617706528792977167183905925703097293397386454765241196591018355656111319819619425868014271301163912695028791604372653413370249919107295409451701711625049914016388827913766000116279001786644038192696375320425710860195903437940907648373139350421041423560669963114816288932821950265973856712456600679772773318880696500495672086524010460787019247143346510041601842315219854816472209399963436047886485107039719344751979734357757402223575895289669032221965270641855439726328005216448400236054727449019719994794013132411832616767214823428459495419042602340245532332153098183969293800469896448306108402059970146538957193011494989617943214535557530984404896767161330917450230301999163042528717002323353366607746933251201174034727228615621614184974938696270192250511569435336442985128703121297074729323651386448138637437388899163476383022907380808814289986723962220520243388181537124362098264730828191069169721195740542749623730482952696633817228744863373735482835225759821997493843800086787245021624955672716421295800793768340630706120683731125379011568138267724923201811058353367486277021511318736052864563771227612014857479908719152721053890581734501030818124475654779699390789042026446006433885094086675811168105918187456730770492270709372529585877952041815273900886915922454834877294671147632119288293582988749455767389937687316144329529997609903043951081358989453741435843523921199261546474527726627626095509712900701850699704910748929454988359274480707195906253495528262461859528336144431434845016602308777055466248886299332243925808288256459086542680724279068327698091700002249351465209334599919874231393978445285947641090621440326529549857649243359180490800761259376952990907451793101513416855649419573974477735781375655301118425124469156602589515043397005624701824783891530449489913578607789651313604940417599995108945917589582231815168959153607937696892745931220424388160173519984837309911836487386809263460011996949058275801707335685257111871869168437211628540485725994189011731179802569290976756304594253936445810188078631406832388507945127125222565364722687873749966055113799934036538169311407062050102648570243456208157436863054756052484835121486935964864428018460460348751878928739731370297568840629558634895088945607693237503551679754458784199510140765042800671938261742055945652575499676428054292112887416746023435497695053284954542332755241038625185800224426374247224365179779822438975648846414991887685806100886659586509313911943429568881958764519678714085810389816622861874482311265302656129669002593887284448948918894988060500755164943030093964051290108717371413997438208521412732148018996727528524530571225650274552595897374845864923957152920176673135236077219506852960649920912982506164338679063673458268046026652162644686854060825862006971261357939016672811285535694668133067221050293184823683182681894607944993564278571453054180089644067222792365501564102767981317287195925250841423118007604052116520219314914590270535693262435675627493526876461708142552500611032932666301687245205160278911106985968092296036745047053509443691658407754472281126982755266868357034553498346309064665576324824726798626015138491067623941934814040054018075188788990645412963032611159020596233419162833245450524269077880565016095107139085062850797288400640881523312085011961824372178561374842837716074958846965604673992912834453939970255965649564461452155605692785681047208318495704372722652874093504014437296754044246620385547304568511595816934127218235131233494082571345177223819893908416829430495852483920821447993741654820523959268473073143226953814966334303902900077868851567080032893198346674171174637005601230947615937052406537614422647002343253131779218303548642718975445325411457255851097712030691688960964785377022617032528506800209863453451514048198212548832320680270671611981299287188005417593663421981171081768416328585107278458932934079630853266039211166193727290388696032573162346562820178328569371487943380612218528174886656809305832641303843386310697665579623063242050429502277770228878903249356918178922401727432347665992938094295037134899441234840501888166986200109901531941777487104158965719703413355516720820206190976475268134084747153915946950492281541437808333407501997120155915606929420161149188329688258064394366811475041927464223211457627527391285731684665316912534915510633073176253257566578230667235178639725218329787284759434419803998070268558504078878404554867018768958622497040492677828758237150735542234475372055999398057679811846097457345061071331759232025358267562693452486135902096900654869599436917550562017882274930831922526191243548823368469921638835629267259327248369875007806205966943812231985724445262361950489785236212291505536331697576316180778550140710309967323645000313651205599531386895359668418521797986337003376973052294026657671960766501584197713823164589666781640248945601935892113296279921522924468239712493291590696201005241708484717903299947539662789974997203866725417390575405078530979707809058022936242502165922709361916970126128030452593747729031079188977257535085462529591525355029489299579530817155105422911645783614355248265209433528782290402147855055852722061378500527425628480847514802375751075160121024343088088011564985055204070128763134960881569002569246276158268883765021093600087771960674441599852427317856618583760832587031082104414802265489744929374114066764595190768219346174295238909890992405067832319739231328267322890354463342833526509832340953900705388905725752818042425672697564022454174020850234525841782415455205791001505582223619374691795723447794403848647747785800842179861937095210925094914816164765123026441930270603062909696603037939064071744263320140622231315089840048334821223607695298724807927132723895522812328819001626362199957657353503932830129692367495653318007745768505506677402733870392955149177457081467594598349978023479489459204239559782791529580595608997777876848646039083210821232253586467955574182289605636487182993754584139437758494151253418130493976856682141772033528682215658588318866110569711156531371547740172715085799379037316512558638487630164548573432746181678901565877568757017910092966623374032467125917507089291376255111187976593702695704642900416826528532589925087168221331024433968269930378122133299160215772651882430926599699814452564391110311604385630225147079414491333635624815729878368449588876707164838212254921651942299647901576653641912580673209236243757395942318974692101237554521410048560691316856839362376317594644083641831358098742535983351123690730846640325350905959639188135375025335977909879762342800755595487472477778640738190705434345827709110192989392824769055505794230406605518043714972208136497823628088419616566993125811878956406746079229789611874462179719059194118167751945403598799924577867063968617965276631945589463172920176809300097079635289393161166679480201370496433171768348279390729061036261602001217193703593936235879642462025416976375950176915163820258851433449708377241430288301172370033110955150030567909050201750498381720603733119350375762926344439364339106043701890785307668835640150296140775135665357303466937406491869127514545604556523111792075120395399848139355561562963274776226414248192604419465773764182904256808579638590268043146682829155176398877158442576184873226974194100433760562436808967770896991600222607350274406750897078924065143043853273141651678381943932041800789667395038435791117682318946888975345245590999778016524215207512478368060009618131274028737567097284653879454489140752313983558155453536024818073889005875799118384046731109121648505870351040332674931366345350212196463599565847193861432391073338954982848837713452520574337944846230575324138304027023680758450208736531639529333902896475225093056442694103026535037277838253758482757320070721499920039550308695091630367082379237617708145726026314726493087210472026080708619259358556027372814965046015558541019071376517917388498527702549656258298036772567021851689004613751059220528378124398132157743444379636090995041416012867025145033862989688465834074535508386259926924132902199674828056074767701501534675859553002200635808701951460331842105147494172563480584715009670764571027311761186494606589225083238040571678879639646641856586499272121375197875901387332453541899439672178550596983608969044273132654258926952101331534396439333715254418344450979334769786439895365318746661166374946108022537813290922874615862161685745630993626783187018470313859819796263434818565495375134663595581796536406069257120997004934799491198922403084447913354145942406905090188134420168931598945810280724491869817272151387473340834195898671915184663897684354994387659541999250732651075588258091718306135207872117779550468221306800069160979459048097048990973318682031872523276136520118882256045378980940598326031679544867801097295867289163254806547617938422645121504863516325924831428150379529778147843464310857515744455375070550113639604348748533627327255169149985678892328549261601712256160367043955058993785311779987986599864987187228664371519137257371189101677771621505167685090753393013340795771784008244893582688957302016905428158301492786539477756271282854072598604544381340061934888772779040554553119957921962062458254086632248651147147115453391317796596620147124389943563668507185724288870472833943847020982729608266712430624868984703134046557076721565616951946857867652182159850229113114207965540813610429559336163408836660693161760259042068589611472334169276182805007983017604710445698058749675110599720538569479515099895356083148633698232763462606591684807331900649150603741190542876431681918819010457649158616074426980847272055246457013203265920012358712358065294379710213953147999869027164390561086348278486990857937640103866522206952209878788858000554365644284830228294797870515603531867028162185813422245587866165855270010827287121505219229116833841698268373104964294848954430427775611305703227877568196731873992652031735433496310938745018710493188469102376737693857879169763610031335915666661739694420505616379060937637382559477852347342172886368197568088010234736084660896716134863291707872230094704254733743882921558735756625769983087251648488493239827351087882627387946211661375993542094685110798065753146864746637382354945734221661050296839257148653120315191507199894416464426269896625215117563548539303082167663072139169675167390331253841683626666512999312904939885550549408390673196266500166789827606501744241640319840765655869117362944441897194752140536225511201904464393104891391134971068082895377287401973482744022640504263493057318415219532507068075610437098304301950019284972388380394928154743013261533941249216268567150174452807282080734744448009675450128725952709572767037969600424897619921705152883511453029129546267163319305938291562922168874882861445969037740898565399929376771951981224856988948459806923979972696624110632007192759262493174745000450479922595534188211260711605442628910274885848469164046846881568983796580977101757808721916199309933016244259289236221817942487858155851256837911069998352424703415841056318042898336224283900878798206580330971099546712656607020601421166825505900237712384413274864496049833000669595493428680724292981557103465599647427533820672988601066044677536160299640157656232872582532553903149803375687876617998370601944777294435095779047938496551417012411033358019595861782564320865533095406516355159311800022685490171865628073782981678167007451025757626838854307525511995688949470034747480615468531575792784836197290019260681843489582021592506699360155100353689336941533855697368144855131968553827588360311744266368635241487568929791679044803822657291453910905567055611001497100777617208703237029475567378087002433253623859953343469711628127315862563355857826343675347069237269897684480749860465063838729660113319184749958124912248202935401955369966910381485045827560810757122835880567618831324370088507040355377342921265509316295757578938705035291596509219138468427609147293971980200747825559769581665339525130867346731375436310447626994224296138559795365032174376201391376166082535924849071270487006298597698718077504275971502071369697247926278696860542755223275170921826093056635006166546918955970156197636000358154393602803049573077896731982633777588712648572272368380737659801150980166360742761918163322339309627956889656084261868652661585378410897795228415307453319375941046652916070415133255743969559522032230413996759983089308764598594459933088072076720683563005182649142423232532617876162232184980315236178252311924677828682736659994362740016982039634710489149685592592431944943830918028869534892147701082894890013465749115395200451539356061863872952340537252059387051586027331446318744848617178827582125997864945555715250543233044716334051763757720175363512468672114437256010269658308414753380141416735577192361766682016556695472361327210217507273932690744776760350464141837283844122862945276914860527296571037353004701391454080381174798691120652599227631313919284034538507682957436379075088769841343699135717035251435089161142063534146372230544551125331609004707771910790163123151916445537690223338455847062304953639414521781627042239723841906490704974696759003777750684517821236093885558188378336317049834966539340392943303143852238130974183206925863120169066657976127850785703236231522668096030593439334796264121836280852010945578225838337983072371279438674777660556877281934567559719845678330541161406650914956495972018397390352988670088737766183926064896737522285321989359626965742927315268332384912795322602474739687492832013656651737305515345493507583395228590448452252652984022371929256315801029726071532860030338228143392907019393928665935494593495897595855139819690929964192727283172497208235421676448960026252266678893919041446723127399341251731801494802318310300277542038428256655721361651832143043541381414283513502499178869638901668969457811522096434946616877546306169378152996409304999500403947681429961891199158813743957986535191099079622365625215030896423692364736746998419157888365196882036377747004279551359269168664167188922529462596728717293419846948144749652254852961691371393698623674479702416568277826151751386812736228092858714718085050317879950965509596971644700400394113732136095956946114493799784832608430543337415316716733134186641263133684139624978565187015048945906840404002769199231299367839681461526642545385058778200787618308991175150270020584389651189844359744280622573499649753304792859607804275223060088284472018145321654905663081272601714461852186816331422587078213569268271720480452733540848003469400904656358789401010813831479990303526536174835610110018650808873283604251687827040336814698355400911987049976330381416071730711227577607317358791228274222286733245296073112598903663629623195249225842992197051847079844499164651625678850997052578824288354876493472973668096220388684891398399134382580826153136211446654890759080736150741354243567506588001624667080663555464533701705969113826915617641706092539852425781891566969562263578075403305801532347586532933964695367697195389278322021483389679545136541065142462082735491147776137567879180297283811205890495193708995462852953191406814651240651384044165058812058178240528679460148003355668442917826636815733380808830543642519443630872005002726362626259616364370674986810629981147786740987922689306193298350999578756588982269324782355523680162385958387131131997682140851413515773681627554740073689882798175798429631954019900543979859163343782545320454634019753531547729884676886427222214537116834689754956887085833408389628773710526307496565908749786632011113851282191878811587299078920273810058361339769025519459118631400798306415978541067415145704308193331857679964284761103693113795678701254996546998750135489576641172215263509978984179544287291007581965918371414590646397329916545476731127466134347628060376859461963372530674092109970553739531182484422023805638833383366926501849636441618262989831809758132158178461892883610215021895301060246022461302033010016947509794914685728708346124312004444249058119569476495928176505065406738427996374474188797171545396496985453802581548206231568241862915936379543344712235992055286018626180976435093910138865647169060909049900101005006697172192261737339598328605590814921709391868040917944573497856128935891523911730462087647649046875938268371796421278376344715304130572800224695821333800390359324214182562426875630478080142959411352685877476040178111084974498407313798839181833389344055947244857719824071837579647776615448768384865809089067866646826946922173056851484466190649026321275081003742746369302025308848184293111211572339287051652953829930198707634626304214032647344264132545440346095636440881451791686581225173191521073955972158321275230158683047246923546425251933518279978680490224956020110535994785301871009210386752836876253045707184446138859275378781669388651198268303641333222358327287601710744206800999693125602722312909986429812873757777238033711513102247074589740809978906839577727621463877201046231705957244854071422881459222007842420959802017512429805640496703414491440185648788110652579909388927829642256178072879509127413763761086852872926533458867564805348035674142710133090808067714560398816441468573768141392981690583037231629667063754957682400846449431458211886003245784828525105483283569955616538828511313189028789406073320812899855350303197011635033819666277291633179980022394233906073168928481638027056961704843264261890471229298187899359814824207733032177524150274315730041085564960205756250616403225576128369159027068458573015929681925661505254491894762720333506119152760430766544864429703518354467680928078909909681064912502221400663630951116566218383659006845976473469201075294176290310753522621257610317878996142784006110799821921965427902173188491674614155346838476765701205600682933631555140116576744448385046896351517214129576674100056783691694131144736548246985495980820880854310683212800401482017363486223885666966596140497392579576465006064611002076253862379078034184146618071063640101390266919258169439784834152541989998510423538289727464086204421506657897876135587013352025141234737450441456318625302857393051387622524657439519592961534375384848889914835569925886343588165580081491727166586572529277980781953643842290033453062001669061236634882560919947680592806595320052955554496414997168797783260144842425721607199284229576369484391344779358677039433242748599454684867862852534137553694260355945899071743041458864312034216491067783940743812268873391643369318694251926704047844347279602115021976776201618593432914847788450575897802591207856696885739246288781460155832952219001848465374911597375551966692936814059944199140321587259502417733658213152019452540985256307146954707416682157203392745270375210542690944811746461992129073614223033136054149202512638698921524324439898002580246175847697065955344015495030359061615341088981895952558320412716058857017241494058876080504218936790419610978814080023275917262413615283083707353170596480888267395303632520703754665042153887969787370506904238323539047652104378068025271051183112409798376047845915493802311017216315165376142864887028296247402394522497120660229776841733018592509534464086765771037547803247923403671391863983199650695360580903166652847680742439019937849350089633483605657512874762292246125040087396090694374843499803833633058452185301603410295454991084658913724626705207687274857724380532916252181596443667380059168705342420386700771817763459765376200251450360116268164020183646740227091971870008343222082469545500259560499902614442344749102078226092825429686913506116444294505229238097789385540478054353788801980905905363541105910998568697076182276626881708028931848616909696225193881508273049835599246432729734280742787382479012514515972708881569144260376903148140706172871655369773917563941480900353530960119120621288981798026013998832131073062221792407086242841694403484657863122334762050530175414913663707436296775069363616173872855333038512286729644268984532322491104419193151586025850895608105297859676009575339370448068938311333320943875503915832109678201434490294920958935667649991350218679993293932661419585255778924359546074212526525005263391269622897748609767186643219459250598692126105105531747443784765490650546095576999198714142934589978107568613358193899698292744221918073560456378873035498644353140829932988407021494640454467980937808772059246512377763100776442837903765748952706325416535896673401227930276589866549265730099072900503071444227894642758796633165008676575223740111422363948481712719927210352693654000494446362851792758214589211212698193559950632249989862623442650538063277358052776676410035936056595527300547890097309703432017283812597574139468729749128046977881454859687574146905323695340311770119154899521339858138837328344418047207857796812330665189729300489908875068451052611290687945634321238138760331541174279063527840836483018710242242392863432071637593641587734981710872065132259927060846483479582040052817546109602124305271102507098004061024821303080573229004032322775009840673873755563689342810745945583003698989614740569644947199499701381375555005896294044018869183667375386088157211222174207682603715472216803696065591479738139211700633882522376093749549796300075381824098033851672771437603327876137709026545857658718139591588090024635244268198569083789484427157077539762772749356032236293578076295368702686997910203911327407683618606150012411806886003194036866333990987001147518288973471590874013315903802729283895307247829213506138148887317713369560410778621428934732982367574735192128865567687526500507465879593914126056730851807835502764527609978613905702685762781209992300408262729387495721456357028835633583764115459162488281054755999646373533193240771561475678166662454485335132749142283374345196476793632568522021227770705421992767698590190887937406428827454347478435854776888140560213999178826563482762471088819837418664470450753734861960887246325488204527164633516571078668238417679792655869218289614782950942061985665408209632821407668009690850965882040504864968153704511954762766465800366457270210612030653921042469939331028315456559815875464475830544130115145142376989818613887288179316574683485710319694163761760321512804076383877186263062588654654115695649280769268582466603263206277236009167057434267411022434378504798503029488541321502207963142440372621744390642571565771070675043966303304403372525578846594421718677889670423496611929889682398698525653837771948268874516801380956038504467829866979854460928771023452356134859368626443093983541750362890003758637081465096671117486096993334255476090947903465458470948277206334228594179487924926304871488074539889118510167504240757138584299768522318475932400438871985080621090335085011514618117351617420324996042044012017742514572971999251668276692833323756595302899025687585876838498286804519102329584651151406589040421609933820123813338539013901466821414842492361183161887093676151975241419327440258168464402872865404817431754040372762426149669048526990285476502818080444902063723758938991809759808374952345447507321208309323444052062578724545630519527383909286640686659874992824126107065101938168061198604329376908810678580070056937418643637422567028578672919506790178655314934793696262376822782029116280232639065689407059270333290251427062740247119013730123527998040698613506089771711105804172634526006722844114970768402534957758193209881885241429707226013004926759223966561459267879464231520465331928859855348698304187756815784417960814461293249226110672882011858420207613246263109618048917135458252033325094286018221890584014490369312606231109221082196223550439073154007924565170353422537440250878267280496059757668543046884993907018181566218690976207319979647610019016180399461905948425770891530886001694172789716844762230378210136344309967302356348166822403222555461854809690302592233176078660350335318010792208343228968204026346114415488129461418251109790887477197163955961598725885002631452804551097348889626408408160939204785753031838698887623598656125572220679909415946195556439705197955005030350289038913648738712724208161558002890670488843173410906052025439451013144579642154453127718031484040351392962818947382309903411360866846552647479479424023494424717327389499266744236191040312498661234078130841244836025016216658760275715651018589293044945858094175482561977269514223995032415499901224847558024394742283040423520489789473599478300941738113126316052253630472135948064440370147910595864878347437059398453342112937443010114060051340300817626816292299045313599871194583600221355058692706208180567282926398081472526035992622627247681025335221524124730049891149596882121347204222242363662525263752409718730483765677400691628151263353697020442073936692258629152037905878635906382105925463145683450936574659609672499299983799792054444146354474636486024250571991432526358860276062550813806397900801611890208327844990773814090866572741252864433147086250089010554454330238346303973450732140748225751868916987348132699790527959816910704844791556187712828893828149567786562610462516001883631341656370018865579378907462571986101717925911057167254565499449908911402981174854410347166226727453979063599872173464881651251922794329683925017104022220147636779745510065470478856201937279239316832972155380198525971305900481317601261984179334800005085430573950459749627622690457771395488133175408140441437341939579673556241433767172723699585341130545037478210262822521845392818621378862708505572187032895793699752415336086227793279888485985992956387132274481526356459176314967462521753173206891740705361918835833660248180530377935598909425398119139237106360897488672703984450757558317736958362132827773148335052586197465366715510613008075925655665024838399716399939574732786751675841413551158524130646751128237912656057855599888438706015444985029842786092229730488161034020803899031995270958740797354041711689947800655304359290864406265807888429716181700509831560317172107754513776502693696573908531957018708853136059993371605625159372270088989040190188450577792075612980160383891413440396009584292247803331404511447765887074799634345354295790863710247352292228369737237082610801509251941108383313220683027650320987813644571957460607629161868813832559092943559192784704739791195601364738499650047638759121334619534407471867935670047772311149180286430606287356063173352786490719416095422408619380667129545648158948399816268153433763886038384493513965108025258995474446538626476114389885609432508388050022346466466630590061053947642906244739758484851893867257861544179690142782123645542795895826284415000037964771324289083637095719877572618805393322661409319150208834930547996974778897619256828452793783764145042334147315583551490786460628072881341450838961629569220176167268343807328788910581416148814493242360643963331753395994801447926422050522318601092810513228479554330398830344748458093263240589567373300114581020701348182040546419905346461584930752184436713603575979222147533174871695601066480336996279276448164751076746896113798282844866112599230011945407180522201419785192215973948005498704761225078365729720221872763182382550471946487995273176052729617778296815853455130199906340017353775412735695105027707435130628306862470855375330156065814543223421051272604720166533167111115414761922045865405120864938264961994933257680176440627269755789564204669240206685353047143064347949765753485071265212020376575997995693790512836354039822860903381318997530204806502307705449856161976645653541033313976699601992771019497155791696444629801686441254975858612689805788903098574305231031926926955097881477528726217971470931840918019907403286749117217904884310620935827045114396438061694246069962298485307997371825838756453479924672725051095448666750852699974473899821907362753101725298232514621550049677963190258637773358758672413847663358199030681823296380645531228990351661487916926086632793295301790786491643995741066945567905291995009603924396154512297782038577302958740968146871837748476356191750933913592399370392047484745482280791797162756718689870341816080975162858886446583906661284329784109776806534552810697511398429524354094445163609339981904646418420573324521166792040709614457566292514702139287372998476712937872221665047988886004063490052914066047290771987361776302915046342624623472524977711181601728258174647480498046848171620827021490044390587329122625958853782956787034210573178522584851932818554757785658751518737087982430837307489838167003108957502232624599491685585352431616388052373730368287362897212283615524456772078424175631312377932693549971444635906860906384407088910499579162278391911387747043164584061602905959479572082760851658448140132087537880745180085881728620122535452588548383129434740874970374386861346030547678775675403403988555495837496897197045141376011212168614302964532158146241791213289740261101802120721223266681193076402191470123023120110460428754147764199394647748056230323235269339457440967152902591300981117415844359658062927632621237682471650965062957049663997649621190077355483937091926096145308691154454174293334678449990492088109077574160134734108519024337998043791494860575359647182105269120481692718392493151087715493258945343293143025472543099809926166018188265777574754645656504976762036372843821118236199618634519473917977531178485369839155452812849056223309370350098718047083460470494242307747340138498800022205907100108042831829948252921018356691340114102172456383150141729178153376777994462654930912409935316157133601063047502620247501687749127095243279497867544866633263436799455481663477180509593683348795464622934582320273304527808496967403481887425787204022045615516676007468886000707463349867557067792180666818921651703847720325141712077927640128187073480083055876078118918425514521280242089192118508596995518777671185697203975550237488080321431336935817690635828884480060063480405143062366984128297625574935177536785528538953296772298523405916513935935217032652037464701918495981437419903079350083543523195126526503825007997774138347143994103008849469027478743996073183229881607989636342924380836610793935235174121774845777676533948783716834579849168292781089823390219584564735235365992314547784758202342924851375472040593718118827297821846945261813306391372386632281913917601536412266261514041906774300226799626424727979538844158326661940605168237022873345886000395865386820042684623113883784558150527207363947921763128823654709762595691121392826454434216486503872736031362949638054625760021328477882826787041521123509874269722357070397867519065914165973872905690070171751033390185138760891075424405889423320021663018284726115135208529525050043480543339306315021866885502845790491883287170200665538326012009030701129119952279463892313768845500514701016716903240690170712791078853333908497639487802103589396169807765972841644000371702691973319000547397755443178273012115768089944124537810327910133848344184988246848049417857292332027769070848302299418841337313015906941327587014545730803900075210083287730586594896407670212671261667600762942089080423809737019710286070059585737349179449761920082659392816568840475035329716819400310697821806576805962280588747547239689362257404208391285515276262074975441929882390032109472150013235601756600283042183577387572692773544780458865597671241696258226991552984316285958065266165937100286248883224318773463363311157648085853221709730346203989604136044775461663749897439838247182445250081891749485773061291203119757168759770327485537029005473562232726215520854199923026015979149173516683488061590038253202870801704400743154960386006680940460985625563878280894821577953791136113844045881644223711136173945242936946720373487488866497649900565030100561885038108115133201394631614562741514343263192215556376457187806335679668020798973381920957766869190951524075931727978094019216465689301213947217865783906011847156735223207321867617684028013906351530668260622137471145873853750262565554590650554233156045120689389345221182511061472181006964867284004800863239329496068450680142744929832688521131975399076705186697858461546946352423281715864512288458008828249800928088097658560388642640083052910551167940380997343955253172167219791581370435495598699138406317681438722059311551959426854541222884090357231216865718879530018968838342808467831949455953067545940849799588667829625421129874301633334289098910513783916014517283163693005085679097897210373663530260650443587327875262125146116817237233325770422830836999931947933324708478748001301665720043943038310228618164772082669825973584814317093734569252068838224154726291345152773085317586214224643713457367462695920076552938101608533086517023479941325600274604859021710429566296292181505070092694537239430264214641966758577563220203212106904074785926109735205666401641733376131048973014740590668909285305824663079168466971240248544625468350671051061287282611325871520565798861133474406326874712963011944074331200231963261657173249602031188935592272122621481901150481491334017141161970003145059567014183138341210544400489601341748603159866137884998401354988470098098588211447212781397539332833561285265838869409232988475963050285387109567674147638036811865053247948386819268592034897482683335226050174496200414148208172577663216769456721250040357749954462771147200733214438309358656760703388293377872294000523217890479246901254691950850133974217110545282606295855692535063777076182617663917719138958813678820865079854295348833982442142219782531713208177970490153530371259236629167248539044385449250193423246980888370531017836011688122197874969150494749329924431088105178114237691254907529472994590559302381766659642349781436423253971737477299092451973727472862592203135069063583546844697567442643461395557133663612298321411029614909938016940197708526065072994157388912318207164587642452224724257425314752849325136057294845019917092602412751645246148491607008007600784540709147546497024450735659181515962992719141385665783138497786265261546927281431686578127420551538619824011288808669095084132716711155418886478174678039768339263228090378112050811728814593871934739484666024838993171965963624439174828133938492236123680602845516031699537653942680767714988049315241743066933838694848111096058647370758287519133130998449781187173928363660637391988592648261598576333744350053743002754294698355843934303193445613342122836084082882356867063424145724501236141166168549657394280864652964737600138331615104995976967057165368771581222793181940810980775262579438840957687889958886892124645341531494197999396605352188732288352103102967923092171542408098830019838619658450094260709315210086821008170067987037346084565403062465873646022067507915553341335560297077241997355172539337450189304469922408837880288996507222360349453200228316497389057880756800801735777148134997586487368904747709859052170208099052341314078260904248596290133500489624012041035450144276505208047019201731204396492755115174494649343069523883823422235218280071976408594736661174875746041867918146823318906255693114500618261816699247384254879487476433070187016559549850999633595937593631119422051013861524574524174425059271062707723962970753746490200367749131460547598348310617781681524542225891594110104780025636361023393178928958897215143466120942061435007847772820547049556304513184369547932288401596886019805007415434873010248022533748656915045464228090534432223977889567684396546289128610772798680789854287256522426180290934725549633078712323013970671248821539279325645756644107234074964388443717988816715485885597830110687565406319810219498211071808678730769922146321926492363582846179731923491361693171017702374968173617169416861225802089348206195461077000036430515633110220560458278399136305148686962399450011507013785689255718333217071269950969104574275873818838446172617291601909057863567432660388071651627410778617911199115816363859430433322832092092219944910028474025021474555768178921063881627108770637441749217096853681539624951834896238774779120260984272961812705055584493469778788028364331137857162826730324832744007044872100443073171279173442126664606007515306102729848621101212692119838526226435478046632822895511706536205170274639613737673942221136057535213164521665878640783707456825033262838740533395734662929132865565079722316143782376970272633744847372145442111521027591417952409241258995863280441537424123249783295336436696965235782618564930741388863935646011049897042913987322034618723515176461480351012170509318775022998364067706778963651562651498006135354991154119808481111053135386786742376268971448339663656548589379445302540706281613891073708300431947280145584067255563082884777980721482382630055819412066770915081266235862072163076092188281937890048265471818840266069026246714551988795158522114435514379935628346511508318993474710929708784353298284802625183229030820235805507753733426823116233438232991670382599274310698207869820781384193633797739844204886206457111590929039518138878342883306191976869904826895442719036894776873340505290164399451576700278532447795192199050559358708864154369740213582886981086609389476713267676690069829453951192878711037443520967310159134283755953641191039351610283437360750837776115431525964750524984341654974343023678978529195964372943983644230805809197889952441824431052787649555389237042966496331119685269679767496040978335059352815015047106003221999007023426575625330527732845642079160468715274779458444511171352824300693840323453782817336213263077356179962891009802966185783477357310604804682126354199455484081983214724449932827896873236333392496335086835653456469159152769845320527231698250858885717473828493491734251969651576268875713755304032561592244918154680052524983319585409909004179591603178443152839546918400693522473463256166218023368704789234166938342697444185315994194524667698409361167902345866022958456174385082567917613312699591064553761692022973428021377923015603244800357376810967187716829753157790273153208485547934274941577639411022811738207071845128188281878211430212377443066350100799005549834684400648126460381795914614410044631023651766817060513612714605866227399485447333364628620760614074716078940118180095872953025896403305561382925869627799406927400003002855676989091600059387070292963832095549821568694470168149009683802656872794410986278262772180732592062252886292207273347099264171764509617178505626948444590272810393806922911586391899004805397697843892089157928679285599729656171913996760994849730934288378784929074629236814525189866789999922238045386796026169446673751503570295561117383840560040899032624977391499212890936899817523180682159384599375368475551642395152964102931043327698973360192849695675546641385663120154031935497648531294246624929183997441279085046080808858325933886920888142860032939974228611596847532601785773046428335944086063762382680250333639134300615779977489983607214475211680130215386533579221733696866345282584201387865569101647819276396171123892341501078649947532041674978404917805305782944478547837450900804578633171558468695939848998884211398372276061180132862315584546563383068422093355154253111301582648902322834285322132602771743406860652320805913359419000556278254292188052630036588379375102269066140951674603335145233070426749199401698616082052497515667234489776470829846356021532877010740853186876685763999111032059029260031601017039148911179608345358892048169723429164228520518808682348289627375446140490682608819730552102564788701490577802499990459097170415160033869802983172072323513410583401766789247676004498745758773683577529252774667265454061489691306128027071009724107876437029573298562307315628412763011618054322007423737639387734418202996498281129372042683749331622004976995986313106254367662063824550567327024355600076771274253475527143781295488017677597790238228854914359625982349585032816962376050157150737981533723536559059546497967039881936268670684286548680005917861241947611826080690112445059507277640725527012304953626223964819583941286969451288838594772885206953282859718103791812837313575463131030473510183065537741250316100926144316490196619410341337546740621638171071605476809713331904172600055819427661652551113741400081660327650991512371751398508198850233491523429218489011860410833977747379672164856151759480415088443807653499593103571422265685228407669555345758156999331501827442687245102053337724694975006075543305153092319895376329554514262697403816244308606091042136122128797256391633324678442105414104388472818935536447900186755141087846687491566945156938930875709753478573243365129125293283347129838140974240805927274172406685024202223987421383135126538030743559541753410560083704974726677957575767594508580870164459610222593918214650908543662076240093880089857035798053402309106705064810137982952187744603773094148132283399040116755197475810909048236100911348901281584189458040947642053878770528784646103312832222082625757137159175858433580951375920425114077269140328243152645101491308864785642228812103825235955570898713392664095357647728119304476285653292035087186471469392752604275615614830007632754728004414631433323134991128301490038928083312383106887508226491071809805601620910901037447385614959131732419160322876733080335374215323736041641665235928521405051867837995837561040054048708431841683079441896961019499931468135130577346772235557119365981767604680964560922080609908896833693106350863542045595083171580633281009591768318677911455487915025363717019889562486770161931907012503285679535094802791121442913886957877776989597679420680813241870542638869216674086138773180208997842587865699302192595655704066561729879832394333270846305436937393857051477133278309432649915903810242861230814374754050893041952373626261005894261280624667317631948047602690035745873415724281053182929925496751601669170478595129506922783145632612547363088289460876861387013064703175362938829435714173477863356616199835271544186232391089787022747324272648507965437141780041206577750447290406741915388865012638130806897948370134660741120384936383949799762404082633359744996570961742126700696682754806580672266652018598260851945555744105976900263180895290948983297564514020213774548271519415073229568286851574336857326512756810076198939208671763944904377559462283334618060496009388699766539065381121905040893868529361380167395290055655164315984202820585865800133390902040197475455913499884169435711697200838800472322985915354011253181999574330481559000703264161530730896967567028591179180691657569843118644691095388365388584102374760959719326611725907713658579714092379114933387330039235589965652762591967225479193108029240564517756033588165346893860754361327758279420500696116042329264077418087672656870534015015377706581794007073941235567731206152875887026314326433049095745547707667361771460491071538247458551803267525229134983404440327416616694383162154724221627554344689977726343243176599642739644281999453566785155060926718141917592965963613057683135472281483678897267575431330528519242712313289371750914353143868716663454904491490636652138299370527703663020416173991790297173709171617310609086691302048417898859758451616491155342779617679329494206256050780986356112428266816199432904101582406719640698443974424283435695485721161571680665932049893125459761127290004280486378016919969355871067485874667703770230133168002349649337128961864099748686361984944207781185109650379409823878910384423658766893159131813182580305095669894958240122839697378874432929429278485741830314054768226643467090275613172565194764431660179222740510730396955702366206075188488378314804544674068304541905038232588663496052911058125453498587403590042829277630596664879538683883983163473043836321867399027117741360157916839626695407531244594078780610644395888805827533376854653865636124546713155086382278381037275870939031851771301800443771440188801971448250265225537618589248102704053305290146056996453630800638147297778367190337553759115265370754017322331378556536559445629336286535308055026995560858543336250764581653247851528552320434453338067454336533294058482932977928544213982762607456083905467399187055512457673871129092769603280656540584631113238595962298249021105588025654955730411307961807878021308982899904453239256972445276802813491741219190558383813029605546669378865188346563780089451339087610551929933900834550220289100978990836104736050744816092810162493516190636276465238790687441652321678569702461349482020783510413076029454789031413181590348143383678108426598630295939799829632171542170155478274383172014882818632241870710074714640570429810784107167852775434943484551598359093327931989258102253493067511520031914082315032742103671624791841079244743020505815161906383804086726917680639172538634144878063543205540850744075208356130279275341078926433032280507771064971378098033741830053401727885140560085142014398806043497193342424172342627511169032524577793476377118927453367107228527303832268404454906927982929252623305444856764454389410366875109740886709869489522135818837436561496063519723879138948435016862177706704514697706217152412891069798972171014438918433879350489427407079493956947248812436823975783961253050186276863385568663881890154938931110859531864627109741674343557091295414588785118154889787941548080750664649156025615854593921925123111052566300942033917495854715055287345584216874117649611772604125532018731137079774912721206833604816355868255073740671383865958311414929942013822013845866698827902283388382217985347697245200829432501031191625171905437656420163592418512966382976117501342776039135378599242466821892075134565513179299704212435130694702500470601264653116916448959008743447805512339627708312650691347810426673665185466285630232474104821824391046223709548577296896922578202318261854957181889291923425886903340099239134740133569648696589283627194454517898384944931719150101517906209415223134500387822054666426377622671835768749279641871557497272713475298071328187941441302027807402068010289646484096649401765226056993230425365350724251049534538021876470646812330522533279241261254618102774506372181417373317903776161724319140925448619723525616711582683166160428748887918644369377454917899269770724801456661411415760369878081470636867851801416298360691255976700848931630307983430042094469638565974798013405607827926220394159732668189994240355591464745231962651047048973123794272073303394768858706983085844595585346590744359407820198225390126858329968646441685435965461802352863742389448592371859585157114927091558395283102824822206279621620617695973024893373304050993412557001400452553092697589709254679051857527350847292479781266506552350629071058072220900557762099146035822923746850875957804355281312948896588881760907830739642002371499959847382136689452987474892061116259028319485381127576801386684368751651569433070919981527791652833736468614952977406019218913288363744587000992144697601494761800449287184582849933272537413945968169915578230663915801739154672404228027879319841518902561922462648592843510545984952850361564084631947802331060090958236137315722840603626343926034531617059704793483972893133458648890945576467243633667538080929417195962714949132465105818248155628435036721147968045871544995441611490978290828194019460480781285932601223579157178074058818055549168680401866085757201667812618787679020269306610403799449367563537802012286796523542871867711870150222693143154790339173803070156686386131317108084555100636528497887403728337779291004405995482838670071300698654610568411837593177919530639202477409302451641753157192731848078314657993429777391160957940856657015456736709775304035208281888869937710076520244041500389840105881396003832157949538296999834712771942835022435481372761036726662120936491357138709684685255634507866030153366266726647301942269793989074062183205800161981585759142745211346305790405845921750983388998129508872031599192369290166655856952945324547179947141756960765583687710144425682504507416218169761108769816021571122099172299882494245841219096460275213221093928435626663473374406007707452154592837381272474500607256638001986955983763660267072922357836174413993445519760117718868690143514753717629372083182564243461936883805107604608499470246176280575690291241256391269414235345412459559220775220986443561308162435410967306253671914698970678090956037918285407388955091556417738050022337315760112046727116110451932435419555914495532041272495980304290762108388157507982406175232926007089538305943799067694954049770234407152508400680486359291462768880990581355637469302066986424149677272638054063012614877497757361788218686239065014154686600564637593041703316617744524466284267924694162607591794953412545858625273618794341307654663247145185890342451144760362034230459223166556515689095568271522746492002814733716695179772803367129040076784216331889829128242115740594029745737551483480082529331107156812000603341652451304237781396619341473230946505849907733771281926790733152332777748090467323224212290416220184358306761459200268388329996452032649447217735462099340756054387267435537223928479855515168996834172016690199656809958550745386514739089964548590857750397845850391366451766098608544129233863969428329454404158958312730444065808823371455484788758399726146008916666468908324860919420240407222879251108486357427511067406572244665096203342512660424277614736015817450809526459211284579903952889626083165407898959938964378885247408470981027023187880434702819903649284383102530534474137174418221669233665737550226533201222108161870713245037685921324040519522242019971068145874956384714896272882933419090544848309134617658770388542346380676534003239455104025122612600101102565088709803478782727479426607855723335415403357502011874473585548313261685599656165334692518834210744956643131505507700705664226158799245983587449307394830811689048617214991368275986840789101973141057192059723313237569051469993581952263916072578043979097305086639509087530798694526356090222519044419033726138252705858741254629895445279415995143887476419214463471150774505769985892154981371075997607936062746929751299842059346261829775898064675259388376169122015627906636850471576506523900527089468530064259151987701025826226324422800353200460349626004966637546403116083223203194265171707828167457192685109781098819532591861146246897442950680937411320834704503390324198166166189337891883354535021668555081077885617233969221622437276693676135325718177881982347959827860776347062744136266970140981401403006723694622779018525040565686265704360442112788998689841304141025697451875083076958312982784657865259107750840639030168103375326045479770635503986587990666297972886304470067864262930188382062960231403632833945762385247496577477967804421664743447831316881235816027293349063652810454550027888994458476971073802520792251795618701305900554055198908433017588689425532945004553455447781362181611330821588492342860034429225241615303510548352814187442875222864618989116174753077347040779707785742675035178346947185607528362869522378352988545894722220749145368556855900848099995515840654193777102054380527681235532020379229056262242036936100247550426873889196328820392538293575269056272865048872747803064403175219445917909749870600496846405480914786982520431243120207753041570227297601662741752194435926324138726917718537826547840412295646896612256034725022873812106256714359307636837455206482075847887020476705634425691285891871809880453581674438554671815839769550697814195670011537445779234017334254474530122684560475800706817295894456686327415018785016659835548514013846852632659132167596627431321706204155424934276021083744653033228404686909588657453134529928172323324895850647579411921894469286829056742766653764950746016355962562152246950286209000351694239199912992668541568289352170740288862740122810496735525341962151957163902377174945689266996503582480291449620131431179585225766616735165005925491575269449070232313798765569399227831876049125190494291144156926006809184412082481036301145129437341050550482682646470711723332797873176128892069273543913913898542972120111868720910971142622427774423010660895706217287443598754608242765891743830679930070481092647204036284006957353957515881738212128194828158714250296304408766640952526231853896577333958952999672454967678287776717087673562494915528650057888661655801309743849968986873644475058321170454961441150639600119982514960433604241907605052714942564350139119139956899237021343323359264983830911317025921016620701649787544492097844009072090928365584481366169729827929258497428428664346480854361659391074087733067933693801989645557422578675749251852391449346227874787934870192818671203684696243100373281452315082844994765095431282335678695218733124284192793423653008054715571536154174283866551288026523255349143950526565663805779169880838866944426239004731166784242765199859979583108562093863894811711175067090044794314758931863591571171438461979678043543656857977296357266466036836678632088864745361720956360188051023279545220320704734089658429151524570442845720473869677834642458408616287900038929364795082181568500086463690216417286762069984877839441051093947128323522237410539799169640167707028584944937120686818633194643955752020722512649667440260285416167221388730771787338304922382640671784036094421249753620696008559107279886396809209430809728727838701625014601327547067264339625120085738393423484617061063854063547534052455013930810626227074418507252193311619739115158086015123270431989300026550177577131465288176319197213145985654976329500892185975876145006274231651508009786577129354079238460649888369639812178192968521182077491845464722077744649472242633131103629697589847467725894779174170281684299731063024423836760355177883990275933969444583500755047408228886941629381886314333287521839682709494947508455628568848791252806903904493416644405118431824637636739021538947987708168410293606449305751856346252273375234718923842990174614460976615456648655798719345621327179042577404608098540101640491164742721869516518037957608060617722842505818970341529439048409726508029186408231837577952637639717225995167194690420151717614163790029799570368688263292991789498684556751636081663658328739505854822220459272000858023145854359002257926272360569503724456445309321357129197565245339048290500176585102510115658979599824228686951599813284949151503264165779138888101700526360399631714874337243204674270680252350710241435485079574081582917073618006062101546432478272391245637814237434242544972541823099529748280154712846629865879653241076000793636375206203964213363480599633933122815671737089375660431152420996399022385782932792689164517079262481491099334268945506697620512469565352468428947729724249409569871694616939470907698040758911593240421060316238393254201181519859339781475450948134799604846286674549407929287915002948062289471026735371315850839064049190695523453588293234174327065721461182970294814296237605302258937367668881851284608506572752283978277839124926470668169698622576806202710049815661650072377935062376755569002279944192857364314841049017645460124868148026325321458420371024615762199470566676167522055489883241931064216539664467842499585561784466913897463596209164798683117683250353420976445570344715013261249680386255209901793214824333335982654104641572841036620932434138250424499161986261381386628834663246295166731671863041452820648334070852186118514081096475316565252760624344308634298842814657910099951751864316517211936298879363182229124911689697691369392243137850195143159665629692369367080011897003421131590153770999698030528196313694631058501250901235842751972929865774032138063871675213798471597863732799462253294669123767517657118205507610560943774748722481555305684913698412669306886176558248483790643186590287867372380508105359247841113457419540794989338418412645775515035829387959760799195193460133025409370282817877602496973291287754393801452648808310215216410006984859128109886147676895722989472598156751608421160657340528740625215192133051146700503197294897454799073166045665451179624579449345123727219660017478038980055393767879275200325068240582684144636806948748365856189616389241302209842049074150779951578203478043130798038682033338838435597694693761053265884741902429208336891807545693532984571841821283682415026460496700263736039435466011829264898773199914937681262032103600319673446347762640447943966124551673563576332429231557835444539480869133351220393212029796985370310842840529746060403019262374433425218660142955855079759069859873326944789459630321454736055121244325557612905431104539710656799327398403293373483157818692797652950808362319623016131963704816999953016901136951487438584072256981351398559064180049180125341938708273122892872542377785477910692542166381891631951897686098339321263877317959580831650681966620655987921263642334582427920718709987322764633329753214172312981169040855365033711483035173952792001329352964254313273660796682905838949113580049004209072391537116958369339676996984057231786138017659545114787527501161568331022877148406764111692481439050180676160044063986404358394087918586745900998967411527862967751675575715811122348043697135190737881529580442153825873734405903023008691288804140866860433236775951590130882244499275365233281784782718571484045481202501687026324521837703227972018466319678917523233230825986660407142645007481951894935038490250029931663727278063036488434192530502781862050477051255151259258522748154358480538714568550578642480575115026746762575653667178288244332053616119232888148138316457836967116124236679230717378771054439402550513518353667726535399089848554420971847682708116068169242783423542745499276410936007368602248424062619168638400328188921422351730091090505654029743854200323452261683652564808121778137981863611001565494783090913904763283827195026102581060517986489566900635615469586371722584055916188549677304416358675028265700485633359485693314261915623177750027601506223521365683905282424023062526274753294265897450278969012266607796089630763194534182994282984994050090476844572640867896740560614020456198482507742972809508700330888804325803431230817511065862176120764924967429693698413863866086154334718360698912680873759564216598735417889061707045300100148159247342537223971646741177987154256926672813159278916220065808293644219317333933500907903905647481190616338368225220914213408504261121202347463916246759697506734368414536461123457254965193564396975837628788064151263127099602506652801512228718939839686491762789497834749419829103388543599309647246054289620912614679248749430996242864900677403729401489039857907820393309693237136612898831137236474212634188428049527550237915573148746878843396154444978500012624206906016284129482384407354095140724771096487238151948898182448305991505870970602838722723906528449382760018909023040963541728655105879751366560544456985238300101256304765798182349208327941071745182368748469294337051129926924696851490079035612442942080475833574511158890449753820744803321303147919939038557130062641686971151916792221220809434391575577371812975721492822480435765288199579663580873210484451593544325449567326156322434752083564542445727889580542394914203810468842044743677334214628234854991737699760070804762175664867215447452510548864722175499757333113697540420922917689019757022467551763754986247666241243541512323028059742487415104355082905767705955353724659204793834467048074998657569820481866790509499988889743820736224272572742371331535374108724476501035019987318210380809521441486172253104220016842911091582900405107217097769624541959987250980753083057882222534798744662865882638399401329216285438574006155383245541660380143819090571435479948221760518121968015066592484251888647018867671022697360428393741191551638024862307233172712268904625797995636732374110677135488505723958409672749201960941903823918356225485520606211636015348155856691246430287691952255152570826980211279244210558412812577699375508115539286121619475244476884353973828974612763504558125961959885253749258060392690168234949283467331776037759801448980464355334970706413766210499373960890115314109478810521930616041430897726832391068011670541596934238057549646021978447238521936245496633861914799543061565141006433103837698224114145114096563001111780185723154464602150939576707616994691918372390144327348003676624909381863188779691365599122768093484475060157643732122609073436320425872037913227965362340531900135320860486469336951784970307215915117821018304127631073670312707023280870306162355591380805226865522520066311339316670803408213145122782127589089519366667462760541494559004989515226229775701413075059250247136679486665031092543194193742823824501131271513849382035170166249160191373516511079257483957719534976307860477329150509214523146884650512303544975820047557688294235247620403486003407411093030883786449608684239033357165164421029611021121222336405812581368536784130364370736187108796121815957760899961655233518411046127496018314603428668469212251775729543255825905514893198789508152035817724250014073103516251340692778767794313620795126237094919877867339124959186627952121244680622591677409514200802023975161809616737939047549648267514513288953680646887755519176699902238951516182987429853813927351508865737715808223412190841687740016198146801284541678772912389500881868189042973370026909472386909165749705674873977867474676915843820518948948993617402902768338088469254250667483048336214660436983739463662167454015669773113288071047335552372890668113409212496089507856450256675561731012405801467587652526521085186278489641364123286859987608626422426128792375485575486383439686947933561015340933742467536144959632056252282013059280030195494005315216782847286206588778411866316847730399329486680880663380462559225314804780058993928351989017486965499862397047402387399455336736842916497741113699113252352982323170605988221596510978376371940386945235816904082267360162270540973862151675035525757061793107625556491911544991603654957948415795058408119698683768046086939347687547357900193677676293982863660936691982909889350454059766047609520596848577394452494321194049800473359621356881748362000583968376067377750333585189479872519271725322107110017839247860786412819832004863557516139274075609910061061895045179150953482285842956532562752534047594156639383018715412062791656317010384607563314812731620630779552982751942570835398933580883866482350673938771710834381944395504907917095058585934799858501553293877022454837849374867937093147270156411656812098212224779026697649901003448160270527131982090944568908574242454315176243575014603270191873865084217436847600411103811320293349762401439921527164686506245619939615145790218817908456763294277450119777914568010896002671365470259883072237672863906779777724601110982467923784112013756573668112353629341675242746094776642716746145941046596143422791040543025274939712369997817465013080589129915697995414639884489554534636489081215318337910595901922766831614646738204718139662975155963447713476143690932775656851996046237014119756855707993414287103620036108657497117263591173523085768906279294888771258858163660544083819934631775320033536233923020971030291385607935227472468105695221366252174619791431721733780023654203638193429208955006788606903452345648215492095526224781538889101396524306059446632734482446408435451983521586361302565465600444931913633307751462591687273395492002155497305694878358266628953374716713488835275349609137597911370108737636440522844560857139200488196943919285865253159990923064249568137619769210678123535614263637544062879912818210210780057554083949339256662844861212375806000866358292246569848312295777590167025502058467580181489757084650174522234640375854090787619917808212166259139324765985784657012833058337946242104808282515952435125727357581737544445861901738881484731138589248809669121771768258629276423852343092851858916112839900813113546438137425875049152606223647391815410705477396257084967578612166376923279270135518248337851029636454536890926429042215175325556868697453917464138014320137448512810812853783149027622858846256263760754250700075659818962042482124704045796152162958071152034601618578655758071583670523767749740052003417828831783666831921553958993945291264222311138831602957413095273209489666752364058057044681218404308269419544613910544013664294674459100504145456516924012212931929159526568246721513147475135705241463702868350600558512488602940158428505778371615888092976043162314275475241898831827806892724089970935926284418742060913220086279018766364540934625076869485472142621459886471880969072341833343317516774408493104550099785149378629056350147988967544558384523638595403732271093509707403196777935517596813479044956041932708986497521314363862430438657493206490145022639489229244120099599928193687136632269859731324702725171462644816925154771053395309063945952864631127954896261463033274726236745268347742151414721166142501890874957897996652757559031213952014129899372095251116637278810173923309535232055023182422421160837565656375841233150119144222432777801710639496886219298939488233041472283316415015213602656198707338445884759982324312876050229487110163505581996875134887527879636081499071222129715110943198012531557301622485453472814984516172480838055043437491812464724882609840045796287833814629956029943575815871291377612113987641116052732852179275467650506690408484649357814267519809994782406259284332232344989539894783796604204288527943034274768433449766379589345872352337927535013280239765212151614597194041913711279590775525042461963370101227904697440036790012196454109743654791643126787969317841904313061898123175977560088075431975046948687602896411921196829876548455978782836807051082407134873520180419970190398806341520916220024591305628076866830800978107133469705382829379798983717541501881236023339040435689541297999079349092383324138221720310686344141208602760956235712981894457381762618342934895580174434624024155938833051151499020000219044693480891935408671107592217523331806615998348557913077056410414409588119824715166716679589591475003062086261387486612308189514609440835538135451414773094850058388330199725761968975651450412290795418526789267119929497243938708751552639127247931772295543584332748668912432193409722880817567915598192321785821139051428327404054002938786311898796255981985424449784333522689033997215191739025098712241228705201647416897503820486250109505647095105968767712239669044900591722752634023625107968957373642182417022911068700459492492848579837795428576051629023161750548611771726780792856940490465963793636157805032606982185074684871942530409426133457798679043567545259428298492853565542623137770960387657340215135403156218137608446422941237642459569700961235382249448118316733825260804805832089870293859081723574105200205763163246386156611198654926534852670390497712872731765020613505959910923712165267699630159205111454328536218276570622743704585271774541319104772313370719321962269979253369862306250221424181484977814900886514171356638594536888859578218171428835053331586746330455991459293591172018947404547086902590264922502787825075315761023949433578315021382436820866023532279955964303375611227776301251150524977741609409459626954103095168431675634688550312015086826118935000272134678370953482363668420286457064891483403883479004525872431507022995724227885107978656002955897017088238723246081821532527708498885568347854142890686144153628079987159069000443851497307734160969297643427886304648664418118100165339316505295399447465122600399269344073077206069334643172653176823734560371052163384127397493344044491190626221712942427862620023627794480056785292208126383997808112840677404074759377965510626164502434056329992182179418080240670656542330680729547033129187613580677007245108191381386765705877316885306631448725624797855324742234202937271284653117771248675396146378614141250096204156850900988185194252750767940570334778507677088894583633557509132594698426791883655098004519454056150115019871341772991203152016372309622634096321997544407159302966947568829210940861944841332881790619588177953950763850454679853710702194211739403450048797438132531864130530307711855737535723727045671457966683005114620182565539139086291950593285023149939521589678833660523600029250043366938435974654172134297731480823455923170286606632082449045525000961069468039937449734366314119378872147685041741528758854931144990637730873341521094377962004849338161601285947963623527941176122891721610968402685070742289558863621430774017516497532658265039008711446307311871627665405118879597134967287338193455195245048128331505854462787607189525582287896044865014389794588448055663935915856967571325179472552224736736533225290607027714707318511224612746460800889075036281603624923460655335706538530043241482733644030603171342341830186896663124861733619147290574720911102278131529565945203027303569426218124579756404583678185308076155816218264627910210394188578811206488518403325488217137552194030075649464899768407103787985852492538072554818367550365956283918350471378757199355507029924437574340986301574833057830959906328763006247407671909495621520287326920282471444017784426209310915462638476085817347846082249517752439973659079247032134521383621328532798801037863853932861008046315953710710590441930558331565509243239460351718106798541766637530217716956924610289244300540224375842212482765953451477291178946717155927368086551446011714760849420886377744112533893263621523813660251844171559937615368386671739054448319073959230170535378481644033950864262845188285722078709102888134213087752100839898568820986013641028816923546451729336568229141287100589859034985061930520682324844059611120646176180179258584538638474829671002584670322922499770637082175530939297574009602830412242513794870554016029696094966866520117320011677011200169469990059139063617968096508852550723884119055149618303266337043576999836715519107670642784644988826925009686611758207026409771235775938078266473892890005847111054487956659168935037310902891418440228383975228788200671535119547175023376192444730935358960193943701473133048027151864867329468066599103444154895394666141174749474611914284352614029267291275797197445442610170124193918234003376623502523630249080292739549915388398710573617401791490372205381739056875272248470611273300587758980832276996855607677743045349480482497147868821878889383638810585696565718441426393776750618956612334591117335723718608131216188913747116375819759864081487673601380772598861005164773122746329757603385345642792631411868963970359959208049751033688631979198457988604816813354051856019589335585992677897419656101187969553121304585703910659900830502987579057409165061867831963662050305024403352355853980518596887081637832518660755665124970929728039335892313689849030461971697840706110944724044985286204697401126983021364231593545537234002774051735979389122619049893307263993185617531402344812946304511404303086786455944904934432026824494132812262799418298120392919165677682651837402418299690328497061772013183366135238560636069505277778486590015804073420338824761325157414906702834007392157350601591445017087874871178780733910218799443486537952453678042795654496869206513463061783796696424277021991000616251954732224907419498532690440396451712391331960579454674722405767777244493018851252350602942895444640985565381211809177902320309125147732785188914625933419014723075058128822471623756470409251752356644557530414111192172428021452669840407370343964373909878564172185696072594558219904947062516278589433425565101356369762504213052672536500335190426112167028423085303003113099592861520982603837888826423989086675784124311133271213405765603761102994153560981123807653529935455600607656002644654526012624768186472815752818585613741807021915232203569125717145329085060882394627779991028130629419245898992522697369750918115982158855641227479040853520215270724175035046522335479803830924653754042942564389429327280954387645859579710135577967353089531848643423015743630374484695749611969181391078498923144115861358256875180795578249644372060713557695008980754797762055407455443759943779852168803798322914134889533900538802649943869444840294700116445870120832644085592897624764925389815377986511926079160483034902874503321375887066647250824417344449828418448131085987850948776052941214349453844506516048435393697492668587808415323367467811006098262014768472505291562426713631197608219892477160394109141786736644062183391777083109138144615544661504106144214749337224825189284356006160114763287405325351077176321439355924940823754011593392535004197940232545892176344571777221195367290114608732894224367650465454081050800100482873632595732445095810517164675328917003347525813288595710150079707083118015489016503715813119310461716959570713810737418315330699142585131521471233997324483634660524720145801991137792160401945862721428263550856331903213312254480677631086952871890049564703728887285165604393353457206992559508135135327706329120786962654304927926858888873050963024295018219922495424578987286168494302049205078651586787625000200104230292803618962785974897887499601205613374063639156337460207903168345605632383821471403878874710680894430311340979747164320815330450211053195279975786929949445549129372563520292475087910714698839487659765870421611021643223739084189399918260068154609602365026332474984362864927961709605338792163480478525956757488339284624932898823818050147438856711445625814381871990970051881229809211651217174519330008913226636963917449930568466940668252945456743003788048728813655038333502479943798917232387630313107425314407510387141246086003723123782577771267718545060447476609765380172401965396960661803575804600910828045017990351869475868028257491636990318032759196089234073991573104484588388019816653478373978233755706499660160627614167734675385646714395321604854478392098666108220112235628137452754321083879893822846426127502994628913194651354149282546215259466722434000049588268742932639877080258652649039092934516299012864329840642787337116128499494042014899881240902170510264096222508249700270098320246044142124644653774668646986684704660579535770675850600218694967128190884095479724794536669346494314664841534686616718689959642578435396008632800287950207977925986893377384641575466753481243210791656970322403285489991479105880710704833621046533714297792324650250130878383338479700151813290050754799251552997362837228189694478801739973203838698886852430855863929061653852757243677575467458059398418535332046690650093692091890190992028084791989750591601563804378167350721874524999961199160792437709313206514508033552631950965989238316311454782122242555043712086256978734674286192131551159933521916707753000338758442893259449734226204878151804719054522209268956675192619146578020147243365679288983204521803989420076240418107983142247829224334901281486732653388262871456326960780945272427318440570307989740863691161678927340789048415559999240110166404556902597270063122762498956959802305930634870492437036978324555788855780398069624131966433195327621882595382143952037383265383167641899425179199427211527220349317803712156048949829954920082768457292250360017666463937823709316661828357723140825528060149960028448003725637955917765676598736898709053043592869314942255849738973295273782909874430558875917378815431075391177903342470515946311247950818235261848286395016401440440129123126233911055631720024119292096036272257999814997395674257336409949418751818853814744463639686879714520372843966375804402761812413558236564018310395856228029986866248328639275054431750030775697545939180289957914422724482426864697526716979531165015371836718867766632204858231932232275753286741064712258894602069379463025238595874719044885277906836444555334299558219470623911284478287451087705900336844533707499597870722079569892239522034126079376125211828364792530079397095829715619238322190047176822293053622886783109802308829388697073034509160625163547744235461558062793436071623721779870008515028270135055175229566414679808474368522253283019932402372157478340545590775061494112354767895638866295845435572094421102234022893869002428075699645830084327404147382778102965334840012131425951495148499726640247793385977398318615282120916218965521874598510808013083437579056577922162074228037699616252073555259742464853866268186299197155468463572136301959540061450272783556228961465584480347583814137265172577486925116435955507066224761344558339876073069899452387719107801852215805365531161491657129969576332142335287515967219244658377885761802197998243669801740875086259198451562982336603352304662555267769272630714829650871766563878891559327255529353222221201144711743311914421517503531329322141551102956886156054322686928288825994284948752616185109948113590908455964044169626828723089225211791412329200184416044954114279375982008564756193015130141066122714659458786484449770918453496645822947092170195826769313799442932002095167030794730077451144550915542739680943283656617392730975821391419100655766371346826221555375026147093812628125453498318848452871772214201077348026975790047886365198802936474230067929863704659799098534762593213335472164412993130923578389827374472563004804577758590614158835356280223058177038571370814476853766257978715221102821542100874511660377792270502223991134771731320912265748474924272286739828446480222909355832108200531549651968916889570398855163902575567828202811024360479287474415070031365062725125997297671120756381839654182387124075297829852960603706509395061135037228078986182023490408413069579340561177310203017753678758333903466889490378484089287941410343591647911692203045852135826510198234942364099444123783773455250803343745752369104245856448942198555030685350250434704772044376429252282347254620842515251224350269802084943359918266029648748523232584924929581541804845411293078756408663677130365728371456358418081798405200605983689954433720060350604270719486682418369466315873392476692924012374147801012588313962023932342128910555993895589187088881110920027617251646387494809088551255402671629839091791539462116059422901165419211288771850739791728325343897653138622919390846196183262355221110888874490197587989978849683159977482365149833500394154396381131912348460999950010202943160607962816571220150225624730453949791851946302213833235330724582860639297327353673779983452144865592079287280097019424074823646923764890933424804467411762984573725835934168468195400939763987192057481422312652415512767927441358503638299390114511579190093401952396475443653642513214086043547041203676038959149460332290531817097951650953202421718365590112317905563581504814353756026883914771299126774458566637257199648392930164768927343095751237678407985579223152087159630677625392063334004307142980099310661999412814186807596387654711927163457279671365593150477101334076515956481889118284257040133294469556071710727455517007285176296413507972369629707697049632341603220320011692014503887143656255282628183414189266980284593295555453778215203317892492905763651486483875420842665271685076665546276158939526535036864926752407518272192356270058776812670664912311590586783430891838263114572778108235452587887840754918955008023070323915373173285957759412374550768205025788923432049081233775728372065031404955046655784870926389898408473148725379025229874602461964901945509513480584451503284529545505451073165082284325272095919002505468564919947803727665371120439186896782477758827786270056408639351183929180503396379538355335643216024870089850100364073568368189031636835228426453646636495075211010542383922750458493610431941636652753155816956439493583059443500085090615767715714575488907468555705636082743047399962168613006645306054048432187456302362872248847394782592238423124482280155442351452761727109198172691350388396401181794909249832968207524501220404961630705012939051779222666401700715699051450841878883776436620592258554563908533853636546606528869203707909808780426673504157323191564739589511931710105617000483143921359145293695420764160878103740968139008473363153914120777157000066980483292596804102451063249566173621470188104463051316172580673509851329842886690348236198689683297600285140753592569382065961231822879032247506976477971562304081016494614287324740486283408990155473679012922621093776306998011656559452246946613495129335587524154169297208604858854295864125337255471382565864693827701311649691156803766778233402997327973339094599676082303994121424110527446160549515829270737295228986844832611756480090383730079365358911846990359824819302659590298381994678686118034791195568681495023446822078309578239296551977023761656374519031060600335404051505706704583416882614128802234831278209647255343720095440833917719777902688534687578255908473533599274422443166766580955514936602594658669807788601574165321090871504275986786069145863809279546550162016924572297374566389230958173663795909592765231540073254725498533505133396587248206232197974092777807566614017883014469830839843259407230761765659089486725985807454107967600408941705240860785754956911882647623583393477618920287609615781160954770486877898145562313056339240101056353561349242752911316228505798660976211006364812003531756317172223139195006227337696654269614155988261755339525758336545326188248824376732711536982709305164914831001456020857418471833043434449167401757979643306315202660713558251391120992240426465425654979671018054161560330309526373752614444911852462527400811862191058433096651090730130072852625490832767958657030878889642619379852979089504350711474494208430233377709377319673104669126096910430872895828222640912888147773072440491350065137187946148620289374354030259472096652921005459098131105667893758673841966001114431865743154914631884912834512390832864415976576304705770599767498363864991496250287554009206470286858129120874355126396447849285543866420543648761902101892053978927600976043105698791759928669159937899695408538396348286087093326176580976435491307320217779317730366525641055600082749317572283094221334299645202778416843366715362177215824072548815872641484909289632431628372181294114951139712737427191113956281129628212306397310753866948788708439687152832986966129900000626383407628692109613595360020713233499147268180076929559309477714305558571173801926838875254883063943335103255672551364019438971544346203689985883476072021001476953028465239094769673723096949819656170576819724305168055881027165678369461728284749154300437104181910343208782124868586515852930572783881063864571417783583081395359447369624539693371460313180471599676467718672355483927207684709065051360629212546047359711073535421198343947593035609029281028576662712581885110054977088999837339670610776278542783124597796741852312128031961657572244706045916031443658142662605051409155358860392021390943680023050272077583856912163441235602902801596682969743554112191130387444815927543184974213581143405978818956777120477130278465860221768926474676437045024385302060559901243699830118689293973036847832499017447637609770975727698162585756993052183285339212354828883914346648657692940016736931263454294361811322940900783654098833142185365092938835224749437890042095675492879250342021606200525728116302004567049515206020401854076906649999050759418139965656583650631309680640596089838205802489583879483981084347955773813552561428988296833617949301661687233445713464813403521224855232977252999512802730209051518694620099329589239443589829968842461737875491046115747926355837355262848771499121875796230764178440911262283985662823742102799944968061365990286027233748379820122731106261456752747457414990651188890423202033470490548290859169073620864006223325078112942105948236769210255222769665764024033030830764136751302361409637710234472220996762175075118221233622410761359791038602600503953555227134066546165525692940280727609607353308186329984819160622549568504472263148857528184713294706189961682424795183393762914338135412537201788689606900789028145827241535529751784006414948513271028288388557484569974562557185917672232362534382019266784700645150644663009023482531831064730953679383725715454847931267805685363581836546562182780690361216853212373391525229330553749330543640825303975612717988923674146294966610906320994403157036451743143075135808734090351947251228361962886789399866194219498890353817734541446679999591543485115127090509238344659461997415770249591345932111169272233098806030034365212470580296007353218530973754322874037185966727476650924169477634078338819280204346180254015205873607551394015252442406683737964938545380051662046705303397670378721375175633277453058236893293874715407902834712659304325314840237336272109595164639078178095230506933742337143987172110655642990416710245585215844200491420733284750587478228244415237944259728635007047628893687059467336356567881605516962437457239683520640490780523830880785892947717170990820386784067589833950255942544104055879667924749687498815193556740927793423790861249870100322460767586146128249797108780915680598970652185055625568610336367263556481457027428860372745043832421983475446993657502526586396798627688294593507315224081501069924808188179293843354748333996201460001739386969692484679386553332547823050004932620754013232882819407057146226435413282940466362125852094413203180317376516382286194231803933577319479659858967939372800608572340695606145013336163924024394951046292954652600539302466230230050324702828789150535983977858566610084099518044040443948079136770259988293273994816885465259849221397004413023067017183911805955569007723656215432899132181331819357285905516496168964153777433940093608783305796795150838482379425585143463252202821419541973159720332070815910871625455804722945933808917213278314064593057663785453315382476610630655112383319272068005802599784439781060457682714359978437736987885055475914432435553478188471252176961310913176563553416348100848976879230471286237661208333653631594718386222583174018374785278818902379737240235189679009190773140884267961361050426804973757763818710901462705018395394302824796435200945192224076558474420402639871146951808695542753059809053293837322942676103893071733250745848962728682425305935350203298383812037199736043081095147816217531898814803482714419120775607041343717346284723533343235105603452510212117865149038715541635868615587368022562284856937417217233363751487101987712393625277113226417124393771003154663874094692477191817514772441022217942391926511658606531027274953089459196501911160221629410656205542624559101835774963921032495146943921089455921435968711813354972124292599906169602030717608592328340297886594981620642718587591105077102540927803208184290175201484887994347178700941933860091953714713191526140873089488334802590216631958749273638751723686475078964041061833015892699685778487647555096902851069473822723702078735971210982774252431586801346671774616969984925921511086274371128098631739633341650592465443368217210287312502489018353022803782875833314616669204680116184746104843130070738224546573416672170198846943814139946662315242003904903306150638153452808093513188916033876131619567243818664767768977177313601444087917445328386272910286631109896257268733459777997136997234268535079944740851995918571953485796499336706775307977759673473785122450960904769422632569940477233406582774408839729926619121172892100258079010899966703874160252255188657876587113349553638594602596379066486602904461003124063769339289464563494010441404530296598169682900885614363625514535843443953311429847977345939759619867095447028835589300148128925395492621992057029116779041471603998118110119571815085614504919936913937471198033210303322575294530310305106887452413345948572018999823141588527616109365857962229136283719913929569293279069701150660561659820309283026050036878011256637462173997251678270427298393694483175335165780747399688847259817388037301015026335456189987131607556365319606882565880309104299847067438012926970424098233263879848690895863753849141484792945692465708397975001479059368258026236945668049717882321442904408961445808038720993557319817958022330757345966351954613844821624010572586983541697271981079079603758600229389850642485420772388923851659477553281702960902593865039102855282284758653662835074841488558751708116093439716496485902574605124214893834252029149766545893323297492002475696020222495524225905436672245254921622333212773102399639240858978149437337955935037784709015163435449888519195308977254738958561822077653261212048487174562869479128881422646839918577668433965250849161319917653207074213902561880777985925306139664537556249335499822037451535617053065043185362164911237045962579283690910163774879374068186397093598787466398722999153656758872977146112849268796945310116065639121254080267425811064046439535230438559783731662726323993995508283349375037804661202528079334926411152875529456776632834220423856934357448197451932039234380258339333623473705003856169894754272626177751976783845124490943176394165638862611378451563291608804610158858624829063822063117003625527266193141904612821615960392110759617679986627879932444000533521394429262575406852203614218221166641159155286894226286911948303632135783064043889628967385183719232513942866390311876650770465753992461877619797286249768736258122085499940616187310544810079607485712597119634585635273713676430556694550167231643470217670539336326184991885105433063411281061747321350022248984202699039927448391410986124044930250634230342642237360568072093400804007586579811053009628952241869192369562296147947027321370175019294499185728349720180398324304790116675906113817926903639134464442384405420030948744926612985786935997720205753079815524440357971238515375339116814249712772289935837593836487799672937069920181047936902592075991466993380822204302127652166999600614026453853411623478400960948963505997453820622253215550216384251180348031871685202515035385505514804099701007631844130839135407105822121350859639675465320467664587920872135749843346416439677734258331747991108139413161264159482072070927854011658080034293273574302734199140755199075223050017050150877229216458354327455093288787688774055234531950696181596190376693131141263581935145910836892080778927895469750493889535563453899521713275938919495218705393042870194821216425996569115784030598167955074723209883427739926003553011782743396855663745059295672234322088619696375866630249605321780683219451780469114186491436875862204927139041978961458191197758132351562438746631483287646300049910945499209645791609657443516441570616753507054798462135828044009138189052449115205183029283817225601798697398007057096231810644297320121077784901061381016173813200559795035890507196153814118796673187679411876686342754834823157180424146355954661335679587126549528719301363447919799238899571119516260571022646312266843382498808659739489269622786298911098709514155206496836164166447612099977916543072676331919940855498853272617776927472333642230147999529461236196648714891312366845588739655704763927996412933509910175160398289597051283113174953421154725501802318100864682121068461897635755871299728078117670456012270895844064136367733106502262914886960751497572450686330909317335083993443324440538006925170317427958834055846689483240531951398151140091859917636881146006862167466950849598875342899529480023710859135728900750579591544237818787152588175257699070233140298291961233570039144358180044143801079511361634949647968414367730940961126515212164239341933276776033650620454277383803947992331810616187256322531254793825077413017102737746777493368639837406107674553966581937857245871979486353384667655854975439158826358827138803599035573200684373278455158984690660037505549580397683365264515726761499051817757686957022236409807326668406517822929302744776094888950081262214876253498076415012276115677040374192229122832843379241640382802715719001880857277545030799531632807186622640133560381999107171272216710246419640636047333516093421463143845422427283243340993253551547462943175584055504127145227432120279942169554096878915399572534793336229280164291258596214379435962421261967740472943235425259652557202546401809959000685983031060748491760208971106507008512548016793116485215246324196618071287332373167131970773825731816502738486284420863302478427363276919056390788780171253600144675025390678532926635295813118492783346428572139413195844978755430369339116303227768338066539742005378556978694400142627867055805760252485501360984886647349558314473995371721214899320118586112448584289345267101144264359454370509169777251012474054716264414923352584359823855066908762782409701842207993226869779830621339336301346588283100477017884719192577322056326193387763034682147891304956726667126404895694175764554192926164810118038674299250351511881034521375813115632337431300429484851531379556223708066672444053854836689625964488649875872735700977509345489631176562236129012723549660570378330664846007077871593485842895656083659925372517087835709668405002993539630435570433800832879525690312968971712105797649134755375460891048527027732884608391167379494577669786851732773046898625449996601143679841095415398225473816680170563969812739266416452689974305269642742996073005839263739286337022758805253359921174628320752333745835482703891538476529261471171937063179022128711358124798322139898055180753303020978004468410517478376146024480724619579406843893847478382685325460838658209741108037760754337914258911898930320505353961894875188619339103534517011850201330809048743663004517243888325192279128367054225478369123698719890923704172380969636696466822502399287785855339284384601769715707902453228205821450892299633995871275332598805806534211847256842412329627544349236165308747287906229260935439066933336458323496818254596344796562847932287002959725642529007176070581031847508201186297931071084855835520544301832388159217227331790872809228410592888636610268489620093672448927425188656011503739604749450439144185136014947397457889745672174214602559592771852508995031256915013027794255225817029589867821903341409503803273979993741906062142533779380733956907400310148604492791014374710390542588432703376428631789672732686421431100899042795817021360350415860585049740520470930103341514910448533398818892874152134059909968219099663235909192280477020377291219771957915800136636498672992097113197898652704385407338093310451409119834850340746562430371994267202726302271458756179502411020868486010254133531925466734714806544639615080983391965880657238169360539645599440979352149365788277008752537978348782975534929716060197894144579432979052503263150141229159376724136860072657801583529331682594077952540311281299838848658375897477115170834547466484119685804814938996670464862810944560320699697094505138738618527951516475627877215692268996375325862893054037473133445026743605366807308020855169516277922130389244781018232104234304874765663405232287308197656045914271215858966149365062559555892819650338735633242098519499495064915079968016036150901734274959173687584104782907168397086067014055830443978912918617905848146562263374683547542532648126559647015533171657745505265775621847496127574492411211440338851127073142807512501982536537556300959003571399846448339624834119751626462687551181833652476895290325844655704507228462452280218614369948530907376223200126650898411894891785674434592996316432604705065713091436227806818233247876233090675979375697094358743446375803774369212474137835968529169529326039556986484014647823855675771534757769888835706516026810876433749529391833419433697299872817843738193717315678704951990284494680450718900529986296886762667263392943578276975175510413774432696487385209392471523541127334607605506658323059965681125385318718428568482629259391892595567251692084578119385417188208502368356580808993559132158313424381203810212506887732669997141469378821192949600854215361443475406106415032387977854755908514250225768935401235224359130917073933658791146564185565132080990176726361749743743681867755901414565298184133092065033305475266389256555592844484098927750782021382055458761019116996245234365337967186377026250895834332874493073257527945367376769106085786337495422562824504577242493279268761649405468743053119382365296703182187966709997851863087982510445529006894565932269052130132685327018169270836742508752893728252547382590918589462082196902714331546001604486925833459885515512989448173495126851217541949206397758977155886342722972151409428992760159548439936271584840007889115717479545411421100082241362839000545317078767156427036291827177410382166660525458568231417873823257117309177377631380558385475381451509040705921195399343747911165252660344400865624001309631351492202905454510413071807639504839376522209809937229098208203987213004993175298666837303086627804813472521008713173328601969527157202480613925404618285039039072882657325664110340751571570461577958399785901963705633681266705102406392915880834533223853406693919174643983077111984460289734356115064365998050677625467560900674747688975773360429096178958974362820116255091939287983397751292032676877294979807225528603277146243529556580242459016914562948421946656891797907374111104388455425680290765560959175449623611228966450975170163396108462756111485076166912176673090505856470277461992981503246132848490494828131652203336928404424106972218261239876705350687812821149862006605971564885076621707414950676007831339714753511897276824912123227913585663047714334743882972136301085544582121000711572990796364832684788379825613268501611241596270905106605771524566624249679074727680889000442736284190040422768566115299633061333313709763592985982877963984689902788500034605004192954861343810927677137458342909490475746966427222358832033091481400955182412266925413057079705705352647483038403590632587117656647820314723471262633652912294963486060450260615395751949118708373973946738500458476749728305356262065547855032244017902145902313900118076083606472507902838503568185087406379904739781472392635003569697684255289713130252505195609952267193539276498039622292928881610856176338037504081132837770969229216584464316486792493535350108004257554285440860005524556770364859534100550205142479651453157869615785391814389136807476550630279613352855635504808468190077925372308104562159492573080005077993333453343402454065873394013556302120102310792639003945027933155281227136506521617336000760755834667978175949252794124357449528005273378124497056338590639051023884420149096267622651036406343168770654803291064333534636824800370845621475119271702861193338908125358457411378633136556247864006993395606215400219163458727307932959157666679103588501288055697836908062795012609732063384890057059719110218078682076200148760844316509895070193466784579967113257411461869816821773662811498553719687551527938462186319670661620666215151683577912351830731849687036177267787925827230089938512134586740135460406999001976192376680292871957795794174545116120802416977349434087199524282378259757018663025304653067783009921077901689432816968992040371196186525449210262002508118527291710921569614985660733071386527812980669754774459124169591772332868364925385721334857938530082572522864620409401264127699416656011331701940862611029235615338116313719662157569511541773256894944381179343197762203754322753724915921300896314195420880394113888952843331975875069610108112200305046181075659291481466138028598020886220150580494901624645472150199618037324483683416697555015965814035395914904916966310526708398296352243830597356772619278896467382380517627043429311676781657656789926197172000644545581501626354226283055566373079265548828013851319963463544135799935877200550236615650335581556999141060761774870021257331679074305865446474350173171519118918189793306281214250596726829767337903872731410844461763972292166037507800931192066824184426840462829439244562609934233948913404334448156301533284285518467016597067837910031731994798624877813483349932009005220834416029392479007847792316554379550597660472659813226490120077033722186143358359571458451810943902740334697890573348614821008349562920987313218214668202638249885678519158508672371002142059515188141566088404284240572520956144155523903387374954563035896415853322315197995697222069463731794451407322816263406647475561751076325512440657309182719179690351033725217059157914514361031593684258535492792386988023167004567104415847110131949712726044670755695339771027663411295176769478040976063220830986627546972809629247098866945920511687601816375104595323315652769595413974350577925025512667112878609374236008244588087192063774044189274331955219415273187250072171667749513264615237341527216831576218792256715648774179181960807216817958615155169451669342902601400696864209534460908239701847562289909357153022562715707877064110911547601542339292094967404212600395483796902753741087958671478984634415438860481493486477453994757002220489916899272601016094968515209353596657248585713476211542551156717060663343831824255305890329194128577235868464756694351055479384185624761099997631665509884636274997227951979014702093202304359597395340946637008028353223518704443565008372238282761117058482691302986150097985316394361183528145349224203516568253837837843796098079628142714402987161749681068844072589087846987856958648999707232617268250360381695161696755714788162600125793752852384161959677935900138081660158245777062716844015735469712658166057661195409640977370172711256980773020198286052227425010611961837252552666656250217963639787792720175857819039317161676386663781871624089282562796271417254146921342854879900444262500057758129779142014368525046610374967097445383549981408666747342780622932481368665163839453020244348667322717611437106498569586686862176280749857624656177744837434953933201875399220216291457262503805733759235705452980417608502727495159627514576356367864264426919885571309609710983214526373540550971445467195542527063465209359696282158471723740971015729456172182218039951345917089501917303645569313804690652025024789763863417431505127414965372931713461317141799488520610904160565253825174764083911388170453953163739035011936419793546670545473121874907474284918803662070953765788746845984311726881353800815653754246746757267733293986442697533113601448339453569335190442557940856311122260103546668266983366233144918159106005779114426922791943513683864119238176486518800550860371866010045272039015067890594310721341291941657518316211924565015781834610349377111673558592252235931552433903775277413171777387627275589846686377502662988275383101180630461858207957570191071892915674439579228570438970101843718020532986281217159182446810110698148066275828796840476362062707419427447272293602249490193445411629043441710316574676738283678414341449833763056097540778769632916533204537046471670994923443475921545430037160720272410489805544024923055503061964673319366637395339127741406951573175272122553525406587715478766399926400938427435239080716193298574864674095881947754927112284892906618848213699426169870901410396541797316837478518917786986677382359092600153770459350225613143019620839137003237561292343748122731852103222973611023748860917202093661518223889784683351820521676956253320172926535761866550294744796210579722597037673818181025928833336243584566765073347584577122984225710789204607404729922888288461304586158739385131455937601427097399031515444519327471155026210875635566741982764449060646044011737191082600156114216243739153973648126391874715438759277749550875286329616464068760274480863831534096508489467015801543734451999407614219455872905495172423764909121620172669597079339838237962463072856670522506493451843322418803039761773007574203780178472218887617517423436245462663814424972740790385749816594194689823877769067982806852475898493363560079649818063902309663523461342848768202234285265115021671415200097241502033851831084265340435068803847299260880429601031934698955844928957882412764521925175878483912373750074676188401248353227297592572484042535753292671823356667600369217819656422780014009763588974462561463921206982109686429474463736004096982959926438091582927732136694825000211600617889770107815695496045805147096714404279570316703118150325772397716871400676706605271124129640897070947310208828892563121248776856361320979470943899276605627306582880427572989719911157019933559831046078347335772067861840938619848477230876236709358461499880999767054436622919039378144107587631044864817564374968975624918083029465747092517051096221230220958309861999698553656225118245595302423266437266474140130301896876653364404839285186682515577478197592294207580560718520038304094685835299690772251591977585882019652619418447851243705745212732448512394152159340984863887441490527771667285775784748818847178931648652109235621089719343315939655822044235170577594371985369711009466078343393807757415121291620095745715555969739868015415568457998970447136587622638279670900051120077136583852309189928894249880847005063646886371574685705925674181240822661775186402183773803446579021728476657264705800270321999681717199416591942747938932929110271144676791590013099373649973146505152839166953281391001915779430262095427999235651309451856450691674886932989335098708082789147957650459183435997778271243997173353945592283806121240882694405983082842575468355517748682251769580600661975731408375493063585962941611975137923367012712827082988601155658474804581736640045984823561447463143744381471981406656440177304531716593653169007192487959444427246204233719742243998056908103629776056711928896719257654754695865362554849127276162178484309159366170406791097298278784858565485522967946040379302978066802072701427118928112759114514035998555631659465999898634672201145758086208728239364336300141952126622143284300965264541619735297546660859058482813623248864769593231287956754369372551503487000200462505164082077935975980068388405847081991217884604304988795835843134447200212219920606556820313572168144964684021570186985781181919118612828622194973975074225724023340308104621626089350765266739251293270384826117197000120396093811962454647666674817728199020806014413530181239753496240501823398852749016017480162970116613993037175681325256871845489502707101653337826097161496773734865192619841333018397369609400836471854582263033009601650332446537240792597466941306499230099889719526709227766188449008980348402984992294780788459010845616379488027916827004494124986227885332659089022256503204237410844806162304267290764234188185916917805994570899027872620104178490949182814740828501378500143605737390095425401388306902990680870066259447462862985893736981721666227377030790528008108574099270146713691191826500358968757375930863576667842880727186982128999818056712023735123143099386983232589245440173952846459495094507754324491934353249238132021951462088083046849352941906375767342305850071755181033672172882205746205208256957027938815793813850302463606121881481288564676301418000582233867039792217442609177792874539057516056578751059916741956521611112312215629370532518771876678762242598376435317979682297749324640632899632194206137672518528897231969920066687309828064701937232405189913814034824820887142246345561942483666653893972804758521238281361808275078192511528341623352256038822414472064521878035073699853279821235652700136462556602098318669047774420447077094028860302363056293875266096167600817234616372583002783319370494139277198764927664271208894552677298911443857482974778331329414696358813854850604964851045337056944156565428876312929277712142903062038503494902026519446372032445341125767622402826706753676153996730303584987367209048710849745790624881815228747341491226422438570711948105713356390556381406846340068747117700102457885046835153268570503003834457429394192151042794523162852512304799794242298462027178676892664430643763861880338279260879965423073193214136851834924720558859706752685278512565759406575013262918550653591915648140174903253127314515848418602188536570946326544366304515286617115472138067766294827911545450163697954059345016640057893407100294993699551563252298883572239706658868800229549578967850275378972022429909737275781395709541202168742114108811991318349607404361495328901343620473214078108339431701213100977266467864497974882562244357337779166208258981926077358834993922346585854651341334304649843349250601589295021994677668655494966854145267107520629643144626812639188471760955621212233088581237300416681220971587250290234739338802966771599935686535633013685592312026352054863200197510595768026002802652247134029519181219472866728946311958102270130018577162686036597235561978588171060933114014244916863868787154214404346741903880643452000261343401071477247994018813463889704463586393501999340003608026302429002482226701274823720774509832882297759602620892497510961496307652822332195878749513594143148540950790388005845937980436727178728722121263463531879835352967852195194063292251790334446106378908795085849461995341095363739832381049650191578140101454696780473558184150930704120404602788823415580327528694446141701776041551280193492147616663625600213955113326339746248358269410254930964124691596830343498490764813406970143419372867074186916621739420203088792014952816518374526484100361125130468125497425341298185022128753444432603949580475053038627983219769594870717895679522113839386812080757150724068176634930120078269328047983345281291998343731819023049706254429950391260653804418012929678671974053100575489847866686040181932743849927507468576835162435582830506939659241369760397491820699860678341940395289438365248377770938628169761003633259350416961113125499612859774557273605979304565291307166126267090534090830900058331138321811494372146890298530319408300424829051229542150198739498907902315711664756360812938061012408267648440641335914520980074057630812924308754313208285742862103224834458529617614633688468442682138123534518081090340527163955858661461085381403244268289806859165630503644001887874795265551542967922795035461192327052596490533514560781697173607680529921920474365155061720494922234373285562950082191007046188542806356384148462178225647804641495274235297628987281391287378855845006358342450906514609545548013221112747727197954526063910004472095163320302872930381497512905903938918856424474538355723107246066492032675639123598120205320330717006716031559005616246672186557417137475812659288030552951432220736852540071480437489127499913001754309748499812665131108136931729503457454618386732971688888146196784440416556455586968399780139361606451991176576016373382480704480400253588969204423458691125713288254889335603253375413840745442912168038679815157863093817883132867665325935303665844972123489638608235248487836833695645724952249287845499279695586379420687428750971717886463546072800606843050797200715580688636653134085174121464402304084875880705049704796517660078331099317643408142505389102742090527636937026798313804627075467971129177224805894091608557779217183962961947712151163232571749987997865571408420636450467603448151671063895263804454068305758506441184011254088917669671775346165644505267006411041460347979255378045336859655870303328766599588098431985055174823040006200518176158282779218158900041397312155795091718084095676902043557345229627919117421168246211416818926268812184882223776726701132280761436800592472450419588560921113069370303094877080074437817653610776834985465031893591034231180231768729709027483739467118388514761972590694480778436406408089500738108971683013962411376958359881571869278993046460152570628544317338142620954457864503080581763599183747004482928598778049516361881182100831338127728170662577433829423956001063502815376480502085235994760496536449344687757415508354101019725938054221128309151416893896015855880569847473829378593282448453826562759580737746319844217245169404376004824661969485058746041215181047810926612843560599015801943079632552153729199037948128032040692932586319255801463254573160751908370412979722529495063479406391473348130542601607616394846019819566307976501365871489311609104628274452650741482317874493044695217225361517962623010113606413951275549896031276899824309573868485351664265995172113841810431308114900359280639060749466670196301654188493441056879101597153904305906819257119355031596465754126916536904626612848804615596399646693933340722831176796362058181276177320321665855622451009536130410748187006777087506619335379894426316696436948043192639634400334618274157999552288024254740898368053569152780363430961857663793973454139845505688388317722160383417106147344088197471611609345623121047085243779826533024786585103319446315764640022814118556068567440728386598970621404525481070886539943828669429117073034648551764028425242418455899312498703837168179293727027518956511937404748202081529630922439944993420786896010887507701213198998156994378707395132644348090996220571406073813554297775356649521289730891025952169369328263425623483065504037786338758386288154986977232829761387608621940935146975953303394723026652069350489738876170787559466414736223206000144398527218543878356905154580968406031503273678131480059170594593911711041096916923918110486499894254699155184307677123320182841928265487580805928584022728102267957476073866592816640004017901330696997421894120615778179953543111391358137552744487984886964386647616152727773463502760375343745003852613560209529167797917372841021240708578707738921513047117416163918811064701659636824632313159033676635446926366920400634171960024014760947109798814379019292985886397148459775799314836104292911693779046498455411543664963407736863336959717802756565065680361363949149425104636763807250461463322634804612986828344728813484242376742056445519822369781254783405012072553682866045658981303966689241992418518325776265346063409752615060597079459992189668551848519583390621380174026281869182113935339546536512434128911580164010829936717982172009860960884651840898081448748506379210328911471917526281838386199294925001749791162259852553457021904831389091908298337816377906756370155393960670036534267776912178523897099712186725303534854805213488130683964548712538217637428322076554513192970473247718103366219857944371219371945447986787022945632786549986566906110015486328372663514104447636425089092343853884831448420044220507608246633136339413112937590362483447829781604226392315542696264296226467883289914366530206463309715252413752059196731569329532981045090099953821946901230951205436804258497522230424269148421059595608817133919477482578832014292546964398297138034795291860577547376213110805242216880623150399814662941977203673169160190963116217747697949402524530668781250083253232469832391541980894675899386192127818186364154451475055701547669908709579286869731306538270750148205451071974683798311198125676647122194488082100872936448602532660712741694169344374165748091150617065626326160256033695846917462351354717952504845319674297244753111222217902319073763408516078351108079403570442579223039226915887694007996243177848756819447736551895663238491436867342140871134532802863909563879323906721211239217622122807403788858738767727585236929428413683063293476236905541152326751235700615813833872463025172179543330521872645689756919125506691272185474904576188203252341244928390304973892959111326417991897666932426092996031204212993705367962403190188693062318100095448094870477687569821182718442133293059263357803392779559457284979441201385116167018151401198960376191891752892071579078760034061211988798282544469676684436165758917849033265277074725123495362120320661491162490000121991649384774212417728410311833010422659989460141305773134840637870412875750188820827662797083699417368951273944795770017643264925096116192126111779624615725431157702357340302280167984781604719460080603118748833125740658045574115383261664798538794185299391709581126024123221599199435545984411004682441518287451451848790278323544276353103786697057043652614858498788793547734665657859461918092029866825878631161216657054494060566694497701162457605334387003165642774229553002303075484939669608537712638377268115812283373576942029461377177160638132130431096436658034720223666516813543663849319712309856353668104851271668875269319822519946026320382308899267435162712368240360655652427133519939941870616806647716140753906625563450264104855067584607533276777852203730983747001111510928181838602876175174681896793558803640372108327998352094125046424959442536488100962781392186580344998485770155119603953496026146493689103448497044825804675395191849754634423075151283398717016346095843548669560157631880056227488737689062680546981681631857159968606528957425446267012995379521863308760557915032976507538359514021293093542486463837147532414685051665558692315627716950816206125811546768257287858665046495115777140536554196402839059165481655783479350760862286056725010086377162562704753341348264407021145348777368403721268672819047999052731044163243294406043929589021808370070418831652266042105924168759255790104801933345180017394533553878242603257407639386246842355727464746089306827313873797846572886517591643028827670124561574600057583228718568979755437759471603175461449561554068463509892933380559508136809960063097330403864800378601630107670796006051530718260513713771543098835563644056462724884180065845856017152649658333934483623486397800434973934481029060400298136372217754008692469113794051313238200714313945353417619142450180542839386975501186480788319288223456719854082826721132885213983592896476681616562876389689746528240122959763164658289012074788436329481534055288785784811025894294758446128770527195027742160156965800219327691873761161997519199035577671851519635822283737145423904746775265454848571149108745931686691228761877860826196548807581735950251874320004714566382167586936939988850620970522749400304299394316787840823984772166700474225886093284227999975456535538597304523612602171813854921652706801351959601983673105091564044255242852903242605748067181537964330656009485242661506961839348451864065974423879205262945215140197745471799333490769640472233716394445809435047559402783163349247213280607355814528724808876452348038289878453012855942896939138836166649227541777386885556339139464828806195706150734403076545728220918503654694239092716847773526046537758309127268213108408867544495340828509873494452599194979756240921503611996054015909274344346995705005140886055162367721960342850401369342915316042434666345783193292709524470300887392221580808637985684468768782588917155962492481636033678572522747282068543535346212311520567054475211840593497898121177372741061010883852243381478952387674861833082959556958076291776195298360537848053144000048948202502288302525700769128494264562727351081837631755120898247580381258850772549079259979214152784927390285625718360839904324307513797501887681215729206610647326904608574898263969861273110359034407437777154307125212668812368267421639574349811276720396341474922146611448105038135603295479935091135647808272006689733592132610111906194336876672011929423634265732674303550187419194731863014964456922396695934673256619832393773746429986915931855233818778474108213475602648936360091979006669339734400196273695229338405924022248763700459894859464596626321217927664916329440622746870992673657966853450365040046341765090567553786735021529224692741221693276957589933125324123761658184249331777454071809901849230627221709695440235430228960598577855947746186052573778547046244343852309045815808026924887263490132921274760827883604625831487075720361747003910562409790495581035429286483146284497214255914252835047746204990887958668883348146781002590932021374777427451988175809971183706816151564066538973371290161991635175379102095835249736918424801798775414795135293346372163000539606662345878139512577370184484349064299665282495920665879967608412277041340296926427778036947533446856548311783747297174000082259018023446527826052449457256619577020725818404843411178264817613778030229532865922686514867075979728135689588174271149154674316108430754720865989237011953728438965575581346226103427354438116500816174694039163130318252154077969476889633334424818434107920107858238159908086411386517897512229177865888506129734723956633815068487802460906356628765730821972708764621827932595844628691108797302192256772056556877971607774530578824869395243930191859888345152838048982782545625410652460798501694344122905040888260369784060909165610372515103212131230529124110222549506372696002081816930676758022763483911505117798486903928314648534454877382911627108979175371049581168923227452692592383220939524987639274344922471112037610974732551078741728723825364659525222641366845776518255106035374638741073434437041860902431590010168921015731178364888222759751135125569595977435521814558387547993476014986746629941272550155908953691994117615101176174622791149796195231285690383268231113180264866514756299926994156620833638118864592698069387122830012596144116710919933173294013434040311624258187569795502326001622964690694646536465565408152947190687809614351208106436426866136725642327904723465631340170929126167385576166030803307044568915402275585922439535318078811282365317767775976721607080704602193946007315045694611311636978623183906743170557990638529885562300209105293717533572001205038504481811315691349472952867950548900171354023272736755308784132945109183523924873433737428804804969007860809566774374827351520706598513300370073057858860240607927332833850125886104039085813067396733772542165700648735254979807942430325454894360387692568920427318988438435943361583877145130025385668236358213406959410664557638027915658011349423190829262513641832856173808483643819132118692509705849551557976080492465660136871523874074326741970128184051250596445420945902406315382485522681211750351397529457037787918655483725997292461569139328733970931781351211273593270555721912064124261785061148739199335209244921993763895790832766275568941581238140250618783382660786483578089153280345643311085436417472275391974832125432930880748947358292921242485504224420424163229481288942936143320331260579460194278101068348119686514362692188664159622838318556644951935596057870612291530031348011485584905117359632737342322402834191928348354367307010341970779246645414288677517368949844279485741509312637490958454693004067533342954244321082777103124604703455205372690103788049831767400778380279321681972436837868822020852438354620367159124176269547382824043442981852136560680252826777128227236422535044017010487527488469273721094853858036478060679218890584343093556650550736769205361443361998214848223001028513224955609178236251568799006833226397041446056446674837398846842745177526541306272356115502273093078007587250523769953318884182083415297178178724569984306501244968793116199829494857589123565970825190511962915118348426876075555578282983195428916499509477031201097861134541030478403326072667815424366260481018175307516299734843264473135427821192512769336634035813530017865260307291586033686325638276318056087715325487834364242081127997431850737333845945560743886650880250916671004473820764575830317796258028842920784730011909030627627661751506184761757030517829678043730965074868223639526135712366058859891998287115863873165923437217640832682994357992205282855707565745036453766544279304387882374655049067054039285559750909070278162145187157814519140052945734473936473153321775624414460873165168654258789598089370528833301581201085753530916560833721142757958811812645471739858427987427019589812682538675646461533675177739406138169087534266462302119595600879453254822114370818861653923705102786765672212147652753693248236645375571831479165270453059928714167522510957627026554534681434296444603494009894469536450206590985962617883031004925821290069073145821186627057387445119309285761362638224606220142565973693705418715322737179991539252765645709916214318592961942747450590981127022805550969299139517523936452711653047512776292376121005894783440318615439830243516196379094422335080277251004363855029660063826105947187696036500201109558718238037825668227887293434574131427875266991494592734459299468836516728069559281301517389650154827605202541351686585773281768312964083177471905532506742257497709109454493223264517309250551450916014800174620737872122547085158399723815035407197508431418100688928073381861877038297009608983117914836745621501101890064978092331104640473751695206166865704700136123221816774899629991460171300010848670616733837702389111549642496280961219511353481845198764603941649587063202723231068094200765746346454443145690423865397709658647991828113258870664222674255331835033482939172406986940872443802284981879837011593976827924187669462376428760487329767289009821038988705403725134221681097868674277726181881267911810813850435775741379436654183232084391141795080705282895334567019300945736453212335905277682224654891065876927422240046952582266860117198067900176444006783012719797373742498321196030693193055364820503293688018778411361034115574247651318974750822893184752100223185929738084669008657217258116183964316382380398712689668434412593546314174368077237015491316815322402044318163628597740614709341108532768564041355774609080363032076177006851258431992174919097534752198042342190126796755953745448499404772429757186889284770388865151181460868300455506752318778613090498317722471607217458349441588384307273461344820182674588743259202394685240334799206563251126970697245545778797397211674571029391328812990785799067968534117188497931702732385832948222650534269918394447853006785127518558991678584173926524919374741246107975753342385311129605743933460477572342249689656488762592274319659970615317423059529364152079402325988738084129846690993310869329928024277283811332111160643424689591136355929411113413725414897612013759054521569341360878149690224301524876511378458713682046704254251742593613463173869347891588094559883947616124433482878116845030785274806230838544645443642333289528829080921961550668425098765081873755968559192369250891551973078604690915775250644971181068532672225550244981473779698882289195437726773930678370440893699828322773736820235820644277655664511027073629963539614959857776429705168875044581313985850034381301867184361325981831540864152009442495215825409564042143190432710787140293479117607968157229104963069651755176649434542608794538716607389391343936006137429728909988737710380694931454596075774432268733762452183168446156491196984652618256185574282571044059275146187016494820185263404147620916654198315700171478880061167640364952672144422878703276486777842298086922957322069769928761449180184677390231092022524968776472012088276353528434042756584131660588107404970901527202942494215161203305102973513655650072739651241109404637228308799732679229578887873309837815128062952825636965963241315198587434737731073824908603167932643334176717094909360280793896047523685736978245309465798021802577356211243964121167585349626728925414798553434227352048938255487975569685767637408352493829722480148696026885685060707891558531811613154356686388149184994437252875668728876185663894166209802840159442133807161209762611297995144861765912644413459319751115821391821153990306034800244961925573811248738848387965471076771662547710572076367148429326741262022159721576861895129163635557555867632901761183567706446813634103116062188548515464095827586003569180377878514236875307372200134106737538299313898186078777858791052763171474422951309232037828189284410439015775464098380573949542431963387348902082734021006700933640028266926027050779184173319342333601677909994573235047650256151730875914447757957430747374166449622340580886111163520082438821642681587518411959107625557544095747947711814673729033117304462323110352123538978502731997377789633595257057228771912397346392260051016035649199349012362430413448880973701149116830821340867911273786775796333253944313151435861027509820830466740250553290980239184433143067064036155460968385410218617248603724809963971939879868122205406628833801605611511065091626498757248434133088299092298966612338433247444187647728497397121236266234670187937539876926779189052984909181758388406580006740651825639969928980437032010189496377002959657675093640968834441376804350401185380342566973037107433203761681121756142150126769894266839813599604953707479037284017551957374771348210214773918217317888630676267984682603175318398067780335077940374734470648757373288728692674324846541450969035267788469152861892408280040784085002418351878992981493006262307412357432350162770368280066925396702222966728945857587103148482720793668330312253853467571728882216939452222910339237262411172364613786209119443172632336403479157396803694361080240143908915957313421555072065223368927584260326567233369529462093107613505813837539078147986938783324398264866111275488955563459854887244513365463279270120889694760553001453558661692870089529259880999242073759131107369863773532824839147402489026793806670666106647957788583082875019597037727030088608934014282480572234657449099728503789637688971669454509982288456916914700529479760793567343913926772259398996806645656741985262533014951613270898644812010769751408064129299747898968443758757460943502404270464944308615282940701482890819976995907120174284987421557324841308069632615219402233741250679892724697943225664518884078575266691527624301928605769167169755635406281799601365182381897025350003488970667872964865208011569804966561763566711973830775535241944455093474503640230351415496087332746982504563740426383704583069260257138594447615019131948852844291772156084893960314813007687224546202665334437418886707192371858615771188767961883329964753995244438519075381253295238274399673453124044724247017680104817946285327466304813866364145249929717265301001471181988456993357315733430601086590584178084069301517553186665585296712232239439236776721100895184754067239370433417418261754852185075108923339130908617121092197507482210610081821464727691824989035539311347559640064849305373926468036310544086854712848837626897244656865293528956053472811079027021523434456877686801959136094980605352766508596900908188461160099495338604128309320875550424328527874194250935287064627901635098225808138551186096702104624890512328374729645291913366384488024418867552032712658366310708726973235138342246243037583873068162433828177034273291798535342715132829785290461177092598296188871080530639603691391011808417349883184581227271613640271877661319446439877899755573245284862286513092887707491668444406336282066585119469342713168315944933398695560084278874272238910369757309916392122767570836476345854818612469852634413031945327292623688264301538930329035364900080686123441101192622145424396477480161924168467854682022150690208407130623810312714045651528624541491639537849079062343139333198494449681209697128792520295831343638018447588759072174819679674383083435657704923914758673679399719634581952797366322132756350569146966374794160106662966102696474565194922299870848911746334080783707679022500348200853684946464068318888925660132808607741988602403993445070046845836652131749679536633780396444105096180135217405634583005830938903593696611743233734835584135235392878517958152581861201684706836503325134214520822347307039267722989772975398830046096509620135198852923080883414328856488431335383468377907018345366228110471739651109920808548977412574316513882692596738076294457267358045741998698397475081825663085459447214536513541660728559938457504617744247689564342127120191464503487022660698127655702419829127258977561591545722308995565048287871567920975045877901986625016419696790358455509558239185022073622290899233130013691332699203727497875733655594967387648546384172380698048343456789774270821607692132010678695441023881749421891738537342097129615778750917227058098810180108710992055688348589137622062368935644726202353343712025409249912570888114233806337694939503138170364168464939133208629106742040863187929731701169730050895709377617714123511072455836301706414118822876568114201268907037729379625317610143667184581675969033416631372247827469921683385976881772123953956044568280489213514156956947023399251714696896170720345231505193443754938373825190267119455713985170556659143218474911684444570604694913081025840272809858183436653872011393635729825603681897915847650617505210963413940670626859266255189384557159615001273561062930912079501752139795825496049755523058398286713489316257198665466766259244745443280273699150831998936579346552898505460701676849525835360322266549604859515385541869177961573908316348606828975493825368288604597064680130375146434035597164219438092251530929705086156159407689160020842721364439551191805989059269660572830874695460535066376158666991757469243159715517585647004278906045884636953506570725972359452003399525666610818267624589665118307983440543052278029308155979319875928388447243013938639563582887548557512252784737038653344640756069833621935282602706369112070067139042537780641838890339715251854528973227702193018440826231355167062694346434170518135029311539226709869061714841624511551265391074034485951933053757148942757512041023744268950849553138875287959460644337913623714169367227208524918684037002455956699133370383095598020419528069741917209101009264757408400148521922654644531206125956383464567363833536892416189913466823601174745888638461087484497893850637176148904061417043897578312172452759999440807318497221491386938240664835281787618050178189279644854600750973721356897100649583388378851408504106430965384566629780465395284822030508012441806742116672143736490072878446781599290939764929151723191654358590623461303881089055960843189100281754253168210302935466512839886228069546204940334716936753792766094437508649837547152836852440251126218631900446607510885134295717520879419832229345153395886764262288021333768258013924940441747941591898254018348738733329464714362659295215042093768182104630246479806824250257045358177183269215204601684229782582007815072991135555247644180552301436537352575795426347233520172919344149990951585619106011459284535634324318997822006846824640094961030379131689314188801879999126124917796797520610552056109531806188526804502488179965541214789981849509845074586624235833344651115904485512188255774356125293328733356422851239153849965699540022999752729962950924301316431175194274000103933325102095379519559166769768007759775135097596168672541074427417134434384117405253627749460388496612275199797415990304604733635650590656761413971142225612875082092235510537924085771445764753818470683739099699965113477503694930517547215011081739208903212119173436241337889687114362200723956643883753890802628979822030351545566003987744357438473330647764145622766401314012432736787673410834175476682193567500275684907039926098333574960431911073264737327921359387835894794138872265955504067375375193646917491773604804254853982804447925792125630438505495620121431994862861188762796681332168235127605982518165120302553989184661524881355080032007972539043347836248453377243556889205437324421153464571823537869111689254400815456148997753134178015135644019438340916355474857335229131730636133334037540799981658559979248060961008705387285726321090111997549116656289231351053531255060926935453087825686088287745624076951865119273972560293047309052430679740029165068333331576541582548934802408086759272101669731984278706843833048742284877078110905946151297609158385812225406034000720104883818758555022436436500881627424446259308421719487171569145603424940101103937299327078229710789996244522968157066576466770851204179650515375760566622169960679520925565409190128657688951809058808408517125630951663254938805379949248086884766778174786165716390439552497094630128479285033164179234411303363390018061991621917240880308801208040492439078079135272562055316878346488044718893777192081800222185647317650043656534268856118464440130957391164646171748683643470201604457440581753356672728217519752956423671893763795473177788638286911146852070617211629616855866354115760826069692412268094294277317927542415843774316566929590732717328855609430623605967265955194543808266079648015836563821816336306809550714276445700760279578071743507230987744525896865991229347903230394919693150262652249308853406587074633231369997082413128535531869463471672392428575812098104662353981331117968404166479660172533722315745220133673516843102444401292273014897414333636921792950568281878953826156150400430652530704105967362319127076834650256715720254923855666154270761200335306573887404879920199750462912823407791055772765991091471281794434914604543679780758146423911822681953683590029536498778037271862221582347333180608672240389993694803778037556664106254117785046622556004142395033976451751011999023820098619497484340866849457802642544189287328624317453433146170549531637017015470102769127116531951800504375359765612236552507299838982201256875647552734210126773945919753641193229010920383543459879817249254252407721442111269655402707944586495385979360187631079361224166663910900597252909149742492422795619726817894613034080008615939089098409170517725872070322354871629778135742382302672273628908473651595458985682071627581118278620735099647081251636399630774735425875172582803300339883406692046458507882084401428448555545339513058763443197442739172601801075870254638419164332241735934422267149968748819013006440714020843005138674921898593827140814368669946132376240999808224145303772520100279458398158258591586878674494500077374200852986344177152947579055348487594077788488851690490971143865506679850253753642672041894605788367979205312132992934321823781231797341812099803365107891066650479626954761784764889662430102232977061383014504315680911183295252153109090871350824133829328491819739621171514276423707006247172046564657198598239069803381416800407811730874690428602986370037799641157079537308278147990701540592791785403130129132427582451095030352352411017097227871500548478702420471299849535238929008134587140250844801074675864720402375280559528043979236576202965493062886253862508793756377145916455318631538582045560419326690244899246643862705964840789988691409748872609118556336996426139126873747919799131392033766341477391398325015958711580661426397604093881896399684251207486805059435833896568402860465672426484157754200403298806635706280067292196918080589748240498544321606467578514146209940272991097460406643344978648825444268944104706430637221683012045661022025771322355001128069229698637207808683116995941166949218908705374393425824574376355916120096544595568733154650025550654053547862564783204086814726464572215057335193225395908072920212577657615771846905355377017174271438747530184117876462206935407255782646305722407874017758272917999672720564021645139554327004420502630101339365102394893141174014581876512344513467522817395268031559331510182863345745498457232061139175303156652019172383229342719365666070082914839003032103455762594904427380294058762319404706985408732368505134838228456518067107709234121132687039583977775904276673629965278538579281293460714982349673168093713711701531561264103106240573855638298233164179867204486209362697243620895737477980942913210294032079955101317344333791520118695594559170168587227217717668563291882990471047130864379691216077544609888575667104254729397832705955580910262406212545423525242047678478895371530164671815063754000400005040990207385334207540534266606322933049081041894602842831218601162382721139764723841994152958515981137029269039606230415198385953202000299540063595211753567837549318608641949224389578385382177649578906001445340097937292460694122160951460000391476710025253421037521954439624178562002423646136417025427369827012171590888719403129125596052437464218442623602751587258736534571433891229117282396640216920982551266268720820478634349260122317984653686899673031257788182544767047383883172021529067909459229974928223969859979878315640786303012351056299506625280828837035446380999983823360356267012755768845734072385001806353424559153247634260667520683851512529131206202680473738410563396012199577697707197035927013306738866455997845784073961048997030514523391786160480924266985592958742544843727164265734616251863636891277523152920272609104327806494000892491184773154857247334638458061220182564534717467963067344901686346695679680249292774129224747119004653924121305326821643614480023303335380442011732944552415261611069012822814246499744412398490178923759892413184466602713174116672727559418855966406358908541259398943138316087552545308166880568213878317558690857719342436653378617805185319371502593315599569336626472248904376618781080784166511846111064310615289550474315577593163869955366238910103348416549183702035152081466036849837173433917986947871156476768707445276146969543734207429601840977170636997441224371617469793613621262134518593336475451441721104402203632658078286741675210554780384572060748396633395242063573045155062039239151559976081884963263386671158697629320131224447762046564610770215722030146802913152612331863057937941510647433309783675140969599255178941300475290266715714655236347759564966804423283949202636948759648082117495169592129577405942405206714962911795692780337794194916858528576738532260044640399725879869764155603908336435814167663387451302165549340263684402826611621810287638606776838720497223596629876164692068581903218141842654010958024676536843738362853359132211180686412933189858758252191643227080938302475545099575987634286084974192014449362466603940390231307206757287575789724604716561808989762494327618840483423019817967122932911504284464588777032258745601993938303209788487023249789809304290904773208175282687158404964112635886097370797020647755993389123532824944843981490050224197676921776282761837937956905785839006858535901795770638499390899994828379843248930951307837468533368179555323113605277873831455637147939539479941444990802247270309013445940667170495425532460548156928294856878097837528734132361188883578354282757558728672954282975224305369417178469473063578812634558379639541912008979978377413095160857835601131642132769578358839127362511601549762819273729717112411000486424554083151941607733577853735661265364414262052607697729150322354837713971621967258819293345468362996733093790061675384569241349589427587710393271087756321229390121875384226684607019575151786896158660465652894040446596823432730510199716751562115484228669866703453088028493671505036385397706782693431643899356260922246585220037803509769736789599912422651084876130178787104278680734238234389892899334867263987276062134479856227942256964676482184596955477575628819699360804898580804515095886612232483313839099598974888587239868106901280421161083981773774065729009104603645387450462682590083591169151023215359007975630349828740646065354904146447520326884671988782387584966758890312947422516328667090433203188815050874623227055623021078736595503837522311856218265938135981141598346146394906955925855557738879729079532010736005343299516487479647802618781858821517783104696197258978154992970684549145803815966643640547854862021153745766348320084858503359102294907248235158735001343646446846120616664312028799676262646393316627767842089010675618624385361607231590566873467194507361002090969256562449261978151271532369137141296170865689081632142035821872572157448578529688617134329820771832638596411389538276223709944238164981542979289192825766777986860718035159407677296882727882313184538748350680656400147379534391451432228894224022223800629929776481557513014704897129094302141397734209886024568744605838602678334989600737190263601459953791938460455736754657030771167607074516504814525528120950202258263926879001315776586038398173017302249616603333822701003537924439421649647933478314858699404323136154396565828385271063852384978780518382949759377089305740128146573788822481909896134430126575946422769872346216822589388953735359807807893788892569356136051717205867913763452863183914692841325316157530659776984713309964259757765277893488409080346221733518069190634436223270908443696587934778912345138600197148881485233925303242011525335278323564816836525991832811811686006843317096343095808197303199434060794866508703322976875086141694193688315849976485602497966876910122238007325457312060612585843958557994965272587068673380729675767802948645187445104322476723201743879356254878417873590020044656627333931606489044643399626760119437024361974147240008435290424599464715916522283369336017074154494248326676259571876442377257158695197220270903394084098952974603654162132352010714243941733036372843954201333641880450997684255061625922559926867679558329386509901026016107541894447694234326337042743432422349146496911356426278879004842273213702395597456451371079725144379187893893561453463873878114108106947673723751109793478926682662776491683017322714181195704246267892029545725004906484444363762720653484435151466497719874125901763465224785450805589545270154269363873896074667823937950955843531640052756849119792522666466604523849592424928839837774315587411454987226792151058166323028290742651768707953267219494301435250638005819391012100007266411457464382626616284752574517088512637508802693455909474863566434917404212510013449098023462741988742675981111989305450610434966779535629846410310171805813635809874270052617501943862522694910718126086923417483474956799674667719048064878163401638329282161595138873643256097400503348326939862604056006212546365249212780084614562840364878515509559087374513032176137310784943868000088073133176657858508365589702664945902915951473740481216084944765736355192188463133211829950666782418648926814761024006618627679845727140949532180579552464140819659143026868670230852504511960371046419701473145010991962625263979855174844148577651256971504749824802458279978882134364786791781437508727956190676913741427895159596427142824783566620369121920328354072287485603436042760736702323722088862305381718611871457895519635798223016494228616115882677893121190293135612515757875714573644142600378801345686078331731862845035456733966722853502342964273038717650375687514098120879516607993592820149606395943562143982244678317190708119042811997364995000742129735810829244008672809206976645753158080813842229855914240638814748645463806367979598123531029806234842835981883182264859928284801321051485508389992572876440514281217718204303777723241833735448326043802141929485253272504028717141242993010086865002455720654451035639663077133385161973398445403782049447422614873104453891478433982449611768799915473276321091113097650407096412033197019308326854746562155043278641289994981808157538355103642676820125517710849586865879349241778290724939907827966778487819309450745841741282669191727666206873851987314923790084401316477108849221889417192990728756696480551124331138790559659731803708832455631996921289100503110884780842800923542377806034810006327575802452645302733623452417847756647694923984352763524483953289674790110190886743435849203794298650440591531134046890753765999474447063638089828524085379181012950657215546626989377583650861568992992444350330766932649227365259048149162583216648900211971959650225362238170478585918820291475736563450993960252171900771892152446232671461520633746750932539423412732025958200510713830986211617903475960717642285960258147092489257402720363713121478186732624429248890514317201861458061726800667091539088609382637625603397222502485404544378528931296756905237638278439252698832441202663747961357301303776811615640287582420715243478726188524757144406158775426222000611701209266463151337043639470009544694120538688031877715946572591965161474873941941408345892385582600750726104626140554925949424958268991777739824683537970843419259880231130179895084591019159124308883922538047977006925214908398560044015176395406311512372541095103282560970308552016520961723528353584153168264579628616276042692385190800926799377533905619924347464102713404164061506188239325029378129474633627193995287370057281739958863489639587015788340748159118600544481169714347646859093191353301412482646913588905824416876506997446968480050438462630902796004594380397008846889716104451220966565878441912952368822564865155149045707004565284442589936707791627259046623181695155283653563192172920930192596374872204005419144705238080298935675549082652363653829094261203902483311736764779038979682077355088117081552089137215646216318180360632184776033164919704899365268218485037980273921188993407115483735575205100626058298073971328414336914815768373246586288292852188599740470612801629917478733521796993940655814061724709682875390752966626897160646989742352315240651372362686964101759731465161955153580524572242794857812170109989597895187925938206217486589634296770784981532931361486293729480496101919192857077578539349117671329941251330271717921095988786338470618356847026062835585553868282774031205849495576399952875244463890007701309359861227795831977758713106570967013665491366848789676007455391807595336016880746573209714874929844643814702934260534314865743197133809988525507577492230444650523006909776305711807065918009586908795336287937173538354205682321828560917216129561716865577824777901497666186087015911493345868760946876695587413861940535831401960441725212092460695319180958252436023832114495921744120444070496966405096816989603195052929414157594948523189034894349026132359001940534419045846205088743807758908762195076780868459863306570325710278355013847372747746705010041424341475713754403697612124669926723744615389546684374262514168431687892035825274793472568500713694041949208130849798548811650376915473395457072931179544432929416098484003845544487262094759644491365052822675022457505462439261578891336734046561538274440950082163849011883374880430924564742983215920355969745855301410213862762466573291485290619461428040769090285612570824489439214684878722156878943843894144554196404219332509697146981243380275863728502153270197399871257959149705111044607386600367296149710549301465506277345171193596433102056319149732922126533510675464646981833407526277281307668966041699914661884743457142692271984750274594495330765617352212525295938198784539724782878170374666138593517994828296401700608203710438036228493006351625140080493961601368954483713862957539376198466337569920814018987650374785353094283017506971983398350928702573138210805367566248834521997537204581103616261219945081265269832279581411250321782163346516230046793481939099495211641111987015707192684719395353469243333431398851023434017533970436109075889371538489873778341749282720638580555090224901596547534248959859789548316914705373170943259029406438584840841806579696212935682359211990426174137755875532640813644014636513320286080102943693684197637893071891643567300535251003853525323854540161336741743711988101732512819387184243561956735715335326887558582313961357606295258541086437130377765652152223038731371901417541693864660288187144708341052524299099077092132540438850020638829995930028515951725999904469705790611773238621957119108192773408908291636719845887987550444097245518535509411112457340472745181533848941325828441286871000723921627523964996333023917573510538286492998439180608197986286459283401741507650748859544284027073744887351948707774184951133965656645874987337301193544118352458040640191408432354953274480043926144646725426243035842387863377386446252394493848167054871293745156170327988556486473840992633407818232923491625873026695059551847898868515223124040787407257566414260930640553115083728693460855644582536676904252093897828621724343966398634291442152274569224383643822176758184414715671630130250015051299342111847972782863598724321102750998083253641914829581073987483838538314718255087948577402652492375356765234915195376835413585580609388705983526964112207173240400150348206666104549081011485151312932813152150421673087672570508874252103045846864693196457203882321985038182967137945658078812767395624791778653994059227452458109806224817373148625485490637679276926239110355553233833992494169436659521279310679025690574013793224313338293780217903031986424284216611750292563770715929658821070133810390676284992471992579742805941510802142533877153568428943924129116040627507959912285723619111610527294919715515307943932037122009288341398560430933134210924537919612174832199076298604724993531499082570168496406881163483994831777579834455049717520462363941752574559975380730309099835759980673342095187783154251752730031224746264366538910474145970779490734883099374836932837760939975623737272991019033306353208498320046350990685719925585615507673904733844471208677574762731649133472925807458543137586559254710268512151147987000997477962205751731588076694217727368887368034716908146854123609907268304849383472814777620154186157243061471458414084030417519628426166407310452462647057090298104322280422795362478909889852824950882869678645399550926169944712083492956326188941140280610839077729351782755435287509025133878461695476246452735292798323555981061427945448471396028252224195135530801350394104807460400530467207607459715233093866642226692849969423985423311691757688576468046131448095821060369203332817713761904830885352223970838354592993322927611672071348343531640557736000632045179145498801472321595415087647625809154118398365219167330134609629486830612515714526494576837588005591729626879587337270024708069353153660135418377935546235612605586058589408446276010935112359137402474100678966069400057597431019465542515537177509886755163765954961572697548063711535395346003702704174436896516749098506032992800897803115659172485830251633187470887428719963323060821654514942562211351669720159765490362197033483290579420249701570439370609629870396670779091276646279173544123949512555210765586026778988558321450272559125565607653070486859142668800245563439093882041174193057017046027782184254785470716346067573485530135176505977473664561838121699446801713383788402250998876275144345940409552939922984543112182320590493125262012062393421063583007879007432531412977931090916015584846523896533113639702503343921509230737067277789959117038219580703281214918472801266059720073258980411915010380108631237203332375407923461404548624300039376232632539168703001083345395629697027089267771923335470474799684286610734479169869931561167980788846671132132277061030304306638515424930311655709546984705480194644536463320983908388330524455047095888831894327812080036935147073138667607973339121701657458749066689896806887424674143384718597050049752058759110411284959293168069933950662156854779379582603737893455638568254817045904651061950536275590389342969706147916886000402920037549680882030206822388833373533060112400935971129929037671638064591875505370078989584435350731383049914666258260935404842999282792197281143043748158670560548380124713528344936451320866363843335246494897570547363483274424319093924945226772878583801602860786230860807181492619420208166566845111947573735120217518727371523103618982558855010769336797243491500809697304634756611065644106213035719867708510225953595659039752228633443978857925797303618836054927861750175830400159672983955835801403719208270474172958954369457889701894789890707356032954367524566507838596993635065100752449456698655704209827994792922064544906907487525510370147292056823644019481202701731491369769687771369957795120423131781030378923437781579302714009661151045933507624571350877628273863349222574797651891884534469980284208668810265874825742158468354869963151321510859006773466382526966592176430744316111712195213750182503462402810394473098808271604537057559192641965507467922306423409080646188632086441248709705518198465836983003688087180991728760236329752767285190698680406973031964100066345353573404226517365120650142158312293747114736079339487433765368211597309755763908822514076732708753700345941612299196275251732500279157167562005881929345755233360538236279721823295034931211791958084330594497709506786814277914719386078037222835323545047561620153429362804807808296768729597380897462871436143802779882847657757739312417033299750676075367849826824438100802000735525511086338720412209596968615413488615273473681957498432699200620573271784105224596722792779242572317526521808007518496971946991091583954358273504520594347680107419054961822418503904775143828538037243298658636301010898202958216411545690044269787965623634720949719042620641943610893519336621738367884813506462566513068610238833895599008353864178218662779998292444483699334059824817976148574256816720100842380782440779179211902871288563988565852419658058307293714930266231501615710384529542112310091116285332791003234918056325687952453135349763241233963044015660990668880810663945139535059321801950968799400575384661647646408534207366085199186948690603005425513897250775630305154261743035704722383984668786120780700445592625345935365748541201654603808791693335551183455054894626472384211167482536553285730005116548010066019600534158438783523082858427203836546599003679620231784887369112876539785601246713907818986950194624910760179489178096677796006541417730344591592136008154768871007797732939807486530813395933957756576879766256033247551120463922382997505513517321283273361679478828896487341749914887921525754019171334922002505878118657951906946035147292981068737983666464217864062768525767171717701002335278741888865229863250436084266336417595209765134998200761758363928655052974981748804062132870257863045706674848947672024126286550945284575076085628465592076300778873977043984639454393150476019343943156579156814602242816450656122285333640175773692165491765271538214062260174927396108875045606704494033079217012206466688348499711248294154632707059690896864868820604544624670106762343434739598544307264171465813710804823685208864177134654507287608455348451775623247532625042432603014324277415809234051669380609171498297165311875702834008606168556900609181533160396417487395507412569827893399348214397590374077183161416188768772185798046664245484460828542331762608870605188229499352739429205356571378563600555690820529984443385217740245585516045839951481741891863215610159861084376779867261263955724248551533292765726934028859204301977808727296007691916776104960276728042277045305689972756423674333861195306348131714880093308334975908942512562069257701313408996829632834857093520966070990452622232619773690224502222588168243338344134881523831959181992578785758325616471172808055348783924962969708590552806681326611662115293233509432347659706183143959764766905098547244935764082299167465551640057620954826914152974840008833411457365699687295596492856671573011042013799682091910620764576599118083977127300383692816881158140472226798478283895186182924096275428321781193204476428363409024348912909176956158304309125380799719961767407423172238565148510010212117956633387572900844080890213375739340843050951050674410649151899833625424808092156691064338693221885955600181895521552492683242117116253909739053750238128057971351853172554672015243730894483482408940276143990961254183831161774643034481500469305485317881956203220309129642642020539598541655478515895878206014167968124260175115023992902868153336080790461982906246560122448814341973736740948166081876144474782720877492853594847041873796261750978285190077329632271682575635764923148090810914204065626830719047842695051848380940436339174192503775949085852557265698736633396588789204028873761243492000895175981664770055716614612261467013767948959087733714391532339206448880728989968382051093915806050593429544583263491734635175298852701196078913262544056378007487901743131954466887464883928991689540010157595611380393098674334007960507309869821342079928164796630629692897905037112393577143916896569202226255421253476591808257157660003396964725770680709191968985619858420282544348873331101310700724680329862977032061303165986097729440567078289394935217704957518950688858903904228399678927538738056259590041060476208114000223054709211260219185082787332577689613348001109467239324048820786597501183958142732823433367204914940656023077058435768832086091531080243101152986588360128806111807990652492957619980401140281311022235979193331928629297236754652689603874256987629715493536777193932442415059215327987418340583648118557344467349983615824256171154787720088913595318779024166039080640456858753297661108448285680039634234957192118389170385740248054693406221801833227522075144265403144716981653123307550161862818284716249681432120499134010694247144486383628046603898843701622963547736035439571951171726565084780101068429260072666999202636245642862339850759963765751727479804569047945188733835613308369579724430085566186367627119786796246543659546392291772582204409120577504523544337090627726572152582970909471561423135130294606855060810015257366600081781782333651745242886613915079466622373932852818878340833494514250159663279972598128212713644114045710077336676542348278826410729201679455419751376871544883236280900000306515166353350816842123960438326304970516199664827955727972587387515171552853946066699855381859581842843084844086183820790585901264998442673823046040191003127707277593678776922091235907237634926071669006376471013410126320232325241713867115863445057998677318624182280812090054803521264807359558580973650581235988519213777394285831018345794537932737199645194525733436378507657061716293219008285208050076333951573490892286167209789534270742802335927962672533878709013604480513316385288215675926021459469642232705347625550915573027748657784287523917345887964670217940678214790559565288676091847830538269107433735053361861120854528394825823184704664453540774590031846358091272019403547107779485425418101426455742840680029846170423221868353841282920564655876759535439550708976503932818906399423157030233038782799996495818596039610481084031248847471884352295037600708443280634684322720358686764477364074392640595960794381936340522060133169510445082381419067392223505991663680055508653394901648458699708734685350720077170256189497759691747503384800825058789716391294184729011348522348548960005410235560785364253090757252663126036591974324942584431886620483818634781758630386754165075645189659170328432677193995509995943580329892128826034493627934363469427309651513452629266916254741884867042148672758722892405941415942846284021380827888874757582507111955134987623609154246644877861262149241037894909261746877693510115551505357085028306993252266192371514005978190886496349024090940648861123904533851241153356054157913380766523357180073941100533081577112867075324697464524791799053821780205080289634136246061184615560582551404874873205713011237918629959126357581180307071946494002669305118595309967080343625129244358969813225911736172122550941707580906859366270434040167904904417333364447622551733717378842808366938852104506287654591731879267114715004807484692587380386610826921825652330231158495104490739093185091152468415908043440220149835831724463109824023917935384684709872508942268270911783985917826207555681949767976806746092335003930026784330306140390807994112104558697392215809511489115584503717621366600731810297653389325410719663888783545684892612914047309383905863958470569142632850705216925264164964220442117888871588420233034693350987397141432434965904415935169019578858154856109229401794807120769264072438887826014092546413716278497459622953308495323282705892613823188142589126425783265639884783292443749496043052909574243205009213185267139420397495464641333134713445622730732939172337455664737272357068451001683953586668604688543725135966386090453186070379365186908659844309918419589773943170283323816774159740363470149619048375356210349619041935745175444791823358045587032487514485845898902409025378202620273983940378224435159739158295640868292963750806293595101413473051861160078304346971719068337893493039750792540878845385140796285662263318934316541559088786479181365692034815814633297462187214867684056978203388635196842556350229192927556167437878293552962380764310181190306411117861880919145384582785393566941819189879064961241515120658070289350526924993041372310610018026035831886264238877357065229428928375240831955725706249121910620262425940685100311240294966543870623444766676166491241566749471445407857362435334623781283217063099296764825496860738119323736318559447922709506663724871977367873402446266617931440442388060719312026095675526059357617759182836840114195178334350491892505999997183402223954728836880414850168176249240801681603586201821004119906490774292084878285354879466062060464933353274812346642455524682808094786467825722798879361190646290763588283231411847898397453784583410872306670722403523214112160277671735183527743699514655650981291107362751132246963261188281286646479640444464329446008037975375536173548957327906839502662700272879702130775044467830274540670384741760437209846748945269321917466597659127555237827265547140971444806322787403686178628839838221755963731628577896813289030462183712225709380352298884675711939035011286832531629756240274041590957742824922538340737702315907670808039250269473273533496926446394177628546390888598148724224752682501438496453406949407075955191393070860581495628289635540987632251486880879091217052798812214716123905295151894842916713236042736522746212892497002142941093674325221800235560880230099499053717608141894162757230651008197495477329555563577515052056376618883709716416868390736047284940043579091727814155498717553094603963650898060663889150686502006476301461913157423336070528022833484556002429835675493938610869137168540529341394974620825093664519373621326644432022234505900133481593927186456153071783056231693833963754190092456742626237358908076335345185643059556125183963873494491145676705074112616091196323859108377838310922665831398428607976656407422508675268418240157857849703069414559037268880870963650859764536193382397931119458521797268102336316584187353345843203836080833970605594429294764144151627251637466066214217025608775239699101972587431907518199792164111974017474302199505406469252815904623319353423146810606731932926994786971966248861634248044592871916976982658311367564562873192113090389924709094646950770748507281102390822307774956055353241807531491470834601589283562881894617914444458018843557510059471176907789222441272440668632065105515194672790208146285169217547245599130298202098402513557935997889624713644608906945923506811713224478197471167743891308669632503937766602988114035663394654855001288049148120858302661660635570237210205043630821893680128022919881199365567066163798261046406388560561782043595541936884130034338014465763097307737765719284591724174058319655467028540589243223359827201490043523428585896863541810833901944684912796314427217108752204188075211336111133908628508282224812972678444251219512356645789484136508752748655437525181964857008506053750934596810218590129467534985997408953013725884878334218455038914995696666259905019413584153221971351599548780514414876430783690577258390127942708173220125339420777518871799977282400975007936262376173852983188489314568654647848022823769714333986744900482369848443172794026747786539097883820911854763385753971461634182118954677350132486911732562756607739273060265769951393826916865886571904921054128801768591845404323676033061202428727913437122989390364065076106840815245393763254292479183669653157106020874783596048132819650048235871671596299316746023419853599108538434526793454551701103106719934026680495076855786137193835622995197198390993224686603252916201318354851684790605029620749476658415761972619304029612081715950906800121950340196358900094764150779458744173839874451829616092110572497178929316152140493249954189277675958170068471516407187600745572639843286345895044184030935621477947389218498702141600978670090534422688964205742464870252417759588901289319621470695266965923863077410984310982341774099754685728813710632022563614137606137168759655371857296803641723247154669890047513433863929392774966319130498619639872395769286283128563723169626123189914902570160248114556929612411696536443715042248627055129383018821116650614780442265175887899474338290247094926719391663260801757377375276263071744311419943042546395909833431951304031690589333074341309446677722540439319841195609797791490469629006868210825262628766373035937466228692526240046654821700623863947702379284864721143937256654573546929620985305199090666431285887831703525416821372798224619667110593514490645300102307941726312049756363019482028746470698480494086470953218624219217933121464962704790184275237433047301208074057266528859492006698617288592438322412987817867991787725092392580207991052282580662817722643333631994984484142576580763667273520046363094934941998572655852569869299257184878907527112153323571721048978688609055274167546463231324714026160666551397927590951833628217018383962562377402866911819096384320393540710024583822194267507097573585288701252329748317924484208551685553332290074612918614013945186807408438339845387489390067790199574997012000310963173503448724125224923694964120095498649050690875850064522535145331596781172777616196898233164218120313881062747244592986133501760011492437296829074553420251411972189401056951444680182235731247364272401982639535098343881005310939653636956066617290099970695254973651336744053594866872039800220259398730187507032257057527562798975989649811826177940595690554712434263500310863373011263910836992278430910515078971640679967015836704558366464277343641078332654393228142530501116330823906656401310733120757256318092931254073534010430121816331383221873657132538631845423711993664786614349860598571527452794131430687624090073428654909237476095246537808753399167109951647510920810147268359087020811275741960682502476564674247447760548042195125076510996597665647870807289188584132862513529830982950631291516321858563718545054490350246696152550725308321409267591462537919752973432722411404832829900866167603116157320374053668607993375729899886139399319515202671035727993972203538286147751534483206729960158171931432505700239668374696487283799909632538765324364971266319581420721344521665619095980631285880764003793057426802823763516471475245555471627904381038199639031932469120569510486361248728957950480777467282114582331731045265884307182898035997073253544844750036334078778360430890864157501153291513125218398637225176211407931439912315686806415455422695700540451912228635386325641950301026066433498386239962100345358548132127466341092611035092508989157100866110096386461787464897107287528140175663129336289694579918294132200684981626036656663340947460713336372335462334796318208387061041258609166981112323249936570318824697798911418204197119295747373974419847056168342610243118175870092301390986694210041343479403055870826814521854114663240124926038752069839984166504167185933466220852041162376194278982921121350744565320876760394368467081111416611716299994743606181790517849664200286314282029200787748044745929883997537916623689045562720872604793547842835934292224412573250804062864993688449427494350586283418064469832020141933042866549326556330183070934220686782933884644607194363330220728166431183813085138247187123978427770946485854331569903770733813336426800339641577630895054302910424385459006873998747301211998663094726068605849491180614905008383234190184597308795031715074221685721272016466554070596766625431578527510179008532129927246547641220312742171839217559040560450481874874847300666452864407096925779362159236480451171196039724306287704405995044235547439211327355842255006643249586033898089419083702976320306462599528111161748240736972425430223425066547721670203592859149769780004722346303035939372565032742176904988745684120083639828057279156298485391083248029604581410172082652162817849547296164216027232170458859017121456307372116210107970746909550085036763395279175591360479805899357994783802398426342241232047214426480806627350808449180792162253170047953619020535643660111167866684698745899952683616870827043432384875180152090664869923259048213748476975472771913417183207582611569206965621582517854777837107545560410450945726453443367263704031667982608425021830943216501135339568636658810482039948096922611469183695806108691863420037412459000613152489206894716921170731260479163463015795058958570343887401026980969626872213516118538284898711566002776666439249160623866679379133121634450764098386855612116880884690093912865715345638185415995506864453398013248284098010114812232726370081893617514018026810343897694258051210535525301100322849105669945572727430795689543708446727582231610169214976181969093843220587327676377169103667624684264885261987993991407259525618562869895483058292929524560429579040079412527836405461919584267838406004704027637502081899955545158901505317551423532270186958493648802904147866589583765142254985469977610915821650504967580701361402870633084093370097181943048042392133045894284593236187153582794574878289480978699988132964720439649958504916615795553200006259322066400440651626982987833640084085881057855592494687283377083333427054320355607342816499579132236130294958048464703028383174061523689190801706742398758340644379978609807256712443414863859224015785067648043058282255531224453969366847072920226409686806725484211014775123700184503887721849284587328255064669659957656418711392960561197162225083672446020688616657515530195299671892191376166981662117859555582917591581933963528318081518820472105749977650313873283246792328515044310796890575130803144479743980438368316120757503696828471097679976248284999181819183248281796965239995345133718178406796631086935275376600686558041416252453205957360968349857778417052195024882994007974181010964433186978690146497772672189872790756529785874857781762513426054677412940017026400840829515293441145001747617575751320161971616493707763735274793293558429290023484516688361796470971580371283844783453694112628019212696339713593049995376714647648944424407726781631681149619268773140270029679983561932965989662318990387168983955236145414858604068410700509007320179556693906217826782514659131781746067073816923770539448941295971690855343754276171478674282874382340693488996871910965618869329736603577114333412174012387435617690055883455155106215807616884938058883716409797694589227030152280872746231828345071700007523478367566112901643110985912907221118974930830800724524164172247338924292953734405438212169031382528829197053880296049831065131745248105446312928740825994553598724627844322847926743259422962548875943774225739493726081919879904244591792170218654842771125874062599462823702315987289735867004678300063369454328451582381186607966380804117531555985707205207406930181571750529897765013428497909866795875635308988364068126366311426791392903302401875030301888716287108485638895736224258311478084397738420239704036368297995109302460991212840395927291458505243298149653265030507357830967048287848052016287129447794892006202677831547853472456836988948311516095062279041874382730212445152072415527776998754465112226750434180660506005692457440103456460576150909331201145010322840044596156080950442618635167874265301676376022219991448731122498110368971319937703080546406404805407819153946155672182749338332451669559554855349011127666562430118775933197193583200571043749393256343730763300429758080268948564174924576578899183292354028575120568842049816143481904898420980968631197627682095055734177164254227540223094073425175122822441120216070695029136022532658687330113284634406465414659033691965676598438035884539624961309040665757963619085861580257615349510768022744438398479457707100986649685630292520690820624711549202528365602933125001285535210662210853330498968520523420883902458382571429234017401804892100277166875974755413301672841519276005897242142703530801949488410624158551007607903458123122083053616731595967857817814164867063862767067717361019351063481695992342076354636603283794304361993179155702435393306780910326555733137779058918074740552964233297098975566330835858235993180608908073340500682583459380849247428339166513052717787482458357893572133456361684578503590453837239966221990867711592861567729622061097231892356770824566277474319288970289971326244170934357810493273147425810559897367673054461370172614512765091690248058805082205504159990049599291551544634174966623976193476319397152158971595455872668847799069327329649427923037434267846017090824889110425328323669332689665554194710853192530710386475946697089863168047649822118771518021248715195620833344429802067885425374221242880580938674450192094032112061605692449976870176688122118218275185738388823769626905509865555630499792048807345009430734849083605832851056513113693101205481567305731506550094888993701822267691269964631129505439166819620867024842453476842785128185718608648648316190261779629226642105243874379088097443975896840197634217242466452106239845066485705702869895768349189443372822600152918880575351675402920342658097094649343872862977792534886517289347429554867712466535752682583355611102519543452099754253261584824305228855865796519708282314318519767634196068526333004519869922670852620593879022994912918642400947573989653116361277217536142559237084416913351729448904695243376170277021030975739703487476556693086367051141090120504531496142496288104255938076159140499429257443228834507872286524956821061615643355088269414107306120284717680677392754435135595074356783162345268925566278587740510363466707596626101003865513486895524096223331707805242938358334273935085388652468558583732674263335612021029504854353584634104201132864794808892798427658502783234431370050365607178120029865053022709649004476192083164631198359431975408378246040448264582063592566798344852520325217880929194581504576095985238298048180580561004834860872810874197238688904285194477410219289533503813339409003307392696500495612091183331579923874391016130851911428867193940954193862480465732282879921895601877337048735507806254828172157729990527609995273088830153492386422470056562054992356645106241465707729893041490988537724597936007509125732328331717399349257676031472078074052761793156108710647530966972915719537711757298028760144124963409998787100992930561885466447006615139958631286023380331083477704899569176107853552437469879296896582997445222107199705605125447612701799127179731003683608486046330764941215932994850779360659046078658625925260176882079699203886654187827589550306789413398967934996741768032278580616123617387760626309492525603652433252313289510203636532300735476406047977200253440491578715291844597050539107108240612700547372980258364565338410406523248424547263441826430560769107179820419906709540597941852444837598128098153949747976015427388795676759209671062333292392470797661621072940233869585859884645313320793930016835140150200632637414712971800333366956061960274427523019042183178663168339894753944250813326329171002668675058190659099765831132576026165992252818816830815544356860467773295801369666198567986621298464070960958641119206001731682243211884596191234259376277064006457879282108601646139406587537796696575166988194125013143314026325800465156454585875014506499525309715903678379214121996395635583253544690575002340598903330312358549623429810679070871483288813809217043603245601258922610706549185485618002638338609991760164069435522019249677287565397852114216264014400142011531853078689575563548470585315734266803195884824439843569512050862043549127213439532393255849999489949297430185576473330847726365778541737484451978532114013117660785224938117181510448619331112373853806982288213541075560134165377807264890909739355428828263489633215181944572849525972583436937488191324199204558041068999145982206224835298225354161612656877930157779221923095075427501947532469892717376061201618416567065455697442356098037706587378542462237028763929630911553714462428823781756459846414727453608697498210595308211133348229978687425134948412225508888675035446962206396661808116117342893044789689070622331354393667460842279472633856527894854595965061093703392306877898352861799022617540754365911859722920957641720040049154253471401613216161868287947090967720228324033574338668908626001679589177158321784770047489179819952542882279330635335637918447145501080361863697313341442247770953887080925346169020539345508304656420395181540830554176196720425987192142793536422561585461310662117284022444648151287526796738797704144815609247671298140950396972129302009624011147428251953438820969310219705240353225329163481411005455324431846413893717852251480852760323565630146235509671215722726416634838239947574883232017267063782080891028616393058461382041079984200056810735799611402796960967190701108833901564098656202181685521951931891966335638235536988819472116818966916959329295857436488568107884092360897801272472674004447129908213330075476344466819730896572183118151809061434870233914036770264802548507554759397107706826807400408175655639417064902881639542133897106339456972841018618753187476039199676941671756517755739916418525660354077049760059299000850497856785550329423012767264217424528274508898503421266009052131787503562833383950649344450324554000826858035927539955209984187452428153817724156605540020089007064633405024483053072760971069670677215054148770897067693468503075500508935119333719034088264136843896371519100276280310605988330533673305057990308829000698247047645851874714335487628412741283751531429902628828746241731869496325967349240394172494420941216463152055814057843391806136774860760460663458015565255715779508442438175952574979946701835862545006032733590128185966402656536218026855023853575931219215323929204416391399736434899326741416977814156281706839677117178840419576834009924360431941177659088305886393998149511744937775236648781291457510207745062201697410395265910233580263494543536803237887163810733011926989275762617762285540686967234922803066124157021155271322630136528956702917968795718305133860446550249210644632383424037484836058863694719755478533196678041430973878591323546012130314788952431635819182672017132600127570101851983273298389376011631842635939751561061306061115555521571902353463507370684722419257447563989295880832625674882448894306230303610032282274459115199917715021622288993327615965800726269110253975787840106092251095206635380524689325484835003339388822390699420214741176511969603832309291374749950004928582066493274348028766908222921270154660439549836330598834385139158643906599011358434283075976563377566733203546321058789107999495772403894454437226374065714404356364574748373138096895363227038678170501001576151720936887980583974279236225882136126307394088202113992150967522014348136981720889748714760861235588262800167281378301239654950369466415281717619288598709221086748109249521747690108208409685991229595789255061834496935434764158391178642021763671348889618328935240664232212975191456999464794440800086933403511493336550805533355494591394960258169486096312678707035713859817430274885327500291181882491762228545944453473317896815942790469920293959119791887422926132120087455957656805188289511144135015468004932093863655662341359954321517523382306579097377314980706217597572906347362258788478064607788905559417581746383379830872977576546895906096956537548815896595572699264036988442444833378405212563344312125781008127469282950627545889759043928045868693980728389471874486853366554594595034694954686042881718188154252425549391524040800967726074525448709017760799533712721188758088589448722567136782571214129051051402708332138448273431261316765853017718023348467237667304510101939548420158957942757111838222292968045376630554086310958578372414711278847711802198055979079991001853894967829955276053675381824305615277845475909286062167689761030001629024548123453940111586505150767232504333971359480898916061037191064195213759583837708274817831635946379251497498937721804417771778575200179873653156937356780584205400515531640081286237756262407848071889250101769071624037568587399976806295107636321607506655526304490310784434216384272714041116775930849830164796661140874614537412113265673154583417432515086009540129462866098054434022507781051464501831148658889111312814332308996450382567877735907868405595420030056896361780398004959193462842145361452008193482487900680058816710388250418677674617242547367693010860906467875690044916218265933447339141902985090300594008711312575250880846449768247152278840504769889680022023309379371535134982540553570745072396784544052447189385253371262550195704290804216037023785235002182679287940492638926390256940865386118347460842415580758039974403938800874824287648950021072186932514299780744163148572987323511382353720147637207249123617828143249758729992478724781792302485149772432979337926739139228061586876404125504761731349887812472406658937105744877443431437261984059798224013814281093052893249727155467375792870771560878819599689131136094443309036157005982858900056196659549153304863345931007628792385911461219754843491611131808794901444213111431396562210579375498200773368043184421415670503467142433517855961545682916176236179578733482137673747434692104331868335169618293719023795093266036906021881310118953746227881004449761086264122326797529657933008393977706214481212747298259086459962966421562632627978792457431964114921196590722739483145733175041298598530089437882142982145081161068805757704205514618663289523769143806301461063073181967449786242156952240573662434101381912541046758002772316319949044308234432104740103864759759007222647556219268460834422899882339309070815446253362005107515279299559836417993252516590831375626261048615971384407384202992238368443794431387722089113886050589843918470291654335589083928700974056074688667951103442036367369208716437778470617049120656343261140706713922663243636444936615392084338095025467046278657841268151488574792030008359980586326770915627242308042952744955944184416937507199161911445484192346843982829820926257585276997585228676404389442158584700741384492280004364646526200753581660267949091846477259805563779926395057687881514109509372149518917841375653193843155646020724189257450680854637335766488196947160780201676242766852170828124022928411625353170544194784830014782127395419784297844283008959586503190549306749031961417488977503050333261952892209264281079351080323474724321321778287618593993375912922206314480325815648479992016852762930320462439740648275913569137477521752935403099206213760828456713870943773886388117520962757821540033205543437529476003061527919290533305826277766392833445922887895754442940178764785712023193508471587148553972617953701940677839979628842054661519749563348190956226556220449219453329901002644843888727032908390253374429831377932903217746501502187211951756798404752228645161688205181389919879936182071848896440875358721586108935645550263451003428810102390541963466852863539263213811550856379116369833088407425222787632170310606422280274180438641849770119142647079967206457281767436518692398587207912704916992727249504488225643713473101374962457952069624671491376961518041476520196578147128253781668021615089465220030382771097691296741625098501145808964100306274847149916996246870149683783733825140057343283769660020779994548773495334616926407788988324279495106010691637866808681940040179926178369210534741323628881005812194750812332606092421505891969362068479281092063756005116489395511217395175518727623638989376981950457621859785583303209809598253914331185322478133009731417735255641913582701846541342737298911845088383223620637370312068569258614787497668738070033299728711806068089003715285635389031006129243156762758894035278556661497279256609936200075185323311745375729804048440391475789248625697250637847383883520842311726039927168523317539672196789662245572819131220168531671986668773942093533097778004582710123823914062542025684168871335834641854237096625624005054181887949186969291363842529778986304107031013306063090909098190912643621033438833155206847769656509490032772518074103729869369202983389486052690405000386150720972338823568134976392886653180308554664730517166679168972957484639653566234325420067219772166975243883842366963346039383461588866260173793326242417677580242599508897124214394371255372675132714547299731058110468121694854186064983037004180638480878644026879854152557234088965272130661450868151353858600582704490416004932180219475125154239942027222506663689756991206583170721835992685834675318965432214064792437360587863703310439844051572405697448470900711613050491672017024239274009319897996954230685663029998900275979822103594305179691833019100273315800132990520010846428528712483486569647545603797703386868737891402989484240429705615917822950355122261604948545458225225226383596964347816454413758942825749336053772368348378736304713415806967343071241945878457830351768418949956989475004480740252455515333147657251817989096185432040856528573038451305779619992045902636143991393828246967984621581520195673234047995969984970653950070995981903526930952978803586427404119949092725598200409626076346204947002680477339161988496594461533140174790670507986884249278248121231429663710075312662052411081884957137253396789368822053074390050801457447844224440693173946228110944753618328646546486528846670983661943035573784835883558179866159030731061668835176654686244066303730720735672350627281944537777642675479952474500268770003031613461411722375224092344971424830267648313082822019359771030257415557068599848683263680799107531221158204112585412717173269636922013806308217977352136502726466404369687058724419456822322885644498907781663290733694840579045892694294100130453748518873437677522713387179840244564676721544326794578424610512679924241276104917002562861623727599744649547291100599367555162647823193551356704633514381274373142657962392987087912012689838726818265852734601069367115429691572788604121744518965737098316014045757161528084017445521459328163625906182706355343180489122595407301024919981970799482955281220589175172414196124302729279986861174922418090009458665827153720063707871091797667326022998675913748570006291064225471979293469976424853058607071163583111581519294751118550233802093726881601148772794995224716823731426928758324377927135621696860537276806272780006200397806634190902725069437076137300126090567933474699675127048877051779143485307778523702041463471821500028785035796088541593564238046194770197498494122616303944191229614024162665485956934372226744258634226946429809818442275068882939136152274566562779363882280941375279763953542161609002780568788950729934291328547811566872119985633437642646492545064295141392520404988822312622806885448001253875944350060063457372429351338151837735698084328216668395520891610582267657276737647758621365107118790859159730263968330128100032989246009845737028384397321895917627802376219017020448172993048664563103980943290603649290826379161625443021657104530863678221311642146671643287060069153783143980370481140744795523819280736256324240960580341852573014113884917110001504319318845537642404151066602262895231803050173564421497580620063086547901787251387166361576758244768010208236341523204150075954098204428941778064010095999520643100057640009551586317136304192743547255267360927252783093780942955311481543710135531971397145363886750079064763862553390871079556639212051884167282828142052261987130752588533217701833123910723009371207884499253560664897906310980588525944305063465950389705915839942772643949474975683143647201864516376290801651183906006183418989218725330309237340196918546078314168581253247486722596023451761478651594115438154904863403444328642328641486510160897493228431917861828102401978899964918458489239625330708540027057824419861926263211775434531414383012748939581068834040305663668056294611778180159750772850626285486399201740505663089378156897614196983596177194013104812921206861543108978769690453753787802718878381105387361546733952297491653392816596418227511795172042914407237782101903818290170534799454815387071353619065816559673710488167104670373409309740619982315600667680500139996667242489321194920511056486201700335143422716136552872238274489046437488915910092739715599254189802212052254259865461552537571669014151617666561648190749826541325075886979191641128190217765660129071947638052467072079414017074506558920704599492468304292119902516033919498402520762567816347621188283397145385764327164122866516114516291603408633509506868444014840416626087356077179059602266616980881999445082249286299513707412587198654279330175810710118050370102019968076495291176655551456894413083184345816005514516777240406538485000956369782069497417546684516027239241703109685514822616244213723306796575961976611234279077979454877347180034737431982097100534106068229862229392682387980812961220283599622081897021997690821283188164034528009914119777748228567440707362224199925625140144581719977620754294865851925722971229063531710235016189915536429497858872732954146291471963686815379543521830062735979344465750843142378790278781792816065001830858977842543867309486198529333080538981273024520510563993067033951278545311681729983937852812858923218554103363281938394949779577704787341508322371060288055637975226028125317090726460384836215647006497087238682494704576023743277060592906207303814623401258095488042293385711084505248984369106908283399388976726699001184160612262364280936925549721085437987934061230649388611921306935413172670092751061306396176217889485874069200728846805817749723961658709911751965164456329745786994191539210407009137442312099073945083567229099361094872813607730755081316541892083784206435877998518644533926947927539439850759488929791876600127600810362094670146268847298851688161996999405157295238098000328127868262419173633523255739237342906065828370577337089606538841522526409089343342414764395755775729627467424124313046666803148975451647820253741815561909071984374197374645390901513996188443303155780322812089324036068152110951020334922664480623901361199273607266645783216827668178232868201486330138927180771512739817997496149745141012798684975589707811680969820908043046759155594478034375168770863806454945928485811943585607891505514556877143891086070264178130555402403052957153212077814338226057505547069783232519938275937304843543203038500330883071235069055729168695348474774789213756178079219300508028983002584230525574812448874859508251768414733303020839007758800847319713677417758248929077398244364603879461326862815754710948808316617486243525806005787475057382813171060788628610147459183202406051445496384841493371169617811242856893339777234283045400398365213407803517668922867408211586605259891913047833153691239146556242704015758454517351745741414038734481696015583296385252545006115407575357959769229288146432742159419521767381461887844593564879082070542815269211882069206085702184783492724509627343421787672895852703209545788688653008206439629228058699562797886169273818610208409129682472300235716876458859509204633508776002183159537709708376632700479703482245484199458228188229964969560029975009589914956345132876528676196358476592992926088521381312908330895801912860262972846448329388022460346628709227356274682350136565668965349880056256435547714717048265955005744320236785743170794455700551748480982403747736199370673597297183908210559863779291171380441402627431006827877137553819777176201913830084686765617605470803072285513487585480889721975288287940819421745558871587588449608697941508733785538737291176413439659014585493780061662792921287602692970026717481139816391424482924722630732358147944753135911802275751477916389027864917931354649913997238574676002211072778280852410992353803031481123594693107496236983368592849549095647622795876517839557331874580773224183223565563178541545648375212972711694385090295937613020728311633919795455747799089103392277816275635725212991128451903360150479370534229936235635218014187461958696817518513974865412400169555215291435177500680398614424569834620689831320597291546023725693502068143311245425636364776206098252176261089517276257687148365498454278487529383050958874152730654991766507222523979452752175059526859727035113561707964859776198317431131454457281578902322512922220959489101170901347747272841967914297878603864227143448875940591738225767059811857114784783742347421827947510031408144946854720193596233559187057478712523626933580995224432817855749231860632883039107330636200144215057898277096943238009235391634589677755758735225027635765648737666954893689105624214799388429232247759164624692150823722005143069180804564028275673522657310667060411593938214371445743234843786518422183949995564274826014578492536741570368238477736925044012328342114635640378669614343224043041131036085180673211139628300516443336145427388439177239276008193691531665568313071791110487973214475114192860593125398406224978328264553400739161935579450240054957157116735990678935316904683400523705925811017055880750867829944029420412185229287250849549971233225959713130980290241675402974209587474386396538988939098440853741383983283816218229993236692889537772005630869678484432047111979701812594914890999073749555836173237383320929718090551330430957710143255768266645947776490354267725775871260500941460132821610016738385182674814276622892903015070861273163710374865236564389769551985800810820590844747865929721242225152326747499023446642869983401540785115610011669248684243514799512225760031746739687482041840155339562895066103799470611725741642249837245508322366344328168640432530912492806852356098179159037682095102737403074229053438342455605049623078859923926655216118029280394607724382826165305005317356356161117608369273245453400841922083735546333505464567964622103662881059698156979981857246749925176802333286602053451667581785214638405386255069730022915039963500525398822625318073443008652865792455000005651616594521033742583873644034839407762866532719665124642644739993301065424604091745234213385187567005747629996044269053866641433452651233583155453628233968930180295287883933130616149785703816702798099141074002548728980321246961827422774230735221735494203582385686106771546437761394881971529365359129010980033504244861672271797766067358809237061832881251801444159227444406514924126525223106476590187149091078410316692105744826794667962773766337748067712225513479595200625934276310052388368693083861851361841698381745630227469144585426093822216139988561809674497281041488771709899496930921880985816967681553938347234050559592117350062849014162061983120463545890858702778838024221965179828887496246883022390020575290160237531130725625921982690405013619128373523698109483340500701551138745115126089335415424452521303811338439190699220853080001786891701849202178818351884534943374806682225884266623092969667578007446586264947459330427701371919694894864599877986028681608520427229037326829704175457754598185845485293186535421870309452281987075182439448335547951473736753273660354482809427736146550491828766152240165082632936593041349461775513258742342760349028531779668239364109181790502161408780595241222602204661918554451540389676133677769798406380858123645751069170514658288219084585208201149321974288330012561537632306944219434667092755339013063934527514329395486324997558916592914110162524001778997632090570027973205985754749508183516667480707417228834348553981382089001003275763851797748838632783842520997461456088378350658160716164583448070795967579262875516458588220370050853968954017562293997861140783197001391716836949294851579231348908981242155059004531272452542336734298975156300904321199432055406629675320559830188714752866442721660089354720673277263014031799145462836709799859929320734140364664983091995100001679270486646403123108409028552127812831544806850613800131018180561603512437355427461769134680795364485351872252711237151345037382113154227702329770714903732894350337603395406755921842495669779390334836445502833953300684908249445397750148103634252916715327338040728217639060185592897483174561774289662980542858304743052332014713105955082724077010134302999184942567442357702643541814882056254160916657956111723481426365223195731908153255508393244450588752548901976924412996126202643358733372227783317476074100440936730357050694436666057011996559059994470465525925911509306318871485335215914290893245060234445584922693499166676249303589743857543626379999999122889367439250474897221426998201508657068628396068745265972078566315844000222222102771900870393029390841754155153720823698989008077863028493814906425402225879336520010957758636705608945457551371278576974198993318308558235674532920484917597288605601243057571951084172989913851105097052160646078740816092233843596312273992820799886840541995619337099878097130876248032329152906123018760727683582136127632847993048491558574761779522084044747035203129017273127797690683243323894796128028464514387501861548780492199071148968131727506363375605787099992553735417956240916203525822086934776714062186927038847095783939343087730413319828462689124525055347338088973862437542382231595740144277701860005334324685817508138365766810931873477064696023917261205626228304623358126150830887557359144118543808385876685060161278009923434535034438842203840033899302094496289304171330208938336962234004921300323250962410847632599800486120690438655508188200042991692274619927397684358253328036394932711883336601458996746053311300732338723100331838920776578213561046665092100641429269840411060256526807370496754943034708103641031110614741232105513765412766239587989474032617761987202680238785216537487925036499754903384943161806463454213430569824516624084852377992149897415279118906927857451568836509599131483062331516770029158854045382744381437912633079584054137152004834431972485854178114839042881150996576151002668684190218394509725178538416582233595423895778988530665166845906030075102525861543810994673191369890350346605448948563427080846501550594677189081313351306413405314503694664865223723635466233803519560930313776044256727675967142617227995190547364821160521337324740768087794592315810875101266684726331746970179070465856041617194937708147245911458040494288938650641407950818041571556632376061024188201982894845532134135344984133011412164439405241564477198270526351245179263844397436164488563311031694440564809588044502170413942724038091567291768835476878274665615122661237273905342142052647850270799193566307564277133366055265034393802640478328324339432137379443127843057972926490834767920446533867063481766953563429343888008760077834976506352842584462521390506061570923604950080237677925315316901305895472263191796005072703352987885196051887316578819381049444196916784929571717123735429862920050217975039491696702611279799321641796008867251494280615309201385576907495706374414291638923019483081902245929087944304663503195364431630222253576984833613672335885824924445432012593243659275520513981985971177325141454270357942427881823630783489647317915570302545929879528084409983796840444207750162845531057995522975754536935230554951956850544259251863930470460525120894350419694241624598864112028774773728202504732230213659668758369040616155271641671030351670605802544626548539787949377013612800049161494966679849665205297910242924561424692671419932806984021120117409909132936175630582900618266924538012562599871152359096973606925912883811718376596313834661070643901054739866276331977391935587729559717050783567075100046910812756564933257761519888948986972248803443272499668184478382468605105034150655729513777714321450073002713835800348171205846829706457214104848437078869702579672327703144017151609474443685986309093246377733496365869587882554141320424847983370398378956047368930375614914228560563161784475611330177481882761096327163089758289249911936454699745075290343899455061040127744379865020866520478610961221391962690746093118440256020170423921950360519751465238544482395819161150765648256645010624376873200896316158554791570173862842049565040914631183941048563453354331162600103193182110458534682691560780788413933066691345432481657255858075042733046195144988531779473351409664296711217716944409315746691310293316581432227104736563379751753640512156658114336062602209280971551741206118282803730064618947410507487434911027617533412502229981213202245649755352791622740089910878318851752656172921208395893354236116414816102373554954376096962150089610982362641174743403434691178892356152357183540876382753765165159304544257194895571233181272524752552416145765971329926653860803468708210583003468807081369120349663235423233619336097480179677388054475486445046029636354598586035339839557953488357557373268278860862451961369372877785281031622994325219066913862011507045182692552790611448893346149713818220417930021505152042062288479019549437584732172397018914953842643450298440908691031589658519978493495662200498514981059531004995811402972577418890895237800758377257470058900726375492325009754580908516819312315129628183042207152891009536014275669104908911139730009793487747279372150770322990163374837949088752805363062423555097815660158698125281197893726168903940064795003999228284467245295632261034065486882562142871228395065222045125587485822513121612091798698273357255515969951921810070345717641359001588266044486200750032437921925746988306674221927573894712875471108859840960123352393163856499879840311478754304021167749184685620501277262564900250344487832213303058056969438135342022311904698600248983735560618141184182761252523221416128073277919949154946885010372643021736526592983092418257757367990245760629388494245931888595727702560443564072225650006460534460369016295277892471243509626465724942357942169742044093491183417441054139911922195012461595846895137707339789137792450677077813883677443091849277166951547007333338559103849264409074148888881241917662642846327431048856631771273837899862442506511253485518456014779189316562448923108678657358303224086332544941035105349375794924551698950537695128135397484731889756385013479763677617442231619901231905172818245310506895601573571121843549186495486574102909692385445732453823634203439216323642814190574564214250453759281103528474349263637524498818661432507158928236696842541323604251031227451079599384457211454933564391934181248764993581653649070446683463449967207142986370629048526019479033124383487029090593491083377662061356270116084152753169146447903910181045241515011234509719857911764644764392804587115616823486143022594822844957886351886153115432750044169898325201189719238837629358256578100759977699594687600340874777491757614152817881783522843878114431029146039177220195721189724238035647635871660474226589072068128853595555004761588740356873934217943520116750999485310608471212605898858149952599491068325209004576739575956412554565436719101351780652791481512603231502345965971717397247527086126669704366339147163531920717562557823904137305850127856310883867789813567327886029298735705590630550928657643770371466260631283383773315068969920233650825430510840483041035707223762267542973788457989623999973663812068451868492234997187541076979333420107177067950190689355315870950166582791985359080075922109777881204728827942902811131050022960554146511085128834890197455906526372750562405681978529720994549397529982197119439388223153274211342053764338374540876015143320658212371256073878762715573832019325670322885326967428649781227333984840238144504671805541668416246117792775981504978932733142218700456279467964914593347856514794669649040127680185754335721852636889372829176228147295708669338377825801377136229150435426348956244402793749796990807826082312771227268203809066697889709714915744976919739250817201684335485661556991225433711678995454542102692356021062135067494997029611954080206083589496098090342142507865514806147444754237452490739210190036405145862464832926433916309843445482280179192262674354726137516340224544406314020595189412658640153973986237178075132521067339922362545753913871164055253699872231196667262214957687940085466140296953654327944097388217817800246039980233353880028197372673350016648134678036938856149603582789248215664834719673502444704463325622838686260165994024444885289666311664778940902689009848287471682358612777793169510105742259423120890214127810509895666598063709943428939005737564016841890974886824472838872109257237871874922092160907544485455896704945890815355503787641927507210770809241340461011723090261343784944269836766110746786935675710074796635980280391455670194045597537056520279087451504215092204626998321237058182023971872172039409521596549322651068529400899323292788569598929381457653903181083704780542511293566432870466675395562889592529622238720093028754153983064412261192305377803491853204747801855948932866410024114038731252568793022528548138288213734233390517179228265519313517432605076615703094255382413050189702635666463726623874314618302485117969483619696808488701149087186975023895405500900958845682987756444283889165823898037516136412539716976925037344351212994630790788628058724435365089117881139031818495717381068013398847892918786644514254452123800777412868839060013733075554030406724373804656746294810661030212482970897376163584251004921457938367603195374654151312876610073097460946581037106767395978150958726237194347255266368322286107629428896856598096411599911049369008395634589089704913826669835620994014808249168252382691389056399251286637207627718954510375952675456365146397933104422302873989787038551143084725679372228276746011821880061433285722010352825453294449269662847390852370971209358178203507524550299364889311519234936120151760965913580601153509463679928481492244500936243648508853006918060459234341964918915412708855251429306455406812637886697111339828452079569953742282267463107484116971758271080881642136150477478975465608209427535243509026659173782238416670998841627677083289563106882861024409144372907292302651335172754061890285504280532662466287242006646873293272819903042435531770170019132908246059752147510772684353918149883441901285855048301899706432467492002577767489185660002015882545090666709516960859845417411929519879142880149849547326244219343868473049124446119255968448779764030774194897040547073992370347827316643925752021328482313418891109747205454243535610555380533904185354659201386293891077029355743463370526312916108266806098378643311367435209151941120987600508122368451206852255026106706826547660182055448699315683003447104976387318487233015124725087470484053121414569984269691414617998883760567719599833465690220675129054226017280680751930236118900401097874885712800291575836351121946547956593071753718161232019344824222765578762145523313047408830628220942435467873975287627714229035878917316421237559749010181771951647804724724624366417724694492531488517974571450119037351438988781372892613276773129844580801341713647576662234236408729745109217707367485560540826665556560017421368660475283576164924379107868029935326241945547549827732000737736656320662606872738230951879764353901381420748214316288817150744415949413875725759957252012574194397243524547443753642281524343848704593481669679804425254349424870988953045506430625856397534380970776329306472923604409739897039044158750368169298008151234093736075572531012453336192244159061908823454037035366021683953494402273822063864250319145953585666938945423419885407580951925257515728563935537027868738623499514272099159757731018372568459733678969695081520792306231244240493203977920692233715274896096379680867220718126063254070043024897083193405803329757018115190251351185838946761443343174471406859748128812137395782286599244432952078359692270179600948684768026755979118809530525571639808728161831552815430181737326945276681275614298184538096255789518394077069491802214915874270313981613406524318894034818375766978565349622163235383306722965502579296724345298525364337791030393500402855443803720479773061532280262302921941660621484563084174633195957715756674385834724288285402992823516920107979860929574508449019835868508582773164342062992254366081847757993607206234009336332435461550268524516602039257801671284798311526783335116944810992648683077652101550707899800945997134713918926504216959826059154679610316209159046367995427211439573188929285914332121242939489421103126795304694399945238787788622397717787835296849000394716043903682033979413663791961536334379103729217407278203476460119696248095654328734701015540391487969960245665250243791991586721570785466686109237260286252743801958864839544773475241181997415317188785840587574055026135702863154084908933780415265699372204098838883773745857040023352213181563228736400961834956829485745625244231475346081164045885686278264608703564118018577108383728765905369058141004873000500773408057408564758593261798084717254047210968965443228393509383139557788373955399370763965834610274040110879774407475333261751666666901804021701796184401935294566962462122725095690879344098520493782172695036877459080422365024463777320122853234257856431795660779477160684510549499400107246698163479627103546906355071274257672254996587574392786434521416355409242548448483633738887374299807733441389362353823121130514906534708994699851886231266557626094718925263751688994124421487997774195149783643176452490617943945806168297958428443889192999637832954578164945453706284414056844863335288610420855121308108639977591243578537656645834417224653416260438754424270600602407880218742429051174070023782994272689313001373054001635409385308968143129848745593769312922417058268117052164684936545417128278084153333442943015329980958960844459941041895588273931437378127277843758190706637483223447569887246901165462494510964312259912687310004495903289363867183643076979611069689225365905403215081491661183005427652370346228730846552860740510317786292283770098957252859953393542766953652281767643886499679530971669116181710415720138809775352653968449907818225407530895379546779511467291705650635469542270684859468572914384574116960487754777788479438679216352448212333612417728704138109894488184919069229972648859572857962049991603202948830531008645164930660741170857139501746846360237862673271000860009341815972075408493127140803276702155074072955654513006517738895113960883604962153076743392168981921991936858549737956535780931517091378197750751957659098320903235424024198698679590073546388949600896826464089136039695631291706303379821069697971548504400392830657969338896044940797000177789222344431609749847694627272136520438785960910579134150074916858739541693280033734963547214034328475018313941909396983129295369929956361682719729837221729810932312660479003396938832030383712086727976334709050556883378768080130002917338847390509747347449626669704946437470170276274234765518442223254909121811999600986399210511153972262318639081696670391253020317527415802933007376435173087021672918024547286126553660418074027665697969117327156476547347758537825869633102748272852291174731180956479883387588570473524861242413098446854268651642629679763611660971881446546647580259389468530650833874889931366054112004232099306734457954279321564253784833288437285192485847318896550754833502290322298969942174529196937283009237534215227128034064831767937745203221167501484704782600349868578216213734802057869316294735313638191332973765912258722739590864182548088829944962826428079013550886980954395276284631605841198614560357666845185209151234036032559422236294489808880716216126172489044840228810002941785332358082998599421481574902908866945422966420942141823138326830263460523864312872742761272644277089521893604793589869259724832433748420755142154618346557798231980807689202754249098213631195247939407851712189908367415078840933584705602161578910402018265572329406839643287797876573808747779851356228625463547969234250284969675864977464562755865804960656536621060538987056587766914415690831009041744878597544685202415449991379104679951549466736667157180521612096823039759354836840229750144031137100557511614900257442541328822478997770893114118793755283429155864798239401105977723595383540153505442496940137165126349635539919867424016101780769849933139017392704992354960916411454818258225782532595655270920104800610546917026755241485852925865350018195612523973477563603418351374622492716770236363384705714124597709755103878522979343336590750992217954759645302926944207182531200677114744355505934232546585130088596770278094373046247085924845212895595887127913625769946009582879741218586261721593435612925892209000764918170957911729456368873905837616863439133496983923941606031617535411163000464235054710430222516988475952800031683833932519760268556638060806832242904985732154861209619281679009477139603911402341924036698335237810513646263663785765613131303845388893051236240474082783367877984197842213365881438927653170123451989699215811286556142836619972182395805198724660064203515741594895022405827969798145921057585276128794684493148524615338017513293367845989732711926322398243325147406579911826130410905610971559688733840421035982007805926484138978848039064766484426804252060600962464825324545718222089753294242382784160809910747911909604195024241140820440047278097785222764255726065063885449611468844552917106486628323059673374352663605021786880555595748976832445913055895361791022250664717658895732161703248477731507958111444145525781554929727838072511609270246675428656478308291782604848088757721657615121196749567053585405282061564248976681348268153206198851576880559176925000372270562580598540532617484973794741851897577547775322665353536331791787188470708820055173712239394133776146476214716109304815057078420419703826592479685530121868690722240786578258931641769556710098021841609148717082228172910394470298923522002373748592522822828665676791878914910613963003879841323178483902526178206522619719126784609165247583215783335948877493867549846506895491570877420764114557935295631812665581574927529996962963499111084362035602547923117419219123637189799963394181672131692831776236454938008224167801391654317227510060628477541443227911810123942755365779596865938013762969352871415596148041595414454091327524114726603765418850643059229537888082142897228260862668395353508897930958424759802108849401519166534942459957275490948026738343102353117175027458304755041477125550017895848167317822746680257811508719985722781011608044289326686405855047359562499851793610508339487774629760827751418932367704997023164579585872568697388767217832429047593143948769877841290227525037802844858257280787468205832515068627166664716784744518759278317507102756951281899958428810102408679721140065515905210622292165906502963692337516900578782344264931849109567237168494588807399604427313468976974455471713102778345685526312279356739475527848955655094555091151679645437594624453276963905217618193642739158241010765498710682176610891441379755688456083236909717971283019268320989717973900465640232266947038047352792021855101667011967204462594861943135830914089918636085968432217456480449321048835948578858746643528059958705036619158873603805637882159331586867287879802641962127354330289647353684518151502194159969676303865173566122560440217294812898241460342083458356640958253904515736468813850172398423518192262226911892118781076553048801086861708215720060535363094117126768230673894889747920371726717973129612160158063954046267023585563039393487658022515728363751765976002856722684679518410829555573012667978296133536404878423388086339522444308143823562021825751688892449214242226092520320756197261048803471085233419397812115536092690358375111108594940593440163189469285232057070560336572378389945721151884979278797930235654109058884517106111756110738538435340662486919486103617323826568523380022942619652850382271947417425889404513595246802851873046842542216541785056185439103158532259454920411471288119759419521593331856641941006551258392717193942829275922981688737267405585289483910340000704841463267766153123740916510566790620474474441006387884937463511934723684644914031219542417500837353711735822998785994932925739172750109307390467294292292970177717479002540199535428149497246354975892766473532013843572866067891999467050680961015254727435953762158201271846188050929800922467782000785431339633723760373021135520126501840240935772470458657604446736092958933050550746632079127632700091803744850467989319078201404402997359713142820987037507044579151882713138352414797896866140311289910304317745941928563461998461405150262836169401904951226186948359854431687661739822282981892672190151141343650369075695726962818967402829234084094208115904464614761215952731549324693429803317638481638819992958758465106651091269197394422342613361465220409213680508737112097660284702649024038685657146340041756727087542160908779018459832368126481818599178155042632737018269958114174852983660114980486751640098354283730111056988628775655156913441401705257837416105987404067306635501709008477031039169120224564892767181856854206255320662784114891117828623583416115870643553017820091801870355420146160205385406559169323982104104043118601233943671571830372771546662143991017652856959680776863910509173276164924940036915382773703091702457079418383296725080661695314439151489140880907773274360329011264283373172653226455674589188512770314005916290468131597378870617772233818915671019177738858845192934776285434789579201735531735557561673173396760144023747705741158574167089031823619792699033292681276045029942162236948483917038566509075237927675470706869744655672062657094852953424633831147240949536733820266472588361177018568674784965679149977351244516000139197922516438978235747896269465376887728079146849250377674276601705977457000717327542126702133672253368820782511828606903155840808715806023409803276319853415029354489469632664757345457565519499782857378143055211134656795866930455891740973884370625198700392508138522078187463305393939792800208774215457738158296027004073260356265750632561228764386403600634992686903800234042379935094027858766127373075155391048795524769517020883114120491728968649806118037184929993415923309068276769606884036150801822810335844473184741901468346929008143800202978405370448501291721160100952314245815408950393647581823532621261292702670337989119660239419750039634056175822098657391722414971098763757333806375159370139502883050570344996479841061831602617299523916542546332730272377671185946440885755603330369468387148467362544638623895706468798172395461773086871034201267710535033026836761525320558926100785118057315969469024211912660038097919129769467823700689265238687253753100161578193018795217528933228632330979230426143143561665074100240477271583150390047305554852857812173515248174586398908596759475247643877893167888553298652056670502192137294748547512096961536349715132109332128062177983296586164261280260888823926222632439688809597725161479943847792266548964441323071382079335632110314664981911149104019794249862516347338619941203154243986308876537908780401954785152874085498984578811485529096827444451101830688825983698397252389928530365325755192750858923596641849438334612701387040830873939725482732088444836109991443393405855131488089946242908655855922220585967052967230313677297024630946196807667118921104839597574790992383490713505954001290970485208180438884391624663866387326740067299653818418744988214011183269355870077005620908745033171331630752955996131018538612394883446232002630423212097532198153733178299698728560930225915360709390284725110547280480030011238497362359821966102804644059969210828755959830634410736998944657569481601384072144147849032246488576381059581851786958745786792592389770769530295159161372502575474677507135741482908062862395498966943215911081302154566813763332017524847044302166774678547420289461591459104706898034751297301228741917367204750924411183089305726218764313820889084110353654020874982332938236950052074263270481231208177470066879229769234981451560314043463697001309294586485072722161081077177781452645291058896358677054253419793691118323486419629511646904696237372875098430230250297011338268769211105590150165086649684217129099624517280075964891569421495306099989551467616543565832993877976654030858674246214555865463056024789792682358058559596821042165588622339460741562723197235409871413060684162448430154481427409547960344305139430823379273606851461870830236968103331974941132024024951978970122000668182006084594862494223097275748211537080466301022540506144596230829035880623130695242454866574174046207032496494183534008962819646772982752093843831407865533317812471438448899212317552733559868115104506241801447446518441798470902550125760437430795182312673871102547032801032072084020602706754484397933471751337639600470380203319084407391816997830388056940086496061896500273785455953346350926523187637619900777261791215989374035101778374127174704936002493438992737772758966510423870437275406135181594854766937307278488434607582166152866283254713785429095626376849074235844827317179023642414161899358747244961920713719439788430267549235122609269383890892810322455700839129820119435917666832640346232700129747452091855717471885875203447661995700660552980467242091255809028546161093477053344071181262552285655427787352801106522509501675783094866208773502446155419882585152177570995173647321749377658045995311445261656398750996024781464614141763690935431084596730569085619049668171063748297233877552514230422839173404452574043263607407217247922907369857778112267895747927031952284160794827029747651230740070667592862381507297813045347456942398381424994543996495783032404878914343095512113366226560664664004936559723544009742728145583023231436726499245138653239179096479221508359997039965119142771256053709720749108568360224936679356093188558296420677202476728903123449911653603510704360768534918468250456189678969654580222837376021621333324107720114519740113417048390650513331460306409460181442701687683578323870336851856185932009867891437582203277229731746321089280454519953965855193887109302496539269290894465382734020912581610968634773538393690142794658520205916214340884677658502755532623197320257343705743390582437894566530270947881379978670171321803240578705125829619596402862533290555565447274801972121372614060511038313233302299785303575750957496069151981631765392826890194750308651568543760446605822612268149411801386069247200556333190886612393475390709554674588259003792588442149468079452211290909834574525919925621441447973613889703168868551071060375190699981022720192663102856781228568052030859746974414462056735700920210991702606772195154373170364785394491419544755103715744403279066574585867464716384604939072790139172693309669825228258715720757111708062680784002357133904849434198777964966748975092807073761821591679217888974715459209823210066614016254985878518853981878619199767929027684590610168245950824227002126842851344069679080963913420649240736779701949863144742834830432431788349644634791319993311017613042892945535804207893738205498219293427982055705379186268451856844076828633799002390376218041680851307607313433733819202744819297983336257817078473453340665813190089897538141732453133857207660778308128460603195988630978828115474769901486562263702534833611148010939561670862798178484212816310907379094816241838550621436898799668100223043148558732682408980381226260947477286150262944095207567311418690196272755144176663808778190273415526492602155245087268834000459207394949426396069966005155411250681112077604185098492382640339491675096547164943093213529703874958275592439634152332328204239140941241586845334662634289733637801803867398942486160888624080129535570519140433898191278387694160708689416009634427877544313025356725003732228131316226184058315460427528580115698727752220079635170319993503086647261444243298741594482574117221200808549879720793412958388484726910736024145326456253357369385986086896690399127169708295413185819819000400591006270890102478041151743117317696685061325617408746690706123560470785518259277445713551188105361983948087869070549829420362977945286950450286179487812432767816656548185533059930311409178496012117452549552435949607044032634332496678350670076911601704457582525482659691568916606943147994185946385583184990904014992334127999967526428613240831234618471513541671641420607427292781356407961879604423773906920247490674913135073488610695327241610588160190865848908106196426092254388696638792013524752552486451236273995781102522741401340679307268967633245107089814015822649328175156534810476283734153758964665627741408522113869934119343928387786098084197510406053743605320568840147216255917420941285284540424291009280951095114400754558536395471013599307198633880684595622998214202255565245119949571124370235944143086950825434380286923139763580999082434673160426686087075191888790979592476832821484179348737282696792736125536560476288939303229766043151432018493044508392691220462281820893277442307385603806046881390557088044414950759373433563396396034059251924954477074798093805022621628384160343280533793844623720283496347407951203264544243652863022195150022867497848874517548208323332844425328845086601321476879034041539528738901676766289257224865387660428973717555842191653073730370653656960545173069411503731008442123810339663928884432614906016497005872326055109060641964373677189439158887680175991919967443078911630156007637956391004902312438459243450227122519830621826958411086145140677770260334458391477222538502389470973767708949768866682535038131094720186632866582608611743578967360807887064182951786332924713334704596721320138503345821991379018213520690511009447244022763879177491047610081461073550621852427837935508150983282767093028436436735395131612567633746063386724610857505245361016391479180483081431506508093955357472103262372009270118172938551504254365602085323978903917854264806896213100096060433168648664859293516409997313316026490821949200091693643398709843431176373569223917702011161455785842785475118435499313381738307070795974026327101961297647229735320134091774829707894566896315030666032355086339863879335151123844146973888186908250132043841886811120196200277114710065537170579034179179939918683882073804368587394275904578254443704631268401990554021770293294400655368711355977293871721245618273971480862188558750659571056838439472217651288729050648508486060327502259435607964881628441584885358483065693925969599698150140454706420515854835500936016949885125565027479016195690662823620619149738147472517796332729864780782906028908792512956393872263120677318355999149784925885698411119448972228231591330096999227421587167591929316057665597921766246136670349475011031929910709367329922113217830421991928721122982760567724518576440782667674835244370778894707131556417978111833041070096771442219472231031185700456886577674197259044693916744440040896276461923838804311636447652527753933378092475054770072672487272508478994687014260969804247361414077505350618134648730465358943214783865860203417297595152066647031758071413918078098179345272698364413559700742407898609620747286215208662557165579771139971307874535226477524187924433113362496881898678280189905981759262746943630175622053354804608784962336717465559993507774395884224098106756838870510593888054934164259544744373675486646215115376621847032902927435021409362979422646115449535232195028417402569621231416126075835422193231813171991097787584628683250840255786025064740317392134386959420786484410047037040454096234843577521849154801060738822588740550692932323938243779156304978483194912748795768928305674266690187813894240982134824036983860386631203385722077783420063671787883195620332387695586315142603998737480246930895699917510474540542298600622076646000010830547991677152489125096301313034488911347363858334004672713672549307211294100913853419167077334651099612899636638025672537587281769586774920621318403481314538929876333767468437198555304812433503402986167742061474570007930490306450643548680976984579521571398137221434503864793579778637758635719460947784933855825065497616257624995430679354745391246806487663380609047515606400350207146364867628915529561311402660639091292618255383689966941638497748796334628111245274689371545536872381430528323595563758247092486623403748767115564680391032928735910067909138281395005256380454559083611097997458401784355846802949280174011307669738045770005038667058080046329293186667106864336744826779136145497863710236476732551368028089617653433427440505894340986616130108698938829963482053589750346285497478287258946767983429129283795789951692720635711915305758629169433702582814841867926890219990338313118102446897335762218255113493443955150038683069532572529497260965640277059826936222809581118206005552736881450520107702994318251139036899068109647955697563493843581859339181602959770934869031661182385443154272329639331774779957670445116984298825380151099153558056157373169815795261625031830866287889895923033370319558685093376671604860258838489425424527548878535324405778149386412054438925998341336023918136201711471500759221519666838521374558977169183078508892603719775425641414019563365941284579818134568298627449492669268402235214750688504401107260329632299898824180421424858604952685829564423502091588555224597898315420164361196408783059520511826634165427441247549515266527365260641659293541111647172152756145016446780984714310222480015033663650223497070163897797191805612385202793445288239046262333289141752592116450691333145362828127637659134691121119020514140879000069608033946216519940749315750277819529077841371540207448495969631481808915064116101408053935624432665868442548232328115155759534542061763786183439374685942314164621261216080346063812367315753086250778352699411795490936624577267068767513589478628268733494550023124330073183211603794385236214453475275080161028320428436360898934192816312635317380730875838536162155088382741192986563522036083759779379568533167224896554477837135971516214569664127630864675193155776446975700327655050624218831302364141992261596142816058361992538460308663166230084224340528780607401919248527684626808546688667896394837727653198277617990756524654553256770552556684509833712229308101457383245838672341933158042667862215215369045837950687227638789394795792050985128584226662455579582000798816807879053100985281263454879169902433766225605963298382665371132800762763191237788109063635081854660471794230524487902949538850987795245520511278314473056247453703122230590176025992774666590145677195666561288311220628058364784466634821179803631314018919615804849317756543692007433678250811724538140321481071139416696886463814379638463209790408930503486508132485033581519951125569552825451860412093777428969903272807325339257345474286762430574344546116500281315339211337711446550996442198237874623681597060586428300924662049721588164400022817005054045548888686596723055111585067740762685275695845383564462766877588160195753459628982431474661044165140400800713205747630167507251940007850585032028915911294144775491185638276932984231985465781441063802949781420872005806145904227601003196471251041331296522495653883945413541062122862526018730475863426333920945315945344698581173619224166244136263283859864898645409481806390161933043685651106171035917867138882827640052458411022707491786886666565528489747991280543303411777576661027550562168348998298257413450240246755727677464578041094020300610873810764118263564677246664308157511487121742082864765115301228284927554066435711470077146866558651770661367455871547016565284895737836653820941397108371543073410212838939483082267050094985391154131801646731924087800549208197169203261106777981824427135986227868053219757637956863073230915809432528808017455627077582174561010103600256347491942610276616767223761881624686597200323176004590234079568187660360868400542150046898056666649023913133081794529818596769912771401479883189264841732619910253103613688967055150682991358107532114830674963876785365765098452378215790393462114052820399570686557022053098660425584944695196291330358338671033951254519643546456876351079101558239298770297650566744243030457014157930467849889490067513437632968187385932048933424651657209108993519147975335565331197688446371927341564913327794047525763511311006623744928340467673939223551471277896431322833580862966733211410679008695928505912975491181895751193023352032094808195505518220902459759901252534456185579625855812681689054593310902596478664675965746936623293851255830723101762457021080212066681486552916528032230775673443907226708112089291117773942062865935580565400832536726461593926332258132279936532863605812018333410100918133485730572496164869963479721494237303526872528600483371911356731573121081299358801903805182942560931331910403927721757357580609649602898612741997778815320621842771816256089446300407203461713224557277899856341387893695449202148957058220113084714181414084792227233364966213477228331679361023439700686327508288382206236985703101565082414689528978695111491408591509224469762206321550721197726128500045075893150416666336652388317388608829820353070314261048499630086057362309977910158910418480980002748288068154825327652898992886508346643446311761347399401917163798725182276721861382131927107317299505426110705520682787564817391220657059853019309477486823122549961500079785468506460136873592536908698528573550249118637331080999047456718496592378540390859080946578586288064589861314140394226740284254233038822192030512846844880422664787213033555800500923724462681895667908341946269048956729217624547725362694681487530126799856282746875359895825676661836588837714096995182194677157645817887977098833173250362674219395009924504630475057498060114297114065393424243921268837353027979185853733417540045799386482610540107049080360403266222977618617417620055945460279263704399464156888338355582078860407734741183219009072351467273994295791055430243154551453495650767446271893511811206776895038069740384887747854400390860107599319042778800689579773829822142496769058324397998230017274181969551487384335080685729090906321165455712675049024449416882898626184149554074029822105667568176161536384141822917194306255321504281647345287629719651110928950763102188337061800996601585420548468739380428232258844410062552657110977700768538973397058006644987910110001183531448670877063768667551396191957522450575055801956642541745611085636879219605462893406964651489116652730349751909767507655925197406612955665643911680969264480005280860065353073306231950188768342272700117496671582455886450226168097580365844446458803888781792319749900581320319031199592518585020375461359008646189150238528531967395597566091750079359081968883384388297125549789325237656190693196709179362254387049185178886620310148881553413917459812233484617144855587788646172652845005364136568779132005620043762050226353785857526024440098287587520265932881383658568224437481459834757468223531451675872057552818565285003938372616005057877200817080924069546482375613902668562037543659639494314674415202355593134590675666008017157281643312479273936729467567273458763183034421654689858878402390872451110874052908494375304955392704955402531452663497695822013709265230897088950397837159474683796259093938181276931420338020692699414549166809701851794734432883063953116675298815365811417718210721874193587097154344307179044747915346509570539908516701917327625251315682928550482071883566847544078646858244694961067991526247631435891783142358969495628756089891439576212433089037274351909927763437488683430165084172196528270271480372176691499018766193938199014359214244658491778169035569171786522285181426796537333258730891040114927106894471450115422998138516565088685676409287564438279786464050305277812934076116278830787498730802832500861882828745617822240565904032484490069614773790795029859309894275682013100228792649218143149303518960157405384937998109703567668784664122891463171197210668099044287507122904250496068822666187030684925200278714280976371759648794388026986451980854481762543945268644587178992809473077340828802115688911671898886442310988932635230075816145391711567250583026252121579173863590798191163814473653218719022356323137818437022185427414440364291223784995367235123166536832743324333536633469082475618076596163325342385692065256823742332616551856285096026730422798677557751539411427009298861729704275114637722187109097210205398601139480404889452041952225091419219364439737928138121344756910421793621390819881638736199115730662919755403318412295392492918357018873587844458356467355264100832605409820327009994422180438439214496016104506378396646865217092035936246893978963121668817847080603712294779477531737162665604140979616655811960238744711770969154191762976979136952227118499654449714086243181082086824049206630857732682185838684235855768495129822690812698429983654279031183664691581484131638922923134538990683057649953755504400877051304004883418894812064781647148769946103500912142101171027575411773519270583435678421692069081130633952408923007142882479527395196192816604645249468823663396608415132762772255257585910775771639550666323693191249223919315465689965638352102991062548766865519923195491561873723469790708143550363256403551756287837280543122635845348830738428466434403194708079244604404349592793453807692267537846085237446872917693153614219562738202220865147471182429787475402965485259543190887267869537261779228769606191940294663724229433912975358948526320338955646678451087196843604261831597155458178896287961822223265986358080954589109102236470648767746943673570678651501675980382915628105580348233399518831720356578927266386453380493123313788760730025780845765567375723384412975147350828073977266891896874536421368942370811737523731412904996347433693331551456063019568350280159474302761202230995212880657854486814487253706032962388042366057472351409320620557435868069148657821486846931934892040088714586322455282456390451221337004028995479056970425341253291273721953970160714137974741050497854411781159366150300106657751366614641100734524725338646174322489941267446950393334212914906837785869281780229687771143393984548884949282066622155715957210232557285383458503420007988273455039704330915664107635113319026180925787356575499471500001147210132599632951795256743427607535690780054383805418255682888545122076476775531084072252690620925152178138539684259887496608151571132747916757552513409250496593206306376250976886552693511192087468047284416707210184033663248990928441930567974703125679457264613301901639111146968795558933905310238632760230122963627312536014407744246574205275066100370980241930032421522928628653355421307708309559204829752395203196702945654116063223886711481989420224671220532237134350630878345469738717753264825856337680492460678025473696683458146432433854609600594492679274623166420847382343369381925133009235759915636071413870768094318455974878059731464624697759657996756319544218089404639029079168405541693725226091528418534212479508357809119883525254732404133534561704709831670612670630108745992139011664407524991504953850658662390390660606688850922090226701305044301628065366558356288279373129171606651825312761287889637082544478640736416875902613293165502594225000768582906765499104142605136451431732765787461181047117782551384941066091898102992964232310321708629467046023560883622172469087088714112856126545020974947765804943803199172285563937745814644437761287138116700496711556506686746836675805651593355396028403289415441924368571933398332706229376406982616303092338370398155284012192870537349078633334122824721634876009088228367220138334576890327808965021077478539384587170371336230048641728884742764651223223424173124135042998992857741767027730189304296000073334190580541497144983308285220033620228573670050734735382585334540762861957846908747840667502081390380173450502079465251470758050637413242499907747521244638126743701213593608958736719993942420532634597193025990421159917836469795325269772273922180301390527055117901652389019590158842480964792000184389186977579353565921588038423845061523892278766890976928633427333908809236345576732718619618711241648314400065223850656778312801246529037671750790460740276843460299388563696111270582012352526453773724114258294485616023680789365784405554336694672000620952066600150052832922805909597844704015717211230688911078243359393820548012429105151255327278133905240402692194532667637469149680466461552306129327351492087201506053984860074444421565497683820139483174344317841170019471199868340137924994958364886096710673345327868407271621084063371674720618602863809346524963797510983461909612507345418074364460741367990313607820482697282461136884688870566585564351120266244435576721606998156019764802567722034593915098284075634322613666141709694517427493774583632307634200839038271240029329409914549899162008030898222260028508852579110623853634879547404231376821786179977177116084117124965184066949871536717039982192910198783772337335374670565163784278691082427792156071648423521760891903439646324135679793430558414920824441422856960560585888998464678535187709716077101607977896060822862114888990081413554192272133361927442043892158354099671664994849571732223436245929802450135583021500056024134775576603819032239230319411472723226737670820061321706603604662627058264227529078706124226976879612242218618632846461316191364684909007387304081134729224749889555467272841410469040981490543357225769058677312201267731313095194570647653458990472255168820220351004897111161168337882651041568157170344464931669847569069215359734090967294795393520992103741193775018808678321246476183308651424260780537323466763043296390950491716106281482407302609469581424288350661606946806047994072115558784836580478938232595305835705169374807437419387258286219194685222467797019536074032082044367091254030958481241421683299798286024649039669002957103450036976927318124116116064859671537238835445557380753110570434292850686597478885459436320541487547738451495241319455285891339797976552253772092299459447455601023291502701096640301346879153241033502882064094622387305538217804564299792871315216383568611440655438786257026992008481089884450746999051558209772476410903022263159562088828134185806159367006650049017806226688218995823665799604667623104904004114865528640783636546511541347353989297542010119708936241855006895561949805385273368454723345107755492593834427090669667884015836433031970995489294797133839514564120599081452967886186065265103820938298437746391504570863666155262517980302563765768321099129637192531272690184060046090318442779872251560594205822284384513546244824287371292888778075431130434908786738764021877660816939252593628457093186902173298991911589775164222705415921951969514836133614194170120745451596044853246523526623330628091051252862590376208069091115831538499913882980521701409741930922722639114486320811342546519053392917408654104067054683109599730125844789435984577643229329978520935041228160473187811564968742128276222050958274316431457183713314343280145504804829450688092595155566626084585409648750005309087052830703492469788921134588211181468887737765760851719984083828089039220810210751456212079510132499053031253838312932821633718097898646068876922305116067355645051114262221715315464550383772210696575732978706772867213688962534677749230799227223187892170225273494243187277276865407251335680951803757816113458381303185448467335271446542404059898136590476193807240710878733101147109179436815616321451794852411250383589394051266797162361297180473070417196730497826019203464107364970928238584580927509325964268238089653206025434814039873964178964642398328168057261357729161720051493501743049515405895492221175100551028775153479192082899314025602682983515349693883702671079771711480416205930634216029745259123561258644913979428795153576981720997358921168608612990218720893972790169163112206147736080566652226057456574796039154207298509565196987836800452779888285842790908305860365150424773317459151821215010767632477782287984930390040032991399766126066789675447616944525294156201137406316238003812303342354362563673906722755438078771623043273688894168466108424125306474750609274313841445109649169304070213964831813151289629572882118298188241587826101182576439046190716596935883758422494756608653755229300054512092285499387240969706522168291487899230614408731634718929544907782755340182742634216003810528690261364112805738366637411252143133241173901980362846841994002741731466178880545478127776266776203225467521741335547727028408930278824534845169964856888268912907548216891857248959802109988941932509438413597187906520419112382032726436532138323223001255131046607592359532074501303573077730515250087864780526347977437828409993911153039778620545060463120415602361332802789496920459217078868904860000390653280559416212999129883803587662925958893670627026184874018120038053003617008534347529170064976342576172404786440304119972562269869077581343519238622742354288747111072249527327711477061449386863265370087460786732505132682909195722183901453064685546731112085832312564772420439816866902224954058563497568427628078501096951582966783876274823845268194321124097110954746487698136290034357960624488320689445794120912407599044486314288071827813507202511286181968760003414127944669240526712480324492086786510876289554943068165684600545940007924803121851558856280876747847157776766866562635101490972258391787014898982348780939429990984312324870958229840032070221849852747102261346342348487128904119153019773131224563085298650858574431518459960976339177261365078417548764017826720182713419328654132834243050520208284667052009270928700106067751614972631140440349023796157485238555404266216093257183200801295714128478324001045476756758430087679186270088507275476170840693978991478704585608283118108514872548600099571147914992619669436358839568336795618549938330044302985972014812128039365318003745759231272167475491843451596283658935211413486082121384180580664132726679471716013231718824472049799484969956648512403399489162684331380171713885318992567342846982153784360106780438411159634360173871196037313957051165489692367443872747575884055079245229043329015364882006159191912478160720177303886803598779344020233199404617733758598699000055744914174806017629089357941759923618652610868509956283150334753977462407923167451973869926748148377057740985205754152258912441247565152315461329551639241491344402670569920961002116984909282295867285156382426462462223934860177623378089101071574232690553121963873408339396146472578595173937693051170414726099782083916529708647222897784532734973375191634241410263750085809024512498959103795947127211091829756151396953961663929244374978375689461411066058588565671171015741720613080477757644084636591797495149693794753196734305964691003025527309956428381579121364532326687202629659057085167581195156225496579136283642643447288290242626041264230566272518203052161080929885565784422788099727725969697560940026495017404590796852959612679292603543730783773773386101375058246732069578371215788758636268154355925179339419176064968777181008643218899703619089798162220249740434878459169483249871448612521275947602196757365320144906914146079332917883351474222882905116172524123138280075962722256797889823058526796968345369560698993645000700823717886760268733640638610719961058932657174946046278476607358177199922152049207356012771391935501397823236666617623048910734976972262782024280050124324660207673668999155398903834583448942346680912066701760038358940889949247059570691517506083010854157607089451806807939683331250798898052659930273626718055935200322202606761245112944257714864999857658585939197214556682102236199721653680558338635696881046973162358315933044758801262752799662256692712239893626374438059944446455363784369765170325449759808042036433353248610434602759693069074970572953486977967427300318172974244822587427008244654759517969577433573798603331424175376263366998639060787245313232486317552256751005381241547964925971685193039222899057356149733357118159809324840942006416874690240703902238144935958792073085017831959552688113232454793946374679673625402843993846606379771831159496408034165197455451739973312733245852167270916495737688389359597774074126275458326446576333738344437885157788306774822518867595274804508248490566608705088775096718117580470620693773088726737099415203964991022566793214556116985865602744898151517935626281701438636782393364850175637702379279906995507753436115617956011447470580160223664123380336164495103872951836511992714987167830865875330392012383267788739997552993493800981802824852425317457014071951750687354632007553724409294558265087984970366708058817459163741300151793880439962948232709467532979171530575195133146684548596020055947600495748239514033198702832787124885715906420887801253889004329719483942344284068775035706298867267166100549157065673832679525132252445446863466443907528550200497945696664009494930694320763400192884368428496650243633219420051148373163936656025747088017334951306391010878194345990644469216913333942675344224832723482981247990668930330787725571369475719406706355792475180430934935595469060260116211111783302454010968911921757502620130854709947329236229242659112903586353425384582065665059913708611770145535762476080810202031523752698070970323304089738853837048593159884945565795897186592412339924197423487244362579471121923639923592278260681806818787769706585576961008781086067489989522770669763590536498032317802628578083757842757451038626436583057535918339336099188890415471325035065741055025050064116406850918668872170985150677786468905934612532870424464409210130614226569526651226663996884297903776869734619050861964345663478424779233781135509902440454313706226619479698588236332002216418099960402018852034243211523634114423266530138139062094416921643321170243513851399652044425328559570296185480112849755005210799672415997261060226556880062718505264468720146233228587826573421149521651858260622846217161190298094769060003291320657165359177263508450882270012078046056638586244230120716836565602307899313526076202448747097266813263581417292252443056848421060026729291655863498263947497388346569290473019325545869408421749451523460146374397960174371327554960809503966166637454263746336883431089483279968100295557149725538961647311639371032086291427540888790933721765577773661182584452585662090150131147871588871874787467166667712558686181881368116117029969984516149248674672536974342476646473056077490677860979867127859234684783661087801067498109556349552881286164166540938884425976783342830477298262420255855603353823069701629782736155458544315316481874746374149906673265671998047370698510169720570419032910951417002939949512098919541904282337785302509920743943905944334895987513385075526891367083624468735093188618783335834070641972264033434260430895168679410485067851754156773949518105991945577703978513825115862812035525039071708946086560758710895098627132215677885923866748470464408394207913245504752156326146311352811010462768089415709136055472484253358839177036177144366493472762582232334819103669996842300718945597876347643748394942382011138196439530138927462476825619883864322752437324957182481181406705905218017845325088798493495478908284653908202586746914284770878880386123407395172493943267846398845736420093321163530122256226263042542103184003148703970108732698803376064098807222607446637839336929317787946913902436477190681785963528232362401177514014066628079840801973673303835262812770236980023089212729211568870635386231270578132067491632789648941038520503088783000292034324577083053765385044284611533916636517865016325626996812037373912430761181505822539058431561726871681980343169305181642297987277704979563602292574168241592409859394376326521306864739336136455485526550149144327441635474929035989922483676685414434488351504482747966477443601401869172372678937738024121470882017967986414029300135000518101919822325679392700909739367482926996554810891266895597522743682093113663584332181860111345309247590131197150787608765218320081375836526140091202848633684075375080216974864841638235307799897772312587854456532347587853991710380567459926741653410844034848265722207546811748772002075374496169916145673351395374748258185084379885063498703232055563504041553830791280844331443032564638992609988169061573405005518359127507040459159055416672738702225580682721884638443753671717046507644896849401274560606551467122856719939747489927373475606065024482705325268070811261009558420391419584145276003310534658244859620389232315677589981545896914471670996854216363183815669095001775359965486782162796331971749239837853627836021170050722714040502536842414143727417178512392441277215329623161950112763910164683078261575205357954939882732134165049291913729953211575012901358172870205032651796660883251072008880403476840305935273056987848060356202652442605800736725561315327566064772820513286170085004270910715379503215021485576476565720720497889552120795284803848013147586203966494816741036665174376454260866776853399232340499595570687305597377125162131804230028321635683813711848794093031263499355007775089506688037802938960409111835096464786680052392850806440357107991688022754279893658899700406223377152212925975120264537115558122150736877030614698502815306677206958281921649345030533384131011339790563228963880136820295856013178561818602765275952738688620897983563737712151003475184897266758056205926402119406244460786109827622740351626027648582003935729729437095040449260773474618508095483742823460875102405601395950762001244373037569341102051579278907303691845717886160971911260998078898808152472415234881424857346967478864833037188241070873474536198828878484790782144442487758484198253319698487208109741408891652930174566013054239171737717810563393575936037690455932934519586606812646615894640239627203537355575233680872871778659289064611774165236761826296138110151879786864476672962073558288184989665898896675980875447171964727037019310467346425826994556112282329015680317595274276928799212680524633745088686388387810090482537197224839281869822742750408944083732309528047910390644435605143783744115624743418815912591500659864144349952889280864773075822025015597492507201696389312683921803387244480638915416377501227739321703261608165520141899206438086898007217330075541941785216096791203165628323595620252036246432805694778207422425228292698298170219812848574676463544445464903641420008518168601445048486189396651368110075440972398547495479151625086827834367170179922125654556955089629403613072871670594942917145851256862046944299644040798494054180481219000419929412735314075633241279734792567028519018577147806543703423567857562412620860559469047365361734318249501967417112232476707269175429000379955616491357218177760420028034221442394017527935519066944110821927089311581445192259233358453718943289077199429315206495876154060202294191519877240532111427715305000557112506272049741914210358700453739261391239262880430354383203883880495334877155776606141280780096253426278892308605541996329225102286845444269175463661402540793507521199639944087422188486754133580362507426753515994306125238597230624744691146811063547145826019707663201858400750107016951525526420198532867223258615267703246325823484135739242345092868136288790936806798448207236971531408448245538005354740446314936508126385744940452795023206715959401636717745194993550148518948419848041625604032583816379107671705609543295911431378105449467724707076808204465528441108184662359815422592937207801665243746335172598396309365883376400192891528483967640247105826824701402946253502054125689998817753653516692768437336606592444720249109933630462214909675263363009335795667023921606925507217637113062035918711881606169907441151260735640116211747515664657017081362093509643189721078366208062323648021789264227678445273604421509210036469827655526434179883617114699396888875936345233779844390377441233561627311994809669642761067293176131569093003342973091101047451700722091983266434170037422114132106498265649896435988647026766267364107102334006642859543519542503345024307730564092104635904191097322101300914626760304652562505748720253861353947445295357239735571200497682930120913732721566274911270701351779860676136425474867184038595763405609588651941625150550575019658309667125682075578148480139017178720169201208987783523675878089717015070910360435407974982346918830423857677531348890399245721503578616294656388089115752651223346137510426759016761696160689093646060664997952840349405846279335922199673608229997370787849761798592315149498940411141016310913144563814039160401469036591215776747242591644235843899311011360565547586042255255241183153600238758980487693901978540186748675997471878511569913223433635740461711514994867005571110486627479505222274747957377019974894484633240212766723628282524796783729257207126530978721165912228415272706159845376844609685700096883136543299548597976180116845672564565068129985820231705510001827531963326033035751289323857584642571969906504207987633972802551936975577224333049612584831734594077452981723050334004727928453299153000031190203841165891782965875921372163064593883258959130667603050240863352447445456441418073343483636206496458901066310235457075180318590591122327756065627709817440373097478350339503548292881387441965553940394429911792906743866838235029508392370860051562827800723030423403729803139974397058702482777844456613403595202467355590340609441402001670681487126506808905323333830477724782978543647855145505751704291756690158544971238450039633751259051747072383697784868735968937486266759448995644258272431859149010317612710146121100557325846696715022065524080470934712323103034884804106712764588878460902818198961206857588143260057702825059226776354907321956873516340546318907700376469098233119635668982823389111351005653948907800779364156849416029705395967860779462787561645623608431681370987056330229462938419020243753335266364779462581573327164896431338410373846828376565069707797787467149217391212756736652598960198807522686202287096754915811914859975468939297194192614922644038317801765645579350763462316907229832385464212133506236215313882469688746873256265206992358439903714060366013321031601264590384760119753331529942574057544154196927045858565241550201592238821463346573553872608266618501045852347228449799787715491051350268130016703825051887179775564924927051760769010763463656577626358401544827237099839196897456122980421572580374415856461853735603799871623410943828258794893231976064110996936928029786372340710106192760106017320994128729283078798766142340894121434249068962967561455759774099544762184549904711456906055468086551764567206168386221950717641987178145947151018753265827833107243641926350303380458142338953771965407417080085847707728384210264948234772532097728097387450121510828476830415739150685744036808240235837898554844416559066415028523202704750343943314072586996183907564015089617050452933929068593783494071032621166202922233994940735631540565780989802499183405928151877532184059753228223538551384179953775059109702768461704947657654193853011390527868271249745378018787036181076430508828184868445955253190624399508834001477743058206749760074633419299039204097555367042559451638115453253709044156429368008649794768109726025450180468396405062693606387202164920060644671436082345775884735598896067413758969640130197392926301870724830849249276168546979675962959191018474802210732504931589344701758148020041318773308551557430128545009897398107168659773971646350332380632332580232892322896580150740261844503452185067104907288981679068076336966617301200359847170735314975693057733092058172082441161215321160794028503541342665557425467099803798610254054203295543422494176012912152906487734112608277647326608037338366564987992355635748344272558670087751942994787745527988532657964464373494517143975638430379483695897725609033520711975565482376098060373891178779769460977514343534941150547879773912699483104162145173580178876092046861272390145472950218948104314938176588533963020423381141187930809714133932115400803347452275500307532097264638121402856116615226842714397973991109589184777731792578810624125323910335916285775488420409952288419086608487304584796577761157071475563123271516936155968290407021374559617751727279649490326035152333310951131409569043165481482270831606861975405962092832295147038504089849913391773103860357330393447853335943208086781440626884917292224491428214566307697614237644871103861182738165941365731686175358901684922298121640794702460329351511142305332209663134106485763542936364019281168281331022779633649037191172696238732047008898871102049386590930798560881520371827276877304314751459218726051907799345942105598626429426144769806258193450199087555637760484617625374160538861310456262928127753375189599481497050991843244835151082422782178812074570830701050060069164319064304834209461713039463508551492422884712496932044534509558771742529588022154885405505080932951310538835134847190821201454472181710394196047956998955407457193993390793550159627130269654025030745711112816810543089547946492105298623637791842398631845380447667242165696524438007710851915919885467909708010147475944401726701751079752818583496033151724133951473595393664677173046881534218034152061059255344280141129724286289435731766111284394094434893204118043614733610180368651431115978417205492353881479900319029536112563253196842266440634433705135196895408939617037314404188494538702019548454682339499309492044179150012090128212866442336116337796691149563733421731738720084987590946072393818369552605030854425388715077546655390451326053324653265313365237657514885043378645890077301061826291802233398993134990113154665074832707379562354362483747421960887580486988353420864937307476630831983707685608413150757601413617974411590563148681189398059649895932666959284914179155577282470575734243610470783543378054158246005244169832789858704875827448495916183692323603987982352631522451475701919369617499379877867439123752256913023427221217460561194295621037710832994107765943859718865806969738978680751320994738946591703514130932756078969587687829950838675775958602591714562994464938522785203796933380146913360563933725683052985184058446887436059638662635960090284950405021117987234007993385358056062855223938025274570060952234455085051159464506072942212888437408636744185490384958261247809459616248016244400327468068954335085935288304408712512127393252700471231402464108882735876292744089175999227883615127869323045441324763023579496843153255397458195986778926691504806791734579250830149284273790861856820889706137792194977215220105536106412454555758893290342648446135665540970040993057368219736274256967026346198384185409201059352658953891439849526751638293717199529605186894258218549448148096539852513092620522301398945437876917006303918230320677960967402290027412815834256913340642106467985542089317349009032264439902265823921248593539443726344573042089718463300403678746168948529619555337832589892842511439208629647710662094315424998937811199374225585960433773495483502148733431666775753402485897237825208663952771080838624092482941783982283285744347602979233591067721322079325291841786019416310845155032563763488859996088175081977374948804877824616197520354702084500435249890967679975970328842796838870351606581549197152199418275277131347147506855006441098593465098831547410832388749523035196826636693761178490136717666966511884480673584824148136295602484037637550684056094279194070864605438000984918869610066938673592359098161277913743810898227490500425077286328655022257521316297080953852535017550035307202473279831377002204166521724143263860608224168551219402022580411903848612991639222956302560609056673453362307444789423170193263042066782832366591416955801330745171117536663338678580586291645988922781701036718844929576731091828963649927624858700019352791226170297764191053752057733850789030971948474996843541665771090697214215292200558074502602865135357877910825769508536233795126485820050634347677593904206612981620434469356402048195815695300673173068511162893522645547280356039375424477333481388577868982996473736467452781308670012970405260995679604872336654086874693760052390679133906584934201035173685655109051089953372785982078663295438129025067885376072787153881791150113834704035213349148258389338309160349445569771677203938640249805319127423026794890682637493419263127889131047145018695035635471261589768092184912789649941658075880031480133548325692856311366660942277871420892493276398801747795895634987492908024058448871022877983342781430912230648335518326717636904960643985918093709818478646500003913797198630592891339865350064331836405765818311343313111687228474863646635521421615105882268715807611867074112226856742145434996390181108475188572587229598239156909106387013878648550952746585712203320493497303215974761952527841614586679989113125680229082157381478671434144430101921505525873301755056553657289881303140574233691005611735852895687126535446995770898585884812945604735170283464854529035720841090133841314079643975615397556259239871612324874613596387156402860256728235143631317547915418504155450107713730527609669441567106015754744610081720073351341059504357929471009332772600456429655496808083970611710810804776195692722682878089738515004957085682282188633968319550037994372250977826164756531808676332091154853612028864536083839599942223896926586691556467418343317995333431680967043034279268394140419252809224886788156046658734252861391832271238919925270955291871111056397492176509141347975292338039775971937910427440989102342579887514179725622331734323980616180054239878362232884438286928400317230771044114843188736297873772837379856983597072570445190930496002259239302342866043573408333688104353984136666156244406420571167247360229560547507420988687868832113351492641878609290292786716108453698096149377051790906732500084191803966382818427343557260064904695413892278377601872934834874461940907368544579156915784371291605771652424397576268208294900679353304608285123642859522925088626616150795374816222052224226005449544832041355321137681954873742529712396397800085938448979083637742619597255115357301240535264701141774216116744517594544600348992590390489054886981436637050422062061509195841538396036722836298423633208647511224652217409822301501617601220394297289980833343260993203174765258647221124903833707966090858126222369681448490848245272759808769255516922470724118004055274842466407841482268651902512793976077512443328170644519445010118217851020371187374337187180986958179504396377579776945030969411060795860881677723181786779471135921272367816969483327195684995911967857499220369308008219125156358872735681336129517357347172239071124852370921512785117225665477496628421019007242608447870994131905472449781671151355612787888727493745086039123680015897653357965012030517218083809877987158298993696156558734621297965178946965010857184745043478220957481438716951628017674782501911407549253622575794500451971806516990300665197649359752443143502403998501538925417497080668822242477120048390876655507366180488578086797637348893406632965023280151658979430923924591124734307036725589833432585474980300607928157175755785842437736308782507934713966088783490853786764542334730806912132311679444681640445285162875992008214787351868608783449146422184090826028254401555726228206367611961093975250518884776697521985082261356606350205916670519918933511885109409564375390290281563047608640052283904177944565814503176793791047221727637074162625407073340997596611475221812124003379565216627731366918202839247963455829610756547685390961478744053226802905038801438389885886972991017151616314575720493318675000690206004655865719534137808642292773657714166492874337220308573833027592539583969130921398207529366984760908491298814378673695554756611660752614373760719455877180852190343584365621194824095000444926522882583949853409269230745549487856088569459322588606228388875535930121610766874439787822134310784333749188554584413406244768376434296409626496543998009217711259458855783301152807329222165317799256546068101139213135434736841279716648261406159307884881366230430144202433314672721692013862618647220155319620168373588975130348242450273755148158333509619310506458002217084268524355864630875248427434793425238375676924021337856120869107849777059581587630841272604389378507094935329421366722602178342383746952159672437429215724395356390346716445013595481068715806341914500431762627156602736024984482814281498229618719805618186974096028577584878593983809339945651013392472474361517997937944090705762705355653485856336921694042931995439832113621589501175999563569225958990648765445465595876024256790221704159276768083429628757756017381191182340377543281609375087330148439497560523702888755892711473367398799867155738095581865825856263117092273326352284358245776899840308193432758079767749907140909822346474541370738124028050700706609266795529471603107059584771378869997114427170659927376588135080385795267812938795472746877537773164648495217219838501697609303418885891828744977331268953582799077081353368818045372551221647566374527708176678510245744105209378906475758991854301288985786077724491522979253659115889925456146300825384756533116877262789726269215374069025663416180488326620317153364219007904415438088449058748094704205547676783372467491542193572421662145346243611916008597391735396214753281220325356999948046841836751955100785986148064057521373421256161945225921310288524368679703882182560607105122057303777736271815939283277266237814099785224606851145936423234783571497623463811758353680868461733237704450336827399827757596601064357863808272132594456264309660803890862055199622602786235786213123121302877761204394325190887493265519111344123056217756159224792249990680846315232277136549160462137066727494862098063339214909476375452088459611380183984115995665609584699278019563100679310607616995660846806531433442166824744081861625081677808998867634673471983431099453650495806613120312127267130711609201277926489557974007944455341655129932586170386486885392468769418094959470938502522809084841847142315129778063476555379214548216391178286986847063807328765309196942139797496889626366956890531865484018036728959297851252643341848294124302683415435062587339594250707324916847172752654951570241431384756893230070483483942084600516502544188645705911654242209364992174595618102179147016015227635444542521101379704847636110143694414509539754386662927581079454621371377393549593419631612456459350551051875706655881230743212314447756199064205013360015134117363851164194747259798675862841794861879361740489171203134511800741456604638764396980877526694105829504113372202292991556485084740083773392085106359250801042477321247276490415538158595764643904126569173851328021088895640373410283429880677320506571186133100256928195276284930120310992345408400954863744865932765252750982430696921841672888364064107791331617460617254220848200474868328465178275253194940809841262306706236597735795901818076027160476586613811159939733486505124036127653462750809566057850363075959824882872322610841165064166203532994429083556222835084464827806269367330384833661478728024157181150278893075331280093382516704568547194299084323057235371815812101301190254334524705704540935748295135562988966196758100138592345564768609414762864543891411768939465317176876543676421471275648780743029294789047169017111141886390747444422408042088082384075809520493464453576524336021691215863571716146128997940308269733161904201875747576198188954672411597731862270244936854564894940296615140388318270864087427948815297439969076226778897896961590282831475284575701934059066183067331172365427306102436303915939270047713283153277704784506167191766398403850336651181850681675025259958955112250413154849875771967433281587512784276133275803543470224425963159823215495453053914729611097127973961943775041260584739863135655824823618834298710992266532689671172162470389517233081188235587856496615005064125371272544531458064378149522202827643740145943108705559698792772696832055972480416564617391829804600231250606256973938467821885425377505887271101312587080751132043953713540303536556368874685201531671813543155498227732997544916118164104129580827123525528809691237231272820856811877331853314606510726068073020744487550425732767712801523421201407118779109378002258839897861463023054470954902544033928915642279472010645403084512607266237125203154491781111881967784703717576901530219416727954461833368252251891029101914568190429782574019924754962458854346079961831143790086409161732702867080208089277574728601381855855873629637609511402086588834328889941653484260660897459278741511908912414857892150498182334088759161747102947692777305542945936880982320357155243075528736303377406556304780466575140307423961707750891421269502081813266194046920096815215402678742990168733189396994077976981471940485812714317087724065838022677531686449688984426339387657399524951876288762704479071474128728187486391109068645921613169719153310943975691563893708246678713265904635257421829423593194563833706312922341785881110039400092506208043160673351255216072549175479585818187885164769998131899844914464321040767358369318314816938472942391141323502732179541440131985025917892430193277402031833539085687033135887244327570781305315890082598381733935729878998534628423358179563557452699880155723095379684613855170230148952772213592957940882020339466906089412955273029082113304985731646327513076629579930136523831924864499365352040044723377765290613694738126602855048433892741537418762317231039775420846813533351587555590294872725198798853400246374347631171554899767174411431649791554107415999038875887648397690978807260792228625767002361082976682929766906397322714279045225466553186527658207977878973578757920279476224449167422229593453125582199261862658457356146006598125093989686948289593283121249527472613669538651579733338967864098139518213696034453246911954946351748158174190417100837565671707559953881382150723737820421825657776078838835562875628792900599549836584421433552407907168073835062873373096994068052557695875273129738141666020142310638958507842729318887913149666467926944040942886627752405812751187688627845582551734547324917272895290755906866687768060858584324904330603279222783565274036832466900121389021037084506901468139297887895312073734339893681484984236075068459806324554242201766451570353987773217088153892105744131312398842951457179961526609546098483135774221379228575051641887456199121578425630957715703554644687448373529639943904198844606829571049355583135706995081500548221531179786334236300530861027336030479422964790988728200159144296115037492446009253732767657998015645509684843227334240970430459745578045941566017125199222524820907082873277018940553754317876497130173001968339614574753446270615633512176078566015821054043189398883456003775404608590618797214266722482155991974648821160724360133918541338618435021037761916723437569911811375874676945043381467586806246701746372251112421694857366523559325028418001360636008016030217848477125654651814442452005502295517468106019179330255769627624896437002458071379790000314018522734749801359251508277526119073491398334038600579868228221216870589057504730631509045985581321897251840277746759566116806835438445286350705153201954661891059245360864728063079021408958980645704526970181819242282310664956659490474204794890914465110813995679758924493989795976965902959521696861803430093768622419866880914239609215530964976115985809441486446494099913742075344732363024870631806678514548838534009087981699227493857947918227772347193090301408694238612852140338070080233195342083065905828689120730150485300676052283986687974640099490156701380676700932289278219369596799245605802675693415305763644523260537701606747714890830673051502347688002762958115712553618554226102286083121032035627028240151808247349858220936775157760256416279461818658059391658618456341461739796225941010526302944940501578448591138600580976895064417250531212027829597440020656001658718199335622811424410321839498399201919397772364638524963565976152447146845555790609562855588002004399698252640111495760475974533956579336759160608809280374446084066338074445187435012568480617021356968769993719343333427291682402369940389844512562956119712514743228624835941951030767609846115107890209102703983419207030597195332428903834866509667018164561874198595539893303382497065016103698948797429160605813804068484420123499593411115573555774959182342408265841065069674117497310215762373219957601004737883139992480046794376955457459599657977885819359855495856963826029922219005560081312922297297202071487779827897471419149972078834094052110156366753649438070593005939003314987222824299873856479306441206678645265811351064732784770910813155627891145886892717723673573687163731565485602104942370092829292121076607164533043266433293706642644423644272674362875870195179773681870196185816103484279139188539578153750310547495446182695592787790020587297149895372086848373839974011454623495039018899521766820342941988323589137870596660498841926903714001868288760616206731516468981394095604271818060994684999792149883735208346327445228422923182527480184878707704066740713316155175512697107457676424715791171764678351027686650737756331965856104994555815460092639551232534911165790865016098626158683012129444463263250690414012212006944786333749854783126788298855596997321923249321266744189585794367583888177800241535389376822012794369179083701506296438315818732983997494034715386076416270104200332262329859984710027817625021246644160842528022155278153184533458503275065346433889825080704951994205383060321848989445616953677037767608186170985232728278715606827150574835954774449008451417808253652656497742598522943908735800345957662572737226189450338821229963935966552446466634081115687628084502188606806746614298712472828888412355342786860574211722628212537976833861040534946779888100716511835737618792349705949637127744613021401411094501852984741645460570050613426140539467143704736738118412902321116515239947910484664033998366366790331585658770380900527755373512280069328705751160386802346764889125703835576733408428242274628506411123193340816658619635779846336554365474020510175652945269568641189808726970371920398660662875602184380237305939019579295399012890957715771310404334547190360269282829283891010948676801649122113161734886765540615772341986963003074491678318707743060627980031461496783428566655821460278867212123621937660542434319513467147866484052967404706565261920161282739978893066956306120061260549536435369204981602215821735584694067505301597282333269209294049731768950969267461498146432836856280273631200039324229752757460589966940634066115263701933311658547196305169268050185509962978744537299938364461038911724944850585354343805663722985756111049959586972181381905212750284699811900253530678350401540237112854030962498522730313813854679359808183392419560026039867750837383328903114421783907584615474119300850686317910244691423894263162456352014340294994142074151049796258406966048574764789183407320974346567614765387963506386028165243676808423262111267438021953384403857023796217427355783955381102231265516551784432986086325024552510925435516217308589177861802269543858335135520655567256541584815719563277515794040600660954937761706351484136428374337945529027686699051709311743046288289822872127572123535325428694728265589598604874224375120377995507951473398484971049063214058338759002119333388865224658395614017676882989628481844300377070347523977176604024621873372334977662410003713346468187820411147232396596871105485100172945062504030707581379817610649590410882480955099172466159346379079194534433881117043346902128787701508824546556932956764348006695792296177639234640812446259534327886038016336704836111996884463388857887029411125640786915843194572988357198688581050846625583881409137449843485920057936403315007050181785548133785096160352858985834990584484330360254409373903822477982997725817866161388833182848627245304017862610351621360585992125374109276631451614407809227624740049519949110550013055924967354430482701958250176107677491188757213529647729220270997875086015080706024742855421549344827034718393284780814926808721471095265346900105046161700152891550091516634178093734226689003183241939090965061870347901656564566157607032638379757666294928414101351991743631268987007681035964049835269032427324928680520713097538461753359237637736683555407349482624233480533095907568194619834252013853295047460429146302640415531939940315073151219348080965184224346964710429896601344806906948271909489114781867518765308716485529190531988568735965432095151334608791519033341914793990454360754313692382923564055061992292345053885863234447323280152745267384721842799728493058472509812093317093931766680066960086953048416097769858364174122154678131102179987672813640079767204375209154054957637598942346252599326555630275769397946955152529797984689598983116009433403325842240345621406650072642624344196047513747018095793919798490353835686241367512601785774280593536700673969015373404065030962119534648426330125856968882565748876222264597176921745986724287776129002260927447684751957486161439838154001993752432418880073062688661964180599060894810708356208508281553584449674960546054998842521487295026384285338030002945071472672285656087255293388098619562765697751445868572415609559769933586664322670722022166703147720706246151495292905883118730099967682188579223275901210049216140359318833154425983836435222428367715843953892913444450406981749975585712022044149738112783294455305477010946008795673844137151830311841652751156723640740295809441257716793296812618648963391688091543017499218572194067764239674821588557864372220009601824343019809272736169031643932979946655920268873076766333528384014314478111642160938296610345326432235732637351787014850754826990409773865112188548478648456414157634669729311807973709842155514963542675854782130562825386080820785268167483718304557569970866086747833910474245939932187549777820871152138985545521795379912676334829649972592080738234806522579438520211677916301458259994440494084655776030421988500172118356496917231461623037967346671043286325577880263108957284207000048277715768544821808689415902891844486709093908045078868279104948119394478909021039980525600860040180660865317163036923460820520954995262196425823382911647586208499897549422764506027616168019229232647626897045898643976130201940901419547349278025078535051102280857440504368669404655366334324928756566743601712046195075584283900077884894198759216639933282460124681042297819614306810977679520449945958377676421287157787778518652765749487181712021504693466189260315554686220552275490766902490316558976907949666836124572812048618344500775334918566601578712107732979168432390333533793120355813922579405838747347223640996792478820331442247185210876476003001280209352786508040089242088658249866376196301402042630864177051604516853834536801102396140492695524998351972861760179842864841788318293948425085435065882959614100212408444531293130403831801632197027331922437634393234141681602329009753827966433039805912822734094117167746893989852165907214086134520504023492425948720568645968868058497857032207395935848552831289354762110513652936406473465228030365759853577666373774005130890738664600066259330409543235291403386503994289688997326711891406803054030875941517094439637977627738555698875842010797777414682191126410214107864702745722082461193787042037690671592477611871995026229362462314236439018040497187699606469869751873158047155471032414611842020116613524416234290051892869489175493424323761742741203904725162483586389296867636608269883118469224388455357727342948804945434649466853229005508309790861022873254012644474074214941599628380694893037385941823688090654101302502164483655671853262665341240944970830584135316059865409966789115574018269911861406513641264365466597103080007317602886404811398513841616328680975754457815359399449169093726445507049699994720334349069570328046372540529794101355716098437955954542887713440163116401450205473677636467780553269258853922339067262218220461048333793499644876644982097225322581738957445589594272743463125077210462824237327143384000091188375371995835305719958774595990689393107619492452122368205926196092641215532871498208067759870097524238139234085701136212321297234931158242735203397822707616283721530197165536179698534005352236353527400509814269670529298769334618687837076781784432450777595022534766844289398891426795425006438209186166082977603433427366333283385210861111458935300846799875005272657909494348654628432096128629481076463846092259200324694377264547510628602188361136030028799764996149235669356532392746482570719263650697756907449932143792084678727824246329145835771455546654594769213520507755846613357937247381465207863918140418506174274373983360510001193641369045780862450840752619245398669528146893814712977887276337617046052455344897396142888497603601741142796392855118681178251554630194460259195178105424088787382467208047130416944064516730205450239882180749580895757947580808588896924579391537361095384735618964818021369950308247371805301495528538544204224992803284532197268811266060765308365697044689502633800921055664768819580578159035761528665055206426935477541581184895198863785595301716224570822767022678134902621779331707911221152331742802537131920511879432878341510589606364871713723043624137423079026714826344231395099376493184324185850245869656641908135163900853820977159512265254313934234096155400938236748712038193795153069293330686218751540668446128982436200545548147808857239766794307642324817032856867043176040952866918875452650508759924234910802268056745940268624022320354545793767113936779279506749123407473682194593130189857838468471372468893612750171589007585007621961907763773439630307999871543940431597023631238146155867615270361494968666662338768515588375035785313805622368503185987744603272669907987535983796200157191157531901002860688052058625426835317593502448328342140122504535911179120903101840806606275676035026554639389969045173973429737077017148389816495342239988083247471551661329882831197738333059513824294267730125927243766051240742323336458667135307230960436156691811484198872197959667559203374136993361096815480266788948185003672127076167412419765149086892232180239076312935576516271426968967422090088892243004118469108422300435454225274744698370445327466933390020508723307875605376486228285012420116537474994099477278813218082687407002536817108114168300349460754233031149236138716200785874794115162669970619473627718573671343913338788503610651679125035944782729104011913544240379601072701823350985341238795273140369615409734158222026371176769984410398182846654478543241232856965817813413169071291480826983302642499385470514120451463160723418395867384171330532818137461580481756086566413775633332151078552156537278991620032521679319810293493396777923255729403074810181576712489912437377304937096222619912479173202447982606791858856872965311467229735071657220596866669048664863254713657441923767149271769323125519291889977992921644936569596338913025815078586378910347748593164035162333631784609221317034189132242754461046591765818207899267930081829742051983231947661296030880258365291714503744895342844036025676668544241665587008778962074090469884954164072069848823448732381674956417833749668770183989115005470534201907553096917100346693454899645256350148815701638945258937493848909848916739028915746422712832551964944602107302581937834882449004109310133911381734849214319062336543799963963506618423600143190630370328816370169284922402933140763972525137518278977938917275444192686335198583875585152658063047288993940990094783519522163685615630375646953362925265243556300141221405238066368449771554320628691142319528894018554489665499385021916009143769945977178667316044374980059536835988534080904377315602246684057796436307940270606782557660249181308863086493515016508740642772154173663793622937192155187755332991135320809751263054968633977855140481856924937550104501805136635634877536630658168338196649291781987921624093104360971785784127713471083549264074937788908505558854562105822213367159900370552990249455425182735547877083442734804061999493176283072436052520437888630788375593000995023598544292269731301291832842904863529366937173354390543182902054314600426324682791719186046445995340517626901474076838871217264405070529269952355959138133256701540626130133279424776946587810589850734575302607284133309902743810839424778074873854944753075541147311944946079595281336192612244731267124160912533235292622082966669904783154725467326215590503612984271590881074333904543745321943650795377838870008349598686657508382736183390617900856738454034553706735643005865532365893528007378723337968854381045656759664443397158880042223556376897773016429116921339636442023782268306880828206223414516668526592349969672087560721603430897293361674031134841674130895401201407789826578080604102148889062236993133186435227927369758380125535720293493909243270260628094965182655377844989955246837910514533635678993650781704623640981565352078131238728362670404174355178619299113644043114539211692573437893365489110095828500892990650426874671994379999669080131431434140539839163506965660674769249663061119842685709243072364375687685743485176179998614998987644036741036587291410583857119026893922904822049245253515300766006514122598552797593976987648071482165885850958538137236882125813773882947951171293091711653631321837185072132026103702667748449683176311065073612061907865643984259392363627392364935022284395637385290385838489821815286487169638503713291721762179505155162326118415028822157238873278361703990507185042668538367002098943280470833621995590917322674535707727765289266028178035003735794943641033967532804065853646450249918957620622470595149783145461411640050426343610268643553767260902431058648282009255719314169947516487339347250836838407507380848083417424233581179770204390933527845890426857793068615074901257349295136529485085997415016824547439572814113696014942966102809936190938170180759248663391174320691242866553726483446172695900716609990210995644818871546701238984585315862310405771068311576294829474111653118307177476312130478622875154759762662988996684537893411791091164505544375876024015554883709167409953971393237034800033524908751626461249514879392526607664419575401596198177954348508812420610858096145975488280034321265300816712040203754212162118390465163242848389941686573965011180652764059055788654879693558189246029098220658589375606134292346502442968187885541352633799547808499922438792332900757326897779274948003819758198385818905981580321983377282539340657347927401578979553355775585563141995860776881785038038774036188022104662182321168155995336511495377422097900740489123278351760415347332281207863473395826977966017471110426687170921418852895046207201944323055943709705885028267114362499012512201302860550407710634597327401934929767724161936640098553992151624884024608084156566611046796940055424415836209962422679742582275001493317749438694353260735206673047307632287980439681313504892274909245362933950330755999250888508830567918359281745226432974320750660302951854388459493414145676559569672759789052521064618575431042195692004290637352408520074969172174475196425608865444507360612978072251491397749036521012944493289977528596995784263217133468122323436911235175466721375287306701782029987282508316737915813139674322320310934142296494302114469650347129448893976212977214775955770134706862749042228787153382939455252452321576370350657972539194885908866311730350537399165391109899755489674867105710045773678977988786737179390691439309325169263504677032127094035031324893859798679713370606167037471705124242711902346055145426443644338976400504748958178150190600093858585840686716306211891078340763548459794557984027409058705480234238644161320375818473556161687511529984371051563968831629819178106023803799984950920050073107099778310732595937618105270164186795609960854504575729739664288231320958885052934134177675125473317047638395785107986753123333002229267832011335916911618591273270665694953837712765801358018980902548910231370256493376864738993283510981106316083540294493202977316823943286515278250545353202256608344196854765281664460481003475701052646604978317364909943035145521026166363096975053414509205543916096215389986866391716458938577635354730102877219183261838619433178469764086346520553805788625372874156029567590174387515080984435282449039727975925542641593418343702812084020357161856365029018365999243454342881879549214948597605649943291008326572590392749137487727779151603091960980025722656742340283364393433768270454464825508762957605134545678703472504895270913871033598517235475860936324151998348597373917940758055476484636116258511569625129027414361865052340519917937696036338541801248161142957102164248673830123886714411203082782730816712191911497837260476726935515051962140643078260661755550959724926916261101264009611946438614332677398541586870832115225515965292335997126405554749559980801933798487326307787849722244529234182705970376146538123491272564476206574516798942635665020738072057061551812129955072554121547437178733459943711749966959589436455104065274799727967112589578497229163267067542679006035934021448179336183674099308842536971886448432999806661314986300759415622178343127445857700411139325183527281375289009726422957369237202283570467101165084930770815496660455918225438115126256776024509641319461014006889419428213962183587065609017188510904362282404774599983404392564949419845087611441124737016037863015712846406508264023309429884521337684291467087439965121321681835647497627582730947919612503986761370745798152738596598138352862549006024974363141871972340219049891930219494690636212982755829693033528452404976900095765718586322924459977838378266402501916505269770160165836432520896498854937561166236440630019551657341924022916847010669152629491394802412610617982860565406289691302910530574561240273956837274022954843298718180518949430312011287133040869283119953412105366241786481933246706892941127095609025200751983769602425042567735953091179084121390661859402353419688939961031317252098343143946784760438891017571916137512508159734846997368525229196123305559074726797253604030805263906285774539495405433505793466789294045560447654217309734696324686970827772894348829623951417506703963970855026040975736628922095757267474484475567627253931660103586917801017421125769446969902240995335873376328234708856670426765258329063626331146847787131009828734100259969534781968093038759731627239640740787164960507323232124958337401207349029209126656767078120977568460861758938137516153510391259812421175732315018575745583846991144780223693265024593158482872964538992737788553448908096410915137832662626604487302443117625338222638088530719173786907322722792114126264574117064364067520439060360805096732620428967369389423254567972470841963347596326993684090504329705443637439421425918919908966344474364391114389751913420156095799637214578988771681903411220074114723970004932254024320362683002112118204442150440818463267318278692274680894640051222063270542733705205516130233291519829623231184549003724280611493584967214499584614776403821162651527794587306128090489424648022816739449645959203567330613374762946650526851591047991370164282096455823526816776921056402043743954203283664280498699662618699405113677043074037440327581169151178149465450680711822672457098579024954509494713054328215756920255062013771995622378856409600669192728878001291536263245576456887154869579201418391580180722664271026897531927462583619698573293938843114683223459488335511794550184936400424489857508237544927427305891164240288537715747582104986775646627908230398644323234021348122363039636481482565153425598493935683352898838626113113070922339234471818679684339631684206418882766030321948347104963012899978355336386569485954749403335401965239784459740856945177821730056451687950966776247066369164864969247886224682299546415359658733972271718142657260390011297436454946850622740317195040199822706686031360824344655285083009801804510081718785636183101872907081674934070712588180239948564888715293962451417812561109141822262245411838207269098531034715622250898305195400544629469431062489318649132641059315744682905720797823759204793607193182664470746435582411113045787875487145552968299280206239126834279624400002936721780790947624355028833417187058675286682664650630975588573909443360842545356525992645941576765628095427175038957595302645063992447166259299085915979744341533704396410933556358884936733292056197738031023919920588495366080707227068553692838931256751480566202867982675807059913492813882201561788718194989263445792771252837933951347247672876435484996978372281469504374246639079458397999857519761587690010437744676653988805265414501727069817318766577806861115402058417311255169420682383956228090520125565462465710358176830613179330198926500070505192980405110428255673008461219615739877881813417594756790009769997355465877988874115611138203569444142224302421634993982724590938670715288866802676372207615440727860307817206681594574870084474924676664015423689682463266969223952221269991774226645655870110009487814854509754443392654089001152185425967981708918226150667818645258740736406859251485688183732810946323691997496916814770765514416609854235024410043343315480206358422240280364008243306394126535362000322117307930155264662933700003714483721169029967844979433564134356118153214592964385398555340896619689588633195968030637957698414007859916711947375892978227013058333719434084234142500992879576244587855515177325784434028998095623564791921149671418140665536488832008582619175992822934588457615996147962086852103370719055827782475284110828351531026728994137287786833049815409719278309340703846529306971968644894138832943828190587813214646682136737492947730590640800510510712451504092268292626664870838908193541800906398374854041470977479060267485305896189785252751289389461286788802620166404098867164107420321030921379025487586848044609476171326746236035807840732628174206427475325606721494546588634578570859080261648215496336937864146181874570583756231777626325166975874191835612015899471020379791408102455155473512259609671999261313893882107071890230985995204064545584109492386507801267376429765234939074341282466513567975454602330273115420953102361711289697912932058960507016198492832566673912616124742782611839523340522263157564617991015204269677868784683810715094081586990978620923375088358700852943808494295821010920279711309597352161947853765372857470875202552009413086043528521656884851078835516597563173237618177561124214921928628991000697925909953250248591202909421371050774437409920219996986723992366529776384826047028421736891508009913691443992406220894493530920059210821379497933687135383832069782336151714362742393953127745897228828870213918565017796214621757549728045594685212985908737314186283843477717356792982921854909117484115129549819439125180919280058673506840912992636691875908778623767664058666136818259719873093158686113513104492954803735248141668769695021333643572085000941142604657131672579160895057169215368968979293369463240461349131005384956396672569722228967360654092614648044317375201773437548552263347294309924040209204347905355974419005649939242837658741411366402083018986951112394540783390575896855220206161616932076554454716059104248641708970009901204798854039369734585213558319984422057829288731482016296502587302619035529672673406831772048495535624811016544567134476827400990526981247884650138638862410654273094993219647441857681680206340464349049768245598652310963799141006630590733488833366255548422603089172554036857609394971270219514520704492494939691004555072659658990848965679517294699988280727309777030926580548807981297002232081245566102709702754970584377835072390959917291457009738641177742530248526512018395338766632859049296394714683156751239390506232551588479297821253723876542056682096368636065319794613055178721810047671316838997851507214947135350074760632926242293109752976500877252394504790088725512005654139793661037278066023412996597479946117928484593920850465029036662178605686084518589667822377718520445552501042798417045426950188104168712575660491010733401299383461694281714575967516650165063963198750846725246136645494155304146012217721702785399143873110360026222259151935716167791016126272874595479080305742144529133756095283154465960004908174425540276366307234025068821302473240627583298511373601133351567549967330091498224271260437037379878296794216153069824634874451119930386844222879324409516946276641507776438027845868675207711542074941622413146595422638476956243695721168082168174652583186961929625814591387478755085514693575679567056409431741536225439396045877418578266903949378982237253488201176308148215530132259630388486000646957939330607077605546991604146151467624209214158482607526606105151378891750318651561681724679648390164954781847408040713274307931365408317184552195019940338287458943186095660532964692994344075858811784728268676111836937357710045630242854769855256181517583174584345868299259799053341082080032624354166836057774312545507822352691298174267806214518653916284330747208387221683996269214367334229033724461553784357218775492585549987579151906762185765772941544251375583224232877734938436367121636474014273591615711082531432308648195626282978610715708562387829519965083946832814235574596329770076468448049836437000557156968861897368887623278564261677544161026825958594826406802058784574362874880383246515624067123728480365807991697131009006168366831880824861612969662441042041599119467320526347692642861601438582155614208078331658239967555910611081129737819932313835220413383569574769683241630742704515440111168213245712219310348108664594090059532895005712802979301367023334273105859049186918450401802860230963652159575519890949474093464124805855565575071355803934664416307574055554223432312452121366624783527045665839980183499675719388376399846917582746881743065109692920290606833231958550714213911639201730574577184769236035795969190935547990044474576040584434791813387261005025358061014264075730619101192617872036207725080324542926233508779397906875645810644468351588467567420062336722624441739803525471813199945071025960261870905833981675720407723058852456387673741194376651206642159461989773864145863041261414421295918121939086778491857773415656381885901192154257621114140974167210211140296290915936005089486397076502401837198554230481753567895358814339016126056959508008376298100259488531620242535718545288530976921496600019802092259479369991264621375058408117442322724471766101921045676195158661681186384499643369271167283212993934625349053352440724564859608519061167433433072336606707875358918988391015100076120949628677341237779543299149787657133130916147410724230520566435008012138990090596651597859662070125209141356708656115643169380337636339903578555428719924042631219470486178135806772671215580191887490138793438331211968921508673370127627057232616411146489951846896729324539956202918156078097845892478063340914864830580093862981292665935128154493787594006920962689320911959932415576059703126663308396173004494862316324360701522430318443023782865678142111235927847047421956794958375867503110304956586885199276402144985363801612136746758409218026953498098636554641826899274345995265476227246862935722504903745546999517995907254735716485005212092471985190209499388296866644430573044823560713440844274616366594825359456882732073024035064640415826268248497862596029145909270454034837827532588741745532623502043431519538705310017448858091874253657614851615120640433592837371960686568824986370658169396618512649737479574385462559789719754456010746513236526248135173004457386326297598427227902037564037386250121370144864830106765245738944656318119423957001589614211632935314404327250464276034391265002270826793373905619653063166780923934078913030507402811040548889876320952975132978241999417677825331299978070265355424856565686541983615137834514196556456982476070403732205679173720352066455448454743694011382804558287991442268035027765639908376606668797787088879485764089808863877784671116993889987871037744320325041689413706187521387958249687798696618843435365465940953443121983527863584453495676927898437306729631837917215135291440012209413618952245955907371108775318270848328767151545325375987620773696244819382068767169572047080271896830839487930144961773357665138542000356419534770621794483922122501558544826881761415062520608923088747624926239325433242936505779204817064190543406634201124963626561489764347706580675577316747266705486533883078012505925618831989228106281960294281617419358622951329306318192910790203320476887896306107135667691511366641151602576674817143598735560685369867390370594923183209752631926566442109088118498753513351036002272119808569371321542177589812856881561196786961012432310014008894560996681556559420236946185736338716501996481218466780509254437345326365342816813696529988956695972060854594865454982522454953711201936158477552328494607089730278298974566667445011885135325653386319196212861201921836044216688271795284914944867493104216596300952156800977496887787638151402901320813684147914046618021410982531084789845003252331750332449758208087463041168526567007036361915552324493748920746409994433734477605086510275209534206373176293732164597402542300934150626197905039409551529035211148094891737727594339464336542317585029644655776863715034902106072526335876127570060316167331731490110258192122872144707563856664694781180281552975362499318523785089178259241768269899967187949026249317393225610169520838445476064321032618477472119926678411751195968303225033647342548109076727537989466068089724177875939951619555729831698207237310321226787152604470962325879829065015515405871769848594746210925753908509377621281477223681831227057321382402658092848947039628763298943334394991015275141885780806159613483180647672966116136360382465704471212453708325907574239285788904778882654665466196072928682373958005957383948187319070919873873669047686961796892007449279888227229377604522991613570768037025332776681747904649364564214671528093102316201855605397805139850185958296307249131857929106697517747004863430802892918176016474764191662129445867085911914967046872611273465163877135491267189195539857193581290241556598040134073649227550333770589739544065708912604353554497085261825688399899324620695758145443001430090739251914081633306667358960288238245711222501724874544865623826828014237533918299434769757712627647175653067490768629272190220861059484380211963407089159554184368951753541725310425585468415808815221882181943926669900913600118499489480602286111791304126210811291390966062802510013688899423658370937580053619694054858069065491941630905262437789650811440992472906155105624532448444100657987218024161153018458160719406555036922216896958587253173372111966071901475661306882849516621824847569230774481833455971937351048171342863763571872319913767204520757551458985523860536091302869213022232225961169483334569306737380995652254539354396144850533263658359372377790652526483464473731631896376031179975218192193332468034694653315641092137598033729112800373019433955088884385743447255086836812589067792743434028976539308932060455731229378558456904723816745133607882796154597802953777315608673406164103621174597939108651029125764135181364426231550325600812316139838172039400282631563783982213333570018378511389317313279522090208825025476396412186938544496128364796982445046200718633499106472297907257300637918672334426762839745294919982042269244611252340909917510783947453423097458366474333731726594704764430834325227955361533463882520194560849731595497666653857247359426419669360283253657534695405825137118862410615263824575736839358648465055020837885893719005282040619845013622658515499380425631452148892557327735959120277849099704201982730511363920358827209068734169594384028310579539747105128652723540151042970279481825130328362625586885876052437612025854580047777004797232230264875583883065446280168251995336863423605323271194869820086141242995494688727059831667610508102009868692840567461312819538692657890752321121005092924713711759163081866475519697968425619158432088035481649025114261273391985297866865564012008809918916718475045960272135293307692199754224889928973673280483670346772380786832633229212729106024352032211837842919356195857680168507759767471635142799144547882064217941563613721697982395330023164886790881938851518437661918385665598504274566896788017832954909856172217875816962584458470090113801025599246794943750484855944302711275439403102868270477763671199310870025498421364378615139980271954620109775746051489079312406903784367800603865455076049924123969735057493355409689863432659596422071406498909338977214133511174956064598665879360152690796044244854835993091946676203029790879311374299663019964100702311609006357964772603270823645962568163490103051396225931406152945834488459290375438640507946688601162302727763095597323031664734141085951172582666847439370265724044810301579401672721189716233452532106579389954464292829604976640007793261605134702933181087633569047539079247943656390380160753051556014855285947384398662192686806015629814430679051137222738398379489013154368373826046712784261779632906896844383376603891945336503769118984268904052353131600877941404499970533630593823361172135463158675897064017343997141986312022345475285244903534618748801210613776927332183234572416998949410227947958302052245066773690614431705993252821213232293569904078451098286046577752098545802572002416096314733212910757145439538934311129414244212990790133059154159116763456227583401451803471508998345937296960017937300512613106495257021075905553062749558269258949335101421294559080470016619504033096123218411066118259908721023750015681889559948528264623176594719897669006468024757250899214101791544639383017437184031522435620341646842431500518679452037677621336730588592686921300480429175090032497631391573878527977311592399498730776449547666543198113056181349780024657597922171027978300004373330604871282754639472177056801165381632813942785202314818407459416817857872057589728738744103002506825406091093670839993853061754663289006251333019471509691504181342743272709928562664833344586788718916459359398904511509416892320547621692781912088342653950532670670590817554411516697338949065377557711226832193555941285160173364514765180281281127430259034950919817725572882841956256168453404729730213712820095928296282910119006514369913904292190568714009932459274890187613791618471583845559550160531146944644578916500690596531374792284932142395117054098386072196249507512704555580747452593907308726230735348781238090350513015284935631167008283584614484727743439587938022809935261928785470228919195235601969206518156185893478050697436807905277223397299086866938119707758096465074431750237706781802462385395583098907724207103636677375477033660612841579640595859686672780787341324501228020748938825539757176242538767073267224154485032145286735641383696318662622335090001711563385265647081634488994117803041183207875090462743085370845463050005508152036866064074173387567363165378769829573762956847126630207844910226704080619007647835970106689598171790382502291964959280009014296863975596940270693019391428458142237724150079769430265912347714326638589840262386097232196838429530530108872925646220325055820901982653139925602161802422830044244570416505124690003071023507076776995464282112113142472506612505077254057841357929935431530795268326478003565731569473668445835355067955257649988795344558003727983614130733405652436455785052945432608080183425179693953905971823464091966033527099305422752512044603298602010996465049375601120223568667269507299642037866682113270801914931675219597289611220853234557306104370917312297540946800585361817707682665628146263021331680955186123592433218573609372163198530431352254643665807629533950833677418749439280984613204234029449317985649117273916780387386301152127623440334175205715535131516794469639867958159341395203101566911515089249008749656394448390750439591948931386464607724230710538778507784728714255313960635791215748080918843638040855127625461449898031384566796259340907700170994739234288215038008475375930019525127394916150090102321038814154146162508626525695364177227506177196698334605652622198797383586852777262847100486254857999900020151148761909750885825661902936304389106560287356887051947327790960778707423807861641805172650662223804340097826359079453628700752177234599808729811742821859386551493545306371774715367806036144758645739285384462615115101562530182274294976529848104017497581402120364030850294828277529969440989651350803411218770784097199418653156659038476784913186048933366197379367786683947089770091537535533044513473093339510980822387180826461683021109189234260729290144112334190494232925769054433025029446866557262962421547331692506676774120973629883117786375005463958875808491733995084915994074220611711136878233310903016519008542190878936272485671961960125050986612988540891228580566987991817653549299812388665556892970609948796848656288299992407705146345585339434345311638583487306841063350659520185454342766677036001246293304386484518209324395111876948887654975747551124758813477451094445738739214096955676766153867717944787819253096496815402761680524691927496430654471954789577077577596660404169588262095489254664368281581003496418982379895029952754749804960006048328149033794358582528792510200664666254821100733733760858756818617471114799541692186736998457058059231950022536004777337332165699672675449570417973408731661747970489458071050921284691744201077035030672780217679899654237462261230590930284648776428339477238415527346605403039085459718409920073641187961306760264805488166904685998755624767343643022504210349528946387168750053224297814472112288701325808565997411261598665741349166632106421345780365161895632322133217298156283730657044087851932637715848558631492259931329062486109466221942635283017158954187362515279080080737865390780618506280440764796224428842746989299893941923339024673973488686661003529673421516389791918979606084875014500761226646652994673738028085132335276192255439501239262989637448873798531644114199232523296400035639727217315493054114602320307324629513399655820218905468671011055157143209541362484527650915137078571768235015749417124299348388329092224176527361501888431261399227109467687812004416652699024971033811173410895852218309780292252408315345855158409884987813430795728711738482137288872768711370250945853494430234987973804134560123613570647547106052232861503536305363572439102868950056895673359106523506075846784834180245617971074496749108827775197880650551814346325432484299936171524593224502311899795253381676551975692291899838714747592564248839606228179956256497795704555531436910645663630675611840288023386348207358000437205827724921280555581281764107345770049378581071265644089653231655635072021360094280382097254991103247359276020698821063499836568517261442389934150140443175989923599051486121940221778441697569814320612199715382619241879102294445051472065005449684282630052169576546227889568792400488472568798862053632131942102023504533824618954253379996215739781604929858313063989284996552021726975645162257303804152634500292708413028821805389430025017374508388262965396573065638991039176363186411324481418266239595551250429782467268819264378595212033983882525687823327292872096239794669365027515663152661674258193047978836845647546108112151430013852377151771505091426502791289215188423561734585157542939322310865862569074505442401609687679740037512237500042319929124866638944649866404799831656688711715269659883390181609897996697738283084270949797763911159059058855137478017868408639090140649991773655781010317574578227756927416183555224405742423541112307895785906036159259724099650474381130019440863050506938986391051885587984636034884882892252028804018705742820144827119322092799762163162548251321048517282992357369135622283638887435333383162374249197007222811371155461262489321607540412200168392460898650363810677279499867448119046829952999320612889559452754224201617639240464261284477844988011352909951213228257259163971099317047303821028574134905671117554644432671551164314679988768424568521609860112707827079462914610102061156222678016268636898079886082167053614108889038607025345480892102191059419463971151741699062159781514717375713906105244759202825623444477886934274818056221907719501144859055664675115629512649964644953903492941854221967899341783467151549952147957790636842244338423458578247495906938926003263851822110449519228763399460892564680150926250333139416150101509836878838843239742828166182656058888542192943945406029218412949697786568167641703511727488761034766949959607748212517017426575245819773833297226537562312334128216041312468920965542927512827961953433133316582412798916404631164918584918248036825778492323720212308298892975797369111053781357483455719926930176269947213969891508665740215338245912944296491680563575319078681791975385344149902513713226052521534846407661211256941494736218715854357883847763756626040821053117330296419465902869856797279889163399496425107631947295953348649693851228313051504208757399656650696764344583183111891520122532637027015860382548725583275967962795445159226594868441024351755731809371815447333844202780209695533868461418675408359753480502179408318733622680213446586243024869970708946038443596459214126933958386060972436913334624567022075021171997007313108686735289138249846908104713653284552999986358970701102490850619652169786630508927697393538355402425791706732044944686589204617438635752951063424684708237778309084139581729427128003511260503664029239298857456793722636521010314241486997548484436050707626177140848354982660455666348496629065444183650086776982898077818723881642289101712257246934917639686621789828059614840679461308258477921753028855393411639282877680545396832091664820512353741325516810683339423510435147225525737110754613228226262515575405318414507183932141823408325012609376849637012244640198032904097311906928470160998732028037232026270386186671296747340753215699554653913292423873547339543286995142704467541101834152541520847199776980616283568192754184309896051022353390047332018333530491742140751754755049281459003676752800429046410936730113688003123631236634462503359916380032160425443199755886250913703653513474857893511950260186197289942774200272040293548140677006579624786418071742178717927109224119734169591396804012105127050459839613107692901719206341484657980919709060181926547700525497947799480178284877207106696358276978852589763876095820458652309389541592101330247415647913654730072482937809040094986948769648991910679889374650585050899326962640089204529869895941304814035366379917630283582298363699101175518651057952432748829385229398673860228336999052715502612208476575222739837349746718354248624839548190375963804526185654716630211119516347820687851664441290526723137471278416731454259086601890833179094009990557248850597508837862011283987153923744896329374878028192371395263175110117540468003626710474172077229142932242236275517183976887719797317460834328288110899580862669515024009767927409409981892640965815678464224646031676389034794701158793623107242305635954377953230091087679960712566313980649607597574998994810530842212193383849035097542407835154060968500586973854346906521174280592835122009474165325170070282159596242419898940491614658717584441588144488604259528428195186894181469672594874196975674690107657259632053584407852387101924215539474377781504973088548188756867208717909429184752265073287614257565047506636181705012726814608154160951533830222465259399440309043837324915342071213428349614071966687321126254009901875420826421789362713626716142770032632632569714624753146466494346277736414104360535674000324079299810231647535976781277401166018911544268044734560916324856933475037380441322928495514804773641760145577975709452572771363659127321923746146867732990183369550693592863327750501371894714232269261853856567890246635244155840375776386632920297057189877785919126007080289989092370785398746645629547421997862190724543867421805545917638557093863068719768507520194877753646214416403936018705761734620174400505107237322921198748168934938267630075993978523245558631197734119811952381370904053658388464276048339289368527683709189508757899975274072191863998166219557283170704253841925871602607221703432345576103620116010121213558889354226621109668896618744092893719663961423470761170321603269326255416121611199461593318804164793981026853185342283273245987256273408297322100236409963995519209137163009092995156438347589279143894834366763411233225188417335570431549614663603288495772367067630554840442406993259633327136076445358477694915087125275277516091042902942964440721429865452776795301597652468429548824917003582520617583463158991928432029345135885716193425384658477859081132079858745203470772898135316288357020211719278532092186116214760465671992004606346818516937329925815754120542712679491534519566006249098261655993051873026631825746447313044372025163623351912866703888184629144276878506627515828985688660093083412065835443879833126968776638388823737313374172529609029858296156319624209547328406784863662713167839193555367866626901131757796580354086438618362710840526158052784217703619842403449111707984367329967060970530591699360888874998743425121863112080638904860184733506790952892987145017063370314845848634252572752487207688324830135135883805737125707116985643192052310700952903742917284298802843320628466085252785574713731322220819372704122878077033604202936534552020378897009715316062960809812163714885439483726104971340022425377304161192288828390102799386506580241231828719195634129375153462401808059899109870185229933680302362588507277766345883749368301589145217396256885247427914488106279817284635387160174600467861847474184361638961129466038959086979207106765928985787546070620530682310095342338216183249867873944112596963226553192519339532983098896016498575347416652964199034211184546250002882912517881616108197690026549435985908843483983055540066897833726851475158694301524538391205131595394353894959474779244179438631676484260516056232268299810176959710229269727299456797947888079911984944009570989273231331453296489292679658027299773070581166685989407236585482517638828840321906114209986430487746009835706607131542783030956961054056331410671140150508114541686156519613794905999246745087316255159190308953136488485005688643402208843159256508600395727181489429950705556142432802220918484983739265087236519209779200545849940616340705181225978037578665053812843517936049402200257473603004029327296472912414604480157256181191219754473547669540926334029305870371991745521961641611099571733931470562001442347456967242986810559448713379260387356921592251079707556401069264595291834895063019783297710049624462151627509162746559985979067478759004144119841418332870970603059942953845618391343010064057526970342025893783651571128374200038749499486655476554808355004609076904996986697679168645877645560859737384431235076188451763111718552672966579236016910156146255133665011262158977486348416997762570449947371500698428610323311382704002238246599810133633966232929960126130861835210842146432732510831594184704630685614709508514181630832882856287223396506532230611058649144025634284681653173784015993326302568181154574656064621356157032330956656444549669228673916994960843579777108812960522125121463072139830427319365490549417968226325319959786710286928343604962296604985316668797371947608995192931777204695816721043241392784443308156366983402522845654288689329434790512914830199289507733213190890650404625108511219964242353054423930096037764772201647800096813023712898010723289884475096602590358056401095005782533808739046307270633591298235649313456291558458661080538020306902304877497841746356712027132645858343314348921729556088754230124850230910740780343580322109833075660328788309287981082270064775205896604733805818872609629261472819292820925429551908613673939112369951623423617486854145456193846856412359657073571303914271204384963164867654821974819089696684234057786106716475969278795617449795800045217142323478739336312548755118622381504196652983455801804548235102262437346386021380889138485494579740392027198065018829269881412346092402914058480331466786201537410090579046783690642136829572890161311231777169597851194599060664736888255655825344800133740103743041169925507101009597923083322617546101874320000801853766415564604235247512286303142856694014323201800830825778161889524272484847901679932235346250896994687540189395690118063710107603751854617764248825052943897505078006248591258448055740019326279537269985464177162169636599069039971526746461309668628548755645210136305586245647846005091796347352446944588430032689453787880910856953716528046832552147073399056294659160896455674077530790439179532456280232606054468652920073400294505920132727635545312546059427136212894984569487272128267864489002879452220839212005533144128404888394270791107967229702546975439412953043361844196846785606276460425661441990678427033854489883975650353501497358223070933003526993101215109764988557644750018491389606923085081553953404826776006400537004852298923950755828976873131706277646580852392721071028941289169329784753702382762929591337023022487120752556421174935097000693020429732116430753654625969566137150011779579162603578767132280097236724170907369509476234733487467067838624227328701272685640217507696904115255681907647697350683722753597673114846876251847257752321772096546514466168804418429333427342896222206510953644910606375551782478162604021521452508451960642692241214062985141743968077218611314313737061870130043733386199721452896954232855418287725374964385735274411060138321962853267740294865089953214239415822147740252134319882306504901608006040944996862420821455858437160835275204619844462924531284172530614255114772412324150227287417473667813065585241626577710854293888266248235708841540988153886206111151022289213559726577535667930538774536572642848564616159865788250548258292858451090966529587005054760085635183641941399314621607094175624761517732623705896440457164899106389287967482366600904732262877173338996551261032097073237836598119728496736168065733370300577632997552479373165341441105553206034024784738310194298567784788275186971556478192266331633359137498861985855913084937430577492727372080887670575607948050266078783915539305069509329994981934492224886637767368003560990355741988875581208708008883524859314176209512501854096291506231222616597774223645202696789436357864041503892924624759027430630943765414119391501722389626929306311898158492674456061560729330018749996203883285732520373584443972625432988744431591046257315042732835759928129511207765836367002130609959914463392537355034308574040062850826306135145008005578435592268403886945248033270005972810677512683021050674029069905980395565948530953824866283114670619927307092347063216850120724348469476511386399603331305752131110483699132397686638935964511402013300563349401026502823610773868048200805435567993219137109056586546755128081174243939389737453909181328026430483538527597624656414769510135132408327626175888696038503863315882549970038769007495592173774027204271596084176809724571431210324342615710092849421209974700599125525275977175529311431891247503701901209011682203863870926066255512980346131133525007611780691808561705898259888162580514050902844530406293743406217561425126286827482492852929405003317660561918378850607970525691199781515192250705047240657575430844497195643467166473712092039617101941668088115079238471152259344556744856074587155727485113918409571498784104220003850917347473570204721705334072418556711206770382985597547082917874986875460952684009081937202869374450924034122878025039936193320042551607310256206346529322981764346062596729553492713405470801568000765442992193433991771934264008501522028066463457812842396965900954492299899337831632093867211282510924342686122201541568491293454899301033406338836776914397212099189433426272464820985677444216685678916579494331886210543684507036114030190660745507382478779356214802395091596367575116853297595729576706372244998049433341798581823124353743575428093701722967835683248183543432289628772082881114870105785800501225673135578420493761709698433120694259114436347133402190673572603151189070509590002115974550178512137443926973205309303202276600418638151174014067593863834109941417389583366379011353487975700120593467796409520419945511062825848464558738922076314475626255582992569457204706809448324060432306077451801022429495060440823615908161160094651347464645071001655838930711285323890651508832424631624115236781583292530457639500818855836175072202000816570919638094400449957008957840967287670617580274101489696072279984399987851018075505915582773631830547706358327450037913716367336231389898553389782761526009297498344713735185461728109581766034575388860084618199012585526587948047867599645587002022944176606842688142442580872776635251996957280043170471883918990645636420397789586064740542641927466698745921095135092407019160231975547172255329666838999400360731167120810861496235918626451701588005259407575824223787171862867941336821783431396876368442755065975794337219871781424939576649763074810407638928072592147956648325363656387306567623588793247101230978270665843352432445606744955204928986985713216217279291029573700012096774220637573356467362883733532476868870861626677607555597424998715905032701445423870334717870544520784729492243086103657172330679391580336451986960702111747862106929518095598048895020908575104130323887935265159748740366044460245510782763298712429451392822903136572522540143264338564618333470251754432097481942940130106261855111352582833321846089010748021475543599740847460289204762699764622509856821383785644253914406189792755313501080563007271431423476380983974659997407291341839813058183832665366104566745960406045562673468049027740293097266580707331976224179320797627888937596875403751791120362469026936942524914754492805578503481386946502977323985798605332706079716706287202761917038535728509231758613251420795164926422174059541510568716913457682787401942520687067541513431600853431788979233842665327308585311120825984279644499280051490148365798951500180293938252714900585352282216596735227316493239865976325726028137782882113677636329168282195009677690780441833764182495930288055978550400508428271470041194547374444758851482129040717469674250934812303961833689781672824437138520728050427705738516414156362448382274090598788500844442808043159010561796963131170684201179194325515395515483926148859876506175386022082449625850774267698475287475802641940377335332297468761715712238023141781387882735820503580819929042976062825184912221232196789924384284461600656989387821605137736726653156729185725321055939147500803474225526341951961129479207412000076583122761088793437734526425182816858912055903807129952562276126631908966354870094969962459372668790501140098828718130920221530127009400290292750765267148395264560513882827565329706368038363539837804591795196046400409935185410416822943286728488820161839825817149829379351790731412165154595698522538583717329702418670581782675575605585833805894111826076853416749753069267016858844232981179229423795637350597256123379806035086260040883627126908007423028002950106043241232249452771477113164763035708711137555841956795932288912181801592671705247498022050882110156922007602783667530349261661292015722524476049302266188522900817755866334446895936149779970255018160300765932645891295175599012350322791215310110607670752899322536042771719654313086023445181928431674215113684119738873221759322848697593736927315465117541519947665068330947366069535192888163754637717112916426700574817735379927367837242484782870738097164453030089199238514742820608727073401126429142844308924203897072052879750813033348594300204017692559431963556082300882118438293562501099346025690875739258829958366881190474243829176972075307148155393902647368646452229556698928617846665854852888985469752885826628074553482063638936521539154387824822122966966125539861838244831650218711757250082539201059165020963694844042784174193258938973382946373066889213866766646620557606225169579784325667968135222939296457861977226639948463545658363134293490709236932537995896517660778189539597522023167481494245083094276191978850403519109083591144465752873897535713524741906450102646253457808757937551675962495376997749666135168090437287531904808726420273138910611912617916854896831721715556083120340348038116131412876182352571935999405052511336579969584098842000710593224328190350743492151007366905859753535843179187710077961963189370829338078290283211031513761129326375052063841908486397503846869602585136299221213416701513544379694262419601189272842575213112771931401689770432266479355642531225339840552923614066338611778482658960099212083600330828903373838199815442594422024556319825050879033474252919124484547338108671967834697355442312581748313675395130395522615904564476218821050614891609922889884802645452752333426429938229511447542804099011807269619366063752989060568716467658396385545670896064040193535665866156532544556005488060251362875813861190022158494585461595580234913722577905683735402581335134855957532702878586183340937161114595335745784975488898452057667730482345851983922664803399546400911490613797482165123036914977217959553724661842955761967659754445015643456154290386998479772182872910033886732598165350428059645686986908847254941396678939827013178894044716872012899078134307070212430796159871777718286134413231053609348205961798206259552808884826820057603558622098225187743813823984065303177256583480544638017006856558516301146672251651961751225175553499972774770089709301812753101370036038276929969865796015387217044309505762079983942648033093165245959848078328017054561108639672985355427524534071890263048661889052870269267934400994358589919401957047559135210157230959023814229750655965956431753622291230688891934381275286382883395709855303838047714539342586066697430096441224672120983870347891629239176312958189476290027434621860613437998767520670026965289606013991809882979927350182492045322076341710534540820331597127864092927691099030673664326046785365391162218934619398613041332331789726683388497323693001716694795066597005989575511675050832244116130958475022162709257524984322501089786355906903215011063807526691460157463431293738724950821448019680375810266282913797991175394585667627488027807112207763000679556358034323645357571657607099040639976161604370509151698602139410939897673362022903638745376042763031700289745842231374301839953948303587259608979825251930055499130258424477384509300770967221824429975263449850682073171612804428798339077788014930419428981984192596533935509971889808302785423485301388192471181749643894015761379471482120596894937386496516601929997087337300849590970399887947691775578121365972234682335816709334324613975511028204864251082624959803015875167982454135915767537429544149326132317292186072117237082981780804287844152216281239058413029501192249062414863316521455726448011122671520631107092241471913688077517965716508742610704633565067996545527822662475072054469318451893502859310972639345869713142138776242258211404716775407531361386045751596498796488952085479432734338940058119420406165590880682432707489714485720082553293876595069158312614179017123234185467773537245944990221764762983856188874065554831565260044006254057295639254422225553049071646463063010866465671947237337854227746173799028542287114517314074110440000279651827583543909248161458917151771524486045405407749456634530394312643118152341866978222823717064142824628923852944071083752222094220714726192347911978760918805565960957260150256421109505366944779337977565180957437297217683109343575701377800786965496396704950342323570654830404622958541925898406125930831688266553548825847057839892909209873404779770406569294573027984172395224734979336065068048359144800429797447060750150884984551066982042807752799784834312250652366866418308711756952160277795841369350240267104723461432285602225197519399120475098908118394763305715949781871689222282986747525204630075346823267087766273422494495237629215234539439448559603557601614504563784215115719473205822535752070501663707741540923031982676396982845287154897700840555400786466270084175732416350832634863168613356214857369019818196567491913615653999562578041632854624339318247389347840839102616246623196874477918312793855388368593116657140445801570329213866746617344563573865560367580416775105368186188330251622027810025368991128867293337057861615810422386800755584615368111881231531378893630445832448911941899486342934740831740955710357774937403658659224642033792396257666204183115823676949076298679204984688350177127714804108110179234377021338106063358263672396215944047002229510455158506482237335435569174320680609246723967636277181112108111141358670582760712505063446232380214006581541415998339264311177582606857612957178181127277010332595567844959780140201826221738643666887369631218871704645338565250246573000866649567512933511713279516247247373829529489105963882961127918945930729721723081009460446497083685649313378812321396537520915482915601675974850097309726642927625397375787669485715912568889026296378843014457355479445500776944659632562862010855945995794583057462765156551115676591877506923851165666643011459948619112829278981661321449510696760062484312084460630739787855746567658144564205879528788329691640572604824068958265842258183846234456379282940645879963560205025677503124042449306974027568172341569394859712150337012356015390389975747398309215778811131388003573677583380079902883372281013650524647004442883397341538685325468362350534607623226997692693237448473524442730714947610467590996981937187491915620332167910233593754069586015827225432304069641670704697901746746112028849795284026400615381279696162285878823068190119468409044965431291742404260542593360817036720418018158577149564065451057223456579466817964608974824395052069027624197496933371745507220222911531606763783654631120834875013977847644389929524728024853218830750830344612617089038150068145411897290874644824415905775784637581804719482293577018130988052710623484434214539630103505735506959322232855979353558594325923166730599551752702377637193041973260028453574702552422209091378779701949446717948295623590132529293802006585459887741122644081443734462990350211120017487576357704582849130962490267903397869844369647489981720570709046430221430905788084048334394571225984311175118641711690026996642661076682701759917585430672390966593946600435319047007149328780570355390895966788076064180574738155330909591139578013482755354954268431381529557690199233508027153463963798964922107995592362517745461440257349415562702938562382607494771903013376855126458270265487736426543427363496985157163953231252277743168254742453775061483887541975048018278323042386573177391575653824245223965310785642855314161956667829992661947421161672985294421783201065956430725044564541863752572225689539708865891524170845011096614432464597290223798526745033926687758390030867897271049915641748274416539493722507195695857422475581068796946570397952122846211381029515791131253278457188376621389665617597468528162865282399018764242339375162394543900837871721117620692523372400281546451103132152880443925485413426646541069976127889311785369112136675481125885693167364334544431327363915625072949594712228397593544210315326850706237257239039106343801177611564758444712908508465161228631142764690521017225217150509220050183407127253817879728066837793161582015262965826054086627791739816089790673703714091161597812449740672127898169094943237915104314831967482494668448258598351997774916735899301936798837537391640238996224915311970695653888727260428395972892550271897601432512022077073987772554784908713213500329328510486103661176198770604522571513827112610238767887288336316939380597573050559592198548558754378372996431363200055951246693025592517408143903972680507648250428673606608397986694793387278581171541756329063951592547728473084015999134499365601477159184827564581451839151059011838947083496698955015131732589278018572426621503961098266497106667835376258122562119850250081283653484308255922785128799498118389553466062839097403144863287696982086375823964707428761625960824536894356079406996461673781233004688408233317462347344566684645132230316778134865226570272625335933522931340629427518202682160235540273697902279967018101660526541115150768015978395207363917685698727691946547827372780552462701013008734710031170576928656983145188577861562247378088126913859125859119230278396906203645988178861783641002659466389964870473577077526550529455961371034258234220569586184840073540613984103034987074362174870135511340179934627009610233635775969339924692209638030424687086925391276518168934297957809379441231758773338513338605437571747451784408447307154428555667968241762541761294555031787729984876389476997994184596789478097004440148048954062827643850648066205173798711626671935156440109449042215198334607641593208173692879525952175380473379616243003953529734831644956429961723780261303753768042663593215571783440087105172096395049277839603396737561230119451779313756203550378766872700670550336787563132367358882517117374463804300901422546499265024324407276555482752067217745257286861628977751543168816734655393625681270970002519667732029534995367372391897473792278683066777643292658669138838257742221340410791638166253450866838139569200411633288691093202252385833958854801825037145852139325182314208842013539934525324308022389558184091560636727688170917691999801442939818599451314326954131037518102709773452327495959762473726865548338233559056372976155776269365302686073331048846266681823297534680741802234078694417877219127017935942990818296855607525257302699029206021010718382996139650087205590666755974062347613960450300776323643647978774254038440010026433007626058517681228172259338086830778595297050582935847154282622513564154720435641244063643850301143655291051965543418324002943944975355810797048117507725174638761388429177762471885255082485280285268055181213623222727660140564383193250234137161732124223553251407997358632470578448660082616558327549344942747099913951979021141535354770347903116130976735107605122121213303726182430968381574962170891072869349160103754217537190741692153151587687594691986169542543573535234052895078852899100142006279319388400426625489561439172961840858927394563055106752378288210749334117103162927325046883226302372134356279385044931432249638363599698792107830604990157162662906018633718575479025507171061636833702872830822453574403579949675591058525471518550982046134484866709866052034733772381537988615993346231313607336867592157850475053769936289241862279702922905857972167283467588701368530328462850225674497806723736740570797939115691650653253966176084564865216608183297280030239784764228896924469891185128276855194751667955475418425418851089786191924322741436756313497359987501827780512298345966551243898433599647818520086044201936039725757605713755212770525398400843352264877585285827333420368387869764221515466514677198932922573471043795838653260344690591135185873607091077302381160630849555159913493879796710736124715199062805572180423655690793107624897115565495865684843434594381074519980828791736222999299454511171273771714660776224340672756114712956053535849898276290790261854022875449302243049507511988735671806493574410035546118201439832940335569389768975252749064363387273999478069130856027060823264118437123220819615567863017508650117484097151303047594082646234788975156516016549611400344632574371615621233287134036883095062634019060686938744521862877159970871903469562357181749789954500251342424294316906098323674769894562602663775072067614855718851496458611536253128570837475880693672008655892135827286730018576171853641924829661926695031690423490594695754853669011397483367935736786036778060817158095532576926386982284989440437750513599817333726681810675267585677131559856165716537596067714039635394315435227328435402566456644087281887102054274791959773988065425996703659148188214415290212806117191816267925313979567906743091969517298464447605066188957817447342986996897678426777578930412279988387177272363113739188281479445400139628969822500226812272475212200745371787550183267994669493115561305809387364729610686523343088608007860347371749192152944827122597830392685118892545104877356270215875648564930866673804157097596070837886163202507132106328098970513143929704610695863085117137290878788101802901400304735147748207469720218835438016344281723521014022298058757844134648705359115974352733591541850311817221243078910467607049933528745438478029587189506566330005604088500492301768320184379503825019944742116432137759436522119484900633724738187997409287059065406784474924243208137828321835650685352829114955479962613349340630113717470898606067161140179078365620881950153499296631510374605087407517038819917879410424787606211381722027046040461903779283460940583872273359516493951939051607013321918249769866355624671822621014500192360432017296356658530672899819663977223571402752175812626114738220630162673737399817427473184599381463708241786726485534849957773321056362334346898039674918704059298624701154444382109997546189396459872994231534014646292627365848666017080034112939342077251131301065419285343799319265942646583160352730041779868815306371979441789181658401908261392392945558870959157990548909341323682849914522985627435678099105398103570141968236754568424499973751767483924827881986738981029386534966985048753911999050397397933561400473303663927358368947348249612510368963760081826633858267090272005245824162975082937707625304640497175570896979861482306722015838569889427760593858394997826888591600511638288334081229259566079295352454734825150099157482998419403225823182783362365383170193412816375093915781092677368001957608390328883549699682299746263655564688166653052465028516849972607711521543162051665980649836300528182578082015698315844144207610217133374187380936064145568279985323587860248473001351953174441810880845444151635803031093982168084168748250792751373351842975594881028419269073062129808847681377500936834834786371768158944092353850485626947974926144628864712941885542289664171385120366624537040284653269166529970195269229297657303702556131501206194102610604994259130494441402576464675685120112637814273873898614946412576916982455716589678747710604020065283889315594116010165241374250259118967488793933933076296223360147177089281332091400180341936227146371026754443560459826632448272301576892563544600340472252280222324615166593909807240315651264143487428953465769805647167697074771328480351804955272302202272532663791835114160952626465569206721153483691939242770068393342763719556813048862489230711471300101127328755554649019849294544646107557669247607654616168647028902851065723009445887815532819319083003335148928480635339875455443234285388290916638776988876932828769789652515451385296114454136966777053238984560969639113139798499794142329139175154378116493124422362665350483728281475456168960528818162850372267641973404549078502276307090097001337544006026528534548538119439655021585963248083636246833177884272667689305185911220122929584483991630366066176726282551757857392052878295175112426072604858463459381831852050827661526890609353819683140816039537519035722427409923321949189844471660503699486313413818879390580656816044718651028175916652156820278964159415190552374012765168740225083576690309960115399770464707037927328842827929172106920339507091121538436743840014364679884110810456888403398329532729233547325734227121824824199667424836805732271861883714927563706452711738231041950599716725042689295851206615139535112702029740932482375017896263066256312117239835830443122751555186425314640751895497266176104928079410382015417238373059089794714115952927423336726708877494458133075423786622585647578603947317493267412826370757688467560470105288314057019730754185279264656943041960111364178947749967706906090802040151619983835970807218792241517879112650325395881329401846332131301705606280402696107901807782335764193708558947971482253476099335223899905110232644022409281099999087137358656199962929101090845787373639692062629782500035941574404279489291950675564493408453330689579508908718891495874055404803590461373830596043619650808609314920063813576167810266785627156699003983592526037330011107403451141118261727101016987689687999135753578760837058600992687117097358218050685585471981833709499592782634318157678946840452523898924871091019876520367841605044211490635975221953703602344123616525750296002053576584324189086456664707476420644409321078234006269221863936014280583305658430168624336567641922368730930874806056430819237292163756458872033976341372536296329697104589964859466171944169867118857608658137945585817254979608099654630991784215383994745025125693359927440646763483577394351142048702935945765454534240391702113959186474264198600863782034992560326607725459401141434732654181150025397664587877793160873840992634890129091076397017482329889330038455744446555603164722623206992078402381512657352721412439612096556571123010575480138316460136463586670600919522880114245950155757874436594281418833936589378059823281636856766324173664408439057863523243101323770281768033406504974521933372686397459881200832361097370191534044176382085485790542917078648830134976086615113272173786212333227353111639799781283631570289675112559687121213575086685862178057770393814997510720368188419539716189318580916375285582345404370828930537684802942004767619035411843700195512555865803530614984642231808554176890615421433455654069210189733741558219524299979242802262262266056988174295749499687624707881736441953602708372244090537533985867904543765462836554077378843534051542454008146961142590233566313699122892397743202927499998796457968345294982055929652352835809472249698384898746913179683378644737477057852708152313810354438590288819447631882380098129784544823075742252375338348223579563757242312374423863052709515622684024553972888853969039565296403363817052193721787095810290823727798420820221183412301391116818349827255980839413071551026434327237503004309974506254542784897329354156893236332059217324025069334567181106475229598276513243170385640076332999172443658898648856095070816222403591108391923715504611350216417093000742743125758955075705108569824666242091244852470188954667015787314552982711363884805056245903797064291063710421231567051867923936584552906970681917373174389404400105870137603862739379664252459958865094333824841751063058477343808108164773514080767010825088068378415593022357465274029345029401066474391520172540172698382474855298347168496898216544308986655168762289868287814186874748772110724308673605344547963673734620196218889448417062947571072190824510991816475981892146864428276631973940275814474705287173774144416110807551633467780961283686228075529054759125567646643376421247535511173054632471320250008351975026451026410938461956817682770816800256404951335824283618109080658446930504064435900696833350029308509917317872542764664916673134394469224406365987507794050666986632965033837350373092362494409883506408968589842762564664176280505384273793573081647976914093968003039399588715454593576355540609207379822926254270743241107253996463279233837046882729094301113979427052600335040350857285701970429649704852593258906892501183164973478485215220738449041664532785926992902584294602084587328991429808631058184428775173001460414941201639182528704826430740037900661764546758864838896507386335925810625416280052601067356668087358682174193727485732224226089621475573879190999106399807602165045290761016616306054839045088499691349224152593862603281985314612622312621051077380272945759156748401419567583024907161719214183479762685126443747491434937397181981615997292714023627007343680745291724406568758895432878309229870406593930964950780315996933357493672237982565086480461400170744573346709218849830309457091799998679283621163228568108057414676002656844761255758385760576677796436859056093075640712107887288486072770663799197096924210850210286559638571472039428354003106847303718253901716736495844316935776803594738939272508801853265348552213997305349134082697450893003048605649031008118200170823986959719729024294442067803980825791947266109420865331165642955716683463993254334077868487587379998516997413926928277196593732320929429898777085497536136081909423331022446949501950904682309413141563818722740571386680756202654094005357927897340512950049129799118918066541510588820065406022544975295445172630125318044171540133768089034619356951482315958967324099873617941516646450713564431825709540530522708816720839408963785969400874196569356124844935374054580496546050872297075288910432090978399682012233724559657923139250419925611613649906837297499100574206663075540787185020974546327874580469701740702179661551671627758623421039453771707948146286063437803534888908908869218442782419680135431167850583626816488686746866719604058479532032499461826568613639348390021578864315559696392387809611639575233166280670627920631541295854876902183751688322033511504370440119618482058276970179097594543244636706207138111121791571131391563478443114144844506690396187158442034874065059561430032847941065056150570364407750911411776547980429397482789054328333149523101343662931081199642639413020275606089973945825027401804786648090594186105705492781251646470063398203231349111383880567376995148089883380440351947527380037477960154474179860777342959549997735880888196038957837797714133968981204652938196844102851472694097967990288677763616414730973999010521831890004941349270390751697832198355701697210686164788309956052098335489112886709154672418816512846328442580992876437490954863411122312485069150412197959785145883567121152163383095999992398630415453106997335358013023538820064245870571121747487689907017050162528466562924740258573341631415133859714552771009807279166098434865742341269986719952183326043304554423386271841246974011713658895620405657160088850817123428113691008832160562424670126265481344512508591891434954396024593071247317433462626234152249261050833459332177151731850899841649328538430064415288005384770913867241829304780578164020367892978935812317422476539334309747828786405385564326768723553256420095371315259920163524780911524722262506310488556229446799206978310839728174923615733928751433580450037328317420170514110864321358792198037979714316383193455998961067792729894092592861863176489259408389330624123146221987672782414828085563923327608991171509006652942902855632305615515241691540754146747672137475318939910463313697477986042518104332835233258123054857462598527188297018311973823703972405869707669882320968567045332861028053898065269132382250918087637871715298266415411406074753340732129918817202100137855557566208417595835074070699857477120756370197702115129136689856959958504559848864140873767022942960166705014204205960063419565810468806615132915107980256939316129224012441301756331239187012241448308268861450989798097650765308594358297419277805137277509132971409733868725270621751445992165231406501803087100324720939819814258176699420353249363441149351538252324170079273864984484407229269329214756596566781871200645118054921370866464435188667689486608351665132789840720526678050645319968164555539972367409960133957401172878648872915226330812410775920802570218827884377896427452318458321616136499993924237307081202525069289996334312486201402405776433178422678764435046487365159604679805357887519702166712422642231789898106717170008545836841840205587992731655536931983546860976427385013484615592537826697307082434325575798482300151092033507192190333321218630401932618294586556254233687877900897811710433849660813283144084937138742586226104157556558577391042124053504360847832447385627474553040478981272992141822195042850742148291656660299287835733182403503697837428536204395501534802388974586290149292446503671612034455281510347885706962017715916232840015571574034466573372632791457527271684259022879687545175605019073062721073535703573498332927646562427990272600826984969984644901480417997448864080200632379007627960749980042245344297487766986244681463790000506977554417032393790808988474354255846158647559254920193726022895122571119013374867375066443533577597161902570781388984840334624897523956997030999912434738588512509463328837806500138638009066469990273229811263263572335531460589444229749617337542490990767332207938220244504381957629923330424048961789249285604197009279951978016051535316559125653651852016376920422235148871536898980569981565000877472317423591348666983022527612289744367619610478667579756440032415104911527950552541215680374132793528407775690948126729895057986175846889644794652003088399059846140223051666498112927441592981125084213549539051256802730312129452560080069534842486665524314912781060456539299257669131061013677401751666991674235478454894613964881852662027748585124085153711291751209965710447996902665917057047452296188822092686653388850838270929220092170921450002055518250814027211351026998631261268984283278217422016819498859429133184581673399276079139295161681837104200109924050218483811276405607706085087820009438398098323121724631337140759977323226929866787647780126257092851431523089204830333186720332916647198049282930880045801749379416105164321519264370010070872346188405462913507466388199120010511467577162845878657937672826355544127698019739699065344871107167983228919856892418817695242084765039867538322015601190644039740363027509876270163095083355374824485245925612775811222901599885637314009207846163631688026666746567949089116639898464385583177713534015085038958224497351734214596100131794614675364771563275582284291553245564393705923357174217689351696098688658904580310404463866042528052909096494633101657862533949945827710211663398539870843623018112252225258485743286538657270331866805181119696812464981992713492815805853152436626630005340501035768213022271387477331054626394499210750868627413845950661240149843486782565336512972694100035075507781020058463590355683594489321741465184374476517749556609470642685731700004893192027268746477213288205207575663220025502124343371376411623243705428060758212852755770400443215072634417760407552178850784763940171154341151569296071171103250117954115685489852491937390702278309067607128618330222032416383165062582513753504734169694944789476274418331404424217021988854665544099911336032572123493795271170945318541104824237960867230163751333617625169436709943104974617267594719175374892915454673725961921713441686496422048913183622872291361887341315697706854178165186263358542222220840311945984705289900956754559905603419379731735782517154446472075182908664996153584261227584948656404688866211955506437900288802746074929558201588497422871003361743936851599182479968146032347452996341461851356161339160446875325501828821228122332594094594307368343868402956529454421297298587222783450387913717426233070278868271245035941681721318451125833651170677692895401099583042541533555732061218431661424803384897398193590380036255310766981037231519668981963621900504092592335641968519151447419932515095272793715415962513389544003154764551313372919292923838918737816840364744318576330155530767829124037025888138411248780369586990188327933223378901176870031381518033563757232007323086983972467447177986604175638947688068981213638688892220474571636816959699438047823485621415661799115858392737848961716347495642253393767524666995580095364096672356235513839555350395854438019806174457677261293596979621491812769654318186978038434338797941117066133008901134951751792905789678111678323023552432018944204757194944500147378020477488819431579712303721329783380191887343837963378943757108065269460967884520533040343928436782147467469404566478491033981713479357323397719564587037620948237731861131293251528479670575836179909820507058313229340863577890293053497703132466812966081123712213126693517375971480619576729681731899470744283227927030163444811461968861023715279246625167745973890268871101894817487609018907686853935139996306189166581316457883772040812048840264419260008325251240866041254915684746968006465856973670249247284662209556748206599116126057249560586591339304361470299267968958326960227960059381259726152082944546284870198252528059738675529830833654631057072994446680289308532102793512020951639907685795019799352356080915653030495801422825655718688165662418173072451650456803687152289368518345736889364638365154462713044249857185612065232521418427688833944681946211093409190259227505137047430881088081463292045438327983440478362634913604366741913643832180499292604266486831053924872377439249388249300304168228885872888108000860706632802910655503444691464225647621070143169345392666096753155083154239053869913655571793067329613517042464596921920383292096345495874801237837230235761121005913639567426789161186663951836719667274294266218434202285479163097212479245228857629627638538281928116312908237325243245424817311974590892025287763011805398902519321640514489733931204688607303137067999532647654627621623240072778955945789986651730648470331025043181284604782072925081711305774872938422204049418430400260505452246121717890680388616787221856475370180787980619754159786246876121687899319453319827762803207693687056629931141302485339341329186145205073558440210473020917206634866150497193118720213915777487476273864673207381832386260245036242886661656422084905306718698434777762595881092339771712471020847021992225786383281204818390097257847870717145538747503982683126998404969560402543395741181995581966358888856240624645026419639777400689736046783717459288306514586740496249221052032768156311809873362233706431895573377621537381325228543904103085038527640149663893811707769932595959030884605920189220613133332885019851575292408416732617006905393027804129630848472513346846951331856927946411540246345548321177907232680407347019205879123656634837339445718256024313891849856419214699918728312526973448414069272344795874891210172561698192807493118277850134331883886697275035641882141023672222225564182598786722406891580072911574913777910650329164164749516615995653792678260151640260043970828320000000431270746879256715260545844018700291109651026250581527709357715344608765714425895243406853357865944664217570748276068602498220655737417929204431945310135604257495171646618889278220484277719625307284136970006841611064863312184207793731946176623116097556132774539464920999859099580076240508675948436374960557000021686422717643425664752656313774942850543170455080334750996036316858293928714642035072369721384245169970386122580787639667436150904944145230285838653486195735249944827778506345280056660089448398877531269604166853985486273889142077486796672151135662451269762253975031588440215594810231930747770117470938288885361915382870681847605231262964368363343956998130046183827183244528731671208460133363124310822197389347362092838228770709518963832598830379721392727760872417038168873100587781792973483847669376377185161164169944075662096322279202383763409001117063134145576956305293696031666963078155513060232353874628657734430297783099539363010184198150725835300410898747040582015555965377536752350367945763862877786061453126462243534561515795651219578683124397234597467228150108566185949164735989464984709907129530157520014962922701059536236714589237735702362934042968688145174113164021209412353934504946472867525366716599825223762591341323499887512739948833480106236924803520240005024345129256583941480484508393793548257581527986795464904707465646857474137751934223404742970288539839412157720237315513139282372464565027601609215302602084462539771253687071722489678510300768699258462682398754706467422607120913944153721568891328328582790465847160280525667075939956147599847462483584514518175255293305591820045625729759565808876712044731900536457644980183239226387472794235460936929882532289307979530180439618302894374828104334673095460949563481998527489700235338857390963418595790064332449489697157287288602285607509277415013581383147744377977666446187489344701400759159843783598273142286844191964387115630263077417683947882066957678775821325779864186594435500572611406570014358427841607326151974775173588370076250567953220094901312777704663361182627432794576665727231693409781992685017026866333647452406157350148666797261432392620450973408571558180424578077374145310079221638805177371917810496777785439883301457870484176747043958539606783993554816094483230851593745349445103177923618754461510949796072696878247672205534638620219277246143703650789414876221066950006298721623146619359122635936512991810044320486094042141369549847764668725659089878206391742272290228670237200640513276156799404572353867760565110697012670254776962673811857619016342643749825032169085543235781488902070179543212963173443276902498462036584340959095071373499894800643609082830216603309715269793281253407268537563348073748310991563474726714587729674746722644922302266548083113917578930779542445953801831201099966988445305619878882725660911586939810344629396124545048941159395007100694827325776154436509453322725380264560677811705889752627358033768286783632305245655576988921937949645280640682352189264855371862624041010754836994306459853346314128332391767662570206503044290921715889905256583382896409931263955334002536380416931735736256390204375743654411549026733634872667439202920264808066953392083636028558240945644416644896509638060590195355794529436605262089875566368894633927073871892034590607480593200309293525912127861164824456597109859556246156644693961297219442429876047778430151426104581015343807315525551864560133412138859511588064785909945158713331172129254562882703857722671638994570738803331931345587535471039908158406449050662102935156267699711251677597035207267240814772611668840353825648166525085924866355568972133974922642288436799039768047519307225775804259716735558311292654985786970671307793549530690971241305964912576170186195847978870716055615402219247832778144261595266100242007167105814266448534076022826250333089481482790370233440061870281234102778677018887565167803607128580968258710183859199808871440471897333652152911460548753949976037348422091831825689220821220631091634371088281552340876227066798796262520482853711997965314466020700698868734958441219685633275213934887666265322324520120368568455409103264863746265056863810126754717312130868642686203217738823790908230517680728573490054024470323782309870206923964108780158451125025356692776807281240177326953787194860203903974191583233343575938316596656480367878645687068663513180327482303085890586587333713163619982372862550482938388653284543308365309430815166405015698334630192409129984837860248149893892401533738202751140863927392414949083704226418208055690004198627966089641842506562331231524534462983706687148342616374107766270484767747420043575001351124256794210662773099938235713438197904727638125660080493372940198580651710151058065273708734118585777405069264522081119076267233972829649430011299365978266344789384135054924317330211565875679455496261034183023252281274374865952875267883341256640383028333317354970960158455518155696797017576071244309297708859649375005463522160406726444917673506681166575457466628444457201403331227339126623456060811946514307740621355462818920186655134573306871005992568308672359833619992657451936022678966771633138656453437308960975767873493857807185744236247244709037659955773713382566494018937857403611545236660180879274407441246325371097579104945480006996955130492469478303619628149395740426590957367154534325104175657403377648238737659537260903169533518105604270757254162973737619860581429334582415211976647517306752853479218840561241252441410193801590395006176208826077410276931388857319379300827271416869171417878799539257080965306797092337831217028672503837468084348442989338008877673642601676238726277010787188354284067492800745916034212240571792883823114279796721329329792115543021630573908856013925059280812459605987744751413707324264044933361014589990529844123219543569103983431885540529995275473269402038137046644174394819129961950070728727735404331879070630283171180379412681866435351203584366202110179729098121781537832816253991257850181633098962683809885756230709979223552074947860040408356297870412251472924197055533278516685337140762195313629831809461515107260672770918342713538209593663972268472244864332906724149657337685315340298444306217878123354226907859865511855405114495321707613861777401936046943011460815183102668456588577068657163681615729617838578393463047949838487428994080601157539767458478669172557205438702750784639066987751736375832430808334786701504346501636061589269550404641987160430553543437250224755060483425657524990629204207465161859378391533601170987980583423115498302012312764570819978226827465056960359917000530351929682862058025149141259967483278164726649466660354620093108814597291982011685895991121852137745206469685481249491591780130365752312244848766650452502848052928966347481326085039042752128295050306490406023160813709956563108636052028868394689761456163977869752927323199811532688655338269478292339326730027755843625008506461840339463191913102748556388186846087538734161201338277650015536046133969001668977997895738791567505613295400313874724916099109205234392545955772489999558436928137203840065063653677263805623518541940516734025915142531102804301059252723134491745058734182043964281921093456105418130694082583405279844336523700203255304992858440816264911414680364251699037400331346029690633526753067376824789741630084149832925689279268387081531193584589365343029134579608282083410324034344718685122914817053818059029027262322537273950384142014875703913248654097378217972491202651562716353324642714667928492790938414509588638122759177202402716968359224413869384540433501052661291697550070108017384507690818210607991067967375866461943432499321322344567767618245138952614280426901794466438396675800785796032545116910719300225626210593980965613448182657620483380710291404342090182032491780687363039172249619377271748430539291164804945904541239039575574823521072797304483663730939639501745293068720918623067872200150954137870967125766829915896358049549111395249794678386590843518420172681609128937157532449460418158452379427237550903755600886903826213742722702457923691044895119488558515691883222644097445814508647503751354560445042740472043357977385903901546519997839304115062925614215956772270811213370093598932858950478883518402407077715338701228281455795065250276812364773129156831594334919185960392183529105709746931099949115876566956921299894841267964410373867794225773945211937714068480760567705736893288512499708731691745630742687778682967484164859765188955610947222338392005655247971396964320472658340366821117220487271158684971647832279046664403228974368627931892743397713644770049898031801820706044187255122632243273491704372167181315564410548518360140434259946258229633060999227463974161205576654306438072297260525311768440042589511698084799882614036206655738498676356775587332384000752483786785519287436978276138703552681407763381739450543036190276234727889841025955335713762861813534105291068596895677841391976362640320886699443540106249992679680788803121236271143242925326115992141975148461367621597678078956859216370161761631337822483313702811984209827285927333958232147375569785917353223989853598688189914020433007987842187528184969807704831373169235866683700413019618708395482825808682858947999812421388595566690396480371521459946895332898613306901429389198136068837117906132934697525187213571392020506472634821406479956669761343482985273970678696271050372382424639578706592842197312872321525636594946337578716426251559600097582930325300356981405115809824721418582874938783612306900568316212039338318119274060443849706714060337501359363623747458791088022220240911930133150483571925599416087063253127671931413947238357540372089710157770534938907981443834958037142122627025302669170774691989895687455277815605975391934067685526126908188938200190870309479407360244858176361293115387359451447212051869599005669463153277292697802247134606670525950836753914605112989762360617872630660122225648438854589512417763542981035390686253231332066737588703019345805255130417860477449471023507664543524625843226428463875039386114477567478591979937044258870563582663089985152946119080379098167295737335156880976688630721386828886130568630868764757983171264172362213502901849614060245311753332742639302808219430329978931353048261077156541552088403167948476608330003083257179141432344262500939172418964801929889391975356569359281028505899686511471375977731509557759080267752055565707594104528812005178233473452832568862669881230576964097892451372792650656357551864077586822589182675595581589124218063922407142697262900294690435240318615705334924457909575429116105238365919702772790643422201756721487516742407287114023989487352389099483591429601149846500501873682110909329098291370088571267267219788720284783631547181589893660833107048099303717908549127956939442042547511535807866136958891132897521133696658255117907565435145707737452340505102915764600048865796807606180531154816576616087607540086659910823451037229433169304193151999138667926185854807591705257623074900161089453055959917764500258694971631614102019676679609664611045019983910545154267245175235250705598842488071160199313867308549136426892567911871755344759215521885818585118160138636645980838028275903303692902154600682162965916819935066143944886644076666655803834684771564611705302261795088336524111398362299632577977593023199514081930611021669828788976056988484625036436892591758068295507548916975650727436639326085855759578845057195169910593889240792657751392243595136395346932981649407006431980464377045540717795120836194144394525948042046435675251159083344275949991833637728290920229854627066347491371468224276236017841598397248063253525554879952505284710209834470276680782054607443196490046487429669644946416345925189027412142725821260257920822830828334700692285908201675070205795995151578105298854918844106462119123314640014393630465699448397373886876452765204259200226258904443647045055400612362114836118865020218717791846881951513371225588316280618354104054026572606161182099463867518100312424658611769877594077591759249707494009409476625187158270149584699078767820776665715081993951798703292297754524485282679395135747876472111057317183594783364681272990089234485121782121491138919894160303951173739510316891314395670763725333526147136251310827718795583785534176684261186910694941241582598922858040925669023508458935299647774145221507939100567086521312123200531992346383966239227275551343967211965379837404440421978214291963020540908329925867498306162450012619713368800802159650894110391029665249524748272247512415909784850807954712201840348408491002015290720844710244564041839095158286433674205666693353721171519703211125446783666569711034786033317362674684700166364540126116033855001513301355673358719576448819424127167456865157162589455586211933236432514456024579878818555963689280778746562505835719367295643367942228326278187921884146812686847450253861500367093250942968283334451724835924697714187069407237613963332631182551780996895798812453378882217625938989675277612952389487700844035627522641125120262993640561118183446860500703478022979521253706373445396218412458001202816855479912444119237827891691256361162920896391639269873149070539938401367507190641806603187454106067982757939426916532030089968517624622781699997968285148924728738530801678963610339563236239445278415154658528003355199421754147592148031471556027812966040370667457606415526937775653809094952342836366675420552736470775467844763250861980388183046147612986291088798731137254577320484442009445355124181877432880188050082771224397137048865859218637920791728995632319519965399548908314771398792544207772410434671805353140757369925157042358906699103110407725504486353660623251442102738637925261986767241970408170703837458415597917037722703629806980042436152404131462983781723240128565503272053136647624654529830155863996362567253819770107443849196209780881637213896068244288858016308585461979090203740985982099393986629802912360221645378437534253562010256152302312945302111487934400149594565305586705975720348774905481754311979870469565745110318735484738050487650015884718271311020091474084109519209928694153715172365084682331781711179435957113660711854576454162779014811413549202442795699666061578306712254014931627220686329393473408625006240926685931052618911798517841075369666593226816126437791124422812182003977643143707894591061802884764495921255953389120495766150959850188081282646250500553823170189035996084585982059939814706041701239637415765327280169527852274438874727635746435225681567850265410817235600322056902282623957701334125854174205876442577995437714888355766407244958186127387446281306920755062069079103937423099688508192670332076021975768271237295482885432064741098842118211490876360389696578749740566360592645101179850797830524094686409433408250841347362847017330414113609635433806243109274561784488694077694941011016666814395698363954476988938592907556878409550309475096424303396800820053333158605918669880722346280950142945339351935561441152813741875918861524376808109956040154664412536931482997164159583977338491306900939351000927895865560200559691802710626563069768647988302266871718162851631170330734110278037977993423581581553352936784637159890286860075865412459875203879481715544810215164427260368093940299569305432811614550543924924434081254318555778043510857271037698226725020101830503407349228673375601213152715898739421788134549417434247058474631121676072924703243474506812998374546102998426649022373755008389912516100065297606372301549989827938194521613277068031031656212202165545279682566773496418099787954083117507614336672069286935529903036094734277728369559551449513825696857903100369461703557683655075261274358573548106383638085242662584590323326523481863921266192324063940303480480324433016415831496892045351730441344858231114145886562974528997078589787288857555459976186890877693443629635763643762314427069589391927503849910907290356848585352289958990836661665865828818903200284988374533262823814885181774749063675729497883650226777361760647376516575034346887839584574582626524440823782387703294438055588666824483230899148586207291313708474769757286050141190574158317967083968636391113376628358895641529805142194829913561986207494656439322652672575622714805065387341351077268571842387980077827893643411997499312417263590598189780868964016491189201210666828168276459838748043996782596490391604389341471218090911631141134987405704429348437456596029758901703643778487159522509839252303397332822639309083444213147429134397940884696859367582079233517916108700206739202287374651051591958017548494180685902359584057549126009543337831373988628197637814895240246362341417615604787769549196627774497776794300397360207172290848644814686628560751293814844868338663528050125424763389506891929169250699810704870212755319482415102642317947335161048030073963598258167411928968283525387274661418107266736547013771404634731476354861341834670425704990089401574283741517427770576355022660956868703890709681401920811703428617492597538037134982400850115630892494300735811178285765236150707770195200136224331704887564494082233383395626459087944977631688799383585433453373576579586710538491274024946986097028427506832297689131802663888959742584463326456908425436452747421491488497092547228014518736007111274730711547039111201251341483297005420340265267869256235189646277319250193893653576391127464739461135265977307371042097630875944367801684935489437883415525613470193069554900650316899262145838259757892277052850397466365464951413346036078512417628522498033869341903880509589976047992834254867346628178322639743176931293619228524797943959497931840549777319166742783639270296737330394018482110121521034847456310323862113497909362882204787805840388029958416083183732086441878843608101204409278306345236924934747892604338818734474484777374740691779348462430052102009185010668766430972358343893977906289045066019832420180625246809949445353864368526218077678274549041239774343746263656036051690682910577329614914288667129549122909182494974217533145239510068811754346103009582711976046678687038157279051048161371672778099328965265757792513495757622957887541670218331349942753669915239415918482694361360968949325647558812548084240071357665031614193153626656284435905774242470713404545701179955228569946346868914163889407165569685012268950084271593675681400613918038430845556566434973561645634860888585530984220865439164976150239242225332361454082034622608116323650672135132118460846846830021260146181223067233665785693849422368845761339729702033588236319964574008050176783496146468290148979951592470094230681248535276423836911560342673476467960200261041418874735972786728097359406068954663713522789270364176487063471246179708808541429786496538625864761313718754172122230352024624842888875071860923210438344143690394583128688086355184882492441384043787948008088875059972000985636323028201812214872553403531937430934061751178186180152718710368357493999503435549248013894184526946730154460013024774939932998008266188620909884270492910181712270334551261516798705270795719338681220361712574545376090423976268618732924342682744866662683910693851453980337133253552579103333946692895044117194964423791562716502492726915282789276364530588794152739061775880533092691977623306010467123207102007262521982523429653296850032601940868369426309216912975868949531536756201798443906894909988378718439644820673023503620240189584922899739100076652382482704744530769737102771035459919541354192433696931567272655831307075130079344892619221972629284243903722853805946395291951871773302976777443619200996558825204759388619940839780214452754609203854422550680293174090470009309692597101324343166340098795035814012876103904748156777609762551176663487825865070568090110007483020071850131326426918594874064242801024087833016312053862284421564609872439112195685587775627852294834368911675949356860470325392519016335699676679604509361170401742895549311098827464494962096450645095020831643261215832052139488219542145754020216342046390227568662178834112200693235457405622160785883286615368017569266075976273174294249331471061562856318095507317659204747731257046328589510295843287758360549495927242223499285634518457086674962022934107530222380915051322508818340749157948515025896826586596230396550370146314511516862545799471708367377780615410007729399412133203808832474879566562856070996182125784170683540711959111943071072531776072155936909133463022182175623198854446325226911732345040898912595216085492608257455066908862916356181649031150151502008499615163076415036577305611978275893280689589690545778215190319718625420112019994588045567704792724564033946835922155044218219050120935732328679910768455217458931194746282676854512938980362448129798851946233412539887487978492611890320219636725759897562368139630991480277710581676529499881574905199538513898233907305421053797622130500818186621194619077553167863692126666794640516914771159205159073171613684415783612561522273246264568557359044555030195602452480704151231432604198626839105438658275422373796997490760142535102773665822276502401705431502635652657686317870295037361159067237801666711959295773992490684586205894014754786452578132903032194821471849170109356533638243960681530746887914489016896126001848191982094195645601886047834781199662352087960957077103697995729775690765761559888469645181452907243084571042636622755609131150614845193347932227492537745376998607356575277078976439174540276609617817665700018558992503296231163282823914004858316628941961645655046672064319709444884686895188698689640813835109330674065027474440020210492184965033011973777124076290394320352374487467790755032876372661909597401259071686733741003400160252892780185200277638932249547450283565246348280161161210667611254248875331002674374151954973868277048425842539923948096522282509561537973394009071302241072693973389741687292210797118220740255130226282996026773325891636351770761425359192212427904008542429588612109447857369155614673409816087230749856696629367859669573580850441331956815612847114380190910032215599848866003476729059029738784663178741956373994943116375790353055881447919277183591683802953710639591061997553735071747620207840443219765521431092754481732569414167156649187579946405727538895654078049603520907035583832218436376613689143460747755135346929062022103734303043350707315644631649245868999878695732056974889338982324529606517347369995994301163057518257827634140352842149485518334788770632853740469717842825604539047781108055800276621494286841444526135519715515610272619616889881143818646471801195791871097366010846621001933028575975772543318220885701694846251178503542886526829774328831955961525863297637510412207953740311709511850400774757721130345134880888712935630649466793070639595471724773464387499875728735434946103106736173390819701154079525733125545918362698900040870585847969576974771220223094493032325807902906618128320112106163106777079276483525842523357795354174733907632762444602357345913086029214327568345883259466527622312974232679766535088444456378410198174892717686672092397831578016354622705614295394020696701053672331206316505081677648280340590796004147982180909370508820992332302197805237082840228189452376284026828717154564260231436947819576007198348352346233517569884716795491435496749658954975985420206068904484455384222511288451353228790809609467179098709534391923144102960347964229962483591638003241165198322853166499897984234282608121508551231355582394365142916864665721760322690066501391296506466812180043430457775022463277064720462915278133353232290182442095468790509079085347529343081737592712353555811349824943549850853196627255685982083941339093658266888754241986997198671380470205421750221235669181690511010995245573349328551729470935737235068329184381312065812425149189188004296447008814826130286759014470295229620162710349221545217267729797469910291346110304628255496733600057504973591543769618996885516387008839852242656311865078105385911837505229015307353919465736949236764645720975239876603189644618012547505619859888633877859063936457065118167902805423752375992453215082462818128854400442586886416825123696018861721686633197880108146273818504143846803604399296320255970488372569343666861623220665979081052846306256172992333080027769697730089139438337286065706073254166401847954094691838460170691661749387181815777930534854271264475967763406644650985683738861253665386281347978865549466948466815326321013459233415998079211570815608779926585905708947030482177465374299562837051686344594488326867195381566317420725153352676647046548984298879138714056281507756026313864346759345171146031871568609010294135871969017353969191024782845175450629031720516480604558555757144365359564520696318648097137728344443249701485731883155003183744905887340239546106481996912685177775879807051905593043845599808018155128822747168862051846998897171897019320325643371227759299502141010896314413010707162107040412098889377619762565274488217562110580224763482770258755583228298393435269419920980316603916274185210888582221907854798064678579952164551650005251956886198390333472676461761081310172405259479431979314296932404127596091488144630806565373102903079080653231514272081660600488096320666489853298975868424684459699508862622367651209078392522602018974481418084649721227845861677494026164943490391517929501052296612006925608691672947687222199186549262023880570489504242345887026418471998774080402403024437993176531698586952166902567600967536554386796976432833035062168852656407207046811369509930916960696364775485181670730262882447998292715356029991588137315220985302673878490438347354030604267425105329864389859787694031114971560871944090577505918445461118845985763771733967425829920825019447117363582997088875888234208460547334731103234330925856121369211313817191670080275214411951309197148141058316730543230113870943709391192330576920303219687453968293119671722266855419925478573822591561211228667569985107587079472089608821564573391806867158682725821334503894447403067490056339930776266938383656188134459247910480387885689922058333087464368843767656687150968700913099628280639144132383490630492934447108608818613103210167823689981799518619411395408810821626350838118950223012371666638167168173400699903096535161095513378425048459267151920142783616335276805832593674597463553088850407729671506873873550709889496889287788780564481273194940564429230618051830234319742305243211566572498955263254971037340733961552199466355022381824183777054573321364498014522783848674989476452498197488489134055789009193179244614303439508339317523889506605245496137687641122835755135597792118791729204180265532804675695908417681808248277667774630698648794331183781459902873868262229259035828292291064504477570442287675975619336653356062801712217314614332830096274964133154237988347161534882155757986893982738196277463722542936799750247175307109094981263263140167002917790062473526575426121663639823655410104671451412657235069334281906095007324160315910418980175983080537156129621223971720783160575361911272722816040895764894557313825661080879806863264812921168331069197856923252521006525587757301701258902104813931011275672508736771854252220509738977919715570601189425363976593587062560588941658648906185445720077235912943057177436336280885278453536764928104613662779834557221549081453879472297956264187234244792325692360140940635379209360763749841981069625266790277863381983244880786928635643154660830634307522536976237480576409412187107804070107177932866945565289016219167447599824077205639846940581208026875073117080402586749435741535899517699779986466406846515764559109013187544247015395389547643203283873513633079934816967248524642608018321420790505597195631314742332692839761768362469797165410394602468051817984936658873737971657311994951894140743867599567931486617169519021361241271336207001097425541041300588302558129536843993573800534223208555534109012960980613746406055576031038312944180267645149083991147300007857082726679773372114493854461870920151785132406914660570488412230219582009624989452467744047584267744138675816945407389879252376393589733998609212121046510644090115978865523265407012713220473862056934633631525659989064446578041995442666138437148240998918486421525267011508728428208302051961358478544334112784684950244328578299465801394489586242953583899483753002173071255595744780158374067533599855651972575714670950899098737326714438058285741077509663356126329959650111552314250520960631105766117730872955766695681615472689048822651045591864312553840213209241612093913543545502437485873463002092085099691100652635222161302936871186212635402338082405353640002715245176014257767289669847397919658267437941661036718762658940727285128668167908011362490277898460771376414471802733988231020550022731778128267299776848650645212639658363576330987296909909381646720711490965683250700645586149876214655946686712705588326163232154778933974005151233114937868909994438688812522843354936798160687648131649890841707169445222590380427208545103899653115722881258549271737548746793913203556489892873676859232016557700125000211253718971920363963602719965786607932054067296133845885898631539150236538815989334590605589355909210588048408776062832682930525416357191320765078256000694003147894734846901864794064682355881579884050106347423533269648389473529033124046714961791371389550054654978801889355014404219191656405178209243524083452198970037803479223566829323191138618413366527830679657942242440178357439083853299782788071592474222039195802000403120507706094882954023834584363146610596194539914344156618128452020124624652728495209310081295464921997188810222611565863319977822279666009436388915062194243458992696784636455201924775458066533293817269590139130928862788392076040243628218063991658989420651810312525752451967123558024265905651452313604325532156384497997000155127089207028879460865548941927862508896471685153372277166200079207262329997611454142112170922338560639472305385589508484447351975471571197618359368189760867971659358953359721223076007994875177272427562867150524874707687938472946801527676287784922566991202972464138224548062190245199240413203150324209298772492121552935757268889540071374062467338925928168010949852252098461983667830559134174526178463919103693422804832104569384059715843714499603444040273224135895014653348436496110686050964192756047047784047658763501513999400891223357556857104606540370761642956777856633728260121221070014648736684867983562351111116888685483407467879942975922433760819710775440980139756952106062650838779115457541283764762620283951802223321435442704738896812854562153470832439026614489615773102269164263747971240389045043896247636780769115083412606988802677704414326269594326933619360250475502678521330379900053711302399484548701201225893657317006545033477427768565670807766216524419894014662869453085538708757252712593173232414023833051183287387029416440000575808207018930262688591159439102467671466241903950531203090557618146649551163016080504469239977999986075919089340744173716084595104753649837334381345779524568346173303347083289108240164479227223611685214186768334500011252129634583109023843963494822560151445004213751496365879059350051537670044535894855716378013307617428049890663374990951511517684429206669464890952815370424219940753728666344445873563478854170151456237444413459513880246470508440604602732669604877549404717567663424196187028681092358787980965728421612155664941818974661248034215999555141440929110386586741310972342739563307015903804803271189852696749017547716648906648574075825818696901831827608580125097728027348153530350369224035347331689058144002913717070937121381409412666039307867366503768176627494869683178794854898654788964167769260081465401574808174078062769794734661050261403514794988570110041029926306272438554944655813924790373616661661198703245530510370870485472819641412965284622039064307666258108188428775176558822663473856844548475532675135668528470423696744212260801447713684729316354006854301868849140481529612982135608030543617189465076361332417688750853245127548907175866850806103298857003949789134108469252943357521600237539829067568612165704214251375618958471233290064370598941056109084634218693245739631398299579273975391030624826835031589637070417812545161480132815594545785075294315739998223926355248234766173929800199945133576463174352848760040804298529612503466730738469499564769684631563008006113758677050359784425112583270874521472794126387924182302246521204333247294828391386690636892150114590409544785504654107136239226225385586905861695297647210799484005967797788056724897901282481613590061868787569190658339901304208182142070627574936565420839639200491752997787950419451140718014861209892379666829469434002332531154043392381518298783670062623744384745401877416178128788754663221105197271067984110430685732646793843316364833115796640590332747186322398376746208378823026937259439499499119369033792672696541263090327530684824906579934372653219695741939916982404386430031619021043587781249229964575151590063347573800642235418327209196047090579589084233523288710609765348171457282651671711992505516586492918707792337341349988364539563619556580483691104260315158605969488243111403891068715109712816936170914326137500442734483708834188812201996630035130506931617813174409423127406409320941010887697917263455304544691015669320189244398989533707803431067162523111777457211586852381553018602649068015645634113859902316364109726789738128497295345838475195749654313194056134822601695855716222963612468457355446072766574174065698213042549633396836059005737358660253195826138457835399526735025525059125882231194191769781870760037296385759667303757634859038281724795561565574759296062262650952225201301553373867441787018463272175836886444104145847273068073979525330052845642161847605783247894098076605121596814608390934608702690720919299522344919295913693199525895925309996999855070007729030416905173122644412982751769723729227945312400344557443373968653918351886318925491173379370214081497211140080177488181727774392081293311922361614345875190772024212762093488749948420235310973449275345161502788945642356017013944932307805503195048535376733883877107129407379817412761578202030675405103099368487470644257210689155150917187024520737570097172250029815665927123126989805643853264621466389383115099925339968865272988114522442738252202245463077271765174156918754639947277888020816134774465410631333783751931859623024532796320707237558905566127950258100994326610406271597496071889167427252304231680601350462228197962964676118211102292508146795918442875996667209594761621783630034796080096717328952810883824036276850580280566741066629384036433235909185807935368787035177238743314215643765363976159819977667058417709958750045655812453850427593548315746006127122685000755774955051301000768877130032050671787622422731369162860214075044991388719537739691322459651889178148200220475740090466117025437525281879071457256632018032282370691513034383267902743191983904805888714047774814750803649541468316021994940481771825273332400564567561021280875415700479551722728430621068664159967784778347807464242625187061127784179521355549520019419245949239829802595853806663192717628221474973875384704927300189808240031442543931177427510278123828593544730880987792907882573738345623152826529842134560132824324847309003940135285391324922219878349814866958826013962866282864794258193153861991757279298065535940140108996349150581950544481749219678238730884323914931752445402383992129811798371293038272727647523823161539595507633113157928830605957851201701172998562023587886769437617875911021527422007629972370275919698057779946997508460294102316222091806680193996835143953682388893345468740335895937388178202290657905448816795848475812368849900788065564501425966276032821722247693078578958191726553779353220306227348666558187266551888498397299274322732030192600159632266018528209655046246201367153579623785405406635447498994619415952332748472746856924973188586228708470801328584767529703583943715913628652144884654272894368069707379507369739974829532845312257215452939508153495549425381232511188056825230704095792218817499881133063870500985632470654574639498911240079023880735693723804372349154973718629431650716687552023008687557491244777853336840011062041941176523824814404794396214915184436636315911896561760387696281413659900626094337969620767058022080011822177317545184532796877147452507366902274267388494315411902253707022979788109725596323502426188389590875294315276272246716302812666869591931822237506325244273947761812764924382028429207680916410184876362672870761733038248255780620870121004408186379674358181806814313584207561675680612693835740212356005325627028142809622413621433257947485397283882794927083131480079323355099159276408893396942488787154330791860674061380375737751035618233789220902507053731317503174579327773024357464997000142789341497305997674099278817737450285030844692801643912680970643374354157423900834094666683943203077195671455770912763888239790724513031143134301823695684553809807248915504280970335975686263865123708300852045312234034713303306734812220076040539966456135992421056527150479263420157924301525175181091215091093248278598110865540521673914139870247079357514705296514451331282709655797733421380995343623165281888746566718397575139844132661096906597231469691563496280055131848897248071228551744295762034719492997096120919009182054166948844374501067136170652601384174823285377811865291604455086055369506342462287586448395346060407766414792605230471202003477878287156306301555176266741255166492048023034784320958550962329379726876239388168484352536552829681716397395592318405018407781741138497656269762579022979440058931385472374527896656158385863551368065682212341764358714623673687531044813151274207745590814186905238578687474138338389230010201306657091888770779857629863173832565704144805762469996988387495341564578444104046116668948357923090526582352103741736544847118830590068809661075646449962664946615053126337839944242110546821140055233083136883134624237940704242584684296484349770017447913213597264242063704924240555938053125870813819353756852809134743873792167633273582762089687838886414611475576695107777258574145039377925332127886525307611486938184899752708457231591659120010828641903620364439981758411662124596854724108432163534939286018846360520657301895588016941509060501342555279688672281415444547042834947087706091787199341632403682992664200535855685336511547406290937872412541196649004316936340142121351660857298740421731144544749829881868516976033068918154614907326367239646987867203110338037833484583948919108975735968737791861447495566259678747456840155716486695188729248692717788711529021292729622345958783981267109867721490436611093104900818834753774795728302198598973277437336330664778998927665545363391189759441903544291333219726889721564125611996643713304032091713075275454174432744327496750060785518924854100243601047592020909487029867404695331817052808494953132383646520589854989953257218045342305409710379081214384984522343325141317658102260388796482529435900795229439374276861915712960108671961653146899109374315822238672460460395181185985853175826514097735156501680018340440286350527014631728187195550563534692364484924182321240759549033217857114377854933671168019276519541833267454529430844988876313777746247379510499956602826890654915574418316146192074655745684334189518774970814269599054161144492025406723480835630462128822487044334956444048475437820661764783829031433977058944621153261092126545636454470734435353722683925495029807446649973557802063508495588916954217324881963481557491908223329811069608938834792490904668396779364985945327437297720273668754200768515444314227878281454765531911516038097031557262163222841397784822498711741742395913768320684249526834956502415114164571229836927730781767839137653442673364350810701702144674377500621655192691932331190831897604389778317905839426626131615329145354491641481158983321497361304935465874186429877569371891606504142559026499906102344410749602344060267506433476123895420584353571475617522376046955065249118677136569773585083857193056684398141825903807372177015199532123379440333728556617176611606777006173404419363599427144572415555611614317337658029487249192191989018780582060240647245416129831894265102174881323836380281746575910643722372191161307706954353895298876722142854071473899665530977022208375039248548478028236950290257793851943227427739902677684458795698408008938545349869498016594898756842954946077790930941108198164833806394484308035399718491804379213625040341984991367662673552636676929062975399345377060002652407518965670793859073112274333870487931755554142704569152641712546127446012407922929260083953593573840947052492723925551800295119078382877683892338219629830086760094326107638633626273566024600839606963635626204816366624246765989425466325029121133518158497016062386802369106893306512329260009029630601839368200161779794479715752506490670287916719856343504039639886380700863130458629456515684053962816136091770919104836000803527204111486984121010538317578420947544269982010126897244071960569340466121195781775159969790360803400167013025561270135798956421855046971153405152687073597798746492353287127680275410205895656490100186184319623313392673979017537583363042567811317360303806775375199079398029685230241931392058969652521362238943167684494864033219049351067052500689431814583468951796218244218681500254577598454160562318209068646584065207367243993681911783601027722366811324039672560607325058403801462488676521152573197797821484639500891257641026037150904753649711881317371712858397779410867684292378994062356621598654752030560210941060827871448165712747329414207659568401038005214201407980451329317975765406626910020307951718458453568962317877370265348995620704203164432703511292613149691299535875688142627155653670188954549558634335484270475787096863300542106859037542382338121435152313997849019894298219784620499970776817955906112839046951482786028145937950231357242772262475486529512499705611667792835512108244308624287871499743452587929902416886757057673410838525301433379958944756430335604944265628465789578042788151897150044396189414571591475576640915900447683340053854519992289786122154932321809891924801283690910416193766550867627145131599484216378511293316761048824556639076528449392576750442457751139093780078422541358828603849236625096621928831755283751350219516548039102936624041702417971733867307258090924897117019171105058466042694022231986086661979881212123481996968843426616415755303336465313344606600500205995655294800804542872926514257054295337888845387595446666802306415604268741051349983620456854881746565465171372357923453736651441578156787795806340925122728146422339282125914141278958052768184495003810699038498411184007330293051189075368451321859780890414095592667326644798445586699009080733114278048606550582496871993780266191759264458822653062879114369219410354388622091898577385922767120996827816405296977464871309961419407460098493154594788321751714724096450436760154123510530133729306022960960815035639989431900349948825059744681125958522805075294642935008465296134548639022271233824471281249031045970957206480555021624833205188707043570057406741526558738920696279639192944789998076791168572674393929481010248568200157842586770947850297417797194220650758339415496970793599645777818704075314110990650068659570602281665528084619822790601660482796194575559363911886554914828246601312154861064651560828962152073605593183785362794632225524039575019233970835645168098832354659263942696237024605666249546645991248366165438696147478433236330710424878338612633015917410455263645297323598842712634816106772649571261364926106247050182437785209093288888589558662612811222922914993441422758783992065519169841852554768057623564708446020846342717183764107110799056513135391091359485415076220746598813171093134350860595874077528252512406057025575132676149656084053098912211132565649412146289331033984785558277433303111847660480180733607885056548529931503013848485094895101018052319444831334469710760248355653729970167503713182298628210063151011782538891726186173523603370999187228381632160197465965906780923272823276071161561574799814438448210306449267222906554357697895226708727496261085081448420874549258252183900652756021930192059633250208178504232427544381461268855690756433674429542926995902247581038398226782639750949094362437243979331339061105846063916502059108541161732048552227367353470978093092587160173709766998017706857406892141111858047325065287382604354561197429607428633482977337350663443743715133314056345214016904198112493945366346640276123533478761329976294964159067542937403009223111684497937477769614630202943579474929305968233786119375574690923826707092044536601336109884929056281326770878453230304328687650883136126202203257403789341792286260069901777799588469006768116385082593461517104618285535895011536200377845718538395207995335769153597787490648989446322809669580409316267331513459246276493524161453341198427079950861582116378671981552956208192948644940238421402337893983720246326763127350497621748155012571145099203321788923259709275149455861384906177534207272947546835355389041505885120002562991734934368485173325034188057153496392626078754313163790750926889151763721804604572167681503695322404213413873549802810429668097759611400579073436436448416174922435156294791154659867770956962060522142041042603618532450049886882582230266544448018537558047535223679397904005928818374332460313809608682869514241235622129602190992686574667316554594164608836294545842849721319814244825153085821133827689954314229258406644371579425044927059334380486658100040639499352790050786460392701682821826643444636888775499546555540564294910458069060956971736943867788597042805377676865591933432643406669291739624614163582550029686990098058639292147001788352211258704851331454287849202289770346549454601980868597727829111210398631745507856119065666859641823117419913420203311814696514104860683498467734922092444137042002566287042567792659818700346885344621830191880387089222930901485600977810639172730595576682034701493708131330419323015495990487625484478919476883508714278115691468658050187115604416816937573541158022872717538056417799271259831203670119565075062855569222407359065492964240202902613101899515449625564628324764133209917065923203962422491516619024867215686207715516210310524530301217220367577799796100764750147719597914129514680575119594302139924565720874137452778100072631834890455367003632759268667100632538826398437282552413973121486454421572702534887478327679273192199840667381132962180857093196480810940625486924813112219149799977660878875694851418409588764666106497589945618758194539320341045386406637970619248837329019568114869619973135968942684241748246484113899917368134994046978781211348047019694433869947637412502645002909673937769886883722517374820856779930507296980051077728356749983059838696140653283268893778027146962925319986124938618084894788447878448504512376343028207618087695949389650426957030811795636329728203468419841418131228112213714783005367923427151392140559550515432169353450426874909723767738455968860925685635680288937640336091433113925441777225197295724643695894984830676342304409368155322860895333748781811898120844828468703503158801072254161380981434782022482082073906157616679820038309726759841935659326799250075668590250309995865926531432731413420140873618924870173274558527582305076653631542704356063489301171226064011928937538519133269008032360661036416380781203972629340841116846434970866672433070526666884877968316270358549636335424255256961540492759521196729510840115720252345952562911558647386061071822589552745989147382963559487669577894836926402335922909762412948083715154178851137497413899705674139232434263249896891970606616805736103799270647267036704635140566312632427380272788469136840555163819943872486749528924933452368356140626108685752682021033448150017918791485812031374337187097972079597085791024925637280616286347162564695717631952372364811720408525426912438559066145218848243485050156132555268557975596650556519637410359337230165854194284880342763837162279823483004197264269181271517427467286777377067584863304193825685889771909837188059040053838899354969364063023328641957714318389626962738072333440353353209545650202552840416105229910359401676946821684242777502813256796521603033082978712185037780335014545424330828223928047880924782172707081255001515734146342275320159715261704438107659120409823232566464653298784299721648984599118442021518624140199302350428028024443708474007748627572927770583832227391798194628518664829229341582604348558588906253502685319235111352854038490770969720232614021073866430207214429745450641091423052771390262452907170779282793211715145102398338512610123178265564977622760172368815351676183784801525512429948911585871125477341967051272025008438429271389414716741586234121076921617523788913046395692858746083684790445272230333711350323068360193208887883917710860859850863793552305142676812981943011313522312697569567534180282320455031797466834665920609221348830064703266460833362513629049545911496606867171037409815549786935810670773630120153628532022385317374542142147728500587685319877250563435223328502876285583050200723581430723362781281213634193897740503305165070528240244521876136931890349520853560221379636405817144285626043047573597588289915320676539681688828178169193887789470645107679785898538472176569404397379956131268399148882764996942266952896648562016198917117991162638913860411110469163261233458769632268591062406391615525472777736683634507217771702956629261054181609421171418891200754921241840945558354994475993606784839043324034940839965492035886354364052807311974974458137911217035724226856969825272668483582949727983692992868889019181327265107137437655234383644754584998932070333783767803314852010346715367115017024208971753374806601299132169454748368107163849942285593029092676820495645397302907726265115948666497002829188170458398174261193320184308249287222538320130105175229781619403215555761193023750412052418478860777374781476734481572224244948091508346283743399571144121956439735169916223948668869764641820610502843066112710859349652440548741571649662392225352078208719189438124030341143929444990934423360770852500136251378747802461038951376190304049362809696416072404067797156681261792323210912886733789915929691407156982773491664736874836078248651491155101373380840787219450413400756673835960481987712282909513477945000204574180222897134207375406821427545573782283550693204894672617033793709579306057290741589277161900359596592483300473804346906770924851489309322559737088753667815581913556355392092569786967932320026721883671084461188904183380052491230196034048833674524653929517196502162915744319736089047253550928405245553261463348344818340582669463990334796164383314787769254120117303173183941361863313295573248269100612964719328523808500355432808138696902683994355775370414255643592958154341850306654312972517738103264609504353205497602035613435463205160990423136294705860384000081442997811948062477655015000821182852560243575369172824991464885127318846833570596887842229660889349724094770293160520540755433244552924232420957337988067863668289856587349959532043973275874374172166082214789999828695234833402940519644416685671602803046602568303642718167433832516473921434376303870158536312978255057654399958828910370425499557176038279718907373678395268041404125635576300997048801544382970027371509582668683950964598869930977317966251540745205203736634890528184650147772857224311017000227954651357885793689245928925984894876283889433588007131091341563205095092405213726948164902467744347930484284884870659668280783632905298864230121519291406880328629706983489581567613970162569901963408471803512292236476472009399842986960745615070326602976702769138592287707237445963294973868869100512306113336506781514058343688907671659739257524738998750993641095764453169598098089909091875721787690743549763358334269832934698560188005703811789352597546004400402072687029798351441261947161105014102366014102315918758399313188648355821896536414508931445782157901503762445449823237660633844589019164269396953828026202201244693991784030683219849945146348099354305974108845289080842736607666686506378300996818252528228107313254214940501230885859455177795051061667861200509931442291490579888814711860626360681075128705245808295369841046951912656752377622072361728533586838623061718500474289998081765064780753927687189943070557031541864141854383104056840558549102847470838540410245817078607502108272363718366795539982068906374908448787356025378466815687671840277075484843156112457670876877725275307648189594803046890741838980335970382361944329963300619162899825627504759319576045451125144091695100150689892174719479154924138977530037905484753927157854254293434231480885760849836875215576648331725582373053958607981864527949597251148087352805006688158218498625815555324046384119644441304232096131711984242863799977010400344028651259659712025923326548379163475549772022861749219137174379943239900831048258411463786055365096580446251534906622871332270085567783680563896854006152851743165285683325886909824151916139282413130867267536111593376433224306043427584939137976159292879285121997029490752644106796882453234695566162809222951737686729105321286201477139786304720044769089638319592834797393348935068158923129046650967141445615632115403246535678147479424590697676720572971810741686058808474965618479348387480308800613389857012520192003917573734520641042704670130029381408060593574306081794741974817583154909852947125712658368432305754959625012766492116730899674924659238326362261485652825610116333263351427559122926436179521761489772211311293840464855318998908648744074587760364480495314585089890702008103231763740549194352053233242179822088963043956663934955667268062699569031675735192305700682317158536329287525717359308594958131220882705614899699842814119311642522365222197099836559236595704676958634897718368099481822364202403407845367192750910592183292049603858976587883596484242780570588365898555626813416636112595179559646509315152907222053948715538561518811267089213130025482182435732531764251599124385682871663532568029324883406201024630660385609936294893145229403751553352789536415719279164619091595000260961858748410024286261063091213360640822481542557294167958590443971215082050302846573513861511438574711171700259864349866413698111568390358738936096438236306729139769218032131696644148822618959851933001271628386890268125868557133726316894130865471905178431975469980300490010499835991149786654554635038775652462462923461591929623630649674157598690248725980089881411857529994494147485592935561083325972709729362862363551532744660859348554411561509792320467251943775480857453379314461194956473057689533886692492849788212071457375062901989053369645992918941819284786429046452745214127608538652288356551403340208654096861961846937221406441675404091020294417677645867057353333382592422337003793301093325298954732221701174796344888758683921012156763313949420824891589150765026848629003210343477803951192432787283707016590838693979435172207683414258580339312266709899867678009150481106899424847224651468923103740174168977107564589888290503472955545520388363511244355612898376139320279635484702929030621895743302710956757640091464105453175772056334441876310145831934515698563059803103895019557226507430709346799302212755085097385467743465410964034425817564134237357720260027190014139561765605465138181112981674581692653418788183060325820702437952048111431417966668600743449706470896028458382978405985051505251768143334107665697091282507037697106793754596418463591727486986669977806464514822754196746977322757359381466135385323782346625447376255487609340938290581801802239330732982329216051929732421436152777563381435947090256394061068248570852296854101182538806940082338011657469989248534223149442686948672086609754026584317099761790477795041881046308025888412997012921411992441898131380791261812990610544594062254943419838998146709416147357002080504396170336377692531239901487729796666359607279431043956278142801732135278272705247623767221002567339758460914127789330815567204930579709277029027983242822151579540234208932475671069098418755611499322618129789248656407967488788312651969772851791232435135828201274773796539248515084361639474543942396775982812429623786770697714726363855448855763467662893520518928950669299759291183488053515033534018798826697144487257444486222241046819503150763696965672228019617703041960530553721580139790397037390150851463576158488792119376274599128859418521101653552150654524312747682301784773865443874597428378363988110063100618504865792569398589715806235080662915896126864834632582816727260582384767699678721377293617744002395272089555984215682865924652618554474916791781068715665566684440088634619006679811723424763947169656996291237081043442846203213631556419081460928015851614195277980956264080988639456373595278425970996616497734102748550247933428579285413856221831625551755018305544288176264990620391623273034775825316215396617912003006801154793294604804776982772349597945732818797025247466342388414816106739327087592073621597053386625560130311044848722551030659377426012216353354044722241226213158276866742243342249908396816986582695734530902678840988065502814550347832946259869744202436671793815437537383206983458026989465203235563974592503188277634741817171875775527914823155421400021391130183437949467152935870729120760205605878393675715545285726403889240422453141137761033915411180674625433769002190065880294309361925260971337722324933896764268039747248281369256586544350943529718799890538669731549691154981351307704449977593477242833775287237381011618855599381287152062936179678116075890905572094555286431944855846206133264037418307929460128125033771815373266331277512283650060151907227686491399537685473154709908449085698703331645371766089516168696232671987149904423806477666453538459773389415069054992614732236984084744650473670234209200744418724456979376835437875948928792773376407468879515589111825970441013361857575196337293173933447393450768373902474112015669386904022666010741791593022768317977752773070761021154223590613888314377899821169329556069071331924791417612954398077486224091181869243371636655484687422121800550148837637431671523777530536016837420151062641366223515008592984208663692891102513911726434119729156545337595689307243548412258121467643221177857388275227243866674904667258363877613766600837071245653128445073860747372295911401911464117075033728624237495446267233087798350324731890284265158972567312925626369038598244949746671990997868053473568858702374881686365274147683602536320299878472819385443842429506455947414140243635300459711374425350151687374106953817186184512581790678190812938916515868339331852087221485034446042261038284011691262751249972457838342197012513266024682764372400690504209228681890581655679710161305581459773375936032328509731933516915381721562660484351215834831716906340284787132816096433786183579313900406301316694213495369525016078638676822687872505126931251454285825317233508037714110295732945037416159733174652388620681591651825971706361554865026961767155730682404227638782169390744782533165159615315929686652244794245288582057819255820012270793373396978762940599382315848020043433485621416784050032885064188697385631565528903397391390917103182535137503977568858188851006300104523974227400079452700520504562924243653908955006382866332596829392253400524428076948091246535552547474115275177055502786372032944353011726652046988655388118189858537247523999925250951222175149912916060299859423664258564411929310504204158178807982072167092544996885850778786465470473144788380304770276511930379480375424287013147958960484152583335773595696919191677190657668245893130957679290305612079523029586900263022929106651984722609937092104738530703985389708445496615038639749829089078455109502203577456566098715204099826325201618210933557282953271704065104000211213029652247117007815769928157504775749121582217850712863414689478650961004981770375590353896537587688496548249686966458490452822243679390376858488750603606561036676094967018224695888263093506175833025210944655298559447858626181771150986542284618557014107057836709277200304090784812191530611191327169826895926388275955018651370773641867424837072263706374634717200361266454872846779766301408609071114149192491102957078900004925951949217377456989753041361482257497006518833675853627797716996532184300115444722759781844365921783427904652047823104661258901951231604719289144008536411463202365261729983726339131940499194798053316651721467523218671473028796515666376887277079840870876050362971682715290476481350698921871444533966657511620034061331914928331197900994137580522645253641599299971859027392097904951334940688888138607686252617796050305783285231807924948594121230540947106442193257005151977447977171830212777757037243845369305689710074462733406403081816778906353123424572768113733598477711930222192153650292369911436316512010172695051581027076839551154770988603225501309108547296791582716233495138700270628709473664069939279518188068251440770025727783969884209147773775888717241894503507158674094418036575169092787292280129601037385538919229127882982464253784477176204253317085722525102375558195389891481950051764825483409253239912716959857832935013589033829175269185945700608750326971522568630046071983669912868285687598006808670014825397338913246180272829893324315612422598711763917050868889332985346786551173190132346043668012838599201845629167736224838560041846623970207276542339304274407356061029868224462235567358490607299194683620233741870298144546228249896411165064016712123054421857335613117546878222008261863760609331040939098601359665607675123371367935319603486634107243432565211893384407702060735353541336311153044375168980524357673884005301938121032833382430867785890149148607401967447278157055308591489640319456790582685915593305854842345525644796974960188260480730416564869793475942836163494690711265078645460501362648527516663311434558519729620742623065299161262908390370109957864124526507435159239782875439243895396104555301780935543742713471252857764426307977648758562104303842977564261277458257118902070176082867702878408867499179200004557668567655342917621972013766850379685486357934470165725466268969537867137959363267514149643554055549131694719281424628919544054015439841455903917177380846794421258728941710883929916004411066645987732060025158995654923658105851680970554382399772584683659445975388559540636831120828318563305414404886961509319297350697112995887870883499959010549525012472344079011539105917366871692537261829772911563673353129293940612720804417358671838449909941556542042432330407502864515551635352994454026901056298096966997820994619549923963134464789906412060403259622345228851822974833300576817117549486427990589675071205902859325582231657838290484685328447278461403323620039051410938622028195049536562755951230946665566911319717408167623062880003495870701904513008691401881189956402796859562481732529454501310798816717581956986648459987887717960886774012126448681404165740911489199775802572664048065475030728359170737681590448222294882149334059356196892937757231588634552292749162268486608207925221678011644245506106082884816473072321088447832399559769896496962588285435117186303025246824201860323346784989012365604823380010823629064422326610055370700767004225438364392940852449118469824009374211141711857443928656039288973253276718298661051766636631303947890853176268869272207143477261449726608605279845478567372865177952117028256822500877216940852445730341689208689109196085748858636946481831870133529726105265860730839773680625459858719563679666777954010609591834255983219628079819909151837810249343770993787059200078499164542556180111146017710915823164180815752199953200338582970068611787508801198803651695846024592042484782824975404603649041779408188824228581512414748802032046281114497588310712042482309248710634815021254862135577071898029268235499951937750333030326768378547635725708517261633094187497229361851841845714208054580046376161860371842655267212615928501229047173212028612889548978578168517643524239148413157623632366064418645365410794609275712732151280559370660355201032543807979103928921416959473216207429814967728382369203084911795667337217290626314874980498212194380722004528064559151593643836169245468102715696352740073439716719456986366044405932820477370975683922003685168094300286718710163268788449204581015549942183575953433100783428564325625634028346286112283008106187424809155420877558681342100874977420139276490475727346798626869390353261753995987024991838884010146849658026280015210457801128856222312472581383187541214674856668839800250807246030658347736499482465699692597885510503840618817184893965195807304206885768525095016979337444968528841724749975436219604154566335836494695179937775077487724069608021056120998772698303856382533456982045061006010498970451759586875390170570929819438694471893488626033655114733204034509773746665844117584327508970610094251009141912204968342933166848986294817895524438899216370398155419982635299780854189885666745434427685546785232998385395179093505471995544998950174864944748113300957788945599668093189806235385893901116450914006105332671876401280949433545631010015024099641171519997250790824420262645258644796381800995678639104952283693709860495863331535489279474196144864702551254540667218229060615459160474277999742426610870679559074480017354598224581063538814563598018702544760463144455539267026824924167909292643557463484413487672801797584639696378012785358933816943732358843568811286691050321866284246583335363743344078251655256481240618167701287662921815808657771730023282156951913577259027206934588428531910409221038568205549587090029684280779407455685535545153541512572488836686614187651288047970863502927692793452144544373652225165561412876778863866537437902110493873140157292066991672833613048776532800799944506066391638765808025390426643999214586767546897075396666724817490852889742334625498826490233584042599030445517604934850006477345615785805663982622872693352666255137946568432702000399209624795757931300415994697163026910359670646067355889957352135721359879876202729179923533509712739325711341172702155750545058023497663033639294946870468921574276401114170302691559717062096113104638327966944191890494752354945393426137386380938855380991328097193989739695618348982974341501036136498243552076191709646499191336159353357815325898084644512961875256440618316965572281899231048981914375799287125759670709458658536693750052058312465648434845669476408452431786370392191645214017645198164100350097335103476557653305604846043421121650250360295684264610606313393556212489676725002534665236487904566327413542636829239865392238972414449143494425763285535408545555801144567493541838520536990496237048557354198931454119794906647675494629772149549187139894594083739848451026470411221774561571869036715444736342634839435959003385552061257249152810648385885566314541106679114017432772064574520508743688999447777871080471235942944794232494829076325753504582969105011120607692628356657382542403480858387259574345500212527987064524303817038203341154022764483239049405257667771380289296259419101843217291324518385773557829090685365355584565749464012074962004452193766869773592748728520248147998340528403936308685897593171478282555985078761475792507100462044336580519019490083859726130775144444091949281020436535921197939255993898301059802482262458622481980424041312155102252331260016600682154301408667806540761357237898592991308511429118492828726064753730796275219245106223156109712312872840891971249512465437217764598084047924498674345683209456917991020625598126210224915119900703960108761929660217938866446616795240425256961579608945980535668857770620628869433522342841435016015541129694365884774583591806153271479534927040123467904134492384629657514819322132539707286009360199830760273584653713769482363469698641017664292530169193722891731680105052931979967953311135284231124595567631321870150167785807968052262163588281816568086258183184537420642202251716359442395437623964710475043654799263346219014490875153100841265235713403873451501520954889909539112070316948984975648133516069818586495178991687341685107473094885216065082474087286375194925686017397413061776175179714450739404390829814468315521208946375159013474573344573158034680524745966682884714170780240136244225267341361650204786645888961285296330386624433713126736498689905885198845759580460498975891658173966709889436922703169621778530585835765696475802415422921699224673654168810169394607781739964384852072377189622643705414644720738654751214874600955679975071516089565652427867280072156379805947108515082079401159838745621828831554222677554121170232927512192012549619531947972253908401011059037687860302638762702989945781543834666083699547466067345598757363873282410022299433383594978007610256706707330162979039825560980205481176136465263143515246270973181574490454733982985112615293602718031583165869699405636653105076895858794924834369728967686731399186215339621315340528469479248784029893068255883529066513862716204117323833014901505829707718014095623381153145716364793432609605157834990409345153790341007342452630117902865243139638955201290815061422250766226175730981718533711699275942713611503002315174627320910734054080785519533749906983802958056517477425624104784939288209225080079411457038128741626696629441944000897090477758317325431993970817446775604136829631103979323194428117428008228509883000400512111459630935185505031029887393484920769998844708510694709989341287272573189789078090180244090790486698254734686259573382808171155545133417225394738625113474512626329799207070701295304291989409477851479762065782668154976194352214165634830355321993365019283791658837536362257325820883834199129583989709287140884916118100376487681664920446269094226959780598180116174758728764120417645295095089023808661320743220805542117069313237058714246723404309172997581007219153913180164159272720260197332723304021107811550747351492954235069971865308838511803874327333012269534529795763470007006748608584367556632896114254141690000280499649318315095718621432777247209306566810833797426349534454789641733075914790684556990605438050641157448303032623254662163436145797879090241939572351116826549522223172598141935298106778484143518828758633356198520225390077588054157253626965246649705059512669642263858155656362368742010112984419505122048551136287244334465688822533427655037414347849774647099662779673064065421764495182383021919084205124003727194413150151815515225464263829943789353189694096407442601995881908369580993574412389354009807542550697286266591346689535982674889058454348995791836106240781940911604849194074726087281604078140559159761102803772729375996523843560411545369969736497551256746418875530400001475336692278467142857054028334769365987704605597189490973075838986154586600624190908483018552961554098568873480714661098098829664974654219156177061217585127482433129292426779269254645171764935208989823965289917602211873031560304240780617625076659025444196688573393226068891451236049711242581567107121782752886415678215818228563721138031329587777933691950806117495524507345441972354450836329462497141827465020371273176462429157788383065803072767896927688210828872963983443341305019339804868933734314367343413841361454346975134766650533977632074573081516650367925161895644066272473973495654587059321245885029298866418940986824877064677881157667919512038046842174227739067940627115151947599832978036539276309516401012355601533411985977313212093621990223616633013860174028995728083262770068277916084652508056248505788751081401879318434049248444502141050861297404020227071071931503456798323422634678659542627599370675555250170847381583128394045257387587855210974553875822668133408961853663429928098477794890609520895957328941831157663176300974028103420523712049546417539748157773154670074089241992341408164585194574693989197979407911276844659545223207713631210040583545776553486071313647101791062524927669308205784739883578587383474383971563030439591584224689357535408124030879231148368874996487369033203374182606702428285079304049700263573240561649808528079977166773140251888490460408653426910376355669632106014244188141124876912489408039843363321783212484444844537191969804349374606056571615066257130825409057410934259437385808461543457433796850866781380778990272265576062372103411480509072861633307491288749947335885731929533888193563677446475408639600381503791630638835927345509979094964848415062067686655970335548541686172407831647570759401280287750534367204389338187261044218243564846360093611434440871344224731250349676254770376220635011556754394947745528657177685466997048947313038759335219908132705601996790666560004985866625195536664957692677564647518092369800262087993078303056889084581489422186641933490245936359427268902053782117326256793870303000236396995074429766605640782021458356864229402315544260828661860553115816879242064093596824896736589015140767723712631081455601351953635903889184238221212054568497512256112680625792249242665507377084099654268819922725641759802490934402040077308441323919994081792347681545297438444573682346052390566897226669159107090911378229526394723565504372439576800953011742760838493855662208544953272467540150308827760696172550569190520578820001876582735380297791979946675873081260858415944815934137226486354751289113126990184915482709951132240793052415012934108960548174151065769625542004405421655872695878239310579779012316184548277156999843452714727238607539008957199812370904705443907515053453068250518371540072050593705256252768553202088411297805966251054530745104918274230877022409162175928620233747591688303376188889844693050013473455463339101924156214889742479480123881850680635852677706917183103944294840630073906059005271178450381819499378216313502746472884207760312494178725509529341093688153944719374829112647837988287182667953018113377537193798715614919315663935640157833780196819703329158908209850752685728997801739080046916156312300376806738941385138323725556306041260821599604353307498406737055607225358178238150399791643513055310276426341503439778164905292991430432671779293258589758028652312034449585746505039805029823445241666321212752690948831532787527721343027271401145806097650541278421080622809705916345523532185632276576238512626574809938620041272128931615753799207462127910797116288933961731509016525913118284381598895248697804959665645102449401661799964436369591452497116831405868716313178338577044429487111401322256589001148984024711303634815912660508622557836367562065318125068569042359611437487477314720575587047365137197020216027097012409414548827815085631958567677003304242797101693065712129450317770631669865331033787360069817816507279458529158254224489661753624832809860489648119118510440328979988403564231842966055499310609942989244770487722370176730863750685975653908475381990066744323688362423525065038181677371288733720951938605005342403157624280268291341896398239375764508016867601379042884045613164094370951724539242894716300595245336169173262856379771365980192386857806018615418284312375631245912139938150532305153021829768280671516540584106529177264206728558456510819965029496294575244527617877788344982841032331603150976319318501207130833878518945289899067645722071914918944182854707521313519261541345176047130958594957211017407897775066535889568333787026254279689444613611965572063058276718027769157122138340379920461482695742995412582122312858694841485132807717621159358550806576168236295789402323095229558101880223567897051908589960351056445002807838034095970749490979088090003900171658004808395209569373964480706894555670796775166551038106664367502386297415576464233676049364224367955343087550884207697066764631600586032949834278866990711649329350377415521916972734612274843322172044487375051989292256997201775082079520911476854939859537984645612417409879080250672682007045170916469569735677483843108106959857253852287233502709634693978015575475447748549899109755241876000755727205380829153487542784523654736145752310116654410513962785758109534896007314664005436294947569144064976975576894000274922253683803205754583754490169721659021958806898900621059027894509714177632161193368345882520199372161367328314303494877374537730037898486637339020119900066658136267063683942899793019385966442283950700538922701291875526543795766272585612752237514147477362301553515985917181553851481752293311957103535046799519517571468354484386467801162275871969188166212058024567849991546964008289412082776168256299665156519208443156951540162231395331172568504274310487353897268058185089217049803802131084703620435815770739123004010945382020086241367611887082881673371849895786557838194819466985649237738593447283739456206814663170880983948897810383758831922473688462928596718349411706148633503611963517204882489569465691596696119633590224388493452560900044182228089366234994027479825478598405693449690511746448158560691147105070199517259063685509884651827102880206156098384056379743603708268646321894274756429937319730525226217106538604411251441627894922189841247499044141550819693811033992930214607901047608118078169797850662973702860267782136164710033765850244977321932073195881216031438925528147728971725720931967502015265079269374562498899542662639469827385702594245654903432307360323820358180370574349257893015861722666836754716674982075336892969115797476903680067620508883120110248209296765500345380773955183058878227098408876421176894186869824562992402866828613483376373534644275582273777707220488692648546635109773845625184836947242049156832944592850489801357684835575217306932021444596889044874714773772183435061252583850666689351214702449671003322159885379298552890807516622270948872760449249936408771852801284575231771562186863407159173317913339975909980223261305150882855376684026350817913746979429920197640700581649682425357835354799474677935219526009147680671480133085458001921085309318260644599991660755584092548548857682361608362769076342134745265640809430362845210002896225401372324042103380095124702978565283770743431348959642722648427850997153756638633510997802682674162326091758248109740803392388825431179489158996094778679116945475409177758244910845345810925933844262249357832845615181473479073857140897209515384832114892492792736166940513130069891414905184451674666871449894078277753702255212401461609120925729686446894132187872074378994953888804056696233602837398639288022500557467519708121968480712820563228958724723836908778705423845963245178541454995143558301850203580858341735602695693149951659458874895910847668076773502255047983341643811709911891473371239131213782967784631797906794453101923355843795612490717422032624546241258695050110294052296717633026797479830585329759259750237973943855478344789787059099037832914984753495690423051456210778078896257053425143036181553792894584476953172808398000142713791894664438571962566670698755376157647819891847062146593234621453144914040787003308412578372091093447817178908606888504349165829466590570955320347611727087436486982232521594249580652634488455635941848299314458028714178664582981115269618383122652283977522880047655728521519015681905761861360309421731363811633158168638825294378110250220215203974365506271912123780646302693569211726955820198504040045425096389175526122647030548099600913357288160448414716413615816584277779067279369899569411165528072522837817551046181316357170282541199874054244568129193560303235962060609476249202440005736857784532367263710045223807926635473166184344772105413791368324030006168001676223866895593645067251735090230328393676774632397631295726899166703416726653305724036387470119274055984454483872456925133916228304339954989789585296811265304589488261822799730200036214651453193158231442212697844832756552344910779951386212272674641090464412488854821578759304889814068815418701010654886603688035978784338429188266173794919432231524382286184765998646404647270218795776835232085450065990237727182983437673806516450945904026061782730892377325121311601063069849908872743617971138939092118932321383684393615167920581033640101558593045356933266453916100274612495380379369316376409861665112421607707610908347297483004454764108737349523862979808291602708729800538137480808450712067344342265836990166789893773711940564143716127355776056481252725342272970103714789285792471088485773733175431195495235838537159078818796608087864101587864366607919700678762542604519973482732182128843704351855178514135367177549953243938129986752802242720123009106884202931383077560487330246799090743566694020464000222617469925456449877174001259832431986951314593181802556735820975024070490802313872738600911190085390341791579057243537897574819242677840633657791032974910086939060526859210443778251801872307538294749309581623349521441697063593716559432844668103786512224282749550309992954810440683604095624528680056287416347400706073303107294138834059402825391105320570655392693807635963097289064678226342524216384609259892543216802194821248090633649118958617700728579910425462632671816933469353712538074580672893510949285291740277876565974087998778245797804468647449554495714624998372812293855604683664404836918134309657775363888990296724806261598565168147734481444471305594262940395181158654411210973600490651653608599097656157281169251892376921150193844663444050157925244830730838264150096605548837427654081509627543599409261057789729250242237352251270705361592617914481478520674767819768443184843404867618260273883947797393145317772823353635415973179103604625564085715423097693825402717602766437322073666855680516817382285156447889328906506561532071690478530193477383212435822029542592318538798399348587885440827286054455089693584513618368055773049605609496655778594054379519040098346170430061902056527842593644171847600764369299161737680115975238565834394354971484387404752238118593978922593865587733969982142075453362624530229917724089247906687634377461001926253660861702289757581995758730902876031302802611738070645100517316823576377279912915292517002094986478462526474015001097335694332391300638840305544433809873690731956479285151741265994374207032687066781978303994580674847203074338982879526176104926779968008949841919567331653615545686175162104208634996416078740325144602973031342723808264911527080943451810025296093251027823697684490231402118941739810228017510266707862745608434053815000200487518374647613290859882887377039173175882204085671553895963973095077950169756415591344763006174244413021572959115966733846654712526712894776531006577244048904997392482949528382647003697779218094588312447165063352352892472791834136437392392159830439155376288687568644841068258090199809589738628749847467336387245788342008399543698889991949439042366339008582655722823655740536286798501956870735012199108809543766009456983147794621947800854972543616348789735855585966649411858159816191025443514893701482229649012734093647025781965416576961247163462669412124897817102192623034837154655761740102022070019030875024564057753720952203213721012694637751427939690407309582747300520054359025749231954106131360904604064695193128391419121120187537559360318998076026711068821133736014122191628260103094213101925218666798656705087032212698514089416499004472975381982125072105216821424861506674379575281538342142406128895905893953010317239919400221931912216143362854942352074692108336829304997614076075560078688318442833047955180167145420621808344235959060851875793882668827950753042447153668942496183831454897610668097642209285580851100918257121502579436581104741947753717548646312301723066506116432344910754169354620478608210421845546369877783085920917651937453413102110331061705644919250959974806710036292904659334675862098643620893253275796236926623550720652908636637768665125985740225863121309877313437983926614268175634354624721833490226784957524400085087464406933882615601819767124127064302750523644555409630582126235129852972872753989989058678428894835047176380103838178309234203301618107035957390038288764270460184362881350928526568353860934840969540411048422484067601738016160187168267003192822279898735446368186547551849185726428070791334031350962770122401955336330613059186875554193202847179094025619821147734061401832455010139551005575165564593907709923391749759243303815365163424859240047976576942211930857522955769812850374241340305641982441937292487206590771767118990754337131718736765488114981543911649543907871196610531912803397795857095794833400001505254292514966531778807024271691332965285582248566786510138090789213449211523947912738034395153728380645700759075534964801231556867296978269612869165580270761658801315471318069767974954319465372409856667597829571503672729075251586946193559097834564266992019240672591096877162636264505402628168762990095478447817959285332382430405065325935656622539885184949917282618018606179260657956201419632745548669309759802745506715130394335209920705599614110582965717375679040440213063159561423506045287642059408110300734811233029831115095259622139742772282886132090486513195358508165802238231450527628615576120041121882055646565747649709152839397753441823138446735420273148663556267689313407486880668938668930870126666180210111536058925950138540933808926230360006695063942753828886850047851909034404288214017387611719021478611480474299773405838260434916298457566346256123427973940146155041131040457310789442082761692844516419240951204324673227831794024514761234018352393898904869297641080103710621695952837533069253657115543534339197329973867510809719430052097369238946733494755952848786437525434841850992999143262508202980217615114999919296321755211865505018078962948346174369283555420981246937592351114575999078477463149842668600802736998990103426777052237102389100882048540573627340631618768253922483556987554022839608214774995142024299966669298895276251174900624624296325511542068730858548580104975121533909929393611958034830968837478676798687405549629647194352563988661773284645058500924200729313273174610081947541889029547123100091851487942882465500756525673887942408725906870376122661579389250058556771523365557854736865346865911943137020551362031604915799544501298838197716077602582279879374738748463033065302411001341142015638800758543684754089183513403200374644976438312471232245919134026453826784462095770305755904096715459948330721279895106441115721450320297671877267848049383909716590074694298357824568757744544305970285516589117428957058843499758821600111334057743601707759664493800144560841581647816006784577608845776965055412835937896299330486035051717737844733312428028516182936124567446018115047303524693020852301764484998249343686093099748406940142448902754170779698826203144037769585977160708268247662323440322457930666402524695943853766788653157368334291515552738337364647648071470799595417325587404136525353042851024403349872648990582676611931841786996706503069707163115155141461738986347180796694104937330353735174802622795211224572511474903776959721678573054756263100876371045399209627031280570673748093509331336396592330306840104718416425429988410902770137010589791407928481384966432859406889768030165675007151099099850371048770212476209247475010300705735501317940430419365102046925878781534930931699776737090201317261340510061162798326957858059112999774010486132222858899588438261187351517377057233254374460242807431382900549706448051898040759224046427672421879059047403547028698595948765543552234367151081896430789887372328665389723289464490388919979179528492666980714249449146776854969590629425365180078491527102047410333681518454679382609111815695416117839434288808779210777512136530586868767871222969189921639451230302300002843270788934857412724609183410247830027976551469307095966680884224897509779269956458081308320763480212486724722116533627585565866338439531546483021877761059176333651054181634096990548180999289209071578351563346147899271783445308350848522448446544439471055322045091681393512467240822519291747991342218628801298490091789540124355031599451165533243888077349736814113592805080620615833427432481337792174265373828463839335456607092338466986264436090491370046092028303997809825299484349844162761910130739527213030542209875913400305303449677134842034534001336730582189853085490598467035719145829302374780425713024557674294223338713270638308936793273681715163343703553819417410827456327950924031604443394720516519356600807920210122356829037847707607600172685461035510884244835868432881956613779607406361513675037279664006800324100810328782836920584083881818485564462477143315108811545511235803897505222116806432015892314316955005641319198573288227766126090806048844610724014495169090849912356792623246057409519467121247662123940335296435405253538453010487402858455189124283552773182657281125771960380862644109357873561516381463651721196981335188782686038026323041284495029189920963218038642602234814832759602530087895640172027169604486541049982100037247792586891430936914877167480341017869797993236044019001040244528206085035017948578903460660137716195744039413075871723878645387211569946024516736510713557931890357040460522206338858611494413093909694023531994357869408626936652751240519776751346087362168629890916582036694986353462873332093593480922915046801814778269894802646327290274601346435811265910756396272465284098206559842163615083703791313335045976040727952205462554203263737902922834730913309767439005087770879824212084817677567996685281224772041824973223161216736439934663917978815722630708658369320191667905598477222375868136002926912743144633174670159120081613922604640842860302812827545111966887523443030694894530411283234183772527612026960328577704649628219505996847613971707645481457041623716192640157111535847286983746035217536432978687180400998253280376963299480278159717438629622009352319429451284393755263250976248652208057102825281036352770139301594758596559667928070413755549810356234358448312129087432356947756402105769690186355364564779718851766055864060122099439784716858235225539604001635728422942517556149539633501009813888389721304649764017139087338662953460388157454667185048784861517247972096228582906684710218348327638831783597318914478848789926270972206723586133336326194714593896523087892298043910655246619232208196638526610743153781701990137427620057688058395348425932682594009849469685287115757481687516185259566355634279167883260764786019545805308694529592946930482516331134247544220702533493285332108692524195755338830945711592146912293607059578103521376874465268975881827560059099923230911276604005780827507163644887518551102229041059125434596330534447237714793160528685855679921683129140999065276146208314197906235863513644986632451902505424621241822701571812455058733258606882331563015998485932104972767853342013924171698258718461795547817035318369353248156690798677553431875069669184090439827008557891188210357115978326905639774090268052936054653353530872859573297399532714670695259519255664670985073119076300697125051485629030199307165312430848999725213781390157944116014611567444587671726746376305040739769525149864512334440973649010156865001695953542541545744322905386588201068450706218843983381549750389977713159741456166898649243526601246082253266805448202644389647273262544603162639470875078428130909723308866860557052841149167530462031566060992487309424876688447055754195394110001566557155519859745375919270372117803125790205574562646635844492595020502912016340637042039168885241254062387956742146835476923549112018797432401074548444103217775445468498979117856943495111339440911678197512790183605473203951293238218207225600473445952343834992674457408149766869414511945067640353081096114712901463159119823696818357362969976935452959245540204315842124694369958073044717884644008150443291046282942552985241657089182418045482586575338876552684166268294901402004447363548776524621303557415291165129192165017188047299463449512692590931765931618361448592570023730423858352477481659959189333836209550019154018244747842486580931729816092359303425869347805158726628291758577606248114530889521722481490543204483013381776389792568911250146501512329960617157871298804458949203315904389668392026053472681014248020971009793437824041597466859889158164385673293950027399755570224396035101740961441757396166888471374101883299713980589136517181046769254604784033207898337171033975976170270256937206953610377982317645509169990655028149009234144549422171378480556526839096484905817901482458742754661532958502819003801228239049831806019758084800057686586304910417562429108050263121929336065074405359565136472798756217613329502782148109467349141770416744140739214066641712476025512215043355444199100755593182261628067390804542502422999679204468749724826241697314404321355230652492501131366926298340806991761934951163584188508749085175788285951106305454727244538773327980247204255350696507547479095358504397194537435905629237119548481449298774674436252515472710599495788398682044421149792093619310179321832806396526353674947288637057454343877599963860701586107517279149076474401171288111881905012717624555215344744090306254463836508211096794260973339959879167931775361710789034796284533530654130217508296880838965220478635846697369682592218022625855092669041133834103920098401878910561929565505583909687277008900013522210671784116149328035706326054313003052522426131725692900050315305642147590574224708204756746674424964219885801677742784967025241422524964440445819028736526302055385071664061105727028518919898523132559991540698654897830441784941092410212512292675664376677320934514763895884076932083657721762749426633372042201246478936747618153966727426798459573272919637200297335386446666891208720561363739059369880159005264050286773082915593584732060347611141762741129867226266328376260845368940767659477314397195149977001182467796565109094804911769743501527691436721181804499150822917391442615271101853694113476576495652260191378239831958372104406356432956723384118262266436769716598295188394386173261738890560809048392482074810768816046450393875720452804033035345007572938121466345185208410862233162624058511676302215976507159922243139519732284607528800623509156478391430136538427653147251937078038967047006411053226198583687354426526291455337351236785404158712899157791210861467257378963000989366298899740648620780187085799042382435042085030940341232687532851213101217106391457585197645274316216261943519524884583103948807791875665878043629150643612296104183711498048171123395916732643295919040368489299471037863935227755813522252660236103658883068801582186323669190569673137065470182913588511799957258861579502660434702273306391676028207841737293331913585256895554241250119612411262359881625628403120818168261472160144547242922013566006316750425331195476031027863627561727720350888002980484210210707863286623642949603094101539733805398752715024849569961205023782567351900552710151021060662630146455488281900469336305489238381190518974389606732493559686909675120345780860754075430420282795150469592975606337200851787861283000455915613537787078857951581351974364598492344906021284725784776293952734297637650446522273535059664961901796945072546773004436073609398313488375047025430820206132928716150883431242087878063504169170626835741850384372900939545842607022416003998527500410437690034572177568429607913683428879019248973479218329282476108471343538188751840917714203200118244477270304114982732794165423708825408222770822008792816602919372424661349259824525642038152352239408191057632359131968179371149899824297063744608547626368439442766466511822981444581773744545659041531517309261404597790111376097819666680829280609556433695114349053667678261139831902713076032043980748012712871963183446256131461176501900978227949417541779433380173004843149314075525076956247071374100176058882094089916609880296951460006694102567486635628062519995508924921684311609254451881413404222233133630428493398791760822011570536295264813694704139449464256667851876360068779968074710554061715407666203109833686236523537618649274926715987918908851479552691172450007291594721111723891540900694842992077023386280476054805123421759806783056435727168264617466156485766686928302658699729440119778354086563986138830774590261937433051066087602648393785064490838532835530714454460269366104960862549324108759365436877125420642242544785319126219516321355371951366464209623569708408981891917968152622192389237307937544072315681742537545291249470298582019887957570088224217643836262131254035898868153191856993224339310962263734766319192742490724122680711616992736067404481640351431505534038704504560158205260375791693616485768313245814485474032593920936063208991831433389708476461290040771978841971567911791462432558234784121081669061965001661308930215152959210491980536321847231278846542870662428759734187770121917132116006197151185641164413358252272060721540570384756381161790066410322215761140810679148532647489249715351769772114537163767370685957804806361795579854158960815577845908525465685984686875745644291332748069577013202811879173326209793091787711209438411045417511144748663707393144819972929822637323729447153234023179822904607510585939065258367843218578132889450043052067384747898810929181237266558173530295413486279220563597509106536092912703441309572552293647055689623413152441832390298674554536618561690403857884341566851667521685288346593754357208250948050623570141618859096150499618367865874125838595575297326142588588684219216451979855575561368942809837072416165915995028192240109258792778060606658113681599098909539489440836769835253667651987684469587308854514386296082833996677604671339024346343266782018073906628739007115140267625844054500670186410047508044360287105117329931079228011933429527372136076235045884561900171266053734931572774615916795705765016198162717600626224864983284411119105428279668974753972679881499370608317262100254989490750878651733958677912776551165673795565062351038611157403859386495048007535379316938956209464001063651276095376568475249256643457799736585665024496057311414982776400055826671419233911622037242008170284204996243376147599847982835273828722777824650563841377868756108983602344421174412019556112793861908148426928679513511229337538358379751314272339483884711587313293767131522888781846457252925907612764162136918453821128520721942372222291143103626408783936137523965900737734756054331829413745055755247617429006579156608898396198379495039799620909838494321608686644196456164565525218565649236184437338723048434947827424345101432514339365025318422809961704882542215786507623662004524064959076679476292452730660479789629814307882439723455714857516184107074686074735685752195525232561092137571987035978228888671676417919547698612917153417579330457750150011710919839160198200217186878381628442723905323979776050441302324584602814159185357601222976056299774070430580802492554266380214007346894054185621189494104697107502502280411601025743285851750966489135980760171104163658746238723332918423994933995193056993803241910313256382917828071508332086808398776672771723797040013109008493327217423643765336794498495622711629661236456229867338465247744787973038866993290136893649549197212050498036462914170336679743489664677659198231630770761649311159443309242361530445337838577393604065012084044658144892495745078275010679428235647952291477946045203281282960727871660635416784281310783732603079759424841938026422709922793918283543594427732996080710929234313462990712097710769487567204180938354653104903187397850622903649416632329760383724033266701378759038992004525955517430490853448577490840108812324596901634406369273363334568432740592639863508554077932464268735350086386088275451715454871984038595963626100573491583269941151056341196588543897809599349508151431616217862571693305091518739921274379375848332308076833073075362926862832116935878930238306812894910490414026356443495873281141535393958886101767260555169402289463224094320891311080719093719499163615186421830939750831312555839531997956841102388398647829897344291432068059252456749481978501872196876182785814986138308711116504069201426257428351179113807625827000909682289604407117104571292350906676112996236737438576983471241650633719351028676985041931959250645982327459236147662029845381393915149742074463417672652561111322892423174793858128485329514247319933724936269784190605364550033808860335680501270005417289738765123077846384410417697327319525259870813197895467597493459028522499059960660240929814947030276049367944363051807396327019467480706591671584762211526016749627670184336145174805727395444785857668915689653623466378413894593565119639059190529344035128064162794910300809626688151189555020271515363270829297708358645851976510372577621155207295659184411721479893659132121343412321662673657757112032137487268199844790506537938046573260861265711767013708643370363038065350217308896987626375417810419826998775848175434856279983063486940215757475753743507274508972956918919106581022312159799629013562310864622768171094080735970456722007130889121448080958390556134482525317975099133280399202485166544302017413817759773846730311727169931943051625106905043017587601345658740919504161109801232952035450993771097554348864228724783009058105350134944924171336420895076022764220073240084662449841413163367976670201586708583533053716497361006499163866683294663635645089366678241742746416994177724836914131665562955008139818830106456125694584348572422689624857275829042269579784240259177493329793710508519089077830574938897764172742008380090903688826000813140549492174789815226967758823396264277048738355613505872384021718131479252101387975768263199411031350078376079911779644564162321716213932420205306208228132256305116764523626444544731215209503543247085304604602520232556710012653950724149844377356109499998769554957490822289747775927425260139390179667317962449623487713293791461391214686450998697514966793348559075468820147249678771289786049881706761960055129441179448297012954974389903467920808690808196037280042786708238888909940211246811563164600160246140840367052481863503235370174982805108811581614341961782850608837577753675358565783102314468777455962226767340285262461230400639442808393018981219965836771451902081568994768139384630013675493334549724639726967637338236302650553691866039163597474716131967149836656272102666560187674382525714429156353551151424173915149024120902446258156430126018610046715026756595196098717936804561459858927193232583694505527123001017394271282710988849244448943041866256422712721471916451315721105048993532782904623365249608268014722017356186864463277444313794135726768998195762466340871021168029429998903206784234469657980883868411798015421648359011863296893893678767701953858730375815334667986930895604179864944727875827753395223848889604077691097776424851314666520378750124935998466583728406381222754872172219941564284306902872845427450532754675561881643064937429621049922986961195593370018735336217923068432376891478759081659331162268534359267905841594758947576569917776030885371986939428700012026998782572767786075832861797420248152875654661776932861344304716783226243312434687339556566593038325467792557908002607707446195921130767063900416861878024172232733230731312485823998496550691879301323953363115823033345868149474968459496272850907533675104983408938842196758143554603284827938053107423822779035698071701237447979491210170537300187046903734143260423327106769495559613611674159345841960289241134245560670057658117486781775163654293250694324815594508030182514340946200081009330900553875054820745055879578131141173793159943005005020090170608867835286447292097166841178473324544840745310831304299069113777054979701408467472819365178581891785699845307924872837721831773936146173478684167692617226990652319080935481069841242878467530271229840237322867716863421570530628133193531829835576607038667941109452598306219794387919181388766367421472162385207184184363079127203961873173908863422357928812645586299626058428684776580627745958580786540004079069346758825753934592843494480027765782052895944330317916556281316353255135238502855407833353649337237052203250815174722641431815309965886953707118243676283565053038083105208511034375097509635448983863017412172925891073831778024577290282160534934817466445533844095816653917135328111429042078522627964346516047557051078170406351812536805216590702488506308652582550015575237172021399089581789431432048060120170176487262205464976272899293261494943371403940901487252206017946905573836454551110796981640190628438343545819635832434570666949311937033354274863395272884051393362228403300458699226657205274311315277161892729186415514891734725664306002625461471872484065045658585959893744017051923279101419240344430876837072409807357773608748863116147451957182915603678570774828103391028759743109650952482288636683439542328092010705820842975679610027973866757446036956922940767159967100154132057542358038461444437392731816941948218095079944386769985057798648303442996122799485554312572930865065455833781211660333987407374398539144614052073367640998708030640764810364457069932097767444832550799973084690408179342186082166428756977535469367605961635289803872145858068453001813997672123157959549059345043205987976660212181316923609355657501750912102171296818386275167082119095031621456878878045230086466739112979829893038794730048598991940306782613173054871227548006999778407634310676176217689218985720032683294777638296223944190608137974140663039534575874920513334221003803123366737045117248563375263827350388578593897015239406178153978865770684414818552998120089650796313112862304627667683328735711466433702266119526801035593583780680784198866008749051393790994958991986588194793150509016170336840716846290581498912504373951009165520515209900060732108185431083812224001223969508701891252809869415057892084042068394405488790886124962603957465391475900869184444514132293010450947363282718362439247669466733957489567349988675813036428415391194225186514893420686469075165631352451148528980008235432821328387775968069544325812661464859963645445385108241707982110470444056557274072040048640154128505348068875232554907186786651318336666826472418829186294974194557549266063438806448253309582019456038522770879653094839699403584397022822226749692172744567786194044787616866820667986128458066125578153539949901575537745096241543205770876517723675253138621938348258515475830732960031578148414385560506073194481138476583552653469842332673355247600314104544893054323482576778750994559041739589712370196604294503834289960689348808282057602348694114244689442756433850206070976398592414806439983267250504230208155414495523331877199408537211003420629290707790861583466560470574687746854841278791765030914432087841753231226228205108682127792698173052091994169940689407100317095394941343545359943391227480350445959629723506713721479091606285591322204907374907323959100986866309270976480360448795435153126851037029346992469055517262756205883672836210214650491225280753800685192928997772847704444080834465980421126350251391468802856331700929524137672076429498546862169860185080642869669774161345346106105751425935224582400586136295651337769757339202667695899012336856064172447278502957464080759640225737658385341594863459150951333583169746947456956963182265254700959792482912485279926248771815491324030491867750625955768396178403894843281387192929124278074603913795399290030292687529368885341269150101286738263342113142816182922446985458175056102181221167768046167959548519823462897802373456826649344293711074960494384931959535253560846425953447004630438011538314414924748006902611250147161225135063874702666511084548525281910421385656402972335013476021170351552060010995065550929713918105588105142515993871007957125591390747935760167392605739890078243986655271330674499893976570603231227297235351200550257175238262356790700291743419542907496615525265691997132740540679872271222738884095144511096719551436964938102459128144218710154932940748818559865105115772322835674720606056258404684743299600393142040850984175279523548740819377674914618830245254721877910158954068694252828219150232686920544854164107481991710526533569350923601949067659392099126605789963854051829448441630580654467583336580368992257572911714816373413001511998997149527745680539777012378319782150687703592469319676699047012143983118016885360609273234693979849490492544810103187577950358181876855667585222223781444620965476515027316122264151836137127760785169048460435112558769713604862597877010120804264191664156358874319783088939334050996191014349072010386181557019735982025542181812935771128630789993145834245043971065932703201604461898152681347310689454813348746587469522452282689860351803820915990940711123088799002721793482207481373365664384397311371150101438702929696553572960562718329078182157232358802479308506818013820630469120961571329133200346971873166505839853010128646274357296699512571545323793638043172198394208395474091921212689102827524346065157250981127147220699509141232306898313979064994179427150032926003371251451939177401578845130917436366927751174719086190048888036964901450006445737284583451426657896340440742092386354981331095092174021435393679100798308992186533691681730188325321528130531732990221224544151565089006341868391154589639415943333719603261821657341742296298821322623258422731343741920753256075316737864082170681008764326515683772977615415562514441722209403627275418011750882784600517482810555821068461951644789786282047061912913283632131841705986792731253474124048370553908477010500438011321908590626266238028021844914951726061551605137094884236693159637432222445286092182766654872971854094002530182784566355163379902411420767925474764237538307622540420940710239156997207674342836221763605484433624325418591322953954003429565825943913445334477583315907371515976380390115250914578209407232255119884626830928574540622172039055728434469331936058164315238295958636127543563055614617597638699813669687571719385982488239415157778546694738125289437954675281657192350412639945460070183215650730929474384642680271089293614048445763313574043915172202609990420937380349646365130433662980991905659670639980934025826072065965324072558504950116688125138680087910628717403982266249485565119959210538201054809327759767267619421401033514602043103728277739830365065244338310051160455538362057701794026239189539885759402546417947221683201826555075282344326966311280139061439994174842611163272232854576579633396188319127213411405638477004148530063746506174982763082622222278781844986200817720964955392458297451734305244013399128244968784025557794386984402076316601272708665165236311319866632509465050504879097083478457197757720355522188368114372687186692234664479902855179630814802043152294334997774883588417713294691751570183012407405416543373298346303274131277572062007466309473400718918287103254337666434591139137111406765187556154316051647142521891946191493701589296285216890961016612824425183105310490196011888915785320647599500064237115719157767601391668793307428717432243974506920933068037443874361173820417176486128105058895213221944952345753545673386478275697748554631050539852707111974309863768512022579373436970725000870470768289897182685786287588280303970569665056512009334586776807430484442487612289200070194863847340503250380996047276137443730582507241322672388129954340279135562034989689562460205316143134044184986044435545574407773814359974124569842158070171690262331027561610910884999643510988268969258820559784486056502087264590128894424468099150414416531239881315468082325188896416651450749968643927588182630740862020695622651976842513438148266764281830849119204094022056344401832319094316780900800637931997883637522633099722817457578423904400871899917176686098203524972641264787507551435573825117546618889543319464932612846657924500197739729493202592731288861095562831441715429099297287481408879880724129151987496294348103116856868788685521655115115533320518646297031085365738468950081407687570233374885725776542082988194798217730291462608692918220209158582312660101889521452700631624912282335392965319620856654805494651305064828853854967375370810402971827713690470386689717478935029149997358025124626550883625432460383743186856919494354746527938129181104511766263779712421382972630661753278527104362249211677657077177072351680216093763334466597846735684081424185272877826774071456763860989815420510824979739154673284159196599529770265870665102961252338085647521866485531631934394437236088386242607053135389637847088732232018278589612930275358503729873244517364347882034947077093748096296543370767081156730698682685338451388045621546556971727812488759282790804362225417743323938549492742853336996388200339980774689627749545101932262783064532786817336147744548494283062193712965875917753959149783449612893620562221649457221509302301596860813234847433429344919725515689763149668706174802638997452790097928788230953153820149756566447144083449733958994450097896240735094696360582161937842103201257084151246776428179359935471425920804799287050764249764861866829935443415892875747261119830863914388934932226366656770245945281584276661738320567599936345626534536956549026655154926004213969606947490494865203138566000341562188982516685730409220728523914714396818196782218772203830078535889131151873537283012881701972779442198367209344698297415345198681656816554782709884191159174217433230834362861140294893978422089420137734600019968673676569996205973401294657225019810836847975254283157591331567553219364223318912814075931744706536403358591301171002348178865857366702163218384026941527274993069899026021113235367436080004448388488723019001191641074216083404233844477479856288027956227910144873139904932779916171304860991862506548744176342779516288503078633905776590618131133873879577510728178709336396109676894213424147161279083996961869779912644224741612959389639418704298825181526133887603034299334110787904179709503757045646848365730362562107775242270222549104698428269727955973688348009137350814215203364765972788490122749682048936117785061132370179755366753527706074248683428881490163228156192061567791551162815738115152124351637333568393624115258663960457670064582439484492996465105096320229257171166685268911861035184283662071838746785114213962019420835092731626522335793754416775967780990801054306714956692784386324031694396346872464660862281327524393171215148155491941568161855488161419106838378696802454151375155838286417639346875722137130301025376172502923047606700776959488954425596731975016145989843865079867485266068889514145452507626849175420143393487446547576044215189179211954639380670762827702310574513847232997233157996318878789459155722694095852007775674052682602429499392717244818368679769466939139587986419527129764157965556482257777851104112126539494150084654036485525405590315854680380983053386767573600223964135102457531993390817988066042685785133380120076234000161561280908838376954152616698916103596279949804779084178152042905103021294524982957496890884750834005460099886004372310134981045344802727748111494834739131285691833709040539620297051296231255937840496468714593986368028927189115709248801792780163635290514678797036299054138248585591121605834138708668736288899864673346745944190404080255890587540709826927570652947247480146413219344146303168041394044067223336334163337996461935685339232982216036358982675298694592848128300177814520172933803116277348038363482680942267253674733549199716594808279536510111201860077797953799182523745905055705022026892573760584517399155363365816351996053034973212232632673414196082752466839763579711387667943143712005910452587479092591801484094494764968167738067782527977500836922851371304179326689294826933967108176513139750546073994967723786934643653114403182972362523990146123689772171970100995438694322441755882811486631963615676485306216426303645475615131303306476560217609404495832305206834903916236548114038464095582945510884793413984056837929451426249192235395888611063653335197210455494061886452613754832463163069802068981232247870376532127124291063709522159383341635218698956725472119257661206140048727236698816308339066543939465945047450162125901296983447212085614636112024244915084256786191786607385023890165337554412794722369308269636622879095355571869579297037773453301749108518346134616000445895038848469001516145476334053039672862458533809182883883293757582176884249124981940660075005248640032314815629899834554320579954257640159573498857688993470853597786081702228789315889407689065738444522844114950751334802041767355478467488113687231432020875689490184479664528556798610402266910407178531025269518452260740421106473621086143117541662040635013290670518065779997545750690666660732204574059027545503626826479926254628120467268347009243569800078449567833353545388643530991556948372246986130077903927438184894971052881715148176142568069179587962900923649721172703331970264295177132754430006487368086445140718883112776276094284047476125866450629138591118560226882929866028725302382189670977925244648223342015550959784104173638550695528482034187700653920197816555143257518105401095973672666672940534572679133750348953548796699168323405147806701131827610095348099438494197415125999852420873658896945346364916344184261973777699400803733547963556576397789675246505877764530687962341698795612150431422942213961656877259146778910383332644929275543888345021821332047270969579713097983879728799719367146709705349454694165270759939895262900688314933580864261393623931154386655340340192154425127333129842421591707910420617045484725332084775267838029868062264327844344241397169685533473580014731116640753651159769201606958921273237492363788775556870008177632373876256616526695881361798345007813804228737092300000854760194152812508185582636296376049365730215421959014420165620745263630614254653192518242431889619214730383692488642286101402130389175932620674269496588630432288676877790603963942372608052371369122869605509913590989705481588825046471071826205123068339122233791214243071516635522078591338786202205493818198958381736834428310075775546292939668806231665556745301193111498436045812166257604615774934429939736808740279621717632854623348586727241750329702542338266853107509740926596468687770729394999739071875363246688551702736755467914587331749180903881397366551869294011312438151437739986410489643318420960703170052757788689962985170613309437158902912808252131722524940844608776165985326193882780897738331014779250768876761081495062050178669933972596070108903016603481390334152031326954893589674410576391106422566775673863467135401393941621795358768834494094709101548117870600182484149384961482099853464949614943661835267981197511956197228014634662665420353146521761094729862732387461435713191151432305081339656251614239817148591105453285812091761551282711976796660447660500591742169962220748270824165473627412035077745218007559487242504846700883409388465137603077189416580631657430169916223456848852596443059232214033853917768059389663698867410915680745190454546256879340534965759409305043529272252102442029705878324718423381967743468432755016941039982574790090666811854854101675809010319848012130540308040880482644635211753042274947374224429254831079384450186038146316972819202009710249636121423437980214519667495227482884842320533051172169368388349910817847510738272837020541156979492809024834572017270338102653136810413669774804205885513894168693993315518262046811788467473847372133477545079042672222236698233001316506058676303349478698195818867069844399948135959641222381055924490642445473512188472795066111876532561523530256129391148849397459347581883883108644225441856555041939480926867726171920492366974837194066979571994367143117063823345266662555797172835076277764731493938007873672877898593346101845539767506221262123561997093723339764293070224623169046601654233407013797322298154287304739523686444313828766885689979723354083234561135673148290875602534250750528811588951852229770332071895809306320979271885852199720038252936175121136959891425408039757623839812217544110070406837821384195012915223423777551549907084352135934874080020321952852664069162251315836170394830913596007655557119330125836243417071246469521485411735332525477533610105551305493830868565875167400494077725430936706240588336935542876695023666161310840475264072106842555378756810228570881390989520484098692492852867218388394810900941038113301328965468388046938961088080680634420828880623673641624618178810437467924394209111180061326819823916316386249876725557049439826190232923361786105610161634233813159520591842241298229858039917040633904996455572758004732098586491553827585970337955467400789623999114323095795409578448827793442948324009504774112122775620901290478982001106615108944642625466439716048505461298007046947973138188285420390832415106575451533026287117002722652032969020569271331459631004961461079548541171395190240011968336877531964863729725237708984502139906484646336330064080255387622014468567486911444390156814981110420464996093145573105819895764608903532389943514712321618409924970427421912443986561900072234863938500861673922171645363310769623852872851679779243529766020337299684464224573884471344449156471799145318057174116887212108745785304645628429298663199992690830864742028568097992268843863178044094148353438080357225011334101365177513019856885721497518111237078585133132598339201600392922600743380255044142479263123506430312169605276988084674150813745579440254862052620404405576602145235230572845524906224756473343372173193249111301867464177853707288466557104029082621667221404041111710586274156030131742408292876496780070435124287242174887219814597993983979959389865323435966269663551273247327975797384409354961462460787553642981599780949553625366747332795446826218117360565446596620131745333502782275140311481996406173151588687454149867804203491253140463367961479613250572166353339648873593218944971326795269332642761487664023216642715338041388734727007634690012360538335052504085434813928374874568850016350379276779681444132619262741910899589182519157773686362615268052078139463423221608389383085403342219916388818631161884953946382527559916442263472636766333611478311607157256829013457400593947183021577477494733311474708840678494455074810379326046060971729615863436119896856831173919479156812709007952851182627691584456898723327229646407335980174616926235951762036700315942781674227957222723061752892233896326312792230168184925446532643058609527495411774994383377940944002284167437906735538645965516099433071287376837669889267224903378273260603474671575746825655735100845222186985889012735169642149519489129880998778806222122779883863916823018828231272348361475939471092051007207409877435934259829905988000075825791885354934263484779739154235274084933856754644309990406309660208920151313404240061854413210769839278843804066423667139970508665884008738789587231900348975925110258568550620504081857448382121103477315101300408372067350411659974966809384426649978839924481407324147607715453972439604187438178848675222919161755732872022121419309151808723572569221576518006279641581694362315912637752119687803262299642972787914385074190203222830884301660280724213898448205059234726170697713169006749643884562951095553676452491411438469761469618055134952461566648728544914766667614275789379853643904423089357972876892133889960188409588902699162555871259274439461465212344534293720248628863834457414150509223302494411830480395554343497590914936529405535454809793809693906145207072164652993604236651635788018947834986739506945438385833761630507755871303006012826363834438493750179660643757796807489313496176518682337432349054553988576883757529037244628904129055457920459220864675594350408639902064792793071100934163483645664660442719555989303555621527979529024004697571011173238706650728198474439540336159044259782825638631341453306200519734526892005867277813299757762031527493569218388211708618612413554658938729367414025062623370169274848884171621156531894573865979707688103219414155907409670548007684112676652291281758721495111564062687257388396869376992133600254485944680572052931567829826477405831512802432605712078853649010182648937163072031825596064046013688021006213928940095809908060126575048781969651923620424888207085188537383970440841711978854912999830370592880863557877963907169195465779880066290044401516071964728536216446511392651657604257374578684097062545924506837487306325321826034799087919840667732395180249075689424948478986031267582763616675654425002104551632382265360620450094561771515721124556908899609919285083314559253586637599159683012388938973410249602312499798782014586783988774436118621266448863803158916225619753664623072570465698629226494616108711398881359536081688090215255777026984511039088118901060469115758056111220317070222889022382820340192193113979440255520940179339378845247631069791502740695876700620449549026512556577663761965010094092347516378364446038365081945876030821013567660421443056823440926469700714138086525859140112580907569175696994396828388954157771838715006356446115293005830062645166019612862857572944337775751377302966082017527613065249183588904576045179590395003049213119920663644528716694511505363343325791845162125233622917860451488716578080606171803800147935189918671034250006597227431578473876753218216149482496958751894593103550930279452960719111537063328669342874828001617430189420007801258528828777597472135944059406797713480430402350281468727380427695885549301519621185970172100182567944762058636494377281920163870767920426179744847526950182629637051582740444873843874285556744722424344682266649081911997716182365653131383627897902490696767742457617430378078397482113169526227322881738318830666230334661875227471519600941336658586273792514296059513873232487028386669234318235819610714217467818787778744403943002537140867116554662716916130635322053795552442184179845355809517035779806764081817517497839845454815439102580630023841129077470829642947657576388198414232785887274958507614726229989947521974687990312555832299265368115203693700857040124404119002581237959122617684345946925507741690954512311337740676555726240753378556617527481478163514630953509169390454134904922520244966203391830153314487743080968254446932276232515324344769956036896337425710033668916795712542528727238431727074644252717145239589362896153783524239546729233869907312244047954699718663525347071205589609706962696594864744075813689236979405629581660223455074586958801954805359090091702831958461553797220852312159876864093953443804570440605622929168917045975398290072127244558516842155164097007378955027135036911349001756642977897949857454902427515965113596819152885449574814803957280556981229433765365427105066353473092931768333914223138015765202848493245088679113073177881117714556213315326688898254335915709125870393677847660542340193418848031473498832148775573215471388991115656975900092177796744473892147653770067372678152900586040781350333739201240821451211749316271419068430269182027364477964397663212783475908715357446139010753366777642449271191625231681084985036666006611040945314870774339571456483117991933601910007135551936511632172885375170790233730160325927126203807226804721462131134067679356129170917045068390677607392865496617518692150403887239430245472542896618097116707384324753940064580856150692505218180833426714757846934385306384187892148463871744791821445306784318367808897222229618300937093361600270732581298513595365389376641356913818559736497040380885794613699008688756667729146708056483566122505367343967408818205812158925949455175808498596521307240391595167623418853277195166618450453389012359435566710718724501465428251350053948413844786059076566530332798920810136008625784626066807317702768280094123295568983155034025363066838704711741320146922527772017587883232115351441323517628666142028868272867029906518751311897135136597978091480272312272895428538144423304628058707445946649123378279535209677143166812880416825235950959886161658427197926903259419339112705553468938139186160699981941764507455964984276341327014051332784722444743601454238660909539561963184723328429911281665905926589369730615901827343032440087782215219398134249574319015465404913181671514957589458929858464247575650237149452291381711653901997081305567264023947822137185563381028654940689762155972759366309608919100392480152031085008401127306178583966967182576955753004471520584659517568418147984847075962985801242169465641432320601003842372855018601343203989719389770981425844776847345227843660439925824074166916337075213862713863992822913847417557747238668674142217205953242298641364895293989489657362561294196111511314414401093100548776875773320857811689348222925414998369821643456061971701422720038722991051358456490202218933305197320962126538041540313097849396673597753602683549171902206653813442027757342692634977150104145869043582266015313100828151060940196404732401900653065141323814707365202835533302015851858416274869263690386250726861039355583856538996782874676967811634268582737312049196422716480618572910213873979308734259533940570665693655604174581487083558855000068848235408527079943078753411787262379043119908987975024391265608180053356517893632438216350434292237304871329278758806018621284677267789946952112517564745391446649710234784111359180432860732156835098173360454477726099317282048854523246229090722638277685671226548333862641455087018752085520579713124547514513644897733914227758135100897587573022950410193478828124921899610148435352679561783905878866925842307615802189312115223061535673297740444437246281641858341643846083685276250342422297802717488487416307018383245017134027762243821343199668013392203002281985793793485529920353696203236574088412466949612815690008812608052096995383061220275940811853865050281364176013587621144584411702429568242331404132398429780832981377930577371980775483313906778235388889049301897312037625115432235084159909897012687266351750145254858201129425297609114220245432131948177746185380156157905090141097390227673338987935767121156608565206845408315622686947824529370258533470270122823896095805965853299273764173404845979277252552759800906782520794860730247312143343740911349825400975570758183451322093894567926974371759057560252026522725575844460424611805905603475246790356356998964478051321210028784505677681690270019613987492361117668669999942154702383806137469788541354014137314747035220279122880992125465183855717316752968440813921592201390651641897263200744283747022373539345291339130170368600720097521591616080613601251908604088001916250975890493639210261043274590781296366034029835986320738979348269139293062666746588936126665055475238540269307272758001423656026935729189511759797796720279193393190453092979083304871784682098111086253606152380475912129550022165777439117039241568404876021922755119406544130024800775298795479483370842234933903539963190644659980865135642967537868003468437009681416025274115370370192217401958272983614643856300154538130218471820855553222173888390676516018154827712425317039656118705029793684283832268258172247450865312014672481463919907325754287955667685599254278623767983865277064804589855836662534753576419047913665662777319928400894707291033047311886755805060536941866674883339827826222414941402836249496719303028816820303674406682316996935072171764196184319252595028874629165366426594000896577107812304516155840080722337345540614355193889745234210105245911957376526989634674176337476640783798387216504219879970954096936179252783061036066104930969392086102813454875410128230912425757668167285083624742306799768109736643486714514972360382941126487523220495813662934459888204897072741321482442259320504113021456404568104184955615295729790092183896556803767059631871585858005578398733903598689177531532483661181041945096993298028352785627210585644418081356354766375187545964431709023442605840110536896842553684258675359321423593429501077200900229587917719993963588150482210690777245680441931184403887060967372553441698315233752956801587955717044454764521877725373978316397401526790711923516407727552960886227084688668011089430560908957138813464459377447250066946030027673544375425755368633630483636286752454569663949299774964040040310107312288722625385605283246808710981985114120120033625913354481197065336131047568176776972851511356180317302814508569384542135043924755546511697978679731463428385589258217613016884649114906246398448807278382130001362839743040322261381492492070647713195900079983146902080874368058552607961525607692288453713743030334416148683639687555867965303749598524585487256518050907658985046915369883371715634236414153306889337751859777409747315708862086784015276171354960290227137443431645357254583331628035382156518733604835431248395888150832410254177497876222000756153422364132510354289876267139086422519253219636595880532528083199958329319376020428949616437011550278383693571808810554001664476695200249264565810901017148951848141190236519407348148197579648483120694456823262081562155868910288234509414171683997819003124170039986522757802527016895416103778750997642932656692488836108296634287860154329638892135761139161259402635086356152846625973618323219353184868307535283431777685629757437085603466087715396776007509721786725741757778469659148065699042114624893364375148479746502818891089363417986059732078912048476022966480852738902980599427561446235608309558312455547582490071808788160701448671472323666967291738625779821874895387000751512434568879992704449269573662313353568731775121497469929360229434560374365308462756229828584359735590639489536329110746537930071530824260433557277632537367943256796757214332985043512966571973126607671845259535714112588055495268996872289212845092368555362958505322883688973830094660278069637333060355024646403422522235294030574411818209385630420100050249128601225385855317473786336626673893355950076271150314101347365573886920275372902581247547631978338947329413479644438434495191208151907214664087629380330595017508687568871747472691811500787062488836224133992933394495694608854993088411620749888556391756404858108676121577450548935573165809058707070291630592263592405751580991240151316544612241742034306700940740182728092163294109639396190470844378390429116894953197393387554476510138989561918781864946270335992866700172126531025576132714076240034100891707514718889953895289577445977073158698870796388620626787562885448702615035814291190276971085207877317349050131263082149416504003947459418776807656203934087077516232272261208694499785756435115920284687239667449995341083130375616303427099728079864520976277599284579714680105167155851523168381043785132496158390725792800731670095811971701103643505117161744507930790681888120954507045232556636962835519527849493402153909011328791609707266648451660568331916600736153070307010476148558192679501323830185994004202742836030340725881873751250011120860655945035320201259077862727137565156441795718185257076561176597551838836997995388326153772471243230654654786301569126119443809092150534519429375352304064811401846406516731849823110399000851674938816387875926243327412892797551948946284933772737899991700498228832500468341893386752963424852144606093515877984965071892916404053460600616394133082735022845491383220447611702958359126688860721999704556317359726496304767710040846739915740642676134465110436130903194195944050353791109789496222674896094061923471655222634914040801713029059422615660430699885140918614262774797445726792968697153160858845160833548118295502115498892863585981856639784376711431738077386755459476503984471085189334203787898387376227818055797477435233277446503881631258303149491587526654872940764229730566326073157739988656262862611443953677060563158104735533475507787403150092386585330296018106266942260527815036747969137343043913125735053944310021399782162632689060962041355019521893029244105962495916580428234038657919132988298157123010321852137539594352645850837713327909624316200310874370942432888501528882106106923023630821988144891828865692442688909722784785044749208858483263919201495853240202048319448621340138801230147851168198639635091565274226665925618321661514707816196053937277979244779274308074271995795772315924946922429791213622516508446890921890877300367474880265996361459178894050256722124559498321234579986470707772161812364431703306543079608633595576530588113264938192676248448623694996105087180783431045066263496953235613067935533851366936117460780745712116778583645949230100666082867967971776420904540509604937832036621031674164894716328398989157519669099621733855060787243752042244381813145875680595672506528851693396386375001775119818138515234602073281296891839667804890542812800478190218003737353558637912251237656347735872752884429838265798477868326014209742857526081112887979537322900240051961575192295701936332206944044961259654165527911928214845783132207041114963755757698390602910606207174493406670625511703819047037641207957845660270960141990191920521413657303035941454711032747522239886304010356694106522041220596971149517447585392430586021351734882501872591588769719362481705146724925868329383431743400362211285741855723801694157061562094624093539129417315610265816810135591528123388429214526388499725006203221029088354515659635216096298586010738504981085296766112943091507570929504715257426237952060049097058118797429513720740788404307582122438012485213919215890945960484843697666101818051829273159495214132303290559758810709084728388375473579284030136702049345799007999527584099354792292884892189326498904636797230473026557267991532562493988195691044725998316369627456923239605934444498771250620115458607794442556688866041577063304211839691347845138021055806138839265376030921568946896551603368379208911419255812872717945480283792915911174317186459773563621015509440899886017673259113915423297915555753089507529328552893215653405744866319457113372703965530798674214113891048072851167861672179733596048096106409465783334169031806203159923871118820951907174826777791765145936579127365828488665341652325405512138618326550606250669376032744463578044076697952910439219398596644440403701749827690186367687138623603189423987452916237373239768254834419843431801037189458902855751116351429726321694479103013741468946401861206967191158961779618704753373410139076944385792334677736342387827590306082661005777523438775519331708064578823535871878502720981359386706370916468146546645483022694934469164469041970619791880505401184708516097107702156085159894780760836168246522230141072072197012932209903152082839770381327801966761115415069609333580629133426255484348214142947075541263091982808791495649003505444685386050723653021541682358219365188430366943105509647451330793026337102557117809460236346878678864180611101504517052333219308863693048323199227236430665547357805863122862966795131564948609027279216425974293448651885444323374424771516982859992025403309776646749126649527534995474728585706445765579755959149366895552580136113959407378797391750632435851910001099100298049048978774540472595969584700136193001484242566464109129231258506301490237535707416169488963211781801233461180866424115084568507721936207511179054712625657645669947357309260448307030979379190205915800216643991411374967501839856552784043698889684324984653595876188515719776124499406073190106311195612116196611818113695212763909711466683357047890361226652081561348293552776047243274673621868734739518494688452903896001813514128860184267582166615540529260041877731004751163276915546115936495245156006577027592885002789319864883384344043019309664911245181902570172081199737101458832346646609444613337789937207474844666402723738892512351487705580141178396390511514603214770982751557617819414209400846627782198304606889670918308479523625443216624586063572962758735155869666616044388427292067402701692917399573935508325857093692857177530668458905423711876073441052899432693899058649321192822913065421692101999151969296461290226158541078275620975054001033178100344517151544293450546247971290602097770873084407827777591296516726075563150357067480136409845060828492655250314892643417752020794895500385616126779532876554442371321630461554284054041607856344704022276424622824622757514404117740468599068927661637609537302918527274173222309559377025371534645174313255866107963389166743788780626828629203041583245566690070258190305115807571424706545570799421990112921139241539563671640372641871467494593298813978664312847980818452323156947300289372056673971613120708925827338665604039669125644786168478147803324914507612328901098624512040336850984384481779252503412536362029429374513483483787287728380491779553250295640886202386939125461808309607243943006150333592152177375405865615649659589718263221825398746055564766847866026245823444159207150845785160028043031935768390792017053384897832893452822893328264567898348593654394274870344694763524329812230027938145646498062952302320186326024739071641061492160380971968983940185956304679854048769900641764036058022958794622093208891553886568768721437241188885728537652436903347643287636515590493789644634679106908264733487942000726519954555739665016681284488814559583599086554270473022936338907942171580031749922652574171494073995161993727411954718277717515901372860496121804338556093507588484523292597516911739304873182288474875112927230988962097622382336117925736128809797886253519118554441955175207379739172097605475135035179411518483896890550422023655126300755649026678351649999809544164445192451581333654622364965846500324664143836453395757996074326819741035717164568496764775319557636799375172400478776497143147010459136221873832248513834614052584851779108132448227502368108507635933709809040376196474436777820698866764974912631344497772442168745125160808016580855202876998680919442916025074744789117722757029226321641330041329954137408939130390410856009526645309734200203031094394972559210171118110272121753079857356023476987047397357046145328726557065659090031133782467240348728414629050522128620749855365150642399196539042919840741321854789064100209739733431143282957253115659201368473518816258758653575172002678131002047360388580244177769053901970376661444366090209675051152281979985633897404730913204129968119253411204341247954941040237929662764080039966873050030271628231514540822406578016543817392860292007129934218629925581323188536709298758029464738560010593494216591815429921562086597961809051382517971688182468487243871606998932928624434836017619514846223023952723971860513272305555338362253545828922432568945894451551931474386071964050150493699874793810057677304429770184068843806611767500763985724393102652378086072855180366745250736658248175411078652966567297936345398212652205628580213424303181474774023312525781459167386785051916976048792439290530132644166990063105101189668874670777204968854734945812499555228508554210299410404050193208575191805434122316443328218642682718184293344800238385707306908459949460384779515819697481877694130002703836185215846325942359386189764221098911698960964241890386156181179678562241507968171032291417163969039191620505901567513405582523015303142431977714344115454439369794540851980308087118891960362618115680942630690572328616427928162613314957725276028514187314658602989819167526417162969374597440406528436958447327865069247337503037501836272584839865175482379176669542150543677403417116480237753183515938404001789031291572318659015553788721558255722068941896171698298760969144408505245429821580517006566747118871595943401039167536812841964695930369312718649812186064709197326564842253930227955291739467208005306892061810293356713017530852082596150976948733783409519934978183433372383493020690210210901889029411050428367583231518397715964443920213879886251358758047109507304504366458122485425009141004970956455239606645297911637595872578482485075504100598332913354088067277521668479223849047580860013162610650291839097666174567263496265715785230362992698504104358520332357605814145589709571364845844609764878834252202478987218133829169382441382178883171351035798498761222659954619611616181368046370847432298997741972096904808499132039048834492305471180865607335054762709863358646706329652785500884795725765042215117396623044510170386695919461555965027274134094403279876719328492136600964246514587000727680638981472410233119451665201697248220860197034114165477220601981526363869289892552896200068660095841913035485408423736294489766160809494474024425400711779535906219192381738083915370567864479619905247894982640066586046494231131488586995340296205907449275159355712864355715669836784508695131018814340216252130115779165322451279141470081936185764113570403880369295491931820165288840722572889714971312243541767207001600943666628858541436201819315133831582506618118173304114751398663562495225755684990504269802450432344931447130249543941298896438527396663452075199681827376691416583960128200213938291902141911282870833884220318289583988193130102768130111360553066459166372944131211761669185421821110528243560808955934180017013615292650918850383794958891263310976325346122019979999574557446217965501702963982613261120997486736644753293371810331259815718005430907954040913266777721629844354957414733732148215840302760714119588205374810956163443032694197685008392807769666478199911402449472741206116856372544064129560606567005650652659731243701467582482636591257475676491757282482439386080350997527468411870215978337699557445264983571175602759703142984009081914414207150116527107380847406220666128195423606340846597873456631055759982540565232913925489830794528113590356316871406985014009548949347987766502436564669787691996973722381558124878971372510026950065852480234207035566190369943566980908748484899131994176682285310287839507847868243079090629295163716106179778968119536531426530247097630392078415829348588505727495631388141031008003611429313552293582956669862115760518610763469088304486219232886621082324988681440995066617141070614322549701773913405313174109548520562769796961958584933698439923635189517669787390866619222634381294190669855956478535205961247850602687480756445733914728446228362070757507962111628226284304701662671187560311746617611083964612353559687914876119568932597178376833239498589392625650598847808501365733694580772452342603322023249044871643661107701250693487286251235597737277478405158315728271376150945838880416365955698192388551838649852520749622414849033971724992884323379104703139591850125468214646858724059980086757013151376943335571258391306213561584566183774300743754935967872956527459978528220252799506882690395559401609998747243789573155724897886336164419402825333468702898972318254098244165007610802735577278503073006038448926397321038812764523731627177405201227931565212299739753896104034264737468672389373893435749719771339924639825273694309406370689458284835654269866282823032429060573097251679138560915733331088622546461726054216124398936295611693710023068305404809150199294506977415666166002186682058443046749634345605570389356706818878021069178037266450342760365305469442816003934894311243228979399936143461839134231761235163954945235771171408825141262737231660964957620571531212466273274297198571289829771612004551291591383806163422303530780983124181191326390570419291629761415674040051132827543765991881333828223418204004030020952690460945366615617209734486486600683154200813382717605482048030505855495097143303692629125713838878236850937064052106965747877148105669771078363440623505433483504896641311280098362973987848819665171998805471640876057172009862821038558348020825031390427827634872801012276364744696436915584717486826691554877648763603899614053042968088635841345085975389381259107139078556182789594012222478137920311264677997245974755717566604382607910751281659150162994515156369189165606864249214949282999176758360412642266889823908839863289015661278976999562697038728716353876245180000481417339677656244078269956106718383943804888981682768754720996468589005200661239594752175669440410205267322940716805068087628435210993264605854069784291594630299548398103697574910217418971447880398005676520216294986486896787967820519490312054667344607457804316662519928061676797635080162301821349483723588242663127710406164712629569393757325410199760441955369296703560988253546472379568051813488447794423235211896349573853920928765921999018703829244820861149602841653429186023759613736914185968611072644591490193961649553906581391564504532739716615071546124378716716535259241774942333754489753889667511912493985017911992084101405856201028595594361573647899175972392538225676917133860455790614171947631399187039337716534533584721980453477325975149169004623314751739357504085351168535122531904484790927597332124900267552467429838142222881831430474554952599866068254609509948637219028934055444251852740515715117721206528695341519282883985657647422985523575097001990226847102223860083835877079483997860633264695910352126134515107632918970763106218876397117536357168983903445679112359766721821408945829076008451953106588242581173970515676059301557669987010518925605906937025451486964131221466003079160936960014755129267460007822952777254043574473393152419444599726773438485041754698475525069160929852829134985119268551213156851496206254481423986338726034358846437943775202295944478134882011975455698061672785293449758773276126955514349431106660089086447424236895713804809398125043253347673092878970485723852672853132781529874066167328847541898753629350264511746704308691303716166034791265767339926295154953954406732575756845421009539163656613999399171175440377408747523704346187112378078962426758554189741526651332947527157802984484421893965012316859994363935535401941775666257175216912742182743678014696363114130910801077976937734979315197068503374724976662136431414779732317349306239882148169112781974610498237049461627389624972391019868010642915302109750257676451329057021008752795451190812650913165615519250743740577626453669628836256183195967299505378596375529361100270605089071641925978495078492970131412413298570147246882458711298728957577633872427552131699340450344493020691987099749539138566625304337585994280607333162284756901348728963022802166881756172741102794625423755672148436705952007863782994383335737281799144120366234781315030337659157197354547558550735331656371750542303996257237336047935875795438645190845622553994062902062575307244538446790655852580661384284880823086980036999509473147728797722943809317497467095461574733024527154419165023683368890611192295418050432237927818740642392788398325759537300629763701511990070010615974569467443957598889519793286000498347973649418617631744140427538788383335236710349409059685403198268739232344904597867131231794187655858273164710311387543513711322704626701940091183920644550150867110487710524049919723182134779085584348868600842571611838449151883403182414599499911312705814669420888104874012022992130633735493389977307988079915005364744584688877730611139612571235496355903093363754836754419732398668557687140860176443168971403235667396437715435136171906317325610587492792794686705906044388152002089979232349129128023768338030424209216497644823729124748990362965909714966115544751437114221719064997209470443339937680463850129613629692023783027871660652009108520888740482967435561412266638105254727653362624732196804203569560820646516468949950144614050071917131712475729791640861010673470789671729840947795721529178663882189961854202386098491389843158673359287919869047973705716963975504821860776384885475693000581293862521424054051826755693535219183540818643978047688290574472712120961304613086376175913222456279980623045937115409121200218346810149915880215890866922032491709679039814457568852907717533045825503400087392900201258463072873632783408276819874907640560606664957762176634254183686956143224514711031955613887741538750832847180236130507470191846600912391027143139540377995717511961241720763093427117417325078490716798555599247430862219517632553197300544345690712594982800117657969243701653214674693181942663729564562638105827225483299636489967017938009838220731653007437891183522843205702234326665748810699784687033825205714373646006184603507099954536811507717191395800955461284356653805846879004386863241588549513458723351932127272592955847877177118112098124167626392070114005553323117543785861912792841509627881414975355586931080683687262468479608903214245626648336759426390289655301840316914870136723128993931930962630013546778406017441873872381423933344593806820614215117938495267471320659290224191604842446900419010374233489796079602236710269290416947178869182288088385387690553322989928145066149930848886267772927840428612974624472614439113439275728313742182773177906786192093350576494712362503631502524009271513375711069691991622385808758923278637021813529357628604263862073896215044179972900078407435570661118630661654859389400946632400899900455402035696721163396699802732500875525478689200763284691470841117137833055537284774019008109350986507016407271680230313047023551827482458089402454538011346342029138854657336391339619484925887669192077116061623970005010582211309417660111645532127174103052761998579374653967058680667483126969823958550115126391535661806759897951097996073024801404297748915839131875593255500704311343112898183124113484636869201791582855348159358227993197784729220100954197599193270398898286693685849590034587148168604719042134298170720127674013579041999635921609050378780969062072820696264364799380818858824155978428012586269134695739003335176805920377508541898506970202182943035822063526510817607842215580307343688597626605468324935346255546747660072781245234097987109235415213560714016348753496762664630490164148245109782558237785922591296669743171212484118104394176334336021838583881658875400254387067634287204553652018445993711820458013102977898929630920784374274285890513009891237678900772341578738475153045238165540853788367630590503680733261818601142235223219706646951043412081005481512908754082950592328142650460253103986059264098708270201903296409179461219683387173518236272310381786419994152822271696718472465312272935881099495668915834320523947097315020585769699401784042348041826477796103774740025186962061973694842836058915962825502779849744254758278946492440806207828659619867456585571633566245346078791783206960247490092575049494925751183565704125828094389104768603823148635059964723462635823348344729844702496172740635546962100963100907685180134232766638081949708616986765232026493642713363257454341449478065732070321331733516357514504306754395260200629322208084930467286432466743627898050332452942029269456376429092022068538531711701273865400286285384478156970490965748500343291486325791383989574682469439531207562603883909932868495706287402601079214897919281857778003295342209872740643063371398866233458316204889370426440637902550149259255883476229611145281865444700331419994997586728716695084016355304583855886190820335133053848452647552122120018668084550605284481901416869569660711546873242383243692635168599550720571494402150704180636927571657808136522479272012798589358469570234754438604640885657600790288399977746820997028468884513237753097177056392309983771374987560803981309713402572076212190200134786769859576760982110378571776521018406769728251974692397948573799187670384851243699919110737948778984796361239558284297797034429149607374277237112911969678053215557057139995982711021334954210029787296374102220351257704032601220747843380584546273282118860928572148743513733294445103307868744622351532816465766733751086667826383472642147639892871862563923013901034450298359119770649151383864524218120633629205022867806285087134430693135339982396770335150661602581288769480095648037190179438520121668816521566352366416427417396907496039162695221193400125423304410156883648355143682450957348877003621178573084865369847681872313759483583112907973544920001605882743573676513258455662967938236072877292478340582276119768390932257603415302141698675436847959626422098638290861637110724593722834612158781857363243768534197051735231210528896334710058272306777934850488910349770304181881398070834480130441109429842047893602577243491156638319455824588533551898963511775637975257576945638323857015991559949357847340055372364588546347099844098870924112306500291031037411020020190232015547204237560976911402611778315881280477980657390113942769007984945261664191661455854413852518431068012310919228462206993358836206892254466241545818177400186668005215618524106850172165137788377832204067591434259250797000662322217616199993227425482692939304381411213388253590850893636625740239038921337610484412691477485550420920709676675659804619169160624423266494419142445252629429309289348071895865620687622964134645742638494313292990872193085355636939509058476393379735167699926141078686109657053072120396340726705187581455619569386816602886588301547422690653142346208018424295407261947864698025320231406548788305102796587458632792107781566698847807749578429477837838671304439748944955811951945618209757753037202303093726897474960903072335205910278906639330592423920411113876652763719633603462652736840346845820195916641692723148805470784926781201108601262701723071959386885635085186961436864747853472736260547685531771360419114273062414565206231285588311260721053394636549196288215740526368601791494765976274491646381207141499674306114362291490890173888707693260606072345945929758558395001278118219874338976796037016876504413730939350796809493160486146789150277657533863466598383028575028669239996088362220026606316776189310129895969566974349143193982650647614054942740328341227124092582438848648796831520699461803046428148754604965867480963987733194693696268548416769130522721064336999080956890913266095564241123100582881736189708434525145714592107321289277642530263041538363681812603526818902357272967136448034183261617240507802512162982099060502335077376842751974297057541545848368327946820223584875030967045052909555810711765033880402441471279811932379102910661263203883177007301605563241543588090390521874778056730479536537315877819797340224801723672970114897591227828330473582542292093279158562815725981715162468184485967938878080712382576075207749238776194334832066389378322673429109539403342076309092255890015991927430647701174741751353289268355467887766721386062707491716510666702949408484175686515423982485359041751783501492772310074862879883618676984596191075414956083626145957962349118541633931095599454353420511326788820779673836302313888072124143320021596182863646141341861052773524151915766001045987766194136417472698705735211291406438085063356347876815854634132603631285658553563598715912841262292739691101859338653567264480534228188971343846436469789866160931659080080263559262042971989107306891416516554936489616247323343299838104117106556967982704585753296911639981807169003508279578448027268117949147954619201150946972190656627184915580013361440285230929031189720073790080976030617540508981428443174767893757668103925302338036787231374760289836170916637408360161563955191785497886638918100936853066581101661688605344185630122711349574088485345439272177541083280962180739952192210442466157793116354470975369899058051023539590475510254287259864641123371456163883378209817290365799072276316015037096201474776049668281211827880483674621288684766280962890922940636134188911465123739216447729287695063389943318579703501628830183263401001448466964621517602782104946398978984644630400712051548344612827160578857487419583763902957625666890323389118571489653677867808165627924403092617486611505509307347132874440777751175435968122704282559170516104681078313749335116613888900386575490780051696065546865042804340163955848750419042485001206614517089879321514092695358152918363326481899891017888673354182240823741236132074505780840285565877875793489588179004470105888785232163384196426706093687132251690146729255197920640560799375280903266854219396512928834427547274901769181278740575433736066876064454214487336103749413101234861722204147849352901223169152355193498274244202715923818902100849275884642244648616058639744798737256771562296141525941692147430832591308222541973559547256429679765934854057987345896613180738056146651703113885775199371469398669241169928446126133951574077159185470328704420729338715414210770549617135895159816427868306852502178001843629124539911363527900853092037633768608466004325998142682670493948572148852282030258979879437495764355246541086698542997876085515954474259093269421088683676391357509663595404846553479999077926280712517723546420993283388146689656707771869939063826920235866119870391215778170517403421859103742769247839123618661091777055410549656631031409752602140280019969132997249160395436034846709052185508471496097948062171885737100556667466069765880685432226860696152947553181901144096332275107676794977658495374235453150627173455350277201866631483152802015646022784889796828117097251433099174524787677826600159164823598894912596778510362341533900446939000862772108689486893048230554541143271020637643175848630041329012035874040328809365703325941992153131902828528187538832611109820096297874299838048458655289624354587698596027876157235388491366622631211331041666296538571158429101813802898280174920290088239731301854632999151437038623500668949783879636045820867892455750635119759493803662004918466030504196816852079715356653827218600250132897504413222684103059304035344582549850478703205696034412710310435508894629814812164640986989784557382221751209251142012586029094019409792173329451582151361419277975560383190336650963731024992812837718555385941814786195933626065442105173613359415288721818067418653355436084195770774850471460022660732106661323485515053684493421918932522970533430306454082175255668387517591859640082858442297904696917195746273478956281614722921772458771721474005907371251764409210868665617369581740401301044588817146760329255518752223710231615749496604275992366927059608844663411900463845251186047432146976059863843984003975648107597614260526592749262604490506214786013497357405856195049051486905610204115507211131148938801582967161904566793834625064551079742545892721367918931762622369632973220745179911874626939663380613393175080469994207173737266625690935037655459794433130930752328132694255343360637725723544335596623888306570046114561023439488212558013318350141392544369705233198790777646326956669497471439219310734693202825062531302746059156658546638265476367379086990240743545458674893443633647617267350796413602698888026303639632751194615051994700566082396472095299424415057492867377973621551460479378311571071292292280063593198713618106876929279344002158810768301835852048334616264384987624297806935786107490488890259783590078831799657965640976849282536491687387640425935126465224040550302279128569707629233128710591176122015762852316383275297412524089507099581386259673924357525245405803164576242848459577927845707797877689526452185471231791332483456063945092261535631226130666124989059400473872182333618815095288294099062624182762655563587054545570581845264781115092312047906360362584869725169561600307369259284767697920049555770595522612742397151615469688914613962619520252316787794791430984554976027840641582400300080107873609587448232776129106504876021552013104732643387764067374320752652075457828613538543802861293743113379612620168117531770143732684530245388122792739183239731946882219318390610275746069752415140632506009609906650802142238582365110650216116762097777961993179967506501856968582521030397848146540160271973718318539887966914394545355941094737593094611165769706478096271213040761838807391756347173402678870362913468718982537646336493466328415688667714383557366678763533821909045794029343849135506977280237768798596361360753011601765610347494786422425745807632640569080910566332926111027327439083385506924196524554072094789723135561970481013595526666837951172178288580069103134964215064544415845712062360767563020361809976072602597232100444384254278232057745634268033782856007895390029041610905932652643505548004230839730982757709258642574616920477555791360654375165745666391489241905324729160501441745504702227424524394223502089334101083088745981715171924667469779107706700902751136568214633370456220517388794002325074964878115170844006387828290009921862304041427368622031836551242540422182319816781216740841313481103875263943689694419701874015324134097754276255586458192522533832658943330834653820428498620234448943369108504794983293917504896885289192604327342294912239360566592665409705656983811959094086691136312970039675535873000662898639725604061138997764404181855886893337858173208492041738960408609137004938402745637105170635189716584928555492039277957569997413245968938390561066651023472212601946945875798772696398164316556353998922303728497854268475591185353750804542749039205269185122474999812497040947564213149329648701209453329813877356434379660878163695287158985368709633295479421329617802451328977672184611019810679212058157423473919810036855362381433957887890744678698214460964162322245498431250569888625980432424896112814284988316844827983907227058698568473532771758601992855721047599402174209473619511170577191262569318347062673608595411862311988968338527175052403847411478302803938258323485224124582418396730909293857851763727827099540663896792360809570901076236956968985195075454939007732587424063467755785403703739445813604226194381614202786977598944434036248901015324402205391466696149279096720651576176659160276077343342530700232191212409908192300430726326962365081711569788866407293229632868067892148406882431698687781100024781198458941863019049276659799729138583654730954919518639599356792101183803001676925861487389100640174728493300119994312974595256645216672502490750145303434176609829396989715641001410522442175479495209484145770823639540106790425155667759768961233239098771343353045932412169168625342353052906353091731832946923936574678009092070283037634086942219237772875787765685194269971659657025066656490718268071418420767153503139809954829497788785509526639437643160680274148098367863046141956670251954922211451490070967351360499841661220444789147852120641773422359213552668888027668274249296173553507947453449391118204831834924196449111672136699803556706639071612088569462551316047249437698402572966450344217869251409050593953084951846390351046335797074149490128709080171585267783007004387323689346731266545157330206879586580111424315335618099639003611313590411334173423544609466771978983026951698128505535360312069143006556450855926603267436378204245247995902985193559598378781748201373566531219498653211221431984224904821522002122521280963833208359820999398614945053976915224924258204026394174825855612692311575887416897979713595497388421547141448052463405505151555727467916214758702232168423264731553103872142942633132176001193276225130043713618368472573620652438441720106635865870991838082984655233470652670320684411266251687113007576875774799347532268101632368236731622712056534184039488182395992825958273686600291216837443283648858334083000212888681762657594709593401077295839568445676760104957143601717153372422168974094003368174879330495985593127975828968076174276180290604257741600145395496616955737049181635464945005105813376846352584122930657266221886933206739439060222373866440230504528500870293415240739593570229745182863734297759333333271097325479174419837740401608740177364268479609989208365877629887178813994068181294169576140351234907828857734877521665817526673231340984309169097314839761135083209482635047050854024874658425469419821850106106631895890586411156290499054944800999569852399232336683108930091757894704555237369404345724218879427150741296920626063767123016868632321961160808532341563511058410283971526259069010309058133686340740984241383207510983561523201352197959162064113140364441250106811652041829335980448156367021198098907640435766728084727137879936758121388133898367221020166855451086294051093323941002073033204111431895319294391109071912879460359682754662611900532460715639221016418590698429963934535434221631892434841609110945174012363700363974289320138451600901686159533884066873981916218570732461753496597484911528371965609145540906630905323377317375747233740858012035277576446628565421112878128116361520853377499612885715301778976463302139828090045051161452113400650213348759787630041861283747105800195602170103581537860247558990084634805870057804358914458708859692584120081479039743938684970506916578383819823029375607679290201311800204518291256791721237552147270671525796862142971814895280695246956858730528446837471320541960449596376272620492290754920439870153672209874011294126597265654947747551404532134602243821121506173844721812608770015427831066909397728675273612780437605489817863102988445019717419504995077014395052109535950640407026749392185371885135716915721074724554045393004279979722154528948132919798869548034643525280651353888226108235328791876396637443780145033388635410087811471196127889439380847706604879650145995728063897495589127944960248468712381609486762610868947998887017312592819856981570727142806695137248712158065127313797652369816845085417273262248497433596617821417913335055099461283439757850323241437048790670263548387676545725493326820087514742663628029079840106927554401987178329633554398576733639159966116666500387752225037728715587120694590395474152200260327682535781339815402999550228693248999109152648711467021446431567971961313123957253894319644634124432978626421087725909741509784760804735520770441690106826529707221221401035060361408901387405807793808135036890280092883156446386649397607623332632620690754228818384345458545544282257053965791248309800834675844315484848408143585474577169568908747312077262441712131852804697802843279960115737673721336480443888403313367933005350192698644680853786721746037571932680751362587414659364247237943385017965247089624207849221397977536538272893369898505543683913041314236849253183822378050450869809043651893872023118902443396098486131751041336970839172471058839554783744226528003181922114598526876953585852906029580357367194443680021599036216685351207236677538892500307093074400725607150805672853169334017110459178928475946807810723482292620950070027989682024418976893560701380871897019276302922037898754424492172257543794984923260372196565753406743048198388427229472193986833702790539769641505590202879047401467489817473596996069422630819810439003746261395383539626987001092527401097385188612269902315564020195554552929658839751760320610600951419000121457480342174828296244287955225321588537635209284137928374049702051490809970825641156870006785382548977865473499418078912169778307779433536618776197228396730139261924320271997380151873064910163650318570031874974541003974688227656949563295400318288539060640317782262553913362704777862168115055242396745649666251247444364202224183801635605149293565506567987789100872001370244312345626717166444170072317595251140680080059663296952040221647546206397175918335921492113073946087784841006648723508018666041903609341174016796818356696052443337136555061968827412548162450775138592785133919684586575834571974602140555157553844791026208431482272517658888773751133124845563998296878578673862007410360027768408845089868391343678335657394188100217898541927948653904096385428909745423238258349862500302182378939030378338862514769590176433786271628813423957091272548300491134682035582815297180020569148527304199579028441680942703310198958708183562107711444509353511060123361375932898398544295253675266039268948172707271171319779443229855016705748119522747015213550294566322450085874756124505112943588089033480833538692707482368627170072916462228215866078577593292480195737441983883631675856549334935990115177545080529537861617817359592487652422234744393379604627651475273203048849867682712324139189216672102352664756727460807817003056085968549578915681588392061234009306579197739156878909359995674591918682653645083549039673608989548154446302796153566009283402224517520969965737853998248202102299340777742871713503629890332988790556121588080219932552581980836674071227569583171481208766720045297991120799810604765614949500771410406663289398382259419013037331900852610060474765470128278444348221334132376644931316325202753743816724314766316443284407227805161823263602461924561157945305966462321242964691940945317097645098772564272747520334882443069429595113710397075567063903541339960866137885844306267182874382258729615348038589303964204261774287564153873858128283939945309619897348192646123285734940685945589878178121583468373982179764877845537307102845574867703276630867088103505433896310817638252602877819267500893423134131724810649927134217703644393938773163398598097703920398588073225334265235107639500324812526782494858019794563829105233789464546767614415910962221854604231879908743701152882389208951291450075616659344438492120259408066337066440052638987568481062534740631612224674742272402079339142645888170033619315758625173530752835082105258011700049905426157354137508540014335965505849557623801902297875500444700004154916909869158802950014715880578517803519230382962913911894416297633588578553470987017042164836527913617277015885946537444845385864691079152157985266106009997138853042842447528145049648248490665098737542107300296874066019536810535148376115097413470615201052930331875231173050207930495928410945932263468798645239827078324061738590179877176157410502972455060967290701215884631269494811905434414206921451501052440915641779108415801098714643526705490585037337473973594525127022350166946530794994554455222166225537578785286770653661615192091656599358323672866424552788742501891991249443217093260676511158488934171250439053991599603810779506561541625915972853593223493745138757992011652171170746955607617532688852049116051535922402901617347849832583184212658696679599613530251771704039345680451400785053008360132124066654965688171574945645255414320142307429451570625278340143987353222768243159289218141279388820160498808266320044834601948030667706071767617690852365945108882071278487756035622591402641504284550000743687269203015614977521609318184704924276423297499329603219811774799902601505224595625112407865001756060844419127488369893669846401134987613925551664102588897895415754305733105521030625242852763792715757209390457821579026635377469021880146397999248627344578940337365575230618386983993309705922336105067659394692961981729121178341280155754409482160944961269224031397378908650485392481976945923967842066007509085011377995646774719524640650899637392700897210845763769702783693474718041513580515336008040058258702746928452540536707830219499062928390368643210078379108902738986049300182079370269138267090136031226697429092661180686503326839054574220173439841589275112159095631165883221363083659372621149270187107720706378441442481168421852938548898157822238780809335536005796387307326560523241628703418313585274671474755459389458389486886814871473435113494263626566528367344660088107696945666627856996566610653756635422567615997297009593695237528976090074474387594857824066752612998045053512603432655803103586837801649008266747966367569461687145543585725226719391507137483825843220243315391745234163484461600469764542461654450250905491061642358929113698613104058467661920560770686870327368240020871659983584372933146141198385197523232973456748143411076833168539049229864455314583788603510785783033538637601825412994789062204431350985402744674445115030633838722571680707130625198094367157832712259593546377229006344863024035075532157669993162336019761545882585215709765921510995719150796420288825939812213944395158099936797286317141979582760818583264768007755408734155051066065323211902653312969266227926816524121505607398156675463176371766857790023306618161755266086008114494763222638299198858246612859821358521339881756081792168920407413499076475457324175455058571792273300830687656360294989886424585487718641202844708706547287109674489048518844118494764406606211665343267264766875860688352721603866113458387330800281149456834975570975284381690205470365976628835873066303985553858149707271448243693095348747061786870596046610189333142554998019938504219980174535359173137116540722119470884428617916091910400577358993238133754171531219756299676343638467778673479095485696176291309226260659501043279815418934341066657007368360583246120220888117696980958212740169193159447440647850647327408526954315140186966491589987826296665966745685622880024291212124148956995471016394296083911725109648965595943254384632430552521795024708320666319870916931825187799143560680221655753162846644853259518276958298750859773450808590372644496188049780139631639111005826889031807452956336849181369318032584223117778340226798593578374818608826492357261915407139714896379860309047217423260989151755287157356569770649066694702836649100010481097723193442353514459634437529293034342171585366228116367361898509787679180163702164387029970823183706198314020825533845657506567789832347074224481030627773842355785445491795873270612313651243577864239176469680635427658217428551263851945198928703479717919468100780523113364496272960234874626474593134972094136147101752526433144709942220143461744669146341962773986799022569294983794083970078664112738690178511093240929764679394659854721729693301660418779218223710415125795600463008408674918108407925672299488221350847357138359095373096183198411303112630012279331214250345652757473156395738754088733146454946023262790065075212257092094081247340612962831607539097442747171259260707230706074143917184460522565880859205236974402098046596807965667095878847078841140086271755328658962731763609544859792350148354076614004942949704708144462940450979190112546238742826201615314499419903335239149588363708414818904197928827179354239700471864283718968448876956489226496405989778402226848214986425268850851157944228955394512461607364508545843319391310475922931502986641145739725509391878769245364044661230960624102528122873711687706732125246264081582738018288091508138771811089576642373672344053032132009245997320656481917776017716165018700375654938393355612144903680863379351080591630908127465555430375980059127184737895746006785413610002318162481882324037192702764401119065574014454818354773703100018749788184932487520210189365437269367989959065350169573132086806540900168540385011654195679383689986126799447292489730909863507240611643868400200676607216659744631159746810126187051926661388004952702238226621224788506934454810454356429969730576133275925484100514468217565700190792142219462535325092763262053337398336798268140073293769944629603140648418969052507653577442953509464550583651910542175115966145626779070515827800935802769701425189475824683154844800086367134775519832882488986402194461635942215223002662431990302379786938469432827018075608361190860580499844487199740459073343257033032867338783993154417415058989805037647022628513495067349032147664007778046327971705001294793323959210285834678345804677032851503867823756908030107562446781595307028829334356729811819761014938091044879085201965707107626507798280802983725570734614950930417600629489945069160767834192872002395736615464019495526720009025076550699893105744883699627834026830770474355109619488510468660674344882388588622799077040500851315534609660229989859837113802739168535584844471843144330916642262280063098197111291984755342403618171163872314769422144961451368891561931553645854289784595883101945778934906915787604090909310871137043194802077501611169862834129893156507403600688231241572656526245296453658203482725954678028402462546387165237895849304336704142396034106196868494566334168970976383665396929550783048504649473479652448866724970849237691256937766261323091746383284306704396710444791273315243340432761527823074616924419546377008721697664039711271969035185905831151040927713265243865299300034300192605843803285176935464610600496220279928437656884489642946711168702708438249100820047606537660473638898136146764288475023477780831816728296598531100194441470083112540288868320106921820751277835829511098181474522011154448443720908122592929317563524538630445365386492202001289264099450918695433730644277422311927841961062030041054932640637319690661577266888083464845873102225220801251450109489342220503688593318320493747031323506766786602323359976452465148143117719245050009763515716686692578165894651650852466589033934901212462202530675409659235096740359497390857947489429897928754493994158836700989037821159420078671680541509131784309110208023151689496329517882411613758823512994039157749884394162149680395953931403758275264512668065948643155949725150124754963499827596443808588232695780974255104688968828380206223324120132855317347720449468113924896920315787521209672621167176385661009668357349301911920891876545988949064365822857249544317855918672776881622708098462776879756791837449712882004768435733344141476459125707088966522991661185372557919292462608198025294934070347464949853437666807564047729806102964963481733183701084415532259977365818086581271422896014418932498912626297959117961049446246830763633552600591761979721000907652193210709993159622498520947160800890244801128530037996807512646116846537640029346345156407928358118772782119887092405370774352406893366901660135621722857020542630627438889483710152788711206370207868302553907674228783680100257637631493486330880947180133069154684272649547476751767814538646680336746259251605596775748242003095993100032521682498291129643119520985211518553171998889870419732460924208216758745779114876009789974394865331115017375446125443119723204140776749299764609524110498834314775763639444486008664583219906334452952159897653971609956679823662575230592723576010411693853581205041751465765424611448292188458877627056818612363647513132387895357616780458476027534367899520030994113988637816641379934472637866794801441235611782095279580583024402282549802066201353552916512892847026035072789981723405811923060277922872555148951547027872207680422870452301032553959962725740239090859685719072344219309922526397077811260469633024969957841664132344588004941449917271944316697283657314161208375925812582510468267828213684837115309904772930126539014080118042108265205912018155141546511653983632973213920394624212820297782126695776403914047047054568427664630954759448379002207227703790860627407748027156432898448119973256410579439742166368578172073498516305746043431944091184910279877622123899978849640508427370519624844479446166877151970367606957271175121731509842478309054356656724310904467195125170150429228569114442341586955670292206023712787734093076793573081933533209925487178939664840479594774150556679118123899455057645935205559593943086199167648285975889293310085328686424136950521168026140182682752877048654847076715337672158085291344785780197563291088186747600537113342989022908693999136549845653085351728603690620027614981442272811547770780315892369790494897031558585209440744283546686181227478225652027948975747799237207142676520066108687095623927727181397684712242738594596762843682815623174641769367643167246528151418651791436360608933444464850253460471995052197464499202206928056170378925850675769804467223582887676042957171630647062354110418797122708048814869353434428974111224203168991042532627570495964040498549081226116061199932450257027400170189496245630435431354181688165551014574647495597829959466572251134437025204059308296538056553755909880732041580545853790463837657476771194421627333453699646002417456487815860147616976855213760525742349456305885984300503379441556434097047453311650926401691314436672900161724099471857897642060429516500781291008433038546854618143044533037241413465678376499082573956751200573919776901775350099651590312790193870293696588451691760870197365935809433604609515703751328697019204833077528679006746811742742943350451738803778034643109228893074232831785791530392058685018307529345846794244989376127796885663675863909303642642988903911360063913085079760525350644029880700507081268252093964223644084270926796585032609152226906151095168052653937887273833522564724363728098597336212864391756894146229693470734932179765269973899358102146188766867638189996237901854702583892474722090944092487530612325682441664987782605674352169951506129062894339973052492454148947165379020947060149289937691012890320061855160767151706576120497079330471820725179309904901307650014556369106122451968079273337357066444505303379287959608658068352777902383608236599753239668857363611750523171959630885651994932713513009901783660757272943961599839085240694736230069925223228188824071947496910460160955526383871868227943443071112213764367685726343891744099158922748361574793059538624075334450425327419574994991159069576369318497931708871611719991812423442820667532365628984149113041734936031162206501151127163446472301493311733349911671740984235048836049693188298685371035326910386236338472793756709927873588798782550200485864467303612724427848667575827806476562922022469288022055262815170551870784755106753684769769617683183062686786149161428245610508502657761894833544764173923739648595358448385726745480532836021473770185911478347485316531877547430642751606224995885705509143927657145024237689224600212058258680089362544860645885721805659041717186004504087617057339248466204335436343413664154268223438191917562299622090872498708434528049485274971199964592726610735644443523421862884293116374672581229849262538607889116985575273663655964982880958214647441805920068313739209150660470511945103853236136235186016392062255600553133406198755693285050245732178786426440708825264794905572778034989110471040928482271595056165542144257178506426948998904381109631167967141088259923485117141044637436460223883658055849111395592845854842544218635187725893772388976459296209898480203080670591494898940955917128685980193153905403030607063961162202542185136095507185476486354170274956427589058824812079933270709850302249166641696112597096903680832668673000411897998675222272089951755308415942146534666923339049453626276074968071049053464030838400908055015856902155967766714522712066776266277890614766469342269340934319601177788415899470432913939324130363912132971217016962915105738950358018702885651972290001267168088454072712938719375450430004994843964170329856785444650895351414958960088142601848877668815570987792349241552369030896930332833330712452735383155875610008745122476594537563461733657182745769994318199209852438598589597231491862782776752412285030520795478125636717489566046776069371177731689398484404479424637374050298219810012387728532677801353814947735670077356593589106394951005811323321758688964067042102156793925278520508979687999380433167498043189192237416738353586651032501149063565669659811220808792164493381280343361720832272567667179921660791139212430096520624800912303816722597715608702887058040906527229046372563648354495200647859290931936187392904137946626191899142494149976357483978864519279705754369867591195411573499156766793328544840249046032449589759742071681230817074800279221950855850797351770618657538566744904066442868197736170682994896399983331050810848498191629965833639267258388868450046877433704764081521573067433176622557718622180665072445539118421643252997159082760810952865092524809301100455077736524754444101349737697130854677718013875007868306814420622686084391199297756650104877100639993635772345378781719797219935395023885021182422495491228212988534746300870820323593480800538527774231479344704703279961597409705066235471952003943259475681142347474544625987111774955296754809442325010360686035252139503020349553358104916677811936377786731167647070043878661202461789110415575775922138230943689638402513896359465285537700259357352045946753069857626560568688224759950891972650624211754001766578469453980317592996934721626694124107987467019465384191741922402774450125766651702953886418514258295683090678653546857579811998910834431792407751402570825331185848343222371370544784506881758864618327623830481965152166704267141628510848906001362947152223715424416519716002635845025375305475317169458738350378657204933218249935147415801578610038835030240724662267084442708106478782753828616729798413895115910019175074101316062837916645939888615103533414066449588450776598120447983693207873003017050760723241362908169943749392601178266806689068203251279467236520346956177648337623444106357793730342744657758480769881076383141431193346311167812627315541808715109082115180672217980250701120127600684422108417255096295506803993051999920266124068257198631740756853006387266469106120123843774684722932259870576773343433694253803988670817124575973138720602275478586277504177031818523442983874174587756916853877669997192957685028831939620869123706958840114099681755750742965111837381672054981587579602261176096198016123313575372819147458051019235753542610789242207035948924378247685570383327913449185447975553668291983802393089963131103566967127926182746672557422377573682552214911707802541232935789222404458192679564333398230090058218358113823285340203272780720450973627626446458261962105108503838663876274838314925773379167402240797351779116314409861124636332777866364473431248707931834070385146857257272385447497110224426912142671375319281039581788286817898510696820946564526157639479653156603850246132921036432789534315314492734970250294780579283589038268637253948520229271951430436539092788471810857945655841441840006598192813411893872553163950609573866585138879397543232629930297623209805928311199495023586259639104416667357927169174022595728048439332214909516326420040042851353354068876876293433481635036702288515273221273284824767617329733359074599439008305541996199314541187677816599284994212773476238976070039791373407566867210661251036645271994828469493907778684570484749069170427224494836103628297169184729206401023218195844989380371839115789019470631303115864994076417358809004090713372636035041942245194897604499937811136365859994434003333859596305336568197959042458642874980829604535774876546270206221896836748378789772090572004196442606587653303915502733324323290249109277092307712098577186231099107425641584248832069868594786171867638738787397484438511312679615852229074012204388579203982973031212993330044747361129147607619825088142776996540737614118140121248673320565282503490486631742311358526343709414098735394054207701180590738206863013322820504111270827504241114902564054036675486510629609539078229198637675576826896333891633677726432151221956914184272012631287833996322420715388831552235324679324034921457815237424654157582648052701033453439744568825692020866776821434872421333885942439629452960127297999070374372905027274236070210661807309983848585035324974493837460365792278408263165431200447566501838412696571771377799146870313023979218950716097764231544816090108597778147936051253031352799901332108530896384427133965308324797655521919186132993186172431725641999491327129970520416371391995529100047194464071275512404188080841701732405432394533369204098845141931072733019712238081301330036312010076302390771840235105467881579846099598343597904957931271828323884084816280972854578123200275248933562799999167888386653075938172092682626103326988264875004518448709303479782150093783841295614382438096473877499520777321103471529841417879573052949682682305735421286064772518760376178296339854130776569928173149677050155093560022183603593236222845812353983942605438869363514273631866587750195228502917147060856372011334975006820834099757879735424009406022215731323587532730550992159490631353838459446393111396117970417232254007786659385715837017730023544878026259873909529254496548099371894781753688744380392374340519691588167557473150387569510785287893183471026918983687245699893919519339229973137549172158460010420459077741290020064325164718368496158552857257183036199707521294400183813285198590240003713900379076880084347514805337402591901480149738652578607099801644943933720267239035146017778396457485003993688152567867105495759439619990388879794725611751134059078544280822854811093644508151128606629976273022954399219388371740282764231255194876676389778887619309035987970576573959208492392935287579154743102812939205702334781352608320194342598413984430373740993574465067507433362355423999187232252987157903265760362122536135934912879855586626824479826736639701408661926806098940344347315709410593204988763530237219165661796866936356045015035931514843564941966579395815994329373412946628902089929011405757974804664167272361054289325075846037421735791975772388474742722627759478037300627489834419260016435118302886958065779995997499408900125873550223702428838428077944761865868575098081704380845437965386517835241690130974363850475559017051776894693475653151712824269552625980546295131397136354639061375183137969428411632436051416692119280937119877053151856960261355027478124562946697142959990496890425864460811437995973573941654935116161196084036846774698384078311451214564389214986886596805646171222393435557132338761165966976023218591921374195028296402513395006091313569980321582038817128843098337933215058864164957918369940786180593193397391649783890161223585563227031887701271108854244664093256680276365212554986116611547578512838231157176646491865214685750494398437516735787327339419768074001531375335977403385100578509762416197412378789338362148536712654833665256163635377097570927060884598420265412718221440136695122298788333177255852755569149133009502554416249389032920380850254419742238813569792136792816232807008593709646848514028755969251635913312486701785558579562800475536262364452898222937151696778266149586309242455882022760556379915224078510957139044603244269170132634772297242273571555253529763406415288810913479048866041362654081208752777158899526888442357510700424088003392976490890734760659070966379624182927442782898273632240530073675492802584243066990087158316868066453935000369800189925359161285900899682222563121562458946927124103855504014279791518958322213472429497152945783872131790030582504659025124182005498954454663086746924929823431959447607181681452951459062863376017655343311970695870609756138280268903016231929087885911445538797092743855603582829472457217995971543715482623842208772670780205917823789168468569292015993653993416584233909052662943632159391225062646105706969543878053248648360246487451030867620652182015695637727681777971485024106561057259412621503146590826583330133698151665718053314039645559987682322159154541169828720015103438956680006746306886512241612778936750039207352246447422153498280112286383175876450514510789745012111826008711209862945636358888839135680828668669326110464938467146417301952977294181458213153612381139761904873496721813744589576453594021414733804270766100069285559534637771720215221477686834092603483877306227200612280484272478411224843594158299729233054809175495772079939186098205723364425181949088033575823786185781336488884993294429965702555642891580569294304895102009502904418372182531918062477946025223862945728113151354098551659155166596929706854086775827746198416385206762356012661828348492160396165586170435631627178269522427906394496695558368307795101078177243217068437755632896425120599461704415884354011395020531839431874718289428389363169143985337971406296092744937786315895090803984382127150645704635183591476302788604480938675052467872384446680899163241209424676425252132513591059421782166237754628059742900088687211065366366227306229064468898767209319716571098884747770571665996135987506066476903411674605517456780433867414690585892916515196700550626756479725362827985030451642245851871621117211722563957684760355319758050374668318825947344666166212942852462162654355186730024708569397392059531791935438877187388554574989115483716233116536661744422228715428194931677590777199222340789422745290967576573446163901524884172446137275116509882385761946104739723307736863235433223628258147450427638499976024134235167305731944184581085303755217950150175415320215698273436314184689127689487721037749454458500456096574533803094489847230564357190010169997637022558916102842217573843677745832757208663947277660469518581109523263817768422176701693250869777215835071263772047056106455884415933458883262069096132319791241785621802770394310168793753354970693495231814241427128270975061136339370461112675584377604336692216046472014385926587741790977914046872611655192507617061162568945354433154601262561016438593332561231575441407150437597304329811676667408988451470272585343785628619168012733540248661130025808162121739982197770223391719254229528952981909445460945599928767108495485832703750528974047379339018688355718023943142956140800871226990287361829006056027316323112041513674352800836972393769511997547797487362174505869412126386342398274041350533674025254651881815918411057609251790959698141453297534131613920417144967534686120913104637206106028870252804387047359304210118225919125792400258336462890082369478407936208789347527921943442950517427520049188927825710380527211511410489187119562653727327843671526789261931108728915063740366850381651767137134979115536883125021981230152412603661389012565587034438876963480357536439288514089271322201732226763592916926833704755266443288325010597337140949694052461395118485640860082689088027514179476243500453277110038600277415276100380019683076780073889965585206496505616353419565345443773619285378569807413478245703020603526550839304811645505927347085665653486957916713440363803709063069945666055089152008380653736774752528413585882536914679406834628521841603698910204479928691855586586169389869702250452680076324292397819950514149606879428567246970848855576319798335323667713105963386786695982645552675771639081070694801075410022413517160776266996164163329386651668241380905742639331747090741522074485263285846814248957562595305158693646092585295248633816525014496201665091469320943537189768680660275798041328067095350799639957101066943121594259480222913408387782789972299747887846393290015298562650630917524272669420597917203562954131855408004962480766279893305423308547304886847346889547994739719617290563084923107215335234408792261063771938863984437699584589127058808019296034114890624993069407808180193076041645618517516224587873054635330606653344057613699284805183837080382327770356887201952572668005359148874748649817533859877480625028684345655943318919637829340626079064330882080855196505899383898138861008199192011557121498693909304397874153762443493865395153892492987917767438591581239057583020567574559264986157267540982191817180329383184898540154505593710531566345630370681128732419846186080168390994746099847121025210697027996002760218331034986434415690623601875876207154055730921969964593403558506450603842992103515930279859440605079575612381453150603078082220383672251744611493984925517339750579561665782163294460522457428053965131895869039505910856503760931703998327259734064588224574985438146695598259723847625305444536204018405385642170016943698399083721778630967468624320603967128964320067749361974480157745640048281938215847498222645857927603941447623001841322979717022168302662538194420797713670786951803142555066409860628650425561132785846330227242721190143242501730914300749326616932801815017664809395241241277884890002291643403425591423601071544576547079287435000688338183941073135151091529111219371810367606942969510044623270851967974907361803498749778492041571729980872312546378184683305660244283084616654011007723385084973617265867768488854218672309609066293917098105998433851872250375425517525649857751760374762652861865362637024861880306029823888463401344341338641180718528689257962062569675586510415005811259853617733494372128050366081550408784041251142463210346645373343271753323727300468516714332799492614769531989607683895104822209135795303196509139282696771696224117896797369039471635538530622515529862167313133274042079139722733021403044744429518780559791980437684484888264161422673793541336843160972435691974082725118511342094348293816904390515393898327184880024152820287554451970887982609760071619245103776599894775737427736737851737766029988592177226157047045768234116717676903876041127585230371175732573672966758037487709462223930815473712744976130296141462107024906999736044224253403852997465109101636904783767925062129277571011830042330497317941572452549378966913550696904306474534494963513110528922964709710029960195316854106004268008637259685580666589539209204114444013735699177046443064559532986333244049694854469747260772195031116581170122910629351733222252014333557726635664276228163486260007006382364474399672037112730255922395568607944614353635811413060492374046691139114597929195299521283724311044949706563277494885624698552620260564897616609990029669690679508363088069211787922814780317272723722242445479290179749128773054956567967753389978164359534654036778961984834207371585465100066490976856971628415138866226337204988039587142867745275280807313784957564441504706830881325595091749347876151491524981573918189878022215382377046727820696446091729984898359945362960911500853713238616173601399756228438529586942135852317883844446291438834878009798729435481069028171978366801360752125542784293559858537246422728477165542915642334101888513378013095680724878308918731084687084573507805396551613739508936807460474613155929351716245673248121645529582713659782384380836318771131528359436448631406833775098309624522560184581035897659118718606335604875918406372657979293848471549454851493277278639624583086659716705760023994174033168362630369769851393129272602288179176037357880175649077686178901811895268034122757242424633531437227345065656458919293370322093240977984921206484991144893479696224797140620139270091088479381187201813389863758330346876080173833675745175062391176956257011448848643435412248215825238455743080208640754686767992700755081202388226409905627566405231218430730967472293047682306859419425178584348645780072581520805196514449961781703959381772281400159233379610092463332673300574147779205081816067157436235046377131553631621999649465891964171406990871631534669350938650518149377887418314765480632149891741635585798044202507766000209867765897609698579784399060700887341607716613454396025062916282625634238769690061696773264572408758865328728996363124021248621144512338689657686848221555019717500665556871275806275676318404599555627108598432397510599296814656435295648072454598483148212438380369869221379639541766265655921150025630630361831743950771018272282567266542154598362262754950749096744132637730990094997804962830131632905706902219318318236534295156504461042801255263623869648466358542382040560005959502309610802990055903531770849741402519822922616623417306331659311406161860880108669305090257576410653713606804574856973091889397040596646722597530045341533674702521881180602242652956353669695025977217430263267247371957215520473036739099776203227917106363494095843004098124026953377728513718800282493949017452084322088077074487438865299227554606506278667269004694472443460894835334393413465097440022746904912652374983328516395083938566543201237957383881211388128259218705696214300508361112969203226017449805008476245641184277569134541934742194046510654176636627679339420892973704774935962864049768747055586215453363714610681958362978584909770568480338343463964272944646583266571082132763156108933477116494524283883465614880852774391409185461811878545189203405345633944468200304280547344629987259434775176543344687466864935698351655847887051595244193840006005518947876431206606817767988540001184081183876018743249285782105408835513014853793432471088378127544549425301886774228618665533448835116244768573032043760814247272933606700077668520299972699155753922679027229146838007348415326510822040306012470669390585234901837704663700213036843827562882338645223106080677032177405380436659067900325713254082112666467355470522827812476899391404731888777497143491347613039203218853516921815032034564376787109082152001679608430224583218731829019537840329478372742770732620661881413918769259862620729547943054727144104192863841340538269972644468269562538082969150170492892226855986610236107548936358112345612304167266329301355175008140176489802306391644093455011625883304771509366736657171646559228409481168277749853655112248174069471350320444463035733643897754586698601477416299882334373303940474840367763821427569578356294309596896211575154287063372125702901226126940590402968612511449186808169517892030859312332808915983473114392613173470668755272738002706789921367319506399030021534890253652010508835384288993166605696183362145739119422845473843263913021096084436049665565009048816663576291582548562728904393524002117190117040942446132841149229530359449164836582620255464145751799151621245908041486302660411022797616429426740282608923068840262563088882901837935548502242105177813588769748828669771645109354758573657335254907937226856271228709085500510173484897523196150685882419317240828490078185432199156344820834298466778551285840915155256470660814277069188189712985463992807571109530907042465094167270655330121175851901057741447048628558074199740832682208926403226637754632843185988741321754356649324622361512849282558953580718628415060011768143862352873122856310122451550363395369340915491454386548158814391853537358189470580790860280950505558340882565911457256572960289615407102566997281797430097444702075008689616127091361778335610880192207564012021907329226161788782788980961829901306154619869550590023462181901826596819576563938315554052331862262303131305485707965584758424147877547808571238412661756290390441261351584643264849333807906945268783059253893297950798570597658202526479566652971136859232437299737575548161629240890136774484003621078968772695124552186500560008155450300555673831913120191101539766719498742963489043951798554404762138821183298525450417218555690945586034276410663546505044207526445968917200897775366892895128079250295261380148564891579348762348938003561295598308585729965021776399357883143550449789944144072122294643995712571709236835274814421187387181685590512596468901661468627578979538323380181783965502257314889789259725878667721998442085330294645286784396405680243967084599281976514754733021370455229307031393293044388406900202002007304232482877111389144494057240828315652379477700627964290286228613207734617981155971052445955667484255411923723165103400426340439891387068066335073134558149397240026595311460840402242286176734083117933552613349403958072823323618679368433692109006300785661283448260827761972650733046892384355019668718187178901533187173044044339965305341093510058095413199264837887114739907502143256430581365857068219081861659105697513505280554330316652071689566980503068090472297437590792257700684494913698821939390849455575734573782489645633899944197433759259130492579254040819375450637716446435148697425187843857931454217102422379182572594609344401417920298952329093435598210456685232089272525713320527858705966375173761301637457622510120255878440038332338782534899114887219620316361469167237024748520487831029820412643796396462435587417241612387670229203832616861299256979420379251469734584204300543256843116668341262182825262201622824506791693981716633840367553202661632444680171456870667581198754074274543927908372929015664809261369209359693007438981292373817335643238173985930020681439618769700629886304969183694448635674725243077364714135446852730349698727082710715917898434170803679471874443574872170393737756151599221605992862424979560258783980601928185640792730016480313034843454522764705880335725248594510558148463130036028037302440507583272018473663247261829554009591131705626581036998298865586914488154291004673632009459313402214647741763930881317218873798638370721048672103840050330291210862245699224172725454119183890031676909199448955920259468204609991211024476986781606786031009872715027231947642952395373228334516289906224689016783297662120498828195636132374416947498129731641731213220202603947963319733693082549919061282971674780872667916324085311430309758078946288533695403968504640075626609825048348598679137471432597289254339805347920975568245173800412031117695430412899803839782247731443658569578147961980665067334472398635165854393584098085493222870293473977230635476712040969716785088779109502447085674381174586294532004204957568152127982254726287343620080602421158768684280198113664771973956317111788783257649587980589412077014188351344052701748880596957308226950859702344119770537353686384653511366792409775389620912071101674079258756979259686587879192977108204468690207138488579160701908457619193832957060000503451240751793119225979851274377855685394782753543285284865076439690626057283850884407962281058949093495719777914363173952062451132266644728795418729540113106685376346682161104580416653096853256088256555393670698889217005589592836174261457821074426260007967595162478200312489115863662593976789291697638470979340388758110820275814342575721106294426055980848580445524221626975578970638439512960051914334119834825239385779340753057847333414443320638452912037036866011384248012582847516556356269045941254291751283383891352192881036904867374119732292953098016008553940333859662449285880837441937948413144911281504536075726856269462692518550865061068989960229237359548192276252544922776395778128493031382419302843321555447611618389865732450510379825038563566897894383894709971555371569585933967474316577333613676183014933407113384536096062376866532105509434145822053657252538197532589460541358524630865753403921661514958201089031841176016326086480294799781757967949449092081211779529086947015971458063198547640755970116317073067543827007058541466968717778538959007930863369212141462851466806097283279195312206930177271770586507359636280101352170129182670128151567881608352970500715461112601516437611279117275173793727632129715109469841642959786010926734399541720896549596097931090430151907093830060488861812082960751898557159537721236378040882886156564505229739882704206657058335391398585080858477620479275635688762279427382344272715962451771962133677242637965889745388308902943718151083316414880446730508194296509176196587633265837407779387693466029397025559579652469827319144037356590483227471343835431170543519122767965557604347743218803375507299475303575419388889578860954498470652909110430070889394379931090758565008601662225120313222795485011637067049822432161391319549730666876931940509019614016025100628753304067719493916900973596158355860983601852646872765738406611227272188880319975319576475340234573888170822763028593998850250499811619846797496681033915884911726303182793928993968261127293552655490318335514794253940411320072775083065441032380072275546834353704306485106346031242948282743639276900812323450466667326546207214358825185755267148410905469679430916408273150803525401370966636527737571816904242233018529281083106520404144714300681078273145257324378923099702506678787341731839126041331873083110318753022976011048129783371296133127764505720233174209261098152259444684660222039777120395411592503865843714880197218722178662974583877334918806432386657928483105374524527604377959769229921438404563376776927220346423137714738100926247334543295491877739071123429457751564768382560956927541055084156283659829249196353249666653241192887462896208451366196429344346717339182424178165118060216562278052617151618224729380797090332086176293709022733843062673973820217696989244023014607203328676319781151689779268961082927702177532499134816623659248119730354928907864078873653058148390500531932916488351858357259825158303250649176013390835283371058712980327380038380905474895108904742449675900069243826380072989320358446130933694203489710614495061521208198522242161263067554768282738877170309678687798910220238205481483215689443618666129869142630331358615309229330417525561706626547227962150230000111793143406940975826369586781060989918971493542542878028104908976331070376552093479931847610586030676733356620122899403087780304690399476088608394505645887883092967887577022210606749379764772475794167539054606840844300582738353502738998713277282008295221747053135830977766198734267930308489577923301132420981141580630018280736816555607449459268624028455512444653955397026147702790078439619446375548258770214906922162010409820170820010344376721971623844343142381221527466142759325227721812784303082889461265084477446855180072198779633837763519885704722892023186519982576758473970904976302102646636974253889722500040754042917874568940545123678698356378944663017160817495027739361929348126851526581704535565255769154285663727214692747077856749659514142585131164373114421144475905126306576081270631503542453925307028600536648701183742501122875495200768561235416927625408446150670385399518136353755777626399570559158401275678551538626576715527183447119914158416948479733585939646608679491811751557259072801500985578505696918753577881697014203648593739991371461869878423303687810463072603466522723832727847767973571502915717696588060809259092767644277892026391503318089690674005706873014188082506496222312645026195839353991626563349136117950187993907021283850866107759001093982883552218322089700730117461663620288852060616724252415885812284924101468548705032765582090507637727424395615060042415059721626615683920979595932199551937869461215434262915677823628214589024744856156831043315492495494585459748165926759395926798053664145317429192541282750416610999143837695077010597502836215078137363201472081538847899653620356818842356081738502470864417978646986418337054554391584233521702051186752812210197755066068949459971162046286220060559394596218414279827981784733552544261602124383699174459424905219250062880305966507166396691198787973547456074372799729286203094392599378817594522331072830230839456508219696492063461305484098576038895191363285435859173505533523446501017621965188767636830568786438739219260631379413508763291288134886488212225578143826993110452123502235301272073485938901694224561528783212299264796347835559693458518020179671716744741279741386797886834854253661584216934430282810448434917808925122559006360606463348318304822123707161542725835138303832272609070903124319497419913643928050407758985291254804363272966971110261927553283169730967809925432473901430506198736921065661326733310598782755511191250924389978886799555543895194000083452504381669874934810694519035716404352944245842359439303281667393548319859467756680928500263237703358140177502300224192848967837736090318504977007060016986482516151995363334451741734920786172426840531265258952379009416929198668951190505509146936673682306826211939974488421332223153722719595575574907904748401806249860518892184910166165453288214922618337993474903943289880352379754393813534368852923814797619175498569066133243787697280138501578648023472709808564619744041665782125591297402586655913884002778398479325364276477149046135793557947624941647510746427542283873776438928856647854621200472153546171717038929348875422241744632159589588336084501814692656154727085850204315359038154027252132918357996290885045230708095055446316483024902675701921134515107130055176731196068386750312091345078520771430728108285267982856262793184670388142702669170417985079119273198664996543188228290592612019234669376955355885375102529152075527278257929457195984802641663437012654848571138963325697489302834660939663245392364486791470054331419336415793783864335778512086989813051970876879750626484346511272186515718719149142156019918675078556451956246625358082758323776883467399975852511813502607803900732385042075279540888066888696856243044991357301090268816433206209042832961671435529246272233498079742560989298569494840955778950758477868136580176918282746225086710621920559887231299327501145015890923625852291759323356374060973251440602633977860383601692877394550710758736103958182621909860935240733816675615541206582577998890623444995982813475982136083114115932908981366580638844560746499505092905635451033858199921170576188508131511911604559054361347183359681768799371919890490481046405369916715935148033341100589854599650489196837927945298460711591566871279076074241572639500096739229406361060719593742420748853868055948154310926427858507790498899118507471231273153846999513042279466246448247464103006543880824951777125195224085503920358660387942809425305208702730191898553694048473327912358351708563878176303115254522934859676159636926386901002071800973399967836687616642841569224857685174801642749475242913728707047811135172507649709255688494214583173389308179901343858508239707186651200506204744312797731911842165347817512533626827866715194369711985376860526744652720632568518480632228555264670716394357331105626392224172380014459484380809421738321985127202765669755709487877731119947246492859723808946203408652062756327544786817211098389300929339638317655958150928908027647731339701693976892332283157179212283311156709425124510153906807443614068467001081992872031985014141083396241574665356248694658563343308497087075120655856465070880708984596531446975434190325670805449589708074276429452282726434063148519428536356967123601446287408402005425581280774426597616697764472561897243149218697707858405003406661947029947499170657155896693044660808500480474956797554550130715629382072347959341666543065083911666689528041575158577818136994815745574455745720504927467115320421160920923101680637946419411886683909582191709701405724721306361368283408275182607270261279112228851213845999279485621868989587807294085489083330817295033432502872504784610392914082527325853647373602067696323461177291238029532308097897320363701837969664542738430830411383774704528297240352227910912865760201795481262946211146066946675933672682311059584702359104229210021762951392189327441767660628524722555176131219584997612688145301544721828970284806157498077554154190797841871799436870462678332233773255793908891267866413333710376009883135404503470812024595015826295032180595190766801310036252233893991229637114935008071171951160215395351270707681082510199884510562902572242043771705806891149584219851181237478980997108936333248626034733463479997418488412129993501044080620354170761156119972240245509606105633353418497935320848577648012681780819717430528298439880753772137631680716236438957484810378280450649745999373531223365725564347588282590077072331445662285254445308289411121672537752037163083027533481189981597757298752111427970408589156701218861069317440022840246428305425320735000892052267098978912355969245773168661158142977505582967077693546898656226950418675496889406960947364722574054601056597472717780208567549425632139660062796631015950596558625228218961775896276565156707892364964740116126313326073968087818473106457086891855577754231577700890816529157784639338150929281935226191526714230731400102255395790047460984918460123430626295487043885736092948099490353361090764203214887119921623010704429750267719572640275272871760004419547386633083629898820071507119208553224638726364914479570856202866407122386089404818907005372999593683562751927115410578955844701603128024404332973167819448634590742128064305844289866291840773117295218414602767980900527717825789858185951650248999251493184549527832884592587671179116746751919941995607515104344186066262581332401175638419932990912837349603794517549090267238938166707690281512734687260127899049515189951921109804422418979417074412069699642675392698556702639195748250590411415754808432647985920235251955227264362095725511811904276240793828707919276347635211567918351656142057850864102279207458088788394984121876743328073015033063491654621322375114585805374135653586158647593259719149142246725362736789573339071322411343494794961993372115443328497941782253720644333241865757526593217386292471053326621563439031504374813872614772337239805578633362176699449853599721326728170997301676829641880661642401818124147113745568659944668698106767313260201880359224688617053270001918443687398663993933652769711635623117994826533537503477720147462024570992632472802429599661062705269541506654319380053255814528506227511309931174195893529187126019940436083508014600684532550174822125196161241676961167427734802874534781825233766626296849682151964069119818550367345055406984062438232497356825568987044883174133248195716037312730372408795986553528317947841906016901911401468125571744356185101535635031695308704621241574084903152122790982219937353381901980405408704178316383600785786489018285378991023144817403692011415894811193942845394443586876000694347166887132730833998481072967291768690679089658529120091578398847477389690741504429003662973029623356302757370198363237822712717283067745578038416114656840094730483179233546260490996096583645805356095312228413574623053610714513732574906670519669916244257527173095386297535555987185061066884421088060168491738702742107173593201706191770269249311624739648317432857636274726249686266515923735459354584398612957784773712319178024607312012483340673309791864859275832358693979645945400057197800071425406901472240279401352164779490749173238999865094519818593944728691542977180259442567734932582606370516045783477249636067636637987374464138648554586650065751709539083850777313399973914552526967326069625501200201824130888624079721721149700812058781464098904176269094566487844379312650129781415788466211680938062289414885214964664046984660427449376328212493669277056205708163215022134638493689003795843186170509821905430685433701249561459730281019497780314087630114884806968274704948037466018514911176271538119488021453856077746586195563335982599774983015312779505403835314023318831783657405080251390496454068460303551980896564192216888798764574645923633258582102413949226996645932001145086800154641648297301323740457806512857429016773313268091329416765338228903468362096857648223372230624321990265465124787416376831522771425463027988641826026446100944023715566093629802337489734794518912242107226186520146556487775140049284645241575769683893231997653911800358281877011508619704594450662905740569435134247596306487124955625140139664590383606593604483891063221060093362899245718202654796518318087584403835150915362133876105980335659826965337216658325653424181611446607196492319160569206338857629573750264352071838110285018023222723651925905097388591453864749093455882096014637106743401091944167058291741186142619944219244729495796196062417940616951139065149388777744180172675869271335630014174202523410267095974851446416453279906174858531502602654332983808071546015618547108844500586891186366721359162555326586011156903625540157778471329904090604598030085550929082925064022721039258625656326662676623275263900275455703480079008893763501765060733513353187811362784278332443461465307885963342433865217886294232568103616139383747879423151474506519295672119249245396256010919425562804157487956873195448968302464594802030884414173361870316607065511270752018938162726204153210339451559187451805264582225962100725722859993701958865337500980903146114940329666032273755072449053906217566943868282729183291183636333408249230389913758370608745709382599499456090278010458380135059820029215828099961820263807348282515933173741076780644861877169711798672483328371391133702639133602343385448538861536700125478971440527066960070419401455492653043956456215164811641106151434657069799600752858706486730913882204445038462101952497591887773102531025940894249685767733376742055564098249451026100719097650565394777158295997362468205016043911681410859291961036977926112804082309924503406937882562124904314966233991248541472355095682237569107311625032604737985256776878670376225164698764321028207141227906813257343083721166032974861823736951987235929050922494898891999009194009468117167886815504525744108384193901809774028339472565971026867364841362467333530927466293143069975016985402783976670644316767340137405953862918875152998926345305767194236023213339903694770959791755172561208435110683000912764182335841020863918652714093721654616410281355135481955829134988818561693551004483496974187993823126848709977727529277836824146656287591524496043820287439058612656655654743572862415121513739660742671379370020130503137382690455302140741327457433823653455909821713890504449203565141301337354835103759654524853975402040901037156097320944885939477002587932314168501897325231364335150383926268126736143887269048034708794730347764844175412090448150720517707482381054298358474325340522566999345273198004181886514764777799511498208356139293934818163904138939746732837165651747916092040355466999553791212250194631549654039141776124338965497783124643142702418700145581310795498471267128587961300821663114717515316198212463502967859577683678113623616587507995807019041852758269083824665551101745259438663738063317890593311606007028792723096480676519501086920136225532699285615165182603680321723345056510015162598114154473822090790789648135197489049606428262486401518084510420038856636356139646491126906361680109748191179581322036613851745398116904685512030334249776857224163988266473519803270665333629122570729752635668049332775627862335653433418867074669899386731233097277176408500291121034320937070357442682935463722715161704814069248372226574243625606128890832503016741465898366881405878061070250859005184157935924967498591376557757746137365005220810096548691892879654131108830071249819922008380074619832848640902081963170973753114514891329146828010389571015283559398725607956071714025043288072290582952671985307150429685918929222002038504394652061615238304513040307911290168555845265779913472503441666494968220874139504713922038670018529850467762153265154917342402879798788310203931510974847380089513304401346217453255898863089574714133389405469984252435862318148804010100381949766229606323348072532767003220378992516580372544948699049728029656197762991170239852810904685553226231179475254348572076494694001437980645635493634172291310709970723545359438801339980907973608654838066767944594561428775268040581037124072055244688861209096221814087977572907213140288723697961593911024075832958620560048218473021806832396678374807761885424691689181116292922528318802271092677342546320561606271525352582198814510783371719885692543184665899243280489573509634227416607266925425842045174493657445375074178336347642665621738331708547439622771276389317559615422365477131397742579771356740580240261110529460562594455439041169711630327272242454330700208767498498360485156190255386476510007223733070266511577546223461863840204336791261288871268543655557401534752176642690969001465909329917090856861120617573391470340655237329981424255319935294240149016403445905188981297222604171488179511664440144669344436347324980492709345870607790319761861194037207502360817296919424065170280265662155859734543967776494310525745489538105703573959338544639984806197119084770823073067085333669339406858451589218433868093746774317396306928850851202355150138396340071073807244203889409197778898510339518523260467836322088447258991251562971319788312377625331342960414222618946776813562613690650054166939307051118976935666634180470664989331111791400805692307325541420409550132207619610931800211419207226215802514438033586081517133080376504860900907663190354868565333755762029238085539835472139455885150319341664052704143754667795509086947458997938719383453310299468440102248983957509177631732258547604476527825092302957557681091446582889737557263274040305461840565413057106400617330215185934065154357996023065649643664548895744342044905961706327364255745934005846485238242849279961743961958141109326838145667655114841731778268628905203606428834082275264324707782191153066600268019049932130332385965237301756987158796896041679235012981243048853553863435516683151259167653975813017543743357433529182292697838650385690283732989349392076782233464393532775717258668170762162164126718311351433122203486798871267785296733368094641929515804386734205085846684068459322426997944736758939177781892702700995378646110598195707992780406576823708334876552224019541887652073294819456482709721322410538684309965902234941221954298360087993731380407792004578025796958339481394671532981010927279310918189694377469004139628072613494369207566897019126598518913321330580104277241484748651955960051822771527273312656707903252912109909963224795319097852764532462796751415682786163664268977915502462663181590178432505445984880733389073916815646532254817984370638784823480784440897628353482914570066205182506091303177010026390347643686509085314440560627303287205361425871567048074561300983035215937860991062199025500452696369131608994588490041525942855512617024586970807941332836904007410697998262903566622379324213113390391020367384985776087464857461376686091247271330202973126768071818164404492199486232756806271315233906320441380512883013088724266516265766507038778478607249270514972352108690351869786013939462265381218847944809264707619324320173277237537778052883352397137637718718401348332949694158370453419735370198240677819126408862153724016864840991253233481362973907109579787967605088259625795126657489510384696531010354444088669771486372735013598956343531426690882210812063394161699024488055700588612479138376658322391096779013491926514026698457330295569004880491004543178802177946805839210057856166441261203075508496593493672706703671025166959437314036091393801074398013648505912391837103134865244193924881550321510771607992693037210465782616832349509668845393077639851845488688023736926599495685675766010515259137220739781963782683158135654336103471478083928165832489827135122908332370113693573792073075263529986360748402671330105898810158773342193822739249984244380276652000190559168461208780006642702596212919175843534396995736855550043039602945349750386026538782985922534874560393052501476621626441432836482523809755981377191870318503176522434959640082933586540311281144970538406287319272457168664032646418779819467918879548718338783149008660326218330063244242966352507869503437866169305377917736904597059517568250892406539758759843297896112253240832883051754887800625737590442659351224743834924441307446716581022996031644144464406966729826825826498392054078685917783082018782425639328883082906199461785240094196412474708670629162321836341338509835451846402426100919962349502890683313405701298791340346906681110767256518560666183727511555045060279107482571568019118368420475671573620407610094305530225906484779739007359295559805146871924335358997404710795208321063081862751899469074758857074903673527120524700334081233969026624979745238371157595982522972876104570291394751478406951084658142993135125482967728040540860560089672174533349692015754097051191770341900881850800760963245882010727552202190907572257596719217776572023221048865166297002244038040995534707809828087209192427237427591231013340326819794742582998353781172760916181549665562770227550772742307526973231855561090693501894652826625306879345234918480883187167093253741655937671598758999814281751398307944601137532247975171156592960688249587097170648404421033335888677617594919071478924821080619059818055416724943802915820772000555344798378330124282093022897760358161587754376416433897768397625653034105856218819683881148131408582943078385976353248399558947881302026789528818990416835407874407228858636739162453071717426812900277846127766421596470645580667935072142750991833151266006261718936887283223556689301260322551295029341914565195743178567937412942387570231479217496162603312240437747139461923016319528217169350601892980829436705665959571316035942252961990612833903217498704415294730315218096064767221975782547715741379494731894905645692678227678347996868802872079118360009057991239401023404649429160861450589554426286318823558605223917365169709645550229890336805761053169979889958234001447240220411119293410339827500892003186991300506107203974588021421544869791375843378852644477914882473538878049642452906202603372446976177859271322426132702754015593011883305002165228927754072617977597748906417515560294536303865270013268008781498290455780098224389252672506758571047915993812394080326504564081086981138157200567808912795668864861101612394794008642260833930293409379089579866000896259089254781485920658698668525717263657597212932527758154288459171542002189269476134801758332740953839079426979550568515682529247662810266399222642866794998169520739329734796733176236014448765285844787591381808667688891255298073218351343276766807994919901093750674288391359389289357205079039029949717480890890192420447792931480793083928330341990771970404614980835445908460988795593264248543070238172126161615588147566116866207431695365249232670513829598184989495610280007111959157424187318818598016719686396935746555004891445119561891438961444616259058912964522741719995012765922295003826904595086727081906872895315053636632954298955369843335047889097714551274651193930680674471744550726253577863881287798238670419641165563026297788480449087181972977298105616599749233942178731283696269057550309911157606070010389435534021238950766711678954071684733003457700791699776053982905941769408129849396133531604344246069079970398858782276327524104817911773587917585499820397670997927233073925569506821484872270483580184165923444730498671746542156683528098617666385534483910207573223348884471791458351609956606360777195070694297857852958237135148544092514966485884582836761663798902867932387203858646675352867691215486702175088314090514387521345804310319128653180483758143137874550507687871507413445248918730360526415913421181245526839306154213401066720402111643252411769374809544921530403685036637855142154305593746030937284555714036113768984841571968420828509914468955890360531537201943809986529388134406655205865259595074186550445492086257574797494016576630725435851728102186405477510775238117308043449328812748101789682908110773790636854842761753462010005360878764717871649483617576221500286986987813289991702522002093275487956304376313870853778454267205159458654098492581734579849208781014915308156534271394641996439940784930664978105767981990930487091792830487381652476294819439626002561147906094218075526066136097086412553559054543436522966301535751351097595446251460671156231963995394720829272590843155938113025476985199338024172613018449242784217499999861004340898625412483932819619036257275884982800590571791707137132144131395636864697729574469380305517236327727152345240874646319878470715110326296294183413302226985665894107248966336727461414623139651599855600909168271200971196830614394804551454049526362341526763163104877174420591486011560896562252858678454494920746861091584301613824545733758254193632303304933280002786862039608014443584954076576692729560541286157079967066366849532038023491816317808379123255507710409415623658830033512370672783877130023065408783970165357474487284554390722380411486228402038011072091545269504858193727878604162573326899890960124112568135855047281518023841943385992607104607793032947909476144582582586071942153377166113545595724266981712484514993934754926927725479238933543334072634199436999556981125948879202332020608137712275821913040483797022501347124490972522892169985136956099807342550958364453216956943864378535350898511155975664711714952701628015645359586956955425469752368162265664955509386682580008539511017688270255727510142438300132436140947019417768019976718563101443463466015376054880489002998679466495515447889512279202646521560866075294472161479313904647259630718204847810254004154768921270364868385402581809376263916298473183583140057160630552056191983149701944270243433844027798531755358044449312635266329232065605423374584596743117833844255537369853879763788160140067607519380150874945907073622592769634332093386693075931901763799296600915991874027929976161501108500527225761369586322881224871856955383017831212873842257318397501979189458305031186920594054542341540084496912531525997391306245404742887603503459782564442613427049232592566109613210171301151988804391495038399684191759539697127100359166958639934700740081640724206233212565593027197993374590788828885725970806503539674151828566461939044605490520885222294952395120428505836449357191362717143422973029690075073838039783159590243311363179548263627839117548847467367195158810127966566224064131158757812232285649426642359923926408293402180066868521847388912423616946213717979215864201421854213866037949156559869479760634194766675374212559120566052504639988846602422367002960786287204962150898553575678457888214459442362115124658916503299594092240537031977106527357741748501985621386634213125548345468004240561769360682866809505150749967020962556247316685096187929303455642138381332963515467725292788803606625072604854551536554291920604628303919475550585270880093244764398128785803836976946096327676277502645360728923027730761792624609214763203249459001687676849618682180969284712371418844151353071485120159410139931902719477266976461675802680403274320252218269194668585458427499660478407924655147782646397129245755996968760165195819495190861460574695773327806889971230866324795915310844412715009793947330198361619400186919264771495423263242998553990539256674280811355277728281062088690778783074743142184336299877157466320457394763703457118553784561621411741428940264955459637689994740355682300391838594818905589299196192191184334727555592023657515214619966587977176748755339002007684292242815365425213611188667195159797149672388914393649412928994750403133068311991250445126425578575180920219761548756253513793327237399108142694698643917956365657115350161864149950226207259665886688060126184883893214120237236395185562418876206343788899120104092165973461702790432918483349963409955362300067396145277268131281652504572618304356145738920814226764122309087944869461425972071319084952512313799533076458685820678947878205741313582959787970360734065228478344580604660686181391490800101362230515874438508047140444887743313968013869973037230717428368340707242893039023348834823736340370028758119850834858358067802398250327142372216803295094627224547680209430001520907794557956564635185698126694799583914549263591074851210235939927135829239318792674291323655301350776376898048946882350689163433860168013429527976317732792471694105882249468971224379520756740560775966552592290205309882952486369870404315863365983157941982240121818024869763434290239119299234504091654885912359239560890122907462638459109633172703756989365928922892829314543891795487273528270598778375879428256506694411860735746540093811627734116243831429738569829075252728700209842223904603911687858033968414983691021678038936047974915578735146054254193419480405360005948375832617931373288560141766637803793837344493830873908778717570164595403973209906760283806296387445646260041343337715136676326974090176028745993665565114765871694706582791042211905302931682760313070562299005837448665422108037539284851835416007891434505108186507549977903733287289538907459919216702447543714588444323732803609253395266457439757019855918420610704595838450794512574988218956482670208512386377267497510627613015541685952427901233052212137685586280541880439512683194513489157368907245865838841776040598533875593838357457715177713461253386876700072223339692708794601737437555088999710323666329894556900162023899561539048048805957176544533590400160605926132627976211727600985643866050611229662872298279174276991851544065008232166540448078099819582934077059909682106809072945229440239967097003055578320652736973623522672969141925230089305118068954721164109234357416436677818670172452851195391573258440149461230500981286912763935454437230907695895577899374618302523652174468082440972475010804510621163369782273444117988763109501009128318602993691934990399062685252494666761374822074662972643804778148463509270646642198140900410753538654398752483394037540737678596375417205812271798089333595239650975365929879411190025603864603563262739980594715290966728780213262175491752984922979227929258366919900387647720282133025382497320288418074417836212775792147317976817184039763398221925286985085705643276749845705854392688190029762855439317906227472326049227197902189430738660151984144873648568410413349566434400413652223796858885001873545048456096295755898293131572592913592002593201653450391984993550741979900011891570697905531518218918352231634001409184024357653102698301481778426519248589289266705023059623359312941337688163092466540252753399884553812887685157974372453163227312443187716570283370472612214346328657892595698873149056063605733086641348112408935456333543286236341575149994258607297597919378275051087013590060535792862405656983209989832795854860543311122025690662269691536742061291433765300474336479720441976779625392750656260093759469469571495268780944551095020324351253518748105387393688167842978717098422902765393057149863720133594700099360799767192733982493835189545598318033232311335849254887444947839844124439448005253006127699028761994562334258659216232716284649735011191710409343102225627330077870700665368514437919141653637440147254240276286105555779205406840361030452292278998284662538203824720093000312963478924438478861037282267796187919689208889226791537032259385229772016171979259631440354383465065978373475484502874295783594390634929122540701113205261762722713784642640569604207736956510119589491086699112615141066515077894292196110261176333218174315929552189015520060611290121390210339078650019866881719855932448225483379877952431701889835296883641177357746200243794640500219721159875898744858222240586149899288840994918821271959537070383883577433480251409657464961387245194095435696208284915904072466686167982357706298136279689944992564223215038659343748453922408648021917411091432322452433312762149124579058984661322433185473203519382413512261666547511571698228261246084447291436285519822178336615393123855729217813019001857544400083742707296526992594284978172669131898116391575206752398680002577107382332916393165051214545050830402409442287137784707526080780445387383162273990168650124218931411869853917176331283209850623634458358890478542207528700955138130930639694196151230176653128301989403660282063398159663956876990847705990504489962216891453348091352056355066479964903633346378342567048141848895721128711918740731832804248991134320047982726280242124059813237144994439053852491276365711155489137112979981306946490076283766808719008520025736840264090376199000090798856117000090604556869568149678318533378954765836206427826770626376884337417526514846858201940045815517635800176337062682835099064532546943866596818352995684014435927831560782132099675409258277799442272595635321586703317881350630070953033034424327606839398157143244836145736857687190080792026719679614063097613326520792263234236637248440653916164654732689163066541038957113290699026277518770132106496000525640176303893844842376599163793519432327839200651412283988700354851703961028521214302930089083737949755672007088125061482147083119297933730067316743500999649556678615688306926979690763571081315071634999220661013863123119225032881264524053582502375021589959746284048291951574384053474098786299893867943721518159230233130710318573628599296741234252700483043506253870990620978169485631395275177128996411347240128284697134863172902672851802930808336602043474940387765069027446292376668648938963645339667883935609673137829210183124035808782040835280618968731642418883129387604425619234979019483815654025836734389874215393759830900963818736079929680610158823854139983297073504262543656665379296017986406284859583718468791503331118701293662330404528717684094970114778353480702418339812334991571550353428367105265131874057300825552139945876213145903593579492519720669003846754239366746005943724240371476632510253232124456486894964599731693345456435084914004956972579251249042764816523701474973065273120491862300327768062177579549383469650158948961575080014701004332577099034990666568705888347392279014896817344751895032093424871068468216363328077571773252351129056014281481374606853431823551587246346625074046953752199835408765253517319732303106937166796186269142631356693331381674807363681533636210930690446951703245324225049524132223730779103011572457337800294810455459668638011472304262998397173243451357934005676748815599344565842778795871793113827294034203733773971030948088558205766552121940175198714002057912003830636523816544450561916673677361635541043881349350953887561681339108029307760465347806320464571962279303334429255249387348409108104715623901030692399602320554936622951824528155823158976663928962505891062003128391253499653729143137368861201894534136302130444603928440897213652284048499095679828128914178426145013797140350638098264811909079294093283965681900831807597336685193833908043946943731300923182782770379478028565788450964486211460865573540170895832861659308261559977256672989889509556047995995262661399954739909682672407414640710918227151909270501542913734413016599542155350061062110006712975289009635296752489627850543605610754266437391399019957838262804825432671100284937199688766442544074116984170676164836618734449736648413386976964616214922570132283775974716680542306463014759335794520589315348161121979107927959659614646279197234884070513923376776459589870949221031795846181394501565253791000229545662473553602277717661207341919600230810111274740401161206281122122031438260726813487246940126228401735303164323762786185630868312296781931646753349281936412650888565904238673595331687402145002654077780887750795098023522027406309736473294904867420218524830804609755090027592308099940963089443315346025687731753494007107124914150815753240378164401216473949314367363040117059168678539198736463999233470075750192621752396706920806391462946831154643430238646185851880298461131642055148738190722231903415014735125863971312581102243104948996395106108549122452175229841895962435882516407242196566999803458149850393221346396628679211782669252547141585901513405765971207827780592809983656274035160180315788836699308402288486224993835676299648644664535958584431464929345033954795178758771344829222002281079920483672035053903849472103686312397511496333267557692989449083422715289197026570459878915087630226843986385322971721673059685963914943099659355055011316900542076917024440497522784901908651890722156035339462527550067861815151114541014505368682682347375070754422144368914014752460552544008946366521843871943980121985465446164604352489495826184886289712831623629651199475019552504514552224730891047026540113871838537447891605162073984625222019567304743913112041995830848671493433185251457774622216224751127406272328123115331098787756938233572812429557145815206570577514167790283630999990172922260176666637155082785178383994644602290369819888532617619878453518353678576754302553278462229818282621937361466963200129841890321018153635313253767423079044803757937286106145049631837873287696587650146281534420349251425351979307954353116456553440594945999946241361345032645421080402865719704536569932110843726613490075847690186620281745826081808683908562754737647749582328470620789973456649963140421039336762900250900446946452671652814583397556473208651479388067230915125329951698491808643170586095235370679408758426463237416997670042710829238031733005333051065788425555190379139627191515784498981148375370477426869758815556728214259076086591919923936189908768310680948135260716967537725884027471710634109527751309951408690618771439810968232872827937337740391275317703064114949888436596621194947589959324454830220227401484274285163522170235165639040561594212464416819637086579584125581244310479970735756734461411201103569926216358971845098508432804503153836556498825289825982030405952845803711052937445564459195565246580169439631923229811328482989910977625968231630060862359892024572678879790693127674662370403099301667280980774094490902597513568601658766310155323384566055551959666552828708240474412827582318692475674417462317280436830024306846438931754252774831364876584992609122635944825725773019331818751270819579287644658615588453867571675478644935223858357967012144924601150085865009062876152124612077498148140941054286459503780560394826772698905296961958629324903966558434441998661521825079341151620595370856427746533920857803040585864341760273044520880794559732673670958709860588001298728786838234706071562284352754585711904425605165803907053364856591976515850062432349813640243416588740638191961172025599122091116679341222669251514531294092549772396739774454011034057915406153262899998780365606207291240158443236040284363170663208053841687526186675236013561894140313651963137314385368227718245659284052481539212036868005963248747765736652388800478124168262071558476091182808721265361542630556224074537933241152750870763797904285000865010162297575261710076625441267061483602574205953851621420242796914819961344142797408509736290385311338631428422778016661979162942714677333902179314604081250021140157662193636766931407388658355667692335636130010888634848502471942687264356976120897143288744442543101597443560724773331074308339474476623465213767422731465559929420491654073950202742273784588165096043100907010077239846539299062613840495120270325818696647365802561762410424819111791225676173236469919410272658661536220183009049346359016234666381742483283625189289210544411759000116369795823532656288490079754022912723236995485443951458017515049612557980599770121965078615022760572017925052968227227725422774032518857381700472042836173484917520684048188168398471955260896939742752133630378967722086360671725954407528973667211915680895731804519446582685422719125638402418244711577573222749384865182892644187909534619498387247078955673002608186793192508390317258307800512685194343924961654890071229929592620874434978345211736571816095058631312541567207559812351883641223977692187375618180396938359335051772750515647816855378139466512533577519013218159659853829915345600444700286303351647715635462119636923908250749486430380127486330947408192334946809650045576746911966832309068605749227889996673962990387058800967015480039080341756610680013314019655045833844334127983433309482880183378820296021521234531437612304441529975891936016430800789136551742841374766293794101748789662251830407168607856888724398341679651316411481210515133228963840005670258073577839870319875925497175967972407658988296294735235856324249868284001298475532942953564627414699578950989635504984086736426203624160309950637126395156926497221865788195126077708345248996846658799599276187267156170856418566762486172180806940208151831559958820742358325595547742674250179269862120026157777698229395082870558214743411821281110030651123367493014469068337355246663708156669401790132474241654624081224672974601160359177916546790278514670079788612927221417901442836372765320441158743646756933358560778335125653524441998254728998795152913551442156644453881059312471509053060966870875158306057444524248732682115209580864404777479875361548349164237848444955022011448939287233206940910526780066461080963829975613852893152509807884013622217190276325585783225521294625529895760134371513860955720587557448817924523257415510994998269187151665701367862505922377321691128111496271947157575770193214238914121230020256450128517539093034250834581638124678145005307308286947482120699345657567364821530346355885306036134292443751650587720585241588428076230207819048976977936531712867804150313502067015479373710795343560697627152568001393666188339176647348185418631425659632927149096828143427650446563889704769974320687970796902009386152556204957645957048985542186721309417901277323587521819823667878533072094711370687316679860790907927675768834679443077084420386880100186007326777876182757442618303390624765967005330127792652117275256734374317946961364804218682366921219339524766709088784959541744361764863391938439621487806517621713236873216825444858024276965319744023804343226704203891928264013731652364918475299594218858896823605065256979373391034184626697784199586448390559348711567019307576744435433719505224199527065751718315591461657261349569344556292345787700027722323511095333344681645085157594322191223500970804520022053609637533281970857446289522312370923260892756257470318871938497238757057212547990117448954378183874807191949149326962129718223899323832788529420717784089578160413302026272863116195679595368523007028383124231017978591131184640091686198953692451415543637651400279349200232708227334319787083291738327156909427069399162245538652524508311748245118529096113721587339783019347982982645618546105627512879677402885536475098601347339123363105943446434036695826387862852452577681110862739359572717938047113026181717509094558835781686595706489742740506417870015027970338418071262475162012074811505639507951579892225286419356923138111054981263546589049285373682724606083997688554653556418406008921278846772145509221025454108358751696584170575940665483810460317994389107658849323291808974584503750080413998252927464929762345626797634639502438596809333121158071867696302256237753015262386358474782871246379550775059822362358003500438133620114309720288696278805638488872876566704746267057664628887808277713487671866095623297776681635734276599452277897659074438119613241782865936228185291223080549368115458862212059303314064388156741051452687044809854278504542971345615376267040335551783099364649056782037798067569013143325281474125841613832969456380654662302630636794630073943592962356567306122528071416541124319388400217025410692274155547359222662750215391002960107999513758747648036239063672021525417768842382667640043208321006305409244741044356861791887007017665595043320892701630709475025452163463926185439603651230839340621669599394471266173126591659352324829980079975720220086784680059039572959500580110008687034298346840999214540365708160683133460118222571528024904851805073920389070640219597786647123730736827692742957436951182023556396801820637647419480201365496812193220175787132789703385806519070649085606945960823624453306064607652323315858911886207689636320221983503151676527970733046047940149346171471148686284327856262696403044110753609178789699366364135784940856691618110975589948412071462135586822876137422624465140152787674450326509454449070708491851665839721673802032900298733683506938632568044999274584377784597330058288174216141229105737236778226311583277383719193181108396350904467899859560585513164306753379850107082641289422027692431963492425933195741709351371790906701486665859797786480877849590960130822653522681862416192835090022156109180314127482974901259514371035897196405779660397310771971048822101197246768428668161771978231176398417629284552728353000557070759754896702782892716099321729031535251074870297608501804477371510180927554803836585790853591501238339362392728400474649484898667554428038691461073057804044164491081724131982777391453007213510240897186931777312974433640793673421986229455150863864318208522909215260297139433437679980934509471029374151767904767398552872678163186524253570386252808020425781807241094877032987769383725559007151335884966582399121852284434700780253251692701425682489324704771934460042366171599756629377807008775111971136057498239367848591532230587114740633776734733735514433958972767350420105970909429688897030259739969259244725056752316661480831246317482646449728876842067605722048492592359742778685693134026848999803362557278965293202587140704700829304038725931858070694578197236598891075572757287824198170577806902598734740329751838337305319166018526730781006464038680057485375943400484686844779277261349411821036297171384284693342931628489237399232762103485789544828791949588534440996404267467875466101086676439708742412206322381827483095295689904800014226860868284609962741645292773703795597769214150065501892567303505583836270525488094236819954708497434275268634263076559738719870561210748897088586461732474898455872375190342641613142691386407219949895733849047958948794376474015347707449428645593344586971645277215139377972285397407906574836818556093785103102570412077029375900483460633708629684346977726440935107201394650928755253345880897229017535731589609711150008356799247862538532334946006107611900030369212000225551856779440895190098986568546179350601492001228250903752680550032966996299676696676535208620952400451442987556103997220667327148768286374111689025349823347226832299590159113142928719461208066352387581396966479858405318018543042451502792378960138111013818228517614179589264922098140599110149907259484929027352830570286224542902903357792817481061093047386641831978984848376080174518795715656149593996076550344736136199720994236963510774888704028639740245547700506276935731656111726107838341121385184014696231972735998506031267548355168740279711006666777082013114657766689271607385721031260762629369429754257162986099169933629825005991223323146597166098805625599513984703212640091333377972210792279184715547324615495193916637218861636246334547085844601389780283310784215167566278080812036590922808274918158366418553967008006072311269640925342869126106013416251376117906950491568249268834724478271930044278905715117670411290849829986455175482703535525314896225246116646222588921863135535086025075948313811080845349484184896108520857209105673003891032673186423163562135031467158323671416783575348024407936591132724198448795627506124131598156379717971999876283091832611980758522724859771593089941970437906312430936221344593675503861622718861454333607460274127779702038875718513013270450882720609111376608581228173107855026510294405480809680367957894839403678322808626316102658193929276044694386548464586341308934276000534380786439953321477869373138038605030151744570118957887031191007806577139491547018995768649372418629108178289902319557767339872847219388814700222405713791371327141600238741046563322620236707911263396797738271451621059115347647365976150420669586088973879524415887373178903565725464273672514558441731766424992296765192617655201241214740472649959588217015546260334800512623320173455705811924674079958884502639576396409280028071302327199229951244127827788994034395973056046817513206159401593726280605033789823484429432502092254276994342814011707246417717772058567689032408155231799078715089841115953375251432422061961085486959492930896347460072420931502922929628903904454116649599275631867265875308681064060519704041779587276180520990476827290888384261689762755316654935799594956500766181864247779148079365539406179254132116604530908001098650716676765984591886126810784862229804578880792980439216209585884479785036721555430561322958203153859442543436521044369167740858772106688361652264142545220317446667152079226144006714016061326578856992182366165420142847464332809221214549706150377063671516538280203098512951457307804092199840498377099681025927450496461429278311786310660416243575861042146773552229156975350808212643920486955997305698260791166439631683978679538058875196122123395962918526218718261698754129089287199264437934970519729249350392728273673308211006856874515809306269752666132266546074412718434068120125563477436133128813381232672130028300135689556461919225954460710392886098862729134668911797956903957637685973272137666435903244901612336739689067617289083199444560321725313999843398709539749867617192983982299608633800745824477457299687392400834114054234682600569219272869338358473513516762544751485107606883965186280297400403333956411397599197040208048073438797530405666290745195237211714319999420788975637380653914003288040270794351924138291856947107998236826480645218605555145701550319855285027166239389571086431090866112622292215981675624834749166882354707051287235442629121092194431977724944007584638183860150304370611323176843361482504082384089595214680573033202805043853575922176232435053788749623941387261797401380905076123577303939770013037803213874813988226546167814137572387086624989224143451294999142822300171102907030128268262648598163807243033420222244175716213942966113268977914975888498877059378694366027073134702928454476638541169160534185055638571731414104978866472976888987596394906527412397927603017456372064687940004662549208919729797707378676787217663290018804900191101275648891026806492362691339678645468721040323880485089667803842019037891359752698756043692683090619743325770964365403909618698727795411094805170245255199519705391198440440655176506432779712800245845268525660723893253359142552319153586819889419081143953445250369818719341824331304014709159955367912767830848509088338696520955232685625695106284642212268493698829229750713604582790650486168954124931756519012028916393315909337555496194053767394036699615649458072484991895440472860868902131502016908849044166416950859376834844999886935083676215019927563987245599241983989599525941059359208680333304973436247898426819693102936135764118400522519931253987784818455712120228177936498740268951003803362320154416817317849706523283020862519116915019416904496475434148333816395090939620241263163175290916917584079282570515910275333440983190797016645005153619819958361951760986356420385630973110110032763529500306625398330236152892810430244948199567130485275902061248659671050906820127702779578955941438823224984755890263810640314819764391490020783811221701589628240229612677757399860710227571919760997925142994794700003938559448133910167225354571333443655951912902271324209358530528469141884415412136732223548752302996925617588959341383056201716826370979888703972265254542097139880521814805881003693894982525046309356036638748692008554824151085544762209113915708124556201210388056092378337992134923925576648629625292152705141326122265674834292081880834846948777260557238516898220837657005285824147838281671557324338172734643198783738183649965477192402328913922984347574867500798999285077188750996799565862536653163417084476194841959084551753833860390948312041323210959430577734006167151275930078818743074502202625274296253529169260574939598414876901541670906750719438247681344345996904781427442950162285274010416724978813150848284430914759055056705155084922134389120802792225172906948424155437777431528474329331489689864929816501507111881028459128546268735699823410257405174208778076071089760068514231842594591918460864199604822153495478948880309150554253159008282880740210038161430752699169770742104182205796656126753048818602840438619420709182977780660296486101337963317464828585591873960687712732592564603984680235363190354487418237140138433301701414349390418825898864920761545588144915880859004210908857555385508053946536739621031729725844413705204789760242140926303317966879834057901114670754302994269219786235537384363311901828622052980483659964558779812253147396510238501366480165048588706561550806561165602744101802496802137422270618939090715792009462375696011446323320927773945683710509303175353584801618108885929129932984372729697063696519288034718141321157864557235514084888027113587910742428396850573240491409890238223644885774707955058238895856658225164459016631836764269267971007962251186029356480126876273845596890771934341867089443228530138198384063235466277646533504623414403054321752374302011727537790698397566590646146804576367669192946166662942519840949659769838224164364487042537400090059519330842352047591094234282054192194578946990356832502745880181606136184632745527752977574451026835964803569785345012740177113372264606496327470647660935362812410865503208870113412237632029368319370241431211848759753254973505363367036581259477745752389247639150544412632956526758031235234347637096825188198322037187502502934518408252236995219705001095135103518197813096744662079175738473599148846234252271315540515203488013201284750061751360971479246750446870676888040537855193141906655170033551906458867937039592108302357439363367473277708104955535501586481511490028604528977692713447087584183954646072974048640767946413741173639304443471670866592324849906347328290124739911014556101056998220651991458727568356844119359332758940843780211432224504687883070719543388341329616240476683770362403242785825139475364527479250576774325373622458045688453552746639827462374981561536847286111028286557561297271993949263942703198794722417188563392414854447883198997672170846711961183165018667382133769201021353955113347155083329529713369405781881931610600192536844591428776071689644761932041385197625710443998936486444376321593666443605380083261984894124866141020650098168310961525317743700140054331028398952764162408445047892547117243378618056999524409739499416272666020109821983679779776299589517635567478090608945169198297318929613482611564747542015006066909637356763803182643840100549232467704972465878927717617307568558655019180612357309313864589879810779803739433553814952475087527694980608824540182057603645182599269927368631356975959182159984708299889617722269045395125866398045343983084071261676019502134163484475123884820243156048240378014017509564088150499203821489687321726945065160370635185894579841110939055302727864117079559517814910568891192848460980641137538508746846525436779772037473448261755185700672873074036653950766944512869294784459773064244487785915876590503497094456326781515354969193567833938254510460783713608751354175431713218015348754307734662690629511862449068768183583761032895705045460393278776229815622584223799563881885991322156329361122746440924927021805464391219976922731387605539342730607339815569393370204932456823145896407440990131342420809941369773955871998905883183783089738502664599113494505158656783013818177434001279605016165469446984180402088659704994675858603102175485612275393897638322141660067842281760579692250473387040460950734966310382827453831971655444756242355711642587032801879091672996786476723158479794219432864362074449420475223437763828693098850028899675952947635878245246436912962963569407504348435686450601615256702589374021431712385266273017604575552991706412166173933640131680554372785390540856808006000127085514793614676357601972646682556331043030733673638616978225802630040822746774056181810558368589522289238843718164332831575734954479644461803107513076428997607825138905565539177735358693814373390164030317738741480080228037873911320548402795204368221135179532204904369592644265031378863462483077904493760203856054745854036098117870451833903883041932120074390271840599412255067760450776079035633146392837274164458146091557139418383675610010131919349164875251462232481880921636857314377457400658202514375457590058752205081115101294553708605513629792157653184970232453288806956706858184670215024667020035858043452590180014326816678335169550965536278495573383351263444601213256088350869998547171005140496774252917571614420304661215543689615069190401177719458774480918712186091589388281578390562799962971763680795827922976409190416612583846947471235316842732054321290235567658043784653949795485666855223589982395695139633518689910677675310754254053092907724272416166661414720806916026562267944592776569592661634845686909022667855740360641861290120271808136792397622844024739231852142273032902690932056163878146582979467152191323457863295541537022075955920077854826331742781215049611861569706909896965975469494540972327650450819820313992648729067308562539884520000500843063594857285257192003609337172325550161139815928265338591170345772638256404441172780108628081251734952793824122639442256938452343360865872027328851493514545519731202963275193692450780333172077013157687312624922934604374564177914975996495861147434100109387647172625041815205960412471090681585549149073612898359057479045951179732301754770844147603652849049127508613989721867754450147598987652383603928436392284743555941604498635126306006999157313794254972791760602207088462618453353492693867770879760459851445448922877844530192596364657898517278742181399483370161063561473679813277062515130438086183031052376418204498312908822784059640360992551743226879099814352733440108862994490453018839319497372973361280990285817656362389884738871510713836773690604539508401543554401658271333123222631404975517411462768690086722721788439361315907153461940278221855626714593352760023822739327025012590209597430394040118811055855200127078443167922727904555061480010910678348638148930506149671056059783679245892613355685373038503674625821234025493729498926054307884504287394333555027615219212229840233969861509106478780995439668693294096536698141763292934948022905556802519490010540134995870676109024559063152464423579204196509050621115956487540818325046755376317368622230196333469041217999948251240678192008548516693539862412548080898997219931245542133454838096834600235088739725981583754607157813024659379594439591265880242054359794786006501790351791324542757028036623304096460193549933514508269495560458983411115587472483908102400423613178338825604887546248078897995589330566129670433491723313273375967916608988095892360284224210171215973759224201135448973043356587988525625437338894842625886776745168145177933959589337810344827070324932877443059165708922459489614715699570990201816695020980483091247181339439583561358669572514902690358580200734068196776134333203632726295050013887780020228179937306529084701183139624289443495727093364287775000015041890955984961626557454218367369959445730938102311691673202533142746772301564339841975795503978130339943267992828229716455206553722046496757760108573606647078959987960299748150665645032177477026885769997949838006618737211684501411046234338931491308612038542507924206414405441356875609682778182534612276328114808944292303536765211260378660383750648179919258652775170864004073510967395854101071193918697245753089390850342060827760447797892953612094810395859405378513069226941565510785619332156040894940760197092506470453240281630218921508165010691070989605332727169575757785503721257290504219924475520361875734322220605510986388249127496316732191825834839098405463250517882216205077136190452045544954622483409921097606368604372835722755430164095249598527069138455533221034832765313654238218214442540072163223199345644868032266127889374658523692731214133084371980816614089150607549150527211738643353238094244534845577150281875238631271177696336301398933890638438006895277203170227386615356748902264843731471234623964431985105772414350300343339320242870495571274201458908860592531115239005172369037194983751772654212180971649825409986689056162067619699443507295468741815265022062122723828663711931639670903628869063475350547458287886563290957956769118684570904662605224013572499836790478028345406809548407960703178152376761586631102299770143103707047215845203250420166880076841394635363204145932784809668312493439095659564592114626200714895416872837711700449217484588928553195626642697987877081012903370532868872200866438070047921728266252529131533948367461101133362963876955769665356317065914009339229948346619571723128892763199637051721524846421447407944655172751712974258415977006762084844853118829088540809393488860062096011584624747718823389595294364941551948822106786552932519274977965459463691698012129112741194008883368916347328018919090449864855535500571625784939793207708364439607748628999102605442267944366544284520942101550631058622650714860208978083479286746889817800507858468379399875620115927388304315698370670607992709078724418352361324224595455248774822409880981601718084589793260928366891755949848953250206336013743277739738623354885684879809600725325549014038674458768961610533025463057673866199849343111634805775751970958800000255149999117401823533455094264972731302088248327444414620608978644973381710117842629809649291163091597984435609831277719914851637535591338136614776237515737423402007252742725996601349255785906907143795494102124323242054716484479868564785314449777802579071152630613397451429370757152673666396230880822236139522169314933879491921470560955565369387426108083960299804338579634987734358496428463562474911331440178565406305109684751151586244757524450359262179427123613251281997068250773977701023728378271696987410537244789291934536890551419653233919490556174068733750348662165575818239823681586860421335750281540982662563562859691887061432516645177201161184628760774619625465156405185149757493515177900742194804990978621359927859749768518593640730541998996638040448262303822139596867125245361963973243981908460658776722081164160824094297145670384351398334599397121631347083250475559970773023966656027001796189581469524622190884605832359840256895922648644458781044400896101135281917047814139562458977836264531828704389245469311054888676393116522334988737143556995847864652594359903991386042538016042190629993498575865593101918414640474266813946344722399282457713545482923044930509234368831844683314204527627493196366229068993610073364275677317398637025647234627204887562519633294508622491112189495031509404254264397808932474651529805623817970708249754554541086009930453360964453460080576159094757699611922814010029827699614699254261925844294484924474667952654661636594039670155502061216384406818022425024124065915088567111703961354608454626674970556713894046475288277616173162580481273662644087871094973043295296637482743270398287329571791969698625496094538760298524721868187148475375560600291811120309276588986531668811992999230691225799761630176938004802340320528565349128642163635861086269723703460553888589884924509564540969922839177769713824006672494645097215428662010871862416804788216938894911532647642587259607582494838376788176448660765592054960750890192151327252167516762905375615386539823294936070496170680196554017570894128012267005613840575655296347651937130903878630635776354040714540090662039964132698453509005224529997013583136166975224322962307859696402696116928273323811666491932185569369531514817413327058128116972523733705643322769474943276516527726999857097788070186690373240487072649048702594304390254959648130370473736223677621777514967668093542579699439331505516529714294756540953378063679815255957451092297848197315123843539956911946402037912618774138230360228915074825419843604659711355812537113633567683483961454638000048019391634410405807851424487580622744408399808554484051972203386102707217317060225125755258344418979545852359814845200527953142869355524853996027553213082533234861372256916064966438844624996345908933799489440038906035908001934039935548518684716363407786015402120893833993379140799931174296389452531900467884926298817455074313371148721552925368707877093952651193758258019001215951491017832834076431238730002698483383824013759946716676530542061842509826653392149676498343117087652440759083962841421088980310156754339933959663925438224707965303457114371736686917439276803486711849807431640073745061620300074895767649458341731455591365170526733693020237604141199610829796066218301376619842012826281149434336755794710339083072377888499955776509912566137357113246791527530300824585160578754842348195959434259544412670835127752058000481074063960886760328654864617192922402646624183242522186931790622297202824039943578042608760991576537841665072026266507163139898177647922179048203069840765464078747864853117054601754932225516522989280706076938927170835135603867423965658400101614103220029526050633881659312904081501100939023356924757781976199885285732539365523078722987777625156597282210270237825564747255246714747367650798818496922568507115786902987303359897181952798032319639323528773664676137716305439271904623402975069931179912120945867367393071078661477391585747307891407090459118354793626178046662506700069957326268259822937708808522747877356746233600277888878207037919181997849810266964102133901104536194767890997675007504572398463208855756994789865878011284916356873309133262205241099930452509175966476864030046130666213470227429093560878585126625552613957210639314805050006707180980118940859340622756630242174153377981434645914386859281729158050080364698292503061197081275681559597899929748891551448454052935398331699751917212640598803657211244813206392055469833186781476523758321761931595834647093651347483633856551506950635135023628402842870488295225900073664354903917454984193700686810616145434751783584613118193061970516151526746514468838235302803606791029968611897549595348040914104340739184752092417552050303195252988708492203793667828503719255781720527236901695158399913593642651488813604093642779943172121035394932073836636688379274999539388374463400087748710419409440964971031479734685885603257807085449571139342366872271116651986722509549587540112904216711947840032749065020291733876315051778002816466845673550384461093808725424736478081136464291355523856654720219617030074473075698570896697870078560327828997419069072700205372844158473854515878071694075413971769960759244443722966058395902105911027880323203441709830596426905875282374213895870228958507488518419789733716749820998482508080386207984789969741443924020863060256067625019765552245309608018982319696111367570416773429003842592116650551190959321313490257317180606683744275435255100973510497621172780314146437302496793137659594491928978690721982254690740235934551171744202142244122896158599484679617944685230996063399340772664709226408831898028255200870891274390396684339930940489159627012721695120162529409812446953833229736282246825346199291192958314453178706222196752278257940469000087685050818132084679705120745025740068980797931217509436918781833900836767590283046781210770049604038670373822614606075406684117839509745365782462664375099465921156172599747100402265221245236163877709096320190589424665955321096383758547668697662089436589037838045872623661129514264995181494313842002984219285916961845959969586645470670859255516873706686697022967162228616568598960013750719390885132402936566816963085657574979889113178246520683500416509367880252573956172477882139877143062830476678693560372574985359593498319395879168050315236515980170390381036882999727179776613292776168721356510400638931271485464264552303191456213274288179559643676412352337280617534664030157285873142820688598466418975859112978638251621167608346881171598471109984248031826853578198465330526796723819181904132497035690788791259097907988116064428794821504708020047055186941274264414641811443153692501526992361830467244573905015112722065086369017221754274611918235768213581061661855485742278996065490585556848899624105858487477148075859723313719849265446918654317543451618669112802265904476218869021707072824751075238215283542434502934253760975722279081642718225411401697571431583255978038718444796851938826427471005487462357845515874119236369944326320936259363899220349379563713204014988324860052846343907348839922414114976499473429018286859078927778112078550781392633226266173049307192429796470148708339313238300495610798896409958747814800507509183533282888366512978938414949318493523599743869415129439620854152029838007433905725926807792968536301817757850821008393414560804420798345650719642104390415459475861915510872713297490295562340218269439643277612164566025252055510250829328395132272350501269927267481157496091244441053129433926168214815294990516259328509459661747115684063204737373924019236272774623354025116549480709975464643703220692701137819518386562112836425299626395282979486946641463469654409425682933427904842471762053233788159878625888058383600684070660256362716692596171896174134303742038300508937086592420720112649010047010412925763654697943056883132761436150250302949422778645400215071673221988191927663658071371186675090845885489326762019140191081371260354262419109143334729116930751106276932745985112528604078192615227753051460090902118585334114367189188097505055804463090254431432206446227245027707134720314423643201150310357437821238724990207365897225816142304322883029357316643231742111543547916629580423522965825848612203843339495371101010294125082099546916473778523731605030068055891540547204533865942872094845758891962218833194384956299976879444270364141069781836150003844846915027698551005628532971755903976671707219193272450385841528805373257188462419249389716478445995490175322240413908517871266455188522059971474402464893086473690803810317821826148480452717608484406623625047827105955188014386709196173040515805776599350156187519324614785338061648381487162841214679900585748507135028326421780907853209080889859749696676230853078073145119882933992924139738860343706939416071115387509281370862618948151220939163913426058647971653634130392243483319681202283041004988978032189112005637917932531358839790626497946828272789202043826907889878730063958064389961877836754354031850697624109370262137979723543622768663873700962602040751301741958197434317049748958826180853128147325434890024255006498101473079521069812810900988975870515633671467617393415107926470735166454589983732915906499749288735232709968592879442207874755350852735295711445851381259805765020590432737403223946211815009321181790769254914697929344068215402400379912788850842089729403018894460521752316768052174920591674720625044669181132300043703581379529945962506513317712838067918372545080523653395611265375959477689186489073083680601427801182190379969597515292389503583037038317620086018312412644378859124439099270981452618562731886641195697581636669431844623610746194205414574733047766693873987067662454256893680636405648811133215794290392760001383624044714502540745684240997907851030911506410306432147295536107934961718815507367198015668317253715310644099757469953209847390840375347281345884525538644633108355161477421299041880536465164693608551618230578460118132824791431434247501963002421896331019187943483128689154528190322648980022301839283117213672753939011472040015535169068376162965881684924169824104131545935060553860724486517297616463451706873697505562215225660531769630692626244288166395504893404590211219435700337568193123788555461832609551520238860596593733468413006452524201260548783259165756256767036615868137491685312593105570356444581996326802989838202676052103066766416792484804794480347033383996315877631000017388491234692234100771790668740931374857478129257220494297870295542505656877114498648919550577065631652577158615859054799775727869886273232820096892234996657155596269348328046538625738996038585895977365770158038502350956860207143095260748817054827294376492383029833806317959927201871724838265907898025113703188943064169627151511336049750127113082233279851675343303020349904317168752982285114334535749038657090606504637407967592086226769833117442052298721488893013449258756116818371865320938309788489571377174225434864821111260441920851618083264549900843235534304844801901292035681950367314928835963559977386318971295626908517290597053617643958402229611585841049854393091719350155996707446543275772762931204029227086353680041304970505852184575665722883451578177857771610168942697689377708008039298611071687480355421725838157584372078289718944900002034024459133394594182591651387715696415059762226786896256277235690234400889027178896605845632979870495347853130273433725747488264486378095637436746930083798355484261542567341505995958848942438055796927789375085807815086859653472634364692485045953849945611254696724039683929309306083992102506662595349177743412508787182894513798762921649321191702840048047112576840825077166763620792379503190882693718658820564244811708410820740510102418953685409344051263318453923162915036833172462034413934735740705537062468158932328480243524447012557614970290423224751657879783005291516929840307506909430320577813925556580474548006316277052616139283694094823172510272190277284617617340409240060962500458524953975997313964848360118240992232030862249054879310614197564096886722495330009186073053091826801410212011572650854928774353081404407180007205291753880131374710571689337928731216792240964323267463950927640470070139864992650263947871713307992606131024593542480726792880478087438693145758642994667551837549091927546207515305009247419408098925478675232607230000275169200696002597630278210972813755688722883751753970516964429269727406604724312046505176636424327245286134048302536246559974761495404694707140164604820487591303184905400344105153000308240116465283834183572342719397662822014826128735508731848108587674971720361336268323655168593517897856708986482019770952180468495807144790788531792795472774680571372420841978218603937544251880083190893716542532546939612745160609786394818941433222460706067990522274563227969298822454813373562957651300290382577758171649778424231946131929385819192375483191319658588849195661932423322246260603038675280233042521813787056762258739950358892959499748417190717660839263854019680910706750495275441498668288454818184966581009099563423409147269041549853349421771904295067254278956443302693691993895787745888487925857275367007559065999061165650328855896619479120842527218960600758172846741900470948800382884724124651667961020730624177500588730313119871931511937680534751226039910771907956422634247670178317621597422452340402166393663919926606801281281815199545348532717464661291547468238778445711001308951295539630118508826143980747194019939025572860711924758712487346392350628736883024424734089548003024321777563967592406032244488352900984333599316620121706853629859613639714425584615754640484021643977581752708893946635689245927268338766941705537080300234379269871110768158298225085473291829715877793595662340788638271063979316395864220796860932869104099780972739670628406138839897248094834180873454158050875180286106811419513189673934534850210501227221443908670478272913389181519452920966918803341408114178146806441692194896992127267650796815129575814718997412751321606328714657375888609982660879318668766499921242578635914445941592525524930946119303407840998009865977850261106351237574448870216787694326599838258068958882160196949688937918768740976540683332802883428012775431679572866904731399154675136651087965516377998962052844298979092141333802536821946525375439818250679465919903160152954701056039921170435013065800220473734999863127307072048179424256387160092542967391491533583035730393061473211846905769572539269029540311244692601770875275629936717476936146779869422583630939349790042758311940695564027026880860461116035930254299091515197534336159599855899440653633261310800785200283110280142304222569278541922876270771590793658755260770548687900132426705062374209118617202177672398057662007540688510411184988014311454064186077882161401710580903391072219851293460415141385248539361436983725317979939148091002688787660365287393786923642608415864521188242692593742439164358657144049716886000129090834551658165306194243459884378816228955485468504033608127144340310792425504678452204063626231370707772135368453666086976609568884186914241498508558319024648566219810139805312941675817726035077081864693432033661529577985940920939192364768236692289491121806699403604105027317000044505962703086100208288893341182884146044321955189535560447141489765430257522242753615423700772552024942231713408666337357708761458037857822932263645121580317788733852662301874895493117932516527694052221432224368586309011453528488731249961460067277657126177626215821553744845042418264745219668531980015980125389272818020301012277474219984954218591069874475896705029724632320377297322880883526216688964240722393873593049044037222516189609715303831667181943053594047006063241940474197094520090804914924502545191615470444515755685042472566314426087139060337120313006102369670587725535144500150804686972180562313693499623374879787829791019079887360805343134207345713485774228902244831057594439794728761078929081864904709528093538624535777539992429671624770731381756281120490224800402688028079212875868057828980075068790909375828074171853708939212896903883283616347214768827330743433875351336871964839409542627388689926574926267750188021856085458497166962728769870262484191174688001390258893730923073199112354078803842601210411422419925116664903744981598489225008760636007775924645498822389926618737701311910143875109978307940189128294910134353025468136351008934191374020447096879088393272388470088073276020354816837124026258194951923820113791843697351216015555845160573277538228556854870508388204065064131056492769656167320655263665802864072709016191816543630725168278126079898789060783863518964435453917030440339961939037431003536285919867500229048502732623269243527987071671969505203863104237669334202360239071560351126808046787762520820951093902494668060252080558845039667059892597900716767944559183772939466874256371796631809686683725745629949597043811391953481359817437788100361164760499386853338824733469139283243833389203231469915714732498234975443475681320457379981989555839878804965337975962321417788791863831354441235338710499310428725556508521820606505940964072613156698748456323090003183973617402019999288740938272918231704211126135637666595274015329674160888005885129515043035929425317922134831553870704552261788820733551779258955984321661472516133413425405334630760096983899507564834947913324919789236853921822978638255879832202365407432589120243145409057420170453655492041197013492046757697383655704166043429695547276943195159580175522274172627824022490412026366847821787765588487631039992429223352413600084261666746301865325635910562732077158043563989826905944617216544151870840915866065132084551755883230980627884002605061919372145313647864467917173535021768878188752193598780306333639794816337295134504258768822231743789121429742996245700690794908720780330860292026180581983995539940171352335188229312158273458531841715959598704568725962431506615954560196138774741888686465401128254657501002497129663003719979063113413427903342550314930304498551555330097476350710997860629433998522649198471684139892008408403499465669467215523535649634767452576645826860613166981869627091406124320866427048995250497347577558818918609534504628324323370663782357061490390354322960844517505321504630565552768088696963957256950287834360560620654112684675208368706999019768787626601914329053493996348214878638046602378417325116023299458138267609825979591483988118625631963958204660777686603269005936880615602735970187757050978295880987173278543572120270163064999395837704696606762232700091255617650651613457541502066813010907473475708300372281332067713366854739792820067081429353015810181182466819682718877408066922910037053905065641971914334611439246698048344806752712363546471270954485328719380290101586656589244099346957008505795311197501404503413695451734798716307529488464779325983173880878910889598730004554216068105192066082211631134945425024575288514209273767910297390990036179921620328173706500894466534502209845673414964371261523260881540374217557010171175642834068520263419279687026168993511207456961762173822700927422703692431856120939524599219407079380023201934152997499104358407307801903637796105993536887859337333424180969586678482648409657247155623946474888302522048844451402136573186969102011092529669976877065841908699739499193916777355709114941686677065982654778085971625529835325724499267077302853423815985296754971014469215545959377569092806149905574534522940973481587861884995246131412928357394674708596386001661473291842078389957011823056799908921524151987386622651791563800341025111058966863189642168457902975579367177880947990578021371940262100502066355749468564731719833938852519273004285691138531992826255184746208556946453997677571336553097289879005806183629613728748488403507110526286468390466518915559016618970552182538208652814004932595624115056012079159259931464608618487249936057640990822879248252448644425145868890568396643867128756567349821605656981572194078394924716454566206238635301689165107025246189597077370549189630508554914350998678238339605377432625899517559555020983992653710761953240780516675296379891429408190628542381951392445251006251413616765871053187147269663820802374900165427599986975308438872923999884773883582039232934177901431965881126923666509850552295572911128044798193231867096944038002986344320637411461418340093519051533285846599493745146319919416344642555351747112154074735107088283126249216387647533059668473369020991211966425893858732868251970780570927700267039419748417741419036621512911823045854668407151747528706794397483864891715177045448857851418220403889210568345974010627378543915500469385787385580839730690588851385158149797601678880969054227843497270935053533615731565635733903892004418459838972982862578583091694419920062272152589734951213325933379592685947640611646285910789440416740566675831785759490849989886337468499915899291461214364167755269460446950273102185426187753703542862566588815341054371772272722419632948125327817396795149629197220767251204082187934666124559726610634623052222998245716690755565595571144114355248665452283612717183348170513203181713813440476241326063192751834842192335103603122723056265780059084909777758561820312809915846071992456275252945600986388236107893881233855392071034751726112863943579158457117546021457824788982175458453440211987638576652091551445586682297505029968151176793484041709520405170181354226418852843167407506960577044413477121205066885694816505083326999404988195024625689849565403709098381002503979052847661671693487615779570283320651462370415560234975517142744805965901766779165206935471527237877495413168955735241247781532794266517788476751770869612315161473881004830593610590957998602558633559052127646067801162469017143267152789564733082002720109925087955264084956985408901158283587877316476877553559726803117658270741433708570508419576748869844933158458122638431015335645932163183510136133230051861500934884599053923186667207987983743141204461379739158493515066534583270281769894366236149921865929198951756041075208137302669445857245048398102845040575136109404001329959846734891024104114086340215031121816781150369077152386260471025717525143265585449369017447890985646984522170545407108366442141905206077372286601154445389191282924139957794971329967188027829115961888413734140092819451126806074453997132770089097301310148416280473430483200204360294036631642271681521858056140242831473389971660186984716515192162321785528835972449221853741388622717846732104516668799615129027880816652971173842035107854408572881857477652838386653651469779040240083928505139317400609363031456230479263094323107923680443145036376949609107512928889662912480911693425448917645130062158095986866122945324330122902384123453302689740547245390017600413338479035108418633912050123337697744271581529446939242490609122031371221853381980146273264771070615017361178776277164131470725596338419672296917118985380090135655983458790018931381602775441848654094338311733930025265400079114707463846292304335843722496856603222920658545948177019712057047919405888064879818119408319525012559237291208498088816309811953748889234525152776301067160681499267338231336401619815763169866492794285508482429531138617281541008274409104500182017381753799054996281574849233687991338875228476483976793699138444145703736288048852571474132455746527923761904599258957915387651033884106101530591608519378256198539299741163255239428360187363052695263285284810127311415901458129160348098440950945533596140990049252973044079769007571944901420360805551377045847207801990004041517672578318877799174365150010198339014342687205360757582390474596816862196813349429681408620314601083045232892810565240265292958461270928323353740874883024348774039347760111822928655677752534209476464505819432800709347455492787090743521165255725386326389148979583026307936812706629766025715595860764575342647319037728669209719278144872131393873522054563752202879496921744172237728224147237108937764033678602075992759188351966388266130201721327002503988701431938735544247638250252077200154002353401312309617079125159237483330398112016956795788928741727559624192047969617995386718680474001575719749041118626689541806815428271680817547014872404415133358745893626458591098722064398142815976246520149704344988690363948887190106780106878360043459661422733460690331270771814514862856639306108164207990455516252537718400196357307597343653040035530052099339928287480581493258621342361268328535341963910815728757651819890300510802368864394722032652630619790316402376714683005391315145269538246675654361888477210265016169847171066294890410375171241759454471791709214848906006411270324180590607274999905988147748437046513708691227751293965667906095465014440938884682452920944650638760080810842537358468218416736797994350662722392094417037111476460802646620241800665657856101124378512031929525842187625040226227824667009036289994034708196083424598635765350823080004559515575687478496860988730268699238121305785869691549689456193427572981825414422175117295121919663275409744035605396533372739651217150448861772715046670441178606304429536632928397565300676382997653616857425244878213774149921745882960046930367398440343469732566467531799097499307364418678449650073446562393051495101673999907128165278102180766022891111041044562575751166141768475053694567507257787541776801189215971167871667956417498852898245494205094133995419613131704084591440944485561074445529732723074202178402974246942418503223002949451248216192320953811210176028272585076187468075223298606729395005190879524503945722317588346667610696670185928689224303127811954110717459459749701950352132494712908783664356490413951487735574929774425609075166106707069899084634423177882846063637959010899430084580258952359297234531407018781343461483075786872151816636150410914640312975256799084264302851203029662704827980792270816555254676290479724557554393784413943175188554674587142502726120133137487121061483166284923732527781306240871271930248651311535828372615042609370855213156957969671412697705162539096388946350253428596950838559658394890916255462257887868956321732297371901637237633357798750837366886336990376192531849896960618597619910447575254252201324576121252062753165399646173174130557122813031457804325408723567920492739372966370817444548497014870573530193458889169222711578883206310000925812999733235895076818013259794156686785708189832256332472224205746014103557791333931994647671437556949915431299130447225242812628826307571220446716341916421808937267979836653564237024192937646217677304202367001419502424416443246739277032041505501016168455428220616465108588956247563002177233167121467120439259275740786153991866560570593589814636535283920471169059251659545842857947958006363169452091089947367435722321705180787265307303786064051674084249731511163311763332143866254431940171269077380288149752185328059189811574370280633999955300444516928414886168092246426492468509031194482110779459117052472371383934324939852015885298883317972277327146219324066731280288541778944439316262050478362974803163613921325711750790090174253431830802008839075535595948341468991735488174463019605574931028942191511153933331478548191179028284068389727352535728977395992314504639137789981851532896546892588983849135755687896644185165331428855065458265190125905762721687915279183103889449895924138125162864613938176830136337299787391409252058074718562234470936078795661131476004151640586897787238098290946756262234574075705804447588560341087676659484019161018186473202015270344604958760878717510032428339418993950528040248795827629328404730181112557060427876923135838673532141089936086408532424596721022345491932599927644768938083850144635136627468584559194024815346799801028709723519769796924095380628143439144464198810789655805727400765913813877768971077568245382892603256629057519951882591934834173636481540393564998108028050602785159003552188910735789583695127339257128097213905795720008820445143518454552831030275793777004848225462002651159253056741745038269737487386450513344693402805165844455180035556145491524098727874712888196969855979135330068833570029516310695246793094156137324474867493907166806020181335117766843687770912995864732896400247168175224340039391528178809275550032090627785553168087621122761426257069676979117701477945811534393344514030194720383899348892728630090580313140780458963563857412699529882038161909638036391585648023469259415104801230999222988698907158338204598604059299182019949310471169495379515641593064556122584598645641474129762672622220303155134934321733847217667914329885734602486075843276996293855564829120894189019410602420947705946829379240108866913979686498809716740112314148157336705638196103759866798597228595264243204419571871652708317481576997405287102680377947055972261238568446527367993311547595174757954064201707910823199478779160888405745836043082098772879413279162969656793207556679537746586602550229504046167247011873882423953850509590876578213422487260879741362716661640552566239980041243669076067044541914207775687398223006018683389921807126319309856398117493450667288990125628773706020155734314075913684820179632389516290228021127423823899834854881716481251151015390099399661021162617249926261498827665021830531112230739833652437885645583967057115085143759831646836495590666949879569930252968026430029615906813969935997753012383638184769539926413038925358732724023024599616023966932449980881986627185750385266717618983359020852589443993738576028901408376984865895477849919836828668796817541132018690114832070532185916246428948604277006675268576732248148219717301625754753981440589091181448911628797827464286669824837069570119331504013129851644886630651722592350690119859332494087146899879382949706423354094766806457752665578660047491896438825220000176658461403324618898422659518767311440917053713440706866379484251801427794352073785677605762642613557430214000533604972016292069352377242422949507125788870745899461069343335249967594104373682053156128238831577878378661694815488666304932036101987468391756617086637278297768806168401333587833354953080585863822101810059755468607564690126713324770689865112708147919933515994456938285805531094022026742201429258263552105737153659968373273285796654577995010080991916937156919582669276903913387997406439250206921709628259954185950504625092642976760652469247560848012176044386606871211210470350765951931943692572396346347287002544896537507657593163473230548547020471598526617841648489987710692671390094673815026465441484202673951514845463671295091149948862742552417186562273747708885202743320378334247082482810577689261340216252847324963387992678768276962689411142044382765003574176804035135579058897909522770761461751832815042199696924923950715871527305848961116380183791913188751970638983923528888166365302834613963096922219477114671483013781381600013985978250655803993758269758193131447236614967639897931854053665681005278249752438656744381123278263575594286247088669751416667619204027762981585918010732310254849710072542624598469614533132748202832505329970453966281622482901070622090574984405981952600446135941580271971244372992315529160253995157907078659074397317806649038410507088438630835744868517929169889142679565099563163215279614263481194985426940492101024972600383720426629406969476109148451592516145376487474033242987827017265747356813059780497142454702144307793067372592994443762587017541718444393029791480456520490772381931852304757199343899701382331742941187213709549642205970371222696203422238436625312996223329873893945827282643704066180089900319239383948177765397734511287268040948426345335076338280681861871456507972433267960901631201251349857276738581661699111858908162534850856046734969956525915778054648119779853158640066778518218111050972943939576947177953582394735256235472946927421882126557525014050718539028723270985781593627534783152236517123646545324356870481862769567394318283666855220127114855512413950000267577676446432021649868410209321815458607003427347600439258690263245270815697887282009502260470562442986244296532153560894594478701374351063114387388777338517286506190636474737872503611167088048024230496401398819957309301160481147750582334814615467669765137046761394216126061523472310446514331408293429489016613108784335110588988290242696976515633765412339009133805421360249302831468623089450237693447340377769587218102336110943223515210672259263825898665110810951380874347134210438869222629247625000813156146954414713569007233568488524804707249445969371427368551332005924404768735793218108982546553963691957269190763515464521430265443954296907065912890507468572992041912330179008583751467006261121037897717632535600189795549866440642422551344791892741357452811426243115884095282579281929912249485155317364063409414357293253244873037949632510308353453968139240322442749061065545874441544174895256900439630544193760445165722736704489775127811365316358578783671975908624334370850589114362467348229013214884028992655114287832909947170365598348636622978058776405069877376667051693535563851210506219310993078003051788893781263553518759836536451483502353141879262104343457215655072240175506856680637785733219517061239973411817861353356334938232102823116064480122298602641726020903497504423312866937842491825790188833552370812936103818353164531997798782803443457335517538610190392986292874115391991833894736460317665030425162177106275924753683616671867573493962712960072489979090578873580021367374727331226989935706892275363380878891648496290009377900746294934824112752919906414410112609369139392797523732751540043776814245526729198139834546468661736664388661202221786263925907844939598414572097821336699861466211140441415168802423713886794532354358637058835097875534642826963778903614341426942412637544707860924422388046082036018451083339587564149976945905129891721001311266019399891991560210292529571495724400848286655274679631537270754373102585324988716032052211015539362559385190225395124930079719993824311640799311982343122883955655821388316042664812699065049093744265578909835084669248545287322679418923407152136054516170400832673713723515572292079179196804458009426437206874301465135370155247936576379736673333138865612959519892948325171184333835454954682657006895772111058651026532492415784614447080195963016217305974254639492442875821241155192911583876439769655803426434967461794446827042457350856672247004354138007466637019061031138915312682086396590529524660463421515271326299262402921150591099071482289764230821101668780487086519012433827898480029378324161568617221092907568540235823578962850004094579012319903305334070868674062227429702192414838462636968299764504228692273276488080661334617685970424619232873256042573072155551293474806283305421472051363342551688127891925037573916595939375766330250858310486378714855108939515320730690133027071448614430443586205704216075323352333473221615180274781138105689050183820747782984813720087995133693228772150529620602465297694850437891336664696687610795682900688074958991994564208261528707385361626797545220048234580714260055219376272828551792306300036053851754722013412675373738114066370984552920070469919898976710882484125197306490099067697672795257486877688426228490500240068320261562286192367684093347983631930748679602696748688309255022028523166171076687605242551139581025953893033577363035610134421193665774327587313303927458358948738498809673524734690263697325948686578368657953325393569332726491605434067013438375182327698878749015268009225262679115367547309369698675543246083874562890369588212013680616461732506909473402646532626238071695550852043144716387561714049841967137923821867312626641107444224635557060388615637760348557197104786556063368607723395755401129983465609920718650769816547686356772762520538644368813138815954157881080041420824033281357290697944087416451207520731365246086936534769556925585149013072546107432407896109199271675615339806435497552341049809448279808287738897592642116118034598811767378100072629308920880381598716844429304864200763371330203349565977608252411817268789356567929622335015849360266756555855541612470591917062878931829555769715846903849800007639412427811461209383004181695738802426584347335904943195219577352668995264510683399574137525326144051503846374649465312573847380486040391404478717321139248341016764307560841490785842908568751013501908020808353961162050516702861295829041117811235921664582180882266781600141428095544977378171361485328851366482666400908669073971604853208728925773483445686272054680866774880201007048410510090547472401766599318402105090322759694382290006325275622711434655529656750064733149026050347913429995915228966185943468608883352052574742037703461262633800575071243370397755462205891969315824305813641734720009964445792985845380001882258768035526502269632964033512628512727377780964611944082660121152959301481853717402577740106790354820720296150556708033547466512288561478585652789763591473290205648738107845155222120657961854825069822124216112817679385789198284892730525466775223026979809631176632093032148213434825025595976511737077680955799065394451796050533948409869943311779695712887698752875948526440246624467815870251146955598760453233028142824795474287534694758665300526107312215018943075340362342612831798607465871932186259574522048123335295823011067220427756293716999841649696561964674553909839992459600825582603719334894706613103087109730287845505893135332125690871493422880247838047213932689045468979623399939865481963578876658348043429966058891477442233512312592922538414640539081437342239566436137229274324144676889306497604283289876553606830255857424605743896595678364984805937356508796358786426256155560487981709789854556525155873830820088275077507475909113894434933175083332983982543033581298949915715083750407556925175254291060230830633884527125635621824166387524826392541127254837271699093423290359764618206345180750171472990097041206542060657281071392777825906370707401245105906144980393028918199318928223147078696697802861267146454310650012014472478473227208785004798132891966072044974118685556560255483858370968136735376299821381116812919803362306580570298747358032409688877684959412345257613133685053521263459519526234395929922947880792293038276094802463085062627994889620696645524440725873160642256265851138427929579941887936991864424481773049468217370016673085084137043540819294967676420774650989964540495756131552267436728275038674116652616440789528127823024511194864493071721530496301746906040643221052284723995198197612494337113654083006258866938613349899846205728030853222628722733660798791660899387850411542665663203604210437984682251152056947068998830640424718361149576055794277649295076909926179276881301243687103693992859629459113737868776585976188767853284133172964741912253374708781380590637715808328183680906185242210241785947960991878483395136606807250103795290829679141383884775458246696346588206929844221017937032301124332352838992063560036973128982404210921153874089858885494379286139363457996979208592230268036365705259177893785667453160378159971784038206129154772694589858716631233507369540716857527702925158678049612131785958948203661376813397574865679584795821296688273266431688410619975202759376147640829846682672705439318137040943153246774122405477226901060831171190630497976860579033278203429534007583301731049203922159354027101868452785522747509212542483502566323824926608432090533616683005661580541257222506056977474657312395759830654739366415613400100563728273724206493679992224628432831931430229989985352443630747230935681421009928423438074843476738769274706548817683618597864705230411495146479092528136451232121946871992521981861073034347881864361280273086512738599720532384080415148100861814084793388150925245712216436439611147929771128843603388054494033849071028832635220310251309198289291805164612091892268287228979283706135534298044054490017983031761991424732162348745855793762076320002197603411377804380938425494178372563867624735462426670708854007191240265052569264332737931488665812314965222025915089247219102090893704022821422328849039296066520459335002783991554593707643477796762428838608037152665112180594513557207393146554480063133297083890241320026063859970628764270269056847849335352320419438805024702685732354043586704651403866818869035363517328269727182465181373605224214652626054390050490478435368014544361522318620478269304885489775800356009504310362070341136964556056043738728931421255278885729683190184752823268549027215591330198618469775174766172683615078985539441687375002062495791826472361193001859174792756878317050574446257556988582469742516304117885706371999419526711122473188972863809492265098163563015041146236428338498656140240083234881519560480642285496632002103864624517087770114861733982016765952885219159337196082656274490263860469898258375057083503954983817287734435998500593756405736166118887959076879113611037505145701986040199594893774322874615997788024521986801082858550938776843365635657112172963444348203004244933674272120802604457884060800760927908842285187370997663223267672623538117233292186409284292739974585135235675984796186882730859439344348398146182797145036259200682582993167647368043535166369367552496061445085185537365842135319934964482385096428522276350831856986283216615307493597170829934182529962417475655904568365629310317880785751702575634292171207918169824134233426142657658383045666314135259823780689833586996175287162959593091204490895094236320210656772328882785486053151429632647661476680070557642395972402197897696843555481331941561610596638640962372465105733847327777636752861660565860829638278833250012679116913770551615716730669983518208311595592755697985618511993982434558865301421037084151986088402402829448238510045825845593775991987783527405608177979151528803364450346627686952771656885351984344795592182442864608123094968493432283888382588270732901908933674325406496431232287197318422042932475246660153326798295354670700892034451598166167963963850569816585322965413156820639140643962595031047334246939314030450010759313960278878068682782037011492431917592115572743671484993269416020296114447060462804345215931689448187989560450846046642499376965547905060057791806729268843114491419635686118282119152012279774529547066921288156514637536164339637460137227179074578941641501175447704468009314618322355169803672589051948216225236330540855453761413070461350222047553222075233133984879970875912735057972167066716175716080167818230239792929677718818924890167290920061264030467013749666008074580871835759769315409161257351347764401480225871939186108794879570919295989606624247441881431264465323563099540441892126910507866014514095081805691081100957211001382787531041173555581765553473663138660481224181222235650027996318294591591938178466180354333801133568910648950673492926141895714314848391250214320689348289332468291009274711287751961054614337364040806461407866141494294030531802857071020736676133526466399095887100930846214374547116713511738879596006776835674229802685634666911754247488505597452694493449609205586711321683118295596014054836173298255091537663920975034715078775740281214887126418059465251597754661974771559901949023015563716173756909138002452317852500737458816781140486474652808438535373710792971979552863471764808144975532273467053706627892840136474691138219772711227760915059403422626426141169327107917062945399610270013669077834499708384921030847742934894662226744635472985214100898513232412118707575585031908453926999520614783521985593841491078171288022870538739876422618348892637573365132768355091264310006156427655776811086165599170549546341253638197780381389595851855079854653815437464221565537995163333570830268522667679325473668963025868115908634149070320426947600747461198699892313202601876231784608476910334626591397964090132012208887583187091502072097781480930328830020239694307025085803189093478904058295990384993564288492590265546242578952187357012024196138314372489657932509285576038900912147564188556648198923518228638963556031435179378770383275358838318543001280162979549950265686908247544714270970339464978929345242581711235256048370147715594783997145313460437997384073860835469703852257046570245857174640568614089633445397484533741840391795447329342341375424432662134408717064538689072121638961161646764594281242532766435665235810048210247501678401170861316746341894151977133641204937531175545281039500241300835450916596601780377021503619995742349620939250368700781537087163697423454299538395083408703414176592351848797941182688692033889238843371734317227568596564977756873334359171108710643272381100257482570839725332863629478872379115901024862866782249924550019920195133849999079872619204244377228621369269614607744633948148023759523534084384581325704784647842082107263753655385072991027964905182531363684900310680079054147689484452290519816369784128408771563572518541114010183529360718599460024497434525063843241548528955050291605288713652571569204913003500829872712197367151909766421902557374257469285865814983382399903328346123877698557162189588665977683708143999446549187101093854401948404262972092152071305396471334160222481422368370333930600520920576880750754335383045251393420464424841811042422360063754817895196243090964425638192737321064472114185904647825412940453907158534799504214663409673046791716891955504249226446323351064424314180742141734893798019299894002595699251074303995233864478524491442325336469212886265215338278777686643074036686931329364006706062100030612040768705287751221624825976688009464777237518868561099318872180531739295372943803112991800242136680440171439613593449527854894751254434998706632842346645241119822666780981109954975667620707227256752242875102893392007802236747469894900549961735805797061299031188646578005558667500207803311277292083688253574426022418007078385400424820843421243915188657308056297097456304616118991194225913720140090025029759988304563751294891683305612124661097368056096141261979693602881780151047482832152361036010988686798650599617126656393608437535139366597860469061450544897094645516150782342927966485551945491185751251090322191241102307823575317285867196559039876323312839815635621943468859482466288556601926147731669808681166184568277497150571925187032692829771416073007704365871623643682459336533088392801141552399181916491355002774551910421242730948337995798540476739620127123706523513917360259823369157087660093038376868039954480622857388108357590185693156853496569849151377268258409357208189403804091369504854179469032011037348146830669627716658275894549736639899479828312362831846073144608339744635436316155753463429367952063799654081977110133212542177109451967767918119143992784715422036827462492109801727923739786693481634756988310762783575488058591524371235465170116776956924561593865949155054244122570422979277501658654385295747363985372482002595392075319316590810713048601680023379700075621807097042599388875358795980485466229273288047955287311706328609046329653094517267499665105180934816301289854165725670101497619375092564903322416160743913731992152154811660180932720614404477243873167595460288521638560668883383975312148550735801521026213867535878610904241207319641303614606933569783977260672000024612994032091411214028103437135928890112906011665327141630235094432805990982014152263264898665334833181095523572317317847576424488284422704537274486660881818042780639175911238458295630516216804014352394930100725301085303301900022375646573931017845484410737338413886091726521162725764187956128178503985578155657303630612079693720144639201847563101700742389805509228513204633536173541372331474665699859828555785917159328047469310177914020455071534105291969215936430472785629287590828208792784592909222371670084087594869610604855415834373384290744799210824687856215818527333970292975329441139069979944480992439559697466160703420511390079734937737586755215978941532459534081238622036297387369767241854549641043097344978339366299962748007794458431626986877985886228394033782315158850395196236179808854316544192805702649283075816782049082243840029571519511240816871903677389405350356532116397806902073754729435833579956416408408533914030253479038631974471679411573597670389677669166073810670798347238004099512297751246575037679150061490124511858246117969251849253526168326454811579007982230188875119108496201001558041219530987521724552345799264818271199733301901808856603819847163179460014384718236687669534037606358739054213838202762823394758895188783055571422468021313594542296811456973618247823663879648467909986758648827720003020787532852795048337735560332260649916260741192996770990037380178176713666424809271001332147451845992704112112327785881065199748430313295305554843816969755583709269065294590726872629107811171955898615426298401251899962616636691617439179848431511993774676931419859007775301040033920954358084044051120893061814716549641607803474338671213338942719208463784227960452983988417670109573143940541294290406197060340472038192626403229041027305628720834275996293981464731876618183335816993582983951939380264777386566743721784275736375277608268426408289468086992612652023578451581086626731718905168913460193270083677776600448496924837875350746643286847381429427222140674303764379395173737499278954381634742139331371898441018614654983700554552834005695261026399434960476933320473766178948986423842910540534997769455650680419712356265688176008574361687122861223121205528624893752063891804621908937160341508731351966502403408237394737826186488670902602872131288550803158857097747587212236802493197188782744137595948398756558487819255217846335207549904854603032154607221035465129870195071178174461869262002864668951096436875732047015000772125860038016071531098944364883804778773234928489226590737536554003444621106379357086719301767014708876511348115860990627346359617067378081548222236574950685960625394652730493633309942565866294395429486144013668030091694127668934033660773006590581561486398513140719022794371733446031423400575897128720062464485470475630338798895243428580648914764401469285993108057881877156604142653301637690847930278331181754051946861270595832652394215325814553215174169751261083770002067743057159765898463595093607548053979707050471304965518593721958164337858120977740563857273194286240355601837261281199991929925556572979311968525124208276817803309180685204270608536954810542451320029734505501951906445162109283529689831116133223959816422106688398432178345850311020471902123039362718207230356615686307502734536049880012301590025815039592591972126347777483582328738035581918226378450628399001815427653890951399212080028088188983129476164887143149928437400563752661679079007141913686692392273637492385669471385019389073227061621805385382639156069098756831847034802169441300856606840026569635238636412878909096247640180848359338911943753890903802110947355694172043812553339767692950236846359092537418225386558745595609240878434259259952384658064022357934914703880254354675487152853818465161840347801009348068183719342350572720960606711408282818710964502816420160913429116076090161748827879290185995795133271064157634299769323847432407319736596148476452556295351742597421005340213301976671867684630303369931509505787173646775067408212126882398966874665066602747316795684965841293740761160916107479161748142045185453375151079498335908785891087028013631845012016722013358623603006965821972141484354417343861220275919558635815892912041894039191496112663390328253257804640794525606681832096785216401571058294695338399945779690668642796100419261809883169125674419526925545717612582761905092518946190684123771069393697922799501743409822644584133889269766522498022231365458859652960693678435729361072335757136185197884951872571602937596979134770927332399803575331083911869964263940966459974092645231809609734607636197964390629275863944462945776650396591988113148639616529165225915327297043682001201104339986701776022577310116850572390549102517362448170197020588049299793143829625312360244537300679159585818616899814905242607999123995707131913575045868243236970459175463860442169240036684132217418358680188080486986653743256802167809031896540626591253296807229219484915620979420631681782082260848858884149149708058375038947529284417633559706499694656100827213705191641040339159680786414521422606130721828408592736844108384329885189626614021187733206941436542883106816901478688029246313912854796622698735927431301703017988307417877829496467932640794821496974839403992140450496936893435799585144267521261298219964178787675364421401648441419680496327868244532406301111686491610577120454885477254905986549004728452042621842642808123633932358049710290640320874296009050678886521746604144112554792565101936196212815937015277797756590148783108430190585042811609360924585581436075252655081412612640285144215250268928242623438975926372417152825477780960386553562899938584194483014164833411025274747295893098002357608405700365757391768184284522050004486286670855590661172041771212928191454550657415464027548454403336297973173343688289095427174700695435187997385190244038514621711294802200426274530112860839825475528469444748495835026437690315476002249608017378053688076435620739715571009362906003420887461680973883371077793748673395904689235039843084349763820292798583898311603425283919181429681056370625451683214101278320598232759987984436870612713877779529967531612656744038817609476580895069874879628345951934401737271236279718604183507742641672168886112390373775313918518063990262897615871085686074721620610775091607665825716188192493820766906962205382337883472454791050574573000894010648602444773241042467228205652569351409699558725265342889963720908575902399543029705391931843135156146588831984458166037661192286148228959645522281837042146696498104226818410580035372918708609193306176882441519745906382423672447011771367937549119625606952764973081152232252922311732319488666552926022655457629119073588394209315743957074624536956830889965014952733115751549579060213024642680395831918302027074043795116279304993216112259833475096689566068251781486838596061669894798589150272029988794947512674965228638626866602270835015477441500400652445129230840804013055272034449034941644793061274293423807342172531318601749333188472328211832531845222024112491693053918854784515735054766944307832049302789909335745773149121131050083741480405659187732160455723002537084066141853945581600186449046770240104082660379470692648876214180899534168883295310126121317901605066788643538480650661988348386731327496939220300081347911816283229076698812444469726540258372451684708119945571290457993497888284755077712740623651689362402813286640636959391597132873261610927170887473435983995873568983567399069539884543879603683160782339709730737483424089698019644712178481422297242435069583604554010361113005591831372072195901042031125489788088440675347111337393200822506216963681025820592870278795086673704045607316641914593146482842053587203810742019792921369240451069114343462190838658293725523501244314787010981651976611220014733378765278393222808303624834542735230090059632067493815028956065173120448964979120593346975498369119983212058712547242285221124671875332948534599678436498844010797637687580678762863241870593560773353999509502676926324970137093423142208633695790366334154819526421823729712509929685244567556593703013969036740255827478531430075337494649789976191226550652888122770638886195912087537574049418016283549726246664455879109165227866083590282870171639951183899289193294798442874337302527421239235754342552015576148947486887893172050429476492844003763427457885218230247871819651622198119851311998584611427112800282877398388030588225209667127469648357421992817561276502940154420626938958149337907540934859116547258561732702584448727191484271331460526426879323864944263415195909696658958305000961488088983023834298331118171941950042050653894116562146847191267069295821489213445875412270222007864959396053493182464033090043009062634754959276275876455269834810950814363685448053916204932155865452696764827608047889425531024383325949771503794771219444278157650460546719729562031326064659519679887109447642723461122402859469537089698657297528315413910420212450152458742538598399969753621661527522519706644255429755746105667676323092762423744821463934640424204534112099699507381567931138260618664980872049128918263911779229687841356193368597051556535922779529941449215165005179565042567757772185076420860976692535769918259311651769916777295953017203710344126294201318674460107791001381708562935531172552280611216650586504908485654785962045130068496856528078144944174641901572831663315041703663681890971322997137142485576648418930819020967571807747104282221338800747555184863035855491158089147314008933857469052557892445171231089181540561115914406860906382884897016914979016196156216154516740862429300493646110208408395209748301452352847958267046547161839066484253483389309961203096818655716416058195124026854461250662140101842091793171863009226175968051313717506857628138148589816217704822396812732300180873891260666293076598218155015250376851851458316303800051318377642545504248510674780741107839917734859982126097180464188063526375519103264156507370095424348440898896845797298921482947854477373299082521189051514201910311151926438191326568961731446354856352898523076519040075674551604983197356369811057488348589204457066685786954355716014058821320014013120082487499438762346554623625203929187550260937318622297940366268637595633090722574567381809608972401407888792216044874594399912015930051278306445436225930179973810835042717359935164012866074890709130565312440030804566369401978720791064958196601508595397690500554545770538173280212658920890228008585354130036409180885917757509505234927512755172056807639204377140571905203227738504165600378515626331206817912061561631350352617128516304142489590632222222196748162540975721622507992101393499146665130056307171028027894249173059190315628698066396357467137132780105927171327287283052530223432290128335260379305163799441094689470650913778557479808862891890242066353756572421417009356426384764518796832758869094928157455765996734287694294051266613392883190593616183988695606068262246834338438337933608755054331041281648440172502165347261974441209087383854847548465849569231612587967611906045149771319016642976706533286887231192624208006770979058382063254591899984197847915444712380824321596806444302715678535868531888913901923243431991495026426457785428467655744613963339059073744224603201086703652859869487594069478163688683943850681607975563812841606663348078124293686002142797098952239681940789896482464963820689138551261454992558231981560634378902474031368683493903066948094831680308008836726807037965897068933942991742361312578841068242701339574165381180052281301737292939067108044128368271085095856695001036695945479009592289220643656666355650378549366585067868426826000134685285815510557495644796468618175810143934877688642803314805365297806392010084549494594419485775846972344912950535756258248989409335934010311108277786242785723431325642566051601103339048185285266685948944853261403964325474080393785444143684841521172378950399251505320901396549671795572638723796979255081639506521312167576790928613407249161123422056273497622949569778104329904660400249234873052797501308452528878340516407061674563622515630085377182056198034463115958206105985236192673676527063132056735005253300107104409859491017271392018981625845887999000609078536884543956527903960438098631232385251558509386581273662528709338680036704132864673681611788338699427459153585425616095198559411519308173963144197999242211875842312766761052909635605776389442912073371286963209385718971781461850778027579473794157156782237190563276267259420943495442177901352390863361239959614007657781681002469114745492840841095062107428520193417254338829150459628953116284317322620277786017211593369152381129184183423910890762862924399198087057521860775311480613014713366882287779184848056680570451089892652191997312120590349695311901271607923723821650262013565020507023794397183079677507686341829482991258411043496466719964113203290576742315526439682326118913603816153881583569504499315593752365813730547668671877867975742719471235746762033478550205019062597522626320014749256249266672054331270810191219998703892779019385339671047042771951844161431772437708000815871138713257708542440720669429545155580364438208152557070715607090748820201897003689311919106879883501513343534815231350877857920644410349732331007908600262585635239958427645499213260239130232518596717692100076389005474790374500185708732538849977407291386593298606320471379107922923156137966967365201535265592310338018258692915172439625205632726813520453987927167325309108695250519331730052056718280136080873759047259030965319737720474678104854416301483095687200217324729679158154604381779191066386025933811032302818509143282056331244665084848901015394009558846313789869141207637666533574184010310269432444724785539767402017540812082926337003273817438748152484224117157606527222599922123208450369473229889867234401208971115691038215612768248864759174742454842969141358067313977482677621402459766453274392679160687082078961974408466996101092622763750440078482278623825751741396281169022137787762787918655161596181159558699984760791771457235676302757406626358284150436030939039404479223022596302436388683981259795640159548054873881126761864386147156901176468266252945138240402444807166149004812604471794669959053738156985507832258486194339706712396777149617104610615650385074388019574981425036169311535379205177187841686907991045955026057183150759906521429123521672407773555386624938266106619674253814074485067042228192759354090839333440893105669014735688654920165723659292283829160270155753625949973212554547216912846626064547503466179282548031619763715060787785429634121841254193234241188915814739843294787833198711941034909908255294635351503785786136293029745180905309085814814611729428881634689525659158218627515311940973199418403486975074918890600465039163842869807128552432405883487993689732332690735124133484444845373145440305917391353697815922442185061037953308476973408569416975271141374552862471515822879597502135319070473835506044992618782802731625947753007492875859996676141426777844392622155540633024739153944706360135563900600700547242289484460004044659012908666039478572607603720977893527228425599044518041357238110010702308119647001507460545548724207095870252470609818645571555125327847575202830360095214503418185782441933856778576035243055026595758536458366164322527783019344358580397947707189533916143148446812872326811186135905693171128924943496539700041056522357505831544034719540253785943941761767134642763626322808002310245389882023462764437587103943588677193332534471157126321400169355903840469053164720294701265684869390322922514911064272937468284887093101386786022280123612331098807725365879108659783976256958817612340612511641313896114719800629678291533292395519503552936968499402721727352795722752298946575770520476476480269666971844059640367238079494223740312525048395251258713944012473771386618218418321591515047355466928241695371610405760700159900545093125585515829312890514457648423780306597728091598899951775178019055955366212485126637840058147249021315182791393060666808985766297399155187572876821297985839778692098128216621955059714730417123180075607028034929446584942176522370382195749655065310621389619616515700263365062766858121812195791720475153938898088863726420633375648048336447268286370273631206166752914029748106420566716923057290023818993311196173183664012635111350148541098309896037543785887096968027796428219922392053713855612413378677510824985960216614771231047939258282658794428542912580403157709660639832857996237839559162732520767542697893841485022623598847545174801577365851820519791058731755899604747209180200290038346584565008476242971986059745545847331934791637562064400939969511670941798930491252565292276032715253700721484751560693393929209829644455844969659520802860898065997941265165301703566051293442541776733389327855338785386545352660687358587292168372129615816474585048511439534715902840757004975315917084835597739585316689212334336199439394765750751700622733326385596701542789036248771479583735162039150190723947769802264508234135865574987756776697271882674425921601849789654015190966895339741835618027536461459921076763211730988217483723614646285480990043978471023219189488694759658733403841960239522305299762146801805584334938112190373409711781599287261370237111203251000620289240546387227067495948950628065647439949797429167443976478891157016383312944146654374893383781456858790285715216808148791599422197134402312417525644315466416351975189558026891668215061740487843596580503560325550938831356365921811649583080329910868783580286937048948442199239754673534142506588690589182389202062383072647951739651406242034596122517158568862708866159918587423683001975806008930815440596166027924953817810236352319053325266567021030671534076899341299394158094366987699169452288664198856232144924265928258921235649859818850603773981437275851671293373796611504860512287611021835065787593012898192462312526661445594552162061542286081621971713675695361513662045392326099067317613674092042040479756092360493245696584306963298659664950854125067370395165077586390077682266685645908331353099490351123475400940161427518720828564276376805601094594936176394991541007143545021034354454279991660087862537582607108993038267579836707336041203584535805886105772080310916733592886445986237698769721454057736035419887324568637450529135027062738464976204210429463336010281115743575683102580498690509460574249289104185697947379193136041424316994032054675099520150422267842382743795008880904423371433096580004470926099782276475936978739760242035803156829020212450369306363227848167367423939463582828808400144273619702111895651010804113677034886464659818704842256817499100588008617188291852330121079670876332252521642420059998410213820427715090136890449494587501932879151295865538482650326347002446422224606842517694953697774296145037555083908074548280129661562059521477619615245552787765175616994594743890952582936581627217469785440249457607142479135708560403558355117427948713280349679316163214549924482090270431602855474425040074990199034599752801022337747758000425384947764892301747437112361366296648827323703577866206827449669446360590186316892252216744426839476852528740861138383963647105945317192899787856572989150169095522558813849841248703440540620607167408887403100930891305219385138996790359039197565956770040770780043117835635128510766181107410668083392362639219340398522625502168679948734152387918411913345880119806425597360684657960333867228384244852153980882155720899381604941472597722122750368487302929603225091420617659163529158295456676860139921504800893052174247053341416177432506341107810550249788783576459166469039012864131231053141885215920926020149332137503722296952264126848400943817160806206368880027130942835391449214941060306323600617793067352324822599283515622481940776967736144317910517972467900031637056476949751170239512192333024637237116732851435814330011597613941080705368596233627418351265919033325907313099559315602544156634565011082185847415881715191245453541473798536647258579457414956617314116161008780103645825510878215087388522823037024701609093503465160281166382215837767027557502238995602470126206154283610740534414481720079717543393115139337546675206040966751979845033108947384504660134519322535448337369796247827050032666314418334328330298367417746871338231761316044160328174952681494221639379671998505552158720364129691513344980309527639088018431185718851985141334326037489374510618420308853320588662358304476137357738756917981201438498274420707185922715426918231946226251944556631465285982716033061430578450539453359015566269418879848845355206291154343664993161092813418691023981051185826881878130916160312004421079193837994497665361738236282339936190896991425287389413607357381746421939593169862071413376639919396856538404589272307080451548409340452661759102686309679560644499809366667539768204919616530192555826210580614516627570374304694912394831783962367717256995643607253745520681130638156672470840059442197233673324626890952486225632363532077644123594350242341575258231581256452864579441283839225033338238461444989808328198848819431327481875290664267453770147435556755185628418281497679794760780025222521248259108379697475677772061252874783695345416883096496877021306281129013781502809253628776088659388373771825834719161646099036625462788252351330410353428593518892262487287557624832889453552749341496134882895036007575255005164666951058729259518600950214993776434226319765545938754324314457658670579630384489932456291625159350514089867861176057477046293031939272781251641520429214679333074948335822294608959714083229613142301061678703379641176974912108167743593595868650325880832637433398013165545583669683460044565404011169326164356877809123296943979189852378555493067768173636049481565998953096357431411035057411952594125081147023740519047695132732900883728183103548407820468211082541586723116692771192163526698510069105707856081296645444530638921042848038878635906817779679895855644694222401363212693544172487047540587023849062386918292590411711887886984994055970907260977298871694518511693537706090479142559757401610869571677520692480761137459428874051453108856922995369674467509901672328064994941410933945812964542975367358008093926349549772915016183879855647125873786562034136768221440884991638949329409756596012667397467528091231923169075575871429925403413022318758944207028511472490758392560766786087469834067541512648352413027984261502321574982717436319644506789325487903878603666281076908557109404908897939544597911280016804562295495189802078518000655201923557176982641258764678055345697695109190081159688716556248479525588729855841476721940575851013898596686665605876890886568071073123272039194881905317550780022275158886770893440637679636148153329072642321470129768936221376443178749947222043477041360179704088709392932932503961275675666771876951475324477217348743903553337821587340211249319905215799954082061062287968218659108476821698685120306720577342429046576837095173887798037035051610865987013975314235682970819732930915122797243049136033165602750569741537827353423533303679116546852921423406637943312074363696983899147970052596364683194648903612399138992316152324684661159617792588945026558842860914910311093950690346779363431410421289522078498968203527222333206676236975685153434010466897329933389688397436258231758811940160448912575428593279174381372361428409019257638788477054486796418547302043859100931299169924166017657288486300263619923646590100194039103098458436708340806971714573200016875310034225159541651921099191223242208299932524074432948269476679961486175616420907285550207277392054874564118634629664139137142705118492239107481637314228337204011069911507245528854341286798335752258156873823991678304471744467742022901303400651568257743410065332909703877268589198603575465950332244237678136223346871556803885313470269054644009998502901512884658865926712000107369427545267832822583711148838711810701066978574661142943808607455581190983616949900379863586075229223739704308546048829349305368388582199363222120976621568740677386703722148915363091931007698721467570071648262644424711589717394701730280748534706616582480275682718553391410970864791932890118101909824261777867679048218563119188958272679611775985295097994711122066685790034328820569539463473653255711619270937600894348717760840693569110352660625947278569220487853763124759535719631538097824726821576459018002755695814420924769694307153354103766034672869164179807023661510244251066255526986907471822016659011012442140305612297331540467025898105304908514052845431124176083311998852611878774361998565659832263192793452061030297755577468081404850496569878189424862402048231346124297014755375537173080567523382604246861523707833067502828785203983277082207073444311189395902317600091824524005619109067991740547875292644956254749027730625098372649232128191883350481574100404935038960380453046966262110080412177385984496400103731836715257246601359196173194381886749387379800559013120737573937032586136512706848522462964438376859995371593686255611743840783599906714420578764609406919321939583118789117328792091473635156757313341143374219212119270759262118169682019471183999112511520022618304079977962483248637054491677607736530506402870243204365133889606891541902400497720984615125336711261088120220775356457583982556485161848330917885255422855774751308825431102794704826720262524832794015792219150045688801641240016758870907266518351419746953453054548099394287664691593132780022875499536088466312987761493520197457318496704607234087720932436246016305919514394898169942514783568221847270691186022295730532313069817257939861192109086189367193418331794606077640439221165514658831258985414081016682584964475956846420352135905504530559989111721410634394413987532878069464744805544935658865283669687109007922232866107914430549937568887588886491664802290444235491468211502979458814712580941773029714116661423556199087764921443674379903321289028611153688389471564773523418067870680811548745538668986395634864668257433225727216148732181737042532353236759722778278270267715721638437060674727798543067388700892937403965311408617083087316586892382724814436643910529745562543722921156000424325061251687425500001661525584344274905542003117402716605238038308386865969821419300752496851885647056817014029600992243845097417398432207019774851127971970993304459657858110197631355164062870203084810297614502225522093789415723243955595658950400577858237770830712219330398979967425015961047831138344644854309484787917245466427058498918513899223687155725278940239937349843929717593054911726072019487203327891344597977170695228613403290277595818421591184863166865770194734916524410832326100310964436338132935036817355675717569949138981630948173693406002621546538720994998180808378617778070695693505240290832737691798268194944396438188639309892232913248448290971953173829372500212735665364539019241191431391700112571129138553601457300802194640767191263152177799834022091858354075295684626747111466202639905220152807460685572565643133059899362820967119728010776368412748688711495608505408602262004202977724269077572916019293895404358019053541545394592375106935024548064919023250178589974196822600043055138413634771604820040148233413727133042496494718578338281297293305926642822890418309939045037351453070911705241353899149719991781120704168138799472642932343313255899110140580414638520766083742535119038130793396913420270902735604201906810630490801547110781048510758905882535044455045679335425681175450321844713121415580126579803822723970432563060588210981615668596220496336703798131436020455372190751414504013683794400365029568356629549594152613660275380360732548753990889244118211889154577738783416915249090544648360808125656189336454837863602825208310603021126140156935601488223518004552726284682752033399581731968931429970398509104564401207449183858100504473950425027273422097852660989462010592414234293350392070548262641256647127307656331010192023783102250251993403747877328822436765500631604928387435548406513543216447013046035535030553645370336419519400238878527757838736223480074346945355682821786811874724398785736313795007594915210292017560806692017148403394603600591407430158425551843825207613734843474474346930725973890194971854892499084828155749084179616602652701961432253096298926582625537102351247197530122118602325628523202216020497459204063096724477511142665178968050872243700615551765653298728140866462450530761041535260292231558448947971875100198157584177883745728431245382020289060763778154207077733489955384957735874733105662700253806300481237662738445958850343577681255867408985419692273483783901666175984986067880884272976162861884335528701919950797980604736815993379091182047200937656263771237082684488508963657433083688821965617368106022911212919020755276372406894357912352990240911499404676030511415758790086093668844535388628626229844904886840023223796865800531349734201977708054416433396483539197151236840388132644473278344275263399025268886734907200799215301100495214386154131387884369232123490568264769186067929132482366340299799920162435037464039294525824766196260007348415832592487410893108686209044324866891124205699850846018573544169529636312926740599963134370121956654609420384481279891663704714754414689373227700609221924565644375183132832777484754128150667370411173195629481664579759851686271571434424516820605409056447739866403233292331643148417699189580810692809857740353324831954027437319633223809098417499646875524761917884927074764323622808480012585716648242630099280452143264923411530227823236632682590601645764583704081950661913326023360049525102155832408074718225882753648695722660540935962320220830006226459437891300581406643036141523624851679897006759567614314991615176367377325506918124479218925033181441296234827936146372116232611203413994222005657840544432689462186212957348735385956371733081403034548986713138451824987554176495656688625471047026145778609225469112784436142884959254014763224653167935706509936640159277930114290357462872836385275433863771394756888134917631945147864754265604842465977354454554181045527572015843043253264648759720779978299528238392007792184543756298324682701350090315574212557317463107421011786271200565126353511839926554647671892377262978177153064113465751717772759149860085298072038606848125170650232955653036921742417558974382899690943697296464682570900817852988942273078032597722194320298284483780441390102126357619039947935799891534831322427066283059114060443842848655094671220698276775246181681918698184918922590683484750935979431343859218197743521620428609405425895724698005141316230557374936878655333045830016956218599917146709827410049980866970268680644205712886550809697121627812757148395687967404181060889058551214865203811380239461046319325697717059513637770764449534130564459217014610772988699390510886538613703270775737380859527531844118388120245215566144321136406725966736561836479581195851066355362910413322685206238454357949618280055505080426167885218206108824824724245451727193926994976634371395427079654776637996049307201562770782460947241701908941762785169008951877755924444847749477641668940630408913754888270622909001304785700002151216775360007927778919368464403936195179432737976943935560482096075995237445003324083376856542347791829377348734901591344544490415360631436526205961095566542792298294290413675402083282171454571375389634218742788758295018099652844362986971633168935773473345209641948216415940564398724974773833649974377216291364475983345554212060674911534925932649779922442743664259849654884129474776400480236439241819774943269144835913074954563804536471154264850775844984577068791273127099856040243564303087747790253700944582913799247352438489398355650647971490025927184798867767415835086012263239045114102471931157662352116760253023457284018768278298561682867152740853239279107699611250450358754003810774179998021039181421369546879836117570324083751972268011376861414492461688931478059638617336049332853115133159712235471323668185057297474787867285367538586468665247090755266298666570538764612332300586141630968974003729517670888395245524016765994942340662315662461224453027633291199548179129005866646433777764907556881071436697177610009975789953986206946311393098015548175120302262413113797475289502134673141345825592106622009443937757903457994134295224640773788318753545987354351295921303029562036848763583901534834988770882725428506308469548102941586158107556286882686271949470057994276705354097657938591900451929906688957607684721503325591208641399221982415839825026599585499936038198243603820658079261015174643468869970730027384403889247406968879713770366548544464378235702165549509161722320240035171350603303016323282077061941479181787203502700408769632352710811337174431158025912583742392650173781760130594458998777592824213818705743388575230304822579101005700339699754842398796700320035968615381663440633752556076116454891515698652160203472137407509733647232784667141478093023876183652081093494536277054807660254193229049814204105168324968661743403053279526327032600060256632980562414509726160957795286956470662316440955187010262019965064100842021611343283430977412769306624246158191515096602510351838995685280838284844050458365776582475869372467686991322251535439859691695288805252292034908321253796493577983895697219768254490235721141511061583682752067697587204273530990810442685678533501439491389467288230263362425612546031038905503510699680049115627376184714013037075547141010190581679237373701514783806649896207252543128701834076511735250785815239193600124876802500343419836949451616840613607242279031361820742450212794293892357672502051588242959804806655457813445674589131377974520299219402742658298809416203442647725690076334778359289880462001780803134731852062308650446318973738029809930336320706766438249504745799407323189749309511881559372480375374629202630796618523132862883149990919287341864334500875334210758900522207127901630077521947873600092186860830648619193322300337269066408950146899582418820039869481820225559106717978618778053941116741590227015104352572516189309059317967246625106389141415721669025377216154054210990636442240806526199088914001501520587423356025603559468659625301886485845116907481013021477441983179324843468824749488631854590454110890458708816499070810980644651311086161281552178310344218364010065395860879721060824478516024029476730459561144387497204120613150895686228444860477168987222234493475568808244423115691945131037590379614915633806837531729265614374290250221683961570051489132255428376367333843474019497656455536478021957695169803999797635094866511305429452530265220601728527286876113641121647704214434852937863349353068617073223078610575246230449881341502711796368827235117410110839012659251323611367697994690028519449022396233637240061354590367886031977071551417327406226696461343353489436712086183547897471079408619362261612261538001967264441597310533164666199810297276826766668701727266216790291986389075877140220912106925298615313892425369888178715461707298807100778280996778406441722127230749582887419526473076630401231247851559647824126917457550258872675634100203897192199317894143452963664975878046033309156807734127254314631476007285976196286222260234175096533777923599990404149343354292886142862509298369021443119921261399468392546001030292357318718643868036449397582503704755883545949709184862361472783898849488251452383398025818977723356204804766667939739170892167227725402023800478539975243692873980848797668497037839070437052973759103667372836229604198675560677533998335523834500062704448707808023840920236221676572709038735465175757960965242799831776693781684430132542426641871120926931562040749217795379802160270435845490574507568879025514973766211186655898072400897692899775932313688498948495458527351671912832978390400756776942043184589516207180765059245895581572133115423192488514744331133608969329459427802611999590544365440286822314541717584288853278270127625048905299162364836729316732883457216366453891411832190799932992328391228935339718561838179596802395644430202953848492215114331722907810462760877490989707323703026328554895586543042315577278367983088221126760838812787526684238225040058773081014075193400615977324323583144698309619863487291765346824643137755621640556157329831388728582025795141520528513344508681655033506508839369529077012031762079649745377733535323104846539123088559959624416529795824070226123284990762137549282127399556901512066305291927062903431773005706530670177763807774223141642833920291594728012551668596665090346465019354374333913774917426912016924322202968145529102867132936472650445623937259826020527247203554172368863417596919364504015102112201398102468338983723812508173742684450293123294721390144151089729078272647552649903171383094801766391359772375873701795308429633449827439383108261837463357492672387875916335063785750509801823473011725467004264491271057579240056114996232910533527903139118939744774601344657440568901354432473214925233749817142101516567916987222433702179933381817844840639956977809779308909795336764338031457510719367454844541779228369863710967713233762694776297879759432890049907122687372952849933139730520400219321524762578032817777018091459974454682667216920083851649043968978225728724309474164644981516788032786186921244491369455711504822371363009128625030628643481788146524325048102483031256901422416283402667940190551907765591683581830279550109512901603215988936941098800344072004109464724627896567561361576002717390604455282286756606165214062623416062681212731736677145807356513298366418805629141804579026033942920556835544661840530842498206076673465610915696216813445595818097291579029085928926338583256260519297534810269844703586016145091145861167397068719875016067852737201685346609672261540568026367244145049291085768189534632018793001805463032994991613760925720153315216573820371823028290994219949784154343361892018959214801888678929904233983161317184934395436979850651803620788375073665633545073916197853843941634485458380456721920944920607543161504781530787915293454835232326094998102908783123475246097982470420183375464631487777502030158932381023966668360072784216616139498347301009770989275290425879972384146275131708424902899665119510752911671969845536587614644555528083722161024502093267298366849811868933853650932494341910792460648388491166793836948303533547303848077004846353687105215229435333757017998332459079950669006171916955590736666012273182033005370276140172776049698054580452703988327658290132098517539131592703418616139232294019973198210691198402122893551423716504752085469715253383969504653688372438522739107571824477921312423874518069561890624003395084105631815318997717365339640151538202758535398094349397216712458241496622843344606970464769022441426741550263911048595088435112275511705587870220884257588063622296816353754207435470591134576679543714818463188014376001419708856641612873523322901900356434920405968553395651457844429398454858810279935067894620873590803925761267097130589770558006919714340576773491452843102903111662432871490111820779731321018549269783135303257270947312734113100698127598514378605895325507790270148310744112352686768413633580308160523032499088856921659079749489889959030173480073681083310114189014121879129622848689197013521768297742859603833347483304174195822112915441772925074309127560164404448402029629888639091809833389022908263173411050701187750972141153117706958187503575814200805798388240609504342939368611173699177133158266184058898265534931744243642198532383724256510217490000854686184161601759014708875194411079133681981271336196885639283439070825141280998065813509440216593085870624356787023319956474288064601398594738496287847976518438272486352932161552024525607098442956550288903787460368987869759733568082067929191017624391402149042585851248807733040858010672502615733855212744435338107413869323108582056546037562427606268698077308112646375172172458301498494801498680361753635201739119038744759962348256024398430051051781586062568808104963772533365773586776550235511531024413955382974817704412725656101639492800313970996691698501314016509301290072272649629570278147356035123709213922982497152257345879251840932168171356662951155056056317027525738689767727652528784569797135383541689849929412644557487089972617021664146449724647080434140926416384327494538642544330325011946376019508688432610037577292236602047225896330858534880037574515536762013768048768415822532911298864735116916158280169776892835189355604581034045414014694135562205704413327004316641371736636853524841193111060196869510001729689964519634047754575236548071630257894316351502712003798990121959570349093503697987959601494708318988663061028173770742212281581527606129598084227824062076495004472720781453276967205618104331711741324001697189529799757027068271574623429519592153047329767734029659391760237689802613606992175407315759849999692276992627939245563167613720797320883625108485413147617729129143463609424873417490503343011662354634762353608745703644476744658060744719027506117063132824973757887706358260406277556876868041870289602401376726410254984377527060825833792235781661418835850989807804474401872216940701260719470365707142486637772655004512166363366754426403810223636594899635050436376161711144149500730211973800287056564759169671366090873236058000454549449209083757123443165556785739733977311722894588644449362665209116805471483906959256849082146212227284000787017927899595528828720413530341316865956212222574156763693063476311106961950160564446732117951840823048091408344462497084196183896317554469004180318899446517761957178055181967293001296846000713270669107533692884202353754797812779380528032396310214383469643746549853422580191277401496209088960444311821027466592968688833444032842838223376139837378452139547475297587796007206986775296822630595671452970614917248360569913220847202040121772469672242334751052812334665798392678094004724354645307860950410361092649183105801966055239658301806291662107651385232042365353454437861840980202003897563207157153757930692019901814446340729081983543845809951848858972771061092422480316841604111301373536932253333852120665650014853810338044650095205806929610569789955715522114944326632152047657679392818446973397107913171004051404919298613839116232798672851582160023573227539263657017749239531393984336763190846571968130929882158873302209328819135041106243789989597818347658732460407779484711490027513672658221582437502866753765128028320145967312286517763227179655545867357119784906112770123040029823416148219940364683179873353014240155428728378367070753145852689864973312128021942233933049298024318930287748831730935269535085456455922938115389961657355171680395882230707924533581401815722415459248473556125767870127633288599231974445491035875474862681309941909023650251393341815821343042672972441463815663033330039265518345583069912279188777750856269358198764983879079090800709413454545948242283342781268524678209401287078191352489247205130646622360992596142312574186517035662269167106666427750812855955351542944742418559145164840402123307454174565127526449951214865229333999981692645640027530827938323138544725029538096176379559600360750597175439077490793512146682443494984361302057156959085285918229675098195933060774941946262096394574312233057997170967861200967701217773718231580592232109357322567043202095155600423936640088754590645771156618677394285986685003838357682645577424380219062181477428321950639308635562906028788208884575291310023504542851022627353366453591131114400202550439350048087574561979030831753471257174326541366946024537018548129008471617152800235040843465118564476870325912625952745724822607413547171313087392606955311844228896327245543727093473269034317573852468459606602761040631171494017976008992233694238224789732441021885690727106241838680973575568379679146979603308802673652098796882840703465141799997956632770794725587462579479959561735795894008162498550825201859230215145958849788264814093360703324085086631905255127944165315679951369616010322317800840844045974669812327714020475308633870915318994758696409855440716364279481518835578845515108578876828394324425966730320732497427931052513814501469206970655677433930762813919816232438513919513576090134989917555660321422356852489963417853463404771518365927419691824348964696251966584591724731619714796321475604198219385610858883481429607351889984739873541418152458099478176802897813120024111734839772307850115963078917801772202125831411178700025397471097307403511922475147372480025893834606988280291298062873274791556996223903501221907269258011517856362154930338505479513517678173906604694840001643318687821577941447612489606273878460358031018668261489903870624085400151993138531378209684605087610543674320392265215076737330978712946637491771753538113749150689343430799854735482111950424228524996175245548467733309197863491658860148025709304038026945115485332738183855570650821781282229926457559227051565560866479802124977974861798378404982270593800433714408139093389570992080488800317299372991240207151188998764031104403344115606979696821850907409363670991630549528311202704579569733130582861553316916536100577028317383500858893298053602743190393887425179070078510516294921667411925527103068786762735951847461256102032556322635482054885816620690611463997265433169199908274723568188146551137764868645530794883633271388528601523274122519551281706064407260859620673363998526297023400593577214980772012118949579102619767632222688004460766594332574116261007726617839839975080038710268911534413283250614038287533471831977445963367018154302285126176612134394497152340545358699553897693561936561233702771173744576072845063553708132635822098942695485909324912189744894727227472413117774773109324196731652751874769970720027174126367863550365409026206344978821060589931447657387313110263227039356453867692756711376033733805413234421414251929124788569137170498867668605819427668935684430409262812069785693813203071119223286293542159586139219304625995701152440091910276986119320100494396784294172651881703062069053078932311824368376466447794461721612066440046642204438293900101081958300994445965003996700782563861595588129292962117238629258368691600914936614036139581231998267313892192001726067585087045628159238005209446275224960937708462630510555709663922176000301464985798408671303254908973258197721641902307823624155469709387267657404165911254844029476348928852702804823074802612317137319401036075802162652582481419713189375101382080621496877416855186471073304010464885933652154584852357513499714222762957424683338487503935545567880037201388730091075602732209847633615236983551947978003295036651078593301083703736245095384852442596121029221218451987261079592849758073879690359415487969902542672547935397199699894418254390789926390656548258100256826917390025446077745185227088867404476710869060088614858035285870602621771552087165399894301142497110894193977266978574405084335568631030136108995174346220872265629675899362013147368564720589961517690770712735929470045245282183914205090568559072668762429680070664309048791252315118593195448467737876970295114135583462639575484204353701405805629604149563911143181368744147489188178712978095746202323034635611536417256467210215134569502048293614852896224957432259407535670199567560346945766535441406642343400584098134331099061373181594588556888250072731050212883020843539251671538204178185331554999542455874493366349073473735579638639036049511746948450861992890147303535392864942526763779267974372051629679548192403071025967749259525658875837717637559486240722936744695931381662092129334223451907282290137452853853270018701901519623829701612186493140668758059407583822581661394154401729454925077263837298753023047410081137323122356176763248802511016654989193419220553155533543550506441167462851109635641217876056777457164167509884806555031741187557951112073982117771198158274542400346638385871062354999848488156416093042811838229330649893704031156857344885539871462551855293162314056701558450034240284068728316015906519170126590380165537833079635247289178377127320315074249559615931142493339123012780278817219747052211195414187811174885001665885410689723049382875540956799343163808687878738777618645184435725006217510467796485779894571331638263638355229940823215571799936687294172016441654023320032365546518640225063525766749639773689154357528217241738778702471360148776661019361636827084718181516038118834631178419506678310774412442916081957230452039675914313450893595356171712222754748288960713760273123252697183296225444846795254577709143450593606882003230294313458516040533708589491266108729020636597974295353093519878049205071762613012120731000653978930032686228474771603365807388123362690798219414762739531891143166628650519951857057016331138821277702668576674142607137264082353089082716608259351874116405566843574685801789794851804139251604081004713145729747644650789308757958463806957369965637100131043444602678109164210538726566744602592314427598318795172140341801037792679713416627224063058874086165366704101023503959631570981153852154749205914124659542414851795853794959924996035820440099687829891411756900207521841368981381925979493380781282023549160845693614725338512484648265086034454269301608425150562163562862085032440208047157066099287027426013520763917307123110345376148494564605041148583966833834553905968007633822124099300850339449191964841483277202390800025371687307934727844148124694033348130560412136478151019847176019507372972275213335033290139361659076474055546570397479657586254443343457663053640090806013980713381809448718047579148752646689810040438162784313149548451395221338953731809963723849846462492555468605728026589121533130552145692021437477132128109540105169962920282215588783303241462468921398157171612326269707188778092504067050929945527417718821146298352622086697934670055230126449768846038015938194935048262842512193805784251564665195394987738945427195935502666947321186983098837531674094576832582104068123094703100019372654810509672124458321998025483281556143901903306660037308804337130430003848216080021270797470870469965371804898992499561002960463798928653656490973187124796673060828154426197328646613946377708996717533306346221410143687998978414991514436821796761729679731747909652789049671598506363848801000175371000479411851464643820006319980281511999888248949792343010512479556544342173793075783362649779486743692784445961177180604575612510878176128535633769487394346246539619786212774494007748960161373909646014880599693833041125204757623158320354675183558753055486508593039413940436463246946640392475506632656769152008860126039829295865762568621156993230518981680369329800446211606881324040589477618183909738600852976382257115023486593721616629590774446153491880183467130308867944235108775928582913190505375829661603845384641186822438841438869741061969026693131204788170646451769592501475961193670244704989557467445422320970862168032045721185682548420510695120207999140288473137809003443143504899048265499131100868972545750024306008917202222421010397469781122643018689488577412053202744901009113007480939244351973973650876379731792667059050412776492724769905510079139595848333472181684669402117986041491460972076577363052483618516845315531693291552169899205654862207988808902222884033116206346506428376336678193367139938611775375500216884411411948629041956649599635373027695234252292024968860756056170007079540562963957814360827767318381268356379192763112948032834725869996165211595689257085370093458376898447108242020127549858050561945750219646834078518541504197319886644851382905079677215294260420485576847563861120017988854497164072006970869604036299920725756418646129394387998939059743845949933442611692772582170253329329880042527000961968466717646049320032802741941059750899209563698551606656538376411244969231343495023425929370120713282434733619103357279993208582796967922856214120078289375147394984474832693028684163618454571224155192629768954298872773290165839653857674034151015640589416245461417863499332647082585095817200767458677034703189685137725547081139258345212379850486064584581571356529745465391671526860676371367340038808354259485641078576528661277686402381446396914277730977981485798117626920790201128963986709471560374173908837142308258058153044506402925969891137300821036895181533923842098092878998959110521914552034771968988396937999992178835469881183309201548815391051673286284251698342327952613409154133575398074061808386149578016340239644574058939418381062255526383348454648040780783010359826804142949520534372134299690018706456343761898619748223709449435482178455355635711613216473890703641420773313623996043118685927861287920893320047579085935636702181442461164721096790075887887928736164093148269139962527708252076676362978905028450613364421476888614920733007358952337630738243896175091131366257277511129076018390929554753645863505427996807070374322532567617361263812909153335950611573944092022566465651226326324284644830317918763428548352173618019137677102235334357551882524067727778136808859465453205627380485491698828729961685559940876082825749941182465811513979527257222560183058786733239211791671477837472687272452099374455752885940540475423134152553387212379730099160090020777395489875034714691588969875436880786098977407931071450974329516414114016981824543170312943825055072824100972844454446465587011826291269159842642259551770750059909182511986286329507304426970578698548916524471437601817081611962129511394469628097339188113454004360532817595220639607339571579745585867801410130522247013694547743663557715137250083366857311717107156185701305055731473823222036218152893942260762776527250740282497141729923470514171527473294104244946215642494761657924837053230626481939583674950992712017724919664209943431673027655784290412169333056298017737134623557328525786731032659329286904753790328013200543336394623408465872468081074082359503159574352886890188992430920802737234978190866621769103773521059053788383352780742241517835896162693438318490093209665426854882651427235087598031359690086545110315226078040351636175306728249741163194302390866137931075355388588645079322658373932342789096897706295043144315731563082905160542463344636837034452063961514049040407728107648129152738256884803283540332480148341668950098932798927626807840811676144899082152205526370576365298335082504495586045703486724520929791636622114835895138372920076502449194366263016505077676827684708967782061681682224855968680871894855398642634024010821094925830547470777444667353819056259474842590467573675841007715109297833285544459672851898810575646173453316876837771302035762478404485822920925696411495977420294031597789417349472874754644808198850699368765489826032497815676204688925565555119341344791424926675597665185210894351709601562909581970220096787742242016248953645482836830131839350306442233573365559699898867342264412911832416086090762396546399149468371996706589158123696881828173026693918389050871518651729528486916555376157109197878177049704108655599259894802624580121401205667137862330144427664018450323108514279072498541096747360466682082868871099728681767977611145505598199278226287675926830495354863811330317874664740889093730920340838655076858397241733857315932332093794939884000327262140946581380857060714189343396088993327232279085884041784246271729738360227137446242828549955395068406031401788216755147825733046667828567403891163763126721926236243759314249783195962207288709828311523695979441657046122335327363211429398735048796453260503661290808110062209498554294084610753267968809919469470269068249412981719994069573517603894266293552605327485875563597781103402163001320440856258794865898676207961880477794903290606107915494401888471269184383408737462815703959988225103235904553279951594254406611695321799894327134302890978547674900673359328037049011581047100754431283427966088331371491512681523287738358951239275961816856695437918369480450083831374488805944069642636275444170595098472620417570863248528043252398427786857522209666909495278210424107189312205661078895422991053281643947519312765337556594270094810719585204830211183799961823127329668086510990371803889038748460612734025370050118378802809032241426440804500916752889298245803251229043999085118619768044565281510812500615854014318085291404252071137646068486011836734178150748936760252272332653173944820123954316001389449374243683878773468957866364945517012654844357409511214339813876827221905848748186558561311704811981836935522322775249394774622305914063579719029865322752505008006445762918121710619175306655286608380356557770641536871345050687234664712908018108379441907814265150396702871587109771759686564182094743765836319888728759176365218139445214111266350632160848871750094058664695017737301338459389312846885400774346618913882081999122408642322232216189617422795205984004011769436257586229686949425240950386048827666139269688870597919544717281412737890405087933530136038243754699122416684695694781856737313112609315668003302330022229770436210121159435112589909199048330531202492940640803592159243149229943045337909907685745351202389101665942848033629366138574667799888546260808347909518899031007725010813427382546341251857441665518040526321586383391588218028384771535366929295573119195647665504523998575254875392946788118300950194126239166749300507928378053460661577264604313044168018971999971859824225300099578293731957453752678236582745498820004321378579928030479490765432494076739529704824901741997352480422065572121382533273922353073168109322245059035734304518427116522830466484409778200474066832033901215028352558280204999565174889206713255297174832860149967778230915833953586121399551251468084296142164564692720252913329153995575913765348151809219651077378328412514305536483694715984753663182975823900693262731616427617112146251121482570221667504417035465274326600497203350561417989323837791710105042590089703313905346534556226837818200503252614164355727321123354120955905421830925917767535104867989451562294864681793027137327133627766485666544818315059685258630481722817484860779923841275094472132705811483145269150073383394290467146509334819366271740019078860505697529008175767754229558963846162922074385446314137157445466999005094915022121412728627766982778103933917733562706289018655242989705321272531935667063006453620972264303233688080725999507573686012183054418442009358460793159066474185037964114694134478161126302760631701278109620474905271698403221804654735632313735747947829732073683658070796408693570995139776777477084885766928742189430636543084897650926079783526129344325328919195602559043823755874001971064245331572855207918185415907080970963306000598659444712457544451599540996725085333742613981400305761099666188333985240365651196587305187637278277761929753834831144817718150844147924483492773170349324678072550390101480345859422373823795263772593993141514535327691649294170701480996482372718335301640950374831943551916033943103639659400424795826215822161593524145059124518825829930676139490313056414428083753065590483573552222105661839956890986050630553073359189994510047243995916451191955280404319779163591594287170731421481396052837540885767704257257458723674072889010385169526636793688274420399109531381409868292685945417160385194576433969558226503822000718688049242786033517983354135144470750843655072058146923809372353168953728781180045961035512636260869720855030346021080649994112180684066441100889919241395603583841102705371897926139110041962633441580244834775428720509087630500676297203344472537312336476206961670648274747166322288160944643565947326377069752603191852929438509714073671781018209807280871265700617740302772454809441859011407363990616983995815811446943658578477343053080247680403289638989094744230856054271712050521366878466545592915780534119040236294295725840789011432734047831307823772929205377784453148525177730295727575748156864407583714042730225512532538436894647652128090571363337456250366310152962033859295696837632326836233019640978569607190321127115746686205481681237284754533457768112510612694238074026992004902119443794634017907545685878780797122273415680985210296470771071160369859966333552887522287391888382595605386998968830480445785216862788157012399035165812893850822137862275198625965716945104253005096368632974161605760571183333948638029944200229579840165986619857054321123904861242469839398812400262069359031626652756975172571275347688272126658745176342154301693126486336590652965198460289002553457677500015993354922734054522035584615557541733564526426415740167490381261340015086008174690192501374899199891875792176432547996510336728590832703912091497928654307660131786916352015539931757520193838689028741521818047499457834945250940781341750414739661409069027649336371383783282823393321401097770780641579532953714333022245046378165638872593359622181462484690160404807674918439019961951397124334292056703535875588323004431517513885790480594520434532718496722333750739479152908103216719650700858897445525569733499686994157328515867501481092698645658808774564091184017701587663119119044228272147124017608792813212925257563166881299950583828033753707440040475036632516556065694993767735448507807481324665111474834583997890300937778190146854140639152171553029184486371463764160030472623245464456859732440950917313344502618496973971830335617236853757853838903019237409493943532221487677027100105264951648286759982181630457030672239644856371009539988556325864292393783635250053767845669721491283998097995516092228272554495156984035275009370471403836360515226698775037837662510886913697794365951815332480359648929132248458867977020516111455695150663483650556996111543686362500287942556185107860897808922433193227017061625688658439237203453835448803962277074869103938091023745502685993930363493281993779037169766189941271756745827236842770316899773090182803661899247414258351637104662036396381912554199227077917246451187016719386466480730595267088429079642735616084913875999114145705238187102141229806244253230868610304564337934077487354465830843385310697362353851118366509334834345317324582554725050805107342576003133223842822118910238013185758205084889428766464279810127882700142441540083530526096232536713767786154295680635237197842222477882186495256338805260855064450418953871073484878101799577420618784031550111047374720423567465053713445791248673148494453259926952682830586860136229020122470392579972409995920369196799239862456012563954324197282330813406540551045237601347072837439489581375253042055980319465996648365445666655874113099362440667961142564226836734319217699298735815653108316427533062757029494095776347121812537591871965563695521438801154473428644793310120922246804006847954790649575798529112501659357794668358035419014408986001036284574454550905420070761774882201023965125854708848344352664253511878326669386349114455183878553091491273483333850194560694515376267102782252433148583306982379795410020612473692046530351018411088616028169929480624489265491436477926135652942808478547453508140676517049157627469081631820442003407235413972115167487093985735781248691955252805697005175959722624293090852954696960494001907243619381275482663905892287750404975432927124577206608956716326675421978415053541301723006370056994678714240709179943346982102556614480194905516075038837842345989018062382751042829794112610151972182257523136739890839933154960385714067301208390195016397500424943139820175715400523147286464518984174198209950780590751370213693655324392480111827210123682968350324038785932913220804231921175389746246783327508651148833938605625879263488758557603479076111673677976595074994250615930214061728089541230758182431260347059688964402388141344161876683035520793774240363307673849551327641320208192072331414392371335676544686101585919527767623707938093646412484620959010679856378330001662097040069806170672013207516168062931752453072066758520843348121018083009307438655225296044216138252177188181530591343812732674947364582329483678870530345395260800283012368727318700298172416843080523486270929876373025070802639373246124036647849121843696087646330275620171858947051387626644963175979448981544960895125367318090944450920795232202757683416224672907566278135437377384200389987390825273635056900993300528876550250909684133096743527764797841246831764507290874639656414984526943575533213409543347420928188265431012831082475647710563124174061059798399009759706990111169880130626488274833106959708289604136608385395526093598878242901226875010979136680460113114479450368008293266678629595108441818365827533258675513635823461089339548820072440847633162979624713426795760066757081049221413426734855470715816414231413694678416422067261529891016020233534358050711872196043455778555247919649753149343257460068216019891435680545086899960139555522793840821310064275813258136288768227464664078586681483697588535162504857823359252018679724663482791242063716420005732362798284479323235582051093169165232332178021778257182666927283311314779924880156026777731735579321576329848608316414982336710871456698859741142825462734168343807243099213481359391172747303000757807038021664695240724002342170097034744027423711031084179381982709768649907018658833808175240744952206776544767560199456657626215864636572938835838554887100052972896195717400569648253515422157409205552372354302244852150048484413862580066820674265974257292230312854486779946687585749606309656149333771898939270154708220060190085540921810622166524711667725354814427633292968416285608079434194413909117398593635697076515306370967005824013378928470304906306453465316339161544536032509668077590494048579680685623646565412438223380451968552099789872920518243678921476700782045596207662297552005791527936439148931703410364049309266286447974346136717635522884414455455908410097827739271357645006288624570236773417952843740161364512856213182046360036745269699955645350607759551677411624545658743498671016046699895297868818384888375014639466967935965173779119079447107256684830402813293864388678016649842558191214889917048257017188470127525401560672930352383637876297880167077729107531347880942366524542423751962182550828916122806672217603322382371725634525111720292906335013221399812583352548413585183742414558152783404662229341829640902872622994212166970144388234279399359631238817610919944834070318597173052171358478636713347463664437502528465646550735529953879074088318891585853206477019771284813320955025350850998042475589941731157766361219926674601323391178954908070305474295959343990645422208293191449203525903723446554034050408336485211886808874719816438466780075092801067728462949923795825352137950771834870425735146408704400308316456675617966675804114711185419028548903694969319383349914322093524120166941347221493573834683079168448140652627337355547382413723465621670480541232271387992010048966053790337730121888425647867786833105451763848667809069882931307889915117201955893149510753526553869166339812862731679083008828075491996017023473486019398845037822071697471969330833105891042862248185697608032014416631605153600693054130472186332617644010283568944860725772489472879454237881296028119819608200130544906823933966749233150585818656690488895511143486209136226859270286878640065430278420833841125312376001757055919306500879511428004080726526641744017053821400911071048603602503946540562070020375781198753939592077453127338884790336634286227332553988453675960709963285600942931879834312821136873450756869639412913979662557916769277481613182739369683189483446793794836213378904850542871914519506573263895176124687579793055315141709186988369685045375652980314184108372722740675234152924191187635500120689912251674882774216397635518260920948414516624981851775478834456593010909219752878003225983586582266532448179312193076962928484595249190511199248486253164977622355018197222527401897229717668898743851659672143219744138879038141328922798461379200330125755480585336203289526298760401853034894121277623455902107500639059442227584973608201645110135256116665543365970521917576902816991958144437090479663742717347290876912919164242262408416046851462268340006188866482750818212541311095922517822032809535649725536213041255827457891961639849823859540642606432430033223943853693626435578598821419668153971686932067999601732362996070576194549455286485950120150549861486763015035843237213456130795226303377642896662881120945319898689899054812625587370176679529180695383535419714551516204462425852775811961793681205219264357201032885151575299910695648062418605801416977984569979816090918558356369659460051228908821470394123406479161136325399413090129055530949028583773617286202860798260525666221484704951893860079135649448223589171742443225822293199388352917781997976429563419128469460982609748085703143583305911912761865145515897246594246704916684916087725711715985874391334233258748008414410803113182516840968674088006276782325614387734372348311151240536571820860080210525096918764744326190903271095206083160817940841824964208027703893795205870088264524226071083946702127462040624891346975478946701290994565037359770284429363149386546115969407395892870925558428140506249317428636988080858738430281633825930188968383597233392227519430084350678437398575740280093732580390769326684700706415739279623943790782172021643693297933404526893092861865540456625617688216029107902555928484276755479267459606585310968142305136579644934582667133617690416009118323869991871686883691882983074018658205110502579699839405511345682184969936164623573690000768164407083765346552249550267853294126957087837039883640316407300760741512799937800574107270502943640533039886635217438617553901206030918386377678548591810207742985264160515559886042981704176227789691030570282487259844042123386715116024118262593078046199807023724719160667287604345076276304668494606550693650281277138122144182904513414231301346211359061787502146336967486267549995893436546877035140924291366336495508102337714074161357561776190104901535791037448318623215674105659172240446846414764933480916095162832642470805644324180937304209476011683774404315470316147628351190053962217854933452581008087975881582717949426603402063357520580299596576893413811524192636081095959139695447797407719022690268361609734582429680169942430186662586988892565515414954776399390799223121897874642543054258169641503502053070607173176595012411720712193793291066909869455455731470705403769548626697600139753960055776171469754196487828264725143919464245730294912988980484101471054484952171451466512419102779264072041511174463116150060509291992418753045204344559158434485255374923009478823535663630184644812448532836118348949163620409945494401815291831736887743190513342223239252852821058790277820754816634801968052868319311870457727662462475270081731566801959069713062209347120327849801220425769663209661911571983544930511150787030806716596422337740692486057922112656997674339720969371912050050887586695564894390710225988931798861055377170904709966190192510983370109107871881948238315372390994692453134722999256305022636256530853936527006601649170456097296075602313724235791895082044279852446852057705862196940525844514979800740748662920091344689008388906190475888771817458359253126115007627008074785875614418828279815411874037269003038063412731096128935916549090294777111992525370950633675321683512964122951907943776937495935627000533568194455189450537705958920374535254774479191475109696564430539509138783520241944784286773570171305833782488291555822548906701235345659787614345242797139482131468887107629370872451946226023727038981963160214908421232268177574421581146551618707226555915189620624379998975673299612027180028016859119508519757923748371522914921439083523158562380110394217368703851191785537841755932835574795790106324839143369822697176309833380741470314218651224398989978960787142581600356688231474719531881929143002741618367959439510465177217549044781567388834857668178188970802001406483526679925747042960196563220107367324237990484948568642221258568217232347018989585904312837706040097803252708461993463202118709543244285043122700553666172855997983267237488837120187188018065028310666689231023363341204194940347246914744033673145211909942683722078008588027187156151447933769228066147737307543728696065521562869929535737570791272800148309273543647416852589423964011581010714213911314854658742424024548965385990413440320723398101256304625309283995862451961584027240976292805623093766217266317827293406061548448914578489293948706211007979859156988216790875356819274338065536293585751826200046162642897070045844221777513584231410028843450877556013616703930429798126489427744776380517440059364897698426724837375827790550468115097523520730194126180693025909628349720011466799748926253122204639803997507531070169158425695096923671801240718992121751765596935768210224576307273723707037899498761077147039822524371331320416406004450386162512671808837134653015991660578944585865877887501805743780325226558724975989745538166241430452599494983001341382707775698665658435713641803644623704143619497568192008242575230515903762285381999779497663255183378411412500342186209679377466177511904556138072087314638998830619414286951065554163532310978904589713161509795092630824639579118852000459308771085856493325188259740701416079254770704290829023125785740519943790574159855172896615694654300681573676805572945161148903019102052370678789920010073123902256584760940680415901117600057762871600508273015294023283600223593635706526107701841333324909698576039310329475638796104428912974995670335716072503250533780388571347861017273160112476519016883858506357170189909044399391239988241952101345714057553348397470088486317582879052858895773567078635575195422609286010238519500055433363622261734205630153887491573929857428475569501122415998065687596534134812066251614212476992140309265404431106393534857935486541120439434282215541372195729277537560772879059740561605036973480895230096807239565060394827945450369491862356029723381241700725605045325128377878281870869212847985894760950564775061785238278111215623337576408031558649490570243451259594448633979363839952283442763190295392694453346331996912136731800940129731430019814969692316137002045456148037298418841234862466464408134466498638862717149419636971183550406277093943808721086256288936991033540070181606157058712503806049569063621247507372494425458773670074144282048432665725180155625217985800501904997472292817090386569967263657377493694662182787272856046158456692584835685126333480991405868857520684405115917275608250098710707361027584749411606041174261864829328157001151010914231881061473620108700405588926686247941268042339550904927927714061070323260276434993072245151955920220578046484609132823334362962698453359667676303045833737242037973656884632534592559442031313681434843907948154456563194964524949194816618085412339789176498262360758411830139323310578827247289231919797955636540900082109114761261632492723903839650691124405787200285561483701158001134516028727657983682128555881529001447050437582235091925019639560324883101783376283849265401243646897596530033680841797679548922010394181747508444911805986299151890341459590387552931053423351450086548186615375630951097057738315513061254014754313688698169892955571077297423436666698327572101028770982099802682001455387700937732602476285120712271866780924797264906135456236089766782537192383209985138580311850778872413816392044267892096585449287117231450877585759979696492346975294214090179029117930581338145966032314369826479884624091732889605074287944151521593150029541342369226003802824144172643148823634057391758820674636170151998381309739691636634302432891836743958702805515901736218479052625486373414712020356268868861705522926405501142593059389872859286944772618831153019172143069333982006701869972467658802452244678276683474136891862504485023681641003131246442227820547417508294144722539100131800696000988310959553614046276713570661069615178077220292824815146474852086998294625689209485232881731692428334226717332668842207045672595610639963710748643935203948058352711354779113432270843100180528777975159213293945285587246968445880845907725600978324180963685164785669605496038207891084429302234509548098513184596978195826579711385073337473757286949763389315070849249202673741718832929650917928253919577896591896697422355843843590752552964493210059216465551944938471281204130861278335728928044526376652922341113854900062515769669247490138215971476087825149633419260126691071675674211401142008412290125377958509248311597372371024592479857477077283280857050991230036804581831323797014105522073608509895812047662117978037161661439201098213386255421225322157898154358768247614899824900088881843791393203610573065064497353991393334160076191828466826512194948690090167139272081338709664963334395716480678792126236165573064744154862860631334537474238551834279317387933390600468893626785403090109989664239046692026024945542877689269959642168823757153483727715930977172230093756324507674034025866883359278788255480959325663791165122669728808984075610873773884302937793903027045947334585020754478388847944617579013005000030442458171685442003183557662835616888272564911718543659420301389029172668519381489355113026739041864509052891065228801558546018097210879334718098818854385523293971151289426188480555497521125523877566369556497800781466533703697388052488114234845729739506522819194618806204621829217343732947671401261328444383584138618728561912918883738271130206407204885935355136145416929999987964700392449219978939264605733795635905299414467272697294900469705050159731246642513787444388586983253055145506601741112264369841392186720634895606660910919197605045651980705570807259564125872782009026072689588299507411557120088290691016776811579972305392258739449841855341245472567644720361645808201722490485134232260489094172353537131953243235915254792520682483861280976629021400148589121160659734257969064057864341970004719389076938546479839854758005268401363310213724983696341167867314611162870199941927486602869085497208988125399771769891480984429723897019243213321822422809636827479395859262421194821537307971250693212293615836047896939346749272449483785004188970651591784096273879863174224198878926161648093085962077199318072081003937954800589919675456640382603204248451711854948437071474640137877238689053983315600198775642468335117247040909930588500277285695352934243723395755279181992751150803806424016476167045532287330209067198396943794135837053290416932566098466952563146622547867877232730012548123546048681631751666121998169136298491331960574988118936013250382583238617830624693102790420465209021660762870031727452195559354746476696727501114415492073506494395085443393854287687491471915343471444566348808002012580378335073015806085244340933812322533358276756985677605564784364920665610927695715845914184739508209714935165803492778250163530972900356663668526301357207370968377482452092245069149038160351180613278336455219392086070206260005649362788379940897406237770055142482054491241509341310343649559245350575523791378347320406960038041280194326507260887561989235050162770053388649545745376533871639065351614496583233911718288135264267136522089577477907171520297082245308086923339858341079073748523597058665328071004973239105746240745298382868633650274772208917153395192048674815028026487766063962289320197791431760475047299512183894344213159094806276527549247354801103616382864547115156006275616679368922942545971603455175374431329128353657356952927851257290410085669257668063253697887863781013923185456618922347936969577063995312793779476660493881899400976578285099972025848353514368731770952409910829785123123060023626226470621317550291224176186726595470225316446955503372547512076975125805067782212057992942697613638769978853579687097997797641121435111199804254183629594149691602972720399417183895393171252038405091700668706789210807816642137960622251942715120961922037430387911628967946885031075331091899697071202237200197242300640306617804734476583591811044986958797944899428565152343715246765572825998652917696865766953340302317017529908267304143698243245074697795097975909760276000082219684351290904109602207144916694154781479987336036513181559093872288465833416758175284738032294517174768539965212710444021291186418884419809326644822378304184225483280714264383256192599935038125326530243944705431402146422370632542419732163308164393959735123576600840568972381108943370707013667324004956610760786541461394849104926591290657959619548623947899467228682318424979466361233506032314913298717974865111292573693605869218968632851012563462828832744714345746874903207729003535570716574168758401104998683315698202110166248760166156940679725091612485416399999776545995720923810053947475868001934038219493883583350154820254037315027035722282735266128112024859077248371587871427835720359581087551269960362039390578489085239544262391793307883859250156401650427748021598372737415521012262115521866935102886900414138667253894867572659220576084112542243627199912298584297509867314251566791563106264193046964659725741447394036871601170283960671140638805889829577916552622994384107369172616355634004917409941119887621251500114218681525476273328065429922427584560764724262251137463283190748561610969744604028239819355536911160219048621042257251010142288688704305777806863042144124970045067302019778308826749009978681810480174108434996133388577250188379027240143636791606986799017676779511053065989353796662703844286280599907460441086703818158711118932815123119299288743107255239380029420114916503747050405554771700567840765550379890684941581525367625425118799162468059011828105131302595698135228835087224111292388868487999441399637636382174857376148470374382390297330162361097462647698010255635554764629871088324039567495766015343901649291949738129630691174913581590464577600158571930815841998500385782190466423715322384612653073512570565489381247448704152868184652758549037617353835756284466311496978904772986282417214486854745012231539826546227502105340046578618173642067643376835886713059875399320732794498667138407356790158123604064890047721784690163111527172782478974956338350941422002784634682646532440412670943446728468580230899976432088692190430134411599058282337196454647122774414018726149220362397686347290168326748682867783806297172304599418227386245402352171790720926013201409800821006009668153897754715192882794634005949747387727172440296162188172058081071810822368187080946697377070475868066368489304011742384059305303426210629554253875127921290077276973413383261412191649227851962294674154769017253353569785580024254280338154995439744154627252983344148250377994797573834298726950943811959857515759797025925113450277278102299322449691054855206208077740283936178956874886822334332828502399059716702437972684250925874812193256451482236042365977685924441333654421369426772534586775205239009469631463728699855687296419518618810069296626856264417054548050967071974762357188644504680466320430363497824699822604610840940636143350636546643209027695255071828467296526675282707460471782511423431800660907225957671186828961134360301686575236760593021551180924312032065919891423701481080217072061992433678853989386770027633862090398154521759735920227584198109307351868767878710648722702229433477556622303753230030618078207956852769503958010307805464951366492225537280780778550229529916824053886234037051761211009268601873716459841618832739452432589529035829494527070820907606313925261102632681192718929323742309317370709599025418519161199335117780999108774717039767024771491042564855848988644492652414483631635501311815659685716661753358409940843866286848400742150104959415915969441548747358705929356058633407957106032627406431846410061554425644897341089548419215982710801435994976689175402898942155375561252234111742905435031598735556285729078462789012485183422005182410750444765041171270348490553066044080373421995191453264464223413556336624992757997399407481343016612901656776027703545846855900555189123546378253263685977052195611924352026830368837548721073463244797655459571049334593423176792210728106482348145619144281414012539387994681460885081376620062616527331774050110641306994527971965586685489641283629532200610090328195561840536114105604648449083292296276733458872037062170386606962555453643018112036249713898707658656846174894200431491972882964163793312465014239148146425042722617773400714113364843366000533720453169871453919468247100130967636259164457943021010088582080838055221046954651206136050155397451605159212959144193461308795742210902568977556693480705897448165135724902544464111737978131020984760065767586359237117864295613323524671472592203780763676169222981425367361151704406420211140249521301095209970524616556733791430684850932661130573947101090865560877370710376010604415046471022622574086400895611143091731022171232120399011501199260642557400538302650174128868730957137803789440258941796176744228247285293408104642421688802148116113656983112652552574563884196023060482475316634622500930432282043544653281470724579289912438614145542809616817648183108779724750210256217658952123128480839371844921363383013894868557244760761067444710810280887555754377643239780713575254072557161878136467989821884410921684572000139881384932394602679574214563431663776072145904519375723723299296456416930276918302421102487806385586355046187769327286582621837121447629661165642144902811144480279105350554072719774898586130612236620246317092897153839678385493730994205154737701093759777315119130182654993425231482005044963668746887992459890365067582695819325063209744965769858885708081794832145112088810688132517901946339920546465803271399034551619413090795332257769901248803698541114192551854366403486774445423088708228157065955944797252651009279313318415356663328212094057910168560171929570925836674242390054570945834871546831327711316245581754533272626133808944787081457829644549979498549877145134100347920424080568339384404964998293823375540037403289820739270527652212514050927940851386184052651728947176112641082703325952302372806414097381791975319997196819489105255261695860332697625640499081640070968200338358728121949312630323593385491895615862078364485728859432518445520435790073219879977018514303162228460104601891202307523279259654391755606211125774665967685485503312033908534373597770813687497414742263261632705472661015238776160631615716961769970122098852620371800269395973838583469407642854434057696148891307763692602399723047435416925971944467504781327613846840918892735776327271679962230260011265311545834081971937798965992097358564171662662457758541296869033052681611617797165156359302889350107454692974586368420875885390469449294565185874033578858823726407009332593306221267162532232935018889976957464688131506500688905802491064519567598158305778820726205676167171315826923656303222672139360493222281831435540024385088995422352305891913669800163686914750075364592354079037922230039837567203237340599909741478079680977136856010287519891449028378025585893955862814904658585357978533721493585449253577469743998609577411753221588491488064717510871785134105663627707522663881963780425741049010381823786904422852275775424689596327998935760827776453962068931103760566870530211360127493001244753030407902503494416192974455501235143286703591688993835642450741997604204799138459707711871342124182477983954680419363335738781139590318262574121648332794204385054715696925568415981385511801309040714282880173466383462710920121063106578842381127045390842753878870941773891356657949139894431280239543498792192652385747951470295640668874260453597185616575237769968019505366953745011049020890237923109819280587118647535066918741427389516916902221546610980233334070161944611420209975071301902299842754936003269086739003717778849870083890897476324684781665222171321367184943680161766031790770036878500314045936637799863382974270501743881573174269368431663263350597253028174118976393918769485991645155435467882301907097274124077376430718866360453026725241221819855577561634886705083824129135487935035959455704400899726918712079360888999906258708428701309845464766352015017366950347573891383455596060116813898199129424804767262162835425843107929952528376098068406207885620033005322100640431818229780444563733987696589049123985960646968246227912291217493258251560979839579106210617928424338755823013888650016769966719701082311252773859608221148477127791075684981311608414010426719515783155312303718485139006109580695595112358810013281418895600585307435743413243848472919963898152608951527727461939787722833990118734872029593014084520460243905667190185118573338388330847015772413644538447888838089133615403493072573776961337498168361040077105474435996034998504581057065776117069190316919423070613584529473831235257931311907752601236935361689300127093728643667344518045230292238922986111878639215227328531350565023070154902286858919316168553407088682290603086309105070434225756859204284303716674207620918954972650443202752995510335385853173590316457402125298246183585890371439114608930245814422957764958363836884392903686861826137549882388982367841585083054844692089831218734190751499801045870070431293569451481141028567324117654010276242113460730775998975657316134987482580029129554850716396729463920381948702803758762180230309795132136972654042526345742646074148412779046991685647322566821932812410453653764309303530507460860920625079367565450587932286681544473175526235241715968159661724329771702339515813686334610489853334064655015159746063347476053178828940471145075073740514981470640202162723447273926081996055286600829563982298568162239625784019004751434056179802934349033086461133035667608931730836261588402793570017058644097982451715192618679161378222023208412881090403870186543164188537917254605125078024878334927645561962037951172059950173822259984278414873274767221219970273679032669583076694618746890753624063377032107004644484206543941976123653512994981662675740232253818156576686248588744772408336497206930513614963505188207086037118857537445055070308119278147089587539197746614612343920189751285869186779330397822162934440339982272745395639006721231844535948914147095032159439666189447745244855445111094244564846552907045328952913847965089119209478137362066931389663157884696212429915586907275674379532286358147441946605141712410685543512055775812617191152172402979544984768026827644372560243775140483494598516373732328501609952682574607818304019975301206111625997630418020913189715018693891476637307822821325873335471397162111726548352292700998866123064894754895689633953927386828989031440358586581669498639392413498550153312486411439227827094143879754611820357064482680225899612995931345185200467845320630891971129538734515679831160297092637728059284199159527214207657349023942058252689326215504485825630720221745592644107903423055171941164878496041015716228610426658341761027106118521985416864837619150747601724670091876412990330506655398551770661994376868343084024125175206741885204387179863996554424517724840317446823700434127559090921671316354473076160205869823615557391970300283653124347988374160582316434134651937726363774214838322041772807051604757228528062508349538409839103159696231707565126014647595299242690893822374208932533757838397204401395774936081242779490239728230112700951476593745816262761201844746905657093504150056544962084375078776789021411325732994197656589777082410047971286861701877187118393949149815790707589811879407660664591336436714825750903605482816121700856705357739794079217829532692661555492869881636956867450347060771866568269485864481781812414029987572344729469299436322737375326307171611019432356536922065892878425370561510102973655630658917007347156165693490614272286488264789526272814047487128148177406004827100893193846624625607980020502490670162163218521956426520544555772354651882034640709014020729614947985185715761452673309897857105718050276766618553291638759669947948005505277548682535958314819763132635131849930206766964686896935843514031864875907772175954287681108811234141566427686584634300205203933673501402192833418074846628416330426841844241925180672740473261954454087213661776298604533381767198965024554117714898496431221347771321645147742156635590003340171634430379350751892924758040500086897823091057032965408731812203649478320294778895171765683498033981979749958088276761144761747924822079724735976299115873486733725435009151208985346451077737459035999041565301130206778565711051692016296648070125200616558091718338211021129835435133336053640073887027079169051618785086269143873581718848176482678642775190777447182819600719482844874201270833194918647574370880585169846102147265379200140167896743958395542450469420904589316012091769755826952874956819513685596309768461930093973480464803817982284531531965055106361025131360820448363629946357628470018172813659635652778907404332404612130845802342130306785970453120489818306795863354029350142767694089234621412495576323705191083374029832016246823150525990725631825816083121995209358664487733861565812539954968570907782132554271125323593143242569581643525890580209426898979444327153641192368122449670272070188583229709966245787444503275802584583990446097914154865430881438773093925232650199060226429161984644542484315256943445874668261050206982453176928358098636336742765246789227490997303661521900122455410689138806323040164246940244544926808454876259717018621929873716147904381341373704080670046284175315056236560351917353201675780415481145814807378139897234120200148839793486567318679201782614047511732888000933804196796373557051508980188904754512332387767192041571421328113759798172478685090583384679369387405840716881678222268579667387501847426987286285704153471934792120188045375473331389992130090473146207127484105573619611262199789801743881775104190213003403511147865483007981852491503769563803268891559361081106431094579979385165276288646639983193729131255143014288332840392482032598747483450497929832927164331516699578942258307383175765719127539560907974241323632452569424945431549339317578801775367812177425456975614657538796445975985150493833007593211635145623161348373646902581134664218022358478525041452760750489147408909427841818007493780610971129815801015976411516748959853950633028509690728087670416121299799173986470321563570071988995908681302816699290694732493793273137059691958096286862021071320495195265473836717934052661992643824193000495675554674584277261787050171855137111171354282429024559863322975836189592766285627122789866971818211139927785467455895412798075727265336519304389326375751518094239037592935255154751204827933268462060775416065562319390489876627177116100471994406631985993337712920417711431759949625669779227933129113675502490165905432421303838082246834221553906633756155281590789481345593541820923694220055888322433734957510052877648092335106640418392061658875668360140316404514719426836270177376758656654155099205365058881786489479925296100348546171714232094360739682730677031865391926284517690281056835712718419705662859158209651988157012611340125590876589497178535763723359375627642897749028204481898795199093823542213809051069282788382180302221143149549291390140426761185860562866538624003751655057127505132871509588826811159081063792379518326213320431113384891274445791290740489486258693281563472147801554253834240361189303619031221960712173585083785808980734381011583461995385002508116018154820846180843848833873858625792839440933083524505935582652863493549873851097986033905048649486332117769143325194878108662805475314892493945805553137804795769357714163623963887257013549831000586770721900924702821518480978820942002247031472628341517465188802560502129318461072002124130524969108859608760335535612892666276425006166805046792154913102516739226091718444271438602218041788869840791250734494203013508406174548210334211893555296198591948364298013348384056260738074034572385939565778779405420093334232051507026381977116328070893847576814008786529044908875659292301719740991251204486028622364181043400088475371018700237799301583303282287649438010129620877344898087958312499536609758300784448565112948670782610462820529553829835712812392250515271344135641343200004628166809291014288655083962923464998267775210733736108542249885163864392848525410015062262839488959898468432387388559192563711016955969283743350826150821242940072612783029434732792209604000460825241562361816060496761406879461305604175826328383055104977018430046447968000243970072719774934601728626312165512967302002941229646287222989303663292380400303481166295329917793068516110955283693558325242816270440791011736811473477853348871530594899594976693763268693180357363187022074259322239351413235113536283770315476677538945503640696817217570834951041756297124619790466965514090523021426127039261630490655649562977446702150201072152761886940651777141611453247355914267189200511460760398997701573228082151179406671572447235033869978363194737352462762962889443710972407617093415877270300983032140143866173850313179960421592365449558623275334280746544020144734178017449454042204664067090130492697463059662963958383110689862327017613856679543043984681698043421597927346338787626553947201042618024128887984497607306083590297184435091001479295841120316683140299807153883178950209774509324755196760493725516138751732931704364465269897925982282167068444061381971643124200730766027656112625458117514274213122075670691122869140262317602893709738475726648456489181437376545209523606258798338087301775374524181417057876129656666078601457673105729374214277899474156404963355496585500800691311166713869629989932349208680929980708654386024657794641919230439375194799361242636806373977710050548344351692123593632816177800680818685910816461220034144979394915635132179913511494341564840241782970713749193772509337925167025085630591444693117050653199563665566447292054701885811024746322081883604026463219030955081675589551946949883391296285280164889663448096491417732344986336955626918027733057835054069668251409389753013768729521894612869183074354864836204006612307015904013108749044411446398779138651143555442530663548256672968193085755613809150267412609442599980659460227073253133965277370878748083711796316909811212403207091459804296653740501701339444743144722921437617143479175738258557494665226991314009600264975965862253565032187257728022211006873223213072660842856289658924710790296767457443131209127653889763945416334199321632865613466037701567108969603801512251864411866737875244084805002814878470926356120296875879150518622507063942740499146561789204871690526908081722607790222124655759207470701819423769073632053447742765833792353496801478193522846901181106133421673980552365705776342405871584973648965071391961059429896373818308776797485209112196580823511020449169922791444240095015507010511562091616309079244157723692849865725575621993373900929111716341876085637346939805171704017346103410900644113519206085166260434695085411406392161819571842020688156266455005615992141892461732732504116828776763054203075774570935866751777394074619402369737056901740257308109738207318073691347980495196988305387773539488568805240121948719017563638540233509309781399933460013694700764446568428187801141669137602716209928695628683188141175438018544286782520130734380053640887925271937312807983989579988656720134583864544876974699261284230795252441581057989301815597746005088736894829401463810274352160877249535853569657444391598024791873285491498411303642189610061268876185152464030060064927545923159668037218683316703658899263901655471911926864298416563830612328171882559842332380580994435887634523365045658918591131001626340920158000954283236524480408379039262433211509362912367631804157370228895450360252241301575036109663893091150051517835786961180836897354510544911579958887331231205732099564454651033731676736744022355226434410714839307022176756355242323815795394313498401094232623849537514959796651215773383437757082648878961226447948913213048993099712266643328456901734954048178350954402026387909483588422851617316294678545216945032090115299340583939195641104042320783169560997634760826955459905879884333099937456809881522345286825641958682572783978299094709159632687547158388758682265956563534685540178078368964479717867737138317203757512858390023155806789294050037788035859715056296961701597271034818682336504954412518796706216741709266365753794440152775500893562509370809389662188692386742958530887902320255140609400942292618642074097690889143476709424066940738426220485480637293349858579374780656508886984971822233814661569574205866226472624371181093328026872275879088231650722284165652130721323824403454029293029134895130013472036499191232675845932417342221052868435877778118308432335054155346246472338287919690633594149035751496217991489485910989160376737442422541216640858537260278993627027601956679058098184237632214657629885407062206162525272615922407403215202800067934527437925374278090139985811449881446417488720593518733984399084508119549453795973700578933052291649126983602924364800266950717712510537196501332123955651478375813362955461157520667181433670594731668488408974303210096711018827871824451568523609086468823842970520906081616050842028887619484498580642157234832404415644159409003686999856481179057613889608200375616144030955944035608154296620376416674005456173422188645584394938098064367846137235112778339775982721999446391103884573587036002984346927378359689462784964768342404325475767638155122326299769261027245619065972508308068644419700408058779571451717048073528745716993460485999380516060908116422745755512399671281242411002502882798685084753749513360054498739243153605941950563270308540147739720776787541831065609522876987548347043109545449604314796270096706544448766542478958092350525981732630213183821007899186407134968824126804570336656054302079189301504719953655670272594439137793589916290008322443586027194605553201060915618428827065445115965765110007593348660098499258624009589749143957002314221885760464748303560241922610549896797108187729841239860069632556170410594554603138056858375052223352564828834011561598888924004692276364391083506962826490766369993525189227273425766265547870740556057041536541152420408390982805527185258325920574133852130274996339543232873430032101379344869376826535949977826750383502020816247460616752219201665949620609953082435660927892888715810408336249287705121462430696451828379016259843749956578897391631402526129287017556895338745813318761189132364774015771816380577295327297856246819338407752090803073127111227980522032715660403171083846312278390006471996288145186864295877459036022006710016047672051935813070990093211675860386876045077567634785568996708101526254259068200692643384576760187274076053841727190588173410640988701991256419488802281800629717639526681779592628324930502692870991144940325811849366162862336012132718236664669650271485638008184743063197074329527097797507173199201687000088863230152786244221507921676641810608998762989676280887520436551805657651088110515180766797303584957648778770464422076376417902636683847144518147831711963726880520173305805297746393529073592255563311646095917444886890756420688092751195707177479060353216167514509544016808270449472297438754458340853135847882377551193173551272730051368026698983446666565093132774509635779415617607570488371624177180632169886117424145424644525540783625149812157879223758002586229011721988212182405129888316825072422560321748117687876250374016276939735499400948161015593862554653950096681877031307470652524495730838739478600175990311618244057735412987219570599939916777114580064672584622953708505408198497149090188853321560012587366052920987693963370345458180475044899225443452218157001951575625925322634238959329833020761209758452294190397639423176625704611163103809916641629928370991997083989289355108730468179263714384613249557396322110905231035941478164914115102917215204568487919998549951689266121890842154959367664770475484919558297297708616952689956673030592956568267891453598481432475577339803545604618116174896901232159829972765625459536007324580435709322336968296617706970044899081110188112084665315144426626742225206247166915035462451371537837425634402036727401619026287006491505911469539966234830650579908574663202511301624835537320297880595883663416065889726573747959757731736183417460314026242219290690822724712869314354242709335224430446625704054439141757448504717312326333094983864398317661918224867195115486367648248479980910114510225720187052870512683815135612963530043815758336253571781084571120356202819828729831324960757968867215313529883618359681183164633076081648826580556358209081821269874199160025919305052537254938548464830533521584919496544452594984944322834196937860541144406583488004106885844683505708537144297364798998436094270273000587434964744775847581954039244851053690836498341886518613179266028987808509438985594619866245266010059695621644769618300630081815489010318730256599260977989829036769574394271474142312818993008841446644790518128326449463967389974266459532314077549863597229983059405277925938224140317926718558799290172701008292478666003248291134727751306334626172327811876119702372052263817955639690537619825785688991391702917201954338419960061372756870272062834264890354954566137417659481482759401906804185670971880458093828499807949456372783908845566846610925962219178541434032359588568837488242585725033843306486385781493244155286130402101735611222934882755096318291664859080865747648267845420318184922797204821883032826876131445682078153149380940054054456770081217135365058533767865465026652674249530592354916796699028551185079619907177939335109594518558233703696475881534403437890412775798402354432577005785543395773083594402295355909758107874222195225088837662728791340584847885473843748197283925272973791865922891384723185489720554413440766595977024405724651498035779140452792902410650483621129636633968826577981729689576646103497517576493903610749705920293638282538040101372139017455558175051957198403653778901206954272466118210424742752588270729759738070409400856833131721689149980384208192745144991853404512286592314724210749014209263186858569035143805005645113885229992811227827987510352223770968248780427755048457270792883343246488823601706495146657733111208911795349685954643387597836968391932085698500183759839535422178960110900678960074701169997406398603606512612707402182424572042178176729402546960064631387524866036819870477901416234251991082624659732438640044107490077315921665950573070692291962981978753586938528299569527015163012560547354023878717579420544853663028890739760564199796141472468745429290169035146398089363366816205243785611728262575226308879502934553907739494549314207279946741721454773514801118857570158119303031650766997829217701376703861479915371871226211585820777540677916146945039756523708196365773550661763013588605485065070719856120512701290380951894446253267175951923654849953420580312046051233339322317188172377911132403756383445274450731549384353616137312441638904457812506423890360117196409061083171219928318789175432353540691380490595032989248633880050140471097902271148322158048969310178614503900597678105721101768536194800365258943412717618647398186323114564464775794353591697682716786531791740914508384653500301627594045574602336309086708314538304531931316486937514941562577886315449702225135770733526939359708321507701597996076998366245883308649456481088062483119688338126430135829359109605399589992185254628484667173706076250037027486637467382096081134810182127248359505460322611893545373275725479800211593849287046026265913068474800966087140351235758622437040485592831684374118783639253811142569093109713906437168550902721990650839181407927633710694435269216213580544371370174212027606433413089191351713208596649219382760452894040139036973274838703174477081965135551295920785534496839568664928805836054147564808474802855090769103564745320442752330341526292543615884433746208984969355669588244617101697287555115047222956571465367486584596496825698099678141607677994805235771997671667987072946478936028993778764492918532612426426017251204062183444620459786934154414521283963485295296068834680683203685602688157443481443206789677443137663398746666409430208680950733380028566178207560649294771043607855809972609089683534833007492082320964105348041596382296832097317308674649026952452928300516285530636926151420338976468775407713387215971558953729137230518371231004909736582412533717404345374935456225946035212202904106865745909377465967147918432782834699827684163501250898119900161760029075618099823389026024816143243067029345448882332278245614995625006998153156174683103438752181946386226414336352216918807113444313544751369918028414505736350438380721755467980700937784749077796332734790638929133702839916718133663944127142208219315631090844987905892304989758567447853408430134093358573014075778946526157624679539556232843473677542896315614340238942854695859478591140065453755454173509597021338205058288038961470385167630879548127917131392304285332182514030030844615438262650125593166093313183485603117029162655675760859627956192146343554907770805255338095480964858251217816205232722287688916501074894899361270662815433532915966774533656492263805448562257915377359605330035071702687630754023443397124521485246261211226099849864005908474058907288796817960804798536300685240736177257351594770317581817624581856764158502448727797984170847768239756250463709661015763074944100671790364489949442301396511090526062755337618369465143415565954247187963585677732317474157801209332999802369221802807513390541745970400885664874957465600598021210168111221614482761383016890326338828975610911598102786049708862285600625601708160707214706478706198054365273695043101919429602833247370042541910468994628190015048633082757944406212084320954861867440361338927041889964945808859722666691334105390488128477341451999133255732994621619718027132512114061053909211119830068181886693288765605539765796800655293999539402677518911468656721050996317461058074222409423882860941066130066595626860895169043744977673616247819460915669094813326773684738353072506207274664570144458450047222179825991368355371805303334130592193700923845623281157708938715555373743541707588379391862076004434674283627671538416590855087219790984078891107435104056132556763817636833521087796489939567368653505770639634628385507093981846270656176650933516611508015412286252824387353313770725800130400697845957855335445210415841812172054796296585755111534916568121566191971081948294560419454414730420669246134619259866892336422705870956085470354195906117237100773320207326616364734211778497069173622188066039299725103064561036163730798336978709884885258967339488380718983953136447562300360407223094748463116360466640797515813785713766499385946586503067339643751538262374755198093908985731923954608078087720644475677772494338087871575149500821039626452327745642186297203988429865862784065461552414839165308995381297796559529645760691534903300084271097997523354301191850960744004157435682176216628199989919982301440784782314175695627041097104351836124710593519232417024437340913236709989302842066451629035960962691528151658725882430831411405114048894261637169955441383523597126189663854549949926780998209004769911476193665439392944987561009448990554125736494558900240277668629864843990656805318612031188876220782706669125650871735467225510202298573059049971024734731953934603801289935640109536380822547001012215247080527700085324767107215966958978036674943589568603567259830405251449844150723319663460124593732893652188913331787208297445595211996047573510154144665168455966270235206064893505420865047297494795986343957046517436182769375709276858388841169574010373052948907558980738752839681658485736690003443803938844259551204496621821843968938980183195283627990227704626693801468037176066870615441075277443746768891557009548214903002867710394341076277469246834880349261696887565602211947631321116525192036824829424871906560158176466633092353033653285687205623533354308738873662391834144753862572870038711107020820407263129733518949286169864976325345754577439817119730227855552113272138727619103661796839098618096553380027691746230189433380948935044786774457188857113509538227150198873802989075716028888713823429368891799234097993699494654561325168034708070567690163761094744974122635594176609311055252415640527246982444176880858532172085194953916783415604603468898347496291912528522977742329463778718648149271544181011563721540623117890445600973285027275415948579494756051989265804532995526556553517252470431113189899061971487344214726534177501311272053748764833306603776275121047278491209046244661933226841382817324493852935048539011857804769226292116802400724455528997201247206698778785426888660391270531494443932621772448164963786316064955689315779577356838744377480635607294876214955474433616699630755566110364160252845321244818481343794470958765448216723434149428401243511296355376650259937513428688892754056150820159478326279897218770419471829520279577470327070146102458222328088858199661864051054093699860945690415999818100809110322000390709541574247407662525684178440724934121835001520575700567732425837225844577154198704546888393333604628683005118230448619865808086885610922943002233375724123915680986830846545639376981817240927145644824160429709209075909178396759122380444987812785363031156053163852112152507766759683070256222894110432355752157406427283340826087048051141868002383497695057068607090471180011523577330059186753682775104115217618525204819457637274693485645041655276434340560366223785142827267288080339027525077750567797015196140795128894223034229007393043295597295910694791058747654420886652013394996145306036730194271177036181235983489721384656312023774829808084800345982327687883169696411940737192051476495364126784917248483437400774489904817699831873344984683058874351551910284169769615186295578750904635298951580951158577710238142109939581595362409008744986117000773557959323172344845224673433247347032053420951178650828371709882580593233642578589677119727818939538625530176134004901132598496042616992808160902140393041109502717974930843758444446452477541899758672376857698543844680048874116782460813068308881165121477474531998102398931089642337009969884114273238597932069995372293357363640489511328992344250882828796933590890815196359405186746258372921308147409256193001498904260755303686969577109753866972611826656072032055361402022080435318253212595881427017227262257788638088751992282899591573190140461700153654261232398352925325548742431169805476663348183262340543754024419108026438193629891798248277239746754836422511548696371541651585187485357197059549380911133303352050276736044697501945074739409731528094910644956683834149501867614225948224334249244793920310851279348121198167118805887642239359187351684899094596926251733574438988180154979114214904288288848906693893052602131256593248707343986902745788265849642714555223547167420911789328718091148630066187140031287885718754299709570210830521114598281519421131575207178734884534393176157650598181324703355835800756064059966578365552224813249205076725887232721938723634143527827283779964321996750413413625495509517740267649155033408537809587713410692855651318949104694613077843230331929206217963610159486415927716391449822619006562927600582447244285208954050817256199677926056240645317091219880965711723325166455256140789973151715903984429594971861602457072504142576292833883334775861392938193773797360908242460840881785239928986411856227680165379440721364172977713349237286361093733267652352189216403028618237426876538950491313536518659276951996146866778267001911227798510630699473454067924296379390622787759309516739585216269739101648256295461982785415904604185664471330674441951466312040350727562437441192078243743285533846412918664003762749256354299945401007364533803656971469154264072363519446465072633522079174505769151025173978974656796095041176226200316255129440253245256972110169057854314873677429137230959876199915851982955518030185046468916052616274966827424636445895246293159185077659536935152967330354228980724688184258881378291872037558796743848369661024145545411760213872116400488324094778282376324906778980843774807013518432378100652226491743239222920399620118361113555194083788898414589228072800565167543778430391062427650949785732863625887598475968063944146652407719030578756859849082203783709109507980630375696295963463314246125735450434561600293143913278138001706174021917137188139307385390353372767968234047440188767534065375100129720377510797028994166826498007719820588651699577012068728469074951504180961953181107792050392228237554189648370231373059049862988580125049688672873230862040351648214636643079924390507839045515197754869502946354455549411135046270830320655283397190217255832683145495915589131891060862847296614698649013610945896719276953959860748788477520822158484267414167097210011387777267484559557914465106417103874374318094130122856376799106983648179259656958717070957405009874392637991720864699330580912014881350562097142280511671015540645239503159086837704649917431086973901615928248384528906248428751195930969934664764446061314422131532342150297800154267695657496486028683792740463724489527672526467627546443493607225935096132097393820125041218376037561157579873767156953470980522939318450434027085483970046922806304313131330410937159540425827650741241258842165773862244119157595141315681732491522216090128601254767530859136536565787625603907092326873382077567634754066952471664208813492317620251763171358503538369786223525686340811454072898123210707736777281760867645286432510158460233514132286487682691383032174529039758422946926758211576115929173444819488562718202685025376258358727717537895503866689516195976736819371828498558158564811782994204317537732981104696783393682293846545477006487929068013836801600503517284992325667365761274831391591537061073086778734158636277168177603730638317982672474336082246453058673183859629891501913849162617260960403269167884142614645836599182064276382341082480074427086593938034142735697266955979823498013646537629318300028204397428471213397933548530037866150670980940941306908519732238754161243071716236965720255529728872892268247409898328555739108913632049205709206807264466049601559236457637351016561406693878600137058862986073396574527937486487409982829050335555427660056113498902764350971465284411641115849283278347903655313183579163338666814205902746055732645677445950556221194273364463432834491437886605149153555104984684500263403094881112563123568438850867447336863654256521968794589153303041768190524308856182415470323719480203800942321103640565350087431375843635073955946574858676189962584334142410478550855078337374248539931749338980722474103897116155144044552430268289216791705862727456545645924556935624657652705107964466410197911052346639290794869317858750844624596449852971982931348334764756845527468025796847915228931867937864207583119821426861651383023653487285728923451830100729301182112804636085324492768332843935224011831197047851292368356700246869867183201700376626163513994593566459845327788428043760403175963763171894404444576234808441790029722242022691195116550331691074909783737245680717173805827623106934606319756244102282261639480694231663533961644216092361366984672287588309957408538003168941202937564336210469503834573465842020206219313230600268375545777685851094867317450645937955743295727208129712659695328247263397878650264608467617854622782676019251470757225944784102305784217824108698241259954965452037173261242207494969849929152085881267038166131796144425776181838985709785699139192029356176749519804303576395464496888457836638908603849327056818844065135231098109680615559871591983164689632895541827541177910901614280718230855808780649358702067133895577127146737004887859175227590035266551055142639781998233594215284811673168683360742415543577527389354210440759980337631902754070436839684131590010834875246513040858225639055438438765256625276290524030728612373645435118696908049125867621938012742205319993954251636214290091758251977123408563771115127909574560828262384623943288959196676872071819613728472743828811558872227571189562988826442720994681348363363036468944965421985160970678126258296837816570462071590394587818470756536339484693910444608097693694900834243724271183230661892317885196571251419669012166133004510194680002760988818312728692455993040903652342722813706343683667517461077498116162913391387073588131674377897541244446534309636757385683700311874130915510591256122756006059089289256229335277235650582046171013561689550188734301345405716831709441947350514652631263162106084140553893245387915813503291844625991648210900356529835888125736804542791906137805491056283306784531679553812175012912102813159073851972959102072650626296606712860848273920489976540076540542273618795807981075580949347881801428922147815169653737422285885182196449012950387855535876072082399498627025806226729728856429426058574449829280527445956801947917557721353459762855950138247973875810794427073936440062679035589602600689992733663241239501380577373191236381128325889877120075099267934607467007444997650428982620497941153207066939159022821065991946459524280438239507926815396189983546229458095373304113224314867031990237353673831959814120693258473477531563720293463488493322053167776470392011683253551984913639239485984364779779588295418862113096479567630145720974461210810981863774869196970539831701363885762400133343545944296806400403862671796618527285435888315838047364608817787513733913574072073835064046570269831132847488780525688101605291438387267259128273033524789765973582319862040979579816315048507664869494175515091721905652557245782323683444499026393155731894490383977246410779641671521951716043508225694257462110344490916891178776842821145725677576841333942738432079346151634402536849910651425750711639900015024307164602859401819062287617487588034939072621843257248828432387715009112736728253248771033085367959931244077558566518442586090478297297030276481936344709752906298872597008849349645371768140777706175496703790315025362435638246018979932787735427222094151385409433844710943364168583247124515940588666083289459743880765897446794302753033013960434665415662522848908331414420434261433639324005973720414192180750735334495559087106321216073998434106513342479414083619253836986949974618615658500274184209422218725062597319401584127008732610311133791688992504699674800915638824338145915235813589954830906500038679536666473765289920350380845679847737532333537683525938091327961278108066722881963990609560614771460749606759362053924562997929909521611980872131261240750756424553323492404344040926714336388752549944153212196442364082426956402280401602500988470928345412957914236606304539642621697219028955308704832578496775755968680808400873214449065377625808574971674538558266395656707560110696423755889583570186467234495795140569894931153339377380687925092183992127882764456169864871463388131544681199530738811963286003835268051646964612818736962572747975322912153829176559363068109567935690059583871822254654889266874670478971711356812561821550066241220557388968599882337856030722526860475764014424906601850979920603185007412537790888197965637774824815218626511859892928908032050818203361402678531771191947519609949020032852762905836092167039390980616172197818312293477454632671052406321871011225688265871318027249878836502760915055155679611358523154020485521968414875535888601458967472776350667716032454941025195249681493921173601542756399298763484475147106333741908966848721751709487506482027036142278505377865930332736951239889639420402725613592259662641560619767724820610533175200591645284721056836525555221728913492377711265706673614759300978757365524809691812942353642022799835240214348039594317185028465305366287280151482224909482155645716007996040558738235584318440454050504219820522192357829427929354029504984747809240284479762838419688235131240747428994186331745111387868816124833867674515993352663084071088212738722025142279032687539010013817527440929615573556617527010261240522428152786021093537570389409191889868566277516407483238127398630520946402989224290325002183824966498116946911624475642904851091384478153212775109031360099972363070571124491876906829270417675302496585338485082454673261547828167932784543176992789684877050203045826201916372789417137617910150701942956878080780939340994529632044728938263678655052857498160498172051628822371859478725614930098806614647161251651219435503058520033752935870820657801317351078176931904369282471353350260042744036149231041858880972895433952065132609167991121349792157785886911770960032019759048782407467857796208780889996113431604886006501479277911240166872801470150766560617229857889085323935385928231029593027746642218265539477376424910203770457859676642769605636175148085860558612035787245755807522142187919994298499948755190343046286747418307465859435183029829796981338254316642263149523527852881298912807808042329747945742218499632426030474077406938693424072569575198560976629021433149808177087176705598293961607130621531459557716865752726504371498859949087831619219703624932613048017046448836761333321721383265456747187606802546345566444337528298168048335241029512573447436539831493061155096143688055783705385072506256872221483746758280747743746913739984077491992482587260161208536131722178269935996776081514802111818663835448575808829097919901547339212465775829941099956790770961554963771405844136115743537046813671385851628486176170186192954528231645531053373192781423993351300958943397049894132697831050323871827488491158975781177776293213374819031440673804082074044030139702591429302618746408635179208595489880769804336568376577569736611251374837147585449946166175271583679143482753493624527782557671819446301687188276394203282240867711326336141733911492113701997860541338375469185054927450496459904248683795325102226221452758020180232654585361345561665346245658739289011507574523211242349218310478011086086570986082516188407225940443600352721633409747340576204616614324726806713615261241135848298080807996613409117643810021816532688017635985850746691520903301005400352057437015720438517256885261567616300786395600282685149497019166640239016222568596003289708575014950581192433376622042896876559042075863243909905252933922501507834803053295570054767349902680189718545043316227481375480990095120551553957190942014126288047771144663580124618684212000039284119120424327202411921291902223381058252080316691960405356280769040451112231444968343494041738642586738092074451935347635657286870130939396258382041570433552158098073296077086990062920722675354182203371656244180156698293316634649077476393885569690391139898078607977394992974621622849886031352907118868058285397102990527495617582631064280999528712345059108133235440091163360831667202964256251699911427297461255075886078206051515078849355636477403015047750386635156722864715333267591515413450963825291138292317201235232204053196357245006649086845328993954718529035303535660847291730616406745313226346324224991652471652019792095987791432990100131969271990093887059415348429505513642925912223587528978661332573254211904738610754729073991121194964020794948977336370480043457451194841535377694487483599789606054774429344088921944860265087134196466432568944145197251295703225993101090690436586103186313349653144421878331799191547766108907297052163532174799500964698176144428010780812198512932330530763986499617579598972101311388244543247947018001995855766390431498459145967114740624617724413220312121274761848093441266583693895963859958182040783237358564325297003001741272061134556878761329777921320829562276415219671220981757507924624954752104172508950953766301960608806083995093355473932318364536404385825625730729855127392225198100382046087774165174653763759582895616120957821471760431982515308296067052625249087340860842379786524367084601242403299575961251203401125118056959550074770182244327118064666238814485440304733502812120984796453751888273213578209653257791175482979963346396916261473246971069027483464182879781061082766203972493738220760394471156924860791706024743107512700668195675465777572760969053084757048541691526331431917708491741980922186059755983049571303834788682678318634510859658199006146373162726021028315096595027368316011485192286203913047951693651454878519814501018735289266059995725937236384981215070557099353553123092090136358867938231423003955468084020549309938648068945332512873587046881594725722593951381903972330397274158100843723028939379839649265990067967073732248668459673112819477199788301332075714433594220162476265617575370414823998881602950562698252032029599313932434147382609047885870774031636493800553210107593385824662622565051992175925739834182300576150287256481002957246953147121077245208670511765839541111969602082969745875293539679160746383736783749362305793703900659421813509373252010331455882520764443514912665046878623527309615215918352038088361404528725585256133351551590310272573125265389583423003724108221654933276104833710610117953868641030155857260196881208589670281449238135119964876788035897107963267838131485046465075931108822352902666564024185601495867581929118002093140705938060625128915398125463354783583464564094109777321210739143763127986873361954985396798376165185580222833465643161135765212432258966884590196194853271147712260303983955030710106680540548997778737121616497087862090798026716591327227086585415224177530291896270968168493344908903903877456607364387887851320512511547925218097233438199153009758304955690618400037114910637795601917222581764019560795858209619150242334730807480884473255503169906540975647394003133321756273799716891319671782227959817975986446500710720948754387990782321865945252333922710885760793348839500226239983148240113986660691253276144364181562244253873786308910813631160973487568935812849007167748690585883993486885103097465811258904169606372037805875819517833171334953332952952573477527008092404049404733224045576330972596226562397666420344583432848896690556775683668398320714603709861113201868944433326501163150300148206170782179489407951704529733134490259136858275089732033156365122334741284188181172451205374429400118500625303676424085387702636392038186608767318486623332333591735458388021438325492057243574694899561523577171144926256767424076009158799208957613807610348282162255177280045661545919179957290667021416079001512018710682876477897062577414637592590625449068561453276945466397481996400244607605079353934509565500436114666608793190836205172649404032695671833516380458419821869235248003544117947417533371291610477879974772079015639706813315213963487412254595179151735761279594571894788867605339326329617257583755558578582865642075050671655453703969980397338860591256813400264420985197036049027928422657364699648607922877178466019013305547288685417224053793425851919308531645446869980507774567029023320405279290950203374935837669347168509798702870033507170018848347451713412295582928955963870370477528310124265970170310895655570893340541172982792745204151730519890566918899429231380573630067913063312952893867386890782763014864964985805136850586827067120749358860433807645324667356480217207899511750092391173973509534887192084248376049719020334297237864294916239925734246494419598301059866808218008100590283506780579213517906019379615608337406405625084226930165778057289048579993324784592927904330048355640503197688298840670500019729506360852145891713665939640129929380033826944796189495893997117315003950920514140319614771048525793126301922559185523426605628788293275830628670027558024438083248644337668226383557100033176574989454557214593378252627727199331971617369983617248415371926293504221199927639549421319898320230363825264075448355253816619538517903746025929211223096009265953337040410129732648723304666437702807375393135175103482171907590504118258206355728801016050095946261583862159728017348376476242262113170748442540158812635747319015899709445878079869880012239945820179160466247269862242583150022019249678234508675430869945598532055840012876710098332493662600878990262984632181290226116154674039342434002929525149349387738129870528978708186862499880647681643732965735441662870902478209847156355700626767489430586397984933711121894235055635096222113583486464470750721554116511096268675807925327340370699274950609640375825592978872578924362209641572998706150850577370541418818030894553612495240933434204339519260504517459859069061845442096659814245873230657276721207835962545417313362098135883391526178119873333250750566460094399056468209145741294462007535146352025818566782068350136238103710518475066108430008195733062532856747253189953444088034666718681558039998804017298081939605012360930492632150320005554011032647560247317512758306755708591351844474370020163357580140719383816850757671267279547793786071612352101514271985343342029898258302899977814383015838205418686527222752797706754665769011803324463859363519740707014041822392619473667477969605647601846611326519833968996772877663762196422955147846243318390199812171392860355024679039986011734550745934115401344280573195831953882657383525041059202918680996728118782315509078973606662583794500457009212653361363980119719417887999176497689839537203148327543892639268058611226220748655282190752592146570793191429644055399449342788384627739488618479848276002495821104968992132405161226056975987851903114715338428942252417301374669076306025098263917388792790534102156646410646554775453283266603173446751198556627863207089463835393946666956593155901685863769948712303423794235898208004410894445863054072419243431311105396624868093273756856542086328178490819320315561177313954260031360943625876542959191097537946491099782031297822243673009446963735712627712791108818679896323766067564368835704823538925651245317895306385542395969791472340057004079842514315425732736340489375361312092027348173648104365217371797654800791304455431403846828185556572894752220061687453604958197663353274868338332019127538244488249702734934910026627943866238056876429402796871252538322982114866013157568013749929620737283421740938649305732179136452923501533707044309650406209562056039764022938846559587548412131838812866682552271682234017801116812006415070274789314202446680148427235226249999909831933733113355817114874553415375696989463011415129027063598655268822633614813951981919125917633010051066803145524814910081159314818048824547815880289557204631860676345770775739982029355330017730805828027305150171245619012934325112135636523757911053104511373574607365041622016170462642624876476467078732436941760914015729058586288050732293658150978566123563534917107135369448055022868848472558399418659689624569318684656357488048500923904763272950180946498012850778058438112788067134038719679446908252469039386189198637406092585529804182702573933067670370802891240122034524797532632790278208003846110636174838878639586453124469434766679699424017675939541056675158460297228610644399673164842716919592844632364722716048891595099090915432049891724118332005747283001924791954126787356219311297148912821646217258060338225008952209521223171330624729550053031927906010080579967659329885852758771503275528768040471233585523098955082158319427890953729620266908133149386829592440322597515247954873582717498061975717513179646574773118190838003839288236953012454794849161932154677585259689681862518950113529396769774590064670340143051955273528134557919664143275232595987539432319993891237185029193208575042024546655333573021319685506593946256898888537832906875815271819302677622098116466399269291110706959276819089351222880590597033199310326395215283058196983294001198141400478510110490077564096881320589073284398894164197897242807564719754271498958425389891891407864323743503463055294391447566209745341942051573989390290183117265759953361851745029428238670596194589364733028631957699156187762595038872841262266008563754073843318798175647252846264288222990351033114002336990040862238725306280337404235293840556886590930547977456116321600656461920238982907670159698972150219348799227281021220132253383713561685101840233756457320698503769033247955462154659928242607066086434341879214893492768781852236523238842384104729086958549220671754940576807029368612947819287407620286514300726353577583389494313749124922316379063576607931068494543470193437941987558076714600802182972584610467989842681247705051386598622965979149466742002300909525797211031962447626889067027900618270355737711376376267398218731221851453232653059123804969825987870605901803900771578926331231528899396060661070084057868910936944912035726678864306323034848113118474984956942285614093625859760044750561845892259832818157396381764049114239541049754388980809185171930276608596975464220088406325455237245732850172039863672699951728421060172464509965392021979462857677589171247193062483344604183967049454325410374706874066985933164272343248561101648232050443895480701681606848028766790325808584661006555227559944088275937438911586657709456469643128427548446148398923506469322179938314456264025909223763026568546025710656699721056943914155118677055148012655787544951229503409210277196228182968235733125925619899696461353769468954142141069419925505845164568463979380648870022876361671225426127850375646452709635155360773636905137519675380978608230148630683578716864732493166152944573824791224499370813819146857081726122254750505225826298126764857881430421630259994620648626557344689479573732535326913321824810177026291107974790078101225491493009078099909917497262258253326423401433422034945550602943318437909305294152369848073206130836536740129025575771583644094205204399492493454249431503380537295212671798621072440381131535576746802946862576085810255289884957551689149161864167970545305519146981661594360811576072688174465227724338493031933096563098740829893782088587322521004384870378662425181770461211985635180846276378601493994433528990893010602533328525324040928514898876772741240679688280368956720517107658450279462164043208405931868213419566912570685571346392298378014213966063990497743781000029627008514730828281514603340127224252749053586275435187376726514553338346057231328158117597759677393760853609186636899641875667369123901246813017963983655108019826451624112308106366895139870546768910057369018532755128262770646840024302491657733316043236370661876653775662048220024462219441136335158098333339746459750901504161018453238972577760798434976908600521102987723978537739572598260531617883763167041947429445347820335660203853476723548550166161528969256861578008020797470698992109312979548769851523166936667691483563595809566356532402234772447165803928040421907340042141308531236445049384245879339112872485197453677357597297946072951289303486314416521988857073406609651584539279512072569804115179488690352194172125500488460964598218503700077637002082258326378125522854358371998843634773815100256423458743268715265547085331382829981983160566737033412626361244798773645406007739989696763692952766285903268807436767049706936096238422451160099184616768286723309301740856254972774737021670387322719867214131736500655286374321637573251188398415079723653466027899568473191027070060177238909365523485292533819351847260205611365959027244181139831340947690575009174031365098754124230761537994189911389188010495123371988928493258518605499149232159775078883477290853329169470024340842168601894254273158834274606945942469231262159967336281877854841228083795200404015250273293918661964913918660320137840869447899808710926434192037611830694159778937288478923449845944084966910731514793338690232849991826426737281615862876118636495911170990091795951078955448033342289208182904741644793356720287550898485343248866383618072248540657817688870330763265789208988975721102105615113665328889830101918233014583371305992516026265216689915922572017010013903558605711014971716062742633279098311680376228264666230278584314652399791312458409270952565219199086083972493358978249353537328821845894712685055213517707340155824897128607896779892716283983785893824776578171158623751905036160625051043819261912801719256410981465429638977628938972460325250616069783297839538743873895541459170433489452738374677427360934236257754661219602985798466140637190920191332733150251465738062522540972126592897583502826578705448239883428112872266609528925251027425549951749643340745085078376240091173626821676893484132753656491527905372019400088232726017770641678164945245735334084778767389393044644440288850986135675555292946890291607530359547153095985807864760907850374577096514613994997804973163013463124954763127259306564488053612489415453913730471222927061191423083442712355994251033113333591451596799101128283683802491305941331021506847154442735387533790893028197056975614195952454927664378566777387195788932736179994146176011933695274234065824502574072272422520514272358537600539891426160721558996303666649542766581626614325111375351790335410193295445500925411732357191836008301075978550901943768621742473661342317194646922314830400647808177810628674740415624214633344953481038858353070949955833663825720871455304924695013945376594953777026931567951763959666201767294384118949367791749729367458343787431312108474344868962369836936737341151300675269917817033322900838664271533130388658369330521737068732768180883991095592029904264182333273780593007495105867278777824405297880104165940136764385677380588804487044444732610410876565917259512112679692793684506381356730948250121041471178347970381110792193193198922395832237106767735582260178828759847829425875969921541423021469088544939918856746977472549943575226786501518899911149097557567175005027825165363329967340899476183961279000679265385928245234294153140262212036891939033683043910381168326480346620432795099349080593660633398775801137236851372942947121286055315536325075863212450570222115683011773435050915060847014525668773062607979784030977425486900935342577254466153953469784995533705814661779895743818818520490296272405255504866030870915301831454815007210715991786720473943248177206561424393910997373315122251112972174643100753373633411366818726037030899434303092793895812940662133412800993382059533499845521399942109080293837414819547224213806640364048179448265520828038220058775258480721126342382151689126657170728180102323563541315947664305696923971520321853948806792420845159721288477584075300064559396000732014443212975861560751251528264553538949263391490120620420267613586024189897217055335256413407533501976974489266718267353860995198963225925236942318806774927729496254730568956149539697205996885010162134664673773602711628011482157433784324117391300219393138434755919372857928132742644498768444411527194790715145162148699454791885008741019648813285485018582511847541295065316563126597101472549452761576398322222003024407003546732572887134346193666356656884613010287257610846124432929692530042131870814007417006215410006459526830036202948939658117959879508882513675508298965777783342181383200051759598580655137680146371037413863186918257714740191486622553387569273139624436844268629410948994128738020569815509905603984900647772834154081850411122518053018842645081320351550823095948277974793817333917764957441438500755480833729345015393428145354859296106123768643751432819771958719543697421563745609598510652394489216187816936949377016134791043075550184338325879120815242958242872727446547987283517179507628720289577933714503500116835108029530525629971810744056005504234454219073508125072316312853938738286765461601238059314706235233621773314590022190545315432329158381432765406138488400900389103884024672308104542813956335637157029934204220413905389444098839694977416821711084957606467957498548113862150489560404273009103563357081530220008079863086670184433733004987999095257606221977017439201899647725291650445897409567336292321438804622546861177772494477982800062556546011048478935726980705384037677536699682451968567687202310440378505090101554980285546004975190733323579996185215542314715194529155597012048085888957630800994849861239628791234206128960646139980702184583034245440531739387431877424034619686346698805491972392198026429507743491286220097507324714150781675085721887250983664349551208036399301200111225053305915439240597604209192924432987773278282514691669406353012028609005655658015405527116361810871147590608041793609252700658314082870677038156297708595440324041817618852653274419098048647481466738476533360497949288423104407820056393360207521156289916028500232701790250839635755619878857901967695220858298854419932498646022067765022855478438869453477430474168305544337407310942069816313702609951242376579826377419045283001304156829500433374006053229719358965864032066356970045329638373835349783848718107804075183455980589324764583848124710517097495668966615572084836850576317144674631508007145241798963420854104734649518179701141488128190916384826319561569158634558257778424383216344319141521694930300290560008851467569639334189742107805026653644968648749794262845023148855768129080192239179143601404736352156214594995814460634557670605636184146967173484711912989416786413899212295566607794039576172549416531145088555807047418613339014608414310870309845022668292137130313018461476576253840880391249083376857359701243270665993051364543437975080950801026471583757597517756553659655868666191610856498930281336646407266562383613461321668274602607608398706869241735485965537369471852759063352136354909065229297403687870334504675295454534274882818489096629986649462627146363444001956326572679500096667755247562965729287697781853030593922024702938772517579438782577005824911703570261971563160357921706636269461174746124824736283004193944722946784581484390650649346720671456986844543275487059602978719077535145582123566867028601031470701018171636761584522366830877334599847910300484535538048385531262311889532257224437046171271506004646347246521409156016400941678540120736794047537048953410652771753825099941324803051181203272766857385702533163252058620004935737447921322073588190755998805745738571819143164601135217087330996937911677038419349619213053992887126799194555430070990050796744852730757509759162381299319943965369136065891469361652866117141141211869162709733879986167226275507365713274696708739524293269303158431582015597092189008022160744880970537385953815852491893956539094098658608654248214850443749592944274629726565129467086485372503749246343381140970035880263517868983850706273927602547804924359027903825679613468343354906330890483038583899810933225511412645958910780927158796148920683158580622973874680923699465073668317983608579920431433681925009847038224843174850809351174918973877580795898279574737116365231718555059457832599598917907253571620396452836270550947042905826531050513446240942215329305059036155748031833412643322971378284758512937283044918138588693388472470273627762280514654748624706873411251166891155400390425677248258778779360305444168626506852550380370846673506566418166434171101672300335580785935757763538335411704369595492156766144281508130726259467083463844599838560108898221882323305920052387560381175510123219373724301949720605022682064597543504446168827225348498675850862216170437402737186993734173170283984307897970978586293834371973499933042471539530514086751253830170853611874886809611795387588649112562447356826802412960204906077113335237197893520156803715928833636373577133843123486918432086455962203608420581473355680635674313884290277348910334573167114458864815508971762380874432391548756359741021863181958231728013889247638943816367753366739879638084645030004772795695396682465829596127576958039480061447665542228537875893548696126799024791837922135414390446585250733103517443141680218067873390023278897131791215914777938544402430430442551340298937738800700111050430269784064965184810276057848567102295237018111800295780992402614075524870265236014165333586309633174332679429769681200176595571942725382971443604374465316713173671358036016027473681271594242952525836708919547770333670704594164653046408878970452518081080474979035190437847040383737226204164653796215381421573905018090040629035118762809787083670575194030258697537512584491683329113277484750367291827571314564137008669192108584253590384797961880634087325465266489283764716291308603256656497188635297536993686710566314389440447624934736778813544912581200732064878113838048481848394637472038706729600547011253809163977746444650603717363528445290598406931638090896894674085608185722175979455092144923817125393195671738385923590797812259656548071019949281712488170908038488748952533109466346841704982075582617626149207943180810167746098222663597876299516407911671271696720263117226130163772073625292944382384644350552434786241300943942792291496005029317353016857078457350380029596569285761826951515245297899189597508286948644129833835886829398265818093507963033110437899197236927886611133215984562592868908264311700466233547817799717205714235639573666122534478555642267203959744543745612092792536414765421126311592263093484230827719815526189034268367683171586610345900346491518065814907770493509385418926481590728150553859491244232959924418084960969181914134071531950508366113453415473241090259025679060542102974046254062626719679593550119027433139273380759411606151861940603898851407436835558233078981788832842428162476751571902239859140926204564914376485383170002726036724005690648677451816555955866780073611165441012071462510152582906260278266568609684978355875755676093456706246211869742406928334843262277251051769949793522477346401453711199769366116629057620601121460933149106135202809383737626005102784006333285929197268947756900616814539541954912176781813015654802496137818514137851277499925310345759007935199087949651940089454002501295946118702868735845719721311332842715876464935304767636469438518516583878130644617783942434660795288985517280931694387980322916689650982565199769500592805880155421227045939352697895545699830591504557431105819584623218404962500663038197738988244487954780857693359505252237530350883672495096602599810491421958416418173490840901791845177785057748290311951485376544201999605453334372683484745215979397641240556450392802699316057779779510744858355469704617910001255247527572092714074949500587920841441980558429079288599896317210509035192460200525549308692379563441264785449664471203440913193406641706200624673854360733228883769218483702260732618453684543195747963749804643611641876902404488036293045534049992524460148535757134280222030025647956180139475993760693514670489815174457539282510870322620012839020948800381050302569237945074369257731208145965286507675011059470024315876500399074400969800444292412188202331678604190284870451008766013508612235459492031885347692503080757270268596655317663859690353915579952347717682033841393172286420849070800174857982070176705161753729594779185646303720456786380527946210690641401123076386208580044317220165912617467266712707128711804609757295180236039305371355794624914244641132033898711329492854270602071334611185709785302104212140332349651723948608924428805193039432234937159819446403733404503771402979297484325178994274127240285244475461312466447774541950305636348128202921177284669504039238149937874308389636354191080113912300532441032158684704473202718743811333516754417679909889256844565165624270464075322013887328199052367998627322109979378161679071474429564473129218513052684162401300372192104626296003189993291457429118694304253097925245877234610957400014832191152061220796466829816889677331468366376598146163526969975454123207133370704703906807567787090092293882509357485939102378305320214156807503935866213897051823826910904312025194175145177859617726289666460191028479623168662462082285536239080657471652481384580857186045421421753205482070420874239257139490134786702460151155292038523827651031803463202358230244850362141039451635090611796706335594638131567362738593537213250880622029762438699472876558869948837102203592975094132827725067226246351307407286087408424982756246894014542227910070130453192903781935712881263390774623360903895847144824618954506247746675293744998478378979678585834715226190043519280258922015271787186621416713716227639617016282638394882292952783440665209390394947328823539910608447024021357625352742449900480754448155115337934989514614253697366121265848544546421306413696990294104153002882609365291298316560616164961984478726475282148344858788487937194083715659601863690539572859245418910966708296519572542665368431037913643602005398866979619512494781390729745442616819742954484692876425823561061719051717078500548731409522080809074677017748595136099438232152195840718364778880380679139792821983392222093694584719398699339204141909908718531544143024808099826606136150271260744887345831144487623194398873944821197381649927262642435364476535819933378593954580931463968766090102331849428972256747384818603886899815639682818540761373018993952939696758941915784980363179079911692240140533752372553823587013668534552185534043648630575802628083097375655818023558330626645216132407044994967334777746324861696323930679018099498948881695179553179519843917465704538894650367985687505886058619954731300990318110902349643484451428483958146007295211967683129274125627309730679488071753710776674132666646387262356011339217576955110084090493348114341959939762040750754526890635621005889055288169674304672628460953963978924446487051292834211821857960651463455754713184972819475286318595693563257400348661188242739164115926499435135825018246305524403214715749794878848741871353085885290108694433882833424499820841743684920763399782173605853710526808499959055342251746469973702797377216789388479656595354984820160123796315876779551894384396939917101430585760131770494988592736240312710693857277093210030840471349595626361394516218633405092190025711791709836251108610299314640060933626625957599754363574446264222635129973984955063647468609738744747993353532334570988329180930658308243437480022959122610746052876572357353240438672310402781597991455885614364132609590560014866051135402733748712147540807745828518168885952247857253618563597755103064764313878212674621673952777630315588937531477167357373469677215800200806893628258211544893248564775629867158138918332872593389165369129019617591917238907928432653025297011864376214829908587647369697503935977393607831871309842566526117726648227665341454607022270436534544154500381205923876883632653211464484275732385977302393690134963171739026662158178725699065385232756583450868132276794204242409108633098223287675178951464359483818024878371330458532096175850757996343896103217224040923396719582533178689215638602683331924078448365468429869705474788890843903469590810306035119950424323143628036332084040756366995324537497141123717842615080857056155240367545665423865812490858548188535960813098222261289983177103317555852816845889615402436763244466500689906361870716007901290387172732573453310055594211857272975443502098749669239234741510479782237510455740870518426485241876667426702869000801731359268539691195617475493095519545873432303154018605428004135205915278282211451706486019507972687072218628037564699094497438992506529632099691164455234949414322287554288290811301224892346158778462466751737645243925815999233577166307889163244560696416587985695619463393073748053168616369510662681958527863652445845705276516064250677308727913646793714558805438339760122099114924841891740283990213797731585317854855348302213832384458196852712147861836024898593488644768899554047700023706705209586936968849505543350912848531682581202006129790047612043023436222068881591866373298819529146103742302234493832947757324547259407337703116081234576747003483587474181737871327375587702641194662388831259628559128585321333190933525873988712472502119652020806696581170969494579673868452970562117559713207130236304278316040502770885583932361890686970485766503944158326513506665016386831168538981993679543627116231562743477182270579396888070935728360472343161830873049952027408354854224124146297276533657173858155836974528903529277230779700111941478377416227341125742671472031066492056781424406128982707669420730217041534297256378246485616709231267865817051625877768840715486084141866414041456359644752786530708465542877777530783995443530559952001911708940725089924196809447896825513278315618327798430168972542321685435022354977928327930606895256022786719230905664859834755565915160011109763916640545849068837194855922267817993339674352207845004982961533581987615811988669707586950405255469713728928479514597860255093196988727406371142246581467446136522594809824732392487550314792096277693227896923059162932679741584544905457220855343804871171476268756111446013140084787354413204464698300448354387393537999919714046749047978188491168774181196312419124654794211164386970979152716883769646785036955918426909035924189746673884597561628705991770818597019809311709016223637212900272358465086975173443237253018754924280270224902948473491651060176767164461329462113725851142654960077125065856099381639327902567068900921883334903064686157871275417675265938852309132290414498462665256425946089948956077393168742014521791068292911478267237029026395321877971801393023252528189619146004856272731958830856850217715659484364391530525190543565965172616571349024600461560952695452594743640720212727679582406306856516998733096756554667607340899037583041087803418806406851491739272108091728953360430667236879260710255154228058578831618513954407835247616546941285266786689180410861921044360364852210279830051002083358303351133169707965128249618553134441153934279729788634173005606135098814502001558153328578075636475287538816357675703158646828150510498079739974967514668161876833190371395639268132364944256533465867313965098185043065944844325480110365649293002098197224921872409820042406082717780911473015584112875470281222931065494567090123032901387549538300950738977179004434892037859796350155105344771913606529400994242177850836792566244094692976977388435247707360737497842058751625571419705093427917543253956180586573217455066999877773197956717988659813404712119915451407113099871123555773017378780800645208631232699195906736843551188963676322902154292466145875086728554817007920485620899845972020609320980068953157551226605025755456245978479369742630885902465448909629373439101925919485304120144810048216244639767383995566440110140766992271450029998909066333665248349464911523126951501955022511622602472926867389392102215839589434481953935920284410998452314545962666707516567823826937243271501848565825932671398919826575896523521736591673844334600861241324659165391879150626747944005511858787475917189986107316826502384464912428288081482443125747161162179967489398908483512202770602835744888137198328756810938614771463832898149958351652509069856783606120160045163379372993126396647415823196097925245494709247995402107876795621892858361107503693388224495647372093024963067625208005592901526361706262594174654062453242860780495437095485627659035452056584631381007692984412711853913538080498566673485337421577849270256682053114458033288320522220863157627440581348909691838266723853978504690798128835042620618929271069589787414556789419125431334595193588188810645001007444224102604268327669870123749652603036778528432232558571561946520948519659786574364893483321960077567676196510865764374408739195508979257714584894708195714111798856043483566508198008262841543379742607948341540015528738573609342479659944858652155246596891559496283827650927945555337602423640848386172415211491273982745546292438335530817638277774099347444359941438784505536606551032145573085593736998740272643078559569029201759245179733963828017190635349104272790138671304367269902789891121553686283578105199546402245879139803319199452430885233523602964325418537251842376358246471920873763217372377565501917320921928697723007550512278826522729572449489984538342058216591493964630641635007500412011478635826119544639465601853481923387790365198144444329277644799434725084798909204581025392608726975883442435698070614113880352885878016539138515438834051459459263508077893875915353674338167985622064675808496186966154416855493439117059528141510751873359845986803678325580907170156176074860348327560332167101483246085628456087965535510808246688839265199300027335253776178726045909839566189802107432407680423230678322692511105957242984934425161337374350613931777354409902703156895731447333580940987594970532239233229560293129661836420604044039011469303833684772948974494996449388913038959447434605031185606883197460111295296160731389979595549254881907068322704817319212822884256868780984526925193475808008566241723163296113822274748237222445859503144193327786660469104785736565726813860180114033427247767305509242253278248543225959585661358925993572616208675125284489636384167360783696168385105787454675870564520864748949986958440212562474891581680222160205688302831230924320720589784388905116609955360636034802275776407382454052251294302824790560052208027424767269317305515492939017613287246724036039803218433847470088819224811830912861991644936753654295222710353247830023704628743257868706757820862348573744197520906630242260408764296058967737407277699935697373397217401098957048587508560638130719982667640974344215923559841209939294249565626511020503441260647553973423531721476797362439981662856367921115083757460011303151065206187610587767985740815985749928001499007541865049757965789973975218510165104618058610731212613862848921873007443665554894102424198770620620520986308555348576665408719905019387218857309476679299059579421637314237857607188935473533774742318822199244765846612524224739225660270853829008564923596788869703404394657077418119879030073006140189436858205058287353377073289731617920700085855569070095728464888272941672340042848960792607407650778122043532218404307410370738807571496580565281744444151692534272654019517194392839982231068323508898995797835783094177275032315560584757566607855160916105923984563801952267405854293082246595411379070350296889276990553885182167552429564730433384278595051233640862003948873592153949237748222955713086008409911985570552021426705207843928644374382331134854444352996090009789243771259033951782665122290634497623116867559704765629361791523167309604720904405061528149703519744880676104588041474461832868362300576411871891399411223810269987777243191726592738083640962439334654036102847629183867068226212984915579326662453606329693436673634527835201289330256154068230887509239172907009882298311593200271961581975754420548098852164538836145330190002635166182679336706343539136897100200919092651115896532676548639087465547063570283666297888143521410924573916212824351513388903477452247130290886003743525780264875309845033864088634163651870707281092116240562955881581656247773681549048295784118839748200667033161480861977144628559108322123824062770183722899769262535298289717828283037659110078145948920109141325497171584336332178758961715990702116069249210104786426891022829676123076150291644265652238483941909285795432520184725292345531429133100573739818743199473010672135608113435781370397464808564588658776950433144936255851687959346315697437522877602137724747338495706782787493153970505156884332761951269606455834276189755125825322796476688863114038249391341293276019121322963869293118792376813338338512959488170722917099781687751422744717110740101877734013320508780438323116150792162867697826468103038562463928617503682931805634430254055935182544707401640642795282875814388154132030524760419679214026812940618787962421814748736811620570806795258545210209400632206536961225235568025604871851825205776339156242365049802343757759764849613251782999222906933735815944027958790832660802024776355954788445833168549944193429972366473454974048576312991526764511272774984804990546117132981199858133350862267624643427180022550974366177276199111624750563588550733631145692980114296423889041945627437127239049736971356941827381134328613717433992494340227425928864541806878717958206122483070443640113421066565593945276419378873067349143355410602184472520270585743399695930409076873463890703487968181324750479342910025638098565535431352319628562694220107103782506569126203196857340147472146134213224534973002953580839528765044505091303746054488562218822125658633498154506156448505237815387496099969297427277727308714694043884877207396859479402719688923637084285660060433134371048859440050841899179039591780196139830453213171738440847761386296442079469891207399710268329107165381490435754742727180147392491920010020950768722664640796590054124747730432045254633670295728215536840579626097283355782477487750422516982495356302469913598506637833913680723764574112777418895432406279339205422812819608457396158575914931643258527873070072248278870927683077132716171378886264498411447405334963720538080812096039049325319302956262100582953415642892051395508964650755224954110451034263422424521722891055203682211245643880179715738855731430632836481887382880256130356663365338914484235581047630917360849983687740435082082299720840406410112233337135854352875637174780453102934678882883704499216930072302828601729715158547889329475910060703823149901140844892039501951234347041452073923653126265086717093772370804313852150163762815269868612029407873936657503380725406804520827250667371998204154339122908472880231730089023247394276356709700120274842623719594023240686907951061396768959472648606496999222458640283990338213447669776089908920823856746363828190348660791466989729818091670356493403634685728425486362101795803214922034056703798919140768780928602192197512340786145554373051172240365640961276866218855599332550803351481184643918035392149963627616158054159668548937088496850384855234068822147032783999490639653608894701317160695359489217127484647201969979845840881097596265865465965590676793352442540408252364038802637036329368974654607151443921613324001006031267567616072887456622890405111466428226017000755667951225366417114501385329195867893872041324645174391671247311391021297525551133662151908113226058635952570450475165454702481246090665256550836552103598797165202050502127960418656803259309005982701856091836879270551723962834702747953317417595417538171306507675754094061616191081529641916780638227031467515919041566574152807722011670297682555624898573098430416473747718033336133652300307801327153112614386713735598573956244712878309758811880328086702798386256823564411675028228939653650802225889511423285804726065295076564417165218082606158892811976875367181576341301988796511028620928689955487597638161886993298941222246327226607276508145361467391562558054545796029066794601172986816377371378564590839402893713013077289675660403200135257219768803235879249781176835966761717856689500538186649473536858119839509801031189874879807011152425790624727834837105150438154242016592443314239924581901209491218834042595289471860188865314700784810948713042294573651314507140890768070519458366044837388139246412254936345591491805894350192195073931195417953275172907890350052218335023094139092634301522984187185478064679274130511666474517138042123084978561744291688014172181979314528395725152934028408258182673168360770111240778782174878184898770693130537211186083546865063424978265338371766037118751417380775676603596766269225426711653108798939887253600335639700719826371370508863302262217727023501773337845562974992591972751834482338410010128989416113554073305555465240181709544772421654635786802280263991785524163610737119684456121003127878385284386704316374647173383779193006626182964101422672630443466765804605360688062662212760162321420884588265992478303639281029567861311286217883837850940880368582073401096229764034974588966996816705728680564651450970642158999767268206507078126937518144418287154977039634330749638524004686468239062185102144626926775206166683769476812477161481904196485228196232595447676703936099152985567572549086020646891076259779951671023782807674598762486507155247356758412716140432410361676673623145751490550584793838223273797749681471033843636082949643870576743276966538181110059174900820458408988021079664727860137444766343852303764829251865612129181158626926317444183978486331301099972575699217608242686201815721192034970737203731686415265630703513061333712163188349980118377532985914705242678891097173786612931356468437986992633278165035953465181711628413813489781210133095922728734740762363788494575609903627595439573702294212810044577326383971815501678861235053721731699411292451674738206306034642074485003680968434968460823133011307759024039390159386641604571958418132038901832287164700850032297405164365397335702632453678530182491798034598892209242023780049489369593878638033908052876192211219147681727955411576692898057441899038707110882917512714253904019655328103972105050291111244409639792051849378222097696081442234077801287666829430241622098043479482926608101944886755171563912190510299805005599387839856397136982393315640014182567066220631357545149001124822024388822896012233712422012620349353730345305109720769301645296406633947421894206923857099262869630728177052684560102896710869416428299052212941901508695001930924499124161878218367383804727817263318495629710509323969067820396250272433261446732281946260587455756573830653841462025105094331662876551905173002302680049247940537527307583044573374705844250425612168871888685488892084881817246252719978832973009051249319504533289392196653215934733579174573654460425115945466131385834981260632560852677795279859963566492334637267952904016563235788210446778270354510489243459063861568096103850779046857610357135894206551796989111535451905650024653038218248618140909532560821526673127163780280824257360804695096714421152164511605988727752920216003733686312328518075138097206581352792815433290462192027021204481999306270930556318408355673260622687735488575782488958475998150790031850211876041777902948634751067157663479830241950098459150452875653249124185038380353445604198998130016912023361690778856659229112170835484465484773976983830854396329596591569391015825062909847398656865304809063272973726392111594326558663192749543720708741395239094194206898011026108526115645917936101391567808787346728133831524486829469930860424411690852199698634218961746353010514145054957120900505137007035684465362974336934686499632650920430962516140240090178439493321611651141422448066340012582300860942171368796639597771395160301380915552723527187794409411917193283294774713467031663075166706401518634367785726902384538456154543433330310025210586104838299520179894348272542541856795293055896803695719454429844457807609171287565467881140874982921145679135547366556632214712305638147523360761228020233485546485097231790288613907454584677311352223476383230917601631713853367656816480087598596287119133794161630781379353474541721634414930104711780675734423291505396209019719844265738103791238040926836614271499768862550961476485110167462983960139798176901630640882708088466452182782568006369713270777407413096641567637577973210555205738738275907312640682263424747414877692859871691730940875430726545984511173083768458424691865094063277229034837935228492206686207314211653461016657155398449286508599678045859498391456892438149647979805787566730007528993027173620556079565853328944465292115787230960285149321833654559257337641480507158027963274538929322469597043768677540305648602642666201407551617974560210605112187371668031083766486743086746176580545299283457480552415120086451787769314391094219175921405465707948317109231219700335611177922005032978053657687457590575315964862654726301221958252747060133171264669737051430458995403470945833574066582748141111166587530050140185528893340600505661705987939038979400015747633598700548830795840687354419175673834185961639157112404576861408637423043513616339452940563662223584149726116749661307668953645487311084630449249616363416650874532937758025448870726642008001466608496706090530717880489587531130997032070574325485069633634846814290039830915912190318384718119478232077678863310139371697126017436834568827986514278297670743548147219792865644126743580453181953614588056324209470802261473199957348470439380330596759185150469440227582229876214079465762476296724708558837238442360891071137685321361803117669467846940106203695024918348936244158507428135425858555673300676259314238780759569353500812768901623209144777578808206379696732823349949566592363036496961525366266227366763905756509197140668295302615737098790622703145710049291487741471253081872419945591607706876976581253365328999149462356929258901073018994198850192032974358091142207292855393679904713860146156043842838886088409941532753160515993881300601592704445453211162381005951046380167640006962524680590168994663518974121580412265464362499952765973224206108943029960435985962164572833037088303951948738717716023948842746863664314175687477876695857006961679561192710019927314131856670183711569406579392012151118034902832554797288463827923158121277710538945503023687472198662060590525473753847091113860949767771183517387590599271353714703928608169675450504740483729905897425459351736154986774232224937253578883850744798946723003991587169740006745828500136319185374110103202211211196340317022683473538123418258066995950091827655866880453777767956562617837570697635764000708234654286942735693187842648935851602249926149538969712480355022245550313849236431006899038400860539663942298509213734706706653271027441806113709705155537693175221678396904725073739536602327478202495417273352328241318116882954118900458746110153089689587730120934575965000537511749558222945253876170893005088890505179337733372816732542326753994777588393915179117294099638757711347879479488665054043888448440344332741281332615158534496940661161646792343988500240578500213017300091502862485362480858643554968038169298678142857444408835068001798074457569392542466014813504491975501474357620334211086034551708654093720154645092411593275179119861654068644354095819599052482710880242245974262441540889296514125967747941227548920724288956597118911823321659074053666985068342547459867424012196006063256143504398194143033840169640495653885201930869072386746124040760089847061198774997947531168834862833439594883466141893063970191396253802299939789988941501164810029784768963227993309896494814667324007727000731911054369971603130291335793877028049202797268115838498899296219278966826779742924155139637460482731877444884222276864184433634394091201422198724094411706629044369414077556644387918856439867330448248174173032560330858453961582745332018461500157676604976258336810497461457686182905885459240369847351635446035455261534204819661044874128283780864690603741094910053966043519726410383476539035972439532389941220212952367801886061948582696895501965833124337336018009487412166457634087493831579063504331018021342198497129034949633825608404596894667190118391650889524919110734791653812239381805567638551396331695967061020024781363818751307990972189058598338024129464216929691418224168122751773761482376272685050174983148412566245759792877460502292364207175108614358428583478927901215878996361534787210517807464714155584117702077893786997531777084970916870822503933049269199230895846329251477616356750530544627218203448692880236590103196004594219273205525617373265831762212275183294289559444772769178408761838149333797549141068291079235399892123832472407939752151183292548607994104620039825271832363994302183703383872282792872481753349701235989506906704783651077151839984285907794380929265964209001395931480620671071437835890100946125339681832060093292735072060566088041250993847750973368754648918960725210874401962428427613733138870656426654281657726970537735611771935004758509040651425891838272014517582836114376525027662494162202387047088618530402831179998355210152895075779577903781193360714312982671644362558189317318010968546649237391257335078816867380708114341681772242900375769028583081644969608774128675714727625645602934219760779353397924626452934519973160281697435423824929421655788651009425156964317619635492574135086356189090178505301791079863015297713835140211593289930731137696314579272011429517662171912406106595144263229429417277224977985526840948080579608754887509897144051391847473777739034793637371783051086363618752406070841731898194734436768626056236168134439075054359465131379139782104978998308367918144678745308696730728360571779075412552037000843002688090846637568913331074793502694243199869904832570848607584238516300662262448469802479707366411865438059514845848139973187581599464402142912214219910583421829149139355072820607161049535551903498411358380776195462268125969874102110937616805278492489086518104769555804368596938362443169435042991990431953571708479200851077483905864770467777975007281083429549234746911049561288395010483069652836029227743003025129217152119790408633368900421861894735814283666923405304749747850486180318248802137530284868436337841063981382721202529445920533159671534467756640347907069976599437957758669553254977469923916788083536414614050619582303424392414986305000711776440991387567032438069096875485774205307617778726614158524706089188691244197416069107882333604201143375515440755486008563120856543919718790555462187106749957135436363096730034516646519846346745282162322253652601440501154459048976721022368338396293561446054661114337712172634724665753976503831501040078457295283095453348508589241452340349094180819182551663791546891308674760787774141359521649372901479718840745546663991362314475594478603892211755170668185951782741443106281021283304216265038152998967223301027989839770418758914958521033780097949570922680394409429787250101242989629164803499739954720944574400594424374963683343555820482793725280492344743481262101751269961192948810838893420103070419758004357109144304444110134410102889920610185981883691348882785953446542196121441752959823588532378363993047841382524223652452898976704282794556096047180249451158573788348187355124623729240724565707488678921168749864898006295358353623092898191444308716773459775544730019081867519518241032477419431815965098767369597562781925791550775046916677760913934635932007614750924601734873867890537284928961121003469739819472115231499605664113793748832770477600211875290617603064879406632648908902301853978051942421451689773000941791931771580765106835112166255197525054864372512956552342347944888413059102866894849918481098825463986862479424194342884929570547112267798702537742911361062852699934270084302755457308648943358655511421672498245671101490258830342646917333983582571763461507327490005577789286472535355660723692310236028684943093471615217748455202952337597890515865940355301875229921777242197622353483364221979024455430066210878824541724538889924794963333843155875926825574862366923567543785556954639740603427357482732785142605175446995972498632178234877683742522445148670198604846750892660435864724726288868724107016979179029526733581823037423938475364538629313888419837090112009284260855176735006836187938035281098386891529432735323016767836878454798415632685346686604652853924723498729558520494290059137527662595270040987452030567180055721937400541776781197128238338368158525128414108647161100574754543137765617853138633981429973100668928019510062397661101595658560451958845806747203537757545665791387092401302798532561447776042662054406544704196189506225975687118222996936265658607598821807540861454006670138133182763586503460789306550798855569838553055486210808929967806127283876071135025497150236246696653052859452001806547928353522043853679284768887284979099651642234300780491421959425163612966370804594992690658267318328489727382027860252048377757701463961654722352266411489329630538727804554261267025140668775243511343596112692813255095706154286357825115027554755635689160116745833907059240826396551917207411310935778934750131677498333005350293162385809239614808585341686685812853100631352807757236406151779603307044610841715015461781509855819486512158620499064142379420599927538236790350821871790304508709244276461811991597235814818137994696405765227869491713350381599620789727566200731386472165967466162051394911751307958302932607861584412809442600618293240579884789833994180336908366834626813579329096515029251583106590573640739982023162834499967156522788983176152915669345999731397518390196131029693786144059463340705552366931631773070314533668577196034410150454285987270788370655873065498422372651267763171904813881605509889593609593223186421307789232470366023417500536574997360603192923677464033679830959777025347091199100530510021866427023111731110677647808790496301453041406590834105207825994355115500414175156862274507368217710753384744429097090666440457325424251732389521376385830459703052689739869380609176417079049522965484124233015860726072153755357079679125616152893087507786627850219312805901406938643223409224555482040217090148155438957723937385875170200912060170409053697743591935088668906470282057717117047765838983146279967888349608892004798802758929269815434151533602499054137838416417586018486797665832544758274488672156702532493568239972793670619041908725947786654024929457195969764074525315417475016193026023613912933378790849929537149987495899377387789551638511309318876640421101443615014298928367256167933110739046681938441471280786219364089545641782298522181701334172152025873173822721747696898276468792937389002186471614178848892651360049530587396107881774592450471861138270698408220581719025239153096039471235484524189253341688345681727881298038955753748771386192687261802893990643093906502863836798543331456876655651169452997432593506400334297495080779857389776439427099134271596558366065555729814224032857679089844756553971022732370178589550540875915599331388549366909129495961211752098608889626186128158433577365356021873874826100358907127388411295273733517971346602036197180718023723516848192716943714673557584512685129707155302581020639287533938952071671422525258029985282436000191282021330976384951480553376788601091761402082865539858313389416698716028363559378756037016587537545541691681105758224718329909853471457216168113529381018564063148780870544632177288532294533816823080841488889646521635813877998531870520191745639809984029455392252642398220619808481096090088288767806460552324301096775481459902273566863982029486041081008507618358582097689620246873913075314651309641472160982698615407520948254686638700943551759741437835459922954531283826559402860481620415904757155528240680362060742794433584751999000895388399110423166356452460378782703193326610216516574702788085386646145211851186389744686177303858856033597692261117483233832321539342158214218839965357158071300551878084547238165056796474705859248928911518199092786011768231152149127388095373900188840536018834117357293233084122774696085309402141010475356445348186054996073465664882545995046461250535678291630216469363143129501850783019235989405489846833194323012408161497797994195309797475578945859127180598702009099038789960767789520077471501179017145266067018160975180516993513245921421848150965066002885887197737767883345845129559021609808862156189644041828231704328196499273890278573562930982700336536255240973918825223707802731445993356529452573301059681978088031509057990955165182734081406187725807111139623079097295416407925439314914511694682664982190522855361213424045319972714519516288445494994135555570154514051455364674598560263710687934083678259823657697428320298871785936495916829714360259358079975038694025727796866727740377944080782101075939705687303252638313859819524258657961736471861531587941908314320280665414129075562955881390516060974147148998157560321164464943015202587004507708313019993101984612962928811631646126772301748512364521262469748404165549727397861577856467108098811504057707456449190347327146489465729572750179946671558924686598746839772877756065459844766899609410177173081403510849901779046412557594543459694516994709568440701269243067510313352042468296376959393176590798667397475550251640394227030861369436845341065755041171967927429409454555535876297667981014712229287524196119559654367350745393140728862765056871704189882913194844856128862526428988040511775391524700552491369680623865796822679001421659423271945087172461232411545679449995177056865686902587350514646998522508134089716830118647620247132214405829661488584366735645744118771182143304531035884016032088621955510976187445659742213149333718810400754858694081806982028585813020649690472954003845341419144911848216820794347380859861610705207673515548918309784626171729913876473942672070079486365616909158419347421942874876588599042692882461082455060739762021861772025952323821613581501606757559378041072023119692727032918881924663413927931917324411736630889619265384132002403029734373479813983682180461226920231069129354062081033336529837121620636053824091709072280854020450329650047645859480068776327941942123309020642964477232908267152859828040874056818013678188738341379338332947115491190524495320260794790451299160113652208409009426568236958908484576239248721264649958811776602964311278244946324869799143807850362432896671199599512017562618291943461828766137679472796515053796421336013485393575760094708472129075421003633096946874486257189107047296013423522538317456977094240994166590214917352917199960644680699312272964240024502047339397249427220139912097570652785059927518087682546973331602127973494063791986025660521639470745014731561388106195369322952623495187227329964910234725077101468866490610810493451139636050755011294483023821678133590473606022009118596655840527649182350358828944002644875007067350863663762371929227157648346304585738335258425238151386104838976035173939683119324838006980633572607054673341314035871848190343757665471295543820152561853475995492185326628411391614017785886658394295806658431838693461374103542938810366171532567501014222219199458962678919933999672775113119577970261437009236235212042411058333917814149361543353641453550698376051633836510885513863398843568097479232487232634766594053228728714307170222254864268884465013899622399576269053896224128266865820424355067436308616050659487251033355125784486518952922503787850385731521834872692946004910372021702806451920120974931859900699548284715108539853605254312998145317374620121514841924502830518130109469194878467245067064677438691726361262859152539184375284953029204539179703829590718274337834304841118066250035151395220062854467418930195630292346553138113078876748375516684410809748654301293811209271465345726877056947030592343351222759241329398955555764839773434695972449706906049392799581056336428536161553788256964119601133460177795800260643344132018801478349054866469015293518172372703892235791644143803712365212566761570717102203397962235476020727091899860771115320516330328554012269209658576996159792741289096373318914086620806763092020457136183860679202470539791072557088407676321725206265933332338578900951212472344451367634253170085749140128856868214377721512421500474277377323178760342757895783468233157325136686628822828053729048085188332500416662844345967519282715922925393324128767289426846117439379278240604979586338128396345082067444452815897018988773194695977837185279057241458337869622665473916454869955416308845415464258782217661524567727534350851169012492896936932914558800660137293674810400198747546541164094157818616936186748167798117725839620111784558708082408333849212376039834101127198924913010591454746504863660970863341387878864244895768368360371281086351254448655560168720902020831505781355908448721232486189078055417698465812105300759425253732542399712416291148049493755326816211502355769863116338884499634434090725181566064875459004074252014720332961504545999449656235986089244521110333699402223641665071471036853781086494208602277734665092920187000384621087673130238662906026611233676064808805642696905441285984948374691347030755941281176352213528099798288754358398554541746611062623251585078160953234755651910845347353440718760295214670095512970814573576691976135019168767800178303099287618570351923244284704463113000470134104642154068767741311981404464182903812246697885845808094112655383340618655170928738056951888642965929418274461332677844850903500346634137230896038076207881189280707932817696286367425444222483093911760753547467859411259955710857358625290705895290819400474697381622979249506843038734569544287970710902200125365218802281844202070363095175490146600713920531624728059342998001102870972141806663271958589681855066978938699135291672728385840050614052447546584559237319980019869637842667460028674971885913110023601516975968842998329262037987724207943028279415155727304851415269532033100970320918473287824332307650496038892715339582870401619594165007513700183752435525782885560514564229923758547849927586186769335395302034436177785150576337681263986900318090704383269411508356560639686613599134271226045775611550991306552313816551301841455221220249201269092443215963973809938313378825530778278978853441707996390741817689509820668769042859141642673428839126291941175852675477062322325462737275000450174446480111475392743064034121845093567792437609898273969156328257540686109427178775113354578225121453605865615389071583319606513370493585825236886141208207109415639183231717322625100827293094357340282901350078743671180516205797013980168837181581470360177661606886596254907089157379166816082912299232198297965803222470527795760956311489860687722407371728963031316372824282732225772634994286191066770379225706300249244054857340727979244176067438716714529852666840907717360142538980734650254665917460749715307210053698510148950350725626750603859194633934183691978310391369098411230155227280784742250182672532192752826677191946123259910401871416957593874573283277515873142002836397350530718984001615236319864105953754788844051577080293460488041985738597065421043763007935773703978816170560293653175870373556872698364137780959562169014427377361183559914907051486345231111197651757653337850703362634839881942116515882826931777145843376860981732434665469091590454036572962250344741325886136788382385190685315282790242091309616655695330045192315539512214364661000838910610012499811927994616252852234760784663993104247446417267191152513899903206417009243146940071986563071762691694946280214304430361244790325058232890063533403001143558390021448340940009687393748027240715709738272387566081162062847057047828659660433746781447902507758952926371715513984418884789066244314113824046795932481128343998156149693942781925708089865421308283232481687096382579451918005301400501900698901166050562444597764165901151513059715517747156852389439429321637674231505518618971616744720987021261368397034262565149193080636963170801113450043774623280833258829504068251791900097694791469506209307403465773780804883280012052829702198432025744849406827056703976192715345627177186667573184339382479007121720711464993739046279297824703445604250396278047938650243152339398919762196045514596899361314462284639177660279317401038725595160606821404161651281025004700697968635085585892667675686809219912081579954225868079051995070395111347566454018579274516573320416007690778298769032244144822276379416468931514468310858407461269286255369541105779520409768953091216570259510060101869113969158279509961663789512962506571362823406327510302647318666986597398964092912634110512847451605685058596843712317275354449226040261353475655040784180313675895747298859697628658884575963352174360511567180236279555481892986197814708709493691937746785184203739829163259416647547291910393607965189977145997940632237360440751425599845411383589546598112524506290571032036511452727466454835867799347476135116015361531137616413366871936698347504397973344450787774597404057186616529124597471713937349226879269783252883304987416943100053666035347442405317316445753321224750193848840144720198605684510109857511316007047343031059198477767608352643939096410959478060156066838296848824178343405630094462344514664544254005632294815831649691791065738768964265891876889981153926093036359679152014522563236693660464574356071455150920100157269108105414511824101559035935475465942440516104039848746895667980509271000249900322781458469198278191159277897175670347463507766802295403918956749647406578541456545976289121223040953191791641249506628151938321293653901406101690702506473508853813547355109623313443791474965108569263158921200755126733386246668213280395764056207175444629273884778972219078037176130069259639068797947341093438763897421151075729833792183463615425508817416396084293600052574860224383854089856829226687096886064937272158227185661250399142855525801860309959789148508211015567816291299152939989183742402007998638978596344243134659473685224946033970395876132127325697572461698659428029023850117371083772257730375365209957868861573739701850856466337047091255834316585874398738975438540586823603214978725268460400438690471829937970701603706163272617308861870119602511151918027497229545111068057236883473125639344713107040855299675541782109429332377137735926087954236943396953821897916588404181087678928308630172971432251407535673803705813087728271954545939042599099336802790176676317285000321297090947092122117414834695740670448542246140373166087203924879899023733301115461055439984100114685907668642819590317621543372678053183667623753451698162811555151255147874162133383530558716346498096834883156072427716865501034027384254129332818330032700633589312890120760738632477684061725462706637848047774707793237191859007616052661938397973446340656126201435952534526830467832470603744240132447889018300257770836019802390749527095223603707988224819414970720012310021312129056724443786413989924233592136585784461904011322908345370373779211015477752283370772858877794834422696490677308026877052035995117466205512889281437556117106835089104561670024230467972673089261063343326433946300578631767784711701458711114256309924088107232226543571136403516610960223464649612830422469218887313609905949500396208993596371093053318313460241954557477657756215856527164227702230329861560665034568883904862939459378757928010848869441702521145971405475021191146041003004124670586149869959110671998042401382348165013445983077353106207206076095502651728020701598879381579297196887396352885925366522679466770704593290628266603047519640354769102405630094799926553098118220886965848166236857259622127716895841839789025903817321890216317828271984160329056278434178777272373248754035241947180567141586065663587048515099805846390997054208700013028329644114482553738872482158743811322599493601790570713282442778641483091502071284037751773922310250881867676989523377776150447690201001934135695920201470381979474521408193806045987780432790167959956856445991740701918098074542866875494220007833399018416594464505300451495071246894334354902884549404031014738195189651153651128214655022503519731392008413592904021862270611942811302673227845719392799300681679237014003730308442467713663479937043967980371760995331380405351308022362606617133724148265255216790429658529946423321780364619481587494410820496759744837939844750561652181134733106835044410112554476810502285696368079458114555166485366805247536995816315282394829243670377963065204516212872225840809999018934474096808758707517608738128108392403294432290333501330077647380328877493428853290704898046569338698665020389359991307515334431501237160613454285044827175650642854429799100341045859754901540032004185455099754813070300343222576917757837446514757691903163131658279996396389349712612269045378901977316906629123528485308390350954816873152727687535134772839454766394922418488213591072350154245690228633825792756942519482170795589641960676293909385388821917447175082058706691814449507907354505658295363541644808664576752056423984762394761364642662681376481701785906271506762369119526756255330050612772451351595445731266507321459714638976046218301827619094057014478055100831731045447864900579222269569771702190865121354435058176757060884840517378007006498768662627175218942619098159360931618970971868984803304081684753410832874247952573425961701347005333172356015287823007267424353274942542524155002355928658910098808393089722012799342223299730791838301953048177151179814401642290436445618670508091584061349143769922441313661233946918700299139436370819898328421624228321058217852298160774320488959073098983672597088652098238024641746206135143567968888587300420346232060320813674882137191361875225162372577522419350062654633863498848299175301127175892920664022314613973896368723376497524430019520309211967117495350341799353501105042233411135920302189723825561204593100846210203447003803101493515395804750275026516562663177977038115809577223979998003506654582962453605700043444581107969037938685823779146301574439950349523868993932547585437139453163277205202262220166323511399694222180230030184022205515932081381753149063456567411694216946783053485542600931308113610932572472820833660112272416643149264816406075098844317471179771748089097332659112486133572019431699681257539953674540196304847947569331136232204456924159494693960306273055726598285585408368368530744744351658509835859595817614743100847149390193956485344714266208621826526054133180384434858346423596161988756918938518870286753224989791530785595763518731471026281368405590506778458777540919653239241496197963786515990361817437947870706356687643526345820374463316429735185090326075451675809345134961091897066851005162638772596912125423435465667634399864272858212372094720367853496871736368550495141878803755503885668251935565645195642842303261438905434120564072409255822757838795864412221399761818301628201382574564317881786652132639078154015138705662976474222596831782235355913087661964810682652028608586718151171407226086940813054281745277322822241809572831442308097510216719479548923640675127925708598534270066693870429118676454186772270253397505699580230559556009683548660248867631645595915180121350653768387192682622277792603898435451531185320535537261481799855472478069305241561055787344442167156155733993219133292904568392325390462840826861532519850551049822827054413733171698049943810645015035945676539462645160587411472573631867083029710983311894240202237369465392257469054912954003066294992273908871450394264177730006775584803463147220667917876807703982694965234080483158197667544328894214386542269448003539591585108141059516767366998230889949744040368702158444347879751913497043459769159983431872734532339187801485019356974542977429341512886099263315488543579470099325243283756737539263435787418637433941413198886465912993983466587195821616694064489329798491371995431047953012655569507920728371719491827989670958193149308982148537657272061341774362055593295589909059015699017304635941530908098406889410732444332083322411074561216159461572115744876920877967638250226105677789334626990812429264363936443570367480154231456329874708589718965931961662063167430358128256431983869343218325292448808525907700406587485394277612331986360902011957038102589515945450692999348084565773979766553348020384158565856267055922774633878287065024011821918005118628790150053074841408429095051119334425905669972638396525580994008763442387057855245862715971511758195817013648885728960491598776983473624793083211914856546480501995758806630712748614774672565118488696601381879168136554456183931615491636584718080478693045418088948649791893513901799272156923308266108762558820178263262615885675166512077782181079848003534659223912369456768077332712326266837863075110964411008610429688342456661175903804777817752748657746715743535088528565185997481692908278136791348235066181778004304406405645929228079359811077249435331601387285005772442403320819423687175206905414497174189519160894751836040747754450500106215874228073589171305618398170282311912058301083900751048543564457282278054983398705996476782520487532399848411306879146216204669493660480496282059328085282446956580070907665062667613461991782832456102102998201846090058956837952214154963595040055922693234128600255513840299323238915918029350423241607418291087167933462117892873725940642730127709033026311824305144694529662936286613556123749584399921247694438976305783588237543490710140863830541406117316966706121015125814577495883267445606503047829393898825270764594394747720580136179090784593064084727569593674689766672315462220829524185839697029662849820879559745668964340852238312190221679738087048669140870673175325762235945897311494308884805598088562923505523534745615755163345786603978264876441565696281094567658841096122540535051865814832152777480863365836873588399668156671817450154080815983220477856920749329636562808599429811580177767194129821116108409845795040936061598610497456599207050125248384650072318620345577519277002431975259127610412192643441923813433716762101542828732002266231110945796809441116846428897339863208494824500082866061426600839321225235703001728034249538013188992965896928728255706665270710203068861315845038162643459996946371512367279150905550080015644291676650253434829430844336478215573737372747933404448035794407709898858587397719534310179795832051117127432745680969461145958620821753212446085521838596259381320192286175667072268833799975104406843974755899122676624158306249897212452237998975462469967199560894829487208992568732463036113030127653912530528382191749885541538848918610733935459453532621254737009489541342181421401296510396892847773454593723091502651104397328483105383148668099134344050498600708513761789040752396152581967693422567142189954342382726222002512999063800992437404719303434157816670664858286377450450532779861673400320618135047650198973103212819549769801785875389211913599726217945728565002614369392830608296049692115520289864076150961343912853907410956602749803281079673540842492627956953943765426434438158491263836828053234353308305175563533169098890559600070908723280067559853058995901320061490950155432525078385724231730706699546085821941611064619759400209372601934680565606114661458650359885391347921014430302891202587315757561979099354822489635204695537996806690837584837741822010565244443313291294141399265888093494562712761020858231557708662772303026392680371950450701637041220875855287526800686433176801065200821483849633716804715512466150204429782684656791602361907653233581473614067420365428282965718550558377112019253203623784916170327903434781546095615937982663565898766142950911148479628517884284839905919503643156345833128345997695916474080229469499011803025061534406153122892425168737025505385719664313687732374980035731806989008507072147301210511401132189103294693583363530125097409332307196874000557819928294000465106489302040376568398527338603529936638041259855174222713257968932162583043919915186499504424966904328798585037848062960728295277149520509738682499005696123511366293960934193726186339020680763868970394922839949913669453096589865965633155707431639996245345175197610339268545351113647827700993927923565573115030406974880031878853684453998228745947868136677079605726280056050637620248112290780357330164751606613186748141521655860770155001399565978642379922978166615032347023598952150569943518069060763326511435587457681931743307476981263777561704213434517624546721697911720623687872455212450337907382591321313026390540562666080973622584892452095794421815548354659499884348736656923873975528745904789781924751433083929111084234568000083204495830934243021211519788282224832627500734098004555882927999549305548725697036675364934785229286013039947039860790671391574528625266724241661956935145237681953270321151706842178070154915096052401003579898599602991326341647121839873176267347405233738086554203864165240697192176643300133509501763748550219318609568836233412124677213708888305477875425901170295377738409745247804780875454133499391212671556875294995934671004490861415727727188011109070550085735698410359516155012689648295879608814409793027702318134592547257386360779562171829161903202047386127021093852092269992992230953027366222220657457533104660564771865117956065358476299617745677729368785746001762603667178952930935297247478699831281027976264604007894066208030143964139696382225565056334730967478333779164841302864351457245195085444157583104647677044284244335497426736494809659688370146199937009808746284975524888568176300962988052420536229414867571992461490005986195366765930589589044995617097164130825051044077962514283576646342551415025950076552297071892008096315967639030458047635548667921370303183692723962131291758403632954272692852316824010259290124729378279669761773787697181369797674945380929162505439402983890708749621396539917428373581680647490550494842929795007079677460619763931191118383582148064289740780154114965275152019361088522260523086645219145950348575259840716826377530612219443777771216190010760816788089876850844782296110483603718383389699290775381517483726319669469319815692284692521788622812059901975061150687776406811429177447791776254437576782403326899983815879868918817213037664308292503614542181120395563882455829684240364633324086353825647647128369544119042399282877464868888311215425371475674612307467056691401354351349416814255854756832302303824690086210512547500008744769622265576023161608524623743018709490482648121979757734002085428775425479231407052191806132265228743196831178569783661173275352642822297166449195920877491086460473490845589536725887610530237752391443804373522378525791349458661526366068351503995413948924576965680039854502323139940155149779706510805022908187781346024311544962280755907181711507302126294717597622053692432390789119654528790195414419099471288106728154700263785657088339319037096916986986874702649492151465713689393728786094197765904803492673199853042337814830043062539571191552431780626473995848070159157599870267369089415157447116094083320143475312628374270730926157454511123683152768659394693518740535823716806764312014920870152318792020425846168807295587901573058183760468467558817538982634884668046734383322637182376237884907638972680013767133999586061463233774423001439313602752438665398475686345691742381464393237528466184400591225394570474008667749866204380679529127361189197087645096024989723770134369116762510598155667529883851179925169806394531628211501818477154393664456516057901000687958288084571057870333469133107111071077718173381935715407381768911132262769235791186111027983635725103101245145241086266639572247663117971920198888190446416557207480606289690690803886376770822207004730295658835751813402305378024141698456617844833281769655182195053863050482129133040170659768465653553708364316003560037334996449409422323425398467151597488938063779455977045996266865693074560725005232287570662998461150200090369775008785633753486797067481267417232303130637867267027626873471832020945276412808012321617624310883152282688237070864529593498829672885241904682562568228793151154192342923587229614329587071322970476204917022917625743273746105666810625911204179602604819335938766553013711118591886533445725592333540545409548975769151512898658276378088233668784117405089885955500460930408172933330327560704643923412247400064047841550737546724640799300282554980801368128942617146503434291973129348223947974036805860521538248464316560717721665956405603885645043367855263628478828308845786230760575095810194965079553083062995457177981340801954033464770216852640077080159163882867989066064742928206357435221295204661638600026493384262047882217674741136491779785757605734650450119914833160437074117723231095966951051516592010412962599341337384931478108143034333843848738551557331834978433519088451936224674086233287593080781690088502736162929373259337787559878666955283694579438090488834996072301352431952313632760257944800436352179063397205287307842177599435179743917819234552633794097387410052533363877826327441513095763992174169035606935361097790694055555425276512338646422441355241862281360472250790115118941953810759791267164044300781368325413329376439982850708384647859243171703664827111261887713093134994111326689514955217150568662976949519851454003593002665689895867501229949537202675803630762329001432520450921428895707951003753648043017909031549138104653923214867504314822906745030564714872105170900920006009210891573726329297487246539977404637165536298245867212504687949744006420239130557403572723633903281219978501270046626700409403362664003291230764165765824414107435670008441409820561976128963985876866653119142320631273273773263480144882214809379904945825266373590842127258940693323534553810865022796877892297478123177022723652998107821954419718068148461866036052161055944612614793954026313348036996836284149550696914348673312074997592778317112324506599606828213919277790574828574541420514418746937680335342650542941754594467388068436625670846522558428994457059927904428696438542675952275645477963769777048130805221373448342144938055872045180843702869409162512142387453722718758529529995130510091704616512574722710916785467006780391194928651768294850381584088526169698007467441462302182100949228717156779826287191639627697732914116331013305059258986117233685698269807872797866638920075669737944888925247207922843079072413245978412211332430137905490890784426877726246495686670485104554038552123630140023897492994910074441924150085273260335262445921656460659979094033426795435234065524937651251212577932841346244822432131007493493685800757397424191877232961161257420876238338868587588294667572320702793053786739769049134396421941394005101322452023311168027529152886227349707863781572299345577166177516841684757294784472976327486426057437039502052266605009080208996536928252015434529813814975301624752728880710606727575539395165413356906863834839389769723103072117404038436361155417261231224848918809138874011610161953777123971795999539391660641198437110529493749663295407288048825245441101242943760505589840077281955538402572376482985359961175988240452100737934333226375225144112818187605299853587699027174098663428222826124408807910524577711919139783039100734115546507467015449763306204282986226044777640767592780864368237898552820863917627791324977208832895777160744818542042608440552712001112270436319197218982479176994014664167726035267497710836232659910157091321238911146202070174122288958995918771229131014208031956404349164330453628374972057843254197390738752683245557994712055982657674627058595299595878277325249075335504746153918967848033963839964064715158053253178575598313760786023382209537590262662447867250506632580227416378461332524304645361417508169123334194602540664314021673700743638132336262806001146134011136597600236684239672294312400120644569079074464234072369360778843125167640405289734255545244617698221405451284911541088606956236899016352105686177585911816154693404968214761050762230711444541653890931961290638885558025892588443184233497045234620922532002017719413044928338177366282486558552841084774318697476414850196782008118398594233165266457810566417294455739962858784471153016146175335951824205282005672121702449115687357931122051538779339114308695229419113163490070891143372400762071702491782302590407891377616302260714973816348265530364790892870475870697577232872613047302363676639873903148363036194906617704152339882595853732767762424463080346376418921025188446793056085406413695442632250625561448454581073183232790322343949277197421009482886198229343061327218968101626295887781331610561399913902665203123189866263976898814738048564274413050916281976788173629932102198429274463274648244463641383373016123020717150189774204901929282891198614449812880688529628809369556327838808517760786570120591761658495247461144111574648603677456784335791650227992726574702434768391807278772520196445461663631359683748809523417221248999848491430226049977339168103572964297979997926139551226384458447739837348131440423798089652565962158976123295393842408419799588292379316827020691878020701533938089939652184543402751593796953457850892590275083323274862212829886540667035858261038475915760199200610272514665134552009399792692701063877809845884074170572061194050665352116230677997785176007579531816525127356500945191704963681945487457267860043195197265555865357843260731011362681429379538891533039098070782428733158106173827460991124867530687194754439471714847907736810422223732423047297842399659342968104970660915213637218602917546866871616757067529476401745084641782138989634495966960114893870212606254963070346247903863272511875199932431154173061703671174291672615261442022523783582504423986598889117874380427315880985905740316528265982436863259918515196458647505142469911198742925922967970769356395127592533122899319486009844868670448910829347111225281818036799508381039439912492163109801286472921276108334437724043971775214103899211182339815126317836551240218935177136102329050791587820686431426494451642365522358112734074847828023380030813113131289404052067763936196921448594197725832092684736102736271157341238642804718346799270901263935257071452645921162475948369774147278489324259642239792617928553560462138649552987740183679717077249972761503604032612884678671873810890339466993598572642779905527899469174519939435617364466074592608678001840173865421386775604897797328134482922041840620079965255253963941812702836692835896981741784544544525075690010586717271300277548148548589491668879084674434980623227417566057668490199272698954361097158406509533337837662104574965372357910382038560094418437558922691208871215948651566938890280825995578399769758476549821545641577566543446355801075943961161428916896416974325059498145626513836850029281754001693999857563898077513099048849945155938142561493549362965429836101040608479932950783561894077133609638546343425261843023463907818488319430652471034508353676422837349823532067974480409497215201182616091556397761777097266677010435990539115822246239525671823487511649035097892467888505230547445866130125182980369957717937317422970738611352513942728945312286773800260780804222961207228915543643880486321170349835930957897303928035330802747653398969802427351340512365645058809639454234163444516583709446784933787771211365516302501849850050768807647565254684377713857467875678600297567025508580016578232637726311965977576248877821865490824883811702099569190586671439167919070868054048577116965124630386209798276944978043791527203690610443648277636673325615449239465803233214406540626091882333040667417025801255794785021728928696922567064146334128281689416841925925770161882340694459280577636766577382773126050370877702034095140877793518642466530953854961993102131468791831664739529609554979231142005454591468648289063042887670216337106360528754452128434728581410507921815351667093092019070666311712438511814563587859303450651711166897715895642726186149503420529319930839499683872562712527491331771383467567142832530115235642854517545310103477687085510865853815540226903362313083274300135563398578204070428789250728059883920655812909597208700241959688628043903947745935023746896021208589678788476336298122071622723641264250325466458151165165182100663763489446907391745003363342922219041666468961529325996524010355993147628713641586991389587406200622197376313256916718476881832675300661873372682433823704467211934656242454040856791714163901012359152535216664914611625376210246525286036963700892725838909504678714599786388768925496328889591048253634979432407220141764588293357206141638346343559723482653263338580481580451918807716482274005699204739047456726768894987140105106631781979127384395900578283003999853146026430308827866612213271854323509033758716916203148588530941492865799632898350969707387675667653508362184460380901861638718727255852439815342898734480532616411715320134171806225199222491243201779529346239150228607089189096079838008200338525875699287193079615583296316131799197516656376604925569906282417100247939351093331655223470281688108941992401294423973817492838110563184854362924563718332619514665595404859627126804833352270613960056482110495284434098472821672657882020737007335738309179760048569927978811279097762717753487103283030967818016184989248096147356156564204153617062519286788069974135610765149077702613388827919338439173819370133962004655897911330882179212262287259467542056913374861563027523340604792991929584313453057120996697842449668105156212164927739599424535241920281090346673579665061374581024031293243406522996300988538334048333524070237522170444737900769326561812718626519789753274415115784161889366462646985678345950293397088133322785105740671445618892665243751786568516498739259968467893152831381110739641685273805680131192489106298706575951098384361715233204882181556606590913139963430150522402270530598591153815952902547583893577205900687359937071744651417566506737954369859846561091414408490154998232582379057307927032814836671524835002191861595897149473279022642186512129819958449690427770426326936682843137699139436812356638522273605531248046370798391918261195891940560460344168040960299313282244986212454517702496213132047254840559473637814231855065346577970885953970839618697321958312058423972626093595340639481375963483065727986620423846601519848745467362029784224316199333072613181749764198544013063546829893755524496702155218108583972386749099562230104058925630902079197102800005416795129120596617660669879158982245551176526684620620941544821097546498537855588483207917857873270301525608903817332025416928884875371535576612519867136141844699309490552769775761464888612302431403097506564331298504264940890619093668483114280954718334593162385066453912959502968688854620061618522733914411523018140520149853729454854245319926224852937210059221329941328384723414367093996183679449174305907814773598980219584186381499104124880992626079022534098090806894010104700670281694704479106810356648016887800512268282404679244198254732021561576984340227645608490763104931128283722014503279803396227605499852615129466449895388733643735891802507145420529929042645460307072418604207693791474837776903947965059543027543112503175814794916103051895932890538272447078875487543050511752161196641796641827411040041976858418957432669570255561032569477419304195438383780371565987458020073434360518538991073836735397652438668291305386654633733860950111042084764776348721147257392343258989451116779429566489915411133443077155704872286062690908296608971862363340841403506316053308617047375338645199605533760431121220355815805695996660866525888761623487884985583101837318500897487889620604914263052827422993391511441047114767498366697419101582964792758633871208407070397230949165185207760612490452061104745473321982462962584498983176702697891465428613838615176273904203006149648612234437728507686589948952501434632656539351542697015808538840458565089617785188941145372834361733822984295913629513595351999571125154756850098734418592394383063396322435689031383926589372833640412666994479531606524062874185842936948516565744905907295386836153193195191182977736077907505575704082737700676757632324603461577841927908575927564751349407708470720684767764675934907447327020244500122381880007108538749640035827425136381645259100634677422556968431492122313621635814056978213171046747815522373233635434807693165415422775984482091776588253614494585655326464596996669948622289413730209010784472763165948760286415933540053785438805626289152058201145367422204158500516896353069762299360699055054382853572506872411843213685658519317942896647552042692320446979220693226515815158853460352833453086524547439489921773609088636383586461788526675702205720288478120367744643110077330860249003034702953594050858678532888499658311994432944768522060785090586199191662249154900796624334963770412609350657412242393035254489419900106108801719548381989004564548011197152263933949801605335771552708707700619944880687698462940540457229273778434759797707014547992221712380962407058071979088349649507198549379416388388851787846444142530186078182566896697179607219912617933643622345027233677798699064242377011687032351985825465129588256578261556406104127547907815687194107721932873966475539409600837590770419975244456644307683042327060855715920298687297664527993945801002559927828707180195288266256742087656411962399990228251217198230477080807010690547415109938946313228871962624223490809260936974070633793945583895384901363512273579114937879521381594788061166751818422685612984601982754771939578958019985996591782659120271113556244655915579425033174072675839850810047158208535316094046801989973325761466885069342845806879243680660550943070163438784885403330522151677673580264209465911375320197786785928095591491498954146878059179096015351313753041473872847102637319185138702437719251092442589807925527073698588853760225946578715909545702184198974821618249707659670752790120205601926701888047271448184481798668056171070451428049462372276787790869353916849728109760158957822169030333413222830425211288334579189353996027345199640566316475863715121878928214888652287197274774756471442728654333805072028220843537884717797916049778498203359035475972024991618912672012675828154198862099067953984583919619559990924498235943331955785788779240907225955319863861926020766842488872036375849453541847657190690861934436455222151783212805676709894941106207715687704525848314065714607768817335572956614548195102310734164863154681712242196879729324942111055305640490401732841827273578933474616195169031735790990584729652072279971084710036933446963244353148008983047399393008977364690863170236294620208615776845467806305724892370471429255833400155960784914408833483514691259604859349456421539180867995684639099680744446701019958913786075048102547435859244516214717688038585354322634106996286141781788921108841956715481459887094262473227406581276160116302969102277177559382098081540725220794481036341324741720925213848092606290577148294891847230177255591728223886778533351772866234919579382115233384614669561723442880584175275237041642453795121724535353213710191230351078723234666570134957814087342186553444735814860070505901935961504201311271172371243431762919612993764169276496491366461775522387252775523043833437859099114973913661160716693253967464964902461838397266674720744014505488861581793326478124538867343511097256631690419055797504446680991687590370797489436500614427175844515617291966548060424399520576388405687372378054619555843555780586920595724390798255135861355875088134943530878879782415970598687315883885095717909000655324625436871370675162281437815714640265236084309945430825190048864232718806306525978879577474984398029616379742494749100590939149100233564243814708205282744554342613382575393934659019188748527525563492994268380092719289072972784280216989962755117298170062420811709976116359533163994444113384062135819413148450657828024270402177528590910846420550092755787869967469073014015656509437927313682104491081124976230052876196070393016424716684340258176776624468839011997067059370935301735033060878731660619850790803772876983061029780682261590684224975746335373320326504230669746265273451595916122862618892495481541257302788735042674475749568792030411840732410910800988371504411919811680364209567522134764380585059716303341022051406362922835309787911415535244657502410171628318252673067977536454171055315896248488074277274284525645131768930448168776577117303833203276795608073166857303961901056959690770866468060866592737429991907622045639020175110528722177410424593669063296048781525048327443478492363154543079550016670427949220257101002693153821546005516056543413812412334786074779686205843887888041948826019295885473465620355083189658972502108998140088572981724140893414985074648379345056252959547729555585644912095723782260795843388444637816113165824799609285859872053098731147776873381478279963760469755812689144499673708549215487136538078683151159526879527751094632420209193938909436525397065622819998673275881670134621365131773661750946295355409054951450075724487600012477132608648002508524992521607028204711091287410941508510033632725128054251899003621094952194466754694220221440048203041107401694757469039970720475230473382572836989680518195400680398525774213228483675916663788657773905999488804474699758932235372380228907043028144239635086002363825106278837830997571196644760124536589915935869699320459028661008475775099446048499824242504220059285814498215373487100745628585608115741923682560323580518809154239491354480042474158725305584458019204719725810812211953552406407818443852007242832608541466715251823000116932337054072538636378346221222191137749267043145606599981241106594965741142472785370506479537158179951139904765639371616380696312095122740218729289640576826484259202123283969849362115567320777145571835546834384303052570808605400449680703412259973791737088035086178646978438860197473531636617768503197291689859632836393010235871756282173267513827361317052322637481291284643677026369351012130543440176622104911669723767572824405915665578247180952937530145337436806825707247522360750297430684725756339304110992972129917282292185957687939320696937963969165106752902991841060791240099603367764776656875344310795678051031855676619804546798187387712207267169522869563277487651364180463336524393655514542220146995372762193475230650393905622715183868064287407676917388748761424318960468682785617219813410930958094789022607849163968640024422802020825269177116937568442796206881200048447791974730985440165041617744579529014512189464848569757364900579075315338256425033398891523085048394330328427180875237525762548562230774062784031171453367808387627474942789601992721429641683657299820123676563222877894064456523110539055314680631131850738504132252211950250208584020948886446019550409310819201003181480321127512154483098120556090493044379127694451301861498113666792012151696400431981677662952625526674179608232498285696779387060186213219379542040554971251590180355562853612386702534357895886453509852459507255079977967024201469218000843205082250295532159961268834071905404917696468147862215246066332935306509432648174589670564913844740912117312713107014556271211805436174530016858451075690844411547279719077335275897480389199393088038311494743209955600891365722945001607855803764284745973099135875758845784454276475610619543558864699637819385088784032054272275287157079833966911304970804635181570721276600853313775908688518262965388461375818707050657732898371039962715944720729146624428371611170983405473872445049466397276501007620550037015688435280385180745290358374798993700484077667881159650866840785942861368531835249635681260895546681960622261097183012537465984997407839461435967720037054625161964574907571590191568152999468699423515422554135498529447564577512351355655043209228428759668880046159515125052491362391571481753943271912786012422957213945504476119468173750150916469166225250380691990770856715689738285293547699200470529854995343249249507114917481943805265637553246051673219333177876123278208423520848754936598592020307770345560929161347528497043641589675055190683983142273745331001722682693734370073270397494973279913406025824355682607999436240055582554713562073202141514849429464504922497359339349800164100245420734903261345598496075875969200049664840554590886762990800327563122833460415989329294095700237202595809469463024214201970077915609054139137360133377638397408337247337436584989283461871568001152517935463124599346647079836691653589455320131412542670273220885952990297145633499086733518795610188566878810171924626138348293437724191761814157393108023808707204428507043293479047841818414956773626395745684071916338638673043422797606695396981259802762518806673562576109655878237858393052806570010094341755080509500348782716880284064315382454728772851510756984572156160624361622349258002013584221247914069729951321143575308743968847089170137372339355644813981117420029364203058896777298267980753887656060181746268429679241902429748214157790474980313464349173618476270704922352529149971043270042928344894914306706708291084000149954645656683654608080069614436955414975758216210331025709204678522780627703966095241161974761169703598376211156033815418087870407271874097207884208885541787742629580445782221671963989711438358526311890305708092587834589927033079551174553770179832823408559360417253231082940528484996219042789542822919099594906749262159535550202956195161730439848385002570153442420747476248530003026383811011476598031782259303069364423728253737389978033826977306033255414564338222264708546288624424989969992970422732088466835024713672280393660576209833927746249952685546815411436065172617375008788092382411992942066659794386231782895064816365393419047015251699827865145746466378282260404851473488486024865446660292614959061269227016099432456637014298135762804646171544415596945526988432145509950490027304826288233412764815046923565077100515839293213321639009329554822871679117757343112087212142642505451363536326507718804568477634495859823596479959089685016153649427863008817573648143915400887722497207293981476039567616704966021593932755475336191457043234808442292726092493730534137013713747709965168667408049279745340965719594843566309212091152738048716305197928084456220361497255938557489712805302990999457806065639857182259667762923225462996921414252158606060363940379216367536123108697293636233521816811868327710227120637439378426657194826756554035495322060097230029846184794327606848251281780503036899229994245360414764868741420104840908928626349073719909190572733790826354922163338027965035226221580699959544689898107432727932109121865386896078578034603546882424565947097107378822501838725522559630760783035366871509413664799966360832711582582803328725774997099482535393223597367876791409074798781378557319333946282202583647697212883659264528905597094464633288732724411090723757762444129674167918447197704796380593648634696979483345514572542626596943506202123374821620728936809388198706300279094346061103925871887609633489936772559561106014636508448051790422917586179821417229345115606830317914130326820648812243021928040806773475305567931865098756127581388486046568869159323518022645341910851984812564089084604816384561425292498606230768088691420360987371405563322262171739270799540080776313434939723018061058131264830569498590903529780507254243711326388344366146948884301999712255587976163308799508395189928800165972233435918542069197330103274962429577780409872358839813140826827584258952338372828852268007131810985583192431766526669615456905487488782003496724859432939882124677057604262541580298072191056483557644908181499804874521894562054067259210164858923176300096408422040178318946815443953073509581715882670879788229017974456649462617311845932849899918602123315451328051123134280750616503602218415342338778795586682920369137161446407226105180571927181656508243146979565032146130502697149773490143959423427223771999009190689705731969042405578377949254420806817513867997701944718208022058326056534688817891638125288232670766224817817048973202984414070144456226003184871134286626227218348656652454875688518194241104106530500649151628670940473621088937393351136321448966063695067358042328343997612373575718621895621662971799936324209477351478534734566262139238439891047771662758251593764287542616625987741147608276990048242157866786436800709661278163411472616748029332558708719559325834483356230571538260032313045684945126226996932185913241152183339763221653404850368934134664473492603531289350103002901299189512635795927689504932370043119156966619594401380900504957117328268774688411306390517564212315529522690722980746538028458922094372452337896531829699837895596885508298057547878485133323778541879873007771961642287542691549758109018859902107090995893091801948016170752122818469190385254515872992264917301502206131506373319645160218926757804490662887910107112847587524124195788503037034759238905475308604515746420054099887614517400984727946471419131669955448980897323904282588444802149218605689740858541689338613193508300129548045276227684893952759907281482492850509258276114257588194397044339157553809827787481696121429584949159829634968252560412813844278002109498900557685448132292112466431748319433039197199796299501753478968246570137161728977115076037096495079769476642677084844958218123206384426959855063971018122981686034727851777958316598224524768441012243576134831197261875217539426088401956436855420980257044337631118186986983721540086881805672603370598485121880304546579964264071687647361697650486599591529366467451796770691004379841292365463096626262039318697280889935710833947461575172097157492180579283948890181029639038591804828228182787047553685121271527462957899156049029825212165615869430327438977359384710956554970318100492190922977489217227491066927200155072419472178422186470741191647770639548815820308744520965308955428942470407215406183871939798440574674878197407058784327562399820658463577729299320753688421558750703913975758959754368920851516492707911903388444834808574943553363474006587476885037268772070711303506098341508442041235430528780807946592365898540422677449721437352204062093608086285529636830057956173393206068351472758483139237050584503872277361930678809690834348254189883288644997671286875069099439634936536012385472744462468136034476111528682622825169692697474680375165835031856054068863994287059217139560598074330250418467685873397823584272304250671925094319522882809333221526250997670600617204811874422224405870602767414426424717260448745390643571763668458327659247054423164564225148958575391264940546412040457407077762868633253426175076016569713073506587373445718370548663817254455077025829004265988934719760709156764062070476187355293670621830136691500234363834197381206148945195242709341015662409633610478600380733757834759555205856261527345187644618946881523852801818082811895681238158923600699157585987743597380773036497354484096150005566262893492080386328046060844828630632645140381382325495271988021556153710270273155719612592498900287168444886417152948528117584912446300307763337583415914887608068819177838708094496554882520650162805791723616457986026531015699129830511237118129574545402231684662220416592428671380053332940846501563681742175448380239817857742433119986678366693010517570705499448268080592611870839663631618830204254119514432076567827292684557059887438393974691673147506362630347245465965068483882085373703880872567655169392894815231703001970428003385658738334420715904281300218904912656373155541122427609457636231811208101968656759255516617076523484467165254565638992984770112356486717203832533139152224186727473153253767725063506766967520483589310513467493122945398649588780805585989371517331120048321389065957017977895708192736498965729843268510025395028269110839471564970325907503032152693380739159671105416217217820135010414477414077978942043179552062146935726640826096978014799753945152067466644043810291592451151909341155367933874003343447128956468203435667768153650437249218553694537266604662967765424937841541322508780439287140721759416924803235176060833876749961222969047605905573004677224875879818648791220532614789159716030781078273909293415446859970046715257534861613247643231834549351288680476968354088544447242922774566277989130036077034097838293266529370615556269309675412413426764093930553686780254533144683967908046862194699853855644762048867366950962112146986363795277875318814271143857141482322895683853641973194226828861829788559572847323026165968975466528526342372900235179518887833785804582090587813713467419596736267092545371438860932025541245245101337457417015003006137710290706442334977480615893230479001730823594334277583277156167327558985557727497772028943845989040626470133785243343647825195563922515892187960327770224323372810566160018641460280725174964196055055720125227593854795100301751880353827948076007552540694576606636525609987614358935721376394034081375209876505580782422026084664142056014987361747335686764076968199361194315616310394417721327293011207916307125214817373319948535070538152900393744142671786760646541514548245732151039971218760042215229373811071698320019271465187773350134120140804981458432357372627585067635296192060443252504910616263846564372763296003721136541913732780568699362471211607447916749555182256262069098466571475430665918586749872356640191373181988627065253489990928728401146125826633440657908838566727361806997179680874254795075291572775314118166497509674488299861037446449181173349670137640891341737362766303239551479688424209856108419448760088829329884175095080892652027282858887127748950815699922118536816242536222243504557869897524151008800902662611326291601646948122706157833702723919247664793674685014662470018199057060891744296472275984330555605108441921042712213982962318164552185332895110864290339986821780500172037900355201096214140472409776541891684856305192720405772161068446547322449112617587288179551976876617575448079273793737389242267385830624077623723633900752901602789940057201324764725821970265520083918384713566601349536602430709212209642171951906502769384917766795796425523261457882177205582863997575310365635850952196726955417998039519687500706387908290995485015374533638331446322833617877352398817366190190554614883122269445995346282577278610178848053786755303301849957286609224064904580469829024206780067812275379706137696171111800232047957384411875067224540662107360900109995866626212867268480893264002166374443105221184281624970407894135145415921904522537604594850799167974186088599244637622230820591026242022285137948466495425763007861092287172716606828205276917430571477975335037997470017541405633070976876103213624973798899204576235027872854656467387479751956927317097066364949689861028946877275572139388688027231361922464795194839295979958558888567552733347995319676891901532465545341616186649958315424257378175202847709723719352801364620275006251445444530433797455087100645010711810301579517320443919810338349908552710275159661111217970467766812696384506307390456593308004981106957101082931383474967897744534873108705515719901294009697308336622971339697496575778033613367871688651698618585737064469048385232554882931447015890429650189724309161362983120124782147106346675352225817560309691994687642431057364519026654804318729574458518802525742476399544289121593430959624502752028160115906100422154573578142327346027184938270976527430335950103734066563296333008021629302759880401972436237667631903525657159663640263889643012409797104928831656130978849539998821667499104369530467864036613947972653778178821880826873645453152548511701671488713945311544223049738134636566206735989726494978066721224220945566951563494866097901379306025745968909590390320878829640780609515625323753979703344032793633276783373694757709387108481798884502183576308319075444894255481050695300680504347233852034110743841645607552585508477860081234452462206752264271323828973042791534255090306009241813028910615396536232390818289446855621885047332097524742501944455179682930819365697969207117048900153711848344343580456574887295287963299918407328114412944642216842720820173321468953916592426839408729859269102918553776472328531623901348031238139372706600297522619118404881582462218313801860200247748754213002751276654725030090386456317562661503809821764621906575738750325167811411073676966303249900242567515112993824030093662377357014638666766965783886527410022017148283323610935415936747337494401657763833925489146905298497111790248137031529700117990454808725244443199974685995625045197464943014944891283492636432698858628290931598985498561531330698162168110651920100428017211965130681872173363454850902539106390093400232572260253028609287114579223704090561331974378516613165622557555478242822108310041709275100100008321261853121434068239094164608520399167901862590331718696978772805565821985347608647999967005198844851653654295875870350956599023921477340016695314613065932611017575420153532622044222170134437788883334403248965711141631850400361754674268048988467372356393975190834736298764573286751493197436133454086763176056808200478272549234133185187950756389336528116411916916107727299310840063596695908026739251431575251365524560586544884931736891413887223816091660075921232337137044883363502074768194208544730770334273423067083208274139593811522533302978601236784468900844996495292909875364524784505906257059859652747476517974461358283477220486176038267427732130545572867719950779642326275829010146725214729974540876697261210704779821711238930336718490460912512564814540502508084176643826182926534138069703339726943549870882724349020906836816972247243967604120107391070542334682106244649513408896812906730851439298953327890026914346053450100171975481171610343662043634955667281902625967376960186387315681599085530756526543950463589985403294246754667871959333931999429351176423334066341131452176727770017673135358843478440507694435139291685096595155278693065869093984519132657147474698420126791977211018436552438038631288418399422647267688409286019680081620587831920973452445427211376159805725986922345445577321316739911153040460493490111152556610311214630103848662024183313079018774299751462894961141787913823082533072266851459058904819401320381149629007380302835147577556910027515479297754889286507860971922342582932495588413737688517822248040834673849059050623551281263078721421971943798538003537157826940469372132800146246712075753706306862566438853637348631717507928975878540202856718404405427688965408499277037234147960135428559410684087476879505320612965408394109732626415037731494524388095402575454039502757282961856187309428238297206680821389657837130865690364606546062683679006236284101060815887191638675065006593296438550800945865741724009062925876245078018720470043593499167944558109768029581296376788108941761274827797598602963918812242739939155612783902504564245393496936460815598708078995095297403286335087409633326048999232007283237823419770174173749162415319594795439990628643642783144165960635569046403045448442173949040799783775907170404134137927895980999996158416996407404676681204648449406405868462149468561256229228561572625335642950237668340852145439868845883337813295609017605771630326371941859924777669819006176098474723360976698776540362081661745803861056476614621625405600344540065837071630287375482221237048590540499127699229711762084036879139299591661599768438612829376450245366259397177085868489816889640716490449612035971072338324332721966933868059259468236121729769189166919673558646824293217750179860791066415025157621983959196366295463694218786877710947734938864828312979626685958876170588838735578424472068710101874045754807253273049951210910150994936523467503561908566603300228783585265926939575177980288944825811691078429820480115756078579065802999955378579625582898790968185433046637995079072928285548842187667865565971033398642352702167382968652259211109197558449213533012192025316009100250006109401174497523152367258624299674622312794095094143320288877742775755401394852804547824760862603199594008606809636518439618103004877391674713971419121201365613813593057679334129761211875449594048339259918275473760225863579560170208330282023251060083102040283403970643516936816529288160335995491249336797499696076789381556453213215112871865961914289586610887269425295431340689324335376119557514992364369559821480633009614641617471218024723125294729702102317509707597079407678874408081565249535508229027191271801527693372294191685751725273554877820265811853431042126475078933875266151152371341607335982035033067874440811558385691764904409928571855917643520030785230667403624036383966599063837389927630879311314569163890507716551891975848017520844431045300563528266134287139552934609597031643335675714358886563274470208631993137789627326379977648463447528083475240233638529843757969517731341886816562293673651468385955365328154822690012626896113618820331437469596801272754084270662723765376157238386791850897981087615871472396098725852834788907694856542673211718136440929205346472323558579900083616373031039923208378730857409546560113270733852475049788979071888486916076686767446933181053317172883071745179907214352450419160195908039652380850472314979088585502153902458241120126549433541147419146846308561204574662395880456104722420403132749060600980759802613362677716882695951233616372696060702682258877393554910447668698848176140405773657790985831864397611851818645919257980330236993196722136169042049294180055935981204373839149806112520324051965921692001414398173453606667419601421745783013518649303647358855914196429060131669956723990692525447389852842785472201599287903259098880256672190045844266667609911973923441444837282774221339587918042855606489979677278556175800820348917149385236502771036278702743290658694681476646040308320592487662073207203224531055096618152881754365927247339035486979363730660167290887907114883020676433682907788652930406249089860082836791701580199790337226202328683299446056622414568258092829618413701728230027478292779876521411089746428010868001500324639358351903066539007942110932395671099579890348666143608637249507513191897580483475758615274622557942149732779397588596618639441407199100021553954602066077115763970634426609220621217587366405184075614396187493585696463766629232053466476487028408752516738415071602492715802938725146976784501113519444793393181365583795972862346649762141833978899298243781570074116581248015283621945555906913820139514151450529381303589467755222803108087277993914802135886115096096409849396606062690763660010437585375229698296287624836777255914114769842826135338713442790083710345157235798480862667163923387007856831722333619255035423434077896699870710280123470044170958839848797824210872475229323906755573898468056788873526021700498198849393816924908722817048282257858105586853306671298726060643986214954380951183131304183148219410462713831804619497962621225354983650311014256397571470236660352913965210681034068489325624537715853990815454805710607464313683973016422067390085216974769315581576297661000560416911992358317668585535482611108365337160671117514885016694342802375040001718644262235112628006060722848514165137767503832879409733193123932250676847285428809480272896409266383511558138881066319215571347309809289152872714592293649221093222745410302224341784757253972119549206014229781795408590174124162242798509297942719186254957319394875324263923898390420510804399205391279425549956849822663448478860062039801661457380333880371704622844461749388426497981182265719447918803721775381160975969913427194411016222265164122129953070109270623477543771965676847466319154445048902762233079174033657940637359321703919555525243563838915699818049684456195561671534078328341337475228818032407172256115471516595139568511316212575936911328720133036036929355844693250114209574064399412769995313807286293109460632743162078096058682947755531161913780399754400126632814544285867514847525309682211240296127469347302949275445915701709486248632911141430334319635542419565615253813265267355743685729987349682778389671259086446088582615673698170335587662129953859353712169925531895031806651542917969407941794268989794850768092944871863033716155591400242910206120796531244659747942667779034277932977357122865353282778951959363481840765993550130571217317007795084173494479130289919443654590940341706737524328442846992423588303557676919703822985782614206275696266295787627843824055904991507241080343418746985105517917073008011847986862583936062757920739615894921879870717976116367983387726648860755851042805949170135581703861578895645191274564761536576024951392924206287833177952196756654069407479800346748939748858412826516478430429519152408211279448722010373988987809667933305330354087869002173022407600171350332111906614584807972696273007506614969384348024535530537926098625126060351635799285131154154921979420643917004135964648877608463495986130489369116669908298002052500506677610943280912299397932620996330643168057074193536553291358817502125410297200349209006012374035038886404269103238175358708456283130624803506480095941766584737755996730146236867903099350113486490559345959540263750085393770855352338324165636496990815843924234894755421970364524883448273477225754313372161524714945389436704714652315231953298420528646774607700876845919646702129413920497888382900016580934094641054619371813920854867984834848609189535684970905166981846198116052953912086088093178029692799457759368042440570433159496486650262716336140771458546839230053817519925398043692002375500674435540539530298358471076879315460944708591767003966256555756770582400530764040941116670478755575861084603214542932853201467726975199343067578319661723779806559996400370353127546908632085957852838936134070689755625906883291664641175785849618530819540193210183719151079417273671140440666625658116587976849379688504461613724238922368545503162685935964817802084495788976411816623941500402194260853473031316504911662605872043694151049505188581217533940840523334634203234598550712873554879139195817795640986702796444102240095263093239408352374584369779626989358822397077584254914863764754639341695934722819347334596445932906004943899224669539233862659076246575431961024390900596093365844843648777472150682616635548252113878379679627696542311689963128892426537911938314433405171217548063791277687288736768964813744298583652184172175655683790945367903483070404443562637471613943719309870559980594538804503139132111263027762253404204925775136524505721650965951342185474944340164213994688996177392511923240366050618101084154486422762002710585832463662999447362417550023838478907633416020954939131435323540667134038256594448281176612809146602039592991109841716883061711685683148728693225147427394936281444324427492859634168529240752972759949253882571882335495080612057096806877321313996106373177091357339542365366759136292158281234584444364719045974811716931577650980377521003480922180775822200367281280211261942738629727014001358393186119321146396039857436081930175526902941305786404054484534242648821502784049328029825956431776063796511483148715704981016534102449583778486125012646473043064246147604213469846486680209216903464345552267040313111651740634747345878091022422203724518504046948284232014243596874723452745733480287738920821844803556882682474550627532558630167168524998973208837482851327772185313220058710984993030270049589197399305512587408570751698544735187510804412878609717336344278909849984060045540760279503602284135133333398738356851858646651560658124776577215107288465340464395312322997506239780667122608424007367904304155587737405522079450707520715534981727912416213597567335773929633415512006862509392214372415138921564245713663360513118174587274050272781167008853725706477058363623268688001506267240974634808830237772441450563804164174091005156160426059783446585966819469294026901402348099389234854957214369867488806594687401086876110204692937807773835018586046799013696237695202091203159378604908414854713825926639972426647297452582930832295981462527898245796292746336747920646450355627374937867352819095976292874498734680321362687818731796627048682948681257270974128941074695251141501954329007777642770669674603712323754541933163623572726817533122713990654301211851715156181970577409135333376566150125698459885333686810837842636374924124832773933742263127131429015727245499792883176805955056632814843725560092127025126044806816140242003922973191400097433914856791080590459691166280824274106920475156413726718360435025140741868524195315041350507063475077136346207975231351582914188287335189403217954771535517750387575967894430416707526814427904562571828694398365857166295906331838518125582355646564483144593333584706506032392639272379157968459098201319252588048627845763781820093548147757967465243308821576766668802353342328966439438576784475845044291885840654965569293553151250880689718225688225499806225700682691002692482928667258258442762605675349932012553808542993165266124131521753360807485465631297279873705311437890932525613741598354037693858154566004249613480904761761372362286169309489961672228809923474629891361000162603626647977583202059697043726214602541335436572681302971809580981081704012219540880809449527085872515628443166697322881260223532083371234480533270930706259599741998044237773019232678334713595453928401077828758747536921928690252528764984970252598449167625719295751006025109236558553032821326932981180522159026172234697144411403217902108804466937890123990114661731395093334636531784177262727143155245170404421090710537905232037647960550174036790155998599604293177847212167391305364347120210428746240851951166036739526939916397152343346057644949689634623037770284405649936425087850692981788783988802295217291514471891146361728116777888047683529570343408459593238234510015163971527625982856997218115358731979215207541684849476254703422502641368203709964724953602106549706032851585230644817401916224973652473336567667322524239129065203211427415391222698735736593617745437044603572653308476057775116761806112991590112868478855637776950526900157274780814133387173021326372075414743888453876065745642654329846527408226225206358632645135493857185005956979896716940192876772418990453554376434587245206935616745306520447700728317488976069244102941974395846665621166662190824457719868117462454481365025226803385743790731660921207675754781624140178535010266721380261033405178954502964255011416722082840735228720065925815626305097163005189726659013448652656704801045894936460818149422618909680476835084787863617346104986923469164812530300763931856739271051282342317474311284213445869821073168704952199955548556645063287054542867281631973107737878695383417028154837192506748445486942316543599469550073998412353083058444552845649589744812381341133362745112518954966609380544966639053959735926779104812464067742610686557235064588337493916772212706813175027029376297035729730104209559274347534188900874114621940106306265999716473444828355190116235643153389722399794450499790700936628139100481286366871772746301650309273360621786834402830588066210418920851271814271876126921894060673775041812730442633651897465999685403249851881019501554199178905291286068619375669903940712175053905493412810714348351455135494973218985044268468459933250769180927821994552807893902624570456161684328393496215629415981857514978891036089920854793014258510397389464187429284863765756798088982219416994086031880299845935059042123760559368221463430425178690649581580071988952395863543257545573825615178465561635453715738338523791701901843206327558463574389991530001162234777697602237330008062391339023679519314169793004505325953010752366322992135831875802381491060920103075064055709456751648713903958341954002918699698882808848779889731507701420974749099660910162898276259688322826655834180810499194456214720516520620746970035464067757994489290671260516037924425428537487483864978905229965662554736113803245690738518652270873988531861101732772648630068864243881918941149308217156877580431346051671604986599375198965289970800394641463444017551111120767642010011160205865471322380985154696052217991156234770477146861990461979753969072808933079831861944687410043541915808605322038409083582389855356530068174750142577196840209987995073933789765240111796185110496132692440607581671703486621022255801131713026506394580065860681061689381447843378582688720118641825020929056220787288420356345950788662522630721239519726124545678387916299524157765232238332211871384194474479795831762562129162957135522026647948256994446730572961673513042977869661791653980663259087349023184416695285078328795736888494954280053604622790124929197809127189336418740598219741690809409120079514737682166254123472598917524185624739689627088338293182531148840226863436225855344736894622169197752173893407198576315431813446929790919559474696068690043228311753493498534452583448618231011006160841037580622786618473027244481943085142186874789041141819293651553492514537202832709884747356591223271946243319533319877104482757277327880330596736188016028838447242569344508283111688278736578890177424425125390217180471697088311758316570068194939669594822609430318017030528005137205161111241184940593429850215676106563824153487562545303468457137847063023096837599448035354142835207157391597917511587772137963197380186498853619145081928318702424310742387044134030510544701168665952775420894501194781587185297957059909813716392609312640477723552114438753911287894783290175879361728981528282550013672939430734798323256213295678836208101198295529407765618283934826146104814344482112132501554574335865388257830736699095712578735863189748826379086996583373868390776740612541199829519990600825466576351991804566425419461812688502224119199079326476777629974682787020966149847919350575482569508570891957322884009219671219946030718028177216404028416912636674643328110005437257980987722007573194450206229769174710510578187779540190247185719151227720703902539892789459703059928682468755068600990150583727142849715389713908262646150360800201282908540558640032097307883879322322410927754091800252199591654503749165253386239913644008542937225908738316650851897621826420245373159730901341353313283934408685224522193696517753584940067474716462447660098749153720439778608549439462022358811429770735263274522120455667392609295214131935788443513065489342640478347956757078809420774544376419873652612314248253078130283763838541228528945271597534274790492591934951809776945745290473674119524334794850312686590983975999948171968615922653982627026107015830435708175917257254269150249450852380248703845775371267501990984020509482477076425661409210966501881466721995201728463475202135841322628671693515449733368895976272608049731506671855208955141245572699398945604306508496036528846886921388649784836613660354663503328178596146750845701964494494526036506794390227971904175137358920952738772788461088128585758480149027254662404201662554057111956864329401648805887728371896574673078024655777333927414146503463478534813676437086319584588602464929730789502805685524724971335053680812812764299893950676141734097665952520140061761127743373443111388840927053844960917910385786322668986480320185971482116353427715288456348882858029053206136792073633281411806034978399182207001772832248872978671924154767492344286670056851810118959639597982670712147760948111290338221691162081965929967537103285758592409764976711129441602463657331337987718459672126945627981352247170275433653520465590030814045332964219969715344011803034633671238995260967317700573535654494142117460915597773532879528046083285593009658480842092244530033136000734419538263071386262192233481539734554781845280574778560600203075562057376662670848671759061043369218960149752668919660057120071032070369371547121105874518069770065148493806409833412448572743008777015988421268919986827053792987067818638935535909685611342575377151920372866267412482185252414630025865611469894408838032676225102917022076126067579011895550559567531142524173396152755755165121696233895484438287128568817024446106581815158124326686476860653107744024095904362639362696401170051999754578156249720460299194492324675630534676767211907860094868925017513364476188336364874741385156140991726107350160533783650606906619456678525889932997194319236302085424854409977194712397324651874913538503567485122417298724590626188535613720385382719254369767699218719816139741871135950674425115575286330922597562737063274227774180407892862235510142894495293713880369569104993429950917205018741044962733976667884499519629529623097210169164480465599110882724595125433712800441965637767675057918691339802218793466668999052870533645439023240710391685719156484182730113801068656204980731701523809701446942100290976770119301465581533928383183095269158801170710934178108419086098061182654978604074191091021723112990086793251429770685599822082305359558242228774681004659337171151016689419519310034975738285260126646672877660447890412193002507638038005168782598974843610332783592975406756104670541617214627697397390924851423971289318179212846292027335826093089146702651898850586720729959742471435058543118565662555298134882454168539593758357020302336296660430829960152840958151060939778666318447393896040159331498230833982588059858579344634178935619336283924511043513929439704886421298974097239694990979092765874816606869341878693091709340133968274855387508408151074092682901110505090139804603833744344961651967363009401351165684518434044584429504566576605940300081277367860993765661893442412932296079410723625324259986448338237889961492411836096426487750013368523159061661830156531101699845555145533650543745087195773397217190242228463262572821142866993879241527096562162360451225256027454208960404277841533182597601953968602781085193803536207072487263605566905996677706160015525883878610545820073004077588425991753395205927115999312703723473759498551639202145209368094485807349763391182563145556105766380144790583774669816329404710347947510405743226674048279166354563013451976197571044241607775156566792688182829283725528022285743963815127661865613867362764934609646423304112938365222408873658784298112846284151200332871992938440596796703014543274739510736114080000489768773392083294090525441101173956731775438472561054583214228173575736782499064230346095011418943953786954755380209816445360343906191442403707129190866653820665918465144414790235512427591073946473851892273461577122372623129714874915098376108492943342388779450534616315433200912898416809234241202473562010608339586891325309003057898288047340294283080251192830606859100066004116921393924252644958903164910812997792905210184985401016139953028467359956725814703996129683424714552892885116389989259397621846096545511101605891384924927689661210671276416840215383396591073394352332409584245905283517900710267046559955061025322953521268669166568381604547331834230698191942153916428317946984638155498692610861243732321196487913656493408514001321718951439326452934099998705259018416252965661295442943550838507615414053018489945141603583560030631547950346924720203843089745466478606617687215043641754039310446180150612331136882433789634414641670602359929270139837138803156027371118109012649363442976986190742390899843291777346636673522273992909287828136718925722454147011701037253964800855944047437511223495466901711663560524239204047461904966158752432472044307192787171470297420956978726185236530764618144584864472499590008382451732151997694378728669726741899624833336864904711498533304207382551719286184751632767351196582673187117105171952135023248478889168698345849531129791495477563519703821915039489707617228605395674432990271397911169946073068175277962255491585549338906718619634759380246630241023346368155682010577237676002438444196114176717560086316632274364051121515229110600606496111532484297047890191799795704468058496569014223082041600219199113108750269516325040900012485700091420831062365304279592521009591447279225566598784440566919917579156379059763151875167876172324079239496755831122637268615114058295987824149968421315927434531543688288065729366493661927362059463561866497008402478297701698679438293926000643544461335688304637342712341758051223007396597179831279680431331944192626924895510927730895251771636926594765638980248397611597968733870214086104602616993150358740175561168979399824545543628531903671246618591021604463292632329341967975483488865945734883616165726881113506916451837201568538377492729693687067176022419154847127445980560681308218145635390150553066717153629877489981101218180021355940456504573487837769814317114038879421627799077640065916425419243261822773378874226293742135737783888062259322302898175165061825160928497879820444916768453502074981953381249810597887772325699692904705474470663536995287900288883765677767817960979495490832096539429542117057132739102094435441645742150584361440296319181403206565437406055896076190426478241819441757935252271156258183306981128871905822410740149980659915465138634047025008845443507031632918111788585055352074619683797683713524464053996737763839667914367961599710790020077314481870879658509948928988590140566100105609694861220697781326464591306307453705330966789108322322873568430632934880750014420056471222926159487163539189574743339396904486030725049037605666725824708512064152385435668294677575082929139942815479192258654252458764694576054328776839387403573740128168299232714262987509948760536207017338507214797632894919432692311829507373480581068198194889503393774748382060680181549947908399649945824967761878625996221558860523152110079294124809093276883939780198006085160908441439264658774125727861335811057611713954287303537343345075925065368127895161193957521096038362117327128805573061319559046525461774288783118007259846620159122887954085019468682986613318336901963266424722009652907545154350227511463186335538061448251354309672854561089407605694531243528105624141642356130084097100757839842115723795201346605191944906725513111148173483114100805898619794473385378240241656272007383256637105226177006053702538807885540032765756727117591702605158310231878696836087321213469157114834382391644310852589871386018259671910200970856302640902798603737879520998136122850386323224978135033452303354588950069590138504771962960447866315754371373062014055815797745689395375587815782683452418531801683764930871509639619594358233994463343743567124334922374977637156042893774549067916679194136605199328093924216733785611631482012263814006697890510823811046457829813397439839626577907029176560212489205650949270092410261967173635452467182935929299351172335947052198825506920052994232968824432339332443019819080133027142692651558192992773286189563814904537691729610825289710886198063559191362673558715720060906098609206703815372117314334470950361025676016546618390903361230234891262332903816608928822739867401932573851862104930993030267936191556903108128714451604792955054286745028893858455217278175096166882015680425968005499226100215665957339882241591277165271883750347776531182038349457256166882248621927188027309857405723559245312769596409528506610218755825467196926304248532034969850233278268841397107735018113996827458791114687888329570988720101886364553967970104166313375454890422651644440981561611748087181092317566927450862158644065324759561055352091135179425962930730813346239986316169036359625742397830450348113980440479402209081426660821225490759894855740084542417396139760931902436354893462616783099664143256499075829329427998840863492994768320776238121042456208487734423400184200414679993637043979790038922188376971111849571785529059826832579133190542736529875445551461188507907247732723496160517341573628473004875753591984573874377129252496387060870169292335699243990093046110951942953311461689325597798079889562448685825286890343158646345830036386111806370222852388210670145066404751779133279691270408209382157068089403574628318827088009579215777764373979126630616334546359009334352322719310430882172322719047802762251311775443558185809025007260726366321444626697281148424461804999047689016780900254885511230683548087333196733539134950225312785071635278522457837967356129525137992145626817322170890541049393565207341257129528052403635385062632715352109483530876706647076801637309423664823421901479613074729582763818279904510450555822718347729189287162787134333767511466787670946678575761944876919941419890447498836506058513200743586269317786742104069349383636530211455511340087486111805618590733053966566628917376547078393033254170196361286487232442213546620829283370138088586208589666131524296547427613351824282752414969219797596548965486152401077938632337944554286408823586670175496706338262925999241298663249774123708677259635460165767275597564101763853020609921163487845212420014821653847325849270091317906660298497730774188914912714802301773117030233069183964212977316979720913407566191260098434760262120559335037025159138250411785079627843060707224036352572378786535148428053453026708587424679239092606350686380359305519973680885339662451042806792807513544858431632213436445943787708617593257971597105096214842271273263701106758563959911205993700314335017478397138027696250896811945942133142507095189287539392692719257606700628370633492865875442771773670044076275072715994119721631847832520793617172370896242231779891152057767762523459340203219721801256631942804693122275519913364249957521698092705593804693622158488648576635886228418427995548250038339886529027051568878690811753757093528584785213956181461225670306565057861115596490698536111840575907081493524388831511842736798366459262036724978737003311153094489713327537654990559013495504729293942087714690975625656961159567426079626125788723199315179935285345079844226239063889451178699871284710858226936260396109326025313726123261764660924175881420185471252365486173378169218564356322883931274093007044996432910853124568718141423815791167186881564413792042271029174045716001555895144453115385220954435439011074594760331190558030140258380267553178353773323934528005249509623049222477424480040158649839994854127541552592915797616734420784804180590342400456408439452905709154842123136104136066128342597473134492233811701210316273237428927772327669628709523396033532691956864259477416679799935119654313674263811204241753513068236579684894822375280526368338630156629884246227296231959656148694947332165394055089392862535000767609470374590868087018937218199181140538522238705637867152267525102031455726824260851734828842375871030361707593728567522605441895152786540803683486934251437443172569965965543816475933222143372690504657577435743333368627921845995824919118772819344320550691550844258869707726932659177526770334328409984769191369265266714480989684500694975711119388240932225224809354041690718245995719373032355378774005838788407570734483284454598344413956819295456666801648684078158962239707959619871490853562359658148884669950064648170308144751309234173805248670128025047702450430543750763523513209061586814326484011051282007393916737682093605055615069799905111109474657308407625698315405782391189758462169909578637967749942587181788349038331959963033883051307366782325487153221605198603896522562894058458931007195931781403720976652709929812971342726908201632776338139203042462168110791943479848542612533303521016864782621750068588962234405534933664529597124969615037839699439672355912026886214538985420504734633961419218406928255277686315990071691305239065313252713890315830506128720549551726851484612321154960428147412383772003136291711287427313479924542034402335816442422059664448405745098142885984501767888593468058078416866691149460151782090343397175498423642158202540654081681928887051895713699996437127089522473429806681338477635352604971129088964586739251531350248898789905322747928881969214996285017362223223319538613024753807403471109449027531924908484066286387110789287093747464944695344644860269701440449128611466786245330438234139180057002753919453894205979441919030019687394107852346630990939851126233201815950320105742838168476754551453984835730298250253553632946834558507318507524065481615857719475366871169947451221180609963783675442206366737006300300458987207907802822078486248257365940139322705689328169477848899172971441734233665175287953265026699447549767014688166893786164189226779184451715075815843230442761824577641223935339855904201466970701635269204717340531785471620034295258071901823607260307487844872199558249112002711393569327095783598223112397725278825842576313596978062644903386430136460485430175280258072871623910634442078794868596897049813342914119256104281935035383863421168330400050029880199335981667484252696770523961759558859097180432991748836349372038696391854463369701333738288533785345548310453446973575601865117433736212982294787936041527069749990214144208090594272537714789706034986212096554127613624248083500940674594377162040887173179483652919263363704244700727312719931544983620003631648622001523885611531106581173186729359415574279785037344616676837719279808986871903735100072956502895259415321427344465345723450590335110157678147895144452040358954293851632616183515905776502805663888284217926219131261687703780543567474340856293528310852695694759004846846605054570019005606609056706671561020949795162847036384358719427991777970780074796296263405298683203576474843341537364849335516609415368241663539455330636162987503579329497703497273097150652322321696247740452285317308017494134263769364136379757745745833299242753316404141734594225583856162772845729189506203929913748855571388546339417617325438027000419885890281914256654114803601101494176948752558014510454469128158701158916610894643260433696555506117809790665437400320096789226682908761291358381196340855115295867359913867765862439255728555922563747258669874465285258731965584086956414287201119888446529271521147871424565308347926128695224053409489870922198217257423915902388416681608958612070319467850062474938430817177384867968675137019059994822193317985537086074511918064803827064264915823116702854308559029513848107847242903454855886427532991420188144578712883465549320312497840589487298361449039701051776819058139909611239858805502836575299406186959235086720966942050179148927504886505819439964782948403429955373793964561604178256150693055302040400067813591602665474168470005530871090454679340602390845668771537913891473379329053711525994768407159280859706723699855417368508073910933965307111238335113853500787407907203081448157606370272645970410490780267902883425680112497218930380173352666592944106115434575314441833537972930382871901456152378895903898353201165588742375535539506308039277553846618023050033624042327886732306591424431508412809829688592330760537250536829045251556924911680771721242100415866142741556268533909263184321891202992129596068949925765635538075186008130804205753556717354324569438431838639645645957811692178948506385379219378828461766575484710750729598746423420354243937221243369175685242262046450826227752193386313005770296713858448603089561734823047897304141555647097406165372629070230823239836075799713306422725520558704173238288839546608855649553567874590535305898126381743263825120108754956254676586871607907689447742000943560717539430526907549076377814087814054216953061201514633238757590198672757640609036380678419775503254714597269679555612039468053983509113148771119776751475896611849062149726197396698728769083817656560789295345031835720838449422880495749333169439928032640462784005290586635306872240872838675653533100605790657552342816622739931097710515138715925227098853488232445685349901225201390533366993896435325057030495874386302067309233888647123286723882563163013953343023339990216976845679635707713879671749950404918903243277740556063623964702499514243102090821894567196541087857205662795494874885427940526224263636370971160611278546650354965974808465783642050019898065392288819911161905966296500552351957411961058593992066625039357256967441533762815383634589044549577375217350697699938797070331757365644811184884178489257951764870430902506132226259701036030343227750596694532093224286626974669268326962051431012437914794313571525466297703263036256287647665860765959445840258248831863820487431424505526839121370416735974720362860680336764735680199842502401721880619333686400365562148890668059995440840440788894873708457546728693819216863663961678985259437780845105273940757262957540358726218392564963894014826588751817993797050856720235592426782308004951158532898469428536019584637764849067625384021296162012302924297201057947222415828115140264408038759957936357508163316489806397497916894075354496875759117201242304870574785116689077866452121259872428986462906527671552561685838978994070829974243127327859891795029092617821765049408826237669577544211095475995956164416936791711135661380056918692790889719227471509113355143640375667666447522216580722747937313235693339141475951986008163399798833773329860962033625433463167561292814071368783669867902290798509320375780843058535237688448929332048523502954619053636854109152706455729386017560461062547833206027967072267194155822734458862797217344808489442303361557299136251611799075045007143421973445916603862967897270898127692701676536399136827109225168230392509743751568182629489001977717040798174468102011292647072937219963402490270568369128902832143626555082350534460461888933223400872769256747512015693109125335853103609259171859563380113168570795804188845250570686244049729273604474034031261350215990738868567894530043664696488384851727668300119195088464910430647167913298847780608281593737223162156182553256805489793000742804593747093581828629206219357866960646116285230273573441367091833823409079410404759232123733459167530223493582263373138092723118147650510769418347938889784173744700139324042307692569553590591155318605053428409084176423502535919634279176797847310824011017409603246688637275287451452985752203100998054018480138963697829150839942142250429901004452100807615470832878620550570381517120718015699596903722448864841449777987948168369747299154450030404872366747225076033643639392148497298134573772311708209413974515066091517649961413439827313313865454734792780690499763716119209921039919552327565321447357650206111947867869106568635182431441677227523745604401299317896698483752034964269274327779831932289690334381071296960002989842050989263278197893128806759048046393126512124012764922345863768023889669561856883309319465363179644908084381790227154023480808358604149864048709144741430842614001465486929237089549819849434135104050335527773437380810201421337978685182574711561057989699579228154238489829953613902741650346685242927852267227031516210743360933579304426615971808886353422948401779231325539514392325181752545388543732699887873165042550027933128901977413889494406600691257890622629014305328914127668440215282238726540436001691937467507492630174640347926863634399987368322897947749028404973496335753766701690297083342384461575322135050473715117138543352255356936348652451591978915733810952726782155262863401227877797578279072573128670543032367589284743092601954467037861911179844942219885999863057422350376246019359723793384106295152817739393536921276041134703446899915795080660523156466949144586155816277338174229280692207512698754307141066605125983824050287387578659778019415137408507069607851907308450887322250771421284843770197728109708739743175661654435137699232664121168702139758285226402875456537847824600552137099373770692783648205569298383324676326831567060007805485852442416401181787725219753162101907341192046844239146585001376656661834072978276259432052686347782637472115592766745827487073624099610512068215959916135335769879978351629888470707747288278989267050959599046228028714528061462175980676728688764045152280648108771900532195772860529828747615642580599903168553308861380649916325070380131515190620153364016297086973731197262255639835578152457724519571535668592472001053013639532252353233345522010311193274891425089070148881134004105513486073350932524935042061827445433545186028827094651949474988022166493911966831444834688132227381096885520520329246997621820279997283593387134751251852757596340702236116741702058539067906564552769913441436471845642132767691913401424895742939016342071325055067067565302415640582080608195841101518379608600730708855890886009459268491865285503978209075755148045967450543789825535810778268556101659344643859696291683507220632927775452199769358608139317986153255710687104904449013153648588519955047173077690754344559225012481570950274559549887580485638413887909575690050765519133953139701170754832783879586195430306457143551505714302595900567240714742357620677648708896982747788257507625855279200077777966075408716519147184391383189833637853450822130537524673057781270516405099378027555381359832278182703596671022340758763703589616061080018591870021516980667993461803102050559791238916489849725985935689865215136314003724106580002309723312614918375479525907770017926324601488012278514687517494117848086352569896051021703399463673758139099269525714979286819963663501973368691499040803221607520377253866614283370422864511737964622908637458652823810716517375773289803338864988472127140014685100034467873332589196351223883877155684885051962911682367432711001152544492446529630237102088657586530302074354892622547498020975236392698249669109280241543945638556504783898902074169017000413595099316245598556571939524265223742361302896811778313136497751561091639416108615022502113157020946860838029916087151934554839805091565467442641757894121561406802344214236683480394217773096007737648597539564018006052167761541350238705556217957937444812268206873143781333941568754140575670068410587320414170715938041029720117752378496989929132640343334005649900648676266675479180086896755102146703058762810019712726671577865196140738886040334032729280249766321865838257941890505011217532137169698028643062394529781509200008347543045739834767287256951312494820310485675138118596510765188459154687601706220024137656551753473451186688212966229341937681073565779800563602023836352695485690243299217053781608230440542992695505540301045567013751204929141672151080583138095860442332422239350824798044160471083598317538077053770133190524764476186839562493586812279614126015741041999870012441742359137808851740566453507417109985885344334304831804920375935028337069303282868097498943442036429072182330079637696289668836997720486300478098714088758102839247841950591465897602729660225990744926221827018657749597994106014461977354172610943319519370514033212581822456776387161082984417564600517309401382061491671358179717108743394870101564380738343154899618861306920594399352704247297500225778378488070850371460586319477549233680585048384523330860271723290966760559319737977072606725871535382468549978652612121560847259528413040880605863879114771986627107580517092183439143364535960917297866280802037543316887259889332572285839420090680867215034507518653576040197733052898269986782293955248951982651379937555238032566856615059308350731341400006845221666461291719097633997723173472202437764628032165255525815556440651695995477352183120082352319868995640090981999460061923045930020912585783109378745475441203019324467913964951199850227535996403466125967812475045485815610322394965581946692884890835657555296549884951792364227423553058179048182012664625059404026149415272827044051887752347564015465416914326873764758947808710714061324989260780544021090317822889789479420954907882772655852724241040586739674278005315670817751040174195937597597617482056312914855719328390819322541083171823725214025718003742562081716909849580600841692977665452979640806260538875137678067386270674904261322153038134426218086867456938933997828493146973783875518080249441433897462033818821850077686096538199515863489360435312133708746944274873523756047518798196231513026484397501775720909776382502078589183859136835690716313627610534119084823675652665761407041548695381095824928735443396919726114705685437445869313375705536967707702450270594315111754773119004167740640184466688239537213538737469209236590454274808467336832052462476084576490320526134660405976179405876421921622537125685155542757344971534100629377567919086962543341920273805672281951545142195932047015650701407941910558919429408557093924152729806782679480321659176961087045272943591933096854391593174887975447928219514209476719505834836481804047013866217485581213563969946105804964358629052505690955463163600156121370127112365972608164898850914607929905792333170644560597367575085211830298019236603541393996447409159400654288757372871779138743939377748706891513847274548171679890781695888831275723976099284485557188086778175340280681642375352738036866090796667602080754590395496307314761149639249156213289041569648341270126079550864169276751655759323605902659895872041704307288176697234434254829846607220942612775156487449776547847670763007211196516196367592769929680083018983274492138091217056255119388067040769583443360303639662376125465104572453971426667639794503000086429792612084701762249431093568981844497827544213313090286500843245428957804729987141333708890157423864368372859894790609452425425044293775369397428331014133132183967859711790117227725137284284790066857283582776749723086401676877391847474157330331441501024048623317298946778397867940617897584644305806158661456135607221011694705687129631953024069933009203220680018281689446486852388416204868808965044212409062688433706666957667914786456035788137005106256986666087098403272955266366299817556452986811847818672129748158271160582412573272540055624174239030254913478775062875138266186605135818112191838709539701357394598205047758417116744911403453982256432075370227463992545771699265279654693024744338119653984890149099124876091819224355802026527750848714716827379505640254082778751884094143631196520592050628394900964933506226154380718628223929379006599627724348481093794278649638632134380426836280186762558555334930392055808531939004438365791179812789496088325206440337390822668359408412329581925764600785347901335925888200964104870119988687340546962977256534024594381737652760024180930645395520260089979698218411918705971514086785289712161006291143532903733083662044816329940899023266770134633440339715010315037388635709318813889635423715029365541826276154093306887949801276906036883475422690378778800905716309774470904158618330995120777190567573027709076326526004847366901819619452936773695308262538692249607165664620066427017162202900070835928923406126022908412344027497528487989000906423059513016522965505125028688245815866127046061814229818922260938532114716675583068331785279263871279958177681265054834932377654703157826382092528194198198040351747675022997331172781238729266171471431188269686693355169171272812053885171521243610102799517755170421980192531373353160202621777782735894183221433144200317898281240026997244172312606991674703158825009903402669706443824252477078317641452635630885646062514953616549328821228492832388969773368122086201414902875043718487147953110276277569115362422264048920135191761215376458149670671920076368863943357152727714904532757997769983106393842433883266802991011483324180150387175958516242370614549856775708526742069156455661433125197204140819197295119723006036619012883318091691463293572105471315046317058287202597196707311533932967064046545336301012153138264756880840557288666956286409502247039211232273295443420113286263822882058548911224109029920193121626362690289183247443561189743968665637039358506208288446622290538486654481983660855974083834535351329770602468492099136094780318298255166191255420521914448155471475610251477023351331180809058982862854381223955781069254142266909660598132649705720657477284451296660355367471090183090327182948221022726580435764948824469631179226569500453267327764960872315730477251186308336235538454427667937769882815735499502863402675843631541223047700147006681276539877580847383198779390869012642870373790808844108121534247713714686228717226967077019374290476395030149543356049049086435598969318532708720493599565089903776154865047208397383429497769983509661378323307116428823149515106611510642676972654954838560533622748971190240637558747615280703159665124470009088971910147172914676304822438618953806773202851811261781569571169019123008866919636391501720149677647209271292686501335850023682003075572812599286721823626247968932126519576750918256071623814295249097307135284148550080570863066137138387218092779196946784869333577079850647882828654582162356307517107503716163230729031535875373461489115393775734197649147979861900387991943649441081750944311606101416015404780487865057530721719393717706872070737978347370686902582441572161697617862104388764947001829817733480233753282922614255702859530792057654632185552967649536615479524894785908921130566001111316121041103383119512012569798003204874333953850767802456256557875571218006083619681732247603178551877907304990550093749166528739210433970216281295209817337356548874993887078953304002901837413174160595056670075935366666047937577062345431674840652439507333508811622126351475599105855082565062374644947924586383931357737652163589723862109772213909799985363001300747410118950858768012761248681276312069225415229945855598648931470674773977967709661346849639380683030858281655202695896391849176661464453057893119053217664902432532518387127536510583404145210095431670443763111198637191773930162868890577006392865029013369124529052433685772501511988999738506069367792082124481819895433948885377525198827239043391652032582713816976954946306629699361072673877399038316883843658588940934146609615857703143340136441550679654748851018394781185850720516792253104023535188598789081941727036499486938988675716186123715792268928350731464975955235760016117343499847565834278074764855138794754712086545179374242445361965400078340474738758604552651970558849033507599224064685070315936386768976076068489894387180463542079219858897506941530472269185977970863371346863645950902964388463984029697718429144885121227788468766699075258882488669580131048137916600799151020049241338406005400067647096175484773852081124522347679136795320663631881284555289533973592949670198051723002719849096496957757297766720952870769786569323694677290641095302067518098774930794010424331540494950401318581666017990688471824772585705025092640912409235611433260962581192054747301051944202915378916619239837352123770644341000277140317498791302515980676941188106096475184301568386448052604344081293890423053012880249615739823871663013640371601844021181674097080502020347620109658226717901116951412305372194613047642516924869615542408023184097691141774309860167149364823825050147033091634618823111984495402834862056929768375901698681378990785439906742088559214240679842047651281804640722656644861763332983427235440054324775651856812114233584382733322533076835352189942518027061048726938439571974266487292548532075378403443683610247819941694136155122365204095295826423492422552660106470262217213748628891609835985555474987781399051178260925705833583498044292757050298019849728117434680316819760376108255324152600206925792678484745418148989293952281944011300616133371153684925442684916237258987556424660587275045874101451814335838162292923199056305551849284608317639693418054413858964553960161078371317541063372586604411932100574041580164195214237788869669420281308440538321130067825435085136457286077047387408541416992569405496484589703387781665105761671477636507904831162740960390320255970427949551548237157204759331658104820839809874927855112258991675815867122522352250429859385974054156575704356241554811760030430358587261413507400295771404288162881115474953415530533030119820301073420608696805366240700196775097235809823430033402418512148222753106881306221956797122935213315227794428067198747211074200408160550828612925039016334167397877568588747359625316259180883920414388191375908962192433801704508247299695748883399430866453691567640471332780621332571690246557041549006499388912438343128686189614388581939619974058446417433765235204622604859602871843887084654393390821837431682594894990249922331455751836998020813548315840221225129113701862864984646825432016344315517632643243496878422315085203612382288527665274495360369263198611535967534252430812276553190069674593509476474551956988463968571715950850989979014016800131528395055711157964701453469586934424665812291272114861348996731851124779001141391808355755175535094918814132706099212052464672051764877689082182447047658363175628104901829806810201640955878399967784590007689762090052549989048510885507766810693721022122749610896272153628091047557299504588216111275276697016057661856693825982430550617769972286994384523922880948330135931464553596749577892213007744759089934810852974260206242641486078834999138088767517600337657182442178299832927403815881696374706451444462115167990597398728132666212098075911480032815820194734049832411331896871880640970063532472406669154892753358728327955263704614047262487053781322523233495135699350572386327416988582079935086325177099706261771519200312180355003205716510969074315969462570810292325328020923485049818622690213329510630020122080396111784215842437628167976069110917875194811511900620472196589385741869914619127311137065171158367352806565524533712700658431242492964200308074922701238473875111887707532478846537277696745634729403319197507245064791135757761932592917516132704974632765920482589476079616382861548411799504825642169727157707187528510027133828099331795615084846140845930012857443414389597945757821745660737897327039075073475587510510234136722110693213835940613334021152018069978394820247157123059372479115935842602600616065238725451735168193577867279777504287752289934681495489078283050221704500037489160312919216110005391065044653098672336136501522517275645997361880818620918610543210796219361117968050295224559921243998709531868629625721339201573284711465311441308764155629604800038502220446783340296600188290625476758764807772435687089650212046935131966740099346703730885939272591004518225236904650966978137587355734044443734199745876912188672746206161704938817236274056224160812793979038978024782145589133162427946033577958491623950805997613900401239843446133476669777460679997198748674703035519529425107193034414217556757839743897311606713563996454710014729963709567404265214170076624446337148308257552948493442131988124530825831541868291045325898894475671100064701266151085904792352096799872649232256200785829622197622618527931069055754664697087687465378609791908294630056453047990431210466773065624484833085316794652777425146259171898504713415748084667183353685392441208880628193568026521234634031782413687588531796698175180555881311354864427263295704506558846360468100816471562966609488575356169588845277602447772705243008057711392602255818864596001132230239850842960139464997443305021710810862568959421408246973064611093370276200226342001599048183786372255550217064906319913970004482641684242055667754716406427948190189169463610723134467149132099229397710891676701859360859345984126158420015411319343130298383776065806302980407561904244630593419559890392074842004072134119169624393845012634131037358416933222128418907649530589560692128995331979561146234542534914890693519608348293712947661699397194413286036838263218592752492853908424084784830036659456083562831380181946804933464398066239672108691187712246675863284991528111344934182943082510114800456728073710090663153724085336009297740846595702436179773641793938118052695979560400175146914296596236323335544471181084350972696188613528637146653761370490986722895806427461573074728254939578597987876273587916247536359092316921088821276565578146074595405298906720440017042749457342686095475204878535173862517620716427697323497163331397287505370097564581482196293038336180365669605584124743619289378171147788441455090811388492298145799715517589947880574633756243992059810710389289180555776510759647553662537567207647612644617262418981065567253874732938738650275019284694146161287304068272719791530602705524257574485084582528200189995928419879254289639534474044408793121118800537762986582402533561159527468836553203402183279528172092823764514729039547167523897604454670791835815504367422871309989586777158555899533632557005876689604585055016556688964561347166450972406540395027257659824774244355737179932543224145678519791330180972661686170459654625510142552520364808946785697043379633094497092131693494435059651403280981486194679845294908931562058491886137047641107432468678788107086863115770375595704930033077548372288666420088364710701058685733023856538757861861271816870672924037670609140562292541226392258426124730350728606027679682417100392157761252185094739763261629351867669377717863885532547798155073389854988345353326273808580896701043665879264745782877831055898788241622718758607025137268754765778764639554626043111548267447031240375693739531480234463924086532721553980947333474635428661698456132129091850254152046305015785583162910897821431092542587793752891704240958269008709367997790993165995015635299897286389793623547379667965985804090979100417868547761912522481751379381574491006322821686205315330796991238512794040389790594643016107944492827385663841417431850583116355856614410198844935882184177243624626340388079859693878605510103611308344169411295717617967440086203461830619347278010932751164287537231839334728310379939409543041684121920463672106461791022149840889159855222155406949050788766309755519100052137942852476086392116232712007666391179599478795792746727896399560674718603750489568344286741147245533417858864698364932254365546057661230517215184232403013230987628005873280819636230950898049567762986544620952198097112116544709372162442511258499824057182804130052780844836415774114342412915487078297408855004018850339436489492370101420308823432151017655703038541152681184080838426739130220158341126591914764105637871502164848613425111911770259721339814031269697397172627903135789355228090677885152613198262407708702497100679142688801403185539029875867020073401039827783404570372533055170936666342783812915088713568228971998948636264107015464495285163228140006104829709365964263590761057759709924579370670801541650792334818647179425612552151822824853929226446190831450246780338240654551487856335624831969084306444742843991252389641188505179183128638010025562461476688583721093593500782112178904562298102946764559346643706416034099812561185414153387247132844455681401416398046199602293230628030096208477191029994846648492016617627402469899886686662331367385886639241486394230515274134658742907167798807320612721242238325232211215464953768175960517509028848258887042089682242511641182781395698237995244884342404866064855599655215117379828785661644438120951154309008281304383085967137444354262752839787896836677961240142000526207431630681451369639043781096661421784247203847372298430602359578196245766578945638635794782232145806868021235416772408962134387182508103332733281885276882429155807224885922500911256425016540296320875385854747980251728671794468885120491686737763958904029143315443220760793795061291246313860912132829807674371084402686857147619864700003970210655560148022975643573268728069946744877130358947157453138700997745886322679184042061053957234499193990490048418221695090960654604394765402401037422289855996166074465942900542757024292825372826839806534878230323823886150946935211247119322826084267938102851115160612882154042608363833855287440497844382633538086843673908078889708171676219526226476520828615018473654113974853171454816441885236470535922049963879461372033342343798072207047548407797610643719479374925966736024873765176595843042425327546782310138136303337548668186256750661545174325128926461519708495656042468118748883297724167066767447324572479333208711284143616008629421952051838537284111961612376001586139228942347535488279546445354011582844360450116337502292231200200920869362108523319551445580406904898316984731587687651366459414608041286478330513028754138954998484391069750292617181323623245939126380435994008480536884244520694086727853329775762408880182098394873632069070620354164775250045187969735270979606832781638670492685349537327178957931143146258403341955828303338226362384424039287723199047079169919276929051384301774681868323379745591559990040586992440846890582357923337995687855077380932985311023205849625154309050923514497626460904045405486782205661391315022381562247026099351202675864271352317390550677722796119925730581557251483352927457472510343260726410173107857268237202141713984779968961146538294201939641676354558524645553196901092422886975113654621263624733861375120055746968190421688391147324770644176815353869315504462270933337993225935898961067917816595669828084267796215972475271606100436320439768096428885137260090576758099347536873221385039502633602011445521835727015878478316716283466349707738854350228499120476112557583046942994176888089973648806804280100045569710995759366973221485982165148372740590566033030559881924900800853396106993069514384740630542119610394145462430276896405889975067417539398860969982311105797703847830810651618969447965657857715921561684893641889859180421347842339768332406198540356166635135793415288699300784546424154871008568556959190529576120044781618706248408779072655588710975330685110047643817546857355749332209585050976011349901859552102301120998174205093557759809905249713794060912615976033924058796953542996691068301229613256304580985847896500986238900058686948090909157839015359193439856157141169733116813853267425640672531672438851918427206946140046620125041965704184771731684803733286827499090862873392199401707848557150674846884829724436110668776984390297541853977877590413576872517821151372045917568591838468900983337662590938788215749762015743580439073432322026928065484050307914226599705879800457096766203241217894718911699057150256704164301402599104257109472213014768275553277467322321972486145231768157009904869928764672667817997967814547186934417538824785149018300903255427746444285668195167896557775448187357585401978084395328932846489524355145125962223207197846525804842925340224813616155695194483952299406778571170612576303704997681513571472150377960312782689237568116750193452820928715083106128134342416459993113953570620159906075581417600978325538161551362751690903364528360119739452427803288720224468721415414436181803754212742541344715434776086991061774132738581370442675991883399771392046261221949188337223056824990788713685682250607870328651286869530860390263543332803619488279895077584243606371727041061583857759406004064463663982529813010048354131452276557966322362689759495261965143087991343708588428618372040870752513953550505162985981018785108610678407967581983405503723316350898404264362225324099670229628591758845672246759514339083532644207315110155303904360073660906588726486647326388751802772473330952548407164949672943349030876446394667124020860874474675765192673757831791356601491001008272332399438683204285541818042999426256714824765234316981466217834865129226486554673620498980083764180332663298770061060693553950688046171407228943308344374928462134263004625928935138665577155662478614650879950775415309781141748724375860451142737047314092302048398946654564918349831517256045210084431039130611349372372248901354707342184728903341499102589128997813005782237701747916793416818375131256782160864714329056660918733770710062457759225177256279889805714195013476631470209894952965970069540602398635755621109147862856810393626317664536376452555587745746867679788865038229343192796133078256010683041944088114489883355057876115733435910727333397927703377817485021677667895550577056278553338337562770854346845242380973647654325340779514901697767615102423390803346331093018768483693372107038147529398148653927403524782948872119212455630522315177888634155325844404891911289196177190385669666941200409087756781791640940165383980429451350242170780640322950185963535160543762271894673643056270187744212087787265890568945126909122543701141592048899201936407446003383094726468885848392509476213553940650120413324607735112220024077000223991876034146230369250351436635217827493013395168587912710185027616662206061324469436315552812332410890808909549051384848632431723847205138267468347339245789868396333818894602421081142276982655663649051375168986677110120983587847323603081236061741742868726542447781462444111350396149946917564699839577040319594805328479236730287363994625270473716553035506351489050117887765909090733004060511607177928950280367771096950046551963648439671068865889499732299408036838356162066224603581184705271017071429859916959360276893876120994567428027658132825425851022761355882333315295228396264232985618599525383471467693870188901866931705458270119619694590468183817243197181331837820670485226870464831161563997073675993121055798757297276274139842562313335061527040783147545159124188319644317295551422564099109261303284179402155676614849438620999353854953797308521484613995519970674159900774050810652725295286465100435341317374817353715669257512618668996799440579407825006138855431553179997484465069170727315117908403289245559991426867548259230346958786860690259122977478662604893444023398134674519847370573798925834236109403714828418615007599258160600457602721644019433601478822084424244966519012962989089511934905870313879846088284626852352999416881608350232524822130085630843546616256642453557648277600898089978385007591265336939769272641097510172777874655118784435650761127624681553137100396867106192736568174516961547691219862614674688706908680549835767045170206660162339023907631489734363066795824080553965132911266903493335929761637663480122196913957758980745784888647903055273295965993048372506674752972569134193982894919753687081815964406339529010516347480228612500493745723308343558586344424395725810609007581268147357630547978830905743575734302888339062358070192677959190701137679575666406296346048704100977567093279461638624016910300582234552450427177147461557570603735607502490978821902760415537403200541934467558391586771917497086718764778254814029546949205092147320747807826760858678205754157061206495063402193691731090002678000696178618580335697749751958097095492110937417031222627652851447495867743347735608389045271474528831346819791242437789383010276636653238722801572896591100905274484966493296202405083094747866742862263824344761327851456702738801878416397033588862396218469137608754500809739916573062901191187613081151030529079203148666625738723764347007295783000830557260947356437436995486668259883998846168001138743759524801173127492325354249012238059144173525220628289472435451536220852312060167393520517107400788825955414266547180634521687851427543432238888744570644516523169406677513975150494025514548229128466283754968033365905349369850319582659200124917488232972191621360983221913499539506063179750991456474951360434483275130767271887833785596028278625107663823759244334047994882286694984382366142397457553552509268162530838085359318945133756492681656881520901106249632806151860938835073559354648291341800164708309831833225588475194384174128965624180361951819921690950215374514632253778868258024860424556233975169901254876978216894815092298166421125188348982262206936604734725027446887961499144436404698723550574309668757125756374506825837001517427345275800055447260886021824455780730594862303574159660987759668267355583909373343093147905135056856815871921069507261999623261899696231469072952591255370817462942628174999672724334654281294773299808916432769471054466219383087808644165692833528134459581060298901568969734742116792404238715967373022826011317754407052389944902443364693792361569872719371570887664109697465466694261392073152742185693430231320876686277793601163205143226761697027577927508615189348690399679617909471555875745077783192029566106952267525947696811854946401864922091341941812177030685199589419753254323781125990082896142881566721529978574939585822107021259098334614110415756304718697447528084777043738023910101245030342701447518090289724581777226207092676419965693781216615657040371317200745171092914620062393473898402036166117409000949316657572379048778769117015451651688148023150455874350069758864083946808341670103274792247273918948561244029460124289913085115034577037179943501183888646471604195571539425487478867565459527489966636223201367271232443704097415531463497767991243253709436190397684347459407776648795399027801753940497319789612819321215663755062651476317334067526111136000540771910827564734988099869483425081854714621767094790770801698713921375944684354150108169561846456412417915323922363916714245703383260533163757554391384351017702506446528548761602927767157749089103805693004605076807452502646508071619674969470989560259912118664277867390622013668480787146791273320086958103736413983572879301298330495795581324770630805739612291787352896262963031077176223027125342028551498702251645887954240462386641519412694791106250131493342411686615278143979982649563157799749596102854232875366099751160067448261718138177402415130544600056427411103562521992824603316047983420363666569613780907697378499426565829372822537979323720554518630679623254664440938588295524922707183788374150730757295694731830802632759250084401540705482150239418971236970519109420500178870209077437902058255891168085138588748861684955654178899115633490975835325353498775040110692451071409538173785431621307529223154978129901687282929255831972418278883476549470011083376190003916795619103775196568474377597571520983748022680670412778081925580527218216717260116181704050967511569807863766050077361719493055275177742881769048380590362668631608813502475626853554924316680061929837251479942913447368595150864071037806237911826258002372150671512584046813493849053540856563811529613693530566911744215363060976486870400691064502065908467382538224971385997739199109314343416964781345683528810969939201962577002137694321602936050608535785498665626339896141081172038215160643076452829987525835891790186845716097708926770895098157861033566446514546386236929797756518163069730634157844437598317428218390147829330302281520868716663003407982006609427806389319416069527135553381087569288514815442576533929940369853108891954984382556521008602461052499708390231571627411686938816672702134223996993450481190946365891513553283977110614097357907244632932622280676126786761294909522170002165219125096668131073170861837865194210019416275965072854192246306245407422238601875963157656449754362640762746437447224467641530942668853829893049346947698277851760489133474165364851886008194150781025962336338503358385673522746841107421232052477081743397373065397314399044587066834210475375148677398966738585995150542780993355489842080788407866444018878693727948493776758272761594348117960136971364436189263147414720734069333363062258056470677448075170160363766045351590827244816343373844721166290921769308566602928996964473285515432988164554294399778423248334785725287741455872654347632635457861148413707860404613456816312805670612458542227137068992905629394780425991456521097715778700252154115489520795267251377332169114529793529011667872876779208010529321333268860588595264558806802997784375309625423259204573046443698509157756011713717660639894802183412080171418788614616228693409130608485721245304150707031623077861992132594762818024573340578363274639164698146584219266668623618306865109911698374630267200677197831772399425470681733959227589038604970658040483198585506750926966943765143284125289887790012436100242082116738420392372141810440472432164287890939697366099077249222140605967014990177562650968384270186287641321206597902448268659851338337882482009990143138340060322908597402663536948097370088816713618195271841975450734206248840601927551035744328522357548315290279589382421101753168211684375909049335548539086595510284414833370013525853121825279438044610620842174880483515621208457044517645635341352644684957001451532125348909580777346380126419017660092032750444497512515295522797588008161001170658979347281553805577051873121860941216299404470147661592026600208862714789589313538019501462038138587497403462171537904573029051168481996062673098077284561282178263824049299878870291234893856834221721576454097907659546461874319433819588360309608389479365996726785118840407320142208700561651316810036054250593779650598169519663529872759905994383897739756071859429593996764656612265430909390653437723532302834555020196894317769045323545909202468280311143397190966634303114780866742699239029400144997674025690624781694631045370282403438346562986718345626821778071891070323282906384506812682398092125283539547092314240111724554953116243210594549219010143951264008429408845849142705183969259998796768775414996996711641192983824752720467450292416316116585735948997123577734065240797059418064929150135070480345578971230532534196046684539948374295153656938536820046754784027045514748849926649114003224251255266200513608051193249769780988337980388652213878956079966399828979573169520287053476480537525340655230347205798905111984841592012509238031305384210872037180742485541864863505744896260621631700017701649546987205786098033655817938569526487908146890976459009913482132393399382347525888497160386458549322291369842675367451274571391413424393325767172856477070363053769724695544263675384863470816059819547226691468769226349708387754598903479732730751879194561488193832636358149536915091803346548795924661676162114351958342586405221165868798543570758550277946301143687921541958380145347664093359772007747067434906075096582418762401220838791280499539477516054556670945873307527368615654287864323802889094661907846052287548038336252471282812059323372790280181678642921465530569152337941555540190863928184232233439980079728637127307338621479990946144049107053130710325900112762324665534101869011870629517209792818829716775512713514999032399819181954789974869631702996394011912979138971521230288449335408453026549484491935528471900270871341898403191790824896935461383963723698916781331038576520031942663086653857988008822422350807627450811036785288522090098408983759040817888674375034152886949769023280886846558166404397594072968033973173414962746604318002288195622241626986839019190293227722705119052560649293650843226304297955714255323927679898169751584743195343584852982150882023130672551802895636336303919778692296776967969941044663377249357208769447025503437098017023476591480271398165857723410856510139567074510662454619969041784130879273591104602645066980590256118994363566295648525851398919098491807790143200272368829370308788476172204855078851327111498434253903168561686704362160588539103320728773499364554138602767287733640686923637663930653372039208081468016876816551129567988604291457587516407577490543535495080027128351783960084822677950804905901679567119679235633943176367731786308992054870182024233047605377982833559851128349442962303994844061959428828303495294602696480318539425191399009413355748334273702893180471650303079105229757725778011774712323782441405372371604732222725201992560402882148519788419167656510212949090379769114161961907075396600600650423765862817960146048564398297154066946775688021103737314374950106950035155337441061206029271417136995280552888752491040797902760902697164488491023878878839052280609776442626357835417780172676041324622780892470821799755062345745929207008697467587625868056981677900909124817787476773924069879521315584860031793998159673586406731341106705659209040955599521032716483974807497586262264686920531597570043577549772011816607088189164398046060787671090702067081195773414348342124248840538662791888959365366618677121943510790659306625686958947005817624363437707769707492703939714768675289653206425861906134085623720984161352001267984598418449271874729866860277824451969115428852157202011351998853907222658142589166735803522445752932400715523753178149609321090585409768223145338481871493780334309019927680177144686188840036513985897868079642452821440690999663407224844218983277471396339556805844427334858372425890189549946125146901525560810393948969270734286283105593325728223453141452511803528423348659997430808003260784459892104533104715852956954676938925080816336591817728769952139184024194863516869720217684508949221309284881308939807566333420851106416318870714792383796993634523245777022254455664246989266459906884436808270671385254139242569630722653656714239039928963406220837156673411113445725389549227128533315524340578848293253764124369247934993899997115112824294571514293929092159945283831092240074827582159901996497400387471266537687116659259158627194424353413010560018156327695858888721207884706194000000750592961746869792780587991629439759208998142391380908955408238842524215988473051300526702819463273360895835357814340326907691858890696688529944581254637241244402091876722328740662076426453098630787498115649950968014324018897682352749991052179006679797679404967399490926758961112939057302781892168769072585407271390908291956034640624642993980085128683496718225099879663224344884673510750412602001162655277671686506121592102783433511185917824224124943601983325078447098867020516273198491164168287470551463984679406272541489615321076165715219530168008744829224199589850768517088817642732772848958163200887891913909321055716234862685643160358991249902413565151740163575586954692667621681412619046158768855798034121002859980099584774222447307862762342168362419186514031739172534874861576176330533370166512256500707660132694312093420257739038814374347389027557411332420289865771259590296510779587400788993536490460770032839919025871142232634262785003148367918418463222436232745067970911346101207108474199807866323834063703573217480419587595776667051273482508945052340429774481588569839174654577859549106768413457884002462699391208860200954359324827321346513928671840246572070677815322757729623250430070789914492520637247471191778518865889709793202767407756069703936709648558804518160497393558081225473427213385474710423543061979759342627869634909425411774386159609772261947073104220298687302124627192940493741306801236773985946867991907413458400925219903497100081550414118347858584722952500874613831219474408215369179898884085323085357185805670047959160446829033153654803818126738252086243616559161285936106757170603333821137402490557703078418228836937874494706941260050183903035418181522895074671082277545342582011258288930640085796166860187726765279014655757179380419757247911277105167489162669727147960094821841627723902887046014258172234152018694761350688350547729351102235365581574490422591183971073373576015132110669245761316914982550044306407533167065203940086591208520488198041991433233005381293957775505250910978857073944697937954890308863105069838634724648161813620443823808335963922650179397063889363894418306020447149260974515736355480920699820833122998128251921317220429661135151722409825860477701183596845991512892313277844548683861410174399375268868207360386187350559666112006323430066519339908810870511972414732712058379098180845157096164966534355294526218965476045335783802527013876409820484305635742383017620627218020539061970391132626667574651792646868117637128012708143012943363955069380824479322617663648326744757245124078756958128422303354470719586810377893620125408215642189282869375363865478900040457493514808902582996065832945113876412360693803354493280609102669391560162382545257890658342566635249128508826475147981079260635330213095957898199723647363911107327389491367783274916886688044473799533659027850643579459893662721086581354474361773965948230279374686560615028714196965408885507764430305684930062474166360492976544100816264631041717215286201398043853352726099771026913510118104156774587866817726051755691003352647736630762658806230862293685030620245635466470968927348393198415244656340901416451349683613468547704877169814854530826823905679836567168967508390455673396245837591034559717575633653494030638257337227545054652246763419646071171804846033956420415975189539591069166581225182039000666217961162858496195762196274082227673577190086516513254382113753796792668197483218732150352194397910126087563430511041065704660576077791746800132970633862217580153130616263063944499730843675407362871817340416871932942742240501503129499352149886166851549055638298344585765616743738207163843869562486710418698734778689019292641419685785526906116302867248375542139735852642816459306367541267937629354829823037648024865053133474046876773660711609724974494338147304137798092865690734427561454603497518093114916535328506888425863303441367355217483448640098736464725382123438542155968477416596196998791595236350926227348147562833786464270038538362243601948763353974178453110159379575744526712858656611066427546917277232232775984778398135128350997629314627230726860366644500529310214168059099523918669876518257950109066953236191952301151934787620600938211154540988992735105564216114049019625104358260789016520710829029191313339158267214032360947480679416171709444759456390106643376418638204036404745795994872334316634046787391744579460383744724560259336065407844953750907165473777082974725631943469698430062984557140711688273523222078042557031281323574280760591661659719049875449214588069308099296032888773036465419647105212212764775071858546249813801344594365580932581793879265297014680555979193185408240949999969324091847204683963193956985620874928518116415836135569279785242890409017075400886726702519068097154971224037889311370965620974918130785711310931440023972026521286410099948008891402759003022783934918938088124078449371286453749896427068504380578334581487992113976378042916662905956766376372859620272116226688659858642455236144335050390711443899563371718113438528176042906301406054850355431424970403973405534608286570620386542724616070208056908507746896803188877740186383823225386747164142583790232680606546825008293345936323144067214880242013833411361870996263726292147548960154822458321719362168341953067321020593414018954239166175015527405977073462980278108455695406096971422084911301327356243114647287198509696585057252502619163219604076034064715227452712362153556005107384668469074554202413910631051770576301259597607588937865772659312864902704252573644084907053314412207641537510489930050111174153602735467357351686612023735693844522275481135055361364796651642370527277701724598919230942505306361230147837657940049780498995548997922355028661876420168769399700495242889184220319346599142578384677421052227982567685259780470840475109217115648138842822149793191791249120166330766695730924762416608676447423340116186464754722677443382195101013075984017735795396807333924131736721751754152716365603078113267017328447367378914358215776038328092060627506185119646752305342957400839116060568866888799821552459756396580097012499201732912145384090503988873621308727692734882243847455697814441812352363582856904293481477117465440210651051780422982261766562441640573528636382407691061139053652876442074819277506459516573939675489736826998600735923410490213185724858661970262636643141237543275371006916307505695159266577512883314198079222861908379912812065755803825751614823897066837833306528313504346458831770870574937223312125748078625841924528133852223207918240648643071809189026727689766485480646337383920514442422549563029820059125356476114951521208659043336568872396018129418170903627747492530242402948150147258790389292302657735589276691061939080217074815481166309627254902102798628356735338537664042512143844314598831415316469718628905052898053101027169409343707849942606493598498034673933162489044444100986649526298775877027835713953571724389964665957091503375065171876178159324798729017436243493394844322071336038676582736085292856272639790280023357948175963002117659433018816974399061384586656069490169206008254387077669811053219595345788314362306393350159965197579647324523419366129120983173308407554827186808075881558078853978797518040639710895526487369494114059263841141146654689453501576784889105951914652371373659278604400253250162689840320435348606441639063605327812182673042914276208411021401123118526266050916336515649030805174116112657448558772738153209480760305373111714549532851448601281734742678463615479572035663101664628342670894986853084593278333437050081981585483696517691545059940429015159066949638829184551498121009938259031277217290853887398425036168669688983271557430904999390450750676095923475551252700332653602034472212644184015292584211349357828712302274869423794922015369129346079814870305933909905499316275503683137958771892621535839015711635914917596442557723552221530302726131859795181214720860320803294048916085795863407764577156638114045813349160662375547675808964954442018412013957873240720813302282163352106219852779352690712589974110786876793531570056059095835474578766074901075427607291198354146979308623669660325793509084219481326616054897758100239551213747050626699291235304761914389831848350606292618495871957085462986277340393458310810872943318094099070432899701824871791776878394739490236319811035561966409518817648190723621171407456117597098099418827477124486163021687210087428883054952246772409357161483970308095806586302300250176466483194164423973771367355453268751711055105919473245644255173928291569850029187463419866324701781242351365314260124754853951886629238599003278140272932892059494772632087002992530540417992728869517255079721774558192443361012253458182382861486203799052083538090775309107651459794790414373792007089550312007370044741635708783728171798994710381631614196529760800896617238002642941874109887312912969143921279211265589019430683560539436560131959142783523534426867318729770490400822298047757676947188255350200177084513748243101708666093511315022718211923712442925441951066305933586997445834359191885559019435553353242228034764420401420721480665736710229006358058148889992651815906814122657717735106196815720234360839891339727222630545418014889264577343774173302965089254372585458373387585388153237805572956273801020505462702601948700088708349569854723043257981251471824126365438690963355226465658344261269774636694122791358192103350229556547557577194811128483787094317801736064377906909743635278849801757055175419333527029069621601710658361382958855719750117747738618066982752034599373910658031886788253877811278033070145083577553314689668251603916877057791356189621432319137112476440888358516941027553134842192593014803472601847089057782973380538481350757583765083813450490329888349955297005244749429031829896354428323544497864276872221426137474852336556760352911123499494473282869867553950338064389427414633966055066731283641278640763946480940863838149818870933958595508476371509554731656354134482345511185126193573119299958011460374210531194417904724850271723894462307979782870460823372069908749679127500432741438106455377281237259578454549750935094617135529363586399610235296346632283880039557995511801508345778609164454957847132830242540786747476152520880861508822565809073600597017326486576976443877447132815304653454859647893605076350080856969107015211290893687020417297489821916236866815896203975000071228615281103483373879046039757490033443782651394640539929649648462798067677263977307886653854189741586540254630444189863386143966634050821033207556003059544518867910780903470904308084819021849373301684828718460739795352379323182661677206255977532207809581133006862249412049717535912757531299640544995300121695183606510183398124275845883662230068666013656194013185026723192922180978794026628764426885923050152506297509936564836857891305342353816464128983017808608486154147640744890903659083701961171300695007499053629287950138496850717019177126764446207447257823777153131497275373646424057964827138338811924754028813763067655666671315204663720204682667637255111615731702236106800318177713599850410505941618331564991647201445886893098191077477397493374859746874643324952004983557394037618417382155503384548587245505670864885034924819259810784538676109048745605862300357716594825121291182823744837720308277530637205660562218776491471863813963903175127402575100875064225838022911215590710716914193400331051878910044807372349550774688142736491916115504042462722676262485115809276959261849178535362983827103282173150576338098302984323377762668252686671894883088588233465089720091964802263338902225828441954337023449712246839940330475712708363509965322910185252965860101460941769294223255242737443807323761954461798898201275495485370847819640020126294269191739583089766881993572981703819284598516051444688670061544958234424312627074376880370810430917071301263358978481793454732349804814161467240289616083663175312693021151853197290381263576808212901233392491905412679473367970514848891229239419824596156962125835251930180376143715448696138097016757549202777262011712029951618961181452976049019256165048986652237161694338542170530375913550902590527292591228053185900638855964203503599549043694806452832860247930354417113833750583337814460339407099296562362767073156852436761727264330340187449329357882938457198048954157161070438085856182690747679613351078709322234471063895784460076535862730667468849739703705846964533853624454951823196194988935599217725375188086868243904650292044372872317895580663654354534470323627239665692781745881326470310866135386586896593252882748684047569512940514479750086215986523342667111191498795192160482110727482835472727465975011860580208942532015853705001023057093144141728615453560235840096323262002549200652134938610352291126854406193829225647861868563320919822391835710042553711263327027765024830781201206788487890918972125595579956095336408014335717266963884017052461130738241927155324950816569662858982604825133840366451500794658498304622625948355805629473352518431432828624844215128325818172323541930968787154922601092298749348779257074157676965298787347491766384141440362477815030957759103689753259051942322257038789291473693859962985149944425215944301879214131648299740749913652003876875315376613772599755793449201875888460274379313448531297043797157888851537581316934934707174256305424589042759748184399142485714718666443652922968411308620725430825672836437664692274117987964649694802560590798695150576015389854438191074318303165688843700487987871985013847781885022886840343504467208404430581160420266161738594166821829161309444933326464143136654362752848663932625226396307972884130833580261840725678729978519686413249773805626999177738766286476491682366935454022980780457177768120561471963017697298185460236951523869175677510005756631271269649261593291465753470228116224174100887237628645460330477778630823160933167893089565031810277339893250895397328637071755703924107549803884185385545466294933984390799027022899812659477992810607155300398677581696083673494259639650020849576003859719710360209710869265267146414599742436567761838185296142133802071524873023489935438803217595942384070147369864629316784387613499521768748163078006618153807016586559231189591159994044795311366863803584014400866698543999097797792762573677577181159035560055131780692557148133191597443847121321015948492472948872964090924262860550335298927169927396938525841476223399932343997544087778463006796877915188545690614933566817242909899516750890549281506920880265257609416053402785390008272915224531025869040631711661728685658509182421287030529402262238649666691327910141250126373204161769938602309046046573444598564773503343899425823996786975605221439151867860318544210356362406258000700545851840329110663762519435691053994390108210065145536265934016731061499538530274430777270549703769079162044709045853026253598808748129599704077903178530425224641675071541471062056056922004788130502902302437812040456149331128301259698872669696653937712785473647945202315587097287739575846183719408773543991642331970116781604067676845850876368905033879173977539213245269665921510868546598701186340223284741929609683769865699421297941960321106142612363045610020562977950962519500118504902684726209421566918607994020831217205928602115019669113248397978917547619293631057940442747399989714533714834195383218112252252458990037443348336901362549757702779082864779840930641050173513088812459444272378345718509299022496890651065977168592999483298234888522393191807196222559509041816249305837007139477829539573885197425681661950907562715016179969786773671352191167486935857233025187091855524899088504802952681676454303091008527516865670822995869972245593201154444663302947973213485557500419765303082969222894487251780485557354440416132775960732578669757635129675768495141442876894903660492257800960755020036719866216754649479621091888093412736226711663399045425695148010022927455259344783508307241925720728135012585882884272759373553452391398797486439307921170925173978066871448911891022421586866101933583050171158924140381201644951429131459218126378649546323070428046087087899269539995179314515360320770798607480075110859596360795783847735444413617984492075838571278930471885611853522014023686321717725189613817714245018294456124305795283723415835984314811636479912069027428811396220581593970345657530335607383567434338524290908920523319205038093783461055738549800855312532327843260977966674797204934829538381504344110306125480273956788943512308320434767937642111593511032799325073112896035187661578522414102600194988130130330606289323855588388337870233311716666150363415058982891208315145249200224335315902922839902544821307059657397622213329829895848822652273696633001619534434468420527428472682044126476402592882357938277295003851818917675651972843889670176114242419313322276690128394701172782059943140113905961015063462015527872580932077639951911694666083114733065358060345325479817405174158367949914659069506153417199532059407562225671601431269317593670439852047863202201449276469902540099809670912680292965252595491929651950333296342620055637590067324228994339315681772365851384882815272606580611313767184667581839435820387871750566653161539572142797449726985966213672637910672423234115628283397661877265311087108467916963046148979312148938331254332483441452880210156133491104238302551674585214815775014903326073272220956148538319485846765035515730547064138899786620269753535096335948656133941128814989957697926527632756992412491581715774966848397259823828864611852139935338715659434888760621320334141051959023762948797876604077307679411765575182410873595359245810611807060599726872283100958666402993479111315374355266772362285834958684519554482729080070416948414603738739277469233221663460145958170432283274473307839034288564610636405397509360032781282592742740934287611569694559713377969829410423162544378982466476719498939358580423544054668417608370568208015170308130005954033565974564225778324781559137509342496554186922180299312285721964839102104983635045814336004285171844733831204286481144301073301518444772147411514634917375435439134802914895203060225650118909593689135379120798395180811757932622516899947670571486720912127882955756445761113435112567102227746503185305106646465117355179967780872803892129483035620646464570969781275128910274074793761690426480766786041129809319816067448986440102658784164788415432246952279906865172308252130514121495284110593866173905064979873655847099370663983498380805921952249489411836970289535748470009065951736980766596581231906796047462378768598115929916105498740000316897023179585622709124847309313619188576184766477228937272194524184063300398486168460080012409156015562448159250036048070913001167438481657535906345430885269131099014546148232328390602500512654424295388695318961633344902385053086380503243716010929869682737537551090054283950948128538115858418760420771603624188711831247047876765217072556291951269782604456619616767573211633470553685603446451088465933442690194275001359278922705040084577918361105601371914178926511062222051718842255619105972524009991200948518822513174482837870441136703482992600300596692839038513165729931939483339671204072833512236250089788280752279397670149080344852621074331143287799421321095267539844589328598422380714977813771800678240161956431457050896003632192072350427386386196657909432146556355424618073234610260653656348437678268543884117752660394643985209953270407459363722517936227967219781334337828907303025555451630955375733950403890833415429482970522293044894249441190030674861685211473561063841926987293177886218337000271464971127401876609249035956626431878923764760418930265151503118503338161702739097035548963826014965442063643539334378761309143325085261403172613624241526363774105527563242161067176114429802040609981912645527058578587801741990865002887540574861160002750884170113405408608754483506335958783828256612287389528846612690912166703112540509044149048147655321188960195421127963043862750935012456531088512242267379274669107186267750009254458125393655189551781875523891894317400994130905675616539498147651522842736047718315961143945703429321414791342523913388466451285991051064407830051793665360567006947495269474904399997358851432846050901982174895484835958722222012361410826720181395327481027074013519761315892981461375669087760628022764802351056173525242733898790853919942572953679901857653611439288032949667006588010939329519764038707375108355909755934424263424202089740031456839933784331450711088337186748206850273967140850127327577570626329069048889775241586327083204524959325710873048120461899059000942614479414234881560852992995904520367421309364515029245406447119680148883499995510799079629994452818646467207634372943466793323104334959024382415682244370097151202611403255336821026017707719870042638513263258362140088181639720237088359655039784704634547168789130128329035487231263132268809140557400295041958345860287719287071497439131541063263555636933499751631801935135162524534951517718976019458039436317079928751275057747851255563748651067431146750008183438189639107922742616988869966093284730605335185273214633600623218040222924855859377563578585617722157390289511016354179710319672095217842975834012493094355839170104748289019109744255587224896378158459572096801750946542542402874757172533447292483677867659645260716588865809600540120250378972226293428959783026806582294231293865474499810065240798511325143557683643454747795411319094314460725323219180607244740708272416452496003291268942383077515806393094089366684844228525580026597675326185090967996228507290471614728829904645535749689453153264328720703097370410632413745583747488111421385119636958211982468598483026836790403516732969586696704518550431016207662360905161234897807505098518471620123179803712874622249393516225495294131989028576246932637892870626409887824754647368322717806979252304367400689294314895174064910727243102594053884946845992357928965562328815725501831891944335545625602385618134600897168748641325247603540059030666612704962717696016505915213176590139050531326568278745459086650657528088350500553268111054877146005090315105051408607038803395023797069782680754564135986904125075369890826601992044716723753859271537225718415424486224730895132516922754035730711000863478754317935529314197379985594391583234232596995313254573782402987952294929761703633245102781731782293297241772275035632494222349142682807822606114297847925041267253073654079370989280341611524478324610249744823188324558599604796789652682524138074618810020690752793845884509228210021608919141713115317569788585796663518695559114312278578627449947425945751087015953386927449363278547822483163396229034169767210139618699622309166597234844783978005785163053696671725030511505206905462629922557921277137661355343822512983392315191598693173710092788390092385017600144849733578774912626907001378880168577035107977255137182912220500549201041006214439395030684887572253688309727994033372659460663374484109189959279102570042813750793953757794927074461816527432459263235542424484814361689459231587627998174031055272794335178015960260217032306315653887915950210760188700883703821163085776361315383705473295416456989242498824361077237040598886848552678322435752056324697836310428907531133409248720634289990568941757265206555204505145595871957753721679086001674219716389136847922143974554487497636946978363148680689154548740459221170281875959397260144692892752007241538196665053325680351254127057820424462326195726066557728897578317290207065087996583807438312023249284087470295921280779984613046275204334900606043188883692344584235008428166540765010770607298949266018690304698958070788741763257718889077187349106644018238481760849740093108462522295233894209016951617356686652573031526817415086092069714442846061241125673626288592462958872645112769961836363691535085755191891449332562867168052963383952350338428441417706259878897253184544147641496672192377219422685888145495593741142112111979133351912604611562376638016742668119575044670201059290239750145342633622578790451820731751512437101313186190252409062439525922576001611597760334027219270942660394026323742570598155992806882072925055541747796096283330517970386971344592067820408643693119376541752734418714117301099068071145593881728753031326263464626384156881023202243189033263212517388776391182882355135995401344418822379398203443818313875888735396531077872591610158791569106082951957532499536997001312081737176951653863753679799609373426629401856529357377682890833517952278261041423932605103885502472214789937977765557182377052896587432026624515452145153115715796096154739299675170400612238171870548196959360360681465924649025586434630229518441194411625596355258826724623356909226321840133412694125718358077525745706515549535832490714161761814212852815858261157254773942934919829832187422887755397568960173291152652862124932766868022757106455177062931316322223697675377177955590682816130870732117478329599825312910474969103154785305467967310542065897293490032619007326352819448184774749708717417720326320262912539948619819228637128946421186679384143469297836810445764716234327175610498075097503064733991131506844113219373153424441464361145379621689160129860147867439293034715767284343488640800062800139683166917587838193803986881317397027303188511224433611396526300197537220680553370728131263898368073098473991284442142263396533779562850047815195814482345056913738787566306770025023818850907751050144293185046184920956222217720519772179412751205339447487607370278450752384119218469660258297591427447841506308489732563707885532532288202538786150729977508374562669819847416166782382156456418855079431661139878747489434994611130639586154258100769165827098238232750498735736022745341534805892992283808046800272960076103527251986688355960039370409054205681074040454387099077643503237135814158003638935334135342141165295431203615454741028162066939154621315950396408219993449906296841045504216641286611416235008809656170336185106462977616723538485763791081380747862608275916532130764633466346874929808067001826784892702042518614067453837319861886360964019176382691935224777021683211577920537643292407879266923440521750200855062986947519815243110259379949131395275579881866726693151236561544767345130163412941401390364789891691818326252656382741295420324450166567179269508659198463726181278145355415401864471973511410994154299578654793573643098892533614216175188946890113501003906611038203860337002847639056908416052843873627526140714938816785029023075264878452939671999452335494865828362117121690574844474341997816301933404247866592021988444062728677684385474240583357301352080706704578939082423332013279202247704094016744086793837116417695692031786417675865343446631464149864038586886806516446210388338007657493017192552858795924903733232881614253605789213787776667960148247599010766747906795314602071244124786776308947980702045219764910409586780122036221352131884698511292561003112354963089587269765694562588050075618253259443067085001920767003887297928441376581045277432834410630855654395595143358466883736155285921353416041375589581692614166159263620035700968004222601650978331619368920974306164488272548403887917874497515094935507781368382863991721709994797959810803781726676041408568947186369303487889307220903300183974497972179238184433217889916596946722932723550440081741884288630844159684205849880164929061713729283748035683305408661196314381519017956144110397877968887324256772737446815738011144691411921823337429633957100600343364103163283276164134388716251158168740954460167381281974201163206085961362648551025271716552519627493256460362981415780781201659861137794826322379109504116379433106662135837764806327965511451445963965880203138677349136902998367736008612354425348590410317583795771815674071961355792144263709656769805523440787050304862647325434673153646739145522305256548231675078243020553660637600796498955621138859410124701820820545599324455237220078073425490601548949993210133822835951434894192985416638319550851648859377105377393429915462499664439523170508454810137118000529011743655102088401325492686328721027939612520153251189121515185323342671088798139180973715540301862494623367468148399091351234820750945388943710397031780396081817025633792509728180055464930848723996098077319444556828777191314358223276694440929473144626820302009557672799283973391935204737280251955602073622479023607529969926127931723791154945863868176425487581519065536937549626452476649976438550652716980068425808347103586407914114503883637062241018156687215765374819323707506794449660786887358392011202891409108593514761193526608318250671813051179679756103051068781702177411256815454750460823702396549870458281688655634008460207401989863317938159725122501853499953010843418638288005016474290102905097539812382568779991357814338936670970680532903959264462466797396822852286756267119535420987506943340432168050099669726165222610215094321692332023494707449721871484222367560592130038015947305776150967264732131424973409614518343413756607522399872864403053136103839849775140629227466769807671156791834978850194803267028080130686106706747901882968431954064708425290941810539233964439294140268473009584637801392174735040877441409951430629053831030828600183384453732213892528432488465597824657276421836857597765992814639125382146717707483543497197681218338899882669868704220455310216463770970198902998998048145411669000776950735181922055260323234920496982782134152492128406158138485647710311590315237734124683441208341512283040847501265214610711694916840755765547166077448862869437869947222258622711800123929558126511689950694682875240716766672962229133950987701996622296427128579059951420159169488576008611728660498411638967962063866949964127808771527285172428508676631319818936957971456563962044790984495314388322201693190313921519428321166456564099652277728777222918920294197225770828533543780597794368311642719900214165391108806309184316523638372503070298402079143562592843488521762167089547055513823172343295409740744850509682662501289883220308250069288711553301737491652952184449947343449711472222462174597981202272865079358385796590679895013936398071259957785006127132983013763278390123526059912673134948074541856784686691890454804953952057926765331948324428075826817378028609978305554359489775740985867229960195533540004208140831339318816939351427303842098034138462419992628994338423317935289365947957088441677861225276787341671594403835743346796997596697798842174546430117391677360198089968981052172647241892508647274743090479197537685049475092803298640808977303863844538489633365117885197514256425374607310367022791007160212038200994725852210330985247558113905970771507577514612513416083629284541027982340500019414479371454000280935336628870168050188984260763133654159530873215762196973439849863481615464269976892612788209354282063723529540442800323897677249978999476038238028346315256538407920552684551845521014130500248453744854246508966619974858573758424376349558592455857590328691030089896882390471126645254771016691554660406459282577568497276529690065351867633029454367104866522133914428928211329171547280421141911249216852047932834699390900572699934879148778899011213998280794777768126326441243389041627461731512696315170815836815809784927793958126770634666133878284209376983119655055612068102342152948092147142878692105466354901832990263062019138919008772590199314727767658843950238766983439143317958886616399808298538497844988165808702406311398771529412775776576264314766506186496174160186006338009650865725047970649944213655796834612238097760975460402933359648001442232489755688845744840139512753007699259831146801731867170062644265764917437734839858320348429418562614421377480700569097286623968399918129370038069205623607304803986303003449367169451010701151243406165981962313040318062045180002698758865275525783292137972426678241943838032943591256344747925896813879171618849510379381043100284541050385970408761421526973359398084476630190895077874328495324477146431719766951198932657259003435032657416592411215296954205992402858279875090521834576992878517082304633399641811847034840501735330729461424661926737085980594142351693572454121391343424892480925419897886782194870940910796212257975942627443599878239904881490046676883328695436402086654142167863517987175822426277283343856015321013738749130297628598743163819447233020681723268121109371620859774954665527159477432671453444507975461859706866767084684336587949169410828557499142231207288426392494112189642940782390347990137022321290158634700224481143126057407462696412403882630335896953121418953900251215266957668534802208177385092742215192403021863067617573105223674242476980297390256551310005239952825303442967737932144078754268294249258657344757982747406933671918635718362035811647547210975027651223653793126662815732153415446528101825314767357684808597621111960989515911412310110648228301646584339661605018991589240397820415962317778118238659310083978446467608381175208089361678598175443837106496424483577697454279746481425806708313813303822748853507521495753207432029593626538428311581087864037656178702080148404659780475256954815365827524794747011292055543964220971871879029051993810314885898190769925674286661196873540877577838998776723469991947107668334317613579425436802527658857295769111329523813053886586870792437406882905702513510457534306668213397290332953684855090368401909983474400301453418073297396762874611339397529617110319363781160090228026914349627353092968916436792962534170338251819226126544755831072200968262296067377534305329180658874131244502484424324954815935654765523196680379674105759567622002434665869316008876352414353308912993119534933495374304398037156368666736149535185073648291139259942903202402697825185460585835643877103494912668386469269743062477766747208323755099575819326353644907561558616007198343532720806760544548859032086033939552049793230669160579821594690135747182674195976427758658067985309003776426353130299131453886136330740890937494039719266997780409131829602758370679981600947519576271329156398717884529819741986943433400055085792610060933735473145024518009561891100579541065943811524410090143364689667849493154561492446636801783962255006454289789918306867839079350585161424489489520583488741142284289703980248086421299102852370526057043337556538468710475702509309472839182214776470181445264726045512226932004350752347299044008153194580561560086236553869812781157811893302297058774869084774948854652106743982798395562697634879270888098071542560864616312623219281191684424384648073176525037912174652913157696542453905766685215335707339067019199085491246176165042305127366640073392234588099653486213367748697326095087339201351284821289095841510081393210546086465884090047129099860407340210186850253933519496060317264098499712223515317470938838887612521158077686384488799253470509766552466465943567037632861660671271516016068719792342845123833461163937090979153577578024199091977469547621992455679201607690989549019889775117273581460096478433382442268556881410814251428927022157845063316654279923234446616026277043871950056033705498522045486598852388940693114506188571482882593841227433999093407013065228335742746840126825281358283948337877852929138650167343839979657980202755295946260612722776662433279284716579318100343162552210312354794157047527863642696312735064176625182851154397605153411520780378711585506071698419132463403831487875780120703020853487949779037070125448465034597534448829425245356251326732841099730756966811722587498140744136588051051334413353089391272996441864328341183247183604682385103132238676139814050444738994875550280673432123560884648023069634283246530787669517924257779528301469052518594304710238911467528719568544817406082876396237843479445727987095577145664542709700929498062003672150587431429617474090651425210964610706491026872907937028645800789594790839173514705858961281955047054437572508041321498952652862346864051362075576457838738749054667519637841324915427168136323230796095494292173450525383909317133034620132026653640021486331384359843889844675727487298316039580954800872985871535701643722865816560840399510679382546141694037146295270498366546591133210256144842953082028144803100245765475437344559135302702455608247012696287424678610129228386920597078648952339269297931652806839750586417388828957022390832882388551258000791239842114173910296793851251310416882268963247690789725031390042117203778226232930595823317350500675340587620619287097763010635175595452392488723381268278755963063396474178517450254802124903073440972027917122230383158149460750661307751007755557081874294817216666165870480014051897764210507467126657219037076400182793497947485682937464636703296793922861922721452109425049605704323990259882647908913847206175986611000853951692554292182731716011216250949291256402526090517716471750677413933222814110969595331527056278569959912070647954926819567319149658522257600812990588712265406362545780481919432212698633894739663293456458884774992246405993740666599685691613989647307851111818275225432453762675557764935759492157505737465785998145926333774297735086705842692437992111875511172650274101385679393968763070307631392224040998101096510774254034687144749805724508424610608108421001881687585681214141407746577571825570719936044467756627268955562218823155949526579356945924470626129851097108159034422880549823066948001345117371911156120989425009576402438902980055449885029426267497090942756737047544005102942053790078856652041208536659201307156046600810741828992619072822170694755433745776716458654064976301013920350095438883980199034817262734271335552116802688660137433059435256436484534067689238081930191102286658559297572348457212071979963251589579123104732998088455227676302504299006549891923985180779796619493639444290346344270704596063037425168254061298772713088780930746160576436222034945552668383796093631932320981835283366993028439787243502945660519541110053354054206944618837865836314620512928923531909481670318794442647684124386989040910626449241306746226156755190752803815509030677541401029233163512713260100931796764153548405987325141329093011029483289752366695578498990096220537995207033334636231619769560593290308983724585754468161534970842332016294398213955008706686233972743714504934117185069145585057641307230597272109071462761823449404801498681573530992985604503236907766956150605948917673428353830911876435474251626352335071008022084585788728628549954990560988063593041911597801283451459892803917051893735824893549361535788495585732006034597288074221800669898254099686196748540892505410413951069434221497568791835378126588705071418503287699069395040120512831535933635140081429569235768515917560703588292898388965313285680900001406868202079612759261762217100345552278737415258327893469435950300958990865296498861479517026616651003182515175119475370884234943139996306343989608458255683544769915944596416296068880591252250175541582849537511857968959341228890994023571021561263206970258360499039441535602302269444605342536870690096615569043546050803276786300519978593861606496151759976577527913818599571214798761770431405161386435706437939012479821074340988529638829487151192882288645119534955210942565236555055648955255143266371446461386567144774528028335073250121013401638925857079534315068374902835205503072255417485815423185044645232450875761907566696544157246476924488028392845320456194159167671508045879379482361179489829620043037006801729891659283122744418863749271138893711755606255423264794470910570075458821130964210236226702084420147885231510575267424827753563463210389482655013752122469338654716740540799484141723091597768926047550886166294791317191428607866404141627569040147280338853204380177873205034634265145523213258386834813762311843569976633042630091626971276031946801306164308221236765844503143022751798276880860049704993177397804638598516374968607449919364050058831432477296260096891913988100200370488385862132021181298597814796962349816104937819252025244854182290547724012147302395743242343548798640697302972156690165975019763352731021570633138659697608569050221634613938148878992999167719410555662077045484877196196197951826732950632861455829928867081246713889133253513241538768357245553496424751185918823063975011517938275277266112847522296347359158719879328728430543014876047114326542108313417603250167887882695105088444530526938257779827277115688426192443457957088572180734247609164926278921537708698367876021139387252916471053565429366278183440474127608990078130961708606211023062796012174790239029287670799648371197215715936876309853051253794929021339351064359867915522640683254327615688755157275687202096502792424188464898362712157328750418924270895492958592959743431502895531908519712374008126669673388204699051333725124606347808215807900837293462160588061322802144904111221698386167273532293944478636503615829231588313739006824832256060503851671182025265580538942249642015908577319417917690779603473373730635780273551780346282137892786542628101862995183479011327041773535064515841950692291850352444601426042533266971854377083751739798265703035933191835449160015127766863732352080927186682165302918843226993940330358489236970724991922602995217811098068263118067757470067492016096278869519577332707942536900639798929028595695644775660079725508667143214694026616513672713240914893132467847044731393032392154494772237994387957320366154423982567383601769543383539882462974481404054937915878605336175800275058838989723801897465167292907803552232472551468158084672543507595163905313774322864875909916219491117940425593011173257329750212274540822452456782209237507940514405704477910694752150551567745068620416061849971513663890359929546067921807873778744792515088992302913858704293451251499299330998030222223875922911533226090025479508360363904189050828798977948608663067085947782167225888900207543546647910490795696913410019431606271463203084903880919363673616708148189785518296055374692127253458189440439647513677245739503350159268609115057302113803115346902495062507590415984730628883757549147409945762203837632483451558130302051854057346774980342853229704522960635322148797300607691798312639046401501740316449618122087248233882196370378061361892043919775436764427482238604742097700862431631456463801865244983099661899204144769936541952908717134038428371334091632396454156165004481225901082528427395877779931216457587746770339432904516694292645151763027913421502406563864799234502873267465732249797926307430767638718855915103674067198169412262856685522719076337888631680355396971563123024362525145112123278756131534821193367409452047346624176463458231532859962544869451527603241240855788372206390200600750306745661549832224427178233620144701914944108151450545466647628584274436630309385503009756648018026656434150300778371369992337797765038707833505745104930022404017211374335708377234183157165743377240697945173104612612059314627369845349062516604869300627063942373242355261518805315459074261692711496337793575379799987304640725394728354631011163851629610708096941445285031711194570725392900962781299200085414848865301432271352705955109570703272254657484238900445509300221645414036626101479686216497265146946180779889928227799918749812456378822697366365339852501117984391563657180344062817188589229725205588480543007628841801627958131029332647784924875621494014400260184306742841978972832259202924517463826233307682059536497309698535347411646517254580088262305398541078914612197929256272214462021894178441942218488396718732089426194819424467053226660736563720349742760912817878760239337762925470232103204872000546968021980951794786218256572175132292255323594398063551460458393788892910961124974022757621070533448884815019466720977736638861662671512398257274189143930121138614815772024116408693068726034111482409876032144375938229980502100572018284928728359041358506160921570514683376430790150526917577179625085908834601620672218314842935761242582863744848390685456247268032621461719372427773814908547393505870100698196656709953536669157842272153435537575970099876861313026948038908526845485731782122074079008551518466693973395782816920802992999421585238884929969579997373717195986522627974318452884484427498969794686519995660111798531970742021067132652279944418405542200640736285720991558330884374531016605679829327335229537911330452875788012501724034524124273469468106611133382721778051876489844041211024117979979631852453465914386086471387143592741268416542034432794039404148898650583390276204603130675008398827853287058564455038167814809134846244153756145280850675445532845907319500628124388326196887163198112240725706536472813597647819144868895301519656559229724345699079355599564738237678981736912017520218385614231033562579248633279080284718485556948082824394038211935867885227679141573356743797436142961521756163453135569794613552651887502366700013158895551633196111481379584947481527350782120025998768680823969198574126803995255345463166413455929053516119193229049746994164000869622999076569553786703092045585078312370152498954771263323624032422994496358587002818669222683262524169476511397417794856068717961072060005480053470310591245714856169155574023902789780946837189007758135360935614653107570025860263660037697327125570250660318608874475537709630645178417203743975188926769406853993115987558435919776829330099371476776654461846903854102769607618892144931507061825584795648109690133773371027549546306204613675034592402679156068093420288324963849640068497934470015258448924814224295326510868499110622355570817533034123573141472211970880675189933282666395257736130552123939353136040385170477527385661559455828029492128362245906319076613046984729208348084126250096421723227371892390016876927059029953886574008035544931167057388998415720776928136269131278828873491280785166681856852189147943350656621604863398772638812892172849454445681585552126348658196851946557156034037980314399784533985154179233039998391867531937504464048698927688648168427913759594874780260404839918010112352178387660808232514028169954802489457271297026064546781055142092862820554818532459152501828613974034541299149208355898212674103877982136251387622195856829418343532265627043132305865980849227132991401599082935894892537042547139549225664548164666455793709512571447197066574648416629394826509533847841704746117278999789477368170472318361189620852441611416385000204302468578704059664081440608349861754662517313818097401111895559700128724611641866447957832972253413951618092391133284420734945943775235232393989498054938553990119685870092873181854369681815449037270257091051504135782397199507065923337403684142069094685666351584253415556548120175549785516173992969992881047597720963651678732868442761934418269248616909611392870448905836513913442027056811640410039037958338087643768975394294600608492887628054360341928607123222187902970847146382525074244601517406572965500469066978172704926970378158076934944383323188347104433883751481590325984198274977442844449379642564638704855099220760889639327815864255818667396707829927572312065696017074173016165845266141883452295269434747229715700622434764604837755382457799760713487001893675342647958110465035453327373869031454963920174252866584967505897313558096406178192017164347344962811171138938489158089922927657682019917184834642740458970695204474291908119581819355043205832640536173046369379661748941036041098075857693166496732725270439055262366985463002203800188032934999676444824712694178127312633630071438611485003487280673525547210700043217971462241911982539598570722619449524696788155636806979483357902658701306901487996500742939497333144419649599073408542147298332244367463633632503693452401032412298902588133182973483220427072709877037048951273602096575295875195458193284199050484258860583021361780985444172628838844486401947050438393375275296800924827946587215557028985100210303849963454991901233051924067544263944150661207963345032310790784226488732176701476309089907687397391282451855249674780750861070664681363970253653116666958968725597608584840956948418956556138224572258872678190307294889662012243885958668344728706328820511832353756909957453982440560863913800101709229853555752927792457768486578673136296006425610790457719204744220765584188647667303136643200864109955570681294246942027220975317654463204568987040462151834931177298045328749219381139811460043208779724522248742053619428116785335120462809094581480552264954877855651122455699517455006745719470627819711060460647845521104922679386776687102697768761447846742247036159351289031572526791028567255606649077114368612381875639847582930132945455449489230756078095812311323973931366797805657078467126860674750160629632614061035914874884369175138156512340109531009317297771272098186938744720917956097242563014003633639039060527369338639282399622707059202029432815297021371780483752466895778805327666930188081234477166829657734759444786363321449468660306129395175309577983315678276888458228324825102683003955034990682910739298028085107808374916086387241497043470833823838534336974158369206255407925041499574179066151112288584056481151828338573318324632334840139975200406045940889868434067517810277593943682972355311405678946830138131559414425272926298528096868715096318056124049677866821260560154379768980266069120164766088091718132786114436934341510318844890888584979774642602529285845760775605026625519173861432069450721039813391168614910367083523420968045783157817552196129601029229921057344396488709493074180394639681513359963701598313630526378115403888057453625536825217431263817197819322235341242113439271635528610206333404063976515624890100179104573260131331710656188404284358024378079435809362890346250601285331794798036475845306572500265228286973367254628095996571491671375714958499212317907301528608840154817925461270931712010564708298159656071380886345755258180263751040581641435312535462226535040214740338065464355433501583080253967958474150521641022854633649549294000917278978549127924542965996765705014431525490119695541536221784748049001890502984426060628022708522848851688948659214689753834972474818129438885696580382055740576432471783357580782628087460386773269594593703585635684209001335280202837632813469699454108523791128769366397317689484224935707617966683332391886470835856744169593033223609313848957758948613722090224687192709968084906042864801635418325754115861904831782628783998289847120000011308565929978614781580875734993217103119574827640925088965524262793528944813846933491243911180631846964603036890727794709525557181384113370620100965195377367489658298295695210594983446683143576091633924192313228780999727137891990678465857871795052314204151228349509297239449513516879858552989357484933890759136098062404436893817081193721370418939878548952458946280687500793635658623703902695548088405550061694370950536776064489216790347653324752930633684041734441906674334343816090670680859509471165656825835358116767728163054299838160708487082887553317790482112711233498787369513113650164822102278370571202990667374000487509761905679302509609421064610296502924442924837179658448622571493821103961389946713122878793917525801864132550601244005311724211925569397820056218202639896084846489957914162892566634629574550744144643937498585733329942053968620472116034679232011726502506394517556917980252529833480223355554073188886911288933665007755383370748430752043879573727939169826775660661060028477318943219037330877134572261381862984344515046156231106695412209893007858181973470501847564478472353834160155217263241328942461613189736864860687299736218908134012106706502496191991519038016645944267077329456365543533927281963427301139742880924960532076841855237017990514612975127110386040895552686165169615953321732444481794102606549574312987923008549476914006523892545481170713001131160448019051659767191430813088582617629289712107451834581153193011020740850521705872802119440406860448606360263829274432953032780060767456291194483878751333379103005582556371007231090730494488690865245419936650070657189369720219595206346467150416386724543252358596453233741653850675639911336990492205863395599816401980079839235518528533049990228977054765395302814457523874688084030411124275308227582293586628880260068747526483148878001479359973052513789074168483765481998069653298492823529737465001051758853693299293892505376393460508201822053993894651967486274404240059500062164732004760842002569617819667339423647313060640464967725620511420081036162997901275873711268100527104972639815117625225814447959434281960385326399018723696222521208946800364002561539669576392445961407427142861469611300314287646888760142832549593038599027138802584999054719584151888217339850099719338152324076851841553862950456375110556347763683621904490223843878781926896649971971241426318253203383919940282408540909350675415371530272011977837232393721359245582345064921972937097082709814655224322829790551104970563895942167121340988733197853443607816854621929145079003877256184088418357413780016372119352234009350938920070034706808037393122419076107550829098894372422649096763685031781468894403706153435556324411488223643588994682486071399725259779244550736489001912779701611349370888639841427145153515609664246551203687968988136465552467548723452901079847876696968025379033120832188692974081071712548044821385502663650013098014834070872310817967112048658186426858430060908705936787712908975066374068446672299847217071350551311611592592173984524153158880519477828842884718713006438136470835154536460474767229691930969854381728287163432362781494444801845822597178000231230171533592638481052126856085178912876136068240734002191342080961733678077467495319443722397770788677381654148136309827264418692325587030251302332439689800519094465910300493749787677511025437802456095711483466129145622444119570607469247072162967933367330322666641163343505383433049435777859192586830017005506324677317705363627780903134848133843992773816061011374478911160365709815929168198820591116928208767972830325041167126881015655479292019290313412787465729356654894260255339003904970284150003742759593597298397984961918055417932509805892327536056269163673961327366310392952666088381121689815052263331565747863627663663143177757614574421809668751565015596765755681416167398731649207419584685467075637053480700051684599825144947096865155280907572475012582764918583242090865219931516255480189935622874506884823985658168977692737387689533593227999231204904029613881459032180831674477737040393722922106848223066657424364545484444340622977973987911575151493272943640540135490693780414857646777441793922479873755773540593179577060027238227355033984126923145454276488790863008175222806792237244614912610606465445447180514543605024202585554706269518653832219976332668100369603127769581551808222680528475189285838085238608698009692263395346831217128838220820583546993079460241662862077204634376655578501151173325066209386699431159463034434466320273593400943024479865290580789449721606009052494993429249802843165120377761194071670441408537875963828605140062297215480826479453594018341929230342793699162838281041938948710913364034419530684981422624184822408564805493043364778430132405722542745599843873165204875537246872685214469310732456981541724201614920794168296413215006110379932847282178378360671308833603115750430410249735941113522216215385137641625542590222850984104330047365733098516873652022553936276966993864576851201743004501814914223250186866657846716746906454384491391122214725669746195167405637659278576407295083920042457860913797872268373175451554674524165309401184478358250036944824046430445503118116939363539739880388747820066268569479508276977858431978066555585330577498924142093964135208217753507442204294903950556763733342438913835245650095368778982945202946302123491145391473318456779372768172054016510060160024887927370712118322687134639414859256453287491735675048524284652934993426909708661095306540675692194069065366718929600194887853410501718961999982334840966059466637892848491477341536651698348693835965934900283167347971545317930026494658441671026106854646849237915648267947294254512562722151559544849263059610565753959398309918322115905742202922405354213581509147109679807837556383392717236201061123650242811491976300344598895846524257127642828778439661936603441033039825033004868541036592457688255585039246639765182739745887672563735502047528064585403428296094232113417557920795541368215903340042337902960122629038112738568098436739080388354685651892984714837641383822873059010897603107834545442980082361320688927413638724659421279395456185230259686884023905220707681145564679956829881214860824072249916001162529359792468052691742247591608241469702837200492936839503776651687284759644383099927301767649793437549079734208813514154260739704835625987399245085384702545169073631589425686007353789866853763543972821485902451044069518327053171982741393679911189814679892364207951583070494569342313737589590255498424687234554054147209481217376570783361714678212889594257422542195578987774472252964171927157497410887501208687159239738022043878065029657568335681484723622050692766450223812040091035841049068997162652777810440575980801453215117651561899700933736377548015071847273855303403536790811841888099346242906436511445374663544836315627198742660163377240094247862171524334097650857874533025447067227790837557482629406886890112476037094578591517052384244488854301756855349584776595539517814942299372395784251969173442251105875807129553949222445188227674303655135174520928809119858555927299466085778832200519260568758318524615763151436205453568435283279459997200329192501784598367137762630986501430127031002135636987551895438318447629444336662174798506593788778628005971236596102749082865256437727760297188038056577208393875373317768055822265547068329063450528351781565017465422100462285793124452928651176714656003864951751964359039512141895538747345985466801368306389953268622836094182995329226234744275812237326381500550517775480205510313782309267700274363431397450334723737007854818409752592064752803620992176125732090946600025982896682245843381476826315336158533364436497139398839832740844884963480906104352376480364096812329026244118786164359341057937323599246071219957958063947668271743767436599554575817281069910184598398631994268542603993694903001632669348370093486448239953409143949651279676545780928879854591300885165970756511172083455500272711075732808473641589236469028748878211619399443575701385937102226680487131350398893608062764156733411408649994718215569217173913196790037022501823002313860448650262619554995023581622552518113025712836218038742343367378975515554494947743347211758057898168294155302389305126645874863266971635817938266169201361533502993168731251464570220412726487284995692099511825401599830867859453772315533710430278367450024805961381584333743691674973739220804447898012461214564063086647473364532845626540792362409571573093158694707146275247348549950261047942332769593240272537989196490127763033673636681124059982915394371401864264208169647082621481816300390388761676385806256474497664927198982043389047803481950131009874589060280266871267421045468817393586582060189297502171064563421978970203156456325826393184689304161968496624258383639810468836033658238240666526802665818061095498840025289251970280942032442646808557964349500809011039947324965485676330227668013284199518501481704877942523276065206750354590627544120035725483666944286410759213566641675166490163034562957115468725666747713252154468492346857418589378129420784598324753563773900029282135728602976867087663589087172208377595943116238315973169386278300712084726263660286394691181960404777704318872263831208398400400661156172664570585586387821333114112702827788056131407349239105546756503215237483300077925067204429670569835275015630266202573276111447829011515988275466729920702264483785865777989217195977237615304519092357185774280104393695334640278511705694772804221706716876287871334106834457958489772317970241377309535277084468019670537503834187929669703363134245312037829035884074775716974753621417574751163047563822666065620921459103068499618000433774065324779246045210817563066146953300327907812104230551563752475662334300566247508458638427894462373535534740523750278047875112016330334155920645506506618821239083746928048311519088464828443922848484447592505834330418577522255845414681132365160517191530998220630800378185186457057228114882130174530932389850674588383446115723467595485085427228738724269320042386103681015906166036286578058881370331540672536826548691651282059721170985369306173997523825910874371875426729695466696634712755118082240544418849312254568435721468136604066932759127797040805961030039549354376947613575893641015993185364952310622728979058441913897348344848883682072746428933220953475913633657180055922906638487043358493443455460851316095734476752759284808445640511871949949598019093433203112659574787989565236699518294593506202169480460904135789817301562331507469826905928766740494705477525189119875933169876894486775950732064128012537499563298510062673661630993035205114865544332007454111674364470126368557136758086679585516952374616640896316527015027496286066884231417789150283698821373262009518583011938964117421432046114936434591014429900187466547081202509770789320961068768359576512501795888982836887561069544915002642347741897695739763936795010831967227762846739628354400239588709866073807984896605716501316444505029820392398822652397611684030273102468406015348150889318926561510616869702104432667183521360360349239413045449239788156293067309102995254608574575129475692688461201480423787126092726161188730836923868486673643769281044530271695483549396622906859092723299511947265322671747738225035150058560898063208270203997675771168219290229270248062614997940180702670684635815405043626290923225297033286270082216676400089341730594709501512293988281580904169467557265683144551770894584311680740159141765025789783100245369345432852217107084836001971066025351261246083992676471703318729010104595479310006659977972617115036553111187780599713426235753261825075339650885297939620015529683967658366238300887866503250872868862955239607867707785580144360040273888453321389545271150871465818353255445082087370091299266070397718412740675717423176386868779995830431025798349877765834893665186796703270161915144108466341591070103229509593275250645211869986027746804637473335927045240239023216050829028831565936995559216557094823146245788026379488250570975015656692087242335894522907596207084307436564050707711483805868495774742515160483503332523919957805334951371074050586307041482589194641268739256525564419873062389930348575888143006815754270378557956392999223782872166262573264045304434510815463593440975064716027298424234644786242400259778684627360964876686995431578653515997211773484029112217764473540565081268468772839478887004607363354095654792368683650227150396379679595408554524538067180774917934863434966056333709427399787770112892445697969743538620583735735384383746619082197873852618864922016437148617423263278324582137998201345124708289443647532423551867709152203058417883191468046596622816711279594076001122503175441036310157860430121970905363169025158875460919650087942570745586702444551898396637356198122808956293001615146752780351182187618167580749551874485583196603867963716143449177391720097900348649508320385938916139698977533065962872452460948495308169102405241850091387000604578994027865455561225681484145600254318387816888662900454445889790360292857399813580555404429712551810081496001493691892274549393276117758578034381004224417911123641992876591862724867264292837230084029578322481865389856965488689663967197763175961520396365447269996110958431553214506773300450246958538154561134030143401115144564844620257552907166520791028420262636855925449610645471181539675431201251340258488510778590909282894834816791662845406046989355228812496557309948005451673836376174708086806559098881470300883667796567552163316242429021145384057613796782945607271886895901979745929624289913331319878095068944393998898776264033094222197917774137753182526551429418006721751329700907799792689545608475009297164645157590050839777819331956368913789727372514824054624411970636306626251802239770489295301606086161832428368260013501922594206794265228220766749811586641359641252668205135268577607314162693491488210836266599253490197428137218248860367678472003555022134504933581700732709529278447595282609428674258255110769655439639320744420393776698381621596637512113902945745319253168517324385385282183288932333516784028723392232724503794198826202469774365384040093274838886264951985743384257704163449660232807066668444245437886522115644997002296406220442381975579198550670498819680555149656371916694298712201649522567630873408749297446715027636657898475095310422886170832569139519667293683510758713025965418092675556947965780734484855873696794099405907496729356842115669176450190087557272278854032358088912506646123630425529457695280320213964617590686378064773603074214743594814234011587560025626479732141606294492642748504505457725993622108690454631595390898207619405290452172864349847293741523462642616247300728589447916442425332027370585241863762943148461014498006067450503710121354170799162404389304698347506131135292646427986601784007495504142458322279282124801959403017915193722519716261540436452077711824648313306139066932502120896206051359322044688926692961690571353679392177420730899376081005074027834408506906739627793516540627235371877352106426752286795716322609281704948243057938927125845719816656003516782436133551255915181610471195712000165110708708497383785018745172446564612840168737393796182516548117114350872197087049117954015183290079029495764400007571574839954916031104748172740006989237713706324839466749344851957083769830671300037178225836166730634462412892745177281428084810115142336487149675478898839348915383474938879851037821030581805121800347709481750251292785329316630453655964031498908608044607026531963053321169194876151419829648855336878886805349465322408421302692260135115056716877247718021867638004667273606761947886534418906631205469675292211583700687214861193195648832539278885309674328941070245808009914984615394162647498911309668578119808481972797181412406946570597745553860770816839852375642626398447817596122133905527505221178823077799101699305297804678476506592208786288012098279175559090392034412276374921487601390560535861408551106372227763226017179639189739839566677897854226591202078058544777922377021255514299715335502129660860829573391597283098852573479464263424728222159430948652820181357539799679510508053014193220975873160413221208055873218786086567267313219037627414810638081202331842202089835156451177079575816711877402294276584659812727888839617089520565547953950248525954437815397411138165798666233488776207886888957957099962869365495777484115060556558868090984856793370048761935281495105325375576650228962112128718569599167623331435292300363271524118674783470960242642480892340701416712446599205123996967892709065359491974965233853884383987193884782962776310676281667502160273095989860559182290076070624528502636496254763167755561243007639852469928144857288902628492914027299333075586351347941916730568768792022073846631855178388073942704699048159746878480530889624371564688234173590794949810632310573245432982388868537488347596903241651854506789741899413213893802720554437943069885776315495939574918075139440225269605308094042463770791907159092807450571985623914537056544487438158910415635112342970376654788864158266665182570552105003017229124691443759268545085405610046710834520367846379592106948721134876981782471479363103930701094666862982937784919771231579448308020156333748633712025812283085026950775449857548735787776616539413577553356129107006549618022168925268750171453635704111783431609965633736860674401588155762088795970958104760489927298266000149222195983405907295210216664243536603055766509496032098556248882544188285954906842755264827934697650619175741433078376618074871381049376241521220025531017991947375054406096317049616279787436865991053992347877203466022472572365049910994969481076059808621368849648918730696773522649542234990533064062480409412706057897372752850614109512066586321877265309458253291452102014153310290725825003369862734141223164109431689147539605051179638007453065934626696697324993992267088011542101334792863826839716955798163453836522617442179790033957333280771522160428288756878066060418332032442484718858670319129832089535467559773417601530161586592592819036343755834248548609106313212836918380984403628500712550187833284116890846235653900641664604596291388326370101716217009275733565529435129053899434726488431416778496975891591454243727893074160399932111944936659966260449465975330527448595852541868405538943885673875555926786139411692333056727932527254250008781506345958900151976663295596498621780870387833389995451529950889560165283442445598297656413079006642127456386868757109618755176561477810525037287978079593816616183653909947431319549523839490517591257636991608510287227687995683706065965603934369914283091114530038869214762278793290279009142409886418226616797951043304758273695657391680631307450372476986497634358206715978145941054622945246155416718389003916605355111300881939992834977766449337310280345170629691467299684503054191685857960368216165924204967737673964802132524610938780152785479361927748950109154229532414948564419996231337416251878189985453549679603975136440233078925512040512409281556373832271834040704029286499978939889482144981171591032672848755062241608643869057824895762070007098584106903666323067397208156621473402581921516510400966808835582500995056586667229198983093557165582251982517668141124800442691317969538004618298391220869627906215650842370926090654779389704505370240518703959575388471240814953548599146067962350968276734311469165345709741423932675288808969711193759740540766567514207745211234937377656839666213995409817208059821665924855284011885999847750160005289053400308277391600263624430600958365575821453233673610762101939709024598687801158730718497791097636336950066609331232353866120715047759472825874684309226799185244870356760142611688378922453077639751534801279443952767592606917042784529859035550906829471618201394882588341445052588437553600225431156075967150327190729828492288438552464682152659210073643510772863106615859164079932717514969230662294681322038813826949150638367799955632709586298204915597428549667539657783682794265635228240130779093191981080080321179694020460898174026813722638704857394613836515496002120183164273889477565625876826385172339708295996641676463809065823480150287032883362998266514711060044965768114905497406749063973342839254423051979092666341053774446971937526234712065629467962998753497748081052841711028219162771976872711336037424057120132166270670879170442086032313112294743543659118243097790324278208891579330870212129070083760387522687650975046571897478036872101570676804152382849000207852696653388280468982099163998497192854903042219537158157013975470595508475455487048891425225787732641130559280263637905603151358342244636208488318357665484469484904727332755630048019435201078594356137266344160745312090847210283899907787310618920983658129071171157743158849643458324826101644268439333184706671487631268885231684741028748220987100992199191824543800813649042795370691337988338834691586927296059379901191723182734769037071341576417118660159828999163679860613245370655914681887221759116823648969288702497597091043956704748286149598216807389296879439256478714965865461395553442327990205078511973077720198363421873277364587551339279261459710928195665170036573895257508599014476793618161412084697245111514382415590074074383612502836283570321563425898407962140782940581550736493589297124814279095776878746498432065495092874096897998587043387332096928470086791441052960677583443492521017030095570942581867597686785710336922998418301881859321231679622835497453627247064476748795792707193186355706152805981121949018203256195061938356193224294774735752146986281110262184429325432137294984207061762026589190815512749372610091747417520016540218699334020802892361192169255131206393152106448131384299815019166691082995267063836450605773971912545915619813830545387757602199994124190611797076716974728306024607745841502818961682418272708612637889857318524532059970108768497553033939086610351571801332082357388851928523482112534102702218064157006845555686691413084038099360663463000663478001985902831970561040065039676539902955267374176818942909482840655384295859699225989611313474547291836242848787794075760690335498809729333697075813536860569963114119214781898202951428768534470565511591981389318189905920996547201661540201960064246793930226000363065076580000998480419709853582928729046106970264466104177353315252173156074600746812082014568796645046353319175154417023942243721759284735062420007956699461593240134384917893243702951678619668528856595552002649345223593920255647307357320435730937852846168020319275193536041710106988644531351324374310362204770883195620348322928720550631935031790258720599313006119262080268143683956723892416373062172875680608522710320946219498588457648309487288317600650610355641689002536177618080107611397910641496790904713404631912997096373509816889769084669584191744731943111342319127765536073116226402035597763924987118480081438471054782069629837505927165656077481982103179480467924562467633306618319944027658841933907828076241998856049408171513120177185581024588778899414710285021029550901524086631470320041360070199593369939275141590816850888869978667173024665763119665621225861254277360801154810342645381435092684494816005338593147905991771622293250601635900827923880081510714758811285236256182849700800770459271155823715768303316017017290648220154495776076980783636356837992113700683397195430979179718426928300283565810031140544966931114796050302741541853528917796319089755041216944766518566409799089831834047957919904788743312097633772110432750755420333735613128494747431285217258625076573278708378952453065949647861159807471585647565740353571026144436430979501509557024335682628135289562072614525820230665279238763730951957135987002750933694447846251749298115900560815740077105706261635481999381125848025734070645231579643486124403351641681745163932109598700673337632816195151122148220335788118903965777788868818844677617516216649712346882541099493730249372688195474459454247687800480326768660703005081772275475126687725734338306810358826641388740363857900288239021619949408322477118307444626398350318940499461714059226799943428678239959475788521452615519324683723259249396684918626967715985918560961578940025692463753550504022304825324915071566724962643299063242021426923679637783935906278669036599993737915669896560500010074796226691317719388860456614311879321514604040168615045234223511803654991392813197568449355283824484400769520684942476417259011864100388639514434815922601732761473109016719480224685389174367796240608748926303721615766419606480607385230607421262399966475709416872065521271726754741385122460506219847347653760613297368597389371190297592125737760186615730783210293260222190410103744656905285306739893570295163937804914699843826346404363247277394740926413919714492895709403649053423098046637148606912399556980935025899807914208845980109522170933572489021866506607815404968709508201147769151299846107932332625828301095801168470826203365454970351101520256715308756734064330496943033315893675972860545929753782900602406648734476647787387682454849503024044933038936566005075458223187151850437525767784435867165967232317734700659448202100024790804662288786902007510375790891358522298370760633415280378325143666874580348703858208638517676760257790352959124862036696001594324272736412073046471755304724009575789439916110419325397915789329839760370821202167057964329573291240192034823984975349283332702774876031651862317127321006454331525188519994212303710163613801467188873604686518022556167098847651140121232468073469969013446058557494561992884691862615039328866979260084073552318909869028599599384545796555912909355184478686044842628119729287365760417826164567754490351979881701876033758333445582032838615162871334666024199919426606648489279466246521771040625229104820715633552116900810672777061620994677601865825962479855369617371104750769577880913748079731561073202365203237700647710572427067248496742433170727641933019315377438778473705384132335203826074505413049813329540692838871661919308312617764810614606091106252791733797033223369969966863771979940618092541369212550825042504238932128823127753717833528113977596885143827293987844765000233513176081283570318543546400292157882313219788593632235241257113807438227162327182835238616340820154625434642754164651067346883005288775962934673360167026529139440366638808130288513486478316419375270024588680356232178051093788069950484186343784829504086308975507626080675311654294428749649790397252256434589722617056167909821867127323293312801394272562663034322532082602835835577835316634986094419032854629810720926024492615810741326957976907283291405372304611198249274792283067236623370558031524140227906271122393173322750015972165064963806214699826845382937002815628313758745121996570624835593455223328830557302489740872370512495829343059227343994362904909351919569131267632466572370456746721702484134168927466125545813404621413310576065333035313686169470734636685005623421842991043339574890943176016996733738742929473439467791930009308905158087811858078063578547446213493266349257268720746251856423202672784013034188835951333970473382664353348982109021713452082150489865486147857782896966642113362382793109999728866231349659674812377214590542483043687054741122854573440299111824430295075460782388756867933119408152398936796467421914080143216125152608357284559148527035646197808906186918317758142905013333815458778735449794599630185118133022248850645851685071803083340723901240924577499421772214779871696844960508669755426446885733596258279274205376501118890760998460630748481553137001658874391698950140292098234738556112817217634226168622690764737152630668131366822698808351124450348398754536776558509010390714161911496749509265647843974119923077890923495891837487611429656980971234265612010385729337722375848857739656085510591993782513347432517618834976353638407733202718537624404127068647046043059448479035355405897004099834220923575029480613524953633359504048305346672024857762921441058636322607553926996012134218999058047889447433381072569724453118036016973801838967775734778324694354345867269890203507286968425813490625536953803418816372357254330961854021474427499128067371014987379295946717056494408314312565877610390006215618037486659882310506047061165957124685492769214957121219137811013752882667728264337655771956829656682476169343524906334873251398908720038582584449520761787419930418561167233211593173564770506828413398795484605155845493933822314883096897019606082683841377450403103059759476964362865008161606491833557481519134125455657956929952335210049082477075453736835539229362128351105053854659937918293892415321490565625833676037148100258384996985597258088859961617393763842525601262584400160633735830784020704141853272353431354002201796867032070731880493507919342037756746089262132766302471499293506871410891697689248192942062032728908665136915672478320625748926246117720476847117916482854567602105823917803538710712485163541197872601814772662192155586935264808506237625835062492531779356975337051874424344361431827410632123917266206776209548742100952299648581809604404998133326239665290150105607371046067963695798696538023079404243530729155230803129340884947573251588730938601855344811101987002527772340809702832850862119137151485505818807316401049375559068076313535211035429689302738086915853871300425540408450146813678475084087594093893525219314485739808171935409231642473674274214886322533000741120910923121952390937184441233770040957759720516534922360575547810337648507580157109987721875222410417065963616474639378014390101482512754079649302862594769187149045368150540932558637317957174151302281162724671097305663770038491300142985076399304948623925329494664303217152382525579797177997081102150023053746163755628233234376563143987960403722697100141456347660443890480610839493240833120420642970159582561638333049906004308872628057018769384716599399402189058738305584328674105874934061478739881811566619560545295371796835708714250677417458547463454390929239634652717540909976810702993770090811696037639729922549673756566101201434881069378055173366506748311026831865081151856094255159834915469603410592688201455681673190356149629723357982268367904121178639593291169620719395335768326234222164018016968688576724070491842642661112003166142116106917976399890839072576748246970936684573399667654270638017554889735389040208004900463141798164157536977072219977306782343460873410981725071810771829285806396283168577027286749266240012500959707265810169059942244189286800611881867091375696782792951765881255842134855925693815998410009923443236059853752215451389063376986243678067120939194587519956421016521599968763271741497644122127711869487591295090653868125795883829580136572378501421030127423035195307873627751669687872134694324852138237601084249271189480551344396363180961369490034962089724715563394511839419652424874681928137514673794628237284014596781309197974246439745925355175062511090983174281307210169551556077826026852271180669678503481570077914295216580232811464333730979058661953491775448197254252600308308176265029694963240530284585844966627930714434200348545408371340789936331586621065058753620108452411176096551204348627233304959841057910381712979649161349193379874714456009639395259300447145215016154570276253153841006502148609748376796103229417036865800861774335954778387914778686428677079875107029605301679517873509059264023849136876768221695634053317009902312827543548038078097250441459599042287464609758900363641443654237562900136657270169161056826125431672823314547489058273628783203515185395505064446988704946209454520270578729329674891525003585122587144434384912970977900807104132098469550148177633029373349643959602203412888274186320828807632156345110329589894939392673332136199090357613269660375461690801647732235113104945999478655114577329605288359585634096545416457415856101777154456020976782183191854687126215862157488570640929605392876170968308419034069991009348953252969661943535434805198838786356636705228231247183539285541777888957262321768175678228752676986919959691437918108420473766596118192507550840832291940555170203284735098474742112105981423215739637953506674002240346181204415868011657261664900531971602835797443688814542083022503348971792398078553895533000330503164266345944403800450406413485001731847692122049923881398146699582372964592496573347694378138093877101285495497406145623849739837865265263960522236302303966533085739338185539605618121018118118837879479581315627546479775470668822194559251782233636493945112579604932808645656975921177497971087197990570699491401641220662943187203771860043657000467420682990883731360522345199695422744992888224672360145819656968760745598496077361313914820089321537003810218256667902784360506218522367266460535738657470613733059834145790466786702021179616899596747917671743010893867200646371197639726411684748465702456299283899374902486408411267651070882016506137983525223960547546831321586152831007859021304701207279458419191671243212784939080690391827951141548319866050332349755827893877412525332589508804481356431674931609573072449028624020983217815143768905964349589155665155024537604446577130054529418594565253666116799647632475837333599442992700485291686523187556606255966962919590809803402099825603577932734098482909227897030142312047397785490239842233135987154431606330408340938353337082487868319919482201497932293064804114868074190938260123916305918671989644995284641428356463693870560912605827361926995973795841539956371901447083437253912852446893506839556044424764331374812725641484463048916063652357827939527313904431214741436540655101855176723669716644761740214961948829481448730135063836664035585125961588667031178965203046386012581204856493177943695976264853590781246332230631525723884931410553161047391080075633595144815524639907341486427767935507478833306637426413184159121065733942313768018354833372019031116114363192940451546670136377415922071606363142188205474626448416096115364076903639546621387402810938504095544221921396182416266382024657510070901979544207199930310280057285802165994854907962818971676978473583698781012359274758686189924380613266764853494231186967244080564209826886289595581871345718771119403239088849896989305899495058639176954393171831983522310188830747198293863400424672944143799144440287629733381880401548961845427077892583079257930758282317551451944537742626956580397510799730258976012784926166205713664895814871055338344415094502124959150416836524583477380447100390092834065440406871733883228847711924976165864762409042578518912460080968069539929129021639674429384397153596192465117835555270201375612847593405646215703188133061045475343449125483949642829000167343251729090191875968715302118699897655640732659734430349729671936834749275654094599487622298384046019400206133484822622883820455674002890254761252716378525436765219797653058813127930975223325669664225243277123413216052171123087634853827833265063049614744466216508614493838451082245038102010584622783569577963244579814157209781307123362720228046376400745916103130065825197882046395856411033748111433269234381055415257161094494393603289519100018145596235626529491051156926387835022455558273867562756193353276897532406745593902227782586696516547732929688567773495500551631393193126364087296976101737159634584178437294652608089725263948884146848528209139904954012417605121471517371265285632204218232114311366089174564838975454802527312602002174755689399681578311816563437928075133964734306994215432595555896199884053470729353705554500015273451707110268372868425913954020466644631619358183766023508784339424707528722627251665993258818826742405747421921568292738902803877672095542133326331179281666243054329890713591529023545392318867326072441266990222322397710534557332762078098139196267719112913021003963350023078715452159223885599823729434525684847744508339244510928054570704869230752012719733612718453194186845924219258364182698840815517389021994266275085907052974679106975061447303044876941783524102012115720815351273119653157391141923970175178354247295670931410030409995718753143330962303541462203862338472337454329481087127349721903157782424816736852677905237193520777610734130413890962096297877903969905555598448630362516238749432861517014496046971271061937098269471724963298032850415918636766953270419282324845025418547670581260109531893724887153804810726502849119260284833144287960465666134082300948418324260029087797748029866472413231867314359579142820645890462546491359601559334049347019338131852451580977206279256294306428017352530670422911934365936663651103659035068366428092411134148396096691601438510063939963430843216921989217052738569923206920422986475308663536849602712745831740053716619349312552155435526161061802893748797193626671467043870984823279896467789197687289549045423182164261826813799484697660566942805887181224533690942426468263742512623130246517389283436591893873622038793223514106690623948523719153014176419337270042005840803331198193408234295334373185657919606777367159150510965073997462114229696190587477346628397015375209993801007794632268893846073158018121919274314886816004707063438360818661738002164396143175589160029148895939046192887711165937793136205275606118983147328806359225718012554395089373029977649118621512188886797064371001275886082929423526208433834662620776248269372672289521563252682140427620414078834294655194462244681420770378270581635428491641195586751879573558550734127566637099672236146240504488734243208392982848242130676887140840869887973682815186994331761676260838784642302889104563475935496525823739724853443755077002205649301010897342839169197546429404188141260487971160777924741141823105454032499644178740775615983864505818050210227028198832656705705965139637260554562274251010359262495791298358477918909057800756944658169390060977029622603958837055228705073522179945087813870430773980485350941607265933567676806939745254977335821485323005218505674280212773421812667739449249922320011908391772490504128065710925917852397500706989568863121071223849610108971183527229518114037533104782214716583283987058856433523597244983865426166166169220509817370345624819049705505793699790957198203050034352719319779195024071708908542015127519268045351244257579130577135798688627705108113163059803409690558789835789929194059815593925371118089041849327767415512245864845679768005873511195737793203188554095429678311404073040191376552989472501128063964309912579967529712680864698309767468774451753433382253757616029704200287190873083287228055624573381965245175468545046915479784910648092162871220984897716061786217908195210435889696916223989828619252782440135345942990271925445847335458466057513195226271739450882152806044328021520672707798656066682719602168889265412457158556008928935552782021328375097711523134736474087382189332424863704857830206191454188391184216790264159631229574771292658481143622492769493072744304159631895599477883094396348815539357617532329667839335481008863184117751551488604944661357096711020550508689341411598471495337053770294679383718008028161786704979899065185648613926703789107082066379397967183958611915213483457021233899116959735611228060476276368388229576249602018380297871337718684067826016251373772260930832258379239940172549223495252177497551666274392926026822886077867776201902171955311528720816582040182311692009128817233730399954025652193680939941487823108453262939016493699784413428899510386231890588093954657575207515046665308143890766681555148599027267401337989190487096764603961982354904669301463888812094084684785532727824409341366716911318106698924235024613973063506632273976506390707571194589177744365695610599424384003885102839407303322955995502727700687081169779134786875005719687054974640494947630556934227149853930326899303044593217716549919234445422528402196670722220800220474418007546037912719832006963693744261770108316962234816949231667814833696079602539646084831469881600738340663273482609217020390351353323168860909884019104877136053471831745437526673944716334459142557483838310779589219572282010365554099537973782580783466366667944608602411996373434710678798395169942923234324622225319046181703718969322681690089463438076995628883189086767934187536784101808000049407535166047023791669818811786712405926394818989416159791216380088383132888949727876541926630457975519856256995496022311387846745735458065110990776640196383233754667903382334802201902523817865255863080518850828525803081179876899952406484788504531697403076311178318925415617385974036937684420763218269440598528796686340125145232505220588922130902483123433788570572118773167098110909573305546231628748159884421891043340896217968220768584344703152758667818923370806631756931886685316188498654435461419279667758743815523780411820705847863156645112487914816402623614961440617462845115139302430335474317684382946342079926939581477754856385117310401629629840924522419060418815585688999273528057873126349740486835128992541782079065039508230204128870270729603687378807989709933039567271698448307939500679005696682051596097937055527520106647638557914075427804852869576797838243807403372069309625139310212100743141469444584617626672794551777909930484342036518890084091526708964936368587361999778165360035780206791339451776736253456854694947057116175549612197135767790603220203037085087440665881765758761975100107230940357681874270899310925825582385437628426858011927797849192612344968074072769920907738419463088832218793317573156579662305531971661738966450486642888254017561504843899912750419509803139116595148449580552074970656552093656340589681088009219963839900331103405418561227915203376666102742916484901402648506788828886419628706231384407132440298158459979734333286906812573712850417249859120759867019068137856314823485842060712724505039000376136871317864957867584026458859679176791705858633500741027157373245908196109843155964428473711257523360949910259887899853342460372641329459475901723462994593673690669659811609940279051065678180560824406840036279858516891627130852050930387227080077550732684679611847825813424884601894356778578371620691011533409069577512268446448765209392831460574100142081864660127852409495458047328096398060142680766402379675708394227696684057667656930787274952499882146800555299333334763713980579194643357032268266361265500488961360111773823357084020232961122049259035001354237140319549558082570514117207563682404802409679750083305305343038947152809623349621518694213305943203418416595282598750129849868541433319370476878841900626903573977283992805583214293216068347545813665353652336091378894259566395321480573342417590629764063105908684470811999793540611170581438226228675015054143775410373309158160710233980832227753153222834210329101007961015369453872017463163370824541611132149370042276191279493366477341636488976461587983765264737591843817028441868843850058174077927643634219223190501186827098596330506326066954808569518275217388187025043324273179767743036568449302591841292480027219759620755265851378041276063256061729629360884211014834818000350720164407703233535979768029557089765850053504559025060594981570199544975958572312965269216253120772626569840251323292778546414677890648394630711855225013220235692606244717498100976532378255613428403104393424437359379551519732184372684790850435955608299888233764696331668351068949724930087320672305151165744351691343760660759579111964096516250587227775759850796781032548654630831670752336996776601042101162663163317745125971998802880969749298590803083536479134630452885741500572191595229576028787056117117384712835299878027994104440177692796603826296832421177007261652640225795112914988962267380829414967158924343361885588005855453844870082055393526679691114557253474645294181870549599864291324057389777475898559103360915950461800462556260972605064232810393683432119824887629744660140165395258303600691356439007761020896765484246070320915568615923873424945671492057171377194287369511699230693225258155281976719937328692546779126285292183125740214924387839586723205044093700772458675035632743233310274611300558931846368386975126918126953988137233724724839001959754619219818486458899545607160045301319395424277522957723030330901814030242692211235446882496306444741959727527418705630206959536770511511675706246158602687957206195996117099887116780014768234331824778935164365666811596896386593671807950867678693427913265305917878182459958414353081868243163882293453509346042115234459514886747379986462160188269456065885445210386593379260295837235990242622936491678032193181975482215005646442191620392888798350620766217770301032546751356450396598769684162196727159910257105950102749551092860281900411361577712467451503639986669924332414858225849590914352527496978382771338961177316578192903592089044256892894629067612488224880861168866382208644327189946334981442740784327317574868658488617292615828904618619784676737996192874005163870707536632644379552393145592289855494981902128671168623735930575059029539211022970116043066219264865193144482404604872147301432666108365487787309803232392324772301776710671857870434899113045803741960455268534521774508217247427351963071384130464872292242991232583460515076962386473115114819257461041916831582802726035370391648419125260262933862897054976386982378214603662363762491422409293956866359440788614221331898310140878743308055411569953800785697875085249890074658623271414391766519104689655259913718252371066474153355071787104260143397507029022829153640340766033640524774820404523989314138730590641627056972239236050270734650972730388566792099313254085719095207649611255129122537286201169964991044113540953483909051902121120675360636266418737537939635461699196865918816397144972235198221356732028515363005290232671155926832361693114430615254005045389870289030497339940072606812662591101333425409977182246423881483496757500531500734097504365814281933259975855763014364115596962647576827129575422381083893420242356734902189729496748117930085173740680588866747766496967105418949131442746367650376595509282728420441148750614412606621994245782531818318615998971635494538638410885299646365447217386449433155546236813185414542013401400160894893061087801363290288483062357750245203055997540046274269372843288974493060404549619770170910188492869147345728344024625922672497805300014228706039977554860759497170883701979225548142461369311138347017517130218735484403905446083840932844910266344054237632552220806377845493672148056499738372945119841344151505364599493464815836198059823428017710913869329967228049019721030200202850769237938999112397248170848933979072799264666004933443673244028630620115025436681833634993911578276393470843912375100635219572177844581320262074387739147024827366858226130913921390360644960098742859954187710469681966195635130376459207809139947497290086615804258385214413359220876640507307605557685422812004188369644361511974195862105180087407690067839890030123732521058046139660992651906587292576340723106073034078370880703996916443055575939562873166362813775236756851175326827156234565518734294988613119828892421354125932885762361485911615414210740962222970691759249371645607029854918065462565525996918865236702024393356997665745376596380696098151218486107866324042785287433394657969197586925049903727089466560739057117330324547692452828113071818628723942559765656903716486526652247397640237341534196181466166066401042300249114083476628177232995500748633803745108553837356116615460032434854825400451085853986404401187512740194796072857717876960039380158181747901132273475788249505157722801959446557876497772203808826731313601678256254716157932756056739565723609258172406119896243873657898315445140278994272505670372401167084048617512364334293396961746986697445852234941367248394826111293362083441766625659513117804675110267454834308787130839603931461966964700404753044560709202995890184002313309608336074163015177356341222209448703660335711602712505967614901033229664022226875807283965017709732083475866399080701968067901567482565109215443689056518766040007072797807690743121901232396802637016929488513386544362422913007717344837599192753237481405596578850578930888363201740618484341291344052579742490283583695687544892394295856431901814535849406481336023407603702124603148646040254675567009999725869391757199088320624631886473356201855846773069901479180313785804236234763064330151881924374551705773794628445026260728254034867164590671138414253203337904114334482397920567162045812212218079592550095344648671701448869942576538102292821118806232271235120588955974997106921584457359042344717689597452383843522809860845535357187267216225318375329579216329353846166940160974941676555108482768455769324812974650303298743923858277024252484633974033181817222721616054439195178387426616849106263086521176910482596130216068813215069452997493042075228295430511838130216660345239293045745056987561984761061036339598788177061218702291054949374945177005704439379521820451592251940817120545204873360948815676513332183937711462678095807851674718706394969205570114042673766615345820945265724473880619022245245823410718086573420631127745599490339407215979969232829481335834137234550689381444351466151179455800619420464454664234467482938705780602814315853517074858593406930423818364786204320776490201243600932733679629256709183453322268860072322467770152572961057441291779253321634535387358627841252571301757400013666146354507584979981516211608548272118472318357039641411990263054160277391637840747648509849315799317284225059787652027978665332172361896323186640224785717921359551347929720051740570329326118612660135306000619599039006672849735685129407638332396261087288852485915430862959288334464716385296990905179712617482256766955726310722735539963989975146768115945775850562324643772324436295586358186281836739731258712464025594869422210036396060242902720103612252802854205141520022898903605855351221521441061106133293926034851034845339085129856640435444733306378878162565981221767493679374633565277348232697936217098177142280558411852841432808028598488892331279870792896850223900141711476772320990953335129102680817304620606013942200542831686232700259741141475546544453975448542969968216643011556703488867131894306960878831595596440999513794629756458003757662146609439330017368638422751223851972198181759191782459605162060959479368585701158859096484670290761387167223868048466707571083720258749845424898507560769593029434600581194446750536809762667633696025506050384415595086416285911338454051221769322579293431281136137561475243273649977892935836934437500373401772301572385781381630576308446254181995964017879590196750320516092677673985281505333840409073368077626943622995541586471062979264733217326931854551757160359116365331664710384287084413607194600660837315241802284369972677980471055109955886132946558739978334069054338755563713643083228919522525569827295099741456769667372515063999503887575253462706599006099694635417213375588153420021582016145301021157170648765691414435999604145390704783373563337736722558901943940243939029057245642798471097986719237295840392054952558523886862988512767446805255158287950175958819327281685722043683176983023310981510247204980965883004916176522351773305491937434569825306800033502372275842923642166935889579521979093007225868654864066028936159780941042973113225694318330451650051297974788671917336238690629758927813828965127066707357374730959400234675097521411957535938520476711104113683915373047435390634885114150358096816080875584605374797198015206094156640170586047799740762497553932386723256833637634447937788949164320292891035683289622742381690886010583372878590767476322917951197156754253013255771353124538052927022300598218828104231520947025237370450645987600028314810013653165456730460088793763831276048881024968366971249910498982999399215945578879014439073273437614027885141006862457063766093325597439872895131963025889686190899305888796711587494909255897618654720225844758352258388586291966450853502842654919967496979138607074954507723088339692678291278314357556213127384152092031408190050173112773465479479035123817852559965581683626409392758866495667099927705105450440013451196560149495489081934626786697189257436287459659609975064967004839807349359128890781536751840414463411479272733024161677702485981024960210917187891921575581762500298878087714599476300513341264858141843215369178481104915389379736462406293423615690214248288595724395430871278151746016593138959073663578877514325340267076953408446377924663763973515994440212357621086322968730828448295652099120564854350051435732933760428880444775953047150211323454097004435091589348405610857986565855194801594407629203619853243462975236768788597970403726679224513017257868165579181716459212983774586308029628452116751640201449116155817909448468903107140111160168119370189658195969415503521019894903971120014951685643939399417706044671934393252762912730245454456793069234503568048956965219145013778439134527440779650289176225570012734038977333108401680309600725678683543106682056957244582071297380129247701940862887743946058628108300423775700174756526728335696638510636147603923254599594315963949464313009123281477789573217208915167525463953306577588399597626583095771382287670023789722373209534646662406021790251782719551888746244393377333049949159466078739364621280506879263580605935727195103914378062322245739425952151032641835742956675496556900195235650185600032905866286243665814303280840193265353272734502373626281640125708573861562413629227937007858758800440519956317491830979327899969858262948740997985426973451722486161406058639636880146002893227050452510783824181721755621574132261189512760372701337882460884857088040541780668967462889348516531615540835098639349613858697386105970086450857863964740822896109931992209030770898247672943735280716893154894198510267180559849641521384004109173733650960143329356531470354998844546629114042747146334118460975359303627428917490667722752671045939820119430629004743265471865419789684188424408982496947654603407829962175111822275635987515136560494190974309822444745276510853011163494869193014413427162015689887343814731314623175104652894853411843900984626701648963853536222493052429826874669987326502738453778765746822578050400388426298798433813753354403543714048953752616855122461994287034195735161538555275217054116604637881283127454087541882580296531280962583486844301241989651881181616311638833626118817482292347006559656521878791325280831295281500064799561599399845626323079075730332173468371274687482930191645917298620617202665167401367791735078754374693009100588215559367367658108927298260126910967314552366256752532565836168231192279663237475640326031933643708819898807260724426499388959415178140227729831821065284550566883777828269855365709043049231559728569423057871068979999682815403781392166414262352852258134622599963899724311146898272466033464357410424294400551855919226446684903256608982028974867006278551320785092496181065805047343232124551837187924212305650860364068636850528094973203558159967490129225630864485916142444055120124629651080871071334537605320761757162038541636469963339094989997013824621507147924131582199309973000219645517503399634696608974965826273875496895194211642219707446672551740071719935889084149651854370216562955495923112095145173532620771288604660464927326988986026697001517807709182634683365300290298038249827716694344407598068417353635640369907463670769736482113757277867677813053790976499824729523140882779891551678076421700997415992539492270582201819398762956910685775809710982274333294444565688597786201930014866103615836990771698541165333191773791868494747544338297970796688405501014251172217929135832375845522366926091321872994855820996000671074074534018225255190147727575122569823516199729213514886424106738084170676655726532517732881980953718670403353506818959097220596117026036990527043854714432114485020031104812295869689222588123744040087156223794071823735131267494446896643984233233597003791540388006748609268693779384597059411039853679003694036278909241357652268147412177957473298742086943910755522920133671433040071033356156598648967755868693976371425101753671046823508450706522595109423208305166968784439633169957851430920808062671192946663546124028968983338257439074874370308848872636843345428089312392286646875892821688826638606714075116123451097899311730262683452022804454539289139448477393879804274833918518771094456365558554312547306071977491807152069200150560717308738716915405644824294831300187656572903819439049827354184059482534440736488129586437523265608140393582164517812167047158434867792179161088944177382364486476504137910668268210064955220214263505520209263372903056529421694481642611908090252474504596251058599746362915602612368009142372888968226176333383749375151478807703555661271896392281458193705064015545805918113164327143380767834435247502731248703858887002042991104275278618460128564301380478572116347131095357748829791287187930719386221798497832489967548016552350189121096493699163381029452967910774346579665133273902462532383533261057737664747947760380897077661347353315272084566523357427350205259175312757886085662529048913322186001549464319990683074771295393085265751352795949381219204344648816756609976132396815221716284357621227805227500548235204794348281207722450204787395161579960932023492408893850945636590348567774563590149749745239494693390121711954654754033458159611523108332383429596805504460336086207753674006354313649143969197835926329108388331737987438672633274174062383162288202313728181124181079062363726774091893855149199793758410550386248602367434218419975103504772990767457962376950979672228806128843729403398136193003032010293963202943552923188573938261541810782211365138547435763611779860168343238296136757035914840570041583321004607882633226643326467214719074877670267975447660005020465787167825767808261613226719829788573581538744136939148076102004921232414808612501774920250688806181431399777206666758224570983995305225388921155116222016115208188051945804489934960144836558992553832264475424292430605150465322365893248749171959325376334052490367248313891905343411608417951780291289668945661178524782305151053815606926039863814319659766778373461796755182979571381058756517208226167616113950846119605650779382799717807191625628836971855767328026403064702452646750681605253837931826529036175960612028042517521284539413725670316784570535904575214943622482058907973607160892381444665824532537261482022901216988428080651131823083794999830831667513201122678976137866179639375152630995996187936470730288180895888174133533616317150930617977604518711171589163907677636951492501381522432144536411944310335942454469363275599486132182982799723899016066709728850166947944216008314220067779304711654301393275801856795757960982476675514695205165126310903785941778048094317372532186892056962900983160982841468668398587351011395299590826647705233913825923033060053491456161696107885501104169035184274182715230474283412231411223254738730769512108641198597248639330845884773162659911484303191935824630191059728294279189668942262520296531900814834107687807994690240222397928749497228266241155405928308735674274932611211106201997853320704263865227660703630150937610177765984089937979982646252018155101828393786005444908316017261295692556722612864544165776659087179932676453973846826600992320238070446510096684522450259433706366576299053855795762536157221970284347045254688041711768399798023685785880035254411433325285625501893526136229280844412153910561812530365635647388836958538650710842664619917113537806842912680444083906387914425242307590363838898302588465099636810357119486677402634443043778621954411605260078974888637384057450880967294194237504571124160920640529891471014590624429086265222212064812276923398691752983162501443486154462532502980219752927587401517103734185085254352517652011467689931629615238226041241638929259294480373844246240015028126645825728021288764198712940194915991190714730303366757510027413934620632821922296369876336456736561877282681728389603492793194416659348927579090380959408217208369464905990031142067569805723102599711461694439650201156336412893122113176312852402065971793645416311998330921841842348875027813836800867724973675392889133158660899530104934156049773107782967532374845194852911271469292457562979090157609550516299010760584295867142768609930378626679614410264103991236173065311971792177695217537502881035874499392247491674626519868656509478142491250313982024958106930174750094157398758020430298163002629963968141946192986813546916911233418327813665341068817371027891324278087550125186473950978369106257313062536454298821982693236009037034994414593222783353532905387306150578841189685949252442037900102123755501942568298096662086864167639876237475568364527240364014609528108221742707131940988363969506641656538785913368859863367329214125089972964058709139734564577981796334142303730997964509878284982875900226471537908043339845379522773130329522053459778428643994330296432514562968614095629959865563422165950407903993053646016253161463382886354282079149034567123956417250783146314293444609933973171019664734428440245330059815238383803768476986602132147681403257207352826878000553071252290996679843673503497042044118056815263734700747051618128341959689461296243147708865730931383010127556850371382767961534131733176437395495909255324177315886631590580617294235453438603169764334937347772216293706466996961665518245840425841296176068324009138176902308420873269275989524694520505872896971436059407306927264860491219104441457119271959298553327051170381473041315033055298007126290879795835538844757367783314799893425466965960879752838634012358529989337486410949260683571092337574134418732286883401480961155140298916887805976980364637698781119085186090523504879783527270582885608823655596444705900167050101049398069856420599720083428851261602898750671018689742422871641542259766978078195787955009926246303542712939858863362998131004960886059355707975586022094278299309289943450276498983151265238675302227461352299304848609552651331478057882296346383604053494483832234641259706621943587003080456269253103970278738178831374029459650154888040119186190501892084381137597475006711405418361186409429321917141738493851095229100118500601673623369107830601338799314593790129124970549849601244791598449058174648292333689464362816296902704548500859351004437508748897510700722446265912020028128312076723538270155725265715885573425783320817300800004143506793578831218137740560961657083238895167295655923910428574456040674882924188021048278749972680407735103060002894478115679886714627708683836442579899235429855354446295171896322797331888172527837091036882620447357182899131977312632814551867829307217406114621589675531204978734462107772298611161352698651275769197152926303559144304544851306023499104528335213557881428128306717116963208098366171482250401958318670749489142678069727939229330119104851651497906007205519311522409378166510024662807053663747979063407456880392776365286300886882465510996080094655923135363228723045401124264422402521094520613513088784388222933913516473416565284946017079825474887260990554087386886505614061578513874312113653838796433455974219708156445838693204246042979672938262963376812451999189437985069168985131724361083652406864339470735792172513720702781405847232854183554728055538069022604715192283393333079104753150129330634281447742044422816974140696198185864522140480327842683422745101518016326253870992580184772339369808357351297217279214240751580622486399208351423799254667803442202699007204399827621989112952577053364425764005635726381174114325690231727265366665546966777024637299555331548132596926397410840849454928177869051073971769056208108433584372589386967941984130341114957993713374983700655542395893836489137276257633221680073912873052617115950397689426050829707385197983724834736071904404912496404527042415094255943117543698009178193074877400853772138067469335979619517621106071433018452053744481442460198638807306403363300447208412593049825799240200435805752840578639984653928141468733882688306059168201928987061774222426530253884802334152706416164699391173512658379511675619946640454062206634742554283776281889848759817845309869653815010116184726594314259146349634240074742359525886951714753370885697359156159315267600562341414301327784512707445615197293034558288696230585180882300277388376130843450915413571022683854613761919219908502312105964588494312868304673324286312875913738770542141955144909476389378047852361446180585087755203221765338553908662401587388731278448289037998709120055777419072529796074021481810015997571543480437028849787174229863602788441259965529024889342369834996281343929680790398885509924749905855809802198554088376611354620252629782731426542984309344601879880168580342749082977434278995784822088112688837911141750006146783610516356593144089247322669357462787544550666807999445285888169741170829184649481229244521917253977239147736508168211641673816128759991141333822911680355516097189247559852851063519132901032657435058459919453956421732428726978865639760279842896350059112005899121058500677578624205365358344896074464550777049919663828161299824953675923575176211432071424636724698741360182976237794211004035655937378948106616439204914584441865032990777482537748281344392774367787744329166781639750496713290348417745150924919575625146701653151579588102065391236734361015282511742423443448157433281737972539763985205924591020121322914487858125973893453005372094106536676675731794857667777727035726959626371834885071896593629627904810539864666920435995355199072122432206942404421249717821506337980821911924989421218167655867389771976278535099393867505775979568252195855336459201849777443168306268479758380707569436662436341411477072356235006772222100329130474374353265871927488175031499663218606020926456164809950426352296663936235367176054864289443932378974209854511868618080321881013566760110048936551062817123479036658103154805675744137300736421039840330108053003998789079743387949647553592415027270674878723318880732141490773549308503487247312752740091669312452448249467387832774807618325257650931837383277047748916947201735797622723891885676165307864753398237037339697964681042254422042140802458923598909213847558688099993216524583599800949322043660354648859030841521744333441962889694513992934760773517219460905131123430297228090447822061515339207047675094547250002143052562705422924986817113823919328193556835535269873878929180723088239321845498252892661373139260669934657859315638646076165376984736317021167600002510729918699718332072193076703737709628758730484447413758886390340881303084078374693028048659342669572424645683639837304527775566694597123877062645464613244098798510904547859311664677877650675212761076485240483762639980817566936781448264425101584811856372287028614616877105277887006912003737765401440139576076248985620729100537204079990472811160194943801976459428450419980999676854443791474224738324526005136458194400466427197708020535504370127665681441364498828849325667930505861751950996189613326105977979186968182425148673742958935242425877090421578879989420020460925028261778815965538704813736102265539287802077111831777266952087450856126378686164108450384370666086523328324642036011050106680982997648472069323999163830824337810089954716451642783181723835175157460031925301257844356295531432970490366113406190164511760491644871775226905223516293720617356767616649206405819219900081983461272011076222381094685030319139715752475134482883781943275943335077436288387354918167449644924563929066824198446813071506256985882397912389127257585741061977697161373641063059261024204923565237531639048193418716433072371477550867218472508949416165781290206234249385367202004984214213697587643375325688623078069368238689665264809021572439026005820367814748362946236651003297966933271163423409614334500992648484849828209107050227387934626852549947351225410927324596181348116591948163045364075342233900662175826397286007523414205590516205028538288105875477400539783426561352710168942887408033016534239174755553479306521585053020423009392812414516428223164856542171696251499223821866158533851510919006063078218597374394035150430151831148052437332249127532345957058938108027085484108597151943432281744503687336580514295247183609383493180240071419293533843101530741721475436362774613182160826982566270087488551584322510976933348445069220438541538464925985610120030361779825424542621698418258133245895906890755307300416137620154638247263416217098188433787233703732781654414291969685384261909475041985013373135316686793604882567771243078061506620739450219128787115800325558482868127094018904149240426943734367299360406728934086272425882469779607232943155858846596547601203751566970592821789311346121820299548668387514214774184261814169663367581821631133087983813021565671846103410514723075399206788568523164367539314647941522848264161984996951163863675600321646739196961671290712746688116950798469474653334036865200124913158914180845683191534872218348670846139775586186663740420393441014755048308549120887915869236119375222683102835910092874908745322675453808352327027831390377125308715237400657693299316549214825667522920264054715949600562829704752953944784577454112053575675204582289105124248926243493587401731751755933095819801725983104126341599385293944882588013017139653215186111352621245803778197145294572427480191978644653405065281837318162582380273853027998447439230623788175504827708634253280887358240011965156811291466926076278569218265759502634073247277079921214179797719893537502672716702694218573488096321486661285088797375529383656973798690718345716413278975962107448755568154819441196152759442527147569318655991822002584181090853079711195515440149893228909289788820359252124133340272131075436848166069149570173574392549717985816441950888561171525360840427312428611126511460619844539555902391363329489641544383481606480217928433748625628545472783367050714645056691327999598851062013418029202352422864911908569980107647634609303752873214531468360331223157703491834857468877244948181390466492700732714040780275802970741071056356918882231025996432964647870605739460238162566395751815215813226538079581960819382041208325062233783994082842033990512567274163497940313741157610304480445245477344440429341822075431437986829504451724062843777260278046622988405026983521363672875780676571941117476609571210815455147043717143611588915418790567497401969800363949559362493458735091276841189010483619357836268913859621676693274766507694814600181186492814785093170637490938181832989523791729051805360000557684149632581730862376683699908011198976669661713370378527721200681483717222343198992609798072687638563495955272903529301554365511708937311554431963022854854829148773831542625489947407603625273302184712411580924577963276984774737103552980263939734822698021116743859963705382339768029812256006532516435884867114558506770210790193986757361399566717735207809639620012967609907088779206329786822361126101232939051579367820668625223868325149891142990991392946421241903106287324437385587797379285522465541240212002215415513804242876051940764299646409357526550437355528222379354678567704524410447970602355482510509361188511363018112450707327628355554656926202030666529159573608163368315926384158961459950118992541828315292290061563115046259223480556145361187345295102404525616852473712477495125511358529817403472323044644837401469940480530218446425190216449501414411638726447754831931152651258558325222461884859397537966402072546775573096937622309284374436492090112760918719553174318574050734276608460628154280179422237739423323242801990529210915091502610296275778342871127830315465641279947209513906372484926122821113806796101074361147209005088792549409659793975247697645924791742660108660533927118324711057911567973051115364761516788161703063716516293859406538467282783527070051201490530999659985040963418997605821132147447896048165475989781111102580321779547515368134626008270119430896597533563045353705323335634949624327740606918110884101541340419574659727971097341045346651990117141262794607625395103505353016036821798864578276809592825637328826457525404053594100951737435214556955650718491038440903377696221203288436525441664280349484818085262487842304613490330947744957381624473258434797824544400646048566510474277347235414334439990975139360774517678322804134666256339954923765635812739783269650129637942121346040652985724725839217730812977442857845392025356427372612014900151368568164475948524391985478008289720632465273491526954659753044181477849185256910776705444409275429037829540984024025290052775124222963759022124429608015911642562685083706013162607755398541753772573328758414615047696412526822081536554907565061787771765807096386141976743283351465392120510598580090577207468256012907570142128311466926440948953262746327990956396043348468611102727196540111685499293918598729956420911927031536845348654173695923964153237461740235584209709420072753094374490981528283674505644987267988514419414309758711171035599935101933470706741605334763696425709518389756051400635796205624130326451551893335677379142691476681619810595577029232403087989710803746598790991273733054651718123961448328067520799089961246140421460101759645689601519885559857559096260191700007189059302037116669657574371510916687333951521634038304057205094773358962748037270391865518511648917149457323888919449344302794241791663879705356157945993817329706127137994023874974616728603581524575580568219237263850759974702359005413030438752175704105723793930352225352124210404584097100530197747534180178807369301053758833767672069764963546538547005605954860329066132734393060017665593291416294905886781751404105565033426243353275640616672214054393431627714516827436526001117521786468424478699329400143603467761492083315772455529214951785504421121988696952410573770739417166200350529658019919150256191369913031104924872121152067723038282125895083429826748924625351164879930324088132649977114918636978824962061839893057104264041601429750099435286180192315804431907106095406068489744159049344206889315083147192772717393394716655101644857473073183807160441112281911932726626918999717172590563950729589657202061824241093696739292614512341267299413875550554911042883685711556324199795549022028029725218042043434838195977992654001412627140613346653684564499390387492649600395351534405959546314053141105071503913138216881123618001440524124762211660692732925622378302480099319311542666195421399575295193054065906680159801166293935872977638269088529703296677630813360661136907045841226686010487679932040287625082056385667622660123750562757833474556252431856049498172814515144908183791382307709412680920327891490906475007149520291369548866954696627757139869406409218816791047671200224609791748441143428407268384119998290396970336500244855845450804074323754684222192649472476277123230162969868090584743264890453574585455061849552685567613837385056208180658768449426343786709275094016595061049450545678725959817566568833028248904497029101609157429254302869402563583625973209091521711942686579165595366276502607280536774036717886767115711735306407545731788824373677650248769973867669443257495561645844349439602688333373775322932140143128125842335831286201001054855341960555246797641354981633865838987637730501802156129085660673171939341130389078336076410791209569328839103640784411467025204167902027690980989098030987110787428832470242287833757885309563813693743761944601287009814385283996793148754860501276134373627801604498173010480338944025502334915422284688940116015527295549320519314165572671949052043368704822116703841314973715065971880985493140162898296739414387138148223809127299562806511745832920261627212799781105785848742787076477753053045582453371988538954630093740422285872698807577492203592681443820336971407024357532255130592051112284733524452210221583908690996876571364465239766439433085135822906689361426159008543134444212585339960129251828892676806663239721466787854785065071118851415671996446053403043409173864617677619452050281738067781358167549112792920882473024291697096389619923348350586384537032161630841025070471859641509871613389962816600192535801019936491227931448675535615918526393016347940488083019097208001483910600174999552180141148711229670390481150322891011910746043955943925176211701036492808342661807553775155616105261477261999036725386668937117520794799224651915971185917534889365038040145737071510802388783551893740311331792132578891196034827616921828769292713217989822116778551079841523068359845229184428644302525125772576713473137814312176216168393283074519057306260737592987383124649945042542403805586698720443881805597410383382544519763048288148757421775164237438117709812290313619574349687650280948275485581315407962365257892104207563261439962068091003647275777118183141276390042009785226328985614840918053830034369596678203748578228625725692623324070255567848014865513549030044721058270492518539235551273232925055191451120430964340055349495676122755664905036014169214844675389744740950945215781598334303765199977753779656457152569567242457896642995470694573817760132883847181271830477606274550353660754673581627519903298642232622954697537498427623832187339289903114370728632068923948172074294505070653532168824131005103784640699449499042902630018910392081255050904411440365755389321497138145359694988342774661200245296338167757491997295083286832867181564442846190639536425777102708680658449107578988288560379857948039412778704891167437000777254324588562268006473551255653257656145733902415671485559229756343830892420911188851945272230372731271804355912041830333191379969945315214142271113842318954566634950719500826194458005813397137056276175235000964403262709997294099043181199500433641953710694520720977824901962483173092570789674094779026479718260005143278556124100947882141648313141805783171061979568693623774696704951931530914623190297430222969103686819264919723680220361442607942366053210770005453720306487400458482040201296350224205436642969484060638624582480436633763864663508019171702626793659898037125881684266077067027344181891143641796223580861711757403226670121355189665978750604422608364089860302908831617214594491573677881635155405484288795369296036455266211279549899589716542187047129153733908023137285809386413213671893573052095734809821377042190764871017617752705595955238038739256838694611799046156593732777251172428189819801720895006148463591767580250471272029357483204370353563896189684119648491517091090719716450823379546350918381582936141328476321131969238579758527992649169910948924512049043956567987682348290266114211057499833587427493027343892122299589107587770927903471055317185473505243434996003986721570439660795914438501319570859912488276008199598850782795102266063956912703446570333522626354388084347531742097130814707905201092763710463103435646694277679867598589178434054252641515366267775653200530071719947868629249913269020328660595769999744898973193278865628377846981614377575021467701164787880054848245623095202863835789905170062668934854530429510324548479787223437942335208187062619101938932053414455800111416655058599119942611172147221684026345677324521209822448356841774909739706864859802994218119847103343420300262945271816470000048702710464504572238479841051656089022406642682625322846796704606172452171472436913979508095760807968852639242114741451847183519348136611292450907167350058530588792252492630037357798324319724724013818648706634116861920069927039140214141954421163307129285905449647132194234696612994863245550074995004518461903543718606260151530095406746985377450709477414775059834268841201159339531006757976895712866923516570535675593127473384340339003869348105273750224601491885267105510084317633796448193870411006227145136834605210963228594890144841127115741139001567923757690752268763689446308020472617776508306740125723677807474724618879317414523230796380010911993850656868555386278141187217252884700252553356462450620004289663813239375871904502464588746821129351064456409227241382972290853688329443848344543540769561387373423355952773800060740962197716533497265797667271415094801506450630981601976894872678939085935050988862605653354119882927121442218980596186167285369087987512036529908413783914070429760928372206676281703572258612066470816356831326651113744354136431902855186884537964125296558614825377255190025772123861722820332871230235493284875764803863355330546973287554377021057190008412425197290113339977866087375551988542988915583255288203897914843230757986372586664746479633523369311190237476136422692104246659184160055402716482487125549766298564381417711484895459779782313907351386218861367032282125943818621229848709198793654612324724891402958017737316634746376568925626928331387618261097906180517101261839700030666760424431040037804568538777535703200847644352567392166314056921754784456866857750095244265667270958745756781476173436533496668488019922533490808395943690558563316073937593574606406245978233524606095744401364197000887823562633344557194893695459425341115626217357300770921739014550407683292818947424916752796165978323239005418638826927151531931216455706571850294190986413872342342674879777566206771468694884991836718051819138911858112394861214997853551067087075070617379714210975806039535698925311420596136564723646369433292366668217538852157026465087927585608680512610874192325846584121352244144500680557541907824430003416515769246550438617790290037888794081523651951792034145546043523735571768862831298045099130612656438691996133009575643916551033117392325050203964101485161033188744624991090766384250547625296869567098553401877055839058780548106019942436445456352429133692619450258472840541284457648463673795968446351152193456826604037689206181507894911336986845296380522700993101858712022240499944601133498750652246438781011247773841502139198343805564874363191578677874803136149638814126625220971004063637813003012871855680399387373901074100487068666127975036181922882914428338284585239451913004495756619863025658948250905465751533381579396916420689618320845286641579852809231049270309880522330131780944670503768802877435902006693467174326694294835985080846835456788131345179603786306957007759551662252513424330897503532868898555721015059051956956647826932461315310065210838644642837395753274258580673901368865526575826869372305666778582652514873485949517882701264231438152031511435653231168883941081228958476896716139920721241658668670184619259282592610894795715393178369458582568080619894238808840335122739614140791399682634852818705079613418940695120669159898255729543720619362835675297792684468228162562103111428162810483365318405068216672719418680225393725999383944226850961116823782873515041063318895583798365754613055390169315599412621752221752669464676999797348081944165538276751490765631224172992533818646321881823115133965639600426878949152703244196653626891019075854489106176116867529073700601206735271299271123912158143135865575689085998045972817686475325956902930053699131966746109242575028075867652740855794056561560388912468625679611275861457890316495669511269194903914352360757594722957051837072449128709989703161478258728628581482365625128500106623605679454830044633655421585459194093280391206842521905633505414478375448204909371163001748557895503226469232054507508688227469471629723850111843230502455427394271157666120396764776264670281822739359193977407550182964757727491285178685582835197979052068409073651403824100090257158959640912287785280096309885377407598807562743130020539003489487814886596667742597038390514052810422429897829177932034713538736415118537320440840752882120104318089239091877226020068467931014026585246444728756385223424991888442583020237892867326502735539909679605476624778098437781887513446376447105377508346578974599172051784328434968495829284486702761508224228407905328323182748271561596339836805749262774373882645841592090177291186821498346037141984330840751765409828095791992297108131740508719953802535622129990601278339605434764602455373988686065884228458974030586448673608226395863940486954319128827922810839716194687032195810508044709168872997216189085419835087240843142255169294256833196251639389440055617014683715713592917474119690250655561371264192172382425547224024993743681104789395533509015161071201596187213964471313240653715900654391243125142918530896556693297420281746614095372305884243278696341674965728730712823346353235320231887555054968821936843148909922272016260224901894598412019962819195973810954102540615725397088677786328215403367028631479250804066600385015014492114582712850806035032825077421417541874002001264725053520603919559853469722980703037524908978174148039508953098924533907180345751315479900984688036978450266295601203478644599129764065381494733034053222236193938173029120333497943190254712756089127593196937249934817148416699646586603706817497976744760809873070247910793618960952638740306399840801457091108539752307938754351883840720285672962639921681253918441055346913437996717345484536128966750996858923043030014194619024087824886277015726567832054461284891964257703387082133207138752153805021279631088018467495603343180529644164690278810181190344775749079386375462201565028814479419228647750641694759188896984552775891911630467381064179722333843661270213556538234485292076718618354050553126545675982064295999238142647745191673043656615484247677610182679362024405317862009726397900832553832845426816719875065554040080930056657359224589166729243332509238124844643614480084453107349600234299145204117630219524408582717023459085488966921258196847792432290551687695182808240530015787021262475680903722125864697450546174889061332656158420681278886835306230415989556299410365160879304274938508687505477402887749038794680796977590804660119697657330059018760812627251672036911984447333000119697005760768911115515122928563708447826946631405167041768528414897657663483187440124961690489592684184375474060238583399915011775373863247869874642627164296729016188727931740227310354505813267480501457677902744699583894161476389736707941634151904055383655004602684883627862371779441863753715808328793879299450289985439954297120143669378050892113298529242289962776112408862073298112698608382382297627697514498471362614320570513400306606489537635692721287541102587821497908086732705884006226577006077647946266125719268626692303523082483021704579777220907324996954499001900703232521973610220749925785051112207284844030765635931794527735031271471504057569779709504480301266518054802997285310872110824459788093537779799521519893135663922566113234632082340567983161177468809591907608590187984328278840810865803319654621906423163610432509567208311968170003298386719007013832925816957882686438985077201863087035797488866818168187425681976205825028959873662046845891747673530117702800501361937475320307882190469307378869780934131328203003392321410412433675611674974991634609432222780612159566227535939834320414967659549138784800251240584936548855753052262302420866912414371423028408169275486891675805514644092431982417234584479880206681074843425539781226343556702396520192000480074428839307837349113633458784507169584597595682825733916882477118869094317597789823180062945264798610886857893004029319179959575258283769646029334405296978165564939481435449147046451123181450406109625746745437382703157879588416378959251722656564020645090254669694356038350022181883861994576106010118934584085567949061211902588070747833160911755178557661607717951570658930564706065469163476145962702342329999288129012253872251170049092428470782306775904468689116346031690307369036284802257150710858275032009816229291499224917074488952318332036333410534235487975654656290688078110787886213751353313205733852331412611805358780608537577522974795418275517284576007212409096285840719311400678646099186379678936725251876649474473027616356097148123651238697329592512668396431208818722749452026176807236809029681322646869326909300554287931643420506113324323592559985229200316196815628225811540926743161454805461596234289740730073624875110615604852831090969154725863154945262332345808299720471817308703454215354511949034472124928248336868188639592678406961713489680943149112666242729304533671472341213095526488087376933861863113194296169284035209161571627928883758956402832429992664037932948055620320526804940085942907626206475991929393608297222129517822813424795990854125017647960965060469109284693703462235592869426352242834095857412482186148121505733364548678294804025596510961914515145343520255264215921927801381442388019972388871212457646476131752808262453896594681786545838041201884433297508553658283569098771816527325297859734707949774234524808169721678943807740773369865944082733034968153175201693866371359462249267230084646177533142058067907182677888978321024304763907047826937139926956296717862190655167180453660140614335012675065171889830691936544561393820570155821439406643010823862289828691111032228006446450380262108002587908501805566292109041228611391498657596036058014501998069929371505142554867176604599171084259885447888290717329158795912691063629775550038545205690283629009303081290355207758348098651790598491496498152642580616496493214903908631751934041736307344063976816183266441536077478702440530334977587290407082319031912567469281032824886250518970208253822892119427905924240995464622384584464438611995789310988001379630837319804320453360967054157750628418071745541465394095894163449977554056436849905735206556161024491565501167465128827795064949217298061850737609338765549196845296056378249543988052860786552473680260129282005696989353538179622254274237493214737736408391721247904737072601828072699090937177336684142588662238806886684733446977297819377099215004941507025588791456164282814193120271024041472369770197816751846450017771507182587874817836918844269378898237263533145813442714270472781873372029314159928971297143480749107215635080851700420607728348937045792334698819378770345256211819731783556338906827725443140269472552535090802578714690823937796819061816141366685869015786966141680209298103837319476036294266182850313039059781199875418844460147252708881882560643663941413192845411710707387916472044317351884466281926855855556124674481505659359564983046486483424221119790215608384631543119056616245525748633505924145124042168981576992585616644188574654117644148196209921717869328080788911472323804415436569153201152659104304814843768689534584852893432397746078223705799230322140174672053767926954253740742821297957528621628706976168108428361503243806898254298286036411444104130570585962326802123691312606922524588738063536720062958817721711395250229162713048267988032875362115605052643305169119526657901220366383579527697233201677034040486461097666729145114134016065550356820730363808924438478925819152174433953723219637749419607764892181772563353076797424288829679501717393469212221550649300198557406206368170080430157722132380541991850791957970003398348329246024440565235971618813226800463262970219993576891163936912299685084803673474179521167345333114920352371092352077918956058399007760390382018295750114662813131497803493587883372425003229377363431360194745301040069634919569060755938616191212632972729765937319906616601302903670814380691024291452439659576573474265044343446216438525383095930075192181716470777266053001343324348782669214465815169714509523907120058435176841198331041348289346316357544917439360016504462996345911590785042087712572119078659628105917049666968618024374662779320460058793909714991403764099003997451194927908308225717339620968599438153577383379291304244141500206699765432734950643034672814412864330356391605399719475896801075810485805131124647076289477226702002393958622756974862119965135474118796578252194123261881260288970629849834275056006235914964628779667068332738359263845337879861945598498897946152234262726599163091719186549258485412847509471196939256592500103544558133527654101210435403356749043849554901117432036677895258710690474547668807484688522299365640278332782924012778142561065032912721311707673886582837711336184537238649582971379293235668380715266981927724169100534012233345188360294029870126014296080395597322355972485817419006075951633394748404656530926371678177044779185662312740757001414306805847196637495891137676182407658848509144242828585395000818820307865670831226870232351562257024699709381573547496569395107539916957948857084583694798057373455816845977106318755861191840883995084982406261155325507649175514813601111124844098207098123710004154903528543258270087280717452136420196731944138397416867768306308175753154837716675660742908418283606346226667311469749947136360610052337578848509678121732434808910152150699957940760035364386734973984064812172358594381927524607544061157230388951822488350076951072137618361893233114545028136895279287014060288612319457098151149076633985617597921933533311340620641689502370894489999905749235884734646539422299847609365786346138309076735510855428033564931479362038204155919744381616201548250796568515619139906716083356325636893554678607901538840001539338097087814176282174164152754271958856993536791381284599769414395203705293270614181665698362593338255780013912993866660572585180785409797198772073827782619059680340638702113285907293453746730653790294994442609520463591339677439610806899355567832048024984515555792833883671002573225170374373666515101440493130220656851213339945771785782908269124261363153583556489421267985539249185355564745012936270105398066664797309999443778060977582266089386066178574758431485545532957016876286274158049459777978272569125145341035207592708016606637976645828530198213054655874000253166538705049279813341276002759730349034506180629114989137734744709629665461074278650230278197186083106162219660767976975202301547578464019040925206287439490764253461405368619190754446793886427803579946114126370148850352890679674384346707288673796084361454210121839213134366474822161678711774561468831680795925009626814589898145286138295791145474437636769015643796344772948146616710474895859040109643704766031956762522848482826334364725383864408473596622765589951707867023716462375077528193403858838432726931392044069989044449401299947690081255474161899681971062053121364923048317007455941069424772588395158871513884127479719043710879520567811325251807556518894923897558341652484335463055550324208782601718306336435286840150044939475210491850254932144942262154871990338536411602778129007652396152374629746143249397970898043413952907066924895381905926302282233605466792870280626338802262368226152109267252322249024772729094027028614241873428019074479280960677000657611643483530477324262872126256229035046461738644569876170659375274247252369513247631226282815693232127716031256212436311732894346252346875782462806035731591276266440612421577181926987587190105982484717129696672121023801030465018472304887838780310711156335017124116704968712155059740701830542749813267886194273429680006769016831000321267567329035690913642492196988642682773195984750031693844190553264666532060926200667214162217305531235980222471271876869819984051779420676514051605931064615878752854395673618410212928645989431218408514579034067930364793009131274228970934319451930196704872509291593705171673353466303203417554550973859178222001764972563324671151850108765391103803233455986326793712057237465448374862243278782160178500706891756481372382081128134928044012357842147011821964358824098071273337739557874510719497694307310474965876570286756133125329467939437541423837722295214300549954622658386321432554332465441976317458138496292185816611166036868888381638998900899817376801697804507457552694618808235832060402613375306252580992264492696526198504932846141893439822268231597712381737102737894497214871435853000493143410136655799158908997102361246582995688367183485652781871157649226919330413536554819986818220520033563005926077731362855941749891335320339618193179312239807653827054774714434910466189027510949887500911506191108308001485489704077195719803871496722544744173097295087313665361941014572285141278199823910447503466415829718537936569633592697543176644993548398652969157312735130485619353281679652689236041227376120060102252930910507196009808359200978752290779060467749383153274622585021809708993379618339484802376247360877959790456075085023363477731996802380784907413841731064010685932302457493849289117708692705530031380885631315730167805717817010683509096679902454288176963715547590132083251807699839753027260442494211500353121801069948637654231961311866760961038014025984723624348623427391052205960116304542075392342622890125585297426649408840764251119645732929627436729663134284732638580560741526387381218724413332832014025316217363564144950843342501442743126289791469237053731264262109339696575050116266709343998222286191003120643215658053740892755311397330909298867346847919628708884243181532908277777526311961354002940868000868941033243409494059551358520475182529124898628820767480144706013708142612562998274407960457099535963338193550717979232854517530557105030119820613544805481721450318971934597462990289776693428133639746999010982122356872338057264685166032419813065780972936736948182838830849209928546471554373630912354784032553773219513905377904471310814506741354149390974368495934450750536130761309262518961358910034050188460699941762872520511740917022057644966724426664391683045059409783636390309183152220353953615276606833676045886206809795003428123834219088798880458874265777069387144409063560043324265902482073039841166719298898072848495701898274831622771457781727335098419709773516688522985257752378968429113248889387501938453803154288987994807145869349207814884323848299458313999754540115554036077925793780421982061598948857051057532413772815335287653796865026156034539169083841621606160438502092351910734136089062868922339416959031539793335727094394804452823882873810547664849573357404910554896383078684393216407310274341399544606747473925816778541210213821470992351444483783595104708046950806897936757851607014909742871841084696724578344131495856043616308483289918052898290773535005143407086099297449401819387838761889797922952782834912653543711854489746775059855492400928474777572052331758168276821012367723970971136254128202446074303933761765209850895551121284835573594401095477669687832601006361939117207463081728885470989394338027496270942399731458847414894037303314808812619416898515193508237919218901664498650610226864463644127867123624582289881153296780127551290395490691836367582164246889764895866588148210523416670198317117050989305408424608597206810459390242596065907295317630156952966308450647400137624243280213600283667835346121826639083293652877411468337844824612384773309076398874532793809802230144851225754627520970699090345068173782285016090040281523636399509355733693462017967669752213790283791843288854949210053411571290206229914968109458578355648942980644430352482648721210489325610903264376973196771278201042628777267742776578252124805720861706834107739286092840941064824481123730017395407773742276239953451930440289922680904579244447942017985957419834945628755757192634303230234085212823967272808580473654697279572952188481832123971913548707717539130252289918015533445716723254835003738947725380527748953562713608391075905746870872555842955017970858965418294807169736462051028621789477461463196898312414788857384911873271556487792229766222523652827995356627092897664376945003967539044711492068189200612221452420178965525904975452527357217953953168650341030388812309136013695377389423692857914487303547862780637783758705225461462551131665784005873475710004382410075285883939207866799872982637107249940067332540814841963764061946011312225953629231919640556663528956818143524472513505092038846265288037331260484475895642870200936487842502780533498685031230262480013309933693085421500759228337541241949928262631998031892287634362876352682729770051004504798531293429004274547057112323670030136616444512133975730651155014678507144399212839550042140952288829126992493654146053809893833749414301069272673805406759090549716267596079448024641087047458355004856870427674774254027249948757164577104746440945470981041766692405172705483658846147093487684344040658414302049778487176322370622521722357110636096419602609475060344015192623950638084191309578419951391720048494548650449044953152054317610060777516724574609884086845112994354256191467116147499773865916670978767503449981421341925578307630750075252365951736449362490430741306717689937892326419142440813872699894334291091103423102976329832829904916030972591125366683777717258649659778148457152099525106332440035185609325075431694876235707337976208156175541744035622770375260297352390364525180746550327057077951494756984195802187250160260739871428111880023702880466885392640162858978434868461235696225796639991273852426573845128036890773651339573482198271048626787055046271140646057058996812064865750702098290045332957015852489370528086887176145786510479273306177339051804100348357000907490268243223742551482231470919387714000815498959800432347358923046868577125194535623653393700747849364846610880700523493894811415249515816591337838083702335124911935874645455662639782912006392148266696486289575295049985060367499692237102864835351011111116322001924508920067027783039962589735116154329585237055832313946085992161534343930074120072856193734713909532556148297604473175692097113997277237903388345206041261667271457977389829452466775646272291499136896707134933205190975373462146782338274309545422010195180223667309495793911089593095690969840489596512186137078887699294826908054873765333258646599600532669495077172424338813432604437504506050086733376321912979571876151070398157989014565919606015602467006747007195520096864476877536534621947683341118749874582285377287014857557302879537602217840953093796914561957754441305433908656023951866971291743849891826534938723248376021309591195517087498868206655215132936569665158081033378225416465643277795348510341757501425584497968307380575043633703876203051068965155776587359955979590617726523880591438086001118859074902973227609494310489429231189179128484198862003869096269250830932769506296643046203939349028832559764666407363094363192336248147687134407589343217563424345781299869682873758152791224684725807725047079348771540624354810666740542083113957366449359226504642581312772577671964060406389905534373344696212956045835631640328148955287080997904159351239798118743323920923483234981590607666252306306071899694169564234471229143184577326567097842521536681228862960261489255422891922811369326879533753397867217274639329232131686785682438135853594782357065101178430609235507104796565480054875126150217472590809987038441069903833067227810720688332246097883069146951613683977946265352183688155345123343501193602753674811572689465332581201813083181532280204994353725920206931990220963715108738842090563648193900873078390999774784838855956121350712449525923071590648985945925820701967835382963749079023830317774265806080684265258209711248428955869123393955261012050656455301808437266324731555365961225711893227987663382641869968478717328511567629831827506556586349302684015566545503401428249212269655261592948206494348867687378933501630610440997009582876880250015539830830316071471874614726063207995207806051973008220622495475600872466201929552441287376070549489704265723199349183992129033363147802424178748515893626881705497931428593751332676979078689921325656262882691576673449404057032174445259704438905529066462682680451293028160963303660180934904864571719365795154891003519896081252309986114702191020259537459326767268756863749346279911145640777624857427284077311122827083375480053188595184808615199381134947901760713051863519024235865031021167956610636333990108244754815661780692730916627444296259785079882583542871848389652701584742206890928000494531094781488379258830822234936810774306526652840756299729624762806904309947773170975638401078368411437838643615917373675837126998557795715748584240587018307899599008313389463169945356092853734642013765130614447369070567626318406677202816507720712022359786847721615060139896770450377957004128105461928380784438183211744176668568322152103110806820840854546090963898114548519075573150671986964595083390884590221198024485609131785780379177309104302430478159111490225775817907119266264417787883309547976489673617009471927675970516397361125901250906511903139651396730434447572862473099302517262250025254894152770991827890587482191938796313315066701267723501750292538430731720186784690736306098819786644828568292733974402520267326758730588092849846246137919266630887823858889297351570156875453503374394649586768934361126596799486186079431851108829638434055427491339287372434034307831866373819106176965235047424676202595369056175146565130399808759384680176204793091332956970343030331625081643445940380993929984631805986383673522972129683417138946686452313492937004503648624056387004624264017221198283612948471224067653572585109107532104246045211710699407889219617466947289771684666143813800841123666935392857808582203893811588690147910346077825177347530710674129519328509336050222768866035179698888910221664531999479264039361075836052843342623179310001397612450063527906845645448225760102137203316466287580559248296907061593705661634361243511539629683750079758155932912647716364414505980308944505889863179891238258407854681446882679603050091968019036917842698017767575680297246644943063843624470642642288372223648787536281513653498225597241057261039549798678784853872991909148778675574264906594425264050466851825773083007437211224693470655884687009113140375119682316995070259866973772184510442399565427419205410408002560107056237536453502388618760952380528546340803157911059965351217939305480136044021555286783523374931446394317449891070037758101377709611983955087125062707902020572843440479214882420123819413077913258125034400452274866111718975821710027419420058073671528404189601655449880710197065207774939038788873469860377324867468542849137743719978333679150702846978807212333904226183292619406426890545416481015245391886947653907677047809698064663476627774089344984020104611124933682653617342271071188080121276410839099443537032969323554995437748173641063974861926770551029375575091398904218285040191955511141173565564098582418887436527858186773433346610464655263339139282324512802680007618862432345326468831930066740148858027939474113184057863991897977644070337359458745479346099739646264962524029321941487431758201487627433202060122197420781298936955842178955914076501808186919747183614921384652016793466492104809884574639516515478851864711786654534113729470522995412418705838516325655843718332984405515996438070046432842805330171776966045019534157310416955278492866868635786943520808006314119951371851240756447591037422782240065587736047849625033289625426607077859924953195173281783612734858072471456876125768784753239157354701131942112342842574290618101836370304618467952456199400027856402991321094188765194378649803927431851379002514677819773314044693580142510744507069189044033272053697173286191789858903271112455849177334006304716708716815014465684185632403331578138384236060951731265168495910781827803892906722835196998946401313464877517266828733720329121267457891229314686836753456281567732572408728412675322851138786107954069321755611980589539318934650012039862771847927386661539407883421524161048504975373980975805404391302428178275127749152672646295543357469808421061634469835392591965025930093252991101342229366267644303675196166152376606909998386412405988977150948392469639171796917702442440567961078955655765474947432419247690449552334004516670490889716407054068251445478966785998854304168473124813959284163299110304252153033818329027544703200557481453929943409489491844139628839566067326666582288848388987287834884021984460695448175297076158648055069853600902303645506798803681004898731420333669897814433322180305344511200239096728619848251926345775811274462344389703650399751193383294123269567601761474023904155524610851663906410146797064026400559444902012476322607574431479272006126222891523448651692222978964869327520228507105335360330828722921502430202763195681497005325371104844901680943731640183852620632673492487507793111226202558550979545856830354452608796459445924535844500054211034426226692500040792940720849359325779679565310330205313323039498626010435772626874679587347160000118211557956523181119614621453378920184400236178828759918158972040189356503299255720490313684888419525166415069678763196644911974675846392347911399260751373338896011068278024293247047925766284166672519617540075502222949647918427143012922167742328889188266841895346548125560550991223306860896810308133119506150790657758495516906401474482196021786180162417212630139423032213799738371558660548923894780371874484941569721805903611255257251438847362868239932282138915397411885329022584858098580121986228554711253317376243882189416285385056793032820478738055884010552633619053993619596901316156015264998868570959767217346626458232214227596260478518539509670351366150490120673702659167456366424249480926828149545065907126286549260916561394260821020184592370249248487649847256730626187702531846456164189304860972283007596288077187048938026791341680616121637139322804176942708124346609312619646233492936583819010058976705140841853263236509233651114734440657152684120536647390530074487405291264431939812722841065928982318518184653441343960604854266788439582654469056355618620227936139135775220489564069330849990295421298647667703545569678326417647056656626381344017664736447873704581563231964747715366040359543175176822091225516652728089493544205034553610209912846262539187119523776680189161932160220028853111500939231620971963210461919921695276853743093983691117922734213679436744756922729811558687537183043009307963128498829473180144457347762362410167660689441561969626897381172579371258234237306715187135939807800598553369159618001673853498490926913093078290512568640875975707790410730275951403354424262454746546049434995109111640497758514287138099293467066911124111564013201121460913930540314203477153673485466548611695113186434795678466935449925286258852566640808496544248975142808740571553140635029028242040297685342644236245591278056517525172689741567438173646746944457412222047287102092171702401341824661979871190975225735929317763931823029531937360440924768411361979047466679123551755807555776284167145309440323930739889091643631675263092303801908008592868285706683243104133184095733340395407082184974126152506577419500298562821218013723342794040076147456546760304477891027392623520477144635593845624167505793578237202162445741901724438098256281014085576514241471705521100512828991962875565378616681145534267553522356856595165645379762920130960110335216791187672743696556322056462720836346176512463526342225144714341256286112477994386976623238952626408247450587338620583478462552137145971089641802437009648151868370375100419876740012111253698811938316511374942622180059151241812916725990417414760127888717453231320431504431698448496470704092695786536128979618131304634870011268271203886886808080230304143128820827798397526378744053981792966316536614966192697617262705085352924455881283195849551807058737732488339277198861665809810986329914438917272970069113716051524166588592774035382718222396895310115229069694423751956424078024393056705103090399817933422369957530202462642967445166695262310262779547760508537496765765495477018675324786605926506720328243551783361362908455688937263255809327618103742304778493007400089265982085660204315212315939044396245505319651599746367763186236553600081699465962185926122041793853973281190999422266204033399659481851443780665148318796043378272530438831259868829223722206348076644618405221443986208086473421627648161877107406762946389539895305230377179341160614664847703152939540639257734307459835113922329403222633119036955301288668661035032366075274208700627279608688216265631687427862961690231352552125396681285717200525773893074149300882561862644382055932502702186601208865773566816543134918215319386576671147330124724471032426125546961040901715890462404980207300913807939716389968604457754368658814285351675434822085988666653378253870303200530121675868795981118292139036788267783351786829286777776359498614389439391377398516131681536325196440882673071567942401774300504088902573399806113024748322922807945588570593289854626942518714033694567604786195153716580031978933581530310694389372461181191546097884177727151726611864870991350889669679843973884717962423053797267675755667412640192110662882983290372058671101346557018953665419844559030016570237322241662945815530479763426086012260536865902081536484009606418809914234049531471445662654987126290550553752785627095619917077966025693128926456801693083455490562736866022086993620436292278540988691946502555664340485153753269122630066564140368972834832050040679362259642820987428143732595413984649092471518052241299335963786149051428723407714978458283624842780297737090852821882753111473697767536316127927419216496031166098420577464879250232332765856509033076791906169050974557365199384339590028671106744659185063088891038638120160430665788498351865568142884062434443323084279763092941793570668320301806139109387754136732078621321449912796391737541187504060042136128865926596012540847090946253177884487729665516380662327347036228007404092500513606324817387075805165990457893666056148405754796596459913042450484112392932381682102788363951296825673830440050175863072105989906953248146791842665498820642886751245144395192879187155549674961344805122757588515508482351385945528315290218118785716027648827897112451217975972086359428218512285205371273215263467778124565699374442775707552090059105287743687473266168072083646358720444762141829793501626391513075508966846889022508726345241076905839748094664023031902031743910692548890342238542479828917417552797017324316466854009059823966533553510461291134937936434216224117376777325931165428649892662754148658562252629843069269452873524360283968662354814149361437418566988396752795187638208406910181053300341889521149981091926434574742677300022029806097630523066710223490288322793789304803622160220121952862032474185465226075603864055862374191858067244110718341602735981531352693750129808931195186234971940699477634344090176378637820995855712383081003256682596172862859653849118791827787865245649664053618559253851206474086987691350587098229144498008386054767085209127962595055921298534248823683808984248222353986825236243957453909411992449416544200133939752959447462023934709635590648352034334153768859101794196255890101557259626858740664527192225713305135403552860303272772148591726847866981996275207888469122888332157595064944322667105515388875749068398751391332171365846429888096249630304028111899048544317302266660230236486097022538300651479593731676294563101057547039056216178246938703593744513280222745159320923749192610274858891554999732891117005891362222421104831768733146264152300074407875406024267562272170794087301429820930686154916866444398404174436767892955102515190683400424824419093729578728339869917740589026272085540756288807615153819385143468681321809315391163338254351799746396961829426974502186125596146343208587533277470866521480843047438879847769301426546876747917423520837354603358284149947509197187491602676382819180935058585164856282333437362963008282758339517168287492982764572619889717885255684039648824486633690070424215005910709302327122120256908326531500053731558353070893940109999481215939093244466924690641894508610687369421033369092296601843573961561052296188316734827411054871753941319702600401213442290318991578857535499168169290380067916868342504418342776694231619100479904825625030660101235013730610996964972874952997533927258741457517985800947460313285503624849241249498952379963006207505009096941621546428761954107261926721602243456752694087189522399460441476558339923785815972962967704860310176543917210106163029593598608738411298824350902968772912310134931715323554592406633311486477904168924351874467029724509214758032597875901456431857082104244345535894332261299892594306956131199495178650586262419204678572417124196273204257937219125948805915495394499951345313612848631872344265441432366112712734753437838525012888047260891591502405114758054048822461915514824870271846580627432958937638181153085346977020246622765767495683240252390485410222955243089155492310617985492339592973562417098254287913159923796044741188646661613088306611802239342461863438530111854167521109177854576323928907189193827958236141620272346480435795591171133892258250680457950422407559002206227201684845333262820281125253384761178478734455546519001663064229789048925029458245068553275278631974366182201169432370266719204808730435586914627493584054968543109270224169594395146467531167304318363379602883767042902366268768247763730459274243055961307523660245298216123080480519264106306871243826074352138476519277067839646279424211227132659220823183511073315524135979113400272775987700435728772101556695994730317228501744081889462465674293661579066404221398310802102981455606849319083430919610402867476481970483456245342705894550321124383561953887780440910713920248658460848943414350025384049271539433794431572138348792345035298524862756749558134894445273400209758900645059957748805431248481827818320147418470117323746130185550069558706639566163468575423373409546853366697007149221350366691509752702351608813467545512758831260119981100206039234295494456690561116193423604945828347059133098515606824832822342169851819898746867771268668512460763785750709681249833200725064968034652918311090936760730247662904342406873113321408688243262239325620343435079031766802046348478726824006553316084417863190508566515967926868729669217404533747549660345462313072747982409069010296416669915822177906949878008393405743440112915806052264228481639555848355956091566028206866099773660369101170367832795329382410740619350193046541894036272966247347319171955783967461106541460796339720373929148116579621703591785720870668235460435991801698099252117747830715956839897624133696713867948913398336999313853856646625749828270128514333167477911753330954021568475893682638595136279636618717972149773773912741750399923362769612252842123583333912496063274389684392723093981403406246375492091836168263923507291608387457836766455480156862422501993314310512468590403223591728791070173312045187473933093449060386481503884307665471264605074046496915057001530817970269524863743206304503580744617422432220808547651673029726489821496381985392586822156354876590505556341721091799298878741538098330108173037418304119626778198636220957695342192188217496877591008079741042204027798031359253733166402589339741374922422708484692071622474697748013187505691750574283175920357951443097264693739315738351144056744941953839266604642066674972216054368076486137747148750362152691547860876882704781390253420580419670271336379260045912691707415380598209684454571678805413116147128624256466507200423277675886732640182363530666126190954010636271912537774815212283347284612230800173206392740094798159588977836128487706502351350773349651769542057902337536594330095953292162917789823253602268919871540652779882044632442719235227131632461251686030263043187134081135662341435649741934309562738416417770111085670777901440237232106629341783779886468718737355947060078431191352670418402968616561089551588030553571174567593699133581999571888230502669927987955645092013476618103918232994358284705230694718781628928611373608986757033357940524943095535122092337355027890565870240639071723552526652819297027603385591799139492273535608936522765768942928021370654597675978575820395037856285496454116421214450178699012485291272707177236387486624269445186890049567431066439446806057551831558890116851603781836480193341729473729098010222673656129140618633038573640810306888480179027405458421737830008599300297479164354335091237844593195600539152675137902327199327352116460084235211835309606705439488243595206236220623719000732080908573946509222451535752400531851149035736642603749178771273666760398822479558906088021202882552522871486900604655252296957337548562319590568432898864134544671792032380458315790447639335916970747628376784658651028184621388169162441390975186665078849432608042241195837038628810112596465621787188123381379589427176158768441671880868385033623461770553013196433384642681300052361550567024683637965458050518364915568374761398029271923907726199610728399646663941070498660696701435653438432818767601957772971084743333435284181429762453541566295093885769846667256094191364578370675534064704058001374429992511494431365913597838503821901669264616631595699812919340796552730245237554707815171712625203355326215299682169449951055302651189628625495670957052852496773385089366482528498471230198300765603361368845846705486448685913016778796883308161595886001005982403767987747116341038204864242267429871722173224411296521934824339386655820060629313954062613024940872062276231727126920392456291240777408938562333804584135751094164409276215046842071394703858567161053164188199023466390088728032219808243568345099494560920763846381623473103047418131442704305099096066056221967032480375059940184462493716583503322143563865642621888647619555705640011022731675690967131457170891195727523596519358711792289703164745211444110186472579162338710478571363826640996792570578235374579513562421423469984852511439665836390820834534919175999995023437733391692318085270149429057712014422839676246545884162798324764098431599802082021539647292073355978774730464158997889997366178165712326626880759388251201232203628332265760544249560743720307324093371377022594510092105291729258139798911546787414424730042015559353728056033341600908430020331986679099542001905286782916790173810360607211927066066151524627615668487574913972948176066356210088286469444774298542782836545647341716351325949206049728746617346652659075740025406311220620625232735703820220990734054560740978754727745954037437538451685373374554478941219824663488419395612331042542287654456618384147836365087865548011010093768231139723790910275598757297782239578421794609398648626765022797255920189317202323681767907613445314552564404030891476041960295105554335562358322819249145787247973744039817369916384336477516413955907149638944119434987824968234589923541905866611326688974543206459982218727632860622341975671821264223181184199310934011036405464866086876589812101874328768430921201138719599917995705034382164514303723367106369393615218577056029109696407029872672965192097095741789770409526182149300318278916831669765615058951293533271413411599849812243282856541111045370246172994012993479341827082420624482356197051771795397703450168198100243218059223509117097388699730017731721292781263505544639995386850726053210028371134067133645447771459865052037574337976727193112446705054772491529907618308971776927128901559446106953028209842862169199593888435059419219390851829428060187625018161356723739329284720462187960988477192428235389957929388902025435655498044081925350732297659387721177175733059346749776825023307093487830513654576946067974152624353668873300441779088429159449168403037002522996233176928329720920597763651185864720458848131884249326049486663832805811165567166958991977093551655977727038321689352721706994652043141098946127438516858877825732873553046289884021506428291737191774388620818591030801857964829504922243806234418733341567240503682661754760235041219652326600353977794817880097929116293729012475173006668919482947345544057120996781373825843683208135132379923665022671259662325225286185292546591440845065330735807259678379578319075067867113499715162725556682470975134765369415880623198329448965641793315061531426760061629998042921144589963592148294911805625786235951761458291288619765899122858494439540206732269697528669885236363149178624783230082791090203265341172521858634047490662098812000871585147095821826164152981907172442940284576505635478373795800659949385046040598643315926826461619550592986924449406745258461471899374267083055201571908008998081032205113104093554060027004857642464947377853983423683449567940847538839541002688923609417541796611001117747544034247671522227294096632617354712405843286524535991338013918478827105496895338672384191812834630430267745527025252061192776130981841001681704890009950093852408318149532118434180312317308132360033200891755508556419757436588456169612034319248544035579395417588772722128261430845307432394752222582508762375265997728306143933540460501756923799802492641666155415962346057963545153323229795120928645861524481628186991745189036430732854282922919838569092195145700470563101261543419969379865599839039528508735285036739502074592686125823560994741678303236536595818918264027679625198105718789301503982136523319159124206016749477669904628225091755178651069836229429271866836238035035265939975714889997301374688605951294228292557249909799514924208217725337810012038527023725516972701084601146840576274351711590450308291344550330823738284358658112175936702415666838950837807900652750992473886056077066599122658768855424828779248463898304370807887358593167737663566135805696486751467820968182866792287791958886620941572773864944654374725071684281590833265299025717443994190657837306182495658927928787713082023956690885638504217108311134928983980826255278076186224106717928370616194982747489668706026567723743815512535105030550142007478887929474693175869681890563798835213564418751131716842184949668209968938624186565804287423044337330554635838667619795683896161465889493853179394502920007674545597303081108306199820841685845728960359156673528340436163345448998863605201859803198008518832622054930982069875738030481307925276403503291009915779599715117719411614450847477770797071520749207656933533955624101845873156814118155391615579115818848504410157344578543622657404308341638862034991255311399459745276322160943191795617347331406864231119423142070576816854185919329176458668220922066476706632178868977562969485063234419309990046501518791012822997705916161255582985060427131261966057010801621102280467946809356810654639551765543189890654014723717626817265244024821959226242438532008059122238292062136109222479737888491734975431666820413002038998863235839400858047938898047695413271407082787627266427441369782908308814479503268093925110141718809810262618823757137080522016467662078145847282598216288620547628668098859759653226763755369278475857356505428842203075855163621758345906804412234361356570871511217230788135115525766507092879269057734036754329505673339107941579235414766623815934863556320671021461154245135901157044478166325150143651637843428664127039856760674028442597155189192458591397730427029374119946306145864628826374909836286329287251567328316834278375161554508038033636931423948227228292051780518240754696356504566979672685078747661722213838673342432734210048542454738341130896764778773058696957255655334914859310047413918122294312923252978031092546152941596133528150935047148776938463116183976415651227239202173827867570079315789022219158174807168429031584833581250079893701655216087774227196192414185441669557816585387342081397330994885059566066902517858591165155079478530762618462465013381667508228641109472013446725018273136789679445306367831764183161354230000122781249706601517128668890893680382943824953132455507898107515894386175236006531676121817013877658275323475876115812529911378730953537565827088722471736561327669337291462727858397904787675959805269481508609559770276073011095934385075831851559894644340257717036440461671690606415441066903929954767459207911783342037311508018525611950488616303767035721343475034324175443650200093834557252331911150859688318054276304062910190123648320989588957031059687777766280317854966078488393262828180387681084486308532689257482832716404074947110502702685034375404146771352568430582777301314351321116978675892721461048936641656347498793178882500067005437735229615074060673155784114880314519581699885034025531006195843195857235228562421385520100682695952445354196806546281077157712885078610238099452054598945947065550008640717034009188184179263164277128570305340596125972462377820387842363653647416001984325755334207610057584811984016017174207278443250126492201725765255896811419609686045482178641492051280509460648001731973962047749083391213938249754932950607847755403923547125284204073077189556206765589190574329369653797652190971557154351389421613577769437461718987180681496600192247236579012358400786755240470212919751400404770865777331012641461460028543888047121786447090525264569804041293750611256218831766073527898073193438035529845020398231746294929980688814300155192075402384266196243647019119770277169128356950852933109873990513746654862636642888269687684683648186862865033505110980337748909532631708511529427367444943724722025041032661085303187283224873084895527990867470474318477158386540354022642661398747015979541241064793996618935971713209088185008430804104881523945693156650655807991736932223179171306496906561379214937447432474179097733901284880863036231865141132726625506975292025531556727657804599631662731920660901748243040400552271661244964750409943743324257952069713455504947344481596543147499318187622480607281390788021391526940302724272477463394059748520134625591899117880249052068549327684730833159130196282778009932670852196558962420760937918512719501318473917800299256569145044429552649001800790742777271392023644512983271050137886144318844448238745029886536809481420214519291474484179853105331564933430310495100362526902892141746235351156224106121959714332907953569614644014215732033078888302164156628562915052477072461466457077692830063687500169666428832192009396914949517308823940698383470642113440716882671910229928392012232622195700602986965136204769960399381562636447251437073830235371338058221621458558037592951333914293969712784844925975561572842583347297785578237866223173839411804636530003518317300778514721148398425849778725578077675347575405361033731234195230713403116657058138216501581773076375741936232406589300573194823908483575606231057545340576270268420832380902317815479551812891596523734171139140592420233071715284372472681327524993630981095049135367835245513795718666338452748551058292316598207496096861728677063987944438710849478811590780622431967580577370934518879070034620316009147811915694311136994751792801124341003861600867788666129755450400876224813741787463718144927606934459142155372609814376271518786359286699676546789616911115670272015660960519106992750188045144208338556531051500969834974919089614667419287036053410281211913299184549291746105994494704645579416700051195013618659517811280129085380933300410805103881603556073639988339736057438778052892577375816916379428515898777276490455983741797328490981672060877560685047619976404125292676099334686355829426128298190664373977921441796848894815158367954549619664459190562542103484124034080538158189115277600666036209346044671783766755436029755335629421208919356542608140578034840191759155280086390505035766265826640334055696270878744085646700341039449182004869614334345213339747027262376278603956797249586521954429529304538818571655783906217867260486472829226214156335675569880002839756621316970906964807134027216251183273086334718627631911520530477725781632365643517282070351171556794036074236143644414229229091233058188470479882486661152087204466122826031748992501898514560002553170777254793809348756136807564853357754596474962154192195289844694008038138447739999498748986258062753179550641214771283077189674242079616975065268787523951179704752956255753770340120088932817409416918265248594377873456155991308775570282999062296104134277653752429838666494982291992268783550585486028876140525152803418086661914543097243696759976815503954750729093836401843641777244224251402354646290429375684362982047824326501310935828704108724272645787541224367654778509589205346967118592867392830195946365311310522257584552142378148858074388438811705179897834606228313191338516077618968857932297129502001973868653708831449715112280904233479583261041237733898380487719194430230227470563223031962041452004188446733829487896701951368942192026397256094156713380702798197291805386871650100450705483970793461542459313388253347211966822661178628756407725199903929182750047757202165951442264643050358234541578697870655684080053844534432590593735233172652274750818049609364921132413751241932341613605952266663552428987738711008155838840340155753703773827017724805527759446344511992791984532986188949640022241551312967955804987033874722146642701882401802925945689213154778297477392671909091756929282823371515865908817904088071459348844816945229573178950107098379729149919763703182643432147764220394801755329373461908485011468327296871973869009986831097067944807118342684721167292274584859537096162627226915063275406351319651733536423439889938705161716265675727777296152850248312746956539240119155888515448615583552576290044476896369442793700233292823284657340829086125153920010270021502708039997662545493337833823471829677044889657402559331103313676771352863230051233104838000516939046528051003762409456770634041884436881064860863062061171846314284752672050411929926029737101260203055629278909790776779828011997957212233073963419416467103345188483664122412256192484034812547290820426448853115422456803361343162336209448843127834752433681493513250307258615695412251882367415303706868506979247165755531901560953417942229014600222140152148060900171897438969630239122412212697316163896064200069085586027744044317392368382277355266360385494977682625901242092539983202537079804731860765943872277509280704754554695045813160139893734045494995761693548212162827942634551623921783033400828879930168596123160096716483260813848459889076862185710316068878206189614549265517825778143919539089291793000298438714848891256611946982657235456773966385282436985516665673437968125043411277011829215018769110877712047202583897226897593016584026645524154091310721037021583394575176328141128002306141313977470882005408180890944623069839742182774431819636711538159415461025336610143070956766061931329850041694509072717598741026191343284837607649648718793253994436385985550010037926874359350438114844419143042286405554445516069516897076563016674158914626216225805624249257879263667125187578996725294216611633386572037680588826714007634682070311083300778525966292636908817554805557210655939519946904069777674486371393177537113309505072044295269541360414583548000321433013583090886139598018286203933418379418492663676997156250996991469079787701321341573271262636018703681107899075053130415835055653455819028826234383144587490118470951562281104071688589827484321255612727562781105245347745449607155621713665243288298093133158823631019060147983014894958959355209863882813464938628865342156158164510458174450359179209618393937675034291616296567211410439129107359271877383276409995046083959747547196380959472414977998009908166876747354459484801796537405723653551634392317490960992997901727036327813898308710624695798432418718326121350821703634510516191092748379184634371015247364523149196978331114101221087774217630135036412279748659352557361288151370280689622707262289153346917317209647359979049972405139382098481726159495363392700222035995714793800766312508178148662611529646447372058073092983475748147657957323842230824126667331054524081488199706464119914512690209530124333531231637211336962324452726325926212375046693671269511463829502246233161453754306687148378238855531888929815292223762742829866378043200766044745161077182367582717686304533025567617868515406349905568788345017625585835503953377796468795627564286152445656542910339309801966064385500250890750028124255823239500478299120256622625838781188640207974585915621937874849684008164539813549345119308689886452842282106808710956260976985577424952560082978752815022825674084409978856842786283835787247341769316414654691766998561109803888214509544855938757042892031126021351417519965628326685840838744398312214914670886519745464871949346684056410117088150101470271843549883121097700340736230727478986238793593742993890809951829000602396393928448259750861206981430048153398867009206259593015173313089126452040822464422200413441769819787703093125760251757032653472110240398993154218852982130659266487985074280557858936041629523039524463396597773390515323569959132762825778301106639897738889900828419191788430369009125618746536484116670475949585087955988427114709556552246409414616002479740461391389834406733213359453776755564393902114785039505517838842420759988727448079835941241294068120183527958198509637568905995463757592181699306016291223494237916691490487525701073345336187738065238376286272241347438841912524658150241671104719696311652557182986671330329949741542989621766870737296125057310090783213531668312044986774863741337595975306535962865224636636269283782537404363433814178884693363189034403438988388406451621142888137774286248778157905473898012966281795014617152766742578509514443541175128766019404068851570442955697250819085110187663099348777421217590807571880687416937005420205066368549799066952758229682452760293520913735238933811168180472163493408626163456184899249878021709898574176826628179025570832306146459378403826307384224949820326005775525949709917859781485844666836722180920487938561505088118859881008857082967155392679442757236560784553983440634875697042271540520375835873505864702069129050673487092659514289721032325771802215485409627340322035606631835645187331751487218269719142503862127789094396724225853024449176432804942337264397425799655105974431870000528406335856607491839245404111900317248365891252172263854721663908605320100458864447751765252152802004328491187275724276411202623387177114992205366614746008990826725291474689105410908946970165355607906218337280464067577266857113502168903816243812333379274352363522655854793525830776086730486449826224015289113807501724606155172656193136864904877257916184488861518726648031928976096630338529480612837879109062975559871282713866260836447706933684080873570039184416320470984711937912880416994784883007808904785137536715031699319078499933339762510393779041567260245519807971178831773659934757257453116967415135829527103243810492587311629510355073542166627462168189055779861043488278575346126831749666524654730992120226347545312272803198102408945677828595567415423715023597739458847496765433914015585965542293855637259057495780000086352290620727678790012586209292212654337123494891829538707927341196040114180248406321896660553664618324780208211605512605827940529038196852424735315680391785133855894935163735866934552441033259113173731669294755209815217280664820476595366959075368074134675699582810918616150674234058099523403301611813936556505159932030159412327655648720740055288815902978850518558422492248515945631011455381488524338797041849010566064995102884415025284683160333233029991076583402973218893979278483479867112838836713527336090258112886471861412444573167076709381754643027584498958942760277866807803224541587775088839695100283546809749060620661604292239261248784624029191079822087084371662448017730691749754329430677231425904702131763823411047714956069201610521542300961565911786164380957878502314905851550089747815397252543951089798226238505926908771158643999144825748220304187999323386632798522242563499324411106118177239428220713339182734912534502270286465317441060045086932788925672704376393349609404934409483677056342027876690019615732599767745490966462725000461663447679464168987695399806828403036215551004494357391282883088897986200929335661998448840936775847578880976316224496377909649547963894399447843736697410159651447942638263587601010686502437253868254564061138134095644257919563820422271700385374030375180991011022013896764960763925426475000155922741817923880198887570571173254858942017046545948926106670562740647645900059001645545754240878757918023560119274988323540221937800937990334294188862117251848988823760116813660306202943271621124102845540683433818792786940744687485468870710195481493783091185918977380109321121396860906619233430321561268810878911642976990999165749319328349566339910572331026622607070739229441324018467001623668637283119820244020930254551245615347994659371963453843460940257039510980860729876008442062400185920394599261315996841818458138201390750619877577427171759294123979438759831550355696145515071944123320023335788397089078115803409379614752340031086269163691249958203029632908110294893543343016543492529196354268642386937936540526435816248679665264031453659098749651938369224210305565632081654080522659402805756338004310575300220615377191954029183194777096469138828858691583961989511033175682396079055809121154804936599241440245974460714485230927665408254856315376681540230853264992100841359495341068653485714009139267866087780813510740792625236346001490477714908083433814764942962562150931239950703280213211984794559572296112948287904080751572045698155255014417286624942988561307375458388376666947014700031273871744557725320750396154951545079819719093556808982501452450582194630930286603970469181379256119474219166393594344369922884790122361189563700412873573227851218297825254303503758029133232980247259850922880433092319692207562105284105903965420354696837807100290130726746096257836212662163588596127791949135355310546830878513267943108647828943003110577925152590087472127823816391144934475701041410351172162979617636076247479117116014117318827029227493184791470704641259963346169043559863698702517638433517640557048314081148873699591840096730213491366976956853627736616556962669239947813071171945734983608730811863009685723970780993573428994846059355885910181671470457031730176111795872414647062548131759343925150315097512499849183629282026048286480979962919473896233947654419965360776091788138320067967724667725296339348279889215958155402243263981506258089860068612024857635916162760621784640357939377404313621329375817385319486504276431103662939998135306649794241264176906899078841097156216331487028348874188765856404849538326584043033170300101106655573466779907333575124195526552378036858357546131532729183532018305227207869448150497660386638439127032659490804062211016646726272428143921068775328611782436170744636036531360047691538545372565655722756373291509192489231413169848844032398851909810918624715542731464520504989787450126464106574404765807701176353605319224800701902441750385207283520705573185694524472423489330391743804140383405020506164452440628890156814300658438732009696482769365728234561930515930288754056868238210803308179532822293161161248664779087703957994796207604899975844068783171640701374388092505473734569171883460243755406657701542779273570201817536420261618186347946146515755091983009671251383114935157400397822004845204514545501149694004196932660238679554904188873407007301552244569147615351508395481039875250684582360323075173506500006306919282070161771193259889507780557645304129294618390649531546980163825369065722403523361996114898543206447182644259675384207480750673122998480914439444867448167484650055335167655647723887114081446279295620141176643227799795038429283091229462364561177896118514548980427806861586467497013041804566198739113498613887407639747034950900644529053296815738792287739271641259227330532910314585896602662088498177263501680076893417522312827949209699291383461473456334333092151513726044280368862340969704776146738873300855401322289790223039450449653274613681818513457657146957405579619117886487666536322668258176019866264592457915239534307954458964066513785760703557109521641972289717649277689139266333676305779813075234282212815482714856277449869381814550671280004731367414122866510254548927831618744552407718274241024455857308396499002110355493991963354203819411393517558193368281766793895578354577614483138312689783087939583672114462978047333167394791809948722174311042972640645886138684572913382349895136970557583511317251929651415322780397264753389181156800196760278734408381762440417233362567589582811345940816290365892995752921056909936982585080215310493648893048658316432399506459482697431208951846056568784979006754572703463041513995983695838605376351328578451185298798384161291082187427920926095116449760896714371530238828569790648055749573147967601295030225654822248592985644261207485306215449727848167531192776334458949195681819716484189788081114651419187315045663504583027226964219609090223247309488672910166135562593730772596488897713759368458908444801939853269324454575580319008015786218162940740354268584714278908122447453040558838988874556265759175968450667996185155438464916031722310723136675852581576228391942936275734020788613304087762275753216020648887528513189407626035190549260758958906250488308748779065004980156946016231304992909232752283575651285170627144962405109973202858964526199793787937324748584952414809420454775733972891382655334334426199967757803390258013402208031069589909696074194512578120504764082194893839143391591099739091113668575917143517920845987269405797185802300319133412822149456758681381319294932933260180721071653159339823333375222110940441594623688345511535091475402281718586864520987166472766989660276636652200493403659529894131854128171699926905223854204891499348136515107469466759591797804288829596861054426657334471452551171047918737772641690748467073659631873366706144953027865107754130254210113139303571892224645030268482028851544625186256584499530441457734092546169523158717632602826165860810389625400569514927083550056444524165575594671370692586731778881921730796833146051555589340037045484630134777251856643268149487649455658724508759708018173576920225521518978984159943091907179908167294979109564745470931199893361795061174948610370432096845978816988192561002904365599824226360839404026677060928521561206605998185493066185297943622867626539834366524746481238273625633791319931288501841228699020785034076428816637609075291798522403952257546296258840953285640463998604830297124238127051160165762854666742070914626014193380994890769516760350248285745600202789616546318519500479555206415013109548349188879626497539726345925600490360364647315377960586076847087101661283652790305769228390059565920114977704387416921008800701093984153512437008344740546107618949718933433642911621050607747539726657165693491473301752727045804001304971932399854642156555478109731487001181435129097752049086300698636487958340963316125798197864272896424385265241461133169539382685440414543715038136896954109537452766725808255100096782522430252439926839217010679135925383228978710407470910430371341997152932377112627040437527964279814797399380058614292746186761944010945937995108969838087577619913263247140288820773409147964030023766417095250815115346586712226731997062474353822865051830597157560905314798942457090687003971044840144232446345792087991023292942814773620566078888199748402577566674847406740813114842331730443259796395510771748812906115305260929774061397790186082980717007668195067890970261028389799931991904145451351703405430920113156887763820178419377786731416434290262062985903420280236222601415325604313738704283146612249526461935805345600822053712931497825791568315832942235487115032734822336156227709769643037781390956547954347647938529245807715138044531691081507186401958913120534018073753942476149721332792895473490481513640220024954875519095408973672499135352301832008952625413644725372838925186015414221598509834167023280314664493867737920852699248621896622533083232491093051929616762673451629281023975062018958830219016262472398470041726222159670588722082838658541239254323100020427567339421496465619732169028973128160770048650293852565662024083925325770834928157097724916597219392575873659086978597162480582635874369323847698909766696526426073161474199221662971889731061663545311433920352002467227673328180785361241806718348148212720065720784260412583835895425650659401314375031753304840965103237485451646372487214620656097657804436748941937917125446936863946655732115721555742948792010733007009981336847580191134454239015676208271114969941613977027500476264433878665094923814415912109673313241305103842627503454677071616151959280681102311486367508471880420302830326555088314121409934822077472600553098024250783123304226347570339373720195416276449835115885903283868396165405933815722776694635569781274085529578902971290659368695252974427308720610357144014200261748456780751907657517689392633631195086884296612427228806621969914465652874910200522318668115378510637030273308171830638462636381170909613084025458678582177936166026207153469969184490181545537808312758810507666769320985107254902006494114100220734991251546904167866535608586034004419869519958267928676255676838113434915729867056625829438433148054810787861548530832818175528651330707859490549581557248900059070898164552664302860004677893923781387546785491183662724624642494812926175799600383733259032208737334450516646357386920773993374524958742133568726960330952152161697066588755610106899552848355898754770383687276587398985742608691947106316191677042323006023583231953557924402133661451511378284003843431777112804236296930650004707525088145233911939356505515147896312417565716780638597504836068506469368275414027337292436026247898126224871281681134675639608694721366473850412183719420748040147512822490332155302531082812864346939912880837532806580312969290697272929021435733536102780669528855267672868250070418031018499065843844701722862925378929819469805608004863252614258403868634570749709232421615030962976566860872542985529997698528305596937899512222345396950423301905609603542461158832030057467214721813338758311341920153329551859949767696977031472079149474838383665542073362455016445755430473795730447819575766400751216194447026580507426768169616469555851994152152423167728253722694189765372298467021569162220650182395926673032498589316773569252965331961656957298940359889874261167353368931578405599477476841648224412346727865662354744749866131930358357693388551756105899909723341124549672261097463325554997021382260435166908510338008615663044543935265543231710320044197673186781187178828393707556534679411557658184368402934425866447315955079430585925316987927488033703118239890443198783032256793556622813736470716987767342222210050466361994763944435273286735769143445281777404375097614764767480574087245515979023939377349842303635316774154590658255502500081584820957075131377177363058776107662223788423170341538392997487917653532364183040376150306472367244813612167769034790963493668098252269982811118565097209734878394969105265544987553233639061019814034049172589917924041120655238268668052620741339905126799434488119209543834259431548698043148023729621523141727513370972257006524263962982488046640698605194789266548834448167236578315400231889092092908222160130060316366212198750933458227000599312445027870216203624658087761398763707221913814569993707514008186231101701412980928445574195032819938345021384917259581197416999612860062241617264654561250023546812744710066583779467507669511778690570127187434214951100448266768886887500014515436835642057757141230899387358518217018114063752202114727132003063974088111817288317888062948526849264137839440589815411149268272085475612557791458835643652397154781364648393885737555217697296599502702031424232228250134395492850232810912346933261119253797090235312775817945238128929481256731859163731925956395388774845596830292593636188324161290921467066900063008527216840178440430662210899701540460701903869709225568811217785437396838844298365843746949807467988176190464816901158371575826038623416221540425696357430129194300982090789374315013084590852805138487723063224186171171047666063355260332673482208715023201993126286374430325278711598199122113835376646020451178580663307559909256042222011690458433318508260139694062604338737454373309331810841569571698046703107300077137124558693750900239236700391737676834533264341134270682425968708086201617879871069259472181651016148808077098901791814551832750401547186203682960095012066097742662803563012568519290774674061693448105874261511971418467456195911114602229999427622883363508845006621750110433487758673666456769463393685538250842384629668168827207073433473166860627228660826803155532796811659643178993135700446208407779437880621813249407688014025767489291315009002532275205215601360251058144781386411887531047567366333644425731341869487182908816799606857674568648800007325049238475997517621740961801797414497418688642733618631413059886335618865284819164398982427219849019387347579422861096477462646016196376258640357583616434632794881639756803547263440607661265249067280314089399127835505861162177355135578336174224515253912487328321197084908069598837184752625717624467810177597394880459605405953899411211850229910464825194774538633103932807527843520208400289179190028889112259214776737495141121466464850804465202172860761663418378602324779993892249818554448133732384814396684317306347547771761101356571504179759686038258314445672797960036298056045447452295892796834916030328192771557175594860098535745006074753664652622061221640519808712226616408515410707300141138361333688379539137569147228379348449211525609613687787945975268665291389012063761976114395808407515491438418036006689685356771361673756931933261804990942373858488229648745638131569761135756833039216326707895810575463229949534672359667489296590511506317018649405624917484530423549741670511519656936788909143763958840732525264818503872824252522905397315614420945925618415006170628111034355638207645131223093383430369267080877757785987302307917529733095780933974874587433812825696533471670945651093558197593822504615250151554153944576374228735599194294864601990083197040726491054853696869190373627836422521780352911652839559765226954172884695164432537812285797135877893950166830184110567527452902512094282796950559976087362925195156190655331655513287933955200241749839809357708979325487843603267842986802257264493593199192846037419916433761021147004299684620641734479734319202665656241594200285992637902767248871382434012557855982731199869999799637487374211513318896942322945237320810489200498196441215800501916342687528733526813769333531102117585561000372681086997798313180610047493820838237708048195066820035587457540888818326448900193192219347594091435300209991907660555262807372747292256505716693960990422954883075976689051007882813825262318966305953662649564855366878656053804280678093342358180174999123151851051066900594998148695411068586620619531994306762804156393434398906024796243859162232614006503069678684458235460523366580363577698720178359858989656041487112524059460963812365915453597790248683909567402130858328058201894797563927840568287441791499865938967987858956294375854525143631182401608997835204353771133213975931109244881146633618159334459692124730790320542569102108210090555321611675804833933860254957450212616598740346506014558305230771232496036465202153876509666934405252716315893378105829416339729235410659292503683650479019609278514332666960937847309594428007554392804067325775771678842083591403969094972821395061931248410610944862970479365567721396968299841017817386247850241963289286940286677186086145392253103130868773116812533923671215729666968718920097320047304515870236031268482598640804648991535976654008563763267335836265326119584528924013168285183788659992621082681582762106957367099372450758152958401973425191730625871566351006737186814640970991683729651643680249541558470228455263426896089328967747672277578136967497774996471000851883760084885141870978196997499989004058192165126353491036292726996411082148827337796929718334210285366638810926583386671057867202535777405316079430427033249770241133022153773457836406921746396590539411792436520480610036661361385287736603195095998825176355143244031620434095774565789256641666876310522927757566755344773339197896869137217856353503633822583131714335838187209130875023071474871192503660363750348463853472636182879330029186428214053253686539817318436121193021090443339064491311339041886569766028236476277706014954611363259679527179174250593773773737747962287909560037684143818981379766044413348824798275227802282787017691823791229426951630648355945538648394609286721413126305498246116747174051651824594846029846500091071465919217935816444144777366725683367549937574161820132168942732362852069640766127073516706302896970047751317667086355561495294244227258078934782033925852970098644118062111426543165982408077110977884227891952961996137563915963477095305764277111270811329812085699165413339031432123437907517829394479322910151503290201365506053704759110924868781921624957013320017303533608365837686258972137980658620125142795040415609530909448730757252528168311655302935826369246068135680739839364261970388430410237524555355114321221585771869412209814649340961747190237943903692286743541706161345310591256088109382148218499646179744163856022895252393014597005882682628604439589860456280363711292354313864924042515367114596344654238149956806246174292599344363711091463266494695362416747446668340077881339333947763376642495621617864171382981391860418804412703780808038402075858425596578519551600485910703365012706860137617452437700574239640375628999252461846888931900328033402843387285756465199147342922390477342027627200463749179336022885968929700417678540230696563324560529291303047485498795179102933827533510938360197236185915530584826417945254522482809168963089157365140095699981869942085505628514164113319142842662069199272580298725034089117245381689665779092526415446367539198676434902804263307341586084373833643430926485692256738379573423979417598291047952984369229406770908808739341242726116724857004917249883883344873925799217023894779482636098348316225569110779933126926208069850352033439363058680955157774329138615431463769845626177783165270611565940303656297787588311320301209210077712765642645784015063612413189261043384779598206256674335742291518088420698635398665940609896260828432198276772638916984072971950591971203728133821179459098011933374300930515255078821594006584956123562198687353234827385442190263882903943131243552628742561731119250193007560659702490415865545425376019910839508925644173575954300536047024131658437323476205619649803560969331438219296935355235999871835300156620005003122850675153832866511409500507106534903707752921894054028617904942901440822899616674787383700619030548914201393730037914951465803850585193237758248329005629578293407594681075212783003777029159416190537249444285427342627789887697243472452388376099752707592764614997944167876273280472474691209376558653731346737185310707983268098705194605514648701287496444155743025431571610485963807560853436663017491650563085626347265061096159795871347826187112920742880510944251888739724105060273147223982052115551263536543746610628775999627511778047824111840135244073164409794593474188625654037159439952390037032051578850747405342739902414204710525749038415515060923866456857515756666664383261162143069644369420422021047103930341056896802299442513462210282759832155351591234318279954576605786053287147415504319313930847513579671445822679118438044917152893267336851963657525338462403929902544929347725621059232408123689256469536872811022451254128133715908813184640706697307678822450914142544721321633303942020550167160272852742027430104227969143356100528544315029942201532171449967990203105045060750048242431293185642926174158324991067729714003123114354593016343749639916623743822231587660021823611278526073322285983199224859886246950027803823378514774431657330291434823610470050936925941897456045099463712859999904321904247098747737760407834560796483063916416927387015830744816660566722929719899288754481289210680114106019341675675466935167975540659230693554826567167937284532547286901766384458633320930095849604964193714888917727788002167832191677345593604676736056943086632253186744941464267940844504589574325858698755532716043301918594327351786945926817869813432278146964899015869249189240702313367120075151663515154333382964161830871809756475739919247794824312032453402940007549242694380662319079133727164799643416321261866057135552233195145018634163096490492570886760648036768553966689908341606863982276889818870602196372379976684587848884251126778615095540216178712863380978862226511993071478635723757408161006103250080642969656203909393662425735457981575775767050532538833753449279487322683921023309345327340641152774346929000283610559306171804575453425298416468816062183245761203350039851194797361472159514737940037241410081561092930807787000112857164082801737999419478064909948350879309271503089648888835520919976383933504807865704990145131522375506438134727340051547636067612625047554568977558314656462189540244950018955166348991474643199649758520435463445128266318250626187855613668824366301979303328345365887972116970335012932922978695601962465204782338036700242657619980032002884878089916141529580429042317113329824025068873148803204874755805097459659927896665034270375369473174586697036481489627417306821185006265212497692832349745063867676650573607221101727509412817414042956819501912548389210647934318810432812218116428141056635874914995720984866598084993914086407101253185949048720263014190553963076781529884942109415695286194990300942847092670706204936370032863177024627972849262214673834484014719139581424550747324439179500009013894649204813253147379889661447072487531709629271165411423647243869248096997202828828843707992215353317819478777626760438196569422111222410375099278139406949014323257441096130561150162040113551057195804791041841054646662397620848135650415444112793829856778932017331102741715016662668243554549469977424893884336833586780853986998670109857040694516652676190316612239277829669646283404744411824321606149652595199624860844921326748855376460846757596030160879276600204347811234213069961206904063932049778125966294655549622204820674230354977276092920637770574218287738550856477638471986554950792269574021137738121179477889543446456937105503915395738993724452212430637537955058887184855237903295961738209448671156701890327353264055360066195154936809108899292868601718810241823819345994893544774866000631812658813258331259447503289310795550312795772897333426170713364390242470859593438030899877611397233059524885596853327890446194043352514057181729148114267390060555694174919767767134219188503970796220715040288530682578342635465479318938517451312778108836714507267523779161214753139787481234087729303736161342870712176612125690005387109187074815525308768174792788212084441181103840298727557709153802713158716938618270890991349997639663206462090513627328907996878132064514279646731644761907480310872093045162424117650438837569509989000624857471975808762298064224352434119511955168341870898088017244721999901882598849313949735082863874785546140195236664947473283145339906220927928746977608144588523248170802699414237007779193358919798494138371317139114473167836472701944396959520094362474437508976399721536439694591296357871422560407514387573873618098113200818027459782739354079935230882613080210043110974188960317627612327648073791884279006844484211198488543222180128932683116807358345552314732434958193876541810755138934205464249873626760955818490409189446478266366345655370795804685832595045938017726968302719999435092934938688117779600881457346621244979890725346464677100283149030562474148088420570580383861721824796081565153915941320953408748720540914028120730529319827038252212643909465924610666697847805416097878936343980433400187677324631552338321550788519982936278416701915902928231644084734793937358382704913354368789631472294744709502129115478177199854572242218132534046877498540010058728949976807608032518230910562081501201610035243426924908271460465386262461175212029585979119030756707290814058523520345578685414335684764520324060645941475231022368659527645498212678914466459685575956203570018089530679389252564946269501218461139860121862625957090824693873371738689178682318275630272026164262139983093122567034361978845699084873718830597465103490047330705435120276779826741288984355898668429021884611875860360285600673717191656797675072809800768301004211005007365423787196333016628269234735142417602180482896012033403298876065748044933017749684948621711300118669587943335530746496672248977115974151937063933811344319377705485430091436622526340571051967297118950867413788191423666352687372820041839568247994175691304025028240696062969739941331891121429602777223788874276081771500971522883687388269425413983795189550075067291196500877828619651819242317067669437388451747062463481883416218204942196683953108579362046067883561714355206694907840124629003006232688132482604620822380059921767572360486231071261437351967954016560777743267483387640367239143382786525170883445818856535892054122166634988448109194720655383906684813927017538200987304257142058598342425492653870335758362493673986511356290513218547646166779353740240976271705154165779269592924211159669396614678887668912515154188423462480749346318840416960978539008150017307657703686902660280548566228825854531485415622867788589541016510993416968978730847779015874826639853850266746148397694869974123475309899078229974198290374868629419843766248237056913216063396998451188119657662104271538240223229145469142509467781218364422872016702192285423101768145653013499248244297536444454242998514413457508715914193841413221524228447195939432272302523009342289421949871875941034479336000344202958753818891875983952619993633562497422634719600158734609216643813375213506460506407954417921603123587381216642967325785849123711148887970399922988937204383801609506197579385153412447945818669456700869038802730627852916733648113978052688873118038235812198720353011580458036838813829944932467103195609497832891677318175529275076107086910004444329599597699486438108690519217370341807139052498291089539932990391423324663951738687297051276747129574149783119832511729389367442710982160554332348304089643343884182841764258277798699697027527649125835679834112017566833277313964315033179590677653316809807494743501560610593940053462878936511338009583898781029933496129555212337117627509285958126974905055980081918544927523565760045303040008664397539118608394914840726653554894803412475530782363081543261687505391441382359106599321402033091215748443747254596133036320578221342276763041544190526873629283808186967840816038007950626411499508517754065576666417983104574507176887520593919607207764438771376681305829489348699897491047795642568475494456923364417354115305324683282171636657303641502655334013954205495822230985671688294987324370454909355364630689627193894617984774652760004762669573130721295687844107541918648411513356801904420365205107358482005672552652549302176044536519348635248368279148660717897274175810826414643707745675997577832347760654785309485922671364499826333524624087935074659680825524000528994462327417235865265220702439619813576818347046162045397828690158696517158946285996265564413459872980108042062397962220110380232625162647892629629294435025737827282216192278807804949777627709422958718314950385491632377789885495052419959364620992751606735799688846784431869398676752378699242215830579579111865053560124698469288238018179634098207648110558423238185639611627259573405149321352127486096440022016690070278615552021237471813106939058336163786987627274921712485929133094973359285340445235866922118060169981967241418769247193095424075592538893128214493623284684393637369594607726908318119136426245587416250514416827317531254411431820650849839462090763092369980162649197226600603337077179954990356464605223180431877306642515109764707180797048240294896063714730954414558593750047955064189798676736036301603260646841641838389396308214845236953007018417629386976840147002453878565243589641941839741247519723946152044758586536974782545398329630645287155855069042092970894057720427639357982010448927530407497134651073707489157032714073050357965465149572239864258913211410099862339666287098777579425349624316088334418056146371057908568944472283566606778996763316476880423715981517229890709933490050440996918418635895897056069959222707617283880923450103003737499041462762267281287117116678254060578796486313737646846841207736372974122280196320442028655473974645356283110856727173867272668955040159300222988968235109420280839375459513573196568194891414545954533919557391452479440440676466986619930355487136797181412219630404964929697539565317640091443338984739556563690539828905216786684079774415395767537012005515698515393680636340956620133133784912791812424980766719295418357791133269177456566265148157577076942161146262807558086033241537251080870218521944857455459980520464367263943422749289903297485223528484870399321845319997794217812369019992258577769389593554477902423799459818750821871959094908395959308565810982580312771078888379919877526523298325603590035219376830554519783474674523663285510610163237629268537995189571671563295021094737787417782203364962829747252743841577404900880456948801119637528662736764394112685825999372971122225018272009624841468817279673035558216962621816456972030025871498718783215947196273887929950470203880748230344603004903184011135584941780060583018269521806629994151098961549821007606246476772574070123771217953632327398174327515409792546919236338397046968594281849167916626854067648279667113704642020584582074192056155520929012348736980215053884220511073774388784576384059108531234385785661810708480590822780452333069131726202643690102479770348087452723419379454347275680765551507357058967150000809920142031067481082384763533331691149315056522821210613382585347073599422497595882232730706654322173695463532580453549824301341266915158416467150077128769362987166232841211474056704822827384985748122745370969553027309481390475171154796479044384902193532700418077557650850783549523196439350314236709153517037081926290274715641497769461201495395785678851986322746169113637350406978310836809135579937776299785240452633305094768552030693615664361033811187783678182929264638750361419002105666294719490235975749293844697769352557545200304391589282916241899719605707110618026235323960298457244527317817972279821426919227624407523279163106767493475483624105013665589680682573494644474766636744360923064394939834906308374436245179056753232045060066563117720590308255298248587957736203978932009053654816992295243016472244609989161656048883820943625578577393893016219164878850122456088173384408055947412872411860854968309338216491778537393081301134836617764657413451745547099264906433259489409332316614492183982585082110630484892008083674226519179875807960058321629830588969537756643768164234895036089261443041406585408115536494446945243882270120640185482133733843574845724862189057927393638176899548420770519068669869904351494429187070399075967552699061204225786434573527779795707077004743479198439918904809712053140016239966123546920118301999305026764471569200312520429841473634153742832364448006781688744069585963352179620602476242550741314697923710404959422351741789990984325276289679384568535960484897856409424134269197943052494078756076055128197061997598019283491160374104484402915412160870315930463678591196944752780164262962698769490539822319593273168075112960888536671473005139011803436508642469529529293174778983895753358089734953773503320614570371542965204856303298984681352388152433393905920843419416081513538867227094085990717697140237749915744389324564651005924690472248071334733078229567020000213389040660273589937185461938407416170024090021633756792199186999609982773734724912027809627386412173796974294700459425619931697952875798158790389808920637999857135506482343475210009102507289579718664112044757587438153786495488876203461660023201429768832830630808211740200228918835158601635157104419637964677140626246933605002379627320648177991684416006323890530501079008010008465652933168035100415434518200839461117684834890847198726566269619613748031158013079697588216535956906784344577293509724601395865765599508807194362948281842761016490240761431546208361473921511444177133504931704885699465597841914968920891945043295562233777246505564906159522717965076521077424099736242954823376845176857120958547978471935747439796227858980402442595290773832010324423506553503011748873326894758541487369317304507517822822405026624452341517106622564203180698385793487599711417350010574324440596332798525323362605483150664285351365210521004166972795194730113467516938019370345802277876935022137601728521680375214395506857632240423492856781394289476165969462226613070588571964224685890968649512862482469362441104388778088126090286024179869404211369271325717181366337072863144153050796837263610029574961368282090770881463113802534114653837585966078971552005685659559301764855748480736613544288795005167753217602411245842020199308663344066160667015182870489101416625233072542488043072982738833649214021215564918563160166991845652861379985708819484837217977615241209852462334362272926515468414264114434340234248023693501832883077539673201064297963189132107007533917323651282802126478341221882236808591099808308827958122971451473322204680740528201108224487747753028399975576445326544599199043889157459235909934000766699432936438041083344278279665794323845535792632785062721763655616498507089560643262326003109919348440827114048906312461262919236407290249393454965298218466303338500009694834081565084953281235518453061302729085154182749318835301208994366547706615076815043566325289537041189234254119818835181705503342545120800472360176944668586987338713603600899281582221274343611559797294520588738822715483136001210934063943912734941848077007306564536423678015840968064019590141018048602607030475879281739044898296272306416729951102583866711279769889396781979392744599819243350312331250216868111203472745376019236684152074267292092950800299579507990291034037170924552157019469669320326180943211931921984191181378166006970604167231146838357006933649742682474290511734732519299591632340471258820787044532900816341858214168859550911321185278679891587063252020544178527848380256934395111103010786079021385474921263780220361790152878465813181954821384181825954195464592672450850364386382394030725958496222214406212430252954656937910142220487057299457391745328551855788929810492099533093893695296516487880413523719319302302567340836741785575227703364229669536122306473812165645393812106012092069820110140982079096906427707479649418160207235481689532635831851123936801553817130187251984511729049207701296731076276301869981545739433108874162359375189357173085911759610682765133360976073791236827238254197407960399710937293273626388343989250588269012085741394642415454176503929359805134145905755770681837684474911067850615676677858379704643402598269958811565412128896649700781882207382355299713434506102212872171814103412917097847891717309024712766005468329393707182570919564750430544995753410699873292138876585008783614554327268642040501374854375415165165309730049258757017345887016177277618393847379084496373278837903889094442925427764982247351924963959422599726472483602695230626840478587310915852296069021582951966581557869185489764437503216924913834908041424763432879042979989961514270780102108357358554920518605853136771466624740329462885651567530307566003171835599701644149123002232060129194131587343739540740967965960683424038356192628507689526482501854361733686453194519932597796767566060133886833987663741022771329962778530185010050575133215356951831095436750117289867753031350283212885809923904168058300980849927295309642969855985170130468945221252251810683186510904848074573139975054996625571716818470964801100565802938880389769004141239748409543705698724939286487034184322224572523513054907933892623608170476875874873694587473506782991490467515595228573907221414889368971638433244586178794780718379082361833058148725685632407043150009259925994842377557094063666837309825342119810281145859009937788616437351987511947383189957860980230982369161969884656291381085981515332758790480966034426404240388487998321439945202331683744193869754261157142818383539732913385572687279913533805496258414626540674245423408618188818697852458700632149292908959472198297998274653311705773946376342586029874584623648383073698087696871973495315533702424283813385551357513702456277364992040605645911435526911801297270984483223408436515785727784517637029229702540497667634487008474656821489931223254190468406485329099117109605658478665486258219159711014491667272982017382465434478910699690092079621897955346232597650171681342880432879394368411925711562361518346140207725556834060839893663984504856388730244055110446616310998882699722687032829832170595918648351262109993902727702137320045842806499675350979392743782053241682917180452767217919793759176267627625854389997304945703070084009004005604191935100330745353031842916824876166723998243635689812041544434604597671441953264456812249913001928693163358966800984582168619507453441511046502250088342311023026170207605829233218751017739936895081342528002998044683533942111914794457663712611534770619130163572945147304973069071345469269598113188428025941124911578545137865850173713940136774422438550565535390565675798454734280162199056276344011660358292003411476203074550978265664973528969135824339623241173317085711379233495564129636511205690075309096973050954144385914571164836673020695734740676765811329864521764100291958962355668459992097499133733791125845615213832652337175828218050293197574530157396841013964835285881045374200853036295956473203866196855143201815891409109481409244654890377176109235832007457023863290161217365183033866741977490580103087911650443404764228038478079437190419659009543298571655461630604765781542918083845962742616357231855515845096228288027773003596785508919373928826183534636834039832781624483887852030954580666174264737059875503743711171507250519818122909778756784735226568084348465391977411993123150502452851309222193305041989796255410439693566581406003651185824992222732924211136704860249254533798124976336322835273647709328973636348104856259264361776889550230937263010582537483860465543358638182917869935108002841046816581745115369557928916970321031669730941116231682105623813312499487789867578654344984050335027835434904614583414013475303223315734700418126305297214605435641759247555336565293106809103140463150870537755013843802447431283904545960865776226063215021083273487713967728779734005524193809766947755292013418684585741513503213548620753543520458018311379352065443602306333460723680330893907866411871016529251580531766461963701161958336980552070405202878227878490518008806524255197788200763953880204039269016517085077950086119798326906511969874341016798932013461320269804421124922405524438551790102818125882914548583379266310030480714357413968839528033045198892034885929946155712824761179713443195467317526151814271191167581268516706866791470159859146535546900118624471073514469278727003920668114928262854400481104637409408243753722142373859496090758263114322636077760839033207101472891299664973231562429860886086402361412523737478415377049046964582618294524047520710963382503954747679633518589784184772031521408059621364811146404279846703633716262488806744941272947798668132838370086006471502618927029227480158758009030592079172961414237223180733394183206535236150854556803506397695526899949146527721220837993437337070674310536815223559381453887252382712651594190442849052036764759107445751286356955668267418096678358738903830708000516769171480657836438984186560399149655131468280629710569221378441426722929986672919481351418263257996735397715900723049634113030677376717966474929729776860864153297586610509278709468303396676541847271283350158378809855071149911555125029845930280099041464247237282735277143785464438687971143509212799098366242664393163720095093689638864838742126671487067987006358316778528100571821881884351574218190122127860917428597108492064885321572077882981853359372012017814417147991318823579424089889605375929735568807715343962774271639187290265929660374622898853748004438318294167859160712827498509747406260840865760116538922301041021626664109118985873411328749375344340347165882707117158227345219088502225053587726966121732290711877607584549745035250951982042322699817765072373946962117255527736879838212051149072742440461012242816611561175872634640231962679074606827782888784058589252477189176408827152447178572477072338111708027425242978628427783718977327789730847369561307675955380825903178487774671151323162253880655798425205116193870414892049850569786606437752885479243458536170406092275001567936618418085525018002608093803089956668474551768510972923196765239408574084923339590620976157429478761915537311979328963959450992765299930765412971609769805007525933528268418450039879045897987005506321942936280292141885939351220848070931525712756206188991365799781701566105608304641751392700305301573292879088448113404194955225846806907694614666782548161879344061214888203772183401108745778420991515694724803571332320465514641512054272910466959410910815696743172045255137591839065668511425318071807152599889813526399578881074239553291941289593824673474351838184794297823231055047612362934711333198461808343257957386355061099411840516436092632480170703351089176059811519752010281670125229213273349603831571381164896734102081743718817333757626767989171678914743589471685111952607681646030549413479955921313104452937020059158153214538763344875981962607267477217906634410653038173603644083187306450826723410227963164486304053519535078441193487036776307688464019986841352424604616077360152662990574252555117017613815590142534297078228503446901427638146619486546160196057030415269255695470808805027765316864662168405502676131781167864896299462714928819991768575863098016122566195716480956948086367397883675671131253491055317672371700316926193856991253444196835712444168184510088478287437895269193726098095415759518964838730601731688280117423646364399471924006923172196480899992570448547525156684503581019472428569653209653324581428320687430615609175439491509248313095819817956881489778460849316754280301457980242564471844384033088190172674744781151697696644446414274254233468875431483753185481672727371541184854024464735237981429887472768166476855220612594661690615806254556590391341979539446153058962244720928610829510082538846381107237782138942136323536797071182686647754419095179985398963636550677640365674721205490924193649806302227259034257549396201361052773909463503859516136630744447782152498240572941921394106337169297965860176236485914366219829035487526872939715714271829190436781763612611957329978028165966127095069770486989249125658734957094105946852968366703088834080949864595614130262664434493659767711706729323814828815508916059847372073531659359581989776940854126608922795568150623391904261725167762076925393899117702925158587712479774735289176704241485012730935321451394207215107155353132463992419355314154433672918679282994954241362354764516621519511320405449569770490679748349891618511346867079795387322172282335415389070715034925055629103023089685447634222565134281364243923863165227774388803671241044292288894590086378999422362519629389459921283683752669060918210752081137288583837576310468933789397799523414204017456808082086598164169566820883867530333922979068525891019051080169174926500576447744532381168673689398309336220523347823979041407273851728452962959201168948076490677830201176873028752492733481825024530155938923685512614571385325648051075345188894646485272963040755245275551004323835209346578523969409186037348450467774065197314357663748372022466551523074965462098696302934558341576053204434972134112789325707119879598072207120789296790047174596463188437529986678464835745553785270497178143056550342911321404129949543768553937860397837560776293116892508704933192511068788434752697865094939840786839836256921714647523384013211892861663613735413491854262585179297616203579764682477140371683444944676786997830010733499792212648464414955018230622470617838282667531009446234187333661358919204684351500083447863829466193841490462284374444851396102301839050469499555086965668153975411196632828653038549889837037256057547818429323535336312010655875141409633112477648185466458500596148198115429894073613047839649113843446657207094702530638045933958425685377765020391651809294327307982498729134859242242606075748654766736000621795408183122820550317609411185819746387785094424866209687518854453591962600788945585157802531919622972021844798192437339386311032930646677107567393145081083574902645027522850166504796181262195112443442615384508528579791488858205466255122979535139503467375371633080393557614227081600794930426427664080758861601129621780315565763234444707807715848890708702327108429800450115386523914911989460574853121159129037981577502221841251489587975479706453354713812120127333757493836435165159968275802068317444285317023107794810029304921569668240616624566226514828746898127228958397910533164988216408292927279466780092996838743608314308939054631313405187557767554270150848692679104695670254705657871844051426473850850129876544318178969299218899959916656218213432291450452725908286658327993490231591060029332063091123016520407071268853712462979686987961580801217069252633586685829170990249662375992527420736000257685709569562328691966763071697476814592035049656104325815801978160806251368006776463531369804782021126695114466997897174542440542601101578468883887249735614814294278373659407202525252680262278928305865674392080115663344903703363354175014884681539816190306430899792987732440985697805447744586554636849556160173011475130015748855686334818695169190552291410441043467192256692132446084935162985523372018175905640211777236189172740558622088928534917537466080384956940328993345822372594902736450850057953287794736524573843377863283959581570762553378459941871280571733035746308057384024501926858559967644673557654476771770869189888543287793915660402785970805147941257053275721491360393101225175997389619601955207317510621812769918443870518208346585914137525093190010357349078646470972974165667602679817696656740081806207052313549172729423874930197943980359114410065600492799043411845853506872516349608478673084777620961891042341738018414302692901029736367847681273989209068872937212717507713567758850746792297598471087737650148252170272534636300938440554933289235377857243809667224046010828175254506565718017225685388685103825525709845134387268418773848678869453636477900307273527300901417263309599787750247496797497059623379898067247513288454986996383209704932064493336191158068695261653210414165466144867003055076619582942729646941547054421935275728086885128045367707356982749414801558459057098787254025310811232428269428455837194958074221145276139861971110422291382766848305471786224401553080159224922757499714707576168564081219529248689407655692780142945972149836893581202979742689341520848448958466564949041687604439583545059902944388036331350366926233900266824714255749286375899014754051416145977611339957347129928932524331320277036461266904438012009894957107744438581353416462978643342938786893256647928544897954253007220384427168492358200512808561728007556266982359990224612445221845217717190765211857900208011183312581684153039020553978456820967196422533043509511800381710689304030096441828393851994588288310332359932365545814151182739297571766384958597358228547133009707243076695310246548185429850922716010967732925437508872690003395393545458405526557610737831893551030436468001410170177966006468745683214605554507316836090155667607784945499901961377530818333485204661943737251291225962637179283095805392770204183706666817098222736181231085412426963950490759101603110504053259546166499462354483792578197394644442578112052689925202352420463595378778344269066480687160879792648143630495432523140444399229633483570524318803187952881671885525698441572277950981026831661691730534467078165192307192448000093010966714577449809139110570205785140682685601042122748640764500007392809960239081850499361126204677043563248861502195690760351631663319463154822774972527309811467416941875841355169767259211420204818779838954372475778579725758772142825597388900949793882879226981364292892089042350854292554498744937928622023156626814289503848573960753353089373036755335179401532810941049130564510857525925918804050582372628812565741760027228780088086657949121429956766229291279630099919332832766866816533459156201706315753484832310017723074178839751111875910591941196303407857083919331876562855129509396341331690999618927518586263780159798450976793268140870803945836046074245260248470479728047093556232919723674338963628067283436452651204354656413238570905095783919826790552874348909354232945323925439293810837685519493157267618385556373248480488167957693742186859127337445158166925307999100842830488591956824166231530975767253726137036962918976601235802627093725837645923368805976200292420034650439495877420578555528679810633654055877190737052148602166079548970929833022023938708768770970692710335956528179098362290358253422563460436917188204129302074788109445640713333819371271041880308168994006863809142358237916564839831451419155905559351057495089137182186834143755881215574151546381630372861346972076979528896762891774475956644926233661032832492990403705443508544413640233567741587088086759849971458964916582596657079726688898734322515655400611049118744283023976545521875058621341744730249351102204572773517993714145252460251637783170746087463872937642493608040119934085869891880698724704354267522177405607547204032278749012983230214069839808969919381299742435395334331619216237074553754194658784896720218643995236831174949131290200192463338343509643907813719924605398696995726696354575609247223728875958025787696466106318677898266842649372924985100684539112380127915323200452656979704266701629017345378030820077674196914331617479348349042133585485074510008796654079866971390891671403499879372652728949336601835333103903270803108083457735930355785335869662454586794909546470208049491460716960915649328860990783038613391420729958998517249512249909249574620708924659378639864067908942077577536714382008906907256784698244219227140657673933563390369557726414768692951775967663436056152089224109633741223117094249919405122736061406828977192209165643485682859187583071005540712506850617683434519293956060948961696365156400583227339660360107092537870441310626433549995696015490815959196958913995393188872593798885418757405806786171293598100985333261778942311565270903813049865074528103912894495576270885536032084830314365614935477997315918712340968988732416252919900972500206058094695546838348814451668904299496927197582644686678420233935788963861852645707935716727491169180257153457680212983326508377632806002908322356568169309837814919716372988470219198996164102799291327180205483138790008701757231445738020046848751456150206606462132300823522547717690016555826013202496211333550476704008821436880511858987696675767621780351727329037175856935077226043089092940819832652003007794401429731964825882778084924309893628426384043872895568730172833110591948924571436706157691491780445252791850644012178604454848975325629692520662701182400520343053934466525144582836227485187129656773934646815461622261458359308788900957939656057170542616373201881845204324641983558668429764160641685962405064666817784998728767841662326132737539173262641923255836597657542345767716919220978442152253599714721284736471379035576094895240367729641531359829507372290007979733890386679464186713455609042622038699754587908154677067937570735646041599281907829207741610233040915198189916167170372662889428589110807233834241914304522845083408393414984141181815335537256775465582414506470200826086691847196877568075692058875972316869037350191769547460334280580619575830973242735986501606410372627836416043718782768787957966661209333469553392085665155067080725964023597311596737712861450945662710196447233039972156203918494084389329304542166755022698135097991201255982348386961172502036444597788066808738155674448605353876415963415763618399372527283495227779196952335069377098210886625963092526694144152639197823242938413041146593769700756944098106124670769361382815181719859078152672631788896990073084673311343828054530231595210492753681916680995307873918030794123375935630329374268577256724613572705394978737873524347930031099473508495305741687848240860164290702685102104959362074745243743712588682794408150327482842801614659527951779312962035374728441328838259094122050993484394338575858581915378035193095578154497238148920893088011569683288236708271676499260088664515373628891097764105472192311280115284949279210024593528640914453055713409065603251683633606068929644012187640285214949711944063265704135794833628316225519213302060299487154015664654128560668370238365581698882826612480677701367647394457590653689582074327842692183279512619186362556818147867206915858505153317699846148991816150458276623917068427992880716337916710724972514487294142009282571122220294117205553200670860263817978778235854270992316513247102418922015244538173168487837706239464281580244282494508027845184232631978207728377420276429743605057592410037894536530524663209554482502991187700147585451636006409715102208201226632453203435381313444303887233250940899380824174891064597639086793681556844918397940734794790532818114335675139533116162936998182307104247243246446638468942733278494188962334504688813068835840996893307498277929915354537417660040727749955368640757843978613550394688234595488027245363594285517969914749687026419965267739770211159491338313705915123479148886112191787619975568463220591683997160323112783858395791641580922996479877055760941310710471910418821594119573367337490452354348234230628042589502686177882200229363293301414254418035726612600920382379212825738343497079016290224498268983255219752884275126124514911882039665442313237149822222138070498800036954484684245779438640494648772554452189442673021824117829328393257950325676206122952384283345935962448396266683247338239054245229159435203557097750838657128806484403962641847825674970050818202390451853171087123669074315938785162350724465823289154029371593061619684421805409095403451890226081127737060756839884326700585451453315402986959375698157288290524128702605001745775856546317874832805633829370217582694898162557073892583991604983301067075566066635593486168981835206153930590373027645292614518429361247459308341168437746153701756024942863419301620286268843267303010973752744133530582537345839356516827766900148246895404958362647141635275764238458811562637935485107734790951271926737315212845222153093177297114362511612414531221829318528444144026756059811380613725287752796305234977815549729212461646568585356204255554616638323295833207360400165432101040538841579029314865831228031831231541504902577482168822530031051364974986178423327446767489630336272007343235878664231804336449195285104013268988457632799446997562378363296928214586720947472500798584721805539231494567798332585669180247392425496431832070746285223686521663674501841728823036029620606480142028106689582808623684295917253907274996696659119287664742027454743710036817598431123959601298665202454789304365198296265167658171143121700142374267565996090834357287486065722245032572471804372223847152509768286654220571568664639927351474537026159508310218915970563636972837431182868373466685385111026965061302532455161048992534641836109441615965300996880615698697436020600175099864260866067589406535343440582373130775340702705006432653711943653334006380262383491695848148518774557755671714093418116645510254341057658875810572476037832168611592976736585010794586093501572512085409901623235328041140811315657141004213273211408975231324635310224419323386815070501564415606061411413534980195099081481955281414191096530354224489566126308526913278721550623962825440943033083548589828250036853325601111112068364939640996294100692919239940872030683561688799082783891231557935561372500448170742371786300259010531100017163286081833347085178607275465233208471851413756765930002074397459951359080862117689684804914483402998959461753242897700251000035696979159419067968358464244570668256681668195061887863284628013564838974587927170782142233817180148492061254730658282479448145080376659258313714180251062764900608133714388608577539498407124815855657087827236701634199663183292384636412359940759716312157381026808570811320031159345545340219790253588705541144040199279602228744382397386137744808435669468324190457182137738933337251700127411308478255530105931481194546982694865022861904833493486863554408032391661874378016924973673714799664941442926512503687796294643008727839920498428081060365228990720000881112199594770353408910542545525319228119326439220154289928600126797893975676741259003480834526313990217983703411858681958135144032493542091983557417266865439970155327328340337881508654164364560957424918405715848217585213604890210509855926304644594488106884864923211666187529474515931144135187390431470830413161766075269109365052246453664278656504188841371906934398299338786548901136028344822714221897558612604631120179336856423706576618876555383937439646890079939758880146040917570088544829907125868291638319027197151141395817356848274784116103726781975323806149721924196089162555153564092894478842643273177076483578779326715987868305023201218099082602939547261417809045674940944623387015126866193852286635772873049626225678950666858602907502280028224849910687402956474897223901823151072534795317942434357418329180992866668338189416280828508308846876086068357576517621863826797752106126613644788732268515621433682097134651042981239529307118782892569828740750158779924697010952429460015928824173325351166451119022965736745524658878401961244186828662020867023503540568165290656881858825227690153864131636984496019860318330546703310241295887120443614934755244714767315434604359627214799239251473822995237030239655399914629096093146942769326635966389025826575825289855916944776313470889844967534504712750984178810610464435427143929091181441327252791049060462780167841793837022220862575873870879090078404929969476613533361444917714082657064232713326640440082404392480163536965462481909854516610653805682191856110009821528021114764333661126870313180620134308365016786010018617577853476989684240157871639964625069702738757673876505910564536257598516406300270014164608310315151037977927380624532514093794824393594662519414777564086261718844345246822955342930521111883446801035468255390176104688273790275717935909522314659239115632017948115479374102718238484062891722147512331354768530246554262373767597916640162868711175842116418081657863590331987212604434608983089274609227420868169731278159817124154131654572076630531045157341147131655136284616286868092316975335212380842882485512364850945440270349045153653335095808902586964448821995841021242877708034174430319245739792681524173791886473119823195772344968002274217297848614615606491744253667156593783646779783223986093923683230463167478784536322298532632991349826157137638399075189685199139454460220009110282331611679089378980127026276410498199566175190015680103443701167234895349481659487017388979532023923410541791420016978121989738234679519650677897877248227150567307312248196706234022469665256722873031254418114765169480825071792962849748285640606570837073059450506410979957123510081878506649834589002007618340243235149101125560284842600361772617730840970649720813453957688872560899493447452203127161428914538092908603915845302364362588553916593190154793943006985315747805139641734363726714811607123323151028859411650089078475254234784124412635624941070560173859934428376181162129890643496296292917398387277107686782746457731956196899169356372994079344000928436069917915435608529643400570075944618657594592592975896334695817677907427887018661630194718550364520353915465217431121722449622034162530876772261763755172034059641404126651269704377254858844218037527166178729523574787449788908418566228069695930136038929631010299509760836529596180017352260422617046280526514595261726706112449460957178693056639259519285346053932090205077650569438711436778751284172634308596286593838699407634889480252915023300958448612376683600202592356760481840249042839058692763007391143622823187760001749086894208870933972977831435960117711533319349502035752103333679344234879148226755571319995711821436662474698793485618568071451446319226989514293896723599046924550009245223107037626587422752516071971210963181148269543488641380891049453179058999579456793029704572570980479356471788189163688316998600380389599774696783935554894273514584444895855972918838192953422221395346258624872363166337325864728325929490479417897348607044503895975863549653012661931957429373773577887976178792498363968494479688695844268780196509293051184889997138568852205454826629412651933398497887264239946148580158663344010601036619735417533667787186957443037544255513789788893864849494769981952100945464065909367718439478761951992579750452887771786201032296875460642176328989391507038665580119111150907065317110981724492835829900158029602110002588809487895329272687561237522822756451782587175031740745299062265664577262226261719935413426736359236166766791124642061703693483803511449911377319971040206971667795356458310833096574810045004377252162930503456189108457825809661014991317145856642155474678993528273262330616480664572167062221054675899938564012855756781020886329669698028594470645888858365190585793921528189550361645658958968212701029724969239330717572163773905086009145795921450057050997030626691871989075621680298444901799690604447274317327341709053372367269156107674501153678672787330813630362280161190825245885170388662044891608605013044028106962580967145193851170496834522790402029728955232671363895189087304028404914752532693753799094918381007542168587453855847845453524522495294192366200331493758874365935231116043022908118684108704368976921030888043848932614213487630826860021036356536352699474912672201017444507974754128304980227537183942173312172218069079411966298460506812602175974263667908983074349196259144705790462990453815546586789682596289011437498864213797484215273792452523019598825872441055320428074406012687767396304946559028969273677874283867675562470872234727205048329101897531167498137927146406480812115579983240043203854426553827266469911598868286356518812454150045371509869147376339766222614716281038473582647319791611536070985665651298858401979058466838721069536992679335642086279415870483861581166577188533497190831019203113150230809578869932339890765341591656140825520154133794011379150519730012706747477380266352655870767031502500055536191137702539855759873107871121137336193541207450747872018982953237517164170929938665549608910892550108176920077216037019980504837941209453733398063734619764600408310377314806197405496354163626218365183620013988143763012058895132524563621670885670656506916597423561708888247792909981980491099179442724274510810802955789134783078598035003315460541829069036781200256755063934079794000743955536687435070902901062608237558799047230769298263026144366421945792315586356953318059951104474451670259529279187423476876920156569423113159612270583084050939074129224622387124903429715321499979994403224743470756044099879989824344145386394331980913200451222931850636110083017571515616104304979166268562549674739506632654999078670168721038675536761188958497811157095354499912962681414305237916572709655279171195364119688654955824713509568670659906170295806941159287764390300323689010950724818952888948911904526124353543645795986584882822504430135218890032951701730712541447419817214612206121142628909106454810175453092470937003193543278649122686879689315644237621197026074113012271533568290025451933153158875456765831477700606483866919621251531489726069154759876063606494043582902155561438384436869998338161335460561954118615421896142829807680737572010834581809921751485376114379289423602514189888558337336126697768061602084163212953023576738340162146555018825165384622095337970409922892844180488202838967697682145960929487087682919981591057412886331582096325462417233182029751548066422975172560234219726686597656853214990670662922741924309346942625207703653882969957469427227204360743583009438223229838069616226952305757079432159504355424742532575041884185599387460363477198345112770189458548041025969338200189132693609156794695016791314614318554320014995889867212984961212542869057419257118595411989261060517292582617916240151290475497553384098939604076955470033907810781428704711867482234971205451439850839464078272180017352513210614941227950158550179454665000765090666150124717471112547748637574050642037044330608412996278213574585440318001070298393107343879949748647884430100589257720779052223354670300762942641661371629198069249231087972316660227212969622868941795905822823981810549264866121813269008944949924769815868555321390878547361154134694784184249622958741445122281472075000448227001721937239243189919155757436560393745874433107781630755031622746200580600056182857542524553052943465414186841274441333612900907917786399528912459562881233647823148750967965830673209698815833127115538435446584470657851441826237577262283803606957043119892679233468879837151525577554345349720225022813299363013313869512379809948828426841704937699345367307737512293602624528987849541469235503969237147954400943782308162416861755699805283475778862623526203065098654940983920192556079285701515051473964548136233810066292129202375128148849280777789108987997746296145561870384367090423003410523150169168951988003750564192481339472550372762700468764629895975088726324108481416596592104787465685140781519822499481414344811105391998012013950861018540374591715331603477641054782752053445597349778872663259513668483057791233111510229686809206072056745333189391201544868224151115381841111887549413130421764006327847786446233804394159761818953506341249218304413760406645183796733853902349863079232352616324312899422860503793218111512301423761843122655717339819991252632708806823004504643849220752213876832026341821474555719957960634505659505699236448642365100287228138370036204045719406927221836341000945062096008429939708296739012042698864188325662724807998495270269615913550672884481495115362355388918269504099262410852777250265710287710793387443440839209783625532417515885498307177566224836948092903529847583334727060872881409245831475873954259994046978222337163574580620891243480453254827899227907880097490197836452546228813972823345797847815165004236032007700220498485262107092128110882233379490469091791477906675992953339589394424440891229865542062518389092765750480511162644446043223595970247091017767920979573544543666915498622525595533686250685033129315152315529444034490673097571175753429959694568220801997419916446561638249051440642325609941966638917929244424297206890534599904606212787780621330560320725541243867281959477249066855068944928364941361318034054808220577337456714629832701929817484279984725126349480968661822134653225876679753557737274447791959936603596189937606441905846038691177248987921428634500075849636356030617691706405596074987956054080960255326117708003996011092899586090555090850719547580002308935805356777110691388027174681231886210747416815939719192784082516794996127531355109668707431068756108957656519382213915153689866487063286687395640381109169754953473271928370485446947050233247799168370940815659487610446237673398448060742220686865105569559756167364807084878192470520001944361271236552496419678902372677237002418140588398350199028257644194358403144790205077279490564658004310858260267470613388619072906373107686451434216878557315148064870450209994477032848187164398592654832165122866857505096627812277826794372974471381308962429184703134551781484422877415377085957111089766383908957854868936479082996384057192415094790043433270311203004672937496073577963631913489765398311889956760704686884165623657599275794811109977164933188328229917945082449714637375710922070373061594901956017143868101326184079958839365471601809619890022824589573142373287334015999366182150028583819034270709853128496506923503913841681672501840868779043157906398234972198069324536046616105042125890640407078443896178967793105888539441987372248482869414876094754376266145806667887175038779578328080828958968335783347808052232365852864218801503621520695057872842955969716287527765102271427432897611625249425660897255609216777072721364401979801239066598200946694256026227827014851008880460459579829405928478266366564950578448530797387638185766527290094717373515454374486392295544398071211818559730255979415082509347543267318259681444081073501532088409677950129805488087596569581569143770350264951876329027373561034239276429446664171431409614395916017657470546910906172256954420429296524137312182017978859389930598061198703720601908859294717874636659202341526633179236324723428241815319474960515856923105128714528422350086943920668308241186331686594193619299354793481292587320766073586770784850658175009992788412671633795166689905112145141996581854979727101505750446334149101927720968264373207777711725020208822804298549288328930535195314173620643400744967893525428752328220202754468671204307155135378513722492125812634904204215750993252530512717384183157326601254651883567998147670841097784223354804089077364939474141540565460149573325419127185795445013411158198099320417463455119221195093146538881250734934604726477733422809187005300897250927195341788155387216816607646669344718224658551778636340771320646652583706961465716670684672959326404461417969029876345553719039201521941502104542913417434875749668457960281157948935239642137609390632627031096254046903967777108794221434966385169402809070934658788481821083271146806618332381874121066389334716229038539803288879733371926814341982655071698454824354190772183062092657835372239620867243982198033024524899989115288685790711442577222244234932659878526992193820241816358275311589112757298935798528163444089462840170661520658159983955903430447501531477730926234474824415590217455846064243321732373410368728823854363545649889430990568948033038857579681896879617204689565546227851620238843895400383544668868096509181199801895383625307379250190121227534802991984205689901527921372382255644218553500956098803693980152890933602342333510134505656434207927710079492655109012246088752502901867914422253855192890080957451521922333983205760932438183149588455648872145236528829303155076279053015931415970113864722769098125844841660050719721782068157544023924353780655194206629784552271082968765685973447641432369550918536554229436654333391567483599691013420673449271858007198161104047590621867318109873656174633406353248301633138878172956572551703645389566403461820836479093959268071092171443059644495035217167294878394304983663471322033424392878072828303102101642539589323805685550632036398626446374034913903462274866643686163121934994225756719874537735250771543335708104234423935860238245058398638496681491521931878718207358516074275975261960918532405763071424193197439048725300453616623119455190435958191352175967153920716725611697286161039839097416727705791643383321562318633595653102134678884668405388842901497267972417880412956191453594491742910833902924364767782255370419293392564666843038288225535337858527311844041464343531319698736916144030470097782630303849140941371029583901556426807124231584275405150344232149770811331825192908184274942161063531391648283868431767706896308882047036324032303704787080929765187681357317093850146118902416307572530558965203350994262071942248181189761822588257889817532571280125002810263917772421119869612941284814974990025677003124181444122663305291450933255169078509592582748629197305922295245192447207556789222139279058842361039404224946785141189960823090576555815846002774973961249989148562050960367926859711409412856143521204929311553856614851435239685622515183406680792496017816354740536897578989644199642615322693925872176499271743600609933422410870718338665890424958902901548571955855625083109848529449298351944571536109320099935749953501199753962936899151256016539751541515887279290275901055344296624087258879543625618385936289472960338092705355826947082281030711733121313950297346078395751929379943274766593810499038102687660859497244368736087970765194331895268279391490877803216822879998047821683900745211851343767075413583744278336506541853534448625951623457834575987014810565911900084136975222743408098915680799361701525151805227391706841648597049671274835977363827056039532882170145573459841300763942593321843534333187772970255167968005418744851496302537787475224330189566520829293055199536444932649301373560643557812953356478959660329484722293320660511421347562708419244173538460388589398906757876898491928223590826452535760442392593210081755494990343196399724762001530147808850708155546823690247839920062447938155704474301957229072124618967050588236151129773357544693190297901840221596160519652719387713965828499693426374806967269245576419799592006298472130820457763341660946164094139191491990225596693674898582896021530234275638968318963991423258675511687036958673603773751332137202395569388458187147907297002296792207154281516775095362414366380529113324570212892255628860817133066525415444556128672626887526079224404130028684007370875031356563015676928125353711337730241428780969377138421098949125091519446432014299557791246628623908985452053315642543885641859017598333005086280314743182219739521667557943863924870396360311269820163152925469192061128103048050969838598752096841307596222306486633991127532934307252203661708708909336366021542047279169240783068215730264131942085106069704184055474078952616213111520233177626948655482540372735440618279974733040880814485257951412077525279668961393802332078557347737314861349853124328122045369298948038655182286226716411987175929101476937554175925610301523660480484752570424383277767255192423002224256556848617496606685527440082909305880440765911139362311324523448848488779234311261712676783338347578305296278453995403093987230432886947140565255122404451355746266368699658934584186385553285509062382892123164029518178939228212101946408332846250446354146939298424213949586973414905092654571850162541602850325669383206273976099007875913317564297954787997464001073478288290886451196041389876622037688515368197177544457137238432606176865128369798161728472364607083813762404264040329704109475490612134220777921476758250717487576986982136397332332491268158422964486567817291086559364225940503461555648729172552216683786218463497828998987401643329394852835710582418634095399695316099833090519991916792836672930611533377162260344858831023912023104416707845876742229375674940617066466226226103509281437710965927937786228461133326360756837374134575035199651897599277453821484479519072192286991781066195818888873279712359218598917304101425437787981735709633120799255746380057597562618640381208206587656947848837884417563162747821648238424544302455838108798324050232238256398700603064214427201084557874292267123146609210090833831758647348115775590524172242628184239753359063619468005927711055430637170218379131720632324262287596444314037484135076669683015977982640028016293937558315183203574548795686290890454260872533880893126490948855743854480114050574170211106821295848629138123184800236636799187100480584927575052815524942943767994339479090909332193655908120206795100429630557046777060316431703228935133173276582627711046185301641868620032138302491066096752198448419576522094971678185290839228244888791345519240970288344950408363310912427506049385317681703746134655909127593945028063381630227037079236321676649772792119769900743637560280928919570948773149079316550966389651300252476775974862445784709539217117868861344752398394689228690099690530105184434881175842751910397861410242717539448095602789283110898836222120789770208227155692474803345282968667992283415140216636251387944044703560509816815334841910104478190020748431788424925925485534722944241603831228969294827053817500869222708135236166746633946315373790063942431690497754924920922105596090990813296390834722765681516577606348735286719684679342677773430476050901005433139850093198704750041319550349894127317274250903585301842799018020561533391920754698246214865228093817817290930956394317149918901044118557642290334509031347935066115754517920061603332224347419972700564444668840962023537874939905993012673570020422809861817452149986809200413981061791184709634851065538021563732590162796344894790072009106422770011827593232092404361492030219746781386846001635669760832099486923655217668884018606455985458809960250858515048554220536902122815096972619298939565570523317130991853545333556045494236873665051627967570136553961210984068960342164384018530200087945106105212005752130085801117825094320243008567704104121847346789084756179096653941924147686750113891199795816373124159954227347770535161885342140071865388126478999385482578581279331620357143668704877659561214920563627959291097395614427966469981795525111325294793815783605658046093133831723126573852144236631554940509322232507010994651440795865516808672282238716056228313877633053988329048715925493929768137550064505085290121474177307774112644147650369174336818790579571198137280502342573738431939281807286137819765906908592701057954666339785890634881113389517163927330662059608421838652522606200496207568327961490773091072114661226491918272167190010673498295650781681721157192707930119710316184921054540934840339739422739068476162623495505198086187144076651863716468901514485885195862392475031035581121241074236462265029029632395951320178677719655267601165251281763790151752885192755969833609542650466020023670275043215434778490011795613153195291803682175646582903162195545735894037972759774658297163570229677277959395250071912201440932124364202468454491434968675639461059591840957169365591069027232586962385893933093532783104231139062735564922705574819516729303619817506081613030173376734306168853023567264006014488607348955739235929396786555843043746598065827481755455516008500405682133201152198643819501207089828842820456668263244446143690393774274950793741290082468992729671065719377518228574871430398502190569288292389434682846998202460283134249545864940027523168787177031267302236077201118434461101331636519934251495528548684290119130896886665515804276281787600210196803934176203183481145155792380868709244815867285755371304781005715985579530315205276162394545493393970612443264367757916150888390610956529224060431314270499553021047303473426777971832852210564331557735209261696256043202352451489578887492654814975478598677214681594472058095221075020327705179866705559733836777327233483379034559639475479412699054585569978039849108144970122427577709527065325650727494055517496792980005312695811445200908645865631220177553910205829830323376037707694681655394864557588530462294857647759949838479293101235348942765177206004131803729092027446656200456846101520433751372857615711338797576488580774555675252239995579578392001577600009585247669990230798902442264146345107937402576476161674767833634956713739816603434140361829341030475986897851064025213087170406586915638782863660040169772318507650615787754471065584840106490493238349421588042735824822699323274334023531866247953697007121866272628549506557190896961482511262387364477727367597080478016835682007540979126195493944471657038116033773530892705740813976072245409172643297553704501301540075936454771075959524970829787522637751260771578092566587799653032374844049858074929828992822529257271033402728714668951656451057271280196396249935868885628425899624353427465163495719479321540001641043066861754494679697947804722054199730614877593263348615313739523799581635794675111718382865278983065810690684511098395371412276582860184734651368124235872975687034790653189691379699547214015504992626164824729222681486525284717782152377356319383390110522176684516086385610107295494600613939965120952084441374095637346266220218601091154589565113427168759750553857837789799300253008849380776357581569817225065392913384816419791574940283446374145133148965837274395885817988245401098228827628244592311610792789035612556402164954625187605119968814864499274893603649860917127798945826477791637073223853511738366170838884106475618177954887767314402158540783873577205165810638628285595603907728728162047738160073592581563403685510451754349401565462686893062825539050197672875068386204051550471919083692812024206102887745787288331240901110559271335875330512521002510240000206231532952779923609081129502859152927800582811358734031608033398078120162303856816738549365254369016748111124713507017703444402504310639246438894705221927744066393780729828601553463981186943712570184308387881076351909620851697726891323185832461600384547420423039904281087077613353489594033608745501186270588709215727288481948347865274774356072711765942850437060547377823596561727975918551944389114138114259929654629038133749383015593201066853739512466595314537631454670665148424682191811337705956756020061479055046287369648211018797225049991232845943296356048458714482419351517762144910139627212901465178604320598094865006961500469734469634584474168979660589204229119703796849741242070882984284973676685051796385445877380711152483677237906527160119405484104305374359748220986882026467451649426280198192817496394156010786252608646993992534102280787730227265715598861287276690450026527892780043050477866353581665880592633398379091942405889878726567053129857168254837193663356480697634583622656800566104433549062276457380909058807427554527288110070663860598262522379563550042745105886604840905762125833140456838405302417765945270078468221539734919232567746700099654336595120006171155394326262469617415786472096915456150826419907021100143878536701058924486963780110457933820512036176499370939418282674833592221467799194527806229875746884756599190545967718125348042754892869828001175373490573207846238409912512566936215328349005350755150793492377872646695392100762960609774412483012930903544589843499403128504417378369232359810799709314151668142242015328524407982947503506223013432030985160240786509240238442598436805997093103981578218001043919279042013322430923301586181573177310045939394753270028168933122880533829085351859836891582251514738900470857564074006009227070107618019464518379373394439192329690315156973639198995838274018902958819901587546930535539302801129320326048238422226453967347847580590662803395104318499856423583980119306043648095840810618860324595551039143294512082311312079431612357984174616378089978888804204729629771088590003105076085164840605548589399568563037656512016197308431143110372764719439680471531763718182643304540806630518942477829482930627256768017598818556133732351181031163365556956708799093653535694278182900974018450597720888754104665981580401732929078412136188952639438459617866409124312249436709670974507948678847814793723157026927190945629538263437097061870315561178440396242427843198908475740645051864650778038990935667478646267921427224585297818365837472573913263330802869638126586518064152249810151897863290066195314678130853487195881712087077212387900044025771745480087825021664582018725181422204807365343609812540181157297175162384885238922505053617815529438840767870361812032207815729638920211096016707262482200598772636816191942741098409503989388579665539124143111514911722136322581667676448066520460155878954976679464679276870758653908523891365452692793565843654928654913936537213096552018213261126870454793446090064332340032186720349992464382665466242111019693608203776201279688718893084527858043569571879484253982377238658139068946599442572916042587846899503709405434341337779569402299602421935535266964077701866464982311339820918530591307882269763289255777523747593869035973659020025753143455792440852843641034992389619733467789337999142619106014414878193182635364383977202975218719443443249984745613571229492720621113342553759311964183548200076352543721427883154361702209446306961855806792210118116716035323740043633387429259940212884877188547723342844583557926968807959303485385474842979824215445169443778022451193008747801246408596003910243933138926996734557190196289282426183357986792600281621662264080149573903968926526604491910574729298542836675996577126499596106258635799051453852898544733812968741296552285106280750528024530230077357607710779589523619314345220161545514108827116794541102342519721782388406945706992343627051873023879227782298159272150471594535861095047112733246473054285542849568622148078502025808243724715558950673599341327210240644861884797433137145819169105327800223860749383064492413455078086046154693108494413462675634981343600877849825329225404195062199887398021787219180591225834558456099605098495922920141373147979388455718329845429359167644338845151348065623781511288549537003704604165293633638336235821080459004780287356131980561775977756946999512234925426145281320300841179061687168277657683085203111812152823487418106928092429241287658000971080844903307353815288817226253396992140967315271662735301554606065854195928474322787841048334754664643015386145783270656942917163720609800548830902587691031902294501923101505189966778031500801746363803595547335454917444110047275550871447763630330436283422181944707957156671880836353926445891577035025452314324626191232112267797527765946803883230366698518759412566286414116319884257699075456934964355264847765090604988551569185120544558580399945886570941801389481242117384444488929707231916715102775519498655424951689363849555783205282625729989861451312694206655373046166232472008947583449599768840041085922637590349429198752615439954102016627021416093181670577661589807424475636966929270308532932414047221673766338521394573441774610598000772592550885184319138779241366238477337532767996558363397403550419668101813024555306302838313971591479100501817173329416785230357549183299837885468085316697882592365084120553931051239157770370671932767325721888409030684852936663979196027187278356000496454535410234774148752293665274882593293072329932069748380350921341239490091495085758486924905413470088365478593170039312224357172183073620583515558025837105201216573427755242976410859695085989712644082881244849120045245876240219212029964227005875255370941036499614418756968610183643792548530629869051255240588740545524507935464421702991461213687525293183467289498485170606117938800628898339276230625681696956149303642331752096775550466243370022500537891060181562781467762160977421207830327971771837908940000366819039925641079184531418255474480899046995957061865195608005205606016566863480399810431727703549246790298431492579609052418738779132958484505982571876200602834164345561070104937955751576569548945617955485299130555664758115618865422753221574842542089290661986592279089235354232125977171371645052490130626211726108726864256447046912709271596900799687130528198733019753500129755012575895426389794783144351986981830392000647609063664651186542187479625264154234660885784772471661851209609328025774964961813036629957903168861520160099052100568912725384541403156181494100877361410444368565465838577148089590462109541721844519568535792835833874926650266622972794714181869648046415467115882292655966492818247033980058683636745774439500832090384437555099873395871625718093822543063243291960123372210041266376227423590754364744623368239343764976095229606648247966263140648548872895874112890940836132062580675536127980816690103837109309570690917017262175968552836824321612756078338785058384979406263183092420438723774512276048926109217567504429545372675531087777732934372396639257136475157235999109099180928517212066417729422296603599747476117113381745026113616347339644679267223869297038360351960762537124603350144529782348563294466255146482210890023640460335243820332990912466531115900263306362467928782044252943208107606337079442921439589430217395503117603618198456724480561628273228806161440544763848767118201745950198972562843596868037184543051541443765822659861030166760998857164997982817470134574819218689657035175878218760553392439598775632321790557575125112941306221729725649998357347511824062154728528618571799794109520917284827256816884507741833845244088002333958302458576879281653548617668040132295277434212747191554975886144216214325404389038669517260590517455146466733604669151333459240939071054327363908997298926618059666124416094849552748436681683146804901308322996241817195242795797039554027946474679448093903761703790641275613287704240460180924905345975901043067813455729429370134984352476485366495190455367888198358716116873011628520290223939572903763850232077443871791891364964369959123328182875352187298687466960491241182780990563082188395470777162602602545683826692601111956347869988798889042775539971259880638759924881033525946815503102560707337147106983678932186725630363904966291072069412119436747893214907807006178257682211621021704011097128720728649454595080355464346433877624002519678976974832479519740115308441855723808015381575187827544809697615608696987375841847947690427143230294549230072472756670928329523534362379171235438168203347316796194193232640628654456417658411470646819708257816640933682699879424853763335194153776264031162298699673639210477716649293242734089907268715980207335586624032355119987448825856396828398282113652142137961523206657095104234875097002093702979170105260421661371126158916648952228166927312891033346360936432193433512694064336766987685641036113148354460756811870235996336522786833757758297321465933846906122347164700913093966930769452714201901443505097158783575740406136044292438176461277851736239898646504338930067709658644645203598491142237808158772411242513845435266772768042386894800128209506463555119099628107216823021354544588264772327016827898541596858328257104203854618461571393619414419459441825449231702054494463334961737716589458371321559254892529033076685406210901475708513632675460015600642509003805026016089827559361452046366748517347990221735088754570666104678346098359090380288102876249441402594077103244519139542184301148056440921632036176624649251907725117109840550871487156319963691034287697883820979433774400659591738211784605583789135353200754929437846698731027951394031634664731970534767230590182373117455031531258332386250023354030083496294624014718860663883512026567655290066473694309723049306048824705178689310524563758979541000172399859398664894044136452410604895186174188898964398083300832368844047549592698720218459056506994571308911175369754502330747377087889362688237525184705250987531480962300507715772689464186474145441520553609975488597014402145105480569532285276381543879215444775926861863353370916590690838366857351439104710182940343110908575716314459330652191704627406354436897309338830271381699643498220642087449134325782350704118214843314598397184239902027327785909211234329203679965522560585629044866246989573948621280280276453076547118881957830789886459978614022537903459756884748778376012675913608282166197666847728181729702256940920313642125564393937264936965388838402678335417493935774499545965525915122306847829159521793244461202345265763232773856604477628677790812777493140089072879034756389475496357056700305533742056017707588459227036779148211323009707128147309142442868770124806287966859337598604923701557800165540727866218122853577350899250818132660403352120801536204392692856996156568486552849285487771652440288809651430112608805816270587495898298678068021990815765645265805740280574311699486072827523614077443664244779453150035865875912845661616751342490937683119021837585024086264743142255850272277962849367997440232134072992685832942516146158215127510088677108960200016955739401505249387431239227904987428132721842022900363262508997279817036179360171838246938213934916354199854917890388540851505103732284650396064965031096320246807542453606450037598482146642451130620046611339240902102799383004401189304645978872639921919211020823072571891346738859362258849467805650062952184455288966737921901544238537818983455912965279581495624674208913267167429842837403873345575527137774184682729937650506332948643057726171914140213803175853215820082512931670587457463540487080698233582411793626645793869699196242036693265375728303667856715658348232312298870525348242644880705953983946518503384148391872154364573676039989684559934973790760858281310670506465449973489775916846256061256827303737603884848903391184089291888894451792474338594333406717583133287939759983654365145050335609737842571139845878219803794461065666508550568892689627138002883168134939138036172955167917450746898026935505397387485269274937592565087161145046443210683249819807689724850112867184353584963932179329731108628869911578531139637476519961935830396498588486379533538933396047974514068065504679645772426162983287739729149493701729219719189031837973193640758327567069546604128267992793373560900828150992362649890506504189910547755369346241845154299652015080672892859846200319182646287842494444247401117418617066005744400171136211670318065022887909518910656529313458670698731293724131748382018609457937169835402313960732416094334967007420274889918702621533191268954989696390884942952393490573255689753054513508528476456364048635832639384021291331407406853480620675120463758731471819700975937978091384866611341905903538611537977375275945129408916445296448578310284151915495935316267577190636197688572834895457547793507117902977151193586371624036230591058623633300636207514527204096787624013999952935364393511931663422042599582595340489773897293850082782413297318154071632607185490699334257014152901180979557456435354470515415975054891609981438637680888665098649297541237689811986564495256373073714646791954819162878521586595600706258220084959944211938165419469439773227496988814124024431290743322208490308367283920255145868848259764081880317141810310802792506051449105968027759743196077623810962408710483405995861590610983086546795709793694177279363525132005670820402786589594125744996426970373975890527952779805359402529085849233239254397338935675123943615201474454967248819634513843412006387404501096636848280475163412817407475712821037289422280486778602253084330331315177121193479603102356121272719761876092861013962101039652552536092210201733814494072630196879063414688801774729647395112556419749134592757489377829346547963909438663675553407422874006828622736199159108453113186323263773977823171610392540235116192362857953670399996905019465704494462736980665240698192488961150919251087950752836319339321893534155128221890471473312588756978265239094152093250271172752724633239528534232878310781063630086869502897536925357456611074846764793392100387857300338930140344896543330081772126137998955919128624591314968666839545935816728066956527899210645553206895545286692271246908873311443873694588757624627282373462077896523854213083786731729146779710979141908227012087634128841407183434017495813998323856533108312342587549747316430867655320910915957749795706776971265155460348105783421211947052930710957186391392589880420735311310336629041064285407758848704342016989134269578754197111988181093877069526439580160086434530589765189333914829821732050225937220617872190350960782306576814915732539185733011530965297486999229483610497470620277412617700436120250725856178583150085601792380596356116048326029362986464325357162521367490858673826834404534009506450719725313091789063676690314601470689493419223256684661495582400384282303260258830981518375584838360233490426229165231035538787312673750717366344682159478563570771781449196036856751621073693288621415152760698117301026606524423262583848740524841101140793778771114437431603643122997751843553383266986503043229691864993946376385855044675525319333737467252059262961689746746791459321068973437877412049118215022844843058803069444418294448355311116779546655655392164894539106939132212594237491602230970105622323185446122710340402383994765082191489497759024320696526098110807931289186911548099946970351094455523978501550360819386406769664710202684288188185576345175837854772027918115420241667088471811987982183907230380589771630761881995981609401679996065712861000812635991798796100947128672943193223332695714504072124696623199967142380269081623831396600277007975676778711830324115654852000717239625231371459962085156179430527991431321870235554033343188706577459536007068607680995480740486780627759163916029068678584622963958212447192934053573941768653429197863900377919173483959553666802389609724508186725466211050080521158540830648628681214401040169936128370175614283123096898204895610438716691110010249448480463369262390270986003161969377085257323676864278633838171737140605527053354421606090392875820183790710686719943553252211910826430242149112563281434487517195026580567456813418430565548645049972500669179248048201309873031740641242633963787301208762103120357166250944066739920559776850254894915148674249752234322542738862988539370201222608143177991990230395651972072139936220517227318277954489944193872413594559940931344482832473294273829805123975930146743839002867048952351048105741888932885799726219576848721997737992862187227606996001345696224183079198502878703317536499054854324536489109528447597774445576031947667570902786801963230588044441784155878619817055316235395327217559922462264979127173856191711407515028537813825726190881063620476907365488784823501990561140399170388331711507731388476707167011103676561944814701396238300861220253163801970844314373865624762006199547840892510980489139411371371460763711297615308743620425089203675565723327773700592136671989084798828490356829679380712523956157707512092231957211353081806998909759564805366825364170704061576285330628153052502547208810997446710314973671054802691828875454299936818058413543047970518870843834300669165812363536135163922720714330456391016339576213122925680484237417413882207573061392480142308261037878054530932240503091037269942137527824681784588157058008018968339779487269449458298574447287333630990886873497268104345925731647138281478142687222534179432513355261034523941820635229268243151446303440808112505412362778798781121186721477311715755079167491373042178148014270087391639804121708719436197398617417775161245501617354830158644822556535314857704924070878722809721975080596303189444645868380458094083191852531455409415751086690222667919653857952605091918671140679645058706018226744796035346113531805189365401495611684856905951268351316318761748139482295895824581723453377054589023418391201667459038232780871077552852840104961875408435293584770594586956388516021235685104234699904643335211610749627051264607379869415725597762825687893134036223925367233627367431972384675903842553184902861270255588974932155372442529154953422203311231885662803012296615763118965160861331936686801949053379765757547786940640069041446432817256670745394050453327422493925504333567904465710670676907693376808041999435366616268608296633484182482413273191565285457589537133842072648262615540652624187376955121967842356928861479425605090001734147854139924021629093554635291856121950016269798120578761721061596504906557610434339625531727208250792131856620649459211274791775495511171141483089425092212387119385103564683763551830165096114158907257151165580602757347211837761298302715265047422497651694294998128236398793105887195619511522385853051115514450679636470759208272401438373189361782096777483745647170120596674158617833606101905410313997770788031165260776581147102878926109799230185493742289390700981040522806370002703547061644015032781658535038365313887772028113850040305739897347310463022905350662196803130705284048757273914071938462537995054858017072387704268391890371757344730762245177186440817350529504079520399021089099231592317623865528596083335560955876207989884917763264297279714206820669069739134528207020599547610862365357974612226232977747362225102911599188471586847911959749099592461272340438390743777385837422190289860449917890876449725071685712152866893700559956992098425604782685023318604609816701164947547564534418832674695580037405267522705856570240219846738141425718645242479070478829741680523339836563674985913757801780019247106431878784493465687261083051563768300272746525457925497323004406091572299484478573725062912522809723905980148973831978824289852634165537210321772562909313353302085784571118313456631371745558273382090924073700534211433661780674949699927081674576010835404778812407526633496402605699475211383166234293224645863243647776714270929393492272212697465400722596775949426478225803295407068203459474924603063077953957613168552071816222320072025674356381209595951329229751299266431080062484546556061006376117545606851964682578959181601112157271911818972489436478725713157262839309661129965365493272266648078012392980667341232671796489620195453979989262799380493510533434827718060846794464089997021582702127398690266035649623943171538298680298707360112742177048688503607476406691019093719188982444923287509506642232750097754957913915844130399478462740071091115633203075558867547785932228705667968276881162782843442931801468026212902006836248475352880911046680664360223518559543615874304407871517944941163339214925854442618938315758172433913040551191152130821897468157831920116951441513140650772890735747646380301728194584039283241073960145423265340749199092473029954234586595440738322341068040168559425121836039816368618456412707767006722864560153074851348357897060509497368144496400936413113711007834982434681069851765850106703789439828514033906182040537868687455113867894932958908997415519289013942862585444218553833458118979262812051370458754396509803880974355320295006878166149925328701354131202538752749674402629672634961274792116436788765665513818179555942764134248534612009598027512622607671709720232311501450086454242896541530992135322227694566596376704908949966820212204806388616565709399589784065962811448866233290231649926750038117230069421126608734909442919227965766608462552457107792765625609518966892807069362023071225568003738454912473565579430984752763407526599152475846973825923519414717454373177506098564568727116917177317151387625578680195254267093218839636898697416312624130338485229018054332576812183739469361101473752719616437821996278430748547564942646411486446670262211753977491629329710026738569887320876696786742370780991988242200516088267949476266264047710889486763800810522099282615633291625018179954472201390318419151047795975738644808794106016589166010698368811250677006757853692435269608135422660585483841783413094283510789243124854784245547600189440697755623952128423623779814567273895383021220329936036666177383580570466043622390648647739546946738329734250546067823361410501860230887587128387853813504305659100574029420190924623891137399032119903176243560001377918485673722723478822264285356187556604915719317873946688631769961729631851001739585004359205597893578136102404681314194612733200603937169604628011396807825265484918097981906657013147671936597266319097029322373615895106979886686037571626308446750887575085197780242526749867773116331280372598495091452437919598625991470765703873423012586847664140907546987670464347259490861130307450846344938614055460578478232092073059537039979974199260297546888298698469861003211475893571380444131944874500278292716021222689436832607000930199295077248081635975288868104860523956350743870177140103257093860976653202107389330734348314814265602384706416054321756164569480763744291583372703673581133347115964471042067980106584672723477552891831305131291266453748022512744950649581912837399812072679753482511566452028587010529680176261588416971377387624979837079489690791990395469502625520489460994622914395365912818338716970606988256807593527793953450840824912049487629737077683787042814550995273458993294475093800029203976154064581432415842954674185156054188741739078493697013126695182176388250034047640106043883958420516961986504085787130936497445577495323404370421703605024953361802586353646456659223587390181804413695625959147414794399641409568242278898848133519313239241155039538616349127908507577908397664041970447146314629184779810559082483096723664089934392916839088910724687979974130445015471131791941830876220037883771755778371256730024104331786826242641461790073793334362362539334228179191147294549107732381314031315061005656826890053878233565009098037132119814234994238732040660720430877273742024763491851168471278094619141140646715969259990674447482342217551502110877521325477764309240142141746791573207966993080297916404452469058776812522250088078572442106739255002199327058558685181139438385466204996730190962061632417546961587294517839283660928255913260196838574441233118101050172637017250713780430928306837359816631193780250851680363132464955524598916547142260181934963078981509165675788467728288909930399994687275868357057198674995588421604207502836275977696997723924446429948183797435752704370230450602985752128459420468565355275261355800073751775227581536431018037731645372233289220533280389053353088737654540948725502560892897677296978510763075019627415109747502336411270013605453941044522273833000199700615502035992368571395489656041027900293454966919347989591932840519951936327062004301416735948478593701734331604951218571750042607420767333743043728531234811425174481540183359471545567002756520477585008063159850682166427393467489508412727115584722471823724882109343024025531415122101139203083371445316797840815751046321486645012940804019840215033405226774899569010964667329924292655497548797960516674184959659535076423014163080796033996616294794628303312230947431837423327016651638897147101142541984425646864445729902670977382674409076397140982993620333896647967526798866379055502325889792623320871767322951153096026128046928983513044200827455003249818061451236175644114256892995896643758610571663058037434405987647963992918994118010134849171491004534350896321044702994810353197704753815116922462849837759315295731553647604773072525513782561547974082430743557281892422625966160657176318434934839692535166682191680462462244867952993584696552221438648136065830258876273686805133995035348996838106825579124789005619845170531282756857291485915277187466159002036984424286577046112059453341209922141408173975787985920788361112061856343326690640460599630779087737859205164464524165479386523165488117526812309650501202252583878848283960703923930510277565677646444472796673286176156258277665748026594294379973854335684398286169041045547373752772597972027187334665202048939467511802255272969201013915011716287560926561788553465148339369965747239277238884249259816658753344847936684674981331327807712812764159354843112739425862872563984119056350517196974267005240250151602400963422417627165772719893096303790057244347044680502144357883636728289669660624752238811521225487653746337174252025229562161107731375470453931491467368055558364757410480578696415287221160877675898668920484562651382588638400988589795505790959585041856629102903235550505020440264631918409358248192965899891677095673946635491831573642239637506924388556633027958819627672082678741142043978060281110957510249779803264740138349793819095895172164157045759619866945553291501756157715363208136059416590719992968881205897476361628487211897258885661866366198677147760063957631869620057414842056186028315762240810442761690738689690736725853799666654217061689536381051590794503844840190438872757908446278526215749511919047945496099051768438427371256415984795402579875469778425323541236616920400422859377366908500049322365570892323551890082347401028009943143538750229275783217062887209061688407325441242446773025465649483188286803689486648444482185635126410774048664400340303387414458641921965229612531031540165496466623572040739635799590826064183510571395540691872859520884776821515200377854457923210360721120222271953150268998285412163302204715818146678575558795209465923547970065859017129792660964676897743971766182343511270236055998877174988547394838469313420731906594245821313385894093514632148550729572088119393773616494288132794380202644966861615003547705643400606865838881411953167247496789893684795797735654399237905100107837446460590948250741348656694832950049018813040498899851873074360263317220144185041517455029106340012237923132952239186922045354102253193782753842953942720182676750845993145423396373697166732800328516831189763843454792497153961474490209431762555177438949676006266942388685868988081930374928547564399317967280603186293899904824076627280435363437215357156998480368595281743668581798083252464454751682718041656844675566182312460622363860130122298326638873822626132750472032777680822036105084481470393646217493175207516331182974149000153721725574544679345792137069457507366794766966836601049317944713054002026490172884900578158117061188737770951644687817331747482335163716136027221273966770218545837764428687000967096001253208160571305921561134536031530400987906335399575542483306497287035701831386405948815878331652657873918823676101848899409631999390735913169642441598687462952935666177285757077831594114406040214522987192833479297343061632553167190392170914989759098315420810237359129529850653657215568893754310432779555937018883152805440992681241162134398348431937558201662395095803248487535159691217918419813678084305426476621104716021370812488356144220164615969140965310185801785945869317858870225170473943657843060134566768205004899325957093132709231065562511802055439355726713437988499837693972054225191784270295405854693794250416303958386977244863432907460415532122515719943658366367488757759816888857583273415369606764309899404970571041944025663627439350516817715432170451154926036147160636452806771116102150847976493030579016148968726737588518351762548457168191167683018367374310464245078052804245666630229092199333251908629266464990813812815878597539061355983344065660036316227066872197575680740783643373439846293736905556066231403468362549141424242903007098802242790469296868770082195818499176758820125759025148553237870864682760000880511093505271693158979346805625041910940412203336790565005875988497527016207910478573332551867359517972359579408956202537421641039652475804663940489013740183732768572380744334739914577660270345937250130532185151560694453338844671570284613638641230358362954827664028322995779719650554051185199870407434073936002981284904766154945291665499317639544617473568841482230178368699608901919976164366878144216966831106859376467229749621393782411325948971190666644136015980399840264650713768014791792705406400581111573369282043573109354174899099948649972536338074084626361851119118899340491668205350630422059014135547844509028312821351940203020011664598629387584844723009333325624471105317682496388769187527637743725834321998262782387849585145312667965259817360102464901282704539375263575515772010916981933356850816157880297176492250425725969311816317287342080717447666323489548595620245664888983810777591402921578318911206390346915760080207278308499589524757167252682923387426523643499300002581609326449157335665584929949764813368342761585758018018615876044779323315546059682796563558128757629180193473670818316126061588688865387802927255110432839911728875054572790695218216234519483993288932890254328807889191521405426796279444336343391086882643423866877444237028297222385695739024361468843855601391522894171126116373900749084251197271305202512670881881027607738365534738080696735009750642557746957067529126666396077919189633570503863341920265100081178156938097871155988367201313247402291636697607074105205345705636447312902643922023793731761031633951812018526542356308795336241036308594550334331651565383258413777361113709204254136249264884015209387795377254570886741864079143273978132129878440265283067536170847326472264820384161267708901010853517525515632278698809492885839861813625438286816673472130862432709664622240354959174503151299958284338736706757569708418901269909122494322076839770720533479981245270341706324076431867571064086751691554973008312078990304573194090497437505146217652426524600858410544548242967287429849090335089839490484137017788166287465440054660349759222189635797878696736388947930708966457301533793170820926210014890541600504806459092160924658271803693566169415043864570093735925331009310716170800075284592499525211710255253168112797873206406136745134547353615786399414459882508201257254610162715287555027156688330563014976784050937845386903462135762542231561578233372214505600707297795643127083591448149360257005243259796866187772620006416691168893489433697095629908084165404280451672166063214465783515907782406175789442874487586969546797232015376747228235814309095124662227333952967958045252528793935697407599436732810152162934140787752543098019021993526649598811322301086632400482509099891418291031328393921237651098036662823259278479800867642868203576655411537303315437311886797952188265468937485023534826876575671821270743681577602220338787514177738232264219009031295775627326385886148198679120519268500231618767034945862160720930565107065947464860699593962295175497835078405852858103249403153003179202460449686172070455889913966170280324959682007026047301018126978299375904815981414342356479224156738271561149438550824643851152621509570116763574799908554520123414499729073696797060099271291026646808333997430135140932329696331496971613969626200005287141243965392954737110722111513452986682170465543900272412034624496150753418261135122714247847107650802778115791551250226699349392889707330345768534839469205213124495840506195254954660164633211331660204483000498102265002945917788607716273775866138761546842736492699084756776928193594385838258724341539920112429606843429776461015299221677344956569063432402647431416454887213610142802771966767998818565729969135073476288623475043595762420738650614174480602936728052281403663349022895194375944821382497084129064381688827166177148033491385667267454569434392880271222323487639398102498002017745104628999992115503861988364666574433282212892970755749651676924952790062075471002789085380583745242798009746006174628124212579669674738765355010336310497740099712357536082031042991221096665323149924113896372344275470801535176096855864891574091835120753850858813877694689002825641760364573372264591119919289035581341961775053579822661012459416796040139174930642852271582011061140277996292853491462838076146888243846134716955361456611620893209734470110817044431545242371039788275212236545057784517259743013061951673037493380316453316491510666597405038128194139815989885180805289654097219223043139455030024064578747527119768570294464298953376562022745952232954606557963997579718504242281364909110616485332982492554247081948160040468373027469261487902219595105229912256846173644060940843355785037023891481657335170487177980513788102854417332380758191997201792584974517061555271997699821323002002201263003359619495377661444101160610494060758510327873621725087354550621932692190603360063838119783849618226886859483847553871863900867299002014647312258317699396434314443941291931933250589469534113226197251116231971575621842675581046146104165541119567308357610655802940043939100466102304798853411919218695522073849891208393040400081849875060270244201299177133744041072400742346782403770600508481493709369513312575665246680461217516795758648402315523591795052197697601654929477597683617964775226485596263310438341946526347745529114701143599846562617223907553433440229731779291076894321339370885293573096381951475917563717593212281957884718111116465808416868723432705512850184067801244474729615673147864220345021359520609169991866960178897001582267993124027111516536478293443280736970895832831828097796684081811506822806313327301637683216395796431777847643947542930021907777829066016995965384206879250420840306151600750017403449400299639680906256524951191621638572765225374411198350627431149268603691368401854797982428579519410181262262522110336136484197774383514171077520553933359654397921213209375252717954547060009192976831035449134515803148431628234983729575610475950616582306310368425846796553712957679866968565550863985726081780507834369420844615713809680056696673364595521472977491446755868065537091213533179016727200639910229165275270059877079759072838163219595067994193570990637666265318335810221386289329426046191790565516264758649420981473877986569455811059972398373913072224478800292975957518927658873308123271562251728425394393326166759536757701981313909523421650656947300027662405070861977562135248734545683266924840652170026619570123492259983182060659067788463623564375009526970027296501925620881962579421901133427969402033702919641409246526903186885430587264594077915801243425951094994651005228292561670590733311231281893102572412279037859499241811355846194669036268058354639710759838275859384470420498902162196513471533547004378327609592989518424613813602195980914168828076995478528477639058605451749936505444720916110802281344308849349608256617227577237867679684547440578875387338589237667660418733235276026928077287101151079651702391625847924510759388043078106693145633630747884953854299504496408876960273300176318408863596730274016136799894544876373677565929288646780422094282922947033042506969456146075962801613207908592476489317522169782852128874110234496647322871921095981082720293079468837440568620923147183089782418920756676014650211403546801937930947209531528438602345758370814777050042922058062500863828774338483201298067288544645936143090683802334222950435714813791999083763478230515304679043463256448296219865511394045124202958682179708457704598398131478156947003792390848104719991129137122651841964991083807150144045251313126642039647580226226940920962844110098618189911507407187534995228892778903784283473557047322956662315722385134381467951570758602133010176179192759595659385392756695549931424494820015844141195752617073899271222074964172762729315321083901005913512684560053790528505769412294438930585069243246389183982034604927420364509116083293471699508050058972009139197695454238276843441073466728296721040406966245808397050932620275558360222988258209251990935480374828726550557019990723665746594190631750453624235653594893432752816625362791718942335198058681111657998346475078323221491912181969230240246273347277092575784009199182922408086463264880300414703125347323541887430192539945017679342419754406095714617555808285196048347422602946638537856168527784337704488272749377837155642179129233651531082628682972586650890795521998061507063567527974662557263237000574785474703417680729744490550134237391041495226997938454089155446597955332047995958213279900580697031544755431690842452324063377573828858516079819064432775023691655179400692616382177686882165448115477124924604960092866412446939213856023073325771985866270490088528529072456021853559924250844023919778670662170723720341373714117175474475956332575099344107375007845874875640935267101305702290688096540662795392049343781577899656136214283439760093284424187270055846543597417025348866825990606684917698342681185682833730907114059983939086568737293842990414344172385262198315156588134670561452716879294134108276471205555314253592450804044033771368561309073164844930724236566054485673791636988815588161654894000955123616052332581514993472530412764588297832655326356361963511104009430687133465841727456663525715756111723063939260084922491428126978614561287463637957713029107040854531430254262536388619260569223137084716637742493029711328947510538231400520642767962402985789075359323046119593438252764207896589059469311063893819546316900607500747656720423837528733393841301852427778102042587097842605710807476706171480481687281087661266944152508801364154018495271736816660216559569365248103514897848767583594481980932024070144694060373544737088962407723781652614323400401847276568849110856631483471172028756901645583737313960106804988859793555653183938934211739052143276039540214940474824656998688929180332054099875731424788112111623174858518538658046356289841398453697314764988179483696756627837790599210677595708167120099192566252575146812842679119573739639536240848133798556081029118844298287019228864519900647063367470075454244658348369421325040231414389286225826012991645802764324146296359438939045603845148611313427723457550962069863789994058374094041470591153723544095453268720662800606589081741531659635829886247692399184248963516529896895311921649764870475649131657647410862091117444407575978122022383552269171686230034569941035160055204935607684642847464796017367556377566921656500697402456475795471316813757385866359837175575528648187612994381132614619435047107314817428514610749117363484916960733988159953323762490610824542903310388364747107144597020440628059080455670665093658790926709644130178436259198456424332368172233723219784923786022872104118052304832232312379589013409329695880632862575301508219030638777386326740221750520585099351329643408181848833049713777853208930523676165739624520700749380105580403671461541309436728491220414703915910468083261285908990401570828680323784150356764419270159954899567121698136496939133501074388785281910774331734038258354544290842929893959978945829153231982571033067368236229714977236955193392839645434354016770984571444863373068166918811807356595774575604072349735598398258342156504400649852581527836007718158979846571475319338610684302796062494887555743549454930180364416323852270481685929510700246133840804409982661324391344941385868911974034323807449242913460625584444488082753317945992911933044374199375012891208171309887416943865616647191475458135128777808862364099473580431614253281209678090489622209703085924232376388723889968172464780963448567841959023494160844245588547734109919434943291035697493994629930039427773040720908030511357647567275852481984673760413603421206873492918017527784286149275790564831171334434688308837767522777677315683476676455000413957358809304129220295901518186075888768748188405725889152660287521319288770814608886236492893079271459619042714524973653869049009748773928936412228064470980009148765026581992752271221891594307392549281174207993303346787938782239198827324145787864443290448143244500900102684451555372825887766720546073107387026090973360375575278393121278739727411467551121508094259814377546579913403278427798924098619874600409707111904145989143012009654936806447463380122501293095581783534336518711388767730298187394957165404056645433743479497313566554478900541964141450599169819113329365918870857010434774525292223659085882397573551386436273607672018308964141356426476005794214874206824446086737668996641259977217832056591020826006110651156172601521142968846457521620386455775977514175750092004482820421193849150960503391572752889247547571737449482909362742536587652807431376604152393018875294331255466475003344016389228933276780603021273519778871912213005055583719745567360023062717871728317711724538868600225540409778745752768769821068402409562665414845694891590704610494989397980304586700907704912036569010490518131388509291106292960252987187568624740968324443132983890363215201382448088520475097641568371786372118245162631176782982563976508182482326093961272553889344406488849819685329112080005569724524062139624726380753605236030071977665750944218006879001032290736784172227393776669006885038124046597445283151892035052911054162006126849022167947926824057618049596103246254425820859274114678286752343612027012425629104313003463643587128455384409958995793711998527142001591071828671148351118864276105214328382727646071758375795476911089949500119919707186472648346174571441535430050518451150028072952459846468390374293016848023878672892708341959512385826617487080813167182146784559493233341870478681167460852051439523178447699215893479415842263391973593050114605974503684432699825296115361798033774835761321794321601843684669900264215139690819984650546129767288731073126055412666247888723901885496877531512902395069445744692333553763413585884371335087927066160643002429467588323635190608856258840702589377821952836933199003089392695000183119415035903871209002921377476542465520833568329940833236766157627446869494474004536296908345892654947448180839495071884850427802934387386104416540692523451596406401728847578273865656827349475199757989257108793575270046385329877760260573670769973233960211490495000330862918343811339363050543248020701090030323072308891698567700570558151264776313381932402665886950790361080435035085573736092488158365017282323659520042577295863371811269231181392660600045341653000679716127401094215836352851234425300213953516881421546795716148978917688736524743749484993037566115315719122354042997433822903575577710040358275206068625185157394489130562626330549142089058461990341535802136102202197393918473690134983341066784706619431381515008841301793995341415216891529193653865568945620414377881519072466430625909778614901359929879682010485218213447683670278748193413343411102773771685831694154642606194215196618220882388188979752525417327681064408108909430825627922168737181411192063362921785574491717305230676001090983093483366571553173971926191225787843518119722496653981500435695465309341000891246499811985419147991121582851119844817530580781161145923565462701409534353180811644437880422298466771107946832480993575798080662732687831174294234489403244460297003555154760448281062558133396395892095390394652496070613973968019379754620060335631028584954083573537245088460394261556188085247010137347096174200856850899025712245941802631488807713691285119559796330722140514238244069091010410149450446091096154584674599860348851422720513230165755809215262589036981952773812273666016606996728957918071102571427871326735995219160915867736272320060310299283727751426366599293980496272824963998362075243810624051647106262207819756257054747475126245524235564927169686336189135922720043897589106701729863570575082928626851648141805119339863408283078931024876056965971892755735004616830910384700383365356423436059941266996148331928559991481012340333028307741199472171246341098971450597663812651584566887203450977728806270695694144759225992129892165264644044166200925724079027834749621609171132761436461919837984115088904439186918602944959005669330227961759707735725212892538134584562368309025277894658879845455968184479932121056792291908929820561852520833524619883962113226912437508136059618356677116748136259608192717046122175138434957298502380254977420714334061075244792459484301247810707984140378932134821890832794900109894473915500720235381019790491958268938160256259619425491619191298074762221659402410882197072408167904925121125369607706762128108868781048509776606550879891173837186934379880870018700762268009511208603138741806893199023970936368609953051699257663782442465556486841559364304096207685593198504935768157233998588812426861999461421896390790446666649728858822864192808251826573628567699738568276306547647968728148674193785613909062965030087461626476889518936658888917469543466729497356341032273228819463008115151219004367264333325639870609414593151685065262472461548648266863772349659860539745012636345342176321954742881095768294017667537675030417623110420392092614058826923399686258709104062102571463897749688181302800127108428746494104342045491308105900712794967200559447038978211106808198627176568032902461086194696501569877830312415100738177900602131963845721254996603611967943339064747349100351728295598135033355862633348690046661126805746289399219453538977245304409699538788560522182771784617647690907841884433272631334816268732990383010701788219860905568854697411151468950267481941227582650077156784684138247518670732596085681090452474849425248946250545921558007522867875421835478387995325623042497876561248736962255719736921628923294340413205665541636906175060733888351769526135970730568941704208242472005094211445460520622795059051626638521626857745270141469171958046629639952055579986840720787934754378679172929780791433589024565112564115636244372757121679160578875220869421695525364356766674945359382030356040716805131123230086016986544989294778267661645151116805448924003765006053426977253211431417195107354440046839709195557118225318728525054563085000873513328991324303139545363665058642466456342636610533683729925275874873812788747365246068812653000590358851240081681349768340070579831985253940058665711353872625161982545456384882780955696703396705401338472643782607565255463701277792351402716263453337982025596958820388395596841278061792090251517557853306027054502489339346950372126028514424761676588540446500120825989673682418643291234722370130567478085464544996025389075761347753755134959290503350519875834999388147784135883734184932252436085208781508538257841932078014571591192073749363127175546075105111321021016999218452814338317830486160661269870410591626475903337187058819106892270170339545152629213367906290743029349631665011263655918009594235865990488675754812123359028069596075784163202743744056575579478821455617818104437612004356628691855026745602032881981443987031135198673687365413908812182640936546997618373473856465226901101187203361618275954561629489026079671471404423213504497830777991820799846997802974581513738360852541717754120987313532164297412109100972051508878098155846937703355214674672772106331411267586892093379376134843975776821857420222461885806749504958598877540208830912085373834507467512315217546702661852574378670381321445958826462162955599589240219598022789413686184613446058924215934441801884565449461718929572836145348499927330294332935073606864334194194831499300882294228482514063910782123000262865122425997375862196447708811241697710876617442494569583329744651344323626088589465155704695318244591038468148032183251013115909270962138673044123178518478336205127462332245916482049944181427770798507002245406737925078059747181886070702722454387130407790476576912455119929275333667722118486045242562511695527732717582075418810233764516891451195799031839572723245094398214154505536941658434421259417336686899386460807426998756016826188537878635452951702818020730957258064112703245610166744668919539433652067509195862355865890515435080044809425395781533014650526255619041195945881605695481256266714309891246637458840296413810620373347569148166795089983844934123406734069544860769520238235672299342128668152831075130905525388158890895701977783247331366113275305076411956055597357132854460212499083405309822751823084348438439894552477386881845753791072503285007303764882803432387597863531641670052039774163572681437639754640774535636791119218145906814110999854870861420948330197746433039443226249816439861011711879395069144578664637953407237972667488217331048464651929497513716798991430843161684099026125816093495919780358333750400558086678686276579920539869822188172122920207121375987361517871214079885469568594468187240789134898171254877434148651864810600290213843517469637463035695977487230404272661400062261531175002457470984045992736143207367399030734301595704261220182816462949789981922146475236595887386922587863370270198544980804622720731604051646589683234440450498944371589351618951718100496089799776989103777619833097312837862295699001569935438709672570581575105638943054617467073004924979168935993158685869337913361026642024519511175456536999670819879276648866144046105992660982791431830285727560564650673965419318141557481683638846419290882181398524382948299595930920536678105727045921596547771751387924703536608669770137950066887421054117117852458903599873517920747058026122376660010828838278082633638137649678817538828314405671589354537519159932033647210136299228563549501074035330759916804107160613243279737084389401605031795543870126433555413428670162128403343769544063070763137765226306564499822553547829721218417985832864540863156132421169524972180704552290268668716521007750369613089057842976049363863303914745515465550965677043422829461494197223608705278083798291343957926106771274176597440061726705985837716814273097134476943512399580700001013553797623586000671863902474190158388722982566944124208475437876081235452974630480596306355578169654813247695465100358670860782046036336805274894365316300747458097969926818624455541588184047611888231750500135776807695743306542353861153060155696727943254222053295932695219628042792115022955979833343006972236168076794079631448500340828698870773996249626146239573488762551633124782241459576944975691785337640761303526404452557963870283830853259193056746566957479371722756393120619542245176644870025201187099080731694717379987504405570280426489438946764198168999920508541638435271717069817841986531599646651743578143133963744266746992771871379148627829817796578047883741767944766589413102611395784145856929196949720226972502297340484695216119877994184498528165461167661956944752732507459667064637746036381641881239923450171726206592729864855787222735909632616581762574406826117050032391910207639732564482327408708330399492412734628423594438757641927085564850186245018739920754294174853228167707839620660889553019752623826033955406169983948080609389627156397776492094988762033920392218872592646205639265712688515062462868648168925172312787813927941981774327672946825331507914278744724460819022917227456436535395795377432277747387555993195166462819165717594197516074334396328269716434743526236850660051281157111549293708260498541461048525851233250414136247288237373383811262407727880868974613001449949166511753736635087960015451356886003824470686608610301810785688269370239988031554620249654151214547124303995529857287585495538753833433810789405842465601813437865924455460320617067237953198390591505770317620861344279210679418898199543668986746152109586590008963236059281644146072318185592027414471649709626652172914452112981297893781408125305037890685145553304366401352896700292282903591419908599804362508024235611105626676047617408245596270385937306088653857368747360874908381698000723652390076788998308846538848590501506817728973369713001888734796478136486147174241110285372059290730659560008172893827044104846926500574639621983162240234088165491513936315429391148237702059896230906171149140316830817274395759730960570437185602738810625079832978550078755191777617752034119552590524958655069382502938010105867756824285413900455810147207913886451898396480691936944996986462424549290780010392267069709211062047331323022302740621385221723779454067472107172624157063271071054804511162867967119564057021345921269829892023979509718854152116947863077547439959552427749347612852499007598227163402312977883099507361466083109096117804894240750801336221587275536427719245079064981056718561740236061839367058607221853998407373012945088330569107809321995888808296452591646135446448289178685995719573355845524489192057176442363739587804863306987112643630804537071037269312411099799342833032782835239277366031466477931060381403527129271822265302350733789759211416041706660987940546940118248326309666830426020837464279503665546642571467587304995530768510642721948664770559089536034979389033647220603906620060774218152909966561073284458970660646900019152980137923064014392325098571904577203283550865635177966778514681897214641627918173889261287376387457485616312420925765981386798183562710944763204907684684089925450112472279331109026754917058732605423147010972552450895382239379450123564904094786284921128534709060990509287609527091455803814221001863905119932975061563213023551664604081763220198721228862664724775224468440546706838611234855250357183077141550722098594800144035744111548337110702459334795262732132292576738693161990940493336689691165348604650107042015146190506191533991738038455113146343788096238685985406128295165635195330910180573565992374111588376601549371825461162080024789642215248918073240901277161390609310466517604437496700317504915828604332451786418362031808573411852167964102242497858450742769018286385921088419583111893562471512782884562270380107622073383181836010125465147848000564995288434952131007345940808667433417000634004437948236670827756046101576177095590137534231637327062724401782196320316585188729478405585510348183953057012669637696077611003990427273733864457147801479652633067063700630800090311798232175574184591851075454925976657858181855820609895318144354110925433611546922549418785504013660070849633728874584310032472377631019235059446610019754331636721660152641883281553582897314847106668542713576497168376436595559907108259327725104355501807592774556705031768475925504673743883403254378993154811874789529280239550796115681692062927338241900535299636255023345462926125804413664358063512797535394528527099543331141641377769365929400749312031469312778032780260045287926530326375124267854112438631268812973384211693970029197749819246509904782501882172927668359563075097560108031558796300870764433124933322632645727598104506972403935443568052535599593458883322899425172455931933852449002793899266667712520774155624746686860058681032908559433294907456977249454048160018862019441576720488516190302725141746453291727736282606361551220272068054412319451752759443450812756966337952070814142109035773166589797915762252353313952387469244167233356557625042967873154373128086966801105696409831216175457583212848406246355644128728814147495963545051478543669406219393825689824586097136457550713975942261034713050961361511483338466479640375474698925932354949904312366168521820603279348819706772604926544105606313600344486542722252844589275346747587167720353266904206713678028709098177046271477675859152953656180923148340467286110507748599476641226940180555048355694761261629404542342254898446963638595279253410717493203136003493963938327251345486056349756017797413804266358193347871047670666578697570437756431281694731457956704208497758339341540500967674559740134761578840315904581249119418999463350803873297026290707675451803756523066833771485651568771429739754026045891663272843960691037022015731347265231887764942296688093277906504940744592889146693139330912568533278619328918858791458743522306240749351573644503670478082030299345367025418513531305994519294341326767912599153722653441243635351374546529390090347862404417364707885735169303584194235213961330447966849233255335870424367919569075937539485819909823061944066872540954997495485904641075298032820695649398346189268960272485244591787689456757771669652125098798657201495170628119534624984169474643502353770096180918405602680139038641468844688883463270019146036538540966478429882285336647432175092531912711224252653441762196704491436435987759402324886058049844671022883013296784323018870692169142862407452593142987079729563772381230265642918522241904403949675640684094042956619193772732816704402567521655537874155057037060382793289869243699013291408662456072757638901278709975282613005913290455312633654418098233094861810189442473198452120642280059824023623980328768825030089091881795373726183424259029304603474427306202198187657213342705197061048047256086555839959325022851005699802084138648910170320659291781143142723041124970095912498464500018134662970984984190788522528957477097691095116875181115820985140030168679126236195951193848525525535919684917341454814142141961354788771877106349754859071206130853532933961790031073625645675200063010122405879194097416140339455221301875530646094626510220220297566312771127442194640053744645859371155325068694955539026953671490512652214275350008113391194627757663430096406751005768588833816196859544662010457599118679057657162621501453405440463741213848309316435290288230445536162713081644927246821545013718859147188159134797257369918295392464624173678796535218421409436398813371916845282354050978582436355543621315205826632129446215254624314839288939646463608242811219672459142673120313611742008255739609617214576233991772361949900144174769203485052200592356950921581080174817308214704476751996195196832558993079114196880920802080744335925185663993164821060691098357184144387143296332703311202280104917115577414171038816429585368677273194195822826056019204370194065996019225929252122518829106191997709422594904759663078024045570827570443505660780166890396485467068468710332679688192788120272961997794848157781509940648415858492363623287615040992294647235143433043086302888040209695381253135920601757054327623723263656821760754916170077898478404235650111072554622901704773384766227186621710094853214054128491450003738466141034247163004564066833021693913739096560383204890817839682219953573404003057483245715704369084439293388687375701735636802990430934953362963313794789961128448200334299841652069940982325117458168023268926542562817126152991649690327101660847668167865615498250162185059125935961068562198172752086314903951625622458677657492330173786551442694276572848670419482363144628603327025937788271114326059207120076569367610471975318379754762406737071206406603307205547284374827135592037194119226833118508847663620956579123455425815858496221717929817658045330564600220817490735621841339279922672314177042626991512499248170291814996548104935866665405713671534932348427417417536553413000021589368104747931480578974638425106593501032285695911058480774262952164174917395868991636456855483374524882686266195220453550653437122994822319899384527610882006257900574551149241091898920462432249120581654774828982227188025423952004665329961037006547085884564446599621832952156140333145566140033916012244930867229208966216775025119093284446292049294854460255497638114284751515041035064280999054631619334731031699842962799999496853891660770484125894974058836728136296809954723946809931697301410916461740583603687597493770451817095075197515602167432733260370117299316845259990401153574972505126789948877980403716592729668090856315892353734911200230291379013016954393582460102677238100890752836194316433210342696979124320537872250092348126353381966018118631407322319419828225016688335721953967198562696143976396541240079127006530580111401990416109182821929432322738087625617342202587577892654412274478132444050388808797766440093891811842201179257070326469131021683147394265035117058524413529261300991129900462889487612012502844974240510180606073056699002873039213172186282862659638807550628953625884998335303063126301037426893245697271826236867286077660065659267299810149608653866918023745118344407035149565676989419169656725349099669505559930698684992654626893890833182688539835288604914122324714782456842181823776505537688502795059226795479022151698601533930195877583068885305487993185450144098782011925868396936790890480501096461355823210839206851951220447222512068240415646897559891575426492285606774706504844596509127098390127682104930678633682753496526945232074857932031299432477637380230278220255801942972359209056132778461293759843693912373987708673912751321547343286362002867214992273499904098053093759396508538546568728104374289307053229872950526351458077934633084467510829924576577847808637310686350714669565658482733314481357015558610572595044475958874170344820204481014118718706798182392169247559730999195607473450104552158925543583230307769780067137932577062111532276013554819205517052469040230796423396366235452736261187269416517994605071131700974583508208113040241854633107962014372844406855716353417488743122465392912710025538258421738579979522260730138239711334040467938883654934138701853758888663190595774501140436238686428109650878313398129124182698779333925173597906433378061076454054179205466734268686235829459936125982613828851373750651870698234394815238280665610490756174532378216732302418790114355886522019156455415950335384699030599145366620397461343973769716340471337013048875687391922228208658762747688359983022078387388088707758156916830863841346216499094895748943288902529073617321350853410913350057927708203659370171945586431577952085938710392153238985887321075478961572813063560336267956530501433979534823736964758717422509150656519244874816548878105703916737008849502587906706153490868399731360711588505010306454641241296900581349338536348856784562276559805350977454965415691710289556330607728193834917623324999936272347125341841356366471461745712213501934310665104386146228256757062292655350760156560081580137621145977545382268623574863933554933996951223099648859649382207889223685592325208776579959050557881063434162763366930725061812924937435818970207766118280155365473353627720912503412394274044178303694508969217982918174024363954992522933747297797806243276435304277133982640473041250592468831246990859440425019258938391775648511128510942120595580051128469888573161811802751530365241247818156328923433919577300868060398802785311895123836255537438047567743666923478149915576501794123372802358304232817737677769134110131212792269960125863119482609506120506733238540854838287806233100261012481161482094313482427153927854659544374443282472942588826123447710590356336529862551142088830619377583114261055010913634126506882461412493084931463446017006986418107039228323618092363778334935335980820077981594921035322629931516601716017871427132675078084178743555880984854117965683807093795203557546695963520022802479122647582778934449972447471821302754522178017763269658764150596909958226070978776059268472388345103370557944813388903275311239269894419242146526307033831602998615839558510021535972877598830272006080696531669858981000303337033229365661673540034170922428216860553561333682111458906636902496591222012760191233509173285870332590005295326065502624814747105740424881516080585862095832612522684806745742300430944508839099186634633935003598982977047088876307588186322986665291926715889688782527406174325838800936305980464154569277342712910216264191947537053616868531012271262944029569548932861868308122330375678045768585351604381859024079394101999919305455949558944995018330892477000565635237856134864805851396069440436309854867430479852754973761711964443722799468372334373067954475242186927215667653725282884559239727446242834559383793117691973368306524674768075416534172055700811995941499704768625275742158508196463302624072198611469749255491911321846935017768624659612116444015368955613860173609246550982369807936276665236472038746011223468370680803233407192602990014047707399373849133569278590813036596952013607858035392209311214972826724464301344305999801652917404012002858866707638689383346493359049311069639500201946666864621373986008535669847901140358536144389160870560386318078080390722205005317592721899409978028101997455286936300914384559965891624261686242223553198324918393323486657055219974010694958928266483734606028753886776825382129673506843670980448975933244187236897354694457916060292902460558192674844099996756410243320257605388526481960797649012340479504081583505726756989851636963744695896098041896848801955688209660092996213933529326415189920198706842568943625375992976044488033022855675713185901517813508974986450290032180763506293974632810180250439165897219483337481631171337042348806338503683206387500872885849462593259518749063217548507594455405475318428117891927652387527833434578621685461260082787354771752828043451106884477345192121601531671385989864125844572438426786007684067688015343489225816442645929458915855294867109167094670413095433394699497578354043116346893098263439770646266560005726060285072273699960460035457349559935593291385632313656447294451635701494483661881499525056205088588987434389414014403750276623662949792478417421729650281160448690634247648922497478492478166593934962550988207566488747274348867605558765850946389009856094548165285288434882420413725160507026961061817308172421622303418199674144154646877390562878638201987354652967153440999333823472637145310517019432809326216691689432586946128762554276137536629835633376431205578381883824167795543289065253749632439696239712348308071082521482995678578639432935495312526998554548401037795443019075177454561956091445016412180993979936420477351496672864197818669136335587113686788509060948883168520976138481148312237109977942776548133863276209648875158362973610023149395716070207478517690259136022146809382273772740679008605058488884666725339241995283368873817997962401925588612544998230848577797006519754840868773614387255602566698410254513229846872104114141349243513325887397165196249708908741313332264475323710550918516502289187604842013426627902187654518544171896182215267962037400014108232451186052181785994582519153071424078716856086219067456463186922061250640619609954462740320421531857512467050658451505412021362718744223023523457903771242852792266340842795006329373815564847333413019400204686255600420512121349285371639621906528971577618324183664505022055884728768859065366547051448787431246294836552098820492653701437523388319379215009925885611025593494541304325276094779248178332383435127766372474950574551652757103626084291815406114527244623434828093486423882751465074924036160322405745647067342292699365295135064302603837099785803485832233833766939601536149946561047346471352179979768503479008802254201859753500229843070564886378151769814101935497219818953275931367460037088806223911662753339579796645361031322859258133585176804244287069620779152846163914512157359627327448170868502170250252428003385751995288387261492632337215694206758009397383302881756118420847823105459679335501184898071302050654637941962176310333911644979780839692427019792954187744271620634854670012300325162529463384165664071895020718998970460620637581680069805826049133575119383364004417480040356757907671864756530227391429764751810283560290122619382420335942443216767662449582255297582212840395910633341973711971116230440859133470061208350053148034317525660594984483436569434483111514878798150500341451455041657111435018877844584791372660228816273844800442737563273549081747020715921573135743298286168118860277410464010220245004919271711339896218237769415298273700413450620487253066845459539713505478961783916980124342216026867382527595196175035850114403234482530304333418441459459396069328664714057174045525053397345240717825905140839341273951750892685943795975275909382047556690184272439514111323877745591434631324271243424705624076292463136855562257977382553812814671717976547616491972462906261504199928476225894726003318080287904498978243285074127626946215795974000419772771950292672167016059759578771691242419567466005050878497923009063384518338669894887147533230071806277123003562896579297926792204674494107655796284439738352793228266676018422718531696033651298094357664632615455712508182124901979732175263865967390900463736565013477328839942587540168719925653627596948977926285569668910485454495927073377736872084072525738627054081882591825002000665743546134326257243755493592563626728163332816414559140467591659574575924593805582545779364772581543186000302515494111163658393731460034712713149966102866747603877177525879998789528389640343907062510097636619234066994136880285388286399092133213398645963157113002058040978113435616069243117385161272918169065386444164610666708967597695380912306742450939901873607137927130104071732537948352892337991119916428999302930527921072104490921439591963839589772883090316351566553313334786429459118784046837689834859378354627432810068489828794388937461469784950162122859501940659948218053983923987072402153723888346755098491820305990306370854597356156556021160308537513354988042641051246344635089695764937798901233935157209106750846946420810128562023599205955339196985596210612961546006998302875266747380090858664740971700048811723942136752806929010521386599931634008467210097375290112299694534535145075093398855956949825489388272584781845844053324228369623099044590170046217770218593149379503724541558309126200578263764040009047530101018170327176885060154607804831263937477440731965641457515728696154785332733103461349827840669420572420457477374121625015722270656897797053734663170021346099488937470662985648242185967921080390452318784270795822610896429304299940294761190448724085863698985303790730779599872622106201008535955990722443515299583171103836672275176490069323335434569257684390064985768227838572734352591791728498783345504483405754669490759336278533116715501954550310776121055411485833748512824566248528260965804148670327028456061535929069540895128179857734340442239908011113012264483316250550225145750756637813627414631326027552392215718893771878153160439734909712560831575293735873734236524686477564211424098430244724370067956524920282038079463952599791485984631545427786343093293392392340282675623491992514693597449258003887699183869151005539027763001273768230786019914940716708664998591487463605062566274058666671799294829437779367003040520488772869211029131874535535648352242347098642677674028447478350480028676526462699918289925180262856985840462419404507011502754364270882808716840093439982455417892717507199957308395671415505229294719263507548058126061550877363087752300653032587644440590669023477721867877249204367472428494039648368517651314250743169635685952025553371497646668591032929532504303042689815732131685285524342213762794221077500040590571102238028031902702744642765015609752989928311606178877832893057216156580670950194149435559437872932505666686444374731544951636401609251801377040845455786194088740484292962744343054272162604824902708184995374849220483885005602456286926440888401924372068982200987843521479788557832538137388088087417743284896071802049774277135140972653907460759184693809873169849310606618285824743579547054042658551429187649290133033760962953819859816751488754077854948218448000458295920183807178487087831159674271013485104176386501735934034740877671952735601873205804461949114801787795187302017891271142872355924940924891845258719479757024828519458336191384947448341836509309478323936689128972498932722875183802388373524559594298400876890924043627563538498680010195616174426620869817435329441665455037899366323023650593934499240025634760188209383914266873165269071163406450594267877760650904417647176906525268123409365025050571786676488788323921990961247297850785517705727047047399456597043826913119621599091352535372647223611186692864654806684077240779405220854270838470101883580972611480618594482137978100163386013779699331258034785544225101977665656104032058380250792213217787854441884602600520014874995834787359757393678202654979950408813013609371692935514031585646906981797959153317942229245591667826391655721044093579666634607281562164625258236607097181664857189988556097071762265418962965397104656744230174175138295657052996747749436415606150938107679914287961979904620863974188273097461949140856608136456164260881915239610202259700409221738270841252561177092562804235498832251236135339562983505483163889373499208220790307130041185983944981021831966900044982390517807246419317808112618979773822627967603724957346511717421603911814239153941015875149356752705260750883200333259572653335504583607626602935455994867470539993956116011780542719575531713315228002925279959854364772022972560288205312810844040080543312699870493462216976323685407873700699485326857964083732110002878618190048411408609337972595136114017476620182538548490167863293035677528711853941097136493518016054360390333581244770385510595576998217707168391576049520881684069204234812877218092789784810447340642153681386631866574475971108521210801116421798741320285133580704112591514718339036079469276030859776290243405803013929250283605993093046441383057583532935126018483064816137016392833924445454131610015250592155588189214850924704927462152976096851292114643766733001555344248822163409043657248640042784592536656610872421091390138824111081794566721527233223648243910606510539360699057168947964895245059481881814911214924966656896300926868687795189188216532332214891522606274035106495646781432470168911346813304836668243288044617534889151459648314776767113687261460760531406266359263200685747927912821322802528175331787173914893030606470762933873286754277173344926827866828864037314278456025190511253801300180246411046495276950551877104530005874651368105845465465595610941887026680815204295177114897394429872515511402863039601928610088772430949445989670205370364311964177063119087319114450319648144499299173889012974390802300446314771678792502157889779755392741142097405908953579196188613601714022191301497655830682749004767610361718646750268890802720983915110109159456920411588033298607834905438180769707924930164125168654542420393447303807875025815589168970938163390165214564090244547062858915122953844810612091257173248795552329805998241846279529733793200466728475460127891868510795994985641945100225027868965935763720115348160236581461267490068651986553054392014968226330196174093439185648490681627729587818624541149340639557015935044727829699964716876360386216938616959238462281269587433925205704609513227358784462912785714607261410003527574555565380652340346222356017065431321720588152785685562475668376393234211015775337055480874392173854643594589813287935496855315000171605294987023952894427418232274794604800560700553208198065384951255242032882166803278686880634989057350893872151382985291410287998835366840147315045736784414779567647131881744037106923848251816035899533066910080747183629124748446748680545812160928094495682429009637874898843336362551060030297539525750512394332246006766522695139403735968587370260466987112418680407895467090224347639158744652413693916175625120565387042693796873395862097012594086774522023991487559739541422039655860308304875381700228465703400176416343541183703096568791562292162267723135529959381608770950359273782578981796999876448663491908340201307053273153815503454559170534611094163865531063718393883311397256102982845562922973709422818012113843802783743459398577261092787795187352382654557331940444128958774894853882196622815283382011823824324542128272687014939017798303192872591606594011493322437160094596772683107662879782554957921802132030532910908990832873578278899620571108348208285892126785019853989837019342570977339369105580973485912315613338537970079833215618071369259096128159539600126457148390878892787687747843612081496294919293477524265800811863215375677373558531445997636447539771127428177319548613877098559777039208816528978126423542302831772858159109347112691518377845169929794625354570422361389483860158126092718239954056024986133689812274154122412433075368660813122351630370590810564298806924863016855987003901289713901849812344172178107449669657829527754382010835985237270495542044899554839470460915429644073060000937122241186312159266556696130923598453970658574579538323618264647113526626249788358579129047789669810736793936066276524726294775569828701071406861516514588149332412580248923572107880938779345456225668788042931843757641921146744799192428982693176461119563957427508660870939681542738088568236411690966806523447825306568540566703094101435374366739538647051186445411183142251342079835377214474450800945979435250249580432380503731143457283790968496264022874616816561117312327914730305732255958429647808422516276241732201079411729118063993147113956650809332771533994138247435533274714648481661367085876956950447012387239358355675874757092307208067553549067847145164247252473319088443486143203376909100904849835625456285709800913942817655744362675267254444813445378416655597588177157818483646232424039102669821303498752461465452494875231372390285611055870434738138760404063961478840399822414780698631260947924445085226278301885959442335579991244370420284519928223171351708391110254225737406519745658900438450342254800235233503707369242636750923047987366566058197415588722502761166605015546492398283600978370932033173792225045450497534675384483191699662120586886508779775532607840445095352602063563898511944471822848537244955304295375646026665232187120649289427441354838198441150918568657651654038178258210405974988924834286231576009813333175755696968433781891677727997739888551000136913642737443923063452360180625897085222959738740363721494335581177220463583699677937377629530836971747745022852391976131495880827420020699397071647845558620572149373571758300431632634150518258054479254005179770781460937948821431651053907848058449091764242480666148082578434371379892775398008926080943662139200187557457126533485613636027194837022741416944053348991680232306033976402163816130470733510781117812326865217492561231962820137549472246525588124276033829398659238809193637132092690516383189835266641319779581810575694968820125397811663510782163081387450182838164621186116185358423091018799765551299165037050268264199279140122042851067360089292133688749175738859841378258067669485261119370139626867087641076645244852245792912170916843540515628989374209014741305454820552294518988859672432079108462210669222132578047315203593449164304003459572221076500330840774730607364283551490213797184401099902892869704765095996074131393172850029730505431616686727237046582807145018027145093844455237853062427709077889950224789543545778258569930320136930136200352722405306779877481451759569145227978460862170713204660514912500323855296442032132468027162772584383708116201753075884368302184554028477435957076808961296408608250910575656838498081682777011992509194942080700411987079280476196277061758633931828829126780692660072988593916276754683147857239751375780239463724986738329847543373579785868528030580235309664030141455171016838451428938472470608228888931595957541237977127315882705329607923647733651010532297181015706407876538351337374644084509888776604171002678347683737113811163404489815018160862537580751571793454917930008848741816434855866348992542989491239682099878822002882317170632501909092267798311989927048247430593001116538297438535850234273687144923306559340751745970722680027510869960574223112595296884790433766948505709303229680773093527697748180265725475240834182515902908371960971827215581764180888500024286776339037314676572441271056650583737969871784287021098860679403136809116542749717571795668793571915538462035237369969910203200001547378844408956397939898380509282889634113293714624597527330441414492695116444489492828804542341606138896509882164009523706071667263216865819378389957092375921366330717653008901522398075815240586446480752117265541020443143276448534368248349640655539397285463859220558034559603033311721263692928894700350401647533256608247810509554252417047017314533754642164283955659150512517901587261594514216962093829110591749576843022122870987870307743568141472525355393928944581927040721199538071393489949113807211114655894847438052734674003916717727041121341661357882463546898144735771756948807661756263861948616103767037271149831553188539738519925646979171400403003659879407239016236576302708776374418838355061315969608118373498821170558644059283563333226185739859132848764519500611303880779185550882103071388474777530341043831959859929596908151101772339292699084835950718311154736720270795763777942180597181550064715812137713732056839183721953400056356001387583691977112581706113316633300690572572548128498158278987108648657183912607901168995125870945474757876572220927726471081054135303528051061198180613179751862874867281268057515691168477723333904868950503533912578434729347556714772024369545535108568215018121642214778039242527731766928424217060074850242672683592476620619657346152717315456556744551387290467916827278063541458800250545103622549940179860759384960867143333600592292503740459982698335758054111171143128836601543368635610693082998513820589032884233438436300571710789934162367361976446777843043884236985528949737679845482579834695015552071596296274933595199241043333023616301502156529322150984714008038894755566422887961870224091213765925027263086658818888058852007910537275968605552343624253490128653833075409785228993291810331867817548923868121403376422664123963698826189677634639774585268217633489615265848092627092259311730900170694168389309523626485513544293612990257641347841846588210225243157103024488996761302699078367674681323353762886689039065525274348085420223993435640482491465497957527951560874835945432030510552083673074765850612047397351401393980218795349141629416329608922188780454264130706729452657771557333466110661723996374625494600599522548448986590142763573126392615969721753437789226748095082227845208101942493937428321090276059731552772798705293808735628438842787237634425201875885419309054171382110458668320450113887449911504197243675758264549457725744001332493112183435753168976146935637734909244774832025390164540981443012517859554637109824678810184384783273212376827175096769758828137625304464874916781705428563136399620730488588090659204623848463194470703105369299910567685737238953268847631650303089251759048423734767575979978882470607565242022327540329700387138492663051362473733175226413828938955347924907534337079632632207838293198912555108151718564518326476358990311514904694691853864860393531193274727415177056291144217584844763717365037993702278088103772259360148378205048478782885171519628256081798290486601643626155146936978932282202345976364033555502270345699499419773604185415697561547899661982885163427470245850865193375642204433027447939774618956083356236662340116366656352410367839540175130920472040732274744096137738613745814471024995439794523914206615570548887527575425764676604616539513535070718424050466420553629125364799837861540558714497452649688018685647021284558728102148855728634221727737869081555031465087840646436267358692945687345027128296788610022927280686112938492838248977602098909804355410005331326997956291904750084948893078822146261580762598778025030722702744811978777024218528636774836880300915272438682131147235006416491373559873121007211919240367616175409642551294113672864910495734654878808905305688007820852408523050670438345968716411540014125053051135594791656135037447997359050293815948507403284575890414228769032032037402963764777759240898000205598919666038688889197677429326088691224537874016877931058786801088486146425530419541436403069068820868324536823416320313254035067624118037782687752182844705227476494258017915784087296622602065409906835604312386505922377194326852766846037306305851267758003811225163855312238299433881603600646433813363355591225111259097640460832991649579996171984925467249802357389864824889686655845261395231932095805496545786718752903967206923503938063319847543349050885115103080896968148768097911591782987287728649091865879766426784604750639867997455151979019741111803075957153373697140479273805340832209650667504889079587549216727098121110193172183226480243228333589186527058673731455184035470111530309842920773997018199705126752984559324366840148585055618035973058989756368061490394766898619917852606188301806151480714773275386274606692988152204302172779543243200229457797396523612034316961571339133016154050537132256538232226593120808577538226421423009563136679062150862720742610904082045333088846790755496373885000532575406242225883268564627992833635500058220227785908770860480073441936024372142895199356801471954152513734617405461792674190312899354537571770067150768953330977456623102177081484848972737506536698974225233448996207444201314819041658543965809668339655544220378612786246195075901336912300377372898866122264308168610909516975151495324848871662696629437576839564103148209559909206109719909105705289469057565513320840269163022762726652537779065114695446358961330707433731817284144539902407608723939252301116602714726571864523082840156403320954050875060856639742974925488052614716577528757133892029590996321317489914147912321230605471067939404865964988288487344904182363064632869326115665522241695941639031834706638651141799202249122732379482578217336129775344280845886862423295245099957531473323050562439847061835608616271672134753950636129126123342070197298578741242147312720332103571974395748330283607876409530953633265964116712445155643665974135864550077272104266096267216290003836927538836260399824145531145301878762804101424945941152853262159601370734783620158894139250831918253867727885896462919421221014478131128622844758437281006198045826128720728931997180302102315473667692376363501917903564166042270730272139911593580150092808219904923018056685087867821947673367511976820146538173776171431838686992353297183828582474610964792525218737872346601364751878437051777927637229638517012803059825309770527615670414877816958097587693956344607336996116687434046281908112330800556292753940429827548109499327763801238986213520271644526674805757300254631522645029294691376987521084003911052667315947163607548537367889560692787454237763746981626963281867593280881342568821388589205763884018538640213910728759630049006761927155876891062438827706514564738740840539153806955191597342274024470363099474069970065315009019473371062887190435546015192831032688278642137814758683498931411995739882694633789520734545998734522343996397829343133231725030786122184223935079455204673753242629019313968915761012714522825465996212094889937350357166791954947056292358987195114805466204337897143657765260418925606223950298004958281038117475997923491045298697136703668390941520359303317059759823733626351568478677175514258944033640837765190311580835572392614491016891749142122024692099254165501498515380302869863590304213958683598826451810857572470360895361522362544316098927974578261977922944874801791749544677361891877006725958775116699494552997937290454986938508277801917409472446998505768114830443873107525401079190512270456295745528005130169899500868833230204748445848292955958341934831753130834314707300210225071695575571975637685149768740690821321469811873846259707477270439435482727768784018522846015570516445771707427960582509450681908693289988617740149888631152911091523587532686288711942447343184991401515741267750700671708962595218586481023229411461557168261636553914819935131444490519136024128529778292638092421387261652385243117463807104927059741782937277649350754969451283781861951354294218666281766060156842381237409945337007731931546681122836112930947824909758352210701030699951237162518515062209747511731082275275448309537098570014669901832601519190874143674864517337497855179599096980502690348372888210467964728617506975963275673917273226224034264669231256370210077319368515045925521495453131759902233983323759690773722360596362112250930582670626940229829740779902784103480749281269496818342266495726373648648977973935523475730146325366557459191544931190489482353099548382234682394319222334865893576829257496664674904430042620334432833742584087656840776197540099821150968685914090735265755359167635362146933019115067654486170189894038942238648161194831064323482221442640471048686065001580875678185807377916424117729912159837096829378134147859798662352666988109251327905593515827031438601658619487755628457699712958702616011912281959160160222079019235932346759583732595764906243110754339864011156207596367857952724232027588175228409619581757624080536030518987588899574459375875806070339742310384830220817131277186249766092308421563828256074065603098129192203649580451543177677054494945556802877410071122088653085683707609516309810241000167622590491117721650828310649675298382611720811969607973063679598327821824451475693070911389758440636755503287400517283824085695931000213146367655960909062231880354740517778253453314618465419748688245927093110036050515606448257863379296783196673977572562036151043405590707794447020449920423449228674432838012142573978676745075809542377026719876790902974666683673604050595749419578061540458024698466620422776749247992774333557304439885334858959525750307401177965717448560304663714248823849450491733739323896203264651868789828175277724992891511613207037360628387546967688751411348760085099668638656290421654143863361895444087479937744457673730836720121677974004333537505719737901883207821758349260616101561399709308233653258566971188353641494552060206434143384883295216272697263595130888070844968571095590031578236041581713453632581764977388980480321095505716041155968492876575350605729740674172898942081494050927925754167980931287560321242162704598576132981127422052601054677648345966792458455530413903718296406473533717283401358996770438915753954069103813912890185610642821381842117222555517847810297140625492074029690748344852991714383115172583968257428485032900134210323119458911882776062105899070215650365258593594964041893317247611779971029646197890183461034826763144363279171839399277964268530771725007111953094567517295877868114206064682081497579123451940519196606859805024309542134057041387523578500922361491396726664229199504481222960093133507862220784643181161696522646437561814885642436859123291618733557257808222484577292549738929982042281866354330312770409559103732589837456067206146309731451740587844915904141279638902193181287126652326106705728203183738636736823693828482409738132450663044557319152796544390276438435607129870631472582086793549340512239653006458968558799009545103018791616202370101258526683444740875160833253572487061604677669538066686968480005426325521323403163893117045884080528507081318594370114189646949638751189043387782016195372409971829391156968761036666052979316806369189356290422424302845408520084054389235683031505135435102163252256581480481053417065948086741636268293144114326326823125066330346473491544873976771995969543248971478383912461577033148952594109977856721479698256842855623024918839762562432821692420898397655188764034561514983820710575826247314716034696130401699020080772691302013113821692296831924121306998438420422347929205356164827309826960732638565178947837414898847582705123108458467769058315574818980519893309083525898018292179137135431773868327936933412235873844046687774002855403066150152091324646652018369717728387828078475856423191673392651559808603732040332944630201345316812601395646150535436426544722172251012592446064875380400642394825703616656757628608514622569209224249679537553537567204192590977127978615186460157311132615263755466615720794646837753660861449957224764198916098546542382568638125046826840455611131539328444177075947811178547873012084269062620905835812926725499765815217483490385131691605187958692979692304886647001744297764519376150591459704467334231834529997436811368842578801880200552587296308099062789431942077955506188215047936841085095247541540696400356938448355349392996426589460248351267548060192375505801597925409612596107925626826996572322180287617250118600288576716697317378729901694868806862355946816368126455676997124316402274499150094391120774585099334721714158651231324570927264486694375070923914324357764367362447528563726382531593654688201301867612964720820899367873565831355525317610919897199027053133922351100616392503053079125978449581215317214838241347607558120569748218503301407364818307313009225142438305414313949047078557567455001028054260081151402578378864362570001558117826508608908351418201232163344978083432597838691976942265133151325357678395867472331257165726755325416587569920365528173565968038525671053300887715770087385747188084409754999801344792459591078706218346295763559077514790157359209736085979673067540124433966651582422897327727649223328836547987379329928984791988044871416740907403233357579078157270952578791960362256773190462995963230621223389236465981688659574003065988693857205458594892639313765777985201064079862533418269286021445094984577693790435303437972672490401495163899077141551506318626227566000089333173781487338421133957276019862735537007751979329849495995939180854464189246081892837610835423222142128554256718269270186776195385670899655737435085936406888181311513812891142771669830967398077034531882743380831823344371143013558567393714915014198366353262222586397940998771670444908946232654106860185498975198651585260394636834552027772857930203419159235642289830933321361246783485161858685927269651718250352695516968342449714853614196618277630178918137954047574204010355643334301810541901554169591075206534856033704952676930659237292928348905144757198532256604167530361430955242562583984980684568238619793994096401185586828392658819943324705066585547988267510939713468104364598202790295119087630735010529363790163699489721978356129197008788681450420271598625678448954133659510878524459882645866383092457581465814579371562740408443466896142658386542277795365584777694776123482682645540537939870957331238896598348909394613539302407579890327632431569533359369607318744715123935487761826205203951383761758192686852188525792100007116900874050991555775949230176814511860000959332316038832838571757270805031964209432382902970319303178929945566886440631807331803365771449709636270574857991300423416038353176447813176112472854113685804716656078878710886712569550653734154626103007137451210867690951223641525255120330227501808062615366143034601367050818387901058041779315354205187224648984419799109304156648923006343998464360872288246271925587328159917806711217048190307053364405493769733953431709264309017285979502808608244050522754293493173782442821240937411450842873107102720763014623826516663278696211769805200518446175238137645486238808136942876175113265536800760679845351176368038674868845571750497176510102805927807668927434338943225155865665501235139693181178033911991200070136272466852660660333654154675388772743456711940115312609582972921239272836072425303590990067822654461006201575532045126254135835399444819185003541503582273930341899895873394903820998825381080742237031987906223564876675184312616900487571341896766539110418613987112031748761112317641205854296596433433893555128448324333323867168210175575356577275624954653467375884381969556177221749031736703385021546872606069355508755215442751655090639146790502028544419691445451079883512635980916226844661342994242972910899247262192667662323090419495238637144794870284894857635991165422844006375004989011810164043743418842129711261068025981392559388735156285179614121185836954805898698907132953503171102116196288379948342134885725596858817999043437966451237664167729549121226142026654171690861074349009828449457585509625612091419293763412029255643876868085211926914676697101875347106242890254147134505680008689501619905805710545981230613110825293115135643414906009640899884959600027735849171812998643562517724832177372057476388529433349360972547321933054701863116859134064168817085426687274758782768281349005999176398886497799901400470251800117314022368500883711997100795958678811862698225631184199714457736536763660564882624604738890731708346833422843396303962589428606544014967259241459739880642616064089636047972438995402422320574707390161199689693862933157799983969321837216929187728195701881869510473117901867126428551617510844240616155169217512307305140813042221672050784189323726455010298637506885547418063832607163601728436651956477027094828817643673620410656838024766486677912609861845525127088298665300384635507668934290409633145060885900736741522677528590129304952923517275269829515254755977820968979215324760902448209534169515889970320480300874776517899797462145191868250005654366410921351367880050288063582551360966503615628552139368003036902912923447180290516073931803636400435647717598238187196050773357357644958016881670728168615697848720033135212743928136497953739530907962156864432201017875145899482113756721292183796788563654589310096101424829369313011661149605471414125340880282084165904241113674559754517294841109154285006680685868841445564906279766762984061705518586839725105412806281365702112393621394491909905874512972909153932344189167135690870345916091402235627396585873856602016661411544929320584056904537339484113419001561368525340872170461265404197962579592923341725432709876877449262429697113179061363512548356956921066211654421993954692170277533744679696250421179964951001565483220075470700242328054813621124618175680587481016888227557394428363525358050620707808384811959386353348140750232297019254887107293029851634497152214516960075609255432278817200320656036301087230133378065359433206296070931656066777843112388620424503484122397002366562512699061144125517161523916971083285841645881726615179939749954392027143730849850632938194858988935554947239144479574352691616357305362565715112817507637517043004709087104008425522999219194788744566823030307854452993006936880457955727532361834834697441967222594179453877104505651718076372712373942689497284575598423791568640815579586862453304576374263608522118764554519427427437412022180450708774881393381064841904194270619785271390869120399697756800800248161685214380676827382615013881365329938250419624488873632040546474844493353023060743621466003192421034165321248089148458698578057046308170110629297865388588587349701541078946866590136101547839631530392205834696699011313266094009000172135442815996515105788097753382723525548111253464231573420141918721856619681828682250192564206899088509296197055228159365581089492712174514874587954920012472985366267643763764950427438323164068671944258692581374555884294900329980682159786564329329177028489227205754671418829906995863987124926678119788963189457068316696767306943706232648463818037176214385241600276573792738941874419775959793356020214037682916460433203043949019944504432998655834998760857967760993816223662966339587764858149040867172923411835805181806653526189440015014357468623720135029079137425109212699572054238671883207523952306974319707938146340757409550072032968530106244041906882082840808221871579845987008025462996332751296747702823499877360051346435279627966750947906357474810799613532247582084148136941103981279444300718486435152409900393524353082981029492613816178856003128153160795394020457369136712168941296610471010832987798674005430687380857433047434961476389020339355900713341576796218558551013883679382255704120018245087409947859362686140396887616181062523726101071433100717793476766250924161506009994138863082940601843447466591687253046620823229214576412946943470749276275562224149866812290324509563013781081722405347942756054637825721925200675534528145113735594616821300011394702451892474339278469987123698143008855813377220254382952179318213700051949332869990737886672664790265269127489488834790514791381555584193686822277281299562115573805095022845501179971368484707786353340540812516042274029652932029047133779698265144925847964766315008173234164297354054898287308261599811632937734159136591975058410199729263088353920705191531313595978465917069010085467557808674293169850446679412994978363159525655474439594839459481585139958619949019996999756589976125047362105078139046646751819602902376596912599816454649068145246075468957916005725478637489040012328497533340287355561514313989619932382194219781135721350609339323298942643615910374478006488781379848612330251486298430493361010668922828661831253138923824910345845768174787080532626319660005539906331122913125783959079191666590231806079985903573474248284524370667029295040930019845956176308436443203699010856062704231713011596478571099713331526246442063812913067893372817318340750549562450356487033037678311661419058507254882000968978493498168630598387316447978439804177775307704938314595229563304944205271078045911108424528580657856206803081407316256581375577427983407064640021364083930681967035675817394079907164311032156487913418397291881106945698969266755074117528852953764638100726970631804592912703050873362108195105086611277195444240499964876086496419627713458788930992481506831058636959823972426811032910223827692162198427441832470576757730622523770839315411236079352027429755534234914209351776155508688005090720750148346698485181336427625296176004330409485430350062582234012709110723371528957978856514660337862914384355044878474586010269085881878373295645168052975384321268925788310342214209862756352466678097688029219784639337972493620098718606088646231848444755857779063313613067352368219842474918800033235671544266338704697005501231195561187558120741639732899430833482332139110906592186110161618993778750259622402577872168844201538422087344258977296633517322292549364120874458421815873141586216899710963629522473322953491225808728693781974368658237934930996859190926354425494980423771879553365062996903318177162557593064274827137286091268027994391679202577690355860636120297815677731793821068693526210857497279612662896790283960686299528228916918221746518715330976839715309457957066498370684221516997682145102124145183757191913378911017346630255162685954734874753323438400984282822239861117046896865620670120297603279660562178210328235369298308546656135865140221115666081522559858237116237645137663815687741526972470395687574484420705944120728088108097301465424200497252193868599323211161277461437808115924511742055898327629625210965985924601243188357584879852586916435302278964763222663599400972031712899722663843746509992162547493515274139594696620679251935820480598558219463888640151587806857911751018455486676243639309682081260070400201407550957008098503651198322276736279491632271606903620867353107525854694971636994337368276890940672997783207591099721843876217683805628844965444967529164254187561005509170303593498686790610865037436096208424230699687379978638531028281610074820990068835240805035136010677582740389487648216229473151651994905933971885668993537978533972883948527034683761484334808319805805121657944751249701263590742448255117614001049450587531084882356959760451575009661457225922994058389108759743415066381351560676939026478941408759755891891335208303302718488259712235866555374791271638941990930868357935708878839265714087490386104243391214812122683136948309057962124984627008539902254286291801060088316642790572976185696009274638675352960892321941983567479905171255317849231026241363277729998871446479807686007111997903801343794932923327047886803911854762173285755291337390957746797419385920585993893162369596560659498191479582124040397022817307525778255993182236878982737640768675777340223414106509660174509359153664125347968937096892357472924992685659731499594268647912047824308428392196745771836791961336181628496843028658020480660554169564034455315134267864749024382776032193660395005740665760987911960397547606563352456569370034542560316784452341809472650890090407655189824634881291750438060482853569162463628704253596352326252696532427624397643006935016882431344161903437083016456851703624356534649364157768050161931650354688658786334794969295366115239383176568756945639215602231370515893815644943777380233233653824266030345513847997205195000450200683911958979565900521333708334502392583018550219792328034919167447332638676387677587813146965954937609145025797974162168830849372250803094516164301276695305347246817449151519513558449598173247540066252865772427002763627435732607407326367765028496980508741173270849903560672439452107390538082461892560087752413188139741890699246377307261800144362682262800460923559569537199970958340351627855128148152813836670840597578105656598969429537254314512469904579524831767268242300084988087000824273906726188796486312074628284110705279262564957067876352062335649574505212983818115424571084787275418873672061488212206615919609042718637636527460747773295144301119350178078777721780709205536202582876952089026451949491809895831388672113480018304944800682347576171179006047783674764985923156828763889515912443313898853877490622652471415902335631565729860426778995465422057711158263587311696879288664797457015103644620640704684087071230638831660171003656816853997983054399849382671756235146130863713144042945443976265241434367593468575027035848834022943675398452863511765025210545274593886097231483509802118773074328897878992555619773712846636045941272963856444434870661039547515964590451493045277016417305289301722378062484124990747158405944804287939073680739211441360229237232761476245663483930091142183037135631859780202110968664545987298733927310462968486500349169670265618240435192632155971000780506062469800563085377289115223162301643309577670338725455439392736146341013580243225345537305064572658701892728160420349717384899028380436970864344418234195392906356214261980302709914228787168088065243134980622721027081552077742563846986194533963014819727998199822005300418495831481001761122960901008341349823512654441295707575103892372972916974292529392761659614241100876876842580903883559375344799944226810370342747145378072192569811819347107536741265169953384299047345134479155151199380412146103551669821321024491867748317799948617797014260777601517640812375854007862208115672663214244521578852248927346650041618143781276399792218323512795328786402699587782786383435098679778479039339427015295427096802266601717314857049576927757116707817095871205113008062989408141634598340172842151538793215838176431270269164783817251083218424982998736563958455922239099057385872580519305031224485934943596365317266961810825258774764370231052738012116566997474876586048891955583702949049479286684165282704112347516701665720360651676129621514654270649700266430578567562292656835610048462035459394330518395986745048492169346854450292569014570989606859919932223157476892871068344760370987694432417247893843838919964778912948859093543434374658213316419733679529462171136107436917219959741240324314216341060663334902390040876936630318661286288498534658229542419140768581458149033541918250904108470072617971854373812311332980233742555323589250095210673967877010935607615813502157845660138903630512412236213737739942436657835651529498111033533285952103550556650742163793817008467491415228824258436755283402971462985659294259020475996734888564896824380232519577100614320532419913466726323096088519787877199647079681179770839499384231584589693998269980022846716130494769516158493042075286525215917389454178646486451756488059728951185646802532682110317057906754351365433349001381139419670812717380336984633450160528406901555531802146728397253374053571003337176457546947294082054463858440859769534974261524306644510465526174888413905411652552941995262342105307440749636250813855184952748294305687589952868503929128700208169111582211548556991398274817013508580954267712192001701117977619277202193560097086691669702752174613280497356199291353757703979056354521552429350312196911149253881271478189396850904996214249700224435500111293375015982568090883484647686885548335573393533583088694016936230343062049591848292129571814793773630017596170805762495653325167601651519638912847880953400205022792238282950246527027882575208660499354595311135944567669612993713564377805751757552801696730583554893365785950216510443806557698316636410610597311785615924437806747836866856796197125300477645870657702646681554256018533503202287598077208867027789815104070588206385302676906615452926574483454909687114372532240090043528541299376459710915892964104287018372004020698825658599713206957632268928097653652422031440517056263745911488724544089885897027013842608888957661375009178752367739592980304343304313686299302027617963012066474633800545402824617644843489354919516656388546854732547062079777450618403479199110507790103071537323458080661605822062075509632653275758440243708321917473094200370370290478639271962051875845121044739053125515385590323896558356655584949125222191160252259083802777161950565855229742602028242630907648623425170909852293103616784222513584948880392281601250073210798568363134224149060917691410582264663244175583301036804286097098138180704817351256647786231349738786010798940994013951894667133978830931170211369068093522167351326509780469708837010125733760623933779843591891231060454982325810212825954146617542359326552460410001077935391252326828711884394898255648673096581642315187039601054920113560803803044929033375903797189226203119238775518941338950609365484452481581998349864252988163126771625004020513797002957173067304858945972280360713776464326933882827343297531078058095039133440740217994680324785133957194909705558391829486749890565773969078732031183526339319709288188966798402200956986103491044203245776079030608550985740610135707606200763470842804210114834758884531501720529132856748315662871185647117727132977830410308337085466469142111970481940354175062990635154470714585577328383254766334330122699736935225098718590344605370480691155931001216751013988092025310819300523552777651421811663594161203864844925526236679727036514895096406902515643406223668103673345627145935007444110347123180814000286266781917252519757775348146380215171448283938085574705018763994473380838799102671347522864368876886534697114254802874299567809031879088394721538452624381166681025862702225258961750979076650365139385917033780885963934068839395264025977803465988003735228081325645144403774889755973993314728582948465759971305470676811156862183691730590791161052464944890658068216784473692857854951603454506375395139323125817034626292443646825775523680194631164976957158608125103964341762636777087221848803093302202398373418388823837137991744841972238615168067577287213627330754533033207729797496617499255393648775246167628171029438482062450223619805436402075302074002323794515435299613573374874707730960469398382225370216361515685987068293361775395945746394052922011105671482567733082980703630131233795768055514135993364874731789272609645976234777306149576684421993092687597123581503055270880068288895529635607341295723834272399739598177747997037996723977528658818284548916706496941504490169527812548091576937509997195049248495893743174753650564468098801983987088475614805856117234052144814964025322229719381136123592568811084141853186904084329316294379749220609856429918674355363596830859280480711157531304816866001336325291391115550368456343618226649652222004633244516066462417790825928102710171125181011535798416028541609532055496291688511955321042538313115124514110417721056967236064191730809145322065227415943830205373321873102576451195961382402804436151275364623595372498592500416182124145915367033927893229103996854878957599025346698328165550222231991664658080584526755752505385682055439150428312342356083130940655414773483773025946693377028585168359546511049324265232944791063558866778290149169103490281523925779024670725201214725983177402384705729057194633835548833680153653587427653650517493666841970504761077062514599235303007088166390795654620151917198334340573289363307008289499330845047832678930494662616608007617890762401419862990032528936273803843335405971470576135100127462166122748446881732901826037798565553508699016871170882076556267734096104316820587844124335237557614371227908182054296497947053582602922435470099600002323144225023504876072715916329293554180176749525317880645000738656965779030573876256135858358605863631957608387416443687205198103546590474537387445828283278896938363464241838264845989155244020233584556122917395079965785768663082073365971519941821920259602114708128029476843868910720519059460116295481899868290916678535368794241624793407827968344905543385463339813238921170025909433008553158664900750709064174421265789044611228291497314512349858585725287232405210721253748408340605698945491947624538641585322947324195339731185335539333665025754926862329552718087830393056768257932792198049802207369241164125657650922601287877292584685335472944367242718612619471035755076175871915101801640717035618875719378408792516498527318701292695521986607673540763852080791468073793938885148904278814113505162459536076404189312808857887623345691959617107904334787457709043750657054178780613837209972540594976060553338237675192525847275949809733422346443633648256423823258141569310023465252662172415802169338310617496927775248667724195332286481572715833537095403314161592191648642701462982120839474658781879237868978131340601619788146931534292392552682989669151394157483920642865294933757375035328930826823186238304667448169237190477369428367771062281269050140091374694487141783320682444112496291820647366929972818482471764091430155441637297997879537737702031702834571082672778608200756195306800752081317900949763724741641517035817837966235294273433979357438626678847035914257332567116627345290638740223129512570076852407103893359922612429437622152861220720849589243542472677713354213264138685127295985998282853628285686561282362378275774540009386795746641819874395163933712076351797284682575578504900142656869742858463591021498192351107602884080018014453991231966087833342714520441420210858196516027754626889021555026317984419380969855341936509271580103329820977663834389243834359683910872483817468557234630237443775041089595076630846641656872731452550138111364744375602601483790199869933226024809474106387825164908831005089608668856206237375072752549728614099398307529624105271797830216657319473689478023417680671983527655718300249506397247517999659271978262741733479553543115779390108936729228435596921254354681945419315566012760961130712186975381468698543541681694309087865030532447064058632087135448278950293463121367602112755447877550120312882210891284870668395660385072851267986250869947195000876694460658021271256405975888456340029033393774658021307116615037505885627722521384431645198545777563700824333617653574619686093962108239847180732399453141049254682831249034252644641609386653040272977086090933524286049747154570640656293751598390019469642093053369426850474508102537331483611751324172910469003569351461201126150220177553934731805395627914037676686799493672307199556780128739637046022288239671946269160853346260305878010211144485119768578263050602368073396739374896606157646749297649135576628039050374282476151358698019753916284400497707601923146749786225526867130725203022254526843766710608645117730337845141203477045970028947226399526081146404865987080093794668320115110372244938176041092165081580026308778998688358549110883255313640112093385920016554891118784772797124682734831521075432088364181239285462842766117698584509421960341487409379833336001992186783496309373930359153049611900090140880730969246036178414164471033307833238008664374657050071223722491930473339135490017264032209928720614725734924979547673428132151854916726901578278976645327873574417692645700092244889884221021056937069190265615017809869181758661557826526311170028402885440136583125586891547823922914352589827223848150837833051440010028529090916266292653976476193985279134549448841043483976374647094007275063063022225774569834663316435108056641934270922000284243282468628017866595964381780299444937861138663633913015737789137451074623414072892274079824353397533151229459780699104746219058960046925613921924229009952811110604017266890706204669101529379692667073077732072128158909288111854207985845215241250757169394795602005444911925911875078713828805575865904278919519335561109590772614043098367186360274917896082025224558608911558865323490784623122207379599365119186225728634227505222684966208326512716027039693169726203688748671608160188302053321286092679111804388115457697188901354480479825543271007986877558889432783603910708015339913977811262753677466646397844797955587958996375924942122264512743270894481179936152134454269008535934868338406346043325533585168411804499972281553937624071165595866662998561552861542628198059285870794345005736718542228299793485093196528743914822101811798555641810875959364615011305241025384555797748673889222372723221326794611799778532083938206845934584937529149870613614149880761819127523810697806546986367582411909232493247267904754556359310035882689458573236099181414053245651873965231592726820788261096807487134340652288578452340883125196535818769892374103035202983080108606804414797249442295418974850029670668682580473129842097762319252213457477887108167569186813966251616794189229029714677340752835741234563109634002640936672284567184423629364684398432606548832995315637047664110356152025053743787199770732993275201066351063494705752276465735483100879883625270115130669904890441247817802835392434948855210101530990879645495973284133039773504545532533605898531299130569506835108101688991890261846774264343195161248718775489482111208820571339699579887181541349637250250028864316468784128456171472155219760325366834344001995960081422276757452654762668088771978981037924530000952326545390612424661470055688186021071007905975199505395898749249527976061321082087708749050757904798339829439642967564996561713927941961382751173801309914471424194719451336064944983792376788577624078340499639304673606179844452061010938686993016737257857710660180613904248365985499466077565308611924980566257331053214613324202697902531445633458905621914603860752809445906669225091559615806793780836553841190103875914303363197972526268943061494776227517231481706583327537758453546984643105162089626044769467605478667608415865679136332287271017039779950117728058394428879609597964894578823199920689910528949902769304746795375830634105172679995139671806634903749052424375804100957374915941342785097319126923394390585224629013341082160691427413257965568507585101859151297545791688266272606284398885009772837488922166867241168701471264476892590540703879479582373087607507108495847888425772284799418610849098509209808080856187670053564179360362666859484935090203684025791535313668629367382959115306851825580194643655094464914917535840745104784197119719260071615860394423763683001563284537088387681126233001477003331742057335682417700872915668155504920285478055313142139058053217292035360209413231773531350863562318414018800569230501214702745608736587286919227086835899879743893704263337656256840073359287401719979269736874836808269639503334044600446644447854059898498150402188779275917752114820133876589646973971991115533043859132108254533451352097060756005159952079726012322163061715326335280366577759328946771437252323398475420365671206426402603246339782825580407772665428349140835661413669677678524261021235070037374258621372437268919992900449106864268935680907379163191026385097208424988862839199803809225832292527477340549951620823590621188768545330896527812536532615486278208170584077959744445147800333928659875454173977357000028320314523659199652520319697277438250988759613537118390704054902506285533679340180873224435967068052403132788272327007640360480403854680069341925543425211506011428550288831014612439247472896551224779901133980735804350457671586437972799465764365493827540387530471937197861606652685900126864258382643119264150416316487410631302183308790970350476049109922343380793565737253614262948182340848722102440646991835030740628247635317304841088600393062151938181277733304382151754287631680074282535132235760824485331620612993640087553809173769267705475447342854967714255836567650695865025811197793200864141552851452533866046171923974733889364349438418293676451965829231829128178955151735158221862472774977059365459604436906822302714863649706794634088753074098108554335237976108962489239998163858224519298741149834182908166479578298963401532477888333409791944649445608769583525637519504197824019781634261714407190900119985788720651418834577464504301676290018575340020247388049300253084363901696613494314783125328202250938642845681744832075247454813981166899765642468791676065854824308794912606070841347257801043594020682332680904449875194371827064666112828203780688793939255239555020321679200121963022016983466220104727134184855406475415893992096207754761176293427910032720805510780347404899086732485751861473956769120117686243047606892979269350847769379863778648390834203680071279707511579714289392872926403884128191242216846531004404216209809838422704715635447503208738286977768949963837258908771206310934102226023570942974241222898767421483923653409987270480126147928541592542765795573284970067193953857635145506665622725084517501454749403087210852220994851947274247251619769311116446876162597672831309641959133141114622845050798112717079643467827813320579513683639697775881063536841199957878851443492018603143207688987178663867616251829922786965314185824351674566076513579316970406551946837852022382788901646654980034215653839565164412845941142796880959696835668826991794018238017913647862770263252833852456374565721494065053148461141942536391007589784869812658909239518659067833682588461155704443114662974913308839724673652498360050933570408384878482455770466361923332687172123683996095966375592474165991775366476849205307512023564729191424265410328337782925777289718562988575175435682619060305852251480438705426848525006089012763708169759322651949335002243144243459254575137524918931836414647650599744039699910244875003148725727149805006009313206705260928125779157494352091962683081112175659134593910304242119410830972164078488676502934812005440400427288578393242591449134592607097267393933389756399629013740646269574451292128885511587319904674939085296756760436472558192711544934565458772066492174740986634171035905377404588327844806807187176504298686376497954553644432776471251550673973157498472556312776030579617052947943064514828461100907548399856675403606352316453426595586499300075312843962781805492238349877228005143196599908495853357087775319904628529443158254014859320165753262998777200789395315908111628572345666122934270363596321025702203107591502273863798057907284758855857211063621877067342468741880594266935874116317667260938705191091776675153039512527200055219901042720007203629763596918184289741808172085699447084999059768564739548103082398631011122915122070748800620901638216882295196937040139810419962729170233548649135379618535326735035641191705273021289707158999104138000221249608000641264950777341989263383414545050930450056289842257588173445755406440985731503356897827972898977632266006292934107328129613189573653725812486976514197208120936763340449305449343188437895861146975853996700792284060862421281772004278639328992031164775409023111613221516525719928772278181165777569962602641543760142363586004069707182245146246033637257828385450334884645105798317980741800116061124015740431546047877516243221547079194187682943175839526760257279434778712470419487564647135841701217564914108389030395205975955370059114366052210267241440477697387653396756874092320005425616387448373851105685797320227083878567538865994680689512302787728768077546759247961041576931682310156685803974793825102406312978341027018272462763856091722807058384512989254456088251728374909536022835393556355911602832198218303738452276764867477141586296246514200150336087648056263212683786069014991541627363245070943748237148047813135340993234888510120079580475348961395578940148300854105579808577480237401297955293672409556373177034722007142019384835339641999649818100082569878089899934220538509299614354207581010456992191559826184091534398651349114786447932563176109309316542440116411146863612939789566395595001436472188405595183572937881934516738642650573115875422507214947662653462119120963054021582767524119737235329063263983872400539214792657526831963979892906054542551036448550426129279594240131230906857209595538720729500641667365245365556250085280203885576188027004786611909472098011655356165436232972848163975364777317929827324193806867278071201363230879535900585254893041259892211555395491986561862230581726989893366096418268328063725323633003498127886363645601396711084052780372336809417975311646502108835172577779320239884553557130555105885928841387869373576092722648001000758862073025171985058270063780254972522196815668824238859592165377721915675891846620792810896986809774347408177714159089927091790262395701016450430122621649748850440314569006573910295169456785188210681572114743156802182148479890142425260181819591372725761921928315130902949299432572909113300120271289641463537128769726163824966894981721116477517831161825884785267147596421237385157314291591952351611125817264509802164609547958557370584795970264898635948995714852552105791402341637869453490849224905969504660841352708537028980662693037787506544293743012433131597284119579080313750065087478542742758905677812034724365744300899642492994458449820350766015248801766824236807546183584931461285887633204431991464952265023816390835160336849945064222489416255890495312767112796270877888073802798883612128171518004447570603122943133930428558597013451939229153255829841687706414862391617436306158110775492516162180144910973836323565133539409318117369264689397230076243089794783805055929826382044952727691945581760715426224237070389558540563093357334857217895410916901046236088472438693054188752787474946747503762069291820720724555461805988079489521595020747635394179454131068870377176311958172334457046768745686338411501734216953158100025413106917119589992092782549583213253206963148492928560238387362027017766123903359026664163531708822153366230393526316286438762355666158472166618466641283003609055986048811682413022761011890427170690303446364222879140268154709406091100027984661428754772169312397225272221676568261097269872689235757745712236721369233095588517271246232163563969473887183472440207700698403890571101888523185605081181331417811356834998161513401748406957211419130517404909002467616515076207320622067962714149102985097153924359428362475749634832205197506173131367454956010679016198501902846060158255232901410850575699523899033488318131305385103437612847030052975115999885437531345385147503717289518184764443081160872179854826268887313576118120230320065222872782017417652344071425061931201472570675811583779618705545495362472054944619276833384352624425510989403140193784830559621390404003091707961958730981017343087608365529342726532359209279414571801453320383440759188824066652420207575384224723142940464626430379364696675301548711851810470099405289481836143992472760735709846264766262743536425984713182548565568724428899233888327303785283300597066443537159054718091020222213305146173007826230699205159230599880385895338151750261895126689083044740004681545041605785009220597328678959684788866422078464423534950946149983967053264432485004270489412940269703981872991871514167196505132644136996362338867555359794491295031020599693111462760432574210528571043990626975320936494424928947386315828434528918561253746660214407114958608407459371818025766076122090352532936423074835680579234642009109163505971641052813841590656199173552049434164400467867045918850615858137933690601477712367815324676726352383573672351944049115402529253323637007623728871161289737610603234852532476049399342654749599327235896080116417822894397946799823898515865705701449525751430891267443351465873253664057180219923498459505774738479583310319346202012887809764136288644309570446491172815333289221059827479998926707004924766808845416013812376655203654169811537894355083831187059451955056600073245836554107464253548290892158329120656691926071894490558634803933027820294507460317470691318373008740841334695466501106871477812341889977120248415059112478385792097038146973663533754567458476550996579569273834430829269526038475358085614598875766534407992179160687363935749813722138274523941481355883179606123048715194785751770051783405679947613746707525978401639538520435055147830482644940032302737616978153563917113237303976610464880736104470897243597869800768562648046498477552009201763730755078734728397420745778902867017968219327470882787757991551728978619164922314350107481375043852636829803727809543222586211567516322632105342409652686524143044775867775475640148246323415369851902423656261638569841914322909556795905188850793281596420211180468009513532119409132862747355092091764871989014354597449340739115062837031275960620267981600904476341059515457886278418777353557274032948516016612645277173574584570360693058177971715369985629430679493343762213804376968726348547355166597212241354470307084888952750758953873867096103516814260913271308509653467306899162380561938759474147925601357413949744177987841075779637762585222723715078685724137467726943227704224964858843860065716973389111557431404467433634440265068894980655074851640696576743044893864529785646221302378428303470883347773531944357928703658351322368618918946217412130269488390217092535143438595582369523940920665709290242875932382784044421357213682464457552364564539707755024133795132542994843606565360857282076706135493797977020193053524227487392051458393209420363027145217877175038611579985380140960094173605238461318568147640773857606700641973397671882135544612305104158153776219907344602182223274555370189104689183018641599986138942224021286850444239977967128215250764624008630688567221229383271247391554239481133661659422689352887551859131016001412098380219816954651204612078812174842684699487354936574087517572518459431283495261033419168339639787776289606494855581349126513345930758803486716916712320313580535172855779855134285252344265728391353462694038891312130550895620198027813606114047212444787557913835311554449297088628422014957277599658913334552062055496787941596302881469455249663539348761964861147514026769735603824714552534765561475890828606064527737410570658915322944919605155002180063241992635835281045651018979073365634680450873744610290078659571543298224523195081157395161060163197272680258376562953312176914535559904061661926326516303708109044045110629386191748347082311039165447065591153453968483958790319619634924979178741288786368882654144384896246908449511730095045036387883126862170591595754079134156560148431671872511679794215352550848849427855315951213298214165743462359406962354146561962536177944069370667142962724648661027221155909063254711738814656157866112725892887790060996784410390492961565350489039712346363144838572322665161956906312943392964128276075876830534039420762021492902713928327036327089290463707143475892689801842691524073166387484360971912480443082923980821083599714759139769295153114714903839184299949967528576847380456921845575163382737473196464597065671203113795324523667392981149331981555402382064993757224466772631644915679218697679762316997884514948463324710381297594528172052542026395341394321453084133536990034267473986853108356191480946605551288224902293837000646406014679834160592122163195546557937846534465542212911284793223710191970914963107680898121077705116153830549247240671609915701743357070777408916045278285842527458210142210959100443995792506828168696493821547029300261772681026795370490534520553683313978301773334455052153790748676960528166566482342407339722757118610935752423098082896575581038280098213079209088172836679737921065001027304373426890512593260650395054165796417281342997344687432631897967999957302718619629565596365057992259797885157821633911955862465751252237135677763685431099978179474243000456235310312286418739113293308156194225394364818647980512284450065460934471242573861372044326581465771299147361287186242203459417916011909605401630197798187116061510940568849751116767710259682048408111901495310745682504351733353134379939454458857446935724499975720340038819158166699609172356472113128557907989201561661169832115065791502646170877941003977908264272050786362228786485128118519775253917078969737106023023318133657593924310183174756906473871692243347187501729896057110870403902626378559965745245553275335420556175818732591454680074686430970159608959860162913804312723972734047127324024044105279460814574334134803864461383539812473893217097879543086804873192915771148524929428263053456907518666935005343112613228124424786844028503821333893711802560313203463036232661785139036460344210527595951975693660735688724887045509865286353067047786969756555573515938762336292879994344254734468834023232242963137048536320286579421370657851745802183869508216335823784264626946790758287362821070283289517932216586467225106847165271851117908348247608298142413340737984323094551022669643119315293012643632277755593637575189895276344137015563524736740010422476450382726475350893042013318184131818850847881191790753533322439121621019775848788117680436984870904591252055954271962477339113141548959815101966290276290612960535367341816938656143127130344540592736386457951825740000322875443070073891931725520649759132746597650514643734716707453599679141969334507493753615668180998467391270126099401327197819846244742365758408379193274530135424749068723775757959800186702554308158828689799106901856309602768267649504638031586723433766945719462011308793488033921009465854208388905972300203979269352081473702101131527850061917292026401859156336598001312447349600727471010687196312596055845329749574441725011739028360461009143199292512337417130705097257606006587724939590188429447354562485861379481207191054221510478691329702233016325961839081463246516071435410183457958681864293367157719941737506695217269219032371157306349597579353696716042159813261133205925676156630734994458589800722162726866988269599327899504960600595482842211950481966936109772474993959693223675307236860630569346905981518147309854263769899200600966964138372616064273526550520198439119951219218937609592200053737419261009263926909747591242953536064027430085084940903529762148496773599825286199490376484224172285788454211491403356570326218211924240402555413565488379517530241130735158828231713079017342558522221761503950960439158189797155601787897295832069377673575751986785278704808820862687489917135196044484906735987900454652003865349292265220330467002118646894150256074496179994900663338696983575972994847917367417935871486496538780140921634900374683282297327708071737295302029635213540161888747325447283970022205960508870363466589576131198691039194417464295784684099972366279143917307725615447885013398726607216114930013190873684113426558939056429424257713742504642521938286356901279231728115325146859365902586687784402933510693413601379625106549341581739554803623599990646893299977798454300795358415163539367673474267488629823495992436091630388139852096536100768691368029369569929193987800747139035751742791814310475861204246495783815007404911182717627449635402511287889864783958108023400436180872817606564781452852622979715498917212347674911566974019805478009178591619285081742078150957029491978112252940407278644376993430026203016065650325926060715035068592507833789295784162278946927610424294296027158185758536316639272240737596517091545698904021153772680255963173921149538881408510350014794965209848556409691005686225873710394482243897752960385848129516974286273511505358743145095760729325120480747771357024347083341509964815666155113191057151552984653921375656111538909541618249694406226802322161657330512686526308020086349635359409721089643382434842948638357518473943539570726190845811433115461974950988105296503815457965037266339733731567938555251762656429629747533076766254374210972145552872361626556700278814041840473455122520116921552270297333782065776969508556957784966346291474953354059718860511656845374915439388047752481410228646717555327211435541503956466821008805187996060322540796521537142235097776201401704594402398485520807859260101062642667044797430703922629743122572837509525093992572912213389389776637389079664175382869378175910536725489665662259115770193702114444847509115288533038146779430813152208848207208118084472539066260324205507765101756873199240416880863122510779023411951618345281694637813081471598179431867604367468854424762692310514450271463137945380721690145413480403983908273364956823737800807518486945326918805961315195626893706023512242644143276655074472309473932492523781968608875791234487746289669132609047231565248722322336169823216033553870528807893994262867584373177203297184252721041600536027524590872218830476376923179759914950154986533800277058300262776334959406996344113505299957343975830648824293462360432995182734433601245610585712050272621236219859269485466020298406138836550462128448717056563920718592425243832272387741546645851139047344980025454012602838530331475947623273723242575131524092459837127723603382370419138725534357490243965498688038853781307227325003928263717120130073643494215895916890914792874595246694920435207992163097726689026885525575396708740520285805954485823277995297974101693236942233124367982912391413651870386554884766120262049332638745375941102285450297921417113233044514308105816415712492554033602201216403164566961628947444070797688938695797516343570888976972295932393801287304662289323122980279866482871307627387610647097705624258880374399514758633954415701521991123700116522204384101521531120164890856321295427771384104173027909817204007787031420241690393900142488168370397470510721331164627843562280186373707430183648606269292714119636128158279966507696457850413821260617688534850061853835447086766463667666141582115666868577488930062816347051085297915652989344274218373589852395505365263784207436945303553578137194904388465938967181929158716436958195229302622057408048847955577920290462354542812772755937149911953790458159620396475386288522780678274358788145921470817123030640792243405450462042247110790256906105267966424372581843760407668146651545385642943397465262176804935552511964444524715198010808046839860154505400953848410353531741057305710948781010115223387714326397318844804934597844303129838252302871623664160039467754664958065418142251867783988876634985263284636950358667563442391792590443606102432129471039105274533384789912745528430218380417334816786843910916331682650962130655002519855270547166153620631486290133310879780638142124358486600452610111816356410656583398515079599555354979661774870986004277188832346522836327263046915180224403624724913912651448156650634279457132951209609517451494002419264803418309437283668092991258612393181551840590963807367020786268415109606204075248065133299414371159305779834870132069524331280704595578598137438298974969333170496486411982906312342416768593917634445785085560062493808073058565793188201575305841542671158522223168568834176198627895608139652926901969051895741727681834913218210537746843864136548930339954589974977210337085291678511386074826969760846257213923523312350103110773465573185266202380304305314141050996054810003444759015939212833003282712551082757933684064447907743432841522858298140202735814169752585131948555813436200557713861425104330393665826960728570266749418600067623734356356531801258862430904807990808242206505356570441995199763746254386968015019526123862707773101598622298052730097566334408838667651616047816371743242651488141991674012992720316134235370250545787547480103572120278918692666410043260892114264193517262467046774686393114032457435274306461723848261357441757539388811597885069588199659808174612980763931769785347099332385094836736876915810098249391160940072072031213284341093403086887049413948887196755018507175088963824428420592776597469594741613210631680061579680082702227551012492896768710906639286647856463288180794195413900083457222157058584331186001939930360505636321006039967893660119586938449198371287281000460409960014445313132766060745157965432435818179112487170540038781791790779426507416085981107763674193389921648071304612562706743170126577295223769106234044314202775171246221765000798478149105386577270367904148924807988323910527165163686058383564566350909362754518297820086801035459970064288541826828491486021765114408924966681832167513946996649495722304458172722416634711535993770115079294148316333057534958894108241251556184527042799144438629412274787226364883197143975388299751253405189512327302197925768301051449945855152398582754170184233886055089340195492180847322352626619526374702276895474974312277384169600863036059586378313695485949623647279297814642468066411358649500662584158900197796922703457850767132480485408166693178122104456895221640007151346516412928453264257030417122730632212391028414186613711509770948230042516800552814145155817131517671793015683949426054133848798201762641505539831035665134304877035108593602730613416094572461300903114324261562540222437176533457107114417465440323063282565812444683457826879802260050892354184880854358756197088818065924676006661706327022133590331859909888401732987468921773560644175516501075124545414587845151775881708217038219252495509407233857202980676352573190935485239382590870308060301387655151641992514125619538158591068625624254450629973720279058169597934921307043245858642255713287707425712117176480732953156738469203026550648829745015794202428115773642049264088479866552187707331313428025506118327734695058361768877145429773353289614369697015141113605970032898963248658489696402220064198638096869645525374334797310613485150255000332413720922164135849460094653115213400872507709073925967808524717192630321610823948843561932913095609953384845746788837590137584843475348325352720410151347269332059294859795768397450439916922017718996058835042880817475320648286297343196467387889479643622600779530415286986627812542084350046723294344308677450634266188753904474451113679056963334731510599707386787032896694827839174312724186862390910874957695887062468477090912106920012619701894862666107328353178888238850344801880386630678487300110008480652860763340842821282772633916473715713274440716971248635495719348971553396603512421824152836535281676345620032478800931936238834091783798767358237085102273942021827992416827154126664429313255841406904585397505545522798101909127584682663235972706337712266493139991231938719356352559645132093712771126700953943132527147297263939355414037739022543239491365928599476982098566856945027199958686770714780533535428082002919481924325776552719465216473174208975324565288215351287249060665937696150969587545632301818212794128102575387169790098249171408250414416390729268803973720226606285479451678537222544317983403368171007360584382965293563829960316272805468964050645606470456470241495172587979655101163076141489827196808992594940504871413456410832826276776472225838007340499457614191629106855691269047662010734116623676465178069030256742052637755772397203628498626759966276640698354843510600412736427634566967656339193077289197332124212514501604738297642938290453802129366791468134003459341699973578148727947329209204551543136574838062099648864320962886506521243355951040274756731843638089171984440629522373826416341115744359197050425216728188946658096715108317899025619355151779179796887276849422804378747300249744518378595367592003187155405633374460742040564459784687414611721855773180688626859773932386364865807681430719445586211288649285080560016873295610199423721020262396772591765990808211505000317368258979539944026862695145838075769234804464889151328830451093145104889744748866067168078589158869445876506048120184392510440012567285735877159290174795623518977584884675847195241685237252878687591761859215480023198975066590647795384260321318169814649154733728215310773299818108280513129885578827240917364880459204903043888541504344761578922704011331502691794835534352617416826342717239772277181688399800041416121913794300684380234246126243982937788737538725277594107442077100824220948463251252644986083051897371530907435915291938595648286631895542373631128635948372659824676031959200442985655665302584100281449526242738944997581375246459106274207160384699097191444938324833967223990746893692001000264081306235298729090380535167459670064320753134084153028745479019759868507080853612846103105061076664287038422466973043668491293729035499201480700207135960909339955668056902877932562799604000730833134711394974672430808387507980247216003619142382635896250871731896266590965769101883043774636206410107543522374635163728427553451921104702728656835284735380888025124128137501107187237167650640354593388107493094103053839643101774242225852961253870506257542953657569082970920742332661257149371247569053395028506866599570070395566006082113952480972361708926536442441577960946274554671242133004588848163880587311199421718836203909962437058472264804843186174546607272347923414343769422080494503127001571550660451187698288576403558920604543021001277304806031810152155408496705832350834657237952510075555316884449238965442880071739754129052664060256757499846123466970136424591353520099135047464543033071693764272429650092885666821592366188312033118655698074188212217505658551771975221958836814938572345848154206295198243284130726189756878813198021706201252218041696356791129841102999341585566846997106773715248709770950271356977366253460893059837231948002758036534155688478911765191727959236682536201868815963376661327405951437880026827369595850386947907375732289111961150104297633160045567222030813407183123313706245993850325202753405078437154739259141397491962514166667991230328750021751297860203715182808945162769402915505177691692526677672574834053734340347957539938885488411499090299393298086728984576519346492640640190946730063706296132434914131907098073660043436393421548898182563819868753565103094492259542795939439496438966663793568125372400156133127321669686288468215381433103249312460983983103830398890377784296336337936959778280012761973872916532414187171110581613688036510635223606754434613682714396787645660950178385498427042465968486962363925182201806042189118254632387408423015156353060376535969603280131612631237310716743976396707889227423086613942659003233612419246999337558993336093877241458704774517859344440390070137728468211493256828839546234659564190861816890620103696164817474953745958578494242684565101805616839203385266632517871245677605003823981122721382305815843828986120434064429137526020927459591314412550025245269615510880823801926834229273617080631269979645004239104074061535589984319983307174347050927963154131032059019996904888904816076502113825071854929640917814606585937811302561056754056533847607442607355333681296865465120525134397881607203311440318792831251761406844750868735527695576350604252540393856824831376274123063298867656110140407124429141140934330603065945206864765447321363321930956977100756727629348502319491748741386811040839379891171921975552827943483705989430251509867851535292688993917317318906150685060218608596272636358705367332287280530814835593732733450243810396708587025852511139578157201084515469899078978596461757636888258554387122807943952437928916444285016974815047371475035636217802444920670403210335262613009175492426388893638825179206880505591289532279116725713042132572053111000417160460891662986122049103840182028280687218199602514111904134428515978062961959801038507472818888728974414596369890910106461585514196130714358579308458596702374713124003395759103030809538873980307587042677963854061284012772706590583017629586294490493515662516473831725038143747456539651741517320071858712254429486265981828842397353744755522535692166672291482761038160853933076182703525577553689074112380649584451079669341098684041922417115320794241012622105597428738683495953815519878469257872114990232337845735188927195508442764154098138139361401259326603746059877504252152230081561591448067533404109893182069450339247509861046386651219668618680895666717377316708222493209359490324549732941719066904012710587090762662042518558902949510620661160258074371884945617919841350835953543894781338761488570973752113095667288346779492627510977550403843538767174255033268818635609114276273667876460383373891352412182010662678128633192953161278744025351236287613806573856844320443104540592583013297820261569488842649825525881078490049352018368659482248135439394685300086261481579191795047739640936697917528475265575852837604970118534512857194136751841069977962611929406156587720356750464847776308233314588159768421685202578369407616785310024675963949590791842666424938003135483462326549869458472498081487978064353448479953750298549655085101789793466169192067128438801737401317432804489877019384548572113656650327782185677868396851703076059653598734813410089464759017556853240626143526889486675211521273979846803808199239856125343671579843759397059632422962882308599376493667318026679394419801572085868153104596995589599743700087065928640270464248365619530303146351340927863360550445440892887521229925679327499481907672809380254207547283932205244007035077336322519734938402029391236240302302325583902479909933280524374190914062065698436199237624705480895098567878884949132355439942114298846501705537489846314085821187115579322311190528110162095704001612044827773206456768823878898294991020799472983806531916342846879695320010647857237771845982600253014989864396343015433707831922237568194256021578570046714280193478574432162954160452816734810305143201421195530775903603664861834285866000420542595146081640096130936660999481350398970960204385688718631589801491597485010773050687134243815664387001546542483338504517978498852148221095407916834896550856637750556306287035898219985418556815578447313657060184550544612787572518924095705646274285591720116035636842868730556427034672056715674908914339579206664945876466345483217125010679897219485246989268679812456663387925056151369254958532300318580908776656756282840836508220052628316291442309142444761874335449943615567983856923105701309260045079138233656408629731702086172774906146951520200568964915527381562778240420250211583062829347853072410642747237468640539211322932421896770530946969766954630658220644979364750975675284580179739600375284392169559538413702833919437162429524314688153401688903176653883181061937197514144892095395243982082445795349349192067736179080178563427509696197541552443734426955244993481529161922310554960673882058059855046232503182423622713050185820795985135469009975434714477246972816997828166422518398966967994254959933217762836079063673302724905818004661238032336226843613632931926261636489145154756374645910239373136256008893913949702978253386290522963218431880268724740452516543397132153608747764075878706024633265693369928541854433986707103920932981117669422058711558494708947778259642038107048258464843150875047685907512707064345957217322730462371884248404423477745376965034179311017996199731467675114896618373294593551546509152817957153537455470482454596187643913388550218695490759564005639693233989002289489768133246053856322703066063219949488026729977202130228493644137793826012841906966872802108566729802519477279912327889018338570446724935425485619635878840520407620532074279941207457226946252414508368274557696794662001737137521246029148119861302479281294715212047647858572913085523696750071834581332643822818451389226831028505327340408240107201080785987009117363260849732057424799423093544659087645981424174044841896023509571091284389572455317174306142680503993708444996650478094125004372308846599035272698801361200106261376498022207514592482419626709418514245113003796317647312868818219184620445447023965791729919938300311047762503508192520203961204869388535000967677187185685839886712338912040725020625780960324479511221728753660773257945738573388488019946953052062212833006722701348810255160263016188697151742102880757150923089340750711640169690805329257520935865010461822728259061919683230491268688107412893025339961148364864247462345589193913047320345653766667209399402238329501307270145530124783616654896659495207745496805598228879326404729396352804999475447059880022341396405578239788625620151554155113123129943437951298067920880005029862851227174379333218021707919273743849758446412168440589213343489843962577268351098016081865951456008221281416854101657151304694277324006405985193844391717686017445330777327421059489474030532913456423363052335426896712901695520680602532404390452871148121166401618847840878630438559234382017810347008346579007097141669777778399019938516200723554209231106695002735974376978261248236833217567792073406777077536775669457540790673191524399047522673489846315353239314712412219873227970029728566428024970577132192334854170213464810987156405031757504205545968344377686026040055044764450254548936868808305144379993772136337869345632670407200705474023103807527298048334047597122899228082991875409873417744141016860505852234637810931162974889006182371802818868255786094355131901979889222100470831613592558586454296350033838997215243318654571569837108182861742315872110494949025141563888664420985685035422755033104389395513903601724717366413086944036820954255698561146841988299019718016859131675590585273364189326492957759166248195727864272466403966599335405144325232631722410483622898151733376157149282551040190660583186065778457782707634753057382337306445131631822247527937448282199942173439671724829090068695260152518556691998869027783340178726721211515604899484763857725897221816161901914371296866377560765359243319477851939728199167469261793869898072663811418313105880840417553108641118685026758919765537068480585902519246589039410755480220840687525108734075887140013459550208495531789170754126590790369790690502934734225481411175323891689220877667627447775077241838062741193541639694944394805375726129757389208503337502815432439937699115379746794335839395777892209222285991391425490207978475016857136852901903486818937474804871690693232812568313486073468581619250023397743734738076311163676937417814410847938323787165472432295071040248931824090061157852890473075893458728976514213037713302571216884056486105967002621835147952050249177827721338567840271781417684508895242731196229103115956589491810999200857169038091067110978702846872158349018682992220787383254979057818859387866551934735392556510203730217675593993902969932920297801889297235130886892394305647795452157097603209110471752774610555975793003814072706087436185264262198276400074819069792459562023142585864230875361799138635204761057112968727142947689343215329657895775167804430221411972672516373670500763787609055356058975635082708480798454932767280765759330637908597577445102279308591460777120826166824792170265148075913766813132752797803773241454068898787855133502337399395645856044325855103765682761630053726345743810842982653329749396490679593036017703631928816615861019589635308174344234571084906015011270259731100190871608459357460707831232127659597275694816244379950494048546904930250560744747441340859170684662604486441345035582080570800177644438618487297158488936505412767028633480153392216275291521043401123296646629600507701488443755953639267046312822160225808625513436222860362614625311876162101038320931117207896393763967095416055714510958635703816922296238215823169295172545018116481960170393182738381131784476269617556127074623617863755307279456672819614535420142138765821342518646808286459594745746445987339371368672868946144094664315927864126965876653342461412028331365198859379525913371719323261235732725474975681027100926288279457659597289603376222008655911812689318836196885882869881301766107507855344209127478610560920518777850918282564470372297460296881709973749863220895626545656424531068731647392676452673402012229649373016513677408225417712460572465900636216859113923159963088475542211836769911768249381383714857090025660720288357107698544612921820642792115847890684984585427276844223360100230078650306514352986482481940112280327493428085190161130866272288148879367417581772360826388655534390954606740685779000370179568668856212630339587027508398756222442803002164477240370384135334966617369652188438476870980680821659341093793280842085628077739211463256118986652556105451625489995254762044747475562699251861508411886001298322244690680522220385903812124708444779881115489300064586707782716174828315540115372493838896689218826992317121162466624362953755198642899072791821302118003478311229036902956851067053557718284348429834451545856176497318165672041950691536512045273351891466516826752321362576438129606809581762062674137390079218333160898007991279981164405909701576647515476825449518128139373989626860766603281476524152410066987507957147676732593353128791289483040202016929386924051682775116698092784662391763456598005806939649290737006448578529087780597472453532992169749393277456550837471336421297506940100904357474277020736513192493935171810547518735139120184775147087788880385362906318717090506874304634274254955085944509380400375631657914568852549988800017712645250213787119355991775988205829501419636943035944075075973172970572278197836111325876458528711120074566292995017900639799063889538487776006377635100516067617650386235175161820087514564943072031158648849686803504782623477466199704962950704838835169497181938950771641564967505763529555695742411988424283272208758546764283044230237190759430692066086897865699622651624099842680142946483286808338430093654288904694917742425956412705171540772688442057125576879743920230184895502451613116057223736084259863284755126490631373502845676710426923817471859193030727681214029396703521078169176218609872464910115123674703810017373455890883275033624511478227603589628283426229103327356194604286525635123779723033232685433066771027450463664868856655141665119664416624406914211128688086284914311504989695864441807375978279375649501204176608250271269791555879314496499576212989273516190501684067719159627662037795364170441707913756393023784818582595074397013924676457378008991671703843000945588099994735557023046975818866622416824784123717937428686972487712476182914417820004737535120219298384824847293453544085574837696599533962313889590312472436405115189647752177080274454135855888409073062229023543194138343619543398136627485554316620175722078956301769570680149183236262597922840307505999225072182410331815071800092496822688036562566744587443931208305059035102656327057176435097436408921089088643831576495692306282198822871267311875458609003764288334706246033175619165012599558670790776906132635396892654436012228378960836870619264539454734721858576563100396834191879416629271245538971704097293645961090998577274331010815317678277307082766501282693599709140532348748431199236408314496653784264846356765974792688973191917818492205036776042396470845419378387085122891281595625286920890228050565940995427391528742149191081169592660404930812854326273352245644711256031757409629461606783028392402116507025544204703147222004296294653686949198431567041131070263456266560958731198176896857956445256066463579047685781215121782908325954924503584307137775554669377091267195599712853549388009855701671593231942084923276930696996818196958794495140447660491313805968058368982448656273754201848259910989627515952865926409051431097328787190205514850082998473990007092569960016353911959391414591539560410979896538476980631940650734233537453539104247675953174231930589316939292737542431436710455585976567236369019929857951173269108433984406003860145190652468885291735256764523177222175693065092436858669195548989875512272156806744546067421139644167607933270445181464986973779687601119910463619024800513178750041304707873740474001350642431870297550136568730883178041215330617787943399852874513266757295559434219298785852149709243273268515736961889010520372276333187707052403708098999206281873462392817630309194028945647832641386917497176491793612785307297672575078621765394021942656667472727364232121294074772844305503565054921142208648512866808029315680795630898645210524521836549404247977810143593604479671973689320047790624706562214947799496980227170029183884927358569750466026813603053418291530835906275485309842243490980809912199722555267099750250574594113116897751712821637622890890196919736624139423663855294937580027687798835025960044288842519163740609791619311850491640595307641904770808226571185580977067104916627298101639161112089369825995508489012511080937615278431488361693441788349437876654468546802671229345640075512616266932756096059357278838195987630405979746201949816957215087593236628377773375964086633998979231529123783845559478642913838158106615178857293562696705633982421186136214124980067473225433463543353636827274078247930860701355839784863706557276060002182662537129688131736473255662131622254590209370699498091635180252203657363138291207240624270309560168641633166095537270466884387209551788012541823260333908363498892111379303910389421775639616571299470806030578915699469605473452140115417650035480838764438794717017014434623404332452833189977349245080775671145039931657578182781908939763383753639183973371828024251553345596288228554233230216555610963984791547319338141119521862565740310986593214973446128984206109943663694816373117751383954335728398259468886737875081550331905130499086412608951362122135321784112104126749144936544654295887482484610534747143802206260435439655415869507325881794968063472015348864405955806253757214449551894609132441788315361369200298311045316403121386756016559342846981297876699627000390672482791944573946766356639581767473003174595424935332159708411611043104826085483676310646165406418657546317634341577129848540063655045339924284500717578724513632370516557568433963392295491022151750841374936744383797107819026865251810493024490317913950323476597159019630501771241518208492116030549801944981924011853278502603080864125497409409504341907856810698203338093666823124652372346053230743271785700705371162322336424131795385095699974845456940881741148955783401354663597196742154206905722438654340135474793332809734975750361780581338215887290551251432920127144762566994059870327822027849788681650172830579854569755275524532531409931122626272082784945661691625398039016243155365830418527093379971118009663686180280476116210807925769827445837408597867995057778454865381254992328114443114328467951496176044553132008212971992682199309513926180377692579102884942792457442410131040577669508179887017733977938256653583344758354626896490972815196486881540878677944522050543770687191645160757909589016478765149390281710643789475806278323134457689391189548007077753465804281334408528931732513815887465671509332094491739372211768771392956908387417520705684040753818032814038306245740101152656475600922505102255959525569519169197874080040637450397620191350825982892097069009893945238653702683276399549476291750092122800624755789172220110045230387196879927169615912003092595446418363087146368256717132709256168679574628702158723764157715228489607849598102979139576193746041819990583124592232787351052966965518943077600163580284828612439741031983049125600224791441418037572671068645979630710658163243380527787889204050207006453590627119360856120432024608827916642717132546198539746665649062241451094509777878575194493062784906120427184642099055794428069009010128303033988448004562430491215477550961745208471461581560655685349407624698018419527238300152815687584395869355306511131820288746391505553688405855406406436951691846400341371849562559194630980757311794490967298557096062415998286975318298131701463625592025668448627592362429701031282532535438686852734443816789485411369551554843561491879150207991637317151034831932146496897846627797171296351794395504147971527161579583474770324172852427699711056297458129913823886895929634275942023041732471153513815184220506888315664871691739755055087846082998070546295280125484052551947241224580154650254165677295003708085971702699254901279346636791335466404443447074904017153471671524989523884072286683392906732773861799458885519355936401254704996851052117020298481702626050651522679171089181849365885010708441284294777380326097965953208985310332096238482096078016084618655887408585374584991486731394110877223358769788461031799831074098954530391778424818470318531222431720683830602439400031849766520154155755160281195048860524304727694955879621817032884804071199028848222750768881082461682769048998818664345381336470435948048156690006338410635501150953548133902165473069871972616611749394343605117496304508746448406584075109815663692169497519227833049090669470302668835457160666634298157843283237128655082188416869280156717245344071816862002551892324490989153852665885470486584701962933184557909561576573565457221988441529874663878736076289039627427704884701046202580561757319125352950171195320544899338540162114428247339143328391771959014041255286146163423844061933627961071135254470211918115313570036023566971807798403337455554995248921684681081514208381586498764841001572689311725405075134165946534362716649556846695465975969321659956890718932521205916713998266136687872005461209236242834453852553564450834426173277461573225409035726719002437692224858177098893963483398446130879328884843856654797092850509592490032669231683861173177884062429146711540866372510149075510375003204694063063127811330655792783747672341548593343251009986366471483560037035929068359115395887370398961463863172879633216170160283563099516928665456380668940072483778762628889167461144572949947454825303204300227090181888508963521711357567117590930492362112493622147208971653504110100082233210748710406453785859503064094312076108272064362039979635547628117894459322900132690674726981153327994796134802822160874955281235338478705274743348847938094052886214346609349403654953464916671415998678239015493347765780964633350178997166113455413800147826256755213572817116657619934066387544932356962952227930098105417533372448071803793443525240873458156377209891977551423252817530936530689904637559201108016177637794369458999644877368028693153404006089443503091952505304384371034628646857892620454569672748972595541043534027333997307915384748744391160041000271341067007153161827638621303982971540982591421499526449733173974746564094029971259912360524493747434831969748822346869886143463127296470113764165009320498027529147572178581856488820348036460074368872404410940231656485349671658989989504061315680895375775542797798753661310534697837354048822515933459092610234632230334019144016633785336399578948024389861012930444197580730543450454528392468180703255869485489247443553345303537537755536138708477818012569199118464265077709522947896810106182356412224386802846661861967365062721660328897769605825483705259049101758602962957459838916751349083810569652174081513761774014456936736226403711594807138792969637456885013311921403101364196645311753910555439778587716760110925951855365605551869052863942124187094905515749614623802595862715868601258314210346845205531172578473110884335854181640561962387671871097497117450392968004010271552837774419140187086077109263509690160273881294362343731807060806703349663140409966278997109990466768393209074889073604617251483657792155143392582614681064927534352334244440950006878505893227306074802273163503891092590938048638268114711748877369865304443885257132801369017713722125016273857407851745144289267800400355270565438555115993147786041561361381042050630647542717785393231167176035841220608971819942541751653915198014114372336344001150164817716140467238571938581226358467821076663749956338847947959890662223627475045640693377085577679509813020469177979098751402304448058069977793062513769495416410027151255780283760554922979576477312747447959098218172293615536963440260849826166940657620528739940644531630431980803423385148676838559232199494522494941272892047490780671061329469709323383762639054534678501949591284924770530354401877274965886232165037884092681294160347720272804782447635832212343018769278458614507889863801849871320698926943640702846381270685023917611824871758511426557828285312488161594528837300306813031779799457785674528213458098988383991608271047863406004477231445105709411276909937154000224304071505953351945022407637272602334075338343444959640387227289056115908106829100819151528074094848824901784566745986210550830472137840768731608033785134761951546673188147731932911183801704592311884526802739083119432222937078973046900761513041433149358141502243070424752776085011967116906854843780609202886523738504097713049713888264574310898978134004032693778014023835892512806413376839766538859069624372759793607788415741497179888125519798846638400009300959391359910182064580508005234232791473222984038585708273753456025569358236449239258484097248438414146108922624964689643702219150834714694826188796144036148883379690973381957312092564864306225398498926597855251987201214825720492311757197856433481200264965249066633513294626942063534386796820497278062870196399695688401602562127339466594490209689765173800617286778067648954335791747538001296859894942810703709650247406891181360938370563333561959199322730569146705420946060976847705479670946377532293936908186229693643675424119826099871775065811297674169632695359126562755374709414793525501146117662245246373404264420627512763038565724112321285643766486893649736116209770833350264938416991875397973745927649017614740961313086969531021641805812915462636373786074069889112432023824356275731792762976638637053000076052337099474447386354080256185912056027855339143474567985742578284708993391570914019796730778362571863945249193223602140862620276168392498034867758161090448730758532649174069245950255195026232877597314980586405932240903533350936143868802770931689329617372587399136325566057035784258358283891613994716313076502740179028253776517550540329585538407890720402390913028480543735569907027011238836007863671650865615718325406121106755979107904448169942531698650392136321023277042833618029330012774736225493490583280072459194074649423894598117391211073077189451224943921952703976063094622573059926032024132908054870809215680987887887512483115865751220252251429878573711486793707540433067211800680623490106697489497635172117724037384659216975206374082095932678192609389966893555574517106281375541065418618247412464091008175423377179602550076227703958936952037547538158724751670873249634823592649587378893553142086033894505041125573714875951122343426451551305210634154533290551646792564839429811195973562451909939510603315782754114455055909135811827668037053898545684456512091355139065768201366559619383254917346250407028787917794782533589071640672145143570262172604649881263939183488720749970664855823249247650166755818456552205821604503627974894335918007342189770511088917589545915821408052253188425246370244465709605541211660177303624259748378429605141888055844105653240250571477076719198239369377223323880383498465449472706447089048777091919307322445544293734802022704360482767664730636947347395786485364471702724051063915178198038077872702972933529572282115171373311126508687458060379802816910646869970120894923527387288206907476631502188553323603989469367200261447691968877770972099804249771541676543688464007214786041021234545713392128605522864895378395003600278503217550732250342058184380335627066738077011458866025618091437483045169839609815393328696290354765389189194127785586202856493744814750587133553253826524503447979181404670433879883299494465192393004083571606962875322942278154774584080849708864464756431632788351041575157997652903190817791175843193914610274818350426119231936204673650505724832967139817578601849207999623359470077684818336050100877046871170639448143706684269313423008480925642718141222407174327889007361250351888159565566106554833834165014976472606432370897735728715356668470996365984189144604630575039576964788712607145431364323670396094947291854850447857207764797296676921712100869419439880595405532678521014436272669101401534306972722522223891493222279103051734233978285185837617199529087154669409985512950402062371161175456496233350413518801896564168944709823465326184795057067315323336327555083222359081869009864116688733778475359451534126226689766095831977248965792264514854660575342941981818251062069143163563142112545254467065974521125339306976950142465630918001226347395333103514113965860698403106572513614863570318793745217124537284213738816297759055176814237195029957668976124575465432542890692421017324055414903446912020952593327451025117568901760230837805528490145155124780805172456889590969085040855271589859359356644008761416981717609599790173964656395893460600458075183252715360295364582109935626193526068351302586013287186120142012196279089783860108045709459170521839997875873819513961376898035268459288158301765295290327148022707331321522774135400136903597790688474599049608729258012016881714500368685888848425710028981317048306439191215786519078214411642083029132861048201922556397104826054831944642537347648106797056284704678230801344743635690787446692564149174017732256399400145890104740645642990278395179615438032962158690160629850586925114517512148500354079628825177062540452646114390507608008860232793042151511318108006592902325862078139067541041690133988991096008709516223011080169486563330065810566317365567086318079720801718178725148951373885504995698569039741991604852965271187777056915631600438544395644208598861058256901633293093318691366468781622647541083533551233627729325894720493211958619507733217447453159064022935474047810055444728387009387881378956467259937618312892283627314916856198805964652358400605109643382326481491902556156936373683906358223437171614229758166030464529716368180562800613774144020759205427761217586624538370900242174785035700709176091710190180882830506521545864866275767868017243576725064053118118603093364635123046447950235988302041437752655742213208645958611340353783700800073408797378940130838767795574616666138304403731519237897159971977577845854769964817899858136365285116898611998478573871164606367474570034792443395864906927679499102550606005154437669105281820131902998815642200197655513219094829406595211214268607753015051649372427295495027588218976966883400334516989617307382867402621232075277438234388351489697804453515240968049678280821737198160826007936960170719276080007013632595043589921123353407428560803970308415547222721760280701643719586780377601993737815029948509399226284021193455158651819239719518730288293695537098316211431210492470933198385260941753139495114181666467525163244848508704144854114880486309660550416751767178014815703553754458351216663927637603977893936703733381943412425494479912959419282375098300823026380178239463606122589502368631993636873223903040702314826129750695239858359749764266034222571020045172734864853384273723288776071879596709213760815104238943031302395759817777073644515244771969630556570310208081652152204816880713681066500565949113690399430524459375368652466258072662517971651646591755445073464888575381486614462199149995180179081839719411055118404515315424859836574148125397601659194096937311291847185376120480009900913156506792476426653657552919204198468246679716490963624310971675427831659658933506549766305881214231050354482922202346416689319873680875369017795948369913213837125167150909241787372320240859050877388525123317966741787111857078772546963190849334853601880498457064052337055241695637575113068836444362962555919798551210785896823197550685432914767637784784822363093871529678057529325554958276558905390956763278204277031777202014875191949612177525218186917820135254286224884262894484225027803989879851050470492262261057209561879329666742338026388522185382173797045494248315014836497245645252061993784602181879429586386395984118264171698369119027196765743161751455076064793621510199575121359777984801835151227828734370509744201205373800623464685095212455015545196774601739903876748790429559342206641135928762318466672771120403723989172373803037465493849307208014836167134067916150734158658636500784518942132876860664589679126479308142398172782144194156449455148465631704661660638319320680762790879915181450069181058293128517581056817993196052210224977256385712304969966342258815342406024028110017176836959561815767558935254943215297285204534743322635462334371450464609629515230036504412744222675084503726568132951227549088126362348363208268114853290607975031890873843602495039611353785845838948853855417076013775447073952911118161955403831459799282752541471689723938784331102507385630222380826240180139267414027059401135879746124245261380111031599202584164696342825955854887304501111413158421420763365770797976499192973765016692168422513052305923865827010762729321062914624416068999304104938670671955740302659017628148412387768330734391180940431121389765908340211413009251705140722604619540151401092647678193934295093327197488392408091625738369497565252205512182352180802229684249037689144681798674365292358313482796692140736535144153524339066660996274951227750642244432574121379139190082303417233253579827058151111085994474222789224644707074846992481244487864557064984160812675823634626219172635103895781238580408795193995669210903320073368557383320098022807523913420236758385367650968757078721182334929758020338462795285309712201731579601653718152891457433700463642136443551440257633242789145780278745971371248532760544240066819855840099070091302713031672455883556467268923695636217861911782043687667981542598808450285403011013776381602677049136035751544019330440332242994252851426955372094457727467395783270211116799024224671396662564911779534752239520455825661757874523454257978440809920774763471921786423945341688174598681384059619538499393782121646513417660589853506504479785510601335874148045491411746981760794690082565170820852175883872588770706398213122290283833327803146698792762004659813120014169295898772204164643040611708018890082576658692191058669604497177383644495383096388155758121595703222665348331084486328337905194562423054515714067011119183398804274643744662594627829752749712330816042528180583585464030950566764189981233398298279226824624954381985291526091100747673950902629384560107153124166214048540722413992498808341800871295610573009494430852908678092370268881548205631926146344739954550536415113289764562803854509611533875826306155550922178005062844255146037240621926961870457900023306595781394013763710541922805172455554523322568173872954975458630356553646027780905773250924117636185634184399011933433801419652778008210782410227156137554452272207453010660538783441886115523861741995220289236968631151472553157209721898713757595422765711344020648211824207744306092860004165237329549740242220299098913958107334601678735816550779080188187057160691967907645811276219233889650969522870840956817736169004556839056603503441091546001029681415470309310015569247427174326594954861786517118577010152768042564406119162858435945844431004024579512436296208714844905316295855466512842406517930423739910699851638323853022589229181984167838717465364834709334158564851855310816718314591634030788275345020003370369206322203025065128389916586316865243179969984131336757680463085293788409610262914954208200719895427383209180672906558851031093145258648383652935485644031328811277702907516325477466696608883366715393297780216792636906120563598881682100904394889565062334003744712200626529950580467774860001689605972371282127063360421140664254876563711530840118571466946634355819654793971064405155578316946919600290670725377872461213106525484446740068399522173755147520736251094946673591717875021599355535110965800927293165854938762682388117055912699857980765847671423884008850197995448446747388724066452609317385671275357571884344097934400772644436347777326949926380890429221350466027414254036783899687315192771507635886327893142048172765628582310801390567161924453793573054902538406407035663397230666541578153246505098322936626128425426846848065543400264391072863728582674193129172950373538741349184108103265838900459013387204338892458943968754762872858923668357032246397361438806229556051768199287064089290957064606039565332373707292870470028904841102744205528518532659404789178634173563108588777328939300464981250467382963318151756640263062033970421983125754508351474280422106111788131893924670845144165107621818785932793149073246291699551363714704860026098371368309451609133095898153451358265790886196263310924984516605973061673127646331147045260241214681648467282836134728745354597982381226969389317962275396797340511211524603276700012286754604513386968581478616643531839807742844607845398491358423842012697988190157183004115502803598243749293472737165104647840535401907616226759250246712668469244645343633443798858345277140968381966121667578659122670030964673550807901799854583481737815892366514200901152419977442232622952540103789043976347065616799138077695720523875008703740340840157444412793157484513061557668575051877084648939807328871349433197333487586471355731008122649092038076932318129657547175233074631334120701051821399826447469025336548876551906846975061897575425051231267962103689179909431854887354798358803047172755380521758858335122632726218997193389246550335806348664183497915638829411065559081859253649330430212448310299637790187859892881412260111709553922664611202540778140354179661578962456412585712668937052123472221990333246217076985246880201006989944842178172133798994236549072611573772919413960190979459928941809473872945628205297633968145348718773443831377099901724310397505652146641473296951928804752046528762612391963047811359666970151713727444961740708035948241705868348805254260076013945711939450835957748834371193036700649473954743993297523857773161990013801518478930597487331938326435358369519617537273100553829534014696050786788663582290794388374480538928371291566525896845685887007539222592918635260287312712632990463630645426465052523657917960600842638070654330448794667088935820180307895798880293123305057052804153632488625535758369408734242213626625075375981901660889154052458682387001745294093420045069333905420191974574148893479895116798412422633857080610839615901765084609117112077459056430787172287559013343688385216177338839524730712595230166913734181155904704048974181590896749359426285972011990902646808523889746017634556099876976068515804114365389884247735103193521582740258416029271941547896833827526649675816891724746971602716710796610734282980103513121473029522772139170085944909483500601935528467490574522057374743686438044234253267732793046980051800930192781295314499597434444954805929316996691752153676584600192614265855422231395010274225747312573100592387740418928372235566465717042269654745370104621956837542976296383201361687077115976617604344210682049220152008866659644652644368357403328267634536801638880507512642924768725068378876533160694796397676698884887070274255884335691628583886748080695550402900138037225153860509139125642907341002386085253632074913222683984782243168762911990292349839070823574433213650323312898722223540780842706241116900875672413390500358564073079183640655651402641114064907614710790809529921779052297455917265226003158010324558996551983357186792353384209057786279576419312866784517851506132761220456263850256130642850032312928382597393455343285054055135715018017043211698888745028390650127317495177115582568377673862125692509637528309120245111942199698862218920489329788460435264601865099169312326567788416546405594594906144753761260457345779073142021824281957915193851836780323089235857597513344750182886452676312246730621599545897516760661341245623793394031232535700160196662008051808959624794608739320694727660766925805794515052271187509418990649249017745661299627703211504344556660972680805970914718477846508722873171967096212965691207081558289248003461050007667550126849880126041002653680335211758039533034596627401141626584065328898699714848970676898340466028033145784857136957835688129703609374126241522251855286728760869610446185076751478043337019920582103173441536065179920259371619164127294102630810457857373476298593595515461510337984727879856560024128263967087593122926265314012518289814686724952326636051694101971220808800488050456307587058018685241612103255101884043163860992048616925170613515552880785921378618997195489679555846772989507713043763249552478410610511820898090279949585437674682221187976005520340343335203622018160574001379416502271099899113137762516644124332597616847065430451863353468686575047177645372131067949858014492539556264275098397437230164033954811147079151764644896409503457874492276178023785118585817906125404034266146634023209545503745649261867990254239609639888116957441227064343128483629008292833725385271127904645041942159186608358974782375119405974184885492626807446282124029888401018987673181554697732510067692440247099064099692682737599638225115045090501746869556301796542952732114674524070987620637532042228238671455327061866883623923267963078714495373334397041926269322103187786278726293505838134939500243507365146542940168963753267411328496528698458305802597498130468783193756697062106926454290166395017128200222891228037207320927585399740400623662592015177605627366875239924686866296065051052051683655019160729957952118808337439160184896612533203130168005595575795619673242694838521711408735876843545644225785576704672104412396495473207115100895500472222008244394783541866632513647965455004895025418034429648521589301251946509316692416568170906307517808222343256461830430156601387065720824000993390399703698316653208702459314853211105602643216121524836516679749302635128124025062061992937996493543109322785562788469113320825867806963507912508756132001837606255927723075804882304794930875086501993432883806396888685018434664875906425548675978676855156289975978175068057685359011996849258316212115054827133441189597349239843807628775488095184351744612481110122181853498680687654871612913760134478102727825439218416752861540775421935168154061710352884629407617264632864164703393854325928889000038687400394914266936546016882139999012121532976234075620982810172163475348684067768724730827389906363850796391213912057152846838561625755197441879868852002223454410735000183277751367414991371999424732086115575072346925726607773464429410225343280067218811301455636118953339968380276628545147273462324439321522227066369138539701725242801541466056554064111889412587709230357230596750282768361750416589290533864030265556184264002128959824177711795145820932593914512854392195178254490474338182172518716375674255186882301673761815770357200054841538987798732325789140271425854804201166753677881596073662131549350919850782426522523516740517022021417770874071034693416086065582157410847176946060404816824996462251120811320546698359920723460901822319152564311083499731334465000833372682003937600951550604387137182261864561169915975566831386154826817825977978053699862860384024155380984897896346454113185195010826680583953718429092440985687080176989962342511530611651813418082111291012452279655418696799042463673374665720637753402866013360396685357874720162793830900497130003062163782060271633172960327887168273551491085970721909004283265156061533343695472675906423078494368057015361888632879359822782347019589923151179147225772694722724660046345019646575345939931636384636204239540288808858313660693043626805351650703996495052842488492986140017799356621393371632349217279141921301560728954728965840965819726474188180986874820551825737042593515743650040180973597367204364989490513004526148077264105979646550811341172010580179649351171004344640166205039884028384664228961208687845641042815988554765319446605477856823038151951601288910907886060205456659196294919162957627162625268474988174521658778573066603914904080506242164103860239426452146652957474001885973765819379790877527771552673389498328821051469838004271085134807249934019840722032038718639959596313385159878918582772761545961620364441057833071123510880573090750441658370628597248361765938365621951394037528918325587538491203236363464799555699451140697967648323691414432805122169091604235396798343231674104529114673398089928764503302917421004080150561001729384262228222222700914332546802189761380661594180962197259257467957106871916150168499431729200312770310332662025335916592593246573881561032652437335400536257948446681147732758714470028827643173022303831813679859577807977943894279109306105708397678095424943204683331128210902897008456927861884680090984092801608393183938265092667101602240411231637774327500683495154893850771059696662907344315467010647503408103764377279851679112379632543767532672191286336427385154559071779671081000002804736069587900504240777227391356397856731484964348648979298945729147282381915223394266889769232517400435727365231714437117306734839236509856603153719683199638671832578383094993425474163938232980961297639880343117745413555412276058238749464292318642616410861710576247553485424449531004971382645588307566269626268491853654167360350215949257974416345071711990863634793411237896113360506300873420654957849263374893503694776392319148477982114996782699289513668970504627478810736483503262650283264850782775704322778340336784930851869657731959163680090454106345305594534613041302122353546383284543467451206836738683188611247088179073633088244258943081438629476460635648649287689726619406236951922012787977851155073795527698309185441264004935221939450610947502810036784001472310806712702961100206083709727706962056720238409376940362634629798057633426538470904129377019523198763681228479653954822718749029681092836564949992932379246896871787693302790048893592661912526105980764884928230217532705408717216817647881199197628908580331975617512155434306296934299821897096193972671945437049839960680625980904096860182564812999412772940741645663805065934802885679486808675907598589260719811522454907695819181310736762036678256457659028182014898613009728285526110269817768105080357410445725731881140493577965223666059519319728688405052338981225481768573810338036664813643621550562939977773840194071546302121883810428387602076359111090223953729219602063804919233113712413682819175573899846619059273406675543104685608146249505211537468854727155928910043183133793836404923538967625078291395560266465166592555589721975148448201430212659278350022364101327406484005697301621657489816095431567038841398338286879373622513606015158329767638138828973412233999113636200906413728152879145288626040678923464993935714801298609166102647989046774630939579686816319551030428462546423635529395882044564102429289601490765807209254611132768189795150932618982263424112453922335128162954141923998785575922340914790470394731887289021936146784104169254186501361711073604485366990818683046753969746858946208224145151518254367162115266483397803226935225014644521552275509570521462010077066401044834714421692596722840808184814274510365992970276486257449756797463021508978155591431524716857339655398923550598923349299621513159083388034150403872096427922440212344506082105014748642101619214575425234635424297207589512088669253905701700014324160411470464301410834826770008029267587886257687681731602217225444082383234679390799539571883334242129993125396876161416313494159370607256161313166751343373252143826958821216909612509003359571495766672600412003308049400708726714647733375323822226633305389763205232708637038355965402416891278034112956174566983517211608169104784236429417768142326613593301341479101899694921519126991442353039255525162663411590382922910451671625873761713187350163507954657410627695657042643599308458647572538120596411460534353372129034089292287679890209059665982246786998858357304603164178340622248087259921544601359844927853270679159645636274293799206987244549298393163722604705798748700653826413538475894675194860410757405087948095556637489017701988494834421975011158879326632809444624935596802808280199286588671199472496159334067492296571688130337216892368644539386115593630098721881077589760602457240546110349481601395007559770471814171082395173309554919361114384794293316388773415223380270401262911715297579934729926750499770849599209851776896359102951952356672073929574899017508853791023887877393672698777282605028440372833935254435342899591939706832460897917513761539720913979684772053760467910228319530962505093935359144584599547932140974429772182412853357154846902668974115291145440123348684181136247786793429712869932969205944584490994854497108259999055220830047701833169032444517014699722301576798552862035280173998218666641284981252713996953915403337222275674670205471055645725667662336957627469138179378211397780219334023763468401220589558434788980075640992566219108504946204939581074943053971310244250844219037176606886469530924000334683754183229791328994046294319183435129774859260756811171490642813094091281263575074498867907969615126307514485006173846915750811652823184044181275834299962231155943346959673468262683302888870610894638577017111382313283814648042381900637622783117106642303596233947678331902270495054559658233713332939971222688185754104598704975455165617777340809176828928847742420122585409867518564292087493764776449960436877015116593066146794759855090609475555353755621003795384391640001447712905250001863557618808615705259188222766954720975881750541740908470775099602970636049201573319027889080303265522404866759351976996742316398191387069457982822607025800163170544093145569994792886622606423501799156076144742509854871772375702524136256975853369684585845616259231959467417790632605914420095825796139784108401642023315567358961239905039669963132063357644805474735017464500706631126498212187599141509345595775664805054483641549805147525511883240622926155093584583818565006899643309016712172666038351130233177894615839638525961137749501743523661453894420095629180198206742524428087069473579538636609307338512905116910330808070382130306963678346691504618722379008233542312131193300359168416976506324084581821068667714975451408855358089193113547893032299337857098263571418455622746625964393241058356637514888836621707262924049667849538715571618011237649918458439198858895039740648732578873479911792756215435214673473009919716510961506972200239237806265746422179551681490443927369494524190789625354518638471116984446296751816590671471404735798619588756648489103510393053182247143086151276742997720774522954972361220836329948961516814359474316912208890661596746048128730175716755110106799210356327557115419258012672264053516402843559056158150729219868087017262200931129063774079309195298567983088527194279022715102042034242076316739387910287289112470456787443232968256591189421575671383567159947081936476876903192546503743873761638164835282771692058372722972648968318751603909571632825597112552353229548921302460838699272678840565321991177074235707225263488938393313516745681128823401318280297893631674909354245529978592792952713208599449325128873441959889304474532359459312891895927425447072577144252357477749279170810290370990208047720244678513686988998296832954961993400770692542310410121050593486924744664854323863438901590745815477799085348760258711490853776737336695502969197459537615295060536727265755858154374085490803053595046673066323044988855276275753481599371714507000151392484215573113373167342404118699133210115373471418560042395017496631552196661253099095211618336008271712785247686970360270833384536602675530466847983696414087275853889642325005209177225120418934553653029103259714510697682977178513540975289296634433338760517418224315054700762418290043065145049625628335206334717873553318327179513048164273859972710163445472184259592200899555156820757958328783564757928884701504434760786655069579341170121748033585103143016152857017661927090421579204515456690565253546800464641407974631404587632496878508565213736374929145703926661780317167550372312488725292677769329952653043841432450536842935490879168571644193846331196172567316526540709100840695231764001713940752898009211712260677393652217753364404306527301507943087248375106174300132435025667517051795801671461715198527308179623627050098316395490765961312580893885166916597804443372677488919579679756586885089585073054904925934860294439086763532471111934919562307839648737252431242062171075477504245399720782406422753533081138429032256169700463536938284807348504725905775727552835706127122520176050923574409232584980488856993717448654439009350157304117763029361656836471603099183937197997373830080444659875483301652971749678454617404347479366382834922180596015547921065490402065805999601202216744383970767134538800097412766741708639171746614355320362389720090924317881074204492798318612419719159050574417796433462597561525713608813087895658551719369317838414091323373070212707683296945158218217704780693587565947952359313263974066066119753644450579716389198270459202654858584700578385531323388985777845311478721141847360156898634020975819457673441077267091196238235548231606632326715045356412794459235393296466872426467226182026496496411689454833719298602025370379583055786210000947181246747537384261891843124206309482104098947538072459619639237503996263865664681523602845647799199082377384395385843215954186059758175774552697184952886162967166785925182702248351939811667645623694943848802788158189737697829377500723101317120125324781062698007490383448815949177424403219938402505103679698536789622001494953978255811949948194870532651856739467421068083485533600729134309810522304975060907981746038953008139378001358122756577905954392752355905772095568081921828613903985001113203898741353756650796618496242586237165085733837107788440506198481924070987247265744242443754475221364868106409765722569504586796131550456629126599839207645560997175131969772772063476106189581504972153118775308145450746185912254869399146121176512387244138455831117822479611524944409040791578958881262842371979947477486738020746846180307705022934024622833236198330904098549938341906488255974216124398291533949214830468092437898149500002177449898849109897479367481936862734142059451623818791880572094926440745863044729282451585932418309150036535132951943323567399514090541191630013960431448869584169619625617642704154031547375503354433313460344130323309607462365076283948693376593150610220213063492374865502160026960735968389887440973660659568688467979048813013286039497251839288321734670309048135854283180763917025773135493128677481557404147264386202898039146636336664202729715791812936886020174894829798424812321198862703579788360155937641362349220815225003220581079491116776051732264388236931379542631930432644533795179461182727681381294489525589913082474029592837356655457212957267187854002258672743307757954458546544071851276101718663883762860714963674325658164849489190673791949832824751209979961885329778897237317311098057411097090708586843026491552638333793561513613371459718253161231786118846967556671863761853125365605823651505161270256889112601457647348041435901959665225304384115274951433457839893781114871376501435337888562143627510867804195882787429914658251725939081009712889034194074647266667762179581301682484619244659629693828110640344770085789262161249073078566049880446468145164261243210616449382083790013410665465263564465749133821649257195280016690020216861258450038643131192309994824093888772415851148114791163234728940147150622114730624648897305795512596485272545930618846279456254259100585422730446486807992340768545221657969484672001027949023450636413709626084278486792372184676188268289337173322605321499034338893300976396298059444684967200008916708947055670404760928933511272474007100415476750039257123243765467010697815482721465212807606613800737815298425643810377966601263379530174881640104329787110147519166915753812009863476916774906270752269513402453089991644007487186019822907677205954202332223779545700467715748358736562837595008894173717820735301733547812670286079658611598175469405561159580503702520325598898823440268416926419279306615869421850489543330703293140654735124128647712686472099464295607323186280261112990018777319288624770028058788908798596639851531285442999061179888270397791489023797804801274264240368748773178668926057506455396625619364265918904668415282029431531275591187222681786128456892742885711251578914527615547778319711349790659621827361262386086440134886267400776633782069383697083277271684051017132670122892965680203029302000181596567639113291962544760577206174478968161950652303371158414105227268006412876571208564493462527443931189564616145631336605356577270770308621171454118404428442651209905988602557594270457062734701810688887603537382530000390556385607893152871979653374098317577610932759053027226164240556317595466410674119618128342521216913377445825603640249475657202476771695245891786669028141518440910163636035728399777951637283254504849962461742084791065481671172171538959896586152235760705200870057952646199072604643283912448723990493260262357869437419137516940779715148383878589289308854030409317887328658227379598508218431742605251847836228929870650489305210915051503709539510319249938752214040009331016485928774965088532648194899963142270436601111948024324819646238862585672804806348478877756202858697427971924348211718400283290323354393448234369228533283712631971547133982389867751882856732784759013413129670805067269139073318942772196357706177309336906173080559064727247556826668500212163494473791187369723927975025305726300903668948245678829489107448412738264347438879989919876155763820086872829002956234814937286386432790681236614108242276453938666073443208205552906169714028340864603327416728589633400093477419250379773019137306213145706695593223101283368110355009569076338611592442638702273867401039963435545159090110105248454533348729483401804086244644297344270108077344877870204376625825067222608209229421696556752409146541601732292290978360871206553568263709715534599139906245080178172431118454690099965456809394001844388264294340864634588103927075861021243163195652840371622518908145530658258818118772581802961195517232210848078817312748941911775315646810481691403911691818000925831665823213004239641484498723064531073403738937683100286739658310860525716298685947006407387864720048163629129880630617780374238958618488628923606963070115223262656810939175010707665050044322518065114924665555698872341356965000584458296058447209118730103258040561699440856511248774791497526825563213030905420828912684227805921646049311931602458688094080560910457418322600130652251569423627168398807846163259548470872645099404371834139123044790492495973606213276105112517018082760956503511096962117340838455604451288270764338344008185634177829439584421085977841169832774714853213060850937272693702390897759412924379662080552031329615382739983419389424104448909329866609268818109691026099314146822484698911423704209923852165507060273641683967666871713538433631558534466798233122916107489138004437401559580538616398074971651962742959844000752710474503977529659212556709774732221970781917315056665400793733917415192764231765922371608528345328835196407235647435798341036731607948367016868477682422501658995408603982510130798456838628809973365972913540375740228860710876000408602074574696244814156799374464145397953353275722185610636185696481557840092389877418863567839241817018799233947631978593299410829118157250927738042043051780598098897417683174044713373122513666824682197573007922395716289520449402798578691835861547393459925088562178892561828739151357289826883235828739676829106618180255440712628560227956949805060460518799818355151211609715401599323862900610515661952915942082896035398030623868836258315869954244358617226532959339147805238441009966620527714833462670108801383443048204171241210058911732425030443438123670130199244290532890373437964304063452019013827085533263170750740656674896531889255287020160784641289625536121794206185847229972210015804344781677324415484448041338148456061499465202738481026814774995682862118924827011194166684453455021549556976701113034886226483202610503023235269945792368754986534440913853574729839323435858805046359935412813475469464524715563121003226118132509011279993643779810491492620924189666698637517113889627736887007206560384797414773120214671948831175381339839326750342072337991292232140962891181247194176075187092768000450544312409623983071224641715943939633506831051258380228432249041448595512842234708221337111659779534431611429255505912138523481854498513003655422719977904009450921470602865226775769160202935560750283913714057209161494797335956554499578341503093825103712723660746899151074164408882526307317033742626501818481393024824199247228672582765043687111728122615946726966302432074580141224849990692723346951518329446265489522011019813898040036475427575023661951432014493142002034889805751066561709716647807472804298154733263616612857728771778740691640029202042916624518268956718302618763199512873974812176716747837178194024019603802899470365422792703538979840967128316641441548060797601534913871781226066682114161221974877511518491132085978752499265608406873519315873385881560231363763752786448135235632408982842298866354977912615458367581341358429945876800831576989890636327242006948455158031086399355544508612520736377945702604424948840348874287731996137611773051688917484055895584357036215299436826396334889643324797291096572119284561240992311710368211162625233370394641960515626396171816142477150898508196404774996083507108330373382211602052651590624393421455183077102395436748120970175242457391336151615951529437565032451522755165102834951440470352046997128326469923954752335347248449262873475784256505966144874279038234167523710263052679582402876831810766030920092074642861847268574148958346204566542213244826332637791491876769158693350395913250046757997316989746076588516950323666817552567836646957127541956486460680320857642632612555074191992084248673469083340935449026546981489927320350953762513081368796582543603489797322677648630585727590031803280629465585257685847552816531389366969604803508188013546326715491022534201054070525131608656031372538962487944900569145744820206998680106930813216757828450880252015673041795010476646220011784582819019697591277793862280343293297019085004397385442925205487445617333118609006272536912629387370425220016527698094150716655642233105668669206929994801535275498269410878367797987825061532032825920252502225951199048354798225644247836340256345230891140923671804230355728264915466305556048239574752067497760133586410341814248446603658652216388348075079904126461831148596617922012076251165007772518901763249964809841605616709890908679453024631663652205737078041956356277136078578304844881235596507055721031364948361066251874320293011361084045162413924386656920229616506524606634848107966740441746832921983359843311025636572290027549528271113948016610521482928961852333122110238874072022901047378376737907761751408109354346237805169139250070526625061630957135613495960599551283266447016239609990786425824723753789515666715152481782739184570943316382452640851134312953511499460550172717249194150398823531015796458814776930486584631090588463677927294672534708035181862113045633397676339331241060296225331431480212651073527604867706187818640277495079254196565721266709544001541882582012210694522742184853162282127645640632289106113324779910027671636477849363772206185574717674491885719571857453235340277768611737672304565236241795920576484252615162485459163749784717436157905467921875597788749815538365736722084246729365120074543434597407641775265597377005660685236809293885677857378756416556329751179079266897073820505076638003771743407574244437281193590883545861951541677254088770372382361857374559529047959427260399159405698476147705823129417555268503749601790802479714049550335496860030223278199422887304028425050239672240424147657755240603739277828746874973644263026019017490162214984503970429795858901671781199186184772731347352046871924904972195588152923639689556475660058153353069512894759830644632225414676380663925066261158774463215518082586536253133825642322361220982403068336072775524945521754994285424416601279556722854067288803783696945285199583320950740555903555597206692943281123427995555954003007967913565209934164396285864440440643523633600446142970644392793909608805997301020160726575982049093273283734660210517581115927555710979695503317132520540354189928096869563318920786384869428624015649457651462699525503594735391463931151639512357344161471371556628263987473124979637598440539606407033371315493652176097912812918808731414778637920699205590951946895366837788225461783189466676583784734745747549302122766869384433793169577685606270047452408131899390129049770031977151030733665260015512152618033689547093973567483129727394570377847407725875952757817221793276742324236623794836236217928860763248471476048419369893150553359167758235354757649079549981804102896210266051697155035420874049654232231518201424710029032339240577851880152585063238107675219959544223844091383193371147207414114620229832887332135946093610252609167336551947624136062763098862775228516861002825771250150411435764521714330898447860627811284301963005455905288057736179889391817858931685730395479097286006629139456873620416504962383373332755193326362884511506683502355671960466870895814955070287888529655383670747543414984756115921448150110490518144273077385905951312066015516036374177244962043814550993004040109323913806719821328365537381259934711647734961916237397976640113029290451381062419398923234066998381647215514410871400105278787714810477311476531820624113532759474652372133788532014214210425384905618002704951088544291910898791493620898128349535935267322249916031395916264357096256236613172074263997298455477923358756358498573546363292198200768936206610938951714653202218464017215586949054766077056954213106844397094327859667487592935614166609000967382091881607001978325827365718609094063513385350950607370430154927003222472302817567273427787593267470970563312761904287047892530449699371203880255163114165983287184655087000167959546182597415092615930904941280746156614447328118157325411477630319380197171165435261393026191044153608460006385684158787340343145657546489940328929007407842876987210392648351596430025258602159416911642248823774541372711105049740787089521487704050859691207171962234594743267987841179382905533464896185610318697232037354816506676049248659613117015377483812107428340164411255997306448568219172337717200854933875321395270259884889487652535256771624166972667634843902684639182353518924586544451938285482885090450600158853106159076519151467645515169244235331737576313605349918091679911673331679255262697323034252730562504197880753224299542373328210887406212772032353743998478568965858462779139489479414430945825544550786223687910361099513040505026254706287134367200239823918034996080502074084396168325857319789585234009277380630497191898147485424889489518789331787510672389971597231170900811471642099041035830544445412765794426485471953848607750116669290154793767861883225960015051912195627021649776589327483584531202399397714542925496633950966884305428191529233329090031112687169632263801874587893991461129562766526329585696466330068011433507686194935626718445638532770857247894909889324505298974150022007080132183994315462780423183169605814163601842727938793399854087461890934459687804789418061965044887495425982957486630344679338302273035945958860952079641024920081597908216831526113602037364597060457137089969104405015489886854101738082903941125768687573364289753811312891145544173303105196197761604787462077171436166530119872160280005126515919431244065800205814919701928244087035056084930420477623644394255787630665313793436093924327795672035414651785438027744746752636289691552914403098393268557419430066986795694943636036073512554954476282555778400613501400920228304604367522117388994327608383207368109672311907328384192082513182992423334565650902090340945186872356745840992065041848680220464935716121474856020515271602139287065988452059088105581700014494493992070939607585645851551093086868440485371219293268409660016127332311729730248843487195987730731169980654190579598558842820735209438334671474002938789475490725167063376765462971035036993560668397103773026338768683454080284223190467844495055480787933260590075493158528145279021309012698685030748747749942420701244070398384125903478902292925690454016562022459004749271933190153643975402291587499962444571135414339150264373873283793830387667815976206158557229142891046204627712795424578753464844134574419109887422965501923250712452982361210892965471478200361295113712435308078438337136585223293327480476265503255078507353339798072976427244206584094482252447461154810512891184898270414284094820172991477887782788961170506494555907998386249323830622939465036253421064133715925053374988717344774651326496216746233775480787002966043883048024528211293211309087249798920114096249178169086596869496700219133234737502378420116877599873768259054681688896748475150849954113561376093783621273737844144231171966998707347086177753094944256415410097556001222508091124850142428616688903622085378917012260784721619972771713469864418819486401020201756071105599971526952820290802589407258122876939240710157798572994956882549327516928839822124912846330142939145647055693242033134009327870007768053571126688239619267529783916157411050966561563508272527400895999385272919960943692311256234073458715765432995131417919642538135601064837631680868938636700153920900696855600891793088015271204348728738928897092160038172000313131668162530505692337064698624773754995399388729527945739268194592943326460573830268743995375113027359660895094655061088414182017375233591014528470360499381770280422932915025551476342195144712415637626267298550109424004787029967720025323333494978145610946020996522066741077974459420185554304803782413822399810277559605609746023537706605615275650262414214911401365167237371587013663242185626924007295693688668351274137763174466367568059976112354408773378615734423029706955408721550967571858653711927254865880670860134088382390501186021557096489849905819424994844368785904854600226325445431939868802731609058462062818828860480036809033877458966718832687373201224939092740940868253640531764406402726980042121992312136775976096614374641393688292300300172045391127248724698124430133861348054324363002340154918277401266267428865519828294265583912920643453464466857917458204791249431601065916432980655210467855441127504730489695823955908528468366277402506537763833528342587435447548003644128882998606369799224068348917789181149651004906629970882994345708298971482307722253144200059500494221569056204187628327793748817261165961337885556365773111164228030814993701416829207796815469733685214233143961838461570000874053731648201640495979324302260877793894398776761734154412162926353423996941736219138468264345295243299858117869688540447074144573763667004469302630423557894447716320893684167209945212793398675755856402980233360425822561922934885018887004533273962209327139340260801026008402259640186771809605284310978857486535126402399815484221374449217534444315911196351790746431851732395486305046273907308207490149080946266843743986971464175008097101056976789927381405806193859929281689256770284129747148432770944421790790844373670851356043839469915287197473438237472403596255597677837605193453969535006928782075592721541191320928169231498441246757859236367148007031184653787174576397089329718390559296045774941837043547777614721060995736606030073493668391015381407016582724076498953475510309775478154004360013470968280805653097925262159379415340336432824048323512273043584770168176220678415792406061888851311377992105841061898266579674631822325417665038189628974585586596264178086510588715666945207032620752276778390947652287849395933879679615746333567348351193558597479436679201343560744835937839311430002946121494305964508631876539782023100689962482472072068179357477980218345939887221456083993966746243432857245323207582275092611852109583006804588706335689791746819393580657296622507006650418916867574965183767118188253366871033611179191002254869258130729796773060360983613307177075141496840974611878019998276233862168003718762243586555384816740841787083549822539546786407986178762669518510517189919636955965620675880390364639241669301690599667435161786004597934235484302705377564173723774908544942239361387122193843174686958037939465049472700377380947679114555974896506047367094018746257214104480238665012941465345455591384563612097944728043926792782357411387046683633593719577742533827616101802198797565138028059397686440144892964924266898640618128149419138120748573464110341945560253860052326100754709659063628895975722972224784614946513136868477492482506075221918263016921822559532205581023275925140233884859556703588500230026200092384399242744576077179458698978704597410216829026379736563342035961407591049827052986118354771887242774118288941815620039888593452868699685876932609957104411055392802692979888823031212530736276910167259165548942361928966667645508345890196681062090796004574271614474348085868624530676072843580909854896556548263897628821589667339155481558248328055735630297942240632575718931634267035006488224906512319518643430131913836309992783187896753891204147985483080558241829686569343764848837128002328563992226436107940062759649288478339027654952392708782015893867471087424765154762027547865313843512919352959352895723936801666888219695088770333558494459751122683796827976986773042371468738358406288891789472432223545745071937178670843794752492790418697834130536791913109618420347654314458467636051916992711609487753876432646414336852581186923693290645501684255822760225964854712330847580171485582404851395555697034030890075440287781114313688802404021519797534186805774258154559941230409511181987885700940145598603412658684800582920970795135933837671339476377362802530928099017448048272074710674281964644985058192640895748556415342848671489086684948335742705347592359384329209091498144756712336785172335641423581399621356865692251431363246461763663871010354148442818760597738067000599260696765348693485175853241532732623768724010903105663906005504841431248613371545735168512531780791570032070410203814069323397513513976527104357870123722716272225803679655012965280548822092607783990227248477323102273694707632277764642428031347661228666729155353899387139394650100677993624168262166874176281871070032896600807696494228612132932481172397491626006074531208300732334896765326764441964274281521461032038662501957945232471756074354454256144056841790341989555912821341523796853375565983417563640384588370633411241893169202039787468756013204617846113657762022306836610271157228144415175816706487054693906947078266888030162815591713254558294875586803849621570160344146960712309059449929890122624483584911346909274435950298955253380354454505203054095743425196973610959096311312469863238566459035352286978583586063833735716855111669141305828319589653416085584054535615951772299127175399542510747583690274269476113928593920463576814215991495427475024014438088253347780119845831737238130426624202245390158810558679572971333776325507432090891657861642852413998077431972284581763244822975695549880868631500285418366854462576388494570231611031755136549492062259774719328715647476692626828130996251773409144224074218758484476445436874874117450836737539295813098589961335769287693370879847257228929383351211627606402090739617973696445136942963421722473788272763170558342646958522807632792137677897235578488446123143182258650994146473394310473102995090191128539454045002059247865647817236731310489123559081547266223695055029067037413105869364992790015667632413167400449931533673824588339104932729955505135974741649266143116953118766111175386997355241475645692984177936783597659791385558397083544179334274838395335641499510502613897136733009916658872154632648845168406473395511309124917941992193510075045252293051520279969250723422302505987124275227337965230138599021462960023062710844921600685761123113969758937566146927409653321892361684788654543608391696986400972679479651681831956565467426877307243133310933384398173723168983381587101506420668441542536383841554703841354010065832900597456539456126283571777311216658702640726829636047191220818309498017546892657244958857003758570783244189376392547391656207343014116372948919732835559438434270433731780541334385094053480574403926027970137278175260415386395363496144697654147652759830752015787702315735827842946154866386838739133932494453776485005816328779121555338660597687505708212659478764628906867129206929255885089632133854789763395835697959452005390813492635541694879941944452692863214981819020887700267023983127365035508800971515767738099857907926272784829710819785262078235636672942600778036423846650093017629873916111312672986457176644151151398547050886913725012168603311370729414541334968495703827547902357576626223258131327841447212661500375263281638336898304121964993178601162707559948238998928832206729282871745100787668740956262551844816149615056156819976604692186677846118543434781959422035152484270937985740047642678911480236950231558158717788734185825411407148503150410375850016690479119944988973285020495829317508743739195898155828041826801997137021252455855018582161898594471620713831752188192420047608737071828917680532830403655814273664237424310692184835017852566198137616788408165969621920162982843382278914110882624504816626614200127105029496420557284097246294616774144338876520123391841073930011336643299022664599965999734901135762143720538142802281138285943707145541100144135681155729365852382332723881025807506968784589750362772472707053083892664140596796531565142255470440580381889647947724546284985386026866294901743767146621245663983024297271074514042282885749346956811751526492179209430791182077896064206767534668591436070708812593573273149879353749129612351635138223642912130721931555938228295494222281050646715732734276112904561537085846655321706224475049654413594118411249589744238767435043481405196751261087561341919572109192435066460175787164521753705016118110687084582455112577347659243304926680857743872078241994362057255718098638146383332143783744397779759767938417689107221841893695724856778705413319253234917370974000147039094388794007582715346078608436888779023382880680793649949189765311171128828271744985554777228875801060588762970465599307694842068974044808991599190384274206492380759340506326434467756506369830634914967043970376816428926171016952147350487662178535923809060122922346183668458619049959569479146162046338591575822166144980040151163959930760074928207813537295322206687225864514461171908338799083259570235538093828057341965354651057894508629689924422198317040828875754496431265796765299904999321869391984919966604104527818518206609304500732620640419930590871364932114700673284608862590318669829512790418049601464066199995357781347888010984323142309664013009644969728535493620191201683501464511314437748979539446309222031999621399126783740186916903105944198629015483499373637173856606137692777297596417858694731603831520616668394419563522092168456152230901607426718861968803173611369622517661218348410819125349649174530730548923056211179882511068363850852739813658088071871803898091365037529165123964831734944503567024632732863047932272490521322901563374421138899384228687514507168607345518591547383049146772685171798133331695226169193536342804097183064005784374469950433494381440552514583074510395033371656024039919939950155419114654447784681251191428936919359589418238659207673358135491767176489825014713258879713442124354750714361134500141637160205884396237986960259723313731171832130202055107131952317605777716166333404145773269514759932559478023574327272690731637105349852229061568054519367767816368494922417006507045385067117083817133615369613488952671836701396257679541346208680928830634955116501863655206611431545599143318193999910587200725473865610844753033115473375287518652558684210341199479499402580309344562792228774282140121854451631930852369083767361441528388369795085110567975925220249737831923752259723307108033836573735376189824511521806582371442310238417254496619913681421063476727789508477118052747555892100020737228290125693748738049942480010763815214406672003107164567691830026109457039077900279300181666958370023385942801417058631093627266071383693218169531302986643933717732971866352101909160473182350171991098600373371091138157864622978764696021831992773080681512905403804121047794220845290169272199819891179341237161853963258423476631106855797640712173638929821583255990159154223806783480440149328531695021112068056627226952206588155311591832797789270119548278178807000261969759364853278324590748576553307226965759653144210043696287688898936362405127535900519250322450543432191215388330299683959268590765303545487511047352446662831540522287108688952424469055999860759298952107811742283038522095605321888495180498975384390664236117531493621446475804403719898594296924574170315479676601173708002855500143520679003148014963438899025058289706713157350618747178220019102418233749002810626536126378725252827318603512098931800460728895508888728062358903768276611832422801352338339304269329634088642417940371063269594048475411075230092244621625701469911736816843979728108765876665767075801711507613286240567912753001739412139183397569618209312779805223896854472744177145035017338252307160898221620847258746196890884262467836757878676587961018822529350608102341847362278585541875115616031854645914143881596242550626368853663888958814925044666065093635849455685285974717514178403648137034070666789675047530877401021931511471582741887152589154399198532156484648231402142694383483903291766026079349389595687910500528795717277360472060666595109655865625429038375219866642371442330394651679381878430006031257883763744057150114262250684649252472460561406184007768333192332926319772692558599646671484990687034141145540286702215054818144422013004890919868754463725006366782328889985683725477827834456606751284019548628122785827712652954758186851167058397520198872211331204714754626154227687706257786404604634040444388001706622994118768383541426357660232973031229604668940517448647589701798977468777628416265914668577088516162621905308218940870893612986288928414030532634640151220568145624898462017730135152484928026257352201020293972150886689077330130791958855057184934085143508089976638945683259472785051617097305293427454253595950677166115459329561198461772564430392834125631287092398464238561396374327502058862195002720010166631272173407805948916250314532601891804071372018405782158362975399011956476861546134960335084170692975784318668182410943916283356198169470582411574084992608391574655226550906167166686425660758174061831299794506507615781729038249302689482714934004053258224908785343709575524934739263090797454853029628916552133347753200837225507106406985891063318304013585694764216817832751634826855504352957591905033782146259287422404795303015842570882097180145251853481917219708302427172003549787479363052274948744555795518113144076548967931607883369883883675819921452788821413012900432818232753233600582239553452544610194381157366277762647608537203192019164708470307668060039175441250229919245526505527713403342785630779928032081074086116903449431207367173621119722532101450288429368186992328401200507904656395988391813834202526625733310569573236053678881134118754603134407633834640515511180840185546560299677389840320340218141683199019623630331561046785134471693677290451095699558088443002602464070865523128068884428563565744017948792618772441386796255026515342034641695710960505799118280505821075978402406684119454447411997094392996594272445146163981784518089909035829735658473367324714607941359313693569629668712966037496168584869235408258638692383804537291148891149288852529706530432056498384583597726986432715051654661190102355371970638936670248642554054660763002307280975956079775007428632344329007088649304148663831900855693123816872413502792532105577341751003319052622291700291675880963362477378680739442330864863334758272318807670199786261120590344575935853198609477632130748288944437042574319706176367009465645322369982762474461582901510960396685121069612793859067620698633801610850554283440459875654116103940187307422450949417245078781975779048069973742343492789214004861052608439511302630110177756871903739450280622959400863807037744279287955475896854654296193514554148266241696371581378127355816696613577588875630848821919999599886911210140741451539348889948610679284741809160664969453396203186409386956909213072869380878028974444860891029862805578441225493923198484644127380680384934691959234677983400916723355321489859013619259062077550564364525076578323751930345331524752684113366042702643275152553918021581114687964629447382217456485654229082139052869497314421051442836056400476917134726364296629421096930660902900300857985304526748078459853980620743614034306229580299541299065996807114444078176319654194642709244515951779418357303632605635572657871108382617090558834722747360177871780874456645031853410239083241801770284757484033130633345182609027904926273102321248452978575150420358083027121582776002085310149222473744558183616715223376044918724695522392122562748202898845652926358762090938328577880637974581903340274933980042990454873540009956348893819267117716721102898313412684704640608082941189048609819664298871642096990682011568799115687032064280791583311649230216099367179653993324983160703945640621817581894905427178942104018093208374809486181241583350874471028409535832153886211865687328280204971122635868485155310893984032938982456898538555560081331508875256969044338354615986436817776551341215887784390556114464178399316118937094937762391971027022221056083222369536625357878847952730217356673207640616320272624026738853107577674960812266225977894260745679813711682550740484302936208423731290317270159966774305543952502784007641912675866350203034356197392246383886415402425103080073260519688601279040035895157014714993181319206765934887225111995183727715176167864900363470665598272465211433494299843968336238126431283672825686457672567464114571711009351255251482385462453741198389897799733992328384393567068254725583620161295077499444763675006319539287148466949508062102348719734183025474903896682625421559860252029582620913767245670343066076564889768719443251215627057965542625309984553987905016789425388801212227659532554959309799886925476948213055147086389667296151233630212611762149718068108120914544433769649639859168270768884639118410485366934861027562162021950719372959562384473396590456275261386231286836715058420849312224844148262463108496847046236105189211147042480004333172306823143984109898753020498917910508444665677961228411136582863133815156795732585355464038477566241310158725338546312949448209168043108222111557874737255918956256100241443382205997178418285248715922053590737214112593244279782175559308933148646619789904913171215819928734494354370657416309130152845740131217210493097938919967768362727489883820747145931218349412426536229360039346638050032173758130940645324727660860567677573854655683300685297893973690768093090250150304118305348844151096370472396323521583475902852075482275387844173379159192404989935521453666807295142115687431092053260746300008156393931849034589768157130607809200587863772103457702873135930206442665220398212561169318172658034069658284619457489547201802451103231275562459315406909582950136270664841287506752051173938097860843794609170495212226392402857153692512576557294445564846450036394618703700750318330347391904589502157617798711030317192343989410089794208510611935609266014475978385999323237344527913199790134953954620847405645569014248941960711322990380700973070200755745108272200209052992184565279540968063926772617337599064720232692167221294665534892708399476480014050047255151910530977215424392640872354201692058019963629949468671978519554045842666963320173581685791273623118594249501044288845659818806627297105892328560131959247934550706906982385848305229045150173155224780232181127401627117259026298798745123824960210214686873566817742204559345281465710987190491985657410059807575828512271624401716757171809509760598558553048061661439482071142318889370521596125365686412784732678590366222456367779766002502413418119663300580580061144937853813472672761940648637390029436226296939807883111955705227798422885794663752118432493686791549846472070440004910786527465956288743305753323350979083684707875151795642439734163871455499282006577665037139357856671766029051931405219298195882470021290117688784355010126782950235734540044768708438265116845174017554228603153141327645379199998164821702642801436307276363131289033367512347214943311385639188888033269035882677141164224503730023350352275788468135073331954269560361684281605410645111370743255540756767902381171576611338752426141232432817464945403636833344608541606241668232648761421761469064374174149923882284861736952534770166208946947514792216394624601420449596455467128145789715685011511212179119034322704829844002911202450465671283011309100391071737016515180293222479299679837589384636617598268724898340789838480652871851691689630372644860384112166016380365219129116099210192786627241290179116547040187275296781647667591807007784164973148991686051827635925391704421248528035541246908234147477394690386861005171370569947524100586736325207046864616232499526771182535183371606534820213913112615664335228547328107351164562030026307325251779572183443391401340063566405263926685360189551771230625786756883017574487931316458931653799683650732446588593979496876171722804979134174022501143397396581116620853120774905861619507051783351726706811837603171470269794895421590806272028482885249823864321006679372471796672132908454865383879301877819513373291015331838153634221510657056817277573293467888180083876758843600384867985797045540152247666817047938310331806046433888493140032748844853077730438948856420389688301974626616859802578285766540546893967425467667433679893770331622045817231722556601534404585035419677178196286412396239004534545607330284698800878845687851610123364383392375796349249093817521239857667227260547861619258423740000436964865538758763353317243420492571573536176483568106841124937170872671515054907094968148904069638877730714477602453893637741644631225806711265696204442055316797838404150288154463452242485712562696552660337143950678988298111949403849429514214220536898389919979738882275051494736430837228562516529873416513094153981408263838118038004926787733151889085837033841115422717453942656349606637636038226355750977303197855305275844332506791159213639750530854536982647106470383435254135038582467840733834556802961990981110039761464426962587461638229259673835927292622226804751437082158798290175299792186682723364141261110910199166497408150306098944691191900411624133797374917615610831047582096043190946863073740484978454325262005232380611405122320698701275525816368575580627166273646179356199259703788263973609210318339128025063968151725728295379891801339112372102115822185375758766746633532337736269942999310471840527733757257727241362903164606016809974224394281918379980021045818720754887213659191547642661130926269408624370098412364547473542994094905222224213518378760819847807010652786666952357541296004523348177505891943654864534393223026436973746490579129070538809371652390149595274885530266642597179095026259109730064427691361478472838271753694565666217819521056659654677666091695424937388651868312074198713355484977122300309699899808117217511935191933581177060338661122986536691301608217754166163024226153259318158500481867305163168856976478121767905049277012830947092765486326183426969967796079504741278579237087917738292598285590313488801509111503625334401817610997800224345646154273007535870135829087474553756368091110347056803368743314079686574447634615018234937660701633570502585622449459781753843396072621935734771543334991518904663322810187270298995629570214011063798299368860093276697834792377308797449700514261909072659405070869258158836545940069059416981663986664041716147318435072248041025094689002323674114873386353399499515727160666207159149915567735225969088817055349013770166616499958956763715750623766807506687706848152362916875335245831704605499971447880653579511193869928914318219471564725276435268239485172667923126140349682272583969732477292955634266371485752591333075069628444338629336971077659495359267268014263853610293332807043780645009791534052152788382310402466201758933104625176662200149133742333461790861766191155846479898686739626582386609450369251797766514677515873195437674902968919687989057837211290421269154210586875614307072833539202575084241833916054919240664719412827779368853148446576197041166768082283810151545047419622371533967189400427330899073874728513148913393721655850274164661315504859388095573779373611658233912423339931335292339253344005421070163621256601434853917615882033256538859879353575180547461694079141785342361169421185271316275421409929281916950725429732930901572494659629242735913816103722504316746937577903127272681209926597196815597455870801251761686283589800480556538139921117733041458173774286062943735486824717097935469765267146932764863504149458862909135973910077490959877004886816759417291093493804623628685609917139069496163930426983698768938158923929328588859678471473704471159683518756889039873135376821312452229296381951166665677318353604811536431526419253753097888407409819566352415932093139925207682997482850492006145404607291380116425724247342896421190991256202498026125777482069054870988803595947948259090065845534710049772444526386062121446780553207978711639452233217638190351181001885028261138727623133817574204343320013788546491292265504477165198125393182311337054094039802171776921719533966073630192450428496879835889567411427837030447490610285781264668719214871576050895124192366003582569521931594131240367676325152633445491877427952629936397106379591645729533516390878557655627719508858221335084534755291336951354709894501796375013466705243844155516882970865594495257420265447741793347443359826095851997191186256274296059414157638474162166048319946998620036923459565803426012111394015167241095678475077211460853429752423375984174478240479819384367136308735552104096217236548776615822772035222354808179995034498959823877169973261129182211027861000148813843523178009637817351957745893713757881218209688137667743437056788043503439049885531904485006771424460301978194234241899430775712750938689819920668740367348068170925164933091565460517357890070759482128784929069811663341104174369061919729209147184874922239809332828415741584836493724520721111860783020919900247986597947931421386017539962939345048363192620217262324049782744778566822730092456753085586422419638758594881177174809009928701820293674951919812975243792987198326652416841622912520461053561538842341536462297680249879215323745100428436474298740307166891238521370004702592275542687736786278841557277791887808831036749130409115929396764231084437063636548546044081131215452694733852680278980037049021700533450201054193493843502002281014287505905311802536156292051178936354310162332104397197166822073723595619456588766656552395911037607271740399470686109175140376836412427075734204752385162360521669274298693847369695674281257279336177080461281844625918590460820309761248150591149059400526347881760092415625577883593223895637262956355065843009638866695405957194825092672692107005122730751400675342667404182225327295680868438996180455106279206621581039299188120438787744250010770803670439592283583648493422967020463498715418388455283935864570727479379119637872812264646102018494594342656606781694599921732942630519521166430869224413002023385112367013643284039919555315898101785082890221734258675024623554751878365512234690028734999305330209650435072557259337452879494403596145410021304185917406739634025380069249284131776784752036437442306809160002293140258485889895025068192212034533496623417682532303246706696429504896753824807178436401706302609643309141551040188112493058519894130222876153553655684344790400406547792291531562599693995022880769575257640813696738203089532992421614460085428956117645445717834121489973962513748387985791132027306557951736458666584852224271199691955064700025281625089080506523480794042173043263283574568418951491705345050792761221700864681870657985466883551307370794151221081179412888659963491834759602882595975151482419325470141772485939567970059155180396499194480103298911248202453663755155935662082880978397103814778849398605085598972337257038386273002039454697726183296587434339079733215001081220550969804581898244604481510761764867185200883922165453131760249045062121749145225563891747162450500435385953897490808286070952547868221880550305686423407230161556888571608471704105334363963176297793944942127772975843702920373373187744585510983159985862042570485506105521947878271418418927583851166889594415153081674833531950035875830271970161895532876509787923982475476160806655289383858112160324175760872305284001360146420369882225751870424617197975783275413776964045914069648013123631777478136418016887832668150452219223287433484384404959058157959406931137914573346811708935321655157554157550884252575854280608931244481512918863714689042678772147120175903927141506511419069749383862435415493747643513838977549393389980022583653050046403015531958878533837801787249754971868224206795280784878489208177287461039015849269035681296102268005674292047117396540286815281119654551867808191936680171681105169506519248199980076061003378199693053955268483815142817656967733691857451016547957943280821777296447081876648170635929443006586632876671482955677052967021405266861781995280102629956299227783079886035281659541722248442728947477448284658300779412345376135032436035094799199422763445294109533889568676760936136417046712464667288966988285962722218767384245419368903472362325053491254807128309798194044729401821861929404604513339565529284189621776646468740010281797118043001664468679533218987189864036387338988237632735384375817430285928873518167617750413158787770046141579859481671641228251309822936978318991253860371841473678800168246837200616543040582914710419092330558719032070794695206324302230495000143816586327359671368540113178151300418356418199699031153789165289429778161256113957174552121770357098941581097647225199718194252931515998654554459929858650372311181211285475196915095108863136410646384101362922986080816818929988894635514062729604030932202081995800070571400288701495473284345354180061814805074168744508566576482757869614826396651564005671996475628557121122140671992945357306108735409370077888383248362949056150436427340796999472766570741331795118728848877896958120591832927302572956426967683395929875625885264628675985428992741025293966072818574689741506520021731080166479881900608280056043804795654961652624320672235173830617621142593573925355805425861959276344837185681643324495586020428167413405924889797532074624821903533578857671845110836883085253113768149668816690774905008243000571881704862724209827887542987931391406348465281945263899868846881709773026343344311372343482417600996079000596695270646225271322252640181586739516774194402036986639551702354104649593039307092217377460769816220640130690167916648500039362348490316778684617510296841453925017793026253561698502585016585604869273689730653962349651960708525026208678717565985551794076131907884192992687407890349760370567578090269645023179517104076884251427148991055242914212596865788843674404863849213241828617094667712616871389126751896465444506479154593919846416097404599819871187910172485233308052688429071208378589527981414991029760896017275505828873991297648277489858873237396897284336998911343994959223710615317010199480990105622857000719461090880930786384837656873504202114972330920634166184783330520724534264638835924802740922726855104495574389635792125833345666217874389644481684156915020187581306732661234697859874339379262708655902932335091784103119218241085232907698239505629059787264095965445243198715679178866321035123646813043216848522259424119502850728118407393579972650413667370076502514247981212361724437835487601498738651021700801497412166155116182117117664222076111679045992012515626717034088441448009705041937839710775734760462767093769550068387765551688849420373953744138124234736791275283873757142695314069147486998494915735863823066913315913938343548819837776090041182434056484307315934644330164401861267634840652951167273679925480478000147899994809897760382447630588541338603131661440275350157556026501173122583750294354207448589700572299036308822126454312038637943742884132192077674361803079493692458887543787849791646494251463093048768862515940441368248324420833479983650129038910886480019239528600307942382858301202898990206485944760549504793473014336967502126677163926602281095981055154399251795795993483196740446050745030294177931393985258121624270659548204866984876895293704802550065659215842902725700623845170787781920795255740721808550280769275826195233215551275904244983623953702191610454842302409938083433779816891723681341354454889222958657961828400558675263876575033504560289416539788235177504240278237654875997662528194127945494353600849610134877207499029636886324940776695059141789828392505405544047636308337408054688046469262094322764563553257437011784405608334827738624300775294805324793853260441697028315756830148716922477510925713298107661577398594363246550899191948210265624708986554477946940462662984839384399094047884170366414779676511060832326128740018365068604867262310913929981706364179696389632310063068790875803929526763713590264804455448340192491370620995956114667494022266245067905226847032798850620288768024267368923345147112507126268210658980196994834491290571980538681065879959643751792386206680728335922364734067878134154816980545660856399698605444909274208282541167505499002504514390319054726253711364305281991726866623183183880940055264060532371676789554596555261097658154861600593070634251844117128023770621289746534904716710790424830132329987341856853043411492270424569695608745718596941351698641841953642318136819133874056161525688365534984566055596632427348857785390397918347315190968971551203772952129584804450505161120425246315556591448186597551119921861173998949956373664618117859754156117545391170537020556749858065404166246763763263189830112026155808737526813579379013226368641374275814873434577744573785072355319077999603288877344079460133216967364757355036127603856546321043865530056456382764064375133866836306523562789651188675644785011203788417750699815892451960186745517164719230622636140192027614225300723389108550636524234393404556027256824396953684177131390614955068432469637488126141484754701168302140686846869645989975273759111747249411593527859500843254073048320253629568671936832539140305514271588516956311459683381792573405471799039217494804755396816711981018989237732418690932835675136533207364218805698961542124547945432154812134569971648327718403602863458866713063883326876617827877039466943911964548084609584622689789024888352049161012919760006861251787577778692303595039548210996760304091028817650805474628855818873038137782855197276788011713624472600452231138713196369586275469821635848733481334077473590111835104282687557543414108134116025689738739577748627639030290436467783282945063646967216252956919915960317009040770947529114651095093053306332334409075358678006653319290235890335185497583071203026752544177675062652660077367968835298916971535256755438135029120532135504785660352093743272921664640211362317832623487671460131788617965518493436189718443440451774567854296883651170801895443072926793335896437612972200802156322491132817592533532658855349008284666153832953424069656619371917939535177403098238735384306069105464943563395125549928306969681510826196218383139339541300380173720488080392051058991383662050256819934888083974288057529533988139398208270402138100758603961590794782679470213985507514399113510207136369100420664576237003490077684143719469838271623757532638533251795405809816548909847277798086534747785476490254086113951849822401295197392892447904441419487920415122678163410889398490919090984767626609338940259450697906198640792545179101047171670400152250001051501647705765892743790208678144164313405593883874377519731641290090091941580333456445195725720009695698440346229637237885634917312069000349217247154401940475611767487945372795822630128521903379932333234409847815233975519730553085145056723287975352708649913792432717741978672409772740196319027234754776327527192851909093203215655546964595205054507524930697458499756982688820910358139186317616802512658692942727252724812588667614151143975372477318742232874450458620722848738401490740023383047002136113247955235787246811323344776338733737188110146886506254372861451005856735873376047466060598467412403516661619124848232176348543098023094823303107254097194269943473674365924058956650883020346004559281549912622062148887142569883615003786910327356269238494489655400763765000614760890486257255640823796593514174035493656383367667115871439240034324311484974618284288881029323765973622371348629442860895035640156616515030721080589469745829338520981026674523809544081463763771366243532002009740901204658311446414534306845876365764234236797485393263394953791911719373927219939181946340810121771864696937475880832059564572699414962031884210873592930003228345339712198330937225538404983197776366257237757966813768059253185304415648421022034140902482081482690101639140529190159860821438226677271441691789215729332549441550282874816852837720637003474059230701207332195190487785983334053284836444148875856504517963878617468293885611578369584474317183591307802692918282059656794678717409019707898205904747932352748140905630585509231210873153884101445297131316182322303376107308864289135188607285111527823865599433988541396689709417101434344050578789141735180153960173890338942947426224016103974633073420105902511843429348087946492524040031495653334840164671488755653037975541059118286295118947521474368156819178426785908064627661124484801080198808553894017537220671514761213426944802426495804747402574115468717272117617690160644155581317288968295417704140087948739337363426298809731267726613601896431862454529572013487625099834958671031692296106188437530718959434796300484832367563012117127310683863595504186772894999823964678580913070603418000070470708572777059608750581797559202753942304978227421429959505722932470032944759673741153078566410056572027678092466920104010848435711542455950511793341730864183712656076314576742942766182311873349362736261655203858694065558532449947123999581102831860486397629197944206696815797196471274135001855754847510980951578682535144212212370195709568655832832759168181883664228547846015459718749476496498678621687804104661937317476159315234378715540573044057322703040269933237728251742371908206134347349957247145478972706549766369198932402162836740969062617613318990084536542525551723693367595187861947791855412554472556758217732474944985734312504394019166418468678178679711077668903423689639272232333349295881048792534877203938353751752154540905315806196966630674450847688274869599833855536543354702903798628511507568855618593664658838714822672755077527270770096656729965745898124362116827944296893011278419545475688176495670332970571886787179567560191424359432412932221465192071408503514363487476103623073280303670911781835447063327299189445632530218655545593933829472464568334278543716025427824477528639037989919128076098353386935443828098334967573249228739153573371255885338111950270257352311109891556405596179625399665002909318630088328584666586198777949973032231429486069698660146106556362416592518112726941320189444146236255148553613712800912943926078619140074918126151857616753644278001994015493342976627489128091284212803775178157503862245170501718512151905388474419477263588033210739091446963703385715894289026279200074443685780834048163088839379800653290725814177367188774991263652678291146917821207036753073403284590009334370730659930765832930934745465824657929514298865322570506576963244344615978678978033393729419590383977512613773151858794597035587973672618118510275984537134443562729091744625634142241209414487566129148882503709833413678273029753203090973859109046933798774227260647367520800203988849908902043837370439714987318800763943538265478801036753484351876302046784969679526063935375936939349633448121942501542689345831447599195732853935814002381083795796428798951309551204881018214801145035905965825666766863789821018144144959116914458892031241613569042193227921748151039152210609274854350513383125438474211279623838494599505095277900914885486960356065292065201339675790261372914366314611771698871703308473500914340534722726621302916090362312565573250564495895112552995684382787976010256277384451070093281137847136159896792016188186758166139836685433404038686671245296656294196826005176949901780266496455687754501280028505822356095597558915670980162732469195389270780749366316050483079187057786513845450428525808160588316297767998606903382699700249509218653254264791581621699063398337789960536150883808928305751880556055464035936568024284645591889168026547589568575656366708137395039716096392418349628611948549189306214460154070002512385803270791622009784053622005875473727335229051215139906912696273563179681175396315911282909690302889410805330957150444353242783067128675115535821893451634735122201492860177379315072999912423442381234219219990271716962032556423004133475857201645956896182788331257545080924046293946491836439186407785337335274341237540742351812779675965006539474912166367390278951618094492897076599601552128623139099851899270267515898328960068133184977966679396881033836786365359844125996550983268181628700756492076263794174441550082315052416790723022198493378022396847450224839197964961411714474318051288013378404442009486720638172652620960935662773852250891147841195811463197926425026059949085523041291855222381765802896310205370889081530440937504504335373843917436133263503997601210914244412768103743979881809784362550772779810762362542729332625403299014811222588596265097672584594504687052096870367211683780551628460392022499907984839323812440773309485736972417481378002436577062807874881792308971978364323006568243383455638868855283578228536935608245316590351444446040017719975669627695183351730926457659947151512224906197000232252082509970257750285611006364885839535609413476893852275512725447298233851693144773768134649710864299807133318532600904481555946735678196075023692418680095558619822231005981386464793355326296280423906968168864208934496399479535688831244979473570113927243363167317265981545260186298617867257686355502554145604762098638867423644897740902765890398920543838618911908294631846950784562009488645990895208707043262998376836745570218403435564132561229751796991377713451449894892349265694009663133840008352754356761579663745455900407855350853631804510647350913160403937482331811297113829632271190630241337679020524387998153036512968311011113789408566997659896841730082555541329797740592692574463273202159794306997066324020740423202071361346232948072402922691871581386433351291704921048807323440193994789524825463963978806938919586145095466849716159655921764207221357158090747945570377097755296612484257276125337096751462419120101798899278225556465901168364741873925696501065366779996091709651497083446459468096127370650926162460518757187773349996203318057384661746803726303984709395015990310733648009004369393648773289188344182125479698705627887169996433804428071490866821209735805128450119571183701656793247681175692211393807906965369843331850451023646527381868198724168754342789736137285566930427163450500665384541002880349469878852219969670647304772450278327622753834784464082772005894874352580961708268853317293549220039127850933914399866746074835609337397080704128187979979722446338766297484247156665621243384889881172057247729202883908878582118380615878771034439732209491052998265201687652613417530175058274479502077791001104422903469072153923823716604435297955167371900227446897743770480571434361170139766545705676513369694978625844682720880148986568380706966258221370521060756502203499501644985744422091346035995578919219803046406884291931266825324072154437620402195479528127923439920863690195966561193931336677354327273651692028967245952353174588350078812513366279319347583140145626228236253887276680811367627975338818354830205040702965728601128248446285670001256755624311581057692420692851338559006954595646581978378238046909656010866833555521195415983449472961481630421310202966678713907430537330444025660726617755812523455531246567323801162560270648290785465885089169946358718093433988340289189487630586691958569360771451905172170542565399100812762429352143106314429469516434170429274805298554280386565599259934634843161480105249237837903994064230447104540921369658086900551356934254950672129188803941309984172937910642155319942584911264540426951628476359727452564782182151219460905155626550156327021951055995474467948267352975617366383429850006631761119074164717475883466619848275636780915082301769299940158215296053975543984056211381506439657608385378704758379461931807439052131893357643635489629581523127105184723198567645773016902445666010906391973392137862679626114258635894781066604697985864799819110721415793160074165917823400929068648863687438738882971224685408444964028490419867394505614828457987919440312018459327941498856352464160468065294988783473085923456085573855476699892928555464791029471253113729621791816100767912967892945300000122658796672376313065099247343202251871916570399768604831769875773589423822519283369977950570482524008093584603564330165451459374626309735653679919215701383932648181894324143956084658830251090964403067331628003856288744027438613294388812750576316277847803512347609855694199917278631806177228871109302221768105259407409011776788848893395990222639952063855197605319233223261271451100888818282354225478275091672367195147515804496902101776828437803467268093915968286233427929317288894705114094996954596231128790891288416510466852493190826044768634231113517346848346396366643167203870347662701555400425063280648666824664613137391680760363221931680406354404317849843748057811880799964738071293492429285439791068857640124469294440327113972254993562744637365641000148661132614256794231124112747456852590872452576413563860132416512995671444243371829920832698074436235714606132671873755363768463422582189379545235711288978610994696175463893463409890494529800402605900632637289500379971269134357584446944275028408957874483431440977422066677244195761415712018702012735543616164654468206580570090074504869662804091179566210716615286761617605118879138162440611150519598244838078327830205191612944401142330633470995740299326223008329712206214225880234903940579374057723853733479911478942719078613602841008758570334534595617990148759774266564800167709943851398438920405261864154137929954885277485698771662672289772429855780976859334337608415342134466584649898713886961833128940404257625755025134402696563243531756067940885141048460788994260023525632402594670294159620450968771917789195559453987953311854646102648561036709553978368462047003109656529164665823563167908556120020115033801545485243888066851528517225278352134667369591531612038471618308728250569615177539032224297374136370196498386517966265645287333432603155178329161832352958790583172514886713968537914929091708713920577658275270841944650447360941054668095579235310888135991996105306867627535090654775513185825262195668582682364944726605817890180176106809573786259549634151880156207956033820825625916111648194490495971015625958944401560165958241860119378884232222278462056164899124601440247119191341409984065553904020331737342144166332725458240080800331273979793844874200686345190364726335296047557233143989227044317030940254318772180797200283786129964689277362029263972074778674030887126811651520868638635784389095925868080207487764031165776154071947903070111466008614598840788767797954226130343554285718491294724878408203934830919249908586898566359621965652042635144499468318625020586666063477109918419810056594924751724006991023357069886768464242853321844303832285930687792364238491718175488573931471708570496205495950393089339991162021860187603190613566493886026284076207384624841956298570011908251069714834188629218376344372164970250408436786790645255728728018727405673152515104077916604120591159811067690066364802937825799760500077399321190968742091092969768392705207229001673847138117437361820431608983061831256083937805668062009185594657727045440354041699232498786131609629232133548801253825309024866964279151379684437292480621598003542009376394233322418546161269080428351262365677774039191747468020600870651786955590322351573633523355645807085628187695534062628775648271198686308168799000984131530760013400873485908837585547741868265033111541902579781674302280348091975945443592157118279380199224249672258871162965036016153674735292617303398109309738798075225736851820202933941876447713103831042650818779207421981242298468213225972316442546316449099981240379130361396504096409794904013889585865851401852230159045061892083565095207221654827422984486093214089355796288319408222946106141835929479301101754301472223899987957495452579823227067650573089975155122097898467753876742568835374195443865954108285169838005489965505184496736167255538161534103122561798706660013573251280596790941965190720855299672046981708802101754003491425924857708997266826520481776466055651996817873897467539441540759718316360180551977633499430534318726276693020667290124972377465407056115687429037795601720347904381362772633183395329365920978298325775520287460225410672201172007493082283646037955666513290651579408974338840927991872932354720895374698336514838124796255088689753382480930205309198233308744182070923798331315481556927561670241307976901510969656237076386715606431843590408527140451402833276145569407384775976943834843245728728987968698655369053323190038573779239701222181290768419026630722620583752560243796995401051995952401560085308160439587038693368084987858635111985423675860270169608831735713427688718820045562864873223976829428851076797757013257142212498793713976663214888719518379262420135265024463527155085832543886253237731396865810558834982430186984612586324976350997260427444811554110375790031249440950354527145890588028606949367686530745215692803586948259236990712980563289398141735694770053014584129081883461366288516669806638940167717170056506531046944221003396641066515375592206064388106035295975071139790182465822970518225185808740867132408568543118907288682965928262298092875670197309826319398369058625197302309184141300432799963739199571022769323320966078753027024998239905973605271816271636886079401584619685814703645471297087718044235335398882730612320366597596679961209224460878471382152411593418352154427354534786753625404894236098709322048631599343106623286449642826472455891589400206126562796956540723726913968426026299101272850708197292308590255517070263265246540886362333139583000623496828336553191113956661257802351937817506008584481526293253142805475496032285872048438515475434430919569036613769548760683830113359468323756631560300763173941745845170579365318253628866303900415974934600842603767962733900221746857971977676126272120469209169458602191823265242034555546882688148129920484484134429958688871986447888975053456280728935195598720484201692005800287221703391934276609853969252764107520764294833341830528400249719687037307862203574177421528333580399137695043178358959190836809285054332274848941450456660669128502871837671547420803785193388644399804715832856173051477863880744653843282182492152210127097151550645994961362476195293359986831752730736542205766967042249811984747137062972590298620580766624181541858531150895052182541925051512883131860148252093698596838013613255195344413887817246436988506109743001765346817858194389623775899784474931125233670585834178170088380629397397280484171474003042159497028304589636939090997335740051292608465655294084330351605421054245871514748969764317573545153553493054710348238900505362605501610446269169052707764431777003169230283837424995377533367797502883465502011137207528085494939797496821218613199197898247742881517621820208295306249632275691835506211077837830807507061922552890096290004713342974007010708458464210578217602042285343949567963011365830299400463167788272251939392953175247442173133073667981628923277161023210930511116887385597854709294868992562553099636163848455100098765922745904286796532393970112896669093519635197566083431881047496656430782658279505287444558872793380315254652197578466411400061693795064897644270765350294327476716081941568909735499564358995373009378974514712912820973806402192368308842956002420991774767146027872067891067517607140932742323010264639170726489702238485779784534863211688440875836834317235172461118095949870718330732371254373037276832697457077401965870853741769085966564999155284849396155199164173788105103150140639616804321744472818601368074757222624063446568774931633242201741459861478000989014132719593114449253526649987203282546418108742022297372967521656334989598643964715402292246298494345619796567463777049808745747945020218179163623878883765298749027902707028522208019617399469759877820477103232753320046797231403624536027877039066876491997390035190127918469691831782846990825814872813799666911817164818580534391897610756912922023188325667354874951935181258190923088744110217826034161436967481835526570091155669310344229434467809402916337278142049260283765473743513824326682442867771723518739149821381613638687377094776358088462558094607890052319389864742620888191202124587346477414971321225233556537028121937005199016154066034983608877312532314192802472683923086255619883552611513331564175869815170111967940681540904289488321806745447086936233517547051803145531384726816162678927642138656902785646517884917549424300705482453506758491203106317583038130486964710404352516196393371660307603678446870103782885903577054556661206808329130598181064755818686042433507724399504681805800214567336130724633077785019362590713320208573185046583303232764959771163096401134606828903531648222783631062078364948493274175870564613116885967234509986138641701812539285974224278095494859078677587220399884746559380891940985866205935037358941968087075712588882644953592370318216250889640294527445892129817510978566277000021093436396148723062565129724708503309318287235051191868764186336394963547415706494161750104458200729110160731462872565684652967881024201803625129775729249236559193742032886041085851505074992839072219186422966096027830606870671114877931345522821293186396986448744708685579965643781796907326088493272387294464246285994401363004392748790166227352055889147989401181214689329243104023474411280465233930457457707548693748297281061375131133509589543530237150068985960276956256612503087577981647916496242076682034241373836770991801050472658124903060766174961843076661752710265098022833776942400087647244062205252270741604709702564169504929683087385615596217279809364185033526735086868886064398787949184934716537993613045348595038840382270666095284064966380699654963335775388653366462984075690785427177545886176182928822172037329360208891607934637734724787104474094572384324608415026433602881514186933169688531933395160991273946942789628037121381872373746634725030094201892815933786214357369369776086104976869116859459409655126081915332213514667589529908253299435371796574447412557171093531886851313268572093620798378641248440955954792104988073222971026709504642132369269741723452426616450473451170539471397461377362301929834549993598525186972953008565402465351769989283655615435499163849621217260225463680991176437902615537353772024128675206983831149796478102883228170240186794456905442663104367687350142409593179759729444428339997016267137466478867077575992543516884523914556068420890731890796396197855803119667977954043223555869944584782501837915166489937261896530774787587963753930444437076466216063984625082481189373718782503881408174628542360745900596253001480728758329863858569980128252896683062295424086181360076607366867917197778348124981279822668079338875270152654452245026893546998339234688665322791362780188860527649625714631098958194246912978069142079963041550745713694357484880617126169147204825761294724792387974750565698826494035377492356907634708990947412102447018029865091255745765832056822467299081838481831672428082872069327939105053442185573272055376079691856058624254025811847870629886174870014580808130254960382901535667542512934061500117532030042919582052706882447084833669221555790794957347603720141277136087562916216416359360776563737914011287183618329768575333452674481835730122506353831365788093263410589594278366529482672658514983524475194197292806212155821191359935637202198295116974824902471072239536998330298712807948645769284574452170731543630924769520351578044406001648719855394290204847083107920528977953803047748675030902795596238372112602782694121456068695813654441434939759039806550717876382726052017588507249449788087933233305611398471865983549890357256518016784120355186215811353632484668911586132963123128554693067100757916962861876071193320081069025865983782989358072580799335763342628240638114904456762965508247063432708696896324353240621555349068306681763859213388905445578548425305661155196775902936067630533323148637866400145417536937782126007346665563139880969459292186148141348317449103921757461202168650498862370889617093958039779662975437166472329849509743996734952165550447463081051250112400980218958280316215984489098263605010448730446008261525445568868440208303027596944844806250460101979446944093841700140173122519862790735339077192836991911026245855544964179729644882511351928322221606563157778503835705917069685790577380472862266331164711830626196598695983894851462443414485287878842904735499068223423805141421607470941202341962833583299768796657488137433930414316640770559922594322153475641363750836843209564402721591915362695819196846205628622670666122395476550433213492598928409414275442820124412292575336139606263993924470087059995019446300491558195553503705069955329443393502877392021177783217786564085868351865890455046647485463903927994793728535036753019963060871352570315489602003137774688490050685154388370520984615370775438071877535405649153995638954886581307284472041685754019119021223088607539498744314501021699189749282212446658786239114273273394845574835482363309025127621186048498194036231127244374581276576403734813806736097087628136182156553372401376942595611734752961765728064323092656671636907463560537876701589808988732720105687106264254791491219211741766875416494156950056060576484370972952651505203501146944655786550378278354591611725431575377582228432341592730875562593786299254222226301174536052667295690612296858253481685941180479315466346857273419034350452293130060706115725448980291858414958792969694268081648402158364685113222062200624263588135122344974986930528206337496944009448621213625607285817204113633533996383331821564840364539425129370282760017075199530171692987935467725719150071622534500328618383448112905247516714378879188204606023126886031337041559592435929623228441343334287594304929316346212756388824253615514901085270749698072408900935016700570010921399999980287217898245267232793124984683946322432814767528266493486336729912636749317751755153987818660828641059791418711330161160562458840654772752222277644869908762551518432795877788341522446631345053565507860578263890828945852181358233455519923466488238605999648910553984436257784158575570544789316947752920560819820330506543396839386798655395389122812441459760641728157881924884311718277833006845117127419927107795720500287951844609565193072392138250441035601646716969756217550284491514415244591783738957685300857111020127359544224612971031183339547419454244623536006235730104487059960016940410958961682474704272244766783618851288492866520101494203057842045209394912780795525929430472186725674522689343818389414772308162219555491504695399340373031613188090811043439296493622682200338889387518552899790324009828730492192219903716268231182656666485284978094297017975509028148459482018182018339827484178312538599310439445477113530700869239184645581999917802529647650130070217820390184411718328833826938639249067053425676543764732250775220603173143742497624442727762339301231322190831706314694676443872954485795509652754525186800785910066632921175534785055518954822453986726627500181779160361587737706959139168121450518251530505214897802950443111122506809547676163381664249757449398776821306792461878910894430838159628330138349073178696377528501127602902704522228391478754965719003125712777013184118112063049066534224109618258289485853703362669520648099836911304865933261352631761086722292531600903350907417730884026978275675480049534733264719902670301028395705283230919170379302561329398462024536492899094287406160394938807279410581101135699868454527231896777033585058264008044934254557548782180064073352541967201064211735193383216252268705277346633479237137041288230434876524496299263937254268321832033536355826183658367029248540534286594476016116475117922588263756087188932278929676612975832025431770488701269936386834625789163132253999993800709957624702379071978113322951826599570074589716581709341246957542808935762957355786415538590250222406356329139986975969639507907587384003945336313993040925921165046234855484350925008059455230974746921462726288889316444153945316158770656326032663838056948557452611464769330764506186461437863649141368621387236467039929779590926471441880344662635769337783737619038339932770888977533377867717345170995853563956751435560729826644118124981752592763413685575854110026390505566738593708512871751664222060275646019605448568305145373599245918164926654128308011340799811612868889862908917339803255670767375468619323507758356866974663977189022595868714588125236403756565027439108181609683018688889920753817457724989177615962045410135437856510107226657479765513152846215585640222744871756741450502437451839995288239079921945031381767632793724806972610639805958356602824342651139999759867045857895672712369443687123360230046254808733685474521197256961925169083315949600409918682480784040944491211851124446035497669219231077343355217279844613607320075577548632717783765521100885485704926345369885736271629711834312426677521044001163474652462092922871022433539927562786026703668185038260401662760427821992457915744024255330656921780186985885911389448185269310083830958088729079893396891100071485661938811497779283448606894709567760582957400150612231487500325373724983820977185459775312777725051570785493640516832791090002643048512522473811104971376711179771132589300777724404623015196553148497326397967590554422448505790928950690768610545164504648603079603323990495263337893031855415272526098467989388606670044798871808936181868822766086728789109798311432506042777830475764454046776398982207816360159722304508176618172034321722856064118147545564478666278132398331857083879199430426385567868916037865562022789140388775026133143552442002470914467165527739238477552530146819331350155892990107629956025956224271794090201717186015550218258856612293240487375829126495936075530857170974151473510818067308100512528484873750756051271001142799908521203990296487141936820489921189621198439137548172962461612152843435401935044689798170456719978093568730574459400786140145794931728422210891934019582725796380920850350741416579745874552198683958150436797223577163323458630269031666180039121927259690449666765471537903518815643956784278502966721206890280659243822404195673872894232160035088155429124807229232490241659185313927849902691754705133177569958062113567952955029847878261545267763878579618683241758627097338419413808660511477733896595335510884586028258536664419745685711351030306853894784207792305378143304186413278197622893222727292208422533466600322572881638851502632977703802266974476249628483151743964732691369036813116365715728239009807691037295055379676840609923443515745864513710572529496794207641603793990609116158752986221361912877187402417215949633848145131003708216856382611017441647728304617930373636334712058171534266493318107069491925072314602125572336858731864985220785443042844477929502360217525690327895475431166658476414877362573751701111247022889438985534749712980271266080875404466656341999302297907883996290834027033729189617917188104437969517596615113619130947313320876474606234617304425515503540074532416179489115921310117942294104202090248663905348749691760566076241221446349795413199840920044161760816000186400341411428938526564534487232750366335795168803765820846583682725323793499556270797416002167325728321892881317114666561520383144995175432145266752376214039831178123588374801733053125143020036288478977885146995044839079618918639035905907876211880301480257071491648653260968511038194660923073128349526245649705859800394749123105026199999422610621612103968261680842280827137769158794750482436932362298015630079669768819698257459124247564716278978102860836278084326229009989749830391377067231952151755469304488863555829240588383241785584212964997672511253419777753184049848947775861915981256552734216722335214614433075713434727422142566092849005388697431056460641743101695822827395198391490834758240384617395926388954739437407228154637210057798849198936837447249989660638089576671334135098177829591957248315404895817415857580485761671831824124856930943314096116509291611612472556895364850080918880147352743643648606338453160641355559584804028426119185178996989815505738368537073795956154356119380615746174079520255156528665614110378208394565270181843653693866558025400502480323744627830816381011445846303074231698441646405052370724028402426493302214078807924707546601917849390976663326749133796216126040622434802576335817422533353796507831076854730865583529243063929686285921357278040085284509358047439213320167972646063278193342662644429848386657455854891939921004861422434978611436120423721128654671917773443528368102956908343751185257266754835665308366883950942818006163040714315883127678659864195026614783935541543887864475719557100561146099077706817792600252712435003708728480088767493642973528393192405781535057416820033989183692612381895715088065399770693317313402813920443631457929192460656974433786553032554545258451380046288841017386051956092126518478124541664583757030001281728750796736000219974837789369029375952908697460740035520007343009190900516399035582929287656778190141882133211309405760868827748653422959956048020764666558174248756589026317280989257639452276880298147605675107202745316028170383935681317109658695330067504371518627891389411298843114992372007235748727502160375900482954384471753879824654523056700886455627934357441712948120635993213203689081880608823647743599618810260832316538425428941890700335410916224170275287919719090919241245626761473581821378655039864164419555712684758336887302759316051568640452591676194433785184377586599236547742445659816472334051314917433328504135614354166755064667550367955514798141767049838818410440360195145790907803486984124937330917881415188464469616347645522542018258331294568498033317087149747184015052867915592184560053869372570473579871969315890279629683465634448257955338849670349868815244443383267078430366087534253736972431561987684511415922158097401439918717799755024695271887324839554738102447378859710912330323709716070113895438875560260679148176070598230000053793584117220762315195319976989767608583422155408981699163022631501879301045094462115363210928555721059009506849680919162752860727472810896815808011134441912569863390065237683043286228483659469537110492851283725082963209598919090508603568174359945665059492762948072115713635896339206139114460642958842874877046765891124886253724622509363015442835018078383653509791069763725404695349047996426786065228620099668539425454083571650842521235608226777002741884137085788956840099418906469602989599680136479952034413935308652675773542291057179265994882945917652904277236582044002644482557346856803678590217591377454360314984498920861977172062797733636546656260291389202991236473117672460968747561102993594730091193157438174553977853070481519879707016470708238104553464621503186648796322653982280521833078165506027365416228220008656954986085928064603931138805712483586649426052359998271437229107532433268696911157998745023715043290054624312793495771089115898329651440272772387164217188562904601897585307153261490481734891677200585275719451111794427875430727239105183359528406617454468915328319158088613698562532872462483009804611896362127558378047827065244252087793155211863795222750649909640939663294091008463113803866227831825427368171550056668046930847806027002234964504896744656744662403820377341229204396932837123313608216913812495916095965070435567523193419486148229428175415485967940860299966712462169703692211702902527396110604452704848109631027021865462658767434951521219844162527375592472647299376380264820679362571192192598698486636513074592680795566228010172010217181702686866626017996968209500126043323097571786622288105255479834179047989367952617617338764074052650443979664638970398981169519609260547948986853204874789787479474197281026762713527933242502264038665307623675849187983752471160566991345332637898475959092036353183349189433223431919152869838164051795881965471704952490345930441356973718180437386722144596400802510591695718470227803581776677481312716160012954295229098980314174748781883689222134178988391662250686335969430765794543701110510366628136176872724521995299080055273778614558650287105136971923866252292227257480444507449001804660938996426972927267379147824897712839238949378543064523099647987076498288111260527137878650235384304921286116307753726718986702768751980959443928962227628496984974427779276965792523140336529496569890282401052616267949549355762816461396134215551066189461274548889018674459358027817948887332821346590800670259563226362000479408068827545068678722781236632574600420894751235388939219445535255318524480211671314522066510084927615322543010039134940762486410439358408291794735279051955362987317819086715959013511626981750544298527761413650974994517525550722515526462431534655982998591890882373242321874241992772391991332730505195151954723546542276437432253546299454954865009496950380175503768854038094803141732552649081011239684689134080938206340416746334203042420976187029981776779661096703728057782185459378126816049560054617720214689201570390216990617761799877840441730648744015674742867488998478286402200254517826168913540702225432694010318559621515867726517070800049726106583228705956630736480756153811745026879247861646571128560818072757605809347274350088454792786907972155563039752555467197403718788539308793164390064369943104781625516697306958977539083002904136799809506626803733435541657498321090551930838825232063845306369464187667720807654342556955478295463313607761516831039830843122684283820002279691317138093273464429743322118426762871257250756099394061783495449929650996803028117171582683956980769171990220907361114327067162904716047229305855690005714513593413858793627053730508516144610421719154607611177642698671681924448183155807635387788344398713131425369023288306217969441575908956000741517868899995155694167443145141325551213506570703969962689683265990401577447046660233958443223308839425860192712663294745479869698868470328416914763963604226724570425556752150358550573575731323790043751987861472453190812376258277300735219564062390717789399729349499540222819660036734664663787969268695850040980390011461273254302422273257049746391113248540593889579939181617238848066889995784727350941144708932420697577309377631975446753420230877295122807342221904706428723814980623004396408415702537636457949731308922428574701490030619706585442950351064332469630317123319949984678049784336085670178126109579257479949705453673727587050226120272269264372415753685356647583379504598377503554319577964497705286264643556737684224262074800357397834855980811885896810233158359826266460544566169434351959161338764698438768245950559731104647119802680962201484614560590194982541377985400885467357655280582787266049090639633527069019107158418065152291480091020119417697871401161106377614221988956140177915885096361986390712283882351262976636647943876685748060411988819509394313122856444879213291072701973576715186486179151593683605625434071415454378213339975554662814942897089848579860115664298863531074733799820595870332658709022229885326768605599169543758260033303503684004956370958257186732782357392964542438606117676657969535877566504563153513999058575254358384767579783610683646240301074966823513649867899523055858707073345024423616219013002723129022502495373931632184345084895624789672577917057124311551503532704730080768136357977113339535978622137949300564217508867840889968875632630332751752062588509816780321989992429966485450809849391406740294907919920252661868023962727681610989404309116935228399682801576465216682083880690139630432843561341009242996524055057335285768758980123418686198528020249043218682005281071130033301563986965481070296703260030370482328107396229624648695627278162897360566619898208746450547620800066719693909496716632506986652449037591179525916450055297877196047385159361850533669560836900072422611693597108801105028765188830016905072711842594604867212641037329679957016057330125299872472201292090953845490904276077443304047860647952930121811217037019909645809763412546275887487261168337574084723220298962867921788278679932067425172110642172432356064040426467699039651773012337239292225259255082075792918532694893323508004619842122406251114372765893327776594005561351770655219959439625079832131320124530281795643726887049258265931153461203718303879934170516794033916678801606765749399607133018593939915248604134837016710022978474152584557292951196527279878738221805982924742625258223858824660240299508376469423848616233852274387517138083156730642244350423606608901300844348180117209115484613788764786968354065564378832668367353330158881481132470262459399319055354721849956300704969173865878021900467482788328909284105101535020609937724893682206523738096107257612884549459428837380538453838400808889053072779740489863271381390711345683258631288078178428566273049161819923222455202708926614691877829625620811371373391393933591918595267237104007605000184329888113231079382582692354195108922483915638436812407934111194072558597790106854808264816464335606996910687584104346596388271776967018985130449113163480023972646394366516977311749684278431385905301251694103710227529042938591374452790944368989966929474320459243392880435851009517721794581017379203075591616803095314168474543688127980879467914089960936316931013946409480676868279380762049980607031011772060729516226008158477853688719883514766617967162354080650430300316112405879399745423450943677722806433397171114966958033566189768683635148625725538750481520849876916177880872535107683017826095888030142024924961726680826491988629024445880317559595767456822510454922692574566638736772786650255853218585540052851167595906136479270565870355300923195503424378754716294250730804816475188332594398265324480510666498989959719295837736073827807037527372501275533660576061166554178497109198982759746711338450991462548829515678556513984658995249440129933737559632355514584514991027290730241333865350703095112290249045965865595434460574457048598105518844792836840578775086457528566772651053273832918811325421523839561425038643269578496073739467254431337683736938758546934473619987919494025571776030066860060111549367659791364550615763972384786919605485170309643746731734613124739335629225572731886007470465404110434891802301025262481518798451727823163403567411773515143092141584906119593818848334865938683687009815719115039331463243287489867931078863191589893409899970311260073174745374247852722431665146965920560111991508724900660039103216218907637844255631555707415224664525646858912024371832879590923795337482873411143177229890901242425546629351632685412461261714502477092182841338157025335243750564278933511411550994018097267418307382884109445991201449704947649441822976180672014231903037438638628065338229292804440558807272190578782429906588902482221140104066769067502432891395583584743840335186674837958516029382155563910091145994752076352129783192008156367105449037226338893353608029411349717739817913536203978397876310753030774077590842720598411560903198126761502015324379484908847657457475121605239401000063519259185496085172921084255366950539656566420849622584114050950438700402674560199973365783135877717743911905404971341133908980511152327085919772718728946937689519583657254141288662241044425508336824064132470429248506962417002212127900666298036840423793404347045955329915651308282607162043891638017921344374118896055928745988821407220103335354177631166865605446363875809854960134377413451904118846439852791262839979965564600139551846447058469992850071334489243159367296526322689428037210127734653480347829436127865951844031589522302944239463426640375704708130463871186710127957921469402854442573483523653021606063344066596473060093071729640151276866009435467874106910696591247360054968311601068099248617018607747228493124603508449298409514526432780282694254358831232548697408419706487704016219064614295030021787557757734155009469329297490110562916615858076553715328569828199536412813283418493910700732252022567665822265168771444183641220691146211121983253897939520091024097601068586258026456713410980740123811786583024542692882234165530277965664503903851168837070899408065604817806327060203368849069082906116807989767094512386635827326195517497215701261660177035600460749510294390081748627613241844160129448590951668843706930225129665629767401244309568536358744537745737207418187819138145010155402783656533812139452584776517254799181539541840660117006993886170498270904220756262094872071068918468436964878907709911310372673320703771637339567014034136944121513078488227624890078600928001196096129034375524816272186117279337257734674439132892841350828317195433235239391249237998959403660385962196565455092437980386540025176543408769819742951248637692106214868333892288249992610258607734161389849020185757190509554634342560234785524642329414372436567283116372295989104896103948987524064195819235705730091841914149895530909059305963180716385235643210224309845711695032136799302473910223924866880984035778490334260909786369187771125581236129155895785188866234493182329798249089855492623512183574404147593657231815134795857569437258852331211098320058896522468500862204698821473278714151011573101907627847110436973010580078068090044054527740603036870440557036825545737473278540981443124597232952292860002016587362024205505987437893250982033846311019955042698904335910381400874918110394527580592375915296218657788402037750135060060687427311744773957321564932194121945731367247718391629945999451798481600648708771560178082975512380497767386512540326474354122818118074562865973939971431019300717471797214715395963451865935717243010875249989715654757503288213937953157243583591679485526771228736647557753348633743724553162999921141854032930484082792138718321106339672654060600099039297650285123767645350065947808114645025520922347582470332339069015300785616225533664206885602749122175582657254258797783415147474710069694501616126146145500335059257933719294563621541252907692998315111606627074174081554565145058156014176548937902286750023551046697798828550649365420222718340200110989082537169363153446354943093808304671241127525820598993742124784016863143722417909094030407544434768462782267428155657713567562113599777988733790736426690343217867387329163672190314743030573452192469468329576757993629601835169844280460241247060222066347067281008519178122898877291439299255850590258923942269543119450493836829283664027419504335099641866276279052709208581761302687890827977700081851537583779148547615477670403847445731733266908292046441622615909549700263051934800367230263305905430527219244849021711532394851356435011266009427143386917476927624246128839252025828895330991764623779650363401514567953209725599848752218513940504239650647176404649488180049947462197896399082093751381617310792003057793717491710897059452800907386498795271642308765033808766351154655367030342111125025041763587175928908345994152177413064464334669813612075557712642380776710338121655828162505474916936776966685038865267099262234190184534040039309857522855159661675519712074693079680986255252737021543259750395227168057127828751608021352281444895748292654839520170847552616442714202516223954742389773807415532519269376443943848237003923619259047772695961795998445256966801799179450146397982937597338756399015907132155190371495676789035079456938049249922190727211914510791535458891769359913687481234544543234195171487327933826882736452269202509496148285845694464057924483452592109045482710133273816260310061025325417182976995674909770856638660135126225092841628129286336035758777854990375554003702678473920213059649839536985853119384417048504661006838811465898065894233589721988551269567254270146474417893680831181993026906921522386096112264001815039737105758584342225590800029004182455057398541569123299553072653433953942541277659707975073021014425167439241336027691296173254897410392704665098351393479865467587569460158765353449397845603461023741258977763429895930546868584495181420018529837257205199997070221004563159270178439570991640992409674697120177809953715396842590403951997006465505972740036023513484669284294358434881761729013720870216370669753464858633528346126480777989478625905028592471483989188356654096865213074255604084304420157472549145135751456073621195124611374474871592714218597605347628115615318649757495599596197933710582424855375867460422282045901043154314955540718600999909595243736862244824844753280538820454761163099453974022545999207836559371846359832716562515464893612744385424856833449541196724159119866671190289574391910057022501999891109171624222035359195304143172693311752574220184726772288806536122833639687629510615722657705847897626601338134375247046203597964702672944034507096448487221276900159769796169147529999573607677026209842706799645410760348855215113309774464120101934878007570853051688612602100881472121967344401350693999262917049252656405809807597875434555941111332968312298836150721042246530557310208152977280748739973273409327940857761902552634375951176588394564575355668714055096009205119618269178189295830685588629580848485753755015864092735199704885172658587043520518108242011421659897682778718186270384656141693845881640274701323045060418159677289925485046212732133710655781493576411452408157859213044096182331062603192496781358361453834480855104187368672871462166443312945105972713361253645242569263206970887782529173165566241487283900627980690610089514796001463163171261229199570817451771518238623545493730175498979326436576366152257648251658068226481055224459844031058767437526749638300381471899876895992522337468904260849456895452788251593210548121721594451310494849399443153369148802624381833927124218667281511894801170613892997735825451759251638996713489737298427258601406044249012798336988323047385863985763408059976884709651025062061178643329342444026789392255329607478144016069815716225799222429106004555194468602460970524681184752701064552277685781142602539022870055338039322064475725526009012806046142844409657737717975695375834293262478453592877118234477121307065234792296972117873078869832273472523884585578380217544531216646508427836386507153767694638911421968950322474672452271530830115112624658040152854623265426089370309449882052005523987906989434634159884416915332463707213564441399722263308456798020177076504355332391993266364556157532900571778953066558806301808384086303989531486708302544122049125267727424059122511205751982838583915329346503924843266430874277584896959888917241612204821603630390537529642502900798733559299365944609029701773899514336172979164181299413317264262649388788765965336508544019151252047768761132241926460894798860649803819772608572663566051795523284389749445146891796816688159100351709145632325406509356474309193442267256019049495050211530818585375449634370329609199746482995118487321413485375190885524582968379718837075257038630518463787490117762408067846882879499521803292312090600050556700496226400714232517256209786114826436029314092492918946406038178949834507931873978359218849810325479907458838040585161482052509962933458179403311795687681486836386224769356473059423405203363005040152173202874093241432769125339272751830673651685268414805592727319085712562208856815069621599739105007564456455078794254359670869949200953555850242003771945857141911848896069090028715882625753428296203825525012778717435442665878478812738772013623551741321532255855062903654401241544713090602284033550272909502773933883336457961182270100611417587250983377473755625722953359732027536204547532314586258328288542079586052890945471807128167846906131026009267476826324931336103740255695824962070979878018942084823045194933389626794005220250552397797096759657151339227213120598521437331069038202936991404617094113607989809258226848071652745542496563552779858847209053023266483640766973701304902344151078001415712846190252361416584528747691767432364441589052244394955311910173001150348871763094317826237088844625179311157420924442911759233517016298728921804689128749486564959088863080189189830402598024709204429151762700961111722457305246926038224557583673742217041448254695984993695475566663661528970418018928016290118346239679810581572153482342257315120574684227980827881654144070926367505677430954321816651805803483697061447405200921959864259660830771426766824864128574651286111138171678263055719875787169267871856489735760901738611493502225693955672876109669272817144437995328366394942883596018795653750253456982433684484489301276944053179948673595203204872219838116307288271395502648546977720362926823453826372231029867040517797207459754884217896369458412755345335622677433136175673850617584820304975105409544913649575726823440334753423478649507654783891016069317951682311837876760992877182646005199914277676691785735495961924718430139472901546253638634474359657960968073647698028612961575544802560802901076830751546730068636943941282703734794948519092973720157503389417818491483007414637006486033311207362503674208975345954616167677959850595418152495133687648833180081492600199009241238200838279055159635370904833460776917228071165458707022198156658030180348009124861741237519709088580763553595808180088806215453588565312012468070429411861365379372765590928048993500959827800052939198934413936294327669980462376017719886783879290159314167035174080843762599602583370992648173289732703863979837273184920742297067990603226791288499863745261260685281922093918812288300053372172327565825461146305654126474411032900059321259271472218811163654536169481702500823947555959851675667754869293901952230784220146364519110002812431238641413226349350435849219578862432849068106740962266734635764624541462235119873895382350124264060484152977623619715761544533288511258671238742437079875015346746157086916626220423078463622710830046481775063339591558423129707458111055340471170271277249640652354046835203785400566513171430783807940393591688303123298086404048905762646228302970599402387263641615089428033858566873860539142754839909596915413438880266378481780464449139021466552182015146026479475228564058378568859876935653068757081086429573048902350915562493141098067926911703804439377014386758121668976960418502233058050785313322623584646203779779503032168294842264144158265193922514316338365845678743259996086912264067565941545602564004662622271609249333690621143141586826529309637560798227882702769605214078926340319851449364354014102135823252054065424062712185515997050322292453581621220210028761745517460277204431448390919570762586093086394885043785108736088625110480897773704630158132973456958956811044844190309849651832227261900114759453196310832405533851735247926376117883820634596641177056016415480891637488672189322526916155996537813533239566196861155524529455760754522336256025470688207629477519502219024104134711512212947458273970563175746988889546088077482471122358722903204890792153818084196459634045786020709336039788675461204552338150195470792982370219011824454485929501309150996199107844696953434134204644376637075134933253577615545742548394334682945030724954499468471708147119770540196309085144998265427672787594150498058153594092867235086704079112280906068034217573009110757752697270620708364279659474778737090096327625052213055833375419916742368978882937530707123408227645374950409854131838651860294946012605921123620527736240128575382827180618055404843585495251017687325380149916436063867531722973920777805490388578765117673114887935543413525487142623305514250453961118299794537265783645460771065892806984670770042019206132289810025839469415968589194068910068214590146400327715668931286277527317668520215707675993932224623585828588097525014249854627751963941815052072571400456691684776803056905112419216780812345037384518363453967281990485567220740024713378214697117463689593598810379413559195440099905156037748715537743024312767622613727067305175657324380144908658443631602937868537684753439455764124405566410464812933138633717754821554741893204913684524248724873027055206639524692345171985885545953760471763277553610170037175360850743242659292576701781075338394407317694245045701659927971292446040837424394757952270634324559851688268738397842333679907095400693482139683671533926959187142653808452045287846762034550101479616820843074140817615072355486803482640984886724024492383229873880499730025570464443325453375841408236405545705012688143951159816180237987696854910183610973207069883871959552965022081919813986687403861295055251794516890423341431674375148544031947616409664273319743868022385872172327482426981738568156415931002378593724128565627838048119978944667697379404194432842776031532062269851756414522586266791960058400332530879184384962401416318964050248336489720939049099508167763320088093930710560239205377566956549660184067492110327977626307425693333091042873475808890367718777126517386121102566176306638019574579471838104537760433278025928064547450595726689699529077468135671500628767885555075986966880027955249524696602739244271271078923516264178540816663932757055679043379219544125717972328660857533464301035545512495418914579077172837797694491469640527830135306821690753351496202977283150818523206842309844420092762314050940346277789938916384814556898051200513794512007901691063830466342651069698878559347211956533356173813572860955912882087933694027631566699793975615561043769515203255307117184998236707985823061634006937525024642641749708573952676065650807158367301277284245559473271726561330066673587076413379088934281687786659543812609411206238018445667681410542531410965026832381452642736921289472591213722789476284456813802648209514521577288786533617364144862474864726871086160736723470996234331279491557030425780892306383662104978981705384172585492527064596190072279270359362294405638041074075050942672794515817084783289955079414812752419652793346654376045388231625009775519116161472798227112862775214862364130058337637059758898617297589841922612631132592785101355258581944669656442405104989274275079045532743255510052327514646641137694699150343023430071829465607230540318966062257678683719345319682444012739263848151337379891036145050658760118360101626974449964046968541709668786600148503578987900620823050009241862098982902916203040778232665096636644883465163373850873604426150128497256666638765490464081781709728344353344462834483370243524204046554026193321505929537175674625870321783143478563647196638892289182971488796796742816493140095619658141490825687481879268222124672763014206269346352665348387628879987416663670931966567893260892170024168436719343854015783852437379325115239402356628961750055157979030478272639292730129007364135017404584432593481057059497713243698938175400257530955116151087886453276050468097706014839378759658760361022337255937624561180365196462807331031806713769807836135603349961278863861657525370308090320952780023976693193391217851890988682635627781051802307119549113191089093216195051869007174408340974720378868105223247271468253853417551689437679651579422905006288174294271739203865631794965656237539494494560876969125741879052039323504739626179040777241442073482987776842695260130383293377540736064293455063150658146009495184056466630141060480863687547370460571779345712596460934939254468391200110782990991921449838502449475464675490082000162972118744752181071915696663571694053268588553055202346174905228157888200568464613968738716594027973743244643188729417114324182720827472441785466935361934674833667333806450257763310737729817564265705635775937418001547095780339405149327752321591076103505130819165737015776837237496808305669944325286161492642816975137740211157851836683876089270325575007991484014296760222428189648248195525348068696163515073062562799019854830791353531713939925258231740260816231712835498185648863248924524878469948320184129413603777304239144683687728437010158661935119913160045849790335501430946557196595511093406581090794795272497152061358232749086053523482148423687785363345405650138303567596427278360620812523331858375243559138500838133170831749186758155934958836675360728015986430260739674321036087383548019474993109166446898440816804640342653147961147350811400225999523809236706190031800466458886028714257875855112217631193672848942013700225099769671232565903943007539417595869749687093740466547419109546707410838502888380501209859117044114747699438568141282303527801897838685592833664573625707378516270491289994448397051305535695672960453142738459818195313980427705882005765218528285124890486111385007882148363596299248202562735231002333822160445279753456117068492938602124744187189297934158662768207178707622924945982962502522284424054753175564364996730395765140209046242226838269520283780926883757866474417039595349268496514789915169585138010572137509315484291170308243024301946562890167442202825939206580792942120124025769579141679138967979465073811382991693183363374765344297917834687587348027789199165269579476700795999619256378598187418877832899347569995409129179089060345573553428466545363578771655771225277486986832380254729401155086409999419344663090229427326803857942458111286706288015159553997531865415674556521628112772327060714220577597066060506690046272677570325141259361183929785805255136888591178506117943390647776165982263944038174066542159179402684804053792046628841107907694989379764464301265684114124846106213035076086796720919395100331517612675756125256862983367936369443856421063795530987429581008226177520910291536167897727138113229279421587935625747288877273880958755502811122239702864119867271989549106965155094117036068462366293261973316547135075136469558743049766156608804348947905594251469886526589196209138831241039199887856824352126784126086583966325491913421741401704090263494865706751373439201842587353636918967025746684436464331562036219080928297125252770863869124961455157392985043374874375497946761195080305558837425016687112116501272802348088573145831725120644827195563837416593790102124438998931657647058968789955205316728795580116498009304730358777426414122243527409204580899488323123521786874007823074701220771414308632100602918444849982726170641382134041269146307788295230516314419051897146036920519103416717069502223334699590191155313333100385813147336505937296356267412856848162081436670696254920500170417059324695199345524422771722645221835815840296196005453286273387402496588640699649737581654707506417823253582453214193469463160982720591645869233503821843922591545609764008665805797782229504642539809310441610203452310142704867690881570513640959033008350281491176982008652673614512487454280526499336668916138426772519741049867724366263458386114333392253916065411980777408612302285551560460054303414735251035976316627862757769638673254807619834853326639228455827122011880190394152548552059167861136454131592743839716661789003259814893394995572402462934653308166723940502106052405101622756177654236197640823379385565636591185404321962693296636705688337019293974741474177424440639802066100410928337369957104483673825733797754892415207448815794279624968227171065266901137042453697298994447743222209013396503545222222254184464776220796496313366753009093668394698357293770903573988046664552308081802913874605038418930361683381133640339265721564284549471318349111224018585426325415291997927628707532214538110458025552507394754721190236841874088077991260271590986719777436114490670013188459563518113484717674485411954413617292612696469159388229647017246801681260711268213399809028631199287609419924095341741280379638307086238522371039895488708211943443988505488442311591098492309757586712945496367237372230028706358579858265592265892605698267653747030044744187520077354992046306175091457989610969180854887428663924550563996959356381479734419133625832113182448963074664731317757453362298164598322090841991143395711632163830188976162134353540353204798608785271881456668634710264691823580179254948367413490712121005607975876498946767514721816599225512832831955770588446203119542941551374595466698705493474115720567738411927586802380019539812941362178843349433951434339623809391699306953767131692644654000343217557926620407851904711045488287693518641636207104484996746288878246163782660588941239938309816746478537360023671860012470943329539775281200586009116180327640962421484916517250417981698151528500135962248191892897421108815758973798827278761807901112293327888431623463281960623663719729501191580789339835091193322860494619827600252721300181360694740945515447783523488578213583295041323834745698031640343266077279815281278107923849957711773573512065495375287780860040243507066433231631016496490419049214700573913075168824385691050096676672081220807890246843296768374031734930682201492603286248679443639662432820358939638432114202761842666838811020394736720413516665937224798715924519515680663542608114665313407390221390144207084175695040148691915374246156852424913452447608269066082133752632867587476114450645958450309617555369044823435612803556206321044459211152422919770661255712042821379804772187128995348150438988602115965371650223734471153048767628761044215513578960874444420997814153189899137715280829217767113318494406560564806660794798556266386576706309608689948920901558088459538005104869934177337464374442835829523751768187522663756448363341571991291277358257781510395162840693950610196636491171605634632920191937890556668774051189322669848042864952189584660541379975378402416678555187305572956023053100878222458169738025503477713700517840133892190107840314301207153406595518117354879419189965000496011499289750922160373872347966784427008362306895400027897485614782627912587017189137718925301217150348225739635735192401699873005979424135629346176041805152876952166976457805606476008687791190584834222751339860945570351324672724489199483303628291784624906712329026607980677696631331513153702504072612144397830123627093051864643489563157086617045188874181689311123148287599643307991472850210503181016229082963890384371719590431824890849354744850827576364340623843327745158632009041814794078374608596870463294089348944396940057026720138793172333424480850055869644216554281856707294922353818183695615331022206220475080776593774168533945052310735673283392353842251471447610225110058416824114079280739450289176661648147639879239558461302446812324047901543235189211947609781811740406050359697364506812785913272079741593576791715915323638523435283428949928233195637668108113694351003644083920649348506015708636763362132436104306086431330975262461247188366116062395114189263964853121429633867950424941981772893076377574163507579527864115547602832985040306087044229993934600943437258844886946137001831065302173066906705688371190309772310179478942769015661891045487419645646893829413204188795328717883651397637515120089419229415307195855752993073690299495718506643187580404390941690218610366562267528077998649069122130444347515977026300297733758884751387766383849793515135701824269520354776865437045505307055924254661814779025582993117965685499179697242072796687636533542780930528421548375646192444468782138171987529364899264400445373192198996164897192630205553030272323617235329508048366747590422805104117467047356108859992173437534852414093039379858370587785611998798227102917796904631681323484268164860370900464242068088817050494399314378621127921304774889673775245403569056900326160789092910523994602329101634463866845410941826894469012891819425663342241203514571395412699393939027073516956746703792967522456290971210176514389051866796025228306609637635830736229560599305132763313645725044742928578608926450787185320617040639748852852868628402565708469381924626678432253035218370203988316810795996812963062613016402472160974600624976570693770633540176502286501562309777174167719851059666154315878946939167803652969488908964351808679791570824410900109637856386452333608748981071234132868109562747336310935105089287527902971980144067032859817060183548142383609495744120318905916111284386364426877672381188751602752169662548846880813920640889392496979324245596514928423227244274752127179117630626053383900254495978501545606625172474279947115478217368637721548914013509219321930172880723290634366997642043211904868799783917044052204735584490316252114607197376809941875356184399302557794085838997307817608619572538671209725185857019115662894353883367366038819385832103412883232100697971723499363522226182078187284993929674429146747253075701608117023378792183446345254282869039575767230866626305712492789165264763049450938373065994356560989041803630671512660240202832407065582539025265006932950266248685041652353887127936889370367438295114763741678304733321584855963875434681033538740924032045973680119063090673957999031075766229956802835329380898578448905704609551620549585977549876659867286693837246769652867158026332347784325821117929853468099416251867853167499798865488553873763030714960235477027605023415933379039731645890655809195168685953593164505884771151394876977100579145947950807664372907736125853831336033618726009000242961658457759990339733583500602141315669329421468760847131547533838741740028944772690007254369561637066407291531910701597603271860257358330094863177942507789855432363153474608690919390333739335227466151576422156715281554077594159337308300250870715655756523622625281338783547975175388570061393190378046136362591432075691784655927292476724697830384094016825526761649876558911518410795237160796087779010518125594768308510069396068392869840260444059105228859490633552926572862947476740945948615309089053578228321823716992252797637623605894939338028211873848661743118826788307311056752538945759385782384000484204818856932183733307893198052772273902630695243474383844338599375660485702440252449442437666372279572412240271527858701412814381956672529468613986941632649201752924764060442099626187386398153014257386058034486078094648169418807043207224048348598142403580653865276643200578027856466101447152534804266057318562350131716010664212333701451048789181485023377429216058118817786083240895211642127300302769937867217982125483433628971693751185676883780465682700201217772360540515141995014615224369261691029349505005969694827624939176526623311626621378812168220547118717613183835775005968439557676510525342075583752557531081126400545405715315236482325664308181692495648553824331828881662913003559824812056979625066789963476577737669372901392430402526151392246575009727962707178272018952442376168760305283774185951996128386031317024359220656531480439579291718142050134667265593055356802704453281108627490181255206127082114340854527249689362173752704189419579363304557832033620369504185311242605218724491641037988774806767129634750836755933489768445536852011021330854384489829663252840200818997685131144431956704569392453232375361081862263749474437789980992807420461474133425553990555018630143730169649404112210147763527496884773935019153975284421583937827388631916518542126887988620571376221680760184118767672058594199314678010233441679287254194635652768973601631305323757827389964108631916957767624525752267978455814330681675211888663154105137424794699742238583763967979916376042288099959085028770122049569483428369739257857491174150057327611826329151202378048456299925279312452627788563207964266181836981292162812842717119649658024501432419690247928455230240286606372397095743284454657336433262876635042971999349962137098392576847695547767554677328477489177807023968710085030494172374128495799657370711826167645612966651399879605139474537487984137071043574337486574692971580518007104018273017912989255236269677733816222587521913901785259201069703541124200552200523946791008475136300710033304953240047823429984315555991701585809431970921037847459413445147684623460809945216107533525837011554651875095630959557336401605901777223919947060723395625104528588810974108536300931484296260666660748107843461626149047051000687405821855872931192803871635248315648038416833395452512012937951985131602539901576272110469708401229728922048094380812939915815766355845640553400268330314772724869932228538418421341506689558933638868546313741131340681340576327551232285679571651019858756055690462714076726924415285935985399214719367782546966276773171905308023577479593213352791264011445713767859577576951299480618037389277197640416129877020284553943364798951858816902826432984574034260270620524520406780930666195031122737323360512410313840147821250525021268832339099213350364541262110181280367022014638329702345258090370793105666824319844233340088005642070422131257743541829501823923473006006521129391416020460316645686286438400237778902874625639743237073281652955665788529913280678871741833651174255421098639891966734825494335794267254507205328404458367149208505801442682754276073022694936647647922538775777854979975278760871860421410412507291845451664243941967238995497797699507572778531429504198811861418401174745916833394265527563585088886560561982839542418965281700783633943988062164374538922590936230316686153579221986026412683655134716853831121139066255290578654110648628007636567973243464933446413202424796292785433322023044772839808173708594513655315784616852728098395326753126988889650027966097830644634469654252799725834712821679056135609964711507525161326316417935073198266125021017254418800267645277149969679342293085368249423605278091891393328912751841540203105384622214445898113654365821210083308003161379897040458999128509531635515829747920608061971702956394383095555317553116589017239342283748408459073611005400435077470132414971282294564768561422505945655098531823882313478135303121191265091437747710330827691111000477151054097731928094084303698008174106444902744614732576760013923322235458113776612615905420440688018636211675061279653397653712258155839829194285786040269830392172982954289197756311795806569317697270122986011117982858912033844360050828283696086768476223208135772066328937225533860687017838203643112928129941971118609648946378217029518946243720506873813526759636897696313222773746463343119059712450693387648986400968274758754149673932321710110163780599574474018664331704522971867557918446629928416175169716085433678492791288138238925953798577466606893580670011522749039037815760741380207262713924155396476340958243348652965212966776890951078679580393215372979753137189274850606357041185450427670402290727751968089835438725544111221430346572736426587399179927061519738454602399166704394758078671492216612908170514122995149987663886348132512572595531334730449828178475835468985340946407640048400907206425135078470198817672821164004809237401159161952142889398794001879465822047484867940503842108358752462275966270743905991083706373845096014517898741557422818316224177380129662076990502288845873070023363511996161499326102650294497172911015676944741282123031447469541270106543492896057413314586994135679991519533682388526510038730825717732771473918420588142417234799234497133047711751369535470264723492541076083184829300668590259096189677403756610615216770734329365108551877969507123513344923573412719294274815886512504006753327482075652049982292458241829223505199322818807379091860414432537441745754909392143972611766619391625194939817271768729185860700509816069207613600004858631478279701559717333122283138618178761603827992915598291388509247459096827810130296917849710098402442586878564823159726048748129856630156000986761057301200986271892546257211228288044154578886219995665613955756290152272233236982820065628050523761359099223858256461563364825901993206421378325400052174593798401335052552042268584667340567081582816165038966005279934101238687759115533728904436003713658166371855504326911136112507818644469502406559017446071340205099489258712852168246106580895224534490337939544467502223584126962270554640619837423243016010863226296939457447339332280882418688654642481646841163726480697374226190049439883874828245426579549877940272858207307427920597531286431414642532226939622154897607880051801377241512636649414356844925440043666877856707846204189798434260080674249776579682151758886758736567865977485039899056739681097921582286577603874955143186652661669940838026625976045975274518529045179390011376465331197098050656865759362796442351901423373963670179440186830831890187485493312752729683060249015731562843709511557570550120325242332541987657327451639111902042219876102354804819059365262402043828571581373947532640185637943413702611042051711636017323404130384533114807947946045660261577266022137608940201921529408527455846902237956637361471469150303056491487523520807701323891204810166481172141308247017928726957256964214234735938243785889826630302419530204241582465302387973807982741309406822040693085155310750347743124473883760096860833734601536441126024322840381976082252351314316215395067174994423057140867999351360333983001678363388983286306583700824807098394961907886522013132355596667406706490470177271372249764802985010157528464162375780916003947897388567564563858348481081104892860476716918937589309353097232423113201496938411857521649237371349615696310756040133145118873825799845670403494861804946525505619359123786390915698660670918482229662336260484360793726211736761339210101644497310652192604379041176230964261266939115124574438106164129767372201886768861266224268523291271941229439516829996847402753233546507128561666249254644073585079605761038738442533836733381959781197566144236754971715031878662968545287142225109935851969916165399454920340358802494932247913401796670762908396275587109732189548136822423208067783896611432483825657399521918366693769655710550412092371075512953553844171671062175800720223176486223594211418912006032268820723922518376529320174727925555286808028633476805125097337511973313906743056829662773173730543392001337112301346454181236732272588001437182253182746632491725670913573726887950323839751302265630640282827062448727188755137592816385267083699418696039741283569966666697671004596415965888115333622582518895384578619979103171669213568381202305715299395692481405272265835998733445929387817002468437655083749455505559536613437949428863244600324286309778917578808121726377647637420103827517690371852747821258877627466139012482102034995254729150560631097448243532848721616020738128101098041583203439868230995792942460631412213792781292601375176312385280379455845516728629402382411974894697154370632328505794596548812801003947942570940068523396825062640325526537104153860968241099418795462351488261182482535254824344528085071437562987312651997424319490356022597591425638771567961601878317355565275012971880199711303364466051115935115951700192564551571680357288302293856778755229095683547126586577673592245841598553438558360096583416888816421740519264508925399847833757002813453110640901784614908730636380881415292096627162885047717180278057562230985010535377789260017241180478178352059584178612563066456858478651643653792153174943967281288177965372021771192221030554759677223371579986792545585310427059212449406559087538276344760812694673209624289872447914129123674783568627161573602017341547053643731542580837084547642510448119759317809895092021936315191701562486420419029174397376743891648490921175883171644327315916524708579567460652358193427595198337096114765499216216523235417498892332671190862699673731316373582530842229542803488344234745333395523530779640808402597849291734891105457934087272048556564073707443966884948034652459040213833569744466090858262534727243710006934726086682709204314625918344872252458402417204894470836702073905777939413624034093793696291400625988933373829264116154737011048704430346044513636177959726308520264450877952776036987513324986449646933926124395133709235151094794868424186567536658803179737261048303423905369415304682762022040408871865602363060236787538946760184262989249880108991499470966674106105561060273484060371801116398437299243177913507248074887929247114839999283310920942108411806722385587461214131884098585347646567493587335251351001415828680822278096589024927041926819989486335620076248777102062095262907557587048382310200603089500305151569659031020025998586783403260386824793440520472340642612095281660377701726490077081587428089518231095483703514574171364831707902975541624827038126240830737578419733975120590773152627035631480676727987878680602311075511759699535377295495697010415563247618257977518666076395968916915015013539541816400387614959007120043275086808411873636738076756796408637779360689969946953014342884724420639324147232519927055076787062342032283552769281537590984841310158348714066569583098779685099482829322113417944008234423934340436191591585701172122452490264591986140524382523708631642217183107451852881432770948303253917960804062055849373842742062970299385229863824463822541760148480889600387308001439002994132529176030671872222781471744804154264769508647146876384519400290375361610305896204705755061176008084961313381241276833586702577063482171828713197842218385509166221123169234027604519174125804160383398739246086996904005605802644449653122639720286968337587626777280108330485538861492334876752207310048242337645379858561564254917350784740771275047065492279339116076249425229779850997248971290283704308271204689835748829364322816432612619500903276798927051836974318321454494023915362421385356741003108763585547345461440428089278523084705961538157573324721298426762910379694062112240802263936107380455678115568756701576867806689110096968961197859171719909016459731177225337110739998760066667962828197635571786607269653477532705919603940444372044750314441920546413018080428026798680644433549359436606764434918636111669314784540947349314044201622545556497441641403322569710268896312090284464132407864197631820146590000127926853688327931544223712817199086589339116793616593071310067969477826352783089825522186068293615243728334350395733304549582953162721173743199905071007983554135070019682658686997858716345261842264076941615245395353727529314349536274680770850551504211916806884729940576734055505945654914919151902391986383580933510968166761167584012341202060426649901931847619350188685931513278209486971232511433309993458201723504752931170052848992758422562916193674569983596874972347151321805627516121088550847232195691015187470224070453250219132722129398779324971415347800625593643738870424646114264532075985653277391729797016710680001248134240682184228642768932222596157380112078411817728246779782862624498302514030286813140973473503027179909857279804083042549643275382866704156550199342402929250111724377819453868646752744432632992409741249500545340068229557600241688473961299666196668601329517848008965169374135222733826234570649932709485342497926955090181599899064827541320948536649049032963754188089171041352808405705298950198785202529406314728654765263470399567772625972127291617322517676338748952220041215856170690920439917028598699507419257211679303642696619924879305035481332743640075686998171328483609895690798606760986309474434383434925188583659160960097878750903955875137224798946426115166137499164667724129412383651547610187386087228220044475110911064695018720057093870415598607297097284640869963173769881577357856089364195178203182517329325095585299366778113695720806962686537225860428622457907116431119401668555347890435069519554217437238653656736681674951355658470674877381277491475151244331654777019577330093648577793973081115760238711967590197701325100848512457258859522148993213321691697438225324841971887766277993140151652327544353373077927096257596140517054008399787758143402380630916964031401710741066387392484524319309194557018708502906653492965084108762867397119048493378314826344820904334642624650869284456447190737523403028322325696015363421304047910903035469301882732745654381425797728016371803239687459310482466241539575800474213584123025409295301842304972744106653070122484624903845734981792154989546274233447694076033391278229100560275993061233363503613589243206145070878479413588813332640392747135164227927205526731824827133531357704210678843926780653730748303882999370506229507021725131486820297502283917288889495573568491827920909886685785367285478210590595109032553556245351011964941755106939431888205256790002581773450082656248416008715056286910028352891850716139295395133571452613135203742219815806530173890361345281362129004512709576296875311744404381880678961127936382838290722405006664572302654337432667213793565238033315209412895129787272724459258340340740091408978956357746403951077538288340929368401006125920895457783611843438385709608095731317295323898694442340636677172945927621783404179342551452671900038432267137089643637525001772902684504372271537171574310943660235915611815580244429885194268243050665456033529235523165191269761290022414060054744169448374567110800040153817640733681134308600222381692888676539425924455783763455790899734853270837631910508920118585609769084520441106701556683292262375807146331266763061566285675317769060842737383788639961207952479696484285401160932851774441026235305941984079141335060975000186877128415838371678004519692089364050002484551771289264146974185361253091190552655685706068378884045080768977840505627910499013663844630453625909806355923186647197326693674548019841103846093495376594348777931444166721426738522827193223662880524992975453481121822579807866092862206966545521369443039881146243873043891768254579714818673892189515102928349405461661318906141703067500370800822682308013141020024933125127021928424170942518291860279475523966659982047649005617654821735223764740538433871352799179892942373141354177512620176009460630258234767148425202514995660793757232424852534161754597661467849848216085348807619224168863455013999747296577168949199930837455262400459478285815317390076111650064238933682532689550080510919783689962989690108371771829160674088359830961655181586950439638430744752858318954768410508687707346019876185251279689357220339144467809888102737601513145209279781132447193037214067570634696238964637541810395618409524497478012521397944030585841507558557623333583494929461952747892680761851337444611633521648525211346687544509517820547402428150729736706207586891273404318091287152533997573187796976483170548947828804382174292666613085986119961487688271386419134117435227718134094445057297328693456857964438151858399938657200551305463016732684348333740398665306366876246634103284905493786858735832188084136167158099206461662438250421078079205897386092057773552347321196328184217741422884343103187522807889750782450163352268117999101646371511529556401235689272395563293371688383977862103807051166665029364668559992184972117674347234817139950257282763959838868789369423496266820208051536517510582023103296883903069531412358800318418298577691233981133810757594721391239249758979730821142256223397916480579310142374010106079140020889723584758648636725926710013276052289858132266908256695758269657493928406078742623535964856505973133531099697081454789185944806240113532490071557051833473285283721937090335480133767933182954253114749956412868623000465593796610544280738122803287204049117326768383418177475050717951154321210510900948769378283482397069295702456304379337923884386259886999479961769322559861217567108007480445318830422307027188144130214705052518489895715579678672947416074698483960484721354726009563907064961620640379584569324119950461724269455611134633094562136841785731698109451245851333011207114810941476498033645313808565108599217377337105506561870521883968515118238463258599059189226464857416161624612476667997369208962173022693000412283685594268994758793269278145375225695969937869504506347137333301408823558966898293109018649112353802068369221605556326854895950554780966339518666134305965892602970567062008658215833706832197527783467035951111886700344738876529675292970216306729622199297587055580478308096598087710100817755915577765493847563867752748541438080947800138808076227367147132632532941145085947686295152424390615403990844211967042237713563999678247607233760722199933199070674505616684426330520168262028018965231784842290754175349351153830428427579684525140696110273954480745210136414909444864814326621765832366413870006880266533966794504051530744688056353427678034523301415806995058157322235093049029494524457550363328764235334303055386992167110432358115270657603351921579343253229401804571288567964946203957624642239544841272904487753953664367879472951465705114198542703712830711197471289053326505853553099780081171387608686858825054586168352855339303375733798568761109721909257190010574553503403752045978531655221745911923762466281331008371515199504023024121107816667252586547345522483112673290885065807463162785384072190943916194611251599103907885846623328434810538720486712749646472135383465812365623082238019700203252641845284252696364881449849965836652854259094301742683911938683658415980793535284898967813885566009157390576752115414715593856413876139366997098955579347082580287107932943893020203352911253372164179832660975268445837109776435344726481406373542309955281974565758699403570994582974766934735662838565211424767883403831315794534255936509821006819240367636353961746805712282831267334575771683835207691507156319975423117191761219180806826396821103074561908377523861648823366501036480130197773659995182672122681698069514143553196583306747921336151614995957011626632552186784525511530202877776129835370322500777316035709697073956091890246876588435202908374787586507061783795964522615953883147303573529801369256456805047967466331629950753017008316045263919655065272070349276004856082169805161432045856840727682157127904544298768801104417529528738632318964048512753015076248465771253884156182794317777176561812114158821456423343332458907227224138230337563541624120264736574142638862743091176672931320569028393108742980144227210028112145742620412797356389901066298031962669598600968280582483958088611167676079524642545748431568547624165960633883387629372288251702865716947053451604560836504036968240282517197759630821921778028339144654674457818114892646381265717068181301133622840092889865270729083602991537684711463092839566505516312703539904828135049167138065959428654523550380788800009303389251331431906799145615923112657647360685102643039253127724931239053028948567955650910561747390155615825446837094554530434178805240296302730350177284373041228073277110797804373742283828918224265524187000169399488866415100670870509911302962724217901453262247572163137933201542140057342149514855790011899260306566226221037750541644289256079387950283236055463166053607607079124333929533453017084765101440134704806819305632796390368464586258225151227616469404722364611700332962663466059291321076552547523518131119729622328928765624828847205696328925004747698495862271220160959739189259597313869684347266528061429811365557342238913597037706232578710552392444954710165820355806498546811153741151901670285332655491402108501133340307617361884491870154118442137108529285813177774127905481524776789034595910178242778200781977605982126630121589453276633799400267475038207850368900067883530415363482022648922920679785659176733502687233162861692411671972468480330862435815590792467236626141717306727008276329911902483179296227625583386935469512858375100124942789146739923620658521835084277005279223114522044635638953584432142044732408955220015182915439008005524528644277519792995719405678060449039219641641502160206837576353612427123186615459916293667446440965290896391408123555040866667887656081500840910281050242082752791525142828677348288166111432722711888594214373935259126740063697013325006707757570068230701953370130520736120476141529132104653858688864618157580505129870508217121823827578141012067348465282709690910693077690082874607503923348551924047057977055195935977174203887207379573516178463520238077428796766833854259780260278876325823127107483129219791281011645399843765047904390973468007681199790905131526120534318297230690299417403671708694515161788089493563714070410855171097182196344341347755060627412917969512575168690016610011849618960909246740877767583334559997107139523314626840738036190363638002266914933109346613474245668147695992774074914681545421156381575544082528991691898733678562630383706698366212485341200455254716120461350611066712367760871054183515659123416464826013845229208205502670820653989799546444557683495351091891183010725236380871094337099559473127973568185835680999167861037179149849341457143259688232967372784029278271902627557455415843296280260144353463428149427275108518496669057225761484694116221204797009233587590736607909189648580297666986366109334055329397829248435700837550395614043888714003267529430504028765541115335535306692355119221905198804133129603020908115120643519316539656002578241587534189206737324460217362375336873387368485244273025342905009039926172131307831332706089340254061872957383533789735033612576322645990137549642866571482395279110162949620512183038575833832457278771362160087873925605854353467311771032726809378086989417785472994304617532883882968729104003961830786182121106465744272643033022328625955783683938577304118041810279135879521573657278569875819172431135750000406415021117080349003270649170432170251136208817697264110732566422454479399994104763615192742308374379114310133260040994096987970474423440199311410779995134502002592749922892107333445774790819665839533551613764912559841316440018399130157636043417108516825804293760675400299001232441747462457287149013878177914522809661246454528732899719934875630180398905642430400787830955183397007634078358287743184766976431909018636852774366378549339035389856326248903112083387824162370066552263384262526215589175067286833910995413310020854903173908159078703640251108227747760210580482807499387525019854509832476532505248472559898497071439428138232300720585037937568331483079382935245748861830197884345683540469746177507187073223428881929147122574113898217627242568632297466747563444107550003668715082333798853452815961862396817177421088567145367382225353315160723150480228935029458711229556856982372744457076591083985202678741517611282114910713057580880054084290963856286190714124113511715517096356459020319683682591704227423134543510524538166108125588185234373524770814950513203160771851540857132457926075068482191287880812489711389221622524753049847112564486980491878772199874422582891743551848652755811964785815476091195800227578056479463283794992095588717131114743562945173113465931923636052240109707865492900296704638810375208075061740581352838112887310208913823200273757908720829090930824371673760904223774845949696396666481468921798142596589168400422480504184062338623338044493727396649692501020054355894510062939662998769775346612552997659450141871054486406297155160657381526908832712183150910617005660086467117228893870549745053715100114383834205191922135887617580953220441817530265531116464147213998362096165753085384291660272453886133424756631095921618066466387325611971400343670775742321305464332144368188754518257087023875398870297134514924644885990661023717262299316835127981176842086188212993163133559905078109117121187953531927227436448642152865914662905278821129946291199670638505088771300936223920512558647196654272164160253142064199415943035619118935439102780239119853064117929812946246136364222030499935726327733159253417507532660881310925646684423997533358318765421311756381945807315986312464970135999541791388630744595922930020424528085116778752262025864208328133411468985469549770243717258469855245326257250167971227749118370467559714043607503817311006654234629788765355512481379131640038153779132690627903357172310046469475047196812766844599851965515053482339509185146430723930103639009346979438576466194747030762975464781419281006970921092300256387713826764098497278986956194734879648253590210858725585116020266894208053280574830847175081473083666399581829255007775833820162126602351350446124101165364810510042884868850451630960351346669700978673234990636104734425487612769976375521314725921705558360915943673634910985191536732076520754005326864258907399326823108913229833127600700152715600672897724078741729918209613690315943969290110963483391856298876161797017061177040164635269405868401172996458543829936612001736616332429151203259193519523189216134324435848768160093120991259316874698669647279096258484478536019445745551977118512031369333944343504577219642477386874646980021593638506170857443239176370652856978459290723781065909703799625974315073707447017529222958436486532628470746382350591007371102989933226873649066029168279945071773480030280856842578492369778764963600238645103440804347013822809642723166871632507094579802738072759809539713813010165187293449553197078178823873954003680674563773794991628176341832981338872244571740359453632752721819792721069008399266235888301002412005259486487102115606421356268433811351680196766842576963452167945201521206266698662829726690393129853099123954495642314469774712395456515605961545666046157135400297114800065698013613244145524922050997088544007765152659839075279033254864400298531958899313193771317781293405945008945973234968377382475915004982913824246335060888941286481334764682005154305327526468574271986460545216631861354790251455028678188629695649705523048477893075598733240148254359437745366260595369109960941874037715537529811587594333326880523209560504047137754883199139709928849700356218278302976574445480325456739135245766560913627554126977682132947376982335116115438445544498918922472767883377855923388376824955346283825392753356679822413787055301102296445902919115254979888156058766941824622512091949692353649464668785945542223363976684501440349837033471966547674569892406381224235380082183426571088381679760949421092444499864947257388558380944866466705411060101038855483224401808736164383300019599651925370381313542461375116416581565223010602104358683959448713871514295930908479025445911961450922532360440176153961065583830762131689274837734072094427681568389637756781020465037149074858555015828170872168428454329996404977696720444264450180666004373319206008079334184374426562207043045148092296335752532627993878923736952394389759728211302871247982800653998360948460089387418724001018353099012087560421204496584084932967992409453605659382385070479133252427875506415270176980730122142758415054120542480089039003653999465938977224872896938532473926080192608629066418720735247010728588586418881826746234383481066188023843609365682007548220245251364036177084216683713058905314720540840866056243196726806946925688268588402782451735720552199671607050017495919698770571075336866318447425396380116788611043943817012800331612003901925623172135053892763128851713447567181572135218037648949776807732055291542112033020702593016480245859124931858534238848043292142275556052988074511319121847745954264900191411637147539930445957882240941179218941957255171805993227592569186343980553472506090180371944652362774515873540481923424127370292256889331177583766535488581446731640751157486999117472665269133101725055749362090726303265592206014346817490211009207231399717251704599739862422246944464701037745218546861921191172214386262036908030077802861498606388035884622464447722210070016838926234466638234600089898119825496298546221769034489419254594503850106235765553709972346343852964992573660651294610756830874265765030889656473465947174684496772911008577385279673516771031427531077361582845764772216318389778242222924443980050959656648049071948175570743622256843767183490484378020389231125364229450662415789808970129850096811711229034278093976449834403843110162502291894976078686384671601371223821111359572426223504956210519148263282920854345183208233872106262946324173317542688651648747055288365359769751583608816472469800230557565447392774898988367611368737005173822565639311373297356424695149148166329159442876847965270691510840221757398048028330490593727256187123550251899676652945779857175160981928138650159313834244190102061025974685372398724728873117895354804094636807022260255102933084947773986775405248072692286591643489721990219785663283404290199241114259088022542661408739402733643879427327817821937044601253955329147403404973867474714735523068225815270463993764890115221462603020070724797709107226979577826327236895148050961759656822716947230019731666704737632819419678849163999602881983161136015859112937944639069777254307070344506090654049068131089136576544354907575414509171587254115157803826205454722445704098672553701182326279725321306489196860130773564723536453061029031158476368163476460193318835376201726560751607442853686222090641820795577811177190562442152387544555738774062536015821625813668232144844638641007679017442706583754915840549010651762818367663702564211872247997935866482801965123977711069226781284262014894070403257202076584632807846206287528656093803051687123493298408836070235598097713762961927914785394469506756603947545111998799271991877820335718647601116433117096074384830461230373899782065730547443322830350174568284578346136088365325902956539240263929587578220945221064293268888942416268630969248965094928647795323553100549160799274101307729305454835795467336693885647280819401355700634560114025464449312268393762028998892976711853893228685933803363160021545288997878895572403615749528213259557598597992058590506184318681332993185915488178926700020839330253106340260936141155115041375711739810834400331554349142039655293028951233659625359557439978266810034853075355162036676781836960727061626428559986212791081280714115399810063002418126558337075970766590449432537892828449619859354960845928975277368958663554792635588187298694179637923428342688033523724426365187437142317244410655309666441176437836982368777980550194795005212391188328919284875668554591209649772863903195429001743846629960805870081101551299589176144369095301747626582338844450774989849416470636815360761039217112919948824481072857285651177926829173441766458540957708126228161923339207294017572894827791478263614144569703624023869452396138378874430568761724558770354210527549362659284602582539905114120144728769366228668390651815099302300703384541574719979837687471234235225300036356774311456998327724992385446576252151232350118737595769686799233070731742206876605873437408543753901259715537123369173038148920127950429047548194619639363945992047211002426727025700773153387372670758171689847832949114195651934562522810120860635303744428272264557887759218885602661140529722460461068813472488057677536558032826963837206348005646819112350312740100574462470437583781982940910768884385226032061138187535664549981816363373096490648886701423806038697718764742734507152148390628975036130041023195095468002651658044576397837474645497551143353545209912546686579332277055258072760925253518834745938136696510847373158078578775314194592533395041341862300543344899281304811138799526651672828493266815950426454179377691967871806458748613652918865767747604957995451602892448709876922808751538055613350678278825361877066893037133481808412915550656055770413672679524900740289163046872029007304428455354889215713647511865904437492935805301926492827220691624837834535250252639833636989530085170952012484289718155328227169565898806167246746282206891062067644200657056199822722750603679265127756656591206016588702097305545222418121649216526741182413631773090293588865703808077763031129765740683229765395781932899263166105180751111255317800908625440294604620751877939665154500879620818146160428312760801458507202090576833293423815039119658597978050859630721179424811794578567884136855598146567648379179274424970489953354320872204260166400927486199439017585718213294118141487669856722796569347581127319370907503904040590345522054875490983482216296019616345110957602658602462294238119874644431727871720369706983305662124155006243149724430643008516226890549197864503643772161993701318710086871411028699800579430058980955548637023953065459779088093696051442689938868397378283935217209643592106010397317442944906299799132865305206732453857281823670285823330990131486899848444274367249210592207243470349517382598918772702210674206392107626255157255616885447312287504280885288875206191154993624907446828923775635084252994316903151744203139485268142245897244295419182189091449245454096905551854756442593103804644046450967639338432113845202720494081284703881203854360481938749875522908353127958816202157380208434791028757569123000566124654875431775255301130485863803383565678801773654535008496759046862901082965325402000117775596748413946378362876774485286082276046129701316010874177078594117493881663253065243549065661416346963270332151567275869282522293751010210417826683317078156037013041226678891395493357536362926355618220596632801143946916041184294553695866431489291907040085980294709834157977488409301216541878167770106464546549989846741129232126860296776201635016765635146748012262222915049019525876953411917934704166667305942668169652919937212828903148297623771615923093927516580655508990225526846546514609337299695051536823632341938166531083374996971180609282425266860749671884226062534096695833549136327816775286391307609914710323330244608062234429398655340503438676018074295700389696281746319993587266504930035749613721476938010569145226219312793020681902825945195758598802993993310817785988324432068215878027696139885126688041171139126720555062116579294791211727713288599006138387947817395556554220107402752370936959810431209789535292009754277152778505838584374812307577358153359773730035258127317799932072165743470247075205718357366805861793969514652662043517493298755652665776103885946921351586416073232709318563372547874836478456533112209521877278576596854919752161634675376373423641147227324669754282543484316754536051112070997278650524378464561574091763389810643309639016062768213401244526969568709517177587721062105377800099783008371457309501728018316523718816993493122907426917339471772354598416349504252894099797813542600841643612160921595650706013208224952392910742993783781272826397147044611179019428457153317562508434957446028226030756200872998398345790766160511660757972489876314949019000808938374823749763243797723174270052550001398230044372080296339095218735031674658789976228986266510505890003266013899323506333318406794863659545951408345110159231579141929232003553500045602381800363382195301724787282238018875499490045078298004426978218589642454399206870400812595524234740565683605817245990479299495746547043181250085240782903020038478008928036218225288046795375318799934494058207689821324322146414959101299768153747789545212645643580223672741986215469232226367199030393665792854936460267807339056846200492726486871951577042713407056275009161632871033620713710182664398917350055798435101965755566876447895033739895775839895689731890019142313222462866258813839602695037944338154964713678390414020101187950877715465651124440300352661086386001872838116112786631906986735836303990057805546844656171132775604500881395741839652801508644945007730500964722077939960656503739641988227296184925303317855087558131511830461313799700812270107887795928344212498094184253945300904812534224899987208086221525965214852943594697600444115602342124890020921762710876199688188073827777350744084686057168186206257355416546559202702843608320471102429046571114097133984677233663216110738107615859196076875079154766672806453995163785069163063791894373989217924986373983367824367159196982595441262496940052808191070650845710515444377507580259280841150431142140488378157887890712769051584263261495492969978101358163050266019229763618295648901631976004287862860046117863813964704542118139321961326447687305855521832663360771402818408199950623150305974047810566915569684505954319216119806330179155185561657230624929450950418788213142838704321909040057114515472813073680655557026161900406777037678766242850530836725756092158980277869664581470580002361142654211227315700547183282116413467250865158384488349749385564280730544560647225772164127673238180420176821673653139013552261643943974248278956572367074146267969724821719250178095187203148573306851035536184209397685916474004489527630565188163634768499108539186451265157479129469162682186405283061578234019793785064407075125203386827053891030611001340351381020872825167220900752525476724126071699380237140842843925870340040647776170028233009882357998513858378355827313368236990994327136012638880004355930310579306030535329746518826818857753696327879911576738823884733113045605711762705703260804511098138892920497467735586210263837362996962049033061604925917101850152139242946549584778393727094580371930323552314513481456087599861656238870178536109045873635539071996949247405758241385666504850370848380893435958132393966081175047424395686253747486784972481304406098973095711624063828862443349849910295200119019920306706192554109233822717963091459654844181658039920997412471979006063942656469970697699529260415627381017863867943951900038007352721772640512689614645684341316352177405920484970861821772992657173274132000738038410153818251534011935637042666763428051358822347156858574598412703655573078931441149942612640987780135676366439583732842229248069988978491451361275494828168709044860250226682916596804053013167195767143609386098520726550989202246434885310534631359134480691388434055754383055705611502396541137081732763457480602658490425155019864152336173683376166044776155115648703026532919309728907365533111128985647322859171727160708574093357760402067070524367339306283866587843307314447926650686434731078069358838885963218921142842683016947267525269241583112221927509006211772656266757131080720066442656844904894558448573181159253713764930469736055457544481138271132135657624411557120542257591177626096348119132499139606000707253648597738564948697609710753995006487884958851026948140333977311978370307341457546697497372116282560529529839344713913693792909195212660555428536778410563879537195116194847713391794247591904523032723589709986497431334344565550120544353712574005541192998757172535777503228461508499970813813525554524952259298350838916363706560339933045589143692114062803926907351199364131687945663809581856304779506138339281634081042621360400897354607274903606892111212684247777234051742938662359523895014386436458981749821193738717212593816307337025309366477792294501758890864852480400528268858964071729750530045418654917894879788538666480655798652825860653938330845505231479340422584379225713707511701809462981113563524412994646324458094816121157261028511192269893647454334767039137473147879224882927184755659229461914725197113028958007751969815865834523790759922612926916765379701319052044800818183664281276550054374191036616614974485359616784125933895743583304222875809189343883845644232747631827695652517429352918441917825524360739568190434087383018355972268293262265865960839072162334998865908709837772245272618339648355562323675947001064685733989063618849101529340602857183443613760163136595893903572619445360031334065386158205667547826276979406610209583846230166803499970896352614397813214389279037334449005540021663810019091620507654173165977799996754059364668853690937229229502894287340515423302922019437872861273991711273961950703180910678558402641977404116921924343621589303225479138830797447323110565745900159368475953958249845998022347294676978811368992219179075558920644703223459638624038520529939911873202697438233736007127058113286500254701820859002603288045294306505838501914288385986993999898303231527865415961423176481782066467595195135422903988989720294867672546508847554753836517372656876519023932085222248618702170450532335756215298662606263671839091962405754611120556043856514513183307521518940729956289434323004747510336790287301906937092174212950102484616046524390424331167026677339879492460537383278360498814677136389948290656399329238696281827641935376942366765006159372184296070760997415067148753402629223291291038467743545535346862453879138733231303252601061539090753343984635688219428288624395550225158498050035655574168394732947537440285303165936432286038514081857613601038002984814422753594054285832614549946086037922767089710849872495917814841445231526972058918450949748692238952714776006427949312381825716156085907765948761445137108689230897620229395044239966546011019586265632803669721199687577928067960598590649667919475264199891715423357701243998421538205231633246884393382271140801021725340782547811054539104863672682060895978308064612775785429724225098848113969010950579100239357454488712090924727401702193386715255052864760032180608836373589927616532268693431879948171673192114461344009492575622069595744293674788027901914302641900596086036753042955842639520817745417424301960350926780293251380814868437420617271363775879561785815791316722074118595836138986186436322441099385742985501707767124036947042088855690042163298042153337589019788322796717772927702296200482553055154312263645429610105886497930684369958917926858622666221787897111860643565621685481335169826133900347299740579404429577805840521263500484612210189888964173032336795865911602442058017689340345798818390820511980398351126093889882729450563006653224868099049340441750673242252780759383834271090268081092513481563774779829543042825675959473174727323307644761165010072616107980102027030357405681101783137223761249349325258682113083133466064986455479038695940236754919221037914713910497834710050239126496301706211972509256401636073715176970767932071565753066313046461561262535332695261723666623597770656936413064557758975209821862925232970520823158997910480704077598683862941384721447713908291529293267773780194504582208639146381837293655714106527053057924043754290676069708849366382559471719337487279881450756575604167075033859967245042091590961100727102817735822628408322459150388335721958215375887523433114958143119180562633997473317264192029969314957328935481351351782135083940076900919841728692805122164787721901293676699244523665629141976301214483898386454978362008920032386672334102239732391677458251857309066102098339829582263227168507677997861086426513956822062330328529770210985706941236251277460229534450372690154769907263587177751542988271838434239156834071444570329903366257483701502850711371916174749397547244328578212145864983474699473887215924645504209251098907417038694343408217169823002913061728920264373629653730025973733801983998091053699970819511633892650341649268910150909442891601704515461911747786743795445835191815131314512438620060840456977276614585611504200116629324183367596498339897114650645057093439167314551794611466573482223037544613335443520693718291880453391530071423868942152671728266775314249447925897500369950034327003270586420373888273580865010169546315059694351569803000900178523756148882890777848370337979955754854690067091167957369582576465630339640577506537057284481094759298501663082137821833387222242285000234449250422534230145506948672983269808713359416647657040400004104334619762738670946318421898136996155972317285047715145656620162420674803722787111794440223822370063914741523293619986074144526456849409032728972944803255017875266452920953853659725105311215919487647392571090817585978985055572110366721796157176606165185602891256739050420132680060534459068719255063672653880537626652317533491149677974578398749343766056789980989183911361385565533217639007454409978210257004627625212705529967444499109925771320080791778049838058084136869010544233358541566512784873803751459877666914611456308865756256530685542812331619242430867639745477601076531061565964279974923607680974364299923507276925576222413755880161695829107119489432837501581893533354637197916691546656149826868592926993587307443787451044152690090607070226383384212254461226200717265183559166640489769414178377954913111976963425463273382768601925701824327549282956076260765009010744471215586441194437659628097857673450509080613215460483780940331167024031501046311886282449096380139856694725148426076371168919155231503468745117059579238516164322980421688887023135785290368310400865724266135050574567161163662160516566361244808260839520198628902652086742148931112888845881456185274670213400496773872110999424189856792411342400746150308082175065873117855619115730227971538456760171248962083640085050717845545967390867962627092588294940243974192570721317645522552885284871585207899522513447197201450986031786381269024369201750141097008867412969027003086480953081445468922484932649654523810204005687938219948721950282728194592051231062734388984169575325775960960315135995963073944661093249969692292555567895600005564391718243259874271283494392589049444329175314357629212186050136659370396946260858045165154171676294099792193516332344029703540902118742523041412730670565079677060237772232190772633148148487800431043412566484364198091462818857005203020283984588694283558354940372895641314447528018497278450697991141182165490180478955609581901431545855915341280228740322321294237352960401034179894295925297331210222939268618784100559725186739171802703985022950575331958644207626081044592884331042098617643001753557251129095948102546496773672763591776193569724249865055030541333558050738587105954071758646008332312011132817668184760688649766371737022871125516631021869436441045422475561867053629855961463609382594563749198078492805764124658759623372951817732716096425632249532599985225672316806610912135900954660518911405727885420980978746750946958808293385193923047845140664567743579601038600078431691349141879517156108793841650328141753061214289937832745002225543913963332790775618821385244790392527412031465227849022450977575940559389782940124488608379301816088098941607236057058392977382415075053602519943278867468071730483611726678517250848564243117576917424242912939463453845222560375312223175829755837779688517585719897584348541501808649866792866511997551892412271071314722222863401016137592524812577625325526927977554022867411104148495576438802825761641958090184757655696238832564536692720052639764003296518488941579533396301205850363028152136207833678965275085951393650810683255636585894646123211448090834103783799905353453701347155302016194640299000328620522364717088372307442475241319258501344407827603919147883563904360366679801731457179387428400545686399189694964776973132641161713725496325863959086282702152097917072337810186165572361638844512454116390748589212786385703888458517379000456443355243300880259940115840884521738951020140589250687278516198590703026780533762809272171569835897310483782659600132655610401788248165108935697435083789947995388637633188877702436124898516221447169074158554645037938867774638270838358732914665117327827092282420695971447575090339231102402001998877181140665598381306450012000574300669408377674897070449618729644115649129186008035088300019089734486590486723047592290478412603906684064972479110793964182061354850613837416016140255494997178835606042083290652727615910036493364571374273771209225476030869005593944654742829652885588344692509690668530136398788198028534252638813576763322953251351099832963628657151602587962381289800038927458193047687799470678065974895538434675506236436564572491793369333261678198679337908051435655085304089385391294471352004862009524420714005617474653498471884210806237266047201842947983839629338834195103257562436774427175171200673676373729578038398426170728739976194709063897299059601630985665462267550332396488682541589855719804590925091193002487083411557393426004685086344388721921409958633564165111482767523197515589339858114254302621848764993418574697063736814512667206198688894639869959460177491985398617092451626683789897928219061758038042560990173587621522758219569628852190743270158446341785811318045151154455258896116518466522522823275680678749639694585398705257058771477309676991462424800843795251265979845705366200129408471102542075138889864655954295417138194071632264565964865814418653196896732697384719872398928251485430554347106576770626835911928039579535673655505710173161682897150098283815038678733293341774079199495853510096353979561997354897066270475079922911482870888665949919224223510856501430302906074227120687967656337939868794689128857744939760678518069474038045509796494669591103777619853367782077858485274772616182922034439460751052107148265157445340005292116989164386677610941872893040646018699242398476940155390559942278518780318037141459139320472330820642725924981780817846639129381160883393594083933775276886993657589284368108153637589520423607569112114402526243564804523306820907730237307575882787339286833766994873346025906533740401619196364692760656581875521758344001627183989730285469532365445573985295497496179491459341701553104542787676343350613707318998871032588186717363980332321615859422141073683884099984510643387537299513446057511674656042036445551813519835251505691539256871438270792058584559467000696023993657122168012941137320821747353336248983926509407776007389499365768255962214311386109879569290589274127773520987062292369529309907330484369847309143624173831363527655940526695995180209857290793896913107162080927335974935843342270454878963259403785965843809523008966904261394919304938417344399197823135549815507102570236256379948060534308140030283083793162861025262290170051992526173192613914594362329802681656230971205107771361317303982002734084733591442442212506436795438832382096754121449521258697197613773598834149559605922510177234533329454888341164329791441850244620386319871801983535033214386398030609610591339492569422849033001227451972539755576970533014513693118328086581025121930449150545261402590576454793769501847899522323212339135283385911785022071802254667114638284837339280987525020269379440212522717663123192252792501600258737159969960313955338651974928897896105290045052991247419362629854817579499671755937987045266176417548427734029246875090938679639465608445554030278795080438607676715342054820800925714866440826806784486216155041084435255636589116164347568474199269716879179982260059459951209476074703141236096416827039684889483553703048245212431341543356603510978645849435406074287451341419004634272308007260829977025806163003836306000302048837930538049811102372724718518700268345459198177586372902377972068974576683061920844628181698129184696105057675995876883582045128307602617229557864453338307460449140202876162524774285324318872334047724052901370531050416367738973779667915460097751571107873648966351006462212413380128268561454967666452763865808083528831070805549425118153616688716596823078679945297241722741404451394998530065984475918511380113832921673774992888714848775023064125556635804552238801566547596810222504029362526046969029341563335812412460309178462199339182346383665326021767851214624481060930683285104034116616520373485908588481032845396889156812435991271630659027051172922126436062267950056539635091182768783667648236517429162210548540815233988857326812422898291641465440425357877332458253715083748993122686001463968991574697951673438506616137832258222894003998841337575689309473508471429798758193603712700741576671148393157567732616502065986844336779082796702514540888061740535203941079786239794096243163120107798084009160006115272258868319094835681318001511798122421016604075312267637614052028517554321472086422537580212255240286141612422929837261626510715435994396224122932748006880967404517579366054190868215744311888930889569093240371512973722277101503812279757421799716358625135878408702362720268287371586686544252444796034001817026481188768140804558121966385458074852553639438513754064676128948125071378320366705676938899279503696865678062399760641573083176290350323819879288522834346844703648134496010029222914825525015243317156792703473353966005630903922200627195548077500915361733791326970191400940518309038927977864140953901793464921691753920289470915019111705010891458027001329902804169105927234887858502251240061729393230048794770724994876834513851596293666220224659822120557800156618861984799320372732126201344433154953265034266024212030734723136320589629316253558330588723272707968211503166255440760669429229146556717842027220684851667986088001660215953385813636181540981238109342249392083625589808211629362598667120687053465228107917485703888234550093651887156405382042237057065853252577113549386796151643009567758478304162526741113680988592874228749242830982170176108825391364098872663320995685890840328378503305979555213658066450305276593704791274351440311218158918108948679539242758167327847227444783974544753898949737700524119139446007771402059315434295493741474572442269495820314448973875546392715886381579430558236122452827389543689558970848324932674140445918677434205334602724571883490678794751646063573638468321845238106424287721158460879252684728965972251257034408012911144467891272334108015586161238731457634217037564577810208486264236050465451423009952220484759756165916592697819304495134501381436897163706583735185256867717181894093449624596114819308656862761654538552898426382842245063104130261822290782321967627914983281717067441685047878250159863958504772911963662504824923848450153653719242892346347270213222847499688706020997686017779989784252259116591517546577779459967187673622655160138713641431080263516450294369155285342079499528843365850344715182699385865574460888437905698129475895457714371942885450812971668666459693172080432646023041886943715921564078776686363100066104879207162279099009683533988153419430820995180677116713070755128728090975211890041359067484531677506275790228114782489201914246797527442765190561501339543134603174988484959547670457995540539763605403741566191413574041986956233172938602465018010257932769532904427292657326905929990838269941005385825835081421140504030794951045965148056741214049666627238145309254961911118003595533255977558659108738623503805391439100736468135610949600695366164371519346154782657925036815945122913632782607448942853703044360593101510899669407716463266945509506373189415970950746086279774546494425470614596626497108577798132498693019495718439342942006654208773520741044128921944768456789677675597499596394994718970440952459507499851923795682773309798669150227352906810370134670838654333278999873340075284387054129345286287913928784235051783783387276823174671932352268088783785075853372818401648349739148021313555879239978388940408652139500396910184868629644988110299837135312817582222805294355508246215828956233111408822288357253160859958770933533571061892026789074283346009490493089344562161182478536453384165128466849880727397802121610137836653976818070484968188166193384055375486426742665861655462827509719384188178135633632955084154988740175143611101977266615553519713987558894856865687171655341381513658125141956270284665867875530968258409201860202595406229188039967837402602780188739493875352769414947040484596567823160608500989801524475634230614488083535897545629506338126353088439220632459237058564934137834999606751851280543640957651343938276220314268076432497737068245301188355915169287447847325784189964945358283292860238329692923024096011515064500610104699120959290350628953846661129422745857817629935682252619353479272601348970327528021533684620566009069451068766204925438131271404660963051358264535176103995473630195584312587899470362700134141421130490972457787059213053536929546216435087690363925611393342776690323589977140166160708320490148015013885355944985758747847278738339890082221071599150718151129146009676348149931897132130467525476791329284233263939307778151731778753960841988426680223080299010053661847461356186428785734080849686893530994323934447729568749693614953761518031552667778867210578365297998606641204934610161991720300968916405618327655155052459888863938118505321710022502649030693565788909840790654228870258367111071198851334654106214369893182008677744360849667026129640042546654293704116416169991739533857366903888278129303889261711479481565081563533563150963839346055653247835547542711556360483648089296097421574186074038012616987271495016667307397102605178153581160518739822089961978114228473720623232557083134800052344766432152896814174007430811623409502433800578416661622421801658007831463659277047024200238768999937085185824650798669017793246443830359475812757355644896639343818177064272136350952630664463967452489443566267053155440143910661028997938482401451211253132388246361118544626437916201367344771903221031265590416303592757315743499460131535633302777683453771500146101372840314732496993723373187773962893221794353743468018582617731325288652091788594428945653638466266693198870996999945973572375737022849620953894284165324916600342185710456573077305462317402938017649420653301815801527423356589603510812303936871569071780960392217167238652109346994761640379898991901259806677544387482707207212978508488986588715748544335686637743501856033824109337329299097408331302774169672642590898463372869571650633244396672519445551325411583811227971044461457859739905742520941496006095606553337016489787161865866570599253997905078019263467961837083420406586425498939355703616373561268746983188799961530504996799944638643355504932485642342083533607764950468214120622520238976739879675602705606022165727607496104133548976281175295210475773641142803636455175592140573633908716994453967393004599396423078947360788424405505645779684105648870121433343224059229046823334702620640805739740159754373346923109431613571289123633869802211319955067952262755492837596832581638839773402636489922957515666023905897057994039243266582736628951591744110524107981579710525570820071311005426774662559316495598409870540789975582631726060314471844141600352159382965273168772126150432586053524515547861778179692682636426006965349921521433593892543801250018226396361903045724825549074899707849285478150331558876579678643692701541615770187493281079607055092019098821800846374930010672295480105312298672705089572173606419985551061719618880756245335684698507971984841491910596185242463937477781793400309720527735280324619253029896810805929203985782482334540840503980825069649249275988722541977832648553002624903295804232692607920474076493854292682141216957656706427294082886725280249841162842197678755815984538008900764814433462650723122518303331981086192800223943719581254128140775873059980908703823225772503929656928573716378184034589699504242165335209367748208817199343229871384218817396276441481984739180516524976041031256074630122514387382550592493857761075726602261899879259503556326643981443921411604007601487326206418151420356497272932532830962105336476832426125779771667570316792369817970108259070233322830170857704400971997533839276243621281514596873338664931346841385707029869033728115801134757955015591004939714124522880414784340023731663215590923357517243848751236326559690711156028554063013094705285222058238067139321045103252865604019371175629974892665746552624571028785252332216341570530283237191564721859777252625283967482859244534939735620189865870505551891364880166725164227029418653347358155567792939615741402963997176586824371490293734897047405839979120958464179377305190768736220592638892835157146109671539031234819643785421064464101346784598657564844222536257479706273885822538924590773597360340956137845303635865327099862196788653960327892274727845681250311867912028439314469440685269697727677003145085180688732726181792611657585949691687650434033303320603530007952786047462679387763869811129211368556815941239261804646287816534218903205844362628404241887074652630178226107633084577365703707379647433755865749712407478545012588754762946850640343947495105484132588952035209817660781151371031943499166133677120781080807315360203592074806589625722221675063991110904475531595301602567981521972613935063073671701775310363473168051313866667135119384895697254046152629695957637397762385738629931595272167980475463534101846688857986238355720232476057385760019822777077843411748992311432749880677911442533133096221823104835175886695615692263586798609483547576265580136560363641579028742169430301087716253498379504906743459812657328517104814930155379848151524761811889099143052544779548045439141614765769820293207748372525281247486790277966534257422612486695571629016672124171957441467455891518462324673566036409486012803776520809613435564383643543230827582893450224981544965498497021719714437683048592350332709053085030044447634487612624405820243366505478476228510237883816508057725283653084751175583523650239880021609200716202993142041891482994046186493244278576082843157880793301134948707395903884510098861297479168536679663637624903361007260769043016148317240731668515624188236101860214870777133603309692778288457072968978811095529504630802318354126468110157142050106022363737058758883412970366063585863705945692271622172715269567775021642353147280504575294691312583448611710090278529739145617098455410092136070292032684354081715672093078223427733454941937462763499940905797814610614918760334627503952524250370139847827848875095607583714078742302357249183331135991314278475062160211233788394787173818214855959298211106503687406466012292247489975111247062251277142767142770862163899393690880526738282629975356367337524914743395565060069058271448107040338492886858098457016173846301047204260244091460962313436042952133168027536474063836050565663655158948230473774846107627282538201214428537171985160004135339104488299126528049799320313792324018946338477862251403247520453608231025876905443271656470901949497344625409957915085408092669555201018213097609631074697524217916958416142635518818776922686970985482524137757628174304708931756772918900072155401405624447662627845552176073653111232872276972899226639113118858293546005214221199379186199663619359767615327000320647987485482710700613149835748019286266250258580528934262155886251124188610096307105271563703307805242595505599901445961030094271268597756917151282127418474536929921151549219406604140582551056261715034707006068669460428220777620122927767876093801038780257313381950365428941183271692056647360061462570892420629967354497722967734750033316037394789975262476356655038142398803857107492311955957508496320184381878646544992122819621419700240224165003189219515566854416928685565965376586920685975715831238270919605816862051949089002454430672440185851415519617568183853690785825839801804279535655329447507395073916137844874003538759692182968861049451882491073510756208266415025004365706814743239615414709321037962340120538905767510475934675385498762633704637636176768575661652030041769846515284616374400534595410130023094706067963029045110322750366395966348724052867323959307547292392111052111852939798068770388206184951033523515044943990731190710746158350302554383654196558691910431350031588530084004322441238999198481808774548713770362935941258108129292425774482863416572673989127922304219731755447135730879054440740799386059526419958271597630546923531941112396363526798305720928880336990309505782106561082038459024738740758090423461929790680663123230118127993928488590358736942903727541256052340467144731865309738362030025751016753584554607706695124715863419368615364711303199221203629956688821866150063321203806349532490259501941783865064853154419945493181597256361062682823324790502264067192512056884354361752350790822042377426295704224949723137255667845057296111714847218145899543609443719627685991651783577481197833619145901221601808735364158458760462379314759784851567843512445272723108170105673431071895521733788580579122943265775018578889620566557183237948221104274641710748634151905454507420244484628913654497153104962147915970315602520772525197490810444323675775884091748692843063469807204206212536402723144153677590495148869524310344147078144982428564466660034899841716537634383171375544978083825832254053017027313127307490010867305625120194015510566843088967277333653735759886573597050312750693287794237519722047777406836316876076695007465069189884478735590608526833259419710383263662737223111799704886733130825948789642904947494100381694165825699595535709037483011454917120903648181622505333667493198993738785790476926510123703106874782954171742115383344017034036957394162866612065442970584189609815927011834856191119714460453657094611691621658829695472161891432642814478630804252725097459429941874642517421152624640941930462825190426759826804042492265419565141291027056417664983000488490258920521718773624296834211214033178662323130938380345779355078621219946443050219865359490487545104741700980912094908441957708637521643033231220998822138050916472166767352726281421780579395406857230004902459752218534855784000288225388820700537195998015441700986171935953539560397329998413920723519820720152632184670778180692408742884470677680634947653739504384024349292399359448565773729795227779949609909879330260692247575524136395106519014761281901308003061488789531221300840795082504730571214044131312558438520535623166401653264322684223368287495410793142699922362392870514386728120400702933076733153772348829569155918651465418881437802373834525617210874614803551357264540042491026649435075442630820369204069245247189961391898718760377402921266115542807628771124729100635140228355949098734532777862705278274914348665807827194880160810578203015191152935099591307679595490468311486388963996938146485093369636169017366077472738543408040250675712241058447594398457470041609249073577514654262303530584282606905088950009155030877267051005956558766171321434556552972126700541613919535651389612928740160908760332535142500124950073074375992904242784662806338193856108751623296782838096988844945685557942532814979435505511790390079508436350656650486527509060026699797954841591009177674530253555118198370544914924873357101596119312205042322286012493243126094597672388692683814327843047280930363015688010065930182088743983888629524473894589982741922386050370177449599967016727723412149435460032982781028088073213689528528329051966102716190444702458908460428946665623751510616121404832022949322222334310935621492390134983446531682955674815947991926003720078203645031031607147589806872838756005278679316814928590584239415158296680754485113311975288556764463579490407084181294436750547423281601286697566759706688494303610848171562616814211435562921168486583067304792349422082374267805481590843643277544085729363432974152131554449125960553942020652614054463647718243260913610953691411245941887273858895191933182109707962245098831997810815766932267156097165803319362097782356037319477288804242309287278570510294769130665165989629685362123724752496810797971747052264033218336806549892764790829282989811731905488800465436554523958872945569618431872474033248591148748897428412636235700796157993321779318756924726543779823086191911389276596949012953063881848797713437247359235988751117647843814308139905777226322679643119422297643717185238972960369137447481644756946704005185203969405242949759729079711600572205377071154177245460259005122762378880470800876178773787639188905219903951279895892823835100912746106277193564525024511481611810801348800907295485567029176397616892377150198986374317580972561377898982305484477633967886227372783816727799497007033201021336161092112130576697827290395711694716655198637052291804781368556830755776621483641944768204467582530284541906492108168768605866895311287473827775953469440068042910219363140829749642626613327565943740621350336685044016605409536972602991300845689876253270781451538959570428746310235851838354944008837536498318083016005804361354277182342610544483670972899916702771382217652547353542372340075482812814977142689757432497330588467692273004474946708852858042006201084352577997240754671464096650685856063149444192205251308841390411255448592394611832394773905064433985799959904546142156439988538112219807614007570181726432910451622814778071123773480574643674391187788516245643041321465435942868460039406936582669673728220664627369747364540860136419378338708963844583030076027679490705170337231440363001919194812947756642398897638595810143489119385785598475801658185708069747421698386327515604621048425940576965007238211549707212406577864971016530384612395146017043114825962541741071242667815770210412100340867031930366188768179353505639327659683480792670088583639189399483546434663433117013340023722066498599446638135553899210096036854567716330673374057423549463514373106096497652608334285594917565652047161347743437452347691353765249608039904476079317147996593489747871187401509928436098056392815063897768652653197736933862719946738334872862904619486845485492463136857590558639418195985188554565565029787328734347881649086958294675146413149835575425540423342468089039561648717775640070559590639992404294249188113837451234206070655157328984425885225094110938437036845984688545900202119429374689549831397333198971076198679702184808511265556611158194799089915302811215086082732573114622663115306025817835745608066817066109695187622056647093947245954271157622551376139318559310364195432481085329925883805047020490126596800866925097784578730681563070318562739620268650337198966400557171416907855715607184458958613888050683416740130300861192117734239675022771319952624416812154801480778686454298021940890675537356725311080751472054044373830054246880331937698261352862496661242745928051915349313880595265742263888639695008116053893258003235565231121004416658584356384365807245535839336054646094392234651933267869794198070879967895765057341541127160739120828562647731013883035858853030429707376968823349371282117168671776649741685303795645350034627399288445805298715131110150124900716829447350791004422511857837989624306777265742271822346137319076432725593140209951647126561097737581023301492648726811281587552153755768614267992504090603876394214752628976216755713333610579260667238147895328260203095452294240364213443135352256742641583503341268713783123985456137237411834122400338185428952626338319888865617045991283695697484667682350508419989396293362734227291622412909549062216957974498951941880678030678487625991115105650587434295965086959129928073606860831358953698859554684567979721435844020959439267067095723148397426957089590609533729229602083025761584859984241117463859361922601276473808933400463893869767649946399967641782701578675390355179293190569184243443721160343739386708298362501055547904650838805609118131753138031566115421702135145017346938839521686345509915871636729689872483995809321780229520753279640377606367903144560659618348035429978782947188757457120403652646580183065474643181880829117472616265842277274745856728629710385019954603729731338707439838430320022211872834652422401067096440576450490425741263162382187947863634891647830395496680745920218575469373573372482894240016061141375360557348536183763196006528806228039472128913570924658143049350051311599439009384072565607365353528783710409416834590072885744760557144558597042660270342566511392991782202003927902726975152396755345105805471278730168754130625157627490105060342966223974196567308106688283107079698074376169670242743080222803088585295953073144297734319870779849190680439494927819880610835817878197894053658262383009391304689704576264189150860842784600965618627396768951788580330748524486309809026934176825473052432306757324393557112723642044087409144206303468054376928330475531262484635647285856587192569433120955499815712625957046416186111499542851664483651175746987018636261574752691483780433596216955518345632627335800134576015232480873533901033350768441722312999610669088703489142599587106593350009844894824558497358660596320150954613336026386521272827028507365055676513465399280988726605916897509048361009017938659582902862058948826601728281129513250238809340828881226817478924965127943610081200515568039048158493186819587009280763301034771121596269139315745379152611413293284825491815734750741034888620470136697564010231453968905574145228605861745658255135409200193942002500015993005718381581833000210262539406183987818898842285210839701618612156772946008284428104539955274695944898852681677309057170974620111098254959216748443009977511805504779139631561780707915744849001026397375410670339047850038614054180559518879710935084115788324711125992677586885940915634882402805398314666780063360231340366499829456043037217951762496203849982386042693722253157765514626869056930653299900032555640224840562795022779282719905844651210483010505687255045578002402120190945578445702347335401550474067099941779913583508695321222965758287058805720305261937081012970316636003682208492119010774719634779150898902987785302550247856737308888021737467806137301882432140652397925910339223491243710143887843325871558157980861318544256408225459189815770770133844776488430180813477648411022063213747866631724713583284510815122173663906003976529236918374195801225900324539995278100655605943263863486551622511715162506697051300286612318200225263499107111934088148356049098384509380971144141270022070398537042245252543879248449722536491905077736745667983721143164412037746991427740564639866955948623698501949742791290696688563521709912873585043413711380876884854165580562949334902728353840139255558089540572174494266922792503046462652178650557137234251026010827632603018594197069012019554944708763629125864657349565167938028493986623329442901478384582532980789553870434062610158383888863832174572081483943036245875033722695773973822358729336326371336845413764636924429529332021725020674118286130636297290177218399090550162854946186785167457956006168376735349101368188623090669821678234410311515299052085404078465828823279764770541136556513397263006340458265669966858241901597982326290411356078683126526090684961642313113030290820189321981228173426781697253377157883155390252889971058671112023376952988531660427176332811094409122897425937519006631463046012532607599436822370139762724873694862246100164611836724511980620806875136626557020171890659463583258063848674283462608479321006773351324166470712193372472416517945100158730299118732449407019456181143983116377993505309552937195848171206820171053814316692887181815112675166854685421639421122825583401521589803151838718826948920583115248276080557149119874129977179184861711629103239019649473946832798945546967541096869861329237343124630553110766348515660680168757397971976467247247744743227313770442107509627178535924873777919601197796438637146312460446659770384154824715543290995654726877170832621519487446200287624864396233221180892417641149480564325421034150504263195094893585896843567337482032702965438156012324585562573648022762401399002392569120138891871402625750716870972470649695606903754681247877745250321349984447020084038867583316654971220958984132498882202880045722974468569744504833088362728573487856489390501448807955583062204193439958209633128471260572246655371078755137380474285218340626314597162217719005323058136583263872102213632428350188914779514212236316978619715254348158989046633775764259249378721359541694275415778557470644627261989446332868365299220730870131366984209295179974732703502632320140118763773536366623987834719427035180254632907681931667075923643076348055670568555684336137149427251325063381852456182557752074940502322935353487534542949930883470580917028264674648967529322184267316010304432241373100400805089257946063895089374064510174500223406914372969846471766353491975285849087451966568882743949853915604018110047796209397181523604759980040939301611678855697726621912816309073194330429256264593518740976869485673479200517653624410130816784194459886434382003598152572618878201360428485476892224783584430471936354550651209726665087284765755187072879297247460852924615516377754835259061566584926161739902544268597704008543182536325913349601641636253034044504674138809622042137511393974120736146585049860801714584985330115082366341338366202861035300859465501690553764100619666907712167708968537608334169415982058406887546742089033748373329119399288825550382928240907872092838084198766357695984406090522624658233737820177226340111912513862116306737361614975526372413550324844217891145585596794102004213679632598573927070700573584959400533794249238079750145427932844232749704411119722100399513050483858566749197990892103708021793415519722748322416716115896347814922742834217185889814369663239136675968946388342938823520991979591186107953079347710281035665973309240458218368523521482922516113870145718871149040433228965886725520754826847652061884907220122515667162796415685012262598532449941540861507619012400071186433557179246180767991162135543782948358258936401800309527455121013112662565472365816474622603857685665489777864841645381611290940082249683525710111645394573508808623158754725663661934500335606309032709457211855994016946763091570339170086120444969796547474620512152875860522224394826926667352502576886355044722299929151033546313530426333067240746042466373401503779399231416772851177237093567251775014413018300058776070518086913850119964569880899341668190809981154541654721837676565449024223037627922372071105284611897181521994705299263230884121684776046327621889709773389309878624002023560760331401801281907654735638436290643036940702685948594407995529280587409517337976949863166029053185879514775915384470815115792905450001596298296298427780193761788974590278112207557267496327086185220811348769698346454056564091370315702878305805351528515346780935826344665483514880253108961710008632954842736731186438186001814952682169675317742997611275184483773051033985145005345853883353155827538561909784394236541024448424171836960174836994079289815815786497864871974892804045978653733668027363476437231017812942510962206817904363462170851474527309488459717276305214208063540330170586060533369467409216803531266553155963976088374981530440523400322839041827416849971346448371494473561752003111362999160160859169290058316212172835324234843824474922521349771023503253626936308313513565631230511521899970890576742159027050320226264764848834471943415512039311966851721105639917791629884888144541321844586685687130539935642468918519514459262639903390228944522192184243748608308874622679170064890394119830770883216085717344752243455715536936824892100507765609152568025224632515763177476580817681642032027382433756766024959259155437944049987604977041878823584983377760323720706625326253514351225438596749727222786373736017464739796833127857798665857953863129147686055659698099913807090149295012282996365716247186986162807307591361633972922610534182886112214730119741434451903073185050975789923936839545718243568782836778825192340132750349436748563583009019812797151864850357828450775806336225852612086769520320349293381301430254699325133606132318694796093643005699147699185672603930946621554425313897213582022806333674121001917770710500275030129039826924276373231741476249008504124506887894271543823660015007819131772556533376758710447263709914118346970155936107633801149420824831160249562579203834160992739455725103419951575590636910373243481184221654529779763223075170194777065813731023077558869054019177701250637685199821029693700814017482604971359838967406759582948748698432927976191406466046562138725415166966544063878409366738399351129237052743781352742901193623856245961165886302286472932142939837611585795713174587348976709112475746756555286790647386055222838421869915872601028623342182518738325079454914286699370703353141143455175231848239916546965004516713053921865655033642776404772402282683310350282153108522520324244810631316679293520928260677401894639615240586671904960121417510315675339571175220544227901519737364554565323113469099112563912117317384641769274886847468723106596568499014414562321979444914568949660857194426944956241391819632481490954144648777175556362878503481162394794088786676288078948705693857503808176413502407953286003131751713989032069642402316251973079225522071438298336881542650360400494612715662277427448724105371158971632496924843275653689871138620129823787888736565079234240699361926641548733294726835391864804505340030590545647144854489494308966197077748773722543709886711148939458210140150929730633522399829037751233552092454251418229359083671676947483017192420505776471217360709817989116856057782087133173639486243368103266367672067205712905972454476227168184916394679106463893529729873949706974336500801804331754206240861287716380324116659859549719969043333977800359177642343565083684032966106319629330415023035525103758401595474454291140817312428920189833146659317181892943804985178434446010883701611954473690290940352206427203440544061218680441472874748390776482542067406369807329567878253187165034796130483816564173564888224826549227783416911760139501312951126201681754436034038670670886613666270874754431206203131776747004428033293529308784188341214079556622361449395429819511078802341518524018435960275719985325209280111555430172329293514732517154713961681354018010477317660067503352908878604199097488641147530188691192851963462023361710073178122971620167772217807719461013483019779963944745541472759089586987139691806425701026819307536361283386431949221379643670826530502104434253519857626733376558271520365270021157377357558480218811794102885153518098820213554786802473421943057413606885342529340499996651205055543675653003634188890905032941606853756591864346338311919303888376210880768707010039494922366097196665516542382013140370249218305704526653625860017199095354604081934348282851436833207057351063332692659436355554569576435453668409620328008941207242849621070461308779268855485291804961277846118594927415555143929399547181503437222479739954812594944700422887137135251665095898738351637976967972656048712651400052257664132026197415172243118029346799956601569329941127771021630106569278078753867560296229973657965135411999250928664857250912410982480281859409027473590880885138250529222316812381187050627636021644702996901301667590731733694462890004401223926824563194267485106002819030816398876037174681306329751303453710656801475867249486163892617716108497105427249810203809568105430302224877789288816704930430145367125777766920759954888506897843290432295147090729270909761960675638933541904915305390021140260638068560668598271863649971061097331748875376826428228910672629958794566808606556603192027099020565791206496981763871448397477512907342842910378042158607277385868291468597586659468191089388398621089673174582407076770623584312237416807586448244443901967901033660655607362660488031210170075669564910138794218443075021366902682959607624710645663397725495110847940990120261905702314259644664339292497662377775109059651750557504056604024876546160686958222886985978074957637422580635170838853804891538421914396087773470869246387326545359048079904600646536559921978805388160728808248284785798500372809882984076538237212971089034583837882420977645561064440659507439349307596583256377264303199933974485113776012816797685203185936537561291875253723204541006261454918640373304340615222410692079641800264980506086120051383224546674176593661201446175400936715835280074886133862290825081278999426552052399528703822090546608937472411067055535053076532830097331111715580482963470318530923527551341254505652947094615470704494936278109453914209346621226660510604348728457925367421324665701134379130181691920299020073230632203733056659935009738328209610566564344856373025800568878965793690052705369716966710424222668090216343532150390619350973021236994292901232733420781417212969939315449972162182516259214574697395681494047657121779130468414792009099108930887981678523426588432453123514897974715798236686725371764759270588127894098817966866062379086701995745450426752409503794707931477200008034566598643588786127965877850616567041113479694455071075169180188150003923493387897193434871401420674824879087906259394081328716702931635528296093148103520939676010833378421890596429353964410166007245454001339888845554314067149302861797004639911196077551384740868524040459892141628713861719031885755131424072206677788681239941236030103376944598050067914345400368647876757117976732498022691359018856704005250303053578083449353664858101620098605906673456854796772786420198979068944895035077382450572163847822102924024444530888150907096458226700168482306679164514727287316424236554101845956153224543172506552880508622373079848330891166682027793343957382310537122388293808613384817597990478422534501687866316444754986067285588931189933617300647355568287125744932109063704767750646367718622108431219124836460346792986706466809151789213704172296599015542176725048900083717152624493795472949665242196107751380892047943010291870768004717298083790825697397361454004957965622817162538815903577150185194013771432363910802192292016937553985527149744698824113942289646358303974355051217832769784544267135082996265018178780782327258578966279357742274105760045163386405593527908005275312246304693282966506212150340814225192496785790846086440013131401418000908670602499005396541925320414492412044985176616009105488813180254366227948201651424851282368998296684651455027311352866428049232270979249460354789718471221099367876585567496886586355632289362693972063702994882897302929429182660616628791239789420041562753779272237087867423022479771393906366667876912131244170681831209442236468800032778036705528852013618021133704569264851125491570256828161275215153696821410426808665654906252589316727738482342867178993436620494340355921052183991195292495680325450036842419986614379851050086091161313722670740942242176155586170703968466554095955910203064179659946482752876919974250299958835878832076338586148131692656700428744573389907142328854063177162044364474154405462637579566384471447728839800481273537575441144837677785116076296552947472228417680028106234110984622455790985811675767382928245161901428943152238573453637975659651480040415583936603542543102095912615730350756953939059562391032401869270817909437185611609284367504541920626837093483291665464341049125547121694669380274476623367807667981858919841893263481561750548847741061609307455647423223456078742399135431440825595310607894275791933707002697224275273342448498799894609932802783330950099224808796220779982732775560437496860874635872333394719380054466377726794242881509663216782433892595690647744732644983662227994921434729483960719507063863822161260864987008575853079771562378237531601712196155459755782508389520397909057345641679609263784043649528198471272366300643428888058334342325854214242634104664423072272866308251141465360533744792653182787294040610519497447003814288263475704024132000704590865198202110928150628040527731032471159352292885867322799611610611079780373891768123759453650953628267549257455960002160273386888303076681118151227521824916831072431536919341006186778341454521057429377559062449721451184847785232942415791933136318846020514785218367544356464476637399204231167688221657243955896872875595169987326309651956929553071663899101804316166282465056928707429653385212762672449804077019380635586772748680734803976465065487486616500912391335412821623435310706314935912529496928211631878362355500396497476842031020563605916915307327237351575205493728916832721641867187339993190909651578406687129204136715129964769012484562359276596087890543357634709577941003115428238406916304310084851433855435643336578008953303542463559611414451153138728704315864091164010101065053376574461191467711749703871233147149258332465632959043260682519001789886325287489110494746298402925881632593593220163480822217557264051862225364165395747984646166522884994163162391730935104577658239245677047341926177589729626707840710347775715502037334750232397563494163635656697604050893072336129639730004923324700285275651141795121673519214866472210389651298645298364334932102699365240387281294771223071783762780924366641818390100152160993162602832007961285852325064312582095446732812875106686461348888093636977872161941304195782340353838442826516060324740929358545866499233442753937893762894326966713028283097745498073601755985981262174709471885969421151792281939353401170030723817239338353980117033326156647360534651364757856544339134285359726575722525508283283307970272264264143141257428030515333894861658983668774807037718749400764083523037070389968859023946404179202004234783346713367418811932574485754866326346877222997649460209668327328156583036476546026665993640076406390066439226356634543001782503285476464941825775289034308206112322910908577211677466966018497802279068053653799677233124089766504599584356830695670786431761068173818314885708556210772307855635967232727105382289364592741688795143886574996347871697554825819983795936345294777328065212184005051403212933862472793534900020689731988630994432735660480871624057263230181247807537284581261834147096201470136448492645792658189005886082238441156208278056373011123663305872048032263469996633164081309747347411939588664189923026572828809470661288153535360534942265621017756281379298558005384010669626743350597369748794669128491071929692375125198082922688973433196872567859738612660942993513563631623963791168920436452803142410378480934360175225807310236187825381511844056555244414922460176005926509818603200927226702618864045818517716053920726400404415285607007641329638673252772995060751782137488416686646903330695204232229988777365395808460867721013669470671211039746582686361519554724920290245539381816839569439298707601185238090456007829398540748403700360946988545910463404355818166345872074043502259912469713784923448051410502734997107782588886351169232117173122409790807601421061241902823730769398147073013970848374183011873871083332244561248971620745450509549974777194471825881081876298802818703542106205553560521167385144036283908521380317999589878717739714714552889933432556031609454742912396170620781463649820885138285574370053243750458802514440458856036237292167948265430875427370256325893237806132458466852994018926302335457946154642850478622327395344719164394289919439705898293745174341785000070986266993457247344741563025917003889501541764201965643358924962421392831005074009814047306650238163098088072533021476410338766087970717886178589051304124743685004418019199862485880255643471732773058005208101824663076979219894320872257985493052006736849904252170574483686054462100290573162685148520606237624306550894158534942371916695512856998090328680184786770006260849765190870951584437097323729582117817422770178217410340767516357917525124887709545021153589909521982815296260423539078590860024652110883821764939748911428931218108154663734065502257649738150328273362638412012475511108125489624240621604093625331289251232936473721802791251799237086285091523409144217478647125496349628164925604710897602422635970552709888558241868437229356023510938027626479872994078001274499548247937591096904661946901573508494708602628645509885298689520833761148920363082296054684320966344178403022985295610147689277100865458701989792925140853115193882875663670227806501967540935324912548497309037527907656446337217804308975550987797482002779438352361793420148686996532800239289711430494718831672876829698123266954605112916219854883720680359723827344816750228025243544949457679671107509396132544483522644108780327634036319208784738906485854623104925276621511064810072799798874572020095244418720104702669819444655023774506119726554000700226857785714249579874118824913179787867951619997305007659979522248468925066938717248178633805519257014418609735387774530596235284845609929366594969275981836689705344785898056067995228618511599292705081821365795959744398606932231256745443235824052166269988633668403129905610557559864762095523561706341075496129794946220334481167536093550670178403756328939831026417191851794032231887436464044555783694999957951371346717200790419176848499904290793821005090351060589479704303097031012667906296120197983956063917987700298736878599040362523370543846602112810307259958745929284249781376139455148621116903304780968499569076826263931655577212500373398167034492762335837580125001200103370837330831920472786291494612231847534217613576691362386779905517197782177506554943903561773158933842003207421727220640474419304685627533511375412886429057746021628961343654121594125512817324419452218919187592446516866154286066166331750317879745199473598606745118745327362703280827214786163876078154188251934186000061705846902930581006367245727378564967449742779165723037914686058095115588894321741019757519812732466195557873596058669771632823128304979215574802454637805766643655153279845019980322244067784962274343612611570399825750764567308618906454145666274846478184813099934020004836398175660460932153753260289249791800297147302643163360070180119323720081708838718896820679382780084592954973245708753400363905035002339884007858035887033601048758000652456553442851328274394691886506951531209929812483927754049579491986968850171827421519443353480167088503222665002837104231770493092525022700906899617130545405616109397283065185529679286344966883141805466455711357993058710001538914328734286965669036495980621671324663286232646163198475217221590831340648504511587468513250483675047653306692695870045802300635921118067912911710768318075881600101002197028946046987091033225430845518593076525909939694980237218909243774522620685009888344526813722102556628034791903679789886136830763313807667538926654345778029983824875679043133880225463451857271340108672061412730278605851968024324222875265473482289402888557503404281845801529300280882620991137552844650925293640689477884258324155175291563543277637947848519474927874093911131691891645621680341424552497615817019089232321219865637474727400662163181549062296989600005965189208064148627964319703380279149154450987991315409021945777670468344392547060574776758887501033857159840401669465458585582318639538323307533924717998879648369639948817552877477167500680986595304398916189130112404928581342148884899853446918846697737810446936992131478518632396005477577615162500959926434897711707456812323994096393788897616808505649523529487981279511086676159882288666183532938262831398196999532213883296532605465937528928987025609799013876346770733856642639364926840090136877053046941619313226079667768482915247938705819609883200619702923654419643532419254802410414025866928402346640355447107824939791739009096094293436882716064921698885286167370038216502080361215711388533910557723367165105501741307954179172932895904629247171579069097961949107263921361376595361291197387180988944201270548438852537826001324186434399295049254976959082198340954439672324318523427260331779501470525612034795951148426860751000428255574367570455507451749634816376729343527387931124326026379856103636434969365911433170508577130281058722700909669251287427532823141032074106844639319979975632684889032591887506346529574123655456671846845338360102304904913703196270318788915791310751526858992909302651685940965624191968121756799561295789672993579229337403973737329616805848153028498657959155054743524087568278153653946123184177325725526758745760452265108828090496569964707222587898772044972913430318148013631971863915973279823569890228951988082714215700210481699994637298249366235529580448691962402081419158911089665539199553297631872977449357104274962584194169599371503699033430050741337845975295192495254275556315692309346149408802763778854326571555023873324092349253092328969523561069014287451741908634061453074201187030336283687264539026218966297280515226587670942410491164905163782177384598775809947286174304139205183135582996872861127810942171436607330806382133546079483338426088078029638711895441824101905037899070364783865282762014075454007487482128755847433455498402731900802122388849227053105148705843432111928633365264243474054901659097316267961442581488729755704298300691319450387297100228838400823150457316618158127518043980241089541029430544344892313267078613273841563478834762070460427908537367965740875220230675870076909541154767731486628855107289603194292978722435695521493202959391517624828353865222514371912316015354237188764849827027791196209996295282908511776868714299382457099704469559330456959814241845386869762518565723172853417188393328243957240650331733525097805097327070840814611212368647787044824550237307559049589064466123080653065901332698427762408136713933417722187314950220707115787790541818727811885942470224414918060651296500704765859730725132169694212547664743808804960188796728534363899379659631684737798703332466282801330736638239791521209943510759963477243381237299380744285473351518335906874352662211151104576301283165231555864076307546304278707527728122645340282145145898754917298567140726870774899459612706059872696683979417239735089821709612568706319765154328195851273153235723827649286805328316905472351009215193266438987751160633909525879712048820186824447254238938784859090803822663378195382633033117020698824099365795915202996025874098077247612945732329716026658081522438490092525067983842081084604069935686451330645577838453711877017629069338845233710830574842688256451048964174004641198676317386766065712781143531309587750819512087023922757953361924810465696934116485666407739729515025030887773671237598560189638397430105001194286479655941726030715294327499114572413111220274521638335036250014191319584527537558424282580132427743482216971690747153197470464397272163571072668005138335614434702767376499561036156652621946869636433584959953462653825408322043975993925701649057173505732548883027766988418991061099522053180077933003008454634483996137337068132580827891301466535899094468833869993363471476165414112102151369480984725154774265086578431802573047829462366101171194657318683749556062538159755339953765164066732259089569378189971011578763453101356174865735093986332657660214959669741048719627630158023432649250700363267545430136697537199748516625271606211447777533529315454072205399476023945019839280153071794442838622096214555327039694677248465105186413490323383216063223661619808818526610903320261906354217486635669081081004736576387338579014225881298607697144001295050257394397173076043427680229692914507116918607230792226290604878430511685847816514355323438661196263165825715397732314475683062863483624013652073915562259317670791754072007891079640051284129198947950252374404898010979759556022148117159197654763684927336536686517173110135706973946223834422713669432107255763757470782946795647802210423451045403161713810536927181351986842027912852203181385208114715496576516399840436998103663458260428154381899505685062084661619666282436938256421599569307772164619380373413199469633139230770377302191749497179651244136287725130485238446400274087278234326767983545247171780653196344244850972236528339900968020600638326347252635319225497429351110734840982101956076352316531193271804483803185741760042729477747802118815250120109994755529823090849460796576801392696688561999479205323705376464547258806301838825012864044336630539664176054638351005008298076284032089747335958147907379641622813750608116251368881199223133091696983863512456668144135916207377785148443793038436794095149212145547304997744770014859854079645022623739397437583233888588595998045246625163759463825150629285850862741103276235347865470864183675389042002148469880197828895623477817763660203445107793145739839731614002276392642709181712158685178737491714424697981218059618434356619510259234171822085125521158929595652908381055635395736026099396084840122563829931484304184470242607751800701585479600238486731384181789188845435432413000573035238463388065841481931625706060495220123347678783064995094937690178374361839989589150583165712425144227209668975354855936184329353306399732571232260367050346872924019608365938821578788061023475186549182254419692649973968017459497512595909838865274453477048230402573299651322200647771137506194824214899306708267743480392337600846433933057632881225541567033141648576662681867983774830153081602934759002432537156504665326302029299381030088961379142027353084650039734914074283048305717808333334260845409308722085663395137270260616778334419165468455176068984292019897642763048246038112598497101409100254176172747079817657121929582291913986238424813642444515345548085831980769851805435465809503231871007659391066480842328234548729703635199707534578947123657864695690527637488276621478065310330647231329615616679043992286095101217055687165569132287366868398433420179550893951248455553419865809160763956933731854958765045723725724083264160607572348704376586668303911337805619924823604711462287273840566774674851949389227312478985015702175511448523438868369068052389402866116658571572026695413539119917798391043366263634970460346479342318412061679237883717796564374626399570066889144020243318742554784239525078493781402322609140016853379531475851132806908078730416982187901073923217975249223701901850814355787578446733960344897279045630744407659897054184248831386604886018701558097914919066496649999349811285922711891174035035054357488177085356703098534373009108045100640648576521346270569156179053911920053442309574684993361469641192800344648310494000107958456876652917770062961237477066508111681557394932934877906358111698024627451703006134557493890381721080029124712486635116901346789393945748850679996141688289478140778645385211003092759339477002741412454472474215354590403058307623368578865870019787185971342024833043383244905219457449195994425091268650212354104470967604661351508930830414965301870717527331846544334082854830092511328859790407093786355287343709787116429013100553090859634282688210283330161577443208328924966690593352044836879154882043585723353497820002617120744520821172422295976261188843195583208689922981149226624835833352831291624547401631517137997513498310565480138374519407378387337688064291297576232930618828068775238972755524675193187481326206285581263889640863807010558833905971973255952447109502289521651785247091250626909563693156748175749930387623505639911060002043612639738645605330029008620100036095686976503562697720036068952009978174227021192619492550156315745271020252761561055513913242982101060079296259735530722684116622155761998227077001683802084254114982659614722807783799295818414744964002810940712814409642783409887348398412468292465189094837262910218222832967982703451821527417798346289132371847114908658401234559048978639966274386937361449890556598825328605969583521043283652367036133013206091522621541803840755397800007836590965589738061627353855494584895104209404625034829356935629173447406408705617171284078232997232119513632400312293747937833007636079002906422728371776157953878842072323400533684676476982020698472127521374448566865368160134966403476844838665020205266504325504650146187171030713389615408568318325453502631876536738366308756239216878564523247218800885246546988694976336139197347207232921378403126768892815014706531948332594764376784587198041125244617517181223890678254067369851531961506916704241347274815399060994640570305804586567523893534414637706424703584618195787460321087025138969472218085045447651561282265164501404933000783474524294751961913885723152634458650037793256300905410835908833135375110857923186123752097167003910225568476659446822281769913266821881359014113354967643287017403553692668729331515742572988982893108111926460651814843869977249209199625676271205363590654554955697456483192334047512553055723889486604425258572205892548109845153038669067513636224191755413846065035082324168321503614121213497288696817563964404045538718813971072225978062078111177059171785517596456782262876720966799677979652782323093149446505828115963835138368308339140878756194914774273860650608619813896796087294964870394672054186364799307866245526862848267078041521151163103570142032848443377999579086458615085860674677655276326991547667201780815138137521494210437763658089357185684298077847211209728284539360765494773238207214263317538252835554942542434955079813752433508770370940778599698088843565148890035171635514425553300743245996285325389257636828594359675910108087065265149235211448146204361620716907778537610464777953213725050955855631387816209216382900650769803872273988665148431812483833528636258614550778747717426360507009001123278039507040986692279438981926652518807934085702283392380321501476022844926029164833401092907657394265350639325836987045460811777216074853024333538039638648554789050738869465351942167286245403783625149796634231973647948253821379310634415444344386214097857294903394868160308619464260274819488975622260125173975252448818993756749816417384007811850164287111920126457424195904359899320809602481473659562899651245159830080597369440584812127333765808759884678693390345428900467035511987234152040912467222704042340540379991211576541400452780198793018164891095625858105132585350163357233995466899282621022338560420763683703037968065235943952907981066201217352129742545059270996320497156234919534511273734593041726802850777303179807402004755829163040101024959999519371867315067853565113448475254156123024088735660360809392326842659338671514421375301921759481799904185248449658506813183547236845073474350452528810257353637485002186942218447893639591802535301036853722598319336421566321899893359791498224865914986739169354640063070456245023577144346775799633319313087652460205314196968611629904627543684757599303470913538694931885791181334485055224333446600157688509179228142542764446660920429382577394214447532362185450500985951127170934055467530875588353017331167263478068555893844705810549464055677019801819500248189687480019885473365601486576260179459140462837200037363554187000844000717958073346932243438234142700780352214685102193661438290625654665145127244129712681803962923329371724945729207903619281345908987405968288253155650102599723531471910620753728263359444727473733604465626701527258383682181421611924844598228313154930104934077684860564468703347406343844143315708891438813429632729050671023382789852055889704490383737242955512342828957559662924063933914290097589886178275476964351880002517360281503119055499266525235518826154559161047963783056675582835377009111481463929287235254573201104061048271533811672919294559870173442905741898375055660689130691926535839627228583683121116476533048654197397198778962622375124862169133622339369123057544322781084752041613128466619031710033065650252257707981821960369272150373751924198545902483295120710995098399254817360792999672403920231966984553287277396685136229424151091632513974380972218312269422934464845290624900383098696469367580623726848127103447970802331733947017172721223145349733722461284857943411047789052571172481555053841853955607027464906357552801289057788635692807643552927248223293146485547800480255602041847880031052154178094227827385678394011008598588304606093957883559034368955225612430161181439084855633208782795828741658117195642766278459208306559986245618868463115138764433719519988732795532066079939211756068358353007999094611543651125509741000674654904768775166405524582380717123538002348869576233561418445461003294323406867716744242465427755086224039369967440150011986504502308777779502103289883579086692638780742385513464844958777513134655396682246643670098525318878216953580847678010351018704685097549638340698426701672887671976665967214682214909685042883311446256511235720758570858878140144981083553073003143648356706249028531460389105032184330884416506270115373023819914021156244981812550117384938612461254845781667161530436603993798473371229925376829205345404483194242134048545298644354926809709554499401082540935499739496312644516059189009672858885026378660119804865496077895507499832105348806451516548836308451888908065282464147210436099670034468019312461386250676482787921426623418918864095093619724034679423416292547818762026855994549527365545795785538106478476087958596514136641765687158302218426739939438111938823224426206683495642497320349502930677920948660413817675226118886293206718088839721619181454278238415170985119202804329035441503221103583046534828435271155683927623446837107264958324385051430655409457547947042218226697730857620192494492976207788679186917148522725722708126518381120878719768294838431167923358118048672781789342659565118374374623420698788231213401942721405871120754279407906137410130017182384809942165996308112425278732714013783827896851862193694476519426079225731241097569193431768810531086234349632777581923766313098270700235976456518237029120580178077184676975772281826523173998116676327858435575328741315233138880687955254870247541139474309611288729009969210321266246728248385363097895060284818648426779568883591385265426815275922083542854158288977484653982202488273435716485512503501732795497553146542688509976272095230782614080466650492469083808769136058221632787044269011634555694419731123535260795054209427794952322141947558804837015762952060610100842318447177996779348489257267935256127321497746081490286268075380447094793906626010192906533950663671589711489003394041798167881366328786030190307832600520497098417790462340118752467057960454600389067799195056325428042182325590835591446185913304222708349596654631354629562763051839144192700616114656082169736115493054817948325830512297213028365741192808653435644067616809563689114861499041812659169548852283129037622610234693433973477057563577049253635478575028031311298902481751750346225896091707123982076594792906556228405105626892950486908193696933234950968422760605864750054796948809843561354879807375967671316504722893048792013177102378547365865248247309250737236382372749728827783130006261758081011948567534302789858918997834568821663355337333705375303453673081666904856681707511911064931412981274373848921461193453406119103396960959183880661343268550370086295103331230655020984427430146634488658013642282957974423364687645107748573537891787840624625831968342806289869254846674356950304419417318542706542752620478350704526829950538628544039851791721073910919644175055138742166696122785451190789044121450225655081752937770588741997708993659999728406152451144350393718413161064133535417962591410740619673215841345337731249111767010372888904274142979978564171503331729505090255027672378413717833051627284585095979019956394410565511544731403115699802734959680150608441141264229554622132081910253706120916337311788400725313731394927936924749764401721291214318125101896446126853755031671375611785430248102477985015251761676752125490832232472242275193399970861600313071017901508631350161935006372311242912904451068329909837762678597398387097589056795035284519313022275344648684199985028774759127866061502862258162957548608534654950475086493112637176401874231225723574519842185707431664066597385655246462480431415411384191579645389888395750671801573358845189364717195891421600136930631935430845661577843060393573469409388107625824917593907782115930915974557508383213156439331417600453909307963042182728392932056021068687975555531201457381922215283843547693143896656024679439519406027115522226774861206640539202803321839779674746095534308518235525444413042096709662456672128032764320186481947192628355124257165182834563496845426672480363995685333992298645738506245468599199212282381580816671338147589006892258609054562850854286580206089515177489042564608468493016454564751839737583598002772174732036787406987966613746358687422446251025958614971498507473338328108620049819695010913748187547783359232690116086066117856373750423497887066144036403136039728118003770255087646984762310392082067666057144631538368549672356674414465721487777619897208203268357528290393428366208909693480127766161174942972391892269753967551282942034392167988864107292598144283026551020248658567284243928678360147772304265552458229997666940467757845246234478331415236497666831237604143280745970467276095725702964465317229404678073531022090388060966568688672180252887360463145213590142985935767261962969058276018127438020689062948457863143196689870804970965883902286960343453210553143159771546993606970507917737615345133630833401135055139382364243604328311381868049325016027690134359870760711150769764655937894093939358585138223370876673306475546366227886039802353068751105854939995784792051754095534877262788889554603489093838473855763269904093999998857153321375501785811721405272791257054660315779557715268674718720301317332612036584474315100905327227434351700549593508917737582280375541058402826413835210207023831883339589133590095407516505952300300822095744503505930439850989114537629037468265095004509865899976143719275010558224181960819467512706115580467274247339880270360380962783030458311451454580533170072845157190657602329350550223471091431401090054517981514159951525158609179636875901732968293513195606067153024453790302591126947722237593673203889662026312194340497758484167147466741194278114058222633457071213963836604766799927862312036658572133573201643234423500423980817536025750375220838522028706660853952248911796609768634187844953050844218377554848309771393906290541217555105393291262513752160767337767861577866162231717606885836361104366419270616054888294110669934978674658572769722203348362887122435459225241016529429077751407277637100567296192644368444193817882358707654634691932295220762810600441382957909454183669281506170754353028302362153333724585657753136120750475723661018009464695418923868354691650533813582937098632429984866164242238509092272187891195765677580398702195342184957258472221470609272504851445678456629101294511637137077467601435938317290856568209982172642156188411624907394427064005932704967786528324685769962773981788190289344866761147222822526710956099164443360909251944638877342322421608093369955631423451955360400847123120724995137529267690296846658946881699852550459862487387591023342119112486730447740853024767808307000814424043835820631605972616378725393239193592591118815545312572926871648775717847469916748690863446578489170835268891134625751510116939142454048091751216974452300790742681708708123141967583637636920800112665066447399668167170148913733441244857798674532769238816783549104630026941600112843574494812841118346905774098410489079097664109948451284590814366750838373315210369774835633348376833048947174882899651516702679161772443811053565794790990162399428904604624734587803150727717003093912678449145380627159414548272288230526632321604349497260254427710345221703789181332372459495486089970871335884548726187942810051117461630157591865899594749538778183667678770140749051946013375590635069822395997094662228614947401262129890313347316388364970139155015639433400921126435316814383569279556220072563675706236959943810100114049369212789233372254651237950215439782570946813410949738828183445751137480463822085341473541008428918530667512194561073875534218226585050820465106086022241472790681807230610338531113249467679509844246794756784279494335415885580228803489225780472370541176120720613491520248806681004067899294352537722916227518538029912611516908548534470747003469826355803341849273388880125775795505390046828902713759183978252439804257338711909000066405639828584927574402096323194909697178184588096474015763912003558203725858010697333554338277419775244997322227268683279528501059147839005963465266742527542665426285917201991243139920941675027256450009907375253533788913605051872541748606890086144814857278315850920008603912971339399028929125695933972814975573452700156856978370874900409701049558678115311853777087421763478446810612447806768616484415527971195514317792976226602018216599669445028625678963606337177942185372822184376737489904397911718511542798055516040799771991113952288848577728192318645832136641100748632231024101894203822181783360178429012042376173962540978407547939241930100662250797967688334744629482964372580522874741422581176196598997389064231814665030760671781833334687069333846240890296207112882680447770089855891082804805253830503542125134477625067693944880733447504181734485240293902452263065432990784672772907274831091513174015628256235485334822743460979233951228163314522016568598542353163409340423347361961944450945327971829110512922507993793218758160720045516723751129946561931865506672299561715709286108106422771758171953685334833377674803231065988659440879421103606505819108867923898911233253703158419167675501771735185201002685437489828535800617906167436321596633484822255074781330737993714471270275971022186497964633977753662159920683374855373135388617503795424427940094164170478965534001926290209095934074500244505599597276581712069288988005290580897909584528833980152713482044804169520176445442940718823223951665758626533134968167936454553645403412421015142113960001557675302967865567743376714769524760390767843515503527032347472411696536627216146358497359091587978232423498539551540106738273131023121675091009776751252487623076261928609751422433036988442425619076274220987511392397476662526747605659251535612053282571316265358395010627473946986014301001130876059988371827149808213021488514040258404751712547243576923679733868399730739721384771079187877858030327203859873502621814967964908052402764804333872079823268096373366648659567299752735410086059216923260431929200123922732868866977802007024293624224089529084570005615888242704072912375242814163940393638460578449092823745817865791368976995027668048783992665952266860011618042078489862572025585951755749434478203426811048962410924683737217239960859328452734784800958833560309842211396772789819961267766953177265630682102265359699279386526690951265861963573061400204431963485957324297606565093283564978191712304260877523177822748590621400986271592169410276917937000742620077114054466980257913344523444857101360510612323467830407087391500285726096272557476116123228574160968569053352588318709103863143383423496086598577191379005178279125368412389868622926535615884629335142142324828822698250483820287730466508511760852239634663501929676996974765761694966132351893852211050342283933617057994280683147757459390374382351469569681829068810220703996870247821333215878070093835707542182961429483956323682058214904805489419346303147006980940655233040672953173631340070237088318818193961124821197604766953698211146723081452722301788690932169859069181033206742381207356145516760785568387040505454104987937121033927108410786508030223579389375188132792764721493833410371182965251088150085943831324334520804481075811979888270365838566518335951642394442413171780989510102027972051689164051273055015944424100625931219875964879831568491401508168729093179460169683261844332382236016086764222580390640041474475960099446093199943458439951805282479704485572161223909143994672225793690377298173820691632944920290286127566170882498069209523338870125561487468418793436604208328676413390506831299299667458895800671314815077071112952694570035510927959848970918046699695700243405671450272310461365127526844799773717586710871214976203874445160765006752167908130030074301028459653850786647308540149062063176813523373580155245030905713330924507339821250528783973466872394222678152983518105169897307118296769032167319130997519284260165063386961450348577666758966086106134413327992233024503868659656151563176977811298768119453055326092462660650589577855846251454705337508343383222036877022478372947907918939568114164348210185118368676261279929464508609116598837896177768356058393811250740691380739244243997492729389799006666974822510957081728401579025704254989987592226876726599975981582110527343841768665594229139899642913571280275008995756805904464503952379690883130353048554901005303762850572320972520147658521715443863036301774376383427828653338811639690477688374517028923743772837537820709264834432778736726377669982515100391004596644670412107564789320103006104149567592272545482233431895724497009124134785563938327372267727266219711947550903083721734121851218870686770035325908825795369369106212997014833795425200427913228836475169012966471565180297934623215800290133471332801529645149621684772733047558884018731273341477072792442850386715318209857586481151482764465805554503985208145584244599958932939047120485261530733154093982182798739282871853815332976720903927501872949332040004587426472430062362720882315983151791196310659470251399128937059029295339090394340892576164654914703907969072019710525193434553531796633955770466618417033898803612224014622835158382307907070226120352993722399801698949903847548240298900119420505740104774671780154497734871791893678263932958927826559569974285962173443058486369850133040188590103539141777954783945408410930771703395497562989821449651344472326991149236542876602243086970560236479035400760002209750225427336195140669932846004434657724188789380684560372211911120731797587431767696386263191300180610108324525861482411384320315647087551799784143446936360317134020952518764441842869307268487964318360263133385454818596670049023924438928776037871532292705946144656645223872934443428884453064928516886984262595808860226099521115508804958272788590844384408703992628729205671311966905992771851462622502990978237631297659119326817986342413563933623084510887503009478239832053664790730004091161297463155170845212224963102031863981881507881890396355268896427606835998721236551768106121626437512736535128009463570532630938825566654522516193108619326779617422349170980047852707331577542894609715900306199001983030879044987973333856750582011460695738507505933907981915822819822614035997835633377516349352563205334321233788909424492946371833129957160000683051505028950857787645397341289213689025539601266208869861777219049711253945058283723084167792809769228842903160795168142635345488477461726066158416182297539627938458833623983704851059315600990390676213853484034044438059979426451483266679475636227704983250563800095496395376444891328568921991684378103572218016256452061685535941571764879621391120511692819895673741730522243606773003024649208529266642104344525282222985753508706106036928912493496494284549121286042684967292645361625320554149854186805769797960518458825928997526233265272926257371920198286709039230646416565678190987903711552245725938585975580929221669157701563214717616906601102183335643898331700918279802134842367762511098335706419589934935557846095105165943004090724613198369799395927146975180394253553112910137469543801672906423681122719405534047069499188801607346829556111227429254649749241195968451110720983281052751593986060632753152342126061466331741998212585974136052586067056712529014501727671778337228833434985860517642499017030489760595306995708720979163970423267659550700828977298110498564058160265862339134436875609843778346606315896562673825053374801195277126319825917845753469111485540737630967742950465695033677317356440581471914860293496550827076281556998458423571483054303843037764158908555511821308831290328810089997667407340185319101655044057165137130584167575320769504243853182487928176171540009210279100898771152251720208007422544431941424875160976564553701350011583695269114849355471458243122475259116838955244033742364785257133452271069452154276745847055581100474221380934708637944425442409050316534532601384358580458682607554971400693048179265676232859051201941659563732115763728484095809281898998672476020057399389085867152813708833949939904901942145621325211069807189903747963445160501608519105215334813372249707525278746884153221231444777605648731624707958565138780598971780164413912019256438112972336254856590711244717783989135720290975636926826875618706843549942428902531358046366068613865638294724433799815415530387562733001325567994330731992016010832185030226658065543615444876302024917290950435079868636585396495169090466096314653775770093214987571629689664624094491117223082057911612971129039229954239913389777892722251869504251970898209717838138376859491434257248697206066111630748441212343789404635175880119463880581187505794012459655923427798115366612930725687400373393108578409850629400927367954232974353997703157686552980563471360438516341473945049302521206394791984134767059799903299074607092378667944483073945365278612896674051086270725210484103629590013938375187478903026456125940417099731631737487050392316204354800516156503353167094740875477567930884703768590438178827156111657207660930447808878655794295690744602252453584566726720763280001242435522578870857720196427601522848616760335438846312047795080168600145845710747584212704836405198925971382508867396380110103397435927222234832877173637516160112034600253358322818873383308911310670206995820848695076270580447489596121856596446784343873881837686996855119222719124461766255616682280818619599070351057812204325282915319592541634394783828478622982744295833176354322985762777076475820844931644969248051798187699765797897465829929910238877257017229521831429857337458970358480886771687621167955091072024481107489133189237753520190102103931763327048780812887759206286865276904678611591382953392461542195541319539754809616098846180342288257643062346145178113777590123217381534484427159166838979968336362047905184406694987417928097450133816897526049973486364858455418482130108181546477965504559887469142425702582146409132511200732040112886817699698412198116491159410962296681610112832039775669019461106528684041671852871916083837741343001405725195954953751399466679058913888036840463937660979542417816576312820577661247707970801157643347572615824159351104683161743364056462924751033077851148359691882846552287002508879176497222985074501132133867455818128039538663292449031615954585721641432635071862595177033222073225446817703805683000387764384763273880375604548213087411758505138674695151875644769556474436485872959476264425715006371988098575466636778667135891674954052309427696844217483236507622909990009955776883347974482903635529018045848356471520958428405353692703878972941089998955073243365020023761844665212314161613103741724495730322220009794767606726963712817881812172019921804261105728262081089768859321349926120721464603903981271382574708620299214202814553646467233432888476719695047910188018903565051177894821818116640177419098061658558596831739051867740987593604006555083470077084253267379042421440527728971745806900617488470335910986588837416587614956722228278228379325098086479989027439197501710032970733038218620288509425158399249143282847850723811103448238026042360949824045934219661578056709649216193066569196222804416910259439629921722529469777701174932573114031311255875081587336969891295092115024871194085637963731795236625868864297853830726577526788091010353955987474531942796123737651313183548533090495216419220487100160567163004369582427428057560497148320231130094285209365244465894456751338142201010171538797716011823763547902012862488813249060519486665346980859154303064578709588409596817481229619457923102094071143219603796614998411210127538609926041917393155599569906248825402912277034128366289952420543260923618858197222226020480822542637929004809850134626128204534661519034402600747722376002776921981023531210292049119722811880308647113850311851802376879699028022254091445263529660706700541355145633399087144638134368600886415969707828064079328126981378218967929056870758262554177546138763799839739217593931201850736176562225643365729905302460618693597747811028162593238415427055680497050735995667623811605409021517008269242978497151138243755998915633821456564796329831658813260217262185841557536062181652644262897117326317913295195602781179237787821646567172476963222390429682191592825981862396527782882946376389750392760952124085809444566293035188158608319698505038925707502722263961805536838057495357351506878524324005028698102438943432406380326974985496975058293309395044775740933341131073475848650665435632871779717118018168652241405663994061623049757060931813769720050413244502702508790468259780809125438426983369170651627524958804933511177768355500194110625184343636327179384029747779586735758762016369271729393532647016295954572886660170730524426652585178641555934623575675082286558032324365855358257998025282803660301073227763224385284081502926568780159619940567340452691649610743988108203106615141813823664411589226148792212340026597876345030015430957832067144570846922442475480005173971390753982668324389168745235626721032146002896771726635101178702491097081023384212535682323235320375035536272537647275922020470831735467572509689628545466062217257162246518866655917260144512989462974452508893452382033069268584214462079456106909047260038483497943582756878108566795563762133634566291659609645808522471706349189274771847708751356195242089852705985219869199736268218729814658846029194472854198448617739447867892259819745813731006816308804359478038062994804074032464222724544409888997025910265934827977651499209094604949645902256968915438272891590415104037915316550877254203806952706387235244259915954224143695672135572085647716102813794148105676750486138343703803964125155264852335106319537198047095801246027826911699269341389081096213059819986438697267028588507897881218407169454986046740107013452118056638916177049015634793586256502550693409823463944134256003693203179830525730570774467093802975122916689670307699795394302796875760619048214011520050142092116988632839881849702556543625369132676317271523769770879580087185303993616318517269732194985663235652240743514307761479660764405196105622669859553124970005622349785414327468492464737236032629619483078558723395932769155421745077269873513399602134203618774479065971311231756464899006144221123350604964361016947318923729770956538813158416075577526754254960217141624335602437748602566184904502861971332839605071031567772646132031103424018427535074140718773981739964596407348589777775987099542138779225506274470010182223866381755399309834658152646412752587191489091979359392734236084661972828214108056712801743302888883662700115438643818112002554303638091486863406219277534321914812623130487334047956882168648833537871907842745523179027323523101317730050030815971652792467686843036436873754176445545913657832445396120327593270977907874036470086226443021128346902953730430475826069032815643063446348432502094387626450691825296834926541071599527111543180030740712465136365156357270309893840040452523664879783289506693783799244605309545561812157796659560174958107899858431102664490204340516875778426053959785541767072080580927240471956498440168742767784240912441837645392379213775464647578042107432271646093601093048040185378898434713569845973928485842315233368431541926475846234312788079180679504294034789747514623916593722268875776143696404153211795093580471609431996212667611285381992064715540352049464449278586012585382608012001330396575371138593969671659733160112728632055889600235495311059159542156572011751373650916327694922823327783820006536369838105976901031707680710231703498304688749000636790499974593366736304487017721215597872211218935778174788966294441337873864092036071241881258442685192090520884190872426279457424186091239789686089013167942799422507078954364732813351766969695090514612137853791588953118928384581319850479087064010769560166341103825841968259730527919485741127661295473447208047294557742236041299634116622883930016802302671456773757767896292814861300009012820390450039353434306655491988661459168943075247489198689870301003812794889627315439169787779893736760435643708489180991039231149058042259315479355012787088853155556349986435853042678085305582478379844374114207494959297893736383119563422619807138009226299512727810681308073234997233907704336383654262638603924814942947626353347837103715401675269697645331524691681702611378873968795684776783067698036898071664891420488642456302736768587477626586389924650550597588057487856010295299582109110188894126509997265733397470949125727304079939501422174943487196856425444952401290492186020990326617460172888729854865295282900144289086607294433035171269951418873298521388462338595280081856712786207824843039399186059800418319688338819077667595178286568895281661831853163786497233053511618353346641152206555524065059390016137639880637552549872757751682175858439752943330028009442175289936722588671498432739070511063844780783264200552291829162962784637897479491275233660359789436503323954046593027103873156235882521599496061768166790642950480455356466295302613919836284680419598405671035028152885189103315835283672492429870676190526961790515095735139701719048915574040619782991502098088073446451747474641663633872489857999496652765945744250550957991290182954936191589245251717684405814828754580467783339350211786621406381107791036385901316974969688718970117480208851709209978916517932362250178336526294914698225216108715653413990525028290235398628969196524031244964633397783817441429245592708168491788529944817774678174168221759507626986889313800074902774122560660006886422950121277842585858806405334130224825289770660320554082103075578990341427840025272538986785993825947200631851418354753411633366344144474807305931206578308198941724217315091924727915679911346048083251286900076793879125898515718012495812382868794530519827295907157701425349603620735575540363510964215120856617883204145548049148663155133484246653261427802990765052030921121523923130643012157009936632229257080599236698458619208153075996635177450944617742734158045081788432564034040926271018553517666364162496658123676300974525038018482480952784961602780483223890261352778257210308185543651617682351811067010661964253917275430154727052917994396331410638285154693898855454303851598993546602122962586033800615419339175283862505172418281302694018622960484440225674493863478823192691316842651168127148386139255368643331726431934188335712410455498780633313632639735822110879098592575282892718987820726482829252153239480876379428827643114890736488135961085346941504838598744132696133723095251552012775210602053921702279143372925159238150097303665692348748732142300177154913813606784861478230181943575907185538329510163347938003811488632088109065258697411138006096300797052349507152177922677248164673583471939431997107495041852203535732283116647124422363582054557476266596802648303254398414488224030158145770882027665582084493237026152932721790134601578515045876866579274193036339897406000521497994110039618821737084076557681690614227415608618234309732724878758854329789457309755284771455692287545847270248984467902251233350600718730692542403788947229677272820826940352763953148717519707709769149435166199885859644688585086804067330054416727392214148996340134885001630113349332890759191865407809365634894598055448333043296614194013370843409130466472466364339327194793652371619204469555569224692519343804569920669885291287135268492473441811508873455978051868516209778414068634873804886286142200224912057878784430447383967914803280222787744565359090647496563246241689308566607926292861231827422942211857617979207604827150797825725209560929525758572140977950323123489371989285740785845491917492901204816982509491626479604937665805071557646020969136906780927883947042949767069069777965875386710544860104042223155639482994179354397347007047980570935461749205536430175915245177208040607822144842271204401072469731148407440205884152845921129330771142289255436297725533553697957697736980690100999225041681325815878204468476005116194640130076945988575056530378003580777953331848661853148868301181883538831587744525293791103682027309474056552697814069166816927065186787117097873737758271983990875134172497736288904669535990595645763101601021028416809586730959510511886283543663970138593717704206136339088719827876397098071959423712392374688436004324926078666914454210733929919406077888017763579341675568966579263264633738296041766945590210783290074222425426483248621095683089065012940477827921186429406768634734161138212737392702152719536186373609621422866294144452731362463596314308277721760848392274314504305911912216689433059444382558414617936768584003440302436087201804741880596687881285061812302248033566382277717055429266424010841221156613009268607821883169396943242369317712332732075012572243730291724357614517978839326294953255308364401114596212470737183185702189347541287546789003006740875999408684976339526275227027182547494239940224607274107239755646776029386622658331810473905670449521672060435214310888411235014705286544352040468386354836443556899751861366141756689658186253147978123376646559898340907104722450322171463693556276471918623534765868464816867309994621873401965398366051407786532418073399655898567643574736721841166682042280820098777538289946999427971434763886508170938671261998448465193968782415012470476997731197633242427329592361972808587968656086189038946444726218342320032240777666963625216925739215347816235363354171171128024771014572781737264392202272427528916566768858638614566107403963251602004895126748192180522147555044613511613922046589041540665698303855544100238646722793184573144328555979161300690824347591659496475865066324455250412799220121557612173916223082437856453209256802081622856124981789920238330152293094815231663250289037902239889297039617773588762233692904827706189190144976144843778745604904026638111936351726654899288291159738159905692065029405229753869373552215653920146605322242720798220556042572773818077122288854511139219893848141526599250922862359153094822414629070860206354468877634051996951621702284289166137200952477686421913165600037426160740610746109128488640695631129351616609925846620405682731454460554143856230611579615655201833010195427557494812271166605830605541662649950147874862424615043237961584054111275700484391684757486303371223962300630306362039198384576278455271335980955050855912922269472633726492139456573130224265788327548427611506287710549789624328146110533900550451706365159582319104515594778419730718616281030910275456069350319006265251145239820612228949529875527199235368665295505034871270209866317106553453777534285651689027813417421122564735901362611450404096723791519666713412004001242780001975699201435792542930963150715174423112521358650719681121263876467876230056376771403872126120680648770246238345921655904589324471321504513389854289696800807795205049253105924550383790849515802450914411743606086741343042020847973159575819075687475028290533584642043185202716292167474396799811589794779271578466991834094500382548438084692023180548739978016625465708688823812590784807985784692820655651205860439415311211928504663628716516815466809818976229822205647873145358691461067423007010928014142462675495311026160265271690636172772213793177087390308298453887609075846691017085095504389884172062483290124890352785301903596385462456623655932687261374855884503595031944411888217025593660429624099312292700847152853558647040692426832832740046920716363734109216142263046560528021486015399760019273826620020757373572938100431799522226792154513044669217543742333083308394363061207116550663925068821239960405926999348780451003627684220408902313131804338518009233212171257864495429141327512123093322989364060191427289779915724423376268991116194013983197699201833812249137090458627182077661732097438863022096089084990409832238838488419734173688331753984506364235394219330605730033939292137828580695806586380605705822613319209546199127110843261633370601409042330128781646351272185436954843266714633485510484593515646866572157454835052552582142375982647989649103400625258689586470519090405936852665387181210599243273264408966848177750480139158651629051644977202836095462666526703424812208870468594333395438533501766383345775477606839470492362346772099050615973793864064673557009062626547998371796909362528137958457615581603972695833357473725443806201653091139321462705022339775280535824965502536646545915798894324567153008389230964587233262596880674556027271296346943909066997505803042462227156650000863763172945984443977597172765211955410506031086818097292072588884828149156754714215954360031662784979645803750238272138097413363623711997696250029478365663766811636991511522713235426643874247842901954848925370514515261878755987686145855028764020314910457721145812009581802509957522631508153128721046173077723873085007716010472518831445170147892227104496253471052560999858933392737773728396053374138507858336935065788729491440410228979211892457781101612726904952047002771367426788048854396675151261966037405732001774944946409806329062279960795021216928175847772371232634151499338057514849697445077705578825871580428722788361443229816446601931086344485269759204209616524459616552272548648113962021148755645471608505385933192905076709601816163009511692260665887891708019661662530501120611602359091075349060242803106852526554843560410043871885296175463854637537178327079868479229899986215729360362484229447146185979717779799226718120143791436081617724328503634854366677789408891442657599607301618689215469712078737597310300610923029465492256332157115462940046525441191169506526348768185853900819381617181697967935161825870858500967155555459055785216808033169610844516293657788736444703717221936629100982478289786508228050776293248280827745718169291264125643416692706582173588379981673381712081141277002506679483603106360871154580724239176397696127956503109841459875467574801592239833467162417092248811817178897911637938624104611389586206063042651960221154052818462823586567963350497475348808880046987015919129542904543954701780449384351942120456813097887182321964531132815556662068038663666856771626827397733925858133764968114066807395165502010808185639279337738062084100044241309013926648811906286370715117668728534668597339599633011181227413575165453811359884564657919822628882575995082879359380296753151888890236585014272298926770044473488089631967312783858475562485931697382408958231870482460234895082108205348210005880800720814195618966995483084963111299271210399236463866248050911612502032171683475110443032875126675441640060913202588184403980865189806521735103024453342914017449914516901920313280219727155709954845457741619870671631843950284838506080147738447284347020105550099187225820402588116610388407127066047409168912497998236472393057120235687685822508289575747171496506823013053675066728520501913168234598233924559378909575557827650871793038603854630060960665234986395954350366191880751367547088023509325177404183823844030936535323073730943749048528719500738390598634529575827832547328054945576989567174403301068852520254507070145523448436935532905587794837858103389083513347702705745418319200528258181798830952648331864145237007145056092006869789204058282366060589464646448206707601754105929645869731134062691154617074682672440088197951681398526761524151820308575434985352364009243835256289540124884728344218567514979994595120379450970868332121492586115506378655944631180245523696220825182856932377406085488600077470318010813342943441005155475667723899407640482520956843622169021805774738675644805033070373497584809459393005035025477832370498890548925156010081016403220461647441777122514733269828455436219292467863191612577183550707384834306877860494070793557949189684709377729406650111513758199913690484146998843573966015198165220423056052701473463926760357469951937701182598518941095234849842883458065261500593303259091990870792531433650585867757815284647389613199119934695919315977196884984729614367000358045285310776586395342028147707056571278377233585663550627349214495595600596490809265826042343295555766333117059883058914863268072493157968500794347421785209871598280410841183940977883572114710148877999997354516004272197967196292664819929659044033407088727885949087455735001120474252997611266466894605021973995070350233047045464498468186119845742842191545239909343000206334109084769062717764093944853259038898135320062442249319777989680593412125715097295160881197507947633713901957468835340142159882812754493948202192504871282821232576949527577045979840038671875263187743881135273795828421188994134941000015170357954995543727359539856290017658124553252584959821971877734336295249447297116219430453935812076819113644952660449129935858911436224798650774576571871140330473612848489050261063259851133972803004558662576280816424951750490357923101214615931341521237532705640006247149046009716036850114610661054200416463935402103697457828046754431595697059200857645773358000932420575438559675322592056756805345721368632138981935918269366347751344018435346709705083014203573744056531159694710590468862734107668507830029783104274296637463448906649946527556259905922232999519622133364789926614169241802392672036638448204612001994524650617518649265764472808230252515428328947208947009630105832908290447947960926423192216410754054627665115581653025458142825679949772527659513579644537065370386605159291660330502601384611809356751069305094610588298639659727681325502735941391674795009285727503773433783024511169971817790122030709776744625198876766397501708856826745151305394161766917312961068426898289625743678045042223039100414984891123956168219009425425942697442960510372614403238582678016512386496476723046722311031134414679721329964066048026584809193047040639180294270736170288123814319267817538954340738800342543760861304752583222665325958545652842405857138701100358045760330524641916130979007779277055757498825459121725857476897760838607333926655171505889808857893086355599138700793189169417440479958606462570115560468276098825763928745458243463535003031057027556215385679622579944339662929380488412418437032257646986246744117713465907557465637981254844633357459224604633960543907922593597158046511897394045975286057469925234477489060742955936524015198225433168441877773543681040059309564989951067564070969149688715591520503723398159888071447354972202004346170831897792924883099877974971441005067209590459747016173643561785196409046427357552971165859855510931251724555809920405258863745730611064695474478944058938538578781468213240039875983687089745329402803361650249549449250130462106346241725905819606093089340900679557726808836253032201861619300181741178035793283415052065001999566846447256814747721035870749025960587589105398085250314432602289862159037872801745084344383814526434889399765709617697590508597929795250443471375173085579482284118494655464745405009613774830005410005043504180733629484470745751972744661241939864217625058209464007897248212021480833104646168340481042393047068397843626792084116442822629916721736902967133092680470399484726811720966095960855087510641616983771037001840099549907088949879927513899716678797295960886414681606876189365145857757098597122177137461279561010550348902878862788480594719556752490770682569818768398885302510026324863676509900633531162932142862557059867007502505930430007917897846328828251801936492630778253031144050599547653223177305807712381421138955965870263510814568248757335528715518090803770139822364648003755221287724495782385876352960420177067891755338934240099342783875054033046606096454845307473095120908615535774108685058246092844932738721533484501125040620132520473989957763743106757260405406061254728820674542218792493237117081700012177332175697169921545050167194098754080353787724631346523404231570370170169428430137349095514316222717018920536547400659369164570860416608206041248654564805927485251449560028835075734535112625675596387282348630035168599976791178587914318203092853626001683137103655866170281088776119696090279043135340884916195733709637111486737854505590298103261613042641318704754812054845559194563786124784304782669307343456905649506456562141809131648720538638257849271619802440718163018824569807235896018349602417053927138053711913649061155921379810969050723701529512723894702135639194761449164467517288778554463681261944474160701566049891774669386980951874601813428091918561974795444265525158050710078145209602216021664052516483117753563587697613222028981466556878552578280632555073312046277648716551837414624615538893825827978859025394229950734437946707814611755136942226879463108626570778634730811271244803879762636564566397970963263915740681745900773737104090766166142237030974788712103139828723785831832916341057704638860211369548571229105402547108350902604884765297981975093535748980001466382525713284062403608524442680501153337643507164400147954076476383845380159872709449357495247251838781737502119444571400986859810199523245786324961023323624062896325556576056501456954332291160044725891041311059666958391234541404070563445160200583371817164679804879014922052446971321867509331935150106239376632326335253120241594641403020507867555253259422384191756204367822478474115735982959925003219919467809055410438080483732386402016892856468523576594566815240318527553942209452989390843762467409966690493669593407601197639328982223028608409086603041756296289678040043251330373231473342931486670474993925268236103313816173829915833245298510375636028919753716185561581794269849852652523248244401931447239618017141785299633529049270686452213250950110340745489128312255002950372789972697447274684320419907854694012126610514643989568317939851044344266768273737934005739533252821187156097920676586843547530901414630847189185601701838896048932772108619134551034857888611135818159142518805067344538819194216667876725261417265375742983661356212411965191523790508886210022102440195663152630380073157307026301520613613461751297264613270091656375352465929934451323188135587106937201772348867467821084298086986681733531986113912743930013787670212937064015905595197931549233708072511622907042901638654138283190206579357094148490381417534119658216355070921716073766517306106119822130795355874192963677260982381631460411617614525054877832562127469617516511934246297046743894584812363723827829115804410765330833953659688651489963175702207337732214743756896565417408184667846580949882783328515665341724134726537932684300480426587554130556732982999924353991361126552969353820855156620169217376201419958565756456458142780570738011975677146350253967575724794400496913876703002081428805883100317003058061664855002980103636589175784950739626032250025600333601179987346181488706832588921324049796944973240575765533489386290963353253660129649637841099020483086277084315306727725170279901666365390243737853176668895958137046637571210306535900114847841283017798342756251238246921138674910184749957452552872017481883222869195398447638976514016775709159024130485680749372891006637782310325073831882809255006175018185821016658910869061897064698146964655456013379209894974001706057442131457280507070515328841416519902373215596988727073563931946587684487135688874671063817004643024921601225490988476882279287616511422954533075281496750106479397857025815782249393751454997284628474477038255890224707740980836597004404388142574454680489284661007851245881976947010711622191210824442169581763444369410674388576824615831531505765441951816320532653488875779119761762270947725838778428032769238165721831127824490481744855955405664735304174010659383266798421160710874716454625495819825010196778465464065048728166784230376661479483191734357619625511902184014454545088946863515641277772337822314036122740106600042003751410984274730195860182022443432009828414265568812149397119540970990260834812640472766996425773018889133821602926987465188445811796349849761910801481482841059948497626150624527855017248743911052068978549139814910865421358527488693790270512127665755586639073640019506240908167538931771827411927078381765418840139776248928118709803708140126294857349012192963575210778566549979236918939098101970083573237240282621697371242533884091371112609813952445737717684203797424660051058494172486948751653441210260301396126834509609738087008481178474594224216716237860030868440479713994534185754349673611812910792955138290139765572180968937353134227395304856263639340436986096745334555872327260902646024980965772554396636474893797984978534614669399342414247389856771402270999557837711094762189867770891493766925904709789768397264348208086244480920395225468090729827061081420984279288772575315745658378624664250617249420972827966205653640559745568225086949783193724774856040722196105388411891321748381150128893760888697496158252930149192174795837473563847311244230652225417561184956779089663662815966742429777106936420026980899073354837347122831059379256711426886421950999436914705362939318315777975580432283960709089470408979776808740055831406473639688745592057199925589133076167254417219626379417800452243957745537625200784352322211858809944835083625814280213135012761496286830502671834874715740149678376644314932919706451570190146751430283813806227911726937234816559732500185003645029036228584531304295657713126367215982364651790299849282170018763658100241315354728589180977097560543681656848586955587895066465572237250992672909318756649138447355335319931426087447577919017700997299673254535596567807886756861904812168741431689187727299270840766278180246170398263443851506190532357014419418631161758572530160092776641244113485375578312368108184008407428768030938976494865464094322908942029413827418985242752583198672173376685608057197860281532260499283304562224757422446076828527668342641477861561467575663002492942357344023465918915625555296939361278931184837258122633787535077894515394829853274728854012568971143356952458630937034218484330146866725633813584752739495199361835356593633018463742213305592214329115445312828718180864519553304527709141424392809638840788069857435399430488688863415579137749170091487763009887548156070406584205411362729449949036231051823582130485750772490795840622778749673189155071584349683181639293203454277953311399570229985952587225185896045030354998712710177984143127428734302961369385428383488828248042349487066434460326382227108366184538885720671984740331966831046000472688863568823040356109626439763553533641234404790744933355052857479717150827792241445665565180440410949122458198637893838328992709214307146706590626292661800003421959404535273052337616600899388383864369162022156553317274231668351472921806327100885099370895706718745247233455611081675996644214172716174759005598151960624830489994774804973753493124097558601287793712268006526252219226154148728231936734587892265604224463815494075159655476894217258789120593040996090871318836193897944271358962537667640197751908282129281687131605227625912554476333395852908723959178725432840892572590214616361538428236139171975501929279969813062771466725150121417065823248019107194704446249735133111452581314995529529600068841488009959821242518319578584625425546983161091390003990360688775803554394871240196379716369197863650690698496224159980968906526553168292189435846606586467568679332728917467119835853520018921542783670343712239022001909314566579232660297558898283057939609232648561370710601964164252630126475934887265107603224987033585085634774862790572446105509697955390589129488744413441940094738553756769737090599141720826099511065241838845852044632137989146785005182986497040164390361745489241843170416340304816029818379131293826138750722879803688538422999711810197814177628846217863614558880940524589702512317690040476990765001541908051717441917545799608267919222886753910150181190760163180839494918410564590718000657807950689112089492754724645442317147944935528952318001683413224469456230452141392013939725834325527645375408371977429025720083094367559070967847829225694579249252442177067499416513849020187522703714166335330147667222861083355034563396884658678517702993263944421369379703882141918910381330565257935839603159911373169057328905231907231878301291019010854504334833078848306753731690426481137556896235378162464177132883142282569624908518282718745256003681160300378852759127104950726744787058315681437475527067536950420834012437746852756830649921994515191058489690526368951291145130619123519846265459007348518048806327117928138880387752267075492323846438895149252374630591598374396156266709999979399326748132176269449771084662936390228387023482892107194662493652382922200787286878626262476059564706685884156734756862978060921201260553019696020304235232301612511784009312099958024788871464059485730140031306592712123873568527246850949257971876547639054391462951859891500754598030785605455304819882495420693821647280103290204860937073020361351833343351294760466372667579265042970778077022167375536579002327607055199552731688848242177357532869061416300476481588230747154651925076814657618675841023199986389201758719349971507582486768566242631292964121339095590824912489709849700508448799610460788947772819883633952564836941257543857805319652175312575014076019742616656153851692691282071108489662924597249935628931356086862172949957602686171523251066979707852310919787722891555137992854830619524416916053425226577596212131959367049010223798730369081200539598653475566803381048934542119857962973340048119477612204514857344740970911839868683153859782750981988811924294116762872167067512196048820903285996176011711149488220961786937079447558516160290105173851505483577835869682227522325750957356814993091193737773960186166418691855911986928859034226185933869453735775412493342818723639598339044802325055953540933888419416258436816951353500850899550006574985987941472830948307252422130472279986556607731720191091775899823838523873498920380579269899675413099594512173091000773245322607358749668198298576841101172940379344691120141850263848430234103650546186575747913552733484895388160553687155905629684140265265459447709032662911962162246764714394844421602635749357195900995051184918051494965942539472531489954025261370882998475713713248384034020882750936880135841461976188906708305905883114161311584891544822222560929591539777109105696875927112520733354868226118478577949987379650659334730334594480300222224278214081800549166440921162716807993949907506838951326118098114170812802977711898782481212201160826094716368475418665687079228448643150181406496366322661002992531553932284872198566680411998298945178718719877000817870315886536151029182761729445761517270284892537049574896407671182354158832938827466867440105609961013965398484493303520055147821976139658557837832704748312317783840303597913361311195065495247262210777663990150449626427601195086824815590571308191044288074916149094591934714015484686159041410828366188976940158310104397324363479391206412132135263137090890522117701114121435406746581545400587984403275409484328529881780235880370139484516184703688399561996973253186700786125357425988650046263696100029624036639057514526093452492883615224862378235082764916037023648705746360404447871413120774021513528058491234064415258397978866133068633869118575154540612026965216409090772633652464941978455971504331825536955177868514404209004638889007949821522985564528527603598275740854073721482943290052410830007974429331665617415224070657696755767421191698796557521354015563839909388278284690851870051158786864224061537621322018157557423923989346236969353695351171128364965140814687180639295169158350108462828407839278743033948324234762575492481045061408466564138168285454587904686411909269590398929161165276365799206950585864408726714646954192349033590208961123716603697129248200462275469993682427823298632938974288011048966211851305431744229318580829480714394802042874165545345655274612148967922977060366036481576441264285931047133671363088745482786686538500645402707231380003217925297486775393148951429726780724441045669965438756831378537674589531783983317517598206164146076939427311850062538042173679941137536072183633672146981343709411033507049197346918201387983740614869288390622104620977283621433896859575268237630070875962366911734112439362937955053337372011109967296625717172098759636870026546763467630437427571928313733008580606753377445112261020930470631522826418732957149569629487359538990626020467602974449060300325498939807243119933810738821270119653442622802944642371455884344278576457937102548270093175463086226369509982725622496474991190179358934499027518529186320019618039792549414172466049504034350687542050651562330745783956894421373438373670529867617621022696016162694640323846863736565603861475271199446248946241432985995594960013998834110497363126926402571300781257301198680796205449516626332111920580195354083211671355685705979773192311823101451305303892146416971804285632515169126826432407331665554615691905402980649351045300713785698495575900201617839286448780784553780708266263053519534319313503218409813086093729330677717060866680511890800896898721490634425207523141800875509902466841021484994932380743851314377020566925296120984581770513557197231705152632241196551925662214546114979411073430507463003073472055195520415135395726658100967077430847902479091654704676565839015033021128783012799301449591525085266495843271895333210547493078740473423620291370537002415116432910743276055230571449486907271320373876860307428721501911491004593789318132126407846322762468864558222747804345556231528927307273584292935551699743720388663918960686019674140165966520070385749544926965750621783086743119847205349084318668339749295675587758847067412716815468691307154219976043244449981858707902531149806469718387584618646208637209370557248864292088199252895571810292201802927618481148437846934766760955029871599668150754240226069299838069272904055493473286271414710969639000320243536106724180624274666095669914066612601284686584444464568441914673969733265508528146181341549426284118160305606977716816543318810426113758760054056893731397735930501224142589894080429816100128807058788152910706581014787071408268681620195722437296066226693457383094359051741602797858759442680004679188864255060074344787767958784008547100310432549906862590333863191910789341146082379733258277899782839051708583795374717273278798425212739773931063859999201576945720059997180201172939315555032997622079480835936014759639390661032152141232168183830311448612123779445477925951948630411041141685207389492768852624444373510851008342321335532351852965367418708320304876276206898393530317458662938885325363545064192992161270581413150980830998033646623638348400460867839877565309615443686776816896961060609634577798869579975289286189408784392968824387860570569593499375929328905445975045933621077229649454896856585632773440735700665253544446470442107938109288672848257989319057506488398232265984421305822366757075580520829693274883284795702178863591220809327395048677390238541134075843607313864584969156189672193319434914875349044405320146179019498024488754869424206627411709352555568280557173257869238042315811905392151260542049001174295684930959643144297185062583507496198102008608306563147890093120714864254527077724312967030254033512134748882557897165145536353551718596118628873109526896751264089340069380541099478453391931937992586409062530756197892147845813277609555205264810890487185993206916840973193294928002051605477461233199329120053368789255506769967144928850600072996676763141198534041629808528748890534775239032364835445632965276359699276911052043590744389840924074712815322998951046161264418798406080818216901443254806678371002606754799948587688756975968418040830048071172762392848245036604619560216606647945749220524447505985979045638309293900806270610157979061538250536793333894977002457681974327358506720757073171878262642972132697954656442398557581995370880602470715195470958405742513068307306375715510305286803771474801789199903706576905359915240324518875652115009557363038669672377278398947812404611705463275519083101404297419603164095320412125763940612205059900678236373468493651505759876414371517669280230363277653611604659181611984261301781323550528282602360593487408351756270771924178891754421247802770185452271182678718480438786275096059467102742010258685439416689539114609947388789451099475825488345032111400025165600526168869117959373891952050792419478971195076216518769279906739286816569663961295287503151886402824645696202805051385554056983168405970642716600410831372227868238138676917509941217860899946398015374131184771110239626107858918709913374435797111702606308487841432123539571858929932271594937439788368025423574548358450755898173462978869502122143023362918528527378620579040406199495332631208453214528830221178584107738318040952914779565124566075999455357043971973201478587477807695554626079127755577744472940668254452683889495169812477251302421839419536861840132551502813337657922452284375726472496571146197882423304767662228398142424418071458466167407989095422963195680061734430765497089551551821286320523370332444196469954031256926604420309139735098844139747989734371924833199304895161473452350318266975818285011621761319201343387247630634881677999172913535243837795251357783412772256412445316942348377560327263310169991874337722421232107630419270975530063964203761964912589190078960691478151978996040616900225224879313963340717182997036529539928496932174156739120538300120608569138301330582150563937771782991131466813240594426171176542204322825506634866131821568370962575627169588540424587762255556507134333576452560322313147507097045821175828211495712592784917471858620288388160054684943583296765093315090029858513163986107754145950341881644199505743971777972638402777000422630074438319990074599824594315486153770204915033168629860471713864346893281690294196243640400195036476125641336111496169405628128162724306760750028983544306585123261235502506466305617512995112385712369775127739657486509148329860274682414470072086107709304615073401082829190178133444486458049724077226955733536674768039767071339849177048078718063863687878831265628570593298266036570135723488178203501458002264851071181880342725834547603411533491439443052887384710670340117613894751647797864225088456892417669257829436718710098621922099864114419077819094964806429206265124297778840311892392438887998895708209323237636479627915105067371144867504657132810008816624498750376663687791369237686162024336679413676238092771860563934895290272313095042584883082850239731455927790175984349475861846831755195801708408973229624119650650862274030916552272335421959438362708941955752808243179199405098755293391666580543501548137732342314622093988648118425736892061387593640941409185716477340374225505633114306411525012300531505676223981756714801871004362475716025523387452284122685798248869451477498477589816326230069801193009420023073475499278028202037890993421983918163691622598325322606882384722192421940813251147953267710175727163959969847791148189783849378371977468124117541440907828466652698877051421564579669949327090704257242722005436685227469074270371633163770028139750030556081711619331867949586733389323648428741747398488427859426511991696177977419704582288525753224804964421071436288111835283275352722576362758660342292816410257122852014051474882958019198990170926637372193680369055612966587461004304575461248890646681509873231373291635531288166487593025531996876243541298966980524054269489693454385573083828405478112611635658506508342300805246265254315153111656553780991984079594735379572431959019392442201739001385267946064930638661965421268177848214976198191079402166787234928677487493634126827000221690519352006723126972081371288075958518676774828034316241063135240734525685899707995219368662588060513173909806999967265694812750656336173003977269980116522452325519877215715795673792765870924165575381971244919595385593512803917570739560630517126096576385917589841539215552683329295563982104002216017425847358463691440139745703388231708503472394286097618974709180623939731323158464274136849076019219453869363800780839986837419069832621267557521077319029894813782669713419951418854382675438844532663819905248110415532208867301060242205812444279992088530495241410105283292118649351355946108185764418881511119124230529554565025381781711548447976794592075415355301150537977622398520047519423081275960874632228909836273179113633042480904370138224950554342134329776104867848851895166633150998067089921541845023661148908943601310859216633681134409872310261390948427998446607172618869081843629217578444927296805970161251808503664221810926969341097128505698051338342275803148377754984266633395267852288383947325153715579795293562599483503128758333627592560516326580990924234569656896006951179067383496754290577301475336399004129675819911872840738803717765578183947267953406761365675772122543207366880057006732523000239048089777716357466097188046240905891964295692186452857755650936643109033220787119599629373283283975336839091453309351160425376702356529418873320432984585587500457693575904017311261620571681541760494706246953563307971286127362464988820128622083687845385389114918383686447230090678330802271593984906960890845195467609399501769663014789853119285691154346043231222064614628048719767427810589533042010473943794346745093982473012674748823104970297888445970737539984607586918636527319733324376962974421594234310939268646015722114376757481239574084414683483187708580633268030873283847630564202938090317149851366004054660697708829504967710942848239161950867434084713134355886538378265654167590772102817891512671314281269732942448656539803968687625711744312260490050688965687200858044088262722266617317861453144285565215246379033971722870517448820440533824299002446272188529557250615519239804300416040598881059963118448238338184775157578397069189516137460915776895986738216404209387786298334399506054393152378866018457580952402761606378715470974660436499296769296796504593034878007765835342692420573814981885210142903884103298957158970186351195031568101772102510858266400609484334213353645886152577585858610763201796027798849370905348356498311098564845348506480142732520106624683292524770967804298396201693237966474924649822328714392661381222670468962723843871316890307878449413095097585669015186176164324249976033875717208466574463118638122347443624503811281611959061722037740800044201950470188734972459233512295997607164817703734214868703818616594000793052922209470001982921427946373962333750397238557892797928966421794210783450436488872697496399631802406503855024633806132509028879662219008584596006339926428301263451335109497159237869423469804741734274060439990149454087782177522204890183048622252939982131762224335483853256872611374556883095782480768247159205078952816386709538406302049158164035580096452165193810062616983720004241406267662478003473676283963013759628221141449103734123791299923024253556499750172122290547865430606065291336385915696332906894058953975108019071132753517329805174196762205226974327797667358272064495233083301548006815022105125589211736307403134513199626416261776752286656528569820659970433405839093671738648675839584007304812827635916341803669275005187183490985545822961064431034672464624841183650795014635023683580077882611291727372334683221007199522770596840294638287314950941503262194413425342727213769313065267219640073077140221764441223752167248159780875814543938804274329294001518704825708582669330988095641973238055413322033995331632879505139860732615740235944382570005022855133546440647355997461305505666899581151251582799715103053008845141549209160579953496393516810435970415826387777751871570414387022273802319811053453943322825937315195998799366252109659157752639978530787450984457292254115258643739965559170636489889573029241900816264773525059016826383259275264914900082274837006791933907045235215173764876392449729944454014458751124901697394282591146544139653250585211385846925352047281447165864135549372930616372704095044715143935737528014003802634339114434309792115094025391400289555362366029787443180845091830415184302096918620729643139267461450962327169800943067670803452457121654628003884418802368571741215670973133190659352578075487490547510374445933190891754291189586170269741821062939529523842260051387830518377334929260422721647892698239647072962346518342665015691505293604206758652048608245963679360073270667943886998080038157106445516836386079942572144302713254523274578215082795454382569018116581025932023671514714292566717454964440977644905393306664697879858846860559455451628502721436211740854346475203665516858027916918935663123323404682685390643918238274288635083376137129021030408341638277256937206342706613807776247426135858213789063151652244255676501298525229842010365991267255564198630858386421454414227158033213066731123584698774626725167862648691620372876022433220364431838324452936394019991221928620531171999064443813233191974417832047762670999617831562571094694364061650385390138599748781310375531208183169881105405409959587777505610960971846603848029337932061246807867895936994397376202606549796831813056579032091356364143127496598031910382240169538004626500365254938687978683054168601151130270361293845805859082952332462374238788709735731218643913583149477261578407170923080770656800071517152000176967921342672394511882430344045344811413514175347064318129752409027748593478218937425469944352383423821685376205232440565967286161875457193287056369210525181730757091524289267984845588408362387648149854126807014711745686073312904805030031122719626773667982979196420068127121401873061787204558380783993604285052339910113519063233401609424283238828778866969832830276735933031135109803090956551764928751545523835432075124212315500023029734301662008426538836651925697197104463946027765264787510574145378346143016609101542188405608187969231986047714851638253963417408444872910476290340274144441543308918441678132537308032962163850389098729268171660049488127866766408487127799599338738892400528187208935158665437231321087211881005855456936278316873588618327299179566280311204883746656091491775663786463713068410467471143235345360449707745303245347070823469826727040264255738827424404889585253792534446081295316697847299744134013081356284452422495304708040043060738582692198663086086945138233142061998840681775461410511425966718433112571371289279730809502061825226665858261982289302570983611289462213732712556341017092356017087278100689134813593100590976908819852441453121231646159181672226369532369856979785931465726346033154309256036543721605393927232527081004921211979874895862509967363633213964453837213537397515846524360812772092808677840778843352252407302509129628307960885329926986658916387995219701734796012671381240715073442804608876371146165552345117379235860403281062925598834062455621144515676123583725897972108449467320840718349856882546398381903194324019329839005985302271471970901878919502181726933474483432805264555126525997445678898214589373368122426839836499378714550800125694172146078906881136367494970545020854247496932126234062445373338750493555762954569437603600580135596274783240422637815087794685376144519795079685788664512113127226762600953734351459503069591782308398535090909837821359363104291046705211551105718780478496061149985046223995201708351194521149055573767838766203788731813986234517595828820320422714026895688473970020828025637304291613316139697482211966616590514625243517768121360898564986518684638061969069443161907864226367722409045262741618306537367383610735512486200760038868834674459436925108892531117500846381986885907907059333695821329898917699095260154596231508160196094865407154492792221447718169180518394210539152637175218810384517616456499242303746048688347249310343738792969899859292524890153063278234845736345141624573033985531077995516248863415402025247530035599046019899441981504344961828882182903812289595150618968377094104199239761647872117570939280463898122661064230565389541534475563713619546233204801670692899580498622964817476846363087595949979868733921023765755827858500303002037054239923122155639187824437889981036984129500792776835772889488740007258791699099403938527014253026596159551069504871183893010953433091443075397605912053956800656510641574229465262375464208856617063881377037943078553444670602163725128129269597287850908642365882201401647870734578182126227886726239810582217683203072514105624572701738533219993502694231952776444711463290892920581781219743780142531518442970696437051907686450617336396388974160139227430159589838312005912381662807393394352645596071915457887175705263657744150925165079800796624378439665326471421519572758730149978164454477181354044697323310688553974808652894465574533586664738949308539648738942430326825144082913145382031296331793038723264092851213856213625215785125390154892646777159722860860542827061191727488847899086661743863673556759051604461050322624649981078498262838141313585304539410686232832757657741890403179936254634040417852713377837199736712859310402390335806747587350119971211412864581363734597358448727250546780749196762969152543237381232339017773150399691099178370399153987239708608329661556742180785612303535448795945578937676020486236183992668107474084972728884113032289201407060143003076332469569232665635361946383059866034795209172346816588425125629159655777602641921296016226292544326875952919089248080709845296987402637462585698431772535802597031673407153603560035853256917800732391300776814672709503780491704542438252771825272315711758627881434733430473268827243685531872884937140596121551860242513830915905652812284786660955498960482639239556396284781455158439442832100842476087345969443082826120468389705604176660255180453720628539288583887039471339369079608402708236192511498913360772417330954871661442840471813570106764684955106987225097078853976802030576577423110832444059507286163672843188955881428922401556594233723407617617275683337089647966569510624023586511934815618129107312034803833896059454382278882421950678836973070203491679865578948795634956690092725694544191023874156158233717069106777468181249843808320772001782507919735382977134251728006528890342208549348334902527830859201973161191154533364919504446127304625690211811984279182106884179831997935345595550720666019508378374241492386667734589373178406147866198803024502713083387471613811193063405986684018792055976998707957146757068187061845092233751741062696362869801875323600368218662402173934151198515860503664134372960901917184617271670631141117461172366565803182880469585369637453169823355810938410060873933904182572226839362663497927684255105592190936781052592396986130747712235327756318358116091889778576085910980893236625817119091179342868767953294516718907290471935548830491870731189813999206598228112116063228917992503614495834505700460537592629002368585692574245473360286396314072720754271603094322436827679589765560715021720549157974611447729497817134120202917003949212868072078715700273755650308940362251215136155771161497579267994338495052212817010847351489703911263085360851092509253625711787456054629353692628814250028054295543345563884186433984128244127069186736985784302637203569069398757908133855710674337799695240073266472359802644158223723789387959229105966222948936666028170247660665929081782393359059026415774769044374456689384961680375172697630055917517145485934000906824670674065453776153509260789616854778589741652876016607111301771994309851215284900283031982656148764520482135838384930353872050353935989333508090580370408253055886808966579062758820785895532975936656400119918080000816706340225878518352488691069423761609756981984961710919723269302451607284795266500009037001414896587216929442435287892916668419114370600934684460487863375921174988884654405667454373475174786562829908244831458498729708823784120940618790521096741147323339816692363631454653886929725948959059783313359628724647099196180693106706110596208164478093308102510500794088314464150350734443237227828894905865411115006266600611372956634377476740280865273063136757660185193160024943454388149724195433179859046159817092867889692718134161586051317074562907786920469769040328126660657642397972043649826708855659623739884491137362514275465787043306740158342300892833343478260023180889571434171670511447102717084549380011404694993661154134259098997386504383804856329439764292257339308071103212475884381493769307784780545579265270726580865316479767866819481569068330677528499754589539067030653638761069003118420067165982483044248754263387601653078193897265688668891704126047008859792931339635428600793093438069395137079236929633039189087735061274213675128906372535415194881052420117667444060999308703373039538080133068496768108664826234123675762012221699659837229506759108293527296559181185360342766018685411828495316375200945836328101758144404332903722214435472161945341055233395556096472664866722803836026321754476114793357388954734843677724670009947896209711737465470611697121651984209592089972630163499270157308003245785143761868334287090376712776191007409697799485610018635901947137326456258139960419012498272956774551493623194031804092017201641753585899982279533467644067190241119286278626463722679939233865683088684287350794628646555188642593224414560873747107167610653831460792091402977132582509358420146545144900128724549583511805444850135579419634948707752708111321659929984544851356424800949357475654919838778034841372621119507888600685159161590465467747868816212006332111818156401593887058600618267442316494965900263677795280728801561783798560579324449866291824217788937673885495838973757108235169747737374820747756818267011980480385377698836421226476854155221570748459443746274916148839431102964222564544379913496646045740052027411573644549563203720777183573726135187134004601298474416265820923737673549827449784673048236754949526607390633457044441742106712625226961139433785653792607059105649753156661689319734084012056004454232944666742187152756872257533723599597694484744239518392441000365437674128148609113509295240794186110873168786219849825267941080111917920790529402088381165651969101370049526108823831887322547262743692403614560321559274020039630206654176483026705874470450634347417226094450628099956380183529372308529339566686303018837936073326251217637074807491849526044474432811699579213818283055555151851837362487165851382872539439995165518257191839873913780042435227682717945036839974259616062092937171285253367243119402814666843067647859252587259490604116866573573805188555098003094346426110148076965455855846145139206822661226389020309500190295980627415040386639772746032166209735522504896313949256626812748786968776077141667493027638767482152518799337191047599007752341306508935633816157591522840935798085492542951663994935963838939707199943404939235788299448393770757085148376937365229114373346439588790889507121847583323260014280468999267856887965293315429149486051187490533800824909396395534959031926189269031401982162449707815941859472368067580903313741618425272277551116645099511904876302643151362912051491427431006964895911783915563121100897126636134034618917564709140378886895888293426930629533707389210005897771059138924981610327248263588843494276231363581897172654752909826397284451647543427813520804290539256740354470751866206653619307808965579236740806320693277601205375369732258653166262002564809126143311264031037999770439231333775113828209921443602322824232187870249554559393683194716758247372872054768432682947723980771090733548794763167490464857554384394873834473653145881244345036049657791430486079085834552054108610021956714561150418230646710437195798912327998064449997451667193665309776565106679480563245597961764211613725741577105181037799969488763147932470004771725198675320751880640670525449804846970477490190327659193181006283583869078312885079505025972352929067524566969487320904002265148654489098862363521135872355972496989206258610420763240081828114300812019772614721207135440302555607868261859891579019969143067519745318785281460711608224816406177722135143971506466151898912564424721677663918967401276702347016776637652631510639969404417696589676543243444733656511713297898935956537015690275516941331982420444493216581141539680542083317029145646639644013906812701234438631627777923088454671343876589524105645740082946899959741604571729813775436912336065680420317166946189985157864400461734010417443066847599460707770058061085204134039982984146776191788112068946376370815847565800690111639958857433636694968667260769506333186620370901002351749834116034818590664001995927243956811246407585293065692713905673357265251863756938131751196836552660362347240567457446425470651135047938056340024615876120407036910361672636046752693026370735829007442865106516128577843303140542966950437104453083983633696457673021187783066544385981438924792824852232270983294222441526685623502075713372554577180511149366499091649254341374473441951157150416702445830263567177918915952673493663322267750647548435548865257057937589202504085626025682143619850035249316627400980579286265805160512502574383688938785720530357444337576385775899876677485591285576715903106662753991171827374825848888042638872751141096019883342215857226512825716458830095235674626689747397229133291245560485827198498407745550417359628870105876070315495587390664235034498535203679608069996126921269151840118829327651098475333627152741803868724367807501334899253569669886072315519866591812188293643381295240664703862565090906007975075857760775182285592548448851676621472515692251618870308103804271907452574374236602700306100423564014001863235692089247354470760093926292500106532940029400531534200125112038041635041089759295510431575186421121693169330905282685260725291041124248905487817315705901456639268571749589716469575120499719322503662922263924960261473023442398859652670112196994143571356489749850659679945970424434817965499328466856532792282753658354523244269287474077140837501595393994314965149620101509948520194763965832981378528502953359192336492975388773284240461162206244352034657432436756086224975594384430087459222937938125331035902189106514438731481610141230395514746534086615658644709622364215431792477697075899745633275504067937190135662981522854895428617727174043760796791306032090752778164300561924256173395989668658147396285043762652930853054661484227644832247842241088615330694983430918695902475555854064633505351952570206157733042082340805297110330188509500551106122668660746202122640491580309860671601575746221199537562428971269092046703394804774524678870201707732263579863204087461669555452810082895256009293688900959068078862110771309471395484392214084421711225443679599586175994261272355830807656409422480800373914064334012476515754028061446664420583242810001577940009733106064064098031161565203423718744027131593887845398627007236053804907664573255318698233334857194225927345376412785299954271814489278833655320325226880233156941669051515871710177471009291826626708566201940086646670118709213190939442155609784483797491899683003652125460077816360837733873809436970288440126669636704689337346535351595290207528225194228736809119911214676801979814239200357544324724490157906623997926905298830631636067652488870845310109275412067863719858684343368136055947967443208156841904112564578162121206398108866918277630371542361167474605495111562436277905923060496552671103872914718010252282243338538288712033553253758511282415966094857392532538039987602245856794143631076685212083068307815063341324975161635989409545688294062466830766291429786530263646611438252532526247819796520110439351292355341433006728036858133445792983606780289008497430347021644592118541471082249668682524068220752185836007752598508490331038951542037646822007403845095032516820568199467570846102593913571147279191207424708255411130676888349100852536748019560650528654205861570041702513545089653581206871612096159204641290469928676229438550561683813885598614295988368811292611301871605886591623605263945261400643041141262095829907763369260612345508082984822313197687971433807784755541271436950478904492669763077062248016270077145126390558829320439848994563557952592173709263558458338418018566064178978066909590428403212073899458162232401867818151460138287656927261435621420882207499307516447873041322347135295213652029284188879813258839503565495553844491334582499016250752624275715567692158862660338458994042821122596239603812315221318795709825424328138758273177716257604591261834302615188539117931783065356071444481273207201237380763338502387465100875010580507966654717267947381901924885836185406311081733661498044699402336913077159811049917323805013535785342045656134227470985513503965652986301674342518199743786515984572081463894276175651799311158748763780994110187017386170092836152762994191037718218650461979323613402411073535603954467486242258839131660735479434727562469512295178142571913847135436491683447233695027212176104590525379026647620491382025094236563700331444155809071305284746882889507742416428225979878596816017725838559206241413435222341369266303546908395490231469453565621317003523199454838643416661380842481028333590201241843409180492730671956763007832440878353692086046698854948911850808562667840485091567024659579328611235544789088868610217651894972360307391363362325838671625975683635193960174550774258043949303528330260424478497468453519864177473150477679299583967044331940359057157477065080419562083265342264948110084907454259100684065148743494348868120197928829156652539209515084349307435429605348775898225348501620287805926105430927133640074436289818662677547755818679521263884721553685072127329122066539725122384956868272204142037907622638833051048215144210597511172995123501138997348708607788978712938358537961141822777476633948046667486431573537980203387491240413434042457852510847189487163913863326755130173214805524417995876417412533135909541208165582338720118183032007259008391157181825630052565239806609188553976876377600041325316491394350658143128558181089955477893373005374430522794455997381280180274144262284480186402143468840041956063837882051125100922608947636210534934746671528548899471943570622511166308073414054624279940943089132460253787426667865199205156851320054104972494994378354809344183011362038714280824632812199331254609189437897844565967160468156002635861356420623683030128999384564105495408206290929428833581519464912178644622656235353526236945397637955080859236445119460987807112142432350758158458297270913326576042294759629212624012856499235914650976600607015995155897899385208014001493383015446688835289076167986644914014825857140366570675769765697651281678263281433189382799675269568201794885886315683353323190176484201249828257700956165916913910576540349593756249936181910249720607558084346547072744887158264159153791774886889494639021336365639090966476549559923214047151470790590952827419452238699546920040970113115180681658324478265408530385606937736573801379256787112353212368724077484061036669651117807910234004909098634575372030392575796064218738244403913021460741877340789524468234764317629394996762242625563185587983579385175154135372575234443755504197046026805009340723566728229941278098299521861184878054769985730587690680243042785288905441689560622812375239894944605849654416043668060726809845492699578572572195564917791093387361143080758733053934833287600645868492312480419685220878644723827665823359012695348339642154865770293994528931570119458579944937787651360241451420444445582302415884498728674774021318807961273977816356004223295136615022727647716405935065515501739471361007969728021512363490544004955203241118375770328203700034595113845063739624054912887032653613221292725961407124618399819889807510583796000556773451355753501350666841834305090464004837298788024090421234580414470867713913266032571927886384168256245784369742954540871019689504190533737926001526521176816925773199916295624263148961890836652044415789130614300941090456875021256817006986410261455041217671547951929955097518064615580957261594350552281986555129067278635595007453863232069899437075899443422577771861001499343266394192740644644166341374454685682859805560836824830248882005423211268857273284399515460161882249189232264341202111845265907819854944461664786929102344746852994547485980120156199666452927705080577689243977930288841198022885126486743870066560873204776797596348158300695743495923254683804688375656276959078159428032778615922491835635727002304338659686000697375196505571263147636099207025541746838828152012597439942699348554684109667729597451227782277903896561140469557736649296866480341534054871613096018534240880538044492271436174799407956884702706940204997528329186471547595471321684222785109100450906254037049828538399269917670915599932896088209917181447295733556072629042898439378961203158296194676315955536479598899802153467988573903394274253386544077546651128738576691320594690033853316784361544930094832274743523962002926923182841853567692316811537479380691743587259006488125923794925195668709435286465470886089163313228463156924509847847993411437861484485796220567514640287191573064997148999169196286249779485409139845869803739001566465174255912331157777413610712737851847222439875975906511295538661623751116081758181520096555446033807015507280367321031652324712355394483046629262949320904949119812655208211601382768251797320488267480777193232400821798993073768359882894470939616676149349266397769670806480797228913619862330643177709184254157178557636515250155882262361468480970702435524244483837036496099980503689885833038015317601988923439473390047584363257777469106808144885268360067550848849912585313614768303451890192524176406047852971514002939536118669802470935908506609349429512511065994593855443434128168705395364652888214217410318151448912397122465040573209223742414682899265267324101330315668133557806433986628854758490909680537370395685063298995885307728834367939879366880833282740210804846205939599685748752438140102960618670623821881545103464242330827320923810696454905145351972654621020062502636744693844104896888284640106256525434587684454962953180497072803549150582855872762939632183226593417176754112174164136512790380050380153282879073954017519249215780829587279236582098617789941473562261984009803304268261117594287919407660464449710574766019288420461270884840592969565013383826520968685858109994199066497302165392736516107087349077203083409432195031211881595725911588508380507104215197281708981111235223468221413058405129183955267968660524215170536940644732801080329629276130744607229786207771400760869084659508022644857595048905243979844118377781422392937875687406257530008787863256124298231803967126535912281856452797097258601558834114838650252394375248552340407676665250290130475634425132926366436966235778473050277415614831119284118307563714482714470577344049218478110564604981764399080825278581383266912732752890639782169605756811548823585254460527274061707595201587784323933146541012087631451930936725958247803651378472372272045975130931008230781698605140551990876812518728043897196967418888178160541952633741593073034248595233684943187108565161967848951814723621020709161111809061334304868541637876468259464039489789764275347121210306200285960924941932809286353159127783408879067356768537735779769974967580132116416866291040421544469949105079439151352289926460597928777057152780351647253597890656936429310785783679815325403106670098418780956701921907758808671550372895396258953543257849401234185933474850517755101668265895321681198954811251104285021284821278819674334038875381011805450097225113683928713387810464725703349347909465204814848155482490704190621150150366288970365166266932174823891510253408239083107631145626160730018616250620614045286125477686023629073085631847746273362364520552955202032438467276105846345972932717094799932766945625395332411228555280241662503948911213288284022297174558249049501888680139888668477925664160274864167020476635141837018327760443031277029967060335002155943691597303235218366623438527182561688077799536367907328548732957350283183956555517950084155615511976502956994000134240459338268233010125794771934841116631003225088441746990246254693593538586412416832271651983799165550787363943146319286523343116452759540397099925862226633300694059277003848984477962807950649726089234148303378628795547111566169052087742647976026742594377144805204022401412946683559923876182067656608453370708737979183212284898168311343536712266808563784668430950495414810816234005893149408941729876360464618270561198805382679645717950275055405371265396769588159938643979429670269839120707881673182106294796078929923234927243439562218579664025848390271144766573455557872689761193246386845949503234137455586674226998194265483990496971257492268413341410172003810155310123370503604607050432335017711541711430001070579996925293107359690324713177517549373100433633839864850623491977997115681832777556848923001117356874815823157113209910364866151788338774986030142358661041439591664095157802620032517508473509859237289055619854417688401141966378546529976005855545407255097069768446387811528978944587481315823076666936999966873610514180746785095126976489528144719536374820284357719568430679576173132720868235893974980878877195676038464473324884323574025790134737110184378392412030896142727983470768662417122286201129053525081572652029788142598840156061863186493744842721706518240581844027295753378184764188686672896088768788275385165860119961834297253070965678752159922576449944594264327399335570005271163327192945725969516332961138099591868615421327466596729161665783056739544139079340535956059721455267464396243912572584609595958773530760015077376404976388487588505310517961745590256488224403280926840517677320366245835338797185298104553073413096361150678502821171379320409821480348429719969528457053292461629303561580074639754641508397918892496185593154547255568147183314528933040910365430128316127229201504116963931045655896260532419947720772338712902733319562249867952972978252209523637113070558779186917320456535933287715444954957753636374350333487963486259427372528862524429515661276874847388889394620499992105995744386668671578985998220749931580929645869624472821850290927460128164276606334316925518949053330110835772839543569939602177752292205181312990195624840900036199659621967935947154131361509574738163572712098497376041549290790286363581814977268102941184601575412428719856635840983444925001118732689079692991063715489991742375233246833919601451653232492059275648807979830465816961571447940201556175001471717512892851619954835458521430128252811054338017360017505545064443783855523006867456455960592412205754458233301594217206065512247132493551380590956876171745557066263823002725623829393190157454024231620256955937656778463616972138012004539944145751158711216323029963966423173616828112593069365328320904948393839719047010863526274940828021687055833809434005051357926297012408081325605025406044188618750214084439298600331862837593099916937439211124241251947321226977203417413570856566032037204098315974229744838429788679698620189087075213381071123117445773407048184596415105010189773548867439017640349327540915307740495198452831642161435325428503019044034476124099838100565150454606208337733771730001294210599961529727795507818502238497740320772546124876494639123135560286682931802474264375019687955152518169366569442121892539039031079685916854898284652812813043980745064842048639241414724607030232320056153281067316246711395093287033092192980795590407114688083792281092256505050835442104080351523064812852138910362803466367497399940719924476806879280142054541600112623829308885191771478623981431024009586520590484443406902106074895390615099817835760038164464796491040566251719985106320327576628627033763326669348586306267433226549128997315568863579773297711961573458376268829489403718704730891074470038997980202344139892184209900091032631435346525292355332730789854168556222755178448263410078647493882950798440213958264113769275092378648906377044872893188589380392661177499859573838165942526008338845265926645463622339519674826841482892218225913501051157120914448410983184495386962284610740833162560510034536460923435405616767122085511947861141807238379065245582273990882090131041215820370520541161771476354527366899230010365082064173306406902747688133597114448475700345992654435852203921046403160724627879232179184462177730210730278793450005130872713906253511349052366425166841034433480508966408194162584121006008650801157061821496426607045458814818955693465891885534365340564438076123983362709721700727265270687862303173474928655551657414146676727928108073727896072143450320582669510305608572957253615063963295106629821390203908828656975371492535424863385274020969962859793601233430683098859334108702820300662352667314630859221173716951958715207761127051757346175944857341062315423969642111694547407302031386633286356350331823703826806560740120953622700828877153391093090029511285273291422226207211230430690748884203029199027790237652018087026980450897761285323768613374094627924958914349977414873859401049025357048687712352610866935124509515626919206879834271450335981244777035615437195188656540982494270837184022254790466535870476278075824345350107084797706493533851666288840870344779324189865722200778284139512872548479349911699999129766973331244703559139068868181159119307431614303652161322923054650315011606781340883227003358562522293465539250904287056040547945299248250814490789937420627868129971945513009288198534752222133432518516314901256484578105727301328727144102749904691606313743547655770928873433149574823851982353138271674439785267457106936590916976825486300453587644499885120374889895225288503039864954087951300940763013314882738725307375603448288354502931033744012049325594674498089992398744657777326503165558075994879285823852206341382718033616123652281862845940195780958756964981335406209558070422259895077542875111284001821617306016080870666937275794754632083409063966910928372508001798012171321562240391442005639696362370885062622059122615306019848685774615374298720696725203376787404352042239255644750454651685641988632946526624526384022764727502955742457698852824835183861392919053808945508062129090143800636904223265144177937506394696502424106203889717770997117863415946108908596739246908198320047398463935748788597411499289696633141183425028604891992763451631097520863231000444548101960372077378998430203988748588470729044109283688089712983085686168883679913099143365759303142107266221743686704893200062385696142516604502844559182312176188803984143376836366059395438430169545654197590063775915299357779584820040991763876288389044434991731156052035223820080724706073442324819867345836144163871001227111408748130628803580620637474435365813590024867463635852455995202962587438853304535485696113371251577502176861195837387270959217327595515663415872490968357520649441962483829226805073620042796333483642870913886427366431255241459255524139516387957436454944360452142349817981885991509338725832946814486866970955380412607763178110468211479246888342420890001544801400659878841536396417001722098351183529295260666703896214394699847055109554062044842380435988190213878202248573770106198962653596248685825186125575627690963704922272195333382107292218663414816280902022068709634113021782913229931780813041841007650712819968151847066570859484439259644418671431879806284735935683223903036257732718828192580918640777177134902763471107303646093683261423058362588608331161126548678067620541571622681899690024598448003454163022501188016337972292084744554331907887016937842430631973978151287072690051902314933257467178882393328579485801595659135776440743734882949708468170835420101180835700869536754086531498736998674916290022564258771409272955844125218347485653048785827025975863761139218160849148000526267540064143323247485665677090769962724269347506363410918913568641312826286007278675741336388811227624057117575183744839169057068026834339381111665055709450043041679488840662361235131239391218937848056291853745159466358851656279314233193312238021058096946828961408613338552103844440902801407165084736820722930468106765505226246293641378394846587851458135984968071466561433199696829658245182172220217206088087765974154876380393839268835658906684033719019470304755764219079459395669297381140890756988800093466149326624989825904133321615566335376303192476445739297871763843806906572601793205174509658515112075627485711136018932877501721000443172767129424399386788038532842564339916199846488660194703641072717557758845626838293205541416328803027636139420999465019006755376424557111725455122842784383817098070630910916169132879765925406491878916346568362033148006030297939364775030704571994037251912725458829350590761855161879469187477680128403212013100884112309608292529010115842997392705072387992763132941475565190460387197343056942767055202906251523227601646634490094130870292067841427714288855249322920226315642220521137870113942809987845149264117023122251165325790054059829280178255403429914360615534427212904898910582952045936450247285223102395395693809453723046520211132097204859258189145708087336886504387563284081520026102742626919439264702282202121666548313000010809721372767994129722930187862919723159349659841553128855657114959603834450823881223201972526726146330234473761847453193722249913940609535299258489695217690531321589549728493428059328605087128617740797876274770644032618050582461048075903181783231565072735402802834652937386312489740594295485944897597663483150910144681526099319643833890855121290758171965566828668840709419442712787924958158673888774656923414908502659966921770911678395448191730514765828957596465769290259523225707635746276654601476226256775817826469561427755755809354337937930758199061795688797339991511546871691085426602048087299736525624804696576026541654790604222950295291767593773723787903674657133994223173133673043322979187548727064298639135548720806274011655442294478409498018082092071948758764740854747687096429732971976385527658288753505087656047368734079645330025554912077398835875604469753686981758893807189748010981846550555637233354599088833064307400915591020530008609695991700288113252881969030180744205226599814978649792853223982538232156828539805898677121149695787328339882227510278966077475043213532981159663317339852722393160902682414466705741758972697619804722642005744411202270399404912227773440500985561333370603929779597714426950062424278221253914478419549059657912250034923879341204540364249433375109317458166094582275699580372168956607195993014038943224056711845190576817544753348577107681595803561003596922944021872580611618800076059542422843762837680492039814744694138787732736222207593691901424728194447902242320872779353926428274558488649317900734258008404576429606198277705926318770296918306056458710310701007327332684739802356381113498005247475456832205800785955408741108393310379291156547917006007068415876848094167388932486705390569546031319523513479825790057036229491830440557950292580969212738858721199905341918541087180105509431494967630566913005313074404455244651779856688419556380180187460805556265572086267501250363815451640617513400466358272847012201084520955708328311911234905566292146626837397197330530616816122404174052034472734143657246961878891319104421715760665908028632504314141208758137991947899724767577098703888205387829735102416772295667948315338370035941541880115968621994811908719842124448108180668036283564136769273626220719580833293376400815471924779009367067240463199863325665223156270483974023316975305484950076439463956285562099251455396603255530856316577246563154332517895980972321958979106772183301335312178409418367868859421354476282359371237062674175384212019835171500255560679386988018421639812722162812717394138526423612189047937157834069283947725436102572304225253730398956898785902072293412789813291101411388443304030047500168630540981793245598309472410623445705314023994178214715617771884777621237909961991282400330630081698733913840255478678633581509220878022603046549479803129144603357082758578118980864820331619720360670865799718300263144089122862640322004914326428251876617441028371785827410924562431056419272307603816060188857221920759456896693059586441899258590690635727816067822854130774403867941580408922115975426146973076409885467702441392841476525162923821800521804791059449936777571157294517656201604443993574586785118337860434715644410307641561472358705066317612310812758868895046326511132903619997471143848377390293234166380807477224621772807422625357218465280930354171784758909481592375392327803246255806158736938247799244472891353633549076335398101352989215395069976720691228975091601782021425357629701310678558801365733096439412363946169970057686342813039830052207695428492570739553116905482036715488268993541428918544695622990948606017314355433531975391596803972189346784677884892013747712714530421294848487743654104222422609158583273654297292415273535554348022573897296674878307415103723950928116581296941188572346497653187569443852377858660317166336227660096439326540854550488494366766223632243619460409499179418195979593927356599541955874319636932871971015282910971387353606565450434326253986598740339008213493331079749139970359602983184227750882626238933778674666980351269928463903691319386070741962515973528531359585891264993988590368282970169430182272209196402462623431848414350616502010696391811182008105660653078288299775126639198726969102008941405653322008884312231370354643661463285741469863080349216631314709054202906184674878681903742408660688805830063474178199996685981104244344695889301475121383084183264802367452964450809582644665517592443589355627689288547006957478498116827831550697991285323147705735652617562494182297906677166028951471525758041199761768408825483501718103853354432454625116536998116090234782935793552419449054713892262016634806921456100600869625344711513240136709560531667997405461767558829111262211312083198185140608607887191151992940600662593723009536656024141861231761832818193318454657554307239549853532874845502317643405506367121883477718401074610360160388060934062194073219298897246767619278451973826258239471538599276898326602740757241182198245883781825688579471685089226812708079580397811335280541688224472531970690174042552986461485852473153552735700141506682408945085332510055629923841534758650966114189349236513793165355068013636337050750239048471839873607283136769426613016209126728799532094379350186535489116462097703008990295977293946139840617364841713282242717088553974767609781406768011328713874321187934159999647673672565996955436586679558937467309564674163629844243988666844235760596594705171195732464165836956909009791554230096944716315267629951216347244974510928228955500843801938932015182613208045479778292778519648077323429048149221992675733678008354436794355777367584708928392782059649922428155238884627944104511032498124090833157818232218604616040438748883623291960557895391133986406452696541773685072336703076901289676416896294016772761375148416842631306788166941996156571065578966910209602150515866074207131203878579790422482468772512732658555710196547444556985907469759276629464332050272136638638228784135586431734985724273791607880695931719969784811753886888916286806270727828183726200304510411812364465875998447868245866180914084361373643155106927658409188024450625275895164318087485555341426879132656569018229689897736412822062949133881839521509992900034891209470269244741884401553498699938239426230591036235576592626929612322646105650119364906825714044293327300103941187654676489656069732807620817468039067281750460304330924112927458586415530047379437229489109038951969865559544463116984974115497974277398811540853538113609737383403754700288904487003059895363521662096368229234818561703499236277900367330105421763270755579356550699042263941774011366170083889623363854710198341939019586804814685735215753907000454933753036949722974668805754016518217196429319534096770393069365816875486342045449589653563539406893627805242313021593368472023133749759342340028861827622817078896736092711207195557862736227714351364135895971881142590640161947304644245578102919250436257351014528409555969153056768404197500631264168271486309986925417917113061045518456804743819672014373619943898830198807577457228456518105478111971701911591092041664631374368109537013153763372832230245860697597569527789424699082406061367770484863790150606486614206929331899025604545422311136379280180229505094344950439456460218239185120970984296826273861334587322408451720343157180546562653403205550705332837467713300768791673278164633034130857420775621170420693171498663171802816278315940846390929002890130529031594429165369230921668836526380519783783513497858623282921023822277783599926426337206248513386246944435598662494909665559249628620536378420805502132783784306531866378464815793059928071476413278173880612982040017918055338072525176582201176278695311509894175866868961663501109635783647846670514709706132080526093283145821138917454305596418517209167154543095197965020009310254288617063453726974122153659436096980417021699598927787051523178595296596773075975140500782335021245565231269066309042589510992611068125295686754172993708317297914518374096919834890433961085370865585402113710815952424191513346343221127366943084784177354541770291279977479862850956032370725010222578467469052873742609119521582597554201000416405661945957029730235493495359038419005881054758407477671544192087527270817513771682792737509082374885567012934768236591029887688113033835062418197104553412555633098140405008171804831230654202339369534023321459340426021211649586732361689739530044179002147154592091125344762890423269326072329439866025522692893033454895821081384418913756881725895811070505782722584763375685771072017941331386465691483510437899598680141923004238388999362416344019423573203289955427144379751048473007135024046213851152489382357006884211567302438018398435162770045546328156697466896313942801203749921983573355301824544707615744337626415163130610222037075665539883681054951048946116647644373062514464052177019342885540950764848380982631836176457709838729246806727281333927935588192382568738828454432862455992615111632529949837865366829678678764880731196779045219693411824270112654057404420194539057870620074956270395596733873392093574217948058522855740239115920035417273167183859908310281384770685824989238182640155872032662553887701346753796416044587173379299844556250408489840004175177756180188358243071271693915170095147924018527877059567566676593596948883030912500196908825859144208741172297452193574042103457277653132237776137531914699758149127130680384047640479348715882525004580191638282913660656010502010651744561696814491581766461663204734101723546516878102293718504662580259828061324581258629497236522566812164814915729042740579185974383788738343988311675488711163327893448472741649451217826569735303278756160217991407906346002780247303089213249143808258569630594516769735934322610965883057555056915627191217851970556311780480806525151680323161735206914390907270790145626273278711477558479914874911689454810744623880042758569915271709739800428106933293151532103348417833204371098798274725020497429612579152261968690225210224888112373037049124457799920160372629659338816213915246787654029172238965897307949862694466877172565359427304858623533401241675672302600793700642519854090065049784654728208565795356532180766834310079540197495354299230147148521860881961222087741775607016524314955942385454686746808430637556908725101187936010192125333858639405257650009943196502923412847141356811462807321614971739071574944401605789957593884224381869291810623670533803677455698825747935573102983720770018534818011684732567159412680966759917091024543787338746742770655874111931877367013306175338429767504591556225284430561623485322872937531405112405115073401020300755076500390157553994614055185722351002120657635115140811766950526133431112017360879921052678743254267038637683225716049562811719691162941547600760927382646013951942467058851812590294691967077787270302220486101079097630142098996688297245850751736106048397670970671056858472099190433183139634593766733329274655312183180473995273673149390412151618280802993055028185470761932079015718126304878176219545260253172984119851494769278779269148004715348108693751575250382665532985822889318207746997293961930005408734812001749262430441901379601957950459983253799793586693835889619247467496034875176912901943077470351854370618055515571035600889342117877549444595585925645915929437644582536856957523238185286587123034279763393280358648290344840615810610532621884490747835043657612935095325470194358641947948199402455465158771172699335633238125936792007816368136131663854469939235211938940816877374687918145079294093968798303621200153761891052628663434843614817300617835925035747467232489353671346076024773771182127686319030390197626881183853734402018689850942615869290514918164416673266356012890644632465415497856105030997248837987210222236827023063107176240262222757275791404177173871570946421059768211880602553747924771933100851347645966195346978026321703577224907640269380152147791792717945665449014242509596715123426499989984138896968945736235398071825390162470800543818637826194857093274672719605623188870514964921075864081204517526294106017523478646966366507154153010173344082577274749657022056454666085499198649788674826670335995616903094340304874488294977089240612163361308202649058111219490852819270271819149962352781816775554271363793592529427697695513278024619814738850252074574129339207642008373674927577915641948784874436067382967856584674230687686068552333706619262538888604657238127636796705345765959990137581032124576226390818208746740512692477108072536535644757843491091233230656218753758264482924572541433948135872830448988898540454972791300721802533690124303901013951389769991716432881037053868000278072510771801531940485847284439229073323612079407374070108367666320162907807864419793998707934484562116026448274985075452001999432869772463972843701762713599022246304771977985952602084405203136392444529845575603222151541994887352516286968251018649596351530538364448433240496713142517091334482591815959985345882839368240894313350479081123237778507743577594276047873459704289360504346809643333572759633762647275343850798616634976790677161672659462361181798118131745979769219198367623292584770278869040333386570925712927288332718254865890205343635613050769834024583977844960012742458256662526786150933158202884132629789989108348374352245075469020951438209244949840898413622309438949846845296995336116092368916010059054349609148128276282221765380689158956630378190547766328136095298494600272785498923575487730947055304002934104220946947499373288252490823228988628366288309527016638954418069069432667006851186405583404028118376112913953602169375738595211602615024825954403486553498601075193829579218837938509458267641470131629886537490885536252307662245129280465700026415494455386723346805113044146639818745516698858067296411955996808831427662689257427972881755720088488855179073033027483529666543391486975481050676778248867853800818726880628476657711678768746397036477452864208731445126804987014721266830544509728457220927100669487632872608783325097260363433775781440422941748388928020469018035541078422028033553057430488349374867999893984387217636224406327390005800874573584558629794879870105972753389372170960864284399516401036124307932022371235744650686886544674388969906289992736929903114595681808520007422262450637265112557248410617056173580011006329120596915226054966952000243169991333981227893866120455107408414938846533585119756424947547126923864120245785765476186666264324722402492710265436282986317105950057726400515394271753285976551357595660553674854887067744402157248056686652113096286621744994992955210848905439922658879446523422783002765083539759669752728991856652011132827863855743440211517785125161172739071338016732951154259346349080842445322548389221309479701553206063414276257814076894765961947106836216306415506457038553206512912473797346723360904945616757362200174998042206866030217361118772295936297365397915585483397418015236938617543446636164211121794198130694432944086956919455190981165725440827245819113522064439273973024294396551119083899856417977131294625612525086388769576505059389557696845392079596049726926519252926884751071832563433784220800020434661234764274582175161985965111300615171687668476774635999721924421501675123083421790481951810958512422970947400442792358686486382916631686406482021622494316364160118389078443786727417852801722232961128157801144614674595650365595561887315442857416986353122084162568238915988713871081293684069523290055603737152373471407621633774436999280750880225050571447322814788982310194987948871307785835558144893366831435360390785993739874223993026380799033830034735460928511853553303183791899273580151900650055623864488807805451248509181254528882281505970103346935778753818603768289558290645098340339859320336584660678250790022975218623124963591541586381695502718325017945210563401102911908281586861215267864558190236472291065159897123794230394527749205512809707579745318293669771787456532142598904364390429174316530133472097351533396690163250302756644726862077391139634205252200174132719473308410677981288935782762966100233398457573556076891383848746667423409955073321487488270411108350427292527809957644979285337361168258113147479762848809719436319009707979478683697940301418802395640817076666091801801375579139657767125924036331652113119050059806054395453503179492007067166833244662815788295209038956637796226750337775796059143290928532447265443694259445032834058657573578917035033419775436342257058765210302966296643992105265458882191204229086397139440057360630464944466412068552361746627627103055981153925272609801867272689726872990812839374806538749909551153145593732451570236404245256363017491677923321814765981773601753641664280365218125982945720638023198301602751358750734936044855377773333437631629663090553548171806881643979682231032005863235538921079738768708498687411926502707701157249930555214703636006277738811046814723914324251222368329217286217604855145951993897291120480382414587185861870985577695907016589190573120337733944658965889032031784360294360933652093512585058077432807316289772911087278426568629800683432327458069120151090562803043529085369426879964237784366358279396573130524384786124982819520328808729972227436848526004983925117134331756995200866514774295135052402015268387768226209224654392871049788665028273658221560086831788770395057162008561015784806431951237401370877982869338302986978801225815758649947866452073296020198524432700291710504846968713323078796302562059798109944875071830756044534519287421811490700344164973570047834478381367060086308210342918813110054041007979539062523248962065021617129829623174203874339874351517641476888106174370338377301312334934097149000393637946086969651983120502129811594989592882798818311879160330638293481165570338529439536346192186100401410490992744602216645390753166354041760324218777506505487769188239570517114957740739353686519251677982112997050504499745218238007520118478147679957583127957460347546643446906542010571100750001907514278491545141779041626636003751800460796510001239131005129042894712017222411292433439562373944651650915798599798883199550921554564703306719821675100635279496369268915647304304362240659257176136020928356904129903693544368233527047659866100432164129962983662423560689657980782758657200242634135877387618559921359001170525819113363576267690374192386116173271357094277620000647704083275337624304045698179051308190414979713920987668591233491947173325650645619624935975772275573645231818333440855820185662539885362315057185810458197537172058114553759502672569301574069582032481310568739183339937502357107194461633162599989617054524104621131951498010369327915399462731804456215923405705212631036894149409686725480280877709161048163801241165160443825316323969948012301052486887749796405796797763697078208847964025278132273016973122918285424928865230006147569367564019233519999445302281825723698289901422249460341872903220837730312324565369956393382411347836412994388930675731157693757099135026824396986272162702548179813157151298027915238575801139550399538378955011491584480048283524288607933591528508433241826635311092433448248302421177237036092477969956151594312214399190012959189492753975852653088505061690169565705660005524974689353390307508920849491054452082964628089507665375575315187355506149670654743045981942880272820649089132738243233660132659056735875766930059105056329804148185892096074222988040353532507801630675294497134209215486225696529959661362981415168655826929338537203476729083726454897803754597226223329669787966394978399733227325448118685136200940116200879001940909860017362868358544496597529857178829765077018344117635744773414578792000119652208492773789575627535187003683597715808116384637223573836545583666083178042258515542720441041866899693687465382639191374333077225998748883414847221998330634768660779066970957171025766025550750878387994740591603845902638063804756870616244742195951838822629304409979644085012050968355027151102294217736976372486048931500495622611610548733298471020710515805602948834348447648313718788942098149319420552613231789436691085663214919450820736684666166908253036668107185138216902838383066315560761573250312924507152740532572833735894119485828523056791133919288315502271505660574327180415344866175239638168578721708503968018354708649105274789565105186066679276633471583332100203731052245591159422828632345283774333485349185699837868464347449756279692418399078037438885350125579415969458473468537120681694450873282215579209748705758233449674971239216848887142348777747517125257326296076651549235138281263272936298169602914449904685292320729328266375008618086491325060487821905019956456515222101701839225966004323603612056959382867568946122925458812202655437765573087183939603688065412504958364459358945072073001118926079444023517269267162646392540543990523335607828678666909216585567194586405985718436772950963343454526695322885986108250443950075858153763901420465855007936973650712118677340570571576656904008292678305383029629076145116459885404060762106425476965792881531207859097399996235429102618769070227432203411169976938463005231327491182967180920183369075480054883194731062703522244060226074478141531903429943713530532067852504762458105185970146722997039508923349780244944628195971338185777988826824117998388065313540516740369338032881784157134116351500621613621034810029979778425401099947298706264674674688901270733591420792965277128957274711799304317391166609909865541856282835858255668229294858619684519884444527590610277427478186790744210093294797943442766254192962796285285716995078631489760264877570414959112245807127614980516330728171287985750768767158899701784372532296974105388598669153454570396965819171356174683699456886684693537941089861030847867471925506688792385690122637905216108565098440661035499305082536477749372433121430963741612370590720929418860675448070778173333727941556126601369854387137594489216560293478026913049842793149206488784219605363887701308090189382305303865022106790964383327699156372271418161667977132804921002023189583439596114471470805472154852857641276569269151639370038212177947400541272524719569128459012101202806871040402245348656754181370960036864995850260247655443322083177879977296985101130247400040576522044534679965132424303773113711389497720285477885368232513585232984353964506811915371279207927733365376032532279003784677657829474894019781488906134025264277880313551083349667064337329189964030415846392997184282368211749809534626603653807759748030962877414984134929325392292010515531964729775505193803265179220332948971292751305926130719584303097649550072188002676747311246169784055204290683331703712035769366444342561323655660997890595326090839472770580159546425455372989278788523032836312726453843817336760552479219325337345473599807596499521852715865715373778130440709242545094308623662420347374897154778864774596554484714679211708619326441763604787257887253065405185386750152025447383397375269621097374935559878739221134490871075185943687308708261651527695173856526993193464646746038550258516761366299628678626355498578749763129378311302639106093797340465596592395822200878279288798999998578403513621787812826835428048477877652434909632845740202394751460998138221617932958248360170363343916597312528867717030267502091878928717904353240937940492922317373066107543676151549462304486576080881721848164359828498729320777113416320798177334222063612261303457263956246719451250289836829724310572375781206661995672752934596795628422070145750163544080080928213765824291779480584388484956141068017002686967051087676949418181819242887801386684669587869306319867324853115565552125365929677019989975373800536118066834766857554306514961836707827647137921750938067642442306887268416160378537252157028669850187035957946140914073759247987523889803900765233668833078502597272327457824917906280035973971611238096238182678749988841265537813611808142589497783244345117907896408117802625939852580636742901336592223236210165417155027626431263149393358211684134120122324788610950384896815807273071691944371067106044136145093270627395600773939976774090722314596379062159940252470693959358211062126652163697491955681846940331914077900112041831577389273968412833207900562592371081454250108940105124103106977957715509605660384428976488114849384487453621462490683931595257464622931889155947492368941217154712277835672658882502279615280570907615573089456163909446657235023473835540757393636569450828656354054840015505277550000987819591886863953883411582873173094827201304451427124165114461706345910294213373216252003731856964139634015706631902680508833067389730849065800871411225278807673308707781262976286104517360009649323001672395417665061888032507802031854959712310456857535490869523607135728189509344678437327838225429469745696891359929420329932617002219845663418837803004011161762606712113805367964485374286779891027625374790026132868089604236218286535613214520510782641942014346741355649846966844062384700975662860452888648379566741026252209834530162241540303657738249213579162242711567915509632879106901403891844060649286583315803200848554735109670224455245730488609014432581444987270941952352537051170024361828683096212218043351088588762838717329083713528265969660891962413521323545613130659659966461695236237450956309045127281210193532572576151988431542153450133333463986533855515399235199183116403404186003763996950788661649461339921047913586986664742045487080161792825178238416941613526892069006014567139336200511544370940650122516601689524415300810671102279778083200755295997076766311319540206284230152648307294927567098991251267542813722510287873721590889962538419999395089451565616505008328741421442272443655351614030794562350215005461615674939496862432788349523484540022896342742080053253534954631145498460069381199457100400290312785276473124480264505074006187726157464157896862820825060988783038032742538747237313493659875842739053748498381182693199602996609622344583595757664894011313929704503889824793784300185414900857735687953301365402240214436401624394669562297518469431523128624552122150405001262401560075902214674190223267140748452813474501751221610086327736529135998227650237307772722883838284991586866446725092752065285155319719199787945131040975103828942987926692626070596163446775911355480810390181525841674998274425629167170761757868490146507496910930224871486108202369316398541012655996686351491627860254744386671750103396303390101573123440286130864476595098971563322801534549459662169515426518433767395647018706575216457816817740845841678366565010614576607178459060663605192578527247295485935309565149160819989035707284807983732159432603082624114877448446243879507481527727888661958480202670253810582329158644330058142100744238943254225859192466867245805436250641983155847134631557796680738005576974157152178544120081956667515262595831970041593892963647524955760850763457753775662151870748670373784365963002975366084163027951748084211630694432785792540374859251937517108973897962941620913463262111608992434877014829711283357438416809848005690612860516913125290440820035754491520428283438905872958739279941562513610439017740202420963956298986637738616403228778620169687058521363985539674467827803686057754359480472453158209345962522187290986879681552889903535966042321685417990824175174847175128905456978974046825169040817342378278149469302391228228068373293852461347327324274922693555815661106191821861305693471234318548522167427351817144155814411486362649910214840425356294341603749169618151343909197198067509273975213543690652845267729258016493377631083322279191277086018211645101472553087168317292697231504861524878071710017118555961512007506594074527843537368127984902095920603330028403129320533998209371372406804819057127213256326311308160938682347493056282155547330191383929037204168809468601508766509435827325520730199994838442588124190234578859431966116813636600974397121967395837535931626657525506477403309502754859331642362342607090461218846590853614017787061170512741779050809064754887307949712572786962943085500682964879830544446838386889672867261268528743624447444841390354120867308895285423755411105815437760593104719099017350669507773818217756494130165711266439721564373767238403381019755119316516354895677672709657233715862707043071105580585998125698142043384951909425615391317880346265896860614904894564716428371082158072294242887832102942615641760446910351809637660623148763659223389777467688662771399759776846378591128415708361583392496221036058139610589079972772159469831530341678184317402494620922029682180576101775724402942257093830298060524110752137270870588351273133120602215662006570410553426032572998954535781749723159191154225445475303489860708596323218398717343261562605836916257265249252908390659950621676576169114700372590928243312068912033380189859691584264146467554749561281272875767675739952832813424418498926242452040347521907201047438614862582005831598079499517312075692776532315993735036578929057594389437118561952386009084541116039933117240617380882395425056496495963944064852008002713201449371607418656268288608786094439683720142234747307869033203385760495062467086239847402017415647065572787237378103650265505626534161975628846062218872718490943280622986382036529859901582031260622635497882853745114408873557828993980344651450085154450108023186724973285260096543860739926196489795092428866417539074773794007327685647909778300337144641315024668989149209626605792073102294339557567896018779129725057635165167844380288741598545846191059304923057585709146266153076834411754184109040949595070244628691864960401592935837157187611317023508562175021397358498804476654757521857063752194999836490343335832271328635655951190583410523295922370360956558340814882780621311654720374179173990989821175496976459001155735078889685064894644588511550204726786498649091694029422299613802828662616073834761739227288893120497864550297141652572042473332064383436122155381440411430445835491664825041754708150367063344997123368214787721904054568075494910480781426973420744662239657155309179775037644918600110421003637753081426632552996829871031065504627956815538795094208178204359550281230650928100109760925407370474889073717327377325136648754702865143412894537424684423757738384154257838433278643270971762397967355657262269038413838966237334730059456849888959053060609331583952451630729572379332233452523266053484944419845275063034227434709481998852702912154977080867108222697383787054349396627779185141380920541587749745564778071337914631462952641169862631663452194733573704853740267996924482778147815667525952801505278935598341343111443241691711450580677762733534902227217941764981316903870087778215429070991571706258401132494291662653921749004272258078662383755237442046252083308248897112606091690109047708712822504812808099025690619285239615953021485834007612710213296623292427793154258227295959022759820282560678904650109844301435252869048677827887039642636096534331597565896868410247751369798673946000450223865617807580340218216505171855534234932853450004622326659139989020602906621910581523779689541532669837498675361881673242146414211993164762246345821305366656263382725976273177643512798018315959882631368351084417861083863099365078565492986456330791986814839500863110380809030118810893177443403676750191434862479001170584401970633032466972034558867764188628799560875207819961675893537682505843178263442897890673735212995019693416547757473783236648221956151640308209126562968889704649252302257970005888264335073165149723278997228244645906457015616136943438441829635180909673208738507683532581534045725632185477625561737458798535096845504521470168519148816749234515136253277596333074846148238434369078597827804639629736595054688537624347645393207263538042043728827422443947461706693711612612528657953489469756047162205250716790576722856546212315409622256646699948531918728930906755360539549542770576644485810300639257263276900325429733818729617538336472188433881935029745390197305137512559762673822279625978419765254069673658349008268679665005112833391249235964465293588643595266574627004649090178774399220680731239927907607606710773844770732725018290526375866445238423181522697124269064098163808886299834455193884892854199416423339310981931389526929411796437344215747257364510814795365786722839372788539666268641245445635732375987046148895506907822323405093664785094914878657148097135048435127413139584628632997769516513514970973119040686538157207156063397570516331851917551584672148705577863359994557379452252534283401391189064974737208693376243723108775410771113437792314264200537967979784484206244520111815621541866648118033780510574928509115621932871334422171046167974042490538697358797935825825134544769373149345790906194174695860187331069948768530415640466303294422840362240627593491190231344258604557558419652159626667093573257630338700548212647763975371857556193183497692552854072309899644466945101304128207957602642760155959007294594360160381387624321857272651192136942753226560145314735373370883246718031462375509621972188632197952159644823067206628293581172070623957747259952044931054299861074559389853568855459313954606075009203275139577326617201210407382497664386072080457632452720725949132589254001332999311746836009214681438787305034939817014173946886056243956940102779710064474577650845551280414962269189118296178419336958159621634477240744717849088457185830416199839477441012730412502323995094621890453344542678786895235914961945557933579002515759818169107714908211534889476496019582224778442168125679660760009273917964306927533480808063039159453056757735937740440103100921427932736434429621757968533171375961427220622896945782832352592210718778852854281275272683528360131794822478764871421830788415021214153536327159365271827418389706132452712348035453629226704494331069700176692699597779502727301309148310860839314252276994368829139188746513633349819047663558953645076721889342787947154378884290352075121722134653211064996350009060248083499211598645138804545964091546981563775231199538101969369916492052362271788481169280193222460433061057353458796974156587548691064115322602442991475709093639638603033871338296675121415301890419381580986713375611794571229516018111408021669745323478054087024522699072533406777608939529152115330079387039753449475756565860432144605055181572351983506381037822844057850431636623042656302231253192735512832099181928523795403554751632252435551875043490147262836627570118467608662547533215172738481159500720204651375743846035662791475385716391175876879982825325376167561463337095325466958474644715640286105261141469399446413226221597143713322822600991712839596968959140429380425719708109291679427997777279522916959957088017989509703018139294890963361792991071827847087160633092931484717551068967369044168879772142129950523154578393341376819758649719985053606259449047144338155084288345297031344201781791649702094424012089452375742131304302513467358452565370124112823249560562616815870701449076217570314538245459500885618197967842906156046008886664236468644590308182154420871462850864281816456775723160849903287356785137212640257554202167812836397032633747443028592018150392565015823052923341168889944022185757487968371842922632803119864645549881737826678888228503761906677320691402694928566420054663856599498770713706073974500989930257153935500067966980948381562759462373006283956661307060745077206695720047966965072046335736824599068840002429179901678729592963113726637851118172991402484994408228982329869274920777330707438016164798505359067196622677128076581718833524501266838698460344668305685247707234935765362803114483424882562125137360286328472404432102795454933805412109472204314321412349358487476200302564850609656690948201554097694233703144161249772925075902827184542128097808820506343260451250651370625597367130936799867535109975231929613497807316342329656646805716294442161277776202155698039201850548372378082661191192531684952390092772807512426548115628673489778762649727299863909845617467365815619529068238169704796673861352518565599968104127324620222012518987149791906849490092952163716254052652571892163005367774770339268893144019176634018304904966457118612037782230686994161287165349939417821992042851466407867673210260651133931005113638630283653708273047537575543622141028971340959738539531613608726702515867552137431793046366908166770463208897311685837664587963914258492943879503133081311642734034087598722997867298077231308221769489406880511032798728910907984660634625513031382955187142899144610268055296755722289428759828036214686134870093957602032603385785844945015308098043895627454164948419329130790389925701913234504089024433485379972106005733413358922500093237891421496824295001609694809239380039803300033392699677295532924534561056477081511314057235737801114355530723048896241149131106638026981813703726503506569945286572120872335565247149750908055841757818346561684969184783875093536236150905029390172046205694291444234778679060858516995649937214994158108042062462155065748541283469944723393372964889429454052919030275641196837753420926717764185621323890844310258992306060455275583413009921067369306476440648104378476862002001536335034926432061852091604889128379902425342195898339650218336575598475187803889008936644308326712676619531714984411658888798818157256455316991375301804568512473562036936210542585192029836990265625854601127676100309758840452427873557899786896110131473594467483753451766369837519012806271474608628105900755223635208431523739223796880989420225261249845819452467276575086120032933776350943022485967673949644386252233543859372649323159225534298250419237948784966366813210079844867095863121199037576547071553161861189312081519555825291680957697920316871137405490702016488027014195190788037584769689405372894139075794534880337268485344402574292802959825986716998902148229559304947995789383185201225261373733486522494644430863543923444123288222165677125886275518640669277984264149356668994296447740136929157448817050846383965580649390446182397598114272726165732384644583955413594988688055928828393134607447001289214159972828559774754182146960990611152622154609496736458787541047974058816887028329713116411417165597921487900495479153744718672478355889413473906425187271652139631112970808347838946572030841193892934791742143278155100424092085601535409779407679698762564584697081955391723543298526148701878289998291285199485477219653156283305887542793852609788731912514387339824257415228388056599419233710812777396011355871938604092931694856685122038744638922849332615964194933240734568865818591908255442901193802925650457899751122556628472172158509218703579633140590549601876156202177924993857317778940154784632001797972902823229280448372652211740356602861301790213208858729049578082978315576507878159762615151017077200217105363325784518273344376684058069973212072982309372032458953666687300977367462295768505363399231539485629303773480804573273820412084540371617542363679716408500336055473855683947404678902195131440478652167246607825854449332062595323243594809309535131369328389591974386723560290774250938305438009003606716538014552009040108047386394025055722150861996357958976624190390165752711324888826327873274359664234299988102263322606151058792850741184314964713059869229821164138738687771308947314706918958941259990140016584253704415200486396029301151583243132804115917449691958997938769924820070295696077028098618521848409468255561523059653297883708141996346534849766044552714016073554998164026050216159690552086881397300609425961625394344376144767940217463568163053614075830845537437232415071298643209323058274544476975529497943835260989074917239945823353457418527720074391768730550628884572161043631336805161332831169974049427630397204827831270401308995306582072768339988819844450425375766983348868845305443217826542703617989048483246304293525654009775068847564551296648661068733438434033188068572514513086674020870604348061473763410058849100708568141144002667435820430415237930753313207625106176877999654392990402674442638828531735197278209172447973672140415484188188402419903752920942702654681507947651137175016344386725689194854487914241525280198949816802726753545725205563810260867147518840094833543731398323177798486030008729205108758098222220836940846221630551330394010162421860713885138458052505925715096954868542810670787375583829916252545223128753787810014571750023281846277520134450152699497557247366763248692126493537766852226226834187858274312342464399489249841148628304375070880983761219118443385529256746851541010824039192536729026629640494469187129626856844196157266505942932397311207039011575779737222501857251003101577138439364361516442302873084398885225956638891091643975717914791315731029145412307715036599180385390644246708381561087864483351089090443943572319696441435918275160945473683054260326416812936749125289949093689158793170269434439805222143636462736440383424698534280391174898800736292522936147714428829327677740832991370224099379598491245282842717809229142751529223566583470040947899552482052894671674485930895872091016421772772247866445663306077945982156765961006301909703908153524176687477959806298804363057481979818928325042258172604154653666132262988776887158107803984781541301180095045873323016346117070568372200186857787934144416568935809451369450190733029112071136723102492402024883144662831507213641344382697597257375738087908728942461585530421838478456630671492585733658567985274407028036352774970370020400516905897837770062877402583909798262482845707070439340516778966368640503715231786792418249337514148308094480549731414136705509773178473194214182190286112683105161922629111663123462468426323088069123334419180712052569806920628128360567352067209076335956240701872727385441581793927215246328690307105157591375662775890594938737607551592317274823571981990623177241919789508358217787063143402056697502433488714990746464415950237055685050813298260441151694397827394634933238902708640359818898271281514968662329055574101302813439882324746047226580251644691272071101598191570539368162141319816340385792635142587124771326801463048037145432176846933037966972652191060488035306509878748592384548722767549193390686410751475459654386750879269186984411757162736366414701998943716663697676352646200957206251237741971588923395636413941949494859898671999366359721126348936930951970025660520281235187271156504941102192475564940344269741336570004722771933274733562818135484108632884938654722091233374309777621429385016880882860719348439637044445680004969288122524482573454173002173272378184441009406100534312987849216196101086048045085533280073636037370516254462715986872579078167367267562529012336278135498844689109457732763654413667448063229395633089887641117684516800053017338914027956847896943629303954793594146389162328859251260978945261405011363070000092828526440059769007214401286805387573741300029100394936093214489852094908402500147155753685172398268015584280675099312999847077582832606424077151886114509577015663625611723769408698948425240458131442782684022019387466232167952765982159466732065264351336058095808047362683304301645710214318160349215236576456745741221092664433983307439245398088018662101794048477045302548066078949571990444233381603685137644799937063048679928798224614389884100426762098456879288668206659248608259404534848440034734038700081408229114240032597223022841893506573676888215917310421655497106507528222888738232034352959724065215640847157224700341815253245626981258715643660383011571039166277012342172566462621443290930147324320707026189439341477372184421019510567601145725543968359687244159704842535606459136708248367367705769696014224662492979014736113147740147790073661215497859260439496861404033638646066220289027657810059443555606480895157411406050316770223513436659875653673040014818448118377207675329991496547282064428149269916370271208958433339878720205369136436010366142118367281997610144286657941867735672263955608602891924130704217365633578477389151260835536736487226965115931283186271254584381012269706929614081728923383020298307742536656957774005916004398476519000408385938206334002522881618360987072826594268616647661034108332374656286466958861843052535358117956459760905454480393624067589138962657720616345483463593677993590045362507795747989580302910731202874072564913093554028579171346048050192703042689452051199795543240185150323259047233413054670485368580958260529647112790625338485262268324210342018939530371485418105293676001618817816601104499384150844099956755082029217898322176011462584870216825177495152228769819916262340662181757242718522811922874698885658426438270198125934096104397808324350734457713156010873476917144421190090494284982905352017716787290309723667412442975928831624174960900485537143662463728114438882703592483021503820799286676856396608105951629324195131768887516631795497435276189968290853325224585980328178501936251843939008187662156065995699328453571410287569689936306967798335522700324794746706385125544114543963589485785699414684976980260493283767385739547325706073205658749319215806786206301510694942319982388399706989494817744845660403566908770416444036866188554427363834940764948795952383543213604454251175404386041365875015547806796800849412080931286113406034135164769611332984701189800813249103890954429020114157999874431091253266525145883688090910884432543895544290564771472303910100365572972369449668605244181689383824125034586016816501971060798635890602094916654085528907692912612716423757447589997933181270227873742771157726378238374768751533526305209840604365518738474776115455548392071900716235846476825619846266360224563407406597797179667948536648562813909145727955714245125143931558054588976945560257332016754574624183470485089556024299774579708444849794487946060511057037948355976450039185258516717230757592473474959803200865346260649362898655101554710894121242229118708645009085730872550582830559330386517672156952449315329553815220709101004657277495956222760674104131733964106252969930359303535805385090469352110949470543934404293872504361172481298836944791498895966757989976739136767474356990995352099914334302175138295266602241122517342238577093175637767877314034954052233727622625392025678794322612222290892856145074579218911193238505840266807711543973444890770544401949030657609438023935959721970311724834013862075433238178251620786194562705177612285449700104415704329099864602559498602818605496750851065808967123795766608889317636895840525735244099256831014702342027173540474353060396199469051552053223987403975193496008953939248469922404649426114311837677255586075091065419963111411023489466326510754327689289822704036507521726526382356529292013347973879048981507023713721378868618852851272578441897814905824751681064715849316835904354104606409312311726861034281695459845755443427664473537299650085848316912241178269645836778957532577557830030320906739758653873636188532509420530228350360110439196126751796210594910410032109763467879831656113130741224301957165240177729907271827324027949330812728137023919812154769302569266542020221248985888857082706869364017284508775714741691123726834928245262464247088784322985884278230136675259611309446604586551638815326639121290485255735148457470053788597933268045250111492466261524306909224210919741676688387837681322641695566386131298382098884744044326238131054517123424022748466621490784169794845440825836231727965628785645630922313337395104531767410792687331817468557136093107745826269998670496954234103190970938319053800777734043350218944867073357967941597684035769356699963923432710394805768021000696177269866308687472911235412386479872508529410861512184340064260370778508680274212532759958137560922101505381856939960007534410908117558918775322194796316951566489128721873876756360275387242511448202308741142871082318438427523908716744971679642371531785399057561808533736984337189276326569995155468147558457141324708950910336506971171280960290246003219285526325476436047669943534360800499940175668784392255539324143680259250174058559512509302439620299741853455263456376192887058714410256835106865721376140453183281349833021752801489977156232052152888293909789491938682443392294823154323191313593568752768867310321523556458056863399644276112186375360356265492341277046296475178754490804364611510803757146461635453982810833397952102638572719954222035136105942405866878190378185894479665787528798570534930938603093863009483732736277368599112206465860904305502843294097533678768706620866182474120020682577603602426745518669427213826182390249697619899220544383065289776064064634224389148250656356499986727559147510616266181571882106128433216133837903378286482639044352681173118812590432211065803742647311498372626227072324212342936792958546609346389231518440646291787048651664911505573140560267650867385526142103468029482105428401138194421656833302880030010791190266019316963116760433096610775009161589230669945758911206456562266407311119561193744246816724138503429168866909989499169493848475785435370988656027414204290862625134872270797603630310905463715328530112520119200471825279959047926792421844528935960011426016110126658944772918777123979066325349057746687397357149228407915492868743616973114060439086723527312360206564163672591939363669388200660944258809923958196254910407299261051777654780165435219037690790560218934150194179053754676040292509710802099461244770992017742933977990397176050210699139846246509378134973819748147972326821186203242437563168869741665193041909963742306030175919362313765099564750730479148172326208245483042352674295878439022362112420791002727572446830477942595544841027585592825537749590124447777385509236898847381321787937500064336932389685139087549472254610108666778045016302442754024499579170547369392105607951091006039768086954402003584470612827519444672456770922519781803720967775851073619867541766991779094847451906609668191333870534165199974349903933019681987679709298696215464233924192112074036407887491221464840368223133534622816874330076644659354995813057227116675013660466205127954788225975596213885783976480443214672935906163943217213561788840933652426376825004419646910081450482340514165108025790539055890382047178009512674529496912111850045520096904451062319722814932979033155972737178241122567971724568920781353478178071448126206723685473957235154327246229781704207544296863495725930238587963765195851191276219582534183123984328923606651991227893089532681967726740344960807475258039616827232303231697022144481932050087438241649978756150628086645813726763830076338884344588089697365394673636877228770784535067045465082012948230809619995531183033215079936656102065898482782141995499983407150853328198834254759586919238014985731965893921954596531994239305224883972134346571116183119633529174820903997065642872738163291165403543849338976433411750885745279346645768936631562148026074623854437091896280696814147070592702413590053415972994432395031522672739340087739207421993423392932970175720606427341335287952723825920949809890158273987045998377966884437933711479459613686831451439088871553771867853085265006688017674626186151071087122674919897749393533503113459913885279902902118629124023022306036944788393331938919217826955705414223895093727626349792231596431100457364166998561006686485286423773825557731698517736258941605758737906355793608567603908026061518872616781643845569652211732509380520253950955162804984105905368328763750386558943864655855327091557123483058764035014796128934158228712637025451028643291478999003725201772877916659010445839040809892844897998263750286102734159682741140154375960947469006796634478396937349252786439663446106255447407378489692011705862004042141389007111301447293966320886811600118413380392576262468055649834830988919175834800200451061474773490646535500507545157428852718548868222069735376281419152563290164555103591675367067766533942817909885445169928389931165772702664728706602453754585264535297415062965801784546611745104558281864534946609888209826450663010361595370874250016087931264154197741648385171611685820945397131383175935005577726971428643049960152103843719804802421230704714377150745577097482370842510694998442059265620910773723454618172256479833498562014457580099204131981049478636255050433985650366676833964023382937379856834945623496603838226271166857372260872424580959282239324025219553981492985054141308676167134642808876247790755982594940292897653803655589710997867609655751113512601290860702256167179930273773126174259602497014285055312135590492826104200995140583853173559093989573705272569221797305796778840326174399911817798750455825296148420628288086611478361906029103415027918597556148263689832755466771205301208170736289146742073820240143595161734461444007689176364575639575308142809431627371344550708693961670934407160816578208925260254630910325068156854708898572097182304604891761777111208540705946350304849461602365373638621096385233051772556867366022027461755272022567715190833426060167247325625500110770396209795446575061987458975639694965629882090989314527899690747243235397004548844033861527406934009427728973591394486556316744696671789933000864204388174634279468125567562197603397537159025528420752669180397124203378796489769758680801107466823477298648824945038731943952324920072027873052754585822079489118414955440545681607672436433955596737622764249468096906822760447787177166611760589581998917167684878890118211919361698707907178369628662764788301086805537041050415906479809500131601149393737505779788605204377515973170475954069707610252633039221901728348663708008794723475469821247273738895729310644313801622246820550137347342976349629508748010811302619251596259771575687752937612207641301296659235187305751487112036164634505832926714183885538470045718288439973662135493980114451020674602303692164164771101519032801777871194189229135009646415920251582708480769973487506583041165782274598111619404640304506092791688883801632710218632816471626770194258746092223290470521132860350023979483762375500811721491231289877847965392610211461234309304418516054956791532943972799857231371592952689011189529574971112676034136557292464625674226658238241327989898832006210205887032117034624643169358304999100730720902016598927950006170051117165372282965790602906245359750348553029417019267381808139701040426882014992835851652348095443503682893259607703187427840394548916359497654864943123422345928163169877134275849939475278853516759045947266829040528661324786503199541025803731915205480539451581077231882011582484512250320087096578605613974138704580094513110713436616979857412423985005532256374940453792667828353084950932156584157378122625611105123255028993460946843721040862011129809540003191921049763962237837575439314397545221762638823154081243980693665429268947580522402476581139104477861969844398879219944676056975666476893495763850122460736371045203167533629534038155214853295036134164688521547004707911619170547735382972840003006083193548015560133133946111395558921473211352654064805054953304526585399959753365747677257250762847772173198467316443268631013340206564711143967812380923381210523404858694620047371671652335216379280945570483105823223096948741207650646290670888637880990232157714329032266882859844830095749207839602737834169912270667526501425485552517329600139354962125308605895534190435113450284303231431395350262074103167989650038904647165531159751872310057342217178602969038844961193969638888083337669096482349127999556204935924105290492994360212620783463343660290244357349297114486258809137509764399424098945439406181932522180135892970450234220123619560241411444675505543702212798242305362368430899329511059931280311731977737531458089539144379362754336010015264991152741336169173974608376183064052140195501881884872626002938077128561149534514659840287246097118925320356311515621350618019339068460698941788857345409043079668904398300899629489720104180358509733267094389558264911245961584367628510545452408831758555796288815099243789209950864757963256766340986432997927752625046980965830672117088332996226920318914530139191714555634057958340686848210235128668744146681236185611755037685608933763858233973376872293745790969783024730606714390142795597285097945085817750256794281002269941788896995655912029338365941578636110759490141099353975348787321873219077435487067150791479108372571797238352281188891521480351285087356289691317266002947269617526134279858819854343745568560253994832888974870197968115347951904316323646876957917983189535003499064871554403836427570691869399039289080510324755793846946406192180958634330833756502141185571263359652367848572959303621541398259625401568277361569315626635328731568572488388467471480325418306474642369816504112364921543464132064674067562795695980640307341700671223367961148298584335757358999031285944295380366484343999621088169430798591465337054941497214759026940868000334122306166388131751127084837136916065023532118562995077998979212008519172711727180809729702962720204856713231015081125014957876818319382209860093268419373971725055404246713538806710119132826891012288506176091628213013151462442455281506858620637509071272165504356742597056182256080788281077424178678896423727230432427493535121206138370005987315718061047482382575238049961519800910128441595701818005678195650851003534949151247418941388486568038055729273065414939960866350601265054230917640681726636029332273023438628970970481715219380974290167425054007758944465507593039033149552473569490304277340079142597728427951836170681573930317141160314919623317497866228406256074927606234289754273580137494981023591238335569539452765678777064877793990876596668320572873232254938454254614816323358776722778682422598758169261393673709262028521436722014641359825671175678236540005304894938996655936863649078693490377325423333272557545160318268225583261606606641830542191795755364053655645689446606926006592340674006900228032270859855474944652539610639729847664400039346265821419508271156179122089310861075899450576759664922330470990598902945180337064578828549729235282520351382552503820513387203909048687841161171509016371637129361336383098407189983616494038806968368846370748400917779728195254918942353015694627057199162517821099140276554455161839879789742099061174498278374769735273140100020190406430396909809568999828509859801484722305760029859855228557569296915903636952923718471911625171162515226451399456492876202797953137815544931521589294657593779721904450252859071979160598435182332890608318964981951776135617194333617356095127808228931951960617030043363504283930477171134040701328456407793104087034685767843468922683955795692962934069132969166764398778307921895180493129607484511088956558622077082060389557447035772953112966675226539722428711454526159805520780765796087934255525262715042888178437532767671108459990651277200715325634706945001340305134759354107124498128355920291480293101535350765998907337047064237245752127569057760104669889770850389019748054535513537442837375360815611517590073589635407353958516159273436925562473296371005609362583684463685863579097134156696784084743856337777382952771125832786206593074564986748894329973605145456024238124639474061315734920596069920570718728648049579058226842104200941407218757448958087040642159531869497243427041054792669843246285535828043971545006776698817266841668267785931267406613352965171791039143176052536101515732003665948498016177232064260220615941893875898158034928429937167790204951084537100326053682372813693114488121737033195498986175946159258891029369845328525842048423027434947329331967552122399755796198369146030845241881216250456460378598009764861781215048401147609254118324345102102266016808331720276045488938370185278045073265779301767606156205703318307268604454544181739564284413530147796625628214739516370848022484566750943108836238758029702534910009563267984933245289788975021128392869434451790628987566217404791146627663268201551208805281034338346885841937758220571849439201682745777487981041928140856400580398887264484136064713077406386266928126510963400463755240951223241637481172379787682760509317883824339378439790243550518278653896829406404501024588882937564236359023848938543349372388346843452653516456922989749874337171507513134680261945827498811388986056425862805843651716907755725429945979462435584292498171656182335941551764676653405012489756003715796312456346363023983456437721699827385991251794706151470655978775684627584473487522738327091973820288005255083063087477737195165685616728164704871237507367945046525337377902475967379762720416525854370068634446080577450129895096531776806987430395061895829531953422675677757650762807609571586364383769393233417481305671031081537328376983499599022212872189216538050709273325600836954303851463012211409889767408191769345170082574888808302130392739068899107717711668213348838288644336650353679247134935027622174195910462967695104370046576813539830185292337131984258518921431863514616789358133443914521898147303949731546862485896996586779487479464848259246703903227341437138406288814507920709937707301717538511595480220119124488421045531224622368349031334958054412725284284527090960346052916892095689069217840022690163291220058140434690106976531126329021039482608244303604148637485680215529989111098067807062883691438791101034089555950898585772900435759853176089251912570284329012366453037371421088340783019962059869203136992195351921379002801055275406787301038313054605721315259811859490807362549481903670605520059241038558891507026900746723514980929734432253003967443271572956067151462556757944315120631600790640397323210144498377476326590303184297621089214744157085664248865561751655413426965953999902742490677324050700455150887384498300467118882782501392601581946929092055423541778513945773203739315401739749936447814064692259590316857143409454435923236487039116164973696616315016741717748541818904666519314447879580043620300455725520870703240282146043732547621713345343587433441735024875958131896081433787862076629405494345813642341816544118016895243525578874057902854827707031851303366599062219078862606644229259351178020908513871815581533657638682947828476051385090394878702062703526282392117523391637811876436929850409035457770157133598070482616648792675548547829742632875509969472034393692040557962294466626596042788112612504269144705373487038467484918624139959336997580340476092388786824395754418656635613330753019597255246582040300322867006421336059615984658189964419874500529856252326174433489895594423646348825291072901710322486974928436374550245226707223089476333780627854779175183930091840009834325250361057350053457077846207698849684624298810799287182782913588613819281367436826986861104404341842744481803487216174269354066003348369078743677229654881302780610624219085283828838980382268325995268294110286966447634351392602433682796059856081399900709497978384850652713167881941031166840558029033809130616706488470645573638290841342563867157658120232292923756910109606322786227770381302576820758005640750008814856004452061506679235817569568488257943652013641748917278958364403866959336761745910323499031224842830373028440718675151536456809142806580784585471225183300315357854943651168204067031227602321543536729463280244673538103729763064484043747253128308214890544784228935174291471300736563835603309357540510901584156516729337998949107595976667574308615975560937594854337125711163890926459730809406945404531527823362425337427102055772191866284648047241220721546833056843366432578698329991884847673046789945735186169255191949958221776556718390575420932730885522891541523787099766602921311652317798581619052251543787714564819231892071965881972179613001765980483971205804432104466805259851623905420778397078056626996314511808779629490528269213905428087492723408065299958026924291712896222647285063633359580060501650181931967117894055122286083113161161744293979656819815990779624313960162387676915794528611560448746408852439337945806328089676609268519294120229504152327172663860827211200614849672622564251369460521263685961933453430173528626933185774880577969035579340985909444873869141818874467558898741803930731592039842703459729166379938024812285040012925056129228327289138224605972801180635916009213294721858669969965509764209232701662997042238913563328296697489608426503905846723746322547405687800078259340178161429867745776321059396026371297623822147779761760373134737340556262198028527981299076164320686056702151526709558180618572387507165678395536339855525138699382882603434058065203952008372536985220449086277027980641289725451106709892416098305431440514910248412308155862830128611956937613145990576469340044797120380992676270169647584468494410516530876476981536388503896368411192911240747637736763901262957888557902801516679415623964090802662799070106313729268645758917428618384236681316775502889826423007194850530340437275343153041265067919407483563535298333904141844608748346555596303819537450877815314268787266712023017670643999480659241251509836120262750864493267121019294643346828927503950947617820731240516588750021949853304386978716313464974527980548732997034884192958455070720954175833654756375376130672423201619698684843368905089680865303815731393863684577869591689565637766907611133717387288581820825927590750077132354340026066164173384708775470908497770131690042050818864783605091774698830827175656453041644404449664514432799790512775759749519316015354157953677038289141780739852986383589648859767009568399475090565338257434003511010518155037180395174521645716845166571488182814586066270512906515628256212358182512380924037465231633230527422246252386210028626786925651479549714189224140339954434336288307761456755725005341420450962526421113977338252175889547355151359658418235760937580422182234284496154665025251811324586719512623326785477836052185612748831476761120986832211514410942412231008982178534329496715200449572107282654144700397243334158043703321182719696323755196583114487456930105481615213184194633941643997732605335689453191346754914786373938966164960001274855651401727057876355363349692918846607744685316866511660605135354412782774666418458050172718412104145219075887801347759427451260655830291283143655745017457768255424670864000681054917019743947978364834037081518735465737534631656640855027228052966587093161601681749879812639852370558587080765660291233351687012612384292512798152040478186843950154900255730625331185221668137370229890798756375381022500025779866035472918231422401432285403122118898450090912119586731769651727690374086728893477770039449535306951188646558360355379250746946884756584257839767907586970784486794016146530651902057310738635247281578263542006249369877285384474359081406179432625776385669622089006521204199109100339766701784529462590731143940118271358739051960956284428008411302482210849084012503159472005720508884446544520318084045434813791591792198013609329772599763603117261561417311660816955383263906131542376249401219750422594769230008108541417519546947561452087776115883721582823171673473835951093254316116853411928824254552382760469650165909890452587249077077948159594870157165437941726104727805651488724008062422666635152508451318104190862908034261547978873460363948981698459191493324305241438624146496077337127967819042271170920836052937673630666420471765107845018014393779773907485806433526129125886809201608465216289243543066396384929209306288869936545387324529162910981151887724903799120696036408321524785243579290639905556444387342665120672240209814981318396709696712032439519218836596182869487723449181901261951110573581132520616540011706285568701362427776698110934094204131385367222152273760534216355541348596236448488402384686033625747932261798291007019152648646983056011257898024297640305004627062565663506994037859110764034691824470179270381649869945543822614044108099093520472838500411293169932199417317754783291933231737765032281458672274622073773869076113274809313352332385212494231238295890248836595779733551848632277495503432821737317980219254842288070134747865911017925228621477772304129534586083799040981039201854332164132520046200902356079093719442012904937787340949062537266211370536808014073904548810868341254787771288873038732564050824422066296153832752782797746282621310929528551152500587466396150888454643592508899283400523233211815212406972088703195756218039244400378805969722115248095694553532516088086946720824965639144443519647060833393935588395524026886313899186636679305298914890709592537774482113189152660596282696225774003043416377919855733830686609009161992911308409746826809543108140303582493264919804834772896399650477153363117483255139350124923318965419650918608245075447894580268283436180826874691579496460660953408618127751342991806690540087280067882286232804322809028105289166233700937658928411567768395391982718967695610977691417586525873837679247451404122463427569942393642861334124986056843574271909869502073211098291326714860005358922056957484648038175054859640972588483080961730888244477940600744323824196252467288996403787404755351596456013087895382968267352557270474538952469875714688743829773724442366421524537855393350332261975139177899865710598196131524336300946353396597697923983415734033510038457647164730104604255956576539622616911700581713596375265737350216209923722212958143768268143204833205718908107282242627272740692067345696099006579735049973199956158284257791902035655868935564264136083063141919002201856117385589909411083540369834378359309153797358765877158773301125436505183673482514771141451998424760948556867200961615281289702802031233807778073615964048564739551920148149007661165139722022021446535487214620142766019904350878553074911890088460390944433108660425020261260837696439161658059768099070595652866062843717546516278335322184801530004673648459251537085966040074238731962636535107723459058977396328091371500367225086334116205495164900228578473730727445745821451356182880929425857920386334420475724789373199479316233786582800520027788213639445945236979526705895993205074266233980475443160307559423583399809148516202882018990600969510170711832356172920664158409719876017197086599177735239869158683950503935674864965823638711631449361582838100340112408404118262320796867967175053671635940659458084130086640471552246354488800613830708777894778339315511997968659154389285219740344845817545490066400658490705197163253528779292540729806313461644218289642963724987675013482721173940959484616808728192875175489968206851395599646599637526446706559915464820191913075138440406345483281618932694903754867553327084890292453764472188386712356011681955685060927206124790965112977301325093659847437322011038418128340360408307283513238991778346936241490260080377727042348312938733711024744747847778853410483786253736395474617351466059612336027881851255342996759893445744641477289929774837998272987089435749987263456817469992119271026578583796949214470805041195240680663430717850228512961838955005292640333950222100868524595846344789948277758234343621005477031030601892731030157610155465627627111836324682651367856345331522202256146745617109631580912691154057180580659572521179567064675678410600966387936435065459804501367217690966424650646701268698956775622564906767176328067661883148376755947574292488573646996105848315321392182780662801484470720569122556442946761695197743137444820526498686504263787564287098815436246457303246506684075354782357217962425693167415751255268885935520119704689223556904488514983218141106776457549140593687429741562551250759173943604915113428774718120682922837109338291904583547935956660067272983955690338310163297553813090562105934090811874074249570487131806726720688233282658793998336885788405380023955129141921211675327846376873853812320991765170145422871446084528823266262249647774359764123899255998971126292405221132008136050808811242783651683600926777129557404545226781018737368550042682360986821245522580082254252547308487829844032182696290604873575896896682649794203303501897428700190170457641267841562308264897537065988735246833143724089003053263314912345219368683440919000271337143656900261260415658556541582333933321924487191274235575893872000010752671466597388889383923735120712824958144710143927723216779362578076483108499727998647856976175773703621203852318019180498182570232932134390203426949200389046327757037158862006527652260338520126580650568044492597625214547374650383011701866748735085775234397159495656644041934788321941506350194849708636788815359822988007901407128520561147377826685834733065938218119916000729354211781584456604465544056672366560879775159409825087978539682510939073158337489058789487672165084322596302361437462326598723040848974968484111277925906531844683176506791815504367315653242092200445126993362270537746584784436575703074685351476672978162172379182782488601473560679821932596394116197175568346530607892870777439764827136870151555515681896491261072760107809810401161070625480982365594112454091003946320756093996923508265615394631358732382607743743022321703982566677878233957577674868199450728917734220902932284502495764093659183782508792861277195570715839028966316285004689385366384845394413330393342011982378319140107326316108884484166808665411859968030642430212701013283216413101311601474606021511818689570563663359686019604236234682226248739123200293622282784782186901335002429642030142766557631547748516352727441805486202374044916884834264207346244223695560562896032370093711061622736379671198115019920767878505960766525346919840264341931343270905327672755056905163332104810987340909736995411228129611656095159052508877945307428022936166213207350435415174540618871520971902961770483859242142908293977239480362181714393834408365247028956661867077597669098818125458891311073484890279373086326895865335729822814289499532371600694343827654318253304326600818667071553786820500892695840935788972173850066807079688192330455933921815229402636703986493266164270146370641935464074004808866370630468096679892326191433713321267255206606730148857869904837295980588657761283632462239379435388684690702662881173259867043318316266122446366980060768120541347607898841978527506439306083061060791814471341830674608426841924893596932145226259127542804754491571839380962070428911044620831061042680594371153676339122281183452000218711565938944773711886268992411283812700358448127647045254761618259741156665412989645783649430741949453914811982567915398845775931478645030541113587942465713707482121953322710019995541861739373359689788007047863532824932789603814670998583080760008282097348724023442713036573461855374075243293228921591441627560197667923405761264579357880646258913706399666239534397526003194586484322415051490027902660358600433579693674764335874180267877239920353536383338332281406267257183500396221856514720946902336392960616406789271140833582708647401158670843253288225631440991401164572215504442878952614707799534350193251561653399511411766724359679710619898602357271023631660816381060169238940652228740606194266715086291635800152309917834181994778489770736734879344227653177191831623223423583193091275836232254314407585223443397619646142315989903111855270142756557450327853434946464042714057392223142212332378922583649550815599644352158862196655325858852944394859256433581819579899656000885923073111612046370703177285586242166610543987100379359296991602572347380298807976228852599985850452512240767664919271649519953773632979071495610522946113412087403445554804093761370352943163148005306606318377541260133669343241609109455978002681288151152552237878896699297711315627201574691370615144985070317901173340006510863240073642412779914717965916365255553665128834158133274518289236849962042589151492293574193340958351073065829002176133183492325322576227419058429799972505623813053563570504782705797390097472989199059760260964660774387540447185975331626623234872213981777831500656912677528553700772900911230928473117080713660243425103842834571885599389189325585801338463604750739595930560189999948575184706413326280183166225327439036826828469304908944090418540969774715660673135714630396416772680254803813012696399930856841611529006370852132306220947195720890645542140452475711310802263340622644802483561300251283929292167706171826986074782997664098396825578589996211893345505062783618180617220483261506084291465831875523659488673648752373819690672526199830867493180546716620948565299050627678738388646460327552739211394382077120786966064064191657832760921921943115371324462207525234331712984808824635659050028182270935882553007558232472645681085873752848899812286444887782507612789229120411328510898464283308536855659034018522264448713050678307788522795660278398722334596207366298430192596392858461404882617861004098531562507115641084496486269423272919280883153504752398877355957626748663000466764216653495523476918153280792815317976292135046400478473233780694066819965290035933338911837790861434408189979674623303067118233523629542469882934802938794586876184791710243335632851808832972565100264208314509624726409624921441167949615168405241402586592976468767127104753105281315980349010768286842075197491379382837170212251353695352148696321347828861332804614444117578327678399466569283033184473589030417361169758213660995197131200031123697878327036729910306238146295714927540035645626891289179570922044995455274355548305134333554074979222539891927806247168219331989382692985499843137808488550806449328933620060331503628036249181793622703903987248636239621111805489033462418082318735308839309779349590079386565095124812690787412282178155633223588882428282628969180233883967419805677328630520602398350898089236065858678902473426591621017827288928445796161143856651806280080434117671754035258373704364233235367222207302655503104699507718569057281293489300976160956294135643148434814984779928453458596712782922559673013711692618449639398784677690017269610451936371588790640326629521308567121660941517861881867219775829200407596580536775118898254000976262702848688899500124922744940079083558776584311145880507247288152464001340597015197123468227977379534531895572861613324504732909141268583125100339299068009434509252048627729275518735962298314159689666080504946138284532437135083146230238680637658622241875004725462797301717007907802862820449028616509036091443194193166200375281432188115283585362231740894737799710797844936119266107304954515621285950045291421746062425876643882217863870673731107460626836481093444908690737442031759014631230371779641620918198406608148754116684639125009464837524668311869030442607431056476401276892986208158444720951329578356864747114471085186213838311195582405533479038499339701796184646968974194538527978824025959666351049973019891495385980797137913457284324677666134934210987811532066814656641455591463995974004125376981225002041481313135744659477844612752780197173732055265846970721045713570832688940730078003505397986713681207737148270767230332109683846586673152069073376566985363218891050336337710454373666913473272525967994229119681806913421590898450607976252313891722210779403562269650763336384359429096775976247749312530352262109307151874298240786291920781616581370909051379381752934693643733595662627379677473991196456057095719289321652701218300872047859384214257553616795172277450843779915456043852849960389758716306976457327020399830899477698487318827218277137196820014761494792007693064412558279850231624422717730363140343160064241604294469128852232323915066079837976091045292702803747498065316394500634247481540511580705201676536445028578750376769528305094783554360787185949122208998103156948609015443204263530660874761101824365358684968962114270047237571026181854831048092776798368094939065688154904182600694578803671129979561509143141662993339275369251550695160801393683791699890977901232293807353080829353335210661327718431353641291286046694929644584500313010510192959849358236168386285645920210494426984672904447880935015387516207716238983846760075986672849282977986376704789242380810754339064243065350492231431226774162228455190998725233074493499208953419469939744819602325215758213543547802260659384047534949913633056487112659070541355509583205215445593073949318283768077683574565990049799036494022786439567775251726115105672189223526132362796944529205702067792425363760512765094207297574322359787833856139021024855190269228611460226326986152691557417054487572192224662222020944655552740515889298188978646893803996468444903178357190594066938720234006252269925181223989555329452601393757368696675634845628158158282959135570237171806815269432589592908471912210906568256493265487125066100651207599324374864090086635505797708293657151729265218686093810021006128067635479501824139074787259691780866370847125878181861948269389869578873752622844675769623462471884393024667848338835271575150850013255998506448955526963228755594289496139002369074697086992263753535784754597907372423788884679885851278109829277234135314502590006605449868297430656959444936640462276568055970253510088464305615006491018961796021288677877165560645630144017347929790594311063468210025457183267370654620629923721690813684994387486321691812810794217026460085766875821206312418129110548789942977675196405586064036157761996313255262863655065519002129798773324598219616273811414081750943428647657184847718746876746151331959486097796786275100859138177650682170143923993609887193526259269393643604068670767912126200313298293723332786269767332844800618887681159763320465433897578035112995523421025312748042697632677486071978272694329623201185275632597309713352177669169425438248861239553301143886316428966115725516165446139419354938258174087873003552988385628999540927278767775134424665251867911724562719273053683073519668740125423240299867360101319515348611980606834194498644741794651427763463570979478683956885401173343083491164363768506377937014091455121219533932621753195509121068926905964498200363536737547089525789939527476227552812278582907642872514309894335374778057467956171290009373191715800369548830136079534257327246009136281746937823540341791986539061645116746489287903543593352967580378940562474697157439889934927269985401222329541640680478450198451365549055962214536699096570041287402471822977217724969870020487540958497700577745714007430410309442017360537803865796152001753126515642141815455537030362785299882418656289277939347875479833327447397825271012634946548740172949794328445155309016234197863829576362266121740997485133245618866828363830825903852837025271707831305425826056230838845728071902571829729327383531756601217067039585438197864032434625691301747037213531559740856648407297338476914992029353157688565713535654228545122278260302507646531387839052707158777733642854421679271648160830286174356899137948682557875735648848552276096312691058104192628697319972202909799982667835804778894544217168866117470696502250166970748270366526624022838418071451004625451754099353357996262680555124480266091374185466375054918478033494244164176328495260072568939706969959517815810319203410863554027736268886802520761990698380888681705536948582458948048192485484183134548672556676115514469731078257573425380438861565228544608271546073681732536472290357638144154886684784481656642681919360974284944180067940260133876742006889527069337911153127753244342045082399150743010549210639813858489949551940014454850257661747460441508573637578210971886046828699156840799136245258795804319894245542157690426704120362355380462962405215066792959724631584777990178814084203854298668413508898995587616816018073341310302683576087163023443354951664224822990970920799799361524247188730294223541517581958966181019222722394063604502333965650467441145732276732313369173640438129512206371010241091941437535809148422737873022083347860459808026529153721955037232734730866965337212613118947164569846549411527077809171056578812814799969602925280573201715492420875229409116375490487679261088707335960943787528270420255307930957760135136200716043109490699355718713004609939069453047689248598982145396179784250223166510290532676274608028204208707366711723489893005926679727147547851150597841256090090035831572161455242995050783708503012864101760215328903728130131079281636007981913674426816005834446613658601798214271327127423808934086284558438484492831884587830042022294803578206786654018676066542640208548479189535398305412488779877615175852418171452657066681946889987080582008933443854432499129261175388022258778659563674953180303135978842304693107608142513613744146210930339391514886250090498651609253860118020236609469285062620406176257029882065295042383524943392205040362127242070087130540328148074298983748510966060327906965466302582597544977476767021334624337714566837396509567658909763842888022448006750933830990829751902151903335708638269453583838343262124682392977165496749563044521749901219076990911934392856523399121015172183871469214711828122017812586981436681677986172825037520209156530710720381177405737434500328231445024384350083984784145464652717702526349278116845094232497489052320815379919156972741948616180441410165597152029711532628569822732426292096906678177949305783550077417114310914095206922331859107339867727337302739840793994175086644875626910891203483827119828062359037336883237902791375136746213423948162357808418619452603060342820966564325011294342240693325751804989120590255629891416156800815401370416791434564225121652095954407642726862579297126629395840413011295872061089453832261160554809066211755392418017521120410198761723928614663094297857803141369093248269313269122883279602150205330479993854529899850188928273113492444483412781655290843939613060425981584905391376136644821545043424166971063823395680140570979295850881673037578877105411637038612261545498257975054007853731462817537696098484078125819131747766670406866860114483224246992360274718656196887445880405064443708324995230429250161268038349417804388240742533751714673122311316812663944392008457691179442725289183431911363453795678300650339764898817183875813764859955644958989839300337973563619657566019658290921642357207936758714954128124847905714799272738835813363599161499201930825478253968144622970432595368322904076066267808438958151878120960052081143210220634968976444582938284557150444999184255503958946111178035394354616923767961330438324748507077329843676520321362299548163440933663467483636347719017787586908115264704654002438307077429782693674672807571375435922610661974103937036282699920401471163080792459516792451839577736227998181731538115400489727591388925656710225352533395772504625806067742015529858545586037380829828504415796523372900908622305473358226379995796317658762717027565400951800866668951955583572633852252401830742866891397880567085133371285610084478590771773247014235016697802163843520378067480462969247964764701187627482211729791506784908516863634909415467253854311271132117828253760010265516804797102953166932542330856554294671230114277811118840309877502660900171438321829019487965542508498435754063970452127494284981965557677751658588097976758133283542748989918771122503714740610961057510921160094287685649289931074569846810630417947177677683337816408296964197617896525918802049747687873474625879033553351329250596118046942760025369816134457996048776271360792936066146996133657034846161999079587275142593038473964804286364971068016792736148445240022780129437821038788522373374438841755201687143371501186587875870497600709713880068070948226218542934492432823750076376866919956457761080499719027873708548398178952395189005798800996875673868789489580452296339063934764072950319759031238333550104817387401592588191097999253340186291731434750951558354102774705088186968763105779822570195901457957209420821970662096696638642142538571786013108442024594417535221604033289155145422052833475878884593815325933247303874660905679645547131791136307167619231604624097907796129472711437296600949956291096025067185769409846626168076860208425763322274653507864532451013851477484593807912914133692299565236806788826529227497103465779318619787192158302362533612160345554282383113171990828524951309411657219531069703565374862999747678849384497831767479502941982649887913379621521819409500599564133369056461119852566537616965007547343679027116127728740949255426157036891735201989343348682099927321780626856356605388951044562778348532118878167657351309090703718614481762305061570318768157375531050916251715552556876142079121754739733592804332754523182981150161595201843920701255083576732857481041390605526074161714626622839681133486978100108875224157888025026395798503194653221458694461976748154733326188507279760776267927172120382815612349890988658075428887798231034626160963356364817958270662508291167314721638175310774948991513730302893329939806147186851222171259117559564825834867251607372719851416703759943511693080894666260790198120763716150188288206077149202841634917512110376575124433542631041926539081372929166755038537011594064182507441832759924637265772538773478370880999981166530985001821712383798915646420905277069538909697290985750413227954147437937470674358303167917779275222622505361288656769467332615345290010219360942474485281098208012449099100728379396814265756114337584457332138514255954179967081301121306165101767377677689014468157787065442440707786394630685279502254925958902882671037802277509275450550426814295074680309461095439065205875281032539498779166091832661903844566356122198130805959022287843706146264491883625150283437790361622235874691238776922687523011166258239679265727697205561611008269974115297023915039126774562448081285679492915625688281936650887014406806724770315879347358181275315958470063395324644183349755479527408187044154664959668044668838634976326781861396086064608212764356408070218300398760157818590436017671613583893123020122135247203662483417995729348122637655711459352292617273435745440588620756615799208415085587636169216894782204865140240810867382249631827010425044204575887523985503245876800120916817062013920336057062459418610491574913801267615093378103855794696585989866788817473720693408303551680121108785309611320255188965394720775615749641124548713533399302725037314149815264736976683178952182638183917308835501431695387457591237229808171163004675062351049564409748059568377265000912565210714560578982359403198770762309354904158322544959977444073482645838249042889001267695101956801834567662691277641033891109442262866992847010207442057823646547112940794607927478967819031679455195352928525052247594582326014944013604503260927879493017677348639234644324266175648089396399933148291140732275992291142818370001358927777855109936440245480240900295859359270166000041675023533444171246822416222546274564090808515236723997484260571176460490476076646980290660111066942185148608006504403144773296733994415164910308841086304083017463586284759080580438059104675716657500837346334665590375567236070135652256648363823917285383951628766075943708179048522375666797040692235160432405315223148858621335077649677649177590942876671274347136213183923087258150184005327745955095040188865737534788873058666378587403531397683069867297347536181357071127689341856348333138590861134489673659391100662430323192859246293892329117169427077386051480580295823102942614907813615167075104330264825217719323671569984824175495688246346093231722792933736666877932009085815171767741980463129668218554397824057137912208537048166063429923960473313290053867872051932060830348441897110105780896546031475110379019153943391566211522260176611155277129166671395650046928026069344954308570046635968846423436316859702365276485469774558978674532707282486644215157546898633510592449311045889275198988652546984302448757420964514790602121073080962675816591528981926768558305049717867782709174599480107686589572905513184959835294165218668747707671891447656192705885239339698142399511141995217492182931183451210696284934440262255309234806694274322266330063318180213017434775878214404432747398838494287794322852218537767827868003427300170079904571112580720771804980025419092564625923221302134111110077937747900107037971276279137234014374527899866987658026284381698049231845959150764558012877188003702283561435001091599965779675128237078582147477898221765294508507087474096425409328974696769952033954551692098527791108511763044626578061091198071445778499252431408285320539751742992815158706084877128195792447609161065333702546578057177260593510569472969845423418397683077809004989381397839047039689601789062156382778846075797366228039967718788854825466467947251195773465501883976168610830088883762712338926426768121133406063064672878959850715306218351486684021282703580778385399386286149005110406330268937146297994400974920979398010063431536229643453648128985154223747955082870920627276143421247874891635209516538738383218323933813315557628223996210721457833292941077990688716812649848652013412263876317736790795934036279353462242724759448354667297008249157319169432333842531725145518572225228324455144183838713216668913513017728187026593943363950827939092051762082370694924274914099076552438362211621256466330128719783581155753542450473454786296120207509010060967876862531432000824648696722987597550694594686450361603466394659656545317133131552972177775905822235387535230655058896254436134563173470686140254702877349500003819449970301849133578102799114938651392578248858250279224707776497189346539897001160010913254429843801108765084098913437820989351564213265889826772848735503653502204683293933645592822929119925274886110475768003229922612005330222590225364486082046555208077883930493611475722207351462168301986546010909184727430825115602750279733047319709379600066970014572450578309673202465375741000361389320959961241342989580321365270442080260424725749462037451116126189546267087574218633632747780717171277374884070691769876965343535842153742443038268552395055667148028488304863747942769318900536497066277251016494061963318317419809715062341042233761634430018475112819217247118411081027128185289478621583999387341230305943378029930786920855616636901414087247942905334486210846776154193000776845169616447001226482756534224027724247968046723875781475051922217116649239507815393386517261020950901397499949454001764870695546446530246415936869543130388207198881961587764666705929365928343045145714910805507124267874881555838313765893502382569551088653451815529257538044272437325693074556939477634527095228384130229269806341945118926357539747178019096050399721162212305738818942881224400212577413812052258750569319967533659101261987346656875370264615672373005758071191348396785350226250189450755128261847425057657384882154576633100315167805956957891374877019316706094448159693987986844576739626992598565903382421221573682336279842558136372959111153416831250323274471366068143272279214955264263155454150256675576773829139628300011438832574054720154361946273948731730405975087483962670290139214137310311513985469451575947300424622444715079815046714923714577052033727556621390325441237324429233695911297837576717037176620400649565781238793591222269894541800466320905331087675200970118895276174395618179489993154289093055151152346132937916372196444598092084954386606092549681573272545930331874214089150415828653921270811409679721189036801989740284464585617824853024920581693186938483070196361134816337522341635367094600101812844735807071335546528437887548019264503812585645193788535481383453823260778199314961135192406816235124506861683832025464896795093780336609051451994541611322456983477798210964703260073687501068632855251766150013476487018485922877703643380124571394520663723969319060646006830038524855293446574129593130910476553651679777814171688833941072436339282675431205112470112162934735277238626622377736593792733173072894011818254678285891786764726050551297943409820269060034179214962797979006566254213316016471770242159845094352236301543695208828598642816332859681239408557505973894837631973480342618337809516205401770314451458858227385675990121912512307790992748456334270898299924165512798648348451340578574608710459114702975599765755691772932200047358161536393705018792381082214841968541512826950854126761374252945375812012091863526835087128324038284534535397315422458278181485208208367936333081064987322992600535050646540570404665937738460657064744801044729460807790822460741302810550695246070901522932331637674254849329065524795255342115015543966104241777516532391911792194152295930237369594070245599498442374043072115507351563135293416157677925871227440494724199272375886086186243896705256872924785566887294408223347250471545524781977034935735697380735146529436264681525654289626199613319211162732369556169179224371826203939926985812600032811026042560535402634242930646292237469833407066394933060041288373075473170167537818151307160788702584113089324447342363884412544705691786321993399103515101720079250031509248143336990934183164616480545084012639914809498505062192787904211485284802790416554761274171062290983401319142986733264700546966619670510336563391125720772061277460732046730872593173731693068591946640539706280121476393107151203086326449996771608548902459314809279468583522673851896339898219926990280836751569165242265204938178642865193502825631208312417981200199158605689975378303452711757479608839218669067207053877160741677640565316757731694434740009613523254204974116811482859059422430250926470055000475886371742615204357665211878590046164870876144943303634017832814336728388080719807639583168836461925921333928698649679225074749123389658276535373400714053826744783539645647076214061755962920301458368090545314674718142090001262571183613978439754360289545288390417871057407161578344481311519644103744668600293423463481963655444860992150779580366596942685937264959686451970096656180517406731305758061948396044007803871745417230572641342664407103494682263078209241265002221200194093628035188738781526649498021684548168855602598760049252571373677441134012936443573841808136956965009950782646965045355513429340110804225975133180729980587813921499400467152661893729617126888359135479654005850744007090279364460793175882734664248214002959604073239567304032623623249895777562373191888220447024554892157576628943947322676952966329829110917127964556650012852399195743571221351517681179179705447112657222726453325392504113634938511372860918529976911796102441932654722864468963620732840330257667204585872555276765635585976420178042889175836215990161335113780981694140132204074489442334294194370401257474419514458038318722655842979982882068834344540582308191838414017769537295100675750374314383755217132919191263442897088883282703349041450640984608381405120912682302252820820096002461351860977118421785919157841391605413313897896033097114402418835211135289756141979628790660195249781592164949753348100922968899234228143798919793931010797898315631829342172623739481396316431246493413223108500080007540122699507223834317642354921236601747497089160794660988902459246001622809062829369825154745124033131986364678640959389881770632732844431855531515138084634979015705025403316668206743841116355104931165648828412647346881057103652736905919565625814982155342633454065272109594402595468593447107463211765338703332799563196129358514738016087898720017556559840357279780832393144179262945099763904678027282956011814151577082423697405716647386821361087700349078997320847021418987182194895684403751215628307998874548086452375424201559094048495180673193477912836881196316871161807053190876219341577475307549959265883906470205752161728528502763911905831290471414062257858834630442347148703043608228906757496871091737523720079940754273426545350966905368895756845541318402221681544298362409712189656739933776288374247714675740472292657667775636324647759116116956008063911423567045998417763986388629552585006913463531128130887114474427708263668971668333315100364361427609425898452131754264523019578294982992441490503942509921082548767528923917391403839552395986882323599932390445584390675022859175435796077553123610548471603129192562511800286140942556675456749055237087406382124643533759688521153619983568139927791807652128937003760390326935566835567782721229681068194847959522871860111787077335441721413864347004121472952973743284077706218003419424304688327431976859614149342505802743235859643295592686084273982979017930061261926077193131534440734320207352827839858047866312210336664663037711732604014338914956060856031217798884798300295932557777645454141419059567866887205926920437374820268134351073969968577601206565958149224892089370640773975499326152556715658900322851062819556408369394673475518685749174110681843783287876628473139551318639888076242621367663054891671903686821320359484967033505386052517157024080062601161899093237045952625538180841926675384830540738999316235449165031827348019157497863814450789567716594137719427290218963264845736508117219920840442398535317938994743900207062071318772282993584162444105193998029111010401801223647011200066402329680951276673429011620637563735528319575575405800619914854284239044142764819645649907774910707011318864597353143564201250623311403783777827435838669801000479245030398063651907183066211404672029577313256731212949896014159870583409128890735246271992043353339737917382465734064278212886385141921934711742226838186423825582627827010268834407783551399447848933957109836178794027919200726159173258734506621929751153029536684708945411788498522004972690362095300879801568412066590176453539680030419075425573450723177736514606596952004378135693875496385468932649282951238633815274622523412206981127170716294582971826123551123525979702545694485699242485052880732982300675339321940225794913553575417008223671412351395438319533419671845796490437981034135972521653607492033744531103102560758242939448269103203281168086497962229318758108041709818476298035665705025651428812559178259899281684789120183803109104626690428211350198099984924834299800264455910540758911848760425749383424177400303990773575916127816595459316808632926827128132265625577151121762255540147199950846388147143874259637343727155892955594123655533379171213383713836228011029811662485081408350928770642598441260361971922909745566746097684904555981719866793980323000688343021930823569603557846132379350830563014488231066221360400057093427075211827030790588099410423152665678117773196060615984456348129867588719320348776713426434921052607708395162881601292379563662071560773295952890974430471135104805989430510999232694809718543057042246636505283099516940223306457668985390143460409578005983431703550571311261603904029478148463311417131685653459423618503349871413588394383699342812909895490383937517873187128918328608779571901854900226368518026817766874858500750923409080056621104969113494587864367480033766614740740800345040019099982916580002213948932338653947936294779917088959701310597595614846376298820502182973513075958925287836194162705625813081942386113193123255877267294090161531822072100348345274404213578587586876019235200495417925286563024691096599901388992278896734529010145271104019196086350735308078517989807864145316093735900865164285136143561715844556331729112689897353159499483684675563202575599721807306961356851264262367739630530178411314390099699262947996046907853417960806286853477816693143371603596316506488205223228137598051698351632223858886257853681697330777947452410721708797206513732230129571524280733933960641401503611153470768852938322790150518036303818146839202619930704296701872352648030067097079049363657733737079013183269386641702228238976116280260080927777936624395764378152517418147450484124478073901336666355604198429071054418456090396021866707348116315213228822596619836871096130485150416703720951615568648480667926425359338052197315883526597474394298021582626347637189218101897990014610644336531201332287579737376881963844941970894157695835265828982360691582526763394126374043265208809536356761071801588477870851801977871636387502091319587255635164514749432522289509081127494055119098767275401566648104240594144332191400936037605845350823366502035915141065343131751285189195082595120901607124865585827064068919474554104346557328001790644720387900479842361699862567145455976644343393141394659861455087608733349043519017702105671849683571118900571775702883226630169413593939045436094291157895275776169586288166458335480128780253692884295626610700287120415220341364053361184387204125267809348469220635530790748027007984693980174657151474629527162721491341030987210258927849882006453934398500715753833929756795418196595141514496160024585248439618221590530999866801354301033222233053016006874147870419622964155886603954557785155042372864310975507272227743867134392312949102455882209024304522415487341866578613320976367286866471349323026382458944441042571843396755522538653854507120439712382626371256220939143606389023449267922170922313431536870249262340306607222265262782879210538817145393126470896413051098964330562965975247826256229916696097921627323365839311840217836081728837014716847825270359608824444708381485347646550963646726258815530614658621758352867339025784177399490886254497293903800830556530640710425702108977161499919269006896551846565957771493362352651380870354197949762486580917477722414168905966594644510006999031573862172978189700700400113471001488751948155480622976911133256839582318979194631905014911047470176628537602971736578024295690464642223139839737635735658737596978347731534342617580457546972708198739933256610911603971385038485567830642746918713835676048631930521764304028758767287108117880210781159344872518766695331745825877900503634353805389707250339197596731193252457527067974604655817260901577093440011557373951551666820411217786068713705405271545592383883413866851113787160865490036735743130793040412189446731739140817928617502761952323654397625977604180771383787501206648961879999973102009211644238841533887882296623333983410015155528609560359398635164638791263560926512140835459111623195497962864845805993074523635675420067398203020410959260188719058652263546031524451524977188797401832455571581238040355597010135265426700086201506778893281502082245661425783306017218390028227798885409108843591018249485020453360091641771279288141227998974576878436683950226533143809554129563714270852877534924029426950249085648715377933939867466433479795552747506454144832726588199725240299917221292808045171721499416934829255547745306913925273268652674240708318725947832230200269664559463031973867557925462040199524653892146030575073100118476496646817316485903084860684432828664441241303641984932908545018481264212830286266225297478891177909402567482103119471599193292762842837581520608000059344170132920615282421913867035440853044228435969411999467450429220011889847964290751647442071299766744476419626819459124386621012802391927792014259202795091528920433257776735545186356004224112983869865122250419754858913532354514955630879843446880396532916439704070396560681641653920260984050564987246666793153645701479577424844281565274566454302994889949270811176386335135866311179568306773708352032568559469533223001174236809812688871072560550527659052839847185619481179456016055852752272628974109835148302803096214758314361984707284873744471500995590500536159056964964075627998649504611762069244264739330627188839464892024391205471021435927806250122490048544722796922319900439104055250129092637376436025139646494938805327397821800957029375925524751159577478738284222909993688097474606181848140946959955942537636926276525571563812107267341126121056967232746552413749664099596385622847206238568327099934550678215244360316518580958284130298325116248469514476638501873861971622462887981963940089318339246699973378608911335786122646424554822906757617857864196398576562731980154461045039365495753496738015922993892113319414416842239155755221437451432470960793664208429868792086780188297159180018341372686826170566865345386591787189687596612880492717949833376280229070312610096676712924223707436523569467785899714737236512830857662392827006973839660063670300307870162329731501884330255821494417019982448584037805235198952905136184972411849078361207509948464568571171125510684806177672966820703739808345447861281829380723233239097418433820387442201929231574681780331245452115653751241811003764482009438704596167124874131204624797817011971837450839244067548830037392169661463812282296924667425215363949237671239696138644233348819627355247541010919955762735938786378266190089800623553589997491428945526916599293716917935493112745291667031573042591346107334302861630639007866428346256338764901690106372354484479009369710489026567488108233231063870672210075680484534646016918819085832807946612991335244942079037235487587072597871794646325380124934780417566545201477295018367151626397436424197384735553669943090375971402138529809950468523228727573601289786101633026302240746578580623558683547550709077073676815817363857436304206692819659550324852682604403337152304807582964076620828053979661190481388127561549174421443657347982407932875863802435398127316893958959308962308365917969990279034964650200773657382363122544364757664166380736567702506989228491274003137402391031819876579824140387366680126413977456361870283361871678140550090201342254769190776787971857806096352146373878543379560590667926919078572339753050310533972430593287158644845981393300494409900077296964580606950633618952990056150934095861543834451783325896610988551310991192945344655423993320752400175202896906090302246128827161130386709458303217462086949350644441094518904536774960002731140628902139600042445619650994750193632838636906251468093801288380361917562380599659845514268641771201869865864855345518521693233388787858197366673819028125761348294858944112874109934060591391271949513563943860196334934041505309995362210053833510286402480214371817726947260917547281173018852228020205056905219284036849898870734103029920617085221971159139158075982101077529549003892747592042480150773320110545991572446256102136394250494735689832247856543716298020704887841423437264598606592005130090817216798754946090058019603682504317515618359551575324534733519203431091629649213315374797430714022909163851988327087469566540543856383522818138146480031310688929934525300595037339451818808730618007472104441030946209266297599306069485935350812636078884820739864896012362549664543595049816233721455857517136387122655793956256367940434524407085117295920767448510096907878336781762696032065795784884989556822331036755455539329242769463746124222758652053944129858433729937814160054077893739748399103762561337970907618233967077087780074235779315489848741208773138450986054178239166243690686099625604825429389162047599128286064556939253585671526888316229837837763718533144743598443086596574329172824962386233154777483009225987590096521221843829326200840803514395736809101314594459918140135633610800681396099465282529936580850174604205924974535593695179610451011058977555499293649591867419964522761393482166534231101658123495472258715506713599671170044178336703439410016141042716670508657443222334268076471582942956667113137554312978373289293319462003894442263411895017508353971444108279092859622058294493547592202027522984312261607475164980560132664103734667011822127418042348255725834685191144043552046457500643195689389507261329497563676033125808293071627772719748931172747475279184634110840195855584654432346179359911663157205241818090150137602183471645251264289875792296794782576933346580738452437147196754240595253002394800964715430489825071181138633852294386665615726373242332231477544755307470437658267108169152973498262790348656063720692306044466082985419826824403132748984018163691062173716348571497791570070646977880199664833401913501857292050785280283592061988720059282219009503349513339367942821974544695125723301453475658782262662307864428375040143937526540072431461772914437725061164813057305480735461217686907240306904042101619661001804223231819717539295689750060113406662437725841172510957981345981769845031994685983541759425684128678229399606772710474517339254455685937225539556579155969943291507080380738670597784835941188464523988501354571578342374928087480480667619203190811810965564964832581895198451435241159757861202136195168672776253401090410588556862055646209616753330303502215677636036441790550896056202856998669433430826056732758409871341026213335062791710921690136321298141390696269419582481521955665999096736360140971332462842295185699378202970272268270327590958838292961984599033112753902303981841681171013318834952014139584278351118702572034617209184309892927090351299351984178104861458194123717674781665446165346962403976627555915759660007395833969616120047391369642311884926646209680468704777710434781637049530288223672125524193656952441382071717262441255896146941030713950555430179041767419665979582326241698914180961328739484539011276918838252902842983881935318390509605566668924036387477328565210358189590002604266452457295223703935120948276596091213910268416805145985782125161865746271404435081048120247850474749489138484671797079577749688349883754921051963634654868313663590167646598361099129843305658081542686306367616105212511047833444399041155587311941092595305990935532400599098180521239802966624801015305383373974598617789138094097503112047451862932884947523302074004993302066107421760825201236542593463744005048259215471179733453894589686218328617371555250242464732911402329304799181095063615802801346812390541285965945007629481384682571094885736981463988035961715595213861986132533756080583159765646268161577541725692983609147858033433135687158925047175552408102962637118087955986601267236600531854916826563378463025707199093147689819784350851166597288670216549677686668162688027948707799616526159528115370653641428709337669063395245556393974911724885169290740819879960430160871116932748922563609348770660259572073058337109884106727815096113113752206102920503622796312842657573181989768123481245990176166442328500863237230266874547636692070602294419227054148817382788671690767870060814859945198950464915241511549123073803987260972776788805326843296065442616753322732643153436723773071815376618418880769074637709377727697341852604436745518338064038153017082028532799785742523644891309695606524858229988941150681181283782200149146974699038263345822109435904040122995544227072665214274833782407655875016529450689704732021543161021575520610113202417913698807542184902381336976144769858077459441195246113476275123377087453299103599752763643175531382060180866176754803930389328380047026222731147801689044646892175031884048270858659597658310721887768110541699062290893194169870429417633285876325785502436830898044445180302712743934484370943705332697910818949354268160641762617402209233484558198763724050351218258044068788121113388207955334405959146850987888973071636931987398776763346089558429722148186409025001312946705781603873938739853990349287304951064642634146186892958530970516767605621703285004999426463236204332879682580342223548480543428666894037512005165469751218381459793995077780762167642592166700650208871728693308182374641019937477817507856204778224397615430551522052897469912650678796628241644022969848893203871499397161959822632768152432356755495633419952991336608133615314224628222958005032665475990723527458338974223592189742093867257155138573896288562713284680900524270699156020932487909187830393124035663459353471752742004147844648910396257126323216077539545604893709376451747229070941263984436806825761973626541699114197574522685000095674195038181942438307970677784799203113803900636971838944030469508289341333829350891686449658155107532253915141943013254483617581673286456583290168001047792750207760074305949544727357972745094562593150978239559599305300793355445774828035581634788115675415822932227035226554024041218768117717041400971110493230790796236011656888688257280200512022944451147311280166138962671466583529896298842606734538168625530732538956541660339868510360114335216295218372315090903777848613358715070658652361577798467402357040438130552148117452275713545936746555713046149740019112275340175280389766529633135797176150631591893032574321339471031818648233138091889570167232169319751731029400283581302706301085658284446887543723477097973537462292850570765069963593905825926131025794719894210480645050831853801909571562924092412404955042231154122381865606871788003838560909657125386964775865619484300005110311747317970550896337489754088994991869119324672802447380799018978941238834848323690196016748664183964760107467913420298719168229151323814605366138062081045910570972024660746983733103153958042353284400616307832289170206041451893400462053675167153455340902840894926056897968912046619730950208839018034489816065999101054847683093931324464168436114507682220904989602009042193351659429895972826433690863107109864076071922022394183204791835694676085953133646567041746551908255507950391776623056565323539389663261074144802137932011273412395681210659428858484525684822324146716692146889671971558649237747377810851359354712070875067882741864423949567004022140773534042920315179680640381542057887999739669432846860894464251249810748949733379333946503446060835446085778339585127345918200526259538872041843780276844568879621510383232729550699888072470800577384032258867519606452270302445310257438489803319611363797939291317403840348930869271833608791270287365434873015482538623747490898633541204938009153131883358823682303290413965813195971409035393422864964207469839275280609262639542039374161170609772236322836300670134561646999352729652548335180918355684592064041051314967766758018287398363443181448280468828234183214184063409990093602509032061537302838373803803513248466406859306021506105099205475264303954383718508504055979584549092848941569439108171427348134834344712870734199463311003992129671328830320345508143791641774644699389913959731223989852417586115851297436496743436338644636883509919671514321992788515501393455465479932415938571681894534614500454624692141767836096213026926122814290807651536778495725153849907215580920922088043862720967018282837944231955945659080697937475028588110811704443618748985099255081565411172866666783887289472962854494640000927302658626030480925443007177574389412257499048957973176138087298826002916067871627213266854803230504439189564410575477171270377541490463334469308018010167322078288645600361061174379642418003361088384846842432338314916618730525319710024243093292545659516633436532842018453269782489958971614236418307977996428391744860820891502057546197274134602892373219904905874382588983408495417007684739045734936350200486682234323805762529845422802717697292116109705403913145674814814487559951805277859089431079390215901907684973789081291458365869267887488406384400317874784835426725661674431310650592421433321221490329057501792468102117083839934154890982340558688862931649431779838474735790500046024025950603412972322889913033654210089745506455610880920591614265498606108711215204709679915777957742393834168856996326959407125709114824405010811012344512510479110704521801400496587398342331177253349089945324056087074801607176842499842031947942033744075067050799682151498031317321259252396888483966534404990574063549294007092792601862455796226106357700450913422555300732063604914263565057199653313393464598136906254437947589644963904172825745958105797975839190690096092535737254322507208215739925121180525540897218446125470585181548478436645885133233498751468385026276354205309885426914433217414129179701694125580325701927917180256384364901273835666238408077946418777633770610325495049306412890283779398739287783685825628043104685293153317048399882409967599882414405957260076128195594687239279565235139829425988296833090698307866487627697284264926935308889493087885020291097444754829201932806808816811155200582819526301913563835793458744514139592158544485164735018531540052733434366152045449301320067138322596553051087216164597887088646436994041223546237882998683945746424492773000759287234670056055709662509417053144300953546315875234795557096110218249426649253692706079047418912367088746303544059190424374039096933352236567155139976123925790238959966324061009918362383819049686569179427378961360703377165722422646600766512614627629112631034632540200769406449276886083008493609737844448640741220003135613492116268488915616970257230113843350616520715580392899176341527637940742831391030394405224796491041926552425290616111984193723251937864167331384981602943886243329328214880169565501493599422693974365504163320168831081994792701275767215479902767470258993161407264596912068466417819574380600484522684834735706281984662783146716966647119466434539312571093262353511159917967870847625858608568719351930751273035571595147188716223384855491177787930967153550410367172957172320459404125699343936531121997704824517966758433476703127882439381817184844075459835992792960177468019655590735633677845880472514617101887731957490799546532363098276782547628156664374914746678914830549388626222032501233359573332039727168265609306253999319275987139719547433338987977757421812136984707196340291010179837148114536400877647650096433648086247682571960318538522180026470036544726583302026303210259739004511119679106738949497530967038943634464614226155370698735545602897034760589280417439394090561762440310424950445682562003921459191759424456700152551021029928701618072240406885839220034382029113100871009705164473360136976267868044740881796529821018316572939706135680785954933371154877711201518897663970714629942567273103795914525500644217189564373027126707208257421363385043854431072267763936252977975178755835636904552783256732446306852008276595165728246351327061268181709198004312710145127957260395783739934420907759336932433529260463623514050347770341405025688348359982507659207424750177221538767008934839187764317309954869618286500387875420646806091694704175484921984226440830272226806099665784882262458158535529968204323518095673874766382280249219215197794887586382111652722141693157349579322879269811953599241691976761986671958911218584769651555275675785602505045548240741461878954426093885817460709986258396470402485736369707088232164150313293096832641215998462273957610333581962489161869649503931541133986919431019672280302308660759325674375960114230569277697167767290018516440042038222393659242422482369744294023946814437085708627213698871147793828400079185977126981517489855082121996298576239935575595554027207412191528614077713741106584162433006579830519845460194202856168542426732273804056843894696182774954359227767257075764903432792860562258739531484630180712379048239604322917257402841053217972237956725254440376338070377194860063248164545936343356063704435912467746076437808882493692612072321390662155701475436967150652105770066789916964775802119457773997089266495254895395482077626699902811387215389082906776023193884976635606701628861208737015588634725918964589930793083255230878430980855044633094957344357285043598746988853367123086419924458917044918137368088721994785078234026429754821007650179872463873719488235392320985734063608253928564037638352178785898798330357334255884700430919059013148806789325696139455032393746501254986938929462458577047621765411444131432890880924890892029756371317443685329760835847438740422420498495308282827109050893121155618480623198470908630054503934612286755633522304789801791368932446789508976129652154973600249815810631429665225677707913065755380756152226675518669700034517798668393593232585983284012422601353748386078250266734746301871153484413122676439316340912730158992252789762891879261909433803710322820967442076274792416879758558855801851685009959516234623639191684058855681376930586076187074594820523927478103299767691181660238458934581971922485575268455632946872884724071880494045331480507274118178711901106336662264498715314391039592327452227805473741338568453124690230465661151077190943904448620736388008659738903258482132836537287237771521305938540273204743720357956961874658212457944615054517647251454377910907614778028948007737026013696237239615968673812674019470217181359370103173729364464369242712212346829155635144026503166638787857710859089899209586364329217031485696603769421301267045862580867010429480247532426378319369454191393512042634728619160642742266404352173603856340510383493177958717887089657139562030869890473354186084218452805577057279615030239926212380921214412462309831780943669718023691759815370938588283308703367537984536886490517629190679273612774195961823071587183324550904268169189050520804984925194060568120330054909357718981713514492765572527895925945613072441337318766378730704110656417554997436612431729549518135079461010596198013770416639666507941080288683674760317090633140881839074367949677938063539936894142718967836046268391292448107566007445229502948648689948589964286144418807516554788978571079372202629978813496787048913693155366048513668665650284334766250121751088286061870738484065665027739773056872930615194004243011970650113837942649449001379154582356266094633318264452711360800502163405375868915564220555771570512463013320259018872237382811120214282384484559294047536785564366820129558427974049928075239232491443999680172398133916679016372780075690825889117235605920439674344186191650554281254264551680752285399187148173043614534250568835156660601982183342596712697561998590675377267267278397362112077661952882086648641669104217261149885764390235520623009527812706590802352673392090681883023139660550108973765771246176239874289477585305758774165020933874226036104448424376887611084197762530693886904566600894752672465729362925306693156036261372055122775195248636689902868875455693450421097593485863117291183627054571242657987548554352790759543951085595124473550563539039228525774825577744960437243813147097359171841134895190012894930894158070486025121113599976715141990770318313370638075989256404792358125513703715215949319357788259979370137179165752172894742394924871093477484901369455008820193270025106939653013126039426669475062215648002783341330134730969653188485835962547980670666111746004038713986537204808372045091469134525427123491157377847683716018812739614156514460386091773132312793804111889981382723246856975903862388925474132654790833568086382696164287535197971316381999386588809010228038187047799404163707740876363130100317461821536753288705053967616812955338071414906164894075032487842968396204207042744931610547412252000345120097430893727367997630522038446372828590972806309269541806764541324719116852493705507169949874474957247624124053271383773711054824261884881547738617965600357563839066909411993904478486559861622592001384544975776078674445882888222058759128728248997338767332881720244594314834263640722618534434232785325416718129678222005777172112772359570984374107673724876317858355692634625700037818396671336250159399733169742253992708030254395943364562492799291469702278209661010731550127805836702886339245911674028765366753252104712216369803759384116761073267639492612118577378256638222142504439344268876572807470789447247286889864052725393365095239756213137135933058297953037236900387198691214525984910100549183383364144101986875600256059446664599997397196241743693062015560592949941012027901289166058758568912005614824645064309242871880153582708617343249536095596377491975902213540004030584093846077398378621997665398865590483370182250901937048360362853293816343417956038230056284557643870138112861866599199145837333171054418267007866261840133019481969574227764636655156359097795206934464373508324712403366452721776451003107775132087626938087847595323252260647538291603349094043146212629597905274839016685256888282180273823088217687750904200579026765490975802199736686587626957345347550660892422487407794784966672002264388807869259015341633094100290663711350062086026553699704210579083051930913806944292469292984099420662841961934989489451262237562546693345033775189697506252073287031907748177132088706103116388409240271866494381025445607836158581491507979472710539331795821776589171004173012253747886349462179670937354708896666908447600583062377081463398987843900620377580271066824702862205418743086814381842124188005132783448972177656380954942693314755475395319435113030967212325995633562129273548586784250010904669791514895245299509050715298941890686739460131908263678443245409619280525799672864969147755798383470200373127661045814106471744802108789960406932219349855754128533312090209649092337042315431683968704405775170442759278450693323846167567627009649488894846036893635019907128105848594763423043637229046554711512761166719863319853865997394046250469652260674060083732744170618598823087269009796476598013653127985637260045814411122399911342542369981473838259961908098335748592408126154652017271583727021764749870733215043829135196929688902283137956388313419365000676929865167070012886305701673419630016923450536803177503173168054706856284174919271417139148914122915847546413815164583686386728133070238948215304296396572237444781135570406992795154310068588117168943787162768118352314264949828466926303349279993628745536109621646340339745962170159797691082885507915511743832022311965417827521265779986501439127496149524869606360398603294828939668574527831481573919622791584817213370067420105605449280455800941473768063953509032211439201680099271861045096299690560962678714914032216838802266064166244192378475898352719915273608945366568900418389371519268655312135599851232446589274065274618296443975049275592351057595170978515958230411767612662154578072254479345277990099377006637858591038546565713197159118232338788175573306363387341946638817450099433725597742667244401638140959663723535810077942196410524484790513882478144489098962532481461096440482189407620311573038605452725298880369300548006986919781949158180620953484188825670048548851612072516984999254490210553277873528453109846849634022013258237090563018520910000159850457649002547564913723938177199480561797855475821008437012159900123665003984035771953752556720637398757132964024012174645019930824605785014003663122637925468840116137883950745118051159724947675896495500355069115605442187396516695833660449936677660870843006639282902759187955502080632782033023330331948739232248797895248600542809580320818057290003310533694166301377177037223309576885324053374486508348991610184371784647162204799472617664926119739953721593136736243492057217706242581014951797853093557917135520821895837816231421111618503868049048579761592050591162548995246093398443071930801402267469593518033511190107115916536866548731323890781804809118235798662844551116574229384440829911870567018518351450125689057944828375895483049117715640241486460506012439246806383950979686111814158343580542380517936489667156044614502560584660030517590928413897457874592948850289473319827353341501126944209228149309674339204477094654267176239170255322787875970460788300902682388632907763492246907205362999560574111296304222707147620904156560322902910001905903959893842476526740838268384036286105584783739287651208839646382599614805577638332364234961337876865885944306471221994715228424636269730182712325712445548114962296588244491038161910956462415930964650237954590652820590511514365591918556560865086791248543998287023622463237947187599384306476550087641368915328286400638438740219621823936723004872339501006320022629450409856001198994601832003514181282845168739207702509317500780538994097122075843595136945901479909343707620966626913854584988197132937792122595064941118805279825025409615875195160223276740134782112768757307529742659259681175038407749621394575814453406587793918159161890067428198985279628731830004641611611890375087654052074793894881917614135441986058366200635241596977086748505655957885890383406314996768091470419483831207810190691152782762653195192648657984308027005685450110296582027823432904074840632746535256576905710908439376128593645255587294326352191200349626196404552045857942919762638110697660454083983807776423757744218422703951150083665777584399262708710416161401476870825468829393847775859143149118118470171709984787187274600819905143008460751404870321433769781164844802694057687348103429987519459846400696092768682864525275556230072920205893106551736843907403589609530152945882883140288664924079813685394803260356257074401278079005274533597430270076395987761002289119917419601559353486448165221165334864464493137504717673608153573837029126219437432042727784829095385804216084764301390893276056512930649448387025524011774717169540411855951755892627380505182184741209359449182892132899830641656419244578968127539612595068716605269051115433008471091914008495915967532527486481115513386108222720445742490656856987781822005882377042501649015396517182047674649325823748337738270859829776505469003648173557319671815484286889197998621132766887368767993524530412236702383007849968050818021467355239232754475628830773912177133504224179609666981447069173562984525071361675338764633086114806393987880936075340498457223925054404136860931340515970185714625440138438324655584995071162631668811621319570821796265703386062294058931084556496829448104101384277478897746830957319291903971273596079666201745501027900267385591860624890292937094202240581790345414323397868802753052395696879712980362690103350225275837518529296543784852275052914841403424238553278180949485868087311545456534238754429776607251026977881254489126328624025814327312551736081260312308596205645316768529360397899424639982510734665635529290914632443272445514439005913768627775083817096249275081202202324318945488913986708308174565358550219552900725346014120981368484056825085964673647875791986304504507292943679713895888665235552691988214787532603716851032298506096921854482675094596432092713390944637565167248524102492070178979655986712757011368801541019595142607871797813052974077075163238994650664254294675650967044772433056980539578444159684164525148693563977341890765376648531026368522420638102808824697373569256146754638650407548458448087064021839371775362327538968357096070350795868823129055781729187501422431670672538175280479812862204946108037857262955663520827118470057274589196210772731539314560962256782845829175974647331858280869750417783084102511689224057478133981841172311371186642264327430651634666653020308639015511969557220614930426477710085381800431350444282674968043942072712979254368463962085564713604011266002924015885108262107908254569531948535819912662264734126045947076812098075395452432153759171123515320479950766196313534219022685986185831155861897993729258957384053992370803646128040834739952113984425336777687087557296502010210237399809392042347522691873532154346983885849715836316105400174590452570676670828988237297427550378348930422201434854124675256302553744532487922480156335225009722233735175579324187983314492195910814661473295712077585011359413291954614390033000452608495698523513622373146769756964926328548230289085036451604131403789976665586287055804555060553834503840169107051137719553284718869164438901695682046135369912976575462106662404117114481673291243140141043916597282161758022882062834404001783784220152058764062635628505314208266085163636892323733876651224723800242298480707344687406721955258015424967013184840061306206268323031814347108618533245843893788487315028520341624630644198819275635912137903543047479790491187341297494205596223962708402788302438611370981261196371657060312023628495133690865198134613113497923672540380117649073586928488639407824504541704995568920352309714799642194708484972076841810738107390377399458696708799084651606881944788186152850968887005101176726194769202057992938845808829519065168953046319760919752357519658468991123409419216331951387599828844202118309847150292135833491067197712275183511210902499098520469398774102102597903668898868237785765065342273314357894909195181022894356808280915715124013319945889898433317726497551619321302533057380329681121023509355211423733887491899491619532491329977517729893321505991614074727546880974872688125094613826782023412565067970317204006755233702174199773488647135146250586267354914022036662537432752521114680141005155102230925759050008325568762047218067328306209702884972362088663590016551395821664415877118300945522946216787927355197346400526066435364111372092725386900822310905494695941791487491463907191907440274674623726780605543728545670729085246787882679985804105216541384484739165129663857647701830170451051901136086369677280552902059038026588237396588207373010860755313242713946139926677065113807696145209253674128522368962730135882663888530800060785224200862712740287613942357902517674349745240722630700014045544530360569130413157525063356231221979855650410330230428512754665290049038849706583340395073823520560793496938526553381482460323280152596552816595438782940903212335609108396227425039340573440152480254660178734443415016971605912517351021633296164596295890890112328850478064703984864273093932900175859694877632101278834807187673117356695516882249567672473272571507870026698363395097060142637408228682412706860943195913713038801875001181792183387448370148185177632470391862236364604241462974561503570796174517713792357877675770685024670467405256011957910236059477275456829659577788001477580081424369977247411391863667330259436749233174103704565715693047577080973610594443336084792042093294794344599225196610630563320661064601309439175476096305554630072019272896316947986573171983872753503839557483355436216099621112274117603806821777418830123424928955542772246239840001852019815344412837952314662557762228550256669953278670521790794228616236466097384673462725473552383531026896256130795944695852581007803785585099944918870065897536931489634489029116642157648653510622955367206330452698895569493678810150410042245325462352284823508110281501579281663598437097692846041241029196557619028256791639032440624501226315672247671928782111327613747942865178458137902583076566717422937172968921425408739610762349682430465013000621307656218218201710430069754800203700451992331283839360113828433416683486121615008469779813480591079722284816314622592759931978654415520901385849835673308668548873504955849643282107219365043626952722336055516849504638976024293838906728045196922771773456597146767536778321942235560272034835630124236386722472863679377646365870593876716090284070831559359639008541678000905491893355399024040173053812722987909637073065577360815629821156305675488772530442230107353513181050269776825404770955776016744979980011751757106676322799276395428317729539606243039137647475227417935815000534851758024851021465342113631848315170350222621816623646325520676417842438642532678995061521528563096419020401546006747775190685914953671371749232193122526588218243065358499590251591407664231104947816413206536846844024570816381084785935172775339783598748544341306539112856637802904449712666108896040918190563066966319924928937892155820850816345437582675277390275357258703068640168792002223071878056317934451456528691990846598462010406167421661175703837473363854999176135355039832755364390715553527958233398930800613608777409526761794982289873844707176628746892721691911563206493573029696165497470156057572733202939447833962818310072494304069327485677109646705097139865220802041132677155697179629672075834388125479598335393379483808450602142608944369189409263423187559186616618821993117504466889907815544885080797018213087477401161534217010581113103327399032939677641578285426165408269958777557677022216104323793340410001739085938367819535614850688137183117718955914440027082136122184791588463812542394605224249713807632804060281170254901298223909433777105265635177550166869274191237553192391729896981226921887429309474560871636411132379256993449326189343886073380303994446361531630641697558122321092797487464003087701000271207989997088979738764337998695127462614511419150126503157266906467967300672373904403723044265899363412044360453497706863586712216538132796268424781820441843019872684631162464717153879264566116601951244264525063795980834645393629773903398289107883168010946853499979200036223853727984242665918192490420371127185693046627166037308612657099266851160047237509969892457281459897574864378765140810819287642608566888416625195763945963204323071596188495979357273008662345600856002599045276486577168801828086338351730550161399171627497814008711155969040223193081918815028826525649746588845340517445911958293852873791297366216503593216684594147504460943484652735282397770463195141817611174239038764135874016289944751935480682748111104983125669379055451015000816377480493651586408668971064150959700518820389737426729502305766438935778544104613335996015703264739070582692094506814820479410284177838306630544222348221369082460114638668162114333120141013845802439529086043551708319345805362574952622944445076522079889915242497426129311005292977480850713962198111253805780442282742572575369293830701937821111826193813014998829107682528231145966317172049624523943139100860369894698752077280572273233908592255743111090986199061392707225401993468643098873301087368067790431216989062691024125989932328210053505247034772492397779641694400742593330237812068568168962122390875045230779632995312722723057581235514220671695428804202631430961398126047483566703211841520748791340183685513959647555858637651563467890359548706935447358861129409154279641215917498865345837627786539476522259734507071685995233298871647580150735365749093692357177524021582412995184130306052268373334239918642506221910008673251817090756482409410257476762841120182101740334518333596638052459121767285400434762650226872921411609666943455802037336129333066708231823395260066273063268342543170614062619660262651533143640842912525193467730769227144382198430613873608339036931949813070399357189821892245851815452719238412333425638466647915989447810691123808776388469508517495190023033563721903053466368968851966759505286295551921648974881006762769780696662747352265574207220693495435730610389508813809479366204316381973757979096829314987684898284863163107534119539425427958364677974650554067834438697259099369500217437029343718019968705526172787154386313832563256275544647036046184569372222549649593851072451213915651793868201993436379054249295212405027039968329963696534084261182428811689795614314505931477152371534126722373661427163847799011622700476987069886098285194111472165112643542193669543741276535832405653232549716693206614005444916364603835590383815898339031030071882370968152309441686210056084833272623855797696214505985923054050580313098810679965637113089833740886102688701114794130986387631968397891583756460768783527404160252849035540195276837319321419243539106974111462380367563830116018149141736087052087748353365510915910944717866917726432761176448439980803939606994350382821631779133695666895059548956499350847346485037618451863363297503879795592967145441313144250216126551192242615874629212858132190347653827993132209556429110833009515093581259912799826912651221716895411942172189689032145614243396155930203336216504346411262034567046488191355917355533199521507845729680139436019863521740714276992372727205645983291347855440645995074619228877033489708917855900794042969805907674557625298896862251013575391137536849756382386943596933200175112336708488624810159137018568317368945812895715335813143243037465565453451015783103782090402746570186755890159473043954929744931994124524499186704236838390057992981224474437353770247153829580665162385588427648966966765480348993414785944599025532434370725696931117452687703927281752029188755958211819450652110139064980600290128140608085045005792185239371607677681412450022061554916760203151672850224652671249330513644709963883411473924012474093807943944202695787980899645867370760078112416397907614474188535627739963644925502023720426620225467268389989833448198785411052122845131107692750727622337492922497216514283656243451998961014183762025227478032377847771132624594016281592769518828067660701778251338450720415005788937678363573066425977366604679300608900889445226180406283971160124521109822353600466073703017449370374630751548859342596863260695080826487715474430541358112484385265356818608965787933836877838534561250307465883753260772678071277178675062379929839277797958966073028345087549898032542678762333879965706002236218591910602279202363752242976470013328101269049436377630914952123357728626223776821298283375566997311714055862684144844429638130350848634055085951984374732462940758822264561286346895664257216636948706574290130460879647647260398699703314474268153907459361935836213600872980505682456818128878014303110256994689603895446145739834644576233403626373018921129942280663990208579794197336098020198266582734788271575721650779997206211727210036623910446308468459983309905677950204694369800241963529042003908928675247823333030532521069484117095564279847344234819180044817674639718442725367890525840741083783731589548397579785778953345222886815530101218531989068470241121487202234856544039033176049795424514478193393993584325331476791724704040694179081359956282120459965044732473208031302716699237266526698459280576824353682890276442144875865855234584748647209478802079209379358193259746757544989540025872349833613487732888181977557638039665449017415608157534470449587535318366440436649137216342150996903040892031663175127354462433101345791787499214985209731887979133119045832948666365989551916927164331333722002955448468951348018979291853292874324812565598335407331606384348811255330206256307506481851741060954236453652542276306024820047535587905574084036017699887355661611740694437879395667535411159400564118372172735099573038152890550886318270421751948033715154926121785201083224308105952707434165164462349206507766461146506268423600723378818496230635167288238518911685240868882716112229099567432620706227257515704783329451319688323210446638485685220243046702336651807797556036639393281793374207244407884931431701100743710188614909127494066255337219041954801072428926345083225759596401979310189959002812013695776355368574741339315870340648143932095685302936421828731496120680900018278865692527182414971539315039158635667998539882982459405257700102400056829037676847290194730253322727966313000482297859246985961642458801271878819023555806321973805927367318311973695191862038927997037159891639006510471176597073630439130215966401522689092124685527273024584447666794787806259032426868050342030179366518248007489899304356111868138144304666290646217859800634753631775567442596486726761159548245529752951793804972980373662117179768567388953822308238176779394784583478173357363133164069410173291732020997097218603662152086193043940164634167776490260267627558158385482239035897546725215848695373987170819607880193990021499362763320478432973270058826611555389048849130343683915844164023495156028881177847656455753985269698852453613264928534545657344583503003251707699069790991717906001718607452347721717831742446515617487986298636058250775317230318219169180149666494480897377500682891854213395940946439762718885570144655513288238853232497232551533519548799836843519315113735612563900727984176860693323256995922423057790217469458971866869890781130584775602379541979921872386120231612767912580884605598983920784201431022155502552887436245758641536482550009988648899706097052383571491618470659912539545584140604535677502235672559610256802246385789472058417026504110998045617040941483073709880597907386175691190212211524720775733279919261655220899184228260237143903778380009191075855030855191541699915550711618241425679276096001382693042270137714738359352123262708879463710087965534032520844615829216247422086507695014236476368391379573284964786814248798294762965584485655804381149418968409599386779472347713625015386876395843616042068598554881558724027185972467662055667559874839441068235236704765701395118959865758357636857817067340628287930076183071438623704701601634865021079364875944934617143799011328466973254124842703000839308132223705358831742141706971881681619494801685053075446677239691518229691883948973654667108092811774227791013434262119990467516004688937141453183085628870907598531181148391535533653599654971918306377802514452475130754362410964765883456181781957787962539970331197348070696957499546583697276135043281333859092730080256252042177816409423018103231116501607735284716751213096087092318399472588207972438816160153823365041960343316121616295899426058826046169318297796343631843818313823520770142165518227635195761215418355272096476572205580292156614579755385766606045053066325867510213344776542448892554119490084273622317351476724080888549047058730472017035725870499844691357166580289146188105039805684776676769192037981253635380464181999762462411921726607786389466340286265719875661864312573718449506200260802142582984153728372994987908343802459231574491082994402441557183279101443922472211408646965133135895780191654079265370680037616668039551866746879762839841799060521960350091597406920666852814900536292340178741605572656584360467393855737735099797948882196995220848109485526982493741384477239037975518905807551530133128237554439904952907296743979216738335599557250602139417658776733029087635803623676968675590983351700699113527354994481244929425575936690828379435989895333897160691022153533410930251118112119073613112028939724493176912921181836775276162187947596391128291648538494828192956011823121492252821275074295082788198799111622524477519251628497579614096754399373591975726762325886797746461652428274858870686702806084258228172152973695333702101139896152460950812471863595981392201240281838161569451064930162344932417502727805481308360130974271229892966161336071220039101865200113598058762396512957688810443752786989156161424955893011948361383554944143743528957741036548819092028855640014792381577794190904301025778775233120767830770472014776742844161447115052464268292852727322051552930123586275854560068790318582965234862213387871793126356053185314675896877127747002055614500489681464986056047719043555866024113675332121393794408112427413074328816805335710274420433673753154007845989065902436407409590910654050527845537372799830858378932571079368488643950443468816309346393429222142372489173995328288528401769514311204200515895628478654964603479603213878333304358013346801857134503561946038327056767646109794214886210063655498348855265382877398840623055364094673591340189837458957268684672963298896203249136317869950363326906953536441318789572287869700241038289677982559770384161125226964987510370550306890152649030930792330110865189516786410906780356689367104162899061717600185780029402816089649397603107581703031811075827139077271011243354022852492310659551599996338203020712106596752031818317132526683641399154764676168314248120741521245398161381359397692354458441606995375414552750992312673267059522170893273431981471241472791678070464744055527631003682695641236764762816516732870789403600921607493999507838381759077943288864746968125460850696599598769287285033798446432297154080803159582016169223631321672921293319072727188518673270738127612321209831787568551781498871729661588088289654161499117366418183658082273307697647016337287022040292183394842727579147670527763423779317707022675958749770214329139687043014427814740853994252621362694681807821634142063773621310744192106886399692122409428949572372072523701146410499659182235809871345030194235618154819585932105114323840442475947263684295736729781704889796388097379922149139622802375121157558066135959298192518930485840492897638865825027893826488213073742555273653812524066966555878131125019922881796099449779372175432845348375725279860148542783416400463509500750328017976647666176325392282615506339339497223836445607290620704473373156138600180056738430925614808395929934592219991579671163578265069736295846688999568634099685906007301116530941998873282546024338967723590723916284479172102862672598544766915598601982805770522594950357540924052935773512803885729691503203866575103596923825737040395905194464620197159636933098678682535918467372514010506728828315522098109981088534415683309960183786955334189429364465355180461137427814185122633323440339833735709594093734233966042822171729848482858389399736401616684233516438388154604225424143064961013278318332172651956146678231408446776680561410641865891761300235253705723757001114394338935979669100604216362616894495400321201067559247460308928401631054314685506285452886801209102541506665472136907643929964020527669379975907832877481563145783280265497956658412544405541573464166194850777678318130235230481101277452683732161119473613059542563571577591586186811615433680014553802767329644354564353142856528387580137698240009736686981003834901309063570904759313178587675681088548569404818626007424319638679461275385317136787341030411296569955988207315661397655146234651683006572101229234502405568956762490844675067847286442988212536238264847258992391599943295540705917957274484199941334011029521501070800404381897686225863293994161122821481425251397203012586741756561612883775591597131395662380369276425810965507168787651261496228125611292765502797698369384946913305556071944026996082310882297009376260155871511414272939630712656662497064645286082629661083354535500319260746121473004473409686658522114666009124567144520797764089178339877835018079830297810810787314502918774208295782805287043188143144821614554723543771186218072932832995511199227082694031083881802646724561270335037252170023082802362719923963803275237508713661884680137185818510236173801562494713336166110254583279962052619694614278336438075684614435452366380901879896824984854692950996307836300556615864088253603376397840159333254936965197512690105972528553100392400097737578911041439564281976832047692341382592103919739777699943647659804699378033639419278503064990428175580147820694034331880266817729786853368520412963622555730958153622941916566856655991667662801316015934630290733731265881806659386579753718861658187245680008257176993292361276511633640891630684726111058737172583921131563850542544051628947426397960681786598471563758213123249504027394105578410114852945449979092409177801499783559801416685525053722462884372898232931359142203070965851187706878528658239630818293590946056588228655815271994912917616083556336182476541190908252738585677186623610802462322704698714682003176530361322721798742074293817654553947772150025079070860730703835890097234530286534560773223721041927139592890047751103508924179544043874431931718497816748236656612719083250447944835589956208975469742108755715057180069107692404720790225269833829870515903059178548911363607273243801725085484497107528455757453937789737125925372310339456600477228921437499940175841509039787456772028375220272540928493399592768449319118241980611665365308411748397676436093974193088291224752522253996750140269581137754713857320601499855739562587889198334501191007907019099306827709580083968494048043174115916775976325865522472072403981399557345958353124910208937045569460195783143666106723055940014024469060019261963007536981545039088479644306717560108569699683475619028177422499639645027310521027982709589706353645168386410341605454659774204678092462815324715481147690997565491730268580985156558471968244258068642460325939101371399428045911910792426713481238338990571078622428921376178542844102809129382265042288951938841222269797878188353366909806497286131985239613491087842861044863457831763254382660404602679496386690754135153165919210109763232432933663978980783482607536236969444077961915389513937931823362640418824818210737823252900297056447356801608497014128620178562417338990734268861311693323829388914153599915880420521087929905308211345749225754988874084573158732508992297879348579947113523139797698277412979050590893314285218725422119775928796077174793520463683318932511443952230172077260884053973523395345640404191576712142232596934905751818610870575203706306901099414603680674255124732984302484739578559257757482421590722919551202751818627881329385482269128413199330880065629673332738658784768292303329553183581505878762589741594108148472280289022647799488863313027397817417268508188590915881744206722886553558589692964074176158395161767552292772541526465356956738239232063025313547311453606968334254501694720297313215499395696784632143561962435889226851556722376460422639609051844165325147366119481077149927269080432993144577496060922521531638268640420531077565372695483350843252388631115214462100495742476588896248154950877646792441021537154996110994043214814889026339325905339322582973051978687883812537345704472552546150308607523913063347335252194883583259077381387356797970481926699644031410223869079905244825605315899492015627868792704575152631316688473811246828386414126617696419790287617323737736505138281507588905437676185801121064761452399088430922651497587403070577520586635027643376810063682530172813073445849330475116871576617886060287495942154640556958860413209692583803151941863559008847700615210959983929648219478786121540762614606092784069816084082893612853069663310818388589523510561564414647491268694716337718318903600612105998942362612950087556364155321664144918364693916746641132039280869568537931719089098833023219150975191699822958849215024885663100748376353073030778243153118419937074995248694711701467068318099034692992716566061380545496823698715562357815451328154580848572189544669755644581161218640507482394570330928342703474012111561248860676984287223084119628469048533290980742406515565730428591806657219143991950466426052930909451090016312211284950458480736675521597315384147729255217988523723793968515504509441300210647098059412637617077852829715732795813895190437873570558670603873059379226500283647633827299793958590565196148076173778515205230019587970773966961671925956606361516897312428736540299146514161430366635894384964561905933824698334321293323391879155778316051781847173087208712545479443530612917316169882164140692767328804082207346209151434225097357217325444122459688229801942248156933506504261079086407229312794977830552587054152376070835041710554549124561608827486815943555239614783929686957667208561325419557895018969201549560728634067698895159985814366503122926642388365519380011270683111652650427731563750094416216397165013257768720534530043915739979436979513877657667121423031447343420988477605931769598510872552876742054889245525727128575027385511283926879418814486986787912326420195962013805886732761074598465239994352832206186962688674455539718380364999351856909333119042629435527327866474636089922118975058959442000152811935460142230770387604722976352856777259383227830902399425112345452024965234845418571072666205301168714553243914970351789005870519476092430222202346352587597430531651334403967843608992285221803071291207152124422078907893419746048326778352419592783046871466802373672533015531098929319665806942207191593565646103734857562728008476841738924485707388000213808962754387657767784993434404129328700944122675096638061214573069658273461836794146789794195919631108588725876896080627439285816477865067148125828142350517465187190809995859325004931312772445234754067836455853540556425193091526833833096348661483170686248847790114717883889572663079649536705145831994029845257362044366234402835486417493499854957342344099327703585726020679309411391856556480347237095380612468860078221217460843978666064524152604107277469153049840443193597138372557277980741114207498299696019569629583976604432386711333657497595591740185422210171028676963756000156767991224406412169671177200509783806777643499728253763894248533759292792558406644833630341657416224450346249952412367676787040342494142172185189853943312957771883383434558112853275388881668546110874225786319122848093524141590058020278377985523152236321499042650921780077354151264043869899379013288420346858644437318149355026494889977879738003614909830919379212905189285857887871518466950595564147877827328409084437056303278704533879709505101618510262102775199561787167746359094903452052359622416928379116988547172120203567581627181436451883289386275766033170498301694084937291402714978047439930402378715465952828522702910934377532255118232161895623852744240670369506018032444585704227182619837556525474607881573211188096678704656746742484591427891683182385424635110974490323923859017278921296525382266773470581006606116603265878536881987778225148478358643642024371906886781137950912979279826661239537083721387139030927398112085831587080540714697623053548357326383117233508062436916479794134815028099124162455676019937950881591998251321355314382710397349717097695931230496584958164370355983618886154060259273325174079268095468722863021133643512894083270103142971010746916734467021794111694439080765373790586545724469799420126673405156796763862275008937449044441246326074860942619785078587134181603377678724184432890397904950366665744244516177963993450821303427452279710847081869352943974936473131138698514826373640864153816137715457505561394815264719129468317638740026802868688892863562353047773856475306677178399754853798052437223706416286520323336586872926200117936453875651800523058664634989998960426664033181740976225508692249977922591288820046441693190606523287850272764916213606510832149751268170120961537995793299895510506891696457604175521933305103933291232434466495238816299620220989014089429596816304223140817956512840178431144444440013491515056322831927692376097434013772998877615796599945528148297479518250475007059316853771121844105842878465134050562962377890782478017904166596132457834701734595380662328073665124134992815045100524284924066751607918132915828377577529386608351180445983638996912277664039906080973002468176442725607846326237748694927165254847589333379378582055619941805369055495807798093475674911605802429541071093778737561259431649574920933292874985637218995965524427267213768925447641718446008965483196551179637936631935219687610058293021098815184958029354647860320656541827223674566379707905831426525544519747566956285729542334761817107252020397031608297664812874698403373049895808523063592350884273072384259683668191025858821913539608300385022266451643160625338905160401764131713346244135412507181826478385431522200356218868277934372219576119019734095448913250073489792364643145722244132151465603813572058168620521872819343176741545412528714906940964586680228107997808064995035815132549100341175973948440937416255741060184887166787518828228626208447401830141909984171415287339006549605530827478919231610107676506111472632795011095194436902798858309227649150842688456025328688452515054090343949216542402904467676594814641515872387105619577863986643322480414004178947792258529978109765051916380882932511905422924585805869730736371153484611695561071206994199154870013555729097137110161649428824179692345103492862081204919411902394092765102188261316529122979234894109852957069876852509772244098510963120287345871941012144255200140067936596074379034838270237617877087778859056900880120390621230892837189261275892788644032570209095258186651795185739592049363524177008258330904125638582698226480678407903498513843952445933438159229049232318408265841933120867968833797920631126196875772469197885489521338771717138294851079077964012949662646327501849467068858622488920620005201103411532577227903322115612893659391809049181654807489676698662605796218056457740326898433301322206247725256589679503575104846438947570662817331301137417002757246755742412369805787541118359037406032370377388080258549756462320942403320880228628656806487463644479934695428429932972251646466000023788417188379881437771890289305069465065879641735956939542875408753432290343531245674476963944113362993937960209934571851221617630779512010161025230956555927586839014907073079161709609775250445514885793744050912152887624766582610869843717809518583930674037659020358006788470063454395209901839883786286549706379331302908257816657317677037183143223138069784865590165878276161465300471758651953506331145591755247224513138917174534978009824449360115036668471662882641520618259026928651052823812152425671652998872283699679227808272887290497224414344406330736209721500055355968540095562673286212714003100565325232119829142810085138760748474780771116472940467889431438413578957892354606701760803490060801573822460134841642054741462624008381696667391061754487655404128484511657199091487679712284915008315817999124692853711665575879909647605671354392613240100880167490029788830418663700550924268589504490578214544142744059667241551508258929923437311132059942891365323549123796665156105023957705862772746108742320973722847624585027979781380158195360886856684126684913509562605863443412928964079000940337788547098094631652438644408093126116025777969120606200712492661593973002178438726400448461296727866892937558803004070117229074928959674033862202552007772910573735516258212551936744857657773223865964718743571603057020346279499900770160875752867358367758757209479884634318423476005966618051086780963507526854686887523991927568916640124604316256615762660643593652404316898141435068968298198276092977771751524536370862470092195088705636266531971252025650616567339659453248754268603345833382370911945624309479620811803551254163117955698079613184600733118825621648187252154829471303529128571688004901655932669697642851663445144540051741335666600696262494661875986655501303490935865334028571983649429892339959320377245307990657493997935751341492542731627079046566850403136400436751530725278354225157904927766979849056850667120921034443652806283442094741651262122632352461841183905861813312990187751628325911034478434392005383065459349148330839724958548134525616025184481130570401476077455139902025693339735909915271354553877474233373311120162434355206604614102648958816535614891199192104185754797490787747200502025593727128750121690022653698090402318524697764387813265067752053846239570039385604502188634325190710851457851717346547610449733029503339992273002246197257422143932540715946299222630441786779153664541758608328415052923445872981794793846855373354257539096042284794356965300334824015190148868917575187191009519497630492967205835612610827442244080211696384473719790489615030502897179978171611422456172207727015913972060498659395805334346868672243774732517026968400033949003765187175860002152985146316991608499937752073190754681665676728166220772158061238592386041397513276021203007437346449784091463452365585765596747869435972234627502167559076019416306388983456901656729251442454175196490374852890922998392530353196186829010691761377679938939799339416754120414409750107133216806696873659177951897433280965901137709280728182475440167727130565066582154191424387753509271031794075686417992942488779343382592654728811322343415622801162880846127464672157945152584523174610176190829673023372907394460077563609363528358682574828115677664102577367779220180486847827077851686123168264371987558104194096268025502112562619525527945418254182515848284741752713571002774527194125930174836661970775809679944425842784067992683301983955893361229661772974141927340200749709115138994440953723948117768685165743008352914674185438975190861195642662816808418092515626133691836019873077192854625565218207941453587128453075638482598511643516954080865060999148648085476558289062034714987028409119063522926834504194080247400236013522054520059911706896186328349444118361189018511072806579624087542518789319476376532658918681071437352852518627786154658854054932309571993148298258572218322089910553142587825361850812772840703031706436757051420074863907239597789631985998052085816610297204821513940291748990554698384229279416462036347666712237594736565646008894595588771418394770185331388007696336961355766509702517626094843155120048465007753812953732599509821530754064998475657710881950259838272999303063475358400193638188167202967385854014018872671534228885442044852980233673624688162833223396876172362813004632116649943370989028379748509894602877950465079807519740207281697434403308682349828083629518729544582101049293429017277110187301507783574930407994888372973875262822746901649547118953708516370066622791567005562631828473859395942508572234243176269022769704786409816086390276346442427579067688927838485722065759790360891981120084924280084548882846613655095812655468816452890242653796446909775238236555881367165389987727326022379329242356660282699999155964692777166005786852731343904915315203279843873512166396472695440985559999182323584054540401420694326624046812605654142897577884651390081061143671322842160272720380656375317823621514603463714978882582374123961406756335146287188505288170691991216237835611450138538559317783766359353236266242827600121551984278851256150195972035409088135940379443991466797016362433920232145192683008304889010764435920613728498504395410635030481320046385368764373975525429861253618007975606828026099417171785334598400223913344479830224828323524842922836531236232967969931321476010902331550294388070469197020782798995585419286755070682201474202997172856117956020865139527876160214899780926715574700981146899043731689302851722224571138570996938984485573990296414833284534523507035389028047508791418624201439510095407212356857490517851931534902589673799187040487596612333772973199242973313123315789371282965148474191573760379973483870302251399659256565084080037207088729413125557574204993007249069449597189229827881326197468326191231525481732194431024830799603479742971341212454452809979096694565590039018896338537048672887757128640227044011955217807606271180076983607458484184207591551472024313304108903374106742293207136498700326521700514397679112986912728235134591836634411278808321447916024394285238536659962240105308910546817708488945332665965184552646075928691326653118171196084435079342534673182786172318034085153488076718927243166601771758614256976586366479700925582308404709111942127231016989676665222094733063454552656798043875212506654190564047123322059896373270127272742257097624367266026255456755442255331271210528561382694259732962059565614384122358135906452717650901411054734994005011443154879577098964015326861197894234696033618587983663785586215163793408447504598692000773581730678916740263396163057648075149375128684616481235179271153051592298711680924421572913844236836111654985591555955686511758557499476429498755189596766193149037292467533403873217653801331847870154984180761246999781154307978497296167595830139851216851709596107915709410860195248496415291254160067106001446844536988040744672473043956547757746116822228678289985021149197299497619628243752656396227791590069142749118976255294332311359522775459402393269098589937788121785011797699026033319609962591814286516493177645139348901877981593262905820801309575043126025048722992917117988031609902748945056523986109867998118353396989985062460546875937577087936795028694322522948352980809994908680389669298706097802299582585951386969575447540382447514974138824493392288727698188451896805994705011409263789532626462975571799373015088292709904826208821286235601448606736874957179661090574563466853517674874374372643377090765506670531028858758739030487551924060203588201956639054287575922831858305975557633261314421722101546470185976414942536824122401387181927498886129844195997773413647865861368537541654187267866239066558814586468065073921280645250331574506276393148180371281709937115621072525832203803323270498240547803816891312186303634851038711422266377574100092418642854795234651275269324024977599130572471569767381573785632830219576606883618480196024365507052404419771337926342270036593172958755211708080420887284394186463810535555119211816314357485591795289856995153875644387576547271742811283339072009509469253006226241006737774799625786566615150665381393532441468405480869068299647682926690018734681788987277946210192177191645991650802018753906104395927453811277203237652248883172583271322106440268276370136579823599136144122955789356535579957607486117395501494193329395105022305422853250997792695686176170927730139789131047800539874338279514504428476879614214304375353403174514342052201974686921329515736810043410425128059481892267907261541125334092522572343244532552937614434085636988274080224965865220202113951633571494055393516673171485727713416681866012318398619600559538720831367061816104527336884876297484742516296274708681182296827658580378895984950423959946015116506723198878702268095287983072420460005263941704300528038538259742043660492178590060714820003479853674032210338595143659404066789710857977684520411236041838271775301139159664026090185613706555002639956227835560185839907344872927955424093599801817185819248585530554013294831191704151020398997124794618023371947384160948935613004641468117119925046540464754449710679998363569194851996060172163452280587248347787919012578593749329063862519518480772150671052401947055166748584981591818855463112419536730062877386323250860667637841142145209606035658431681130442764540452263905147636873641983315769178367591602146171307251479738191740323041372924165794053709343535859362130519004181891776413431828028051929484949093416013469419235219501590445029620826046553199481068570856211811526003823468546861736721187505901750727410717601305267711289608597536695333372114342453936149975246138779519888327791267723640245767844562815397000532905750109330092691549992586293380252662144773123345501746133872015075143731072267564605004141263826757960129101405252691840349737367535512611616395196886644504723315181022874388270657926911981910986015224074058390064918582766868133329480081063563006913970947042138100073421126452695487863554490262138586492310367537830219975502065376665957261164832831326151266402139906808756779365792179048297434157834965086398600038932960645444057737739305492578732019606061280729916559535936914131931361226588250960472301790159265992873373841383577007944102311275368264322596115242062403782341482737616588892467644463384522282718935387897467812562202105166149107882221603506834536338680540534734144257115026827513984986456813332846912721440071920376900310454189928529958187706217856812681529990771756175029915249627298339982140073615022273684515182129126027510531740196963864668062371694929388989946608224438693554925165029364164684843917928549524004278327669321245077406035324090795788044204247285592217734326220745939506872287149820509853112124979521858093442082616581137460020061804872320438258763052058549678215944283564796582418842272984319298604364747875320948723330443845037080361300089256467957092525870998982396302775064749445947846986036520502690446410530333412351751493803800700970020908794935286963505116973502376255544986949627447054077528778582908944195758864645971450357572027583221465946658519667564500081821893943647623328054279724582255599930966781288335959943528944588674364056941395014773440431736804590627349628036909512785882873104680093228000333631709231038662338508305896303652920848050320317183144375625270422031000693907843816053998829849840549562851664131649899059257410492535183200907410142296722673981878550800321833688286825301599296881398864491478263331824763615746830165691060240877582725105362837341508523953853214560996246360047700073361512482123060350651775050099373872143072145052341980666889753164633786916668265739168034729011552002621444728104222867300297258478020318114953017329840839010747843877232369647891427866429201774574825299875300723021019139730939841110542163571047835364224156973521806049913320739879133940463491728738714083876273329102782318780942591252161976144471812529634303249079000084622636062676835001481788197985607399933617692176319907384258819671366844506209757572158798670709811885535449941838804890586788802004186525472891961668052289548806339439798932931074698355978952251019415399902407357697772417501087540302976414797504946963326351001534803507020336156298262447656712914494953898416164921207713608102808653613558380383870063567751068366619971184565607444902424848258088185242889734328865994898102462942817058529473974828644148175938438874790460003251022593769228851175548283990824276440437812700452223669408631500395484938322213469273169679112918180470477248467641374666632898981341574442529581525536719063253984229065208984003522239276881057214443258603952776326264992846899488702182518866425535305609994701319106666002473124628146951600631092534908951963094925880761999765211290966518047713900364842146041777401205113679020802820626224684987262261554723061738199955189999653596144384779252374971101510230755251996351283778135034305677980631788699302782932104069137173705467048976795408047663267775605744673488902801010214369684667843343075423185155545459732425488448387247305918768800918449165118444694521000842539778708720272115913779402820149226508738685708647980463199251159284360748593622083762979215903895272498624196122152856953199724716872766181708721014230968084890225844653658703255504995999343018212800878449943066573017832716327249555035076670510755027778232553373381371377481787465374709959453593268849903834995829019959297953303079025308698425743096412247410800925183726690551793176150075731650581595131174888800886544993456972752250742562739398206851115842644583331589961752326074657282744972694168544845377950912985031834002677269032868153022378979786531665941092343719564627013649259292670590426571765056491667750742994123105868984242202359048479027485977720646220691649841946214747132415311734177243283615461329596674815005427079779459345192291293324860803247905152429467510016903194009619156738215609251065621105747481566405346440103410218325420402797373095682174163094511168862795445056473730902530728273380769070252078309060358403255388407132725619953915544769099240000335088090164175593729198030005480627520566556325854316494012160878403169434277210744366802647008609932346155414429647698055864136827043592701350923767970079289272670265699190193931225953763650464244962373206446247852427813299884679374608403167632185791710555701117409050270983535838393422412721458884968297688875530872348101485494399243209367567677443296431175971363837983407170604703829059749274617311287180617501718038625880927206231210718886935084287052848996524863898241865265414651124207986163049484942714785289110158638400389307180853667100165419505530845978987952251260914960923143676937068211757595820154140081557635177566178700679447935789506825034255515662924639093606053468044787408344392129144684571432546415066069996366730860689915168256101976287450484562107695686449625414993418978432017236872660893566590598089519459859325446553929740907587862923363794599707708983085977122808563624569962443965312492039394645812679156380820841386225673241125811725583431607292487224107819347297768923004068923024357243137919489285054171539158635948970343278061435793106554393221883326865881100533414743179962622741968919435289877472309860355128512753640609726654344611149255315448643499922508352544175591657158411351163175549282030148531232379168213561881096014354374145891017537777164396510313286195125109659620438048570703869568201472629970389566583423423484175478126665340561566743359244900902476938640251558475955207013044360293633632996862790383916473985058497315685534038874889583121889845009775643047929855760271317368837660054833001680392824879812581162302215242964311127001263566518965733084458647976038842983781952646424230597694126621686107919183619461527977557154372463722397769451963810024962363099057666139193694352700607262045480692447934548196901555954993498651371014625608617740221752151451893963167123182342547415255412271174741034505639152303708764328320444556964035137583747278199571042048776403757428914718704849765192072576930980394062227469285300197066059160638095116357942882609924871212919452655541115101805241002579091333519346346370667725264860507927666432424358546935935751898684108724125965097891407480212111067896923077850532068374211613433992669645017861209280746010796067273318068772934696655454724129011210110099419672475738636245373523079950003682206823240180472266542825006710179271164753419815902198362981277096412545504856737290539403388459688820001050904094155975798503605201293267716390392183868264609301631838461871700278255691681782843985922337221867030358404919393870957193953212338207185226851690288443264978797129708276510090606365476158456426614836334636087573060119855592479975770931130865784690219960000927471013749491010499686955823972494928978671657380710389471642307379873509555882472800964513909609896351654905344244428404671813643382277888975632698302749491778188497565615118100038763142509072730836170403399897642258777597531499561618279163346619283506110840035431596606232295434855803750929985372396158104656062192168002971278188946537975281932310847715055379463043678540455916339613802900932624584901673143518088495756884191805724617444991750230557219168521870996637664230532511045298607424304023908797500563770792055383000692638190282217715794300858407659065830870563251026887662425737392770949063528761521164433053778165591143547039179005656621644271794945076853453709350335749510910815911666858481760241741121149167445722565438880805658701347711687616189780520066544383615400495531407638927666686953855766544453707104466691744206071257517255845065046393664955902867680398220725096433406994271140208763309320257177385867016312002965830048385990462167161889084758656782491919762171177872516466823993928444729585156196090816921139003812245240814014569272168181789950861380923137516633243207561176256572479194723694786897191191405566722832753466697593975946721402234024692315829144069439588977090147003049267924102812282863952913999387295431377671105630335613398949704244271347752332273562722671575095145203734062320365370051711804421149410260125766704738136562998948945004708742231304745259267866454822125206059031202579165349630376193920931538725742290738718146130209313619123682497864349596747966804494224958933408206380134596036097597410295428323753825094644897100431166876841997119702525643900379040582710958902205649644471336014231467240666252680512312539295627309941383197883946544091411372672943609994545926978093624971822054704301774575931319910034634419138297918975986376996569928301689535880050892814027062190473172410124702427768107045030990026433299503239432350178019792662236568998079126813949904730194520623493424481777882494400988360844867337058624176185257612074852759294805766545584015059977243173937206465304425668255723491452914210845964903074344571650848440694061555921876616526637621028994617814445182746298038544821613908347103651235659008911940159604852576754123069881547270771457328795891997970516683730915925160881687147838241507667097039622383916331124251969513485956201452740867978594993658304943534008082597461139333193047911556180360645802725671118426031726055319080174961879563317859331680259938228799769600356715802632910390569100828090792066089444020399966828734354219173662979928907890468046488566410647550226051166250943542843871829152071228591302830581281782976090411826079911720965147044082817316026540516153352793103798745190751451491237092677227292574474836729309281171868464068224734387487313422477316245133454173713594567744660610707877731946494370154283725656869425648056277275611683417445219916915465790139928187431761181278973846093992053926905976688079846078235550824552437562642062243881667150942041386293622111502067654919993310801433970600773119649603870072605102237195661205919970701978961123155748243759822125108968529900055372854416631613710019079436973930916934517664760237574874059038670760080654315501155695059385521319661605344732738625462982464701993244850514995569208141984521392311235744584648301741334639685748335440978421296784997297891237810915056583092922242377012510605858402259322817492241189229129845703527744283720371543576622768169836208103139718336543365013007228081774246881321640278062403215291734650167124571572891449482942744674291033253079353041078880408533506854025832571674971503742898021655650841477964908445144030653221477145223651704093245124274627245383875335770046714018688646908384122533310238213298381332895930468921883610983273630273321580667772180605074494554623604077241031554607846409343839733725372578622884905302952481340067575706697459911086538791955611910964486353709611992030924094212879937925789392288289233480906127869601407050277332381088397059158635036283595269827356088585880589347047299152924881804992417612415699870426853494258202621832610383940074588303719937994268412180209436690398431396863168158435644809151227402451983904648892005285045365660745549628030389880940609958159963703700203190243199371209060839247763925525020838799925799545254706077083155555078785168269546161396576930847269056498840559414158694869376240447050619120348207553056032751510969366950870533512581116773144046070239240756297065696116066859218448516447386112866575040130415461545166529866269237508549492158256406919385175427581275329285226311160445697103313734965344816091184263902582016368579453857499429223009298399634747728752334265789485893846825965107993652498318301872820843672668913881482715629096385157969081196616057096513097936703426210470478293311342584680050040436676306249880227377522965074197964840829707946694225089459641683426368956964890462425007972296345515054586279243175354538252192142929018031070936487225615949024616085781888868977448304542580338593027609615525541735912900857895122175592228353031932684988911368254899507683484423255986614036692959703467651282673295221290144301554923920825811745192321164645443974022913465842503714506336742536636110110449780563185541573989448290695108319285457857091974223972430545521784559503240242670318325592243339489880086564891408779672274439494205797355835373865578040527006192233219615078018787830867380280236528573811507936915152450015894776521946091297496972985120339863717781724834833689873315250965534648431767762611643053981015081531336783411474971026204121296671858651157767680080241542733422013038817053812936183306342811322723453929786618984036179672454502211972187440700709221974241423941740472112676842167322099306616766757893156589031632218789334271874977601237722751922167306731128520103273656682178194185756632215939673133363923608276615631019476100942636727907334733144370827467240476781680825858935089467720011226592968764954855190046415020711060477543259205175707071271874521946964600867049732578255660365377256752664242222724916828714562100820418515251391843259487205489527858053888244784883495153675814242380198631946598220521160150751729574363073519641823922013236950358313544406605265366330187977602403183053142457106645552311314030225322361835772678868190764735664841666389649792316021308740022780793344722378613956838579188191893160409445004341781290055779349348773396575031066966388103239573506429036128767176613825057047475128249505209412140761370128080863745812154344208541740986080400745529619723780211495591398019464471703057106553987065084028525913998312852691286046680346191538606021252641603863139695703968073499410993723171590721188408685484391149313379654419605453340907959358513391090232344389845328673258312060028459482248925570657130197167730031547101433716790415553420915383601981611650209282401659140770800947890253746873061566848776102198694725510777985137044773157383782813697924535066645713979575618187311219564343917140594729348181246690655205926451491463419308852285902257834583136137795501678488726591203826526094923544471035876979742469320336569612107051080791309687044969229116698623784546816955825152616605583110574440344921039870362703721822388225909070715768022905652118281480243328349241392400562202521566567269004278528376430681785388890087244741888765231014866907877704072056688281840377630086976445857833974867809804699619908131026116743154606306952321470987265607536164840297983466553132923953963203544044026964595051310482192214894980636076152843876064829138701881266346868390035644705066996084819818505271082156399756153268796315426062655627550500597326272844584445266738867444286820425367449270775109561065665684564048499421061272085952254266222277664531345874739645722972726234231381898913966266904569434275932267795991400919186146297495665504255121675264718330252948498798217887921482076785996218020145783901303865695912232529228075699125542236203684031869033943372590929743835337694228494546331987406552958047554658200646428485376151251933427405089079917400523822114167289178273097392350614143052240323593325461980138989521226936102040715676920714889148559498829209257175857948253743126550120737030856071540730146650651370512092892803358344932113568505269781432821900381595863017812921626064995687875924608310195763996064819339809783953862111618777105714682381706028956107909357676149468567554793291319474547415253202801290464950178038005478970209414548263969565038461096584117308993405880869050459779316130040617865352799322163487168369022571009242344713368691023474203957524752688420647023855426351171888685048473989528614368018847782008089103511074562118744596659365797178863624133999089547924520821897544132942976103773069280397980399902670722469498627267174539450361978683672513936720828095666073628581323349209300658840832051666299541184295707780313823643141588468301843652047226994796932887509772726192760174091244428441111494089161726287905873465492179382568984921516690864061220125533104829519504949442674915502303662027561761607239029015181347380173792380338445503817957022090683569091420047471128937250546493135957604050299413232513490817351342065829683738201046396884046187013139179309524130885835295010691271555398207772393867321040794041844775418898604797620550504298282071069318693759005522586405120426412717997232289950958239379461450271571867352150622000285968963311580503229032146744803011866792040527541605651196876809794788461788599076851161150616306844367105550940704721242844928435759182284372452716244977928015670741779354083148973815100505395141406665349935925062689456129800448850300717583218236049456254564458446691507947312447486390650638282831665190319244030715146666041771024234350749719616495614109451124518795698223471702135539857867577412888389332667201759830508000070622063160837381251299563831733286375817938991290270787616742502648927847449557268367742049410987052730173033899635099502291533417528018869623459863392201204556982773490920839970870090935920894947265361330995425316871681285165979781840268911289599452119481267234072880257839171930507259960537651727525544753700148064831356340032044522092102176203970855351050842927710442074652607350759663659165147153000077948837549141362132346347308392595679023524942569655018225320693335818034911245299433697711438671429365091988750404253688359603825223310447059150039911495951898334056885726457322044337214088028955669122966665893795693920204446865993590301176980152796422292428827169631913402916047096777872770359420097285792298424100782129213462763331144163135015160347171121066975244843889906401658387186872918189134392514243408611923490801412423947599772803673619514669658772332894936056054759409301354547474199562299047277464469899833141750896560135448782324582170966387284988687716904434443557522400997603202509788644156575620812451922960589631238821178874269387722444323282474997297528347963934274736726767264430637764028469454314635552620965908759604021094851632233038206315768436375402435805302716445461210837608924548883799110709131742520875290095928909375255662613527660502243113836630004878681242013395069862123862156180516738711520529152065375075179071525089488718148241810366076342376434090829289924404371648638588025167634089540821379493369948836604588932436721256451795191470862569847389149468087956903098698449936915142533214742433855570955792703053494884786057825032548228073702875966777286514331402865676857946747636417862691510645984146097344376122852406104072634975094435916265849241515570468745357002905163829259224763472359859839504412482928145370972264466889904865417541266185187480776558196025994002331515691129460825698218716614421001618300827473879919994876225088533408955349427836556477170084992061994672274833089568484674866279025100969491424207711913353458208066876606090648344640414650087568482625391853000860688866973411467263987616915565620848593665178132042388095808618177094229406251317402750566851957074308012400589419094669857500455261645472536420445914564901998235460207546659266122000353957135690511291125664452174755230197917635450634504036305467221261761543614181305960082122805938805120323574280440149543855920196984675494096523009446966161468130933914743016527948451488469805783127813776362751349212286453699697645159002546039530894110582019307098209599027756056118730115716896254685412876063472247456648222154048965590693486510945718178350152350244954136449012526734906634911128782639920478212503048930471588390642701790380137407287203864723517650737137912338016460279975191771462849461384612181250031770877666520174383605896251957524582794386269460909189483307532593648346495102777257926492954678200439685651150684432309027412605510885002472009703445352600216864510431692412270793695570839128273462897806696765968234919549049100175358888047136049083162975117444814762013391421336859742831270005481301308557191879227185067060538630994521698691891618847083963473496954493830568778713498637610370643126159805625464973446709790045957616757722439117181713755987447767809421723964157876421641068604524150854591319858469901954465657429227818448704805171284680931411170961185308118829795884350973244039078163308611785433667127448629007196237428460089977074911177251173577904577743582549514248921936874950409018336701338206312373100458851144728810078584893953257831923959361233097188183187302015308709425580313954355426405708796752922734649513938281181698987885897293528972308744046867862165020570704648646268749387792751459554221758563908466657063902545817936728706648003654291896719467088341964610583255756433104255865813986758545046775598509356648961535655692309209192529664745230962137368521852668444460174536917411199207530826513476269419939703821385153546264820971292014233455437258666766635005563942515150085719159568084260849425060675191232775816722168015841002888371899474882629136618810151087496530696497690268863302013717122435611986248783340488372527152094361714551973279338291867520765321832595307497216047783201493930709162141889135361879913290586647059548608234844652415850498558929005178072322460550927371908148918072670792558149895755418304964089087631914824100375618195954329155985857483983307434090286636185839964621556548739873254995184780894143733763301449276409538189395924212409524180926227184783836925299295605814634345559501233935677442300720638557681880051290491417256344151935579367767152302202280354040207150194651962276468909058420927448460582009071912973667000631140276309833604144706407214615557247261633062983958138705595809756967524004014901075705886135842348208685014242098931799591486127569690216466315597676134515035254621258744626924531854115625913687132574726143526052155496942377776947635426129908016761639207412756878591280336114546848263985410753989005509358593465562726536169162602509847378468813552095304859065623704966434469984928850318200675372030822974836255174013661705791805766022080331716638700987640075399188308051378698041295944652239681326805558209737571998654936647682925003073865280421857815877347287350837415442237736944892461855162069935030565765106977339220287181516432466991070907522866726077202351394920322866792519215885975174727975013601833011213462067268910960707918671341220989355353328769663223809518734867011557855491413104078597998497905473859740821686319316586551954802137703246257596946892421921142571423637874039811062120225197268666219119766645669362308081458469228126534930248760104774888188040517879383047152355723869121342297962859978706995091869756308939051939303747376971800011947494631023361976581468090121710763332100048686356128802698227963438953056559979353132998048569333422608497704428605308020296078800392496030298033745153330103871422483818284493928892060013561283192674598815742225843211258279776071807880775512295613461717682038317389714831228724077104486826040885027787016705329835262214903067185766542024903425379892754989388465386163354026691969052308034341757713780384388981132000482547536673319485929959361817458206500153352150377649163199606232796220243683367456999989237137053451769228712222034898478683392111708648208006688540341969182949550442248166981226089508984101067885628180835572508147935122382955079202696753375988217065714647108550914934269662797488542552810463007209718818187335245349136856543972448222648970503074351999039001551309201426056176045981037544917375599876920438212175718253047097906044252810901928342857966629377219664177923861087978564814025209641376754465368053515542646953959932787119957911218102622985878373912800040881382794768261511528708848800515181347876751377169353498977721131523897270347201773413515943211920791253357312104023920354802158576870603511233879016326638663761549103458618406741212575341197178946787112030876353514301672115396719456644856230834999150942869721447271588077898823979142785810139014422081000369699105126846512505504657016581568365366445094037570344769494999135819114942797891846153750436122364721837606978032512064160257870940733854444116497925157679768545229419632056998359221137099535309593078682631627515342856558265451033538377875890952729706412329333147379439865336457625671467685362758561072898720133065432011686958813545760845434487478880884303253696376334626922830934290194643983487431136021098533476313032560757420401237431041689710720930720408181527604959125109853079979410768190387790976079792914013478520546025234371180591432435252666209999491015860494048124059141222675089882530417523393473078268010540697474028954315025809671506542316219713356668411437412682293225943975749065291335667568096919140368172480560873993884148179509823126525480824689986431560450183975260889361421687707617963243733656166449844797532037168216169496540219583881906398027599673762224639277800634650195968160749256311979836408852244756384242770676872112495912229134325945484317085102202749777341197604772463207772799806031436014425763203832556389926651282168244493617740156760410671671325458440880519269113705876548972306295150910317567936570914448060504083030139392471658018022951026298897066917486663234946246867863573045764972843971548231426024274756594690096895901890701596306214992590075930478802736976445743755155242469384691501348312933395744302402398967404931175398818513461804017683538284664373043167948793571902839876769838281857199775553257355303598212902614636287943290159765973692878189600907527591791724918218383611055178512428867483798263996972529694374775890229152673417816651254645417426628896203105779052967123096329874673434825741480067337887277226220004710191461088574085093739002428360130709762816554986794648272592356261559804870603118291889729951256685085848704561127751480371416481150097018933121054824336467817624480098006102493168580744727572769847247593421605223609054643432990049842830692767081363428595427781822423692211237673742431133904846730368835341277227662688676105242592377141413124358868351004836780298415764238295042612344968192789898083694517099657155861742147011853225499811716152853201794585482529986069133407100543281578940021207949663346290306500056913419332431531416556201740859693246289823989747581451439750867310685661127251861540078184325283507666886219142217203464924961555056153394474645088008403061576818623089640925507880711353171610421965537383393788891243691338420692103567772642048630457261306717959318797133473246304730387761768429709145214212068897854325202714814249846153840588812909078241393427120714283784850181045283040758724148833962489912235322765959962294703697954781583295547380686401999984494891829467618452511086850787255455793775265909513338139670916012047835158163239166870079350108397481282990345793880891589905861784419772772602752947275214131810710050553082998041042419395515886513320856962259941724102286060537364990203332268940827837143657873005744289025520622595938018718257221057068148831819500170681219182849634647166392884622199837926175873092487269116432606410451340322704579299809205943911803135543252070325162341006909536517691759836640974804389764243124499523562660249002737698217253531607380970997049378072913337462237061550834739823598144737850851904415310239157033719823807371205654731259690364855059488078542791346478578253145081427796078072216341176676220433317791809723855314010704448120410162573035307094002637459402400413394150367557641072126933515333093129623040886747564581602263235736026411717106414713473635175757317417192505946360172777054002809913506556169816349476665609065531807394159350748790648662352421739488403938286643025613302332385030634017701333449123163699429494407392052092639900320572120460746690053395039512996488377978220835805023342734653406299904109104498576090145631235815132519789088644982333070294196913438070431035010528565154599707754072408553456352569989698312933035653468827366801232771774886313098742343928525412517477005143466255866460881266675842393725119332920736472515986820473962255252757285294235492093868556432507059318462027890404098779804328709787759958455710520277031865769031928102455623332962748311507719240840439197326793994379893690331076941190347177082896277431538566703054279412425562369899590087833589431297411297888550590735672414646128921289711623345611508403833135295334404572084850600761612756723366797736850972459498090309840669936239872522506091289392889174608001164416193979702651090988354225159973273820530756376718443876116717680105543617753138204234918339306825051759758364837197483016347047525519205998816962744745576000123413505515619586793878965731089901908231522279636990258225623704648466449205425212689034803253393177348779430527952378228946743707906528024410506731224992597851089574182046195223001097391031333078559657492164566429296553681193848509921909004959533103155130829903632593206792034535728774013256645277800039744572297095121638923692138086658729440555045145483720331818915198410590647728319061665061193531024902828515031339653482537472460137084016260136207622951633282053656796317935229609388409246844031919376961112479738252994198992081855498123276073761163379125167068552454445386467958530086109858028363904311597429136011301104133987576035757505559287892036771073746183126996872502022810237712553513320529403200415142342613251653118931403436350138847044348566006256766039089980310322814616328314591415126437323783430929466631937235565518744658012467808592654498743124199096250964848484117178051707237161614424645811998231885707236135070618792767445448904437396962907082626470411737451819481136413820334796213720387173006921751259155878364239205154330710214426815718956926529828942483631125437176736166319001909566013142007787927883063931617739618041847621798909350797688080273765109602954960612209482690266417720069004893668764277301642158622671146966273511427932804757876311260710426712296035404529650405162445415394717526444146596135038139232577192424736622902809372844706283578167954686408880715206289522284865949902884301413910785283526250395521661146531168736344872194619850460683059220745519028236534573385135829688891666241437524395275522726957575661690313537290767209996024161866539079289235582349197893599886937213128669445984172209983591338657447583482364582289156995554920302552844683195932578413378421325016174511791635541835643297862766263449536285433000586391979823561055899279473198792877217608197223805563656196695750417391126956310722980935617097460800101827121246193930164421605090717693246575275754364782591769706277569967308413979720939939739670821389086002560396048041961334351390502311978904454001876112041878381172739360112876382279938026192581704884651720633065669144198729517597339705847109358037458539397770317660360125487747841532562979106596449719073609296783201061445999406612806404341779510584590112690540825909407076219041869571437842519465911986132908574225418031500535178909267723848687811524690777779643208685096521802602133718179835530735682755413590403924727038898952134766873594690826093916450692497355857603080015375297692399618143896977721691370851708461846709939688474742919679459538857621557902337258597466424056965982266520202620421165783150315847130944938742747231699513682681570175740213683991358822398893330113693228068674120277410136610778943191580842955132646902022478742252068694990821087880956214203043879501262504368106761299966603215343508275555267806547826326514770496239764805948813067468112111472661208029995549693708589723917887088349522382391210503353106828241545563387347926100450503030883402280437329839686615386343587787650520272195482889478086144553670543874016439426853653381336445986574098864641518717268994733416361629470749177541862163276108059064020794837210820534448105839593490503656430723209571480981822910109288806127703840236060199768852004541926804849679232354225088232111350427263534852121950000905193416478671827818452837336175824344459740097755494696351775253481244328282928162396871980711853500285837285282917169920942233270236616628129910536631220731175135751949475522634805113293420406139342314730686818744700104044569740499967972850758602779652089911166221478849965736740033395459716019044029556427158532303347897038103603625720305459148320976922732230000485618650504629044188061037505022453750298391568679459934989824439702623211336157821633221914700454193693416752063701088784860902166980136740227822901486394510879067534585343729878133637573596872764026796421440538680196478429433269749905850915739813844105812376840125952545576965622067630686068219352638767944869374478453686852442180660888757448786283003965743658541013127471500267162677737691199318568037276458778784659817606088958663971004063569876627227928900116444949651552593949418299130525818260001806980238328968369566058502495130211582163776526410684176592657120496917181970621544762998662625695277039324860033691845680203883190240393885351300159236942950471098728480855798414914121158571069041811052842697509665579603814857739773468662317968991743450084857892773400093994452240220966022989113906894758344415975997432615849991051868833016659518086555208368290439457340274725649034094566659948708294963428902498805126850280045515647570147770870997749915396988464097511229178714976398277851060428770235199423344321567220152283346669666759174873003273077423973492335813359760015175742673085830209565336153203805858443809073024290262499795057650007779891320171782057095224101932689120051410794040865782181573391116324076543916607622868557866375086833473298188095628240356601617368834092142909847016580567705384338750208364181933872186889146882800014136178952770733760093551407657415630880933954459446704359540803330056590617123510454692705254818980305694772329674706972747558877488108646365499893177001462883851277109314299469633493295573102385748891579224335443255889475330139610893844464616934238055520177786715199665637705940995244091298948087984052044727727362585242809627852883767934192950990954213625964144261270590703591882145268127415434927165910993467392931678773786676483751072586222784565081213391407987526779784980986750849016617931955910318468767540418650709975644459819626186818451201936545517006670553294386275274670105972112291227943931721249745065297952366349984318247161177033769741992900283268659130121108593711019385628360727182988264811399362551813922567737569550901398288489798164613202618539919349227430837797229463702132147561245430434554945370100379653209853132086104895840678491754707092183659474511242580484364133501361646187180929994209910812105863942040313153323487853249461197449158028565719712164657714140750656899623961082259146887830899968425918029768365529727163438545444838114982482629504779717941631795446542749325236986345982569926107578725593891465000154011558302040346161952171931432219163581206227989138289820565645404965938095553783545140595582565462986860936611727237653977899573255176688791177780696134806037504262113273363906024659074347335437342460990055452841824282124467295761257490192686003505344707687865468525538483307297583078466478875919697968985699946056121485555898127684186260545720239366573495812701887242296619953290231509455657490892059228067928522435699889784945026876913263259537776807077777986226556299553617801237416010116795662220808305556767628881378205484337804478728325742788551410893660571372577285734925647158388566199524348447745895029398981467570181796426863584557385342210470619664742015632889180568854356403141936558430315742686552201469619265290175932083266491031969371827670720347682319400207126375810266335590860284433174822106416180046956818746847386190928538206576099239979362663530200920237493923278860481208135799628534849527335548777606564186701006051625010027262175935820787561511078540711001575617685248876655695523390296289848299200724136038177438977205067366898469047601588141377068576411567226979069914281585350728992061000581985716899380854415504439634354111867011171646196352355056626032803208331663490360877868503075344332388581039861555659904851979280908059351134513439024348393641325496331717492350163782258796316278210343547249528603448860797189668666683784085982670572282949148278479242164233268099514199361014598077897363123398464434508236464743905471841955085953670523175459553892176331477807860365741025278409073174152538081552011160599126219452799549276015953356008857018728774625792688687844879496705357638609771070101539046171030009870888296582387406881420401650677779361054172869208980249153167080655469056479447522931146281260534758794524057343022074525671053967936966981218471243396550787845500625349053411925094853901327435962838564610227966707413402703981491945834354359954660999570334208078933804531189406423603819721369246494723429810507246440559348832170348538976518790193591415991798815255501777428489391195661080839711285649981066560768870835028263532851566097816742983089416914618367972617329734239911210193786277659518198495635250930623032544582215547903093664045176290113884224516602667026275888076301896670715775133986158689523775824832163826658457756193872252543558627318351296662229505605670126488272044418108748183748964452116278325812406016129905994524387995082143039717449551592101339204106157354285092387613058879047338362778542788905743638707955591361597987947254267616701287799101422892823273511167514013056847340493185840295363521087229852336004720203492224510168071536537495504947671170370628921042401188784980628214529003452342817223983534549659979895912015434176697212262974591232767262140674323145641765748660140675487774422219889778410153646860260364631693521934873734168716534340685094369698998211528779392604877255646137786017944195633077365246986941031655798683213992714430458086321965787876843641067816208988099404312519411615838366827632581302288732348124139312702846303281794133517005184764010191280839431869512845030002234766084672987511293177198715062850969218343073308788139700811066377449523189222639737846157320088387521480213949517862975610803578271111991347174477587351624117105921219865667491947777982089299443349390089841799425021882971756966907597630612745273637570771813838750363964384706143535400837247087497677530318031464138071626246894725283762116050464367220996527396834402335361479853369899180915337573813091250029412467661713442029586165359245237274530917394403229027722046469858715003149801976631102363159799296844275982052186247640091235522379751237278732553393938959336931522774483775538900672911760022159267601674261042019245161603497150741561675243175260842750335844796101284727977091614746382748004011400698562723230428613972628376041265162022158348712646703054148454720535156215061682497043888065402622700419808715003815316631890145761851344860286473549265679530632097707896875755124973775078096278564891569383867215067732566643511170929228031670203658818274973936860505383099831099699340826235512816753749938901993448020679847939398138806005645467556478345336250962347169419460824296725935898041450025067118233309177051545156158385528693399616971728242149948875888346730519331545520602449439979311975332943044067132551318178839683944598453556693951717042081142035149435894776267613994215250510476610512087201427460145682400108486493092389681212136958561497204305991709246028244533433037243465969227483774607828538748129065815374904696314438881801156405335200794782067945486324083527351314618003456264440889776706046163247283192163251297099290438475712066497860976777980786714348070874239260154652033068746954328647602468222403645304877694892259367937642824647176741541520529452829105220457137598059384514265634042265733002655119403413142260965230275042422216023223049022796958313896341977788411466682993470010390976297064853944877756234415404571561978304613297482857992319748455245438276677712078493304254280274084827714680031226924832783584971895223285873390924298300412791646892998475370006874481250045043035049373273263059393757237105352440464340259122529861338440489050865460396929046116321750956015540296106554448703612126627530651806997485017382581199702909235794994763040928147224862125411920929282797894239743230961421192972976120982129907642297772480348472390169208387166921833260664105766859342508545549139895128509623918492251624450513475715251658965614913830402457481760509420326100533402677810802889405807496830393998465783440619955497611350394846464354218182142163969356441313881980836471354003494287817679752690986294288980549891977102320913595904207583799508010297483416286108286723369942293939772433056642149616999162163192158860795599930023190732432602747357591403093685777916009936262974965698104145672460735057183315657281392391836058607485146269258019092785341061008963284859125888754662036471587987712730591047534297656138438719424646104876741526696069296446579567888514087235051642438967391778362965361689168937256008323689827815483429807285937577391699608357481790464482711439549248922213097405968329263767000757257606366928438788100944993619914765841277641163892721605913850491643602830566692250257112610973909413562972686562126870717563380651415226776567701476210287307199427891104349390523825823151446966308944739057067646360703698403675491864318722907266308895089762584570298599562913081066581273582576103277915940925566952668159612713568586204970261265033727625145823782064374247991311753728251557764364405727100892319567507626160819021329732490858160301631349598203053005330857143981290342067667538864457880929428674256451570181321523731643430017217657322459479896811005437298597823932131641165591876012579028278118718287189644958955550574939801103652717259935791672816385020341280469177776496821327340956993631345846274044775531234210181474318230337456707064973248913092450542474160291392377966310528139666843294798028072300079257638352238410913640950257065455532273679636963983711132054460126190445719897006352702637536497238485174661418535811532395465314640626021800634085395224005945125464271770179408078464070953131662585821268729533099689957218526509865116455419127539656664455451318744284595179078241362538229303305569699265164076083551724720607084024458499606671367941275410269865720918640458158913962549306827415041637788256917282338529789014551965218000924588675188579141162016752492031843171219092655245540437053688656065385644312459484453442979824454453234300432663649810667385940922040684560709514527597305842250312443608311933119182414833328995514269946018955250794689339750020113755315281052252124559310511473735776379584108336982501450101523284226405845935830310168337648562694542316559344858905383970534142868158230879537785618206344046854981993585792243521214122270430310747752479545612471656203203639597459282069536445853311291017454735502115581647398303465684104556214869094706105870892208943422865274783435908987146244216432707787840697701625930925644310579598117005579897941904838217182773067019491286585556561635939787098200676852800720204658596209590189928351346601067815978414655050838947336072487575874992306248162262683035592938100428806079096432753248166629323673538086652886930135145654347208781821621318485219979751357323736906520925218020660314950341188207823258708215569063719133334311872308885913393902008977146156965342051326952036017437723369383892789858756864699448612201945227864218486926109469011492541687116910269420987706640576181573401011550992877756790304867991130134915608999959520397864362010425242561984477251098207014851234763412071333406821665052753376853513960658596250629731977791412263737103589319877831065227736238069272838213761183699048297715059873850982884760781638791991273436361679926146143315234107261011355742064849850989207163759407731191977021485994147158608557657695779753150313939890975149761682197022269272207588707312979138163166962394461472141734885647305416314473350613196869959494249961009915916100185096452557374559572051670632364646301107718663305831042346566343696345956121200149285906103597052420211692001672054768877503877981846215049130230034397315561750785219753434091467542686635999382767793804615456669194402062000187744925685273443406535532987732552325405618415110310112811128210463138675597440495351562993089354741029697174890589273736624210318766175504636950820439373069228453615429674736225333263474126515535104960261330802050625152733410612065359888352215242857732730290054248618766614482151881387783089950269519030785340652001251368005686216202636861278853653269654957918141670072928526027017582752274290955430071748964975445554466657620144991575816295857156734747682567952781109543370863813487201142976550579621956295482761592618963208492277891922941325776811335494589389728637859354457703928104627813882985881107724786696189492610488898430040616009343799939531648011453606315497299167683100369396220472110183729556873137647693072286627209471204356617383338634811672492620771585234899992576804878198141984699624394868986361950847705674144673351949041563143534357503325013956349963036403989180879431025072339362392597923647543073891456565862745067271310174582675561259721825481213960219783524335180783846160146031776439049975574689701737204213068289411459637181600366641061742872816537139794155800830709863588684122007664302768008802017943397041414587753834759366806045357490390800916527553843938651583170550714191088276655295942005336903450947943431032671881821965940284494367714182642759156324006054199718273313170885256166202337915095151601135153651487102308587954208704826390451635378602661682345184304635068363522256497758385286018381561972698768961813031696451771694782692722712855597125832696716358990217367100201728339812082882811685249625362249914906676544846309727642804038377959823683960390374769701458073012830024368502528356561501595203115166178978763666978794176128698638849127819896138247456356051668651580927766924287801341180432449689473645908168939055236433728469779684718180714732232376274974383556137999660174119099560743253404562985759620920331185195497822261560090102193075317963905368417830742493594093066409880132047051319458803328289237208091902512180699445095783326106623408582562620662166450097105490481223679981796354852860208586395720973314836900559292342781367593794842120140074620948886406760157163187108720828709124531021531428310479865965855721662500339732890744040501264963839025127456316855073573878758237615664221978643960706136459681654400745898841448998582600362639616985867077103952129027325143697686299804321170608664949944608434807927472124995785189234431116057900033807598180092401522212376928727186075007771348440020951942078962388874774453321864377599867269266019019796266587641420003906673417230123145846402766729029285084425499371474234884146656236281814721981874073901221376768072118120033154861552401571688075581840767287107473006734936390582759970235017350034075640900799424126005368793128759437576875557260887117507276243547454201723766453823518542746350431282051871409450687340802957933614644480557787044321402761515382763184727398862608275018383313368515525720468341070421352920794326741014561207495472615596474696857461640207961765362774269123087967876620250122824614330682338212799698654527153358799344238284265338256821461715011295661514152238405306878568356051347763874065964694476497644575312512626518452214534144222942716285360227306837033986652825634523691858483999965092603489515115966072129409896243900851010224786685678594096080747124912104858159231787513402952583426455211115433829024611368738193215927223965202550864197951117517818283598206211867113101444187728736532867941400619593771523294948103127476136323530604934378795492170753732664789102849533148035268203003041817492375132840120784262514887786618084415914634414671989504803822416533313022532417504883742377343651260935554089331247673308971514809252939544063338176506698017264230811625642517580673662789071825204103080094387082596246912593523292885677360020587604986521083170232401989607436071636064345396268281130398909258019779114625625301281229490342835455185933808383698150761359475341025087396868845834999002420579792837161542266912826280643450918772035967444175489833341104796025795846135061037197194424850301350396564332966508827659435378476406265122094132387508229880169414551442655254033441965785519734147425100953443080085362398001586245679605812222556937090454305920433074959538516555952271256758501423771551023404043554358390773569899807838115106202524397032532257871506378412450113842578664183542359569118733843246907788594274739287570019004509901687358400826426624168462155956164105357528801002626351572989120043748666896904253435540738930847941618416586341500406946394889781251971137152446817477511529131239646413501541260628824584495569686107217304116593120402021219488025638395124878513689370556709316134796692510919131881316373726076728554632628388533610355423672749367137138983723338323150157753579247004363293661759026591628390632173780644112897615953115952332611826045347136202498703065585430479398941673047956815871904025819847544380288614229888940766617090581991619631061823143607992575323328588247333169101971963664679107922461325971325553581811031308682881035153074835694966031578578426071455165271692483229571475271429763690061289270585531174104090956120598739313819100207953374976202672200080160982146411906436479215001855058518528285030960076338625753511323437274900220613924259528463589624627452949201402109659906653716462548765113006024824000979021449652799240380915524380375650260750442201118684132402457720258230242954270890175534718705364435844239991969519896577493993789577079446671091351177134340341153045780121310267255869381528131986999199255806516180291509773739851634137026525322756114548608944666801748791257982208654740063811769754896681719476935015973662246299916141304865482075134802690938534939104001490602583518442806278861993226667109179925767572862442202922545152483601620177141518130144357136088195108625967972279569020589499141376456045337508983342590846000829012661165245251208155528823375631624137683839137418153554323002743345007197321969540397881052729703204433487921951428613150771754495440168403402501151891084646531608106126990520532387962971516106589375329525335682764565543108538259630893954166623876934333294920252528150148188360506201803285809172862201003042443289889488817954646131499067565933484601703097139606217628482560485187790169226523404774598846389820358499002653571009080116753662842496689247363578258071739626730412020514310424111864026233343137506114532952909190566221540286781239517677746345175526316718147472547470441823762766361534063202160422915220597535531072144707705253033777980225704600671444400999122739188878579414548439325766191337404721321803233627390357702255386291572384821139651938782369344448945803481159812996866658369621667254990608358094044795174099644124145542661541297871000316992086388083633596938106167550890857988980851786889507704158956515507075980432247538696507570989176571185978748929679072352552343815192783017778596181840059085332234218581472272771744798622225087884370578293575385803324458546488267284309628822485098023484022585962553078205409458887925604978517288032649111393519732945224044306096769440800102190171076279990120049148560093540770108838195088210969559181366286928810957868133350762020991706771055285359502085858181353241955012783356062396439078581494376516918219606645867738156518848167373291487368484427117802645123465474068394724973713212290973986438785794547363769815152344966825427989698953709553612895996299466284364570396798741354323906504791055682124284144201243274693600450827324031963612594668338404822400574160222275853942652392278467479269072225508833338997078209809079520786938749123412005755105439104735041139768518342187740258705286638878584460791198064120901612454392604197702994626549815897726737047367467393685010240410651469220247497796199302706647963239096499200100321069402427237979912483674181141886601455200924980875008380644722992217365423381599627208904686041335231136307372472784632758960635095957569859855264733949518243070712849018313598115700393626602765913620305245865578344741969446002713152404269873240238699224953194765120928940754983737968371982204212021380995347262788090461969915733118090206158043353935857038028835113229958996464876773235903611187555914795685931360227582179086195902672481633778999854942506841235884718565735468223988464045697810381518499914636053128545754654104068614203761223429355837740328663632576924125493678897148722751002954741213728079576112758846668962847879794496840796355567765016472754814187446357224328906410333861384516038748215485438593588167812757513959176480913482224781102442320144800403664213516410380471457070585229015389863288945997997563403310552045624472162002164930873043288779741108259714450751469060019443955185681609381224555426593981725466896667888721012509082309687906987720797253276809421008684554288637248130321201255460316570784924879442197180392207277591147310207025124476664201475366358618039176529795569125782554112339575142478147443256545196226302856066326601701068463572275803880276858506266811840594429614931123194593023266110872187515705037327881984644832558976288101735281431064817741389196509443459938713502183062767371809832045052477024683563946677665043136390184607746204176460359497592333628250412562395795094124751418234488472394643351429500539338386729188942698593303676968763921603413428785327081811434543999075144918813751382065702063749696549287319166139903095400364789722949397285519931743158920009917633158474866217414018617389237576075665269842473477712141166332846569809856226599260596877561254326153163262048633059579349708956855307808804452500192783998656084590870648276721525457325475668503855730921438038437055500866377412574541549202218080206993020608758804978499015466583917292380144810602341326252945553072220683694732460628247207529556038671926189564171061363688828489446878432289689391868619570478887397242192453391650290719620019508789415845388503392857928729851254230185013721549755710084995588854533531176760568359698436348674894098617575505765093807564777990494982967628372491963498945636702923168866880882752388420200142628747848777418013097693237997711282077906915080807113112562040868395446903733706660731543686806463444688889920736015150531758698696793039794504155365100615498215563406618721324553281347629085525220301134977019914919760663741245959538385180652466511737953093590349289955954073476384214967625126659408249825714869822196344079039292462201184699823505068670916505483918227269576516798035299832920061036994358058129770845079162707371747050702369788747515007668097611715619118193624963903782442427173322775492973775221003067578852425809143486713777865353402252565360469972866796060537551779167302726267929818321477684629214386446410759038193473336492612005009783679531353804773226949833012910403413388513357943116206444060305178275979902214006502859054929148721360002682532037167578961874726009660893159360970107764497691803207858139490025524832055136666048873841599780548756896325714072564746431893227228673455291634273643345276970733383064212821764095859406531775593570504678304805359819772578884141156955424859073703702293123004279279157181646164853547031003447384919931737869152883508688854877450128029949368768224814969406183722442323812270946747210199039349310813072679372505039322554865876618930577716462652951151812174989591569231669089465677954180773936165846240255268476411110244652731424965511347655978138402927508699288659943043681409688079024623538190529104566464400661866524357652921305580728106196016479682925757047013888392557930716137843873139267214841075370235437415989143707955753481162110987079161989731910150376740051534872685492953381503500439663176887754910298645195786127542055301166225004909924701623625686271554417609827340488712063900219376675167708563649765907179549701917953128559387161766777527946674009337742505403741753472550632196072663353617851225939648938850683433283653930934760873803533641424628606356759130117363557919701948340805249104898485638130727257075536803394826068250219417986939167972529111743831260705297609163546232729704654187340196322028018992803461965561515266747681759956573350856452029270271959498976787972732155691312642981730127610088641136539733476920703542715630811353619970620508261260618156430885046945392149247270255453412460104508088426400018311307855734293462977150777443706493525226970623486588608447766215746619304485483589823464174596436064233192320890596976763313880733312679952568644867442924981400667052285137425765464371339990324178246947138356557627643103532686181162244932427598906273198062746657482681828924913166638334383278395420558929604661002136387019500796799242173025410768605968212615864084526964094903228321659541798541575353099914283735581079202198330342259614062910642688553029408581584135232114725400436150981812985655808508524094791653435924082218060114162597482797975956570619901021879920404030861799901201493969219696523881228062314955737801951301677190199427952426646439506414805839749514096018241409829641518402511698987429964451942380861522248458550363555683463861772570291559107906429374327483161368924828283119669273895689202126524611820112582616131743832935239145187356301588064507591884505830019330170172179715906559762001431830884146367452520167592664344732339347953959529547416231359399658869275750376541663707387465559512837343063663395334113741147975704689405342645355195294631802616266970390236481718640507544702847949466950996106167433507463160834464437983882347075784071672031697550309326011184472849677164319114834587005602805747265472509999478430934402807489605811708318213765035186550623549663696786199646828675096117386227356970232728168807404596485011274822245997601384554397998373294670867603358502012823500080195775846283307981729887692720411183385189092966070595434941981318164667189719315237944114094971933359089260271690164189251483411802660834592323521460836944665951022036142604619306432289306561664954965696172375115628461185883795150671008767186909333462267680000310129819830365222683618288729174610939589696721939616323274404679871467383304598254310509610865585928827188962078826141930981030673732112030685520489717743270093324819091456798134733223822784758611957456226894482163028362223778085056183875826197636525246415379251975179513189831101135791679492715921724157444244287126337170018314877746522595439297702231170079839971933224772752155794628903039413475855403288671506938757651870269500238677914284628998196681078273187164895438754046900198717055322898487020649350077116510764682499606975844060480140050834862398739674406310977733330166739181877286336807291876245909451926973191178375221370165990777803031169390724974287503254629594682536641899927941548773274018933698244893745125257430146299366841410550601060471841346698142776516589973366753363319323416279363922187719451862061697941030064659433244968571882276441160726065033275729143184590097650126173945575938124536198807216014160880580679184103693971649148057867267742691165125487584541627537160183420283800689813744775940244249924983668897899851651958945448101232430918021385587123414554711089141651596122590609109204199278103861601623935295873996934273926801889961058843278659194768141571156090415177927036751440710786538252707971444919146307132109106044789195946641896311777179011818268805000385637584684597832690549518399023957071750350783896780123286869861628794460130509359198438078102555312510940682956522371954411799000296490727174316800295015789104622111180958352558069995262820593232720828897074277599794923588232474150218106402228715139892836136169578371398263436197112457504197760878516001602095808467240187673736743974996052184699994704115076394254570097802178490212257913621167576296378870368172095220164604622243399036647918883953597752981584280961832605551665215331546937253054334423306070996773632899073522276157935652975100705607287835043272353390090957517110534430712346451108066769466975238931999223749225865548726215189920746794699541185548703043901625634900471796770494493268773841441242385763844586145812106563888600973289185478725489672410103359218055853418665701306509940274557349081167025456018037049001409757861954479961672697974162314117283413682956411880716717020215764358267874673598558469616546504745476385611648885124380671963796018173781240951424830715618645571014510875737522884360583380124637946106028363107924180879118663373819280819375421041256030250585148692191021623347514523185051839888010666853192415932029735775577092589301614033677307773682494608366672466970505574665716296787210413286018975220788220137459205340471667161568384207082869244535019176613114597395028617906832646294941848655044320365065214132177382765013063931178703182544146535651307472210136045336426927613924175904183588284251809192976606756936450448961113883666663551430264551935434638595151210406955168987919289098020675631336169680262188516542666860801687772883451467251212621127131423354504242503314463944272313229902263935446455655863599932596596087433583181614946290881662494450140947868551052204699436993180657530200005165213189513067728359879795506806019417324874301034689868330970506089828585610851004699463318483216728398077713945686406877003776277960023462855935707217548628112328292147915815793035646138297906405822749357685741674856212028358555143844255029041892783384458392899148022231981784728327519179982973186320177662489995659002329044684582324157549810085577755095818357861289436779866614924174294103218905022885181307904656927469053363562918822789357595525810635895473592530632091882908930532312755630132805559349375129043645324064621082245481719605630257299502384513770897459930564915029259680440051605207366060658713290612791188660892662219649486479545854167850201755931083941792852412684432318819186929679371465684005033035421815282110370983725608832611108165038360640645417197633817409807316079759524460351627199914400625018376843925838560622636592894758524640029913683399153385560770918592782923616885230183474767551449597637060167864240267826705778458086952942617064858416249181035936537823097392641281987585015542268905404975174592711446462783481901693498045716463588545880093037168908336696382064477112447490004690459661497640217826615693387584007366818038582851589530287811885903852598225155960859614982570882237115022159023710603898362424403707688545911436351460198476157778264487139780110839664736459622520146505312708799780764409866070110766088265260652005397622063095664099502709075531919577359054592552132371629485750925867114391486948690708677619947074646880906304434786503014643973989860803510961755029805261321764946536184972072593284494806451127661721175432993334892119222752367376312329444729599012551297938216527317470343661500008141297194115829997203694209743248705949432770738567854938590927729824627939018738382229707813339962659647962045343139415719216000513294908962645603800364000446798006077311412829285345854901684850222314043364098714595995211026473420075253863095515737414360061985863566578684016228946895963223302027050589430076393260223613002453642134534712712981113923583156346996907645189246095183771526226252747998328609761683681380640661947484886144337173728735881711194687295721797410640897387924160365833562602376634679346998297118681765437982625500340631892865985784225747771743540687550326396730933964123577964078148076138507641699370881206197326967300530705868710296134934613339544104990874718107252172077148192478520199124350473365643746771539365471868773039108590244033034691824760124244162316947798871842056953955582248737036633910599594190755925829813168888893728557681987605444783625169841235657169773825251212684881634463514665920930090981523705533476815646459009980843314945903295952195507137423773972207821707823320895900201070111323008187328785760463001650258309177887276554983860314612072265329672254934809470389156096951633182162515232517715399810268159845109878056976152524345185908229874841409855923649690917134530018333147575937308596419217278374702901645015875817657175737547467568695731480826548918237550375558708097886487962526849524046726013201649114011697373194098898406663987083244843511976717205954954532287952767592139799253059681519153189581306037324473204983174841175679324803242814889975168317813121081966393882052247504357591931654972919788185127637972629463041944962472909939306869000596791468028564635335263591719613814900601866613051932595328690209639361675961169781955132886849230456706657204213084140034538512185706249154981546456323375596569127147009822894075724349525486660017587124273207556424920902697542532029316136485859058795976532954227252585403856851346467095676828838719043712872991705719971435219583180776674001218276959647516908265774926541208929826633885772417829811213674980465318596996683718801016115605129756326940245240700782014117235974204656074178597559326819473804362896164038950067505967621244206471000046630318168269214331102102626047458274610936318094463523425668658145592687608558627899035082868640067909655232358901286135351627809092194703259868165763329756132268681799646365220893048463188516239684397393322569893513346679584157258698905088750146087380630883714459201092624141636952539904166351444018076175864174837166733996140234544404963923873121578653770098605490635734904012365787204485527868593878840949580762150727054201468163575457608462081527564017622799261318380094555872071044085719342952779058990468035744914211952917566441757994563359380965773118481360137830846849765943171646079272926356219402113754535416775218015919989247859855021677176478553789843571164327153698097043708088604302341312805038316752549531000188824750655392160994939313573892983314471206264565631275764407804361652418380727682487577530143181713237001972146390288716958125486150418181716054550409926640310325048928444049230421605353713647600711565322177108168206259150203103923748415432859405250162554872243725156034498950778514528559106625604226168734600820871523214096336452607021428582677039364302066969408663189106277518020736537199891759964765556145408116101049586638005440678771769464723737523498091949710006728071131651523003439820391807784011831461417460876818034563533485524258942125884345946328645692868000054041707459243546139161242057852837646086309325620491386540170200441608585684937276708892708793523172256463520773328543395633132012808891809282957529696654251666062862796756514404482256955600837713421367753913285538198334514336434901468869900121047815151448332267062129644206836688662036972006475629994136948824909573714785764866836759125478683375626848133534316077952585500534712573349005231718506483383828561811199958096344859900542581584655964264566827932740904630513315080984213412332521044509334568712916534364346033130839296204998675445314250488553519476752003314699353542112537532055686730044573151093247512729746617714644625215978132457819225026174403081233776026679591102990650365226779996397038643136715278698985469788165420518118190311538584672207410633500525265120298981602439813850477770584733801464459125855868150624945585018578331258666933938036752039128505705438551359709297025143530652041299504072510863094307980453302837892365796943491839180231139286284118042885905567839802749144338473510701934329730725716238753278011857073473414116258454532245646493156907732574204348614766867764997493144000525132205962464686034793802406464822939212395712583650501444361848802689740638316770965777340929613151083326414928650278747802551877092589855761184743275293468992237017849381820693490734354212831038158380003398707489284917853391930409868462845759605427696180421808121997853484040117478841093938073252836473056150541649905785749883410244126628271382574926829444019313037308624387196008055130964941585207378415947930218521427430454439181525757934178936761750967979492476504119078870959650672225241535458729312337513474585856790778144781671974646071632709348038053718362649280876312714478346260562422698630305842854627550578358178214334798246767219270420626012293082541026861448290412097582088697164961772186932797159607708497656049492400009171735068998909226160607599528125870431285743424266316502125896650199453238299724706550658686094070539507622575204264681695830324117207357267941048970915723626122975214436860843973710412026154145001363870378401294688037688228714530733926669630706608962961673940619311849956131959153699939616548849955814723032775908268992212749805755002059342215620300999911041066695981352890438668199792706287961955664771534817334784256113475216251078177330568258754512988124368182063277533470607124072138033080758554582463034550735414583171588226227298263243076955564263925973438429927536274481987076371518740061472239094334254898194642650527820923775378674845228581922906464476041745977189952104648076684661382768535715505718833151644670133808958366577458055769056647892328125011560076936136203790928919436287740860263511554076449615589678996533623127545730077633486947251314941263291409035316796365983000091350143886007603483372362789984110033051123117016163961495139063738118234033955770192744040029647123078060335104145935958816347412133228414615517473562409576328459181316402741532782372897558751684990041541490444486025774398051384263271520009930990951139772265611355256343778251424563739554394164392648926288780286036090897570222976064261189644437249618669067683962338285841324240266269426376613507392568286598865705200911536765917137344346486819126780137112525650584296619190542291983362905899118965978849685284069113738084979479318395202962812561069332771847001706727906378302036711509312484532759933972957813281928517378881933278038749353906165455047850186974089870536209823676345150278256784758380998467604197403032297821216991860891684056995599131460068267176086781778631770881929829828648956525831164597171356195988377908400177211437100369641004688302568131790811097581689215378734607129094459469616221226294749896885336529944929774983965954516358267557601941584661709331539474953964965796515253241258699655400844174942193710120169383445094387665746149466520188341065824867146962927158406664742689886137928515672687378141561313732943432355015170928860756245521986042170651372363281364036404973077736121441983381258806345597405804976827697297744461232085195971883852726123280551002104875115765939217953029023757359150153269993332195785414937956255221381149245032905783749968719871122275606193199361940400157323210871160890299277683861093964902322573190842815077424439499609456529492132393585529950511161421910890767643438802076117078791499033972387233807056692501418031239612026212361098186738706891531151456669250993827349750822970688556633067815913535153861499342551565166022425421525917547061697751502689316529025778226796409278217780174207956630645003745379267643842300808632116772010889758110532161272069854382668182060399123412319558301535588006867364604179023145053647407383133025775073139996084179973976443957206310297163100300501258250367046807792100838592931793736979882706652939764133051209628237010635803591750388312930443075971992618048125533019151064246981228450025752740343903024660508379216445351631728227742690412477080335986033314877840041224766005402149327005451398433874353799406961136634084223754491385009745325397601001219137434705094708655325853112307250396597064667210204073418868773532090497051418316805977795387893902037447414947139326846485198331147620278233936155172486925799083348587350762920828900073945429196396100748258364778617699804180233459018110489126050022059598071005581634612454557444919788769933741794285606301227835227435644586655970580141868664260931020586626884489049620343667421703187289178038920123413303475678371606712404883365194041667593766041125544993742186417163788903317544263403068229331293507969517808319195361976326373838199023046425943339746394112051293358138783790330431134370932135044739834168154152475252763165806465134292087376481642586766144890323603607235370012218540996950996230545928860081709349019082299553197192795057556258232809116420855487281924806906067610354882592419721723448304680651825751880052887155988878149653353717429598443428897019761129881516089102014252249979846871959998059423178299856570176823931287671407252170392912906701113844798274743792676369951204034586030269847725041622741782822800243898231812288591388207951443021551013338848660006035363941004711072717132076863565671127432499683287645665239185391466519225564356830765773906903210430990377986133084803738002905699542922916022772012819690862524945521052124086454277357188420249789712208188962371626535200641068005516152041900823461170054048406768005705563927037068052596801009629679990444266751971568797916059837746922785023643323939940544488069130495096959348661021573913943323021911869479177438381862495588491157313408626159312255379708756881418363991919430823925773574468264833872541821001753604657147706402896257620486730438548707688314249084826200718967611079498957195470551691931406458222560633148012885072653701935907946627047846390536640569844504625216749791650169029482330475388374101078199171305447351275190327346080430727306636430936312551023098601155565263126054802512821111427432951188906714295926285919181552089669773086006485509253645186616933750150813724914469766508244618392169342669541767489762361423345061971122883433457255194648076713439982132289691433888679018242844037790627904959742405241715749408667603493441779546484642254458094710101705118622011795070850764710042721842222388145205706928952366029640153473207484883306121633364897507004770745127826343563753913246930306301430877115880852210514706838121954340366158946365244994189691361732372956530098811293782837087206977050997098490245641641424492938569348046349121929974444552053461033069300723230586692149817110949656210443853800555340439113851121103707685656767231190369103310635586466359681786090163622620352888623080732371299643388770600117674357976252198588103909179207391069085994871959307794396966518879975812794076228990010682029334948382039252569623178839959563641146555252957524114760082275454882023581979228744038751209723891769911122782564430684072570495328713377438169344798094562358031441125709404159374996964238394911081538391838671885794927572727930674100357753064432634062007847314491547371228217358411448399756302803977069563446443147410902684361757186142324490282520373433021080820129413640873356115686073533993322563550256471933685766770954977940912286108346141166800554106487342475967602779234320504824066442972508018206869065215525189036956174435747765427155783752288984686112786591416119304417567785005683413210243211707926194456054546329375726164546077835713911288521737922777061112585873740977370752881536467738428674547186445924898218235993176186879392708749286049711897933003758442183466478958976372275756934765907046050893792198098814711307189843865837972483257707857433879177918340726928314383356319339455377534330411578546595684562359874588250307047282629045810352382400267965814574011938901733259257400519766546325032511493367328862122018544280926472268106494129523821291073793198644471887222372853783710674757770752097084244493179360530367565113615720792104231270568870391952265894544255530964328148114887527856111370054995650760456823475405209836540147771067925402783253894469316357776189777849269915865451717445187702826671975878636993587839307597838526255549110665768715317441371701537275564563696101457167274808273571510631384670743034364526565995823289950615762598048494589580931333242022895824703036316711763340363640714693155906732528380126626130473338552757591536477877802716218220075064962781334110625006302088264147987566826433820101376221297484084099105756487828324100722086914579023478816203603825429468230155278528547724254084531464071540639945391496222641671331174364425437404223631131614767633055803400844394535648175099928771222431604792501285771891109995647783702042721281350490806675578196874432292564591136004013654536266721071829922819254995437687620279868320872487688737194844618744853946130975447160390828354916864500791954340123545960601723478432238054509200559164338015538457367750879227693481671828059185746651926691271489904941901167788190033575284768203973871208142549538043472767094555984747213919143102434727393155003018541271947878277783073379148186254358870975086390806448395768720262932514340530385264843929938466988844890125228132649586760591080438030945799405828635027619496153856654428057309940019740676420295449894193289625059335270371003964682802889229597170228234049096525354295084492675186173503549492725852794988710546714289467420293371363170747744813233340562432360642516934365825730578482782819062832770491137814033242871101010208081510911706941269458306270069248917344966804339920443910781866858565194900218930164145202557278241691732408116976613134463468835838578955496058762085384682143699441053970262107053997755917396817137584364080283177773563719798137427910952801497518316243798852856761064288383304652407752856296876027187711142754887311703482651268439409453123351646878830743212686851157854609374314523698509948308109870679906038755843824583944993765598263815298025378863548332768734573132444041168869735283584748717797236068414326917073093083466034883783984370905366070822208190944393621396694652086984958097827954183303545359141022487459669054167852157457203808149420040834726082514715285500341882802358329845905412995031293498962347599917765169892130619031935785426950193679512470153358696160036875979497705667142159764804217392508251497963804124407397584738014110885229650731944208677889793259039846720464352663732526238832616513878758397830039109864566351543723644914685025019434465638032395151542430239190546046913344662893051466680741642834794951275636515764124208359669744417329466574770215321234628444938377547502206450712730551560153983950865097009951260994010565504015598042685181858003281724103588831186328531479399625259973634034947078372949214630216320538026884767722213532470056211333811061710507311091292675221668250091462437554309600697856309496646510759954399038798398097417776172170046044322825875047939535226127499021250459477078248967334564852091864079117745708565440993996858030064835708017088557222412605739361706957555466744749316233764430929651719191453198493318900590844822300375321639690319189190883255810504701854695328641065648193419211042788548022275683583106345586940304890019261487334475104744294269317623891450127796908715443803574741983202192854435877820220541529149207252471360815369956421287101021935012483547244225912931313994237839309025763207320698506691251691519201063156190126478751617809851226634059900392890942819491921866348856212829315646051179009196083166013602080067761491035142260023626371116108143142225220235928088271438518124921034725807479658738237762885422546779415665039267329949853740540227348120932484385858481834960566282965278385849993696190055171276953342146559018193665293485686860226904621200822749041328836625816609377537704790633709030772411059202651802317950239221101871188379923169613515976173626849780225353920213272554087315402428584899541376177977549092947366664407744507009890885738382337512996644785062677766536049061356353096834301350063821060294280535286175533603637464139741977695525655481886499463456749112454795925155380672132608876246830211920278244326922607555062640826097562292810783565564274952570158998320681372656405358047266554782628091484120474020955611196641852955432940452014233810697897327809555542207624438600753851719445047603128025061429269600359806256918135655882796656489346351769055699170572631577376045618590991269594820780032534459428900496491045266249008333821518637056599216728161659106170186990669121908760111419670693156279512363620537696244941328959905562938714335745695263106445520112987304455545046521409906518701100713242433689206983581757623722537505863867851040869263561738433525656788106542390935369850814809185321614588623268847371793118974190972927100833851512213052609622664115039895196017551848584770046345807053212762402421974292245483657561622933867502267431719579561059293687684967001125824752226258322645077800758926224077362568759653349822078768122708461410160723476816962507374542970255093976113620084923070623758825211859704380057594507038575306930854103129487686766519206902362476454594932605316669006065190769834672389319801394236926070123917551600306605777032683268120105821165872630849777972523149785259987152729326509579070606399353365960362499244549322855641184401256406375228283094533110877074982889421402609721015784680694483678806047757929533855950794690923586840676944846958315068396645821330059101417060122978086887990802282902306702710092180440084464140656275162299471627909967977052861686402262953079147722627195775925958085768150285245593629565912031439835500401154643178267646299918914977578191767090698919013313415089556453171623976881171062475149266422967265209547480793006033910554019186078361856253141213130455489897365631195710851978670352843834126411981757242972329073320824522886921058699915369612243946236343827146319017473357092187432858582628714708246132182466512700048568089539914623191953653597662970633724018790305410337562181055510167424403427238193243164870270980779104305043228636347620313528928653177885567942754204761913288955515787427059147846659309327912879859510803296872156525058700397665276417245419483349110012807230726740627878165641384816404091892630673901419309789084508680764768242255559675225598767390210803152304012652278275800982525998416866449322644237885101502938801682305488261793502638096514624085332470977269634539474927131956010810614238224726015857244930415033197773905678510802469913687611153274305921443227560106083210388826902217114804764550830279047358895048509275172730646822934003371696929667895965747107268990376239538439465595503259859358004467629630686003835785159632310654546822580136239653503243583559803835258409859418906896890252573644968301495032710391948535313749677647738014052782463934329228343660999397272610885165921183216793572383098851238055213141625947860709807893749841107491176119468578218893722551661676223234321596300794533029207521648973824190748440037685170243733114613659580666908096069815230557810290531429157851719779394203328591787946477188041677521871345738710842982203055869230790225431268877462831458393635342792633493037023350682502398476930392588623225944960263611281237681236651838957449071091977793269580163117930482738046903888021306183343084162262292640627460526429064570601620737657584076739756364954839653876082056454852310477706969380933682340770360566469788716420442789014418539544906419540479869085455376011397614814100017430538586591227175711495580918672847127045771690963200515056759715419160480242992831656782172536286634287875311601053560748614797636482054029667609126892738792858748820038433758877608391127952538868742631236237184277375933086136724157770626962752708414467276707813623190200461915755343917380650012466279081269776822869712348118677879154668893891916681406903757663512306942377370554673903600738598685161159639174587901887069687514400169088029594140089469149821578379383364036689223998335841219487185885543679568916736275805324558435419143487469621505664106415183166368337637209839868272579106066550541023230481505980318237378884822009182356221246884157857164068813528619624515616149810313070390431771764656344804356562286181312155538023237642429798735490319696052887751594925987717655987884343346025890164232576555874051814080100919314983660647600398451462818655456527859676703935945343640809327048887921773467579621710229572031734975404844468336022200402429512837042820299381066342836061027437441315910710775210924254971142181792393082172683883315225446015570129764823040430475642558715022451065998233987793723534141987408589194500322813782538116487492047033932415634249792672953927011745174862459918183056078420269352753971058297029596002495300443209079534721049705597045966739428482595201947308150511678003546080798932850742687440855564153959135849903078111801457523381086724781315806259455903271994707665062926115118957171367815211912012031973231747925773826237349252194093839400175813660194585889556459277751968885546018501350664264353922232793640530125598528737377371016235097105800512431105555426344107818317736573300025490030695181875018847749047822699609060366635599941282532679675947184956375621052635697970264208326513175899152976255054912100597899841852485508402254283313555045956636716984674592146922414993059838487492884721699323110441552705400960429731670083755121223186437433675194719857811207982272674343916927146691958001522299984927052578845966718396732567212811364453734492015957239675100392944799707503583182381289954333236633193145098276484179233390014691669232761479636088212335075128410118855593837987604314764515248041053264176675475680859630192635359534482621382557573458956690573761969588096053967785281131485473881153676956645555311263253815163965028222767678070263048476565054549729841873298149844647944754579216449227341501439951418706365194197364688589647148745779230941555912961077612450003817441306164845967617124527924812563224633909031610109511807085186766263728842217714163860172719599997152328795980190086233979018319582465889845391585130606820900942513994373861942208219260619281395200061998549487257445101301607098621753760889886681603810864572993498570457319862511729470616731417933940148319081709128027593692967611949082365193854980718191222423999357809968069904680352908721704992966909919883424174382650976762836570740425757151823504198121008684828447228927313074237440663309235370347042489367325176520561950442598961114162551850392980517220737703652081711925173636980457821267390097693324244154018986882594943639446209994060507386117361280951732234529207518526391789588207146612812657481323894995651779034569835911007994584678290302787734278768368392099820628117568398553400944194782550386502116843625408554928495643644488350487195384284002452119201560461574611521824230192240911488071187103027149965118682092809035951169652278517403374373867164810660633049534034496498956433774718999121006714942226479981339479542534680460397187829940147272960702021278747916452379297115711901945059874128978386838180232291978320865860717441309156460708877926891321317728286164622581586840020227365383768623286330040028605961656329425521440430158085301258740461887853599344844374004128964195978911213336791818788904860012423766343617605059912519462314986501869787743709641194611727183342507685349786301145169979769598656855964980655035966111694383297206674436849375151421665434982338831678355284456937118385672512969230461572900128814114620284491519747565397037031481439208705822329252782813795400358743238514141071084484576378034325174753518001798417013710137401447776822917971374163276683393761558879799610118775715322971438669963069657879760001622217670527000422740683075471638795505254265701300001863625520334308765547875150315178389117753543871984292055893006570899186886935605918228372557027351445494574139871389085516601523400606761688702192294987744043709167757060392080143038594374935290285569013869018242421243209864148301285832716614511905236420681900673642842993201720141395260795716039742407806843163009545125275498852981244667243814309391584280081993684184134510337994096467060212081688035644493716787403744028605367605844286471354908430344536288430407991912784498848168876970418816500057003505872566382430336842011916625433780223602553583042295718673098688270986589931820668959631209483355292623223044389845442631940615829705593007426846233645779057989770327363209582917604499126747105136067315930441291256228896781195171262661483402978226527635092619251551001363418666547299013409907166526823898298409893506942664572410155481212427001383333732471725023820013908271429736889414454958032292748871709222311111145982738277255723827652526493101840222912673459371041311174535735125536538429741566843120551113743772182588129476457862460673756399466317575828987723557567505528730795894353211853599889423760103252715097527645530262269447211203489906787645356855820581548491726682834217982175044807631435677470538521984911050045800389166667922137235273574535764320725203606157614286663167491727439489905847181064632018045409743917948779285306861780740909181095671963174434277077336494228417231618603657569599227124191268395837712603697152695340382981290653734976361264721574804683249615097094189481815783032796183189773063835715063558995489041540875752031300521689695510684166649822694508240551226453247930533505950306519753049166575142931909005059208185981125201172186227798921303012419416113995094275161218497747519306530428716075713516879327457608067441018242137138324747972680418300935617377495549591016650015590204028911234364507925150431592806405614900771360961042686608957174812173826183086018340512724985440864822076670782412020569530973426605216506351996772379667937562506962673158186320602040060030299365513396088967005531254136221698731403559631583796071488933639048733348927537037643046672444070987420525511523714618975071162688985170911970971928851980105379635507929950233923844502921623174567592069186418599808769512218446625935781544828755195345077223855423930424438421243519786862500442889967583273935972046842963360620212117824055601764006291317396782781505862745901423817556706248359333692030822600774148849905568955841339730361788320031629911623979101317203330193155846976281661137913961953997037049790109205612372113501103674228542984170601698084369237002051112634764441740126925289062425149857586901105831971666451154053868430591696658147006165170397618293342456737126245950121879453124485587060966331500106194343325961653442475829348057140524634831842075750430548755662853450141093176656113592814671389594322928306205002794878670967203993626153531619318257491025448599453834583506287230859014476694993392095952402019249800087489815162063907270258593187794894090468283369717846187047286029310107973740260784249351111142798148237285826871329909539495722833544785129070572004066833627179528278162927803040038575725170391631186263357303613707678234125370273383172880609744206654144331908365181551239945932586012007511396516174706816290237551444447210959119668414620874563504932122962942214667363009375593214196645855135110905245779346388474791621370373981547980473742981325413287794188574436212585983235713394636705506918183130307323677493704274740894340251479753121377625150004041097162174823716030622834628730717213970355522709808294896669122788780793024746892925692915919349278797311220724710905421527328505879503658400455463422787357974901317630199734329777731163304010582330917390958951629295438171192124836257142015448203228947314320503287424812627395669821298982603295741517646515229168317882748514293929483132695451941507488866153172342429530046971247665512033272648763654561852506236596494309863666264144091575468518955298039816413121492320544119501099568442272312496360111243726366590036700653597060739527368043762513679493841405247137632483574359447602644957202540050193841628472488457389605786134176049558326875143710408385452315662078566983558574469598608252838126290310396134006974595940719377743618452534317677089132747204241580407869075748654022560275620481105981300517151573912752325059071834367423267987238227565328542608122735250334850678242443008667396441820308180437129893299147575687429088020547466287150821640304174177280097874685618590877227390593315607400940817815291318781339223357567071586253625699189516912034881818589679142110659099576620290912757364953816496787752526204750928824510418202718595717951911646408561616840548095459132996787737312702630046193811266398804900048391555354932848263169108235424163935346476439955108965652951200191811548176826211564491320689661912657612877959454181763476162380242753241317371908908433006348758420526919993266697329459724401389545415784189637978930126219168059655202631425570540507371336913198831016565312412954564895231153322182414564336002470715549101903510446018843644532682214569521424423475910345570809799159683009785845241542223389229162190988888154090499775256663438564833083427976773226828754276259464266462315100303445853386222403454394884447070103111750984009818493863421497250787771153814255750017984956427927261374848175011303681246839048936077521276432495393281027948575713603295858745998207217678928556413216938823752667215730619082100513882572473375430631314661050397796996180162933560247961681973734646288730934585622242370463385323017108343078688893124443694215818867324284128033377632131302366658444718252441456629099030035676499750452705678654887727043237496221377233609537843013517572336027527949527591161158418559946116825296465313000565416349385283229407582685048776785305433803477578930608236065979760930164707363209948375788113395050765733052812772094813771284704212772938537145049365521650779713412589093691943950814230794702686462085268613370385857433656962814281763997537342439668232037628886351445058159609462952890792317053367406843248249377268211627711455284373628254337120319614507244837136534444258811953828773257511376469933037462051754945771653409444106373455708632200995162367587456396889699902628533731275285944217773020141355173347901655343040671906445991755523052428647014407691356993632588521688495804315324729161627657905041579167712446722991761434275088745949301667355280354093557735132990324305667067169942414085469640295510032773949440012882912136094840619945705988859937530600835486571171193267462243563124640491201647034678511423894717330483933594882469627517704589057784894065816273583593493087494771429560679375174171218264923492097860277244738270101050956520154947754665761628265607527130157642724988226328343746251048420084955214006732365572689648201126783924089911606824458121228500039817794696770026942260973004454527754248185313210041529377709188566242521654937777104962971390987900034963359274076910941691284507647436480244920300827149118347359558034962555015487689320143746308323041583349520586757316587907994319659605022753100163226342917579510484682427983662204865269156635389065779388060277632007285676855975831499241721050216912600252987659462319263173719873412015910971524013783979135292699102616386808239632883634541364777572817039506199988229686020266071667962184500947670986757338348408048645141406171863724005789665713735693167998923198971457637833138061633764701679626873306452608432414754799097602858054255225614990067702300369914249240168136095650646112015240643705943360132706840570970479046542656404309700465497413774705576037427511669514365242221419074518413217182311595433529918652839862013216297619087701229006192969915070447678189830847483179585475265537381457607514544812805501648514309866592224953310794360033463136870541445994999093306061081086201956068403284008455634661360629675426282817105351478676583101068587408928442672735437880559350237355839258928123383838682679462021435368282581391351730016402383583982859945181258025523964599563252696537534157042507823260215527677970823821705474609391274833994823868997183481896285963682486320312066702132328754951223252656226472839031518059828858952811276176682989782892929482483117961053211670646036077398046625322678337999039515570939023159733099173047997092846787505596918846677827124150401956759177139787144061908634291744661671595014891616322019721913938646611481225757460861929545633053893215271271078246283889136375126398914737130515757182492882513538966893051607162119151810365396748318288662183794760462826222559528237481256668664758558544447567241776389171677921110329144598538894406329930004777720799862365208923816294370077950440311087088180466380755481473013651596840234401510564681527376929427741405574854635330162444805943130991865001106185668723339484536590006263336811937500664489130334323809636503738880320862766931223898905492514126712213900109099386006226625389351267633678584423977200265196360829901828672916911522548380690489516435721715567545652138486922336664840474629465554958373859850870495123953614906560642372577633279941187125768045927919210111538232083938829469975751960923149610135131801804152473587859457451219530154236884919138040165097808537402059550470300448036321503995372189005560905106771230127986537664525097937843730588986830396990690119693666836230811530985494406669069544841726097200773921627619144884385364795118933845242933262270991740406855551699828477025231320507899745673977731850356457286294879762949594784114590368565114058661722374335419478095382985596557473416699257110265738976456440865451060048801782045081005108334982485710693581732207262953214515678081826742342390759283969451933252475399953533658270759216310235895793877992152380282651573211789145266792375954615791666675965801728296693359520285223552363601312961967391519250604964957165545052393372589684579831714113402658933805412376449955498452953113566553835076863550654487339774644547558404668420546896872279480684050217558111418068265226453547750285404494465275237072437566261295201003462497197024021237960604779212856406489550090315065232820462614383455382419337992104466267985337666006930156177427289970267839455880255784555082748315320193275858497159122100831727114973886637789930426245472859602806703770307438295197249728981196456499742902730376892582306569458897759698479636728104560109219368656606578022275254790006724200620495265187971600136080352219779953806885580174534532711673946261281196531996725617997375819136336595474134416573005106458460914762535007082064786563807925751771876914974404517822527733364844198674261642016410402628734561169714264663664403395018901822802234641251656515625362234699410969911452368329861435921787441605960155597175890955511567476089706817060105601821518225970861315872592382645691621975862879084889741466436916151170563148544570167240901249424864391911390186963946082356811962654186479802778636160088704762183024524827546056466311077857836581398070684348449503910807498946384888345091160669672396022755891312477861108519357974215293664650066051620595112096597052596069371122411416218720417140678094779185182077860515757907411243019215233466263575684127002746253795077130449984845386411908133948341867009402637469593694558839308994331287526555735938296583804913422899038893548095546170164712059029507905546283404587818803780580134677378230927270830441847821713395746289965259412767491937020418780732394870058055422563545647003724600349595368860734915042119462298280790308545247814727124436757507822205591151556320854580433625782293476201879823327083952086060573585070969732344758235550828837109108689896801703089123848177233202498994235133697093763184759071612485671350950821946100603090694837325207747542170143851006697508236157292040571256706941374285905479200161750840147347947819748603153907533545602762160554295995257002286616036499925287834977767444982228319230339540656392222906704403336388615411012224078084560107321288494862142968868047185924410991163417107302276185350569050971327082952659149307180164937357672547817741950249324261734550281063440839811343110964899823407109413426652822454410117809384292395790696470716759451776539804754097978756369691849402045390342091232621630327007294413470337661238970372050539404068821507838055653632761293816691447031681567666129685709165308766681063405951743894283711254320974839548980116438524080299966348598867074195671342999124636696840373309603491692299391492446056764525684218948681476491625444121347254241943650766839063666967335550965649098019068148309178542740010470145741764519909967733943008528299823876644852705149528119395136488876702795617984762266014527268280602834877345365718519985214756465416463375213461048958659413978317351314490462548282003235199354794969234104891341132066157267909774359760247052351604930457746160339240316760393631575430945155501700612783188246938570440148897292968111340987437518158453106320467535716868985520893126918775300518043974490367520433971687334381417546757166101971254377362705516574835892943283660938439862212559356633933185086269993581011935672147112916771727027477510625780379826980493846510773570065834623671294728752649645292097434244802124921392253134433762046647021628735091398574175454640798707139641652597495879557628891980031631211992394173827191636978912556000033072907161248830003194619038461978630375017046809580449365625284517289389617468148367781245720993845326270665622876781951663440338751720837214669958155141423405967576728301589817108771688051570837549894169317552797026882093206456570512232245546493871621708142802144951112567247363042519378234009762466127305827231869177187038337640998274466375789892830310629561621990139859479033612124002432101351388132264809255889729764016361733715126525662002437630686654707515294797016752004113083558952605011183981670445382528516158379641059303642836534230446765029620896938263140619327107192638705149824099833114243876586855351235676037392501027333862828004479484939579077701734676889410855574602917337997881223280527218409050988845963766508770604528662653714108608281064070038352025024409515001123091967839361346388785721404975475477985691042030511428292688247906419867294704928038275881801719980797311459172285644553024073910348345776208933598651271206587732462657665216678525176838582939721934822385100865712761965314265293684519071877521575375664857114364406059864191690295021717226319144473573205947353734950043205719761273213681635472407592497660319473609371792140665535835422420177045420088967016837036323983354276665420540426530650686554036686310210299260445316173301529237263521491612018197395673767972267844910260843641304078205633993773702150009916248303231215197269038609096382762565549368300540424957076256812262917980481637800246215514289805655203703907343727509782142954388246626257116488428052845734179378667424441705274065974932525161465694413432503439282917221165320729728906512392980522737580112110016103024173460676627964486968922496405723484823780586131072121427804783087829870656644388436430879260111010162466578186023706331702919938115960169527460812100118392685373287676208890332373433376232758353931881698982743091225034252824335840423323445167723853726178538689152942123869592972314838326341519069937801200963077599160962066609810317075613470282052971859090068285825331735873131113682983644974416698014851312989202177456635906944894438854347726392801958593765275814670196270299687893328003507668849671719424943995918147204134043416033866942051670286556220583903867565160805287438588833778856576422437363379241721690429870377932537710956551852487747538730185833602336172081305336794674510505476433172228175140904101738166742102492443431044076522653992485371707761032831576928694651640564058338521037034728983398552274573013140352541109076802760213872059706399623095925840267834354486077809858597062857696617967026609288033456380045010508116670196853790783500481230298902908621262981671103044795878380576303671898135442223624082124163465270912543362472350244201339801357834180585277942847874600836523095488897370108477693290564277138970884243987977161690525647976456496683990954792171233077019313552249317896302782405070961211215600893395610854179977471458063769839573380342741551638016343400322167241637848741608706927412364007430950872539736195530264555708249718706661523521399095685019940898479131943188963571912381656425541229522347157351376137321306899291941337534603623531251337691304043848881809512934367139174906890008392831194729079239639278747809917449435585272689576510291359525428824768919071804697965874049766788152732258704338811126680650621320908852797058101343432934344014907761631918857511259780950564209852246619874777784888755280885353884270354826502732692716788746371686264263995670584395538380346092601128139289611624725837441161186215249665540585867801663392828406026596750350650674710829317174352270657554700042394009310879486694913469228679403756933877286440758661398407493822707367755748265857944407340012442966131532930678712421067238238512281833925141231286833686390004846511511244672016722300623463619867635932226802873525798165055768319890174116667760889205618570747971496091226727903366566112648975073625023035027454072455648551632372748151442168780685677440821447254849563487591785704972126279206906512196833925105617238761293570108535557414102370540221611897179078421765963094810142282687515551753711054576374892179149920910125858172172001882897215834998490502842568293788195914666984680405599945912129505097550958079868225258480846380197388556281983091993100375140497305421083193614304427297592706501057799371140428346088072819187531797323807322787993100022518281328569821369196873524937819005323878615002457552577596726147865583020667252652516011578052238842805197907686842882151367714519359769905306866916586472426651600062957064578817523059461181115805698640289819817102465033091421064630046873996110008308581774224498775785584251942408248018596208792023528022669618118722465800824407663056090229133546861648971648543463247591152913756203352360834849007889961508967632729577193238823576286796432883728791476481156788951529017347865683204728860807450900325357869555506247383682317779923146574590440223393532301029122238045566090161922676724203645895936157053811791637336238315678095760000009242915943078563115295297335428702509170296580331677562959020944963403160711106087708478807214136217006203997031993841730958285254539220589630631836607877085249629517006975005402833689947402170777018787578462101786350929183607803432418057821426151136992059098624812704019530529574575402688689707965371753728937074658504272956420716383665546327182000851573048752936955476337409409659889895141417100810939288455762709063459366080985186346432830747881494355324355842919779009340156790766352237150119687471371829132295143843463625087025454636013443090516114035641622610577019513963408635024445468974842284090148076513931938703768319848378603660683826930686831810242569961972424688808405334349197298095408903023095712542679070187628876179008887441174061234403752269700554159262996947385272334335117101522447662180737300675845491302205464067796700011294161388001573844395957406123784150597242135815994734769446311858494755280818688850986039395242564718623670578387583849567478727847929346799995520798927576571558633449578530391316013851971758023139053385753605306627204596978880861890323866192784805096845301938108499192405537116764361552742785566375110087063599989487773156874930768903648767395862845956106572411744601320889298830592123655107083911594827690663744120820366524513040998163258181133940597182444426692074765874116329311072703689382766004556869457019292213609412819664333180431913914154443918273190326515337242319089463671182159234809466885433120672402402147156128670087089483870793517869149033796162038621501929337508498312763902800449730213088396411348805967480075236086710907870534154234557676443751556073585002205123886313230952936267696576751813588361983651280312015637279186497949844603537471180456820155171883347564784320902570716572849434969266536067946599507566166294819773642068637448364868591267714327578164263293410106831135684282199310502397626004533303415221961575311503521284663592694172838671100403092384165927560023323329479610291472927158694398041208924050388540741968454665362252551322232947530077266226572450871343133445435819858373574666635552532942146012376764089333831905728062084984534363006620164557130380907788693705338375598097430670031139980790611754173320421005737893119796939758974752163062841203464099241418370387169829248889983023797663824162961822498738522182192595535846811052246254395218273742286034903788646757230909878865269729240808379995822237848990600078081596295889080980067854311378159983974461484827063417555855285523403360007900884243102354130506999159362448905234485917314095011807521629604779399528151127001243756596138996356432855538220195598992770294536642120709439053761824454916281962361282895020228364802499185063981486541579032917919343847238541087365223541845293377935749605999834710384173177235390249428845409626594029858719564351099885396164733998800084024013927430567028792381953650961513463367373149755093070864000829625351200783229544678337326772067964312543453316008569166283657917039657151008758882190031354657372088195689085276677145706684141714117715134094707035464155144876718730811427522020230072934378563263699237943573709654220124490856799485660346852628155918655351633315239225020141121861459934150284807828556398519239419692503486449596482938705587172447766717612818898217093361788507205666698202100822930220752478181312089162107297546683000627155009320063364032115358726770630219794040785409287277249923390250245254847610967187059254547603975154265176209670944697961474614583412669813417958829374569568147484046121250238136009091814989073929788614039860926165737380057012514556479195070610638920718790447127807179449194149818766614268094117656817937101013032916199314345580360858493204837079479114436769306198324105432457625063836051549003236132691672713458687072404996984076655869610241508215625477456448449994691134100329845249385010816345320668236224441603195316741640402091973064005638184855712752385063134342104928334030460713768810874323789312861639474577595621274232166194063142856557817891229653195762813909517069142377314828238935422548828405885602677006939982141239691562941607639457581107674781960020887057397671754272722579229767192919533468723994063166940396471702679393004970399088347236067778951809506060204168975590055815709415934256367775710837572085638953521146645990053106493915319253133811052969960169068184018618222124686321473315727419336643763687590578735098616260228674105006943329095194580856889365667908082151676214732547635225431895430408620300023374429952087177331233207646483578779952689741983051015623414551511073275519506970600027364235736706700282020333563071376981635307506138393350538022583832976000958985382506790954341201954119205540120655893099645148724354134759731913396349777167693468476836708699744927747173215210813231760963937544302814772618690598304544704767021381658968332679830500690470493866613714902156011130200023279333264545524142529989450803070830804416878132885308658617019899208539223597994743612393803336942192009333098195806334136486747514863166449773869211021295052689215139083602994558205917787949408028611633533262742577381135233260050284184795319024957964098615027384071943521880050430926431025965123995988312491078093948196186619436668173497443510524455096643816747883990899484918566625107079608361275072661299005265342123039455506910321598537718659224801790060858620152631009754501023436306920243767223849889673043751548744831016778735163841162609477507557869140169577139158933303934177495719276302201355726065695434054287275979605679793876651947378888611871956411321689716927860352207833530652479699742675434079923657200415353250524854689288075287862196138485870544835741262793804478273216915565365192834911530449224175416468374477875749573168667948042618899501457853998655946854732141628198001194918435996599984433996987095710688987843349214604709628662349520861516325273099557261955538050286144787145322206342566601445299719309877862428912091860364173621061961505068131245465693198594492521234899448402172540555424807103713263038213403420264785380232242956004936732287119558685829413307537753793966678093021745356418688113695909520546269425698696549094118076600144073205802724454689112886124642693269233564144741975801919093954828565137743102951377043206253779871933305889544329716379401367123950532964148252625593046928392283264961205316333161588288876876027808470125226708236350159520189379558720612881133254942728412421744415460343809170839817717408939351894263832231693791493275540526934732568578900254765847882886919361434268312493196929261826099416629669837157608096939461131980507917411409125806247282347532212004914477903444176583132063631137732058180217507349011266165885926834410276296711625098131712688096418451695061566830663625849682742373559331931940634528584478805575955308130791084863243149348879600838970829303846998635421142659808541137972097432625220149750331572987486130711426162753323858981473060246709127334400719899587532639078232483241863894586204340732205667422421162222585712089294631233083141301233834970173697365201877723433395276237103106144976996070568812982945639686887495548340126244537888653243001428859097951090249456903929737786793488800950821905925723594633560408655103311015789125911323080361895274104748397486041251538945237993692226367331351497857161832482134338663533492189746593723467181393075229483588193429419367518714362462225569865897665473357951818672937637750671292566059637756152245262448249843267792257868329794962749814378170178944663376095805583611534380613959703849630425704510962220110135841883232227559177243159831021052459504851331020148919234567684218026685634185774660199111249906489996047327081290869985199878651386516623999500296607617166562077513845350892146930715321492177594897333235296881904444762569118029486072298050472489901825098725481201776107472066981409504457839865580534259931561369247964078036776190404117417424975108338618627987497537782952953577215302739401278906501909242794089126274306375505180836968696071092277097604992269509989581539795428196316294999474055634357578171385317493304755803950276635298963024829394883479234236350910115996095049415141424063203676628379206033989457354201135973511266378250709914713370921091310713836899135897060566508058958754236245719494869481705056950230624964568569209249534481720679019586261915671102129736817968931410755669010066456098683353114797009759890597294781111290027137779123282507925523194975777039613310566316369607566667858631882341772827580311343040406041091164343300182274994004585277845412083274046968519980018669130938186483502120503162636685220208956353503724218365766902685275414901085254828955799093406416576286687002065048944275721554744670974900046208612623800087883100863734840756086640456736239882587973432580408768091547669293277917843120161727411721558857546962517064269387349916362067034140719478641005450562785302851346258721756930777296563020848915864498505419738539467957625076759912586411566953085331316624765178126357293494034670573788365961154817994406129703479941119470220284044075631038500406509124207287848954340758886491328762723071669876423380591787171114778238409798819211871930217156025174152207539168013261430023149702220053700446471180761429385197372636532389264153559588733882293568895087108248811851480240443624098375781259053355140358943176526352761268167064858608609354757754835021658093631084324452594585563598744642624959173568505244882965052271897910620577246489455198670293447576341652727116529479655800954799312825596979373887279054100900019046272960188772481172547335997808635840569391024184658232893277598251961676255347108381390822712635725592372034747981467255055756812042749941092978483934415348145914090118866570877415033923979630274675373064463374573332826363433315104712198876394860038728926935657861376815942205824690652029473350674006098597225434767313920761781977587500786238632536098063636291680148892943235651274595582270552304385273042649044481255364541833963761028566744115138528181324228519276489298829207944576875265413375168055431288643620680008220043091489963355081382204342475140972369011196498778780037220474030210323379222582808147751641004780200481090396983886801982623364561878894522579364740146319142555257020184245382611305020274622057619421958274153461569651711577250508132239325814578524404874498131951768409278955200304629749683132023768073733956622225270596508561433787277834034212820482345770230964469216835988376136287011541543520259723658020069070100198413700236478602466820403176931641183010345911144033550082160712947780358455686404742147651737874536312623658270547373568860253296529125645322706888248651728286093991540366604157065549340749306154689720753463854713145680139831134864571190469952124229241987309416103712325880303412357045701178413649354476239374514588035355135576809168324439902555182917865606743225436023968420093154482199847902867716750986655007229214765532049313394543572330244895042539477818079750821537458178468682412475917985037245783094293681174298331949743777004032362260710909737135429145384420029459260930904396696032958971180691458718732631176116065352436522037328445802962764308337700648645883178800461990664238387077200886714549985181844600221995080762282852283294705885349262206802591198462369407158056882212780803706724449883414044973446021474051940894853163929887640864862342741836742887677420090071112337373176617499478077528112243910179838407407231288531564648264194756070899490566957867683465769083231657227810977092400613621183605624680262857303527376948845956180295228561567597361673190729681262390930251633738716182021726569030324359656608517969018546798361602017414216895001397971770196059618394494505513931460266524640177414310681728480973028137757099379119666616104170034173213104917939993571823832950025169641896628240457341950325742803528615472887318086912860370050686324873826478226823353498769311897734192067564637550253644365797847691590194288862492795445125404863023950256638327982580238267083079134368327941891666476462247233362778805584416103890422798669116509363386901019506760179758022761554597416016856071218747348386786240306943266938731019477288298614816090116322416954235662186784446659522634242529446724914547051303975327749972666150117689136831445712059980514657675779500813703705870269320205380966281909693409953685070193453984125741470554959373095416659979049902456156045340570646411595893862802920898518496448994311495629781450376371221999435482515380238260360835623527599686430319183906104169179162597802915457262231194644320797397777725699582926235917869082287221448862782125937339940803324350099634170545886214872937590532427387018490875580655640440119985102407861200149209277216686577114148195287684056012926242811299389802339890951117843610679823842975945606986942965700261612235546750962667901783631293595709098356201834723294143597261329731649611469080838592734086051804678019545283926930546319173589643830071962682400800112436403162587531612837855538932524036266321521595077116609547125185337404988774676912906800180000189497762170140033628560882095897787279790071340188839540662729992015884863791465580057953653832881169369409866728989536665308617085251899368312135120229390686102052273500394330375518099512096286584792477878100683233840248859879895684492925582201434242874294080329152526268871040984611293001354570499093967631543180283323467241678263213112109501242242922289124517564018905312525208893194374070018505963069459741502240269323992457056313566603097259735638341618575220317856837279865504458557927964552716631876122349504751829660491705380636498395934494994094916988969352855411648453205137751124553100469531998474651258560909447464477390994674314033272773487205128156126019855312603159936374522737332061348733682818295764897469169611354898020279109715462059148161089666748825797023440824332997951378453925708479498815896236204050470887604110039691272797035716395588869206027596995078016691104150258540246741654056196662466494235802403746396129122576155815140522475956600703539412263478477051613466601023749458797934577832941604683933405609843477809591061146653533038829740858436336891168292372808031496554699124627368163842392433432863685222854307652017078275150189855480374591126029046839004483192500677052372987840366081997000039747493055655704398689267605140302914022702342900844304092101685306636953249692140613877487703287510054991261406734114010875866411147501925850689253071869121357900870443333115849970414834131239811039605129739410945207045617143476817286656252106269212939970439745413601979210969146163683236158447636879886400962257814204189012887930387355305627482370925197481799239795599797302638262935928202187362493954577406503921523271571274223554613992283941377520820191832392582364363213526403904627347347036666631567058268603524709815022265299855382969722404624327589145173983177606670165859056491131931084468194187261049526823513203653233625080918338233580618573653379988372435614358390191319412920590636783504622106654462833281144474089205981492151641667443630483526216081232796644606836831665778382142380230110921865526339769527879998468716236164006743394781285916155010712764141115492346100945542730936552355320721566534582994553127929657501642667582351572007819276465280334774976759544958548198836536894231251539377606238790744381899127222507416027612629178199264926809440606322999330188756730685205003317503201940926135884676493229094387244572770184654032169150416637946499915226144340872732617232499391598087395925102321709313823205602802184300225713348200445737960540958022204081381388694337077118424322742613515225374595618893533731536364338728141805899502897403093376093068102454695028365971668653138531238848945248409932623437196253610998920565213596913407084944102292403031779536210127172851071533718836047291295923084788217363169285274185852825311718475221750428272463733827567353552847222145479689629772408822381228911627017294449869586546833052560210560042275421394960815736837678407856308986722918444735122185952374512230050880256587263005454637494834615171717830740493148809969370338551179820230356806532856737521662453897267869548870138969575981012655576503890333758829623194147633176806583677028702039418218850677599466674007915425569270499263309874423029443504152629181709050860474688376323534789379158622877714076521169787398072868016170673301613407292542288259190864230377041279352687505883303229724207063123523270585922676584720127179469546430179356335099561108751534489837300668135987576994500495609427065879970023111917448075937880247837000704550810151911735875647463472151683723245385587134984567887646486890746766037250289189553665452829626382260775320522878940949154509360487774459265711958713505842355575200104773323640450121031682262698124627950226407323403216853944083920880826824326447724963405941241270429065939166480364150771703463384273218742956512460396014158318598382593472526633057231124186252183954678583875843705838517292534388390879022620621533391509410572983162026867341509420101375287620402484193482270041672974675258372636300548944382130028768486267271482827328810513939322591547791259685197148890192584988611067021749115529369490766421659293524478777846835846997572590392656747931962692549181678144032198406941797735339835019242522194415386487757196889089368384192075255259946972677733648141748667986085041429367092507245727891417229445302143223680185749188646111057069678963847387686667658239167543118826906482332636738569002799973833480191821718825419050778082266648392645196359048957428199165459133892583108591882879399631436796044253590903611346668911158350959775261080440286146420026293491736763721593177233171885730548431778914584249832776146523323321433866174158059563788373236659822444044329053512483077407275095242224024249576772396430855267647734238633821807996466951032409421910988724935179483906862606613677271742526729381524642623610904979113829670409986708676300698325387455223360946360767702777827666164422760372060155387355503189822505070743911431849529219422423114533835370744917253473475159859315685136252326188642442877121489086492726787812932963564747910427447356029561080509743923819743160349207458820628111980228560413414065942327781329545318958958730141014635316942790015658942514783353413881001576804041464485256279434035136878629712620899456972306954069462224241053933045282197970089181023206525727351241875260429853752367367835120342847928718837116540292901841578844953009378644548658130158282088510294338208674959925011223752541528029208319609503136032258094040052884597750927140603148266358124556616271957368902479372000042916984502849683265185364311260791310093652584002831388563012115826969164900436057884318748675321628200073407412512746039579345172796824123658305676345315515724308174434977522948249255367206761434057863390336038860984594751659270348815042471859622152515474150032409018704072690790506085234745470014914543426967266274801308882509872547000946041140080736818685113752252043101487721403682066067724458500481163761149699312447218281885875883610615290862385616363266853262576152496983804751584204952513559223837117146977884996326001040172262020067259128162186226025735097219036494592282434978627691976327827827500620455349018099156034302500335920388763298267878552357800638582168640097619228937322782614547831250494601395341411436650771800747518848589660584373155788452693639456277274048942094521335247184109559195410006050050855911821093927179861531008696399324782178709657556960425479415076898397232319861618371528415964162647008359275776489576664130448918424189084626472180352634713393828730984785726408969831261135139613128358213713352706637338222187008735523555613420763505144565373357181558194911002133402164624463081279661997454479462807516835834292928414085494681990176032372315118574029063838228171207257315211954573169208185048432357219446192590702774465940144007158949998034089035299430877677025145187169787987658693561559521534392295909637716291201853920779956701752853704595607885410029428319974285256653940832601494307163016593989938386988119807500132331895145544914218217210880171995485936109920232664846932376023614853514393761395563377934561875583630261416013280306452075104056475700247486618783886700200642250595894162377876751972403772268853614350075432773716757735372340036384073176410360004606601721941621552940687445212081447065578613134968081621350007302916894080663267696099107484007072248778369472063648668047733197184374505951333271663264083355007710759855843541851661859085136694863880622040120328713235743435824765871961646498886928733191358353115823249345147608978323464488801604595251699703746239838896611579846401818606030902680023910078962407854532163467528111238389922607238929518346200857780935807040167534227512952497284274601127445015278494685046962827824754887447642157331165936407761524262238537720579891274857341893644176644223458929022384457122801529609020137075697906227312006805671152484403031598951119103474624409210541892194318770409863885837514486851570273572995904366140601238244155715076317640366303991936893775297921103903861402104731955040842298567833976845952998114429180335051840982389973060714929871222433247433165916171315823874899282504151219604312564330162220673851163326207364221318273183433409549509700006579701601462762318095301578784986571940144543136915600335731807485930116378995631419384012565282372316929862568035625014371459049331853520533708095034228354476536945713362897441178606733777102404207385454640524711410733818619145819177837107138586596638770122372290398356890271137566085764473259865782470420742147025116513572319351188471799290196893794721495925740213339072672417830930986695001916808075534802084334971540186378111209043530184576691670781462572611922756801861654751369631637937367116750730323452031076809490924272527972765006001582219621804351249136192655026130035537196985908091854340146724628461541192313019513413115397860713558052262205901112296435014642651564411554911855748486547967925913548880991156031250161412474831684206227679419389691333211939897375357537854982206365858802117450666849301871910095491343200761052931349701736476792185702908482787155006614559585992712790184583071629357321453031667777540598025800693654401017555034376560375327792095680617555143405326181432052778571936338705988747977601718071898057469582483097140204581704057276516739271713727286165786575656928863275684433563129208409505532232298544611494506593440054817113018805803699928014457807140712770750390863787671760521712185940445748889645333890948298608511451288044144069890655356294073648044710584451314575811135344939774022553691012354198026729737433977772642471022573277733790940079220416889919560944162714844065066620731936509083414253608031213314187944509323892185004022263529223260992665070471172888371551097753981292719064563465907022747664343760834881932013634048315431913528352817020163730356760882309551510135618798992771631897488115770752977984056237409800640607173099846231302532695709664807191946263589763725557350261874646713111835649966554991612873323425310335593807390760476945876470910261560358826100747965829362367750449830934144671427773848329912705747516452995865686694211856064312048118070459688513331193727600842437887832512721540980666829546337885621345390009056715192324621136209571218268412188505632880392390160724765883693881475961167347954572454155776073107448346366737813968460424715516296268279629708813951564104385717351013196663919383494160911515738796285526519956590357347960251137236548595606283766035685971928673125551295197093482714104218134130156461587628766445773498722962175395891625720543018737441322850774599811276068928117696592876683009158895767652186003902689369840587247333252883380502224252917774800777443003015277176740566152804192778091982858558998798050925509318079146323251553384712191986958108574421084757788922760898215145145141805788463103886285185492284891503756138929521941907069977663428460910927954247889417952051579351357484071241645937475483533485964710482865597764448843946876314019127936195237474354232394065860313929686126401533873568587216585000535292820375342119390316039101600110322904302044480443246482404873573215377285858283558927758720004962266143000103830622225230511699532279366286940862884064082354243584141757938074047341038151672357637231126351895316710926216355751835532145074733415485720832498411126047575864929962045641493184873540218949283928441568157647796270767797844039383894190439914869688505226820510445369452908141388635062131752476205264385353110674625159817416467538302301050180924953496044571622762911361428926369577836235755165688375724786862758264764668412041575019465904582637350291699491848565644664876589763257883507917697025191413609413969756728585978003940008256657466352407276562377974709387921562999362255830562286953803697940682458356957693238650434677980510343066962089599702722504664921779875364263331963208198410627171358433336480660033844729038408111897153378108784292115160725360522408251114792544374844940221472145141353847778867671631495565765020588601533819152235632660131742932332594019985612000718685375870238503061654647265436961912781853021505118397065016390416898849387962857541448470820650656171931422917837108603402284653353567260383560097403256262374110733953852086676685607759694975243311563162193523663906444577174370875267230047858392585939051311463516355396437336355762173483751944548769620032547095948815172877970592156255330167477954181450846042112555440145821989171331445265732046920611912340746946718712498585783316543843662968851331298892475742620745874285679396138170086617631626160178898145780696774889272074015748306590005025430368742984618143523800730070880720865466401770460841724858664367314600285940505067879400357984615006469879296500241799869339772491155089329016805219229357963631034452781378736888235629177599610607235824345729484469252266385105922789747161229490486896634519856711986840249264894097356273174172070372946766603728260475824593540306794914494215739945415242915507758340782391562868368819974493080877738962273293595296332138905251866409746508953047279437348482347923384901492449345609732465763586185479190839387986733370483214989304482810213828476014068646185316618301436698874599277621947187995264041734385079904861024710510566565464391211317647349716842179443963434706229251101584522879419029080873062695969446275159474105051184011439894001164169310682427330182564504594822448673192679389508654049816302328556661572865650855074035888160433247295304322492684367337227641029827843397973027678004149843159315606307640501959260770830158220480098631567422582276291552709964806127011372546147334981664334764460448634556573419211589940249069906912208518268668855417356917870050649452899268154114579055598790049201610016126074999707576707602565134225536017884812686287618331939355790520055972640294987126410780966234071654901363445151643406286220416941142710109820380943493351374776012511803971756191457930807168541637114823631232363216780894018787342063013889384134831463709870659852197768626374319154883865956292549436569620909731725752720099613880690531279251430242450932764036942008481114024824802604290933917741994922822241509046737381211077242157347738848835346888088094751377817858033661219175247229686894963694105354102026711020451143016236554086968163931816065958110396813314309546730182552446670810554442008599815004004188624521481275076906727659147731400234136424403779633650094040290786766432153389025012437513645899895725330858478653934458492857668388673519912296367023698236115464032209442712094682000685630748685529438771464218421169831687092060929507469388949114290512973354935902521991170821449235361345172475095217813405519577670228822887488643440413582098792358866308925182087624436058409298780796299248281918872392777257090711518097449619705548557049192834483577613765535441407186433838040871553254797726869567745887302364293067432507379847107881707324797548237647870530518056746791093030921325040444829472978307220328953746149424716970255641210695127106132918046454802499479516178073331501126215854162399496049618906224554378669849811384786221778882915304474246209019608060065543495019694220782496441949389459485056266235879479004338987845371917476035663659481619279563378521716150109277535284056271205744034115952685899749811082349158719240119141131076184000748545577349614710163846028841617632996568319673469018058053130229585821477508878171043348479214687451127783543641817024761182031979260409902867397433565413013448277845214365540715406422111585277277476142988817148365605906538055238188659570942101319916158569695111440948152866823914735094217539621985697433843192410581788764122455689558500316143950971381940377121321837229579534854464916522025558754729844555634841733157747231154374748722767977423752860231238237274165571318605496820607984366882251477791201301201537021145670760993399722447928382830561993851717953626214859043226031134173492178702064797922190256007117770465326400276148861763164080570536252323213972394195969151870746736895613795348909237053736603688176159968426577483831748816788427651742401969510446090192970900661770074998443468817936735485847740411377116896684977395565383962468476477530532973666036665806300396723322849847207182632777192672151056461449338730195278797701731197489836636863904420861341683782637962123283476752780427894331423150082019313838750830741653318260896458874242931450022999911901741292359826515855141010010900099966685138834690048525407157546496704795611695346272463679431598029118653947687703084004055355865658210076809149830074358917445775889923518505066150219301825373944787745044327441149812047061133514177991856020892809070683824848079724151770599516123813230817339151503894070920338834812824917862172221648105551551653743416281884775947588067639567639335868741867246075196461842537399674997070581488352112819865406823099465254646562478295375931115561118458078606387970887150389481974256944979635524944572329847054141898251643758926162627049011176801698161228958996836637698217030385554941027102936852309119597050649749958523534869346806337205391901450025819144358537800794536906337274054336868686701444567595371628451389700092907898278754052599610389448391500189501969157624670333060403167065980814741608935654965649888039389450971780718463993071243781879552940359976909150292413049014886497947109684287105319473863184064773878355848574875573036349974221074099184027624581064638063339512614134472788214085045641818981122077763527714217593080880425534339698075320573816141973180666120483859098525585548435081745493260299447518778563566590169345925812950784297486883200943978330078782605878980175624237014203561390735618484866892970285895253587772505136809375185337195067659423879798054221499392801068049854022585772461222749547062431501102696273091959631276234401662009280684234966869755347901944218843761291689817346712620410456055179161212354244408670648887389587852032790510518780089920805035611497827175072166478064425331807706560916021143189192670558881695536871251664106495824697989706279953610764024442710871592590048892466608702881489308665151138110790486677585965091608632853900616431404856740128099030656160951619135979738197724282223649171378815637137078534166097919493376298823789616785734267467881952111247358232070262620734702781554972717159281503293952525219203713875543832760170500403822132380899647216327443431070335003938926090076700244428240988052035887035383914534713798247519445067263217851119404859067402115611669506259407519965883402948210896197960728402474610238096248008887761713574665633349023284571423921959824343639309023944488849777101282001242060091439631262662631122179267350629829963065104116031497660470673928020048965673310932151762922545787448434258283985284804011291565206942313472466187078288471292562268307884631879783558970826870293148471285033066883951313493372257169383098379999711997490654568826284266727211456498789510597955255937824952702171436297237380182142439417979946874365584466210998193564915343721318159381869834806951652797230593107488045195605453082258890616828400584172761813187522372409731216172510999466230778059656695874842605432742702798773757103521743553588089811989417085566633030268536839123014362841381841976625432393209396863633584729110510218425717337242284205409846177590547367673239997740033361978196836682023519999553153449106653090734930629343665945332901045775465962904973349802813615049659660979233520614302872957391482935747182422148770505449560203907087699416965849607852744847608617372904445229566896993978278529067505866884398605434166548944450623322870001077289533855189941261899359042788652491245621722127658908280624378516875940100532053887525344047749136516429149287628926671693313041351027896730186833995371623246148500472434114557553007114260977222489242711088235460512170713482475617382995041488509406468719964122366542053312717869260125183513571111883953499146077188766670590916335300099779197526700606292712863190098848590494526976130791441810940281668563394013729680374660038875122716415761782132603019856626284645468356350366568291319470666056569892316316784628841092204815429707219638913585014399364223960145533013005328465871053964306362788374031141394605626706768093218808961081825117282041465068586495403014458609125753503515414090188873824188243825556009252045971356935071783126946827305809547384833421882150260324152429389003868603914854044917380047835282650071951113279062057027329774212911887790576612728034611031431755842169197228586335859953949536878975647259986165513764473445604663899552519249732654521534555289138545554844627085609245742492511313233604497266066669442960521766644133245166495098501415974563358919654183610398739961167125721380131081763232893631845027880523580798542115572211688231002090338500083911827799442985027267883086879447959960390421667508290776563178479978511216878750876949195530999895564179082414302423248242713346866996383529376564962787977012176077189139765142165462129693887951929652598986414579997642618815294180252479291005369756940540657767984223112229864888658913846189868303267351453724147117730171880163410720773677318656271037311752627956146444583453896239261461253471526546188366075991602880521665076995551439411256052273667790035437842738168394204836223825099159174151921442557919495895317867030796835019530877969102149150621424252530879675912889023860407275362293456119729781308052982751583460656376539150203995120096178518431256695236510455642013290415781415367448340736070024520343763028732949090958485480423554707024005657678621724650562683690900607773679984178479826314488678857830934026054739142704484312353623523861989745488757660592884342148469168737478003379219597054338192379098600125479170695973767345740363516919311935451470525192823325917372390490187473880222321488554341209918775058590982378423845988415366962527070680221486526961947113353909220573338513922287949788696154702294077657066589538881066463820899004184088596345255127202342559784931630633210133569666770034380395438146466801600469811944421827725722584481011412368164939053796584532949561186164754559581485750672983255104045368969054147552623341003090489945824647849167972999966983693514570149015669506164393962772551258757864619485072985408622994365486355337244111064220606941090418279392585913212035568099809595975219820171817964140293772437726864297643690225480429132167134139977868078903776329555266004255241276918369981932605291011352625885037739800515003798571553665653779573614800964616766639703068223598692082745364136802445942909394439810152392131128304832593748737715182693502691940269690625501878400391067573161508728536595604131961857434001650393172479315027486752905368393598933076013367563519339164006873286189843407441365077254486021609396996392027509153265160396957736211833193933133657065325543443594393820846374678823073736907925244282765110455442634966618595139382868253021786202067229282125460932825588134465187502399180411639840658573264671062055487352113507841485207737216079763237668256908720303795905239036985462714896379426419250868834873690443845595630614850195797865348073193239459530010771973764194697313867026450193974109183480454088130172410237069819117764857856237000900372437737542770382825409676571279800080212826534734703975776505489178411451840367142898650984879036697300511206923458795222962455103409533221093911693793344624954654325118676184857748777918437487238352215006229731943027417158608067871567250059815841035492671194833440549372819831008702250554445994730119902556695970342014189534576857841460122247031605299074306880094005628887969039403067402663817053822664067107652752095817793646593507006703645296381116201161656879742134407434349074794957711180537845028914362013382100032971648914331487312676110175732235179267998433908728862657788542341018783285059693244775357344784682005521344650891127464105936063704787534026269789900354788321975426136017678779314191258311982663605501254437628089664739171824354262407189058986040596566605333254361754160939740708525941348713198434933428769934227613270311209654198579920069566768235085551219447022689403649372379377392819617903653946903718206343856163633197834400454266499870170721788832449320247844371568950487819213763501672244747975850836445104592803169579872723700575743368419123516474962943021084206124655598402582101278795282948871865211544511046523749903979351622449781681627538878761557231366333284771118311818844137794933730214277845837620905512603854026430218826189084905863297143913643737881885736981136747011866157041517731789691128335591938420286551878890609119670947231764675945593167061641310506376785659330514268700338200721664684391065158904267332194626534537490306063947751636321744437832269500384261728933034040165649849176265171863892066006119574247911065794938709802105930643573357775779868557075695547407824751235164829429849313322194968558624762601214299052312457331609745516778682244804185043530109830212929278394507550528258233012976290913577440126018391526121593953797267781664646305815161573769470869916095705613384638798246199300645731379207806711041831299352116627114260831504463504295272442214828587722946828980457856526412767411121047384543925493315214401204742333069649695748281091252252042376870373304987734170705227467968455094340501651091969992754129762615048129471730139349474430670372446841341853294182434687486321654224579594576783494055100286964355048306887269325969965654686125386010884193922606885695078115625179134595221249214123271849687256651434767626683828162470413559912379961655876258716424671504251689813645089954912778882346486398497715478758636843067234191216569260185920298735164418788855454573819461902770036105094707375863471578684758797525124516531842288355895754752737938310064576719759999758957777470348163968651316792773337163899730691718346922952477252048772330873789359405243765591122007985179025576468400338738175950356841078684104806340254834905659379828706081146100487899035547784957573577049791408373347461409935364414660517491098464839815466713162254276420208533993354992462241756342336647133349814006254694939554268919267851050183549668194393374178520930062257009306559456928524279356042353091507809386963071687409747471523056195487398892950227379478326139664915385599764506110002808747854458524770062320108332165610895610162377796703235692802985769882785549390345490827144462945341682231352850754743624335681110940176387089614376115902715174488202909767388301996910808628327379665541087171424383382235890219013451546424048015254339739295594460017946604605260626113266557809673413015059767525909748978390677755705862227678812996861318381122517104331673621872499130110409212501178768673951089411884417830425682839584487357577770164277805984979711340684806498472852065495996731540735752270030775307028583651670586050480139054496350597146973511302954759295434942550466122680872065587803519131911657598839886199342470923061167641608743541612681420689296239509788094706480626523260969259674606907969908328412271605777133271202931112340562796200839762939499690186118114902552030856455591234493548939468760483906022069962215233174286290849282763789205335668159807672402254879377391153069808512429984967861345133476953683462900161237504534148248279812941035652113985807266388970016363557815021409551877999367992247113458687782864988064278581329463671810872931459041587480253001229266832557554983578736916353422604695965461639315988866736461895029954027376896718703425968717139304689335980419034650218914740682943877356451499416429812011403203777889625862612922889187472172468316051244686132437392235811319179900061912464933577014623090342798892766884633600862731021677124162817136375227182966569768982326781943386655395045587362068394956756658045850983379734861454883000954926947140521465069427868764794776892652835622238878555356952784990383318753425928310840484877501069581931784145312545696949121680636278131289121834923110970273742020970709860219351695212821840057509466379947108182360940155830593899300565192788832731223448728014061018837202129211505767089750156102460719734550519288459207140823642277620551497494811552088289246896996969067392400462955231533985234408694436477702102033003005473221777804154650173228953877278487079791676719438304600780363539834966395527557281647568019354808748195046630061075696293541743342230661025477142991326757811275997904057069442298340267717262107124371200938506395458529901963372635494100759419623651944277671418213785988012138331321077699021589026211733706031997708410933910558157009693468662489794302969819681170597860241304782744258229029746129736621888706381787726921587808606859428173810558134354608883977275241815978759665151422845668048988588171143042073928020546228480126880775564259555622974507526085207387987931283850598237391899735009982890307907908466000212696007420899130334224275650824921664771089667660495082157470715779984647397078295899345033636275851706098415478355100831637180445356800996365952078373359799070484381270237164997623210742430113798840971922472597598983160940512173946514367899248071377143429232510507911824400487239196487027908138890096412961652430219695283636024758309910163943087002250188442670670254771351180430380064145504333571367685086056955405881943281674270620941086932456842969818072581971062304592595201146460258879287428933439979815713080596945358956224979728080341102585932362366485737197676068567080547426594050934263728271144739933604889021048407784088953581439389383989763919166267556225472516547426372323580419793531498930000850926641928355060916398541892544918794184318095504802584506640177885913367591534365185556343631479020213195914455626770095253718211810496767560631555098977242469891433811266759098575533060408672031969790956568711767400412301369210125299740442405859380695428921322611513688312607850545213521214973873567825196034662126951647488099258713234031577642736775541067764414220873338552387053867341894442396033451911518859338803200146579063779701646213932081946716432195688707299333438687712981188717841710457983746840021119954127348895877984420144339554491939584467217406249386652239975352113085176140235938271195136043329950216712100537992184989306130793120373288415026994102446846244132774994379110613786493368546196037031973096953556311330517490207543566826850366918337367930238829360812870472404712741206345956897310181531145085104680273502681121782619123141886755572213849289454423453878026618445810438524878738082882413970646710054447069291077210696703677873879909982911223332125512626108077163149564729601609771350511832209558427683915578489329688357228547538804966701902890124082950039939289368858220056033629299046125016350882517119347205068142629696761328415199404592385782544531821063287942012185592432257152705944464525190774921569033015349639768477364282333188353112607778204589682298870852390245440161285006625035167798100938247929242794389135467585129273186880732121221161783130168899200209101498045753432149856501865882247408062778870779868000177059325349181081813692634802585289555433146929398688829185612910573385691551158514631599659253714403205183277581853886980605610160859482973702300185701607514189622242780739333214231996585689822275629106765844199209331326545258250701855465768878339158419774517398397695696058509288717981517896540101541057320182338303797672323468665005861084024356607266634646574906927036542623169582394891747613423917138897717980841001539276986370017014622010005134613167574896059962598092454482305931698029978515799074559607339799291172637851512463274265324917019882554070745543778832956451174958636288404799869941950515328437181556251205106213868950888193000064450292135623501389592714650792228414643832356925956152418182807476171252647749014619645938911226522589986296916023446055327631722549621470350642807717926475841975306863362811776976479462087909156936580595611527755663587091327603061927373900213686529056190646294455158540549812422399725577793318185004624024872951626500351114283307392931342239939936234734750270640430938728775954478123968070325122775329357399515660327999093087327937132142874253492547051969693841464047177387824079419819594752632969729528485838999450441361242541395936877508358722915096588885670619265264836357443346595974540424735642482028086843569918885353895713658688811892878313951017592780081432399937469443808991102354034287264850493888354605848012120425187030428434929835907478392150361146270576245016910238920936616176546089353698974532694120043335862298050969638855258321680589858408098739582983532228109859789876092540670446992901471785356856821718710707838866594810618395276895144091463160387354402390480486734827468785415793099629536499689288970842876921466964905352038042688553362273713246655567637806713696955607590473436228382795938980633025265395820553233826078646592186872681008746349550763036296966013996348725459286781570574990068199975635842253141292351999669010073877407136458875891025830401119226525739469814250016001113263054801693553612682555402603096509864213849470394176069903820853152813216093368851407716803743263823833590249979533532256967051574512228933900502322475085987364219951959992443567618185058655639558636059005883689550951093770735445781816571115225944185312277497159367683524090408842031432303978243753296827822496751412681468535863680984302800617867420829152194336888246093401401514554522799033909299505973636121359495945187953904103668498927093169129144287318790298608053550191474364320816003854351187684997393793603158125244095784767300395319796193261239441374940132946622145225270938755985857792646691972252609120044253804915517658188117536841497489394404328397788762935000387164929749411055364151182393264562463969397255419285815305337470782517025542240584135033399650674773925626524655238989514671816086696858375016717880462585079045169574245888478062643659584693679080455033812323952991297543017738295149538554766900281171537382962707975256469803278243112065715210143826592463272349326478219740099240949802556463261314957320078824335463340310576686181754189742684949357055667643729001911141590518267394435529905345136539012024833207182508432385564962264453481837966806244158111828377196338103436181597081432842293015382555500170289322266371003725414404993806918014253715142805429904555568992464882939620759043000596715922983565405998003096505077155386875694020500229605186725580958840034939306580359607192891008088332010038602887425341923655524252438846198013914027284225059702975546698566548708525732730654944742736355425924759349654156461686724317790072839307572495718178034977638760285966740627670580328722725739424090103330695995339398678141050950974768135902852712306251896753491511701095956868995538072998386644109496538530107509377667444535836850468115631020371276384958969271810264365810817336978727483679648900813895610349892658410370612782484809928660228205314124632840804585873802478088343212650056651786339436702696293276980803435821659004325691394008975190831139395036186809855856613105427069709094453826643947031940994226479942569833478088677650372889058504656926717143138362000272174256163851404640758476490489541741856665992588224450635288512122236920944357601215860707117689174898199126349174029694235397841081354036859971822030979568081408527672651806102196006350031223772150598746095739962808273265042374257580939580571101697111346643300906723142342657635662395895102779910832773615523331036501565258680728205121216192271410284323576165881385074224241771328168212563367400257852364252572866385876481360623185657677153585539301948905874709823615309409433822661351296627498115191094913608883471932407468969097627395007876329261768010538710792908171808559804191950385614585089921392696007521164527441488749256520542702957555144126911618171628352116031180371203637887980663020499206757985800442495409774462054227483123208237613486355295471918983326907483955920171676352293644269050099505960067722836561651135642350056392416000987087032654524783857581411541443470029853111288302623609800844576220234733020933008640346435050954405960856092610043669815620585280517036817140029822724747119604524249790569698015704409496850303051233102704651242282824490577300431706860570793645591203547128405297607941621346367557762803081655057657013305653534248373516315669850950944095644489379650698952034687655938990417180211080412017327079369957444687548538841999062216493510451672528027736667353742521201773090991114331372663862241137933887933458541954521783764868318040917315667851683622594075932651098350622262413307743509944078890289305457239335870050531723146148585901518507533830302644158546084348640760600319447794938258350768108177451408745984350834123085980602463245503340516988928653172436976311175672648026831721807990282287195108705843987587889795126923890834935587068103855287076932390380186994204136288165520859679565508616774828451994466564831831409074268807191336154785852772469087824695380710138705027709891189170315491495221255078806461974109139102036552551866010663886015510363068319917647616327706483686778348552315850341879422691244235758640195323409364082676418057387459183562232073439543889713736080633189162648471066347222679355730275499171633460376525569561329788786255467742725126843065111671227766131415720851866311045890410092409377372402886869320206021193687001521671339305160887506734304834541457329032256012320149278587427109340127410652841446071198697809390455387353832730022329603411576767127846857558214123342315738093115288270501908344705880433038473324926447280063535359488056359460445860565722568736864932731745542148994315969073285940872746269174920029702979977826778613411084533161089341864234762955165345936691000220987586493126978359911841730236111520174018404819904910233517506357963328271017846876416157767075215466454521579019298415118080948157919322704017575849101094135162948635019493019398720020887731778969409472983488670786132214453256346064584238573152534501419882247025030753790668478569088606312447953284461605859405650976643290438449212944272187079862651168057835141593123654153854863721855009462545561044713040026707244630314912356129279300719106355296330550020393627088618993088459767935159212980082816786911374348177733534649855079021074507172491006446050870967077201497577460643579862738459432811162275594324911152402793743912990523567098537434837492175881441916646158959020360872626049059477476462817867523999234820432254473876777111049001875131380597481620825040980439631106275479361490003422855008435012438942444104192038528664560687786519400384103099646841840203839829687316065901861294817978222311451654086030408585340030312352285083559597391823500082105202722014333419221672349736841865139914288441478110688010164082227162530290363377816124282764546569555688107511147776511117795033980306434457911649442697657206064232738945326996594419282168870758470530261006647946692816233206563700752310279435429425733083120054623591866225720188800454221491138986152066364747356254588160726731977562108154956930456891376053908715627237538542988240454408713671995758870653085987989559178235929901359787393271354714555550262713623858277278115188434120504406926488070224709079490626698722942107951989257709498819333129351726515882475596431909556993786933859612155510069941527871170953890460488681476218346088363347559366504480021789448512596118273127144194842870758568009750677560364601047622996806775476480160743335878449711826875007436403775712375454086255836152403952965574271896663075813414867031323039256625700191123942675083763357056075860366278727272900643652883491383612474214480294931986884446042268248663830721910635827778161728705091692672204866104709107599155893847797985733367414062177394213236359008933753150028900516487755783864167792942825827930416197692314201052059683841265120525750235563088815267558079078565251374166450280036247888747900115362309181454628768004209143918971892840097711730434644090376603708751943024555526714808622650438425087847041904620014285111668959304895329792463444462355766947870812245279548807055001606833400852396194622683421491857780629766956156121230414927415974642814259921845750711254649288045757946096030243919762763693614844014918497056429800163040766378697345734331647655029328963444726640969923775968802428995997068844024946037480863700765588745857496437156385072234835880587420973178866325798526239460358764825790327044112310877410466661702836429108938317893120896588162754356911820090152237927369852770404413121950348907313205039967894793157409927227175129616020683576883561816342594003516735711727861344854861986428473047598495675818401503190354665506181841526740233812612304925506222393069908759269291589723412183633757623985681792741337480783462124640013693726176168563209910979610336962924286517797089914277714702481655865557372748070261817207217581339335167970671123000534606911785938473087318809645597942370135090568069377699428982028728695658054210048313267331625590669389102114676167426270150334932427890552959062785629945230777919433176554233112749315306081041595989403278832647137604281180223098214911750639326879045183653252414949467858919773937146288852366522837877175464366019382660226364500462412635218739181933633888556656987898238550901522062907662576638450404658556293906326000030549857124168102215955121820409376647854986685485799794339198673800400302594254920047596305956812413313201089053167149501158327326672744118115712123276288645023691732209545124311322785220054970020991103449947697603305008582897900099499060950304026551993786599688151952531503237736606238356229321717300981763619901436432241351744661129626579143426877487765106655405039345987930264499771036964454478195306318599085062789906750220140247442715931673986663040239611130023344070253247340568684761246275196900656945974808123301722292954848112129407306288482363182160248130102664794855242739653966262041306211755010373944145815788574386036913703843362736739270874848542198287419237777085432340594002422364405157716062551994822572653992400580910549113577198424442176067925050536098477050626227557704548118933164954737842277186151517140340200844237678948787511540924132751582325641410469885274672716726158802474853935484825061242433361724746072677274620522900779215756312699181634988518773687216577349611499725039383548091527888354589435705638244840772854733144671006436399022202361748993657801110535942966439693519382593604300511827056110223001568640790367267411115913903045932778455767033911238148435353383993951312872263324357994598097473157348643269649356530064343381238716149405029349556752271462024761992283497508771469839212632195537341807778251882214346709709688423563601463411725362066650608495003302421343941338010791134725155513543119689133920593193316885011813993915027167598146163820287576679706273125210501325012627120636419986037772666253039863008326821465103571175618888532097865527714578829602318050298441314629418831014281312489806433209623259891480049561574815891369872391144946306721991296804344123494550206123464484153606504966010770756868507062802870518984863647134439443456745969192950364361893718756530554910929888535518576044710125145014195742578961284593218798363958455848647574705500693878818725718130895493579890877256770983382409913606092937563935472777115184806264613968250188928454999658876827015077649954381393742690858734421309139009578280762629924780282158301251648588055327041628351712725102635794391048705141194681422479292685064284750269219561786562419944806716510731376956645267511793111965097878306629751975754416437312949857705575165564666189313631392433570641774377893106829495548865602340033682222476979147972266251808188730740908414317217069669760691014670281377281036390502384111537263404849015584147834894787232098484056317192010459717397222769852864027441054569899001214239178184564931579913081646844826233759338717279441739337698825881322439385264230076196084399494597974512785447153103613096108948458686483828681772363620184593808352361334503574438258286091341116799336739361157750400337253482067631759084468165566793540960369109117229731491107852396646223889007802806823091235196453444569969812810796425725370695287891811892418171599421515860686935194821432878201395141528369878666272808608919248582087257543612885114923750562974787829611475972403553379790196055906383998950193246164872068149360013661658161846483871655306120220338280020469450924892118797237299761652301604206084503088333821474349001196329507866773574080405736997529368043631329325183104564736011121695408064692018919485595735818110244253347650042588172730115640270612537269455811232793841573782659037112952472110988100859798416237663112592919446639998412502654043337681250179832504225603046620560898101107879255029511801623842695246575030845882586408671557023798684132127440256617868293326417673351050338716252550578533229970025855481062918540678720054721177021260489853450574430664301364354115154391164509620337965627510212033413822888271434424441100500283356188943285774694285046116757060816032945954198585807164387782292394043225608560996455642245533326022258395422511865668424567152943159973781122953596396984928292834019084176920470393533412948159299203909709059781193016227773562497492780477628101970553084830881001684158192962514998440147292894392057299694636158848118563044645727009774700415295250376845380754038525501710911175892975679714508887450505786481813105858040422893933422211018186997890240463782086486091587973792884508500669222646681544826775273650295397090833795847757424334590373627440866002975815028472229606562951457468979714409189059761272516316993399198462019464365237496533643070064504429680542806634539635624590263914992596771012859523092761530892754587495771117639344794521530979147956673960607825914002718202056341348062199675373243464312648151320145698052244498330278667650520915965780170808824812784357812005423722703006371134962367365442191851806237854297422219016747514539645403481562178720089610765626990771388591927797247947934381178577188566387827787750485830367227611376881208839803701548798820158370927062085126632380703991270540667301773065838862758045318722690805758573452251331625146016828376133150747958038330464219842250520019150766616076781850509291575347267546173853482771102280894418386615988182235077370331403341702440933476363056014659084136425754833595231353805473122625056477118899620365855325876426953910540300857509730674337545533525002222408095856806087345067720126143417893836918445232092293179927634507121124341550019968811560744123619366268707961360077298809259759160702872236871298101316360219690450777882362596616405296963876091254036301446356089403094785259630684062244841130025999500387596513342399473888267257814778811367971429317553530800219675017029960171488387843240193202921229370584946641656432553039859119867968796183881243731788434180029479511116512282756871028623635416371312757286321834550897023652908356871442640326881707563890795616565995706280612770815588759016794826466791308010865483456339700579223541983870434040618990210160999213246758188632115062912026229019611684968956563605468552284579165024662347536411200224221110134889695451603952318988705311760107050937048293162490532611050230894900476909685756500427571548188046019217200320173255067909822226634284698326757584323478569069680117519802716839867021978953418587905766172158418087464681502214025099520813681246458912607010198924857455240375036753411848152445782479894048851941061132835954855032907489774226428001674691176205349284809178778739793310224045242939648894563283014833330021071318720604238910380754283911342692033129130645805081988132063482539229023864354986184618364117295953590135123293427530268595505001237615576478678228878798920221988846176941799407323234878428994177934268274764060953489335054580971088277936781822799110891794609556476358397326857053625240402465857357839217837583252458307296943155209856073611560727834606077038286807241433770388182744280641945669339727929468938643774143683120186830501431808007137416968527706818704911180455264765559134177230174517077968079853194124282645419289870348036137739056834153008767700735557673763074595515314397539884876336308319372031639150761098568574018080841827768848380487615244277597310870755755809591588573587019819886398919704384231947067922428924098717029479496429572363822766620850591351974045173428866551957824329376654520743945056016873886868763079786547711310606907166091599367345245843746410313547249931330367028198018457569530068998394142646526198833325500013887252842541817672116262513574351432893044198316868900796916550040979484151283193283400007281359837080197047744001536467352914416884144829818588001431318005421734966109738738901670145181561762223486803144075850881032351655311360758572206274100512237184934866502349003486323260779708757896379614778302556727392261508309457832955061638425245039284466814938956959177980376048967536212047702465117252812393865252708662804611864380716246817512057408126012804766020028461285333325595281723971655485386240464350520778085585027340773102271538085832550978851882567418212706320267539531707418110078002609263334959015131694329036916210218572615493598713956853202313492110342477059783722653164412915928352779558013443175706564938731303515790584737368144158921460764176195618947406026663719513526719405551204766018245791508967793016473370454054451193038591490780838764972268407365475930885723580372524363996935678648996907466779184409743619946063211507646743577371835819664878748437102743065490562628363616677180811633305516085459802371664896359637474924010873272134348460643101181522779425379036302748256955640549303542818937231901344927530009308792388938439966142898029604511810735120035511115694810031062668971617257578479469551643003608647928490203351197229866426824390191124653103741071038012677685032291527469394591245505425441738977239968210052103296375526195333878326794854723117453919469093645842749708572151950332045579529781793233334168145670589191797894538315398242072550052953334177979433352620982421475930852756149889648790724822428045675527235644551371903430846014786877745382405519406119419709776865377522070573421384895077989709634287714823208372189792289219929355896770559358434607408756744110743542766636236851106720563410261587781169208983540506201332305931453649124926613470415324875077779248615261863847888253892405381030519080052091187576835715498135542894355707464155863369168670518865757826653826670650032313217831884164323013126119694097156362178966510082817249885638520807691391957974748837825777148450609071870363448722927624219343532876626002057537035382743802583754700790561099125126506636213802308889850191245616809652615244455911758770054891249684404536708836082092543143185717536653415504158064457706269978644914765264834702407938538503386513346930226287585236532922644779423201742024315102945947324192082830147484315957555798729000992086489119661214952873477587326085465926166308707073565455474561120620054232148770911145796891949021876544087679197724634239072026288441224503207130998352554646415477445673723072639956030548846596216992023206554448126820390226245976178397908034843791855394021746186771305874237763470989123647820783637061935336234884606327665540882128199114864343939008519448895622586632484475025440787577672271023800382247081787224641920426566024843149726475922180796907809804050946688059570324704550706389290996468646266700739578478527975480379508933125905581771286634588173569966623778004403651085829805595253300200000260201321453248824658442340054448951032061016831335363970106864123557723983324346281145551601302481311246842410895937260950654772729021111382600809631384405614260904161001344993258611353215580396527500776782209880764727095421279161859812769377326665475840789409757649931040059899552436429122538017606193331756514826459296245071104009281527809431938617604136874428665473118318430184977481097193821636091716664583666167643223042481962321354677508510812886962490298642380906483349390432820399853214933995116355068317582304795908203004311888135797952708910930680765091633908219286774176496251994652088013475397558463691673259099363890257514669729575605568383298824228185596563968406646139887203146408924873759001990037936118766961142558323728933029918483495279631537173203303764215610312131203268166634337234488068898526922724366810669524573122082173153997628375926748436285958767327965526474467234095563224827969843887734412343911936389686409722623821995759532905547688142033992501381208403060158350129555523088804419598252365174133294359333498659084106141820702951779415096626916458607180932606611860836307719892080677688768032811581733416520524358665263096859306749788823714679437470373137771071476046900081060729212049899372844151622388707009236390979977103944283835497217073141983524597075869383120491714152423626421852338838832145876700599851850030159330121218181881716025118877919016428263946294002972394672745198442552335094531430418301419839974212672362423342711616372425607771269183051049237548226762669366783040235233896086097732809506753236317081256159261548958162662662057374942099435694959907565386690218764216964070525945554086121338599204595648218830381270437383210930749121994779218211317901551059696654573224421968939134634868923646024058691287082419887508598075024883053601526808824062811161492730251709114051551629026798303111880085436166228314164702690424466977985649319953080055634830560233402724335111684322670075292059911192794505145851156034430183815719332359488285175976883108313267705703980495021346061432430168989319377374443069029521762151269749165947468207071384869421610781419584675713789009395353582328572330546522231803372653908811671654954134574239398923464997127848486318385828751994251862738486539932066398573136735277946027066620518888272345566284128136277370859059236926360423642725481011069184770357359569100579203185904971007998322291230056693947907920429005913454374896703443953105683350086204369333380825554083914125221532698589696564927169903335010182982519033189395229054027703492223506121748384998311391357060962426722812323924216563806359271239515053174912638925728397275194120954669436623229677270945241115127926456857111580602106206187682084179788717943387114669844400089209298807349651851169564423319432442212311871997818751784223623075826337854914090222653888507035807554227425266349868909714115217916490559334590164213096130666794373977405690140965383971280597334576453713753299346331255225891144470851005754924761261821339698750501932599763983941242298286118092821364311695795614760149043083008753299473341843268317533980334532588655190413287768539610407901055114447393279950704325298020965311731810241430736321357785308566901930395611036287560247993119261810053245982874616633162992230059764195874425499853193494386601524355350354914753403556474041733139936748919408139071851166496249407765577266416686510244177905158827084374851780437235434779283408774877347535644039832704994393462914527885713664652708746724439562758855891138838358533988835372685691408418869591699518449263394447047628110931695680915165189143362512073048613570307297572077542584431592723534763746258668599005591665748617147713003119889616270274228747063442930323419014959493998768057144331869139188351539647023554190416770835238043184565873129389461376351006509235050695507973700101488783934470999368755123123494424360667589702596385060088357627196122992671907960855475491634808325654589069379835369906982162983135838721089780540341482599042022952905934910920196267532839203529016347584398363465691561310429938304273265519211724872914074163701970185983497587319524356715126689005477613826396852624921146633618727978873719349608569127806665165284983333293201975709336949618785249705703319327282816561185966138665887116693125928646611841512364849404343520939442439852876193623568281808645017094158518196794590847694121307883764936621588973374218448322731553327269425362181809990902015826953789140611900371800689637164564578165202872411391915774723368307520684531036495748003969657884348125424331755512665317785014570531469145328701684277689529568563234526640138119798212727325396761941331729088435422695038824704739255246597794328683249642017861754558371984965132034767049612151505536337411001109218977246541187325072288238677744062709168967376197273558619904215136633890521726500520697375946607037597099321803787119519157541912786562150268702669738318126484820346807311539677715499211078916583478595582269891691189729053383881411094620390081991537312501287910118938539181422071681449133398486069014277604390531102852532922779716342445471902787921817556414697457986291665942350782727064956914753875159970130664388916008372223037127516011931252679200007112374706468804847705316237199125580612806618662489975886253016129233717861552193583074708827591753012213201284832872970156557348776079792494586506619883906977509377195323634677263341789193568618236511532427739731055119123166468320220265678189220899693849792923135306261208037697884966812010887217280803346697026565096386787540896419028471534498313723484503567697933360673544516233313841484104954614802583529956197540071732684919753628536707924460916060522600670963991060298441171668266874113056283470004002456678108936024288199629938443044183149494487482685251559897711054065146254858802532874091220466623729087847549581657170973389230261542479992516005080905541762437767574895905163894723024557763567029425817777015232398535184643325637563363850138711292985390274786786504137083913699780863842940392844732132406074444794406455044128984855280833759911984758136331485800626648335037966709479381908302271629923466070718739970603076933355288398492471444759577610438540402409653989674247920316600780593270275460520529955974757405964750617735061782246874688034810330336566879689745955070867130035637636238759838683209743434008235950967906864464151373750346417956797444674794627901317968993797473365634853941709506253098523909200863143845676425595194860946986839252016018160514199730078956639461962134554989189366850864298185136310815623947840056621398708424026504752200864221986994615512485201680294415911733405026554368539873508159053193268958684520474497803726756592245736416961034294809681395208063013722249745598535286290286937666397673455971883441543730465207721566147398643973501120269571035233265588171961900804015477467953656371027820580679511211196961613073327951529802379100358846560772831928870005808062860939820211597000943418296322207676056208310266662317401078877698067996599534350748364316871111727696046137960108703984941363549734622089373234584464397347741888746341488230872735722289084444428495571507757734004894299974663092486802613093433881328434979608482540779316371265633730297098732990880192265083432002649582211309709830267966577114306458286000820531343382236699475095503749969535077786177046750314748679780087748610619828564968376784922313454789790608201473561099141954113779815999799577871040117304732519531096283256719754235671227008259090769117455536612151339840414958455081343484746546742984939551701094060411332150485869232479805023241040824438811548717542858400769681030806480427978805995708685381009662961593695774192940310320112592645802117453786105099279567312666309961776984760292980999281929980330666215860629372796768222467107413940701101674870411468970897430421551462771937731069348603934982931174584959913316619448547987256472913759023720190303598698640432970280221693489375389040510638984819616472237349707674087214925863542783720730175829618197429557700976096456518742141825858277379931493854081720042023051564629245080844311657750848808986551491955982299952127514057088527834294809660053344715996198007614035016851526332151268465035218219645160134020942730707342459793038464592837469364520800009760683621219133997170377234458912133323530057756697442174295901912945149130334266077109605232635158401593262652606203575253116500931555850858869725315883139818052754927400318356155329203229638697446576404194877529632242006688639352584519484767942302532382545440056447286110329629999437757855702923694308112136331665435702350798515418801947197978400699351929847364038273990940325737921346399432911628261083676582638449734028563636640649399396296305866943844776002930832900114367699030048747045956298762738112697161942399574637419708778854530810902300147695083728521974867854920041789336021428400335851442088020370711596864962693430740618009553548955069995190122224671423667205026264774495149545563589539064057769926435351204518948406357920478448828507276470460148612662576831369696162465815407113005512197218844843288158498564681157016120851542162523694696186899005254011222512402557725298483176644047902406191555409194431360858434977649226804992157048331066909036967373657458437326608608162411021289593794404401567250248193603043586417026014046319942432333241094936779416986685769065729427304509645406847102974553866366935159996189624108027965661313405088402166795460097213880228243261253022718435733686589415191365006995903152216889329646015778886450429935391455955605899683885988609044986546947912041080741553534217093518292406130114166949441172187963562932920466312330722286646966837143731792025899872293279737422857523136134589988564883316580338342796610873172344516567139984751992497347318912746939604580670910470616742413534020548518613014755969063052832777065383690355845118553088319234311288839635636754395168039463272359264390738185410626618379961553394764927088300561975530499180262448031127327257015601887428802019683951972393097357256553099997250954175775372304543766286991399734655025754586916217415463248637157032122922838993483772728218117015461803721777280593519523809831725619588241744772290877293422765187360919852642255794056357955543297881555408825059525669229517764857624110374893842718920089320407261628363458422625667043770262383057701255877209095920406710099411655716340368025360730462808832717639001279852344963829103500472911652674286845560118860775321103425490785120775438732009096164441478294845174948743699265853321442652034725017815721354084550928539876727273122165637196940442007123936705392085948379108682992882282187146572236827346859469897477031112245045132770523912932354367375971836696337484853856142202261971764551218268755762839065581426294336796316256241078259469038838039432226635690530653569096997861400067839278799154396089548561516354642998215202571581588327267618515994245507505830918524032222537433305287035502254956514852457493618494350587242708851777879922989919930662733297586263763383293086757839809254786547543954072224509961124135243548991114730561059722642598968219300668590179566450576950773136958402128487250706856792532292953981131098595082231949582851882017625653805757612823291449625441502810838335628683969338900187572033542698451284563736076858037545322975647365805654206405706647789292032351598328293693311593115935297811195497815056310001872104237521896437757652254883893553131729375696652338581896953754887255928930445323736938930025292980612218321691417862687432560562063191059740123440655349123326501290643133780339552584252208698348048168675934539976567552131684467502214544504191843102708655432066997236244671471624721512253725134596694992554352003577774070866994394021234661641818752839907008276186634985964814360122904315659992653611567183470918201931278654139388629348902690457804318082599965834331741612060814357336344365379186091381848201159112529332117314563739430165358613241890826068942191860010125044921781155865783271082214466001216626759615273249431082433464044473109194895335053246417512686176771076580318594705812676435248503075522951785481841928963192981768961679962186457283606177664191678679199405472799802516772360704582692797505450122097206589981107167014551843494728584787834949685858728230916164247467643614437874908868337143629637786451060622905813716752440104455754000529529799626400243446158778462191837386046408269112949465331720374947657638474259623174964987430711095414137460383329336793614341088736697346718527099321270836009156252883616194221380163077693094120438387509671869885545142068580933379583812119128556238285497212143064002247090488471287479191871129363004912619021165388841297325522229632611489258156797815073135984958740013085582833488265161482667880567461413826024545109248247105115415579764545722211301075793291943026870654518057544747042439153754007775741971525289966360509274827557413010360039923918575422203818099028424330513516797913602081511089925981665892635136879814056922990170600855358076208971642873137748223724269491202823165316237978267054556660055329717472254501282463510120497660554485809057658539580597687732869447275200281844242068667532563520235999410650888846082597774144689271034658584122371014104648207902199377862243265819751844352247131166147642145147734882585112381152726682391227892884719038993061516532471988544463708354381424805419951518242922306178004317729490599161462515335789863980641460974920485539269520360749486399764365069734628266972079100029787253197785676757548126265642376113836961665493639354827122572721073532938360688711751270012986716892917410914055893123693198413029340341010881638812220945230509480413318422204719013382129420306227165695043215087158228463579668855125332791581520866862459464284430118276244375472843284015366455122492826273447477232218299115440302783347837308619100017046234067962815780965914628436231854501958789557602967572293166699894542528927839549382571459900224375811069760624597423465944366756360300110364244339340713264699690801368583403261310029704387486430594843650243323753773766584778563886962315881085356482618953326888428260044585885635276307091528319669181873321221346162103342783193190548762822400297830436210111850435456107796863537368942399179204407403104065731767890478840300322648638521263231641497202920313729629517376370108415682608044748380628634961113288301371524932685504651181915978832009135274455089919520505319603256998804352257945980819510462476482940022144919006008016506928335036353487095146423772880443045191601281125163720279696435550911795338795180081350646287723439420416479658376181272973102001756372944944240640938966183830484218371779313809440211257170790904525991453920653915457821352633655649926100506315767511479973862546593654404530292106083787944144751543066675903007155503173222891634965405729405266015260928019082042261773833076316686837452876320652949238594846066915430123864203673229005213791989622995821872090910566507278121758822283938341521313686599643072086849697888513755766616033395929025137521021912834695614683882461271040084707065457141223452784388360145826474250482000881685870697143343705715052694724433831953704749899321775560030291824012196917784038319516547341932409235601130875157870400744164126319552972834098394704661205690422870949225106161236573759466922238551367314021628069966454549506703751941828158305075853601992881873532101874181313549660813723007047527494580591688076143364266344132887947704050757409025926901986137123420572824667519897075240522272376242149177494415185617920578503259980660265133414517576234958195990457292000589245371016056062867516778015297443755196390362576914245747947931907843238514903891680928956247859405118516842302551239647832991182645497303539769176738460627484340518882022606260857965005311762627660263655830497132628487003245227883849829619077522295101675366732692717880550841785330524595384184387274048798498197273959974615139366658759908890310413152167250824133852573955919029094301637089764641836236898619548400166485802372702597135269688358028710788106733269991423972677596648299685492257063171939964264401121874185297924092229705623010474212550618916454521555209966700310817102181014237947505186346070373168345783776641663870274999745907946667203569505817699641348866694207333312164058186529708918056580262973278509377464230538955421471481120102298929305641028508263134239634876283384887731374587189030016521698953699861459935086118157382416664650935609491126762035172932265734311243124202097406039584058632866048594254866749123897936493803315377611652080018516319765794674164148961729366979055679096187848874769038533268918163529628758995064993931923722348121043557592833227852222903472106389617962877020137229075346867743407979663902865341829710589018520738144327806884365014004277803044821848643855655274747216935427626808678919041999563000610364622304952586649650782920440929835696392790832739280118856052276149448376247745492833521585038168730851718588146626019917147946304912260623404549119327815594880411271681265112989029503996071144458488214425134374399450333894194245006735694746612386656923659221808201318111683158416661950185186808870331451567160966538433992313212920073870775568507547243648473369514821974888559884658148304225047030117840977205326318813446341821930354640626790819529781752410760697861374180351470453997420369274399153303287069049121767115595828680333006060852430018086857025301454697213963781603697214239485402066554362216485610351634905892255050386369737431463559335349236853145632611104054826994260815432478175317762887136842373537731612773334286767288982116392384207964124319826895242711154688391803700699468797808714442338103655747080435634101378342376575069636067905887321140163197804178703744232933952466091300103471701481946169844659877674285325722438747561004317739430718345764631597984177752603408873096153772866010853960078937196390341427756510192762485758285564419126184609926141070994485832767829723226320136666456913803856433047741163546502805682462286655837078322109857890191880677169335529625689513139318299978592827337454973738768464563945409792212594868043562377341792243689724193649702377002033517524186309641954210343053675377276364557629533441159782447136091619764036621791798860024517853862711116109156473168645152394900886417704568774774973471937685062071038426338412147440868954946851669221734478807576378412156098115629604755669214882546590521513382371719226034489581515150197872723258531072337607769581351511374377457383693657833294649184750356505951293173550969407538762315366271101824371468647890118698562352828682319890157855416351367043090050777262410732144693091450872759216436509184118268051640415545535749472359827328019848500777121168188124897530756754784342156177583071170442215266462650255542128128564307800283447397048344557398421235826765172597095391632331704403771507459780210406641976319889702513380900182467580144886321906727593913566903363544166741593123100276045294693623781911562310357093368358740150778101554345456416833617758313278989088840082078331406396596169794440529398929303840246083428329187815350632490175481826906922488678710610013725703184625799538995210741531863745932453528663168294200974571866851680375130585831613500323991680482437320721009725044652227982379182696171835060042922725574603151793924748481097438677103595195650110913684043258257401455721452876451781634636295638739972738815010028452969211537877192012080809810534357251605842620848369679639984924289262007529927329162463351952044612700045112815535900812107939489818140308138865658813930870610926008351592307714343343494695236901755461017468147887618023875086385404831860191705681157798127013230823144747228640699318872073840827725894449489226560243826101848158793739759718639499593839610015329915499532279023685099345431901052568518458249832123063123186042179988475308960080614016645534440184540145517820813716489158449656728042404600983960238235224885073316581259757723462747287756502152527262728704537981568764801407360094102871063993874600559608026975617564580367392745197192983626404935608958976057991648817586999858174885663170925361350293508653763543045036088077046216551126172057065693674972697707613128158782908562977044001966162594221881729520936956051381655709066148787849121191310644554650462916200228672603894258553661862644078051346329874945016550244710120731923546193224246523860532209418762349156051982823052027751403985826325432398472491738550390535209604750197171996879759461966523026756176684018760819183477820076481536072284733957410276636762555835189898382192505152815974868123384382212962912584530273771012103895574144222103757855866446250837139332657923588039936850969703860880001264007728131365401483117905325855535679359424541312656245699419585864048350700280673142145800086639665734498437466932095914407675164907511974646274454664943635211855822334815604983349055677419596322328339284405609747957728069497022346997564722431733755935051387155051179971600001201882601651600683680212412670279249147478451189208426978500305105365766399806812439377206790697697496739235226949095186343942111739367124266282192979520316830131496851601095418666200367965705496047773334703223775209569122027974107323646148015960353620757917442389370901582968050191086058705404857026029947566075425833090475772961756520693884061137123378013391850957980824675884666496968538491020915805456201177799041876861197290141085467724548851780858793539536403786896295718247026428623322377583486217456444367440446711920548000515185754183303144252118711145437839558798063550892133113743204390405001296324648006070964343153973490240854707794532105548174875765862026424093232337760552572618156249899545081456190878177596678247428299435384197495652957703458570482717295946872607784146456521478434433247827760201787948267461938442623067080918702856820159303871177462685994360226742484975470915133915881266354711521766315212463552118793375052536419228940223476681536271755974200766839365336184879128319114403229280023570216844887779483394084673709955832195721787524398171743130678303228613526470989349820438523779807030878075629529539272857506411015370590757367794566405655851320045461939140580242379259995076399147079623062001211600580037187040901287634177653710914818429985932028646052716351135377541881955399537897737584242236694638225027844726753382920815136927285335871983938700351647071719001032316632393944000100521340440093355801638002102735732236608220381523023494191258601928595618288247081270625457410874248891466400169248048904445559935733871437993453261561248804179953945539047643462095929080856954730580101861828614728117218664969982836402569828967942700625306290724597643168540843691074254636210961957570009381910563475768028935169527424703962060051693317681662298285062479529939419667160971085274209478469780205291245569023094507671552751650419960686369817183173791859980635245073302410220611548097313149276169852914843139488046688851002893446401911813153410491296994228391617599842710195239229850940266626870016852384070377181631685602669004444856201774310997693665493910421658498533356945918188559364758858963102008946951266492784569609382282682666476974735660928644941449758858041705777578664859936448919218046041107643528686253480097114659350494011873008822768756730564515893110010493300637122469686276737255515373949473568686285043784070562534433740286306486313209807006374082784077045220178422125479276402056949714476796968275049054979424695299925406154624605069241890142971602744550128307130334117345559770151589770336416710996174695027927577766607055673573910326977116915118431880921887463485039496790865749776148710196713460996779446178697618510280407952369265565552400941811112030468588119018038778274167247875674819562998405359392652964835760744202020686203948514766350360770242716800151267982457742648101764971996317848588995345242670744604844307406499194817292059699997239866957589535018899175701960253735303074465523651165204288584867976426364478936207702372992157310160171296096616266022032917066303137681011000529269550039674135643166578250534370698052778940779203881858102311808825872990920924089544117702473550793045752549059243319564213865782783699343860402065049794151805651915959570356983976563308625129141529067904193103431827187660845239717386726311448811376022467624750020029798772730412306613594642844110065911969146256571880951582940506724100761445528785044283247303678337596047627969942629993045054976488350701940385946169866046482111743600936890838619946602790005429279242061148784686876655656960765356851451032653903595388581570240854221923179288593527348856477991741688359556466563552462252868001891985689822309162742663473403133642258308215943980990415693569619929200401223630561322905039723224783081125971754659501561242770933465089309064309215517412338513781687513715130831904456590386300420647372973098957903625936729349034955410946514166499186327578554709262944215286781737606210593573530531441430545705225674098902891175248366277015368701504598848860335571786334362795874884576684481884896172422967389581372744483539689553327931959453945856514229884468214473534470456455624428543736050472088257364296334150647776385171219222318894656861831770291821712501549497561567121324230081550767523101328683629849375382040664176180786577230750303912363808381803856181925571194985000659950238895675520233416888194429140852442415293167120825363310933685434169714193669262628199708109762902089211103941041096238341050472736104528730315141190667225354423427049879518097508212507427174657715953265359765899766255074616098887440983519991584005864351598142850314978715365353831448469046141335489967828145638652531777036463547556242918673380494854239766844644840304243726467292884179415663132001084793436276729123209581873091072105127147422809949962992705257035410022005765663714485255957978919975625822310352812343687098512388161893920600727935114693777669582262556982908606226378227956628311058704306763491032930447013301778988082254181089646201455697834942983159916719725030734127010762802529182158634944542747404389945878203948220852831635134895693467913299258859262973811507381166866341872791486700262763382570748309599349808600058824405021814613471747548290005208176839232043896002394503908420086823397899237753693152917207890016603915477186875611763245140444178591627108670958637674916818817146850656788320840164603586460666844315203552785357648106074265024003353591704139455243100227991136379638388540725491722566804207231544811355433973728798667889391326663484046331674810440598398377382602882997637414605443461645659230825872649578455331356568034672042907828675956142560226238917597576484596990447698394701342134587845750273552105043928858695589672552198555504166870696014067728753033121065373007071245480481253949964057514917329951167719215688357225068998973645285538110264371964301809230945402252284202913503496947141633418208156112088957462456753021613678926483903296425312749897468699471828293403311298185267561704025471760974140915014171292456410600355496476709883264940962800814025802503584311790935158730901359706387562434696653867270129698416161043676398155057990289144482746797348391270012550365598255909777970893582149612125183650801213635600767038890424103742050244059556683525567340329450963807284433447176447898678026520815610139385630349162202556829376461790050485455073242349005371828540623377747895860580259061421445578367932912413009629884821927022475850082811145625035201575095449320978090193584468135641669420108026002780679994254136204704308923007198930150638571200102134822712559006535241028505964227567444607649940032888584245568949338071760542108660034007275709395731876969427130884126633982765923642575157229361770109626071053259979456006084323964328368517364590991774891331922228158317967572882977639363688186151545982568561957323282398496689145832726243127129802137919300609618017027891576805087177401103607804601448348247962873466080932700294062823177688659982888655033668604463203131348833283026500345278496358666754819827073588723088260515916411485057594643676759138960395581474730262924752712676334155062954716734629146076254624237553369860807473932573422921381469212914875206119971066314794039334562094561361653568832842497164923446510836383170293130256711071826890958766161377032962280386408034097882776641058622302914743693943167883004371790112399223284674350610965071675174764520045171704928475342092595826909190447954768595836539129774352746139316715395844452844231116445435596789376238158340446605079909235465458978560108149766447070960935038248427853247202522774625765983002092098750425465841321092065722944351514366327909926946660278085243910736243735920169372734066920467226164558871648055029038909994392337841819307734813685648625418657476523436599478272295151664207323217516682930218447617132964138806727035471509262052336447656891672654061258983611456401542397566633302297053958918334871568896513408371082966169871130656598350976950765378720036249422806613825658699682017401163254162946442607872169085472657433289571223861812655917222824555300829527008736614673923457751270308733010850592038961452520246754657053422612456595518558197453676502513239951259553948511714215865545324670932990498437387494974619126042948167238403161462345132651678748291832802716333476890777607518815818455433798042266401207030317189267304128153027134807387483776960132348486854992761905662503610326614525733885174050167394461436601575931248172788467556890654262968437275385219321886288484124010938453489756754557704596556665719813217482541902484913766245975694940318630863182085036738352845503473644718716893380651308416011397030138632315870624745912896763075049287070844419287402852829765542401116813301110009320801876046343762036108047225873820451954036852018509829181080472924797169677575687978846689972958906534862667149782357382403445059988080901277808829336698602559287488745286196117640429990377696059402100324725949129750154482076699888570980907509458731761620442083889434029293017522422213675685229559758393113720210654265512539790379039918022340377618943057148165189162934152720502667959071295236512534723120101862618992550185340449994821703700523784081554872627043984018367470785691777430737079897575090694648354920360269162753354109378568690448621902311123173045647321987380654135346885512246778239134516318798582225540291110890751798241664037659204486620198818924695733905891387219555212798747610967374624829310196487517237088719363669615179495782796280442041641413194142147425092374277119422537623854671236541637578915384077067359830776414206742464246849472738792561202589491229139443070447570819870903619911190443883472380499365156380333595385306365282984270374427147173852101738548530712690791135416943501119526454368324421792941562183812658616824907356876124229692549262706139940061145684890256804594577878965211803522956515952457637120746054923276062333414036441721904315852714060289004125439894923707364491240633925087492086246647136683181241687137208450890337181557058467375214197190994185311204143559108024798491689120558019693296750120940448571507406804648509915798037468331877046432448849403406803868007082423047981035487585473340617173214793228523529630200621244028401821654763444758922404436755800999847849714861946151681409500742007803268685118596964708538603436915021491345965459773250810099494830785381422456341915286318193944220126110306093672459103265684884260121328099856000434474647927095768904439223356655411233988467160886227129465591680744490526103145240278568304936013110362613996541619652751984513991762492481847123550623624416504312756953988795245936323523335594838523441793253132439273859677793255391272057232496822860034202088257693895081927438267719210555966798650715378921511267831531044508981838490256317817121520377842587267390861184925939222931472818629433766105982448197973788408653121373297471284300971103636177057615548444261021503653950607100172961450154382066240881256819459265556363870616445691459906234184699402198727839929056215137763170674886905835698399301798985708316596708296632000997222840343440021417426454094361617611282130637881832182210229772984502682408114440767004301642312923142341053988659196137516902577995904727801572236131866498815429584813495328146639098094528449575159068576821395766233583993800519603953425525310826312292599146009224742049703107992514529104284362643247544483309364588550584626647669608617403365144562296688454582382070669643475973342858443414004535963653190238743479584984266614644002441831991912008656893578591524800987533083260617862710175150408974644426423850950391363967978381461156986549924380055288722634076492139642188350281396639879190827545890703822736384666936172249408175602108761199822095008222419477532259518292494554674679367730118718192914046669584580928288308039375481768725878705324126748172499885546482319233632786993728697180091018807675260688615475380388416864476738020883708336051676543645331451577094954481511775566799441950591899452421343735422712421261811928042753037274490872581440857695782206672607636023469918147801237955395171231890682001616240347729247193767655593222271930715524225563481475048379730001727350641083063059558744976796534276747650190142212232288230777183328364712582427399513288338815014506674316613600640822985211482443659751119970977776370038518130649622979961569440422384447715857758172763253557296919258211257467103125324934079683761661664778464224800304283297382975717107518595639775535799630461113187666695710753266940798420295083409165573258160571267525040711655648037439168621460043153776790887841232164252856344008224346439100849165292360463382933009300818681694542899543508980957938956511078145216700483113676858857677239424013109832859595451095186055084878778153049903477349203600045474042038956055568864075491095200497651444006269374102126322397718721441625964894135742503490207049217721558156561452392289811058997889772578194682969661259107037693675439984582211513865250595194466990315816673505920170805884181836047695031363839835582164700707100521243527491216036545183096876142154391703336383444054699810172017180876334999781472499718002156985461702627752300732511536258849276589452782904392033890768459518530769384473603481225739401964475428862869830541391674405142779747092331346892539008188251697263853828665287395781868071666257595384547791252903548641319083070435501422403837859725115555983898571108257249302004073320400781186381829753554144535588641700476823430023169098589591128320066054417197077186193774267690942213370274458170019554299349652215879811932590615271397041055591778177149266206638427006642991134993729610279558942669838341744899659371218905894396685168896566923672282814185941025755304802320114142061702918346924633888045812680625778085690132107096334310099125455898575298836723803895984106295972601969246352855383078939982767492266298485157225578791937217419573921701703467339727505847298410704127445999620900849507735758207479880115333985618345048717758363225344549791498802183581055110419249661740529575651980164358053208806576151399446319433016540793510425306187414929946410163299913840791296999580135996701233866629301217724798711165442062741556186866498127834483949139638918361634896164832861710501366799237714196775361776295819692721255272575176354629222675856448552361681546905102854589676527130502496243236871889811859681589714522732306568455920576144720947089765288699286739660510891723397835222750018359212708840783244393907739294198075260305531677605588031677398791901962498984158825804484695025199361878398807660253743882735176151104484707520540089813837278427852128708000866446398526356948442798646338162379398634009120759858752718098022546596694227134691234314330296616567761962530927056781960160229803260151346722474422216005288349711775199809658760293718259882363660159395909748325470333067396207701072951857600213096721573506618988595405922591561826719394887063088721216202607531835090686589731066009818804259399047510246547329872625145969464844774133673475953065231770375827356146766651601525673149585418877061948541974094580407661065151296294211517738185893766896771839725542592267760547705527691451087758752938273664888571205959294459845280042241163423724238133763833981901851708996453763589212021726720400489098268534977900946527334806229546569846064709198304564640368932695269407149435387658462773868049932221529495767877609664223108936907128196514345407415986244377821889525377408638083289278401590109129422135591201296315696016089897729956039732277180176380471278985500864920961100796925206883798545172155189840865394229598747947675807367674345421449705365333309776787218521578297997853409573679222137741991672963317365000899241690388005484492328967630834823958761993867020664498422167626727135364971374538437969694481891407620082849079246498315596779543106725265807885522967697256327302518752930143505601335414219175510282686415148496655955349992949674374140034817093387780240387052907975821878597605080375262872579231234628239865561294585693526909603956892581267240120208424912065487024781330155016614862148033773625038719962013516435200684878203170277549591084751083939552814202552019779015480604620879177625265632401099974724475407607593980873228728375025187433962240887171594891379383902409432021999988457889660452018868697882170681944915426109155770273861692994144958909252553728919275841220939150292017490659490456347241420287059821487562926679887166151748867445182726496006067872467810304905909451086756241276725746715069770547075446802191097463472154725152100622703511680512871166512395498060692344965954777084225731015398049282364429544622940828627996364558075175376357242886614021125296062881356653581425953149925534517510129414884092818294777037795520259648405076859471833003419259001392708133998975944075287303530913441256605290442761526600979851704212875073482531719792027799784472600057405658052454533136101114953286996605661499021959410826950470084704434665795773092005648201991515559985998160916105416528495563083512129248809381600011057612655888809836119679560717628896906572196236981737404517825418278964255376166761252212751761390712292186012725753734266262878559757506983669260242449428249135066961192778487203943404509739064643018120876475558475209236994535495420463105085324695274936993458782032477618174170790791050070248214618367390860138272928996464364713662095678393365122873593034894251222505472495332284364331078709724540539085210783740827893856331734550775548815173129046582945303893415506024851457309298224280179088848557181336177513925959319443234209910245298635529818674312918717073248117709560398782808381159011436561203240919008259408453178931517805018514098459827847140891834205344511123717546644104064694657041297531043147671986750942714301158991185983038977393441594016271853483798844747403365937810397972517876468475779454101583381145276678777566448364178439973081008047989677163534209397001455367253098700655855616016681073062338448181209498673409054432688950971137642187568690933313630523870983626633835241828325067970164846886570798419461459301969808603692604931598345113158630927615883723454609604018136333702612219890390719779457315758869273735569940141762064064031457622536447942619436299610357827541012013600318094202580425761652609599270211882261051400944261402986374724739616387265716866307896615218422101358456967423284323979742643124886139699867588556794584925032597818167781221438392212304090865046007306683578814611285993280716414347809532336526082919097145342740726966791411698364027791686300569422311219482198809368887020963923969272906152243560555417839429704519485360483159166644691391892160524679059849147986247730867074789302076016585467612930548744429024099047920089294441339167023661628872921011148642933081665700456149622023993873870397739740927405189282047331684559349135345735295397202741107978855128399743751901854541698864428853176791662255204690345195411259784974379564572750303554994443936564247047434193744387709878585365379175129865701325748176550545716006147565505501054469010959528661633415122581431705157121384788170559449413520752562029883232792020764886794049480594578238017196304878565396788219281806343825719503756292120950196579213839286730947888507048413396117212849297780247158042143346750038786736000880365895178043226365738109439324958011366552593007637186997738721542292673388252157755493101237140478429417473470180380312441078592331871244048826978186396991908680077556261193379572720927008513972950467915307125806372992839099515128234716058209135381987171919799107883293233776613163275739976338271959576232173681681272583940280327932210562654286044262448389979682761576081864401812357404952209179216685081706854124045359482602207469773569989147089786162041973194860764413489740834588806566452860776671641694863477058850290902591460825337347796533503322876786801329181800097613067225184424242848967266396636784653239950352763456587920280021545652172294427549938807263631113171896518256950686907532413324544207071973897567775063709546486845320473307385707678746524028848269024511583224185629083548011180209713325069082473347614848469943910944112370109976118586043683461792620145972740371102954464125814201049837214074092303640114690551982467992841747275457320588620689462329606038990273107433899901188038392600267341960841192701728972256296969945788226231408138663916517824632259568063223537604289574587555857719285162374046771576316168683096761741007186316260340141313783100118493522039157200532641181607668035425198581177249605261102749537237426201379836911038987578741894953738555320087872878232275599357732733430225893579008886783324846571227064274864163407074634786395471381050481046155339843991328926631982855949925997187978906785729964311502807705031632114401886812515880043955132887021363453887893058771305319901135984143204665050209463373436405102276403969388053388873000883155193668111965928233316812588857138806405696964779822413743921327871993595965259509419334239004135647214252726884129028177286146607986293426887369390070520343758164419772079238621234814168120186066024646032255036702793951467506947799228570216845659789110502865907846640162105947980979791878935583301666124693102755245532903911947769686111934046647970063884528394168524171482161474939542628707991141593796270732289270028095653007117719652913755070561990231015623105030570262958193112486562257922901017109319198610164503087310291236631293683006450575948772341707568529010140607046189083725284595346946641541655127082194430088724182664764171463447049975207638434659924584601798693554173141873302159232597987616520229681056035419757923207230234844055560416901903535021505532354373489902688607510264320187906559603212628854225917411393515531854963878719139429523898109188217699179321361336036014945088886615233441118806747773073202036958923531143913045416279499818506531247966015138201258032576748418207855234354388015943587807699390836481108333933348957693457480078212500096701425535157166731217124199793116544849822213577955669318391561153877722187887477548834711432573782179341927878305816489624082893749509995585840729857550874513255493856951670179626331306939418521762023273316950343381301318409854687643618497213422486907148533520450509589332383454953490707773346629908250097428902670605669861092679828355188711391017051758410821263984004326350707085669039987053032816765387567529295685647249902712703530600982874656510480297677572256346813901164001719674991077356752941576012865027523095349058979683144215124032543643035234078747475491145147382497858964281356616907505412375917926188283198490689592743453559817361238552847410150903195448928386280380076181547212357831979502948715093282534552351570880737602530373990326947971406117366327879647615544756152459509417069618600947034432321487770665269389569079534719439699590781980033419765461071015255489691347899968748293914877655856918913946939525061164064860333780430904410169081875416502251738630133071950826509049549332407204227285239555005893301776300830556576022097121868798907782529605391861172019218794055261217025730733155236468255475354672513404220809900815600433875913162703247288367944057562558824039281370809742799674137040680518918287409671770839792507479064960818455984953719117758950026626324840880328796488844050829221182225943215953938512252299072732205986181279501064065197315099191327149632700441050679647156623258334621404633274869136423463184801624579334929536471339028077540537719660946865360973577605732032224295527950285133085923966705270087136499505391618982710645154240065300956701991889082221330104495085703590306223932878353181284986749659114635886283280956889950698862682487039019512042499401261758988350861735859285645180921273805793878210418000798756039367423993419443039984715598791363849602330674935821859434665200852439877628059188540154421433493441600674999546601385700618364250078606771341358703011178077649505436551239704052449771339087273836612568635368234490055824490030254443315114204540194370144905303101279417000627015311551556072692933263489080835818392857332500358276094492388970539011991896008360529121013256593032410186467169464266616396500999082757316615262873594359694191730953192611957815799653121531888852804431150565630413750053893536077418537864315600955581305403980504845702989479437586840788864424524060217923709789692896377472572321438221589469634549647275171377086309622793899573198571771326148041315374702996697580450829097677954974716899976325134708928804985606201052269554998866825549478024138374944698062960773682779634968464896221425156489829445086659308877542518508908819046508884351554125809383580168955950295978976906552643546325606087063199024226246818231366929561041592651077774484117308065655118688246455157431900474851960458439738229895676538738099408127092534528215695331404997521778446729881881117423597928882855197384827137502758994890089808865319420652798125963440398458017830648675521465986661077306419628158252970189390402847435019597520217177324019921669048537762284224671966543030489048266985707798605531985733474888501451961362973357407083688443652989773083677204424816028654526957179568497426144658798844990436385594555601123238965731281143922909819026653041208402096950355655581519961924220760949908030934622199925817768384887417266668263505905063100607147489899728620137499464236847023705995739659899065543270489078462262474110052483090646836976405930259532366517358504955169623317369022085089110446018509719747991808370760960378918396958021063753058587935817921102123774653163747567623638462253072098000295323068174953109484623952259751859852058373317425130398307578439982980113552580302594705536011492452710773479788105059448393932040977523502821587296598574961944126081353561394003953971612741547083580806719664472745422378856950385937209196923759255707739619102117924850210026069596851499648860290181338901435337531899126419770362275754310663396218289701387906458404064397835780255202525717335570322741972633450458392957318460136402579363068220135891776763829040253983402512955322326317832558941326479950161662370870096917916218535511305279715434916739032658710380802364968843864311023409665138621296762103267390480882241111338040822547139096223071843815416389928906663335840581852400668849213684731961382307888873561995144436623410682765017781856872722914640092541716794366625745386981492395723876619595486138492049227781034107590189888702029001781931136980444165323647170060192341084683661951384966261627833154231478823297648276949132646258976722134061570346372724379653874764293449367728285836410831936167869478480976650358461207731760212942171309649911937376155643754480375369182451794260568439822880861847454975999477382827400079452370035588482031902434867349175466086974823461446530215165017243984054355214234051166772809895454955377760149555835776335978661203258581629027066261861271071089374892647902192626526987073068199271698644256353983739635735895114729263111374270698617777478538404476950969776675087212563473300700775410998697253893709185330917824090885057625327005963635318039341237801561269060060356025605600879178597601123255129065737190222771824223152688913678216046145279144976142311306745380993176415381606727433408393188222125206636953407811472031176226808042118313568441310864779348759564104700950221289585117062668211731543799208912352595287953907148436790114749140060966397426071061795728111799113638540973742401233453879324330764796173096488561963737479295644880087496521650457768398727059564967528980062626661046581125751888647674903063253255880095876234377471542691748237277689442667063763351950559263430395631424385015897868595005982833139946321804993289172953177407905860092369016731119998421723231640448756073453633359988162579426157798856182788633107706357971406003652826021565920520322599150774105206577001638618744691694927849037080888193634099238527611389559297721317098074503669463471011772523586602409251838557005312111100530435599181940638957614276811975203942450897250251310181198712596601763384828649504422276612418953928919217872702971740451892199284015866670331731931993800344375488327383857541273773315191921333275219811216530360912570326600315617839143482419411886396495293714880263789687926481775431476647300727703497166343414405365504556104988716797659134186248124950813068182785118333831009861490168460226783744436186100810391813227096822360927859517093309022838414401738144542066702173260226307169062979749365776556671525602371949541715586997344800548700722253001633492274482602520284998082886442320088936056347560695312625220039785830515158266654146533719180618717901122890977836688684723103337412308309518105539287225457148260788302004962000983511844658638202059635402681070424057463234194239048416097747123289553394328908497265991376305956667789965699926441591857435489812866063829770548440743860446534096724082748371831413007175296070958114337215408964070760829804083859220197850506236531607706208265890725586897752278997330541224473834330356219191868446240483280526432163379060485064412589356566859025943123533923020026078876104883962485590228086787830068264411591612736411440911247911430814786820441842924152549706928111370963665863847014610979622094181681274455212724597376474382775097384839976124818897343539676595208181127544437837726195420317599091213773026291723377874657668710033979382239725119228035533183306896666353868540363253754885198344206565708559072869052845796604258315089037901330511279276958810467492807769865388468634249321266897741540822336275330924572075930938691050269811202302893417870754604989605591557379563329502729143111623105757370440705179497786731023866535432743844622602489003203092301680611612193784687322995048671835364632328647363921426166743074780224692118688727838796635044129654027310355038369116668495438515839311290346911579601558295537815907630702375250461088049990118520989745000333804999345842634469899475612563635434356108574882998446158634132071198188804152673507098113654857229516809915529605926953167220217622796782854050352483992604196750319734283793283782934601589017161781931716639742896497573661086760674621955275283475755803616255231543566031726864601042145611823934891677467526158544060776447213698584543566535006464059613180977461852876754059892515449948085345533449042575025541145001150878516856531117078712664562458515229966690094433685079508912078915409524802908620855986225129933100313216060636543345076880180727032944286902567662071850487354731135849291019202745399022371557534134700461419012183067973377480897084502029126089933757168810340447358376585845468885516630006276330654564227214065824218999241534005008588413595053727712927466085673700485240082544415396969319857079806128576006221760232261381156715520105839029920079628640137885599226774918111711497163426472881898681850079049213813994758860115508414211618197250650856501326568040665547189719354167992686274553431648730669150600202715083132548074992657186817679863003361833075616200982230395962183380438614917762492172263964454798472290050850737952022747267375701512073737114586782603309670087492036567441317271109648820363662920652564084408347666062022966638873808931873626970621670059424929600160428001475317092995977960153899830251170005195970695927884193211620713216356556180362423811653280907629296178179018647508966784194313857960012339327157888642761064847585150339356003504197428362726368232109171847170445991151971554261611809325531472832564449456757388103078023165657242412718582606671662470507946287640069079043291395164368540463540348676824189349910741573717838154855991720246130773192012457056815705447420860613973937561752965472088068007458622118598864668045108121427597351154917556103479156921040208890771694025182292525143314327760283740318027399532835899025709097699442131851467509325886897736472896779063021396693293501800406945579920839486958394346185063452156777164730769054474224139119696178558129070892996578284348258928895457146395318379276868147372693547803992442030196215608083833098600925287500770363796259333196865498927010658808142079526291126231756670904601865908463829954770161171750273859689973219298054873123854023606755613962035262308092104096668344947745088073149234272035542695729606893520828523010883185971083763726317018631828414106100701968051958810875670821762686001591765184579156067640265801674833872556042662042737934618067868116027279506094252204610323003657352500106748740586101580523068704126318170169150493173238435985148690631115765731715648472316431034072468065532296877214041664846068764994686729573616976556659501047317474575502215257765046609766559277771971020746197562634337845290824312722908652018924285313787293448675353170758735850506759490388673285724680442717651124643515177066120961385487702022055288512281465106991278806795594938652946871269524760856417046804048019081872504058306621512766026938655293621363103591107474803288435177595641940274471159158822486642976001545476927023311114284746033167965741761612818965389431593302155958059495087605892426386909525055752031099303823420057723848062711773709831033251954642319671133727103035279939704723047880589060857337462967024758435448719611914157265482960530725194446555190052806261145157302922132507536287888026811543816030150603100890159597847225118690327935012175079624038213529068994916869518733505520097814001656168293820335325041354638396908006625464269242057460542628116536348001243088733962416861298819749314215277390211162714790474157423071437372785436981767934853285528645265060014749744206783554303407328644545218967471967933683004117447547364177140650384158136536847118680079351220491120835133976626857817187793167589732046900540054035889221386742144133720290770286698777053548996449978476949548855425891897896263766180518446200442848393461205424369224925716435228818941452169717357197986528826604902980179885561083660255965310692583189246383870436954219173644309751919819711319430710810791330217829965783961577314659436993173664342897521765095793684891642384569682270540696231056968088460977739484468950725489371072707567978065933789997342981085839562624502355687716564004134327735040998024742176570817805918653317710084144845698186499610640173963039378910212106949378375846660781870905698300418502021690790720034364082639987779798697407529794393810750223393064875905170278178625587948487477035966774534145386299693501529343019324210942066755323353435704011504317953568946691596510295630369313945156417411907670870162622245587579067679727132726118271805511796793063908820792632097863707754281875318967412634789157432784686856732736403057746532549598877990483676863905204796638490784858174276972520851436126146559002009260708518269410405604457074635455182936149136790549754133137198929645511954432938572818928202046777683283949427264285720437332805631569180935904881511591999563762177313604048157395981080735830760226803740659772750635933968892116729888183153379546896013792943753503702238678462626521190006545261181768015720177145263653903416358443182846048068588712756861020306939950012462885370485737687893672004062634878828630692952661379251627911835029284087192255024738472476500459880852967399520864148027480623215519093046958357417293014376021998661824502797681418348890416383836546024595144436542045871532060033721386426818241232302873963665393169021334260955945638816505852701306660113509189340412731321276574226606164858673315693312516583196681867482124052472156116739911989016077798636568994157122711130176500392742808452600408138293859266178262516812376813275891350792669178022325127482026680252253397011296881166487491791922902101217269731651660660268824503423553961050932640573009880867418862777499826545554122765536739644249150960199755196257344193950021363090838941443361461202952212472444948442207873482595830914225731356572046128193810053134122564685993707902925211377551980395220349641813286050071391558110132483880147815671179118057286547735813628657341120798157880533276691315718820978978250174229276876823796094508468743786563718163247242760743025303884274659921111191873154768344623053548869652995430876026343771090336865143165075942472621575460748223226557918263765011022808945480671365791206077645404086083108476002443718848650366083479682423771909688531038904923171343663734687210203674848093733407956707635168761577597264889714352620365780919569405337519707417078550669264189330213176135216209271001670620918972382701973823276232648003079611448804456580367376103008589990272320114944208935371271083268453829220670760756270048756416730182598802331235122456138623348619583978585834528508125713865699279581522097474145920617599063662335201930419691522573149520958920106646777743914282085830570777210191689544486599619552440739524125268985411770213766896677998560685114847784067146517971144729097728876829087103887988001609259306365262326983291258334889944951821455074239708713371025968670427066039997772277068476064318136510139847959478348112245298012869942035353999318396027951519009484160852440940818888530423769003725005767692736009553173548435833886326663720298931065461865349565434353911063056815329431838252296359797698370648717173918225402563183966539466413886300567367646030488817084793462586146355142743335975681767786957251506056233842321893886474869374029899091647891492777194652954966670843434439890451626708156094531693570266509768459903693580531543804701872932987155924255166393324206596463201893481735514352509839826523550455470719259041460453622325152330836321435706261074392189523600334060685933035829189454334655029890529407880491609773219593852169665023265498605015145518265381891105003357991912561669076787083589967737231266839402109029228188713312811632745143476128792687992992776508635212693847298437749906002460164882962980200184209031311145610457077206341953675653817382529886305306694374332185892189428583047206177604707121200756749998113486365104266839614479056681575093889906711761750602476933152661768306035018935196890221177735361103156340853630007643188014874033633204747295477422890382815982223671656897017619490063227875937468207152926205417918590850894907637801395587754403727152120093576351312138434424460664594743249090847097043868363417917019448231547772545816082777792308650734278771050891384229411919795023904806604249991352254161672496270139014060420121288838366101632227453038600586531854653841669697476471204527517924263231242832232077680504863440210684161974411979141039476427855861468044311639571318894941809547016230228607967552212229337519371332759581290578274644520998630607575255451139725988713339322887776213296980099307128872568685301122882345714901499337607005662819528630553549047649943719016980234032304400468390987954688805847193667944112415509851939550711130135427596974548797797455182532806248453751929341435359548963058892317184647100158033272958279524207956249936121492722179161580000252651033593210410227392058143072017373762059058569250895398583602670568390148528764367450815202620254552560627983383437936388687516363383419386807215996518341652004671475103360159932592045240572984736941762016214725054976097452439089899617827027719957029570142967202999951027577692084182910018429857007613674122323784997498000497201388466402216309480625552419919137940889016940288873029838245261864946214033106987749155413330623971572798252831104009465282932456859159718186083548436042847269010175078786077830952077532768609262387226937372656909682155750748086264323560826662123676460501415022231972603527701252595984287422668139182961496963929154236665600023640455332583026516239304623656746049820321435369642644737330339964191727867605105795370208774877472372146474865971345587148287031931362787842656832801053689922220788262169431243511171516825336463672141728522444333892143561388518287883111111754385804191146659958594328983888719481421230935700166818858973255381128383492339812868487195224939117441175764375531113823838367843275827334674425810313881879806733096571031978156898530503262708561069294300401112383484601795105839691649844030268750868338780564935612476246131327385662114939750201754159884883077509552376457874742448908459386538663674324578049676350996183688110493624624237833419884829895666381703168519315044787425956184985650251812121204736363459547518872056380322615216819977743064020900473735020220407976771638845071557277728309939184905821490202603454400723052954394240854753791499868675467516015407288333650724637548268432970918139769812306022561148851193520530874789080390861577606573166791761177030050835951226687102072986280229288320858835000913326053695784190576785840023965672549971074914455660274774189114555165200800580882170257003914649970145349705845062731240673452818365631732288918475734353961433704365308224434203187221784472951537364618798397206661289430385317992832412620009272117527941147856051921722478620027528630522643015663998518486008641091684459268850200722529416762331782442531871345254596991849566401961057035665810581027912271038470848073195784696798716072513392732044056290879867206243907087515130216796248068126516774716553631618134350593134270153576525190454231409873168118376353572150875398178380609922147175174653258800538922135445807823086882829979208538665074958810506417931106934062609489188838589241491014028429577694324263615154393485280395659911997999651775293369319369532816671313031964468107223869680555821538098539867107156820393315067680067607190501460903298029949885318081641811366908629467781795893584941359390812166605079868166655053559161711336860861585228045432822247016020882461747107130105594344681188732163700949877054049517775126763198829289457846800880842621100576007132430980341370871864258229203572694880911545681080863492753702890007759443029175207825019350258785384891599621690982024908307897417603824062914393349804953211353892346168972793855410464502929574992842479640031106671813387024680752085797762704454382018634097104406463239221493181749503677778964393933057174577722246007498943134578757747652476303525028829203624434011477928670996494424820596871868361884385169279628045457357918480561978509931729961813750363301774390807581682788544216524006047090500731554443789856400805719037593973190700514068139975576740852571203193399878439463819075505876427057130655845652963864314699230613008726902829470132079090331721923999698108416561354469545672516602366778274173984032991691632264032449078821408249584035372144518796000569578777590449065587525661440497109849193119498502598764840316903612172714332976050884466969282434308055986313962055970407915377221610101998245831483765279265674621901772168639800940182719274731637520209889138159437890440796214836999989183959028674357459384153879592127554178758151621788460453229189892037080593220015642298139873342725588065380613316235383787968783989164419589484263028011020727228672793630839478113986134800810912746482950892157456540753451894685773760132641763182298466415558646639741664351859651232003066611573123835241887037814078349046327974069480748608536343305624817886676600662503338589790960280541341607316610458590943291315150423698010126180230329739005647705170173284850373549692282346062639520760435839070676541127002123752133236000009221193101969062287115827707726777830620981005318935256978565423800151665453874256618672457765227873774742650002022567844836459461502415811980949243596906974172617287742760234797757998900805775107447309313754626617365962592511762877868122065951840956685093386227814892597929858340576272034530814965023708831202435053806066754094300899559997657546338490006993438758577589747371614809607131035812097370909332460310167836674121176556192209966140771639240095052081023103545242345555864215400497497613855927216250696196415301800075295025090592087600863485200934882876773042882911352743698932984962722094339182386572432214613544868172008428547886316365875243207363700828499882404672660294467686132192063557281814456789698126278194760741334088880517203964680622629940936506947490641723653921983954037476775148678422155801099013702688567204951526222259758589433455349086265081232350270432975075517985217363117319141247143258299215891936977688838209091794942171380847526178621547047300279192691924336247058221032244343634687295433651927272306414924120068424054095860228986313372627270132920744679572651840527081117589835160713505408113837831661136382935032622985726811833401759624943184538444918769818244243923550215364148684309212349197762388156129832941959286089112846077781778760652487580475365295886207696401044898643511100270618230607180728890784841931709284617740156621822052404437168363648962449748249770498202982144796840650426384098171745705401810597753271915277596004667633209413017269994442267307493967701424620365485603488451105862447750473108912469183092221716883036534080777718622647956578962912415506682302602889763223199028317498421604487815232349105179780714094107652884373892918022467674943845057226334873639213342885650399398359444411373116648937722820589231707067794107948480745017069233696598118624309043499712336992432957524975782269456533875324949118884034540743609792036396838532822999924832416818575516924702852441051759964545441831741953200019435238678780197676420390765667807063569614873593011383552934818238999016591231488479222891144771099499117029359282950636369784752483601450138162188376978870799884635576820350417479665443867224342002508861225649677330936183431036958734310179257657283047470196815438504236979084363317525646790363855565677045412226119164060097955707198195300474764505218797646233924752261699551630461660870118999480381125367157919889796120897828450143677837171129067272375427655624956951947740048815696411616656517859359067680363235126302432460973230482126495341548644104259033079446404987299531628250238202802797449294202297772675744901037288273571160990884879915888787613216343238749943801938089492179145381570117983966738367929585602155487796882393053276042087727041285021362084360963139666657348532923996883649608880090674635842405931677708546716930764421813597496136443535090772002254827025069724156131450237259053217835613227305770954782650859918029952017767123062070653338713158644296246371691491831109341772566223722575393861620191355415413773537473824188879922196504645450543070873172240649964199148828927399964805013205349278006681135678258196199076935058104189827747194639931845077067334253343945210020207895713603660093350935606565963336799111262123926813541637984577230724328141581294385128689848304270426424040876528759449580200367453075392829629178722286865362486726771775651834699961463449840545922906853714468459017970377420588234821189423137287413087351927876688326305674240011286613200090714449329959113465637194153968245673880149503561161401245026871880469604884753591490383339460040541846605534834257408243280503099994070923462667871313693847651873848249780155206955776465811451790294021921928544019426168115023621945808402755270348570914712720739730533748168702456882181694633636648107188049928641505188584249253398655133796194816656071494863200754223007101370740262659932788287718132948107447008517757802361563167499079810316993352649199099816362635843081251775761493685391737852963957205026372425344449592840543196209927291129176817480879886047476823866427006785954037948496191817505647651719985232730611587271635826189956270868108808057603189009788285063930568526101892114662322423715322309909430957263629651283961140172405225103351833617243612315979690195926409525845829749457645547641423910070973484284720861616657288255657512424697897148749156049416283124156053914734406672298337598164673184837474725989699345274501666375260345410019937570968195707636610245062316807620291028228493924407687647912771206986727834276753263787075356990471304055811767836119757990867189389049246011714387509165476997978509536643948915316683215714539379310348360166163797885412535649212909373335907531689699092885933578377288718713029448177184928514061461845136307140956663884074371263724663415875858659777134186541325422098109236377957847134076045507463121317721657291315038554055862762049920636881269224670268790990099954766508782510557331118928450055997329055104462400162626960806953129330109566671498391592655831669537639442332678173862641027653089633895848188533500963662217409379450174651424069295074767406521514291311833322522313189540743733810128804298166446105136529650943938548516000960139456967625146291330655602977446596711983165549015688293113368130942387072557560114238267954752249288220530157820430850707336062034307881144583789687106406520276708161909742671744590895041746825835011015042013668273793040731016565736490377691976801027111192803452983137236045761781344048756825623598850163461337048995677447110893876523988076987795668255531960220449892131550148306814896446132138811835047469672211363092058345871581524761238506456794020374370166787121815923734705625637170755895159812967744650795391299954931083952538090206607360554019084771111122191013705929395626959667289481580755583420881551478589102992774670976460531932084354220772483558100332641052345018730742968059312781268513795207443917349468229177098502213555897013310432047479596777715307683740775359059335911704253459192481017081733236028187521130061163552015558487821652794745559962780686033953024012735694319170556239140766603190714018873048781522039160337829989607924421252720916776743678025066947324761670696014819327877575070470810544372086660279275073828583970648816963649870713467595109958373237024334248565982638092698780394478781582903804944581479423024794886225258072642708705150503203722090353840000973263479801646524066323682166777859383551125737148935140174168459962350753615268959454919737258297412293180482787217578137842040554529402730176319763631413272692178842597424184683823828979624142436014961624654873753569348585397766714272914355403706384820118747935256262109152238653787269812078714546056662733009114746993119034632588323806522096560898316322627238932518876400891184594472674915586568838280436943448129948464920680688780775883336803685883943385488132847064489954892351266234754408877096845875841776914995244459549879005433609872476176341191477698316688731109892380859481154269803368517273294757161131008639993584048545700883003146009493114650534531412045062897886951592582948101719217699041497804463440747003356250562277120250322709156431808607888342009846337749888579117679544053654682343212468621267620104685668268780949355838505510758184881445201367913396460699751865220839022198451965561703178356374012608819555540934650528206965450571145904556018277297806482855452956007555676287624743577772678552351058078159143712672166831973896053910360358640994831214924788102117300316195661292475855610589362026357060040688206570733671700990448117167797887358812614055529501372220785434925904927927176367890730877702170707010005687903336359170308546120018258594820166641226996028765071738761320409885413296450168938031974601696611897477839412197911211123693563579078048935922401198280097985416301072378596152254960335452471108827404516838525760787584557237308061726705464714080433004681526175220017331581312513754748140521804663359271319094328316005106139907594138922980435878399116023999713501401614823235329965689495064724518766141027639364191123433921838872881551640862462436389899091604085706197124617344277579846599343822314080538368173046804092531499480933362125711827200261952627099774598771095061155215833585388688683850095397430539481443923895377867473333080167322472332382300603406537263001519055521951026234538941787624543283726788286074563179069346450109592545598391188673151960802218551330522308683734059071749472404521589308586336914353519614493940864732986111032858675435256123781992635931822429136443832329428579142874757948474540914502213932303977140597023446700496641272982048492905080376912338163234592717671750410131082440027950437713219501300405567816677793298306616016184255051690357488008416885060400648167740197949186729179425467321613512755760320941283073899561859697244477230049522337793575483546033045174988057736643117403195522431945791865151301597714117047047619079212184750989127191780835360569408945136629551103468071213354438884864016637180581869922988991094408339390709307570585499674636086129695502541668311830700590932589255960208235620202527419355487368887228757526484681497581244947284462395616797745867889848305303839176635991923688528396284268482222817131955143510464841186111274666707218262636771104852284757516786992798276989931022252831729741283495661481203093164229979651999978958786742172870614048180781102763724048220634907178765376863874769855536168804180520632084399662136156154344045859626591619327716067799861148346487890197383886104494342404208243461804637765734695432796566292939648772590074571955681677336148501486895062017780254962969526333491043623902222358492977756693265878228863472141233368514407881281840401654950493246678864087991313103774597602368338031927581719496399275557735540867664793020806042662976015509414144990798990535629241884255292213857236755681217136387631027104682848575902788462747363115474118904029997060402784955225793941156371672696885876403699719947932717433665738450530754064016508815268462004201936713138438426029252476414299762759895911082123208493923963678517845138871038114135685396592223103874923604217739034102486789042423602520126789592191880071738219059330041298603429104008054312792283422999062954469683225920123931213593077471833311317068215825090729978846028141453325130045072390259791463520166647230372932380457071335812954955164143224651092486961558981730149066323768665146569489602918239747960731863519483869861693086002977416663685696203890017086488368273683230436387137565481068772570277108909985722943087873340152901511944531250170155021153992417099141544643735058696600021298023034048778100118791069930407525261670588979690003009456033511895747176819322355282427878188458447951223635302912439096780026176969910851909782832108258865970831325226819138450308216241429607632140866434009409678050074378762564153652665063434582341510024209786681507273108890388839102173281606826404699263776951710844945530668472403253696614962427816847250102232846404720204080413398041880144961127574080002253091184682511603467063092451116879036117293631604874242137616047440133928858223536337753240554930407797466742542189449720981756608417594937242963124784237043490884113545777892172274943110521234829430167582285779390926248493338044771608575600193123256467348695708273976488196257994858898452032830449691729268591957203618564155307443977707881563558557094114806076516764432842699831719013895474530411359031622786455212164915885586813411006192008728056842198829854382804086161960429647006559987695982126745921906475849476944376193986015955864231817150979890234220843117515843427210253723344236413042352998448921784384407828712490869357298420716805262339701204709476343753208623394988074318127104978351963874332866064540267835353441812192201590958644247496317732409751643821228453592437214320125287143690348902032633734106464436215658523259108735284542262092857666290140172640498726936578253710670509088996208646630496033141658472901497109022803940112390506534163703655162321831823426620871676772722924663681610566417680856649812968219683699108279140040360807729900967524318310525292573521984980104446979669990358238146695329899355678592256453950075219075377099964228227971304948703597126479499746818123792399695547196235697434399753044047988562335238336091301976174423517598339044520644905845396335718740245806301418470284593903635937812372205133658792584918114027343738970112479149990030837690533324501729748644417393399772016984131756789250077161033226475230078429547950661479363798283427446250426278145731733466019741699748280658892522334157697330147927066079493021475129424128667444439648670001434398208864250254770853014523944504177905176201956064479877149348546908470190121952777674944857726474858772091477753044871143257580978835760247508179773434607914976290397791472452364044712793594980631817057084175015872281489289712825074348911404689014564599654473323963610165642507131829111030730372373767869281552703417333084989365742966798195642671032913436411364356651287011267434358636180615728548118893643699071509004920583872514808978994050601623795972289252220381614621185803936614152573354262051402237604335204088671014561202533987239017483904268088213411184357609953635828283831507539930839381732776630498616824439370722915171984503867420534973895528399573086462172063608398828337828951993911468173765595527183420880550279247981875003681797966668276477604494316566748229982789466764577510965255395226843183025818230665176828786400344749967164871423930406620063202719119226876116297353073857480648286227503017433541589467683231428520560392002356679581264176270272077426938232595710110505821530236674333422838261006776144850808313703579845216200757946177668969017681588857308335851791223980818636761573203997061955069993504951071993556569993922711767808240985891759511045155640706525437375617096001049877200198016720854647183697642670954152544751136749779275326778173701229399639471251905657778902618907842625762852596579213616228800000607347075312772080718636909984486686344643792301178753207387259892629141293934275709320176094205377801993376545710369208566689791653680966850802919336088295998072268842917818638420592245247165499194571493855948764472656287891357262620995559452157634167740575218514055808878636793524381512700422584973912742764219822550188736217881352096627184541895128326368453350636565971492855456346497511632291453064016902987889400275475963794933172642777796146667524128543426633017372506867911534990344347438508306805999453963026949764750691777162885248562089055128879823519479622191359425488358740661418832115876052333266941266065074429069685852228202594934800616666542582871277380356810113152003185383229083019538864996418223161470776863530515281722849235859911243422018531138469613504963074259377012881078651473152029601134612060739580185839928218563123963138965285235960626634574730928297992105866359780178943137186207187763674272803645513066987107565128044609709756723697826851135720590639208638627809272942915304169435604933252438428236869437121084196291397450052752380730959750909802118627480668698242449970461650483212094177465556835293445323926472147355044688759412143180303254956863468558315012272453727572024640456059817806095803759630950129939720802524914655372392817924670445682323242855680047972406722064588858013330101653887766306526987247325107543610628249881156843451032581258704792021690943196693874590604570987665701833723863925866389495793456751207005104820074151729249410865956829575483459198104899886786887916237192743126269502435134828904425853329324726024533891245887110863872451719837002297472773521733158016975557372793971097494666515875643391594549471354500843445485359800009942643435290908151159894403041088062392719291407465315240137429355284883137535714531338553023669161799841413218307054612054453941132763627400894966851960012273839192660897613889404065916777936765641056037523556147478251190535663206635275602398009140311630393346352082625661745155098110384967493240687991966253613454514171665831051541033721921505105102934680266904189675056738250501608024149090900647463157021728997411047430127803693559811991426131608366376422637618020408800570126756815178858647858776486790804951922151020492931960194681936949417912698942573460843807389920394692559696356711445632253658608090513892980626936115077565550572385258628584717812806544089063805384563203899009852328722066551374735356488076797184653454773058214807743319113734976753723692081144153788754081763293077526303121373357473711516489812351155408649070059516577034727212821287717101320846649253786248435453807698666874874892218666905614363867628401086270534422703311926031882768495458385200801891758375824573107685997973635373309754754001467795402703028725850597643081861943205798172708544826123649814196831991164955376573158684729612587902068245401131862335004463750374918638986508784418736451554099611595510032376518907244926820094442625243465669203235626142906125238745752211835644101120639017465263786135243828521579213295973141572425426191182308672528241173091527818054967223239771409194688555817751041935771050440167298049855646734110667533244013613939657942173094533068639784460267635359020037071286703680422457226557524968888962559620148116722330019321057096702275045643937590262741779587180011036327052698170043383409057823351282211253632303682336211167988741423914007992686414015727746264213561642422185362825837492950130444706895447444010988198784226090045158465700525858133937558560108050133904073430329673246394812383182707075301443268171954090324614668010470382392381712178777448504999469600280838923565995361699928111220656770291582184068045891337135549430697016298603132977588343425237020257334863291636757760166307039422017097566150412198909907572215485861201799542688188022877902905659520180303647751982974371550896372967773646458549564461750232490905307112074194201906079064977728575728519309651385344055703629523762310047682797214723556338767080880979444602284266941504257243817800455678924551134508728512426663352411423577035717953932823921730587355224531750343563988304785215477412978361846281744118958808323997591040574904544622985783512133883093346330807946469831772615134660496363446676125085214762862643441387556853661417479308170602924105077489955400615044283113834997394758245460611273791417200892440156914456960283216400206787686352363289288130578657889366114880347809531987671372194224385336284745263207455511981000656554864834767127746304947841709782153090374097947577445336356738347511530754597024135075311134838854815300088701061834275080845093369675920792923070358363675261508169755947850276167431670635475962360994870628385169436931511193485510337191304892992490921358189726588312299359241734626348130816711197028196312095210538094629225473093234358667675822605410027094285855521411636430903587721598562081967582619336368294857734083000470459266936076291518262654954931608999215988034743795093137062691309679732003912601156938806351065260045052250945100536120563601285301591822846842374612574231745174306471884748117304751759391809840105509710803814398717088843095584885525058059866160941477390468117558562384335678933984827482411607938585855177145159887340484138306006136404390707013613460564755882230255275634370602765032008948188220086850512955765575468057462411048989344981109305687769771933657719502994050723434542517531995784750101463225518452016939131409985492335499470583335245298427207201228517552159027093508584720611380858586642360890375405475395400811454963378760654493323022354913991745666183776295489381322028817031181102760280463161943280086492587192912470563442009037241347697882873478309108224574314750807572836806888834781410946377576664234989842316265427312906295674208772255990696512218377991771189839094997652998791063065851075182215640066587578222237420116041385314184243052161213840389735321598653523984107702966438142296397705404487054792787349978119556720660597447659471022731769548751179815227895950944235529973722470423399390592715654539283942562157418692290698072314386977931047354189701596657631308730599180203432176870227593496831369714053138885283036789735069574968583505827148613383929076021606499019081772090885911300090786957058534060639962482250871486597797609917383570493279173213439534218699118607754955872446662269583685428614454218776185199402556417471449776080399471087142475264829891365471546329653701222562592919102605380325714434122461722182854842297454673923640741243103307734204943376141981735166889248562568800720991289925717469528871754583576214264948959074225191547068300924682156281361776972446926492746208441396857780312608262790571081804484432662302531202631121787840082847242790588255531502203664969314281766340854464371258514947542714767990890735174928098327485675021382924881707671292265726571206368654146241714662848800703476453904691013246871367269271341786324849498446126877553350728758960754054830576582968288099686364063825121521493513135767766119086370482524461304119047733476319062359227678720756738687752146213495575189145111748681913252883811745300515637127285294731974090031209222960940855170488577751549882587878638311549640624560586847719675074109239143726451335416328861931324273093696373833906077356753592904677198039645793992717902730856021401115904808662288591581422394355672682721291954424022845731354125753172680035928303071653699765862753938647341813397120120929271001631292881094906454244707647575024022015826515979402683356873864376835594996044760370463598442636630261715676101812422326025415020253941539037457840012255253304813656400708569445370496263533476153362788459043114431761327450712717748113914641911489381050597425571433860567315789441174674866650367376489102560254012312999323556543973461722498214178589680289140186847786212352318379968772732720690695942808136627893800571532831405706286183230234933541520748529385713651009966109734600606656043727640777498068734181305771113967168755373678859583520673301982278854367384124971055686731918267329496560917264752462342089886347914329314007759474965365110051612195923924588348550688169150847730414016368069097171952035229677624868685088678695871917214600479453622949050166984961022964979191937267608421633458833553098461509581357140054083210433172893254534029054631562290832583569282661201175284577706370983441832431641780075291356814602587598207506844105604505816601601172861004173477648423275796741844323271372804710434725079965680222854321646042082545930684018201528949072040257791238381425049418671005861653988936055355382705913534256739629666234079761198089228811836659833058064004465753875372877648916137087191617051347922308342609490170403502131769685470180884769837495712159262748446129511970007133881960786453548461886951223151144386806815744635243650506406517938211005909508893516549097608348578785764805139816954842466894817620365702974505021642506280161718937977276555825152859599581685961902001872590997117273691103182043539242942410545230596713674714959358882091835603285354620108550168802388404088785187506255663218873337262170191537420913961320119579823494320591939201269135667023410821790424333748287558873821578961359838432925211435690499801080312654549662941373640646805189804738873042730059946227537585336551271371106672079009297615604382006867295052608864890500411167737648250042937009330738784275590501839681261087427712221744086441270430432384283731215449435769748544226855226738260822853106361738032263766085369277233653723154828923058965268779383529332743580917320666867996312144227202656222332092985455723984404364167237799129650983891190235997680444306433473890426609714323517726453901436296630225376854238975929030267575654512545358764896960988588744425859174970591806704568337573160462523753597274676876670440322232350442655756429064785134936588258990182589411766942922056222430645855992879515974426470060504251253491251201117983741559155362102055487101403563147470076154092227505865607936114895925730003283741238781665993765847530007452950492278398097423901570176532933599852672471814626031330785448713417358191314903848253594915607408955898888834128918038404621343279553194987068379942617528393569448542695843748615144277806688513130250023065073389034263092325070011860690355720615949538411698452708557236554349433327186698375662405478146966614492481396423869831598279976548282107248488771983556655062010499479486859951900166696124812502310301953077297863937442931119564318038721340670796983854074397472045588674291262975665157549109810660441889637379737042994051047208085679087484054273197784883190904415709340262389438613521297700535198546669443042648625871101549053546027339261473877412276932393735088087086037285794239273250843132990140751038470175834569908735032521284598358790982582419899065310206650550649773107254288638690930026167839255352768572197839597489636632804079523288937196897722872055112316077886781489398336866029616427168971858920898238234440753656526846257722575679804035244159127516692225667880528108595549333245957859255328245559994123147052400255570988338693293294193069161525332945547647167303016466848061525096514784750736606095007131532722983987838640608971209063372128479802686874708307089254023724486311568419343797988218888275524998662018928589225955234073622997093515122339618654189219168763330323756915625634063348806609111365440654599171470925076876149680383048079560799243790400416120962111026135813812787832222001654599589344592708976754322358424642962184312610551598340618681246318275116012710353464914946576169117312264067083918611645420909160575769987076160689220442615229630624771523340476044174446476759645948804918606890487372024920366242763278867989697682413226508220720936103124571672250263919474932591668514322406039678862287884758982183691894520505730911070052124402241077068680986366414702125347239288653897769762594973390420105711234685638600365862932091027409654258856053712392807990071845396876079067958519099303366736967365522862957946374299944564477559604816416036654287846536600419264228204821513922072515606181847694411312412071350259015913265878179341553269827842203247432644078811922920073428967024514655516505300912694372475977247111719399609517870324151582130459001642042187668180018162317024589773616176344418374844534504537616995223880830962207720312976575054650545904106348587117279438497583169728297873836671720067140933670365857686134803082936739933165708617675742325720420279019211914840220274620380468804563547891861218796574389227584489159438728631458622578809734273179955633195193515682210150171300805562251608691696320833312641266402083079986702552454200348610870477290577455717653315991991827061973300102811932213639081794307682879499082930368818433230788554125951965274723154217489172866715268898008083487364665746155598428334267344281570481122913190345501855139792946375886496150429926769724687767545205575139765305907044482790711754014325500261800667384969324167944327800156959230078926968849909019008172599307853098707315632702497885503564403613429026109891853715247061193895960916426094608416783943993505620719211531739291919215310943469205357193016912012978954398157112780430629486125484014157033017945971210722661196388024067781853181603072958136285597468315985221717318597473452128647454043703818293540679364259973144590013915541977595066848289763814847068887043942028037429794652407124490116743286787496619625017084427468466852338656625924371195206222826824937484778037183136780540932976251147547539577150654633387172823743110433480864683178492751369437826946977456950976395134990385210529825651584729393788602271588097117604583406530904989236834194751289172411360858855384279459067504061671837913078867346608320701760040160576846625567967809163115170326885111544761709342191751730102051521099782048771945016713465872368217862236405000993108833260157924624738701394968381060073661187619201365062767034076537220705254931986453331686072961468946657964168896268204352867231033433003702397225683066726878249242354101651857864245603887268838163877007874234612430904352829077280594410255128229869970472738641185082465343069106852010198579352121020210895000520227518567636540397219762918038823497445418156160484406296550928271002029646204795163905528350906719803558308423784533176695460853388747907522098344620216061420020023649267864482854398375737161176552503181132047769129032801440511669048160626187948311181931394351914680853749686553392816518511817900475281700796226020681182965166330668276957519433902939282400218696874199603180844751651098782925388075616747351809804801826327385380701969830825586294377893265858610202161421102344313118809023401706021256671533944573461773037436655632484948208720012612457630833732554655488139750740011123387904566150950626722293908354531746121952260662411508028149058359589759280797171941759295720527138866348673819125985149608709198020523848008932366825325278286710087532884668490357342944086875076135049216385426614270610831164494228297612044955703244336500221331968229685386566301909768205691347558385130441535002033451543832653297253689438284716601350938223807152021543301050363615755083741052930349399761995324775532688911711346948261908039059677464268925670563181972366407078985461529898318792310501682605542148178780702057787372957274712684555689534468636442454879796332832495385949655056321054162399124541176068377841575218431750515614671792126662667755217056439638236739778036818256740041109404163267319930159051715925194336291654919665495112313943023504582519607011076733883308169813856006005322253848891551714045441628065084602638017853964233002315105597263525916114271513160203895976656314045273168388107827177126634440806785159530966708160413429308766939519785838395405917498965942799076360569326337187489964256251052818520631735067607933691901156511791904942249022180231942632523410831327300839547916457395650537834942748565969116069208927696127144783992863064373888955223625188933100291536499210821688775739726001275976313163436283430991305736345973650459667533083862561406262011155246240969499328153249586977212657561528230216413048378930732133561594465972759917910509732902234936697350297013796261193277771819913501407203685036205743212262859186394401761291219785666159957792833767885402580508784827402648621651902596478127065135804202662162624569787753761298033471432972049416495368562108907464649236554378135088744590186053070889873456759696784550806963172354861885628675858256916726790327735540822912697761524932252217507058520218803657291761415082170322893275957184904038569037310870674807894204021112091917306262383796110328251303692631791699332603843581555223656025960610798150999165937051267750730837429786811565156831551732149056363185028475293115855549375749660010775284943431486441607284469809571917887512124827444827688378877244473189456024616505162641276088360333831884224043182343893468858692672200521330377805835961658811955255827407532896973303102173114076820825085558265576609074641144877340965028505182585085497337078865592337093823447916886553038195636267037394177353573693346112316283013055938442001802440086310647362864686398119463131805819409968773641489482195423630500870687004472511158389027821116700054902321469986846345294344508496084652647363971127153304252659627322442439148674558646642724651318949480288635765812408227918973371752702371038769206144832290910699185936136250057789478409133052946482373076372479210603335645941824838806019587422121512486617726132406685708269058646722068933344330110535341787415715574364489968708648074797723178060948357753035996195665506403420978263979005106411438059118387787893090003373898618381989214634038317186106284721968377724825541121417947084706069565097384427942148080161408050189190433764311428764674199959979089805732211471329733245176308514540421011993024098790151387910334719428034458720309003362430695032331271121619776491536114474424051566074340597378827648638024471078382350038525019845145077170306231042401255742570452339674747586912900526209317051401884900588022940612513452551842006457485859249182692189728322612218818493108524755943952083391543981190080352759942164828932005698366184761783629884305650393176177948232600419084794905032096899268700155163186833573092179384142825326906630164750829447797642043849562265628089957404724473663254449262887674684807392007320821834020775648569589535297689324417635781438479372085185576553877720462351973938655903442445983602152155342182034027205855356367911476163790327683002112196155810475889131192722757609098811500470290404575529931797912321942510530484106211729296386283163086193172043021326617234747592983980003907763834097655050945349736052180078867141844330503875534443306447361547515775219772463975980153321154081758835825919565933986295155060154106162986761319394829259801678745324715725625182318822911890938383548569691599509715535288713659545723656255964895537100072341160659521230373967828705119312946775276475804078940824754731280113245833948560062680183311935993275535244797264752593057792141183061703074460052522847472242794700256331827424626189027667388681367492268791718787268481358185087326005887359616075879115541416152158266929776655425275282974973977388041318347692006542057975688686282735403086706057294120672325465818124269721450171511971888832932366500606267924321786971301623325277949388105863940093768995497881108875204818314926253549430045383110426354974436817445392310287323876138006648365869057361946212298426178266800721139933918038251058614913668961664078624423885112219096956807912259927624465120914654943729188000768483605115082461316340299187991515957130605678690940988974105439554221341290370901080529199843677759395432169563916831732350829258572599319870907514511586600401038596563179219613142851277636538243683895709391595948743144533793224548365462291284795950191233056409160445789815502762046082922389157129221877075903500015893865745192715996171904183049898113555841340545457906709779141163457527773380909403844251917258440246052263261360611952798143937729637440685755505586019211024541311968355738436969628539827017189303780390884751279394361293573615487470319046893295124328124406677748893337547210313195838725977775467586719801107358470555172410350023062279157380326159214023240797136809389144050338118228520946072095362047659866551228239646043169318734883862788190203949428244241057579699519408008580568356085479121829056282501691264708435614277917405366184195296601016974315423442717127922913614180167013098390708641683969452648336011382509165686961099322339580988254971210735023172768333886359586938812846773187423787441393787860814874709644621190326365004307750556120688360812492596442755039467122503907205896939355613321577827114854493603292270661580169140920538788932045498413116940964347166636050514987303392948525143292597759506656234300060024113473350819321813083791179325753965102601726071258956515273666198550934958853105967860948761488045923881100512482029735043724338836948328601599035197562266273084684079987090639550146386675522835075850622186845427587264790794014791460501751150053771520436284126411227027945536955497376356999271261327428475504002919487988847180731926611323113503215194376999985454627364944922711254759823476977521224131115418359794046128528585940087056405979310072820309701447385954200728418242513953429611459642886058136797834842696982505280471291652765394679655346666708549740653817948451278012749112090789334784364826496348416121109957273971974803065543608870896560098298372363317177648971090625672985685754536129018663858044300490391404709054833339189141692027193406242884490497829388501863196796845378748583558416772895758983915778779517467713765603107636761938050640211290354071907679887500697899481912127075558306240744579277843921978734278341387104659953798129043902742317198534969055738623595969941007671024785023886196485722291952463799815601425351336954258840120417279884047154614074683852361607167871275006480472602616543149801841155399514371927071324408666437052628721864241104739022221696101456893160553806368641964209076467296069845670540850335951860097754870407109546367520557357385918621099678823211885758571775292071494337929426759873822793567534125811203032539078685634585004207099392834360363079797855013495457166598460430716473067938568489240121617210084742447909761634084824267609027568851676130186859484961900335242434597000598468816225635898025634237863627582608764799080138914525815213475330919081715263631626235591845924265625993125569741119775125548213057692006528756079797202945784278617615259700536421166546518620889982309020280127466692424891300839374962544957217492839944686518658933306433073969998855613327226531838438571170519669625286820104633766707626778942708470901024481132934507768563337661777319136912620109704791061472792437568504401306031252652353040491550232238555908473376702616444740684328114543572811355324890908548814357434084358854055359014717742683827728313493038143827421541177045602097052577027800615141258037180952441481712241093485637775125732027846552814188693837027648905860987892766845366022522459071603576807022090077556660491730998893890169564616761691016970751576811333207306903570763320214829129778004251285899755782217229503351890667330428836127229713817584698422695064279403222783878557310552509290743839008509337944582928273001391993577852608666751405480217636441372074924964884056606394469971608809360304227544827883156925507565214292026696405146154372966046670756201918769654998671150413202827011592373735345930802549888731260234990109053384735952375790402480167450519982082519536106936992740565352031643194783127324799707375654046564230688467265965040416209472818638189628372091416270491139734828378707663934941140815009575390076078627211197969910017554683154443746143903551299834321496988967675246325042588315584830047611397259559740722983762974054153435793377301793549469802566121718460312105605244699193388049514308464033477071043152214267610814323002493104335003783085762851882980082625414080115328492765479341268408466618196467832575869516116548190109346591904445541037542943173550202765709413360609828028492547559471513088448403029000358177779320963522318696104903624570735160092854803585483883491633814436995889155016477836853561328320499501344848010344765037888939043010521573288762062498812255155080391204657170727992669971670616857486734963168511509029453510475456345741935684912007971650518552931303217781129742942657852150249784106234388756243816026586128617597651731556517169243361316619236902740417785216610886222535794077925963079817994308563621236949702840253091846575041025596577893992488990117013834168392294996500471561039017112886935960617165878506758679208288666099911617244434782970935529745427691512136757256359779229757057506840087320465921212014570941622202233616711662498102509405377776038199080879095094074115861769253756026903708290480429071452387318147815090628584321834614807637451877462685496748688772209792800654879145820795303666156596146005743852262210232628501052362594651033226545213937209497300294161281235759590001664890599581021145102338347464258787587450673212582700151783408880852748461855171512161652096660844754086506384028210932668982059382191912629094008381220598627564261382624903506297024487553814631328796212124332687227430266143327021566930593738093476986587738425401084485225238752886853463552975931155038004305161266514616927224095341268235380431006160880735512576480899111334811416330839711654313981111529687776784790928510505734688879563142304440145199747722376846282574224765706967333999136125460433481757539465216308859309005919282047543446347340753284969520003417651015090043271921715898180056249675897416608661448448584101334299764540642317263846538824696558129509191386734039280292929333950059829593705643989008428760679423272219926522217000429509468337210534732040808224838693104382130981728780041252067463367872540325814925714662999476953852191084148491029194972502492431377509619084421726683697379211937279656013327857885601353652154400268631138297772115843361404924849164238566317725149093100551629969603721848333622410927809027897000900309791048506732601730958170169360352237487117049008596117765102345033932624519919290826602814032527394829448529036225290223833699388773839881726798739775009274487301539237580232432357202982765495297995703238483589445630527634590507633029059599980505983938401342195557299542428067941023071587696644369316924446055908754604862724353621569117824867395148401281501493229932180715524788686879215765181000425112473863032548662687843039065354547122066278384681382776414724119391908262141151227941152853442711982132494607719395989736913083708551819894060670301005955440348202936316970370990895696052147232170955996783876987048044808738631208515131843730618515424728107696432304805699270539784149660576972204172275647037455720447290154968759207739056827384596990588390824152513601598802432601222751443228055585992635355539607814858329681383600423503798177539230827216329674157317408322170141335882426519205478866671045935934965771985541969211334493094608606384499495189759864310880056024502042026931312968512098807206888836427207256096894306342897851787462005203594411720948343389782961103470164416168694086849351597524887557845949125161074787574536587516955402610820618670893339755414402286124338245505514950635948024667385248212717465312402448617584913795102087069551185875046640522928137363614524832467982462441667041356399085917073657243536155293497949473944029900682139779354572411797564144640387704079046828268878667137493521995208420992574030117649949484328271892200489364818984710382832105344083687318563041493423981959637197326933432707653116453992689786295018177193989135253951681806898802000019964069680927059006317217723767358370919394423696365033235459765381310007464881074049267864758364791377795624619241079687301986451858153040079288843298913477539872722304843962629739662473318245819148854507610109034413809160110721406795159784962689981019792915514434667226354091788648500835232170322638863964845958712642405322941238094405507139852633568480655545210514504732655132310950460996191477545209234648006974101599085375511291194083526281228645940043343263921282342820568973546026751048736110679985047609289194228341896843036957585594529151267675922319247316211485846259051701655786783218649198145775301678221119709214926962738525884125803457213658625081588126155692844833036626071102421647503158788140928441322382033870484949254283853067819405799439591626340856182172355493857209883457425930368761544604726096556816982016927662008821394886551784393130068633450471195548627023875470729071076812902250800829781735463663620887828029543265093211595382547895651877069215579313924855771549119916028630115415707116982299398473273053741291037224325841865147403280414070343389706114176294234772985056567021008132264377985188298310349006821873196448864107776324199629491283882138424951078246105802078129025506133129142662424826052276716947179744895310950294026331496330553458735729055955001992582175121938167817083425282202849544047179557228476761682898397186643314482857898041325001027065430180500999192686323745777773653084791465606938093308173157427251592488599540664827119392070096893682999194922461038730204197068269895998178191874231545224448594002357280725799382197331755002199615179219175693257321664391331612394394833607859969046012166024189881664354687357792708448017540810861930152111196677660425281595952228643996564871192336372601041835096503480562801905957074915659186785329560951733822101421965247413104138375008467439409969620194629317403444726932273554767373749594132786688345613244419977812412517040062282738434829133166681686792505743486972578389590789173052037471534103525253350663582511247437291366497236825978174883816026068249099699395624403743337929890363674352480782744822231554124255334750628314579046631221027621185514222843059433653563059496326981538189249523880423373826694622789049899243240556435832151254202841197853827983074230115320641202253341014787632702569000577517877446983576574076462037416363934853869104453756020857609804271964942568954191905475769118458900065860922964275712829042413672793834386530897611367682696271079963467119655652733408423456335837262973801057955833080570126672122189166725550803112991245218607785408811425418864038852613537342026245590592476516397622059247839680831520127094600573992817241856334194569035397774027305623912414088460351317234709006425688443251301638202402009916012821263327440874776881105686123799746635784639987488687392711903635373112072165330357397597948914157449486132719244425339903331969555492627873900070531414572906215961221968948184577658427295286796824142208050777371465065386454379050627115133860237964964476382075567480359892499945555641482649089152007848017314132262947380535529587039286412009010444724418870184148616689820271531048422204538995714621924881509365471471478680591482737986505792123912038328497993715815407763680066342771480735024727747791765212325533246726995881815254539259612461393009330102995575185463115372658978643049531623534047586190392887337225455029182841976774011412052295928247940074339030294655260076316881255806387248622863826850193929225939772096243725032114736161492945585311194406833863934604152096335586995514982727450167319184703129865880706738573041170782650240606456385235927607032445379868395549912503030091248422271450243635334178028595155166164253276646369101926739040383338608103762603129975587131390501628281989918301523738944881489011027895702525996201339445664781793760319847575873619004555765424392500838123788204016155407416423939990155277775583011446913455114995261684075342090512292594286895661930388485091669998082480235750846022301127663145948509214801697876558528119227365231190275611488242038754253770256629688475031007210516643563626660788338903303185057769977059921506019381784304861585502174911438960360972227463534768687557725731399805464963840404451815068208769863128663329159543676446389617861180330555451125956032241899333474760553489518063626303142271658666447089286070376729509404041757068649461872190981720224544810347524554548224403797764082815964134936498463061162136098952194674162670641095103144839157829689933738668151781872412297755070094474141673792334368286122397615780644860210005192622989507206301912202005107805734269706621737312022853053316993511229957718372991506277342400940943570955871636514148457038222513560644684987863990284256635498010981175039651155635195815936952808625064613188221356239221755188900542215510011153116745057438546692764259129506561122931864061423859932481306088898317641785591418455211033890686295999231156273157177109473215812200904117416289502785114464093114649718628018800737558582944053438757693915589452465803012526335016193717432442348785257466730357994315958368262950879963495647222029036366335678153970747520988418049688749847273414747166556138211704525854542692158408304687415210344280115424834061686090647957510274119783190958184879344857434785163194209522250513995669444305713563428525956670639723874084435111732531038918979268792858558228519066015291277905492364264969785739836956486222613233520193719555128093285478755612181331185770989018970074176906742728322499769729549462086681155331595516104437050361556679780481347065160903377010139196258097587588363369496379715912052218902829542307762193881442311282561957680244913627603206905624456437006998890248866104847037995693921926275336588191348285197114887392509745996998686068195298204555143657583901071544339804449093422855982568630886616118016218905557805897000914351982686519224778395005466781751338197652576395740290877929496159967925780719845834833561729009238117486858387086779031996114360329366365712792974321551172279017146501512649517624317872563161796469772034310742196309927457263376663304273709691805881502504678339719287201852686759907601774568387321906166666148736197881328046193125837585593305429753781164461205998263286543538672656456663261392490552270128245748028593391200794986776425723227960760060858457871028283911348030497406012732917432929060540696317558793739997272451465183246740616418724389715151797522609682428988739161997852104258039487490213810542308875424868372568556881165149379297213130695339740278357371663206942179214807963870391254161916824920006489881157639349495531742044081850594779100928342148307022055616247974501460037059112300002304071052511240704172488354126749150841632743738350403072183070984832230297606063226030366697349522760224181358295852050811365033395806325970917961014086693735552445825007734431712509724312434765531725122770946906134831180560301135976778783154145006317338692281147020252778860574013190612527325126696124018283839389054664869493074883966659779099731211322120231669732916441673675245954190430385883939305687793337131350933831212696094197681727231945533733813116085649968910699119740589701448925202815240812719570939384217176676417845793330409791929177006503251021705570316614091500959642520210450290342835089687754862536646832653457846076794756284557820979832041651695404863887228778445447656970946725623287580493275171285122032373391342038251414624619400053968828508750503743603791248955003008000814350240719663534298666075672013249752648592041611950054683268728167412540365096617782995735499747229865930044737537325631675319758340194207195720218746510792920201626243344152428776137283205218197298274979157078390730685420667413626931245298007365097295598858973373270789248947907696738446684412562413172693086346812536402729912732732668821049220203224689431957596146209272604645790797632352729357630138228862392905472129825450439042184974362180225920499319876972975488509812104361868233867025299538647282177881239248387873715182254853205136258570362932555033097544640164781523092516690021929323789462261567927661514759899149050093506549721324173399931001087114939297594707539339490132270394524145865695806606615053000274840257727127221900683870108407216565014438025300000855033482764392470218015559740408953515908224344665265094825780331687453750258965335091374261307127329463033470864181195895276873021094306044394001690102112960776473104391611155657612195287464956895987317147099724015204707076603234707135727542004306858902520541931773074290940717617396830370273852540427073722511991587661472290279004762178782184936056868067966047053930544512313216895555730146576793907494893370519934959482048469834604736356011208387327178251337843510400999327126918344162081198395713674258428116770302769089820809552423197395502422640811169691697730719263843909557239943971797345008109902976251419125439510628068815872308193083160525179438029099599021275716790198969713058725024104567059270556720525752431694784402953431041351811499958572362686872065164496235851700358394993676518794038079576979176589717006433829228126781204894737890363026227766468480979732761355984147684602230838504504482098520279035902249582705096236910879835031417834069510252382383180094350471069390300220649919726032562284591487042981962293541390180721351287462508986088064119395968268764520393611718229136037145579947474928881913678105387799658423662315650306185908813920568593339361159612732367187833107549701527413059402848766609141106965571262445033326987264237848695886990937909843397667275765788671401883670796535465817768765594452920831906336485966002548880478289868650718065333938720584966931830608631955871028356843774153531546331918167474510268699483390195647709779120116627467882903309873031706959174524169106428736552037367103044842947395947025478781864159421897679321187750241885738496009942325180610430423019241150096558509814344385140631787266208213425549337520774470984612074823450679631246210607984866359657263756931485665675239382814415426509516904117415089236512923285501436440925892884163420894379585623399332983272321257961721164935335945039496122169519092357773008648735118263038065143965071337154048749092338912022466927774692585101820457924294066218970964402818468825059590405548616560866805687177829104406657628636225306123300926590729171751093190693463956093390510621130269810326725145054908292822852863957775411333214411327700707574189637480198696196672697206409763169082448939805570547588009081171620382421706266813898309602635218096892951418257443070699865965422788715152677654998606446543128320718476887281978964334901714945438765607082851063835776936547939235760157515718260236353838126901342827961303383153529736758544930326099879262073337368860420809539862017792957750565438828871668588357023847725148415319788338429599591017198062762855229213503993062553776649206874221721871332954587114510686255880406494820301365703960538423478521371633824877488472770785357159642857672020548837849412328632992175698164699091634708239111680978577298840691047922967168487058359623827707651806787798510816653739078261847927463850762535633643081767755488700528124633248025976409656653569295490948765190318686647802037423109912647646934717029208067316908138543398914101398519143871383888298649894156164541311614601116725978831418407680468389108908067409734417220212917318581758528410939124650978280558369628949000950947968641294428924130812819746557889043669640047069238853132960187442124756145158013522787049671985850301586220670446859806053573409490542517763192591189130570476516121547124624251703795429108271835956717755163474338566822713676125876466474716521738593182200831561217511125975794876778024647353249076969963781216065231502211467428197878506676870444801671854226264620681617495001922599287422472023063607594384096512867207092163575404393739359973994657851125350977147577543352831602483772621445244326195119924019031096866109624010196125804081389675675052663255605550502468965511704664181505313151620741027996596206371651287081885549565580514526458409261797789077811976647609297405910947145086629210909488291521463747320003421599690204347498384481479798654561502327196273519893560727853757061604510658847964587310356408906768822117491516958400673357160907832332684833239295133829670216291112843160403915759429469332809610112314626599775669710493610508062911939906715492130690139226482369233315714121000254721943137742294384978356086487281208586968816024104538315589069449354331891774887738683276667076224219291390477759190022346339320409621165193173300786303856090782502628188742267425684018600503255188460324000802180024234702901478345989673209229506210891566195806671247521809974977902944142772882381747257243238965464069500815545854159250528797370422647791959100152987300423430578288971076197517844526744529566079437398631243822920613157496009360651367863095535933525036162323716521255466454996547788192640405983025731914672679242544137270012495520143699599006476043799941234235168048061866382715657970011370247597585815718280294069917365110240138924835006446415840420007357751786329464937228040950405429881027407543763015893501996823864711267595613642592236684053210427934695663627261137415180335700725578424930973645819002517220955061191629389319894544157334834793755244817794405657439647992887578427182676511529581281302912862793726606912663457864961185858806978864756589953924877036911429866778281623594660310731575184303428318768351093802001643141420087038431025972922923513174306809568073159235639297777759974765599975234067077083769282469126073585740014748774877559736784314142411861299793351727765210271500143609200227020587071812813745650044455650303934799823319859110926350368891266407509280380115098239096426005453978640463483895443156354389520440782055923426917935159115043346835117546422225337936444200945084288595413836031632733180390466384955915158986698133551739321833754185019963929715065132749590656261475543992050857686703331718667293750568704916919006507533717459715854353513160287830921724852786685881434195853339511070542760001814086575888382065983082251235075558570695683300022272982261667798300617890388126426002812745338846935356148585468445967864752010189300441218183387805478902104736712884695453484097049496262180053358776087851011489380978198245703991271095360318989890081599863242197661913077472488576755887988335048081089154648304763515581415052776266510050241562413253925950653023720438024870820929813973365899040642266855974464174633714184123410806031466118939970385450483662851412837479200419762906995858248076619629193180224868665717462597561078850063972753931912888987977063967287778701855408489852833316840149273377506360646952820153334190278341868164433224886736983335928863231802983999863152839896488247476485540635232702601903901865616799253220051311876862488577653968001139978621368611114990768838626102143033852064947564159123100862201414958077410512661843529792408142370728501162195771803127908584370715429471284021095912537341160953299956193537606192478245102613509728381303454943593266805361564662193099736710501183478183890162104812821894298845733757256997963672084216691651345631469934957256719116253075100586175858509787217514118951457799235521192302418897093482293371547594374300549663492632012824423794268145845418734999949020493995729924634120805083247823461721648638406411711792083446551566644128525538036096894074139370917133426675738236676007625995435220107657648787584272319303712848237078501525490732377211500640794037534863902022661781574777496694781157676068928448430348218302361524667975219813182560609909023212729956752397498805358636220040629129751750334151319041840863296947966709883760526527540362750941098167731308976750338272297977156465416276182108301751672122270492430568363940520366622711637815386922607863424426864829487283748265721640248484110100142287019804568585732515716694770808247350619195430390129304419065062186086081766720587280942640234902822595385269355082299768237230904991237042962703629665873899796321895745572572960718127635934858119666551598495806818579720027744196376312056651238670078537568047482055041377553703600774694778117328692715218336492283781284317965761704957325013440731025733965577265282516984516185578813485080864097250670037935414795933992525310679301699713746913884293270897489703299407288721292010266842259981284943975633973034761206415830265298949613017333173967023956007112495171935437084013673749731731289202941750970221818283602099872616815160441252550074543890934574976826270720720331660412518431240327145872307190235520135812908777122926139881880366578899995208091305950806816047806199916812324534914002578438929290097365903190354689074547912181878994880639522997886606730530911527727151651865971368770862781167745367611295433454865065461980954018905496426507691529450996875982080550817437789139454364747319424539431093099340913501391953168307797949797586018076019209232749748417506794720538802191903944917299192349453502801596698189062787767611729733812475347218318994012074778225724165791281173568582574422914130637683187421028736284935121597518388376655999820388316973212539209467699985026935217230072589740331840382992805812337624768955257318682528057731625542066791079504623930087096537442055766400125324717690789302518280286833136598121325138998963796463674955471439170224967458181912441993948373121642065045467485948117591760014279077772386615248258222363928810427493312053619289311650363207510172533008870114980021057586187116812129915515398169813839870839093746567907894373156044719281640573930841272949113915000839875663146483431810286671916025083685466307097163868825806007116108776899605777701601024896215470520081401693024265824333494973145846900128926426728205067102478371651043216420890593643603902160660168777056267705035455615512339155251346099576505100303295280731817489158091696499765215738936495285655095465215847393752126001924726150586709351517368379295225136440982697358685292195452378666835440590915971362627888328636246087493134330826329960604769141354227951104893306010517734709021865828318094236154516255171649315461791198255510350357942411000694164928229026829543628301444351755527991376554743805556564665961119635904551076342783911150036993002108866322626385397077003276122080157234769936917203012640556355655785182976702857764176058363927700778027426669882242037045072309194179454776425114134271375483779744029191730161964076788458236214532536725973350246319991239830272200282743637168856614666391173171813766328071913057081656970454139147048665315734201720299739130907521631554272694734068126589157331698084667821181833509742415940972255053864313337396164507763544893208352234520401163944227455486958467495300348422629402415347791557430166156557867110297557983898803744686086521850994341661381603479057184134610494876736271260466678678961478734740159313847939935665278530831772130934252152352310733632197973577453170056960788974426041740622129045592907282084162598948349396886345334329088766723575946620861841097736983703497196566574446972500949554115673872109257833722581170060570899994092824378730910090834808017215404310699265357325094631140952917480396822565706294421405030911918066752414396692758075405918617340130584572928344044080534874800005935167517079352209047588004146743137400627754294350170191137069726064599951966534733365793187796686886285234201444703202537930977096231301452835194237917221634623314282092376536567105229342645651928961824291178131094601960468396191461848147078312810773841222388933604212213169324433545197389411973485590753166692189905501326874176134912325236805909992778731108225152931882352618508058692127871529635516596928547965606140313928055264910423496018693262362964249561204922891141745057744763909823643373485955174393919246180458064852577286836588295097498301215373100514567114860809290770440771225851270329342204909696673768397865616632821563872698612075855362207164799418867549193476324144932872146131981833946594634842912914939476592907506982493859903973414493303863630676889892973337409321701560697424511562112203132791436488603807218634186234299320204373767856652422880363208379488119909641930912381270982083404501366024642242854416865607478122437967468831614954094195473482194704307865195035741949399348071162300679602425017032973092914744493992649124681764361796406877563175072534437841950881924546169795265489216611241272481619960381949504212603697037388405593548714931719297765893483182317762749538347737584738308515953797412834638390591492905802009914769535918674553567600964015791344439640330173303090180994343199460557741131146383695733574378323163263891606672762729579541219575058817685343135793591654458131094630440009692673113728842134032260210042537207474681951943220559008485244646557464701029097450531854733061330266880218629450952777487589234834182407029268089787926779012280669030470756222557514761606361027713516846648985294638436802087246279080438270596051981203066782020324411040578074094313850105379888223822488619617357128836201341006073716645254728330252100634074578962408138046264557109050902304489898729004686512720282824822041841451373687022640558595860044188384985984681302910365821638775104099983719068504508460009477640782998562528859846035093787169829288058478833512619771707353258434133555479287157616783535473255191892743219157920148695135190357577368169223878416511848141852862796569518938771190289553047257807034743043010171820291106795820922001971010426910325171829217810000232203947901025234330976638693968731914649268516202934475303140114514715075766912207994441815725849977458645514716830791874357925738270239482388345506760486977432709515142881855497269506039067039145154757600824833747083993888316129980907481774967729710667368062555326751177133180447589817958822915957180533746235335174989549300748567946743683169572738565414808055282819726304907874081336215732517567677936896277317057118895935145007200826615176948967191787920075293608239835560677154694212728170326939033542893063279386135951695600811889866736555996744064892834531726508435026044056926379037176421185036812864000127764925905269942940987756633931899196351821834772504302099085542070435137905240547849764616736620985415645374980716161618433756010191444759303796116443203473239676814099555681739287327855805145838075075331644714517807772291335227767812066791219222429045270556574122971534069124521578175646726639984606461901744375302885546391302006947878847420048056831486540871456266459186754984578125518454960474298429649218844532650581658377926475454663542626869261825914139485570499662288073737552701679757094937239068197687062092080463957207865370965425533294318146366010880793573439513619165709338389171840285815595670284782692576398206493017265216881600978523866014288100606082046434816596329276791988065679322365157847606456830903597674854393169071720490156665027573436677332264830734717593917461667554776189399724534023566196948595166250060795342492436549440398845643958077767607026145591696906606569790591829677030692479280814734312672938351830741490866100279067075609593977617378283515654070214904027464458632303498594853969894557463311651587629178870571271786777077495169917135458424420813427588157006569585664785558155125430968345207104159106246942593114959706928219984059250551209819722351894638915816333290185534086266416345872971286755561899223059407360496818956344036742040520381155521724900897633300610196637399192106115960963277381341660556084983891205138037680000271879556903080095455875038609044836934832105241063419122336003998492544314619978710175706440210363805588962995856811660660184235306815565057596783003410737948501303293635407477529334024139665552132947118518550731095061720097929178864577544408344471045269056252090793532977212091263919986837533169581501658016120017291299407484064516678477074495930067290865493278975722062178372126740003365199332043685647766158488972973559620649466313652384112047887858227038034756884988170656273141843692041222831716968364578443925872697847100991984796622432177345906061593721387139610355044684454746601873530414168899251963799470329292680256766164776863840356153571345031473962559240219837110673023805942254328813027641582172218254747890808860734618829261217878771015319590037878654554746229770986128808579329042025855261209857133260905213823629568333439011374065847444921129591556326429518823249343945077978077973510565619463726540493413392806949333788792854707861856527309965598381134832376705959711829816598523295165473543699320121168194782517237883325472065333684303185953630864708217502834419466254566408118189645781298993496956176276211166022205893751360586139973442214655485502656845318780817158788908813405461442797376188921525095811074627825530633152016985212405680978335621622593467396254276913573190296365469988131543797821950546634524142780656495128473270231181068370954480911253409719733540066620076961599622396699110142552285708573339831841983245322442999567855813223093712654441465304600883350084152813718727250648351010195934108085283288735362751421008473661859507321585014973965749135079177928027684791068447651495217295322620385574553704961777147484318197132679530636833180641280974744301024320964038332834057994046583049368663359762173692387413743095597953489026316475425827716726760362925423737855282656895006922082785761212446161568630629561665836034573649768432148281117132988486454057555457773408218998517377301774030481931423902346341121755791175511665344511688477136250899965994032354933109408851356514628318934477108739084191914600276730925155953810828001587408679946380829091102956908315681169511991893960528413350676169296050954725276797824400328045384107852456505215899036981268550153635168718368150251383321111316442508005636208656999616887253091398791438022593452200530298486579167084427753030630270433145490467666737496114800243949271467506164105871171837960620292903518012734549195195298521855766835691964601559569567551643982387872533347412848503101175142417772764436195996431117588298374139552855794191999257154178164604109070246976572833110054562484462174243482545126438000157885832511916163638200468980621694046957034239636699439590462016182071379324320081994162853393856032651535079220860949643048476665272248855433169883338540018062314836081725883519420845568175207519189200239811994607946958689418507783926528174012369593027192936632966026976112632578403554912578717221189863797817808706723068208549095916873568841287161084096745601629655710177759365846870415807861028272264240971985516060405775506658564376130118391983753040463410546245377025827309232436216943627399486109937607340675511587936875079749809570104984945035034255582324907399854513569064495495283758964020270761297050749747319432639369568867132198020501954422719009132731481163363321398306265987794930922125738304852075381583004270788352341211272451888989700442291840425341541785207627245304552791912141113500895997496664881315334219815319127109793856227692845833809643484399828991480915874584602387507194712402671960265094431409512213691640168046641082500265950322584349111133867979757060545227228053649284718986498486726668101189713053743389287421551363727162852947382539967436798786456806517838180748152089902416866541580703808706607818989096056998721841716929896535980883786316813629628992182175563181020624255440093746600646038485103549485693900570864913066786668424475468037059649694149906989899053395667568464662879380242580326846769585034170370240279176948699109383015368298772487174934759099178005804106691882646011276324133083333958570810819471413327244132606093981343487473114648974399077220814193361742733888247209042681821561404325040738819020019138831420383234173263558226406098827951655401777222358995346580632470829036007966692174008506266993813316508302079371785984624414570289753255293765561529125530382433002976062648473610116745864890222762998498333940805200752264586102946608797907555435320742808659098803968908891488731367323655208956153885822686655286742475002676899267374415685719630961610123948237261646263427258565353803065164045076511312360328584700733280991417918642568106502051956396714062967285233337834350932924614264928533406224462395898778467388074305384971273474425040546446354285438178540172468931125227827887694115243388275098095934266429742313039743642275666845526830880847427407880678179600779622977919818704569473808774256196660317367746827920358961989221198207883644441295571391893904380266802774210151065933804277966721625405960048394243781194684820256813987738388048589167178326151541173328566298736267487635685812390694062456663380494818909817140615256834410412629730522813929794290345249899258964594536223464724250408472392886509430199934437293732916542744554767198781825135864082844569522345852346952303098045135134882607238035751653874928196544684422413101029904359528380945275373998847350179234972771469487961991453852732179989284319962460704681271645302585257174342977974789199012973677932744712430115312089923552387998138436642786648770238900052155520631577957739395122265800801898732943125205090353241230517911002845101851881984115134265521051605081223471473649604271951573513042744012991362370838531978060394741830467180767815532454211611931959902667611057957698923103107910553029487488394395970240188496322002829565381640100019957185522476024912351582188630523146882779788493559753847151566890119400142670515781585270668481852413723749087324163073094777257573046155268881537846585729486736237894076190657527356732092792067590386132977839813037815446485191643631758138051138575898066070568276136489847855054980533306973284331637068791048845127603037455633864253657588667769752313194753120848162266861016380223124251359573580428237616784207360851548704084941424851680696357366821375486359146302235570447952389411959654969224341809322236076868990967954982158535707173436938836156083630762496052998954840580530262494251589301212094754580094572068945573765728006833069769709129375350812986801312882854730942640892151720513580156913316360299905754692053277913792037901020376433444168898352685843290798504140858571556341022559834996793769986109992253386917449689334226232359104062501278245824211355833946519845859464360652255807252786433464656567613670390721073335249462225149408190495433172234029568142543618792894570589182012476159054837194825120465811217445816348073934484665962020856211879622399925332209454303327390466485111939228385351317264212041263370708316552649990062912743608200497044497107877727594877827844291824718394567304264304491879011899025774292016826424249736019620768786853260097832810089034639883500067344832567182598596335850146192571491628325517244039118741095485742460930459205568658533862936697241718214906428690590205047299264226709161874032705674638342291152739612687237327956042086691189504761057068378866980673638625325887036090568590395194101505889806277931491277234727618093392485991238296493349856926626940322350768864945789292370115374242691088399416609400088629151185912005215567368440979428592170070948820607288742269116102352081279865110158871531780634777477021983754143021789147999118432560137812435579360516105400905484623092012681862344222317455180573930048809047711027730604473357973025896124954299994688868543139758431125922133949525850302144566739982138321096264221803702483556650052552902427272828556840572177178726965386631589037768133509909241100512931728198885237758108788897089649132208782414686315615490093704924748656727371498967356386219523561011206906313331526150521382307322922348373282354067935996963338182403148876914671422284347035974414080138782029434685887125373784438811975066362841540074390298200311526431943266830094649410484238730170114584299084688803600915046955969650006463946237565088702877536881084246309784451476941520240546468423383876774884217210423258145097165158112685938251946857445848161036458888272021334207354425724126125883100491424530982567465034011373340103006346817385773574051769180174273722700546888356264837402837185156595788575333475047761070395802036226365100611643584545052493038417321432021289039980369291043896256890180486349352678884558656617778142607023008870241644501972045933469239774895531226491786683633351294153247741180998133446377192145276075692618055509331455428884871007906243070918278027355296320975599731667448624569858093046403269669612164946846045459253012602029119422460541231832369029002370535856401475965887741683359903381982424865280345239835667472336599089803037758863590276579927628393604504024962993765275378624191711642608070857214659849292119394235514129152088642081003804914039147161093402524344575357870169164187550608574217789010042428193134492084998693461827086148740085655444524725752238669557589895227047899158517838847025369326169108125567448479028692071444574938603821207035928341919017766169118561750323498465091047797917219809774698089868841491972926935092220933637606092657184458350140557183631789382879407577228551220862631928186553020368501921953761677712102347313203511321578657656586543942680744515549951488268968983742235917434103994153359876885769664950284384956735520857232953666789851465717305221442806183517845078945578273636475500281472306308502870139457027155428832121933228145083801181508679000870895522332664357638127099069911961001237985813196494299577120028753394383294284346317864920451332660773342779518833775246069144557560013296179806977453648638131743453877114600152967840575859277288454252758189616045603685111526856098927645020801336825017969181731574394538657904956402810039003373721111474557314613604820061018513421486907981316618047167416933068033695177354761198989416866371246254176621626807389385682700017502805964419093911161780374027940502588800530053849462451319941598778272408710576143731126853925327780784980787312811128287395566586543126887846082433204461834495202842421544784567941740502743148290635457267632800671480747857736975530701311594807882434906864960036921007614047217559501131227071476497300321069644476325329968494757504984038341222540752394619035684244191298200670865492417634949160682783543207786916294635781408024802385109834128634178891720169030990942480216763365277470175147549558502257712965872868885966228150684805024878389337506787473277621628863173797046771152189804836874635701588775363044632685436911035207346454666351804154571962886606215421254263885115236689369094864897404238796606092089025682288397104912535495841217969565758197562674792881312674221873843763661976084652236760271991693977913653132272914212441063744287297929657992908862243398834247463026827838262649146373172541045620377780026043150760246238463441766445425153938951181481563127427776045937868819514450769436575858339150403976344532054889630280881705976491124827343048966465332198883620889502435617890776142271267050532257091975002571124983749751974524785724613204462911604086074251750954281547777670344011446169104024769069239994505034337111308068014147707642202817525400135097912096368413033064908057420354817021989167679392996040990759395302287509126220776287067154945037675059531464108753618314493625504111084078524752892927748464525288423015888924888664068292173729621508282957350890014327877987834490382028619026108757300042811932640689994554966057336280782928462941197087468925504821731557550378447337920714242245102175634761736725047586498920557164130090955320915719324489386333239772534956687149716665829211624467750231485850718433845494356139692710280353850114481030216870564698988997021843147496665607704443570965192900688142448410528653111024663290882543666732306396114544714772569986347815292827859314003099383213415869739125782835824551923994542401398589720104317776639430447014667434616528473544144215572394479868119786360954719691819498120459548025390706989913504328607026973268528895334743634985008501426983827681143004646272258136966215022330248256609619753424677854878359362306942035106789129666356889041560433786363148275780266609252285974929753186139244312683077955015981734732815849761136343166236633980885553635304505606071108742109452705495750872275358118078271454308743518976576977818045559313124704790619082281096426530901472792462068584184086002817555471332990253091937988548302111148131990861446355540891576595115244092313462053833220253802316101856690858376849946929278574840207981738877258644406704622415201638564535722475606788222858312788592620254317741459477042772020770534246674885092331960823038304483286623011913012305173152758938141619139317791534101023123625957069212082908809648964960981659671357743020643546342987829585561381956267308873604709692634592510058564511780250061698310219675695802599715889429955295091884892067413669650849738857121566150514446747751988681049318617101367113493885719734162464677246046525185699372915088654379207475119379709835725804349725170325283833303401232415829210508373150150071976418851263229675765308600125028552996280308221386385805706891329913138419223131870715167479758336359684829411524680439784349783954675224747396850208148376758938471263603516164479383000168405144401929440156082005106198857906207915566009147873750024242717051318453020327759423481793176311085144812680696826252874698798747036936731753086923082845259790131216464639007589854674183154115329089824513788782135195717006034571072142804856648558304302571824196228063586023139074871863116864070454405778764346552801080112324585780189031628895262033233862817518059164378321331107075191134279304383113124659357505078717476747080252389152243871599317498577574148156553889354423059345670033203879073839102018806099262454039539806972835604359614309189528594635765142509948698883876701112059014416321705140940391458682929359399492264415385852353489153071432273520290781202064777581041437996933486713798263863630507826242237341453760220442752683298484768676384764578295258048619345554474729633628592273281091860898369567705494165991295209799463088141645666013729346942383112081097003508549662274506818916697590957771963681320688828057403464529717912366779908486703124286207065070733167754337803083965945390347695900340166675008364503930047012727881391347761134887658663468462177266713684048775632621765949841548702109175866467240259498440364711259146404760906035165382292182062037519364997708474862582716576544288840432227724090526337740827209623415112693872170906537370805970638199504935532765052656188736022521275653666949226439982273625897844090719587523457209498477976572854574745613855070794771331589813339959388319548152748866749881437535807775871108535426912029809043568164282845843551475480490100456609626382355139060106542546689529748812162860222118050885716623318185891179209340383787236659554166473534133728918624014754714689951923104269408690904943053216362027412476263504986051153279116959468340016336287865527568086647785478805127061561184543759400306310015210555958329254420922488920100214553886489320323289378628639236418969731188559337154253662703329333204341530510180422781060405229338231527822674896534849301340131403413121180856203007632849201215408406603798956829543913330475769050627735842007802355623355444228343878934479093309518488718068410884982560312726955579276979315903656326416831911611262652734259586378111001398031590978615796663440162569223986296005013210461349848943510512604207431402081740966070256484050078274895233266227160816526870976332597334540259032698703853396993093628717841238387494715721485526955510654004977501425579142678622336109444169467372349694613108332526178565182765071306055072593255307107954228340618056675999932156730695979115835809895114697345847822190707737530309512441117883601958224851437496127197897492610271966664139329702410095747985143880057036872970846338181285523385784249099980833751758544291494307357627297490847190340284600584192524087123677681466763114090543094273145788076587866958966043039175901403745881080025276538837179159863078551410668783558943650716940866426770040935254865056702534225245058700831336285850856196567124134200248669789480546406554170783787476380029599814803269673149920645417953551323212967260159818190247857345437938646418846643300134422147290773145384981552076180841046992117081374410612287095515230724894373167721498016719453623986360917839100814542198437655568884190888192741077816116670119308903012564993932170809196186171607640030892930455566165223456669324520500955419085242194604004114464917077256017118726103808172895306037587495194053351031339960119280367383119413964096345772352842746414224438077790479998263903277411825115330672078665101191363965343094672065244858465432219986908662157584262208918442994655124128017018729248920117098785434795368967023888324690743376806630056797815166924437157311568805151766201908115267997623373562912125972322560203627510676324142936566845911076689995078254639143237580046285776638143249491708504975054705770045921447747131769266835382527971268581748734001345255746097040000427420316738257653874924460473701298337283850809829237083403269928017324662731953601704919875126210157468565050619421745816672604240043373195473081870838769221173001517155926138660499095267139018619324627424678073748367696930302027081916762825312240864215021773298596595377918012807597350759579059059446935616323490370559543712444967130897896997023228934343218900525595024695290798151724724937785514587923137596773905621713763836728613214188429912001794525938843885672596604404035540169838434967261504017404391171041790862565565373586422285434860177922326873262739793417255214313358727939163535284816592746585880418891934924390433826562513334718814007343798695932565435984319430281044333534478927703005986847294900097559726997519772071720234939361799589825152036460086874998790492934998962541439693328572231190107629252311617763181944369866649420448525634250781945188293006444281957479310253394315640099413864089737829298671886537352272150463963745791470165870354718441846966064638381316381115206195335348467782351769143705324689902664845217210340632389045612164598489672266952513307171543876327002097262245073660579538533975023607253427206408193871243596656801902156464597441521729661857904469815766748743295439420130522535982264437950389163034092770618450347946269715807596200793692044931359625123852793795798560714381226264286216042383899833432438343096890658647743325793351966729619031778611478351854780335797544756761138270981115413193686768096924238222124921982055831063946427399915909158199155679360160434763080779814182108416849794395437003420876787347867754515593676526168334898203561317311919800181355061526772042960089610475227120382117669563367534470033564276333909277726197405677850508330520440134989352002952975416674377555891438990569730180776944229919067609179904512482620250878475974984686519299853900634212996204253539950647353531252403934448210735205019164497909706197917806079431011572653085149890018225811254973197961867168893800834273846049250710331134635089554882146437248967936074930876572753030623651843633707493055835163471545683937610342980059856252548476323545909513361517104902568024831798329432887495066059708452214256653178352628789411726209638309419357393804626674668003258911621929209787543187425812692510062127765168417068626575392043222531173060089775658422270242562557005303563507215266447885535472030343617220323711949209789165459820278319947937631142705639786200478662423865644420394280392144769538630618960881301931313197781092824528218511480975273791114432845394068212121355855641739905343365444563604613172719679749737793715649192793462817920151095161730017928979890146929941565812613380274829231290294146915708921404050826873851770664013314398453203426505073798020453495705817336725142829440146646119033892737191980100484693918257216283790739009528212331956208928609095250333949056227393933313872575196235465036791418070335279225165740267476490977111522463369069050434169433850751787194507949791168861565305227376202884749524223521139353824578404545599641511124576988338988212499622513729240119163767378715793272845868949331829754459265430299040150909152840608193119171019392334114105981653581741751867794559340600055362028542305870202145812156434926234348884173075806680774354638702978451950508817298662619999764658195606310333255432625584542772138215045410374549044047331719650957753200575934404252657406904242364321426550381539258402809904247203076608802117180144849036487872130423927415060823921671044294515902832083712887529322310334315899861092505673242321517064324285735144410418805436670466720583061364633810218502022792448318810982801857572506155529683336576937018869049032532864196028734673301583912244052346736025764128081083818815083548278828949011917933329304228852860247775880593013960600407364097599300617343255946674820260246457646844800864854657128875227185380506154784680319926442303849494561685612143338062857587124000276964017245683960947318318771662085689417748166742036619804058647206814309916862893340947615345044128161145513414644080083220645842525182323738703070069163856580872364875716557659862439129569193340664244773367767734123544825580909555064504569085661816937025533756003875013498047659256857775363481096982104738489835514016378493643704642131067665079118352219542702638683067969707307183993689552249275219875561074173986679880051189286569219752653755127387981623331627554554167829365382723989900847678299435522602400772165226395436775296405505468721467683297063851510371625898480942120982326525435722542789326705988913499678707965139489918670956968775041412783928109484680773566825293213390889518072518328112098073013816409280956658815721245661348811112056444530707939069804609334083535710903780418963700298092436693435389198076813862054930481608231302274385450648330969786205579013535356574914908621402724386486373213324269814967748125919248317886392541820422142594436244216856231713050668387935109727168947804263640970364787043130837868774935577025749270282429301529538161662144604707140944522875389148131496568643124610209120225057786326580358855487309574255529240150366446972298611820410842864040106223277951829249670642036035884242297716120482997629945182392745512847589245097395387075539703799803772707106544430632877544551194528347547246064015193380232414656222716456449812923710769681038750214509281131524066871659450586753957766165465077984802523732115249289369769312486971325905262975524637065252592039400935001500952556996280456422752394962197413950965453068226275163812258036128626845237322044916331288273932811811165347548374949455472124620187577784701328979630066060360470764201443552949897897069301869377011999016446612216530104799162973559217399340480508898969373725095941115318090331305148642036537401805111250403821023439792194310452753695390381291909167976936598203308174282589703301702147849990570720271811495861878932677339446924319506488410998820252511550795352578541124625085972686593294566276198447581359847602865114579035944526121683425224049320092401998385660967852286056703017157592302787531538296727739613889941757286898435115784259764618312042179533098737827760235459622057836527216604970419567478752376416242708474592259625212014067972654398585655932336815580778260270100953047720578716035484310546438049231305439446298632291946746185273691725700363886252332487010431428261208651029603289774018064603873824974397212026823140742660414885473881424979472922435171253650878330610747928684599415129221878930441451315572243348866235633138916654295873493114248585922470754150052830612024036668919149071522861236874463698104902166579014047386200256089715550835540800514778487560868997316100336926723539391970530843749840736454611866694478762790083222527126337413381178753403111383055627405263784623714164219499462679070853734724722291373726844045528892732668535102449786752271830153321439708401861304198818972682381253285945577364618147611977545040993337240053594623310570570067186018510674469392841680127975836615584940948303717297369494456465025853262858850870279364854574961103361031823394715164729847202901349251841594230337569876230244893885171196994533196284800883611552541539890142124992388810621777188593680183406560097769492824310774821997555356330638158935011029516877901408121538177014415462212829180122183934728911517632068783270857676164418278139366131916866216264881944608623040390304948045514819719500110583866155024821129569000739106743499456536979255474239568822902367273704138397404328584565060309048026723787073566726823654421143696385679758315003111502433471844034426695210746555759319980563850798663868450997516462859274525779995122603237845305166126614884992557209100935830921950665778968505789251346672239528651311997315480786574330977404736730125548497661516272620789735330940563004621816699233536581149041455338308800754228706716786818745557843267898238373901325898582937428630459634124468053409060845508071519149047827808749342865316468702137189676287244955430281395763923874850036137355798355334224058890612195023759741771604439765653619518624750014644627742522162235352596483038060140377640155970559263767016933765367202288534629544159774012786024479142825125238747531958285253417865581989032053679140241620047755087646847184895835015529970724242841005649866126681900078676721168688079351857081092198882085948826064070494129978028581238012666630826188640449157869732873297647341242889331679885831443701265325712583373259296203002561044938329138587386521795433328519166003075214614978837392035504535098730262851280566251230730106600592515229301763114890083756654779561927425872050516103926607958177706812893687224797462388150051927650156438447697588298721450717767839700062311111961981449403510290697971670809455964850716460027087256736273361028078803565992812943883911918376168775089431617876956594783808182875247896354834745404146968611375852746176746992563428584639495883633675743500801239166203637039186264917750631638626763334584897292289281268543986562778968852006418317601794348820635652318169260231876781637421225055604306747437811763046260252232116267226826343976481902852079418669781236964182989170363402977150504194559913232817728250294349275503645808526436548805319718230410778382665807298264864535143623076455452811573930140065445343378288727111110938257060526875678143496718377491497051349585229588609671198134366597572477822588115264471260946948513630046068413290640048757585290189527495753538262480761282339918783219037482925931435886336420616876673984331013033053785155480966839618169085655197372897390830631875944801114577865596163336983416368962557742961865766895468979124768072169179170506939527607348741605004930698119083808106252185654279895151392823558697311824440458763374978091969526277495922109722787243973739895455997732259863736591703674668513206767036591075465016939984747830619860434765788837450483623560494131512097254159095323915591649671923982054890749465851246524170922624735010444000371707083303850789441905345328576228570554709990627281199842594381054065744814226316325550590428343083964602402539849233951696507166883269520186375145335828221499867972304222253418093979454802014084172038829104601671050956577855743446642746792026324160355212151746678995490614923004844362691669562696118521133777477344345915430079768960538726404288666060936679567449859277840963130877932487627635542730508236451744567310135617134322618341143700259142436942936309431325658989089936231420818967456022456312114226089376212334344071215319623866320080349086426695096777828012610476314345647962173828054160036445612861425132297046673566392104519323563972345178451867722818820041412844829392074651164583514657306174599421849176623002389688322116928119660695386551440478726190807479604396125851036840460439788621093509156681879419721642545106766128546867657768682349978735796313346581122101179388688024972694820293193408956114900797419989235302859866198285696722430534678192997599021498851760645077344026523296394104051625169704972471492307656869633447106471582425172844960809407264882080830390059192374577228499187676837600860694158046033533957965243672318496034313155177090184378251615751800379543753235627697922110598798811453372721573811164343922213475335793876970925240581456097885076809470222017735368623784918758461219992648792177292120024050083226239916772398806576076214341837345460748898327986692248438289214226697954733005865246606245266239149104736005004197834944001229437769837045442106728204476538169090593005559396264147991346841905712915771964934477866748245308392390401525095958977399125861832310682386126870792549305088471872994356192167056856574949533055410027939713362992059473371566207553250083562444725346664587046485900788313569277025325638071643393733117869203640927863778153585092937829023367107312926372235368841196564882211046037805752566452398887336469392895337432894889134510754657672649018816290205359357052601425434906035614004682191754454265899859988033950028637940584948822511092523021994452419369362340152508799292604188085249003126535880834340056967831946209580282600621994255384659768569554943372196266353243633221133695418447177497115426278742187438657354855460231590993511316985850352425126083321982504840594134317759897146732460866588471548319215181477055614870085249898038478458741377823678283189692424614199424981465549271115799042863229657859194379017122657950681707138776283650395872608909579257735505672163209123330060083313180620966421729941335408338177288351680591803362376682394336781901036981597452186817364661097900588701826525212992995873123970714497078436517203165822009773013540036679253742946830860807789613213792163561308277124530154662001808133655478058434029725168963038439147661755222026827300168443109418280740086464179316401460106591633708680624977276760035748844610530242787618920033496045501068294894688526871633973604277532211680752120027703940109204540200767665364911363631479093525235205904951634411909876614762971081238178947491818622009212790879246000369790004455843541776625288579789461909811525687995848084330653354643935470303597407942439611057879041819470625760307800233687460343143257315336784937232499370388970741811985925836483785533607253334752820704215109229977078345980254952622607484222207966494350907104984138609004608954632939233768613396843574113657518720400697649209245136975414088911561572823184743761064406886846867983251777000442684631006064385126967592168166281608290576798931909772009880309503015330711169940031798068190121247625481438455683306551142086513158540084699615530972306916172081542650580851064816037151042605246346830699953199390504119646535272988436688496352097328573459030032941229616747401348114151904967787376514655368822977442316013908770355001367766563658358983551420291392993735068611459645878879432889956670678169754059021385026391745415359026451705986084707756445149177726969343677634176410237961891864378591693421628844976310872153198074272458156907770268411478623435224866277603383066666597624481296926651496723008898077020107394014241771820591470988226589604529005986321391684149187109484107970160855042506146065071226857074297967157694101310688616800765287269684928807370935014139026431315889761522961994556668197977249598749245746318066232324656474196603249872855947945775250223799243869683228551806170313043159235378315237895163774702232232148547610367131896899745669829033026526692778449518826118552059467725597606279686875150630818242406238418688092291943750630004159793722993426294811625413269328257643508918816639177901825219122661241806180865775687761580409711384869399791028898306584368565217521236559351112058008386377281975268834343918283738323119008555010117805181392341714348060600120823330114004432373526885234952513029132958506506737418148124471042848941899219367770401345707920414303492395597662671932707030699313590164261745517108256904760561783062644532172025356427545635890251176686911388761067923690432121755916832516456820198992553913967169933293542262695997040006391282604580643817084034862941128584029264978952523972044070909076817273809545205309347788633364676440347466789614312063482421987532776355610239125966044967613853940393882290867585819435983085134733836048921974252280052968128449015791948484336032995304002377374465462938026745136490011590050898905511512131295788838847474733553254334018314670102082897304619430864995841859238038296528254026648574042452467349152009147433984769402927523941433049943590020151289775863709791413168118449363352830844881475950614349280246485206788632124946646580661261424839757027387534743802597549433820342102281492912295020561616516256142921116256692514965630602779116897523976151002201662146668679227726759817409214664688681885867145119621196514718496989203553988248890593331905744178631165014157674800605461227656256415995520858526005667390248269134556933409142370697234503609034281127087222630316829807297781031934623728691847508349829486381662551531645356723355129669662186025573234969891980153211932439606074845301481562182329824497261871798538003258263756861103087926016492761274064371437748626356020008870402214884162841294608753373314934022576352214403443397064454828402551574732894426046044886804455212074178870701740293504040440430192981143847678358741625130250732374080321562734030772501902392439675772301969225340615063573476439658635944733077247601482850190122144177440487577381620498453135730037761937649219106513432987886765615610828056853549811608554621550038137677360227255565398600232275716009456215829864174252642104828136279245952932837322210822640521826756533176203355361385629139857284643570830461631556136335884599745575972168888666815349862540104432451418057479328752588875337739377363408632923869018411457335265376798503934431505374736604110141809063144985087700327101285410529935079031014325056380856466890508182151916389333291830937841465072722327528101368525761273390560375093964944693823638384103140795996609199108443891730676433428132208192365788542523955047552056578816017616517516150505013489119849802965323003473306270856659960942876452275263148638825263840721822443457328018402501483520713031154248208387956473507059765997609640321701080239439710016167340215243526962078578436609980032113509668777656540802474369009313519867481219806840786560950102211133755039775090283812344124373652278516139349138229722732356150371513158669525965956172896154262128549879454113876112511525957787474621531839092057276152485195103585141655221951528359502287456795632667728155721525998115342776205180498529255064632988687510734599073536419632195986432507553175608243832835041323132481898180080307827839272432187421476362573701065496998591015419277310106307584396357958973084580949841511771067875224828768353594585238599111070642014415461621170427155466618630177456269154571504042113413170686298111631455351479837186136327671059064086411983916085241969869232385215164151958513387216172204902655826446042066572560821200760365008961581017793602311766920755300967907412954638360774672701078487134458498935425887201752475644656444098259591830166626217153093898418588651500835541889479507424410664992139249567337526223032666733246463950116254577327065484403094500719385419668129772359553285972202936671755581308697931183606772060743285574565034601642036188059278980209068979134271473130430501916788673318037388966612175829718139939658025126573414306613218096781009618226048823333415450418882506644699924573111509769698508341033152064039026925419732654267336089657490756689447715118500145818005693672418791605077069660054065053101738976096957562979639168095892890602766352013869617659956082096080408183108065089172883044872568727262522155750947678506527566943087960240696606200943310830834151728343246052614623061854420657340492027016265245296670466255427395753444707002288292799256740309245280824918127433856845809524755617552599714769422855586540631935469762651886404592180205739940490337695774357329133963764450840034150647460348427526113778176062774333697951332118396431717364133544520295643077928867061125564031746743278092949961737571382112961705690384831470559180692009245837046833090632785912516889674977721350949455317882477777830838348926280236099408251938181349911458651526470152053028680971914913853229304133098176317308783720574101001407008406781506275007972850070066412159328278284810591004285557603868328617612274511593938240399049074338642794542219804240760255469827032341328385064333310272251635271282804643459738621894527060436186485357146617935431947827027455915123493734265448315830427879450149306958146908645086903053888420356879723001365821955016751643418735920219700027534337467311546210561425634574157634667200613780083713884764734623823402706335215586223157449342245471601533113999194744557352464495070752866738213453281584274790292777889654488561971987485472537628306269174356908204987936342499464906353698064845960266477384547213060514288004644106465105462244021986406195776659438097648910763350673983547104090839312995289411352364342860714728663470209081904297160789846751828156204301830158591010354393450817227565020411972367681021240666628887007090199069578553301993024667799435197504889475873942639856401715210385677984169862061470141467803370616333242014547758072163306681780421385881237926275796005227775825193062651734390265106082667400686186738699333324196051357603383622736172787704906941851616756845849668353130334515549177595825719832510500882267028095354285442157205367015845773761872730940951147011012409622339031068365227961570062520727385874136719495633745591369938771091504805179132336982713759639341039079975768135487382398770368216002190796371292568742614598230802802867255921615251506276742755952930828512283635567267924087875623717786039299078838802595563915897047662737586463058928451642483301799753076049022441673828648261560290150201573239911846838879618260098429655293676476924928497648783240987446038669742537214033188378128865427688898564766423984711404836742729666079515370624554798880097844984291501847603663241672694960766371330649167384772316747200029040623134787383335091920124151073185603502430475055234165442906236242498111542744040425423922051553939943517842773682894342371034348858061656544960878732756224142855727245471582346223204666291061443585676308701791019630327711537164930588013143543464536818089639279847861405808513001470844184549104665757528537174449558568215806484397390656028419039112749568499378932079140859331437992562532456659188889743236675443748029590083140541913989342190737801526503956603901296037709627323244245167358825285744400272485705784862065352909906334399741802516585929811360662987592029286661956125803810629090114143159207454853846404191182260057287544779758270574616711779631852362174601085810625304751735235839702120460512698636772024366904291215287250886214046093914043208613271777975782758199035621713334428039313235706253034512264968229990216947193731576559524676932515281425011398172360467444204744243329728233201772653933187236240949231427509312363528236675834203322261448326876658061652047536708904316970476071925209428637527735377627880693715085267573080584137653549383351533753494016655156298706397554045934661909887624395225260215395385815620191959259905498590966525556953303674938550227723993578388285111769621127573926771447107531278496533672151251929438283365230884486105266380489966370176896400553010744542065056743878297378711687951713880715632384767745654170983424803796000648203801537597785794783167185385228065961679512617023573605725226453700874189598865433807717735636651512512860644425929235219570907006487354468140000477299068255561036690559330022909439077536153506041753099633665898218098626494951609368719587486439267209157230894206200744295464450662685808382772507590614977822337298035462844876637149893458598353728036363966048259398412393678864032277361028189478696708858380929296117591218313664615677920978958546828787921091946599680223332400478053853862933418053028184115925628618902713690410884245822970146423517106316784301325394991202903916885411155892638383217344445859922784182494212583739912000124559445509345510045014472818397471529581828847612621240658653959636793901873160742236506082032075353778150703220515191072103786228353448221913338248384026220097354385773005543968916933999733019002966867449788383498678363795479610685073249993623618876647743123190601847454791814256895678339790264650175432761721221758267468299212595478334695841041398544888093790975684583429079224480669771820389467767409354501882002999295249923391390551721838617833079271075958668282431543529301370578073642660222181022715848627641367046981324723357069961203880208903505653457145436999868466299547268374146955311372084942767162079997312337244861588465070838136282763807570191024956276534166831940322999465834349150395181567640147156212472693733067160329480709597073021851105375228821947527993088180410819724174610532500053479400205900165685619690085521159007202187482250240140238427355429013255979173595246594243730937127636626584192826327988292590641374699449529769161211974170766983752596448768573274988779692176223899586816150851228040486946936143547157952379721383077303647643546860347526691326441439784211893312932090546789663505759886388311091127693747419113486435090828205352707316411736239604767741300530431781975684184690936578249683087545449692744971634308605755410289974986176164304992762591776561862040422959256450063652639779362986465238435342721833247990608402356034187260368406802848957176433117128293497543414915526460947580479258765174712226430157836838025526151948989443488361729048034413162986599705796590298404131191266089104458364552335689213714905424468057451306703867594592522402904465319578204933876691373376071872303022280272186985413975923795097333693968053503618966114016178066985619795334935808073080315404987288889492034548830488134456267570213322105298824998675063106239732762280742018998636142557048967221467046406845813396766970512990970733857722399767692682182849656325480373751623604675266720061522972115579179148243799454848378113247891936431325971958419919725362262771657205255096410239720698838433640154514338358678926700150568964977363841406909564233963246836151909872412412817377854628822981452020457777207110357749160760234792273505383164793883753389945482063494347081657079534517720320122591977390663663521838789350159149341064699249173751716340134411927042555962594340285675675561719227877182506114677111461734766875065606127302915277559777334333401731361353759731451582613275745201018437277060342491708519370304662938255385413422009823371813369996194231038192119848269394970114478133581964483100407588370965486412715497214900788069490533614648938510441330941759376210258045567706951524985697597763623666378199745029406414326985175515810984500758086552249664416967095211162211009297167520982989586576229279679011620170175643235953143443617599620060041854598877465899983409073451695650981088649251770178713388764840419194309503359634272132044885908244651240326807570267582151962488176145283682888431056158073061935389942160416077985490645866855938158093506924450228091233288451951292495705425402944543849803528784774559926797227449711057233976737870970870889551961632319593684324016732920772828903040526457453281604542623912557759286753575518733376424347900073698798864449850563470518133353477246374093422745832369008862791990754413476445026886929672772029144294939005771757141965543099481760730935446953270615283432160219407238392906146345295090035374381291349537932324641424599653030507451151251544144436265472552320973145930907760266010021648537612567879926815141608184314052340723187833381695854981999365913251731080942833960824831434212512036225951976776521372766667065614247507404931574292654663689407287798791258229071546387889901381034336346033413702301611342589098856437716713856904476782795848874050545232956088748126461700575117339628874635497584603054649742188379361585305197104802775063364555299803734820846957384685331156537543968428374295598674487529492784547676985792044357231466214236045531891944577638856755720936564626101897588428035050032378135341682675789286252568239176309872511673502576436902263895320492696938529625153764450326118697516205487400990586534459225532773595326374052811058414158292420484189392796694388240981019797500590531537386321737006943379644960970367378343212650602126650758830149326407879714974434971123669733885701191398633538853738384276909107681105594792288109285254662254406126195300097595069248501001241938049968060199589541275240758592725047698139880171845895257887101272094317962044785045231622260124535882344717643902072649838823496242327822104959899125600677417530744790163484048773995845499337323353418408210212510158646784433425833563616752014863934969132888118919513546444471097507780174513297235536331792994678770847625386005838703910877014617411907866171646305266903397485313117947475013625634348365280357001090549619811254774582738099465308016552649584696294982800581927531596065675540783827571907958042161197258735960232840902185092498899273728036267272198086922557107189489069424234531099336058076963155154995728804164736990145950738367778048294398545555489715017290759359145283293779909221401256422572547069238561033872040359049632775458452016792563437497416551804855614323852330571332233159086545790640914249952864276280731244985437674448621259765726460749091735883655625354800989003906459435041467962842730578205354473788525377248662791046625235814682887485258614950341150803362498343805800315702326969565907610101317895574588748290978227389864927715659414679777109244247464149235597493550016809074548427409652814623540945278031838655609062838722160877503642790920947530567369451189710464220379623442250387042718118638116004316205798229358115570739402772765863818731387501159763735686728728664971027873649734682191660248354301709658549537927392125190602395966724789012805891208643843058060603906782259302998598250449118089908201036559211142732474161547978242198049529090615196833813142417998220108078399488788136827692445800620509308489498980321607848313787803969198412703238843911794215916526775621520713073752339419349653430050939513155051116220025116650414610081788327579190806341837836016771304490725502679172534431467376456814352358563936094312529989073945648446604374118067071295129262674040188246499162936375621480552629655522695942163280027372392621863500665158743659773584624207941598775055875513744449182158366889432361654157813679510768336496386312372225772463943550244692390092645582883282239712071272038560068334056364010288404008146729926004764822165801574698056037377468532709300327629355974916735405408648043611311163773097645070602994610716251906283859498428127203982662877329805225022290778349467373439688284323260115994956194707992471981884176593145533984713907022720370471923927143089229362270102685812844924290694420409110595846079291832278243029971874760409532887405423390798299933731389643625138903033271819466746293027749464133745097558837826451001878059056038329406942410620455975546539635530435500645720579928260499680694312982843913924336815137791331223296983603361984074874164192915218230225393739196485811542626099409198613289625753163855481134599841431476552887069872318154128471092686355373089839726718663977123259166399545850537313219560764745739907848530224637220153932044502396665800742408135812703367646915835971880979666620738109501355683381640442767702393255933815375379404141179741624794504872035249781873286279333807721633814990034849458073788582417065874214836026705304743827465649761069876004993761933166462396267410026770449818286606915877600552215634047294894231465376507822278884896441171844731527354768804775512211752025200180584377972051365229723668929532412971145115044708603798104377616235146468307933818911554256501404062117104762653405588315433455321509223323493866200051630657223636295497608517654830018691806209227815008103452979779787920330738167215457567211066897098327889236422664840153822838560134271006292552832316695626901041393715010327673436338812330875759006779958164703266031805099193483996960123857212914104898692839848071407161918670920422996421564942258064890111080960291663280284991687283074234444514687655906070013726279699322807705429152262248487066408278500901004707062358167673814235952979627943839679869293215909147870316253191335421874153143548012236457380012332055052017537748473843342581710702583038961073656538694292154566629210430172542655720777345194332675920692948488151160669643556174212059902322888400398639246622445621205757193520400265986896019934792611129869695463205695227173474589900918404680863003178972753067199713635157903718973429571074581219863546475106525442053082906835326778024102771776396994053016081407175126516760516412962607855030049095480240173940135243935997553935219843513139850800389070668152303927762835230467889011204856782473996898120996293537864471015865379101424187234879019152169792308849677313903362647564386500154195769541548084905587154410130559689471968607425879605356420427002205917464581364737834652105039428176576056695979102896005575656060600599633421041626495594585541119983697962714680713649992152351930107290654224808989257002501187245689773487532599172746698399343140292124047461910917950346453945119498154813025834265248751815701726130240491801405485699870273684491167793834264354871152396375095524903575776692151032935141719609156533919482522081698618247884307819459572586475597193325876612290467074157507335966635747043668282813245813563292502875255468093479017968148927462602801136591543158135367261527056392826817498157798331098234126755132167561325219010846089277344727034445622739822294147387099229924719113722165030268125597590731330153392476418549898347214989240478570982178198525741855496432933335424460976562345447326466594292264708155976117266298312369586366144234353640313065076034940705440881468446178449516121079641838939617926125448463272478683335576130094121341044598864551402895824444088031399472377209918015470150893566468047871302588780490010110718314087320893152983770986781647331271149906184580487090012327937006754892605924237900880631860684852717731725025639454451620604524928347190984341315199039218979979285591803431646783775663604777352522292684820035623890953329508700305558384609074073795217063231837485695786666521545436183138747421051163228278207986948028433559827881007361237311322407009174664394421619581984048795179627837982184482248298871349896731343537231614329132157636989431609675144468289986921739562813159737794646174206371879547335411685224380431694086981458002328668309217704265878954671483701732432839217489165079077228655686924267987600204340216202614856380304955991687559243968757247286050963077963011355568803905372936743569695646248946849719774054713180018933532699727566213340192400074407853838071376889761375633541363849294467776061132231590382179714826220613679531031902496179342928965378813571024714033194755605113841972122179168101061818440011086871266841335677933866153563431543067565621346870527529160557820783491429634637388261501837140205737311906715749504196928498966634105437967375561687540066418436471860313037679949787794353074333044466344326940134955950236491102479653481940419036698783489257466978843592342699027736699039819569016533182697271345592454176451656765037904442220634033782625897907238067719219744852672128890881540410985024844026581834837446589540838588689508881670575462182212806114403894064899578542927767098263266410158625395059060824343467772559208534227828674599045426666121020752559708591982602405363699395950463130453104159075333842108989730739614298162674794290887593027870855287333453899420336400424015929472615462083424833014980756695545666115097716582115993313481387431163162880604602884132445005595728412815608931838052200579584958439297501313537488992232374392104386675320014787969003815878590784853527764761765597522583180030941382738130156516896818932299500408309576314913995787923103682646718956532649242614629401630534310900599125074685505815088170910031004566750802055177911808107779997881649305885891696458776948872848580307496933573461994437933274954292313857183353385359567338598440992383647697888359789789626538528386587680832512298554997820990608794783826238149940510616132914586350958148024727929984272484879891288898051966083941878319882425033357843421691025655339624917192981707992406427078861027869500627488481486082568730600007701975906527170624919637090474521949262980751271733073436168307740999071745387391313603036940459483125586749230792111108159674207229576359212948248039643342877829127042841601974640879410588725055612426018094517362613169760555605878232056672427823656752136601889924717917924545558801883679186594090948090522154966417524350220978456857718574875193430263440619665222155100644535982918085695130623573165702972516632829883103122142481807955565809053874370315136451527171171187906332856568678285824030561409545935136627907322774155670195539072434384713225836864072608955183695325312846365059210193595715131140937656014305541242935990632080020788445012543767641104993329198254030099092829433196824104394082319873301168678125916710672035980897177814467301881643973320183419494831873960731335737727323779421927922331999194465388487224493401930748297106646422470832047030282510973458696660466467731459315019869080493571625535576282016758767287555377753001053678965531881213916804039560320222864405056381915357711925968022430800422781198570782864680399107605044566198613955850820717489100125205442374605847121007320824916748683711096944828117815811742076679306123245322816193228330232345422920460343540031674543426527458129138112876149420571534643186344194479263010787744836040177141428331751251090224692893648110816643488325875707318799920109064683286960461599764323272499480354102703761275632028565940615617810763384745405240038746148688283849067807738051328472493369207206704021702198524264723834738422159378462786486419342916030738052252658584191263610933563918048426590077040860964688475141303680972159338181511079172975264270535934380637590348883789331065731415730431031894545146562869353309046911600577749963939365752404789157934119078828637315894885159075890468047475027028128013945795647918588579472810795527002835001420719802669426024255852512141378479856589525917958792357963850942946227333726068172169170364663384088190533975389685087486412422370469718287173302940767683313276350084138519978404468006140210451320455649987527979301706174616500396451182772180853973286158787742040033257928357595647542327479827475515684585266451690892528444231215673751900182541285600852564553064227578384252328044854664838880694780814475424480932099129232788117938032645355155307540882648709455991697853412644155423663658674132351178873609724679098270171445015686494565801170776501508485740056227547748354229634917780868256160573415153982953670638882632110451071292286528692982622874699851471039454289766430435686461146703120263782481683782021801472372270913047091431348803167583048224879959251990127487550162469871864015556147178344029895052661641193342269483705482547986351593968273558199815160580325416355821971594065559220259555223751575886675335626746587871288186061702779761196741530611249063504618489165092513905218996814601994038316654827044925066641732288953694342479513916873722633098004814427265743194657585453381331180988952928066401529067450357120097710636905899319700449635136552510600721153981661932758526954126857431621227729389176603030387591853569695686448895456223101038285737458530610040449893657695128202232692456756046163004427075636949624969955752267170782710234093900041979250573257940448604581945943755560409509932245287898862635150822978556217859008861607075713462176381878424758207170640581332472281030869635787104259109734555808475301152060940997459974182231020952672686258515917520740420665634114493559810111025501517277786489022276017679691872758820198247738010850089150742869822783040979141819087672997628870424020136225121658117390363401194243165540740071689628071889011780866319021254597680906124250854739015900826440605019011434826861774912887718614746419642953086180489251269340143673171770964574697285873030345898104097127880966765413022267991263084614016309355710126857970287325171360076939975577781991252647794330131580751236097089742247598852254256517593540965302162116136592718357430165606593976402038127850221011675303195447348653626426574164504302522073467202038444089163883076808857460168055799361486032667411481326503966647360383018248896268902815164873371813895907477366749279346850829414591217436030313655056176196009692541259792492601004685859773901848550385444854909707586899236139409381391953995980480337981288315979383496838909785169137374635791128542194353519879822843977260843982708799788173118737232819509008154305120705084106780369051695454799466072580370884564773449118010833341512389937870216212778098740072437167613961344041936658782220188031650501626691684453110281760160664129496033190446070619521157011423913119876353034400129772501080328579413367586340847039209809239482536676651307017182792517402120178992979736938787091735623945774347024120512301541148459356207443796569938189524569039580558199212943021730235095818893675019495456718205761039312112205248188578932930311421788420537384250104000505203262248908956739423876959387110227323726458814256434447060135163334195866225595167334199092126047251274892445357215885156943809810906402181843922675273349890575722377118385599078860584422972690971378293759749064394528202586934871665441087352266659257524071112823316825126525140941723909054576690604026256701275783498225125793167541108899576935959244431390289179900357547993833162029384018239833521101381484101653898972063121769250493501292110905124580318240768172182510968462904313818498263996112703103889282449821372969316991797494560265341194245080131653684656730515985608678979050180426445220737838099800921771799025821499216795484952904401613353431961221592491845404779681372158948514707015036899666767072374968405737040958883420594109931246198170382430001696509365295885820377471054717104305370707740152309087177107535821367895268934782941444355512220784220800035800735821981052333404532581672743966826459326665147785358720531992029502961906229292365764597053549876174070361883187933126941395851173090421433820930850069505115932006780136477470310966715838341242755509712435113068715574436382951090751429973494064701174588002531630997445869285670231175281284810622850928862213300218294293796360773263513449004238727759563805591271308306636663096380932829719958200942762638884468971266932078111845324856279820400553877267697151224112054268678368418796097033317184708969180306009389407163365056832754328087807860242632236460414765235877134434209628616567394785187574383869531288748351225186677943843366771656602852704380962983137021835751095621146168539160005555132578828274617630855791080295247851301923392549388942188279064693217260605412595375128034180971968627214336368713683286384266765973855842458477406013891585910806831926593407547792400524311239774257587835253573098508933591465670457554720999933898945254534279719733451987595424278700035374543332421603830874339480297356175754037956161583112835581686946809213999843797785094294967894329194266464685884597206614424054167737353845435523175151855536801447957151144693919962852043400434659810187915226197147209378251375216062025477065359425888180355721616231957716788865475106556276780446290360003986209356577275267316694268428016513761454157947030291369022272943211046756387274640711221890653889621507438231879749376406865131655826907512561561998333108527188161397249457685939966458973410304719380094479648039824333295882942674033359206763977079370695072559851914237659927940423960315054663209441836785520272848195317294652783443198654092282319790002905097075540120623733749640750180738789023614491664800255936007708877674390166154651500350064553641992524857547858491395580044465234406011507237222627676494691877350512747883379215618623658732466590512700765246819710411725627184992193393655903847224853956784659578214376646478871102668842054926358512499784696338000026232728435473802480176809604190233404214227200240849626764592868365840252613790834528245851334339452722183261105871042379844726934343474683129685555138920429403315217546566383216669693074392027305574334246993240098378920094072628561286025774667608190800590056859502761790189451517498095434847348682864586926779581353911533187186143914090143394483500307088881904649949952275178353139839424824515480674770531407987994428756647995355553454341246374567870583428320915930659158064135531558800648763833404287048064351980898563764101165472175049066009039049676826636865956523374851260788501624784709264129694620904801782592693619244429008291074845401042202398728493241835645236913829813073505837576507753421075286651035301424761872301459452639299235185048134749078895152092294073118952955280631733044018385222819183008490667932381316962989773656579588634734729108644937487879566512582540385750527176519990256803233847926343323777445365125819316528193675788800270582121371885933265935716642135896376989451393741339774525190070652989051722964375400919329635064825451182533332520390117794348689671264552741156358914163045530899167498060321953979139999664242499804747539091317115989679950722452932019834018066911264686146973026690422032034845926757702127544648839635848102729928446361878279770120618636461558752613197710600259290234438905803823772240047906156803505974207159731643541723813300689903987828766142253689913424611066135538667793574413017762647213023792907453326084786229635189845695075912817327838951762891707538457820169222612221542943556738381214311191329308597614315166430476026491301756677078805478335863537503079644228430730881904572808692318070353281235965274455849036360066079170427591068083540929553806117979839489058421514707120470690150009603023342082915490249314254018985568573486188782445461437627408402572521607377719289863364227579224299377816967134170659097053922583965793478051087373674224652546113703201890407727976890965025286676287629441103665229212081497510984358905731261356155935521088253837740987959412263400124961752645504684498586992283806484893504736701776435077241143740191399877863686239660914266591764325569273949167804917540117434167962249035737154644745121637305310581574969973680850254133928794551538265569069168927112252521237343554250902187512802094736599806815538800154472257782635108791050160684819249689742778746969108348261842561718075932307129067820785907941664449288885972368034273229620914478202035796759185119860585714975041664520825247326982784873203478427393915806568679447437146710313349832860817806683349625648750823483365902438776399413823959322323924622439598967611824220266368928653687347188130166951201934024399901344012056595993462846432820290202697834732926242108354296703952814741315291241564591590944378519708777200200170990440731173858804062454635896997974691802709573228803211328419489913867708880026655823692672944386773426098766287503438418969188291556744961801427295418017000140108419370556311591626377562244331986460252950937088680098408667224387369771605771807059468923733155177490228036330778562993062062597844828548775372398294249882858414993022650381282086314217614261994888074816195442357627924510870806498953907539127392633710559645084953218246871410063027525879501724993344653763753216935227676032323365580053042526328522914091776273819583160640844164539616021300088919596164000472931800422822180185476882517371346402892306415135741147952653511713129421295281454190352784532210072805682842013465795579759801075159257906360010073181534838806319219594283083603439095874623501223558635110151175101742467416284479680789930204406777114748861786056159727871899388573584676711427347704822657062102531356122068927632652254262860373217742470185773757266147636311192813600936080479132562949642425173871149644288805061245122783856013707254196292400080881550397285663859268235986921991205700439457574441759905586621504837736537450000383884992846167649656501733692718679397374317718470805325658963093470576361144534951096775532860471831801968978917940744683881699621620981961872506387440563402219777890375300669603638472375588447228115615449710628359954469615714348334482681328200136346950533688090473170993493599950726677756060211590915575659589386241569024475648350150475508888210051646049121047737761407660344916675717443905970920864544727738203024631699971782997519865228353773946221786928646314344393396269852390055271769421009214741522910947948581512804081262905382576065995213617765527779059269988419791009373835672354300985654450566747006337982999103189720304589066560168512935754176843407901004097748165528195789888814562213014996689024022214386808887108074427272335888048748639659254169117001853533158392903921427781124476028010241968143051833070352282426129992163522581258920852398786012315750504515147559394950588445103974498290159254687071345947210541308853090007117592496924318459268067470920306826330122167131270965144413847544277564055125754966364495993487090414521015248833330425464256450563975289254603359403290209483383126280745301177505758378490570083920096199278049501619395804513883859761215487560009752533402332586932905276563408490965820288872370513092638821059881437780346911513891935937757739276058195606982851028610812759363536764048972300432150297657779297123083326225639633065806681477141930304704316040920038866461063360728427849849295477676042915929729499810852712471811431856263369740759647916793459540214527515746718954438279279997436263440907386885723215339691271806730223202530836644919902759946035522816542106667937314163738756462279734511619370435480198842955422971497497855334719037633133141482376807399288715115685549245435361585796809999025580618047526247506292343551369805979539464665787029768729603352087172732156781857258946143736365246728700582659856856711557096307064762545741693561138995149808132971185087162020638773318525572084912645868813849521313013390251389491579634683497320734124105839111859973802424388704114522216926654775497817321446750341235410913576591564249923685521834396841657114922494480033607836289849669110767654758128280158480823143606503453673442092637367303842941961269830540706542264241857633476281621565181724283520504179265132096096167092447353953013531857457569638329662630782448709081602085351288071497760624254791827792882886325390648013288815359157868183243658513524827838241256755970571626392894044664309473301024199228942837714050412088570807840893177343052341235232912196348971029179439251023402814230422062153030743226766871127334973131511163447799926120799252280106251809598320486763860765544733404194185755287354389369116519029490724339972915508091492128278280661071972654343550219449761749127631507083677460996121139955166012248418438463724656173530089895957532028229317211157122609848530363955227537626563057292756162179902753172367320687335661603810681041248672125719416671603452352986346542698395357260478059798437341001119085937684898373270121185494841514561576305643832712709261117340323299618508352817995320889940207938283975584975418116818152335000594007015377809014838260751982103910067882538608044444099017000233443454042494149044012041635067382592620288231557042842986484120532499916119014585262912311808361127287754559880804970228731672885508782885365375069590160127245616171649726886105302609089140293534884179011119921423972337296288072710847755543123249847848276841948745439710252101123772876173517433317822479505532865423914998513485267427921057489582396751797035691299248002244131327587541518613885584103835902487048130609888153803951132599784589845790713344000080634805082115363233260191445369912704775387053490801301777776681311803467172584714577331044680532056008096298398945039859312236727294279592415100903630729949827903542502652065680047702594524187543785895885352771962933837185412311837448137211669312254502297796907084738545364739609948181706149387860484393366137352203466311694408200594399007851182913735578461941303404891474338417784227516902679223069353736351562123987154507537121060216255614149042163180042673622285898453642891552911888203834088216592323543868299667453807342177274972651957115147747399690122486817281855918618203422403336673452570356480465599334985330072932933243094884194182759518119019238322578023784974079410718687564299044635450807361810417176864831356365980506465271128255307674389701244719074445578525065804362260037653332952511547107238372815940658252627691502994045071593472080747442818055134128762336843280129605251549804943909502207540492628532929649736861956181456931386331566322330462137147006260937152992579282790090289066747837012139547889583595819041723697458671851575645615975845258120586924941706434796496461186288759977615245861455755054170801491209975674105526682265710029492755155855741917038177226362377683189754478840997821176348780809361983547689244794666903522965952938264158012507184401543659944449580643102633556719987827936723905836095099776691072196432973847680566618675537302409312671542074038740819975135077738527374456892085241065880725713536444689653028000948436372273384127352202302962316701863227095439944691926606026657972782297367871250311788189512777368803350909177833296150160533672501513273729796927380452785168708935878790923557016533710266303882677622826472947056194954566650795767543672365093957927260553078422129375694815771892181981366504427882410879639567873074765034349835304209349155841128953839306655574549781294809296553299393995647668013061362081132156515450857277995797848909717987642022021541215092342260482915625426253658825790731700348913209860098249985702060748937031332089206300333127405198887513011493501407568030183168857186703295886096492515289376276051061021280461988051431322051406736149655097818972316844350595505617836164229350774029307487889085157392399092726788986923183994193489995155041360525393378091072867224158538295567920980368055506545884140109731473641848695227198220887572365214977132323712031971321811382858935077239289832201645370139003891519619221200271032876797770387805410921689551263035730758297528921861027791632818971966926569666938424112286967308685805332557339842402795728544426982556581106819105042731849914542869382015020566673801448153924046667916280314293477874471373121698696828523151406168434599915014934317673630950705110784473508021505214610085684038987568627028121553233468484298156114309176806289374752129894307874012313352676706062713283952958574019451559127364719844789583948400465822428302647749943568788048051216190691415367183459047590428433335954380173817144718804797365551114361989446694725257153772458410844665898121609142930865278499837507522838181556527538470854342415850495960294341760961898039253828871915046528788993636578157370417332658708039816493304856370527147237423323475302412150452520110835272903872088409809365976332079356329809406867760255557572677918344454857230478077130115699289484212985788097550862990968530054139995595537568812026896509095476974274784272875759786439036009746199471587486861011306105626582061812158015995634575374696917619365626555342876002756842538958933425249065700636842596646458585667710162677609234485810042584080784134310115672245867067844040908312377583432220945061595315024452036137539798732544140055997124498872246502785338665345242480754534096092424678609218802746269177471741746170737153772633552640198866965788757752865010825206356215436617266509992780433345331406630425514360047583513155302989273483436133514212090431930764258375790318430790619312860368884491957005461054189186059176560147737955271267712883375678456954256631450747469544976595309960809433640776464116554311151520081382650381491726287873400746334214098415606188231127012023424246412987917237241721414096650272904608904135849659440100174530730469340998511893322259123467382123778494301224543634651963580353372952835946536329465722585740382839675571475388951899859549011665766300405786462026666759610833786774233495827683136166177792667568281663749995571129445027591481278336767352218843287253520038503935187348283476154348944217270896827142287330709766943760538563441574079841331654050755267281439928158385349253973167905179896739747912663060304787843663956691023492766081036946692830175403173330391233331162938223260955410013315915013172563513526227689540983612833745371719473657395491022970416851251020686119270103745547371851409754902488778310500203339447599642236822983083314704596315824438682589006820287833907872828026961688193046371840498992090815559109005679841396180095866278391013976077333190487941522032345344766913134063842155490929636119325685296186334373437861167298798770685088205543728176022510928476520896753141685673092605382869972685161130559976240980993005060514303496002081492927685922768894714822080637936942038886467034022381257043131524279081075767845883682762601909584898762797330456796712617873216389414045900290726075796255647510261699257869696939687506748648869295827601471373832211016460602893956255980955580107607978387347119435264261718408214004749441984299941751607758777993937244940572012619584965326212923161950199249038343880039657624339875068447024426308471502426516649824905824017891766018606375066194035612996691419448012838617362368318691925752715033732880857465453601764798480623268708990466203613162759013378335830825314550109681896962651409118590746855603439065073117182255460913646553754473118679630603697541778703357786625678637586793984604056156485923329981795642250962160448896234225917256252272432147064114841054847226083147309749341683089395883283427604990406271143874385035213003808020919350606629047254677194394250748414897209849666328842313256158743362425709692650262044997918801627239640667793688526669122619500539005208871240458087066404070719568503105118403430993216719197933982172265487085494826720531228809138192454229019521561979196578560394725737636332000089392891123290047638833498596857808988629165854834753286514186463604238853771566096777009353169701556812873546062767370926424555284528934495488740272652890092706046324890272101011516382704232966046973425244901378062292846462948896201435533901546255921145995016434570177863494145069395591180765522035617799652450214374236758840953051011149750080882935678239105500960321565010704465242247923939083168915431647308428425045542106467469645396376484692327693295450846918155245158046458030063007974132865310934795936527521813997147923596569832873290316650071171876368789458294771921186345207406640367352498540188206896897578689081435799143714218427272792941039560381958834797054213147888532946823290568040803363524328342920131105688387702235140568099426731896295041981592347347674668346798989668497786567378939220365255853309133521670298563928311595129766283354076574847210131516591391879818504661423491113687459383685156475840909943549090176603964943620049705362557622826106719823954920516639335051990755364722376788448176344276604225179012312252158522792769168353390705463031511833772002954015132956560431713187676863398551161712681857545553672403653194305496018649774339227938570433349057956439966342052856590282876482611709412933034440539922842846480154586831855277059842919207772485612682937499386856373970289684442020680795745006470683551212127862734868953029952535510179535120253415960997500653465354315142986211116657328896958149002042726381877176875407359414560743818667485555784731666826836409155204361326479817489532764737579464841204568905925602218297564008661642097858732979046385338269423898769711229750664032838422818368210394167073777049702585928371434820610542512153047704942706954688303004524266197461862109223951204165695552794667730235050281928427160141074112075014395583676355137999707752557180363382317874117928303437572172711029393098762335853113384889281092363880231382249563935773900516492716137180560095414190015688041349958844802341068125145578921703777506838544448885298604457407491825731386416780770515846178783273514936181347632687253049715202543739217545482252743380457651052111432205759952770897310858622242410215368187584109162999713872183973111944443205632992115444664715542843175472924584393511957644595563354478393343360835026420077348760291684918939860799296727534420294086901705299876704868601613081103394003395001364115166044333434858154080825168367712875063719484436274028272642920839967496936425204240264992435403908488040008072892230743452162932953630420622295408670482473413884678524491853314429498737184891131074757640119054363367594215671323853593407424879893165045367714342998479065917004572213896334183986513257576290467993491408540665503427003292389792456638622440258049857761361794389597103191773570656831958894194062106327075723324569421500358915447584072906254735327712932316616017516084378371607266573878288237567425407416549200601828449527759683725064731267883430739946447607469820857045082379639348906376113646193571273182115571569287728506262559889528625819898391966831149704086509716265409668885862663138965009182261239386766438953515989142485061128433355258519524756213709767856562360797012029486644729235838263255836982154651415031254471890434636586450175625203595679279346019549134767732213021513163422614961344354121815957231011824678010620895329264887021668319358197453885108975694862212943090440531526414810687788595262363242142082676759168016658377337868493406877758726515548291938092344943507187809233544118907704388136146413140633466964949721925287486206542120050273159800107428690216436687870828768480565404865454746334357350432273221577903992332354507644379991452852126165191677960579158828432959773566949249443273178789862649760917111595408647971847725130219878827501843235952156928349004012429393731100216419621946187454186166002127127648178743663974430224424661037685302466183168154338916724804938352447808557444895269775324739568683728482892355580067580868845373218486654722943056152037914802348433040550308826308737181875311303263820935441021517594810885397680833458701908840790268813906912946992363609831152009197013875613393732038519964389697888134029769336146210376382548603830437100852655090880372212103620337927471207394042822151200587084387872840129614793317676575779807373267236204808556064030917657676920718404350243161299575575211450115137037280653932608318566111146975304880718745576196122644465929144435685816886006436158265240815865332409030772454620306740595256971282092795951961442298589516221229843121390679742346133601907785980896157707416207159606245519567359619102076162301646267033871228932088465426555053338513931119401628016890886699548129601961176982622473678536850897768565914427484092831350020564312597439914100180417071964405715136040251138272318828574947664169034063501562853478514132615667086943229185108849240713680352522945716753923386065635739942483544336321472543748933191229353811617567112492259545004423125222206737492376675012811648457491421239106764747702559550223621422228369443530163696173291764490776681008769403948813978682389864224562985818605879982889117177267732400957097564057601203611202250908815156247021160423372358662395665450603201749426366314319467724864947211418780789845147072279936979436848509497027962466582783527857217069833472249944510077625047246314503168900954723719053734432080277251923400814546417479506603553815424738685992839722151395670635435301166946449131033981035096925835282888420379697350364265661370681502678967300988258452522469316353242990776408730705102825061764229886699125320406594896275206026430838123304443643842550159789634031464394843803965689106888731576362751346203088810217867395903199320882744409599623022941669588522161381834391915347731055158344273165860052545886488185486179604315990459044411668565614320913852905247705962922562970224477269590781356218904080740183697849028780956569001700681131529716982194077586853130905357783292218077824267302761258309037481483458400411778394381267580292947898841082741077106187216427740144243621462168218885756256686109928064248018737168382119370179561544207856834489488306480148667068269359525437468802281275109971632144106180556657982935505576898204422120279997883146780933745792698486658428635452539073459871911120096047075748724660763960183798602651269954121299391475704171971476319450272157670993978417137005353906800229329379947506736570208474382846287997337143367201284084164190891672477194084376404849897594715514014962566040479543119722689069853017345566320747840721205616762591710833435014692987784724679361790127810333241163187764316429559086104301503041294496220996039950321784547135469755485579175182632928563227472598427873611518764605349734194657099106058484028339689799172575832976713758231572846341318833396341902049035208424398496909747628616263717789137900995123372679417533988783485927178879204933010393489325469440609414112402787667460555408958083037475834159950476889987303838166423830470583981162517017406077974534622275112691955361701986438196194716412923850152964861068628182918352361571191221863659653151400806391704909133732422543104932949644987173986759979403061906829923458549810196599644305566459427035116750563728418863383378447907664276466269725133230594374560617817195495133360163329904056782745728829839736673640453559479604046422986926743673992101643883355230171348189787975260906566534020253111923788443185110246953828465641569529357020677491954459247957266744057263659785556773060025746435522542286365035681529280663758698639777209248804792429126859634539696390013958800228648133228060327467428155463999181712246026770505987423558705754352235858142284939080991417062366494653821493950349705671728628934675690308869842864214121378611985868962172633595356740222528928199949911416523098324290551787963166748547278274156336748373465183663242198324651393959199683206394165054288871127346522985434369581819372387313958885210505475808221980918221491306148453218961717405883734477747042891988091821460818448177912890366524754328178358746100042588206294253386030368694248923910784496630415756129420277384555023209661322094646255612197484612478778940616969789339955679657175863357687813024475553119903752831211809165920568508013500000597317069463897084184338422225675496756421377089707999430421914067028789059083179697387791999827508965755106971056534906299343489099923214401565417144992008950622677601504855033464907085505759149290765872634688154951359283048602314588088966078049576277242962915149699446530160729011702757272334013981002473930302422434226408004655097318010121743952509269092685542846204832958869612677114085619567642362027640037924738323325936664727220851949522935389514012178722376066698857632549855722860282895654878073510155233794748613632330001889594760829276194290557834187267546457564323287431411894613719409250138080841425845339247050828084221090936488810871481242082915110111604959888671257037230663154618619921002948910666953696555901817976911646105547146367454914314097780914072176520361470201003035755711081738237930584702992611356325225248748003829758691168555895260090921754785035595352857664333405713138065324511992289854212036693712881895137504745297706163555224217505315988510446913215319446964700965858306177640912462284286100849364231177451829324764903206037865947885111089417512386927166572405956547403564456422155365083406863108391054932142039442135598185194405653266616115765341570938948496005531417087553112996406865789907819986353144598625738881943542418655985938579557665546650289169676268011716772829636059839191947143273126156947756848574324960288571197494398825596082124300248331142754448554421970983276799204068556498468858707077362117618919345112659084737954275936184129170324291115286587683743474985142578399566795478660988536306966131199387696043391398109915820600208783587723115779910032085053819905436582245441321143959491293794475713784211274164689918732996561032168180717137270456717997077775510616705997542748097757305817904818856666576921226958793781742995322398323931150828947492464224708882160892194753072715802044765931418760879626286719293717265107209445802240691036330021223672145770596470057267889498926657999781036719769070637573025257981724793652951120964128943786762290098210413518556553734835632017650293033923141646826448567525793132245082473491485675875928411147432461829131366671467173543018930584280547636327223069724172926936796690646109608297738044853935362901826079382722568003386491717370219367529635137665966383107671092026904361499352405892204302255800677326850933755324940712096271062498624019611059646372731627797178175566414864892821554362746363002888998826546766686814450097018303689718138674313944489950780842139327679320830994211525862788990922182902536682260779336507653237073627666518011469936357816881158590924784351827562887006127293399778445165149989040407848394428449043949771866837923511662007094578394055328944846252950102555069541555130564000826133889386016313852876234981949956856683551012943661251801759911931458860392893461099142385190333733212412748980238436488250930911939086639045405960251055734964436234243900958564640894361617942159164049339310139909778616814855111880414864825414726166528419348968174753751142737718336562740499805250781924692386213088461397742698465518242490843580813450520882391688023491183257876067451918935086442921392638572657339799094253693009445396408464408202694866182988438652472368102093944223877037606929934594923640942923345048915727008975441458516549016495424426279638164753058002575692610099731896940398670128676538244681616666051786188206951869499663604154739271844276231931784797889443418160842690097294812944313390616429822905994344498525806251307406287242407348091728755938794970023564556631866860997695927882584401724010163230561269120761533984098928879220817447197922759887839696239573836689412260386496507098997579342620823849575966778959431317104948019677827543889133361718435098429227976253163107089101428466272254205710455972676841052364154046618408483809337940252197069228927227714172001375814580452341409794001722292512797812437832323603196796728269547170879680345753536104112834466682474095837187148591406420645441389649105208749691063793054083928194923609058276122953551024427085865417007078425158949854031240895730369026004602646172918696367449823270578923296574064110789894562629049678098822053817664094169678080346056518201676823102536089245701937878037621565406464475376254875756474823943552490829554920619140550800550561375444788060996862759490442664792741092100945956686993723259481367535977320885977603796452569973142744952070946897958933857109728391328109635558069970034278965247814377316049446711594733190626570029442750466871751788567314014330017448534818459983629762244513549399619606882551892812100900599924250973004709959232656110885271411476880949823305081833361779330323725284259704821744943629210441762881945993213341006332804531769847103369119113951986945053249400993237058058042906559546490398735426193775899228210400666753063245984907506319432392277509975654567266486576199904267621886644564371698234101712978691902998466821395340440887238245522148396790670727868342794917815107326946850497521505715411297422512722174028796570376866944883242215531577918136060590506436867830569850800603944834095033174475990493117073293549797375577563962687239758976167926161483466902137938697173001527170254212610417955733490782374634149115796924868992282592850968418938166286134283380504092665069203141987252921607508001402459613381689863612213197629792136123926733604287288312082983537891695473823210863127044815789097906607923840353670154740929049164811842229901729416991177342117570805632285085190105193916679904735282432602594181432032259082304153239006271014039184231278699611506416198892557288259996984382632698144013700553948043622226405949564231417117556653012933249400346309017181053610008112213349101463556560473710983504758657507805179541599447509769697422887595036916877334017636876006505827241355243588437107497392942239511970119031714310452612948672422365368563771374889277743943244720406246858343148259551823932491324756530452745982251210323913085914828561682994289388719079649640081267314171405102538585080783617666167787067336857584493439329197535628980802183069473753673345081064504656134585302412501281967544768621552497512056585339710705870853802211757887195071171799157882845620571889027312989601265469730727881544885108751341322330478508266224241793031009786962904293241460169778612046748987996056180774728045823677678326541473178897879781611470564887024442582134930791087466225446833484971439639829938179047888711285186652966598409242006852760698700126814366017936115872805010023241356240103602884707809306454768658675616463064288366365340042746322136993890956588730021167045370457270202520224381752388799975603241461410024116214277561617262633127315287563846235921012191774788191123093929007210269050255107567946653392350656465238892382807009984730898512449741962230018089850959512443666183968037196546253474806738007033325901490329247300749981223057267043096192548953785493155389774917606452651836583050131014658841086595233088498747047703644819403459295881639711498067135814140571304570028585240737269134925602109740549582806084449725384058306957035480885471866090714020969507226846763835773426560794322259810468782376424649636945706155172536083739182023205058425046980230052798127708241226851078650953601172234034040537851497393625258765757337671427811780499171131653577504793702991550918307468670823481391354934017862466011790486969916229529476689079900538605698176744824177059694396745698006042338879648606223615643434599232175703104511613812739603505353331508819744484944032985237005203743732972791340681777990020516682765075900117141436830075345644039820908682359202746553964016611731113589009115718442146925698956615429816746117598757676166118621295942070341612731671805320761186887587377496928049799815179296210816619528427793481352504170171962999418499632816142963659248433613886398763221764329101348147814851972162588195796345618249985748689858110093084599206272985933927571265330162962053602266768638988395467496361682601812356641293005709487758323891430404338609011676377696961456824716750131222060532551578930580575274407551437623136899119638933243673625123585263356772508420865993963930187454644824246339778206526901436784724588014292103915250665601182132338348252223491477441588936775046616948794246700835589930898194356038082718818382942937169701750440591713733947791790075432667591744464085118638487600066200846084785901823356127602023022060354126106062799476039774269436078542604274153822005673162358594324220712889646363626566556673900923702698094357716587453109139413204823080153383602949423320357983573263090974218298396456236271345389483640168348555264976190767157286771601990378761807884099874610453455059275955668829727757725423096835780715480443031454445204805920898085722874413961085787597442089263939711231613677372126416914743355105270646818942115435269259438486997349897187374278836185823645949256466702710528778082428022239392983122895611523032059657807612129498671559834520037804096125324573701075811248555247319125807681721360510967071745501093894619106633637100848435900822782887727288059504663246513421999205310524106565818789252416654086239777002115430071627811919042224218984436133537501889177021785030489726908455465148741512361159371097176188976129833663473853170369512870622233043208005663486738061340731137681401772685426562627717347446407995522371871780357333369932942889961408266458054804231365777623803817723253621118763301359750961132796232795766350101233858144215443644390496968648115742320889972823583217593685016406564171899762414702306294074915906354772221270463517078457096592324507836575508452380217716280115059541831746691518488889682877118050658137807226591559806531159954336509673320376290613440280916688015392843370320050388447535773474623375709712525223291204756208219150722417621678413969340797878221478371513393111248114069353199620445414192730655623812980764800274039238330410642153893918570757842983771094076279258992611523206014292712232806699807908694378382987511002338140915502629482504578698433765399723773504580577665084552320167650132658699544195726771779265147386784965173049976476406988544703502953456906390788824721128053840043318375777509858445703193239200005551384789259245242456664722873535396923413844676484924676943449906279980841389061582971978329007417595256048784502117060253585696352572514052741717386767819550558282600732050720277485464197908219366529373942902253038523595582289497654960167368082305076722480487946823697695451199141594860688805738704937672178327769365185727403503963333879853635518983115202829840582341310358932727389896530351516030569071398681830624578525046708172041111257079258628169990294559782052733563533241389378905620689744612408886813452087838779305408774871182836886655945897984821456971758465454109017403716453435625311290923063558035681394764521405518766771444885551321886059900249176966530922846528326486699208642731624731784513086977056964978138405776801664532870508649899555754237392070040553660807331361535717743649735417413765852229828896392344123864183862558011485420869112364941509242697538388835977308858470708648123139656338221644891842642874672777418287761976149818599989288792053443350273766281468673100282822389659678968990878300166288861327837543618706320518430597692210586801192131800898564461667457771856663124499792211335200055370703696080320704508359952907720485665324922609666687793183114829917024574693439486447002989832262703207609028924763221578797730619321634343334594687492569630958307826026278388012307944971645789446976569868727417499835777218239393982001897344001611390100238839786913706145236799451032202393645539026333206609485074185912257452725157812203424887382147207028866159749324880314473885858196083657815093721883975865697928306254906687880886236361672182147772093162961049062181615780341592510298574761750661828775097484467769384738058606528817301731412722656220740403919343164764435383284500316421096564790942944484534109359658403476707679471126769443275049750286670685051261829301412412347681206429185172184828343277381530634401398724766733740740363380253327486825129635742583114082303786912574180360836647462704258375952823466426529250899296761059791313328394105230278728657102288611651730219398234780776057474773835562729357620494492129481750992108541319624982669623060565892812204160792071452089594331874216160102020556081138206885682444059019784232045618513872595249536778057367469292919900325612654537988332257024358151058308298486602471943680236568150350421328919418885157536773386882973286752148155747226237155577621042585454655732732241808513082997244482889522630598908842875095382613901307160139975641724605217320242376722231196088824876093555364126438045934008344965757085621482368711747011835826902214939786968297678485447835804651688391038906339679171937556641352230133666824314623338323832267091191326268951297603567055533106550703847010362114669147767294968579018326294011191954773112449144146708791172172017278735813019781688082044283777690003092436949266820809710055743849424851791288322770602383468337045408934654561660672044083698300260626273058247231222555971653320653609640261484153888302095612377791059278279027411897373652762196202833122970583027886526692290704560250438288797697158790703383200578575839081996973921850838763512509528657314801507464414463491915413928631469778274315195110818537909349012782984725663631672413599530943441566230031906454872127602312103859092942047564192539001340619370602786463818416315653414399170162195601468999441570867371020593224424572525550588233695159445136039705553541680314530667483459020098905608042054014888447923039706620590970862314614574857931508205943116281280449293722727095861366789314994264786780148818220621178546779549558724781801366704938632796571232625713894494087622531822572637067863805192975838713991570043195228267767076898504785151098858894513942784503381318884117105363790773069561286236532190366862512796647829340615586031826406099111941029332601057751303081232995755025634282362150668970250089189989254202905008083051091264592432718446601962393398524161722710388706731923060812042592312624412992532168904805679229860018198116137327023395954702802910848261694256799019517913126389158559752649174161746668157955882955749520358450506179279404622591548494713947045689023598393583015247464364681073424022262340385550870509727454063538741628916696734508130160388565461287527861036062822898358712438444797290968413428977277518598858252702820009025557272574806821988274702075613305111692828504155835942967274954564396385933696097268417875103180757850704603109791004093004880510056531681673670446697592292131294642938220211514003939426946590315581578084444933760499284068535145055541074964488816212561811593895613632157964954904297582813190773600398367672587715530912651327408513172845044721044968256727000797082179521299201743851386501895092364544446828579279867878431675833276811573405010903321662382396873376445431527485793623272461320105546212535260389325322217145793647353986544222301811872565783161669938858813049662958396531330579577367858729705374450590357152719763453740533643503905121734718402032234864446821071969691698666613666957160231495803780648717535296878900328698394771203514535535598826148143397421184106144432288135469611824568967548880126259527816350206978133047028669195014568066725456096827732338414672584711097086454108466909646631793959954869423111593756373552533177189889873520355298823287377693460589291334526210882252608531746130189783517839277576099935842608379639037546896009275740849942036912454545976613168164735604877572517696568658764023117933983721486466485778547433277580979096345484644240965584139489758651689804679410574609253374923634042525582556409191038725980999795513431290356544208492309155463598201175611640567555120638176120927696236792243767081118317572670342148550383400580538687706325674135269369713199177426613920438551774238142194823664312224763725214787248402816498895609178068242379747696282136721843268913222849415210467380734383588320986081692495599938724906386145435039055838973084861526059402759327137791720497391164043651323039884963664267824150623037168337368682035562077521476454728561977031118433940365060581438235586433372333592835910734276008973711097438659150309658716546940938040207478289199437376938141106275234170218582603585875419351188367496696980202042325993802699783524742536722553403841823887744943612480429294366727922341270198397340858393614460228746781947768567173871313193392497722080790634053659378681151608509474821661429077947498631397862975903307853411752271489125909320588271897643759465320467006989852773151131261735664199532376818292118685557162191751088941200737205542386820998394841522087869415110988910707420301260993156318123735395124057301329760427732110002673621554108228122048573064731754664411831669224033461262286218776693991360142911781424494492235213389332496439762131867807439277825091676559047919189783938085638372618391496130364596999545477626263398841270253320459156091487573315783743382275238213065948471326989017872335706960365345306058303750239879124338326105753963138734281328764725992599745455568582563049485383194811985004932121549195213181967038135150443655573208929044702922866810808783049142115591707877115898477145192678580604734841926200966458104774301223912372374934997917660576309482096945280354717283224507563897820178758581582291814591022942829801472125091334224021724448706480512728768716217456402380213146447877758895561680233018183565867269036754957323613292217195733393440712384220685645297083129635541613012453776874513702142900955278443518656743723272227348616322836803951872868046717364365245106191069556101835583310265143043931002647683362020126271901437705044854977302380256008785629339381247327601248347152367296358809247790303255486224949429783217046715631049953609905035150621808075745332152065281413710936184527420362755567878429971230136564780905941613645146685079813522188378659746578121357878899328478884947936093860844773055868738119776315790690078120279192728211543413357668110945915698152843192130211402968691078233074104561360439103516300824032685456821217547081993609103292471125508898006275654817187479223410894127896085831914473005652248127519100245172488193357532638303543634869208712140318258363379822358203182665558767982144769294679301498765716809077934140178368943601821776858965532344949304082759985739801611365007233739713132291912932709441266870427630143003440020272676219659489647553892935548859841315357990282263223994015059805304815233253162011470817992051531024572086830942458294178679947909674396561524186212690291491655163233521502604391107499428017953412567235490510565206592103715844580217900979222584738060889957135049495592082813026221626261300535017931187325071985151052165624643063099692655762633025588840087407639401201797507488461477176928757343545639004837397754836284993231249071680842021385037951790267202665629941968724627157725124126300193641969058749085651406827915750887991588932818081924042160847097825632011052004961669279229097546002538695622677145705783831199497825006277491586754415024573476691769013858904250749517281425525801157412415448385079970345133093474499531522210322370510018249964586688430252435935723047601915356379793317988289909455256775438555918216917932703243801227047983738380051286970117797073617271533172215311866195354240542697948390417863147061295206545119241631902193458870945335262267838186593630206563378438102510329963642058573471060490353504260645787898260071142460285644534902045319747588963848045029349694308046609344634683142153034450189149993176288548858970153118459659989228927902265084013288478249068603723383742702928928329362758805503860801491301620520159108875886957055013371538514031613905907121957915527115099477532445879990495346201187955497909013719753777266918743996508112374796558178242667700423953697283805738334327457325867870748634860184800178589685861550477072195844454750393000822048464737908191931398810988191027878867652942799793123274459116099070938387152493608388741274878302476281450522697494653726349586509312869103236847695886858233207624328972714472626003610106549920461223609556796337295597820588240956707494945168813733397342589649742875894926334545776793571276691007456606261442273350142527316828537944006475210203331954692936958203808498254664323649015560036145827479342183339306647469698069478994941261184705309008936790811142866382648815784013687607687673958889635489492526049752124490798107039935398801889456670022272083843180084453095998885527098333667937367501845382093628664354491873392437273733780628720740481727340251048742909424154131593949923675390444827390115669691158155099602201843640517235713595341749110605576104279332543484593194678968790026248077445699961775030554035303710738461667656952609461665313238329548512604288061498703304952450177964880068987260417265057936585238041579256748496481502646194973360817068475564869173282222743701773517656614273642193567051221022481596936129726035096880343788804181576773294073073275402539692365724855652904890666352815668821252402635630074050567327561885705351909207347383060499612972983571203787621976031730052149699620250201111463417703508628677342009062409060650168330497638602251748573687335897706255563210448871873542815934214348391523017763645265980675041103269080084764005759592934982185462327195994796822810237216920358378618007745965156682754861082563126443592477197920831382092531765824277953436343923369980429542611199360999865701342505793804242387953177571497907028177091993018919134327841622513443725226551932536541420016151261467716699886464474716951042859084320586960002309679093171936887620391111783916874302551238479124657764766904526831132492455227409884147097235778522153603535755215552920536155172743058569603128759246809604517803910324109247941824700259806282737019199299113350008976338521125921116534714822724348768803283181232779881641580986768209037979941626724009865347191634832487789689874740438693194406194272784404289962281766225627603504113327951488223604350493818286221783330339731405723174552306801710126901668191601931438724996808692587858410939862776383032087572587222313268555075049878515895419607069020207492677595602090127771489424167444294528103933740736024794685711841547111368926639845559077807114167690703821047638357269057600317421339701073767421178678809781018356613031493128610273839330556942518353109879104449747421607739172902180101071583357620045910145987657741279335287896397045648445592161647325113106564080109424767639574041649406986216765649973191968642135670488784458105374672470511623838276885207798098531186535911025647862361841980317496948977144418119217201220773887880159729987287400898643246105831791680698334519488069284134100097754778714528345378863145676224488187862354947111247498931061072138647716871083896970759846462169914217544107124349885620286310055225503727068203386525302563384590241984221135806776656018322276403594810864638425459418423714322912468870281713825933786561420619597624844112563644382058258757821883840353060172609392276223442097367070656433094303652051704544430139891174353596019920016527307495154399150682187264677245098777514462044757440096814111567086770126166494446969437765718967135466637921895225949999351379405597371030463144796967994235575457102122674937897566004798141390211314855400808683811436607939149497861393276983494348850367565833204765652378914231686615072297291738260695389156301555465662583722043518850799285743498941624823079786324748884448619481256956293194945233063595498348106962501138054599669452245286355286178978716787897935620777129386691770893411159297499831752415006941946244790363375827869074380331636871979785282729676812636527980938210172939854136370278899979394502443846046466627916096975492060463966986863570221528903092799322976662919912033638982934241792317299001320740597087572623141564295445598527770409218791923644621093640878069377705776109024839444787407707065459220797105619478631186306011606845507906277832615372810814703339263604655728385409239647198387466988031209509003279195328207028173991401653889764620722505401143205105764501945519739865657365404755432869803956301929621735667811906134904017729359951784244927565792653772732709229911538545754176139970560202458118047332946998142807670882005333837657226210066476975725003585984592536251754970697458531864329590490254374054677655089929541624253234281856074294727694054290833791340851173296669841200224524762562248919220964807397894950870746178495369173553715679465314095366366494463562183509390455485242361292030001830762733678921242766207704034649229424765321081913285174891946204887113769375720410409128285073575838994929812346962507099132890211512886288833596640305982511400676667665022197591350386870984796280430126130740369973001692120362240139281057465789026403287630333780875233479361336146838386153978568588174504120668392304582715032440413883865497316833202513693038415582384083398912115701909568491242711845217982310500057989609145423117706723441677288307758297411517345743597351275063613020432138515531016838012301426610590650682137869227255524868277062621355715304007147405701699184025469918041475181145473926197582078281591339158956359943455902054171486661072600142913219695447323050242216661792313526066189577999984584319922838417785065429949994433002178783387204836261895654184285093481215555862256845228379823698805817257393969194718315020725524578833824631627574036452948993315823206343930490109303796925719585378277083459383612244790547638971350131835036067342172297723845617202118934280232378435309684705057409075140502481469620357409359936287635678222120685892393963662336962452440371383282430216642062106150461687302471649892561750566467308299859663920051472364219634128044853220228835419736621552875715100047325139963375868841991810508828777189161538287997315124743790024352183979165094923220361130659656735690784551436045632193606295059930457781992847431837912192429416088473044127814771219938694331015562509938768236891855265987177095867384283072166343809768876541707870953836190759134360079047201612547203611540179692312711032718593779012702668318726932295010628897836330467033288129003950000867603257694049538919655357638510928208348526133456192524613796989209835983872285546036385779902793601716542182670767649463884214724774774277279920196704932556332972952298032368940751463448469804446060145697164147919100367330056925302358654156760939566547452377415156743673040477326537152601283743961950121840473902178651130551239788977282194949593047594674172489407275190420582862905579540988920976078840759307309615894899762109527083560864669677123732870034351987515320819085419108135795328076570661192425374479244162110710709353573525284620445356266877444716879452902694354132692450688036734341772434193077573956472676368147559407089439244090351472396618536598713157092974863338763841847767029174027271413407126805030221044371409831916589405122101105383555181594053023262099942054373855819071052002876932113034107971088553537517998178022595643835978066717188148594849514424514066470324309533575687713722737904406373084538862362064727700745485036713680223717381855212818311935814704299072994591847582324063574515704693163521974843695627503159808160079334649670611919073603205926681863384923630380277254868118662647838862384572216035263844610607650493785530615256223648461435652297426189465451811039132911476148255244818431406717270901708208263189687171066835272060075628239109738031021909419260883504863434473426681547094839990898868559096013941570986429150861143045956170804640589941828030456758085521224812077394396306395658521354614752447707303987418582513290537443084968028310853100763011839204465944069646461201364220854586969514348979253904357818517898372336419178341893178343514106315234048896914556861603711725478993057359616239305061586309529189738651211515796086263873551592635960777465233324016831591316242442356274382610431606361425160864868628302114690660862551685978837217040602032319492094212286993359269467867738439658035812562449513874243441152496220151903030211765947433829492476505788470758901952534747298503056811710789259607163702963073755997739444945876413641511901536957426552458921522214135531393834472667283329662525380920201241445730986539679013481651298466806254365240674556507333079519028703339414853925303951511782519031734228236993500624522011164480972179786423389544630978884380561746991941212624315278548795264873419832741926066715702006290195145670741417473331531797513402873620614198628088574589083790770837867014149993555906708529744899731111598270253079068046532042213329621839507465269342627302062769633395086641163608107538909033289427526346396645337935216788953108673186270035323118489239972832695629558987192436063340058245056327722231168402399183389797252172424089676771869483816435359323005229472785963878571828115409603622188112978254278170269322537880781613422273936727450144083965002501826098331232132464937204369102539618256263998385284098587550500504284520702703672591700329494210500209646210132200374041779586702103465206085596192846866209528081103077899124278774312774577657235298864293881589122468148128022659728338862139276156631167841756673789683986711919213017333489886168060032092789691299715125354469792765538101817310812093495866289745600997105173608421506404243634431986273712313778341535630808347436898058150937116768428013243426204874263667618344064799749072433986439808080194698413067987178284659701073976923179998954321341655394294273699077520341595988140437999117883274566706523052873420442713890237044063017806789760456467846417012011791852360899206054607882704859766391397865687977934251845374107875349463359352602837243707679555059796321806330900007039528466644620951395985288029607326329216943255001917366068916552282945178920917986769053726718444760808738228114113116741042827700191414627101253295788936536962528702677809179632153307480321938088805823698024074047671758156727986667893256311046413254616242533412682333956229795700590978589710541857278581456174137517833283968595404832905761036478373523402752245783365727956105060710293298973134067563451865434566145884078996251639813342028613388175309909425107854253094272199423869981255346564490592577303288656777964697095226119648659807128699158739100481510136710052296635513953022272761318597334529822153189996698420558952026896697315303124132828407648082437278360109331036491331094374086897507901015073681941005583303474188726011066209261145653987137241052219045180249381248416345470125679037570943712935310895262301668072926421490088384608750789707933668537316699137679648915722973471058500965985768422720432980078658425827118821194432381931841862854267097485416565087326107407945119195063673495179788028205029820828641532278094037771902564269306141549661188259677087788427539822912999725487926262517350528664481515889560022170442778522723293057561531993973270974960482335235099300066916993002937387525451976783058254701657828696417622303254705957565589317939463038094418183867982628254647240516932499257450706021386358482919102333865132134917920372639293533539517571417323142886257692877386664836383779975390463281314132720141299512147221717559420838635442291143479462636723858227107782656329236300964031959108680433993436994295377328397849802015416219785935828743521987236962345336616104795148420147097176754440749130595328184004748354936532738601785969994853514810680573227674492233149831902687273919300993371529712629638393228743938517972956585542453346454892077658890097064197144934093198680007939773251179738526203647272137340873245521113063546011683762172768293237575470456281516877860774328215469088650249160841278630522207968773752665722393730948331240037306406465007775792000398141214569725854219432131910696986616308251625063031407306289668129893764730419759585123865662044849771358619020084533029990424097525395328768551910608892233456314001960136201214121540250515967923137072705018939199654107545143279992657718198292283962120192477772679833614731232060816576351916732668526216063427464054804254712679528966990896636612043077560399995544366959968380573989787189157045915473410105053523128530205845162650920219218095352473978540056537415735069869596642462908985168436320768259536597573459530885060159821500321185105382357534826483887327309278660600720155123574049431065983625563670996927810613848238724964482441219917863175193329202276451595149028172502734746780183322193399623159827394089623821912924473064887536452691383295348987644314070304023264905183291874000890615369918789075174253732115434103638191436986786615288187706247776669428487504601991169306101825878933881561491530881436837325634872454559549804561944590078184191750876464150474596688144360975347407578956142972027359355754271499163421074422796116395795768181197281765963144497115662348902085751219966652375684551027508284307074945067324037584968917057344729640407167296660030501133091988748639598718910711670653873504956741543321431488674988532193014466782201297571327715559532457391032511160659949367882648139254438115004074585944018868481194633287136212004708128540020092291700601822236233041104922569006436875033102018235882006761196412819240448674398338197917080445726041653024063450425862747711443746671521123260455952662822902169021305370009115045984775875684783584597427333309380596933241858952139206810402339422885732130554604980462934252357883665632320142363257237457969876023028445021221423401271691681604589547998037078266357683442284603369526896091420856582188766235558849589704392535849728023041771397173808550022928377534466910821912635687046082777515209891364666386685062586514616887720469134540804785958060299115305413783826203797260349308520992750043583694413821843942670053664074446238122806998479896157460236189964285691971648929791605054978156639785734485057405874146376215087636942956003941918255563495881379144494619470726038090246974583802204356806132356631045595772355701673267005500653357154905430931184938449461719947114212308463844224301408098276953179988775875311813062662264966201833985836679207871669516790340584366938771374088234201227685605806191408744439201336374340738154090270318970008109340176875305446531656639884190953910422222937567136640792890254757126501240866525459661132291897197704684979996169743494848357408648204403354085101977756648576121596688576832162020511013995115890804991874764597908453118930647449411746175453955204847587251186693692988060879639990147629403739197819634363090680564745332250939235369213959221199918148345582153944788336313134437207486121988241897755515691712264627861342727479809404665560163442392862217179955589073986266073353778651693789222979959976678185872247507257539675934300185742674041667663328605759820128035269014175593672960822740495096591064852043987821088366891270860947942032621880319805968068786934517840049663499523860324313406994968598367702834941804346960635392684868010345689918199263724063939225794552798427069327838609518675473239299405241768631500982202935636193559861367198490241429427881667830194858916511709245800396932303947150516147898990812697245112448058407920965607414285991909488392152833835867689655840140286252923966382079309186546321882900039331715421691433816406872909098232919756061528893845216862552055359056710183109589525602205280004446675769373175860281861913955228473685795227757925619194451985778993500029023314455133456420808466471198484615077917289934059109121990352609895577810959030911656786109744568359638005569013232058066745957480353696253042879077900520320098768426721918851697775131461920647658509785892814929990969282164256929638075640563575777067564601590505240551613411771667043438037552872098440577611237699516679217252264164189808097844633217857237023385683677740505743375783357504148040889026527557965069709219787898872299293094866377320419555411347121025973089963272070505611337598656562627155002977337462922876585290653179867686492764027218611543376769397851664426580748682903930954784556642949577422668161904234455471930580510457056019811252068095533424294508944406831104016894696475445599951859467527315708360769418540374467687858682742348916031960974852374841565438433335396036998797569724037824647701537099531459816781040952950937447794614148218499233476836492707710018076265689444437935162507430059699230345585009996781330328882957996577019511570971048519551880881248158013389414731204752890778945275434994018015190197890456994393289862930843223346796839047918460456231923614104658936420410695705163439598338751249856377151893536156654273317986501698036639158909698264946887693303134551079205042530686004368973180939871466420004478225717176281611197363119666153332304038223417982274032769595482431740606336365593138960158832198993144361619425466467547742795182838831042753320636376934363325694424649047915759936031845978897580312711182508204721557222484970850421278618038843538384269432054807317509589077640026013929007507239631110594339883132512229486011263550783882899293123899760994810450408600027251356453265476013404233188632486917985110645061675124920460204633638333933336518948033584088267418539109352890144439286855478202033547562542697740725784506354180229409722235129329544302173167659552940608739498007373795061393435701728292873196847333623356330776960575134668622426337797296483912516763272010924630267105274537032266070515715636554127059397797037916113898818836658656595562274605237228434394511113559024992336667295309504345736861010709753116604711858834196047911120852813459331689224205597040100158438700067745381457858808652756601961878032619246638097020557621524953749342567842577128708474763370975926812350675517304910534177685859926859197338754338194805877000748891949649175350946773535202300264567991004524505253586360496158124921947209891409252174808327870871313325797801991336300339778683618135708019758070558633337795834185429771569690932243798555294537364295918311199123384206765323914224976096620845252005730062731187716938177474527762140774451145496458899622538334120203806181872731261121668110124939095244021366808336000816919002451649733582248092503321640493352306033837691272331881108592371364750188919907512917763553623574938645712944794700531144685864895681408495040469673633613480935420994191674671407098913558963673331887245134714479035330018599971689193009596889898740412605791863211263184281109692227541634718957047410905423411910557061095817462988733004060520494341250779272375125746361281018488833830403426531988657054006064840477913851563771853797951077817568621100011847493156509493497860057202716427234279339534989322787345055707845905752591167566754303851871740456702760244615588214967681327494937774916228897516758631012831226890892352432958200429325158649915317920734015994224834418877209522153544264774892970343630616561805366067496501300855816198550498706952579001043953141700563663496221616164544413127757679921417710875126394898956407747522200904737671436181793251287064810603529131453292160912138393841701238871149378434746820878184895868855130276539528109247018307581901728105829122794942440541151107152517237380372968360058347783996468676120128911219131409060677878855519814616528614747060042814504764578025279114338289031234228101952537323179015137167774457307964412842546482509683378061559329602266475888072268425635260553485723772103280309806444203445453529181384922513487614123824799346188008241509930681084425007961413394893935658280648198577193522726303318033018817451628580916420364044017080472372896046236810601701216557966651899410440571801126539730978537439533830479899963120292204912718201993974095234609908013926535450661854365822473679347134268714745588383023251522191620268544618755962730984559078329977464014207131505880442350132713349304722644490743959304595070567820059296612982841745324094334208377280082316794573780743550776508511347729630176332085996442670556623214913633993032149154306525944359892389998874299581611198625767396856531032987440578678530294130479871576069841262424382541070898763616729119693136542742522155757622004944432850724608896502702232286462084521882407263867448683224034027800072313965503308402767582472692082579904837789419268539568246485921130389053212877439116899077406476050504165615660767498457058003493348588820845973518398251552877549046289072361201667292325791008654273177484709458255097911400536791350810155530995834424435152473628857009610696043481771455901270303761372799972199080491019989427021625462866514759048375111562903086413869332829446781738565794517848249096741048228400102210066733372858840221118143534276861319001502914570262483230758788838421651385303985754634553855017081247450809889512997013666197140686783750002275543773819344004744300637004126115799737991571757890845137510087908054060976728366640398208395774863129442201399425021680883703187734655480077973521628873779502988721178606598982048963655585891771345057645023979747564749670522095327658015435329604602586737246028417129703162741163062666841587177914489208646613528831283040263141685770463636121978830619835836430189263574693732778423111940984227799792765862151766532124362932200054259887024306523815695506620040669998671313760681685551652081482893166451479365831262938995759977405343234894425160517009998893908038377500296401789199326444474979500879114380575939056121645616156506926783750313285648355277082877705474961906806963567248392790192458331111883176240432773248808874847219892778138759067732167223476388533219079419348829892431118191663929273662161526200273064996717250409802610979365067383070893963555708073914810707582837225384048215848065319383466638423973468696098346582145893417458636776056474629315462005200206123829979010104877907068262406962306296207499248457961435920112658823075049155203227330921855538760422809431979861216347465007797207227874940429578584669054965751773157586901360486392660312126788001569419046677675959756405138406088532499014121821921916484124273938250993026748129332419925502842312417456808743159936722768373959401975113956886886072923210645032049238938941501871361214172557826783487684895514114072005956124362835125361739149651207094116782917958928904161693288958653137582366788389905049023552232307566264432070980076130232513523954547816594932495335984357258294048102307995206966650227142470877379708374691493994925820323076081378828519303972745662637884818899621093365233032036551518023354916383818995726178841923386030881737354110781212053658110814097488680287316938738668786323494842566586734146112887767691446774035236586530474872321203469557939576693249076176680709180403658517068106725945319629132060116137558163767157281153371239227829139789041556445693443081341872933935622289694687503146589332334974992363124129724036334744987510355626795237477112963817889367686610526972543135834282510929156303067652909943059479514752206805446802348920319259626149925949034065507409028528439932501889643084845440734921632674211707119582550041888210311764193393426522489342599808745486562956123503551198212312784369384121529729720468579489965921010299085538024049880056570691439890794999842089725801964137275597559667542835208382101349490376613305313529203535956355262164639772944376455836623415479376671063413861138524273636617811030449750308287710226538553311687809056977457918364023233856938022533047694535647392840824265125493282001985346723668559271112612826419143387853462308018773826732701904311915884309931857807055123861817583357655670771901708461626093543153698437515789160754743561205048120039436880600115946155295676831588767057843305953624791376745175061709155579222926541867712178295859385110675927313374189645318573882717582954086955784337159072302106908853809045633302871548119196407881542408169937252584290544276620204422394246735375507086808607500066666109063242670541653102104187766296926529267929029942486683112053042097618359149744664806469569071290980698620933399099280182410331174384489459149206790748129587523667774673563276986339244214878799656383127399877214487536118318922886984799859194324260411574720820091223714082558129602810573035383747593779584070854414735299371494092162589940987802212495126740619384517005122719370101785189434778679831039333945655271372709879695365723477314387119727524061558384904627034813099137394469241774908892121074798535480573924158694420306849300416383722773776800087812221738538477562002163389277441817472270335849765813606195165204819461569799941269676218736161927651260389782252795212508168887370267295338125667879148996518193417907845224539405846797721507764420248067562474534205168059392882687282270307939517651553307293420188798208350260273613615192573729885240989540943031031105844461966675012957528524059796853891882814925396207996721997266668890855214064419630534098200115816257897114681817880135382038118834714575426669853286799122886270696945961257006476931013017984929884774991801439828441019483573104895759801582158153020456846152404020221259016048773761491464246487704964945810934731119465979281245329051367511785608246044964887291644067535869679252974597895505029417346967058793014506320935626118755328297068829248650630286882801656570792920486321272184676677594669501457829573257325937404534471353074178377967521674259166332994515828793935005400766939603308346727907155816408287677143326761438319671350566356191405105359510489282852785760224994003020842996897269801364940346918209445917189488321983884396511690444691617058585804243020387990203463058193497497032855895201223699376676801087928379630305271886069490773593221343525110485301644536092322571005663686074027094611509362606036764508215054558236053727181063418530275608064878920944909574044612432427288248328974168083235631013424063813383150123728786062330670505418045506403885876834648680839086438723907790789642219219760046088248168232579389825951954381610707882580972654217802868691511458570672501910126824000086545278965923236371409139529670283243572317109777201164308930386090015950488185162612045327205850701588217833863661692816364597458476610656444878114234747839962224848793936031276050998010865369699236645654871123912302127927799364054079671233693081078796933012245617992776661228300724950735737805726482844445839455101463167715302202084814439828220009957575425539774215399437600279345795778327121151617399333932444861924295868490066153442235669755552186604006776944084111738761079290865411751731092039025557312446377409279955109532286640678893025871338168036037107741222094864524159392582360548610761864784730648275506528809001403390235271418691229263252591143853871445089798110972650011321888352870962062315865316491111577401927883657634135412633464310469768478493616587838960778977172356540764383524646685084231599871352341796651060518569401985651416117251113946001668742036056235083220752842847335026673331300448370433933797125304981757729191412018014276842391218832215124354923004522465927979915698784334845246625387312271397528601585187275115763512800047367274225427408239036063953703811115338710044633519528453559855827658701827158048762667656952486374590688036790610951943153145941621470004746596941967593551524470515798957181051705591307295322277314636212440680415120957355928271444681924848530876638239467382012866563287059387185478563167130366329305028515057374355148178168488407104912971088633455789376761767368544359100230668202294293297020460066452897990902292821435232786511752061099762134875563652342775449724369717489291742178125178330934765392547932892994366048487428060088089014811628432139835279370987166494576968627115280810379437612708526263240670561594161332940362624770431856774075242545743389053878575148394628547409221046663330992649554103932322432898965795230836176848347502163452021307900466269904927594621173450525824676769179789339739437912884611722374349751068487002147848945466049100440944416821901317501051332918094225956936361526757133522425131312237282144625399440898073017065028632145672084289141701069169841998162318163174980114800273742037156036464242499241618386142086139811412640753558943483361794717266725063363214506876047810150064255711270117967286851641406383359677425850755125220423668560994982708353073110319154427414409356641993017352109830824367232736988426076981056734073828351882044030498887456751832848768262460773308896852332990350049394520104913802985483408182874908781177821120632784074225904183135233590003715025909777040769939443284542166236301838264940818102621990902120300507825640754135312736933234728275733252786655109509822386793846487981153846181103477489598807681473059283741271887562443640922813846437376817899802046267756025127985701137105541195108663195396392910988401723221691822567116668944361208378554443827476533448897271239827903820193156125143271583825542408821775361013625679238018224698680245158404549245107533429997345816157017368248334954878720123533418396944945505898061422740589264596901613300326351649500007705925809293562717173975387022802051234879338636105127593260646268861850892354135657456400592047192629575120955601544610536114199171327331064508214971121830703684045698559818156627905307956551910866413453144347250067673668135582878175242941410851193911407417797429286450090669751092119843292151347570819809767226672464028965107055302401608049479269408936662835096999616473802675844084578599376372988421205060070026449061313684332572189439424497218735028311075662916900470973933425746927254526738441221676238771769720332209541600224704049083823567022510849642054484357974332099781771972195648478560589024499811861858485475450084976945433369371611343296707199384930831534249153107845977583514237597473035024077356905187214332179979746921644964582828811607880391696252435223371983735085294517712888330486199257215223199136590601630465351736127759847300419371081800693196092267148581880325713534222851058323718780936568609039061470676382724717457604914309920076819985325138802943728811815422305740200709097646347198362891943375138265042906841308113164619605579416218090797985310863553345330429134202349771966467990054158155364922809243643356286678094709468060582799139415348861899059432363697083166875186161653754633404534820478627789965094588854843359633465509817414815181654675395168931236940503864617277885395642927218436504396441285367532550176281416154308593133057680679959196066082293202295883715155733605615350554130678861567495689230349378038533387096759482688424231870124003603296086723647160417143162873884648208869243060361651243405807192709643902496355182044833899291887260591687510048736221137428824544974356485361603200121461421764647431364905868505100567387680185356676661742981746770594146923221998156122435417488429950385649068308823114968055251414037192882516490263570574286155638778225825116438515734065969564247662806311586090358773457012853388212278438193321465920875154185648331961574444898140547485355765650087809991412410148814869640627324441216187413966010665535850544205713546168418086463522664018499641993605595826681869473302533865677238476206747311482361190066497470764201012170854471655245029275380139680626007468116871839885432366267625570531380488996339703469681992589013256011906553406943270707154404688211714838310157734701970834391859168423698240145881903540796064671113745288664193009962779444459554282417188828555221069167750936754280690350469097770565908916931997979706013786679579094055429055301938742633209839078498922892051791504410437856063050883490278580422610816946247044013623368159609037926008312332938854750118524070772892660825696092752353576830011116448019145461477421503221180013216994081119776089050136077514046670397100861151232306239930324222314985477221360618479299830438301298441101193841659079748734568992164635494175371374299116886003573290806660390614381044848107121122175915274165827456011104608354552373572452269967258401394008724754976297984551497043550101695837537155943468654173196539044093831791033880207945645937888689750558371275743935090277839861589038332347864060478919783933232894870930247600951215513008266245352637961456588959653915746866800012683463485966135321137437121569433437322304341174039774297814448956356166001502946997346436461486757796619746063196459834979625048149552721022297951561135187787264088765689126456990285697193123249354983656399046720800018757957397498422441739029589058830213677416905817209369326900349447768977642674762192435055042980333111537774364397123928319696560806794480676583427588976907418320239722093723173715003667612640865156896267201816858246863119145652802710128791846982195185581393234637285310930808989839293174387854354196541993355272743537216045240030027816725101289247447495083445704480801571530677312691322358649947124827158572653459197817801017261352099640449003820657967938317444711321529757972115474227518801736895347985392861814937984084745303764468378013127557869234332341492704843351239507541151084050129418981003251814447260960512082467565697624585335810610143055998588014829384555003531749939116281348889855114222032759121293487841608453154770584169357802976248566930628193551433533144668397323637446868921484818389448831494384723774021244759983059688297500967831143828063941160314017478396722929231467219574781368710044295369193098807203503953390590869638700777619657247552232015243599467789594163358981652576968942593256530545705268509559830246695117445754121542121395670475467493005324616292507392139096367638031906612480086148051705222050285126749820797830066245604722823275312527908039762954977786585530551918370739622432336963827660301548888243844640067818171350341539374249418349429895477246248448109183619310704005493147227153155340613426939128083791956900120522906336915248514993264644707249349022676869631054762492638512851730813540298170480377559610189581684428024623689941151750053393644038224446385860403329120108743528864771368306185888389210433607181223583496873427090200069178558087779503860950337249174440401153568413137471360694986765139541553530150586463888575983652918287372782954798413233006038573337634890679357747628846053880714487750745193315024755211852333420096738531640061830911053513632431869645466541756001835414487166915697773538124775248434711060744975969077037133742626158570141314538736344873231164999018965787679687513570859275526146726822014535879138850835497073915631647696642147212475772746275840013798803851292589496744727530847090435728923930301727259222097817681071957272839889354109036119209395999613393059870465987558480203181843458061238721424083736117454145078817928751451899640215227899597916801487242845571440579201466732423674495167403026898560567731365403276290716216629983752983186306164569937484670975746158757648060371996605462094178651279809661562054663426477011434814647607014552797457213804189568959723149747168886143847630245258372010058182602255897866203063475768559033857318469857384277383609931620886691766835237682251138204289802012533277735937706007285556320051284334527464928803982412164744277837756338958647516174375434631083910687221843964227743360974369144901964896473154549368233925930889899278421918134140782416921179581225552197947570415842995216010733965143318132956813994522442611181727301911533921256721531189305517036096930975448200251388836550807897979386088507867990890275730403008657285603002806394891450063161795757251347101071838613111454638295120191146933395607894923539939370403684332336520115937895572991008399161575174979788713457083618353175556366868423414210849877570804716757247185315367615516330519984635344122702009932796232460281966888487192717053176323682252705403745490615033014710058269262186487237833612485215892904556456007723387808216015457916923074230417229100157318521827179194084808082723621421799650054502477398123056039432196159511713818911047493381212135349082028012794279837590312141068136977051687045438870523852742566427162298814893681489515607012264489261083077530229621525551831267442871883762175530224445364772707312365334608965350332561031473493444870700204173542543232054825135277961740348668438742773391127221946579323878365044579985418983788370278395141094069922047134688478174522427533651516425596958930678778301296243738485265643440453504399561599913745890962355901749945230129545571425886735713408454691339940698676589781880879910771537647549179593059682553163247553003837121666927085445584314529821652207691603496671224188762263345279223736174518592716244657936413891146755795089623305695673067136046953183249738603965400592576811554087441530656764971397021210815559151028512805383310521002483337172604125585620425774663753867949201398830860581660407744023660892861718446883771050849554689159676685918102068676077675564691361445618481849210830836410080797164484437522202395067298998160077176151233830056593343091296673327218362863931266928145316965480475906466869649900302037987518398183442962282666834408517288834180700871367234183143797632074029504227736921843592787106617217899912705743014800251671516093265587911583321528392443686490723271185801588965437239992974201062823686698711563514518231047732866647104390551032874460061780837389080087536601984138778741254847242153274017155941163702604487115988827225236431642662922902463316313866490104218270006032579772520788845705627478095072230650562903069076054603738843739903971342486914752882134608199143298323136421473714823154123513197703424183055950104760914951217807338418103530807478356613266743522155534718620889141899196492138213680487453790300371166865689413961114282616877968330674411272629275728291879728640960841836919172473210190696799213507436110344938214177310125769051013520879539915156225639810369446542460301308261672899103170818736059991910119530256905627651498950658002177845648241256511456554305410015931413241644769847426194956128849366152107832531444567873694762867295198573015594329952059740928624236627120426632476622847391544898753435572814011509787962290583729803115487859137256366885654356967303412865246585572018351827234983862830696147263077363763503908624368539517178314714994278868987054841865134868951007654576899847753442857290580606399505864654329172668095786733545043525160477817255341276368857533924878401256962318048926459504355021852719559970348701602092222818601019407683529340023142120544982649489666686801366058584525775135805615771147068096475381071627548973725831521599148382997323720503401463277300321133646855309728090145404668751005434572058018061739380696391000694453744794257770685154313987592283750885775938584086870441706111531255828517572715442773752169842178864149192538429292075831200486529415337388835556712148432306245796261484488112284485389119809384357891081602362864763677313230853146273351088517062598280258898147411105035592518393843518562850390442299363521112895046544796365083347059630409430976632152009899812865475243322997004804144435471046422705944120304924342764406144605481662970626122235978972347889604324433557767186829562816245391448679171802554560783266856901279660092918423684892164869733610217688875552458658862464749839021083999629013108159638874711673022364535215154348569155739543933430672747651602199425977983857172748099218129517639491398507615995039214615400463168001483053655878066145638062817750242582710774319494035676397648252950597683913627501582638100945745226669669933170176126498001912857249085644843562275203982173855657885226848040887261756844565348803562695578092628077631003979103034681850687272740367587033965306487637440672491756975084121985126477543930075296989836756267348829921626751890050358950813301621310495576216476697507326810001506086011801356650538065866351555334798815653688274464489192520280036523274983535809801338021154570184706731435942877618977084629439471439497731835486041072709802943261829855093231999406665732485169484314769512034172703063968533968717545999256880347211284884465462231502917558750573518285242667219044591540955765286206984138480667457881052917391748832183208774575353774299421007601246531373890333657223800764418392581395056304243267700908523462541575288777138382365289075730966472583636028909974310723234461738636720024649239355138980202519816807148469411360453028979613685013694535749899780078484299341729670525955917727226462515217640469623457474746263001670081839108381931843138122260703810842357899177086478596085475831976832885074405500795818398326266532990172213436971892229019469172073327126273426423790221064663369339096872385953480562677751853967405486270179072169142391377752223717128168577525354380768979413279973487228600714457120092636024981616632019077928147375752818918322650722429785680927905697870707388306095056033144457627175361073055396211733462215356269283508305758200315636005489566030079835700473430020023458226879619662364774569228123894001959530254582749000248339268858171280790985229170802695631152533652672932615242208559624451201294235782436221973014886624882919562268293910351352663983042044761554546849032223378168548654207398251013007693393659040316039505272174601033599485730569868094192254199590164933595653583062482898388908504044336964083782066460147813763148981367105092882522465963135595554440896309570284543564912712564146025704395155148205848069689229609788958490040066138305634022814494883159661962118374100701989548519846230576293114541805886685055759240829907823850549171075591861324270955685399912082176753534582279766887304824407192484673141845243691969285158014694622323484582544411131117168470968033196343096180281874288639007036496005525221928308874820395457838160951132901874010966390686450921527265256733378619386812422428511481171412267980042555393266820860485800324551682616072159469598036791153099157015633297300435841275883172025723489787429164918560367767525820731272522822326413447160405418228698116387752911595636713859156554842290954705055969253449660007659817685012657112540505268661211263415958032583235850440130598911307318492600698261171904254626884959129180515993487824924324358976168823185760693070666819481005732197860768634176317632884685762557338895660821708049773125786467389812417474333429849362018585324401853109348123970971144482261687514886867148756380424128109729032775078914568345865266714461546275146269254681151439106477388987995093626466061632266256600732981156535586958440746688116402354660703246520368975158869762663572375742412084222558516162669180750833457324337037607019697684049552820096330156716910238429502392931288494540494879207906218157095679973658294900166099866549613491105631491736740412505625667104632914677579939704062364887544550962779535732644163391382024024965602160166816945432819323161529438552312547544023208237750218914271298048886257536850793442093728920449491202549977840821439251195677845651390098463474255667714639483067983735911125648264356572937410285373763478186431885841503011227118175693961153603813678380982881400126542995608316191460707153839989843943551424209483994043006243769305993419683195425077936536044242877787152435493582606937261485955855279075989035866845670631352344402879714254240060058443911369407173895795411628330576644987801138313975970046910987925038122732956843917388835710429170540281279987824536672506961398402678210839333582655498961134465160289595380974799373094003409009598672953704663667788636830043303311695300572739869265106283588678102644564588706510206147303533340031283216049332270727271072708736262382303991091878365393328738028509603111013662174554221520943485282679321632830961666718898978255650085261235753356676223293579555656778412127985091211390124858731603811920373723947604201953890128516861433837264865009932030723691942648637714909521693694934811558677973003891504217596458152508950563805311676273564821129999115206642911951629065280357808775236827910751460999052876842109039691646020903715973574399878958932929995881405662727380938049591660512241657367155027683529452927552918525246555684189661783819097399152798173178127669226334040283782979934409756645032394574050458937055324098997073904157618987584976913575775736201411359657059457625014924765532918857824160494508890698082677549828630895459813819709602705659475352358771570382366186125179557074090951777110168313979817547365964824579204469275484990727066477424353487623565301833341648678231494170451587185094186656053901764356813784956216818733510234170930264092789288142788269510072154708397807089045652982640749367997660281584572966868849327490169301876985553317425553810582902350874817742711245093016368078290734037198931040669299870822603714977002642481344253237666903916331730738861814708565319452592695160020145722092491248093569317177191307884803808231413807412663146098562684973417950176436018917153900576531160910483156430569827626736857916135689301678875153045484292952771447038677158059415187017719274581774954223858867577180146616251810458928250555553787954601581960597339519927674631894454261350539207556766566722709536554036109676749095912372973490514075965012481466178511262759861310321089860703528858179669060071654181544857303451572451971604408057210837149068680839690374326673410706140901034827566281217412951306055442414768244326248851481896066277815048238374358660730366699095162584974491194003099584697326637782421574227420726941736964654629303245213952260211088967518761454441659388309311583788594115271968432958097308071657055649269074766971413346929655598479251565126305565198572175302799022295444094626204388799572315366313229662989783321407956505181202617841593872659639289134266643340534168901436379004805046852248687933645895157284110895602120072343221789993955496204821686235501925848331066494187389598772227136104888476285561739087542228508992498666159435315690456682613024960882501597227816744791611152655814356798941270319191979295152733542471658782257788642854244878796086998173213416425708029284515332554403082671168746893792958514638896825037071513058134703026882175658457028445547465194290942128247323935438408392603698468078718359305386330852297305401628990635008563806049397195980820703468034741304468595586645115802384260160164531856057886261728357244992765242990734887462123104467079248141838950681765868393957204272120241694008903953160809659108934638953308539400028866916145170897495419184842713275435334680501278487787696780539403327305176412719619357242106223804678404244784294173738411958800002587353334626691660155544939953919448203164011156812068824438482748118866768382672975482845533032344028983457978718855824016729820172405702935165232502213793420824447954257030486202982363967765410396250386232201104583844177949952854875073233565675958855379765780187516594435415761440639946919385120924243878249465025851880519010411789505788731988171543170518069434027825677665416473882998490119574137843306000441375574300659706262889929344342851263954135196258771440547927757626232635354113460646971318325500079543036406630892354013514827996834399684916324359217307702873359537101492501615839180603953401983286301916053036736392820577681780213312140397282590752767288579696895377210482400641077713869783690116391037961527934575637541532874715406745821222053465983653603514140276024389963958580206424872799843448755226543981188991711261046905462349521541349374222734438726644443001210192454586153916292303553690988501609233314856601298115653119841660171543134413218814189387935852345671832353378235987449693612840067684912543280215170006717007633853943985801856750554518881510709138051779486714785915512803234043750000956452330507680238929531934151700538639033462875936363042444638185253710556114292865559155445764808794239693062749538429165623338696205644595723434693810654519103155527312060057426113746139635328838998731304017136747889092832628812381947351041312698531302684383066407400763354311597035270845936000650282343116937089202613163431545177043329622484536275748768102343775456497831571825928254393873052715856115450853274248740071961808190721336758098115169379437050828163478798721922751179251409512059541386478728153062613573714042694147509594324963328270012335669627480607711542581837759619814488185959169822713560136499191504764185587864757722438176940983292144790840751417252529310134139748809023205007141556702804148557041925881212573899428797824026524351212859040463928749170546378305537566070789520951598525074020482532208517305834890348135058287039850732272906329799638039595847533358688273835049944001232359627347695691341069556174895119611331192190915770952810884280189385899995179663269554272074461737412877867833987784717963526763614090663951240104975441531553919020569598673976304337880753003454087995964947176040243741541626016644224606298870199967382517099914315295198895150437466418400623928985118248888386076065808203902492677917214998526019472067379255893259309138192506285180207910555833088364265484602227680226317549305149499551189956093221667176309519333834282824048622744420372750180532203323473340114789415038194663440433126740611304323112937613052181821242115597808758050382042603548012606533191515840058026072194209247762072960504962341054294642975652691985267361916493334463841821144213335441952553154357453009952539370781082084411388104859806923469770147984332101143632678106450370953953350276730723682905908785120777830972513317973383751168975770276099101535071003218820308982425348388091066049454762487583370755262008844058348052824563080845067358048265649038338233321225762174793084954058626700855327232394931891888006136854579624764443560129059517718271280309981121956936551072013057226314161052883060982582917722803861443453765468565472138675259989779655276108658583165223102208955733525545390099707210509619658815539402670253544901890713269004959479744990903323571722076236622278960556079597653680167383348214232044085863350088657466572812246431061673308206900027829660217536885297702038772135527533245235676770058410149250856510714150906052840090269873858539045844095255614780498649296680638806959079817122511212913616213683475047990817870790546366745199381311570336598452150756983913903337594043082832328013541513542922665320258926403761294730966203114274619507670225113160153554241436698887160812458205714806782284112083012349150332979913957540405284742880960061893827398503813771264592649718501167109151733232073609105528708132331735747608766023246928209933291990260095272093590196192952291012209038881840440563714021626490198300450025561260461267939216438181621940179949806049437170728945998092748003215999351657651416748441601135428318746809992346721294586892329708076227510416871724662510158635191806315204952740720307731317380809228680404445110056659145803972755388989573167366676879185716763474146386940848786051914388365945485995687186022889814560328689049329331785804310976194165793214705044702135057864812809080011448670282259942230372504665053110312495622022147381674074636976955736180146837747026230788822479096336461544799500001156575920856504705683109614018856021176052391649220193714149544931982644508759025473759186835290035886321113111595321092786824100388363572915428244468380469465449415871816005987796845102553070819275173837576938090741321311846439018729420539929963166250320436785416171011415141471421456860964463521900893368882131129914603726166941789148635180462508583818933597628630501061704462798955888610034896962017477819487833838885576091435688534367123728677249008823754741173237878640793637772606778547155635751606665834890493021326610708033704746494618891616474099307287389498931431107760219759616136451736277600641063762243740495236336508722342678925945021811073656642562626857251947682724765735610505346214347706434813356404625205921204207841212012268598763874650027191050359253319286194057586993676275288292720642072951284643649836321891801006609124143123367070961073048136192626022455117388772756272437755160138448278386092139587125307738573210432626418850027362654773513203049230858346342260177923918588219286165956378555648380292075247146876246578921099966622559901954913638946086960723592567610576354263107814635713335228274359219327966896540332568853647563978847288129204718409309992394012647796573697920082224167506926203723632950877097481786082025741568117537318096034576240455901070212438591782212507043337464448552051345156540224785062675105225338188521175187481159873679304332444888693298206532764273783604731531795026698137115657923049956927066030450622097544323311996578009965477031811333269429772452628751260075385429511101374965011703331488091910541958485002302081330793779008211767111107443652855974998581034443419849488192584366166693307307113484074623703442144533465609443371700126583732703793230499235621195373928150251825045267518652275156861203406493949207575227680611691154386016448769393388463386205216901909875700310943809400086188892026690974178174903991140181038475572159510822206296366939154194329135334056280851792252237983379495303274665286105086450786383261231524173342765901277192852171893697858414789121818352315944825376153650609729383869856286514783997931637134570021210292936400230247681766508779315576820154068625832316365719720837985891370512324177775188100120780861778754214594906421806876640314610340911087488228229473381768003875054093018912163792760728183022814015860750023635944491236177301632170625834750572317324115593824219328078956555019312852206563092389547303726426347434538463574904449499252645072592000815969380426709544758840221228660811037608074283793025047851817331918122487939618137789246492414653367328647850459885035701568550157357419416586672820796975761216297241791813030396795854070374416965777797386793473623361508854816831136651909385507851586484294601926272930098527407515422124319384349120735029980741783279149067879146507600060133124193643514891519585099779166769766363351954834238273798246845142141038650001813814577470122239673692184685588408286102898158687862531264527547607655311766930900461849096274073450915172127364498384802100786796376469161357938070834889447384820415554934786683390016372100123312816751528806953257641033436486726381281739972943133441310977408078342269929571616370697821452416691124776568551472920492724977074065016508557329891121030889766364058744263518783637812525765222487243847995902537304437941459505162323786595343970539268997501179760986920745631904989352963313337995016804863800174287166331086174202634867255681646297985464941226863308285206985869690356701348621172088522486435378255200006976458583636321636718549306449802360967822249239479622722498190524321812024050283103914135224030088222627404025573861728912926507703456505019309649863021938926272157240139910280985255533366752389636842502592789562625199305960603317059645606651441419873817756828344928571440143433368966892630959465287574837201201227956312997137162526357216522266005961075298658981374886390161952994600714693152163250082224433068708273268046898891321097041640479578080851995382828315519710513362574117598889845489007489947327069627521146074644021375742458022538748394298636093044065607270206248626782182244881513847624414000052116047318756477209916322538137615092038668809165005163062983912794817659816196825372630149825374611800332924632424695372655091653740731462026807154136891573332164671503947199764782899886117329504379651435658407443589467551055967353423069414259196216770987559209167615695629798890810750080599068253670225407597961162369774903173202249910922026783202731174968218313821329899447062405903815165589173125529693974425913406638706557829459552477402141698537907729396079771935447536973435455382434252643938512310832311034681406969155041219926391801744542337092222948982430730999419859146230895340664812772474169570577572243865186269451736384915850673929855427010893637883452813325260145002444461867598231960816412291855902291555667093021129964795423770054022946246599103115594696437837743405235267163769646796566896696707989268718747399751858310916510066229634397175329121827690687232332032903304191623281417185772173181330051469224515116549858191866262624229971201085377804647625526405791002688259060545869566142836566036028140066277682980054798802738428422394850573049816851964813925242376791594574968629909481027496206006612521058665222134922009233380179430186822039753589559703198348306640372131083746612439224213994014563075587063775510440296255111733670918078869085375125475488920990561512497114119353648094929199309183541785314843670253871402098583834842169722456154401978727765756249318289750374677914194783167859021920002857661797243378327022261835244594092978740936680205817082847694751207014226565186878342386309488554522872383969456976496201728140038802276889908479751589762413869752459834154944257842929137650518883875894811204762516270159649673105978032761295262632284011863161649997832127998479028010550445467215256071574277184833051654000554915079921225114638686873706780428906176171163913862468598919827166731307454677802356118625836320368241332435602853482151569069963197210464914446729868957130554764312517974614069048777259048369624454997335877476880083280105095315911047106919432878466537725342690168242674633149205147000948117709867698649828117917598268251554921537357075748009470223259231586998014727685174360346700627188652547905431679460979305722377495970845569042622280565395224994638838935519562774258607194669684057384252894203060731641362648329936582797915947513503361098528915141383862829802396189443379156629338481316609314918625734058931163530890623552876322629825908054358313396333172935866578867831631979606604845908419227348764460681040682133236460809905955348726932231517326842229595838794047912447703335492746289836048505514229963558159650901055775575303473063556364884411713569471678111495233401249485235297165101291529956796946077486175277125455764412545267045907122196599524739056310929674802698316294418846988167542243958625965001814145823711149510481554483894878007749002470066262262764808334384481045856558753702936491713549871800898898814796206584020103145199571314261361970056468118198236626373360523210684453576067934138397989142314767125365290738651625260714418971472319791039506295963266167231716478835551758544512253254818918971101154198588382166060256205102981990633019069818455577801074349231039957222515618178947308744575131980023811804828425473431453381386754008266747702968215690624649618538649594406274258745282185015869849272287108309633344014994449934936873662001266960060547269800468131796801645216882596672137810345555839796300045273065632273842317880177748583860580578754233307601095486289463462295263580275709155734734334313600998962942462794963509896688413617279289153110197386498632022489321698095833636240996415013973348368643380274669939475732887898797883913364083092172484247221376806325520195027132940774962415437208699707969362472215670194945078556474372996267151166778595132299943280400001616534241689681322984122643780991535457008888930211439881022924528791397460287858374316342021890838809465633724143810958572796620422152069255077375003015568198125497755072086932481196997220521325904930751482900012335713293635489771266074884919163047586384487168669062877707062347489272556848169995264792387524381123511119328114584551137470429163488111531267239740983459377968349404258037301173662324609997367592637738155568745166335861680350400016170987856022751588409888167216693447040182294893964411741434574177187090552825826051467014229131360466769620775239497621322969466566923144200550969343055663309032439352604134721225540378308832518114118453321313445031177267884010568213898452790855428292552805515297215679983024597750224828936437055260494378280696524531674854680001129423773157366934995219260942845416267608550412830140996806756964244209821023438172291672396852802040324100070018870948322707230520821989913210510028421794753379490433813642537042729377646166896233419626378613466966500608082952771994690455745949747603878040765956442758493905690441934454733068550262638313668363887180475576054312937421982821813809122424842200459781362042818123113742136919216260360396856480607275117138894143224354326710272522990419087483752793484598949289049771312202213378713519161434202836949477915119172417235845468181412750315731700876793215977009889285011192378051368818231688979991654114150218433438301615968185034920169378279780172114459862005579022277512516496300401686637078783202734350353352562340739574561610654565662624404904793095556988960146274407415381755076145467099351659265430385880058320850776179386614170484577845030021628038353742690153227981887556590649960489936279265184130930911948054723204853907812091010222414254263602977672059960688020807458044718675563792140228312636907283162832622757907672457794800570719724668411446045525225757178387189870588986118981417506330170472343470958708659917516277528543925645163442471714839856669511898613504576563511984048734977113022676217897778283942680262272535885636246758314239112262907591077769069066116446368146603500148160982565527110391672674534462495558699788423819254855106954121891126341417171198228319037810566504136305825673123151725583054455025120523109926799249200288181645535147327666464447515987189891436114563362198754896520900007502466617089682469032048280105629027824251918590190543261250859623793933869584107596598221493784220264128954896509503424236476241396250513004101570849237711109508359106903232847365322266989173674197075298661714254597244683582398064143795300204381555772179813825988909117678184406348392563332127673721182877165967052708016076172768485372086726285706694014021366146894618975107501696890274869032446216187400593903171870369236730371653471464461181790645355344253190060603770755324219186278831002637208009448717351906145885119494401240856627369112308134888950747010645462227989841632387254049558115975375295059775896997112546292960095133567508348492925625089481048047365260102698358017324102992803799054549710673292176396545021999297953128931638877616420044303867372934467785672469479674021621844125741798033867953352077608393774803568145096885113618839229373818091062434215012579888378991204375596936472024877601854559705336740768340682081486154594568441574354790400888999299298352935650630345208963158674088838856924658579262050204351565474196054246926540508983130656244678705690287764381182003648709347742369643274586625133825753314875068711015223008112319360321096010328710138412486928617828605959546072964774665650632843226100946248183741004977752613685182262737379730158924316381372582379144238313444878831452832607417123691358633687684957664454548902682068049088557322764183449975525097655186929241750820076447895590877061927490370659612187379698792491467308120291315135086523807164059196979768658326209286542022658541152123335460545759777936732503994118251923255577138959359684329191158182826478153073306154120440927918763015917508095310312148796775381744843325241423694325020311857289231473823925719776492756990703145125752050575697598889795044427453263243221994777107465187626267313107386031569713150479329044355340710111975093672185122443589921083842171035306815777146852724344136560224120484464448647374504474995608538220128167117382188154154088917636947964768492746458859329085571968676454522865900894560701227317129269077455188936130635787867472092282940978598166467831083492985690181850842064604792195683719511631447953722695642574932289178168387740162742606158143106558939539078134882904757648434116373461185331759763127762340247898368785227040389396430358764535641716713069013733003915813125812986524978766603034147652860650694240116836282617434763588141877330525630869232751725558940122981661542039189036353707026719602573446050628746397415938524221934373206053392007987033192788619845192683956647732452247028077424436873847184950579578400705919788188825755586142288560393956299459778136012000458801793193412012207787773347489037317976370332086443317597444796152666942386370203383352242156776839559619181240937036372452919639425575111445118894641725709867962206024547117420749766319206866766137848250540853884483611739404365620725604990343322999117667272147747512864289124514545827537470167117160026912374438585495308013887184772393167720909593510657118207791144668296497153706752493219623708584719069054124037163684269801592926481079522698710081811920476637822468886740990368414897471210473250665846628828120067126654126492592157441819198802480516477719362101308386654227930504347221611377808369842536544937707026810521097052232016157952918394128070584490256499446180996302705425099305705502779416473967760426766564193928071400318703515391201657206205954421649042853611804602421459225033615225999536980890058710433416209950687355704357818937948742486024529403951520827624391677591690950886156092252068608349494042111683091537184396400937707783800011695013978188323405470422623731845732621521210904567400734121091240269517932073873796339015062238633105083056862897992303298002157617643498273552332575486241239554824551220384549233383948989368256290765459687597138293280843090744162282038419083283010349408565067187809861657987528100350565887024850089113079520205487197214426553484668426559350014245140845025491186267430015780771967705293468333371623426837107967719816045988443103600812545580462411630851534640969371938641136217639959880304729924792916927032744435053389270711572767354081000524557321111859835672588408346063344342573258042320263442028030458347977350423285481116823935284123290467267630750463720896519498537963975614061213344801829828506816177734630744493716734834526849248057073311581943344958222657750032921098122002969333210836185346764854625089531164904584475092879671573344917819086438375574588976949140702484983126492010473043422834407538380670700744726784222597504879953348315954150027522949415823993675399807255828849995071550363125770308579126790283102637081493026573187864712103036822478982556667928882544237712486464905796116349198925875666126260653528662173402268530461847734460357139352948829632404197166970563359318304437961659253177983784133811523305701419651120854556366929553515208188435655786150960127733757745578231733789865342642087457350800307390937310241286115568726755083324510407262411637793886617739151478657311405027231331582125510615719761181406551223117225439995643007560547953476921730399578138466144157846699648959067410915784231287928964749852050853918705864938511360695374979437268450525573047417597320232606428177332272159367086607357705974951647674615828326331100340569291104869264280009136014499250834759526125192687377109524261732969077499899224457128595334314524956986238292404652638797992339624852974482418537381109378261593438598393286825039230816708050827020313270676419847699446436765490398558944361762837297399807684247162835993104729242132982608925681279322242403088045175055216489147253685484569721107379198260788327195852626291507369087549333804083524966519742270917938629495522381183860896890792630002557745986356511903800607948366522797809693793102192790696346132341285711591100291111280366498772962736127972913312867679415045039524189853521726028627569422482117161971939602463472046110603443760659704086391044950809033633004787938678101352975730409542013895822505370405658727641032667746897914939350110859223768088226431190364418243539877937684676186161870309223255450711718946288337147651350990707093138800877123832200559274095706000005771170417840301404871630732022996731696889097173776913998692084814777698247881792967161431733165075556032396447072216912122257965418435556472073240791707174465915245489913512518447646808204585403040126237707553524407976442048947596018760261038998036890812120421410135575420018431174923669547287002776461118328205413283724084820917371475897170657431697655476496992013998375618418975121605671033668390890610977060085009333316308580967560317097238753600083167121703387023536449496345081440350946926711892489841695011273766384592779981829701795822615412821936723262702051966827955823236947370633447947745028716880091724095747788130263259713250248639490259332657678765276402095709703574360411719647608602605546157191530226412487171548012917191737317967759635504193665105977861217054170560866321177429496027322676940755274528170070965254525753093250247558573668102912716624790956805591988412870057343027095740814287947558936531379828825568896403073583043445037265732845976116444575844712261224144435682659191247031129335498040888462612544773924169723583975238160463937665607133345789677800399814711427897621672996778849692344454627446967952752987601957545761416339544767669837986525526869369982522388275255572221574245933876785289391576777114007630934304077782769143415238876391262443137932496406197247140838483700482892525694400542493772886802025796956569415321287262964531021662952456613757296946497368282006761591173692281750281009581905560031245106834121688765601864984680408339561151974595696819658052072559061908195695602351629913087641891318035848819529061077332135485379739983984527714038863187760056920853404757870469844998014556090592310270745777533099761430767432119138491905297783637722938204601160190964186841508684271042683857090365745837212770798266374559764856373125651966945408448067192394876376379587416981868557884500381158718109201204441358430693900864086927202612571020867152583854527274753870300137175143766951938134748375464924789610136279101874324150787756259029616286502917419700380739561688973164812697771370737381020102705536351532796752929712518912842131877765118010265787147881272343676599574308896074240325037370363709434458728035007066361791994185892472300276696275079040688188850690378405785378487181057437985773403732847724294526044954779843165760948386868874982355500335922674840159889337635466772622337483990535052081911835576383521910785770969512018813091500137598555645041889071448564533919306756686916479683316229153956389664914703019178382925302490952377792471696201684165818120640393746461567875123517165759131557368964764698837076573695939327459854732088064953591053261107575815937978525099750744906546214356882870047277540587817127125565880030057223835394195785036956782287849852471345453961143052000281558096937173045558091414482495447981526002589599722348307889490853170801595242624811242547452095422155522443523416914345862417552679639989772176564890152999849159609751369210798142086420566716224039642774655959403835242116533750459591071752545128778471665799989854095642538379823032902266784223545893406036943677258971253422588290976826501492791933273421879284987185016266667172652803901632453225122731338308948041700367740462805435406331033166222327735057028872820147257934110054597367358095638108042174654510855184395768769211065032561663169026526247752279273675098874307699865760063938567760621458057262148821260292262866146934199772978819759648899547022176055872111783051331204628590654448150932960962916853435766524674665135865669816540601527956616396856479173997652646362922111645685514360619465494072811979959352798586704101255237110426134650847741232493452123984966631637633115427416716956969339444983211007149520944827793416835614951972583250788716361577030241579953041248161559237995326169043910187732550969647699380789996488904412589346549945356741202431738907373246741685480884653275007691732249103155010153650281976763531710769784606346546926467023063567356732764335057226196727588081304412821335955203361210732766513777466088720502967155942333818425640782043589138810186859583596081957639313718709947219939056533747123000331375383422520386162101721161831090245123276803001501792948041190660350947014494814988318459037246102610878782341321569859578168234044094022818512757225832627425257627821925420348895227861995996188976722873771095102588474615871704379985564685709157934779019614423338673107328980854005258205830861798664486322013261225909185262290262179456638425783242057973587112119583484735853145492123633296903988808572309298787681012235577537373758465546951373043602171317522195819653194157324269032685383911491762999384578422928099491599639486808800468422245313235040150497547859482155452999491941554224696065515967922436797018032150542759445119310784220153220484493208313601669956505213966191130505406267872266300562056598141797143570997903442310635780971159626603269367893528328498435600370345632434494673859886901245267248576280650308599086487735530975182404252287378284518973511406806954541039311982784825616664739849288041780413343330564826201576602179270208990155470330564393231185608549287699660002507295384801327372606366384941092399268112138861815326235186720657405529678469025818328947219785765869065087680232412136027877662707973225274298114928802549287083633065035086197706314950081615293393625320600853544098090958608970878667520009712239631817529228035896385529657985759262038881062609906426161893614905504015490546704011052182091000523596753865567405199486523987487296951089747481970339927141704260208696631540176661830142949154204750542059464381415443630507095267167138504902944541030816087041758512360824698560821512395047629761579520132578089957782900559181782986539923220080723349437896395662944323251187314231830116296311535803786730989228162842347013050146192112530927690763329202145504991684384851385914918537009712477543089795953249754947520110926321004601843237789131085844040858919883134256834850231190170603805664016857605427753075495086198488182959594669103711420331277655213464774265870500664092544820606631150584507944366543629083922479442345544848855366225700608158100812687332775404775656784004816482280079907804104793661190218668630407311363937881194314064113827818617164662314766802521950118569572854167377087344875072433984025080866304337992850438218317947523379828595188549420995218475016913285810506622834298048321150570318920628701536138309214016113534963660801769279363145905906037785304475925071663395581460040965692207193308395988563743503334098394304242968313237172657172318284800759836096532367249851587882415596453900890488424100619989571293807884536357373084554396130890231210546783223920123061869449292210255071793982930609905770848170188758264762793756330676547189759231236914583602683510984715933643710247339683714129923857405118093531200866036989172235495236279154085042746610908162819109961348323568447525487172162664105199341850034850508615319531725784847925782568774556946636357709472994175247383237055174228301073403407859006239452000026937301509976297820399730906768096188033329598203830031345689231074295753429260764630122521363714997707699390049801368261435644114621391206847351468579055343900920865959687963730755428617430420742439259329077662463244111697969864684183936971268605370699026909623819058969227290949714108708013032739359070700607240347226998126481743867661561863748831471229556270203902794713102997584814640427292908723003120093782516171503056600687644278221174009056003699032919087402700372972357605522257468584961226815629992681464964438608445568121010604808900508872718615406741184712897010918910456972888605694739162743528109534876876046518237466777692998369854041096346668681100820907505841012273155514404215445017426158441050837450790587456611512962953120671550979728747319183854035715472960894646331081375682283229627228688271830720243891556709999302889798837530577780618385320637306767356297918634076783449777350881388697049481694551459220689400180553290069426680221967960864247665270758355767453951216721636717571114363826964998877368596403332345140739299395994535053748569340910633418983143210694695699623173643228528888112393347620090086044249674099549610582109918127596576613397580859019223016477567810828445109512528505139016040908575520249297190735439830054194422277974890023718509031780442966224652463640946233072912497158694544368836516673881004763603571893339579725716568820178049605745235876132255194151694504431379304685758912054690985282418387401936040596377443120535523206525921718977284731885950319408077006908298633976083598408815140121027993612475477151756530792781547380608299151951544950977567738176540029827250167041852679243357979875128917706256201783356919201986368316252997010443808941388080591531525245326463421537619584352749570588227545535626278670519764296646872375693528907940628446198751655369155893876434134552902789984224570832817996235302732327693002480865625142081086814427307851052255430064464720765417918152653406222353141366648024719304435846020786179709034097428408099527645404507614541342036387483365096456625413280220648934939585258840469908394161377020599677721052727130648073180917488673269259356236050698888651616407358321629777781140544737865723706492704712505298907404880695177336663795512553201782448541167098691907083391159753776863557524523085001087090516336833000312892748743408675748850017957621887958782331933016864150738920370606759387270095623053501159542629931395568693759125018144565342442107588864856902755529420743316481458736395137527911546063588266883550509919788255997295489069845386120690192919704837011790302552936385142789254271736592893286072329593295619886664477557385399038114275005403917941984411163549037069228017778748785557587651814813360089902715031844154485578653265636606905313376112508374070427642666758911524270787191762299901610240089475453517240852482405257852448415632826536464878256994626609480319056457723494782289125061796294127080993727838950585276837812330688534613601164703202259594707024169862616375295092457280789416517732033679401250178822389706759110503549381818060634101876647216886535617386253274554666686999426187072498783575432759771998185421305565599550126579224615009292466680889042128421253537996917251410110582289290776351759067308104836388180250434004021031327224719824796440117932635846509903589298460984196026886163678098202017395226438459737458203922560105171539119579344998807793519742231728305306062073035535591908245862285245384963254675523838279029625080116021494131693352167195373708899105806938437133376045693428760942000064064280386523704931323747842800363104704477779482171195027171295881222870008699589284873520933655853090280744054127918384328817328864842719978548949616344854659475616418257529935161904664698430656076688072781843738122986635792251211955431939996886067111215555330937122484105082374479389629177084020920346072237957138886774925692705660135814370872413083204979832007412062099017440978041674274256652460317270764801223939687990074915880913188800585428898472391250471771507892588428441069092492927482417414551901163799447660068212846323145604351113588510780032411509543964230801387018357202536368447044952310698501282496692080131664357661849563140693885662767119331820014917100250136439966156407335838650132396899225051948532480450184920804245556693399221009749887723256378606840259890051924939919100271607705950371744058283918283271387896496321618454334469687481773965642877023302350214778004907175357514247353840132133150959557992424643982175420722666253701509811616877208080913257862390891052942005386290952636395776539137608347188648472125536552313749159251903550997858635607019961976654539677770354072035649302523685975748763243858276520785347420193877878469721022954454620370012439286151964332071551513741312510452908861937750415115169053235451938514687881720024116773756774493840312725201829650988193006707417253493821611881054310270498605901714972984758854078382940746104450971662394971763092333873242404509557507910602447973441671813816998086682355782067167514236065307944398340839234568623070502552801179802912776664341921050158830486774639693450710430716251854412754256354805122821023074849816549083423984388989832519498438951525346612112868701404985772647165656061376128286437479996427239406361816633314986076345601265971611193965192703804858554611761564880805730805535449386355485681795024804038795465636539208078481778129794329419725216946406119670347081273900449506922410206389463712512624533905742783743658461499962649390595835606453293975372044353226269360668307905739706531998811917354465392541872458409720243388335555053475521631833767155172018031522561661044629546716292071795724662359881709997780915128517723983748670410553349620938479997217973952940015736778225914261351792341469981837198662438580697975614070461911365434256369953947331860375095575394134646017691467496804596064394607458388873090824114144642863959595447297142808332954093359190913511368078662026651297792710447626007209857612751095156246658907191063717138175607491418797554607715737721699917557563878982339642407249767987983169267102085695798687935202805586110183836434926448229522099022793722283208530728317022942177607670830598365219034761394388336124751034299854786214011494549849528945470638393088685867016098363777921962246713953006712555522732762946409629327606755477767303237549844208045857656241748398320064607701808567606699918115581031276781463455259982888249802081235938664087465040252821761114322585307242440971132588213682162377883915761726473674145129937611999474244739360821458604742376537688242524613946103581624230687156257055318642063656378308839306963954204616072861508282872574927206229137917508830567705258250131110457336847101305972433782479086694966344641695784000160178481337145933109311182522633233475617328806260375585285199388651810642961990515513188285778684450844606101208892849863262905534929062417487653466928485722854779385693423085531102906873524331171913829802108888701723998227964418581971765476980452110483294200558800534662938736057518676720697316276694582290380822658261650321211703472056701662956647941982773847172759265307979593759451974327654967372469049853615511679824428409140654322734658416252624398274722719134083016118284478290556403866974254790164538848419922696832778572828879959584076065991100824246268275448031990646675173089192815412536206652138257270255869660321367805122323229803457549197383375316560700446142699389346447941158417684887581491487933700849174057170988477556257667568032651120443273623796789284725926262484758944274096631045696040761212468281112442500378327776804507936508315679488445876127728524549412061197213476928915559702542223421129606198359362820808148752171262144639503564268841752000353789270105057276675241885714425403201987269235169035200974340926758158701100381453865324320933578828800713793123034390726042727454484774811417633854163735975871191447099014051743869014390700009483959397816190865837407294723770045051048166733784905099862000626941451188009266306569825755932425254313091824283658677201402785056547437161837090017301631663247262236900446526437359883516313319127078248284545061202120941587224162495385538774082637480676102890955869776862704483168613917100427118995886707140510382529181220820750991308666984077749480391362648573317686281882587609197968690190984891978480980509102694902997507844492370992630427700677533738565410242093981290018749556948852353010244962030940958651781484315286874496865682035352096949984307749939118027566982176510303149659544891301439627429604756204110192986280013777349334088743057762589893710084957461581511700557917816074974810512945539053055883491384444967348828723534234297315637973264447858481988498494407477774861539793737933216123558296258759871883727616161884253676998762744492072208645577341793966634953165685330344577971701220625282559819386232055930855555068994495525028026174748361665817916671178717444720120209686930831400491567851844057826494846680901837820967788062865744189359737504096952382944779563297820137992626151960929741783103587607660327348992886329171031430908516267993765250563710679813171808257325155212973722237586076328026855941758529009183841803196771085566095952635339981579443733831263968938986994567488841265920424440564492479325225920810738833267651995270280919705306722745531203308518415397161067114440752777579008574534024111750492912805092675196078268591562605439747632539597006631333243847571534450441810074871938826002166483838110328728407551961487806668421201414044918286838300807060875481873307382569105153770665319942025574066497212919693071992324730206151135752470597341723268485595583011418929423098723093712041891065169541735499449406137080791625106881643238904526711612740510584937482507749370241627897000546293220181858542969821113825289241606292452884627201896151837095253516936207159480703119588549411619293477209215044903312931215726908704296763118640042345549534687479490103959805478870107871716228476502519566166442755507762043212675298453477144114932444131910697712128661322945387172970158626207528839776645633824905426758381693065192705728251522967138729626043923635772429285360703715048696053857645402279867906120637240004307281750037138958869020706372597724373214064078184535123069819012619262664142988455325210949448042226364461097092414624461634658012587928452529531119650452970597204105238240182103162485062573373758798207070434613631100123696179743074889183981714925903710206260365739902389248010651975065845160967880018706193933276527708849597460352815545877887373934567353667093400473197841668221791062171212690015757059909815935912016289279199760041255025456715515803664434224304792560854985974448055690325550162259061984248995097658852296897432761098024192128510181943554948628685912134333871030487509226034015184710806202351228258598470053970288588529362154999317226827400178398029348240360691151525508944299386843192037489295861551999654043201945043847523907626953748378279471623790457189917619798483901702587572169305480569786737860528556665191659903235678728161320207348582657426761627440996056974282303777823164611201173465449120272378466538549677156590829684387434205039574900087998911037029159195090103143002109597225511908989426619732211800301905157753054226140942816080007994076912875052474831240100521016612331922975666989590278116327698663633825125252659523070661276902364770056758531250432212213429384407237377427427356453290016247527854266071091801580474768860067302080281544149932833329497048320115655551342909866722624674667269505322360727380830011957589045043059453921411651748727168465049074452488538149174633731303630583381009955723094624139742058107084630959177051598555663473978697086458389337567661113210768146951605421021548262117858992594969051098932907657031531657726534804399168136945501895826780442667089243213416329492938189011392575484957540873203463729957263728352490742026748895607407037864546822007823771118233029899146891868898974542590476705411085626713855644134069224441234743287092460416478001150802098673459719870560253275172577692469513751313212119028809861518642839305230800521716165553979498674618767092610092896202659812944481084728695839251568629286760222868675377472260283848763112635051668401764040009907969855822703685210634278895372715922114079208840674799562445973361353858787850936334094891217534290389086241306018564469206536335838674050540391406651759217119655666144230927191147782353047736481380013472229207397499682363407297016170118658426191769600277846224663078372051642600445467050345932674914587353741788403188051160964913901292700682824592681696492921400413160020475923592579375388934153380958225014620837163291293722012457099948006299206268303187602148981625730423215744829716389995983191790407187467627218596126540598349774811231476204379155079067174598048696914242879810323132390208540134858192436292092668511390309926476115993058030340862331142425482458486941048364881966342676493015960982792890519541755452240138533436708782348923725351172535120261049221226359878916684718035107709838867718978563359734578484236172245475012071961985994057841556788542974647008902133073525565516147559013857522513462772225936962400917656535248090366373396336070902451227482646504481846138471578344180041408876230897285652427041628229783668165585904084825531814378059410777626423478055497550454179830444378981098050896328290583640513549257705529294174094868253363356578023045227068190521511848815046964885325818173112860920812425369861198750081128162556591561076880680754588239524672520754981712423851947952399885264476947541307216907108631296361986932965160230275508552472621717839860019938624102642268475159898186257503664272457915262137327640441908122696753962800702189177503030463867898116760714281421947566342855313021205580498085590838913032016807253002070104635232526203442895418502210239013921045627308948840322155563541133697442172161843568511013464804760883370006538742468163104574300773472825723321637611429376790074966714619676355174806809809507086903833182717148178199872933517345606469818671083216515621946957312512205948434078321502049948619770311477892502229933780323544509271997277275256621452438726255413529210773386725420020113243249493801928346027559582281179284501504884886052251876981460398975414014877002017988717623195377799881057733738328145320142196994562762494473033632147687096080537427327902750719957566930613139282140217855343135627361838122802264545166961452692595879054490497946616609996610328659575258561405009011330130793774773443540526354017749524032767072928709107896107743562077461573579856638409900118790527862677679173440598134009031054852848007973761522779910738876973890975247826427325912485333288279160941853711765329676913875065237197516477285853508868431894956063151463771729513516759827220816147691216709512940878301771922128710602307823298376184885241133199207676343827823698361173447428985295964626260293860786456019514243606285880959311382271756152777118606272903537641459502316735871537528749544902859203167451854085426913358527921349280112582474931363469041259520331278021420435365551261378100274955065806055458795678255888974713986346327691750537985796491786850395240628775958613286423528634476511292123435820576314662939586149060531827015726623480263172926093430432940604496832998324606514726910621529610632671853115188390531157222332280822869837574587392123817039148716438866183445679137347023207862340802053871006292969390463404693485795808130582228501552293271614755789736286586159072953106357909031327104829851441192419039518898110208966160599543588196740141423186515692717005178019377432910220036675498072266901538520192768978062895213227860104841690048235159190801245415543566343684068400686971726459388512708099577122355361385908414924393715850825826267212581258395830616348940401136014126156388019421324699871301521029299378239095759314434621505092927978083051808336861091481322281305013279092875465604529899454127260579947637819939730177053777574018707198214224396808871808117342814288848579462508657004336429871509248162989675516834125794515447768916225326619817185167853717119561667206989483789704472906086522021531443637530417756470560693720148022350603582842224597579572017413447497808608658748661843480845891010314261633261138569517759467391909371699701490763022044704846916803889701438628812449092723853444144973047457699111145773864388394771159500285604425830825229694036786617919429396885820194709266458553369414463848844941217494197276741534423398091832931513143635709737194949617986143838442742441553693584567904180418830986095196415550355829967408944288056962853244206372333085438292832682195917459222376566016947494617138434955087577529500719256623505600995778457458438209239913375037802145402594423025497539122338841574505634182641724995497344417929330674022816687308422230474633862082762715373505084013960460172527979297885800602184637700316868811106076853799777743629197826144007531787408879061378479680629071156748213001734254994565367341043030310512694402858348573168751541790571700971706341755934806559103978622826906470648852243456637691986724370402096494981760846179891949245518646744475077866529930014218581833413739975622525176268799847200946330214111972564017942054814076868515634617725957454298593878193558400278048420918681967866194394271676859897335190475302543906810877285732685705309409217871391938606069406960659774778424035274083481764193281208406904842645751654835146552582595218968545425721129690301791642253937792291826736701302138557079307842677214888077590350791123619281015573887728427449777097224682828104531085646155364009641354496613195617766355475494220895213665897182854429999892456313143960117162090238043156295246124979614830793372838805218876095803726201637598274388682045879495741919339373724731554965598310397493925919941951065343025524214086727907266933080726716936279859047301499014258237925563084799402836713658958242241900754432236038016200498129596811643136181379937697020204142377775679968026782871611139658489043786667626386105982350943048054876923409170014890553477417847703620448886703454899323783931834772629744558918033702384502944349554544968877476733731084023914679911094673871187681148568222991246483975107081795448731820260171898240978715438118369026343355284687278583020030787577725914827312969259300424329185241529597845429780152493094671932028389442728102287803510275326320078047622528362602702457036295042129324842750874167959618251043637699132231188396927790099880168622831113140279202096403704671111303184443941860848470732383641128270075691682527322064215117129613094850496004600826669299995746358069074453515741791297369761183049333725967509366131676602449216299891747454400771776500966159613534521525964035960740303391475616452720050664997378768962764531052223293860660790703345347810907730901150556746945620555158169146744659220502975022964403584412761991859797766081018116135184870177258631888145070440937259686499092306681531885465479805407084183308987318893110737232023070865629973461409341539794137307934347154774879490392825456801472330690304039488512131171418393357785343524891081385334047367057397102806009131792225069345981845409658212504103217240262381120114781520333135935705850792301095702517390679255165821713908391782355425918648900997761448594246089608835209299718779926089128339822556659866216097826159968093024958858449780441374239805527828007288447618386830404713838651556587709899094006917138826008824498265154260050388112575402837245367895095667567487702977650482380621245831566532733169612906975819092746532599796264097332436102487876943250585761982953032954037151405853284158687360626487171282130407065360483891286725130766865137062505579885707904921668585429231588021635392387422714655514890349912946101376206691550571567101079968117173020055759258215220234681771623557947245083174127237313031842725494334825363106294656182951371436067128859576053706552699178454312407961326564699850366814171283244318877519971710819088896554476863438658214001000054897241118221964918011670122497783558357041193197635124312731438787444274866661260557540212339676344861712621461479395374357241934056503249820394586123816744125782970977436594745407170982026001658320265801894425594986924104940829117500553041104167811315611896327063007310575389680125726505086683399121146559219829640746124966737915507215457055198729055694487781063869242555997132575825556518026237249107648130007186336073454192700338515536403842049249485402460761461608692036223890785858407275808432351799678880155927065432175538546522682849359188075650395574384792153024202785330191261802622248164807758269233517717221125963574936849216486416280864489954844705157454133906275917225937599691535581497635389890866512003215148583396454733734623557325930115393358578709083737153643731222537273713444066597506971874183964828417851917019195165938670159971050717326152487925294579836914760985759424352129671751629424971067327032220137189122017736852140788438950904692953561990788241297845131472053791305654133321346227895691265311692979744000167270792099618370341844643898472245005536671723548108826134087838338806790147168084804594293744062130468587396314436993275031756946114376130961717384150375917394662960235563224769935234098687416308746873438957780499452102585513583486536027530069298221017957094801368164446509938413777405436365783571271313106850925045602638731297435430158884256888314497083802379560586570561462481041484783193887276468876290427976708624137486516419757585779190491192431480042196942395913304687538745626008200186232581199120369754870859887691902453212469058513310344095529776754466435657464701300515515115851132712457388366388518744360617156149782069012910640287998104923273803228157333558872233451332233244268573108003234567898903157447684547444850825687997835632605421940643217409655554396948090469884256090447651221944740327737366400678481505891133559123770029236344339434580135776280990043169185709107406703042880008032014225138769652433963505163724147519249120160923170269574849355201301986122106046083823088376743085868703325879993629455641846586472287274033495808352946290708122873647484335687322687852875176083675297336969541180764118467802119468181781043388962472889221951746320799219916229206494375697457784260559147252036136876360745069132030222367542551722860765866785528155063227171840302912304937187224402198606005879744996686310927471564512465564879559098551676093409508939772116382322497660336900863398817026846263522130033377160841925321930351066544746295702019067558661470410017240774572254187502244788806507233221798705519352096874855406158887894034665290868090182125893421718349777120776374812585206999312014447213467331142522305752092601392684595667410091014336229302368023210411873926018836042483413525585027314086419191281760567016127147895139911018389479962564928677736317579470633235948171101824122282596811568932361512693557305010632643862594207301777929339522685146494565006682690297638972899919842256606649058606266570712344597389977706228137750586633618281183920514746256477443291182412352501493902147993068062045952101818841583712635153456288598131698635944685986480182847413161847359179032099474829135787526864029647145894191871403699647864879542125621951415637959843636640503388187269997271012441760072249178755643616486124267497243621382472092318347204121622811678566906608817669165238427940104722801463669272370887959391707987529747758618517998539570848379375908168256837969350601395484549900490434101365545811663910562621662428189628337698122002991860594352471255970439009093532001459997049684753466185507952909003528550619259566690889512390567721193858286881866599253384352487663439982174723206883513565524880908290801277801176564481303713542433619350917839155206708853107266933933396475055522567318371650804528728770286529520956753955341582857067893842281450434407960325824001088488320392536183033637740081035350029698188866143824994622523368445396351364851692056978675423363342235010060786197316782576749725851736027672193733223684398929499233436440337670259653943254598459398341381807724787441307140240757026470509007373266252876487145280935220764772069570776322356388078143293795156331507964662082810841774542838830570463767677752479183255010812561620134226720453924252509857014129983078885109116330970666655308392328890441720390041837401457740162992167497262500454103147013049340414608303829256909432098349313105037296519558708808859380939449826016562045087988751853854494257958345764241985590464841079562651721114917456497251879051320467924518257268622842025918268045334852702114246841543853509509234620165324322003032306247123233310273607517429346110807083712334344618982102783743410965531583420467791288522742680631163808062633416178895811755770380644986010589661653501966447220509411868634411217949008954289860517635368467996777545975413072262152639352693749972218370613934412463699806490450892638547854208709844139949777550783162623238640339952231693039403619641073414540126413117426473535537881384644573189732674592468914601360493954416862981659241759617616315726678761704333446505885930870448797546748223422940284612560528513980357798233390836325440241376983424668413468587027007397596906092897257569435621343090906383298705298423964140722944596637936509446329664327168180066960260437644512855278578635759902273120000874016932928271574241562055967893044433118020472159053151016750189926071346827480754081571216730996383438586902744512864373401687726334758109541923402537262960447269778183466587561620900658259720943967335506509130577576166790027277540750512157675016149867591527522466284057259007235907719257594892313875361218468151715941770853834110848707659073998085307668783780921598217864430359182041544543937477830765712127096736931412053703257913781425277472155100150400772390504356478634521265980886007090266913162190038871699019816362171391644519387314019655501440112187772616669057653165925679223122923055570275467778316677531564665534792274556576545963376302347778513673110720310360605861896953891121192576599705759542492380158683670111651709143524923961774375332499160092865717484887066696182751829878391127668414599337790304558797889436986322191052789818945440563022308307630023935226909316216059624980027098684863789136385590062272164008207964336500645673555624183991798095558508010569865312243235813408989812596041815932080165880586047057899942666468492592347672487220442338981487083368783005886758186064097511828078051547884554435246237191466231948272971944043744481909629373132684503249584739007309540009689431510009612287218951850374314094206155006043003079724961336315130423701996638123408696631518737730662445223877712719245074978364574966759556573759747545350825029567176039540838139683349242859164056492674746982263085326586566696841735666501572876894346333112129446497689604811091395174679433677519040394311701951870006855739544430946537224248872683256684777989930322743325320016784000922760817164896822397523717886210513055162014829220311485217735679869395619097614155939453473721197717752630706181086884760526655809619746355810553743879967294246468743315238599166185367329379264493172094551645053282546636348372254602803353390797339301427760515169259432269175382908766806778350742476838617779898128868307800391352833343260027132089582184466019625628726803005186967359540868122645512453761265707043270209810394858199084044932099427195377510454275283342509439011576963476609187799971745934508360037815942178003863608659489884143983198122929773318197329024341859069594903904522696795504320470061361658011812662531226458148270101721385757543676882456193406147669474092692360557148172042320406624163466500726932529611884951718644883399831577821042189778803990880500825380884043175265885960937217530642373131592079121313235546541793695474348080555418407217466947624517545267827225993368850226111667818455713578279304553003154844536179651480294938203415395666558083313668085256176881192651865998392325619863126479340057192698317766985616867753006292535858272680832901409353936738339400629123594749249795747657415813524998868844850589688586246636231937639840006420089091942290144015220280152113105354990921871189208621832086434181309212055887549513961671502192165949342235713252291500802365197209522580410686658286437458319534159855643734928259428841714336030977470473202147880990249056003423791549299180361769960587187082540969449590675085070569402464735448598523150474944371652426876850954504756588254914778412802499888376337601379887831836033048515824854627203882049104376340583220288925969749502018798445623170394756785951004993789430711530707508717950884637598981584412000485396551437903543432446385606247498165823701220022808655468691703407630847578028343404686346536498715010394925180624218296198681057434384428050445612301261738248665973458747696850346257584699109080311849941929284893283561067675265716137915999669632616441727030521487516970983519848936147477699276410066786327760077231975996483186821036985985880173668368877239846833467983073705279433666271646151944856211015423893291493273527975748322782268486192949415786790136154190778294428699622135477272696482024550370338853195680055074643807368393862017966801529719916112018035616849596659986242446754502090884328789447816669483002233663744468789604376878815519126680640583771727494264218138575633660115459307116106583230289531286342670899644664727559170839520011951665927989723528287186972913304860415138739908349207461638175674243173713479939095184526845213515050703870929726345755322229393694093778907546981557906095364268026585897247268203435918719633854997622318079126190851866478741328028700817751877572844746444961490273573754313282223156295773092574134202345992211784672159604727883999642831131367264249322240468452971641805762019454611712425731416745455639752794572199543584963702275804556212263700075747999771163062040421051815881051173979199378045033400131835336694003048334909855523178849820704529771767035630557619983713756114170775303810017350087262713106485691787878828033044755298874698468461925171252998964494980128060912545926624701832021936080284985413677678319056855476313193972154773912402424818258019466562202310817280650652761042691550078041861653962466185825591099566192784795185837930287516561915592590927173535684708406733555980594100064071771197185429249616160589237255827869082838589792119343688043062293321226252267157211332810798704918557731199575696116619063757349672934239718004262454252092097609949191196093837878744949268248637142036860844501418221793484008330647048819461262694319094301227096375857366438505948857935540261515476668459481810588965441019776358396611259137230833774876665817968499423943029039602813538208716886340236076141527172907433609146575502378248309248748930779339498575096112374824595066207947648401523627444687102069730874220271780107633050761564908508904129745433627160783465837954149253661024240609530659054805570155440575899212504400658634759483126702913866331681440634018948002319591649971463899810243085633226651870294811160562428819803142685862047301517717322734307892171793913844482160902023504042724300842419236011033025378420890917799614061412639919705065852575041875557181565991191039225571301885468803619227325345062240885547877475849436874005623315908797342935382049430098868040856072879113004822899538652146739417201488653435773005035133468429602222836651927924397388700958490685550970734864393810298488589133034577797316408720343059048197515787940361805257504546045543354457479725786186797241128124810823453181346469559080568620784064046749882806310854281061236371944430938335913905472611437051298985162109408450731870336164250616613310974537752389260563304399259998367629175673459052607973802848762990338696214423397259495094087473139641316476170299892886331167021275567464568312386051862653228463942459356026145264194780747419584131604949648220604881242017204162015725989477954934602648536519649022300881696496068150162066961371246515393015750807650073325930213612884951925519275333726708911598280796019958180684499657799962838662669899814823842991217695427191687994551188072272233492289385568362391036386899899875960160504358073209325829057972064174085163677255219006383166043546182853848260263683400272065200060279380677759552808019128455214769480069963311348183715895410963078689345710133880160673555725544910824583924329032425521730689864183178352571193036021407133354430026240577248548931402804820147669737726716182844813228278548819744171487166802926226960643987982766304584085078240469061567950646112303266946687820127237040152872409612724410716581862405928660577242240218268034182682739740889059181233949639781672724564476470854620136165241913077500223311622099474943710969994845493353396605512653148203598802854995894143492616004988507111333075280452610798041420950501937865909180608647541536922582311438305850542779604631556379022199063681962857768344993625389566417749980458956046855724917361539754048978487374330212769144376299193023120305042137847311337444798415585597795297469945037688068938271366902676367205648090861071881286662260916410828767610850531163994210227570108616951470160163210440273398414363479234619790550937045934046113318328672596554261491408652851296618381201715739497936700871658191699529953050433573361628006246680320151717101872806547626581482748188468412228692705811840253340946186184971593438486932919782656455275509091402986101108623756636482486323445566060652200325253883407196302626979672078674969021057926291054117004622610480870187005451943808508346969914642988734729976083561610374731309953221173121312951928722734712223255664525178395944487752347728645825956192710591865650148289594812398156081949841830591582376567617292739132417173342032614070670055860758488705037914264584879803279831071177229297005740440149016292758473058451428629859401889334952342177829392431306095501995440169781687527459564998328913978454242066315885113902406037220587524076228536057363040009819670608764567879645554679427521860823607275111203616902226393260500959237762991944482313377324869435601587900386830007496384348584251972292650442754618170486555445300025690902058390802467660729865270990551185357575985589500247901472866660705553833432186415938079147405700200057374909883682805759577716659804470079022609887825043263175613620903416246473058730942731824350030828625185118359297299601792121482377710630384905505643778501859293417189360794335925999611290239657770879208671380060242319483622657445746245978670508575221930296943539152542572232026936504352967977290503096372424307212786642128246206498036288843875323754865429414036482757000389154886125705404239917417274356796115490762809709358954300953314642496508124134512879452848058263671575818416349887511361541541152827667819692383162892746940951244028499251613520142060984726341836430640711207824943545208960666232393064562470015722564917071191453110550300614026089667984530572279944412126844593744581916121600993663935636668525985209392142157214477973435073743532513469489731087197199348180757129056223130002258646356976759868893788665692334542113216951426936021645990687719205411793054942877109067394632653475102340496365660667955827042819211449547463769060706424796973556771535233539407776549441415352669926896012887066878102357891086002079417883736230569712504128028108686922655127896440415342517344538322374508988439379949567648812256306052274652593611801968168672532596775647072438589636976309508226559114304624137497017338750713168224251418777727383339404181013058438988976378456117182482429868994970935149072261548877797448396634676053823981048104647102435498124124142072456276482640057593164689797023514441918422346014815676737756781990931699475180783384983384090388349557152470856540729076973809068675382649981519885367556965815866604509233523721291937304585264182802933810615078395269717739355279766065758145081726064182968696902654033913418123078572329964713714963816308402656644811118134744164681605567966356682505537750312933983264949487203813485921714781495407546810343442784141998914166086069783702266703372638493473735621333640874157551508995447151206015717966016292910430571011166070968567090991629323867481198303158191023337441323144751028639497699576166555096148664780737975414480251934809535217614500532803776174965808837737469499103795660617913340648492658329867623134588412479283365815011837713779867494188602203948665178082905390350450435960902609542260908071519765012026829977518194171578963576267511099071907313898534667424020150214030983007755294695639417647874538017746870621685580943328221277314898253255590279796469180614761923169237098230491707734262076141464377119826323130980090384134889795807099805673463366126256213262329017549236479978906960235088711924512812199784596813580355916810418463970848184402262986967257498271918215111493626963749180929101181956449465183124049825400349607760565042072822712866053523425027181514807766178494441901454051440035013415281587586557568694941733479817161613206472241748497255410948559126276069025758292695703786471774009894924653367096260130214654907333414512817704188883646037640369810421033956299195937875427184178875323980410724153012093612237030186809167033297279078334492163647096723558362207272007880659539220024403222579811086673251731016456092387890228484202495325581597076495485806456011831237951787610294454849782363197692972429893748523863469136113510450813650940013723481967280848147789013584103207989316253354775867591428385535215617228148798160300324790517566278555514407847004961875876899631201460197661952108089143155533915388283577817373123275905446243110442101164574053735172693934852156260412649977436232387794350278273766099570951490028807855266627860244030439930588076883096508302105906960413775022797940730796412693897510272433614003861055825140635367866860378880825024493001083446964181660616547608493465393270268789445627035369258875893476234140231924634930778693893221240724020171065070712251348523803085512218135960305074264544018899226713182960953246727130601913314299139266308408705538137969186780949526122055783991865985759328554570975651319128539755623795798971002605603008245023516295767699338002835268735748248145691243788077413436610877238206846104219006765970769666882649501516589456205621237544628490660355775777874482509006646866539740030862005244341079607911891631420625872111244332582545970984612543045172371842186411421275560309890360472748407388628764775061259072132262449917731488100668765411424488453857069823774379647146741205127613992474580172805490786450813885520451162028206230996736285266016418952904550031363568577406185857456978794115076809699313038409846255231037305084599557372856266118274198678534125113187559870884452365971988615659884920843312512114352481867880463457116859771780642047669301391097780112205928082024231975775361387686213866801856883864841055404399559074266802966353616029284319329004344433428206543207768310430560110194503447903841255581808565545615207179344079427386115920622770073270543327201531936549207338931204641867264123338615072266272972280738384532744179465488305093161556998602443285496919237398903022947238256200911376803681389924693814797853291768540133952009244560758943601381195076218933769390857393843749583020103555693962080501936351564687470218193855763940294771115177219091487034703923490332512594958355255526655857727092686309790961567973609861022505936131266230415689766752256824036058790435121291583391309684466351374834982807960409056166970860128863106468708947003107718971936339043255661000993396366262801281981207284186333261055138464215951738735580955491020621714951068822946589508022127188228824156642206182699345708746557992184171718250061978057458250321941364924041413770215280729422543055678096690022958300399266291573210270390883512262628401916133500796731495496698072515811290464192431866283424962854235109072081202162037731854362418416269073203304219114976612870642135160707896421402940370875829898817582088194903262802657413145555901491431848803556392850937573137856513647675933006669790550491261479441910026679808633704044066727769266663011085900315281662147968819328213277441225462932051059008454674016883442294953320979299146380049924631508480329038448700841691846742788360290236086542517781973166743172417039519002396599312856750229333099567335595468617198097335420103501769898355571255334997863441303731518915107350479658550749094165032373894234214349512371088045734461945399495960103326255742262667563206918510948880463887344730227246911316661544871997837405026157143407043433606096416209816915743211988748234592430288433195215291787401035381049532173297549558214906080394552391776869425983018074092128813991516159097266425212545045260061084781563777526735200943138751888909526901341167453273183087707014322765743128602745972103370173288046551866107905414879187613873729671830793036934422651085693462257985120617046560362690283650658366557845380514517797991850913875544946618466007635415070105504705508001765570637423420087131466982899649868661436686971400466625745047847218043034639211053897504659445658065282527070226751167503024518287815508083522013050516691581137070194488533405426520808341338132694951106999425676309596853175803561403056474051161112638059247225861132998889928842832012847914303106962293404707355102425090879987630287197812122976284780340393476517247563833616275201216394121714885117678103525747738278754907781351423712706086920764108332057102319188518844279434745944160140214287562588903945896233653377910883418664600186746157419778692566002484932746135592551446595130876723135664589546423197383899279391064026821367294114212283003772901397849080039195930341704163105399199663074317330574755249178029653572399605845101453053791301796995276955888868900538453287329031871696614874064617029974591676983585478733952281612270642754009149955590165522607703227626108380504445162570353783596510503963913144664125023350618313115556940053664818428556845281310203893967194833924590277407074164758642542399787485564341904935675108990664434740402962853293595961678948013183516539653648656952267163992605867612461029553057930486799088581059361746021221145464614742962887315113058828631637733831399460295639115739190946931201981764411773235457598694029687808110132366885826329592152488408904052349035528230507149875917857952011035513518829403634522037773142234096820808645610289567590796495067106728921249029917445758902602779458501612144353408159924276391163125086169747053939791914180839547129738278367153667633955071298383383974338324578929052554589598027299993158675756821514343038203751486985832411410039008434238132746247299524633921111352042476982714978914648453208836599410413170758409874790480426326993864605322164031842034048080329685711527380920991853835244095364552660507953060100132702507470549583918014642808611434167354102567476481700132842982246603813140154451105841002157133104702735661475078257506405975158474998105574275743725244001257492569610471351256233509538255318428800219008548300555896450007983141066179581796033210795553295853254930277115267336146820532624146536063632228509872288667908335313040934571900749690705191717927642861987944273060122148882535389575558510589749340998065096328743894269919690053971296035912531754221379098070962343323696258559687046049788864013709885364984090385203002807393896616384442824285527749749140169703091830496732945507928764909600067251465640422388580539524445613795461992655824779224219502560781974133222956952915895741448448822022513260251356958164547841430934471503939235791772254329732496337096655372904718099078313110652474115114274499611773370135197525371137656216716728853577612604328764633521442947003691623508253171218654240753611123514598276601173576672470349508523009404041958397697243034363885665695989013026051276904319477794014737840053600993121234739411865926643932855079424656920219367041728173273077477696818375603126899887411281888764118855325864654888529898013449704279640196636439205465810498205480392731050304371171825144129530983038012350305281958235463311142600024787045490722585689249393902917118407631364164108641273058734956610296600955897715082759040954708493521796370272151912606612504653864199472035413734532779125080882512359852485678515319126274809989064021756428137055997664863458929524858733201411935407384430326976762767251296324903664899785996090453239229924223757892632661389565432922519479500289078177208341822359076791047045863202523305646938173528027735002217739394150776475136038717716714326429172237177285110805458979299249531954314902768592383465952998343352525980354565617576602834066530026690475140875313003820854564823104415093222004791145823482295241451391419214496542798369576111903026869822768096825217780776044297759498349257051932790331753791451234518551982573698737736834164326892887568698833675254434061604611278316429636120333263315453029436450350197090537027015905380530246928440186568548370808121513383016156073640904884116800760156950645148472301454077010016748706199864735575622731874617973014718143305742558197246165031351580394598484264884436002977761667024321623983502327279950298691169554749425293673566532943207466805572030526742446304815510709420823898915230434775431157904651026667361037494348083135531381549693748377979381553888971298273519573092887831269421151585673247020018526303102967727507741844410053321576284756250992713837428407554188163689400787903861136337006262220259535883341453401044351766594874372724304168512441424155353594492154736342766146540429086475353126129412060683227331854828582374737555592425049189962401679746099318632678839694088141610833345070238824165907762851140196149700324854669341144881187642740162811349524559152036717879744819681916915705035897711617046644327555741811887991519032044975248705936686048104116114049380080517180795913308036446536865456675124121084637789871459018900586934814765390725901361863092603947095614678237687986563802385161742038958136011576407162545913576534291266518581632124435659387162368607907223174568713567206340735173868443976548881235100637261419070178019897500627083836713189446631333955887630154046727976396024980698894360167382293133111667090663653235399874492052840471837324965231928576725365641481409123151620710633613040420558195736785194428768500124440211826162337755580881335764203316722503498108367692948873385048366565891916214208950206397380967518727299431033340638241536797595134457220448208896620250899951413106423823327074880616119603219727398369103550586282715242296371625795301613759904297405605676707259879780894993980494931766278895412211553466348091862088763635366813885492010626103345636161070357774205901025348054588232821208421717074739857137195927723010401281427179429877702141223689097128442891577469375763522523901103979164552964376942023820063583420938195284464272929508085480250548613996910466812646735432000304905659278194740699374514230823569454792802629511135559667518297147629910285848651726650183132165314974836778081660157579778293024840299760398319535609781635586519081843913169555607274840954776579625204051683525032204320098100457615128259716894378258311019676668549096159024754637591773287486623330878815396446771541509491170683083357606045819079188977003750682618314070139718019717294392928064308546754471274632939335684518160116800772059190075086016924517210192729241654966878049954300711468364356813891542790252605630185388471641727452255229675532318742281651288263099221218533357906111148394441865497889944329398379438992385323853328063527075604022160845994121645958490662119631910031816572054850452045658569896957402817748350928932520388818885692429446968531505808582737831338457410669388162756139585283610481532544616213757181135396599023948095552594149212906111585794182063831870747285487696530525999458266606904561239960675364422793207457853484279336670942028485342554984221271488801063336391816000357240351006783854781822396394896578852017148264020552690434801717054747118341823890031347266368578720331980898102131930907230495306523035329187955320426244054881937749964099469239245797365454134436044637026946000413920867452289532874365422363049336128292239544043414340343382461197357885548376698884502550439818280332221121120364723490412532331962929541062469619916017712452296012143773509104664610287053451481806908318495156020525113340513354892358947625851059160452352002497123839471495420670470508552450372398974999563204681338258563718817288313910852615870326713075126180417026842074318098306899401537986177051035581314058269520032022906102149945792995596411498180920086394924515655398422168988042706472603170012049933617284442001468591384341732818635022696869666168607064757404758824961801890315773979918436546701931679883818369632496155399289270677877260025150369031052552313447299798657719598808478450584171586691412308829924449943172592005866445137501238340998453464659325223832345475949957739763841104327006258795060889048250960535559844547276457894774699995722936268585121304422764308960358464526848431509689938387424533983874019920072227934906443045887653837195668257315003734380903995066124965967493236886596670996610901504140028930894708036249842559897362986728165667733284620529080906990500829498700222306834146359290865286584848797163409446258876584995463767572838731402172749441109565007745002011062067683195632191097820848102560019507060364346769560896968043754501818477790555110094031471709991678854405187839990546281818929468504731277448403992728658796948923924670328745799126337170146730196808142866834347078626648949303386787286680113477015624903307882884553628445348682149494857572505471341934965255154631328044741135243333260757757916277062361769624109463593099322266931508839471239251972482917343176206302057312744055075898036340753500907011564533716167471046435841463717549589083170367544554178714076554885401936175382525968719732380908521668427720004205642731494150504881696307341216318123364593034990349566824878522064763938659016856567983277683991966458307001568768615065291712306876307990996148159108364591106049462844936892312174506027324745563440552740951998310385500918730762146636997514590933125526098749390280865742002044480401677294584609918670994101130077720671009752396317091806193057675904033030861199406838641140907256736573128710835935544839441698654966419134615519390716014966266026160438530557214699683420655766225912031494635124300374194621846961568212378350658734284564388033515315745706541563093666399029753940922908764893514239982497458872924034873862497326431454147769270805713084542606563014331645040555391441056454162628829799493049621587541905375909100892569389598533129878083827260077332027394168182382571439531354407814623316335340227317646644751537360029349146688159229043384179105107956059230048660334465952458108890597663089923248634434328108171560810166977849876012051384009572501102093427401343182844410574212790093168804958670891536446348425996810610797518317738598757576137042847483824141044156827467349238842656722430900563372524804176015433162864443299973020538594390831209982423713364190032891646945304205944290799724170443680400657432651250023293548361279643027223179926635665867399933918118780129664914143842266481295242796521249778691486116574488869116580309018988216533586452041777673445273409208063950314534132661566490345239051222452850201567814540735046363283328975171720095535136369115580805412969031289448141331929537166379972969168540850498572577618863618729743255024653180121974919160906077582001054827841244000153638040619892050868122677772477510370678940704522362388615686581850439679962519643656048743781967049378261949573366103367355205635186880425659068596499973681342899356058300502703211896837109972960761346933289784465897715685615989332864784829083525769071052343574825247031117724826066496031945188281523439774047270708756942191073531777228161045788526021198091956586218257881177476284315830187648453812303851850241236813786612825702973193482081899092733277779845580405000057728017745854749313931531136865360209667140258562366199222136660338081684956805401595543481672617453987242718856290925689838250460937430864671114790322164836467377755622645299420553808724943088600817593713057205032083752182425645322351740577918359537100296935889678359117129777499566382422437871661448505329460222075946207522347628843075160610500495863344610205753437846041799580100956812724438331731603203519362442236723582173494117465375102322003215336592763967066012908730613827378149322794862618059009339078130741656443111033000246802501193947767512200844780500629843995458756918974787585413661775684886105436080835474700735910237843837908539970083490563723223234802851130721346403445638063094518680888315871716380497924030611044549300222847647348125024874167296662841594550753910115926304891261251417321231961976601663555281536769676267745141781764703349879450663077574506389662372399175733862192622763831417277856775780840108566046046461032009234103346249721660061722337066051455654669727306865272828017088903058518407326891664245807870833092130884646876457601248387486052532294694729807286360139177800015692954170301536526096640006119564712668198762255852929251834037256528809872349060522762790046282552398911071365186956985884666678019077654268085549863013307250904639785216272544903127097853335166823704248593801431302747166245007065283551326090295700846242996912085915528154146162017721904499364005979806432253973838298629465849165335198728177804160023665935953646543216988617700704242877028469709152218362724112202500644283890246364026758504959451290985923572025188231355740640321698489866189379614884860101071189330930808263828651064489929261132848610618942193086964709893947303541900130970932371164560579972556176002611537188871548962686373500593361213493308363724403352090111065805004151070501955546087897661535788408715279560883153973966176413180705409692282144165031111466556471752708765546025163602829009613033411162413960619335346231195878981949217270146158698152210729664549711303689199278229548382500721731806573034435797862743988796264304971288906589081699710955125970416207562367051244242591008643461749807020665616384378251659955492541085668701782128265412917742222322830088812572734785655088246674681382982642720266025313265237150841780707915763907980953341448282967495026177238151045650129069505158158840816108422900867237811443571108094743710466538994592089651984455458096236950304501628180981548051415861657884179831719073881180999552881279808271716527738565261536677601308912246318817783710551562276924986649214749819546673904201590627851759486596924528945468111681049844387079506627513387280657775283510218318451282080286924557611610593570407531019397831902716721929446332668276940643702784583268180181167758766489536512051045594688092436894020899679785508670635209066109155825253589191603713384676233838940521998688346274409146518470235747248468987235559533108794523549641120778985067977174716311750421618610296921872603015658662976722442443969827504270440379022097120172414702448590277708661174864804896021950489749867144849581950504091406795512948495882084001445171837569164452448768551368989289888889587388663123967915493384594895353470442266852072102350287257401821259380112956074806399380532042679106594267395590086184911326992675805988772381872719398813963703520538633271966504556998566561050049888696763651342891481471998380574787276456279830468932633250356026841813121565454693807691087061708522362401680255526522003930073691638049294961919845835037955856769223682840175241698745114290466681577936530689786183720979255269388587920219735739351121091930291645637015192996307042693179553790938300408897756129494789663594796239650237287239013730364746421741669830714044164654824557537467396870001260812308953470012447635948798918691545450334776032805139732215490440025084487357592251031662247592883780377165870596944532740776470009771136109206663124406818150721454148628903700251946929513886780021468509174638567462426531481739996635971170718182979454738827444182865353945075511139135599514999144095978932480765398354261811814316770412137835211623899923664010412370048397689045586750286552154681570799615639136387426484108204399537312935694798276658205294801255043523424301435104168232977097290184518107034442323835182584055066075324031887677748767343372797384782993556226272614499345310574396627087835303892494632759834985018359298280891523187732656070239399305844717787023443662485925376043988305860601588442868987905861247202812219517799787909866316854998156753258851949617557360005041602767081007719209489609532184231620645380136517466649816944588616250007078778550823721975146439313849705731976195534920821609207763889934965199636999338422834383725400914767204297571404088892453055505520823086144559202317697836389310694297090611039703516354076096908850032670677741494512035207944954921195885992876077712304863508445648769464709953472185601275808524547042182319948147796314413492851947800794307376381073745978245280991462698927927255401061976893977797941852899258072677427111269924826604897615976113756838412704455458617937292856894392343003602456695470663418039235118382203129959410193864720727642028804024370584609910257413955648948683607191490816169868412826004768896432148603466586870359510888890129672970732248910638173489110997581742533526797862002601973710782153002817435336390767610361224950685741628382862718302661615410072426675642806676879730626181044235474341256580016655430739355975960360237883165111237053465338593680103851044510888386626349847085592324459120796533302308552149938042599145401005021535245609920495351879046516102980129241437942544489496903091368761689319130164698570115787008202262228947401741877082200065640970479496196641334355104462957299978457774354981458548575790521951453810818666919435774431215697155834770139894388166164573737943285196302482340484849415853437051607896603199912519575869497491928868165816148061285686672804395950300868350139959864285961706743898665791405367809027757934519032181709661550712038721370844134498586585395178550912759500320666014290315994621553558342821098989347717675122223941780958684650252150828471382381122883734105039015652837677801417769870005108150442839362172434145125122016348567380616633178889433203510023664677759927595862148007282790131149952516846912017240208106354338312045660748997505020967459066860184589573359420386966676278483191807955090206163560729257029642880885746596864031034433861034629592023222802764728824539007517178361699251607901082916717028102720269152488899342748858090230111100533263403835058482875517838787636450300533152975405939493840375884444596227497024973450535882415625847268833366274095742858371442756386056545546370416097828234779586086719116976192412744782217211361424742126553763352772772498164092307854829078123607901221001317306400822466652924872093030400921633462431196840799434036159634972272110885325711799783697231585259353803764947996398697838858004858239044372345348946258624988059087556406151538180952805179477915511216017791953374045208475297343380969832504308552399698968683827322600327005765685699657993078711059629511891659072502489959988841131611594808085913435504670230013583471074219691188193751654264665263669255652888012904030345231841640983563763854272384400677520103425539137230011380948785282194472159994368318127263075624624223318511222469121677134754778067514191756760477146914905327575108862123225450758209970699072375960411556587127048678841643543180121419099681118834404019624850021691119773515857847786764500380330445103761897372577287817885526685181426045962258872490317541306705904433829011607205342008067928780223507195190293887753988010198439414938719157566715017106584278275067307936558657902093377877692280613500030054479749262705939268085422351575560859957965742715642680461559877330081173623424764444272200056367432945693143249315769570869422394724120479212807888776190180869931720947955801678694662569023028508513344855804672107170447350407193561047285609532793184784686264960655371583136912024826789351401036756565290006086159213679233267343735412812249667099138466105944719519552532209946941703942410922949303853429685065576507052774659112261598800867877388480260353762489407639560089328464996088954902557218468735663190590580365293381037541933623684613752198005387380133233065880140763738948877675029309848833652021434889932073332983019685136225384487923787845718717748087058595468812268186161513132015285157653741550264380935742033093643188164896387956920300858760962619998632409183958644867899359031247839901765553942549606197806720688566266243171081185993610410309052095794249278585245694157843232281613648457677958497980956481570293391633626038961500390538265093315173209371719501855486031867685876371735239414781062372568983927585240710249167457442350286677452007140950504978003088675092997900284084313273243927810630315823930201605645609869881931259047184367482301592923733580321333599101126542559041824019126403837542227831876750258390105557020071021189394201787309739410072364658512953268618525109158313969778261047280189152258227096159944742878717529191992486651460213037658944773854387374088609335428961803840549192874726836296704871100036083239549134614267830796999717027898696501588398723491432019310241207437669341790809691153488932950166852914972537430611459013206854870924685575454536418601741714358598407392693070714716993386730822531081789179309766583132169058513172801152932107930789112346571656505978319669807447297568541858307016887510870976569446677935218878107172556686593776224290134551875927102389374814324077467430121501559017349967083456321380800805415347705158674138870756231930779663256504724214101592058129210832584121266524202303805385644687785599867032659115662335707501163477901855478151056776307293339464754987138504946675588482864179443514325664337784375146795291278534508321626369862271687700782945830200991201953465164205113845241031013692122195567294045256481819509007001008971157772180094642518530263429212712657295668179327833321721776534571245142298649304270896992568870930705554907826165366190564397366578175330709723555378319505082938441059470197847775546719250890372418154759505501850582710831068708423535971708747121247507381684162640622142522322755147252901042408722139401271975509935442466696991525664370080320318806237357979291689495146997800796251653269875165063575617519462509464200487333715555278103570489621816040925832723363416146322165119073121518693909147426889460955873348592186678323593515983536141158399529202858415605918163466520125474913068899838427914645445531350244342201585462971108678706992584215808349353246414044826676271851138499101967657905530033288806704168294565816434628168374595123818157051461070350178218223594199408182339703252835253684229514484999550363521338105026034249187778860277490826945190755295021988736458039528018701212552226346438270156996774562323747002335389222803683019857030572361587852302287923011786512904867965775329145843500884268279704619509806800146622647584873897135360290389787789438529320771038301479792253008673936323394310608194106612008192903829334039244889256624396245566377260915449811005951789677796748991894165046621395384438386104151115596744500353299304283757437060144988881149715007255485554244245089360982591099958602396395582495831076717750329146158400810686255590145555369956775704419829341148188889438774188798667209729182191076837501812340325538039452205879528139858353428650466710241111007996713919696127197335370542508862586684441828173608810305875468202027563256836664564916757956707456520520849933285166958855763898525130743366791746118205589104343903526162720210452504576657419081322770607697573664825058465291356760983037692270080556103751196619494036506439079064949132956848939050341337038655224628120948536059889574773912176381130618215116801225192440919860771291123797627885706770907480953903855452452764794263879112031349845807077909235791398638926219237123308015393459590614565474775977677792302835351310282452887311369896655442749571352307011376397365723716268784709779246151696696335608576460317055398177861835073320357413465374774522306071880759065238133479969263418611534000117341283695465035083949701209359712242103789598843990186637250202781860347787982501046616562634510640271020904638490675354714024875936978893831298035719818262749537962790835694053478154224588333064760500689816388579248504832272405783308194884279277973039800478297158200655870348065557886045102115572660939688281592052481240333359920697450311550896145264158675692022047808887581080535709237905495013595589630336811843332717830055470137782308023466828381845361437966277895089660077290127112280496137981013092122543773324835675968104576595637198662740726286135201277713235248552976869299087685098172498035281854220601127430800851085105739544531496110688255321830880801719917565377480164106194108515928111027686071862783289085885949784643422782011329667928874480734774601622880685231661249086478239330272526934287579721088654327576415109404151733381144724732831252539627641488807669757041877221638025890234255046932479519057877232516527513562761074051928334206075182892253941591285955775245636881518519871800515356617789495648493755020979427340570554720622437382916126232889365497869437982801018550340466972038710285546065105367627812772972117305755207762817402005959071276538556236996407255438919284012266063784131990687493282453175971853250889287115078672864683626884705586801314694153726036486104585344203420970664585373996782852656945234602514129571215929407365598085358216401882941683951767422801672864802954939841925338860732024058595692957925848836228984163155698846216908831366658085618655523080081573123924436314269219968871444536169918594296895529490719799713113215229526196344711299355691985724196983841578085558724736032788401690677349201928946394082192259568553665375733560566706029820807486349186941802001623673947031160041690937474472682460580532393946268599645328859734480256251809199644409189312369422857277052204533708916905223716592508380612717071262382038136855071609109763999572300375427711606328201117244805050019359437921618013534903911743723907120133289045727301891616200386148708357674716232485203199351039934425936607443219007978241662402813795036549150906058474435611862151637552398669221259259316189657776430212651598309213538992542278948325995894136398325999701291781666050051793686107880484216776096959685826807166821003416274181461152046829336597524781586783135012478421379092308490924360820827658764039861719662931239389434947604880430804994266093949678005828897042289183275976479331556485273539930418894454122933832831874566273735327665281945714001421111997861361900539297874022672687976086678583070810455281429563478789056588059682536488389123340646579925258170823663486800400979944186127623725153268250723680105457851592156575186933134814059065507429428099235731283602568621355749858714282771061606990620565638370770042583939766651710012667870299467575438562959525852908702758349968749892117771787877166394113046115850316428785175966416934275677671883222950082926461332054977289587104626873616169210462808282898783176736403491164266262524675445712123840375267904863965555176650444520023376940746003279500981737473263839024680161888428795203024162332375484551469732151700962225724692886518178699682105423210135996769088233388380598870212115509677427781914143805435044448541544269655492782517946686629929397502047281972211842248711053981880917700813271687579842213824697451840303853754222947300087651154088316100457619680041575642929542229812847802825915257251665520827932169352734591060272922282258846083526816467981416465371323276386321080245683473205452171632062831301965459363468551176397172987415965072139385105378853425116147684574206428248114962658985832197892545187457743986545917450662937808236789237945631142275134757486334191487822866455645546351032684117489388023909739164552378224957752990771905954084707171528914476383572663198991923046564937739783521238534184341034235413701696117261052678392747550842261666804576857887110111539709852537660686935804628667326856924060214116443879048532836177940516208768884275647566599800776140990999819415372194998848824375318616778172617761916693907514544668560683403116929795000146050354401980802678171311426451717513403670951263805278121828314036551376553869564675493548964341241736073395800248729605751069587564927880551212750972143206865336393462765688894000722483669852548041423731611607980799662904690446636826864461453524528060548877286360100553666445221134420632466350515987805766210960568708032948890904889906008592062452259276963880495922741528571570338505028254816527575730157086872398300488051947375037290741483822169884416128196184094581767571746838426533413995708236205378924573157237541839051693214398098865299440443600431184758837840984112946399259755415710746436848418061632217754357543017435625547910701999725745815339088834915105785676024682243293220014865599750440697569042003755167543960278261482304602609967379494295573245376109140546413944887391434144037554942530354174296314851985122127815724530376867734567599134846429075821594632773576202044719233407715199054216338280621827765794239759022554558779898182730375080277219917715144199353817145022145218392132166126920884485736293556592292593520194377322385167629462978331785389000233600480085395394663973746192481882781318722577375005334588155725037943978322883252514457408939923891800597470595275395904669300449211265940435682144259657662743632261535159856838029623013243160567624946326823605245541331891219578486505598770880681720936786179318455005740155117939737493777184184357115474640124871404162365457331834272403448025615781860739846943887851353105303816732729277647348685039986277549908315383672069951130625797295608593234788946909143309446397807304807539026313996882201363524230078452316207407801161048929150142819248179540706317234334314088637036558429973842238046247387006720964982171888639231761085591785401105402536478029422696274385445710311082398393662233834002849039120875989941661884301664643767049649581840256844931299353119145938969201248188366223410294464747119720217177553891304643557770260333641163657902201786610755259327033991494183388019347374047669680181464585771210894492793626492272643264363013469502026337565988300936109943586602892569343521896703859300548384183421116070009437196771282686562489308008694776160201952948763660813981510334112269767332492856486556132840134909665317389637037324141747257603482386197808707187676136223047642206627295173631316140150869084719910738046499125509862556602210389871454319809767251531522412797131091141311342938483033719889591047787933782941408517621814488041127728163780255064027134805704988037874890928717999341712784408253887133148307278600522252471911546767245613981365638226812217235192327406734779172283330246754456094300892478801208679019407265419655775750414518230783079095471736260733089363464148894325372666691590450418121506743654709220075576739039251580908194640561244066303128294828497094865045749812253811713682117297051618865006811397470311625616779350611857687626664782456860238445983326193098223787653582592049285389109895280768744706622539932288064755006577868541158824202009262258525332664761956167525645370649852394634010597494522285001371924255807587322352755466270012882654022982973607589007171330007247870588748290287590166423669287144185184005561295459418578979837522949133848404554991897944402933175469199980979281152625923472550584751535722608584423005560198266004009122783533590803143204095272077337585318716851256790980404180769267256320933268593393549315374966900956064884875421069293265109005542810392343913158967054501498256544729347049634912335165807420731220301006542988551093372399342985165464676996293251651127804026296435886877902302423977468002221983590791887881591789622186156700271797085661988711604999724881141186454130831380482748040843209559888065496145321705700756134151619238372281177146859885769213742404431689674485010334815975078512401199134122873617388563133345900876159607361178820784963538624849129126498148321155472103621336770608942964423078623841069320190718658231888168633294148242994497600032232962143137286095539785728203736309616126399708105519522521528747516261370442281705166813638867005695163350904892327488374073614028289427185856441294516221566683218240087835607336610033388874504141246453284011017907464754435851235559046488003714617290811490708530952721287843925225202985351714680272799360563532253550255207931286741170214627102309167685373105077208164573555169178126684989550108792235454089047344178295353668822626881533926975434154419991288597864048340238213474147683427690603897814947249039426980600578604513177803074276477926941803621095256327903977744431360942713657642170091447530050435707434462134967636933809055010878906012518297747207859600123993632995904597340251625044573157555581078713200975736760712162314882405607887270903670221124105052090079643310737943405456084844679897570011384403262386248875355835973966527063585104406177658996110173541505422020125513345439163184059051782206788740688405222977772497612290051926882149603795234168325675418717282612310899222652506218057065920751839398751135162483258915024158296416535382075128686534702561112468826840266526919763281524117592948536422752694650155975077807959578902195766117630382020348628557888184502636736788272418009357915174131172134679656445823799772496058347013253773932659044983624967852600144269936948967098195925868449127872398879441678457303037558415449611394920257727156490510552445439760373615546690480335515674065395479494594792433277330750082747337088390323118717399539086527926966263363451035379748541759855874874044654218673823547331198395021705519908873556348870801496776501407493073155619630162092201796430806861122261200541344936504188406608975045062930435255339747386705353637699179255681365299047438877859539571026673508936220272634437432931141634318064918155867641027712581288073974979020132086748164386593169006583325791337033657595636641790142799647444406447249806740393804647835131010072127856929471333540346739353104987356897932000677391479494510995498218803292875583114435300273157946122799672306513513587679545130517577798281374284254219274086864689208413194793641713148094226748425734330938436951235683456017149405471020463695262314714327944745541650492652102906043048822199749993733878051868322465355647333354698930484592619013637734355173125227912825580270338936710351090292683278377977821234411658894987851417076453020735311573369966983746081317018740558298122551289243691440993604689560501530271044128611837551303477311969947568808681626813601768054900167668800827949399923496128949089798354623585243575327050702606697600360626781677212630049136742127213539006603717437248747259056876327131677716395503548737909596898502032100502404328256872382609383960125864663267396173589174178803878881617845309462864506240811440196716276572044590080644676929314373275801778686143304876784451910806725454603763990986456855774684578881208219232297693193881248267807783837064931631157450209879700049147944868529580325210019482231024150619271463023918710163625363208117082878244831230312070447332624458016023805752129025855468537113801956592607608064233827980851582844559751197639601946419588243989628530841055336756554438448941533063118070690031479158428177789324683610588099567875347210558833171524016544490826706301896807015552730288675260314453721620109741887188397126199216725566935746475843554944787213853630854972730711512350267166824067354531970952098165419450544504079639480986644125560389793447511446974217081194151514472937661719532224719815530381570936092918276964340162220024119692204458914667280592546815151945699681608049410252989278332697467789193149080812823015958416539721698082852910072208843346464429050418204718860606967367036563408428430980744495243739670221865862320318782108583037330384813332204181257946116621078553131491001286502703159991997293651319008775277450116139853994524586392893734373943869098840319469644964798715456112115113860101520827579646727542714424888100681082878741845992846165569040529485858489301370960278606401359363731848400998174135126384600163344018643835172455613220313234510160440182680392080603508881420784975430287277858620988907514687484344475800865179221077256929748364931184933646704404558948834750067815498643626660912497424549904408289797652544117909689901277834574829816818806073443210729968892526150085481543568828901559277371742888646100605454656611550564187896088046909769230791897883856676385051619640242488370041417223055796627270699050424531536548915372943399194587459273891607943912966185279123289809204424257543343470924502333184783134186964335497984170806894998121236578937319367849325185796284648468331088184978858517023179265055912057452710990613794206647787588153923185633991595170339424093230105565523914591762418832974609712897910501460461047669250743332749508002480877649756812205134561888265734351784370203735087324213831439418915984221489980660685205770884099160681063822505428358134397236405201073693634165238953056454168712083346854850356975845627173526867830679802216486316913539738874129035617826950844654429163810719921082144635729094564653195243440955785690119608860897536623389611095580109397416566938211535724518408474691724219989978809867337668777068982391060957089996877976129195812162294849294240714079900024526945495570654478669742078053894937701651839529420327843741762272614446286081692163834751577613734839536053448688827711445609818101245598182642687208187326825699947905272251151708258562464309778259438049241934204355607891828825694274118047598635130266295994983202956767025128617302360287324903582149334001967242224997591561036936759448102312907626650046218871613399603645029176668907604541221861684326964816012747259723971849220395498777814293163583055446531809615874783065702047895495635628021994553138188534865885177281686015083959315119509448649171120417262970759251621135348398352644294815676572056903113890285806352558013921094531702855566059229346421664281349519830662365654618966806360102507839344352792107052883960562831414032693178394073560539786697975581340585992995709168754237824242309538937359277896758262074110153280833116024209740508702626190985394464134229240209367634930797116721156626257295511376517323253302209181526292044821978072844359525302296140934199968490353200345595554628468579900319157297357065641943153296641095455228583206571749523127850576922885736977945272324505936108285982728137873495020112701711349336315623272956312811773842095853974462220693990054661375531637187358377631171935289846554942342861576141019366266889144066678724103936040146137735525009039420816569657244997124284029837116731961198929836436646384181309503796993377602263504406040869541594830331854318517962913058258131736040475954786352887928395876279645838789012575917297510490031152831981343156020231356551802531482521419372939433617242901891125128821375196056926889140435830437717254103593919191515222988107592300074501116974528269329272740767723191473161477902870157647606703027450379355526588485806220796769525347625340595628015865242874966059556464895018173578055989903979718226533769565066402109071567719055381421569462824182851145945418282290144342407475256477606409194284335295197482282350983698546581244074012050843960912442372617458902914827834317874237794062623303137221805922527116114770135492115410752039875544979024227977996862169949203803010126968984178017879433661805488031278379879798177173397700824782992384370310721935053313187920892907788993017528319223409600011319002510985880007612846231105722443486666154032204703592743477347199634551836664481483362223244935371206276792817872661357746867459315237915540289100470781286248114790073494033639044098524045373190849799777159071865764029231853395273899599651740080756316546080249223398805845948098443526396123250574538353540467628212673073678712788408496704668928360073043225320135070319808532953846717114965944023399303517875992036753950277912902731372206480208485764605028518754842538989859606622756323729500234740096087659024579227715504011963537037314265468714162384536705021261597927897034075035944863205003799990640487652548084374068316428955312498859845256498484568387068574461931829225204356349873278751233459011139012808854498560608521977815506549881857512941912872767470956679605145657767486627874275635909815228888105899114994109732713361725467925492362391487721890477640195554747702978641455176432633791718615802657090204813192163832897574400471715166657716343649577943010819588616324730837317948727126565233580177283889180197917030137919605597438770637053872423787540915920508258644141888876594715532738097164218317348428154078031513602605296185339035419056842219671951067103288086961704302727041178557306049734616773323491868982620269388524378864710599268890857043801377588258867231326761254224206072892589292678340268606753673475892840201353745518206163227309583884650131431845020765872632456010359562787626262046628752598814137838104936000501749490309903536819655511183167808792909704259596249291398590128190131161829572370732500422064657520108809677119079093047533518883080379171780713200342476766452658903263331076293794938584666686743768302011905010738195007723563950523875058048029716423377365500883350416311496661127900629897775242759344238900774256781930226058427260757213915179939243440515248772909520734474043218901939593813070187027991522298442113769003665660813850304552064055861456273542439192641927651504056546131612039190489327770218017407757980558173927792400281178240456809873142932210469530757042436257478903425120765054041599354537122320878576647102921391591579457098425717064653157059495694308026785059397696316975492111985807677042380930273880894801917230013930738953895101912306622621837556060911130509079324129561088407385926547959963398396880746444954714966855798301784259031999127911862150859073903348779805363891348107988135362845251931134977558617236443102286746045035583363829458520307773764372688862966764238828656494590789979302238992958284027669830822564607373378370261916745015418855847548026604533546200422233212896829675098210162143702316853160756077691505622008769805420831463332105060563538946040064677070697542585229224575841486579511193692278498368943950666471380968348739859849736123950489488999512150850765190252793523018388697720487511124759860103641584995280659288776311997046601806392956466882654608366438547341875808310911032832631503653142139890886642751528510442635481683125132002573155043744446136890050285317608316113155947273019036260808880026921659081220240796242440752776500357342385141471543445781485424099431470741219932657141088948240722647929980598160627329758501681406802311533592162598432579282148698693810670189190499297284199059495264758619936508275103954250292248480584165036072522128493359958473245265244497452779860640050597680324667514297215237554733746222961738824920106713563787936376725920771184126176442441143666985396672502922654983157215217480584487006341651027057257617344096464006319910353096621960147459698423256674665699437465241643482432122575475373706890380714609738084744631463897375679477513937803470048091609227089098550190888467188728082343886285646186738550029160360213711345382993164038192594106977134736640238202619815232600080190700268296096669591910132295464838954403244560982835640371202467635813425388676135454351956887758404320517129409097655220917466722947523400234134088848267942493434075472748839705216096247149783111458091504758584299714409839377051203176578515989859201790347549608659854423538888891688028567985776485618050435035057628547057724702551436688577040164380633747682198269739969721787967954336423863834787277537031149789141672058780483836137566145961512352095945037900857461334283026702175957502354708940575925591638556298864188701059008135181947937805740139224149163389255906033832303119895562667870773650953130869674842213639515590039138297480270010298561730720676111709992164702886128857257975878297441326105596997084138184540168632356536495262704769500089013463751761847945173487555062114363345756574607420441311693707095147424449142412305797673839261620201567140751110488245866914772719147157388873482602479880229008659263431474776431050679779941894668061456263755092355143348829673670313414251054157903523631910340028238200691687900757795356972180611805921235013233525460081003812298097542913201342716291847007914281432983220178360044463563486759007005253632231525238733379622641390368487985089127740285013922346558109617494435629505671365216673637401798488836167325545011610691752725240670593344922227675877175836614779330513184589135065461432606762242638280169039821667681543091592345503848007954283776105309466475041769909479150383804254843142848591671511396311046986556790150330668259550820197676988256067953743790450091031822449659258385607628787597267132163449901884488664473385325702418231115382848562972393902495036046136773957385415584143006186207158410716776309969274998834119774777443881027660112670899959715315272016504461403575423686188831992920085549320859531976258230598466862167251270403273628544429849406983922066088897378531592557327903145978714745697194099390442166671416379975151775050698905986858723029067353418071770346672190019519924949857797555847839891976725698058458939255294344536365744649166189435602266535165296489750113758056482997568571620609383254829435111925594047569826854994365138218637464391620571702918567890816385655188133928374389578035921870482584954532717536527509098779302803865526056840271838161159004142717908646219892851715154937514351321477719940578770586566597274731695158818993362202447959159411876529156352495825765122049416393807726275542055070675121054265794692902919791628001273074582218035544808774209263473292732087714086944468473680132418671699033757257069458046866284173033204366968977340664900796165859474514494267809232111192528342860578422278511015002244990433596967866681014614810502509997396214292538650985860507534945274867578642517230916459140197972688582581232936396331222657871178154836772238298559630101558889115906917207524596190587098640392831761684761551507443977573508834320709442625312681050869902559160168251566693387837424950642800844321937564586806290438094748522915277681015410215142147138757812944292678930410301558211408788399103370252812385265905777225718837736773798983652135642602341988877053741820759827139943111231330776697869947432034597476765338311985577372479559540387111585025467385777925965853393617022914196912482486559688829770758844118441388243793715104795636993059528262251424978863105105659912260383055504834262381004007843613182530386782179814709015235402870648302678775205212611991712260669513886065598894497167471550273110095391693378527278542456588566009628375818566080906718365990343335011679539062671171974271159523373021571773449387493881291175603695498443728387531178408977012340099198372060381222011479775589812433637055112766102958498354819978010890734435512758765876790418128980324816486692377183339239308886529762538985850570245341113855273705224348178309174411455902231845405218109774025789050577958691682808956166670896058434229458813473384888720149854665515860412824562557494435056110432014721390615130687208186706163287156906139163783163348952555425677535454573032653643478114768842410528343951698315723138697725920774613216797646749725707358329920578354128227663415494019855463973513080367501687976607174297848444107506947619860049507439939764685596228574348210567546022300261350625302606144295974349880258398505307570387295072856058474077130214363274153500437019892562652554931738189143212045525540308472556509221746902952300924294528982228475398984590757425179237189994296318699784077244773546100176676254738310078662207036019277117575248262047577626558118116380725299492987947248051036281711448492537659874733203988074594139992961427773857950767666023601632701205528494483570462433378760078589651140845749414392402540596543269355200819006648625851901893986296322774880605497286192556408823353839812915842035530666483804710094635766961797887492327904255437111999857144338563350076490365462845553799297256468694608262472143927326814738316774259704845850517319556757193922278363782400247191479343574127782301339578580315050017579317224904821473159185654233564222999151196583026060156023338771238351238628051114229312276044390761041415751667101598596667887131063461182434064839698094414321186345277720832138411742675964868914333607484152565155663558470914989415319234245860176530373973136571448177691047851455592759597629650167532060710221264613215236082586527019328656519305645663818854814527731718107159153783834898298556850442596645382469496910732209853533794918476196663735397941227096869791986544222918676400415600961143031641127519481080642805282411777017522349866255067597621063238497919079753804098411504305576363440821637414103049395302155119381974791244119727456671144534162516688506277708492549309873706970451607802431115645709588144929208421897399369808338682714807458502262745036393053168017606173995837746153768436625686081332079676590783041154462718933458057294242444779752111795089366074549549493226276668105517135295976063647172794723888279325713969097001180010209507683604423539851077198262202512784118326724060016577053070221906868787688925306640278850007989247054067870652510736677969587167240512501907899545996524836669021836745414477061255628124616475714287316480995916754072633392428427599496667317676619788861598403908638305299842473689239416141741173762788171109496891947556452531271814180151649773653134490174629436023060193396232848221805581540429371527182205453400130093775697842742061427158674236735682762005710507733201785299684264510886128297882289377246911879588346734368241636793343495061490470415041067506453669116560247040041920844346113105921232749193311747055968382074861291483254235150151871417767842054922376814351501103758062902115561213827669608116315923891823972832800377003813776542842357922180315309975024082863474594379850134988091739620638046593097312318764764290135759879279984869631018541627747405738973346687951311549401140210452544970430379032924201023404227855494367637185694500765120339025222351833895985459114371730053627121259777997614779661375089929267363902020537270891523784260420653239871012733975048216021777326813102577167131525023999099523488285995769215190709210126858543993150033657619679788209110141679495127187998992945484621495660099555899474672871720871133426326252205058669783486246012254832186628430675672300607761478381720839695710147300156861235854848426250887716064412133471705732324508987037786860007917118604100857357746323966264802766639807632481385895704744502821363250830010665174698278111834783342361941255868404904787465157567555977885071332137164842840293188856443682214938565715359427768494261857344956469225404581791915833840924479928535750820048360783265411477323889226642393008773282588100917459134616844947565052495415231111696071815329542973628386823813003902594489089437787605098264381366513714445582677753318972269293966160659061834134546533546525065392831553411489779112985953511891695124852360946971366505971629192248347918577548584325398803738059200176650560691509573200818482888796080092128844398698007148262327679297891541432129732873634763659242576797587614724924257917400536738842188539468650767663314268928957161258982549529536717919537063264686663000422555364057677003024668360430437614233651944755275718625038798942607012501624110196248780713441821587039401631918691119007205596617433875037549114532773351743446374018696624175950457266164505741632462615094218816573833260769170221927439337448867089215349520010918137969076211117556704490911932593060620521528112223292365560569238242787431344792774731167456621625512079277439326446316418547707292133020946293909877733648599037271451498379266503728491335323683228954649112477014025579463035994910473027342595169682978205596807880258249876504902043502439618030300476121884860007917534427506768153730523932804403953644733093306379343449216359857918402162327704483621706301949733201508609425233717708600588633184935084734145715574745951443628229240167774618523518945371118074002989339078959076438014585006929856236405943513016073706374328698896269615400237466086351378661122941800219369394026199187217686605577067162802358629454437570762581708494777855248537402221733062730368870280366162279082895121204156709691410058426656956001302457971870044034377026036571686671453594296747107813219110553804197074466152010650597593673198745848407686762711450543662003281966573311004396948148177476912505731924968837416985429734059652744688823585164350649672157151527989155240696370220089414996803961590971406409863812973092810320938333571593542736592603922104080800511574656798620005970040058078075858811603483111407721190206605513420175269317528032296621567610057159726290582573482645045821823159218543026104565225240546561274157439647059457901772255585338132987235115216912477240857293216819701396777984114118092418784151424977422000351612718550605618010620722149057067452369045456574310948575403036326950725120596943456443566914486158894667314273552576664301079638366366393309971514412282629619914852518823980200049723523316308213212145363698706730058730268301563253559642615170729412093452618146971561823605515990906642140948553328780687135710245237458082762375117337855559826379203496199922908854515373428404089764385489380951390111766505537473519027644650516334957937805740641545605191582574436476915317553602073984381475392663518724090033694319130929347371526414175545011964208978186169888558232165053403447133275150842982897384308597828987865904247274315145010740861316892580383664478253226826378223441828806839345626834764043883939051255827740019619812200302076334036457005332612540375238278053942737134683550893158272692026257357801318847412141486875046103587151892495083882893997111116098878796326419932900179614657100721490397639284050645124807354280079046625693304745472166354690910171431934900037424254121539297295407175436338259270071213701638686133686847221431153575743393517632257572885862723833458011284535107973698666317304635790273778895006398327948500428357276348860922821678588865089312208631200706635834325597689326623920204147092874361999381382750621404227453700219319803106719885688798751746310774803402901854158751251210417341884584011146582859301488025367625469303315073542101930345771106194492434910456721912983840416917240657811009532002088942548319869717107829764534106633182478604467980902197910307490156534186918276744094951503177983489215218843652300889439738086057856436636833901035323938973575137967596270794095444262497555699246162091363317454468272023170504130094171648963807245317395618762826143716419386742132526552936841079986243030666311457936411352934817620918171760648241158108674754981390621945111200347139433589039141768668334651633121696462961335927293260513849627588354702575294957305725666532090664156784410750542100759297612062029633206406862814404485444317114874050739686500519276779976389011834276558613332944223808566007468789417175987831258658023557446258365892259379685259594365179823394121881454946050456490105265508160501265245653973443589799915560686317438537626637021827116284672598542531670405416002076198555814163228215973180736176482999485696226667070770570796000068587397232527934066993956726143806772448290512770206009253016011921540606352871062700344517212123099616023949122317645837818327092857550404676648017553348026988494293419929822273870410851174278455219613360307654687102564868322074582886955177540208129653386679341253515111529255827797028025193115226467003689689678095724787744557615994712353708605873388938690568742858869903235354499000759768433231130627835066313656264503226571645678945506458664608438669539387686297016468753745106787667140406425706168101137620489054950750447349281603613980648765903458715625560193800902486517946957094456679598183051119908953671202751338480803736366596533802416237330439580389554512721643082189406238411119875532193736055705434109238107155073633913997070321249700194633561231476432161170132584065684161106507846566720278489821035142299390711183363640287202888122168505344051519020112837273319670685056751830011233991250176477690090579709406582052980262459444788856340792512099898127326534776867222477038743401028904949033674291547324743619005647394665076519733448107439529967862364760257936638768059657821279593158246459971177435303879995422491114591657113474003303351115862613419072851916767071863888535497809690588107346022802987976065708919211739997103671905781458778997979942788179001298079042251911540680307933515773236201700077318305397964014094524306782589037295162524205106683844179040441520066527373214048541835423860635879315084903037279500254009936241851829786230981850983389970624664357730549268990403257756347055629610172079833294864591420417457075449896456176699317046207449862515551500974371380079605818607368131158467391457618557343386607469905500780282263391322702882409963125998385988285206366415604328058942018222351736471409567376135412183632528770589903006257691364901045955726518281141630449593536057665863391979073638805375922127117140271584143941686174079354892063442788730663293031287998487482573441962731428128801194203469738375697687657353619524478688329048265196213544768958009246100661500882044946640255033649619948679089473490771117727165928058576491683531250587437186406573808825707428979494575748130708738838885900935461178391708641818038856025139394650374613623209126242514844231301196080259466572176842065448289696021174146879628813019325193896258732281438604985622812626299853636624566106532130191117349229357107706579696040976568563802403176957460264301428893147812953328523712214104816552417459762329227022912777706340135860375522219086261417678220659141590621804575305171412545950203472180518684238049894012181936987223159343645625244990860132131064744866548094468380889055822110297760448128848908159517861846373686155717977048724412821041080614321535697276205383630460376154052715534027941113617665572477043003743708359317395073772942448231943594555420008783714069755171846158197401963985607280361723904383409838250763583793366698956644926541297318398646009970811083491269139134740433256907898901284792030023245277584577610872578357082608526920475780191031492406862996258658079386426131187165625911420087263250513628338601018395075723381923717563034289885806432990349559713548326737388784899811766768707817669762886607126569708297065087517536454338769837748803580974631469834182756371309112755111074528945717560887561228799463948699623489080758431399713176850044957090536808530455123106072717317469276959781741497377801742609645912029084549112770524692398049358587071421780712158219095667211737385029495069060887832391858588121244239635216700537682237896473764703511735010160863094491384102301362046016031607754622260042395065601022890777169855077120382511494221258095587206144716257516836969553808514871184792628992995807217450732332541206824807132995404625020677259900098890452961860684992612452817113838322382692317327000788430471060953974978202458814918717320795181057258807878639705261441506537792235517204406763390027884226956736257108385798408247013050537665924766676905313709187887688017581882956595845694518335270130411399565205337586456399537529856522539586078165577576949695628022172811869252606092864054310868480343483581208116741479505740816640087061149941213978689499188679942044566629532214548134705315279786183053752325782540930678894847781220895461706754727809845157747702276582844871547642335548362617343860148446903483227264996096385618117873160765980024603413429817460832084972890034572923267525848522475458785208827944426619462250036291331506625379628821965659792154060978102725663371760365511821235411254969695374909690478689549507908838968782131965776690488227686985638990861073013546749361751961511328427397695810517872373133559193377579704804116470293645784999169916489807399256688907619674608698401908725725909840386999005781396509693153887558965993941779709651809060775495485790212240403463269313828451279856216310960443274457426091485188333812611068372872706974520630337696194916040478193903101528634791945566051347666511664686314262037792174621571248480794579444728265910255915752210886491450872763126467232391478716434945133150719669682302276090480508890740946782944302730318618275692793659696496322114746122616828868241110810921511679083540527171545673496878711085745927298906344452339449589918064403481544929823411458819257925207054573034338288418117315396348802646377147370903362796135518196982976428003479262196348648073795641500812432079285901510536878969791426621228668782235612711187375177674979542869947862354555184309787608225101988700106726232098106559641814296583375098334422662289664885245194765010369775276405502791656121383176114430945141423119507763692948674799450154277950968759282137968602021896133155991707301171298720051951735007708179936402114349026692210532672054084720693471388991183280859624209148223120322197210577427235672183993935601836908332828082104617893595772983272133018185100935477889884896888978485957831797727991088264694510066872153927025316172397891573124957385391188205223461872908104719730845674342700327667230752120806331953786116726126658185374774543369874838062182155975283168043959638018832318432225544955789655920005590566148305410054554855147725665341711506341188746239765894462809302882628622340983050164755265558140155252722094008727269448431803692776536744501100037647556580256128146618445628369029966010946384858485385520588395226465131472489010213526433591737857399886592538838164932596829853344349136287028962059306551697403624487112981543691291313351445232940925833038666744531109625686245047592241231995790709078426784489441017673493353842888768488832483981587471032870004744478187994162954084242890274921603119415843880686726648610550583264259486519204691085967824712621901571246133930476809559620929019457699384792348834554868319239301229035784869833828189777269480277400224282918254940313348735818847272747469556293989171596727073654350408927303800932372538316508854891151572010546900914527170202371688163495702024640028537071692776456693189204085520976414587805163434586458582849765364295943894030205722329690284079122236334585550336419265089888766802138879084063973677333644352879664359674126104804456027111134614066101578537868691537489275464480453977261016803149634188513588235817788574940310008508529938821172031051918488753152684994373693803586274339574775486078477916009262930486390916082292897971542506371424057260360324671549442098800311345675577791427026686810101054255468257085440091120417503057843128414852700192000718494232751450503376898122203707841855257780930467845498879294200163109451370778594618525623112255379525674242380751406882091870897776152874252433781861423932751884613135685775703699837150247994936594657460067658955949049181412046557472869368094630609827006049281070485279736615589719297868681762118060883043955785092492638687427081534474962136354943869091244533066552492039361643051021831682214229933232586686667393842648399075462871298713779784127900420559447454908075364446040161169163695222596865490107472184064922132575352198445735152818656816989248576328963028773407233178534315170216720214289131984709403887277535775368166398844128940142623909105440793059147984118462442601995441709429720660317553927489387504928539628451224009092383224746772152485256337174221648932942294351015974209161735994999699751382556898287786340642820848396098665584568570016217413777146221470344982804311770725649174728082281337878410556509163258604140474317528000941781871060173096299541104754133997171351048128940247005889092920300373327940848894933290661724971143795427437176145106662538458079433944569735047507075731649257494676345911484724641003995410002846269694542077209404231153369232050915107917955829047197541658095649765363188833564406107496877611135371139099823934508389593068395460299053233660589676612155251841477553376200633876479503115201591454455338561948879136440549152887324930804849162652824325747569503804051281466298296778774644883826125263309896389140631589857502353914052605032419420067604422408729827809234084183017629217202184409325867218716053089145273357572341291671882055168064052089780313808246599207808543965466707373617360183471619298904119168265598230504192451613277022756613129337957828156771103519699091896259636123932327384407369211021842658186979085816170400321220927066173320392283348969551617135958456450205494579810222726923396283647804062807518753013654729745812214861366006210355953925555420350756945178867763562165842922278379240327700910607413747249272962309177993607722464546488736430239804785424839679500695921840596462686776335044659800230020172525644190834561967786864806369812437422172851262674734046832368567219506244162416398645441253157165787053442474823544007740947011653209110211419790834800706264482438472890132746266632805501032791266982937755905475841242458336347609836914614549506112962179048990459079840628879014281435615830183740182727048221988732791001626449665575161100359657483944324864123484647593618257825073080134228011898249600048020959499642181103265947120733022416023896850381790968331766419467408926309896567942018552631165386339147888717535087769752466928661507789000158041800194016333012424511903883994143020886440446167083785932863188300487558604378722658169526046409716653364646918347055000837809129137314108823401648307067529454628518883067801100260782951375175759875170335507756810506591324704150942608748593996374930758722985299290081099435126306794353422177092041487780531809805234199765665201185273503155448805708940076376600676627025237141602265657234518693981976723423799541095421960346465910472466475249806823177532115348336369111650186450814530940726763977383354406585521272935909979641894193985100473068954478863387581783041812581693705017008078124654901808670990026285957392389375442102736902110661680943470714960289154420054669670696899880480982152694742828988900939756716258306693760632603576134044810040923931611352255459785214463358211884827274922265532594747801849787079853887620058509567783297633642355410058808533107207681969437287411199185334407859522104716850302589539224158156948629273936453490758694359361743280728003892704984684516501131833481004611825859524813612357161492707111657482672114608806208381251486564439144850437319331584769604557584828834946892204377311764473692159095892348283714238271643946982127382613959355667163939828806536567481612812643705264497930811246257738048177479264209662673193385895483684302977750014908287410894234694848155654009239910594189300575096853134660418353082552834972940148132951776882702486439813063909433807068298448839160662724784646628987567958990586202969023409135350508395941637037038949366837509696978193342599981467293425164598222251095932952104575181079672321076929302724891871923142015987505754813679287717944846525861278071809848562997001346806454313963855593021810751918161252817090416964008155013852249398905415457867569510941712207891541330125158071131821758835255567910552134963265026885101417540023813735580796977565977375054440198798108003433133398709841803743489586472381857321323077309557565092306109789461463872346364719601419071534310526120741972479651006565171630245856113489851652794070665036457590185821453396572147379400485775932053233348284480197307324720760809050852581063210286665165972075202566671025966579543626964137974632125849112010865792671464150183924441219753500569645066825453900298273116964277358411298667196450480409509176433442155039394846621683440577864551777532535786564477948348971066190541727847618464262635235730416578770493191975444761161855882382516237620819394032111180203913913771637802128631454591717036607233206795544932035414643380546241978467277914605641931729487676611911849950882536394328774142336841532670124369870765979001923627241810296139409281351218040712796187331392717345788006689286282692252489691215220980741256407050144228993166105890971831658182923881160012590182501549245145697996962610208937214426074843780387244182192509988437785106347256234019132441279943469760653209538780301164695171614744344283690058724846311014128517532733663780299024201562145083999540426167236511767527962183266593604566568004589049891278004602142063125436751512755099962962295495125694988785653340217428153986286263536127665197326120765013027625667595427547145332970154552233147583304346168916474511480524660578532977089859634468775200306126865009241171296144183287830390323908905092583923105211116159400606313032109897672491195123497348640065599105642214304310125972517403703062222656429169501857457380252974618996417398401551556192383042483460635534864154970357573052381422464110032768164837539905722299905815197493456749058440860933671592106139331145265107099321781476140498084609063290623650277411179088794255093013916904570729667420784239165922059061365522542229261063196932579561157889554519975331535869098200416141316767349850007630204301263161736790107141435017910835710412998096826677261548606811762889505570884215269498417719736807038915987954022625565906419064801573971396586213340688557662976616352364531750197529606871119609165968780274971598452091695495594227722845166377559323338808616163021169656543869222811301579846385405723858347844758725647189623580834382797149069455239776662704195062004379495946048475693989819479364114227463670552062098042993388913662757453233378275920608258071364621953170123787614636685093800468116559322604717554019974719819106606946248705629703858374053914979359250450430358611039689562207985982473852168813438838039181190578089131691254716114472814582041527756467946688568529236047739238755282297042120481479163625096385745973294843539400055374525924306441745642917765244328490035269571796176816911296592974829613263835949447545379563575624636814244808764053757025081681350374686381894224998885942313031742222795697616386149183699325928893734675705269668245355916817684728760014918513775583035322032955996387680309099091154273150598307085488503827138156165112578214618989633837739750520779041930049932112703383106201629532214080614860160214458665677906731827434689438144350932186184325280633951702213869648986345806492734305611705518633497365368236790901699166741203122800237538488297106227897337109012172842180521262691079126877050776776817131830812127611122105569225302972560234151569033981572493149275795499388974499190349551079276753726657513908612043115424378090858649747235583816156179812514577559072761473428328392848379481069067195126761817243356989302328559502371312351377215201440417548065093325098844336157148116045055139379503582092766379418053027968413240350600423866813982020785259901583644404263161545154346891473690985232516129316696007778954598754986493667908858948043598525426207552635429828011336171062853175920123996090893822695828848814272305584943225014570137173991064171478082479403823292628888346515507172853699657424864599331153374077288973708302844654860162636768467252994811681996705130905650518945232062733880571240758968171409316372906755934511237227931748042667644171980176200559716811401882003704741113203134812139589307332833657301851991664908134900324509863046005150087034978144733839199434622877225376444534610848998093619549145039725116196237113144172349125935037598724978805687286459025233532645600851119834698585725187178526314194422019561146095512373775863275218888094262929103217194533793520557689823120040943460611280165978268860775058857789478276422937954629950352928707284701241611968186513486597739430810462609885275477702564418503334228583751482435198187834506207237831166254618528970188264038767096616338567710762691301391868809810946758576329761173505187666774495411295130583601864559919277941592067013888343867059203779309702344398588602981318388814440088363032166466267498499592262081846647409299069609590694478900122441324369952790575086852862900235948650122343845870887424784416676428945953375161048156312231344360367384458421096771200314003664923668610099934144612946013212710336661885657515889399508735005731074674992357720581210223684806115505173658427205516286794967596545891216371805790011092371797466540535187088033392320466047317094631572869170382583436981177946176078277090335722156200434349325626012905303765928382170656581735975393812487086290518209014762006963447201398212040203895412420750734753626946776012805398067916397788295434821811667476441668877032043173837984202416813735245425263291725650858240916680790600611619404197377858660554242576974308621138757369987886109078688631016158429960989600532907340970240217977757160417620779315403937844168616652195838715668870228873086447793258566038146823671089116021606088693437318169313249320526116896032506956762225315012390478211257110916207452112657594778103060643832914709211353076246202495088860089269203933254159987068632099808564931566879629651611127356709685142933524633050901187530213958425000513770200666420288167382632351222890855912293362059162157435604184766792637035195485803636697416793056184345723395037507038539912872003723127371310311217728706718684196766718726285764165963613330338868624426430498577766006543503191455635470817243979133878635441914705030947953604594704310476017703600821223438614772678308275552842161105735663258233217581779673034675827065339800611419070508623894711967518398480318172556138023814741851804266037313457275925333121783298117063600227431737584011483335116089231190729376715252030983867055843777337464623083442248933129853655284910245754359283138379665872159891873268305804900491085523404901777016453182472270661370587360196511380722585918336490819767958604362086155280752984619825741500099006070040938197825273651646178559952212825358775800508066194910688995440725215825745890911440046249422738486042260935843862994159471922916214249006547369470669602049078099527295777187364103141851097186154302463542281654581611541897577063740010358180919537954737147527936937059587102791017547714249576190782087657181605315868591167848948312192436864403742919994101997727056789987889598764370469332511108631625991492330047839464031497992575536632803753653449323475563737699746769208740166929480032205382007200569878588767469442318109705294689417030531406457008663283606163144808127104236081429490446565533762087667698201321788834713873894829516654169759359836408659931939026148823452801175904766241055846293713109416632087152669448491945359507730992617762336535973546918327257823347311054867750633957226661346572675491464944735642176498938980656460088814935670488145951455476767055381846712280073744015759057473255789034116868764821081278309968833324380650672087869932788322025584989981165121202231132168692337200579615396403831051268683644333946597963463780147557888081422468367731089076141558099554994726713573423645099729382379911520445850174570533510277830396497007246914044590565111356358177807147814794851606439182445725703911608455457811009686844571892165074118622345166065972580011206403740129275236881278088788167595562171484365394044297746691623738376389572903146758531023492464604419706463483882984377682305959589120377526782725956644749738254885262829278544370246473167595642060762130178195756677120764004534788420654133972091422268617707041168041970290629557785787758359670480986669210716135529156020100433126096798279379779770887085629729626773195147713178669085822939334118710402685187834508664820236022575262986469858414620752025983964216121348307431591311828064978802599372065299552367147241136772667270310040301325815771713267115917726469832555396124050770038952850521756628738241229070913331160565777382567228644313359124869836439852141647596650456874001901684009191966460365441425125385152868298268766207895749838255891992711756413715483079581060529376413003032498542748574099053029621696363302082328412185405500866261779397676164656871113493530784103174779279176831482425507571475272003361564378203518398626538213474163342426178673533854484422102873782486963624931068898236770109366949028889428277293593597341660826963805371326689819115174048310830923385622089069582489408338474281492664174048519506399345623233348841592494847186450583355958200830323371054691411135147341167853650279656280754686643916155444033365409975020100201372770291763095260669346267432706888608221440038318840346006337657160065234834010253722661807077891928348112853091333278704348030714472342073459715496224943595895160878106058785898456472652951733813662766121809614843711790296400776726211722527636330332331367123239649631428470946219805418764772946540568068727240756360318945419953556106655534952051778208207905823664850132073032011139772743390829741000057287083638196370376029789378454195783037907562337780935729566649744111017794773196030878695402862719744674450142483099670883990280728374194995687763177786005233781021377219316592174005202918369389070697433832417915278604985959438681466805741044778660475629689777586084279119940844277964088693725313845970007885376129253644733642613926750581969360348008157272755497196271515401729344275424656577367004876958126566109383319125814968216316839513273443452062539577753801947674325104100408341732317026321286453693113298994528442377086976973332746929408562679182534991188514998046198235744387646854430874415483873125772530360477102921076005575116396279117296912591006121867516144306696862025327854920221870081107730977461970497631893267739233744988868575464151772206743941205352730675563030212691777214949782730132816617614858617468984140290894341431909053231245814892104425320601073772408866394341195207157438137337650640253162167755547275119262509569410416904131589042112833691695990856872526657630670756308568487664001523686161864358278905633733175702138238090677233970280578120276877780878855792327258039339667455673721309174283070745023316484992200460238033167630089201138403585800044291559741368448369212280954573312638486562315846715243800629688241743068160429794095335049730316234224795991755587241612649294571739381139823459710279252387789473907874578241595995108650815050164477181764085053170479992966087231473326712579999469747899094745344675903737666090486643893956459694011353563654481459946470451775393548740181397793597991874979097118911834564665756267061154993860952211874633075761804930609806697249282694780864698907140734981997211562399952363198423630267125553289917266570997692021032305035806586146286727783900155151180704508197031838750564569518326027405276108186463494215358069389189754657898707132161116250803370969424581890526759025279617757605548613562284018194478847911587932222162613290994988022158396284916796862312127936885571954202058696648290610170543754762424343575465242434036249810626677504615019378720208406165395035001975137514229164611106475622126425564289624243628162825653034508397690697937287009468244761498118762116630870155528505983996902522998499140576013513609855860857550063073164432921175485466343305808581733787571154327149018486821121399477329996683007469645751887359137194844117173136588145588395425103435761431653247088717312679680245768519556603897232728356109939748062319127050980062715627810802132401163546078850088027905793208135240317107662516929667153467023746660123398039144972008053717850728213928164939891262028551466648774912696224280504590382327417773094380946157671010725720121475643827427287436093409795125083896062238305960086494562729228263065020378869659148689060309244878134721170402967180233120299249211699319070872461287739741082738062072450707189339359235651012170171893217724383591345181973644959483401184405157555282928603361269583570547050798361639015341769359885304533986953554820960601622164529567473531170233427658715175696696911612681645649471068551524247692527514223382156901742515602414980291429245395684632912016132308505472710981379246278410895913480933688583342632923944566429078543270926899281629072872802371417913504687190722524438733580639885044624275891941887092828262185531418622295033708484895259167525098530884372273705168337599215069068217502124961753319638881385201879803041631284240175606162708426824154236453049099917082721439020921676967559468785745833416241466748422467311303319426873682497997410752030023580076196262968327873000774912366240667827903247406887394503974297536680817542996309127679235353600623666479164921040965774755345583319747113484885153571938990388241275236797187964507434401777529514670770110226517571349435988286067662030333856189718625146385569130979112707428938324197999841722851700335060823701166734439590510485928147286857962267919777514064865494185985050910464303993274420645548748013696831812304907337892209940929161564346557707480761623051506709934494578467241520493085545272880580987524229444388890922849507325363174726674926220444279323605292208041575479771699821938696476130974510889023561974180131772821823530605119087066404491088759507910818941635780748921888571572911157105759864558422996469800725903406470423669963059352967552790912703240942426663610015005174014366080324042354308896868058870166154043469481449282730737014855646488709558029069656793526120307525129452357809196584789128304214214370581792095612071330625679217404631425578143938189264992983753115598974814242548564861997812506005100946842749982561338750598073654979876340400247068632617335291128126306720843157552921155261799905741077430677891516496849144252205286493878842856457512668027514244822172123119015717035381031312098339041986722743630372286722391605083424754653163507815577367382632461096701677611275301468582698892055410401525468614050102265722176609143782728302704181911881087789769825381245939289230905519364011075237120650506306926870311808763566106632790183718192159157333163407933524057982415195314087930133667890032945554490164816717971898020897371278493261832281118751478249752933396428476107154802469435841488470168101884252980796490945194857192641382174130189800522924702002827738964051880281793986031638877242019973513975670548899625679404903388246659247983755580157926098762094917162239070093369464837565991459400376563023903077753484006440207913536280156237020378070379260207977045579656551919446900868198112345891354470340418794326403990878513741486790409538781974698477820257429604126661509678482533669956412775520860447051373851142590431032489726834167690763056431302495839980389096429191728377596004005031805183215886974983182072956221651889572403750100866207121353252014225987075621643344721043452479350064912910152255078068941570946539025614978491246125181141758155002660301609751382730271709728087748252179475116666933548149655141579980080989902996473837568447934883506585671786127436860797432015165254065922164585183080835059843492664988250701322006016420595714730138700071181675244216052282013268394433387957116088384379306524108675275940775728011114793316718213267368358832089978015903146776504889456876939106099057732128110852215158481748647342790761188156163842363978692889099090642602924233986845374709275733789784836136967964730550807970610988664793234960151842239349694001448264977427591493722773411284165797977503401094424110246771238879923108047903286664511535238173195999448985343669700535841030016276520315849162728486089887835731951285136159511464608107005161062743388720255099683312073660132171997856067837762686315755659362045741505700244953289562703119088135006901920642971596517318756683955591243898755939089662684063213252316020859376438796457270910399946284549743969574470194574213586552203922889176441973783022274304752977923447049905100078887550381296454161009726172374797949263594065064515957715363778685590696512879178391724213413564782162381288424091467322083306872249748021632023027773225660069715731790720980786057824828916865737780366701556519751940213129233578050912669666424288126675567123081806662768695694419418028830381593659391364806730246204647663786188106468236358920499858239501581348411225825128262531522552002889033727388631472250888457947964619944973368626160103750969073452712281241744297037076745629490734579125864474303904133184194565789021396853685566251383540645616794304622357445347212324627179188984243000739971083735894452265280248746791342730063199310561466117066249787508022535983002211331125076085551598642357380615744060909490911509372645788913938158769055611648100575668409394382426348838432793289872782795506877806653127394802186517799050641806480309254819603809094364529134141605188803767484260428641855595092311639938107089027475756599197888452074043730881024399150498608591520595516393851902062640004436378019651341720720660211851646744488552173732831608958015759904244454569319210319224377781602858064559829272342151158657884441113622724797287439698589132441413429461454680828558792208478060636995652523039757262022267759274790162012486604317959729936381337274335478125389501921083808279018254719293046720887766404488637587534852102280420855728655072454459507975854950599830487460540282616175844694864434925787956854532174874674134611550955458769703731565270302531276336327526911649627719988018137167747127992596594521096706507696866202763821071799560621307753272197360936829919888138245510724960913153883851506083331149594083113589408718833567863700122662737661014426665766049027142735581846144114063253748997294215293105564297086498506782555426372692071624034799969287427434313446838922284194094228729347059396337612730505235228991094638318134141745477255028088491600659184877568808404991256661069457604489547085727896697986236608139722449588236449475825183668999698736092562303551908494697135718111416303349436098897742377336210917529617220935603875110768225411065700114566867518642968985360241304753189934504534370298067472777138597324236381312969012775208034916274440780111570670347397429579239644188190370599660895728916078573193896932529157120872818085042476581259496216655142693426244946021732373375246391988504479228059454108369598020049894263073182698332605998904201840882548711343991701364875916629695788528712758407515203289520653599353413134029679773804951854152788134544782487827995237803178098313470560825255858330849152440742116292084373323969179205971722148199531456755948408321208114208717568354154231881843319225839728093528335543492738759319027180429935260046595839779263119009027451277240047087821812081046705586069821261420903487434448456207198969873628329671176129761996919804364747446418073025014721415531677781465165105605707849243325588449892234858207307585379899301071505074328652875118775233173370247589307198953475248991207471012928124109072199324709388327073998897239868856624532460588910305528998272259817201372674373650371530171119246943241803131029538620430852969588889485596835028472472806737158358890605664302322516341627680586921066983628357962950592795754029819234822659952665671232422338260031674512370440964508995642193488165614389784278987557629157085652741738991926177383694692565998063762819830457234325395886838105639046917702633418266291032165175237732308014416400591803464132452344971470700522978802741230394473468147348452528106574624260400452182349831767256402712803366311570030821446134952755769436777348667765032975048940633020909488757114955303784429684502124496446753043433133487929883329037943093027062186344013862626242757690132241112823486521351946317336196271873926160494694378180964450673321207429420951545186572607930300542046130852142539732214973406404195345651033370758893617790034486789434619049992530474547526726051658242133742945873874541971556223521409784741563114522838867816041814184525146651755182023790956990244366664400550032353612498669788922166074993255016271065157645000011464935990486852534979781026903542355471852641473040546107272675998672935541928154373893525408048887841667294917663086002546478485643011695748332303254078715038247646482141065608033413537074568500985897079964408383810913313551511150809627028557509955388848287927596203777953707156142419534067831775045314846516668169765988455340100148192555684664599785994124431457957671202182712771890341159118413708367135126760142428810195936516103196063125878416619176366275115077809993445573268468898355992707164597150815679254985221860834013964560052533668714874713424782769562037440399270450691636414381086412060344446552618091303816103634865435851693986406213101483151172533949144584774659929873322554024663863100690679133344889386296156274590212139304953641256461267558519603505766147521002666314824310725561382889763698114764747684436775950339040355816338342237794237732719180622673332020684226272350697623725152508396911227160642070861487672280670629544528609507912753282999279167142979734911240425889551699808920663305930795075563324331650077370876244102675721757739933981036140386244455671937254082239470711136542511954291498323802058312541765557191967964508283424213670844047449639339128035557478258066495824095137597390426236549158538049237798796316137450699342110243186156718488835276147039621684126661700953362076315181059832581408273835691833240895333185128679578334079047859391086680154379925418609529422717350456386463276231438557240842071626276787452790707921433604387002586081374562408942446721764353768325290349107815168309216918106300400312218394993987613648950855100257119280476026936605134909868084304632730490756415753988242347900654444887805381208073807722728667670330362666146809223964634845258627354101929536166735159303910175119762617936598365175076671788674418384705107149813575618974149630805965656968107534618707019531620058965688287707802977421054016636801581934511375571174736787539900492571465307335956611187041952882571952655127927703501290540910770096184951410900514583602445800453407604727302551179667872087550497918188051074674428588396078456345111252402685189964336581759781679816152619792110312615587621726080273765894828815171772322403046941692633985137787296748150149620128773317818481146220280923945893651308312931523133632037463675794965268820763751594133753947387574526524719664348428121238480348736820070476959084137446292531837501783608100862823616005230596009328100468743894597108129262728266323041888814331033141027819888604561584322624926171545809594625130723240318975017802143303884338607680545034128891353099448223237940091769342062595994557933609514975697693337911945217363191759410000352040738472783511078591834541999428722263313730240903761866192293175355482961323996990781698297370756788255895077647035685652692511556192940926827214080597521352636908809303314945059869747853424966325007291099098334515301169002547494146314835170034071921526186481319494823427846134438946459482032932892000442283098103053588618251628337301980157416318871793644040175504436122825505287399877275026647608750226008750018974093294506887032066002067349471317279443430680794837994971175677628511735932258564422392913011708047681620565598806653919140534623512312100083818677004188139228106095572437748222193534077054279603455200875739564388680750032311034742040717894059440566985504591063941266142710111858314814157013565620800166948269946035327323676772284440807168838934700511415389779672458426548122098127377815455921419417409505765217337098210679225587450616089429557878543916395153217162909925132181116509976103231936619916763674092269412990696536449030329656342945663620038954157713608289629521551612429469487953364310426721906213788239344058136294736508994131357228215232902823484950919774481513132279102864887276823087229649863287518654117026941229571388164593167862518297676730180683406750789589927684745923715381976443557379095996887821245497345853104322346611493604859408578556645623295580426431981939332587443251399280301696031809475774264975473890403836512539148924339133948709604074267696993949756762901412265993485749653475061935877543288621162732206626768773260202507726219860629561159328372094921514931881861212506153930161604293446488320993632695758447193697506826664795656750589013947703610935461586062829586676528647376366805988456991154974339831571718145810640952305714001662294746636622456982917843392108503872288923314713404609802689435494780707486239404985132833057526841028142693606973164167406873417160929299335700650903105251771099145358244805022812367159839810470175006572316989631783105596575586681260409805973146307263801751271815302178148786991552735218884284747832317318000285344479198514228121203635726398231927158738292528955969486864950874251811414782926993336845403369677492407388346351130955640044674051137295877097216251908345983507782294959588460337340981754367565882963812011920853628615669283122826785801967137381012823269316141921800509381477077959930275508804113549826820563741201289600674245196919099939858405056984925376543642501047361456281002490700741495200565769874121728717991050753964190844360147127552476045521657827032581209584337006575906732811173866955213762990561629693472183520644196139826584729042836690259309572652444377031063504959264978952146492699181445462271041072160377774913076337086422050784050653568732314005008474224641651652966728409506667290600712481440537559740653823144085770435187074930887451906209324601516673207665875617142949262304062927067785786215769094889789354929781269876797796864739121567988352751154302708725921773586538880788883155374141515582593737342461568450085588239164339684389478884835682059115789686867839207094350449273850218720465845916050245346614807169627618563274848669731143103073124163716697811649374188864790535159072574414058909285671885609641051842489317157974012188584200977645795665788068232625382897038717966486366327385696156584535080981175286102486264737346460537245459144025698080685544283462839491391753287780595248804164354343367976002063891903072458623056349737745747494163402635376189346779879910176125722480063431609635807917088360641487206880617003619731379485910936641510133168891200009554429006419547741131538372095182977148746365135528046186222048101507047724390647307609253818271148176443873036649228082430643702947168785765929816190098327745026938005090869383526062597409591070534424941274561670369745447504401176135823973683164377096498496408330371989093381057904107137449553776997601916742403577500844901710391716051094655189855816418085426990361084635652955014121018038061579957498140190218500648713809168204550120706241849624791023557393550386574508387840152236027316339013055926941419336448488215470938031905784590974833237757975270915806536716955930338625717701672798476116947760228878211904513909205542699868428673597883508787281937185452137769041110115642367429208017803672389370016357396042889231717689149360754385468233028410993273048742192331509466192480899199857579921358306123395041621566746791811281230550496632455801337827478008933656058496337610286590528978293533403889417074188565445529358779229766472091841827212763804294666177732149361959463566076407672562580089491307260870288836246889267341594313391663827747177642665828928111392663101762481166103394225962936741008990169013140336561268805728537446334551630031878719424571876831376324876576744030645636111870411954046424292718190534437456039895664992788118665545063663479349741036979274088736329559135941747537473751029255738918053651611005221820660135527506145221753154062769142818101890235997717878127669837149775985547935239236901031696547074804144018630619625507377387543181662831284885165408152044018441721355423544860841210455657790967627064237243789248076012155654611938398738633380492758474335083337160718180815578002342243140200521625341249863157516948328852521675361698077187368724825667205722024832926624079491135436080136668719922903203729334898321647204111170594420319276340441968999726414494827416342169219121167783647477015458428986933148811468389376062695540866935223202428746306663091819835788050935383845287336298344025188450398671922137743460640163392553375166171671431862008609616409387092842732193957055702136957052853342273210604248127573669417947887371198439120554911012347880051987443089342356609754868872918884073082534859994061580696669005510163635715193864027198119144529710312420145944294882832795454360890828993980723233224247705903739957851507553973005240667352644658732848824044019952194774881834987234174523598636145945829486470876974702655017086149544357609639864364673772986028598756444384907080061527225199875577298757127603135828361204045004299243642561249440726125939286406407337770670347372374549027272254963897393921407576709571884410426539772520179416719800240071862578822023291026441069946405041976858855625437168656647111022339363943459320380631881809660821272167015229037387076668608253033030579698432005014992838902509158987117075682238198007100558056943356186467318162553874643186883367247216277381470349202151227869413930375348927575643322921788783331515232387991774578413910274980789186910253141473378086015028754185356006498434517973309561355292132864396975816842975399895425550900561671334957088755801674977753736518690319072506671947808453993717872647573257562993626237958219758058655056758772668257559484026385245699990636491612670390988550253709330611105310623644135136364362172050777836774406595516393766168344717749333898349087002904919429252818116107399351209586344328694314934123872379270990936325458977240324675739139654375691968298987916758097044100270850499350460740266557973413823935393069824192794759475373201998034547322681808866126558464904932759655590137883137389738620814405587658252039395148552281202492491901738418012434692675124409797454268543365518609116778997511590382255916283891931097397081038623089305610866746919118409464447591446919003046074743555611195786172490029743392943388487446588686095722108336935515044984775311072123825238125042794854002367036311782225456994574061939374795991823383951755510480904117324694228105106260447734093209640838888963616073333101965048232199679224396394116642211036484868237242260755650088546992480398929439958885126101620025869490724996196500277391764644733797417208833499762078959389567704892703156253065832228380453579694501353353930909945573734297609178419595094385050583908101057398978982335141237319945601368487848299535596027754322814417359867648430924880175246903135280359276646073616305058856898199594433958055266443629311922373319122703074641347868008581581538173038372449113730534859216068213538834274479546851843977229925586737170339699471765307089501735778091231673377581713041544879866914174286671160044086674321808767126061220174952607858457024944349319569177701956401000856950156984144586506429824806619172474580107179757578211306865576401333224430329250659105549214635024659986545420180607420077834167264138552697540326657263101300686487028245033800813719304445905366497652111241640784488211248515715270930553931391941229954147462673713739529811653482674474745114223526306695494888617392083125734000434732827480391943541632998603248879381597215993545877704148249331215298329266357428836666068897386676354364892548844922620609911145528038586255766311652312866861734758174600889549496527594768534658021993553723085023906832579332146025130100964108122861302418815583533569036104272371356605184255992383384614240449512703579154463259852501054218174468620101068494965931741618157001934382660895618403410467099221775164724437386388926027646064219559189711832899995487439218709920406393322971392948966898005533107081232827221602419852356080013745917027736098795565104397842363031884703175820723487320558743426515110540682390961792544466536567347392118983900788264785165715261965692854582916363424627604323981374452112350183769070490606495321713400992672171537787872497160597935338195932190542470863339335043704415699882974814616442268303062758347140145866948918806204875302915016267860253654475990440044278460629592725073992863393766288259698022267373053930989374058372263357617299700255090783660886453136317821202635398563340691012159476934367598765862360882535508846223592830376432686721125550179645520346364880814621464444090373265620814786575263564051887456885160273663710818003765779727683976364855568710178739432808107291786448671386464950137369140334431802971953317875802429837746569767920436654896770134940811375739700732615240933572801591842230259110510692753583921389771168952581929730513337234862914438909364240658395035212748083961097652741188095689504424093334947647578342963382982496535927448659940841348024347158248227687535509363553446057109143440085597414289860014229291362514462353380146979477324919994918209805621053574368066902555230542256456244160419755597692650334149547244222881578501175595620875896472791659248314767434445400673808525585996771909574955860498835858497390070885713564164834691753371865098242676944287808427859871210303752520125662996413520110635961787407741535931555009703520657475394506358621722618217660700952975005835533706412020137431642935662882409743924261569102674615236589024682553711805971692225723261369252748581262137741034561821156160778103780648318646935341492263445972421227854455272713309673049444251106473776273246386579672560415418431725132838842723233609011819910331162171198643340085614798017547153857164397919665964504952661256781471214775459072158805647901269052158521769733329192830014685599283696814434256808277184164285244706463072222156117279615483122792085386026838459015245132930326259577816261071899285826830286177467335479541530092493970310666075091471760882596536207507063326308858110434657050319942590716497411430816815507877445051738785147888345911635648076077246881111622662778579780982052230884682396865862831040793293165238409389067443377661325361651618226036448451780298450989858284583362946773221323868957967772690735311695255889753668563969533802416177284502934034026244282156066435894329464747693026979557346692557187556939004264030905056789514606179406801485316435515336559516280248248796226366229908028269269083143711010223201544215955759703143427845264135741712537204874919546126821060249245660978046253048119475752734376843842826260229311279827389227566143521316516719529797177343062205978618172771620619610174572352504155940175503385991307355646287008410878177168866979909402734445793204334500501569307829235548349117061578740327202256969522261842492844157581561085951820943414440129407931333213552869074020362122401842801229510532883194105015606804504646385764263152769358221627068214131308746633034598620562974310437214544055801516609074139371924465838532906738707914279590427878892754947220303756410135059436706907085957286375460688838937155720840428152677729246918614379125711296923697878742980360456149027400077659242770953007213312103635854323066521615801980822077577727812284657104847676952172962520885544282293555662646559763152488031663278170766305655386115250457514027764526760977059552393457697848742140737256944056596463605111086479901139042854138717611856375115643808121605896776569630821420066145445125656443040744920098929364126643124766267332597757563696733876470818236263960172213228603996246962898831229066891519976706563039319152313694350021917005717931159536549776291576205424825766263144227255108406475567850117684118160832762494550397570280843831744551151886968355897140543348891289567077418029446313204294893041085862125077305446349318529245186880371105335239698299426199612008453671624838996954395693606803013333861403408759273816020445864363407930505836383383689928672498620085749839406975679843834325536939771851814478034971940939776794187585357300783947606355976834126330494063908253069440148020518367686436467823006467165344884757301784265936185328399560714964450995668791729497913811601341850458183196090466981995096980403211172204736943079850829278722854107512926106785188105827305589613677234751454571129581005542235232175582592879811827589024399425461073136231832026619797763462492471149942280496448647324166119468647515124183757333350391435522684790023086622359967042919557275092537067447640358276020234745054421051423658111794177521745801718822055330533000530859975886165053818754440243204219428758323304123246354163815732298864950090354553478368851573857375181711239351024933867406567392052733452719508618988754205839635931644979645319193574160755116816550373722934760724484211741100623235064713350386389032176108472056017697711618066880781677403375869357803755720600373874345681907814644431693373886330043751302711850844458777389908102976469720773852706416322769225383642678455285024447917220208080626111587759147272057822336974061052128063073749227075552498472571793943242028293048672215209774383291817613003667417718714264933077552077737239055760033248003478843528252354046098654089608040292635401724525002061886052941070959784686142974286614445244122882511072770477084556879826499833146431703266647527441661405420452208718015852231603209767999175734916535844550352511697894957650103465350361930768994427747804235633424468989489459145817420121140092789030067344085655839098614880448535232660469303978002192078101219135047969404952498136858099319169094313176710578852983558096009204680468834464041362409777015324887743594305416862602547886187730105778541530732466288781079476228477365233278924104567833184279673923527448366725327810206541746495463262575498424840993701816959478759724693052450885678335056314609754232681459499770472514977451093445672203605428665397821052205022257654835397840083308907079943587115713965174928892428707150122240514597579384329238706037414573527144967129641136635067101404198574793355959754759794689218826126543866416837453702742830076708386014635454436259878551248499450531798678843975590193277853380060032839956011971583185522444063111262382843721391283435717682869314548003448437790089150589602894404695637063597524630836866999111980050798579296773712618874229066974455006408314951304618438031263653735590911874713343187049412883476844177225713127765771639911910958525051351583955399919591636308166899448171160820824405656973057107965963958743267683144283699305185603235093060302516598139334175937943829462734047712866054251317327776380009801223653201477650697454348050636568792073302639052219241203642789561901954335038471612760246143116473780864513061996891376923155284124162839845743126501076132138806504015295340467788394256607824665281738003099318103040549140102856163429906704270768185845699716828617769628828350756195748384196124229169985011146701000896363520166319960919692446317606814407328777041737366007748810450241625498566685663617697123984268628318731527517600004879901969147291647555998081717362938492262112065687748746490469171306970060454172879418182317931554227034685206590966303410805980485525148959760489569649451102013431369050943200978924080301717125449263133908125032381295587597462173614051659462340799299001344523639510274329045095353927292629949898878431703799018402539629101795988042451351903819698349055005263933467739536140303935061934873151300044349777163490668606531630531864743313066022370665717551658421582208153737785965841261141042699015591445783367899319697487535407768629389362877173469975154523770448041098805137862512320354031963532406277486659143400610850485474816916648919222302849688014580547419224408533170752018912309202341094954395177286115778753620643695002948434884647309806981211225669902824343241298198573547388998806728741843649175274667189148094252739037470516501864654993775684634655132431935444684235864961610243597368693803999737584360581449868161529585028169839141124801675573201823041669920778313353446388979536065342794098790906670597000143327974803997799698041710173518453812199990739270003368723770293757678627117605364151002471489447103953636312442739758025202408657065858909896069807766090340285289314606232266839218146594107112822501463669099186274106491923193233758223727792421886932749846120387096049174782048334872561062417249017661223374010504053419725897840194349666284171049462578811429323005914058356571674827163785764566052295704370849943065761222539240817223454644452929289745854047119177069301272644770944142133426357487679943701711120273180261563125266468257863199386082841704541570956079092580234189467623883585392766202943499543015353624996901572133350530719911352693617043981240067051563592069051159728737552393781728776400510382097006940386508174338735742096103918205216643644193621070143059341482032019897218625152909971010861205408142808734525068748853060972867871725058150590419738004188466902245437677289985569182089646845590360653211239541167917998025373932694302036624087951653873943542888089047494471051851090767611680588854834098145235063976445414431383217360324314621688704498798232268435625946006884852930241038465496089296586523692474832283871740455393257607796581945811750561646636083946151401981090078396421818709955227125023218011733096693440742015477898202195971933423016684879749840878180968943399589302206574406654772649735693937101187204817292666686537963359825347607281575819246592637618515848526793036674153695854817972621906703141677096062844105899598267449552764222543623062245020060045628044211583688456370154257957303220812400588751873579432441162341619994901086133401395154133528594599513341339324598064375462040992584292632123944037642833893978416838905585554612910331425881974424989209700418826271667599824689013405837418012611620497551047705804044002842575067033529188647255766334267562600171567662284714364668939381778860583620400762442213018137958996194579177291917488307981034432355650601876687188327492733125959330096621814175866377912077656725614179038351944186969852677671211483545435637157791515410359661402679655765299067467299753711555665225145270720122402064275567225824723232419923877620295062377133941499429710390621799744884146915530368071175926070342058196239830940833482723481837241688443661798433154474299702748223814742026211817015223880264571451610293319732723936910113091171012255542641798176944690900959827395569960271690256051474730817004202963433441730514682377830562571392615978234386103597705705674555269967263219413822649896199677697196695180585690109000257690307339947770631205882262964870640358555140021959874283345333039924900630443007499470123727226299266542631125880988716770120331438944201596580260916944030061678946563126251110288524728377131160845968955456519091926359578406740362099405673196317071318412498733567450622374771073261086614422341806917856368877166315280299628706830691850290575190076088941684583414011583232113783544972172579905406351132575930246629031855954139261137855907720049447752771175652007529587683100514062306034537353271688597262091086773052131744845292378908992045264816812177059283929571110941921269901266022387333693641484853785389876613357506196393543444040095006562244635074689928351058870613415015078496245972646527328286768536985709094994397585857291825448435735132647943652661057285084995979959672072700102699827879593528204263851659221434289994530810151651362164612128518138473307745114505891671569177734994158411954270635859894758870450565680639424534464371076723081668982881596085784635979236836378273600664152039767485677644694095193669080453049538426473744578671949298533111159726049977563804819173191805624869645993880323383289296327413660262293337613326319224995657911552576658704706166597909874003727875978785617133092571475552504902933690667606803009225192604859289450744886637242720641525567831810100936418101205313524770584298604636335385193014356866287286961477061790307750052645256679537969448618105214543590589831317309953381180432175021093069457190478889503405471733918429127188432908408930640266730080896049603129707243116262939347683465287281121645723584489419914082184778832224824787149232454316509844662545872024843302749895512477877683689505071526431276705886695481453910183383856930365416999075666084471111773065591132931514520963653692961513220956389294446719991592613082163978910363014372733899205229280691853930846535476499790123281043023770657710819142377696347606478553865306492220690832828737852772694917514900286336254496645079663632019737962502727093722475579285657278922703492994398775791822792259932304216277073206228420318835815704520942564553129382962398116132819734044852767798407938247759719772854460215837255964629864713184122895580764616258443868346176134561526515042959778718210110817193860678897171832460758469909003540647513990355161604212491712621965962247103441456884217245142572773788635164453699744502691375722765107708244028586789333291632092651050042161376082299713102422297506677823003921955759520308981847131471904484317196945705731685895751229467440860766694909550316036620535885962170024375769737838877543065013630802195752286135492308405949304882795570390473048666692431886334655322835455398626634829158767258503119347097689429411469787467179043907622772632295068486938951414745078055437475216580306656436970898137762885800164573838340165186735336386066320191840836573126952415805962982739446859937628411351054804844803610277632860328681627788462046252518834091381397105558715352205601307673712149352357709828944873963648631771337746677481423193917282290935650322496692857577239684575100112691647518988468042684408243194615756758279342535765824761118705809252706157116194079238306374043455503455657968817494028925700952016142569953034909253022686625153407720691867360348799871906320281690505612005137776938478676018557936048451712677997110165846695736710281721589674574466613992286141326305488160221992693630672925542923611667909189569645407901091148304591129564066796660877139526692629209848551149570443907376186626500885614488324848642608046625674594967166460524635434229974004895672121544013277892861314979973877602682263958813312554297848886049128521410668252984034345616138145350362365998478886145006972132748014198569419462882403155272535048349070048584669157287415192214402325757891280920094720901058111506294489106770547677847538924948589873188420796401202522218739739540577802615084574286131844783648975367354973607596761778676260452975158714737797839177364188459578508584186278935362774961380429697419434468798455423845001235824912008554595097522140199355114253682069307633047125343225637855653462473546413420382085918831621442564426463930517878669870961777212634575325382751582500152122638922137037079921496784994898972085232862706574512266807424265866091220255481191406362818306614208529622588722827426078598067387940866400959124295803191533942869490523099200811801751094727407629717034154850588034712810432443870660758871715179836452979963768715496593868743312995118791424546783580369671744278595096542132828298553016168573571123764497969086247334160705566266676638402787602436172033194969941993528501068914614749620631705021340502329114946329618719221910046610583590850966324231554022265251236685063918269142175830170781417230312912069302604859667775734711909209523116429131094137590420505890488345129174646049942839715752434048814550514886800214796689425720591315537240463518689730711119152465009608876358712177846402064105143513648740311129503135102952423465120914451692116646769693476955347371113453098012070228818600298709440178736428291921360484194712853725963055572550102765281742614084850182637589706598205662760886968456174099040062674725908534626765370099780055907917655847039703332367892135348950344587072579213198303593561498997029165305297773086945230155847570827519766922185419831535027787275406795737463326249692902906831289792853297355327326946127117816396510151588999061167318412795413849746554578731098864188742948778092377019441053312366273211911556947633622285134798434538847449810545062120143696846958189473650866899773137059124794502525489837322656629944009447040935503493715268261010822418244453469572371534330163991557934239410277472722181347888673880099029647688244304546851001111634710718996128476808670120949377893655543138062171607569412624015739032133766573109340426161657660039214737276792621078582816199513171564244754045085636528239414997437248279274908482659674678846495197003377177686006903479582407865901782242737235900974811316438813592595200085993728341658784313660033690114939372879646782515658060539964280641947915378451503959722051908021551006918575658931408031871755007884934791988981684211770195135320768670111263447469201592222529241105161495340216100824185471267487206980265516794345336639684403341341940242182715152151004363690130635055292560164808175030302209520314643395020948511798137696463542617650463027281851660057996348415733282570645263843133709530791907028459328844254671395649536265889860027673863817124941771014035264973516661921267823307516328358850376392540534235821949798889182329826922242812535284469013694490651320281011826577854070614734792101868330552912132387569060489976889774540682378831318406457029619578667567643566397968356434732135900816827553497797892297698877347889899941791496493215834630554606165354670494007708852966902729685098403382889091199137628999091276331575984645672695374898627031190227984500821700179760230669355924744824082689779665616801634453802739320064363231282951186127291085160974802139527295671006750556411933819197987733199799346447183875432417602701790513909209750241060085551954244132223331795798236366642211039883441275620429848489005678491634502041020604886172352229238617474089197824288932582426736331419614616389923379662363174399059813887146004826873042295220979301821100315544798584903642067449312128579208054250992280325374399195463380955531337081495986574808081770667322028825580211616438086198062288620317028713114172149459623811132644847070911332918219755677868916879260703626158064580027206564101726097538426989598481439527323742587778012379916422051210252858252280973786468187051656473702270574583549454913713363316231467323821688082764399668657318203950572304484408809937088121788647408442616179883357365154218004855821415351849725430455710046813200324130625556086889783631379550262021514879376642502968347020908685278331918706179057819277599227124609355141991613437376565375774553797121694584399677488620844936234937538830494770337712401176658560178645964262161775355696590354172989890935745511498486288819577179663133155288620085249527672215254872212757230708139430548773422649813445456627140470141742181561772101114111234646047275628286064622903616512178759172595978401605185157204828102863029269784084421297640067844962713496432743293168494486137624701117740740835784575923325067390603837906719077231369305152754722095491829728823322856678852980808532932591649089359561554981604419521744631265645397169838082023097874922169309034226947009992891905196046675132893925545618293007133971525813306014867317876190975365096754152342494548163029891527360397180769164508204985959644008357456042128328710419288489480053697889282461733805532785135207497031300252073364159821619106916163386857522531575516017998952490478565993406292375729212934025449710373074087053467874432123189713430206706648146201691425704523597186123432816367461966189364476690361668875782987177036311994463102819108703145590089931154912085052176130412697380664468666155493012859407966194788787930192965851917059428580247161710813265721288388757689601448853287051156090431571963222483895034324992220653921560948299121242199632774111845038292233090828912863725863498347733023849560284750586136447621756421826582096663757140594844772136012828723472414445857347512823337187793923467098174258708536579048368491508370342225035452025797526552774183554561850831881369979092652368836666621231223558497500880198530373491913646220651919804057447464681867506528082855486512307295713093910012564195244604654085470118353577716548537000590496564654396268913241205393938741075173194319342751076823930444655156764635040472902674702762242417479182713826072129625071338422236748135640493752940602676568569159061532126973081785355267073288954014729692772032575086412294628550794004038292031537414587500129463083491663691395186795080876936019541484505724177795622932417188085280575468406293319785501216862019208891039283655717165075729709046298279595887099497874357087091988676134489600204197439148803986352803376646736666228101901014272943367067895430385477897094631917634356834541359944411840401956809765722358891895313174904929250594318906960003104294132692618887569802572873097380765500856160386780703043782812019470505021136219590772092774184365204197892710986494472015525575942888755924368318871500450250177351515237183855134406988793711632067921537158568113058848261804862540699462676885560552247130103966214866364965647078666488245451367481536085800560814650590455135701135574975841762681174984544748848927779248428815813537280431273413036574585288159935885006437852105110119475339064890801682976999581549192032894373362244511729513322358944895651973335091555814535218723426790708963737186414158753784119026390481389479530918890564676104014378944148165554591390555777373040671646286483507738397896917236756611007219591230024175118306559483901794265487105491313854553282340154603228111738803916706938397176907852187643288119910567337582024745528562486104253536508707604915766894848638886887964147393988888235965173913950234095774909318210966671746504554695358988132274973207450579907782585616036367093378418676654087494808827905346704190916050547776429728899762077632113631280281472712098123763653024052923054070902353880820513030914767080370262676454659220286197694801003718134527628219659892233686101354685109171293207944843089057796583946880172967106605050922691105681311334717399503502287545494087925087559654348104550686496470483109169300805507348926773836824134849061804300362193020875051097270764866707506620759393338643048893161880219611975348582867493063090841110528673988142538948073822407866344056097709508985887600317651707914893734432569808579583101286932847498838451827610051863053018227422614531579803941924777974991059749838692817705108161286125198698101198923990052242452451506610453249131940910841977131930369333291474682693663869030950902353770055970121424667564054249574138382292558537811467156517223543041469355733613349332623694613918611095861966515853165412680501566708288115871166432042930507774881706839639352919975473981860736441948023194278462568757503640447995636842186558824389834924928337874309588248594270916873771729534841141932494789301304795951912694748633387856255819952877921157226315907775896435153865765967239766937625994547100657046372625005196543128048767856846148854365723385436215729513415036549833791155289717000219029009434286490698531154908363957730964732052013192793530648895050720440655803203973966358863743819174645115128448142552800013433572601345438996480373868571931729103657178949523612084563098369467758704931890093983046751590490472686478716809919809885524790125383962509733516948561842966675250110808291597280214055326400404488852033770973618335633088469141568896645845660672434492605955537644796846656506057141081110070540988423519817203014304500409520408074330637989757075584204457021900804699273853924492138233587782981323504421743816763358321071560335194051007196133519064369722834276471411148430952231393053065682470719199140217797689267686507792198169685648240085065421977020791350223833320618633789294927405372076103498342965437125160241778239929456277596683775080139238202036861105271192136086643549875999316030374483779107153290695730589304135987710837290338382973687834906423064554681285954654773277362272351450505171599912604459094459575239303925699056196519626541782238216804877298294692597743565393048535049485675899655688444097991663133009708607153961057089850449852399147689928805046712616509234283445803537141710631696762488999724911702873936034599032285045627950323492535287650444607824412675423666248227076258560159823330434340580006290620755052248951342039142996783280330662368221230562502061061008730386144918242269952095065626991818559349969584825883638597435413690601163669976691953715397360914311966289967458348830278838248351707057032335316588340901051627281307784419956439762827375518984048030890111470153785031019137543653722101188115742114712161405203841659631373250393672172744052288121763453209074462379608483822024946920823713103038261733675130631549612384311016814727358405392937363365923097962869137783434869896153134032842875349818611317911976340041294203409605956798444338106878964852690569776476247879906766991129794680797187189981544879860630321229953401162161540548085214087861928537771886614931280383272058411301968890859420040301401246956481301416103070794070551430128286197124972459976900345690024994827573865059272326875466203415991543676193206982224929726417003237878513026932498244891806645889181601117042459949628139269237135609602688705450439959903257063336929986158811148784865558310736701383875728702377479981546707785227636307758497904378506730462239561313740394300255578952741971457332080818229294951198453858191091263535646636346552198696968742264599144298380253369852811131151718767146159820129501850601445651247615488936108989113425739865577727482777133621445658208323995280515439685214349923614577991114109697093192454368391046598251776022382721377989229016515630533333571903102025027008820007560171801940213328360054355879773169176239964634126879574311253988895394971497053305055116392931879344404089743081698948202017221767589917956296453364268840450727297654483933271210049153980086532808233516278239123667057141828140266297219367437016361881503012926748363454533004374608919171617917290713978073084164721100220457712824013346425423306687274467649102236181470099848723869504520640668012710201605862660412750563319225515305638914460054557745582487514862261656304265858511602877151403517941651161203940966002013215849582058813709490098194330243109277394171290451846965821897041377902442803763016924280033047292082810769416382688346342782712771636790054625382588134354834876055045722150924931117344935605391692400716274073265570116026164355850836717508405404491815502428781823063015807042044646892212250614138859984883859953195263207369389947648728627975479068623730267459542180537861722609047321527218317424057581851816678313488477461449527924482560120524151906453396432697584204020980968100861059486110434009606960011799906142916634122688358563297255736400746563172203742014300801084121967276592033583275666471960735640285632852845942296184180905223184826497192643419609950720072576593278571697735445530906022881298622769604468706751608339875353828784262453362354925218778550658133562597568165066851935556275729773306618511052764263507691885787396550361590635358135203543300642356723900122537245225838102506055449587442105518243960704852443299386617605722926374491436351678862776205918017543584500788263671945823838183881705538506461521591450261474924024047705927540244479596545916963487917177488911099300011061036903503542822809274113921645190014139375156947339557106126394532171485585974709586078526663597098818753027970247464276290962038871589729205296370844378062619036058636786740135380858134202853127351073880213392932779621807683758131508033969715263173896536568787579023859325435838121483985408816307090604965669371906353970142097414551150243408081248499453949018937649298843477350676264239495307428483985760651134949701056856748670314961044326067262352129937641190335573640368022253911776070895360684484647543696178803755145739016859737983648879421669467900898995943512560789763533031049059473655486819392751786083921389714888961812991564932911338920436557398551156738569861735996462963767813456388934496084812945689996645219619067196716716199123923181839015389938482067935852137716728183359856711344072322027891433419789597996497205857928288957113016470946401843432535390458638250610720903304881803537278675332640952421653786080978917464959829565185551894023697856123513941202483793715211411037612380774528110489633993196042310426962234216747114239236048913919685068894704599959573571239127419938906290680129559150749209456525713969775368471334661119017235625441897384963321826418057369334071456338033082464355256894138155727326712400560101525198034629060169865914551198386716688603192365340345390365199296206488676439582068213651335753930330256191807910938385672995287874465862217708805410414231017823208914324322574245765877958215702905522055190353128702954176492347668376383579575545547832084584716593525720540457739365136639402815529602511382213812685730186762589036680172186427580735690694735364030255487915902350028942251418712287462396087718934857742293904054706723442610898347180079820321985002624862216801807023338965920952384946522139690669109861749987502046750393516503731024202092169631303469195146992785690753139925273327069376071771285106328565247498191917910537086039159423457291936818849122121472091370147457167636306365089075693998439542050532226410112707517337457358070019852410836805646697568725790834404137501350294377346933431188067865390744148480442855437546954611107390906523147556201962363691341415589051130341814853849517244116897092192160966896585316393174731758621556214546483186969729706857928749889633209715671705840178102672166319525184162062632809721722994043917745829788699702452466203700326998479826217357662504430752773352299320255823302093308901406187697111472200324741738367469462605518144316326024129004398332449006824508451897216526561799209183807405726555380142231474293245179480190044906842057710950072069195229073878672811796542183424662538144347793245070701099987109244467933043209694701887358734858312175011874485030103649962759354980413584333273944107300345531510979239283157052249886540194622741907702864147765222358292798276887237538821286780649793975278764375070683286433933411399871190896001385784647293819994568420906387172255258427371379535721760139464442862246129521527522952156222183417836169769215844227307141651531556843977586033121347967197455350321156626343954551765550858183073454468384844666591336171842732858665979091474385566384335201181912226774161025115038529127815837684293381942030594161355627003698801710057921512749751505674753901195145701300519350848201733882223851857701226312561798831232569901310981351269701275778970303064198962680140294556058954861083619688521614415376830372414341575048219892686396196067653654234289152096748580893386739172096033463943907813203151428635658035287665790528570324326564387555824391609027431824001626906788435536330254386596916086224850182527117371649923498614596504205111894789993011495952141987182747606817842489764441740839212215477762462830438809127291277789877216815242361328891961349459984712164278004040912885710654280840256756996113524683379243392989216316307755300690801071888703518927564378247881240980298343460299511556858761526945908869304645154445293183905706138112850100116258878151603037268156919961126158445980606890851995574703166956764382656331714273574723722989777368092567499678682272664376520697165569018363977116088039143672059963901572558663217099433146728787031182789152705457593108110512337397666500070579084885096521051399530316954063258037106120162599376281054992387271190144028081753762657460109453917004190320848205835102688590339178378846047731607771444579032353099042873593139568830780287040157675337204722827593468300364381560634980671722482109144420044026312939705158840624221633180474405669123623613300474197137835343252368360196710146363697518435956885114304318773538280196398095654473786195875728468694150797451703978486179300254636646424419961462252738702280511342246799602365296355063549053397167152131146061554901349830152714541154712804011705633645598957309441523935823671619538236193358579728399256623879745206580237228969765892841494126584863152430624770898525030451722447119978494665933531744318268855778403120917607844584198687765442474052080514655738454358500580625259493274183866873716093272654486709105918839460094264082360650920261573113445334223949002311204952552428389388981138741706003148238232460575381099534952166839261641093989180744576555997222036603112935339517643128480977499621937863612870052983486660909754226584747303141350753955632461617133299459308217442892937895014175715322725118575794137144874485241588560551970258768999369272593667274312188560496781112633991706965439746615698517218207411647289895555451833502454954067125759221141321494893916786991182944524784416199244505661844899641291886000631048799927553095651814760474893649093670984521152589435703092998102914517821287597852758561671155205187668544202052390447638630394974358492035815911804741525515793640632459457426916105183947423411591582164634241379426026816012196880130682084034756679644482222868589073997435155581994064590970862049865236868241486750515107274669886873001721672626099424523901861390558338238461678369516896563730769287323321177505767712828021195081135691320248085008680546272297961643827304450510244733627411084706209829052824989676196728969907549839890195260003773596268854835715166995555288362975829347831413497849644245133057864291803407237889016254084383350527749024168561794582385451402751972402838109768680223391245528094024363444207008130065039020084204202592912120434639201792412435128815906835736105594128711317765282428193260092288968531801105053750838639764217703931531597455707471919722545508909730082372250271693946681996133952476832262691370001497786692864271102669399721501563886722144518266975711962367706902147476024891427909356697451208582793600766672303187161396253910909081058291162134181037257862788151440862925837527139577540798894153481556801480327627627970825910089451844878147766318759011804866853432247641277668817243906099341110722708433454390060674487271410967175020375869098620164055338093918507927528337566441873179630509803206666365917782471489167576231907885924704718634567175014403210554901508659217244626497934050252617351591664656493125818268064404578715964834216478007965444870998685664518493851103090147451722539869906908374470417687978532148495431355379569341955592560768272284491792763192754898682829624927347364676064232264616340236174403922185501384975100984131188324205939112778461092559657122920134730922725068394998730063706176695095779649921136527202534060963999787425544154367829142681242775919109491379745372224291152187945347649590913659567030614571482810376294421528183518118799444034102085674896782648396868975352598170973566326839275718974839848961151778857748930483315810349846809839391845043794551313169695342944234978671258517406399868028493700734945689387682692443684550864021722308265480332512347139153922430743424915134150458692599262131781586016105951606475637717988915465260170152350812881767778290877764311915773304050311718432971134886044750883745184831388746539788923729479594485335112828493742825631688309203790361648770802058709614741758285436002112748978761582456700978980823394950351136383665032398371291098320588651553868058500066381060812538463229887404144842661191077556217809417634566128151824696103846019485725117972538939463833576694444699433327154989148979060539692694257499637881936949065527342831258310305481215558137769249279188596593106255618206416012651804160990460898807785612097857177863668903152066809408651672014309534236158674147127706544660223802541317702330368401434140447019832688677504447565132074485253349855277222631090891287189670256837410041230506036401680619115875766923516089689869850284524130720312456584847067393083970096268001071086379967843118052670810394562685365379169703210903906469075066714305136739932072575675731377193898197534318562465972979968331411990800398212694405845116735634545132096138461984146451840410914159777146021991070292254107176422521132057277891182955959024786890824190510555711248221286644506537271993777155700856910849200105027116602336966357310724896885216503020775504846871296367330633535782393357968075368210872531149434752335298895275951424710199683251331692646947273879600896417598713495160795254162387067596687822369843520155368645738350718971884207638440679282533165479598579219328725018591554449036379190395081182482973350935610490375213670128075609235501703799206663347934762037214421116398651856099254192592746454530887487535079622311041115659148055191249610042718197546641715666093895356318400440816599225125762455046482612131787733420315353902294038330459676400173439285380732783711219280121708551063039333591170616249759332970020721124790800861406779160962147324281319982024956761596179633336927634252182546246679390966277816919446209434286540556900699612390657023196635628630437996601731238740004521573738660664662744037522329586266113217765546300279175728388862336170524626471226521806754672841395009972103531755711918660182926241268510805587164386822733904740334342621147186402105185766793319346751228049947942830129826652883994097507018944136609524182360756330438653970293268722218106400778998761520796412823019995580874922431555975314552348788551490504744091163001480636417474841278627438095673184244514065600052791001662282789065958278040140274016362420494902257420213158441333858247557604782631163814065961429062877968689305780803528812511657003389407999538064499157428326509965892844109845335555435344268607051594589751241256174274953028376014677587677231381655214971661926328683058766124394843521504192238316762059792167199344876029221248347999162388229210768751595950729215391457765845352115494996146592889219775385767810025408347361203824138085105531712360513045116578309802102071034530750511362585890293625534076364976963002844331391582627753453092713582287687101375822354598457747914349011445919793471017343616466054024472439579166531422584035099382136139697002737071842578098465323353154962045930171146171196640363069382021570041947213376389304941001448861443069817010040352613795768712972695337347997319514114492604694616696574694232875501437872191979355419307671708384699615590391008906585179677539182736888023822152991804744147491594991964804605429970327799128392512670906567650051803593122270156864911849644384591513502005000339850598558266400376391823077898936144173868097916045995785870319736821896666377771165977860505782092595308466802215537896461094199176267415238832495236054881254397214419664273907899986486133446597245579087738819302272946266719632153688755013775146877026725152937218590979554629354119895190607953269902874263775281358308802624067833584088731538578214071118029001054814359823986645335850603255670657066319836224855647044045561162630652912141193728562344150816807634804694662363061056495862212477069642079790314219067822432059590715991078253853077847297580653706072717564888462887231404184569223923014488132594138403666598894520758164713830123020496119298012327655456697475534207229931644198097177036717837458244867765196430916343049150677973939155628713278990718328783508826002222180629884135341275025943530564440700941868283148794979015621157970086518895938690586419244754296072649523528700412271377905281328420882232145910713246753576376264962037772031818831310007838382492382561640917477873548592177297964333446991168928390675845687626286503035368028300173931921723546264090196064084520334546237392669565805595283163898830118989862781034910335428208849353565613990211437628163688074571320015042316692443468162061311401015886159532122168352674208992242211644892160841869557673952914686512945538046888167689326711875823174914598979753187808040911167372224737957125139521489943086089389874413970166725607635942956666906844818478006174786675706876764199894032395915065000250072352952344614235948661406979774883861208025932274244450671540952493572342301894856583156652192944664114191539409500987344916440805600223638015802614306888239175737851026302611411090039590714818426483808548326814383917736339882858699375812016030542098569246532004057024308989904356898570876461158557171544081753625426050852325714527554931910649636923977666658709823895110869253569039741070336039013976661370730000867977176503916259248430940439769581421677191665883051600191070358340243356877170275023133703134936247838136264599803356578472021298728214614672552665103038435223572496925413962933113847314588942053682552566291030926740375072356063245959364952624150592953400940957268593922139242864527485365330698749167388585087562106776339347011254405865472381816783196377456533000682600608677780404552886955013466599114256101710379412421274697347912789378491663533767443238165843093607793854493832518766514332911193209499194176747689756380327560540327072625982644786498866345452586702630665521146571014477668000105404686425801396920219373875229561488024412743815749850316971255925573685941171315420732366572902291154578960404451324349614090573457298744318879704445001653973969800583207782387916947906580216264981407680938700000466014940190062137643147824511195698929479036106409341808760262012452551129500265097040212703396025845447411319225749217975004298005817457946815716417543102948847916567035351972915633965894426985519853203756360804675361748790316121498529855816672464312793406780704889777637265568947145077180944917321245628180916924670778773938481055326381349740727087761245047381845449028681376916704106499550303901495319419413380061108773088341178029801828585087858307299151181465140646419795185361340333381958334123769956915174347557541696513249603493240457334667896034041640697341944856507737087162683924912242343359390006462482452930461325628308836139119283155886261611390367839386860988970391814248571670318768642138977087307237650676936351072016431373960250792700370653726132449297738014129933129756358718196034052990105423391379385155158769748842108740843368077028439647213887286699534801102448902741835816807606282695326932185045129566546886235167568482773112261176001368689076384280228250114043540987724152305203417265392471459930463429510042562163714299701589513021585951711111847892830139553060719561028479393774673086105049512760048934830821675341590511421805450947239875599674593960040107794479799697589415984761339272616901821324240610776444651853852237201398485824645849403809589660756894281288160098435696075499082061025066093058946996577126405565713374902440683854006890927876538138345620032575543696292494203930104738112509682796775483244609608035048158743776913437300089273538093001580899315299604677767034781778930027144178489985883479749731827071993436563058511124540850006819725169393778670533960548234366502475634852968429769686010678060075858820489563954990473869157219275318525624939252111777532150869120499672500764035704641377614614101139303468673664152704595252900113927090336550665363495665396289968211787342019977281731518960238097454551813049867012381637609914947185005528505678697090709513459078638027974250383133562385422139656621209179707362637324002986040304208351164982138533997853786925526084797332039828310787498474629818772161973007683566366549481389713355267035098700073864566052567164021514525663964795692236404051695155725659019592198713223098082713483354525015104990298876939744983241132553225683192962457476871099024623532154663234844426398996428264369956451841753868286842764731350951034960790895038144553100780099790717426713832549392342947428797965436101197504762906150606917823101277308248669471299901818203008993810843861194716574569643362536814487347185948076596975711385313753069119807811455334352133038506419634912088429207174948538772868063314187774834053793673439183109754967650483961710563529974190594573870027847000176096150324601901537101601052928698340771610006509067512311576785869537014478000885750480167285882603753344989551226433432602585773574286995715359852085684553461693049513013597338492355909791578764651365106322652030461367608778130026076335642709127886818773034948879929933803160702855413689304306239794165396653686000054591384849888715054780802945895302978601387958683836851815241111806726149722869287100059038287584079056739088639278961766942695134585225783295273858069600631743022825090263923265471758208891074236790673041399059666649045030093680961880416124136693564794990844951328507341320958211790419428918595742614901743641628966880624193827827441949350460220025290980363296985545634489857049808097688441131315208184711936385877631870309544326983813998578657435563967798922606143052216007633959188727663851323053089304058140880745602876254360098076363670574072631423797637566141729997412531073511308762865152072565749714755675387274892145287571164570284551562774105852260509124279864433677543899355567397693719614049342509917986151410127236705685374228093638379760858401381480410417470747474947699545127127895476732284586944331395384551520128065882649193183486452801751150816323451232468285017683042490458807512586069782619903496591244802530746547380119921498385613806089248757763625217840065928977587306070279770666448769621131550070019590011662070473058269783340689752173008444310031719184253985879221788997842298401480985214044359667533269625731700242332691678278375925829831683025078516243931876276632767861106629852486338897020137772459324320547348962391762337768089788912746262818798186688595244465611053720837714621064300195937550704663751973039351068386104287414519581060430561667321689974668547430193310405045266722398375853835731272149741677112847737726236765033571631611220647551808568306571284199577452364507226853278152956385091245851773862959940185240815724916101468506204617933141875935891725019796412806539647784635106781726505957972986264746658138196831190265753875837245264586031333072231164396452141221744845407042094221261384133417893930385442640467880860161634497434407052303477219538208614195329766531536594488245881586397800823835676489210679721399623723439043191995085670371800686968497629231236044357237514294318412076748348611627407053251115967591245887328113653699526095075850362549433646430246995903485714075049250757358942576097651892373247339973765424454959458616957398017349508584411864297945819492291565824011940148398908461845442125186069062394265979064073580008121950941010494272126776089353015751668447527247582967898071178077758860060849480499442616606960667581683033199161069318715940053040740277058520066748050664169815566666150230013093475361388421948752976167628273874305496063726080676779978118146605150805920720652894487078400877864750934159762554265480805870696362316799875128231251717173272911031507890389664472812702633286185337427685327292233015561712422442852688720980156606675802668052017124091562850324830528710465063904569993226246595891799070753676218783184875261624332615299008262457804101754608575976530046742921766033332218779379285019470689619168064114274181143855151683084330682851499338901359560463625828330650650261825825059502710681008325824067457487431058026535862075073070769629972633728922230609644239683362205251794497835496549109051639135421604320152605827340540372495915993991009533348386960600569144799180551525389271868407063437280230475194525751566914103624094292312500812225163762954719033991874706417077578618902738268199640182621903670252928248625542920113260709306503051285050806887536721908095480589879731369485403065102657899166214355833564428828874210980768863465027192035464309249034375971415584290359986922116072105543275032241666151054007087657384256337181123650096276680370613792497804381330726220282172116702027676401878367189641737445224104643491436283494912049779353089234045197200045101222914497996638284831600955842544366469806383321100359636774344397649243707786395193658230172439848826385828836406839565253064649831976625495686440531173274228086430255637396146141323224216536998980535290593731229635014226533773753361348654107792331259630952020189863482805785683910708407784479985415087749048080541056080834974107301914001408887659865673973109669694886027244385948683022070963899934797383472951948367419439228232440339214987718506145213268794269978215326263063714516815715137730084498558867184877070859863436814058357569309682949611875552617502916209991073791266210521134603099185426700691988830534718108240385283553236732310075160119056148734865442208715681792846591158071509619959541188129803994725241984472763900675768584667669506059505136558330466468908124135305318794176865999866424202262741106746635224509731955507812097951057958947568389982607610627558583075448353088246237564680755334033173130259844292174954645537448580519801977235455525569030634076279505703768722873363096262162746594523050655434930705215372801946141552707568924684780180289424968998404255041696292063176287192734480658143581783836686671029140316012043280343021032135014302993284357643936892177836399826255936765888854658504742177064351528768563361160081973536078193917648207995569678819499887215145315515127260642504547990492172159038030927914674151726036858135686004258307765154462950512133300310429637351322145652268750162577956294413628254550208794746896699259969573386216779895746540488060484339718816803944095744449384978455612385206281651621594183854423523322776933506204059456395305119287670876832266190590496743551413140523763040834521721157758443367833778528831265071261316779672305715074105322185278463251041844664561217725872585725319215377750436597131126733231006667393656998914549927951132095026690818220553892726813710771372827267836278829919151354743712566521842098287563438998514807875725620828067960376445326422860390939762309248685854918870127730754896592419982016404428826207877824605589608462201677407259022129566678286249051301682782322854746527140899683153369851704580498209987355247815774762570033211365511180029992654507472366535300309679435384687152082597014488699254605819370429262346261751396918719963583383538829253850938449159120502662413525295421554100739599102833062637896045242831813298191443488756514510243147956676783166132006728298657863667193009077141319619493413279905048494468330223008321097851117496978977578191963747186507883320166539344508339133072599722544983625344064936781591414454133625288987233500407741692423639921415268449964194632247125899771293666515506607119220538370585948523424050939457900956270825976327173766606141002415944390820203889686218458177346186513795554113527272780704132083196668983474803311175580554019345283630308464793339742520715838443206731600981102308615007058141075772105645529690345173487529776764024880560696593156567116163186749642859691968509416786921417309023866777388434923203349318776667122513196226106192139904949333680010540539668380222607616245714154538611997002418877440087410359852169518485035555203640521866832713250261205272215232210276877268958941623774095170797466707539371934627624292122383839124741935659421061362206212965849277775098527278344622402686464627930231467089347906058685052880620820744284389853735804707695892444715463825857033552819949177339535916047125217782507843331577123757905787018320539708017299351663976673130910761147977483441431233665454421808163457324785945486660956053041551176493156798363058463844497757238557329117990482431164510214763645905037158865536781628626239823575931101109407439272710614986434560690079483233891203416267773974042175170518603913689149099720865304104763004455400816457478721057461342236302121719557245389394216390660882635857311907942745858885877368468110136130692558857096224413742178773212475042450117759521428106099652817367373311927799899707758037247142010990679436223279478266855786683700112805066156692992392172325720677283785368891609240834867308168104189934537593721880929005582309372806463594559691660141976886558816123075852918741605401875202375954917567439977397189432357401423553235224457554919034499309302796029956679779863422772955281315733492270473614294329648845880831642843852841341976584726358396982675684416947868143250114590932523209895080205548415393462692459555985821600505720777999378718566188500611204682386019710060746631058983346766988320810462984697982245807673480570566358524224609906860800012585567551870587929941760638333145141676002554768973323871826305791184761775615853375294842772450092622115468451616924626897921098299926718072092939813979430868929766928418650454482099870796389677909001167189832415195341066287461656130267539535335588640135995194347099898370548502845596992872784962794903287476593721775634328001902742954373331065078883496500868152196371549158381801741434234072924898443111357107385209875829943135802368198860348885927255683197897442383104208364070424642250027895491788291746650064017368420393112020043106860144348566021423562725140603376401321248093718534690764961332621376606790854308117902642207291938835105920267913154321873732783218090043503325908633549509011569174549107892206818937447688933669089975682447472418381076256095783040544156222419694683140825075975606453806495564341120551616553260250594405455412793023681346207950581730708575575809541590620709928552757551466885099449628104364106604633521572642592325942274631859009922419574851213275217099677634652024163866410126086271393182547976381544650522616612997613137870080462376476085003177008955557457003417851667211741389322910026035925304910076513912791037188228617421205230193323086227789719149429301513779762111730202365917753239138887980272173212077366230056541880163450226270170138671750431016101441586476827677190780822572479425450446424647248765787300363056916349494126242096709087051740820082528229504847261475721044605848434639390141829094309201393236657616396632927731032314861226492521481405150101966064488750935001901155000618234752818489696660783541189050250233327002161626380901742480566905519073561811616501744927645716149109461022095190070837062525797078678715419440817557873217685893654971775895897095051655883958672208658571951552178146134344845117694076512131757944702800451468147901957680629444485482144834786692971807650476327283753496887464084489304844099952270766708315273359940336375221436711550428022578379021588333922556406125556500883832177898968951466737808761411207254622107283228086009137560404836766620771953308201577091678227911909824794410841487113587392615324660816703143683950907286399288723831831409133977169070468167730799142855690152578145515141596681493873026770355189354658133736545741726343530854388245618668144673258535100330787229332480288633764419735281961838057791219414911473770804629815623311254902789270870237884053526799398104968495659253177472973822942269846809083233621124865087956606276655622513495012454768490442701971809386785607965671983036240842735221640996617658684063027037756481889218528324273525896508743082454665599008938331786352761830776849391595187436739185879188770996151492244580392543134320933432598906197674624626159654278593897019348638647987765163812984903007240654625557290376963348848353043921216125175797032522138543444789234173415824485791634178639976881771987248805552403668870142137826773326076167514840617098260267756247245942151717685827158688104400338176901851411261054336689800370356159836329980757386382036719120927186632040563605027905756937182366694701642787292880346246298178552996320905059663036067264690565905203894818731181807492526710501344153918634925071965947071270669500847988058667079231629949286734267040647670921630768118013863847476695193968022756415096654491045644873932676298954690626135752044699168990023954537431469397645671061996621465377708130380063329126978924374283000894669501203270162064830391893776999595827197565730853268546164938008084818419632344745341104059845845633911110585607015372903219439534026212150501701801417175986493574133847674640610815633567429906946270898282500634407745367345549861148972034218287591149434310353642578111773385563770428171188583276507566672065309906691124112747588298439416584139546306834482759823675615758605340340576524245338209223432356905777966840801639788303184463684672364478570639012170604794059365880907799868305514875055829134901142477518320626054048858127869244766878858181073697186005775348609673908718973052160049011498149589862614854396274614644435291908664275387862574134511351581148291290582136428681299527351785146035153551402278784095087461358180018131889946669606051022273273904958688930193956938164883457417481859910661891057282124144256368331844083163984748525232438978998776820747002736664009546091624329691802604381936459243537944355134611284055681302067734917238325459084293360447603202775408669160010007394219757575214472003928951627386613196530366424288588594532077933926637779064707974885304828599712274882733294717901084772025336370100055401600909305520132238145846905677285636353521587084937829264640398636196977006569355171394691007272281083237806838117156786670404303625514968452496917758189349217448759508556690364674027752212541993359321668174916652074244315502124903986762906665567148548037220665220163653508573341045344623312901469842563347753106738038431496311927877317844534110885009356560548118942132898730400570020851517689804956056618529076440664639756648085172188328875102143516670339169210666717517018900226829893163295158821473102418149528644168128529546052429795223402245699782124694177448603836205623100246222551566877261801773030197581122225802893723269420051835778112651288409129786283711015699459193720922915094761925074559342899568240477952541252835073940795617820478095661266882043127976719100632129115613285076577942576713176560020494208802209727089177039414506672055115780578457218388684383026969327941654003444744159143371873420878255500929620933309484829644851414989824783794429589725707419414458207910575708425309496960126184361847594749036545090134637015190173585003663356295814143393481235939004144602493711515330151632570198542359647637140852583266183590216565615447256583242158955873868543161999971668265424528186435978740956048007680497420274812838032067528934459929309123662269619910333958791005601172619543889344855130184626441068431245367721813394861425161812664344742546653047350614412538693623218300161158996369831014726184543620096697484916745186367134960970403751829746173126751736741657085756967078241420899359199158178072847021205604277541771725396843619256581542052427765474439748257229966687771779313019055107132988625498055908120290942226232887715150687398104273720054369000515455128307382413985206986103271790713788729815975594688579245004628220713601121800948967205063218956552599949047811888863031971908975293771744466865789825792112741430852777635348822306015159432436360013936285993557694953120594203939321182319459127470802570316975454626826800564915670193967572461225432267603638007094432003420876891476582155703490472752437566402312812621267836388103992959640254919860875466290211583215232504046935919652519763654094757767880338164968162147222936909922323798842058477950874293747469944336101794160771081692165049267937408796576771354404546496352504904053750923942906938272684813879182819584559287778255264797950760220465380589862759466984443588879042850025508676618817772653471596852782404473012653115429919977507012369594351696957783303297565914268258383575934894391950084147590102087608322249659211185674125032927810717390534282540263787544628487750450123297371709166980071179037934048816044251413770173823437621711038047443680605153956941829328379281301450031647433807453766446513811103350112718570153727145676294249528307998719470629009349788535822537658946140015393360465254930750622917399030355741990405362537102889149283067518583588073225880938037530911049458673015116602312223648699466209550425282285955373468379196675220574173524447328223992679936254791624281982702546290280139300470423732154329394574800448143224649961331008035816629642988408773411519096537561199999444650784622229022179839303581126561795070135553286917755130495786358197067339441714428625658090895347869485453301870010505860234335988763334541158179420115279088676406832343050281440053586072228850171100056198965080593870601834688886182107171979938464093644267706292261407468497872985739668105345282599471563887521551301807698417674280288066157955264493282310522309141880633188624845399161640590708364081533353986784078840366643601264525394714741354041305557959078393609560667593383090268820096049079335692551204662131384762369712419524414805022623466075306775009891062268281481473505458726277775207058367925631389230309280181264415435028749922078452062269998526777696120341272327979293099396255971924382695792042107873953125076072323525594828355436447592284105489141495688722247742236863865994791590465173755769893423426252449422425888540657182033524969289222747491520186196870223238530500234554607021331307886875710676367313511376036753959627224657453641344850636621515395664193543156208413180581182810982215616678094930943052547015688130349953087023147127746123350045718542922933296600415836122991496540098823604018735595586467685777392744203114076823973098019300916137119468890405296451422030860764533002822467637813620901673832112088081727154295782391147063223788082205451820965604275208594090387530573332061264709657240434536272094652529257088654281896679150435751000751283528781206295858334386173814508350385843920455499782949493384739995985257831419801043440587721285495148202963649236444225610418283882169369748869074389453230613456849152700245219216597112807171588431645093651195261229700094534773529058932448318157297118876417591447552259454508060342529785376250541939094833291299361931029268578687366328226177616417281756799628921154831149078612416311767680643291393684399171220534560208740386033242759880130706413167933481962768075220195960582875223756201242792789434420011381440981704679316004340584716692015386940913725503486835794340708757040558354891843006995966291502327596685108907410136455525606522080430971355908091270323623850693936341935318026493427463810330167696206022551507752592600438675086440747259876298299141613507844242418721714586531114310026844413819275298445593001291209630429545352284275503854185186772752001951874915091142860888844613738544972030665941665960938012441575935530301844915686822954964240001957057881712032903654316590116106258819467476140801653520327032254439341041764396242015050208756386106032131866405592228158068055700584311016786903244216425403079636552098717113591929696930797935920966352588505641837633605495758937564443169929062863068571264214155694085993090630216350191933454677833128380618092231394107782041565674369898382848358379638342616854016456465851521137306393859166821587069905892864663179990772493391220797817988323920384922484689853031316565184046379341344539192202895945945628267050768067907303205483869675289639825021730627945621842018117612445463653710125566770460232061877515634409311895723907288968779783583793161507804984535648846293418334317177632140582952185572437221966277132696317930814295054055034699946965510299931018396863008640826934843317374210522259306612056854575083692435297200199472050428586081063700064109316518592652236191826111888565958595155125094191842748317420386489993597363050468212419141762989172119583751303938047486090457059771755679179186164531600980730639535198230532882921730686520435824637337966034499989070562765220085400955601141162449105864940148392829058918805260844512181537604771179005918225045290099771512180860225093847393478414841495153692467294214049666795772125874570898371805541010221608569165015116029711445360246115662529939277913297555335200586398662129914401411653159600051500279361578084808213540554339728710824112169260400634190207801395975826038690879617438202472520140069825729302221759110621038215735261998907386785559551104685057836641740707288194013217319500512538057789829659669635842941717900636725411829352765855727424740094405435684477705350139861312183183269185087814863579883924892216778527978779850686230484714858017720926823971857675742389297614543726255362945284549665056453679670000876775163570486416869663447544047053132740949571462052726523351409829067411409300701528281074865825796632446232887272905067289885392222666248497784513768253659389770878384964814861979438872289191911111747825129810974517703235331436760533301033091191592764205246721198114201053077613384899995387688748588211707183417096281095197761216610546202779093283037169796748193139352833968665172740989251256107352394055434870879670212734545724504460232906181031644652307316051361213007699083627104069905672170526791808877218879655212573514693817205776863250694867940323544478025403022498340301139864145195725507948658169121061108665729839057337718630351609534438316505726248749381970872658445222166431508808986792064669007359395162828795628591480957784393217160475571700088301742425325159336084287108788139454931905639786939287123697141718672944638536120390226774844143785974233848144727849879795988937658789715396327128872498980570532134244565937307958695617236712686423565809147526784060758428006762430257324021942563176794022433863969452992129429452700700221112614646107353556493315508402704690730360742478992080689712100699839037384485384715811480124456889386325887432987644304261696507282925192185978496221566256824492303135853901491557473722498798516593903123091010756724362294463590754593034620493045071066569359316174726765391796945628310966589067312384923559157686665478466311643964421511986775200010948910428199874565546614665733246487446991112905149321400918062156571117247509922264103556772605913627912861930626611224128702049104926106021349629059672224360403883950653173506711104416140629474024200975696332360242874359395757351494490896456887930337611556332744443315121503259891871326772105318098253094226856494311178407538436716696664322600307102759348354394495914607385037278396114961634075687486259139691563589631049930188245806109747455617621924325949862716133405460280597976974942551916513656343749373645572757572942531951619102223658659799220710175357015232992988234070089367950952815794954181033532470019043483527691803831699728158629419224386641066240679703392342709045254782937495987094862978196183237571495110528148690306487036784801565384970326662653752836826974410992044275773395746541064888439647225875851367937098532725964798472178477689056349319130121297308964610767764298283405873608942329142724337356760446132447727603074578457962911309381895803824663551013166310110179368157345454227827423611722360395810759232406741366691171808213810430484204101662663204978877941103402332656314802021666268956240354427839962456621169409777381462007525160236570705248721403809021891699485485705902055238482733437518372481534140019106047868600939943163210989350447492472949219434519420638070914015402874563438243300474841004124492868007400789300602348063992160827565119984029326264528382605722206671624292434387892835823182258456117854851367863918441809758304016168652361124110755011594905545069497317111406844914405027447940646062861479615467734990267641001420777307381362314045147604125909340189443946551567860011617464479514011093302189699094561933016421288108414641283615740103826118771051568522096089996512614934189842922080042996955494531635066598854793004672797451957405462409397546265962189913475614159367208501118807183565004245021445325978590908312908015844198048271303146909252768670398159856477045648603911638418882898832560383690181211953087928449906757264484615941934240337899865778083677324220168776193090400278689388103528538132113854377457397783656784818727246385213913266680107822406378468547326872230536997840810453054643465071540320938007974936625963054509090548915564405149659529645646954415110530483629767527475953164151314928962122338262728338273839533719443956158043127416960173308836806127019120738040144538354038712783240829182575020704493559072376578101191977389216271410365196400049739319723658181645363424685280269455109235989284484206443254446240209881194781893321778191954296638482832318553720398499473294808073752778351600505029702229368252560760148459946223084244502926993258977581365745204409183551599364657035542087512759779370242969359488258422718629465021686215691531978921981573365123669570560412658467255908390263447606981955632351788102684065078034392410904948536908958484986117497191003997747107339106774946801250040825313492650253116233809458865257033462633261633761317096753249999624536859054607965147794182744833258354735061856531520168294112644356343637131115756296919726687398809368949689355030209443870553215240230742046559742348885958691243728317960276442123071603467720680462820380397963126284198863826390433885455322648323969183387863515243177167962402986280728984722516545558038451071150342217159217529607709232327135409558612856586633457923410078517174758584025814591361841181750009295663385751685999358777176201825373267559249598401897672769390934164387905856088449820441105115990173764521893423462504687155185929052002284931048535664142552663332229918405343859572209393628748616217762532956188674491249825470665824551312522600460040357582724761364159019025744498317906297445473443651818732091828460252868846197887018390016048902882977821912173283863915234732811378672439210226569771533025839392378988978235673957308671082496426465276794142318944641881611250910845904321768583073232454191932068279812227421209547460565837417065520518062445079746360501221817824606004470330990914938328144993208828233643334163961680217262358232292393707646147617052351598219316975358679588133749806378860876345504674230593408676181970600334623093015931081557836355839378104681035891095305281657731410970738028501890202290215042587743927739986575472722880055869005148469773990122415237016920870652374839052891011018360527886594712755208282858177151591981828527964626491134116429986584767385674645338211823993126091828597741666272779533113647051311715049436865332917664504506886282532200390831476339449752118517598929833555468512903936118914733551741390146830849390646305528828253629133068829107595683101617830524907975695658177218690844172507077382514528061976049965817773493437022852354360370815539838586743633688318638927039689699667956687194355454404348996904934814085046050080285932183738974207023331365975641490798160632007747043486815348832989551509940363370221558194051519783343617357803743990879346331794410675795031834539856874784143396978400173157679995486541975413648736741286366093889735137496789378063433932461074793049515675700625720840817543557392421642930023894376452348362289596373354238712472431854883808165563666934522892057104610853529710143539676500913296855969125061856856000992711333960984283350024115052436662845984377434462328563944835123205219612689540022637786013919514240644675402700738241789842676210706824259327865637179102524182900444931914997924637601129365322759787621137019857924917162973949600743276027116906762456993998836540319886793552947885075302355335633831688004930178913803266347759477544192359312452418749418926492690124572417554745598815169406236628171308603329604177819346935519076854839243305902741818332296134448502593073268804939362921211125896386827558714366039852670142397038067979559961478158116485627586234115339162202372731455742136289544474695503433665574393125797601559408338630142989824945978165097304558879163436729257757741651118074305253216749712045245115754594474892995383830652239041721048529289482291655172594568443092692415656621717385818601613073173261608132777336124080584764962141801091627617798244057070230506803361235565768592206727980474610382168566161244034812424737174656656795365547433582322341691355156224496080404053473529395370304349398982262552696792162307321046859461686370631011282652044661089563978334649586276302160089273308835720596229627778639435487883816635009580855601638646437382581887112636004445508629240575325264110322730830368781806564350837308773010379364218019094424052252033399806854709250989857771947084859775437246025901518717816804229958792401603844002381487137463697450234685094155607496282546043056261575450558990522606289544228038854521286307729200564763000749045661258364625481918135038885419840468464896369895119954748190896757833489688016112344100217814152199966147689685271882131449622002793738425532133315417314837480310733713964710343462369967965853191464473439997674143043644456302138132136576758106134855348634935046280621804280778029485453235614002729423219293448692660165517220541320779068541107281651211076742918364357924963087167300214266171160197353291860347936184932735154571911450273893459782326343680898132985576086623828737372473375741663089408976651664691999195725218580556982492967958943562505401403374589929171225005982326856533992105559082679878237068155498955064593823450170159561386265022688567346841140481861037708166119460638868162714566012447761505493324299050239860389711875498072781530776729340712636816211602995786232469551977121285714477319462295742665948500884982982895510761161831848016830208253052383848698805536436176074134129114970122054895462733779721464025183127643506705031626499998942935285717645307214441455095116399920590224290510485769752850533788523710605548395902124292641569660326439504904889413032749850651267520986647998958156016834279856412747345611352972215571389842581027569329095848790031211119605981170906005809380649600557446836272685566592231526108098275480479403726502564543403240392017149235415456042956635432084018386874746625627721138006347550344270577432981565130397129946444890279085301911497381130438718016039606289337427569479894582736633379471962568436065137060087158826247205548407733935687934965299991096174625610975820331900790723920407356645846770664050529429117399147675607653535992814657303746765193721630582003874894719967641500125985170165821957832671908045365903710798277126629748630085294091186612867944238096876997827209206739407383552379096887696845488068761246366629281564093997352973088370460173417578799416361603114785375844641879217530131473995629748186830607919778124199183182400079724794441094659075021479761308580767404148931616573697602221786729863612993028083316394403576347783925023402380156917521630676445700462654426792244791483252017024043862319997995795285634273823831900772768808630544263899019727642010924364312300236586565636814077719693334395904767113279874882292353550689832374290665619986600843906047840827355967052908952984578152803109519003849954889909000229019758227647999679629824049951387073217686452656672907543900945327378873522573746208594142479767727879806171311493025062555545016315190423521792030632913121777592996636223701056455997236415768103102644810326535434979878771726021349336290496256381614041380031754330426051169328361863816305731387640064948890973299795981013985356903720642830885206988933793290872990697505630132238431195896232824404603890941209633031015001404534860567189733430626603695867397914858544009481211499394603663602702976638115050188975315388962982859241255506375043353532660558321488901606337736746544923254661972529188429963727317972957701037007592298682657510901946388826261787964321867751366520059122387811251483657512391162100905230515451670631139913142464571068157385842985907939066676139073021192068683412780502489542765406107989961769221847192249270915652126343458869847838405304419372222842547205870163129928575016170924407061043430703756802910008333793436985551716347558747999020124766447511629547517192630876137214104567269384464373046763097550240852555707766562938578676241366544534819870144382918151664975086872285990438054068831102588048405074834817740416813399111352888386756972652908903746267062531272051147783436533005542509274194073231854424370703287348307595182479846748292337406604259399300963986612444547256765382659358267658929269705346957589156726171473608171263104551542234611845623086038286523539554318382015666691002232830891126129420925596750328834915571389315571996716015520773208064597086687410679187304999432830257661292151329344638977709715094062149550077220144748156084208703392864924041359808864715464448476448289598281805976111109837279523673024545744330731944926145040819357743114021340319920628086707924194777548512419783205795440272067499412970354300199205656372734658437443388495460324938054571029148900074414177684453378846758931430849308956139053833804105708074661162980667517198823644749089443388105842638320188808948381386253924547107070300260807615058256208620909343873137408148170678162173367470865989312484926276556416961487054632110240561221400810614752855911429020137225072305152286498083434203483092958644663057328322217780647687226903341564186780931444371053367825980622067923802204135140286325667719634751421621266264661462895009769038207247498009345369846847260852566965481399796778370827617752182360313113730101657500668555495842304153355328408880414998272396341326907825751273867901085864203430236559167042979444766028552566474022352718842739876973184758350370604680405020173641260510903305445184401971087454407475897395328659363072712115025513008919545177235622649004809122216251607335547927095891423598010967066950333403880934935093675662394316346951991226907200268785010412075364387735352344211119719848944622097131452446640314872558392681903589797560545977292018783719563748139647097582333570915356725647136404079579666746721396422916732716172124394304978279022510067248227692135592102695562499298285878860135660195991961602284491575577395181419351788398420937320155791466304015722166253841664135571357456891594114549771633538480674785060267184969133708422243488674534633257240612790565499473523847040663973108824925765489300352067793663119308503510291566386606796464423041386894924275425900424255880136517963908411254634888528405155892966554917866295194819144583309822603195537339102009236564324906772678480970397342193335633861605611303712437094073213536362486888638351819525534635142994311707695461440568709422376285748828085822865212230241605243651111073634802413919889006455833469439967126983968345713606233552221586989163550784904815045094444768306899599678201532699302962030302830048501776126310939388799468335498322553544245771139204490238685869968826689638334554365670261350672054199708020052580341808265898953272154250995848405671970182586631638299592632499780142707532423682611138231254758721099257063704078732499013385803275786780165330022224628126115915222862185217562092426979203812123343126092098253625268249562020738731915737914379500484350195805984427447592556020852716191060095663582348558674572793625534431163180106564141988334188408780698240670062966615701154392333447358531839326233502488543631510406786754311416715333881366818460873418236369303290670553599302429021812109207665559193940041149976145864044564212809257717373912574812341122992923404250074749122511268975488879385549997350400933653077444203228327825121455285188078221832066523557094939234919914355830674058847410651056098986184637721563528872213681579843431148003156219045709646636108745043869555195374315238209342738780862214825175322060352615802717620105503791756415978452252237771326117058516114813569643112602012283577376928225722511813475404347309780825096169515062391321036263339506532012244923696697900077929121802504703875076119075795624791238348083766805508371198057003436679585155038166150246628467868434084794290987630976137444228736240145438060805249886044802302387343108220778078717327409621191281776554959571004554035464815946271775031665134311427563652773492830979954248526941668083305746023620896349632038160597343803105734366157883574167105230692038212145982660969339418064740567405253481551213045983180971773868398946243866204034808866546756445849748213189527479599184036919486463270586364341547356418169177161222790824133492297298418723091325139285908534818936088009055905950102029158261006685058112915985283714618577650063072667838728564691203905164378894381594606682970529573931084224997039079421648808593795669523321944637697872937639911556826377405763207812377493623863926729725853080296170085194558033137805071229361573224399557143596140238940267676763646322759156100802440744671870388766284960011056817877572171777307731943363338607611149198686356962058425155947215805468237661626777614900834474833548814050429758882551930401261998241629575140487815844388306112829945624567650029518187606796932805433381403583829179787652366702181295210780899315423215228128765531619331691886325278715415728277321265156035032565900845985570144269935313185563865924624122067039980742738746987721884238806291676687743723458832720711141021733893929985046432105386183329505255359021308065687962340763605845529853397223376297732520045982118215886526355428662407707100768205396496255138383745405366530851139262345598617583707039962118925452517786926149413404397642789225591977317360161180261699562620916745401461776145771244574848616952229338561421946539693710501253614076877512914137900284060880897836915381552166312623416372339166894585378215378189451452355045978582817895802205496906954427228872309659392544704523867345534042083867114699394242698133863086705593504370062040136189045990469387840196923023936321552334401429497456383704811211723103045955182742891333809720263719332881191939642457847355056187693563523364611288160825349560934404247338562432019889045904835353887211067350316557732514890274504266801613739039993879196628104102484915722047967846302737069917329986885958073418327176421163567369275586866744266587476340584161556111006389741720807713128714394202971253107055167385162728438852693013168054213954821423822138533048858046416608653259101025614914202152949565893727316130825924852977064285057761703208596660133878303858469579984463531481727330637178518412838594995581750600880166805133001698485057753824099984801920928762951425030115507922173069923469110687637300873706984284907448788564331098797534195167212389360111127337562291212573184627936319210918805481944586413515373317120398787117549028006289459024858503820880412804635023903910475287942134958023713356318796339912938148114010497363185688199830587714568345893135822743563024642850750088930773111985061005670662601497512080696823101165275160069953803382845251671878506869972014963660484967999156440096236904105075529809698812246812707387912375659088652132616578128946180542793219093546705035027120097747972567235626553029960363062071758937409535608077018095169371449466048038481672130242708136161905928557946231679862261841884763766083101070751244845443838178564962695034105754703959271260371732304145639625127871216458917918480278852039385924684994199293273082916631341298129360769589547376348065782561014490426424313035463123830051770672493370420588040097197083929700398955808269839294732212218911963164973240533324029254832376996692400015947666623993005148583867451665911594116053872433347292319514637107791205927091470159714428242988115406031804493998749723753987579264476391407635071332070164266216769797814214776341079655447635581338053882939818535207185353709927791684555812142571119659927319955012543174492756910518767350010463222629032266420201912767169125797093028543082476706051413805269029172098774605502585696979319858212009982880335780237015404451480139391792970452781665495592215666438448382018462546686196554133577177705098239579287334010085201703629867597777941805621342191299219851629088357437847306945676990913733722173109940530150296443132870733407517542560967074925261377573524858640429759329661163615762085283092120646026139584652440882938453926388468636834225013261388501622010985407137504517516878288175776516017137986462151615573801175425598971384363145720441892824952862908648628034983255519792459455533070517349849644640179984141552824672267254991794731447878660965239718037336015211536675853508929248748505442072866270245804226810091518021576213028447287551123865724334478549062498625438044499634630823251745356323996561148913720293543295807939177894502407232524751034331323095095518734500742296914844548443596651157997877001130282189384106932551933532906858585741554342043479998505724626491557779645514802577103833221194831971203368734970274207365351907477096355734941603009901799157004762649231038642700314082214183100662249022749056013654545046662136707089809686309636985919083979711647499140607371910569171860896498392805852944149285395468141794047461523328595814538822049839717642176523631011002332356473132394266649422300441119136564074419032670186595539335209658295780256961781562546679937334581053802912139953487630964200452779588583249359456751834257612620492274488475356858417620591225843355520539207892887544722189279218194184728334274468057688431635206232044074760466086549282685588595441671360713209003342532311849119319243066492473644935244788104574849606184311076295338732780727629809555410771284699043426009294758935394338124754701927417703329495686175703462836780171199413384315702937780795288084816723022189273096465434913094841742986824984512036069544904749987759028922331803756820505165466079039836138169190716216844469994511568161180336957261216715203544716981656614807365418593290147388133088857862434236160985972304467627724490591222338345159373439940732751870228961089886838500908476910805928246786715911672755496457416885199472228939426095094073489546562036188501638659951647426922138761710067484174461198001793183522483805848527411532832716938010604384476046420681458320960931424093898223313654900255548783046397295289728293689691437939984928715035699866341537089856806267746908981611525157146312958632602455367132491798029315820491047642598770450804451070168811955500691038439230215100326343598325931923796556491599938623628479371342572973478869911926807232755465637914487338603382658252863894311216532827719403249321132701915490723089578926154046088890510830297625081227752114059985552400219299553292093666995182673517317301075422798227589793962014877810414042505888264815208092931338432450326623165831695145256161086135923730607136658680524198045895205567351369202762887872560425932262090270739127400517298792251480808151826121031063687555303371616684058612588851024694059741388346858648439806565762568440265007535487948117484171988053052227881403510659879580183487875506913170691915702413209161130227867415381368732291295617532298523628015561764062739187405081805794005403257047898368767820132214005808490179494311011163461325035924440394593766666334778782684656149304134353492223690557446749902425920261910674420751253156538995680824685908550525310125827633952541988030781906226414177900749667035697213100176846438440083148007435772369846636732055162330883282710825541359616041811243022782927037333483228997466924561054607243376704583160386801638158302316007959285104970605349794840142209541883124736890282905127925225559921739255730735137903793264857884173310762541782371439711434254238066909977014526636623612024811147604777989503450775493012765161925763132121833172620373312623389119416976009257598689092059308754411722024984902504747639700998825343487411038712841249817204619147645933314951117315830043438046843817025052032558926003417037683149135625526844098336419025827000114115975882408199470912621017830804920276555231969532042171846008940191392545632518064376486051291599922616722629942836083906977317161533690283085206337268504877464854658620495032550743656814591711670625920668616508928173698237265817231577196922997795292610478487074335006437315812153715757361648769110335299533270456026655715893141911387636645206968432216836519774690264355096051661468067853425007639517013983909728031318490189599131605262708301733830126078819180781110341692627018355404001895002761594299155287957598897517103090732129680675208590981661933377546600794545684011174447805160826510356082225330479275588731985219878656421009863646736936101124230849881372021439446680863326673660302534504774163077328749377744902425900645927362420417530732844153648074042920231638816018714194270286407729020648466052521857293052577447116183031824785646436517848911342143401440865340581225735504720096658082079891637528029421606096683667208619959145146856417017297361386179297792163738976401602552982602927531332992067430529697243393894646038747304187084730703713581137005216369908809416111747070664182046346992885799065316703865333252374695668339574521606813669925828494018624285375915363612565334521742765696897746439844851522296413959461873511211199309308271831969220412274164058682447804166499216776882640334131938602018065712540216830135130670516962908965447311865358984476964055659275328993396055190110195467058531003582090881308167313264867292513214418260098034332234686969689724064299597785174803674811062189958874469221978521519021300673286922767473283514873865867479816923365497897476613056851107571266424564339208614562590510903183977997160994041003315530982532373864313722200234699744066116644324831154874910644203988737603502849371351761455429901631646794392208193058966126920240951239724145262150234122639466542770035065027700077057281478166701343951949754857601361896592072142408259673090334323091183386780089678972563519174060394143968246219603555845282128583280716520375467874266582347690431973586073815908564014166465693844040823502581262661702313936580896633368385308982921423308223157892834583470999627010769927394929281094454881569685454670272999329508435113208849043404941089198297274344804536396220796691322218728876157073752004548151903475563880956065342902052270401910620761683663508086414803007562121926888062230604863415780680881423546533495039820899814416047193927626296527465949285514265413327460910141329700417256551006457891249448797357338552867186041951278087904367937254460806348194700128577828419432430213595787978505010442150151774659821326675750019493036061429092399846544770744469879657168073828547097723239073864050974783445062760336474720709054572557871045499684133079889573959969646384130459217651908980832237847838215296622767930817118119243736588954899005036559043838968597779228590970956446255555197759305245233174266408462369728549836957917810660119535291196268733549554912498752993555783473485815019927682152335536582423849379142027635430660476343530456281335176310571859226196986990625098955527057240171496474292099297293241349257678083533928339979525521171150208423040177281895393588493005966731923720784957657249069742645957089693679690163114293071077401683168477589038497292149491542160707516908244898287238601708276743426749077269308572170748535543274514508223782292465850363840732627324426322958887265209527221269725050929335566973631152233145438001067162784769523406480660669170677978243842173197677376154272423932470392253605533118349265736039169394777916188663769057911987299582021973722560719127354619208448946230391493438656390547471040927499732056826598999632148407664934527829351097903485181741841886967392653270522625518328661703571903507144490064367587116636403715798388695698535587583424272710712484296407169442138814177538798953997785732246959475273533493685422079750668332522470529883332009365915411668053985460109991952556937546279920304260121200612355820242481738118190232584770252580583784946902717634482667517130810014420936957548254920287611043232192770526262606961702283418210167424488006231287422188604523151095501075587849175384637492808510508220080340334634900334441794628347718127863193959134117907852245269625736841686935218692082799340505346597411165068445822018223925950640205900140435058467600453465157211317438945691411304498796575631374783977303970640172263182465604466030117735500397166074697136920639077860176991452786362473472246503142566343898886731846514414400283544773338095810632903384293419424671416865591043335157544812794894575994739488382189972827602373498151006920830367973067104806427649005340192639879426561439841911090739869770266209313535531066054976457125513489141081138238526588458908801457182436347182561138638179818143253701940203978537920709725740530890580996627437377248319615794328379999545664462122209178132966540366169498313398735536430790388634051739071036774284620109205194542431021067321948427996223612938854952790866298008952170336377006859703085298946822955586018808855122796071250961879522865123379025774855134220380389731949455508400207370454900991464070719193616573567384156413271413723015795116519137355105761130813828134790326060251222979975805999891383357990830657192782656494900288758937363534239028839716058727808469883228385777549404258597305378624155188235903979442152777102030068408752385448039431520435624572031191864707596333556235503737420056320407712692189616850562754251523676821988699353282664769318117308172897566655174504155258999485116570165933587338746651845623962201494206088043434337476682949412191918695142676026496786331656543766161584389383759009970320337470513489545404400714535689889842551942316170257157116562879948795145930784903347916255770203522948003046136252507479735491885015091944009655981066596216199197076325455579044548142953903021945913935593871535255851940117392330125503069984506262483563671611570796499426564235280093942209112802097868741256034933300971389267592339989358727864974682159859535335321883852803936048208672316001800118142419047203052264866954142959070668090144910905684784303647608030706719515071068902546151911796488027752461919890316123685166826865448969327048555040281350296654292026767951680127047743830446455773144767890754116468737289177471499766076664694918108249326761625891556306415198965243346628046558045869774012253969357751223978544675976750039851176514028242007784489498156304370546536003330645728516914131368697826507497531512837848806935790821754836067059291795885766047153120865334786532322079065304926739695710781411527798184734884563299378288066084240392671397617155596468591054241615631928838191019398917309889115028079993026994196355557424013008655399073911535323987112423113055288020307822553104141079635172031159387737934715113262973688710552403306254117809575660321198911070147422208848651635896123660845163480234710677323809400565008628406905907584873072047928113650519875646364942680508179423624603479105812997465790232945929345393854536701360725572950807138203706089799607529038917058955022051773473800475382869489580084096865105877016941785917861852436923986060916216952720185144564291321042475277804603209179166817820178658347085145976265335784791365524379009285500484231430019664889187017805683790450789165651786918512939063744749904905652151804626141556165664949425491931224313758562130836856844556242266713530731901146340739846954350412834210172701034752698326934709734732480869995982192207863724952716703281446739620998294334161965779759533719366153100288167360198607538156539505975525768439510956534904064602237871810395276227500087301264425597675869376590776912313404034612742708943613715064687472432230784721567134915742311037046361194856134902550919751244416501486995400080721439713596597595490467032030680039680915965840175251614543590308214889645268404258097046873151896693079756111487314693373586666469920983409341238321554747367547556521760379117385777296041475045243798023012545073591557996200321962187506729979589468891867330869974209959892198611122110793943144002806710231615036699230900500930414349179137302767405439560216115742855779504453225790903093902859591816004893390705701320981701355419785947221574595631996572267810143077438506562473009600885951760022154727292878756068635277339175420607419577999983507963546117565195153968209310325763606811998811105916013641799998138428620962143874402480672972060981957820509813437603826017046777424492583630027598023717067256155809371275555859450498695856551851415684891622170202560395010347636225493512669339684307774789784961746670125154234933557739726230891945661894165664855361556435697278156056497471952256717954505856485291285815847663414784421627792946553634033955141400280267446660005568306825743262494203433616746555705193784925782579584198833594903829604424083075408597245475303332297510952479568444498735792733025432593582910146338809034821660438908041543501797646583070612849780745940399799958463076337332265743325355294127949100498207337024881865995578509093890141727231831126549813987014024291244896512607365887125402650931852511823218045800883997755369963519770442058677613098010735846888213790930945368484158328793983251113122508921520319195158158098121805182370066743424572165076534826653730010503662020001797682743099180894178582191278810837967156435999652442018253646982228701746124996477069771273618536435197188376826655563224257534651679115786422037626663254298174014230184183485688691565613517163273187871165087279141022604985838292995679549769289968128717590993677908562450268907032793302898963474740187853800491303801455582987866134484346074273180488915110472196532985567973302496278545559914394902920958552866240591201454000612755432537495712358434942549995471794809591491349318091505480928295362999649403331534777713578535144441987050436439568743126289287584817000768574646021141475358901907691582854020726250062423525784764919725370996743782468885315204926889367212524320219416936612109797010160631771509615488732185980721845878988757679590485150356840996802058279829473804948515803481626788067486880944745347358472264849573676953627494485261576824451028592340978116736933092497417975036843815065894196078165549964170972208013478478354009975555625265562383043249741342347439984544032989617056540281115464657955204053832741950857319142342886591146029908263359488792138435240462606161721286377090587964693847588172297966589612631742916301167796534292956759745641984033326068772113074712811678020490522384231128378304045278953602941278974579470820462456200201984928368963150197477402735249280069753983938823899883337190105830660424880447057590441383952533069547181144208761261670048341439550668175838158998124320311961337434558649480586837411764918233090604536526934195951530850984320533280155152586300304672886827125955727122797742330624880137258114507162270613074972784141097694790555531215767181852086920034209093455118841585642150407577890925984111694097460270257249005921268218435846827704502454199767320445590254336670663549447296190898345284701251710214710240226777044555522966707979512367152668476958612680939838154899286538224262147733708645494753344617226638843717042980549019970523888093198805520032501892211870114498540638329888704878326657755614531603572724609070163319641607827678970743091596849759810008970261497275282758111793594104686776429681821050909139378180592942937683078984289111427079545772768454028414653270304550441726308984807205184760558515388736781196172153169673118883120674620237386035927757501948841068669501503575147582361162336533664533421030303511009837767047962146162161643364870363443435381432646754586040423595155601705646517273062302095032410061239681685899608899125745878003940675718786560567982410094407268537709086714540930396525359014817514133648728745234993244754276727599067092564513875386801144828972388794242361448589316410357031623338684218833825608439670530262865926885145995505094435229386562377479809084460928946387665032859928433585753163715133259211229985009597552900575422782357632266136086273541933851948782537158231372202496883133206359657764282620353663699071701005649703922015646504403372691977652224461969222812004292952041816215164912890349746178231942706571328213201930593415412036834820349940514972890741776737474656135637813030208613567612439712513215162107151434674443341578228487225063479715660458638504467105646294467631366811894969571005085100869214542081023489854670792389232850757834912516795747715963178924321864049945164946960700340572155721999307223947928849258956975384668946885222020009796069793224426630927077271438528786285527783683580885479675244689598596613100275926232373759440262881280848855186641962346924773727958094450766254992172394428735780643421709976210368282904896327359060873534957590603114917990437423896429495616620664889784225220648333046305546066435343620880226260192561526312238581181042123369169338975076210716623534020226516012235188291180552502412589853184877353944138300041681263172859080537174130215074337864235098726622226092505088355059460476724393937799105883474642835414416767231810606202599713059792184015111872180895027128975387720575271618005988443580384011389480020639161923674950790089248947247708358076064949272943319567729312521344907499697224994892237332608069636167216537299285988708517717339271176174070164359162734231974313600575968343400871163224977784469913274763180798734898974146562515805971149544138286497948349524486872017198003517451611576250100367502324891795496701657254604494957088849886192761956980908877132126263433265008185934958823145829191055563275227777961864345820834702569935686527645115852613255123661995161572135520035103361419250986704525029152117965662288220830565362113023022751458246866508846725960664501641850019580659544714626993306339321150833454383255788543491388517844363517737493092656240869161721567914809390978286745581486426704098437101552968401051400213621896866698936284306182494667452041534947218612932292212383255063017424451040272260011525525351300752606108705065982350257556993283835008396076614641666350958102585650941576123801406998085641122179767017709359297403116136450712885571918453830834857486918224000279813167713327139356400068818578724566179602941463314323408143405470418898646859960933040984823137916438284426523170851432680289373188578419459715754187944731095514821850008818130840075320763399798540725519814430149708474441180346298055239303366466172323980552669098869050199447086338915217930259359592443062374787431506565842928429084359362397879337777649144131382736412507436476863550915860116885305096711831767120285288193390338055715437463649862778491532911943682939869717506309528655368195299803375397699695275405254431042601527887045504854279904526129444368846371168509602764160042247559722046381116452954558713467986090323437224465942105492805332646478142199907840168026716503132510149460356689731076576179227124948832319187966341196827240944594641564081044354850975521434869247141221250523205537184178503072970909794365148079302847331659899832447972484445919258516801167372647392088555625223670906785142188225842898531534501503618863838855572620914901834503774548956144204512609629819598937362191305308112299968959916898908097512395308026058840879633029928530297064700942427955545225719801394887178427364432759363915817279936496033345613783334385852822898725382795826412694022921646388551917663960952354793950082635238893175160660906014913705111331624638039692163867890449376280350171956979329694511287885867044561074789610767597334619697343570203575070097176224162970341185128856113533125041416096585790386454609891274927641961964897375945171108487575862994734040766148483899204859749186412037475882871815860957107618363682755293897480222518244364726594600141335620188856774504094146658190624769060448737621785974586637074052589730237153300206428860696642693171566015308045661053607055205828038691037548787516697522254298801088056817458442347389550976052151515770298773078178378957777425201606686914153220794445217795996742742488591401538336616842252149694742669820957797442733676706587423285264181110000952159553970408300690933401373846148841327161285952714943712215019952100445125376771424648972971372070048968216807119071788065001681741469631597398656917200228657207802934261943751312075251184107709073899209993594609563918598041576459246485174279523047756596062275411571828379401603778012640100169556946602972214897469279547138978234612849305048147561500472077689830336930257249055529298721058414859064615054794653855408394368124892851859427757699309521703853154624518662042416776046006098470096759946691278530535895184798469981872451018678016142360302517496260826509253819820597443512055174824938352875320944159157815696639219763415934332650045218421533984427375926111825654397670958313532989810910285031637344431818314414854408273264077134242977096135609533136231713736117745208314812366324470175942873622870433842522191342549933130557595728340923631828989125543471161865686638221361098975665961686411683902387012638557227534168034088797726198873278258326059173512127698590759005720558692576800082236673639136604240244529203595189371515982772917649827995970597793642598520553906595108644608526185958898518836219542085604329788884851155524144283701844906797676585324712133177353006344956369598313840164588159922489142490662095670770526198375157675055938411484996431963361171087492563907562614936741042247338329635283836688287313025718159985723891897963608611428698879073239705935376290707754945382723437209940449234017114076776955441417118868423201534484689074360229517371896492778849983195044400603520800291126637170505918472511080275749471728707551076901470439106312647707028013784585109414514618654999555103639371745807390173034461860550936174534951457256016272954536990940828193195402316547437530208310966644250514387277863428909818810925217140710144810874312174539718352249810124815061930510574474103677645506089356412230996765066614382153658218100779355742857035529221474447269394812622645813284871172290666314298953674839264099530519763303248262523640092926144069671627053345716588921284693716759710222339767539580395835372627671098390524090895121735936873782028815913797872774365954459530365985433601760761705566069000546619305818298801687477849374834224749755169156519398000053164005974679180942944637222533825282624029340561757546469152582320753378718224212538575376957343207309440016366195915719650893009601985650966371674858487004513839667117682667678552463769469306956209545853358142430272843534859173316848671981655038575195798701608827960853235514692031988940051134612080290010615253086604238676960289323882965596962084010359345043319332465204939551563660379858363246629764066811224374224271688989018350615520119349546689982567906420095830071870981797155674739391766885459507781721294733960717147080555685983650718428987181294383375051790943624074958974408583351450359146362042721727995188778936763333510539059927469950439332751437215913504978995356714977598014789123729250389324484592013254380099239291116833722369200543712993253017782402813623543439353929638830289781803270523942102633420567280876888625797774953956542688328569977151569864284927320165194941411017923840958033926534706594080765034607332072822528698882778886102103679655066565295098796537766845019516988784250716415232899285293598111075431636659407745797483049929639030231595354854037992319333397988415110288855518986424307139812907832671994005097034842628295944405391375516552447675966250281191715795782870156117397161537820440095025354109861903664124790853981780582072907100559445771268404753588371617155244147008534714798069671375063367892395938305420641069429588024793401467325798823296681839198816545157190455050078259589237228276518410626428085450353981214165520462823913646397038329308424157384796387493268037815567959730769235221534128589687718662537810129629473226465984485132638288293104680662883793603238019497756083925686427559973317953601867178203681123515006599720505310719599777898296956049294351797486954984343236217184868952648488157712096534217991193786905768905060118415720218524000309947514621050036657518843281688078478315200360971431533096694343694167217660530092059325548923366036959464800581807089578029819736924904324123773025626126634969227039926683217554198152245948288877298925047423018657161602999566960322659910287515839593738425472097167408373466489900949172674017838454834134655862831234284186246921730406929574581703316210737077534347789882482676100332149017911847690347203228648891139624410967957538699917339850581418778134001291173121647184970840699158090841733407351242902715770455870695199712997111813535829546586834283155208779549616817452832427222486889791686222069460118283345671826911401482586529351792405082158489074870916973637756060001919095924119650033357933229103463765360459625107082589597340474899892317264581708293823410658045241318064161637221753656211311380478191685369780686209953577439522945508965827097657530025279975687378963064553857268042149481641630937699462098636419092272588327453914665669703559443706946841650967967709971837322580877843310955513760996464655691573524213396403951490025832911293797675020256457463769675157478126525219008962102682892532355559346341079118562001132552889547042055548241898707890019532424379726232846828215029526554052743695533266646929378656785296211605603175088086716801285495441881785699682408482309275531093395511548059861532376896823257933144979414809787224562685540928159841670918398874067799159778630902357714246322775354301712281814484669037024603671588964926249450819822905109218914177299227749141199227782959642870470007694125022576178469480957567523419081477241616266572070878690181303960486882483773801133446766309119980573361071699121238896709645848821985821696278295168516014087610965192038714141672963465410331857316533041384283113656456091764962969682894844829569581518174343955311581217523549268014100785500844488673760900254727684879431336889232913566679034474019558550135814886548905812704120154300071868530598308855308074948414745833511026734985484081031390707473182197413074303656447285474319542523009643961152806460683536388833065840108629243133936155651642403214718430031118669858376076520323237973844622786858440194855841135104843723640151311426943441453367882697554207878977072478715872392989310604541893617935376555571510843171080035537415107169854430010565497990863966989632029997492998605201382714298124492302605903482356011150649330811456546885168103329247418823238288314953984097321494819988237144077414639953936071544710824255482085170431392200702266463845267341666231689427812999761942903820303151575967917796960395399218355767719266819944546756306219909439765330091930889347263134171633995307015379091969920959284281772558020892031333451483072292475250878605348832759341576610524648446113899521053682539148734589754278111522693838759783312630806539346369483503945721779235604022571860610986315846477251388974786688745704269060462504581411230463163340123739993960928094252721107888301656084905787123078548241645286353648805054972598827451478811119056827207264346167138123522124234354201822227136682569363553928292697552455131925196261648137812214010234789418060779936981273185498562894595196369786991919902780711087518410485088342525708208373527919419264595144191005914084725427305448314606628797678650912627443999155141460550700209964036975132905134277841922019445393454503866143645867178841738393577655735089580099274484122964091128137410222028909411077149882003836735173799096801091723731081709911120657349751244597228050859540610841912845138093917383019436904117324409165870963690707815662760859884595421656927449121693169713891191919639839416500572117397935823158392050442235777573039785593152876401649874393546067289374791500690051406658958067341880575284848903320202622354140763375205849643823575266273703892755629917995391712896801069938673448863553912501850971605811869378995761942053990854454871593517193438950326493805730840782376373182835657602947413896795773927791812600161877031406387621318322634763473138292931299751497103375631737121555596361784480291672218334922173832303935789468172958526221121007249784237416903239222980425946094432968606047124046098038615684853273441845307905549709858360283205584294645578411991393794875163170323638402396117529632940353670697536293837826927673705613123259106978050083217568267999322280598235635684898604913048842099005568771457682446472925093080301857364031289662642306282823314527963109565824129383766418106160454347540358808243753532172790463353982465545299344568504344933125071523103358497359415170644445600047451369220073454708160263711241530193288405744424619594759749215259303997499960567911970458331737615373545175276879673545276475622649118446440720292242358893057880806329929897644208255671961534762397092946428036640620388558980568523598220382496145650059115780788908435639859053813786800985115010045205444898593710277831710242803181864214302401436914587486690881990644953379087558827058674296326047396310850385359243687737673066232173334879508863664333224418102298124546805858528370396259813846308301038349054479894282938117256217372529787165224983960234646934809629271032757162872220429398711090020256081701180186745787136389987965599601997262946719395675324745137648146300126455854743412439994684520931794451125303301102380673562980032959521577670598784027176869775796610856396772924614051559942714536157420867111463371600052776085928455593205601523099745579358203032809542058484131817350696585064844864192710480148006562295376038191905800760178078731671782593153438454034829340952937681676421565860631314359014089804213682306259695476666410011517595372668718033279342926049559576810920837345318618366112573138270731822398099987458859540158075486215797148911363042599706561263711011907229715876736868393823905390076153208621572860397403693691592705024012876138408831996228876084308017998705771560312427497904816902229807978447811655306642663157635768237395812134421393234019355983314858821581710914433474894681074051562369309484905115097124441023405659011312906051959785238641994677289215348051108632482005270910353924358619594537109887090137802472338279180852338369392312093181184163137606246391784284380784879493620763000191620140663473600972531327294941891499719219691049619927606586355482016383752624798921977623693062655960658346104299564984890344942105491783815705118501780236088193651852973284393793548953699353237228522731735282881132648533606024076265777368772789296360387748325954189792245426712751065833263730122119275788449609324738860706507867564452426403577319523541952065344141325090073029269891574067827438115032728723639008013644254508198844829467040421512694730989201384072865920957907294301747605552879263610683320272663855385785278030018297849285497418455581779343598381165513717662930913093372783269616461142080423264018165032302222516782593605072326891684088718893391312215302066922277926126392745769310030620119699452271344990606640261761643939533480862680008391509251657407068334693192922218300002765542419273670037611620423478811347664324400410677683785133529302152393168350842272897269828681606497934349936361482046811599888915162506674263237437409577904760638204871574269909960940575601776607871404195650766328862040287476656695114281027238153608694548610929537704112063882538731342823244753885955941408742366325231793272802112772832075409581598724670239386951614273714217829271635628110686872101306120900752987691781340140168139359599610010895377882670775386046525560467620125619336822616902922749737949982380109863972899592455102610105024890577926864135545426895609575774976026106354386825865921696409909630148152742673590945889327800940908908359006791310672958537851229499386838983699569489606558677326972919904635505890972198828979376152002265001218658209355909984373174859140157842680257036011024446161420450368780262796881952413323877272432732670005432678255193560133934636108370678536151855491484297148544245795062206696913428918461259823749102360014371843316269709726941618893501406640476639746902743096317405123368070770361399801861014579548945072974565538788722279587953778740113220051491766658421993441448708721082345628180887642135725774036727415159202829143430768217477513801601107934800585405215325666088280063200402275504660687250113623857387744877995854045043181963558286503984020844280260952528333385928911643966062934447258958162642195004724311662265663176111510225825878512684682727667764680711122811512998901900485106927000981389097020423912297693193235797809650389416116922756282908744645434691304749154381210084075719298781881942945889238292203437301178411617775508774624466150580841103531042881221096042874150697089233335046967680906390623663362399281391402532060138948475691274239776118192211389474804400594176820227259275059493107815036040105716651256632947655155530134089088772048337817982490919390933058207697378259308024471940021650134206497109694792372588779256080168017652529968039661693268692527971835899892910308219460201086068080924511155819354809364884285536762960920506571683907781358062092855066664758765772838025498755853491713984971733851177911304192284909638530654936175085434136580546290408243160243356093103925757994925686090089186388432057716787456009837306108329737466768683124864324864049940736506502577100276356315808162886720938958657579610246780206981652799543802101710331382702369230655701975736930334496452802910005797930235018101415360273267794462516167835626802408527818124604785371489070505285298643467653488323285924656635852235294576668650836090229764519229933361919579103505621041211495053559948300073288065130374939384148106949770692774709756860791177711193202957110977350306351814640809405568362416542505952240249079464698100513081022197943747935010320438388785360913782411836264843148068134371077653377465928664336065329714882293138322285771768748857436434528506557279735255013504009646407451707608088328579039011853030158446498979689362069757440016328719303320473629321044978898703800092722677889565528559352227651197528555504004539806198782108720175884474436119108460860083628489228123575871395480456626525324802821632033775824818851861931374429159892773087193875200056546703686874763478099584886714577461921665233004419038828660118419152896956443566485124095462314247932974219743555402746109490770122107608871105969292655746382008192707141206997793999726943315058537683191008842454234353380842543346940560575663153170012105186105585105761211919639993822090089521896937106025909034548905669711494742661288281030977491952108396537522617195214110886735503052689211873447441394079709635674480387296069763789923240389618338373433312421269119493678935423046340224772331375114180074868916476214967207264634684807478208913350050293007799471641613302538445682392193366365180820500039633513552667294847169364115868384522927728463593754334852582080905055647969144786293569054824909764164626769350878821406734844391927281532777755914696644332587780881150269586157251154616965149112719198713234850748519663159135038412999675904518481847574650556016939871032835469280464880329268864951372732469462152300083460999321897149546277720835746175794142564433298100990540239639896930383452873295665941126553432776684241347334022868438224699491071704611390267690902688308843139164222105439106280921158428082260028791065333088101058574769493444551745129023105864875868195322512032685385239951950155977597217364214423082813952171667069312727543894109865408883257194263702699998268168288532769632786035326494058613324160394119905821406673839946943621724275433512942395484947211372183356471772278508506806715310171586929600678419271054314361789265780332943054767381780685845981892459452766134290912505676200862249433891329026533687377290113123052000993111196533891276992557279466267933575558076857509631150740552459999306715672225418449870933395650160812193225699518008625120569596911131030454161663072123687117673039228346677353144302591265305394782614398557164813448284209599838845456325240318372601159571043566470231165621868209146811599787943658019105117259282059622595574186356052400812961447752227055225980723783906844174010715463988040485412730435678104618473627811425576188200260862292974456007856994207509908462697016009031759208551594678969978323153884331407347295023246501379034019850960206309781798458820744807726060714400962088471213898294258299654039347135495372496453574791109015354268386472136419239327401314690562477241421055033963092441910678047404823507055750479698374285066580249372649188720750768076446952561658779474552582154192567913144705367231776635777822380313569861664023287222964779641222049787186708390926734116706005384011683811704504983920519466070826432191020729655860585980253655867496077504920933383178158503278011876771961625290441623732238098067837798664166333474962284236556874179689459803588745791111199754344554015869068048907833368996500839495820733662383727780290703497781332011942750398064079227842437142257825254163806113647202659578128375725674508001699374114899989212616495707646329815368826890562008060621383852768367538445112419201464585980784819195096543408476472333535891139488564822259174726023047556088574349426598733045788425636777893530443247315585362007533206864345739677030916491342823110223611241209819534128286794259462200996026991471897723312001215111564488793234448284808291369150917409008011355697267400836167324609234942944377522540861273358101585660798093770267321703488427553950985638877808693767063265852754889806698823951852408333589534868360783454907439505661122731686824362062131178122905398302911896825718401828422582516452606315473951367715844112256038537837509773221445804566644272904068403672741953142880797970490368020466192454254244207149847430769056168088050978873377948608125322943842577570725966689802170884640702262891552534410766166810945556193650995615711939306773554460489712212839933545657343911375763111622018872521494320130343785385028125011375062395162039504441004099892212432694967898034621146887273217671470509110507668244547693065603729402930585818734087418124520673272680615429575209322991448080685068657366603745143325626661248742658386437419089462776867567660329453189485546372812939049405251936256747149954976057722237518202687349309254464670393567637204373362282769826389601911640736172634033352799848605005020288298329276552004560798653112849285873715448142305077199729002564149604311831816016473960580305034088876266477149797222562657985798170953600929783601985795802659332503201325762470184545668642922818115022298951571832616354700165376395524837405534560411207266895403968079686875835273009302768211307623218440975958693864576704729675821632738672197644582870201585874417105815820378441128023094098063623648484834262495836400568260171228256405046110027788067445371121247864136868511357324411145850003011601242576844082195308649671604436242891429545625736154655675140398985853724445044187660479666897928192218941632880535399625523586144548505511994730505362516594432942348760560346942309682592931507264440821713344899427029405398697522246834599554498387857181081032528996654715727261461449561661684068963811198623230236788235822829949390520641855495565306282230993693181421542778745686805915393502641164491823838404425856197320601831113234811833806666887323024972379237810047885789296951518290490384303122049347701095177075106193217658209871249973477122153172352387400128799944129609534205021640694032673869319327130122359082414499460865275339286471012695122648491335694827292636479091565238799199865430255822290919492040736627820501867458791413572343377179534226459694572341931423268207647936302191166202319008328085697026028050389651830502360115471535512613861468271061002191420601953079483875013701427191898212331843185226936186434602774578418412432514341120511718097331650842658483788737067329725349742407942519870290836377410959281105761828948625998531854918426090543972037783484401319296486322761074547626800841586399405110681118840039722327288654819964515642863014750786152790007406467275895906544292536521025989856889432375108920871595659132774567018681103840230589149923218871358859395580185233856445845993474397574952292291113657289935910706136158667203705258307478437256598965753594328256807220235008155258883049373863374666789015062930493751067445660635236567826068962181492699906653730824493896653713370331829784696449899232888526581363960687968874671530993580570675298697333393621255922707376561319356519985065777018202320547548293506036835393035286690815226123461233483199429767592817133309612074667994826261971348110358048441378776880123595232132364507185026613017469870670562349518633405923536965742133093641554581232833522851884970944847345566313509025235122494536717503887698416016073310029594322044605299666863059319427884509169796087047772231240736552288635603536776179435149130980643216229095036449090762731128970045631885880489775126605572574587485390653974948082767742184194356434211151130880132172839740436898515120991607615948832673059348022873685606175868086349401887483315202425417489083078922751604451360171009178789590051132048349304271819893304361697806809367453531996981587042506781194833767884382909204072357108664467139091636367495655552384201818898863059741417182949131800818201515545725263609921359116065983298975208043659883225535825806292006418847088615435509831101116565031439757327111169539076059652634218137055023482627750668401022932203738006406475115891803455988123809345625573497715300930333579030195481931680137605400012255814405059586134405168723084820195612508744386117897123424281905009851307217865991954632464994358996622230296961702274658198035323511070247819512191511624436994063724996428327131733895560293120333583583757923102197222004773190420150292691652987969340105983509309585923978665788277733266577247905666965848226910993341117933289603079673597643925925265345837625818267301468144469357245734146461667496445390957056335650231706644799977610971121436981918520999392317092386663029995297279830803140714933289684981981778334475816481643618689988040641030306596646343273054749186254597342210789168692860750516315909818508556945210825438362301522333728978717977836867916083717427098640055444369787894990003302478929555157025665705301666214014657914142668143185301554085464458101379645144875984158236924564681058426831486451889559001418216119742960236355425406994136948890973988760510502923785068225169797728167806658048414387369308169176915831826444983917840032197507353703523051202837255303341847214572354276326381682319710431913213813339434545399866775072212918442629765272032947779488726725408570946935270230006606725520050498033490340825021262374637828491498363777180997469553671649402912095646417171663933370015517453398423021279707784059990111791330593345697961623498678245344174175207170651487386507517887037624052726475031378662424265072588582795557304193117932481735139109418361117903152041257068218538076455035193489098614535240281598528641588360312896502209632151228336402961611036318002528355769633250860865114170494416601182873133845480559092517948941654320191713084260141181088212786993824966581893336253273660551457017606043862264333654131928500954557665753313490429553749456092791936806227373085827541758509390473203038038727958498393704901282466018504768985769212673988057272595522959517514400342269667403481390121799899882509817828962643615836348822735113374333691545913844904030519306915544244890041406351267895787648996397943404625495135145698144085844580502472869834095946203963597287589852478787257217109069965830474138363324380438698846962352411299986457727731792085387333264460983529371998404645363628056641611296276645295845530881901765476552191810791987483734066463217174397343945700587180313461332287412578109269684418528889579438484091279352127930135113013959058462400366512896102934889977557404727981751931310310253452728122603258154453742420257786317115846639108967764724763019219910045674302090090524170628730529571288411725449714492691326423487671605929875696244519975536629922299349712084095704800246962858287916453602812686173630637180650275311851177778806876888735216936082288351482489971780493660838170871569650065956172302698284270930528777096798230614515407950292287884152610240183369056566859014059627716679027085543017197468964471731850201605374134538068359253088253849830962562036937438515368780387604576445510273276568819048448239519672292509275406562906374204265601787850793603362895403200908947218042029728891835536054877581614635783825590977607690664278814553082694818491195996628059989900155335533847921510637949790934556021950959663562220621291639221690907857037740455089304321909168623037379242404700876947671040503552055957663212040881031287745118818142029898641771751982932143693929405055811601449441548773314467663411810349122754575717536298377758173024640271529758954151582493458669997923523600289560994310570432352705131228398310613039959090153863125903923061338140118969069304369618012203646316522973305989519246773586670931560908482637469666125303795536027512195490711152299049747309625428419222232791260573755676316370786557910650317265588216817972630121322837765479803164736818811236841097017154185261113110519489192106154385213477154055191729722723650930673342403087675121654141745958621188804195872763138598037518785459429099741779694750514687912782027335819362138727467328018944023579224173806666478140529337807789542379219951572322427934999753325532574275846836221416440721208646196430366289956953975361766090608559757594910589621211285529449781945292570345208615002175215953317321869331002200788971328814643190304518950413986553618709900170747354831178025197395589613347969491815037481714628017098004640882324509306815242051497996865984635621434222013111543959587402212393703527036892138450216207062865751819874566052278264340232438322676898004105647850851446537221148296479562400812233570707805671654077447431370717624681077539904088478970012703983720329438349757953366891125443413805283454203315575407037370415438629393844221715807460284210514126604538553340716499184482475349026863435197544976313260706565041651532797239087409891251680565897459350768387113941760037750002204392152019284933403351836429059627734771621007006154422106391113064405245714524398699153694437839229242683521164176304852755711611225981636975069516467456082660314308487694773570305540503847468311004321416784114374774905772122812610687324311802464906304936958932303295126586806980041090310509057461614813844994848153904662703928305123333828059595970539374569739806901702296226058677145869857363813097069569893561526292515211517260783633044414592136825991820348787247211152876214268766482299699946907113569747541452201427294134187947798700266592992172193698783096520221472122347861829379887278586128192594615828428145621550484098656057758297372471531855766645109350877672487649331483923317228819269036669441015103102881214215848498163603491522489385387309600885067333026639713654258549780276936602085523749139619804005447737210955716057043690243191502336123367618394584068306836824396148706440966290412800419539581243388545005751318189030869355710771505416612384632042432576853165856895252797693264009829373082191235296616176137822711064979387267094405461725722496616795811300096276116947623163449564045792355267806942695399396908629174856146887915331033039346506541066377762851355725229708436506350330784676213132528799171905147817067573417266530175661081024487480403164282982124198568122086996820729747329692868796330914656854054705620305104323880314498063562048534788895482535157348011245999159896866227564759290333501180961953635554700136612631733867221478596418137558186598145580484934918846518062008322271834960087072380070615411314495430909153955183564643405227599367971227653974594318094371670739508839823290300937559552024222157313810863398886236205340630411215496945389033965107762041527754572059417069011675535436325388104685258718129341475554356974831366917100627682766234239742141731751830462393034361824978641621266940530858276488229488313591778954002504479129619690630377958675365760625387235142968657277108401206155185553895289285794800109734097039208732820975143409661478724785422494578239400953522349553519100108338762391450055844484371810713977544398549088327326079763011781732419688218064161291650218559415662883029864686486023074912754005945590412331292419889683679142800463836673832269234072797443755841429995455795462417274540326591242780723561411623985967703365089871219531459856301155266006308350484164389388575530636945310948637962692283641096443527974866910368932157155292304782174859475077469104575413945893635886714216907226641859449651776212798247024737434228813798628002629324307031027557999221012182779313748984382022370104020629666939500376530544397107325296568944607240771963241677607911163880101873722749031299668075933227072034066671052735311611788268699065595911694460269753431920567602725078903290193647091955428552301750643074123053598145006293025894839598393156254979078664458096554387909765544653860973847804350940628474884740497695084946167420396628988262978702596755415274766048385725219868549980003792849469598661624275768237980759081466433038140289172522782167928251709408508945399376218845114629411978420259364992223988428451829037026104697965387045297024590335890826360984123675742741593131330242253783369586777876153062411890302183598819723307204905758790264069722359347998855354371225161710678074126529109816061976824851190987810394540340190197940141135329926314587782344074820056789394751124133928458607517138049786035244223334298193468223164262951293255482886169212684252220454804515109132270309811211215108105694708078219794448098580654015954595968814396598204350635750021062080090310145901566246649509543484454943104608161979060419014844820013263349670411400869790615272474059178274848128434616260293773938655796556621451331299475692191463224124196111654517960448451683464465310874551652559450729516121988711820455094969948727933644595018310491754495295166542435274714003662485147612172648223789978955414874128078913571437795281418157606268288704797620226183182024864730421901890495070379027599040021125329211947712024124539011318164403013197795343916514130953985714852356644465949032554183753049472975054443513045624034397562714430035679245575550341978254497770592018675794156583938017949799561309597196196779373946627677825639566772056010081080312452263533304756754045927608276620393951042193568897181499683609720870580831557264667175852199002302977960285066124146508067904198230814132114866355458273794676774296185188608474064107938152555136353968313277906799250978448661931971693361717288755524154956722793125509848507158130089599628645758469228840662226755355393438311611745599434148890268125106187436781147003465108243756665629213160813787306193409866255721924549430793685711025905185904086788080411176291371960402024667762686827923053299174781229126562896442117003374849896471046073900556964807597890578484343622903600592061197090859587726325851264773170254177110658461110449727225981176628399813824867190563933905759207099251050021911551496874325031269132916337197810950391742098587770527676536866636144986785378464474455526952368047881003414882870082115046006808940097964284368528315869282543142801259026602380213311271063484496634063494677265342053518631688574301710576089722160874091578121754990761785050680515385245087175439965584781297396718973735536727364448308866203373995724536719688690040365420768853932357754550929735646808176974084507827799999965104216065560781671026920360033435338889241373955082481055027610563535080162291101438028518299065874589749514670262210263305296681983681818118709147726364722161320456479438687244315365450449011101956188622980232374349030017685247320931125427357359283199059169607046627098431454518106294624577563188423062582544509704917501180334707021849698789582535628754788375904259242453024359951631106293642993314664702106045570975884789080909358467107863271277750398659416782097754581920464992546013028485003156672698115231484304342129026474300880471314057184857970088187936216241053350111518686610977334045647279117311745157552345212396798491992696120291226344846784647612076785464133708654568143678850561019125622953981154399677869058396468284463479453945134592210551031871982216438656807608665984382746889592198175825120111607444320144744973953811512944273848064920371255510640028604953312404161051144617924209053454110002502919462665137934924272816529832264797181876126750587947717784534498515708637463565044625344181557843473525121476349797223304559042798361352688947186478348061664538808227034003835364665950189636528405635077628567156918382862363557013871998412289860428074912845343674589810688668167335710615519014508967646400275622413317191730179971091494889338794037446099369807091772496973805791611723026211657809966937129394695414282331128816156819814909559547560160446662532556361363119054845685257479560014786406956105032566349619215883814029249719455733627027939533593677610409912600203129524597502673936137348572975063145934397207606911966679755367148227907970469100315868779318741174950446237534682471434082914954425824418495646388955466674674688303533156611760151277451018561069793190875829757420248073516365147509676314845508814723607459198667036793696434480816958419554223220551219512801888646910474850611030727833532479552412463876608824961193811236022202048389670882801217360913801601166386054680578683539240240342971085254639100534871144627034011499408656787560600197290837940237996134743924485751333368644993177726279845656783576089634406224784703166214672760016028170135017416789582241621891897316823762632520681707138496089788571482473064536801143593213787993102275182461128652597789728173114315841513353117614032936514881147068155498498750835006744310204830036448625858255421837616358212579658131374015303105125527926573423232267218817125240033085663505610999612678808977189935677153365030641415973667596450896209456567523925451701666625348193635829088543238208647817793934635493204415522618466504851218926804347498947743586407567316353267019319325747483230553640081024088402739842693282721474790181503794140498509877512050841445378063369860103776835388067879087532873864952133208216309152005813901146039624812789853301828731687546983723291958490898278219758618969709461188774620193948785203052926490822359462929495142430046454212517130666734687509873454619724885297512812715662035195763854667059213848267702388072799675149632044198181889809122161764495207521106421873807350080345931572284724184738506116294039841336656983142105873888052418889052618334101592817797662590463641845856987945092270636824592217480539994546324268171744456206461289830470644984548523350250062810959057242453695226154235064702010637498404928059536974550031371194603675408885853345356181929347914055029874806830539872840149909660113122327791303694616353243613696915014766785018093545898055463104701515832267608365130144113747940993351458342427430563952741909002774833883562651628377650638857676664846132692542804904631201025334459536658349281105726397877308746499019540078996558935339882757668042852970934813521289944187029537064339672487241462462863649143392235894799032761414990639772923110052255530275036190603166942762616871485523044582488268950083713147668578242989722601242655523385303687346919270761814654962985190909521644270140456720960668651263408483909891924487226182562907333285394249025309194200688455005187713898049612010673689784425508167916615537292628592365767014052090906517008570304562348034263786305709729404734923964312071890130613715284566878286800884773516612388901097484815267437048741379616652094244203924061624747765155741249762067878912450174745734837431995200089104403786770447375252233593592086745782994657153827936575856084003682877657861978544085280757097429689219422565927789142752147938489722045448636649877826954563181966941151935257733523004207875226889129568946371813388237939629027698941705034261519097095564146277609176477425665300054624798387958662647300216902557873936076857885635991654397201213585287834339688489090260621341496291412099943210418442210121604497047035632227715897034745662318895972393887011228980785486693402531821368804609853949629466021542845290500814724631345174102654076811947629352988915431027096445164420175267514445075446094396682131721907064134324724286315036146232614594400448712339329194485030962788911033851834860283571114457018691893745875878406277290496794302553531837282353015202649809507809165459646566173899836147512243103063911653716167680929845501812540145090953292246291221157826018268665345518693511487339596029816939072645461077671098709259268695835809101950007324617741830527198379168862950702185705821298802917562726542944142441164826247868795070215685692890011948600550578323176142141218328008537611440365820266942090877883416251427900588805350760636957801232992165864916496681186803376360133417605350558061540495914417229900865282968872883333501639217051379243609762849487912551347730859924867998013311684961352073220102266058220947817537098151068142528645544425511963701837519805753332882919144893186735710760749131077273693056790026826289457085933187927641534653033732606759925093614979631916379011166019984560067879054324861833490579506915523790841429530435269506313774545235183436504439121135065213362443763078497498519529648166765456849427703607040986631378150659178721146455256244570201963081970536793564758326106788424241740681470352044902523331868730030947736197466312041762774276544058052118717659713401425454182163825641121169860667655019184140073775567731827151323714753002743014826444682571960599711340502640500466264239254598714049229592191450749202656416027768631355691144094550835339375630039209444739367623331693050623978018246459475553730396137919068703741210028872661614132611728394157761802825484482885598529880198059872213110743258718953501921241094699730150556313850150568238642393321649281913510040028679796163300330901196627691282198803202232043050857336424918015346724816220723813142855296984378726970607830468012259999740594044231799390970568876873175340537807273529557017299718796458482652449940325836238819843327401432210479275353247393563804897201372962506653453306027386555220973864025512620279966970985169126951357682970374762917085555867959099853139479320011711610673465025793774721020150607759596717596871175852535721309651232694722122969780953748453802474642153993886794136761087022826622104775978892027735526195206846148017803960739376877390984881839800689888898414469147564894045344939393798897886472867678065454836315698052197704317481346707884068500094563845440074362897585188169210937597069545766763960170531970045541198517940994912579922259151370022316576157201648549444415644915373801789554821274320345922543043851593921323817842082562112296906391567198978511873124065089104988512672155368330683950255033402713951619584373116399641572387530695480372471437849925610115980451832909639537442795633393373779654325685681668561166772852338030897145522227981326194748916012188884010833069908812152904408986475866186529851275430254581524047359633798528805935747079433453829575130978783123239511703182305445855749455388028501464598214601049561783122243190554815690331258005919766241586991321800398176660604957960367808659968394115446021696600172009145503522624548383132629699921592406144019414457374033740038826892885047306344687451189514155556120885401611503869102570442716380634512263578742851214190408109247025271831561587400727757164039711924072857749903690206080263623044621514094774100093602585229850537618425014459889126503826765564026406479861158603955789823817865588258606396951111237056289595033604766580255223695212351182520783298982684812205756016412139696792528639460923263639372897448871640816012310333943000561341397598649388719578755449251098369319394080502822908160581439809150436320596650573240618218177408191918262229509199071996778615629234963556449533844694089750255447156496520378714287103767671967437870727610833244245874862926419347868310510564473798878417165816950480773054417121706407561176671709480713990853116113607912831203138648013807082287525318315641787624046208497054193245344776832579070795445485947797222599331113351204316520609816744550109507829931955849984119385354981774925332458064986552954770985009884983780556959161823550987540917538482955046599014852945254737297581452196681177206965894377182024850835030965304727216632725613762907459347070542156394833160912031801771373857461358846594017856565159922809196433506046472842019655651278760303786094312229226846526250764495016835504432649194958949367890658931556357103909890054787578941829759107269166314883201136993659757724806400213606382023603448952414688771484566066479659630118445827699518351997936439740084116598936947126973550887587098005652636829488660661511293461577674167481908581590354457563421938387898933102768236983501686746141159220974601437520745466616928850674198773840578807225800646754006352298561795359141232850745148182550704249338146819712401795121724714387145383312555537336725537826909022884448185797747123824365350988063783184702696221864884634284332443810742930205776098214472910698648268259924468007939166045980743460387011820901193280360533723093068078027523330566766105128572883329342122369540785163515099042213278658189994698295129449665130706081710087279043508585170874043342704928995415209154582986477301121115520282189159269232183302476757232512375620246508152647366592093872747462618700513000058947343234209555143194396753630418525256218183120347119835542003091830198551720361695341063672270861122472902715713727160570258370581923292644724210906228323716935860524375676516884671751008775031129041954607083051094421610808747116031660447400065452901047284079334785698682885245335650782705150311028102002921532137900518207218906634340362608376106470348838114247143880622299871240466129846919372136776127528246361520723615154059554822195962859046051434796201502993625653877266797410542833542845421773158349131304699690964826614301711552191258612486930279506565597219007305930130668988610662761258466226186553245282522789494593521562884083987768401507059436700671637357959861718248490331078971796936226102031033952361015709540525711556304689687661251005262926227123628076904984969358134267871746222444214706003961808197928949781787415859712147179876349547905089689372590148834480843332150657834241340666972487049370125961490688739093792006828842871485046915868538971893093985595792623892046360208025644956730405502998632737971637100209916874510265712732523874708221054305392205301934160640281981123807159449434183427480115728268838380607202829866477146181144298288869310867511188084985581196161455912233370189883823433104548056444035957574297070239067282344221740801888096884176704453692772415125270731075925347464368171124962665441124746514974410589946479609233168966251781675280703621958202886602139925804578026492806165774271324668235182816888297107413075969965000083427186829344721661147265139450612764584989645329416293772407611995160813040777967385654819846128380979575134520870497958165449202157931867648510374289067844119318114042239100613687671247823733352071370183897016640966130257212242366071990318890208124712258054413916144655527744190687714456359733251956630067076557764516984369198361253213939429496527984778732811053757774911122828545134897333247874090533510897648434413029928700575224043280909153654600179145123377962750865256367632902594138361480242797993275178591570929288798314176194367307621537507515960172954083039016408940194474350538673484007014985067655380964867897143142478437158168574259502226536254128270959886148946416977558704771011208494834013063487352262430771880939194030948268608773788987691090887676039438293829003912086534642356556384357897807031754050677401717796372540151349472623095328678709306052237661168346824367453910067648678129419645847055738523233647126310477010269648822460240627286932169312114111987620347976156048623733384876594460185268839790351892399171414842048613760408054094084622702965350327042198797855084418015038469332621363223455455245538539209044114388502882699315797836782767145375144838641369722358240540182051541014438514789270429308381668849423689150116958714345676531667923161725544065546037538047408127151332239206041211965676274739927736333733445371536330451460014455215077535298305257542150157743261668333007085606690789257348344261597808311256715916233330538944390878767040006955905890991992428798397845732051426475334840404796759382934066342151929168153050644183407453718980052747112455890091442793865514150673477494430169527437771387943846264827536702756715846518675690788472645498696535575540606104856021212214426517699842475765345572068310549406763415481335297718539645066032581932721136095402817568932321546035025556587463376040562326144659680284416194021869109311135635536118070492610132364806994797876599055474883092043004541258324786986233966994308238684221686939022042232773834922978191192534166357287381894365205698025765291628307844913534686877977208200185968356453162753154330997290312508000180833483333426038202902793602322546542621459949910367568585901653409476102229430137448013150783170819615699464418419218742797641435397282684668260242490187874010693745955646888115920677152222166994462113211906948103696578222509404161478933604947871372175294260314835668695598137211357243085642547214043877312826785429128277898224322187609090434736948740586248209589812857861789430093393499729650458735700210114305172069195303415910918310248277747699642627058576867289960753569886021404167715931885612497530482073723663625786704044931659121984538928252325077573781257458278543759027667237956188408143689316441773363882566896561217457969776680290348345054655787760032877949398909818470566194409980068121965690903411779264557300634566920008131965331059486497973553512793109549029362256628823603857451715661013329532351419355072988518401787307653784192644982111467854525843477824364785736940295123930457621108237542900986060835402366181761322410175427175448212296250159937870890981990837617896821134880213606821409169137960790659376775719683940985494386350667857192472836017947010885945297988010192695521393047226321817477911903472516799543395060035433512600572362690964424462188311091119408621809567419698456953241647168432248822217732805396427296329596652207170760495949972810160106861442550114061721878586748519813550762596218206612017920444804371656197314419723916768435710687012556600073453046690788905126226556835789666901603333711442879360665341689317478827222189932342426409010842054050396830150133596080096781274703067209381315383722170305596269157249467492973136938644735173809245832092998515155931007099678613871038442409972234127937172177948828421323742618452819469680377391673929610131046961091843349677815605996396494828346185964406703024651185558981845187816862206292371052125293195182791111013051094530772401950180362330919605570071465349201031627377382361667468851416119582341503560954422695754178840531831975408698282090643338689934911156932325893466322815010597895225230061553439217215940590852329754563291001054815274067432074553649339221628461004790120317722431326301820686184783269706919054096035069437498458523781475883089611009990671633148505713490161803911054987863655853486087676723613753278678471440383632635539362687005118224556422936728314355004735358159692211420029690049437836031402896922831735616742088059541144674727761667244716288522823340862884593519028597675849261908660463852894439368849849252843070860194425030147780810864204140231491353028980784394871044174595662859425721441741882126731653744333134183012497954201539067035512322518474449292742097180984442377149569007927076279989067210098585841130897936884590074260251175696346177814162430244688697295408924853882146579042438589346907644434105043144425164300334257825915253411883142099727346471446569497436331438965826081776511634852109266270996850479152671376409294091838736784471921888659994708007334864652106660132024900086239192715649615533924733754199368231563274445347083963482504952958917746285754333935487742128139193598733267125321251239788364382660100263361702669654840121332338741938102102709941155858133961801836823961029543530186777092618381662792917996820061351656193391951602566853464733819533988322885696741458197250307539047287318747963368107731911329481670059688721919201860203840893994305992696975952210826742171660477777981093409927878716427115558129409817012667287678430776623649720033976256559339392612053482381294584969420720799262727765204943461953803479150088951910279863914478286440873727420235875496517153858770385997605816459937699481637857222324211298930972087002770899563607611390550648753177384047495471797308010582953412744369498333322816302375044869091523137605835941774609626081518801787840942996894047726090413856649664147178113874724138385940428409689238147951352607213047844996572019658683169704041726955835822731827950268459472441705607215486414932000677110435681682894079385050236478477400368844929207879390321733117706341398978300736469712992833322374104447301034817119656505288255252707722925307617833450114800393457658123345218028988094532931878415275071619599886518377949608996975842916893782907212503270342507599896938607077641233266064677513321444110546562376545636435694468917723457797547925088198729415631227094466394325081418265804224873879040670173848902571160727199626560320719630457323320171037914829651182088078016865372353078225534073967621081486547118478603442214854466530302252945133658357273629379134761019406549943031472738132404838901573341210463013283435018150861859576645800146922562187058713680657941662714448295777363570718879641292612685509394363226832333258671318899540137171013248369982918349171564976575867810186951920358850616512685187309680428303065433337758864602210525948727541759434844276753907220610110858064906317986509194803472215110072592509450830222601572781493390283589566253341130695296541743605534278609228968949198439326253525041941934695321071191845306298724821410536229019934356194855436181144008238664520007597382214307258360167365792421064501262776860155955668185951009737464223679706454927109774487734811555471507288084949080633554531605463100279931131935725344171898823344819076998409805328530446307159291012149412499878248761081003677151140228562138732641782899377348035278828254604472249964529303052998317170184526866059681290093307387566053322202602500362808093229674112649719565462279163784451880084526445467705165257013674713762290517953856412070914348762505599597146189635945788340573758297361206658674857797205763389673567117691895910180656051518646223257295463283680498121321148422518457661087902227760148181521938095005603294196123464763474680347267519656148638334586957681364102374200650711875162347033010363669769130255991677923512124197629762278761486543181470215799917457573288477900795114529856395292857783184333227726783682229130694465199680044391553668920012547543829576958541537828412460609100610931076153646787440901928306522558470293193358290872062612231764198916873541932094318542364509057337364988293382127875792860415189840682793375176032354727930341975306384947834422030395529214088470356422044284670371747715563045607614663942870439185286279001428808090228572440159720965862026689385459122723833169999435036942693513446443966544008396468121309202332508283766943221144758450848972054972347429138432882389739396474479881788485952583452008024445923055985526048441866594099089643288709503314477551356830431753294454175794272074617336497884829330527239988290051253013085053508832855205354882767616322578831016041847145654605357057894649885610843417294424983917236446917253218439048223516787455399360117538049568056751416251294424871662592881616322479767944694949111009045663344929076098903420952310537866026407271717533370114013889305375356690181103740726951411881994225070238024711070124115688135420348916523409964215150826328171892329394834411262498208681377618587189246542908234858350040120970794708455036754342761140737355151523701325218346762243621079984586210563477051916727162514873742971061117062355364319298115840799301849202495219355674441187829952833519690520873580693880391165002886658348889954769788153351389628883285688445701334828574169445458448355676513615334908513502764558973806652207954990822820590361162806229033431610282319857109101128653165718071122962477072755306183881534933355232471237806580378685668074168545776974165966785449457693310808129446394696532770447037308995267541524344918546881135423177803658336500657964359392092621875037168489477711418710410921625820904710285954491848318929954967747307454957414953434673619823331142872998096159378577077197095465636485767361056102190147075005430390572606230758062356998757173689496035428224345969368246281758931720493170624916651254454870763038339160788415718937555014113759087689993165872133648014475653951069080789776224119029429124756946478814942731455021817933316173752308899287896498321398056409606288589849941358173631975795588669562361926157143414293755355926261901529037088518163419197209354633913452688620169702883419942025028278362945976356088408117606590310256676742498262872390608914766443594060207413696566946328292855597177754693341955636532460233909930071914197604727371092601354750105199269865958660163193730312457314717774190660739489510855471118276180986343101442956149518609029184594470655436253933699045362916200580989339362048936269234254149927018330220318158319164545034931100659520549341160173047488562978861105031224999792664608529850815962972108997717713506572638177594227328489058802232524405090172177469002014089202455584357979760572821754878482301898485444600644898163247222799349864362358441344141661898241126763649741885105524616985701904672909930564684351302290776265293212961814996673943070818688146645024624831155095808427995142751341512936912635771478568787567528405284709804649897244380634807329772771381870105884051126861273500970608020123687415092210986598638711164767280743237689868093869776458288057978547774875333546472789938304947003374652960494007231154932026706026588857730889578465153796543100864378855024841941543029331502706562804392263879451678268204649110522721776274756318252221795822414869700734045332723757794684571042051718206746384089821918374595881348575098531492737341407051825984932397474168954622747887017305304627365637852321063490567900995546546450646296773827891922188963337949475325093772462394044755153344041825263231974039339727075906944376373923123317930290747932812329120945201787964159432744137835858071485424089660269809722384647122991614290535609083092101132346479469367108527445614438571646862180722153984767582084963424154446004252063151763553738882444177537462023460580456066695710157311805030299499210442265980800690133504311613691752176852010802883838121190079799241960131209268148209866161591771596059674448355575800387776057200095191184350327992079500927259338421368842007738155019068281240187754504707621313663393377793965878254319142075858640131089363707982932587500551898703399144641054264090820743271471747281625478989782699807003044528455202653354888812703398553847434080267724969335835552057772213775216441966695580870308071959290252050676250250464682031374202626610070118693463260003005304503700315237768221466214157857454373450582168360135545390311823584258703154151395017906424244602674940437692008330325265515452299034832163556646297158754562647179469117973402656221482698255655581842935024641323613194224484595186086957115268109221896202240618979568530418295887589087543203246666090856671900679538126826931346811680348529148677467572263200252792817529321298956293136339116346217617608265727526932797431040661040878342242835184669680300492959399774001403752623958330900655624679714562140688935557422170364037738451703564570489541157621903453298397612667333227392623614696941045648644554537667472650951324744183558522267091578634172789175950756026176681782493469512013949714716825434130312874053335742303109351955900721345774706709872476999384751680273080794510960439358874763327564391430389338105557353815697985489691734965474251518322759454860233793153421060215664289941722663118938708094992103100225533744667063984433960780363673406598445097930173381683110418591092201883620590124678543193946060913360573402241896160436433298495863887110617377049975300242965101450533716452463876702836013979446559104511387986248336093444674816032390412753530982216743921522133213912165301276749745992931988402666924464003586717602859079964151441850911809311858132689234164657947797593177260954885172014962034921886702925385799106518654058009550597794100237210394716476370564961662706841200011865387900882631324541030523282303579115312620636568911478496188319034024034957210360109748188832462046646447123310068073554930362514352933274874228440805884599103913478560789904954001237854084328508554364895568865598732845268804158885736773849155169095369613332338584374087646956925802366353143176468137945880296943583964078030602708136497501505865159479296587439653000577487187930984813797000388622326102303858938704713796643573908554977867449312678555635661489952199966085308101778872580269199092657821282797262608582165505625026914103378787224263117394942473211974999833865711145461364950202335032242953029952384892423161697793455176864443049067980557827510437669892355340198997168300054810711341191724560622430541578551181175652828031227447177773837450604946680305627067148175019377791021977278000654787088904798653267160794973870090203082414048724417634217727275859780871031751860226871014632110245036344892332514178986352815769132323126850945108519786979875583918570129871358768048260864438931565346941401047471002925156231717795152387583165938231813130811077632062968070805710910389356229439542042662849204945776480714968776983714932272607487469499003562259021382519103316330587274777107239778826345821870925583054830302942924102417296428131680693130655364327516668625582902246731064764323296719696906800912643430715047117762304899776692507796748731661540095500595473813360197858418048678911022151036099844252457146632565608911524394990812738379711479802933947624162531787786885007392750409785348549509728328934730928937931627235954487588714408186234834566386992818776468583577068255136085537636695486134851838598015679829995402045610599463642780535476916713798628356963310424476087317717332868550057828955269754837099848982260002604628899455798153642906580371363509522735268019318356671546498314192583768954315070332950241287396912265843474945729689365371508927548822851991863584355657308688771553943382431674037944871349986123104355348494862380816273112582567488653885961334487349196184024207863415407048736165963093453884051194691398085668947318848685014475374823495657332581489150625839887562829362707373019208306110671963956556975927463815936265312412755100824744349192435485605338353940431231019936817739587815305026189284281427495684897988788866547447711596915201315051309258577539083103086498925692033399229043384384375043988866147710404244818031729909247118800362625198032524487880108712668452036216296898941249879546929634560701578279862906734077917083213588264454675901881052148075059104435012068524016533473227143815520589618124714857566462348061622842966126268141021199902128571274430706831248690766712826279822916722916956886855869229076398381449783466904125144614518341628417899407686844275699728527241169399149672888088861436878254890582687825193377513113773767957840267445023738761154518913774761758074192666971063742593752199433114972816429130298936501224395265491842282203773455006504162689667655177914597065015110591551326056904449608432034923905431011295596042393042377582755953588861323002563877430451708899426751960557573324251153680667698609938955779626400032378237451584282945983577230324669658979315100710388723352306804773299033857131693079975519870535079745280670010139219350345701980320255506805980072402878024772750244274983967850301123078501452948235814825362331291119982850454130838105599261379994979586706537715851174000682411727101902083350837825086202882130104970891238939106229471608795929113356098352145066376768599975169599440444518881536694091004773453382089523684583806960506195744073225990559509745261001951206547904823460565612793910271485892187379470180886311662145703019951821799586958736044718207753510315961455832648927827824945916415583050515274631359368421093431464262055854886130535017537910228711364127538651121549282354426268302454289369209151944288639498874008614970170229743888443877294069605472896013139733972245043510573155407861929182615960177652577418954737918029470482001064394062241094771090013957282988832129960618338181718077256961475305805529410266303473846031256117265279211433244840074459712233024795160674560256912781450329806322276200604600111054937754130921387611894840720340512718730017216567033904140459771564650306103739346313216993525515752268021608244316472990099632368375322115102182055921320164571652393021657757829268846159257833732243124794674206225601846024249336133392128176558039213823936923162892571487594819403986586848641355428064113473855376378913228753905125244994140048476056289725807213268363204258036728445779798550683496080454989954200874481247342289530422730091421907145926853509954445425440453057979792700901631073588376815739024355123742049452091696794633712722178319055359963549453471665450721778604105089644307093078240267358987676744791614540357661029881634975993589898027062120760476514165996297436369501064515934288569471141230629506220532213527877270636451108683355835962117820876276606206700345332945813250077901116573517612844728389116304946216609136343070924712139171294189415319554045968111719335290536158657011779706435872956077072230771594030924476323196082026551097659733429118308333834564827108527292492867858340164450416012355050335336226445156222546997880888482320585562373910981249135362027957033707564492531646515623830738018945819398590917579327351574624290984330250131171520839124561823274095704576766838875002953471228279683433698018697643004390015597764125357467030903217224509619730763499466660181839252404672367526755359110722352343102189498004684794315035691955254731766312896202201378883533658742658109548340766575380875459672151391257354010135926416803623595496899370209794276302252610368018677420861127094756977582596183521621516789841917097376497747509700501721698561961366915859082745593627115304006153473546636784381299379041345904251786761154078574081808037593549741186110554813601648609284614641081111355960237545919528214860983329206884504767850413004190265619626943684629584751183827987705083476800980252629329470380424135553624097020774736873584776458083535784409923625720061296430035184743037112406647511643812699038483137902373668532709018655557675963926467968118203573185241110315466385074706278551502991743073696665985599169370059272317671512477862259012240335617857708476672759496091898253702961111629188065162434137183999599739704657825379678237312994043478877657081060426908070489635082922654808867837602036315965189633553972175450483479279970420277743097087459892282421796870913275169113106714270672163589242259112048222225060989391110845395317908798630013888641177771778155005545951350365161000936800403242417893025164290733815822640078145173148721738252394313637872162715481260850462953236829229634420371315772744493436955205127806209534304764979965822844255419667633816284386681963103765150432943827114586300258764252125695745778302195641094340759199595395928539836268022435264801071372396929277564552925066969373528094842195290336136532471897508026176883840482393798414133098977124794704557161646655642021236555089769529828782885606546165996353925834447775052259944091056778249905668063010841097103941674145606079306275753817415295327657896898499678165954520988467435319227450383836868583707615965251770355268565211596281759217165417241177734330754086131220185041073965801242146273521286737446985277893536146832143830562128876383457932199027413263900334521208756498759193194871317168846957123032443498764181534458225616566400634028534785953351546156077935958745756712343720068085040535715693278140588532334764866629427832850699016394228400358209586214431348817478629811430282637159026852129126541790039508561090210300280422451069085248556404270261954484064962240842308895038861911814856740439356184370158514211073020914315524209856388224352462104104341761894751754251807248745611936257093042845301195832343444612416885803765452079912561903488985917374826485606185006154976050130207740660074099929644219132060250924746633082321570937830854333112881559465917511772275643406037355804222216328298571638877066336105386541553866204019426133198409422266809918182561325835934367819388766816310840159397110927896192431711402603431197291728597770369423498646805516873004812471433964481989342448088004569853890925234341525882213210954297384765106775790618549291911827848695590107867918681224657606467209896384158230892955719461076825001123979829242475417086520097324517728648143360897447254831520665404887615809884607204417776459117439317044940048412618796218871361400666511710156315451736146752903426111034360252844503322238782205262149565743298409187042109130010401724021372945075034291681336052003903958364337639432035751958335453050632575380373943202050858376194217818529782402597262060141541193637863740078373655685787435144046358255381144124458480428908571803581199524624365308562006272274831434757051513501198791327228262985430612356579708016280147168278784576602232757697761279592482612810069459145742927217068138768874604762564370621435719831601981158646979601808245988794873948755259177311206423441807031197412295014148687984483183799109993571376398310295578263002139036074980767581629600498128562678175635553478656572640565644241242711946291381448195337954868859433256160504168950803888813953948661077733857378791426630742742895730033737165461221333781854141383117014231098195375757356846548230979003683213479889949502353031535530721794233383963667888654812821110344287210220561833966851969614365000307354620911478327130160307613418713325349506396527409612519930914123626628319438335114864621382257847678648835792918103653673912051212922650748449235821336922572230189902875572248290938444066223834128365891502142607489478856348462574466413209205431571465959979938613866229252317724437424105160017155041901422560433637711589908500306173031878845069933925302169955561542566395557704754908998433945814049978065898539281015855813719429422743459730279744871994751537790561924357237640656134714480614504380407472585378057806342803792533145583664961636029790659070258230054678022468803212356831629487762312448553614115104511956655674764489437951105595285625664752671514198366197813683743373768971558279530979876392109999917999323907399743827352576453187370602833462472883773709449958195180400591565639140535505141803777762554814692031974987663148058265299797686373559614953146003613369828998441265931078808432742870254080963244608918560227077015866030537167630871698786374342453574039919769241853242809116632130961326587966253413197033155132566680722945217156623035921809089996916549282139405629851590316554604992538245949425156725656816932120056956285184576829154247796905504867005280860111378124513475385335159545906422582422290320688458848840600890267084775635573522544127308656484378362355418554108444346103312254416351144296224680815295539850723944352600918912224248614751655731457312490830713376325220483622262730206668396926441660787523342779825250487930547858995348811390668999447287552137519248257871377511562478394776774056184832504459820815714777500311972329744561109195313409086198908324449141935272547940543252323262642784765743916982866952607548775041025595440128384726812280676528205277554064927641686271627331256062513174045833990641528985380692694227457189656311067788031058032505997127748941111971958488558500218401659055033233017662835189911245687974318012148047988179495039888263030235252479174899863780291591136762148341287582980331932639457228807622304145920974498847551416877404387534403735725704923101527250131498363123754116685043612849481594609546228432440097183237789977054641054238763876692838865229843011757290445171353436227339915113931854351760065123551725489831044049899186479486325345130970942879646017774344524259009186950410166147082499848987101754491919969597280146857494955510056377638482028627942476544226556256426670511894433236724883403788028719596600419472007171181090706573550671100741445556898415104035720651357576827100086830593069736620886641815066503536134331802899754446750828088768990713094432894596396057328773275708688127195903837871255976594790088888152614614150202797328386862110746603504492843266484914293692937790605190360948264852279981535915406769100580849435015597857937680221819147444878960742017055601445411749502518829143881776712996448172235384663603779857197745927369850701235556885711643556979685556253971615119583725792835913177009731387888051161041191876838057349275842884376589787989496667013634387711004185023788844839131235230627842354096361952195609913370309152404226053677500567167968893050317623315852321923070094321259873819982184836349904477701956737188372775880845657846691955016748755547350877666315898423145839805239209449403227074118314196057061559430140765738706307910625235274152991153884025905134026802578764648821024816971737519442499758714814019400008310042491287935748165606477316432216576783538848033927199992800496911809137584491261725535155106285840818872181871748334306800127564217333181763905723999945350591381217888930526176107815782368025206500962758955215211911700153217997468776500139882745292893940633582010213502455181536289746607750619465287474701384647475474570440916808858202128963138216896749620864427188770691147218607588741131184221069675687786979769630389762235931927371495165067159939604856605540502353986226064335806896949086483944309404151034291023082855951743843474499592056922460967426790904164767439241353185186725205101343320124164212292107123778372589494033378209125777935436643012611965891750251712781340791153090276685780554818823362820461283974580027170853107565507459825344907779068092285322333662601561655092387310637339213350534967524148229057227239796970758068787995280576713276614663514279214641952947064637541711327977835071345450397630995059492924976086131700960440904293382803436114919448270015322874728229517110343623253936892981616695444695681250265823318091906178489558872220278318091671793225332859185578965652005941205416450018689447370682060204211486187608934423582983557711236516493380074432407108377640750617578529018676436433102255155497363247082536258645787641428261613674413332185294625318915210847667673261655043335460634715509817180666811531553787654624746639984466675275476890034469206908840560295624314517797538351276372847233577268671880284368287705595052262886886010732570380464959420050956647643850050622245503764606196654177165409875573880139498089984336004221393549108001017399217192624777549773723742542282329692928422748561106262438918359409728796227678486864852848146853878132901795759655528975312542152270426374210976767281067393520319953520243807260688183446922110744920489939335370278280616429487089086437991181834458012759550918334164807896799356201611508056921137968514201512326186020984084016675647378786430042751318336409448428030918971795115001630863498736425900098807665697217134688892723394925885655680056422887458319449551476086792967692258727820859064877661000453114852218998796892890191981709651947836704976582236219039805920150275137413306057181961111238721787329951784464905042236704919111399155034127594265591495959124071947500060331497593149079221907446005257949641386113488230277903077116620738493292058730692645677726697806120590991035315426410373795198570373935006946041747772025969931664063533192105249850830961615832460725236234436718819588687925404733862140225456444551199229109492395402044586693223785541840110280838787454037697542771698619771059632231165665624964018538035859217602981092160468776621234965256802191383249521512520991912032317245099765631761943387763668168682252075430559590895161824444167028414247204349297875592621095714429848867959735338232355501517806293986548853095403369445627900292406412783851646086649109327892301584279074173219211275379814309722010264967743704176968302082871440418861647179242347977986525094705782064852492044954005576396542777772517358729018363733858761976279567342123286807558408725399440064441819174008484907843180951086540779644973955356802077809953319659452630682990502225388103966511365092823525915499409813567100498433879708208020541760037278498935797255006101486683781385506125256158053848707198038530661107361428303455245859384588837158974434100524476637578175105541534706727604490415484920284818950383913724068039672030155538568760889953821266437167191136160229132751693670273953850290811497317917041401846433726486194868445551473917551977284359676063301279582443740593847619666520787055097253095293302358273693977194920890534928368626130011336347019407498350239346422566752773275350946727218493289165542753991044522832286881704678613648365711007855398523490163684738907964533126179459507021836927307459066125192286398658947114703605621031379429620217605519020558264225479764581051366834131937151892572734512749793189247438105966998465586798768731968617681851549389236784840434385888325050755573240625124822044663144619033852825728244236016819581035990067034086043285511621449454008137427830855600686352312378467178202354027908158177742604142977379041813046452901895077162771092361164518648302438731132577178252933403163456413873049694366204635400503384629144440032385581599195282733839601127989961423660985150930401165729831708693969203992145600430602291748729545779481869927533141236746815491947757695516468598216330960795284591111712360202389777155864643860658535104129089152559663100551245494445899658498818981249726466407065041816816492604289272072574680901870688424231099439162192724220883633254089146733307772664408025739547691651626557724098577385622237310039841062060892235239104537242338535341197801742123376017031010033996886175238854959683731445951204488637505188607227974006997560577137568970048851168632855873554003810164663261555172608127413302270578104328477541522482311543076501487285310193100719992380001636281777712974942313011691941700069755568910890968390168180229448833144671425599823457765060466501491894586740964696547238594365213728647103567594045609884456541258451321957121439941758617370011015182098367867203485667412817141752113829349836856944128456675155524408255264263858784725646874443889329123040033341657259891803873648169039756298707994589043971713995839509729047627727510156652642971796770885912894645576217307584679741027967869237369497323794421874871317519554232632254730460758709766689496565032958375533032560235530601484880444597001788784756335589336345281084352114089243376861007336821044838795145749275187104894358218919497487300103066878134441786201740549298238979601101030745895790467527987584520613436837458858341524290329182509544408169538640116861062964622077721581922433083995775795584979091241662341399013027669318262354150145798542923612836915963262169250261730610479467493873502863003978535587161786212151384113042487208718007976070201419606861121604059843201819621999150692315493761547311529288195920935225852797090010847744192618985638265176794219277566066136678263056475829908156731951951957675202261847593051588983539562563990351741073645727799652561737296996797192629906002819717246655457862812538914275790263670318655378739977978789635853217014912134393443180865919589089293211134047583828438033793917935685851725301514580564560872948922063349758993277738544393080675508825344342740988747157062233014260656851309524927459794752371256104919788030420372863956968996784486698915658582415212626102568670543907784296996365675933127937057156922408292606356431208942829332062792684241799680467767153480177795990579625994849663920755331122193318801087836292148293827663311805186731788137178612058721557028947126577221049353802227588812013070013833889951548316189779825858881830091815545484357153670932813916469405394001710604823235222210493106967558738643736262928169596188734297666470660876236473648518742167186859673635032162207130231907435585816737642297178559777109352093907748642321101053755363337066688735610708452524366034687075747473567150812483601735115744750343290751162947302763064227255711812260906245366229100212713978773627900852834583984766013494166181450279087216212734922831338775937423705734075757684491583220357205508123410853867058103235570780672975646998282176139920584436975602231188251546123281858821175900141576973991404372904498870990300614981241290320856652405589390494730800185811214129455176208950231258115612710181035857737758489446379707171004837856397154019974345985707437242100237045717337604894748039898010176740338724699573197310505253712665837144757834257869211000472544242332877341395733635232526430094059701690336346706846455818273989396620467992735773196201481306288525985382051866529854393246289729004639093364090807618629984074183100994429542480478876830160817433565578938157140359435443422243280333451293642041776541809831259666201783556229878059222059218313087308779289136532254749993579136829936814331185984859674919941352222592983079026724475360705060202350545973960977488634720535336297455369280563863216623170548907422995542240938890729742626948808422756758979236862149050432638927193423814632024119101107991014306737708861025630967695499211040608296366654621742923559680452689849350504770025351415335214238463465747267460459083417529268353156941864130836407807228833635298923723497946356499331686301691619906271418816997481658430836138737801965654869887808975005217024043194803833623104641659643129249643171381853884765052355594682067202424120280961424362563332283535169722895705733550502498779720192028205469874952106791072772450503641540854138649503302682707515276329517348802798333880764609579628672415366114137515582992870387294975423787647980851614364020171243856881875649589253614105778845807297196781501651478504402971780306045589746660474082879145853420310518322281644656259696776873200701765758771318636184538593805041538315182873751967075996913208702853850506890162500773245981633441339183843912445372001894297195925799807079410155418296998849666450624290174345554346847564248344446747277824758671486549709813359236689185846012481279550706541482064539147985168899593810562413144651712719106756185692454129418776119261862239606536479430951882495972717946266883278099773120992363506962236707946411612853976353837033377178144618044975836960032615912865292785276171207685808410669165463650640788699921752890810304882458267244429785983194042972278330639394870766724750859067389829074702837126506309074029205937285017950687537391019916665749108595828999294948535643454325839095643586910015203113029650792476012600179905906769881033433615415648318547145351770581558979892631777582782227690696427729745273204229580511759189419127266487041627154953506911677521447880818525717415125992764890646667800545730233742962980840894409979995289064533974920024636690465710784049941342600650366520425693889281969399607375329358032149534165245711490330732711206392531543346725573632687093597377709892670412316042149357170628927946425393945460253253725930602238802500498755571889654683701985866491672988433514349844791355612483543578590079655448330665359123818001495426838346561873519859979166077878421781070848507966584918213416233652346710543088761754641341655197505924544901890613799484628033673420745984577088497928775420279544688474018990489805018938542656156963033895057985284313377782258239261443602943187052504653760696401427253326236627387326220030933327274591367423655830659630918283029807795931240794336655409610871069309238317274456584903460612568438718451085039142321010098915538282163297471530133768306692618303909351280230839597687415921278509060687553104699570488165592758769635769550141757438958899384978437408344400140298230712547108348800762634262489890773750428342769188991809768553761017130361810023340439201361350751942438176960479900406243891797413002693228536200755064865991198007568951531301689494760788361064968900743507366517095402183020974279439941963475221624796731710374030542228944776920831994322447625173779028492984229521184702333938994543223044402164020905574024656376661503664387149785676871198878918542098272201266606031048289532333763592229988930035228109473499708882671647400135535841171094126283713078384714828264508248699416857773892518645947223919949604184418902810193784091174997412146789372364843380450254702445139938521823194647782390197673418100711350918825061974173314188797579411189552942670882320601370614358810431450558638482404524810082498346301779807558130452475556834829196615565166204086699559863381545424016849650344548944930119735131667644312877265554926111992199510349075323136917435483455331462170526189534312976159642118016379017760860161486473283952400621050688379378070921232113039073734538608474892961122107485088980361481774828484869916762868377456177536159833962912689898028787826519751535754341366227050885416555935444097805944232008685117818892911855289570360987102062729299553815367629326438094699887253911775234152461531046457052005657495422952435528210416998817682378372934685383490297016386062971610887042356923745683877624914173261567887908971215589808571941212479467472784594931888137199027464532834784010029194321065600068651031779686524006354837405675471875884851357090445728526143973763685575814208850791474499635538549609120451042387476550211669567144218522476285430263862708591820350984042621983964653726474080740979480958206136863657660953260486110216305278270661047480564944939583549793337850824942916116802113749187660782067517486598436923510255033790189783154155735428839906297188408459561793731825079764605678144681895187031231190806139327739595148131390425034529668828989524187939651616014894618510698123166889028265632978488725461700871523036116424612944041293655009227538318601528656474882056294663051056239316757404540469511242476597557997801714633248837080896328384798260876607572986559087342413779173025034768814420628116534708430291563214869008877408937669005481473315616920069714567058511775048469729949697004021296188315693195292020853538031420171564911962281525080554061621038351003729323164960872006429860732196654525453739159390889532240569115925012627432904919230767153592774536603485704730440135943536316108446109244444710297920413309903501286784376033605048582144497916285024598568532937109396205680074958388242865422823000444311888034468621877982359167666659744711172065862158246579321309160012279404186584004105862791880001080603667193338829157256897378939793140447594933669237530194027507138072267027612604907135000528478382046537966873673968157201202447074827610004126648842602944263676152101619134950856304647238431236111682768808893205925589817425009485606835538096705669730238218920985188048396071531222693635871017339965745055253072460017820455091110803120862492103918706343269711695412112369795990189086047064898750779812086585563534309033066444796961441130160350023774917620419380765397846030201756067637564916905323726813729348163372005362951746563209537224460021201587895385910526739026211072764607867938906586676367989387128014032040125066116946177715570124097722907941613643133011490526417297894890238741353396508765430129826627552681797918172645303162364589290767626581866227396412419832734517964942976704415970046523932058938452344555244320324168748772885914536018553818772155320784513159341448490623017978870224217654383732905996047009598433240279422405301764638233005832421960840319889325627752488066297738688141295913275562563081939233146421425149523027701158412247616104411362273416840100234361799721860225768735185758096329712637752696765973422090488547180943257510642296187550255346625651024310868535935014130035965627430401782460970457443834602962754236546468843952169226574761804285476002038557113883424679535621842459197066970965773296431463683160638411449848209866698428040025073273434125459922221610289620126181257824896515953502283883886512797692897170691666117115538731064241782384609785221968983402525282779256495596203559605909402779146688174712810368744267129778769199557007185141257709892292648916491603834530897482017760371829912861024963387547970566034939667783688014713814598889656495997603828843623441318203506402505218287724057739149719845357408692609871042977545699554781037000956183702222918393985291976157060781623623280635689322379818970174486586917670536006608133097188407430309592699299649560655223335806903590364300135330911335687489393879662841955969331908346520356815649956227252355540738626393015009699051838498868074292045160805406698424526216109347895291784554470636983038982654252319052662954635349027628831250435485698150007427190324946436041199076781390365104435201490784251717961792443416132908758234113385129918007510680887473647264298708601389039840924734890999252210996993521007920876560027330431867721373806746455815690871328875612903149592442449307119397590935043506941411667364536718901662506060392393068421803334668674415740884499134826980114290493604735928825433155554256053377352266656396372684631027695295739192197972462772716922708687889678365994254265977643737514328714045862999498711293027343135880882950070079953155357903426340587335627392663129198698201028768845460618858606686741741291781680600656230680708912837373451199523119558673574626662840370432630299963398999530492297443947688921953015430808548736718250201551131666019352113743379136037132911285513029113082164898678628825591220744628161505654105405145064351906421785198569124508816146371747019993798019660863388572674811690605935876267110635829621114526430269403970276711788389487607079380124097899746482398563256965123475687053600387766707777270882671771015714947821237677989284395773390693340499329987423230802406555333441824167864198705264822893140437111316173537772989081062489877372927257504928976968895769616255731128721251957099721453761097450112150648311091852056597707455824044083055666748232213961556854808090520840721354874642143943663991900060842518210295333417466013101264175918438540348215694648477845073858107058225353845835428617772751671797069612421387955596531983719741960738727718702878573641467352926533857354515665890586704764271928280173261554601397208801830610054231233091263130862857818083253269250209531303743254211124146584325477587993011159784267340219722672804133137923788552993592897572700458533584381551080618480860276958779648680242613260516221383844571171228845245467389869181737935067143933399068603835132485443296810619922522565882826535151799671781012193284686687905985817843141856912521371189710286174211973468528310454444045162295942098373013179868581207387818894968144603977030662786190829132316742134811583664656012895409150579036875055307344147866221771523887758431639683339756969401068631377881649255084208752109800313159710524691214927753036838265350504970953858937307569819111358795422977062080545527860760777013752222910945285177537391630328377362975622532386731717396575482716373115620774767515182579474144793039086497455660474186145600750966000115130670199219843664587590289405162054300064049564336416086727420737041803017539720586374993502852277256420811349089567400468508661070049257719570405076472670834459335139382878340774194953777373692124219460115961043572549314223268966192111614381725548879016843412609862736519466694234204000694503051910030324492158110197454411945121693391172935424578616487191784492918279480937500625245749289027140264313473751415964839803884073564428438697959174135126943673270745394695857552971398327362334746480479033943868111858570453460274078026321154795898624752380841822357546095306982831444615290086518575902542513222726706461773954227295183638090930810194773387921912255785892408199217813373885654468837378642629421544130936195692496846909993685218542641569240181996641879170732130238939897207173447274218463265190294854150966824202816274582240605765779596084767071235918512468603186739361408140569106145784687920589370493984823301529770456734216791699026737880017986796045662140402027679632601221200052510502112409457724231227473964268189448030682333388874956642514555716564753560287985581167457820300597561551958285973278973057945296760088644806367199272801280644452321220399539098295318661204775562652475116095204689191308179115200764001871563073432320602011362037444358051473622653665766244055668250009825044491040368585787555468103221107911802669136679908397559507766442856683901758032195996746982156521195756493677082172149002392595397780111968460909938975663450360466645186393515753887424483489049552455763203545116487197525468951476446084324874950786096751609307196650304262221490656801232760805419510157471548217962337450463757928738412002078768957013042384058099866805490220153379670274629201306038298202794678615694896644738341786025987263612238962063142188836538456344584162896434390990841421938257382569521055340226661651470045915957727284205233377104678304032269839452502000548954500646305025327002402996699974479161389999428533466044518370677589362048294939800920603629801961877084317904413244314959378673719755274646050179396123908427251264123651353004050208344379847917332374567649149629710236027185491570323839726880310249840071681189571808765195631097029374395083175620238356996539319316327715994090396827169144356575331152158745761372732979296351616603738771956709781055107282214858389168664738439037958078274592115377726644200186311632668240254074736371580651112032588156717983901602575278058859799067277349067423822135374229295475513415815011610526070468486731811016330974792618029092203080174275474231582591485522969510365894419105239405739429449900256324156042374216208406011030991918369020980657107157211257547260685150128844622023043113051776756464747874663747608972636480402981118045642923156385450994822174861611051061151341894433426264228658836538681591392256106106641065441752942241542256153956814967090612683642677685054450522439997843792757065028288073812196611682598910488030032970196388872769294639395054010651844721878298606876979234242158329865471421588486716833725136607986563309523496035731746129489031937125149114173549486283635822686176910313558302656192593360223305471841063280005993654091813621399074195895076778545014287474287738297089371164198207348795296743513882388679919361030639993242961689039977715663931877243228669108496864889285153749283803589991163566927302975463099510733768037311878953340671613640189057288300985866973501597668030975034158408317031264374645640240264803674024908263059780998452990387958257830463121071825235993103393950556971478364205607664442450758508275444759505756200095492982519190219404436822590088106375280588236846298491368128019941799053070272828020450452692887469824945616532182722651689128267046574516188370365670396360269934985834099288029814067767905332705532094824061534195331268529551485146690991783135266151939192522803792383689348974804147772752703665322951198071711873621291826465503273290655849940500756362869816847387495676785199989597490437017863883034965784315404501235741985035254125344563821083761968216063904085252230862133505081136739582125839960897979628860705183009065296810063947326870097654487183427024358409946732309289725034620491745322914919980189673374410305976151948740395651466575603905815110097676168258127390997660594296156365551926861809777329943020051372608696619448136189507259696123918920772888251054486369215866013016117378908607936491311699449457154454480975207820354769815316271299774447333395556148071094793721930961030444635503286271345085378669420517098767228124192600514343903732664543931496490126127524056129029268936616919913216967748730683966920706304265106733671230339051308673295229429844139289294213601349757900959356822197803192005032614723527727199622372199191360474787113530482733005051931287714370392336378323204761986505118582997453674611327483851499881431490526920655593832124085391835822272134727308145504734716578559772595651545020252084269408833369801530693968450586655268209280678536006297187111562551997875175820761587130867884390633343795077324476916547277334642317048002772155290325096490683596033619817944312750189416776450321433683620145980328237221341199367207043913079014664907456228383528367233089130277600757617840027577004307078986844314028304020642587054023322968363923170024813194960381433508581340805474168350593368237283355624812155030629952996967138928813355698987059376627394590761788263728855963373336298816084069455545651393889532863242024484394503015771613108722146531494035260075725507126929894398305944172440292171870920637541320258046518476489143636504873347775559279341927941300604987328253700567075288226457879981980470363194661353926722349965633569820368418864431912255350655710980073081777890267064006690006243511506937092003665185049215477039386891752240073242845409977637789003532643052687680484643466025930415003461644826942687001220700035198054274394623650601832186942583496159121401649226676041118881755802611482029059440252954690452278322203083528502491336144000956785211422415427118703490311928815086653032136753909266528405041128972168830565964665251195139154940354362809779339273595747910294015361230749269392876233044979948621364141795238499063027806120299265053197907087224015119913629309592854067163655262873118261761624326621044829350440241690012634667253642907953732631543581145669015095528191628820930625500710240031657986733639030078989514934506271634242697439428895715067775510079114797386547971466362511643811186305432649802604857001486571459082793570981380668710908716511880976706699292479086169577674365194412149589976811794658708664502748766593231749026929999328382723779867274051529499481925651964391628269401290783512286071712116291336183646917917559529052725290002896736988738939308892927779643707915392602559874836890507418711014087892434923235220967012414460122860342348230859488251638180062529206791141424325376012194941477140854946695986238673893060774094596953693028715021598045527904242947546435677350893457121956793583578343800306995849405028171535750997023979262878680570778557291707312074084443295352083455439058931042714621515540086376604577167590687440886185151791554194085660692069673808549601130114980718843424685713695080010647746044229123452108444691040871941331596189491627803938235560188364910373848801805637525007830515575473530129524389587374316269145339995175965837981722812077357621740100677121696035913861431612885556085304056444529524105948484519629953380864050143581951256843393948196841248236601345960387407152162885761469904434882318007514214829429423034655567389930624563668582068772138555808457447880769158082386547511995463992776567158877832422563766433418768748019079337323780563080656435919130967587814847723119439784129304469807873893224396341060274989480086715130394870024384972566409236555619179194197781221916105376792079371450825917088596252965478190734811463899384360840452551613601130123780077252931144524063492452733256380039145464319727770899652018851477878195040754368749763317809009894368292222945777938163742256805655613207078410759155436131622026610497931519975532844782050790732219072777592017519352632107662247085983699694410122470231428026653900847993008893444993721318760167626381052931493858538099877552926937226739830903594898342231008162688782374311264892745359356861365518466812697013811060111405144646444301310227215583562904226626135522630565870648204666334996905494643473848410187998926156714640090267858572211848993816679180984875770439138595695233884410089882904358467813028660235982886496325178513661065947437169706870802400415067238794867575981488958892103455682560640029233828026593909260526850193206067717415707241527224579561198143561065992600888259567988594730513033537966527242176506233555629013299588117334493116407548734230244888342855830607161276613343550879165905204113269621434000074495694217068013627850941704208257242068221384185354937175133463022962194923891997346539228133074147597169966564241490456485508071122732900487684114258027264018445755508770087416432611529205615605740804944863491820233397653134499193151212748759934834060515886941078228189038015109967129834631402960276126458983092504649250492634726561480983808907576165819365788390521957720531917895001099440794556825561032622875950951160552697156220797443561858582811759761489580226276986379935734213684179106683404891342789181477917584275907771001815768975249568787606496401054738059164499445318464674818692432839647657773939445349768149232839664116525920916695443678487080970070633464137699819494254524795946712429147949234512241376434182305495513484726230514617685310078396089402172357877095390093131163438865204805567342103145746037977469854959683883710096585253676717279481777681166849144235613682103597156076856264623984500731514948415050653209222715709924352877266583670419187005060812047854644441556938397113705309361655905981123238649102650088351879425260034323489989193957797122802579477511992469511077883818672375378166499606623085357392199416491376547767210266664931592757602243719510934614408685531665213470283522897155189540447029865717574053633293458908479110953259546445606242971984233850526259893334149543197053172273632876922808929029608241113340059529421548058899613483343690235743818236968887737085024429581929048360963830470779336790377386123262018335581354597431001374655920179219402321016775183075662936053295818575809122144535534992284651132317107850764101968026504128258166012150438274213777787874929521741251186787159358666954365428023714714293613298635192076365399494789451461062617450253033719319945459266830374841299019958574585130731281048707104260596847992177093018619258862977471231613370927846326714406280423713514768570636707007854446309022942058311409989573586105829256767575417262636066507304799909905793012440754245848172126239869488779662349393088832124365009358991369186038493247023192328369689330492473144999830435950034706139651819310408723805915193200925501972101821603899712265499341997675414161333423922693524621927412310347445086846668798996444500606614272555915801286389230345837179694380758887582524608731153483117337579076104020413318277028328817546758715342318845121370861202137365231616382406788327143224860181593523077293003686469762090614727333077696041399116189106855813136123184530090605421095785100892106392978671589730285476535833709488882540016858548285330757268568314224322739584087552530506300967493519819618901482454471108580774002463624030936256571714705469074708450232725093947536616109220813384020884663508449047180873297756665030137132090471092131836444549326416136812106608556689306763759456886621640436508415120266891379238156690676343955339704268460349152907134770293198856046688968792875301713208321053741433680680125936714432202872122572665309858623882946025601582334829937928561335090146878163447479161368049348968485092648091579578374899823734177935202712547272818008091964360581476903940894588967360199447343977747010655077011726590069213409415491111551703212503665942133068211114774152538770701744880435613129276667028255945069832044896194842814034192989018100602558024023429604734892189047490003036900545969007811363874241176083807622405566451219085668464845528865720613198902044228162349513300575145936601795215967898109352358276655187407972197808581831230906047741998930207647435354544516873893607906041556719175600149183023007611966400922330949404248776798838700931310439958138451194562067565488851120824372072983389236110027105556563597808496531591028250212401365629886076526028211108922859288369095788126276505402208578062946706669909887838778822877496173331553856647827554762663827761325196449460074989770056014035786010190177566749672611106847958497991211043450366556859337828040629944345750786665520665177567773088575256984774756414344073118026646795738945746271599997234880630628809325349785509812809619072957011353055853166324844336787496045577523432964668157298472860436569307271823502594081094113818737898276303914311434937630056966406518739456374814359426166696404809814842269138999962940838773378130742097357888075525377606247219911692395491717403674731624478277419806111773629771626006995090162999952532531477052608871406325312530688364679193792661161501156777539077711039997443613321491460896218188380500719098709176154954976741074795961047201849850639563610997230778913559330797469140445127091893908007099561751208373569836994581818310614687945109074209523893555569882204270658325263108762348880982712378186809693594423714608700699105725575610988504190998899171991462231059170814390527755463962587277965020866448312196784662315791889451263501177725285590533797969427795335691435243768010385965493286107830130526854700475540013690200652099152663930944802159933988618653204451505154150218554841086559818149519412865035654604844093266854756938529292345618641348627597169608347609150727685028206994654850862866655026211558243625276313509746543507790705730199626810793235858423001078773472982403681580771275574131050805797746638723838876576485567125308000117317308456036301400439046605675613463022663279521488932116591006310607127363633497759358172062302660922064307381989165764274110134272070398386469389840647400239183243585730828950484295243723895265398142241205482648716393369407823583683376715993617470550195385770288958949657977982039802560022779867226322265842520585812770207309528726203848357302225550512341604801151004844542935741486218034492185235014897384365839626156062587509140582015367830195293707934814952219569066291635617008457039271527937422263996899076223544218486803929518074845788664447593294416417451911808541543624399905523944358413436763962377703438795630139892152690930976497982930714785258486559595042677973097807910311761467990061285601965275051706890715771768072409235797175254896392033351017720159941158530752885855862305185923674162052340776287122147612867300635435837424520456820998464753499115801077077999441575994227937655333732591608885850791635775881179254841078562967378505266007978374879965340948020457129617535911555900895164898090055612640304254477708814679648115718090319860046296779041674987519192222398080917634160604032631296998358209042954320263349466105915511249855909802187161608892852507857676257558392450651118126372322305903733680349610334398934624877079836765636755701277250662863009921262948706933513722209857036083720342933757562595977308108867705944387359788642408017130960450529534371322130177750138526141758905955538673949175226479903553566406545900655107874024780845537198742982089695974269199744959331225816366403261299138206942350315260812103234736215025555519959208551947487034672543900325694733567731264940062224291947061981088200806687749701224830621939855470228802126849212681284004792608191801980564507759429507579412472888919557299530896869191782047298248489065064595299628534574157394330900406779480660522392725061744532849770865487208068601227809154330794455347180350790946348216139286865789870126491211063377471659205166113882797782102343844759314180392056568678960905615989241318625057693862082599474852459095167580201070804207606414083108871751564032169830359737023196769257415450981715961314998498557609590211919401756286816463167957881006960571414347792241494684959088048446350425894433753982816135453157091949747677239350282861122404093515028189164705286872408973542350928972698644157399361317561989080816083773154029530176507670850588799401012120465720002242802499194224829341257950782976069898479692016469500138550812616620824253883296090308018145023545947830513407110621108851850234778498711217349323247133148410018574339928528656908091238940578524829691014444795707351616460453794386774479261956650386525494601195798326066940496375899297901604779958659849764471033675900123116089425908221887979760163137044833632905870069387573137230864681087577294359829891981553683381345704531413467939790095405920919070671981950005382791195240091566120261655611972604220006890694850893285131845745714607335251767109583015737405283447784237903282784825964349979758757593776031550196417698854758947889915273887783480288606006680435947585944166887278673175353748366987965778846999946864448704468002209760036099083746551759275013600416530900644442869253371629325849636098980130009808524683258877624695872594540591855881530236779488289658317336576724565760129648822315662899929438871462941868346802792864074756180578697777136560943138846366992059391331456031982605570666601427776267279255930264408871899402395833193156178941158161288964527107505900553212736839948601205237301224736056834963184045121983600987890087035242270485296366931447433070143426862498166214452397888877954676605890592229646493280548162081102872314175645796246152130877327874058094869711722456752068235239637733028302170998593973124562770728758420435122249205631450127090863804812572526139692517945068284562866020572311496191692777329316355728023411620222733617987944912244023376856160284708718372951421905147631899955136508524818556294162012794333292300769942091745869326580823804734949330070410628709793837767733554213421417157813697650598946357534855362356789403201222537476231418490480325604976410874261503867061065091629351883168439105282165511429823948226273283894084283616561271927907450384562075575108130065947888731686782920066765603165920092767976755831861557028282286790209883897788269776145490626270862884042428392474932140359047402604303606349788423263495721056427254654509305829216927532898552079323885506245529302397917014019195915645151288917201200925850682996004648020159802227096322166838577152216560091409200679675303139184817427225934597843401597138290673917737207122476932606656689466756971460656211106349935830736243590555714767552675391856688731382940346532426257471701475956025346807335420469131883523671003023299816712174750297771915386541463191936117183587519456097081300085167412191681708330033866138338204822082373502175905171184073983759153890729409097649695495057436517450361433013263983993504425076105267067041453607843615104413657332533793667227512328040009763319439333673910117231746568937160223334404683785320508882371209819049275949456033130772032111126691012752142387409257509047960933307446368084985945607584086473429631762286090603263922324414290578216426150870562147200997304123943749427883243688731495350402367040298430865269757696170662038980101326566753880311949439664813046940020308204577654986081134882250019284154396890665764791419654215885627673202707820300523313652413783616594523948700560352079264734379102417038800940326525101165272071284769369982871192074994976068824483285151171177346392126327844995709371902516694431906679970171183929640229918888375938304369508819264785917897515510744194343632292828899193746761908312023778465248540099904303648746341802535053487955388148477194758771256958241379213238258472755243091391968990058015968318826076836050293476021284742122696384214066415501913561351458736571882973722690332394384302671596990476798120854519958389354239998014129421162417427515947569467586693498673402664405498341773514876888648716990131333608941579339506437399374519971312858510552083119725020794617973032934435249220002630862064396927756686696708712103490352400355605720011003690906970345710811163406921847706743572889717900486162076737815600682203958207478709817681879300619971493394210409451531369717386802427080964882598186422991402711906264424817629496693532781440247369432386738838397909540349848243742278811297139667891192731577819824804690679388983522602238539123651458813282136348278821709467397460207599141763852153112525514006983420566946062618027175822186370531748439597249838149272333701028465262709984050116193606151335324588586791743251508461609610547030432850437159175766346951623670787103133495669472145924878113772021005212282020357141845097379763914718411598830607836264532998406650406662624752208006951049088387313986067636693838748124722816158268502679073490724877834085757477602747516521002445252709874394930109200476186206578974787770755643298294758836710170165953108700594793898020522574317193064208343637056638783958654345957652299599408519019438561093665687030582191431717576977022599437605956958651654262295724254744682369308827588433560684425872961986052014461509315376067489752915183495793475758316268737360610528228202866140653777765520663515313819013461806690763174678759483123045045444698855576876210350836167350543525751106033362785428947004987607719758213703504395046520630519878988084369388028673609625597641623857149017538130050905151112051070104986729914917230625891277686859144722537782476739998251773646785901215676274332274734877067490515971998487450039838678380261207926448466045996790702026462606834963931774063739822304354372138336731894156313152429354330011886717664692139045793596911569189242807686850693523974213116927765365369216013334271891266615962102531088925977168330120602642827219026857556708439821324467216087933964958310928845921220939910090873883556632234120586160256543073610401795526510266271601294110134338733437514116918032553091442427075060078806139606601747588501066269515734309228282145745706089587900921141520798281610491067593934602883644752488484350843272760617001159654483645763095718923807712669827542974677345465723324691489465387249999198194791974179863374213674452856504289960969281339520727872911625780633197905663518468147618181983288171956076775265667800474727185966872904150416944275386446750863380487127168283954677639057136110646173672083067433689459611630078918997082277611869161577666872112579012560591053411257901351958422697588773283176915750141943949339459533723051162954243864039357137077225246359956294097010848179060271399467085083670899112380337918369653051045610662929449300639187756068191097905194287625208660243740871312170903146554532701372546719554125246850932586594407888701980025618948870515391167862305072511926836347560107320286697646223223661041787697796961612655386055528225982825190793154238268792789947593541863995647815412409277624337132796059100109496142481831890723697947347166101302008965200933392332451462703509168920223557296054092025474508325476054975361032807699923012379478803202749109631841684496560273500692177558449266475436021967701712733805839714339021244985762053408258821795591211347773537439004825682143861762864440924835342757190990224667495595909194145342674303411470276284339491814362067497129522016328030545322924435952700005536279193912129492085817272357233009378954115843653497990129855099567016299173822009504553448317349899640905330337705892147432164136030207937956491811860955560651085841358475421836016739829483519927688948649550720648191171833230605119657021121069513082418371766939400057238620409570320883967447750806409663215225922234011060948864202270656274978722731898721489496818634809786120106092845973606682107668640864586955544192661978516398464143458373033475811231054405087578318504227102458604801434100115945192632532835890604060356287070852206599577648077561537864740133934549985881164662861290778728485412901301089099924998902600236285904391609447478665596828655465533970939559439249414956788961195579946627138967884211710054002498418652159546298487581031738479853063014371085364597404959493407872115661169500578747508864298143602293380592416003987919508628920926413597528433409727377922533076827746296582998513864630109892853102247497240784906539726520569760114773218524254094003234003883245187884287476396681151415276074029229488589722232652131256578786694381177435338380963579068194925718919123426475440238101004427851105826600706457048701985674066418652633754356901751666620938364087849129630654090508190632135180626249927933942521694382070788097967029092083218021587881478918090265553868060165725632297904737221316149301770253218801710398171944609493554181579700579034181921682455704548037080616617024773336510152112291337703053169779738395811074917142483547459328248199909991356231623359565851006983745639426618210300091943197202761744577656099859092299542024717480863117592173594363700959295571471771579752974443900156233052875946473920384384883825636147996657961385801664540553858609019574339823121779852659997626306055790853701850031441269125043497167902926573221048573523977075931430350354233858610302094049278827756984105847052581465372998111383939055896033550570912388894709489921026442363500965526417227456926870816697433987955260474515244992183521167951861222771457060568263654908568421930247461461822076891327494057841926381948510258734632254935811691051225585474579890624929288410157034882633396684988693463894924209361421177122690672022018485689169066128306113554388125742238763004078524431935181044957444932541624468649672244524764328277812806038075717023810742191555696323168321484634248873053608653825789914392893757354348592509285780945284486887886047131138533719792117078547169619863692786459924882612575536783671635680291154402344917455794820971209214660759376179417906870692396943426396540662061871101163790116262011075205173324332749009568671090312654687050354479063020652121656406503008129433246382675551358424587922416346389417109539417466963165035415189874191771389340473525323760221633160378245327658169733338349888744601284999438872398234986348501512020076523228802075866829549186934305611496203279973006725410497515381445213062950193450679698275046662412210411052955894230824034040725896135464155336046918537012876479414790215967568461020439361092782501926843669803882452591191916082423661925607321229591302571851575355418052995815207036134613157433699267811410684840965007295810635540494946427451180600515041637606135815174529042089524521895254818836293779739321253132494506170795825340610358882891607107752486292642381809917424293610163387749722971228457531435666080931816751938827458359061470813688087348426350894225058878269640299598532276142274375049044146190524187099367702391610533241607267180293457201554907286261725891642976365269678180464759673130544692812648312939940457258022392854348337446487523659403529026649051823371796678599116475016011284772280028247738506540663944458939066839650093003684001278129072144509466290037887275578871958438403996530772446006085648306914052794116182723146616104386179769871070263383661765724099961536870053692145897840087710125724964042605738833745606502312373054546800648157683676730414013103594589555951488010540707216570920048749746395382161049681280457721296734934442956925603570269270769635420364007078804101427923707853054078171241017680458144380462081609906832885801746165370486510275022631446147015280973717991200612265779700925688571831166411843370997258090940005533818677925054972021864238672650953260193888424801271749828332553597742150392918569571939986812572014182399949539158284829881365775569864882647908199998691740548417299041151690505206142172253691397058380862228122914310145581462027931723031980926381713719420888977466620004122625574041115432531142404101078652563166876485407762265158862708379692465701044038756060918285452094692254075809308571757550884399754558914143704785487295323389936435371655635503896307293872457204148499513668745456719791585990022001006944562924111279727566989691029255101726594546663698833196592502643586921543119964912414061344966238286274651831670282754137501697061673691826834332561563294952952754771149082408365049590070659817823237943059540028218100370670073476576923375215501558475550762320582596443992788849065803042448037420839394061698660097521833188309003138407773344185016277131787496461893824502496778985926501537506827804728873601845943847241282088613166959239780535152741548332019788981801208317493174027121659503919510062150698926116459119325226444125191699199576441717429098907141291871261268723067511732280329552862747799890014634687541585156210639386788730144692642406746558738413660167557822739819330181668636606804414518178057211851344902503447596144235671773763722455722935413984133006323244952579743352455258413748536762970980124997034526192032026098433356283683254607265380516558368979824942412330143271544322651607121499721274765932685501268488341969406420862579051679961673691596007133601988898083841080127707310326736073798104070250819925038782736219287606555160029122558787079280287844515609295671563531280027718483833521742454168103908789517480733947516135849250674594163397147223161436042523906591472358807313920527791120504783426673765770862614064299942317332896576457908945574715925025642717228919360094659915330982936192374007489930795176373434645930072734484379096374568593204835404714530364427801428851307309481293752714503440981808442431767221296865219870528754090727367194234012530265954396092858500130734013763771387326270725372739937348146405606486221965902731641851572275219041307802414683146708291280564584000980574149602744125175061205118878080368968750551448521173375126364467514637554694436342486160710537765384693685939672767224185042030358291488906026574553485448970682518453245824335584280744887424167424612004942627098996741561491288211263750703460780601495343438043265960863913082700964940127692707622333239329553212145827121513992260162776748783172941879854860238898169598116267783799597134088662589012403010277428993049443597135801835559084562276817156659892315655923035786899185171411363852348982822837328082266103632041327738568182142988750715607777991330959923565294175625572003007207801762752545235876880281896049713836097034468061894468347628048966080826660335208559554080200567891409914845718580827592847108084700544265572261359728113411037358561127052707571138947064009880467150942987272269315382968871407208974759012880012570561064550755534211186156159740538589494245922729121541847914821058138456111701000132484850801249945930125392971874062042085425716615121888934404440947689467762548034839251483453631451955103145247742212857419199584063343340766478219282611758679463534351117674669668808028255891469142759815226283123052436190221254356331592627878191046881647554055832557886593179218226848234661215599826245698967257523151406884185100548096665435768706098465621909298430742260576077780119545644603104495718989867569025917035848771663065452900827012237274444201599815601716998719559960044202981750192440582918308950849016326300355537893744489018903970234962877277031436520572931635261860299484018108013006844894324355182190861936217042962211843876907879216257548968722556792750011746375625606396495733060244416770603715390983143789792710106146946513591008623372538763978721748837239132120461052790492647923994862564391501807138698696401538719823191525883999807789427192176715909009405256737251867492857627017137712410886084064006401437559462523050625682778305215409094239772206709449593376767047946709985308491703563879562175359517364259868573763193718437171230923060295345936511547926861329325900312664103264733283607933294737777910957572872502977138681670048622790091715537399233835865536316005025433482494593563144115127148604092086912194004220532752719584373036175546651722461894755308542116329141961173896821812356829409944951917820454958044977407991060266280866679775346906621417921566248946837873841733812520805189753431606528826864325701989428845023128472453140708011653742908088566590743371296951574099738492090482468811499151988579668161128817637329098057464039520061928141945580903062403190843281053981885468684959425043328659274030841888745877495691919920660871088788474844967392946500682270153994138002044877505436861979529947278398511030888125865785187194710624915531320507113401777975504686522137860240463535583982414153638856035840083593138457120862660652251350615261396776276484304910017580890588701329828732378931735703501557821326071601215325531367716702364057637725955992088264557255120413743569754038572785053047430680835102732585966944989846458027090266173015665792733378089727284626442520364470417429975745974610756084913069143404211528096362054523242537492103797013269046048888393367940751214621513197396536995395306920966190045424426686684206201206712219020715897555783584143202229760807807381424007597320132866739237447581298240471382735080043090767631866802961505076171686314485595837585223988803296342172752757341426500028162279216181799703164797445379367567427026703317101883329781667537421818289984798315167259045482491909145532714115538245126926631780526196931995539941900693834938082131897759333759527051595934224631626150767503483565596849911603274907955580769732823131675722483270877796798338535779135659044728974460406769406714814804813863089894661307995046800960364917343085319519440467623252056294943747854750762605488710240694135137718826990416247958666357496980368738458517664835636037679489870750404201516256304299919567356280959729451265844252100019700501873191106801781914511333024708949824467690770283268193847991801606432068628778593246510365198038289199841240571182595463165059859204240695682014971809059150769337988998769482656550606841823804095659279697758691825594498819853139672871563170463278848257394382253021772416527603776193072901228529295408961631698916047310455842507199249583682722815343912312044407134717913585649445178002651271358695277330605222081140589205503476881988748554291867735184794161895724007708403431626793678129595070227260843569753860541723522831435682540562451159524194197982444144826825381022111656264096453187374539857782256589066176508570822289656596006570379420448560793496159331458688150337584788235293212396878554461809509889425403600743228744100914124932096834063190568056986588256884702266165893374049369202387512081925080536068063859727961472086071875662197017510615005560616599752104926157280931258343014624336503237622615238956324154607200695111542525708665245891627311037521286384447624599391048705215931635934236515375053942498508768001557784349550028729350078123633747740057895936857932931756140850372990262815347308542062603942891286746961617877790729701071460403697324592412774417636188137705250077954766721897915829895617830012631801203699249498491338920519926562203031023185977062599852740463220330033708777178502562058838497012385300083360644125561893853014514533857272732972899474122565996993159039364324729065664638496865268454895920008774982681396772361105534511637025289419480153862469050276080411080662167691935050589830956173700681299477864677149158051486722031661694991652828372854262453588976220611135323041652102731054731187602572676482281138822373238401640498867534840325851613797498967435503927678676590976179519136335493571294660759865655298254237421777883646944486791914103827790660408143231246089668955366044352007485207624031782248797178808380623502178790851179686701638105236583597552899679888785439104716086406844045538257409995844775268182539426877118052748779001331755908262389537839123812512134302477858002232807252844271048280033637373000519157281878426208654796364245045142781375252254032459653913646347763689391698371275210190803921422925167246012585181655004950050501816370143343425021915241452663695961291978617388978077520254151050375417126091588609178893985732424582449608751309975208077181443744272860533545330223433663226763010898498052115152233956481765308767937234103557885145194409900082249552162136569487337552835452165713417128461427068102238004937130733674512934120263848171073917877878375246512648721694541701102161659672366161693307107629086157807289213856468028823605139500735998161489188358554147863112263637700857069943215346157792842291250068871600343944349100449266062040903545293179121349165682669471722569331392022794740541389774340428376215942537872882421017197232758832827830949341980673784965236578639817045915610292372711877555683174403766228211931671892630806980116485803343629083300597627850316717072891370385551205506339756920252782603507656676102876986783786035830442136153492059610917884281929227486696545973220540715019514053431322242612649110800457496861391155189566689141422827992972902360376169710267436030331119712008873811987046510269401052070677194633669759789994157110224371031348261384020459205429940089785139770179948580138512982534695203123949334818916707683006067677094451732489355410843798901542149376765025690068061924883708847590942904386583343663124127585462984979126187689523373432085868356400302914754858063868736801261484390977457138545437938720271622006454671408444833900677727256424917721335470399511062225656032524519598253061621040637040480420186819975178523785400687277287814991426740351266709267883072842013720578297365270083285981866387510426377520629613415615400401095174669995379951356336799686102711632404675285217940314219908846559904021900725492526461052246442052919843693911269611311830871653693159543927099298232331830717727031553636073305782004662808208052157983998281564534510301707503855338954857931976214383416476562079375287635150105291330265375325032448220083539566170524990736254247143505491620053630922769721829951417254556853805606622445400634685390974694533997206557111350086811273304980116605928448901735706419137845555274875284672899545363889956821663377037124369614333874598070965426683376318853738053748151353170018312225757896980522317026603695555154948724075438152170767591540371280911859218287124799441714039926391937708091926966559841551461042538391402253366183665014100808467049723459742310837467781649675094721077797870011629785242678032466281878752420757016084139323739821271439547671424353137671321319354114863642021574208054434342256926664987416820646897547613732809649700702605666319230401641350009556931378745327890849794279939107035668474897381741373675354213081943900017699327091022502981611356691731844459751579739458954192993305668836832710052893482539185622999377422612341446138703526432933754328705613048457319044723781449219195004455250976654815993747568997957902324798054467877686597922164007473710378977692217362830850293600437141513423787921127648321903639265284422077461544888679971879360161152593336854230010955493796261761151409433307933491906961903939222187953235552036993517918825233045667051310173957468438702879352702366704646856465561140248742891076846741444766018515275092103064644153435416868266809451184059687179726327296346504368975640204715826017788339784851600948372182332309813632929482936764267444843341974913178604339516236242259350731597782579270982978336735698409082033032392824246497274819730011145087632520293718956915437725185906012423161526002021788083126350272644662666109329726784054304565904716318289757348567554869373146382455214384641451178630209787273745657013288541768926816008857236778747435097728021930361449408807699777324622250167349469146113776671582128388126443660342575347471631609788977516246941254075337840680381920704246274559636839759931600061681423292496772223253114633447888105962395254101569491360809933863525108463992018732017973706649688200272645125247924285504584763845231732786157592138564252546399502901726841647140873134574638876959436558291432110515327858265392676851956726756515871081058846439235103972866484261007799287662158289173339646981253091500416642140318613192298694217843028170358337517644516180750187380262269002117530197042959093801609141553521179784545255218423722838888525381499553214854270578651363034756749727926207657502248514449710275993535637230917324761560636735430572357093788210049366165783830472078054388575534956977361216321488881958713715410078761513921771565814887305994510073459281565480419382520571454111777357261751873238204171459442125665601307920220427940810635310355445690614810008279050527585491609095877529373598018349824510435686819789906013407873332667029351748153159096599356125973194726122828622763906893352673343345699185284153500233139861337704260793788361106738160469648931580748704594091539073079294877650505382231664399340072267078693674834519825925005156878852290750502142642227171395193657691539990954799960646582482502528063485110310148455993906033738887259583582845764807538259947028048278000937311677808754189999400528546133205421069215215233809131027736174806509912390365659882466053549653098956433318443264719677089566906463422874467199261726650478739767128665817941559568805520564157272872755958205130132886052054573951537703299282848663900694193115318261785892750261618298545447962429518945789772834961127288243691783820979281051300355739338839443517506290693965213835872014875846552607343345103444250122492735154623729685475296603003036649880353916146763037131794887013306144893532677513246944876533864374164542597420975401405864102609744943540563498251985686420137917611757929576640241364961019645183587079091701498785587741659018210160240297321043135647849684823717221561967185422672896275294366968700966531879900298989056872572143574667114707334147263811666141035812535810810653084450870627593575167381317558057665936586552406673174165481424284045438621144218654495235942774757119792180170320270808741175302111338703268958897630146076657095674487081025131808355142370647099343502922371358319993460533125933686541594571740344069055504496009806344063559611785834474301498414211332214771791587159543001389586736484603291559719540493011602178215556349081723990346323613241693718572864561417210540636656937468656049972950754102868066026054585228429985325820473245446935572895545269675064150362028679799344497414003392768620817917532649711448105663486974124878441112466502481230712011106859992618628565011407325705106843785389947461274038313743660016056114037638896825566174000854860239408235456162765553442730813484707597285023976185415539928970233400690076574216258124492413409535462072892416258080517842003730517647016546870639700448985637674528784479294549104190277636445538716737608066628543107748035945940802723548356730397269710990369474163241475652517443359008835320790603820432602234350729411366417603337088545430826464454248572297520483156052346902809349373674912247293905361136436664141293814070374567728804367922821957788117410567151738083399434988456614073622051929613704598877851551733755645233561313888516816344665063173979389129390855496907152310595514514191015557780216947920084583384962265563691739780678102332535066317300338849087907407542181259071629351683972467317222995810367164601081941605871676364461317019024542795000029673001147120371774331074563802313496339698238675865969456102919531110499614348910028560600401499611321563789754947991284499010559598202984477350146748928103754881232059344707223289406505568041257497258246969422626874067759267930351622944584589398139038795864347404909152086017245411657929130048072479716760111783875393131807007564129725064092640301135707414080031414634993986060190815936069019013217309781988891043927350623210205877907167032465516980678710884036340762693943505961435932510862087246316073915275859802573922447131007727758723737667795715564006640315198810599442491956347112969601135778004652919503473424125505773627052764744415120332983104367798705086063073471867695155717951142988768623517481599990300365091043222494870624600262853546925885061800921881958868401846003047558578264735611404732151957703274623688561332553997774841433865753888276510399551530768362440842748284435165002742492255340748700503955120013518103452305406628753692461133351287785227831816912312469712288629046477044241606686132444357869751520277795601004694360374358500091413243745845454325979727117455221309704858469224062732421314581815776843954506781170763816660609598798470967795142545141219573529976340236248842463722832716709438909287512389519869212695740673543891365946980143969121107178472189334191549344359397650763928769034091996464369596187626531691295372308352401885047860868200354658842096068536312380458214716555694871498505868200043653195947183219088499526153877327333998921625822918503259120897104823528729612165566182194312109571886430116066546041992761140343798509813275307108461719824818742198133245835117351594495364685735012494082350290838505074274989238949193260842265272854684750013638926025489249967382902092042836542871493832382141724056908744146255811062970464476782655206995593348091973195460891365238631076987031725798775366426034054611069862061168485619125833741862750643534952180460880152583148861196114490145189177578720923718961808768903221930715381694953140021602419971910165851040318460340775802167877430115126045898599712235449120211149879676106366527919089377134990534948175251626368728462759687813026716795006459390582698543495526278029558881820931502783310466472304867143773799827226502835115791141027913361916685044008981086844403800051082718046012018009712934715469742372058403534274473575584157107985377793243334422054948065216866184465069341898958055111326539498570595845982362816560519799936620790665320718644695406713044730896337273145537962950372952284132186510861813306174526558598504933993155758466275632675393795116840828375288244105213609515390947277252346955953991803273566946948709001419003001849535184082215808948113822041313012207731357798962034291404930709724027752752756026288944296236830074832423314391951740749802925835825105470961689424732483727273225853736869446593786032178635108106015201649497265502066006948830947208213633707750469097245804001218911649063095411020197979818532567768932259062634599918776573345018213577177654882229697674784095357058217396964907067884822653705365410796130693659079640732025019972847856105903900196224344498973770066479306839236331787302922597876852867168533960676332313498833387745347998564793396900153021176324827743393596749899139697577062559651042699409732813527811876223010757610739768589466453575332656199866316623214706387810798960046071156699414105375755427233850736015856951807989209651487505474478871433207879851197468116037721720631608536548869573471978806418315296830814386268604287413279284602913875232181769901637541536466600592977383865233678282178304690768962098425313575058803712891949193975436169109538788281863331257629793148677812997438465472643804054607373099780065612009248388986310937775198805117360996982660425624374277954256926747582205750211060176469527517450839695159742939970429312597692783322976540962608130580257918338474007009664149977849541431876262343141892460472009619021087672985724054256859994816176892996276137062106261051889858442108764297236669582880526783429222291353379495938132344477747479175312532887480623265339473234312091773114381918098856646005432893925462896629907514093560749908137616907618508690905961622588842092297340627113881343632087520710711770138725361356245507327697178799391081170614600235489430737704278437150961932529306129431753494131529023567288376528127214234258507619738169759644397452518656148059254153347886073779680796344842583627726807632723269338621465587003073289858351307490980890668838834902970851499035417602524915463314683476209723982027015070433066501625858846091197036316762754727393260014446309980772354806168865736845700166525186832615482221404727139369432759098517638049985667550805719435302551265428805527193100195499230823828456185777225076390098766878277948225925297383035447573841794410936021986520396531506563656967730033638019605572434703527855524344150526659407236644193018938738589572965077262794154028591011359513350163553351416654396251565205322060956061172852690812995494980330163759116360172339234185077761589199173007137548130571295346085336500777331875324499544911886176683860499288004412380530871971837252762074456545667869535193931261113711147804200512438326984007966329884213058124508265942218636907371511073009398422022719969731050806755137357156962480058824916266958063692725018658612530324844087949523020609126282677549895387460573971917564135624861224675345242825241588113862869047144505471748574357281663831806127846531577125038300039096049882167395482997304173929617147320286178864911399888396301652506538980426729507100524335774116939636928433365239273909722877437957735746077459270614674612388872232066236314627091124454282252005705932678434510810760063096463761629374840291709668018473287369816732717887770990296250988377628496633965188550932719415839827034351551399608332523329572101111964843560918643509495577422425112017792793745300724716953102262254552583702141027290044631118535643567540439772714531176265025871456808315745125788046671346794274164965933266130930561258938822199209715356712902629322901110728315216854399823867944833835305009609043066660300896237898081873797387056822701623031628238791736702182317440375221087157758497318394514751255291761327194351008724587963247547531602078700352747497001535448083543746229424310354075405805125298937653491813127516071721240895472245912269973534061632336004744209705549225151355113667373317284255513752807873274873281058839917780194218884388889594038308958424965645600935401688623544925520183380457239123385101602315800499853725936561622427216189370495399752866526967596862530117776353888419689413110676218382363998383464428239124996223399524134880195583698499118709503696426447521516875945676418757259825007129532709873146467573719457058957389469292978042763047115290023766912207188421490732700043089959491545104206832862980983018040951557084949980610416574767205740542267198359218004861183961704571419569471843042744566139487432760853367013438357741976398248720452683701724337660499598668109498140471059357935889497264623651301669691700305746807832325754975131691273863063706747391552815458180586839088020226748407561104459805133637043126902758229184086841980162527151737399425552687979243687487016890086796906291415948569218469722634311084207755245989797723322893679351532733469541985946697130148985096692129364513439629398046518823992915281629103653216320297994150494769747544890632496379130962457102221375130232700846439421125459570049932522303369887748945331990506405039356859794592257808667843960191221008280636035430670531705874494498977440653847893815211843141014552273917906902876672324226086990019015142413011835499660414801690207232310761288476113428102812544170771163202013734193085045740684667310407053339126261736365774229428472449454093359407774335157456454002812484632013263159597936692324140893103103315575392777017119724427880344470454345212553918789483173924368331139017150950642921390917280301443102022311189231302642294895963815305725556052282109674035253318597155207460650648044525089029331070304124808313220853764069219892747925251319993007785351757430099729360942300046522015786173151929990424574236337195147600949118765036469376240185372368346101728894824454063142519337871086818937906698437316273157107942308250538888623288034902707383186163387400141057037800136321019256801225357857230098087722511061439643907694219611147279792848641752038133037183595253757020634966659189698611350799839663178027687201945539437802959985790634820682270039962014831996518184872812515435494577430636480533890573061364204508087319294480551343496565202981952351393810485330228753100532822907470862716902293097844618804025085350743969219084812677113591167624289170769239426056938330233532553081291636800039617755962015009476184940633840669199639593864637275983503128616049029879215382301283293081042249414598082442548691280547617258669807213432423619542502452515947789357109671389527042573641608208914333211404141407088619880436276665543181155221792168171346665429647512627131975305962118584005001299502038473182422453416446358927471314445470713500999041600568121535355663460783996661775067257953582639009798233967140139521562358656192515459574898216163180389381988607171798566389748824978147284212378473872050571622607011737633190816975613820949367486488147807443603513204960948102849280126009551746232146661486626844457983276206645992127960062310077278521306309826236811698641491633481737102799126629195504387054350161886816312949988822028912598511047828890772393656502370151237210777353589578150643397390693586985087818167930358467156353395073057405919513256629542320781680075727140477798860268687469202732778756482297071974228633216873601064536040231514484556757016248975737666891091653728457621834569943711282863143719471476742835720646819517430361491419461232702460950963263038723533088245393927467267088746033444551710309672256458760345158329272487973978616484739086018172318197945013389008260712189951961121164683989600361997918274664241989351538388192506289788017219054472798047955743935858806258825156880084810479743861684049062816248508104117138762396270676091191179644101523032882236556548762160020327784192164361042852485691375348370390077128939858803401579650298028613130451301819836493870238042502729092012574543280847435950081560694798707273307875807006893293748590002243898443638459283807042522510586523182697830212945652618987747783620037213649295037503706507855662704047356094390308693602869026601529693796381531616289909325708926444904730212658471955697120310976216430236901082584591743267858605483514232276539604875993799698344029178907524717456593591246884751720874473271907080128298030484672699607274844523933895847004660422858585894234492699574959657857130173567515848377387194709259705834649903007240562121206157552713513842526334069426563222169406976855951162971986580340994436432345098004382849514623184399646525178909986034235150966348551319656031238931659000851410965679397669416131954919540354695273608985816382741131106020428033575600775890471451701706454949139762467041873553238633094846115050541176091792832867119009873617416720038708098812393738014295331719203782606238072597972923641034008484960422194992313442537694040494660952691395393994022070692971156328598944886144835464365344022976179428351711522411668947184550583837936714103737524281316866732676836063300249124614252462076602621416784018298594794457959708658263002678584882662028202994745970142177137891589502106263378045373352292861778264046210926666115514241704151059931280372431395897671638210590841632775959302230194613951571365162521801075136122180754811639740395239766646261559115832192866095163368791138513337191092090900514440917045462151537091050669699476895703503901258020429009169821104345034488793699874729517346315954292452447416058789522217113938196098673354562458091388527612591139669701880287366492732502972915009846752902043962756775405551227963292571200619324660058822430630783281618992811739736523911210754177113524873321457800452082618897268704431748714623744349953969549357348986056307470784172009055066200285479867279294658983501422713888034037080554530447511149706226331459631811044492379793347794648490087356114018429736675727029882943980328886685759852929439951978297753192092827158465566790898692939847909190110984529447899697316719343708039491440015536145838131273910044186557310710879820990088041501169431745187670322781390792759519318832195249416761562254211388233981093198195881749861110716994789049755392208420140204178680290506051196061831088849395554185387911163917877458249853509702082184007384028465361302024850046063039245276135583286246796049970830878012700944090160705103932570350898216247783235207046667632104065766011078141407276967407922934035195925092540599952014821857809302935497672514462385996284874372783306445759677829291286556534919632709191571498309830095107390895370050727710604705172458383425597519344008723522348648607452918570470566924946123656787221315901624650894772366950447415549898954223031201630141293861422870358432811159792304115261165560296600638913052721439199474256545041013994727032701639847087441846130634294166690142488939350847355464802996466384499645558766239228582401544157491579808471383429990358709196630548616807340170815443526025439371425159283534928979193355187814456679290253040490042820591757925563781703983866777133984332929575189985049806737989811640044021368364972797430769437229537753190367641279821023499606446997421344179647890298421206346820290114421291982376164225303410465988542179429943025748076092196869391923121238024284497655482778715523150162139162120274044153029917219166955729139751001903120273094690315660459881528748143152543557788526362861234941174841220604146381236110227026119451695611311769308672215476172375500561898012573906136981368619478577335363420688139167094675747759708986169789208658766178904315849790613908866436745745239193696483953584159684098524277601251286334217919437471865378237211259459406729470414348935346341730505924230667338618774253888300974899033510382143042417088679720709587508386679618510231442138212617046382070697471313093224824246736866826200993883146981711356894694844576235352959615677888106931733635416640988228223851086472289745090250847854804000792724360244499389115684993294409908368448500051707158302431281433018446096583487049135082284800860200770706917758129742547547077386095457149607918064415813875808558499359695373434908318366967467367797222402467079371529622396062107299478844676135218670297475733777974674378040922614606514686623310596258282753075886681907053687537217634133602732797423750306011350569727272285137537528400765075951610670439224809576763705228651441267648449033476889540498208431991361464438644416268128406744305304690635140012968227164975942256069117955270939807915694079963349709658696404530090286019683322585464412846347352756542118221704764817969576158483381096831782845548728064353104262215613298281283494812605683738477747165678112449104315940048792371470902746846259633063057815355491847650697146579530180700839789900212705678534684083904306309960229414314446009788801802743909295243442669563157522552729701999573063025724626756396062259501337775169893506879278015730299623485163927493803526816837575369841096868259509812788754715159715142448837840472908651237099605165982650573533979064569862631566049643443582578557807662883154230241839673882153829883923313225663080360514941811403418106313571747110812217416934915960795513079523836805764621678232862883767482891147116309077503213174313422390650316907155484067772333904216070991924690792742265453145512882024145076458583996373587105022869246806307359636605688083770321936492064083106433479179596179839027312526160610144572702635315909116011664447789231819013580839647255679157211836032351656244116614055130505129756520605761168772979022862486115234930293866117864848946226971304890886596275894683159911050985417027861034205726256682368162715681928291384322297133264496338756112928845423422317681547029982226935388819829673351726763519891979486912446021833046899682323648359962767962226316859851580665283887141513572147516385402689744118022838349924820469074712384182285833201488125345336629633129691543885885474255421128498920047722740856336459930590952440950426480981023176123397997895691476856746417426490677468175809745709619799273784343775497166490865075165933036051759755083054268217680754576524192923187614549700752879094870370458152125038846389987645222352423120407708499177386672758708985922811854274495616355407251911504296272639979185974109277824619378689621901047206558144682646744520882275923851095554852917232260416811528099765363293276600330068626853674701052202872463363284605937081865837821371435972532198035909974493762465196239617465249438308512660053055158693798061634829197603006641352614023655535844830097184556060158516328166863331385154200289646859876137172712386429960201738811294558021374366359142138493501402383047955955148148568179146948498826759785925329958319732456101390092105276959252718794083770871318974366117552333935343262126001549616554462388800162515899244426326134880297025851888330799059536628418525513280736547595832351665994397920714033041581388839153981195314863495993234551579527175781989815420658254913746308065356968672124289660393558474308820254027113905261777299419166159559841957068939590571248763443984284343560840626584022420718384974705157878199054477879567356570398089593453826943230545935423188334204019044639452591524013137693276865720388454643652477160952805611693726624961602284749045230826830962980850997943448474703476069834354963713244286412099939784150120211281495101390145814930623476552571531874121263178896039976576576917930191194218300673030994418064335906607974074793256382762315785491535285660442026237642857480136217912521670023378026679227028352290137482205730193857662883056653625285838882823496622791783906738080502754240680030808898339930865023527535515471413741242857382452989947093465185373180348296470303699256190946634193588535322324781783732447413807880004791867252232355502914294637704655862815438703532475366323084110909355882609561716228452341909122071354892096288578439091033750831664266858238750322388166723434521638701410805235766125051242642216750631220796661217548315870971853710811336324827884077252669713911126184112153702962808254061696013319342130214489091339625080378186203363039349335289155128513871068268501804825554957901013514711515752563066555491362254587179355950280395673342582935749832112688464353371991425811645540715854859819691159682252583882346007910758551132911355205092981919484664015425604732637510485038841240337830950341846166096755117964711046774396741800281733807427833278612051269785946016359385917496814057699287515511958307496686094991464675247016002929241575649056658701077497421356044667370408196217291272776173554557047079070460865630339433608256354469334591993883145730992183848457598810090464063617852787290907656995981128488301935165819672271690156621022294303535944019573067237780583207483685533927973045776361586972951962295394985870758684804246947672272777789744373260105746894285121631039032940561880149617466117860188475580030468615801604399844258817849685485384372692473312112927903463598065009411397565918945085140199640058604134142195872753077284566469641522846432455396728303607131247931075680099013591737160665489672828777859829595349960152507373292113297149741169112494792576459471506467516649641715907581405591225403230662617212765971478935596512750588103161237496812411903061211058044133938436082271909034087938250481703880886595566119808760353123564208940345906876754964890866703363110725963553649524466595328546343324248278657055444431494375207398062904872599590002579030499247351910611585795545747393579786436473094126647855376455859839024628042880847977602605309526293399073932455287744346955210016497257364206342542209110120551792714885094063102615948454938471683060966778924098926641440378915008822327762086925297354724279476063409220343392502030202798556837498853466410240991116990122123804592086228081137782623571376099753884101693114250285068917280893546022170490276464921438330174734344130976455980794411110013430344437888646426573475581035752630355781186656101410309994288747847639731825784361924485345566105796775389543803654553778638080423337557455062125680183897098766968215821156554894278980116408423820681095819609982919585158050495179543635096050578579033980550740992260167592366129453429992246786745421816993538720197190113886177927095442115374440232870462289647879485829093158892530651177818845735203738269187485538456403313859988122996395708999978263057305343536722137228640363429145063589448507165239160857558449277647642692865845223345140538128289557481995854307289546996114521614818822004710563863162251261716654218053612431397040138565321890256949771602945825007034483399717167243633291103392320256626530815047586352709491390174888114908741452355426710292497972372947241636327847501756482779049352146625777787929419173604671846056031772276469408497745570814708875708329914085012554488797608351282554118754812994445602397632689843410053353483398289289801875890285696169679338841165066989694866790411287200626881824288043412210044691633397398045608126579060448563575860175517573995651028504032864268157052439699650349222740736703335477202209755110871291325487882091596537661532729905595473791154825339097339923407056697059525507074781971528535295333619930571506578411475247585887629244210294041973278435436771731266734718157396060465990474843064510375463622681401638801345458255855929376811430783168060021261210713798579446300577628773908070728035716815316716114633342349607166316671577881517491414495957091377634787304126821504556960221473789792882833562730090574818861276181902562684728044447344986246444746410867132500533482381028531806017594791223195334380869340142389128212611532961690815391044924700401441621383355174082480351217819150187702208295677205075668446206920142016061867182867840430877969908135252425592624114849359689971777447669946508342405425804090895380621614827710108351789257567955488121226677868775169294059743276165351925628328524359498819063697578386100902835091866744884736720295481126219544661543325307623619090074325573323029917281411713892484510770823418517027791949917703522360421465560334841141161065953917985902058236523743133605695479022910671414921862825346511030839353683890577643745014201255951790048508927553900136775421763900343908095856197017941921337438463851290383173732438808283001302362048752489942105493241057682159337006615329957151152631269878700474923012399631211084542830017941071306404668358061829591657863467771610307558747719215194958483068491189631577800384759926381111030285429364587586107975480460378017693793282072287301046476163790690852439325562221902239586899416916476919781851210071942612302945938200599709173128192271176920351110366749820959682332273931524921429888000251736818047141320447181728016540399215618021349296510085884764303006017128548916621730055581201755157438185358845478832040697887406272794640001175425427882117051344633302301760926199429410280386823172361314914043345318565599204169873508199798187809362542670852158379583424772608900386566563628408373931253487056797455714825523727500750255317608588877357518105004426738053018536476207947616726627649748421188486046723511270389766551623718107714258141453450156719033335911168614578971315985029829720284010743785344028390664585822563057272766680946403736323622388198229632044640600600989580893330209680318801560592437480924305920898203712742482834319398290136261515358267348308757956719493166138941602811918603935440712435497509511793753133122132267085972876912206892367594530059754949925443362822846039207974790634645813628795586045659741547958448058292690729757779887396740555755208803218307430233143831352635833105006013193386808003191914108165905416142192667614368171451023731798148447764045128506011173625477143677310216488447594365630463455458975593345343187642330872466534985907575812657678427674133431485971439803466686398784586501117918989810713741469302713972017752972983593436611823358150536852092511285964376900886923412056826732372577282240341845711871919626239381880109796252201400082723464553138233235886229088223648239866374104430435556929325432268620099448443004013501876804950847692717606633751542423102711026700747605015922607271193307880972046149311711613993679515820305981256375084164514555712635579350649140709928892861568776875465701040178365630817532511697811491561381855600006910368838686935589176214892725387033134023499360466557238574107938436453480330152549790028223148046962508773594038659165736123392510795837294317336380292403098552272797645175397686468216020117788623621021111656026790157121601018137480125391433584923016849445388801286226295647882658881884710596532578946806211938393732303058218196892693657520557292775660966160146052189380880415765205460044042187933106006929691566780233339066340018465962339269983335897739073980491584171042493630856841309194776961548874529749912732050537862574019606090095568264270829689573089186095913712763670156749699612871839876858760171738485737781206034523641645945890266372628172629448296212258029507248069099298415814819628723453892053776990019167490804690115187768180697519573886670231689266309354539024651900749591123941011779045935600180727792323524203291569854084622821903156528035472525066368855463519377807172032352694755644549955162389116815234975613276229097072753365852989096163049540518825648734689696752290133626801652415158861634942932442425582192676132920663773539594488305626938551569734493784660245789266397265515743239866584389325159236075881056710398141962455500750202074534841986484174655917647529364753007711085230401842580291063707048729176336760522527840029148670932744544186541249737046711400428041179983305253361715026423630834295791920720071580425164448613099941378122202788827401889957458845519177403101258851174235567302742379542801178192237316071024327032513270982414430246615555315411310549601577877075670548687519945178759114679368336787523155611588276077214077502340024647734210040532686290194235977761401841560654614597583742857114211686396853096036296482820474309688963537163071654428352988184050773431951388438390335641207743030610578280970190945733252246157548401536239810987541474245736245161811569882230877567724069883940244561948379849521421905215794140693403517050692830453103758614190839580171387772112117266175420846677151158152916330925384831590171367082321255018321465548802196292811040628421768091688816491037434564935384752006507292755388750460104420210207685992485127423628549802397617550129373796112785592720244683759918201680219244446972446692341373228049129727059275712455392664333781104794014659740851126932347302566211948264066237291658756752591048070799321470915928474607489007181254290786012143094221074029538037817956774528338274676155957469989398816528509913720246325054636806034247846242703764407559582248339685871206927482638014894205146661010563106425783642000992457471634929305542367399667490401383640648918261084654268215083418128550268344315625376305913248749088187799615572165044252699611364718698071273133359377955457141465140543511300956317527926773515701027962360044370349416292912308784559951803830475824907671416525069466324891823730050683716761043169627370551101045800314883635084072235944986496124236098138598678385542770633591022568113529438584715312917557419532943118043873548948056363442114907161546359450866044365484223182784936199418114999718889389813441616441058753612928590477001312408167138389342491398575979471833869067485040403316821905320185822156598265627493921054694281433313183769115664062694068379557205841303881916111853402250139216364526206444974648490493479541584422687664694880352815213816864243061615205397031017738234504947993220576344014410203938151989620318240869367363093007998445275692259715739226225257831294216705292686662984826447455448241631680695886641501178390922600968631439942125261364867030821881842976390876918900544603299819044651782323676710707565565387481573170895023681881370460449862771160104546200194004601978066926107194716948621693877962534560418279051095833129460767289362431297543788249599551274035498001860407179285791755749685353240493498760543422592923692156423916716813018905227380740606662536674155655823011758477344635458233068921235045845838102920669766611894546699525217379002442292694631129388184072978111690963566691668130404582196327107149347340545891998879719436149447328225609265883663036254604558144738988239689737701814070827839171210702805727512934025327089846571631972937804500070066742693987205042437325290448153454290920255701372533144510922929885664720243624159463738916958907307093964691701900737089177995139710685235598426047702380185169632289535457998809023301230736369185723674445411396190308551488484248843428599939958036202748923743641356699942559425571058801355941874731738136994210516109751731602600829370454429750849306105575536664782664239063714740842010432519821331412456946327781234245026034444723116056591224054834910402557910880219866929300475499346565173206467486359761321152316098610524211112750749986463756028457185622998059310311982015325418980508774718368736431824968809631136322711699757285434052583809922896369830458068179830922935353346253293638174368455666240065430352746057755441476576223970003071983501236166040405669954980867805940211207637783916887626915423975465157194020007533688864916816441818812688912416278580740005516703997274412465195909637289490575135517973171349309893257284677801206220782077716102013220143122599287898769891579716254422811860756546782536676495289451687710155213724036288384983162073180665906148414765162048654031230291805107306111897444653516403051555189422124515962941048251403194460358851136590282129298368897145876429197633965493742822753863132804424252584809200103009551583708974545192938594017211230403380119096848415338851913823642956210383635411347042852051514856398352880975567707430002234416411079257886286430156417598936494103155890741933619492435783207184584116310904089142745761935066370395884755464670795709543582692048030141140132297442600864050130298305397502541086693839102483483444515995225148656728779974013919712952967008598834712547824039350137976306141397728398031050232384339703468782484938754385990037947005036814087198025513628532987226973041935670335893148348553372569046278494899375582017251075469287176097434636833593288733701359234041382122387357459462155105323271885087031843534997405662646300315851352106777873007359067325770350308563138223249961520250089967454571778452991624126375255890597956280656953975014889103814645985007245196699369915522501266290532528311548675114907359542031453680848235681338860019786242663254201327796684174307948949506730414659864590330025912221886802967186107494931620011659949808396490274644662552668440405857249518338567725722873222308149926865925402986970011978869475298602421143975736401294654334505726349020170372961977610758593127289553118601592003831846643174358449470105668096343845214049706673834411596534228954884106691905313311383500996758342500256050172178321256773479135551728319876191495104302938491375781245001249740933949511302078313850444141838749157311776085612554630776858068823991596589676967000838481606162496472392231698327581174673097356081206455885542366358006060091081262976297598856204341240033586639603458114798135320256519515614236069688454362025200432368143362883883907549205682021502537465538568766214623105617628706902166577462295133511295120017698403391310688389803029131301842043603393407981814969451598248210556374211406174857497867140508435823423242457246044063720847009709650739642684522060923894657115928491179941114230173890937176749517881477157466976242723996575825335112354499013969815682577573102372743378845885376530722762293501351170416732179552515360656225702945251671632107952350868105088420756707595223667438927340666989680200802767045337723672373273679865475984462365789288356766110279405848160507431036367731957714966717653914100155454510374059265893160051134561915895860260982722974866159817810402441509090475042699478509373050567534075308490279589700482294294070355868308473455195160022109406360085110750077674012428198420508607772189513937391798611415733536568011248093319772201913541355199584726920320931867713471277494342974216955068005005453021785643692198658260769042586350164600855003454861154263262848172388034623118115001468169747726477310359298624898406803092234399288555715579642914342772273378583442663847424797277858101734166282060146528625127809104921835909244485579329476161224263406818603621521319331947576941846957759143247227514323985701188082795796879078819649530252006947946721155278394938877283596637126316112625557475472458111505459650174876159129537277103940582642506538630408939680691138205358990989694147232797615166539145183538307038906513198323901101962901739541111284504505015224315498791190775121665959821464338501072205938190274435291951109665273932373812940276121971724138722288835447911326060596408441304994602756159375211850737316493163827828106560553621397460223700346612842661805108468123773414008711660645563964184295858730640579270644592172237891728518942514443499414549813938799988653608904731375647402935990883464599717076073301200586318808912688321804246862650684689449587012727826836732625996134504860157953764159039997625827044148470002754919767264401867786957979140163580422906311986091721152872945603245990159861504778005857814859154020441033018707384077685777201775146478945286824241255021268705976135180706438282916077138720272509578884592655308930598216555452685111318920305026194517357351323418013809827171574828291604424447191619664538235936362453190663584189789304215161935723866416266490767196664695905772629333310688589774888876475913709333167646541825948118015224398112060395953918105972079020189077137761981691715365430257122467219453176648242007131121558611516640300560761373203567348717433415127413067785117332709831483240963808359053487373761035277046285163635936428527903923941949515707352745202705481718500136943287223875978216220797406243186187896315262390647047506211928572864503707331041426542846951745751592329846886880856434072284076728928675650261662603510468228185715218730801080665569090834120619766041821515398832065516546616453776238854335302050304294174849130884413548614882851997092763902872111263029829082920325812746735920331707562021753090797994693049359344236801709615952304340088625345440539609920477658932457201331384060749195816313871748711186203256796572195694508846193728567035863487043767495256195323077744696145692698605400535461144147683141594468454626651698090881674472462770083397735021742581223783796488005082982631881071651964197184790271642624761472084119964077892668323147609114409386838691900528199131379021169974087609245087743276729340603187673652396374655037851466894027120743148101926404192839995967344094991757436371099090611708321166361392291481861961441952052857383378376364827027607437088760777961062694851202486938330684414294420078777455843574898874121363333048671420237465175325103616479512371317886444320009703120638945504879767648592353551195536535573563402668888476680675643550613594663861759735166032844860851455984714424924059159530581630966097504587806418196308832936102213355645386416239115257902556568142235551358039021126108913340244517322281547650171737485626134604076205184639408271445391813947780364572265969617429951206930618870581547880747239262592126616679570442883716716261554020748419764343475813163415532779650776006930005911220848941646576842795786219009022056226458705644123684257952087380902228697855956423646240316888843471684445688839351684452934504497449102032832349639376494062853443495849080986600301031421465939873892518881335634292415396308838781357063563809590337718981405279575373211602282044878779844329258909551960728952533681097493908266373091226336894382541884074249444809325036602427186430783473384464720564899156874003844528988031033927918200979109697393224033836388305110056083597433182678435736720659939964803908542267762574220955815158955798691425622566600823702400125086222138094780967946862674846852981049352857180502414802794529109938433751960416645001250852120649207647924831133587588974773255474829021786964104897921670907771032957252518511000589913129254761880767144691342310852328789001690850091352101281984696041742115665935347045093496685681783717717943028855317117217472020906094067351316219451703088445219220897942648805390612143536339831922257118579920094711445251646094690594874875389674368960265742641366904930586394180023917035793067607455358552538538399439702227568028967563344865769670754650876752169202789143788074858169664050795397065722707059944655884687884590280352834737494379225437343805382697885800717001703282658634172234810065701290271526442830098354251351388686521716698305549183702898465212887437997311410769101862024669904803099115831996837902461065271024478686859175546731834927048432703625775710032455126827447233173627120618638139666590343463615731351368450747478803194996678694258931652375336670511760000845466641309635166178960492421775923940015893208750740492102151790106449972552218443682109381815313345038863782023885667680369359645236229759523861209879307484794624194168947158927764185435782034780622065352754672212907680502542868363825278404340931972191052444178069002180205065356949155459641282130595150403148632854429556871919748346181276051427562952070864272817028637447993010889580034760617248691155437260628371065465085941666201571180907073964722326447587636049489883889195664131088785865904936520270623040335192134063830874111702021331020838598601067506747626238577861513949848923145758709186112440939008054995978692070654825394726118673554298276822231387959858577236762176057418908761159259031639776176302351166472716066421650478011718085728161187350349593070032626310145879186352279943380080274514308091697413257278113318452452926337305133577218273931754118549430350603953905384778452760326497774676692387252607079053757468922758059489087716935845798541054085259912018486693878118933626580238060512742081349938334958629696812107638872982375392265268272640601884162649428144200177798957729825211872901019550276819147196232420253095043690754041495351102522854103451415887536375022029512288338558054809383018769394268041857099812538973725522382420999768373303264025321238988779233858444168515192190422709048445086471412221728265476045659373920496298917391274362683492771855377644104532221410406332725038029880066492218823329422757463435207874937438796154444343271160635286480578883095662980841676228949063879654071332636047999951216466858600960617266420707742112557465155230665422782626563557720358884652354385572708423743440550831903934213197123108494646683025818073579996625742924292430381609718162620205199365586039409451048049084598288712829975949560645799149045402028802933747749688786929127398948526079178217849308361873189016441212296955576930391271121015654112842995658302869264424634484069875627862857551313346295226641193696695892680944858253286460303061251750136308439901048683473040030122843003309218736557865812705061051021751023529538868122927997666214149328609447503456095388247524660836467472986154106845355973277395571002849571155556762143621202302383127206251688828002180126671782809066293802683089005571218506182691504121467213685500071384372265759273414700481377332534956548960111740092367715401063564072307950515142513343976855685990700607663572905395118922330649420327771882842387276925204167931880647010939929834838009243908548084456705577304164310931041867601069690770525094909747324280129326489190162075449672470931777824952927998486298325424881045056934787104308731561277380466992730991403284325879251434978611724501396850815074542499306543637737980327885475707577268318574628800260107142865347103735480134321787351277330164575495187359737390515514541273941184728822452379022720990552088963127264656070582691957429303245252337136337413614439509474298536292398014285825658084379034797426070678878968544339578321499987960357036562103402864780340644676071363949992973583240305233627678196027691066138588961839139446538203280633913317665063406958048545436384181891972097800575443665877106138805332816281687130366825285428592831501930267300424019044429497461030422448667756326574447222294579167236733956699513044868174794189276301103420433853327785907229930723723051851938772538577058418091152368986735420972440596232068918354221713884533068763492883616835582136084331728873749601168124568735782875302810784263135790075895702770228862885090915239523040046046519987463150405452828360288580917709743811864961876732068350536747218398561347835005952490220580537344180812200739151007371835476212134189922913097598306257933843233840261280867592046328039589770400473783052652904709607532974741069872951665502780010787934647684013557799476639992445976135589376202725379500828626345070419980422082077224519388006889746452107621018240000699309864427271362351213676938556526925435604282896771456748964347639757805009851438808562239812282446707854128334071448344673573515094234363747415110804336970221699330533288982688075116648703160463823272444534437032998558575404984612596675256047800088182140774322858006192298470978439925257566674996115362576392574174547881695283471385575490933898302491962007982275115848764040903713161107708208656178983892500772538822754715510947405149045699836263656548014842674714245605718051867037919972922809981109086583554056200399141108259309048026527967004261801115189207221189499015933690766966569304868762654924364063745677512878638053736930517366059031638082182441363577744794085036380932834186475597878614269411686365041268101425006937671772983983685415106764717735851674444452471435121865552347328458490176084500715343418382965932109011502142942844942761426444843743951810382481621264337204882386037332828364342116169439292699302278092248110755315878102149962776394337107576358243578089498579613864057457049178216415434405659423063812516536384905113825447992167200631461753366337809452902873067214336887099488568192028115480098900803747658054692712992694691612410241452885931344540733282953831944640516982601761430325928642355797554928651268821999408459062333131905543266245895864042985168057483274213951794319561057791459702618723144849487523222672649620862838204739721880421226968552113755824160559444593102504762592005922272660896022679384949289403625242437219942016309539646726108592865811451101168097586927208097459693543291008939551234587890727911647957663457210913578386448459937665226829185003141478099711017583770433622115502554796782475979135440248403024894031253000524564092663654175003862813775896019689262302204751821667366200100083608614252735667048358292269008622425455598567269077559455326354191755633196023829183238967732426312578787503852625580208919855006157034320998194306667288686994055424786020798360220159008952784233677765793078289250175922117277228405889269372850149580378087853025574630328256253198986475710605608690464842180980343497177654180152609225214891493960384489297314853056438632619303545288786762146282123177531067189715063468494323011008852395233200027699505876049762194232680680394013204084772129477640781205055672016758554760456717743198756171978520271886293963892884363745583708496168228276014131345007348842575863969638585296371139722856734846347050186159927382861193482219706322701964996004866901790064113533266624758047537331453959309096195942969720795992177157332547213182324658765319036203881661645530208935997899852059345664667059013798803595523163318010153246221067294900391127654308126538961224891714854781245932691633085666382499315735791574248776193398038548385475981578479155656889077320952567764659180184523185358193532391770366682823204398355247869614387168806402606776904607825191503601628122403920137207751396440190776974042718533170740178565879862313388752305176306856424073835825339371206923700870710214222985923616598733254598971748375482764932673786766384291659763551192042287618076736061238793404540511795955549111472921711590679118976101497563331019215124638980454693482568895216928642579993276826649411646683537736877974875194062938437986569673239991174927543773453339048937790045017257505703329365319495767403454274356922186465749845244235862804380027927872890362039728943510590661032806233887341603107226839116524333329961081458839200457310493367454730994769321362906944890166402886079949924389146109802232256962389453495346506112647447310017873767383740870526475333104381376699642129717703553291196008847347738221748861484279867104136561382342871873502974205395197439575498326014622172617150518803816057360399955920405282611642106433454958892598278795474925356671903054321170481936201701322395191526047476865586428568698494629592669395825380200683929810796810636929017523123495680468275523746595274639270352001864589905953950949212292075400040542460615957274618196745511135452441284370403402573178594940493624810000232732111528598650510310714361951511464412719840728912197207307992056991193291828589091534801409240362562202307469265361602771085299987317757047981457503125496971153236949261517750001316319697296111875181391334487733689877115254917576774086645346476481343854013631653432588114221632635837348272125480717019752684507366636352951817722466968555598486966461881121832656449118931261086791364971099103400231892288288778714641545020464239845968404369349582690995169711212005583155004351836707881645529888034897866418178113504853277641919889051186231743231817241534895016428236562800808572190213161069440023620075411731898044385477057507428081781493527696123877757852967288549493256280893767541992340488302445005140733706564697600944509385846942264082523028541485401957409798354917111550129698148846967641258163759361708640962541053160301730168402665659244625794369429950227080951701660640086596329610046184733971185252791352466602031845047116462081578132630153525279692676464714000960059670079022754943842590373555255743364487346463892805374571720982320529815004249921190223959842183491610543429844767950710259122841775529073717715678711935965558535324385369277473380926414919376537064398423119626227987093526101557513498309881359879210146584222795244215187106822469030477960371760807294835800549822304821709405700932214528572717878746677988177658158735447065871288638405568317365921626482501029381768738995747759778613906773876472260338874647145987389517499104982154733560908568938440640284150101270972372852977676867938765524617618417483606772152894142374805416622037984242499821859454732076356026592490340383219458418153757137449078447389394067019951163712564512303050996981153536643353393555517751731579303418195397314748699981491760934430257961245535209767123892543458281930270855632926889827048212554355439749674219309766584963203920478878184083110056762240505894697508999701556543496206056989269421628989285350718357464488466833581984560564156274643069873753534951827385414901827687188493337742670651188287012684740645180628981189147685887793015613861067508954704805883573175611483346410996030271643576835626052586957836959064985442354735022791014812801605376882383512500228366396823321756780276357076813176105814341096765932845637027351290194526191755502716987710392495972026241661193584227930309501326041494085188588295900227177533092696691875164790821623199040227541267478131949746645068347042526483902009553629771790214372864032865781690229539180218312542071650355469894163024657010453983594888040172717955065412205588137014351735047759256846740438516694621665575028469975921582626811886697211109418513217099232869982229421829035677936408395015177577283784210632813749900384794252908394478512422360522732201449794744941110773657013562655658484147961102844552025983146324797540609610291517212313899666733544859052686221065779591987846681883658657357173504410579524677383541023807487493305583269631412663571443189887254195450738764134052936066340863249509021037645501727046757397860863634602788020008054995678533423557898057322477762781681443995450538486426470702486213388629635227917578577166563178504255179093235327290714729496489758768155638566322541818834709129193658630545015930318386857627329834060921621190800400955883009003442840863178992209587585859697574443851253099984612519381527235549595940023866019392453198766694376918423540789354727252525164346120681622468316618777030505581693923249319654754596653369790084569051279847631656963120348344734624132007520985299635173503891740339992432517614145211498412841221325318733121218901417914279356950692339026136324296363913723120406767039815727491015479542211269775748510189106934209742313219238208329374944616097917449700501296232228515085566641857415987734356790703507191618166289452006962214791173565647713416779271955708845128450417833244849158772779150916788991285245475366151318529663410749433472699963415157290740561169799319905437583461277189953523864065187461505072394705758767396640490241703078719044289056216829009804642092989132488834945976837158563251436069265356971234639256297732209659968109008897741679830735492777501604395325608160415534014782798461403163210293184960076857253435162228432782028541488923275332768654091770504722993375682108174334700013099936688051192391933514767173213921845715107024098273714955197008302040018542490813825077257707737653062279321815674586978611749491143119879388881112409060059616876250154288371865785197306376016723571155309068305825005037066366934234445518261845404204260252828366175940306443202377348945247658578201194520740670657804525397375404866687556806194684696300154449979210576626001349931648547006803776417490304581619884176282502808055293134432272714103104255436759379186995091393080517556052606887517572752593454351341185216155807925458373442106494945917458254999307771008179083993826920716026734719322194515348216052527227162439719972446060616928647146433160616748616371563787582891658148572157213863285445391287183024522058545410156468196889383803171775969989874737815558709686056255986583017176219944196549440931810431716940510968815203290586726652241853762851101771901964868759865008582790872787615440824157053968970840007300033744366976338714490597849457507340450824121770679104207405502492784522705721247871833959350261210279413223504929387142735240315409848959837283128465089354697814041148969203776789791666373683745518257348105736496947618321552241784056208604741876810691396178730624418260033224519995183528761594745559457289109624885698854792145784642108220665151343031025862063101834708477857468302961218052593968122316242297676627584190657611673953166480915817725332184467954668353327738026615391930296495521653474693039253216985244019047817037613570058641290919074327225988424019427436558250184805657147337904476568892263267850317644605214029024434103735451818715458082924472934807497803028714108524085239307331597737550434742531676838384846171723389959327211667092954861690358850701095193944993959840650908760494426394140970652974328546253573692885232366515023265822127914176023475383343328408717340499116742042579030283005592633451052571352161750529853248184794707464336573757654565878432148735511474800596123022528638258903542586154004325469006191326610724138603890161111986143943120626415000166408418932463604849226862996543066477520506744977506661750016109416979433214612466904506767069939002389709608541830057309727934730202153043076431708851128826398619388010506522491456834340610705714053489510554134511833503809095495419198054419313654015030592970602920886082906581403498512081026708482507460111932547089956756565747846992430705696769470594941986032057556289314692810885223795801676421309146448743511137630453771722638577702729177381518618287198523669217109193038954834463563689198975980621878750889436292208458914196191513048812423525736161891168828272685969994237440019907841458755986713187638789573016653186683761861979194465855651370322201161143847995088653495453893265840471117072873851691280360739715103569697159901276145950341925596283584587019761575201123678923908955044217154431493066121714888842336793191259402963353530119771042778363684387560025087243895815845570473121133466778534369491585273611433102495224861397596683549959112028461393666827484504695469954051110640785147977271369729348806626461799718957053249327742337753150003489936409440656755985356797068612644230568373725933974400795875490725952006990448171591824006602796402150361452627886926698111839184135885437560589257694913759174026235829790534830222412958653713670627383114698768183297472805215416466798332361857093400842560091768331352058641906261446802412626312743963486064549534463686058204280930373389909948262515988731388946039635383021959382246958263142936765046371557670641913556488153065155362889908598789360870931395325892878613194376458780052339492377122595394548891782007683028372627224837126062197996358310563980264608961403315751461761173215518691931080083966718803865786942201861814777825481425287400893920922292854540104210872476540920373582164829525936712892445196459665472567001243088679073477281205155690095822009016440540596037690996065428493929795895996031913888220452247092289250545343876075415971981806565702988439336859070564772949275134941691131780275550827020752885450454821784536208995246962805805207288714920258845803502825686814921439464095746227682120749152676916542806438251391968133175895383025304371604934163836015521418813347856891717424500091647948933692921720427639549839281894693241678732321094313775515069086332919972740206892212279814020507068329679908448948714781945910483320483057898532577598773782709954614186411516835215707405096604675446564626168931727943624734940133405601550562970235726185255235617336356786666407561144574968249209632709134717490928677156315645388124080623451862156870518964149689429138246290479766602027805700994684486375465743097970234738981758400109332306656351989847931353852856852858893892285260947788155594824346514224268795594613683661961326771188067330063807880351931430020392342086050073444522825037427130133079432826011673912486785665244874698720363144834526627665844539647195818892804564636400738943301226480219161783700550194041488362262399854482933611977072941136759027408645192202529717409082582778437004482531793289863383374422905154938980369488083340686878085636378797958237948675290293599738318380180733842296453517000620221814628875749112140736003635294799827232593216706886315200593685660941550872801818525376346309875216921155773433063014196181111488019614686246162475894068316758560512689672616273727166123810539085200539546807955165490861314526243578994276328167336106175583631714515060376851845822680850753649410924696811678067956775933481793346150436534951177376471114727296824126925371758714906337871073421564994678952374751006692537718730666156725987584371054889293434464550839477497462615356954143704657776417502130834358744100869522088369410392538714836535836246267709885609280525529289301433824620708302448275476531827470632922916957102307704989770752776291685570174406146644909015943734919219827056378939680825241285547500520909634397115949592071570849996648207914069985364722706003779748311337966843244167273511814117667993058026538828741081675996540705089200382893487699314561472019567902936489719393240157162698799444017156703751263746847647278419161887508021929845548571134666979596143294257806172689852570614513911133158849759480976792913313793435595940970700578045399692226608408107487993773609881096944073513208435351214474676972382147339462535165692137435832925623474646020579442109362093050589528755082272464149867214853119807835815569179410398038041344384783669554323976725494669196554937580989549055637780520899372276335241361865296255647364085033967357525723413780692561288479045254050159162001444040119023061097700962984839663783137233111651460997219459918058279364022482746813480584201676332910598407334542927389279549672704366831758961075172026531645617155325483167076024097746542265903800907381167096618685771029301009855682230282904146555447623481259416944240739626399005035585881705840930281627028171382144696641494758561430201054489822569798243588980513575995408028128863129155165450816294099638855424992597738993447190493142993549447674429425179584458676702002629212170555645301924944171826338929141693358999619687788707605507199980728406483449727357801319855647695824639803292151491509911160918839245190971648709803469302191500637318421017027558359593545781721976868485783626778859502100563315510513642351859120504105838167254289554912713037824595922211074489656436459956377136535939217416118740890513347502206640086671445824035450526979904942599795838186108142004427092669541725033918413172340663678116464310195992950864232805535063226475608567445887706892359809580727267754638025094120896445444743992741330653208789233176175874422977058512176500355123817699855856632159300354708701365360373266155415625390762065080948163101812327130997251868504994264394788670330665614242489250868514581193186562815718300075545142903769294321821916457276864513346970759627793485565913389293122000403029842778423840547899957626605682040393112963063478443166952180291390132954665134005025379259436579013810806137743940497146466302989324536585558734054896705723146152594626784962710682209870056039880725202451668278978981243243010838224553848421457473249808586249050913918729175719801741871573191819419362276868487170059583187914404968077362918682194879658753595804042761521826122924405069406989356114158646865254591624288521281392582966940994677910556364426037585786950776470211183702685170754186048900169878312605893569867108552567974249168847388316992603442564029673456073488023347548047149080704931071904180299759677391098126466380034876931470703401288799120840539396401230225457179153933196011252055907298233345470590460970918681586828501554593852697124625423256430310195590188939327688542088541064299687105231356714826316901958007337372629051248183035038422292758080476960831073714930086683256757600902871095817190547863856797016522483479651586853819777156229629095446612004321461815900346712858413975212500337146957574009394219718370362984059940980141886262203001553923480890251734320964740877470143839848012866524242237990771297335946827037380239235713565153893927109530025014943038601154752489576796274111455711340110530032349293946983952843953392938633456175919854128294950547973860966111261681870550755026776106696815977388886659109594031259477963065613631760195699809146092461950190050819402663857287699339844946347413999298101261812806028807002869502057926869270053184587647683390711502815164837629847235090631387046546682358392825634501211648625457449201625449887005376150731883439967842388586380544159588859980519700930837623426499459193855805033967503231411672604777927495830997341478687196454202572136905887993091669834589933524447801190256725923708790311017022194950370928354185907288480974196515147414292343915750370963482782449693812756707828123792595187440350198146540118062445340516745683315211417150910860828248015004111011915888915675517144752444937106796618648123203534412850155271265967310745892237495260825779300808081491868964665062149062143114790824487657458208708623122107359050460823692617746224231911893519844232482415109346953435056906358119364950474617466703687937210815905559688223273472687758761841612426843679006717873784315438436538652534961385394306505353123826966554732112133039680271265505268355429246837095289232887133643265489683654943240713349594369571383894945258410251835774865268894885306314678668019179435477155644146470007314243165114228616931677312927541475796053218038493341674801895301529904845268660368075624826320471194169068247071641257249723290844485477554135311349867725661867807906408545388251538387205615430123144658708207566728460381293307696102277040887610364275520593616053998926350640403421038505375128827057561662665791307135337053914397377766426997109769145922221731285907897625701541861816035731588958173822808247121904588397325311567095517981961956013806981133760186106046248817141710793691793034959492755115166717631477603485425296788242774679068518086471292352108784008395951111368179135230766880870992020798217111352146794589830316898904826340162294119618374156077286788324596404444715356783447129597486855579331503442950694124800361389980656931125474651912870034430276180453691183041726446806110803176969937884198021173180439593603241948808637382229923511804409229427014318410748843171367425241545122721483482395701771304839288143612538805624430016626709096006726917467668557464455465406053257490079501838751702352378444267196214037702704876314503653643080583806117045177948248857472398876776512793805514712072463712191155180131092678645504891586619267543753191028779502642778674096028340783021329708340149188783625515428891766290191643760796003053877574953010390799900002346677722108543398392340347166814694659677352104417211542914592980091522172981048581129563615798682229170313516693035769786833630803012582517656627256646069739576685595827406141653457231058202040351263084589474739816816252855520896578140882756087961840406046120978845606602315104728998895368455072913615714308244083978727813236383362780481084223502743476204153043557604563521123453975290628117406209193414874830643452185192275187146719619980000723821249388963181602537180532668367535318340277984768338997129719905097411347633473524225618850196073987746852867231534427743656708768035650894583101076855223374178966440660210725364435459961125796491450269389742151177144779994942288398660796231051884552220985980754529684873932286538379333671854568592481222649120375467409352202615372217449614507169650079328018368627473792520544508618020890247325838073794347418124016387016267537171159664822526704093477129701780078823507336743351110341121210700368533123043223950494134794385634583537436053324867292414175485514857512741848858714159864057854584765928217562848994876978167524418966705718518808002815157499150105837441191869145903128475780636036280217144961496451703492050277284843760069595908557878638110129984313555399805438780841879825619815669876832557066529160631754612227929607173282287307720761755479196857779579458509632085219774993134275140865620165459723377177821876855971056035973683121997341565946549913932025270953587084775005895263849783766696371812319231323668406953843638847183870732274402322941426017165878373196885827224478929591477582662007440927919110313953343918758855525292807022362205844858721404882070143482832922833549885110136324225822504868446120894629370553978407298938243741057587706139427673155899059954374033045268399603207152732065215170666344909822981707650558880934524171200857075657284059317834563043767558955225231910364780431769966383383535476920217855921298835637984773485439615541267482846004561863435240731390508349547172306361299256689843275208827985990932648575650563464806410976975403956929889112929600009307169520995939404790871763146417779815985532254538646026502765993382242644828475970239210670898095504130462204412427268672601190728604518010143777069852147123943998510808259815126632892377007013140886145205843271534249053532040116426641158043554615839412372123945106618516591777018128256840149943696476317682693758630665145347952864652231286795023185145627186348463918306171711033152721114950197163336809798665741105223327199861906230393843418983099443957330100552665750555682857804708085788473730923831122171902598416324897367514091129682521662184825244906795594175621780262398579074491257333924975163442415208886183051909646900393062664678820066631339961994187204095108981590845422805303841935263251905303296025845231581818174942715054300330571186132081281489639937085147918471445203763742255923014012946706150687066792812190863836496930891872935688781034882311343715715062148467807767793984065504316324445399125721930014115276079932237027568609348911461639099872468851612087902701994979979223559409120626332797403570992100663448459624658508473543601110038194460517400154302131605599247997252391310372563561868775723384936116138726410150829119130621122592715032235432702757131764218836880457631733353724256079545403273895383267415005224320139498908278488830830581063472468622893578839284167298790819851311327379097227098139861140778878074713268806967678050426795939784427703625530562511260334057166283274911936117026804885876019893115207781436943622581562080105085742459433834105243261095306663741709000390081258099671606339661218923447528265134744635791206326067002748645400278748590109726558569673469209659852021425642123088957550156693628395068350212154477920632242967924450866175911200584321626329425766586116284169934192282167690283410558475882102986877925975136528217978279563260397608577209404378926910153771295352568249025276006386789310715137793949910041357061279991958134211579937843702244730213544100379957762549176664564339612327683980218553672533463935029427588808471114836983729441837449287522910843268641739306765848162524621780767141357435879406994126737160099732641553160563777888155145804813793937033764006643790174606110660276363747704870785233905884980288056632277216953596436889825853137500688138196845622442246770510983544331331196796741809687292659507705186541137732788320165499601083003462106805721321192254919325925489127723765862411575256040330992241661963727530949591133712939361275876140330701807088336582372754213980376366663776882214763359412319626383986071762158585420060287326439283170287494975897858680467261624532226587450761430165297470821106699204878747961083208015932042202726942438703500298338643205901656669791684441368309062330998999353971093534238766523579256890271808820012345392141142440618570341346469204643467078133798916503262916148396677457339041537763266894771539269056994292684503763159416901850824961726071996344575576418130449182324460938177635050217728408622374543804853404230036942788418099091462203325631326314076858619578170812932337448385979431220375924122343634907972168771097144926972409519344767195921969919833116719355960101626237790772219836879272661536862232789630450447830477010752688747218684395378804531439680759495610900219368468457680691383741091858899157456832904456217741918324149040423627901208101978943216370575829211393265890970199145556050517196621622336726229493519029922900350554259573212611431160130943731240293737542106149319809623365774664250838626858625841457417414336265362404607831001522547204000183606800305066258788767218558893174278665058877648717900039981917967978936943577037767239088737538356144561183557178463833958193772096414991524079557196393141266181904560324827946037739461477459033424823808480954851875385983385406805409555806742922562720086514690804530845276794402611779394113511812453710842420537381442551457588915441604165119004010031284774585216900396092698311363669571139735539554507572518728116757352297669145381284480897181679144475047825200919951503270971358623252797016919261587911083888919246250738733309342929831387334130698642519129140011538124651926210386367701309625638769734474580942711798808431255523525320678971075419185900790988097680466723703743937342687530881157140698930501424960448775741399276162797992911289113382246250794232677150216325257820887102668426564171015479653198144535830714999545473129323496217655409783344814007152001206111938777830293292651441155168307749680647606485082672174504648712367541675427292453533027512740196434775899107184860924220088315297540913384623566834489765091482033245122611531254892489851614124856842144372036809407130740310488075457464878724815034356986121286510713766774290905709719706498223622500111154173564985004249380767254058715261994476167715144631502420193721050644340368034800726414898928564939722267027965426915322735160976865611787164666751169108876312254820257710815997487583040564915428771157405477779842855376951250953927320746264429155364851307673002318150962955523621953757910120077766272218321443269244954190219722339328365574116702553238588506646626334468387760457160543214231765062435569546691400785594667216387313491088431820006892778305948691941458663866236808668423469911105835108235869833714736503079018467803056949551631380886668181065016506644751163505616990301122212530782780705480447912447392094412217086014659406605184143563374491421321635394901113248492388309264610613200614301263778539797769468583265766899092031725094042433246880831285973045499434080559275567453124032341910244650783624482305367031774570348809727489178370625597860139518036398681929616099192728096471198163240960046896880491455398492087209500845283070452720945578527848012150879044077757091800410845657616782789350336143771588699582881741806059102322456881834055680312452528441776054651632224819750458932531404489582135743235410664172644343827035607516934555186354327074875474815045557296545335695651289213353326129978324406992114764859491426439621883095629724579738323698978143248763295227720796224072836299555042854840745593641788408474026591109756192402518237867867223960299494432395731087659371993137110421608219651584152361134176794573785292062388643424663524378314589939811434264734700238334568763785536142100654441011264981895154184818034836737976658004651778880637654352995942087332979255084368878197872977780822106892604973147948255996489066108305481808432653492584699800820876995613820354594892159143230528415250189175295432209970216230854143219193281813593612538041765439637724720919648466755982637881911142479397430565922208381281069513937097373986083244661628515233328336032930778684830639525975665099363780975756865656551645549648217012675652433127414653931629292670472821224952253006140307955126807221029625915108646976909137300508959735587955284555817726252521031981292312924982974518049762510157337357159500351625049183851247503435676506992059221154320923515007980316509655595566203832809697618735920598663877795284837187076631230291675564194403116345350253041953182281546842572326963178865713233146113260122170948436030755243664319093379297610549424334116055415564570021973165429648740642049623078550031321956834551367698070638348256691266043531166558338063098866370971688361849859434930385661597270845868941825692302974039282850386729585846573049628957128878027170186303223496637131519903376684490093510175994302940018848699509899028764055757490904938753516631986001767376658775381941312263458318209888063570479942941948711176208627684873557410991712143539522975953295710295471296889823044615431024524637840345555762890305103547543910839406806660929801835847297222169163205445785317728954832359167767465568607791621047646012033768628652791098845371453127435317630412489122520465921367123595252225882599094978405912375151874900642455383040845627956509754270025154897586443181331750381835473765625203069803763409335166168313082453153000028896630512079540014921718254304308867636038738703452507651258674284864052570808688187149970376502924963009888065099734419940911187855010332115813631838320557593016969429719520953638978112848231938829456885123570627945592307827746517899406622623084479007773337026067943761853414269347022985203407625009508703492259439002232322498557699128925989037757993443277786731385663873861944997969051473988007286972357899353204621111326813427743526222791145387016443324467975578106934167660554406612343627418465771896566073330408822460143101823151985302068119822662392553979898268799845788811698132783457329534687897254597780877529871469325745427709629036823063654521602628651606972155957123057874576646248781888536860627058555086560617568592779030022490122358175824907704737650681786512107516007137262449964309487185767348115866749823694278462480493836886020130476957225975847558610691849843379320792313358548345900757727570323563648509579474795775277319234186689075878341339711750428132531380751732617442441496934774785386486914214719719676869663157779165543965779979674106758618455048014069666750857485330722138474153743509083116512161340140198048856714510278583602166306754621352597044327870897134230977413108441707910825334138969801008680564508877015197830514741399937558321870109806335100948449617155332030866895048240551420602010605012775706824246556422858787348224666234094793132518436976478019703332324332611804349479857874136740185623076086146291459629169207260494897261080211632513131166945851268699998691401737519503425396782044494942349939989359321267514412525289844057394922805392326090785655913288815769531629483760545584271741558205489773816831381050689987818059984733940182624051870090002808717860371190476776008510027103074804223609387874436338429227711091480905041550341318890485292060274128286320076320824553918642908088310341273176904187237222726882837461749747043882425079148732510174824612870096054000797488906795839412664527653076469844886027744208004996441207349516140715765583126423127263480464270015838647723311283300634588178465349047046941190497998575983609414880658098031199250406015732030522699421412948601756359958592298082311288249369267809761426296645766058611108042625990490410625047055674355308313958207122062291022039425787878464513232042694245288925188641588016264322693657931505027167469738995598439518493602712196794600362509682622159137245911215735373996695922803304461272053786574593156024200001863403195568102647469498910667822084600700124649355527936458424696283853847638722810133986211344768751657967069315071026964803001170196737361934956448947621904354540390013980180919966727828027745000912343185316004890253593335887711156140497322115235390255971740597817792898826748187081263285640687320552849085006225102849520783446979914499190360905089070926611638149504803512814444207117809098473130703999594331985261831749814738287755901585389593058088552412240123192760416223971513777560263595790641698414152144006113055687148382907799831737024800166684249627592323199143246949848612761744707980410137821412995363100156352585570769773969721527589108262116714138060778290246410988693713605458394479303584523663230349043606638623188140903473484382014203247623171117753054929118510389199783443534086185156633451987623081005352500918730573481372651461183644532648118304444005341530213857597630019718030717119749282296556565829010834788673981738001603435598518685101524523552831514908174540641583881532840521642455549005140975277754610325493203747188792748033602060951461343562909084011165940584250877288713632735960064461023227215104041016706911937246066268879267496597975135145865846819140309349868071628958700338805181673325680461380706977571139880492773942509864353010923104422025908462431090981072360595229620565225971074074414546367123566821571197864019826063902809902559357774657303144069214458039785932787421719763308771572480438400261217294676915262121238193446935488911654710000481423827330574084541911579208190053238154960230979068367655008781211352392916715537380138580133058783981474591984842614384879195037306529005339958769460027018948403752913355057054765051330154459997297900548251606874654105200049093521077110769992283515112832506741424727343727916167218593685794797408979939886511466270862750508208517665864623734144425914763243521268868874231242107594362823797462362066831692707457005758139348688479694111997052882468033618332418551693186427659616165725713852931682598811958708388167499034954849804188204705937129571312212296179008614543593682744703451400610616365145373254007916742415595978726118915650758137417217438119200066338198701813508087226611646249634460532962106960769528872533290879077859276117866274661846619015395530972265778991852607508308713544214999247171382714025001689863413698432902469363727179525536629699965147692182478346191122756862621867804207658243310873869236552130963543937125617328784894711537945547022365300026202080049677433185209827567676216077758353773858883923927436126936397020940011073074889337938855910705508425774450131084883625069641498101169832167133012491234272913353349848278063957040302426074662917359855346054117234571959383315502049285267908455483340760354003673453925730486167137521852606721958494752241439114946748131797878712716188547157381024967146069613766980856840265211899995115025336407572066019002991137743343670438567910278982007613124800106064463610966643813859655467517046313286276900970737617729093528727553039052258780248364211857689302572021390251641140356408432327124954290153753157977418628569418252475932631011796444977703233506645098994645772338792287375907774813649762944103535937717977688085487889000043132355297750665950044567202128358375289696521971905953361980883803639793623332207231407017378632530872136806659533277006753312974999166996232186364201377200038183970557418685912133990421985707708874727639701348879208905893561128552363139202529966358415635844859707617464149344723519159554368218719593456664959714322147444416263743094393591751875079303669403134981846087552219473650962330516509253292828570540284154170727112540907179568122350754210116587138411492054446389475336142760632317814855742279932594491749852491396456123094664189026647651049790409581160915107171768462048007512385086126042069737187197612770679383072914316513600479078541379048720085502129671941933992438618139029646436496950323844969799152484592835764283616895532085738724619440900638984801051023428628784558540213249328561946027553408314628689106141801600774384613916295903601977849732971916187690221567694281431639063807192269501855910010115875582280066642822836005594037073374265809254205156990492765051997241627204846725627096579285462134526687906270222847932070153707302623489164652786296851323221483687682196975496989445681696621525245520290274611759752931114877527908408521000640574306371608196395483721362479537815995659946425544407316657345894631989456996942257383022523377221686847452972829882124423299624284145175467484008976530751706401704240365527976097956933965356517541382504845146319939176868364544177168731860214320996567712735418201706246828888551029479257734247066302602100768979777487210084075505153585300961575073716587590658960794528093175249736667740199842606159350263610081292715331646966423007159834081253774281826552534031197843414333408774167387799309084198699992595022386444069228389681788909842918645649804495633829322299574774638410978810938643258824446713054956125355290226839186954490749554584656225294878119659801829821628374999369556801912202799922659556492506989144948428930242027502535622387434453168540448064074776776297438418965387307198187187379661221782152294393879648164658344497025229915402357050340272743226686124259059042898633781300584050072515424815159028758082366915240243740005783280959497097844609566663068256218223861615874764721908190290057478938940664995551283560062898233751046586542063177800110538621342437895448003259452044743228828955853107763066082824826716155921267448001127237478907472917700739987170521161598328456789513293220752251364136053562962558222142861186368865310728716297129803155252905040313317923788330179253659183616619550822943843834108582916393755583829292760760302096563654574156381563890158525882077824564033305223973811689801185934295723686132483845990425614291477935475363921777818355519091414288110411646182626036905538247257387310016460484389850706916589283927951029216708907067824918685069556031619745677824448188049501656636366788781593971359962893597644700396319292125785050281253033670964195456768131945240238113938966270760488359414199986255565361725535270817937585912573001374448902052660972742379684886126604591113678393480653932368467501435110555921070104890124034497380759912864502096242336438063691434714824812545387858965788270586195219719009038493374299950993893524564401478951351153214099667588400226353737528538973562256700970784710229115807766687016287369515716965571485780153623510024251206362438158031192758089980076508516182553095614219695300486886234058172115842993462157119497990767000708146742100044358616911478250502743980885404715036067356872441773919412553521145144000063773098994746416888567824006730292950756834135697929855262637074468048957938237604639193233220720104779081519739785613605175056949553478118943920743799207929727919168302760189862147699705165427215244022723044472277207820061208008870737615148154755700055790761405681285270084652118070642724714164262196648739050105948700799623708909885195524832244215960831597308918761936581098465875546382761774949017060911681119850466379396237901040067517536884715343115109686069445111153440001443716082372378970919391166746210960241575242995150654257226043533288752694710468980717954913356326078418470616274464561339886183821404031139913731334897188508069976448967660655677699307040980376171492893641728466441846331479258672515403712249783974443164152818722501904281399100196843248156878309738566641754701892165054583796107154932488822230853730650906018444884955687919949717892247102955085333322360832902936909303123121719014495662871830971036627099576074432493645861309806352466636543077149910181380181935671946219328044472081922687779273152470456845758572462823792861339949346075636204872415450486379359558157002235038010368120029667654635394103990575782693160080061529149091592254453175625223795659506895936329688450046932375192867249256570109819584445487417797155894371211648489287384847842202557951892827076546678476502164512674602305094675087209982775089768432136881851291000337224796023553740355914363565403009351764584678539374015789718384612279927243396849526164402467253653814382505547448917137264978136988237263943473809769776312789258568035611302716995351093134001094519766640228068816792793184555256988536065277598192523597794177623358932080147297217682476588042552445809427882395563001692626715853651304672893408502741492385725152216014269591491490853646445914806937295498667296440766166573140698238976487357537997295605699355149418699642101785704545087976416777207781995384765622983894653196373476302573626319170053010283160119063465279428682751155813022124645599744538483063746354878817132046630949100893335663707396429107725906111568153758924539550374878854209742897308731946050479972663708183220060962268760644678146798451254980136573656838561688571177203603256195392459535949768747336093193230435557130649190845535131326249385115086367558298959353436737505419932132747613494919704302250093580855232470470097586713382213944880012221261237096039117492616848009219587839458443799478461248077460088815293487666020171636224704001554506781225076017406353768943295954341593532886354421921647218967574358977069433414911404077747817734896024686870923390098023306319230603753650042272874280079654395181426641713313651367667927647619834763327492081086319302749639038285882967765931367654225559348492713272296581713530872781452371371349728170727630769817872094333953758427413525246776711527209910889460203452696950896294706030135106463380751218782018474553238229527014161845153208531746608614350055096811010760407562128322960402506565786549877303419347915193144164173867491958610473858198168054167808439573846901181346529759097977096556064305541725812420296242861122041160879505520463212745014053202764711528904669371834080990991455574960798421560283716708464960988666379307273161499876054356679186039376371539664945571643837483431544019589033380007789123888229598804711903160204449051840226201070158358420545694582522145731485882341953089511694983230149739225051254076058702673337507216003383332299416902853003262174329160914249536739429999938645266307299263597109532507949230610479082998668493545158802798302418594070392369338664880191656660324962931578384194479204725189361534286601433574226155331714338044880636132999685796709304369914717837620914450244119192077350749082134958329321690323126998097657354678513689357890542793608625110947577944910204318354639135663675289828053186858213043436867338346265500743678642044703146807369863083159255242005747083105942646453959916990334072060293058180439743036315092224483725812130102044295025282498911544255842659917756934477626104507529260482730758146303219664377413968112111788905189678386193346351603440728677703018648390596617965856354521937300246780929051713860009817487219363703023813370129303774773275929472514234145108269648313880649277868078840021113843703171827641564968393594728526006901785101755808419113420523345420392665963589686580563577644233668730397546806069515004583263912234081266548671314330681399737493418175323052520956625966743662566804166914736505647329095431208331981164432885136632047885297441411371021848611668196457435939582039835733167540080667235544631700292181227736155504840801169431264082369612451999352163812763746486819799330954246348932748908537308715195576353028254726487336376228852734728231873458846832814920527142861748167619985793030036790936516118153488296741902271485313083026756549299683592728995699135669115337957084955595729586208077667051310414364354958900926233932769360456400418517260179313702645880094984798347620424108970037983897674055647528864771549127695660833259864280468751550948550077436901401693349192294351375069345331856861914847414407259055121748501401755760767378490240311542695730991983799654975661958764615192824002965890490961443814987076385788166980819161047672794232559489856855203191117438282823750838029658978046329193685537594404481658363728400203458709997092087116463192417777830731076449533413087220535323714075219831790683344825449589252401624524676835974760132430730546960144715071396905274508596657417868279992629873905792788990925296293501097473741939977620420081472565805797447761715927822929304835277067335937130914756205660808623981766396343737419924826461369610170629881644040913503986911479897634662710772616495656446758564660319412868273194384411711766304351931357434948140643254147758634582983315900128492565504486083594874476155253116731707287972701912435504810981613122648405616938586537900490263546758087075983053791845510865784608937795720123353964547546002470052004300962373082497744462573838327452458309253783590586974882030028818385276463657721900207301825506180595124835350416870607674231305355437400042361009464793023441194965647778793582423148852028466831209687387878753873999971744289742736127370345176226666844116914075904511994908177653458039847782348849670253677451880191130070576959637496035112245502176557149063588018192855008965714224690958506006521747700736677634586204686316488166180278198079547200378624492609512585050220638961909353285616776386703942477749910784519371230518819628910528190511127037006455601998568349434439044284813840431756250588435833814640916696080904178180531015535440038612674477206967891895106788693754797119012623440624824622004995714727090114062506098384885029019740936547729245777697710027238820287145188572499985396939346579901425516455198003680259142816869806429350282170366334447072422431634254287475460865054261364341067190384621602277034542592568096572568639049535069361814872266362249965738016847969194387830379319546959505107493008978184292813053414762590258741014975650545811688497217311066323854455699066297416030963188564535210101910908957046023450234625410248922140478124338313140850511479278547313125420196067196700956147522098505910464979778870208013009898854377258694654686232686977051119497131857489069515301750098049044846044601288803388320792914234607631053468186131040546985062032081337075831602346526560466859441071309801403721949495612293442611656593322980385834244139290221124328113097830412160090367019090492924408367577658140504011875035227645637577621717659047007504312997294426849283034320177358111887133076901340821257742376533704942374383761081500405557499580074699567078330784717309035503111650006245315314205535598049188493392676252677752750343631307129793119496977467006490738919546911684716021885720958662511849781728678234260577003350857036068568896134545603837066366238805276500982695031246568884069537311024491484652779429223427383119127912031371665025485153590832879249936466834251206196589369363940862555674962155988243913111254242799220320286955942039061113560025341479525989563679638879126190100594534868737384148028937042112799122665476529984796910205272912028484641737622983289142959175235544962377017429124753316944081952592994081976179857734114505407831212217492438503115913073172827061372464542707696437917344066599825122130438158762494683367054239660887539609713038205267563581704296324938944751806365809549074036289496407995653770584661439587903872940049978457703710619279679154770026673970036727737758082295555646067697652818530003184716721658805019673381851872637926476651476015287307077902116009850595856040717693864126664595506147401537940456872096390326435900032223213143846999137476302916641027604742537395176413448985036693725275702106129909254295241158978239695518866635336078565603870845521670470285573395070599008973576242800204877611566500039549124272312650217763779541527740226102642654236978641807572497335455151204503365378621429368060528220731428660046368350472153942457595138481206856273867841912298054995888566732904772216228163928514398785366737171987820905668946780616566632612992937209412390576367826412096146594020753338653826948449063560086348429771919762274872627548633917010615802367432665234973263960840654654677115258297516308627974179366499052487688817989235123520928611357936402039773979729304096082711324771237989164061121354004913506073820241252665022019789208444044806969611051211239982560852376853245963366436901861711908509401939909007957444414370991427476003930047517248079846627355195056738397743762288703627218922879895542561887852000902438884140947559605142135192721883789741507794106595243121415668534675508624420504996598499355488148633622973534831059703649492153162005458532364272650378542369747395297877100629173545016266408855307293009481838278052845290868582920134681299111256243022615198474906916804518236076429756640017832378963252954752129205391962067518389848034632483058256188610639723231328885527165747066478775119076095166341563493272822982072425735338037426382507757918102578515045688058648983443710939909820869382513333636953800453761346219397617418407454218136899550157776136148931685532466325232411011405640142259283757300582450191875217169136294383833033493249720719912738198324992481852562632178191535831641472548138107962791777295567029354350683452808967211455735789565182483366948299337100978095107584582957136646552548983118630898888181289449500711906693922614052498684566189390733207169875993579219391973574087161543568385790010271592536291501342795671978307513967009287333644461326982438000200182313408716462553945300879263708056717139080835815328222213826051507614754868622100397262294893969349749948641832488630090285153108616754718299809446961459789009820883299358279468406801495067024604114007271404695985074815636672377702614407654579604838390139119052153335311740983559533988073389337676813848850332614066832776307419907407760656891618416461908167682160339124326453755708340682014382112181630384650485868705879350133439460561347341423279292709298558050032950165390986486877292055386770018937471929911851444463932911977117326033820541172398201848138141974098517011361796899303874961753991273906340504758861285734618698843233108484749286518425934190076014285827238346454401501760408557583987702115989696214820660780248051600481431786919661443247652984745592366080666205089598867757268743920452550713484808734301444287332362436325103196276213939754186443108424956701470755554342786504177302424772323362653389764505093937213134026010458606059125291799915814058965220889004232785724904637021501663850739880704289801126102150992632910917987822908780586647309232517646040073554764322572530759016062581982655331711204241425891617523442106050175883147766607800260252116436003950003471354976836860158754544846272204159382927494706490529995724228729905696059116130149204267677924204061023539696326101997845275741650849654982891731032258685807159389657112817810429935359764143979330822016458320172765527867913578927248163591552071276247342879790785324023151510057583555337794495857825010254652226710237405033848639930213875420940527557983585021045531851350450710792151474876667949260954856362127157033596194046619851672901164376602187883835586352452580123661380111588087762339834099629560882903062713162263621843871473201594187160524165941528312361870858999862853496890372752064410585566414013468924963289537701748240978888278004101093863457415897478603692093896639177017558595510080104874921399582721275333474364651044863341044076491352008804941015412355236448891817118601439307241574253149802748004439190247710330151672615317436226045044948609614713304636100981068659100751112123184585448609047409924452408393828003416233726634895930589592143440522442323235136396623743415512301354547804693168319442427916427352604346313118491376884455730423928834261570775671208238651984243801399522302119633400342465709852951243848339321998202841667656591799131804173575878837680715354603218566667386452982951421479567225057438073687879693298956028576324976369213839166608335066613466260283030955844608460033147863992334948317619493110709111085419436169969000208730910115254604714245864852509932880707107788596145915701772564924024557376102340123711444798040269623032334714754518565207835933022900871367190205068742136655984946289240467094680313574760297537012292098668021495801552841101217903177988386936065164132949612697321650242009600293167326771295120199997543617019872521687589815622028593736593382620749349834811833318438895853650717247398063916134723054106461831921276856649742443948362529815422546689183773623383884759115167156256644677371150347657246799152713035716353496750392555504899467168778883651200270839131944144297000284790027437230874276121396954028310302172034500705134506146539295560282148368087293583956219696411435252966259810281590247558769105123100048372301786280357329080030381931829100828508414368799629641992256653774401462530807665322621322538903496436282343296139715933197273753277988784856466731454416626699350257521358936135646484167409400942748973203677081464032864772142846072283181252917234684790280473069061974009248107606886038449395058801088869400319471913505870287329191884189716102813504016647066545028082739472883946266446554948581667595566493622702340321151080592724285722247610961719332260114396941105670947025566476038670524929269075947252376321715507887027633346882081750297454922752800567560976605804528320446591579121218395558667419096447014101231867717265501089049810795189666502466707048510509870023668521745166815856324244231071592377058677537653937176320708349153671443247576999753552858157746929269329105501639726042720385896191434506420697502664846992210453344223790696130593458239516433668127994355548354575458324157437259905170642292659083709244450991051766477234184476908324609986879952976816934676451310362611742929978266866540675480649567966355669307033160719951957347030875905053758491199939079621742576669407014261127831297973317993430479938984280840205445598151006005570542378035978292503243313605805733047940942009413300934190069121031042956016112115062513172105009452699113526123358689605276758720742980551412791203757296868172240934017291042852674466256431991641130005664156189802298142381527606656743295171219505446217942096771684460274191419522766428947312424936921507674620732270790617958710851210064925014575558228376778096437242376858533414368146247540618358048975659843602215588750552509628433652061114619889881015888559998329602827662629924182015604552912043764584487020066616477239533250567040307779117872352467983831193892027163445237921554594101208714076840588860150203738083386641039520763464397194428203235918894687096777894805477644933559599888782336539022857004604831461121161294526407570415494343211037719312857021575248380803962842343280742864015744444689777963759223390324571945212751847666981389468446531019835615790632157641066280562194282061196190245348101529923542744765219309459745856860059513938350523961175337607004957506765539903251430471449890569303575326430490220978329636341344502834115884163698977687793994143118954770504063655269071922252592369033791077022892754078098223147115723028655641106556768594937320390332826226359147874285758457161603797724335098127491598451676419811749743359817450099377936172055347683706121197222507391101877459645414828181951808322781773614352810305825396968098590930567884704070908031783478009708355006557958350843120397841594565298527131243321584238959511252283175672125865913627839393446390842583865695076661456215819074379137818227275963422067671172228254129390633591926740373956386005025183697130992552026503152840245177060515113611374547212204981806419783522356760689975098587018655131544178589524460321443841699378749186207390799359827066493825530648732072684298669893632393404871215222506500798438224926905639529553465312215913329650259137339190992285839092559562054221675569317453754031361184348008180474970076467666962288856548128762176485298268289718160236689153296403692243038053199777401003209376645523304446953804782165642911432593013050235424720112664019447116650170077312791041237416164656561721248073765878680168797553485483774747531919858017414148071801078360313595469340469998707465639919027940767753785535901491872437919558677978979855598517494473723634176084746145046170199598040504531332759060943096077030838966514776787991149032099937230144793291681945830092980985361473950931968349680419977989131778651617465629905290416250569796644931245590707228709341007124826996695803544274093547649686537445820395791580879076610547009922138363547316736026869321205788557007747616631592599011057609406176406720518233986682387425842643012122759929640069476368576849629433307318152465247867206014504679257930724252835075259248444188368499762710596157005001961581642262872480518895749022937053993869428418099954402008340660747443785498812723532394554943517453065924319958591922918577572188187430936399295445445598721105045869972237422508763369576347974320692583549902195006521888231732056111932285928505713584703157321368978092068233595469597396811517736048210877548525355713655668930922705665910668438457250132153568220101135226743683513715768168042428593934797716782384828206013570738512711409239426890815291121602042584829078437069917345586864440043340968637328149411830701197588788821883302201013437888569138123857453181584929838024924442661476677879711147913521986874328029177960128551143047856785135911636071198064997175357113387681632095664971184346010200186962099315689676903074290492304523441959680653882190219672251140867354080733446152529664364243275985063701605207912284332665040952542908111981571650446396081427652078834928785579786427512221743126641277744004310840941805288273264387356994629812836721177433758079487776091874696661155892189526105937323307557660136135482365897959024976149327092647114512572653014833200739925210428019147059780091352901017863353836891923307893604676957318922566954444404305504095526792429314175428896316116341498937176117361371260285233310106186849116346159248837289360009877412335518335926612637500289905939372708743469670318176100215137985460291664810938245144076524941071522461358099465100127334006398363048306719853216780062916881523174948710720055786723196693294873642200453280559179228410166530584552022371759335577417043426349012484254815919789407779838300257643632860404838167232535430854635353695919288507923402371848629797901672333958534187893239367757202054583190351588259365649021534851745576484610896720095578561168816969083399120564990444813459165572024728970306008963408170640499143944012769955752884247140584628886002023945289292127110834745838881921961911843324621854873039314170729875355173462970430247313430898010177363698867485965751362129440716100605497660315483429048584517758497692330982198811183430131929099640069694103349043041408394485452537688505828471929570605368305165287765495614495224433921641881848620956093824421135806300372672860029739250657310770523085170973034890540570194839216107829475146513540842239526070788745494362561678031437917799745255512217823472510316871989840465586254199532924677463435114866228003755964287000474807067170342594638163600302675275441989111363301676118760620089316780453275479440165960763938217336859225472541700558836326619008347088167423188031960727408221929653798188429309910088964397579519226141281300042244178836100247885351180542904859437714626324093577285123215998039637992836410182614412959014495777415102456807987165708185665015881324418753868280599197513886449972525865000141880315200911919861853601726287391354308399076376844473167472369437578257779134227964938221970785655499737459983800591225223125656367613850542237975507484203650552517441707619239049757099112888252624578571509976250094209645358181650097711637812942422495674685463391403868081029999289184605283217780636603325482066396015701285508210998300489773215828618315563081049854145019696123860824305692255043040611569245396354944276618318581995302763448347891722090703967065717764045150056235493810679050446773127997244734996799528595732520807013225491491328758592144209691308411828910204636259163225422604218625245167398759603564942007345016682760490818809618927645122352152176787871683998317641777465226087695545560359345366512978641326517441443214562141035167823908482594094365725287534276849253542239340464862149158896736397849246129429865925016999735754093882989411311268461213769303822684699061324935496544857595325053966294625905520612165122244113665915912572816836290850021680964566650317833036944147049595286674447112043873663830089963663484248844711218423564812237943534156898760810414062955352573522758839580650986170225192583413733352057782901546675920737118785902450225324169715124334364780271856281419603004017414286266145265172625748281881881152483753393241147363804656971385481543219522542262073243267705547073037108619043505601166239617248773501604217677712798844311242018420386282962996301858778584848772807101883597362122081958871126005214803709461228363894997982149867795630654203873971230399187554938476159836455974255309315911625788445393942348082428930686395998847426748540910208424085041038081276216727404810819747204045402266875055458468759199581123520393660273252990241696775087658410179875227691589167938893697028115505813892727546975222856307208848216982724032758135303824100375760820936015516076037289118791594337180172360598918712389937041477662887650303544913482196663600369820315520808502146099557460549564124390970706305607717598831810745941075896375279055598422249912731724265920345393727258621064220491401590944634293809538179063497700821661811872965335626334066643468769301750647279657125487711311563992220678076697724029373161850981250880192232847025159432878125744046281710946841712416010581994100725927875423988564611473303529161393278675405936550219596270305665064802695372064898769249035091294150280347417727999654745560037559687355011723981886780638155140808925152524961807601239921747279885216182174381623391229329044030661469687073051022658413377619945483147611738704221986118282056824264749026639496083378369545782287415180255202367937867609963406512481205287920745775690800301500651598401557415515139758663542483652899760414048674371008543454726219076012405838710299906338486550098514136403213729075485693504361218471011083232433260413394697520196545567783116692966508394566226810709877502403495883040187126398921095242360453449967096504355568408725494163013975296305843112663719383063922437546354761584627085442785945313006759448243229675923774981396192549580446830827673318429430978265490384275712016989420202833097066341091800860011537697496032235819732831001874615571246685980660153145326135579209244011041768095725252799006532849442298978535052263702655171897472301200659887052431743923467195302449372665623349888930934634148801833643616583681841878001983118637182087044614466007955178868591911557135113258342160892457843950425432173740542317770836214423683640652450315744789895846802567463937244711021241549712043721340506461920775600036983234071129974289313699372869830705978566288686676898979657736147057661373021950248296594971156220917172401295867899876764756339546185329619451913571237917036375256381376273415080207095612400808427078691527161417661053127710829793950716943670972532130580037416666282569678473193169907818918758979887524593236620019066769072314571103271719200880807601588970467993507142687167112514174430370534222457042656320170660141193633441146254217258705592841568120266631769277969591085315528546415368273804407253415395729029991915377463300927403027391769980278375479948970393130019726416136890308813828964994060447464205964500204307127620070160835543191920279261001728246809157848312154415106820609221473416814217967898917165927268015277380904447681665853545076582324373616604863516662970697034255876042494009566179853606888024936545140138154617315316747973254666451261105700051545830879870395986032190751423218492356622791097151239408205347352223130121704232010442386214503920985022908847471011402703380423856362752940325953625762044005094146907932219516018077988002351156172017030627405843258840934950827895321600897049052148129496029365047804596934739692117387832027951722637332764573388896014824615112676188959267608014290401736324791731244011382649054831828801397022799698955301339596700853782596406652543801560613028967682202289671693571404705338446824471555728577152680364227995269006638901549681411361677931960004404654467951036372009791161078990484518996997573829031349428474884541148333937760311159362650798140346900005339024421462141261747346137213070444034941920643760257175039953188246079482663993517400441535606410439848937771975327166786733756630119217842488256133327581361513534186087683377665347830205172095935145229612608492430301615039153908391152886097309758298096672748893625740492067843740729982330845034296582526946432329615036748273164573032120310024317423129584218217235474396065985116615831686742171848722464418358841414114213830251117027412599657179724394422384405272680870026793919160706169801280197517915848386775996264688243906988496281839724042085008615968114729428395619481875522195673017930326680760687546543534316559665598928254084520104340058291418840488182146262902515889351646338565730379352487419310476990528321808240052333700155576922468031919096104391372418817722509902557906865622963426720375351965682780342912841887533636168560165410805954841743770223195050017152152381171218237742913979465850750887385909107520219123540608508648973847943261328790811897344743645334323200575704356288020576569749744945680784629700805266250515712715226513976971324641698596073739250976075181193260889313380951072888176171095702143711845427882827722699195835107454559472815717854425294350438289757217376980217707896795103487813320731109016060767501076343809753825901254663679957897789966694224230613382127694874621465603653509633482532941515577504170703992546619325605820056752713490126926199005273371530499840423585200286571048523671353183216444263559095052655070567157595147554673104521950427835771703730189686914679780935529915131379497712613725565136499622882845320412976095115266976478299741459366813693944819124250650170945662463446697140018315429433625859625467201623005334270741227433623838532590610647234172766257962597047776197152640780644796030188579915776201518789667467873670933586865581978539525122670359293118908804819093009992928349529732934712878266829995424226655499515568541650977872785266186885174225225803798915963281463191276098410858716296208165355327252080725695893349316215136247053381142833131123159596701405451216841131199028745582402294774660704021902047302980203031034041161449470728894732424233171905969040849925048896433009926898539637002640617095008399752601285946396032133305364939653219913584890916569292257372323185431414349955255570549559589232608952825808948491498489496112407985835687490227826608601264848210274903710394131364347271560870865839375487891435720645519979212764925191870717638296774025852123226232217497830722982767519994060790496762167291428563584498171869487637402835989170277575066776812268174422581362470544972761504855716664253217976182319504357107469547945411488760569832094542306254356626013585759916672508221995170964616606599076803150344709182049326323286518008743218894781847997221618462924735221668597035707853607225317459609525307246911094389778538479122762366535056231638831265081001688149140618148576329652499333890195093227186752152780895345741882743761780335266288937216362146185709102763982048785322093018271642476035096614216346962092175245782428608953296899662891783232375224210095880887406158622105115372439550692467691328426201131942191189772652348385192384414868291220437259617466808188017547210280877112258187508228606647667012155668240698294995187368034375984108275914097823997865671434682413796232779244634165861664225360794292050184496790884642283556779893120526227774971011290933517599829866765099864562870032102059493718733016540625073492157959221810193077653073580614370898162392664463720708076124140650471547412723814336436944863948660079569091064041684465923956450910638402697601339501405243529604189470756590359938249222997975847473461736501701943311371397027031584956517544199675698779730146897639590120955050765978298241119961974821920945255948302428761465997360307790891410133302595582964225310511874523151784769392312266372315228342792248975659815654814285456704455674600553765320735727908816922104460175088115307388785205087837139569620840219149034333371869775843216606019042515377423860092615321564160435187439913764649740234355757606907687948024018317493883565981845960169101606071750955668111698435566262928601196917772526499060946167079634653238069191436552164065695996893362953431591272491658821100987436456587907972254443108293721869225760751656884203098070771205241513020675557217477602604870351072741044787858857684901407064655344113349334418784785050607443269154984671652856152342799322061214572819699048156026428713608719583177364293871324926649579399471707639686976936126558676432684590133097767411363598299572494785373996108429908310654756438736993793410980605237758620861944055362031662637053303531734206717578528918091279837300571855594878279076106921297426036783260731377049111208419702291998995682835992921410109391588793773634372477504369239766830565436140025185084415551971625629208001212011717972259816229961464461025546230401892711630270372331816894999693312670862299118354675226596087213968902991878508979590796506181394952075388034322906120720395427915427712833285064495466837771044316741440911319707373894570047657844292311135974523535078350689388044627140596535335745613446967699956884052169814450417840982736377862293292102456904465900443605566918916894602337773874889698736703181488024594633841687903837268501938894092128528339257480283746606616713541715586607240590389018699125098062960655742017766410426198713477587359612261178549737102279164974799954675129684778068318045602575800544457491072427151601701825022877768332518634194626674717969880918168855677118221227282092304372312821092106825756701509427488371854511086411328082960326182070851139498363187955199190596203087450131145439497359567405867900550867739088553003266689078710203896494163870971929071590209547269819926660630789441462873801418476920891021757661821052094161079448016812165844429004958392153017023351567219241639025679104497005679818547531608264560900204978333391624851042891383595505040202232751083242081259830656839788865284142182378294911385091016132964656206608582532357440731835160937860292325604270515475622802884647806897975689259221757530354014602894135906193701389778757902988907270965270028695349481688385774065678530714867360086442008468647027659666847079669754272040002073510125018529283415751512260152149609519782423376382136495170853965306394159023484542727842109113635106582336350985545861543176076004096379164945516494691696030879348507744786869737727423267327785709303615006943452440285767870331322488290688993454980753063602232850132458380506081673228418466146270357987793297319122596757194685294722871871112059408817272758452314704302406949849641087849149222533537739554823984324591372767331534544155752803166276849867268077742913494884140177796503354834625201607654341394342704070539907456186454875454662913701089187785927717491216365099797258434421790595796207449411000228286532257092935369602812451519121252122342647564471315655354114726873759653851971511097333114812077129880434949250666781334308699397718211301568616720633631176294212788251455785729607939729566693006887684825041364019955876154264503057253476481351242674867679432062509860887089604961636834810117804132583002076212483481858239262077463971772731969683717997442610073384075372835501117869405965547348223340653343379376596383488982428464979634942079806511790707879994924028288336105245426537865695898291484832393531011597941294150266697312653678062816107931581503063589534556612151480268633152153973698334500395807448648050110916944379049232958066773751133336950023726399097905648437242571620850974816839429629456565879095755066081806064423435795636102351754515899325286363050146436813171456247672997095480084106196618680008932037016573199642308398352898960810516398880913945565560439570589601106984182644305965216461227183912604854750646654304758435502011188134406640131386427375795554920571784336348983117409858052001783098455212918245778290792396478293530088202972295006938350331894107721062661787787917112469333156486321050853283873300431743219524919304121005681838052135375798389924365055824193600413994310541319137941177143330532727311354636677754336090860757081572747471525645588519351271440702219231348821233866734713246819252398837347784676730105527090010525180784197848278913592462780878774802699681738584102102158094625049125209974503707282402111717611449493949182491110326509256345176083821643941614401590836975144528568418639696870237540753012653240198897434894489985345716817524875449540205536993843143982788629910792484190897564673214089946485251260178961965333608784976254097300642256689111468268921800169782953805746222356964342255326034177159520973459622987965626604560531889754567509398229489597659041280168450423811821637131557429347409752632420892289010558797761440788762169459339673251490612574494218888491065358322422915087122102504596470535719080264893856362090755051259165509619415462144253319941538603387200377118365025058776960141789439613409316257282393759315718397260803908241489938803798914645263146676292954594811560185123499169182923078601196737828825434900018448837654086954838560939930538235641636100151140836636270282946794234272037370773442189603598039306193941524181991661774422726297154752199627605789103339325062245327785399409923702788172212751868264452834414338965016589088453902150713125722063986890334722719683225761774685164240539805410495078879943838146474552695479690859651547833929193473029573125749663296026550414913597647590696726812754430670063287617081507275337757917706276111958260450180620767825949696804505646623278705150215062297146962706353924184553452682711141204374933837752844579746495251320377127849377713638598927678401370376290498356912518386619184023651707576567284718198214477439783766415788164454711070940254905017582391353893702128774621453896836990241717100810464190476170236526461301238538543419393997004909197344728714295548132738209198383576877384677922489518834956247699881198424021388219348575808904853973762495722329210267822826945079255805485509527683755295533518008524608015468085826244312941123018366277217513693000390434216426877611722251321205699077238424290825165404385913409576273815729307114760939333208576357501641855305075756930449935318693780273991555329851369425363922428489528756323420100199981708079443719162791962131710482312177363016714442691822141228453726015636882310095931388850142184550548264869817984513507346341454839120645743305983875854826283110950170165096977762159054080356534384162674172365216597918639331091746049916105333591538331802167495556593061045282283096560577165077045820974149799150718410013712746578094663633329727670476084842498303336503676739288185107614410344755381174483687946530304693005226490556999819324956706880805690889507067861676645435758852018438929203972446017098183368234776938381320883573453129898523959965985071454972347700403128270346611219776363699837927555059979739375384715778261769948536111207326297401997820535141093014488673876115924505252426287404274041318089470570232763741089382539605141813746731546107854965682034941395752775587913448872046870842093983806692473780140435813606701586735427115790621075977111566266463940053491942668355068640420922442367922785249740493855152649707245667043885818271578287407350097134810280652148925315532731838525662694533903740373043187174873621441177560204226358575967212840002084924174169253509247381987116009677840099905003711265135408885656557604742509418399819977488120444259032491186028795791576372458224632016562028029806655731894555993953760956530148105865245928399037623037706882625325981605326300064536742629898642609762116068593386099136995232313536507019356260153296068076221837908985445461274175441589067065135907118437020544643864951585182135011183458544046841125634780094795862687557947477451489888971773699861365047053318131738344010940528601026175215465095813893523166368451565057420599132426761066474489126307946416796036084705274808485813090022281415834541706578757745899333474412718679834931666195135091411068624074599584960426497992832313205120127926244234279355769687964819446509424031742346774274215729919549774958287506553362617069197841297767385451059630809719719623485397339720621510584965184803569508264706477955885927689099830434255988293261853264498470893920493760345124264951231949022692187795476240232525203494516227306540373947666614734617884067818942735818936972476581822804459280511904386633139890786295048714309130083030812179683917592841086088005706063540094061009685195595277697290282237858924232710831797538595643676557877399007001311005749591438752451962959963229056369338992573153015498334636603159601452252400000948156055382673735429473649502584941661353967825320685029577643178887172378697284215009907717473551603012979784126535074441505533915284005138618398980404036955052277862875540277533638114179183423141149808723294247165568836207153742309541109029467026231006127555489872277646415982332416119054189351913494298471026616966723011889455738182554013602928048531627777973117947964835874769946365568767734830464475967887008421442494729268760760965762851456158060718415978049907349152407867592574741795398672640629517356165263378332070888649790119140470957344600273182049003629652959484656061794135783054696678445126536366111000709400790509252520944831233735979160985886432595043131409507984657420851525090830981765374055908504024087069122478794517249820587449289240945052855762055050213637416451852621801624756583832898408013000789072464460833120747734273820423668343095411683584594047788151058210988703407100563454056068773187684763909089194128679127916195034624776171129986845050811052102285088769577288978455303491544660720661771092845093298455373965043061808029570892361803741732684262124639601472077932231254622427818686183325210715304472068672695758182860863525645665531605171110717903836715360921485301867988771739682068666074643011232204892914860605171305217177778845736858223443007798941839182729774331332253384230803269832225522330407827478545620069984092889257289989471023572572553501486453794948853918656971817921872699051087567129830758903993828278333355405608923938576066296065956945421828741411566536461585980142808377506336867183028719308943791008097834546301337282566198765092404217246320470639460376562207621981896189327973902781203691813587690358399290219780643449457362846077592443989700763451612809620220486669191775402763910146774557859462077781353719133165495009673042057666304142496919420991871896943988904741993052883539156040996282598948581911642707321486566822039721707866702249144734898310784457528063316494066214408222736317097076655341896109946895134842776303500093470667273021420826609598285883730296226622317338253339833617089108141852868273675800929783587336402612871728352825992544537838790450670021718037452850758682801434396636566725947252088032519390786245811928560174908511987128682828062410747926598502021589270207783552606686356764365037433712113611886855535864732277828767168437404011372388336626346546455939674659510145032749898036605902308167378698345570334908044295979812436462714932301824690951121660267349815591867914161582849201315448771898176201146578992075880034478319743249347229859438438774967993725250448925810754534882506811622768017737768268639180764064080801218821210882016007673261659643581958271126117338809396542404844887042498083246908250424741440354107601914141989674397772194479299366859417453052246695307958997407348646209729575824653221464900949195216956564966235119549784829893130191338769080677794939893968605965228808703973787808675823002868951867652087135658570654949806235716985799739304842051934253323578437960072046501138596008525182736349629265748198297474633331518747719856023177824890585484966184376877681350540070641068000739404839772809851409796741354870263222333642852493379675880882167738323755727036874022930812083594051089034682794497168218521006207225399321864429390517058792437097157891356038181121648026785305948741901810125070319559903844062515372233648934867564184384629566377851282580045243483404494376337991009322013301466757536768863768749418838540352685279642093337175627961488476686356887170837747870347172686733156418433942790179767070809806831699780372876011762152115708070388933039913481755413855230328347222535774435215430058262594219806232740350282449819557984813518581633812796718301558197146084420002022706832381999402259590786610792910368296569209486788265912857074085543490068952821187736254202355462070756814141414774936564765654712031628040993259449845149931420760071807470467146685977317760598903950542366511437116829298307379877727752488281580225584405809028477450594573861780407871544255318746052064672518746580819911487589205176329986750981136172504204084997132366990119651462813447266878356163192441727879478857979073524468048140271787459790051933593118703615975301997953183034392308654267918218256403438695718951438969841940819531598821921551655767555218242056677089576474766222457793956808156628278626187660659307631354256043915837687069783936635860472485993888612490856833357058732260807709024872846891046062135773153809043848960691479299346039858930915970363409882563944438298128616219202109862411099759766415868106741002766676184228635611982558592768338389799837759497324648216266848407387485959624408351988680944777768315257979427089632894100193756242058175773575344917349078887380119988547469549719750334783443579299773728418474851133283587355932900044148245881275246296016525775228770174058420233556485638280200454892126786692234203370307188571720262237160715840622050262761292488807899964183265985101239848077629168807477843496914337770432564229383017249258076257336334954813365462742391724809940872264176544913536701621859704470968678203400708158082645860775088430447880558603945962621662810532007170154668512931643948941808066397977245112515703288923490390726319476512063922710573345171544817381631300669452359764846983335988457354558839161845664944961535060436210215360461068254024140500792971535195392514252684504577598152100661457117434956652363901585476623729068851575170340356380491225066126632008285846465245032738933828510175302078342116504386139324162818268227623371087914910530408218835251746845670242428460948595767271951527149696293263593808362599102092842192993028602755764673733457402997045890750340930909109260648957608239720207549052435248666879039834157348261061229803407906642786001988782567959142913017445875962833684257494502156215966731888794960596403471419537035391643030896084458028434512921395645605168994193839854211896467950683575315724884516638416785865191777105259880944587502396005618302243573529243657291847461935058529637029815602466933712399241934731899791443297046936433607965810500665601104886008739581736967882479304413727111820849546250614428084855642486028795701545680959450110935998459323823410032650884706880083045002973305534893842186559129300900817968116244993258607442123141654614073803982227204937263070764976929248241983395739551211461911178448620356807770633116227757048934775463490395447858157970318811193537387202822157179817877895509456179930770533795161437598153853856563219308161109364638446195588013194017280652974578346206929875212255895466471853074069371063952191942084645253850083478382511114924697841995268419554812683875765711304984657152493920708410844198040662187616422893575664936626382794685569716358836890773656581577394214445785730586328845318320945709150547729702508039422482122121439148567955263006163990645075489335125497405485468976329205705732752357447441772408190012080956366294303347190132182949129984461642011800936867365377802664744508009074172512019025713684446928155462260191559499767579274046406242600697005997618683803618255429459359997730678826816770547481142941471145622150342373603446090410304757904876366213740378134152838521426736121863817813498429933322610612789099062224755716750142719341516231998769093196603749304746511681362028296272661121480918105276934299616846409724855330504969184312429407378666682240834549413848143975685760974816428571760671055239345406260359009860678720340860607681295262482026975619288507331199176051604167870701746748895150489198086854069897892487136414389154888767474147441127303926737759141234322353950386017499742228173568261410923181255193888881034831882377735378642879336553223686684578368928160399536158827508353939557633427394653420738483489314388790477024510084819223744206191701538051208482284473047494458521862532112435102502422931125557038637283977997374363194570409195661067763291611345762075089762961375080672293000022758177073953305287442497451410206528536302332332784721657273385319156044069356363613227257302436339379319139111011509427067804125016044597203830370324608005369477393105934819535157826132138598710865935338637411156783872366584598119904376130297197757576925295627159350386563866585751084075798422011954729326211750207377613371189927031669005774361810655485851663536433023916763691806355831876592174419001734047149095899924855295865225046412080787133421334716917275850398039308628446703676417642711692740841084936666935211336544939355630585898180634536085546502304936175767635593556549838434397021404458242677820428106711345724693925454943514296539220863544006901153148016843503684671842435964664634358506200234214496083956462404894912869643988235731660909089849551501682680439648935785495551819628066792165587604925562286842465074216022193083721961386585644637033539504006172302595836219117629543879018434158295119718901681485062690050283020189302931234916126861409197116240790397603383075353860884867302474018909815100755168775507568414505141944794350726482586274821829867916043809234483714166039501086300197959310328229476921287487372119330200113269767947424035246085744305923338160116386170333389359050610211209444808829282882251564291901526658039289332930823994445582831737976860244260376325446604988780146603809552426180497545762221402819164197888917685939602568168405621632814231708328101954604841442140542033658430453209299639659284295970479884226122316964739634839637504247724828078152355299659951072709479625766327031341810689776447370653297485025482259069945136890533558795826719468707076712957974034101909160850763424481584656078869263532072480529203415509125431671887715302129522024091408387935709031683165780212118501978180496214766083941910794461584473535554626886358037218220290615260719409097732350253396808206683632677836881676456462421100339664165634681011417177139874314429327243542473569385845129672336086223972315172027453885674525878095112109429547034757666860810633690181287506706874592744795767495115191377519993280755090024740504497095190150146195027600294146750639334680900677059659955818101286107252597635712700692893724557610124314746408691145323677219451930105938130157943890404066911141735259715266749949668660950074098890223069785112837809969139772219098088674950116015307774709184119256427290552307561744284705871616071320813582563912742532110116155655884103241657774991949600131672254845290962223896080092384377340064807863371162091527506061553143894200729454707077739138194114532574797032941554028845316100071438326832704284499040784110163933006816266988770139401324555003209460571844324516826429095497569753396472044579791974739861956747010827117805362243749078679101564539838525096670532890624102578823840173954179882606788628873236676173415876284118985962905310016474442114205804351253410040451002031908114829654346780621841971711473241902487742134532501062739856811373971354380397056983891254952249851029767936108551544698798000127172597722389731661329244051557955967280987614363513899728304370479562379694584944079121732110189461635144151425727456675428657949739352662706880147638650299688610148129420014773593769647331562681998423483396540160740374308129927317894841777314841719523569053845431369750822582651249367559497222350336915223182568689632449354407745263363656294250072056627384347404245783674742019109635007156123567711960768370607982977377132618097554242098269045869496634343053441813820817589056188257803390751524766616474183171698802873937749656781551520549743663071222072510065140233397645340712891987316766080913089501298361021914136065726815546770779922141280022889757602865221971979350732758503040247466112139719387540489583143382312781202337078225020982744536912718307690637139345188335419973095569153762085627283863326677186177402860580520139217493410972133617446689180178992528149677095510171038390119023011049140641158997873035935684903152591443812788383932962774602384271694320011508405762336125501866786346635216356007935763355331713071179504682226313622453307520787886408521719769350823723619165379498362018734373054542200991066265999345327404956467145555444280089464663338158060868412319661858231268991873840079464685219342147846071492469595716515864633407344291395114461917160612617868749955096478518851005385335876089355713129046963574663916368249037386300268253565133800237621561026924732879348378469887490946192235600220136332122858455775046619251773900283127404550447245215967699333390597153729244351418279735274828820246316292592120640138475308823849960160723342517720252669745609469334582162943651198605891615760813589322942750581017691245833980857452751271467772061168974460931722263052071908864321738825613973724060937964641010797679913198691545614342627726832039507184442068347149102665335696863288513467615581212697735711874037418903999155183896400550734683417654110066157513082175271302107894176894937115498746914969291079068373846983140628740706626879400631316694866069463883627050368479790688672330150303696272716314096634746953835767924687686635160057216652009494667976378333653047711653404756165054838306879838334150846126948541943648227027720099645927062619217538416506800398412485525349532600232175892258414170265529970853429737406926248604024208854590387363767545823749451088873066437627100337070849162139100499244748960915428111339779592701014013952236210830883739147756860429567021106669291822910773109748573581283266723222517680654696295328257012613296932378745240689421507390273789472606986150342643546658003199769968638799112803819344231919539798138536398603161799343763985686464909278391951765303105606407639234726155060001637853829759263334800822139061963971030048410220806780798869577239473876964563894640565258770797362461401208021369459623917011472819030626503682052389511838417056948465726545909239567501640074708248935343742672705064177472943325538415930225363330984355763691946967109494654602511744533874792117651501368468493537994238025872350386326250710154518482335690268565028732278057654814375592185014149724164295932465996210323058725150100016753161510274557248198233766511855142053068205931017285207065059109161472586035126089272225464339408164762864469535858940967488823218281460634039790129200167215768332575437237362536282760594702275145740157902263404405618913773274714350118825974635305076200154698615983834621397942200381430595777249068876929472449726663468636448496204693285737986780995401152996049320290921794391081947028721123355080219113407530529094932631389894352348058488038028631148879682530226654681855862476539091231878014995751232049341419225894477658212387610794326183853544021347807280969580445779143134904835870332212671863187660311710424186025076674249225837270637941011150046850988357909964691884775142720462017699245389241904791392696225018436027563543456694225847204080011560782324619222932309064878975540992566397098082949939914398136275972981364167219018875219233721030913553691250779230967931796520372927819228737574804730492294751407296883540060741074011163388431275981172093642279423701597807416665168635019148531269990273158960091146923953044066366929625732841032866383448727638542465202546847981640252149971324408903587805688393373336430261095487802845074626088825115668672831684167100048500151112901242340670018413912575839534742413480374467772800695914459028021416491708379874444937589541733065482593142245564234239559976000079716754860872385786715153443154234306184025657141155534765494987539812142715713109921795684490433976827184167379171955012352020482796185807452736667566892548413745906828247831723746811645004824387678050952014933684360958786391238719870534691015455343044475357091262891151945120214907176223776350875594032944375937344994524819131035112860643281775948541681715166479549769625952314750044761750158689213995034690556161886813907674572427961200082819348126720721609104643929128119127659581551871387758288493693390434405015125929742289545387660124539156858206785687821759227694295210407114646823908226118460327510468761443228324803896846534003939825346095784218095227171963359170619603420625000563806787640518338907962060022540920813460350527068234418930904416865714794481473452157893786219877405399836269816152882302759410789578154251429593744121358706609904136223163656010504964044256922599691102600591385134786515185461484308509570236962720575648998220648500448443241781074473665295893442050737272929423623553838714125441998081995504405187195108232645020551800157820148253135741881207247113728545655591285004105051057255431467627319531095352784761782610948172313932041221326446819332529867402194124335217995615212608191532494910659090214633245004716802905521551428528444104923718053519347802075244969856401684022807886112195185299156289099049815402755241031592196287158246182701519309449757187839480265132969732563361503742338654185612511645627716678421099348407858124946455146795423777805022160174690962382221681048766833490107781212641547376744297950739968571060616391036084726191339524683423113932864401919120181145570220725023922813457711489061973165023374476692036576033105392800036871753719187857992000111061124600745462879146338533084218931821795879706369397796652842195202585056712482684846636172690511257446915817752231923189514333872927649891421698850416659256115213523906762663494136084594000425665406365841150678182639432763321146010006479630186193018595491925484038276169268636385481047220839514999034786894257050643736559917661888208320381141158632749987352848493983177691376375565347193918049878440458817140856282335684012063221038080420918408924376372268381498674552586539728301401280137914863941926892943978852362572656121971970725289927318611639660289555287362240552059220260549224459961153792566414997728819715556946126030002121309355047296386992387127718098703518930281940734038782367531308285870904757684528371921976584867339143154257453105235501862955348923406196415622370104187699897512100886764485869286426888192179489833213668804240660900132876196003580960354643659687434637536876530778022413245313717255127899281263342903218197157781035538575917489485006458023049813135695213683360367917631174513765034584402625503240399190886379829593822344902190566615074749160082698314338590960636626823010499754581956707326606857278403584432444127451024587165796277014841205260111088473199418984921432839249184750291062678892217760983482342358431331753156300122885096387183407047837407067489978759300793481389340909014212666545026553202447691340799868158570924113916822991968646753930364609713110356551974798247164691862023693038129463498029335240458314197254466447853514068764735413301602958891269088999261362508090286001078196551446492446380535991017687340050190090235472666711649706051383227514245743626460816663970128525930656476559396172072927921082447203862658531101929412681886408106026775696911024967842574958941258213915348709323635578620746122958347399557068604266577521965926212060852901326010707659005319148941326148083895709282566737117324185163012930057820623188245850712913591849999936507651053486504753839647226326433404164948367577524144782924961163413903915075166996443883020472357613101722246036472122618456216527690772983955467181481601100349069869061871509064478197909445132347758075560352033084510985977302602464517983171866473338237960120948787847045610395928288208088498241285526018972237275238978117225399297699779794972964455580613987769601575490287765298518945129394719831066201363291534134663841997789342480092292236547952397784435149172741670309953871857881352463508057311447375927001177495560509783092610783114731388063759630749669551582137522767515939000063313736979636695750411264575752534363141863135498561274383354602409503844938489419585706111396948510124633357748969200302525572556821775953223904284402574401617191381858105105991376911755901732713572771914063656596204557366379787000138272644412326431944463632864620529625947301890967245830897583271274544908990947607801652486107515526666255054155698269352184136836026839972976222024700974547894886868552584691722127973837607326263405487080776673673902918208475833975545394602526704489156658201062562310727853739598999447543546823136765038600169904350474140088649091653901738208474889987705499714981485352500114402916414802345877163432800075078110420310755350300614850524107908759106771158747933984586167770292655177200735183550434585177784422879078445369733995146368829537698223847807933437536144434407853671914029989772795670338233664587701457917868901808528777074641327111368624165783218911906044437534110285412262808605736223008342064308718146384922912070645844137936810665154539741374999525669363986227195590569975424776227509998736156255093770998419070441495518654169705395396773677980748305803185313214616322024332365363794660954854756239031060290151584862931657445666394662892660860798987712749828325461412233232647486447205597129174439815549735349971070258243309460777841589086674966907044821955372418778095046204700730658456228239518416910838601618310644828509521688755577148065203855561009697294108413005673263739675894051945148390696047158486912548035120806963913157429976160044410989057082945308556836123251292654208718842843909070338505227203841872289738029984686652675863834404593545302511596700090940403936786643836344075298623171037587283466863639534494959386571290813068436302862183830024099901130425682309774077561877586717679709190737891596864179985792748983658598239208729076453166073187832713393644356885679954881088334315828812538323537848567871503767627658064278889876506851992921873487757490151301369852032924263615650387026599069728119220569465189481023534418778826130989754055535121209037924738529831704717315452437678929209534252274711579497934780574017983777265735479903613734350765897742925091730478550878481417447418996011968829156953502439589747362943692298671041108291025895007082786108724247586471910975472811374635685573777687586544315283245535499630563908755768794581022723149801376181588787963671835920123128393488497199135202483536905699706305718804270067618843564586148798232732380409541765705167466940314275383622031428945789633803076614301541134813354019907340702754737196197509212298219263770698919830708323348625727988418992276521197617405670731646580494715874430185749375175839634101031355585152308964934621448546388988369984461865305116961789721571598676033737759786190114159998501465017644048868548303081630168545552739355000570675983549537908760116639948914348991123825595950684024045113604152449078073751743180622217497579595150587141594230458400999199842416205301487705403300285227674342411685866104207601561659477593639184489487728883488947876794277466845992356061850991622168614346741511275124229790358385473177213771012448632603110129539738931725039223242679129530028204593450449111738799760294563982158162759047090535349489538558794585230092742318577112674833899723098289338564558735161090343120487302330150254121307343683467274010790412620155327155740469968837642131560259637870633181334829821604086977692191728038705782701865145531127275733872775304067766227826884165832636914644327753336432070162598379701288830188452980035474360280545648794557611373881522807117947338450202394652533120485149088352015968226448983198788252417091125808373643163130454534335089909670051127659242104529758143960155691143516631813444366246483439252832305366746473319280950054791094151707712392793318591960673711077477581962896926043070714566568746689936813414632934539697660557268826951930571692924757699409537056985835282633371597204520464938466737127949205498975538662291289236551337791040994731829045369806687084780612096056036699230700318471081360960967228141135476323384495540686923617497333027880783255074194949034135289965943155853558942235190588238236726768472911420741815214099506198723694435552135603791543267961252951437969869175840871154095804461140160532052041312509201376939707778915958008678728047317045174875438938233774427387856899565099658415301889660469249795771173915086286539914113592520257654592404546741888264572738721465013101274910608135396559290508389147574959949664051710724517691004999863496689812878109287976465942743718277100996812582964828643219488053624898395436274001609435920389365034877221427938958796337310635261604554706425910859840985821512972402411681658587332344921521999907641804447237267295627990926390448276912148803262464775488917103783357679441494720497782301434685348690428082122780474947559827026270273830200125164068034145809013143154549374613090084709275013132001075996963485970177080309510394850084581186412175676178675646701503209801141698333613617456020386487465991413330342732358015865219599403519008411580496473651424467082987715821881128000887068762714668982600433130293857993387763572384667279784495082408453496911531599858575688895575279738846115502349437924095322880410493807725127103657888864078418761651009281263719218838498793420486771961512341830201793939060586064883155653663921823900490500764662236340760594764950682536055418985393982028256460644980566930353278135391105439593231811615501124547327414438148761935362025216747931454591635299094852164423600825072093078243909928105964225373143960121354119282564441471574487999643465661358824740088949470688106041798894137379892929101665952094663822030106881978650523511955350557607871551920365345480626600476094585738351853590692348776300084341060235580422228367683412433050412038230352703580374098581996698978068179258984626287423093424488350033168668421205371127435123406757687745796644120296410486787075888652591190387405638958726329416401296368493285629905607768801340415002639976400665846623223460936638465776139279022627210924827451620354786710373682184205465230353142393056080407075572033511067952398891186326641554992544391117739958213184639826197161774235265109063518638694941017309334294969400855791633256713816069836868262342779199743784560282611546611708821630868306467080659827501532789654977551015673775594818576030277330883927244516662152468193969725888173907850347368201793480244704129364019839835048590850629570410656636946506692886534578886944211985151298109026448383213814592935651716109341234086162125570359604029713543309095682300247239472072678036592425489874977653970785610843762854263378879739080850205107935526550139866877634823540772242666680570535775989789342160043163438974062971439604539718714539121979736831900463365437695399088145314103779653963909891171592411589893991978977097243751486162922669350771185107760990631276737296615853718183748228750826260810077518066008127996755367007771561576819793395229403181375639609774646446892101279166224750690191955647631928679780341082377833261098775609852717790383539357446164766100596361905854685034451770416139847023704891282580266169573422905278870135207535293646612644274992658782461601953145713418358563527901323657878146208860329252731392681994515524438328536261129891394020549292934764543192793890119933452304493400818145742903667115491054243466270658632335416228395782004630926807543153618279395496810095493360466229395169707886121375140807775883562742403300295617935379571154064189514069024000482224937293310373912462305684889305295680802064027143226916728330045073029176677306194087687575708146121905451040541252841375494482067970795143979549417692568595494351884725964394257111616459307650565920564561049785465868724724192267332175977093949368700208575398135899075233799824761488239546014261630774011913358354717319083297122264331628754208517037833788345830688743524691572698735457696087333883633885957930868199653273990822675850802739709593713729179512143766236247244183901288876752184873027163752303652539112055994242664492350279736582470837040256944526583166644272240999852731306672206697088069181797960804135878122964715562757343957989515846596829218321270345484440197519503154467398981937442105857154512980198424419260342997993113709832557911033597698638261015641235585540330870759419635427393249307362912346983584982764805908002054890911117384057746545838920237851634468426828011509631686697464209077238842753693396643656507303823364904590256400419385652479974382526214180820701449282315634663958344008846104028774510043700707098257234692786002961031981154644840363821209645336845258800457020127280934651155447999305017457871522861650017640335721917473351855367899765506178647859303446427109552169349675594497626285745310113339428118002668190252465911515818014363701848595466562258825451030032694029599116748166435075128722690516053878968265912359129941342828417624474593557434467000289818754205603980371101796079510441711166049666295516042856243274029677637988640189625791071451952272076087304277583003175961628116815965578661309755699422009179879304639308721181442900504218354053086344641592387375076257737377609035502608045661177812283567509471529626596909647808689471880864144346197062378383502027663346917816723515611501070803251688315461708389499089056239290613426394906867755895230638756403839181297057780042911802361909989837990918378820475097327090910974903407407552239523250040698497282641296112083682677533242817890438195231730251394046635160929183638982890840318613009815147613940968098789952244180179411202649296336124625660398195225918948390085170863128072657059694442309063637510563417759842830877968432730016115429113249696310500770103227093388750853929894149391166840697792176029910038502689225724428867061229503053352946585141022669160005314586507550717223886778930933171873142788422181825683499610702148649107925555908947576422699005114455917675949372433804980486189127813547047170428037822797527683639154772102782173624884314788093266057293767763374763559829725036432983579617253976039484924447693530123511380815411197551620623951552752948252361913184589269082646863969105099639584623985011180748344579096927108826127750933684537796163048745560399040460227999606762428620972899763276597366959314008273681826495909158639546033226211426806856988881233909024459644119942201641442846523996886870613824579796105614876569881990877110001417085287469923413624828560966766912897769079479565763515049877703088618167714629630630308530420051059619110511440687512271321056094127172407242347981411776131786234130328788478343961121414059113816261195740528967078346992864431327749568376789919629368968311976861985177037568472793266003443566974291751003761302344210132042227198975136469911012966973522964919729776381020820077781978020924128941430312057092484618290320157837737735077331204646484382848567432609535098857406865975956278465327274250408935283502757832607473620210760385999158398606340602482131910117046399082534520216447288038294011716158981917950637176303109007481504959172596339404838992603858419063494834778746608816464005527617630892154178584868019651795217048931499823936560096034967629759554136774793974889644627165177684358562493151116387016900901341979307607064252407818530889154314332970269047884278407358971153720688030242698719559879519039537966798817694023721023251100789557823665948966698536572730543526299445786237772364013390242390431068106824935926102815846960671021035464572068203039018718083094882067817178735049648264064747281435668242644882411049610965030109649661236297892353299669929532941129430592068300615596087773347008173370429576270256973845289247834348516104273085899975638829819532840817691676945139019212946515509733550696305455712419325877118813719685330811703016163853656675423519911064443126718572959814286163964552712340122383121171680627702119866861443158739627580805541817156956802164664190388466795881959873575254812771689309463358631284287263818565508728049992793686413268464786839657699862216411950747070777014712344576312383556154674490796288859540218196146552642715443104040816942732294494520273091372803057232282516303384248263606701362795430770845560863871955520750639435199183368246778587462881850209581992734096892838358387878495916745977699148506886582446696836430142230954100707595093348285812686765733307094560336345250183326515646143851967910290859858114110764261724247125964333767775419219228687074124456445502470113958550347851414363051225006473022543769326601398552487595917657101578699396115143624809618100765732734398194846992583871823423682570250661688251657510064830630740318544802200170442362290076356241484004047844774833138889843387000868061524363831961017675385704872695762985049289314447307189332318603466646112621042815588519807617911576537049666557868876705013189479917274607693189256118814195819151908593171710803309579603518836319247524990571992050616790599279604171892150308117630354055536446412483733684057764472070307737964678099874312505095357129702950012470692036628358574711613811624460871949499984427031085276726428926555618181621498818369848243250721800159220702582805919241766658473064517189089965030551334418628610430611381546759851511843421321441949187472486692677875511841904122265596927333189874274195898513100754850258339412551658014914586799212063270805999247838849805396223838006310772602039651628381401775277279087096521983675531407965132602155156608158140088523483280365802880190190380374264886411221954435531386263979688702371742253121551552743859312914977638395970403140529698213705719945582579701498628136474362454315291504787994169049913821172588656898713421137222742926670958784746149316268589161380511631528471913455074472405827527462494947527548890165974294633993273371052719922631529558892232693239303432258229936864111954973033968422787808142226253997785544129582627312306638353817719993438898454346452987436512881869812350836120938177091109955623023094500531056669578153115398819991301688513837771732770120092569557928220200370333737543955306785331202910580331479454142958501276858603902302371036025588156447738158615861997090196476857023785799686329063468709578641432403512703640133681685448606456292852414480817908077439285219353655862462821223395703049461413898793126284848915357551521032136371855695485151868665609782100057491421564591499190421820574630162943324434743755810664884965575419898311903725459150719136174713235484998261080175665549415533878909089310441148312105124311405797265851022951864166527268403040167344102142882498639886013799216672159418783308180103163793168441090681399074386146805892601782931423172331845232302042759080245579653629409136894083009019953146317038117682632281432731638428209802015341802056366150448414076575471266484297533028639964128320123098632803993647655274604607235971275629058896382674620975227722672970202273127143340693535163871085588072618573164468260757914391147150779740056026375071829210063533546880810723069056513111337174575282865301140907107682504575077880080411473843056787800639517342985339251906637325453381028487098283910487763502439598357089487204271926057746144970318105738513439869871079534191922235082970159180432794291547736711381286829424363588593460292484985505077970791574900770986866215333807250979380656356586802509392477382941994149062349836358706542282726536747880164874580158304046956106712954349585220834373209958253606372049258775565983045756610206912770783113563060167339360520962177469962929636585216628233140342403598799292899446786713259165147749612577982662626609022852138216516396766753843290434385265685018806471153112869253883918052458068705079088353086498042121889279734261274367320891790471326821955971836505111950249552390847239966503733667592130235577570369356555846787134963217762574446359372977384968985090409233494772638263461307062326090280888585187342308820003801778606111645145582412469008660176092755071352495030444428423968058047380919406036293435159551493728153615931166842246457114957475204253389645551031777399634782484385553107312816757339430599729120300116653819702886146365876770509680828017430485941780477404089745349885488254490261987772142152087472025998804310562334462654633531342751471631551837093701664678372127171525096200725558863503254367224441281590597740726722060391495770961748962002611649084183888835027167020185855361784147697273192023195286825014646784029054087825607415686240646589327083770408047683513694064946384384829020337845644870643992742661120250740463320133150996377479179179570294788871412824964085131193165766574681069276722840277827839572134281478535921043054378308444158115572155011502916843981056102783817475671880176315145549784213860806390804949996919905967565682458422209982512870323255828828221171416760160056714453805606970513794727269362027710337784914651838313312035422209374070959208198718126661013583470724969815800171217407402313198613840951136792869474257139716701686563815065708269591406064585681739294147133847035667950842872411829081137088370227295329827799611593281529994336451139534045792833552389375551116039162441590720829257667413717722076438969423158200804319731901583209202905071233887588052820806865944043536260682196064257102451605166448117810201811937006188233019392955277251342365839388419871575991363853550639778507539372465570556291645366397413999164061605270962874220210836078862412664329754706986703879707172821427798162179525462065037640850617756193839215027080512666363050367404975898113296440008897062159259748112447663000631775246480404745562281774833707512045438416543212735187655196505522965050603936611754721838625112330633494749841115525212153971675473308292636971927600448460031234847890227403324208030602923958668026182137010062586658828945940170494388098265142690640565664943592680523953508522949248257421366966726307267718171284118442062374226049791156739510233393719027755387368345665039464027022354366600193953785669494563076659200524319895493159984686315522582576244000857259488206905631526493125418051644693367273293784342175039005788800429466080250508191845935166336062046933687784873150233361122596924569575251593276881377419428819035991934634734905664344483184475746884042231678217124737937827205919460925883757037708477696901023312010147134663580589196172824329496666127118141125433425252439754336547293559784950797120416277065773776448778022815165326083122277806199363383269500922570247714752241266847584596432016083716429441557700651739977316592925065930102181735826133810820217515196444615167902211404151837440163911921344889371272927766692215199154283098766357545207487625151310507561396159060091488116374283605022254667038128325057168251786192153993289188732043928281488151330655316279533030373431337864041400895062059010403426541014415402693377297464687910522958819230884019693833472110105232937988470435710588340855393685835908714087218042140177995423613503193124914702752729237266118542374903778498693069385958424896380432670460535915501096610050026933096264866591780928813535723343458450187971015789246123374496143802431301941113887361497237541334547765517039611714588298478015598596618456535027322497720263504663521919536733254911655317238605163615493879585405145515128294260179529851560508114867839227260670098239179647861362971929296181953224748817520167900884194999333445899474135911828610776310803491944158943301653389342139504271600411743334509964833144874108298010103174971936010909492681206634139902841272237186053111661076104710482491196840996620166029291576008958307803836171985249751722720021075371740831954897866182495036198561415654287490725097951962987016931995817535560143778630672736893046071306596065876208991989458835685273909409939028007508274733112975336377724746464538795749639738070262918944170356597836790236638068454695928050132547663794991832644256251759060645570942390943211916436068480446384096351881222304490641060246498314353824242901556528472062595288578348462003181387078672990020501951777569731133571530458506913362549434052653922184438265124424994511713600720249397932873903126432407095616081014525266889115435317511234436797336552238088977455570405097134663777534066995223125909927488478043976373858341799260945221951020084087455198851811027902492793640272762107555785834125507980909340361369711670875527281181938137318772007689775315323897839723171474036826561282220330957747672948793648057474105906809404700429069726561169756637961417404696248178181766729497941813416235176166480472747444733164158225205915458281499474650115976663302425051640052473142282357041712929647295758029172463696976564105398157602527249528473389383439538350089333893083975874602937668630884810091452345343487130049863775674148607051065486022034089071841551709203798760285525096811972392404290122993098681624664534206289981694749365310933501717248798091763415269326276403107034054592295004385261808966940582799380383813664541773621864359057326188259368733113630975980618075543296253179428224805607082014984275756568047235308751173900868197589839348672815028825935423701431562875629998403084222372649889710236951574028497273839127245675732686829897538780200727269509715311209043151022018722958306458755553574361933140843358879810086351760116536427446087019195309428170388164552166083529835195226004222698864250564315529390097812387992561484114311524202722866386714824625747521101443082567256910904217869010590504926767320174762166292801334287089680172676962871156921887860621394879155863916910932253820998987091980497346268263181750309743915879305943809482457806176135448941249098922317396967619235058868758114254740300851891577608060987679969330550906645943850061769053919079487785922330082607553059926868901512408187616109150909825531779861695243338328064205002894341194930270952483005929367174738776038428070223214203800587246621670330230057401981906743472957259928947342286118715784200715956973852860933180946720469809382558160026364315969759707282042151973447463756111058747465918819922424419565385026583280603601629988344604476734458366159899238754039920138333152885176212344626904797648836661139930442763716093242355448347248931025540874731827394024363389692725051809194380249995781440191846877162768679660498559160225399400239238234888407681444390677897459261801892926819518410517833574829333179567509939001333113321954494755528006269609936309549144415401988094809670456641446155484322854860090586365869673616477120458561548666291471574760847803047897309589204727525292008138833770788853644934966192986325513484697975851390922603444162189201789208993576137637754183524443229704405222766191156898215870450133599584373612029505114459353420872428607583017123794507777501052827042154531457218422227680552281391924044932574720353774074751965414159745360451417673255034789414576556527322686525563106550673414101368513935182372862701134130079669312163188974855955828773060842557310893333038469052175003593005973313147369372263359387802411310228234050837484661403676169570976277525821893094026317180860661262189558697608626049546665801065291882592412374562600523874368652422791435877725407313574331509483682983175513470852412375172114747499291880059974266989035912339666823544889463611444678583482560391751616572861415470815619630197696418049597831629479137304005103827806545903713439057337415164877961577909731516334040212654997379175102534866659839791605996930534967527160743220826119671591157063018907031769831829741221521148400062815392973031714398450597812836218270436042689305510700627584711506519243278526136377678351542174296003174836685751005981509831879643612579265864762637497465044260079177956358646356223699082945308016515720448534959726855138459698524828390755732904153466882504979256078294159431963914928987367297254771056404744682323936236113853247117828553042028637154536516684897813550479660655700643435525200465057092838386399692849042136542722646352391245779832526998501103110173143123357223122977740973730725823168766265293413256483916804656841273426270277130324074954281884266383408108323422496794321701856729509974340529881913273169770175119614902169793121632708450996817849130998675869503329338254290252927865264022771001505316978620213174298369880330102621555622688974233885753101636271626254025196946589909313458987387500145565750914345878870006155409861274215055607093805281954918487942805861131516051516607557166175958925789194211531040977999723352135620692935065059975134371373474554419716592439374362694035055494994335816959602112426346809822532772271407941569413040460439343835539760476796656676463694776133300501667740398895849519844759075488986078071682290088331389946361305608679536369480578107893747909837181877441981164585651411793897367019355832110009375738780531504848390770979358746180367964732061967389667232998954653535424093283612772837953344674543162085712398305668402273139080122910050528076732180508391404277793862770441371530370929729193417968175823883165413172497755357429170676052062128078860977602550027842944499466183292857247814683266183260130952478355266835835467291912475834442405493365268771221878911593991667428616160503930005939363617086267788450116972673009645778351025595948180253573240715547930036973047389706118983016457198484264179395497036710186416690250796972974077768229804884056475936893634678246955542070779992862011563477767248122304164288403155287852318808257855309890767774216144763464991613287661042523357373724410611059769636181584671508147521594857627514359161743119345546746073849117680834511699753604848811174533554761493436087033206389945539440190760107682513095065239555523312622132668658503696553209044135991550621063222445653955340311520200016206197948723482601281530450389870732783797020923958237803470236169686657937216316981022230979452849234042699610187394508071780499389099553607383841705411336545975754505817650454198198938640633928023552312317901031596601374501205690887473483633626354504364376450103752841639875674668365100201526625053037592288045678003595046111054671486643812911913715110804009489036235666838484917897477052496017985841389522627825693018432092079834532205764405869105974159978247195902610957890717466903170278608740870790360722305688779924568006437614835389807463038353027943200371885986594546425703279899072412228661621918416184049989798366969024598542497823105205745296402281246105138431533935718839979789228792145452892138177224499466300619530432028363609174672428000294433863804629224555568735748182069601360554345674667850062008248259640409835561894631753636195044584787970302880039759200588632409543033414769907708364962255888239601632700707799242610733128856400405179719615385942135439494960381784601467879405596406210201837108277827699343170928368826980760393929566223049653030475116918331391633057690926098892667792116887629241460931866303358895304870199290297808676523026176234558086361164030918639059985536869597481966769083721172517523058772620661397535016955192398367353778243973298765388410273701165320618752951523531078348095455075550308427462670935062535176033660986906890852438598444653815105127208155789506444171624926750972741566766343866004482544537150741429023837154806659641488976026117931720108450666902664431127256126607974991736505065421624905033384102993281146824963555374534975586015112551713000208154214349121438614202722494994118940392430144128778633234464035365822776729719890264079059893308574918639171227700028798095647995786620609124780956708030039168693798292665344075074111998158139029804464737648117940701817537179494657036051752109684762059462359202242209510914223287620419788866256314580125568377180252058938342349370878242114614427199331004240455720176216026376962428729084443095114727694861591912163391865838434093721095091021700604610485172916250646500061909261311473172395599315931839918098046847519309581197627203526576287591076775215241126547475638991308054223816798119983243156491465058412132436151789885221644193857030009053681851459531020694060555380977552701146806197303007589103903385656216719470283828150834063930278917943412545512234616330010499038512226276604170055440970712244626664271043199757005603963613718676815732345900247506857436439334091005201640728461483924316307738841117452095811416338862013471427823923562599111766619400112307145579071526068375734992913591009775240523433532107742521593942480718985529578445560996059439787662327956372330842144583993265002973972222809820789855710960387638778777312112006686040823873394339739288360775129053554309486306842149023933905464684833623568848006897409797260622371993163123513991629695933981381965989132037912740153053146842262500834847711109228563770039685817461032691474138230759015927782479367440975613818218874077189463107854624467031671778406360596921602069899956264658898159836034888572554934894237375966960198142223991787335108555417196735489740653679692457869349876955661069299761161617622032980329053096746821932663861950092542571464405570914530991969155918189354247354948520597701587286683811750324512863896942216206492122746335919319895799243964290041424081962092725080446041897682690503054615806156650700656329934525221252085978119961555738393258566996627173778821518077129191176773437732992752574943485979589901597034815357478555963738846021930820084031469135965875459638118521945393604786221985000870970277600675648320000535337508413893743701127681734205529998984698376746692769642639543442985241780060435650100608133829420569016882611145226261512113475628085663183225791447738414100233854282431532310419852960409830395915109218459217658380687224748931993956183907425884460763884542787162998413443737404415322578305249154894875402138303201384520760142227926683811244251131553671569435744961304190471377561815963455270139795223206266070165952647938952197213462274220121006616532547886459247704824462465188383373582088432989657704953618978728423210084989886976792825310455425705603694953873517907164904099565157138626027473648350859200661547456922458248324692623747273025018846706766610174188877048948484495998515876473645772506489352165408883763681535666846788060852544669182780171521166535036944661406073109487222003189138173347104868626088933695728245166616889245024182293025500332130750750289389380942049883456414646280716665558883035841622236279450727772257344483535469819699030063107370420107967489766170229881311305339250643235982856021759663600607309417955712058744036100350867984296690905194489468712757401147849441426257294187042937892424782165358401307463902775852078665129420000926592710591454383518182803034507977975538428155596257277999106065292485665651636379870054747365854909077168863106064359495778779956148405844647774701411915124711739044567621839617440127558745671296676129976525695656569199533442343863045185481076677395054124906965700621073936645248226780000958172175825081539409790229656947152669410464749337294112673843988941124733068868442312737678157854350544535438764255364565602341491621350829880659457934485239280633986741886306807878660339902720898628003987642163027299774649360858816838692779745652952638930740016977574963003757651093997147704466190989022023240266813059556646400880633914602783390170600501709431439519664952199930089282128413557698567533699940147968952480098000919226722499127543813080009608519718279548951536114460904861996009100570478409145785236131780945606658000167029782403099385380971925748211440413216782300387494178361155029456691697859829996043069338340651660079557494848121616767901696094066892532810961589774035399015378469216823172081191490983501509654871769567930217288602088955439535754277301591581741417922049086100343506893827910567651230843842972906562831358791197298857368690449700782958214903429024758320892537431164787019639846100365885939495681421060588109573845045729249508939428975722984050848005484839732912916058725522483587500143776649766830227520578247240306234075371025737388677676382844442115811657776923034777467441695076539450447665314847142841964954448572739144190333949625316392851822868337509701093577076334866913805662102359048864996033477215177509340267257586842828758086611817993408649690427041247049639636386197033415399092986951956607450172987087354431880928792304832049782294653382402908127739071427087701793043644221452194884054647052676126920713215696236113809513348681282879798286954017544951236644375325490150702622801799774642728105797556064359024343318692183902052097064007366884442720644156667256477723463538752452917183733693608343420618546553103385437427588797893172217409652703965774469666212753026348220442518201379142947732569060778897672243881458076352971669742276672307199334310771810247310505208142779389445790377423723605568258603503542462269666191994800058193478077946403720188733030926550574967755169904512815418513415954380622060614169623475210083675268514781588494793419282200535404642820212342502426256215071425710872695667727676654819641131057212776712611520548544185616432298055813193122064512874863348197109292612632692203546331899830923749685178199943850553180592134953415773532279437967028898475170030430930996826784237335755715708124435370823360567047703550909181211038952161164130054777243964715040991914683537804040128535435209611271623116842537139756847199942568801730636665743981531082228336927061482690400339397675673709920263048534584764740493871264454639917109568218851737590617740803425423263665581793438177639602596157652263505843509215999873154304436944274722379536288246045747900115401994274026623181470210944989804993068138707255901535779382758453121864325683051154263086746296792887729240143470552837827909263231189985224140137040147110825745825519951578836716116884342663189908104208361188595001039572316452131261970787728271311258197014687986399695408499530266417306545396965073393210249673242375290687174015175417810628510351217691828762339060560956609655720337718822573279122966870945695710973307726343733137579498173300650979880255485137895842077194350364992656708771799253966942120342770902697347504710876724970282575552275817029765048586919185431185292436499594230802760916224178824473085382723359366513145217802138716679789970354705359713679561377309544466004217576986205112870196719484559575891371162607199412759138996894111457772984378288090783342146060871415742732657555071108845108443259650914046234888865887473396511292290782871655676958300541355870618461076135480236544372581193130257333786430598488971846409928238959059936737247311182335462038534854686666344306026220578699498086357781090714294512235942008849239101105011578371362749248033263004298314250723077116915338505182195651054317896240541140832528001797487096541553319100172632648521789317328277235516503439566271165969953796793695109904503720854738355442810716329553222812292446428067089567375691618476832599014763596010609431578563881837879452234997739963414661759272183205351488778902884809111309818036387239719142939482945823884348898854113616044564113416419740525578720059868896496532554944376390845909388201929220536605044653316279475015312251616298731534164873237250197856500219417098709196538777733270630971840607861682592096748389180847186109781807186061208718537702303838241377911607531155327742682554707880587230405839876870606168697276008952422423675709189069560012599982657659639358070272164492720799636802976379005463335556210995680463856828967359708076012123626974123077424139511895711714313144288905743545108348076166780297035086275144598637770434197622321034334011512937357992345175958882012879232776652984294524385602344405112447565057821605296098380357749359078946561297322351972143153668941145309834215619138946096889578931971468436213647549887251354546804889826737792810626361113326929114386734883590181008621190760995776304356710351002119478877882123197829678574610060027033147132108849663786239965144136335615189140340092594037834209192655582438754017250201692398939986690794616126341647128632049410986199292970209844897083156835701907289366682666464116491323943057367886177311167751235871935374141058160119430290717858390947057174450211129192543703999112809468579538964652198517250721166121751594302806209786083517209125878845294020446652125004504378592009959905428361159645857640344466154296532806580318490355599698636849657883956259729581200295426239141371687738351519744271366389358995624705993269075719335286170907919758952316034243709626566108406621701969547349478787815695148891275891327262526420462188687025451315987158200974314978810245490450117474614610273430388668445430103411943950859820600773953583204101740838400378031818521477682393617945040433387402039385054083724742507215704779469119895637521015308542740277711922657105416619101952154462461134480449716498222648716859020644449920175095048421586180842365267202215245829300096564406813741498113948114151106176387048357611135405445755893118165607557037183346686048860165926269647404933269385939781844589415531711040362172217570283759947844256006950677772142354494253847603524820887813775578111506913607631508476849589139664637002894963016867753432960857100641484925686588884451365555379975643558060255514351964028387679776028240940670655369950811360760672795040686399645631081342157934200150889897214783605034277235708972235355006253298132809978283200184021783288316880413662309842679785470650471748252955614883860066564940443211145619140021926335920865033870467610267659614792654723052514740364733057870565975968053203019603829533631271976502760521416923866171038720221129246505338377464275118033882732938204051745961467165681268090000407603466714312774148154120262660330725214219582237387928027082632334723622556783628235768279863148168058142427247144490015193218700374897439588210585489802714701004479308786535713080497626135032904241055338845779980161124384774413148948941218126960706314587595755275216659319966697189882007406135422458480438380434893747339270227454783777583599020271150804775925203579627278205862831327136542192802757745991773663030373589189724199094076169337343480936002400120314840943823131650802574363709662613472429355196358653022365850738234427200044868189310742844125260308211209270454165868364530008144153811447392825422640714595727014481863124516501732966745640688416199996575698186300199333782065944877601116621361008253132741545152354117542718017540196262641457838987757652901914308280247180420342575964419445877931144206548052702073403353627254492710504628114959704503024991201394959294028751118104281339779658513962310443880682612248437259341347144325599572365202374937039324055525530314481957990231728373595488079580350198288057146363791625903056179276840283176781910891524520184835530467473127867236542535665221116612868211882600346375894775316115934410423840784322784332597061328740718826666490077893606232385549237158802071958417367842585616598166266381873684685283679744212314594144462881743023601252224795328795045255411301533639633481189040619250298064210606151279298123052926388658592815369277393256929193657230276165051146506578091727698036741025437926332184402724273637987465263371497514926256343912336703023293580256659608253133175568320002505877232014946969672601926348724803050493316516371411218918152825189866042286981869902140103867693963175661263880274842397254435902698791857871939245215710498292657597360094819421693787778924077500832471285160617412226603907652630371528062890856391229026303426029376083010844670026280637064064827414493965797526218400734484348845712952392268511500364452638781230068420007473394801586448231631794626827478792715823275325172687427749374543978872271179064218402932670058198175105261701320215086183076570993999220964871101174693376150826972564349243108956129118000723643424946183182410247458064786276447466535596855894391761862528869977529726946103530186136398893124676854748618690876814948178567274468310993053033763937437923206344098286711509302362317209331045044529768463368462556476860454095911867157201299637973829723938996638431777294378567997753857157122600988676121701956571383997761695326108086223987523827995374835038172631983355667690844792491502163841885705341863278681367262926963224001510858480795085594320311049334103490448377420742769972636130876315803727923819443469678115841691959516807306886269333755068697263219276334844308024178479047570498198045173118254196876719321579960392454021547170594881871913924726725641997672482507240580571318980919152499002946635131561871275349255814865024902976498611001202647589134872498959784391700083978531467180272095086226915648880588016835206821918034858046068561099680665468358087061354258191964976607935338796967542125931458052944445687927729998444517006451819578649664554571892454150424616098281465832470650225169980323511611709637286686358733483865707207494619742901950088916403355452480111246263352363726010818356819175752447464544884472459966727392559936106937117042184900057241442774081335573959706857379743851204437566000465453199719177280124277383395973814049587868473630854477829894565841833496221068424770912539292433942348555045883005263418407895881304155222532297053717535817746487632975430791004655624690806351436833154158889523404676555186080592780068517657791844532907973546971755335316889627773402103488298080498732644895374667834273518678424762013639488180562103910663610636951304090690268800427206080373305949086260731294726963277113591253750202233910846260441445628305282148715810538691436586921155605054426211399363945450752096424325251213578519777708091514762659972630270726438778569530653756385733869031022989200133061710386613476267551893015611845564465884819210790666713557077846715402605388169628467924497783260256239033382941939518037992978747451181945374603303622235931739595670994130209317272400123234272927257918118072957380377984313485969894668026424537446154062043827304109865218699664136459252271792142212565684743372683001019516728053909827430742713177796666954541655899832063951284258059280978822534579343453042145571623508083562474712748789355979790612595914908615761131272229922628108273844845355342933195814334812509635030751101776988938115382861635642009209704131468680026212772361168702712968650073360326326923955268676598806526856278516432842755481601734364728412670658144093608950910639354851190611022245566028722072770647230846592511370102268579213863030469950999876052019789101762726573231366014319915739922639824746109967775874714605997710827758681956499348604265245825601171362295559070171678156751729353578322694032852276603509316838538973962596490170671753053356471899694012019901982491383175205747102027251582074465474383735887779562897750768442210228475790432506924340821129793440459577458316220402929450036494848590864654898879402276021407001823867636242043642439202524877160392390500002772536994550843463434404453250815498534761875997012273624752920809098508308312918473920402756163901743918154301952851675621113327200892493527570919962199019862373737537592381498289404104867016529893555454810438899171135473959475827532169278054978402319789141596901033492390171037532943542083957306940449599401476226788767228833166509133356038279959001393751118612366426555361920567406805711707118868328816257453138554635155809629342560782500648924751460791520379187414685436693969825965929664728971991967505221161587516999524772312133329573442685221079613281231513212605879649750432946398211669773826377544486321300536549999311718051476336521409196467400045052519456346952878241784417466292345584762646661958635243620508559639759172669659439624714167358727657328048563768694867957249222173060838156667770709039607297308191613824960305186119575351678805963494731314055426147438963540723326444511376002452980285379045613982383675577450104445569286573917188764607871663062076656306083862490714556922578303136493932525379001737327134500187281873458826993332291817996819301912727905751183942516783745404342540858968961230063018136709677451092894171622721886163101776195194920029790991612824576108326840386622599073367160406870126124562036649571561224359097748673610870756145370914467274256316182116251544215852952110310102692707113075959940579482937659293952941229580363362711657234319901754746834930491155350547988288663836199882931897473902624133080290911828583921026475002533629585663075050975183577069252141806759057336307767683008876039889183501618889299767133005269724458271650229515936993763988487208809713303186081338286788548775949478101306693083975622397844916163963402114100696795690191595915135381667394337073779038684666784608277008245968218744754200259458589182079142734632100708893204129422452349158692652393518868786905873339550937938343767246078951176923597532958751198350998369584130532962060531400882662385372929936361057192702916440761618933224336308003387870582472316650709562230340296528803789785873454975530757407269882050294688442468342886157259572450240666320286191716248129513424885070406207857374481199175434228832680521886606579534753112080873511674356757546835781173997115435451372918612711090800625461689862774926603944203405209710633443517323656151800124833426954514324218786134177620464305500891597357316579129458440046036418867311031463933919995675055064846042166715522198113792309584534676253328954610037248678085726834136429521604582387352197011431054447005139794777080021814275473585934463620479775080255375646022282125543511577837037368763692036784481009074928074016648077217368292652126258554212455467092004930341154192186146402104514156109853471457977626026796891555269799408085204905997011326356146611013710136720567093881964577927411254753146348481913429107988896195969624653799140872542096034307870519456913901955385051026584596220775602453265725241810668497406341820810916455042026818959175308966819549400620629413819474835237958894658878429844386357691094379034285621506638580829052899612964464259285016318103300047503186720762223693011238098229663816721904958494098856172989902167204017221096581398489141235587295356972725635761902122440713314927760466487860706361377782748142475885733040307949110806006457191851153653536423837775752944973311719343070912209011510852631778661856637267753108186617677504146432353178750895013165781865194839027741387731753890492855081162732151493748625332647685912296745697325438543625950364458197681715367028991516414930949084648733905470912842214128000066676198032111636978699382975392502028328274372904605389258628429245087600883751253177501948124325302790441758005560760896888291088332290481375691745149807938317677452836547127867145606230544925713336899150949120436171836428490150680953892147096213219386683385227032499180353471869885885630319362431192096368467740245679636734990872448430707636675342080572445449051760563796594789327503125809174392861099907071663865936920542407709937056670733840210984080484645811693879974160941998925339444458420148366148110463290825919478568610026725664210548634554046079289372683564239246428497632259153963704944287265460615090781444002447106512902367322042714296728188111387135086259792652745482622419701687376232218894242546661267317178124509075190745939496553729480905714350590498880527342645838581217578588888520920408373373887931417386572983583929695592489447723456389067255927326936185874707552123969957945789972099139549807441435021322227305650220482586707718776310057361038903314894846812587888011303252183263902342752115228446038715463482516778778011320368367739428118349430130096970962650833687716475390080606915518001520549425555062847684971382354268529137722515708700715641896877766327050268483562254877151886062826336515638269725397974536873043122814313459169272823807589506824039287337458818356670047894804916301141932382860467836818824888415220487587990659621024838346539188099009050265128526551866583434211693848619082606022605735668076825873018409569778901589982992937133056462074126505237122881594417508120685475894752926436824116430252758519137230639408468672582051694939398101602443680776932618119347717157137589615155444064113694978095512895237989095635340192870480643712162636891167447632023627243685298091813522048519500111454556401445226828538105907631367568817363609223495672788541979162438859066338243276686122453133783996447510027691445056379886763901590212846078469148297622302304480054030479126401671688267797167354969727769172259207781622714351534029421775028847554481129674527068346365727460316026718740631441245429621477972972743023799122154961075260381066639576377411602129677774140745695081944945338202123064629997899059944829010170306721732221974208337599359693871541147718139555477224388505264982013481035008855531567942920876046988471794413566877673448484922753157964567225193066096530561440665895444150689449680320876470722891507413141009856701680957588555416908367133709305151357997034624006485885593140944249107519176798461054625037193452430431331913703275786117333362142450909146937452977291448493659274977722452872708065586618169899931629335240800200050215519950981773334879625380317118653352967273480389899910291198166553328430900510912794886009836380490330170607050308650476326166124123868955918887394646536786800506476451563499485200260782090100698270470095142958686763349211332050958226203624456291334419625258835900437462275762460050293149591837557032858723937901147264017234433032321094124654810908767818733008193573617664625718097081191105706619778115453510806774569919146524162876814909008763915688227861228761255062118645616956427596878822074115053923456553532388989851996535399342434562781365081244816862906306501477549616469895384551967498433237895905716392702925090499837784274675326819820058182566358757949645782442783089828366060414407299995992236394701879347637972398133417813834423448356907284842542497783754454057647702588779159732068444812226534983951294464974389051626784551707855570770661922635882750934838490746589807634731989292849114667251306227086942688889916273919587870766482088988263635215701266968258532222711617773819078199057600161372037015720823955433606434081588336580997071980647501771210658192838908702037357885637224758196584419188133645985385936853394281084773404089457379200575811347801480957765418594687582619067109215219881696350102378546154028769138847187666875734177057212537622752317225003351230583277420052918505784239839568663984079693461819363768252020334635086731805805070651261567688670589968195475531436594410589575239995918599703058017015673396880062948419678184940122648040547556243054689413168876596166485514300183174828948655925433468843148735035335917671734403963871698052684507757566740700673582737538975565950992920388628920385293029792407977792867092997701983944681896703179531098264575797567862777283270607032597997931047900609533183038021477534496856831242199767781634701508832301945315386361736024021992085104611235078735807113408895198370696648021603570564963277923578350914312269765505900831878588248077931701029600553522749568649104792873085616180405404279089366301615965820139194333224978665644946227590600324971658878671725863314990522391204217088579706506388398831829595866870893831887842028117943113974372628025719967080597750546232034203495714012011525500688152224000774668174826142996965809843187052322037221932883983490792655284965536131458611159954616500984934312746352638923419778907192383232143882145544421001577760794890698920863581659705918409291538024876170385939425269469850409640565206768566747275341088949036374575571049364689209611313254477970056215020129053388940827180868206742535645718451482355823410310821656651492416092106130094596783928921943909011275001223219915832330294867645841892585300148296030539625226623815686081913329563052726765575020042928071954624528577433597271926899975770307016111549555901780657061544342236167329013134483656746164375923127845025938568840055436970829786922118574842654711498052713064680550775169574224000599204179124463229642285200348944310864841446482830972137132011244059111656551174074418586832702324747611826836367202155737284767523939738956449504560302353732607703634004790945062097041918919538000192749827045021937294644015584585363422108223175865674919676856867248550100220842104840631720276360879607371027192494157332381958684219754222545980633821592368455308576883072182571546020692350329589701446604488359409358246928471329884003792640142142348898455975432803258907912230585205515192420308011068343303349168376055731482518717898863696370184183063729523853508524772788081264279148061490527372959218345764688991708472162293197519782595511504460875938724205615479533814426730066122144066714668126160031722522075241130342881888702297387751607367197469385807555239842334366413057281149257751592583334523715131904062166506889472739013909950594105286614617207940220286360207608557928694315916358625325685099888538619460036432679726149559642611396146395264223992959024026017880182473237435045772702881783397788793999906272888593362399887323299305296039935560287292435938591155374130990921195654053555758025930789272542144458404072736234615292166715858882179383518782399886433352297429784007145429150250442171440030916245405689150951787975173947435244811405918917283139571252469443071079551792511766650713422563029184592586580995194287352198000466491252523172578621368871146354827056134249033801346908937086398360925161577280461703812824074708415380382629445014559244699197293662036199437198001431651341022193125059200836012022594434954719070472771882014839054885215165236250777512807762473455394020213262150670607861332109313595464829156101379852980710056262002322757616868227984526665322964665984086534142045042161944618624979739585779221071990023444287633693865403255021395907957286848413358744828417724247070935094577295241877256858568306227271869371182048906313969114729682410674143545831714152830938334499708236477684840137469525719656960734069050977952756436727180065573814411812334037619283212352551540977196039620772508554935680700900397753032123582634021285995422359264278620582236967895411543678209530689281715713765920644188475119927851699702960592140222122545824559272537909532022150605208565068516982104092618916834910957975119970285114473313385599586503492492812461208271469986347826551876065655774211581546499991988474054303769102351268525531654404663695726596905516332543240688399541981704028963971897283673962661756485964110105813372908261065107745512824815682781338582512313738287229113073451937837580678621539932949805460806348527195834684613723148960127916626475882140612753223254733582320858821436492051731902919996121270228515749869908287859903131653382387189507357969351994457732104039709633158168936077056667809960952659432843337932667439385497620918354758380125587733868522865036014136188026429178898434985181208378291496617672485597311770653862414455494923658146879138267397039327013095208559498649268193629865353881697852194930373245013117316359340445707732822663705043065509431186190188959672872648094924988452793546848209213392401266589361389007819010927944911827150410840749541518403162752522675373007438238539345013572083937364687343692801711559565258306959708869104390165629866474447005701208884734499952369893758827054373702560281901380681622709842882759900550031576113706739717456073535065347969499135420373850310026887078423272228045630397892725526754027126408561827728339878374283546511987863827987541905770458887484394212688170888313345524132652193444054584518776324466674198454783480362620383077458095823941921839644848852202880001847706041544337670610367359570444714104874579604360789700402950729108273820123744128163216911389114677952388930184003020739935812785360064105777863908221406266754445196564133970234534226544044430385640835287066835298114232379560408875069442794853740259452548822516292811627771759350856125193272158450993237552419571397545952753380457492718291394180068984411502047947818690235699349924023029628518776346439581284494531109378150542911823823454426719082148851299553330744788127195555769954417995090487606708505466281986616210994030466596881488439035725052122989432511886286650153177753979305194846093705915573709305756892018333900720792081458296563794231961277930287691119950515381424183656313050049456621024183697129619884256469707378776698408765824025099288321282534992317163738738170386302485377319738810775067481640901496809541873949520150899479650301528010100175736005118875946285675320903514852157096518399418372621299659431279907770758213861465718342683870742309246381387896319256933132188789956458797471173190905726560643689392002668904102855411890343741452452708435142528830960584524566853986389667227857071704373085821791185932711802961969496405729488931788803099843240640048500781404942379614679281324964563605793566943855734231691763627918115842373269534374562436294432036790514745996844675524689782236716824570604364584303235905052288314215391254296221362019360033785289413932976425309314705317804932987193133287483402733791702597089032883672938658676208343044334681044696247378699226237898050676541669846819052077185944806720858825568849693398922064581576981293588101016206726562205995991277702246362451400570058175148895215476439622662594673792356522075522933844064475719087103523588586890274748401924494092080168574277271146145408271096100209534064093657334162294602623647483516993030449760135897379209821511492475770665406931512406519070202418232526180300652255203184271397145147425611020117722550873974517851152075338796263917464778856298692812270290837273429954886315504793396731931062870168235498937459119418451800697756370387141468758893034647275041603844836507052720238978108837086161554016015432029435189044166281276640151948029482519033814058662316550129331315427250655170179097103942472441705721927216442159868645428310955917209655960390245780516902823370994323225324681500658990173198656598233723062278671550971008805736302323867395259748390676001865478405400504687549979466435889589336243626389319844060505292668326155887013500649884442547339090064937006997566240152423423562100932331068850156884381662942678339113714222992002616006790616479686991944787003286281448332874953864635720155444738803421692389164584150926952772554170358883372976840894811380322314581999925153676668718144282975371752806709947718688329622521684910881493702158443173968070018002132101327952491432460472204735734438222090835764394790310155292308432497277507922756952025328757937544232003338271913986575709769690426537960910456853842295172791849434065427574825429782641260174340304829284229715783773818796380590724342389065648332734861605267643397352029065511599989726243486988460317016164746697316271455108525413470100125369445140671010962136973074404236606771460325348689228660114917531704287661369986086300989550833475457044289928747995569043027041422750922389291239119826255965877959598513868144278847317423204161228520936291451689721340975576163758839349560231641175842127564113570105054482960163523009761790136196234033118876369846943030000222552151701975515261800307716502317913781512762004801796812301793299712055646290815860852480118230188732123916048457239547167543116930098122352609521579017868947557282294718017405471105976076854122866187110262482486033914986624556403937122611557760106857904313675856587272853374156841032906572754541196646988047618062502202619585763330935662226106135787627455588094772936007256391177219612807972606236215432669282763458907481206166838902013362465190727958214313472601209402462538171350576617976380331364449260546706340433354726256996180029195341634547611793135934029833426684671266751396486866836466086615855186543489640994312118401234221050508087969505883913475895085846374581130853805076751904539138487007389844113095246568761737152764060006278466872899300143716439682593546946263614288031018291122905956361488678827499104713579881498057212982111844341436893616907930755062597100942063541644238982278302067995940381832788598090334893530519842947759327662541676539537375443968977859344531077964650517867297705232811332077942290375808026601265126478679484378456208608149699522819293996683102850615493082123339811309664607651328504498591823750175541397033866714786412455229233075797904284186589540019087074190373240976969030430229887014031381306230515203912041706217419342938748878818846761843576144699324512230333645321414802213531726234780603640021012225210680896134505780309557934816359316637317818664342924567042458063289948521490959190223878121728119600683243342503377573301920934411774041994297944402574667802022093401368665250019269420975202858903016014382406275110311134142483762300346094126865323876652121042941952293571544059650502689377101384666102264112430411531031751575892067952359337960001059690617096721310064914938514323961976607321648866264354986894179100516399362342753276521748784484109732284866560009505836956776460933355579096257926542590605166820791314807085764821613965288137242558761825942551108372913676719091225936659269149616030377696069590189920616782116320327743231392702250997445639824664958915000920433944113445655418376807009603257980310846114555682875335084257093428656518759213167678252944659955113598027895929734471849820048533582574195063823201496679879797979672471730639655289399628237093090888299098097425667810152384443146091759870209694629636273569471616876427601583903826549577301471958076823841220928554865786672206903822000420757723038854695660976915639474166966606627719496863423089717292860691756775808411454476615018669688303849663125696722729345964461234556382520250724656353174312446209010107945759339619239235588708798287232206905762864673562892605162145527974315285179976133333939601745712775671843760778741909948039500778755676548791797420031403622328094496475905553036391219085990216609066181573951135194550317504027362717514224965697536570615251963676681863178748410005973331136460043074842480850203556415949245598493751356624354416557578810454958035901400073440282463970276930438353812138307883051007715543949562366985398814619466692844450324692447830807047192301721270993723681343024919203427093955073219385612017520491151613968666147132009289540430458658003901737652949624194120190187628248512483640278705615697568926172555491101859860082596370972787287554937933186319854329423493118800426112689171639612110810966216336507484974794907776650751886857260707625476566012819709042906514541789047675582806169059061891078283832674420245503467182023907754230328961523407723220349992965283018619412747631848325161101043711174635361602105609755483413576443469843902410651530135194635492063974703595920618156238170189658369994377940535912102929089844386142751039323657519924810707981920079834415232125965182837730543099262543974357223616326266752316876081561829263712124433525359260943672809540173026151781032582203863720543417169457621176207740592536593569720214602027836969903055633217520172416973341910115781603761613295771562127503593895211878355085075985008273318269461467471122052291380709304355336091444060494710606480607433427669711274450765795330754223511844343948421888889606505350677490672828297885426614583021709569085452462418531077580138010448712980051278439894583205144077582509221710956132760625570381060200916032703118929816748536942111166829106501381816065082174444447044653735393804265589410046210680214528902307827171541334345451304619750233944122860393342422564652077378919423661630549780637360885683330265766633486978327411828793859951576778952991377772466082651834272460234975018158542484784909418407212910191843015158603761134029807308849216272034022897288358669067289045491150001355726390022513425111596357502462435416951624878272181153549903570511748955980487132899177150544147513662214494999934445494730083701494506158549086935180499401107123285738543214769320243345708884334558704634915171573911071710055155937637116432176625925649763562429581544626890942468222614296299461630047475153927582625253342289658918803165875436954074025635812942179191890585568693126859135576627536310937016700073036857541651620654077490184267751186085707489427160903843523124482289425647992591729676479446881266240356991751478141986314540579517953882999485907735763376600977023699158872512643098730941563951171908065829678409863380898137830642068004639924692167029748770032143686945367773464046286063789195715796162264100360002951355295920100788907924935200818779080180978225688185079894738047784388965176276491598386947771492373999987445735351485637702246262819989975883403680796898520382412132213743100269877361761800233205326103263961731266957590402710969266944146661923584349249364794015063291528548407869461764246953416135612164929441530243031105336152063018268808014393601908441818058992316718404542493393844734793569883679563347966097988329024010468567781112595548428491976635661932301260212603785056568709093560521391955558114188861794587205209251378086351521663318450585293797025446881449765642302356228120962313119526000999473905459434965103928612406193530398594945084340503197486145526843976129027364717412223544140333955129093984195735549819330729984417339409371081579819414385665148186485991109905248268020131149833980544004742827621123174618582321837402529937007324624919562924348184329114002390219014340857999769399164636814832023152541740262624966255522457346529379936102638605632283732190938805850757939708554296353649519864380087391480668380390064931062561784074681295249507067038822164790498345802240409527830760385688115808211851583729711864556421985543040595536472877965408484214488559931175151453569352702282248891264717808141269590217745605786802162804273012775163265014826515568357896267436441135913181337248356435647774571943249862582607339003903196829558384953216535926062169218943921540665069223543984895907024347209103630628267974705169830025111618365834585921716291913123875446987604923587180949433715483992173562221758023851249347605940824384858685364396109401490815926906492280036826213389650879919359799354687869550158789089581387122930810476054030748605736487531469811165479770846590873760967714373220898246185391890615080230121282298996427092012519799264865472128232326094612371646502226299187305835163517701863722715719494428245495156833353138655289664836604784632585990738233457545884330679162818569109251766049636577297127224246730543396398334421918948700653318013158885536284897731707034248018830662943383362239824486777743003155688300474428651121292127910659010787691782263266151545298845963363213696681043540494115820485655210519128521272941261880228848965160114825777617284891834940026135453109846297020796071426792954043777905839666462060662316159378995338421658141831857812918509081437633907307727851241443583137449407524239367575955967780526614603362285992385288499457504523447582276201825984120207530361847670506927365635695515514722439465170558659078657540899265537134221849737344150688266843431016300429108784016376348848370019911018585390834662510899629903230067850308688874354688940015084081741893587390227883681839098950180481325395616644750672436083110189130338140656216722195429638495329780909441630967143535841204848123821448096664642389804620471021595074248398506732426877368405946076762390804567256882895380391267715648037692654956725872737579934167154881189057309325918668483102168970723404565510958000627740683956691486206756230712766076919501915904954695807215267531170657471148725922601113269197992698542524206924833939250522773445028383954504192204814762905251317979810763496853880772248698236577708725489715149789912517680587830807454412031261342880425175117150568948665215843155615641205704305190702036039693679711925913712625313981655874551359892314208270991164865886032778559365661922698832458823425131797495833808027713781894234899201031502460960892433006114696933481883160336663878215008653720931376611977111562744763451286417869233525531814481718865720197899412606901021499795799659709511807441401295189913082297789183471170569011931321811985366027926974582817192004231548599762712660180987606453021380122630802919942764997904026476787522999244408858890434150068716696902563278276230519211084451321410812483607228064016251020095622307903405693791944665468428407252913196956937130026777223936343449402951485109709181191444041455227344898656346326582141396230132493600939366652334230242333586943263930447136266406384443476274661079044520680774243751760945974080105210743122809766633761921463294758509288093817543465494029567058366278203024469085342210057608802526889800904479474537068225066197427000822367539737808780239816896844063009992682773469151743646014591977214480070402446213207052008170345437785560297744782367557077322315055526964144714988414895799192695030219748398045381392494546254128926252779948675426912712503567893719626077163417678978760852459713425640367982376575010230289346121198043511009820993580055880883739770149693513915064995078538803947499475968642513980558185067860985371309368297756326868578721859168160396959817286452302231136699291927183522284550592954008083306575967823883732518351133810566245543772519156317047205677608952002956523189296207392582883797902819235021360927377958005088713247776226446388318206519112371430724958261280594450013504627613857744683970834923746999298717895164290011288688755440294879740370188456370726513785473248685804363316030431820654040616389081407782206923453604842877767514872476176956857314914340455258843681169743444486963669624592385794814586554768278373276840199630206380228824620926591343875652534600622307543563782593810770305487049044557821836838754134434713206945284238538586697211907860261414316857555528267937396121280394389737082775721213568445731048303015767295568348638225241692613536852274476060476261580593591237906209281151388485307670500579789045047546905441865169537230495193677960362581106490498501339182377561681825290247511029397519180500921102684461757218782587525729409302974120776983977477561187367228791378478456616314935809997259875502419678727096665371389763473438065022885075571557224015475931617229391092419959578221560004304716453950127367088659179303004309887355630482286936906531586365978794782274663118022445294212577223695210147247747751831713381072404348525416403404464831012133158800092234736893469564740990715499868394036347919346469526378678331079489925354830486883506796804063403973441041055040773375878642587184670840588493580365009588436109435581365074977044025822343037284515476713325208393697477157883500687665430913141136958260380519125706939721108160608661509612785847621907193263945375637274942008553460693477773749751860442404522076606147248895671503542468890907183937526299621369331478669289179792749955038836082365508200953526336844830001983149511793477301180444188243940130891409761006958916680943737564718280924231671533186021430737290259966447296969678049058688637714306662614943547994464931907351368206400776452187539871443442794902796345861144098267938331845515319220427426369085268896196650486994532076193863314348602238848820014178478461064816216742430864676579496387905941411852564365826581788622481340682395759306185777422348618527327540480887273542041966013915843311084365011141392248466539162742567785493174830518853830103437363025251367591377757755935363534856304263827110068124565377731048528154361341024094941448376273244333122089124824277587366023190315989844019980477632223505220082448029453918739047173741827114128929514105256741044391027860340431957012948270304298809982385783102279775867819487485915949807336945608380486273949057701584308112315873540231028781306821652602241227359441006547075594301638537883359604172999815094710677424804767021105187744376801788036430422159269634996480705945723807411189448467416818354684719428225865044592938123904837548303630043753332445163792925310646911342384182796578955358878474281854166128477143468468206854454604719344531732897959958486161655183979391762971966983228014362018750061001720867025151305503338106526454063562448855542916726264263400315302332105859690201313770598316920892599233150551109337875271754673124661663067958819294396441997982426680756584586648462001764808758313727347347392427778867608077207652997424483956282938231372932014082117495128057000218065380540551744714099239538654999009977567705788849271575023404824354622072742795557897582441563615229489068126725836303007478228439489643039769999143536934674534472950138733476506812529355441498527537065438566560444511836797509546886432134743572423325787847301988507712116991479314320190190591356304417259669971776183253675695487593286371810902962541702178459623564971606254708864796547586119923914215008324000654061187850235962905755456742526558229513260383845679633963256256681985704704083383537417578800928885862166047988815183878806584439683064722937442367978062464667635187700323069277119943929745216964114464006776725885529415824548933068953029367212897936096719123787278364128408005512167390169438286156621243097751376624618618391523920526913542348717121351068502103741658801751518105495626658946917985679592769122374869317440000102772262606580946719163073137976592958300327854592926789986544320845952306085786122301885049146515189207916809365294700604529919607860732373496775292896474999699043187901257765577879120513563670275226658941751999640592521768541355287301158223314240477465075464471572701537354933804922556474745838215087704337646880551232643788626838607374425438089626531426725115660460784601243544685024430913661270357058592359910281017384005952709799253132471907715853972336096919694963745540998115694000413263175842964976426646812270402096521486739572709408013383075334066543806846783261529998055618058083327896363503057535979413044229219574084101365892029654285846795448860514199833917346086464177455151796586827540263564235127122314078448710002050529939624046629964703709184912140371867095800737231681329967628482664010783329191727237666838672796777927934379759776382949673837666898428307322130920169009084546367603208259847721142760940521396638894004357803831453949396317555056833696081667991639454050430844392799759396530808736271494960725689208327799193601073608821694602731457147113454760812775408425215694318064371894614026541876963969662746501888603247293257480586376988280413988806271540084565182698461715357488224689298110290622197756907198603935119614028322525247819469513786664870598628713602216270124113495852887676853433531461631702007750267253360077688395251698876846301099810860359745087738735071491447975282777614881010050878863534829915251238446974280854225646405837257405149095163149258684612326983384623853173763192154812855602466946501250577178294160435188003169464329250450162173393477260143113266086069856452933520848646791672958381732077869918126567048124571401968194184356305281189063324998623564914119319941506136677457005515809376445179660428026299183186423642538779495116274171903325876229122076474324164931089953946683951393471744686301084397527724531485109210222515293575351675459788625550554438520766785267539292081805785522247057922520476165971065449911781804558059735696465859331328781139494467522457646366613396999689931053414935977450429579847649257644857483057282027246296152131573317884431674938688186651678704921364309305711727385353603731260274287916992306498427581939325271734761196691082314296787621531833344310097732136967975061931752862127915660268307241940518858291298071939715217153783895794434122652359097178852520720818216864274582650241268212494274443251306541587567962211848105642421702289917358251466262865441398684266358843967128324726008222727978009781088617156668474115720876231028130521279954352666838057559261463952669376331964669828269946455519872678008476971019748935559854738582798611163609006555772213398859904224660666900538240515531753595691961586758207004604448228509369720037377729870497950044669738470555167327292645696295819538583514619281671693627959737158960088217007643590292976208305698680540255950230511995343647453249924899480939366902576677337466680221943281130586818139117051302297811679222086754339622079641690130580678164934518781995367102785799752824736157968011490269354385702106431370282784456080266022683141114656765526284001226474167606541611856113678443970729494797728462395117125192985461883040095460620669829687498363774492461040798728729106283320112620454505399753419478719071288058284976341080855072290530122310588442247210185121650367058542359906017351189812457255936668864656061076663999965158471202272187262724567395766229996784299366883061189747477642223307255425998593512508152454310929454045426631256807365298795925353180811060257966715961274030276808658801138906478461080868508906857946279995659975400138047678935498612862159929830942205675254014568614029817186730329695958356947410647995662562341374029517079167043948891204231502558789999665759068734513908048312173483500352150776739568430096304476779887122004616845733117694067155740934000287315094516553354670132756765815068505667606287472722310885335287717278210104678771482548686838689987159854223212541545672812201795319841435044534513059919258479483649162596703440117772998504866204521123909284218472058761725594462727926188567016570075761417016710680782706433479488954186823520231347190270873468943071726962851433108825110975489755980472658781211817790161166840997832764203478842353376304701540752961177849036522389308746525494890657346742915890202400136354262741410433138521014478876646980958305771778389256513082931527004864461030695840889744838865571295053018133558972060309056988675073899825580180886333349811071625298094244570011092879936419399776879694327795448458113093313958838837713511066319593349859037839312446127433783794313268888955122320596968493368757977453366587185075126022958161201785786261361374818646562628233441632977489744711142354838974725651848796877305589342698347273454387199890300130375859795109994151791216052574247029665696097792030339372624418386424511047631243117693294437588190460816838596445788188218588208478457315519529900486199473280900043559971892655801121583398154239473619329388875294945678139715667471902291185589491484686040625191352620524848382207322285025902932952677751985422091216561894509870686263926937940048581158562318573113532714381852146884867523842210296060521719180693916638799577563390227233900119126605607916565428381661570358548882956164559162198227949306039641533461298679673453960810124786778886623311477375190950899876691780364767164933093758766161056523210647503509088931071312385597798141304141041624623136336726401738459573337338123356060367231407520897554034458592597702751613306467468499907330939649091114483398010190094159658547321221252636486597122510004235471556508911236217510795091193315372538146939612002701725670663148634446187678692056068843384502116163693615466271538331684284651251337547519919839292779965732325495203508835939291811650795816225412477530655654032460719591272682777863091603638339589289740395147853047733363749801882956893797289146700577279048298784398470553107245194234692434288609200697821244114882855999498672068310447669298908841589883900295416111796395037113437748161507554583055806714802248740174603784089359493168519007543184965159310680359579174993972577118379760986442856720750401979767419832502165661402722481754410705081225873012068912320996859226244654555356101606941196649207493049077361480020732540826113852305691398958184509320164593593380780620830526656161304458865782618043523958966166574629483743178199556875619197049762930799791581292953726664637946408153420077427760377097140026217771952208658274142183393305983092108898541924188318666812018837953108615455194017349048378094081173390988781132992082203028701369374208505381067660706447829948109582530975746239846648238081583367016853295068782374600729745834763709883158662612921044604225853746813342334478755645782284307832587328334514324560874224746888607415826928506106841953478841847708796308841794836897872310128447353503858126874027143806296909863405435860035606832901619909746276131912345026874935822566811898493610045943794772293392806034582925110647936923555732319790339701993573606075270727813967670418109753180877249447796243130563713810806606725488531770668289330026640246205107478790151256490964301772011154165112923450913184990655943632490270321630472714175919688602923158023081570460500620883858388690768602220747811673501811025495218926038380142522559520595888307780173980760560602479125672184125117014814099551887749949097337294229659724828199977211224034788692786270210355299742618858712146102990725232028781771112463350482905972082070599264210218169407166455907937205910819965251106746203822829450311671231842758808343569101180938711305988059367161691936021076247980280026512913388591836205290411116341607483781082036595180367859769122518513705743360663776673249757508192559147352657597316872899590276451688357316548571907887450237829829528144742322068505580506885996131596064186744784646527222872048756290072912052848830540249323985114639794055710598680411633532741546478328784624044671110320277217523000099092405742752134684144090350244505976784404895306889367834779671588100556358858375068971033480145203931943508049908604443815028416072706549979096803072313374695831902077617104457239417192153984945001107940729743304878351564613236848074602666224885526806990791680247303297186060663752529488675659689427100700390754174544928179231365650840992428232304871467165736434491428195349599899429460030770571692686556029262973674617740429562038483112165039419194649149323977699465008917725526711251541660299201927544597116641715372014174460194092218146971467669908888082631434928895018050605803392354509670248758658289187342485437899681127189598012638029493257250018124361969992303429895716668066477366352524896150604999304028672611624352917173613390466848187532637709764523624563769424265027825352837620796697584961408665094122287465267650212758913156942139356102740725625668804055965656398837488124004375214175508780941123402484082120061812860835230445678401406779213545889394600314590580121726020552398815478179905107155062152920735998950109929114856451650435074264070982441006203563256947591115469573040395272578789844929012958997380557385760865337205473576737949965900269148364352178404146174654240133101362061180328125887849529023673121789137752520875466447047161504345782132772544864868361258506451072561917222601552588449491429055942820769227430611232582826346657038978836543825817658730437620642523205119674240677059286955821369413599430852437137868729824125540724437292750345580931202097827308486308701644021554309547973473829855646068127047630507776470522039782487636735174675559248451935608752521652871503754673188436815106662352479610298321834275578928069180186193768071203307914633525875279385663113719764223408030305758941626963826965607585051915349631769676782083577294663394605776046292357467887819533262952159946508606997845317864447721911057504089425114129698038525333106338526267137551384412166050293835535915112305262864011069490615296189946685677718513398791890310805158038934867718440268059648454713742393643205999170072281006533708085739677743553646707143815293469971709364020093833301642608027260548066997999174876714572785220903043701334191055030946035566071279899554420589755824212600745422155737700134295461123202928739788621103341963981314448807975103057396416069752851013722787458205577666386182242367246782926658077101254640741046096726501373274588765854416682008038282551713939480884805915919878884598445943525496555856816109741838227311001870265222853244573695041833576982965837548441149302101933666018937964116070082741164276871909504270113101227874868995775498703495751499104470185841783906446725225464824375235792251090981548820452648635465277031697501857982966221543759537971704370910857389270452087540921110721822462972761827185098226029266848844286882516726721295807358406468316132651975569275688636597397144426078001600695856125191685521000253368237900509842945930660833106201218660944159587538422961660687636329350393101687332873147272249649978043347444403753958178340585025869217673733628557898705524677412400163646365053694843635474173097091105587205533323951515857067426716538731234759595868318186455855274231768861497359945018311591405553170601542729824603111852737629308387335369820742755729032165126509797960489090045374068846190120100280854284105378029470756676742602948086580131694290631397785379334381429936462891702908265846204581771720857479943170998284193660472432471441972278845859316029450658387417856796790563296703533510852241144429152012910086721754640978175317634922061455298429344916246957872471864935394109297306962849630587205310115492846760418605274639376007527010767566177746942834691963369973148153012048440517017531160529280515990906212436949545984557775443962986108693728717207395300758044488608792678765830742076886623697864956835283594373248749958216831501987013883506068229269500100145826720728381136222923771491583351275850697195091846713288309407786587081700803325715907770237429232099089337329958202461865292446332607297444597740845880360671955153107967926679458158707336283854033786819986303795499635591496833325535677831831404887327571179089433164779050328288433768629110388159669146045651845957522169891826059726977284284196878857137588156810340701718390337681547708425433417401431221838664013578109656139243453362819111151356178710046613667618562296785531556693802189308183829790804439244409911866713428840906393638652348432136306817889379162947696460208038031159972433466538333375299926425204544790172543296690143437050007695623304856874851860537273511746794729276708141358175550152298538050062963324446152293041617214984701195556178194487252610295579915462843688404021836192519783417322094835968723309691677556968246721145408902072394607711039588306659835600592597062882160857782734971397966646681193175309221243293017534186421358699103161656966716723094300670310208845736733722321031871856687508805939795623981742361397829077706225858719795161995843706842655887352326383145420584228864139676120572373931623292784194111965440979343483057417642484309029442698431061812612018945147358776070270727640061433050833598769374742569513194925768115797290836765928522907064338655026784768802518177593242280399899430147047690217648536753231227820613638873575416157978751953418569701646637045056094051670107048378152834392948249950819266267047585659637330570801222699393530458950281429298809034978816044182040235726626332665030374097124126786504975626689476369730198918671812489015265016072094983584728916646618809621525384807904791756221132138254669771555718297431494730877969326905964302736426605609614840970189123563376596377379908343086315362041057068968304785674583941116585952457103868375096620249773456147228074092485727327562874950191881025017330100934164573513851501744745406130056429973003784518025328060119595413759552941745144765943141674624709158943758811282189304502600181636981545641855423407059548746654342382976890142014624904079155322565242345994838271804679142592838759544863515698391394281011933533523818048849541401070691666919987909601814818608647776744375021739956242078158212156830336846664537509180006074502550842700968679259593870775880620604809187507945756707066772137218038302851388500499624611764870816951060604587516706581333344555625272429022986967932993362851047453847947359386010475481683017112414418850275144051863056453943400979911363616200030502514950444909870673361050486241303096771243857271845192240609776609261040182745167112405584557435061887828802645759725054087799229072386837000573982811909966418123589982918923911746230370364727055964101145767017005805208380578456086510244357467976611802920528205431641924670707679631566986528629324408154459767551528842755476153572676719203192736134984007040812958420689005497162434250018464827984732974560900380032685648016635570258022384468574037011158494951567713442396176440572351307064137451568605078817557433188611988492054100981206643228682973755281073960276365496488472824487275361280327836025804656422821599127721102778523581428546364067949510774764382340612414474788132000919049452723466657788082164548849823906736079281700641539047080697755760237453316741368417963091252352037361449792206160147899721667910938182092782052752951061017633282919817156222423989837950289833724107113177132583976021313677749199145574931890971543923216714020520399037409020646377856468330022119530090172085187116618244519246255143211271889720993468239746933240942252560480657611185007464760892279428834707789676446047413110226257577777738233667852378974656348966891540755558369402404208494566802449765415830002023385866064577883542781361602309194969227017835407620059530526366658386092695851143572845607501780369338317407067256815156515987320831061244625185291963375511080761394068473240337405285497210755023197170376303698192513467544249680365065081887059910876212951067764454712280260207128836582084288011850437375681673354342202259120723420935045167447947205719902195383207840681432208759420215737522428636107942137653166819037576034976117017763169471800700920576300407650183483326599722568020939441296691085890332553368867839830068690157708795757731339229375400841277816426433557468408766433992486104021076794750824575693736808335472338538291796170770653675158527271351637938079778120908725925193084520966998868640208108674517383260610170489295420633592376011843707106205316292709423995461304728532034686959242473840683246858146252454924013431161121660738796473044038378470096454697875608297700495073408933615669043384578550154141191477922139828404464618704972433846372038303581524824502284172922354221775473719104164120091580445257362105456378287537309586598626888636788926595591057652300452724510627269715906981791157382004604511264301312232993851225271072195940398982665612717412252758312069669262079270204513508392337778327062902741198715115053866542494954920778279945417067413621230607045515605567605928855379541392137980948340792438641956036725451059843014433663638494254825255405432916519485383275444157764776322765255089251383310969507237538324830233201384062416094393250540212659437332554406733335799045311339343017574415125765078533233149606470246512775567839780044196180295511825977613467889050880860181148908208955228518062144329809982944902152222279220247834995506417560599436525553149632166023884881285376770735487130879103240051500241844008350595243543701039796144359863675698324441860685903277667428495724313718252497467512445348785475299292557936817122649434583838840897684782080638833389497863698612445433296687665783810463528486062878653063740375051713916707421061277764168952636285200993025360792820728775105975632166116344117758476917705251448476939397632431495251867805867263369536966127318365383153643858435809069676320735638021859813564047449949050634034880715094448511920947662751526747948281352597805877121422428928344519485143995105857090141844565473567429645362443045191074454828370864265022382045109495409858662801018051113999141280664377837055084189137514420057613531091509033554691825261213482422436146435421712645894197031283579411080755612610659971593152937838462828540153455649134052050832267464616116285570354188671920871645481757847303804499604235314600556255600320641292989720219638212083190424946217942402233978105908684750723492074748830358687660149681389810244228426119766505254697721542822988721692079290689281461529087301898661577105343808583651450947495804141773263981465601397927038680949901887634793882384610460650774427395288549925464383337258001843124383308279904146226720455195659271381631222004373184466271335713204389963198034146576270943169247541462224939070897045086306236336428022003169197710321684885962568248663531219395719245415897785933342037132751399073318713356232974297561587457985595660660529749045890066111410896808341371626102740600966188791252516613642108270051834189592612481001610440663137004059964219857616483145311253532040677620577099935403055743723163956557521244927544387344531393101927900438611162507342760103158411149646318633048127430361619149746305777368366427632274436752356581909049845265238651792362084339459187325357468228903659896248973746489859033293681807611149137096625378622529917931329172249683985930957202243216315532496089362667388545890838996842197797496654124370589922325240978151446093772383148003942571846398637652502376512718215533711915316199940805442777927859127127156348518300866352574428610069627304636570164825833767610307595969047362163500272573782300674414959908844920105405020757780136517755623118354795242554010954908850494857387247965525436996797284405659814920015660475968889550541355761254530504400485668877739247455103901778110559505788552728978028391664298513931061571175771913692320919474922461397423990208155592060826227672531946111509807165619651353343362647376488082007005556911248249507252912654547987123942562348924006736791755387270736052454782713045219907393686444054790248741174250435426484994923681526364858174918764806386632139781265978699189747079210850579538090518250393417749241947682559330143439085809759440485296952864511543489958599289170050473035306144073063378106205601666451575924130088428764181759367922651407383643549670424899916867314314840321146177958034889641664438387116323265774193230274896541504112375866133039307096624465962492433113008949070557816177202018700334668117734950647465618230104000036839055399766448719234570129056963657601808294240414220549739712161367556157903583649696768500203625503419961345445604100767267131145409527798512140763009486712466988814868025513398103164048980643832761483099514003389976330162590273622651138780225514061246592859917173515241239901742282037624358005231395406090190962075129731297757473579049258584869269867298657593957474635940889115578738101604165382147271530414025841558752542832631179197939120370743220483623748438385627239728571823034409960660801106741767935614342220784209835555990311293099585477032261210186365084819892360777863199319466617859226405969142010772103909489435459108703131952923716905774103862189132348995089528707268773824625101555892869212067129948176525065179543550645972577557922903871511374242206489460909847943402926496972454684361751150115772513628302188095974204362728208560550833419434023483729802327175132760185054080794064257602696556068068377407862127559325209181042740277691569555645810615200700016219354248028738984701968849385981760280910590643658197148224308614285649786363077055892939152252844019996678412832953735745013902409951967417476579329042632601724517449410843279797111100350734792569519064188720401892174962826142133838512815994074903958229415841982581366607645991379772726583001720738885843424155020264080141709770159662069074577929518650574564867845570734224523850589680843945730079001591027534968619985170569456885582823271248181693047280200614426763710137602165748761927534314613662286194941866295872520847223510443368302883475540608097707173077370776758385396828252821025646435279158977296139254150093403348904672467759148016517506317409794641566821184453100422655225921760318632105552408565133036688930784524976131110519351743004237240739052233731175283067923065648252520609856859457188429051811348475933405875163025179141727922522795042787141722207082223695889439423659966913838504368084312476881356303922883005021396014031917482119368619056831688329313410816495475732649419926787989575770335145903348499670122515406008661815937003288841824940600816247123304171207835338897647387071451156714590018077350200697981459682036563573821140713554846598095902123099493613966686999818893509118414668296296421855808727916712317173907245704209700659417877729066807581452543696167970853231375027833225193611843863475711867320130584699347894779743525787993634188541567310402770393484682142200357203064263465602783797163754814034255244067655152670654123255449700712220646387874549873942166887103208459242150529492680352570251587109434680593037662402088061158465094029107797361236292054040185619261429657816647042550497853217372509091879614971692470900828782167428094604942967017602086084125784621026240283681256861247162855321554859561054846084204891418663355754539397605672010831178364796928492313816305083239169121208640204830965633490059087462559579805233048755189372247202141199352439682167672594539833477199094003939547561353774599254581009875616889196776014582645854831733299382220130065542954570167405029922256604426516413782792456760407603794809289587955783936579919049968229992780644561250836323597337665054724938524954705235939683423750722784026374059914435284430792317956219735852356457576539136447981456577810618573556786338271926410297227444463285153961610926912885868178993417995765394970453112752856212816374553290674912287790870712337478435858952628536332357149698575558046127737566272643277527846933463765965290128428346173388802710957105210154900303626095317464208416608946259081229896310480124090340285920311262804714210112303075292849910244143423013016854357503697468938337062257979677572061384893994634490425760520691374710761406895137682104856772936407661897450348430333850837669975945227439090387932110974354487151482029518824262836520402486842988340925938579722771790614325310231331667351590983284055936260701721867294926336643712571305674058083219297153303042992179465452062448811941083023172158964198436761596925457456047464891607731707573689520325684828214545771153178499343260024565041031052110106990415291885025356149598338979619967253907207141210970083749325605393769636998916148564638884008085413143539833269784868912781482228043448383744119216009625246399345811496032630167544919604954727090827604119821480696738329455770337770643300954336567428243542737065452742583350146080984299313107375763531342338158848622076839467063913085228397572572076922686473668646353121954251546468387402977211009569423440186769540411387557074349274469040216420740445268990312766930279780963872900654270138876861286862756390766494900331161341970605824586408785674799502414197109074318902453888219438732717696063490812775044999299681005021563867509339771113146777692936139434126852998946429381056457315234782136440369637687560187765770854689228502940888129202342869323840792183473557660957905321673429858107737443142745411935044367037635854878123689188865283428603745580806626335725367844234555169070821915504910605073824722432685839713593116937368129090225228294210358421187906010855223888900849510913437667050403115208433115524156133838854136878577016852867479436038555080597078798485651448152041936158680049124922988825156021448766931456224663373153237837290238430094889488684914738764567572454647381700716338240727549177729837505741692811531987121188159323614025224682218709893904647043769370279732575418027048008691844617525756279954193703195111753584977447528788211963039222361491628064792815636774017470621789312863118151302237323293016627068431245088411309387341300445303245118023270290810820154567862172244757977240755560143196958739399520536847965657113937641552820938202835729346390951082928962922548095403677338705321317996900164982733695650147429224810485176242804983262590913375466373180881483239434297219111271159024391839719045077770585745142824514664729383348389794424053592777801556279424362256066246509778392955998689697199694806369376412734885118245154374820108308838931818602961360888345442133781001941525919155142558905525352023694473811202625042250195879903561081138342044087600346663296925984877876423194732699977710416729320808420389585355110386132914965070489096733407146995385328596882303094808579150485398040438167980474357538555501328295674257711057881705449967461282484602542490233216081998572116301806114888120575803337349429431822878854169159512970294994592701371097183261658954910990255711625047417070848863014118131986700628904796277400489518623927674356272967182122106895296034938789272143848237787046862652391109503116680344085087479816963944374139579898426158663245377156119891211072286084880321851480411549651549877245588717574628417936748107999775378599364480777857774136071156546246495954939088561242562907404633530825316744852242296937423954885582652647873126623264245526016875042841211740220197937294017189434765826524138193073262820596237783279819445365859088674467957880021636147361826683211061171896937316690373445369742192192052787571044283136160786376056337138208008546594609467144208786779317584616965772662175380679411823309140034355275357292405445944945369143818817199054747675128458060681770235647684400048492343153282479669897874691004889290853178870963942216893543118991284195371380234061256728893507028671751690023245620989793159398201414301113445561173343780813630980654124142590867676378148782029532443659841246739432780215903781433192278509697675636816323712516028542229597392382633365651656670047008914287934502871323664084350824231930043644339488381111494751932654331868532842563747204770522687464988021974504590351363828960996660858138350191891024402444207502113191561692963850883069201109956115449570150288246058293246623278155960099426938022667736786574664303035443319919742502609276816648454476298413387336976236300873822059570416989075436978680076730614361346217646446826295594311996314157889318805623029844442332970945916521480607827577420268848159422624273640333206222366866076261895987493137629424383071903629618641192500337720970362093180273579051331421861891356024899925084242195378771351636930250387236409716962957297383675897990054648431219032666559299064419597906899564806397112142297065956647989049561815326603166878127113098380335662476511289510660715429455536003915896229028596102185428726026747474187271907905409370941895869004781450162047548893969181976225128650097388751013649121657055630176823906429275906124124654505226088546774816176072148348525975569365135158097676220583376295326874766844453858927185601671201334999071652170587245996632985638285184440479967191328913247514262997246986710206213337626231009177483367626820255652089068313072375013687629384062418973794236938635941953860300087647637398601435773754004418896416655871166549359282677237534924111346048324370872228498804961506671544034662936949486065161333977975250448440282462176973010241934853633485961567554522979201709534736661432626884145839359818173000163460444817350265258920093371954778764896433033121800183022251084587039615928874232186769176863105789683215719094060161024838360093753189940002265835011425210354242674530882148695121009693869860925946760086707515126369922751427766432724650499444240983979756179900064358159604220148985106943704475952293310553769698643015470829877938995456896756311124270311966178970346900272105536788041482974626306934317105691056518755834511245465187191429176222755913205722019727194069447498263211469969926421047513057458104139857582224754792122841459557086643214241505872710633976757068583054957459560423913972274935162010623354808134685263942571817718644771495404299583973520534561296965209434549122790591893081945857778145985021346750631505050456532094700476309599371384361259500245653816757231624571940768269981657697021950339315156050982931903999651400511741652601638936989039324022756664789836424956129651977660044593348971886565321794562862808342499802450519523416081219501098540735609703615076095052965975480724752979628969289558008108861747007303354074606248946256548392134212201497612949364142060626959925967651932728916433037918215115671438799000960805766764457754036762511427396399125420065079129546431078716762430661344061519163462265206206568570347830709167476853781723116950798290081705231130990109337184896763380101193471283935864238025114112957692236484992412294371236373209836692539042652427259142079079579411304650637429745974953125798310357881627138451333762659630768491725927532459155902286217450955413721378840920127944709386061461869650594376298599644495086821274042507102168360555556737368403463762451474839829756210552886923665951533159007201289128264639170797447915598106855582852804356510791638453912883038065477072756163093096836432990745985116634021322138573885846523369259030586634152677773444680347789642938623876055618884399266006714532931350795203744459685441158385448961011205317241637841119443874324540518923055174252898805579892213453665818793962007826381710270725252469182633016661432970679100897225413377478378336137381558800918949570321304995308615898273694518104005883174798652174632189425821672783856363872249608532265500153724774596004603028399422389488173370305351020570847820036398809641136467914548094624653919284272415557583335550143182215438573324417325586560578625699288241375683807529786294243497669109850733290069596267130705539941827101458717541258574702123198818752614230899933076604171546535368725329500792478040993603861433759145458638788718433271532534552586983735313142968776597057138336686351480714329317961211709960630375170865999752399572431593535589657671385621242163314975852238449504274634304855813809413707626295226684961643397304286140504111480552924780942590952390477936014806957054398611326928523530327263158733609033476613159028791780875389222494146240882155681744004820334056700278889633185208075151191705594688248755462862185569088312120962973750550188017248762786976044723067397506545841288099868639691532615254909179136414031251287244554285299061634140224026291571659511231813567438707079600709725924026080218046300672712995335136897258820477337676628113362692440322225127724348703767554986494908391482821303116882343928122999756686751144291971222908942375264006926691388947647804008026423432461308082526976561537090154702566582693520374766699008574938963550671870955168970947439929890224270282356063993520784521838361897607619596716765249078319703335227508348948418845402363303895433261057361280650108409312525211982413366872342473176487119116534233208395148505575133415332664653733170854860436047106469051363992687041706825032590724054448863277867322130136072131065514474256165444445685710942755288943122168751986925856681435613819430843063854572413617896766780716946744589654629734998582458392706627235851949940347570423716988145806876466088175286861433585031393065263770317075011037089651777079875553496146098657595537494176475009367832990924123631087131514613293738743355561146361355826795044353161470703353793483725484794092821293951033986480494719900361719942363415755700884674527954002093428382320247595777732481571486544648199992329990613430597501720372338608369291181471773414528029400949149976020674800623374373427632921958925136071057467485215555437252386287465028888055875594786468428489196576235533118685146149651622717436645663216932793085108244486639471573197814378663001000188126292708116849851379405365069120636456205193769602042612441146187979372840717216006704417795382958600603862148446950160622925256039595365978248591882988453256237784404527689107635083933159879275369274489937493653059421989916617809141592804107829649776972404782824936962797537534370610588521492858286568763923834797042069348356035909547415377209028576096953517704164884017310460634039015080731213621353384964910086318676165093296520677396364608061059893195968397710893382976875990731055111656792110058215183688101995757974427483879291936254036633812210360163950991381923278089349886909739385581885201756618254421586491019857334558868489658962920357677837266752246091129780852727981399052381277800879170574637233224198399567236586872856533916582041968428023298783252492562941243802057062236515281719275653931733677600750903547846630965884275750627533949698722524948916159353314768827332924405791198408947415115748693834840940539864702353341450459874131208595535898460169624091671567504123144719087955318065784631389059037627061320586079996589626501919536041125766002773501944000135555712503624210591572994662842087859183611521588833080745520331953205890100634166105446294135616415861336176552876690215089169311926328580590801447010075198534860419044446741435712524283559263367797959254068979769650324700073013827528051676721327841902557084284861313032104365909272769985431044534410273990146654682965257732623867778517193395699996194119026537856915134945065821675303969456218686258428184339184919329152588558729920148962673403606977838631912101784843808396061563475981056966930878144781366653650694577631264750793406931177920637381140669199342820493196890330985615231871979390078269711357314163010099326585170655811988411936212260891886618346752064081429764741926724679934275442181592805749521075257861161940357307585257676977341028587941159663789856747842702794124150104877105352757941933555950728306394801212794867112670243991147360110463166603198926354745491199425974848010253084086751767740300085933055583836155991673464048956378035165478531294456921033917818030130452851262262920059052470718346194900287812115484493714287178305895966514536133810281873345736652818053325329772121394058062012498981851661209338450844548530653746425280090582887710350786742319561390548220238071415802480063475590459686458685066309824884281779705037981111022573093327456203787618725691435953859946127561835556394600007746674260773814857673647033790317131150927469464771844699574139149901147762585627885088672693672159984922594304847035744657625590154392611557511429967145079158421907902164494532061279023553641730957262353100289090548620600754748997294377050715852137552492464219136469772633912236885339268458607019340697385644248310441994349871621101888784855954201162789486188005739660481245679960764859898727030629084909675336508149857162756047326904253760986916866413765187483879902177074429336165946959612749776393476163274657779151955429344045812462589597452887057949514479443757292120126402799747475876008188286263623017722810055876589344895431078042257897124877625349929383376308802310714016656559074481346333868109295538744255152686257619214121780984974874407946377356232441035221733623607762127516296241478225458080797591908899763178082447820893485251355547141864408627079062453257008568857826467498625510403989109734359280962471638743823038812931212366978777484502376205989740814626447260094202829099786803537507470759461324724922074088656596200215690284989653017356133302738270146044307260111103389893501424358756839249159072328198104822079843671279098402430578125281156897424841707007361527528562836189246293775598962418774095037754511774133655410775831042170209466866486200382947823555578760729889789147435121731943124647785015354440286281513257393573990083629445001962797665662910290814901606610530049196338188095659461214230475771657124830783814170276614175007527842872992653849022700012157582071361769314094778072013242604562927414066783137473488136463349911269595618333328108531083336259072810904419160973657369491241704466233088346434266079840321840266515026842842711711522738880552398477475419089649127508705802604067097038206737810280837598967100493339594043688132687902381439865065724144703807490610510039197350166771332622135668072638472750938034679739093789305899458924455414838737810824346975807696472720721631348939149451969667231869171995919084029004663205011634210894274308538036153607913734720112169826177612438865000170415849561269190755655295716638110585452292748652170618710964967781945847938097744456587969314776928354483524399262061418466577205600306921278592894474421547105215900685814853836427967968797337753346724117541443568804593823335132915528245330052092700637027264592265085651706104187669189602248756785059855712957543815227578693442743211840219542758369352128354258959142901009543716502464622715671928344557394063966149617443893268753306863201228812084050556416174829741328960438478193596586891151908372578558455076893455209243874304961644736039934438982948089883485921492863217445327590739020396134282359769917533073639798659442265079180882172966162152696979454530214608102360638073582131764946139859969797716514675163934464188674491641999841144263939921245971017030302243557463026265438278510111554820485772735015655250155274418344593992671860949379956367787492596218544739647764453769146955897529790024728183118260282889666927230813846445660811720300015818181962189218850349533139552915570066231156912744681987803006728444974541370540014183116494694034741818643615075481070474720246749734074264237822091692140559881445537311828789516811317422227182619188743627351041329825408562776721264275697877438656961992674061338929500591296848295002542449042860748055513048638974169516132684235866927769369740429632767513796400735723923892939488837493631387649279668160351803256874903986183590298914973913720334165239863804588110764923439132189628432052175374088466362206252669692233044599687596653127941424162623281100782274401004745529270463608324644716847429676304663783678193507258300649697769765345743004641830882958435203194465552327342712144592283048444528782800736875927152723577056732102314363699076657201975569238945920581861191331910312667693748244980902345447240854564762538759353486724709166734755651772962781258655434700007113995982075460259071293190226036659613808964128862505274537004617097607265322298951166022921074014621514308998177007393262279426652979958388489493373304169317929217295661589155922873696804758946157887525996668712829745569392476430332784303553408511167907918970379405440063798238609689132601429693387086729561271571581561828858947367265945753108625500031011787378285849726181837313946696846069810569710571202495077918050461922417356431603241213593536585102868350005497258557020272586514550186303613401741603848204337074674409426890653507891564011210159309630067603987451450610161705944879307147810719077435000308111026403586233311421974119223792394623944797879613321427168508643689412238510439766841122379654207206029810427249905271575401407397354866639811414469454500124517171746878511735626135795035067985421871352625115193101739270032769670464442506969704876744240604911335572971238364543707813933643508676621256720939123976550772612892554500457555605728273205804397114393310187348414719893047380105574808681886317612249206741991108503530657428876659400847646666658235597633918625689232814544254571219066531283341469276219115328506889237883611080423033998929813400864127267878241843323060117827971559751401801713342113444130011528530465957220333356983026490839325767687293343795051301426256586011883384207902443200736289365932737876107508831236814282486238275834220466145535340207203798350756638931401325109726409359204081628641330794462763433013365003059022284595621306195361402936584328676366951430745480449905864088070236934431477430708189758827881872641691387608186616220100181797053893489140320037949952966526748164729355856784958143837534684228877638220776776215065265495091402392396708371850789213040336325941564225442612028695793734327387361882300733200476001553344203449660272639230429518009227802925170962252746213765195804758013546976722531266906524919977220992482743717542893031730808144448267868551118019478826028747190012557723959890299434373454963074313179027169443711300540376182092717423740120186159659156105587757758244800287102425913900974436916210372702414148780153869192495476589659719907389063292060480376899229479620506137667041445173321500262283530502928454173376808624493543495142836885852625506328694715880434597926164527065977034270813421492983477646951565257707771068499428568401788679827477042193421998367038855297332469583351789084113136902728069048279787953113542298616158906344235976960358185335924353923427051451523010612661850287308396751988197859910215904033884425873239179214604018344336549309632554267964868010069516755638573510380395593651872972078856554701929467786367590690622682486411549575743165757355137843613794632020466172319599868086171599212265743596523299682060124455270254150030137467181041722552970854344075517030890482095445549196572594884987835337607972563459177027706070162619437895683273877350410324304780329369813044776519262265403608122356792216347419738279848520639391211398515135853879185535097798850848279006272313455253124245316231971457212148520082281733841601540213489749470059414163529233119272228210521101959624937240561154559142030012960094407464091077841443685208366277676747377821149018861742130292579712110032187575405204328729074210974473285967086728731454280432160661887628820512342212497308350284504700774605668090230859885616069976480296645385845181998476264698488277974322398579094258335099412953332443454422626039330793401499598509669130384897650497695566864634069663452878821828201101958694026537176738781863531292080522223011270754049361257759009901675474422041292855734846701824914161170326644963690877511332590814058708591756538459499951833807176511436747208124335947510056745309949664362452075676746357395718336316561077398861807605233541310526216657013397193553320511299900259084933206119019153401910764418382606057551510812480839525717400808752669154053298091901544814064750283225717333834766606203904851346063864323771882451883565993207386150333544325734826957351158872114675221921497579440326983104697755016036494804249609652207056304706012304767666425593908726016401698267773702509640657518563097058276080986582951393382318293906228672092551319326647395499758823241815607450474871913650244343385679240587340136471223010958940195575700261262079810163232839234614440944178044303127260993522626111270710091901955435332964940522417916290498445088214687908190012402349306164708453744976990533913159568353646629930203325341804273485165028718253925513430636285962627189911637962131530556751254584973136773189677270390227232127193754990212206929302443002599205511213612254051052835288938076550658135982620977685881154132809537968190373787998481485374791856921543198469323416226975348737463447220262924829253805289100171552117484218950481462412836415404219538382856653986971410462402168099071280992473811716337545319183346094832033007212811145302248426207792247811736461734937429061163297970119938256350895033178282214609370712436897863050399666135238339983252088698380902692599795076012737729610898810214991750038612732580639974473845742630507197714594058797896097188651724264792461641280080582629267799999530063635991750558284036756427766667347994192818095677056828874354925717810295834704345929955198442703217877901999189005069072910976564850873698614359600643630618179573167537482157621007874745903389729007242130041495846026611910413647515695210442513545950148988756794180523127006684938951487469478468370000035746922399621724665808531607498506514533030572791246562078826678613594271481528633388036498302256697849939441091466508289984751944131231240707815664089377077923416007285762620418707134247629974787703917282996978078947643533656352743001198555102152008269830958574933041067451231304232102771892362821012279384056195429413288444462645985185335145615849117959469714515256383957081233791895714216308606441035111861049431536069602495206327788372570902428657259346301250480665279337456540927157767599693602712289182474287514457320494384603435564114375042476944498680534120752185235765644235736713165894902254318645082936660092161769302069559934165798720449432911397808079960579226799937037109915874388953282628890400366168342702198923937669026463595888740537335325748390999353213444383246790771796434104493616605163252200866073287880344845281999615414376301770770018316065466786884814757745932952169922958471360665219625604990565008815528040345947891449002512448275723447335357128588804659613287540778540208008477058739953133042511507973051084421954134444945741379333390752940801183781176635773089191240268614098645189397961018015309691613819906215310338204990797258890497432632574834907080035769929235816941723741601483473819115014214964218596031641203181860571272710577700242044168190756018820014708417210279037813226235007187364511229495749489083454947528234299326820649271341338307052566839991848949504491307724188770166920240944905266387116590266047875689153012418641235602065824367496051096069502178296181791023797005333891204795813279833313970976055878173289438800777528575531149923826911438297002297544519703234957975719696947362950258218728259579515973359220706516238790632612003455936315021188428418916029654001576172004884420946999993315262945636576356477591333896711716838988337022957945791428850009019715462461513768944209078013375096372324819253907092715135882743920416775924419152688258830865882357253022583508481094100973215026439135281847239825743575440431880578747147707090728412493350213288496039176639510797433105781565001619795255776533170894544663365260549606769770725978121098654963919333505854410563612066244292349362735968015585501178693969425375684310353541116569565568964353717727539656915517805228014780221718567977674124494981092297039208609484898123370177808388132196672697387976483580106954568185766544314499876060609089574841326140399908283021602715538328078706524618163293663781014443395428902171704586684352300685441555459306515277145127064082308536909969040069832928583685870645796604258059212291640596178450836290480607603656494422133483990013888387919381397076648425349166563796406473580001989662210653463555739743793019558303735340815088498327032169441198333000709870603894146865758353901377229313658542281948358838528541142323166822642689121535956484600814134654104253699132558333180842456588029534511112038031244253185276111117115950085114739449765428632426455889027488964711565649335048585104174988680232356659621548257240371361195917792660244067243665282462220524988705841118545887621326375849904429520838742198393046758049675220290004597353918744729659724728208799418994291281557915385890234089963409055973241824621022297500108910050301357559140660454514060529618531062242053501715189492513006555995531751601037892638993892796426145526379093478410301117918778856905286717993262607088248098044688960164324744158228869891214359846982691595135478503359869427677298704934920614413780107576527586921410374719195252775450722532018044125533466301132716089286286409333919067279796220074708260724959106545558205182455149365378989615261107577591265514709355880445110119673232845666758018704944727049179067322581449511955916112741011015409617965142075926748448121112013987537108145969271960339232741135991504388524480945463095775611989859610538392992063458382419564288607811601631907806210606694939660440641284446555210838665516808900184386399258366643777815042310905367941043116651146925782439727282662711601692996944142968745006229157144977636236041141654613266262144575581776726351498038274036102369299884916333623218953824162973780257659041146896647036515823615969319450103718428230831148243362314048037546524673964716710287479679155788861945903767108597546609439799463260514876514528966511335265517098161156720289934549720148611932334499040604919838999480409463366228634409512681932451339755913362005441957422602193948988448358195495175043592920725847951381363036848404271786952910673217674662101285900449250319151993354936913871355519864411285301307882250777246417338161967117749209940027465020588919047813014707075805500025513385031363687250978223556960010529297801434940566619595521840428376472219198672743778716550161383343810102054203996151029484550648073416977239943123313061287546391892423641264628720073440117923473129742680141458269346323417397356794128285488970184879464405586323662261499371438127770142456218000846922641577356369037119908404756593835420225071848397641526048457578838240291227923209519623355394530036556537006021996639448383635080155730990233454755673528824055356004841634420887577642820371091911854847352488431779526841533250599838452110771903755502647081729527970034776409123665740614172729893334347882366446842206030853608281711925344554753943915755818820899319241157096759726186696825604974381783610229338581075198681277713456959909415303786597719787101423539355649616026604620177644697228493375530631701842662432071898535108003968954089810897072736294151951908748107727197259539313561866098197358375257944985520235906374970564692734312280963708090084851625800774540984849046831057258279560143185104461162997249401168490907051731422815734514435566500003935816077332760288091769402157975116580848940248417420959441036649509469873043272022549284757193920436021867353968607450110061037502586464339009416768261192577983509015932680369858234199359812805279828631841932609790403830614434912392699754230900840710560770095744138317205395033421659980120567272569674189042460764952898903010278833727814615964426303761533657405523217564751233199414537805256625175888637999348919072676859079719299557830702247173474171204792473557693138032965013616896491625442987875278841742875707197080315001356201505102311591661588138538411419908039904131018044602863624810759303192403813661486962039232965675486519382774022506638372709622336698222948882941334519810425951040232971369577208745148430304299679398153671815712291430567532463148495261493152602181742608385741638727905084190133844143505947019113408822398259308454863089661861355513531613455044338209508992736192488848648919461203653422130675329755793974809199679876931096125321802968642869166955811560140476388184183826376235230232324118034829247809681623776051704907217675296103761044263511155256806433939828098860265810435591503136975993339447574842292153908301056193039090542402776294844668216994738087523076096075460564440606317052115914550580053259118099687829188810064885330597018535422344481979723628347642896456338321446901220866177847809819839874648881107755211584342314866596781076591698835147526384127497744712575706710554515333530160728497454898354673138535899452778275413221547016779184393760116639469964120022401179190414113416808800352789796993501802313137534623762935575252206233635554771401837234373634486110418601473063149573408953017513175504117056443507060591237684546063431098362750890647844663648349096618694850100121159748057857665187892836370240386472667028739197750701220060812018870846794017992939123375249982372593337107857963275114455455181228324175406294376759589711002869023259894385404056884393758101875763701009796297254485197701771620746505342068041057971753782721654290440809687644869681299620883440249630360078748622789271228064823948257377817818833566202154362843919212465346787054712813676238203630622753902086295889855789032265947248775738146146642358208818411768875537495900992163852633102547982209554562957031160648215205562269202477212623672065900177862047955718130323464463613587554282476826221613872956361407853558116185835801846122263822848737522842018430253251257339749176321826004047504184759994225036759475139324213463250655594533985698914014605425498786576129396183682725734569332322460061519794252826585660697743063054425456551900257427419956278909324659598533459900483297295694389133730600921526472787210438690551981739064504428359515460434171886403245056513962082148450958157677037576463883291117010247668914243236778218979034554765499073314485748271365103186297510588775862354884138875255726977733578672787571453130971598933377877646236131622933224176143037657294616995298562515025145036885125824026811986772760658612496828074779499704134700881467009593958499320169809207178281901205609070044755861523774452668787509266628272458366550782701044949616601090715773472803016854603276493006949586722552920760675645482907766466044763371535006926433553487636183763248676420746058311321800626600821959881997058197051576950948130870318445712937896095601462018364748808507103827530089029420217467096707372227080716068656762611991541314108494498725202588203215323991646968255242033726231409326527395308863770332070788775217234435903566399619972635849129699712671491449315480446243092936602127976709398581758375893798372358512658829239583862965664594056180267540433984467608285893062778549667702053423815797699142801919907962951994768592582616398709016881534612988697607075926027369678508076177870132977486099219667953510036599896769551148287348276164666921044516110506565816594236057645687105176348091527248689397505120808611390564245706787058254578138602347910140433692966213189584661851417735071465864163237835379658561732189914687106599579115891618716805648664799726931006660099547077735776448275071630079112239378601321314964708754028719364952468818843550957334762154371151014490081316812846610447829625388527830097350668111432866437351484894295108728580660188592571429479899434946263553529055161620632667654529089641875509086598630812427359566816549223946295470807600386997732933543618501974455972512981685246531990544213893251603550679558037297268866315356785923170935584115458020654528623638903699075292596813165253878219814322078908225548671564825004495273465667573824225160060839372055145956928630756130515564019479213382826843170080906581176377785297015426519373031433902380105366985766401751916302741145654932551550214518436908279388602399813616042058582831605237200607578005994270089054216016531831411128701026995064374902228380070499758904890269961645460194655159880966138081077915155250490666484581053276121682430133639243407291251246442512770072945833351185511230203306480369734288927264377330704901994894888840651256308204242301905478864175536294541568465682700768683638356846420199313846228880035654565661492972038630584777058819134224580734576146372664794161327481676072131641877348276230123331997901327293773866438855384862779984594592040249027249903665919317584605294982738705973191032997052486840405112090183800003483378242013340469745682391142011227085116099447300842057236610416706115719649280087472669335831299141218209119954229967097960235712551362316379430267735373421452467046203339441886226605099260915753703632418709540490076711018969243737459764789212997383878279195714556773593781049711997738982928421524492432620629195318278777516325466043916559589387916284316738189272098362400282017757879881904912401639314621659154803851053955875539533059859719825414040967918200556124079434816735083069644215591434764262562140597193123190072557589763098431210082715860891258420403353596601433822047378051641441096444077011602673291908177394934686546349420451810112211830284019239922739654508802887973362722562809808718307902478235465089993698285720154536198425051497166186432398042477425217808449678021917874104766330641395155399044533151413027917337858018529148501125797307695834467686270492998218023674876511330394293472925494665229786334598815614460505382818682409799688496238819964780021531972044743050796786950813074344436183973460992590538437594959613314723186291737892428620966230236661115593508392251735159990302809031699593605866152168460098627947324296406025293600322346268871746202066888772322664837132995793260781001408428811815342396776453674886445289233612185874883349322904382019157496915825826815881836624860497889543808951191515449613823957602543545246949240345952615493866575553198292350768277251609870408168725140497547419445182868708074623970260280460242179437809150049368477491360911862654446587821456362254156195666407780514045651599255868015973801890142467483655997772822053888934783198022071007170439188067567861727607157194171320848748811947610643728158379135640126794286510484584802987953489202119950461011033919153370993809274092668733299254810069651394302924779969692238599329802937050466529184962498896804329063786740436690057186651371702483435634207871313204214015965672772390815972699414915374774815659255444674521284075409087829498895096359381481551081812260171768687932297115217583221583403938289595593624877541014125163989379105067650332405458998569254345782524787221846415764361540665862356703892540569745669692027667920337912427100914786417231110441069908993110283983239603897272320350320089117570505789774373207528687396631463253523300165914179415112135299762618830926120590801969046795384188003893198568623427409966372265532250030949082820404775639345735401798602391078158904831457790943192033677227340466371716782351719320432309706026070076665338622725748242161011105985680516673357313946817735134488646587846811942010316941148359724891517272628432535039148556047316329153367604657418723137243924371488365151306708081315213789324246163849613480458218287255403400404357906586845595816528915192880312497862190372558284962349129407417674985651118951323271394798488176862410796202444801042779947856165976923181141378152556682208491648632612490703206990818308778478268945447510408871474943303948799678975836562923277900668023600432493280441014950638458123703496589550693635351724600884752790439611186033266119399069404218422963146775024278540765535912856583943712138075954240228159617495063115553628383968264943116929658329236364772238533604294192575827996460990807251599139750620200298509527913056039751158103502219155134019834091834116432979906332291845797913935305182196668569534648303111485806595494555779867205584567658538502208220538340705312850708497194617251552129013381725890612948814765649668355294733960732695636172292002377664180945835815981149869307504750293193127683675476847151710743737756068737902081928248247775683708148347070967038266588274834982859270120618978844642459934005695887624517677493580953384265073011877484257493701223443723997274661373997577131441622446767372671989459072786367063333251566450909914525648869878153605890133505867406352277329356113631055466379636976342321731293052523181956311112039782519420600568995417532881064143175931895151643022639074181204745524973458064891833152335053584167043262931492109423251575702430744519427218101235565784466160280673250399294260909452003214889804342330740305221408138589778283630165153916898857256395808773510234713594977284784875833582731036429219251973255815632731284741720155390560856176809382917256104062619981975093196115950209002329493948989286061598208264666921824329113607557340506363217996870982035883628216974537452680251909417214831716049942819010052743444488341260904897618751000108935974334699705834736019816650661749112137378189256018152187703055672899035145462539395580006424873321376075255414807658117335837667566341610804581036073769003815335464663550044444579962703409926498702199661680135569907236040944618435522660255613804837221891596689236422842281414486800658166906863013090808453618096633168498204832914222536128105046172758461250887211532798672410297790385919784034805902020569962085174098616446388854095359022735538883632711641676767700270061772320440195265172283631850100691180142122533443352722003479798488720556405811659368515154664936919779867979788064955979467724154670382909471199779646292328201152401867849381809368283365577428188561789958303062404434345339083223054567720148199455653561891961918846255408746024620686876630913118543247404000210864326431163255762885636617490312560326005042591268538188435570154844921100071727833091619744500787877632363667566380355434263066468199085694750627358146154128270741972325540879716193383384278096913769615468182078382851944694141810813693608253339946903895355530409499325919548454452132878900449039246632289623118764025427814693216326223815966685966509801376049263273704808205223000935413192603509714492425589737151656274393800088360150381467212152216641580689298307958013218799018757512104768671341661052895731256042291313302084505912067472639796234027262249573617441198754982519892240263372930390516842630501004013364184933264519758059007079036987714233067168447304392861642734179838167184529696391747614378222644223062853780604803292803399045545907118892478891367117248190294188792234326788368835941791798209483190709053031153020640784836127842270912356740615902718388989876002829659345621981214095530841032244483789631713727967020748526832229918939916467861459529149694155395125096073508606625511511939374670283204005159100835939293079059583996876324589374232946597874461306976115783001696254821503831927192488957317389647042185012835455643691016563444666157557112948844986535787326095723869319731115974349361690210668879893847807612696951455919181682133553531787159093787629244262924203116550157069180015759470021118581727675600847111282883541165174123303211113460315746542656096518867312179040054656097680604710452529628227665126914415100916279174785147468090054378047776794120073393941538005120109124736163329256613708427368438962741874438158349521055053871369836760424630604287767174317058836369241202900272097386895852455162965464385782216912100152571930157651891197285419501327185408552629756554927934872413379110845209250359969252776650720161968561656969198416220641389726768522335660181991215561892568733566294161770955966779943099369495881383550669244062080190520328863455165033546024182593690621977785046448171714817191912932755941520230810736411337713920411994589308114110153427019394546137682352696485726207096550458211763739646159643291906176933217760071369641542142190031852336356393537844268729217031490928041057527427121054938633896471854113509541358556642155062644308081931291217595374002792886997004736678135324419691421527874321594360398231500771819186838621309698785863861039733476162115097410312340200768533938989394670700340478571993801937449811810221301631549962511593395643255273613114733827041215433032957407686527695308995832130634776872593421334956831290718781595019283172575623750654136539216976240572951097948756716067179670982843382753305880586030869929401938774701119743803819586951593749139669467374945005589644555666712562630510733923826793204118681285745675959086063513205158481865506920172692097128526055270939814329259870582912383086498396573008865230351110456387415984822421035320309550341996451647906326413960032261003262398871379508230310383667200779755422523460043089961665523031944026335168458833565766244450084080804709739746431098808517431793062939381319156090641950166692293719458812733029687936990659695056231497868936939401034229312558435120649121307367893639517844758964297583723279547957344867655231255371070469684474496545965173686952026871045466741037806239738870161182394348781081495796013464901784009876112943824172388472789423601878290856528286917431905164510186954005706805126173543223129298596158643376511073719871640451945736726864297574434364491292258237553422473701831970691954678298119985760477043101338017252958571051611114161928560055137722757970715506322294747779021129179660106159498512679663679288794848944018671995825267624293166217710779472714973077614656930140039352443703417547912085162513697219167936996017985456892982930703779229160523122030506215611957028136318868402691134086326451083817708704312735507396282285731976548146205257755603396940259733086990451640664544171291642535693538261050388751889372381111229405875422498562097774835068943014534754755248549284690259770771847572259428588471390733988303594242465468828157907926137871246425093487930811521248965166892330255069301018667015407960248161865202969236543479629626282498481152488947207487027895529382630436181874782431718875308316902190576106555644702173890171474940298906274170383184629794630114990214690195433725774672060281194534031591037940701697070732434022249116190114647388588242793156844525326310778645421394217047468292974564743261357029066533035587407731486954823593322052763003658447532925063700391671670423785152795211696638226140013588368625912097504807009249922364804628545672635174942792087807277629275768074810950912157485951651492240218009406669356110394474123733574660461411214447063621503998519638106051778884437887330168095536537466826284542343500019528773286044623047202404520792180012798141678738958126329981602503596469769741562584028290806292532101125638941638480564552369996133226859954294926044099216051717063015038722148780012482248880031833236352082281595336112488632387235229854228507410873688442648509704327486345571829455099884815143824918028586473135299143230662561411748642856696556780004894329996565880388979250560144592445156522763864339351164381788302947146154300400207749376505786842713843594389578825479072117563363885701578282192204912208756937414247341781802106679970178236328503051896292700596459850211481433913469650940540945285355296702803861358443921182035861961053930364297606484223477146553097867199331838027262843743720835518361837386078297580865953335332227399647326352695656228756537622590274555740433954209005558540726000535917275870551523951288021084079262787277908904786268898089229769448219149624575099902764141233069035521917433163644573484093473743287508551780267712644958682544622270080225776045124203347492976987999404858906273653149551351304922482808244616540410029053141701167401679966130722395425637478361863664867508777919001178179597902804230539322264922976069230472176599973012841372359983960022421537217036321515187032170774873235950627324098494351825806508957795952031904811781277765200884606797211386607690710197639922339232383668562535563821018919259982062985559117900134624810170181935162603553581704645574464898548773732934643796273384044894809549111868823038278301853166061558275670122793519041491831787983582866630887979548539410093476257238961008030030341101358778497455270990531538488310744859023786727207713495847314221195438867970669455431369355024735342778049377643026017702290814600396939895722723117270808648950517470224622645650276942386832174616653028398722589513523670672046248861339141882049742908914345792206145786303879617642334863476965780714830554159580191046532779936859471053164659908792248432458022065303319768671025985399871913739472783848823977461915385357281600328101991541707146185807609567130026921866847579450303899025356463157860644914356158041701574242630746504345153345012407725698521225645448580633904048205970136693791041807454267698539051676560336264264830356282882854229787326890203696596582935449936032025596134842139450555331488339144241807061233314600766994710091166479769537904698905500096273869512603054698210710754513143390114980155336338047780492734150273624388995490025272305349505501388225790822811619598741654849284496282331122404467989709247868593200137049666003641871444991587151287170254797704462850453475865686189209641541441847877150069294410478190111667644316414912137147239843748206276084723935848478024307350868651808618610722114512099219033641756905227542031848222293165173551079674933329913037574775898239263905435196491778704315816829352657875999673841143911495931356555635329908622667264463436266369818461446834777894766888262488201691220436111911948884685143824578496012143301027240938027447311110495060201673959788342868609477015314736686983427712410295837601596107654493339882461286316148300321488771279043882279316559225722477411835712238412993590818081941305802216105877088654809952542002879425326288950130010543357859667611705303265381624766350759693765868420085997857736604265748392091235078491350220500830149376847846215737399462220101110618699900339164408653741438632477727252037124185286163847054893692866885643437010065219091107908073454325434087749655150414403124135214818432716301039751300234796264078553636020805387100819305926548462558123143033588219160724714176009739969868080777147413600443440863158325293925275211882654950251918667193275016958579137384834932728931938201089055962804479369288212790570664606235265017929843638176486579892871628430362035989762784796856327143121488567471612909037287855715806293269921782211073158219092832715272093116627439451897202390556030363781199572116569113454996656040940942813625592948939296646030955783077381114078790290443941565527637320823515220486380888831190417016462162195644011788768378778213510136312062835352455941896369032581511821733823268608232654171774572883524433653800268774868383373358070175696449265734241955955073394629511878842682480259025638895721568504509035562733586560160510548620384061192490234426561833029670161600348160112051575258912904518738476439663572902038248893289753994898304317561098156250952379722115554111369937247844872301031639225882359369461093514482271871934726215433871554577984009314554173893078519205596975451406570654671138147157696656418742020732368133288104314892884282228475708672503485622605963804126389414003084225865373127891661652148315125581565549046721073059973143147867249435165222287339242425297864656410883320635466890763250357108702483749259122388252424282787032348311327138464621237750415929664491447707255019074702355343983862250449912755541659518047336867705911557260964678212783359675722055432575081322118917559317060602709607062295305705228475628687447965758942732139263979797963859712251232604879237656037444976994650929902061443286921638487149540250847721210290570622007066024404076958285666418019066407229263079474775575952514120728772887978191269555623136265037079792000106740238256628945716879109287157522653146458197007333539539019238021273338351464850828914105103216542156177937676949904291225608873598467069647093424525910099803640385919524563893323666217090884436880887257141906258834628083590648106518853232401586897249270522562501413630675282783710607306637520781436445031895314437323837030902300064269624116851344965554834690644036546172870783675967954475377477712478457505489243905958491726203475736551566507989455991477312165142863977971262405244244120387309485108191747327391530339501551675222022568042276429801295497140264956025536072197764143043006630348356524782483804167506254227376602230863995744464969623018618398510339386646434261078410195994388791768915261604714178060934348493211198499973377939658667616062444510406994161776179117688199590924998262718527747522348130988149370235934905212560264803712103905235885944974625043070057767701045130511807125333287757306210821884544397428733728071388505311421430105142553428169271404995225677250952787035887874972254637496996227436482321001840375254495063712694849139747963091194773241446372974127325762555623557475644083397161366743674661204008442486990404447002705020626114217530616661524949313033223833423973587065708460286177015366666567549993105783110680935913173195200261737298797885034045709467803973505941238755118811852254199174351877101679316966257028025616023430727783168479156749794574327388536198385485536049256947103640110107264155137923454864527210813691441256460146961331455541101823272025913318583167219104075088107317725238935463070901983942563276144035694106089036232019600025673744781057743673955193410490885154716325421785000605255825117303570308926449207224380319000337468337672543848206826395131209029764129481073893263886580587452087089742380896556247113047345064846528965912546105983798958014990248562504601111946445880782926504824451655190988173680272645672302156584532537954906168223220193114260896333752025282010266456970296747715376397539864491557435292204516902291275292073329814796087406197441920515127890791104910579569004421636480290894410916010172389461237053704064274827493073371653319135642753251127379086981179507868296392999168292983841854282631609065693847315927530183495795128514958657348093777658434900136259044841550530035977715519574916115561260496633759805004435464375912981512482320442893777737791572995416947131368879682668084417266383408702190854559590060047167850539458438359865550407432398519745965623737224557890107663162431759924567449723746053482353913915955054002400759798987542402487175416250650457788680245396004155879713663649116085992158801532117870525831357967868181075543945607392873968505406734900148912642836379604510012230823833775557191031089302886902125965239943012521747403677545951496133007777864964695488708971041970865561233009270471549284893188001520807261519468057713814027939085133816421395152683565193239736932103562603494331042249787916948519835886719584629899174716326174035717518765772925487644770113312983279635818833084865461111981855070639329604064984056160282745138722832406514881576410964456937019340311080930957073428064740258506769322860972495212145943606973687675644741407373825224124781048074281047032528142359820902504543218041487664138270338032025374819937026319971877098926612124072872865605085739047187433443201434995822951849837526094481623097278384206588068990770703961503312303145810177257666036426869340012845013405751213377813681302644140755603122148731071590853322334985867957193925905464422874910777781807744053009991721937354969038040887875867785445606369608087694340705515414115751112471996904430750294686562432981157244739661427563263560301647731174600932984372586691823241299611404147013724356190898479029947290640954403276128045528504951660513191564109824518068897634408658575290298275589430174765837135231585188289996344430373068673712113408315260831315561365635376825446072856643070534709989845364443882263239993350639085710618758344207212854494469337811348473017417063534029984081477819780507150062639490934517487534146708527698503193686272285231881536375714535690320193962374291715772718485774211773016961897830425739659110335774361184645318980758880839066733784008749872916592233566797783789755209920519749257375672042872861905942648805201440892635218991766434891778807663332361278826588125608012064271057423823620088618584139009616484275613706753567353851537471430118330246900156352629613127482141942143872077330883678957726257632886376521200860378661708944255525871648867172915090982707311214202963643932395279427132507781730001990134501454304061238412943896744334605218295700609710148390145951023944073392803024170649775398331824138799256211607362988904048103580177301541042592195319187020918642112040752472007856630235118142453559553646326143577699920594332689111356582342021694553387129136631493134466548364059438016197880001035151666732516814559316375405227292051365383019132886681421837339399084802788979794518332791483019157581851357732759054106213621989373117545584355315111914787227256781089215844058758981183071783857136292871218438845770121288227975543879004694275082899971866826750396321161226263556159562181024919563007525621623053504670475871630195631165710442766094306032548569725970264235559710521514336234820392694100608946746125078471570618859990793939413917584022075738871875910731653340110709547441042816578316241942170102190688956160807889522530379645365603702889904889901670306854985635412040024458171655271889105542222521899351409617408516456410664494766143852511818610448110184643837769968451574456144031473063976058908559358736704130348944310111702517741255394868781868055576241488172731450876855452322798797450838225520148574088776860081667486124729593958359970354543130473807197082261657562244222795513260961854084996513459124136105504987177267095206994096507764709879650964997745980261122442645666919564533603884023146503946902973677718844257331866080751035015900773356016929215387652783702005346743081388464696665131320856900304535274652526079681680381886507445185435619460383154182833237939410155469903415640320107626088092327455506466236592966686190443721826871297404252570216401467711767397399495914945471014474668511359139421377633034973205388598229354788950463516125864365057614563332872359798730031817107426839975632784019415479498046045858480867549719014695159435277759189703786693600911116545117192024580564918523753780068199025538412192669383471967842908734800934037213852788678374876841884903212684938264729428186336157905561640475116412309949345265564450364766004715401888966491396893283046845092366846090512302306567472210901002525658542277544789626031493124968724937232011980333225894675536103652447120483019327528010568040484415443808436538950697333018912142641472361947969971169775416679218872539596502787128706037271458435899712813023412518694806701783415441706794081306721654893001221304780291195219574624429334714545299381523329801897277576471962418775392912537917863212049904429401734093885453991280783094176815673262240239394418273961814213919949926006977686840242285105532589809232342373387913331127003867789735688078731526355388607900094745354937226877009805140673419727524232328819726358925196440282580733555270249926378916694490033147753693983858310122057298784358366294305388092628923364902981241269065448719249997509096566411327650613630210749553263504656699105874984720383773334969329186953990330102998242206865561533166218167567546069124344820168315138637394578277749263440745752895635156405817212667673670676862992781688276077132544017522733007536546553294928130434307828934481206346553204092057744027202491511294329668651415853417725822752040423363749039048794366085092613985921259234358983830645150643615881204936233239572156118439786878008814346548573081258264805048886876045058420407936070478095945038223651885151963825711670055719578476237888965071022649438266681337733944040374312075326277503628342230614839337341576017417209435394343561326437165336873948123555962902584270708013959318003293437782889388756554165456839297426045523360345566617862985209939420445943234388106548027282194085718648304109635606044474742574752414827534786364310969780091036352025974081038447820983781874916555624412206285326740487751646344614125877379870631437131765447948748571395971688935074714422953786403247758663447209085421048730594219691411362611220914013641471705876359788927272574432873066259563666421395170597963239403617051496631898631217898299882915272416060183769533471908756116013550841071388529250766717326113434073893757932702667501152419408939055326681091835225566241820642896902689345159774065404375771418177475383947984352426816084386887137240116818451583101322060632659911165032286532706015179386554986886286852157007594307261657050369404244396884858385249532199398023589291088689511099242335075448913332816833199332300512919199392968899206291850959367435301101494407681252226358300845862608031967495123330350438527895814919663651748979638117748627222856341901365877814061989617138958853296119781824064230074457730678800008403530730326654671195441242517400916162542135590731625872917069432489514410364485255840390135909365393431879825422842161806758035806023151818222021945069048302647917679822608377463163441492390312215881696287420218850818130347127230826219986733489720931676935766809566828667318469927775427880222376921811485718466674025407472669929422366885027108892931054500018022674258558923898021461840801387427857582506481470768759292936862131484459744871452572201046558261365114429428371677813449726394775692702276523939408376613904494107879010292068835983111966478358811247536836573231833192937600782404041041361978896777848129595039245799355583492113098613228964500825081400300192371088184363405985599574297565926049673205965216367586596022599305234242679406311932147958279821450776802029835868000868047381209753640963123514586694415102357376908969861073089860688428959537032672916727360070164848190106721302507345323103470922805456217436085588112144742769476335172792109625512500263601577197828141647046492901116542952436494329481109881611752428158388309434940337403525336630049084615190941779549495896883847507990787278373077243564741931422982866659428963355678117943011454846412120792608310513354509797640106931896454259818791324384489582184367603527885120948457260325177087926200664516034539816959869594853431220823269516317050338315070509905705591009332433778145263109737019141336672803310354590466673970933474533073925559773546371351745785915572676656273779739824948731601234098653994196846037777979286191693599365935693073633753548309779563515974262495872855367862257793658103335596658726585406633215872537585993759398977132701904948866722364171154902193857658276615342161845753139474203408059400769503328408392457032207351471959683046167960828409711659731748627292830589283097994241225783159770831592466099868058998730194629504396782294200822188433776664509221297689372678045495555601648061756657891380254484113615905776887697132259358253252521923449598235071237061491743250385716433062631779611107455620898512685983628156104542202358691422735520135548690005585503749414209251708056065190211892694690327722905422347989832866852013525079964508736672411890775178450606682532864086635680221449988883496303673703416913245711501630410312068331112680760190737034339572560120623413186572170790210394835576708984718365115218457576015480555781542937378564234548754524428174519829763692326085817474176246132560227043583448869422739141783805941750222973825523272166370446205773349140087480456615365767436838567386588054807302337463187652179979721098588093223686813432554874424925501036979680611010997655223837176645456196719931330136213646988843788544740913236491398661152149160159002852988923654894183504447950827607411864673320253685987027493059009786197335543817710077934985220740703245703998157206367056058342424044070494559282149085269541083586535560438393450233382140896767155856013505978028844142683310107116171251737070804930280368742878058457770012516380802545281793890618312238369550772349252240049052792429078204411587617566575283913171876206997937248473380322934355759775461898412313640382306691653479975878743841116003649184534330982923253632028017171531891881346729584871219635034725950715133245535639941398388258323887249746549877950102781792672681777468923213981142389305257817779206012398725435541008587787238777956033808348181669023326768765673445738852777687176686335183650485732251339640380333456553553818239008858470663244004389569044162313035044585928586269389463324726561262609840485034006932182755065654729737987985023781218180046845181718824694038483554118543731683568314922139187288034271204009277526942508694355926418068829782511925934957900758481128966302156177284739958023343104531245280521244633651552518807978507040219251441929253728185647438370137919098064224685373127263224968419909985406102530864101260622928613794354973935722237497207666710778575085566063992989182188349172256743623679248016969588383519406203319957448911749307202033694680096905225912319399476872692856407265146021225613371812699028668468240000182628393841385531770492235929390613626789661309014779959746934119626335372606267078250710896954587223103068410739974334196508993129871913554535780465262472240282301756061246822115768509760836508727225741113740488792250485381514686131521414789168971737414694192574164037739756953020420254150380545336049256350626350544706125693397523824274653264283813630744199707701768152091405421960585864522428386580931448315502651787691821513897910765394101461523101126749495399267909005633997481457440407904515694463678694678478492141796694802435827937335634514861368593085142005688570357714543644130987145251984742069251775739258855038114735808273985092576163488275952718416419530439459499034523375865196551102760975625323868109896534784082916837835028675384326358051046624144982478924187945975642267078808278413144284886535814734619344528566498146611125364977176353973244709751367086727389850489112533137077376494641914462975910357296273530449973208527447562096912335721389227959115552994185726140303340201194202609790718218312454796158634306066822794651230634137969432652071068267033922443751332599734758473958923819453415673947186934244339732312740020775569797017010385174649840059948882944707618806391822734425782128829124062563956186671105963024433537917750274600639665698884070041450589822545716362227847964084975925260312834144456542703551192569330158045407763295335710166126838790550482780563128350327883330724940259690123946138441957797335382544145004587008658212746003987236926527478723288883950592202414500911563832032522760533706139297103923777641276550447234433202548239676218096046710168037916491230763228675544212786943214889689782299871535858381248199428734541272720533890555978243425879946102010910244384138603555405174957936102679441469545122312933169481383300083222482392323082917478718868852126772448652066529432157226841460688452389967307983978349674044305129428910775217476515395041383955430530438607285278902252048357244853320965442254845332300304588337468732434638078697124358456726833824739760147735408017385312434529397656290076207192361773203088512759130251440804476017915626786948846970604938629895128882808557942931814504949177121592908264164991145655863248030405521071028097586232239425608709497589125451132988224140760336140962268022904806748157765807532940458404927433436032347667236988160189560336484535464950061533290411589966790995097974519573459175046789146610239595142097188037434503944646164209104746079574143263023682465934282470403024266824798948688778615912210761087971678229230338685462636940008876633138794444778563984533219206000177113149930565310280103824421792960458126713999912471266450255279963702272962196817719945040800164997011434955834200296483967305429835117989660830673999523561201825564776073361348183131461201297411224920273472856047512617410615087156688089806760701551471362092344096966371351212202360465275240081700404145732793280893347221484706034977946081477781999660628611716487000441016690583400685664238418249554415753823484299774826405685529863384605150246548215129038824244237670673002584880183938944795469565514896110028579211613067696138750620712333530339990750700353812794687153700230212411336174231667436477076017903418631836203143947051846333604845150353186728642092357518862319504007422538906307605303213020379485308474772815432718136049757505528351826334885238641004013789033709290245653369618801476662779092345109624669341504788291888724684500569770153388992882941207802103792284753538801080768297878918025046252260576771985031974458574899679238295915482576998043514590031141306314607150560580074549032536899145896994781864798244601450237393790563691213821953834867599935671140854218899064258186855688443954531466253180928139824030162763270185882525188377167170832346292492674608794090476332663872636565301425477474669776931007929538746134222187451774728028309591816793979425500177514797135757934748574711963441453831155525385728986134307114627890846345442555657846029830120444488894083973445792054499559336166535722525840403934592230744525597265585879514295682538090066292645256966639193747800398056877479781173926872013412562292418983815127648174426763818460943502902397619501039585929433549208731766073497782302531216714551709465107031153178845398235299160426438961508830088274411976580950238713599274200562738638913949816247768159350573003614621986336681597185559537846178808039207357021101245961262653015109003484973608659777620610003791274526188312263501064623825227212009156343250866301883725565805762900374972923018514408074764537949186467482606879814616309926788547765688240763244538760844337696104283202986008330890733444219660977312847884977354159524850649301362039258564076631085796165194557537918319662073387031152136333062559204189082380615865978202064721104057089805639725216071511958156379913509014925315892512390903000015298605316671760255107051668722012577349371638317991842269270667172516686645060336863460108029900623632430646737481175377220156282580389421475323889808997949306947575875337489873749537449988788136756260156869176014990929071600424695502019972450394982441311615463211684597648912937343135091040286067777793942262656833385568361718169350435922387254861553964690912281175076107941532843646197529160326825525980470841139479018629662737129220758624777453431314950594335530885758121035893632231368562995656806639783193254703905138184845897988633942335087139367411231011676708561675700604785136128967326992169166937081400726503025985130943866357802536934984796141088544457649361157913080610982189599527505385239480970957414170694026994984792227644733759239705534923852096953640692927610812062034524348572066660279901293086715778137488303459525544017606367515471841963605233464479623468396830096577354715920516280878593142635621598871420586680817314447750137554738931354563588606708335809854174012742886773350463467905559771474496570133874065815994817347980069280107325326306237053902975425520518709278668964616261212226878764692786292150746211816656075325587443398814817545123288507196548195265351169431699436658826274691590308142534135004301250594184292615978234042004233444263679087314562139674034745136280530864329402786198330336168516681585878204468020850575085483292032273018000195824423215943635722603474890067152284723943331078706349528234474971365761531871510178820461386722850446979459372889188809866656018515751061855148272515186927936012997720999152717019546626319075718834580931867171963446949839036172181161899720092835350855872372816678746325800707577944427178684959457154407472498544102714217907397113326474094648868043302881666467483420130353425895524327825922253753725712548857688273742733727832190701562612207256634315365003575366739938622186807653925618701576175100423811378577131101577946514603148047703874700492956871903046755842704760679131993198256373573750405381169495485923134319161372462242712711422678789666685077672793491415281530267383765047791079356823075036174025971548906422318875069936474073906111867842924307351959528902148008721781349339802439426404888611523813270844035940459214163768492447052099036748405933684397969287270114131003858002229449627496877524747714769384033269036139884208101379403533395865279336047336395912392944524006685286003997912323141565704503450290797913442407543269489206501865635487619708632103961502380116321064624644906607061703682799824204603369924512394562156854960811530383718079413319314204484230893793316148322457732670772688301160078185209025239051071874003338693532525415422601717208725587229235782268438164027715993008154170480898271110685535293475843738203465237493647229513180082185573419786222342752025532361104159339281742501772674458979610368051859654672590597260559913379533724285986191137837668417662128038436826950998041678018240769583972003118351865592797659841438324772214799134646526158049410240234180865648563092648299325024835742449259786550910469731359028694379163323146100565387450419869590094524784400346332838596033724309243276467868156231057711886400035037678509592629595195221545723067518147330551244154550576536967334650069826382822187802511872285016722685683751679900796615690197592734168006967439022629381868467103124736274983360911718459475078602509490469458943827104344981613574631226295707837093535736650270195788447912615530495710693694365193656298876569944851505063371863268794224622248542305055673817067594618824661994776616714168700208820839183446456093217101391017297652397554157745052183907099145145186819064726843800936320555262857889165164725511154480351109320684796049953807838654165856565867983146361913250591795120762491048506134446358169401139143248621803004442113825181868492710110404063449352568535054693477883099774186043876511677970412627250843807084202278054167187859936752731999496435341848688351434884521134294247653007352387772469758021447538397553221382889539463158044526028774244187171725785664473729166353752070588107700164903725369480943791404843323496246922657481672126012126825541900037715634632135036215431220411275449689586822624196346481159187694247758132083068791774769674049256286134248587487905996808883813520227181146129407986875210594233330520777549478656976324575226559313064964225463302931650583994636517705722084244849638626602988971729231215878905996820393684699898612604121469082248542863845890858503938008966198496102609430095974887755249507061878962499905338653339274786721096090351689997303298044509505679335381760736361297759840587430425123688507001678280962975565341078900450370024450770700233725578140240689747429170538988190385445866453861987231565615941394533650166183828811144758020773459001153611497213767657295699705655979473978286669195858931845269955360158140469054492855014007113763199712971415047025381376690024893285064992013544759323765942793577052142195232997763789767497370153856037443371910123157773798264425470011197272341227468693855506972803723258054850388502777524060836292017687477745367840069782182195415965075621207702878001205896825280612502606102498574051254191100817282251468227873569677751975704572005025746275298368819852685128062117019477332183103493476703664778333674687245082907281617045737556737441445782426957848776432534412662041694060788245439888963727272736129510376958281037516019234497383494358354753260067537053305444664768243094687639667664411772395209582228466664941638467488577670558117475422244052060480837072199202054472454730144641725681449106775976642339736762953339811578241527948602163196683211195964456074976362513758186622456472115351192014986105125306846375169235290539222764657011470881948200418819911994001202134277448068992206413137758013255487304260727086131196584077078700854418834672497942941877871128924866110522204033773855577075479604759893939675914452132262614097861218914944107247763211725575652592704031286748597261083283713233459022087118042868135919644617060618523971346762588599182589321435894099914618463454803994314372946604984991968461588706316036105581672618709490342475625942608178523847028086709111838581632220720286922167040861583171793458877945255335548469718025080905304309593866420417818592516287446876999429330313274914434950316919430940082035826654885021810956485530038639534237574434986609881853143737267929357814773359460911706823745344681444422799608485610528330836425984113182138569601434826468543104321347374614672681066968538773558226190331869056891841663187034476531624661408568514520326644817373766307582063704008136934498055653991807750483094317267310783748079521101665466848540166534117267529695140858351357631529167240815873315130201242424165617313214412349350167835943731622144478153769407496780039137406950743252863077946271509096543080910778533488172482884171161195726010255349717384492491150498923050395713760908247864147434840397443800522868849324284641126268339731695959007807803532410377471189159063030274192930356168242927745048114083679795142226588604078599999596228356934884743494907066155205587297576282838305728413413418182890402045890967571569793460578322658047067136217835007607619971750004730193258310410877953481132150759401352053045695752580877884024581932215609244494717294168610935684221487686616285762121264301877346729286274759717135982629392795715588129587706979242093797806306124343951619310311575502276872685392980860204699868267467492573424176927817959329306201692877430839303536397209475040000538245238382643219006260774189329691324246144161600705103832841409558085750750165672330425449622795643221310277846202275942089666421938257067675684237836421342501434232481989328082938303474713167806549885770084562014290519587643416176621432093370600876408754591982272813499867482352499271562292786127243977123452619407309112926291005252628911585790171305095789100977759042037976991270149781413344942125381551743442828468538078857860618599784782121732469297034824593316246990530848113930850711859023225140552985582577804277556431800426890434569117700354128205946495725437394248832731484207562831191971509565948007792104149797638398929640609872992835400274046544704973836788027347711234620623197731185200822400966898721004779206027927003112976281568035029331594600891147110138223266861069256031551094050797672712372468717415895402749086971527364099458207939736748818320342546293473005629279186153139248709670209570603058264876435628749054291668040191189783140496527445882552057105159253136465922065684258204879161834418436522097250950275999470775312876572376050836931868217634493857795000870024266875266501638531320485226583411709923805003088803224791268653138301479961194135384499033668798421927666475307137086845670494510050627739627162399086956543595228820782032424248605953837094413837360648001972606486673082330244794432113237185958550479879311652705016238665622808344608081696602760501058264790568937152009555909803017886417743266719654418837566090218452593019737666400593568762781217191781984449421188314038036824562471886424107757743097852463288106279131897300915270650886797825149114680646992793198689092407733431628260965314689231674046153391077735052311452004291446446361757986207030031575041665755290517265214450978737724936061052203685463718355829097176980227929083880982910916979883744828626832365604569493026825583642580573947779347810156494882384583141763812603183948478938501461854503324893150955949232054817001453540073978519261388923697165828375030702664809656326363526330979490668908567248277496043757446147003087674119486143364554143485849447712500723992648361958537699254939016934653203881664208107737182859012002222688146085816718893350339644280109853085593991837002021715672059873416712897528615234200888263956875043139464257513117943154282840316516004978973462610255423111470514500060538322612853710920536253723944569294032774011820428140883945351373349991130701969392415973524821997627652267111059512909237681071776674152629622064330100540415361107957400589092726597295825191065519178374047765727312005428965573048213821966595643283038771653244356796326056380703343237100193685934248551114391541241695667002809142939555860874442541848455476866635183636848653697118184082183682927593793584298270491415254464628524702610772107208667137860942356389747988449141606804890587890445300348397556942055596795880058379592812972404481582495085856542737265487040621453952097890746582230336390031149913299841220318507733602388277930905425451259107661695999688731733831942579365671148040075158247260936793920105705878163773840023024157716638649175807479645376159499211516710937469706532711009399056064620540574575403258800025112927134687276194849927102434753111015214258878200928481562823778918215584033119950912546609664316075145894029129602849057340812652559876033712190148288476230665170393629836046752156014484560206821996647530781733046153576209112176518023950259881778963164302840135513981838113533001659014548886216336357093573338221339405701082887954813074172020124251306412491425439276389564647220246863331617875768880197778937559938979371526467698711530314510118104934360850690132162424939255938441547525156057388085627510503293317957520934463247082857797649957826890591063368180547719696233405879890967914269571313627058727460288916671406211745311398296651774810942649704331749927575483975590359823203221965061410245505192170080711113728477750159993426057831607454342996597845546232846014687905376522291205583955069958523714237420614837364392845368691181517749016814992333107235974299330102906416443759365023038764681992204331674344062892520429895805502874089302074671730833605024571987828491090383050862759474344235131249032391808827497928400252525570448799507042701295103602273513622252472101939439420190036715797955323408571097240858863895735831687412989646647804177212003142704074396538624198151400625648878233692136717479990762031758574077577260242321551547449023285267291927346792782629678909059545613003830375463900853184190204077399040606499117931369325214225024142579278556245677577833025978412930414164047271294045177979118889229283180775002493360340572019585486194929443343728978304693416303218564735061122085830825760898373227874106122858472220839491573392850905819963552295731176639863279080569779484382775632930100586403717826687075877698279986481955652155067615632984048923162649889585382534552483625941604492867444496487858568004684434880569025840537562773164499230067381381291794679108817382370380497095143364083518043621896455352171631740263931510351130375719967797291128730248684875486088616512747240883305863538112017640764820651452639804724657072696435160270561967118844410531512223287831494605054447472011986861194868169298265993401959997271287919650213801177474172784176548183565667354778394511195558019820682539430094732934549382994167331205306021039158518567601015396927500441224327626626516501774733863468728242120960807447678681813606087931454403809708659338964765685881758222433317657532015013018838372688534052039782107163935223532833304233307914942646264088730335767824081479159398364103435704726922865297954756219643702333904935087692751692814285871120397240225575627961369658643836683840882802992627420422236352242928971036254816287603353963611850079185474942877151068520264533646202227878373541956942659665109271863261663122990804710992106752614174961415843956853847252789214445397981877343329518022061629388759258338920056634503067312586202125314403781664712663021999508688881957069502367290357871343426618028023208464757240078812764980134593138576949833840507356278598997329967362733558722494007721661288516273565617521099279025146521616237251740191010035421613498370916270137315722143351451216620988128172242343463337224369448991819461667371760082540711827694194982267218310223180396215445531493722891220893961211737108765090838349247096721416096457999587328598229973197635858049909648947766742228211137897254579027666733148143539985801158140680964632354322893293552587117323946636627889336425420367582829335918160971955664920201085919956649719433102447087785808523459743884758194362278006031028663291213774903780326610401698391620369335975180570729374544768643778154505876271053213143549791086304315005079899261814318454394314016402712381802228734580949437908337375145465659921832234454972286861871673575529584545363224838350319521604134663810535029688984572284889707244044057013673842748720122414224063306911720301696990856170538787717209056020543640486620482148671087341207697235303053285512290894238588645662792641196815196246982110888453072103222013014217092048520650535417137847712058641054714627407953583573271809884592984616209912253345000252586508537943782131647059584290461523423642376142699152019515920640255931804825815704322766565164942722365172525522735215119231474382006799156100029504605878771062651925841159329299056905399808860289612139029433345398733168460990880403467901225945399606870404567575617300994538384632771092522854645607864057736229549366061113800984386862010345154185287442942822451354226670521152580007991390403870335211412506936425839411104293171574754499461033719456767236673182858474566176548889521594514206742254784845469615871465922831398886406419547385560063995327240664116559035815656164096704822890063375825680380168837399187659214257421903391438198888964121402388159750965330564950506353921424342939262245116847013288765988363112583803658906190002231460106046933895412746551073592300398426544654802466843688910873128030974401847880891643834051651078015522746113851185447649847586638969198922477131547553613103013729154923588166242226567695867414045160005218006038499764198014831392284334970005127019449571044974815692121673054349361459765437485411761115837629537649222258569798412053590692945752236710499624649572531559110835847632186847347057538364146371643315955299262988721974946036149828052431966801394040718422060344017673903775592701088220189104906592291539323130214962974563379225990302449675716896477996481470838526376060492193386390097751549816385973800112956592074019989744412273468773511983266834609220534970084979260943842708148036119896583306551983704346713847703463055328073891027479846810269235231958612202510345277424427732070527631114341005296535849639263205242277054413935237157618626930090575818891575852129368244758270255385976287703538406687061971476467310419465383701264750792950472058932925896858026927644810245244906436415254410189916242546894152449008128531374470375603362186536738195645777318135622144150472926037582413164076289807121707862123339510823514951047027590707199439515278167276072609224202653177945577006320744850116896911853911510994203171504667001321271853092527506017880448317275075340068814348380721733760246999721047436478094461615915435711002082347329495518948105151698976890027720805478295115557289821638589166481039912974507689150616783672286109945786366406367553764887061097371549662320339476488574974156192096303977151813930231926773558352220322072555469787224303417131779590351332062111483232120710168207128037228533446345298826762104381689531013594320549076218494077269750065221115515893164526055248673980965583667795178663470084402066349096288745008167361772861777819847321488448633448371314848917045946121556201211472345011332765292723810319926893311000113468809105306243614978761440411379966487122501522908547219879753275191111214568752908773761466526452918196460910509174202760583082928033184640744540623481862464052099226568406454043833156873300704657247593957444926329177429846681317444495542137474548221405088437525035701467831848528413586997594070029031754180442638560812481602132255740990524828401934834582343656271412866641307194738524513702839942389005843670774733455572416756386668507325140759152238275427269971094334198951612219758928701554823758816281601022085269163803975758956947877786668316842114758920273826173101078309180936163448199819349577268404531194522454834882466495165357099636966025052106374369029977189905504269211436615461131140566949548398311669659140081064376631515246167810880066773536511267087860774585068679669461580062892778684788562606712442495282068582172022920918712408068556220039204938707868868257349413691876604358909877280529318452728029385051692291423391723884379211264198915153310932984292453040724337317232358204394705523825986157164371121230415173383479016668017669224178619456050288936983284594917570624678324567604819415427725141551107524897371115210111222079398104140201314136389951566634267920533545010086595172009365646893274126081806833868922086970635911726176916316074581616978992716509999967812306351866130342454778008388364061341772323746798756354464788062601367067551838612883890718407262997783428864850335733377214911929742624790916746504917463304520241506745941169749666466878745492684608777227708270507362577033014112245767150138851440965981618300940674708191634734758306773435790439137577364144245236520156114272438814739113095625199100632178368975791248154845577773145441185565401487584444309775157301094628809411599034548181281936685192717641997110992191722075837172996995207767724587462980589055903836740570899368896527033810214577696905548724844198466418066580119946154004957094596785377650699616334822647805729860058100740792097120551254305582057707640478382269231628107443378662302495542356109857640654566948580542312719207710857250420693446872759294345390931115648606946318572283329179226961285554209766268455476385948303312964520488438098267023052166857211605112751626498583249568071936170684656072134481848616669280694019460191811298513330492190800057407063452124063753497653076428241449573586904668405135820281207489046887099344156202574785188387572217908723711065287655057593333885022460866238294573299835435864691735483861330725638448346548337662269757831125807767040576887121861188160818274993455146206068205782799582297690229008629364251008105801753972224172295301580110264713941566076509850851472909421878747427497916427330970564747917128718726272426903192769015628487823324147323173841404534862196800787459913718748134333426152732065145721144379377408280146798308117023918217569258099266615030708270465733958020465850639247482552079500353835697645776931249309877708960480892479510022184480827472926135711288950728462503730205205011674349266660144665188348605866536149826976115842571346080346034340194070419073118073871036747360619489792280256674870025034443763940347317174867976052268201092447898068546133763092254539263037034924440513678162063702465918656072762817979314337004037314520794720265096137058497923110303188439874323779900031253548672519357706472345318385760035592491073187209019703574174530182284011668226054788326784918106173693701713135696442926714896177492254307470535187051232106946115678386463144054186732929910337730698905908916458341692339604220406539345266180494638786689033787503066997317533132797222480501532283514616352090907823054646558409826081142498326293218942845118407010516685691773501243040798658807516603429416236848801362930584676118018398256373771068965343261629954452313853466387721050915629423998403727213782594047704320925674078802494539405607955117956666036281798550929105904403257499240175450970984664115304411217143023491701560818713890621928213000363649690413831144373568454975200785173251707534380873247619514712126884291458326862349807131302725357909925526937660595555474347435347589664094309835082993272150762491124567558270486857482781822824108757436466738495090509529390338334914400709958812976333772736526127322757646959773643276818284822581803863828750770769103684464477802243618333126809339441895232130223321959143970546941610140243921974423336575796537345182442789426635051514396290511778033133640943827226157745437409604432673988250049230596177007559929907820115684399586021130763328008770046892594816940255361470535257742732830683236429738858668043002977829866114221474513870791208525226269167948893613571910746909042253718343119042548259103873766576931111238403376281694781816181096021089429770811338899730438608041755858617246549418926117470390009096779461434385308138654888257868214993012643137371392098779107983972480857265795181358397239511119209760014845123531138212468979711138771520524062549834498776109541684206403121468224255489563920179338755223668795923933958313968030026115725213591104950279838985271014700658034002308296989933925004304220912685290800452602153088131070248349964814703397829401681825230538677473953996164069187301098313638625418929927152996955440898640812072925747637995452617369501939018887685854182610710707237855066369570768552193637491942052541529364559174790377334716530149760511013217938187310667520852135699717969000342160254285115090053953254339232085782738773603867780388377785436158335677876089039155367178169126454039030169051878566513793830200039855612233438586042489132784490315214741721493329217362814795903961532845970116848151799848692581174034369948709930930482069947875475767237565855989672537697936012327025016627169823182289578178583938300721889446892805306853372132514611983925198844568115341733614914386252344891786743490066075912008970542014183060758533728024192141970466029442171236897421872153903393456414340432595642515087819886860517573811258178715045903445428557148423467662238271875385989276892090898553971915294426433877747442975645586675882798245372941375174706235619418701353257376583999285081315194763969262123283698989054007162700752122077518402540653724208798012754204431459924433837921002138420435145658978306658555274213312300841339466205964720218651028912992264718861428808049240495691060588408066878693460727699479191540823084023665252563962395412024850768370684937702295735108212580065334505868381596539255726244715484878252333920739082282414848380089645920874973348966073252168820963423330691251551264229311392067645668308799377705857444059203413124676247108380422817835651661061790222416693302709523397197223879887908462875343552041738768023758007606209230179745920698656350067242329581298364834365416938122728878071196955519550375445993540057590449882589024686300130900324935417406613191205830249774021423310827207821191255503348782095946446544649848135465336006678910783721989314626691876682267579672246896402579879396274600729838051885658343793122784535744421089918999088936924408241326757599111478006243324942051559297508750148834899378049261644251474394472138797124716918522518477216406449704270688429312053025383563512159591790742977481188744857918083906116359041105397171142238241292395960633775078620351327672842557038657324130102503669127601676505311989531495091810374210014284995689737911968392620170375895928144160920291519712374625016544403649243276651490755958143990242568819852978483976910166502643564216432587401166430734837437362537084710176310357953688338008826370340879999344655335450833962180320008542343021444476867862289540876141659902434903773253252421125962349839172136347830654232017150883005969905007606852057730975703587297539871868952527985742882746027478094925875316728113901985736160435263394348176950639302100687355675321928118684148157644221123791277437237317002677002298942805650678314846824182660346996295431863765512725575650138252960467542624657830478455467558091283596608571713938345382958412328366553024108396436553842470012974928348117076182219942919922004623374354871612182850791696805247788432709648362822308860300700265089175905545419003984762256177526245913335081636749378153277502558865459647809345720994813910292044901882932329968541231814910195079707340479690005569629834762706838088463475961362899333308796283442205885742964793488571766242280673847789075652899352965611623798564148984437230947792355073324246189185369256036314521432701652482681926354301342327127238379563336437105782410286775589493282640743506472794070959314892390234293543864867182387619767338917112360297870483455551403523681988173005052722683294153992615655783105300455212065321062487744601143257063213642528565688118525686664943984026170199371182002062349026517955850829253335596297884481267050981413932960868020954943036448060987986538736186043047843007385476009325460536421937561791720558720560515157495400212702124122172572823605945402647305933497943341914373192789424085401271535881461126401185718673778456886345720302183994375435739176984596094476650940893170662487342008229597708948240010855151464587692206512198716307867223685698033022432796067098798786293523229067517062520977362975972374040898019446114712066637231782876462642174574029438208607122934382100046343715839351278488943672728083997883542987847368401118841624928796096316549512227688501585229457806773493885725767753200985245055411968731078505547771762191476521201883955759457944209272954619574056668363410632128920951981710164827119971544418069471495898789995115849326260454823071348818369387680198653299144202063725657721315710360444009002228136842002243454842583817527403481111348563421463259364127760155912525604666433422289731649002345206205055006274187543661869089695136147633779237724101429162491696358774840957654177511912857052838529360089867318643663378633264929032207923977311760319295981143306400592206529845648112747416459653485612743659485025984162269293453987763853554420249362514764972532758896906701324785816422744735960705474080176194270864153103512687731091788735220237727255645584948231747691028212761322478798672799539011106787707137821162615774146609338517906817391961749337402772694718225356275473426585160449214735868774039656130069349713650326164618132270845342499408513008295812755877246676229776134570854542512663509647693336896974852655226922652213861106812555270116445099135056151653841026438333981552690152072290777425182089203085284801623419881383040296925248206058391259938907096968413320884840297289723153679202010003853863905803337789538115247658279480193856703477229131755700401205027636641007821008247767874612497884776287756754455390814889673753599613538754747988309602969613908731144471483836345088298880371321702738205389292609119537041611109080996808451374383848100542378281583180166902642781637574320535702627612610321840556782324754660331373236947240500107080680322364168840018050234219422324700615850375242888603303571020872142906387609511263542253628155282525864291214690126023714119478702473816137736604761784466790992078964714896498303996029082826629976677306383182195229624380372857070107372840558355460497786255299231722177367857803628189085652985440854807131854336328429681896624698109509721465576967243763200745105751606548378759843620153308007493671960926382427819116664225272390047581647835060207709698090671829398935397190923609118063431804975755785179534045791299733483364354583912642022558382994044631130186516141841325987472650372035597769298542819935087614941529376130842438244451515270757709033083245859745010848109634748473324200527708276933567523918384351500915258713692929983832526088765614505502762885638462986195915944138995859106285615980702845840628835510269103983670462142940409963097294077007510398789304025228189977654347485176107338325396996742687457871825624971259968419918929577672471564741059603908935580015882628728951937379302903549582786097067930211367134826704562378785364245261172850380354712551946910863746014574953182085474073979744422534928681963893759196984474346522251927140202677511184842786277928053161018036562102819263454049799150419236699177645348336537450812903897879488564827772794216316830380020126129690826807555805165377107613011914366998410607424256488180718373630103661835781510623131069174012711913084721735932884674077697057413613477380648458274579908200429215308044975652783006374162848774700586476811148234761081129127407629434869239828606552710538020306245029039377409332714212260653182516018506477571618225608819291906654176171354870197402255676863224997429933788257490550934619950515649804161022064489882241649653084980959407887291450874694786970715581201066408057890884605977591168949239578492387764583347356509041139443969251809671000053463996418953281433359136979587616079099163886574850997127553604944737982165168858784749060624090855816633536600028380673547510781558527141961742754186498706075037846835359785622751974075366587690488347276436522008443871368793448224569448467778124151899210060967634912288057493557444895799103447755480143024877228600784245873925170454513126796977153792434503051040667257190278292958002859348268457663954991030718244341874620816067874965057846370680785930160739618636604481538447848819558800060156236791264679975973751930253031029310420719150210254717143440050690180768649291344747196684016452573029102271616401407755115626159122743458935373529407305616701494425340724857862828218379663477410424640201762109266480700668805947872315941769610141663399289139193753882137757275892841556804698674422715614925740743807614370481753811867411812013081857927672104742978091022843789186434561676412373651046086270190456983541142399449152839802635750627248779155349318155978927174539065909046058665372031320577838325471310527437696396993374508096653824456557705181597969772892445354156011041008860727284362894944571104317143863316175475972081018081304822942533003118226341041982754986008171823962990170102925064277294020917193127346545996810847407990886413072835751952586497647905302134265783333240252337607531956407135784340880417110980552777294400133880746296853823003667127605234748204058044085711662119704955775732997056423113919484846423998162407974461411317279819409912808053449915072938136519516100552567919489883848001727779640418048223879359563720973235061904653338801582955850387778297998915748510746831939657126460150748786758441952283322163071364230073838679152840880989324834573158503065372360599288738223702450790332419922486100133987837700699076309448396483865290221530333538136610572944009434105076199504531815906197416166524836724109558553058358924741199000390743151056661109093329587065304767850061514677122180982975681204704443754896112897020253664876729647983528308411261728761145717875756541825829544735910364091132072570719493434743927998157795375680320892184050601642664112871168470227819075962362884936771281431381515362646289692625024117281775737131109438454063285358134598427404266648473395429198498711361842650388301514743273900412654261201992927499072648828489758052636830600743096769894950489886022776410957080324360798362196654627751694375402771574468134843805020028754627855504669112395119246926643020614354454243411018257575034152160830827767796237667932601180076525269228659804074083756561293002616289043340119904390119356333296354531426058203187919493089290102963447653980754523523062953777273229818433114721422828830948668964854472925933460022017314809135881501231568840218798913593702291305151579040474861848916600779514539877855497491599073286868093599589470582299508347573762926467218292881127486322748156181866002290438003116146548087102702863553280522352888202867930091170734737887054183526514113692735151474080547633923277587022442791191300580862028486082766119138002083396773857872480955515686528030247318882738380568403781592449317582418731134145374643690827042768332462108547002510687080472181829732987618701748418887420761642693564411169112485966971568865894424819432878158427842896312422314543654471373005664486107827402675394033044288303042704245589339936054118210206648621576887682619997113968815840299356769569476480233955418189075606068938542375930817058504754182724660253484461578609868952540673359245935993996347080747790867621746419287162008681534432145763921710822388629589724114706115781240050522607696215121044484909160627360394586037258325283680166618494810439873552175761858408861820416843488260319963657719128088342756617296580330908051760231426911411444390413982385708977107407236182150159399310690107282156168129680083769736500789844712938886941673361897275692196304946244546169208551307430882540064351919833418461136558911911914547758531071959854787910355292426231787943259276699401151461189859724964720475433589662832240304127989143654415182986819758653354527299702635469137058324836124084157422747127726227619291735396121375320658921900322040815125621352967461009641830269029380028881011576846337921445937382896628131825503979119293569767572758057420248807840380284555074914676610517979906498541296692869347266751831201149743228890767143037572932367328346603604030441873713363220112798996479972683798543526155518431913013326316491053361684611116235555744200376221754016440823584666147879963048378613913038873085333389213757890941427062544354755374189903165010294951667015398641595249253538341175914773231992245028371516988582232023720302578146709458352467182374058876459174957914978091097328287944967940803570572158488032110069507445907657675892297125173519147754077883444796061822674841506544583420109212469312701494989526743093774547476469470454078849441825723079005736814850915810006989570248705876178338167064835604946274644181269609061645887775612675558721857134505792345596886309434784755060572107809567518580073000924966480462588592528428141661027132133412076747885712852039988024316574158973496449436669349745097512476576035403775056123183775038168563026609890918746972531750194154428669959135250667935289777051434426447508425632552438066908744468732958188300489737443503696437144255891999517881207245839072536337037631554754300334262042467484411278710284128350960738407800800131119463730025289273881652963979963226839098384597812266578218227342608415107304860988176659887963964900871551834077676715266465137039096651741689072754551447006923397412438925140432152731939273787448323348249554652743439295030839891389897202865128812981263725003006331024283982761699239986697696767824861339480773684781671313126509721749938832881630937725210072557471138552747353474269049861072403178954971350807803909597391306382018851606689528079660059214478393084099643580095210039590591754300070610187849976085734403042678873463257963689399956891184444161061395250518843184390635382968722209495389950682461573735441549602505421326121757585935209940294071308934207233572185814077208419187598677372911503912321326316286453680641622164740574920939741303044436490963563457295516264245810463081300844617133765215246469995700279487641733482769150017664446684030845394289880869604142387782377868678130966171566493000158721061299635286015388056485339753680963324760801573753170709025746961832800183296960388521575183872410763306160759176328517576892220394507281175969652208583799056138837213843815619589849869234374747953432432578644744079811329986223880297489180874283100426476723611652773201666819063226315169015865101045468918971196618917966549425692941689858636002242532791662527579469786895497390438293391146244758941724158523000204013160533930465240440417802926780700928871860686352264673741964482238122139081044104060832761373797514811166388365912962972927882385170413546887248507090286406408142176129762255922905542603080285220040865703843862482946648106459840042438819912725547989594664147311085215272758565300082301924519413175200488482467274272245715906448842002964969743921671545258391642526363859047032692264274218716454379988047785436123771582919841678351010834116370978212945922899453128343056122321863430247756517963657953672494963059594874502230746629453134644157658484397288382436102679908827636113415211589113671960488097284429675224526747849153257621313969650792145812402593481981917010040488435952011770312555518816894449059616413854270592389087901769660646035571256959749202655105741745029272077210344096313602535464079711216613680755050968050375049263867625660694810487322608576256504267674083568897331575803944679578448706529329000541775728063225513921938639352538861761663034434372273804514658951066939678295075422222054162333420579903012170494706947684018522461742377175642406247793798350890460109390763576117355375989412623902467445047594413370684935372379087365602634139301971920908208367392286281925136211754636075991351418126097275324945934972394035952841051524027483943717115523545052585641176062126611319106942153442533202363113348323137501739917617897886998047299493140329555499051803996080227427394732830056762580384653415641375034285887281969603578320396683603082861209040088518754678254415182795201947777833695082569296859220155766665241096185963749021405303040204838774153400468217856960396377505497226323576581104477265658987239275529048692207655107848581224628995282339077838575497860141265304899790495053162712418319025341471928024937188851747541411282603630008575772027606107528068759116739762225185384298431537136817326263971055717668634127983832319605918745724221113018361909439084029986621980936381681842912928484677091342443675237755219079936578809711978810998474661786758169144570143483036683120391797613873139316696154076309404695416253881191297180577788294051732649168230297655258516364523454357898262592755384010819828234563231244141590349963433843205145530867882006011767741356919851734351287304490269735013315833504952872563382956221964856737390915882343152693675453528875063414283928529132868486998916276014016486359391008131629556508901405664082178811558711163183985186796682195263486231262616801908529215384912484084282344848123402736715211368992885968752771332660059457900465938808801140227758382666469504555210331364898905381678086437622583814460788276989580953885721470075556729495003438699529416816857040129082284564259782161780446896934602921302297908400843718073103763702206489279613611479856144614152051252911723437252211532896796845073077665864249406113053111579482726479134187908742508389456289117959958220369363732325868577717957383169432087077312452615596938395003446279125605612960498880646245227426088495610292678154620301757485927854364902000295401488829945999883165949080921284723016336311159224449250688591775717320625897776988488828594217239322438859498290613184857399049326015662711777930461933164674480370717705441567368236036950311624275214671316712837678788844952892541577809331162847990157006336583948350853567594670110685167813859371915486273966546869721474138858549664624599898162039617720225970427365117680056452839792222888467778030086254288503320416128198544269703166658005172265739474277703618990912182113810282341688637387175678948215883926043434139993190298685049956989573851040037602678496190770823497556098256434306975105883672462240568268038757402581486592852981283085350714540908208745317265127088680485065508016027633805986477997293836043702694321404897344314560040015580668714070256515483527808148497571237729985850472856264765884991147667064555050326254965922682499204506517209392534073748375628681279417048310263380156989218690060370368009555148702319472926044965827924948377666001455515915302237525098059979764900547882212963730675617104990632190724659977239720730360158990620814152022730692889524468063405161168856549398160939883056164584169204316518485479297296537828984882235955669464540857216634750455790098912435150604495978426488189415252964597422098331273367894943348571514797017528854854382400172728290291837319711660294970340835544925677333815286007605948118787409930944791150725397664443093394343053657159036393870530607867816860814278790919747783034919462159520236714487020559974257393745769672738509724138137299346683059295182857633094764980603453822443065945583289126447352659122294361733523508121290495590640168857101283303624933616624647335667776009475139497455332591491992253476486153236455937370573102163097206417400748895336078630252447296124990924703001185711708803418086556676734358259857363995700304614666192683845713227310960460997784547971796026455081930627360220726152714040139451982598086757667971677909167166010746668186732302542894782337627506187065259134566754511799108335819688823494949990910933227835963455631590287342171809957768853375517416839206955941012500284010136086317742182162231034070693704773805172810154803529675744812406840603311357334491122167337499179304297117641697488836832211313545833973958905906319353891730410675531492907423992791296535407754113876301318873212917255556844614659633007381685428759388007265763393907435675903396719364848395971331956742927866595135935388695224644343595063681210277789338779877028346600637179170498580252051824906784961418289825009424218775651779135486410972363585356923482969660439291784588961801124540921808959959956207587959690393420298969213280075015888948428615248134106302097059790869245168155954498545807862751392547828518388976624225213732736308794326069292836909675660885671348681754338215622855727638622531008078042935710629136791638590268286856179955302016984710373371702733527451783311745294392260829718771233013979274023602999023988944630065087988402028748133170567077366206424221698220398142871448857579321593774135297514337306159806653357049356626160937592328448054836487525664052973047130908057846099351846232183871878421812547164154595407666206249168129228328843338122319218207570124793989193758432000873224537973766178268495306158333746461557769549625393455357625764432814523420906564728557592666250317121450425189048298806310101732113582674422674624683067610922031667648430308959998944720363288796683079051974663582241435076073992935113018992670861264294702355267189891717068127171471703955646523321285532581374974264067440615248585380567732694265008554961254727981789578070157021630626810050454966058799420948220016723409149226797078916802136489164755740338790984090365820329166170624285481823356405206699244416395390775166335298863200525683408470745431620710373471433929562949315198838731666717645435002216830918424869252117703950004040028646705015955480750394033488782674053867395320352638121489592074663975795043308192045971487931924253003066155426327391681143887980063314978288902505504374293014953076402491820671556831472662404555884832998752510591390886855149340240354313716101367351639075534462984417702600112683538767297195790689550085716067441338338740270672950073278125473780202161882031918250181430992136785434222736176176698508029229350632840878461529423980488754785407966695762707596904317653655992689600654548374495143135696868814339938696330980628531214575020424069499053159618142113039318914538580725197719919377172005863826801221781620909477910067314539258524746329590108503044032947652358042863597379295812460610022064679620928582744332182115183954079523054933614135828746534475762274384654610927665417147418169369984890484713154104942724311905943962829045527116582223689660744023392398052439828481858583097572027536451238440675221270328138041283162661551191489638875395023049942478427516797255253725513555962830228364265706236755019773022185858710140146028459585307428491225951975638220505415155472756104926081918764590385305119142475050870714595831856233322099539774331783432269123004704199307304298896269181746225697374431690053260380758064159878138164068785991307237547389894262280406613992651226914547730854796662881761649015685963574264443625859926545748332229998211688891696614707874093638587500585812366360137541567332678048427178852691879817725137786598016862007936970555644954774359204423499704335356228629222619711631646846655019262930590118672789911890862586386778403226795366814712741109688342091514474111241166174559408878458316965568663861993512808312205052347948182872960986521977450395170964974637993251446761068420142063172059078990445471012809568118519242919578124745658804401694752314734557194066179013927950940312640628221589924442807703739925630288197087015030843896768673999542794884722669368182113387211717120257633735090981437274099738016862731202244574251439509274821777005704235064778507421105237051435725358852453039602021684632040623856579371904872219264483549716399741259831528882301966878910829037595055431652891438709937834908252870018611639557899814276818527989736547322137966688319084364297213682043836675920866054653773237518329021448500281916530897781125257944302617435316229660397959529008853183710760990215143412383490326916439279531142666806613161621398135511535360588334217776555135240808457719151592344342037298124340880638895539066730242933820521929973795214609250917564468002051752373317079016812701703285059341753532016600926579519250400839438273647239888046057443991044651163716969908609588107553408206947513843044711417238652339666065937948294149452429320833467953223352498383009668215429695967552894165433769316840355112464565126444911526364365473703632637556966678326512868378481488414583334272001627796253053828727202545276446693622850836594795414696693779231048360157104139929167544043406285653694734115022490011281514199399061770080679832148549629985831709452906814327995117392906819838234043674747576539712099321202127420857360912281317514086627742990624562477272601533301765917012068156898019082750117369503151057101363926776371579109162490901662478863319611190600644828081203824847787460907833341296726344098018474006104657397454373604593803812391371851763385083881808572311121707602500274647197290627715831012255631225147883996764144549420010909813007080450961622959708186098186882359731711874694869211730730036264759582031011774090088418352866943758611046579253947564085575376853510416420869698876582409423557816292716565492208624456509293463982568251666494268441417845964515923060385908436411415225286293787867385298105338874201888630312965733841934024706565594280788572152279208107487433286769908710562109896937700556482784299494727718925695413666638797493935694346108476501806595908688647314453989387286420825585940756693880733320728217299657259679390886365246053675178491719194588673800766728204053408986916024054274056158374720283259630573310289999140676234043612412018592463374480256336671293289697131915414098269226706467947498395696900443678074184201120037992351783900810442690366309594653063964122133412837098317269150157824419324223370061792320411523850206357654871213648014944426378678355229050249439763635634386896782659466192918266836801206981790838923706578672404723034619185598984459638417922466794717863531810421530870209657695652679949311545451703176297779330171721413761694806182953121079488199827246045900879960604841962796401956337907475004461267315388935380218964431511568541190515129333688395697324944751578100051179617339373377867614867964090882899461997377008600032775770219194537545294587981954105926299358418724208487388916533347118783643320338605793725351909511134080003824201469304034047338712842873077524118676472350972517115137445844875103846017727829693702652788809547750866859984018962514266556536800457368130013227247034138284609608037308284501904823157657905970630057137046925219875616153590082192774698840526571172749345328584780474916194658720828104795441610110806382223316844104182220267236790556776849328904867682443007585657211294770727700396850181187381314920837928749786104565564707340830084140313221556561279191220477492966368100932528590832542193076609147149955145932894194745807952409068926235934856251917052547640090231144475066431327886820976663071249188730398802123963852246955890139699809299157971501195166542087701477222737017980830598391009289000133251820227902852833209831073448988008669468498406573715996732653044753988493885796117014077658960031832054764267640243820069960353363987216553980624887797767874222149916371280329511392174680273389389446407164315440163707314832820692319146016056540491739660974026316550185773847268323030443332527372811667731688501749381528011574579293437939441623654842433077944761519069557518305060802862516880313418027236417112661296744720392214226209612437198972276166504246967112450651572782083030572031222930176603007142418183023314371191156740889187094152452121101527271234586884442801457161221708738106208641310427541812134025104208537132390185584163032869669787480274351870982101432227714715683441136337198282296119073755860743197986919938407999342291401373155840186815406181053066587018126630411931434740192498976602762015191193710925366087878060667793884753664115750988488439001982084177396174682635347435939563063986095283980764829913957417116520762078215882190810940292794303439600058514650335811800097414402456469493605044542448008003752641494086154659365925079248609336158638991751641833034960969603849401570349686278004371732751050748883620246432567056482928388698740536867878327005483333436701620166725960857997490112486066171906056228019554308606941127827541194515143870429805340743108097710647032539843792120386764312560803093587708381791987556379971915618892124502096165082323537716121621440187699524911681564732120602976802152884781274191323057497516811684583195893040658123059512670268939057597086117912935396178559856946515702576832209417188046570225277501072684205862331960763011321672479016059972359132670317531742729668151063961069988405872190805455546939793807300101739820833196965243202013252347791218689353992011408485959471967251921721658873352387691858588550961479137507540502930532939760344531752716653949569762532556247131352999510674221691233408741042802089197811553631307913464372890160193515446044877042675448781198066189297553845070093208029589793796691823010827043682373164433430543960087163304431783770301306359281137541369678251196203814942695725552246228649279271564075754135935773938014582144574581544804496706869533969205184443951087811939457058247665487542151404843818264812732580162536066204801993273185812851855528110881675083273506351038260331270490207349522270767063528890020088282334728166835641408449703075393304473659359062209660813741398328508643899529637726393150839007996844415104796267085218811015235710732115672185076792182417360352980004514625558507855244747052181337193702390178853062164375347271021002248972335228443039548947781356562275850770286451975948102854372730058217022654624522173940190058295814365147799648747641825779228821455379281757389275949498219875466772451275669716372301143111260638779882288140770853858611629728710447266027642346872955709852281850168282222372194994435272310512634716262136592792957226522656590915287916449058744108296438084226624397646831890022337590115777700847757164560139619642570805026959634914703514788571009087842522466373923242258272071486517353768015363415303529427634224913343545690024646380004850737230936099704138813919715404576040266464005221056746825695842679904773338673647908744027272232679736419725910001361357056450327948567951634467454158133040879945085541489143174218306731621290143577595158647810057058235197168422620166957679575669663526423878143824538920616845793427522857324402799102806985801836873322147727436958193105424565834568727946455285616031638700597793416981268666563200540085657573952674316529608269194487346852366322962858579579060560633723631136790630032458442607900232743179487515610286106811659355406031679158536492927217065596742621804026351014226229568096700860795783497280667888503667686830017601717462092053335505984287508482032608675886612646318611054641050308605538157950045297011974769577400974952337094107224062785683561986803879031922742674200975504604653699550057916601447771068511486089118385492504820279953014314642527926542371072627854765512122942940055353725709905718478091486471391143423571308752045394526840106504640556137871090064368496578850332490666580361927640464792869872595158238578130822772905397719836222352795627940990553765617585859404709551169403794389181323101674112414673982039718158934456976331075412539049703936585007509525891019161895141682768898269522521854508209549528632155415750247205804809431782743372387851266388759779685892291158883993047262316728017987461791380760677946424331701520248150360313423563540419872897541516207457730982134915312251040728696605079980146081418182452293419551003840565363522944554545669483565826103852833769776774650664169228356505180184856506416329359789017738607460387067014991978557214539379571737453135954354562723384837234841665503145691755072151979451969561688288555296178521034780356995193591132104121414991588642817221063828302097689334387053029706489885711302163660876992149803042636463982395024141045576860563760720706455452456112719434329620650000357474154646839823370841093574665388875938116949612607882930920841916362864826472717555627317150047673130490482363770732927631192296232577078446160035299045510928552740485503250993017138953514832571878249146302441765667113973381041397172041957775210527449951008706319939208620674449581705329611343516078766507891840393484384961307889370062861686980797610167525064070846469123927309741707942413522137320099517050272870657588581113999030536768602982051199216717431711485933088660464341192643441845017418208736458340655719950836669299683375156527182968953706175618306122557798646857745434853988610400651895054194569688948681289455640879361972305789486772479618400724305317996949795316441648613635895060629058602879630147945904520436742503178553057020712070577024570352579618278509951702118905744927477206172154963497458436986617686642875967030939569205609009085167203616849113736023721563393950115010532914667421784495696926537473549503750059770760508361499516068216586654751768487471509630472567949366293508431397638420940047654039202600330242516166921248668788182036026918077038412392062804270092619975231962784774876766697330195151927548199650050611807675974235503151733688448126624169447380259093972511166227846921023625320264386703637358708279811566662322919850823707114051969097605791157113795371028537937216809902573361875396989445579896786648388906389901718042499273251307216290368539113858925403317039775423087554826166947716723003164683585342172208001663625876360205014096088156246865714879532454932952237744211874453276696836015043870919667394641958216727852246672161182364378553034640579637820151631304743972307103566443835972143906991236219209839907080290406279113281165636450521666513598638518168097764539240650580346155034426298978787556641078223145022985634051585184733428365658120954364210843761530033728587066605198297079458499073610771646557656768908345123151797500241431321126590185886816949522679048419890992739046518577554088871783092724831403243604060433441954134596663091642763359284245373571447590259765831644369752026970492401155423753480104152672114395272500349557791779560478906062693914826390948081680831819197157636674287366151141700309129120448972202284594198358533545638502994219035512689150992542894574576918186221234438950230347025641616015116630862753168409096446436652850421803027815531207976764992941975565875389490226709199486329553877487789792528295618154211523250059286123753314388104476752010174161810144069129961336918619356323080490883292606864206255808239912836845799019797519285336928727513363567259769288865863666281814130372341567677941847121443601606456902364631574416760140397603596023235313867266141268830822800826772601024105849220568154259333111519756475511826503592415788322642244385929007086084615505141135753193927730933479896963484543883885267911761238666461469703327433603811522982809636003589341564568897809671898452312174954690780232785138393505339974256756121291973699695385724977703617588154368695283259374849408946414933695473281792580887247880673696514150435151148691532984222625364423199321346515910068136336334477905191302894775688218191924800491048167473704465882739069499874382844057924161143262119599528821210373565396755536329539579006007621130790366029087405263688374439150376949481812076513494235070507985716440617362879523774941950286771914949520306688214034730994487924334281652850752716650397356941064838678613564195247307745838702084906443623969529613309510019535532661647178362540904307643561143351514576251164799975006798507534169660483205500761817366726099834753098699795272815803222752197043195394733347105380060098823879660447260675244249779060477307441291129487034391313259275201471621595912100349052949612731826795670023303077861737033874193852190475615721151930737215191146252570974872744898113372701258542666883723005669170606433365418186568365201541092590230471658617932355184274510185693019311669919852154313540562409520833368665657053208303715415392446607562349296929804385989223736043422937405882935524372394224561153482142814773417015189667922758559814108539770393600914267194567888058530529488886394427410411550273092611277636319555997953846161179752225552896030999810497641306459983603033284150688558112186264634025426136010079725892949485434969203126442254922657647546218771766254032722668431429210086502288885272434895498618746577265867140702727236695541273818770898609470671042330871419084244519842430839472829016131084522167104971922233207383296655495309058942731924953959884220622774186008775308671359630490750033561084496330606508912240951095182130138453988508027383064172979212691964186169768876543793209387683224670368284259204766070847149323613648881307523980559165710266665839693459898398589080548622372452138591559132393738620921509592119897869991065535432995936006363194850371407423766167121309917214237602709699355319357177643326684901686257907767598319670491181063821334155901886755271654993724145086751632058683853377211257053412852629155557749467961921600115477999561406109260679094893501360406970788066789721903612704210176533156669205207898862116384511902906711526333440927690526274326845761617534667146870444224802392992252273787027709888011972542883235072766287489718753288733533912050730227959228546927733615418944859708233968078079483946386656658993336865759935438451813582631736698924996215617446355755449273318244450672251876124427921270887999220438950562904792803287838896150869816248298684805846060561022811431232106323061663931489755108169959073200526564202904862480444764030787865283477887976497570548560283799412743551439383029926088617760647820100756136644669456916298936293265083648004266385009870452385240562372871502676184412519820678115388871998045518514967331365184865378352671754842717466882631771717294764705244303048042233932795027869247800603853870312321017942008169959685004859199532041240180578507514184344568493430797506719717901495129002070894821499168603109585951466097722773995881608552083438407289591371121663054297404215391239513905357683107276964455702838120921154309708927705163571159842885078242169855947501662812396173812309153649016834730649817371852392150443526602262975925473296351735630925444558973844115543688270143498767484307313295802579136950635431853449390442240981142858413899536822043498162455237631226788818743850461254752173016196756638128171793861119282575388450638924412431496306657081402102375946911977870642190265520229990616254531850086773209544795104574381905413803071144079098544082099826848695117187098668964777161266238945339371733542954133649804125300984968729120569338020762349328048154960753264880806542414051011543506079073539004222076324969663757727996406706628363546885270891890747481933799804908838290006737300543946938537899058540457151735380870199485719571150818696145423375179065902786130303550645963854642736677957520220431291118943106034329692596668501635287542060013459127100025606533156165287624638569091715403609860793008493175918675321769228065020387013998067585040531962450439757439797839724137535355726783272589564959054910956610221707856197650631530051495416671175814985995553093134544948101430745903441853879760812185097215320170383427654361145882939120482238810144769998033897784921727733502219951627504761457266800985839739292504246363281566617909838151646561205673843469502537477038884330612074575984636753435758221600553485487967412968432629854712342114543190340163836447275118745666560568245885868036939147855126568709672389945873629233608152880394178669724743779551856156697256362946107917038933786485753357172959916714544888547003726978147109905958732180392641052171944120707471578146199681416861003813004071992379396331699948394381852172584623778346920928687340194062314086470406380007909680886946477708909518202831151123082647695009045381958077469382961000467822587094123919084821645799533969904771351014297135919707186475090020933948449958521555234221032887439582292900504816623008290914346872537263708729380943402390933536314311923760456385626500859081396710293670479736938206823813394763675411196458903373339859138815876739142059014920983193075671221319207894454902969485306555029664616420631888848686050365724198496212859157434748125252246879125459777269640086003856040537550391187970028846647882365313337477134940458221930812286112092856942686508631681248316832205569078523315641725916581591599812787966107710910082279877607960193020524953344975722304582424805411482247906361459336591608397063824117811729443707384748406556295664199718065681252621621589809700670361489527354042230400991601537184346206512340353615345489506605918668085022713154486702623829471355675094024587889360318944596973078491543987365371338256302133828428697504059365690339128890049438357985409472223918304701628946489029023038239720064874505961148580450551285950032326983187624395487402411666594281971197387478428032360330333695538887228505276413779368640908399266003655241502327935665545914748127505882135713243113089417943860159320713099959002982017562222940556062111798854617102582750068584157445944873285833893567668271924444914462298973774461112581975048456993652507492676031570857063452544571855317163362641324439212438325139754515668822369659593418503583978853410104593320624654416412091212642056900262569346590539208772249665821578859642116107838227459588792396155332567281729788098890895752985649861891906889740792887231039568989049785559487185260021623419465277050334802729390422040186948269513101692583852075371116167270658186859408148481263094402305277010514682010433747928725475760755898573644542437121859475863348900105988304561906163950267492611072869670961158988650088425226513111948271510039803550536801461990148366282003136566007676223013949734594298624498321608678186537486058083809762127218214394074993706197557699335994878503069061827881315408212501898800523120283531846835555644513332551862825507109926991601189212217200671274152137553088815741168092197310059927772308035327156649437232315492987657526399000298137413627914262135111863728779812424488593107037387462982770384896856838287843636729341841398377922063107284503612790483849733393659020176188740300659986333640683191274475272409503706255083081864389346804235301433195147017961140266679994170520181591033553532833270056925632546265797725638807749519840790484173273052151298746025586313453300280499148802331697696477390626636523917725791316098972314405586289973791041914682292570655639889224184308567955854539654722265382075208255272196539179736134265839937163328728850263733194901115071610845428149838719005982676272966674652669219331520199230023820892035125779142299349074292209294305386792576301804944147882916783722235301020002375917766183086158634833055505172101115169254017218578221382284971573612529797891302282394681846354426435761284716565186485082884827658145060461018416207831048141767181695445941510929369621771207864461311285623111180517503424895159525213896988791041632811129018352043499937583821621641710211807919971300999443878353359339223392935406998974903681025739187765412620396041271606803814937691495505050005703878260252920542721211252541575387405104608755276691642012681953500111021717129195595645845183918627292268085692179739993679614182704331686150087205242320994334267365296938865882191929963818873489007028614573686579990034060863354626364399225298644895243425889731101074992430970124209966975315550033487946775209231089569333978083012066931573574206489276611345702203626627764091805740820852592732688879240702901781890015173874382663719260993814182974610581324924975322860592957974839463235614600542433718564789461776144179853090290463883605556056649510185748954125132122875197896413580951996670553314836482402036435806404114777235106561852582909360734096916020032158387283341684920131083159131940849622582389647740825749292210740678668826701267368387191062834800928690777581867790583267952135353966213502470298815019868845467566167245675712955693623548549837240833336574188289115105641138275247067535282972613711825686985773706152290798822594164295562118179554618707001522817299660305963920073997842401252989760383779602890955094270031241097931449633773506122218662575937383540600891231370045034255918849192132953965580991825248076709128241264512312525639016377913100076662653018219521471139491150255284751408998684180771356605109480765660638737424293887459568788501362012350617131275313319178548167712466397263351092492618240756412773622186896378129908869667659992711548488869651845038977121576786173713777328342906472151735266828050417368836030986293728666672278550248302898233597205345669922505617421755385074855239618267263467573789512196043068384531416491482746365459174916933450696282963775010396634326681284890147590777054838477454862551665431434432006402856496920522924173336051154168522183480249042433257439372988771285155240414531569410740256986598865229144977098097536843130800581185489520538105244929710633292707056575041127512329356569263998215091549471041462289067064046611251755484082176343033247919320647850750776373074668436566773161836388883454720805791052981693111652441045379061912472005923063496181567365015235309515018138291948795910804588458845570914362178910889945073775408399428103661679046697318070559735656087450049025074204761632369878582838789564772325183755437197058950892783675701185751470510713651218411305802808204054925776449569897509878750482786682267627516179458772205548542429099436812166442102598841568456597887132098471182692481455884995565197822416710122457548397427628909652464225580478147095918106540192917191255863116963411531566691002969213183038705222024767103037527507284125378506227129130583881455614962875131022931022067928335122181957796602718314176174713578617071151867518201426826572714095013016531093947436226279198587562550167201770488922978737246176299235861976903713794248721100095319995201642622492800607540847183118599742749039672955729082103315732271805986626246907104619287981669722593397238145034602546660742683392357935927960110132155074524414079001311127560818834269517353452155896137677285237333728575524034870113825027055665607440487964740789069321895628753136116525857848467364713952385150297864005300337860529355018136423374865020623409566641864855898130265139092732802979846870475677065150441044694925542529597565833685654930857657414945242407155021801425416754562549750635572595927222446366007907659840613212901129039858323629178890991556602331544489720086516592801924639470352679662901220184190864232022435484281183433218645435322583984812833559528340928043593181096391888324885573373189654479851587763840252031266052469739050649515420259663640871012261497067698963306117959477751542677443812453691769325296785844813380731428992714550109168707581315791036681097426869089507454980544065362031345318509634316243092512254483912163231947456237176967753341420453114695512644902103438152772767518989379004053868079628190594440608693871614877449165303180397005036430388459688346865060869059958526521538119171264761658544771786797738647814141976036709162588089198944797334909320522548285678349680588811611782768943099493938022911986784650805570197122495897440413911424349254666296005775088011190273079431502025556397198771662652335468748737407222611895184677869999162652097643823854239221588054089580792780474457579712998037681677744975386336623551375935966275956060130275211481537801991721196371360139015282383422875996975543854581329035211598188294996031334375651919191336795843780265810086498825343645043380628964070970984162814867095938101285888257771820944415006071860836990133441557385384344538004159049841366370917199477887615186187058592682546783258567601711272057510746893472070645097782913891194307788481061869305617055496688637096150075740078734599049414376456268220198457620633752421210673322549497953184006861734205731159642369701385212356856914839933227466574327084103470940230897595892408328012422102273689162198105198372438670182690363945950200967051492575387812354167466648482589877708705223609989232211105771922784325224658987394112851212193991353212313055213715184001484968104723183770549111308176947909574235522291480124139362101321131376539548840935134840033377014448951213554786909158288264722213310567987214527310633132166548254753241360359899165977645792177873557300886261004530950765687891337538670776586999466461545427575544746969773889159594603994484959485747822752173696683907011692066144394631078281309081229532760825702196645023309148397615342416216183703056251905898581218015693685081215772586543198265791089721426946331380423812251051770209158314494951038795155960418530119672157115713511894848421819480272372258683638169952505177897907020275394542244018038576411742287926874350694309229894315578840455733707237832180348240344344356605659737047131376310231609139354789527503899408107839342553294902763739158613922329145460533355822383726170734686709231862357597010122912559333834145621888473270002076856493612253400526553520121232800606886814063085638945434027676577262813284838741976354386093897173861124821660429292055624197355241592681850582583400600193341492927606305000324000280769769455379633058960645087565583488218165412573093329340145632013234950750330412195977555120453769550467983984058490307899328085845682919352682983605541495182935285445384834382558305722233215626181201996761696377249244002219263809730354613355349017281199086620800409694693056018682134487643254701337122302289919568419471368445967275315958403491996323544681380779387325408914718769755909916177502141428987991615379566537369996226070268113213176716972038718380345401287607962904622063293277794486715302785991136577961649249739728185481257027366082915837854636330583262555800869572834713397384656059322392548219738373641592508746460786735309224080152183693915807672198254247529184259765988395327984868647815683745025457570462399903459611731836133647227242709502512460459864495633622817710519184350506904433684837062415892808259627537451844230559182807019814457608635589502148930560188505733344642189547636720638499115215841974996897725520995553123361155353867382507733280413202670391612137108654126539412856472846494880696781153117626750818903150087562361934043799031408642165322224490864693418475731081116565769353836348015679908515767119491979187429955764339740921178360148110517343661209154356165997353356379324117577786990906926806769114578830629810896076591997744584252832853724257190596618668130018144377286836950149446277936241169155492728844652108569921333083180848907193837415034005415522541450445480664412256654644026446439090504058004531177135790573931885997936790669266897622627579734241423612294272686233578069385815316009426684924560153472750224304277840611385163997127569852063872762725515536520343146154580896773394245607881716825743963303602082109393509471271967164393661333462829014707177774207133348059644819012858758184534473503337929301126372646410236903706912751310953878030955967985820964230503969259517106852732759196574564103053278680302217364248074170796152040092390430729963078190503453370435272609770297215258225123351751555130439823919455297281773474340201737999866037408623458396926854947558585713471606185172539045183779063743804963072787623808724402467090241006741631018777296917033312454780449643075733518870539899599905561151945649041487661321291196480515536345771877274586252499824359089479617241839733364817424328134640738999635968147626998100499044839476941393927359614635447401579184295142665282903112008049210975987816232774771317731086304734044006263225355211458464526858715105369887477187411756572691609347287622753007222981396692820942298904243190619380787747390576956997144169127817613949908569362612887937198043568604339261010735813728247231131892939789140161077971823233037071668376302508533776381881293838153000472978991491636552663228631980776828912104155637443657372339930415321173852304745971114281347680567790785783702764013708498317317321649567681900660265841983151296203284684128620902161119091451028040014647306250308278600756800191894959368888381070161601478551425513276111785813970071036868534000572371348130662251840939413353125923045672565380066649808311975175033802128434550570111347520832496845428667770298441341323179696342283803306051787981004342555401490741292996529620647020274649655495985518187876005707292441584246070267061628205572160339387371900077206335436528187923599965207265870952581885558467498036303390734158442773119767677069439653547311543464936196383783376845058845049035147555998842012997959229037155482610439346633374413149757346004024879971255453231783822156959909693488589567380038008783220508111712939497854987937687534573806944632528864926892487269983480274300779358370381887237329737709144372667585785471380393334482547059626081895192851321739994542346854568343026268661610173636507004510437049262294154037092385295458036559476623285629278312908302791988309715184360491000852703007567461599137590271035085785583887964896410775146518537155329805569615664472074431948339190738977851011105777405025547568283049435770838373062798558132171165342552315380150625846136650599508091510475428833280678588574797628190328068431487925587697368579642580396845247628794703872441620900825686994469708894696660361793794394940507216185808803903481400137560852722276613601836733811611854556024095134254662917216127916331128188104918662356856826781772334849658433278948413313325661487617404560760725030346014042503392188271740639041383287305985412403248871150781159908679476260872702350923243369449396220238742278807815685152701563767921764545343071436148428107165277936577062021397492181526159736998400302121713242528702809375344504761870854445863622370822068094702844765887029407899368845713534875594057224114837125392663789578876198226025943774343795251816105605030079238318967055313395569943529656676765278510714398208680098129122754684159715888951139288241496148462946216932886175395844424598797318049621300723247993219741169877771423678801385882528464441197138217879508761793166536205655335796625304190073641201853477449983138394974378721499092783717913963487739568592353382236730097790883468803477108868467446853258108240595770549447894112135150687346091339046859279619536287956767026761125141600229234557526735989511148174743958916695349982024679140428924800744319500875540066632961578188012476937499925201896091135543416064066473582261800490497778638263553234308030909105421312068374711198843244461815372923452526149691617316286151665179597371830472623068436311835556622233453259147136497899762071950841983345792227324944765581291888469335984059775936451429904734242091752579703387925082373862125074675045355487953521271662139126703068263134386763800662416255431053608718207804198141738842148838904724582398721311562271669989313038616202086383262161448475243385277708668695350272356956203734120847523282022511475055532945582886900097939607624434787754152840191336857303260020917835313129435893942147504535442992825737064085268297579475492022135860187908178124323928985597253115137066535257619103883272132096414054248213538278547203347868310080203671414117935535194694340017735182863400091351178980277161795657354836125255877807576048709891292664781894550933638758103000842318291556940082391819887770757482819621361974834383224360751719538412864034497504608502631061529995176464518987982917319966352862075182189511562903725793046712705621822374083877640284938651017940002758021455253915825270668450459637751459765189773050618676806698973471658799169265218185730702710321839941789590942311627237677817508593970835338764731258607375532357497576218684127793106630318652034957837495927814875008847286014766225925272682333904389931781554259890925108317165061527491311994327753187917099495860980913712022387619850297077257299274675508131616328441053551176223157544808800224965255372539895663704779983908449805833074226407675649866674833646046101619907612623550561357398550656060965415789298197593786714502859344272198432439556027650680925889592374271765978711430428454604291916716747338284986447228491715795524307689199188091531382853219106605382415711819469329895181137981832312547955850263826927941987700715360144630387085271198939860698053839334078754555984294192968956583440474194332514322333307843042870224772561022456002767597120960563033090801808657187090679166726031416649876832094612397313720009716226167086881992705704823650203121145048054171108810108511476593221165054912697151169968477505150815828069716747041510277288960437406463092572358208124446036444834495244638322021183442019632640728707601210106248120862943203938253435493863960103245341289473776239834885603880814749877096435296197358676605344631597402346460245064746632355283770555007351965780804111796684129187111737130062036353660443536856851643126621449058542855398217264582655297232218685973301032829192780524304055077982006853519180875901488859208650497084217407231879829319245900887809340757648186381334495919570755540781599910470041012067473675440627636962732643363213837381877903435545580664986373082469249656946789174985986842058444682139539254418337123977412009657612375147494089720111697567824798658127448339447502928724997795460295935782314899361804146772972609666604738593611388824146561292220081775224222868510721753428896423706802350022303598662590381096110745613399404259708806564618445684570298699658532811206284320360007451663723700091993964896660049502017856346181510618847300162798510595185348350473041913937684992013025953628484024296399699646891030198869637277231038858840914558845655992228804411579320351666430443894653969949523126764031878069600424577402692497068163345810335642434337999509365493329567870040015837422210304070689847253022197565318556396207977539087482409683682909507833086963661469892536594238253633699184648149837521248652030518084080631041936714331475209042159146162291729269507812963962312033959090961609634284875980380370281953743002334214170484219953009406944517971057922306815514632584119449921269225690802058601484005389168874897996767394317647427895126655350410248790957178360808997912682611114401947542242109286051853740219218985116182160839725966626997902790515985311635223344448549006833870329778535449678634457136145343863978319862587871071754751947408185967200550248764249497718975775676520093035523503841049207591532180878604420200773422155851556529697314186733783361558764167566932342427487688233363695919754349123793838473603802338584581282063296501836443164754788890873933193927126633551469760385512551550806527596408164264033956870210823485534705853082567695432027986753873741626926186951369560316429803960138300998014309891902393686001601833484388727679297018826840922817804259670463546026105792617907873978372824685204595871136736279312119092696653525818366132784499947576918721750515587747830526257622208318785466329094439828074749101229483189744378394662914833194745849378562183733618515728954329018696561582313898143664418586050173798372156546969772288044338839664048013944881230352068880023881470171902591025248659061571331334416540385682272846727663929743398428620089661795212583221189134575374550485989514558867611576084809052765477729243235874027546709242631586056116650943171309345304596791905403738015227302491364865074550545338192553462934922220292918947773602766403254284200488868676454567735610023528931580421615244388766186217930781344271361861856094567639782380242129750399683977148592029277383596702215445501529775020425518069674069287112384579336277374503459782365532556010930328534930377820647081297787497617966319872699670582327894859351432600866613715516656961833794681523516418750974643158775389842342478643933068951276717214713065369972615324751222809053180439551898272464944874081785318836238024813688296454652210846818042880095139819462308696645970157273643851055917355588867236379211160432239704422915229170284084357516175801160349003336352253078950356162687959731357316178146987082172231561465342512062703564829157606476986618315747644461065366943521765311479894670766318533833319678915176807359541410515689183556471124948252130388037733142733189048197353463477017836090772506878861103966931582641653002617181602813358649503723193714968982736566981791502756358806068103930857909759216266898515403404572312546531059973398490352779710050531868169672033931910197297519173869368531465994039430442194205593153911395383434993748627426824893506285737337919332391413562572334484524806843318170892322601573222804000214476578203959861273441856746662647121215927812662568100894424933618710270913134268555578798313305787002121745502158843503005764419810248680840372001223847423926817156158788054168160438492137660703234967671197497256096154742142809766794003691104129038262385163976790801086552674393285179892843329470990275119774706925765410787465432737557513022908239579546956973014763326195214513807141713455522826370530802492730563884098230408758135145774315966299406672167445130940971115187520143009120494285751448533824236719890718660609287494793947729845495521240617105202057759744678323732773338975950930854365504635259855521993705979769957165662479683266729912586150989770816855805662044920831791154280748790928024326740446161636703125157136866589713759487429597697849103207621297840547204101142852800787291462589475566368047957444025236562755185029478034739093818372720718949808371083617776828143685874011672727331325860010974087633549563900371925007437072834091987433519198752967559694175870162947429849338740394305559610996796981853155511248891926432489119060287005376186644443331822071080045141657838510919192191914130694415871044197204037010702405300394511249470990912190109504638605711382419842257592783583918142020513803843078326290461857277773746086624074287370935974861281098798214158928533749251140105431786618434984780307906603384054155741967258211390772147508042557164738342155721494679115186393044007619578359689359688612701366331243055794244345588187960742760434078643485327465446172970026622787600771885846197397794591019942391741468584636715965195137644978871812277836614439497005638588591631582722570361031866748330244137401173962936069948949959751847454835453294715796709876614474119219780319231867159760979329338580733704384416696735172394217362331262487413829321843554024560481187828719588954688863137348846767060208492766242586995853515480203862072166274582450123050905446647119352233997472949886675985717528391786143693784976533128479611812618940512967596596390798289738278695759853030397625639664311207585153220805264987088801591422052812881991185888340170030385205360376763896384707705993606202657123913578681009582067470878802985119865124209039990756934846577109570131241501641530683900413789426454344048655127822297980719942053526186164726805114452894977222252059145738291757029187757990562729324597461658589305119600786651210353032256311403142449875777892128560775138986788770241379943892670650330878244371074382897988836953809963843894744886897187722054744204112492934420262770038447185492776773154317207125928133047625939305083715966281899440314792628773013769371646214206488994008580192003205285754722967726033127276063183314212374916852060948068854621557302127827796464182756390292595071955767464080879741773543834158554576923697904624718483793141997452074363147066888154734115433336697481272511037388472391724242656916930990939237709037703048169463832970741775635375498609006108002666715311308539282674233419267353170773245450638265536442543548616264273016095113640478003592011302274200331401638954232552150801590824062549422992632105487000194036772215682228529958114213117675038746731316389402737899857705307840832233739112183071127975199183172834933650106963216468439886157239431845713907612872890837934131542381972676988455959153780498127737847767467526407934331153085631396697821858231239043193324770062510917026753888823039697228492650670671971988997289331631520406244497807233224511567735784913426383507100621247022400884374395509506257462755732129151072712886835878820367401834901686336633412341513949481158335549405323864861478599944233815022772669283305081013465220670650096031991688195702879772588137141820647298965062777857437683466241521486663097639872078392902967669429753756089382272934821606655641749089748654668965032828192490483209309354262306767107145929479342024187962450750277574935277636168950886171930646436161129235393800112079473383311634323778380677385588256042642863474352082480663570096066461241789073596482098704944136303591958622475590050043831279568165883286042195068402755579259496209548813057995740804622756771017249042493012625551410881533749802040040005497008612109369503888342178486925826387845625605549681639529815099249653551769581509471411660592918556983482789323909972149569218349283514801578603293483491561577960451964105426759191863859383050745150520655415068194999808556152154252309533480932873393689971748619762954347318440746260604398445505248912595146390834716706744591048201156752593317439783228414995661520250060557574289375951368831780954761334704550040414772550211965734160240305705360354219025102775307841997802829531612843668181799882476232402288657371378792711955549786786676367746093532540227960267715438547117287070555138539645211179882069375790067909197012209324330914556518761812263297452313978730707270950789162549269952639978984003962171953591207114545394210222625510693446406872450368661919699429497700374979885973681480628923926592760246954451979875837858254607175963062399349811538500205671347378298038303257574520527287131747332617596867951986604000838186443562862582879384081684447860007177531848050453166749766072494481523379509057034022307211698943122346121778045883329910939855498151696434051866129225119799118841473593126970843126991985863095876390728382725312536169216033997928943120045372089757348856008751838500446265469041039012464757282600545702314818146152942290422581626181018748058688459635065231163953830627334226149438194288103633424793837406416436051851693323700972365677886204834600380423762092422285178491937422276858639326244380060693045453408197342705164130270984178286640105239768167148667522921150961868677974818201923137914800001434011711101253831267832993737947158558180654700035616281925524570895776723893678711456566278478665151493864339699648902143814891012948235562820477731941238096880435566493511160504398389066057436898352149377331074538780680030631953154356516025330272442708304250699400568346417615997348779966761484226132435663001879473530760713593817792759200134214848152627655498625641377900122043928300972160779144184558825409380913772240261188162580162118365993359150272330181395701798782919928530358872900164139552982115915901643141501647790376493755038498228580360537475547695678280124235101754665650248238536276054206881845174338766925281668095472324671783358159372413331241212798198448767653583908079876791873182591024153035918685367981382664066337236630302151320099969509886720263210451945203944137467890515834478801001716006595789364011030592661055980356854723129565660823255651575171460672543796572048934618751492807258677500548352430657429941716188980296771731025580019687507964370752447280467115929556912568089371930492923471383417497394197568748208993208226333287228450214049575333200425667795834378756341391349834704054066523830008745314365826696042464203445154279239870761526733904436438795380264163158250835280228170346465207841007868051627815382529024936945430130467936058099062472318711045379353354229394394838877469134748328851595934916917090723556384844910896110638896604956813052051350689560146323342315525548858283575253119399491103532786777108275878735337011356895422289056589680890653036912498327624962813285452091524731298332708203688914722271871831645568692323838387686353239725412257177265838783904671914805922770951528188838513823560894202752410293680720121101256777306762591549581535187951719698498257726108406086822460346994289940607422473407488927064362631360207554461800352130201234256209867194347491419578619165439674987221771071072586771747456322234722952410450947511630218012830224429182531753513110419490008632257903726715627014806209680466093570060929110461470238724070503706265025577144159454808204795619186343272452567768109064706645123253956054637691406148709812719820842925106975918581173546616611729197962224915116304304251872837649865805554116430783572984132213670709023258791232320035572066524770089338729777007472820769270048399424670161088804668645672386742809470122391696825932168838494817354947961648215751045852884317394512355846926842479751722742608673647409963825478176553234144866459976021951553216972676653781245840569105375918911340172749633622226161684940409192815495664715737897252512317689380504442318153521086688021492046307972795773925752919868383763719075315233938175719151239515595655410863861387680499372927490571386962937912097265832792868674643038061531732423187480190604662524023634658772850214517949222099655244449238529086624582464965558387467887921022936570032523777453324401605107474554511864517091655314811936901265189676300593158997294959422318590574076511595348262141722157989460686337939414423691506730465554253704070635052296635843305522668263212025735513937839656647811973746212827820208753388622085750418044419780813369260566569649316100519714747011170667231738754592015247914677597783242443049121060034932477336238708011729513359359866068934218410621389138976665154764759284626501115815271248033570589421389334177040751582081695452621358798604188130533375076020255763732752561612854064336928198722671560758831426446327239331984085580597796489048720161074944706119474312776191794384929654644398443756832164430837090455699522658941208358043038961384368480135372116033505260236379596917881203341049617073467279639459441996180251063234473196474118220771828962422224536971098960866196651265287857527531303416567142057550583326867649973757454610909078685514944970357890518170855900455839475344645662797410212442725769539091422094277917218538839973133720329377144835400091471535531672605373843286781840362198819374062644443666623487461217319713615900537134198556551200485248495828012706744347249668665211230319157114733203422415630875688229814123415887837451740504999768079166219716103523263588165838744312149732173448847784713909979617770569102934824100024618132497644512225774003878378787386885442391872313701372309280454666595602746526561910356502655631278172877295553730284461245688759564135873952297519580897287454732029607485526953883859270428457089412419094238526843965364319397733874402704347004201244250902963641424255955107849882416107294303283005752981448975668871387657157677939061947644828067077835231671014769390901309225875019134700702892827797153696933385921066950372503347066613272456836061952588302560206248656288959628332876566182231021115953717911002871625126006028712723125598325674549103882172475001997121375602937390498430573643100390821825948551153628096456247947611753164237198065998976924980767484641373084984782590176980325980550991809161354242787804097228582268833266009034028879536212366637669475423315899290562003762472691629929019064781904166153950847764648693038835182634807109812985973133681179381087142930568525907533588410522429318798459444726625748889328260448592122728062672049250993711535877888083557786394390069069373887661990718986042791496628836435612328124845823458252150979047356638607488764595990774545109658216438212779440996335339786898837887168058474645919781555934975063740079260458417555343773161108956278625260696694077101771352244917927967219633887044753207568703839478893155569775752195782972234352164536891678545550150112390575230555891102806252640503631088871280337619164932342217638036265107589452253570588157876729266928701140595980363520672512583894908684522557939952306660225451145677141143467270024969393041299466411121888508548111954414850079704707630859997993065378497414405875559315459220376814759708626201171022256749736979677666101326512642584014846414021368704775101041213566969629439101359372649205830703864466013413563824032260024752922677434312150538191115264229263005737236855980014931225469620536796918901185317145439111916231547304884410518426032359854072013170347779658200902554620534858885370363242773237451500971932053677030640660111161237767621728823637992696650108284407304170437833910719888435388976257371051792778564655875010112198617362002930852584835627891469056052625786035485637479059908234612606439967752188756800101085080664887669410388874795695117088302947439578914893852754568981218860681743016406067613945191134791755949428288643061471249520508310876043254663667157651032991104206256455793146245188222170813443494984911413770854594164845291875657917124590912975718143531174569106251180088818039946745466637624541031433870640357528524044122245275316361101010745795657528273213383925114181194615694734294923592287739054558183819100919529732528660141283416869454464583673174182574710156732586006339738797945667863883915947809786017086416588260605515965234479098455409374279667825578781821532186396481162458203359721370609536001432600733829498904200004852986357248863492925903836816439025945842103937237682713030044010225807984464333251875399414647561298325885851901069199289854099700729057157702600746796875786782614626484573472274433952171144790206326089885355564009378652978339923197789167969652847197116228948063642817070211851054727854804038831770896969082723597038766358710850364212089675361627298050697457435549251964467222035202314723699060203390747655464177710364496809341514470007179262201154704447987779833870834387845011169942797219078715115906724501723932548244475189970382210081419053932262944046546205842251945665062486655547242950578910863628137342485605557211514388914886688189521722095595216718978713750188276649672770520748779511914233762170857651401889797867504614173052685987913802814071308355113829147252749985644046149834200512943440039622360597522514148146820052477239381222938549450361753620645380433050820231730742983640205178126725769350713857140663753723704959638532236703161290231645912680052847298247342446548930589640054683821603217900769790681413010413434881980011767468130890477695609748665826018004331407512218304950740146909260357496384288106706243454153443534937614276128441425341163250746558634909776849698325808622331727223968431095302083764977048140908860523437161476228486277162147468404588474307409164018472618018481585672914117578505727870304860624969199153949188672627477875406934146870146284957687757320247616695540520025513647646466374826494696958434395352853880746465432870876624500206533770975039513893763430312454622090830509748193880976685914618859800429092890842553400138873149599330876437758133329841550584444329588810192991352745770011666705839214747491015459621733054796693950922890051886934247353649279394624694618725388357864402315532858794782553252773704496700881728690310596343971576338687629034702152176937976860628607673251358667525636192835516712153266269750318179636276149550974558984700429289117048328248274304237000282177918537665101772949272000448148851147043689809833513231388519145932312207657043417945163448025206115920931785797151238277572663615886506396520613625384039395294380232604480543194701195559386649381137205562167640741021562595245499708141158524669266815558792387099919284273302787733590459469222018683322801050682354317381441651449547273107046928553682277613215037914297777136055631712703373007040358909736797052247085247604008807940230942642934973633968160207953987112783547445211671541956774805784710335913515551567836227887900008037052232815341463280755497694691784969718165693395372666802330321531657477351437722152186460152181284278759244865815691158154691766889087775013581387297022088601761601677319459660632709611488114262881585793375503947351076997563820145004831070360489947415595763898775091832580066457330153906958988290743552058647343771495654854568189044324745821747104032839497203589500841293720236284830653650967849612528784986691635074137432868413025522254504724837365004019055397675429680283126823079214078403637160742346041387967158829113129782175333402091532905827146582491898030635455125557324561446128842944109384902988759769195187332903685700516037791075108337252498775213502109644222560811082460219313749492479276699547413190533919390156876120903828950146349886278118916752011038881135910113027846551233814927327782338553341169230529858753658274529125434584954535398596694013898555460208340673941070504217457193834088008655830118630173457938025770543791328558704957435743838211883813996626993771642457960197929570225914404333230266526105811104634630933823996136853055430456409089975689968536870284499199492816642244354842828724338656800391391788910075970723842447328440927194958043974375783964768220716822684999620917925694005646818078864293143016522738866803166430963537042849500324099550430780895027269183907447557555029730659471502294946290377777622935054656556365693622446094535561448526518761390025043469462486691175401976161713814917712863647174470927682946929803069575945025969604371864413886393221833890999481892419317256093462826258271248875087648787035219523326773330134246449680556746179199238043401178300446090361911816129379381587569839343217935182548561594832221084043315891286584687040328428673936298539985425243056044923622908062431135020054843172934050641701387020350080665637781909695521554963772264446880913267823565756807725837008093372638673127159603440458369179273399321893558033510038799123771534523281816309911094746459554922337914369641615176810505516545119749479806549347510435899168856654826769117630708268648968835369682198150073241220468642754854602979932757069494234764977897185052841775306288941682995132293484407707844035332805291580844755867830462176654469640637686718051093558940182456179509459134215565073756998895333022098762007527099694206961524188056995041986559217042315115181094124920027979476194652709856790780806911000136503934523269131602359285117571472504665446209897793846529470196633378635167954523954115506114371522027011465844976224168721287404703637369819091224218812149231049954770244125250015076788898485356863179560906007231341176267906388020694954410818569393379044866484406872415856311316803708018114418168423813546555157465343977514738454890513726919543204493893106103502442920918072637544695384402201862492588889016943482967132508092632540155285625173824013492010841887763030745890545650237936915048864556491654890359892919162141541583549452135587487074702391059194260649585277319997374684747170318377480385533932649470452813980163222864971138377384743718253116958667399161567338569079167095727977123727710476834059435204928218669501806956977583532113945223378824364461725983469433540654666236389544707002542428549273530605930213114910470064730456470062802869476201596604070596617178057088768693362444721572085827926965060470545258305405278508326830080052401091630926928441452968852127325224807012689793845302938108671120654152867222543504618387208260115087778025789118693021651397749813085689985277237465019569621522884411406247647568370315903837573761003897127294711077400687170069164499676002569743372357045797266128838943227791660297437594478413492026120335880740008661240091392643012943439332442780654487755318868619011895027284380293286390789353848197814294282466606917850037526874162716648393553162320328061052754533388274647693043033783634726228173082466256693498440823338288048902712612769238968981940912544278562018389866151163162439920088782543395795239212591834100443038106374913550408487752337898412401725926636467741847334128211349642673176023932378759865731288960831073473686106297652370745136299611740417385313157469371990857421604692442885903646848986473387100448547199009485200804012402750668347185642891852947046452864537868177028848089409695819618264703887983976058644635692946972503275403636799689125849261570940906969343756034500947987686598780327774013100303074970020305418317891607766780949700260705553877110438380993024501274124716367670384018177991688442167151887359728957556122817005214400641660879763908438241271091555194267480116574737902657918744017052940139207454197667335892119890980784727222632554230259674798318784551360835095639848592170268114864755218577828040400189068833283999950987686747582899648636746446224824313424737290163930034910883524626881278709434964384748295120229800076601467319520892903934319996657729068746126634675373429813590705773991137685846882049967078463941982858644011280438951885078678530352927166001243881481810437990194476894132823645371757933026928127806630795465048329573173944913731883789990218217671892008693403303038454604907276804741697145893137130696355670256287707921208809810479173405378073016092117051077064863432661494668902332726487161134138372436525304738852755685565901524747410556420842096201067425186201136200691827600644264559669038115540346026237881220394559619194514674552261437566732314875965104816276301763855012576529171170610569352781699737984440458344042152717473487184233052264447584832905553058605830056502030598918568535727240896126228482486206902898922956401374175104199077370655101919020709866765548311180110970203819318424547380099961628568138159811112329762455086804684612535383054753182321245730091783969333869123317106087819198411087606904638854160735623501947617946815453540140254756149154675108638285287964125741874002682486466974501260028200108815194086649838389693892755801701538789440551902844456246566569199939197046875080173038854958574035567672690062145448546203297393150780380086097113062355133197491539681955124669400343247443449471569065065974312884843119720003490400977347444515872880433190404701051819603700505173862467078702135432047027933782795496324832787975813214421170525509763583944891869916384584760477422295215293823245597417600031928803185315393282550677782166712272979367436550226084188685634488313430869507323998997824495133672436774397695241041163480041860968935610334361692159429674603415541454066626765937903132119364538672166222840850644445219454697403186633101056008033639924084994081330812633808530087633490207666929368827962307040014285835764706589735351825574189057753073308081319591914274511509703408405227425311658582898522391095237128172426413410533833073353330985936326726020648976496497147352649834721215159869054156452510995877740382416241748338541539525678116058366450917296161050785994991216509632747935135851978069466220486878619121087056192100730154311805591995830542116792921679052925946050733502248438918345055167259543092774451449217240798204405499052665590525528385891514967154518881536529050857842851756833562509389516724950914272041099596322734621767648692259939981880719880311007179712635535699568131846897840330621375628283086907528390728672094756370066366906996529296722333674388625781512456465240512700082219182061714612049220922443874422674833103378250846353631987185017633717055756389972005916508410784322903615275330262740132789011354748008567737427654707299806944679963837315340987411769251246697195087520480118772794019075842923732565188664763280549566256755572375741866912991659558866810208880020864015776497683813883858531098330419383707692973304773527865556573948611128702661301159469766490851104026466089926941159145877310213200775876961541910148455204368114569836787761992856443223494626651737856506959589438062047054523293151353871731749086354139825733972182061538020494644767054804122235638597225628511028475411156625782939646862479183613797129121261950465495741153093406911772114551014390641211883176410838776393258610297675970015477514889345736922382283669875324182386511256466441531169915900420943741749848954952222554059339603516491242727193975616741456452249592797508939851690585021021244691815122404359690218185083288191874982170363976252315352378817541993147848535881699199194910599377954251516200201498405869783344754296277994302341585672228230902141632181049596590588959120929537505909767052893861584775520778061136516153139072337960197028977263125105281262991267851525477729226959079562725047628112768522967252095283053485304715963021164148774347225830691497052700054149833384587777671998334124146567239912625324631865406155871723818015086142117704209338193964604848512450853512510886783690024424112357119902751877331924130151911123150866803999823835329945622859205912796152393199123260986570200205825056643350829841753312658064697837914101167950105834686133607390225295856188518781423202397233215059039423793109164537472259134364726880359304861007999000251665148635752975140953556757617770548379331526187772770277594166337748834249426772901953887438768364445491078036054967743123854097933468564600991402973556841595310866514957078004499447822106157617458597084602136086515915561288430726404885230864085476178468400669854349861582407451649265755737900689525506527005792094409451313374366975942569826089508236700690974954858530235256642717643967502881574035335988867691520947451829512535908301249053555779824096735767396796949232316021395084790892376802328614615387519758983915966076090452905762219222927342709323960269871074447625857559990730358228317296683388628995430494941424233853711719637606298858718492339659142534659631250443407670510100409221139441277298753832136389832344629733340684083254137880199682612055410053523260257967573325890377094724519611224255475219526944224264267619062467896369376578366766694817940838420316742047286744082896476008084377556945518052332309639557619894594652006715113274619919378641463182297345358081896722027540790056378221341986833873357440316634885189807745716143011453882986179982225126315310723855585532551838598001714041872615651684733525868529817652540755719861201821012212336128438043587158784611016867463297486901297056351074725595938063079353038243536389169209570117602867789000742807223382952675135238503649380925735179759324358921951854167735475023218736956473368394092890919326113666078260008135558397488285393605669075153248599615971359348568946937396642222573933512356475688339749848883679748387716621910790482924583675507860830220171177810206976318257190704530397688400959684558060105746263273777427046538148873484369410568410284309696955824157066524404737081477378979314999625888504568523466355647432209182866083098832893249563163372158799489315101933179593270739775538731409122583025711155777958182406124962694895370730763817389506737146689855220886611279550325059604677890301229363408363653639229074608475188239300368475966964517959574931919056568214006900353146890669464575367122152758344157528140210343600533180414592050058294029064114697514343616546641926933102891877417382503329674757465474630096663163652165429742920905450426411895611464863247511308947904086715295006033267484899159352897367574984619007758413169627933629529147953477374068500111925176445863885011875486809611504297879171961972046556649401993623975632409236030469294227215559624863963768240890659671639760820508853572320377643477197604040000686473003087718752402648217279064299808536706103822216443245026761578455585934255092883982031822025826613710221773494052089443729667103868760917167013089374803066098748285205307159463164119942347499029444555278008100380363479430204499456446317112739647978172975668274665690749051830088198050753719838155961537614028398578915976974823757113392790346220115676109421189831220495582042814002266345282720421109969625125491620315325952023735540928351719486587891865821199704284471364585547653530330724339533438368232107037378496149797047159490807857019316456589163336787647843180661991064566825538899546898673617375088584960989744912383540087775147841947997673696403334672301396258627179154787993570084245834498447324205200025675861453426279083329098224796822559479144547941450105569633381417899135124250374749150673138449944295171787846705267697316734507991698228120899996428425418957228435434238641194346895071671407813226983782507928541007667780872197356666606655392899316990198503979841452515357383869987405206220481247502769115033468737104222215858409049926795789990006133542729711541225101169551778931095415830886964415038846806739200385062734258186771044010510089619102060762342895884940533744726012262935412231826763050727892431340112733295918637439362977315649283468127273038737027748619364812533717622159048358798810644893449455330980073047875254298294932551542950496202856935100681328334231942402032716386248557984852679408846463248485310191108215661795446410931652797547503850460344755284426117049963463191493763389151190087783996106209449031137353184089892001035459172352224402392285065125919621418677144877045485169251182765235461273480654065636190578724490685004493142243512242928383056819970089594286685638833102681738749007437831197720930179717865609080081931335588964646038501924265345915312741429692811487916405522482947104538139877847899426643334843418454773335084425541957421277340869515469246306524884795295686677248092565977550264629343393156435950600481554495747669273476733711533067619298237903150852824141500173920907135115615865764846052295950923402297732409157904633048234228394508045311302327466652964584468332398894611557028076602959467373419038338003278450145595079117506511672130514963592410711806921993472695289257886215693977982734033306252160281587978647206578547548983200636782459818815180586867778017681721923141883349250529561857921882305462202981179011869345291678983561400130295214527161815562391674270669130161934151231030522225887985956395812292995891374509341640248319886048415392482059189311156817403709081333095356491178883505217134087881845396136132801999306406287045142525259340547346347312308349907565836912857311817980054767097154020389896481590437618357902641729919376828350226723944879220451481399933543491275401667123607483474863020260568959470297454459662759571516933013746139304881600953556091331731406908888165608559246773222028663311159612439572040322153604332879165319319830986535390444626781048183321362811728060738215587089536601062352753938421671508372526776452091621430398933406162032172390167474730252741341550447340507762361276977289649953498835930977838250922283432517806648984691874736323555831712417093767253720443255812358530957812265220061006740856952462436340810188981054499705444845589884312523787107135884623474070979002371007086427359731644846877721102615905419466687926052844630686722463506032273581190834723045011091400468248655808080166928303213846145158392166073131294892628261457795134466864043971680395038616359450318861272873587819369610319822841081919080921013371186451397358180739469950441419057920449457323151335392385024263168722900842232268655702410017556861130035941503591210291487715951788470312492496925296161347169503193878214606157864948064633692215173637340931745571116983483142899455753985385611702913154275308467358292937595210528496572960113019327297196476924765426067409870986541675525313015187902178361422907198970669564017327830337624987118117243896348211206965558544254644931803438205496423189014717123429844193734989572429253651684758210310499159343051518118088613359652475444929684471087587678489046871489080713869290613388551991966626333755558812308875603332327133080693867006985398135769135959220239274593477108335995736888805074972651214397223545900177482446139361221722411364786598436216455727926403229331538682928338264756828055420384171799824513290646519440423573640787039195703365877624324135852934706440365921377061609996286866106800502691499178247540691344097605155890601871971861128623639774461030534596526252912772513695213922196789804070401989366188400312708568031009488987420166908233675682957028093404959983536523862653045193908048978654369916123995601528516264540517283407207338536670829205268846532958235069607625833821315502115228201927231207188420307528451055506012783566223350885710857889371820804801736111973240770465040244280414772363276254995144353970907568891366083525003344937511180469940264422724273961979309471403445214649859886266841600034597170160418325704671653305684405673042211902275725641530351774197400578496377985272851528231114710351845187242089405739747794408887593271149170408073219784189582128208606588871295396722774162466174798997759371166799849013424441090337638619247108238099909891842926431671985188204302287960666642761253284081693045149237664827209948113414036156391793708176639074262611783677319161672274202001847036239430596854449842242304033099465800343112562060667980653662564342540026216073655306167783043287589713049814064928046631450457854117233847346216196925799306833428970756994793175594130759842426265526852993226789213875476391189536361299518859875117224979906380759089370350195875661482542976923419791858934371726992666711856551625288886009945416193807683998658078337706253362173517025375120043232812683468608769512621643868194206755607334067068148489447192089706658256763281602917238079717136369523327037015970567004390977362125273185489442207732706431695453882916026173142202678850534660547702746232970884497102867244511123355377137898654283446612745377224330960436313672510743374569354862221760351979387522613298002914933211249356849598556575760712730542565524949005888483620938332536376307551295353135343746477036029084432171619533037287267821523902027050641986132439249703852308349861798383153216768052563753839722749215356665387633180638982808525041645313124329623724972758474987353818411158748745520873444750254003110590711884977557070977369153899641270121975159909393313741192923823617564334279710270039091579280240864811478687373422597223098444607902651587265389322728903974296631511737009833029079996084804247471937610271380511415391647222101401864370580050438998974125083022412297229846201379745436201627730801021937482973894033662673468120430289528179485826409710476318351343965848767330668614639036588985239069782883571150027099965012347184775008899840305723094226423233546034819327930508756676241432365769576051219684950304391449261663894505417875658035926954743102640522219820810197346194274949020209555178097849025427287080637484972015333947122079027346227388656633841087577322361397958661771923078938309891061147877370189202466219861088583228567103316762775155982175321590799360575801346733384748652469421773842086897366532893012630087617731561164478161875140944809277536831189726444588426608055612741482167757558149166354842924540828775183204731038215189688214608448809555056041131703237985644255818696321821842503309648788912163071643530766596775961626394097987340814506713161297395067321247921236473211759298576067925713186752088703089441291090670408537417956970947960176687674550399152195089222790801589563880492717389216896737770620325589774689487561872678684554732052130894799226261001698162369800653183606467840042745083374455045442710256549868960974612152605639556185631201664160431406597441053587172835383393696289336723596737804090313269765316749285656604874789641289890566608337691800277842976601672907199230605456290434213939560021979764493825818025677077186501079889884049213418507562516437581243009757539417539575567057189553796806156360180548767729889514722930667024222259431906513671830411237145167483811857118913213662942095185233645338443741650685654783816111824502417193436103595054741000212880559021400614570425391475867917086743704475884196197322764135984060538576197515124958300654066854869635463713419606048870099077267063681143777865859590606133803802767557798121619326642794838611004066384802268004519048793462362745528403675868843134872005656019566398616439766298138249005261527460626472169789233536933327765048656314894211608263556623207598855272568373375493773885914011109574617823763001920560638648656187170099677925085644180854402561303950906493651821102614084290564133522836856536018333467971880325963973125776880975550386518698104451630562636467562532366429183514476829979042728283380467573196484828252178815632085950315037294701652117465288087153538933399626361184340486828425765192466207522780842011029657377845004574246155781931246769638819302236556442753474281561255685807687905223571936528803842396641388662163899562379724258906916474083563140305076668628423670858249049780884990922235463753579601265749978908375682546023343148916354718872322326222401512190657863138907076463152009761003762728901253044839115319817555304641762645321979017126993726255470422205950003934623056680380593064415893291952879555282659535550070271506802627996692735247233498339113902652749581338910442249299857511068874276539276624636056753395812478616804781842320970752425363581541409062485275049629572151391507290446630338399191589782939275443833468170961166460725183210590883190670530177374344495603017951576210571439583402650680097778434354101122864501809128933016243218669340722319828150810064645890293272090447728060342301005642809892695168487558365799120323602792751940009569961939666956017409571977061203530294144132222548334609762284323723430694061888235503709540736685776854102895944177204294258424831596545261654060672408589330891808145175930443001993109722046273204372119326406051637511415456644947367464285348351363697871990086379011694777575244484889547362490363500434082530944019763866992737002311685178918770433172124866251672179624716272210022032501858512713693619340054677912397430915552165713314498395612519259688355129981341373516966968405479579291340426911952643094987256173374577276387673692493429315962584887313187491840937917787824650649716133044848743386819083996828381182609923653013716607298646304952573396355572653826021441588255608104519856838391438935344596588275420838068545607417220926508439150967686769902726493721054391240923062580701273867119601770049543064313986144131584140840385427105756428415900078193115797451071451861370643542629829166127171300921665496591163066901426670381656962343714812719677234891457369185968654687140384611209784176779451393292088700541246808142540765995984567304114387965516131670568327918553240343405944215402762642822046945629504829314965059520667841019538543401296084947878434919103770135672013283698928499056815939962321977638561431664231037384550999335796963509076465643375563598784236877653835590424429914091108169854151702691866160729678615053408699896256113306702016993935520678522968690465341962653917058179153941863358371793217049544661888645689513934486992910743229799400827225324972657776251387780922616976839253970864933470619593924310997330508928826901550023256148326200285854398218288003385689401880745567301959885273281205221010533933667855939212116456283186427627698401631652050491004194930312185899337648351929912289874251895385968756074125078762454969950441277138034990064294314852694559747531292233999701130825709613133686454835748094629985586291256183955780465190282397115560876719554006367877269529846598988383379138152333425958859424451927958492524202764487774725820705736501834189343320333603598216645291187543087826267981378305314086549904417115956512870272641949700006129632207705078250894129651417911679320826685303858877621214305816053445372240414292283069028747462592429703715672113020551225893593269194463031991378987096934281185260908434974539802664001126342057441251423545429627562726869623918162719218958357969745126609854733405276997175630211219404471133701810081705051924277478401536138437305807643904989513097252746482075406176585161852072195192028025989258054884912631541367567616661072544551090875048234670253446389251884954956637586507045657834226773950422638359096424606411114210244770019054658896081312280388909108867021307069390716992578646832249603303575318562494504889097199982702862694133466197211188335814642964223668088096849564669456944931217172612208674134605008228160068038347035407270435715792494807872219990873141935336573111407023342246567020609474354848343233466242217577135948145287399312418190454627735853137573704048048145880389718851012972034215331345220069967939662388004253660447103081401352155651324677187194228252257768623522063361376217590027946295067905902500208944563924579402763782310092506536552144205587533258005142442232939327351283162788892342178877143471236058620990147175310717927401723738146182083307903361273374681984050709030267717476568066402048797800314977389009190590079380800906207825600194563326504337026948998378747820569566293047165405797832833813895516704048231749126418824190855565862307497344724939110743635323382600430840983264726417007654231575275796445717847367861370787722938411812295481506536624578146186816909122088555984935733634380572315923644635606237634137197877500737019100445944176210405735884373182399394053854587522350573746434033709932047989882957438284241871938421783285807311725651987921218360819585755550738314530952849330869569071854543920936454350136623082370231582660710860427319179823282668048349894257128193917290630984002234033223145309636031391293525593187311700275454426763379283897120795950451760482398162920312266616231792566476726460188797202830912562007304826572748009827025915779667224444717104188444637759748466731477868582976627904978764190419278059392927777348525653921007453287957479419299850625757804908493844964071458183329933473425066323750048942943040971114589602053819256163179395822875572700478365316455646616236487159450054317841198698747312911347607820543702327348259102826489093518939547014779326296855856104677517593440219799985624528672836500611565306602579448694931249461887757640678541912198841581108903806427562977729976935121032925860333968090754310472812521803674106880443806994962673171398046791886505650517217365024411056016300692307795844546127888280044405156359508761573611747462289460134988796419058514523890644252077587584076508596459180617126564135040908656043981372116818869475471098889166611878306510057057291923276405591209480553076419543804358041993507939989022902763396911443717699201791561568006645709899975126313200917843363299164721324419739388882225614354416914699450771947245515036737646872071228171042763813762139957515221724772723226868284013882878310369005309212210794790660239693091157715460634714358280268473099223398174446661843301155882594686651575125288373937958242512568951099060660708604382076745264003968800514155762304693180774355063523618567273203274680935252405438550129914940652579844946455394275787715386283779962381707344416046165902104282926645170304846398906073036509888266192545072342890507710629444392161794161977890199416734266350564962555363926890732824333936248798300650597467907838290987293982157999019317312175693378978262120261985791725098905225593591561579032145164815339379902582445180062583496362454800894088920466470818096073498485894874082758705948455981644203241282359486329770446773917409913164867071866589902363495775624127656235868605830926162064557639378659405788223104422839646153433404167729332330667972517326064218286093459901256307605954359101964576501115245214562194126550655103809935982046269890950984091511229290483238196938438319535534629249435728884419448576473334765246229906356194919115110135482347609802942921471178773008726583996584541284536118827818374558238805026193791395438390156637136877599167796818321118408046606925809875233722989104389944046424721436056742294598729206750631012845373234372253434424539062132549021662389526807158249411300820814935522335550653469810652540989075163213390683115611826495215681463859185674444767090776475202321219230770143129263173260452903012357226226861184770580954767705843187110090379644964880334471865253531952890930153150628563467183701852442107270248679005886967853107428932002217324362350454318061069719847993133182973576565303240249211280366602271957857151663202684170878361068743118635180593850782100988778070294650394743602604694533602726561259462430426674638297870048697954339876252853811912848263801749456580731047549869512143087671156583399194253404788731153234936422415561317034401820996158814836676286059517607734718558591257324928051640587964575488765164406660518000684425905357776355737340683133108648885998574347587705927185343630563441323822339499888553011366316750916433707673227110317747297722740787108345159609360831034239634302173805078648424914722230439187776042516011238199794653915071345630910194509441056469098927087572885891038968810480718853956318090793159773659343304618969941524568123674086385682126403509476174735352600718903589087471069398869519766007394935426568938312734474030802287125473683112721725277467052102442761015355850633167793466739344000148465103423518989378695455854028432542339601136165922548191113811994974951845753414830425324347333895806839278286445656665355709542817644559663519481456718696945704526278145463504689189225096053562710749701379499949241367101876845919422845633174768610582495406589686338030578620339929158155800865311491560479869872319599450626667141039766835408002596475946637881209814395219530155434625243462606799079253138908392611132014551559618966815636011676618712298677892691668919476104296236774419025378223689307639014015853428250255779739528974665216508176104745910833857015501797201385266406859260083195483550820696283777454534023230947794324540035916562976052435334602158467456683357284580696377075358019055494854873837009885431273675116069721270561709583752843420100229573753445387754952547622572413072669694777413851968714148103531120862247924443088119175772645806970354465489371494565023567038889699239105039345722432073698123873341122001705370036082397742968925074993174594915097704870344321597585359177111032798777958614220812275492946723339576572234301265707173324381272246970246877526162242897995665399973673481115361679474353345097375396024296612707841413845731650619751104728824022253719471649193416213035330025666570130251392720478859536476805813928902611048524515656248872313086000899052744383046051739092751605462109812031550306997993140246192602200485996374479116516524417609876610609557359531985601651620184338060074830901087036755793192415331821388071474360153106025879491429701483148290601785059330024179895355451124751284128798014857476699076010577998697580804783082673335944589908571160714441826601644603424521234661900499854771993225318720640939962064206378055634009415821784057144501587206598935534743461848281930762377457388656786708163566485427794294032605095658701857114635133215447972854767657409414874487128798499830510120283843147563769193867239274345227071361810381954563437615755459543522461055929428698403356561078883647776576174335996534566832067246370353174637352997416082373877806820759469022703402027122509314065053122648886239907031201916823540653867016013243931520099262416044670081361588327244280326687961337609463202065628486726584984651810238903957341309352941014044538393644893631589771635549292700961167095735114283894477230634465382888957412670299214230601403354238955963197066617077316799073049380343475343780431381833006475895424307313279700488373766289016249875695077147515378317378413654334478880616519631234975058261334454985803914384077044337653372044445462645206354174908170546310651787944914770432482940882157511547010242075786398350463280000743242649952586323510944138807957129778180791399216194408151981391967135002812712702676630665431720751819540925234116813892897220732921021937471217203032390559856884890927465443162930023338822994863084708179022961493842746150924558263237441151144636931971090580975653041331920868440758062371235409377276068959383786426244786757247352705633694275040162454978379501268253836008494637349725626571168697731537848310800984883541127100098621441034157601113599516043152564253867835191663372233991627251512576837138746644957716130869644286394983056056935946019234313019241685627761795133676561920586006870657815484044495428968649502204863508309233830362547448897054802698492396049805775447234544326714178837707406617773454397111554571149219697435105072015005355063618112681923319545553301351118428460033259778889243619665969645591351978947749041619904902272785161536763437958546835421182377572784432980342508890646761348062137219749665009494487282786337889825599753381540183684107417390364173018975016641000311368006459693862002590311408469877367143613306712446293122559523765160475305864293681969355838787513162273654177957300203881324120235535488422179956980396582652782440053803412526846482676685758336326653730671501520679126412521960064540591205258288286402021282935010139539590264673766664562540897667472624912245811191599844822849555268084384167546821262392952566158213791646628728370134882026639393141971617349999663837099373276807309795280301267816242083716001131093038549811885826606798006439980046498678386968463034129597276616096381019873512326767041948082716820116209558029482534454648382462054505321919415178283118821357186929115105535005863689575486341158291329226530644636907038944493285400882202037059828883998523213780919964215794776657318141296793228462297698614418450632386792308211102722036763740470736085022215950378277898162181027830001637109775423426062789231573791497985869235122461878577710312193909434853911748972104660252613036248473032367913627092946765715683705077128519943520320841519347269747340904266825639679682642628670055591940544914977275717817783278919695816394959107966455949793155314161598481391609074753408849147485655446435947805098686039874972162906195467628808836624443872717242469544842573887861720335651815883284252494308383278725505249603094463843683766256971238604924065618896262437892132110919537506000672579204218091443767685573454850922645869234229541835024768586530058058423828971565226506533411735926016368189899297353307797700126771864012094995687131987046420800398137950747210266136178957531458030870197303692302305118623124069763577371471324498196976355314841973638141293692091128909121979227041560884169634001379564066071525856518733144347759926877874403993392784673254431458736173340312752297665376601549763337808689145247473880466642085162122496806505154652434495674380493936483391507839833091871175359598882043502591343313062782262440261009834456726294145274544941041616293491589593753265868600193452384079747953323890563107993259863833605517472381368670907495840838908799819057608074683582014840567490320521635755663989159341389819370655737850791570780293755351338422195217704836853561880796069252026753984819565435382783999678965573159567396856373364934220228405244998758940844608912863784426745850876291589205575011178010784340276471418858508433305227046262903466265674798944917705229068683308406570669341609546788800698931151692486859262054467725287016609099412962916201816429034190787725789798274809437620571751213330740395132553296521376072336255813072640116271639694925680857222500382038512988011245549993174007334508682633600673841755295764755773723543970676870620718021875127281048127512084491266641998871699639459905203822654807616402503101510003035896364572255407055234688542669265749431375987750343830396543660642327678322564969372817289664418944264512126902904373318134889552179688429810511587844565588027653910905822191862949921946960487421865717742029830007002028370156651281415928237553372563585134199157885456969341632633776819147290421071830966539704606501087304195072115651476318083954294978352100728229402673716157522606168584874657578941759321654345976364687897587411554672891200282485203273811944229536694011624421728091983844682475296282829257195913625705641130689800894672458465363065744174939147712781609602119756772073335554743763905713933953507379193103557045947367957597249769852054482473808183651514556771855257851521511532422367678065917048416541523873561701235167207242178320168576545674119075470273820841121634658232637243784357168101424177523943372098997011748605224535687795624481543627179409972089344590193424167789229708867981722500343590427652004219654021627729415920581387234610647268682856595733753345831571327960809907156115968444754376395178379883413866440277824842178381709598515110757498875220491469255152307994872883094656103272963660321841099040832513784907373480939796039163933770936659850210342227019283672512547415734600179537004877172638046557150243090416760758792564575812053255582436375353535489473305960143326202398431598402964142342566808135167926238353582626228922397617295026308628063916450740306271296524518137209929693319128889869331755961086076816738149643729425458744161081455993270724022346942258756849603612239717521410693427645023022372175651560956181858517206729885807426175219889286831534304885171295721498941847075479014506170124205547567352446122248858861747529102609136214065760379905744374737409464269590451983016613050500338155668951107734125233507782776299598318156938082711246689756275055575480978409597214992361087070142164821052664200771146317895151628699708044140559182891937631243913150671791684887129285168875467439394993232139845433102529599129342430408581826195255536019250177971642941351578675589618928002835159772243442706633045791309783132177483520398077841440969770442565928754016964468719183326007469082681932582176550171119773490143339786710421660703871409351896114365828520498750659557308885703355046084605460171463169189481291615698091556253342309089115882239487264968356701013124066244699827599605359905307177922201188252087063878637888405261565060818989282773459906004680141189194695541009589852486390184541702087288717156817426148769466924934736113460189122559894150795055897845468355824745309500081500228633075105020810031635372484008778551028611320322976779061616657464684138432434089763761507597971491411469659465922596033295856598121814999241602770386553713202089236116567646838506296038326827639911597224452981713527386966070218021433886845141779357615623968870384581698683352209572400410145601563318023627652254976047296263282806841184469795240942443450261769158498467466017690695283979820534112836097219435220463071784067004263059039555179127784558369252598599244648914287756737814949664306492814242059598425919126400905899193264975784893450270901026170886983518820525082423191601469768701841952236549912953580856236677305911464830606154956493632676261571347603971306221489283081575484105638489846221612794899583815620660364839334424848726370724920242677524037600961627027577412711287016306702619214268852417791053979594545974436821319554214526836888689866891069778335430311195606515995435783669428315163337410816857015624268854861253837476041211025637381049038058686513942177023042827746006963402874511459959939216876374096602832037269192653742097116246509145668412893314510937695452681243187151946421218978617034799899065799548375299361172015983351693054655086858825958283516102484907602915595393617470471709557899283459426205212937564194301401505819689902740420071719485948041486109805040850964041269987920591232120145317591255609906664027810970549992099125700072574410982486922195980975395118679160066210531823950547657476513730616301279246009611462168630558748375356649730736668212678201014163313252602612495628887660761511179496221187991778050503968488581780838726578151084508591169825651912433604591907664224553903030849149096577124112227154015074174694035961157798716602410374418560918544596280475855381091654876659248167896073810698790254777597757655351981917396258947407775470184423414192468647037557518843023022791372093904769117297145715602317005531552813388667165790047474721063348548438394848512218218039492156542174791008770886804612727364830301825497504739413617787123925013596985314195717996602944987529522138141712179821399524772469095206442780134613777944381516547965873601789981116926556394671772984850528055225598724544175850762928084223315812260710754526812875897452658460718953749177622900285616737054561926626476206800490549071794342470979769381854250923555125274016544186676460508109894025808067234913275924971769189554972509949299655383092891093557554060539497939129386222093854468091974907918969840733453080483333311542760897885817611062639139535598734228669261739781423687402972882487423925567644315258592616246376761806528084550709224916870238236617548629590319161225182511187909373356743535105067659006587212014571015197030101113483327633831602805723636418777784206044506205893763822846634942303153805714489795758125301421408002170273819853861232284973543617724420087152694343195399080440827498630241020686468701432782599055306550421670148777831914182876501895949664103887050538993932824976739285269594778714274086937158346559609995323613151088843971026120419657849122767714191203022419675184973870264818286851570680306859332891307790497983725676025325622589077864752736155479561994558699108572069066998308026357584439091393528925883648741377380869337878318337040147870229246262729974982186433891469691160360538864169277781553744861335119470476618053522733032656687104802464108202352976831725186790745588623350563274049448426843578289380394136414232980753955767154651888566047622129893728727540694949685348084601747603096538815106630326111628740463531716463476153852462269351877461553719406511567638636426361175175644326441130839034202727351958651524803488309767295433463979045040434858795554311275019027907866153566776466823161935575551471201253599361536586831830025796312273166788829096728955794117161992154794283293853904039438191686307666335640731694758689121825829995736785088159994291509579549473920391812893511776686634521908908536227141105763411162768724940643596295325345041121980584183999926130673469333206285739312831408424718987719319942398353660143375545470115741121708282510601225015304761522404038443131155516825508117686544841126502703861870961212325025069421650208917395081183869015244047019109289737682125383818881093884574282397236993507836204571242732809394527733441615089940336533026811347592384669749102644357876288135320324703891780869924578119424583642879310907427960568808665730416524401911496025114234553267097799722355427619971878322914894218122636516847167175513920575301406307690651898070042563191816842654318338785481802367410280566708899191179019924095100989391413754554698372952163629435818175586254451689944240565286031487858054915438577148593238362168063815765070896295227844647204653662896230857946285312257573914270315297999431122605334388487421812966769152884331081001583693836751007920885579846020256374325366135126716759743905909217855096575306013028456312401765094972977069418102287178593463189145463685304302084444153067250539081356533124098642820400105875916083752402730513557885578980472056331019461748583642127759030276669802067456165790286771035468441553847803386440842714935796465716812654154095400446998927703314103701572002896234108655133386937159414353791798344841553883072791728908579158840026812619525421389190760482859393428319465492947770328235114876651215969516129531891947555712356197771364128132595145819056238140376183931450311795539887027907208435625944872121294774185862508741333874964798718331776949266551772138661354036740452860112610974595634844707717449354989127825301225610295015431449117187266783957158912910742303546499976407837099282209711862773579388340898889345977056704481597969783293431021788790643606526989490921243284618738301270476658131803676426887832878362381336889074907306323058832088940714879035142361715536372073258343498680382316211552227768122667916985009144724828338834721501241664931749931271582055219118003983843725374723308019414799983089138181644937713423373946337516061015436678862894633702931731562459790793295168919993211842727159775506066073729613940565275023498084486723540014131688518267454355127764585282543814005484614701566525831061030821686557474428386916427606818686409232824093989793371702582166384039525260217800531975259031147853440813355001696614090811228408740483112769687270357341013244604430095702797842234358973270764658624961352068662229476661012687478768872757538134036658153978574924079210076720545679057482760493763534319110436449799564445877018640718193419872610972022737747677142111826253193773376577634593313964437403974315175312528977540499318574324764373339914561598809758662231584948727900293658916438370225924016895038648271145712127621715330371405209015975245334441532538643149771048723071627564987373433748224642558044405369301724655461773174035096791354391335021139140006180257211934898838856522159183572152616536350725838631136276837823911212119630680934008332041902225429227002737717522337729644115432398457591440305475410837457246149427482237421342010170806482412717498021240411399740362317430583036236992925317388853203617792608149734574163549190332263940669678535373515114276117138580890804477182161075029559128190194139693632909487936988588407525485590842392696149730411331056876955680914641880643628572718373460383573370080567236339313056934884703037298837290447004357127085788283114444486055032197541636322239533302382665743407439025747771574712709761850832954400658000615424050436631659298157684803135231556494861054101872938415866014237369427160351787227460807052777842095644652782188012924229777050415157541734476231205678031239775942958566987238466291012860143526325000575317379792306124627690549181623333975292800898950428329839155286048030315703133181279450562676701586130640556197388505346250377960001197689292399911773242060320103865671444341529857384444137481312960117468505724684678454784541425798061181137721245204097701988390596679414383937059360526482217637104571536836482497503796654382351758385632029845081757546774526736320608816686507572106166654816818563939753983792429857381846969119225298312100782070724890117932306137339184782176802878282646337989525131423601651964556951513094268764409305033181590320588798205206691125770598984405915381068315230611263102765071990817965495465242701637402851452645047631870190989798600139553981998926685508068480579262121789868591575367309722012694426143525204865525096847575201845503589549250787570366581991414331357238954035238778895716557231643843209146357749002157687041445317133794092028669261624310293379196389656259578273693218659373636759242025415445705752057942304129542990176305160979427338125516273150791445884838618048863612371783589643315727750943915731044612127856162491218877149631173081687989508697227283958342878865767867489299353990311593969677741075892085573479302218715789828346947792037149430822023735121472843826596168308801412657826423960946171059959584492861483334309922532020839862079479254410002493099722459056929017361130098447648893536716192296327314857640122100748328389819603184353650637550803250476975687571035272987574271444263805882446161083990311211985896073374031946074702578011664793740775900412325194193009674931775813258322447762786421143271384563297756610557826072118675259740873186389704274353995877224076109911300767661442065768211788057259791995061302225819924366148302072758005830873274717864516963966476382577196029893123744466279239538147465617372885185275553544369289043347654834649464889135281108596573265739845697185933994195455292402022568072903761101021040961079044066149266236749963957720084467766813178928531411801514607384648880774525211974048169309649839145603116463745325169215417306744042867853916885964621215593345861466648316923829105119541293411671896263792903884093518556514853846897457168549709794119629230200869078986437355625151908615296811378869819811217917397591183156631762076480576767067363222815773366732578353783729016654164516529534211265331970513365576591912333529350308127661743854169701325029943461440469412464379285816163183794315301008799215429331303458854567458208572986792698643576779247318797782776904955178411724337709857039615334828392627304040823255766501229827197703578329454916020759205641568226150798710354247845237197708741463379918873192238172374110546253575750032745871693282089400414687633499828011173901324289300836868149048750566117769306276123746220674316578375779888924897393734819810576719397452351329961279880844226635557313301525362466207838984636550613591087213314381795877905065306415048742502967209250000054536789308551643847212565604054702183752777866669374782045447167627463422472483465650288392240193191282760767959424603490536543750926866452773449659009751836691396114190101069686397673692277934367919492224591706493193804626245151538914132971521624508655943569108614686796920668296509997216843908122791346976968623154498384676729086883606395719051766311779562679286350004074941054777780455515362476593525708178963444340291709255224047084384138237526798875809712523255586321340735956641328910076277852770916518890442574943754494334510696846839471741642215700748542349653130733299518501016595627122628692422281998414270382766080137296497718011032766674484659166904216371281390198571890332456635648654908064412589714799295512412733833915014020216738339500132936362447994528892791073425455750069238063126312368550131977161583932580328190711540705365068526498917240854175435566005230129404847498817118526432112556634717106717053369227803523276904285754821120518367601246857849674983862915633195456244289716814265494054396401863517980724901313950704835658096732334338545270247235056189944371172093905231384040910923380806690750409953788410988704298946880224532881794365243455556521725582092190244205249186780312956978491792971638840218504816403290383729168874604733345653278191836881812856900256158279502207453612779467656491852338953976455876550438389167477610555559645003481059811910098257905138404077242378982048679441457469903342119671858796424857702175390941023248378819832065579741381429754802846387278501698515687012692443152768957433713548032300784358569264041030592402570920134169034939860884244004020958738722052572349122253659897943985331721413382361894142020300659064987500376487575362526495673607860817969958704120461051475849705327291811590570138999194660347318572175307256098092376835470968475192267646694796258502248520044930737551810163910574572914102945470706734786706299242098532861706569753298039596907787012104575393275873566403570764868953078829607961160038936526197309248379819207522911322888767653887777826272616486837191672280006845024742262806733836359533090821379921735911465070927620980027419877684731179094486081081672683677008780511805133810784704176033346222076267894827657760059251704720175511749556922486279232916796164418417911371123698682002695895795095065027141653788034943057930338648036896521164254057039952146286220452658776251430167773391280852177277052425357485926922716458637885121856001759789442555634104681039999363615210334243952136230610611739341715848228454580820290715483458997847583741267458066265372989814561970888440322818345918927428856452849444172293980149669975534476416625581711227971527918195098654505219142647472849239134402400528131347812840390338545591057751358226253812258658211251199126971570309470756506445913526133933792847755537802963656350598564959591778352669885767499323865853900852989983784618398721060402997232235066771160964672739780206397956849215318271676243288648759740221626673804272572600423275137740600838225828675302473278213976274715225724149965520173085307078756164021882442467174914412603330821014944687322760940726601199775409087457353033891922645791881938462281551647248659949072437270905979638480511103698126519812595429424662028117857682993600094279261671423775376266688090600157480639658217027297378177848386624988944195731296957636320907586582179327987210058754000695694149491276483654873082866633791659176848989671351072473606940053274173206601382693926710538710505923957864859439405255415358065172493872769822715960785090288101360527474766312966896749973006152582095897306933135052168991604270921550240855078227997298943081625875882351109975719386835236848776901259728154141375814984642223220388221384910075962210579851311092678282308994611647773100629125422552991503639210749983319546325794062517430003428968264340927257600252397204863356550238361323222884756038112877535176594958586701365011337222233549303994901688052179458294368754639305524787282062112921022356759988531294337047549099517527162536994485351478191420216308188980489314945711796651979351461760753281454242235075861016360565485531550623582695269528929363580931249204598597844889537976332013040223130754045761217167558379557204585186436112731554246906195183262705482970348523697645599603765135536120179302226605287431759031397547797838805546959015571353854416518521798580131776006099360663138255147030467856306028866798780033359456450078031750805539419354677608851825893119756672455743499355680378329719504439706778273928139057461241188480780950323521642275682709632705384115678286066937011052359043944103717001645921780964352694697497794603857146167375939169077240014740201630385564236785280366564271668890844236291057752453790396927831077945138391607837166502789715235972965492504842740284649866651754968686021751364894734349711856043499094775284104078159646174442791670686144847033540471993459783696769123360383484162789598130958611504059152277175504793845240850370285440126754664753133634011700951897453513901826996922740202641330106329229513538464759575596313090563794825136279362100238220087964438946371182121646474582412891047998755495716205194881169655872362655872015818160696751191886062956741376910728183842487314858936816452303763739275847021168087309433080600578961634354116325781319137371571950078769751252283851597978379839848390296252060097644074263012892611809609696496374017761741257074080772997184416767329970757339172491243499222769256210196976434547351894861382562872222490828225549765417433137522234260791720241858199358673017338619375447398440874066035227696447887275132475896913970202861177884322001386620396582865965035284728250698030839071937468654308580364170128747914818891857162067411008530393568924450060922626701060512639447971769475439358859969086666030577097350001089622448035545470310815136321670394690180660193122823820977758464418002849487068676459081436982537140498591135123484623374842661053843928124052465541888829356978211232928646125742111912627775735783591948625767764285911884617745148799421347016258359923726474097100101393369387903712385059589640373708680613783342325801987826865207164845852359740830765072158162257690605082717968402688565135406071715652681734092638978491204336520401431740931847437822980923419704442945986048952890377877440569691207756187358663548320511270829743668714098618380008451041083597923710098839586296981472292204050169496840297667573501786997897437473549362048971324041380744852095077855777188405366083970004938875844584208305043319878281522564875800716264615763472046367113934659181967854803908098795338245541372069957759841322257878664706400334888113056930466459852297533775198531146289636975330371160969079810909451335440920149005771680821852194328662715679725215319406817697367216076795772513988604628053112983834394319266342284008316522202915193146040356641633711778012930834464382888013720293106060567524898237594210575754650883760917789158757389045794939151213429739497043430916497560858566531423020300813905837667909346906507700520687133166918487030080406997995480752083733586337156161004975271017993077004048050160055423965694949042323354406552466698883091990124547334021062349844195031332006433843828198385134929829002488157153109383398994235111687373057002108360137526811333004089316781132071060388370341403424097565954778707615086308308284133067614873961737492231150738085874927475962685397436819907915784721184660855281989984758944794676004688935252272516101839558789409087422715540520270848523684332145078653660547795875784823923853346822835746943176995631066739584532950767046019419515991773911099129260189158489817922438029408529737324003404834852524516647858364515443042975751212840960945613854217906718136160247237996530833506537662029458233328784223098220874290092548993719864955849420348699097092097859008273265834408531921044899635429332021983269713990588957328996370863247182273213475892844197076817883443069663468285042673712188613324014367170476888864019535603129402004922171328158777813143088096109785357981145596580553816539375207738377032618056494327658241564119351803230046332203767914389433966593289935798191757600942884187596968790593564527622943416126463983432064096508393813512252557834202045956815557107425958121010565706173414452036942691304530439731582851500259727671733154724856844603717827836401101241689631548475391386627073469707359753800698700700134342020160542745159642620148677474417767575778126712674284780422733941922815055227407487482267825583735976295569275965458259610748407935422130354254311779465372093973616881351231340607159137790557147194618364852741029906511958227376757170453509692615102013057093688267429357334122420103818725420801165777932921720905831722444605834698574538714237920157282960379221049275027161623264285145048781416022264659566997900955549164161761551506090645727315884736526539804030228457107370841104787770153394306437755417311155167519347530518577664947430996285858756982704035786291725028519353823548316314913358327098236364293835477031535177579091604500375522648387580853286568219984630861893068803565947194886364154520140614439965586345037935033267472955297620278823414923059309835361780529929125235598215798381440889664460292439423487786379469862188961654190447390151854923528709011485361749338903636830111585288293072546125499518478571192125183467918438854309611045538305499802416028842785540392928922337666170453399127017602840863548454230455572057708538060198399671035118378420134166323443407834906607017084881487472481103340280414193192071393302857620765393026227863622383458640710187693541221044566920506963798941847303586792405852192272814257571157781419175777305728322484537084695590392936352808057840282631489600025650405074915618361317513736646109280792388980330462563849501597746402601851731100685202795433848176685167173233679733732263490059785686767280733822449618871545330452399313915703873431151518716562050495624029255353222945736830435088769491819177343473997877998306468601594970630801705303784643328321326647603829375919588645261793454437333722828890956599456408766675890595857373498310410878953974895194395924631546975605125970609246143652435939257794868309746554568462029740665538141805975019058545226657711725090139296752050590732078379793721720810228576922910184723023163131375258082529031966859367766808580783442965893324980742719284704100706959105524314971446670237715854760460396695883214124139843622332844715853714125432399095760825256523814525578772187359183873179523741349506576018712560722819901699148497380567865511480312397320911856457353665238818733828018782858335454404390166134494844775933195368723526460437820717827006054519433835692876318135419703598377031061376148757124741734670616710130813559146459887648717002507744811468912511495833511812041684738699883003358098523818656184595375598647604807347588798612290425709537802579137107239177454276767161976677588009422288760426823521870959250051845887649178432111895423614546915357294465295898932071258428956005992500267693975587426243552736048259500843628201353156486484071417000656333465807450540313246011079901718668920813361637879872293301940950377680666093307321416283790125488234106447614186202702459083816709442206633466574393201549199677430507375813243007517139757724901015554184916102913656234734675196261531411746797060883201639414265897813008848105168627210861701008167387669837763375890137958092971058332257908575960423050631035494657674544438807613308242681606088718174429936477379431510587141047986203597821605637374645478997542701904143781054156648981667879330256582066144416119539586537543699330082198684272588588748484337882519746320337499590788756255185848879966511892355570836978446679157474079924255866935781976677027437969538927680770397191820145975453865743263346842250928894698245105520215659045315012379317322486665576734695510223191371889521829831787073023427376543839789106048010740262075318415788106016559596642814828638690843192855599269668726196670761228730522794030851677294217647843827748836323694312207163393300160998291193840202615830391577402761244488518832921952217516862707154118718146962882122607717155797403747948901609779242690802340742498783664924287269114876424872158579346462160184053206932552912844131305072994086637468778629334306298968320762038071316025312938436188891095128735880372310077485909394320879965597808411625288084080708502950779097561123407190117904027992813255183647624468060841009762553447578608914716881749825735042227786608085385316941555554385074622622794316911684095602681827432423206139626852042530126727237627921148992125391947072493571233787434338148958555750857589815612960873883023291834481416021198845274716718569834296062589650290955722447778652140214343421124440224240487427254443059407085612309561492240935279022359401998381225771122889360409555545127207024202971304590144326236066965358767997350008626592404551209204762533371763462453375168301824022717114307360075508201930944807158857189443649574837206293668994451808589313418636107510469315059368822322265412493703244047678098661293291152252216556329082284904586135824376997689621993979463433404383262491315196824116456604323875517486651989422281402895910512691977566632380386002141511583298935126003553640297397289314261264917540634591123385854587616627505361769150307681006586292377355613558122198036686451340557606554985092274191407249857754654577698192752048391502213053855558798807440376684025722985311064719041977575617114756307627459111464501630640876141638993033620958018220557251627110244841882250894294612869795360309268524080910856816378059872034237959965301123746100165661504956784213047628724575591894806708461734726676101605579882308180984566633138559779684627841750584974319054824388976329918768319080932401153001409290898003421228571985834368258867322007914423126791199595378523069316763232205347517059271428718513648480503716847396272568829925226240956031132170022175038071343427324117691760361119429856939222602299413353143622418299685781038898301195389109061330408834422801559860278409759219737306261237089739506763706840275623977192683687324702072917800242925744035955590192758793193534883038685388031725227213078191660252596575669069223607083465659563227733246600475564499703164031392087804024364259304831146414695646053097725027289043408655907647872065083476703538660226244986084404621095172112640551390895596782820089409706268833896973424493945107344607436850129559515455376973989921303872729046322716391639272025799147454949646671937060126993004866886265842139118804036801096488332698555528047997324955665398864742510237510531618353064817401381351571593723829275223232672894238101397111456837459213863660341038399676451011522791117434564114836432648084024045450135615658001496115110112424497471575377342642437229710468582004289565703296567812932747522922530814115398839343707589605669065274050294179685087378745385852473702330595511397443801745916178428674790362670007363717747993976688525531624904941152851103070079871271505262774575010037572069996115147313441547003375517939176283097779092872363786158838621141880782514803230436656400135990146485986153025795922966815710348751187353264799255404249343042270173247697466693205292387688013248437859704942202785995831109231339452673948711641286574555062862571653593357743831523167799594747250433306008702910943928153681982977299559519892883758088276936180056587426434908909484545578302856265807965495435038891939869304386763857467758695983609565189821449563031672535475112314905292563564949667763203435349410923953092167760734507687674482313846900799557231451936791771267571524365063904009595023263822353674071582486962019541212491073242415332638006178323232798446785414986475807405016984549794387688129338923606684303232384440663881839789744253458493913639226980969011786337071988276164410494968574889159391471498488823057882279848797405613877769920256529119433095518788354715545128004475402682798703354806361518701604616871989992615132699126950413239176375818053805819804947759111815350693302046330959822574383286274252502494502351248198900860208414500603949764346493337277096691360176640829212519019451394597614513558854185821829168163207601246610921755416677814824619656073508833961351013814809924586309397038585906582956248194785553718138663023288008843906331434290615973225798938345684890512562195351664893980581346476969381664355102768354811775757800183950714623522761916799581912786872678278864700076417171048951356233337761316609720265321752701324254612336678739399890353123268848725586823228216970827199290918509383065547985359731913526490970364248793797860600952929247620851548201972998006715671797746006896990110253048859315442548170536699599010357065816783282916695153582588353293463004784213854991701921280832614940547141264771892491009973627883828255259200007180104184498637225053398087100581897818034719684674550407854125384711473915670558416825794479465249623599797047747992613576513455078952594048844844872699554177145273437542115961594141814973411413805464793391629547927821089997899357583232472984299863775599122422069509015029964511708294102119191363192168288358038418702343812527743986780726251230542497224598194852334228356554562990469556705661843890779512386874257884236933522305253018890513321923684333562617484879201494803062356448963021372739717761854877942030625422549818592325075059530536589828032089746244767667387582328367618389801532762888276292851563358589416725691116678102491115084051245848837414438965492747758871640712770615091790975689352477568864853785605060858899105339750796792498209741174302745572461469668302918269583632903484283071704079487852984409922883272997478201340467577412416798247803289482238855667219195507836840308702306277031817699012227022696079936901925608506302277620406567045001326651460884754554691482095088052653474477426036934921414512318262970870608002407750831693134657311933129441124794904776257589103481833030641083447951337393551255472291308305779834413693325993399579809841721206784924401154161814195283160323389812014984422469080768049497463758658450849626935921411520566502167579952543316587892635702348453637717608236656104048834844745267953606061598742561759629295983740272502909704712479333715174297066040639251571371782317543313048587566164013842203599294551786207989141184115872281677751313963882074685974140699179250300907432568892592384872700374800467911364862633709736791851532691708384715801205943235343383498426733005765603426177409560926177817441378975389264144055465597448076130410655331076587872633316872070506292537125239850120016321257103245482060056231738815353163917893073986055633952269978618087708491431062781595286856421773321739226233121077842134734899065160427894699819302873102798957734722335273256395052995461138650109135535627411854650981794471442906520988935195751498793875118977696856312389118186153297926808423142230071849229963958337898450619052088252530804060147572974048108483596650695656954209280697765272448298365528943278495119758658954050975686816775421110435397285527654183586147911231144856417740366199120547159443918241864752780012089214797069207352472189688616979050254805922319620963287739460446117709630343493402253041477050137286824527281930055569095274668359839466120474422575323931845033874930727571260259582058232792690659630373778453640442879255799832030520471038074001167262430435795216697626660909405948958390284167563384698835795479397832976651807115160824969406864598917025733097818208267687891892011839560690803562835305190924680198944170195484094814126309363755419086038663154655555244583960292977138031959282186059982804182884091238933583324529887751436452416163937556264749128149355660569838166226533744366701791139904487551976789841422186051156615035578588741180990471944048192576855746090325475301846258179525145122849870164068146784139714456825251065291518035223377205875840057872433718879017258928784843776660372767520001674352644166909200671136844234542182043987022960090974708116237755439550470366211066653801075007983669226357180826414733650788347862761474072019974351605403978737152880130900207589157311975564152782604348068941882283049482098824483257593872669038361215403040523835832748202683452577076321164362447107475623365959205118019618084020739885036459906352286007028864008046984544105480487249058234065895413285327543507219670627315240378914866672050459588971845076376943025397443503865715601725450944519844879558464085448806622815281755781988198237381856710520491509149298368154377674403026406778557757212177363445587673464930759543842049608543069763279474837512736983080998467116807786804090654748200586108283891411799229978463096424873232593562899858932860122961258180725360335903680389589982647445060531379526993216271063466480799627135241068899470198032566151749394107387500603450897334734216876438939767844578798616297336418301177861026572156036875822902148543897151637966107291644362832574355615337231207137058010071261445032336552553502402011519480348437404665893112795757263120474410981715516555321562912529594203348514715092389274308244764715331651518330378639743386403224624329860374154315668420068037309645613797439480467995423241526079935150314288811185382499901970293992659982233555510326818436720949914737419790223073449006414290458024921971614757268219693276398794818943704461260297258406573024530148230650971153555160957658720697122775933669405727359734823097558692242812177927182067490732723472745090775498421422888097003955505285285496828449759481153498875297008901110669264805428136329193452266080454796895100679761623143284126929675706943063720916821673231850517233609457803263230985757481630099002164805743494585873706271564386788783834238800021381618177862482170366538275386839218944273982797673660437027709195686227715210617603253598044954815803236022443821200340635329801142287404687267576012601856344798855164389610347236195476446754571987111766552796817326663456884506311096500865967510325539177199713349118957661297534134576688924412694270546895574433146157779933476021847584023495367294572278938940254146032760373883698331641241653635007238912056991302167691421604199162371319639765796605302063658615279271439634763208657877359319562907686814274473517774030188896633263842926184011286446063444934647209873324625599159506251773273430338959368326559171059488170072347870558368063071442126339140426588326230946216620743076503580432473167271260365089730866492219416595500064287412527952606990641297181292436782787791188879154760027096867590637766807249768994262748166746788148261028131859609053240954542357364906442582628481007385626368824444246866568460543923264808372423346016033178971433806208243366144659106760639311288123425542077285881796946368303973914403649419207983945899355544023462245552621676688381177545825077683940884727602921279429394260169212038608194731367838073352654906556437650147924379373936165995082958631356219053102913370107854923408062970579652214580940630057495903262182839579420143835565592077375110633379926514998790850778559304021244183112479112476865151265261826138464134476342489343800382749138996195566064941674066891501754390351150428095576900191307338968813831408069868773711157501788518929536086251209826619454984824716583391173952028791052971422176998397100970940886565925689482491425562736821477216883160926991472697358417422098474825365933104280093310195709333468311601598776300936209163130159901085325253491185859964363896704138786990542942847931214673308342763708283460101231418150333763321183315466345047290698279369247769464212549377937898443975247694472136554698091912184347625632002493584496888501380286420171183425354473819214992215497046647538502835919075772730389381456536436790707559252755950938072767621667664809118200851827494239787896937600552397347867936161821213555402049294638447070827396342013942590867691616020784232610833899062287403976789277407539602175213560115739231890284416504314550468188091876937690535873456604481650871158814660495414793540735948872968747690853128241159590353855891473823414705967162881892740466211167088045665975767408519090150763381059726945115632927498078873390246032151529192987798989188638025917975905168971187101381693611128002667036125858848963467717124313262751379410454898718642951913998373014982945996947084585343370867301061660463767146765727996095733287369105287972827605602617031460447807843557814434421939412883691071846301483018832806828590620126235812009117353041274709910552966538255918125290943010464702079484674374156894161128948957095009767321598806785645498868222029908787394956106110688619355024855122155720525929422886693289221214501390963662474064932422894471495302254616035352890385235961236431451041474860337792087107328694389143559892144328166821802293955225663990949734031309887773845129124309558120853104259037812521395395283127931797571467536586749563418688660494021498172369917657583418230874469713468441573590864853369006605757149695255039342686548281945082723203378775664181795203133299320057939546352865638061909604576802260574439249406479139006325659604391849319163842794271161115978152696207425720830662242090224558376555184169102905286977500038549966225384652240981570135314529531083830754645850450746985187942938008489547972747993019277742860798506035686609190735962818464290464068512768059494537254451708613613153500099832741611586940641022742451471893959810854862027015520266618475329951618999043763126569852277442362886785425275662218025436536086989989406824099979540839157662990864551833726437141142252576749442240686259827887698919284109760568152188577766977189134609926102874399276393262028906821909181165596705749388941242645407287898221037930872224963235503842954381593975758198461408014388311348089130382379585260264892457376477297431547857137492268845566508435840824964150293515162517142529735238242671445406175786550728456236043044174378452832351335360417253183643165577496791781986788407279907768183476551240629918699030215562694292976454720843685497545374342168822573237664401109582841809016427687824823492547817507258540804138991560873019715350085824578861726624684064154969165143073735414860473980181730172172157762062743085939370221472148892381511349105756484420896522730598345791060050963354391843374895977600767069529336353124818203922128414967130660445666391743589564849127646252247191716732114986550908359128365013768919944132447874483702848722228537553126818122567457976279201579668732341869268243314336337704133244825316317814078831691933532069687830442617925594561341078954840603871220700371129853776578166348454426258683239960356430073530813752324444881395330007733598755340268023176808128812338351500789459298135124221660471950805154177540371590145670812179455576734161162120976785152811888438510290485874975126428506358306306089871223291555734536056713914902274822907234397575136773313224954131665113670176657300226680334923720901418623460441683067783825846162532453889974898922933889166588803726537112811289214168780416296398106553749898812038190916922317200892951726990539171189607573634479916835925761000277023810880160099393915625857635719674614790908805253323987325164191885802816619962804338872763308148367949316391617479339350203354056727098481839075232689344442364631288531066555547677932351557864933193062571585500254019097952140765731424018845850081533175928693062348459838509207298450274788699408035545463679871197363139849637696006043350042285393365614595187872158143312785480082905426424389275581804521458864290293306719505589479777471205162616396210932478438652513629188571736009221325207029036470532995389437340235585796553396174908009707525476114157704858587688156660886827864541272137279295831716522670698915608370205018234301916004787992564348685736277239120467236722498637997116115433238653808124146822778078258591432925652662737474019158527153598174208635639876503340929758265440754404934803662794233294604212502824672983274663623058859507642247890114416951580440214012156106016656933851847248785669551671707612279324969353838463405955881602003685618886525129887951566389729227077542430820388074465257675886730963826447865135561785634915501256385396393526635393320869296479684642429616846624795798770349936192140199658370313443642174615541784833458242917449375888980265712506434242364714463808537232724148751729217783682660730021229064762245165282694102622267057707184796595138261441227014144342371636888164340698154989884811224729151892505467360880838898977747031961784597550033217265285952595865498126071442691748352128193218799372876314076182146067376104644367915998489137532914408029134899827558578836241617482532761590679803645448530860619952396618409705236086311831645351484278366310845400428653931411510282641099459465883939782610592858822324367675642727967347233531876517854974148782309549035583443119790237948074058290429249744048484717689516728628169268715144298507994074384620588237127257129138011717070347439305803732214153382320680295335410345776955552038491662894598041331115074209362848861511032349517233792464285560437244025784185990396694869864571400774183333414813830091656149732212492013918286570012788228952911965140596249948194621457786226295029810867220982835397180839998682301182082158384910280049963641278475669301887943631773794952962188238921483172827548339693298207885558270569505667230866628967658674056536057725658449031287624000900520728662073941140283167634340448675398950259469562752314271354499635545651152544475165310529998586416830406846554232571527439673397804610345803699040250151443526438871715475007979919830692465106946533425260087389302416110817863148384666932393959720581756058527813658848978066068450264319315998358194549163886005613541514678967728737896136493973261699380177923353029328232255185957454461407459838106044653368966963888134347132459456202554228166080492047374026183501651460218039572765161166287616808847955529317420529282331101176482421060938656016851279544881848962883306531680263015495050894597644575149421599388088387607520730155918445020087022802031374291579917569339452760991226443788745027151398547388943150717115619551336003449821739049304170391002278303274220435949180476107600301167455503537638039706100690227308364839231093734495846076780212170826750995456647975444980997489422046414824664443049783387727030903813875443976744664568153507982059405839527391013320109856197388355618999149854048098255909841615886684608053399852816964520336070122422036263594993055021790677818547824537652793202443204914632185559705589063124758914656155066972865875788190967589328825143249055704797338773459378257102633425439258016616336653356385647731003783780776598747810457799932407069436487981099575489028203022520324939608183965254865606548891659278345305893844669366003876977088084599621233381355151217897451351169658841210939389035666922923129426676987833705134261170351389368940225774642350231004916983538835075394072230369702395536249361559683237797996479833618935453773308787111506358184508062054249013143159588594136804168688553058103277683105944441372666711845377020032598153019652927964258481919959863193241547480199423709904882735737000415995553493570740360601402842933966870501109516072314149216883380659465235494088374882543884234997889553265301742476325947153661101265017524633664303485716332601663567122078707049351037747201860490320048984714536245696915705716993290401062616101713821212191772672985992626108097907070368689003121679192819059965965599451505092030969233125281634757811058945256316381846832141230159732940493205865049731487450791361671365571624531244037727672604347945906216753273881330157818490277837580253880021204928460644380548430211835377855110301807070339303797139367468062292816851713756243341340682303366703396792850914336181453088806165521221930839776045397493067654449913315725438265139635454055335600766869792480305035277842370932973927301726439062777635470643517338955058073581046203412750408256849189980062533624513403036924275373208148843807127795460054046328630536233540466921337920832295158944597107874339660701244991055492868222081477217672142698910989479256044637175168753597920390032822624547183749271744834306805630976283953918430293702276511218318174850016654859880974585848082880554323311082430436118353321836025395311884283462933577373458076166303718280980059534803897729103370984577620091939361860289564505229208135886339428998659103393486054314548066766207769873029592593451923370328906479465987699580204228703604962513135479847097540959369230278288536049344795775151552100759695651969558894800420017903974976777318063094503707272000494816632060325013031885471547467209790486040350343687048859490513432983217568596412784462836018186362173922206904537369177355149945790237513011591030923942838583329535246050759720647560131082329474712139769569870507416688581445319268550886450800224457385809586922274633387365807664205100130186811546033068000785607784425449197728492113638981914555233242551762898397919592679419642810030411111799485478045713616365089775610227585083110012704301353557864541627303911460148651667402731969865972504410844312527989957532444125246293405619483874213786009659637063416821155774044649741649218196915032807985094348813191833208800692972342700550598770249696591845693966882620376374890035065908886352846448510315612618075013993660585667898761518533018235109095076979818775319322022031934018462660884581106922037735042332899662881228396877126551114490272955370563026878180557741932492312413922611089328992454922196399999295846801577378445235023208371350854880740260104746266169840832347385942044885870314042205906071949102789677447647414428118183507736948827210570029642238477564783107226984346000711168428033809561973596428270947633423034989836477448069868704927684425027629423341864963146212277054489384700907387636869792782560340455032163691030616140679223389771254338405435010376659898334911527801392777252354111595527391634422235256234584134107310616033415522124720452806787084754438624937895924245270527946217224640888228025395401609968526465242293984633063873220422048109404643918668929170435403765248742441234523132624350542312702133213195043390693559444862048117408068240389108616780172635327578034921939431130121376601132740844213864319899380823285201078878026802866885562653155758259340925124595669179122350426067429027455787313936632171484886838232270166622343705546984008319020235999333945244882596908567572590149527811705319886618210275311276796737439095138963879722896288250393773605924250198840435078202491434468212617019545281563281176241443466867669022802173101761418199056368911258350109193784761465021539156377024695148735894541983627907566788898263802578611652119686110686329506569126969529595434092155375614514953493615909119704184646697272562290115359373045040083619571937995111713108180216058703752342000327731424819353837665888575313542668534839258216484171324254756331920362386105837950783587882406335354964917211975054197288389955506546737106995744955470746989225104502187699573810322244718893907281912236614663449732486008566336762490349872421942896978051612167476604781765634625222759227662145994501653248909043990974742260648371091962318694737484093672748457083163397201690930042779570535252553705575310117264035985846118014521237916822096042100878430714150811601379277917781298222211284594349828516225274429759928341425706390188778569066954483748713404397160684800035195340721921455534329051669695501553469377071627833532258488731527614631827650894460484112932065965780933889438897210403587775246486745835217959118987082750102412330533845705744288634723065941927962756627493764143285181959374871684688173581951759568954747265488362732156595113826146787356502261477947190761353363449077483414115325423297895669486479778355847343689807654808287055920658692515419831082487773310577143426085678981470305371163753946499865035617846573722471171474970507275961579359308668221598470926746994980257208741481699235644393612762130432003222482782330622914585453731860797604379866812206137755299380950052314071771568948180689975740925405074530072495619383460721937430941851414484873613743825288319004193452967581758869995847089686893323740348041928504618643663154224576929807680702245755100434376278999995438670724744278181209828558071846334443318195235421557283579273034531108590377358559169029657843928983289390686208324846532278651337751832292730258226792038666075118592170871401790203996684598799530736991414449026771257224900130147441002077998078354482820282112637942492922924906153153928832922126433725032322442970056434684126988723268476409333017448489104727988193940757475955155023701178144056748925601693602974607989689970213945762418439651447965316254619033800877690453456039120659870430397989263738597063474979060105337725352832292632404699156426827373844331742843847434582179750084710221390920676989712972148852240412107602436855847234117266948375286083732012806323377073316342077278334715465949114529634803014210682485733983594943054031748384196496386886119345712844177018257582338758828006623224882547818807718684167380933752601279751394514067172665718089381101031755116545253126301739518285232897840889963398671886173953739061213574035104476584549026167495477029035399753619190224753894451596853753384917342709801648915333270233723544490947830490423934297550453253361017364108916434457953865187701049984893599792879891293593398352843722053336736574033396771837924427400609268810833861037358477396053803156181804357855308891914417954511385902858122696505229377539829951511761695897904915656908836035940153059372324197642824769163056554137851866724715773814579276240164571684452276581977051827761684341309127471832034755009896439746246047500425001100116826352106638958279623242705344758263728775625273382010591193331890191808401011739312867116151735291711982520744475781279953646655816621622223344023900464155283893386052683596218177170401315088830097459659497182944488341015624197978407019840822822860460515399016700180055539074313933573733712449309083524103266391300688160410020545006492790457534199596781277864467020000820968582465427992580095408493113459951463078213612533620753161756910797554273768360362382643188979692117045872510164785954568573199343665164333661825963973829682305229194311897619979525108737187939469978504384143370966603163647587186521280680388966349451913064469495606159362695940581336378646980196891354706505067201541656385743258455029965681434969825711763836083281126883853910456007765019910264605634729235753033951858412488294635721463964005771277928072653036825994765690520663796424171990383791192754352885479245104122585660637154065353937373379529231367567400460824770805690738083614651036934483466301756465994757257548962403054828231997059274610687582540991026614026410639283581050777047937686122024203683383173966931410011942042312551388331544237077524540279520006106376561245019017915434949976857244195986599714795224796551897451940396926713413207546567104260874231722204892724578898383884363863707684032444336490480571228145027691055058297826821534661826487803498700325297795819159313628651484071343105654926500572359471442586578682190104252013654235340015780383120256390280232538338631705621215963512340218437774855595285084833080660725184496161374847512894215860366809991608586104962913304456602215047004247254843240168859679238862643838938672454850955700283890661498492157342141150796140278940743917071577462045674078996412219921235177209963294310305247210244324264026882157177564034351773619780840537794194550123386167821162392888561099192571609320291673313705558078285703051508584825269261563856256284629005794247449828249170320964704648148243391522066964192755225757717644950153536716590330473073788581831006185982091709134461549260105308479706878706305257416084250703595704787781054850662455059193950162289893986892012347097506685405864134894450014017342951432323034583567549051137023614804453643335390844282686066588739598018840537007206557094625521479607928885936061286276050559539121016983969250503319880886163853895131661336002771169649274044967913525786306599287972969225809381983608748699431647498032731896038255593491208982719781952442653224464828790600492155072452680235892380373611009965419410821526247113498358516767965642149003159131086084508405617849516057222570066773938870697142986031865821611970789251243231144468096011099298046930164523824997975478230672253745285353114174517021960124375889043414529538597749801664326733135883128926038081363637358634525757053782619586219651794918175633583319484208713888496566607071267721848753086189909787900239976359773774976802614136285281424223928807014040106223073815532092704044983440947064436607764781944745523474870770155751296018336551779628373963021549894272753793207696221178990258380463835636451474249633108867859484346868468836978785884908926892825279831313099404878683113986880331992931804318270943180301207307275385946026421761663965264619326701924578623170724183067522295146382514951141347084085405210346338998360037196585731472122933857110816415426774215617663753268184870464666052035826309170475948841283264973498432213023444512944341931762486904225777851985943601496285418271761067592809814733515482143947981041125199944024858621810279202813203726441646028136463263404663679240501476278040231776753216047875129522835086332939608232645707446504187992097050917249772139828314912687283970423431984033899080786084137490631873940462379524425965876433889760635456684636606654811251129300442595681370892165373595203277161055443346526556175390288336157351403378908720871704991588127242214459669361238140118302292393854661037849564645863466742826648792773149916055018191710952035625388577466836792264972263917177016810867189960776701380395529754539267334907213852331081108787023294362236879377392628084934570777044391625977319203892718790495640760737081283238134284913576449505269913161933138262688584405367429102448454091957862975337582072252551739734187382410521186306625129335563585322836147453661980134715127895674984329574304495663882041809882808098918453341407639851700506578710293261748501516555960393583584022068421126755806801364356993481151879655158019663443985032957267109957330933664051179047722927331385479593818561811168872763354632190333758691723891483850999108476857613802949830552016540545453479994205285172835182795056194811950545414988822612804588535242343705241419236801657628400493554108907954748632805630691845323096091979619180366504187863498095964141464341400492615074846687078343865101725529219894522833166683508964327920620900735374390795326524844932288132550862909837324922549739062887039605335463587351983720475233520405216518459437691870816903714906071348296614269144084490100270418907213246577299422579168167224972045448906846221059681393417726607460814430974219990028041000266753010839149380949714594162169379491221173058128904811834842866356824834232535850299732945377130658739531098333574560888019425743842453547694189232951338170109544286453558031396324310271512634682571577530950717034575104189122846541191119291876849692984552676566088057055365284680767289728718224214148019159349221921976104657593915644255429177749919357285484301392727072384123169411670402320901307631943389653463378816469739876236456812718589616028602863532428946481788532164269347494287263483628394053245005050067005120146947234826231982300790947562726162486342262902182655485349361562231492662877213024618471406233909131989054298989875544912679033546936769290659648996683622632717293300957490241924957905009149028758319105982066995040485495540355067785932801702879975993069166175708132291649416772996200457610252042425049196962843984542574902057334265341208832630851008630772518276457763535295068435738715306163699406857823691687721987244509347383587171545353656249041474350573666305575253458011558236507173103710516128271304159001062146364258148459978549323824261745335318912712400065784562989948495254581208032539996662033388305656260726369018932356891829723198568003405216159802315356551160774443110733182973734638921477470572944676904071382935260100233324126779980045642531486212098103137647793878528053674963433806104928520570332170745595411496121105244177633550500204992244648111462185270413836070656867661162113715670495256774547457774774512534679335208492088180898549559212657420427306037995248949861758209212833558536208608280434284387259741547380008490748164398683300448082980891779153344145644007105277565582961198745673901442401084027349861888120806159356322313694861410600435358454269357433122438226236932401495641150541962654890977070883294005629255188512759262734900476069349061370177042726219164681942685313903031780014999946014119637985229926672964447693022271322075308606892068843925352506765830073371315110299467352735733001255485276087711297368883395441237462603080892804951215173992681402725893458692849003640978421614535468304418575166005321403313503458953006045890923333497057235483916964668935019102162007713485518341210950587749869420533314120334511990404655374790332876220696744874102456315402771181330311614510393222669814000885543698971896331248769099745735719983968834803239383926658422402082864272202503094862022393010041575795795475913998723282318779968162723047001637259724217501106096457059567461728380039875018227688838513620124361950842655884706794853527254868467551110895154780631158392165787162880404699875218536889434027584305361111109086748208109724036092218571638267712117101772289137760760831251882384887367792540653970259985369767571867792036547303696311133482431745404296466966234802548387386746709917054907197913387690674781538029813481412651958637890470810832294732865462446292461527421400850507966123006757045242622906583413559833636469975689125287887326730556656565497676323404400193161472037469394906045255581100549247266938497262275563774273872693189293255646115277403609709488386354763857507264148409868074088590039767796213507121911456877773187959677985550446398424239339911907604393601300844437962636324338192486410381856215975126656414969446175343971668711664353919249836713255005718487933655722723956013997572890382690537706318007364899353671727341676017534923580026148961343181542439664240886614293317853045090182999642284891811886085204270944150530154179134259643518344840602194149549845402260351993554377525861116750651355939773784189594118295038086582825431580514545972885113449518003203564990995317636487884693434165188489797482310474469823204286858884390668638277145019030982881404684258215104221156628615780777479128172751702883720170635878838354796391201946321736128320066487441716713823330106780712492401473213911492725149707992528817956484012287069005464094157928256492585302793327788464347397704465533207419519969475426375990921850583575276103227623170793123571874027228914078560516135724257765958292735650583675091948624443860627535667263882887184754159892330329959807808344540639233268102712994010530715505559472723554356462808523816502662643329037119067730630107377808991286901864945570858832612150210685595681514042435226617425714509357381325116767416920720650255895942373980771462649144111030626069586449344654225907822341594700308011950862611616704126698487545396201841245109395138499588691619103631339768717234354112041134157825125330959197662093474584521661182325651236461361209252916036541671697347845056485452300064094878287385643472093271377133136933083419203005893436492334274948653685239048094192448306217128427502343048616394097075162865259042313473370042719884115423473090184123572885764292984708406242520743298742563060033354745663550656169058033021915081329418726758652901027333913433105324256318976988479051198914376350142179950867669963107502784418022281281801943954321247606343083548882587756078048780998202276828152387226722346150014483140087095288635304575571190778311326872255979807524900798567127932401556480080767371163964751916617540101175640624649649169071051376945799204920902727616135275189538374166131139847313622316201839225226880987803206733349991257983883627838838146100237547843133344507744750860835531408122275722874839522228726114872169450795198250028689500749159774447497760329554809278009974799784236647735627225704211394388517579515646739629736835992739266667986524889260764822339735857982048771629936979613721490261397358433780720992186573489287854380685006076567013201897481046517507818327741409616545260045497584089555161068010098781149923516705539047258163049893344192254646225200288775307464529647421141860862606170798858983826421230371190410890899288012854947215172953369104325180469197831360142083291920169963587592718074827473148815567190067789330937083209916674344035853177154835684005912026305748882125818840556756020614999288941307296519476516408109508869537086754720604223827782065457767290864041935526084568198420901321830343142177919242500384171813137247490432841255614786767035511102706178872724350364577837774923849400138070335091336216934556545812223017288777609223576237028213963961126420192940600019737793921951514247652126908514124141561874729684880242477973413928680614810373694999849020052663979586366064158022490063809594366083216997861978974957060516058736678378109109797985661723477545539591977762844111880445169615619778638175314417340440474914361814651983226711907423473157435576640182664060663543327250488071439439095643276740882430231818713530765450654454042995300713966252574312896023754725418481281263914945072013818697162729916660740351453319681383007926104096309104706796434280659493982684357512078915549081345098522162976207583845135622439153548572381855169935119439154468526292996566563747057659591637853623693004959061073248301644602875728183894177882964742979089862903055396062710781373123887734597818012866858521721784466239690120567335034347829530139039740633830992140109672496849301213847743046943887971063895008750923884735811794083491081634017224813476658135872329431872594675039169279211934184639729540226769643121585206257122912607659262376735057019371582427900788374337108751196549024217120426960325862544485990966866338526023318616787770935032214433762989153758698399448348952498864231131157092693277640985248369457874555701705128878854374087003115515440589342324625104826487904123046029771779374578245206606095529321647788861735585211655306059288563847360527691243503573232824133067360487621659523010288222304987944531722125206771997522460619107650173010442886515613777610596651712952151365140431647937427985570035726320069242322391961647133846385515183955646545528675552716673611033666726757555826845578537165868045896661925568922715065715657644107170930582274240612016223442255053582528637255525342399804723959958681292480669557987176766677276050194665747146710926182184338565500741763509879747838491265847763541457427835827813390766680229456694223933790958812638393584883668290038532063290815857199097694962617709034930264596163410666368070903432171587559646474020056828905054416874525779428356493923129290055614962835785791389113744272382195727608587150562372059166214443246657151701755913002226167999421609338808153748030502283862969031420450699011517304851893916374292299783764299402688343054015523304066124844809030634220606298887543493543159362194366138537364515719715981529106066673836751230433194911699887621524900673780885479684080476488851030505299788425371501175133820292484573085897476908564408907190110224015195125512884949786348110501762826462197046987652810469504582660377682443970431784132904363854345513886028719148703055800932779325990737590646312529552508658307923347099813901061437597403113702201653303570233146013476182402673327187796937297691945575436550601337982943674807143482012245989633654606440599153918131704645877660079918115421986236060680416474173954922054395143062066144007463723856443819984875620882693553845983459117188911595220727602774698566985171899594050651479286394799762620296603047324748425709480266228991036411810620817363925809620308363511703973847745451305203584881235565101283832414232566562563240792271569605524378485644746248624416884841920285626220412729843427097810932116212248455278973329893797402388300073687396161648411156902848872046614791907831462255649246915581214576374790935912461166977704933462888499161132645085432742760102659655547758863712520053902948720516278041169534166868170293233019429749065108226252813055126108080992448426673996138157025944757665494299985331871032154422061171240909006225464804388225318252150632073966312838866243332896908871388882737571980747782182069890693537557534896328911176439095511887862270451838122178610965836215201182213449974297476427038197732492305986368852287971590631888154098763447110492889602226817091247642330268538412573736999400172986686886507559219339937613653709420733436830986556840753785974526307122418549574987786833673257990270420584327130240392787931344701338782747945063950600798136756770163543534522215101258121548532870893478685110240712398253211027637408061093822731737802848753705010398453246249122172069375966747368590291800422073479796275019951769106966814272516217534775555863956229323534632573919757196883933294215940007865846783164909712593347450298193955712306036982508629932815022179382209899084571815187352305119622911252101012708579951500420109014597882019787800010853885777537023040859555434952513157117319957819200208504155191424580958704994515819361575562191086137882838619821445949973915253007592781329709969076311061925089625566070293288060323253023729051520104250483963722215213065078209329924761257452305148854135708499976596045852166836709869393322864259745075497592231543012705137125737641189797350413906089712844912166490815766822505043192230713278959669954417337534615909896851775867057890780158065761562729156734030048019690598520166211996756299947825705082701997941851345750351386326100415904251786427841392453034549633911898511538440083542397711584652514111297437374594444831528649243604014408932580827496577404686014718542686956687849542494723510880939529240397689465662769106385449414038721088532611753927255233390613685489635982386045643901320227071785239387043013409841983078403732279866752535342032747694484866112559462758100704719537840243335680199334918461267699458744978772600288239548003547984173651330501792420475503470063500914890679490598834563928122968671441593945728455028199017619993761526640100452782895160427611182659990782000717731959337317816049003226991194885138008911956586889792965246038807989323429332437507267908660350814138828370346967925297678861101096242032264225696378816973280755620746467166759140280405656482735930875164408554747288513577269342345253475861217560115458560078511218039951816866885511550976949953001904196294632086564515044264415036404644486316597832195207166333753044739541736319772860887246394581346197131290861363406235248506697027988493593509124147270349106393008853187042638133279008496269913351773910084070597568714955430500255835009324833096215509505657752129698597750192280453229633305361131089892684339578137628740819145865453640286228580311261157876497799706018672968656307882718532564953985145088263353593523696580196492040860188365641712216840736062650686342844651682172882900477931081833296638597158194455305502795295089755964645522629527685777949643494979060413626359451558874842996984426974494038283768035107170908402158726166245010277444097579783371044063825259901731314248990514667316897769428049832180574867566238496466226350867105908969320781381010002859443219303448584240335859111787889943237673000352685407996873103555361844843801883070819071774024422822800500465633791859865150822674101194531044199033185218636696444725573139782782242663008392831059046029336005349436394739393937162070988853451709983473203278433756034648137111682013974430216728411102351896918632530491291475921244097243668762113839497239136272936667354079038946331437035618690232023093463805960236522188515296535739182749210843535491563166325425280957749477123025026511948478943857662411514209971938571414196739487848283441913993145861798813912869807827012453247714752931610755371586083115180174147954050171062619858463353342806021829074672929113967171435157776797917691902701225614975398889779955439005271183765576073206416453828844555688998221527153390436358895098338377296002042451084172059670867031283356717185444471625113023835480045263852433106796615736173147030454960939666241893756202315831304061427668965250064005997282953822609242831971925390333774400365014916935114066242435644384765624143639273282582328270464527842456916855947741613482099740561251673226207877151391361194992155554165615729823490719127341677689517885181267183529183838882002303670607733157940932284573357640383997440797953312485572609425866538431141800857599283439068045740774410134371019627974279562014658754997595854232861409275481674553817858026120512421658988605614008712233907094202638755275530908484246816569429295493970548179540718234622440145185004806244515721535475413061604558899672801377003342684167147078664639565479300401008791497883073404659554822423366868900559116184609964001337976655818299633292848225117907617229957496162673603354610388487871664828154342689721602708722293959224473558723528239161149585495542578029083145404339707790008794318067399320526257183042715591454164159792490324001831382734800300438949500961701870862367751629422745769773597518307010173982075774416251344712824147933930303703165630425595899305912921147322731004232442874901524810932077607303876534783348933484936176824491604313567287099320228849920523335729088458992070390458746431310751910466972069169225937826526969251847644541681871839122886809519767599644733973962523010089857801817881916921608183319742744183084593057857462437226887652807506265164812924086240890899757456039430410397575491658489438935738883903242147452300234788328083184149861417599626746986183632594096192835222613970537426085904256229881517613795870411768544727235196403233646837705175020970970977456812431810581890939221780163797541924714494748707596145648439759835783594387964338055198003785820354060849870142406287567543052236541390742701780446689168204095940798295949866339330381188215195768388562726792857914929834523989553037930118646486537302983208811303385097873663193398238339008098478221768138281286252521773828983935861198614053919358173654505560701907424738717764949831785633696646961833297713935139094234711215678454468507437888439678680719945424861494194313832232184975595689617372108779267069104673105306975271482225603681855774769837022150384021808584629092719346678754205326983272672007513100313245310243942246423022363858936777397812179663095422710259377501044698234284865502790910098850675220458646448394501002157954898279159225987712589099000260686676247185328019481601252004725167116734525764891670498282624349228202894688448941081163130939128510039456528578820312164238680184868662963346082530987004794679784112633938631540833337057565555011284891992669324695805977977967480552492278392930531965465479862599469053025544375315088440246371741643436585224534945582399224989657597329866740628310415764358903147683050826888717993912630160710617982281428674360286987571597168670572040357983810302034044536926984704880878014719449831199466326414238057456422875390341345627016311123295698502422595821387153399283478494799940637021340240432965049623183146107978981329804918968246692574520054970317036960986055463381998784553247615534548554434026093950752334776493539368427122761989753411804693203190031145912942241550251358697968930358170431366898916193150893329052933344145714527771251932403939513704357593289938223898990075942008422766150336153529602371428861701900787811483783726333012640823695800716602216416627593884564072564870135289270493964501738210416789147985183517070353056171678489504089184832079342292355753660870144169856579440825452983382621207775817009764211212454850490861235086600768340269929596479749649480778584222690037637112293352439874260261362320564086197183382210858312508790520948809799306300114978045591286462394045216832295103915486598817480144908306795003336674288565868131925460575035157667862842955354566066997926994355063738335827551953323217498470247878206387023129873600366597472950695606336083691354539732216026698369476579952342840180854106863070385523642612102454181639027791498634883391790206205265391962147760464762358257036330055880991809837291461385087120010660460581554465431923753831344462689395956654611004307712693561482660228026095181283932959740705530833986961528666286070862929562167262879832732908885653125021567437328466446853830222930348797733794250842272475695132483532914999909658393064387435073760254788130812625254147252364587341028986686167189603154561195308302254152424619896440104567991447284835292424816759082728781389250316353003626592116170721320943950881893926895513663336952868152824861979855462827757059724371996152599183455091870525511113220892872887593771256954835818398287140056928165294045635011079394577729552659918187622755432608098042317261323087237042452896644398004225375243956178305512691314986555381554774975115859928805511719297854973047482205804033157379740936830305560757385103620200593660106716177568210938033881675198406685684295401205715141003245473009701105845246935455745861720533208260438135300707517383587994849336202237751665175198783293579029365387013775029207452929136142117358482255534351817363637264833002998992087867569613715822128415224158601204377928915965922194453652810759446253166745574877479453988314126399603656163129664843562869435090997481715839574192289186274642776357518967101359783094454517829261102124320969188029651056716824590535647312953325284238873297387803276516453432872797738834115375137993418320142903909436269099328174050807025024676768486074386021900408274703567655828612598918338149555608730293016930721606666888385891494795182635774727100353436234489788019498166830306113084400974130617796147131609159590195674238089148212101117992415328451999546112339629741923389851721053804219408364441171206728632773153663678694218447889643443887975209614683831572266202722312401606788562313625362287793550183949506264035519631096730468177546755824045033689709330967711411152827561548699232735234897647565574853540391550907726178375842439853842259186903929671318181355095534768501127251600037326318686564633822202296220862862702751543503821131795797888804715658596986405832912775003264611655751908162409346100932502323914369608280690871147996871915538596621272233781929086520228833192652113317680396855016634992860611583407757151216290736206802608787586588479442925605604271837388800458434915315572261336524153795658273046642037630586526117897978380567058421173971547366407592732792954984652416640070155353365696392608107706248423164711052808294386079358613324913807797849803973239603464998173292223300653560064382794524389316798199838522125594323832102685849538572011708109320182868961403241821229092246174781886853111002348724732519791200697082502170428771731982165071310651215872543582481028739513279842154904512891043706875234116400812292221479896839192950414435348448790831093812500984811660884148598947835942982488209583509811387918616277178716474344284497621677131803808822012106434944476513656304477975110515162407809632448856700906447161736202311719777364526468674897633239703560795618325646883106673225438216275870823800293113276758184693648488057519423581841990618634234244642439719436598122768378949847904123435957813269925568760066126640904423702389395868307259156145011941670507273315774596130157411957805263624011712417748903433128566325652345560776453503716926913419585626130753662872026880645803868405215638095208399391700294914646347442622357369879446949947928472755827842356014644910234632681910847069334834242473480384757152473735909341999483053778519980304393926650493669020239421532529979743783523292112657499831813015999969514039119602505193836955904980819848784161790341359756223347157186481045787008558384618663569342799606720603256119705613077480149776958441192652557261483548059931855910150177319311038156659626183933505056285404851775060444449099573464108514625038497083722914370761112789376111602489861606385429746330897698840839924363495268555888764107897347228392269875751505163973720541527770541772325911436162482172755711905191842699622068056930080236199644483759692723417289554029368663767201000329939650765839013554649434566608450351482230904699020419448171861028804512286308464422043457502231887862159316667327308367895546305658951211176729254295962403816880851336920664721415652200580693322032642765711031445665247831925047098479157107264797076302777077759153022350374439629924003593951071729098297379109215142172295749924023424791900921717664620103947722957172369863229399122047035104156089642672030840942684309590561705283817057593171552958576249850172974078750894473778803340311883611936863438425999714408961783162421145108613712419597649264022833208721734841354591709061826581696031416951888958561613266338954640237770549966169473426619091934173500133843937787281668428750403602811680111412925749962228384939580766737767320216906878803385600386035075246972925445599177286316632754081073682357913597346494092212187158557399469162202540536001777195405965436392022254437703729525273758927345662134436320117385915067751946512332536787319475370243723885829447320864020751305684965490198474508498542702769971214832864055527208260293853238142234566389012311610178763221931330846128876159347868269763959145205121670086805055637898577216059005205634200076198909708483273187923306829717648482167771470178547037384601126359858644097125811107012564519494971508829694241827375897610233340069374445137298830039718706355376844784483815154596399791495451099576776258398220141560567776063685229899080335179619385324775383199372160023053984717401001829154393080365757117272095239644020813987902592281611806635792891432670390940674479091882589695656191169291206229349404785093135434237699952371778761997365593196202043933327223313722534703182587645756585097139990928035396690845804668396211411879997783001527094628362097470831144412737987852103829709602592832208310961418632952787649825586345592066079412342997560051532680663804942022696667654656268224941333689329259971041022269379388003675702745827118735082956800077287919902565562752224904537338093379355379769127762712839045540346084552933784865905240793691681605390170189997585560568175107921297509954538086634640282553479919704418584723995114269323911243890669708268494288571167330666311664768888974357857493977383043833222783107006082003358231075868462779698191911855406123421910068766489774972462982444449913804109540568606431525899703794473667793767341294827613182138295909903174733478228407400682994028162603589461416628372707002178118796310090067028388289558733234465334922556869099480365289846159464710918638249040852159716934436180113751845311456121931712562207068967795550210084082202871300373305929081686599240356821251904128819140571828520493818993294874230275752719132006252461497364922235377986865188454875438130405311050597343772321399418516085181207925731882528524179404739505827032616010715816631835148011950469225961223790360593886044117704642436247144042368504805179427223834111506860236617662892664293113392000223276620855106165971412566960973025456252874193183421022305689006725658061608249536396459435951390445082698854797023645434580709746176674504313769853436086970564695848815763699643726211656193414717568136556416637474299885914241538642154580469221253542380183110842920340660522260264817680828222781066120115519322224304612714199576868290882385191535181443560539111088786138237265679110759476926102243129250516492770950312795547377520549293430071186045736121854099957287018689736946698666095418034522967260956621612883358980223903122723003395878262493482269713199074345909829880342457310908403936131462384125566427431521378691491698876913893320800921755014101911251117057007343984125565841140420661079291071579535097492052909873382772467884088418537172211169840554546491903274918475325279514233887721421168111417789744014122969539010221835756542462551695431658814715111920276925940617965398758141249295768413762898362222813838581863276579789321140813129145440980704073964166797726447642277308845353135350591668442121212939812658942324136476624647175223955509788273526215272714178117326881134425834980829703972509236041023386108938323181484503210881755925934227316824962418703331225207884168228629956247688664418190639459763658660932735571847768181526955064221624244807216669349752044846309009632349282585795203322297375448417889936391924451632311363208375856555333564146147221894764148963882825836426907405294463323734955609418454698827386085836204283014069254763571204318687130991607598324950992158342912924271497880102133726760377983952987463038716757636862181398487277145458032208108713837146399752656001108289140261854866584853713188872365333720670264647805121799191846180447213763043503656492847955987106077742767648837866509636134619051800862614928163160866809822967216632165647436499081598412843237846500824400579933941411639324324522685717076234728613061050772913695654119399075842847210962746898660722499154720932146176971951225571255248844485174387886769139468712237912995248910686372527937429906398979967724258780477577166095856468940156318906384218669198911232791897875307168421948685056847556565109190107478527355438277308961285486854397582917519133843914859135321090032633514220798798310418663997274371461217486427267673859920738606149287652578460390857309100936607006265673634373668305835922811414314428201494945653684514958950361652601839654410540354956302979776232897789153385551022996812809821359596008746618741268265561371131439611039239881043212233635669597527820403652322284734514302482820490079660488334169571685115267707044744891458743749588457715492229015400256774180138601783098673204664899107910980007032076251407540719161488527029256547795093728949350718640627595055486249701401602605174382084711751903339992343208085134776597154337759375834589866977575122281690908709317185223487961303264524818720871338702989866390139408020971882999553888527323600089353289855036150211006577135921571035006829699795561830935264378517847005742219577122480722342639408255671221685584847984600107531369798054697073451765405543337107816467891655893907038424072864210461712486273602774880441215529893101547321584580620742712288635174742590804320027282557933232635524698775996716927175599822487387774851017124588805212100051532668349765607846969752131901851936215684947692396516932119564281302032897741472289599282336983640328249143318547076188336554873401582811099951241685730781714039546714775700079389558322111053225995060830119400994242725541039854613524191346072834962895241133420669857440121746924094862235959435579314887633524232243660389955932827759300780178445550718871663711531484653665454422341291915559209254466709946351367488263317187192980026443772348516359100281637880727784252262699002424863199848094837337992166438960441553268111073745420488434062858223268941244889084344641342919632439282672741019735837294698696691566451140307457718453776146192176915093189800693581955256415322897559625542157253130165250047108025018602474699288591475867180008801654408417063004651708972802351527593720155327601333476874101510795401737693740835718520890166171595399435534152561982803046595473478865632751940153254771396346263363979912289475631059394779856301114192665307591866271705328080228115084708761530625882713445222189480543949764978451216277063964969202033463290067933150298499644628249097533138481602195678559800647469797814771339675866866077767058968546822870843089915757037288516034811697859695217021733471495355429380607267205944616905167777566689136376104981991162285666634085021380716921599588139590166299547500075114689442186203826754848553869455425212502514163977182266387229876462369873404811226291937644461958340697718834522439132471472808661633223894918193172181050788590705133231269514884912870088802355392929162689433979529814911552014129498640661589208240265576929478833692662773340573590821802505577068647127498829911807854517308341951595788172551009213763977131450786759211438568433517909376068014425175980036781098201881867882009271170908957520601381626269358457714123836932714730416568991337004850402261445885700480128483790314519611460939340031438225478848532637831466087027491548961391686445370878682551788651839902659084874834832731991196584609194885636231352599334059876680089430224665189927423227908352671943226672032079300669103163125968655560354499328092141283996995725506776089902938238183054196840801357168564000479310988637459238269998070408298789243281364919273459166332968379155952478173506359070212443725621359946042111795965574788145254757305544639291341327658039105564385128916342289384864145839238437948410400316000043896177166481873440795642708406842930130407936409970197059523261380624290241362038595599459988508563895897692934197464100869932137374533022632384132630413868089795378328951446555516357626845600192521691988349495669667617811192420777637529413131461048773121432691812132402546195288963665301104834724257434255808403797665803974400145842789997260017112164855371268859374563922060695179992650778930885141775265779242007903128013573180646887074033641027513510317946844161957550410528145391765145211272981903776366144194020630606704163726172638839215784010992918502884998758383908441877734799853173004731065316193571159956574122779215454420214996427393005219070609794424109352486518778207811961509319484652656842699090097557415069168313132738450649830119352701125565350049962311692144617314668592312725512668619702690806378000976873350535962789164803990457062969037647298459727965492159940288502548677667420975306478177411918885643155529240906074329414381134820285767682540324193770139675107280313412709099232581319266245715013809876830610881576775112256404513859090008661682675410922316868854933157172550810105407824355192461220425690411238666754041587995113936605430366144169711982004628421194180984661713083843245957205068687442935919224819130130471605194253505642664881673131845843442013145288654468450616874602901692301536039844589817473784207945048789802896596745746462731685329718937686944762760023044861149784180924036454387315338757073451649124789136059343278338334086384741735972624349747742818901014789807341067949213183230459750043580500529805695511798654458693650960010925612089937040568096915651504298480188387421316783426710484480486353912727460982076063131515940044424532858337867877891794650477886877116920105370252711683274101662930793159380040236683383941219272334937761404017488463809248429306892122195237517796528522102611419671052414341902528265071869418736241039565839193801727703147374540330800488942557845698364208770202072061321132004531722257590833884069067979174442341091709993134091804740680071060099385859553014070032192575710147210791029872172126366593679426432814606014292450285071748083878463466764532544122467626075625045242092415118036701632137146236840367045245285674393266579899912749290894401263078733750555142730491321991490338885432985534736361062459873659612560363738440889525766878919036381026309963556819971601830771591042071640510733125550941802627344815104571101416777483361974519859354859237099684182691286854211912011687413020554053253479607901301149784933745909551056177925825250449912906050094836676875836592959764395478449039050638245058151318479135286890234166443434523276263151971331288181522506734435615707744286832776627277175418892678755486729019405681365558179872524947954382126349964594765507453846246432161146457808581717463275146584844951067276240886021080543561799766628321457130035296425531686934695373381978293530014060021576149437115070174536472603687949542228125117753405758943094816959449258362599857150462574585580747666968870845401661630996647171484140006021569448207649480362962406628869286979711418653538650467785533108760218832973705186412974056367514836061895719145628695426569587743199707599963561081505077689244810074023440909873266027791713242012176961444847223179662487666099236443402839151521451887955243067688075055198344080243148099735496939787001858516837289066514042025601535988811230270528229341246776282094038834639005025954524326860189519255991243306422905974756879652926388165717724412614565341379131638308792436843043288096871902318642978705784772808560302147678161208902820971900922349631526445324803651778200410485923459047816313042354366530570650167140754006040440369476796647823147069934530403223452153248705336708127468949396677907824846181701175339982232969511641182390143636117016716007982214020573678305943860173270972416561710811365495216983688215871078417834096009430947249038527457032873252208197966322074539829943986667857652699407353839794961249690040919060790621044118494866339179836396460366990296156429240982069308363459482619160933638030665183250788181948264745124603539889211907647525766879381460177270421364814222029474651000605613087042950365295723833140541787800605580755085612945474425774637374702237918676859350236160833971534550269849978504648293288988118467093371378663961078431000398022590990880540006903932667062001729573152532224794543780467462176733289245452878254768050024905268839182949618873734706366377224505851016468394805522371284521441365159269653996127274910449182397892147203733307170475051357829970332915876159216387598643478564457808173958361525057657844790407878324782378469516521358539568056890656528894051443710389136577071863985027051214030322000044089606014270585525629582416273578907045119714687682099191436429315530447411453455328176414963263674242050649304329164676614533944240582854932807455812040051404213671984043486593028628412755916241827358190821535457925467724233506688559062180780039000114251876983401154372722603905346923362093372374869653595715426280498942343256533253427449956819597700115762087000774804813687977170541410607839770618408157774528229404490496435393894210649935075576142941728643808168611902822308541516969368596088741665015616039119819067269179967815072798473683438914511239904242598048455578133618535555232882298554575547069748549554140492149634247345922040857616207956563480408380791815764485369392348529730878492226167330145140206832112363166398101224359860213080169833155787831396745978114537449423426466039144549729944310548705324790560052731301129170899386359605269016365486332428964128060310171964782423578992486024802841276260648593345841015836754727530785923585833822835983910979615011952012214937567890095182425838774990814275089488497788925850233311858946325025790493788995481999022550444490465713595484661911901210877469543363364438609096071706709352683185228465438508213837090987955948518776583063114299070795911105073854404018063317094165698224999028479754105809356969781407552160495857300410806465720798197105362888036618949597619997659175569954237169132568895281098143917582595400614267216949843942598991841467753858614867637530606283295529858982864729063680323709300459248523001461368003611114534823411347513857660913706450989244623297133500575894747321433806597267127118222938383694906425569441897924349177624681963467865896439363689173189944043537668837307082555211409565899720180025391324384905705126482164536904751796504347754354713172750138377358076360547035465506838080836916075766828010346176190702695042686860587512000185480772692180563179267650054033191248213257797565375516183459881426698932037858841643460561325134180599894057599585918054346902875716514145335749369333553957277396151525239388977251327330045126863701720705063290155503998296361487317238867625322460946763217029770564992944019370547029304739640898068454158655905022635608151496130741394537442559057262157362541070486329191897021549512918662894473720744896227786704319015308418354855716191328311257091284406442435590892178917466591790568192472154032980739691826982049665579348460150431921025992562026165019810306123827202940337821598518829889383971418147293024727367703060906400337119957398943488269593948262399296199934469930427684786880590032090626771160037308056381319574564285428687862409271558870978765667899957195442552286737929891539168974334722590144920211010335780826576416023225779546583599936600805366342781298182939776303492706417428544879276872377626975122347184213839357648810301824253020385107633147203900237914278830904371736816712791950646262609141310830103792886500306847175333183083031055299619563184501733422930467248383555521219853956176024920413980099961024629818037574927658202252802030141028582642168620478156777376686889830721766656966685584385279186115027068231245045916628353185588096533213918028796879947586008163163811042316110630433405809821432557996633428376032550145227025041709211482124298345692138030158764769497936326718936218364743801447454903335322878723246915161891036243455590660327042622158075878926039567540103050774365618632086824210914966971837516595755588012811931230457042971934516917723113777811681099955329625088655988386735286280617322646281152019179015172158337051108468714139863945325464756602599224991991207470596065449629919539290107466178890825484251429374291457404825690822584413854690643508431260996045275164609676508124227346465189393501721703932227015123988758225492854013079731238781354493769755061013657764774862195297965065929775378233645410076007080810591251101612030902359574204761363497001631777971211340826855589689196815505158189527129607509285132568092408450320955843962208570558541617874181526872573202347178605548971727354646015590176002265177162290033445687385070594645611360123891213409755186209811199743054206853577320602055863821405224538816755100533536759907472471861547093500696752445064852818533284164663897957236906700963131837117361000046641682854291937545491851928909610850504160017777513804091032897874194475508243965611448207998587469479227876079648211904110154311613694670451551758613106086000762453682249821029814111759662430203472983012371932180902935226271491501266605623911579131998584896977579593149246414432166398095500988379882211223912488477219569821788356856133331895359146319300702142806560024580294574928553960679552427081125661866391928215492506803631443942219223801219756913560037870709433388867389966722721261325661618084021249493325793752817193836964528780827514318986420018145672567703710532464815683043890672098421662410074604385859581163235092642376737566207537803456954860744819695765611984155202213769924205581682431716865567853344973859707959128187838233362554763378256340308356618247717561487704427105747755469300091704928621364064519830296033774539692777112343610736905689417903773191548898444789705340448783728771520993775715707208034031321696153289089510568454149793863223245512032190019621517728488080503107745339424627903944465864748252387020003379413530925717909948428636745437360044000873863671924326004682597588971738599517152396600990753900024047284633000864107020721624114464552544888130993002625899099853462134906400766084075681919306129399370152005265148711156722583597082856576041380900524489462951553083655450997582442195298795773602253247039238323755693004072887978259993439287784454124045119681508101121751702895838767806922601923997463609042717710690445861927242339547681896180378495372800957633720194353047243732261207435741344150505964364125766983954028812302839138393430570546275540977479038339681643558092758977670004422050259304395483862976427164110283104971499293242521325495891457169193396217952621014240866309741246558694192719926685750524329307390543958091790571983539520442950578019927842214128512367919100451952274441332500540928752264599563644224751114819309453017860227488022930422030942479333523871315896626036697482766626742634247024418243667775371589635108732543455878329234858797556547097188451688558299943901304517687442961440071017616293616295787543586145956911861401148462399608774637534711214775177990594534566351110391089542901765335000978696820222245125738717107366444540320895031575699695419552900856031298499487444612030194677804424377502711065816523499997533514556963702798994510318280485492750932766929241518331474841240329132716820769151563562997470956306858582040417078924642969667013242646565762408591371207190475078847600884658565337604633934882841841894466896551362690925936763451583728149859724024002123936218089696208871630330657771973396410608869275319817425385090353165218949503042585821939705910563711704472038310551383797404174945264072691992457489119569415837391561149660637314245225332819251304110606316572672502795113114704752500458770112910120533874245166512147432753907577252846584728983474614487603643014283769773335015938641313819392132201580716393866449698919285569258587400914738809306048403570663188753999735698713593815460366688950823638740395068878394566836724082881974627506964836710353124108260120153090356004143016929499195979387167290624394859381117259337695334819015151413917013519350854745637317738364428212192274993705074115738592728574836565870055738788441486809833558297954205073245495147287728539424851751597840336898913364737129247937103132622581462723203082725323309878930093523448883986604156920870544665489381439902070443461928514225024586245067358143642019520120616647781908074647141060611224193829866205526049112369671362249490983292987393653908847311802372593704723319531928394355013926354560147258072987514198668868388652757259107810764454022820914607091588713307973047290535541265959400644559322992842453223025971394421391515542827038327828397434481788567802432532228086769223729938892673343829256135182891822289696637390437114983762877457651573756634761588087972032440483764146149657056266198134511573688793088689359498105671539231961926752243983456265411097982708779322777251944105843740013214512977072959520811429810882281795471843800307757577544415290602023112747749200507761734904930934366307085220926457243065849380368877210744042127122073454373657669932892576436713924069347675989478329594643333043284668400680856281133390420384941275668222874850328430902620743035558978459712658614806059942554003380505893139933657709609727159068972641270341979702122063550964258780336367652199063927403612317422809925999851427565385923223263555505942964291263155031226509037272035288507538626886610998323628914619639138518643222738707290531066591141396064378184405245735420465718950525334955751226980808449353427357717236938632888998283029000678563363516029030148476587237997854423507368747939030473379385661374107090416196637430719992791705777255417997304626343818916627356995098206707671217358187771503755140102951141112684751056803498839971269458542648957440569126691888161559809239366775001133500558681282145205360748910904281181674584698551589209976034708498680378846053743654090718772649376621626393748063305052758679755679173185111781489838672735249822177597765864523070594076816604951464406491299982572272548990271326599542082982103954813273078336183327616872627559166711811493916311821510793064665337547124329225195972491309138760245189251410236133066693385247336494617234707039890344154078927742883130867111929715633298181660289532733122422354080091411112834067137259403926177849919378386460150329328928697009287383149181013600635945908973912295900334957313184394611191454452844099580765107262821110932140461006101524722398840816205326709181971736126908022550387082829217018596097457120133455632388057674849846664600467555673889893574720130169013023636986360915940282917957899450688368726411415228585264870179089867811657475529611244919160574374698502819473064820282860488077960238804538632743495302830033645642232540047277490921198651137139654150168735759250006391586438264694356455481259733728778788446909189175909709668515289891565507407116194805773609525696360182704482282208474791684234323103543168799186675123252309983002605671815513656680424154334146014724739518179292805723030589164778287459578008621705982725629941686717398851323108924616610831223235676508884012330299040106857211304847630628472584967156195073452570765317955436929110574566563269364252281953212483260264693830869504037789326593432037400398221916650338668664257781479236568615175903757642708482726245747314016687201059824340572247363512636576184201341812319282270618438642398844819558514652886714846931370144298184416251187285256732534403811842158817261142642867461286823772972087156491102848099337451418405408790772404274088732747350897417187007919137786592067617339327950886194683703095307310785411283003348250262834617203754213061927262967141565666245022510722265865826164673392583469969561980113568805297195273481722860891433768849027418787682043256952830470356565379803204334701456688090678315076192415576022104419893707389310982896870194182722451214784484996841366535370339630646570108423863636855084186827652563299782201399088190390891799880322598750987200538290071775284547419447521624297948666302780291226232870692846254592480178328455291664053806506433349486537443293859491255632945038180777419291232023168694399143100293211505736479669814736210444529035599885708093881983837038548477015662720412065470258692893114659438564247038042960187823064198656838581550145709757645125020858486375278507849848734635146722499273066653629078185308599708470764063772204180192288905808425630642482380235222070234315808261131312557118777614239362051178356141361232677992789446473636504005256867191218219833645165975312823855003073458426765133337368541901344239136608350466121828890680819797993268028278451404863071667537857862684473511165832952076062661004380078217610978968077888576619409059253013956289933021213935608958385203671543365288887658498682709009707166877734947990100023877626460696008458517561925254536793311279585133594921685373144692593540695970891615930371020780420427250335838279516817011713448565730010056611298519032659434187502246875669861324411260263751315219380996694200787567734811187269858249616163169047185692555990084861487025501341560385234768214299757069277915058694628846229465100331576342101190045873672958874430122894817113842465516592069526890018969052915201551632790101288404977465352754542316898217847828705803547330151570641167022919846476928322273717408828752114495141947770790967111101566334046440873161311990900166106438011326888333534043444268086157591924782575996047062801631258735025904985882569237177398554885047595525349232094476795479824442928233905213235544306728013382840389215266293614013849880949124501054706602719364637433052175632897211924194240120745885323021192395583962636768437423543393648353907352976195247351938222954893614652048615056078113725225444017205861285083967909884628425867426913431166961254744941296607278074498666961509878068513610540878554584985856909438296135100373755593424622985701882808515697164370392419533541304504864471502090391303366353212768161563013594275616103677419137300045601757513510957408737476128781065464592125554274175929494275239258999023614445325490239137574990525214355438629348792187975746074764188599136663836830656741394161354036803672878787924096712114817533571808060035121036311058659234316602570159753337482239241338453610402158861554141889963983927370593553253014649343235973358160681941759134726291724274913391457445264095568817708673565210706862628398927899003898707992409775781901007729734469135657104986328534156923434220740219089610639174376785897959417220466156849592985745023589537290081917900372787261193295527546820894404566988158792861618659199915304206497535674872313600169519169539241414761043491310984344295850952929558750465207145168312641156037267893687905762109122708527101861220641046321542702765294280722875304389209546798713509653384196881981916614769902227187408690705517501939041912394300562584427096067448649328605178565699553694147046616535229128011539332678904769510575255836197194362720041700693899179116271199852364403859719629569793077931151048097911928421349926719237941666145422769203931605081102106559624389812731561009382439207492825157162849617380564673160959686069095085260402328749233314573470475125838860410191941333067123575421548296047171558947385612658623021073499328237784623846265591906044345429314923541579944461476017322284056468422371769551128976988606674858372950146648011715323939584802482187043734106685697539619394879146016308673649257484709798852162643299529799683115853109078367300182312785511333723016243719837416562711387719339816758528518813347369914038734002531884955812511340979300935108491233756185135324491787909276219290682600287845318376149276260063105812759392830932565889866501853313789781871596738637071301497312721378568162327652734985807560183475512139885541121604053676443396173325220158642847002209297130346568762741525631818029543694439068390931112271574635239461378600459176804903355946269576015976150994823328319848121498779184442676957089862247083247091777558674316911354917122277466912841768274397361693843707349565083852277017720511538866142966828591329741405072141205506203206754021845427989659885076176144556253085745200061243714424055082003645369494051598344667090668345831563015162653493859782976948286463726412794594477045715098699730609654742664619695082739922439469114796785884691086509764537186856937479411986912579636409771722331599471044678537437182192525936699561269001317782910165773549968314977143497562484747593968564309252728039364003131202121141727829957433369691847476107009383007864670073923569904723789675208402326482083362611415994985367978680990708513910258672423268288048054763238175280591005338415979479471346823718819242222451144576647013433356643405434631752000483502332672514582158923292372306832597707020020918973038024190525921530757749020155104368101575440237423318274000936556881026659185304053616676586061890113759928330332402647411199696956611318196768700965712325399579153635625476279418107738441023409199369940709509775046030464806170703826435150517046289170556252148879428248582048209283421655923364504525279137072772495908029747579890973955766284849147978109231640698459904779540792594197633981090203895986502441497800297993491022317245785788315642303392135022717288806773820195079166312405380242197120501212459951678965242993437555719260054143933943943364589824506055192529763156279014034839152649070624190032064951198635197704938325374946344874403684447340977733901383774818134636366550362782383053931143804911069325440257901943954190866312822453545087439213514464784696533792942056437869238811178488714718597931687675965226270353047002799215856157467256007609953367172946869652624527787899437268772410688979441014091365857869481531054948420498033426372043484692732493731401851520592490032991051321310277939299705858249694941308381467250900573001767027039239091898738563278479301856209975349445430614020444345783370323899417945488615169262325122242681646640328889652801387434055093068878780742975506358483732541892661535027260051158026454936817388844603185432513120413670101407212825071564229591774260815817061443524058468634494030845852471264662299887326695558047993753444289517413441806535288965539044089658015322693365021626470272157639971877452051181390065493256002302024451058581181899265583263445490258511972022826748977897283437921190392949704082837832676145655611505029276000993094608049242717459632908721365949583087714920325524120068690966678296157038323926913100034514990059187094981161873583718505399451432600767097941293973316329545085633624052938892839416886213623749246324185086744697674816888877389609938686464439674260157386498461276797495831047843368707575191912513797479968022806913595657547613018530160084505583580904029704196312241458738143169828349890929843986838077917400084177391714500305922650576259805131578113106102772718451252730962007269973199853025998803351504780926310391312025315957314689903494609708574587457473542312110588562122895864261872927972725572505181766291962008466026341779149504735838755706890596673408722680322687207349580214588780177715148951009138806464448987074083151985016106489486598918576532417825111265990983183476991217978972406105956756493786177665269207180765731390924012931698876613693164517041375608314999828363213041043171953479364852901635901191556361620088798880256024795535111089927344734044702513043565245339488447844253561133732322584107299889835985186779309088317153136452264146389378051413194582350119304797225205652456580913736812488225529096773552189394280206241158520766136208678125751575865342263601852512003509037988434982037083184197771436356720524808490672507048390537542823495649482371400488599085874190156784013461816359825821390182162762271541566478645464816368429944650373842472749411731145741918638630726143342775128459567992042310143682422366212196207008241065302773052953190485657957608764394742711023343684424931468010458083206222476393119246485889581416847854797775786991202152187197925939611999597568202963553313135772683246532952414286902207910447494723946625224853854529979763481849886877473784421827004697900744322345404978780304139980004099477000335768571687309838697015796112939749748159628963076778396000025285575752604133207014330328970887197433223142093740930791373884481396897939624662753998658407979228882665298303484728175457223257406414704833513001181763322889150512825769521030575255802233376194957913830243134944856748219780990937816351009365790674565202198917439241049537707475223130908316796496276247060015581291004204600626182003877217971691747245551595965261443046286764611101860727675693472875990082942026330732715706169741873195158228797454168571650961524126837525335356494114768291634118642102919940669163659339174562097967682027327993406584593586431987859768358207112880986435513104220651656790755090707862211872718377668646500163172409072663040232951179073766016122033962026678492588185801164527312581866628129104612354880252885433935877216419576333723539640361496971592261009527403701257601004343287929724492203685220605091463910490286750565409653257006705580114592944507871559356839613497071634107732289661476661585685546195605125602211903622692367399314563158617266900385740365829468301881262142847026831553758120404600248426815319558377677874542084254200990747217215648617171210952378935374387833910311529536116030613161133084639229551703765920741842468066317176720523161220774710935206344706165713289867999637812762082512830869636231556043196846719701647697891003453731421726709605060296468549191140200672885191752731124841606023767223505563639594350774960908063883207878930175019983715737782479996567009010075527810870772413791185068711271975115806140931309911889820421690735659158226976025021816324244333433458818349274934426395377931418149452734688644905183899590689645976086155457277843272694588226112470178314708923381545179449864719931935298294109198394081182470599036899936777782590770711475306213695391416058766925843298424857878400045781610423112890655015582993587761469981935176144804031746168355820758816845989965928280527262863815086601940473732861646969024792554379843860871373954492927999831316438228410698398201215146978510116045284498152517861134433714658591758038804112045368306523276054731584422324172671679166621562320781915745501134101169539554634398358887830776639933119992182907498325552093063483129088392592829980134519937016346268610162150211063882919882663678848956208242314067620136412996827090288594091278885255176535257396809086430230781066514718892744767181098542307246239536077387314897489042520509022315923789433165804463931339384586650732341490564532947929173329861949539009836290781440557493366358965596783227560936834245038905896936175746695525698379581995615515814537662730741403394698150776514283042881536433021209433753471802809166128025872076048802210686043034423314540985550707780204098428661070269271523767181275996924654422378410623351898506510641091039582842953664297572525104374165545950387265611906823839932561370029002422482640600580583667783015931415986155958327938185727132560404613553562342292132512198536240600343696249670897566807215503041216525623378132267257812444803831925543129181748586898193536539376964240931643233489969356738241577208849970677765939466795817834369415474426971364157384333301396346864870451525647612646118209757429090731701775831178122092016975319588968720750966515208744369665143277439775738972717111685623885434831514247286740570258545953456832061234018017573463471896477304551282597811392605647194473457257111096186387978657035363186368013151564369789758669713436129897259213825864954781945874186171900300648009376127848282827321217534777556311043978022783293552582356382495878709744213852026677801530574211857157268477401988998210091295853346128936452777946979061374773962851855462884737807987982386446851400954861315893080210036765111625146829024611730072988991675930226720977336063897680753158287916816611660409416477795432271466704326951842137024947723374325452466762636199965821796640480113124784277582670015881567710286436805468747214873914551461196100286107195685218809816861898937130125814934024204885833980922017253579194606961078794116831963987588435238346425641623230829408287711875179787347807746486377827796811119282601377137803229618711951246345277065188703504819775640992563469509027627422341963175716751526446761790410038659642478603244701855628527785720097907250910160873845738797652331783688710026592578389251507281052454011920216963838629270602045077953642708791956464195466959573155817399432117925322292121412293619022508963061872238103643290371814258848980290964721069109102711246434878541378093238253227528321020941853393765983963749492522961730217378560105935881848653169094419940028991804475105084296688591918354653390065078704420231217471765969110079443072571794155643524167225802211742170608206817890482839018611579066221342395217728376741130667120562489919606605936626498685263411156481080556429654965465531403735547143081028546932019390318432976760276871517476798387537325306084997181613420819483287768210585891923635258755408595158657217785297405638123167343723988961927327283358045545408545011751782102969808983418128897451472335470825811504109883492508262369421686348743889597273068211635912696017236437224350799331564363819457449990020242542461904106014133199946501891877461613418283497131831747002424150093720577203843354937925805458227057947207946666877956127992225444065965542670202759609500819517381706065720267070124148442678518488094476518656742106192397833393767110666462800574070369810603967500818421327248778977678133119536122435222975672416227900805534909314494312574704417280190148145070765018732114275654917985735743142828579094007669502688729879448054059221148516839333051187326464946729197968214574566566351314637780124911707448277522431048343880708689054425478124426538299618433991272344368137617777550030861254499796971478740073892103107642668754628611521664936659928523613757260986816266266254795070285878564666947547600855730822915115797971062576005142841662336350766362571608528986476579801824874164111137537071016035019940423568530491391019705455176524971944650487043604197324652358515070778267323519553663506749247666412217490754700650185388142567091368873344736812099675462493726874428221465834201702025725208932058821366249994853994438023565092941537796497279119914844427545394977913998496979614195752368848052453596119113476880001457052780470151392755768134902590275296372362370102448330424672734094129683278651220981443176212944891915722317556018610238353337641182891579826647389861941909783836719728420588438724710002899195047616603884282334133952663591486661908186837538473396333648684077797340914026526196706868632056263893766729745982444952665439086917048251532407237255915686272623970905171901522751998853225607852532033050228328766766782620244016945577683529753173650057971435170344692364642894635342478450524004229131543658532974827605745770707264220973161662261626925345238947226315490757217619214824161308793365447838115796609366079545869236911801257112123267934255382118858750705367922284298048195187155265737992454899090508997200538641249091765329893592322098317200568910228315376931470353791949899770798361384970047568772137390799234695711388937993675731028493794248017034783967062031105104869662052054303003778654418792282221561326668309902837374908566259593238939089329623742481964848756064627475088126577611358374716303034067835413777448143534029770724082229075265509608119841439205173216419235006051168806992370244877521823247839649377285927094347012508625399440670744492403238565683435756365857999476256247795621917169222235047281505353781103269421623489875291186044987980239440014385401432366723301271411336869903686832987406373014098859506470333070319609117576288955692456765113620833293283163980106497622884301030208707072678131675622224876631668913435134988783063239688155513798259246411865549616253936080134717990640925466199214936945371399769682781811538344268025396586819595374164015449254359330302251617668948570035108066842102541365348273456389319966941798213530051682608293618096163601593093619074648646888758898104328065443464178458904588082460554647523343494542682860371007019738997232850525121304682984389395191812339715819724711844423014906778066897817096088717212817123143542471781611083391077209883144480157941368270616666508077638528231249837720465208477790557959368122050382425387324579352725404246856009109908537170031770617416367038848917479453796359134114687386230328371173914992424046043756351039526619558967217271094681356398314560923734848543199152776622184796634951301653118880129951976469116530257105614310766473953051515375569868268141984849724566133011547591264333496737439785478734179260838734413886469058864993470385766454546488226820925707778218716996893846108079805821248294611209992976907819840265361836090366626861784125067485247655078955466857537559473292461281179818881785945600123876397642030645251913193546536331165025367826018398303835322147573641688058032685200041459149063037426217132066821244556264246427005951450536119467168279242519080686238138794621552943794325392964321566958610430647585278209743988093816555067217537080347551802183096851826415506778522558708342453867473378075331938631965278778493902816315491360343162432674822703406949904318733201360816585945816229823160859998927254295930880797756870641372494371981602904221366868457483580401165623243913709006881573660540697932615114639172493763296307643368030522959209239351453590553734458109177577848074745114942118826678122762932391688823172867393155250733992470634096651407145490406549368055966007157902605143919302588219305429402331324783480118138835688906769965419437607867965664160746808341881462018667816696618363313723690941651157110815675596018864367147662098619786141712099357147555545821076652207087181598326633072240491340840254718597070288563332077442369356379142851806155664182260433991968432217229774425620874505089487311691699354804238354238317322810663342101934006759973865595721182355511110238041373091663683982627296714597887523395958619128164654308168470436477913142038247076435650870145273958307198421973585515288438735674655228706930500351317239569006118190026328376921515188329251216703005536788152608745672933458849289884121839084810451843804235785687470013870430069055953411038595848632416063060990931111051071833114757816804367116858881260681030382891566060102025504724463359064460718378293065671954482427977600428614748624031291004857006028086646676807977446502046621632006149702554530223556475207694487517835520914660277893612743201262960234701339429070411546277350688867893870741453769783274260396865634259650215856308003965661410116735611164355942277914048306685329423030696718084111889609975493212819951999613461476136654180868775208855389010206752944896414939065545110940013452118421823659101720738915947973934515144794422782149049538574617116791573108085693212785259455270419009316138488846273270078715655232421107091447977262979271285897223311718537755088734817844221584925327021987550576134147886172049332012625357559834022096088671432271631388638549753571725547197642092796826541146743935888328676268100708751953822861665047513248536598471326390257467880742935156326900291541469323067835615176790802687975055523510093256671727232886179389744446443205392712883794741722129682152988417768806328006737986656170269682687976807755968394568361925265602600590871927382661296898733286045969430958087695624114068768743705027948307506942258217395937134932401418981347736309282778347595060764191080657341314037786996222937530108189887705448813280082577510829923854823941818918438794544400518914184735659319893904920171038248417657027958335085447840210285686843460040476064621905098192290927490219750744866903882182533447346121881330872440554845974873983667062779031232163440194136038619753041180307877651411598823143830228260479054455166233692537967661840866515854432728413562569659719360427122193051664858782030828190262145222882756649712057480004567962341325776587323712451834675345242696451137710944701265386147602119716779873401507408601911814319245120674107097378123101455161284353019951253804561409227458092839081053242500980747665103289248009622983487171336059721873076127213857214855677198358537834976794806261359262032262577099008151201311574343768701138910679542077297610397792036765071842769572596428429370787987621697823598806292240801278651461954494724705546661691260528043593285532645654559479534251983721647150488597314560337356585683255219445484047891918970719968069410817475233400565909398697930143635373987336557395562997864370584723080450135473479433950244407720233092861937999283576382279933539589761058235790067854075676640052473588164056877558148041212758247270288276204934413423475217054805865782432280684903127398667427393707844717387892559862530623994283432278411527773977090139067047316076588377406092067655089530122614367764055382413534331246018202863390911905177510320466791289264446300600265701102688473405714353790515717255523837634043228210622889536253072006592234837634333179044222568561009653072299455522919017141170891255111768210266722909265466419801220761800858395927394840537488234967250198489697337366155845737978946309435126376542164176507132654421706763421018953508784079258875292043217039981590922513095358794628330186325803353800784758242069272090324409131954470066329218370547933599394327757949708354514179644215779486081747372920919207445016867939600628162259452855206820202335125943663713676100951809427896123079398108901644543528771528592650443648717646345951218631577107346348503239645085193072534922261027223370129100706496474998069935573502997239161767900326665181813187558422397345295816250997722020201170047220114319045058292164383894540587632698646259747050028974915415151723392380391826386499201860007377252064229539496629944104371760189129772761997978665322261438885419910740952818552477907100966169367577050214074395714780413079283337173504833926986873523135025245458602767500167290648736088191917877411363817056251764188154287709645493355424883233417511968390374350588322384751535499986299628567219018429010263200276713094540447525502968355921192443174167900626942752827398573487312743887449298565471035100356565546637237856378547784835994806020877153482765100891403697991653640517418456008361670154918786287620519548384111474037268618147804932611083138004575311229399848082361256784873086780184106364857321750189008126982840572336534872632894399223331906446751439255617950514585336333068547741674843649085466316733988365259369410384033826659425598393183337970351502027066020044283070752857443966511053664593748824303687678949134547819933970077797317527257194659765920648469642251803641508689551730198602934707754189521455661887350307967273611243329767632818001128753360352206338690406260768635099800451156189100255546362161612873533847933804835910747015156600430934462285314168222415428958311491911589540943736345856230569042887349287786129019084207261537583387222443621226272519045882804072605408265773084426695460736777859358013342109033970600302023968872108217196082244061390617002301334924263378678216209980647873098142881927554893027798986215583778254724100041393912639697948189715899992844108774648301196488580184864859070831917489076436998150298085674181515237405883296878468395836709953372526506011317871014942102966184154861908450285513537221894858607621222602726049231666964436246730939587704328073055986349122692095218427416040657073161229804159807073414439999801756641483768426762951929346519174956295374141740076880754027040099550417131867915266055688480889368736754186829058301855800592058668017638875821023405319225942679460425512264218428302038997228994749866820663301412262940129788205635917403289824216975203814653988808924255699015279816098465296247016023306284014313115521744545273710136223168040264560302238588457957557695909478698288532040935215211110936608644927005956164844960265947593485132741531881081563285993216548991978385396163242374890637362282484284998478689051572426283026228106827409590575192501000971730419396002598143930554578829807868774914129562640706763553368975456482848509704579134774785239126949056670783199548253638354560668205107872321665464086171257145283812643154728961277157666400083630413504201764710277472678581582152182623322415809989307294332379978296670201727191552797018791277061687335172971939298527524690838750847934466494077286243527345376923908944401322093759079254889612426053067261088568837381667845359176992651843860254485308424119815917724648046108777775020545035153175312881770159903495774184108332882083094319558201879486362900702099271487146712372577972604203521741448133932079758546958636592628526046379265757159233787337356976959115117654861008766835263198390595118483218331944673881762597582376695556303242890679498955751190851672286163505955139893972577735740709787503437555000940278164903940111951212638146619822416418599525481854600904481498466209934289729188197111536047110978923391382238461614139939072839463497134415611835059826732713121056029470914393562310871297329852241325161179568267953232446727776495062969232654521318913251627838380778405195912067916459895103343737444658964838017996082237976445752681392846289462075346059764529369185132076285166840935656014002129394606738524314732995944046015373265310724110450809624410695182670094404914625274621313925297126287188085483162534068032998622490431337573353653759912259452089031876776041696643853557340600182490705779449527369121265957442356532453233913017182669005226733145900005366872358350117038182284035916639658550017259012794885257398272286114597666658310648463513555543500052025594245627725196464164522916420199569775462559266717278240743924141329094198553096546986001993020878875526329116578809591031625653216432956172667594191330831004261104564936923492479653828573628652869436399860447062550797284847300126824894158857130203402485541628687827469593881853079239384963579170688005557499340033685531009054691640156067009575577958228319093969612883513787021881135203468986390985633937524978360596625740631162800447616506230602115183920869526468902140948563305788030922867637921047849714260468380535285411772550853896307163570065660919292695344229754841665201579911664839638595698023284034319115417765083346332199491380939941223359402780937808882854676839729692577254293393537748210684978401737444405705941190562069106800536616380198167852954721927745782976772269472948182403025990593132894061921338565917420851628391129753336226746799906152645404509059553131790008396539507835583044239959623848345366838434254412986842688425224496144404997760569216273774280296920468509343811471346931461582642746944350209907634182057150737330754016441526812987620746376126322178453675112179861742743202713397177915410932156913733881758497080053991241600257588176811593541390267839095285943984067394636054141379025026186064677842770361735171008982028589161070533457465937051261477975402804056418224433369317203419624665013469887350013994403675387610818185829026817730677608563651087639437730685740335540578240887966774138487224085619818370027564856158282306499691081755741850069104374266448643771437551373872476724049038788168267816139611543965229929318251428994301905519284466664437673750733853105584820106971223802139046087523395430492733761142361364343702263217631392496922761565734687471758154829547597816736026676981361258412403113647126294181932383178909926912465596356435494676858206748040340855451259893655022277417982806574477049281899261962030241864302111328120686396773791671592767594146533534540091250624856545358634363677968562568887195154077738636038823064103350813731557037190153738026129020164918724996377786501891331908525399545013334617750554535157895526738735167742233691117147504022625308461704697348802036212990195445029982368854662919821835059937029051569775178665100280776949175469922569728386169191420507258823226763071995910206090188640276787894756586352263463277609672670649159432457387232645155526786860392040682538947089802805371676878243903639621073671295242366777861309878536457508878403541619911279042522293648634948943140062643654416162951851907083322464693869703981143242481504643460682699745295620818509087133511553919545217535977703436606916435116720424367233516035892127491421381327393981663357253724303177571372573834244244959423752826780494546185866076443422969946112768400865969717955376009998121345275247973168967230226524964448348476629881254815532280964852102694480276812397928573356370744820294076320833112879562484971894863512958845564120987889947551841223426085087556854346661414241656233270429541027360280900212809360077664964602192366500554289680824768848328307721111367203614846185672295763470359187159526321714997309211496418266158154426653531243804374091719843953731792354706233444222337106790454780837881313028298643746335236255890758050472993139594315372197784316329342605143940025006007797547081920181467468600867152181274369052014201574139566548394413044841825200394787684277030394439049603041005906549374122986173189646745065081854125699768018845870992918197653904440781202736915269498159549499325738872164671294767122875447656210775628004348968433561234771175862359358521802135395809213753513903504823809080090064822202848115796800848860127056563477827678271981810011482417770668558342428632661470924485480974069142194706784051412932112435266629501103469295133003231934369488536680860208037145685542021779764082598019064972963912282697151644589618377776165388379570778576715499910976574550279882637785489353764515815740645603308753349837408013373823874404703743661775301093679976605106629462858603806168157639612023609507445550821081346428951114518484340846861059437497481566917131755219492651851986013734473792766717383131555876998202021529826735020713212968958505958570464383116887911454375160209044834377351043292956302221993072107748741878446107589948789562295247385060235494269907276078267652261126318166759053119092240310002837662327300463871824503494042849002867534132836491411375429462888745030152183432316586607889050151109638283792035194429573184781367885786920206129406984181415781320812982439526268268984176673420407355990887593006091485216455667244363314332019910545699333136641473730142074856335939435636637685326299444795628665584721859497158715876684110864253508169266122762877994570440602124719443553744606788661923690167419988370777428887547845674440837382871963428779279211457023747611834249890976548732160232316725752276136789595021289538461107074639025674067445693699539456967607610234638581354257832899976711252090982309849907335137223475160030996742383142312035607356396286435466265065815452113207609403858018720204936979627190476549940657151407359797156001416331210563281913575424987470175271301431604441717710807008376137134711715025652313452919933282473930024108967426947658933883539350494498150751262500789852179140188874301688143246593092681975851901481237903628754970084245101466199377775802143155133712258415270552673100536173210276616310849998349331777290522477639883546241249769222929655277574291249982865065808210839821876452124903980871340024794531706558516197215380919114851664178681855303891316419019969828746246448129619614990711487181776459570078222041380622797801118396627024468268429244317864410244265670133186160111754273051406012681239773182729335769701119769195641856652591331982793271111622791816608029481393897229445819745918504687759705178636590159678373595251446855964836320498504799732435853725118849953654088351914122061097097463755992582914928761347540572263493899079414480805506669915605466685426788949659585360212510369914590428911899972691500992531559193535809757321993438165065862122982961342187481359509315696951904336867135081407305553192181311799628003277671630574943399791872658017030705536676721639122600732632327334989142824460946084403109470356124093793118446593093946646783832167527176489806004876270156976684279206576702445226932920422339815549539578837182718375958176265302705753741831575291810992065372716872138088219075676574443579903390773520261254854300519139258542721651880902534222060009909718333552416263279487073685989943687904985893376956063095788782320136920259166264250927711255720954999444544016449905152040713368664946310704280527252538602227046942194669180292265061610948351666773290225414202967093373845336684865103209336554459619709652004219636136961390372599467750397083016466650026327608216261900601414375582960649697295535613846204124368622694058595509355038654239436482797222476317446125327571335931473673240409007258385080752029141643774753640276825633188925878133227694746254007004707304056973233523672624239339344859311007294763066065623400812272844873719291791314184945049269748375170773781121788354235764520037898843006506872679256064462385412947907719730131461694772349573450248179236937778100230506034314554425776534327130862590797216402837951760437962689729219437850488049999231610476481724523978768212758121882614187354700092657537173852687306605189924911100477215546777347031400660121213865997746084308547215082446982939834216598038485507137999574121406762116272714542243324415364294416777669815157332614629813661989299083995187774650942012593409246585674727190799569578148762058156492592122314286558129868274682001283281426536706957109627260065528939143515217392540808610704800168263792905927490278579166120804939635677919830215329972175579231933809455984894398803916088625730095702460664191028946608503625889202030389000364375824522059756144896584101245489876836789220718623336295647084617054762440922863517663215038046086101880081585618869602857242576147945226866496164019195419192757893790523552175949616918241231703993660040686441918066838720867153078476135684579110988224790877378689093798785775474328511523559634059528043012131468095031961362661452018546153388001728115582609302706446141929168064037020296287484789302710979909887742716438257991499380203708601602540018458506152309216824003168297707519069079340339995554910142910045261753615434251286547106719171689816459245654793278804877151925295019460195047693956329448344877377243330583258317884008301956475299325136679562929585487397181962603675813082568994386059224643066632507378828058818253274910729256722956670142652836571923892035019595283668226614779553706324822057121347609601925228215709203206569062339863430517951437802456605899856136551912103278919985584965096984083725754130626889442062788317426843342650885698693816371505479379127599348737920705643602326761988101795095715466169347362127263238632605243310998159778280961776591207526603769967528732233525732447326539540673653475275364706427249023217465400740539452108719999642202805723709032553336525708947084133307911300550616945918600232789820719777938613576201020210197275138497876590048341237200623181315522015796561112388551418396636768373250190435622774282135908807763334183188189204107245845611468033430357550053834456527734374001319418476457447944381182965509899219880698190548179389322269683019156394179002027487147627512350216921750283815351481355828465567690585738826087414366691917299260237203487684581019458438106119882781820128282083579810365104196963869792324202807400876822432919266252508469052009468994932951675571755470727775268358998516089704930593644627810075663968995847110447642314334976575289266605952385964951425052770607283796492964779805760290652086007278808338297213965686824157061110305224393046702582328656722455208084094249293107730861927180312866024092185484132465993127241035943597071837582965065877737126215159128378597310146879271853210579361412707186715368444154668760094803585794959730428107387475916892110461903130040616060053434595027910113052476577022815773116904955038329060483693640184491228973106365127458564067841517161344749994054141942561635555560349265760664462282290723889252944859849220009969311145498746414288994528920164464517856983866577768891915875667088352388834901389553736997130897930507683107138897812520046116736357802720649167484820647435904771626352358989011713490944317465508002841317249423837156626706160573706971019338689224102515788453881513493178242691534092332512672670302027906432486956041422298954594692904844049882288948352054048520258676905197825045096254054094532287993802112494257516258745329497240631755593308234661626496546420026153070042860022247584418492135179562584849994939472718760861704608511425660055902687074401649089176472040707222850493510141161260018632176645185709999245326986809602510857652019904690012220724402638286122279687399578592997257996856411936176796368485092630733218829795236577713690421604963644087606415303121467575304731918842404370922747825195956246212871358962841985463435321716392753748256915106773868348566595657437614664937803201424536521536226902144044752343195685322988904451193190587451786998199263508989561970480655450757829432070740373250776182730865222220892817258571417442840398746227336655369973001354989614062424402762501514742376254758955282240196301677686582634780980811029782319339803955199066282203260875837506888342180935705847395570471933740437045038006944962073941129979213087324041419788196444160703417164987672984787662937711490786332499037015405079751123241428066165798158671290947509101137282616590473803633323152246717742953501647007604873627942678688994442706122807147008423960823629807819376993283678561311073206489237296960331004435154873409171476137495063290395353540240318478600975549356475856303412529369077322029271093001426488998012438505459512394896036586287038534621369095167404192221945540479303668585981413064248339351611987755924936857825805612773443176667937221015466439241371844369173090252093488484571334220301066558006787166031302089235876555805089368878303806151421355149446622419590303244392530011044735485576254867416007600387868467716009988240077787033331543745069807483109188734493100688108511328135793642124658069481504272039898436792032648326237655255663803540255685944702756687013219909663077942472349000448664755229764755076544230500426478013202905509925423155957763017847737753957663597271464574408364218166313179370510723533531756885543906735442774952201035417497981200248412910719750216995642318435540824955790013323561196440882617344078046589740046372185833823970217447995444263132664175946578579539633627866553556509566618098162803388992228971048664129358561883722795119678062603063277299884795418173091547409022799677764200795570276681710410114483009120858202108841606392068073590409405089005767706921567520126158066921180540200462704990751646415022142785358367992854098929094972888072946253649925371140167222883735389416925300471365586361978815687701959317444912594496819530845312299625670802964871470361422661788091744843978381116916899970483620145168494315771762670406056967061505410115107511828242431201929349233304853573131325072072526541500489962090815642656327065959894712544017124162048369778070594019213286856867736511574524107577250051985847789526321027110928128351309770046054623430814057165194431281371274368230813265148819327373873284802660772748128466004430620040868016804095157017922725554740221527995021406328721055091627774719679783379661825345044893329738732125381138941329571627440300121230420682225618443200429782123234742150378964044780858136618917211535820369717684113295955907189812360303703654708377694162780969489512862717831345012066548468433849807509645368161487789234568099155450684572639723903700608814762571591667423287630100644794857433526074887256272189365187036412079922982940711225000112035540275908199986346414270326698688385600668701100462054780665421773945967396493846206530126985228459666351586928615476542686567328695965095676715529453698453186860624530128663400654658993539321383596673502830926525296132611337315286159222702901817219674938194958662195110300877430330948138052659889681281338713673944176245387069234388557846491407247537634569090538883039632090235711009696008557913495171366323402698870775434236577706852997267289957195839743561686835209468263057559923343985511472884950163017475319359909502899720917447839759506940592178912661631932659034106737223778501432025886752994940787462221667091457570508415745959935359197811768832141012024162995829291653829583815349822069650186166627570604233882218982464030666193042662028496048974747143974916176704586883018739631973526103999447919542358781972515527506880573045776279166676372875753409900662462464775185268901097782643559873573803968306435392501052855457743186027195364499250518421247468744848651412542382303175103946239214790454611014518547251771625606846946736412059611306608355756388371317199918361566234578267765332184927649936773988164436436512630304266154260499902655347331636159066453064388263179645820845709532624624533141233850441052470227770020689744610151772340848158425991693881096373642892568462014065775985346142563661409590141678830210430375670174846030498730488976027111780172858139867911367656549890127152790076254305256263814875138247560648668279504228472771407229784427885980844619494533079955247182893096139098021068738212117217866687572224173015499626515127307194688124884252801066311860239853703778276475901565729743545969269975277339791347353172029196690061185879171588696121640905262909125460363625478660269864021067977354155822194305042891523419380656866979294864866769800760163534166865432757907270814860310827120993500365906199814600865514887345667584508423558362453872271783871055053117173848282254810997898015870707296596174097449917229380476054799056001666915268368321659828347212372428742061491781636687187078637297635147601845453173145020380644644414993755036055363160858439452769213342500041047800689478850620662211754789223583546054286458901060998419381880636726446742995129972828456397694048074707139267945252233078974396431296775331297436037666639651796971357015234704035413777863451203495450389325124465985393632660818961872432758598932461965407271641436945401867900392591624860457804808646302556810674452978262932822773336456465025333701861490343084498324717730213345577506215886407464500302527652701749932650231827492854253243119325608998146595040735645140914798283841758378403707937721638308632642011277576694091991498358401065084856056308301503814364060764095441166577371330942995267749278506254064059698721984011888952161292593648199898098218833357394294579790361037102921725128527759202408266412368108408975444904194280680922416797849496836039732296778862270725198778964911295239771181015033625729561273889978258644748563573804343905106187990426091982254523704396240484891095880875551755392222840258447323491886283152076137838506022029451901511876096552377491326159120976063152126320687954731450779142712246334357773172731083027012477089874430850512757485878160758463365358490442847800332072478472595682358349045890298008921448144929460582485619031248031704449209046166338778166241090755619137835850044532182401482165658202668033787303746658102019207132365245414402328525634248356506737464464458536490229688576863087085507720995753642279595120697381678989957166329319093494877671122967604860110302041837937430286034862073183003735356979534128098628801205332687881291358930692244943325713177256863672059205925625193666654913236148581737793343971992951874709715455541814823964083039364753522071504675904593665268937000903860638985905763495786372760630000723307533933739740932895381706829037312647123505722514033450275324703403983088689355480386875146345654578177012625884298698268994312671879483258771595397038272419901807168740734085840541958128550348421721806693648304936645595732706260260293802515387972272080622898463480666916207372948686232068285239970767030192216253773147154265407588471463977071024356462219664282610895081646500661530387453280482804222893987489488899911394360687665254701986017412232834395345237220258935389210718237472138624489918179459335510234637539728129216874772092932240314358817579340412633246778909978414224719891577544454945945946418483010507915251211678760295090818362652084866853392174376094127672117277125005328647297127119685565419574620546107276811884039593180224671144930017164171679623775173901214014361169943302126225202335299102335393944591822642653251736379663483032165977034807826146135321027108154572489445293980647605142976925683109718370230921940886732203720181274657129578700338116004446354273756981024556615527847934231429152205267558856161862166085170921094331368818430961104342531497473356528189068579798737843313103406866154934075558301758781664125149464745092734424202663589820218501146494964235809190943691417729582129946120213585663264615263316332844481744767324916392299320458462425277370689320301169952066439751688423922007273449699169403016210432044879910602809717284125120273016433101352083965544168477997281136908644177280375068243140774956328942759940707202492305612887249384652439688572377372159897522142973834766099926976984234313211665565177805287722137063903520712940162436808378267350649174098806937546608587307596444195364776112755880556288305615114657149400379383881458261944857753380613746316922300910479640978936858498449927303231395044689018630282862280427430192707182216967474020853230486037830296942622161065044095187572678801829271347484640484626582769033305405019631709473238515208459207769645921996562511560538097559264709903687944541616269948995175522613014391858598192690639631162524697120957362183087429859699617472726162314077047167113523827043480116036805479150568433161654642254819488611269968381541753191095340116495510556326499551198417309473413005443270066923748241829629693127004124824562141055076860098784214842551014027200126310206521829745495549940082751568929072525019775999157953406644201814481633876834697247036784980073975352967966941137050217745314586639319075390625042753612722555048365590123197586367837865614430525284365711252183233635487741174656476746435779476203672004201570700348926600515271764473997985509271791092865879481866903079280155812519753298246053984133589444764048500210869560478743056699249101278834248024241746026665970959903999123599596992129494366902577491993351586261900288222836943406752497487713901758738440702608015366869033797825965560308500754252752699356889711946198648220582837188298447635667588107874221278464994255714508329097253940238143428074730654103404448213767823759332931775341923365767328406068562211027107534331683829273837239891432141075627896146893191454876826356345843452092400820416022327653905311614689600781927992964495851168291228838813547488906964235187509281237047037871579691930749841021347368785567510292544489679952874818735986199193879088014186870683427360982074101298075366298168873840572647109762251551188909304665023881150974193661905335360079512705717530656204057922122885033914109489273925934806050640879767862287885706770806143693553727469918558455231169719492701208757065817659494553896822430434023242041751581210906985210481918197772780203465828264785155816252099620753502570879406925277567177473826815412434106470871751674955037229037520341182048081039831562898299051060744336560228921271708920152531757738210043394867791804525187328832223948343379978154707994821788407863663542101157598027888336635551139067786013779563227371334478102612137894723420726225791360245453724176770121743266455394378739297029708368770190309997298106591250664296729511751713277837826636710354452385960221898010749239780924987510098455484288188879677531163858380381933525373753914705177716124964510284079823325426455818222298603489649283277170512798122567887850098822042274164178732021384983521140649937422264252517954900558339454062046988544349782494124369075334177566740296610609157342049249889680403348015171371287904270312288623264157149447940070241486808885283981308794027488127042455351757310651419916899935739905547567745426685016383602767693347615518156098533724264337189462983759814523562921587300258449548622152770319394848193486424329749405207812540085083631548196077619959193800628733641716838985861228487499829873058534182716308592043317595907539687868081246611851749935356747634670858932100227006631389125414460102573844367574436886274327806358635154840669875693671949692337499428358918206783111488429217305790809542778080894639692348460754686020668435455933653513960312897418665590049458893809658441739439625217585408528605851914907590985356412247814172115216187416106723581210347975444199237252270926619108243211551650426621393967737624912065649658775666370544769197043482503816975238663482259492559944444060892507593512591792413173300312220074089048899170212672726029916598102818521495139037494142418702118848166795831854909491614119238688978042166778493560369326313634891763231968285822050601500396891090734613818453405391567063841504988081711015132668026478036205392513069271636545542728510098116561685329045083631182947718410233649500971466588299692094263172098761899852289223570553912105712527785309671149317755235061698503485440173892246435540645236357284311391150340511116669989590971676007166574690891321285473782767168677160014750123640975307055788360326566432684418566514010777640133373977239370035779095399316440363481585830960689239064222592170398165703191388666058598799763529952824045591387734144327529821141637142592294345545750536465430704133496422402083981492035727005842801119532280981320347694669303769068289552845644169750317010926828584634918865476966748819752120227404560465188796065454787391320557040585524245582288646225862473595926794617299657949431603039054899116671966388890429824311770717003433386609043179444896623246343340692029507858901373568639019690566157956058025410518477512576276022165011367499659620078173556692021452564722697906790057073661429707177008154095871347992827841890188375299589418674870233499885468646313914231971548165399876408558693960697847516090893481427790031847534380397942932688309256052203823252050915755430135269041632949206563693464861957039068720250907208582551346121061050161216901753237621448149087662530730664089245479305030560922963949860581098732217315826796892346050075432645672465654017435656045021972517190665818084639811782239817399853097194047717067332796226438454588327384072473342063866207500031495298147821517045484074143242353133725377133991996469547430050700298907390488995742922993211649698712486331276478682196277786538865318009404658563225016658375338011713670695719130816642615977144861218562719258244832943590269399285446839179888973793754230327806313180914829569433341721115413638034868259556815327202793340116355259085389742792702056701116948669741313639017505663984186061945554660893219724095018263240023438271211792836214099436174237234403510488245266395273442624115747588211133129226200799338113582634572351531361152551818513217086844932446704113642606960287053217831633314160787109610434386690365310579222432935123359484748568704422256382673614881681593671928262565568557251512618430532356108586902631593595937041749467600524587981057192532159678069073971148753264876111860856155423847793898009239155351157850930716699775202508898932760510709822170234085584455968242787667243458544362100808780547012026080446480448537252022608696246624221520617197710457143693070908025143763398781531253233049252110957200393147040520347282152098750833184298082245845783306565942901982620781220325974921875590073190063694489357193803105287460606202648019025490468680165506503098479531050551339896074832294406587197620356068414134336541343270395502563506293259448385289852872192627222804894475285481519099392540105516438579744032876744634759355574688732188759498393665305103756806022787092280816765002457331752674623937612420534942593253099114642113945620744450108205362796187392531948180008123080555039771241043076299605539690783538084012937332672831600413478789884922928470288789985396427044422954634341845960542241570645528087790965279740275688416867796068656856701501357711735524573890586782820696121250003919764550270984934510401596668061786186210517311687211517813953086758628827576864827760407409936480069496639709645441979942819956835460256426742926459106088465753894938969316090578857299549354142877262249048442216736632956682895944478467301423018165748208125714302675613162238861354116316265697778327290743749784184523383468487491315151372454613335726847768754243582461442039569106980427210804082264865571563087329987874226996455971790268131337466563219724286536459436260856126730008567760024813384168766247725814507618733512110003927952571284223525990547555828595998155714669778774308839764951387452586003315950606640968314998837846366655780717237464247389869987621972323620333043874955773411685294156230131089203201279197265147161120218650253101528160836418563725511658535903137949057057460512408826375588111429144136402939179248879297585986456002007290620917461399104975989047332512772452513664698001242980940929083403682656017489154253241798715145629043286423418442664732960278715352985600336138192825240595354981914185305286195129671899331958735835989694015123983092969796142820474595174836992164890201073358186211338996676460202009599933909321796210139055907992208106198163003783420521132504973902797662605933808305277664414477701519607221610379826707714172725959243011566460506993852334636302838592922693740821770609054121168760601351430985176083570683062803939645558577822052220297959085533746557348512919548124178803628572461537301507918174558154095637549694101377126039773694862865514436901205466328715086712448746995139119369716154946300971846677777775129196372458199038084067675891892217835609608270486035755435590449745526426600553549373499713454105550899533912890879538222363368637643768761200124139701733583583012182128226119756273566158941688805331591359949293942206769586207891398375199828799972688861450865955373477820463690309399019982098955600094191673982387226908712211706029492553323486109032390452730497713372807457745712789218024153522313974826460379289282913015723727451913746984989550203599620070848794912867731701805949754861122112949938494972349628594512001817913583556730230911493246727999616881163192887640471437846775287090960087605680863901313703248430498834036254536831035263789082161297873101167836095735843974647337695540452353860934795975490483117706806077675650724353265523464204704088170961050024040356242075449738611442227457997311034319071796927625326586014574643080211166273933826895281064161858077193749111907194477882330671190568823150256667762654094640935308995258407419287310490259518560483811022512543888274231481470639630365244232340718145850089406714322900520899447619698591735557517691117462288560032329129356682122134918846435990884249741450871631331790340350634636617329566966587865057601436100581804411340615540133192180951880069900636412619892892438169976132470991212980444740957890443536363100623649310474458818523170203766562237538362638540912920674965835996651222669051568323726494518374336210737996390980997852006256870718888364943644922666789466704678675058507263198011619937823440333061019528895030142829923740585022169613219288471923506552861937179027247805764566161303774692298093210647594528921853367038439798133542410252766932629658584076986439558972843789222160653828776513968484361297466955566374969576510199660312986467251829935553801115986515480754684707288422880710341319144245197157715362126478178085116817295944599374734915534349317682231397945185137303323062206937087097075128345627499620296285441781618413850329010197977536607192544356593749751584917232230827006777159275125403362860639696217429159215174287409106085321081734064502147341131770527461403041329607986857771287757173490809632027827746001145586643579138408408486276829917627020942534741414263590033479950160067618756253254567315070779436090327747285239180491272525432206112843899425303863839019682210094992967743408755641917665237332754159722772795129365372104168188477150581583178054867744775044803495882216561221656963959259285193700360744833570613291959020105085836628757449236057145519211375247375106257028251391524101508468882440822274507701274007071189107959726536874456239443725065785603842463087358012383571567926786580199230395548429756291661792474401097929312935004716468406994404783963266659315354766067760948008821424613885922608739991182652698379898403345555214373325167719563397928544612047176972892213406151260018232334416833588488644998569828861926398236589741941007568773654829800346702913854745390869191606741248890748594990730842915037075654039512465725420131088505033048846155599274753611393093030673400311609695294211497766829455148226238260579777326189538426154460907053754195638175552092597643275677036388996189576749289164800095664556718018011547735936788854212625407607959374207439310721331812660937817227127818792577433219440997879366043794782828307584081884102993350331921168236905900526900006342071035850023774822590375491108017888559941536966323291933288185063046665089858227387915539437125310055668604344494924597779254758400185511216520891667589073128687905246416207875565691645620834531211239721568115122654024743650831352508377860973456946266676459072063854864837768906389752033281061885439183198241757209877689012380838495778977004776574411022452575978239931455953010627752192342742432825584833772625951244792942778532102645028486027299451852691118161294262241133207817705316057430763619663263333274615384108820532614384062564215355785011025800943073341588897438928198065403636184146373706678070219540163916623843696111524594648645729945105762050960573461482105967987082287134090357153407432909012519037194954405196576383837987626530550136087517238652823429460025906836206337163245091977506661271219955975045218111274500407475108460476590245005063791018308072810796997080524516730776625820178866593229689645725145609229753064827485642823489968474271971733482860803895791745507410206146302753850180990943319477454563890569331013960879207023970000919030885528339121618562651358992522865666161531501995325489776971406292509041425807655027276217204564823551064428190357840064529028569519346605911142860691031670975800804841220762862857725416713246989438757711877574721581479204244797229109514318225428885560950093231581202209173824325082736932523928872425306105154055189807545849423313008875777147083650579469003831649947391066804484713338596504413042286089240163100895341441728324390588509882884601241977188935274023668073851913063032046101293043843657410955847679133742650103433170105715313165409586227429268287992994437749702244760810467469417407942220275669472286651167366005264459380861526534898689280336576061560037053107538721796188576466376767966621591333511066275792730334079446118590577880963973212482033804622254927542459496692018088638858148176268208742295009781565079841814969002768116233993884214062949663521682738516100738160645642924284138466851370301193143164495394697370731780508625875446208785838179934625166677027721622326880688629920312898976278080847902438048975898216650929241350920452465219221173574420597416136332709740033504895817080293842946075995885756588605009386699433898445601005668790794995935843606007279828953327959532954481294748433231311397281225681377345736652623154039695488535282275162517845654859388199769197589577435715539751016703479233554666055509377742922786075451673974253904685477783716790692192243641224184748186533797816469638268925461684338236416738239894046525204840452569768494280586333127199561082075968066166129389311132856939422321358050991860064739843272266775959449059632168106562954552163939158189212585717940405945053951605797977257236284606134021720671571630331654575679613874273040103424643170821596777888001151756228207395423388595569506416052159954808349499583897397600239861725164999215976806823951880813885382539572969032369688226629357575862406305075164942713095003157222141692216428889122611676431655540486283437229896996569972609054282405815197435050094663315600719669877987843649582624182746686858977528012356102582422037915740343223453661301765747358188001037588105723271849847471263792011799595344498353396286055153937096276801493961089610660203747220260924004846922495931769367907181048909695389864015983949274903976788440979886269935817027172081933971826747455933525146673281253258833829904323949778207147292599092867404735372861644337333942767611748263125869717755644758395820410824210882033860216369564121722932284372327971541238164520006369616216391098947044203606492876580641474295310232246148123545472766019675960857321979159734906419387470276416991022856184022821293233168986979854042124215790108439540382626161896138366512857506653959245684976469988607544782465055139312380683071719127544103949204835418603957047530691820776049511863669848686157555986105981849085151241607015466063653432976442498651485145535589242011561748843768764481676490679451335653070945497938324730437653928951404640239020405678975054912494559454554400345243754221159496436142403553594277782531127758353833504568420337164283821394605928010848347786237337925208996671916793975839940418285261192892355617603029468238518924794095256642569840948672863522587865644137261836138918252565750859565505908778950641369304720235305295297215358427949293508125677410838199290213438625023102405282280021328200681114080339625164970118779164401808571126540340431797897824378888088095510034210489722535082294868438777216218896840408412741423410456777499631531584672072468277810005753028762946117470691544211850409193877481672600514822769215401712835008179492152226399130664521467654753582277139026054286141975967397780291475164294341678842184746365677626944633406418960054520637477260114571533070914095398859841667340906292915254868910415181511969164745225357767634864528088219287130035700375935130277692254162188851098649732015068294790850096916276697643944046324468608844976572119733404065058876268943651423360299681525245053372159092316942047036676219603186634014453859463335017917585544430820359961890884082753089180685436576310003122983483074459186805387359037836154290978964149792802217947534699030253695633371966556801908863027176298762785922235349209884962087615958119723945588180308604334905687179512743636337982286408453615257353292066642600783978925816033970785473420513333153669861857435455109185491504832993894287397183940121351639712027951334923813292219216513379132390343184093996900324361995538693822362422117297045819666033044504616801925679543094588925861462749287438304668768243926740747387725951909248121063017405319704870775310531871013174541159186563416618133331029698436412314968945120230709551661564472460463862060987591767974951942113643919729556235973788121136830946084361203265496893390693862901146951646704893360587376738701986132016443919183665306787630519949351032847795798455973095346285332363232737431532509855820811661083542903777198915424064671087915882029084649658764602859761533076053006394534670356419329714642305687021044885781581796916395177052501687916386370057059829601177508991836542261562504044518102800233928140858034591119415259936807871358113062588405182407781555350925659905840427172670527789148680479362392035554282642547563218357439282256132278833177157576928764880457060312272374384256008415118985216230601623592826130954814777385630713088859977917658499519518031417417540986266305719381780530106242990772579908458400630985523802050599711030435710063517848339026129672055833530533696450400533394961456253786558049829846498345991635101411017038433771187175529628531426338742622118367406507913376664450667519289747148591382375777597214964177506547335898498589526497057005521219420600683318243888538260127976884016524622114360883029660136437962482376908601093072405929038051899552477005680450033719034733474891892877337810011902494321984643961449298713624803727190661908090555086079081101641822887668466668430795404178457935066634138047231169153919089083884672903427274427606646513999976147798929734983868384983579945825002750572627253520521312657243728837161754658904884675345141525610046329047329713670253611235243098467724229093507626321648393119707159091957294520365127077353652390802624498070984822050635376845149921955079721315925163855013847185841028354436770326500657290747789801679858937510423808827071726883196728582870500640055170070920752064936947235511650430440105362679933254320642313791406768535059575418476341788246294071631574137603450470054258542897660894641674016500737359086368972990977476627684755208281163829633366301428394143759950288624530306487557666929843421805444384631581280839398056161602611297432102051235494623479365033067676746690661803190338112058442867385283538026999737462571710365492597437665996897304800215507683861925434848226554868637998339287249597695388781454593590986815781080076232510815015717656696265772796847138215536216140895028628720423094256941342924624329762402080880044660480662829617379313011396352420618357223246622084224755516922488789838328144269994296981668797852112116090484014022589956323786362156445892235430488432744769605566322656020130866189866425135950264141198454612411706376408350822278658778499951952476502240581900865160504317452248885887514047876938586449902984790585721792762774731232123412753010801996209802811435880653988375285951020855624983327394074173849214081972313367595876281490455603736475792364176031573413646044853621378350519512515864797707823911972761979113164685159785467197768930943597675542389798206817746511651858274400728084282446574135661537783835301726455078182178222485735737298873345770146790888540313541839946861231215358045365615499229291951907258367331791619322924618277330878333881845827720963214962298134233727725296179658438333225818637934852436037534356075894718750792968168875175377965433040078283794434666285003703906152658517052613906468731666860883814305051378727679122359623033559981597168564929111502774108210843620143737557312975536451148352961734685891758845568384379680217530228110746961607227173929766673814481590429490488175746538878560685134490606686497872481353527212835743614215046573386445118307519698441407630070116303498030552658210264998337621527957427082637341301773769423791829910256912655607697952408973445044656006171184519423587084255983801680097579963285529380492525775204671848178270071157303639541409814304299673734669453334556866608893840995462209655012657712185143486034340690600254668729770755414711625576669163946552841036117122654656441353625154078261234673750142714200384702845236487376587034708972469379644508678403212218325177899569802838994630645769273974388416342647687046309401278429324221154976648019091527551427141607359081794049645776789158564516943520038362739448041446398216455187884207320299223225613547896380749705603908532912450966677006452359258750102843189301645512942732193912785868888657383314889741759069385796920859121161086385440654382763212262235474457432456508057554509789424755883141693263046944061528748083442261136926586005344172848823996656427549519314042655643452936286627323802899488162236496664706044460885594327670323321066006781514750182623395098042086132506361846233489107110975603181169288308042158355291306060347345443494135237699199955525374347905835029410855856016621179745097874027272496894560354061274960448399515666445351216312247589214413092313416393840786200295330583477289065296212181745335936458089862160222052280431152916075131244435822647781384302624320965498172452888177334130624864795427954780217000640156629271685181510969265135214697482316176113844291178464880507007048921502784590560340669003216422717053054199918831575785057195217947001666617361074313073980137104538961397596415271750834924353653312868815735379507409263994974166588807798185187669699333082468087863127337794315278677030969018523862831339874443172018852156965977746936710062183794105757494281697722013133456879111233932700072698087624977274281469099294582994125012897269679950307305573612897888067115740883536814462306412964628029723107750460291487347559340505955495752977573072039399277422969156408520753878002205442382984695485436050902734136225388085603322019983941277666507261227628897526532524834466766963276472768285608277751520355536477298197171810719470336062703452145018942270625176020167036139315060331228902574291135088882340606462503455266896217933644234716387362259221945261953516672882532516913632432861625876262183383266194507412331075111702397033045207740883102696951195346575338068188109737905520090156371592171397975536103656631152114775363902845666929795342710349690287555177081521612214400165781599249325352533308293254014593337570640599094632079535042842466655034163442321951453642580043697563121694792252986780128466263381835981583858887455954383384417976899026333507672742228649344769623054400757967656398744960208912013174112909953142036953328673948998474961780948342993879518988556539273048321052473038006426031921766241706229321284200637417008935197473368620156567159270191230239030765093492909632673434891469790258434011065184380925019055529405885626721492187607063655862277234509607113843459483055104079598623922801315256861581019140914158133744504594283618417888522716910344043488203347925348708344799103967232573757634594890124787965539429601489225929151972268003891478125024752178327185629992004952592250259709810388176214122884286942770354463703266005362518047753218326803639470709490903140766251866960744298224928078478352454682019640345164316348243763662167995120050743533947810747556835181664082645806988231374898910926930781168477840178395511562007479102798515611945025533699029787944940934980103308916248796260927203706626133223398607793921874975187093010699521506360231442013635354344039318986397904474229940234277876236364341666027369249227016187231358834425125994271188932890879691786198755342019699397745965073651059628878855996295163124406964951837708428524090145928840309602685842104535161237956231023626938255519664253070964874372319475516375992175344178793538202473458283013412608975470770085077238565785291797407301093932054490406823697383395362662225682865143113105475489086366499363013524126399560920029499272031557875587557682598200178464955189895515764951959495821775720250380201097235637521203012091870580345663521780963269938847763383097219976166256708390578342320875976239973572090646212958078468994804390164983898290138140680180311550558941323816423653079391939374872851781856372520720745443131552423534982112335287450862756277929589635405416006717528721772799568021239433593159947506214931992242248287817801669154516694765671978750132462125224839919994318138243411890844344739005067517627727309670852649449468252328286223798243235514532207279472824777303058860264293271622482449165008479555916998741870445154737410000151428709550882968074299822482808651255725662759159606834017194462887843181931773555370572193125821040774754268779251414389918204156529648066019355718111698014744209531885275973670500334248615095671053453892129675835539918333835318396921426882978964104569401201151700922454071414765046024557516825819908588224529271104083857210652024703051904816843926384587324596420999399478081102046873391461890415974197117151141817659339863446018760513622455087532008431015333096303785193923189549190006240702469514701847875197592188551578335016281290064245909190240158735366680689821612337411679374554298939275640740592555366910832753432148265205050216661092174281093305179799300729786292534366247805393692861441483972726792225877798163229603037787887240659547858445031098449333145098387117787323966015755120733495255802905337828747631901199441674716541281771519555230689141245289227775447383061376667291996759550102610376984655612755749498766804672716420720195634542769836487953900423065804812455347552746892877708854105290698753015101035518605680148158171718819565977000505835759191568119586178799215852097461727646259364393447144295787248142157062551341908022555956274705760930484905392232871926448802369456792289824877873228142090270403416580070030535787478708988120139498098338457854972624130528429460904409053782007673966802223885957877832703756812466739860574479893745414456699559034482936832484548017776062636458064565411400355249541248151804708141239585523809952971643066589989952305875855930332202423927542542371254704753506733908337071652765372849026926496252210327677481109137945339063091020908075535018868245162124442465005308253945320040585858984515808777536325972282594044869026372612359512947655856262705640443019890246168114733700270312088206691862824389104309230203032452355458679964516569829567306074272497491113181570723433911845149379823001405819401164783029337114778493720406268706710135942903704183554023272720109538070430753626983828378901503058363735538327167986549658065606693985835945063778706378360589431797669217155915024054565920926708921155249612343128274192741430340502477406472943182971469906138717299534853973800473146987111553272922818413029042908659490095571004707446035889016984311932808231511129289219142965273515792272509424062140457217123622483220854308837564693229813032111543478579094812320945682629730327204017828370056329984081347553357088491266865886004752559236868173208297723673613737794388430866345566547712895272280710732814231007975926773510974362662329302288523439238300905682603746114533609414295980291184114707332832261169829334227651052156493845557088549139146889150042039178554986169915974446026274115585720833402790580002244643556916952597138156149554213310638672705412699994058934137513013400524282762607494746848877714510433834630559914615078920291821416781788247169297982971089756799419543024139403021596334238521394434100784584084338951688650776082003392205716734307665015968831834905854171063765309054161822548573179427728068416500546367814436158583603173562733498817895005738488834221016850374753787749947439205033183259945894752572945161804847919620386526605935142341130051138401934217055084528750692393740162716557743164266266457665684406822332306750969240310557002647844735697549801357752339522543892943174449407536425387257323549974087600442192012018856738866686189104777785883453977916764511960097344017992882753046298289499714622163101764975089474762590114864847109272020290385437478302095401674197620400134531480789989816721832942674535083996898585931840088669286295333329350400240172338860187458792066619331503106991152295573715425135128084302241225224243792716728371751144029563991000513161064259376095319502922885568752918790701924063141836729956988900800233202271226285894287041920480572861979512529265320390495512098666858103755661907378625426988035335800430637711464629552718287693796061697831273782669354024032872991859168804714892063214614753248230651677818269046771932165476412254037632437577217628874312317118773393834180351584104754957220150534441653764884672184123711165488029425352604175013738742170238584612807524216479647297205736061656048205296616520132770528911593596477055008246103744833147275324940749238089192510211994193209711561830954844032895807574676695781367681901834258728560307209352743329860359943724911033179421971918898632477075632815122659842567586379153942229693842737891399458991221543827028603922109078177893358706012435452948162061725357813093762890648319456663351505205049023597134394360430854331508251842277044554488560917865212727337277308491776609985655531230283140229361445330539060762935183741134977410984173726655910605330850245095730345320024408530416529719874482860583275244922753386504888856171660539266158059813422263037213475576602779755920662426150773078889561027528985087471414938896862042602257041023043005852828152007826650237102329056016693679257703277937748238640467413840196332286393933458067890253704368772871370017310996388916575915978012043135537821231298148598313670870652078125789078398599210381746311732684116473351752883666206086908754235359211590295184218581618468422281528949838072106028146860514696216820894083118017040190769762731046098574044177291045908831112334706053854428583402101329266641530467783109929582709862411526735746965880093497264753519077901300996288523094858645064522694343826826785823068615065741745463007585848370486672235940580812887544957743371790931209526202347623943030577277273613841095351290895667582282818729439795854049126070671410617943099798451934559536496223844854757725692096189470516886165061482280566279820829643254683926407622369598774450496896095110456702660097572744573965424949756924453234254098407339236877542352399631384346547088773148082483114970542785575327913808141541824962336692617892276417028753680552247014234981360358588206246319593547102697858532801710491431967326962427927967710152454569895238737631819295613249871110977795313451418121002296747796939686229808335168739423672198293154124298356244738858354658468733113086773769912549277129402240234987291159889707730287843442724147332869825857950964900330123034742674522323952768983582262892793531030256106068575351856905576567323245058841494614908976039681233092922321930563561046681547555901874626018531158484235870631810920463517753633429479116535150135260190525292567197655925397595856810935022534635715999247093429523350246405997609983265178874106699985961980977061289360944226278695965397279221981875891888242483487049668009012144120492341413777976579773726557765368584426497598886960610049736916716381836843207900854176669052602687856131128180580139546305859661561973657748651406441248615554109119234463914873028045791357904085672712928950389700165025275316281090055386341012567090725618567088999769187730275964457830927935119353860728539062878679013957917441344969344251614455018018217287854501256603145595007604535256751095029890100645491391310759946106014612245791377339253761237683981167381222298339951714804150905234683153543361744155352393170731780212555552464514132804213208156526782433936343849982966978825111584672308769630003485085606573111719231757077380618377734242724492498925033099524865752434846807245698647039764346031622271274516751782899934356079773317126445690563179941531166523362560715728961337964030938304567658231057583861568857322301956755575115927041822140879251617835240176567229652279705094148315596335860258452226552692241975270276900672320083834693935124363227680302622449348113126338089722356315166776635111140330351300657290361154548176354507407859365851276280823167335074189172592061711582470605496912885711753202792846808510243951636687132359915912329966481557922583584092427962092774548294291077884086349890298409307379074326897765137644671455247957283098420291762710041299654233164519360667453025066626852932559452925522524860765385019900060138760067530827529339295258423889884777996846615872438851587692405677945344736788718762490869258832177373019788864487989096973421882608292755637030996056192132424623447143055270543762455395261837218037109127079712114297608515018730236000955352553752537911225981173178770627859851944002923585334928968884599989749437605447386965330852553339330746875442377955818748466002941994147408818336838750006254132355629855050986886234036538443231849475633517562718162641459164532614742792098199619593312411646549127102666734150835916420376022011737504044248200587710091008456638308660076846458315604927715005405474806282694784240788900128899442870113485795436884466475972043461540702257086298306816216646193466041163724885389063904793444333786561260510135990135086088296511030861302322261812790059118326087603530502238181769412200806520070910285007010861649329357525408451204073131770424485232861604918379116327897517053027744891913713478600325022526647080816768639976957482966746837203107225381597441710547223456274374375483869240400287996716098119991701426154619236496151160130745937629828811677426092962114462779006517086803607373788726390385488358837239712062568582163254562182032726538718020608214768024549912520583642212297389643109316234681348998242945283231181162372456894632964631797624242014837081944593422723824701906496510371140873149125199319988283671955648794930482742445457503847033694496365447895821069470021873275971015169840741548652115120542273656155334239166316382528564312771821710041709006647338188119031753473786079639728990831890134451456554581476568892120052578902987194024867536333426561222122405200982462915836927067800214754382900820667475432246369914146101047458188165208914698159780134207733859036889676885612710572577986384085344639054011525380580443374866378758793585343026230437880914352905936697492145381038783206284801067668018543787393992057664623408654273017461213260152910043469027326557726368565811634629485287800536000681452088057588624406206192818777440859193156705420036761929335970053622409277828397522254116999933384101659780080622447154166199648155809278296625188165877497219378023824479188789669933199203616404094476701027129023320081082074772653756153629812993517261816732121862616460520737230701413782611903690688067772198987772273499269671193145720923035308323306708541245493377879801264078858525319931668130763182869465455348301229753708765078081844319698563123643614724801183635493713085533009697044865747829422577215222824633090735042366682723718843437176783613650845257214633674880846372118330667710424137558854351414830605198825934853619959670400931148097707232182928918851112348588903319982831454745997597651681325814075494454728725067115593102139339350676448992189269446438812264472480759935904293871024926852010353223349508302887442621698415505287462201392454432014600135612792930580992881152079829826960110523569151518452643295651456124965963340125864889317321333828807669675177649337560599148018523032890337111153766502233789459978778592992032761564709319843730371097198193117831351604581614585856313100572047286181668175578931691565336275730717813556061035649301219772711431907916058378717398979024810440604990058796990060635276564912919151231903754272145611346189014381161389416227654605675121916300966780099569836058055216415673551435448011284581632009903010640064261371508804633976187813035560055026351529425188812092571131359644166502472091909778707749253197890266968033885325797794427263792601269768739978695667257308349323196753968862811972572533412738986406371496119323265082158612830038401163780570571312660402648828630849616325854822075944000632243000047600265656699067508175381370610621940874852631246624017623704918623593081105682479855108885721324529259124170635363443881676203825990343571922013183962853261035932118441294278897219043500392772826289740940772497828154337282954712606306748211569903561552072043893342156092373056236195787449908552595724258580799939421986505630705962096874203912690204751376096517242271041937439418952256641740484835439150905825223209708804496204006808961348917712523756374253585129642978795443386923427365273199616333198383390068713630787551616198117730293511082415763823258752203612785667025681505450010571025477691997090839551912237287037456168646297979647729166253686979249365529378369159725054115220274350558822602301539598182715965652321808866818191880845768841246435121849579116713329333193165846679337169252988861407232179151524427654169449506844956316728417134787288370891384729398565619281118093251612157800638604224168530242392235529160778247103074954405309830175017719848234392938846137597927999177011938385039572752618746713057230972992615648099370665024434851783191677503683176714223437372902285659639385312874070203635639014892355023235666040655864331519451594641979199526748283430526828191495015910503322652615966186651958490384001468055426418451993576047749945527368896199741014338517138974554487861109480181378220766327597684281888871232156097680657675002816221964243642804388977217790771048688688759227920679012854283662554609458516407840691380883668706279749861296814778195905174014753541633858746935850302475750871576256065430441385226023270507038307663620575025277017068643499908635013760232581818692417583793903039657700221852620949313465172205908671657564577352706921023664064044693415630725822200934058985666663621207869460710446959202225441632199202656523156977266643147139514870329572540420687688165191536675904847785622980599352860902370623759203801186028940238633315759445432801039798459022873146099864954752572902889998751472642865397195710499948804040287001898757320064090672627339482273323024406360846582185679423783706410100420535878008825974735240652902319332433154086304781711309594502100674241276663845649381538840764141651789092751569723077413632503597068995640879401450480235297623792344003067732491012769940693747915586691833717551936884809275078029414682268553635664547328642063752938395963337293084301128930950066145187255207497997548603356822651604113081793314943245784352961145934807389035431002400062429222937065956342108627242971862714786687110416198235525039289057166454363159260698769989200159396819913744530392030127699174333998171485721867533847578532757936700562521945999917114036197792213540164998248555638674797872089105435436535667146317703781212446696842844819176498772043167433001459950108524323145798088381806718101567512603995858944088987167903480231629549842054594550450097458320027291334655608581884095993203084384385171763275176752198420072866652322405306809936843951163502567833986457905053075761708131849962041470602559151508660986858716838668987223513191341912032223079753986061261893242269705590266397492157259078545372623602768233085953172147266092815303351339077684781966082848282566261112722360178442654514880925048051614689957003239847860941326694247172286647849158620115711683080294473756653412656874235264143710170471996674748464732004928615578412476128162509823533996800989438094296369679459439265264164817602840408664250218053003786470450323027552786179044850739513233816469963235078751668099891087397184591610156587441213363310436995951221346123242411326953223934008142231133225790864820668162856298108908137859902215997847448335070525516251687097755586651293544641506045618353501395404199772074561215475916829685491283426499955403818181123532472753292565700105265286748875112532152547423909558660462162088940129376835056949394506851361448363680274138520653083998479648037354810738452310740138475253427505936755221568098892769382027943479019266925147454693477256175015352915545777600009196640627198120628605149137507865359356354250347376790951992009738691460895667065069456808725560923118768719113713958459470470874563314539647335648062770737364662583907508773089772781364874212973289244310937679533928664205448533541384362878407579339137882422432329700047855175408742394837802097906682198516238536260982620383175617823391592046748397585342621539319380255153240722065051584602757822352296554663756463961916199522877918938149014840416624858339680769447011622701428634748580350426540919010394562680344002646975883974996250816642554151088339125792257587539649645170061419540845584625208630388635794112344827265803931167133041856011296407422875591125656085142180011301856127575187859590076154848425838461415493582326598493551082803975245100959743341178198097070307061810482827319804620790943327744030447249538526659273395293000429394456492975578040221759628704888401437078013534451358569782637188632244888387826499154492063729226992888806351903293012936538614539497090698416349555872955271076608626604214027659100408768451969348075842246073036767366804265600869509396372642960112720241891501602634526253997156475472103701666933230251287338680965065556204621763684550522535636342412623981360353740865043120948298616997467044314070101711996116212969090264621387170502081806575439541704080424337254099867495369987623646820775122564778770202694397951838015261816576938957802026575082910402494152846406711222639553866962999609090041672756978480571461997818992601708499674965110181210358866420781096285126926267915577332099584214154266581337781491515857337956299772577028235383649219531231731609256813634609730625584684704540788587707179605318634187285970658248642523508890376448926137723647168969425095543616858099088785070296640189392415955189477455074631931513115354771285492933238531228693340355727800674164226367236874279475343039946379461981030711125903703225260138687979778215726485157884997874694953453138391149795843323228411007621677679640922881647174985859480606836436608709477625139411034474285980912390268407948666696510164210047554700277176792933722672421701365039364800231176207090115246973058465817318891028441109480528937982900226618201699349758656279333885328629997781803652617079734664394562486320995909026505910120228594763653264299466010670556707721284270168521044187365503608785381297601222333837229622523267388178866710433315314368857282191065833865089392846729516959150332842042036913057178776048515876409930422151923705765688765901390671595344058518716919850300750228741045595596163073062346887130039810015598436540952090568641407329528889687834595729139972090225556837957295892587112368348773624572359799290662215754292519526401989259533156692351932529884357589494837349393445509465047334765869771425916180367829374117506403106966385813369068278235044849738899579664689388158150490409649701511351911902735553589408705014296354173761211831609039876127416633516258128834664355315459186414404574013555812155598504970354900295898416786214990718767719429889160329498109947754895038127759878366408821337358100608426562818152560143592275307895168322492666595330497813033219116790848338968235164995858839025124813577691638877962901866578075485991802080013502901810225336702615126595392568265702857990037210504706014440930953254089292152687669917667078878428225944225826008926198090710380864664235077722424429717147520883181751412455729366762741928491230128669626069079494540737045650674377089781859937304701465224596283832513326250023637530669768569285341117838262246727818448441930221082435458905943208935706201934257216382089199774426288466081691450136518591154467259875347780468894721019926131343340015046686142995931872756219937537346199872139421132540591560074279921536340733927973442107798262752112129047413075476515722135714512548046552265220979274584287953464047409869830255354451020274689571837764640994405323127124377477758863484753410677661052006082816675759928422708039210841531248982509645858796987268520650614353838634272795022669601664093519209284660311693156334029646965088026983530444318042509501703592432916263822290650720386391718812402780307426791614429543063023721088378253188577328234662796263035351101696902221857081184193065840018480262962588255187208384272820268859754107278116930430376754144711019089151404450871731163166230548873952871585934773190444772518983604126740728212971406988735806066026696601792809982876897252602296332124490226072407828909057720232818771847542270506217615833207361303019004103409799329129750760134529914893000331868563458983073308071102307000676712026425898895193305184115083718331806185456230770135894115370934230725995505675247448694547236211987710929953933100613880151243260919619439397546354527833684499417619370000385583800333553704159635366291493906451198098885049394829341213413908415869379597519864488148717445255568287308404794189269215168088608032933770878518098134773476805768795360925983946048318911350329023059610103190595454285651710007909819828925438763429661729363518691443528683286303865895378573520280355179552193878352014163203291482707314833386176697897059616505311637605274486741232478318276250511277885274955605103584590233919631397683257670482352278779932269637652500087303425230690867909209393257928095313496329518666217931771064333588668459739570731502828813656047750109890407246192602895766281380220648927661074600585044872945359888551266884876254124113468972200674779034378488946134550303123230758048174467964747106393795153988866005219070635863482644417304473704134241991172696513096276709213895861175831972888813877978870626278104618963008449835104178091307350646226342649122610116472936714890133455267040269095280011390968025112885412817714515662008434420331908262288037138954746960642838483624030265290382541661970705529303667800921289592498185983941868797532571312117358372028601827799819636964025626071074737840122979967251798148287346002423237214357273714868782896595012535350661013600787580488645624833404993658957873589306977392812187906239037912093406148430003241346873444690003535125366680069863895242827426907477473271518433905589777245052712626226449106468886264930666122857774975753893384715864165423946529446976027718768187326973895166551670995330900730114307372411857006310152646495901442247808279686041694861585185657978454821651950572584860587008065512241079308732895288531497329507874356840092355905415423131558247433574079023208823490305013934156756550002700002559145302515800450514721315969108896335970597739359580454596477223860625653851651539912467356492419961406898878452381400669765843608031380681335950513650486265046693618561721369124702100310919236182940932171822155349308329891039515833893460216389209902254345040781901489111372681884635136437904606244241194569504091271289663362951751804066374794312976591315172807278576792987423101961151409244203842571523147023206789440827770593793653564837160119908638231383956488552425745909788929365926656434850129058774445173219787137168654584450624332808399772820360560576554734161866754471752524845910344575046764827076935045364831859618692438160290124033838783443223896967374189987631653881346910475200482978345110422829790133199074914827830123820317478290441264351894499201768654153963273909028171017922380112480337447857096353299795199273026689757587159574884104320414917495063616843498493166138091532722581776334121171926135127658960290191875177335203680010101069391086777059850102852744634332431869471906623785977169343479409396338656683656910077719811988311128023047775714525337591947202467983019347897459054476195555430764838390372605332677907333616110174247353208405345001039288837486555726266623572891165836025913869910647534658157652350403911483334889437756049093425689217430135815583639921468721515515462142644059151387950723750880642888214436322938729683461324907299897370950102964208283206638269931942357496220421864882253146774213524740250717533466842623701853955318396407894056850640805251337460586757090277763858469369811444832372941694228907294927078737626113682877248454934638104486597383948379613710741979587557509678960948531397844118375996714797045146405633042252744340170937875433717457259751451433851434889632277082455054271407798881086989558266503268827505616078456537959549924328590702304026990503252120664460276122472608998162018280336954677924852352629754143250006823644985946817884154698857582345467302784436903773388340900093147461259978258436774847532401837381325386755706646374421931749228643417118599443288590584043038059572733379051502708019776832952580440777705463089620635216168379120346600694499409770342673504969382681486285030660065173141857500737214334929549114396184651158129578068553666362165501021433392759635495019053197178306738669376353559920445996030913397418175578739374760620793726450586381814061001186472509636014396324053702968415231157873681414266852837139034845918486558595082465821237354518998330600544760583805070709981252006563072846948287881733502155425274299329556625683025250115554216063301058835278231130714665685721957942291540193580334144025396427884377199060074311113384782642658462064640173545057347334322739913322496656922180309973932194690210790335554748594648159687581552431947475624295831520293131728204620284672986372859000806768690231960495091143770876295428723754277934996323600749404942482102728090625085903248481783517849025052813202635385937895354622257098128697026811409643247902734044817799985227652919670999080707055679826640416893280731031403227100384874413800704754678293703792369895752585302019496783242177479377046922240023026611153084578971038770589010327771653785792517061128614852520675637319042183101368585967590521127735072812155236223228414141564069297111609914902643946624558391082100450795744012990386914664724278986504896528181494530708874815776512382623506696962685375733299611433678265177205415859711094400416996907097374697443780517729366691424018083760870540504410116430263135674644416048766925492283614535853049609786004334717781380778813617481509697682382418259536449503533652158614900260745401621525369326913112889981564339612735957951303406267947848361720612310618772765862826634361931821953179687558102269372656416674590109840923300964588701488683662602554476669538247435091252733105826110290430368191697742413110430278469419461351593598749629844105412141619567363453555197999916076284347551861023167165759114576578548207643511153131465956973032834290647134314775018940575190488331185949061972029302726765838262199701889130654696777269125042850321078924243571851037045362362709923315722496799697045512350673648844824815893029811922428857538737913043797983789507467180376153543725658532851682330361547777291896710026403737047595002941273447217491035537282998184671790840584232507449348526559836829928924344596749750270953418389089859468642890427700313930487379229233601052988331819574414562771011107684518422463917105967021686753613073971056495950977280522211807608633673715338902917926566438489137074964148276120813416814207333860601861820301794487876131442511174593458045904788383334754774909793223796403442428686203760155778318977912156971758816485285955688924452909755247294167636565614421402932518290735727081366169033239267223646626320936990850702475113018439551095831747720145834325395244873176973356779290365646064365047086048638526556444078339161884854365357957887327010801399857896029213807550631434864111439721457794004688407705992230510712051112803834984466148726298872502388080614005817231845733304710496288408274316234026752219593396659695221727378022470947095525462614116938175994773054828854567276698441260389861359625594857414802472506936086694770171261085609403509250366905114374126228445801214702115959654305788217880456330601322167403612948768338310119756562952555753984548967656767250468535029519869227263101691753491544504503710759754675938463624789435565794276410488821494714728945196042975850826963382563104123936983761198093110992275991490863472622631660585584691379777002987717835589450926497775758372067658363999570098713412564512376544723460100401357179679664175559123730858349130223727808377372070455320924711554341044444632988707699419521575804031171533471178134023874957663923735516219300515037302982006126481918760399235904745656814740670505213873835192596299016290235056707109445513089089064794456404019386492215497266760323640537261214276717734178849017521400707498464080713018013893530633226091154302718623688447656533355357280108469739616450112585198966279995912120417808332288780600219485260669515378910936210005534044834486953531799524678293823559401817074196457832254070936894434610790305809443513035852505189692317685790071715737339402913181643675631655727678419037213945233817637799228058990669103701129927353255614930027452931742210405557102821790708494008474658907343723366978755160425026915283900960093641247943585934267963923507055274789642067976237935891960977703397213013906427900751311964810699722833592103150719020013751542583747443677646071051421744603897698070400250322941160322963318623647231112461223061222012667395211397606326953629805342086795518399134977895407790098567444964358702753454110349528775157330003713447719266830341730820245727319408499275696582915937907134356178671462704720386647253944267454189427254345133739981792133396923598974098725012105877443305333897777169381505549980767383056621025384434854417608821869644446207352565413108702970271108921644564378269558569237430661030341515013782061151661629304085013958355902867088887980771358165529036224041571055105522948381831421188757912776092905339993198878302466643145267460703715930554893788503052839136366632287072643721116118192597421070804569678182113321076993874546348069501905088103798424522345729634292659712862822464583817520762589912057507860149514518517126281814159869310318961532782137395876664493497891910356951142745131230168579531314299783253258704413773080607198525384895698125903823243364025782383191333606841658772457524739703436379829283167995774852601275408764560470592642263917300241283473959716757631025004131632545857373863853579473703000078771993652356463524989680739609695040734336172246135578053659000438155816947538676195026417786115756302266842477940108031229432149987949512384055163810525690965183209471151340367001646573601181447833832817070319408508486375979629758427928138095895908569274506170130226524473193635505645249302392664940778826819639795441262196906730295709609061302841636935296632012758834886952735338543074813064215151505059970646931806581473407222317991167651884400191866030373143162157635203616333548486887911718897993573423442562323089765592659462613636588580576409364769354837328236410414902236730447095934406532070489567547153185118299904614372578021945064863765340246832511429881465141876081831131447549838467545163481363337639401617919526168162271599473464733738211975974421702329697340613477363213336434540322463305688160541216110746471708327690827404147017005176029169617697216318844361068006920795005693178241308871515572475984123554298911643352463546220440918840744797418129256116020744002694835727093497577253380504066121678768596432138753728987679969075563493768281968476549969451037078599783703982797584139776768701654510595417957647914797796439359456491909482752224536859074511593984010830114678871427013564621694693473018940089090219067774244016964853411220182438720627167107257764765823637540627713221466556149788507732174249658354015213008679558911997647604942228856825727788137414537482881653145092645422909087256943603880808927970664109239961853913727800714814209561782322626877777731288447748705859620927654581340298390483984482711104172554207953679608535952610588968913985795207920886476660767800483628917724592065823411211057202742177094121847070486053874309114545413859266594154528871018600861854963663009553121096142885814255295580959396930582722878143111446645465625486704334084432991996371671086395266716259070756375758312299912432015157273364018658824335373343909371826885937430664263479262576566168061237240087196239045726495791820955084170680085944486966673088833874304372503855890856112163430861668122945385909391992878228117718920475921279343827463990854329737627417084654098695723979408237419682104113527263213769657470466289116993690683048058546355740707654023517940559846266777797416636137468483868606158754375396504977546875221264320911900035688055812655385722024399477323239481359390379463269070019857928482449765710177083359275299675002741208096692676814734265244245517829331068906689809091205677896040653282514355874188711139595811011319247544234130127592875555948410572464388583823298970926197285102357789763217269485822598266310622700330936859882556957738625437854594088078596800805835345612314899235513351984043436585017484629831328607775373726398446581104107081450665339788846300800290757682392543402915050716036833912641398589576361126285311100989856175842997562457160917298412706736386988101432842118629959077494205252179505399339745486740684151320599027001518884706474138148105076955620748135912533364439533312741961588514632427301927672386140628256986726569535486317877157143285807799963524297670673630029228928482544307624218794286598863387464557825549074195885788467410131174514161171561444444432479085664381167936801752702968635494103221152685700225820733737078399858151158427149586045494698962254796895004797763022640059628490414510840557095420060805790988639954584256556993577229449547672482329585913698563893913976729646885383022869905744322436431897588924475402335531582408370757605048183351548618123408192537682735284978913411257129609176407562886199499378931276796708462184041352441347586295786482325463243210571729971822745877417256725032542966955292680580319806081307798947929878573035194391268777657207632306544755505180032774545030284314151554520917341979681381628318736284266661326692512044424758414146349738392988583158235619317715206595243004299408808721062532360589702238455048493143355162841368400993199160257209765797586652910218001901242538232344035251859662733750721388699695660989433952890718019828435911715470693749690819229616366375483460877754709976186329485776698625399904755924747127026669651443913753507325898838614532016672200063413072613280007368619794570300143151058560954807156048343726934096301220823216524415116633563773629228291343891454372939690960986912789714966012612429326110303279834517819594577367354527165498911676737238799820869387112711173475488635574043349851340663495007758017435275717879033078036930796208670108215879635564822386252324256996819398484521021161930325264517449362757405858710630532564195336701249010213981710548489162457861937752335103960575204697018309388180369793539059473095825210684914913317908626018966261917380216432368388020084170558957574723006292847671069120984028359066649114293539174773185568760434804001030989125302049447403673090498294471910029660837126243476159630929622065277891232060034552967322243767809079971086125121898172154507094139248345774651957566013081080947360419427077688178278269790442601680601469641794721728195739958023125215732774741175656577560420559213992443262661954251308806103464527111712782221767793060562860825372798385957150006010134786224683659119098056409802111419193381386930997472849401286243787342334562797376946712203098077676936486826591784343911044527718913837671474996300652584309697921780751800710959800377371000181421210489952234458832141554168137337938453358945769685744077895865477320241573916150809173683325528403971900260544190787127947783158188906607446866268606176621066952313367428280035202988232251408896704842236928615738048129926375715595746424433770581769448860063070571118506040483154523824292769731854650551629439834266174471503645884283908736966011212710358384423622887354758466174820378548838079837155564981252225404955219613680078033692863993978771018803542615863236699483881817143324590599675884146141859258506291912113753354788585437962822236484282973731227728171876501542073493920902515084761834592503561352483607298043077363168493503601185378210356452799784541897043273382346866890950778551484253950361184702584584350992468968467846533931010798782553850230759243813997763348890070566575102682164611440003705228000782855003265926259683891551857910793622353146241639256386022712611350723054588233885689731568961900018597281268651108477903621329263918536166487090962859122652626725180756996151333718599043630867444551911492464521536404802860580447403648963030776059800543635593818531576255426952675057379742730002358465241497200501080004297158377849272207968925805808656105415540109530842373810399459306041380995085616524826774415466999007893106819672323878479373339419490267211254720520184531443067270377413852441414466475062114745353805324881391323582081283684101608496712927249428079191870983324417124286271886621193512906550306305041014557522281415570885764766720761957531499239200557787308215811320929155186447836391548567515519205045196947880034696081049638712249832063631486035144785014734387330997525299193451372021405702361877316714543877670978647589406316532747877330200459711745403141129182411857558583548213616377788363854658634551795580095953750016030688574996077495732489264775577710126874000003311280532297949168332852030283633754398366671507671206956215648205850771176193237624349266354871175088072477671468379810476299145439477065080998101238650437687442442289938699035381076569271318279236912527184957014975764809589645367133922115901121299449641285726671072916122485861010083518617102383547049494097112696685412300882857118207899532186808182987943080392326877447799121610735191556096288067971553396977296192555419066374996961061640122041816433744473147952057091382501369408354681232305145713971889977763778312773701896341574952379222926019280278995079790902195731590810323051016854779264392244467973859718009506546183379714745204483508927967757710774538574297824915174747887507327248468862363763890982174072653043643310008955880432156122731612749342684663343007327484070539053757477610918814559567758616135574320810428366366589016472695645757719261724457871461331370586616236780781133694056028794162560952050258382904886378684703424981721688029521097868950734362591574651794555095426370924663606310438551724822041079576618194514422090017718610088465851573697236634940260366673053512904771554236413148820574362763232097776087199402054232198936733309523417952220980248794041376612422944658006055039616436337875471178324643558477558917644745500390399784238249936563401352675677140558236076191533733309325166970526473977426079216072120264566963413504110522904354662645315249044320797858511067470157274146047250243311550144811651186614007413821377540565717546284021399016970349928100582923379882088388595705605885356079896577406233396937364624718542489274238243068113030331724072727110963969288318799124895181843796652923838692329108779526205362018838861546719274295321827545159624269202902050061452855933815083104387540588400664725694433897883634349013861634187736114579802102835759756141698570890886204708677541960977696031714744741152343934686782484767990335448350714756521931793824124689657444642242113457189857172225639037155853941528673509406082947276679736590995540311232398391895835239899387856307015062836499450472760521006267087906026977906486591376748100032875539923720345712051069736392636671877647195439046027244080187784591967516171311572990284351975093834367378398612394386722784211212179090427212694765263723767794537668158442415376037619975978065014986962345542391443702772799365362488844569265423309616505720226401011190686335239161973811375870520853824960275600735592686672833726934751483422051298915408800503260227512662366953774664932549695554969928717926781784402913019913442112659126322114662997801280118746981127834661039427854076613170524818063617928551144161928125200739159413661389738563128067366844218299195180103155703757548084700785810889446553376134572793465500227213030028410656600312461226433902831913311906998482912698321830311629553571180981167864380851414917287596003594917412541663486196290519959443463351440247811411018731848678570032670131050846064610331688130596611543613790948401344079987516980960561153488950276472553040334671444985726182128438521849713316269519789766273077633545813277498924971548624938424405340895469565954029032530575292547511442265132464269164307203422513052749813605255886853325948050817669076052094308809085933937814498217365384135096953334170827109175633982898122204618649176980531083520722730332722205231455455370748855569399247864775313131501111406613914355065911144707417007128211779489790517115537629938996592298695422453724739285421593592473303074449742276214473191381426492498676355614380535582025208301288703102071470774402898392205422434057045469524902949297657382006104358206777453170969850494899855734259241109475359020350063025107259484101303644763378820215087310172395274624131805248486455727878365966521403614726849587752018772127102633153819743141512318041287285470222298175998814085789065818023696507047739145928560097877371487115862174812608476076408324491732107295688390686610417552173755494724377661942324515865038135561595753547263050730899200886069934439635294360945943165135719687588901776043793576241060482704958321171159273962096345735720300080137767942297734175653985605790075941325812234701502751026849386496945823990816032202092043706714511541008467053663517772296780036474149715422364468991910554640333493733573374827836882320625554926185834195236976598720444838350091899540150389164289848721834135160333999969692802671503853044979797727289364079180187707051600053493152178961467958739066123670714175779505525350291112720724480901085974309097015334247433718383522618427946022708967716830114717537052195548723146294137368836435943248019080288835185378182565498743528223538749929474530712712835158467691981524011354930082651822912837657404958335408734262868768125942344646849024703617989615314602613978103368435341713189234267245390571174298079546009418954122654092522123050051263064380596835944695609782321224852456153176912084931079538327419825436042364577178196189299505036953368843998371791578201361751024312925135366348873186626229581395619920570715747310107870022366061400632293974726561310478614264899658710183347291322375195454253081339164750079829177925412374093756532884394166535341745521104078776812835668923843985952187460766644049990360792013541220528421210571076526163229400684966819090024344358833527066952898532558607166827536929253771289318735669896897441219175979470853522437307036768616812016540611046644970303852162382451934299210768960082744090509385985566442087913804052711644365920860130954529906574499821050931928120950300664341943956484942609834738839738321909279956810099676039732910933810106547667763953859530988956629833860445919861465498928787011040065733774029800595024854649680985473468677307736909963587090076407158817782539015750848933369903929002491090716265466585578182010474194259512504056793744785141680331288539642902495436128964896860401595929115299499869973175824660675835502445998821188123046208509009697093237747248518249972592726765915827415872040164680751902642053544681495258557175709843412935142102559736296475084829295853837460807210117685708460267364406315484836957528374130885084463808798257472749798651590264876378552643820889874891399117371778038064971010914279869133350633014828887154339210617862123427258218532433486219995268123575701619502691072062596676584333695776926378237920663661852027643942986957017035723788243755299651503472515977726885652530001557408845656121659294927677953020038990511813962449853284665267364362947696313819917205819984980124070054192558835831684648867090944631202150152972697770257950387233542743942846449802809444177943978153106656096873738136655730142877948119863288541349975788816684283128947467101475534627583519433121590363206240983284080905206893800528781957188595118859382892224951440860611188871922773242015791636622531713104600707154902991670414867081565342561017456275938995841298252163993512755302850348187728445087103222879797377639171377382575823637936603444362792595610849459514972734918823432533574181379279434381858136229538638513808016684880728957018247929289606177285615693174977063775017939781674391017411794841010197654335751388117608806593007110511931413613467618922819965727796928922394503889153575721297719856921980929373244736745796235512291893360932772156082448939735021777420766368678597404255775335373185015230159099681135669437306674862999437213413434216405951313801775277398982708942660799384889532588815556054964896330340838703244733169218087953896579347372733487640963707315024095342950686644253180856863592168115696411136179167860255348008832135394598170688314543210076299184697458247648456832708925102749317936598311451785944618390207703384413545292540112416269408075048900065325744425624080331925302366834214709945155793690251034974952737648059878995747401890373277956482050883999512292353544779346793516700668339094604641191323649695466011865653091496257871251840575662509167621784066535544525488523339651092538538555358201558288911942732914145049580869031924527286344600835021891577182082069049242705657116189527191726494351599277222030392708933557719719943645630549541254180955400883274082421789443910480631858910053649246351061486842162753391713994309384704354744387944105600476947100029055805064683820376514622906148588577812461457234755646201612823971433391030444065991039928320931781728730001148139988952158346561680751966833246933988571773581668621358590709476945623043406759992202541287203149744405904483002048016049970751743015419268490181445752283539129077217980139166632839750588206660705596135262081256211182985764816897730432506234275683841956340666937320667218914485944385534701476242641049251639652166699154170410409062349863242833841555122327919071145231934626576747246577110641287512197095510655285598886643795306191686965122548096199109003739156198345786088773714675701333906413877785222902768744184960635796792872092743384005004633421496402983770704081104248144817963123541917845365923511840751444924770227914840417961558493883054774863377333965782110473495890868190609866010436828774178708219900414753699197202268446785174083768519535173424138131012222184622746939051376417831225932751905524900911330088785464043386965042200485963127054461180385351815157411080002332487942374027387107235571264946963382371015501344068282573622096525185088420252372604261187115679153900983237571241217009374877513772417436089914257115973834201318564091642586244697561899053559283061343548987313566157146800879328033133824619610759743402705801265839528985882955314733839285629807438341481108555652871602340755243572588453569581554058387426756071133625208011416004742028709489342974418105764203793812444519372617615153864338604764837229421040141441628677499681615119296343128512052273570474976069923061868813445930627084514319588435822900142399669851185306467212554547293354928707608597805897590085619606293042160470234888235347530962294101980975411946199200445684037110943077078400054704294435650811778784146740756621501692349768826721505930227242431117570000860816867017279808545759190086219369301475775041013289060727401952890149395825064162142877703312148274850346450121486621523338590664220021546733463921038643992833458834297878963368326486450830242063682851959752131478437664184910193717713148255851751924252286706055348195238126123451669476090856526473082804284439407554538352220159470616660262897438334701412447840665698271707465372274756940555606874616737439358545427533972525690979958893020073571017447573695806664227817008945849790835121771792364974018796799706061263615806117791489586642498172977899101711394604108196674062129232005781360601038338078979651745608476312400808174970935999942969129174612483667536740406213727750818457722869725264940208196947306991824408514602006813655942056713675661704592742151760836429896991704424101011647825757895419502836028608849735560533177766230726760132380279866924007331122485900879213100541308881272196676951177502406051242388348333554210919413598057531379614047567036498675668027002460436240543791788369809188542980834333814012964362031671930881504943240115917611829887672817495590118770531943183376898485881916144781040641771896330077674134107082831440188866426235847205885039954510147377237669298792069982661671733868618179187609248883284121749469496315975316337831530272889615976590445586638811274389191323337189114911784846372262141290527806232357087922498821425331822729892933240075323855901585941519084853538457851802117502258721551724981535310849919779021486266208793851318350984409580402547219070140066351596925972342168068067570666849772971504699359472885370410063830543704132040743428662092169334173383226702391056438863630633025159995985183493238584036399356903565459517407330397455056534652412255697032500806980676987715356734803178102748301610945217530594867826833658726900212902492171440921144981993768258340566377965030171069479430955236545912424013439717501389960013437142982876083855853365968727523470522737890833225821969695023218373018536450707281605675434353883838092758721929364450550341968758736992594326686654449741157928540123287594065337006183810982419597514329835199438410152918765692217368382840129035718868469619907218823164832601867451661135606186684934773934494991234038790686689296190518041845408581416257771100088218677369584970778471208145085797903828572119662473020230913529830150343970067190802578152417558477202198645522023427132295208285464814388799285257581910181513376097791058904044425955404553495537378885380512385367404919479389820614649390058252870152586055909718472093192852419972777452615110186158682577393117459318451800526918016826485944861370695241927301135517880918650236002243390901358541384784029089614635053525856222190422209241041171196411358036135674459819186982351900340730558975529465365305578251038140942590114422445563022974830161129269705257161707832382051225329392763548470930426884130511120706933335601946726137998968591523240453275071157217560695707962143109336713876401063210319975084682224393005758287351013474935026984558806303858286838167335212810331585553574906766770680809957642564902077966577748585213214874023827107508386950171178907130560037930024559949042752997009697145383313225343012893030921437343091342204474900921620148948514357424897006831260992193442136701538077920414689156388170266006134199567013998236539104019623649519448431946814380264658341008159005212063809422296147674314834659053572759392563411695346095877239237240164965942640688825990767452765605143006658379149287912858047912814735999749737128122598609357924426834107742232149949908184394705251596795696147822205010503452777409276931601377053921693369244312032476983090919588921906132463810314349228246896759049569892074147724123915792990439824273914729757313440508963010186794997342004750459048771084845409267781260799109453417648278409576655774185056337906058593674722361260905652188118285434967222214678461087353870494742962141523441158184300801636285337822832736465371781976307656592592794879701787940900262556701209145376657615994697194882238503145302171167791510658863473743694292549476466858018536862031659886554144403820735528243911013011735563204674727227293047635661235716371144660200900224855067528864323564009859120458057485474821619157667132595433195096708058363627528927200437886716750383282445096492115170909204517763441251177638262545419832660124820157299492426027873182007535884345172347295966732226412353558351366159931866017952555279430727041024485447962387751413106347259599636656000200768846350760345399539443213001106032266857544604893534261547001112205487522024790710389910564483863341123569580282969385949940941685071364180668443004463524270113421149818793789812988803220661660746270423080193105804499082671237262680818929663091119574062360810542053394746779268496548992249197318194154529845859509859177221693319449569698668043019120518805809361910741416695168177905809785673920106271596450814671831646671654735075078741716546579977590411464036994633376943307619282051276824846993996638421671507951600173386493061112256451976347669344527380001701656792701975077800187828965072167672981885978937976530804775909310945926445314258948707950827964719820326209718769909004652429965376095305872107430611891047473052008931205969250810382482485196545506782839279074869457620460692645032954381137811071156580181358283313364956824802315131785117718232137784606937054418850505389267906537020923115085861407286748605680158396619327856765531209608828486928839480944620186463182246384962254919275272562802860856010888401058508822948259001626204320186747676455680532913976988230303036675666447370670683189033195185199137649742781761546144971012412577996779127197847592760523461795690957858455205457684246752547210038244755056433564342748160945100341055570962138693628202848729914424323864346578255226620493346748839008224761642188133547063032786973902518201505794212611535715559374448673665633389029189173787151956256600581935265435335968280689217321481553575180048591684823780320911610311252345873361895918621599351840086374739783773063876579363792123701489115264057486706207484212645147854728147793994221534509057195680510575637640940654259634794821291299149492089649242328900939411986382550775115617254550432993002159746235174764026662732144743426989274650490187796061419518625049604723889630490857849149908678967775064806115695382332287125827273916201013925176233033084146171107615113639290600141771764466171898880071095465242263071378313633576813749464431050870495104658494950230341478039289036394870617980572890178723907034586844871381940437312369341139817323827369554713163381570540355211644608210833031724645331827246591799988442394186060602700718666868065564316169925949573461536113790784541634349357139982601625686675627124317362836204324244797904383685937197624783763056644464433213476137817974980037951755854005029053732849063869293831060122608811083603334798243221550740064494041070985478255576867541205988197674887660919754114366121705841601031081092545904073578731015301488516906254412129131037762266502714462487141156920737142989196525218936652116947176275242013575606060492665680433236520131862252515273345137825408700714572268755570428555617653650074142259737187349225306092209654932873448287678775725514567753559983438038083053138728803145327965527058074368006354131461935708870902457755168745174335986071534403730383928638134007379652333864840874163008706832276274342685188478006381639072791156646938009482305021458936542824277164723618147251721123592038542106539470708784441923987202645203882654458556398240636769138559726890482729664972205409278675693576761499389408695615883770252689432072939287969020912929819717673215000932689943815460954405423824314674819137002419494595815856495585662338583230658165359961871347518257053110097282638838305919167889485211253310757750801456804556590779411873462682394941486608461219515300800884573965328467029836532842791605805125869912042107765686297515394063086926303312690853770170497597853635536638366596217586840608068282170679808865621230276333423744881199394174382583391397092630556796593389055392944140838204061919409697227728303316565345705049629925174806021662324445765939632431048423989286287592124726962226261187921016018228761185394521721846691604007110601796071001826466216455517638871007007814375927205040442311055695805753049772519554011674897545093155097151165468133177676294453566220909393314901840367904328234114168017584421506521556484287169031810398141039145582344485766220648229725009809521279503123671870468815589877829768587390883498287244222456803172165123366221257716833509347195428997413905405656059230373410183972829164761216232973307267981263490311084154489672353172540368015933060377763929883695675500678319477825154896368573491959739608515018340800905107758569518793108637237138250147858676766846118253368172319922157218147416167249182523769344374146205294042790899948455987910889077081321996988712812536600716848573632810638174815697683657060613140186515544547260717057336472913395507650868388960193796279739435292210865304424624490487294591370265534975275714326087243268638856858032629187086675573247642815629706736012686671752966719062579887329940854116165589464497045671718716448686675192465495737276908499645618081461903990810539196467873861369892351810873294293285707982091764212356485125164559515703644471357955436851636300293976752154508938961970879735260883574678567650443536965273767632718114380353261033033907570799972270961103562248175406380270139835105349488719151023017951450761925124388686609350753871471711693390990520732045919919104199962808579657199230927313225378437355593539767573278171680867845551924257976644030227513859022402879351748400905535619168770111291920072201563958674915380680127168245320966050125766631540082967346667940259284985468176183125578706926632624356332711845001194302239470621379708075561817402669229243625710018055986514986447062369003367339833042624406789825836886286955152553094205968758617494230864387160514335958204837964178680216290617917085985475400699819150186518954133631973518605065068458502190817005318384140253436201701039722615855951213842054473159783484363695063329139017233542711416948877737399380687799946462433734557197210194186738080837705070563526593710344919299186414780920390579549477841938744033192678274529547467262632970304912417089981194888744480326288590421387829007607924676642776966311526756983161812635252610755068665656603562851812572959151979722616812514252025325124762227349134061825218572572197957735509406312117753478120340251349043000904207367785611782629834096367206498744651944974375860967286930932581406118128500099424779068771767686672251379341946573730623472400630036738314865630489965215503973669784987771624388879705874440462247613556353104921854554533184914348932815830515234805088285507815703578551979731900008366878431413564006358423778839053930466065085937986663819366169123787119290219604254037786317775520066210489456384676999520392669234155830712326267781426399649331274503169092895105416491367028422684414134655476586596448414490699170728771206406306912996511993483832078304524614293061612584241364860889592688473325390806967535066843026371594319548363727841934828786318207616089350076289725648417264470726397895948677738371932722971666481985045391033283921511976107715315048697433559692090702871511125054112727979250889250177589823386261359368421944478126315193991024591007775544905390733784850076783902230280951103470680728652111681094851326432836032829204587639744833063122015697550013628656979399769994293981304416176374088622141309578860562762642168037357615886387170770160094772113837455378789921467769165356560095891175062504628490186474171116629826263639114911823591853541000203761707562033424852595476545265082534709272385148630100157267669383506115585640764805762945232562396338480151180730398402547099517533565044249267881831780429207434486904374403657439207854848807071106779588082005731837144015521674092613581178836940020961990403569665901792489063848370582586729437669548552891040707512294899651126435423491487554446642820285042785801787237824121954804442934818807132699421403125378362698952138312373124211050278380817848377462426030211325234890287281450977488324770796361032636617310247903604550011864254717318104518049497930973898929038391382367638812490015288671124199873631400058239056336514912271051477706272601438288994342853566688193581493986546216281631408893758899046452719238592652025990028618980236660109868533842218454344689235824626088564673691696033971844318116867770090323917652744568649411529427737855625618950545101379097500981413186067750002744875964162640058212849792991561379343511973906970406979495382687206495200933527783623435736926330346097128900325690126551922576699138263686791388552084094828433690782186069066155835824884967857741421067971365692788389613786317301210155832854721877167872175209240561535219382019540019266059446011856312123452312229567559301801671766838143285899870558159308327119508894027665102395998630259365664361214350566547917409288103380846472169863097389761764040945192121492350977804876880973146162808317283790438700079527055356284167072115510998218365347513038178710863931425492685400690705764042773720093281659315489739540461158486620443869543846581167229722265741934472352116280021956062866751800647336908955913001337759802794860324641922862278812604581890141137144399658229295027211965416722170536899793639875876395318436918568549826343899670690158343287429326691394588393349479497730251879582945902395858484905675498663037972384524058877953522516405727682882658647117639714089698314963008298559372668307348285272482206206421921396905029724790003793380652848146818095275118296411828886940574345972091135517394006702096080937800900523706254095327949051280409857526802114766167768075993399914892856798767294877410071211465760620382137720910345373128974821582227785375567895848556221660202934923716956273989718319915962850472234045507935121706572253710854482264906079485480261993760302483767935249671183611146177557536969506163352377764542204730921982973361986071650985803281567584304359843356151982238260222093748499576160198184782011170341411115817660384144776336366925463739756925871428528886999170480264183369092832813932875957263361752649131071765134886126683222789275471637382067033392782118636339617728473281427003492111814175901830637427858101189908923945478849158210956835737472676545752900221636759431854067908162944285534344557924108358602470271687311652186729170596917596536061931020634907268313477037947415563157831089280204921638286341578894560077158390497549520055881983054653058748257202935652827017912874182849643526113197657444930962116935400653798451397524993445680074270906947759950352455890175863536107876404765076085365870624790132402753987614694608850799183451419534539794061483970002976641482431597308595725383425848443229444855913862720486632584360411465142306405541659449423116322570865896722174813817162542939869894399621106987374295813430090120327611974069977198452817822586482164706118100682163092291976976237437923168617163897179222567351417374207221930508810896758207112118500050154052691155768150992940139332504758327560524568359361866970654885268811647427258574984728451909659326010460006155683267425949034292747229500556657434520193930184678405399425007644692380794674567932249848299453839711188457282562895476539181330745823530988938551040264199213235963929387974992380479507860115291550072733611452132543143727117828814777834814282306640589295132893728282142841954601097856391447307930858015647149251377130027583901613667999114764447634139487939794047652767985035224755221860393106055136628785972061114625813136839259903017939015885556902729418181018695666361902515321124128240046308900958489409982106916684869601778841549996131628940890536002526472499338789019139512228653377164020461690270133135706426557865489767683122286595619327588118775361105582238313499803230843650085844180033551177838177558862159858835208294265129308094743346591854391971159176374909879530448549073789640070251680029569353179596636494486986563875526296284914411789912507277922644312704123323203108247581471325472163270593266610901156964661680684104630332265707940459741483110968221235142581913598318574856492532633742905994344840177977898743547572072593064419595491732559457490023523901469932543284218606977928874663711934447820480662882809014277717694034377584222179495746175456135429581829072255829474833529661989289037329896234870817011037636959320520226168283051367016258374006087987863190054416448590136595839762101043763948470041562673000309207639614049924481128525682645020806837559535957999440765516422159735841567417486952391741998382814301020703198076319539156576249517701669583795973931892592600771037582130547470875789519073254847389814830647089264579660655211968111526006601262307421545716544325412334863460209373052343972835490545728951844838859849527659794735318534832029671305097808539934028352977492536695744668004796094417941217485932359744731618885337580601165951305427220184919136679409370587638866668104512049806967436638354797917861810018214942659264935322874351409252188407172394825574143276733923642772251479075001946530800962964487305651629245221195177657850409315493082780349036382273967940638538129269721979273019941080203316217617694618775523859267118926738781286624656463192288400800345159462417744619841699681852669892248837243911730087484553356796501125261196411154190240157683505860791606501349136160125472081188901977158261862104335777075582752264404742175796436761391734561796435564421773632275101209338580432708574312046004059599004819239267351658309950126438461701161992567081817344358906863324734037764996444074295835213875948644238051911543103552351479753616239924347370000881585484363604511029551170114857879857275939030670302818517742036002881375028842651055962197845274459604894061114924881453886709828096310313052523670449374321977652447714682531718791094425487506074884804277992538319419615424276721081243910189803822096438288035690090002868027888539752575387159365933519252690198550705297437742200219595303128771024235304647345933080885746606461799080039043969988318141764202893664062318609739532075880829149822316580702962683357956100775904257711231933558857808759339565803920651479191526933399238471828923136424144469603537497052095431113247807753489994201704210215067473308361073616922879057530501064027287214166769202431583367953844894967073748585761656050691732887475690716094049469851628587214189576870351577313180221020959799226012336548967234990187803251505710025619015289465686633903572156636112963949489839346079455326554911664841107784107346509578944163373886504790800311510580626661954467500700614367163926620675991743074992020923148707818521352342892461418888309398915385028093352027714375788492769211722321299404047827552310222381020421209144645387557420842119847877812760537208531312831013715211184517332560214678206383939127088103472482814129936548132991226266504866098492308904856051913872764264137828683733957617127994877197592156833204982000785984202265971191929831579834697872894760074059128498451327942571123496716055634772009578378669807517928563868716616995284661964356882426767952964279239360802656499960930003378718257962106937834668353070887022931528817111430923903049997769657059533771228754138893165100936388366618350557062576632078869125370420101953478816038319204769991540560483974332140724573954020404273806036118907684033469501692986605090320771123550733922658228073216897247543818043680005471305613752022406703345107775385688762253589931905974963940420425652195567989269574571607278738697522038358782620132501493574657952803507689486973493172427763436093752588365419217337396745239810530958451268752210207061054395005597602411278993668124434077522555639254631096327301203503198030248108708527910470129378052758167913451416545064831004226361024020787123702509930127793188378973775977286847305750552210285073604678306363948662030143276525234241892406038415547879208684242903944862115524318844332221576558550165183214014510567477000455130210290679487224336588678593501942884456380549634356079876654152898696259853564763233413349496677410253863106901159014565416130661734883337769708364624112233189472971100122003284515985261746740972409646779324724851677901021036430751147811500105345720083106883842033325003832804419067069479738751417168753915395104001393460821861640925703625721503827193318519403197769776977027008241912839941229794479467200187177503345153099646572754653782749587561667495085908362465546498237738497362672691264299309521752930981671377535028565926052764334449495430109805721341734457971850542497199587413941716058230519297713289383846847192118966055233087697474265563642888498566655589234923744903194869735789018459212592118943558794762060587096038340877646403647901288672973575346001055451813750765135817363121956820017389473953561307135595640995893406593371296880911877292639060660807949899096283264835161893281925295573794071707276006980028407245560176599297225988432751745571572629296395593515396436218565514726013429270642833559589300518608638877693110928308103886857972202157524897739173872026160612755158995133456881935093732693409148454734369881693794824977605390139492872988375856734634211164056179766071071794491204196956323448244147896739867691104872089813176504604524783711377016133664041398211867907845886034106658273699694655036495577336929893602707014819941045073368685970303338282853472780111823647982058422695862818570244868790590357102229884248144594134904504164759167580824121647662086723109198705861274406961888933711749667342996966665066850364690328598852097394448422924997447471182582417602433362580353389908801846340295451734217281904582152226191076264572162079972683551470152002286402524651276441934850985330989762286260656197082740476877384441539864453456262919339550159679694507089922072605864211093444863522922943030027877708307712022522978652789368603781071485097392683443389903569847801093086061234087403970178654463268231049772530918876870892475366411357590829262983622349382986842246063187286004969094835171381101477434397676905850262545425998450862413156051822435286719302462199939596166067659182299384198143264906425984427640871388427176530890371086469433884662156212663267095476161778975032009093754672562720934015257660482576306212006116642226321972590777379025156833883846899752393707866232024441986551327296995816837528516722537208115836732438332008157564571271317440114831470433427388642820414504941479630760210465673054614990265133868212632424780488773047410677297162156900645656269602698279055245064224924143716455250398531103575017848277896837065113301119044265244251352795193957862156464713095717455142057471259719294270182471965264439199411030549649790416345258629473831079385477503753256740660798656617582730599973572805546658385871074204014063571443969236872798116699763652982668557942536318892359576157268533309896108651405058532056206681855686167271374753912971906662652303342652646770222989287680402362800677388331801681868368810014405074663767948957929624224987060482740380071028825615128779913642924273413702699698808452296153187092481105916919516435940299479725246447488812281132192864134267025859973490481839762164592240186364591577601839980124648378243669408695605223646246589819102850906073432083946619023516819516355247246929504475625958314496149848258322446231291933018157350724082707309279589644402037604660269531899334627815398169442126680490636210691919904384553146340939392417526042736068788583309050217548841308251237913555886519794167405956756376798884239826834663928805079109938679639970161095256912184443827425933964204543054459063475571728031340169872946254468536573384755847031903983607570190972360209814286134537949956240248261988307851625749673163846319133777597979693989109299053482183581079953809246764798413986177798124532847310397672608623025985969793759059709737473799335241310750207937274424935976324004687254844800965784088276515325116616568953901892444637722155888645826712017622506691876916350752868790947673844090932802647314290549774940456922798353950636245691000079924539953590741362974634415803469733065435131084933111795792508992361614854154385181387788237879054386700875088928328844350729473025284256386162395224784296477080338928819579478757257582681042419314775730659352071920985767160761482438515928515595941491400034253220633668166502841045178281576507753768513718815563639408793731381727561535082558668788601418227710736923289819251252000810016117859267682880711630409853193217320741058077840525854528302476162367383659675694968644831860850442966042221829335607648663221470561965159667721570956460368207160057041106417564921011879924305108237582777423180469331142728042479547327722714420941632029680412338655608534834369121152503118769193895642041061382551141053866046893226522917386275575556998738077080841468356749092294299475042459938571698079468435438026005282753814274685584522975188749378443323122661520967279285564003239386441400734950289076782950436098246381738709728799891889980221381830753668393262232944488624628762799160611271196576546157784036665050196084341922908902395570835833521813808823989322527824386419866337375383072857601057832166838554713567479798920916150160657647294032836393550825236029875312378425594490972733405113945566316475243068328500841839026913856656461905848121336050310834044534042018423350970847419943083793468214319334902969315952256869520712362356968467437217759106438817686625189931868046631131980793660170466169488670921062826813051729710956437331306548260824972282617003550288804075623977448096812898211487036722690191582082829880720821362835152266383111689810324390403997740992545693350351392048360690736828727702613809457120449118557337659651787516962746711087778564777474004400249864253076159200166603427571389598002177396657146982734818926739330037907264199538199246604983330236341538793071128188131134140248586573757857002355337825101200590671386355861797714405621073092436787537203452199654226041425726764266067632832329337753522759502129841797093124537041426816512013023415428251187918838711686258782359420060332805045835713533104860086280935571047538444109201442917514281612152802374414113304267524829698954820901449402395205406792456287852927791910988102603984238757886499463433569932145683632155298644413406291907811452150392711845418665993682093847843190720326542131898234151545876765666535044311705085124561803068852680606730925969567450606102057609429300347073434474002903060288156262989050306137132745040722134379989479171480947815030235512330469614155244882191161318990550864762581342566852890989527218840223600244966680763402995867411222570755338760025911207729636575856192983447858193013890665360290743304329084080242058480405373486116474866152497162399203785261373878214686340255091730894444523169374916864037788852943702802760725594830768000129758275648907456241548463310888806681250448225005593936232020237746983670729588445136650942093234299702903737074311634480894994477852612331332229140763805663414837236638801444109600579252387613912405526501781106893007962003650858678823172403533089513359731387835488654904358269984863656006571243461161656527566618967042122947450007693005456761180500352793263538554652799148154232043955552626344224884416797601416620685540469774307792372370835429071825542268547835035127432738151852663679729041047415688490796817703281046929931877032031345204861068568974781774142342393724547101484067923139626367502161442850958279755723189750076190007725537704421644594377611321383458711893179014835784333978707422915222429095520818780380424037066214450244722777746442271125140797608490476294524933334400330455534031787688820421470587136042929872012699807823335918506863247778864681726745843167511746554682105315813147958863407818040869023906540053373647408754305970012130937727487570785900711465054756771826741591318798141467970089726254248959100078969516788130170864228610169978653368305284053298142271428221399552769586232702696558167686710014519688140369382734642288810332795169842570389333184155435708960817489370238623769698762555398365220391375709365710929154814671603541886187771428161294485735191007767234750550784909743443281277944673123528506673740658874905872705826015877242091581202221936446001132501250145303669158153924808814848228356590878341953948663353388893306592587516132235421262913539430488372563897632610677596759237886194244382101765993251617392364332777232739098974696928211635563444757228578309572831564665976806974639409096437667271586434987700203433166292509322364271841489237613413539939242378868103656856000046422082406631090521722398646415780801437745942337911348292892560121993712710909913459978770216461766632270348534991612507831147491289136871423206188911890347027411444927500579654561362755245986396905901132775110851665261138873836972765831379093258851495064566857546629318320345089878071666460843304713328845532627873138380288449494660464610230220793039111542706736285547416976172997866891156018657000290055475231163245985582155925910948420109907502173634363407529228091728993834552968186404193186744012757387082699463154179082203352183887046404028884599188441906056840283270352385460601009905130364975933050766034997455994967912319082736856117483762314079888473518949248344684812181805367150644275870835417480435375578580404679512503598378804397481434135868288708250275556715275594266687117298724845779883481995813787849689226136842584642695518764644843954135235974543844383765904635078031859390862527093008931857454959532881810466748389382285092620301843144623323944704410191380134782672989066883480906207355278532670970567491472369732697015065626806137565203646993267490747551722462792250780922351824879178596622470039154748786022615549164299799635949468518287541890523814372270220110305059928453637540426642354800208407388176305018064335368369917130285697644997262582845941225168978175693381303960821012394550632131212565402436910203841561032329950905430583369800663473769719578741970125168623759048327418838864854026507224156928393285796300699743448688242293396394022243127353776071815013799554602990602315342875125752119599234157226100975553936252712396591916570967693380155011472847222917637965304192319738074857873545873187636783617616038894203325412131817095143920316673897267239476331972488595467557153940808173820177347162407246496772881072239600222912577837063402271715134311429206228069631940881577670530178358700616511379924751372997204628543948921894750005939474337961926300715155194512722932221293415562487895087516042548954408658391748803775794698912861892162510990000239932944161998560818532801375501603773284591696676870524180831198346716342134377653412442719051222015942534871355365723655609709524425226364937740511225087364699574217683409879519484840142478514572177777522244418913217531808114086543798417448800550996820459039426011041872988302414397659646156688829161299707452124584040922469960532881317446757442589927962900483705080202613806382089886002098295163145355197844306293663185547823962985474722895054129247483781589426819953143337713400178853993274666635082488597260479641422733252610402523832736094743884983163822566955922558016956038822733364859169157089245720046335992897512239072616200669120426156232435725286460407404068500681451278518219616864690030449546476465196705306784675740018132672538031446577994901256140397817867066393473888950419994322204217677481088388462241498554586066443866388285555203921544041784134860350166220617434594032754621178647861310103518518569744090078803379486906747240693909763295427430767985761326157149854094440746587467837578469560612553108474276261059949346903189721947328905686822504875976590802746139744021714013650441399849272409516070047293242461492482438636711131742537928344553877339995058101481226384485114369326992729640481583071899287603434299702351947760129716070852460332579022096151385951385295799420493604007057474940064816389264578814095105304545061744609473349813814893016996793887722045857331338596971241499537178168580894726896389970846654647041921887969365612513162059270203410057077403647634455984393131143494825573547605966716077083322490183698458146781750246510350244780650720630122126893678907210234728002813580569158666830865402311227076876120593086746989548504464892813161527033040736698312134589462822726720730145172806451442127980522827989288754601202000563880523467842309598344377145620309221461932032093310917483478609557337379296527659990755538968411587642237808008463040305933701650865207023580646238052299386537193459943131480643292482932161301977418347270478728980345187882558184694281968947845448015252308959947038157994930772411918649910376786527227247213827327407790854738209602024631339828857869888685065677462685285065255255312125335401708680544461474907362079738608218071351960745435441602470861056228871184099309339001260263502471539419173051454338187841725411825562924618634102995902647580997296570820296714841492866382868030204864979899066076241247234885939667125709444932120880690756735941430474033465550634938995924051125172188763938715578247971132390497017109832321849253813756250075750160683112564197335105068422147068884786099742390783992844547173453035294360191989471380903361510035636642602450913992296112323681981511815071663118260949811755344858288967055181131605555779447017254182323626523432704418920867820082214161684706678743118051848452267139110435081234448172970773854131506377463037526596642571948602090190956228920938972437315144529946822213868374545338761962744058783873564490658545247079361072112775993563671415244551514598855684852456893548162050681210947881140042246775497984709071343823158279373349250655143478551087431737088766762783273994903623660213185405148947096366095795531999531582486984308849858695631558286574719505264206642807177070472324215896633746274081432500683674035424797799134527326270835997145262803322513589482044346841276321223195049105833326844254444232528654868983837921772752269895259051765145157975215503959288064315976424190528259180201460717293759828885914200315358096300218017648179438643287035578725268142767412214899976850273895365420220123834287533936872394404313504793865371516685592294999552140377651458342624362469258782612371496333127488387027828906246450165997355499400831927625022515621916199163786153494806984305796988195515858934416285434865867682252933287462240890700988307919841666964965057903509391248997886669681578992054831095369964857172983490620746563510358968768723586057061019128283178657157448693963671541495344678547211969365160794472916821465714650926831225403962354966947806159704403818731285935378077245025363310763127751390050390348666761717890190396823668583149804995686201545809194521814833679937159053636974921206226230349471563827040552641060283027695258476060417463621040047450167859880377755414130212183241097644671775506009879070183889352165758113213087067335019779194443215167137492574358412160230930364354652217513900525619878251932819246635046033441120107923372634471616565397173495472473903323759491078916240593012094319804368157294822384632217946954891589909129627189245536159677633202745174032601108400901390310161696205649929153996762437868173722847025636691993901875587605815233881934670545246142470949142317225069520326702971625619203944781319424194712080459841570137350545764304020990831037557631707263318289620897653195532237515941508313832406033551321912191756464999800328778875738988262274029372665558900595448133504135194921119498599465935005343918169620706389185535624111849125497570432076315919776576276841988364017114068367838268698438791857020464723696962100330230601029491389537222582018894965308098172221377738207835181457686857569803066449506792041406781764222317537988391381147802200401518379070458390002071926546956733943389643758927799654740124678673361520759299020853580507825176925143617390602368825406815501903702688113734905883056289225937741021267471686604006619927239638940187661248682042640366310351274939775294869530764954971621537802897723107013983410865290496343192849101694346873328446140746612474530588242676648640139000711615869333844995216176073871118949757405381394857322575239457735135421231845536287198163258766588351180624985574962527273833254663923909615864720738744466860024776331218702072735607122925655205125935725517620846240017059167609213497991394099162158863562498139757296228983737590927002930904785066653331560068280506502548790544197949378470379150832910460081158564724410258954865355419091611316234391137136027630400864920504979833380731977814869895925532481194555846828738331700597187453177053226674966660797328278430005715799016993487515130706717447595300941884280832028286378071840385853049684399486293668285879562086312333451934131527386970919816913735695055916461925326293141453157365288079688035574703110041111256878126480095497618250840620943280112981220671336791479013663860843362810373315020487456185691781485768324179929140751671649252622117699221772153231544415499328465115506869594776552623200509555066343430535549713776085194423230664376772490298981007360708423226065919664186192315873976252919091072323094446691025184352996998739363524694737133890975987476197828634572744490958288182771286603957078246558713502047089571405780983502119059360455378199015624302530417633932435499916568632113314299941195377292235038793292351277514236387956166340564947588360776483400688069855267255661621901269123211276105740451523953168651663735390691905216433542313018789504445024076104023097968009073659859409154143259292580154169897738044962664490896029906821409054336019824079830882111349213375086804270831169690657097497345161344667090784676835491334834190494686447357868674363093222651871632156460596773753008044076103875550190037809239355147301917782100758900246823691746515440896747407205349161310141789887291534543249510596503863236561448088899383370741158969306355528757143680342632056385582679428353469284224825746565433928340865754958156784788557952155359409909684923823236702644879137129583444613028430948843824052748588962545365532878115895528312879817563127757663904824756710437007162761590233860991800417307396249318157013195348696630635818770522915011128909796027107159954991607733607150800747326397317373703630448285163459954359442556800908851582209505761911112538204286670251058370392759992410770074768473694977153379536212437002900018258308163861447103490790645180742217994955397111571134339138914438602844674961940165934813846617505147995573126117406816065285695245758322400213954330775385157239998420190453498283131724167402247392557295617571167483579431227400568010021879705709375188837449418746168005331847672180649862760856107226057208484958059809583188518013110766703663800761261781129431007535699623199907361833815389524681181661404714845531072188791773673002020566692838163949350906521108275669707046748467434707352947486123171628222201742552907512931707048299927128267495382637506917207545582075825915175050201409527079279489863495023514227858425385796976386616918952988340990597003187717774932906062576109757697990546183097562496523540411476181013258599735390724583542154576547235967592474949029615273639285540190595237300894899047721852228537226102229709617615369171032096496012018237490688166515913598994418888444819842701183334267938973995349257539562474880999015734909005917808919482621879989529945393698668898636699746522708129437127767777447238910197353272968180605232008239897994823344689674042142324819887592170489380056812292518258366513072788978293228531825482729703783815111843653615104210900293951035372145597313601790625568262645673678294267676664227881992165250715343301976934572652761945082969867124610659505879188677091318541986370612946864342705021975833094426590036641386110211413349887891908993983700105617668159817293430879487069345113020503133310348157384074913432830504828780924776723993648496392112098122517517493311412507487640475444921707882947579369872055367646042267820411722230929353872179135937856751132355140759859477212460177449024008900418790619583931314676629798615629411402957490607600890571753790224797907126723992788224358573538091922085112153282540961738478426170147782732684270834918944040797538989724961459540281134314839589704088716019339743136686404738733476314224279238958583757078011954694408707788186612076040868035154406976902158984304651952178995835312625559367701623433594254947310341761074133042760476593903997805116208410201285323465940251464158466668119091297327393467097485017996126661569887743629216669443808295967939057398591927410060940905228819113431329775799549321854778533415738370491687706183536650930402619463621906027046466437265309333508917033361891975900869813953640882053245259032608519273443786957506582309430332717620864659154850037764409414815870208125803489108154293410883948685783578408510870353307154186184725953981998259296271061911630488776937094318192709793496908338736307916381938694766990310278322163287554413792503282639397357778601240462372979876399911002527593063517251825449336276147958990131643769502063706219395064343125130047815943272818613591054574948421704381187260495331483782641435035760957926877146237068502085493071445720031305103987901786400189139211994500586780579253059888096544739721910815889640156703849010484660740213677424037057341224121952004101004012755541194082235074836513456570491198879646145578388812703942185219483529965214724814494589013867617856668128539991189194996262030861020978638405689203873495817749018205153186616254750414479510882067865328289890094059060578922460940663413964366815327007181605447930199897475375464413666791719272829050405304896706777717487536693204013184117178406682105617787984553929741290602284132721973170900700151805216613075518704161235000726897366784150974921596094585860047144502229377716162639957458380061611098845438369382037786058736610557269086799964503856140411923313127506147363465868653832548373040060769403252942678282730254807727742313119924213259137244872806033567392909682122993886376348106990934360703235492814894886566331718569331879791697258122285471195719361564526759753979064290685513533094127343347898028982575055332352058207693364064034675495068209409556847518236320660520034438460825324013463410943324516125396634172859717640602971677758494511879956099187099792235536449447091933957199196976400347779572400474288119637554629630554837324235279862224623460418178300754525700064080548490011992341311675384095039423506696974018905663117728949085274098551334076343497841368292084361905407127883136062547983223525779042723804337296288686835679871586680835050452132155193409804346756162987178036894826208656743077505091001186996717475380478538027978766328214111865150839918153931236493378867866470886099272930938343653299747864644688133378368889860474245987311456120117130159598157324248601406954559089683364485671713821489825409474135257362645015196278210526403905262653073228693432438971009987319807310357805603060959371830064663083548031508095986074813000883285551653335283539547500950818294282045344617572066151685263252659733840287320030559489951358883745179072599232658200380868416595640712661979644059775170347749489305632132403453597707494529151355973036002353358599748537781700540596800091228337785638010596715688308430991938574382298860736477855343922023339545271997574563674223148621249679266857725567515213072699296231509226393385782357592552312706840093642001627790714576139106980466733819576928680720786550123055598936428134766586035124345159016450465906337521897207200501162311091330715755196678624089609282540009159450163339619082188310986844869629482523463021776277010817435907844755495955435443384860367206677383909087054719044008877957552715904428351058477628812150251983890640285746222025029862311158368881304263588269684152080333690252799598721242924623623088891420290675402735780421852404453855574497912155954112286504851307053024210506701518138159769658742494046215644074377428622973048082106513302688118431861404123822399108830336422510432371770491916861196909677851047855039237012690375297224741892001634957988620728110309490481445708484728091398572809227354326297409205862588244183149108517375786811981655865721306839344643782990144969794165779606672854417619292080006234277938889948825097101054140645536415711473366175569239232270245079527759992277944513265730959748991569215878291023852551816984036920701681734939879556786515553534973951436995409800324907264532043661070045356853552975425384688706023912274971655675642313423980529377055236428631939500183920252517336897773621546067644848327986458626041261043806553452301764604887131017929038985981459551492644758947240722552162508179357808574898021743088389035209059658777576407801181433225912897582597477604105586523247920590858687374509548997059495306129959916160248304648637201289109274424025600220209354975625111051929265414270137077630734551505669069397354047793986057947258291727280424212380649337838077873134272199929264764610396230165161993098643860707316346594241423891521377583680358882241121983991410414730242998918144789944976235881570347588347022314756049251104680900926244098372232325265030574634781866725414679049570985739469018790428584403365470880893166063382583953475518453100904500361540688303700112957346936993372876809963272309422500909089130220749600895317952740974064832436735364109286048293925742626389843740555684540891124612167362213303385343898432562910837510265965391970300474106702153241142250799263461644429538179118271648568472613132019740176024689885482291488818168277461389492646237090602133311414765727669007974971203266795999747514018120545453802713472340193276725101702619567787410697166825905346793594532478792155024108520438301333247986620935992740743214528094403323558696963261257652230377881931087476142091891986196234986214764274286621573946223038670118530534171875526691406130837334064545048833603360301781278052086304424423154886120689462592958778743635590119215783143525744018024968800827845501547771366107474263636084868784842581963074313174652525362125127950814856161579417759233389233896802981547680671297881943395486456798239602111273886056668867512614637855273979058069330703405728528931214082261312065457545322149829269885065946908245807158226993087514340619808618444161364283501089622718568444000305674270746092232500453870480582229768588943610881815229896208724616241777041277582804611492571384370369385724356215245072496041031277948248254578597841855302090104139121257940281741463131220715749628810230130088507398981185493119314127225301479163742073943548180753661354432119212755300107909436989700353771149520636241131247610141108743575523387031269594489754977274075776870381663703420552526215511847132645682083950357607219221443011700841480877696205636573699075660788045915677479752280443605916767526314565941256698833533343529502418447444756378040764543014364903098129396848594887590655620583959220390443075672160326605089097612825967364671700552165904763986217656429835158622826422106451409905105209506412432812031038468444696876341378678187436434820847003578558003624162571645416414743324506503393761511770691673922400201232514951073354357776865516519778151839007381301030266824674152276372263479507729299939184667334804876729698487858164766601349256142612108747452217801250114355228309466128552105299485258890618354037585693071887358276860976129395954628961690299106222868058854839869774867187262889283870544546863436442971259262728849294108470221584363963578122473021719827157441586176269394880123615056247193253032723957933409832196208854734462810279446032002173820019363312653418999020006829634747979816283667559175977116673330074597146298020947006274341531017720070397818597670382465619973794205861507879772606016847489826667391046521185278386907708618305521342195918473522688686962259087483059742143192776878021365752518056855975123856514911913096605848035406780825956751198144717737649486769655357450648493445533075359071291078358457298267910877439819010213895294238454203052911024200196585030666419311037951249989073948853692045135465099696626187731780670299390979856048683830157851182967552213462261268831961537347192609286083926464390952159766993921200484929269557276859275421823561030396377298793844732902357697098329753437788052872694196433161389400306518561992111731996630719828021656086916963511431533106285026996758060112660907811259377751505099948574691497763319992627348656349013708271254680782646099966251179051538365384733466503243698846255894742780445308839142472139729546754752386247308069287211256847555658276836929445305167834452868360384768837394070482475452240762787967674508420002324332647799660844501496378581519895303082274719662568370173961746343713393387125386337431028485098140450069858125487800374637240734580113219980476890942545458728453301632780760495264830215591583555233399946267005351380563296026783879803070330206023972343841729303670879506787729521521422168224347341666227284428726985462094154851092404933326242910752105387570514626967043609202440232659576253337381254981373639853916089257761016268458363559490720378960054751761046109242307161138668632553091588310717908086974892744584535761402013263655251621228613415912880901457804199686358556324459293500925190230489787035833451295126046070428393286076489483100657392373288674066560223444137246475623328854041739639240555855898452487902733280659511447711506404509978404778491688194736891370782402338876343128358691387280435921048463979930779302098227483975717560816970528299054739668080404550432544323331818623946862854137338853196753124433368824159261727909445918799543165878921393476795532467414381930224433366068643188446387675246114770602892856442863165851713136399366712714110598559352458541279950407904828397895100784714892134045984464057236473755354936977284086981026319025951021407595632360922567056330876678393293690442339432228496508028558421389134627709193856396389095501920136781421106759519090798676211693872041326085054051939373606793378870709883811607141689260879862928103353562657744971550050425589202508805668926718321715915701973881258357239315416170998220141238654081337653919005760974640075060561793496663829640627165459130012137036468080674795570883796557175005587033153328765611849664664725565760354579564768932178114890514753751445298595257517863079507509204203465188210882154732832863555564887458198817541365280060102331347109559273601413002329374684853698491566322902394721919231506794986828619833571008418378847358824458827672967958708215020579452277280508044151756330175238763117781702591454765676319315877348343525840108775985063270087239804649719509848364027488795930965674080269403408405574542254029584450724293679063159290608193343493974129513649777371260383967999490951741553550930529288583805377244025926361992080430678612202875637904709189787503355061959716163102583548108698609105106799413690335406935010601614735752132076622545739512282235111083865037948364646178983670302918614877986402926960061269813977465484238408509492066526252137106148685751727285900755748508571612522440138550269111974746848311610366325333044376168610563705074603869127133887998405176526839017229233451864284753956651717199477080002003256542351450729886203148054241099634972023303974294020999569861271152082371002086766981208589376088538930890464425407225787370440433934805447698313055244816904668617562230328790383171162283934887508467199032739850074314920580577670512760622625937343816582400129516735989431510644744591809642057233504586733458188926173622014682468636170294476938030594004730189590806707850242331385799898299577523942016099270454797496611779528212326337108801549981624738825310239447733280374160541909044850417754949164306187566023591838305462597607633841655154388995947871124981713924029775063455018966639021333663235258132938842324576614873075409081606570561288946102749694349314433671196972137282531912831181543104152088830070386836060898047393858721471276476418810727623778175637209528146432250137272640624548558943393995508709638243524504502630312327572344867836532363844269637800587133293045259092643512379318372025256142501182100222054142734774132710628359580359294265854412469200696699704159665742764904740707830043007765802918762304560822512670853661077027420663728972244383271069589506875294350693794120915472952737930877603678103510569221112666845370076982522445694159829705368840605562133346022965381761216144772462943429528847636194450856091465727918952458838248047798168289766102676794322295811001314815952073307022572354503083575372834773303086287663401492546429373295163890318330986606471755103905028299785138875353167814446856570746748946247340228384501613173590471645630527736740144425883701971243027036638403785661144066312852311891234875849504821502003631814012669637635037475253553398342854868723592286711640797021053787189427239770188748404031788657008042913156870232767597389301259934549793445245976909522991690313439935516709682500427753279574244600494092824177602897219670911347726702811268041102617286270231676599364892372488232174623885247146044900078108484253110197575309137297481637372411066875285746275170973540684679001514354749674349595216670262124172857985825304765330576295920209539617498709583538710662829223720435669610332052764564418755666022840212367999941028444740368232683579632622668075305658717078000728338466564701728856099350618096778433441711855399509160423774839080012250940800123397085173654058523377076322012684654252209180905423704768404501129592956091819537892643750612017127757120472812237418752637462271146209715524929977273982742231667952056083050243774892125239308597949812996451402365645478316910899070027758290299037334206566578590268236885727344815586158613169812465768546477211985952784976401301730415455016650556899271789373250636327894317811197196203520166132711145557210454616101595322469695044567298349885027468021312003683500001219708839529218964515450914740685542071140895594435898549833348114778786793025666805828005344662259083648188709194044002969212620326934151489576680728228344598347065373126537283651380289823033391069678227932003600986663294327159986356482807795032856278031140284853794141953181344980101226823399620649804462398465962158776425251986491451611677179381927390917387275445941539271469537710099911505801500613080963433969988319790712829312634227952761655767907684307186086419646990960393997254815772593928826847300501611739442821547857965675930920589934160055150822662695067627015568066477361888911709537836683205931870108098252499009998663475031913235626190367511056510727467735875254693421046491343158062620461071484326922304013779732757777613583163996697599397488580651105477688412582524259719748428527788232465978372788994249860720172672926732884370964925788504329988474453893539664261825472238918745759313237118709560991115176961486079284600849169945776013295126727571993660823176156272906456472237820914403303899251884140462611281385657460385783963946330230908532348531392665809433553283943116599893900140939131649071755758728189106356539948626375538534006811045117046977488378010539756364773798076244246422723296085735712272450725502235861997135766598628076336713283751961271723087461964992350825648402281971041411648917777261629884225274101312710741380136824465579245724081901563013835753523407308421202032184775381592710780886446579413783400150635702043181117544113533733753640978318352125722299215617043137973839154252062439683514266993860979843848034443400336944997498631037909479687989835836168209981608554484359613059289387494975056663981417824677777118304253494134009374335316941198625331636844016875016493601956778398409431756418654912863002000281231398265589678033832321103230582741975544110284592678973016868195566630610965292015582109022592944925794202287167815001372380496284766164758621336441281339672046756097930834766027388726614832961119334542321954700495524571065326720811218614545170751879822409565057629141395095957688858185175166251014084362209560833961417469253584900334427603434397630457011745455491484930628286922064257814341768568253157561540430363842560718424482142588225477499660019719400480747215477623941867976857936718339169489689899735760437391865927564873525232469176595386070578891975855202860450663623824629730055615703186173374823879271195944100262170692802454730442682495895606393450630223769556864263983610077832842600030100484986542615721725575486588224511542970636020533671660635215570472089213817664598428398968131875977817994379354880418285734216536100788862168064487359270302494924246912098320147221865688340775801539715378428318052045875134660957999035866381623151079665335331511868287940167624421862253539267511626841841492817459048577951463402445295174919661428750464822214534594849128885504420398435912805708729064603963648552952735680964071280050247677603030112241156556921462754546619712482580180614553467452537608387873556212353456998736901237381355783301471844585586482199173098081829295238258637843037672798381312968204525330953056124869073986299572870373968537957858495929301124140459509842070835888002388323352568151677617341249337258093783330443395565472631344539944323496138367606133724119579983681267778806800937707927257361166559794750450629869260766470699725949704486750839796505890550316260298808212816526792688694184983514687923218687871705173187852560219111251261185094208306072406735993321525142385856962359556429160963393587137769461091828643382056312786817873245427364994246712767295049034700034763427864208285679500706524028689621532313020901044580779152819406287356645035500350941126259241951089927743343848562121695229446291260503040094179147895904863084298755140317091290881764294997609965064646650207321441417665809296041811196938228103874436718530984765331706340883983968356987505532533149824453231040174173084443448188306136995224952586429840609700217206298167663586291674865654883580889159281385772283738491724780290996935627620936763802248559428468806658687213803919557009798098528444007967710760718223592483135785528966139149977464120924960827216928173033348617391108308853805868659615932729102418541945389940487678188277826224711522643351457229955285853725978587125263225622451419207431697355210550517343508458195570863270638715470924137803591082096778672684593791398499664235731689848386125114933178388507391054356557386969393553644862220739027481247797559727468738967280632107727083306049543584653802030176226443801949408667661493015443000323804320639507931133351100361090065482626342077881179827508143054263366153269775379651293962997065489153969711849923238133880740886807334945713469182622119052683646204266784870975934783475705705802621256950753979611689518657257093802897944628498881711892431854987244545745109631992266302788410747646571948081112748697225649935206060703600414639455060258855208496374588228936448326198034140473348380849850037557407965221822887099849563191670616136730279057595343974602823999025424523385358594241360021541254114306584620692825676493432952162418553388280537913231256795812643643163746262966023998836123295514232343888029656757114950342369924429739139779605890994725650178214316570612837545839637826109168557255820877686588560952674201286157858537737399176562211972441290501250497602662715357973760831083277170646948448464973511923240497929214120849392694796228274625072720323736323723207488647947749604901586308220236018643024845749138208474072984026405147773354093526712502420254933790424858950051872407593800642239933573711936646710160486445563011628620489743680544801838085903346839154116939170235631272393980953574328003522246577150463509184951939721254344163635534603356523982321271924095670108959645780131806025288308043496906498678336223617749658612920973502382748028378519932353069573353600467176651859575440100088698519801130432529026448040709779118950181319344347345505213392103921016333807495069656261129750691145934063510615181337611803650192478873956373627876792928409948124972627724903983301801312337234437658345554476029105777184220447341925442864855677894940412452705828497990549097090621791718536490386052189037807310854758390397289473489532966566969727536475754724211855725423744417902727718425873707776754579108495513768047370692631146815312577587438635657322311385719595003222494250384635112131390665540037912471998833135467266278447136401354981778023784622018718755463940486435893056893956866922502953818879209747903927249030895519467487135215105965634546775992226468118456587628420762613007368994432203691274540833864037771269430693910034562259550808565711801322843702752712467556744501056234468058614962964269507311374224449895190872978476873106693144353655087432360518524483529612591494509727153053049424548627935061529662283229946399216459160261425714738999814737759411970525370843389685409702611823319747713481953021202827670972686825103557552538263200867612974535534627161837802674231033703207143563415330007487464557872721435569169853789195963140907467076452184621054824768550802574077372533809803969044330852324646981318918144757098366244148528959611620074210126917069992025877532200871932587210898017650042154164118396026176958633475084120760747938517078549354915549426211900751753107781186319187418308611979420180893512788842525738278782065984526155291060874637857311665997350340264911686614049496840882136166783089950391988561390377856385542679705328774915877442754292677567172850451260063724072678065788552805036534608403264121663045405205099155463101306500212313464728938202014558490800900442177577426112696358122581612400302043735947077662396546961726659719167052967536601069113520310460146071533348768524862886100718975328454000370372833678205001730160038513588271616568849172766009045705756079236938806702800487417505077035314409241066995101742268412666178309344393758108378370022291243885960889537328608629993281888715673863345139551105884418507013588800326291891951500836527486878145984833410124384897152223675530418652290682764825246767632615948861637573743996691883586562154747524337219381813362583783170618464861988437936306744468187541677453541295685786954097285260756834000087058172672694121473643547574783767942702241529180765033903786659459058931777002261438651784242978942069732531435764190852186475997558936178086131313553941222003728240040777504230329934386822372077374290283608210325059863066863460751170697254274962393583699220249050046203233821002810594787857402226161936651054597739965876569951646708797721984673165745919305273824949018798996942603125174418296800311781911063657016201285122200274783612380319701136803616103633275000684481598253232707747342300086533024401926292023105612270546594677476238209753634948794229823253535571562763422831646828043982570969964597760754573779116190556298867316976980546768851072483792287951339129244679864134621069018354736438480872613699599188854879554513117330560670716248594692178087262941072675603848351690140420730942634891523376269837858266040423469417026003568282194594691886843837737044155400151617150775214113122669148576656815361495282791430407106490542211928413339009771511143655618499615182304356129602661449714230375632495925506022085088952376110598805848444972762310086001524087514114234448581028809087607685445151271234831051536114288974915511458850635420244007696513752879529215951373779351602583497394820457058046575227671438474917011529128956768870268911573824736527246602563721819671877875798570188380295198693505231509785679356723834158676999401952247170939380150293552542047081790412958954731816552491420162301162158031653060811994578323913795499442888379472255726021164755705401263297207829683393953199605021075857245308159792514998529892516835563524118296902099576680354354690774346122197827865910317439208756700644036902743422087767226911215324760102571256248789604121157231370675219795738588521700359927743097720881555253499803794128874689543840237160429979762962751080618766355097557063646071392767263160215015937403173272589531793543674619365304884115061336350228332468482160017463863552056847808630238044528984058890012232666948522748104649776407358208000255893852307978779000770938567180858049235245872681790873873748652449150643056807976955090244179967321568328485642765165435439607073454005377798343936052408858827425928709294786709101098388183079211258331095013378984590301261732857007085110599223148863251229956105514395761434100967867501374253309596006330933606996714719555749619628323698086482681685829932392538840766164624746597257754259602990937661507766694491462180336414141263871464856541112140665665691351134378450717645440882027249408091884150992878710399881171789161044687645644753061181221987002930662544712818663862074091462099157951490801516183090779476345608660715914726985207617035392857104691414857795713281742313384751383970733539558786495580422827445525126437827927126263237141854245504634571158588787320306875560411651749136015936395212506663095203729802825177150305964933099039836774273589136085097565955718759201144173581886277901995273752472162199741001436679279592699715116978901350560000898505477865445320828611758515126428742393322028976219319605613476902546437759625772936568142437059642441526819129802676377068283302041529305118836354309572989764233551915184319381427067663138087776866221806823775404181048555777321937732581301998207218573797342608103207302192718271284321891631141683749672761324027667947031073173425409972735858435440662986594087494532174251833356833249945234489908503612429223105415956823611155357150340394790115320643766488032480059956095953431296695520142001449391920516677100808310349742176340669419674159621853948063890990284388593618932523452092059802666334502134785082544748455788372645916829095417144088541243353820590946264220427007281204176485507179231870510985466884600090974628212577222605602753538883765764053411618418902142024171222113111153489544665706729909686758887927093208691283450227743784726744889016307488625387508926470078711824395071213348062662410722332992493161049049881520763777167624808567829263266285883974910282607772737983197525693017898801686577926511428239559683307073191181209815698430289803729853205898638043162937788165423578388253317926500801342192388213925636303992610704513556185773469008776689055533060430506897420591008408703822801634610321357785879319276026785949295213874622636935749847914382166961643338161614413126517062046181256666034749110772647172515692666472048436042710501423106061904296883927043583131748436532062267300986537257787576583467432146273167904202796597405792014449154309725905357017486525101717768286828984223372478996117043018132584792452316908163144188916986824235593975149985381730407873748477549674079500974215372755133293447725769934705513635885965800276842964069865811139659307847083224773527134756857889983581835825929965170287880320810706763094381328864759814621887453696761675111813252057830248610613679720493650166411163700532807759013439586244886587849439990021615407079512462680903633729536473080574106644242201727688419268267217899746557750097806838876865591085320248130353312997960982690330943834521700885046683713395577139399292760512721984944263371323694117230548853331840270392650649872626922617413334971197013390139631844230804617336753364249725758556376968938396860465361976224866576967658903689198815279392891281752071725065100800141337323646234882316879005863585670329590784847177701029679312670004351682207196051200293722699430656591159679446416263058994591981012049771768302697943939689881680416420767614090038066489732725185909075231021386213310710902587015253533807416308820859351260879099995382478869426121022727099277089860201447343059959090261713953618049453802177425982056747692318490513627416664582145232622157700629384743680736002917298433440592583530411943372788320187793677127611514635134744975364507436531698669494405922216310403224651336790997466164098371976626794127857734244876441959282218711855633770848246336814121382314131457346386160215640288198202938879503607877454616229529054481057882279196212842579406412753433277443614865918155181469008662306014322322310200868220849867169954692914935052688004259201157933044133239406526040115461391014649838326919421371716254112705180214124581319456854045792509696377088560318063857683532772474218553157019292401496899257352692398337458618103889156676103122246632776327524851694100896184171688933396409577143088719909129180508505874665362671924675908188501888303915946144206495674176018880564096163536323264997513688676162900830020205589841870802083418997658570887443139160584545838045682922536119875713997399823456123526746369188151781731261696094038012305122273927716636349003114169788101496625662380008797220040135642068535769441628175320924077173839099743935725168352457179588711516427850477268815058730470601255762635325527046037332790088347918017336990529293852962660019680402647072854686828776082470343698262971466259746599697290037829084482328495936130479193845900952826466909627293410944420705663933155465306490420725131842989887240623485311979831164082506703705347623184376560385923517234206756257368157344518339374892070708626108211773034278000384362769092780348155986763125729303493553823074515373484048579017747528552122784224577070433750453688934503141981312010970352390457245200065988567547707861248799680989224949137910841784817329408968896617602062419257753283031890696299608117460956063011598067021234608434683648265519776253731441188294589227362503050936635238007631943674156764031294440196316399490587306184621789373591397579981783916223543775167922805720202300527334527395167285315211106346039484471622839453256046012588453757250473317301150164198714982332188226354899656116226598060530021757971239411722357154562381832856288926549183736171148955233595430646980992963185006415734628790656113639655784963545286984106758634067780348501887088524790514481814788790062055887810857514821603951926800749306481390272374047054840305936469446137384127280356958781112071473430902968633813886986551441952357753124156382635562499186751069682288041134751066034904795813291079037819905795157931746761425197366511081851320990445716116093870221508214076084546147786238844587033364232643618124943231582385235461789047936769113999960504649404400353540037799552090387917321112831668593905695787263110933100609467057372108735424634823507683311640035023990105154677247607782136378561892894934805046457752604775005640802680580333473042334319591373429645821857109311160437363365506791369359015272900494756940394219817708949465753136150491754072768612215793406206116501870891251929447895280694022597800558695184199762127428682620867143658441850107548010417433257853177379795326792966940937492770371341422063566189605251190216572205088967306417976228400246249639960399027769690300551340366793359434421151894963551540671479576834685937811215261980081027732648010344662043290243952437644417945402082167172249686906188400358371676347747817789135564723286904306014913372516809485855182293919169599345155540350374524891874572776823463351045428255193624689015228222285657528727289237949492529749519087115915798265703980572599753093330105676971336308337935538651893989356351672460375302695781943454346606925662250441571487123956784642965373093951126897277288558495994570169213096318663241350122059622553795944326553230968507156165523205868423672705642432558388499100549550277571503648742911231704002416627763472020533432799442586646735096824735463098631434960440242837505926320035118613020075879446655356241024579030661681444483316562853797976768560315616583991315024492596649803737073796372219944379734519111617732680436734881076082859442933103291929702382037300173047869761541099439516874170481420747601903821680902575655245694763430965161192481184980843019551730328441749081679845979588969266635448750144447358456188265711587827189700714054367648442653717746127072652535822074213674738191036900777225498054944747185632297683998228573165709996284045534209980119270156320970668475039977475296084305065164584984645543762707885663970464723416395582308302510670052768503527183095278592144683916849888494822705200696343934082002437956472527048381407091272284968450158193863365185233908921705015096423958267449945375146988401387648190053862075891753257007553940582624582706938178698539531304328419162257446047061443017633951342343397582019310721494768221909667009678045582822986754614647283244912830937090660045416283131357689696116758237497533293963046468876191284586744592590895715813493742599559331041646125537802034714607110734646808354039845178746412472685018988657739228099271402578441602343317388214465375456545209936966828279931413233009527895395480106645714988995794878255419956196190163284283733385014986449254335541346875619601055029861666011301646882965703678863303333727896032759118860823576786492260550039844551075097733128601674368845517286904854195413272095240692530567889776710399982530232750557088784805121082868128944135633923895661816854920367563144759945724902163257625323323658018123226613170092194977296644155910018814225287218616104991479679885828385341995488083998748130062224822521023773496795683122145885151698826021996564182492402293551280926945204592193075912455672940182238755580578649319394662214677904677362202517197100918565099090160028115300380187752555228471783085409528839203538086174131039293912798082638169676243937260098933638998909828603004819180782355205445256716761200087655327158462264397548132156844244762244974065576077266103882082075827222744302521701394671852726728494706358946576720880276009354801343570608122070884425117399275164342974396709487310521731193462131867707844958820673063965400856634795591506426463930544209464831356769405932751097582425649018278334970328970419353923101526363639502553035428945439066450311902363787664255519344545048931796277199537855308994487785031002934226621246429824472889252539084613745058657230424364190182934326211515750849190255313651741799448421625667721742771014294591930296902412458205804778357359840207923703623249000914889858811349438752830448425767283149799719599082705829243562117163804433666105879019364639729688061273599213046804048654850840960374184015382643179948595109444256721666592546559732559666250667530468823927704696116047442832910918783330207940412754692209825724703661436362521830063018760818546701905231498035587584631250853415002567036283681292387376158171750102268598113465865719018490210639030215179827494205839708693975724978461353375400183651562248171737650228164921668317620821091463332860269199998495685353753820696506488957602722761346055847870494515317984327297808380677956356160097650534174543291262477821530412800037723998221787334047633130725328181625524212263985204841463365765561992156036387922237766253638764841867151789096179440246018080788782757551614529801300938642398866403583958023651703525341489899723436771841636224934567936934572342599382715580981419201475581852070376531372569413096888718114459902162586801453433584351866095928118788562241552936715257204432098977842293814252780973720434054736887822552638072924787512514285422230491209573028454831948441296585556583852094392309045943511006510668774313674271630431744117063348755829712312213633557395406024277571716476375553638746466984872944021440055519978106647388706380132807049225388458764080586085535266916688126580893914221327976547602290438102148824819407104086063505456757702525163349620164489429748615309003961152896662142814548252983035109734417776901803327371480644006636492919414694000047388728001977336799477267066231951651929167918081558909864994319302143964230737059310929982699002044791455406086994461138977825303959507162412909739745907513783020113470845162809352120380625890250260999318757631427563789555825873681704549894974325287037103677412369812791779156023670494768226679628522303735402519235419275886208017460163920154030246399593329307938917705379844505612920855497973606856746455480664999073723048477678337088419666650056474586618773580552967890349901716098724886480809447529738775256297116849777199998291905585189852340209207591761454271279073898480387927820255644449147560093374209580804270375162066350250573081221920145579340729344301854012189904825139980961575508152741517443164843921139931792141716542737322250065864894597292357918727126362622352674041708835799499175677062823549165700418120833791615412459386702105398591342358461372888569665224098523414759139813982084519082651889229746467953324634398674732089720790861271631926558230303629094969858755530263853629437818591340374586210463189776517124742093623948954375522157808220515428660574679107248154917854459381154084180069979496444261858953350177927797162065794950312861192143142370523098769429241056884369243635093505596237471714430934431442859247520930117744452291969643612188380978105785584060136695335965808897410476573050374988286666370196092467466989205845530557579620864348240945924046958159352221192623990068346230918787956281421560142624386415422642286025749258763501528283075402374054770563559448846646619362269950324671880140298857773949383739349677830782611904081430152814615400287345538044552648671659177619649399594542138913517135657221771194313314757399104618331883262285659648814437549031328043420940633651940409742566694367241157157063935915592939594754004681281016470432291973795292769674253502590409250242248543918597634536166733318307375291177771974837492354427389478945614912566038195715480161419339619496409363195018489574286698344296362333078358497129184998171825235627817596797066652995307120791975499294211702780099851438251952554384929214912321278613793069567256799404602077485688318088197396710499250609256872229892466813779327056486960939348525543320806111465164199619615357943014747305510286214416576141110229366314465908174966715952229438225933887301690565826621017356857535941301980288791787206001044467265344856098383408421140709645350124108167265374392661897008460062971738627122066272958491516601668920600910933031930471066093308890919286184629733759917592766019796747656586954755961757097503602417591756177161020311399942099696841656666377159667940262173732831362885007759585634146035257504374004198616660709740215172747831643659754772757030759349077857482834396399085755256981514928375883792559579767328875869132938194823097028295319918035170877496882718662269615068844319571371666081328434884689335703588634558560153071881523864803509473540000231808667243120636514753129935080019795054043556915966277069787576251154947508611130695826346622448743119231192508171557322245838863349639441653818308740876485400730946992101026041973950189032603699422356625715811898257009028865436389461669498841786633112696904652937228555181344117937306387345005993661543610123696659258804818202059939082422910418611020886691968090769301926388723727782757744642252664645322178507198512070153120219613504889345520253947137938265828581884747063470041851097804522735094412049983806823062940808383864701144414599196023406157969014113718212870229463686875600934978553026938587163926485124292007117011369072679550726537329642542517642657068485907125888552160055974294710420681755460560977765478450867992228407519635642618456382485958031948465187751559572773822669059834350225407547222267344004589548241981356565931755718942865387500005517980836508937007887640638724065801757390664763269371032408188290611605946105147355132885588595125391894534269297629925334634577353702214295572566559818317044045416927316377392649725682288066398947505899902972926574694021455883967781243804574774390200671559926040717535768174208831339463469925175399379220523488176438818846954303424987517619978666235375533798789897842309431704358531278540891354393275078765119510938729275470480718105863830635528232656033640488824869707461777177406083211366543034918196622310220704275077538023893953945646639261942601332579210982988675392620673801404583711890476690003116442694557420294736617483216562117171822824543486168934328151296024552207965870129037154043188639319034744617495376186727090686664473045258060889039389263170902471436311749943509943190221061056442135992281677855919329195724787269147891773512396855437806352057939735148724938233378358191380107908157225372026464128026618100962513647863386020465201560801654346655042814603221998388724454973198427521156114863770390714577084451147016419437743353920914147798283433284005860847779222076765760287761318705810169865958622546348985552421926500833047634363615158687247951128512471762906511011449977190747020455043725234217878371491293358801245919121662732181662430068614810477860204977080585374279537719696961830082041178406681714584190491711284668997217285935045527837633207211983811515088765990900595339999143348387469370654931497145796757657079376658920364265567015423226457899508910450474995099183526419846090387346965126801673620454689820265865294908516046638822504618548986960309936754146566666091403579115892052808730853828838712382905577154968522121843910942617856652207966768424699328719045975760381651095621884154885069979438137320395483461920557489900438879989169807074086329922322031745182385731511996603990970614065579719283231593426206561159398506934117501743820057875927631650742228425594693131031336239271466816890222646373836639658621809182988979715509227327595484859300568749545512494398761888414393364612143919630018150235966759325310841360141968035337624320813784622632233998111939156938301205406750894934420843200106149914525127192346138859097544003060810002253098484734693332520638645911226482948846409360647821670128728516131318811530058871246986666982707829907158207002299249842201993219974834265538308554986879810815380248861026512207713840339237250377629510754863378492737993512282564893481700285402808040782912043842040305900496358651207489396788325491972402309984393076695585996225670668278780609573465748436846237775347346801747065422689614827197194415610996459940526884869368357701858737412971862210124642031170324625039844337557136505682623185506342083164473017014806189774111414801998489096604397160867140680951981012155307313032831188935598946420002489654774148578098621191543772311074617164060052091944924289521400689393988048964058950770774444745419790804566869556764025059458446625507035764310585397207249250303602157388406502397895346372094311464987541881139070354729395852641955583932915886058070391709251228668787887716722451494351331000154082097165498123662402574873965116575666270088409700188906377074131422125225628527142385429872273670509719389962442485501404486638854728201615645963527252595289491628993648465343260462872452856325515034717926363063556076666104005199281954253458597448918190965093273225759968545637017090363980355014264414018665196421882733423454338648800673400825139476657492246610221112782707592923849524925420896323192661241794915749392479370323882736170758813472987729727388487191071162803905102719541341300706251199359511238526803342977770599829929408604749643682553303704692519293333467058402119865839940982319009337266251244916262550813425152013975624089076681907116288413419405724272972585363610506774965040753809340031769800005249343212398763504864482928899568474731867075117301545995744382542427144709653937521198807769370351471914651871558630274584327206585958396383105923514243426201700623935522786539002258211931817820288870892415202849968332505817760644089802258187818782043994125921600134399353278704993528961125970010282635872199674504301998250071149240187336146409429210056527407859001277247397299405868298608602767147949192787717749592950511282995995983124428586320802121458287420591884181614686596296426575990120519145345907519224276181078320362683647700419458215054241418877692015454160407932844989308204445452512456280835989920924530225784003243998013185468974453075912808877250931809702226316495919552869291915583692593631285952182569310953686312168192689139088394971150379185827893608184889285776430885370165647953042680435258270845484443063769711877538340782807157792873354320014611835331290755138820473997643326280593970251410345994503897261325662698819801349619641956531813409035570161609186186831571041663245185332939619950426570427562122620655056916086264491661004438886267134092065191929881842655104514990232244075622855681590352059057108008731071389033117309221966110873713944662666396129828257356394676784645239137833278073856432420536190813212515089749523242270859580856044680670893028054978142156494085603281744077428795641004167439123016411649698645856225342796744413631051664397431145798529358276239478762609407167258934510912280221543386690101120547735974613462722773938654093322184280359050532161684562959179280679608618956353822925362786785390716466189935052959106434952796084818116986735511435304470746617489973755082905041286095902610883757364926035821391564736948905747888924759804362706150321968278263742618384868415750882499994606171375631467964779658691653306416324122099323229432201261971285353203282829132427895098107479720557723700281699978112644870696983999814085171067235878400925572731086362900004939180977564601225570809703548022310537748896375444032647015204608019297132613259649588773105195641963733460356887582834508523939899970401883922317165929869605392513693623383162210854302260124080540390574188738309792124389014377388180674627222495951827030429574795349281069488928817654535395250484595482372423381278066422872916737725608935642222462685209212594668005458554727788807175338390879247080302859355433064342238573609311089712721524400548417608627448812268340657949255996720075856934307390975731051318715179695718212199656538096438616250548277040639905551092268337905306018914680410606709577985647376653925701731527019628850004794160538379803402069096075861492387083037581041749111009962684049987951565383608619801944966052027388411806980889929552004765885227656672952441615441122232747463031006975996631331547508142416084277775436000300273471766465193592325556219232706504943699080316323932400427163597381960480410823839723670606969381335532177989342911108355719990644467888419119918342180692494044538211869352784085549296064574643237205159266046126496170019102032342493432836946852414686994764634988286463654117683444791294677713444852939927685215607035061553344211279196121981008079514421902425461391266365139151304984760764978123827808028095533553029919428532770070030710039059781242409317377905613440111165091106065068816526901251802747756021982960196608415387634037636270549865497368967903782152853740958571222810413267958227644703779744919453465546436895565478794738642665280259999516889166752367156684212481215199231078191015131709374392704801970616312127562182949023493312475035470485591682731543624227566344459462204606508582586418895045241514995072254127219363943975243122689798101291952318402315924174497029854805154737350755986518939142740373501973487637016576600176300836900511345053134730649899188131100048397566331197254081428233670691295315175676461709639683133435796458852731273303299878973996164632080258225849458556439068126980158060599370853603929758594117010577378289224580120893427431777536781283045782125257160446770290541278616250051167242491748291287854781459350151884974203222670837382066576219636455540782586599727050062554819598828447163526829499240378133928717461513386532634570962306018966847473840642359342654644776517623819398896969765455379503025157508733154176041626798844326331447994123066880081057841321720704828177521621438584717894813983468428457434691967287174291468618600819113878105112675396641144234452887011942771212395402905887389845066006928819739278763282326286194947355965915089382683030691193988451960556190044287815241431299525284666575762605871226815906344697134630122350823948876616792677021298826430215128705465531922204570986123760694420120997979639931773787603467495503907239607674192719964679700454605483479034338861628300696630556225018878421755012076528022381005498360554147971213368729691481436691615201422299094463433822248608239472512906486533354458739619189533019824147736292302799991604742526322385777507534938795610247789380302825853948460448481628951496600050417796704022002416709558115505793371517239744809064981736030765512338431173553158063171956283700188593904810962314286635588805928621769680801501874519727987428740933636005530514706824113863178768089966517503360674953633314822760640840300549458491026438097629133488477446706637625065247274766694458704941543171808005066208606726913055264475821759561761407096823168135651212194243488415449081683718584378832390521853812280099067010423169831664357131752520362335576066236839923333945603850154697428217665245746691716783292458419299105657764360347669309021079937569698280794629274130306346264406532991447337237712850527916998715921988657796303940446918909171002245960985295129318634276887172809967508624913556605623420825533126676529490023359131201384789346110243596926561744185574768614968166389188432646148655900010161893352889584200682202512170158362120206152665131760353017293592498867667404426504738680037425667966622565674728765748296681436294323209516737023523576732780057519333111149719698849492775569445710872326127621198689777904566923544398604289889004849170788076353170557563289988419933194542759536635222829536250963165320693838867588292155441088351786381139644800592285257505048707689776763406355012148723632236180565722189837039677769396049105205768513495460348563391326774077663565614558251245424492532196492383162541005142365290118805983224767342217025980236203644517391019897770930643335338423863010263132148058700739024299445758065595213075156624761094437622443334308716551226507768872707042688497165089072200809942102952722086007757329716809669912385337300324331373179413649426592756078351769225341732654304127319259834002342259912081175488875262621101318755703312946571341459260313314206023594617989444219161352260759652464815558935596907734929720256763769368866191032652506103235440426670452392507546499315098187505591211258718838680301998759599321891474354565330532269972738960198769540081423531062179312707978447503999041937320974755602556433217720076610416491329547489162049708103821375487110219105536750575520040212398316041630404599425047815792029054509984066653861906074413430782545877729824898440338350653014471583451995330673622439755641150062880096202756717836632297546393134538642504596782910910383919294390244197191766925973158687950607306307590751333709359344327541256320264363488140762264045292368158814505705241130909362790461953387093911017965783098665695855683910364308021070282423049789901445566402701237486418174380905207634060448089360228847587906814359476092179624438205949241915885033528496519618018220292017632888443322847440848339268467656917665827527225592477260239042472881926523098126965990558994226478689641762307153328052243286634396442747808375760002655155703009187211915499867819350032492277610238841530400887360942562453532911285053468758773868532436713890702474433687500294837586413827498730874840448187812679675840883480947862445198340192318880283712563913112236296024833088796067608388556966168848505509286560444849676517853278288053616214376405877665309660551142223135561683884992552876218378595838370367917385825890847532870814194733213205063225846520271249655703796923110484575235356706476215067225535137509491339270963621057582773627108349519590421828494160515264255242473336740005611903994381359177604920298274956717975300033005609317766502920673168242362913866361185604460151581563861907885655698833310047014941139662900881727126696059385971737261933877688486353517778995528539712979493536051726069057804131244237581380065434207034151487678419164418940843197229817453645046228343242658231472047150243169244124290901777693037161397371225913332699244766391086275287178882163630456493802831760928245503829218157654763104176485480338112972978160354209844867191115374006365663312912714406130552421697691725104496171613787325421540521748853306142295597655873391525003663813344766858718039215103220260997268936803537414471000498077674471981730450812853164860546864451002828756972315449974400290089038665598335092227769358488514543359938168062185550934603155286761918473920795321097200237426110268709447439251296793146580772948738502010814779285603953679990731219892967326528524935709606159312185098101378866943346681119015643086223763100829517022659284837114815924007107408156613961175388762628079379578441459267401165000328282157308830236197372485325387467013678494552197402758550012576564355378777183955632264465045557569246741023221834699731581852041462659612973723260394926517785102263219637934997426942456252447818384364595673660752721246688026401340372112152457293309853080931550589273905829565058970517357212452684236546179175212971759296891500568648426371621698600863559049537102864873654298459544479787938787280537230056293767716654076435979674257575773496297819290978051629528780713683000306669800697405754599212084408488712115185353115777409724695955321659932182220868515623903220453773558802311852287361596783600803495218527724208721580701300173391336027440059398453007544818542370064835912966767717886628954997430627560316850320168409141448197301860054654458811662684763942449255062068203245496234577539806237610449053425995430955711687794969382599268076441785147729306670144172157004796378000838880882306281266948275686893598769169120426626884621298831396499424838900597656967497782024708578425099416413465619276254120154253850701516870404745388796469916984269917052322400675822939516463585923298170951030441668854218201416034404499064252340533623164753826344463056170206774696113205639334691130123251832785185467543635103028433580238092069609910772655364680037356682419676183751703619863765153874380514467135170766427252240380227109411377995937975848532000253210244633789813054886244014948138429247209659681935641050711111279732244962927806782165098212873098170839663941945627040017813172858164622469147384949631939128452327058747315106000237790109082145736444523594571673058143473050647439493001121902149847625266268878557146558253891117540569626664144992485221174201726678739165470796386021431070212361414495881461990601333001018210117293211072104214987380587058134899034363927850593000703667471542853115247383174499429621801260829998624323139248009844309096199320789849988238523177340977673577591635540614753222023122100095210148521778574648823959014412091772371290610353882864891965261000192039985782920685589975731944679978052725481374516552694922857552566795733976026189255275960355910388038802928137916050189035034268033323104787843890822994656782285910211757638832866749128142120713102549932876956361094217953840961951736421964240538776277908297912667048494780656184127284072076931766778157606303063388710103585615157782327188376601841787758484780748727469841326779398969050713108390254614987496116712294656619298638970660905272351796173247021774743940417645335669737788671957155081494491926807306159330495115731113427133426925562132902178280321295841966132227728840381324584514834120714312181834289887497236142609306106184566920298683394954268928592886087982511963755575115793015115794055824016130180287989516444653713734754912343243617949212011879429896060876511068771329872238431906152092246667623248807755009076310759979641423274581797406034037152610577547084268277301834396854117152453318157090190214633239787315798819101626178484555283517186419200414510840656799302647230106623740822402594884008503309045375026822440239156023956881232173475782721647579399932707969859136306031994848127862287809415713425929544754315321022150382944489182240620981870067753615461818951294544622499228468323223771307970412660435142407368284313277198557652317400247227874206498147152054590915538730528341446911933826838172874713424333348064369135388054503180326427428794911806350321522657108085039349460300924306754362016915597559406872288648086055755985352254738917356768411804424435478888120192423382869886230988568855829632140678764443996590454396146431237123487430429173553485464372239240794464741706832013544000532269912252689480168817339798065749100440737988773691019427459555255943913630931692496763649898959332674863829454778084265179629365077541594131359846780272139711118754546307638763442132071699242362113024273458696880937636432589162691106776835720476771643795321135986016042949911907746206443963971869395114848546860904604352825379233477322591338400283546233777669709172780346373702374357102946924339593385797692012219072439467682271972842698340556711664465845741887066015072020744258043550928365407568052255964188440608240174522575115390415158856655451995255062167031213263577699124172188347989173397555437606303302671721891009089145436863856929749184314460397906673319384244274413970246496395816681929868184779331916631848925121741417145569712613672843517852772397359472390607529438510372029463235251151746917410943087154823482467520036217113186343072043200694572530276294582725669284176626779869733683265413779618920473840195239734158069809853730432068316411283302097845495330316192227440772707107277393948819600637496619451990764697046336955688761591870750887747418816347077266408258951500093235950564939075903302990723387469828159247230649097986798421918699939271438148243473111031196345303028514027686117022093575005930240348286400233539908575620281981177020722667794960086673249625466175503540592464343224860451910516315540337797670432068803624416240322644656041155655606111135988264058602761791990713895249302480979281703017606456474687679606652067831848201952440392337155907249976919086291530999591482269389425955293845653844674471338902650147826598046267138711816189693622722009576968411271058707384061312464588611444483346572843609921320529143405489966598320061244093070323845181623949045036980813515658418419327050777333600665214871623071313019449432836470959681304630496082401732320895337598055326083396838313478820129753681538957563535718566741669118543479954385428694660219931135551863163534378932796007373759425901734657807224424870337159919445312199351438041630720713809810186056115989585017347713416084343509511093606750390076901589290811305650241898728832233080194992402798420522689938310037217926102435452201026244409756167029359281914292575677209196629416267603632339497089336123269668387993991810775822913234169850791396259565451789361271624923526780252319339064624511327004482312335249978097536459693907358242364604483846829317973683290766852922162079766452191971613659129374983387687581486329416849835609049552221402760929584249227284670718471606482781005225598742125288450066825403646850920171817183356078063162909875509072280816748754711633634212048273793460377220635176069772692551175021362415232831459396930962027343296380307981421837857487029072359287858990344739217780584624425513917761978699272399749111131560109988184248885241706562507889352584689664819621455142190724804110976492189960503503965195068277243638851509685901596273850074995084485501787890514649134898744978903559007063162303551439528333738982553671955564055948926562952091633266558266267068031270207070694751209741992281765549522660203881604249840810452946996663743856972828665576121829743695846203546810928078605157650181447513489100646207932645240993100514214209402536742409441192217429529266554731993698970353359382920471634865309454780441159225419252565935037408246856626339143559052805645178403174655041412927665428618029049037770416035446694242801613605705439959006715665894048058095448789764210829068187479045787798365402778695127113432369083723939389001980016916190922630436570593177266187308366152029670726364094726124278069035922666596625339903455158941654306926585297831162226611195596644116667817830712832925790241540507731469867394665507222393547271127851269274339754314648476601306277260377555528475976301679582647369811202774204258057360819891292425511099917619661578773010026228473800285098943849848308091440804111555603042288552356203510188658702135176083959166868120151143644686239700184635510188804224512228045509434615751342130039773339274766517895597781918175899679562471133167455765609200637030730464024463116780716160859675637940878912391881569900647188141127459636858144258971080805393253911081972644155214406914617435732825884310910749220891078619828435359746369720188504531452172263119437301859457849533236627951944101799806526573869022259372407933509931454054563603625960734322970811020442448440862954143682083036310503099072094321246839039361503243598286364945765500782572634395544548515768179022837717132567403227898852393446281239601886033032544094302950054131195965603587971944277239687890898016937056007030235673337834613332343928561392653020642042885591303646121059156376952764072886129640592983108139611539282012846032185953861993743252441776794263923508572643818051639517998336990550018180276058286833224043427528589115055592279696316038790729937332272027944449928225718243526344273909722789343803626449931271547629459872549312835840220263944529394745308004116604498319167330084083125324123067596166806725517046944165133517431135618459586680643577425511366902777830571978055342334618553634556128583782236548409445141382596981343531958314525142538996628228874648762982813319150087367562124595831313923594820821883532839314953758547008943810612188772399556167992279067527574805993433154224599234515606993513700289816545944473973797421965510805946273810232456898504061386713849967141477374496971789718021727445295170076140606009658202842288894867831061306918400825875115820665697161727117393567925938243371793726147351388218992235799559117751921226004807066013853118839215093857527415726649204350023743333788399090953553899917544211947574622899826179182689997369326422353376120811239177244509459681954396840407826750527987669171097740034487943982911634466440709757937257793494011513777220521478887385483104673469389963226474888208079499349643722093780155760473154712629478702501433148511864168852845809706028392254647742448945763587613646586751640197044873510519672057304028431750056410846500399112511745959449821360187737235080377041815440075905969956734217526740559687608238600399196415893041716274196197244630170576044110188403518948735425066742797681784719426760758138242401777767648730739663556908525339127202315239886142552362954536016059833092655287977680086367954506069208767001125330237049538912834813390374451086618698472624869832418865384998312880806506912856152088314803734367942503120505036611414421114037111911907203482615200616472253493658164273432492087082878053554610357425362312461067683973724744217063794398965654745519100906118736844059637676747282347044132718342379000389347171442802653458100491307207086872701262307037761245331438734869301094489539001740280678824206775674338776591412144190534327827813483980467165209478821027357661951200989181418061634693686259826558878714392235976570034795427403734060926044467258350037891357196721839952835300333305482089185275601404386106443806507391102260371886025289429688619956701054737596914727131062958960019600886002496539895297788261654932236138004982512949838276754378238047522075764813455903048380577508523836520613825199608674487020453145718459934890289535760907356335792445470875211698378653365853364171285314218643565861112237600130428488393498228758004740089648415308692189765559155544476216143565605258638816318114778505960376781275468376547672728055626015223514186882637026276453987098001679958744527077990916345804593553134383117328815818416582599080193773758074129180319215408332924779426801831191490694237096014959697479285867747749306665553761475717073026323559506790396392982380476219348297633911168091489120781111412694533845889802404614661408001490195666171150270527759352643522232558001279444340136035423098833418685039172233358743888411638522911835252120942185560284988778180161884303774428337648529124691872530297121186654440692006460317249053982588480736029702294573931294727958658726459242209748253361278850097446142235226248702278036373762669707703694506434966266656045438053961521590021712571176622292163564117746033831889594262345627428863874663757597525498899401410639400080255804097272570989047509697833695484415843044899758179916654881691718001985047392711647961694149053416404120132922079110211137906165051407052412152748710178299706633466445899654822321468828242309109599860725466376138759552836447409103693029374096319533251214261735377806571045531885240889942938592823559606274413442402818005871153358439437716216605747679757239632082852419337500601342787226003913315798921103726222324550159225895235006451755583645121701493173666681243346553752651858612935256629100889815295246286760157874275787150157413227300258723812723291330806936791863280613747860043876905398224141184515172356146168059097413293249541354030065171207713149972183431158494801209469654401425648817088098876866343471899849038621535799428533099272838761276376574902789468733421497406619566486264886169443821865438636655390615574039216119796957226379251182475140639775459838115738015005909883514391762594131224320793925797289237332340331406487715484304684708183205595538433122819841219260259780741176806533337423749475334401949171649279703775066612744863658683931052054468626561765537084643988643587289323635687095948231509281691164251591306545085374958117375041591119700408122471470378638664901531100488864412177463990201815703972022948982938007136079786108008130414837418681876482492327232967609775496595704125963665192892082185711262947145102110200283553629232865046973544636951573520953292715769488466365188262973040224254385026983573713337966662175100969644832838186509729766257508279854568695336793278157674409438351641036784323185367814582847860358940930078238262252713560388934927061126743754834621250762500060493811631777131867020734998045103391508888881218942870940658407980218988579067171296597278086551621350720225103025436351476980018857326351522626534419162149137369446740567100719938908369115521288557026523725014081151288276399605800220209675204820087656043203658052111751483431309342847659078043256446815641073178987938299385089941490470643566817564561187368329719270912265577197951910820812176958200367272524149473776333663835635310650095221696460511595125030415151422923591432983859973914905052070633991974233697156690191179734152044866754552803135633223248764721015545706600126697544118780042724436232323497561359205460432300315454535711596374500242018138269336435780128247930894165709277200081324130867421959489976310876700095916906242364915238112143989282398330329084744396105511355804383183154819060276609909145905308638866534903527604701042156379315434427798820078818024061284208106431421928822687990210211767158836564842278724596044321080239484864123030429911861771184042829871684581311282655353958747987446105326672111849348670376221555207068270887460188700409026225051942801013173327307686176050675761541085591627779806635385910087832022074886514264289457601418290970579405412480959997293960798770772440968980443324534671599178495335839860876673236614176432391600668036432700962956969553401860553577490474353744127277221866988856736636300946033934500761750345173709081549028354517611741618246866074526148115981860822269352160528053022301815892313431091991450487673338395717626854645899588728318723577639550354887622421002307342994538624871489476702628019144673891327751004447826995597789684151264468162897898023200607952598779542091138664733910635552575161618538489366251938808888522775357736581008951009976400628722869308721305969425987211798981826749581386092709420000526659794454335772422095095288246784635769085450086283507209581924310254826030954392314295909476581360338621177312603018547519818883262823669421123235799670649611989192734151538667872470646722804751757384892089770260960916615716887203816070840478787935412305862571732309059427673806763218812487447724526513750346925948270397812578506600770495285938212579300319255655616395647826277401271755982443213664114845435396180225888405898975674300937507113650882145587649738081137416835692332364557655165676834429218596448293255644529400845028609960245239859756973067675146668754059059732292454720978983858860031796211403908469935101435371096823263896040626103993147434489303110918808483629794230052387649526246101802310095763800184360191285962700220328823426477473987022216759805283410682662111246110766573793913337226415716927430727320411710003360368095418500341607063131420066085194616169493278813708726894312654936419082405375977065645236289670159270046461815091381663807254247397379511252948851431300922827027577641400872113533999212089127011024656265067244972137589733455989291718734068757937169972491482286952263226100548520940758137209531458205607970298433689209068285661515911411308825098535147473187517630691754090371796605285648271917355947162840469292155216124335977968976308361173760856854075373808797563945120673636265372731798703084548256952608389682458003720279790739749829605542098333862662878832987800931854556421880007683722183982507782899877462844781905086505594787172279395083954735816887231754166175919261554143830085547469303263959159450813442945982380211175872344018645036795093782285890434953324387024141871169604564184890475924972368821802323552231646755371147065750532183125225085234425770607416835050241821305648619937335817699705436162828145829740892240783309181107349678574666172921958438881211372923823306660165835304369087470260755368968074801154927700252433022832113523260813857260631233798935624790677564800348353062777397215261021567053596650564459056538788558735906420539313121839823361163697041498640455230812835480314113525762016406326504371381355634184893867254063611569537340618884373955659672388253742786192627391956764630477299384829476975102496163163506809130021719209397176998303348501351904863699841426232969798571503819101884456036467382572516277114389831486375977970767005181931410209303807787333877523596693429279203331486702380780708230827960788114849553816352648208970207192619358801422232689541806338851163818195217848034437979343229483545918992771863687850012457587700834550518411648264277627109395131231010004855646407434271049319081935566125444261771354781408386410356468216234086572012772546873557422363961601770814876058263711549382628655363496527301036332878937600535454783638780584402328795391598818517134250546501621578087573761997531454624286354893450360834598691871832106331355742734488700830796759727910854564978287141708297825415175845268938577037050156022505085962526222038329886962273117887883806383560729962227081234446441965419287013573721488068478560168524887720106573239889098117582032347915976604296732382853666730504304327242690496950798150807419869013093828465850878070839728862685076712717388101392247248803191270863183641872515484187958231616905095336862979663144513447970046289355873018532223985408029885464049775080985966295391052194666149604494685488249154365888344199066392120454856680352024617281010260419292582912582727266368790861072222269907268289537356829336424910398490412969217280457297567638047860623817936326067604157627392786797362993653673326800697502011312886700884029052350052503311975920304598459379532513896946890745479216599101224031798150044015396724644298762979906326736537115363951642639562706834400911502282899919008918454922566391164056016817771223313836412367793453233108230903079132744952290875908120651640370753350214707808587365925521311131059877353089436818299277695984801295908431489648403089097715160987106910048820152501557693899568963060899222779748623245845988214661175494431913399394924089665150157517941140073463835750353923019459248940428447964212866834973034158277518063817255485383993480355805435158693832093977552422037960327075429817103005782096176479904523329346588615235669572367041429836862527981905961467771998760193518400139526530413645369254873013872406564761335295813114870708217094486209365226697150841099761980327469125240621345311666009910054338415939223376417340841751474469079599130033975850271397621395813258761553110188776946364209974388335000726847533376932234586752840547527517577925316375606886051876712706198036314606458882193758661603158911549186141325684893376078374507973132784144989332544463833829943554784954413564524928622225387802363025913573566082527962594223347371545433387204763019347813849435466670100480409287660921879137425241484775360616105884015048924317965637033530597208101115928878170573000058444967345449878278283333370814198114056467695181209389233096424983595251809340414413905673694727706786494790880452957159148353823421739829811387819633543596106236309876251204619810697664284815165832030763094081544750019607909356775862283149104022363659048654651110509009163539705803751602526797006232190029419598322927413384632794055745781084338955097518529578807580228419902851531847735111753040827976570350626638093335392847086822935034759060211825109992552556737982873336365105443584556603407800468160516600178635605347514201467282233298578699611822253541261605416119047736943176843728250092231821517387422551554005049373906170980850470828260289003767097022160978114061484880341932623760803940537048750658603080145067605159683660809627544587250864283953086090575459187772354554484368948166534173165896944383030722162335730531930676124102975172117089598391462218568558339079085041504244160140778428313983066105581083812563900769655124758047339843615143868414890203479984203756639420738815256323340046811787250158033937905450151296644108572330908036182287832010320043678718553618673510119629511987107100164949618939027909978492906670174176259989910291782761234620864993521603398912548629602253835219311152437307952842430269649366248365971679064186671155494194444349597908481019563953492554327920442534734297498912054534452292862693401209626218555120765867280420470543682336222773639052444128620220560770520656796133249199305582734687682617992463036475590037133727614667198338942055183804789170348388473658049320721106675865506691774239136083505489805608639631487126919445772272227842599478632426768887912643388019758822052082368225537016139527313837536021040657202618614568296540455092754392816929132021518033904427296897888288186441028388127154984972572642577337956898745967881602789397946281979332235365376003762306255863631540254614424609072959003845090817125019856838009556502823060307132916080077206179204486218981796461729559152712051228663948089336928309456518428893777182304862171377496129276991003093892308301975447865410220440228485762268473445824553502773162764175333870080090303631635893689592913761861860890137795741438916915966543020701047491673324341829162618145667606406061798282059047240774334766017322402041058140041287009267140868831676668734888394720883369543679208649196723881585883479760968479986486165408873961614957191390301406799049351898544899831874359438280755280619810236797078389047356242589131118584816850879739273860684414817346837119224698992335626318188575747383748533041619558985361875676561459468268741624465738802361357706829458120551286468587792746474166971107123546297168228382269767339405018399971606520554103637543096701676514572540001181203001764834273743172969734309823953633510469476658307333678977547032952640769059902576815811551383354720094961651412312480644617275840126326561095578299384607634734720722740581202313538199549641393813396564630966049965291462376062682176434789214894342297665232109889298345459127388226905726408868648740131420829125982815750034537235070444765841076173618015716960149778658068673980072604632999049805549999885972290006909743256211666829069143160482824214192526445649208583339043194137387406334676473433301921774847401141332041719311537002259908534008668643891364208567146740838576172892925229508979993096116583198367117050678885427689009197826832004152018354309809228010855392433653496010577079454697467157175252988921758229702271240030238083360753640251017771753017538306767728878245433729618786475459104214924977534198326853417530236617476057525717960558372354558582078423075014714807966833503048368465725139276436352890973584073282806917035450994057958929954260279808537509329096420602289429055304316694004289158432702284072821338820887241481078535882630452665736560819935290550434747239006653146074839985681325278060095743857303785437991997598333318628790912612832715713564396494720271057210104163626308804269779959630847071575763300308456996446487835519089428552693933838730622939962570072721345152900533711725416177341231631545424373012236880136484082771981738061279492607876972204056201168937095738301849178740065083427761962403586585420042359468300823781515701776391881659648675621802701765410249883974046432904132452959231544017586095279232760835090921622410828301356821893603061909665256316650265629653780951653422680776662533547454011956951343560187531116795563882841561498495380933014896624427069600480986140056652692941807356545038019185363393920143053581826940021071609618673587353145100590870497543717122872541760603208147911203986735106893921766323393211878198944210291392650109284208465016076516093950051097087116078501782179405626455837901274284425926481334880111169278150911529225637841268553120387934658893287138212822435157541902081507884633836541019015222596497814383325832748681337001323086722612413292869724543260661741565313009971656240582574778233459290001923161879913240836662226781374364281436933668326838329091915564429954769567319002247597836715391578449464448809317583506547003870072631193789460613277996424724055066321442040331685227265838255143786061294423447887992656983324996363172187229629953444335713845950656098103730189749187259846956392093961646900397288852457075099651964346384360072172866828471158493362019343999826156535573317049526187352144730312497327751395659431399625994622555468165832929502873357263328333381640588119883725926368138929619209104941389325764222971359019910488308419073907433394249776674029164113774342749862043956428209000380849147401447992984799340732530014390676384544114213022707461024607465736801560609666528388032811874510159789286631823274970953202235745794219444156933092633725657650728879393370570165385067744542277161175771632650747727747896613188703047267002188254427402047932004323357439993059432070187685855874067915489325783543826128952334537670600275665946665258022704087094745447792467289415700746625173628786760896180278708576072322300306816711495646833800019639327482368325785516396570310979096316698819557384587595680697296824011159595721325572128367137931255347735951492722699460587488437162255051022056479217685211690575830446208410501509441084662741559952422766847329258331555249538638042828997312819160479481260223349595311917332008736468040027745288776230241484732493324501610648349043602684067446293827745213687478896738035105395776180620663447562253250960147445583642706832743009943791070913398856120405855747942241100145276586089645647601197902665585020913157949666917275383707659309862207928775226085392021413145823340409471893655435071289969306314999610900904231877455274249063645623593136705155239054471104493532319994632209288016878517205557149946760195505899839002058357942938487934687893480425386833880113180872284121197436589864329506562805242383254018652621991000970786352208492825644149642312383469369806732336284807423048187797640677215091144289456938704976663850574136765008101435156146021669163824050478573568325490747598604208362722551381087471099757721926935694754000769695583404774068912023089058919078830845418583215110357550331561228171176051166053759075974977417139302859817920839137701939101406155183380844734014882739621112114575996164374736875333172444566474863354738554799779624230512600196224497851612100442074939909946168436225204191810491892725075731067552556987774292898053043825080254144762346630360425292457320319785600289849099388463670842464887659457891443138056565315714339960716823754936926089632744566181108547435749957584473023437667364729797619467565392756055048260858587604888329785718562944643922012441911911388959575422022046256263445045486846569794366850185685285596446594168316795727469388094360173194097313144057427263325737211309516514664682640976192784940039238619449066872737075560231576990217742992498288619206784893353326786523769223302042365984479733605523265221891958690272269845489750037397805780902183512487134725589346298152056980495624052670478992957904162171591929737243155908653210637965116903436186150466928396886797693157943086714334591584613120876239267037552544261677215900470362939541050779878999698646795159843406656371719147966447373749527185950155894306437488423620643578332780766631559200484295856111739245281544594404540408427865045938339729340734736988621323148028766328332574141342622659936209795996861756751482276333690459995753276480955830778500997987982679539547229088032078080345304105093504917953199617902329447700136854457177733010870307289031263608414341943335583191086863121096437048150224774067846599430838563516243623312867618485759347441924304175710657263342348711552245851720057700051414096953058834505446647595600200100582221586656494602643307533490095055327666420285043129143940864801172426835338183429663947681379317979363757778681031147633090737117119494043865270481089990564602295463285676843389714528764594333681187732574552811928589121877937635694507283088463318496996869512166688172749115178319018351360135688505142513509551717131948679093753970753141134650574069927304287737558964845676338763263626938407030789688271247705242849376684881413045423111557546604862141230966927700367280944100573210442416727085515180392340578216885646458430079366621743661985196535423983971939124730468603368792111400921727260419312435429344135887652632988579034897082422810316583894897614823461555971733188693847657771996938633591619113626388542637010468804087003698643296591994488912274983742412256374364583201502765424729043044720181297153050054955285106031481412211620477814310772275709253986471334964469327116826976093389931753386706321934705957851109581085974477733114389898783722426389548169968522246237988833318334293113860574006724448360415665368962135946444816892454583778296705914600447577204765281165224038077280258184172499755126934113333764769011721141126507535301844507269863815064142709160535956332311833418715809996586821575846828627938281146974090659980386027965752614258466352858310846338443665471531122656981076478006896890218767758343023308159934131268918436286896887589386550594799373699112300982393521432238034320545588686548564554909867491143529439110682881560780760836063760223718267614876508839193757134569390637293347846868435891496841731067000932421948107427274104500343607063008387848324811328601013302489626530466993408418751376939283448013310612190821538670361489157548797293811123001891488925947551559365130341990643764976711027427213603279372905569916666819141552225520668539138944907119838775287358419529190237436075446437716479688428507220865472481412714655196460823198402126932087704372448968199226082902266543846741919925026374410891747226597960066620456398410558948609800936843651631713343780951344814877924713293727625721202734457482500655142555860571905689870298883636600996085143663103882935450268491930233614716659425607233377528548244195864946921212810090430451083508257560859624200653718076735827785402520158267398550964446467013882048341437535795426709609667611618758404575621583755654197419477970856824204819593577817778561628119184210161233553899462349308262948770585070638055671967637888202014180879576402714853374196906617017344530370264676445393594816302392594721701744238539408811782815547706113881684758503605823969917882476879026363196785120249092482655767711872336187621078781115328585108522419220244930744271514297754345950500315331224361975586203820778100316835044172491007266137821588989387997691828846070920424241100447916621178094518067744593977481902159934608481087432310364414413871535822207280720402169767628749436340182875536145257339043443898323254951702110875461686481754364176723329073655743130397987680021858707751313307546186805027336022170868764161590836556328414206105733059111781209826788805796098779161666309918581663815792422964903407905960275967461847414883793142164196368157876283893398706838910571063165500438441872143357718370247007517083919514736063780062737906532844109394181505729284257940032819117508189146624566643955777539944160031693201610590180111372883321349641548540484543405117033695447483567992313548007720973554358924713328141112241821114003585881887124638024093459357337706753303530769653000123042676681434391785046904246664361661915285530197546384880835850209735349754832229490901682191306141977733388908887162268287733238475666354715279629415052176291356374303987397526491073857608503606731888122924271282517201550924526501531856776666982956328825573889254969857571535399458123820259282219214389508931694771935365120474116915170922924345193989860162844212866242518076692199460479801252219039568346611341867377515849162594191863031588391432982465368894031410962894722376138528981620951344266292473982843630950876652261919436603564664623958831534559813066639339748857817263657561411325665530457788895534571686975531878641831504138336904570144488542139547246848756097766884570126380680782054344066958057857569286085884592834979278434368989364430137210549637175708583347108738890752779283721112956826116600776685384891932459055929896819916111651270856095398835898470426812572141598997970200421828789974574992452565903809991865414890276168973682394098758782742827440829633350531184207956976733517390540173796056250744978433788384485453186262304120258261941248958634631600635310316336353609886681907968599671540466154751269370214852619880878888162247284967201368816244519832379342794008198548974405513190530961145440313277544049859238177255280845061665051570656999617055053600228289988502495944304724709202616824701127925559759053695875754772351423425755886416320076678005931499320498810567974272412192405185447887700275525828366874139374246657143153557888850142983413817898756272433143321127148113908720047979779124343851849030116143784976619119569199818106248986675741339002782493985681946631143721063319237426747810090191888232265528754595639953465143314182250950158246368410407988581479611760509454268510319489973784645857280822284078304164104491498899894846521889822928981358354681913000364573556017220988272917928949567139673571523311617570905902096256309572949173611379923781024510459340081868314019129126737605224643011674319522109822850631746146711602602649192630424771735965812211010103819034925322145186393804937509403602425518256035327064148959925968417816947078087943144471590015401343842474187052553803736011101877838224515957816915455140948272365154330274220759488166681144628194944961915539145188299849765793035195843090270385640919839645406145623450712224400510461167159950728887254143814822894295638113100614199524911415014003875989880872986430780720575145657624544098456928242232518940519979042493485227230810543057922107862024096363074083601297146109751269504053274966600148227645193777548257051150763595501183323952820979830515618184970661951492115404063313095968752748791355350074810663370057989939349266002872263526469088774358653217179576022424128301518750980644136985608454149818696581978020997110973783164846045810308095302517280614931799022225434781415611776088866325910566576064784159302315590743558198301624393622005132271533161386167847402667922440891600844482528018871581355848114824212135357889183471756022833051247348133963666792034416036331393362319492712190187342380489559422808470995850905339907854435196265666354442326447395504174141279106346608445894059476443242055474396439700312119551375593911196666635515585256252579375011037467822705103071960295633748693108518096633197142154939036015664423972292378181517556637645182533114526980895301843073133854659802954446510780089231762052518467526846586021836228648292449577184181866996897181755097201733847099651084032478768204226727891576627240612785428615366099272817559080504371119802574027810935442668557391731801268639657004766541863302327828385979748500841431967468282163158525499520127736889222631405334563336236358854209033162852179069852191306876759034497866612854585860860170869492197241298017935104730797645193167300402009859708668307595188401723619726214461116073028993358518345998912137656948372005985957633649325072847100876875167282962868202304712332107209404639916631904421081882806864029781082201266671767168026681415977112414953754621167304784678725059389482134934710266367915077249943309752125498756775608592570164597693317814049452370552526742009651697632936659050802530737003382102064375707904266674359690777027522580025962947007796101490717205753406275937627773350057037926110412198383972205809931624596466095481786028962631244568563737798413905438545317136375544799063773253034393869577869074093111808592042908240125114817165290080322591664945115364790554700909428112570246196462248725275773145472357607599863167144618056300656869810950214849685456889148088575216627629996574364082410226625017244808048016917279654938940622314420713619735562930304848129639659905768581254734940395055434059651244526588882902829531303115611646711346400216836232013855520661848943570622226804223893194924845284066799272471452193178150286382871324062190155323155969691056130008501261596154154172524640945990090641895508594629568922501419054979592432178318350481610441009582638363631149491785155971735991860215869127748070840721347709095030551252719461920408713323857845479736043493388855944173641823747650755619244774562082737520414925822364086050294660288222211703938267997616975906465959397891636541078113067791277877670148543662285841162980942095946348624168034225596028529835209179495294227926799483466490027305433076426528811946320400238888541819132930228158277531724074711983460259734315772361215092788038665086220423201741098718658480191409036888504106665679777279093838663225327484762734031595611366973906028637043209604428220406291881854383459877936257231471159005270235551386048404153678567465095449908788258802862519176079717057192005823924358014650516519610271471463289961247008292980838841179250567342177957519877343910910531002994070986011503686766019290069527566960873791729932242232190484771371118918917722088221871383920026432896443339401233652835687841716856334854292274278082591556407373773972365933115658376527035689347435658543706798868804749518887774227973055453087359099282194964396646832353130580584946394420270425118239408789557607649537243513165296843776046322224023395755917662200608891072053232372718064720743785121001327573004331415246280077601395177778574868699145419165932179505408623016499393914629749070093362568611084524654117269937532996529194281994697504438103248309053251629266899581040097396897432890342647540590422371818475737820735609870091169146682495216473307988764124686298347300566553319475538683444899890018222203842554256515703282600535834583219130236795106314858255771931758972789088040556353216484376661690027783674877015379212809989757204518436788849616202174082293854122160179179472375932275449244568047883010118029620819184985470230639995841873773132803476939899731041359468634288638749686768492998856902510648392112694328221021988549539643029841613835617536891804620225957225301570944454865616107254683919290205317725120584467594960302130420019746025127185789884643771447514311539876836613059386555978339608982623944405562932683352890523420060327712408755362697186674584293379745250274832345215509907722408849657812011618424319625407334138347500212576372064978506209101158740485362454540264929351905595863824209755415052440924828415124994821558038372929889808549101712673053361832260314543182279811394277667583876577853799781866265714987825430936157349226025865136586852265291391614559717764968362946626281585306074098086214136054285169120507207825646962588045681143873917583231971791321931202412092796714436319536348749877599280634064445105415170760806557184501931594119002442272417899039456707764817181445259983130502153067017619642969941658432570484756614152918602153920316142364023556906528159046623738807034095021967042382027474543003627132082802676550608099405561983432603755456496452517007098627904311481658997046789617752541763926356578673691434819406157873734163071531455887487850524631737888352635143453540580436220590228729062097118178875182131482507690386984803506054613781253932872558164080945825682563054306835926935161876948498272008506380434861343085941279649461230900582501410055444205442744332464203008263935307222789033909292141890092612909676211065733507180677561078033794088142765831001064899413976758503627214040673773210186034438977129385727436324007869916835881975765445242309971236775002614384599271630460625758417431244463335891477121255354457216273510916257393743591641165612526072546748877990049951487618552897927624970178784230508146776721621154767265485029996937508812996438783328272848602685631658332669995069700302150549488433336056651010581994319926391814901878617378492134028372008428490585725678214205861960517376906555155530149646196457319246213683592309202596538634679962455602648776034435330693463855269835315543704324105879900182043452946835818415206187136981855340149842777596151731692616072923273928239094079448722394789722187280365709455833125099542704988330537834032235592989646834832391003673265007591278438076640304735387834678463619202412376353929384728814554665034661479207295956654726788374048873947333548421663849453050920021227675961106099465770456431094263215290964714138457749177310567215688551143031120450667229085305241187472833808815828879986958654742576918070661080253049745221837718162772492679903572276813266821783946044655452016307922113703073155590372963703387796352360357094728680586785962466302632356460945170706426138807076894197885686922924989214518551985005001255654727324588298030282714819019669416662634262800300064850334763970380412061529883884020130222946071544133651807468644135879560401199813280876639680174705182444281147769704222101328663059695928838107443824594567217724730852866026301674831109008213852682353920540444819652414268131975415260616996638612627736528543831309075324315263465374908164402190552028915593704751302854914792589398332573028482601367551738780089093496767281419686123776601036369844375825114225739734924963875861673664895961875646652464241719213115982305252301094103363122856327260268916878971809367421435948422844951875964549531914384101587895581764143891666727587537668280058896298330433696195029290259315842180374650802924472412338487951764835431735507058478260959426909493681714828024637318825851472718797114786428965992617886799225438288526707472834876092009674145271296359547085604567965403803952176092272193641296231662790850858826441405700501485091575718206632173652837700051282768382132320110045914192674557592608611021336470549182577937024512483881416648328450944916307932058314645719999614299647192011948013971521519258288014089359295224360719039310721782680588294304752410124014805746883266110163221622986572480158418433342705990969049734224909456029210850483613301325097828209818871281885471408045318585696231685449041791659164656002430397451291836735575096677326576066894428198306934666073203412191910960139768446572447034617360227213063625474843712975314283367118636942608524499714495777687184048335817059840220255368894331544354246553052688405318130186170673473324789697369934678403670069891100688530888266856353066393562519117664733636822605176299508575442895800527697344369326848328429670049263155646545736199208486970292230161724564684981603607853081120760349651325745250939218323966850805418750603494030005171302769578205693628566428024016723411392281550588203998286366889731145255028815569215028497377059348163562582369374127902513669066127246029682429569647046751184705175101959078829368579096559286728346604171693709851837319459767965279331581304045865542576541462520510932137747110104718875768425289009369763007675667726960449602458129247257632049045761510010924463528344495819575287836633452774109942672747412243453270454413284982812033948306577817978698916001444697129083373511460524409197364102940341668218008716264218082056400211935760803111820934226725935826431004571262818356687222226604520236374934121077428368802224958391411965796508384044337381498758609440106866761708220697521629771565273033448172549248366256535172766997107820327119319846385518842815705317616401965938438292511469408393614754241916820101486479348462767858128544134120434244910603660584979820481487238092967052405786877741914443660516755880166779218247239619820857005238159024085549795167225370032957906910602363155991783949123905911172012721202962636598992075963001356423280214172612311745452418015901858931451594015633401554625605875872370115860673727798091238074988786184317965015927188154712753496001805084871929208815310190277081791346690791243677239566084710823943181725080540160267098216782675698518079097023271254489100395105164634326006313379202556501584750822226097953055189413485370201677868653049789950057556872779022836858780752340232568656754077366474525394917119963761870886058258346292780238235685841736695472878772219164522357169066917518580258762339752938587031619759968825335047693059228943240576155749220998630057527198945125045145830335345760559001224761213533960485893737821007452874971669108766426355086396948160110997975066087771079377038564977744078301861176216706649444790613875817868160644736058798487401582443158960714157695392729183316667386757107545842936402268920088804203898125286535236606826467248632530365634549988522039438173969609434475877502061775264608381346676414825157853395844079433356042364509325107373102829218189837433066628452557058726325137625351244218352205086455046673493799535850101049855778395643661055828994461266828510817607909882924658133571688279709065175068093259339310251685672017096117020270166468142370680450779596171914649574035392341246206294727208665364251203025049298734690616994641334861634635273377279695981672771260461993604430222817923020065342626511469699465952684502530301248279301551735343982803532952367787631487552062072109646470376367160060603851934666071215039449330476804582863979004854574423647996990979641061921906011163017614041248925975970848194944471601509096989832058335855951861870215159605608680100819334579948324316767215247443657057852762900539268889615479208154471236417887853164338645098770024737934078106561000870674069434190699622408812853418769226184936468791611541318313987096701201584749210733478420593361158276142213551172023023843669629735395803687759207678802186209415926851110242458068491674497368719081614029477717032136997028845415119023775168046475712356790425520999341034127244812064391180125696299286192786788151144151251254344902374903789573750455242900388020727591922851517298096095749594996311274987984773458550318963316509509294903280471231776145226609740874091169073469467760141695923565221339642718508708554031569564210475858075268491638146799999707384302800480631487554631997204145181079460700749409589414261038031341239941024067150708748642500995416735479100793384088638845328737570606201637298060202008438807251479299772467103434711143082283846743428731459945588919930276360375492870184498139613023253683759459367144620391923359915608415094689083399399335922865597183088372569655097922677741062698209457947402296102787710715350504929503919045628834719033737035722378475215995677041196292294364488834539270001801022342231703166609140443048235690665331283797088665538872479823924726353336637916653314483985844553033370691337485483380499348345768591700990820957893471685850541886103061918670216272281183735842920839561249189087912709908832652400688409024155421792433169714698902361244976370721017340044570537738286726784383354597064366095184609946409709901372852197217471738344235980083943361770844973715209888941977725877146372816416077458428581447047415495117096142490447342774547328911318032665825021295955202692910741012245610774281692820721229789558473367972664154749052869313302995661103527312536751119568558480552249457752384582724828793808722660303520766884103280189385277678651139270971147479005845093987564631230841928597472169916696059546036504296610640863364868415454959035167948696810564078893215543472005431638669737836128488550376387599283982442114394966422978051462762656291870451965964516094351639503328553097352895588452138630188436013195997976421799960807979762898915645300276317419114097254102085332860130844364615574237699637652401334278766949786812343414729600241108159662411091285377831069700548944502679343965720167532574439626158464525442411678466167079906491026383109890725601403950388917678921799192005831581016333956387638665662520016519811425830516830843771385103555551912733050340138929465680846892879178238011363522466187676496071143884085817710442332373978156578191921962076130226139882491898924164081476358319069497392521430287616179190043512614912480248050178565193294125720051020618236164436123767644501887089780515584494468384601999263867438211720909681845161722264541115460423531031975448453927248972358279736698854073221474452039825672033953970459637754260804931708666786853779597997864195768658781068635190070234929054443681584944205457913797996257115344254418670456666483875213166931515894739492907564026888179695276259678380059942211485177817585747603225498023423805267594068071444702288850892098274206330229834375003848873684696292072338787828930371142168858255661771134591598188124471505398689539997327214500718982442135217434835142642119065390910177561218296402080201239851268862446142399366022701280592952816920962387542072192608530115824407762597926604553321518765701619113796610992341634044020918653918431248566670409515224793159795864369315234423767204202987802680341792172030051921446597310103687809039103546480125294459086799076391942593110473596926697173014735774065382007340455620651913710947959549802852864114476145871892392608490710375012427316600137926673080628684833520386136876212285329527861576323789847577313298924411242045390086505201193852120339893636354140451405385309927053915204956047289147051218155154163537773319714554418719651014527225922132620338857153117395358599415233744152641555139956654073361666297514159675427298539644305854675052633252270567485081127676089540348258918219670707801360721190556994562611016798975521605662800893291428098356845240355291451833836486871499027427356459430519939448823918688479355137609226045427467970975579006588287382346489831035915170452836549236802812301304739618794175319002616667957942836290552822072285496806815320761594054508362391344833987223239040373606483700968429733115608285608000451809290826500595729345399126321415092425193038391676653176128114759790547283976548596860531648162402699611895213939146223979467721962764831275676587458630000858535422367001460560405589191162946624834038310312998900560421633582277200071895719045210488775222959832535487220513242464486167316925981155882991771908396280718620450275250908591657229959743257968062845452168004952758029818484233520350008453804583767984105410708886861711555103003725483198522301494607715908244572543100656331673447634077867281510559080386348830386096384284923869530017256536678230413139815388772568221594056379446352140768923977588966614605874017756650920111499593930822704193715651804462626477551467965049769884686063861013496321632774682067694433240861309767165275335263666024779781960484891289666436777991861414063194009354473448699909131932667896077326505254813777792508199391421106749455709149940797072665964829049916218461216172833471599572655028011795828556017686386549853602622772123149928102869041187591956723205571369206796655011260681958146353628230214552308253481566822885984143356909958345232945407026563324902973770742636478010690796099523081414704213824971289281552235504692117016288795501389415408560871397976832297836306863822650804829212340821909431486346450077717308960637016784741115334309752435331611355307015968844510414628318878452556899931233077696201348123188726798489409382963153667057558825860175032661511556110900471561088028893788881497789618966391986474563807759273449891326595469588438743042030303704166721490829953295647180696942453230793216421269218284725552289576551882653634738164701096651397383812174196322458188778575149078629232128107561621896621339844624340456305207056490880286784844981333143361863536206816313486406518151599221502229866484764556233967164498130800161430007550115391081135426840526944120457586754806392652598726919079114545799603929725247260124564176024811116136568672038833149812325582334847479202360350661005389949439367442611176876237242467852474088116297142661779059149176967988524714366753403033737832737230872494874101306131456069064919043088257801174900586436624028081918345728322420310898032639795669625548918165901585737865756902627267185104109683642876738310122438123674555007974991005315215566523877047367003381086147640835077322712955441493984874313530701113945073687467793164844536827740335957573245449577196662192936532824556189846081867195419516633663189821285381060939530640674196468985908184160785575534428473171428401787022883923787429142152504318811299463138568070399165850807701843767069008572000538707320902890131630569903878734136695255910727903646229396574507776767685807025471234825379894447211599801908133079707115819467337739912424171293064641148612758461357863533022137299288520003098060021208884200808810119363908840032603465329189065020143034962265192143023179699175014153542152115303884458286262979697956288357114673531908822218779397747809354802964213828289536906973398031530022424513971413195040981627240355002642971007243826339076891965874120008772380060332876083317080684735568511677623024479320428821185200787010189706027078435108554112763815810827600661523930356281571663270358554929158880095371308402593817530732907507645672933493014736740987126507610061440611832804925163816250919976527788341138722492315894579022467583001210613289748631199234113966209551766932186569998125340408630518327990101851591722480482349275466666919257760086420069124046313347968391425005610664448598310089326123421228854399946426081392700560640285342807075782256454410623581373260312684651967263996708743488887011090678494811296021390179642799333094249732667151583271697963865817374351631829604634392181708637462974255295656191141232171133625626364632696290294996534836560406648714899027197488029635241809764130815056826476718354187999621378894254592367375432032572816936917405961847966848594872074921206842043283785446889696625480700057878618075048614663615207760498070540436810606967107248108014521634043028393841858169363761733329594640584616305461216909284390651594141579023547281961782136893987173360086309825081458710147682240311933871849070877584001408732471852066326873829597008318578239883679528965056148560839729577525466065047838319315397980750388377906019043259112351105131192410926496733800702638549499724986685614601853472389099798150283555684058077882296377281276205921898008738143764430659754705731981147315062105594341600797276900782829168773591997533638848426140362127652106388168348058907547239069666931031137955609855018138271426303660344527457227098444368174961285254537117920970278095982690479524047357245449701573073166199733982439492802873726136852982194815367743722117217966647584379039859437863145759273559814472900465152331448089341740077428560777967745781115110163732319685786664247401575381007937789730044902423976647961714710528101249410112134856031747261059830338462820742067820137924175513190843013243393479834130099681967493170420734543233418329401545151988474964072356443303405489396750775483089793465571583312751748226302706583634506793496269249848598944314310548455453406212576630435656699650724756042817909155267264685293463303139605283345799194579822802300040395617315323343134857990815337090127094271759974468858755510749630090687440308935505868274280970485608230919964586270114848035765060489550190972256695347349981978157979112627451757033659586086501176016137659645170045683609885750820554598389900048157814713453582605592700228380994346768270042678403384226576173970329826756745689912687623871050090995689598459513160321959470576629826628300342553348408810333969679576693294807488910850904599761123307389829087960691779898962906627696087031513451420705633138028092446000628915369538591225443468434465673584459690148137282157309032018332627051114184589061888450808384653347163444487146873999183863171705696520777352472987678510477719728245943378418621786772139481449930950805226007845737276208729192090531841394234073102686509714713080220015664449587127893451189415344547879209566698622315187578959407177878396571212001054052472661352193267427190833991312954589641892588995770771483282772523167805078795650151151255944934045637590570874098508552704601677951507231820849472067726746826951139518037372122999436403766339763734614613678962341027773217162287950300517931601846467809429455236402676850687995616570146469264917983407224241218993368648460936577635643388421069034669798438184189374191291743503387895327661231290997793699488350030257394287362910043783467619523832396189926927504335309803926806748270486402003556079947613069118736842597672002356762548024206121764834419444224359119074645030061084135664828248945410362783237531306401384707262925192160587629492586380935341600865847776822770969651676804053441509002535135946427034955165640272002950612989219011173177161658805179599840705504222149064535926442761410143710442271143009744209895369657909638213439772829422947560593373951741770225817922531730430315469317585223653792912525754088101529986724209018843930015276717259735512654279235495008204238266751135862254866480512498301241352809619822060777336075010919423639000890268978821294184589645671089800488950367686100626535117964468692236337147078519948827809028732006969377817284068470012616463066359811927268396344325349461856028237841521989203001323731608776336923990812817533428631886932290386113357080210713930187211383935051484026272418343045215475248578121776112496860872805061131151808508306257186252224904290793990377491673049930619628795911904327865074412264435057914722307557266244260239708080480811563186815013712483894403932177532482439606600412826732676657108033300399690826811373504593378243087872548695077759897891248042260386535135222135464008071964961831455433480120651979220596478935419553743793562037547177399546452855947961706616420659583097672715791348303203405975197793976504305123129557574246200973735904008809664098835640098140043867745071764389608666142561686433420637069879905712806623137055426846709808416292088330829176299609689141314950482971572383833416060027736801933904573918475633104897765461357698986234395911375242585207179810249763097275881395825098636216902416361521996387578995477832673667622043299135653903921144518190831336458773532599574390298599377874308302432832602589916993894230348247308148266182092467588553704879879013749534772916727688100981798157387564203001630379946220792910447054007028248503775296153171990901025088849195096163940092371885562971004965398338854364028576126472205049412596212948267345355963450435547778861576717026934045724112201086309868341837058738540658609767139283981917313960946363109718134384441132395226254397562427667761088015564595591356522917575528400264055560687301223978921999800251382477407799206299685879276228431948499819517513310419909965159954680349778021950542247146787600369224252295636399838682915507199548345881796393467754920736312844642443475685389743054263081985451025687679358141525243009027510476494775381575103772106916700112797623628702007939848402035999415625287516570841506423755950044203338307411034324508861427644837398851526733876491083952707628124919613672837014070666315970683968814927649983570607942976342301907620043658387080567370182959161277388608656853896678609978122725593490391557060642345784936795709576797017711082711705897627436991003170628632212861651484546137858799231190783039728170956727007940160869426797854739376673209108388183312064518661326372916505282023686978454999709044839931358802470980108313712257974476256055393952787972340540134980857293768074316192563956631741739782492859824816850822544602930021681417014878317198377332818684632369489922145729699779047273840906349590672190287087872897395567787350562730687176695258145573850287637113781562569044844498911107259748024346475315422085339203311650088325695061240491606368765090259550446035487847865286071931496829666613277669246748647177736216566430924152922332098348577863364290363594652338308609443627162319073865342562664753096486522701247006770424589229048400066538346844631520769374613147228061746016386378632117489430682491727922206099181201845704794997017698089822125456039547141369019729374851865818828211925374998742898707243259932029340955942346414032164498025629065646491167632445810061304723322704308110024143038119670711697118347685241828980617771758344227357634586468595737207972326855283232567566184409930035482128309618154428456536094333820094598482489338562775510748459294695802548135350741526438046566163570641381807373055002041351501086960834549008001535176671898370523295495167546718906967236367059989293577784018839685507000936153307230019133112531003053696645783268674557730693468373831499390069753138357610848240435347242167785839441704280167094912390418357256299460706863817706924690906258958169589645913433042335971813040949968016473647347093091928729526362617004724226816046249205555435473760257379833686829399335157936468844630045966925553736581435470264173686071569266447555114904820143278896712062976136772063955535493169434808371665534272278957104785568523613561920024991457400134026638710654650150701645355252733534084590389563702840383108575704679944680239216702117542784545010152019459696211446107369114239567139015430886405837127904932901487836608982798880254107688182922468955333674346565688310955702223195036704299604930701932723601939724842354090933668587491434062351933439196751907282293064354011971255950911024722826909763429369144027097334558648156998538993381141322895116055072127291217757099415295955336403355825380411441414607647734883967849802281451167559721417696008655376236758423390285530071550689885655433423778635082755749572687271074005389804955420052463787701053132972479646334736123774862215808961319474165496931822567845076579543493505615239087123440404967147260325367318274011624759277553801262908633792345717357130898002939146342701686229344669885487666704702478810963260091555119376375730596649136123098465698548434650643477112014179734176224074332781418516718087494897481328931656258376571729416226737313314231020313333274242971185807660330424143073588990504830366747209738834980170850446276694496031557958791336773123045552968228715629201995003437357909932946578607014842104049492969132642706954881166823930293733267107023896688321228385619531892856071601594724943877277766825268253869708051164738691108857903640282882337874497822997907259895419008094231400165904161573442100028769136796586013611989974758483497519202917922946744437824977485274711155249107861618951101090177712034283238472650320767616998475435650066701825835303753066688267427513619344496274287096081421596346064749005127074972474657602858543306830617312188836657909227347579830117682726462092098578419494904309220718048523860215405324660545730548169422211387200204273023999004865457476247647726777072884473453781602442196864359849666694473649371468738311949688719270225125796484064784932151734321113079675762092447742406200130718755155721538035367493570467724403164366726334050155381592276356639042020288357261619993010236750145907587883076423548236174293708119654225787509340201885837846659209311255939218780843074960836571103320307472152893031981503145028276878811091149588905029184277000625459025889773797003700204130867736427674156253201524258011205702100476527173457391324784802567635107886473652627415997890015437554033182084155125803099094076344837283788021414825533697936057233986417862840782146492809001359066573364830849456068376180241848006696573855518956186442557599341439681089557531593346825703864507175943258786933056639860799734374133847574197858060921024048676341318623352658879520328035218674082179854114354410212818647602304803462695404876364880891256478296153655319896405313383155189496407026882640450029936256542345391164969014850870482655157244808774924482900216554321121502245722101216659867144502717054165305570772579011825298729077889819173367683771476397919869947169619414955159272883806828056282156220526457132581135079904259688633830855843003742987260070218019735066812023867193628379269279083527745365761384728852921880659537682784062644659251252022187948875547766450108256543727916897997712962213022764795412346415072421877180079579600946231466776954809850884957034361751897719170226691575623289813828472604337981147306014375162835268974006279136268101679292673357127187673782366868622986379859032396047085446364804714145186926252897698149223814114487310504830732982668404687618487217125341152264039280704909863152040550940556964579907292031682934908674056921536758675454240841880616246391377904435964523458572810114382050966589545019550081513587133445460330146678209771108769847774964504233682271166372040344083169781487098268553733152471468045529576226401670891548046057073686869645935183893328890815715415519764032226711982044662063924292006608264374525360627285405155005274963124106505185820838137436436484934462729502618955987411830271823309759535282971869034421421761215005242753821362260330501206451949989640064512281919903523085308602860143834197481561830386601165139011872810917755403363242231924560052995860868158719349675982557663087787616966879581298010449455373599822192184621990951380449009674014671193844809605646929657392065537685760544112035743428782183167977388535299789912794172869264508287504523122038548950353082669494636013424109595226502931823696899124582102608842555758261674282809670697004867509947447340632899307442834978919084976028968340144076708948286050928873271624445242461675841537855617442670724342591722114919843090919027318481902555771251696527517912035369634642251356358009055578132713589421367300987771256491435423058028231868746127839463117092357074803587570435938958490853753275829474348549529722816450768188564535213641487624269095022642331237140354215361882666398925366183968107822829295602305672418481383938824000062694526265934930634282271927887295454105463629717772954809230060772778926834291338839046926259381983245759717612345814270858721729753735386200702358981168861531649603785855291584855432756815173903550660914143370419544111315648041208844880614530566716091551842213288813704979881858333741702974823540364494533827840779092677057760667229828323449739739448303459727003378333995062356187152338459329981553642055075932389715975377926249593880407593240474020547716053666938939630103173394312192014065921151473027114237426701158518736293080887089448730672230167869628717505637060002341222381416913049941007801881144396954615414806848984583865021985678557451282882467059709196959973163943444263702253454233851142431329485625969546538235297666956498718678429980594092749563908629127037151649857237391834177720633546064128197585970491927694488120243817338271431988020706050029783745124757457149341253554023026188781632121578887304434380230653940006302174087173203017855127186453798232193728163951007916941776891184786051234171077580863781108069840595371561421593772131771860404751477375715011148872643729922632142867605278858754553624908433552250138180608426703812350011936561258069998045384132213385275621966316367679749572848834403241670297581928796544084152700922482631125364004201222528789308309762792060834527676177056474182187380523768997641813637092478676869778244729572468569627351431895904574029317795574062526024261110026256049742641438967936654830456209929708350984384649075257358906498626045883023038401531951072394369390709827695463214582109409289226790704025436293005859586795572642663939281641285633707022187657886504833870276343109659161143229061195553811269404623445310671914684982490422351693866271155868557827088450233785936712032652674665917759519493908106271977054118126203309228826939546135697823612412216806949004243658995442696931848798651684045014042127869602993942707943033829653769885958754825268997134800711987382619671116554547101637791209742715995762992256584433872773731621776359805766188573772522204136797242047471967610218896046218755880089990130454043139854078407371709670568676049810282687063482847404815599643215154178285410447017378685514720291210096371234282190909716761512959540054639080611646256190841032203490382188241049265486397732172189528491264170953408329637198447453588627442362658569251370779334096225594992590125297190149654498879399326659989325526413456900983139825768741204314311855023883447544373901827047395995447824353134737077260644416952670095917823058717147253566868952673939991604630143008582946070317491115369618626976225787438039434843685846226435701066333942426898605574327747534089265337740748503989439337164421855887243551443782710183976662192721744630983462312488878977239970404824221806058726477476273490809634089214337666705044102653409920677564146610809365288092999057997984199384410193383673812850006872837836107951557844431104026696108350547726942372254648634611614312569526356845571514813086882864763511723692480465906263288501701933728413162534813984556203846770390568949348549175972659280200328549525640338789177646619810931654088439849996413085225528656598996554732253247676846741750565767758239645988089162555523933281097422155993995363171597051535194458803841697755998908528335334915293281296418383109191625362265281369545728512794336265360895494111013393085487032541342194668333359753757141939723790109549195633856228859592948448335930747947909437226194355391948300385832063160692114901077072449182632880184345084560718932409293182948157921959991480350202873008291090555389496551425941776085094279098842665679571670212628955714748452654512831180872155222389129618347299262897112554175339872050693872666461451170816143987269054022898690080832433368947476702363529749459287754310773524276555983403958137166205856445209531782961443291326802566270920049880498985256617404000143788326827681573801546726771585346911992363359941879632444043968992344221148731822783588475152421159137488049385469064451159709062410467715722351636797996692010852985662204256164436827273194630864651199640600680600647642531064310572255740808821763378638731399921704309906198472476003172634709372453470369858492553172707462028037764811661081802783434381844342491165944388121914279906099364993134203681685822879874214437636848228656264490492727210815994863730205408610886894010651134355259981268845668308887008645479351036119615363553055945036475397739701201241110798008289216405041566531895726394034436362615364919408455003231243750629907540577151380001890906629847446977343966051819202750438303213971493548626102805501583694073104500989921401045709470743997320716568347444854961658874077646182222737133965271706556789874351361238324169287815874438061330218829841602512042056983297550178661041266688698693998239811335189830856206634941775862929853264522991566253949786472771548221660023097970615703902480680279496565180138416227237187340895913179547962498013522626733403412227860787415390960108081236702104514419611180973154914463375303269354061169290810884634891772584145182414813665006551059700457353271458025523112537974469861297947106167901448400229522535618523123228813488975887656621163022335718678059372409531502027232834013267274414513586846855960232489498247532307543231276115882374527612638586757093126202527602803104196686842173163101862402910116876093931455748363921491341057495442881776421320729090717493326973917700866100223777624185566721386791812627696710874970021472506838336908271795099881988496658753144226141049044872773658270407514778944205242995358579683445624536398859956685025421340474189440535417491277491469982130371868001328561917432330051850738124348959384174258953393091211572922782157145900632323510182730409238803638334612668448916326506793794809681362030894851605397884402320865130578737403164921683157681581711643581183331008164442481378312021759362831470899881243190655039177422158739980252952313580643227104080157780556342692644637015353309234826247853089049466950297426181530173852542223707014942569997853446677514047278722410029202650428188658125431956518789537421563585344772953519119676288168055056419922782230947834124324708925497176636055466804328481519821753193250353317129636756616841856847926057268885204490077895594198904187092257630647646372862470906944112413589763825153166728677012066102151868421915008345018101433129236272208199763539601057165100925905987481532443143354361282081729318088172653261556805572536756154295052278584880478508451423596628570630394075816115966836625251642929991101851280450067284607527101595313068982084504179213789852477941560642926569404494072430806352641919934585742226069454748746441038866382235915880486197909813635489934594134464153027347191453307808097090003448986327911377013664361973593348495782777541983767597240407063282379138963879984709513890528016728504545324455134490262378985404079126413135472773224657853454162058262042450366791717546352555224792659300730970947534372773320293249468626215315984623701486782247230818018321444776262192222964885527163538583690320616955114572886226615197258439904288645908607406521916797358636255995790369943565970126959026647281324356207698775988296061908581564918822719244317299077422996127162477329847520706413417033356931740911109492934202168443295904098995329864795766350548843713106592731765995085426723083645670261736474064058741527737080258514548638386000486627893461281612788900733222943307157855422216968219902291769515023768047269234462110358557495376439783664046604982095638911197357598507870662980841987658459125809538868562304279368613188501752532843421686927005276784320526716274653725346040111907532254755865701510414201270507122681759038766181566665985159750230488205036572653172176239381354408235823652312397789391235587315467892331400349610993814603425255847637307306132480691498169124508581229638136938198315118575040496325758751066272947318550024990566682606195760702100673553747529284897780283732655291396218137841197294071060555919896380695345938048896325432538945419910706761042484376772678761584261472348390979061347258029479497830572373461699397922809270891110998612481615093994770761596484751039975944572475328802715569308449062476449776176359292039281777497377088270344881558202774201090007734280388693318433797207251563343449382441624327445327580617548996808067720208274155118139157016851202123956371899493960968684751772847043312392977004656470816408971651965622500765936945417865730277900287277672702198474702778557033496078545460382994490795864991822952541527255837446731169642067209417553879070013313000372765878381925459708393311457885362488185176085895208515300828873421549206704956779782382731379164581399554911357334790705228297234847654880839794431778539174092723131065357906469899549619963952157166230327171892135095975834852113063396404077581922526686019474596942304021818042809859833142477654554848676022695292491919537880750071354572682984307777738966978431073100242133814452141531461416087919611496479255967347284515829328737795929477948754622710887285017198456127595972203045861163998132803592503331512283786135295275730350537577048083421290481151224863277700269780337420338667696911709107625958507825783925469436067706539454256849517660085548097920269892250471704348165474167000443001666222899014516781022527727003329449479641859095710530778073331149858268063229779148027637375516500687078284987358860974250519322129424956929802450309815336946558453052866262891401221490780814872987640076412893463721767440266996582928265725655585568047949960766874517247276330636307659374126458259111936783146282886945954798851652305958755610602624705966904795499412327388467748651516489814780683226104817071450805525730813295583461761517565922793751956159588875208572545703121753061339728042622229789768270080854124699041396797752675791775631200381817112468857710139236326642088872532601042102976659414631905968397248210134355089761716793300122096648147796669134033803496217066824321326850868773219893741071773891151109710669152632284111663327057788101748333039147766074446526169959652148987141625225449834583971992742101867584172431419831300034565065144736964583408899918563007540807787513321594329402038500679275043977337369857781188555128341806400415200285792418907686069217607895001798839265200611757538741003587491473641241090577819233475463866703584591903802741788579332353371514881994812173392467661981676183383584849046993186285551199584930010201283875120108741146283837784726845304539969138948128181090035996706606185505650204431876767800676289637762558347626129997520237883328521170236905419346438794591694699074790318651428409535421307705030016285965115951800107463747643170814990603247491276128265567388209617946545652147834619472579972183507946989717888009792248521176515098599643416783024366613951595874281150909986419429357971913960989364921056999693204396624208205459936934776915873280450584199378461804591870662674904482034947852225573427413831509869394791201961783621721844925333522413276749166351211791726136297652407430397754781349247540257857885705074358823691203843246770281750676386271212758756142270651801655234294985595321146461273203168050557956018337407298248411947199057385293004559452669329846149675667530545183631166065014410646754174209259331384734980747980566936827466911710321390695729224794934659442552599565578990164944146681022359464799414108216649015591966239199709448814133412952239933263222184767117418953550628544323514832446426778920188563502366218033341766683929703891180422151857583809650702182612908118634364576373440858329173072596236260677538860687199641491355996325909526617525822501574834661193403820692717503008917290298303219110216720842029962727520052398708172658957911831863300004379361177491159187274669627620636991721459897170806351479156255534638230607646359885797596974643248521780271426725256736397501088060671735770380384565307610067819128164869732441779814415206978123459844646162312749649094295958425031008746842006867290110236188044935904029615621677822002770146496603677229159457485637050900811124485513551279851914206476558799807324542784581881221115789289032973842014567804378936615130449274735821864454005486248334410308474813038643454008872616363188206668093275491960929036633897206844510777828375682916027681489808864238339573925293944147444465482238846692183611650237229696556056584696607879102116101312767823998699332123736937457255909709884125645570602229012497367480532997721955699679040122158755464545917171310719082219847373904978363164040033453153968816171950093883099728462869840742929360594224965027547410337850840291630400137005460744521464895351138926053749060078555004293319132742590487807407614926844149289171813721198849613976782026449580068992871330403018967572631981120242799254670714215331453077149578774147974125457621941139573135358076111425865083933878340829527769858876781561784020592342736617022393383248784777594193231988659314525123026728470161045863486333649678168882328229651729108043915905694052177873545425511890059422887269097394662467137231128502002390434543111615374349588477874633581564842683600772196825257847398251400039499021508047342898005844862182383631616325413223851932354540301416687106652946449330220922275831492878890243354702490831188101858279614081515504792532595341796299975283992914391977125323593761943635083520197988922240521623470584605736007354530308587378403751386091757255991163508032926592064290493288936900009491648387742055334027254114250209186370157825159385103696065720687087435971910591797539841213969957013883816349764265097682073227020848210848181166724605247749860288443349216151066280762948724675106881129849852682769300113317843615381211451620066639484887306242488220917327045595789971034665170953142791411366320757534474398128688359386650751659742165951123916886007844456944450883957945490189437233688580686025699302160168869959227441872062396073960026974867177811214144810273592333631432940701085125534308925104472969425760607682249057562079506836923799805896757855726946557190866465801274559139480890147601805378029418320452676528410595129667039356601115301076629341133026008592796919459831569208995600975453209347921556255355362828973212583489605618431262235331217626469832779331325612694095137573617610912805763085681869839057929734531152139941562210506927605369567608714582519153780787513881960173984555940065459801104084074082309511573122460265045916842015345321074545645317875148369234788724136118697110319567918091768269834354919641677188102936679020210684864003729182701392247891557891836129226159856463061865640535550452775046088011782902106680869050545274483430368780264170003902625238717335652915238762270078914879291697214832622932397897339177319862722292954690857475658859925064875728861617217179571742426415172241693408479929394416311552249267612776922200382945850748847143461370815730059828559362128249936965273118404320342158914796984401798295403341751463338544537398588250743615337649107612378135372663992251594859840949382389312768613938612169863962416320765952330640930902337835704278132156967078998073854429627733561409670428001786675432028938872774092016263159832896511549117509159569549205840502485656454820700754907586902712815528351979837063114568432070694972950026433548338566671102152427508962163198427376637022148744146701684352383545766234790296175902760034307558946712568726509304478377922259933386329869594235537413375885722853326974994006574883238979739888316793936182413587467428568471155312408442963024936181564751717657054945075165089498722604271460375890513090512547281861075249224210089397309639548974286882418795165984818969778997140991012664790420423225102145795519730974503971775247693316206228135336395864281384074959520327278751940875498549464154695197970488925724087053368602160006996235637361830153436440592987377868270798454949026242459306812699591622764628820033161642484357325639324671114599417210441245545496366059277861799655294601065677396110065300856176351072974777968324111643532870242686089833401788931026711826561928724788333291441108172670205944884539470131424492044174906240657440102153872462013549082321522215281582777338655816763145543737828774402145158903682726838062307170254064425716624308729612902457191605041732142351001983698654485588251550963912330434418651895108284763145897058739510461734509767199600187425652761719621744648640479276308399714980337165457585541013240032218073865021821540030122816663095277690023658707760602549969040762499737717882525844326638933528198335116548727149384072923168919495034910462019190630907444804541448467561851842818514580969772321211836532403060423481633463641236238456080963642659630897915980441890913118306136000424078017508864840564927109869081103735992345442719553681394569144610114550957619615367697012531563379197962263499430966296428342033357448755658931912912457828195493670335431665809102663384841702956622068320161323280485790006783040650254952952415258928409991343203646946529619084679704993489136163563379384553562640180914927474057869096749994948915878989882288987187412103382845355351243478271312009617316476493492748532585312593555911195451404952135898320104332086273260194842981791112244938538978620009458907614484893130505583025997362269193377946236816672430314445068679746073650387667171482559351955852440980091607092589570397085865074968645932745459064598785861314173375186876940912495177066019010370256780202388832051963268618233550887374996866646013438320811470746463549253749563554103777458756628242106950514539383379673140908290440828674735430538453121324446773077863285810935184661399824163723971524028563495221411143062979523518415534719317065170455118527524906578598776388263697710341456934747962941100590288967822066414534735766306296447188651801820679706228852806248132336619253395873194660132344261407318579371159716862557972603277654610822372300407207459892067926099033413058870154321814516464512649127978928403039623114596190749485940929582171744693348026143059381447359332921709815567005087076712631051493267327245827005720016173575546954273227041271783508026052727199051117197254778427712217422616917540891086421068946942281441897221611288754945486478720924957624554595640462124436803937431732513599423517526699908591227409885695853451775420142359945142127024044312812613574288362834072198468625317001686628329874357288514912515462640844281915617016784525233292158557738792320065476114850013506933375003473405012368059925671138377640090504996858456061838099057589116595204709609258671923724336740781441319176057877360958681263364745503726012229266941715770480823707364187532388505988753488084276488729667488153571026850612154832374645336322177242016824818101112024806607334697586581781165949420521930123444897804618962429071830919672398729557407691960930441464679231094429176259342282241537318732581137000826211826112257007486082351353411771185903158214348468888157801689725969265112197653495912151804492095044822483336090087610079970109725099092924361195898436521602621616414012765970949074669033193135871265342085527728452435247682881712003676649898418799525237937441639463135387560809570680260980993943541031861444378023916483390006609557384308470994627997341570124277422838610061054987687691231718344771776023492142411578561947455801599523768076303060185838967270751550277801997675263057367295484465464538310994487310341778976390252834180767273654916059738950928138081710686192124235673815987270005065227529511559347741366842208975936851070945853075055099493917890112368510888259022920482205353793062482526073814332665172857204621959209889167844982621711692501876852097801364782547134875734636240916232456946198563556260834602862122350900996921685975599987693616086730280489632899830806917699778284985506641400133698699481984670418295241627482241731201143223805985061691044928425912403726784932538241494585791058589128764620279498671547986030876777602951936010426559028545430567484766292798688668034868965120799687763726252054204544074478942226925219984078078008401570486869901841094422233154167356798607376244978823851212942305458265437808670284961541278910370304325373574995559481776714065461224267564604542825710065468589588011012771954427652557118987190140567329473649659268098545724362603507596031892053771643581017563628828284943307262765057015159466194982277473164882850808179900851167347358531488328370800996066791596890552999594502940538909635434630526683872794289546219892363001206343867116786378538019684638246672954056582980958055801522559545649726596201603245271391679990950449410844867077473799240990740467802510565729102213242670434180147555799087214768196609770283558008503001246761765051419033170797854577123386500293802900496619778897031297395951724981349214764668016414455552445875591323110501901675911593434148156876038260173487089394364415494231932009425537334280808001287210583985222256236817660587045850069194876493226566103998209030245347956320932041393878589273112370043049027430387354800971946346400974827952027838699517555870669848623451948440925117144928067334980616856514065729391410129274675032918936053882844932407272436515213873203552035696512416258427395058755035295873695152537824371316725651088283372542243009816432737035494388783398592234487382825905825242117121452794934086359429336121352616588523537742268137395144039042122821910326809099487766582067205626554615495792016087510570011848234572119195940383601247273880023592525427541181994048835884430095152132995637633721370389270860858459924983275229036025846097578395222513093529662987524607407475900896427313226924540553235266091639079373558466420503509356876121132747447883093484078567212355264078039010267389240868923669486803363389450619074416764809715708183666596331888724802639957522358995036916903956418962287633699523236291139872818693230152919583923282243623153791147551407539138766821371265774761256617918545206154908537675084192579100239547452534455570140766560538906973319436674592580692662026417826968307135904645849781910642093436934519505150281679109274676089414573677113576731963342182713686598345131047198450833994300999740782406689217082340740500968241769462547647658873321420479835279325271173368234162775608168822342041492169119223024172199943003964140120663849057207876684941450182314149647144369711966171298932595561353474445215892524307867875557110779633770899545998277577764595444244952415284564824129774453012229833414444870370619840921405972409894995241932538022393961469367647933836079984379437821121731169414572915798987358546013471155071893930157574735670595015530219791923931970239110142189352730738378790206156727515533763492585051992981988640360690974793963213042865728891262128237694492834772054496805706328449448770688853193919709972136373655067658558590216806635538466785738232494433465261188513743535519797883800605428269752829687409138379591582349072398997710830480371155717495056230724930364795378696246075265244440688491328393318725120013230946604262024646078422649592023131157343661160239538296910426363050877247345683849297313034303735655187009967975095280538470655597468003628485999758080246776653534445947659684802492793693375524998944766999347549446487990592919410374136509065088014723182817522771390888773784662261725936350549270776659795249916148880279851470490383298951764528971981299317735289012273628901815085109284472979763323304934553925252718075481626580977194449528835823522215376161879516627626109538844307314895835071241406862262109713241634827841769629990739946705360871399258409316102988058291027976340724425106098701444070354840760761604387308192476980486219841144102493221187986095745782371763650212026579713960702557135605725883146605562990281966472387731004526615984900457084565359472419848012276093024840964496369620588158630647874567470275551486893707834720120202058936619020228675146745298307664504936350548482885125012162470945031770562377470201115444826997932343685104222587031569429545001808016110507934109516541144016208272622983412529931114436390436757501692022384589605898900609322880237332234828096543875607741959672633058378781790169176877962877090216639947844424690390260693723771587578458205880025975390417983868838866577440266182175521790801420489026392460419203434851016386512191530294039675913611777408069547202365188798282651110799375303487155634050844617719133475167630218662207522542879322173570255350381411922469437554472209294085606841852380589894214768073625174480541019133939519968940141203655455925475318076470352852723138800588812343294256202137126179844739997933849088034900641272244952696861482784677031425129675143986023136671755581789797491235473614776059490203039452072995633048603153296069409772700866464053886822291000525923924439412501828377310786731077080961676937364069666986876480517402417271342247475765392506595416053276186503800381206967013817693946767791545952942108452693432988088410546145849466827459653867590498599516318610080120791012601856602024389748974991911537286015673886335951381974239157700110244651659205229866523437841194497967733273441409436695099883988144395591080146573115829635005009988158486384726083625473490482972665637822663819879528893627683750490260155565784640063048152783353863005300056147018022934908507794326610005572143407356107633154247054165727286575047025086172938577104682285115127065900475013617750719602086444884630420807591055352827636918961287663910988937990337077517365825189037555277446980326157066227143090878498306874914517274301922890464461821481937555849897023076523796994567441705709895740553594614317718053219250422469428766669067935343048103305483211622044899657400564868768491665483802582888105920964458539944597706548195398643210297763313871860941000938789691091714156783335807388448645009236538249166998855238080172617431275245648910207838005914857445990812486950556468400558788421776859005311100531847581730168660504868423500831668225450230047811979517826010797339974816061079594336644703414346260557008456147253089749161747337220055100713304561777778495390092171453505351254632550651412930096664871999676865200862999545456042706820610672804646089583322294405381357140917731262163093283480919508990370559174268645782228664162671008015552070341591200707933774566943000531152632033386166506604662283216714664654614651784400804308199892784131447276486958141666223959213015816221201982376392154917144821989320091965166404350111451893066766860044494739908665920858200718764907677316492424901513517241802521496414715051173241858193008686307548861213765591097236267097332355199042410299399915487916327558260611576676961950636255541857047582656459185404546314951726404912389745678073671089833836689080503221871717185694580486358930270697738075365194515072238789822954814781376052397273617079779606309687350822351938097270938583547817056724086870198498119102160611474919910752799735432138475294436438733495509724842713227464183195718522481816290275473298168730077598185196841014841285649283777217981582820322176007434773622153851851161818552553696059855728071491793871497688341849262490768348043022655124811551953877124489205002256308414112415237216052344848987940344468763759784345285868808388272917744206002144345804891396756567191510381924248188433069686802082297589178118366755968135688845346135741026439024679471961173085142452278341949801918794801040392779022648175326698812559213855126791558260513191595803707239803244786801464437353866481205017921767503576725168153528101435888740300386426621681449527735571377357803754538966358282002966048489139691516541653587084979204734692364139437384147933397285980136843301215204597783762757253217028538031867636266617035780120956302989468529755947167098394248513460277687594074379218257920197714590340196308214463396063814556663767605836742370305675674568256631339904001244150940149597315872979558004756492000543640519349952802912506338974049397367226564142111974532454566662330081260068659628655774078652594657847231469978752852676356422889908504029677596402121515001115037220421225385087136710585093498807713042941564703964298406134048646436293704049327699886608480836311054354105126049588933590323283974731881602794447610189106807738333870771464488969319648404921310357651463384821678047355527094755648411331230052263457403315188458541778488770267024790345710114922549708701552133053095365671188096525762947459826371100473893454243422396424635545150830759654593547207316212357435998068907082920690195004842921555488338162311702015311157960951151878060010361218821058646693918463206248610832265038184092228835633060326040725326259761781676395591602578801321926437466735024320845426716138209696692970499794321340621631633542206362168602393014036836784909761197468117333679752031695771823185323098824999178711013121792930624450453679272740264495364582051227693349745206171168502194113388381157480756584734558825836370645606641709280233828827393854855595237499141807688627571157260991342240383184194731514823028277719698309732308588431537344168810930391935924941461485211643091805718628820205742285170442274384398233836401899968516556056264004656979714793179297736349281026094011776874657614691254117710604295668840245109997571926821139229706874983630296024499110489277991954813533681643724616741063253960079110104354495498126118321072018668663642836897860299749737685897631982077796965252551919779906649322008247669056207876086795131433364899447545736995138306430651634563828612719902501296479111825499062983742530611623279854685575717664970220856539787059577592032623783349388909581786132067261167271928198108583240457927922864840234569988348233881399039346320650134999561095291513742918725256777783029461029392778116669642722359027245499910222735576683660007519166903136538419758948528798132335348344770947056600388679041356604434262397750230123527276883419815597079171030094991018886100646479397285268800297697512741600045969241352616450174607288763047650619393006952769202390976059992751985395890743965837386174541563904073908215820206598530019885595071974394612197068072917267574365568618088390459258559270925239328191953670571065726119501502570093839861093078620242835794500189900223083756396400939942601014795017411577670074523669856543865866025918306096505817954937093486958876369470797402382079902685361581684238301814765327681511102815269117416023362792973772756472973140349692090890137173943112530368620506754616059273510450102987445623731637647581819531991000298150163975462913793174779129117965217807343564085018329012253174718981209961893461890914864789138760621137383752847957079783458740704678905722773397322378609094765741320364049299506823993487883048087234151254811619200921005526622375305163461404867849352879753525976487320524190079456646079450821615357874864605926275014999214790339779602321150920052188904098818341761288418715011362440923324520802757434411897422028910124136354553975597533018115697364915145118901490869881808022563569953953849815226711224595772860560448452347581581599824508801373075920805642794507740988569943894504077934064482900396429264300012342439536347821939926018683036375775188337598250031108345219119187677363874243100540819292761855395958462108129401335657941781648769468249234862685924026284522728544267105576835870920583152039966474931076073319573521369948570206578354238384880837692473444229990329688332409601035943801113617891482161781089558773745488540144201180142692621395437444709689499975575324330972561484837735924161622001143810144800834017709584214404476938753733730608985676448370159943436282565749435624924075743610412353547928946914689120207149248868514308833928808051927343568836092537567005975261717540668497545323946144908243219616870199511462941623380500461952920677283856035457127471803466609575962537262386033233814961367491934264362419905388279223377751184034415605327918729511825551983745629353227503212899910381581125523269105596746990674315399467712932509979946129891572061792398679917882671440529012191240396255355108986398057059770870229690117530698840237701799299853610474784773189199627244049538018306890534658367454927244528278348175013187536590309555825188405420312198948096225516945119114928628156110677737082387552376296126773872454057553605770202320285638144241859381340841853151359147522086811210147399859318923189799838615853167372274035098963839971310417199015424339448497820300146121761807374883309911389833022974176991577958867707655259230623283242726891717901847559079986116674580321688334903113726439587819156871906936619759273154578763765355843062463154530823502054718329311672748743482049482867201037563186305952208211227833282207379601684901441422339425378639203349045098153836541356356572112878594922508031940405116479020613337720851346979425457943818670341422128911127693095015621355031141934080645153563750101667291594715320793506578463993527344097822988720629333309847425584234312203265365788608274113325808691553877823235275434833364029701957305792041311006940328490891983884946732483451978376893124130800269317717709797396031234680594387291857078429302176889805889485847475890755799339678372248333324654254545330314154235352832100329254777680764890298641213164553010617057541711719809184875278264079945835577621017526060040887391397189362904937411536620272949117828160379337737912189831630861829189164378871939660482686935201721166069764974407561143477703081275995083273966859647801475942020202737758502027457660091763590655160626890080101315310716183353244306340994980443270092275898044263185350069810664320100491661074297203226217619255513765152221826692199584115940916183748216193877282596848781983633042505143123715984664275695163639023636236981094336133865144434339291544281229324224537252520748810270194807770568816941877891840028239587907088837811702708349622901871940297543844540607649561642290094008922187667389853968946828929434176624200596997353880221192420021722328974849245488702424003978294444778018158524635237791730572242364641183712329814118540217470328679819175639189610750911879957086500261828110648327202373959441025989308607342152694891832113927456162709624275490845626573785978644726902330555397134338965030291798615205398802598877275556407967667313258915222583336580977282536883752005755382363484759986829756025154359327675898564043704662147375851128324938164954011768842292194987529646716368231929352883346322768224544162931497848067809815765731013466719269991033740093654240730041070333206134836171845525403066313949443023943190568134051327822925039417692508681756228653394632794746587655649596285864018842482616605777026018073355553896409971392888727717785618615921508813295403813824984946900644641317911770837899050729586531471713380952333780244603620834317465260680144639188037031364170134680863718093137386301823406131910460723597797597381215329691916593829638743387441851375114784160087434258636146641972293834669629302290405469902007492271531651996147895217610070241571365195108224230714659923992909158447529152097074025678134243703850763645570676024119025989114982209991210463444266450291772786513250433960805000989383941621118801086053355304498329981141322534632456361410457348802349102856729282745451016698805944252263255327826578130192027456329477192357076840028457594145716734689908329736003503268747549650371807226031794246859284924079368054449348824536444334090984929925260126130889927221495697293597942190131556438651658102361190179930505753423208715086630374533001076965743486226529945761777667598353407237501729568979805969949200797740768946500761941176370391848309847707674206256912230762870061913641778953935037731657869606256553970391590127571932662630846668591937309182620237231392572415662970453960274341331286252793050342738921736730469864826402345238715768021098661357946706363240274035207444287085498542888758444846793142791357816978891210571435789910359255415727600058383818132633685035709145699889124489237773465207426016072325348520458459444139222317084814026312720963862330388776862133178228987173210379640756589318799875203139145296980651731947071183754439048383001559914735452163211035577302881312467150252068748302676005913339381949276759491292708270836257903658382543160578673988039172831468189393040000024960576741831738004852762104891671299937691192901230728661845706149154960976531987757545199333038101560541190524798492232884034717945576043513903564727264804467986203515577747281074364371102410520690951981229076037824260629768565363932529562957827074956048670443156821903005424064580586056893312142885038242444816853911554163546067558745230961106201211498533101320248244529726144548955057767239833123451124703739181031515615101608832944125444235445718679897784907900952945557943335531749264238233318685718833198995028443974417401372558666154646433767017259429030113743992249248066143858625079851056795856110301122634551991733968149193725022820567181916442283931543833647391250028430878292714123731623476705080040231041810808694965573592840733341266878066612876966696008303835252097911841518135320146048109701193558460338633965797353290930524628922037666380023188716611209886343849471137455876323944900858129055951308851902411122700774172056468913913972672780094628612474832559184434299320525240205241792751014941005430097761762755835863752184249539874808821839281557631279191903147760518602434361408171211798865535154994498762168763716981726882628789897777121685118138625540721343055911770420093247625364210932540135041734446552679827113798105984479924865134131813120537331585450624491013756559111219755096990802348599430838955037282012086673389892346231945497953431618866911963281481344491004401253029043723148790217839907275439942343867080696624535051241366404404322215453100207283964024810250356845126277932093337043999323598026786898195834295298210099724565546044531979449467869309985431553783314331572180744371132671447071925626252285842982430944655958133777004819867196005329452924601823418080070899341667432396346983210115429029918002030197291797151417944517315467413748490204963600054394463358806121651114620432751724670890121547317354501912307605984297089902383536789482429337257656649867256743087508727214911240068418539900119373258522649418686036200783251804804902253959632298641603766674497206579631056371833501184622672408094559259217625555717139636680302523790939060251264633150931041858275565999705949995069474934730717664043300307824468842616589672316939072326138981111988594321439858725726617731249116333989835497748118831446610531353723205129740919852846968288100187149344305628375196349709805496141539302841406116159589872709905832402999003520844800628727629490109844194832210600852030491523260105153385791915683422525966790864411665995027596505532642742267420562518773418853325246375549947588719745292898401490770267319468858861215035485263248766450181498499616483192367660913412930408009125723692049812819231184750162967217184909921610791371770187085084649170711010956694224364060353419821684580913522210359397247656277454525328943755951357731487712542301199318897486132741628974460059759987379054373184568966948548578130169021666745352036110934033068364611948325245133219843498776839387203850338288627236200688941467992454389518495873850381050292001258060881005995368057149926388077850388744725359380423011025436206301741325653138473514928591665480876649866886138165991509149330128091891779348041502315089925497183530527915050374653166798105614652082746148377511241800580600036625846858452096958127893453187447720873427242252455416532540719523727200374435666704017840933650299062602035946610425627057612866041255576014702867163387020789099472063585224594439040751551802480322742860938482326223957179868194161466858581572872247029522935256389455244530347406292733721740312896334582866076352865172072605046497064074638087329498882783306383387641694365826200195167507611212318379472380818916719485475193075342572136767635716544379817990058518324604278444824222709952520029250220869739399913784725196494145016396025602621271335171560335567293434775928542245825754922621653103550522215525454104368909493431719210155595110776179059653519330503634714997006228699121034123680823109350977115460841152754027467539235709726322646749948795879913510573598336402826746332401670859064424543965259448253161500561656781203699701566842696209189273654673799933163591774718062917423379440405060102769311261375829565299431767104171325714502549908380225319330481065206439268985638231645689085094536119081132446232280605332706195752138599256833969036288599033335993206298997442808160548014415204932235024703349277523529031950440556132724251257875585010189609065763584392659683892051345190685650713646977172698321491397172237615219097722975474957178928008396049026130210638639559454620840757176059049119251640283353702484790302686635511307764719329760974021335479530137672618004157539414609734823138830360210254398402222734324695404807128206656927650272681980299326293631584220595505081628201571137464830594964018999809699776771217323272018302826230736050211765082355061863970371398026500099114036827013790907662046238392882723459595758456191017426041390998106170415426950119726571818871665895212020367988956029700620874498001763370298995350865815518858541373673692874122091176199900877810613023406172096657573950390705912607666521271607304250234293622784266692734795441947165045930856297253902251195863244380994439022632904532512471859858210495338340447132680688153041748688492955144031256233694919613378726594421361691289237575992176365498486096817382804655347302815146957531035024623365579513706206555904084437243565661198550298770183084260994627336076890804218792872178735339574814601684019311983840403637199921766390873828013376081240451843181232501656551039161354343800250016703564246891084313079514732988395529390297392879765469218535903172925724084656353765675514166241207475609625520937527093783621532492015031825730805253235008865260237288906382430066402290542060586235295575903863117853721550725092100311620954740288678166730712422391981627041598220170842690792920464258378149576373113590714614972334008569734490824693159642117351391804501266936879034792514921231791845670205577492201384319258577298691597257773518922160482777464336213760282769611533730193044141777503431175166711823437396857420041824597852032474174147713913048219726356747497924504598914261531207358636896369839868580983156522334225626449218250611443754341795298771887278114480159026957646117812467452504948257475686680834176441855711829533438430588111328391734475271040126123778525456989158332358470409032207557706037736521888820019535173812810200413117800468751836832601651759412052223448474609028733717649587488930956682434882068753409419499021340029733711679464877211687746239363851815639697014218470294406827091138535654572727337984541258669206288023798602570417341828150374015140404519297938367925447891589715214683920221461804993957262787158056414389986011943457980808906805068354006830492466932410742393062785785571994967566309360262728021779231636718928645263981773109912323729829464688132471645011420825547902323488131095821076649300870938346149608564791693304415728614547544094638823325449017341906127069193203831825921209679455497770555335456899570187802020669305795838057495304402022284274311727852697005490842394242277886090644821100679978840659372798409426161104874248506242501231536914000529193461066092830119114854361648276858264791063619640457910608296181771335297309342966013706910902229600372263471138280386879131117631977740333000568790898078710439083461774544804848979757614885149633771687291071899727446574321982305281984278507249672335113364184641852974193323103373019900526322087459444948320499338610498321205353012945539929062886408160092074275856886322580063020793656197202899414664916229331337235275838500227017581145944183968495566836340674665271886460980012103556800147314682812107730037994984861934838397596419974971983046419007844946668064865249726995933385932055769702756670071214825279850321553627246695040544004206694932471413192323836699953915667137703778273629434968176731750197785488662244886395348147909890639955321794611284260913454488083884691683487108393908590595126971825378680499154568706721275507698092677702163750356180166315314644931364228274880252538433186388078911902794268449526661972251873433940388366401085661204126239788663376058398636874976220568864816145090039224428429595340847809242706033398852961074514153525274305702309456813916894925730085859302193796461447032401929296719118415612919337674567018453190949215012631118251007944539453655165999132499391022048565824336613271584401227741779826191617285799664136139380288619717525426464880393205632025909596755755828304309408997604168968989333042554106669837228193631848059789074763575407695777596555905580142452373213592263052944979591181158267117403176838210161408308608771400420947183278173628235471513915885133827753584655461261185308846196652435847095934026419926476039711034713226263702543924737700432718813744535387957744064817243892347408272661965573260618146370851165106127142870985185413490033491005763976390859392184444243279789840135616914642622496341400858217779375455459848672466976529489146341618428254900682340059885025016539613373981800765317317182239090984381617477364385618623064805988244249451963713932976341562289841885136293328460500766854313298385357262315883493997848729322297856525475644113751226422944840324004555847442186675878566664303187217555701317514867556067509639138309479357194575635675434853599539682308428629929134131926102037151434124319140733305479646931193966775081715910996619896133282700399557873681849333932161447092924803248894198603668299276538878868094923300684294817560138709728068830768893752654905150781441516290961451057769839981974163885154842126008620673902320144451092615213201115672623014688211381070971072986350009226465735386043597058343546698433729295278592138488963748056293433608184364824922788478348216039092101295782870429459763969352430339272491115233262770416638126600004745375966777676495115769972744360473598596876707606720147941358189415671016464249475134194750779232028486197501576690632495023206888056804205562259819832820177834553432360329115761659960962269145762331680946614457111697614374465499354309933477568737899662584582042806290578989808903765861233015990608757660660185143485685282751094713046975668038860349894730303851114262032837855762408238575326209480438794976635676644156091235186562836592957297077484554683984169064690104404969880319133732738461748872763068123074278936123588981632220465714991072132017246744561577416309573408582312913324095710189413701294430750095616841709731550796115628823952397407584331134211819170718924300168120815184235777429737090951770866010811585832679147493936887433800587025675770956577617767035238476868686544665640253985898234376595681316833923645466791475246638052536857951376500289142484351251317391302117827469772064437265116099999861611726393977742281520830703265900652437620635369633837238261732439333799423750818713693493632913982903129820441488265822806884174839975306605708915135517457135281365995029776039385075657470346250089437016619395243449885999631273834820081670337176489174119985120748836607637959619828999714600126166777112268859801511765293217838988295977822393960069476709719475020661893371465037056432487905150882525946894931889012665472141072082284906589307540349466878575341006411731255270742540590425620501590907346891330697959736951594614453730219084043329076656050133136576935011309129695763462396611245228819930376514420163467758626332515719152872659507508092841704852258438261367558859675795859034046971554221765516801399562583216076988754697686244985613154977374654426102749141636703064834384795547802662450547025575893326262505124518089440125837027268776112894768502451237826085673921494077641266013004006984937161169975365024138060181782596804865219168955043454547687451030234029468773931463218724971718194748221467028884191919175925494407260438438415230163038120280280345606195064173339540470516932883924079437631373129392824120036688970958637222410789488677197438402447274105983057174121690206067454901038947744129611747806084221530869131365371067656173342975129574254015382956531927879245127787391221437212616041349764963301559712573504337805988433070743945188264228024348921216967023468811661926048379849598696062381413524896057087482264246039913093026265904262153982627112126574373279879789035588711088316632499551930711055314339297763630040891994493779573605548402731352491263391604340323121338416048754329841623654951020017272829882687706445431176274777283820716260641249888944342602440552530956992008243431864560106552121649462091172653633044307011877673898162422566000197154259639363998548443723736749026152887547991997724340330323744250269844955841273545452304868286676460265720695827641788247230320547291703630838758530357610617528552949956932503928038478261619355946128087666124064267588116820177351521803867738583122153287780167031109530801964550415244309839048199001246355906825117639856176315687402927950196496878770835333031853491265388812372118650273138572846162755249927398616304646643237764940403372419757045894714567049376284566766617958804062208790573447756248848355650725804961241103535123787246153815460418802442010498538050013805077268712713894987495453616593636291771119547245146434229850366599998934872192178659198696158718102656516950983085048921901423882143068180366321191003668526075227983407124957819437461734930314497361808437438486529668155114802561059845108096092179724088932448277818089396473870553069602137133995183456404457265914065652856236828427090103381021547443535948710518567132608758599239869311083762135589770908013971790248530434244263536657329965505713155498828361068230530677454051879272148461244118549351850035000825213702906936965451052725945283681819856136565902508090306501898177150550130197353508309255991180597371412226905624899095940038567294330922293358685710300669136868312374635466651797677813110028392290706705106817321822218971242829604036272352885594628039719549080139071941266199758836111794141517871837685657365404388823871305115216011679697033259460594273474903598500337214926117489837176710060619529895537032119216111990660353216906748313573413957144061051634617117345220836156237944632272449145498479574807367772674294204197846359140453205620743604672643139280225060256278488804412583774901416020345327569434475534400172828152469068333353116691228415171866618089627903479756013493397265774925831825464170975042670781648607985132756586325952837409846334916489170597402852525459412939929795270226698253213804385277811744956802046109015904240417617691669300725327351404708152010532532999077009602378949556794115169424451370205285219633456937949944985581327620039318457189487950751170204113412984054385892718100066160421671987870888000873407551142376515010209171624142509127206913306494547544126233089575112100127900688017244190625694435844035850583435864624854855524360398069205171700987970851668335819329418672039577488637911446750155710161931989293797315467753452020607264990797666951748853868703441206054278914004939395967225811090468296717478239574274222710073889765427807839167332764243941658566996162919911242692204892393198420861354855618704478007142036410663181249658292648178246831934336084794712412512524367831295998275056054456843596808772671435657010899267706441806037635306256307882110499592637253714166623439509281111628913281557223567582275749960748329318116896871758078957358787928585306395359664546430584394836671650029912894269075772576414585279208458939699117887213194739722855237864855720237910050763727415876637534856733563359612804450290194308808881780616305970174923023170768091195816079791954832347294631170668771034035883722673618455620897700331113820960512641067558700019033799593937954278757085759909754090299982401277485858048891461796761621772260817746232250848690500608432311563241181743287703203499809280706624727635161087811808957170133549492550922295053693509594706189931911942337411958426545891471220921052636426766186977218879429652754366309533378268145446630959805306311836457024247089620272933820253238355796671046152603120426316749518857858175524773001795781745727912737038893505656150938539881833176246019495494200243437994341539200163114497008350618338543521321954121288786050799583918253827073013550803226446136417943134024593982868397591937007640854918368136202920731506274763078477963798946520644299327946774775357950468378257648945229546786402335829576770674173983677023539306028274840583414948748636018064685581336574686046186142365672868651282912541738772471772583821034468282549311471778999744460839832644050019415397677569345487844225275588989861917274914099203574783852973772047491520868594646741537250514904268107480458571642128577315487811429127279610878641444241638966972013885694678155130332338869536731561908229937135604977210512023712954411213166617032636150083370288421239245140395737290046293331807608543659302458494061138584731561862863431019211784438299371928670127871233987186045451342799379883147905043460720051458100219011845697104290316346594593463974397843831008518136907711516030012780469434553513535965040357421326283950800267535253758180572165863182985751310356566416007459899854214415518138400842933230178159171463284789656145015404994276639429311809627006368739288275343959782891347390841724505919879228577553283924254297101906174668665322448645129671680520465291078567491663945375464055970034600540698061985855235414908726071022453222114432203788269608455196609982895982278123194187018676883463502866292497090838310839593247887397131290356795756623094898699374586404672255902702839418231664718721186853121401538438340835133678219681986364185897072466428832818717164214328964356359614212481076871311535672147911110304197616468898069369823369611977552712439868589989044227475484072742035615530808617096619486992562352768410835712619248659538031043925540096719355274087864523196103154654002545025142990366051193177645054422125338101359300673302691001943310139238320704386605589029078019757026487011831406653183860254282853113613430257782360552578527332066313643751020897046136488566371123463998343015314081799022484426133640612817221555481703549771255688682507010252058690307081540572387648742539000883766355977597222911939266485291448996901081672596445998291926148924687646100120721495857334146132460823817219708273358540488768920751669923945619003425377979921648028783235284641626437823287148161970481801238021422922236447245088137038379009730112876166301483254108122644527465146707971569924629815001501058689521342890254562284527411118909170839391737837249548825201545488217393512775635385033535014862218518716049710704592553665065681952647894736727086530354921831872858703158612879932146436462439273766360455724393369836613573915263038626404938579204106767586839547544088443257778274592061824541295760298812843760720879887252293628791450179830171442904784473165548820393140448118980300555883484812270719439500354496487340507492797873984677453618320278121420153778743230872769238832951206230678675091817399831239674339544211475390930751264400337220929565440187638752796691916413808051473917970164111800037437600727158943266559427802249419738803637977495081183985535855525772227937083596304649164878344067570149265528853357393155860521348253818179550833667801760281089315489822531314378784506041810474958737893548795280857399282439117839689483490727581358780137915358126310022625952494341766692279707278198685846246493668598579306848165937370697379107145927472814444705764507401800026324672744289934228967661995918215491160372381875864078536086332744849172022963084747181379682582887121421670620089771010434678034279943692844513320458653833879224978018539652329934050379214857974212778030657438008520469532337193797054776948294891700234064782323602164857193209685815563670312384187294123364325424162907682209525507817253242767784839868873502452327581772364586588350641415207043898553164719948422157396674415177395638529314157477273859217564493270794692127872421473608092610313542613050016628870997862060040000830475251722467979314842003528452232307380773546321411440094026576542627967898026270433350985408224671716668569999271426295799733804787913248956987184073464797780488725222294522508754688684038904479221909032114852295157466772129669924134631053001427962420983583075772056016007229765035681086366075014768508906015784124827902961854992743821338302204636801457668994273114408410897922995938390408501261957110837079613385531697554779220310222548238252661467511611627946332050105717483057017973617246614076761901210799962524187796863697633389863095625258164865864883484904926959268220570854654603364475585522494872237314200593303735072884376417220793843056370741075863221906090883233670675616467244498625523628324034596867776021713545672911526065190198721034694645071499200142004774126300243145718048195086396402366046903482592391827029556705096700864093185977061631585623566188338670344210298172307453589861736651366450466758646160732192495459649581212774777160539048505634385446399848689175494592349508485619063782622776664491819916000643325984244643516741303817445822984094641847196840247509520263871025189630969343395238901344158167669995329182942855136083289394089969534938147073211808484139445373107759959233264065382974699889863373268763504985502612061051226928866549639856650348153604569891203541173037888144484304858812344508820154207774465564412214201414740952143506774451748812237325853891101984225269496567872043528889449414817251465772991968852640888210184913249833590778764335876247795802501866078664463064759375110209471617749452083586526588364279013559239720001898187969370124235752211684476692542546306793203950964633085925465487049607389979847252614269098220460143365723794811782181418701176705652248316639462656784275610408139841375551901428901151616624890143262726551909675606341442659078549035695628209265274056186681332337891042427598642789616747818554184617757389206965087342495120857985983270222084120392229757562746937360791274165832474773637552789531067803346283060031310279148689350012251951591554501224258433915169583812065662268589346334349557808217524680432234159913319115066790298779041083647871828946326228211701126734637317235400254675792403264326035865103331415933802991872694752951712337289916670072223283478869859590071364523854418928321313889088524787790862177969611618647873877351625303307014774570372564860693699326630042695740101871362433759784862927810965385322513727969069148311784504514275935305159512236321283633419462519405399508951984475019179747100145152843878906843955571699453551050853576485898828473178478571912125912604774728531231224056515392299614915477015574975114962858692309797729529706303860630709666944102654672694164099449509844353597266254060764999087039835229953004454616468493618473157260841111740122023392497795254542323558412218871961788585847996232948010350857040360688264172902410414546563442264199090461778954761788347641775877551636563226321133886974366666353156815373071318224659632378864815668590343518287739274318366462022195265891428070724592787130521697945534526876641135923938610559263208086975720432781598432457579759631549339141539110451115300954268530031464744665866921054675919273047394938545409158512576902946061832598626101318453045051602250353070805324813533851388494725980492873668247927830062731128106098804113261399703168111336006132001971168051657730742483674264238379603582266585234761244757461238071331378555212414432329705842907334996879708879614712055147154232607408707347757727010557622583083971325438088200618916582023148637461594193729055215211378840384088231549175761050870572744714032602618671602289668854495720392998466788453623189362003153010716280270260565448583487485127105368478328793647528152369365346329956886241385775027322762773045825847324717120576799012029891585944146822377929443333438512990868150101219172849692254390077174614099136471579244206659790493031528228104529072657267430923595128776015406115096485131817016522736142630842938559587078384399899377839039946364832304589300800875125818208679872621462936522757674858568319417702337633157546456591750360659443071683640390394068115088730595604260408885462538104668067388527394237090636244688175857504892646694052583981528706911838942514077724640154860692365104656469062650787863716854169333664042522292843089441715146648374264268322079820016515348040832748263665900595264445770406936525585288759615544241218518157925138090650795010865235225280859940899781199927663298328552235248752553150435919722064089229583807350836869325097524938366533223539867303028372107098537469939994786241602401651426445443223112602454074464196695204733808716329945032964694695210893741065683309721064938764994421719049262835530060611374683016411795779626318806347673875830861954443583931837283365972798021862974956841837553804443775303278955596085369580917773414418288578369354360770891752337447699228947620555598062977757392225535454671895443423414211589955006852512394644649779603171314739959705532494475291379960872641700341855001095730910863498390471193814218471048881428089021026688584415350818723436328477732006637627337013157530109954368493640396343375594593604498028253526640616578399789337986344392996772574383743726098675861632989738165348625207642246455011578185330402300211911214396482751860340077017501006391976486537647611224176789614341662116459974505971538850230714478125467164346838370503886817156555278724578675233291680953704188408220637226894219682035040506221546008223148852892454426235227860531803345948446639619649470586703959851632892292428334847412629925300874227399768977641159523005731178927042032231846328975951135380391738142618386696485852789729907452990888625150287980506024726678271582626550467222261830454848681117514464936486501125288713132556568145685034961677116059609724361262106959477578181206471852696106320687125443211634111878704058106801384987816149382616059953382540347788165541773612104531590912128350779424571088522624301467344625951501428419622231248442272119635655526621925111120805572031159626872880329582391844662453488832382516627717700568804672933817255045781419575058723837158352998011747633608469162677453123583123561614666509835488446129612451453833871477030982092062005247233672680526521294700201588350415447673616890970442492059988795902020569877497205650116584342033140596246685367912422744417539286353931144411434642592824079611033437868220358978074426270291892407103759739115284162101722512488414005292511227250059485759879244757853940743133694690024144206058802878113093014780362584384832174759427296828238431925478061784167637613041204640314227413662893411327100213568019255117343523338682569512608432002581692836775801959906604375151070747077673747198198317648985193906237766754456063325889992083566429694722530095736820137469661527653062591477839284151772626203353954978539992719773264550914466738660636675867628032579754320557034657689652143349840117476995335111807371038640363893778162039979306518868184658204782935895960523720449576716421451232758621879039859232343986989361488204306353368152270337985649375592410701511855317172088547433727277768307307136250293703007081635424074528021601654361324573954697069035469998664875975334872225501846108412137913230818546533431985962274680561661296130352658436081652458176775990450900858234780600594047510416824775445910507710631254740480468190059248258147296775685980992859913683582057804052931140811903362488548727458451951244088470274646954876450005466396123894402989521869170238152830363850873785722427542903496284165321240217643793505835660496533252734092201798555274306993145953267800381411041786348641792945049101512966804349723820819522232735551377948696145164557351347054653638973306032066280726486539284597448842259332538405935330458853738876799892083681676265876767694951377457323900951922317360559398469356479398366521211105329547223724351051938967857697348202590341221752537090041290304059710073066753943351750348462500813146945968138426846766179355730658083700803151204365376134380432916613393877218954443223562990549845342697357342709266110884575470473497837896038346745746034792865110265092480592739869067200455327418806428554052002421169078140130224535014199929734504942743851591658346741167140943118554977161394554037967955856014991889555634469221737943516961251227302633949748735496347328755347402096234714406602111835492850875310910116465984577815270136659780938311902897919915583334744147577142584971116295479037294610305602151486764413877704821278264791712478381557527393221470075526381486380235188437009452599592628713550159997022704918468854991909140352068948054989355542388091624672745446637414624342031575351313340996867376576158039832653779513108993481080175201824305209719694309064923087221871857748972080353894146155316216935445051806201955419066683587250073409478223974972534088244900876541980782328095027848934680229936549619641119316292303237298356789981225447838701720526543636348344548931092370242618974782748799666036025307220360241746275292193553247027474900201975674549541442307725147724856417452891226499547106129187741683561705247412484274288935917821980255564510185215873579517891720493217566328687375396978688839838883801934513992359344495370460310620949854251592453972678465205303604348718380403044549138492215746177039573139807031818850579115223854571876643611053000374480147162268791364402075219675255943405726327624983824012696255921413596472093438823191126705461549637563366749853634045993810664107213535134361225336538761980563190776278711783916269035096529200681856350013657398276769062665319182735159638326417103665201169875859834323972202595795683883543678407596361609445594320352143638799493668185503658913697729142649392765893374013883338810967007228002621428356681228412210042742520416409805448548451892053149582808323317871939129749551815840964450728774590804222940074052450336897929463121535539054286555992811493001501364344195761287999677427874059269963996275020708846645970353366992314435155089033102907558035628979750917927171984444520738102972745956810797212233024395112716452201042281354561119777473345432054077942727469346369803213054922494792583630693641363442354253623556452961150557313957091427326886734866721725024116792791465204809838371276907399866134317020226416390821368127487931234384273697387240612600036004784088427368757855181165246469381249732038805602757139736872362132955856107520679013584486425393296799358591463688669497062711565073596438733627771083605111975443288782175745987557445410632108526445760374444382827919621932687227034628653610062762746878510202825283444216273379160083013089798590718096571710667475249581837017096729626863910512325814714243575924871744254042985239781150929312016814828687757437893742654530679936197074132933551035838397172180259932856610676447904777582695770726310921655766412938237684521662627196866019208222460777309189201504912816523906541623852015278798725504580977726334981576991019554068267141607401647847731952979098462018097923821051659375758456454395460334975896702608857372454677719244534605327567674775058739636081006947529633912053384737318917647180248749316464301464980584111989914644551795984585058264573815225141789366473100042820241357376837649554042611746885559813632048895930384216850019027229770183690714666384842941535683277429412611945339060878794721424377118300341096473711928255518543934866674688675885293084117587046335713920699701306938496092279881993028104573705891579130923874442955869482904600533608183005000243914368685643293955114617920030232028204730721905085454540572343187931250213726160320621987360728989090156077748514746961463941990590772493563641765101803152347319415909997945153021626480717914099485765265320767116102013975240470704914932236912517100302358444892013114421239660602416845776922807882180653395464407988487049466351584399323625664312485546819846060543675127690265260049360373868847352614798932810055506867002627659608345279461976521234657493466018758862257764952603480171791959105331032160440271505724465100008966125428161116695656619431601512195115092574155338987858511400324387137077565455394198159625218384842079920752928210435571013451651120551142986810642567670448875369480532381345871979929992407955190885213640896177150948980443684972732037311379618723728854908130237001592900957510180810235675673015365638837826293982355980938175385590590444075218706633277194363691228228232669736071575455093139240336196928042069361160780905730213799499769424476750984101549489160842628282724044160732512784987047662986408932579225967067929922444101472884756256193110740525922287596523865992896948695480065054294493497027498673898772218986243307046167380238908608579422501358497126315977057446427243803105357855701843805009342358733671469176517495780945519121648174711359113714897452008881768936041563057840269349451168951537205754604390779527928172526350686366319391186732026172927046970522171164763942569336204775804954203725526129720456890701194891558996930981438417796786267417462240062784019575503538635603348262173904817549255018403909627341955423800923288665421805129132805555122037596046306610364739214364211334139510867065720106284589290914683881046797655288115543941375699037150670221147178235080397614165607525094285118317580617024106662330819382773510346031407749347555776225794468400615461736467055146865312817544070106588917538830176854688494357271664654163506155237032897713020711285630629177635267332551574693139183078107609406033410391735774364559980505164326968260000457226050675193343064076944269516593703331933444019076129810882585969855871164632713533418260792950451379867092804804001285323528091956126982447741465070050752011063174139057284699483406760055112222865380717570331238109158583687750661998370345386825199305470794363235241912642218636590429139605555296525922689998518021640798137084601520636497951116769049191200776983239155735914037130591556118141380314607875324719868342870548478055694356482352902972348803092321467965139919848312305188039853979954808277228157318853635167083425624665286568424518726039870091491801185776354735738003997839462948207686921883350989150425287064501101164333470037832572979518977549697146808519415426096947131499763611479431319277164524799037338811146961273955079542203214548369015606413376443179578516299982299019410418436294569326366542416843320223623209744640433827455451159703895854613814398736087602650467928471851331187822336556422995191278543030020333136961117582774316558251482895778143436541225657114139175834738117370017595979304475430786984852574084157387042394389469318329984062767473362116516527243814467962427741051118769660828909451724760366996382637553788358858209921980016557734341342110961630621084395917639524563282497099333727202526944149970906132763007977364663422080851769917034362401457713094795166293682402013369320357246571614232387936548663652743854154008699919432365192155986377593540704876047678056411690164059696632524844085206683516371099423728286741472535513357284823911769540597716441203751382871997839847539848428029814024868722094173944202653814528415515580767270726319879840909400276385381899818737514548378688961786566531429578141781652750449753692940639084503203400878621279529835565699614635445689261897297367889697323271335527692658130419887626843340422225394411600940331283483819685169707845830636723691072403020684186024119133011725135043363299370973330806556420767079313629156379093359115659932652280974191903967899350931184496486722350159678785480934934960676908136193828679880091506088755254971243691661546496750205214116925334298907270455487008223996919348529653041637530316512204269269878255543018718243769514454290940542258872890534853196200133348496569562439017566165768653556039851443441183545825155471473202119197900561633624765750255346736902660409375570716821178814048805663770832199389938625564910998354986793986817963831137141411564599480734491099260570986696790813160562797504555422879473159832528473183143090538445467082612201155049002611375308054982185433777205531312268924743753715831064734463757736969650078487147566783391471167343285363955687329094571654177527705490591744037931727245040073953574960997468109054213151059676989209069146630606292603007635298925531004363567666597149565366207093541999767840853121512198367300674160763368504597506265142591667723794013941019250405126530323317124935901044841075584148840919621318985288230168096598539446792626570891032759884873873592153712585041824164542404437717128592781156470971747872645782500027444310508260350677502156062510567690085185010718333601952210742964252963531833348399403299386717760720366326678613850550765320818346864986958397831305530020846309038592676426197526219258910021015955578181896821494964761184964350609848082814292966732675910962124463819837483677821936382097240947263362646699939657171240006442296646399393633087535027869091681978795359808542906112918946263903967617864460337082749260373513966595303865225490914182088078434605732925757849026204488341186008529626582325572846571407372245444370936421247578489633867604495899691937753627535358132998105190739149352262678317925339387129550680898668555786492090370415000612999014301261507156939726931702443663181202752763348892045741533962733464738592682726525919645185353457079030873045033908542234880385075375816276623956899255973338932297088235434506447668985458946320665185796795842615178475069514678571660529041923279779478974662665721562767783239178760116236283034044541038342063533532581330814336294170150134662380825942423751306498506670714373508475171839874657052079212481424846014874618946546751988004517240047778206849698098471947079038386492604077156062751414509823073760410321005072232775797333187383218258928256924189909220144894878938710569603043371115294689887736247335875651854741573369523659762680550766002185872576749485916807371367390200506750468092124929496853329827762469869683856853895906271445552802608256714134163539080629725192640015659225898205455215217445324077270225648779561567458203801643982393537074079208953807452964350105398830951596520060492002635661291833120346063851024017006570273202610658966239683344058172172269744889035693140578276586255539033040530731628014565589126503024075850610878267421438048422044736119676257805195062530086347395532151304662610646442895661019559792498583746595591644197785131892969021884521814636871854334639435006932844600632645554224750879829411029413710931156072231166572100268696342097945248727016111653041563167481291022616459450454956728666505889396418855662021282320681448434987630352834081266092872795316567036493523682504174470818555482097638108210950463236211240807271467852625070624984746320584463080057287429962698122058738515472308909577091617804069921426009499426528286186682552562983095616525384802462914855880239484656240159770858767935383791134853258971482464365556156584462113838163673088317489432087103078167042795383190531076678829896937058731115270212151813986426572290004219129980897951011282387975876607206448821758870313002920574646746997392405141303560865457764282187389371133845486621125952872032887954037961073209436758424835759606019772327147480546616610183804590200128786823565594422875464790692587223202165394253404757642363626176255974007824708852539044646242985414081792819021564346903420759373454640731679252400917696554764548936194086656637050630366596497869686873424120917794454264906515345252228417446864821442733161135550677257201970282822617886629811534311738383637209505461612565412455617571629556428942732700215157732509615708364413029402895089368299807613342724293995881948504287756308844510244548226854016375354725886800323583958242787796414040878970697500939424950924538746267206153670170825904851656905193239987628597160556253830908782050834868285630527135549104272241265100808910170303283056504936605570863659264825080808145929295677798210142835051447969658316849595179897204551331492229871590396556569708540751187808694158934182461233377419920628982979855283183268785773374312817225379156056468379702239908412848537411938816278003961998757865747769578417391136418498793060668337285781431786332492334986492957575633005090155746531223166573662975295878165183936356124686542795252021124744988424957155011061027689176160041827445321388589672269345365669341616894470322420615665531048956229086100313570191758033589211013722736068288590879127778925130583058430311448825323672542715803723405784988131402200650107645395220634070255908000729570474292498062623651272710078650022952502788533056591445925103502968357071988367132463198016576999899790009226318442412766742667819632307247808532807787812217629544154935844950514817944357522635808547280609189122596103373521450437355440187425273410130983928456339265805816061447585455823342177290892884409548226421078125682529282757927858611807648493482607747983762573715311645496841350702261885152580068878383072575578127415227939599686646381083751642836030130806835990794654460839134572709781486742488206691050623864965724771069089442919652510026415759260150441680545397174737039723606031209344749720422116299990471099149549157546688684600652056564039271378263866972657726841624213594346639965260972873175576764372281526008991707244479348397658181712038057395947883481267365704236532569671842958345496588928291352352030738049685756096070501898753748382681634155207772915517084478665326865859861823095670038816174643128815771603038615085898225179737290936248472990774580520123862443119834217299691766254934994689263399264128794495769971672625583510872462216268946022208237120818416394482182590449923229579172337246721166927392893734231987327340689789596982113166218514900765665854273229259454016856238935009339132597284169492545390537944924144988944028832615866740848335499249521008318310896275901597432400278880263953401324971169794840403217057023907892040357899448996667210261700350551655129574532440660069994252082067004819890570669151557742704732945884103719327362322031783020135697532427241063977526194860273059349951074530363507738582943590532783434724591460011187611670655973833759574513685473124816605673003817375660135187047590790157994405869226963775013216431424407663194019908545182920118003545976679177779598674076141978647066515379320697112617453648457245343542141125402871661850943142024899233609139893340937179967057493064021459890131055052211100739762841512260743715851447224316283579877281266321170380114881149857589981990078407950010372118862341692376674841712407562823018413114694533004483988747931332555851734877217979955211617235506999237351940340777058154503908651537475157969152937485741470057032165774553724011554065963292466039624542527344261339164805006644575504979826743307351276956527959112214173460148470770083948959748726807921089678022296607127163855512658501746897291317689572552292800023829572494464743430485314101431585198134426685424972550352579466424426948023946597057446946414502446440579356480113507157348541388999139223135729641910549541958960920589802588225872367835311096369939789799183849536186222267572506894224618352259552311724374431994247851323317179383011434713774905120633368450300910581124306617339866621301962561579289180205400252103765808808628601471431807254556236299151731977420972398819000420179650656465190160286407442007531132273131437008147508753638332862001373387790391943955671881553632400838106359598067496285576259250511473561408933126733493672628976259931337266144125105737647795746044839031943671529417793750019317768185287246647218625569174787612811509837284559360459101581567195890119072472490547532470403640998010920891850644781863939100206073887647475478354182372231472940013302777323218936212151423573533419193047487184378885677227731469700668675324587521417713968500294662896030157783623092565903630312627353620839539111979804671758533216616440285367170286029520770950374670797053652702786765150096281447062624423262463001679891542768506942146549436549459805721766698170351939732982084139238017414227253325022443879648555794064934063444646857097520428595180252144789196100064099931640669307995811654325659173164535010197783961470312735612913902816982221306298773382933309873194988711587665203976496886891298086976839627707375433953295929148116259512601577445207632719228663442461056349772444242874625960603277455264130588355801499469267769332302708251236152835186092359308920581240725936714365845221127664162081443542065834037655586591105333881577332460295114174471120802339664093303705114736585058038421937131912938918069454293191838733361776122929458395668964941308269048205041021339359017362549431700338035404350963669980296883131733970014765077373109473272060178850239095521226544728938791671891295625764434723292341385038219903521773273531563678320678572196039217784249410215006519579013324243243356684976564511665641497396189901053365047778939145346028807368384426666100526277300547229207375720456975517508841428304930346660740212395684979726263408388459765595710566428356584681143902545984521045400560416315178816094859576644954209314571018090749834714844091485765247610636301037078170719472238427373011265465781112271978441908399735143895667529434209291666015642507960167954636936649390890631334836064224468357935916314661510579342723903933920743190791919820056898096919726107626500784983778838017146723338835314132853004238198442985714355899701592508551468766046473704344630582614142413993433244809881117657819812249243585201016234759529098400446807043067619383518085081021869594773049385310000603529923385674016434210144250266856694737501452040090521436327239040041643499610995665067182173582980041266964616893993487901861113704464356235398431944760310166260456657953096680627545702818843546666432697810331289347811399749379494554385286091694082004698635076452568960407599151693758840245048236929927745785939769834066690065996407406313903349611177873110582134210623325964634055888578938066337870628267112423490312700065026590359051243038108817971629001789904163073421098250418594791970117970792520037651383227315384525853594116693519897888193934844089093580482081217755899323440675809605104273076028486139425919064009348653749731150423802434319605385841151917256430507346737139504950935894256134329263695503109451074434746951633697003991617777678017234371920418016650231375447314415713859667921205985090887532595113157943360556877633837446412316357568563602897703039743273016299652341261886332874646418542777005325761019876611668172245980296461744693718621883511435796952022638221233847649695582690499080997496274556001211121079434241090114647631450741091597526583536876190023872088325269315174127206319883912342327967531627302254388405768837041707012671956491667796149002247209807362894823310380171138743643126704883702620469527102022967055096321435292901980203015713806051242028049258128020723347511660384616867632637023784031971433488423848928853569366616560119385247920011124617987817095526456988461771099439990220153021427551643911358032338546681131680483232940204667351169819105205702900394516121484344344680785732228567710544815646931419335512824317516284477896814745184219747645064734172960233905271067218762428452761223810862955264840737387032846769362570814290626585112704727337892205726857644392046938128856575751821628279980119787727001890247411486606410813484616488854094235835403153173699457333044943473318856251943113568860162396967380270001412100519729416990223153285041196252118660957561647084215638219859205499990421161739644317485615856923718507149076219082049832276241721000397193011782656416972505615211720626133502736124683197323076036635991164209371007546579086484100964905224429980669055733405778122406327572581993249876769957231607224193172252959744560353470357304915210476795176789443865303481693447339103177799926262861138339570024619603466164904903964539305353770688518310928849950785910210024883145451469836626370753341651567984994457231595014392730080457628499487498946727278660954359231510217976363686341938095561008985825001864540728652720826396108815961112383251227993226712798548674225329433106874167093323271827538819190679176924417594617376147219519964396848550227108588982799758331807722048876798218042239762392145937619117759080598108086301286293218604735180635256591080309900519079467429499086665074560756630617850201569458217624357483847403813527893052610962903904670843208548261339490926703832603048421857355555382549628592787381800318915288333971494191866332539942844766548288159902692416625101324082697688101791659572948930826254988871490285055931236472629129788953440549807546567364638510174706722632963947375252057520187523626003507397322680507940894658919714126147220661367483270975510296403634583592495600362671009303633693651423438960040704217120817600511794475951658720941401161827330236679655033752177489664500028217147308719062199911215878583149123022992763775567338964374661393574909682148050435158009642263603389199890163900422727765318637032110453077444888750749255652948608085581208612120230040542798769980776631531039439327987789265576190865290239215761918981595841225579131653158083404647344684989400053970713305456023665738129568156745854142902183285716665646714226788848462296031141696042555247152926887009183544134626922118209381328398858379015394741406891264048742254056826262541216802728469697524993181863700528370078479729006698733424538124333866040454341736916826101151443657827850296377478120611106825792943333968808251713240040352678088688091243890213466535472382846627145663549526444440160587275943381928155958471312937997140308503387011545372031615777789032343624354989114949836663347271759074623968577612188551227368211071632673814926872186649669349281981653484609510381468522996890946859724859467329035506718834618214342871618814969703815516550493772293740459629323893373673541200757686984709751455208249264128711580473422634878921689989682404687016118051845267868486866895545398721663840768651230079957267541732367288152700974890246318069808182152238484684700869759646008939131370786536163534532517240576782479389266387130971016838657339601636946800952596275874689478637280626014112850316216035392892792469323603094775053736030524130706682054730212561950600296938664291218186296101532481350061881493058034912183421236859120661399707168300565871996744880028613190205094881979664482059825961678243671242310019575595061172876285039705883319752005077674145831015909794348241837737848295678488951939040071934875337807785917966908521346925849574223589801792180716894486893324979294764596727534009455364373279347534415600231909323033757097984885442476407859427582307209729320179960276722835578703681844386133599547239895893591842222816216762931465286402579486542965294437673289026623703255088222447394310462652821924313926672043479968869768519186423920803821767798325554013038328718846857300938064958706188031639224793152416751642346264208138293451986525950278359614619345795321735762989092844329246386864263193033115496827992958636997751880927828617311652590778569763180391169617412320927264415685011111779462587152522303747988602270089930344969180127805443956501810727634618232141017473412658889797876218190840045512234570118195809951400220807934857400614033681117804670850685335034667063372058688675961042869108478450492550511006852256702710662785356216126136757957072455159413757118922400500739151952949657201160952175234572882260610469817844528725793882099083701636744116767149100341720481425984228844126239330744974720537969344862663884324297018040757747341889211730607598134591975389771360027265420063862179607689471878342735201071651372647451395916829131425309371785505167399651216624659057875898516706393579945624938136174991129023113844278924241017086258921617041480283176341353219547563250582211322471001202004045970960049348427258869951843632283655135509636972451215962858795223336694498234962957153079514500566039173445640248631522539600543184522882321267329922897694763870105941624269535693224432471287194969382560107112016663742020596909879805058171913397009231699255803547088959178301741613448254063870679691396791417138058795878676860418239401105040567906492135273358376862771735863088689486115277687481910594743849182623563244846848023688420063902043733068582649797583704957410785333411912390861568418123628764873476942083095706500158943625210438463576768339186102045898670564553609657454454803697002242750374895979307672988800004725063000134500835650548648504466440287309898877807820185260368006098515223106051470436315191774002335414275984364511705171290600755816734876675753180292139800815151316889415886478883624113862009705318357527217490894823364481078547783299311280638392865007393971386955996820981230698414101917365366838101268473230259873209548400462867058291285896304444612094964723912031587238719182453679108615167986238056261090141450397453260509942219419989339419741058063195221139465710173908180884008023535081382128609716276117137384379752754895002608233010960196778933792270242918681874199626631951352103115018020793299191656224968113171317350314529894412079743898629609058258534775430389517165671563101756823365457834482592816960885896994951477380585027851409508499223950231427653911458773564944812599404954617792263334621924268452699681486594465534496128571358395835117754282605773457093300571319132085915482496620000243050020590077174807801390820106972509415063433365941495738609181662089687506653621464917637337715374879282766810868319266977563958550631096826762293015942469842340394209221061976639502028749826777916876643568562068297170787712844324210610643981350294151451033797926054431338756665055973987767972241046243041627771625497831041864172840531008703447120620332733838195754523089787594236266077614069572908887197103598633743798567851375698224125067130556921637126747431665675943474373729129732472082262928818851265804516296218885407689096138820757536503481428679683540492403633642600877956074802656112205933629154243733279291775264200704161100951200247585178957511180278265007400317072250337421832721070916042747522024100550324715845338492046231639817315319775673069757457874783596660046182962533879687854769124511400687492826125725539429773448100517334999034894020263327761931301938030864254709829374029529830912221176660484664174136008912828432029166468177246222388350233522361215738520014212914857917679065753116904946944282665984834850027297865977530327166474302036073848489066345189008437844309659667763427476055411762331918998501531107112265218702242259804859106133318342230240487283206419620196181468561752835802130515408547906481671001762240352057611047206866559084111682210734226730315754429358066321933617547784497936674798430056016948867833139841153052132362852811853764382349629222437501655858421271841420013892521204552118793781705810892212176711653251153662275035715378714685156445353648714765577958249147399801801626615304347055164599160524215496450847454669576838430227462747140184069427058067847293891414675337248211154767102140576644170400433415617054132994134845996788309959150363158275646058551058260490048986663775504679886034552400585249097792743211483590751318526459436163884814894004970336822476437925029227901012308972672214501932887523006547555057417717080674954253401423721580748894056145842235793816407947502198563792318399471397378359950541707240924893253885508588688427530083919667489449283773869576138626553871788191026944042901998120830853169896816846505136877621711262736862647220731980789710960021006822965906397845282067273341925137315777681711138722665135030034191971589703736048464606347954929538044300065535953715478831410552215766812750274857589395104891658761242341291662529935276886203208769347604477992921867885383582327505318039486355081261708107371398570784856526717232550560043576544774108575394647460401227177787761753798194528425103042382908677223683950902515636348913552187653927287141124394765038350171716738434233387915057951211270614249614873456587904915134772038027503787042644815910514663320254927724793101463539581840169100985547021129215513114882163517168049718639656205293154398141441456650325878064928550047381391903998947880992440686882493024526173028997098970672879274120373335960471710881707137436965999367170511131551624578130621334560339989156705910239244987136774986915981635752844049226184160971723542349046437150604606480572731377512610289586923479061886257077927394697232702504962483579751616335424301110386881811387915867338505418092675595303805547245094823751795874817077167620683727164458275669062824904959541711360711056084924658449595850688624129642890348692177162808588230309207125034876050378893792110187778022202697237905715909349830406895470257557968570387823188083655179842311211050541198940695923363397491325834242364276884025731792726660727395885911258773228657105808621563847710991401970007268133528778823966245475531346596279094265832978348143394868494955090848351389873400911135369642459914633814759738523139848881626977697207306202408681797493733501901948837922316406169248694487028865116142553762339579561783337170571210579750838916940983277261629179027464497735625370359546304577077074056951171076801431920542316807975600290255700992575795334152785945301508855581419179114200099194886019532936697277812050914024100345830853439251032036582172135487797712892785084159335323170806402234677146137820960502422798184584774582742857886172212528738548074054480917793606502387872014534914321861723742204363913712614900878484368406358198356917709930998085093818157337561292315582699642710787874610906748357757635637390924711358423731532935845448232739165186673544037190118047236971627549938333049065214273380195149044042802887529823928697721272204055509914156667549750707717697247546357826077347536862865376878198642999145698615164689755723891817366277253935391211002118692296475500186129574534408452006330430676456173055820811585300292766666947591162844288774767376884122841973986272760328418824719091051358582052699932547037701950692194608488841906754990244874676176372160405845352766027415240107022731403422270038596014396406084086067505729678796900251613299604505954138529621583240652726763565269930408374511091762068417052485918382509282298345878807126190907606539834036458489581032647227621206412038331067211791111139502590434548457929257034859946348337007735294998969435462758451394218732832578145876195888659182052890195015404590342586511206800122406281691603641545378076074560271766512828112592344474448070435597361320428984990184518692990785641006023106760561475343700535455400235621658307074538165088747708610399966715994996741290354277519850085839202376672325725690626190016049290136288980582586333959340171432898542585385071651276418485718442561791318043552209328611334943216063225433093647666760375242593052522162184337002332975158246652186276558102023309493368268954034693331642384566827515293446160110568545217092366567522894430556870389379611797733494979540854988862664469835301330555369404411904329679239321787022307735620873879387922988089594831806550609895845128061927464016733481626279660826160832548780994933562371014875858045246649428448301577810252486792654887895211213897569017736848360211405998498967639927381954345959055697935488317398244007252468711047758452578114657640495937895236327899790941174329452412340956082796046794406653908746737080649778046786261304790746422331634180734341060203916203206721379939658104165767444712714930991181051537094080040123543499315954489946515630785546254605611292697679532620313298021398137701444843500124086469681964728743206026498566999878715050862287370878056039403073326162232546849923786970884649140114871174318224683118253833915395573505489439594077267321750739608713715258672338146133905086174024506042578793828872049382532334135675862923735014084370968156358570601333226558210413131325565758340583592124479454641557674768017081457833387321865035565375032386497610120561441678390405233619546655142259880085997116152082948733331127204290083083882812901592115166393605134799047159338582475458576771180848595402321596458993833709987983493160482610171176452095872999988657841608761090196370704365168020196403619043018115328705104783080466618318337045340948052759361607857185352165704204928389304516644153374700918738705441333261304105945097903702872192611676553351058982316965807486256055758734937376494765895285059099750693386461277002520117529561298256027819579502290870471236955411460337024521188037364649841288835202528005535449070421049952369154814703667670986888064111698311651042204279579521975561801650858552749600022965414978503718782882313171476634839793782718294859788922699675477513241747176113434139012351698185440210127569881466578061037094023286253118222670793458608638096197418417276365344843042198251401980989009086517220698476618627790472642726965953420266673005344631658767783654671834172661790926946026511770120405047644782326873066615528608908264874388392929951949657563848519429081426831928242517272423996035326134480393520068444927855802955020567300702357459508292002864201265883449702847564519847792855863087555365363082518245760733120396774885220009280107892509512891985902638394334894214691967240774711524896252302161780584118230505145929875831065423017748456979640606679467116455016265535872544848717177039648327925784808265873761828692111004467610761509476681342347336424414465649134209108194441290532226181678995380742807253323283076884230567829852900793448664913237941401465645628960782150010828216665749746554525964596360649050589199337942815402286853542087161782242276615160894774090605093937796144012842288127731586960110871653006189226344823650889516650225872023150536870020238322488626908018296863121055566358544917561934539635852824324239355318960657432090831404915890878448507558479286528610355872384629185733826793195340258462183578494493760069051609065512068578287463701100584635376702116585660858005700773172851689443720320969225127066210772875674473684458254786480214961566807801162265952737607816054848552229442497704684345456885176504321100033878349805477723033869454070066289176284047297639974684595322156546454133951922104248525922226517462428396536473054048233592651121758565581332841350303060734914835748557401167334768671297720268571335773920933977859051582906644157206775763657911622914810400651881672641345147098120611881586381259365770699811616239923634453951726772249715162204974178850062074309990993761369156670850337978211293658424204556935843594888028721136338077368249129853442689117676691009969104715881599517852209174919747679403633179170238519603728616876006005049673390513557488477676272717675691544693749702485806878574370475348133971833459329371746846161062791858364004377212905934697216393052496852770764840054019667700295692653011412764800645862375080410804489718527095933104274852397487415127605502630426008773773785946765617096257153672778833817959657659123857594755855417926826843241554219177771417412707024435072200903827291250819966147168474708123613314876514451311962252104113925791850185994419753324429736576205120002287274878323361787282725935067421504399205528083288426976297766958433417853914773265349640925192997089020417040205743322054887605820430548079396504790187291133667583011102784638671115444731799898150958471170627439194330081754611366231031819908051458210007574023656674663684972590768292860811338736166408815067432798989542610593480917817174512233958086754144983514819395841091959914800472296274515180150280716210589060926125123318370115650434218230897820428223176252702413368737725182663233777870105861464795427098135540718802984531091282394578599039011804303070769481137656922052717330159736105604293004942294364438176840292617228169226201799763081069084265337368039573637309526787732877102572523072831220924237890614132436540246515262104253146467818747450378196839055228001670998904519794197864575210857155484837889437990254014002068375092412553820635322595399688953923686212562380265443788443350432410974645973774445218461849465112325759735610226997768388143434306720067713893051445788397449654030831811289452772591541982346300483802296334843596223196322790800756398825863184373253878170978990475198257501785985563568093025294978686632423244455530791368516136515641218266875977641416473898216357443235639486396938832038857066011267213729734350319604372635195115309976192519688686855759329544408173724749080950159150348385064016794699112124258282758874499878866019493694618619223521078194908394129563672106157577085465991040442835761581112656971051013360855123795284587407821483720569179996423030688784339542518060769718418411848523727673611590160646784195100566549053663409450633188107842840294156069754178603698610842467103998862276949107619245917558929685676764818986379323708626126805038598957693973072249743842452017160153981364634700356388553895209166217754325857355529493664676414312225970913128324621625474802575514821280824086230131745184423000672549382940358471039056223951546885924411668408884651200331979845392671224070996892042693465598711100039306652510808325572937574896418978138466565944979785507703133788919515176990913258646951536552653560935824531981740050853712342553948713006444390764048036791327065166804686289851687400815595827101162183939099596583220350534753117348634641153717493894705611587343547400702435519807012320283009024690322939383853640121686659179947582851532568551391643454961411086542538675037874389043397091105225719320346569747191016444833700365873853158479744845619128949220590290081578170101695250175881020015489287718694617954086929787733164904565688104427887299594116106833719217441551018180747608043423368536705228850301023204451443863826798114475033144355605780464379551649062103594864613740002398569903273537626164214342725519563452526887831870788307487602711258282207889457235614002922211620444185806618712923867772224555443447994396481429648993600756467678236977418750395017834713531506534145276982137587541391157573021517323343685512185466047106464728272482615146991550823954162764458980199459162902657330870390995776871572384163720320328187682131433545204522443106221335318001619548502585073175970603526165246049886720560695865645708494050990431916682007385167878527428591103489575798803984972002784468612574042233630914398202006929051195336340817216659154191619453449425676406177739496449377769206947889326826990483695028816077409346531108639774149224954229089357791185295597234364465438781006592571417958621940983275580858592270492925199498057107793229372140953904148767223174060700102250001166053850795164651212356615890141621740667057773003349133193158355184937921748561178705208029793149027056689640052787762285913557748112593760674790999243019242917025677005914280456506179239810033866576559977149451097348681123059674305392199285088698914431226693139928510957428737446867614489708564934821223879096559016509389260625926959162638765667775081059894637482652258372477630748042181483519688764859616528119999571721808135228616380432417734980575451530350197372540539884069205679716782704064337097194329408861566591718722053133344938930073094646949161189174317876746519339867914958052490973745155475327510362490968594445442683889371639130975972799377603964734367579679706915381204787487143364140722305046982879808423534777712541623687160187867058482052033574794028738568317480859376174571732152285763952852097804546578884119049891483275506122275974032780353455407747944575220978548594874917887148677560973292015385051141911368559161724013100878411041467460689844378576132795774066685189339204616364572045543978985616494758620898755346482187053758717865595646887277903972107461766193482770499338893298836201818987536656628394023575546805940115712940882484930351516182922610994515439726691348209425030551394687145876167740413951542537510989602405706087419010770973693159223237298398341044772350328619091663558234909534929246450929724485688596332534575638837340491928746236162739057036776221928728755431961974181488574365774033793745598597151542876174306907757272152121500338360931606737669534801490943922798847093390060419362092909802016716691912390606502548504016491430411603709027988539407321302682062085998265044012634011003551738554931766770012682965529610973508240834039201309080792430642905258725792495626853846245113344304212571318848632437408397263499104454176835459181551677360424987077992258802085246508539513403759267498867799663071513932700861433633259464476849594962591444683777550589311308422368071475612002429227752407414560136720453985781387690878517689862639691957146180522167194679750196751929951351460945594209317215389009237161346459851250687493113967464386842751784135507732513739794253319836608943273394686951038572675805579393031029354833531927879868320904701274040799863808808791275085094356292536213263237105929137395618047974606472203718884183964074721837775038431659254772788964387642097558726726043104197186480240741060309520696816146452430750243189799152670873633479265058837152048550867029280683836115703001883246483110808596938556254103025601477108011834780520546191949427799030550463319395473692529102982518141892281767682526581700622514588364560105500191642431188960652337009503546512419643424393473694932124524259877134384570245275102558482614003751078260634287340655218656608835444336489509450544232314462655495696944053932033726844498939213248985169190678881706536788844205455660257442640113443197262997130336284368370719530900443678163024129658051889140464929693725062287346795641982415450792791807295353130052371968548417153997700023945701737272142733240729286769696178825330573133058436778666819661134676001491736064883163516876234918360747255186407269665538475728619408514286685139747833264225834795913211280836582195974789038768311772843656940538449438270352453376805120038517654058129045752724407954127522139460004717074591443756660913808411491305947428602128139944144585800324470782190754341021693351452062507671026903850687189526951500210060379990070374376130028373313366503525088613685686508871966960652830551938529694859317045449764865858299759007906761416482529753512336688073423044994031426417476819786491447858123490264049070195365187460186942456912765435218937156646931246743376447094192894463044453672978239447060366741241909033320679407289738742648867050969795516794505719884112543681784458288630680254376977384496960895617427092895508898820911590413436417274988719953122589672243747433072466672802563756885152744109663369781839081183125179211080774780455450847264254582279463270007407580163710980542246600680718998634082321535808760218130595691827857269471688835657065169413520448804588111933402347050414683433860916930420899808323949393285535056296072760920293976709126314662085865723114370925741677821523541320698246328348380273167849190813910162417207711092953457717559029712509595141143969671145501152816715245764707066950299963846926296851862806991973715750123010253023643642458554933801353112389312399779751075077098172250832325557017928015404823646433210989393318756296793960165935029759329786621950112805169447525089910135487499205074351405929515286623052991827655582103471694455871568313086340800166369722966938605833138369482500618648862761093342541067754866099564944902489729551969828288270555401687009180275815861732525417508964361792197763182201724212179692738472906906071719870670279391534531567492739365920411658417254676489137010226710036480035264035444346702275372183118436069572471173573867254258485801245364827653962673839809386351298630231432879856816781847512837085177363911204847607331858333152559103550994156028353784093286555169851363455783563600260080607690590824321307243279910630621686061371758475502626428672632640144382380533877053551363699047706024745296188373026512381643091675842315928526197634045171550335525132240868825263928460480164312229686626948671722453480378153542621863722636039796192631462408711201009240486086000083637379571605790080514032291152940707405902016025255090522824205585256553986232369251573736215995566977141476704042459996454188164914592887746876991358715941897270930874294769225746759655076032503234020692837153490642236461279952752188838390771914009216100215361637466914107896535528779021182409872389141656951782626611395200237250832245160795244473326650607344277604385113558270329052554502811497760601952527641904746536107740857070343599105468480796796862647914199093474564625542071184920305884522474812330063434853861859638120836171727510007052260435385650945251832492339662692729791871675534326565460837653294548770418804585040134979676581137521574437412389138243103541937497880303015965537423733959042577722303929433545152826581209857024102883992863808098933676847308922801241670396465751894657183732373726664666621027771400039389308270238218346591237771032443641317232592681006557613516505409687785569910581534208367843471852480160733490989478768951878542165923356473955055661374431541734630856269295564978861757204397630343628056986456978666791232927880247803464581994805828658264523450148154636778897420166444943758291283200650174254936100247130158344089618702336119105799759091939015700376794792006523514853360643128480393491598039524759495985451866347302674272362422581479436289204221594154248244477349552119207568353057175896082695344762376166498096128428931330354175063823512070785818578940288567790354059659070797896793548290485270478459330823386441756722251138275936642536567186917590240322861415865153971730555663349146730519440890272915614417488963062157515989032070441783273779506486650939597504309400981513406919025174559050048149058091340516510932461647387237368214725510610751964262343402056707078177612151176445207742670481651586678154753209954996438299502230816621187478237830375575054528498655684650689128049362153198786691615457157092597696256064878437260455311229434170540593768672295858772877582823042030515038390458305254747860946030215851783396418504660925020415946200907108340452117318622685869663539384634145828660823316554297951790901760933576683495128433235463264741758679306486396683591313170121073276863757737511953834291210631157245988235359971526464017397417186367000336558527292673400800084597923954754927953560001656821771961160823840060766678634692631071793362918900250222851132182478880362255269461998218115927951336127033605038319761901434365092467041013638748631059939713682900341793313480008575467050052568341926398235150660431382972432385185108515247502435914845117892764395444455127708120320242260722681042078406412986292174106396034184317777393774564246371340452338374297173162512170540204445447448756560580260418255979494804486682720834666893637939617060356910138250240635147564553249667197652044894897855231355584670921568787725623837506646674352029107555304801568856180923575718961868504100790633870233281101009367152405765086570827146541173393687303085091500733242192563059225100786534043760283005444246166054482599531817487438100619902259312782432932787409899892969631186828401521075684128667819239891458071986541711193124892932635606804910144950082143410820838598922809640881500965580665479693890568724833949390878461629393984489650047251852124675578383610769597705212233446607262824747907681793280671844331196790489886123383707827106704573279908383946129225544435347509034445788075129552501810179918453396369150905387180996050724061104919387001376824045190371557479649310158760879426511025594348948822053912660418086206957103253516168409408703634469029540134665819879016238676695087949439247068115609954960650866351358030900159754967253091340362397681247290842677743489603512086485865738000925519294608768794703228146332575035860633004943022396519735550270519428324832928295379706800081783593788732509652567400014348341392895119360038410585962186744310047778397480600726833619133359107313307972175076988395459847044896056152300422914332487170406118441100831491290869523440121962004567594128219776804972447521117040513166200245868490398666462721378049219387298808071098814200276946003170784033075218887132328721044607347678987515827319511582626578942814656839311532593898854065624331606707123846285049088606328222101343177974536071162544954364242385799108360645335002832888385226976314785361086118918337168947169918577881752320467415804082163304754773636463360724771596054313400358025409586589201968322213385249937019795225756510181256364339674642938913647706836224791118665128814099748671909933123463725352555339368424589675834014572338920515613172929942669004040063963822406878650311578520969784063170202966425948719611177353988915559261899355827679476185891207814972592397040914265454243058466874875553110009490833631169024691959345567434184414223127237197793990423901057162148561558492303900644057924684290586617531448490362060584569978961266786739414447860520864308458487369174762856275129651141782563382732337865019461243697911480070269426768103247464105793589639669960706957382570020643915681554949981165157623674610635171522126493676729406053149332053112427285712801643028262611153676269575245229303270270373017654895470741836092310746623493261120629864082335809986765821595683734151771734095679259454151940926288734676719199177483084371038934637005698344503279800315484244090480855589086283731898542823159400793382168462778517221218749817953310312213468453075162864541159049256736433511083863282799732992409031505192333496460234316462788936123277287932624657155481004285155151023722959836153469993013261234594587582138201827609562690077261302746564455942069080193452533668678809359958672009688337499480597281994721821479264908553246767699342818464230789872135608052917872523008994368101097343941034309321180365579510783845845674469851070640801396203956946998502836503426382723861969650310435650772016400583345557097306009151675185892804234128983755908371824897575182065419283670189950595205240337671521766613223834870559549466735215725900564054764209022115198266248819141773881051040295099829885652211641058522637725928492879358721439122075922758816450279795493270315931006797952402458827228601277744417743076655989464599767263082726249195885792038437762739992576062713291077671857060785320395847225638463454955042017237199802870674055597508509586629126174648672878043566290004093720424122718131158047670535340744111376516263077067915420619907087122944661674373674689125199656047344646225352205152399928270641922420312220143082482222113941152154013571278206150821605057846534992434265379797086990230997269855068719630011059313279783145547585487117661291684184338207855729978965803126200710960760801666564166682584793828995830834072472227573614879283884331238377581318714036759298466931429380730816391453512172845827729470950722366530983819498326896658369331325284027302169175541890228649053216328458990739861768065059808965012584105785250997601508337557622551315237774523704614277785240137167293698293636117754293484715364760252948575702091768941855194287137881013776375755924126543712671687002895918858111526140844200599733694237609698096206703426938174244009443696006265084487489756256099577625507612132558846208418704412629500309716813819521318616237916530274987758192291221759516660664749794173365540763283467486158727863228434319843353385142988230016192874094361377875066889846293310534945403352248357719137837968804428069837964409971984351566418667533019325495842571677025391432638978762998350743676645832157727651233475040895411696345504778176236880163243699627373112972685866221555731623676449053032402491892706778731225012814370070529304056875241443790610082862086742254183165276784026335215328428449754719423442520951832380652569803283125647695786355365343132168091542504002739291186119128528948608820357899409592601425474538421682882609688580334103636621759726392152023013918528660353425932202691708293399134742025475360669134165742623820171166744284484539467118263094833801776152341557533405418809638841306576497120001113073085867526301760682308969578013828377094027780644262016072774412129580303507585781683366422448790419302576028876596090068373889011837519356339352936546654240345745887857460053968006601579067667366292966893328668138928011924761888698233291837606742811040554852695307510998713072739344842154688066775433010872469605946542627085030207578031871314067574092007978525578859773051559203809156150612146740181872630118365979963749202345388894467342409692651538676139893824181930928754965158282217897641762416280499895596484910485251068920584821222296548665626624975795825354033339554734724728431483244408874910848460975421879138891728587916795285367138584432686962932317012976194076976800353310336512364204706411990524839609749776975538400528581404649921984073008983441961752699216972907754822172061467362147213586866921363175490028544626370199889343307405099012044499146137407761617911379015579119881938196008297827317580270924004387828553133192936917245909195063448720439041355922401754264844741840719683412833799929016374232969967015604583417383281344036648464352808978100906110078261052785793117856066733149921321834372344317991616662599127649495704077186039712920416608083315933340488823908014093640224251626804497547893424549264559195785195838912191871609652807454621030012176204390772909045727943950135519498972948048264843644311423427557586393599629828475679165500588645306122466353972680855000147966834651435022205148328395705603462266785271805805346783524026796779868779556007365838977225383186545089368890278020947741681989575368887786994808096642154254718768705017637063682761863793897415890550234448418826990321874736383317509833376734175407795715829563563460546027531222147635329897613363169490320137295903111772219872607120904521774278181061276184577498305611896800294248537176308278664285215835895940296616028978185655450733786731014828984565662722808428063116786678609897890201569980192900543320480691389706599570040538426180611347691947551323006350806031319792402680567897777521158925817599671741511785520722295387973305013495337326865092086983694604419898941867043633496917033428117192330036813068731438249504166326311429537661932385811827992590242791968411544409915897685990637499645952673842364667285212227367938871875136903036315274216386538114576054741995979618240131251405267172607992205291627690184896476460825084682333848154793291367912823466013397612997834679112269795436438488943295568915362133275593877064537455891601187436663251484218262191745281096308783690376129532898318738352038594871865108654466327666118053954321975764064376294356233613491668238508387406382809992150191904685363647978839115021635105900620528198526239978683266032729608575230917187470376545199499796869060153738807888098516155022045007256854293010305844168873487915078798261851275487460755380980177715226174060066767987752292764437214693323997388066687481721683783187903941072939061984608248203203274986831447492649356297783703235848790399732916693734634281321860874500718301453289519778520628519304136156867679620618386853846521090785153944107623114701488069737742062580735264249353102055561377839821516151586127495642814636796283707470740163373884630314211058239849610370933781349260694140830370798887405122287702732937756593247904401855451548360862265784528203381491305367826484366025459868390946337874617675428228170160219875498986689413212828443802514050857102622668066564017842896380389680819278967914136165590250706294866768923007962118245949417429535453191033332540410398694057652527548340066370988502934441384205320623136807678876461079962267013494707657073278211726818625597909304573801829276185231198360124697039318601558654215357013624361577210475417611723320188704948513157523295908018726069985451838635813586029922274667707972685623347515471376591305590915275397469667937308993512724108995399214514251861844649962457858094044781477999055512732061505195355119373165971306796894433293522193108444635803217133165840393580146429277683790180806805225123878704862740026261328211649434208115222617396346730656842324069326814856712720268261492715232083174962975672712141111867996527024601519581436538271226246731630954063186428053325120028634159823349212104426391969871617320347049932124191416648925039012549751045974329573383476869729597790216557925638897799952750990753228534627614618082346447505539338223620344309482183073193098650910939996551319933280905885689734071522807300846013072675909741620003538779758438295680899754910172013551617354523099182525564114535456743918924863632315450889494723817495184175351676813873502965156386194710368155715977583112807261804566515270150743372580640739581497975636643235861544073627186007709923769999892642534537081794939645849118112997439508610321906431328432689663748365194952605595535719025433182898559512005384577110695266426561092335117326828501276223845209828093605866774361015766269657154735305972718994922876289335539383456896386152240343801616070857412318647064048048817089838388767504002408041112046022077598573110424740660413193752905541851638743658840859002235052275408857004566394748737724613050025652047395510935792683961218399892803072501602600635802242838954890510794459685168977326574867835217464720763141907331844463115891056899294730529319357860082478275734254048924304921490908588325879654224868711824448714980222289817611883173583933291390476881991296818808454498060672664897323110967519543700802749521140876362225995956017473615870329518964435197047046595767287550155581764356067686492466001317730355009332118456183795818318072301950560035469999533334440597506674231223132031985863156399315629654578974640890469918699629616319668890674218554937699468050950359491008390627501454526276355182806271348807264309680192893892193753768442864156019769975899468419280726359711358383492197602655480766455704120978285036142145043355587402737722959031683986711634540070271408180520908785061009032224869351212446460965492479408712684367924632973321154877512659261555151539850308946186551367779276146294189529269771588148726272862027261383045812842373020041847929719646279521968057079678026135346517278451994154046453242545324983335059620971463118411343776920996394174913508610194576330531833944639877288944720820218437079247232595744580578984862115666856602863973466045109938618827650456753521871355282421021418473988202295793295103187448757422890851233151427590328133033882417153169037975144294953734430959457654443398057447331747408044527587833660184040540786421899653576028092836969891831257309656455590764159644163336328310946575252716683893673076575816646834129499891636239640676123438014368452020666284045403501569569365955011911627821036743179629801198843079318527956474826060458526328867955267432849975211366042233971927842444824044493630044965683230056478215090676992651569757242386431563479284457912625812651941350311787952842467866043834905492782363744002267748868960390267233781505379422578463135928014547020282475320585846272718791206547961867508038681204548750466596327266243025489784008412944946085485812293355517495798099415707508820309587605247068336552867722395142251101590624690903550018611049197378084036765642666210474051929235705691742412297527309830443621272411012025849515101999558214597712421485460909524040379492146976726694807494609489291727515729663773145921254466299882037155571867270732520479229560492419180862064979021803950970185572171017909001103447406407299766167688910566773309649427161319885302984653177056483972981273018630898056162836187827102645968102306952140883737780783128577118568126272687416659742763842312845195176927725850779766285473738796688412028161949277874854094753349296993546775726644610628567977637824645659069149802744384314963631501668565715436583300405085175818925594113839467811500151744772831440125515225597364378077346953468812119163834714116006967987952117545952168597488340339348157905218524657703436351454807293465750280940318001469648648431943385217750760684155133155968230811370798759291639577893496499152118232491223947501815584292684477684547582702397504368823333951700523083510847486056014417931309919169182392133019758072910012387880533886754538397263098071753281368821459080664199056040637759075393768041308623904069399257113899573393886348452113314499517514529593515614763328608791967340649651879079531919013439455387537653945074732077213569604722936742150269445867747562629274204174319234548031594357999061665913334363681692669858278465146991034214985852066894798247872639765683196174046382573437705599564409013362683977539565642905024876035633685677222387926324620830032635171479067085865427666575461473379840611685707907555170594521566083630086079675285950011210077420240688888506977308719869585151992833066708102044307479582660571710734569758772891064399337699016871290816778336689114874717437949508000618191995685251441345386786317370526877024193032233259384678489673763858010200939298679047063451064332192517156084335165931764096972706662626917508826770892015059537942257454817907811973515376489538454838369496046176997856139162153775529265153102655914716714240660765331237723475514208655459725817779724885814305333006720761839155950429985647574940204013244787167551217193159378115223831424255152227182567503622117827167963565533918283839651119531723155946061750434749456763955874405732071515579021518348710493851729906122147018624644827632473020414351666244328959445950529068443358444615584569119897384250825175835078210706519595927638069044600759989281975031698770738580365291087777495693436793595390231018297846124489913323673646257052186313891919070809002100833768102040520616217854186632881823102624819118866987257820360020404434457368894211141881377711845523031527230030845171997870999626030833425612209773276277387179531161646407649437091906289227370819432150793487494304854521711110303767885819628469589987727280466982496264422251158228711013946059363252275944608769387632978119194609812187245687195482661481420937596366184869535532022479478468651649720872215379297334808649081195478396710678476947577396741878079870869626924260531206593107953491111633774047445331890764796381696149235581270128007335531243603813853312038336747046428102887409443176721278655609200623879414820546854189654220902899516459890956231064329839591364679437679085069233992519789154661417290754013933360001621260535157830429470287822307734948597301265083450233862780294633948654542945665469155282440350733747786295316275351518101739216064163339674564437287425229663221353006175975624035394251932850237101267430901476094007400285724668656770080512031921875145759258785586251167759066111969698093398715040537441640219860081793186638525934649153531778318392625808320299807275969331416122790379502499431976886299875838909670295421858945990953840487590292062468487833147481948159247884427208225069803780263190907461675379199946427358994031532151913510324824220561670398787583327780593800178394518850579089304328376300190157636891585209384551618075730192124275698841110370229695451833996831456755592307273154274716572537782616787638042406059436363754306895030367078899881545275648492223011615045301857587383263715444102681748432386103051424876529269145550686670677111891367981459043945844046681281233078995432331591115322399101480921036057094135766079162671847868614411671180710593967666012596928738287203635725511322281662362314851298553553440479870728577982710374218702805110417004461619929045667937011072512206474226440566099390207432695929054432706200529727512848704180838437479885071998736744415276937088808582505644112740599530831204085095330793946942646386259111964528295851212390816997310971293295154099270955085451160389369950661464796620965075504681189960219707471073520515297394655735139558665719021164523367787818553528837007201643970734274877838997296873671185261307768572569101379253460170628108518767652639832798869451003244423022284988118798618136514291006021160291860696016038194089439738536950414162894130831597305632744424490744966454691081143360937493744158456389160376767290098909444047680376133395114087456700010201390664010212555328232850238877196625347220672731652761245037284709564212262474850007721171445931823519325961665716120733509499078141683880783235324245462093908244125200049005312850481129784393057298889202820598581539702246761870503659716954532309595075653759477850396180663169007310364002527714431930010235306032527196860692364777050135932712770076537783532790810500533882255236492365555764649885543539117417831619580732146159608865099819397952162679465254778118204370552025402525972272112923645825812960169811270506883731060967008414462672732925828493442934153639596942162517476580416307373071713424601471653817196257214217759764394092061752008436948346617886884482955661475334150101744380261693833598359556850380420912426986891187446461857648387705984327259004887477716782242027867720800594568407035856706319685421001708962134908966060271662140999943513777628784354457722144871722915376245933810175954019956321638517092183547979837615353049166917633153062846409415513017385997328577136631898582749231974643844142748628853184190376642230909160127856255576527820538946243379661359368800870711353988272096695786838930884216762206262982176299348447911470680764710299374279281273034846987693518033424188493374554535991545757846393587853876579296088370755557935542867350898472568073545847914724841098198754638523704210136093562694610449435484105968191488079825092933862942205432012796900517100226596198736319894120828701422577257564849997294186603959586477126586989678752086569295354089393296512365782738420296561153424178390560207527208100288938082355588778605105051565961766740613587733418956635135417011842905200603535915219508045789714257067568534740933227937372075964840942618065975036535883274326331665616297493809672136583755748154832990467652924681419769964454928682265911605155566529105184622901373747501475139398502015814108881328206550597948800408996597845939401707172787758672998224080791209134714544349459998055081813434864449126819657467383583224536311487142000408723910675980336337561496630505760034906066244566177466546498017678526558743432700057205730098824721964073994229132242844243952346779562692797150567537762702457718518199409597507305661267557881539308940871004365674340241007858469316344041816510970718707715415457456812615213811896337800367435937871205983611799462892808407124246817923376699874604180178828641817408401079330468350176487791436066805004578298655345367611622998761559552109875305237444503122632331848971993223984044041585764189339516977823367729287655509548479491046326637673735379146023141910222400630174015581217875094416095979210151155133648239791277077815757424809717154171338755247967488377880590629670905842081581888235304698862141169495637759985187651041920930739314764149767902296254643064323456984568837466526829293211606210154251034441102038817362889927037524369371394386752625956963363535942158029601422501757610803280183112193401920604055570459479704226556353561602286721482824098918671246471252574500083146747630247078436110730464968208423154978641331248519020787626480171902100635299102973291022296461638981006755250395947915348794579574924633674945079259765459629923896927892293320809329727203468665852788830917898845863415570166229685719515546415688210313725828822623138134065534072093891131748191067351102011334804360382454915196322980191878016936719235220157145084066610008483313527926067410493777401349631329770787843274324633530609916864401533701360983099919225295028343996020249201922965532692527983062874479616114873594513019177363603936823767493883789143367990336857842259655687021701787957747146847666271300475675692567218628273027193370286507143902133239616599153435537728941753637074559401637713327320228030505111300375343867484261334005017930714106113194670037657080366636445945323467286120206615614922851215719513231031532409691932640555498751564709569593525439826062210346163932038283627980345931132274495346087693190865198241658365330161145231253694090557183292042303907964701517666832183362742407963253234403645450051299191143794965295738117345688948899288267855670415184476340283157027492503821102739755213372442681250674753113718841492349393277789832161054460710431418439262315188028188282541922184945020332867835385554917657264391648671914470068871343903635363921459607733081069901295098273398610714885753801946094036616500571223749937505318016569521908577369377238177591541504806761982738224428630121604744801277078445005333602217317868733180043381392837516888843106999860724647476238016449822992919005535682862614784483664829820143289483805750131559445201251594568048337784256338943294064143326061000647437335679953113124210652912182789605496481561606068730665279419946895526618157223284730918727951428560982860029662513916329689590537099915427692693324310006397212634456345241978343034352075063623405527784767403183966532904639906867583814232670980813473661284035925785832871994086732241058558047785324459841430445194227190817185669045312569318151535359178808854719228239074372070281150667711005309687784287371913835124566277684964233259713466207180311452641690425470348439002690629685655699244635446121461189086407584856912807419971408905863833584530914650506498441524665395459403126389580086472203650992100673321732524531686801954801208632536013414763808796408476203580074725587829040613464809925774762102511006965563525956103763704613488431043067885919516397202836587102771986583457816743739686212571040891750622778477943072925050165129491216789382000118925298227691964237530539031971185199332936252745793824745374470837282494595238507501049031294441131740633467041509378195086714636017637863087462802575888198758550791204805165380940081787296372202550566110263762901540416301454153808424720631258979184951813392239986197515828456974449735524256202018798815320936731737962659712812962385571585766756061190924775443649498103870358863032907080864160963611350922314942320607622257183048666791905149040826003832170114173649007331781165442879997386184101676363226673167359897487683708168908198854780940502714643794781509824907778016330667495528926185780069209260569434253398301843987266617910823315361367674758824001551202911469932256459787939270726104209204794453580756756777632849474569330668223919200842808609409009792422595037758599571771131307411973610905506240003918151089834688244115842201883276968470424959759195831049373309119367863194319178669556141247269579370634308513410668201565240167462866740899344779991830969423556611798531744542777571404543093288521684528195977359646051589252899096916956516253762429636564819965663243701700998959492529054443582818972863131052466198530654436128198841285143024675221499532454845162514790505821485697145873621617514795292508146251470424658101861203169936127165870699561224862435451653993822196685345497050023625090863000100892925524772708342803543540377616629935228449925853306606275000706735945880287143887291676818440197232091073332193741746161001190651882081869075085578409466481000534731760495852335368882276697885827231858731360699839908160264208339643941341627249056466937136180796060401486131573719950120949339376266375813416583552055886284066664615640716841851238862868917413589506743302155408583660674392925927004238952042198082862855450306112267182570679711963104047346273867864203531401150931649365910788578124804315794551891521859743123587342369127931334207712056323586158628730659414733422393770734261297895891912889841160338859380091936929209079187668667115014976493552967574666087806160312955062331902100398394565375789299997048514031186539450731215383678020541098508640130007030364660503333792140391024800280508152236461144367392340473764483441982996889931550029443480825272529556872003714129818923336467073179405838950829905434052084396015104663386740540233485145274111393106862060546207461838670260993842124529470233975935877280478222426572434328965638205033370335955355026929447259628093049893567775539594258117496833315457357148829365127465051702162952299704406199738897437998969386406911866166168808611741066326678807587338956803754287463000387754881076777854259732886090930883636334601482573274999645710618682002794014851608178765841312280586151827318802019235671657712118942656680643613420984569300376399882466386185662084578075901995686028155059081456754839819313849323169738846693518767587325412665915470792843230213906956265846034405756262688699583215060683856611704400274897560331056257657324711882269976227959153893187782544677909981059192906379916918185947354620897155126062899980868239799563978363469879385996445132541462345718440651745612713421815508914306256154691379468279411878531547344128028434672614099443720958146730994841604596423945398751642336074114875791411476847395371335874083837796665289325908568895433736010426271608855915020560553839840464971580463403126766547466348991683780853346340361401880387932707874935360450164333691362203892162700519012210422211863667632381690991460384967654393348139263729377431547590621434362651185524828125692122528400732278482978830268808629732795500390512438574248536888878880181500179306533854389517550955314075824379862425217969050220089473238116580424626232476487050400858567536266098985357410543025352585230388587512583704468980705322774164520565629466109298366536163886335416787671580893370930872358462460709075787091835020424595708054749639005581220547692120468154345105276256520582934826551032279508965799825057313354283580591667310145318341350527435139771238902534674890872898519685970538292865437382852532247782779118181292773151570988266604092974468040670325648212476809713939277995763722047432361473569702203803339397487998608959449790945945061513400142298300049136806152750553962223558446738741399533941021844447293300654771289703938241014879291402199429120751695908588310922020337443180460822750751063337451569675825586866053383256525785671240251192165686884713106983933528690354949801778802511234773146778257471836917071169354218336602931502143206970902913806774180038804758841019098430500542693297467264902151765599046840152051604290045251288759865787205030387311233572192427057603745687036908898305669786812368234386455521341862150168628567219879846533356404432296815935351027677183424018292682823940731850592192953678943875953376171090290741517945037758173442953602025213029268408996493145862482380633721199452809150881526265289010246399370253653120208402532316179991713276928777784045242567843748922001911319565467506730601507361880182129305087762413893034702362307722206377542249168047368871378794504166410314359738797333770630790360400741217303164768456241700186771058034202810628086724438424562698120001143702249260010931080857775114074469961495900490776774604021964554711296021161245074380204918055129300297880472960278311631378444647121106111144969099870421419574511318183795323370102909984506430029415439148840956436333667683946236123952167973940151092919627776729295573323150281252618397143728481348517097027178406682137656248637933091077002680174580189333005370091375964345718191064623641313976997357910350965399987590949476416436330267839078144603404090375119609904158395480970338131872746914836282609440338993267444257721526372162401717473828344114569233925062076989425153267677258029676147961156507194612876622575206571527688554233297942021431652734828822489975701785739143015354865832331445384434448925428171250494400718160447169064222451833390695365566341155517727319453918338460341088291545049005702516274548381458898101487828299702868010942222883063429797133802169935196390802412470433496126068608554570851613215205592877815683786187825670757979491296053663057241577760392220872891373037312244425470972248662934956114478749561308327598689733041566321405657140956607347730432675130893548713000627976109351331297984987742907183710820021541657628960856301045326943942800908612834493443645153392137205130081849393697267370863762233564019930408014102084542866885360547031733985994916936279562970584165980638393584092148533669958555256451407639315798270652401650364269059541802836520320787446461936809661435472396416084364374806683415374138726261818433026853757168342275977621481291868441746665523891799886188112706842611310505428214994990222382998562062648278623516085001753695381045476668706558346662215305817007931191680917240097621745919283218375300782706531646688601728398155842398789141985911113427182414007901795629563052190865383201677100178896329452445309124718588517006875292765960269078321922083329230557012151524307515963613070991968714714318472781912284658535908087642078732407103871823927802165637813196931259649990612159327227542651270229844167418677412811724898549336096974415350409591250046007545888913298669593634471490312100652371978292675979960615513708282984470010210338841631119035452361277025088160812400306176178253180928984007216076638939945873373810034975197478396942452210033424351158260475310031786504268807375566835848718752479945763661658259194250451622940223296253682174888402932709580599888906076215337533438774391012280671036952838401945808186482677061374638837799377358547588785704443492715263805711695440619545210283262320797122334727177073805661517718399943625808360535218648965013486305472864883490337889378857239847107496463976519943901116243806716277356972326139836454689020661744665096009403570878861619704646466028768499641945795293968365895007123280500716151501006332144921606892954340061552116094846393268238888378575052105361440879622925005602904376807174309177576717023165857579789186585733050849518905431445577150019345574994044599589081873606803403321535176843418226556963213671422750960688958985265275308529899032031783172989686345539699526118188663520275186041640971822508976741091335426332725732038787413385836096853864843453849195413460961967208227793442145635147559804724483656748996145127379071008066148401535311948366705065812745289530675913959638685901593968953981744352056419215757970024246923420699846867950862460693177960804303368642642320674774638282795947207565460908057936906234201195188066219738112794777156555536297078953287028393695955681850672759131392049613378186894259942471818718556146527872619453702549068346947882405036589607297968196891456772362572287959396819731346304494416352910716867596784184824798134400428006090988928118367086549973332983303291788841357619667489174106400365367463990749015632944029410438521079545933865593924752382460411019398691378063337817876128100228780907660072487160165438936357790155615498987163658062913883028460131380346265113485283336376635562431290923217852077555599107247470219858041542980963151039217556216093591467503533153939291580111670122539044469134073135865479609339880881555034319118405465948276820927571968349517368119342452032730467935708220657384389024474876708510558691404258658966158004379493485231114263582229076327527003370931073756467286572874347782894834436253214143887444595133653225232704452250478450133449862040955909750009068214604908048920461081414098505215627259241150205280010624140262956519076353904641881923023314062135032909040654035775303239072550796606145675312618816548484721078669302595782502089201002053757065124485554881351001295521050418408437466952871947467141156434565772323055801484827077119983823441441137831122165853770567199806194443652904453969622037498553720014552481528478091816879161527066701443787137026023120841840610963275048105186823453586913489695956060577571399530166529152840833818548518294001817229397613498127206195897874303563732392396992716509060851932090049244980364430965786168625512354754335463117640846247665686504468638433783772952811597452648515509335780812406529208304468643672794241584532088243589588501063404733090035699983633597809172011081487720443241092262022433941836975636295890078467226655522309925575187037449445319855847691758454540119423984432972434199037715164819402595909539225217852395606178904782848410598801829047044761540305556435281097861879944085346384385875124595045243963044747031288654343428592036920865454610494729951224561935411716538186504491567629801287978245940005392165465671491919904420149917279736887593515598160550815777435663160313145664026436958093961622992794180331997616316057331443477232599162708831304327835256127431287925949464125105102613404575218023229326485249526374572871406712707543585040415590390917373200729185021322194386820662578013169548998486041608126335342427254826408229504840594487587739421887074747770435782146387917184228284345954418744827787925785101577166908396876304162800332097860628944206964731439466102000263151679518146214618132385136034908094564727293959944148633208269394695657824668603629156371559250997369181659515585795376061820480088019019570941773389071264597611969325187375926754513899308617961873867591644025173228031062871044865023679422972918534067206089165498721634179363567764939725435549909584217177945720502552762305959403859686607136167024871800159173682231173496898960474118273204953891811141659061588254510501404069281961552584619362402250533367067975452785598037769059740674950751842668899657125896768464826678550563508311329613314809816729604312782426583522282766541298130108958197894461817676737846660867730987358309818669601627417490885525597612183759219455335746829352934505258776951715196823653249293009218384962583876500981544711641195986185484920472964312928135831236282423989384505511593639360514250654779449147189631864288253020726228590749834591896784270465767239882591612577860924033353096743770735434585356309891235825442843004308600115611542187699193470089951105747420042288118561977953944520108227128874179602348144076548546695162211204502418532016356463640359451563984717520691247481700506117666208409185023003737379226908239382110218510738674486708216418007678022707249946380663993116718493722271141036572468539858121744629607757884832201977083115282811883238416235713733509116078844441578025561078379311952243042156572064502970328461690065886900913851383300387215399517171487655106351855527447625888050759920268481484085475688569387090337551773617891342219218820507781911878570610425549224241688355648217279410258326575147390930279256415283799910943519148033521559237980053360856253893038707999748796510686588980658178657555270306112899236542933047808820416212212024161691610042900452234934410390437274364970424562233260451192938359481354230407670232790021221329509939459875287034675176674187119328788518625753108080046678422158227796555252793517919294017887844082452373041417410205348558421073228210144239164566301768580523370494952115922475582321884645705886157540004173909373964751490654328985294630625772962900932655679549389545455579195724701663871025336768562163863185756817819845688617636916721898804912770541098068100567269536986414871502248523954288243256188332186442071227656154351075828745616304630389736979901729545355700495687840332318154152012403904449869292170160423351888867683900247763698039070168400445071666391987110053165363122216555391001211474695337348389222258726717131680486290620664101730809342907187347085010074870513041902387802490041350380323986173942497381856502194037816802680918773391647078813051610859227043380990019033824253198575560725372027569431822147793972574261020619949810277239577927540806847863271867261620335901681867452022630150614687487841197586751199482889231793187962774786465818148850818085874115160037026934983936002055596170540929733803596980743393301199006507265957768584098036304065739662310705861598459172491893053342479724579054208097920223412036751080585975517446126513184926455669413495398297620108667066191012933818062833299824714060166088172688774546709264321632169312208485760661673699468117352097838491733533516017615176107899588270088677425195428117529401749166629764898530257793344294838759797382495736697272428407338817712791492556655089150891200172138046519260106641832633127798300920571434316155918148393148879423356423828143200820327173880251162438094489978489499487120294139743983664642043076150529288965707568587823166940104944334254399403875069632338942803465994559786430228667955629839603707472531557901684183580500056187530594461313552490324572571088921558159292357593346631615419082915775374711280074979285563133342525916379431829860010111614123970394469147863941665249906832396083337875635150053082838594606425737388228846008238164312216107439753395308585535289374186514845807490560757487287392808002354071373990241632306687719933144688731077819889912258077793361735938419741528974466910254983129411644486360121628308600766473878023374930163565175506484000648185517435085763719893117717519845959361581111313914422475013867030964512355446005012854293116537261207500174092552766667992346742399306055333207320304046271027112477790547625617610722773569471494548662863533829587255251983633213022350229942289871658535785498012275929783715387926716509896395406012655991856651616055430224821150747689922889930992921797749237334841569692519596150743713342575234059923777708198186885363696860098735172756759922545697649279799835230643163770128829311808366148159189791998170816779659135974786720140347811520616616621800076941995130881345846309077837016348260753574662079373532533729876297128760384901487890814068312953770110555067674061588616679605945732269972598634925945354595297383794321061254723090874361464470155608318023413360204559222619030192960926519389947271163294910000044470244511013860624653346766331993696002795087995846630025442355508559468498057147766192239049506929759100776197777711011396914104591270003417696354707954271775207312101595210022553677334653983963568631608787164158135960433217194156729952505943171395307713256362629731771378777554892816346493463055704462278540197810884097897246704944956983880588193922345102694133861405617520798455817365882835609700127615379872222678317503386785008647835765388948142794487262466759008315373394166207601003266840162814124451229817321908070416723018826950989312827068480456917417964443775681785341193997534582552015749670329707650616287626004270104369734756294365722981750920449821941591103563521273190993489548071828661299015786577958751909013733131744582569721563343809096625014563452812693270282305868832320763987557973780859893778430954379200156120191201887761894821353437343548105820246252034845853264646544055772487468969618171848032278904801669051460914784939261343961776924399303197842706167687762796322588651061424479567262782399365819424716456996880003191753145816224491946487473632696897180901787919861532608310157418553908088119554097051303405189256029720390393349164842825252980951349578947021071080235264997567706930754625389712730978962519562240041166669726351569214064356063430627537925899534907420213296606356095456893432033610245416758844058970437867239717795407186074519815731716771747481270225209360925842879127689235757898132837964639676025732216694489546002108749061715268055863288894677598222598664437047323961368226593165478256782869684035932083743457995171692285384662169764985840838253359001870531081707738096342328656829960963687035679492945215121251068712781588482840324716531729718547573317875981175885068775930860031501816657534551340168807143140963606167870488561025618869499182619094097243182473961033807229015482710067329570111198839849969473823664441015472542062860336731053536318356934096013126407309575283365599974887629531810422547356155327230503857397947370856650989196432024844347816685677455439594976574035858250388072388723211644990230533969417734001867094197437578333824968217562145352899640750755940392749963659935758978713616979519157506093591870728506930786124875316210710907036007884862954241304304320870044374467806817722270310719139547004177294585652092272712820001905109993453375704948379933314848361295535174114244579534668652714385356356502747252117309160725970201318504473952274954381463683419443337285145889731058231938200183777635314909537272445622180584065122922414639603307143579273451103446926407306695794846334895094746803896435488077323501845079318809722275177154852032296125062042306372059813956986947546999016206820891955040676350725975692698237778352775845711122368546803212904968523137476405648313277224195883159087310504472320181265864491610083630599749877005603763895960564159578264352829227341555371276780512222297936889653059058911149863653979153713265741894757291573489219841498494336317149036528595633382938162254740168326507176032239413225445975130159147687534252981349283973097026781407588974232078300846783734556436794843582691270086636759138644910525995066534245791812079561131235933760593633229936825940650371699645256020993506451114046922054640931355719144613161503137268018461506411141073746568455354710845164469106897427796962923965312712214880970411906286752425527592446162608080250065640328063641033178860305598552210006156772180628537565842319342321018875212922034979555777376795428111247819123815964158996876727386144673647353650059896126856137793133862098362434076353588349623874933232199394701751800466773708029058605199577011846089318795450995753437731581330448382725384532205998819102334792245527013556474716165884061190403678382745045540581367723568853099500855502661059445255005580061288025521104435726391685697484132804033402913942430598340746795446823345924663347055427229306371363896882846370172954743370314696033074319673141902965934759257635737275300452248627340550056661176391049533337649606832842039525128342601253256129719343827720838201849455388020272207430262956963823317718914807230033747492429674733790081681738521835244198666563747644245454642138351199052755667745780882427373674951453996283257637023033051576210642294884603960261403272572328940955500809136421079394164117920163325704314717296832051981918843677070998786726786026638697636394379856396979402625953238822517465771647570370420546102679655844969390486083683540418101119892866370169556936696174438433755711022769963545811130368222834238655742769526543862141638340632392102235771108993592267579002822688507357374513487930855335059455395409629597318090277090284577416159008731469413458435332982935039073995853906699608776764620879416143958412029640231025140781995316302892285907489629352065034166502240288678490083922744952341315062175371226597086080295077631241133071717558112821224336116982798332630296780307088379833478336228314257168064235754574068525272461245702706619996171734785373068996689306640431933210525349411991536397950155885299101937552894286325537674790415473497848367588308673560542578498339452899664434698560529589317366156635359406986012166210199675171613518210209382678621703193590635480284443265877335421705986030057567202510947202760684589577784130737203721602365449490950084575301210584307718004228617677928054139778251831652267338112339209433469776324803117193798882907674429151535552443315907293770124171003664386139103621412922832341807630356389402580344903467526092178258476859870980456157344827357959347275193606414492955795666467116037545379256706561976898097106185450554774299230547312942760397001472319152018144946855761730485478106739098243760088991190859238186190890471435508075379448192358714214589998071467237670805043416853575253037837771434549698100709260847469799375886746697256214715170813886139944355066982711316988465489610867501696192321051607909471261562801201073510170547626859344669201480409016523817227622717592512628703880182788907285991703779894520984611958740315067065070224038674918263344300229923274200588492853603366976922769907422447496311595101505553428794639853055435115504137310171686186027848086879132606849292817160187660283914887370073341658858410356484904108778476773786187784133043946351096997908708373052314418085435729083070958676007698090877531628454885420277869058846043450961640483895877892533873291929037244180204941876478547032706680434557095507248214585322640562831616250175578793969192001599620786754909482521559456881030042849760312495939269011157316793536720449606093764883079253883262422600065551169224459768064898188519057433035128752253993841853351170956385744455864370558380605867465612983880042158459974807596982404385972809797731188391442213095847116370079490236521591390623958183330467758130289350110232726371020734668452350352363291681116823637629716657981890747739134549552330899919485061163355278146241064755475677021807326673671316324476358779904959643872495321164004933681666797751733460070070089317265265852940534253891029894943035081641687196805679844064848001194806256073389077883152604564631478508714663969523757316252264670280328699452606109693686276961619008399657928701453754195389427365948494182959740690557121761099765735600370516330326842284339332648765748453824984656832771766412389990727648943938220486477282323149868892566964853115667414301103052273681095308189632780533780789595354031362240056515232973343434638557231777381976890589047834905348390066985951135750786221104675037102141049920817352577487168349377443694005577934089262585329438822246858792283064536764927786188532120182344893690310577385310402077238977200696908678586308891823483275174198727453029553152581367899000328560969379137503342407167001676539747156601789356312853779656872282744268564314935664433809258141479031360249165215783661194697306664637740278576540952370477527517811196075467858185930398036346228547222435524627047299915875093999486584537377256651996160482252927546259945286839503883868750032062965771723899245538267186302900917962324566869725644112406626165066601168456866760938603184444513173117295762134454078729307981494760968667114940741513854229289580390351688289573167526927332456905288612065309447007988038918783889233474713711456331585155525594160982627601291213767978242430167521238140452657717509760931227868065403491249136625059674347009860525142632784838365972155837682694728592428587384758307521210227170698950366714438800992222627409509849163923311432555592683052434644660390438419642008054265723700932453451449241969079187696270250000402284387359268415681619467005287814901071715633514490131005534044729895698683734588821462938616617316349167507549893708844031421963751329439087166217103427529833359956353801083592445395149380416565206523891693778298015489818486521270546959883108956787377474286131686878255827799448073168489155628847350776527157611171893706678417270001726258868963750368613750699022734579821232535391390586688148840931434531360414002945188205753787010477328712783558133484530994924930103910384537195212016634836556354986391283246689467360074557473015194052997528307869969102791796671448576609251320077281863184766654041952467530266945161219506365944329434374103383929716065105111850659828570868872401183020918332886474418202537215532076833945019114244030127624641980060750993966542205215651478071150637676575164439156202011283262921661579447207219280531108449734440473406733772648513619395589202191476066956141023020030430255895376847244193850089002602969318938832202884897426019294601501073502552574461016418819852000340907562307212566728755319401606368476498440115484423010390375290766247012542710297048886180330578132409940571984329818595607012955300677120469634553677871425371067952865212200061949654690930617356955592841726467987865765508481639541798714657679069611010649355418635281889116748607991969911118260973842936553228962525118820551052555075876828308675308271650568380397825594264380082594266133339166966463570671269095943244736446742152234658582559929345580999348833591158401616929605152098649794161900991321491506587644708714017650723396100465823322616728714406135365384683760970987969498188707970817306537109366256801987793461156964033415592832457507433714073540333969316011740355498452643259728686980837038143595023631954870329688901795650847962337677497190525276040542574610850137156223589417839251556644392729455088436678857267678491962336717868371714138813361659313777791007357986772144007324909517434036014096215225950527759659567084248564485253284198730775781311640108786753984609451144953112599365619036667863281207335687631510473425803298203312064627807479566410275697287042052611352765703699358595717687870162568083318295871238121387070855865736112063149669024202360655329966664275135068393756578059402109281367524968517354225223435226188892141015888625128014319483524863306812105743969863663688089343651523461833019250563001831931926693230410935266409019964308752291334183975549438411172990037022170075284257647310980561659420203963604447742049505026993262006507821972434204971452845330722430999350569191428707651204707538340920843228809118939371843150101328607247328670942536142201186226544718845040263859046982369901724808514507889573421055086095002519355366681785478686444529462996525472017354196554891121688412932580609674027930582407907997882543858898337387521414448946073701468570304726077345114241522185301811975836610909603067331441006131637680474103795469055688653890557891070088139999454251464774409740922040764430546697496500499863200133795932347049592247715783492399244796172312646305819382875655477996833800837000075661157170923835974286804252463424791237430298391990889801122831593236457505970589504122828169524756365013812565907788987931682256344824181395031791501997949858267791492516862325527460468148149182550627601619564344199292185553729836483571978379663543838312187329926925352856668259870225162558032745383723789196515477641736225335854347275450315673240834520196272441627365725845470184225241186861687735236432796641105188081484719910370254724982680957292594987618035515774815564398137368901976737008802374934440213572789081323386089882496016503877493401014366242660267834808254015841564348823982925591905429088033906464161547485816303036523045630841240534289807845850830563628504121925222893769953130926614203064988513246311329963304963100424109308147070539372959765175488122275247261559004445514164745739876638513676836656700540725656491743354132526554565291050505062264699966578234293659694952506952444220523985538234040944827742461649325119600906093613419663077515126124741262441234572016592789484266488217697973224974155700476626045616060286994633738013073667240364955155158508750338606714366244219257513701993331069379616979476414275115150891612036401772941148174770907191016753266769003524757807264708797720719571157685272464839589282236609981362534883867323292942060164755101334182826374376701558892946949315856293696603046658014981463267196228419208629696098279201634477069799086908093999994103695221237678260337762721893270443599764443169628525530194072130867075729475397539956968663144284826711329022044501069188617896333064539950594742308732574945241258109036316882784792965298793840557038648144973086519706746387732689642371550167490630422064734112452299572922688959941447675399110792885544231299097252899611745456192899625598516198108493612723701553276173917875172593048362458679310758170793528748845916573566182016479311719236377684777499211495578008515924188686731411925086041540249309789434473214939274808734730769621099031444682711445304505245031553155466501727237931386386047433256644319060587312786740892092679552405466450658867004557525070422961643814194648036002896968267650987431530624320766893577269097848113617622472553419987282528271719205813400579392587794470475786462743073571866388706112446642880375374822382241017564303247635444393035342452489873921249059728115898852721393357870058221692828000526412242107045518836422632515671633295853128734138129099992412028303941155246794266058239781279006334835149283718408424009025775965782187310278399806044913941861259699844758849085019556237687275161028699939951912694306937760693907201505690729494166357499044688271459036136452880760640652730005822389071731012029221861556725630704755577644225319752770497987890257320048935071010379783949959748849619246601281873525615414323032097257361751433506204874214114163753689991968968559287420387237035601784571058369682851414682520770553205092833790150484501389249672682278783648789741970249804377324538980080627926656315249861680626875494197982706254774771480985982684884337552598652501161042380895333712661174413365240794559551034047920730554862677520887482967006933299040391753841311673542616441464743993974674282516817087094223324486229056174027115529634690463562765238562770355450808415770617689505969199477978689826273349619238686423256629078146346381923572290590534032855174116208709368936157146447184064216250387571747426511428094669589827820838613415649475742525618930302351714383979824634890636278439929777151625897035386145766520049129362690802937792816673089861520614977303224930975320274345970013158589810108732695273809557207995548562325150199521313612323537132199274574304925269156967433229519390943364846436521290479256059743008138887569727531795813426354696723258220396653108653460657712142335223088966627093584568768450456443374499057260143903068528334291726404314591122617516019129953727195525189743600023384454612464848816360113065511449292803610186111277899166834019378733274222871172678230035235634714469382336811344477895817210681176221448750746446019581449868218428527593048010489035691802501051779459329491486149703803922735952881176123308179754209355711832926346467619414158224054756504112815703013213063459972627869666463768038827587546705331805780241905890493484586562510272144330966390410828899330546409901415672812692531533089467782687176892367878743947113107343716985694554838231645643925758235856615329070942424305706720288640200250286627462532855418595637686654719156014590204489280605148394648911324015306012270791686240259775890853953405712833870200508744500071016675425775896299667606260423333725853918711553732905333014808608710300598743048171396485378185426260709199902848397340512378412599885475661291325524333260163500228025507781293157397849309748416580893771298806591165528522781623085306459809686784917534171152346557401815942491656573527734044053604976116406156987584403841088849944773885417649167707826114800683031205330832225081385879773739965105507362546492284953025191347466026527134405481363208507219803825387875784065297890912069824377785805846018709977233779382981146633972987048534104986397020779185679209919609457652524209599744485402539980308127712173554003658735040342347942143376913844677788980259028350747051140956646544811978114455804087160425953145774980215696147778839839195852569371618789223196418198834414405256670674715728505184394268872150955286059482493182554865641450078148588796418525850471270250525636458087422128637482728791602615570902810025158465077454177490954629892336101755915820916645672467147533580552670885176852640506094609602885317861634366129143416855111819587391983840056991516871416370174049463809019950748486841646989219458583354995792082309990141778616198679479031815813422095800793599863693242277095520232694495055573746814802467010581507624349168087219900343687048196952981501852163049388992503538019468982956574877606996605722929874838674007645315348917792371829587596860868133565665012423303993354725527466472326843363382961021558517060860721293340541242228697040893594805283018385987315415718837329627821552473729714855531930632424949392782304519573083155161888701733225505742394264387003953930707719384968464749370776083259754517292326583835223502919621360257157326332886757648427831805838160159990884536029565447902589760597274254806483953896683668654349820487944517345731863361494421276316789374188396203259064339021262237366145198935837630080716282604707807206921597670376376514674166016199803072605192402137127814379399013872350911017868705120143163922139192340929689495929393720101490659877367513783837044321378923432436608147533775735318566458925636619241671166665633276160444927000017322116031055221190423738225108707331296522553486597203358542202562803064431974407779860914970839855256129938922887542254982264129168118603564696967666816097397518980836140292990213399712550971205791820997668889263494319201871713100838560076242629617125900206209645899013420456417674275742854306819799504978379722743575722684784853306213205857489857927784947037617794040360767163073874523890213277010799200249604169729928767079252508224299027944988792863376122461134096758200460076286557743893250961822875720508455709046813185467145877943040807901546010313733976307732074978893643237784992763429874636342907625748287142107329597964428674013196848266374932045677764798009003755336991313974443632318775817004235772386324706037668757184994345430319982894153281349476257002940915370336734790924119909805108965819651313249877546275374968767427889665903217522218894647343668826739959550007133973256800271457101086085566194942877454961591235803850661467663725238895190259098389887070508425518188661815517637773262200196424660625164292570780296114769795783668319458717361968127397945673467851163545185447274549920025931847699375533580072776819012805141442838194833128379385424549256390660240185588613257768446311372417358550607420636230070122102194735928969281616436696853453095641127531735610004331277670461010299552342744734508925322470461995078755848307526752991499605894954063411576859872531646299966289814300232283945028147718150227348847373241815638178371217737420917856932518058805838014837415329478083793742929709606743114874868872132477041188097093013892025426774875153888389479283436641599623087498714590005107412433082982533290718108109581880108914401588333782068465798466853498041904733396708503385030929077561384513172971822815369240271291211548503357864325520867787760512182529780082396262048038003491885484907715560953761040109964528371934835938742020586126141757255146327589379043939344601863530801937353486190256288438143269739654676989760819302129179965504283865747021543379188059620761935518465791232783155196226981307376435534740982880687146679252772918846829877453078570404561422998844014740294309753945382820072718309970407809314992319793151420263356906504285349912261195533676841645477776353984295130255486754397416991715421848374456297312897403580961188537542534281576382182139192121661720166093950615319628353661696176971345492147995948232603031511900866288272590356718849752749262890096641389597737282732854677484411244680921718617940902723524919019268245667210088392403297528871860897514950355188337277467414665868922519379798335298315661574611610418104281658144481843513184288281128424727739283573602023732246600862403350267059817552289852814245094458929745846312807044077155748294665154813836744052316441899074019576570392780964141082553943144677616194876583506400496518890684622373688858696347342922192769166719851730568073343093819051077746680090125084365972923034003915314826220680666964236712042548547940849358522079019596049674185617960231938911432300574654198059266901818492702415932266214836339474357990503776912667050531361455135540273747883383568316861808020993481855272765297736176948581416766139367400818070515434183230750935824852228983382960666017190607684219709573286722354272982112732392734295353390156472274760083789332488416823485869730558135716470821690811080600400459841932787573008516847823234236721070897288397814237799686697270305293355880983096162476313829241290453274749770569870284854928130948672444254462670757674316586148941226478595574525475774832577321905507422164929621163523877070750349133118272329932419367254911570190600860810509860832913611593739291877099914249581629790935131739429135798141601480699035417869226060967434827270200792044162755186926752166533385642014512538745919375938703812494491992166453056473669652539448287352978471560099932708384609618301726327580184293721465618962252439617054897323149281072282272497355573664778213957658095182240788568840854605699128171213549416536771898149458884580677519686313793786102543139219353853567430834575806132777243314235858656090385550507452506504019783383103829263197295803373848830349757918475448845225955846469359566728985779660175210729055196387630425739604130193114233962132838472848662385272973565475176650934187106904095629655154243645241736904432250153935779949622867660795118456281396120848216408638664600530378714244878356787819030717591847796305837267237044958954364917266641150277814467624444830896037043629731402410526443891659979452582512584403102866912377493969842890623202970228561346756190752965078754109643984002007324764519539082791693691259005447581012163727926394296289930459101052156819771470767990291342091299338882928226676263345570186256062920371603061624274782607296961442777630737224071611168467960728142974251342936805757231582513553840592478401104612626041662873098880076635638227303848922113059051752065104528549680384458454109204823901713034108444084165972323185065491506496659214478834193487645771707714286165835550494451941078676142601760881807907227516819051558220749340866163534183250537229293021414039534342321031910430563968764599378841478116529079441911611565080088548054793697003406713345231124588567389832152675832248556477530909834932584732738924781006297781660037875295833755635403814142311856048422874825467439015690581747109008903847617236873252242955240066565775898562218785155608478936867739215358315656775975474354877972231903002402909193545471357049917146149524392398199118676807801164171864946372367374297083039864703253411762679097740479469184632948396168532159382351842390555222974658441009941856065453848919676385394886859886801397257895159548698926795633615819962414866187464169608014408765731266332431397038883474182615376139832433345737895845186125685183956334233531070902924674635150360422348384082566709506154117598387557187849458595111607424014123917075147393849943532969589459788604457730737923072922152381042279341552839997876766155173445442987705211839256526355866994488322338686233597032444453640628675804787863191726454218382103081898662910482641271998857608979915914516055264495612062654056087872916565183913696337503792377273808257742581340816050079817825305275702414617276502255678075877575812336157308720227919589573304562490732060079706910847781780499996580274882500106815583372137301112443349814985233789862289525162873574222326830192583778659082867182535847678672374054911647566701988087782216813778389650290264633042475868128993015294154829441120135170578636215030632971801605397542549654576436188539702222253408812048574166228992965298014076604408893040944287787668675085150205056613427692564262024605439361997490681350289592581362633916921371098045259590620738046818954145888622126207662819973200950294157571412787295977480984782815963840180427178357621820270692535593579252969942379159466185709414036183510712656096353340587233758436296487063793083456375358445148903029946286314942307191330516824751082946843078262872090029147243758674819321657577127288553432302462499476776152583700357800024496418658541199750391768900983219454465841109608497023207626888401577781133961552729819975745859576715586298126774755155082154130920785461723287683126782877500357016598919216251232708955155239317166242977551444084505662479420350780885082306977785135204034982857585659030870506618681436846266857916481791390153469719944247761852019003012087544672648317954342728666367680099285291639000703942881760487403968644869755687176443941239308885738068848285540404501126406253979878828380509319086607378440676245535130316910913961992432243768456718374554795177428526882237745807239682497353731129538818936128664560559265362150788645095669435899014598271450317317520805857335887828997026709935779368898384253294093342926524519404802230040558284126056018270531287273807110353588598760397003216755017461380082760338910068157273269606567482884104502993074168531948502531323878170841388218129048756706694197403371538428988389806890968170610374238725436405509704126655294117755378477700195893986024550315082130730399955231028222938576908589074124322847440040368278077674010769876424863029371168742594098451132439340627294449744571183894338039280728803639569849433821116996687185797410141413700356967077331420751381912932135979422656098023362344528564774879412010606059856336811569076747591955858737097080579619406581969281133074685061864646521249484254916745132835200718299433201920219825884741669423768470376181164579547791528990337814436819950684671485316424208683642344735099989302873967814301275177175539387064908936575919496806290144790753184040607814557021708707822387543203525286890801176444706864938148144450665676789053365676801300847769201826372782531974248468232346164618792629928289653771944391270825144730331273196883585367452909841668529328211902803508662773521310957784182084622329517979473072843561034469659583728202502493380096215539932372485261932738636083951968172948474363608973267653036136312434293721926461605024078636909524353019390835353912972131224861679803406452474436865111663662406623220431246766606014553754870394693120225571897465476344287093804504140097794511765637277976112619540863105247604014246423403770468549264801621840242555764905179717924394735465363692684798093327143867009604995282673999611133398195733393944612063640134406270898097311656424827556625684172501950299512290576149849836216754215142704597164038886925535668820388109245250865313723458122007145875821006578810470082825053957224189514970370328874036793920562155007547126628011220703029663733467789454580226754225468334547620683813223755442178129863091547139154389760911244485040261907607745541076433210758810642963631424674593241082821890381448253050597742482830829547779550529557771678469672082995966661482666518508170303957586628295149421604081478774516721168585952420559238682703745140543979431988332118632361458221654896054672440267090493362487645929429991725440316808923561359490093393138295651039209233353719025651721363541911377545041647281621193843381199280135300904034790326118475602263489859702989015813829182631151279803620043568536069919052930495418992118414105330802880322124310988698409417831442863189595125216722288593379034638256894356917805891377525289648303135344490131817467669869680374174135393019805751674431882126884077758138542457139249920665456182548524387919662096073696618719232885463024567774472408593451019806600920629388910453356921579167765162957405304230873240886777802481119462559938787810437230645314891380788998942525724321791863017457629769646564066304513740964830613707591576295989219626409560295112989572278897018043516220635557177793751239529337394829141507510434020117630477088259843289793051322504558181576643147131975878666142944147030644930438571003276113582261443706130032627896805910874574021588507889792461116636071632390890043385364440524035791261251220008062266853957384774143534361677688187791130434034496444561422002890231495043312021859482662223467774262322275410853392236226677230384679624504743938690919021278733386817482610562548737592136345364956814300328401394743182737411182785184146874914055903390065333309076487420149237499085172730067964804038898625068770128472826572837064452926319127017016441446916566307961974942164925815373134571979996111411127797301894007208919265996155495192425595920701897544186574537988090258691623122099918804675791694948025423601826873295236078528862943772348976945884454666027918387370916778774537651505806062942874829506055656681285977371587629778324124586227722368575337361977949747818623023945211156635344441192571084047296638205521648102882506473930296627852650573122445456431707453245940077482875139074553945702270301117044353238523036925436894130049997013992650604103581343923694041065335132538647822949667706914800210893750048453139018361543215833112349644547414987657015087359665965239886954008079288045656098467412390317864619957679963767651820194971671301193553211406722794781361767407036151091171441362224339148597452117899529207998812064619437933306360264450983820666279851832958689329285525189025876808779950347279304227639780578270492857333394222610751425483903763758464362570969685392654683914607225566381224132690139420552565540769412010735525260466217407338510268257971368756243261178577699876829712469491597496965462263541901994133421540786806443216042964692360293588438470616652515434219310387162673319886783344840684221075948402126187634063605922938247660510742587552217475540575845760321492719168712731652409861369433426953078610222464206723503647612793954595521644899646268633070529267271818285331893965772490766774691329954030724044148715560855676948691162734876955709813404373157298818142600692919158252870634495365555769907395150480504498249742652126842568956574449083520513278586933385161217169729568094601764423108965134862785665249701122503663196408085297623990256275058051467207548238865632045579640269177341126284776681674442964584764538352678316685413565951988871108725480490136514856620644830688606041924594221648930277230408402820292256706947728483204679916212180350886576065373655447599681021113917312184933339923475772971513845596715746252048957697590472189563906339205434147273316617511675952111063293670692004303579460799272207070796610631973649294183067667218488743740780979974032610589494503443106585369175598237213858446293639812248941513921341132137366541043038499067212574470424910083424234804332365367270924861574336185131145019211756391498310004181119645353478941670203261438623130733171184822611909687475639255916458022455352511838212709091415955828968640779442811315750405401875759592254189408202310781030582487841137428650767102438110154189140439300002440153162742367986550007261030231158131527977099854235347837503819408234315280189591462846116400533719767262194008580514049190241864690683743553120947938131468023271619949848611849806400310750423925667533972729078989230946962146798632834198390297778306588751296645922879556858913609539690780024911317246232177170903451892046082396160761138971853968179267909847206612974603219360776901195642410719823869678308149826073190817130815002795994698892678975659304604229731273916040267032017281588866085513076426969296851905139867723940261490399617894302466249801778231971112707876354998208056209805175195883997935272941681572082505374535377885988651884610441844876004617883381591067261462959550020197476520766129449724567725447386100043513251645979105650866748628326426763204415474621209919758176754760715515279807820348262847357874393198388876791657046220828323371269224731698466729077119967061960760472632355342039340634648961409976041371512406902174228523124611069916013709660535592321830850880371929720507074144277836867297369600703733435692383513868389992965068783073327900443808468417526140373715569018883190116678200889037283420212890184940474925636224796952900878723969797154015705345030609959373140652625605255143992478630646076925784962597615702925636690146143288942023617299917137905441014097431893302320680533221670981859442166432360454765132062287540751890866546500178336342002073289484035204826256109939069912086455942496241721611599552055368094214353245679477191421981340667714024871880873490776831388279587599643599059922131574677461477723818453181958978526173124563352439275851374997124106257302547805906774078975734155197816798189277723092085950602576768882682071215265975806158813761240719906599711108182021308700713208723449809525539211844901405852280027404080831632552964346848389746815098741413738971007690514172635312712625487157872635388795021758799519657397511609396438736772367675546403819110750010180310357481320838495619180277615272356959988344153158607912465338668843780767111388738430837652025373551821556379512162859144955030054766029348584388599451379450662623392947046505180306671245685017369493490938209048326203030974831480024230684616401408660597028526744186278451468904546881722748062913636214588187845871408445745099194993168321601532800803513171845146565974388141735375087338138771094406456541820672529911943722921133284117075172205861242474446345215980885350290768467161337661363359487123778376895609528113761338880486350562646073820434647878987977180911308470682094607712303379440788640551586125667174533344504350683071090366192380291537785166767367845165478597313681237318201159330744464232434603733199954716882609803409573406809563491832158835785827578043448508703000846942786360572687460431105064228609252856410011371100538045959025087737805038522584026447734708300206644868959273954039735857300596451256885206124763355895136994305086058047463502881067091499579383294391575622938000279766117415973706737092183035382318212935424844893691891410536418714808037103638576765031795167047124005456334489576758603670112531714484103841483259921558570994471944567022092844023854207728344194537857765721307218333559137568656402818749152400334750274284595993107348368452149915938038103665667024249491731720970304762736683636709265686250971617803874345131967549268962085760187448006305116586399375713100977073197866343425193937061456801038245511534100821505968390021359924656628942764302853229626232041582927888024619721021152141992798333020382185566175685063622042246903347333308384820678349494558273813420912496559061475100844522421320452134286800359263700967711452530796987420807469960317881486052211956065774423110600617578873249703542874603359432750336395298043406238590391869756530651134275219500744114760246706504407114267903454990088344976609169776715989803389552803631120803623865197076694770093989934421176320534268269922388872374269164445719729465643880876315584983594674107080225034060318187564697495467104752937077399751488003363108194000691779203980810816143043542343329459282715692469255171685001885245654474467374069228649800150910405902463679827815176994138656965456674132135552179617092421259222360281537023041825573302961475589540114536158792539882716926449143134698748646565373724467231257464847973952317550927644393112455181502816389150821178942410972560346293591323516400809578395190105490551454505553533432120371452131358234074013662447396747658420071489285145628445215160600645513679026055889313533652269225273905409444636316327260602733464596259195152260080033455572680860217776465403711719613071508930507488584975489540711515230707063159636011267188259965697377722874220133580297394747722237121247182760063679545972215265436686904057627758957833544547100826624460958955147427153350530431438820537197236875306361775024738667814729262070736809909919266446142801031080583510801474584035403821764219509226442488544504116429043711243067977352954810863869098851156052298509088435042634538970156975363860875879371648395392202364868904202227711501398719758043936089182171655514525270386284790811180155046151834108030441469270745855811090951136692902783654832727911367361739820620353382624858191676600493618565953333304469273567926375707057388314367007876644407774282392623722158662056496492370811193295665285406376194986787444882892205345662355417713919083562579491937909236636940924486405072998274059586315230380174412784670784303771777115275906993792782110782707473276511376115811191432672917994297966394763380232186243209646371620188420551978198871918272875036834040843093551555753261553680339411957761451792530949167396577834060141378888855656179673736172567026847213463058642170322140466274688892915104379518918470688564626253227569220911089746672102220847046242259876399319975345143258236034135851035454678789057967637972479988344835106833838355500762709957140285934185282295222608704409093222477906864972603395050813646966530082078622983328423129139500684578060999929398787153637771630345437265370065717843727479299864564194510994715694580280833594094948092630890366478651003586714136005171065819716350001011818893064615908196789017366594601647840985396915188561487146855531099762689662493345825524759923215261807502515809866589516958006858538666036361899312465766697870991691708224107400706511449776156968055397522300876418197614935037101396965678040469316215496990374898296997847940637550451109141906982084199011689189851792922023395226662163777133811455765549618212455279087174552038184473558518441447512608173299922220503558054454729527122166550867880525672206028043418676280737659998332199662535747776182282569279325189885436939767392583867943334089851818994951902829276961982476031948110730891131172232892586236610940855193367311552121652724316439596017729125622312332531958291002624467318846073886403592402901888982430887894088767554125482109592936593480681110254436778604834712316679155628506884827798146831793919424516758023853794349732508133278535091441596271210953271068732973296768373310566352477903969999330382272320514312135346146911123771479093005709908834335649037309993393960118340648732550241191791172637433487787895614369362319340524845108955637572850793618797231247236516988941553188451026623796992550933139078729356398773632086775468589930482849521574057124808962667231250915150374732681657727881589846592460976382430759588394659993306277771728152975736022895210928282593171687403533111193857589754803030717443352082987822316544596433559908306204367008553670670912933687362437655451197522691843669111641023217157852776601072365555293355913916068390732678846505185138380305678640726536322205934350931778766019236669518074398356638268257029342892214910206477096720373536706788628243689284109404895204041881106010408010694947597255778767567058712652228696312659367409907637868276193777350553912801570742175442405320422305507604548091668043437411720426208419324707133956670827128041904464369121166858475674713807702059228812132482849834675800346137510106636129019620930040234266082603345991016688408678049518595235710007973276478779659908002828824288187400613985708622847104118629578978463118544021823429699841268280586419831631603647675557399982775559403940360620288027018119846181221497507735312756976272495116393909373462045087264006943504386917953068540032069926487933204252731737756626867627173165993610887658544492334885369590998217236102731663154035894001363709732447245749573010135462965537479306308912526503840615362537675597004038918716199098370208710273593355593929578901326282640258669910279350759517072689803608330627215906818842349060392898259835854592940122124725406657938467528353367169292519906764998952663583728421348259400491193058431543979591803956878054574979343549473904151392348841293147271062128181523103893476758506635767231346474315116298833779698314038168060738643806141751818945778624968482615002872614242557876646442695921075388077253795068784997457380311996568984008937554422857444127277616385193745613107027916200174640854303137853469819446503750592562460971030574364455081364343516835345350275514559315604252623635561163939760711015214489367354516528318549731008527284032701727593770095637922546542690948249132640960497597000277197125323104777243204341220088454514397408448809794516150514769365081140230582742963753162005687674862229159772158785624790601552426376647224623026212412729841184624894112288601523022680255957274896059627387351759044824376688330891123620856306909332783825943534596134730743084776026321463289641363315722178964177982324837845418183187425506734428809668392064953151718233181303261479870053507366337034533490243700519674892419602748449395915889656760302687585048851190512533325833284639154301261683890689325556848056653061699079315822422465393739743289570252303609245391814888548782789671352039696027003201218961360559980891142262551786549317483658806683734517656747889527955032728896733806775994317075378860318613644863021621596821130948918308945105949839382066091469723363208563362289806131039880148973543958053927827598841685629443145793938785170100469467718212990291302159252937416601327361257691890333862321103546073505892780478341314338891026980671753051110601879574063045884139334058248636137067541417358102998381937069826825796554706606499717688714236968288928294148583351831562267829582669211444339170592462637795705443782749208316402328787720295915766876355859070956570816335269209611588573285959133229783113179651440646123165856950831353475935677406703531544531197882515604541012660332392553469357044826650690246356203048408272221611392987000788565950345353369824534064964861257615942102783946633554979112003313568376411440444213156589891301982067540518945322070623917028608894670501207117001665100820487583470592766213993334347047674426625050853623635420245951036698498796074263303552650782323941871921515237974355941209140474687116917901755425806090577761875089954023171043432284137229433030489612988220322394326074061252580663363457687115321674069819288485251835284343448999819816592249130882660450036004346504085965084639268161218612743088359640155591585077647972150550288084999177856412143022088317328003722398196619296399364402474896292705911934097158914287837540487520890113218426376457837846678096727056163423793128183838904654566848233716947078834566998209809315359860424876151381230994156402218402432819084651215505829434288528042812416126946025222633551730146512614230664785576284643532943318755701304445088052471342459678200402518500519197120405840202235451781363240516014240623831375769201855286218681190502435877678867546486468916699314751156952843275790833034582841626211506338059463317342396036615402744195685602714159120956855015302360078338390803753866113754278094300530346577641853502219146336762772568512408169634816722954289762318842965618325795093390814551181036254321953798931308345191899519460453575481505547468631692343358196415858071300461286781864886864649849764614759680496625407357161433229306925706627055096797719615733655135359456755531892691523485969468905436219278410113714118636153352193974506723992053608663847091973748761023132434770367774986189066840677605735819829088595917901772268188871668110425551626122582752016123596606208096100166523066725291759575875647203025734510213527718082283210564250532859786487831716166442428246129408019827424297900926227997213482050074090908141014347948106825740859779431286672205298534911914423743325040422854013007511396714457331427595890133007356089423394840512936306693220114151436617093842542077004370894377851503162206553660995180153946915947154888327458832029035622041565781794961918085638857323012413551303389931663527588542368750109079103238956112217908046009621790365360668570497680498632653700004733843585276380123458247113129516742389004770794267210050504494901227407101911980586486028096533276677134710240123520933517784014136975143449965275223025847342541739580730104891725165056395555654900971912885952662681598733467852579417022531615488529969202654437383632428037774257695984906524401853815673988508046537843151979458335542432003008554829760380953255805961779601707263802790885328450788244466868651797501234979023797824807107144154011564369599462301250787667345707937211096088709894620326788722920119744318538995001161579681798182375009856367507585451660998822696809020838703592040515577316015271507293957296024846551742745542453591646703452255044521315671642908505614069991715907123867245420082720521604407630813495162076803465754493498750655276592900706209070078796557301652105954514310455674960091469358912725142087732922498094865329698385012905650613475251638630394425427917891180084084232204782621702076275622260336737360601299155913050236942755774841579508138108256370493198939725528973104566432201737238126095958591173359540015836198290267846316449222123971507748520457517551183673357576147539124667580359405368038922848706546263416673809062027064981934858329910653494474972396848286606220414515970326627644881134856394602980825836373462011598136469037397955156204090765832771120061884791508556915111935856414762506959013454846203674466685047235475378043705494657307205646733757367651430002726844855473028713160664376962508642105453721232536819161472631046208492697006792196543316530743263195998100865619758674972303901624762011014913432644897249057158703469222128453812201746714555550191523844858264912123092445557741954562970770996158531324485643216881685625574971005482007001198687267320776937134379978967614043959520817860025292968200653614844298602797791994455034991974863743297419300114217369768605243757108153891757341702772429805368412355704893794073777842227687319880467014603859121561603932921186768728907055892056800600254151497340581553096089899900779806959839215658928050946263361394633790549207245659470283876364820263023346829141490310070002531861592692292656700693968985065203291834279620518523022907372293273472010415983938980380008144051231458719416767279104814366392298445539208001049220199568303813091088387615390828253044736601714883921456129384197866503571931131892718784439917247065785617544175614947836490709875208793335874954612346834217352781909045706694146889792786292758284956145748275786062791289177902495061656367132179468795791763270020690964822325390739924672154225956117607146942610668293161236523216529309568668384604969617733832615945165561309167542177962831630565906333026789580727430858780679087691731814021722102948190456062278759214064360390884244618420448220558430528837887091718885646419197197212002282064579873809663821169619470852174449810217205712500829172469937016714067223454495246362429533952896194731517607787185782240720007070584768254341953920842019894244679239531768736130833354279328621393572267245495411047681803464076938244491206150259457388011876128620378552847812478073810872344707226935565923042469235162475838819111000854881353945826651505002245194734423053360618220336597961307029185979186586532809895340240432031003266125347553455767719377749071031080117104013036379207057334016385448360822638633182868683204080030906307789020065701921161032696805577264940589685745759343081987252037105725006811727364508589885876835161353766916872532029990807998788077116103529354949080265274026318067123957911681044253269907127107424611588073920656297324076747263535288746417043693240707289045035970634242938551972228105386126848985679164325722948720919056562964063028234388817511145523005068020678762870619227855780451978297517362064389751342538379620979674315496849070083988608470073233369188145613274972440273128648050336481237310954126798278439746958898955289895620043891239679583793623633358864731292740340565034276476256632573809144474373114071257486079184964874377485114430523974790897997451442319227706898549605511314115293714321343526016157141880944610757532366055628692659080814114014748518288231342521716316330413957983049643393880737345548080737378513420606310862122449853646355619327486898523717346127984755173246226259466236737548635345440815002594793053042084247748091344743202061603501115292664583342191496815132752792746005979400213412808191840282451850899715192860456333467133249189847513208129650713678630000057807793759357833816707186284773449209610656166662878594946566879076888488992411340447315806979762131776222491667668924701683999545517513424890998753839132740484317601597290386534084409800744969918630736452241433463227712240642682434995894631334684855734697357080460152882823027504807173563370663402444841952065750981553333649308941646060461607773952612482765594809666819898154134787345820301922917006006360571653056868276568881203963565834989339139842309092186897268830773509374685163933841312623076714610914691359248746904793675289358068641286743168519554099255246909130945430440367360531159443752232453836084465460670525090378623915390148949136659938072641873233645970002390321881505285223966040197852286310119305903195319446212808216110031605164099970084311353862708846270759872610403673374525380357595529404398661086810448479275590880108698667205391241098160591424987315825424068375216395762384697132059731054241003989842421733723970609221146646632775298450574593426459006102368269031688667253167455106531600806923253262547894726276973803311422401197946091245135841899625734263713614863840877727143077886547143822369610247930945842298096745332153548584903588113196962026586748484223308359169947038611681543624155618398033048359352584655401055169273517542705025958628104656548029538569152547392831936662140952033948158312406756548769516467364712232824217661749926163223610148298614337020374328822665404356017523838908235150522006375503837419902812500231228990019829561014922704219873500829873078175630735057200246525577580956497861257569381350782432881531782505933259081549867765927339061268203846114108973521431788778135772526611237015847648156294867247337867087740916678039255472284260951193919830050555012697042521165981416560800302094459712838580512750859295814694072625473855850940147286219497456085300274495286334273790165366350313101502402595012792264770132761054012238784283141357644643758403252910760597384657210304033138287323359323120340843682464436185513518402599271298860208649605184360483394362315161295612475782989462345892595830384242225736732224728687720810655171566928615517811262018069875761844995875017924053440164535419454932052431242109447710732947791363265555834477787084358536084983427691375761781858439133405329008838823801643153829400239593736859367432658144359701600795359786419651870888039069190386297786958666486292745076841444189724996460346260672665558264630125576788111649841183825474972602624120022391869591816251213814657178602929665478304161604748226502058719353843194062846406313859819735148543305255654985487347406886761952518742277400782732861176678499970204155507564869062699653677343675930311736420354184449393780448200824807812249568634313847280533675189807098804087181852865464094500806081210100844252741975296874101654303933367207631098013341486982987979238569703473386854278889283953272919708357437328499652405682890260920681840038923419640674323430479725513855046046707635961255158333568878753106718674126791634344919302053762466538132955198054055065669350795670969500787107851577289217163992449540024974491176902810669270624231859374873371601844642148087275583120491209218387464147549774021119442468098999309156685719438998796140224043485716716896930653270256505620367298061708738566987479256781900097978118021853805952440750436125026606586008419024030213366752606060059647423854378976416406402010238507091180451493175017062682103402103363549450745254396954632771204694070460145238749510212546814469835535878754783972491229009572048276461028424914067563808606028109337957577038730337805308987679077638226017935734486013498982309382875734133934874855423369961110906889649742390664703485842364387389299658458605109371571455305336971952710054404858716657835865078415911392236942581928985812817397318944121754535571205863050623541747372095985155237805488749781384440220813264741136995399219101988619119844043047730423834374851192899938204487524341737192736243494010706425501991357164432070198311963277074395215032972325087174862528180285244776525782649586493730993149566798503151979627885183274471492102679824999079554933291664341409395436491637164177382702704915980860472501635403693250106523023514084052728065050800729161765707596165848110364730362931367416840000896509478576398429837062672911181313078302784671692773858815341340000708417949557405339863073991970106434739694457183050438347550340215661591850858975370568248243889712119753919100084941575852177615404039051455671261591386991905155340812752687312881556847326309720423143156360741832844010172669363103156285647586891782652807856394819060291246329299633972703718145812814998890372449819080648463569703765867684736573332071616224245906159339888939957066937021163920944575623657958912507814805560039510890788088160851650596415344244960604162423913771499612481320151202558929718672645208289423637135911295685078696009651731508263596833856593128860085343645553930329181201388263785621999704205961252036694596242496221778246705116361862630869675521949847355435056064247777357855601756236127739032464375761903616271727832876417916144817535713456628759452863639373401663570859902737810641290197947312807001446068875484656754511018255590540363408937748100403107491588324873316747694692208915147111252968131859387921069841999155689901631810399066099900325103008015482982700601663588989540300951431576639509930281311640660322415947611648247138407783843053835362573966063160354223747193486796012464696093652682679058936419259031562035275250128508013622768879400891089627692926718728478422801104874554399309254202822603200594378899463229735214708581109259304336798921348667762562029429419685530000225246043366882263383239081311054300035808802632309557706422575481015751925071621309750914382370823195575726489956869134631258477051730330413563398031900203440688569946686176891911134791294923840345352132450251597996365287181630475400091900369716899585157178284384726197098218047537440454478113173171103625137353365975971956963942019022223770579347215823947592826112563988871945300092259240185663671154556097021850006253886201215179706848226637375993579704525289792071667663408006071890732416872902163066960258165904412057349809028251148389121898067449493079215461087520770395432459342181012603157237178682390580682938841630958032630132956332175846804631962108755048582057520256478943465773419789972092454964722410709451131978060382381394773444388853812277221333159962990219788174475874850623992647640083897686029633923403425535324818341302564612927565922370463461374941968196975492993787297672415776798455389551134275703081387393194754392453321823584455533404137417701305787866079187974087450670575006218565089577358597782429067105901744920708888666275875841994490851919350716917909540885401189215919093808540320819643143658728760727183169460312389965360135158025221218309258495796719903354654173824194908074356293340126523929115193859510838734729787749416088270869106942561200012504128578294691805142590362942988107374234191678974597189798028092439898005840686366274810488812008547333464522362556050221755326534433887910944844270784204559452452702173577816765726731201589622141661878515643709434042677348116274489311380095610994528716193888606252392539866670533616505725641687194564044325545912522041691708932249855872670517840937039273109897434550699957640533633353144514817627902636506165512355022145491638538815348340833650412683672766909701358468417640500382487172978358612825659941393923566061543295960537393410066492373357188051040529581435686167732981569429291125912994611758706588026972286249560378618249471670533288497489668221438100771247103023839655374634243494850508024275189803902388381208910141505824152042177129347612784152530181546834925874959557669524239886261604805139029857856967224914912357438814075639831350963157943009963517943313248080663132484054628734839156819528402071267632193195414929968668997769276593121292240703220244034664575926731979224524780530118023909575764237961716679655353694766145347254909074392348519882119153404665555009976712117543851406778119069342003231140305582299017321636809369357810736243444681141169936426183837841399823839021740327593555186887948046128698572808203625573448414892936284920715741886625369673909338026152697604625293100076485122318333552288296783509063463162900765363986626779031741700481701156356894482734218668519896036150933661078917886756331243302716435066276120027102816657269852558207529952328212117280275153590542859487330993522743936697790755524370577918494903385317741368837761732870205680118345294987629114615314402064692140312632568264066046911969838381838959506060054302290551506592583815051850502005014590312324259614930230100778924154239797866399111194756640335008891782253149851732547141418736465743368096899818270964470970591444566421271221824595183787593874447106849743460585179089067036282972719914233727546427908877984457229214496132255218991105635038026301385501292639287433121011314642197188355541029224142751658611277305714741108030926706188590223096305931405565562675607725637833080463656742228351835572482307853655770394805544849318415718365491346591099524613029409588894539653495051346481774986997778578802529912201695156438880091098528248446569887957761356063998711767193216623164254640954795903709808421512753324491797562993005304456067038414423223620680538054063735310810539449904263400403022114879218058104988598062775733250993748856331431141970451362341657696957898981344896873781449057512543006695488727759191389164961376978286228656432286740078034089805906774362524601895743444180071628899290039173151190115002542134637603052979313133409113448527703120260589074919778721491680820758467235048038979365177406797938757158919666661148344272173085105574699675974185590888620775716578351936991013409050132455972159084194872090450840478081845270900078554220278491720519952504086622183845479673485251209848712207755767983865781660498498479793882438770451349925946426092569160854485849747502813906135919511353350819106013870491633515249394649591404390198108397867976764143661524012222225166285402429072265953682807119251302215338495516225476260300997823227240067963010409654780293819519235740383429409971997502522683988470647837266131014036414904670612918660317258269258460398615107471023580043595176060122158616520507117761153871596066704564006978876860010057500446522451434573000124225669146956613210539029703628516809867149533319107655179708516244084687110148006725162165288063908396570504811395672799866659902071167288950183268144574132890176982617092791906856737399050792962021888732499148610612218687437414106648271181866547144621547930684468800985585838853137944449115071145001910651786987338433134021209696138459267853434947148562667825248448212035171168274408735764985254145000595757815283499552525946167737213031891203368871491697941467509565122525942382601772701642896042131708914808546365368634713548282858501642346057271900260455938589957189847960887808932793379270567453677468495487341287539869484941551579331389577493486840372432636373797209856775447813269236089670599665821079614877219659536676919211837860328054650227583322551588661768799905725725648409675591453882023790338741404243316389260007302827270979757822391721716334959144814546830760031762668371830954766229823609261563748206344424742119935545695389042878890407509808975327764536924936804811087133390645693539382466580929765588456188071079689171680486456827564816695621198256557659813319021526052554287191552013247614340064654302666355286406979187337378186886797731850004844834059949786479761384121394596453382071623716670377479691530922353189873779633328705434203240738559698403381575074002981644997862868453741423872492461010072174195216083857862257457697318915933531381319749385497983810026114709355736361590918038813453202154245400648588807849614152377430495836717138142296981733232921881624626485041345361948934893786419308984390620343546283958244480352014010553769106501717025430541005451960150424456722526259261104742435927468785871740865164970777703772613635604921240882070708706291902613886789046630438682357185560385079238459816597496815598956708412445504085031568755560203426699945318787555650885685063696321606367302381192733298717414500221139963441448708208795006258897055349745747796525457440005007765594031751092941244517241317305730206712996417089295607492943574386263024505627201113939425421965498736803544465743903816241222533767945902050137518082714863095285579213628411475912445239675138651333604910887844895292733129018254389661414190678337330446299007452015283667449570888034088023928828870091250541701001527295832035689845758489296224781462422165125964853238987257068743198148232440125570061476208676964585151796322864423310162523793337130596056131432523980538523729675471834742084875965236122044089788691288940379086574026643342429463095072133495155934201272140253312048853125106983797411532858988629737314651396652473638470167434176257828794185494025187863735720728143838502581864369043094131610409638315729668962852905883221850311341641149844028759492023432124207385340410771678022824207422221513925581876861578562771010929256304003893700884808087639067614362814185168300820863236984100633316878348536362018741010143352230940649216762034218397572904786007935062022573714018745404607376857643741296871927609050086658202392780610260515024637863922338207555648475299999741946951780500753594375034639289280908661978480070767031516181285617606660254899338057713985270228902782972117415872934643338964606473085156079449885815233452761417517809561967042011393716352759294638133079463015084618995412912268470806508157987811589259303464097400046235277001262748452928246672802028494772116496414822315513932455503553209456444946709935226620016640037322510407791250149890042846413678811648013919060987666334193658105876835250655680153231961680638515440052182305744277005553027421392511826124960524013992612102240926956232238152964451506322432282843774471274571385729686572458997341196385020838397729649840375094494491685633582159320542235229872444599340188959222572698215906564660575943250778169465491641621595019696535637786589222205632155542954475870648316223981177096949525181882223033200672219950643535990744803949423853369150534463666024142029051783706062513946944787776278388752872219251373472450855073510271356529959533465834727046232622096528652754562851489195060298497295600116315588159871013434581404685570197957066027225422897301481761389075009824908151136512438147546587067730063273344703364873892493220857453972388354946599907010170817823408595921574894106401496935934744540153277836043020444877403111887008183661836145703239991546843723788543892862523217897672802168529333619462355120705577629311225375776455114586289917787586292181884992734211636014448457859610853845063467701866343477402366569874883378926170395004777728410269022523974852336386086017106559713049782055250525915971862171541961381177594164479386072964562256343819760910779453278781686587854331268998590303569140212132156435413465272927636873449551267705071421630808752250971213895235678082484738716231956666012000845638553681838539125150997950774635270824245029899351519484934539714316366104852993640913945907466992387517581963891917826011403753375140990665388330497516458943998570101515361025481741319487393937006143663819725372091713278064890333906428128476720898291092396910770930892303085057330163318520734936541898312937758822537401191876085474246084700058165064831936904500895758201461171372743151501147999930633927374099545700355316235965976786880516128813943386734680027566410527958981223055796884919868860827473100711344562900270335604710566559830365162007894872687830815913311010078411319921254123595219233915546266802874371039325703501923390521565581167458616572482845559585796649582917261031698876441045155635613303726829914181689490699472772201031058089540801263209213488760221351841087442769341065003443067199763732676988253855767094439015517089498478312688992868365411565609922380109857077377575947585550717287795985918344739444957141127019874319323441279038813059299013212567659548302902808831620462950174949497525080705971205808738760026503489850843555984372010725202576019452591751365448934841078119919310994639385471525096015358014736256366006970694792082109014624845322508418269211550173913732474852103847322290342132711749074645288351070977796765405373995295724187245582857977254945037809132802574908172061926909941518045799876749711939651692197431596796089600357999674049905948844521486038195928487771647482568364146934505644067566016786112396694116027576413519557888782233648541908753960079158519843735625348717614134885124096956393228625765638194374740997462954404440904685338479751944309166751277231548348857963654484020571318781480979584208114260741139640325810177905611114372129469427455505433921551610084982603844607318538666124880317794424293818695587953579513250957190820741081458478151285754822706252153781508362227625082251825806337162464363580595894753910491894160301870823120435885298588651159448245857497824837707262126989769348588857430113834863992948419041194706842388894204074243938736261267566114055299599977973193023442218020302408451308283452291806008316981866733383533610161136594684643151176424081641910522969501089655417001085595884730597912902160188810030116103611556720894792322476012333998077417660987109366400510774349139967071233651271924737617426839919278311580895293410667020563388681198587510407208120329574309518010446678134629797476911196378924499963343679449253021944497473988945775961713108442632785817047867231517493898615739442620531012175246309852738676749662356160012526790841465806531764233287397040422279897517662009677044393621471685513518139819389153743541787498414130032795981002007624926186747229439388720274522527810129464838431441926266419682688525661963133031846376072603872522926728124965792863205568533666707100073019247595981334247730861054342150271393044698959989473594506798555569427963178051635893279995636838481241847858727176215663089559960114837553115243564375046089207989206555479989292357225753256142317970782471995652381810470405008968254019890717250392996659263369589398646121200998802142559724680662659589048159818965223450927069807262236027604852442076431094978811728980901256767719086465715306881437814581424691832818753218958843356126634905569493346320283956395443317756227832696287628925203718578576878264987245763908855066186408419904479912790624181918994101554395541347707751466185622017864065076572690967185548692058559600172526208323660233531795354194597272464449647004603540252009500109676758916906035866341263319301120816287024814892005283329817908436589599864511070976057659699307093912535264956501010143088172956957187004120725376165422763226225843485363143370542036096989123870612553953662154218704133206539613814495892765336774114529111676327499359612852878357049636665669990585454262362654568746258949441075162687939200291580871710350090323338885818120313418091281591928248250462674667829624540580530825098913938568546038066263644887220955755773621671655782389230003085184664426045798185571604069991417671159980029940004172988378218851597226021242993541160954300219132835100548723888807806569350628381828496890306407482764721374022507815772562927817994255542823344163985393456713576066052050293075204034087414765750837527036497388646550726345331039230251116239072906437515863206044138186332343751655458692266858848277059938175196195347286724974972829237091943453827818417845318672430661202603134413577369212066948476361532905912683083853787313466907805884160533245411491982570865158517833333544577591356891648393337149524880971371323773690522431942462001838162933478265237455570910682553560427227038770015167588140750636599369729801405872243129818463217232802685252678250993962785507852341999294359308116220609200003263837757646774932754976031641277163159577591034874099993546904027760561619196078844690261146362192313116789557488839326787231773846254622813489676222798514553868869081946859186107541494340998193400000664399724608848944734386949530354777814292182170761979912703283040470329925513851855726225727676092149360545165298995068080385896675401451118240771837544352748430042292618315038404017087361002741418815197788355128531879519781984526545297483289451200372192211182069643721429155623913939207979273725618503173421984808107396856962286166640335615182020134939305543568194836865845973975612001021684245891782917720486203058570479639820411993807372944796727831417442227501114639650903000330305851804636711189391136782964523689681892927931430140595694206763400427094112297768380597714407753564202523217490439525960823266831356422925173069219881987917240514448094888340506500092883524867689165724698635507605716165880467816335554119964811059099372166838294062324837565035734685463064502429846903184180809312298353571671743678228559817909132312304579795360421544472900280281524855258842878443598903268042133236357939265482960118281857384397461446392324134918441786290966006847983095025939981489025175074328903073270152818280577816124060067090830788965872201086426782750504078395535942647725926789345073855949813800723614515216425306413359815820485557264080219198632059834863342278741190758228609615401418913675866171479374288290853199962321136138629809277813145576734903425002928179292808086151272544780316990031516929118499868362385791414237976262544337722219850219363669680793137485562293783007731863109374364741738841290224270079078577863196493484470619667639508216659492383647925519811302483379264577595716127487190224432581114454482753749644226624804189015962227549691633999138812287170870278107909589237652448163425500899398547351218861978204417992564374282244941389751012060934073752529578590748077583238072968730816320609434947521031937864501254573308599734154596644001245090349459094620418687897249561814409070944417566910854961337914997104026024939225787734379899559204722601851547964523472215200888416874999532008515027302905468696474051689905147814810401967240487093849533993258888457526468808916023418220443068055789718792408523313940081218357870976870636731923569720350148782663675270795132521639654204069261389225902333288985409369854937525392135015640513038333277410243144720638804142037539168621886808139277881310089616413261559364737854782286144732632256534254737197708679794683392424680628571071320842836426663737142446038177556850137457308137729809843738210961110351929979616126152009342683334203900632484293938361725986649316743574066027399929365292171428899025159085623386179598414180701914093261622652679430292620070901642284535212220453269546592201249316043883778330481377704483265317989264401013872319091654709231126218048706361088773340973399128026465641144753101157832104366680782750584347998241736490092130445799064468641736931877543836116824215892252359275048975625978173933944257846481549680143454410467317463959691441676629331550196093383648232219358030564600936490118159604085161790355001992364819533757817784231429524144607746894070666721603667114717625454534276406028859223743669412719918523439632438066937414228473047033330032616483737842176683174288671041823620290866037214566310199817332235055029668579158201288841025053281329939626588375342266392181266240945093249894517459639689524198245902807700673653055803576652821087234634632087067489151817834921145464354159155555466992509973219110075633172998574039939282925813121189384808012482411139173921990395292849389568290471371227591243020670371981971800670105552871434638043721331887073049191321416388633947668482408056561442787598824455055485754192714669453891238796340636181768703128215917580135349534305558811411256871916457849062762970688570949749842945188970012175370399837153608203639468815511122258420350593174449629778442961630191092907984848504748426939459081172664784818349758155835777242207560526038392229743672751194267123728655433711677336244590338829119175303321105585617625899596326560732454350619108525611695993251421636507199057692299876280643429767899965217897142524856092577818440020005041040495060632077383029503326128675650852551114908771493846159657525190124844078906035074804598077187776312181457618901165905785141222284216551584691747235715738221225867340380112789651954319753249918500282090112142293738920429397214501915551090372538194760978280675429966009478819627277537917032541645073376161462830242226337675355676720208377580513981816400494512334284355049277416094798112006079822382324467520139430667280102363227945830677839757482100638956944569291568371989424064098480382472542699375697490036105033129806120074322452290180476465193586870996666008818697920024352626384479356484604799721832908542376925795668377257662619542221438957861804123870420040525989933166272014725069771951514077722737277505608717262690035991710571342882154668416302850173622767217590505119964418194769767781949854470709278767983649660298554266127404515378085356323248562652780139320745425149951529982732761398005679917205596769565367791920001649807688111738386787510216966091273643323106852644725512343499317544730330046992875274565250632817611670638396530437925215728972888131683159383097134720567859917845058101779257531201508311596465052623071004664707162252006886263272495729176838794333466573495749320755140646481169459862404143322819272796988581740016220954866932690426470490145789314425405587764950715983958850563974278879751558150627642126685599734121812198944829662353112560913295746203149439584580481927107564469790417972479062736045691135468331781770764556003163285443202411088162359347398373950623843038359679664026967266955318861113897400661423554408007033119969069650851881594778743588867305561415427092294978752229341926574768051455221629129473936088292638612568170289666086544669430020927756082190579985686911979810050782371922756446938210771341729603412658593939282688660510201589133534755769410857309739899418018565101551060584945074500919782565839027581339160428330757702493015655645744706790060492470261225927554414432250170156653163308779901152934081127409076397038652562938616307911906677924731965831380011880115726672043201340963415333058772212008442906217031815388978568623042881533980974188247970037587482763923126780175208087799184595820596598372237193246150538948284168401732547018988365545601320167609820448275626747168326240719902782528556187453698265636588608407121562092757952447061168929382941226444989973706410629069630353467390007232851133181593429409895959748043093328621865895571723278556011461430083639208996329190665344884483444361344038165558689820320904878519175624633442145395219993204742670432228227377055851690331423873154245229891870421662355077996652004286126292229825960797471545783426269114550323123940827695522541590697629180146256624051871102171048318886537963787976617119962589845877379113461820172025301702548097061281136819815664380359668828167662539494587271093137734486401246733502026921650841840633853058374130295415641188205455679096311341256345338742103648891072378561969273226815789180904583066021410392024531822353453924820045947328879784161823333506700084783444797238119998415832338601445866411518102607100223955665985202838722377661396665314868276506063858025169272912125001602719968107649394285168039241308862881724875148888886456199138578623856875629571524165471561608739027121741542873907372476477629084033247310220432896517561992826517913371427947781204136198143912380791705142709626790909905937709774358149728140173306195554250008142471283713542001301794914865578875296598812884952782392751400118167069710549103610293458632122247042922797135833102111482489747868973246139401716202244184547846244510210793949775469925466195518825679451107741813653420308969744514155197384088789694715387991933267841309384982174797076411941706069456527796149703737512112773544057707633767819847947537643256936967112400074682075197836794700522408553105939936851453318217609647107183386285537333917368347671018428455574318269426125677515457005498869482380125165279702811413457376813416699414037892848893020274649152778571883378115273083890780113205613108911602304043755801971839370022388550106558584696931705768955575751621346938113451499494425472620167464037244784428543887155583277782695694829975983101648199894147646753201007370113622359617051092136202223111946711771933627888504866915901123322130116567901800422413703097246245040720885448430470793626484095055281302693083450728072247256840246442198040097269441240805428388932141651418276421214645190657152393821506195994432944512499453024330413572281035012213384439428160265462897856468883534483045626573733015075650443066215078074635397837149631205558257192460991684421937908090738380525078874430312901930588072891596546457427616056862248743474407013899659705834854898062452508863368545119849544111464690650161649187920877914376856959081357567009127186777353234021916924125148407214163500138262401968984168536914045848556439999560204111678639280298581253301910583471336356389460676578967483942929460435916363660099032574586902774835832372587822376038987360942411515440535527331636575500057570816249322122397986126933445634712139359949708758287276273297351809074839603540413458435087220903886803802666070885970532437257077262773470268905951860487494855619259190371860966600314503692665988769175496414880661023884444721914455617636550969516426302743812237529912754038371572801178146042670212398678692473732233854455895494461491287028388063219904142123571248696491246646151238600041507781878142993766338930190317577696523399165611513753004300153602340175410390646333872284217460375698170246471665420828953210891464524862143424629001676847714227680562796330197896951064782902668080977030259851804767494436615271054004475009119218270389820809875756155335060591103111700568284077518348018443007735960603406347128276317362301815527537903929976243453883087590414448690009870829907765725558996144735228488382384534349246284025027561676309083703504932443818788881168482787280628081124005173091007478253844981034453943306661764694000359987939287842260344156002012008338972015181638017673564731121404383062139457071996244943845615859359620290051375795274957636666563278612263973244096827754515219190543078429487249252805857516882174895007356246302047387332294674379316542226129380539651884376854989297070948884857853086971446090248238454489638353426856591111373998991711568380297009899167531167129901030154535713394966251739856007194055583446969955441979958619719342107406763182663821144032747615818443060525972529220191679627813076464752803681907210355713279554308381624572420904239581792697305415777584469558818037963240911009349539198955479406768921687571368727891538038215921085627619445697485931022800812921575970305035164772337198275455060518177629258113843687358761803757288985014887388762257903250597651172279313558024148932984257104470903817858355746027622393307810873562671169289111377937285311034501025481586933347698971798745722977576535704688344955252685502302714574838923623950605074225138715876289577908461239882310471367743648757952209466146551822837153470407491245347915301917971196019280889650795372130034438781503972132303538151944962841200806176942262022033547018181170520316900289875037279232105753714095449559292367244614058289208813614363204010732945563325726897935747617990112731186256994216087848312043480179138854135069434678417770681883772669939254369993374830418142675979405186018132800462718260411032686836954429428473674695635198053017495966826755492710916431340594774320274452202436937044983308197729233694442204235735964366331227069999387950585850908638308367478772796597393236005742992541243517125069670830596368836365597422282817089874477792550813662083206693142446700881550821044869050088672048328113312440135053026061082827583070391628708351356282574202062448888531671546321646571983451924449770412977151449547949234988236250243909863404487957829306344978800168117321162412028583347649860849284810882583811803655741135092932973687477338863953148359494167955405946611872405923130768472546793305102488703320594288251374723602251627005903565050351533009813107688342304742423636885115810890896993897380850037577173714180941649517218893933223982607880186788555518541957868376151232688043603660770990794605302089856624366933697587712718673395958221999165780973759575931132657656309735618196128213887198239141592851370079935647149658462600354695387193622013462171065607290081471979172088117675832292290383023595226063549328015888910419910585363686038926792487855358620951493445936440055429701784041851292166030844612712395113140810993527082430214134423434923795169575832639989597987001643989190883925118653624153997872703208021492251329510472217836892562625893715426361186865113425669356058857978194831534445926607708406894721353780044887442466203917400833579596307604059619158620892360534691255941304787966108006318269766490664553633177278708060233479103233572738018243535083386522084916895334434525495026891596690668934415157216652809291042859252237705630939932228833680246711041344122726487330667840827605238711379915311434261476972499853727168331333932521642505525620378999620109028626781682773084663524525913713125775937547314449204477440991315088654711677978396381114735137960463347458072613319540837884130136066444453113646388996291349399991070172786598658088748123789622021263687986039621252680118100860339902088230240370484776992778734943704689724210506508483450093466690827819483545249271277427651857779087934850467655711619173920512736051795287007407695471379544611764992519578328222042948979044160353533154763595700972670747477949504450582060914003800039035023176990392658920130780453199347051443594279233923351591667135812723502940458177694870248203694206878617369469831181211674260648267765909605323019235996721422286273514753182234968276719722493782709225265757572912323540813835186467668878982395851020046763916058146775631102708060084823227321904085359279218159893924428334031411228598753603473275771256271084600886809462931460874841388873517487979930998242545015565176173995614201221198687888752938256334336028881214175321165903911007542657827258721758277347515111581062907038303603656279801375544167516613906639846754255751969956745884937604194963744812961253325796898279002091495395851183999408008291801941816475656105350327936723788157615069525257377488638429171618303935746285917992356186374182204801556274064739406432972143984225631785048974603154529894717400423620819915707091578504795174555590296434668328857784915400872965549897399503077849383888446659096323270017765723178510185179338717796522450946220228871761584257131058858851150700474307963517366786479084361400734104259017407911232708190133933130074326439596331335490987330907734943618429326842109634237788795023263246638781866877097389633387896097071547253492117976927556865936718235076263286941659806927522935413029857289428973845557201436769784045439305092257094264413009382534835678617711017799942913170945023453792438857284271305915644264407968698688587495870363978066948343862157003493040679511901718201684298449137612302800080188186775004668650924177495978343620426945262146227044075392603362687036064681628875286801603128556980962407382896784904777042460338819152474895942192258545861259563887703388600432490648328983332963729671927229831160674314041792960830222318762308881484161755918998576592853310232421779512253424224820908366945539129817523069345961204948166360766811058030670401895767266225679111617475563581904895223962952130040657365866017673650130950052783495876680510329492182783047229463602409952580845901606672363621095178081938092763544125637725778582430624649392289693534688417351373442900378367035078222101945321497173577913537584672431324917064601775750010045685755215409149965616986967460930983658749528157926530105374460154945173577537739757744594097827567045885622134712332278691550183120183450577514577139180559174274496465535955711195000423030655539363161957724455367626102126696678379507076331226082121253913087178667542664531387665758720137685930377941920734090850966769570647842822050639205379664345430092717829891899472077514531345013507503321052072239711808077940536230986381225014464460950320699735074932216451647100073220189317753557547703340217407413828383505998184817631321140269912464718475390531274986863175782806256625647628784560939365001860585561293193371755512255369362531580717644683126375261112166554783274395117313001389574502654219484621395776506633161138210620996087209626395877951231488871597051287616337154568507597397644794286418977683688163886176434491307223647696868131031398717588753470755251883681448137633695081305995092453356580056299121142565679121386157065175482964453247626232226212935962105613187502720445792847919960385517155680117639323934293613619396601478083675781669004189300614708277929249205556566488847384698532191202696994270533460002136617011920668794755957987585977119426765241030178648719390728891843032048488819432582681856121439147749498848353712532102242785160229991124830094826860276755589725233771636981817368444063269643506766336523650482839945896798032196258690283361267765057856086365878267348408258558466561968855005547232411455361001471369528302493693688875504688836637770202163976531753343967309672877242216302193409806825111922960580325119774720046522220703062228534877892746417601690891557126828000397702798210556807653653406947415204950331330620177755858833265309806719684214254677295224419835150813022127289311163867055741899221339339374532293320066003394648404575180041632337171593153207402923791352611838540042258869356233029523923261755016292287449395701350049311861083751650094062014709897770474599185344662237103244293443934377400889913768800282997829280402140316247609022631920361295617987515247553708908741551698627047734643724188600949916749319904398019493379832593966917044393890767745401300488421808267825958935082528991798383192484129306756316748587568281478158825197057578748707030440691766760187093111227967756140966412916776228058287936074485209816920298036304406631177233067700316775889655473398949061013394703896983983688489966413740301093777745845022409390436874400676273786504160966183950931281741004124294212190301224203006163114195469357382532975735573990487927762830674183754515519185963047067907939542586263731954491076756905812223959248931004640382556302297880791526673675094040273741080595001235222392990914894756477762299067214749510923434900325086690191076497330227184967270532331353066250124318985493295361711693464660929459163535006863350323698619525766567726569031132790744518794396216529856388512352402816243586802479566040582495869239313545249631330644276948684531034536694226705553019609633995966250482598103278645677345278311947922511112879250888201774390632767415484884545494710125241500184781488852709160615693815752614646552795672627313791507601334378040012623435106090515899104058881825210167559724558779409126039857829524751992666753379001436839182334748479518111941474623121557410291926705723534843263986209014461673415947355816561572008109690116713186442787897455231945571787047267688094107859960215497710215711611870500499445452113773153858436068537848008033754453723986398224786059705052062067754320935499539984314195876625682492220896776653715493929481855227785053835441925531640822741576783758878500482897675289748973307222662954760158697750142705444325671568587185513001889076748050928648866194225969416792570802077815717317855179258243871052026394204533065334942845769981953808613905264065161643037372811147510094835860539575568881227041733584434863181870670017548341938052680140266611764861849021550217784105781677429932372591385217506518851429526550554175294534153319071921013032790083620157652002346146241994575122781289302573159781818389534687713905742742940404578004570070358130538629575699995411692371184411891963516059543681476560633385005690487482816041025860938712860182743700944101152715681285914000611362985108957607451635483958243914141913428044187486795900593680431376777461212140707148414225466122828537469596609029305796725673145015446969172273363549285621270347705602654731986851806822419139053513029061714489630894048919829040200570920418683135354290460656089962772671014406446745777338791201673311297008607143499405495949975493906434616521933464274884347891358134902850939453302522929218066649866940703896138646111068428778427315533774612055924759886220248798775036951750340302758656621222108032685372240850374096322307104523188005890067755120600834288523544334790674848113465095278570682179050651082102963762052913210195261786599246288932748910776122010612039984414376638377280621343269157715312847686173222271879456821570226842693096570010518037398833536220561437041027010011555353174417892619219972666354298893461927559216210043453425064766154723022634076371188740500172807058558359026273739966254262377688109428513980005556219977666629366446972863034171168691921254754950807041127455675363776272046084483154042984663891848545624147498633886253713644024371507596433965197565972611731340158342938124629780914273966757174375931008292117401195469303174123042024578323467995874949608483828006148037521992336013109999358770735911783500066487968490379770188149039705016647098499716070462968954575305991672592561200916335056560876511847078571734308342932765497228566323691363695283238619790049611486301493903464430270804024865042987694776892112937591148825544417225470545696756698130995872863895629075598541004526530843146213159692329863138740168089680870765804201542401407668342796188255772060242104970754791041086747467053324931897612420292866161753234539572433912448033585144432226887450039072762774361928031226557477888160155338286673694077139575079507647938634992949143724492466766334631810013533898852608225455845298800333687359453911916660270413956416502492713318802144828742661145468804772884860576408949326532936571998472960814379594479118738216395695618288447914422102126753236325621888359355438614102846291909754118214683907889103083531894577972246235630270752916142202151603478740282182266863062857982724871494866650752365542495365884133555598789353192107587753019454866488875115090895010897496040729881985627888981407492996363517049054536326925588282067883170697519663233761574756530366770850824713885678534836264791373696653961278747084785719853681633133574320210764988022841554972571588905929944051720915463244260411500810002792172130781567311493520716589810205532852449162694410959818420777297921476873346879165012552879011503362523270002171742024550140509648540460903177621119680309626574640956068600556071745342844156749108384061030251023147533525899895091948739957879157361728869516835578684157712545892853330224255775102492728198845850426674740013919553820895789584773665678436022418397508857079383928451077341009368050175354784042128171826555643885298769691467944344781299767692905104221411023358059707020783890282547048846345771515482085589242421509208664346197592825305845849068025248218573028231021128602057824951659152804388737186642858110326519298073216677276979046979977769649403263041224647987984746924680704910382803553011091008845224477084530480548859394325664677828890549981803567922354608206460374149023175543149008892207858560122388416811931107063075296718474952812902961128739606331284992811243154285645359649102798854945245176510327988997281102052113630635289066383417989286560003886952782128035991047596778030351334174388475641578383756783466085682792321695256897331811327347724563574566872985427342447807657777870508687047916307358880848213047308330855797433556409364371294685875347588536561897634102831946820831337748171955180863795245437225652283148925080213344348872863234603998220699383625490225547466272673175850436448544532103021644412093043730243226798259242260797083073201147517114637283490443530816663547055390431335695363397888931664622431760004990449198281163689553677737847046198660045684835864368245591576896314341389682065533636670583087703300891708929820995628826214615200505822340170813148931088232703252568266770849105617466314603736013828771363262203354562873515550348663844863862913266188228235077309927354418496073974789611561557437861240610756451532585439804141300863165009129934677720218276628912890533434020609450811963339803458001323798475306656120382575572982927855613646624845118365157163202075293726235564305094563911668047431020335544529953835132324987472590305214768228013891362289015128432406667675124097697695768737229181032246163625800865555393932631773763301395802960412553117766831768452527690195839673931028191688642705637632681245762102981566455910842039496646199922532929122405318536714120674090440911011138021980553280126144024311098823308510273308921773606151184209935231030145534866184882538344875820641977323915592032049684060244654786011494694169632156241010706208100925164659214695088564195496028286178403164630152379863812046286052334492064674435834681178407719407348789307370130561799534992036139171294600464191956309234356744418542614028503219158087101176800499496204563716449037978882617749937987380683163848439249285180496132435078245777735117062005192055848560723754733144297370817816827015655885202867697154400496789763179809123117275276929385915492795801208798155228764123459344802258464097836767467054281811405775723373175405065507801404106457776588425914989840836311455189930463091636518545588053076163725021770451381726493236959553513558870283433860064180328955656529284714098044879873725682314215360357053894468230460172979449903775374447839987927179458672507707173812002962376008828819732446549966225947879492522409473540873361724956745691499448242593118720426598275740933249840861658821077055601957741814967004829687826386154663650677016557176340299226885815138094345664442350599452137645468211273641847443348576275100803728081186534735038258373047490358165903671107266378790386883796723365537261777529966757195336985949170747245138023651358838305052380589718246924904648602342309561700642256223076995401359860317688861594817604668988453306328094955712394093191501423552194118060381680707305769912951597630677326738627872744960354333905804193634782102921334813408214531524091040579362594915236770937048138606924996223987673727063315148769407520437227711083162735062181890255301504763126914209939707507318641246323058830957802286781925648137754586813403317752780186009843640941734215668313280565304338294413577116852610273836706557962526994904276019928704811911671453721598960305637993500808245356551110039495420004647608994190221123993403382251854454548617998870633529558395946237327656810764059874065716073995105354242251119195241852504505432255989449818929210807523761533433366231755950713548834326525925049879741774432665980774467558793157705373303655085686684130760920457784052052605066189590746336139469675507136084376468844230931178687075226297217116047208097650286026310303457232655822593613965160327189323208640610735581551086564065200366021509374835169422713212102503106229969679158634039295421614767626660135982255463675470031288512474657201174748510812048890436933006096222012458767560050898152519482535646543435698092841695374524542422870624606913164999405913730624071081124322879659630953820543690700846105129817591927311370582869333099970420862498807175435092300461003795876525477204995303898411703698017272044661619934506780397135491919605507991293694767782961267887236273885338999618155848072932958451572991262731816855548615447529413987954410173822025657468545022797591999721898424948755228121932861466658163104223697261670564119359730054373709187002029397603613217181481923100613048344240282095731638313821415553281920947928005422017640377390220485252785257731170087130198968856763648312599494926507283078693437355833316911277025861650795328614340181433726391823581176278851264115103835073188047701542927088021288270666883782979290422873302843930347020579036830847409478192659335614934627341281599272174727776197710451787694791417526400109663814348594845622637909022937219299002782858218594824678431938646235524877655159972869301100169757589019681845434715799972455626459677326650164831724126606689795634317838624537688036206004211072283323909540321480066172052477834586083411544288278343229231207000903020066556188078624573218069878407317500831649142892959446283401270046446174758764281027221852843276080522048858671065893758017710652585856152241852642849383722620664540597034718520189859164904881536913338090825837226697588416137780032978293405245565990296377196891822964516461649027456715350083033553475116524438154562148738333584784866597923859221972045673824865568958285641773105175168018863477855923243316531606906852403067279472188140710826531571611157626549470941613379570760691231180638441310782889450923844198922133820698994049812431876616197590064764388281258650106093279067202163461071211195525400673134886837425878244291038186174458832749489928795802193773372584289678925629251139106409004426224661000457692551244552803645103057450145695874467030896563189418412045463231916396699737855192532999496487008344717784327495090783284188835762667805725367972738044344532345097275417535928767165862581755704201835816573119858388212694813498839437235824709754333729067526061640976509215979821482944339592168946129583594359023837358811596095081263249580264659376292610449239606999785665755651657899860378667436182321745622301640244669264623056405103398743060022717753494388261068651306465244185460892198698660489387492186962955798149618925903745689449109652304595689106366889766770858626409495858467864096809458102154353888093077184187878450044605857455499530854957777727047610318086358412002186061278274307562114465288307822234096364049407018042466814024702688102101989028710591858253299370875600008701369482932817005918134877742548629678468446920385640540854879899383349991126157296780248008140776418694132981631215320459614746629984410293626874238414830714825812391467714507040165046520642162634441304201302617859256985269561720187247197823475706487205903233691839852809418499968159615275951885248590288371477009392671975781839276613961223131858659324961891543970349332177431374802451152264161549315830179636448251496860187743692831030195457258964955123642467949188173880198007626375604390488348376356322656893528190724181581077362277334879746425635931916626917539177685673532574380181578346424649434166299007234172972978047008674393735319901896156802763297924487322782395205396962337970903804251139396060331794320781023009400736691260998463562212407705371427057730917496661324202977292660911354237009932309600034868388967318882937789513641448568086925500494513361374122484464102647445778684305086950186528133759253245569695135046014217288962460450904704779191219569532445143714789200253918847317880266711487965386790225692774558896828759354529907135075173702268313782822199061351441285661424813100258732293335208271945905596090148685628511845541209987956125265337267565447787128935355478446904662466607649307364207697009089741086102675914232573141689649364979032603013343594319771850501107679762965367996812525726023512413014395852142974110896845255535117221578908425461865716177465813634973344503652463408718749291485054599777696824373495074085099310837066032278219238375773876298983961088665598615736776875240121808658354042977632090100674218519265924042005797336528083622167751086086053416197827103301251429733126253991699652503355009735356220836181072645472806461882469914902727953002746992143630756068573815068616107069961387432455525789969612053155285063214517493411349663194036143085011869453030757219537286547139735145641071612095878507410633173839331841930842233345573478455262734145431335479527528881971448222756956187822830290199870881008042366205712501808823768346361592636012896546078126188049663992605650512724390068199285727560198230889443035898965970591046960776339068600558246069381313128178674109844760723910667768878421200761841950172756267700813491145282769515604113073162538532429595259503424947049958876569690732645384974719591148457556849793870430647692810205197601854967201696017783645558199355626065375963844801954070571026471297055644407237790296919955876257808761746781735528637967276001289989639646623255829754833252329977649185008510585634049931998173746887129610808925047522785324958684815045564540598303683847455844027590883627717890039421699115842634186369081720111807487291976094763788961484180395860529740386698404016390473968200108419258807671192465177254788852206703922118693100309102073526428552531949408248103070801139821969492299228537499867494007493781483459224070241476452675674740676781902593156966385715970777326188435947379232608297315616466023836098816484729780894305086717231627639851170855495652914245696599181331832346767657052603112213469082467386210034262167005533119807298697328020911132372826959725585623085768068021578453294475085861706228925392203089091175622057158668075360940584824026274203737903129052264146165096570462975181138703148528530445873908984366770855722667798340833161365856201993635592953245282514350459610306310759987982804341208161490700935029425814165561492456698059229548934757589232384445139655418019510166166597385265324157986416233230256251836535937095575468234232696826989741986932975876480782252899581736040797451211412557550465812356994093537470453216109751295690548954304132133094933954907595831629973223627285372527690836607133160238699947624067325412069502683873946710694804692200611609528195325317799440364401770410686014173206415358907991356203685650052435126148338712111197924183931591670515306259009706352181800268028586220308834036403099817147588866575989823576072500386863248589831464432046786167551215501040345493971383653967325124259237082909177218478095374402911248378301918595943688981594603562323779103567321311307258879075799912800642987653028733736493937843809145469681378965692085422470193298143215834895956409338788855064052981125639771027668999279541548331814895784129971475896660504772261248526151362988996684886760184956973337798436174893720905071078492023875128721253383849487123698733628108561872590987499590422587145844451116803479164821418292330850625266143263761317502364983037790150128976608660067226672177680648657055957185867601029264544060098980745071972343433366069022387968208577798247679951036724213652302731790916972367032469961957184928666771636457777587741236469731952624422520484818629022181765979423679829313013678888977056495527397733087336102079530477042900187489858115461355602637917388638485197624679134650301049188059113494225984612253992019763454891803053656771361846992292970010030999468693331144405203177138384955494670937929214027470170077570528124221896616234469698518207689716307416391089993689653405976247200295943280806285041720452766444839113364872818723986323748534734430996138234500598383159346080141601731708317055041056382104846131059657793144236395643375784048743938743698570991925711054228340921437776170885788372610877660249322279292258952657844315271579405354684099193863504960389284943857178663314882252707451220932533203639587117881069792672892900874752513903103638429838216462699134552724545413041714036755201363520977693510632246474032618021990211735219017330890087332335610943087304373552340857146736886738505417641870704259839300340826828882563076166384480111003633403386240172312784758604817413030086379974666364981580991705569668024790501803358450351230448559343627495602297523837896120948195482337948543906918910791136430622707633736792188621268950614477199442917155410065519679337040016153403345297942923034777371205208449199030026662225090123565167670869005694560328991650186193670676219739469959318648860784505782872461498474638944129495156649734734187281730746183727869422598278028527593765716960950173943142001316835759481777362160245501075966437196221281783613885792999483853094878352130162200801881298523372056573576458015651821040957739419465666803419328473878494889482285038197265729925410873723053437010177882260161836022310864433906343045369684547721000005457843420967748684268275636269068810262445421481029008799752078400962458788975749733567391412223148541168041823544322518520299527701408854817126289363532735688017844277295844005078008473536918317564022982645279582193823568954904344011903176350822892033501529780545012675258424465368339142702152158775659881339296795760706201561228159507765397185800445976339964177937066451304541347610042989770025166420577515961470860755645372623261154037437047452237178485315616887290222070870538446387385575206877658593136244715133572398150084223727925504859538055363259065619968758334290309218289578247808011888919151754615179594721330600060751358729425843037255635712562628432389828848885284744555050399637184151445896444430931531929730667894333737591999028034555277416940882434016711161869916151774201099697936625388665402147160439488512308387317359346353280143017869491081692316046544063225907781128539075241631422032946294627266466112700985871779548303380483967440312766383658452604008153482907406975432312493633793454215022632939590016005561489135651723264067952368481217461216510875103659409169883398861732071937209764123605043350209397094468656601426268986778967555851215619451843761943670401116544818477759628969564564283571640705453929777167100463858507920152923300158940327210782764486167438014447934503341663376073559140317206324010387019122165613443231597594895216258280302930522947592510777897810663829062090356910603341663979534343602934772622287776688410035484727030386901786476931766870973783126215800768430998984661175264147723014418144695979682919910760199965773388701314134964258258857705187876840800592017369355524231712978715268273474765209778202309359338570795450908630650728570361234659315504021061176909143238799842149578235151736240392011741498742855303495822490006070517246070621887269810729252112934986985058391623139613822281586882236246251698461645021221847813727868349472984102426878620092445056060841314496238023248792236712905395157655374524089314594137134672425580078513026734793294846190073599150202669048727125956842288735933770481496156721897842563260400288158762801512634758514768472008986310267035617597398994587502980171540801054799306405222362745312789288675840411846414225910791090048591530504871464068353169590534936436320828163672373266950666650512728723562461586590577535193780460175057579889015142630377178128795208806978338927750103265459989518588911771154574206025358075332388652347989788230500167206765584844400055639778419338007954853825699328444838059042639049563948188650650281420247322714440897485468640284636759075234788020768772912358776383347296837103248862779228699486980665309599806313983380275217895005543748064127741052933663434148685578830721085766817814373024747171293904350102153668382751213222688603601376220558698008141179810381134046016794355006991209217214830786775020079882111593955352372735884480705369596742083017524064089648015967179928422515483362849307994802635009177650422241564878535639579403631228584222272943171615753919960991139144765018933477291483777201165465224128308838284273048530052075757400940454233564983373053553373052030622537214589768655948571742881792913811864732408217911398351375524059005724849298983490518792408426295625411544215036739565763085207662511633910169842104461215446451794473978189314595891667530770507642647335015968622829330630811381768846029628825475322688120432529966923962020300661090979965812400227914818094948217621530544811301209080172537861099706808774026522936231037794921340975451582116143285171860722844043396199378761208319126298871148864239929174621784805274003634886386509824994671096404702092968176442238225566867091712374635789096407574268473207437137907961836951239106719858057433133865251359446819673873804778935590830386230659787321927988189930497242625651104234395098689646703414913485431304233907576139975648854904634673207732910987663259708564330346709506277611501222362026563222495270463184404277761107332410309018543713798500290245365444818576762786313237143811439268823577307890610495812104673909375267196673837874327941982792780634235373139007349001833698429396495829806658416536949018735206329648747737945625164083788312649084617351802004155343616632711019503612059988635047050131754350576242964430183938247804851267059517243133696526604306976067255918286570408763747899293087819655810033069777268529416353529570213743367417765806981935855753664402074053926588187090113281540234679458389863762654839469151164591700485626948728199620463877482695594107819431925636294625264926091321448326075468667066715560261858715017583659148754951274106029721397916191528342816525939115653310557061458777257857437816039708154841427200761354543167089923835179624658970948329741382242280321518552304162798566389201617920715750670686615666638464497259288659325642916295048834140753386938854259231437061512559797923436251117776775370421278738542165015809207053683473370286577098958225883969637166107409558718317532359337184496904975506235060068996623387048265340567556931060570578970707581983351402536569368175992441478684399294304709969683133372879949933767192264119601030671957159648319537353593516676040374744956094594122983607066628146915345388517756275163064100356392967232895553535858197663286918653945555667846258157809082742381262600744508059173168459543436690089264318240934235197292433460356782288957258700203629469863037825856767099575212887939001376776552216596434032039870633837670564189633596844981118534308691786316930790319915822245766176354570131437003412514229987198815289569064516800000287895483189252394847281276399178264225361291872535812845897636024427208731377000850072616041246749251085715661334947589845518103491013587534239990704001507473178068411219249891125484216585817466082666597417324422657939434312804719562684115115913152335084684248295433646010568919246675647322773294209699556252267215348953550342756525393916422872958822748203869195238579353100118621788774557339142742557837193371000386567904291889352749032442075699641486217866235529659216596439058037603612205944919228124364351269719997618137681362479762562382040115970519036289625611393562227152441027793914091120804957702147277016412801565189318352891622005753875216676379866542813708657593603613155562047175504137062418951716130446465215999339510191493458009055006748675527303375639286636183785170494044286665493287153845972500478241195608309911187310259194942976891416165105394791879728537526911533584264045823174442998779294154514641956757593559023816191961949208476828630274422363735948750850244933954521917986470232342574459213466579808060941828500776016098157888814835369778046510305292304192415221541576360237055209961850671565814505282943609411442193634990590937758278432715180660726958858511504958249095090900614460334366705886279165969212606902478077961744095456528615888571589932818217716642764137106381735646064627336956285023467700242653008565725071737193219231337028147010941011702968794170234637044317526509000975687002091039804092867762671168248835985826676851280935633517263088444365502651815872216180194379185497823762138986519816645078692485472636542171491130087406310600310389158423786211816560812064601278672350283423498060890681429718455435255697548152749073605676662268724812637121823829928118658157893025870558101504056061095312250950373654100401754718058903950850471241647382229172359693858791399451098645925818873716964230106650029012601940608115952156194283384803087607975667347488283524610883162534007655718770014628523531975198590480035517569011198704061154535738015375780439965262794522332748566646784734692150313727070786453489328324049781419764486058818575601737891566796468966842858745072556954945749898827427158195354769588376573571451795899295750828499633840069726031076374605419116020305804336439277874559067632172524326552204899615400242185401116471478338991441247845282313472277407691429395108662052740367250888922937588503781767079551570768169246918448863554064850101911024904605828857425236507146338035625151482413252238744631105843939326567101519471916202672175840718954427005013490351318412552676691655431673058643442766040276278868525489362751788089052400464255604131374231623404795663704750081691620915973866059132568347340421959844138393588628541709416279469004594361070344921558286095600042598776156260484163836149334773325843390863693919217077201463251509451031077878287171237791787750190151990127145755958873967174937930008034193007812430673739979592939296622247735535616837868723917137437849438949988381703130450714746770757180196361638749882834061261584980707359315529334270566857425856174435759743828395537526284734591160687643244537515443979817668386538122034097924128043821323319349208872835669608323445901876370245243825095747444476485210260905427740300683846151749249353636765549119087531956633051766207873243042413774934240374974927776322275726280342544099934203694631104663505641172485229585483056129778518135563111156692949118620952838254567834854253202006936630961723430963862973709474290122976682725386400264595416444201142172344434806044375172086356833386533552448841858735599099601985673230615035400549587201373943046477504847396131728792638185188271492710638435254594644310325228487179608871340457161833562153570281478578325437403776824904853448201199829592299272220834804066974785909573207067670348617564389271731662394098451528420766724193507098031285929339272552760150302809183761986902576316210932898046683721930627361242756651555589051756458769476280214293820432098226608302291804936269282987557705192597382622719032487710191442240855075710817415039902866194520136952474666251217586993468203274567457074314433286622784815792494599467423724511785894109004129463853374739100574403720618125818885097304487813654257340531360269100617959057236457723340661651723486195394202552442122009016201578742135429204450544254237777031912208487639362041266088895598449029427805544258831014350793692044148151155814755584300777616509325478810171062448970693120540187236584131368316581782991022484067848893971510178930359562456434333105075729117036950396792057618265935410238528256290354410834333432779248185140968675278441505469711015364039902489974770646140989902431844748156125734292669364667775916126013863879670497616512107260069475738826230341556500617057597952235095267244162317275502655646041024784343509925856524308600304903848268663130691787331052298391611917191673840327921065238845641323572027265036561945775950371473621766879326184805960225643826608290615107727008418886836983244399676409175633652513326525636762899170922917316383093256523803108768180185939741068209929923065503565235578926334506606141704430266470840089000128678463283323166944496758412830480035056430931740253456621330904648334074089257731297274600056508580582587480330130437732261250657691021012677963882799883853296949748526786754319483267003690888388339610757009902077818863960785416189056492535385750432410937068531352626406379301636459262205893168292912907261085563575012112494268316712397226908241762015018891227283422643861053935128422076471130730957173461102890919508132958306804833615237201840674875739675602024232924332599763184308832048030391632776780445279940011004616248009817385230019295372129192263496553971245381292654561053922904849721595681007344924102302381268733798952780702514426350190811588557262301320628845264312346519511450061669140857361956137354218213768272170312690368744325002981300153519549770467242805455698137293253374056455263133092054572997865792367063013056713846286565310355114262317973056325633035312444760087547284195678753292238237945298433775844670114373389972280182715097552163526107363618641577404247582819147458656280540316277600439572675207142371862928609049309762555916473147606949516391450536286047152420665902975885022705483979720432920451914305733791699652187806707477293849699044791418716214191165153958441430018550143333851438275280862398830952095679160177242787924514170468111496879613023800932116055572262502301374354509999772883303867547982134057615066664235906909636488387534976490470496954347076105710015708930962458856453309753140021059315366253736399367923071575357145358868788034098938649371644828116309223961113747442689467622806374800134636492530860952650387816218885279641427572237340533479171755465277912470127030349411986596733529589956630330116708673037604941964935939788819015657326607292662421344701877344549131630453854889729530476799896012657149205429114237199912463405562234798611140986600972210158362793796487312952904684662472672917749185900828065679500557783482248425576667593461367851169238440635042992994905335135187206826222959165971072737559557758078680556075334895191021176038627622764443795604570335195308268943417069552221384230781012232836883757068026308966656677268597936202659853833873266653898682033011922294420459531070451188329437429635358668354681096514582368931753822129063829549263652080413804147817303554318491656784905992613497590279883921784482478132145036697948275336196687178785428846082452352898283875932426076120293883052526967280499041109287324978980771676419804214448978030129117798297114588009972029811307869641389083991175980397528621982049845554014517053095888909802572962493001308853429558117788389206384857221276594318215870150928532851747376706738450837906321404875451626604379325276599009806506748895249390615842943168337109997638766839018747729240080896421100413155690781800433420262652883068339916753816304810713003527739816573401731532309901980427925838239367789344029234370211012635979131887384130207209903848916739622664343016840880665504809074458709155516285233699439383441426348535510074592490434357248548354539459281652361939773865790006792698031404601422943184838530619780846401163174192673039258383549336661141359409516022298458319153720285599470209373574596841389922429778055465735538537639945003679507378022229040553580070524507905159553084441638770064307259620833549432349240028349272199918783850016619564545574670271040454838969289584754372453945869663029353541783234505125092427666067108884844108511882645044896861983948777331351574662293451614279962220206278693239970232002907779767189383795671287063429735874009769255249711212891344422519105151267746580389783965536609555730747826358945894301826694233425457964747489010602316346512845087722765971530654929441275629541637577055129557039036023992526352613331384700231514583886420306578593660351210642184741874047788233133361805195228047615582298990467558566474043660604886141236812530624092627956911935232307356234417003513218780481755284789926677187612235100998171123694161953036337911445181589074760133572545039292383886482422005976061715254869542214946815286453627700422245515365273884115149337070031568398592284072932880131325920137067155592305318727383488833175140503868555674149303182741893295657501391320638292013573231785289310515995030206068931421673091016237842204872798862547393067162380813810241110114463686824105360609196073992784645480516962795167064339862788760827747359764676666909339957540944407952320017448829660946698255757054033985974529855654882117800805881051728063682043657497926417227724623330004537896865918218481405404955442950802671708877494383283333272297135192358263723837900673092709671616758893479102476535772066678306972866493239211065440836762766043870682936102326855432228598449407914906445270257202392890748311860979853940934824650839841728464299142759737816255972847391029510067010898985134763574438980042775584167651316170063961765659873120441180675551127158898491712658773744769335112101520655065921290237266896381488448855815170746845464711478794883630756637677900926725690783304799741337367879738279696405973145940302688611882916504055641443491408479053588805092148402159388699782907893917234604106515995266452469216488720093307943437203677557921345826545172739975600748100146417725639233913412950893296372608620650647801561924396925250573306399611970083833542690259729032323392341814064141417045503798721179291292124442099689659455738381067075157259022353913312904478988085251025123492910840465811003260639526307119661253127196222869440220094218333861835157941709974284842133586416876523650319644171631005878252026752394982605236404214946394852903795228284107859018258312920837271852745498686189806628978801307085498324806950718145609055009305278231394795068852849551831283797051456623111895268610227220989969519652295710613434398586706551889273037989896404989088875030738046724472617010867887493748238276329711798614878841880710177154610136174524242509379795281888206117808426082928876229491894277674640633270183728810586342205710597236494241319895507733333681016513266745553897077647808638382161890349628635862124015859010987807564064395548210329305675741132901185868482360783328310214395412861384156430897009637367854281013750625477661857403061544644051097106523343452424291943545782910997087715998793216630633379439770394317827925954420377544858992185196797357402811070074905957991719203156035331578593563682527283816977212828337999186204428247006572271981310716133989275622713928295409705503174734947531751172332205432889731631259956999128003433191329882961296699807375130915661362979321327700515411451059585468073244167152908226546123906939366259449155295833541803198761091117050840372712314683239166397143219257420704908318511970831112097072939609881975478532303866764395952144076499843507460233828383687393832408546460532051086516202552058587437751174091572163824641394238967757654151387135187016630950098598804062546448294157575860611478770031637523885710892050867549869062310355895311954796781909491915494230765219118937383094656925066431223148892655985050225359879056024870301674805196340117135456828404559718037091081436556663393030266213529124904882286541805351563422569091158445289513627489857990448566267718089803802492841594576927758893483785726719476467990400134473738854561303291980796668686844470584633201081008884565224115252214734234648968575286751771947307334828138714144182859171623778754372458526946884710159944746855392221341579914674487744194597003678321663975365118820404204449806766022891863746337297812593589887160999383323697449315765036874531257369580596054762969723166312788122449794171760523180383040548405752093510408875016433908220119062050404257979201263063749375023498208184302028014212983928623844393491912098511112927443903117232556865473764558270547144227129381291577549825342488367922982037498783800941942316369931509706025542046918398449097472607791224389548040788358184414745039054500319700131479091290739841866441695203068463079710268432054750159750571439737753910442962846555837816902108386067329072102532202346952748510609613671631889649518322617188386676322163310039243117401534292292967799204717728480518857416987421777875200904298223566767515426876718249421562925781273335983292070251733257576082193485730403235887107221018848687551242196221635339705568808884864156760151657511996884376860434169576726672630471993859240389334536762031119832089512446903547514665440291920127126352868576803821108285623918332921677598775297314351379945309577678713994087767262377576429729101917783555751282145069449517664430097685469752996207629328360966998427485657085929168912269136105530224315089408758447111887237236926562837680432584135095986756492746068983618686707857983372484309183203625464999307303233221568032812879727709891209378978658497186257036479837980702157397177183072501978529027392933081998135888942970071424255944076124580261920415091524756167742109205637800656877473215914832612594079430111164310249154361359953420787746879016676818024767807730752347317185176075255777315754262140233589366302394394174580649385693257873181319049603332556178813449044122316314472680167205547991734701969482082221118901724081837243535792859981378796526828309325956291170624738248450248533400025989357759697668530598604634658962018016949326481989601635636192437819303172647379933233994242929305443480810730801502910252459966570779004017714487363482191083946500479821724265388654943189154999864390503329757345142755189062299133625387373683738753434483746849017903825222574329923981889001100951579947625296503916562962568366592902551206695013114432648277894251310326845533035773140913893595178676846588753470310313627767024254903691296265164197151238370272442264262229520262724141467487174398238469044497118779949935666061367411652268768488977910952457417266364581357280991943081179817873035695625446936926505527959535948053005206325174936695225883298268597820538678467435893650007237165439019144909423125931562890033665926493931921853654469258319915432787527835709187084589945074708365245963382252995407457635333099966640725322791078266839389860155360027806594084867675942271100677640101708065907958403236708627489420749147682582987254585703208682244596063419600180998046653298501460791531578573041284948673004394594862791124419940599729159382764815032003886428006986195863557636809925245092482622612797891638765963088925903138992674543962977995571775197378752391750955646413192511292734802396328866331847188758105263837272794016900373162242143919756870219280442151308147842968842664174614203896322163878546964360415960558680157564184013682336948334663339037944359116186992991121376496849818459128801232996085948374994976811848017400356339294996000604696952649929613119213614622264911490116765201544488097314144054573458315965228604314634225639451529653221044425533766944008472612010952576414741568983739987358328957658838426546298310253889771273159553726440056510522168010305515390105918574117671276566696290526616433027914108879079180006866733186110605951516904854977381825805802523882465178868543746280327111989967529801013934011499950827304973503506040569313473355661208516369805039010428476430225293616666388771046468625833381514045503636909433345555190617122592941782966265546845311750378701833816642717822224422075415683308613545394729653714566039770841569428646110429165205817907397746068382268796681430212459643872209229247550198524141796691209560999338129197088679909876390178916355997212069219167075217047845388087866123712176923207954699010625361581425185409014458974176693838821324355312216940407119472390828504613288752112265027110544165798126943939051937145579462895648070311479985039218635000748408221761736347087378012417921617390219290162079096300285048007702557659768218658760193266268094014644001635739809529543501005156337402404117242532892407762551340810144034055134467527622156008202008907972177868865465557477905385239065421225385565831833778310087792851406101435194604765576947875102010363066878255152365146994695510952416114835674091947850683933592266440381535672374870309711464484333567125742958420873360628324611752175663834301842151201228462943357237278159936107705785635420024169459926334125250534744268588310661310691464391586656216704340548990527562460831440731664951342494098920556656847116559244839864234942693172622663741030236904818786800099135586406852034798189987051247935221482635060138510020605096927810535718805431274938217241757987784231607898122323645860713151490256944840564199778640432375636607470466491602935548641106492679003767246976936525070804296233790159982331669042376872995451693164697052017815823844613817475285959248044018743955106239571482408089498701571834428188841491216177675120556576125767509028122745614908374083388516514670206067278053187185552298713111693405403000219894921809929033467262023593987056424453541850276377988331470930816580627050369175931827368487095111169121632146208085883697950800404101218768949530789692956556235699233865985448106564218155326065375724032822500087345248648842085736636384363110156364677788384562786799620834242506047102105744135908579576781185053093697556976625770314749444392965927052155587335930562649027960828583131748579535593056452513071058573302658482114733913511938249626599919537958542031264064859796281928684228185511782778414315530120715747950041548060132223309142571943333060167914447581614807127233255745547893316590605745241895589208227537241475861286300097599625480482152649213997658161970883622379404580119521865142549710703571299329128110473609201786862857346171524476692901838577218696203251897994093661890758289950722869288224288071105964375996280452910875938112366362710897286952489775061864620807944371374779210619393577017296722207701428029420276108730983191653887167653597555366177838008004456651200826711535607173514410374251682050943614473005294142959492177033714024301263210143215645939847231892756402153333375950899578293903787276524933294952678502045834916186362673450897511848270198343261676321350815023378721138351635913861081801395359165548049280687203863607826778892566366113678673418909366006859008287160855729168024320619077312768581686626940753841006745604041931937194154313165040804934792975956462516277908444207099058242619586299500430559265606926452660890330334534192438237803607478061310740227155009100398148678873997182382878418481441341445166490206755387427305655163421877302451991826240271366771871459090865002568493732990858866760077316224544852439935486875709585584475818873952009943314316280050868276626162081173750014638357424061170706919270831760201213649829214628820372087861956106626347529319011713463760812666410549173112772580295730538590228525202828842136405385115547653672394900800175271457386946811162538363438535363194386260569760973451487978805879853703693457086800110916434035388047735686444702668832534780779432663907923334919797784007387027522648919040111757174110565249802709224156313339172194877180694753096253200302143718035196589299141372271809712284990942869701497169784313771426776144772279639401391627637271255359073825222036482504973383113195819190997557421144266957323922274243006520003680146091911249681658176568564528312231580673262806632857628085470885229689645298197619051875154651429883152675124642123354607792649992234454425787260103442185247692102905019494617577434700527716400121578113174992166536539905845184234778538503632306882675627958764855696263471276518555306370975136373308628112975230367849129641480714662920194575137601873955503768167327707244644815686341957810521968709266246422627588644638159535318496819817059730733103635963291621834491235224219165958109800562713518714305563225413552444940769342846638197759283687707337581270668099236022049768996493596391813409778615462749237514071612627125963814075180060301333777113374759671904631468353381065508503290588810468906112940637930772477427182618186444225641598107027895417156045716115289790624303148417855340040271834834126861142375059722730542851530138713584750174983411991151878947432197697152912038840744347250363196117058181993728308526155297586609965953031313170051557314741321888970290951819402711051079293253340799238280656707300024531655022302456262127830789307243225434294170960046716253673980839660758810486873353137581087713193034783268790894750218110054704397209312377752796443313796173171813332593779391237986054092251448805311633091113332707036521762481148237487297065670028172602987639558577376526644572310086986939312986664767931651828368336813145892605622368194527874566488309456297522699775294884182389713669956065875816767988479842382725884313334595657381784497369436723477126662287504676042768788779609092500221397185332573779842252469202372029840321746635553473716502927379309242626359459266337108698280124037546056055869803543459768452250368063922227681788920337132522014071077776423332642314922649372653061706480643719696461868529250527148042368994397306076933291693780031014784490275190383948180046696921061281518243122558476847048439808918331902413344673511618299941655378661153078371225654885509402741673140289342418116113664800507894081462747461520982244875065496417505467568068536477999591993605635163229692909497380464141998090586768178266442947324068123711536085773978675300183094835720704277848483040976273300565493411030294005314906395741341350092779555500163763916008838315630887918253828260489865279545551306375054224359645578772582851848517502422715758437569807984082478052508515071660989107720074727459919410849485664757930745237811950745337138670383487770303373304805119766412523020641807316167516889433758416137729318858441213866350561496741614923837516686819850348984653200839103125892260364825971681773679314743783361749949206860065331109057101362947488388001666966457784072674516755260115195437251785918839373809317226229781693029137467199676398823822041772350322381223227882384746954827708865311823327064296078726207680327342091550057794451993378882561518383394559556345971912667751787938187188374749336896858634536264507127237250650614257288530226263654526315186228977314969593675336733522468444021478288858173360476524417992728620458183705786907541046067434065566213296294141344448225642093458077899864615386545217732542480540985379353180949913921332582220983532630339431026023449183335575663706193791784531724339548658084966391724984573703866733400378755437174344100957213302826347320424064378958518277962093045401777586908732024954164725896733372237597713788566745289719776620270376115539805352746638611505312629249130907425197609195064745319340562941718275308516661322182381907928405271657372496408568842292704920191211375537485450133337268521530917245703625939935665757989126153319085870822110723194117039624454920928520839721442974932608633845804290769011190288625268464785212273409359193656406764612724884844612301592133753983295836236223568481552334197699656592411470493301759073063557293165364596102197886920337964226669298722825173422768178563034905112816210823139286513228253732867449353031424769042128247978268689711766243385939639971129201492611118528746019689930631699673965605089669405581910092953164919258424947493127158237108333715154821522283175344709520822380377292453415571835262110750898196064018963576801972649437843819225996081910701581416265117020034050389577023733015939595741756566008443605709257187673308563817571337267125479033620293100061669511012912850317803877564282803902215775686688862345645973364448377758836736311218895994587984699892466424300369585088905893463446882321212306021214375690557627217325371349211206291826896324743478719618626096709598564846071797196571742290497183866905200050380601485701609356356448698124773300526219345178242948691314791068342378342374379095144973894936451345037817983185106836602027828999725508938894472752855199207073486204472400165348360134467239462315988244673904520897420115649555910329598855688967238884996225846984032933444580919580532802147404214123601103024224618682241308675508665655727104197575272347489780635338163026418190312420108261962619189327808245127259741790206701790645586738444350311070983166594711098556540658682943479658987957366512551046756475514143921299793507491331111390488812756160499929217496521256176643951543338580141929679689704182158484664710429514999244226410838947037061564891267459437327407279677270731108117471494369031159703000097710528948381171774232704346102658572725723049976081101041537717791373427003812533482571287725460525546504857152899406370985464704020455963089732002254304870432641765178365275209570328361598203792917659137398513127178637947128683954975441351006587396635107604865198591214581378841250919459439363568478491037630435429682289478708061001668243037337382422450326116672759781644461910982907501559898881644465107078202590843084423156758602467868737531487631611229936542751682947452696555022794316952612432302664588827704212255604864057436322156755709751241474641292679899365542757689232926098693675718653877787170479612814440422348601135636704371002504295350443910155104494442782304445112003603339835395649609889802555162771452435940835490289929071970514999822164847030191351597301532707719619583179213403256134698280108271689840683973488640076532744286716353944976724583997301648879019006770425756447838093933513077388938299474729358199843578055481462510160232650724613504378603893756121672084329951378260647808587561547718776946004363246608094228964693149353595588682779376040878126263114391062167978722361065214361043790649945567921150087276394688083467753779958752584753922520394230006222476087615203752984892944647784551525107095001946731347863931417651313282636178373308448817354233313151939179265503778170470531842127950779740876654044479732096204964605912065381841761110736037156513752578475138973939051312896468162714940855591774254639148354023080780025053923975831841088539697092052164081524429519607512795961623408722803326724134121636797710525854762654561637748201661571997172645239099031537733461742047480451726867388157389848876516116622295433684263447870706904756555706021577615201841524650834908738236546712116580548879191989849437250766543800956216645584175537134031998051776825979385285051202248545815245020630616335714621027125644612945942618271666435559315814462090810837858841075546295469567434637794121753402435330872386118904966919201572183457079866730718601226795504405130853558660956569823589094449149419219335097093424332775868621539002068130110945187261198198534996711799482640834460688269316501200426991091726813432214995725177725398975720151221357115688278076747560175756347918533212806643847378025163842625453467423245361563684100565293805142415445867393790764224427724144680444725346886002602944638021754904628642773063680903579208200866986808516932347824020715363097251843480782279227469590240653015983665813137139863316233471239352774324506493366705444974043966769054665224929718897341525189103714950921748765546546528770397282589843932604100375943492126161420922911606542820040958499402952331087142592891834474740229964583914627606553955221744092972810874795510821878887215933003920689566265526029104566782438432400768030720529708457945244729083312684353267176837755003916998644533210637597433654361937030940853472237217062474736429174155660874549574151106000089220716212095725985109747114314959993413572487732899801609874045792104824246562422337979702601201306103988040948142789483445153655078497266076942142973852326179752088929474504002341443154851753359387360549099824547567262605641788543626158942287468218043716077774770826093457280408256783080059909515599166934316664435848193885899072826435314083825755456264075850935638250852564921244072832040156541567969871869472524335420357853534626405556185957853878914345914751907188249568826922259987761705688305200199887189589733402849853085032893557524086931285928731521686230435769847519505405420787034656472282037770753201484280887802605582226529476515720545309004089537215768391898582175588688279379992695537264174126086716817664463216997210339950653132061403168019859186972497439862758409190686304915836402284174449066756794929787674995383502385890490206858724290461444009184742274913377692936807532707881277344132947843524497014684372667247212035699901159232165354140723047962431139513747361974269458335855105380932185248231222299159113597506217598115753246569895289427711366096673877094282898108698425707707798880031784979032167190408702358844779298863688235308358724277601691175249259206345317397185268657604765456860788433457326978475498530547083667313622748988041592611520408871111161290288545330136076673392718902689868638720120502363948306719564607777944458930711061209186966543182671702663136266234547973638898857227329234558291262124259180135960991286627353704887132577090068445337870959535535824974115728559166762984611156145290558472337310000890500452348253056953856002032493538812416069985781592586540736929171259802322569817224981456253606952654656560914532269494634121158750747130842316172286647795545011054615373746088540185769151083585314650920787432615269021767451228910207438792287629968347248279163758490575387519884055766811594473054467747917548483269986693722631072053548889803358098353308384939411314939522030626379341855075301818349632396791397285778712056810864593805436416351890536893807078757068101407300101072687863391010365913618345829889033501497372045516855281863134184553943967819944627599094319784569728727664515078710827760050040090745324027153244620943290320174698856359677228841790149357874654859800630633521294140367967704697418119302748257569412708396418394545388590848410284817639772036353365135202093883429463764229258266149329684128415248128598933322446352563524969931593088960184649550645931511780344690322328676720709440515838755416353543943027050671761218557551674183683154498661193932814341364771824863473844558258634828130704402051953388412320401005912614343487293583715101280675146822699735343031565961381016374308685076442782273100286455940648070784751832875002474317088819474363207190453098060353751872364196260968837570681969219797578395473135499925528112700600496012821547576794857257932466715516307806969749957641137973714275915551119872446871166038471130678705180021764521249720367997839394844530446042586971150657065328854038209808062300928717580681381745228973600255855374163745731889563726540411404020114357067609363468320581738259593753151090522901738838426144176212355526576020454448977795415615553938937245172865643780462984175367956395378205458156995232096420880778192484229517168551087325579618707506539165169120975670710211294585049098638155603773492240310414686701237883271023565896970284182857930195011410486215974233370040465984688790320443917834681091692052313227359498308776697672334751841618559272743275074621606338953411217205420559861968654335148050169610632213708776343122645937038266524555064832535060113738991790188411634193779379992533507109723262364226852138260278295934479949668116201103810286006226209422385514187069683698920347020776714834374389185507267906030281104241962966799819411693018891959086724007458584380026627758374579900835182612225899233335901122537220736222241823696990505070388434887323850478231162586392351108973269671977646334193687083047693986454098415374903893765389000410711906082810412628584787419798967706750377385101697768487476787383800157769766130770983151343019461179751361848007727268523436249123310579359454424235145614054641904155688971986964417198570626923223624986770245620849451394390300627944842718847165561355432388516545387439145171334503868559733507499007063054607403503055273859212886103097967767283475962086940752305263058933971597866034828118706445306032150444996603122392696586145129405102073543252133523997537392697329291569770830674239133706906589834576441249257093345276108442037333730316298463497711893810909738187054807825921691952249603765185188730115117040780035890860714937870493413035047030653091880264163441844375544525244933068126993689500822824302008078798653815891023739753251842269275127646792389848287884114620221870652986619391896578239089565815949051399790435551882274744630357427454008276609442259704471684666385449235618095404262238209011475364448749251019855208241295711537252033979290122824733297244371599109198980558965125742646648838981884391381289161033457230847269306131586052557374799698516157130398340545744007860257482234260104755759806573944313356610985038344188637353624107023729138224950270350359745459495545661809544177954118190492933391484820317446492277223216257044289030760972826420378792066077266584103492252267360113804077415059054806546786880275594617401586310345399355249479110286253731822946792325548535958736563787511075641416170660327612669785894589822529782710819570021813510669812233363741361597775100167862383506932127937999856833598604239871373307377303747694588575734199222899585978675739946600770393803798486834011175667255444720284646687583120277313496294932544462672613334342410249480897568696333423811299106687852353126404847021590690295090418927884971212771383816296804427564178035869751745739916877470476378668228455497398954687321335647427286275781192821548151249301068921687169240186294304738301428144035387313377302297774062659859844381885611957988087258715663910367127916057007478092335058323661656398584503901312236121359096177571941048918876217473499102089735429951955793065129059257415711611449543911195251257346909027634541509039669040998193001350607765169855949463563332985276733787913630999540273807190581776295728994159379337624808181425382974855168887339183393108624125504456601514661666044166155600356973944908433020138466759066542474165811591906408912371052054985873376776544605839208964316364196160363978348887353354890915063941714091433152288583988158903328671279640037544048181446631656745207100707623261567985793883818213944609406670830635551163246026469367633285845874492395351109093895397488229040622692516390111008286761780396997178391152793329710663861936768591383453016821962949716488282648314100825365668554954915136213355133969259946189085530993057714523358182214860637281429818196022623711658446451702251598167556712169692532201628178253760008289092568764388825305727299024383511406512048977436485979913569684607828792298016834340812289347884401429338757783920082906062679346332975452667889958567789342339467368234698574431075103625359387988143339096132189222318752068645481792425337289151086340739793557559723201455778664252491284761443242330268289999723865132134341870887976957240465459599970438915766655192049962057680466219085175553048643489246793774799118715219901990343413335288558916708987143710651551198998454079212647144078831037184194278459856514535709588946340631234399310144016716250178518744577989872070716285871713233908713008388293786047154617331653516163388028585814287076292786256839263623018999390968352284354636419902685217241549230793044234121017600223174106982682172851525968060055772765146094076098593705406519415076242923984046452695242592028891630393569563522016357695800749682700827245433313551792183475762376710579548760193723076529414097748304016795321072385976659463066776150207596659004539807993073397286023284820296770525878991012265845522969623396116763955848305838880228074402060113409933814993376028143335006936748991752214360878117169618313175383543585651672359443011068414471897914957947504882284224165627958240644124521788147303199719937805825971746236051634348454699476911533643586729175240039355695932369982079148892653453237283743209382945581070268955660715146891387663565152586883659028303234753278932471558032365209810905669010815762719528198162211544659281449064036000929507275955454781087826539085639059521426896459970845758440842739614622310581072293902060481793134916033047611834497982043586489886876106647935451915431068935733812357746198353110917250735275685515907767831088987259596247465203352936936890118594109056844404347277069178992677602914159226787455392850689624486420681189889794191599273171787665103151651569351256441739167150285803493480544684430137298467771981888032598928168435825785329675515639572318718106880511244690929409185310299663026538387952163930190736157725203928961284854218615614771694064023892337434332352851863433694921312071115323058504402395683123794022367382888972254308481781731224156434783198860297980445055411914929326982310521604046879514747926690611625238849148375869636334411901457793201100892539047460427584984178118197914446426914628651440427048493233435992247547514312561708488706714967268104108080558850843323747172339646176966149241810314030074325391972309922576733359394383107587009740823516299397130840869758365004617612662383712680779746174659451096784687689852319440197833637321478654131992720802510704090917007872456567391557596646606023981737133073075550334622342712969064984112219589981156741975178635322501736645186078806477215507565846405465674262136419408519315040571007020324123190927842196148728384097369728384057679734603275120377847568223912601495552891113552175208943113632357772315413044109166786081581367616611426666020856976311218986822979943008390684976647662942524576969071076417197637771232544535174690823671334465383244483280512190548170214877937011068260965306621235607493237730936336929810639357785091164336899566659623367548446667698608723686807163871030858167546561002622471911260855379352115200876650500193365135018489689979881960367775388617365286993382082948745898707645608065083502384386868167090028956260203240432416278407200269980600495374193921375689740913319302552430330589121382542245285872945587632687764841767401612019626092663368421303940610514372991159892580816954158860291526347291944785513511821963130473978373210274244804272913239400003020376535663209314006641296821712073239863098567848610709032055396223395650860987483800954937301284904215609815272660484834421460956523434693712154377457276050082354480624046347481128566096850847788375131594566787649766135759081303919478468252574814448660918959931877870806167410319839843148969205056937732112492450248305982720884142519503117563179177954009160327694508823949555929788437425929468086375015901204288389366812370886725793299051068146554513771296210772689471106001438555634215655549260590184467112237554280502553536366365971727580199739158000250194211237596005902965425488728312892684614452060403238054038526560153371472074553029079617864133465880416257324451853054785028071548275623552510219954862566800968982053348060428893730744020117736551914271559874673442429062116791022937360357263354607062775622747964179211674058196116606325353852513276830697662879804659520924250067623420871730920201295606026964409374123285765065292299607575093011231906611126180062027228815926398356278959926285389448631894421196461884887315899656051460095817070292217956807385952354841947361919989679567077700283919725644751430133850218743305427749120556295078308967192105987967383260270725063816607827512626696371441276219892883093535450756399310614346210615510345585868526600779557375758842229367889161641970395523662272872663898310894836371773136515222776088630234674940349590752052879217887904441652534895545094780481700296352435932408593194512825780480886075035781564398357265094468210262823131556369501013408619945070740743933947152960159670660934438011736494409343685606846407957651607009613198820544936323441023954884962239410607553926883016645707157347906405200083012765789418024946714174639418633240921819564603646722374110833944716099168998078872588013391122492793200150078878811731733539183854188884832072847888506849015784940557060171578557498717761807209599542741790486094017894503196165832584983505182116135489688925002313392825736668685521088663752476589917112276188188447747001638137502613378610768495234154200852102929119024191613075859959389419216003351109685664780577735269423388888477734662957773533220187043312322211271401367035890963315240855615254218119707404396107874698387578802426351238458912363246859157601017187225974505568994241750156615486663042360904957196895872971641441263999645592588820157330186993710829236360838249475555611050146360045282463464469643107321243848322446401779478724918519208611387694484728704655005708931184001679830237601324255111824254310006845722094337615247355688659718733529982042514564124268294436595415928178113672902671207965999745922786771809798561006302991740893329657404558904075195268022718231696463682488001375649863511035150483101071987804996590714193764602670901699340293217570386214850646337307617351008703132671394259005022997549941177150966248219863553861840164562565711053177891073292054765782336452009828857572820968844637563054045803030834453369110814922778516017733902095107800927857281874989380071409924501819557261761151309326874655801222191114931086720268244815323958171647162833912528350328033752072899325427245923700160207877069721735080577953714867112311688730535194367346021180727554247089708559816127330200235149679058690448749984819411218573309907865444416751418205647226753252424588942415617783718989370766986096883415543561700202955752207783498201980433042289753392161651483507104366142168947100091504664812825788792894264415130416666612257992258248961418015355161426243457164978905187618511059884290260618216280639279422745438257259672782129360955632639902194551647635547914688921637164133813330172784646588136152822442807371248057942919102365155160824068736823871552028744415558102458936994473588587096485447163822020923603021128727138408208610565159512115685542925848773212074018650432841332722427509789261749537233826903978870995332088589386232280406785563312924174145534718634555258048142579280284172536628216430451542308171254506820992465664112846211088478178164449422425361618275038820606337546587589908723686665854207087834682037845497405875288670686079355324925672065331450590293041619859245416109741610204933064685770411138730940935069062980756117809233981908696625903206419696283304505839858855834686336318639799880836241488248713499329984102563919602159604909528598953496875321945340813036458080510264022338862451957162104878439515007354637461638643570583257143388683902489036215121148419954048365488991692272047556269746124821682707395515166942056534020426767235875299289292809229650756411533310558367195207198926011776201881678431858436485037610416904249389265418840695778886229234708586472277123935948784778244549027682157684680303732282541316328771226022762974249043401590499403204311630522792816847338028415803894411478711424613168870240117895589752246488395225046747734868955122963677879679543822681946783930640513590086867464996664004361786232704941732381196623505539179428139377851672114340866646639947722357051175222921111389473931279375128853561221336536985454842247714865200976974221449390652005647590146990952445478969789539111627228379005899536725410530981519731507508712353024871012702234935585365567753538055794034527902976650553815734408121752758714230871283404833298469944432467123645646907834327309288772926115098859138977631950883464436233053272022437870666229160828725146442168782709622195368659831075274266000165040156247732901841958539461111670251171468594473427701610818438702643722808944450539917680390765283507457285859728087179080954219578056153236016893618074853433321518458039677335991174897418697950566114397966733137345437975851199956271986076051462617303562334086606006385602909909132173490103029302627596413024883300948750193268808636462926539699684130311274810453758691548147672724059168778018178119171547282274752125092763985327299988843651197141718884975697771252680083320097664305624583469802269498659232952329406896362862661224255392486820662767476895785183793134084270849461568933408405847456310666825495414491104712012950874232647959567588131806734632769606059417586846016927733952050608104953971718013616685490927528273531991373532718876805804661641795729051257153661210607098813728514758110891109560731751320891281761016792142812056257024742265003613633197279790883875242194041003225636037493207322843937465520432326520335944163519391196885664377079235291114663176679865088619220927971267578399638739719274493111260815537868434250650542459091793300356787910727597725045066579973724076381963277296313448721192546337011560615925069216163621292552508896915462627250041671733344422420057747314432586621340635954901193747547785071008794480797434095021169342756355499385515616045837018632830781147055058305666000397391939369346008806768159481783786010684617824620315909176887773410758577923997740915259201437021970757527977370721648911896087112641595182957401117394097861509786292222910962314710693328100930313618508838549173415147376139028519985886302021164901340595854024349850197561235713156853149834650103376894821104667223486810816901724133238269388611579340789109423818418834868611869139278852231566857187094732528122518645562495299815730648604406047196674048507354021517388540132772712152472516837546791390872322953078372299874597198978975275548773827234929073592806601223105531235483805163649136031238340909317006931385731205140188280402585887514270312280781237709564373254111515876067861134696528384997295549631702705088782961839617934633085550974512917805486621918690295211144367720046803451431187008685261350970535725638414529423896386287062782542364526067573221075474831504390056927625306805674631820481704173604845859190115213544267469434810478738129244502631865999931807643931029402042293689716001297273764405634502733056573009648117548908436315217134042498637498373136593031609164508617541057372788965377126178905472379279177199984777092329082112917578334851457145378381345532405956572765558284354812688523919711869820914275683512056007145987655094725991499295126936522353700375004030991855164498852298395769473675790734842356624266421190204885626611033776904775817896810300254669930343876803102102557840958578262026517690926748115952108952933009792270547179946145654637491783491554688189875485141600201594501633368732156846529886154414371682417618173891830713070716334571381943445020648997094825646431701775040020275775350446134081362319181456759647404138958863720722989674277838612853379882319049964619858551818028258564923654712442284547538346895193856307162658692405300603493737943860638446239166653365027667146588695077922788735244624589240495869048142855747956635296159726222843307867096296522250946020357952563593693147421168742834376331433370165687874554447214822204382596160348949627909372430914336011239823470856194047464603495331000447725452683303779553353135021860262740448431709285322193849018367771236704103740682737148288061909829898804767850712682618114650703791723176489909072512125846147926355349743133991218407158234758315746074551568387174671258798941237687308361110009296014802706848553477235273770949836848240204695467320436390362787055078944230255294035990422301046837501062761925794019166107529210752828666398303897285144602864137530280685300136801460549349652006149457923036282363148731371875642794062263479861602326138478730212713568434084434037608155064963202118044039727075571366647771324343635757927231194628359294600147342878615614468732147281568288984139661772864889917279834449799432181796552116167050310999570008571318929438268669900015311517968268387476634483539891001126341251321572998342536423639109628879192093598455522693825195482958530963275792603454795904694127930562374421619770436863139588303371248512560432220678075854069646181347588579382226865009295763812527736871571199445960494694853896098236327213414978745542386134680161723199380271713254663509514471417414378707920448664036950708795376560078772644550573198426281728930313733128494699828620376172790591258624710523040130440047804755010882907007855478897867718368263653335702873709326858703292564332149016084337215586528902476062232534546215375728560945258825144963679006027418332382724839136325581637671210141554775912534361412391625308835119336814324072053968986711617744020204903576453138644576201845319830927455982539430930049509809208360548754870876651876569644274542191982207054154546682139161361530496800177735189725607652378243743693720994889961517072616666553792305152561637989107357233918814665038880240461635120481218308425533738614590521581001657195277847105708734495264299504650203003080021733468480450291263822579640547132370387117670579737407856847691118653327046289643273357732521488535436747064655029448683754951495767241250926302058160631887413460746968019295721378965760248631654940279843756761927271052944926318170339474801787721122884284799442047694660174644686135675718147979445744815082300682360095378010323551796097692257184641392886854038069400850749757405880632940034531038652935883764442906774043955063609664363015967339981094198812403318635127983236273211740917619333030030495734961084295371484486675481276246218123889890450168727211181406801018526359079620104732934235099003749403802280384334345901052178643843059968678459902966278440847642551543692605371094808064304318568397863740870168560226227711892112329525340391091912100968931419012447213458852618582522323418323846554095997813575817296747950746228397258538169357918979699243377122515340809899539288862616755479348589160899246436064734101883873761479451661240130971543202563121557829138948780429054110405775962524244709609944668846188118203282898557507154810294983227123734676607791041824442118723193375315267465900541344537748419617814392742674104980176256233134895782879868528810352442736692433168515632639427346462326621858030756080530556860864505165886496957096259778806257070111262246023279031127423522641130751533247834356450327818529356266655209987745462230789288651631618255986693752136857786133068792112829361798870553891784397918444759258477035480839222754596754118435134420642259086020124810557964514452334495184605314331200099940862905781566698810624697160298080466488594638316616308611929302888044278713588639457276527272965693215890238573050747222821212892137548970277775074170106970730416802235990794064425586894162129995046855710897407886907282182540522916413085693777046730383949998815695271546574932912365498324277457679398465161779812061922527062531168746068478766778472487857171718301290560969912574493137367324636721017589144905478234136841120407518077149762485136513571825443864817901032389437070503857970077376212907397985620990508049671808456397812326970241932137292871417299299050819832874959871170338135752352295828723826097710350840773916353975978773108027920375423190737006948968128136498596676712737545542739455993830804199378449036238830040501729568529031449361677943054636813386096246261856441540769838820392071851198679820567863022082882556614372171399583238488224057140563998151207704632733995795503294684951315985688411480459651102489512778070169795672815409731351185076342313184713200698831056631716132426624609045738846138487468996941506893186628223476480080180606746195951412655484298892702297128239922665957427173336014750640658660601507326585726308443554420486556245299170607530029733414737423056635578128569572373895091328051988027337864117552423476019940684852411866908415735563080472023826478749618118860218741805003945934990808423218346490242514151007895388078037901116098733849476113450819885713101715978404436539423555650536661273657842276496068813604820551828108444162480956376299470788169877258326477479218085536292646132148492132463800604341436216997421028652502369530704425948835517849717689267224421935807393062673401044421393581441305492809922190347007218858130525847409606174079663275166650660569837228673097674769524885877837062844097042494952404476944798394236644034772645849736563028429262952875980388906567294018130428942732639244465715917003279488057259737793142797023284058149132478026403045652520786841762856580740501246178608857549034440225957156478996956678608374067317261356646955044831685930915319007937946093226692725286571338737394410862664023350825415318383900861098677018987467637397517674999683691617222529801544663568008213361840474645070800294301571543277467411280469158756648572515473781597732723069752766079366368125610265502943400640921652086211566200846461272752250995714293533054432569844215050809181308291349400653559854420777151364815494960026735189652437103819349364602432834903507941279645076090884992067291679729994432787672687619504176911913060256326880057351094225349146851486568714145452097970633336120589461097868135347023763583808342180173819428444938304398543299163299933609137943309070240689455230396841395671258029932370828439309386832796933759764055956704911662102944592906131608488064983812052832927710773608909928465192704271493797218225835979849049034227297710521178821653701021819344064681715284724186234694654851430483981311024863519278730289875159021089589661673389330251514815377213776276127973270292593404126440831066671119860582228354211894092113848639071121675775000354977730073544606397753891709630698513265853099710511979437077531962933807011408917046039910687780307412524841580613753308421058686500867527003563604323464847114978810078459407463642427780068046995347375456706025378333999810202225104266869423292991265649256734029037934846443371444540681630032112304991746919890456247145160938008302008025095283787513739326353560539221903927533509472660106247188997214529567126794134257474410990428372140226831378800934197258490872264561049658308445313760243458041836485443534960825958708755877988695447192761504670794871718306135148037224414128076484726369492349496244494755599943312573668252555480916613064427495720775034178799623020440668586000792474319434499580441042277014852449367490776522296422990562468105095366428051774092939859941000137806956480557427579992370903378961015913475413301803859457741299046980040170721666311376711501582835317825234528529283012287749232512809929797690067912171827466147598488918469011594835796810380338214875860640742319582975573895285505388267596496597745465232385685498267139980429862729892578221628907141727710495721434350495303054741137003277482027395385458821338531126122305236512185568060875922071461093598611850297384763714194418826506930466180848052102028812958467262222751181482110011693206392929993382628274495595495766383834577150616162736695788989637027986410767557529007936258019096966863871514033346843129620659122517632341059034822465137193161323833365740231659479781627732870218274187179944819058738098994882089188876611077683055041533872250360239164909688139959186679294475980101059137909911592861718861810208493109169232456619948169921094118605613703696677289626110115097390393963893162695747318232154934219218717239067519129278954873655942139872341571033397875167868968498508305520526842027378016885312419387786074561862318108925776866614051840008923764694841760887771162660806236898558410813459298893940633650107007149809333443667576990551182960028170129733970856122428203717349680402997586241730444540089143863579787409233680798068866766244959704826115440728342391826265420673153934562179617869477961833519356255350036001590042009107136696577037213523377351078928245740335753072661546665999815636835070453072190876461322490820564546124157855896504583408977444198411915448740431265983535812831791991964039739952169705800466967967349874781395945185608112474807532940490425136676467533392517679028347823083438086862008567971473395010605899671278086137407904399181972263231419411017095598817326382523228900446266319338627631165656277392518825286862220404611288926198893237481406324905840302121406682293589658481715794578457601711879743446150952628589606521419425232266536728720104992786855743934641009442235781579223029963608091685515108831743094068903049331979791167941101557144906058147885801320983118010878965034117385215530909553390855692040800481844924760653144411985951897073756794567352655078338236052001375019332314943409139733718998170300023520417201340232755173945023272445467841169213378993553311993744664572415088824174442778166207398888155020347647727710848647067218661852056733740448177496206525318885016567584434808946745420168772891467197661453609984096302050757908064661804508509282077495632368157250143962532375126494280337627575742002878551662753845498330297144338039547216039886189739839903044609545465684267871726353283791578479555109959492304767777406154014557755106179307821893718360080856153334143703392846439992246690447363964217471949867024062695048794247061155653547490285313768627772437243608123353929503866844312195197124686405836319257459824441713457109936357255477450910995497413388021115599586069762765142568846355136419685912033936162809297444657809571350620574508239217682880479157643414263949555819268649375961574574932459911405859250785465894516489512160773108527064397748370361256185451500301420068312237099475409302995912906039357951673483407053194353452562518057898482092134200657094744771433708869978071621333830771619835826075402444945317087602249781803396708994090726342318410396195476397155934221465251206615626957721692354822751207119008640838717049175040598140317319068811257512363888884510091045128425197445195753483251923478593401544912042744149581892709627577422990709487900916001914421084162475810540310606365802086332448732470152335470993466175100181288794240677538169467818061892461244087805850812847703373250758723882482014772466390471070693551769603433263423755726589500267437092066870308367763267693840102511167083938384927670526146427718629143314125846635631810215069682940513931441430280561506473483049735857224556008880622046380617867014187392749632825047983586396566537122672000449894622272031922708193268626802523686667240067281447664399048273420527103084283197340824889799420905659991910807536849193024465979644728290700852803204049100515734321422648752384756116721868445393131914228235485951964572496718566573913146028973376239747595981307047558113734164676347373774793429622357068694749616696562003302836463645575862876604850366498132015694468715797716462705110997444651886611895732154443061247046846540699237516084834376396771525293459098582331997290089925422419108887766127647819191717978296614416904904122561930831802270231864178167548443049278003274911789684636348787413067997588178592812376999055550307052171880466556100147738501217805143691943028260693540698404478113674951407765074565931327160501423588844229846750236633853843124552394891537371617637815877674223838172874801782796564709063121463527234136156790680057246363679355535355620318839257370229126365971645103103742002881723392623268050754932732465490890005106979805593251410693464199724470223305779859229572095617094500019369947990824756574013011035874266463799564134707141773761532040575219493706306010238920333018201025029795895140198703418555482642266759621796143243220998218442729049011805895387778198894277420224333281749323691108746034373485221269806973122842758247053486831804430332915900001267311594805584451539037951058690428744087081067242496191452316577200485252600333476935999046918854416050069477268410916917881307362584933121953874439789817772956520813491285004222629998577289897290611960552118819021205484883825791152758159957079572961644876419159919130270823587324566775461630258137627286718105902256027974005166902765433438991063036596886168013403490809262051106156567915994820372164577516250124139833859663098158015850887796924588606610336100820668968856122866471805723999812693190023064371565522451334655234134962266698821017805300556402216601997459647421588307116582551121003694863342678382327110275020980334805533242147371819758045932196552891531112453435611771658031974323122333833168057051035270120838027655816623623626873014474338929634739532896346378546861101476480687957516017021572267666373006700466802780381646013848896007478729951855316789593309224494912311892737726034609466541245605662773088895011092937664555838960938121115949145868538608406370962681028692513068180124806403723769406922979182064339427682624629507531973875447145391865493390141694381230282697980587756529123762048917281147612700023927399919222299694128670837587420186661063676242547662927708212496251398271888323311441785055483248461707276622701046156718677554510366627640021685416349098777625436794453759413194817282435705635972862675930610004203775110175771817817003640828018677137530990636329851183706084428055051443718978549034826482197466903347655300506977479684121383418373986514968293994990529138662424241147495660765972707219552178803499621991490530229377097426612517034171214235029915298817185430192523633327360752943062187557688338736303817714431528945786311323913375778958039864526149479725860930392205775138844710573786522455352877858453181348930675832419316004805333198254206964280310786652298317980445131940566663410831686462211833649670527204839185673743237526209921402412079053186092434156375005469646876535027768707214888899520926748250884404885749035423268058774854801925184732727474320701951482443349911287807429266877932137621232643250319956948504245183988444186566085400686775665393274197310398312300818065230642736191164897082828981327826309520971724242848579849711832641815087624858680508603461190479166684536705760568173258570221640224970333218748511321193411965906665112771772284318075149974415497408649747628313130673201165828222563522508696821169553680560406513489436771779157785643084891356146622798265472457965578506684175686908591392257974756337628956934932873445122062112840039696396459152981887589491015244567492850564545334984094191901023755317080227287425595732856973837699928779112807939461120423220639355204161137827124160657769921407912535225459830855736015152840783388460974864625100995898228836663411287019522063137584602872484858804527844008167903570003659182256059769731829302454545441322256109319432715026859355700118041339278428960462968299919172251155222554571630212994996504898607439928723824878377414275831010658676151804348097052355333325731433859857089219002561568378561627169521909041339435728720927811903552121246732245181879942453428821640917764525553652264719250188893134787368209453037893852770758170245447581056369677919347562273135620378576134184194736352908631036405093921630737198764037751940154380181636516229738046237633994491252519608365768483623602574885467402306402193435346352164561192659682441124283250770182584770028954791017695963241807451138361301596625414633331891789617026399363863618721746534487852942453834793839114214167809736167702892308427744849386110655199733595820365017098143927205580540118813958948558365870501782192701834528890047922751262667829523465626298842212620042074007712001039813327754463367987444239391227448670352313376894165663522210293055630708462016494077337336567172547072505468736163817418837177490141672330240092821238652478695743496279211172591087806621009035629966437403740296846394434487999012475793232256360301881586505288438872214104168968919029935912508161052357835378170362238632947196113487857978840429989255243272935233956591317970198735097837635525216646478904078772121320350644520671403540662460331608076752213062107973771970291323355484705826051410637389636757316497177089064002617129350834028313486962567380225072847189695984038230534355561903991914309006047935693760983250009939834799618908591802885873629427487509076803352673927346577599721191781899043654996584614376850494970128480709021571081879142397583275813259118448620981455886729411783406186932856978000473203877275850123737120321412150644616966587184015791119884964679763556975428330834206883258562920224348436481111666415473722972781351009566209458177281929598940677041270165984334086691214820343000263908901202102524708769608739874884762518173400348812487019828659926490071358296659529014179432777062713209434581976504709797078662857101251869875090425111986124502323965348146325652254869227028330697553595033154045998502061404548018676147600768147073752532868361052471383870024544262347149845157118035707459171410686035001248241187790730287515734041861362292743998544828221895963235690068849111933510408730014922942243896361118182152473201727950980411995354324798915068033455278060033971521896055912966090571497047505024961926491777028637326073558135996973121095952294895345474268867289557126804241885561471461286205358515305725725297233251268682173456571090594995399154862315223731333770309076838012908423039169373169260214448823390915679409507134855911021259770324332244588619886031228957074264793426111179988341278653096859614328019839614273195196725582579367793509403795446162832572452019733401216019891582735799466487243164988533781802797475895349493834210035082228277535576242971790280093066211888167337048813589979750569939061549780421401524324140288626469461184554188658437065974951711086753459966106105033025824002816359234731042123466333865746506409223813916536815739428424583490654057456478778184162543647502170775959337430369578223536675452924357550075936878527772081421995263180306469434182746078254032969568404571992753731868157472576842254779988360738180065927897226919610318688986707603755824878751915311331004830608779762982538105428279307754403503809729241136371346648473825194492828845440368704635770904826853690568527072746464528028699521576671108466062393352859086398373512703957665036006726146882348694383772646598483277408579515885944372789223150334474569369393381097438839827972553780196888489568971133174514162529026109688178188072432776839750555943823549219654068197473867914271379842275757410184478490363835148181775801960831673773980506230354188281084220608006067169373719869246222854304299127042732205778696691555422295064914584424949132642214649592026245734398275725599760495180057726647791937523150236987901366658988826585263524172758217830906598640028890776590145671904311414836088211374992022827490541552531488803766113892394151390408874224832305428068573621547259098636833752441609746886125417061263013221159034908764645513262736475636519656719998923906753273658292508693212901189111654146398954713583195812100685470986285752700178072723307244636633913173796676924865280817213520929840602288149594860434903831046325867023081887504668339572603811828637009268308865298287040077602026643147660487836073316101490140970753349875353188751368737648199291464197135163354818857075680812341551240608860408673708347243696129993173140169795409895432307743100313149637997118640858612579783832672303245517924486687188518398792241975714481694572545737839051906865001735806293493760043935199138248940274358167947899563454166875744513294603142152671559880850483028752029743843598807762948990570446131912706331968420271094178617681299286164306450511463101586413038027536702311133700702415022683299376012281398054553399625481014146496259901665427133392009055509992003283117537970655079340147956039318213709770908878004694963012034922557115164280761383593132714102467004218957012416706248461143443549844402839662608036946764273515902279617566177223792405642223192075894481056619124343415138894285832978035206039017560044334596056889986780015473662966719920504182341267397187168364345514038056870673098676435230874722919141400234027398632773368926545388257971301134841344465924059546804394500842163415212383236724661552919107215060007102687226538849437869364346848228286871292638456320685784271640132010557355032636218437587298461466667541529457238338217818604229227629509721980090941929799157423663492094238892614291768599379072952474575611775476381807049580166227059607370983597512853470736315643203429297980018096255431889998172076478160993376373490281516807542739505375152484129303054186663410991630040346250171779605315329841179977609696426418349413505889108155496816706668271617546767844309819277772471451619722084396697936836396048073365389409480413500063581969069573247599967702810809123610711275888246896058097159753097017604666704364543042254545953086278541447850934443756608534943711348639370132175249786800319738108842068198354698843744035311105678966534808221623738264543526672974557836059308430096511369499995151739154134869569869930967036163947757979071418174951791327425768591412078873540828481462219659749653797048749325368363422711840808543483711364157903483576176717189167841997864749796051823743424269156040750231607877196660409449037559555785218074799586272492086963190529025252963168907098120848266154613676319773403157702481041264055187633642301958214966937216081167354702756657943484782546624041304736792197679941504874790793577313961448597498468881340496115559536160782763971293319726671938451391989010472968572261070049140107585018949928882873388165887624900717726664760035483926016928531666258602301402061407167090512606680942436984557891767062795789086791883935981685715861490823606282496721322033901130876016132126184929885990599399881087580822615209720592447267156870044411357668011157120830458956029776453288823278616241923792716657944188987059425678020155489159266434907884216324514251176020140751815988154406010661586548848758426821648753882731565502782071387553909995191205228923981388561599422331980541196000075016834054629752960510574401757075542833878592647862589269627145885999261568341905773664703391928231603631840851104612259447558118605044916476305438929281107259939372478784511739416202559452180138866398399203635500972808785661970040786834104731088158035379442323580351747806222273293020762363122096034228806668668635074232388490197470790035158892469326806269015242220205076939681421465685944972843432204955331180926346769335255976932631937017523738704240343966965152454569422321466860051998836710560031861864089925636855356672130384746742018830097068782510006179720958110073666098681592391074432733156198030068909615252708201449150652512190002508441066433514493389999095519487081246147179058685956800729342350483044324516134135997258940630011881554696559857329349070256546890397595205783263448494394308258396936760309439978629650727740771912105533679253837244939580057126008753498787178880118107816903576903053260193485436136282687659470562295289372546777310330624648609032040389400281801723657928914713745199210168016872476757627748359585906848073666899160430417881890660192689702423109841580901390101930449788546384413045851167294351835090410572008133484085200252133798196369483376134971309714776523722818229300997129761353034496261465514418191838025062004515558968290332553326242196258875150712264799204878064080927420940019665381680701236470971023518860893343603450537836507118079797839854932519486817423796484705436624699889495308353916949397788441544611413907799482791697419282428927672164983743785244231175456870427333430257449732949981596307821743283635468695942282351841364395651309818681432772416267662404870135896805252987523721018764450355205532629842729241098460588291982816706581432267924796346514393928902893235969494449921179395406982292126314489680745997163359254338864057925745633034503720121920145363448105901688362904742499260060321100118704578633547920385210414789891191686243142078766740763601341579064491246395111932527808428990505757602964992284605226041559337150496627417813284726705049334457226496010230448807521038277728392908844364443576272248049104269767667130193167494329011462720123776160910858057614570740388587140592886061721461781702978387951979734347342612107709774470036259844984163252200257618881797794518476807167541077139794977889572889241453894778946074075428157279393269344822784207991807451303807179588759652739160014649524363604665656049468908430982427926464582719791925694674591376893365833437494522390943134166449697645440586562706343116294257506853365091266543051308352571310885588442205266013596783891671010548026772255349597352813928855694643044418874071822477785511130363692746564488126247898293304422883938375260010568810613198828682048268036690496923426630425294825032179346803935668035486608783171518105921489486792787488487943799227258895757430044401747947609541725269892046488253614524814021030613130634346802337682695940658841806834763577968009585971590052609827179572548333122572475794132933520437353844919572496136671249459165950867233205240293012055379745467191572491864445569295527198406109774524481633348374016399578362908604862744898872203527301782240715471792624195008065528923422434145236770462658593450779916492978328199640965687415561203541373159280326681536963480504804914307259863812446923942514633008574719513016004401055944592241332009366173155070680833750837391425075810945356105595037985378606477330013278474222002042649867332550939101549853962023033466290003799504971958821316973061375869441606858322939511747342114193523771383812569848944763259700408380167475159909234782807459662014035556119636312720504086195945432905016276388977434239935600812285694561965774541787912950291129595757141322274761513002107395386223812765640206451577172027718586535751718972606027979537531280736327290579169379165897596749682017790972581355071428248000187794703522639462392424282797209182968366391210690933446309498199178520511267265754175480604300823180620694247346671764586816485578706589976022922766467619946011076757124535258451165234158979339675022577554784844504160359247927075880104714441135174567856847543444649165366523751387076443815237182405125412185235608796896530063387322426782737363637487460937601687381409797389456761790042381683074757592219556745687981090370468677891594391762844972073423636421932156828703791923120469787321277319860583782603531964609951795037052992524172307377619779879239886256051203048441070519863185583832644448566354914412073249143729513074249944358286227968599647852992134822065341673406256238339609277642310935860900709751009443764957119959269639571713029909358623970857266991257721319954437834795081701806303629868032809561749044616929124179826637865445868340741054706039565474198264735819038415561011069716848509761747145573520875996626923486942232828113753798785245160542705324614275285478430711784392946598345019592523042967379398165278540310930269036206391890329272129346488222985596695784905007119854796359707172188929581436950188016054075464507550955205234247130385535762205935343339163549466558392622121511746031656613886319120944467430491756394440584670157169918308034537476650419747752475434671823524691503047591471125691114960854917067055641032576657130455653510258801947137846509331029981305832534474543470746910366256249736161713788347531651640001868835663753932444427349880585240112075474834408426594119580208242585168227647086049764913821290451387384142844241458959840927220451413461464811460244038545286229995363987776033956421122695424565841811999621970806985894908991399794517783000416386596293946693427544900491920453780596135495504750755339811926711112214262438614040180667171637835177469595083733988603629802462762653468299046626213823992094250457128207938483223643363381153996110773536046181259885151302421945314945696469808788939033049868076810390903828748899964236574460719586668717841145395565113835194976440163284424489825284520575544297610424499361453210225403024565981495748897885684895652305703508311132753466933395779649225491866357209241336313883757766939620611268186569749810312034450359097977203156358605610597525942632672917028051340427619984213334739577880449375195879530777234803038703620786885546850630123496780468275726065261250490539193861259507537673776644764600584241717894423468738401200034090292695847591307724945911448800224034924768126523986669489447269797875499016310119428349107306508872330182556620768379487627830537712206072386254128325726398646330721673126856929587671589553315263580088480209174186661768293672299329193482554629274596403276719025538331392391238172372382576157250326808175051508180125638286580960301481867925541157508802004611829475062231953732422698229274200648769510492779182824082806475609234416584189288110755824673102929047525845442230617402698619516740875753945942559225527541529160936657382980821481661296526490711738085443451119065334665547247352166388824055837133716383827015982000130570726307731301638990611271836063469881435965083979789635171596709500449845638272463549798429018041129704891351740646447301070179481356229989964596464776188053664888452721105831840094329640567621241308602753155670869943682979514416978840184522099144413045269969405604172512272001417406128999634533685442599162763100930690532825695567342347065140267662762236157888331801262280271814770653800366140715230183560762634691519552296705364204267663375709782906447309809670665350380893050635536564485137031802620240479657027215672688743738746809258302605835169565770394599345733530621105630360834327724931976720237317216360429562582040337966879023846655283019398433927119412554865596477910869683154078890479821074207775927321696902060027201378647190147020831667378940384992700390222707123916671698781938145154553705906786898698899977233680125205567644809401049758224404867403022977751423219356509960379701027691994444153659493319574126532190835407294317326333328801968105967067877962774484053989747545893855750003475517619917307839165528573124116792016127301073218159307858926438577259799771787075421609715920472624625094573956430231511406129464419562255306185281776250903806795034846588698288037057346339497563208257132842444755707663749869324141013651836447668166596798203984699699355587826060847235408046422452541556635727896015105367689185831940081074572059489741821802233714187774600436921707857466812824463032591494064916380592815948154772872835784736474128577161223579436691259231424382139889991675293150806724367285482380828959776920984103420490441108128810573157301687189830045640715679163103842067635611917245825361694251494666438086251767926045039480658225048421777057771678470515906399606764265422536306998632325628071735550570811373062845692415806631240264301172390620099543115532009587355423194126030625122055984665726716033568142043151528647082136029201924054474014380391990224850426482745248607615529943168624942095703038082476205502420118713413844711762974254428266910601042920679102845800988235524737824339675753829176601863250641772298205624797300710689622382096294992410974507958751965513777946380790007520365730379607729917712243092918446842291235017858252469111536525827851682239833767293714779327820676076769852414903107136952696454435294841368865227829260502112783336119205450395917747073690017175836161344343341751400658464242385924480168989285641536319048456941125002659613765380709463379363501446796200139088985503408823117806963604051819738636565369715021819526918337298968044897476074045213325932573805923156174582201075779138758325236705924651132996969109135411741178926240332009715057444167025457710061199388673477247308683819414501520961066842852885405240020575752114620734515683268092887934310514847630393855497797447077201579861768610015300509441407997769838179896482804514638726272833890695182512571684993106802066410935657969713211122516213847648993965400957435574157629790014708775939870531468289671001650976737531315137256571620330672644279463942365011174188511404447609143030705283751331040868061082038126862597469238877570832411930030683964617190783489642088069862784553582274253417425892392942614842577996287892518337957740312981885194649034534182163457139410814974398320192550086426703017745679869101010074432850798072805484813292814978566755930777632867553961577502298152297219236553973791495226484923760126379224990061332796745284937232973651558635587263017034786688514522344334860449004489884372723181740469234735463145105995290654276935046925013225807222322814603711193385699207566660641360364196179430372587347126273335387205326994672421668814137260718906519161897303167084653627405688378845965685036533306955837964685852916622132288586353119556286484567516031890142104428557467793275344509999121001857375602871459515730989832865346885882785698587146553463576948429750203291517403418272261543249740986184168819004415889687225645484178651995712156968872261679394419898046127722005317855023227784252649595811460409787388294182226803327934768097350679811406091926636224052557357727922693580268863743562304305262162660706676394543550655737806077620545395724391613650845459561599754829229222544144982922350038187799333012783980740689039359709369630013168238656862371618901065028022960914255803560591335280205521184395989786937492968306600628859088880396420511425045452516365775893665280578468443415186750267270713398314427163779736263808889533869165988417050861946617674556698511814890746150461728252943615689406420231585384738028937100318654112751126673377152774897655105494715442784891447616599525979219819857549860085323417629529352120159222114038055085949499235336040770682838868644719430377480308466822492944731863489775062200125722605542446629324772224483742099014340233933578467678669853299762566834579046402358780903843208465098123195576732174511016221550196543711635636937144549499586570672113837385363567010188470209506714524687415567850619937435300387745171020190027844804072012826632276836668692538928655007620564100874474085159983668108274292413758663714935367554761550792030956242857363726203747697721939907844588649554853246910001959559982676365344853877037902337473367013345521652744937008271376270400118348980799110887845821626575391844488538993996099178763413756279010475647303329639028818706607009786088843896823345359501136660929504495585023815061118847597730051425489506939622393207623977693558745879461087517269099196937274795059238205141346379223170391438519714151349475290376752434057892875635536331246896183684082803181364917359758810035078808079978746772428912574792050486199110334954578164939000722818730324936412470961713512359625285793974617841230885697404343544422298320186280649133735454290631814219355028645662498272422370680915547412513508711962459499088422203287217869711967843731488386927629948446079359589940769590950934321752779913178812709850195068852515026925763969525455982818339802842971098238972471720456351733252809230606822292339654498085386063648603810254740461681495236716146278045344174605122528715690082088734931113327528510103994925558578396908638688732281453008355448862376777897556895822738774290719568952826180112933883284907356374949968581703790360384526212243330985930903856143798980240575573831529334304156948974846188404542943037770207969853280044045765459963991799738065661125263783256377984758720283786366205189011952827123657943142371657763181921316459938641872373295807500086052956732613716898264650827727947891541780105230606771409321175945043035088593251689507443516055064393638775505268357321528390939383269924027447155257049049165970012352137842868956147633152137380059129128245193396547934267369185170827742282485421819354311901474897682752873592814365813842558182409757611228253479981473583913287464358746910279631566998711858629558879453233274803235611381006649507429010092578147699843809517256794569212651595634662568735613435061384762577074948247553684497134285116918435356227002060986392959626955115652826965617525667709043207248969829717519440134797260060067415019286111153504111806192190082505133109940947368734471038280269276271706776913993725063409162781111495458814436411365943496358927532799964098196645312638218096633800267268474381730002416625821721887789276744910323919034916331349202071773974137672143691272801165107064405716029635840660888842733859141733583322034514471573081106176801863969577589987509988457319666052757730303185259940675076606043374420196138453780247095871737020780460352070365514991493747931796656940796334421995232778429139729976877597614739662283049946652284216805585835870133293784232279791902505646507122721058883511790833774605642927362114658570076060415337113994429493160838624482290572939499144516901952088823372612172087388697553882782733468169201466327586552794928128991006740554933618557446464241694778531654990905273683314137300992511058296402705781656966378625029442214660858582604973179974671525113922437772482737894541941436422580012966388154198160041583381011325254998939201380907728815557135132347605121957043277801835167317623495602156496058617926438385239340133468673362215362822615748085970454501258330145470612836241441951896214522671345541745101315409061149320489753955246581429261295190046243137148402929400595226778923227388346133298043457010682695006803743866863211453405654502191122336012669520264738844480210251310419737027533961401152212924561087693942729585438635830851938503228850483996743200963839650267907517474834416588069246896742832497219947456886833208711477594090080138743984049847864582870624418191862632106088605494887662521073752905377408198613521323173747340688778958576293062318504819627654433984343035262611444297628291947478830788794576432375341815446916036850205209689092717458424649899328011806473515378897614331879791275367672235543994603017764728052169804677947621124981200918506459662700564536411734770901082954238809000549067570800046369958124816650182289368649944060504103912451948777533988867550564870160824824330886709641585741033182432327361313889294371607801315607464292504995302280539721515676804904892518551863186767085720742756085424195008895493593673382812699369591484024061398564123830672467438961436247028651297430362812462868364743390648859397098903255217023648441254840774992641404074959943553315589161044838311778285920699916873063132405863206167984606376411394360585876927511536103270075924781353178705750736663114914351276853078319838196519417386714405352480811865600234444923927288750413841859799026739442318282665075247656452079477639601174848035842486939229552697633000546173332522784749190172949409162104748957266083825194245060888489742157044711164435685095283221172282929932679992977523445922168119143469725868976176562840291183351321625933124213714368790524884742821738735710157798153999271923838083435524088920262940742346591743870676449516202821309175178670226457314477223311348780822863638454191764603618223493149320937657227252846094104688813070091921544725200514363210517997831389892274875083340642876285247759594393746925585591893079110147791220628550128128672815319975605540632554062863818134608650003446935432890419068226007991862979279969713827436359599340566764069280710916596794065108375203276109586166619655705694654419226812558737812329310291479482169407766424687573495394509148490216181517452575420785327465155201452983736171735804072212728031911454175650161521639833272697222321887051582688683367794444104794995124703568860071961838862003741263572172919525792214037768336995581181816609699226359480020205825187899594473161802189610676833625244691670802944602808560710554129289811027663920227393696491113426259875563716997898420384016249929951294385369784272506486869443151693903604386616854718793617179393371712813705465668195159242280641696073442095341576668313065768725699422758668164902212887510419516778779493565042320879132120330808962205953132501597220281568639977918743624110784837046292971911360148363826183993429692085613185686579202933813949171489488511807361057582557817774633198289392738758748805621224989922178411341022430176050581903694611164495453202907763906670636385161399634589312509160510809514148144519443555170075928145895887478298697533543245204780371575493624636876477801364694362952915491483030218258864893463915891783134467676121460581484972790144652724647075851531824641653480818528602253101870143927771705024418003836906298547203013745513809929576205375331634597785679794525101233599289250574613009968812650889924086009907750683779937065336992812993003095646560221272847144957269753563321036723238662907833337777396984606865726515873722057985709758982060838285930419457557601899880522161550824183531113026609166072143005830884490497965313328662481526733102469054966061614635718915393526941384809839045715013447333874586087477662491156122380675854772996451919407925198288942863998747482897827754676812332098474143639164624921670165959969923394898785641347996515074426084068549432776665464574675730517958310883568633421840632555078985657541955895301837075126040956711307849805092027332232146999931221666066918774130854533368299102204210688344845428462168107484604258541475826424504583783152230867074603773239627959069608467328195702533231748592102800824116992506386816056239128620639401957974226001028922187017040296205821431317589133974491520745935495956082107528708665475828840350049642193675566012092975153741446288250997602917433651828407346152123192866547687252437992060154098301792604356800372451130304960987821400607522292729505608309775112804573776771330556805420901396516032051485806909682415716882143446151389954640920398579440266879770449047180531242424888285538062876071694575180352566025057884183326314943961268780810945977540694089335340785797662571054649176748544520951196171887031377328354114641298245142661182922527707414317044261216929391463020791426954175977303712966204085524157044549594922973274461676531706372263741968758035798032313597049931870141744097182197747344404461855646869464550387030995878114871074714221941708062883282357679412801017433473960748835962780335045219415162130637719790990139197294835618290155612190842315266103347037284153143164998674265097126336827832348147066389950991415234448226533026803439269070055634703969989493970641588643222126190397683764755621862179790212218548408636454989671186671805724979337199443199893941211452806549227879831369006846353748473525703289978510466239600865129498708353107608520507732674669898392366948459864436332154170714232004427373309678687769533514628115528834374817802013089786203618251277954261014108208836837056706458334285522871716520146152780707122479883207898608703820736567490663791883878533044426578898873660781877929297439351361630293380375658960365607309169217247376331651576688953467674694865222194949206702210255826377243659493937699099693643374936269327763667807786902585226209139294295995048164589874180589790350263810348193532714187366860416750419011201762611755273383534708301591851973975934086982121366046684507993285294440364713988367681215283346488623887941414074412092474798954440356771172842432100673894631152654800949249600314007314339522992415267293975613248746533942323187938850222263716255802764636981142408485837959777942142031814823219536419908603281637270675560345726670860056613296636885749352960134842305625062577620384840236222678396649329258439686166125716188223025989605616581104739435576072301797808965907311426945844120795429383145481905398252400633350541580490680904898777188859355700272291575276348524143241567612237539258078600879561198959760899936299259681775928154122741406347724758223142312401157029114604298202851504758470172346584967781233222749641707281921966659841446313796688487864015381719676972631809158902218196907542038143109723039837613692051573177158583739897460868735272340436909229296727438631684645390408552667462979915562094534492178429899157971780372583455500866317633872448134859832523393175174129324772254198706064238290687373849387126099623527402546654596253876310274764592022664787207826332113554057582441783979809110453093445322626608110042317233117864768809159146094087008368495991332513768735925459979103402434136968845495900393791041478721841999584299855192386598704019969888849173266511836452275322713381367674154938724104575234315767924084435716102880219388734131296918695291058143774149191335241966237475802170169106838646464663716824173911181052785379500711862964028542664737353969843124673016381822213205352253425010394512129079675526895523232255921721247697604338161648045270830574769242652691185685136362471560796913040106941072153476837804641575436537404020535112648022857316581706559267655007025495265501244462631574736412269878867450726385996443033615910863437141305065606644709582791313254916885672511043099133036534090722477964348919701293904321554613462699040219000481430436207239744881971635676472937346421617647386303176796831359384411203392958613817883273011412949830807092425363514973149863741999767354909618483284807262152857501841408152167724924457282114083794324004402936042772162720749648448128194139022537622419134292972994012240298938241947268809195997228457512887280565048399913918965584468118346643108089421397930670287918001425215083669073459534294862284117467979055974238767762105372584790764949642151082831200326093189328223348608574954579425438606223822396681288743799846146868917341576383251403318997871079127707230299439616815430942790173917298360345388047487031101195254413121391998404879320261924259662985605073294569090843806968492685799350101081690996119522522598924787325703151413201825266408812563418126157573572138602912675833814336336134911237589482100092068904022253177030060461548268102376578293447980937739659994903285252310243166507506604723736013796288508492372235276538808096955559049522526579332862397710326043173493422215498219932463698248479009499929159529012453150900960971598720513269733020248377952281580125240276430035879109773908686747899756735259840398792177169737283049229643996058108871891546830822893370202356240459766765940276649382362407282136079344535112092487127642942597508343004423992480912243997655929166354004405056661101599834383948404286354038270699707442786031939454850868153758214570094848190758674613790898186799678409938263067223606246021236210041948219308280400808261384430579746688766316123116168244353676872200291540734577323225652795968859551272150109369015609297509422982563677720501111213750143317714954884242986612940142319870372669453245480168537430226928334762843821495143169126899954150219514952489632541581802271550776658083875957344259238360489677100911234947992918943492664737557174280715742374617118454456813468709025860323340831721415253371703403899451075885518884127315436743070122682378414251631137408520144751953276628333095958231943379458698525050769657053620393703103927738993756589250398918471030078765421008886122556151302857370931977466630462215178459872140391204740773342988981657969678658433625155907179159968665203495330633012424847610871005528003353912212020914548468259492298047119913581553556600759255782929730045435978224972970974271730201940586519235663775550367937144572031662138876697019276553534522476006179108437366639090534497467894654234964516424172889836838868103927772534221842206111461594988973297195223184892457617108898834066021396759876349807831945298020453269324246359727009650718737035320064153750988557919243111866140149737876034525035489171009828239490789103893551446296892932992277176651153880894609733527132606371720237451880391691602904959450849540746200072759850712716595226629370586724231232874370701381129843470203673456619421858271926554862618416294152376671915055436665250843381235204793267050190223843279048574486348045652491515037896268591812714914672309278734017068382082141092350625040228939871737901246435769101348324092970631640350734810461476986446425492608230447795180610290648064551053087856326097381596722233010240750704204695540570793596175166414957779143569129892903578659958108896298425924348654945379739237917804155694849677075719992354670809158346528652212762391943037597609514678887569584633580083744035054698355073083401892174210932172181792515816920691025623017051111307381787688750855340092741936845723446057981485675954521600368445114056035837216848045384142354902796193792397487222873832383391383337976060998386169543046521858626307180278471091852358899350915650823310094817990221900911281856897304864089662481866112687993651116371427972409677155508196171021362427175682670422083286904764342674568031610424035098406321055978796021664553773027023428863367881682904340532111256104708096754006334799858787019115161621160206010525287815243610165375461664397138985777265956688612884212053015198692717641669193247639625920859312266164930835452508519301816076701903365393023545717060927266743952728982391378428882006466172538083917583673385400015686161263858557100212508706315948805688031654430648507518746068381594065815343858440984684959346748597506465770625074458131809972492630330158348480096828143885972923552400103731891548879718263007789663240739337656015049186744800519694052832919034908599869800190536213241315276417049748867524803947201862116613522694881568036522500822500070036655174847624877154064957820786997193991761889722654236578261517671043250638664939028796137212750902607555956641617706335084649589094135605768685634694040768561795126447967541980055557775142275466378973782744394353104014357986954695876201408993496204242170923037174613577764996178262077166184784050692263216253576578109757081931737147189408228121767828026107660459885137237504903823635021876698864491986878056939985889502948483525849160267643054406594512344657753689205184522612411460030675733392762687591130693536836450775597392820895267239240393755376210130142123588025104720079721417485096397026285601782116966094704509678288358527037334916213376276097647778439851609396063686360390620789316167476316939988401984035608686739146458829589368676821472523265255218588569376194727101785941564581888570039016088676873116197613221393831095397552144172503027643941634405388470443139168660245033978083358395077416903310695812811021629674168886881253362907258096729723122771535614322339918816814303783983320722814360657155397650246288023417291741441046201612151036304893297227186789926155293326621404320401516297999044474676773745730924021588336929917748340209806489716183357182470183505560306695079933187922203880389141830167178118873389962361842456014966854101259311465694470044927323619587013161548538089509189863828115082036819999689869028350023960288543271984649128447893646367172013646133787426884027488306088994168611245431707913645035564001239169962121226359060822868207130326853095173267678740302381317273831954549127994151127823779889269325535104704698972750806153848092501239352329358802368657017769060767818485248705220990630985199998368617746035533748377537630488770801640737937744155530382811045580633926692659267863038438520455420812132296058142426784804417304330732562314792139238178640186357404605896486607600066097769561557206608788474171026841641548902064178329117600764686698564666221194958015552985067999291837062734336274743520710254317027588165250017086548007996137897241146010804589838490578882509314656446861044598178307080038154762010056200283213580883182696100008696887118560953174633976575030249724103784691863014984474666270269469886474824269762802316446183810986330367638034533410941720867127703698841908511341838847788364480566553508277618467310956907125334881265351950269418530929266150884813658017865169232276447788504811427736867211256202057859124063495972833860826668566757555201176494113954900263919334863460819082479477455317505604177743982395249821971804507608619303180761005020614611464988212249664486714353910639821314440989454248029615070185357335261593593292529995199825247286880320460108514184961221896951181401573122077986283548657255038305693461769619260261899480154797937724404770083593205545169708848662087926083804329735727385929981801056334747613530325018444875546670434694377381080408196055873776928807527065284140319216967277764494497901387977614586406800879689160040124005848528992485690722576711033724166236849302534520525604968156789663245382443559752270539095328507991943671174617021101042077735239658416325267405751252476778695117595334125864631683929273870165999398640328324985506888375352718688674521571407226100054420031673282175557177555514854226402908630892105731118595631659018613287165499471280532883980298642424229317158090141727627125057104674339812158839646063418002823144793690976854092842336666450009543378979953572070525623828329658515629324544522485721403379009010530740067730072622555029138588932145131214302573421786994677662299567325664743732310106609293383280801762424509210543320202206643390644010126408857895506049519630889126571031432630545762949541567855999612271669368104155685661962597520643036048375650339537930385199079630793898033834998944418042635010390140768232984455222907050301558783474674230726926093206571084438342647718386377070952040688198939858339717011498622700200644684288924670495923794345131777471070366937403519082088376103020848261263714285595661856319466275739141834793271730390351594954804908098635773169778078126586648908193042915448214562889311385030111196585832759487946365917641901183926369620757754406040852990296706231685920351961376649398249937229154900309408196600272005593213258929404891589649823526160663334456061845809236067827614821405329642209036570881075313303327640374510451874012745149290283291469039530740716033092057294269949556292909905247982965330957563512907501406681250335123736867498715342394386160981417116571576880519271862576897313238310341130548815784610346055833172649204467743436859425440759618364627216981057670717700966153436818697820995652793944641560806181423634602191176761771663849590254574736472412040477937074274753745307345984088150496058808089629235630902170209708934647690876501007322674317752275723164182309863497354457760512430838305077208879698423632164423776556587599987654870464016695979958165086562549333879271963307935015092914483074844444908445504514029959703767106714459245850932630816005449263459293461295687240729236507943343076510896348033278208762443170627753013032491573787552927650311807288489329429621545623818717677802643889027820287239153201138966333190175031787566473743417862847013432708108583957024587735626143651524653130079805423476361534982904499857600852089856584314435682132568231816994796343777582604413496904833322935871183252244024809323681217155947730794323037495681819283041425500004458625123709041594227658165762620700814645666299734495163779493828647884272442764398407409463250504691614948257426018853012214354896352113994391228719287482235867636517364639179733887764750435505411829083155699866227355922115548706332587830573727773420445216736043972328142319880646067878194978190911528080604417307577008261044345279155241717509316325183069797367651753926629749532517462397095379590584687785145445305637397002077336285421322945991941180583093819630274978903543927414145372686434991011008156477554137305101687635097977192373599295541022359137001551606446512778582216912848101951154592321367403971150454559720247342438356549602453660035857172178555329670422904172546940186904286672159896163264047256369940307008735513078909774926591994885019810310697491034436387198464518787207781493721876757735284930533156646242289711318977972917886963204649068912220824676967029816245890487149390598057541334520778352520157763160574718791727573223467017186482763166703311654078917230278763911444260941196320269196248020103465464323571759033357917817986864672714823429905873830217103030724861512301606894446481987942264259460870526270150691899187388762829403631985288413439265766820916342980831401385548464558486899412200205589249192187029902355954488395006301971802812211581636830329893038978938368312998522411071071050367611215839119905309442065973902061823085389860186196148168880099240934988373766414759555473457837886855057249082775072830143663221030495604358024858032493672215302152948806936877276758891223510809481931500018231986343560419306945383133199115513059571554243853203524064694479258704269656674947604192632941671515088002625746870965208423990138527684318992826259559090473010182456216262458447707829800437634361923659859922551441702674681552698403737839802776403550775981035266818406776885687817509433376416314007437301896929517413463357689895726800914524660575594525124759280941550765448097792938203742098836070216302482098634155173528301172591556107187080761275247108470950339333120307881750687908102216753977164464571904753828111070173905967378908112174216759137380194846320830677887203970044344578416229954433910678095756866832097190370710538456490341091691648933509171455148682125950756525147483980719766156776694653497544352089053789633924796357456839571370244088203468940413389110329210232084433516504722942207966360912785751126406745918365924881921486995879367486729068155352540175883951651106860755218422534654475225251038539810244812927419449483980496678119707329123662886657601552245317377892546500705329655901844408794939583457522631634165904546153540621076042666134342056741453840694261731821691802218258611709650714212975177762224483179381374863570670927065853116538762356227868391971917637423497102314084043171724704595908397478874708077002352987844550213098435489465044252581698986853057348255347751719281016094821907548552756166621671135068005272124879678543758870542320899899685007158837096579678791499388036421901993446027824242402738717680447253052577587908053575260417216004238639654197376395132635504436735711126600618616047310384957712875990412472223319064659497281221281466325623214887119710643038279993418362023437276267731853514026590567959294317215260496463217531204667201403101326968264244850470773653650091519736515625639071667417369228262421109687994464632901177369784339365694870280513843266321049988540612027325516891094951093763376774189554734927626179506520274201917357343159113283549122929491961415377532472757727998596349475986252920916544060558359322486132822582707387285243298332391961998535777337488607528739987916997510156818474709913316126159338888134954198771611162191539202594398034893157121021969496586902402530718918840899111280985853275140371963906601673206912120506811026342023607263291032102783232573731658558240569862144441795420072080274636735971331145114503415904754775300182810184400607002854813691590176570791704942164065757752418159646118195213091754925525601599944478774788259825774207660186051717570811360052352261713927552931047943354015815896559989357691526135248892083621270212376305409682025997601227903739138619523465927845800005681397171657974036197211609587970713268692616529630368957432166661427403423035156627954106426235247166664123809584042276113039371389867776554744917417778362002192091117398800369373144763275906470527472311168500498313913399852262552213911557758405098091903885087549927576579812702403455100168888138061321912934599655376312972780543216417845430909545782823689829173982075082450073821487475709766716084866105829455348122779600912904758799138211304442398959916186698063124266889748842446645559080333751089304479211516132758756323441108191543508030871054956580687548827210096228539950784287356815671495191894540682920235928140033507764495030432017246369340857998893056292060239852589256089997591813060531666189956188681546197933256090131660434610940673838470815125588254683159784449121525366355495460378003159577253819384066216057624282433568661336652807015631307388323918056380498156830121521940179311584506790607140795008566918357980121486307902407226373309806345947262030212266130697236816125282252827663834899633842544197922410402081948079427892719910662533275334213883043129059941102663010309099787798601666071982559329616422460024014024132902857385995098276295730241591139573777029544650919138593007301397207539336470333638694349092521314924459484387281175642257108585474660600860476648347274247919720514774539443472820623975582010047718765736697513538124205022533783114268009270956733390959257248909525747070687066079278642449053214821493853678570026369330810682649924839157931375132078818933941406622177190394525675700223864676697987888243990101224859229301045431899641285642282618896654407365640448970885892110067701097351651553683072230208338939964603355041154925654897023975639166329012832284760021476848438499460611066775061425457179841037793562667872444396117206610615623145204660677648410595720654294445418942273830806965958170492326908844789309721009524718297827889107638829544741932846828797765086125634240520198702760328703887507306958027382033582734173823090912850272545753056544939147224506024392085553594284273705243230502236992515993275099526641482320865178987995862604902669138922752266019902081040184877534764795189969954022288721014657971366852322237830673980870939779873101473022209680579497610975085408695687567288116939518394928305301523647128580956338457081955079758816179779980460676969066201131413988751249068913697579572363040098140652742996674358071521197815751506569909239098026736790551021194024896018548063972266455057248510180228057234175842099831672289411943624801133364256510440054127526398875643608446169633382444950692963553590283409837089926131861814791531849955250809253473164799497399346578636586745155792085408179670353578299323618742764446663332052863309880628605861456573621245936919498732341544355515236994772612476355272732134001997585671009147390326158909357717403950764640705829878799450438001724277091007036692109799168728110154359281587257343407270023084247001072313729036337884730543430706255247367304120396760558245973968171547092220718962444331160128216348543119680251173442363841325882961666508371371288005492514048602002980504645019129480890100963689125684897576890396698574109605025003630565582851144553447510441893622318651384905527880012767699099530344515380177005234404995970706880601568421423664461138300021664018494839343528633329653803253489676524314771070891835031099408164900783779544279091275615477395413435663093984607545647212022957090923058383899425178031177409603814097939147106219162810005558464652318899703204498533444802881048500983625108591391543835313426461975737435459291444267957846730017700429274364347002726267599475805760906969932358627324957249132168565706225716343199621577431196543764964628798699471554038934793808514701062733895751376598444053461536445524479981692840920198389154985383395183394720037710987971991925289619656545341004749638949971684381895805263066193619706803573315403345974432962458398913553115209767195931107390557116840998648059201666759804898098880499807690387514889997705827880363487901252728136187886854465684714206821351725598364540261029552654266567860447856948057284985328229691357358692973675111726305254376701797209327495451396927849548600393625090800723822918127280509965141537294658240361473580818334810260014921571925833894646130105961861292731791199598977828239919021269758779926607302755768122827539907633297370175921876471892106329687313836740180597691773212398569490390261044088552042887578408983888719741362265869018013795180067730293519647563735924773849343056922284842948456243275935733229829474093993275914741300249584993314350856773285544246856375077216912691844547937600248474017737870695125006913106901191520863148346888016348681034326477371766925044282685195291275971044350328674727717816007409481920371560090748743002287577904743416289621682467281884903171003196707326375207890219191961068331419325445586580954099880096186061258732365031522349301591564179896890307353182576555650577885759829387846074144985726265378094797966034422878408938940573453673838621045364479428250829615830717598393274744356711240775606140925737488427275732854875958047006738558413913545671464097035076083226095546856376862944127047775146004550847403067852531915167742326313295038819273096097781763427477220129495106897643928424985249882813530420879527382575209861306949204288961895004162512873622717129377693612191616054357304556862243908244436257449555126060450482716923677044008807827526877004296327198569270754348237887623617724258383653252395705911878160485343901950301557460622512075423979027292414974081164092749603792183202178938099483839610004575696791618232757348472854065252008633481526390661592334136140938470272929766534458073564973258205376954394287556338962537246517142936627725380039958676363689103784404467089315471299768984948707226526644107585652416194491512876213597168283141451104794128994489654089469880004623771347623282812044891895025020645554951214118992438685988806845464214701447438379841738015542485140985821134055060579877594278979778727915063400788438721511458511337432174269763205548648266489265862055990074889063790059240301795470204246640251801725339545362690594016567755654449838181998957422400068582746233718600196151003327865212586643043819867586991790199388228393542285469071769525411417737187960056257074491067295050625603862429347712232144435040205586387221868863479064032961022432889608605040320930186086460185676398836723620612004637193228270202221903865538233044908501450764683852115718637355917867186910775928452997259500114971239707224934171549209026000595881975187922824838326323839676292389150209366043403598175016869556052037616634902017892503443330599420990891814090349841207976346182426129040025660216154778702700911420862248892221568296147704203660594855630386791898516102588238198826543909433713111248752677507956604622097400419119425259621706442203761550909841309890483816825439034487245036242346518087783325852741456588337274419955950854710145282345460054190758350204089117961961142767812326303847820703542571488011872496572862095708626856680167296842949487381377617991145412336452529360326186975141666246378038790475516700146394597326508128974352183750233249687305004763649702235145583102808728891289698121427753045202288554201827148793802691087700547049030263398447879524372534284125630019018469739774459164394966155620384963228758104655237556999464839643422005108417621690806176586964622137434745628256940264451513085871478960108483549500876251457902928182095526948070913919674853209005955817623349470114739755309902601594020673872581223551754726496868855954081246616298603891411073554127895798897528692613760916523404841067387332647215239496010542775528561767645852315139752184498180721284522737148556518554182387841900835801471937771255688936382819027138773032550456550928685742272243328533151623537363942977283000460649463196793064519918069868883188057217323771789374481903539925771193905088336090061008268205345784143158710426121312670862349758222456247959028842992616463480576004047020544529033381221551266739980424304546667168910278542034310939617974401852531962428664781134617695927692735168652740530357022309776381529822038494520044184679756658943779990761873090142113622128660799697053053757485646446820638783075677151186362040750404233381115730270669140849422779869911929988881799561887696138765287810978308061104176669538261525149243164452804509554750885566410026531410438912526410343749881896043213225143950080066071899515128227837045780312267529899494083978642764907390156341965354253199579118087589535630531324051764546792958208043341171128720148400788151328804841751677306701291208953327126544699037322223581701303891498678660030839417904355445592055567466629050923804109442224368756974658390690992707807678192697623903806667530782624375133859738682698844493556664779573436481696929206910769926054426842264384721227913666823078539384843243018029454058642061842243686205904177098843689688896069643282222074567747225073328867530472404070783781234813198090694774002982341718829704701257890553245974060672886333595779890603158155563516244310860590943090945664565713201729617125615804762654721692853460636722926251134451258261724896565776813982241100353686381443870184167875239288917963401666480140424301522502620923417540005830650630948060983121551068481329416007783454579382798776099013492589604082065539049825331204204944996167143455510050483290703697909198166916726587028816977520650459717218285099963410150467300767898669333021689766942736798444077559357119191379195676262769456359308816936829234905985037132016379318111078342374018511713566257410342952891300398120145265191485033397230729651837286222396484584505229884553343333585470138843603348926417257161501891423795423222595180469401662508881792357173501524794961113433961539903336467936616547218325437519848380363825291694727041221123843725597236635013410192299051277847832825318628401607406858316599642534237166492571764450415006574750317781217795156188162785124833564087555367797965694132344052616310239298684036604188317254334564932225832759886264665253378502928281773636819953261669415399273334103037815728135074646590434777044697459325130289876575397515693125450201205157772582210429249118426986855708842934759825806361329446526707083819793763816301569564101715989941180448820660072980019470391155925585301648808660103405949879926924592326565048830265814500038055739311349189222666184074112607507596863240736142998428935872778171345936156312207011005724798340707738827129445178007708839651012967426671819706919882693112921542518602224333569513073539699580993951218013371598295342216103795478512209392425490771374092387426807147866426996137062874491370117596292167433203742980402024933783931481998274124833633908867398692025819966095540195488751165862137168922825224144343704620128222836163377935108685025566527689909738340826811589078721324862778129298973381660212647751345333826869152672019919327092680379355432289917102728435614993665066972109339369484819001313629038533319393618859374319732306386205899762722460628263488203098281986860684708021674672969733618541807648079810835978826700500277122379747690715923931040266875278748359773474029642969523410008654524009577475054749636310860135317563651787239416705555693003396495182512583189833584168772555472643337053478369027333530871791844629849422486663148894814127329671437941939075520500899183010977896450730152881931854013476180988093008384413209417775823465760666523464437182220573417722521050600153559741150936405145499644865977875046788256311466008528660586855282228957294491590969012389326321229786053764159279152609244542923875041652211107524770338720556704511766925013957876048002489604412802877513352104362647692225116096536571195974762827190607854847644987521750971770198629018983033972963363360885052049954757515502565742983561371921667664082573802494858487658153112949212383228594353007995886249506925672055468307605467174250731653616869106778693330157355434378969946244923290751024213762449118860010015455265270061975005531583167452538215070378940220255035857571645221248022301215919553305256208747164141610227951291155419648232732983441088125083480170471261435861779175677533622581116131191391896164016040855231356552150819549178143826173138867252453070254397874542179613967476279163512938284019970414207714773162059148887323455468929384253188315976732323850651773604036271560503937754400640482766888375161041233926642430290535932476103081897113601731012476976831586775316600037914881042480977643466405472477208094238289610063426630885393572028227629082807049106331621356706128970599281819699044702535107095337876387072577888302702416927038017757649325173451214396592068407585864771110507712847825634837101298603485707392017846314230866541002007544634986333864195074346429326982489554109428497622905083496304936135870351413253122373848257474336355797462125760045125209467545202784738459899335321134435583716965161603474279702192875725836444366638801795436819110788541713923140530463936787056858232577089634673992891351055266796326390382959911844046839851284151618768751129271425213413475228335906174065513829765318954242580083377122328152124837419361010168182719921503112242439184262799069692858520333862979719418576868727821708084456244200555128087910140221066236256969915697759422240216053884973356181762907505924449268939761366345487500603813317343093980581400593893877410427158951368919482201095402426126037671037692333054550705163038468499037905410296844979101845303759215994285670594219184854005590515367559721130508796020917388479929432084139926117832769669243890543581266261433287315264328046996045197333000784167859818601975099853066973124247864962128229207104073380790240875356256428645466005143155612877250858593389400263857846998243571439672494550536212801211063408822392699288458320226404709646713651412498554290430831549746621709605712843819189694104675138069706564436338401962888925962865148702790293155712020240449296614731693122490404739780006701605081510676400293153038932013968494446479216867945405847802357408767106638568180677858382175264279461312142519025007483843924891621956208796367656688444353053454639038449204089497261648542129184597380215456304665386835326314154458745638245706305022484241337173210605890089815219136799329301004043088827043877393623861220633697236988383638126611044696629717773189283816369575748695592413205606066254693960908202850339120701583052580924824826815116561029976711648333348168327400523119903864355677023745769148518121860203241750367328335947751667449790578172092397694879116258359092198555032272644039571314878436992472760124437180573623362405255160476080638625740355858152665286328833935040500812361194371806936645584283961319988008153342138711846184302451464675789103691878650187544762078057403476879279908656829675627339188749556391178351003533044180455480962128327466009356530273017722971929943168351242985481567619033157758930998823961251616242673003351956575052340028471687695757153154755047233283947506212645554178440521550705118412138267759691284251416459130512784079863786027685091561005806917973404349403600147659254378839479732060447958018029628759622322647452046022166457502587079144414106871393372608069240075249009215381743924499304530178637025561453074439870425535106483470345210311999174023661945522081541048398782266810342873130091090239581401338643046587194850239095844668310049844375771761198775671565922956501431274251684814334347658047530200425082980934714815231479546873613685133371119145699956370031212667552159260356903082238733873666822056160713429411539385652014029354938621943463508066961641800787819757241041475914326911813591746065946802003956171964251589195966486118420124915548221563227235114890346773365196633677184153800410993859705754470445073891427664771507210119336960164142448826959615594630731674892314508289141437175496403702778311323785104139723333439793930072087806377850897860270821027773039726867105845701557045631120207600155952571166166773778227034762387323737368106153047488285966472515112335518942187231107359929687388198366014537424333170183531445614509905550271033568823336752688176895094890739821349223479462072091235422786820488737501130870481685364123991093613372316617324085261198035752092160162038710831151008925031134852525496482971311582620867177435967935007124601268447676131532803178755179974699954797019569423977202596444986867899283579406322049359475001630120343201290685944258153819254125546770882357603641151522105861807157752346172201094213280993682572347582784198373337362014192630396463776773979448693719477132809659520314994696918018630470141235455982723021106674275026061689250130296984419127509887162755644827186241940417807933519673847381376129553462956155879684717122343609371244847040652575099888700940858711259929696679812171864970623634666157247330136541100131811043767416172513099745248285551829432260447238375428012333281896172871735404161684830916768051373040591688319510810572770992373307618151001747185285345426197629718650838781089746449055053396163232665845421451593503964829740368955013332618236360538866190476317677601866552436908907007154567924980125479638833232847964746101470744234004415840814885513568530819776939913609799479039171956085584831753914851159127822246983186291551264535607139635018674816096380397255320479721986005856233819208514741527411823889950405394129747687174633046617989717409062829572969672084461300329111351495035810176231467719144635738198342992421234870753293965461667859138756586774778316404236173953555288334716922446692670505243932096626717772003869086415848255960118469076338936815034848941005607324025889744272120999397184420545694325499549881940952122645262846431105791893909185507146162476177662518901410889392704943321076071409988273715331854201880028922160495712381965554649858209007778809719860439374586544369417399950337576806695369293270273904286642695631813858466765340857814372290746540027794308973119445447196784271902452695548626274229521040250861295504962989451312845595468161196292269471366536805281913225885801994846576534588271896499848122379211117124392219741125039675362736886850525868674122088796076864556024196596884065308364132224784203674659376748250209880494162129554712318131550399997312106565552333315787181767090458513656794715272367158013619193036005727671924125703178147390399015001768328865716016985794295822122418145694805701690900851875452916887556885200532929500482991021482968248515123620331312285305135112748625199893002021706354368800287281065232446488109692006920150213010404988710952558294054802241103066442281138484847327679551744211711740870860905446118837370680377756180430867020159540714303863125229536505764433009677213337257765348915606871287939219614799751653917094950877043466346661057466463458708834634021963867897994060315491869086480983072534265262535202423895754386794800472109085994303690840782474485227884057629487760945987497455604006687110060389042476388158516257563403308993719749867211616006174005680363219934647611119237632100898994206836758458117266022756714586185535062532757169915269857253036773663110674960542465952773922354107087794905971475156048886019052722718484475483431515320704545142456100370811289673766408942627367068045799433228213827056690927280569808299719855172134185025148957794254363798572296862032316255657802980745507063158128698941848199429083187499758727539126213662738051914876186562987284098962865334621757639007793696208041295064454734177643110540194570288404960618609619760649443952403521594272001519706906696245832653511762833658335597266594498447260893473738465542361613088320032227623590097533273931591184404407959607946067429999632486721942474251360422958990489845221193909415553592167673645304876046732181657278820797162718526361834222200347253902704844141333091287519871973995016866300393624639452812900959830437196319340075437385635925847254948115619685367468058534639715499547455194456539698679735846830916540343448428173824771726086885615101147415090772418661436748362670926227138021899147404954554761802737801319408090302714830330803152327833874081675164209063469994416567996893791521301282057471148871828788678189581387241829429300804615121961126795869195656348886338133960485976329019681002080981485384670035368259605046982740908770503517446382319497820224823687221579439432189146466238933965018971053168871215133320229458915736617718474271781946911438738148231377347067982132845376821723440799148462164823165918668173084323422515101839816051017572681745604603905048003441273200892735104767309572098524483740320353866618166516491804040060167708452778627230860018274102436876936355333059560576490618113153373529154905272900141704997339268261250073663071573498189543591243001845149037101357946124124517803190364631036671747215773186137424845763517283793347332503557858090373169791550344949367151203003359789912194079614536717598246538863857642442749175039337694398609620495054595344028755977106395315203464042892189815708287112221552695562598385538791536157489422551982374947632944473232422674740310283298310038736396952354385455072150531949140467008267248663830390087865742265173056581082659875421751689483668512393385844178433521389749465020878603751199740142503927051764407204771680048549112610381067879321194477132696732133310281590473516625062794308105389403051273636218772409698658236747197570073162745961595938575849254599616953475215013487239993046905043021295242627358451772576621552593445043243301731783526592104958013901532902289396930771473657401252349354013328445753350992923365835038542331012139640675577900811770460157565891241053993714704462700643289452755492466472742596776624860302722761131309946208977866481390275311595263891994629740032893998937651144947744712840131438267856781577536227767916637927705874552859790468916600128423338369545775687936313221662748215152849312768850306207762236057946356633276931192391378082805156547664194282786001331857906679179721304449485183073202730293931770434653944951060809150655330876241930622210402545939451314630955185743162197359351561090537958020036509304897776558440966422134814935298667163887410141555497637919584551822318320306771278548170063192860579811768862877384189347280147561570049110365606385284148450029937589016421742533163084566317660033941605657099782531742677915236086726860350461749676922793960227097736903890900213511126742703119493464184493314181917682891172407803496853548099060842552965040169376553691106640615879483751563049948398672072428509381601035665921422777961423906895601839067188002858891950753532361441340013191882494783470251472881550785379227259341557245558322464089944508204474722218395566106821265088754413449292415411376772600035403124688374323865241486147579236872461137730814080085675792196764530151237550034991292594368460075987800650724083030790761328458628918768297565125402096018507588852745033296508026344216968454218969552099296823093256198417108961804104285958990565891661046771261164181796763686118936042946357890119651603916982730537394843584024429922480733829609751734888155942356876681182775920779982554351533669083161237392711953912976876959027077052153879423054582895521052226791448485516590539992876889656809252474200654299583648535617733879919533325815253903276706609136795309865022023114131577458694223142718279617886746211993732783662461734595107101041715282270620701438832168229621311775282738980932242628960897429411120359026205018564843158555188142924571255092721522620885356857423573199771237439358080639761063059072351197283472208930411292435089557656960163304570169116330683323309430298169077183443704040396264117023457472194402107160873774726169032050655289720929684514216267462933449985777976513153248907789778533851019141557820508712747777163654555844737673320812999728323953834234803063699306948816627938488275398665689411661967780410404880618428158950330178050186468188803675307451719176740173825767933648807316424753007396111837483873566735143100879215516034756960464419763977979352393746682539389711612956563889060070368784787700969936920037888936775579498532637475390086718622515271815632728880896313163403844818933881320841026775380584190946955617955805923576948440620757692112887763831368672216867008660417226421532132490406497060481223917993387835562867332347452716115415698053759125073850589462046798022886787110547497377588716502748110655708872624747868134894573568078801034461108354974800675537418359789968732798327461772174960855811684619903114632823168348267445566851905196354113348364172903524326243776103072899560817197494056596167875017286624192854696505570538036087844328697002935902386968816577037233005348830195928091937702456046956549269230651879956411106050794863761218164392374863667222366290315664795170853101796435791564090930283631142180797160764202536016153102774671685878121312751516665108521903423638271314197676671545672911018641397976731905662656920472154955421962508950547227532403406603671071560401624239055207202299275454330789077371642581936155445152048307180529409737856909764551524077500395583570295348355612935486777618580752817292779214614433764402210198945297272053180727781171407844982439952116145599578467899939480746207565704954476896510741776084350356081184526976686902470074845867925531014187178509755415368262151731950637461577194372014080578379941135829570877083095864652199552660229042907360432435971154382601443711209921738033461736544802365292950564838041346931768836932543766110951164791984815914722496382613751601030764122460727958494050979020830705075065233445448715439743766294993658608831542988999908983171352022398074073672189545878258539266865698668081340814639488041007015469723823898330895766783522380805287048716813470139044728478967050603190507442269316111491340793481073035415670020023609076714201977720879300315718086326196015694879123195545764910752375069766859481648270316969833954039917639268149688358674804666941963504478130011289376916801588880914144124359509979543422362821328077706599024645562206193231565810455147125712579081248134982552933781916021896441803831851417086250946632489290426672268487677647566435253517001750721728299098468591254427988363310248390437713787414586919463516456775047892233272077128115530642627040794077425041024064053740000698713957310900423816196176981716798952678338811727637336637038904213971908891208075924097452936377184612506794374303816700713001049321456622664708182307980901835181151845729167439855040097859636525896638947173189242701357487600134022091303245067651371242642508752536417328385872277069238614597346372253957304566619970652873765016904227704768711672551154154541190206534554017923043965436095252434051813784269574976423249017839761484067638543205572473230863852565284614763428589711686132974534030125388062650024726587854336589471197706523185789792257558394328320093175956355779376393846574913568162254529194693883309516587102718724199964468615091527795539636897535695049116323205129362325869360906764914911859985137270823611188156688004967217779400198913872399491609802393373195745559851624703182462409944271569867599011208782858659478638834187574105361308679447014078506380994091397669889663004642537225825738578010476946782380603648762279684586172308681172495828291917710791176238368154172000158572228380421248228319277178072964632885097923631321269540484127265380452405108698049086988733905890232996891348993093981178825330401240492141346089970386249344235486413691944622198018529911824164582150780224188787063502312195100695057748883406999981224191793275945845928926052197876452801827065661940755827504075179415685338242894082762881790620112309312978656169118797783125440655355511765569907123304596180390793272599752862001449958996388214415504135752850210975733704962289388620636857806302688466461157586353515088201731761640230076177949282835611913716829618883320671245863647416845787834312431476562832726299867123967755303691439199294639273634192904165921796910375372665554140327177819915554842360019222018174934998695439608576369386702600101359684186199798711598652625256510362215866827804775504644803486299171055186958859429099572224555247596768121525082644338603424239163316248803128150275688484691945222960134749722880726785421350451267807081892715128638770235578151479680542102378627516463152245069615964556028227635920222144712543200186546151413278446954634488254760278118334333768849986440860038521828844894737030216894158044344438759674063046969024143525836203988000293097297077776585385226550855214834797460678262729541507968999990899545811356794378266752860226239634038316709178395449137579579106293764979423148555557873054736210918180677045536296321215918645212157865774254144676259004512978613636486602624851416775517224770973462668355026965212197991138606474813728280952584602898845332611943944297765131090107335006603953733370414098609250993069881410465285630762140997886978314372740168570123479279198708191441131731763999644487549686922372542234318670699399019384344657468509428357437135921493361131041611921797202138172692540531557755618789199841623657924659977483480884997776599579492334862493229756329574806814912515697385433002442004890284441779731661723479453396955628126877118759889221680894061262359920282715512209403194940389099655465836316061485071366066229630893996646610964777740801704152116376911149733014928733979621064707173929405479731318750615303398980498008245962087664792200531849501158688399888389029538509600353927306029970822227059887690835038034571547898425531382386711312991990873560700869767318868569340605986301379449639507036646123559460521202063373991811470492093022098421126471334703938928860339372746971516845810116361254199763584668897265065970135665637235178649267460893192074082522806452672148041958686965066281869501424060058982729910940550266511795528260458349945629966223704239891188376725429681217065202781903914479770339808024538624979753353656910561374828295890621642942295753046156412122051866621070670194104787290740200483637969122744619756840094234841362768233237173035718145154922811846016948695279237650421195369859453626613972063562845375733299793483999333298653787656923677084234501357402250314469609610652225915876794131016965833011187925849568961235487655297863643708018195600469692785228264109530223461704598781162459777238367087619216632239572984020686224870468345039380062847734091466710311778382187881355373936694944045031283621208949701500447803453452672683277364759319009010356158441215158622483998634196101394491358484059216483794673109478638915477509217982380638703338722835459908093112567815312518108377780458573998551662403097014602141811440311105523028308676194148266777174515371709038146174125424748866023185694189226988579715320582393269342356792039208034519321544095690446433456234227856261346095176842199444460819219270492543487766544609066949341197480264784697600409074519788182387175852441795169242313182826086538021626672092171186619931356321799448005712407125350921847045831041236137020705178721746127890526127905831323329892291615462273933080703431021436983116505659692065839760460138620803159584397049425689681295663617500502943043454655278848621409023501325151036231004462435602057208070863996681110128146135845083783882120530607974591487199657522667234497429524696102493803837777693448185045714566203610241816213253554718520051591074118900112960201776910531176569630804637910229520150506926702734049170352576810860746625295492718012629205983711313373930529132838416904053431929686374374592111171537320062715687764618238761210094749166635229514841580218727592138995384508464747386973956371316797195212497230669260957585067735869622960092136359656753064279979613353249148426344512513162217644434506637623294120836817412686850317904516233748974146929166245859640577845560813692977360227004560026074684070174779088739572276802952222305632234084021391533130124986199856841716715622912263846484417930382350442791321610463170009041183873960906118970821326353779778554797062551387951951897279683851192764438663755706419855942863215736712570121492940870474330384327523719685653934509868690638150513205102783959235784119574108657306896112948766162060774075377244243132116587927675504922322855342668800413189108944360195571271002062535496558819645890615694441439057069170010094212792183444434502371265964459303929055219826005542402545566328894301246074741548787115032284883840969594974991975919249654281022417110908802149598940735010414754534629658562990597523323274324189981053226851890254637677120343554000702885439109383639032901148242233577688003062725139593050381837642261077244350743549610954987690052655486862127761913064633231144675512505949264689790983496623754749770562010918037897240150937071779016968205756846374674301261979520566461026542527835103347355364730157440788321636156496097568155386672522293051922904738730660296188881333522563684592839810449409779394156995017285325133044300136082844945564154969409468668810642253449895793748456349613732576201255089552157925689456306968039832699398057722479497060187771256705935581944887703729644533395239599431059168687919882944546686276569313373853605281691639333969841656368192767715824971565556514423804386813540265872936714926250516689233932775757764472036952424680938798646645858630300483203266575345484864144854633410801479155934192014570722890680738719218467440544410540922870354581025805706191222482355398334419061656064161567100067157244131401788630821042180849900383798957843113703206060830702353344905245187932760696984635904321470146202797611754766136617672468649231347155546254023846828603130982529119306933886485129955698258106788314664953552146349337945382685810159625812652823412321825993692247658850914609227178154986592825306956585794287150886289523766641432663565955348951043668672105868868827740140399113007685286156376506747450906464916958763745926594381821513285485900498868470920770536011150979319111159570366669222393732237987896343492662034610743122948818886418339540758107240941396182223727245099188395804537183966048256234238601616291316604326761066621657678187491098971827553670638073849548554509350437838695360293833133192699205486517964392728765577659411508570955822941894272719715872340358826766318571856462093839608860257004184701303327346208472200161867316805660148475488728708509665155260041727827610578177984380379864940300500183088546110924205864056567242134984909235924818061400828457152091781390697460665356421100832337136164667239033690942249261899359610222024217857539135340992504191698398087224546889946675140822267772293371446566676581222357621292396526841207660942990495201441918536498316127015713847141415926067073287279972328541903664623602673594052615813703428089118222484819745337081456446737225204317257836974098067186838814658687391147681215135980227500329237279296258370181117928480288826766644835903696014500049872691806519557535128201411193937178164893159737941812959454220949325307618627811231462812365466857110974355071270218743525411019921077190399670414541565447261265542724585231771999273589367778912426820530346295910353719025903199188364545210536235180513283260832051632660898115378603679586867956804438466624525795525564170530744615895436626649594297469377210319193539320434436667951241180594829572773750078568381520366670213881527526725195685921940102519412522208169962121429870829685723222014482793696265664911752631427422402088829721847603373024874517540485150979442851267459328095076722816596098342325264626642086589806058883774655917386331014709658437918284666173828481106642893556326519918672649508034968474437222888906260898685855747224218163133835596445283815614723299381667473657743008734876028681389938507527857948575114121372187549584976204512191702705985080019624515436258308555116364843500055473636945148113414531907417166302414693513094704663328453315606479831466934583263453573317772885659094699444629542456586674583264528515835116397083313527457077538839720971369711222465932389448211107253661188405642963661066354125551650364527726068872829664988190788719258909271695912130798080034583836233725516387356581113125434000340678924565410497621582811304397813600497323686929716187267897305745481984264347972483028908346190447306749928234889280487865441123929421574882438949350920449170403395969360934405257054296049525738806408114319830614314234743092366935496978524179745958043349156237877981559838669696555292046812191473336120572098447875717815429014297811832706034123747405905431655106893898497328899206907235880794703642675042361453726343709512448106415004510609651466888245883969817587090171045356365539757076226208715593835551589993831258049842976682008427210391328695799469697991108484412163974364108622767355244833080822984657755362638302996157698989049851703876702484682175219331121895979057074287905987638414774738190215101193269479226881999271831105369645784618459019176853065986891855002539554188314653262073059856079987829374947697225745897233927695519058898066061987981813537228526539238098127769179110524620908567372567447582897420569329339592380816118785493804790810160519457264184020660862286921156732363873338959467213918155028108685689146316598318852490765245732203783275322982905135265694718775158830474330327256719479844879062594704152774952871913441824219550723226483058449729985784709470217647548131011998999116666866248487566714454743781890452616460029507111951639637815854790997041060009881658446929485007984570240052218460860090053225858467954239284408507255930461986083070584227190039605942355673561862887916065951307097212623381534116408162305792199079633414194995909167485040484576553756448583086124027165159696952006650820670554531174703350687947834963700563727069769199949153948168274202525468479737846699344678296446538152446613493944736465309755810510779028181396112264705468806853191435373594446112200196879301681322096596263167740054379026932494581533772582415100256634786967380598323444721871445551387174013773740616182337298369541969486869981056657402823449981077057046663005496911792819072472091345879957332490903932857284885609431697046732251227435034031618051683089677294510914695933107493266774454660237185290394131971226384378049302215881073651648160968620303823392477207137786626751229209701994256772217743319044206987385192338329299807906093996880887186734747554262782475486712809671819641671112548029995773293213517945278001997270685405623825570407138885345854856584436714546676995738194856884149237961921561833896322134596857986924914439701416251252475408366730657368507778878110832468367633993409228571078826278140858052867320507711338095396973656872110905733406594512634572864775681350688220261064410553272602042864278978764656957533524264178576666639824510342295437466322793144176302845066205131620640087195288212705390720459026018431839900854116558242126957518621163220883151169654439969264310457980491597609149160910367230075691188624343733208950616509725099597376321186980941468817312515512313719832176237118944625811606095884604010643180261985065072007222904708285793850048669957852781270665532347670184861287419036189272353572146461115520976699417853427571969975926891895863453105216084642136907477609050060972030443638069630655738374567993657195792441626066646036913310297221351098252437870759864371143333396596780440452731654650507392874961120359776407880831676396440854246185354951054541683410071606804793333105294420677424713570093897640437617955169828604175509970190960804051365866647553384981405990498889929954332830156412017003623416147126158545479218150876297491873486534943568655668090614227016997234825839119763759182784623292931571837621955390095766869732134373278694007373986323619916286506669239391244618898635085479343370290437364496578792789255830339899590840491809769429581304819648180740869653002002679334581597406346721248546468252495532105722953526337666034052773046874192485598375966037655495072715699427704824325374550904955104295426843293758802789628304044665257527431277728608326888045555885490849430459885340791619709571771800201591905437027508496054302233473280875476423668361426737694382615938753823160196971039381152099970654457447110256651284800636679821656083067274078999442210535955054393805385503555926864143802831765414182429283061805447280647059601474943849765949343770117273739130272259095806025331364904342512046465608787369011379820675370832484805538603384629934749666319229358230344854952712282568647188075752978382304061523228534394645026535324428637077643214416618456668514140654076594300001711566019159779236736794534188021914284353356707833465517953358596404629270433566339934066662906359533660491546820677810243731311938014085504362327478654245167461384236420414124548739460669583308801771488442751141693256349469480225090690919973083656640284068806506538993571996070760552345806493084340656184282326344941420818265370383613517098136491745890419513865541096352601256402479952409707970660870166727078943818151780339925229915055332951378122116985104427087426030347435056976528011347692261417812838781645610572312904321871645980570933530173050882995526504359480955537266120780810467754277031261790639124659290607036756881081635560313840300566168632157243849136352659176028128208332048170698258688683289985657676666092744511389351099349251918114193450353895891273842690989848348995091331651703299423579121007575035334819680923768104321331958053207672831500620633208904989987196003566413626432219178399800200324882488675007182248075290897448954214228037567416310870770250931205522401945983485575993499604759502050181291569999651395883355155667443390499191826191964265685713372116507924613614585897224502416492857919749212228307891947504147691259798793927705495248912632274825355375058589361476201461122108117969773682774705527078814733446514292818706459175331120340463008865426667003537301929325726947766394757273506015766810450017423082321368935764724836544551410554284184706682201153311907394043298316452158410045039234646492489851757833006236817152460986234965185354666658489096857120153177848127830446639521111686864610842945101808271760230919086762550872238210707604444373337942576498726052840347447535945747369265265226883621960168191969919350457798372485164535758621769727194351092842301998548453879594699269562186985923337357209420226986666200799747820115280905817997357530394261980804498503342805611856912904976841819069882549447972201202098935730388978068327110464617490476679540580221880218666434654171665011506592357490216530561353092094320725357143444619700375868471355965430307001986102303430941604227528049125511474072720704739620819401592058819728945689209006693474172094130554971312036126654997056771549283279930019477285940504011873433825174858707592073775732518212306597327038509487647252854156059557888192522167147925543178916840384107007402844619076809986532824286135884462216552094028219966541322817880684405805954957747882963812703553632710097922198911498773020765920507167735910430274285990006317638286355881029042888952028629095429740944070673380912668701196922838402760306193634681942380156629718177236030285385816809052927607564834265692711005941246599898385505720795408835193539791318141290352480264920433906500241731981708967752537278313833600845346215729645385251453110707215929800579672536306611471137402500178966954489955549496431500028383543054638666532737524523659704202881768692914132086069843621601678884901434916247364881177760086245034591203069167608161428173948951891036810630559713949982088234286638577480352788596932277926096791636982143551308717112145468309575089333906634146979399508795337747680196362239051492192558698967426564145479348385837211825292514247043976411515919476388298510463443832159729515799204521586851627886451275379027173784551194492543038634194692584576158761833490707252493104513982362496150285048913402603755084262643041798411440453469229816086627940148703099217959841937481604004326928915131302440313219797464494753827356209387580310324449673853893479201162404214585764732264856515843444745426686662750851596286078769622360159250847936347976483282149103653650976403507426449987083075680971107908215277963774037292957716136538242477008975693824879053416566676996413874651607188638140337090082713319185046910457327167694330196854166371207532975965616386673855372089608561590656667909199338883043306703584443909305459012297254004214286068715240377196718822735825604375855373237305785614091946362565673384756220227748553241541905719693819656780417739563537384790441204246045448178937676916807538342011847216200320770663505863254472591652740378463334753975348795897838664815118218171692159787902294356512740728808102058595205101301432192430306047372260992870882161118877648141864087522601917634600483718308875637303057499102113148001669668126267915836257093581568215365708312190314530798375836968801044856549924819185171384542102680546262923639907168289425186017795265643485009553950934589106048993217520820623827965579706658049379893122719865206436766196308176033839114257004822690600123684631826481716452550638052477798869931256304186211017287889023211307907669816622600858261291502181218666207291467560833322420179503058356994125856156168982235881254801872028402648983897816941525236186965286445489731530622760007139997071390302196316530496145132198328989602585088664263331800960810491756250884958604634573682153957898844535701022897134132606884109708008722595836065876514548868325529934067974470791444889218224733067729827033228501006061469707061224136615348740219474937493473310127152690411925326444909418855770755417311971017721219342248940459748131705279594655548074670083189158076165133892100002670119078534931336333888297311075429678874348804843272217786040961151514467052345299120398171535597402218554240839025100235994023915866774627485881769080419779366541558626287437971299049921947286080559556485022489386447218692145251278448617514849015289408681405090543621001675755371723759322641885299429855039245229736563328263128952827079708695098656632471232331228616730395997023915744750840194854234013857918407970439145452332637992402898043219448848207595907441484773570921782389593803896059225135651079832793159375341125658491016165758191895844780922701558930059400762252685375409126915128629796294178384554673662622015512200452478408855803264674802221251560650459825829483916279148467983525236209686194759061802993667343084444414782586028064267128510946802715489727658346869322949090111764815997892018881211147819081329964873344814934036285886423498214905231843433642943204266806008237482698634233813692933643472300834583145395276331241047013240616714017940312861304458346933242243754538035854183876632360964395867260415796408875879102594936701512967881634853025448294950540420319160570574743341197923025359257500214237105244542839414878153273024464896657735575653290030582839711310759189838272494600798320448735914123925884831752019856188158920194623183256137697898091967463869941351443097619847625631292197890495079836171467914520828672996060750469920095047900015562487371113797013432193146924509583812389421446362778062928545449584648639627512498975404719926355105700186789243857768868578172950702571777961974467921343021095342632763745924988652906343064459290788211878530555315597686157653649759084532774217076492570892005673901516518806144528683954919949825095798416959976788894075031215906763369084114945357882105185133235606508466696833264706747998758878186453247890202268341400458184785093555899673299055341591993134505133666065519224229399060141663917184399422589800711137556439240238380783268940091163472471556055550552500745104348088182485090785042047654646644039129584434800690661575636105314233309200669675985089269687208999795600134185499642948480779538670509737352475350202127831113114225676062324835938233650988721271326638009744090481474629260536214785693360641979622090633666090601655611084218884628696534484663771782961983780267569636158529404813814397787208933045579723216281739312182655409260679855463570736325734078978217603326644063157117933571654894756390901197425926909833420972812964461308842382864915619261255263774367815560231511364122978673958984168865908036985777928181265919749328677379105987144392119348619897856900947771342587589655106349717437323609482910071881940070303555027721284225771100426003191152718951575620319642651865175622864054702795446743742905314449259537325611427781700009393127385920142126196727191281246666591194505501088682648818287917760363344980794219494832841172970924518367688771910671705683260728229522239838098404720003093005120165480760170492807301940125405494681155674395523696270210017562130786555533049336870940303937268992460591443074635855477391487977139326815672321103992168925016989355193517616079386986199885117274512578874189850276285248248216991292123212522003602170368253217783686173568954783506465352592521974071797418008146635864172597192727284955361744768000785292473940369326816124185019197537465347644537054907898034261172492134181023416976393483366626467023806714044475821665641425458052224408589000799039909065403221087258682748860652198632450252056228146449746645409981518548627462988015599697183158022470605806437058199085924185550517261475324612496714771786732832535699738498925289857206375303679427469566030756889837886993235094599762518893787097384484822476757600065413482758584362668149895939907065569202028301582769838180014052517136638500791984811610331813920945033138721285372483549532171359683445133710662830860021731858728852201605458458655132386180332655262162325200111979757853936729545494011927572662064589143148208406125160027614391410920256455533855593342678394257856007257808763955116360214622767512984422644425358415272258339074931424871554944251992099389046754926059272906048803276275100290511346908060159210430962741361521803535567446966198645667890062386449469765727798811029077158768498709464724471379924391976247928104855205122291703744366740642472423516961071603866223750198592747168217235619477946817587002600915222349096234955955927507570184256733568295066101696088598783416066825187308907667826796342077295514522732277774675214021597185524627742182399328417503775449905697235354237433467203212647009793837254879098525462590294147604225796888490283219638767959285681904825347552976803157427421772315398887535952311600698108866626415869496231354275952352389263099589989572417218967894633121193272366922687845638361646346602982768945511574563583605945260562383225202116479144607677731464666684716789363778316101926473465358396362967446025658261202312560470480880432794440557155062939359492396130416319463593411561796599187866153351168864036747624348295192310505687230071549617002433916492312525331113691781849405476336019986783475340658867630338997866611761264615147433468010610149887294931945914397890336860900872618782146282137145315791748061105182357879040354725866887212350964592906889922420680321593306554128579326146783867816296725755927095952373170644308749502225731809416974816699241367905348775969065617761370613586891672810817717770780604738986842106374379652000643683175885279868060942042812836309670428994751437951156457593199637548995633533398964976280693044302796551881905036976412839239121287504775577084255221017487173436785491360034195246526045743985045932362153109781126139394623849715207542490993942521949243767370018770140365495617366661675426165557661145987582910179459438995709503568073646240797139719897985619310601259723295523320562933103167219351853702819057243259434000856663539233432266736855274768735673086769617567211458638737327865895329530826618735171881499288688811403760388221411467257181676312066593758057231918122559102373246306799459836433392227474251550099273702664165031283084098740314053242455065752954659619516092605408722438791077513838451791879232103011798847377741888229033485653977460628109162609451563530911039252519565202361530811472983352956296200763095473631042435928607813813404956624033815802816033892428988624714842606453806751973062602304940462653529507540140187267354120051721588297119275879302368255328771542771374465127878146051668237413878304217822725504078766222051134463239781900488298036729800921488027958321923254785944229248694533623973097512070680924111731301157832199369545817520156462629659352370317023283929161143474609177218255379802556881658130033153130935202943176605740962261234632240285123390630614619585988123397536434939437672137671845243027611144725733236995311922060963882548921679889353984499829165950966325066182334199892729632055399126893520977099272393792851804844576791511672583010062893317107793291078194260350932654880117973002543576995404101627063714295877556847082918445720526122374714354357296921050530090981071630153024765680778698031426800677808799886665289899065568740756791686581645815259579452504490470345759734715947596884011966117714817384410475902625767451250269091017541759688979307447116083230903363629604732220509892932780533001399402976636532202264295176755201801261464996388720100013439776743206625426689199652899759199704357216281712722058507958861711447687417643285276931993506562158013153094386642115811920497155545464426389571080422770037593412742802372513290756106954344749871946496913113228958833588855032655175176969448963699601647721185363796236861633919756604807234061488840206566517164009959427653232267408038922564966546463349330775062710333514984887644539961508376694714807317290353524354731179777970831449804993573245940546646749237996276901028859297227690881949994181145904598932437844732306844110483707375662889653441161817573625925864943660887826761638498503958462050967009054842768775427443362701844731948661071559530968017913919037190008123749978605544012001473662885733105443760401893430759825674031772700126218929787525476790440359874362159387222780681026777311535037138162899975318776766329820925571738228055902445707223616153048064672297948991241725056648083007338169662137739217271091079496820513093134460278244027383583434140429366115542811670008356371810854866056513434348048576155440835146914299909049328591976596721168437873550461012334118037405427904447245278017701946801214517896315857646267350032483068708701556980110973787494770222193873768679673160414991480232192497024551268023119499655390420265730815397832810675599769348216836226583970272346194720304672794806669479288973354929948633549148075513645057081654549258879764907983421967009495339016660357194300236308260524177168610329284846107984949193218359678805391542191639603507173655790889073628114457604141386626607328597481232552925867276042560069767246033897272852998207895810978912008495963028166848755176043754638683435480862000474741342254546173766614663897192314277623139102590991858707681772091868322098570416802367646003860241297023143957314977452251369377907652676042149216653399514414892575723427603828495372999798624174807891292692218121901317332179504453650599273145913271504135759465997814320689580070302501636452597256767967380093446964321954297103816526128391762813589449377342669365920367204430344114224419404544260908121694387257244240040371788328304292140334515851170014285230710253402046262866417545093044505891127894413050892650387409191955637897305089354908881046852474473337861569537145704997849299908421759578610908312125608142791240001130112122845192815352369698717940779025755357541528193552399761204816737367078837337754171445152447719006726598213232714323139267778078386934158478531201336155832796516207219272622317461644064784411707231038372825090883793269538655607312895754428862545959379337348611605319651315191274646290398606932990859414085407902337359796210568354411269805969172564253061355851306780599150443902485961363927124489285573141679107377220569151278872221136673047913230265798570967540428028175193502767767452515336187543281660140423090451391014061940756961131750508224616405832139518185756033629545366165826368427623910831857268853400841580798408076445703180576809780318252902166195150549987000503264373826596435194416765624101677454117993402589528756030226860304837848686605537242572964582385500170707714592085292493098104662616832732780946332788691662088923271327561872842834839854568876068124702252190756002848600643318671722107781380495689834398278710599710999700120789719482205307592618080444500060747620837058303810796570431576542509264848893094013582603194826826285248282303704008721120621712749042724492374259547778132997751139194633634514876062346331842070133453251426588123175557678800723580399412661120035262111403113319637810212612459340674363053957476370683935648439176649643091194414611249498218012685218272066332028142418969802768138733756615612023525638098459018755456382390227532930993790972851116145837636400182052869125683818553960125644134307032504953869258583379677792878370296737021086620192010941050524969393079554744255830182273094625603935710519887042856582044551314004912466696953338031808398343331209321840727896956258017094933675342431813349991926436630545643822005333640192788962753510432406907836124872903981022915101327573367635131787208428259966430531202275435342695474421077991142458407851634016808823440752385077465860267023734004068065898789547100810998091646997278866279342283212089132492599794900600324938248902792339297631145027051403086996660124802528043203339206057115923391402450561725695501072581695977670464487260638676472194363357748734122359305551415153056975531885582325812074018357213440848192323344137272087494882401329399478719043172088419614119528517100254230859989648481099155855413224694329488111092907736266100415208761425893828964404254734206722031716696389431054966364384905728563994294691363859732664909968103944443814802174880063491213160190285138315961445244815063754842989664658103088770232486539004703945486543780123751963081235830800993440645624356416938676076188765570589604615295818383603112323712682141786701488592908537459236240055451458012613962770215042385449968666068844650444337271964653278875081168587770878049481375885026008569385669315608585546603774835316669470262361015813057127666997682605328057651506285503929617488147838331339585137317389573658130228154675039281548793893328406935486499123914343222183899037708174744676181892433660273748931639617182805497546908987975882583435730748566416500724008417325165803996676409013309751307185977579295929469766179036696396534342197679192427575515328414351865916105555947025337204589353373599672496539594619109431279341175196515277851435561774338697122751186868212746270361439525146061810262252422454017762584207314948009533919921271093477857661870926594620730672679074817018006137011574210625159275766233840687834500654418893901347522941606825630827656278863301578319513299709191228870428582294986515737420807399470653677562997588071589602849293494528341958966037842411926438432967207251771139414289420026782434100507080093857263801516318193990241629616594438333640630244837326001890259819722921479573260996663479954780429919976543808642145697925711215060261408563256336294335399674824161243105461633649744050416844523582244035402539506882448346611794450140871188704364381924263195857460054896362912113495156178691828454294482650496534518793454170765057631051437504166494626996525945107037069159426008886454117664865023378428584318651638314954903377649870435580672416687696529602400191986782397297015465553939841037022214965449177082051251093542011633056162964141375296728915863872981198963857480898962213254852123717831170029714462962186260147788510974631995412653509068796039688007863539434455471329853559929043820445294381317577517720556468592701418888604872749783838324155665550606303103715035985252472532627907559197327933056688512175980482646376760905590957750368754191161918283526843460601833555722956920167122493549387509933347736584647082548335690190802141305157363236987816972972156378617311312602490674810075274590352728191972727909339987504008406238335910887153112548265520862978327393844753992169682330069994692991308785722765938632732239808814315984730700086619879194493963240928189527655613361090609522218163498385816408919023299917191944658594231656975819747531768018139232476231993987262367564164503805641446887736443336511817333158102350210990655364655844854124638617651337514282759154734960486157840170139302346071615955629930739855242674151105581540436952531165715991566331990931721817775552282013634048456478906172894072298978618897517831701214052310165834635713833881147810945647556986734341766095109542290818726218813511338170438319276267324672457204363004039220769624350111286611127790738575598497277661991623579112614996448616055317884397371961577596325690610982007724888321341312928509331321726875543242029705472625231333744185697871260852412566444996158316919296435850104101586636083527431095396386806965455294268214757762380066486551991424772340348489041765581888178389891220184476300706445086187254311868620563495411121631958438194342471538395878702280910346457963059998455177908738496659521083228314278562653710638297009163386050155415401596136899038736570943994003286678526497580572087317921733052436809750237061033232970745721564185917026219046478140987966500658129919602898586885947438882281968488836646732856044257646063687442385278133902079218265561678988693013936933818086249117286841706238459086002735899252051362552952522442815270911792815702028224178552124247109108367593876076426276276985747060133112283841029406070640137102101505678084634088040046578889046690773426537032384288434705046236867357659111117905542267720362588235552992579031773458078254672967889692470842520127544178535806341956250104487308931870697974389787116282945655263581475415404002742098561792132097152775540972283151523823029904836353310612101193028136719949916080316343377462612261653524436850474430133248550189870637606735303661023851441434321778674109307425771058590767685813094929215722214187657944908966352281362740348232827685795043096289213838690915539186589207852326691948005764075161437710839639406941259116979461316727992280320395738531577809937179921986758660226633562685972468419135702724535390675850692930156982471382377262692900030134941088696449376630562945708255882403859075401168762254262032969357977243102594352942561541854159688574405182278920080499799836217630004485964713808507385924492069655000043448033509386303884988234914784015557872944236576209634254978999685658306853375857115223860045006327061446527111857828666869184612254840305807264917927178866677879496939446915773650016943900158840283588094595955269537563505843899636726803720311406044930431000763603559151417628868803311917710438927297504497887721127941591615135562449391166452587468029940797467235805032202053923455472595239258922847066352352264605822223935616933755968503392088904725084597695798551198410369690565754117032625866039590794895239458070142451819922641441884117087216929863739008027545116363961167498160815940918100092428664080368907616298158845901290827958761513840105831020906366868346638447293554505557435293756135999987917053454759505600414529242231652809599336645375452343231059552643612639104327997118784628235064085391159812555322357220785163125106324841260591970454123848230487480424768152704970932549123275669871878774590897263151879229697194892122053028478935566115642616412459031688413748279868722361953280310790818589708859817072695782574612107479831733783116013420284995234452622219469795883205785616968750765082166572524723485586408247497658017583407449472556931565834061846431811618100805100567625875528633146898123888954429169800211964037762900837450949416143439131680366980113861415605510251557963735908889536463501193463247477498819354696640288771021598369477565593662078844062672256194122572405791399806478767209647019803154593933193750942430214843788061426942875247879329642338103967168792214944755376006157965521050321924141953980671017394276368609354932614032409843405294533242931711655080792165738091229818792387494206901611312719802230807079927713818226813856671777438492801277137033476577992584982493470729209829665118161700075701017887736660552688586694262424153711862634397615118924550872033781846844812660325248545056343261341634589151952315877783249934880102298161645750132705045606726086675646847511038584736087617455774644750212265161460243599592145612820787948157768331084721227649414527022930891829532231641710360937338936588632809256403132250700775606583578291813650674604013142061436254701840999386774308997664217466716528996226022712709860281753341107120756708545061870874267588169823672025394233089336780636077087663253029965472937678248633297944603397846895607740393316495041958140196747646909601075681839708133609569395137956986760396222003650065377739552833306885238902717873585015701118833493269027734339859318879621942569163553586381714298044373917656950824482483314948005562772058416283210289907766974898291402085671321386438015643113409868608031467634315980163738719693269570846539156904824685011101802654190761130981482351917577609481297782773756353747992357238863713640722645529678060735526415480389221758029024214185010781030858162626689336906833892136675260349956888461470981352303643339621538245169769612580551863130935789717708358952878916599448259955855306194191673083180389949551272802289250382021123898681363025846240645954850749562293441615069755881577251302738708703716827946474312795826569426199457612940114833472728852932226992857977661949514937645449101220213518084268750190312640878378058189670549093206156841265833623631433786787268396704671883075151473627083961271480650962720128145528990904797586456395681363886263986423869813777941039867979126198276476039484611058606981672074917736979133722588223752575866014982392197428166651967512661404497242453711777898715780688509241634332320322174547604916886188951199911473463606785152208289217265303999612334766466650497905933074912225772316858634755662873446584208370317507955475934641405503580497907327233906223465503902861123775606220366914085051432930377399231080907982025636879409087689905369565900981988329864252052063573756190113699267767589016822476856674926790883096042500732951109704974968273542605255459519616730366037915802937421645138250275423022601329970560566439887006447188266649891470073418909091029045385697291355669257791233422773211989709357820076146868531384188939103288950253625473517551626860753474726046704145745823384831057420334783559085216127598820040871169772990544478711934136620637910465918597971746622487289371680724450499159656622325518389725770892595257532419401142175968286218610732808474500138440221265514237474608097453290875510036127555061528581738352039656399386572015793682290858959090871153749669215139365691281691330518156611109594937220059253068818474370553851426044793084169517420246971021071170373029511127340637028919547802180823382601797547683949499641343889239542720025458877479499414092031155184282857857391600727516824893527162256766390222427147220728304228400705389017131443761007985974374056132886134497270747916425890237173164435408623268777975588270407686299980309230888516722190425961688997311948346956797499355156460199749732609808194944763299798371141291248754634562632295741240071739025673321127775552046155036658585189233053482924954092418492516581746195396272140534415001432276271125041405088875934551849858593635592890184228467837898548134361726529134748697186198012395503199537601267846514096236694902470742393722025176893227220579602928472294461029970224978850273348279892505088360956201753886050940522760822041008979713438173143585247229986949514393417141155957797301585099739013299192372333427965250879116886062106069045211723090138649399865037552760691011204611498329892311549604334261279355178749175329718813571278441003701867376448721909522288261561736479650030203404361090562558425282942302577116019704649819972538883715263440094108683256084536322033007745101370236426918731660036369633258204927620777723643423342621675810681393646516697172986425387381734727949878051470386735805887511514027958531390720006799862285423773659916102670195612791453908051876817200846210241262039882810108037826507490461295858105701396851408544165468115904002480222181941571886870370433444555372283649932171347762975504016594175820271658772190004504283460578483095402181766179966661625750617333596590977405948126154662365441411444795453417511849779891134235392518150257844838571766607335762138540754512624021633671172384349433341535198939974689049087619824083174169312657032891777402664442366680554953369452328790513528825513443212880854625181137935654794860149703961747335816531122354173844548379336190799384025426169510530970064332995888249797097514100320701569979646072172314152720953828189853914502356006712785942740167871412856326815913025601608569924407742387216134327312384203397129859086503923001765775204465919248573264443281924379782375246656001695683599934954254743152534983313664971450372227901955952237460362498342200001271225836544549508965192436522714544059018396653932658783813534505658254744854271769610223195320894968830105855542346033471364232329890550817128288558915963467550198811271834587559603593782136781570444337148571587671193958604811649171653355437758044425832685712309048221426044558413440754277359087297199412772531238762925184320385948093743947013870759095427748811036831753439073034344187242385794984255631823014371534127960949178339106174725644372129001875042740839820355624360321139407927333848769990525559641290127484708511670414856610137287116146262607972469899720269569422903233785142593319516588770234549943428592959843549954255764406844199472328978798117249518470643752482697307174080853874178379097327682098247594490684370690906972147669285480488681755557474541950483250866084552779985838717635061056333344187727844060428828022336871185658239877303970979616806288401376996396409326508070309784086938451794507461476564842419329484378974809075410145879132917956492220663952764745593241498089163616572834740468326227074185373926388604217387940320468703457946770887566673020530842457642261311587872658507282477323981068632092911232890907856928313023695756453515594175793542740327337131912588913969079423223124254214614663468484640300399363982977840760287721984984016817693935258050800388765538059781058521779129127500381346093452298212762787561433189609783322683118242052226346201426377687093766319054397929931077618416130434608561075286168813651645669687901617084651872495578588468110770989959395212022355104109217267540921011793554095315223376327829097491083493305965131977408974825626804478982888290734734233675104087304168399260365319580699019789670633957530705939890704141233033638611090129025013560118726982900422844664958454671004460842270687008026974935214452415847458392418970210720184948747645811956122626161437356322147271510877816792586099453756732425805376374315418755314542684604664431655005849658045321708230295673905846303914153453831853307121284103119389896673605972809562061741765003109816255231382777913047863214757827982335838567360607003144683232566559478798464903231706093748182127163604175101113141750923501443254749375041770208997083552138690693766783568050440000559656122953189842771530974276803139838932854836334624036114356381574535590964641024371662721246141599326941670499281264902250751174344058948186181635161835608199180508141485347471418773519392277136092235719655141684820439595709824354137511017396090807939764610607224646815869786501090861997298714010167500390619595335234582032358776200728233872794666923329789655298101443683284652879402620667567822805834754010871090951606006245272610159696312150809445895979444544226881268236657976689389786130372851265377412266455552297178348443141353131920167992738662993801710027479243367431334628535159683094738565885933013267643679998592580052285408109677695876924824574443897085873974649418890060245293878596887567051967071450334769513026673066530686216749266193732110327061956636489694285395299720733486753806450303282039900062504960181918183818078253202442234332587084109404665065249004668054651044555524610481545518202573075160731574325960283473884950722459385264615741410499116474239125424719894211825008206307893659696149912744720787773335843327546208191011218028794743333956394329126436303418434329808535759772482406077400535157818106537655117223685639725877525222512600918832490678949304657050605910975980348363190909216808005140441960503973235846417197588244047857426623062256812295126354101912052713559249068541094883978681823704450990485024243828951523164816535086400386677078178029678552620953646788113581319324014024679848252325232734271426326746815671801895843377240775620886614307757309471069512956353983776280531075124252775988482106841723172891426056571156752733866539034775177267981708664399655366105277873774847744394089071734913483548364692488556913975070117991724807949747119444414048754199195478035688005789475233333847720379612286278633423708546191490585952972848731837735061845233933866986574089249390557385117927495713549854392775787663726702577159869720589455744206467242098731645231871333830119640531709540451378184022953433017549117640734407903509562024939646013709573870632031845100807288414385308544423424381406518311130161080072115331453488431252910468442707849622931366469771018018693943177176137709137089414158263199200283578385405547178903560303813973248001912316553425191897811458207004561213495117860245810311997176722200425655479747638852126125611482591291706768521973378660129960275159150983653612164619296858622832025397306467178931448854968231005930515253393460092970357344584272539793056248206947864013096073514967658764491573080228756929994275081930433981759485305405229838021111250356878369636932543479516387323671530753573443821433848664450010243521998605007551400875247631184157018506972344542199776234770386005392058743146092723084523283923067172806779373914980448061077184735302954179327935711404792320267824232476573358846505750685738616701841910621116959379973080010585995774334420732667451934451286782650179883785869856519489121416618135188008722737819225095899865219393481316195044307421014845123732089658201320622210852376588544463838398334181991306866067413121911152642808931934321675837022233242829387983159399806623558425373828100159397454715019100577210866772897780448116320461263347684315635604392972639505254537694320518055763011668567879498310341120654268827372174521189452368831084375993809635174962786423583573934057807863212054277029141040872750699841855277049304502206746233051129394328250120550216383164871711731243950362505948673885818990613310399898053481595420892177464418482629944345551834168124571524530862024740722682650470664811924331977343448864825981184742441717713781841537647315012608370592120566675199787663482797735972054813878606487458905883773346640683821942830409774207657463066899372423037156086583917720038305839964623054162871674154094241064298734161258669959452867307947371932692145572802404678540175817193011523704715811355746864297190277677203377938255661449576873755609495494742994069159511755758322321610099664056197253125291533143707141056673189150915843347295560983259453423532812556572404508261689906183750950656441542123373174768394160909708036836430964660608804696143404856467115757134907390546330989106542047995165314676759698712844929785121986332542208726502705766455512255095238715236050836272265037318798080096161698179395446950547527322716990056814866756473990770351902234408446086764447098116752259579282715602139184243155933067428224151670920940052713330935078028054055936858839730565586216346352929430613169524470603134607458896062092891305993530793655150982593550682664411807565729676716677598590715717974585599500422845193126642126016704855944162977946827587921449990234499000666302987379580216761812673552760652029603145738793566356456392098766117320551002163923117550585548756412161423781801505010846176449632705351178842115827757672263126617185727977012826450579778473088451184799658637490393347637459196000948664425434609817095530787087075903248988391170620207261206694232868629762232650251122787554173232562064675318890780047735461979333309321655393965389749588815130022538649659387907937257674676666824253533015988773805957743906872543571743654508390200756791849266518577900666803184062691835379270794148149765184543073324493972442144394689435471910041438072413577544014098443633439018535385305790756646308098996827505375309255075056203070983375905192306365558672860757798397622234736897970354090287057211108495276609426006852043598214944405263002689524911147208900322370230333139610051257812270512529882751711268474801427984712885272538913815154130989727132952362929550530709407486635977576127193841451518950974907157980703257711951618347714375010164951411142723724965490239766208939484169121887317005325542812856225358455617693032719360674530853610623620120415062635117767915832716885689482060496054238348916922020365349736518627506117719349190368789556020519016341233225545776921190267734700905187126280769463228005427307496962161757490181029184203680602762917477161781335608654954265631533729622151761559919551696450130599056253237644646505743423100585497010853388803490771895007201272780165235075276571533133000218237210132672511559091691914944536682307463738270248175854711172353808006753893207798745279711896447565253571007185344847715053824028585175313074841337005510380761733385082611788872867267839086361753939313770743850661453315552723555459809808649660892079128458500837018982890756392964583875404745982073417610971561420422195934077340387835673429570386178600989725701580031590917380706095333535385692329140223131195354918160756209877160176652672228062623482806664575787820028421255635713835161201285429917471756819364157306178645140427419355485531700320108540067600352695750115803866165281468548802181260434278644357083303503922622618952858553830572699097008117598714546036541393756467323772226042238584313208332173267696619004021088734386079857623577939250484688099981224102722058983952667315359246986895100550261908595142516710379177290807961919252982900214007241753442074383785507771931157170766576755216468754338178808616461724834818610188949410944638957966329971641521662397509107597367712439926334787444601418882033816110998283187424319251222924986634627460065043605448529527328341666244559209794259357549612566414815257656884224923798715639849331092562884519947792178318144953905994792251325812048193921588893418530171681738009815641178432168016962335992860675944264036796425925933410002091399473688652621048876293652671186025059836403283965349730194939833729222768413201803580837722614557503117581180457946008527481760163294622363373967218908469281272563874783724662423569690374357571611283711360845999808776155500798716430801878886415789407451551837014653447383344096366529992028715011123918311063632777550520250543827949674953494363996735554510311159921653164430416802567162806358501614736443296823199087138495205575169630470587322330571491335203775791640881257527690419979866056373548995133258086129454677849502890356092287093719806766625499450946817985416045593769323745938770267922799849946508178321584161630879161214642643546447098810760158138386765315760904681372586181757316992984636206889618413996089260636850426914315360916999475858682806548769400397872030589390483916829940727516852836762171627183890181951147157019434559049776664401303464851400618956920297411192073587919474307741200912455446535097580488170066617346457525401512533715305274166369456336679489663150883171738597591341142081460051065338305777171886520774701852811780729885711655124902463752254030401698079941785201956869833987294620319945651149274665676727470112089093291245040525784187989218954115917726983014158052729093869751175404907934824897408211124692233247892312175048994259422278344672103158175358671991277268968285172173427524993356056183722833265306626118879890385576183157408794370274548937942877413807943365983635505446684116172457552796050848982258294198973391554737429803303373466314387837859140616599777845624118399622812213695623889660456485114558655739622241312958995761043432413395065697919129907527727740888349438487843391723977870937353421818237289109896496748764635390840565423362777789777233916361259722229669181671909523651288036797212117920853643273374484055202951907774013265159538784782469155901749740238977487187238924293874926892332223180781283844580105318207888181400675076827081079880882143673973825351417187942391278506806246140480031080148266882515237241640585362866832361562047332683092821376001129880468610617513099030861292086377827386088748419371253636184547432808065083213890307720008772730883319924036682647711307821455565397501139279916606600290826986409250206292551697142030496517470324590050991989729756445979122358745050854323916522076698769823011605352545867816395139648117847783220078291428652625436324193924798574262699681213124918462944053982566383587296070192687110169072186848301797578608742015388212960577082189788768057128297913695780182365825503575196325338538151742760328305204624757438502367646816104954260496209943289208151903039528497866970457086632140662227233820939906217722421021682073348006522213750128910006842424819932505886998508886694576141020036384680687455344225124623688370812472097229794056198245377357314216297431284761069336491286486156341660767551831077702761228669539885603930969744701074971657671238825106544761957089330156836383056903611352731042655397301886766443340969370143187652809001444522474786172577971695128846905054379654009694778546973575170940250901239690061757329695138875104951578147323734106430732775343597878595931574723965733070685693149126379978317067016811429519737974317269718376619404551294854581229510939170168495270421424274174011199037817728354551282667321573591603061580185135455709063488266570884746532364262305229175884079822191423916491658887121869868949204129054078101847884583820775031494935070365953241236003696946469972386458361823838900949040058558956799762688536451849232796823616069388103020795441331887098292708716772298023291303657978913958827890182283409104235958692552207621652107056620444949010295138147145308878462952616743275000354127011469344159565654581297298644612562832132232809937982295582546146892296444241257262581735440332083202510227978667441092017571659990039931659110269843489399392019288557275050047370439351207278127207229565685017827443991724885213417093054424085226413714474570610708618518482074732926073633074048182072165024959962795271687495766749644892830475313474895539395566700528473059538329094436211206594190297111071202809822480874029500721159145691803907558229369708360138391303240032275378655048061550450521437062290470199666667158127656043418350208491781232482673892518494342762335117157423589344023420130916086741545332724031661437955780817161897807212785869163919582379628511681424999123442155380265807751039357606177412009642226867498446336951499357312489823287177245732290875056735598680630113482620376869749419233029864862982827651328535371530944335852417820012167683439293211749483719956785547899048374042220428431009661813106792074003549233892395396506758003290594256847591635230003845404617708000049229096781736262346733000840052118731239062563755255869907302114355981258426349149880765528741079124129015778712723001713742542063276544311637604371053823310071035091338916083528526796397346737598719147263740123411527344150999674016643974740709116198259327070539028622359482640353503674301055030286606708290741498827639809336739840060342522167304571296621670843858215953642319087155881908725549950841113384004146387144176060114375684054894860850694001857554709090397758200983122102797867831470663036188941536698032860116882976286720876751226087953878754306646190581081411357979704469361605150648221730596585474668381418466370436891278018773851155956525810402551519009493835956132142970803203744054342431452072370281666811934923103061343243912346238960942962850005416596385486502032345647334769564549812366082088469574403000588279779170661151866260782344815861356960518584432998255729674102025347063565419094991459250369973137185180671493885768932509327919024465201066806823551054087052961531575186175427379675689282073402735533951236192822271199098803442491458148719381130740713082579712465683445689033517414070076907740302597164224134783193544537099339435802880898547877839649750002934480034507946249724024384869866837124115971683698647179455001195342628932452168276385648549407964224985333813848812018507222473861647005405961110800447837213701532472992734747133250106631783317213941250466775091241970162350964156244589430403913591611772901927513279848262183693156507367283185263433574031398173654496885726518026655874104636547068773900695184898553494454663187413775196519688989889720907024266243605638045003356315972535284468603825378396033020744220502106385585038589217180699233156161264504719655694573569514928245270547426970948931319098904015014937592763467346742314760508310100998638196076879846930634072555890382127494253599187339217271255522011595515232085073103127993550501235063805767396946287832600795914084430448146842314764876119827468806451442877558273180834667711633517095252767859310161182783489192437370246248994657369710908671339502360585504691400834108455973913549759548505995711679854202028693725816369983751619911033544307230782527916135391357151344187444074730281476463129486984323781394648230130455425389987542376474578897665512944931357063839863687709957800926194800325099368209550756834161079767340652314546542389626997531550368352518672403699765938657582970507660720906770042794438035568135702615639521972653965051872506543925747275374060956811970580116594446522574438831838410330505125615144297357597445975880976303635347211389295271839743608679228901419551067415477131104194863340214463829890162413571149059165729906199321285476553707879141241101071934274040305633426925536780638269093826892829539752605100845468329105394830732465613555931558478406600595366298909953546920624104978585097329793498224725521311869838436543541086007566826243561466256742124457424563093077393428754693327519473876230630601239187154031978646251558382793918612481926895235643312180967884396832278228187155820938051264522399847339357291876296787275604457876749612451516926120170135298049967598456766393110060381527156818817398320520820927884973449243271792878296695753663837856458588397601690736092817270627303932911224980285480358348142442482076196044512020393699153002053974741093383401460270787358492297717073618658432467805364510869636430862441012233513182153368368783017147614262648144404064438339034170904582986961407382970489065771173898230873548340646964495646879892110673636343364118578924296455645915328432202468522729007176136477144485349012841198876437566700369304766086348825181030227035036053206196929699736246685944931223390250854699268727613057086040744148008340560189371278517902530543244106864360201527023443695817772768650761614001823516302644865490759041189824595996335043300714088659692265115737844201233256787495900093434637750553311827614489724582651082500068054759163393924501386325681283024843441067216630710044942563628191011802208602398192445621229249231817822891277497168973360972529644614577800742682055564628416510694932294600953935185400505538918299593639961439815530097198821380143278553885991508779596611475789670581439383289897164079198700531755081279652105840044504898486624393695941866962126360234574485467643306553455574473921462110633640515589064439525404379473495448294330179644995006700610753001941045553278440748800010551148198708207000341084041454851311218443237907659085262840538903716905389727898513958929100814553553723124857536768312291986610168758453537183122764322731883341744200896868425783799791643956087282284376289501810977161530699816543655809498260148392625670319410815113572845024597082994214099695928235428802868770318234873067598488770019152907336904767366537552582867535523044850244101513140964365732104305596843481310664908852814005160643606154146339037866318760478915751645535236695598266611125767050881202216052023839040537803787147112915119956804056312404125217697150599925213505764955670936009119206069361831269063770010145029483880709180655974222431642995636917833410463419086278725769512917367168338530446683311076307991794390457849637537306595198450694586294433261768977877748697866781018568056179621259989002292389651025377468408727553728983639857910318054255313321914847088824494645841327782484538288167048239581321427046966040527047265768479650240527755066690938150019753687172021281077592861246179594442685831628468094200553707535266729479943449914580031217648844526823107133147372551225871697927958472914976450525041770938335291405001417797153384063466789107282275452851666969124389984855124971333352345870671569644809559126575835810767839790848040556926643737685237668772216747148420235115621902101441306653017919205902649115954793244233097007604872773380138414968738338862074428847176744148513701185293074606859372813971931070995349990414656731456828530157661674243010101485686833676126908251833925606100419560611372527398234248904729702529520506837460919115414576041178711418173587763507540559414810876440304567477950742440654943900568958572188853266242450803412150667198568178596153580783091412387259172437968599796906031438090945783603926679353375890325957175835913424291461424031773924064786645816709914229797730382331678847063994172977127101521226676352562849991357415401131478250474352671483211482835620040599069100457037457521387331190885616760976987828624149981678857576640213430275393670772623236492060027010856531098017746968500656153468634731950853416942716833256346427825081959136621179935541800636860145285725106437001378458182898003796341500804252773598671357761768257248987506027039404865575107522031401098625645849549902344102982190444890688701867962166785318245138374256867055021780858584765759974810427330323380255439911389090950662742895980892474945568105155945563140700674805254630035989969316345293419797583815478843292283799752645697022814337781721184955932252175678869347606910284832470963701487715228004713421191079515091750679326662844296175573894117637018513894274432416515553422830731167936158308074184923629457406284853670757710763927162094916204331914993625173322886968982959140630898400201735535299807383640279912226494546010961719706222865199633039547391734980333426824841494222385499074288084984679542401232801071471934457555927722608736649426017062908001909472027327089246999578069736449870135276472930235145326374970236507887399305398257723832845821217795151611520089834945469994638870324891453196090741062747238291700499585959528481809779370475257110751190850194651113434354725100931394393180861557703402032066286547857525420927091253403909776172413774399304991177661650929714058477559878825022347871810130370794319672435535890041784099353634711633824358729405937550041133579095326976572711188061626043095115780619931593044945606282710904653850131821437050595075593559666975744808935675344430923025986252073182945195323437412018874509568854967993131429380123791678535164025302591841393571987484862588081626495295674315345552395960395567676662759098603549564587155281337051108956584922210294904833500713362055425724211775557307243684110303169342474476224815941131099018156892448469996704139384099317017437543110902819423353186565158335088678228858476421088372223916943499879675785241496068459773786732756940454494728196143701293542744651165542266052480939431715787434847401748943814537775625260984554620648896670879968683102176308170056323463720109977656116616322744420382500756240848079191423548864840611102530377121324376552660568683451962337182890108106572561498323310184334494675899882674964617036147902769995812563239987892149779540867390661211442577458700329831985539120325263807668390072089924659441190744892270541371848535062659179672823089857693779184176257846331927315415128682137088797760477240082080256283829289493561191163872708635177809705329827282157824324601635838195138542129878773980547477190805715861026406374780892958580716999414741025582298645460151500333212707027552558826147851855194909462439063093935575303335747522043768105763622880888540203902755117999618317956324253860051927368461544788850974007300600592133616563193889281972398353961518549512432905378867170540473959728612638792988095527012479334539106194178944562033683678903733833769980738974884398367148486210774073599606363848705503726909702970855156847587799528077051812190992376958053041156006512496510952452326330850818039193542270925036652125286395420570823171309719540228936655042408175631826238978741225704893271307222863638331830295164891070402810392605742980786201892447964156610040863278049105699461671732680308773674915355659997104927978477542564046190467856709756229643257266556040118132996197509700508255839333886427025695829620098931422465830629404287694535164484642998726263252795744792397337238384607915743456192925814238975733516334099731064185383517993612677195497257662581333108845361469144176640564956850138830193343805323853610134910203906908282725623450138114751384330046086095753584027778580670293340060103893945960108343403920284256795089655664492867720630084624835157184658490569662665736162903193871835974191385437527399391575354453181890351168723093655005834757979889353148888801159050084719092099829168707789583759473772347739245418172016962134060661591979648881985950377753127958660089842240268589661972249586781484674124299459913282445830120575992331271076519773441474176820215404131931913479048035057085155337172721168944647396663117780149863714248974698353847509027957278466142901417123462547409819055301460205974400744563159931483620851654354665769765965005349456744573092722024374958179964822663519690048492768499732821888425147308490885896531287970066179530945001465645316503411181977219014666871711722559041925932958890172158043784448779088977759321542243651547845529913643364958190155496956417373507201158763116037401959422965302730392582700698082762821663855828830006229436399194325889948417546793256697220244534479383176722957727170401098411828964841251214227646717385825804941667611081891416823498725553900470356191094131181230066789830023831637929708667133389305233676724901121767381573782720253576163389921941526618327498933797449508952454585395675269561799708134763739014768241657848115830256509063264222981635335318206355319628283406392711163497490534271529415900749847349774726744667634969470824963551107860638580424770101902474008905443354954790123084031267749152241446612492959070830670130262297092961102602561997644849899003578249039677228806998994993292621080477873989417272550120744853244904106497180446759533973026449451084055747370071888325495006653630888851307509965746501830451755068578730469106809874138050848237846274447562611062426814358061927127187668482433704679473961650177053156544207837873601328534195722536033763330739645446731585898509485545381579869201920241901249515142680509290566551658816971574769525490016418943013559456819997597157587069239684285367624303367687532413099909661918207704023697732772437143299773020545050494619150797881613504370240930699443129140416350174031245529136180425669117941916997281570852450432972141218672837007093902426625726688106190320494425801773057990792053371953050721859517708611453314364925546029316920124198799242362105325088147560060501741860301658199891412326199477783807699084468726000467025647598983718825009908687200456484284240492521444729032812017379686156611012212577719856381288385672871250326069624099824639965051497961210755062891202098399858639160096474105048780210969523576798169960064300248919098790206036711350307005079158197380422629670372263612477498963160413729484939673995991818427067854245753855869382627036356788889650803499634399960171207428824019263002027714230964180224498900276640752565084111848710891398768139675687910056908457167770532315671484415912649791589885503060926633763826700787236233888650918215604780459327130762111761351007467831264392408844911949620229949541978664650128174710317315325982621590919251347556934082730434317467079721102265657833935923650230295564237323687303072501454361621996607849824918883011969873348750874359992505977248865747121622290980730251413417632326514486167158103617968173470695179096298981611374071730667717849103637679462628553522970371740623668261125592428589003013738337542663206835820811732060036415314954440219537047934668288608705745722117434182004573804917499668781628024649926924642520599977498899299372933438052350457048772173746007481810996513497728616932251343590357617068914918405866991322797182057455245634477875426382667226065818548280996841576727764743097677886291188920420171385754463436785015604311000993337577551706084545289860506046343919799005958238511437490899268024455128800498664170197924915567008678841802393480280247619215896018701567070573383760522578383471170219760951002375952286794472994892863738240209309364272203632012393660884404770955308463803157511403751013187349011025474112886160544120985403367229675575008412556751486423542883125924598378460105325541198911266949287228670603138244140857268962715032639713487259397154720486824160398442175060627066600316579431082869927693231221814031911341918116585179795691282809388323542781239365383413541104421372353542042074254155796814532435124546248608859479816596756922048130328961118435582010199159237730388999061028020097494063378339847142536149532522182229183967248317168926088193879443542004983913282818273450486524063538465767582925968552280602338118428300940330641635408401236665756914225040006695017250205203775236428966475858325264139488851290161320289045666819077545907304574846420222199687001786554598296204650636226229411367894479757757961654091825531130741159247678080009768670674812163140931546087888415770820882204424363205895345103835302378049897485670892790012394216722604013288148333454985788139771840610956822117185378053158750823342223629490283220993980709105774349228470834643628742148786327915009579464889967283292370761987688491200923076465676730742506931634505212592723046929224991085641332558272712686535127332262412680650450799206878531921564923939070640146872433014394230108414756615483047105347681670873030214251292467751241428152691245753599439079238166027297038967390332097979682625541907987015702270538910022768015399188452021725386517760923972078367796768212841420132330965199769562650126012366804205008909829628132621699535196030931851584412490160012352137508773222925882467153651533422232143818092544690312411301947390369976959011700544007822095247479504602055968462133767347008720751247148632266241839467448800748000285027963270056008515463700880342997752636502275513563642167855187253612311375558834914825954780227252313389251832026903523187073514458710756545259327920241073768047764439910455844660294698382741681797867887846450043441026713611062592998044915182244891616120964571092861037038513512818637421981842729951656388848366022640662255840805716219784546833114353986590941410642115369292292767908370342441228003512538379516927893118255695005495671276789069915655868539847044828970338638159751883793651763115963270481054775057221854203596823598077199754169281552686250300490539647276041813231817932882174415118965931212266631076522011564363465149318617637726531082823038344307588939254712536051068200712922539322376330614662393298823692523660345331890701147239420617638075033399421940693025112994323856360936838677921530953015841005595920140230658692291704087758339720267849909328643611500229474733765766449814727451737882490454730340751576866784622723086214098026694941615667903418910900749851455672701894997235834186866266323339013257883737866013488716347298544165120270304246070644881115960805079341256355746450349658180135486873828002625173495039368668975680196583952342706050124961218766180635940225785476350620191655041602283086692674953104068695906141490772702207592241364057013049126783773306577862645725330479047483007109842558197437928751232155321381541678124204372875948159087782216201261441309916105335111910754549141197094274239081779017323219777305630146877327781679443779455058480320045546834896518767710840580517698255683405078973358510537862952141077838305576420971772633221701351964592797938288053752664075930317140487472476530853724196894870147515367357110830061554897748686622682625859214145556425501251408010774992483724736232388609287940883063273640326989580809461784928973812085532558039660640949632478041355512004716393638203538956607229465107792095903730778800318983740027418370896043900149717047423981969146153955864276426925300816976272595641708242439531485554649965748157049462458645028170859176038348897703783658493153165776291671051782870148680087666660170167914969547073577335424008868719080349853085437685876185054229386533851526732474155006126994866534819027476112202370704881699234863697113898781886264681867696427626710822729195804078092206449189495060852554251940887551373011256303991562801208225266863114224340892970739810522275002649244148133708780744773347959296358594256823786143074704207141095638643361737835164155538783218675178532933884744716966177557289914304915752353050676272743284671831077909169625183410700864830447803244463119357535643267934635042730699075294385949909232536908793880352731010867724845814954098221804056512933705865094069659491114845836047443489309080699601360462403561645991643277328224579498496249689837016928892487911083301646642658394909014116460802644171527337035273401219731382073357437889235788062955748524942922393256562616020065646481872408003613984543345727870540241334797480928417108695996392026863307212776429526492690202530566533412444673269548548992527979071916941077987544798450251023719643888287440575598735110551918522988359225979459764043196255142654313919421095002407588630394276449062235397738849229842992064485823030405231616949147074132084991363099543109609920892568968323131649628837538720129782345345025100007322473741862377453199556083695499842446624260488131012363777331270385360892298686484524449226519566417320520576756853752071174553104074196342538965741712319015858098901197136563642549966260956607620226390820190734923593440026912594235171929088253433982424759042853767854140895469157125244319614161643600602470873410309553713501240910470811971266361149023398518725280288396554203655690268398906910633843200787986937796069980675985467360012867587020088403800076474653460603477232875920375032658233937322754060777922144714889693663606334938349614497205020232217900733691925054593625971354518267989575489129261156261735380724449817957700349290312162063442378676793984474559221723722768366863484595551905786852978771989570903708914949579994267777126405636517750160329548983224241431990888436695491848329456088468498928422305333746894384594339952660560404697858972702218185201842785064186305505289618117136319010946959833663490699755940197900691782042516865918234635490458637499581761848431736837686459343822967289988327897977138665929171190504155501407689977023640441681142154846073104531564034677349830813469643063461322419970099258140538518017968678402769144823809235807183063114976968355832445842472556497714262553220280656530018516844358813457110985706336841934559275088031788426767199031099968793915548229604691597418848176285087748078179475663849642140485881842377901555983529546218928348945880613962250858079905279254841302824816172559221557548699840590828641264908624767147790234517935937455483689860291574683281604187796755574107220115742569996310103310767272549151307698386561122339275083216802572133933023259562471466506204286372113988973901288113378408826671506704887073050510646277341084802202003280815843906699846915833033878364099547383910652647231220374901945121216820269626139403779432161549226205240415791554730936509039416603569161768473287577138919934557324833269040407898277765884459418935026908590489555893153117667968631288575120893021609882326501700804522143328571028079976041947526418260013713631358940871060938299289308292793002729550159684246155725666930067707419940372829560546330639822042157045655757333868445968153914539981236934823689110508581100535027205123551078699889015081828759196749552841825064963053629516549114210312254233902220186975695852326831928624906145013162796887831561582739725264062939082010482662243033155247099449137906567235150283501158256550065781908466036109523934212570845904984312674571136793027478308556871559944051451187022410164166098200263944961930319587391028074205864061823072811137350168183377599980509736763498893643280101406966478332568868145481343850979474857386734261836548811694940877588375035213127983086291766223848428974286341369149160895747105731309860635895291664049552786218228106770048493358990288491921473066303080431332579496572183873095513252307263917453072167063966678539127471833762994673113003278991473847031756510182841618242986653580492149842694258696968335533275556787546476968793856706116493155395669961618780776283351469714909467774042366995940392723025410427856544460579438104114200388022964592580311229272153990817084118802986914116792920391856619666383468857829636169440382004473176625697587091590008977666352176177947409324899199736089053825375076587801066430644077105510362972971317888760167585028751314239979281071384423612467412335561413197978433536899473754217256682607211166357661116259172620416635309582231118806533678356989620274692582184348879341664595630245758488557946311202612847210768544324845909985869563927792513674752965767067833919426237918673014608495232858649356287324920583496389216664107786813671048362573504946118124877581722026997296265408093731484902606384629701436523829235850279212698573009124192895041231750693726569348397303818128038735022981724292008806802865057116228971645016617348520460632988070020013034040790012840866893279843043883436217868765878057634455968077704229537645841113141833123793711516120731388033035140731000454566263512026945976412007842209416778627630282314692744899519143869248654005442140447556010732991586744194556123227137498731085123822423836180440151848027613571635489333865114863539644118224785213674585910047290944502113614210959257637622532404604022551928347213827025917845438952138756592254806755648970599217982534166460086865365173555480178106831075075180749633239988028584865338675417123905576713089106171234650171203021263237402435811376515333163398559225206596965296188358507932040465238692438055388212395987528826630442251698521125217910006548167995883455282721579041875858446078410144695567678979067781830410936805331402625623059826132202248758373909666334436422762527207748164744348232232179470999760600338286365180989791538623203148961303177579861516063572200861149302077555674832578308211884694957681996008492499693697637650356760661539775046987258954550065357078518066925519534328507888825220265293100085794872079325566975145954763486203004780876343681943669252907106405072381538782820841310936510197215991503115958913492664004598704358213947521824778218905597464368689652231336146216621805011753970819488138358519380219017820305846251537768996045075150639416876565993629924990602732556609942780272776436895401032486871338569547019011735480166973618619790589205362373697638294815767120081813671398243440971546576891568152473001309589473364685695786106756165627982603474410550609693700945705463760535138440271120588333112675557137719306341926804678401889047869185060173139729642175852988333445651698295464465099205601114950417596567517100363413205075764290427346751195064178471468339408393710003246318310296735476451000261507111251142634907070999108395299399575412436308526299954644155572061101299390209540440678081491324357125246698428447888868729894803290462886146698848829482811598787215598139880196814074281354384788179432112529756343626241401545679302326741490035539457646171887209563624149907345760164883002280972307093306151369066566482637215173549219217370445109975415973877340775182563203488556800193742049436839923419941259360480195913171980707369660038994800647590143795750100480034576678587131684915403304555151328615738793516404367016593423346403371937339771355979367900417218140050175202275221627903422555934089898634852683715563376853170458308494368860648342474894748427192657323532238830019461876513904224374663518950622965718898660222055105469489400656311630040580353055978785416035107377116937214357076956733814705989424205078371310965750607036253794374343088033425169340141609831430037752562524500970566909585402294715791172685770848771249184375514191101259501524329346977950333083543195698983040710562501292002154301796496413627359417655069981506252787927838472609160790991552758414697455445024684558934522799540028088174618254897109887581431928894183184681598999609514777697903383987118257409559307479486722694949298655303226638255149993929563957690378304752791913957804255379266095724849163025716769745186820374538732945864916622189738213358085690323522895494919539919154867380749932913476582915731865743888502081121050934565349660493451174583313129305018006290882120599336441379994577739581009445572404898203315920731222538621375195961275292023071917776524957990860903796768471642115089000812656597303620244155734602232177850350453658274364496727778418033565343982829843355549300811095466003694373318577002208566645929658762899945956424958399467018972463205922318126448325773329424098473248881097458664238585657825371680690330252851237909953564707215470915205998864881017842170526640542909291507646109599665831757149067911766399985019286925819543245618394743884576904316562209755784563047996891639861400724223952955707545607083810782368695342960599139458753505314017426085709039343702666079356728381652442823050298805411775254647775534419611565585423679127738712977059457410074719323090142964566566051380917404127792732676809536783443524757924126608282066767596707983224621152084756522046282862405505679938637936749009168511378060207399078841283353935655584692603086643546464038801838030661602423044670768278748372073352197272995309572503201085296485020775768325255315428835579929901768857216286677849541230629746489871751072659442096347528636284475470722960305567485674124234239886759037203963475176120717650210724315070727210803599649853398448561079868793381527966361341753128282889964065675541660818025213004647127962457114906330455607237123397167666465725295649391061728386412327568486083165283216566559613053004733300255139868080951386496062297577432795751828583087491059344686266386658356124472497203127376939321764019894903478403404196284120565817710242952001179783321244491234000810443163118086918725428624872379578171110364112563190592812367982675144274359049414112182401822330937176690535358973326713162043236230878975152978325106981937354770841225011875638290562741352853830615432452150458783182335375429668109485929775734312020094678258046836072234934614436623564997399840914662572687728983771600212475592592249172013271715117584791833805118096850603288098279802085291966124556941498363045993485221900343960022556501665074688432650718609348329116429022709031541539701379851713948439862617340696687474726261104171016978220264445781111163866400979246372308599559893566277804613967973706993617209099294562845363680901566888075913275513150412940185185630973606939684193672540401089591033219661349610335695580137050954492585943665073854729932849183346258147007835957448484145119641941029115458340103794142936095802794998230721355757566804285753061825543405825192830086022469438364955745610284181043399426029851861837102166635036027300432354088135705327750104140643799740580589339846639070057582695799372440612089367669293934877845553205974564726583588967120297991538981571239805267012971172563611494954290727834140023681155160190820181731230393052537389128059839462004865341661801065676449276309262371141827877018414957750533322825475407061704134721420969331230620315554915876511657646574027009170680298133654096136160448184267742637962642387902580162856054738165853548457242044930820753394154770066888936667694386514314334392797488043423574094615810088921675706358252600403906879169639245587724138957386776023291466026520279825022871828961227552866234584855176127690389053608798947774540045595784842852781078272001022822123025895516092820809271232194152996893919633474360154031771154408363499876920130233311044777434535009031616096433524825379657797406007846727631187477348964930800240555845167520641339434683103764376907351512016146913603087319218870842074030448669566056883520580729633231843857699267149333833432916323229333971399055478829413226713560189188511166118351999913222757444410490682399185927815419652858850803869120693098824061678656852270052581857598393745434341806702212756632485311809722419579855125713611988634778755272817289436859305696337216723588054470831002216089847023035252327804111938424340067464124826499899902756199667505140247627687596529088105200234042504437933580271284859152733163277372281163222725004657838035314598533032682801915478201691053479770503843225859354183037085776431859297268985506271781463330720467122716195594155480807966051655521821238801316294453850417039580255130454903593920535767846268303061150573117645625164211202091455458710493201872619819285682702555474749910136710157572928561176579915489724619042863407248049699148404758342768402802377841838129854096772556071149899835939238888009034022045130866036116329417767748784207446535392554946234343532575088393816135113604529537405176371435449006778305847574223004269617388465569010717049558168774824477449994434143701687841566190974019287771681541379528898002139220999749317462020642409554639340033944339960180713386877728729793217963244268271765845354721686688138257644094331525009205828478913360714403188653816419091320885085501236416730907754884975697296607253155856517129398046014998716349725265659159611565153273224860095962409861370071053267453488040897423374710105912598182940585268532448797251467046597275186435322233448445469642576502168553334850471253472584932163847143957987354292458007335193540944810556704188601173443495842693470210974031416636466698581575797801126786395161941243245427152680442179234411067098781094080407631860961831782342070073032331450934787106839952919289011947022979457392530487229343405220949103049178132446624489199105269725508896089281482788241760282777132817665165888231063968865934078240799547190768592693445187859890252944633654842990858857075175597441596937342701722730305883289103454378545035852634565320812875919203774217808296539819088935621598764380501703554697147728174592851633415884755824792780700382575866802580210221009464622932688881488680725779631561508682603639034857882662788027674350773319910260303861985537519684909682261497411657936509415175531149311692845977766287069279119954515795954932630492126724219284957227426432036170473363088114630279537827747045754231824429450483498475300082364690166222469322024797383215331224005963739924913912826516172076902661363426417919364521496800772461405063563279996372641742750129563588711858559530658979436879762343417701815685682095221051430881273240431664939229917862565660803998404142378659924690525034533719989682650390536153810467629721763906274669085575504132027455548971662502338096417016848427796660634926505186610202429161188825042872897567459480108214002430894766225938290035264135751141504738458919244201045299406415222817259426485885700822529253661411007895494613567248005872531089102654896260810678732092883165596447695082838433439948998053910265899077442958521025625575573218601487392851474404617729883051126547115045885332576294578950018269379449271309193863438749905200474472424985751235339455609902345818415927502876347459286985583659358713637915700888550683418098579719661355203022733950584658046887214215162660587247422409494109517360023599536748673401446024289455481818622672199030514815893082489712278192919857476498994747084676386426856899026791057998018946292044143562809615591295232281314251447230650204562786998818305184083834467878550357324394162566879117469080082106019343510552760339713615205769884339107396471090014905714173440213578567463347468698104750405129702776556805874328793690439327165092187949474033144768555276417188042314603677606173802486260923855297619947828423950721424297808759656980641102325325919158405871245206101660319650040372266043487384149120990899847806656054154848580185129727651436970346541116974476278706787122382988498025583116655006676023676814723849208624173356579867812965994714522914349626943692170150096698119257220996882381738536016364567479924312219537448805477454509580467748778257605870085614878855110671822969623293688340496862638318468086017134184123869674757158865786669300441439030464733981435140044030526405859736089459064738780991643042923978527836295656465285962810598550254349456135641924508376740612588023935563448981571154649700139249231357071935727054261344794724824886559947243810233291140128427449972075697949725967657130070488979939858656138090039146644595868291180871703055023592875987382565784808212540688113636233517076861072299962070994046597752835951450690347079513544204427491860717206893553249973784424157768729132492145367435914171350854449049164762000784079422054054251849793961635810029872891638465813351432543243959484723194267727125006886515071714977628086321521875582255678721006371914903463158699012670996547030587735141754207082439437407600171501813428498243783853600983431726035828272867959169915880488291780085474265482408881495500569734261357805586793333668302978823275084000982108368419677612667868205238131696481007444432247900719729014347863811173996470158312672739070278180202471322861502981446451487022670457069644737562107728353775259764568254064975455873869126826085718811714184223989662127588185484739383736815020945158170598347967553055264616897530382843186049243479917441337841208876271193904852220083481306645160318466504294341595776258524872818579167131544391881240981142569283526225910675451062685050110413242943374377799962726325895855953030014757062297337774537572549082765727372879447014100390909554704371365791623037111500642546058940985514543350981852302334091540797887432428497050535495668307360779855318149821286907234929134025442418759812541182485425680577555369534223360188038869067119358129277655754739191986420586145741262862770037049004834976977592862335760036394433151486487687021293477647093820307569754968909692947034945422155074050956420011841003467725783401951617595758161902729464209402513089911920923741647563736375692409129350587201602310821171551956923152495493940880802609402704543677431394858375714138903344792269856407012299388176790831069896464678121537449484443373812723763595331047866825469780835283983127669770573056029629309560523188657194300794561984642720028464796168399375914500099886319376529501524827229000893079141821912959179841884768304035320528096234559930831201505108546856244979522441369661453386855923834422828627902896252288295262829465940187699004670469434568672298719998418353568882227348545936064808790148634253034836938838298361505165080558622225176937128124034583371044931123811108921606779044470338057040998252389265102890897436549007031678897308126135867975026121144465175864843971484819366459876301591612860265707543411803110758919455648437652780498456124837061443228879769982872706708555987558036769038068781776012497276453887748706275989538733020280430255568732566466162482006328606749914030687735941644371862265761364846082622522608546992485832432375939476377289635200049481667882482242290424254690537084270489208659714710243741560939769640788774851798960854892997971398696545034517976201097772093460598118444322552421984591602499094891691245509582786179601450585018302116604906612811455990731081180713960928608617372817225094118786882648460730131043386304359835116988132748607591737764097293286461272708984929491223039325434841746966708316990369390060167416065685537165727857911551707755835815098343504016406333240220314134907972379890284479294170244036201667452131687280037036064129142625225428205547312577670354194104041255092506798649999953369935550552859157301996054326826125004933168503252515772408035088532683921880571480032790210129592676469576010709097548247718881270576716263706263992115517216912404353708176231175244284990560857594305701896304922287251745767740765662901516226105332140448131273612185765604029709518482026621671479444053715263321435029157414334126617604512062313646649616951774063153226485662226135361013028710004227184227789155808039586120586830464449483672984457156533530412153757889857883397453708405623181477373808651737656794607198707275153603288105130562878351454940513186328433895271749241492590645096171391241970785718529743096455929747695679175418908923634602037023726638213934775710188897602804953688274470932933940813601064458640703760582282601739192294495713050804120946780441949370749117356649886455606167898878563473415054566087458462979699731656702562475377738611208513964242197077748468078394281993512004382986437949317034320938597292892419981094690804999554051976457595166748497087927622166568822639587346301629039295245772826695441500149700302917197394384402432838956523653592557839043042604871416288223943201526323545555806157613249701692430766447128783831200627929896589576716454324667694325409608288680449750396258595633999887020953991924187540729780438221960650731341441329337760597260815807738600083510793049405312095204330458925459141185086995154046257813579208042927101557220645131768846044393194943239140352821880485194316744656716192422344167822746097662724524250763377964862703723214541304936090238304670664941918014066573929917411274574156769227151395074263697828495684293890209321150053485462758186944847165809118155095370274483816840941964352055813946785389560873117822510915638011985158118435020738927885213837944691556167576808610932213757575586884045599870795633953126119056365068128894917940864056803007681785624990711608682997401344614010844820044258354693806671380945067850181008360307267390186601014527254168212347884736836479835218768103064776186689337310397211014111713455000224698244672904016629533423908773755429993647175179709049557744846638892408827454407747853747529858523001158505245853251624066639014079387846873486980825191251395006840285277039156188159359136179729872071576359579961482584438727088362559608377763738253653284312684900108179631606009906255135617258374400707502572147682254288436402780227027893467732613982530485319814408981126496544738294632835298822560719477366442054401723109369740751270410403731273231883862272785609585127927518834981745655261211477770321886214315893465687831050714100335375898109657943497435839888537156557107402151305215164774496746991871698574928203960358265233588508571661661428513856994970024316611458720877673488151515041779135122883165377671524865704007457858697882867468521089966415305300746063225164619810845158517245936926748760770175549018772040180319503738625941716607711846949987156258246800998813263353070155500661179846742355599283281524914470442281362359925045800262369837870862884321967675503350388957587493070751949552109578097764828551581387338776560300487499531942079856058343377324394630123381444116337249164220005945816857738027645531278693788793844209850895488576888791976789094196949224020425036719740370057794917647355648786806236988942805777008634882814330965364934207698037250379238859865404941026678602227200183688871196991461306676652280638185382317681238988980203401994854077654886564416797727883736979056905486839315055710570471996284901638692132269847022078621155485172362067003706121741752170055669449588144749599097902269098214535988831224431825227011090855413510723354501506942416630372090374751100074798118737658453784896076960460335457211521530524484763538656649332742414489438627526494953136258350168235466300493541081144209476052410366391146374581602792406866363931998237250072626918147192027831832424294683208130570335477230216696714774405900863834528748546765342671615018615755116343484078948048458123396381664701356650999355725394342289258895398860167129074458966872004873987119018924561229848711870368911905393965678956422492104863771851808103118022268821769410259700328260068277485569385923395940675570688273353677246170266525883202723161792899748237335316375456635235537657491287127513301055832727049412863909969417151010205000648218295771309691664381174771136997925574408122656991686177990328193836241181259218091272787901273999178536454386985716933799564009270551906627286461575505245710565096167363638183334069494532656035446575881920637327668796093167653243113981688718015480899027908447805319089201678300396353390255402520415364516957950197499269747240227198513744110296271097817657859370138328359670240240802111125983560694429022955062819615501473716457849967881538063256924516881141726822469667445940446159841927556894734168263620003932307843002009710924696619747700319596159618841293832964301221807749065152127984115557389368322930619113104170013292968280112450076638363164963188941149562200752194927871899749768499758029871206012626874372736755369979823841117351533647371805347415522043150340966506970321014689331313980271711070166679556855427519028294117748042395417580531049115765980247154862916582302670773483927745056233359523867177120997213869022379912782078170627109409197253032627970615131391974848676200706471472729948803091755818596125465981167359097989079579326784739546697372779841607838124571152715618634232094702037194561156066678317046986663667053233974943171879868789646805377367591902547866371854027879098481976023696110116390841616714635007607147917596889978755050893503528136365302692708396359343085231253760901209448321829462418663144823959053571547907129625264204716490892605015992507488628352011496522972723566992775097666125878031852908118813330016071732526700876015642067998941639268860492958279366388725959349672490121019880597734062039246056217379760096872969046324993996268000426416191017650846219878615590673467194359421827678580644932639144035650280236110113158894759266595374972597162722119100016758475024372888544174012398439184213860863194581090657168022461707019738630924260275517583484952371580643909957103122435239302533360204561215136880154116957114001478535304309443683031675561530397317233226888922364019478712775162079248297227556729476135600106275384539325320146805287305525384670915938013376304830740052921289575615114696514416828752895284240303887046145309819203238978747462829731544778049961015121883537453189495654117668845017628056602468901626329118079119200072140153409788071145830786126196055311073394338716711186332470131157157289050779794959142854995585970841334794801787741739460425731153670653274672643739085012438003566321245010083577367904422466911761156477656620837733522188467295091774777292126794901729939423147784024300634189013739053729561533321003631487602791753519648535082622905631923452704157338178516291598568272467769187960600795875574731017167988732802194854639461551386697461250567724569894659124946973716079772724641285476987151987158367510195749342620807515807502042793415467582311575829872498235521785328341864832278645748123845478938493437277875137670173270019678883955149398170632966195606074707776917993982678139865138097726587677204842256802199975922519437515051414680002646989154133143028838886014814255444489557020583872593164219769450432725530488071982505436044732562074140791022092118890710526772651616533704425571223714086115536840873925443741664086206597470663533368576330665606384018066965411576437916989039744945816611199848743132491728954197067411221418873642788951001456469327849047714699530302308679529535202790766189641505594001626942199595398490326561475226157040860592426812500622798257336506351304410473290364388610239438893942693423311433155897126084946556055937836314435249846442769607720735143787973019273634019944182364466123768801902879726554807968373702821958011947152684909411724116754594836140735443293472120560928324912014100652601519575673047158913968392921369006260389951221107646012467123335444439391710013489482340474816174133236145318292055773728811418280106301382287751853732400740142064773632359436523381072269114873671689756621347662377755650535321351387551807576379909556977780929109792812605984330342607369947499020476267280561239670871272470595552281475021519984480587953872783448710850738136760916050167725856278717950598280698738598195433344905306371684843191082511645242537254329580157726601421594927487126517844727235173724979080819170453520978176260494494041483246018313523158289672706936107046352200752835902119517891569809936485185328325543786521836393925144838203893045376419937406459122645299434586196983790535332238705489164328589335712414826814595465880614219782790942003729565174883287815791009521326411019539232734295079784984709002119116420975752569948300263440462754347170817972193009796600593354344231495128933502395109045139102324071666261305534607770481422738744628755072825674998967431110775079144703756443725606121750622864578194490649233797607474691148793398126141518135470770031500975440471393087241161477666569825727244505710951174721096902427433306543685196387237392228819298203502915384384572159523416744792788124885604033977101927785364600224201547488106647228065102599921325318944319172086466183353878450368142179244331709229808252166876275458485308305624522322178278519521750000639292439301367972204486947258045517007080611239615868570589432364859061344456786226558005527629701820905118443569052727197157994451227939072786296012828997165310563070749527816408942776573301622867305317132633112717695238495573503433763149043192584551724272081333876461839587751721673403301851603162694953101527778541805196846707907081933520443820439457528899304765117566412836387053782125271162522540393622439632472480804821302163147861487832297323914776119497531790308749203540877457162152323678039364270209522249934978827623475758693916854691890555408785383116123827992133220418887608581510660216628916968400655936622397725011046931385104102011971339150973393047619948613239566306542480038102657361938246860273200153013618430063127182935433851730739845875818337356996807712434920896330637039456820755124790926038105006284152627815777211058966498092413800968155488604990749239234864978124100309399462764532327592105389136403372057741682258170727298000917631620590133165321328736430581045384350770830419226485240635908765817356386280280188450451271852011750213727787579106073045690319829094390894565655097169484091148599800263888937491059531678872671285666831344561531552324603487960795486324321467826954135701171879569688939020471611299763805593609118562783565752625465938684945067959776500732631601384831310144195272947157218783083436346799210910155440388746604164263778469047997433826942258682130224007357772619496818236026569100286231417055472435738878296169168525997156689204743876569916611991990949576650802491813606387789518676472438870400045037877052827536248565168064486083042084090800559903008709738190916126668582087192605948713844487350387365840716562153977768607740402474668118549785377137373211709054103332559198046351972440602712516889829910788752810153937674412837489119318608688255056756250292531221930969847688055798835004225206248186335417783604353075442870967961335836610865659917875430182151860611921067413712376705040733941721634144401045656753969698261660854488038011314668066576576661504853507777364606268115010116328086057283906385047211086643861284361143231729835459018116949986074204833680228601552721701996352230979413155685245458534631950274991448799672463104818904060650498815679980139169851202654926693238006981735105311231890945768663112280136650590823072741477916053241684537181553642317271077454396850738435512048373834159156214444571951787646139219296513026855042305454108423958603165035823304906613038965676186007391529450882889385986511144734709653236641006352094406862347102202335548391539651579173885611008222943851089218831555837559612936428080442583512067675390701255873802639139534725814956445825715432407053085079778693279791532997924419508996117976173562321904232843123260885560900465483360519094529385070827100227251916851759502337629121570182895689792344224227914616975330468661696672035866657797215908257061719160456297730860800130439528192475584164501945214041974719901248167079510028002790031626547302883935318279212308711747648591386349658455015552289715825790448671562786716622704858644298124521950740485894545211230603451178344828834464887584952014016844389159665541750360095738181350742563790717023187378639709442480848618149265338180461648027132435620292348853722705314340248620979419506348877053322967895048159096154647589085577822113585450321224484945533516315275243689201198545521277073095472841889233222884207311777470415381915250379788810765823023678784881978700666882892239982271295614939255479321083302294678143690841440425085961496456313282768758954713824764026347535465152327238482159126538038819121915928549384005767532490626572252857881457682407115951258438750871842997188197168722392362979398613602586492437483058220307078742020709132174627867435961197720804946512015226218054102690401468997307908507784265885918949538333293447402633654247956747331890057910637381896471188250079753518957735586272207535160321853736287116468696045183137511713468618723647691477136562122195525517857928152887275797986488310592143640034504698489717164546507174328535212487203276718619373719030962818154176114768899321064959326798417008771962583584193127164950328831069813330714519252809206531841964642780274677198384865992784699339328159112815481432969192832077609407147804417106457127014912631659511749744001040523434617161110862275052673126686990443231813399772498841280945662462587674283466492608945880467863830684808579704269455543507924494767998185631883956611541016169578930282234884990438417886738603619089040955351866357646903578503514413832885279681350064204715393929800457865832612637615134602741653783888427181683364416397533904266722255836048372510305030381584791191815185140655735736247122621190064169328239734557064199651305449865582334050263656833835514462640450021744504049041846591548828019273508245960861426072602817437006905596649189124778647626584813074445603780208459981630382646839606331590003106985419709126525013813485259100256849083955214414665928471863143175589900744141471449738091837376905903389106554678231374785830473562870294126679738968122101658737474375018085382188252905032207755479204268937416978394005990785297801204028180398835767632618651922805876449071120706025264963553725711997305791142483971475644175554166625717649467181808482734431490301794763545164905134016858075607827803137612407753821213344825624824770705257719802225595858948473789210242014760323381608854763538778387657448899104038556031948928978076303750362319542775214439932212214147469406927663716806809025170183388551603165055094256441386666895307406691577494860408693382951387765683024735015716875341476471658568543310274388855529988560809436778183064654961018061538466311004974444271246338111671135906732848084862888057536183212043889155024608995604887335954346284622259355568690923724318564204482118297573235264344582833537722050637267414861810198641966579291057318944402795465033765000097609457038025732023531676685271627509452830585239278977543161933136968305041260204622757015311611730367127708743980336047814057111944350801486944036842651601361257493369218908731922658647671777229703475598922049036452082571565151776962898347746522859513748959422233466263349258986799045064057156332189364056092119707891403587269715176820278377158709141445397334029331126312608828758759218264397065772303256930519345620058299826398835487504722050453899996390170061807763677366758769195187483796469618839079203633380463281169236225311617489303810436429630610577638817897090140041792950116881427050190059563657876182378864763272924478370013935628630095524471855255296508709893908793912708848942678619132017596024301274107974380532919278598534149392599337984694731315166511055283976651015631333329158535589423235381977223029041138984506695530702918506819236414721990353395413598488039906119665809673462403491644730464439530146811703303258910919792677337681293884147389217170473276402531486139581788999076446429307283739073624377469495812535028900724292349744933927018017466257970907240219466760653684361183803080865386948567398689823253706658464770226768040356671341070255733985007391401495425584186153038094178114841919033526113722137299856932214399237098226453640027420427355912250588799959327757719843128751197889662212426316959069617204773189448811809654995282761140925373464530670079177373089966116278284794592426843508424803711600076385965001699444727680457637180317621861239309074467273442690247327611884088035871634965218369517427993820943656882488886719599698111451831077475529325955705624640894763065712926030088329995288749889195419364726693274239214188326306275222174780684378471981989134319065992458669847842740375307385547800034014164826983701617794351182603230930731524004289895142220691480616784417065074171935658031644854196509864850812987237454820516066737357865137419169219922539765136923456777779209184415890411518882951373391876177509951693514047798423888329015035492385112885644011108408152093198609584494901506974937288224401178193162790649499589766122250704640479047700492468461813365705149639810297238925409051585440240171777341414458188085573849127072634956473521578414636208068256892861785055408293498233102436544059966591485369139957754835377092419835936561165996613836382598006804474751365639421315114583178077510988645757536208480282334664825230222241904919401971434220440814323758194214510798058394841015922767561457600178381409959296252196721301089397996959599991899872409057600016565875135887564310866335108518991215277039497406279817167901072415007751970715905136715737997236447954606429540646390250020933670631201357266713183237843031263235992964393472421744778318518550113469604277446846887849047835980218543576263441519109138615102509098420831291712489229835005347089918380387836583078451641085483440138340579306033592221372585426472402238690007275538276308390942835970897787375769815060616984331328748741179242783393022437889362342605331247724576148650004629038873651988491742524409529152441575341243143312983741703313319818567710383982863417356381908904052176526946987449215056332937382581074825260940038172084883472931195082876140883482721051596928061758591562644081359530945268773162563583474979662655123805630939602160134582641363315466794306877735045430611828537221111842200457489047610767748998928395810277188405985439891287248280481792553163439879868232456215110175179767592503659553243463316799378314068091124740448730794766052140987786459169488682852657317168200392272602408010500067538534440501600829682566117771870788744915936842421889138492371988224700313580099036816944717108682222017598310904472119841707474067366842704447971639867284373414364447077003396186579582706489971504473850525470900057664652215756952001643004747495543584696128573274488912625655156403387299626597055692785685657801792448527587292417398096047408781668611872297419165002402935944005535390092910574882766229694375988255430167112907987073731551524869289685457807987868009062681872744332587481940574104093549142870494341160736120963785443713424521241826270855632775127786696309567829286138889452445795573987324449564085931696895300896478863075377197769454292678956189505127413836806760816411840592355113071477789082682612167706968546237287756459692176138477365770591937053662120848236523683203888802297928464186904197484249372866875334149613642164628965629820110249673177197937307431192064749058828052460155206611941758752788677763377503811048361498869207772980770059547204956847204705708308954127158773448077040743529579271919915448548563513636339024952245503157947534271805059271077361896034573567165506954129903984900697584780832052731045325418000193663559196318061317510548603278230573877939136305758020910855355364922148166734925479014151990205040671638824436649527273908415568266214948768211551070011408818049406570531171713767137761412525694236457416661247365857224141743007519236877646167958955262300749357718796473167367572459872491345031315839277497887559105081618862716604625095276433888268700540298586078396483210845131428810780773654625220978572408074729631623394129658223098731617516793678632834533484551207741749951481941062584341371735019987024329335180023447851358088060819870317229606488683723942824832748645684719865262391059710218077419725458892252021973917669185705335880266152193756371112884357383108175680877908792536238091641798637300719822879365387608827297210367439141646525126669480170559549459947504538165864588296316581604975062551358011610603720940161971811555404649650910772561842976099762461486245763611641142500765690696781784230115173187671501507662431099057050857247496661126040553755181762761582890253717410449831489080279192740505738962533490711203735024973635048287627981027130714853384813036334868566836521730691674038993230781382072832586462416715533056424996354932328120163501459841621234572203583668614729491047371985944640243278519923844485505376243649944139717650902510747194733382485599783306751872752686498566882089258967556768083441071026617819462050710923977126784082617600387224437310212252776102907975816985559276885641530971795524589446934760694191010900080114834120452995091365671710963605293963844731253398000598264977815185266445988437539811251724838973587424843272451793066277018954186276236892604946667193587245477383886479453648227078484720461452285703814169155206052184736126591733735219858869495593743682531194191015516982360876832234449821805659845818383720301450519618628092108283296860409697711957077057815745466642733373529387452163373999083164582486164644452994452110454873790569680757385889382165949817220806270979531971998328742263294231113164838606941339813100068651771117516382981766528814126016554729309747126163328046080173187887602462687194558354301773940252905059068547347577581229519395508202079839383764473028253666741684075224753801237647556320591797669086070770084079114983476775361002292456957520783317703418926121557925961922883954272140614902535856322967866409544329862151622561202864186613683558696495546354931465563171301134316498537010373118861583366811607464469889882809610650469789362397430620162636782392975761245618851981574497318425103381049478815754368077728738168707010587563277575710170332524406137407535459095496360545130596279610562981877773396294785354790879136603472704697371388341711752926799764174479782706280864018663181357167583614675431900338662278440662457685326456432743187084264311465996246733701820215040957725806363812134592141619776409790964316012760606403800574836052533854477425722122076242496498409144198990056572951382806811013401944825234936805901485066672733242832401233195524646347306915475528699791576143916724384356655393509386016289386955792557084639418524457071446018360738896819746773771945563918738810355616152239875600962818815353290560028827889440106787688570042844119784151478050356818629733011338603164125570895340556343824708454668148445753378834838791040122069979606396589944976058936665306451311300452170507724006983954919128574951555216049613695234880156231127559645581899519801275374724488144183376490249920346614788684665845915560967867307414453730134341582245829680788415695455639783034238425192533587795731025939318564607295501271263810605024156643284814718758989508271694663736766242676100355024649736540682560118995538750195507917580544838541589914270577452970423064998088540253961208954247408675092399051984290017202768328564254532500953867033270012765274095260462039273136678394690560933924093928688898537816573914228419141210162831213345182182698793628630405812575201897025513228796867174401898958202178103225607578430604845628906248316770167069534538095098433786185523288880264120326121926355637012271197700657513100561640058683603944679378329193074353761991920059396182729708869370897110137020919684684042968351955528670900105526170475339706293175719382070235886130819121017833238044534157512107261964175791144237942380048348791061051152581609954399093625668384738512096350555323099082759464774693998179090163223153909038193376652658568504771442988745947524943624853006481300083770434885159409438965758689520515979275554785436612637132301925471180064064243895175101536120760783179935984487600894207758099406364253408828338970112701100151746204765764078970259964459228910474846399164237393035313748489529481382449305985494240826086183525822893643747945962429687608568095214596323426680534880116989935446519321069521036482026778216111652251365100003804457169118840027917643144006938523812147341598156130593928223556195250707935137160275429273565526101448178236684944380141182804794207038508747813664397874865083081688582800563974281867787558846169337537157413156953561317596225236701719834875715666390183590832070245003397129788162941133404699662409045196236748562783062614519906422071352705930438788953761897273945701249499994338049275514350474080524755793307084484201222975555119983357710456827270460851775411615331647231707400727845720997947990843559403404081113847625026778548047753456471287187861596663339906940761406466574174900554378541908656431836345280301177703197356766301381246737536029176321944028033987284872866251872608216338972308366227017680394330338577116138989812603080824763334512972185098616252772825696303713039925524367422724312063120986821909292123048474041903077343786291304594725394149387181364195930929488157101096232456902221592627030505376579478352466698137049990480482149139278124734861923345623311863056521694520657845978757853905336670881511213062008236905083985218181206071342353553642715808809776513389394957609702879611603522051190458235715665439395146044809944750026070207164533173526064058769862476073626396776244581971853283777216594748874696811499642555899544712278534760568211980978067093456298304161067317432426828219635633983916838143544295339507864256446555407348134711196691499345360788081793325500150808995866638301373701904850804427711399331096543782657983185263384088139885080767190118636099307457991181027611502386455843854636605733401080065250885796519937489935724314518003545542713188176231468340171402721836967062703292623642689315296090266811655040574705231698513566020605586454434154308790541396391018057715474897089795206352202311274540338425053745106258348491007927857052412679167481485192054480387508636243694892092206413608739490928670929834046173922320433707979927210526106583785440442328730956491063093338545337341113319494423823350860469415439117279782600236853422797877971997950126622383479302556914038499141008378426289727062969886812124025246102877645425726593240362326445694476084912423875411524899680232429243440689878419546135281139335357961808957011181996938802217654741826424906888509876198843194333503493625570345116257392051747904096152779852750546307071430522850698586955713927918395849376311321896484355264539829591412535265410605166362580583596545614410147567701783614314305587187164385699838821904604098925745091841505077770604056266439506431313618395848453648546123627466274584706275141731055530800959262562951479750995499773457678714670489471517494905051250796160703089330605869366522565198558565789666367204601334681950390398373133640832455995185564236297009044267489958969234671918599051896885810177109328294525087723184038969510815784111583533943064058115259089532649053775061249981725927392214379737534176087155725671249330978042501202406369870583440859737209966286740316521082113481927080453439002725284929053659689230328075168298118008697688055350513577485282203746434061628241664812407011945403095296886768029269319421018305516359126455788045001122610138535012536966223741393524175516761421473979047679190854285678672261554549156317749953261201493511115187147117472923431893920410370132253260091325727779219634675713195797266307999873242271440223593830843198801860106950079830536821734174823876140565518919933437825086372555644416065116902123364965741300709975886969542346246139044136248940195401166460524605636630557335279208371768259375954793897089978313599777519762919967950180707888531945807526898421941401334544513327450170905908639934019358074084371870429305343677843904065213338897314187246730988993066228355212597379360209265837497100089539227684759906156166669980254241004984814121564602820984697856608226604788473138434209756847179545376677022436757901964408543188698495286152439135837375215321453632578890349174574782897299942878626247340906085080840887259409700398532037555376579986170167626729514399414333062021628141507153596110821937775583688625045919253467907164437580717502323249431872950409205666472274890995456078009205239607430498989506308367313236706949870461995153609151824328075066225667306413562921692857664785630146713862900147504692230092151665698522487715665073967550458374643419309656240983999104585488082404590472446112567843547645711525009387481103344919186267519543614707919496125891731985984526359775497704089480050502255867821053546496549658684383164218857214150145914037719975164182544525315100067337899799783427495158565686157036558166417976050030879862675219869136311428300503919005578229869373517155671890539995426619309082961793044095123851506341755626636145659643666397548180047641448413157191663942027288767550538673687507278181748144303523399561919955949906543712796607294675441387215313398599708257117215480977568799869405969196235453291573172709193387666408997083173536908887455656330568752807520011457455688335134757096684518956617158921642785872140933469226208632001045984090645144749599303437729585137270040622965228384055176872562707991673705450920266196852500999692230182078664640802072022130344731191922532794061006627339184375890924557343491690795118404019823728343313789702668365609529984618549771060578155446024772879119008355303208162465513333041761385426801487410062210819112013930198936040002095592449182216755141892422362501539679159477803643655658607551795097420869221339113253692753881369415916541795980125325598303969594774835221786858235859684628458758896618444544137357662473962451428657775957610226902610351164018816718200219031781115946462773758320678226235747084584520765724293378043280737170524115023207723674262675500674130239481417281813709628503684391027596802810704648260061780295335265308519421389146438352565278196505222564771192350669447127678235038699299825967367462127001384558470840205580821019166194810975456039807761768882947718989443291264965875502010236660228421597969055069760059396817158214387787753793877118598826299321736679553729045582253818789265395198657255224588577721820920524710915605057570342711014632835311028356161766840859412417257506618238414852436372596806212414385673933725308591539619795879076581206529735794027492114435851515801705491301735764420580831444117304744552473120227917616553895097640961488329243856539684900392749314038434389904876935362809717349596634278775202306317748233707754300220842434930488293345458943475198171982536347750042632733305018407773626852117962883253221610467075407460659659850084759433648811903460531100090914049609912344816574487747851953001710064921799817527718912257726665295002878258223039884707096718365537022430889299518950505023696210784881476797273378367975961729320783630040634693449820071724674999171168839354709001897780846874351427341662242450577036119333937675881799135991786133709761903795314979420063034084476743462472586576473439394586295528073866160653287415472713263899292850197230261091372576949358917643315759988607353128830406749471486625784257490544843075712492564784804180813131916859980611803972708434236807006595935376640237926437812009903818624627984604894350500970674710641582541307148479599197342524148820809009451837414004841221984994301442778294542598650912550569564516828290861019289730487552871626533357377611413638032838318311862786290177871297721029640834867740074627848464341015786770842325835040412489546314646301301481191596328787118728521390612582125972401066933487488029640634444910625603345234805528179906597527334344958569305105970045616969754321115717035643920215349709394617599861738943989986362622098230572148902749156983321940191412095142234218611673686040641573562590308682515411859911111233366950835057576827018388680123057160452702875842123523817614339505182542110049996132885151023887312187980017577979726932422801497498022835597060455422455216607716665591091092132296234249564623281115469279020393676909503977215022575143241942502532262804628219556379439229716924077152092811477903389763689109027618095141093842029739195222297014912858024475226302644807562273392665788750782945277997422343880717392446287771082548611422702878491125452061034342984062762525697027961960717816548749750249891593560521178669770488740747639083867733117771621833068708978227292701489446040845721623133956890357267090998878589997281352745438000569977422656548622701254487391557481631370057032323823337582140777952741022349903994823596671880187795279033078238998831054487951625156736710818402834199760025114862123272475895020683453196914911082588588191355525540122868740593373413347841850124013255382136940077221944743547715398708261422057854686225872952794000440844821445694246505778233833449424342561367370346354800599219706124036258688000411826418050790442106416920819540388889470369777955283313673768067492489296260752084365239309049428022392433981461028933525699675996433825557498966959791327461856110860259859598683514735147040265100297913518630073367754718497801519779412344832279827032032528563995269603265270554153233199239593751202908179399453334556795085731318737965502800873101248011040740836985652746323082506284126704578059681548522233079866036034658208593582730193296196719608507742070758831115417855369122848722316372345255366050199340734074064492907207410940324139689010646008971418925359324689661010971287864067655125899825511946514984292157745211685613511795230286511786188734061896596219682393074423172564688227623420727548559286911371908375957775474231905890384723381746720603826089596310487171781561983210473946402114707173194994472673410292207038604211980227518974613995906933692927273230204977770678489473996657795244446112219352449556240843732265273018203635293668325725984706198107279591385807951293748927578891741276255849586100889573182852580541167710099240837861854235226741961784390952175002218537847535900436920390087414319421509205569865941934128934522264837655931838222407788916882719047605655108408032522845467815708451418278314589837388571641354394175905899223439474093568801776852326909268259235420043309440711478751786962601876158189890808847248060032276132579025225071363039807007628076569985960530608187337739702182176547313966079500337544528638729191485456349826925331587842515762769260513350798719695746796760811075537632228492663782369036456954387405772622165930238741352326873191780415604970610776367267628466227723277547908107077156396142542623470088382363070649895161757729193101659651865162397665003912915182244018554611051814256963308049449025255440741768610442710194654287854600071535926107520691912088926845270377276645594650212546714948543235199128007514608483334928024652024003328857311748043295407244355234166459683339074111456404745980857678465304908278394796830636757375790484524396408831865576698866116004305296270847377927125200338871788830431325400285310879143808199289773568691281243513350048622317674099759477888704771579730732083164157938430456061734546146263678966035254806726672966639345849919202731612649899681662667391820126954232207440337504515207275476519519313998069536253111613291564191457375384681496621898983879328330236817911127460035360391702221692656894217443252572811446114231710759121536258941677757129239431234916538349119404729614904648163569208156944613860067304575394492213014858932023430015553632096400425010483701176109892445243116241757624321121619816051318088299634208187349191973769732853083631500699346190914052736782578669528658479610365122785300017133957804865207066958167214705468985047952725380816687075377060223283794827671556809163821934752147992965496735037795164621349703423309290775891681900884175376731884018021632237425671667205561730520533964908638334419318878733141280863458338487458538730336656612262604272064661216890753324537928063605519478997972506958524393357778454230321903719651656033150069089203795985302623670618207423790564580041173934937954755542559796679262289076903782224176609274198513855904393871058578277870272464511805937439625873684621191022716251603154786640758240368675345856657479914921147754450974636487770067366893193212628572081961580397825878486528006132517665786027664347773076302499470132971122234924749883909543337600571336835446641817054952379519220221624559465203736607211840025839320302879743278223106071191863373873799068408075317270905855139489418641697689949278187619437678508875898531872786896146877885868505806734104606691415314581191427208747529141298427007954686284641906880690859985233103609838958574010085471552425734076000607306043901751317108922325855774457725992292686427729557571421514819684086492559785579626381903952138248590127326243692832608997911226152266958878035117438633097551918827683407174283552015050574596863706615329150904164742519384007937712211665713479258995383374810820020261529117673265895956903623514802064959764760778939207242779626471874980998651786782589006949568729974164765145476494885354498734761906823412319266255265895241801239181546490207607266317025650872104178009232909944353582060022284091638264736566410214078729144129157890449467222969615266987267974880320108928391094323306925314124394188650626197390020596568213294178078696271180590162327528342790568825610910919756226428590074811735872364394831247248584756909567698096183794273415157900745024875045098723909216761218675871737893098930834566699822129343848408340364447899197877954266059317537471562543430542570225235150451417928732976571525667057774047319248899871869321818280917509239560677093982785812255961007666633594645284162934972001097616316263360112843052004579974343264467783407821107636767325793839373147955967432720541943266610950276774587664531303974002222370113087585150190444388221188536596961983568233015936019319302500815097088234371939792837648781259248511071250728283971234861646528246191655056039345907615835097501268776258878663889671139292598873945082610806797157187014232392946972885753948034042391243441892188870306182814994052629091469342476447618441705028831336243726389227018868716861947630836447020661894812631567941502381113972328473335243682174710712264619941367313177136603289126516136744690152430791959507471655607621806515960403075236966310079603967081874829984326515737544522313054841189495823397316816894981110706951553955340245871257747631647240044324409896582173813983133930577973949836386835808633095460798456376345858730452070121075677845582153228976206385456480907602019549653977879660779281638842237296936709470808598532840082224279175513152695980120065140172850450812910094156414143851852669188303188089983913273017439670857542805446812782277832416295660393460664562947505311609043243767318119380857976644836427355557636714182117364750750946064083199237663501956565419957289516528543886660202900880602028772312530671531036904169795082259529009219489093575449209401525233552328568239874562231864255800718294787327928475225328438409114221339198374225949581511191740534359826278075027915590361963734498760225313056257505084281486545946180250987214845214840222672950227772541094676486846830967195361257266515607916150900639669215198939863784752991999057251386434500576134138098396779304899071355427074896759637965594078806024826879510782240191227465642510629508023467690995702279867963272485005280497907479143059702932740884062018367203115791386423079844758238744434345061430243829070555505334883855299257041088199956716191483055854731277920658027187867277315132893021370020657872887220842535850111623313857098933016632312680507807562863359859249068742030928108270899649310866598271178366460691624063536055052898873291141744136751681531466402564312939692405945819654521041013600694579752531177298741354924484600828647631957243832628014027292758772699258634253529522505115664417417749131968101474990911713695284188136541377793805053817921423137069274457199878395286326176371714502643793206137404098274453150633736681487836895495733129477333509105129127230758075578373480165186264694792800941298959220636021108053631713248830123039942233434124721942360585049250185074103255476982402756698377574290039622669176370624556106675249224960606730109706520405247050126680829410144574606223788747776826327688836746929777297193683813079577270189966565348050827381539681814104536091911829028647356938276848980486712405381035213626909361599001422100791767231115911815823790981526867112534111680359923416296894426333497264317375532265755973603820357397955835814565202247467777890475177129847148897174752740702376450621281815538835358832992939183739583252054437679338182967684850874227871439370477698967208787560984651912989978550919249122051730577798401274474316736763651585330590800816186985305367272272985843705300878003926745999129000320169785247305840517582604804618453633154438605312754104150953093234747852964253639637681983373918417700441850986023135843566460252624463032985107127170497746128583459732787616264454180170822550713289252537450871632145913424832990356805441069628135161858341581244015991580571024921290981003360256009011618374424266595021299268100243780066286710304470423245769018481056577892345545787222889112419808238061289222986941756832579865781029020335049293854078633832184500879264055255909208959361870668375917860430418412442293309574855194905245150694809227821978631817444188581724219857917435378221646942192618385003084730521423239977266167313122920296420655223608535802421755808500040863756710755962914616718036945352826599219123899790596630528297619827402599558757614097651941299258753229209210634320342090744044951375862321820607228880567935780076635637169828624135029173722348742478522968649619858060102738265932454076538773672598557318802165755018203835543219427781368127505626315647643395948656016491021420629826605120188681540719803659585544173904161719878388671578501977607656476241793477744411697369599922346654993578801631696285852995297107495980243523109975687880318795550564149868312826602195503370207073563112474894963773827121516942842555859728472784037590582000082413730354155883141108579021612983825840003909168472619645315914427343184294024675418692104518499317616892712749930693202324124363839615499678865142538148792864886201471845210448197484507639407393605593056683714190282462798243412478787395001919615921101960163895146183796652596179441715028580831286623256883490497789286232168371912291655939124583060805570728369169132211126430005394056667656007592711651887693073758098701133273915453764451654697478413391312644688844909483851609707996852093310620421921666533373677629173646113802829267391091323252105249820998883058381504207647952119383627385024733825632801791953917344942723283944915617880924586228593811328522594092771544046843404231069053099024392199415808596598125591232352450194704744401961237160300195255742806992313663455242881170617891130568301511277963255843496245160178346683298332009620956640903153264055269492914114216822498813718553117300272654841797215667590547805550167346824002743077122687698320002605174298927179291515178432480508365873725704391325409505640523548875779386443849593180905466856581101456424292307293922034068089281863124203543593225274166930518651977088872539955750142837275125083786950495594522902951509822182828734218409352365701233515010660666192490415058167228318306585548200507723932772641331041861714311095658921457598492866226592665721869659228867874449543824956873603049430135744552240476207131855218726544374579356722962469247755390137239879879833754057371551259409832888685847430250733831528943560794630336574002891011496658048996320564709065201538942828670380813970965719754777028648207884916226172695664977639917539539815155085580033699141645223953171764554287427089495399578323400250677628301010246904332704734786309093335275625705467587227951832106156022023527366994179489669676982689342563468411116504181158450729405542550720236945889767479367909168842450326964996179149359395222769834458462353282018978170538517876139300940532954481919133934473789686752625120248365034208092937516228706511968828147318951245817423295059670783413909725734131260224537113667746759651927222359079474801586155103329727007290200412681329814169805953284829750385803383165397190387403542771987143206683716906572909176443704495959271754604323329845200710096514687206686220803438693892947389980453032035089470365393280092811411187447343049220805272658208321987706326352840532725416139261723028797564414400531226000105535544875697958044379987512778021200076843268474947849608615728447601317112371198472575825351704901998908803640557198773363526674616682561049688391792734369013959560125283805306470669534454207394018758094357638841478261473129855103472041294276089212898033567402156060887743519472675544712371694910360709778579653752438752750236979902163245741323693652873025934712999997314360700982660365080913400859630829697539280562326344661611720434523271686724545025373082002625202289269465788615229870043756840248392902716259745966605442455646068979985893991582695721491303609039291122853094845827209758692037326198462099296207148669066018197553754015060049110488745406372445909886261666490222118992889267633259412251088704908258086262484645530803210647750037611033437760386304413137997475023910792907797977149421115486224496986800964199143116023598186161945539889703582817726330216274624894726546611321107752044637908317168216014522110190868829814229302768556114898995704630747152824611771365033911849084173568317614227037743832492340297965675989955192444939504725576371413388489946407837595466194371883755431586938010580944716616503593866679249685622525180208832640356093323380971285515490532255497731983518454682352402763849880480733409042730816425691008547259445409549707367367117379192376589885972074238496651404865101659713505787374384766031636812036438128972326886310279012707015022082327836689205108453753771978882380262742031758414891652235148466933094831387583109839209145117226966750414903997136573719253479374103333505710672746239822511670330427260752503066646176364264411998991519490591989279746925129167127184649782756690811519197413329798776538240774739568539552335116708061025164917037791900684299812411319548651087478375828226525036423489726549619393280409376354649437048266721450077937458731073873264584405654481186806982468913336426586371346496689161739635489468177923514166005677766872766364028345298298638773616878761936667739468946136894884528923918909798583384726224991565475987566448875164628571455103096692463172190561839060076962199066149562057911643778933671557993048859987320856592919935061986196978018928065859286260165386907022783243720633607907674300711066364694784558729318239261809760799145502348638605780926822440098703494174562912634352600155176127429804131878998966853095125311715449854633715822283520133806522948956264188561931144907372514011814609713476116788637848944765967395356920771378685858889700556911887808495050817879805605641592423044860845224520222942892679486319435544756240134564464354845469278837104610192806329822186594389334239138192166100860828141593172107936039419910669858815936809937143957754552100684209576698577043608555190337835742949641228981640579551246197544223312315649331275154459360853292729945549789127498348108392184149672535498936513020441700787044052628817069046726583797031746950895532151508749414341995550175765474185278825817216754375070040111584862031126183118147747738053580351353731056055664606955215669561658014411104162883195616708248115683289238181487127813391459620353589506609248652665503816747853104278284501932553227419495168928229314326467746031311944647541089057043920849267491077944927549016931906176532915989563598021698441394588093408753141331601017870812764441707271922691602102532121564885207254855680924349321035277927467699579347562835178061596174285524729380331371837459255578940977228297676328774404718673630236812389944431976292981539411869407755736867834841376306584188122727705587404415486293798856282413707837453711143090479745834982258764150309444037598370061118784011999674747490774299276733619583493228442914603327135011246073318919469539333493507307472964852638568698460155157060463722317411343119410927866423304390665056526054487287064385433497677873841602179137956381864872792271103099768122352338045283158190725668098914399817870848815878913621515645256580935116010030444370737167450717091465231262866099794202672388339461928657088252142966028699480238452853981273932572243074020649185994100063063972869589349087790521504084137445696039558100961477044831418823786303663926177376392443984791977965894984215484374098730485403183896196029034115704739853357931073075666069757761999132354146173652794793945471631200996991388733678730562244958119634989246169685371688655440043741046192767587865714623280743476406018369051835001479493065670286220711907016731219452964021354432543028913019257406908403217966215700929374728541958902241766675060225715854567083177541725554396230996842377744829854169612815967005902933577834251213739818017939250685884009509973654006655785673420554624929576624995848133968753505143190967274838496577224456323102141241279289454671604326067502111942004788072024865826531061669913473637312888975676319709662548999601760973877560450935481067156526868150763879745365084726251631271769889675101511440931161127656670404137980968186905219060765992066224689692442583617670216396919579851061472956946321089123309451797858394481520008892577431378614629281079551883945137942627616501283091767463988911281651082481791893090155627598202523932966848283504223033186535688693225531703351307744599723252794325623743197091436862015072010820792006218644251310562717221155124088144664417715688544158211811540365307676564430372321435835738924230786883734591384001720129867065334270747607670186209252049456690389592341298057352233407689266974188143959023630236704873543123570797807320637748423632050081923739821456121319794363454518084266058964155050529763591622547273262558757935230345694318454623212159997936328574004535861261405940884122477872528605235495816279338351215053270134081716842476395073001914709123443340122242623220544387259081595491644556112780221642421754993059301589505204321517248066261790888068505086573041253114552478657620225097602695676585902666622689064185895286425824569195779750190434848885418768986096102200941151872933122110152012675436736758203469587379240679827425139409197584952589461532517757020612887979597458927759661531975320479781615416108405943156615849085489989709245645665800549848560932290395376458002581537652748910394602337500222436374365314196078968909258751998969024475332688069075438464670603036847441731758998571772464537871930137891195323304594115398915063671069845237456380075817033635885688303897184205781969978925748782631503581503714036547197285357475776902309283416069406780991178826623448669333334293239575495322860931858487402970201586834544416702136064693816685645634736253696366889241513244498228816155560919775256284650078706312960599174709838604150229911258226581878445853482756671115550344401240541226382304891166292857679827898788951350611915470868736658398866623480115670090739695727431164361735302967558395565593769838673608666410642213809984967564948191441833993246711643132017802804973535535680553420987007623776285862308829877013844836676866771370327266129574421533028784171326513026978019192733663580369221247522751329843173343751307372769402073388898889992045117936782653073587151153825108178379061643117036718019280299808258276940597984421213631528957387053424954466640533900863553382990266630549998254424747198260064810158976004501702565080695952315501718167457017584483616305199828513798367702739008819130011167351320119699030544758219551287584876704711346018564394154028269095351049729999651818963306446462085001215357539574642118060393570503996378169167368502307640321138070783400515132692995671938302893302226434989713668190304677002993617004491424573479729832735846067169982040252405715311299281158153610200637755107990544766285047414429047365663507076820121321773624391899110312317547463155112923020227535625511154190181624738442814985101885269140030758845411476149243348268829042606609162527325009724089862961246988304256664935008730360922465089352230105698543163781956958694925994866753417848274463245811355940401020965597769606911925607901212267528788754513018522385309660974578553679287774885768373070653146314660843768978060620741840313642294550928195310996884166836882803125586445388119645499181719609897567764856778950539923453788248710357007862503668879601314691205552156367919413606305145987897501179594814628762949165455546502914302388767979636724236336099089334381421793136709943483820101006194303792005614324198227973392450712801558671634103315120571369730373208256877795461114128388530287171004925195681596001645861949385796851278694463611506228568040873616361159447951496246130699138690432918015986867885402351134676286698654217702137739377723828966575989410604146947671830992109199699352730573012500175091092569743222901678612555359884665882599483039336561997519677002520030713567374351746503353562955531728607797343564724348129835529269803406445677888794877388705285672189784876685773996683104132460832082614760615340340956253895558983984284892122591317637994850969667359717799814833429853388873121908206122081889795236477473403139923145582910253291829979378774735964419964052110176493973771090654714942181910698207846654949381948889993319308957356480181675450639217413821154266944616490670897571211216419290359204545671296371003684749455801335185987731237817094618219292344028133094239199890372588553153537927922729067577015906944899732043406956794973429835237159603905981826516723026851251954931989092694047971411944004714443914981848568670259577958252356892564675887466216183841937189202792333408633749498748843850326149801956246047179072529921866694119012377787268149590498820637898171060400322255396531602606611048277136348846588687387217840272721811194640366204184265486000784393420165688312381457956886879548257958592198827401782933070857910597721839701113441885788857193224702969344934589491277663740889695831261007549031422663858710016649672827416591921496303230677396503137996451170885370209738782229202146089618738960328153543454471238773928685580748572270224537975997182442521477438450283413180450009142836640342553801256563286819011958524327226953133500861013053880157900767781138569967855543131474823889369857140239073678753677350377009115809735084335978811606322264044791960699666030661704447642735015947308171536076501763812141580827417200559149207462952351186511752188427344283693201448015634975868468257861842503245575984020356475990904276454520534189087783951960188961341911637961655568295712521337328894806731071491534118168455677337377718769183740158067517049055992986158935272430835594777535858234610953912495535701070447858983311093551789169479911815577854726595368394905337822027563110491615982109360337137938831482294835180516003894055549389791082113382974096286947508971173715060801049001286413556114878274728203000971157387315981805325962810489492330203051751583625430934040921986153982120730274933428164897064096481746801023388114676620387914734050189248680225819208125410179251168807031291793062904631871538388956754580090352962901513661876268917465586282265596016194163482013032633142979805912617516484713159911716543924229075779206775832441594904736757540957078636231241678592443257607085047921951105058612552558148170458790166517355967711744018710936520762613300463576754604192011868166820504555999311113314855086849516761621586662034230458629568462017800061991878210981060785262770074467571916937877134224650571580064692669156210460896208432901678664588325764110320181878872483490484518094321854226361664276531478674785332219407900677261229772091456715523947804496944370854998338783009128904584017296164936425888824397110598467132759824209255364202729009530506776945249708463715690874968987775200849492735665547673504011592856120497490431333990532019194709789503839190114855428875294757651785163940682697974212566885167843540605613650215224264197156266386402327962963332881741911218324558547644900900388643590946693400114098758769125129942550119748620723611847576599436369821407364496427230028891638960264314072701872594965808637478590539896360846281941918233664265201288366331675640813007415573367136593072779240176781313517421838035891606332916876176032237993537205168022200554198324409696844256796352714713314315268992155019688991689361407681195720176596912305681666587105016681954567449108211578930355653137167709774720698294375447708564065590486458969216997482755560458064293277049522981415188397399985148440066222738324597802302045816942494217166655586756210247495690627896167514214404306624545128465817923314983649706474021945883356975577951881894690913488298907243999448880724987057102159135759336960568497420657390281942837460207116258162991682023973089672259204403121844649018886775045015306104494531393116611888218047510871725027322434040226208461901831039832919354826036068189198484775561206047785376866114220175921917766112229891977171667367128279868987895935119560484460956592664184711077961849816519146736481789269058095401480982835947133833829880114204366966634284848851562833986533220786624938155980473549760400168300762904061931078373837619921374589759009137769707037275663596234451875734529655579897671440629352917085140386379452229850893757013999954410717003271435790075749076735724436785392488383427270985264766774194784458066667870267008404313402990675861048734757115070710898963187524517090394637013715642131586031358756751904523367722327154124349973922356456314369482269469583454831472667018849058708779803315402970749005454906428469453826971767487540328273460011997061307592238181561737777875010750121333375946067037934254456768301462618893241694485889146406070847704880528246266077165853048472844090887865776890159323001524202965986247656208177821519551676156689799712223667106981153902811296232983655801572883463269424414214083816863598628615117521755671091900197946293001445555272173327322791368778682028800360303397878782310497497785529085558386145940707462431896807743728402182386403739220169142865394488078890176684582526249106602302454057777821005003543361448751886875975307846404147392143415471796359686382975141636538907032718379026237492556648977721872433641217406738920612103624263845020350319387652539486922348163997744649056240694179946619307684179780279583667943489095768899901685555919598320458873712738419718435350226206902819598193434659817199934675801832696673231709353341490373120933516688406233652025721776976656589893041105785599456273506614633912432616538922343718269373096942626195786261756924634267566006333744502479644817581006333353235113635915735243299610093829131647115822126287715396058203491446768579023242337132477028568842231226941972996574389203312639569566111777326126521041195526009673073741303601091742606974685250876118268107647137159024080797055597340381530640826788640269831324208675775537121076060987479047921315795795319269223692585052749531492387558316946742832996379857940185976444223363692458883146031814979651578470977912107908496381957496298352710017402141707378719990932298157515497022035137576427598468627541728625417885546760200646853007724033920061478752626277404759261835645418193045291381269456787082538413981782736353944934171957207744973545338297040964654615445282091012467578662306027792016964703703172281652155853594683690971762594259638384158449328876723716345793887129588086845753434129222544267115835517446456688164090251779390673511989361040725526923288879155357840616821247912998202633083353157250330688268946459662547370068968379547539495871236895922608423753726914557822473095827644597709913517315759891318735989290583693977178048511639600395791429648632207477163676608962557550599234191257286230935365339624388697679101560848096114117473520336977565745360705290870252928469378422767503951189659717421745585077837950202997925636107601354230814867944904262216319181292648527983019039577000790320069740973690566706011958990358155471997977187683795804789394501308157228115905764079668634020226410436226975448967662744081814384633312133840236836083621523596890974193721260588229577938480924592292702029559840109846646306625660149292503976409220924579345118595039444544356919125009605748726579041509822428633246036846582040721815483124253436683585431985333539022046386085755663185529612680851690367375631682339833512701314224330330944254464454514526143394310840100159606490467167380504438474892946074568002787213657453757359737657177273745352514258838340389245268210634948506520278767706305976164161550634899309095252234984389362545975348900689911677057693106111335906531977924534825955215029404640718912439868954563280266512091282540016624111320950267065509761459026023860303998939637185206366133745399683285741237991262483229325837376521346920086858853744271609860126555350659752058112882409768271091997368423440737286200523894233901758151199947778812751252546468794892765148138311826433777572047410544298925904035767154006059985354194475763846365404932008201437208205104428412035924279114401127442568882332541962245866071906812048680933493147814469355434262357681695938422381720658525589144978769020585583144044161382985751331287463147799452595437471344800772625495639585758509819295604446891520651850640792137486844443298776548406112295737531289398833398149527349767874951330294193252929986658375462697819766140827741694733783495395570348887630167390318492587458362172614096170204662478091828213051626648160070958987000286846323659083839384476771607259086278520499078078987488801798946743452566529795714010605431998975443082151970634836286394829764340835161329683273251847075132854484906973756599267797223285236522151443443543876187064363994511260077206091063644711578464018186335650375690358420971368202330358609209472706681002039862737814060425483789772015109956000832651814586032688711151734027536130196439564759563151218530806382817086499270428014168404961767393709399095144016796649012046892363220111912215628635111890340993083448302805053804222478680484597070979582026290851911389122148548647017341819551049681890784615169964342708828033150229376034332598885051230914120856665615167121492939781164589594352297736221334199564684887501889987434466120848705722319708002816696778716662930085674834519404382738553535239739192418265259820691073314758599948920432735108748934376689314316483944236766169663316609709167988130832135469177670007808154534210012725041695042782084871689021196452512140809201872287426919288309827234353313068772814472766558103616423753073473783930252778609004849318849837724034783558926556325616197722187186035398842740559666188252976532919527732865546732567832696313779416294210721242678490200378561868553611263523567002794173479423934358877982104087735464228714913184369552843559396983698908390624271053147693849766621642586594535133964098248957094767008985944571255583681751356125518378493856228451358378741254349631173286764028092401426812329703471446325663815008078137450515166968282760064054943725586206083762446574599984272838912523412747478168626707092339870820795758333372740115150331654989638158345981836466062178546650137843158816623382163269508352393180267132218586141296950879040444777622143313242099210969360192932371250065060650917493407897348674281546567094190254607306308382412052932614136000892765156776340916404423563726788967715332128544158105051319155450969781050556783140978564599961066814367297216146208281300498229311598685268383475883604235795330254533431395295604581637075241432229911884233360592493854135365842691592495393013718766804639554879318216738528690237914892913824925789994463287838348592276518972754237617562302211317637408909827000144812455949256269299412430638067866166183872884826035680115206383660129435959521801960790537496642163732201489177322486576033974036284085130341144434216408051572647026699054941631990026898035245547909775313627804078980544447737799145401031760958212099294509410859183377160204612476731373847838500653612973769829545477472365106349949666788666613297418426717650114492519597667019471557715997551943994861893073465762993134776784294048603110340844373331810944787547045197908732666287092260125440708520836995332704321342226483621196883584621943300828540533519144831247851325161624047082582855684065391855161445443325984143006755402697645592478378487997657810131702954626453562600404118916309880961750837561931126552338772289889526558251708392996425932141187094119901762008422124573759144276112158935381418798292561489230171981003218095397039393735705837617595987787675309692703896135156906526507839532441693602458378304842390794130407870518890585729650065045233968019183535176950336960641623175314031184353359693448966012051704239902443565025984111438812163683344610934521450485498689793137321626377338324670407275488335436398471118649865869104969156708805651921721276540829048608564262736489940256760046986667899465712500663864796310066209584900897531403557886669805826230188202117719972282691593647424249420887486113596350003621206976413922132700451990063868303685481963626997428156977959653304267511257042551615088638514924043729547254223521565027730331325720219401220983946119176328263078831409946797174966052724015925038358111077951761861285839105824580032093439915678623091203103838606636159843685464662525969496657905803978846135918793677089052206695772400210056393601113519349207046677560927599645871244589686207198155584696527179733885337024465064980775300674521155081921906093818836020874372573168667418082767065884138220374483162334560144781367537219363865204718713373192559592120853032203730078539997161998341298486232625588042271843181374389870998523574738792106451437605318394429231474667531932085477528896613678606893677539829846797738052265945293981967178327498284634656120637985517840435420170193539385533807734796697383603584270747699336773103128403996368198107488428054417987472427868890238250200174925146133920118685540456089501443983721844797315986157584713515265363297092335874061574426366512366999696815388575730095173539221636274713400008945071748402856195035611714682647154132148107397315887079558963013329302553661149106448537908535610482088792151158794042471915551654458611202426760530968607488329055653386268944917344389303342481840925197419146257659561119536789527044256026089308353174581332352659832297572264537425380787118281804479710105867376309225387075218082005953385573129918800132698545746552186028914434100678714748080099114620174875709346276901157764131315180994225581044554680582882136885365128090154702095288021658808249708767983507350814974416674897230621622429411722610655849750990750519102646076138808810271372426354426441298116891249338342726585762004326683335336305176160232938683286729148345333820197673556398382539368876666539114820013740461234710249930265154114617312169323961393372843409792660162880866491570798265611547977424084739024850226584655352730636895469147907806080469205053427680138810487259348077337349081371419357242688634604458735732986680789242078303365303800730058720781377746990767051603702959781070937286815589587294696296805360494950373980152338021079861209980999569449120440931992133440743887360169738792957518223362018486320167061479930413211703250572807942457051291170060926317375176107849804997497903756945228246019900132407867628227340751979700061802630492867535746843648411965697664730567329620833127884841481945597319563480491174111032529942066406353014918277186519134594679763306580807333188004822475820456784024045332040121611529542248543734285547574031020219449245455256439940123550240143251701159618670913866141134377022598155640008283501863678405962165593192996249374986976209609509303531773495149693108735536253394176963131427206649848791390955445032455093155120658326315410072597625013832097053886797051619596564170503191249200177158443250742910989089601655255643616538123386885949368023937165083600387012856790101439104237798040342677532566339490990368601785928165843635542379889137372270513053925774994145739646919037653993868414782755421955628653453812501536275825681829203543371730431656304029675052011155702317873375781243804053484695988517600333920679166622559012580633059333376528398584304066408877034648645121589798687018428332344692463937560971124129503930652096377178091430432276287529691082517028904691170559388436322281399837220618356797782161539168999539178245741882522817117409554624443629821297715717037379959030655424133468443576747907467869015402038534399452917468445540897501981227797670742265932699320126941555232779815711098381043169807680845211960948719619000040002093532702045420024125994140365316991583790338736849209954200297830973569370352281867209476841308072374022968967599917617054875751624897627950233407842984705287786695507917225181192127521808426077413020641559064306560065911958845903404555540383864983332049181769390654259691053040880529068959138803031667325057464588803570849885326527723714281001026131207191665688561429298709215886680188482528506993520789177699175788515312184045077007265432334779062621457179779008587171939112006835399320086362956893871651904098562806716798376572895927879967189802529251129852848246989199312563457029082384523807955711883618317360349650692296030170907051147331286167980251897321563173001984626781863593364437420672396357559897288030159295081524948629972874125358439726268355563451917641962503440522607133779343065362575873568674229145643349976400417550781004700928637895747525603706593241054480286075789133424725386528249786893879682966007348724904770818980431072149080105788786260675836959115007691537303205246457311035494377177865183687230643990266228384513426111389691462231770029736025239129814343206173983746100220560023216484439385763176474382831348795187725364427984910167223862693993843551401696473616291028484311375819021112083555400534996187944647379048254948023380852447141526695425843647328583948269184076416354859998299458702373933787336608499071627555494528841079500943568744092719414711564299323167492969064291771425662489145969483149316366724509179795748563042029135688172537006826033851004373382829380354572251108073186333707114649010564091569983530844051605480774835995516610528264767784784768534552812654415929763717461135260679749647132085632969260689300220149283783319548415213741453449747988257491272246605860374509611033462848299276100869096688885727060056595396244928792961237121559310947937552864579119738297634449946703466859956998955591111758441650888690465426352828258907028426519581454148989652317594979360643523177477453780267540647905598495349889990788576528287972589912378601117307615056944356095268601998562584258302894209142732544054712641352862554719552389507965804899786832495832657397238403677177283105432156162170628138478803306734559419103507358567362376980729762170469057342104393394855656915144588436603078453879772083293068966780150809365075071657550042408455928268005859398893643584869422997447501882348648397634643328371704197673802395896247203740296861589034240961483403878630699973784951327974548502687670751142337015823145629858132961120646471617619871860166605930644731080694328738611065192261621909567042974905567754402310994252131853038804231886155990441045831331921184946719142046901795261474329978690312788165239550305932853249038604784641818179991894559713207138371832604619515984908457041396499404838092642420386068088522227106796323089692190138633879024636032477907228970770925528478610421426390279042883466139692247929801983824778610022235154873117807391882406073920414829318802678590519698672805661692027927397785076742064671163845376435141218990342494223425890332254458768492070953348448292522710720698610508890608954694460304996278428975119151530693362095784799226065028352697798552505661249887792815617350369545563141569078696831565113009429062524659916109499376096307035091055203386233714502090683071822228207249591667478751017224169170126936759675564564345726575406499212822471617285460186696724612084178518983487248819942626784403430463090128935837468319930805089742535118883544153022360989777522294475928154679856803962528317569486125693201566798328314323715380179354049827644088572409366023892315980596311789175402458853228895006200634162081620711775846504967508806455286610612527172824638122569320044043177446045080679307214753125922294363678012970130348225798995335609428728678151715653160998082917157006506595062807404501873428075011642471298199637196619449021659283764105541493432225721291554983492098937790839764326702661867508559311962507412975675448451642210192908252535775948814985502729151053192726097836673607933133221827537343900019074805572644431803574081795463750842884168914333633450643365541311116039696328489074620506070322866620536193407476339774665599043847486860894463727021249641653824559149214935523770837465599793609862941363939254422928402426504992438191948139347835909958191629688170719843012536787449303608279769856651102462388548729817783111956613643994979069179029572078348944092562197688853429908469158963367633086633846342579019054155573533817326324182507494837366372167559693985099918602957112990200616142339374745220616356172321509999333940991422566711800488385928600514255434948256805011750654797541947524858267723412804580085205111734500350662208051115898903769912142394875570400476567528677460591114485196711326521542243042350128220379173013095893333083625764606782487791899642198462500493636418031425618697206363038196714650681685596703001462480524150521441249881624635327487728370582108570303212531970187519821663507208695025107961528699007436362690379759655499362448085145985388405542188294023805970561117441544790394506750020902909214210682941913558295757317937009043453446954603905506987922601581953994639971049155078444577530698584124920697135486019655943791015627792285887333348854259691362631301408221878508995978775985948818941803747166316272385404134252322371868626556884424495174899447603768299003028482461497580619829199247784365745407913271726002280090641326920613095147976095715434067620216252215862655875676635671443401939766486861217164042384905107067269363251301573162461593522670833021559294105603448496059826385448337303660466545500664149890958521180130921983834269668593693098806649726297465769293304246560213805245231966220257511647985958028795960475499457094363306604529333048538711484887067376191225281264242146371230456264143192487784285461269552652730738457583646559814898022500057628731999985929276636612451920422498428408527062048085638882296250960412704239468936102243055918490471635075296281363291776640929573141616438839705198675011706083671205873931245765701020691274122705328504648224147365054710231718100968709406085257070939327873098498608062930991041361837285120350233998098135636877727654513215049920453078307283533364838563663077067331677692045989662711670578924569653854026785532857686781185303455150212982936436641365266465218384261469915943019327339519679906746423542461829821554366437840513753635048748673646275426152855893138786721777833345283992628524210070873441429163676926699084374591414875293071950460399000542799726156655234186894632574725562527703163604815965358137374274575107744980996646849591992490077537301387398219718810143148845102851832493368842454812627340668308583523876927954155765453638213238237491764919244364366436067495649493671318854145741745540227477020177720006050347352865266135285181014692354761946731717521460185556319429922691006137000606682680813177416474711252819963851436437526269427294111457742277079111669228766441571553991676078173692505233868307866037010764659313253828094350930730561413610835317980641957037483514048609313236832097042306643396198621238373243557004239730985560027217035740359293894250558892608466708972854377405505969560324855443667554053160295979263641197269630559455487465861215195429565906385564047994557514920816135174210010451127368812985256977629179725273934359808446909815973773889928914069212423561264236509606543878156547139491186702258501816166002281322253456179464620696823958223705099901018529059902598410174902147656374053307503712421118291559404083166098262886456903059054215314729529504138830724889721235621950616934839426050169157835938427608061363975631767952506174724224939578562498522741022861105353766167335984563790873029241222013895021132235752360506454867636888030257794642230080721591208869115590798707928331157211201912618815998199304387203618795321491990043750730649329406846703475536673742095648923352013357036847019033849584650055157475908976030746788905025106305684347321350515125003249645715271053018956561994866227137592597536977390816865837603954203558848954466542310864032803793496646721305396239053774827493990749986674226405674105058456982846388278870329138957611066748188002450955202606214654007166497518373376895171700158873013786712447709714704423424742610640356026380880225544014805089485697854373175735793532902926230137217726560265713371309964173805825659959474501836508352084964831250952374605512494682747176600047242700293293743399170198011294958409569486436100356841300083440203564402028071972177208251467535289743671376663647777944371773809579960029203798372608205861174257332541658629910599147770715786716344196203494500351744101863687389515092457398806302742919451843283927187168134504485369938228246274000187057746780589215043355469829699251426758511784262503940758745576229528410621293417628016677413611445330044346142127478965394934205766821786328623720723364643548916657527910952341189153408826083117369664514462274053310720550187959420635246090536292289655319986151323213224632331310396975379507670230770867866506876829269718939876951770526042833192179249208223918971206302387644060190154870502175294545547887252842379760979410765098542781456347535401891673570038552711089536795894497302416530305001881712085590150213294462136541229822216716208877463124894632447889980677735683831839208216276963656535638373075248442120759540394035518299740860093443082784634784500829217698773339395228659579354377434301069609761953253083036944814885812713997338006151733840641121437154041151682790871967583330060208809248889017621551300451149349517048943007175263368543971730875547777725556655512679806554924698811160891237537946317217152877249273288029730635231061980458455755148835440241575071512198769025680783060758583822705444711866331620699352190022404290723448754813203116061580301576905451923237303850595247884278303980326616106480390781669806556248648074138220047413315454951153249552276322704987823728263121627454573757493942850259687906260276227856145156696648386794993511263233911559359243321195436126563004776300693100328508599492631691304989501741812839752601201312402586173127091819230004901435713768622844240868133586078643411981714097112242406279787534602252985615370668564544890577728563387209599330598192711765485859566036266602781678218319107489196955428561303706657814986119351874721508706618191539525115887037913305853750781919198561195152895478815348714210719437023569526230985441593438169454287857827997020777409533775804868501658552749316637516490997664365221412858684184375394973495543258524114095833717573335725616818043547025409236392561689933216755872376293230194763642945597830972546546658534679152518661441700363417129171267398114440894317787034741389716155204764074253896555074862479706636928167845539830793836661102471366613111635187350231695266049059869486552990643346570387132546354791744263955489519113355054357148615948124082346362865770175492867617320674971810478328898277807397091820841222681350145331550909746267396076040292150433591367399841807767693869197315330167018040339352811520213171817391879431627440076282435277210591366639578410065638433187326103235804639586726744337396124147358156441641159543531947382530086131587054594656211174469969904881193280983909959975414497411284914279102803791212582885868624139451935182548938831720206737041840057679203547411347281613342972968973387720772475537877678461968309774606681739379213236649353461995542956249001966218133441995089815220785256154860027514747347434926037244109876443560037202614867758329564094010613177101446034992666039126276116110098060303362653138087638995167705751039171882729799862945439432000865256683296938199864665346291717726255646900992309079417314082590005423410788776493486413478542385670314638020264784899114727312756067669762321367772207171515765473196861032505091359504347282185618340299900456310246756354828777139851640991729670444021840492802651251625861069357835038828927844651400747190179609231082122743477606711672624634465174157396813676102064032692241060788862593123383979588737537507585930848028455840818869085175295282758518483536499365673248412968529099598013978915231000771930412649618401657096140587606348408715856112658693709996320327645711653302929903754473892130535591692899809785031075552013325686281510717775907608261456407059079771310064735128268754635591439713012948378999354958265762470410536614370098808907674498068983100667598136468846990866103089812083862460195269720526235367094842023564969805385454655523725034268268862954167202979142717582613655875603269317945004937243106537295675835397051904981415755517124675145555063840722157261778713868652685083982110242379648237665773777747795471817291947669872181772828711819912602884411832961239873044276912071653600264304115612054147002443575250504180184942482741902524357033712100080695387882805281901681053525601344438693627544644072721438947681260450838602918640739878224486673381455866024020170253515753935393045103945765799797651680125112318664899394875907732059210052136437746355016002382236207942123792132270461966886574593636205302984356326329755568613318678186801434556832458423772251506526623942238793650662691597504846135778314572937065542341968523679242788202698121638586287403337457401753000400235165275305177400097817954181784919571156136932590919619012531715531145785996738441282762611969169750819259923788853700792045808925379894675224066357026436699274175887438570426960115785707983146745732095185265842664295905423147468955955593086255641244528793209559112695989205800585082817477604853425877632056819368352705264766783674717134466040795692666710064515372361353640598686430396164068308316090575158432276460435168969381547352432769865005694824877542548112583508811754758802582748534364942735744279604656553068570352792865211358351886352080212214613759518714115970078844079979703601074110459781804484233663097141475556348071493507510427729339823626283579789278307218937824776689282192074350151546034778959962200845327676409220763313433013651581224611250507136149630417673272155143473891472020140458742154441202434341139505386931343522073805966354292841899752810199173503113471083693261272798753143518979242120892964606964698666093776924493162279997627043671910536676851020242644028043918081453599604231169807270841709976953764621124261023806230620339080278126956057240364407977621126885132373467177144239573683393629507206663141299681661574601569252057800175805586181928937253329352331846850391438729396036103417683081094407833909649389587624449209891723830049647676857544939200033032824442599732535105060825608821638832155058776611293943391754196869692292361377619965971296522361758283103132507804185344162271965617214046774211241427013755338289736379621682459038706656742939320779600485428706210375360069218973004000021303188269457908556097820217947322921693596826722232180318573634028552219746059146679715200189967942691439041643218803875771433673928237770916393416019675933952677323918423297516634748730944275321271140727344516313071838465246807610687741935517155038137276985414194878553001797169001512573245865457988712825209354180925331043268382500932165863874971865363773658121017926050522091390859335769018939827568752496659567987730932850536759293758551581929133280882505791271011053114087352491204030221948192855237537818546600918349258097193178277018058240948053083354980071897072984883470291027278287543537949822590091609811896420469674792259129388954982466305992738531666620930645662113690827815124522846695349028396239989128140339645655696568998449845686351425502075801389957136600427981537028023779468943208903277331444676827459854747568824434225143978608742331173280233573606624498847557845315997720058249298134253906821825885455245231458449672552404149411901648623029817176253810085201176396540843497224059891825388358896104669400721058384043067931398488567978922007666321474294549600501839533343148266047418918763538452767102102261998808855969593591483327311030229935101458693700842255090561072141107108938318957542314005176865491995512766079383122494295938933089237805843222828215308245441999679631730531307021561453030891876195313162105206271169730918736398118226557190245434073767463151166622846651295159939245674297569597792577241885498340318413790797599440029396870240096459501882108118939350675966628167916925435069569770149120703226896730436514632710174668633939127869101058645043089190070648239164927939468719973660558261750181796264312521239654537209410528516804007106153372356382983674716134885311033578928625287682133982051747782055969857400991718721058025933612437444123375651678327520936763285583867713573815129297625970819612796824300186359518213074559014492037122649839768418751377695666350760659919072171797382337156684257973015873672978790602810722882547022234660617031692080137619306488836847609636758392207710374518506244545556496978523677232546718947734331062419968819193955649459093006177883361855358124741269086566205860029522934749927829992057282806258928214693440312350305921360693944599896609366445469421738355964721701455314084807310897474256825149010535456352647981763111449635574673642996670087113726950430111599639276312737198997109650888217684916617106715418249412485681563218289040710959969822198907849363270274536657357024667154636674796240917335669332538536206722153607415322910255716900500811419797064353641160566740452838673941856073287597659504153240604788352325324485789335241781871268850919529359264474211428589836120268061082383904323076066263697783225089854163224695213155463970610328024724968530009776604516334232273799240546355965384206706741659247381797355186261143449056103874815767691134833702917711293831034702461748251216906091261261002939240379412561706525988867580505104421710142420546953594637819579119788217225781228607927875818077475293382105662428466432570283952956799313806147287182455703127172814299101195713168930598825157616014153611086756547901764512944574158852491259723592815875798125749072829632902520199183555598623549890490148886393646945406669339782411245958192653347420525863892007409548060743078655478991900508007764536669096957224480512340517241304940214484895405429629851706229043922901366444049509468801224361889691784800409296476101095881012469372612151426542492584803826212446813780344676133514493378411697499230811244300531038390653678783212484525189351807025808630690329862285804254172099266672417819731557336608611750101297192167786132583883427344268894440807114298096639482970295396600149493562189466932727439719319521697632602572233494986699348917048112031327435670035645181618622040793594760634385852156850561901099067821167588442668753187916513165212613841462749295075647884103960240677025725536462608565740016456967591838781151411190140892198993223081677295103682108507411586382228495048365011305165819417838040747191007597332060140940696301056387838583299939928346181408007642517926405473413934254060584553529556554387984788902094378844616450207661026815454023355909737180708710160870667150091492234503846214976895950912980209775545798062051950206711204210396500934622799532726206665938633824091430302324400397177448931848028284224067100022466348201518106085381795217882184000142127818084063190843633302310634275136597778467833918537968753178506305258372226052853388443429410489886239982262534459717106858858801283008551889559468876267155432924648183848165424975714558362756648529754900464129264690653622271821080757445675280704230608927198616443018711971976536630513856041452049613993018315800864356551869728289863436966475904043106227965346223588045052529725756683593701083123845142595340690610054724152742670154913233921975184499955535992753712974071340479631236906884093150364629884923176006820571362034395613177415786885427442501630516019823689231010988818150289375477481860905530778146830511097715746018279907694249493013445190974774147284470675319855365229997705280599038715183794735745478095253304075649118307957468170040341495263344544678866678862378118485769980598748432398967696637302293608239833078895590415048064683736704660026219298245284950633446443212568858551858736041336041337996534873718515089929693913188560418569891959303837961176343678618489984309247905827990865143142337847412189986429133388626181339934902902168883934529578981700812460001309716225542280108568441975961129493607236093106007070717025953333382223045506490692195506592120017686576977508618049102147239295397811700894808970414175565021190334487981186529720952902363194485977405169278497263576773380451367676198219437723100159467443743785350608539384104603441102220363170971297395099946914360743842888265357443322028625760325279018198354348428031523949832684521231495021392484096749665105722794999771999766547594456970988619857090976144139025240444813162719742153339863467447280413727688185184414406740377070643986266199532510359337956372993474893209411822316726941442363044274209778881100055281977928082310959516473518397164353565868135388296079457856843781061545500860825974450448219547943852632184297514655126533292675148200271580154561338043741953340333680661654597553340147766483305823682867821396132042475557319986793471730463150762606225542212900028766805998424295152995320691777769868868592439703683414118543878667362518749848130026297985095553436210784395911293087899381061272685781120884278200750329990750075099974605149974546363906464821508482088288269018717593231231054591291165836985617692158193539867564900475878934836519191601780575653693334159269212378193137641166565817923866304600321198703512493750279939117344954331377117440576293146341557069111876967919470572912490630771980396982726850815744059315534092704675502794488128493145248584364939219764247427363040330902554166153965013974621329416043602641162256240289805637399128581553991223999212978450248906279944142423217570694791569391328238703520940645478158808564582061625239436940096890590372527824396140334019121528683766009210435597595961260828331653539932381787845291963335311243965777055113834893866421143389235804298562300495835235469456169089883510254288698430193593571336171312438337344046139045776610574677826276324415709718268593044487267350555301916399754080956320526439363619849748241087218046706121512032378792527497836773226562587515984207075430504264606151459656926377040719427372297605930533026407481303037717024193784239312212840851195167980169627413429452319526658879671377026533459996089577457687422271949460154423266027111699342876043243227786851710882912386811698997971143265703644349610043227292884334817244240623889758663791828386521731629695605521943874340594265371672019270680414573347836356041190810807788695872405604198347555196654853973087467887424005098288394607416195191488784150900794427801372834757875752754604701960639373582296808760899305334836627161108403717471234789788500160337315760617734813653587072165982662930242948538664901853205631877162241241000051479283787598338467257576722056577895285832150137326862191555634436426182321554932598360256732615506316957050336736374916822470461429962249824656176776167116559366880543578025395849652666659458157778962286280532069553856137313716996934217867454420632018065975117446312318706219585653724344969509500608751316461193993071141807085399741432454389792704030501075430362765672350641661108095926225016243145548433660098882919154082927145472260999339021412659090382255954107783436349109485627187867311525116345074839583782504995871644481755567322618370555695914340569590979255600577494131076165331908201469058411335479089274336060909911734021260798263664411725829391932992750035914258985183312349527786188847172538445633402528035704462015454459186445829620114350430301416464325422462958115237030438935455408218255795377297566567578118562549798383140588454614866182778970881873133934428599728405670306515832459802990959770944982860563640280751384284565316290325111983360641691416137802224619339557161135883252691416977055791441246112460572790178539093242910924622892968373729126198907122457550826498336659476922015429323005853018444170705782737539593820323172865508396249751137843251486639519932672408238493112853022606042209971326299304723858474432528216055808538105212531965804009476059365131541041610571903057879001037673896432803524662681496494474068376051202505432412239063910307295719365199560722699844617372180915470975714083204380934957632020227203775708941934802950075506968402152252018850773202305299714145925144758111783548561908226418174162269193956166962465431965243149763123142256687263569711950263023488647348674843981308399160851964247594337210683986508469887630860286506732002274854208966867799579766225553075169060182670235436413328368038926200105719257458830110852270284691671408288266194752942569075854822830531800992182094620273722617973409407529235988143288345151945762394427164670036147516166432677891569814074677908398658809201635414163831125165523460663251134717921855214555318516325600771190360659465919650304157534512715041163275210228366697348693988867337725528417101657248520401154395161778260028203443949477259437240729872161187462775891404095888458875282496896318975970510001920386247934152180786024777954233129726846014800550530002710598291469947951700627228734984856144507398428988866825859470844978473344797298710400836222338817171658542183343394218993133960757786705058797937330717063020111183051397575404178595190937122105061608071013084769232678868736163676221478835196995480859915662611095831699669608387281391254155659551067441473072537256813417649557416157111696093710260061050890130699168551951173812173730124791584502380473182013395737642885603347663931850371447882086575560085529522234329291118072566863118911754197924721723494107373087144686363357719283365718741070132996518782275820992043090288281540044977864219020543645158847987376314817145972147980138108538678847060643534149114412011722834170287245963892117070144105516298902583618938857750849553780143581367383566777474503382420637599679623338459542422759692439200586037863819100316192256750693905961494602592480646486521722080435085783559241833310010295697788606856141710077521336144127076044288562245691518304897844242813140540630177525510405506144883261338056944285294232044924537916504069824796870467090914855912534850306666898434825566380893525047010375669458582305300725547204255366463610102421746793465685869472335653983716026649451459413627907633910561421825096525916005381310039775442126992605330155180058747695242591296762219522655438889148436252309701740697486319145823280891960974922208935703022451433833600066450163975231755120317969829160002898122422926937106703075943765385066465142143653270417512690545740109069034671582534706474391550787633094125409033640757660791952828518525269368860372301917873654997000729700067665329453093510942664109901761579298665318101981301877516292199570652075743001029405761797607466298808841218166372644861665917781018007948671268331490165847597671637163862941226624622301603405475593618872012065198172575236377713930421290598373661014570206323160646506004480281838489146186731380278597785206563197766023732490926748825448415399697264293471687952167916963104365232772644031795678996280053141613053727295605036248769904343458767923053809250361317497608235491361383633655690873778687769903476644265962378298085189908148281848658460412708354238717788226534107436597317872735432064027465583482398568255905053004491658311902272185155340908702264307066857426025064358916658100979712296617923357782071616747515786086044554229501680140504663444712755936734703134473098038866115262539615401418080854291992343098576680037902919720968403298430908808283105891231948992653412964335621570097724447912196652476682504390515339298663178488307528627526093384116395122957598061598443803531907422526043387620710278427624613408044094862928895452894676857441626261611461373776227929821112148465857606063240209366539041763358147997672135797343038166985023618687223842290216477569498440058359909088625960635929208856348004427053712599440790559872687500087692906616782243213628389390233465595120429328692899715325004571479887339197865157638285646150199462758691418024041677627908724415134744864029988544328323440577267452133007745170333046475653788113659956221216454700027562443224077235465288408802279779403957214273195165262955390803020583930865588560396711649936798543483563863082147624139133118784633056389226746525531294760582845802526464477175907903595214710990196536992888318203520369072306387005832911997374586176625294326086153279888042337386452859763831512474799960612639123281447948860548872753456314058780823061361242815873589573532392885493579083200287989525263618836375300101414686385297419983301289249275127403803219283586901291593953297333918751923614289956003714485735491911213696286460855404444649531623992395653170988476980819136556679432059328782817754089402743975287324811694968735968980800522743156271685894414870779757638383622587726621101447920326293248779933418913912612805843740176432299905404596247902802238080296621430410026540375033428632927097158500134590847677701791408717782696585266954391499596514371974957250742353977529156027546088875698402461463400533179205342473655971133731440773547792254037418032179373676177907188448475159716544670132438464805436665346069191042371226151741788680220612478682783546317423986030799731293768785000943110070268648906457702115200682320257949159320272808835010955048365363555424266247142200974510139681642703043059649556991406542599104848329534043352449295926670456530251791874404288971562275995288793574578195688852279053193381250395058524981022083641997083215956993710510079133727326728043707473053260749765506466824604439343638015900614423498670571539290753132183184141305841881080866567234784175771928473317964756854283516598159683896886168509994049263511251084351255625303185439314064540967359587138821708660445539519564665452269407975648464948917684224869308137159576557329466792773066000950722435507134967790467080889540907903781782634381007282580381543415747355975533270703044578684395111379751368600545023633912134319311061628772085456693577772701651548773561143542248359234340596214839824055759843987923413367421377555792712220318599738691839368368390183191199567166448768005175609124277376973891556821421883684188517894301017493262509776834542870451027835821366558820007994040150658716931473192178411105693489772687141993137730284767923547987173199564852164708988135669504722566977385974080597390648368661748949781362353393462878124052818885258080691151622451517939639181199382984581777552669884408667787481485135058383157753731184021487212884362317891607214686347876880740466527871602788740912254979013746714725177376459511360605981134701599793834615029877087780068415780806208501535239989858355783348649991235158051053429708801158133216439094303523480451595425728735439828565239946158575358304108082753483960504539803779228677647706731153763045578628825697837357084452457252756374989538929113264738733404695688933686244521679152893123871724421479612972807378946565042684019735651431873595361394537908139364939198163052261497542781940283198418608238539881566024278941676404096087824782560124968475555060515967408107431521885037222915230021976099419459650266242079618518768595719195677221346789396000405297227529250562041677894910613855244591354151604686874289921217408353580767172053537218923848029285853217919536048425798475941372170075404585225678797039254967910548621529969222345841787342794669722713941196278327621207930871204166284177789448164733170040927402432712435963636098481273001824651309672251806385344054692468520324450216178708729851132604389121811416893856649172111389764140150662397194741130806965781878316475330638170284907882791693285575332947757395303434942820028301439815941862327180230838718715096288788530501929186189042633805446421787666043055579058471240200758844378639611763809017646130363486787813769023562766232241164725196692807696193304242445355671784143079957109309391418043500138422588104390386053278355703027786900053211552312824866499522822594193328670027400319998186088884805341581029803634585892681132301123008213254697618100620734785269678343339188917927150625277136580869271911681380612090280907255044227738140015228937687092413104900298355467753223891505210205429929672421249815703900476810380058995326314733962609380193461777967922058951367433291501989087692609068312979443028276049814554328152523449772768284152653418395782663614291547825832141056965088921490985731126434907296638960308799133801204407502191003616884107075731597403867574619650687841281129839542448021977606780679005682248482413886459068393379472386064608124860368529740468999032223863342229039538582771106307770025200025911615688720647392498793791165804000321656432832177940993253034512214079298673594963443118809503873865249664022159331418698255406477611699671195155257234545275689337269356238745830648262722638688455779001803169197720404718570631100633396143421575993922218944156994631695960642369751785641394464788850377130026437475545418463202515760341026306846682741764085880980784083096127317541102568259398751549848444655705097334488911289559512161935102375863000128985295791181962462083585467489815925922989853228370398438134389857831352342969996884466057268415264965754662463465457539053271985815730663286102691712930796344716337211197536070566211059917619282357005943156810171136812718266758348525983696391333049603885917004608151599531829182429885703719226385742489983034138784492124186080180393408273213204824295191859381654137474015780780149922429068697311495484359100582610225556673004408974432889069960571875191251374785416715402226604290449083172339944366315524223546693747937788873118533964546510596507691092739566729223015141690195066323667412157328982583721734668002962133604455371354798341342490770830141267787958185659174029648843797209086949605054500032053984746673915955552843881795333421492188981744539950363228562453493515608599011126792304520382625665978349231603583041135597475759618744702816755334401154540323930520295806841569610460487830794837368337410155084731482118207365415855829544661749777081849738634413254284939613676077574260380984883078128216204524505746945618920290082913396265168818576803747124665309615310548516878421332641471054105790948963336899532080584930428114708179681041647743023617454838266004129260304811718216187632203148291016105032895888742436436879985316139704076585265372638935641156003043311246729883194168093775815950697203769311181149892322522848543241392570531068462254233464392574159995943866359759142912319132073198593275971436445346226139366257703230524480439943820519546330805514704154076965110185434399478212964174255814146147339277241449233358964626832079944897017603731709742414961408789071961737866703192797394043585911888781673038654861381310085258264963469221050450308841971955668549492442132336490261969218400240926930484325875366729749427613149207081851581001598361329106168825807064890606447705652425008701775422158470120091117285269687313893024302276138154629187263537505108298246309635412644014975420938352068264985151646240876580038309533160406981703159809954309305355084765598066925502196107366333342930883863160645721700419718304041984896999119534113778501579499650532438861049389219268980399971417285301173751944389180346682923247022931625043026922501743017516191768466324191862577235353365494565632958673444953695267168406884216237987597892099714161750279885543922510465236361114570244142938552528325801289331955557145051267028889167445851089500831050934619277983384850357094663935050432779212362222777184979875214880151159985777643758695648826527140829272758349948413701324551340468968527684708038561791684729032677291728248007113912277545480743019070629187789987267258766538401543021835664291766507935742256721219068503423694828231879297231741394717851743802804020894275151249849745928934933029938243136851235532949650259272581774833898388395969353668314031907036646221404069761606468621830939098273313961003378908670147200598389090085001591323533023959493780505794778866888068312890226851025927520644363096134130816820943394674256141036102457401097511472747547289475835955286000998340196169671316856763433814285456719671521572299510445642338263377707273941534815882093090401783691932684488351178591980395432537026335707491521094253272369747115428956043813115217383031687524667145304295683385471319102206339527331547206532343873166980014339789228963306510204830440388893507815458370202000778458386612562879198956744892948181027159021024187568457369032408920024371049966285591376614992348694833210330334128733610473741563455806182766360402921240257953338448961220196095851970148620220418966608951534373930833449807220659009498193214304986461354969466274948214238186382652290071497591365548489727583550012613758376559758868252793189695723691527311354203583529897279853984649945060801990546796622531006850376964056291000618232689959531043987915793397529276419399349787490419760685782294052864136044963679713514841850231548156035094971741846770485028311149284079721043736063860867383847403864630801885370050652598309094847485081886864827568122447607972408707904620700375709820202688047007193261388545638849745514767438639738295893185851264858282365280919890246463475474346838089713563806457949396133490494392818730048208149822927374335849282925242778673609626957621813790136053734868899394970924226038542630677331442657248931269423753614601578478097499112660665833304310036867034528252866598297493133241009184464607208306928863625178906959903435936662893789522771451689440760899363243070245234071220236021496368370106239448777827572136717996806785571358173342610907037240682408874319380882105525808169007593716323802052065999031562931090758692316961731921126786568863422478687051882868065486863464755172866140193524447856932459955350277677911433625630713380928642976317469078073183494994135520580406276849644656232819502958103700417343931857939955169617251090873192733401609293689507305955664956302543652039445188345761539928941325661868761236224480970535230994224546411653857262620430086597513741520624265559633912169912434593693601338118499062373425357755364963681070121175033792212309594241251596460771509862229992697305436037643488575819355909558244451181514932509651271698665344352378420421804457518914023549281860518930873677760176874623905120683746571651207407345277576818953874088609021328470561512861204893860505109382947094951651232652514936845722455269790458597698386304620756505044502603954827083184577431762542602582163474917899179839958420011494880488073626634028651155450554757150680603536487850710356469430486889094582462881493903600251811639121114707362575801432425670583052310147712593599479480145338838510969729273107650922740708659042216850604058237064237286088109235588037356053317674604697098478795815578370815466222817713096198776523276250693726698010596546753120357560412486824445833509677731667609560608338811646348516963424499045346654483163071210117722915004955222482270067141657021476386896436714951765746046562150617378004214402812505695620528936635203487228405525372456430997651740786734344431585291352393866425776172049022569391581900117645884193039164618821868790896181260626266668883916168070870110301623685031741758218751281787126442097111122741641600163412202011165461128974340689070745084306126571137983040063301792897444982291141896825096455069031349517451736647372380954862126149363510996427234770010536313074410798828946497820980931286705926760411404167279930081970957413438173665697039679080344837940767917724449790103254000981393001029272115547185743866069858111599333478362846125602971194648561928602652830707274316889615087137247618154563763652286127801532099600868205393100746134292996731501491029814863753186919558622721088731295519144791575865018958589069777540174675411282189225071130144781696324294250111139736408606564013909923882288131180047751907486826162976085533214814014415925183347507398392914232986335035044940575825421454190127522059886553143385449744124529935135531913938484032761966571325296625508202002904419864330453846850172113093988014343625449611819467255986472054597677889361826285274579056455183927149312749416041483062432544598770967286571688015957441003168641681365439993152990860562294159594748226639537118989311898634036773855824677391058376331397103685576444783240627808812669675162974191802298678220248917273420921986090306690163927984783053018760165497864014911842726465622546548272048368479470588671511322714019255595542012887602858909500081850062077828410722503686180500079973346181160323104853758517012533342827076242215705956842747481496234198034597905150397626304292412493396919419844081288485115828168790842292178897075147583815315781511211718742820892407468599424142869753956098337528256524892229025457293442308197053463616483690173517534445102343588805628520406097393138948795441114731709392593758569607233231836323264114065759028598426819024417352914997194372725463628793906671129484270841028566379022297550216471990841596833520343820082006562185901746681542762413959633211252722226555396268046044836537470710441906298661736222399336087432472152344882086523101974446830897181099084181552067384720547704020336988581574271294878213758254014092298378112149732427661541156928418010281474215329700706077998403940008342506232465029890152939245766995521246660088342372829264994022517269498113787372772391096877518628713954735677017149507959512081240167343246892071645431529022475382784160794180171133545178721623154757403057840989052986459274525062456145130187214613572576471747425686088186458691059844987441241701549002707086505726834534791107094287730270401129644972770804058123674169344416255446964263576300877672067678409458609839110681657237123429838857427431468987197327798568032718801894261785966911017420478316434606998489808784925170741169889389580811231366479192920950055912455048359177382601992615218787280260026857578638796843322993447886255088158478577014282561407454359728912452913490671010741992050258741174412361114063129281350779357788977728524437960528805707847587705839640760101865377282537530419958525494366387983463527122603379426188208836076229846454492648591509355496366186943103950615889995283447121553237164584565585975679294353688374777320091941487197850530361754972074920860619206517195929628143396370658163640598374985174094897203689598318130545110131581489568146986524984640857765875633149920981869101913688298813574612051380514223087867105156135247603380578545165754127695317737264672935794254668654197472909628585044345868067319805845855127459793117116879894489980840396117213959385887574299605879392888220640758289180898300626559014573171657864132550394219791862482799144422908334572118001500003256416515941139685860289994751942736558629688154026208431722398760294213166400697943644555482363161066368383462695510236281801649635994354035051491907370761137642301528300738429825016482228528635702251958573949711158642568960004918948156867648238778124709100571093378626310935187084802434366781484153214968141291478838323296264825629187500332692823497433197198377743437018273857037592288192997995937334465288697182822973670221528209257730121637037529507716487297868065517042513255396799817110330888816688771202870863856166091949304072938886321066211287252899510602261741134608052798302067363356201215598698019351549059740861727972147332835696472106601704288010727189879541693539160072617767970698609157419616199027168581078057052290159273318435893224884747694329873828108601462127093794015544780263954073173960139176449140379031064027885990138734347150290660476277935117331881440857829702615519205907009420401515719304146812970586864163345143269650604296229782164970213638416815456180151872633888407773720135807555437358820012693141003206784288016442981850553479237343701669960784934043428522550231283375646868551417449440038608463326478886898142878226685980012907489671137761582533032956608805730231051194061632062049642262288020211304337952923149751778264673267107214932468040051825330656911741853976504036392162779578005474247719884208848794347521008765989767925710764709894451129215118690505243891976766586296629777605203652858263817025711675263379895919185601172579672731120716512890137766086441404556986410529957214429626610189429886902858729237654858993640489923430831756867751827975238650716810288035020274487127507609498534745742114890476918996943503577284595872332594878610973953619031765856292390301903364518631953181966458962269513849625168560614085687866385956404886649189844524155908590073028301909214958983738123592907223829885260472075567672733357262188166073669736952742910647258027888419867305622272860391482048068092547682959509454294720160251362146228679123753155689039461009025426868319502982670883236919359937268267403656606231332906105482224693323870545589149712431167123525661429794808692971378558649890022862682955222302175171899518902871621630511352269651273139087948701513988216228258716703210230367317093457652541802759328101915936135523847152618296243887257572891769544288419142573696418844950904803694477556816492790890013238603911281616811863300654514348138759282317667095112936598239946644760892626909593859422512501705637931847495613671322382342209771607925748370858809096901496122068497799005806675024149603225049307620869280853639423349560352751911502485989724573860450507564902642194537169644055326222026539031366712180588869476498006835236047811156586714363104394039080806726612425374856374479968834706954509618552250051173589312622779018895439776751827334466256128818941959747475696464638230144719782878138300512787168235146707657264033873939913488948044838738781636029867058892081097796162957805778437754212107624385584096649173056314244302066302401691708644242450093194671863769938597270567274227717309384038975690762539861303187034138636072280027368319926238643312036930527605244924309063007360687900733905850602926412011476051705466452893561274709877005325592134854781309602459075434919764180641839351535486611512319583833729442800699965839883563471462981537659650991809262874311894575493816086321222437721613897912189818135495625327106001455846657100059574653424756143926134598369836404398531474376683381045106509041248076013380767528249495674125090853362467190021172520457271169795850518605794056381721416900785300415777116312541850546819077008847567397058583145692611510398026774226899062144702717972542599605580539332124627193807373774469386187072300449854609374613926114468339592699123973010548224508327468287269365853886491299232889889507116867901929587758542206687055106450257017152008349395511335387519708947933367585228944512717284766759667288694606078120371304149501786588867150334581773902412345067088799847831619457765344862883907890001370393399013307825821899792096254955067356719703515211393572582175835695817849059143358817473445029311169892274551261925568876924144262080056701504324887609009709947604302444491351898002129675760261839750867525170096691954240291550995890446590161733965978096275696930943244050092211495122815974731025333040621295625063315645781512690460010724714319058916954778608692392559481175749936208216344947169353079392248048427145795308631937274158010741146985583448791143516580102546339537997639786374398799345416495953913552223294133724086123544046602453251420924295004317794912296058325558796758194430873074229689355282685186891600140938119705620554258283995188813461151657509748659037617354220129187993865708349926622644730532378782050036763794679225117565845710866139796458747357107219148907126636513322816365759198679885614462612915615553693506629575160815347764701815833597035781820331333653760240777448311327352292866121910019084037363090916990009532690549501067430068629860729969322594344616299674807236773272398066724560240548276878970254560528606255570193009240674423669546148084011590114641770553492853268859356405124038691635296359822600288513275709360957074146601528068985034569340966707516884717763308943003817661880902118113710554243664474561462522468503593203092304030548006778018349828693693313312286082636925387721864173253035239707037435743781959168209423911161579213673207919427089170348283197998551984601651930197040958401113329094535190866043521780336446823725985292178413358375138630172546752497698470824923759493217819896176801090398073300877703279055673555495906557451699530627442863482854261269274417509838548890756892843940114437204607518213049184177774625377605803520973475460191587579363755636507932392163172029466434495575409692126207508898871405125689412653934896591806492541626401940551777908096338291580017034393919626132318638745625740326552903013434173760260462803521010445190948532601898805818914963445232782884773593036632310353490630014054862733686189759268012225701985681724970987638079487683384823811709521958212787031934674876896784634157427855819951242803704982232100381656409404638961701622203469668129859710224659590877125300576576895621171393976885301446159990690223798748399731800906606086499059421241279201910970109902271091475271049896042962308863254517900253952422162441193819148828686608225779582367056591541966551367788385540947436354125518942223133353175656560005351959773147515768150956835982681899967985494145874209744683815101103373799962787906829224903646876954885648208597282642697645369687164035277819786058484745434072272597718248451053033505302270210768071433568111290120437016159235962050294387951543679749752280795752735679018228379218369745889143462283691432124546959089796280133819967031131203741470401800276707514617764619585570754642384800165234343419436602101631133441547717215510019115708346873134061661207828948423466100258378696155967992082468580616571631687733851204241398155086753176746988059932480389226687294904597058101864616701289486139220596015353432462924777517123749348149484703952341309292842860350756439752896300911737275862107004217172248540091207091696472868436004014308768427965052108237327606722095652800476819390372747457180263772654472850288668838757155807697091192076248903458915773948259470300845227329961393667120304509764298464725083508235618961720507000673669140300785495571544459017841750677126172811072560581850275361424350181164926172103700360182743586948081937292294877742381248378218098826907199830780947772544215314641892674820330424356486902349923021939714411810000263808895395226780552406613295676628647456407773331500099364924320518833782463248663206725447123643299002217543085158115325140434155268313899772166128757608293180196102422210204248980373893446027163498073668329590728854039145643809381268748823572557484583055156128438897365377604824973703560812156473381495769498698263232333892737912968088638260440878287679055695381920636905298424420363983123357416202078847017497257678517883534133199095473054045009438369831089115680680915384102459553332656270214711713577662618767527399753057504408849308797611327833107063722474175701181428467628353037240924930292672149429410814806500330845209217100947546715477019161091650805705908891299129301273816695583938574120980707005995304912241929925954868198432142685226336102704463394923125993977677223571906623116372810434269095857206161997119078010417573128417847331269122282671019649615795172043889012566741244769788450561343314602195749128139344588328142636249634156280475498125063778603734864877207353121268432558626540642140715568854732180298140628497976174210888662783388960563972921978245860620621295145862133605250407185004085357923870878141578128627291555177182102878008628045542642293023430109728749628067696654892712897027283539904242390675990520866556267732404220692850910097922141429142232020961623696965058835300808373744008877487915534455589619403379021561107336192488247408210808986252465433680909124959219913249002239054428262398523661137714029095262313388167956464435921245780289187686122033425299126949782135005184052937504921134768428539962470063624984859231321668333208921109595484753749096800833515034691777343763993506039037615592030523205327868264841597117431034670638945878060910850950171902245696616613602736708165144003763482756448370464970790228016050948851665415523160398902259549182192045789408621802115629232035850402013457425954478678756913318027423318430417238565350225260383595884890969060608440850690404801827061093876681781797846805851229866029698887530041494680090491977541071234986852347766004557393716852337038265414287483231637261165260740900819541558121754312790773720914215194898349165929114052865496017567357609204775426136380626149240797826122265357553803961996204050590814069276173194167180573209850941728661145192469149761528826277316689783278681050631994074706436300156529255452765323089170951985990692288194161571131338039014904524229534639165171352202092737341882047183377845365676319181360478803079313963311513193628300571452493300559249873088694126671878891698131915102466196309402848937642150853653294699952545977772249050379749467528892631553032092617679839653115788649733508287587003719729746559004646675413955443524947253138299223867953986340688428276897868724430741801180973878233304346783977919963678674243615294881065612056242588853364230760301481133142587579284053691070807107883718203035377921504721580610760202837228116819651349835274771841859707817276489860340728045130995527661246018047419890873091101318725618025650337618606397949548484509690434647738854846834688995437423279068781137061213319191013261713051280109140909720327147319082763796332492776980941335741946791208177236234831651336590571478151461287658108519855661935763043544045517633868346701117677995166143653748673235275809247608448017760788268413044739760933330835566521639343839950384772739808306924868802139390966799197595394918562670836749928048770963780563097578811929641060348107523572390361921602245953170427142964855372791811958438247332047791923729528725755624844179818422282154264055756045717063652673196794825748521468989448365947320275153521905338136337958947993242424566538644588281067051527235992484772357180361368757863305724326907836552578385980098864936603851525997951732429780998209675808552846235061866437214985958336854036651245217479643857718667756350368170037294890361521770474854442626476174412361951270862653554836131613753237925242312616882157159425935658273601971250706015589980120828728620317476050057683022430176523760180210913823623424990847751900703128554796261162903791969285321743518274529092292889985788661129983927598095772132215813480232227169836889264731346137887445032961086686677875560036187245187170172258814401245724951060214725225588789971130022638778064545418756031136313834599306610469991960783433144530282146791267356704234197306069648750805489293384833569719925260216395565566518888603959856644454864589371405057182769191576995234643399934228956867693008685563535834636420151356785215368873607392780586262436390954446731292180363882713783463440203417215705016371038701108713740339568724480927731317094553387163948452508371150285534849334563066707775700689516601590444945757417921501511596915067812744611051045166531260550669091112345999015342483088326915514626919387536776640692340670278378287408243525151145247798416520335749191027928150876030559849376295503073202788645637683025777479131515409186570473782935719051892417431899502821509146853557816134333423028563867236158399620954514484473761593978802700998646414946972688993379054353376340386957253379639421519871654596178604942566731820970157092965060119187904744168611543610625178645637141971604275657691993868322384634976906156090136808542959194455659755020324496848589264838242557514568089771367081799722344905149213404753236720498269311310536439921353853259421438321188561273531129538823234229250149021828705749232662564734789741910323209607179578963488469785582446371401289684374494545148741418914609159251157517051420250654004912509705543972036681623699508907847145796703859267497351920670647847054833235877500605007985525330206046431183694891554207500460164533490423420208615657442548731266422283535136955152729601956848566880392039267095857673273930406235985785970756982656049595658367769712756880149413515633018244142833128048141183631118914989246859397576516602644148150494983760450907891679980951222245898727791667356974648581792822530321832530461359636900471350300500827427753537606544194779460061465756574424385233168734629906211684081118774846102203686679281339072640282650709676268641270468271718461530451633467447324138507760460040028864941338557644613895306429778160759940561643818537453143958726083790460189128387231379019045572438503069443956265667768257570275215956420670793555546354304630394933498561771917801131516048127490431439193081322968275843656437388994734071081320365131427580644050795972017787579936185157717217953648237942396194871612521248473717576660127877591044122504187708300756772960413834828061191650464900878938909450587066499781327156157946315141785586255948422787411122158104681655865330688220842336944600387045240635131738061867102433098671232163873893220270536932564847857152251867537816602057183255390328635251939809329485492947440259719451069255898793106680279275533448644618789296846657095219168191163559934385301851746455519663532025295976301578933635140553049802496198008435093198951247301105060501664972659348301576557079334663792230970689560642433510275355969622331866148538343147429872081203010467533966304030622206397443832913406371612056276965094241015498208321790664578196358557464495475118772835938342098155961650244749096873785088190352010360194327517695183572492048046743883209100252200032508520809476519681268840525874705901725801818453007705708962097883332183763295738407622693684519362176592910190751043904404411425392819254176549096763939691473623885747190385002609128460016115620297165811906883711743352607203418197798305896038408063868741011307214076744005833857110795986998818331561156017029726821977578568830124495705449329159658991050564114431959178091285824592306242443559437141023008138731400053558033801887372952414743721946993069106166068667361949831019843048696749441443687601310385467974485064546040117133294323408437191337637062298960767979363870565025163268062056699339016673436103665310202871123865755218016881463683649589758911261496023276163021654198927574663547264085426640995222743339989401079660733732744423353023887475431628155632155788631422566246777204507701799760849708458205956752020273456711367524288036795578967709154327523953000634873427751872459756678677091892338608327868231204715894351405007477500037874065330937247304249393035410171750085763622779518493361461710715042161003400004846197571143649259592200971501591518679203304832082316132835867606937998896104229803682603890816556056415914143040760550235525403052322972800820167369871522505403904621538791999473660543815859909572224314955438040520601383533091959059899680046159823301628676273613230470149415897224838538384540878897899614954735318326375679815050733807075426061589447408605761638149818820229260957268040142737466329327379737369076948047353095251040220626297853230520137131547983397548049909874481568065107090866577130342031627181092945239785306317080827152401600188844926787940904831245340404266745473794986086124643355538829842421869104404084966195772300358388488067817490956323381064825638384639667263178475273152168644391688590011183532130947593575458326118313820251031403783760201520848430948337160854651258486305317911821849387390038415542032020065093317045517934051877228097866936846737387939871636103660900199307299286744758405983192394282866708372949383473846258721084155564406648962868438672701523868895514532856187182209260677939823556507299638738354550915644466666884184313146443550149701699253246924685895610565365655593735542231724332833033497960102061205901481950197851920322739840070081276614365311802011198085839171641298919174166298912666268369262122377103424872153546841855391440803284845446352249982135003302127338210871926914114588433351933317891953889437316155003116641077284824848177099033212891366292474812615747989888835267926061498563349970185274113525370984039545007118862972253887831540412308239901636684952925102365196177723793499808834193243933385076773155063881844994160517142920054767212607992104329501757970180654979372680357597468906373249873795118496397345295361373396008550921690059662140444682544237643587030441572035339209248579150661360685219957298868758877978133117592815980929665430231852442624546891128333185069095830516633159625590967109378750631504864674069909502288919322470259361321273397965699759023807483444646452414979779223544558436193610625839871102619345355030172677246892738826372705481250762854047214408863969033292372216114490742974051707581938795589481025000998397352278748566384510499027793922296896378067605078131092716910533633274110895411343048647706931617268351623540465528736360324556576786359080825514766451478006901708841049110835367520748899290949754668611653896607388974976085279592527470577518565757071642629607201512187901164473893996620532213354618153287835883577156472223032730861688656936680293756382659354725572288541495104223786851479891442419828792437736604024654062168693382743852706934316575573296141914575128072382394796861101438973014736201946342893442473508474290393092714808436322342278272197259569756027752435110305573350148754005984396185551973158341513166323920670872742313021768907083670279867863602807181026107109329841698649638709198112016301131574467646833220153154010118329736284526695075866693943449285071675113167631391691526929219883018744451995411777273271655804055347722875886169533648954264453588004055943811576994545536472398587648051555558559331255673351966829021318718545958783027326111285864147414364360891920830602390898100356708101894328025945043588703768003887018708220595210371547747530971751818431611677427352926638388472360242862573071455863683031395702620915088729147567894567793033456805804094603838357385465669217495920172186488285978515078153167230257288741490271840230827103804890422474861008674460184810557679572675980638377451296155548631656419397746875657620124259180210619426319893530807677012500609037653247650599149324392523564810135396076940271552141479219800938207463669238401201138253919775291078659650063373839487853968912007338354301118304005066503583597763955987817118027015505444072658963136241113858560429670554969807373917607297856343875329117538881247775110377296736148810966081205647995105591984025682454616334056989899456494738820059733758468954458985860100293234128561545365535104899402073039821401888281168544769613803349636473395113638790128213945629752769464943207082162761595836169257252421876711452751502828541440844339554978705879503509132576310082096554757860184143886577297238450691837454932242178510571365044753102325675597292058819749847754948201914467926528121126280307620462321013260590395850847148607600726881540795553714084503984177187324415675119967226470650334400954978089362347591513941214217805603463013430989589694800771205462999083367814973791855784351301849130872341779733701963651013103989685964593531778789518811976054321132247840707594782703782202810363097765670491473908349307190781322559464915467037299934787954605233294143486189233441081691078009243463676857374764590157031249958058018945620616043564222550197020151631225286101592860103217504504329574815416195219191706006163362422418971269603731863446728661614055291509234201668643573284627863383661686529826726006012386610216801371544222524751468807413321387486971685238572636166844385043084807426121337400061501518554149125809465645786301733479084255680367644234536691299628580493243854840829225061703340228931478738852214089438142073560509848581232703678377668715748088442038832728159914836878224049273125641890021379000640727945446435152684515156676305376088647113555057925546787353302576065335869349523008766018218451785185107822509446444615630736062875535168669770018813139062350397354815413867580712420879235536155011098598682421990077988757013540672632906866280393122121975182486072509855413370966191358240017215764276040702790904634394607008290861914591838003756470302634999452127935884543642582188872023913143282998132390167908686928947120897774290930032321796374901125769245457832599868487675323223159488918264042013688449785665062105856558851736419961510106447972595261195600469537431348693544958226248344265878312517012021866850723184739261774455452422689818343374975025603613069162585340561021469440423726632556450477526462699214149238226062890889823125882816360066302659684857642097038408947274269683289873753833611774905716343949886681104607048659433279772969744419321884494365419370610010241155480617877652713320283988740019521826752626850161050822647098143215161159391334606162058320009146829920905253722934843221390984196452249022700459830064737960607586538025413182839366788178693224529233060247146386778982217672701501947455583262596818852847459202528471127291818240618580967581541743599519392115851299321972742761294794683490780821210820882023646521757834292034162046864955330333371870709079508560221254382339033425250956890561673910773267105525897709726410388671548070221736011801155029100135889081739138242120151467555140645911890963517752522640910073914294422114222082868302608170213369406234445473262551650425425592757947101314795249111247199467499973795749910760652905371585541797375071450176263301139110812746447544408711676950895740298160640565279259942972982857707137984241731948187928781487100042095927078812144219025347483595149653209544143780463024271745756327897906325717901244365407921433886312871458738391020062557438836229897117781878825198238715789668996884253892714684536484491381688317678906165521514968193474652007804969199394398814719734090729782774033687688506021841332703411206137558500789472394147910576080075507942323524078434556906099865301703995239469901907221951906697030457582313847317781714644823614611663550320708377703226613852243597510709442103427264841581181296720596279024851372185630241136853877355052828937422374473619880913566068432518912359112743824485532100847053715778555748777591157646181098383574162441970532674915207569365453022577023971984123360756188404455349748360630366928064404813784451577211174862600063480741999971191832329092602941662432601713036603515411901671892828089811462928425475013740678476752660680302820994423639086054924761525382658030322001636004544559861787914455847130702752918309368688982694787562680608670429162877968495040981263302532646381171059545818152063721392177919007493838296798570662875100535400933417019541655307637732565204090167936646928137317911837778455543378469098263301909368894361263738322567807170651200667777418684490721737086019097156857449540685969535293910809058717463082530189139999390153497546758881997885029360098118543610870623833661918447034759330842886095397218600641135396203438213832263272127475011288245798625995003579475174408360740981565734513209166591611159766379368615518716054435683566321931123420551816310888241394138332088741699978025580006629547216310370520667270059035445806892660074762008772071405085895364098743329072001252076999693014075422619780326645017638950929135714719921770268410179171820749506133411791363913307479988343877612389465511687526422148616498954476932355762657671929850813000208123575802086388500126895175321255259246388006624921471713700678233359284076902674208213969619599589604818729841467284459045597351665613155226979500377580249676821293123022136442397481208283100525348049317870142569751835211233206032151584789762751638895114743414648099073993783939901862571089132459903096887201616145938190281068887557625682009043374333563495412305014237710907971608856194590520103064788348599897528392611174036891999265458364826416723430015230603949999102583122849519696903222014165399368205625091545799860457223316405571005218803545708377920558352849079521445189057231738366417763349368224653635786973749239487742993844819866237055601901535536253872163244371944133808798973988523113627765812119637190534944907293873594050081995692961381071753956114113700618702041664188277469095809950463688932972859440304448196367919162259523170897844278113518963775890462541109913730611381880738276684956010434986150959632984623711242608317736373480163798334172692463422999679069141899999943629673622092500199920116957930109793548365313105921169137353535775152875411547763706796116118474047309663568256743765281809459227826197373193849212523589826796004876619735553565349943321453711632209903930494525583964706256017555165748347500759324155774360565318327133372138971005627862258815323373034082386638765224805710743446988725716827709289051734879143869689070621323522198848374787978667849018074169185172400168883532002747743539482998257060379632489258760009970914648767776651498411176141985232552941013285802841515681218594079972030568700585638405333530945018456843100264658167388563313624100641634581464424280108156091906838291375116718878207011729851445628759019439598200154708673240079061847197851858595583405523556169341942094549115357493728723980377346340205713159102915485913482878123118840865482629600412338758130398710005930260335875172734090719918183323673999369937826193268676662807206552113149468268754215854183151773828694850024999574678342665459607701496094785836164697378216004847652918431998818196141604546930978618953097708720590612948617511345239744253242450142675542407346961613989830116188650425437518613521821634868243584402956243406972435222258585698577002083955468318883290835361998387454880182190455633009524219964081056227807791049093848672020408105168381670639951331400209488759813634446942853259420235953115451682067657144575432772818223118115920313995485161746656320652372650491649080985772735190811645900347695894223223224945140826173950695424662476318192088773406839661602517479359387423662966030702902524104192143240444058934502304639111674478600233544877272902727156262818196749822468123021656683004368270421260211110525050204990997037100184434997868387517803785612730667088739183102693098584560745221249831455541613174150841640058616417105409931381524035029724735315298716003302965667951640654613085307565979959503233943165435766223827629050605098765453830955419443076667309788908662727944950585617708603425272972556477690757491166354791767999250076013811569249251723275393746068802399217248872955202936576537199526584368268015677631382880323191150279767717022057304150813192518296510043902524082665419183876145401098606252970435026839784333299159171016426312708399575152045879084177854784086414889015735712407591112387344731099442049759674907006187546005424891598998634726542509303124171238461016492415484117108879371844251615648165184833316419176513822249295831258391317474659967390794246486291795862095557697162018826170526207909368779656287500712307819331603499274903456627304362831579620368927597581355544538659546461499094002162360718437025945643593975824152392176442413757737943680546079287896321176066583215020933520367271772797947079522715788648658926575950752706896894946195268210142272991766124146989019714908992790488775217355315197026342606649515673388023126087153289550441913970114109791563120870962188604086029730559695105936967600147533771175908774003438747823506994995974585684981737284549649401633564726407888742449093236837203003222641822741107033162896458275025487396060129858190908138078616118377720872925174241056706038738059419083219788660487601130094119936571896791351063964291685110981378676525336946489415921258673490875302706210317063839444780251005266905430225548404259377758100269228834497241477312587252171460715036710646994657827184659203145971636354661001329911925671696302898745885429324530053170489011917375216890431497831007170510594852944317231390941505418224158970904326235855454103166895157750975254776838784151697413816790923286685878571404906525625739995126965186357660612194104300678168342824973270493116434571471599396302545436063495743940996029928863003583688530100194368912824230650278953050735067217699349195801355723848624759356290484329388158979677322190523605752403202069609357874629884471786754826548210531149226856466256084328230316894824214215485714861768040653963002752350341205365610169999475941574019310146666313780199707076719652978316948602407255641113358338243211476437175574136739305959348282915103096700903024877247443123193668436195303706907343485146352348110756872248223200689509644510916856736278656782429955112409841879858912730902210877912562817839301849875834175769673310347703590569752663801672883378267586478429645448432394130859959224236725005131141198720425507919293471103114321572371981803740053124178682109992315795164413831246334958154719092368292016531719011938087723583536525606822100094069153650501320180111878061201466078940336129353446738161683686012781019152917026155587729991542823116365206721025597303322115488084172733736935077493854213717628549541305906229141860282082714537351049906170876096299449530992873039452846674309963724816827325715751493833743613423520175503497000696138994568492693447628868310240759018757011806163268169905489345448411590967003017984925273285842722874329588069232855139941131714864125849557385505046522646317695581928123295000052228995986196419910616643363256664280596106161241154291295308091909932051599833981271549959328717196392305185656855501788872060358916730115242560582932727811356127254768000123348157201488529433793454922993889715010981919131563292374178475599382855083480343843754256133484110684453599286863467538258627476121241014873934590587748628436265478603043617343709332612347325610414210096817309374422636866822486496838571865134221831956237698788714369904523711256601612706450864059365993836498686807740583178129903997729648991247614779509070523049961630407836589013949423839841685859418519659323737224553244745379791046717831567691582218820300644183830598193257337001170432600852226228826592865303283071346360896554467476553589098841947089379251163216587728348336276328943588470530823205826807888481136273137476227059070258651485920968144259784844530311712839899126953082211040385078664782485139988494183197097760960007538945746362230226107847292719534988945716967574334868365268766888388154312068555102839580599505773565673501750246078660574230800395037468401046420001879461231903391723469223218591055229847397039812979325682105778502426718795660289324399575329473674860921702110021143686548486640959919875339216956374208363710911839924308812361561879755722299931050562468964880219866962861059851254246798792041454164009148622089683824252669910286201031806008146920050989773497414517964376919817832631404413029143189246311202049673704736144943089295302611061444427726911544985827288265180740312830653805379857228835557221142218230430713123275532159565666030653867927162620556508934883691107332895913104146219118070279998609693666838133863753864671977937428092430078684944103612404337218726306876948417348071970592393585376373368604264415052516343065387452278585366950402702547848187296047453783686624565273753837274733574490098694298936006086777345209929945924950627731521968097378442835742270407492045473648514355145377337220830098094321624599627740166343503642752557042078947979756743462380980024565903053670764622871698440971184935741542145776809741219716917952467986266191583657431609017923840383729240821823842996506202913932494072010772646500194946203867619435861523585322755714469633789347379216162333597957220220019534600819933917579567722828817433072420722972202095918382283886272746363534684477006518221100599872448690832117929485537219024408658144938691636146437190244625418512355657260715348056136814349005953476625750025530749849996377401634975407808437444400473167154639914860038702742097344722425764468026090427882670725473225029219642638022869988138609120238751688557063811995235053346988468073007870534332466363563405167996321135226336297952203846318766486915100769509793753017469131940773011559855065963629556591607241358082848104798925833693455387384942257228639434643223149097080508118729681812251824274808699812832821543466869844838839890165504135382814835888266460172507631918150882673362897219485928110362290517350660986385323242348137856619910280474218229432497540392835061958600007317719558586601907887948716835184291432052340004334356620742626442326268286489701630275834357538768585324075089511970461650229149722399429812652384055486221243503108923889804984640906882433791128339582276056909767997254635843936832055236852742923347425022963525189083274433230901481411404725660215989540316644522501005817036643014130222882041717167486904723535844342549812026529369869144929314994122972800124726320072154965503183844966925377699950475467754553087524103672970122963377551446753592744016580353871202081741284922002662367497716309439111138049891003331744843277279424479625578175786695546474452192777097436387204168423766898090927724877430799900098452549985502291155992486593204965235733229994812508125727858083255878497254476844563709604285372496852853578431910037339111309093233782029079280731519789667806573334729193140733078246610328696041387268669534432519449026127234086933496805760207011333456669986957061342777738713885223066337127439480325854073250182973725353420649644335003591381375096363937708411153018592112156773700828584195690553856622334337773186983416303089114420063913747405871869019142657343707446262617535377174327189280656070053068246815930556046242770159000243045438095512854178647136363877199364930504008965452051132398909868480622766643655432528899837806401464479492072087564386124710442297912118088308536631610477881958012341381210585744488549985018425313417533827506154704940378635603447420229483607693877817959749167126882396643211621991681632264577989447639871023525001241656060316821757184822767264106339938388899328876206235055404476477108903347215132684338706448275712142867177229242108536382593305149245062662566711225087160234530457458989751155283933813821387180408555326713864670829398175217621009161817047956625881304903989889174705271258331704252250908888439974848053277822500620321884680039140159376735987843606293466871384977721216602590003607816488417769689999750306353984314832171561333968701528489724323663486818345450955412413293165977014324258864310773968952363016033224133396392010004674635464820885724986357894010355395281087723071297598177532114571503717835660642856331767309456943174508904720723210424202192698679520887119647781991501609779333866948190361605890633285375791545017547717998312330521915976279224695584885608130451751878635070759936063583736052851547041104826397599717631345014249402092955792159339047293666110997007602832906569618029770950317508795211319977651700658529407759203640471924200572291495150594059007587841589413993112558181291227755161471112869257880774610301617352733285337303373925877508959565369799583698918148365651213965563719469004574150148138282264223091358618604622203347500684037880852635622562068340081883514569666291385784712153950760216970701215779167356419437938466162348707795390269051121892824837512760868509912780703375683752577567040784622612682767740286848454172969948112609168678122138305752976713230910214092828336445333822562438497095136107462193944961108621001564496046589813020100812427988265014117163348666229252661134204064816200864061615433493164396491982032187111991739571713883745465964847385377131390533944638564321573141827416115233188488554720245921800833314123966217452863530299612603667696316666758486453053082665799584943086944804603849533179251814221183696193496234865750752975839940890628255048997454696064771220735476010587204846724313539978023859389423885582266168348358954361091367456792834659744511337098760927079753607543673371928867626141224771756564636519819699715871202240419846017023476790543540698909479708428356354931171401519557068305534312384102002387432604072475147687765618297474429174440788944863274649123115850924488574608563212495353127233462991714589704739452431685032820708438237041173989307752673005309993318603926631145912574181402018086520027873748224765139075024278508944064412295847100326862927830881604128203625020517033046000881831870443143648428971680490311751204616287102540275703456416387907031818657690134872539361705882387404704026842803741138332110222774912778902672320997368724875896310072002376164942709132769419218794716739750363157787594691459837876508159963102125182526375859345096152751385997124251576435023744421499932917423206462293159579575338871664005439605798589908075770045575950105979359779600782596645996104043824777600543028845590012162836482462767465543111325264189385367210844342714669232027976090978781254095431369594223867764926805053089086229848845311586798812155399897235288116818369022112272802213263033686096385905582888679699281334111659647511369852931947387822796180942117266058917557866375596813583655120183557232557217465182978336264326600607617727276513146902788661234358195400646387273874978207135726007918015180303326690457831634944653244827107745030266060459821144912033520608763638076428019133929443721409085540378934734008903213421890637338040591467692392783886363162009811355851079280401284147496716098843928362516805630931609146774563826649698876474479633242205742303331249480031638715258970053768512890815614337892823512640673154686732266024453362378732264498716782737147776824101983193164640287498292270060447146986221365147729986872796450430437698325746769098541869815443105076218180697931332565801030653908434420265058019534081819965825748181362981188461805363941048728345953145660004208435113777806965347484807841351541078641826034811795352520197763039191902767852405381676581352212126852808221434867911284311245930442181661993494275075147375053681506154751370833066447229300286279748250003041325923175181039881184612279179151081167285930319435507821117814916903847156366870873694479041463187857446651916140918703449063347516988185927027880103789027713411889670470155178268091212810095377999139910405557158053179690813502296327121474318165926459083006236834527068336043676782318589605891560414603879453805012858412512777782966667986827942090584181006825593976869864275356901192047875472727599018193318554388056183235534156609421123517570187494211668442976209882405594548253000386435500666168832898752764866650942467454015239564452344477083807270813744126968624081414925851452118230518532520109417501170539043922912447919165049531323712175414645344752788811581142211693419534927527499389953877438847199014706167127203085948427564040852702779874266108452346657110300123788550397289731504586768103270956541406021178087454495874410845992641432897584249400284165741715484159743160134524546778616355394661269668825947528595411546725249309011778672037669995996223104581714456210157069432954789135885273299683027807234161448563735985351194207455042373399723061768286764612077710033978845871567509128077985394405500476485791799737073648506541814666388877586300809920420453669787851030232670119048474810994749797242286587811316207274317375029600679745937848353189717260454449707676520219473996551039446192043657238778971617239312150360464724864945734249730435035118510986832353185334920423718760733274321085404526060963298935459974347639025351864778927189965263618558166770547611699588988907844999798844825758357121475056488095854793049672305620659003853069858013621758486203209984045469036251899639606292049289599319375004166239949393079343559617399583680116500520021472764307928280769531996065523674062109592541289860860768752380413703154267792832063809555534794209419036531357987427263293267397145146699769033620950066976184327611567770826184633230186968046025242614828827978824163233084915940601301058899873977924652050185507906098731452727472214992209251651918098706677291100399810401108415481411965361396323935632422805689493759142234786683068106244812521890650876664672897412840800057500243232481285351947312995965537989394769057008933353392009507787699925799161209808754260324405363495841630229147734278617672576523542878857206828190268491738572463549836351307607245104310880915187123571739034982578901474702687911987522588784904549858038126451957695071775197215766130783884107296341005781704105709607004240077817749170032909524817680578611145478679140173207115695143979395113846568714456539480124925814201840995440065900544572002884995907003238771025480427115681204859505106235175784162253479545561848259298925227633796701205272651673620722465630025302653887241528658942430256471928270457446618190779680733138635980260332540797128957228862209595985369742025716091361540610323295328988371549336588311354960925954040973684986475211356129429351254751293623203705366560395550513435914844765039521815818540669161196940534491557342502476239826948220392590132521406655277362874986957611442600473291175951841037110595074050806751876877451249928132478651749093200451045030205778409292370719754094447420153960005043830004818378589042568550914796272438280810189287018551671596763061215277164069748869308248065891065068557743226177000571312186707781544659349694348950413714442008670093833984104075177851507073050474473600998926934822341196588546100415653382816766191717663776178590568744864574890217305055323132955237153544024683431566484481475220437269315813511702671902839118145517810085630319170593207921232692856230049271320654784460491523544896206365879197876708887790161637302787503023148554048053894490571307709224593816354896173758076576957796028933658527694565580084983906339450611558175925544634708606468708253793947277770851492149332800867605576642592986306437337280127340739340446211798416189412049310550920835832464998907530254354384654036549771020730643803775819790145054925950217010952580243713965516160137139702609397803333967913995930653542278266890705172450008802968423990118671118282262468787702559517606906219023285161616265093378327905389198448687558041093010583330823504485818801546056795188240195029375233003426712030388692020912454182530506746626646676601437615222501632442041523088710596965090478548547746396088210541084772765276792711378220521511809855304191229412089405488990922164237830974682099571838517754571252006731641858274157386570958496449345550731897151389196258207204062010893335119297271724617248602208958891641338322513440005155589905811660213151106975907041519001113090318993175322252300071813761991743034913828373319744439996712615082949203125786923968013421246867765696631774683156428608143515416473655223392970914717987905080809609259798472746913908153310019311403939849106776323858307604627534759817138087977343042055181254215178228343018269226803116400163615439830289557688964505849671945677753329887822136377367718515719400034213191472735202434011578394039100782978525727625950517815050844827220318315792936002868641472481204434379423311071361920049381945881145767557043957813608096130348460544270952701715660932204221293677019087488679345006255218609073050746370662225243540773028923857988564618097662814902324563246584635056291530151946551349214350168707251541068869962479865256805533251978847667673607316785964086426835371827221465896214647233453157536390848095643880629128196306457347018311041526891487643850475708047014578965913401489986506431311383074011449028538660307090763294513522586956222029943057839086058283111187209058860555398200493589845619166403911475405234527907409917830144814907555974732526065342931023967059568878149676316075208219403704680382636068161898692082782905297837841662686869242951722003843771036612213333470236832943561038018338816800668885995459332941217272183118602545940292283031354148108804250377887039215180937526453543934766995384508401720979791989822774536057646347071503648145097144559853893454937021609681366174086249248600653820997850618094185482039458767433080986429190733564865434022317881073996150513524307114490086146131523805674488457879080254513799485291862892152277658326647328197036139737938721459741718328250448812762425832182801165830700434999265641240992995004235829888901180540631869068289213349913569582129487145127624893807506141289855834831837926233673825439108937123585398958594467062767177696157073900851135731973829619402111348489804600868861922186970544934089570231104070624125775492886314780498838049253585629794484987227437470609636747704194551947363764324859473814417384994482722818935367814750334422164799922798297381916058422825151704049315804145484500600400609973279102341955410708459443192659150099345244537975794585941025779350030400504742022484568585235038473713921071397705965196690296588715837369557854843108311553124612205588139317463890493754973492312523786095335314169897793585829231085266125702638047628486639147045504960270783154547887258875453770617478277990885908593837284802884664959456687997841517772269107194492502494504392791987732190475810700520268734080134706604627223993735881358369396422638973281454283505746600715155625181498297484377256265409384088459579309905889139725001486699977761789730998188540781222385038436332974025813268471195774337877152711033713454516004197520274857543625340796335604857784488742180272109904359157968914943299886342536063747231921457592590508842861742597281957769774092679688673884641327425281997576678078293927297527315915058472757000300368243241744553205529703342278539648635406535300638545329948934341327322608590384530272514120929763108416502582555222037523066766195584782405441799147516507558199721260048191692092420584860571664965031124006387562106608824084232480944467372531660259857931747739083800211976260451924761392884945736125282266084204517476878166006601437705389971718146809990947625527004106249109800898973013499510482233291159319960390660155823877349266037191062156225355372046295711482718345840315102600977510563325799942680492751928570570600132656365594209938519077421966290409294751149048312038542277313985387149669050799613400828037826195113307960379755950944880666798939167563559112533708766126439335157258512677178355025545593554944026074434969561240533285776832777031629182138284821620237608453990101537977100040833659051500267459946067166280042944802499505402945161448498584167517167216003717420957889087827769075055448244705066643398013366367101134069014451030790506232271942219763492767296604945080910712617450126224580454582493023254572436916140131130369131281280254193020333773862273002190590239418927886920691463657748551853580197357756113948634428168159809357485464370419150670317080135365668091802622233866294221455180550479734498710798546536651617021710429479024871930320085253497596167634640410096824931006780102540973126888202726402904238159095508722112751090209157369363452466957258695269576498875983303950742044365029929322214402238364368492131624869304751004048346371401643778010036878192230292756378368614148055024409683926346793894422297748406619705293836645446989798087708821297324444025557339739056009917057543306592080322772570577265165205430123831207859198671589494752111994219574967602204564415875995593003632410644590783014977323659734992766365467608877722517239190778792537506871727266095799176917618150994284476665582283126349109691872521626868558952872529455765967767673418168859718111191349845663827610274086466889079162707119678154898655605233889632883972897413258221578469610935415598476076011864439331955851400808436413652759874760475072531660155495137601331303250414569614250082704034330740757240061692583601730135433992972506586963606451607479193857154376967676742891432337641843568278003755901347979366782739808426005105304875940379909601397520418809097378739473850382951841346532903384892506258044860900534633854625528694051719601191896850890212869233629752282442695520721394511683969294753336125949957641496665039349047589104030370430413803808526547768179355858669570976202596389898914327007402769833595035542130689003108557568534334924700739432775662111701343901065382477744240029155236676603431041715519125524517566081916146618247519437073135978394984967601968464771189617561730620090517997944910671450284997577961931014633376571446078019266916653139077795689094385989893034072834453874074560530691879904020354874027264046094419803770600545161719424604973757744076046119497565758245163104606119223296598138309857734354723563899940969242089384238765826543859193143375886814042112361153691348563518602007598128408582337758686273502698403137600409907579867886173059103833107663690010296365742000839358333099214095973705101040195838022343861339596230688562396427082726768224989390859622592696168194882327486204983619835032141552589416334530670461318189045532286203682267254315769121587764064150226039249715555550773972448798658009565669597737647739033292104424855966451844194921769790706099916684588271049772640314953311503826165535316539024916854492705816484692731713123948473738070655033918909285570086021465567311356652075227400848258779614763477460087872820976685686352848109262210111117880630500824952084104609052496625716782678055759938977386098845842912330083404451912413399715367671621343034168920290903116523293905677623424566665415491344864802925616843125422847117255619644324203972761113550299065135879870231547908192928746119602134844683030367720650560203565474709310721108281122757168939872816489266410778171696627847760511088648855397967657822011176105019739782546457987931993754125860594926685646452439188744672258998501912564193327965846007653749914535563454044114365912997665115628119873187503211834390252283062185309852854646296193909515427419623104500379493680025168599832691528928732156703559947865616387027988071431130059164498744593616994771496413060144639266551000877998983788544117469267008871954909821457801609352033646165616598321374167158755159283285694369189836951029787310830555999766931346945531853792152006273042748555629843891845299825978063877351325701296503291538132820491282990820452136235308402742619068921897480012628752811929561060014191151216223987233572730092222379876716615790771154068713278190198302899696945281360234071685082580642561911431022473536089021045994376955158733081720780300728232598024878455328685459123622383919764237954967270666372315234525763435453229383415913393484754038054214424472662009351982254408374918897278944737636099885235855072985647346000667954018168917054976243254388843433613127264712718840830663139230228657890558279565029719793765895737724817997698429947536598672928125193901852047819554582833906797472615055626736004565782054361721910166703744963715181969695223761864041709195893281025159898296173012110411902531192358714230629515426668378821409977498908019489447997254876613281297196299926687089047288586428545739481511269622326913262818939327925069059925998068827250177713582673366344241136408950544035505999199328166916350590277251883612833647038955771375664328907101425812436635786483035433423643796257337766392499362838184269759155202667299553246669147355543350590485580765897540676804028282939008365529347240993222137360899423150466376069781074596628476677170529956431370373342545417785894134389961121091933482999050931384833021935600984578142652163907855991101049428367117241822572291564915986685832913397389425449104731520376088193567653638536321889206303820280404425944788975763098949107778219336184101267260786823322763884671195156598352143977162849840900565688157347925926140143390077016995583377166689655063587946014753876227026900289222500456896781033561138700258797153042274474701026824563149187263185308337200335685614567646280791261235252658718697680407218278632671406227403021485106485496419186390326642536195366065849262465890014492116566923238444861522221413067565882214247424133695880344915542061950467935211652774611728667822616258579353099758947583593353450129950389588792944653995152080246006364369365692756207014450228915447164210101826375485344505308435339583548292590539156854133423482639989748557667661551408116878988418584793034030572630363269404522218608899927514316005035227833162599933421296655910597021327962545132262581963050867179171279513007992843884708247088590724974815325196053001579551550420274321291044798928298843790941271413754847538693323424712430639943573526646707472067767991215227864956479353210940424359180200430131419198792106041188419599847402312294749840687206750586598090674555458711757147554446659238783709315922518899286863097921883349754895438066206327977084776947652926549125130966733136254464173679748657348994949630188216170212728609102815891103036994060094276743514914119197575180113937333932563334121957997469639087804547843048742922636537206557444185438761508533589295947777446079102613063303644151004015045192068618578910970096039676006061767746699049519388421145059480132968058335300202965783572979508583969066203400880821927380106765992722101930348612564377190723627079454651134837726047378800216376268941433094802264604472917791980025667328574621658431674847543767177444948194812127095095318120629300686805316454690596122481276939367115694328797603052631463095784260995904438918996358309825302494003761493427678901993792792081026909504642767509274695398677808116104094853828839595344023906878489521937965281592691319165154424570274982502386226245975678803106326739733615425442499819540428848401944661484698908429559166891300228657508080751344668611838087603334915733799735004652817939104703391885029662655859814674155455666866504806155716876620544654636717797461872893634486094057144865554057284299324539135840516106036545264155209338410719256445584567171452888731852385545989858806077113961155808331423239731950576673571739418127566101007735765927353602380419330076155460823515829442503342726793813559572070414726115811411131533175779283517836136198998234421883898129895979888330962176811664525078820974944938849758151349456090390764201760462373852966326575767075006543237505868243947858018199638777396251285401740597010816210870858825696451746076565553198037291712023257283618888034189294386815161645865823040080303443833035930657209118142031350330519721451422815597353996347890125132434353275880169327881815341205555766220287826433333884550047914707677361636010519070019827857684698209498797474145350494419332168366938511646741208009012831431022388942927593936340193684984827220489175660051423730884788028702688274790916518956326710287972657299078921925395226390205845549567796476963502673606050724279594827789021520093481740503505465527893989447173393244825217689853289130971756738000370519037442800608607225343670544316074437471099772900048654829836217283470349504645746249858258533311160096070886391716766235020691212534242000790349054159309460054350665973179354164864916596699471855424082225409240642518173999341615941584482528845365751793231379756351191809114245467569516487331960512444050813741368252794549939180022282782619772567951844840221367508409132427605879154176111979772242564684363890811896652948029728691606641320135439159716990480485848320046296425396288864739350092209128245856785664986235537791132836695919829331299922406928060140445514393960990465468579293684264097698009361800003626133651708159578085496874440231120769474227326878971306860823108406648973189651954265749090337389444998392304606555725869206220286785405667091368515810454491468427606869680229714606326535508791071694775319723152420651538750763096125655227806854492087739712527868984467079246170788804478757746480356306554062097015104822413924531339895714625230821526145042959259958493111205184467215561619058820239155068311971039150617632832097587503679114511788704425825949818164636603990900711574419641248006312375710069893645567194350703349009957971067995574853551518840887369054429960537110136962059706941215584761414107200406233553344824693170161884298587134332471067170448266609911324286345287159647672633907034738588041487242223465455242516002694166857050992530559484059581482599559339202818163717121149922485652624129627368938386159941419676027715680975281468639752060616182908141411896260304690886920397418255175748700164403419076575056505469289285574507104921732696109941273545644507128240536681473844603349490120807436883603845048742152301784341211527842110149532555928446475316318007118349190515497234509519965841831786918273334021022014000533131865857457881797585819666323580956781650971292975499617627353086410707017036566615688876409121463881546077082198932197153435293362883142540102681625690309377052461265041320379777277654991012335944794633643359883521273770782089572753342266059670731392269526650118560383879562629913138698382734026468317423700223343970695659385361183109303325954719391282395578175396113835789462692509032952728669373983519146969076076301766773986447257511227439186678266850268768891358208706515686702782858588687848813659743016163062142468894758890076006051044811269740711976762797040427172299801304045943248051873229671886993962104067081038212638250372824490811373096076255045812973053507954861268215603582904732962534637926966250482501356299936065557450594679041386129802462136560632214674688366806492403988202432809394851266070683080254480342516600181339558633433395043363600573263679319112828224561611395166338789944627469977288897965963783411009202881310783256083693822631577086727308516963143710556092572567954142626451856023646567277262930272940462816975334171410032072491303480274779304827293114691936810548104471420793374839335594734329713323965791350836658380894362169954355264310412501888081197459566348570222353497782804518281439141260299241631247051793722281634974173187026017599407976056178825166796191531121852385640883932822137719729816873585854010355763485906567096676094451870927641680742652059333292496626979798028767012664423591142802014166108886064633384350409108248409443097814819685884737840304063845384402417254688404909591700821425332225799492014219086265131960293877858895047726668983371808975498139066977223834048146546860427666115249142320522896239951360250321766509080059015251973804750413909108896718514381610937144966267799047095636759493601499318851678670810681953835177282305111113027453130915840046997138504172389647334286936204354575559201838484257637567656127392655627319735753194797747777895622548919302259206339225656390979723075873392897164514090173176781864940410499278374890325680633000560587454022195798307859224821419411158935794044684443216923236799722859788920634497125740717748038121895530651799407782856662211704761573411365765920386167895416597281127386548301383459349856882952589830117211029242285579835817533931059533451638345195186320642343371352078789659368872976186244351084335118174453041263103361250291667068844446103744672452653066446758075082613399531132774281859022016576943830085941736984598411979997379623473170534402918710943461653523529705008237613180283752372785710699286113412473971348802640090406381865154821980719659789606325377857782660833074422172089624412471732623550326977087853039889364606670816444783394217282522738586818666298795992091851678627897572379271377209963658600549589002586954657023380030251621495493308472336101881420071374011915312175334883321986221605246905313922278061516058568603678521890488183539654234537007794266841655014341529296159626412315816744156088693032562494969478160153286907450768069476860002454376598830795274420859623843183315501611547169885075582909656408598562022534249114244649205560460468737931398728037145093053303230474276009874642854638914677023655371267935734604093965298552645207444101451896713936879490840207712555441895558724912271756656837064867523974140557701425843898834028865470975051081439302821982524238825544174047452426118340280884517603671942739243857714881391799410555646850797809587924758279125423287666461466584345630693178611197040362169068889427801080091114227072495930045072495872235169936262261042718839429103420209107551606388809236514618681873409482200781862326466622233239273620011918530497229158127896759683451641814741765380881363935721121616084705376208796009583780868145080668992951740341909416051240934696220800923253355530146640336314896390115683289150371315715391543457661253379650186359241184995692792872722104385435774840394416866417293484649508327378256072529142114604249547488210539942653897316909075659055228122552515682581961953081892508987459786651098818844893604800912653093636350548776509296843432013500049530037026292411195092397655117444561915051196765647616860241532356865575723734547101595453718934391099103088144647688671557867463073225016733542309389707771543867063635358006463931629285508400433211682416803339857450237196076813389347808211681761807574175935128548723009889306376652360298985255417535863690147009616954797188746652957951530037194307495823330287025683944349163869617391498668302924416677486680481899372608438526293205680445247678571866787454062046837277742131987500750705365706058883380461097211597838891525278745392402512550050846426511807401064285365868176120462838139768614804706153728706616714739742155095500598857761429678714442170846196340959322753171345911475647554121509640430637144461469731385822794880092002272514647875515300923985297422000061685740525809169567575297410252693047294710921313497738365780495561047024677775809300180253349242829286623802838395570873109547584906235485923800627631487544961247916455144985697926276134558555945962535218993506410878225398133492347704405046316601550565244320368727085509344270427436317789972067170153001373227534702121468639382532360307405872499258353113150827101805303929386754369204224986912933302929637093831272351652685974158005701165883056233283792683208103068040589751107056840605174550681799551693432961658155515982183952928552776591947492258396829738404129591908933581742809159261938035240457045204198818841713294968236235770031592972539862577294575538672924320953498244168200945514102025555512988139226282951839887753068865149571611651587926397358877748350809433182192161211004776091335155676444923851309882873576166794636664384796218957191800378194407672652230353157094308826374939537423328005359123429751758258297832036330976475894399784628792603589656114112495896747165376992864503317546278985896927156472554020111809005300725400066421112617682379984710987164755007207507834026481763525055094430620887751454357053981028058638675768890323847480842314907856927631081002934715369657813432638083268140490397290338815213562481862941374555654468434628444866700322934795470059255805858874406095327446275186850293423240111822599538448385304957467201121733085888874052757193942485509957394595224730641341918659112528800305141448501549646982838198942960989802691304390207726569685482412610200620364098957063050232561019014356008428760596965556446995223572412229274666796515512292160566501413345822000824402700687404237909642856467007874319133295213066320708693513726190672380391404451915595119037875285158982014302295488833078675923194570588387653958015215827293753423745985911999677750745625507439668275435853317717398351016623482966900197270079547958020507169120381551033033456264921698283461234580161160406745161819134454896478324698076514363234290305974118045387295409618739885517520808829812017015191927807520247905320402515996626083740117307927727735447180728364233303755441030295631860739203417427476698704611815996262907855817290418584212760274791639204291422175858463827853373812775979488039542846110876242458559981496158620911896056870844034460939583925595703480006185714041184479024783701787904044284495998811362324340462164603638783398060724119255400029202598901920144685788944677829422425740330287151856622670092636858009814394997153175777809295067108565017199152602378839600549063683858405687740419081398681165896957083038955931743906424330772654423672975774286561293167226377441078622183795637270766929210273147886970793505338395848381027921415853191141639532982603588210673938708757725617193615210842472957136111727844960728563216742571999288809629399935935681747242553210711689758724291079371907158390551343981494946783313018829531772854876036888937464808654508080746532897717262888244483881616970033938502724029425061615561644980843381264307985057725181780754643969943949629553805929434971990623799375114281796600999146864236075338180553618653361711753486687622984940320503258125561828203966286345279140030865177193718065227541350066564826493643784893250671353746163502062734109690579186460785492796871770340632074766363546738358588103622191488405896531319831732319100948795849875102502885458305658365487820856521884020075490338955754494749423118027872402299396129664021753555683045478142551620241865252952687153341859706963140669049011209067192337733098504073265898280251674577809152321873786962574662102490060517003541936730347515162808172544793070283043220681419747058779125942466458600415989556280018146543864408787211434537220988868002118059690133271169156448205932340927580449632867381227889619509936728824879445296562557463385674255035040743572218097388933877685904835882371239953388199273253626011316065782768194769367683589332745891101109265887339428419795121542227286888080623279146919328107521189247212106065115909371827909331320774599464031667593845550888497044759026730300574373691708326804970305784266030337899142364886279765842164405146728107699146549065958059321792662063069084387459186273425025807857127534726289808521007268442787162317362418234913475028143483541168700795054641362635205051924562314133727696013244756768925918767096932546478231055455908491024862520257466954727858307203868056602696963311246015483033314289145892595908259623551828773049161171406555920513369850416177275150536479981794565810995921322706528454513762580342464824586404956228501689256314936740718929865705141031757848900419974565757878975662920717372408997482828354480530512277689741144251619097620387339760707152098070391143902596439529030675067502611347487902504943967626939028495942774048297573829211048154006910506802535144559385577430885447750185106605084998433653349697462355356163625458628925259424590313030638606521924457023502056050346050523058026967874422548815772620695559809756275860172036697480975825582474110522632275561617406599022199517037523856364531504287157993741834177344424533865379020364541919357594919403712508789251147028000308512530335380980805165881947791550832827537791198332985522275498326161626855715882329874093012626076792928640396154896701114359755679133766878631624661871992127686576429508598405398791980501238568934116647351284963266535274959632021969920639059772068312154915394802976497176153497777250301448952130452115459737100675941034957382147184147025401714589467744301449346359122002949700303611230355675205526564258261963016256581471244528231791904551038294525585769775333497327422548556128106668995524872086034397131522422832940561059374190043698232996319536942793400374333283639123628528018884353469873345582694930259589519084790333700449515816062462045536941079464084699114888422491595947657781512777796684627358760579830717550326847884228818191078516612828720340402481410049966812372947797942875147074861228798419839444089072309994538889556660239450633435934344138089323536932379192443927979706392444606465130283033433555292138242586053920360740610479004747274086992943824141158236935122969099998490739192145820741867036189280213063746699299867230561926618795390582331790512098046698082217365841728782692469264382806062527379914978904625457446262465813395721690249006080057129978600666794581132406632652979607495961661249106793344097958960997884317229970773906887180569306028080362462222663812865222218362261053906475753031464650251933596035409870283914566490653731770080360648217184892179239330834444782858762777379339902408758078552511216873986550754674448334168516529789396471502825012988867235084986091241148736531288167671525373760996328584061032281261975047323757391148275096043346315400330577431779759240612507373548759772817296939582908658536507927595750842894959363319735409197285348928599379866391632597844059007674335777183018634598308972111328478311412073759419895020113592272235409355897852158326433640176611299953121039589783100346266034448543773880380931936139478729670603890350220041762931068654466504809069425240553517514525097562378403613109222499783135060994330372482452743339137837175806543371070337266722844989720183728098524071270002638102912909160187440614351505396090095727221083567544403340990837147991602950119714691007214848143683354729399433763526463838583994178171575612069220056965360853028571719263819221255682579720682483156259635828123588015195157004511623841805061237456927811354695546111652520961493355966502673813916453059539271652381378085326715326803510912219182264866677846258171940040921130955348790505113901590716712597580968843286259421997621318128481605014182849327941392937353354166372138027868115314089766664385474078991769092001674614538847843107359169694142937072596904012271631521783560103428509910272630314380770428056555845903643695773396231999067571241440569890433353132110497818472847971246164194275429231695899630184600317525676649319350165717532995861992172165305180448576467849506697783220372788567369449456361899984829082003286857094126207134470237693361565392770344754541931610289338568366549726744925895623504634353579845796463325779271242886001712789720162957408256379615414204605567135974798257769370579006519115265800419155896077425870284997989690831672444342005808079741779283113703355691214421941349472135123649646420901493654776458619943815960022942488917930971711041827665298219836380389965134229004999194167986836527068877914481227970268784839817185446688534536488982665307531911194201868611604445722821357875273271110609919460183295688240142512155482878319082316918822946030875628136818297580205083755482486967145178496785196926955163827838780657850991928012501250452149895032970918602221267627768578832179839960778789627738329022762133596293248713518822698887768160256877088917313341592631558625314794641550480287327924924434390158543444924709354548389490543322862111753002149293601393659350649017029556800489171860145217496462015991333289933044877644231094169519726162669335850313497504739282527981757662122444695941971538579312118093276672797352738460006883867629848788982152405940168930940349906594340749306212176134011054412590675473629742316755876994853145642834416187820055910981620402384788916849801716664654889175831658267734902169049498956286633047016970292395356385719288172525369362337829505057527414407050114631279210839301702538426391761937168565784656855985085774802672390718213523306477447664507999903678684414839589061273749565915452682729586900943877746789100376984114810554545144951485386707212603712256544080853001182237047528503851112079520738063828909066771155043070371643540708052645221771644509481860047035989632595688801275928981893298992343081897527740435507843476788907974574587911576714728182531348576427926088392150821499437169069258359894838125315399857603134031979828109941921870878187714220420119957067799765986201483045371050508612594438132758602855760569600595827596912835079802966600650993171074887753851226714548680451329884305986135704949910200988781566570986591005942497257926897976936924649423854907402924867971876358317132163418498574904333541977320290154134673667908154477002859555636893636121534988114977595312332279686850482475939218463285741773334329999030275626268064390318286414742513975262457286997539744719345999017226664698672854807728091792238850722363817272234750121909011970829733119515620115143071519481197296062251708795863824485584620327736503019910419128196624017786427244835898655100453126610508742114733449226897169246613420302842005469134102581508861102374152953334718797130975344851921097481011978091376426983000823551627511680877573747464648873280069929758923160633902434510208388658100366785901480930807167411860817561513897895482683656499853929642576917321457297386573215240208919477081528412721262738369574679289554558985918937222033995169764837731334428340669725165743967409887151705495315566014229942416025167740007802162517226524765208538605103349294218886193379468269293942295716834349987010902620130878911359941959171819168721717317532985410242079535619194907604808262199636461156739997719354193956021248726090664468623797277453988881631197757132103478071465927580922525138843752409285949832477436430940328518685925510936977337006583737007172691047901670306678933993527390486790480406969382338614730513380832481048826955913255205997126129761887176353262866241234113225789433240703187923666793099536898453024135778722113661656202547051763228340675969805183629803710025923231228426229922111800019685005968487757847941024375662003194041048980231206398806236572378567930837437937206573230680097210250113388403643007415415770713422201480722154090283501981847616072451878068968026856174066066682966044156767008638451273815744916311280048962255095490697494496542930730689592091304857986388380536976945975648164082310736069205880571752680972142388710597958792717399116219085356124865282386896997642377909862021796933856187404662041314722862836926341730192038147879194768693408511990946728352730134524249535364699506456277254705719999821121826488469011658886380598282028092574270295623560700513996876336839487817165004863199351503937218418413790654005401063974527497759450767397091918349304501432751155067369355504742143398178815237872142393644815194192666512372707106631321765919699503763958748160018202601809521271967006703604633782758732915731889777752682224845833205288160220700037931367442939903500923714964810539905046676142063017850973966158508440097431831365221512665852939455231660191588369602613613454440886966811352174380738711970449832195614917451525228601769069763017612804928780132725161827087766267779982370945718764128720547553660751240875591360799611137768496891860229574166933737914668624577519762045295926080250713529027119502061486576078250955781237815362484540564459025633240468262042878147063940607033984765880124208772550994338021567476961517188010431199279722315675259447782152781196457591926244708373588736323276752625044656837531321610545059194479614808647511385276489747917483329034252137436225385585452501469240630708385565444571480767266103824982399978242551357357959842892062702680212901041800004365668623907834819245455615000207247635056009440978261995353819811846597761911216342020701379594699090991739290956578009940905550786212923821655314337544298174496205984512362899699086035752719633262987933813477638420999645874387885002740599870548431524965913858613161600499883259154691999495033665024324642648186080125889695824340566758769881472297174180391741798678951203117956595788533638020102567953575264088635821633061063579760353471839045407532074579434412297495350275304674368180602085667166582106457970002928337441254169100232230943798306170093973271863608293241013346408848520727605629945938826310310478649509563404088356567692964564229453340199917922223093184467579649601868965239022142429914808953339833325035084060120389731894892122092268362808200323011786717390005036797599503764767982267466813151281803068053407452066438313081797045560621802612947962505063604743344889833065429854863380008547910882833823030298240182500135270689062850118731084556909454794594352392214588457112770061462319089429781854285808534666238976122097038315183466068794535765315253878939040297706691071452660539129948628814584694742512266901658952127168071347553662738941859544618178402091145937919837346279664946501481625479448785057825986930952400406233264314644068295647891827384844635990335455617812866356535163973793075376721473261123704203815313137779761719669690710046829016860418493851109078922555543396163249897164302725141070542707306785733837735428497554618567222414398937412121528132349156919680397071989466341517050497185277840217387041715072984650812477073733421211542805170677676702780407933442548903729016324555257609694466519615463320357215284378096114301772554287403551890846722228537438148954420563168701992511802683640588301157422261970435361251767240866074992582115119683664664973369661829865246790122469189809740799913895720586408270287084941495875547017118350373111679294535411215265634580307435712510528179234382471009091835108641870439655993836720302159754290512334171817091091999945887583975167547186413014432496849400291423639960118861120547510367118621014417106208739907137870195246635728829437273514826365718920555503827727767773891984984929687306848361259520093290904898059215135983343993612055543970327349617234447218566630955048434292301721423890283798678829196391773894362788944012588033761163383099376925005239776860693809987287044370517584935125942953986795029211521943213286980251545608604684257558217454812975084156342512188357269017437598605540228197954296030873897792163859119504842211153161758511163843929572337162802346272812127684076644621657319116472181536425183181324069255029462522299160806769661893108444540892475239995710312719765618237267310075000412229386110574680549570434598593677101719802150558577513978676738640043796498074943834045171506343048281361316122586989339521897751988476822120198446060347167470632878441780244024706559913684478733597574965655089377423155133493468339743235801466189767312140288543593910505991994017906265845678226772076145025146542795346560970925701134003029875862723056283185115227314600438700720420781885476960909567396362877039800511339073824122765252321637816435664798195917913938726594257634880655360235867630888895978652741999746656914800673880676020236039703159221821375744927215234512939430557225224285856294423189115320912607221232313127023694426281496492911395665778145692663761075606091567342987076344624038750560961442615287758997937753090977064985859695337899829501566931809087259406788533946424433953709067470712818917464039091873229640634821936426624596827039848249908487207846780154681815166446569761156094596012428576351936087929372657264249927278181736893865045324533118770569157737669036382779501621884560983035052862714040873519126245368620819672283595204235198331605655654775432015100495498537256620707033880386349913033482401769172108506078584113878917755671230336903406275540849254135261998804433616623661848370456193607621715624583246318513985341817426700714249598642609584407771673393203694353267751966371524723478674432224367024631658304188289874766736936127295487258409599848874853589648725309158040664161722457074122667426301404209776506873172405681914817622415497903696041444957288311796004059230135725151243981418720919812047573365261143655472037362184868028276377646441464449826353785265328046615758073707287044011748805120042929499522398082183510684073831553981331691331831004298546044363573815802847190651424257667248248170873532884882069811955245261978405024245498883262660967192793637108475109206693689730064159371900761062458813334221771975025816772053974581549359131702104262901285238956060689606536199008157848747845193251125509566967295493688988472813432046132169164131699061434059743347414009543448469115898073525879115428228540609803701426188167272744268740809539014264100007555805140003257891546312129462230509617970872554188668824387334148618095842088865767076301256216891858825318585660028227509682489796602623051472982338837069113935674422021333835179550866904065222737708858581355292466809943921878966341396885883924923150683090606635757471377477031405235942795697803509388739724359374267957970532478950630196649821037881813460317028209271733961977552400632751712275557594618751942774565161048689703626567319339730662144595641909842922716348374678205137468349404412648975155125193985044828945704966101915287567968458442136789539541336323369383025088316473039420971080171623096526297711630197787750333843949831207995050662437136813722599409376071696339430167501850663466731985058721893061724307908135704590698802095838087243191310139469256017913662600132625687977716850930108356968006270080002276808650673168231420320150358064968432798901359845128358310145258703993723095157834582208555661723049995150595820489241202917323195760890716455250079615366401945694291525681281069505263467221287048339385168921769588391866249414389543922409750886096833128298849387477642626498294134337143566987459385749140798135977502672313605525983891909929611168351550239221732413250183182316663963780928096775699105279781835259559821337298928360421192477260288963225076105651446632466353550542310371244073028276949569071236191144411039232455951756091523442273105125309334922867848832078231860485294218437300993762581615577487079826483142578302117069467456963408228092947119077988021723191072334704648101782050978564602328375335255117970243003955250505426805587660372893296309537500498897649540061607393838209558920388757938358544760112878924213675699456952572479001980958499263118518934873518175439553641076052314060996728219330347457325463447034604268641128289222005148004679412902657496097918228775685829460373936959899546346257882312418904779467153105604890215824572513111214902731286109891718528982142095746811670391997525083469219157837166459773769786608682692061723823430733988607209554528197890040302751816330541880022177847944621038648844680188510916562437669448355084990313952201446468675870398744189685381104203630715763427379028983512195038593668979617882679725562228935383553379197110134408120090578713913381908168705289306447120565676502246504429320383038167410747898745652785563924005949355525763447568173635171638052069598333791867644447533214616776381004715536277431059701159921949513856268330250975492963031310221820755475469277149384004868704604745336234432717238272002119593700953312678676470705012096566854365592731109831629162864568285386799743180823843843458610153884516562606711632594555474247967952199592955840338385801861338475422147835449773773079596868946980908641664063775912382503016318821801474638923791708883825058522670394809880359932850495199938478243569176416240505148044378749691467668794715581403058046106411315060236017273789175406744897166057243211822234410991436102611983542472584655170207816809769833478365171603363962116368334457898969154970071790370842787216345756715715346855983212839679296038364644251420626255230771989218618729299470299822203480228831874985451138935868139537547367994085797460865556355693016362998111962041074133250006687090815618409461299700275059244650252104881114341845784024450878291953601942853223966122855068959900158672034001864729325373417395378862943950393596610729801349341434176152017922793190311024758787223976331961066698785428733416102071738465830427557951356223856915560637903190322749989616480804455861149036933627870713463978736776190547065318098621352069520138366127705972787379728837220978517221737989385872743813735523422040191059207822767409270254451608886934227447277207618718416546124175757106589638557430368205957834393436529773480145279184251981801956118418147266725607233208402649099630420066744597953364732993118475303021240403345181784737694422533922821874490156878569494868487813774678771962783580098297029827776283905582999106795828392424325400965516401711680659918079989080726994715513662187938390699147215982984680052991366307324620733881835297321367138337918357715273199456737523709088873058407944078949812077925474447005745803663938451375731240160335032981310850771952818782939456896822202917355817366583893966614545098415413295471377738296501222739571845690211264403177533905674446639216035744064770763319707230909691424959002448852994219809645806132900761429303500055633261973993438878924270764530613582322178451553177300005088932686619613208422607153524799822292562953371657626744395571345805135012910816639195692932630136337711275156971784535416203210997381940682617589547639762023655476127096378787540797533599835989767323636204441875937626336993302002555562180017291452792112578591007513087230560070037549713508182855074846177472408786210529349697650520441854467125935116963672798345949978380866843120132220504803281830940938116439010273934826431244068143348472903520780149365028435426144532765101698488162771773509971971542571306572521518161531364226040337023374902398335516268453204976357690438012058001046305666685588251399347670692858334804645476005551368579648607928272323077919461750402238503215587113610471366491049861249959261178936164034589297684488413941464056514279827490558895500560244874962651812369358600331875919777994792171999756710863945747519314114418272115095376351854552102093441282986629598201238287330512661925395136534139062435472513697783275845041384599560685989521795808590174860863731947173655950194816340812438634029550647560197791594176979510720608710086647005627254085728021320804738146061259494450234574511209556595979506996457178685615204629017440740628280381129190303506470199559454873110637585692134936075447745922018251509106903846774210580534319359656169933633429616215391351859183132733240198975079897441330939614612856150858283921084286117295583071501652072258119986381535657252564367886681954459382093224635340964379043279292909962460462486094151197849495857163019682176127583471036637049046894655155373712624260311008788894619073258931189605308557897677994656339249199577847598278408943309547391702933073589235475134967943444100412342736872064963826003408897916439351679187781476433529108391954522388405264063890031810627410942272455954240737530882391933412378724426200807967618148345052477986661729769914566432656032509756710188577303431103739620228403060261583655360131831410081767770445104122247704367278521885335751485301736526038685116002973162262221265630275979791129293769562946960157134017314379663662225898000373163040817054889341606764000686942656380169242640938120719546817932359989407330843347274856723097167664488124385080254843700321742834744507775890317639580321488842764155985562695391939226011348160132567646594522113996188961499913036645297895951805897835667742172252588652259546028110731949538872490837645109491353601052203657979767612969857007988189497639634159298830999746769034022373078378132001257818858112922844861630720172840070626216687100798754020294500184409662960558909790511631262070236973462093592622889659679715758062702310051576425358304921213987335489929767783342926801465414230354635786116722783530495685513727526645765465927705567618961352619354298874510746983949466538293073661559707253182078380360881583418582677518399587347165409748895123907565722111954369741330236903423139523362983308686517801280051486207151300436561576311263806588170798852708724962261478838146271108780329522099255742585661109451940597961560212834169245767484625082387781066086044694515909195968988021782704502754267124718821914414348567956027727281293104233142403079838244364557585452765113246254926374429989324897589707788719138448727252499356413960759086523351708863380407039378715547091551133207300486585657215821062811918177620551126215089388000730422089045460746628310443959149527813171661962077553807402917025148734244321100150580689292251700245969571722529737321447314932730114665598772673464477394002799158148986853892922894611621318547739095546359970751748201377577051040252993127864165609318902323656739704988816679763901704782029037436512175128994276278544139836483585388761321661301416501132103529358499004768217308224851250206944005788554521497607218096320147014894312674636310837301466307277226972746483017361295555670076450663519691752993272496197941487520323025786737162039009892393862595432646379562085651142845885140804010414438740829016278183652681627539250870152560708757475251051773885884301163735473196517565745322853839989943640395108414870963383087763114863914422655150287370341447311599591929473437347730892585949490362856168570218943628957695636993436131740534619845794954693067263306100765944447759736379698613289122563804200277271223237066523207912305958837149777131363579753368439047636713741097865188317362134018441306968487143358657925964581002779828129453856544546189440396699624638986095051445783357934662405415543420802513164331889644586708735454391508791932543778022984967042174328711302036330112526920391317317746883112226129564504382535893910193896278694356269834017915672092497996524912931769902006938092339125470889692781879558897543607229541954787375976735730330986312963985873800598458262606534060736979380854021207539954158251222914862679479022299693740676311027841220517092100447679658478572294580306277108234097805318932598317113628437871940887509176430134100442550290159078608835895493015930223904609612608286118186048815294785741344133573232211634601156647084449207549065412271208925895499597482799759256281810272796807864685681243246637257473582855457861389280326930329592592503897200323630328729702090532927370016938889419649018741398975593581770025300532770985031316723306804937824432034650360158672214520529183764869996671423063341387545863882610799162116414909710330372908928687765595477108571925701251045814477373809207040470463177452783476784970661202089374550266190553219604654210385816088070933147582683972562756462782704968704731723924345341055860528803908847458012651895927912681107350042765204912587612423426847351031459966692883857796411792934212684696914426216455127406845737780329433324811731217746940880418806128012408633910339314155737293169405684657911895698694919720066376235126862088219060923286403516820605537238155426347695692561247100389941978761684967760721183826492518368588333337634647202530684277273860916334413595976003431358295559435750356178065628403970780831949533483976133778734624745796011068227552963271224946609195044644555254622103934486409718282589177845190087702550756783002850047472769722496304733363845985074314448621228583611024525215589760564007347576511128648096763141759266282383014810202688180078483419397764627230453785053631788406279421973435585799192682699918053665253491373414901361370679026122310054392208876201668621803184335008209880476413776741821923190961599338397922813823728989388936251423817572383063696897380885565190841217442744507713703875065334829435505278820288178147404500921674063422143681407735272136094380636607934776621894833264582011281103576276654903217109911393635764916825384237630808377914272226293840296436782996799427351121597524124686783828918195737803216514002139130747842289199466016062896420214772678757042142188772208513536501007172671338488227964960859592931363816567169216564914045889470033025737117457587071073203264006414041043541465036305704842848055062330892053675212903554933952169519073972312064411230570593674347998846663773608485278096105881255011022530199498420706108469492881298975868511758618262942731346546756311325384805350668331120192255309150910955857731321765963638048590681198028616791403717744074962674419474195489368056654459769768343231283386686977498743734183979794156215857385677408709852267002661747228044319822213873798149885583955394658675487121383286642750430904690121055025520793015258435039424330302027443939100873068527640829202599779096648974671692339857014626950879880328180364757486928743674814057678450908047602222164376828176364616713538452770679443830961442028299489563723988180630221073692766629803098622131323755052367777791591494409723923872892512353854694506282615772714434179790460568475383913006191780197813961338850902702254847118636689529270340672542589127264260585690026510894144734092346017520262053030900342282856542435217102456951881146700726388820057120730369180728845766454191684656889734007403614809296073743117902645301364453642530344535156821435558405073465633854282442961287996428534545774849870349103968934030881074432713937144359470290628116403073141437250168536883360206587516930844001151149938393325437989088307075643765630160975012527105455567691924128189877088853378751881144568630135143780581386579891534751560008270978229628825692708557599698334975754872379378953331752548686103987173284871737906170309484027697189152757060118446898734111612463420877062620123873684362062765905669564065555099982707595736569768180553537826172920021033167111258763518615995384476889470908228273218079222462292023892846835719151976052264177951258157257494202194270908323823761276756960479078514675492893972065329943150249385126679165298208217517121635473127084822291883208244716856410063740191183319357111511051648234661202062751893159540368846694066829715567743256140758386035633724135318658513252401657485078358972223156003169057162842958303061955765332724200519354936307405109258070327467428927987344487797965303635064610734260974831077204336347307532682990480012830807197761125222745972140858214442881375167411355819616387855215164305694771718295099709587178716205319889124897323244269528259855487998835649742989859486799742812919752077661709738722847926044536660595245754582411539807085930676021518756644523555678275965962832285249100531545002200447056717856226012267524138158041561757346147937412069431009471893557476444535810589478497224625230102669830653330927606467199268238141763560138310769451863819560091847341985998704872132543148947001832707562599198751309647255856448116518782304573497745137184916906557668260964919712426729118475277545323992066380646360645576893398716806655956656686945429326765287794901659444839551603799353384381050979919925408891901768983830381283011946924768920693412143113034102795690083471329610953552626077341819170502275664681711585833043909351567476087428693143129028349301346544558236406015390397272543170558527529842069703909662396714881656497949561817719826485307878513194931262839802160741114911037321139213786052980329578736708473647139095003029031460017651064226199167294568793725175909988392868271213184731131487417286629395636186323567269766889057678602211926558352458415886197260897338876573117102220809733397688529322850327746621509341922265689745993967151473128891858168197681596802328295618592029471313646092617441407907927071847564319640617314439552638593268034940079735877102771792081139733642876456107277988858027392207957022122194919377065931589908096286549714497763510502770209853847798396465740725498667033252149524118263276878247035801074331064803020702233761738074872076538015347678767113227217535545479787968774339203839580325387648988761959034339189657032085695905976242462505980436312122114457366495352919421158739015791857275023694216938517091622582757051580295977067200712177111330684063608932776738940503809245988382322612529996527718756679825036763226776888159751601545295117069042057472621314041670771669395807590122785697578076395313503810028545998720764031952249951824605721731465451787255915834417147271078129745073632441836621805307902026433208279131771848136240332263830074665884872006055854062800534507089250516295030374604279883743732492467546172613489713895078831172503256942027580959675932334313752491976063484926295749233246024628115486130824287129254152892583757405725012516642539248027537606672762961778685779743602934175994672047240019246709331044084040304328156751194962959338568196720363393270016880890266481549286305004219165021898570638724150363943084127954277821145955440619357425904803800683392615914062223393902625624281450896614075542921330409499379523327859001270124776916347024145012173708803998285183781220799828262175173340354858061953144948530852091891333554584811356262729264128112396500421498023460866372610625861675271133665116832337412673104793925087265111142920098521864032808620151326101141136078085658345797528155972881728488666102142781770928897697273645838254461610212627373495768415634920686302086593744006210375429769288756146615941985307658337445140005982694011019197939815353548688827763733598408615676545222625759129039006803700828635921707969409258094278440945410199745018899300963062251941226382292490369216098750436032673953961699423851802870173080676049865434990950654524998021790850715362190397542096666271515857374053352381878035703820362876357589077634283875728620224876302890097810285957749708565763064163427116538040837633793471046867839696045026290654230762853685302038555622069030582237043578472866555282505096469399673081179837951476838922013188258263639798546368652918852577424432952166318311770970713651374147361842756104564725256028480648877306588157730015441340747920245184605407759696419265208118172640822437476945150842512008444281902045551890511221540948952296565177055067361289396972114153244404357424609686318072448691756086548714811343369492093855642897301107246527624198530311176191811145511006370444236301209873043984117700100787264196468342542936044426910350344606903400723807663975235236249837473871983901076204671507913259886398929432594078688797280697415450238136100660195375211678229612204878822093751075110147459099894153938458746911635136631976001626599847482137349569962958053614267508631476222696867398196648477972558568020364466115409194078819696060113563327040385667370014376208934232938414553651302488589435312211001962864512136916070573333540149006281716387393867271312123678758004365901906526671462576963525681166755748677795106083780527384239707883675230920523415163525947509020454648766241332862585118737129271942819883536622189323593182678843569243629374147292443184890986229841747207030752174288515913522970798701734575703728361411825639169930517650744038263815683481212697104306073167570688388007920843373031064413066926020713337987727192555762343002720118055355650346921633334941324628553687982619890869614909563633662300039951369630637285434276848230360901076072132488117134902139401235110994017916754379216200526298268329053715048609431346010126483396081548199855719060002098653363582787698090548207126297722973637425372770829834670265752695690680208277252430841989238495240745427083680257603668432509243520247673484074172700897668160569131507130286300821221953155907416746170865320286024563176611458822447725262816580125170781227217987406170453930785670075045185955720097444959100686523617147371964535946677800815655297004996593138741582277335858879851619387366366511473703528121585170365969058793647419352361499333251072541305147287064000717001687686879082723913240037768921356768400687211585495952959440882453096821655061428822608493408071528669023762684773444426460636527807978770796709909588455511062512581016282029509390879504939593471646331133619083327000711999795483348221394306637345563959963735307576278323380845801486106912454990021948778531553043782882616073288592057937289312541286921429065955420147302395053694047134284621975176191499989452715731769307207944817582530579131168402901847628537775297399938568475088487066400886506433057790056809609967952632618173876825347569276117180214608986766945958315973395717865581593794509382081737285177448083379148406092451347394941396507041862281114493384838344420792139104760874085971203201185406086910551630197994783566405085525538651540943445907152996298401004316349752385619170675724670134784746643659560624992187621386592867331649864443658815854746096011401471459205987053769993049873361259516853672657886647723398868476560941463446030556474101318671155283486835039634770250250224724414069472945217819312693155117220867592966000271118310331857770870308138620042369288257704428005673457480738525030718899518002992830728121512220735507550648212166122114339792632391363914593102829768210014847598968150147219790777468135199774769215017705383569791902493679520004540256372332699876207417032297193708997913022789495933944168679074445773499088459498007406412465374087020413604320634053020496080589236296975787268883166136929898251208913029291858599940044155878699041096191551179856204369546502928910486203168468278627076636931540707101019393712649603665222852176946811267179009707455716750142978187001788640150483028526992392449271680862714121597426214651496936150160903421467028366232418539055531773693919947981972741234610390700135621773129301549191000785274137098968956369381438006127760258347159601425223062776016649392567069250838616202313956992546454408561891500078656873705518360456336076652650306414740940567924289381819239067527152270868695002663131214116670193112359298561215103588126648125341949714051241870296996382316006509654464906607035009057266838779652295233025490418075977247220743268272061224646264964236619862864798157186268239469540490951085909945924763937566633362398422367629460664901021835549840994561778225296173943383228820372585129980974656001652162789467147525997023410701143432808067764209826817321003491065234912062566243805252343130597305562306652588171123922554610775047839839978080691305515360959830117212288218799323049052375131797921791678625581712060538681084437132186517258090189875032750039664496581943676766161293846139725617459433025051496915658750498448071042126174815541054717142321906126404181854560836536584416327351247449164992582186606669850728903571034154942453396135679733866396825307536745280719677067858258228111772817471079986068907948561149915677956349048968172155815335796538974557067989898911863813369737636641742538561702098920146810564558960330663686850682474810405855611999205658556448490681269787806356603530479835820615237051679284939768548866500067859917004694465050301611865133224877227170919365171360406892662075998978616948474519992618941453309179088926462016974610905002346626989809372760822382089801971110821138747802122548116629342623034209267330247608039119150465226204044596939082676391006431505100601186888938241279799323948329151347629826998201155729823125874445227011693258450199837190921652728771727004545746892068209045177317256714200435973264637549671952869854999065108369354610035052449172118733879676252702224265146494292293300361671882961571518528143836108984196375218322801172600966831293173383514668137272610283757877699783765007725088472550188204850631828276049878674362918928929165453417802526482663847444014414309610599041849699159485039676610324897264135684500555771154957098581748964687097725770864250212031543635961313188356437648804306791387932144029460775480000683099763312532950802153924338705932437026019985325474772074010824155107189424532812336370094095420787230554469267409960525571391988372032493587850912855892484463323118584513713391028265458767828521611275512679845632232521406120535994969508823393427968447803898424221671335674637681262217842047354023986727902255275902007078321090317926323294923858808121270786339595107051626288928874548506970175040419717693081674438632370307705725685225158267348560339063162773502859125293352548395856260895797571602624898382346575563696929001107318054495705755197385473662200525541054102796331978086635965087343543738579443961899228184424008862581874343184478418462667606134219096104624525271945190574314176086492106423329852591225306123239430419866771610730133815502886143446174992882905594110233203144084837160349024315389924405623210398050604684236530294009897972811614591121456057803353529747960744831817980426205918169660339294484765290736347746308366708715818574372270329828821996883438413253190396046848320794209302753364328765429165108238780828287282308320029611984223342824854509464488845979223953815584313921521606834546819935799359520935175539850588594728302031914711118668602983479734404924837065405029662014799958256538466653414195808217406678173877899093477112254969026685721212813694642599986214216105009874426959941118583718614768856539677451573170161845363024301520682290008143125610714319363992852203359332598622103195516066639659555864337177585942643334249044301708420784331016834664150017954143314596795475405005874254679411531591939856789595689565855046922609078587706515133905688618579702779997549410108127437327785682169776460674092857996295686502474909313797632378739684622173515994845254054920283491226826222451225126668947800847747292503377763475589920996744149283412317237345619338840601581861178865299081608258527298789155854855441867483633088162153100697797060133580766245881490488226936573417089503347614235998195420649671671720082345829692600272556821095845306937018281435842538751265622051734879092051373137019509147221254352207902330451473935375975068335696365498347767534724673899576017801871656188068783438015041039213916796169491793200367125520674977062722475239555702284868070293205288311054740785173651440135472984606203130908749781292115837950729726430511928204272420881506929829545633622722451836027896226972137913820866500210283319932187721835493823983180772161847916168129122178400743153982651276449482096458138597726800723030670035811794356540308469167081696621844272727692879042705983852864766442669494938382517981942683702862312639820202654632085523532293340599905037873065252248661453822692435652006974435825700772681172573097018977349103059622468064025438442887512114571947519825531623526132993912994357967884467116806186526470200585650591820916137825428683940520436016680693580562216534862990640864640108357197014802714280117619739125093911284351662270761753403903531280584698922829088081432545413218991298929017233533434163303555748580733537087448892579015577328668094056277844494842781152330530417021776029161837265087950294537111722630425290766082301106620862193749460117888158378764141675513064693066863447251920247009529108380361167395496392443412901531301777305784963313943450372110142960431309201723763969530751005085177006052294046574842481975061077412902316775873059799235312444671819342210304691882734187722251151426948954715168052702868887556222388053022113599813510780941382354080264888490498176879697595653167823677785112233191273358765712633230376145422542932952941529862450197624032444524400492705262355702930773002192794152518531974127660749958767380842750178150066301962962519104355585809439410027063769715193392607359627734073059899747923332376417163169187679709248607918420322565718173351411704999133137041121850861056125048679188156115920971328116595682227776579969650335578719256591036317398506205243108163865570496878046165691815950433198177601987521610616422371692317227862042623080232118494347385295149442770171463199141928665288653958661605155657500784266005078709415078649119687398923167522663209744975185297730785130739160966742753419651698787310228364490827543739283359027994926080392340782834543021725882440954524584387866692398010464623123514618641939977561129642381083992121064509859031583010648464587513561662956241837942287739370629757313529443652478807380469668751171003306039828448429153183217007896962398396492433462999274733643937992258345378292152406987089137464945937992058630957448958420117742553147548682519055555340266342530541023867300774425509004595257225742788241356219750878666812101481746700881461286222677405512532497620885242566596070637435644328691299077391796343689598742161166926546543089863213342931675740452430942676538766468815524139215463315875668798541151262979876885027314578423544049039078833219728818075028698788516965148851979721778819707901726940695909834533540441943265123532298828562738724131282578346347287582654131286750316507966459693854869847079251847519736546402880279833688768138495527895846499184148905921086179257269305487785410880968673904319739300119127223135477751973033433536435939651224695872490135721846266322306709893432527590921053607718838643007797474447341399577413911991179473210043815294202219122655542375483741396378832128847697481249582988612287732359531762956183534172911975322622839539933029378362963290666234360828073851881365510678918682652251973776923065052436614877881979865970727072214679096019215578342085230651204130253029004297413372479205640128828192430577130985983651662403171569517088378308231815307129315487681981213634238753467506975091308201337792081911543541796949871304438056633333179985709665381179100016369003681822476167754380216662196164735680949512531634531400167503982366471893720830780258734939676697072321270767454059620907178636696999955348816148576637073628808585249172559644948009563978107673419015850909532998520935459129930909478504352950722209957430132630367956438919688297744504905898837053649764006014014223514874619995479817097799726651694947276253377309357271785854851595323697356633912381644001588495655023885845843284678631700663661895219826896013280292323938214327701104821005693028222969367840627972720026778566346026610180611865476013735484423312319390011488598289897248478708701160837350906137362504908905728536711022371826454901220592609780030236411052155781957254595957645533714390377669775626775489282169083569696343744047577146107636471256895016431500051302474256534783146839623411068849262259943194303465738169965603453170241303239146248361483611894826262337938040126827739418172009749963146696636529884319877458612280241260607576715222237676384675608182521699580235696632959892112674663029097268165324799343746892972115558050145236385154736420789136345816375388506980822748448547537685277180331978405875280062719454663363956424678006912148826598451322343059923335807045630943948405845695662873028570249296731930525166233217639655450989515281993099383059770245691855801114768594474021790786430781113713370432909476173755339175109429020333078642830981969530680855542021049472820654631191551773652133939938100473978381397351187227194394824767278723770813032098215245120135698558044806928788135977771948779626901547846268066098839403426620529482064044877742308227174565165826788043179504662518864668258843305140368807659679582842521864274286955450807197009064402348948250832668589294112352838111910480100376542918276889602438317304021545492612336809669337211350838796861004863943722704568412278065398056746894940793432388457644139238223061418667675764551568523360600521004544690943969016586466440340631517845382565108198991800761830666886609717062303809258910163589366197258444982031934536316217294192901451659892726906256032355259481297467032892114592457781570612905219831971788698693903542874950086582902661688936281841010527918133788179386714387843939034184933550281647938802222135522899497663898796297986169182366936811148104670940937310307075047478663976229286469076082485909228274679846607497236559255692679804536295843521038679438455459842675920457316817225424592812684917280834313757562934478752561546362971360794630992403081010249726545989675445324086565119307248057688034246020762602729827643733055410375603272965371016130225992211655999493801225974312001099618352439427197377258959249960098454232066565584489742742034498134034511225705813550646339125837038410872568959806506611333516681657528262422866299774664648219410429071287007525300622465450907386343331725729173040225035659013438096873341995559602017680215722770714957935551299585454520708664818880191997105459418917751033363530806862250324449483613627241983440569049064271872369939437316992958196632210971647583150812362797703968748333630396602420684370460151203643612398115678681239431138995099786353550435219539663301731769115675081436510599130752498610831901034476631351504109079337090272395812367712876544400199284222653110245744269365730621732372429602692651376148803935212900770555303153758060091333570307878343802461005622131057504342230484540705137213143419072219157036581768560262455569300827931049909011371513859910986246603128843393481337377129243750628948243889174802415460914795074328948620348033726733433058390157908847157806674628601267227566862141160384752579463853831958407730781411016207850862756728239621887253423793517790981671562673676909158797885423194677673039198975923143012929618290407591579842411188782240658599793070789559584876268405813902341783902972874299161441523431529355903272056312088733852906802165968236932128679243811951681772768679919170146980167410980551062176095462576094466173778306097215328822057740067984550911020831346800249542499073874833150524614126888554515607438784416920553085949151143628814739669268989926003169080722474245791023316856753852053392941266370969249416458378832744480318195571659061730146162776923628807389541437621985949361402756282152263178345067772407687087223510611595749332538806097348584071759045282290022061248222602429826930551653562082787239624932179441736429007771409546880605003398536229619818395785899473222039139754047890625235353076308940402901943200975164418514396079689327649918692771179566213486459696026058417333168259753642500651115185906234102432948828597856162407438436684965689149208635818342571825989851849031034638144926754229084933552314674301562137437077571172955774401810524970311491516162166796811937142391066299884798001944245049899212256992991950916725504998730887263958745905547446192262858957050829681190040465762999958310744970359951412532770440858725785202142509483414210770445740681126206653092768444679234001786393247404533050627904555710283804284334484924930015317483905961374982131339256953775997978361189495092912163080979736236833186447074848481397975902089258684107610803900267896026343618998037138694580806193884694257437736481972216023763739738187673987251634883987774456450942836894907492552349040378639339981819093593959249511938479158821399329646811896349915030934761062159218334321536611398970724273745644376413797820852523073696182756289650497264534027358209601201786823297804932818552446894627797376965001688255518649426208440066451555995836572613085403520584698231267477787285292591750291016747271798735068531911339568331509511434572086492884425731816845073961725253618749717027491957142291706304429047598977681985655700152030741921642040343885461761203789486913224064906618787859890549354197230802543519478739644992344508873743813742409658507312347143554412960512879977705432701245519688574970119993230750501403432057533492798780908805628953816521332792065217314116908612763366172663898985618933349974687431048087171697326040021687040683103726601572650689774051071492477649268466427148503050945570414757993143380685669732013889303903554734314800550381260601459979716927706268639103445166757297281966121102335302123604122093411925261576966540927650218685022356046326288572688409528611121469219279353464852069327780639255769745347824531510777407781292460880543024773829486770716668997157452318457967093051454643009962176509861729920295834064457169074516141423726316985954731788095186240113459639370198351260285674069830415674124772431869375402397512069280319432906263721166389031263741909241099224366705921008831643049589945419273650540788592479782454919024527525874876431394538518795182989646393991130848050923053504771235187759255838688885484668111811990161855458580649094424441611380484745281674725252746742295150297761903565236190348531466439007438958210916662623059269260251917385455323883552286927380538662585819270897476777714938020571659739649272806809141541652374364353795798603797185855410260919855038167444529101015357416400763239893637917666667761259502481157775440170520420350142555860028494530659616652559869085961282374756584476295271910144586366828696154780607509492905726452208204470723463531628518041713715752665782633811202962523513217404398623278394612508086786507026659727446090540898780498473510906143977734254753480689544117449769368333163083537297676955566962645983717651210178600057631314520697630095971849146273587551235842724555624917368235776204456515069353606701499181190822949304545367989861159226191396704947409424717326855561579476763565962726798259121074879584007322300932250980947072037777876400180415241066255872628008492506642102115920991306406857249011962023471070764678184119862228898369849778326745894295299796818965384598092597863273815372677025260402427668967630812546877059557463669905887164925703820465063251154137622652950654051391865126609387755037296926169115856215224092269788046956588432666253325482273356140860526112572672182165589171435872093694035695542942757484967967199957181413635727873134758858355896378932828941116507617805162873786430582934752571557849646043560494176858926763583897696490243238193436079120417986800558206789530712031493028375279296467487145907829315657832964394648126736300622499723742689418527717281369830227684946355356492661483519393759292016759974324981162196185829702768505446855878193755310968116924803297515550911363937308806189247976529867918019036812022668257170685339811261976194130585718676456127989865287885439309841990200123393299852738089488741641397888371665839349029549418901373405920958204159077173018614182923983509651485721055014278414791037511415159369547716661954592837057179209746585684907795311455177254576035461897955840441711275284265760494883905042139800521453108013342540546002920599826725526806409593172501951314590111628560183550281363179858295709648249383338862883193125099257342235357315236341320154659314950144453862024556596703184193261185026941294907857682353568749231084439561971526520440004919716619181390137806795565328470864267133993168842663068699460573353317367106244792841781657339742504750569350278138342754660089895514528093487604866301244490603570383513078882150237873159835929980253887621008324049602523897887455347301000105326175910201669026588891811220790967688874833236579209540877788827553614688947412723271917300695260440459075359852805227651161432644364178839587808207629211374709328390688237990715334632481627474527298431359382231269816260342637283435206309896616641408350468360976326905735523346199714105263752068281930625901305985714500606909890755177573898439980031775295160457306026028798160088439476586907000381763258971844542410815337764292976600062641588921442805625143184799963885942673210491207295267208796241277930155878874440013730646777957890914674351764273808171283092610223175812235567431769107337460379604508987498091899620144073592883243690510282741328723644031935267204501689365552711234262665752913415581322364313728296836184574692459683051775550655687568452258547404797139981956583186727344647436655274568081215676693583632258730332383398200969344212386477498385081936750118419709383777311955825985540390752890380356082972620297643057951334663748086484490950594447099033593003009356688798087038689295182956553493851389269116657696669472265100556159483702876179081193874863084092431380737857685367278873387521601810090263328935078994347028613466776240843210254913617844069906061949273831510564454141844073476055953932284107755264727484125198413728279845722519716768327369859485667938879633623955952507146764400828876399952219899411037217722807904306278049441680083759498669887669975451927691559372282733317800866601501883619662484104007053229721896976035177079219715685075512970064673885117525231353399680313268273580980465337400474268790155405339945248805221888322648546692751856968337248769820659184301134848955401543801532977168251352590195538489079857013521212589199996315642991702903511149855379498390399769639930712479048062009824030599048374577106396255249190995276461598788477801757462028177512525851064441762198080817175563941162809230921192306846542658662162067053081095825889451546948235822940822138443252021549555273423712922466494794880214819671229911254075658453661208254330573672421561164609925729457625803438212102778532706063146819465222640968202099851847091551944414518777850750840659266792063202588939440559498441443496461073436768177672036483151735671429718193860231818199316500521300484563834237542611923205254708665409015072361095611297837748286883912957896823329471891452747999808361229707705835758898140999067456813916607117690928413000759678107663263060863125924676413564047264078204556383513635132949394583882281097609738001034088368997353170170062237567604359758059293123805002740187363417624915590635250622372948264494465036956579659719905298085491850865804384334123663318871529918224890256056313087664000444739708657621683827329560945616052954919060324807556771668578475181874299123122223879584815536186519746264576697514065426281960512294582145615872199335955743361466194186768064664550481197317590917504285820493241083096428559788391457346535692134992604093285245428295009779096399733416107463300212788523264367382922589283015223418421603682143280940488869285437105746466218577798920522067590476810923004809158501990125502031007942696016010292836589800371108614181608342481355942432559980183391037999044694095971491003461177256621126809024073815620693119344881352735530444911680405498609428490410921830617421831911319207467328557379412653018102391512076936866672024912418957545817183009994083448614184084377354205845295316323445300310592444792880975966010661165575730450329320497113563623041902654157277296874413456028836955824232938916764313515930853000263754982398622799274657852089589313494505855449408394722846230363084116526289302649675438478564275951922493199504207391450555585757955527413027149203781957319363684394564568843580170915690603639974239280156069044027115583677243264309460556700532035376944540042692705625996662569797841929231783172051389935615798362753639342383865577389943438003520595493883812176980871697797752772079796321482181663598355012665629564421550714008833253011584170073860059354737535314086564354968495375798729914511744842567900279980756604139888763143241786769121297238109701201096692202223716727335477887201255678448117848143386131380062047640244886568714868182299799904389134842354793089318778204833956607579217250076199827603768585362782063714997573050953279897401825390582699842279264435528646482758487145541044863924115941719631173262414922351486992836905520197748542326260398083024881652751230601721043991577129929456268198725714306151605610317851998062032569864504703133576234122424607990258781130930708097490262018793511726292669444852741654299649056105018018442406739710604739997397433791943172268099780648235921712455257941993257921878167160148434056032848190469981094550931348237536932706582500364759839118839707574392382068837936269344828490835512907896896330625962144811299392150837029121381171542663100237858224876221801391671244113382200456596838416903865354941097552286496984002508766240245346960402117265331448377009684844230891185250616917959047152744878811014006964910532959089768221676896455323710986011771313539058347775179070928454744024392321993028538741051055090722466573973425573052276116072862664416207281128680553210251438945291912993399921088111615426765641052385189362701165020164133474078861931097508827105343909327220683895528769288114985943055047354029154421748176946644590183706574274706515553008590520704530818198850408793661358238740814169432019657615458314290837367855286454345217419483857801430809372827222309855702443668605113501633968853964475376876847428947530797241235208867214519892086927347715430073449786780193584567623269448294631383873998298931890716421242393150203507710254729960527978218857376885374342810242997272086761224979928543852349599953972220380159576246150581840003787385872802356667433739778700147605915486234728466633840373378208898163022772914223843869408774313629488781459417417047379451083788082907896055328040386022262242483206113682795349335711384727663914500158382462508719676823294240834615740691303040889747925754364199039612026209196155746734760598474975803929692768848916623669359549087980604090993511560233449941369808951770212519850373014427130395468515539814078029840901273620937763454352790051026404745730370799093775641776076064089820171409207856277562863318173848901277397535947424197351817538294300486755756523496521281042259673838659592358486070844834521899362343629902069841453019394087944886843939443988839883162274369676691970453531017702224979010001908738796853192566981552556116928480496979651174738537470839886444724444389196443102889311011873864155046285617835380722019874172976328750728946743510027953823442778160023530491466449358752904839136692239076127568675738330045951057136686462466592824923043726589640134107314416438653329942658111943378910647172399722207071629918211257661109210372359791579024870471460832160867353220218429464398246783567966181182182852231562344852624459802741770169304255971246491860058243914101567090886618474934172698099911056752678260109848744064309130071410693498588500605905491083453806054944551542264133292725267210613808417387826186750448439713364359152108057729155390396155774886324161373023443267751745252809761910616762024354605263935183480375900224597032679742986043753225647158400795765976567786527669147386265739817956553644974064785375688202357583087031452402959137589871251862434518257151653864801232490577762559478431329285186865833611045975502393122147980593900309486118830438934287905368887527443946775015262283505441334289583347062805980427816179326680884665639745641683562887781232138449515577550728170022821768609868510206190109382043879444197359539306853304838002731908348883976496590288705342238063505832893129373688334196798948252137626316337785072989958700195526849781390476582605815556241156907187073404907860188245614218499198681789325640728502362251450012440364676978060132100560009717751406851408601452037386952554239152201763587531533103875392849289867464927773071581744747966979263573757652582436541204638295501348328869569459916805561378636446751559135530374581091494819942598839454075178919971809240681659558461600771663332562225557241115982757725961497630629177777775237430271334870400071639275522975957008608413192967660363104218018897160514791479324646396490800442074690794912761413813117783941521654048785983576337649856685760674852876459800586630683366785513029310509193102589882201533097953471228232547667006940464545176646465789486275431060939969123546786440759243209405758230605352104559519729966933535213356948800824924534441929978986183384878871351345078889372657170135000089101392681396704374426412339809270299895633718366551949672338774605748955739143851770614029595492908529510180739366061592664847217097873322179511394122004266905205711152233489487352039078063546877530760071745764333859327088069414722676570518594472419678666882117266635440926355933861359918269724010449168909206435761404884787920688523419270170186573131436347437035665929057836375320355704707619508936964115535120516296196146825214798180491368761403982037204216608319509429775033151160417730314323656831110326638204116543255485868628041975514518281930238448058416636976120473994746791242197878131367063159432280823128833409703341800785562393047464383650824132085653628289810468104763211246802627626213824196216584515024084404933691722102801925835022769116345798345950855721026484942134575195189031321552828419691021090524213075010744390647592079885880792000368240556153323858182609090336110390072203331614138002670720035240733418166814179917201683332308897374913155086922558201967903549281996503384567799247486642704212013658308238654933665094815885387401835828532256421264787631998743463394991071524089866287505292897632471018551108802140115327174372438320922327707900136695082704036656761631213787733964378245266591855348888545288823615686656786518137497075980186821781172307788524124158914398813764248329720492329707895877984673851566613669693281098775812715357430865961593804415202867953028752313218012780459563213163128469677644219535163251172628162785613841257741084634462640172727245296491362223982925962739811050691255920274661881504221637239930532507346083495696345767869534464429763498199917059963282755863011781718221646367323607519685411645757609942406361830782468020559526073678602730880821385276790945863853099005559057355992923919580201156367611319103046585187237228712191557677889841150456734963364394868687837890857250079712817099685004436804238747020130210738554292018857268646302859124575850927517703567364160015322115634278297675954231758606564244629782429482247783101693273233626756721764300905133738524420852603098226122266140440996795185844138647557366655764764275159817412335798765830337185883834685201210944175469974014577056841556328739662073165628225205535937543031138066567311221278611065999115216148986976525906969937961675362420800792972775448948425959404040199971079833996018732580072465408513792862583211609818420493306900954172765017249752695801553773329878118758865789630350082099934389585260999186994509751418234482477613638495655918519018617789153923459203169941485223715392100646381250763829339412563232218698856537177607396691979401671957230902317213596628370632912824908904458244563549047922582856479666443711522572465411965242581098024908612194657611551171417462512857584978127875570769967871273456929325075979419198447146579870033098245360789656516756660738040292575648972669813272956598652666144222208050456149426020720228835578236900998631530068891896089422850169144170927650243371267351305593740564983780634587560499381640649303661617746019402657661742355805712837786869115029278009307879404197555746896250209522055273371292753169666425957229935210415584143913066205792630159303980132298318394950562853264302918490991937749875280728440249562581718880956994436833654938025431271043501096353646354383080938714035391610108097202285654483816267770179530121881252655878444435057778618706178350600219297178259797686892503695005543469418668654521676757349860924060455928146761599832383067996025531307204976574892535662955886712145178436492428972484092001145993584044895578364211172226288264657586712750574044634069885022804482269698412030419022411066159555821184553195133485635964415213872044074364051019383103402916268518857059646312550004139908889238813196768494184508901586482790734545385001277826673081685681593738838776601856156968185942282464543463141377342710749436796658058884090317308985849323483056105546921828536595299789438549751722608352179042460870053507540148916420337917412408873590595265173391457576659033238925371231929367650204582003347381104596068471231389308770775969304254106410639802250892515123114510003435568227960531618183755864793169834802674183473300849057782130115102715040327635896361354706608867168481423148122379121733873913892764375167258703333689279483610083579680609784470815424452593770313003595259340234859003007583527284684125773885053201444239035864155799588981170939005168500046409489274928048088862779954620617171174016117319708975591191649432415918615482335421263172421090735622321634633371838590174472297683192475864882820196008007233933918957416953213847989768749307028908968965598466601591975369751863934519672571855073238543590004567085633528112632954729472145490846337531193212130809041544322976235731446851970908436461708657315376461024436629735192669399521394067427451272271998692455720636533458679328220123920990711747106077033114019057197226907661404525142510149793554569848809180490364363901559289947798255359442993296515748219219067378532817648886775205494775164552657730323808104327129249420478423250017842731251371366326216771977327556017134812884184935557654287885868239352982419886545817768583620251670121329666124119415747482730786334373447991341695500389709652532624864504273144495343884462896858416394640986458438590622854012263003017058632766127626418310613098245423285071108407167800821211049482824167149796312479119502824735067885489061091192339323271827788204461725612688943778111201282921626645739599245838125590553370608475697066062785909666005684454957546556978980655214804561160123734333049324023487148503705966260539687517922387113295793585185269378302821735371375097522949576368944616270407315882212524725137638989494995066639706067767964297767144338823654617274360825323246341314297431203004525936127586603721157501698592445512292364391269543137533891170891270032910095283716335632498797342944206163511995926978851119362039579299073768226468413692256365176871347557990930879715095286694495808719707399924219247530014465287929687016086459535452321526836297327397426490137493656110463046999715521206040018765794735568648034935343429469255929057081855474686978260938110659469987821261796367473567775065145185215510245777533951028229043073977226082184056534388581395706238928614832033633734437265375277547568751642710777428134416494889568800977092925834295372384732957603526251760059092135970120399987496713059193049164770476351784373625460442645452232637557365988565189745862356638188655673095505377497522297999452556179135256357136852403021103415235358340405211748724740143078656581146980733705109842729675034359741749695218342153997486791828286033088273319212696047233822982343979861630370320906192585092818866883320991896797138754438571955196640642381624950479311530589179287563802774163927969500777597736369972565048269014520062438565284639640193114959761684021500398296899706077970632851159149325186992991222026761269940674844169409110246793909362987764002620684225351793618025851889728720729068768417830583700810780308299174220938125218284172832327889293177660482595405854087277998597668192422538202514304142208366685467851416550993016596149697787421859226705200099774389072522871386804006393972587354197566729381746606902309266096515793755838572748427428895582309449968256554497627086525539237941043324522462894492241296916902562230417584263484644290980811834968114201978949499511391149712721729536916837316972525486296646996982887780704147450149452471344352295452857582974060701749799753968497706579619627203473377008947180178523208351423358444416761053723277213027673123516415788022291188202491859510422918029344184967939547524612841504479089222573144744792922272557021943103872952508354563057903972888802032873616129224578328246963127782285520165491017369792963715529607243131856171016467411618131077619283188730457356562785102611857982524562610057857159336582757187697671863982960993170729075472005560157971683619735227461813456791041675088473470626852559117606648704483206402338990399418927060512493712064294462477400854885855070732123408114339137016292603975872613113830109324885972509426253184089902128891051270771463728769954989392449405273871017135459438987664499040546368548864984687364327413743757115950621318383435083988442964391882056904460168318866010527051266487679404894637061452707233677592048682699904599058921574897433892940980364097916395108517223644331637131358808719789991331578620074885760926622888856985928273573444796596364718796995550729045041902451125279964879598748047762860373163585115749943626258863035371825813412481094060184973935298075119321939303836866572208464213142820490111013195015377299495605377295330097596602487047771313344725058494404819692717060717808868376835175650394404132997930289226082213039983861336997837872779208524385482355405504280891011393308460618706958142501067280324619617673344517932468478238450497628859123589822245121437868913523461775436150437505027520234770462770598036540121341150830127065628664519194036746893687691752222744928503603746586039364054274644930411932227735499472086789812989332835039135073732876814118876097436098258105037242547063228439187344525574030873422253950535115609473054413136371567151278747900665878489781311962256695197828487018084378237285185390516810156841987131435026655808694025163137624878668237777877292726166754941321005117489081352642023696524389871726578435061021924079628078856016865747472420374072980152667807432826204431377622029290281233750141846788964508879220587998797799731280198382124722738692471886535917130588188794110643788982429933367677064003511438872341751260225358742475982750759280209000596281332553129043320102311631938563014427781129621876514642935952185633692327464084905136229328303250143731128920393118040046391275039629752710315421331545863388584338199724122026985367427948733489198275970475951819549942423570708764242436787161468403799146165512772606609596619778637891629263058863997091598950951601871062908416591687384577739130985948147996056792426156013798293542263149444646012552472972704385700550558635496345022068436247877913113075628995069544423284021620147863267409880839466138950900937463607603473259493545229940434995202813288243999199505637873914997516896449420265555083246274164857925422871755578469741450152264829116191308827798601717089796270742478838687395238121540560189675755801294861173250728257668838675788524649667369057754854486133727193411827938988178148288212689872890192339887437887604070181220841004020656545959237793240761642979444766201698509748819327761695365797916486112297719087988178115971577182134859033836077796824860423361634168135530463477347444563564693210292543498341930221479902932258623628389026208313635823805239081201220330099355125970579646491261913273105811115547139605655972332602063868023613338823627145853210897646881902661986303347299664683021768265847997420017563953457907641595556116474632794256642765152139168052737971131133539619848003633822924610721037130812079741923925453929513485155114047969281337591051035097450160866870029446421512527762563072142589850741004649929095953496709637566484954809574728429581512217724406363708702952667820238775600307327761850114632466744305197411130648031324714426930694209494932586418968156811677810875431489371710234468974676567069905509620150415317506983635946271297771983484656219315683150040890865265121953390479760271405323071614031106510087978178550080447862481592303355544119935208838995701693998198946848256288649153766332933056230071630329872950619833782562308330876351650399081686009834616524427653453872258381434474300925925906656748155542195241752894946128901060263886301968877760736627789255507759101988749308195034459637093336078955309737587904117796050482743202083043961534248828909719801979442756307640512672376980933476854364555604641617795952977630285194693261991780645660529273380148320733249028646262603635759516160185428870009736780190817568808274756517782558737651984471813066922161930698169898292591960835964812023437542874866647112692552155659410582188966161397409036658030789861697179221877241265695217375339956824878747907207776844990497485432556518098301246475900554964248605805121103169661771814979201428862302491422592937099739360055501395831778347074982390586178847242654097039052232192930591901077592099314101752111532591567441635304036277125434185512697703613921259529896472977116041294582018393502258755525184269758251723348864117504976575922699572723498380186602193097625639024674840434430571651637316312154345535855360820570798536496906065526283085358636558340592429864368828380692274639423313392954500152303300156812135109121429937437006637378591352717042496143744425618070644488610735214811042771694975375535206894901542126596740428250234797227730497696064185128308926732146973897523730971603194206782736964675866690901460615014903971900425650228005699765670869480297276143385030355871454328640981780486493722328564779040644286251157210455670149244326788286933439025774491918434018925812113664315435286382396705012293376294771222398581099138874370626057330133640562180575513015605270356115189270612484927105690736368564501870182246861553059141700392839911826452958488993742633406058263789821656963231229229111594519890659998957386429005571891690817536146531805491064436645201411822058362680186341101588600537607197098147121244701764194145647604687232034350026754056617536032191743363916647483891707731203858361620037360839431083696847268370218007601810832612991221891821904939972726097698339377649717155035123151516895508858657722502173767040766587112094694242595163194771084130878065559454638389048701474623287449062813737487680806345960312761359604403422669847828789562915054468973775684679035222748211092553673624254705598172229646937188294082325238374618465566277783944479737825431504608440094622613166774350257793505417138152489669288163942884294368768019295263262091917292092517709965123112850080028186348436106642424843769609077191842056927063793035789692526467145289871588079896158856459741422163466262834528365940157714757173432054791489530365904203908196707211029996280336888211052673700213018655816308837915203225172672851951389928332564863284109308286899952583091614540443007669323060199412123144884730029664292314252865766839200210946953176585491795734662546217671418309788655127752049462580093627681216338676897773041149405748646193564373917517425950838854373780746673747644331488740788482003506197805120583848065867037234776938572055832399587067294323745854250508570999058362918902488137083869463163415958902112466052485641944027005832923378379780003508128220373832751008224642125808707345162279277020719415152294153813404426183455448878669089530135446164282267826473345415934336029153038840834495045969423377522022880325093462171586399644197509230377463768306112419837673957345756578494342414737720024490291131263270144661618973994739880387415133137930135991285054483530809582515833046875217168901492827682635712102975715188977799355821250297488473626540629270946081692929397365389948701074119510590820177006455562164941406135791852796153985453321641300970791092040134828414840882825679798707149991860515326403525373976748624888614709381492641001005332726075097761339861474964894851386342721118232332660918495592572431761137267953606194151953531214600776627031967546026847393699112979452646615481264562532689026896857345470231083790453243561926878427656492323775625051499412666501065295076074362207731468972653062758032635074769896036169837579184645227612158349264480053452385412547013121521860247477041386509289931554203950451518338450612715328107033685959266032428315170476584714091383199333630599615769716924196251652043194724860620652047403933602382820137374173153474756720265191860781192984406163604188724385463745083990756048227903459296303640034380215021070573407383532627938165397842412911271532548669199639826275900630190171112357368866148511068572799307322652953801092721869801478896697912613141039315340629925155412043628509190910768495044691769548767980362960964572834022886187983482905778209694739304940411697337741527994669616064155802711950256018566306624076391820409675695180227743703663420394978299983134414032920416138456109802820873082716714176293120792707764419422243752959437191421556023683503597869068415529302379773083417255921884979509702932996621068691093073788731884856767693460703330999856480822107880981967694194036403213063422548756013281751219400864759788947124823226089201378438601885125417963138000999736230876798979052126049108116243366097541491406190897075604076661937718431052470689634116656798242622789957212628797495843004408844652119065882572260411506659697028218641991588873311318847532749443190921242419577820760456802422740873397872406820102145747692484929477064139262947361963948678453860925394309662178507283899230782896865194346116729060368245289604568967749255766971412182755850577496479517722895094535538769713952394803849438017923650063437586443701688576970983416751975457071204140500664494070761919785988518485260724679240228983348894280762349383570565603310844599667048534497509622016252519619031926280374823940802459908016687915999155489085181495215150511471699646703646969329101344999799986483710011390545402354221087291375054360821366060398776379227391951668006067022541673731888801753454146884493285442957546452619615250455733740980177588477479444988715480824371848777091562745457614301462484416161001064796443281730173115649849968886422823118838436315627728540354957628330659604640616177324234088710058238861911527169397005979578866478851013273442227072801620159110127637408983236283056455938092593885385007639293945549762219664066473257763059651181031680555856295911738299270367755549392169908930692504865415858248345066491928212710167963784766591563038812800501000039662526506064336198587908466833833818029915883980858807653367054595414793011108753842124057176940219907951891477201625723669511372497655466488901085684858169785765662840361916611067614951096338881002654822798104207116715653344730746541000645691682652744628674242908628400281359923560137451165571197249007642629123738692015055606095431020527287731338601749702624280616225692059267821922543267640031873986330734610987942204523317975878361973043342963018329648704805508611315867929380084206468727764082307535695778004778150474922720307769785748993225653163404510344391897600071379655746338850834102096209916305289998817233695706118900260431518374922129464607266824933936019896485091428893654285739741059773284126589925621429347179555156622246929518461593224613712523803606249398559565965562504406047282489099416931031548564406740000820644657368692745390658934997803206775502371538501176463021098257654740400383458917635890350729040228310787187192316213713056240972989317386884354644654155497937519601614045206486660457146572096638302339698525726473079160566440830917247326916885710788154237908801248581898875642235982860319052698206463372327320316506353242420523163606070154763295302234195505587950824094748630487848470345073041599672147383284779353568372708535951915131786232198663142538059661682675178243931094779392219277061293010606720964731474174772973249763899473302881562843441359562329025577474643669938690933120424056139762780117185876233762953285498480692463235360200279308358786387374539034548822090977590539127050607278599450791849479175497626865168013450117608469620657559390189812146728284839831268893920629334870818548874044764122236693404891320777326382908056862237625971174471522600478458634387015130897883860399937156078400686793143769806928167268063245116530101056531172531024716808414852043295763454243058261693926446193181925812873141520244723841459590410649007688234766046357454791203770447422194779088406925104372899110306207832765937654608509067661374915000112465967547038093459108704559053795280372462652309954644428191241412727277593487538609623906871615107778706147747003830908818100595173351645010459648702527492395087879996301409046118025686786047301291774139526727890725030997713284093579308630505434480708934714645903678683856088985322303137074260171411383978578385524621605859544057891411915425692390293549878208980614644902803607383801190974438232402473728698272426932227926159195104480414500698890732716071150930651805590636353631997264564681287073428811512108271600696695346656826295829886138421001925286861170477983834920100940647502029676919997517196886777407972238369935795018444299198576693890610524586069795729312603619697955570334955736319934567825720596318754049839096417476256368233069911131133945893520983459420933980651512559651165106476330889461109565646665610561961963998225522856308900704508883487447266918348130286223818800814494442494869753432593736068968041133155400310751869473534017277985932327604387953897576490843190701744005994123377135752939037584335572793989216355127930576482089159701585306864381983015640927975234971505674982468795151498479451113820310248148665325345416133194171649486688106911615623277142836679364975219472698201502860302398449747630448914334839645222288920565234669535945070825987442299409988454309357234018200282952105525438053834699620323168665212214415688918978692467542547251627072498515624043272441040449680049741446986010096115019958278130081871197537902435065631003362930414202783210510056711071098217999121078119258551328710051134403622561090901171682562765813236656082971282118777496098545387131778176824984372191971130177593337392109152707759303368996958321140793526934599696538791749455228828073442061065731509031628944726469738325146786234646908909265199386384051327629104945144361691611528473420409991790041263693413876239613999733980107737037305537155153995073072608611595190558919277848125796052939372195439582224442318559342018387106897058985913170999309634440378698596017441211930843069788384115710641401909934256565745789773061072446855657689738276911351143765630645887128289394230194525478677351702143608206831587670859020317524080346483478044154024082015888980397725472482973564071324141450695995204369897447993182292023383023774142746131834359988565636582476734138171557063625317929474351601392718328981632197870458346350801201847224976560955988889154245077342638956684427028156940348581649683974819629926757526768459194578746738946649705957438321019936507096280111837356779979332657265451802370934265163518095000084713839052876047751431605080421925209575036446473402049941449536890553903476200766030364231340802838945040367779095328501775094962372597946015361958159063089303462921095282545890900927704337076835319210517866878136291616839006876676048026229113334962273983734611976599410639034186708935904000627265542323084815525809654383933126127716348355624630330022815150552827683183081256364271705652152484396628918531108030104637376675801843790279186874569338834905831154339040372184287358569688168125955469407146987109153912202817843697395081568287165147727382295736881200545312671177365907175065507631625377922860373105364882786706539487535764828050196451710899703865366642721478476887404913553607586488994343871140800998845120478588844592204202959170969782762888218976297668702130245192913692529208915093632829755734840930543508564075010556099348456144845399956993138837850577678322108041548427489569663736037345541882192026351982720669247048343513565068638211589425257860823186500181906272053705970860258034170873554858440022572586819297670925996384202852509335928947646673553737406098692437727474689625500807188553414111881541625266532882466488329221231827959140459032510895270768241508894300542085993790236675798226653517928806615728756059628259928861597374018620963430402609353510034581847478343412724083141732375321249786269039097681752658359734650335100644666691244506746857114502575054798358298129529889023622284474847082177396485561991061939679306218660141332158318359700419176909993246446314436585736133672456385249860288741038439129929909009678386611845288380670974031133279555791238535026059372897204927210463863527177979462102126966899684029444247163744117512925341983619247161279026689512240700852924358979952390167288374393192197195569948462245248899502883502994969699136831836365626692076849865931044016216325434974059892368247315563070484527505046098833160799249728893739567046984892272331998332247441487534938446210555713829012269579110799842177580054541241291715665789996785049533884236459139527891621002470320384387158286762774124095382948417600722167648588668428132835334081737490936507277922202458011910354269452480572124587630634387445067649545825331508782442653417013865571137349151256244876333658066785917423278655982864956672881596113363029208089948322671295874300024271385305345427908970518815154147142197695815574918068650278692231669285205004719698609930948275799581183242948531121483704051802067180015436709328986942526155778893020916071930981638478378667446201402737416560398992100264309199845887956220817738121755836262342245559476660799596909091204897880045358429776446324080180870741371933257086015533645599315086277404752127514786028206680358492805322068757208689447944028869187001204665618405761206147084923447485650948938302111930259036752763662647478243001480435214862307302556240699392213745336389691642464423345707219328551678790390043768002268080673573625883932720267482816741568611738425794194039360085531863569561783235806561110555946386148345650643904995703404035823136710723973699674004560798038243908825727248722299551993632451917921850217293679611771920266733089035359066745490335925004145516408824342271357662655236474493534523780707053621795328353272113855753524840518807062231476916151465202598706672916448461751332889649942254420461462409624947204417274189353035350833399983481427560560614785318936558602115874227401946899981297302384062609859742462523047060911834491716807331374185020145175968798894262835989269949438082582156055702974522855672800169341829445443716504957164898463215885172294067885279810010902040691031684963604390070099813862734826844560952933466166026374366119298162900645573121950957847968618548407250374992349585241838489889098620838084892327432254845996207619781059921099972824594301682338058063058790745158256841441693540610037769092969930708404289691712595690456452173825901944766358109521587917502389925759437741086506812337360781100699083146845502849045995969904151663249450920320801698819063126265402170751470056546284763771390516315738349939971385951746493427765500119989146695849110588872959264625545017250507153552938093664189752332426838285572403412763981231501898994197282458643735818492117877398340263003880027589047990068595713081351960843030640310819436150916246971373358635758903270311933788721704497427150628045673193910233058084463033628889164819454729339597855133685685448635943721649832305988917936975009668855562609070260294524768771776183488197627317605562098634912499457924497753558240897492645828223130934970905918881616703217549761190059696079217216424449748909217074724723288160644279819477124515654907952737294670347485153866829382923187999134657278859816776707135074364528518172271612707922959457087575941879265865691506378607970754396416395938829298883274007305350537179227487865113612985845608855358753915987571890188019769998554704271925423703371253652576795394147679762478791562364193792298471848068520764520406024935265435271701813410597910452795894837293267245509134078107382346688795855273156348353212087784688506611695208300607618655240979219372105663065905460306260151340175582251845545025432891468566630169493378083073579681289025642152893480796573409624845785770986090279484775270158510557739819104643470002350956597370309356241874674158390797503309680404487307275703820037784281076178010946950774987335004666244433943364326563663510181673076435926997187358095404417553302806663025095104276291481101585846726101759788880802612313598361646919904040019999157514427083993194855890587997804491401221902593996103474401519276940657904169580627727572326201161666203915048998621188139784274055666080009268611373279075394197720099199003895563374713645218970143364136545997353285625891129199477792717047002914215462967522961745157547501165443806026362971009936139172185990373772682941399445985467603029194924624845819177485911021222506568325107912948054848562918882205549242542284433082392014061687835274781553026140208934752194950100148308514640609560334143656925014470661213663440315162398513276332862267127717191034004583190067311524035058931761770532210523887841011477560482586491395442011780242285632057898364449362431918329634247138359673222541819197682930916771426728935166844849413556573076699000842547860453474788817669428079080894965403706764406442102223946394553455645084766710790548282778906798585046165496249588429164652682511693093037016454470694982884702728925921074015985152703030997054017893689033040820089210478700296121116490120711322835143289474441972722477256040208364983134785583111266865839942914693113042149551750820070472849946764655387155851657311844878911231066225046419493783530574911015498796453714324925707280037101565070233777526046122358097303233366425369134504625610036156970613513565620551719941959096816853560126735744952242712442389810135226396058008783943677473263500362807429078861849820489292748239967111723610439946826487112970951433742337249295435464166740797209446680163541081073935749763345298039072215606431789156576211026469260119873582964431774921679523481324122558338114609040100767619600619568997605144744280457326850015936539420333181472316636336827109596743599455415387173594701549584828684564169779951851861841617355392366354597570119126982359130810389537434089614770855381901732543178432898113257189030213587814290223358878266425067215438931478258997784448077872136196243428823316725608090963745873464108646587099781912373050750523408562755014615579629364447671610654795293343952230754967628233635406865066823441800018710420207064546899510906687952349936357577705820722680080228899510704042766425080283019566776060020762761037562500348673775197216029987030529842230536399349874438105781159264058724385651502837010512735220038879764745877531489153737401157175932407275831718047850208499812963345753436332295867308757416795445608935023705188318275422541720262917844310450456874582651203011705000518966762348827021632142872816542254686595851016199039876139637386730459460861907885357960127515608164723904381883340652833035074406380307403983133223872289192145741078429206568856469010013047892012023638748202887840729567832545271755524803843624643634152437423222019552761369135060252405345540201685906198967553912932717035210649302618281393112715094261314723868008207308945552912661678913373473031595659209715912296850790483326508343500484045788163759510151971809955982928781845451170348078983068783803958702257672198942031803754716887089077616211055866175360472028477129628379777594646408184692867317951351248554845693891850409440727374838031446947730473616632547439313346050548142840053051156310040167156607914754502418833174135689156423555426980635795269020119411115829472812558138201534379543097089023234194530450411763866208653722540009590010701523828701568031332346832475536930114342327213465714331400113450296556864333624558882473986860708901235914868395096986015728031461905712542923611099210793041327627697149317126757983494306005643743341155053174732699027503340959488213446522347497973802515148492733170819932344149627474656663400563880466865504999196064799191319251317771147808357806038156767577880185127494361675605297518435600008003884183922310256894349895303609454210439579024883721058963639927712435205248009699593354169157523190232597892985763718901524063523425208903001781336593953870342305800708721024830601138646468986285334732701203900083509889018669082326483312579724444742608931701424989677201516763295432215149457473319940299953438950501233423011773075071623177474080050624167218633098702889891228434984125978475066049438183688068585275481375760719635987351446318205680936185630338509007938696174993009869909212048562328193399555422501056258081699628915347807519484535537426195418532593532714062203669894811292724110150485139868273768910148682927649913104679460777162675115686260121446074238502291206874333061856905890957593118183940400759295674999843670328143030564776850694576197207640772370714492089679730632425456983585358851631906072971315843995807625443333366216705081078896414598921823612680161112989493043529899290756886391030160324246065101058103180617878446437746209207465956448465064102395095446049425082691487507876793490456574921285738955355639224589338151076039313752242539452451699213706089498579166113947547897602518432125311379627778730543715215451633149312155663195341038830248273781839596474974782918444999261523630964285203442903384155735288193242893980960634236785169571180272508048817715711522387916780068758158989944918563889734147598428776993534954134409914874582869282205268656905601226842734458871823493901071086968702719232917021296195099904678317162706534289404863383508429235699611726830273039896180214925195445563750802755062666811891322731478328873887333615022687663555565290850773049372823187989428144656206983750448311882787208824873459174253842156442673233810706964956521427705992077413366469096760570831856647889362192505759386665439064294896994266786754418633563343051973335797879371594515742180670441498222886796221248674740520377213433066228087695857143034925848564414292778939414346704823168844854127077207824103474467636700907546778962250714136260212592638226483712860142734724484468003651533975583783068475188260738636652167801668383733473652913857039883404764645892446907260668015141970115399160063476544972877148697086350139663413227234898658309151962900965979430477641544133949814191852493684323549178343361560539986481831890039491406674128219546633831739288653099386323299409289701052622986141556215755498317756837327593859821213520403685340934379419960163431129379588307241628328664078887119601549744002803523442058775632425723794181271398889359384860242671327512656879933645289314118932840227130756785443439782793984851635367313433336713114807191079949570866644537905947129598535238851151282587915417376798420397488155608053251632161516574292428683685128165014064655775670976005460077073408778701332234213223990399383100876789680764090026074471973707199484729708230020197912989415287838369273044435097460544952852666148106910477588989380591126765665518296509768431773058305252643072786890838236832757548806957526639351324902810392025640091102705309466174238047566802636269002612631197140110360974785254584761868025986120727348613865606788387254045925231407658705056643973253268299448620595722129565294124660297769158068776345012893466317819661443986561831019915184847284028251698658084411887069029630813419490358017004836645605357316059012114771926521403305491103245511626846153322162862367444714978966317656629764323660023252604993296455663052258408313375179887045107044312456648188146130448340501482177369035843612987046293978271468438015299049500012326077455995096323380950339591635743470088385208030242604659055628674827048155986150804398122055026874406487261659725250381763927569753752106974961139938664391967012872164630261913520212835829104656657290578240765281357616733012939638773189221372070756256487011515586534043100636077899576538404682880582148557343693207578540119204263831802106138537270248730115376157087867255303225869306641091501121341398090730980516661215592075188089110333881773985028131330433480557367975851621699191447523891853360504498160840986950527179839683930380728686917973674582170077081978099156609696542508105882449716990751402839369521043719391698334323552989147208763663735190951049628154322160405206481593288003118362710622649661754833755037331822237023608036151207874122678345893582635524030214627018547024988395809258256143280515484852290944491859621629989220822245932880546866775120592866550884600449189218879811431695638816120867523304964336075067985458165876658349277696219369321999422843745812988149944668081030826486774370566484211890710119170009384917721499768028713475057110737838870115127902408437097094142472532733750943518800536160541720112333091504506531392943362512407176277411829666757096658759322559253977213530317297122597702778941582692913768737643197549762843518584905471557193147440931563126766406734680729081662997538726001276562070766965101659342120559643810588303689571742231473550428276943092915353590853381890999866901055722281937603947184621090798291156627502094832717232213922947489861643872969258121082487362354910575292731717854680365129172469935241299370008186544336658135700021772510273735381027940161651265947163432870397281711667263594368352140097109437568949801049023921007966613253037384366865902032264179473017319039361115412170028810557730975999031618401262140708988556846346314862868850538725082582134904750218141782795470955872679474749552528428340909982213706448917427371879956070363277827857295261330564442144269503905822332255690534829135709178242188182350850089220462202655721380677504570096195447263487116991626063209108473677789672148418879338149568680211369768324063324916593758902363203140202318299585064926561776477742181644990398742336559196803258762665064539641603940779156678952345392037475657799180712018462294819811712836592870566251859602971221149665210701780595743701402366716326573163770650028831248239054990968330068656182205331024116373321381996715988080152170448130822595246010696702865800653114871245359147052265968512148132464727281498528129568939537602352371266901884422587498940123466143702531661396278717831808516781987865678190001747344046795956483306505291684183057712342117568153002660189845810574120352292224374016154969411278349598264699670693325939807808864923340607320961678065323288959355766642715374534715838062437745135883562425783621449971405373745957852824941848230544806175263977480690245205373290937577633161031247585747403785990220610360567471860320833890348905805253890674903491332353593114525127812406986565888784747948910839860506312811794286865154016427418951566356230618159902901489154584900525638287478995383125768839263326887994951085042259601050024779026981437349098857696762299603254357555558140062729823295600108200627127769881080984586303705666623020805761700219489582240283057121502882795794654095343721962733777507857704680499981456733968007184511050723787908540576076649839779840126888536510740028215676961515647829529579339349639014349018325758411585126716317234943341575831504354590558090379401906548283021094446406723221958176338356854558046390878736553693996811805619395403878780114955373677127280647203657399994161364957745853351367932707859674477546301186439647085463695702221731699378823340063382899958566838994245606254388416592005826168126665849784965542574882725545525974223225068930669039041330689643874922647233933978160625737251342717699998217841184077572297905396411945583704801457167809242871270887334513467507489407770846511819250025907023678793567313977671707597006762416001659106320159686507698524836498689645603282877341113090964462374812827335873731326043522973523716914292424924363054379178927024583248880382022472120967414333196801752147549288630235428292863501113898531446482428661433684140136386092121969234124266683511405301043022326170129641156818218965547634909376887791067651166631739539741498357272930943671381964438994435159106788189653821305837541014484015871451668174579815072489595329049711274607164719066427238288904601539830776569000045880485580988931002192005552945199459447883100055119919688796523781382653794817349269706333818529455932698772228913712426264642776066094741523096147276630421541330172074559848967212533123640768555109701555167449093395411763319946096409780374562182967306592866184233878233369475713140126109221391816471928182216929567992142687163798653811812848974086046807158944743008835772867174396421827934105350510130180276539098462134632741746224102372927808375126530591354407563794629886344265697562866182598510951909411402535204473963513958787632571235523372214651734155997781995032577605224753759562589876753945969150413443273998975379802026100232018160740013490442826936943661386204598829156812109146981765249796214072692855212109040464603550327375376096834150930868933885198537657090306345407589373241624054161877819414603270381215575080847866615432510966939457655481164745484206584907471635070618964347022726279191218381134471872668600973609581789140543322144788884066663645172961160014345873496440901770775805349942828185270953366835998418742543258334890020664097154215711760691413353622595111598655295128576348274694226329326290303043702773745895805811600791374315448225885002708207025859978101820763871564568708750802281475946119851939788865709790004129461037108278707025234181047149182952922701472824925520019095304436035867880996274235210368041190601751176604065233894967929935559590203485143021911585524593920135451601858306583875581617147142408752864772231442894915462438127159257820278748672943595402133616154756291295003626279679283689569067189311954816158525987091966265022869666294270088645327037480898569039984913824400761803034589834817071402549456962238514941820765150351706367460050854511859410732805104377808250792039904560368487905507092716663604888011258373045822718645035490394234240980363988659099803439548638570592851668516335457711243502257532523641201877444927746082768583148462454475524740689787165235586416445284577621263844686952061462444484241310232878895964436183185923588309081119287708767670634791541167104133278996601319309421329405582315615914946053617930174172509749589396674469616257765427253827668481491097402758213198725515687259347576039763235359972095981886660823875598369512320206016344128854119433400179200691796339179859062751138412843603949883036684402710469383816681930028174694778464893462013342156167675579374346177437861296967916433423274191959506609168384644227701672494148259164861675050354713665440266460407866753235742577806708664858474838168853398598579586331426110120104558667428839461333660485676391059001834704180598859570269793213211779988990539289286791733798085192582862336581820859282560120456325604178402031425173206992237375920663075392976668975995250251967181001910691622869984643989166240930788797817367717773698446511891473455617160440049984829406600732040443512041714072754671880582363140280324612120764935859723651300713982229630197537207646875321939872757669854232742949747505656081826721372353632545486418897637710326724024807215128710996053614086867718740178586379245863103188795250204540965064865859824810548453263593718075593717487470470746882802112264840195883949971308455758538752157595963301039587500854831715122765063544150195843035446944348978551421999585577252909506228716690663249777299520561206610421162170965772268198646304791425241116698927707319673510340803276103263283337675816907636595378874452230057185945468161305332251011372600961233664943116995265376009646780813089303033524258916851739922646218823812368174617870211169628739453746901319785876880959276680258602279347858183657226682051496048619869905844768966508610847915898555384326525745661411918138748744349723019328246609723880724878530286961117720889647717761364376655641335966472974084740794417868850231325156674980505507347955516516590856833812992735540048313940133868056345950952132791219667854855236145412504186003042193381537518233666136967032044262125663082300960584759334968247016711210282695910782743259083073141245307754671464443537096074812615356524444122524794428994580626397594727144396895905655041448914988722648448137599443973275820627664727409738256333887587927657058559531014467388086934155018760876481291087446300638505539517736345842245333068798844655688568407156467174247815194106252585862898915629586566900556920851215476770094818033395072882963345008502929161082956839535264374782570658223240828777681722567486928950849130127946111106975250601576668609541641197527982474994872012901395070426826687179148818999889939133827484272574958847461997312504539023448845904692372301441130605957575491171495220897785597810726290877650192893376861369557658851548879297212776824652059636901512431772528226469322745870736286287865247904935932998927898068980854896343058437809922407075056909623729222962669066235802189943274610628312986068660454178165662663360174586889117184073389919342559537552535793087191119337989880516646552706650479424337025548684397907882619737097891312286200309656721208974585478545767996690992365032407662784445051330581422688389680677043544249932594747415546874795654139299679890584052568227022053352747232492168954020584569254197693291398840070932464953643967160560976266686050523269001784872220572802067385398783252776825597913604184659933925302015843279002171361236686631597063050454670836057465671121746274318107391461657632932352260355482182025932668603879677057908266252327561029317890945653233161395900260487585287822608614742723884587087170137446875362455361323947990469569561590358011154335019193380735316203796198813319476028838449004114147193274728717667119357828014846743389339501795422494265612321935410726781557185843071791988364851551583562349380786845413246128057897949768372495107478791377032662881120734863138624173459495734891502443339214443486401569724384627768562908944178472091949400455816953764932060476385694322294415686383537885292325919263031423412857267140908868127490047872297982388663262241484519321550908404178196800342500783224662542591702925343779862431271033444338009523546836269668216365066457684175119326762697182551783385856008121648850679024927162933508306699493281333306272269589294136684686944267705412616378614433967357304539364352914745711742656019847239727931202151812568104512636067143029070096350994252785242548408266893759462588364092597163465693073602956132055060835995708503481585874843565025226918764160654793255970889804858377289106673256244772127524345147293029195151223825169221223687556693945430406132697246157458555301711529423274538322568563474364406050805790561196970160203805110575164225665063993883127883185885973911466120535653833087802659853616539124848545762053277657476999655444208263391035085427578240793625637356153524895511124453013833910018651764351614407493516324200953868435959995343846043709219487254372148934904867956081115131689606263667832235809212389428497087084346509501719840006083441266898505018627079488323020589139333609260148878590897019434833429176354790214371518058680674969037880337457236905927447581366226300692025258627821413480196452554094876295947388097842950006838165276786663322651138240263997588761527419269932068572596852036195320980776043764637425097330548828271929572450873384801605079117091869477570507930080804611206996711575458423502056851713501343085486237023339135816384668428085607100654040381909531953995443153091685716770384212731849223487980265782260225228467344339660101516749378786866358643180384306720027337153144602630285511266757990455025630061375413979168064732712527527234197248628032544268805451130624614009531389633211311490870051978033728359857318133519927753053712616550667279786491412542706367759076490272640209327476291099890903406248207829722720348653404858008933236275748330154615568305751990504113138921139802408122083149873686440026845667725826785768477041153505278680156785877662671472150835342306315788297809548701870424853007916738998544588029744997719881320980881563614665533245204437894936714406183732500099936313306646818210725399359788990233309409987880736091264256304957170180901118111207471399052331787356481038343792340027473512077497625767811636303398208789627942859427007421796911542914229561362075078840166834298028588146106587021995933499029775432457224799315977087674444549047462720702938044515937179798423026265195400579599457287209992564403547717371343752982668667715051464991217657201414713057655478175050502797571734942996122000328651472488409368708082649147868060475521149753329249619430102223605302785286171311748901817732041733907931606387100656420103197886263887243346937593823200941814976411508178050485634091986224787083010760367494200019156656994645700254465147320762399901626291612555974008086440262453940201695567533693289625963868745554561100826375619325100408367403238944433414462618581257708532856885038874703668452773330443502153337002429193207374605671372999575057888369224661097072771724259961193994216529188208185388621137235870253720814307396512804806768877637174806738810294316693525037488010814304030505172668339170068828236772728912589414021102683128133747174515994984406762145393184166780482295789978149534945946300725977540396836511885249261436900802199627702191753454728521520406527030434695091065390290277264236739792088471175499828292270001583384621442466224355263213459693320104046948949043040579177099985251122411439199534838110531626094780191257053231471133316757559588079476665270926635065660940478962526014703836509879417330066759324072442088781752311509738447938351973524011431431223495140103937510428338297965844844652830903868945143828807112212845958629233017111203033491340354029154053156822559435239229089040322732229701642616508992038966554050300839738371475284044857360191294465608004317654184397717795949161614815570465311325268557801729172796525395641997240355344953732111229129798413980144904394961379155838945491171165672307874875933097294576440589658211514786740170816186282616189587023345343307880614288266896309094826985005934841002745785612352219292059022791532988138193138834591139785164260341640766223381486609221490699721844488320293033558376664972135059708660697182652895271064437806955408096866299422345429698289130085279539942035975143400051784564671472376230429186442681950838056257758087435257853769312660615871252423569297663481830808200902410303999310922747656115830850030938472932807775526590523619642237666910462098082625315291585849270471517551924021366355336113803125746122563253914055050357356822815803246826353003384764098139218826775364538222198364954126176001233261434804846681071442998937391099998755396537982492986730765597279541132237769898331366948375799073510534209415904253499800644932063057564611286130938907986699125373196532678200207332178458241068696000872316221071220889426113008197939548817949472300064470587231227759140857146632504272021791362670591686886839233162424755574877081802457163101018125217021562504369344982470320882339216272704172131024635220810375565595537235689474135588684762296157682399233638396314625953640748213797579644395749227030580841618666003872384464016001971506587562517579533239019783729539342608155931080665773320353441910060837953307057453665286099252195842556827253450396584172552301454420591503310308357528985805438842484065655119422314843603505200329969691564239992944690019159920210649615805943662657557822110928460447703296787387882903055182098337389879105085982944060747781907637972101829757780411876355701375602712537622775032542298690063367219866892995442185822757365732570267824176994407573256109192879375667608710453000964353757297439780111219488163362543005758915881910645676742435301120651110939952200765199205603909169765021337229283311321862717872850493515764411649208539843859202682971718753896482181873772803802505300334745629453226880084361338218346309108299469584818795637525364808449901945707073318335633148341184740917240529640335700733042945985339103055797200741503783643510162742658723888459691798541373811841455105981338595269339670506778181965953222330633408864759542627248232718925505561456854773692508478661073460078215709637467166532978455088716271377836429127792289358577209865686072026130378300953670098126423522930068297206478210807820460184207841496488028155820593822459023245854292957716172343586679737748340511552243284985842595781957126104955238202097703577169874694985328696766396420820346033277426489967522976550662223375130639246008903396606183467184559204358151063484101940672025364693113385579793759317105961568360247299424203273249108453239507683571312332141866660774058810286553529438681430142342569322644341808619614119776798209111439628690221137591344592970920079133313164276488839157218628200343798845452891905819582203145397416336772861540097546764121470742965113652615780934527802730572611501064279340195817816134845964922277487590253144741058910821717470846175796764529835147995565744567315944387268002680228089120800019625174185964896520358858825094505470468789221587593269005147446298343790860987841931360646192333449976276932273832532095497530781910353477531732728542400344319631684545358825889527193171438969770778244730735632573529669126607758546052437009940498790628011112540053985614892796303292028892646194951222552193216812100042909186001210073409093707628467863372909660589969064095615469862841743602402884541908438813296287318874183998833756924579948848593095400072642189886358148210844645983545359223182895108158043544546124001983099045594626750483319302883233764443543041140860419698486426652244387728660821370259698977112871837404793454526594944477123052584997208257000843734293485228046616230491498470410768157426340502729288720141372933338963228790098626505788863563697453171394692758869428142751153540742288597077474334465765183220105447588674394154604896078301734295820257358611352650422536429148371593527892074160603072222629206465029583527737430847740492460400978084977746474399265866647447772387255723889125863015424987629993749741135270697041234539961609283177271782788877064408545802857233779932713445060727444927326903124332290201694870618285778546250892650799450169622595980033566674706490636691039807955928447786766334378197945753612850696560348402681182864425347656451521533405698667839502943235524093685245563552221915141846905555074218501954555449174048638646030902692854394850328080824484256191282672244213672171321518593252068543547786252088703436515393016814346553416336219423695992553810808641138715030421716519430769767182540126656695190126618608949379862154387022650044487739663392208912978284121540555078962574555456475671329293712307795022834874060104254090993976141207020234651423990976297491655728289000618303427835368370596264005615387196272679195984385815670576996474978019037563237591467839708361554514416795319335254994845005717384907526090872932525058177641099216507055435885008036518857642658910624176718297196478863437602360570427271106970467210920268585635461636946499745515732032159771886947596073778581021407267901437508051394740151078023147712773418869972065438852687708937313672038337108510726977739052759794985967952845598945169949451994745089266633893875469702321385536455771561719610828133728334063488459531920969443271954091243781280770661810846717872893474257804352805387923296658531406025904400902227439733365150054289513071609777078878889911213994785826196578487078703574720926726942349606670010083959755274970417068220802904787266897394428196496480895657599766609594336649975312009453978769672677241490463496788058665123910396895430303452940533412885468365025539061316438410430908325174117290007548627002604850120479277137774149910207453757062076172396051489199939457161946867971822055499980114943410409998319456934820861735270105582052922350975440848721998494314055864617222203648988379190927825079555598899762233246129893681543268097350585584235785081532257529576700811470548217164024711776487740564718274233305301633307228051167435279200622811102058803284389944419859509404439947707387360721587013040715871943190108875054358255895179635195918451240740721758640505980706383800591302337487540391268282470218359642475696864482341041735735732690629933313136307689329887196251493973631653077416626362015816640715699893847400488031929115251047778893817083755129222712987127502626921684123495595898445824005872837163007138012462825496102151008072412000402569478565652972084162288223172024189948680399419545142410849366350588075136483799982706940131277931879734749651004183627532509954137151502202154787439765466667082843314492609931461574820103818080023603888939562599514185480696710007976119231412482905614893453105728008072072434990626390177647472765093053796825174473132657208415324844918323525466987565608117084851183971198395104085443218858087756657855011234364911192201290153078277174478206805236966693703525963021834224765693969160162706945516387223804311584207399367989883618528943979638235299498697951970946838377595973407899343480849321114563420076857059150063500943500893698183486790443430354417952625951539712091604339175043299540642954809463384095869793492182006345807878039447719985946049457157665546252648490398555218475723724198506265711678239456188705471330037866147205528890532908837206963691982814951696387416129481532493902558361491071503613442539836671934909876321332734833540237987371643212471101060548325832987840785256325671051080378094730575473710705860545846445007341309637480572853933253951044310438333711465261959065297160004149798196303117091324238739831780025792547415548339040478320695719255653508656116214070161620874950675017850921525282494640828521404396711211978832164733523237007227573996867860168950675490003356173398897541232133183579299953035054552107739679631364230363966778945054613286105687555619732360140972483026053493297298560268991629661762438270563302172670362312668382598203847441137880261880406424798161952837373821389961624394788222544549026986539129053037083260661165602919214043985504079614537816384262690003431236888232596493630774091651254773695768733280780326630290608148528485343194592633711816734135020251609917123064645617594885937805835310064323765259030420485297186268859934094483298832209893385933053149062775681430564254052325566664300052453115939119806306271695724881469691699123797369039263576307777622581396635913624275039886834376366179699696584075008893197352374625331787203850766254804390070599816587228151695260859566354411179532744145390109869614825553191307055716185831149514507547481374122923927515414340061379580578907199327819943038964119492269804082226707574827391096113632972048157711949030744382975912678953398155480047470695988265679770493105633768987270185830325677956078756733078839790231995710932440595791363076461789015488199013264809037899381065999460525115955274314407843486716256754419119130279953145954346458683653000839056547930774736308897903919920127423599783266679226799996818638546464745707904076063057917731536106174710534516904997915507003678392796729864741745970584356758220120548054099278584193478559403057340341451276330109062341555251953982289705929073572278380312938886877028768258265673755088160960823748532689452669177444693023836750449368840841737980405813139601694079263852986924832904200586824112015909631274401838854570468071789575123652023573110312937302385332838781952540061366675800375951521890002286458210152952281818892438409039431286089447294358648747072724168318484769305669866820411163917546952960918821131456520884678727886663787516840567469520548259596466522334872352823124026114066949903533187086044393167255518075834686958204720474325424475393620125422725213414750815031113581856691069767434036491697574606606162716637413497099752004551054587189084571227839777873228758932201850738730699563234653796803689350396588356549420455643175881427090727183573428688342602549476605186474471863488778078549884397450128193297183272108679604044121311824805826668218496916167233735087648825106391436257681326204385396386133137628185571493839951673429498445633587407902014902175370407678216236614027695500575560833687795008805310509269559832239080988484672868025447044243408756577160323834075091207042912068712634591704974626349454902216137272008403559244899547830355414055943276480073508162640198219021152091918986857225175117584842690671508652587341679193945240316070961992074963959664259962694051682627064506332393521048694907485256159346572073673565350517025621317910717972180982750570626482857169958431473267948974846678774143624286617654821174802697988932059312081274927397078586804951943070150308183070644239135252769875062737568424832748208086789242647748168631748628472212456519025048739507197500391884133190404267815044985470366670943520420370534581214782620998778441243902950260436038069883206572717620780366848685193170408893533746366116592911160008916498980783546408822406567674569379857444899182824614337793939036568687792047585562846033485441138843904711817512430580692090859872289952198636300643523105006481055788267458808327589597352973973778715152335532063577600965586381960957129817043352196281617605699881565854003345179031020173299848358977769627609054680840455299008338279728757654689377985862244543823751165425518568876985869342221207444371446246842388911220102398785542126422415583917830782742895336854043849878772217100751216713094908801102913875338320716222055650066946183202802376833138019916160721167763928491743490119898595714607614926834501323866053772935635542396318396706139394775318962931029284017985394673043800374354677353454496622857766158895125197615996216578101781204642378497148173438361114977626855631949276986356442488656418733515572969421264234301495563457605253635489176749667678662717000900434036863503494104931103815584634827496737149473817877207489013738559959355858356973303679782265710975861661051047460397674603454084263300081233780924156810577636332204171897069264423157990486913746086386658851989659262028806300960581671501663005994642765289547643627542877861404148556022266168763834540380269089127639503800970445953270701291644431245322514430231388527736789806056106647121297326086750516909916814258890120144436904025971051038887905874136848207950482346089456365982767693159988006552056617934547336027889775486837063779493349700443036004320211723738811830708442377284270477313167287385413704431671390805304435338844820060179180217475630763161223840042397652412971750860217520139109365233171573531517374131759613421097541352981612804134976761935174718006749502785345792540821092170603336603391781615595251597371784480700745172824426219030448280180427650007869279248286669758867774519933990719457388655798598842146134423180922785272684786291161047117789815906665805781361454004180005326587570259451666482224111017431396027691459338114583121287017489694024849872921743743090195554161637730522909013024436338028708208093874611237912599015574154642374449792281073449521145140639224688638928101372595066444267270239006923305778025829012284515996201593562664610059977579911524022333282939997129079451095187268975235166689372520547435722459813352439419688364130854251705913359822838724211385931443588114843390631123078344409052981144872992605515969169908628742723922312689947678670740055643487369878172340178868442349740443469958593563328645028737705248710437946139329476406529415843320925782832784559461496502974090808205182407154976384459711570160326284577608593733266188315015846335256084119083356942491223297338357734501142666457448593329647562877427919809865476672814632459608117170344950929665009105769774019356783768563533142434312541135879553406914101485348024807357521441504265005458705732417704386468201624330386926694709972813005848254619337692157007358936346401546659529292944867564604242743317005832028615813507412428608279816742856121474025516355258742173514466544951951184576612681246738600988833149119150737187862538252767144122240043110128140625998822266862248879547992937114717576533238186385531939068966896597032757155729732673044685958678424661344667647474729395229067448479432212753349426122851193959918656555229421995607595132781793010851408925468529020348417331717650503925509775524022613831479844874643938476877708057268964377529476036694602533188533743166154822856642430557381513652805608055644795695803537845200923977715470069703832429912020622178758052185409385751723209482233434403835932760328302245885742951524897454580257690733436633887686202929450464662711985810412192785305934775230876522106255674941943939696284234740809582151666152592055203877795645107755550537014159097450886743885808536626083915395138988532638926597715144379641904570294225387132819345608138358393476499042540717331725995301535430410441675169286155935428973074225675987887315714552493893403598649163345135654489619316332678680831336293951295283411868929753967562140420260450852969486342138559322813110298296753826352203022578214218118992872853619029843992591146315499034518645852826107274854452108270077668678616736636545309307654603239955561996336470736575407492741215984227915061913741827695284653979310944066451552413986672940712035111820194536151489185046870252783575422558881118824803414668810854627741341837324716639596185367646516133820088570576874526758878040722924363427815914934130373229712591931859566036004817839694267164427583789628879237636047199908548701927056688811080464434306511956826004132772501419061377762069407556659832740986151162621216634359101018257815731712862257753420027847353869670975084052110231080393364440739144993336504750548634687274080424298461996234320347633156713395771724368355870719158526159791156749993933119317937784445630093519048121472780000614974801799435151858785617621788253686689700655845010636646369698970249543785506812833762227973970284897477751891103434536268625564021094289633870794327545415628821150406432820110261702459094894894456313157174081533317943184730676579626863794347493106686085986088552295971800477371850444557165873660890751244926533739246380949925212036640489289623076217459073694166163945461976222146462072761700352966155468752422193339225724050380556126741207014537850036807498476011580213843408749582790827285639612082866903226454945174360689298665171258607248984225399898314590459319204540713994524972446580657331684443130230085683355723877287293430341836018607956300514430459527376855873999844649980044617181227330120255336660346416553565781125463018998832793745317755449871077468515554757153940095728822858028416720149884195604711392868043624442537380388717849058310491825955554887946944058924101930455461097974127537428184834715539704312871946463884112733823353397004709247304078568780841753152490717827789026741337955763483454839057359177172329591230686680958751407230729894371147387764270478163268661177180299999515964587665612446962103256475985363265932915241929625121664104249786826773559193047231583085884111648536650842984669149785226934250895141842091885683468398446247170062344124487075571677809164939339863260110475761347225950609212202831142354369156117543042931076274129573652004715884526386730817701983598436239618945864977417114463653785347330607245408398618647929129985232630607078411987914855690959111185156256154514065655578885013799644442264190421783946120660784082444526021120081580645949803409041509700666518852234496645686954020195780274068779853295374391363262848495004514283829119812865338534535079749738942854368613395678219179423984727568007294083328650746322493080664113330946889996108878962293194164516460888758858057171040794421611661194842773192509434495357581771167453673116985179145156380824671298693193654272133096054239444742212563171995943889403353787706757334894172885086425597252815610599563557092031029559174608381533384290083664638937462994573239332876775304413557061082091257052085741486674412882474257571482079738256980671963328722930232718673081169859453474863984249410521321641702253989580949264028263493158433381522059051593431548796120598883945549906995349953010821859375393202213444613230580859338065282796857441603168890322536471941053848255507538431055933866531360202025855042388744312773340297540560974484728074603934313335493524466772565765399113159818676333017597351917146655018758544603449150834149759224302971190468326056396090783298495420196389441957801489673415956190436439353539606094708298144800894633199064083650394055928290576023855336397798038600856198013135580116439973807824581371591985984846806789994898837282819890668631647774777950453205915598307534229751282938188382572371534756045702099463011530647512475819419395270515368065604023080222224733427666774574555367730434390322339326008253000266157747531954107073569313067405570504060875296296182697952093890288437092630961900644915454121574950361588544125840015201234108543585781030802637803346748046921197142818547385906251350262826633622959827350538386014281372872633072814202331189835251532438459744685511341425151280428936328806971746681584718188154798924848905101992237917026744109201155581944708478104293244102352414541128707884177281160633286804040986762605118710301426026506317845055514880684005230303688080690530744603101231229676915538568358896761176842997392499664767782739156493955972927327467614832764335195190191362405014500912515742557529164571584817372676409036702245775759708761774368029504894562169035876858092856254615381821631106094580237230356397459290474579204805304887029992392119336352070933764039790671857393020621097950735848953966981217364916286363588482059984287226334907598651313887539753501358075418607168456827195159241260650006872914002477794407416406784274845426106712028366378276092253939635959604277538950048886470965333143554217104438455442217721497836842036692171411854440680201055121346059298422726947198911478830222931424251964884123839344260212818173697801731965666092194662192093992034762407852429168187911560541257425898501387509120795373371347102957303174982240395985722865929794322280047349616664842514825034976225809436799679634071187723529661149189076243976753426359877488108165998842392048662585005982556668586229822677700921760766013512339189960157393114057638716200325015664095042217523068501015173025637505042390107136071079321023250250212706431328491874519195802190238071154600581970530239481440391949917552054472245053039370001375369506355787481635993203437863448356616974944350341111176977880324870794120829569024344926447773499840431634016365187372730640830542199522470039175885432725771755422146793873361199480865303300964282311787475204897400395639112523495521923713677618840024958830626357386580356348531942356059905736439038513402181854042501078428873073704581677832147638198447322791604679011255679556823642702430511983079762412810152344993442932089170404480556865310090878135140247884687671656868503913848221337232451809378981965849361227338095387217649502563255229195327503595476461687680148023073391093058659275895504079398305143734491098144261332517080462610179347042096197236927963307442861909453383283060107486354525292526109787192920855556529614045323235612749862087944681769052180353008013379914495369992217108306979833796397220907550045512994313844780900662628955044201986134872321862599791194031809048670801432762367503659493999421305452219879925537783261007339320522099077852197665306612557039014617647051845840487000606535595668559692453196442568706437920754446885731911829769518490996738856634504513250418519161973046863962445612990482049767024683451998788018606471433324692399252824167194654844815994751703173215004679232483630812246093398844484474539798553782151512334517873796230492788630124331807288039212963683495497295909979291224978942920908559500759147648792258180860223442267735581027975839189926633637801869407696078020398675868747776286313051393024889981567374139430594221761906895367461945813704719094677664154267511965154641658545441512700110529840302179910143091010755795247317570015551423080592754991128776292119871474304255317455708416237828669348162651955880361494256802153440135490819986153713598311581229673272654751127986697207736407484280544467136318500977499423539584126790455738487208535285824424806684912174886189747878995552281936091547692795916674024114464091290962713865868718896309846141975030426444783767004583891125995078096952374020725899947262609871848844929197344791218922627572163614595456551153381071972786668281663295482866357826027380266219139526486817438731801547842882450082342698256076031399805390692906928281043638429787976791997036414903133031030178581025348417130748806164934299395159321848782565436630187776938877664219001423702472320003163408099805000650464561446055246313666372713156771327350100023201344146693729995124230562329468630104818476624893259585450671574608053325421461423541757203819931414218972218115363411425687759421111589211532378838511498994825794697906582355433322560278996262384889748484618932769770986039189770959566958103477855153692151398977321685937066012903775769658688280387067318557780895647689157164736814972727215015221958085516009282522079235682832334985390792001252527122093656241238879292020817773415913088553560315756711306350221589091092545076100425319061874527890949960770725220504212486423745917305619574258957545498677000703342590696655440404029256079860540647486162391083884409657362130127176019062975077306710433891083532041150802252221990226408773524145966092329036305765821752162119973111732228580777379282367011586722948315690245098042202946118474889213704737050065873122779056831495497474455012737607918460886246565108004518693648371587308169324394292249601643523297039884819530932010397249145560881002690765967101592850761889161692427751106276241036466922839684183404793146205637719050672341506665880107037483875719599119621909192599220182322781879643252429344773048259615037828255857733514362231620376090991663704160939827520439333511246881192954689846434917747964365437085927630987956526512149335062611135358597651601255627253760968126693793820429086135769507678413417856397104493736049800386106704839700756016086802022149959222563995418813123525952826539195345106140641189741135896368549437412813187181650959229207847360781163284627402555771489673656011290784751195324397777046412499066382058455476174088857093588788937745420746653855225703204909831618800230993524566141550840546991390162251422550985970458618449723576580997477368531674667091029235682921392827997476231417649822744833785927438269298537809963995846109439013834156832157858403669190675162446870858333034536542540617155674836056311683015453600960540238607753439684882739144862289318265846389708655206005929416375060247439815414629897268177264706814573780283714201749855077044536223978218906583737738278964353897695458501923612062713524376376527930607449059586313945848047940403971862510316741936196898246972715832443455917184033525161255400855783722587838119713374133426552199841503984126299159433459823145359586629715423970245395721269886271628817015062941114136017328793614958777971266415481504815548016740439076114495789333707969951183996629437212876498288951497091246084196186071619716999283156824791676459266142837181314204696181361222288413562286760126151569457231759383626608212919155744240480968938550983169213865017003246602610071947264994418869672504767645431630675438257594037070570533981546535150314705413423305703428156330816545338191629212726631185631362098497163427229402782876537618220746694454265169039922755911524264907943589587334426968166509740244639714557959790731169525812190539401141112198693900155496996015283549509849358406498213174546796893811934225349367689869175128872975083956650285552844741140432378366432701526478750889565443462148302146542820092607206095918959612013982703418012822544733246710490252227445446588882042404644917773824760972202638891892467428711036956624247936272010362173362061199740156292902954780687452140223428782071209950991704906876301740761172930176206626542276470164070450079985503151880640058985630437566996256449554332714999363002068311763206956606012338045916550293362660776688124173294328515300568483031991959563683415332476308234602857537142374982418872955806898234162618501476177658660935553199538509473609478337777510479136889236964263844028147299804352956890389752119390245067705336864919991659041831818598215845921386898843495054506513084218092680642049923271395808317021639526261652471788775073362645962629007328042082344293117215639814827983082207514062425452540953958373330667508036437314813713670995437823605785845998965716068075905875418512484980623131741383788120563320183338419415391922784775296152986776040880622153868154170932263323005246294255190852833141490421971603795178821816125164458328046706430987993325432694053095498172409037127103676634449529335485601087001671263468121504955140346061576407283083451370346991252120281418334713319194927689451247906478757464418077960958181446930475221733457661515261033032561725231076863982779161757306256808145213796331006023707555264155379616610577992455382258384739443740067575810250744836346493980945879251619144432842028352185555537439622973329671906594400014930373246201048821685218366087080994736865582213086308914189504432634766413529637390761320969813132958852386998258464831865741478473336679613952002275416791433243029422305385521715632229199189485998254800597844048544587429467466711303074265275728222197289475244031735102603151712709052372336671653102231635619732233359869516655508590286955979692516474430945523392536518954930711573983740068887923596344448872359482652509132408963859746763340982563461798384422697640692340828123549313794640742077605229015245392781477189815465422997442527833145690245568955722098309893619671892180139617787559898140955240328560445796696244831821964264371538883291421660146780420341886487229641687875704482035497548337372898258108921125999757126749879568630624320282357059101855141781319268621304770414617307967552205198691950929701590192947351031211018681347352345506900870501006982000262545957671766799724130223818163577216737492674809252361808291557230508096171538298720624009285212338356216348661654963537951019801134479664188308973787617337139696777211704088674013922445988061188130985066102546972371495963434860694766438438393919474412211505697685691937339788207065757527086109472239725951788944721359542863072726579080045947682514218479856035796205494900430606154087571091222383423241508734679043873828845894785496257879867989051971233217974262622583273455930053574386760111699769558756331503782299306435028642112485411616391784667014966029149642808505425733867555258792607021009784254422356780504864337329021766471288192801474050663257391063886295529896824054855879049125326568947305483531987244885103004027790690344884031880760957894182557440221677759180541971717647728565840065713831581753631483811233153970835178627350813584196464142233371120572067954616290157938882060361888173020305171121301837451049616758157678372124011362915269056613444184158584229972048633526761310338822179616386886428490820006249674050199036846688209471854084273204434173434533957996901699084091668047005714020567045414903078157399003987624240881029383233242681202988250806137347032858386343641976244432366227960287432272640166628274877388555284980961642524481879826525422024623426059112423031273039263062248780719999938000493685544253878031017244498860923927655672581117044828871396898598617984670614457487859370189998774381235474357825877430895267084351720804426310772838422862442824976091419117308414353443495097256595970447095293066084050581180905800688928565904113978191879482706046907989692709178075397053543306428004345827013333364731003947400886846102893186992443482929380044876058331699905933944291532447977000299848053997908893091748489125990319087043784130748953534126387179801660280403425670849059672156401491888815517212339047969801285372666785690055634288229644326522940395349977785591753436442198443877244755494658549188402047919509415744432165496413052290633056032642545587179609477918236769391982820030026640550357907592086353074813891274616778268294802072341079424149643065510473359649738692993002746676587239563981309489878152229330196953793954556250284609792892849499506519440150280902874729185583108508333607706988426710213286779709469779961206556025906830169439582398430445744176829449721057980182700847874338566331913986257423489003096979833868489685830949113098432113765674115053988922709758661387481496872709633346586832068812456809668422634621518830198754752500620304161500594515459112668305860697453141940807839427321658314427104902289883404160302366934934060037000720738580138494952970562580016912436047705989829314630574908488506623346448811449809941602384389838544871279235676931131038247291067179308083444434423824615147891393941018641445582892287178074699381577617191437957902073434118610408160793392073354448774263194096636107312089010072341290053946342992461563613832934535360560204088573741882363440504322155043185615088306243542910365905515564988543734767816363937078817884271515550925332636553496124025812693602102888239074149127702578245689629240777562312827832164473980880688220577365314424599343203881351089166951475056491769348809907973329500400942510227347905041441394424202108231928650432885409664203217353761797753613497690683704301113907439480212766296661985501599914952215409418895093854428740573281166310629904408464928209084372546715029408947757099076401649828775168009544090056634880845315380274274992503667539775849300371579275584080583328579547694268499687717591511110900435499200350255037049329035632209336184617620646089245471786685209223495609415043763132650812449033209328641526785362175935050411025203804004982461277227810020253266955683735363323617786126013451063334470586624995858632121662881258468928497699128387862069478627878309293126353920852635850534603633549278062943139673702696227111295898344849897596313453296965901539754682820283537404378533036857578592308795198617021105694877685864898256868237790903170934318813748268670780942402183777564175689111859819258852202556411434142559587147799553907403883966827774237981616697159489665467069564910745852677621193755564584040243721853338376122651226019534039204473943092735907179298051062952163652488352347212611273375833709834302907873726950294906769389287075119051479282673161226414614031743272496951693794137858151138054726649334087103133064672365907743230177751357701319800645427469462610733492330400324203959646792857640952402776194950402383409016623545594390673095859628142115970695662026586258289047043024687330254801227295659822980731716122650216554337533032103815049304908042544815849990552900070727463950645656906574916375664908165684681019236985652845443643907073278506211572879602983566819119370700407405972941471835113248107142133756948505012672105293762507107242351098148773373922233594264368607487030965113983157139833259401411160619129110160840989282964135421956972156672080826294373200852123526898673572563194767640855890073816826993074177303732543702435274262575213034699457357455922649891596580693317170924131011726792246781058087635699921177260968255642999426474913934312692711904542504588769080006034499593341741793497598586145360148121508033243614708794998302026403340181617367152232278132159285006532246268687877894798693541337146412607115271628285706377046576517600091246132474161872553374088769608597717579496314026319969264794476928937424741211741833570399774348652552268421976039009781892046039247590430241983699099323044300440382611936086084954835034107846262383003460498573522035399510388130143094629610415331591405752272184059668810164260188934452338942655837003604789254880590789605669553680632933074808555191670672158892559451480262543961801207417145057768815660867663780679848461891360159431890976767800738593732712117381363778503107227866467860954620030433181082812518365041624474395086125877543539202690421843180407099382379565818960795282182400980628893290130347446857220271129327788775794110694184368607726156308045454172043726178210296411955446141683156067126882465783826722534344023063739802585735426063589026088531207802012591488670369014262017909722511506913700842178102114708951429939934901469014959074215501269912518486379912499598251872000152761421455223680115044821247588911798693359894572248115781512476314732387568789754377362779115347361070587247609451851279907531072849577760258062655353231107816651513367416137353554190256581294649689139531415736659384128497991269454936548500138246850949713087066726419477312547769785110968581255156961462679537872376294721737156468067532462626906072998406136788557762594318449940973760293443386360179809531136434249021312939502870366868967093987848491440574525104562120371372405546803876727880825023859790160560869813229898434312639639175192853031820286940931872419633193520680300456535062999337649841921538419632006866781337990611994331372095920277314874327330540120400027342089162133474825207886236630121390499961929256863984053092801536961237181770631450345809065171178565497963739575083486272344351274921528399392124960970535696144174235095741527408792230781858565168389908368859503443540202503035233132051142914435359261529110051395974505698828575945862783166020519867973114574137983467239162894106325987640007232649705099469028641231076117386320012954625855440068162702306115359792476632392959280513318719207043708786414798129886971198805765419252924980620002434548714588216876107614748940636911482241365139747394740982407639531671315119450795737082536238431437478542483346555286141985231798350835852779646986398484672849703590104868246195206173862009848038906998540950098064441076135172068426908771730135661239385983552642321246903866961260727946988615033147632958302304961645714525248440778064100978036211460277505455959980157877678753109404628420920040724181122428882987498062570330834237726011672107391298843536700673666724852025337229887202990337326455037580274310780175047860689417651190498957694146133585036855557768081487333356765586706568160769759678022535808240037950911381043752710050989203171028938742627026292892778888736514675167923881886563561273010964793813804870521083610876640368530226144132303934266045884432940025955243102026990261788552019659611961844776562565240575311040154493786171290136203934244468817639981716750536964729863697426733726695828080583888714013528292545122488703630090382728237672715452109839335560218403080706132388903035942601312644431380339025174620708853273224948607836420963929376901698585257333041945964333161278088202239276855370961933103788338001898724708370344034465598261953929171535589388285744461166114703259808878393257182070335492070039569177333078759345994272182681942759677699156929384441940261417011959097913454442713087784357278253187060877096272785349290407525751903016658829025262126714377163328100034555232629964928147012972129162587509226607588187890800128487661436845568005381076893709121536272764213707746636795686101261709765688354367954954748759569324811837561273105475986085229280349462941634093059549498113726064762833389987510787655789071615207464965546159758908252636851413306640471704597872747939201880198401519774881715099051985213170079835555905672303650756003885256028200417757185305251542100027907821565459055421159788364384727648659210686556822648431567165093859494256853661741240849472300494628236566969368321612155182333011849934077173732225605210448330468529797305327452470357156525544051327963080484632290913445610080288802677805654076883448883161907311701460394661588143678344183043286082310483151657987651274367651421032154700793767530706344319553751559556256962701289560608550394853936739749638391846142803061613772359773624849708423449598718174779862044316924031582316471075321147623329076822665062139364638117775628300585680389513855888232816650367246442854259549719205234273595110225838525359821069280578668516313112250895952107262199535521126019378385245106849067332107124294409699185015282968192179271257599311782883253015711131186025269020218383512264411379590021016942865142816408071672479343682445307049311490501346272769377592660530087225394612739626282281081568894003813446605569684554985601204841453552514303348722305155594131402652158203585974924765925658649134152753573007778926104905833758868435964523940324132913909754240823151439637269516343677114206611755163622820982913848758292848495277584976085956031737601781696892762835540945777153242924754570604436508384509168666005163075766674857786450689233393642056703698715533218256775123155299486849898801885739504350389870069067071356741144056024907960315437370587532559754774892737541754142117767112397748515585208597128500085730616982687787433264503219186939595689316650644948609616524756222589684059783357561772135592282517626251539457873191297091773889153217639368809904043485695254531194659224862698838894286771360270510106694019959317311732594451305063822120357600334889527627385745387968553902679259213891065016423725815423822800981745570477964320988891649613040560723152091649386151285360893912958321056540739049795993629660256705784199136427185476952351868953717138935363099208856816232201809523198691020308132582368068742623304151349585555025385242997241703631743461556127878858909473317219146484678520256798148432750078218914393576057129779330042282286206185688165938946145123351942461340393997670671876963816722974349227423628893704990018812461243679231232533899685801269507133609758070083828725213740492113046805286826443447932071347670122704835393247827587086148766156506807027585905986867273344436082912127408135219863935184339818637713668103540332632624993709582305240762409501373644150965793999459382388722783528946630888800369512998485192879381310065880044217311802288043105417589983343045449372614886239887794554738733692672933294317546895602750427132416076962883209990891609583102315240124245773710717075402336812369181293325662549070259599023546102330119898400056673753719876697825746274818981962526686072565541788966931631185781035498808504793202929369744585370213290035686750519337411341108448564851622326135684365786847059123492134014309369922025558455227861620709814271418830216903378569028915924473149754409158591618178551069096592355315576620530405555593060228989248903578605458303984834425448509306971708160692826563838355380297881093456470378105151281970154530233409613947074163350967919454339793468348527228817313035308071272159367833851155247949544845109928737065420693942899374022320939054652245630660546272667007660681417291221645148629172896269172221838172781039089661439644164587073348813549362788994280057987419744679798280682895559140255547218055394443202700460156083476128915524318364687496823292127817826950632967739524485010905283099979100417269491245589857179621995543420663087609688185203161809658874306228544326867953450135218519831392678360674143780182004806227161217333198635997729901964800376531609304287600099459117355550469300424025744788069379050755728197545877381752694613485637231254072749188192314632672417372767388569835725039516190667482304484680969904137567631298332844453343346984387189472407876806768678500511311478123581469308082312294316211723457396447806018626973255993607991191890104200981914101887936405481725031395707514133286654733680835145706882836329354087281424480211096312352014281201236350872251092354274758977117231315837868348336142600922616220065063402192330582085706749414100739278593510328640664871074403718512958820925791710635044317603348078220525122094733606691655517375481996749009728007494162258371133825903753421931523571989087484430118782027779406652508647535484391313337120945560020091662337109413218183699441670804698062296823895679199009023658198737995821058778699332527160919880204887712907067495696667810203755445969822121448395725337037549843768821883834375229013131579931385317848058657539364031969201909368229891621397110782808189744763026947652286920588505371624235819930153091823423366325929908688948739505444052862347072193163986410140809880392464541695639200865807623410370542149017066284487105630348019274231185642810378989709372789090434191455807475182007842212087743687701381487275986509946925092297968199738396457994713160666546223775699800866727162208123880897342159486261891403270073128816832464137091059144216363726687409864522498149101546742836318383626238966931472812892788992350755215534159712028500331240176865170358331026907432690501284257172389057320976407349224864017248613961034665902845322141524670959024343392599450612800970513237218742192224205809528287722569118218203604010974189984244848266903919678147959165773893060150084328268121518034032277817049717061731674809131907666206332774973610055328749551454609100804290396368296296179726030882937125718318582764621236685564010514945841912120877397453247321733053717786219386165230924496780024994844732026487832322660701999908333141771600585612443745190199869136069520775435256943387985427812730072649374530901689285759264785755454543415078157339911607102070679699444354099561161048775314952682396023294495245977165150140567761109685199074129201004941696218551174516517981877540898598977451679650061041495282028231169750583124126074273105268688525845507822342559231018956861202654277453205745614386591119252689485062704101465263339247919379065826171711649092539792730914416397995948345176384298735155076742438576550114422032366221403308774371246101453003084195150770025946503603983285390592102312261676443236547321055607175608232333368095489993358657062796152504689588105189225924432465644654966350874840681791701281994359920792061380809319823706593395931853593416137482314344643188969410676727841483288497493725153732815660455066861975878677681196715466204960021882332154275157629762663698083471505527736923224832722117394251984425897263479284228751819167447543472083871180205641198376600203094168052150263130046440247216362547546727962966326282491410450443403674979431958803108534152091468120842548769097791797263984567947856880453475069663055980196195488906073651738812536076844915310241492148682713714711703632138907474936998148412906107349329898478763533284355655647213530089407599762720401863029278787532250589052287153811612570448081957165912189280835435727846302142910462075091165823021198272430782694630108705284032752507635764111238079674117437503823073355486515533799865711423952156623235838989337135276358250979078612230316663926616116482395843129795849244226853523800512740719467566054553617922673018228477423492762518122448162814128105990039392818230195296640302338779485050618452492813668806687144122265497140839852774923878892165540798625613010615620237755770886509266330530373754585811401590788670221741491358414049214706140962458215613541740683487859256723262333666637176597842639209443727633311943453687990726188452891096607984801454837925397614512032931696067220760040991550499908306284558136662240031119566170490733741435226422916601761465850850575369210163193378475156029397571019740334372491488174010354853089271553402340016532517307726965581303937178319815604017699609198996204112049380841896299193776826839167885612695184621538327287533607353386710576573298560750706384286756062686346335749404214152656354509681117133886313431370403369328726066715815984577453332969927373516455070209556049312908101827131259760180507832492158514227483118777332235322981945523216983867008410440243214246770092989119680934710413685399261201612597303901025596016170416252456807252133062150258168678193562200802074036674362332288595844027524256194530516965092608662032966571354277152476930563108724446428749717674663933507276092784118996995924269156455302797251115871501609793415714008585996017645675864817962567658559929475778228147236469651325408168371155074378206440650399333448422860817059520758796008192573545391298071813979508257702578363976573722263027615486395733477688857400248232862329274758443659899181042754471083865337004470257320918630572361943963057653635611956424166945898429035560287722217904269096697710062722409616012354804608036544341318187890151873952337826596527628797980366665225354407952913183032613880589841701407062769036146651541144302756898074790782528146995871211221927245918531774366073396080752706347730729699271692512646300516901689907529467533052599724226160674177254103867815708275552726108564282580890451270025144530852632364258010035187358318741268088018700888084645864546831520000078389009106718758648456289016765295545617281700795950034148595188676228766058008114430629581478866088833705232074661200035962232990648099484517007821024586362061038890176531734266045929436867223017470620941589043518949214711558627232914724468067781742519183310420299950645007940820353803104973545205342153237229927423144722705406474580238423029238135923789068171711829095888867934819325614140027194113153724199902712788988826212834961698250907037335502302289541479974851784552411082330808820558653552307720942013342783016994999291453855777176062313743296732347071532613242599309494046204331771769297990570816365235992251551688119504131428955920224998745269482881352706479796968818030494784317176863966015793825317234692402028751340277977064508641602870238647795831483194253210848544597328935287481562492236896313539798295977319444395905765803123143049714513281130823256614696839801402184544449330931380794701073285381685791993191234152987064932377782290402674453982326705546020830188323486655744539840513306589015485083796532118707648233119211174383907978183968801481348774815374673847476772977058383274922660023667503675856206814635261643668163404037976630757097382639246166938760596161709728682580044860031394722581873197853600200830949721135530616308889778442280330014433528439485832993062652932023542555096433696009419150355403495003930141496690458885290591394550625496667933954298842829989370672480640328139594606387953255390282921540967624170505922692406190343302514513806798459360729271416379749311408015520096226557563237789522248723732155907515733494274830182742768785028386209380237601434547979341151278239032565060287809895539006297960152472155483078428060855083122709864175665794314584532890607774154091406737708288574645737238109645229777022015989866035335063665629387926577658271476837327946182338636460506087237008766981388068353674518937143654321338171097446260807091084055710602966144844220417070695021350502768982857298552870178711934833533580918519666351404511746665255716663800704980299600954873446462488245483282211849732732944955331248210494066934412824389402284573406475191458707349528153790773689359602409328657807217147232214876916584827256913501055898264540522054742083219156586055833231147583519274343674668225785541459414857707954317318422520345977050271536115078805848446955963566458031167994647644177575399105521417763373843044808369424836116757382794425704411756352191322142661185509408355274299704707360739867704947694938451715201195984583105900189602262623616706792834845976230316156992460054849264234779755090679027181900999470408770695837813074109815537569068854603619683196200246362233334384350517060406864721072531423853364646709274732783715932412242713132802556773698263455479906887626309719212064083565860778921453129203080589450710122596490024757325851681985274799158327352554665363073868262298847298426494798831285617293131213110152312783333393407132953642718338939260024164321047072157616177110181722900913791488157681661340124038731339674416001830544001966815014076350450144651250393806128647952170746705987732998828515498434933040869220623519392732286218135023359130329549717460888347625237207614559941524595237910670820208326896662418032315252632011653505038889287892090850586538761175419218952836509735075503616084837748088337137287120559314009179920536627402927929977594776682494020041071292338172043453056372303966659747996043467209750945770805553710883861378304420540387530038102328710942775957416901501841281987846966383236741339857676685425944462870187255671509593121646694693856939521073037715856085926797239475772353301955458559108756310754778662954150513994273074246770574252921242866849895526713325086028370163580942232181151777135825702500138362216155010773449762594027776431430364589682293300908934237693200824416968480259497002714963147052288671563017726968692940655968293204293030778517391319166373812479897266464548197066221622627632646920289582895459480221516220814286744093158840283468864040102496362758303738606500368856343829448167409557291500219174984131396497131749252644706436634779726056623367870310407530012021889309848770601444930817821914559726194008570208070663450203849252147674183716692253714608475279079580481196821846935332203152690005881966893156723228722711687026988695439388331860872979953290972600359045640969697375641513709432183971073380285366091984750554712827198908480479185361432074367324787385483238175862742267011192922699714360352045482966210560108226524750079332524532825484258784684499697191118864297860425539475524449062588364931243728470176658633970732594282766441920976768650891898130431913273637998787144718176789429310038835567641836559682767231269472045014025008188747755487070413023052833299193706065962928344384169915098376483222656736528178512798250360331681418706483969731042673041990380916601092308648393538649025749560838606329826936981622261989811894982507802134087871449139348170537385387481000853054954815898582644645817334353521979715542415231969817091534247916542861614223641320896827175082387798996769365473865072573442206177950103896067910654907664549584484562417198042286899291172836027729156788203827872767057662911547956605536647232927570997929233972243417642067029567241381579795079903427372040694014570403310755829276592760121804591962948787173887060444124004238044242213616218416261657557526089248166598693444486257702658573762802041640943595003603842909200913275051237839987786660269465725782469660429421366030266106448424776550520114600900358295430591184399308693507884089328782506595909333031162944702285808403079692684677784328164656462097346390821805593010032852927932612510363084136566450910702284135665413055002777534826062926608222382980868453291961893050462443709857541716899033654031375376071230401916927617605365311328890433238770864371925317486950903167235794391721430023009772876966426777566623193000899908433571193743657146790353904063486861475798035503699236317117767026922728541855457703189055340435523883071196121076061905070034343772246163222298353019127403172717960810296068603878969803764011417387344395741951957454658244176195958175418578839479384948588213034738443809029624172238738671541870170795273486623296681491596179748496460472843723864440490533509726420121710007137135204033123056465926370036956603156376139674685097087409132514865616519304252376349913939080358943093395938450580257744549138914794731337825065664551912769007564918651720036739067257615808179810890557067726878413912323433026157099133364089421835986906962334578246941695303736037497165561487114864186110675710048534639233121392514614766068212367135716893448032142205139659639037166082389947847781207657309564464631489028039719856375047735808896896010891593011564160452778588077149804280920253302851714144463160818788247117243582263098699853385344668634848650813210368314131212343756468657364440501056453192093497558136099468573747650974192383662070638956895211032149144642825655070222225301131254491112793080638524412391831790871821729051764867777265803771252772514740384153149667747179207221324088762422916194683923041876157673052977317611351873943707220149721698101492741035117072361708343212407555736924503492518188470974747715487199509673441892501494719447945738408142680729093891554986298585201394670406645897859242261948690117660094782835394788621894833704795711123719343963155777163215255884003738530993204918077922922261520831790639357024760674478625605084424014493806090946474480489628058852799025706760724175779853082439900043366032024184780840550084017147660960531673662170127124840124743374504976259162610931401609971581151366050039775713179622272539890951263018851794226538836751327968850096492134713996365877446272485377437107270154757131679179730072992226675449918582871497297569732652930286350076164916960566072880356504348320859593107143181421764881048735554774119602063642568045173817093873437687094084183508384292142818631357773375864277307513669311873102689221384652174734160052483299511353943515206435081846596491597396923657284388840489571069206538254344982391454634340363169839031988131264546996122371736322526773183799570765044529425331676680137770013318000961153082906738600722787767053530825866879093250909662117380669763359941479123989840394193266178941850700957530332473716094433122624764631976370332006243214200424723007495040893457677992769431185739421347587060324477062670380532636309636793306418929026732032179591976418781203758871103082432456906827761198634770399311110120303976865635296866014069557464971002441798212317948095033094981941862977456342307425341428100006858471354229116668311319306240244850348627649203956954987598814031056526225089736211203153237262950909086212578318718830428430416246660918042807710953430023620160572874945782725950389864750868441011402733110842780230239028385209230625903496541709615821208071925838831308581779847338291486475193306605208998894282849581419614388034350194833681491321776038062470586951724204379302315481327350021063583846231571355289570604185764510217263017698417447004860074549666719309638958761177781360291637605118026581679986634203551096300128436933295978478122168166368361126330102672064616601198977090478356280249192924499215022985196783210728804360051903272957060649810118115939819780653860463706986612397663580216992690130243060590860287591138464711853187225866039428482670076094377755876803264517299789780190041236659163099058322129705476413281483132299098376283740333764800724757422110492062534564050416551935657578273378814784978064576631958011973132157413603640159306058167711069909255763522925827972510413850056498682370652660213747163627830501077060339296970506651543590896132003714074285189604537137281717491294720323813861324184687074601769251039810265564923921441014440374686271561717382928914563229796373104856030887538011367301541099703189460926902645248086612969337390540039958535695998919408585262389555820271036227078315798773426030191712664857287589218190123845125960124555947235640601715388706928644233551072869426303115925669861632340476970947894679024058873625311552808040231155666072476884255845528398573668219755216089943134236881668160587896828166611224290264390254591769859026574382828746154845656494669224363573980393493154679516474518615419660829404809861796294390754476908077726647502242928254600857868096145640157675602229574716387492690743371248741497224025108232733327019278015216645082053058447412221312090304984136927812013967816856425687055046934767956123931141050750039706585981912006345674580706395432548142091852787398881956051817233870977694999315443396117036916895939071791199345724829843126402945261222928946015984453807214584425915538688667874792226951268687651229161761332680947929526865951259036255134683465864398705539850109896230524510835337237202827330514510003073943816708283525525791792982813454594038618106255527713561378183037673234814700080267996537036350917104267976881546415462412745858940115418813050323713354720098731126889998121534347289865387443366767284125527160445407906747585136805675634768021317161958779446508293137099660717300023808507894505027944902014652743536078790581358857966592111890017888763167279755772762871694880808413760321026260407868353509052002774671911532598259550114487860997000658268404420974335049694272994068203924427194554824387322736499246492170419634617707753344785395738502935757630212391563351441833804220244492269546186711797589670314403822479093478477232796785370330406712310520413862770834753305960535958887485276755619848781813570497048195377706150021606625956406115845678596510138329460369051431821857628181089535634852007790524639261630831235736046428096365256418572810343535830119406068557780175909341759278549417674338765569018531192004487166201663809832010708787578405800706933553330325864623203959216106248487778923896354738932660928284747313426161756829560590240943726697882790492097981353621982646482146095163084004231836395555557962441788914807112307808909247191162221114510126210453244192087862180719599233768086201391532841566622993563055880511624156809626577448422435287455737995045878972653500518628341398296890209730449419795892473736595802059869185333455237973592957921050258218252137306369943385628447240156063060681252803633268755672670858571162740749358391833288184567783696738146184418343060197881148750646009318809672837129425406147513462798138539673886309668323982481808806706772205205355995092600140696708118908832386535904550196353088011316342107288773429532143874222771077565081469527750293015533547581697816327047433901458256324650048658742578932260816423128853774483700907754320480275907159501451114863962426257352044433368301804283773219484434073881782468869222371622049639055137148355891997767258841563745076400810038566158894364381818397046648558600115947111510248835331504411397155687420842948367284143678335160351069986962652957931416868033144836817936106765415442338404304195825834492317288879929475784731283169992621912419464575850051988405826939895397346016998531011780595157419325803684882880642235902421145321468206494722200346005887510100966508517306168072792208326059006510512197547037148235995356084858190052951870614042494569193156624951198109288912495750258803949762909167690137966547799027803973136268768191850560855921808807589252452885282316790501534400945685816592161222803545413760286871270408431376199122772698952859877758771770938599152788002214726187855865955072786669695129874262630825228635942408975320380789793530004793162387201487401155095210475244448949933089083813364309268835848931876188506641040181722118586543282493049559467396990760002801708082661865306172599425809394613562943533108948359539361143959475774558044015209453391213376826240723250917445269283055382023338740966957166703667289449223323173006784755725495496681285879891681031448321225115199007886480736895197887901417182415238240573917207184164370742251383170991894135899887680173785713556669031896706424745546995538972419629135741033084974543511640768148620350841704026593895481002570204853286757199263344199780980916581300871575443053345803611397490497475796275538556281818773747095278474617501431267139394952819780373465524604368427789728137949231243689300091169233301347771895409512309188883550435376673094261625932934976005833612099959573688291289418580473900395407031127461968053269529678463692219827491558277252028594224816646184340916970775033036509397480143289480916334225512185375390192496736652042627878708951833833383614587712931188742827282180867066276105152601936122201107551979637466096171662241228744120884155588380358927401749713373340368579817812431846580030611063320191582507600227535644941717235970463501482506609926854526603658588685956886140048875055487595298675660325494564992484043262513846177734125309293800323122085555442963175097918011466308030683672971103420682964032536406403215717062162944743990257793116851025439353893265545864035781821003616265395100492100610356490788979041002657916738257987720436151809639599013675982003804582871934449101087478017421449530796083057030880597761079169768707202056022777846987137258145367015357395287154133685068354478777119774505409188827283603260527117175101369031077693760838970605904593910960621415483280391868889415672835955679465447783869935837004001949611411094407105028370799641902965877922719508367940671414592075990423688389134836117194289041854400961936521248938901896184421445415473214280486101926069932421809198079215019919508819701679192090052049082514478526472361996275903765583562669519819551910705740943344389218797703393801699575163487064040548121792935973377464609429247535107365876700345438122375699035727353296420036471124852817197180181633253004308989764685565081704948551413654602503439090131995054569886881630635181806191568563051184486636282448439156143652624615555296148530712760133046385240733373541290260985983807109960891054092051029135475372957760026014001200018111203548111901260622390646426543419080782817310383888849979669545950976775706624255501246052598831256923173373332045123435728747692716148089083024642595078754507341219460707849876692263616219463687445106840747837508997390759142802860733452416543997767737776848671562507464941790135251524076078846074601909374135038094192137804829912237200508748479161019357733006851443861840581711324447433617726615249923648041768240266219285612281365162531507733114914315270396475612406976284244675813072963543177195410366689193028552034477765857919325852181184238565646969629778816916932277715085449789628306823150641771417660793319492358064011518973084856898244943876032534256334043513285084728920057929810740242073967415126494477827584326266109798183412278260996776682844080611942092574747507321191061314927502504822747071169859902671371017946076324013417335593688956985938915803985583849985064232251986454019940981009671914875392138872084346590619180729097198618592314995418648437407115337963022499023228980501622344637348352002706601223625160843662137847268648639438084514626069467291735142299551454955128388962445470425441411131148417611447753234963170892945827291164243273875212867580857260006382459499593086045946761446724905592232633079936733519325209408690767799813217942119178746536913620617988404261362788101212294233289835096088183513524797211611974212186715992490865266185192644807375021008643801213001082404857836585861902180511517577630411923866164801390302524633241242046989439798102540985693431936063395568055076473402650433597674749112992729910052094773972116138848618615094660951371894693835122544492639919712067361381754446672476652276681720558434108408806371666946954440677808777670977722942261004176220247161821041912483800744201282150184826470583541769411961921398584868400590998544541396054713368377510163203709769654007286856216522571580534462547866801973393085523438119040412211738400809662703397055872390721786917126939017372777244696321165950537307798022586906117774591496542166949034698188961592162269905620066095904930905276511302671219634195883284528837596704800761306153058548401699260731717799204383891386256995182193491988133320142919368578932056056340601726035310207793113682863583502944131568008152275809792335129565172858837960470990304300496062081486325568841861199586005980412197620644196607115164190480515542772943718376083816550106143551387807587609791650305219515562658233342727361778409379559088500060664308892003448303589039603549555442366768781721508531059671160025990157265358322032692479184022055741794139771400761689797164200465958482806943699301418871318805446043760055805354380943457516798594860489950452320580394966401233149734032196387193352482343089799581470266240845577252938865749535740928398186926806164211938618769852074921286566377853502981824776218354499760741874598826433031177159517097231349054142562291006338743985344162897739173171305948835202404945149706981392949145674320753930856044383470157953344089798571743091669860236149491164430171978772012402489660357353059944563752477131212519096341949006623655808443497320466378716893018154731267410645498301657128582642189925300198200622956256941261925410713561238574495507094074956932467387816146077299626948996629997467242550027063080483100062802885829358605876630228352947591931977223422810617559529030687338363391022636448648645780392180103055189007633431388698823145167389594233430435757994330586283024823149205204612493037892388134846048153609173879280738350132664202333123187914095245237160921369820543072340462284416520380197662119643175876884909140052207771516397125672879626268712310540510527054135334188674283622802107376125398815979639290542052014475271556731042328279106895662251910314415151290521945537513141809499805817324476349919547281964011384593849303779262419685828554631406444436564185984559047790955378625966435787469671734690492356547049461066042520089433888324453940464516375581527605472667637156020688371495604269966639645364889155555582868267748375254541142309622844815171188787582982059939802472466178338409925601636299492618150378563114207744335113485160604200324244968901701212974404150998051192434742003526920176817901776184385272508376405603773956384789164738457053597574263368538867717194925173741391828533697339166572308171957323452416157723742024986656614439750646256022802756809965056315524614091828988959909579407356397427077118823681774743291021015274209403720560262363049891320869156112318797319050674830664810472704676674910262610339748269039278441272557424403475471547916335418106379243367964520399208933790478103525274437177057859417444137268908374616280161362596020746119674132200854683908907986024628872754896956523364023972977544201281968170256202983478379639739156708470039206320975900983837456223887030860020645156786358679547453964417814795490967881417983226162401450120421309679506969759890758569012470559017180016865812526650737349026208612669003529990505060182536800312359105621240506471511207353258234194307235380376577127282528687815158476920647362698659270445448089238678920292307020914978130516002766919364392776160865597447838988774278614209102409094862374976974856532737902935632201080322828710050701593017161461652185630828879543082062124169356864622563210415742580081923887651355431435556958714803879710843809712752547136790188887119796694777589447082413363865349650487746913304827733390722136794965930863125018499630996857712168734936065381285246699266738509545297449824712177325911349078202582112977653436049911451484151859246873317702297034425479142339093705055652318024919005183642658066065462747938130103765580203046711127991328682750111265243631831746389531466903705360262267548524540920640375024772004558640803110282348788071542388815673902103115481299762650183077298965454377040583656220941405890419493430100921826167047407945939135728720665783232748604035219372965587601629386744363556455189739651301879268471241895481915710876621004539972736360306222353595083156523247329348739036818769253100401059726309218092681957317935834797199639952496714218458035188890601350072409994630764718769054412785346095649912933514645097255000887484937025129113808905454969729500315845202123083862948065590125202697157455018511678115258571651790803487259310147260210134254788504939265929552886550631752204087614726325241288178055395911712769774193335575883758249729965149129426724464708604686616202634170995891395703456881684041300171014644966294067213520386213225551302044245914455860084451006703973913976118508216720321697608480022860901711743862390013921255965194009452280947319443714350579977289416937981909754615315710547739638795053417562560395526680986352262617206740063024206634243878210160435508791177557096017685574754182890831220668700582520691914316235333640798765129181826135179839849796352367465193443745762217737464600830904917355631903899488936553487873816249140258348909708416382054398826683201313569252954918898443176163850098052764871711888843198222086669253597132453256671386280809141428594064107820670988344336874808933782087994375650645750999598617232114360174460372677754494287040306401132024368874899167105071335889736357067921483916886216019815257946039796969907775964701563992175352988523816831902338592003061619007649055301278927303405336353575599262446790013963681888947748088411068214101030082596520252243696653674624457001456541989239573023852220586404020349734258707970367571628519322065738918639954769245771721793224690919080219535291425314735892563697322269385407744723093135090547716714794063082725653847673642087453946465632020081408085547495042383006099185899072005033860029640005072754425743095346098233731374461264430901387609752756482082937828262803952570505550439173637900186276469563718427919479422806540466647975145759940121518754709234501034650940655322684726300052797459826195787462323150000350481552353219946336616221017611210890223057409814624832553323612223840489147215342697674503362084725377263858474772243347386683351240029994132198914174080390181293637328803176634923969889179763795126352716104948863041341808442541527487220114256057907797875646226511789969885049080348341768340910817039058857525031054738358626989996385142795049585369796213935118474292224713284847424945507460798384966108248516376073962390097921433385845649503215391042694587021964103458167854699730691287699532653641592629955776058839253336882865566027484469638303806053886623695132151753263979192462962497549277007875702642698634024872259540115376993720166202565584459461574149799770880886585321333703261117595248931739566772942858228012262862160301945438810932305815324374342267971775528895981512086331549662055807574632238025824461052197800306811818424168713050653738131613632432263173658990330794384698337726898421232554113162965913309123192188988593370188673562681541713607610431467442000145770544572182050510728911835652968350139931247293033023800004849266387844432413551999561552099417681048420232171366046966105897677177137268029666828334643656047241102875650386608990416236607817486918240018247744097803045711163924562773345292267685071561326733459659627057396338344718801550797038759239621167067067339229272766305322934268587021711376045175977111779204592417969185752337431811496899894194511983835755729751707933717603978146762098585081921230940318891487379664919818332560462464843653555342086191453134043098679973052795536984237566265498383179469008515629181442184916802328985326004771321135083391813115129019840025167234284298685776530224271069510229340701780056679368397251712512882812874474033551240366420714596088540648320080445235713964144536906645647661323122293478827462126134308608787290689858959600807346112500969382131637800163855206819343433231343194222565753788044970682015243463286196668284135502641677438707522968350401353504006220745742156768353777695750290803293501527611320252425391901246597492789094322010649270874767207197941218156182498350879729086465948735630679776621636071923596709366532158571738854398816207469745966978825011750656746340820517768894569180279380324387991598006485128250732858627264988671769635631304887499719784099787442938561986992738647064361836723063139894641630292156840385469749791985581534972179513222542043301527616407407964576825566716874482759303201947226429059440769354694686412969397551925254600481167336995092514189302295855383117273002401507176478996399910983608357542847161188774223644803809558832301824728279443466378908838419986007552637572269820800458861379851110529760276095886774141969287398485472137127463716916573177440085074305490755025822873200041546773527467127511487296395375650161995082702326371818508534826058111730959865342756619638267054020101934925232939782031720385263887357192572890383287163393203961285204814211939770639325398176236065085284579743820370599719776009219245956446647828537134058398403100982668622227005116792339528436996612930048934621650247372159498643567702678544441655585529076259095556822541394986156287148232654850526335708289052777234440214291717486241838306743256633774801758606656604529607126731443981473765978910308866405875038475346708630216182139222464677028670323151363916446775176920817394704812339623020821638430604864849543299295052977723020896585627054649063102593588726375824691319230051691448838668130559822230594885299608318337880610511570645860841323821975712859170266641294323438920755955597306473407448940810053949493324000113222721977624132185844026770053726547952536953717234585461670332147645816658766513277664954239408430585771894035681976475310644528228024895905854428097143374110099980831506499749200629776011611193318569833018850872327098880823695189544861065462109017832561551049419656856575299593738150143757478260544424465461256219888535814660420514888889320079480416637212876697609380705189006129566881013690312577046995761348536959475153639584632079069910487701264281002623708500190831653425155762797846808063185474947657464893423780228323696906404051752470256550841082034814269718655001180002608391672087454847700643470324333278785631663095392088199198231331994540447056215939579876512263076022358605157875727853733934925920991199002583823002899522697852004663595646917113943482180847292881930337863128314159466023807079520494913623358204234912294465506203542936329343655183347092532997717987844220422222812213900123412806185381783387892415693764291344561059359810371375954406913924331733914615360657402976647182759313205409228551048453800927505996819791804888046858908423946969393242158751194568543448745239419532591543153351713211445041336464229285447717962396267190743698895897306013240579320064032106418380911830519780633734298048488712911657421015612448070163458797193714633247292068308187203719746295105030554048052082943078971252149226289824458945706701203788505417703137465555305996203232638669221989124302831866974350056897599781141592601361766692379249054035977231557000126714250794625621995181261893921633922405657658254773270371709982490575748376558906035023877937517558930803823338991045556536721784075045103779107286025109834623586662634260844184946689798694232187781615663639791679149389903783554611534999782743472399881995461527515498716151556244020264975989962321551521770036734389790599187730930714536581406399761473645180091221769884849598291286717948236273457190667406426375741334565177274396051742438226444245369007422716264342389663307185912658533175895102958775313202978054792220704261727147335182766019572699690283081884073722234506659967838234441450240749605652907716873203985137429448071243160604726494726214696869256400716160005506607610352883429273694988879736772218984132839029176356167065034811876007000048696810365484701247571831992925431384486212225741240417374699056532752257432125615626655009609688311007428673591701502441982562250288546735773412557928521485459645833433574633430503805283446463745280490805326751386206854981436609516017618660053992532744309091762499045360507034743969442989304968477240190254518057826118192489072004383359821825173386163691756999664993271234803430377487566830458726520882452804036340498738554002133587165446518833571177033282717735238825432212664896203929421785752145450372158841935325722762221522945337009542029994179810710999948121826177268575623098814022426462866719755426645953502561317993115713841541795706476051800056797398215730468009116089726194198475471121486751152293626915302434988883373255590432341562164115449464540219133791410531962402221087706930886497891768680085826858536806807286621890103125608423394720142675540655699732902358334761107335990246301359939525948030941726335778611815164407667270849535296426075138531264586832288624336948689398071340460087702861817496369663895523826588632186367367067527604464822102198439519895636463612059298761409457608539701627453704466141878435473429812625370580126043293899742197818151379328367495105804483676466017506447099753338855140472542457871167209249771008674824985364603158958012586609425667822747580167774766599250110454311932674570996977443788419565379802632240986591138013445474618906207654008201328787679554818894035300884671010592028019101045298679279624458448855644380176109721243853863470574351228770932202507386896175961048144110980266463669516010135982417655775872994388518860225554795200637114517758104224186987242024378153944103422140231340182250486430904333377885063161102483314258701642502200070264793486685617616987743909595441680228312630741889883266283028735643084689550045636816132659272510604235211278597865296393129395699958968265491180675096583299163480249765839128545055548307119637665331471816924895559598470421912466341610189274704137213649401780225204874843962588792187506339573209108863988312465455155863473181011754511019666886487405581168213037370093892853637608248897484617595516175026455569129859167992970991042563866639158567724697060033923333743686876979824622813702204072082060059628538617615762467667658810420538264868077290312119054115858758890476567401444560793317463898553077163918724821168554156254535367398537085898138845554569374399800071723310563810025396744396013374537543711076604745519428222090855378242587338473952812762701679534333694064133849954377498925916206912720679654735813405853263139523170694584870637524523342292588995307643708840892781873910348670329089416380205676734190261358162418258320380892323080358636506895100342579028382239835293999648928898816152630474635062011424558436885953922684789996817609488920015680189429343844238454774243484132865060962219925250441265798265230119354602914017671000322019815473979611747456386853345572078445224648232922240585946595093411373093926854589055749663671186033453192770344125054570796349763234406174410582984916780178855080442794767902532489715771593770458511681787348859820600309423879612264180329962921964000573899941133993277926682076382611769973417228888598115276186573338687369244975907592157823825100039213005463345844688725893888084951477696290405885473080231956070333082266411954741498249434621223067493929212959924898491778707765304726014316202873443282159623759013839563750087881280717420286180762719175260461707327129468661415119830347650361153911110622271158369546805425919131286807902440664672165637660050390271715310136564854604836222521349513089329675587487951668562397488740949698545563983807342101335457906680573695428860268593064942710971929705531141264793177146823588633774537792634087754625327927536445331242253647655591550851638432693070908203971984447517148829877549952593311888410356332135154588522247056346466944070476665553638543915438482802375927157849252246287173827162415989691569285747885360043321613722185480880645024076598932794017194501963415262339846761284725495946304270436247318950133603512642442378529230753387810642733587478497566597039212920729402188114722954313236646865722904233867960127269988301422344528234762186880072943768418656263901955531353473642962740924111660667775476861637146748699098448422480923145079630540105702485790505051412259017839815254935779244560321418791271631342955475526222846670371519490734759224145184822771105884924177169026474574299928133471304071054313073582042840151265492006986388025993521674793385862725407538929318379322325307812099181875135176240179238041840266552521597795850894882488639913403825997370921666754286904408625777160134870324446594290696966096428894547849482872829911087190032789929236749330805416906085341269219850315078316958862848318930040830526422677676056863038486004148454965794965174053774518811940913143188530597774996078981401221357496865307059913925766353323851551895585938104824780262200561466898464679809283085957118930846881577189712695032548934472364327130444919744634287323412330598812464366860817988859072679289283569485679004009028293853297438549592739170241840740842971683538821243410613455208699264461232021260615980452414053580329262272957816539959188999607649151712954840462590337377324708239485998983829624392764478330633854624295839690770951486235148454882483998928532176858602711183720446325485380796105842619014764958371137827201647117799823293143577789320452306657108479824417098171648094526942717717179398219877937031105344837859169153989622268357896501293285129573023833346309289742310550324755925337817060110104312413741087888774754556168162757669927188528482111453122139563425708968471732013412893357809105175019407895889962144899293175612600698102309051766858406251265451253451413268706720066425167693772958586449449475354336505467932962916620700796504473828286092029704007991065482244971858306710077680435679364308324958098401777203045293484022603227739082736379986147191348071201070256677296581771644260293040017128237041786036057088478906337849348491625344980762931475196595430139100244604157210264550907336092771559795477664938764964475946479870749468174610887160966570554718685884898903146075434233596051879360878100013613854019032969249323489512667508697462919918902830739276175632398198493644345546282381839522057952086455700390501326433958820779642563818647068251809519228408925435269465823238997652862460795645184153580558167019254761378536374320633529519006613711399834109930257978295699989851164789903762057775169198537107482998219135651240245909071734750256716969090395800326439090337906077627368847244986928121588993578386598787428824926607888895022351041274631518159870198591019178641665560024809472506149902942686754812912025094180114911434437709020758839619014521276033711965337729282896391977437482822026081811403057044165700502632077751384396882582953575032024742027577847791767360133951553428783971062659154276289910168797490863508118319483516818556387160716739651603180075482366930113875142163580151401391843308291162316655936718388159483888192868606955351519607113096641047160244374996621073200352281237110564941169823052091973961638408507522412769601926026091622305419982187379812317869560231581351725981655630544540303805277020544153340565641681972724678577793108082789791384957033601529275644662840248939589381607149391546972880914220795560045710858001015511869349872822412995884070463628696856873481592667615063973665694145236477164839179273525501926110430164417324083789524171558707528897654385502354046433161333035420967074839693566688495632583405820176587650823938151286815155011138172049607986897094361129536879010542913266674315553614892204578468270775462563342260384991495259645990621694597643986330549421461537817254192671457320541901462942523528195329900339843368306299634609762378833046538026603600003120377502433406514732209327997400182057891867924755795015625650370344923246780386003085421523799339105751987489564049151704534388496722707094838911841845705157962213128814404510266872429055893137894798333568519403161210638282031089289480222081205706859241945523955985637024825093977725708764975953313999885060821748119968170164593331739638221172422605223820424420881808037562840452767379615467791010537611203481857000545963462147151521651314251176730867065277640511346514914749632212501038157737393224456987646953800589455363081234188085695467935408100393958730221838960688289626797225673469276694939277671431060085716343894003893626276784596575613177830035440221600527925770595622208645628503211408548795324263654626644935464177867840288777734098558857322670517460690803185587266550905305592861145293875710451641338110823702216499297136834321575423912570494417512415783669077528993314502214754001749480909058121390704353231989619278112164894525892104014567017526839786386326627619973598706877152614316733600739433042815358008471754405378262120626261593415717401259164494419449632882204290066836499238335673013914445597185872849325029632629234065365134804970131240622353432267371889776947853084890028019485623285966133048459706895209141505255827753162378274317267290405742568302202081177762511164907217358860717814192889497754236013872195501923449052068711013910676268912635566595479684496150012517147737794607540209976648752640671393455228011527731678869230024440272523367458397663127318345866188668447391937921890901681388344010660655717151760717418394727080311435258643160676231250164809679848592308934159597966493331763881853262924513777116356826414353233254652848505278368667685116354743576431415645919234874192835970454062619255009279818346020508647005675846335015993798416579351232133329667848190743906311603494988460407712516282891951890543962871387794878370527105819218321561963385296670790928091819195695376696623685364932129859218818276568668024215157088709620297971956212494165929550547000813770431880432239713671950007485361879118277017630450527565556468830676132605888884730556747222611109963360732873070147092718004621777360772625735122927790888113023945657654865521811785230631520984545801218656352029066619416938146203164914612067044193677258947592169369981356267866755885584005274522997690559808756402088094505767461695854208255416262860946399560447546945933964347516264462501791332183092274332344029856291015169820344001165614353621126075056411746023892645174246163689174285560815818404668204403386822261888654432260313359987011883634901545316791856712257639710365034358380624530201017931903303415418760963551225774380695861329421569672273118852752621369767744378126368248094632940987753702065776947418520423737797360453575211446017715616837051014754352275136834340304343445689364443632902431830999185984616009635401364070431580626661397473953929580234408069687262983649776111927668312222887882842143313498242284360753756346236707467686312674183545964846893618888540750368524147750382542891779617840435684706494138765465416907385235512443273749232977398925910140972571082861447778917906656659377856720948351568483295849187927788175310656875260134591069045439643199828979038501292515209230862111188632375993558664241033196456014727226319105133949028642619985360743441825452823678024945051022356960169048123474124520994539841000036004724568948467333091809557884047627893843927680576637405932818116054017023740780894261082909918968278697911895584931503737044124660672964456459905905071135104878265634152617011443256463435137740847810496632086337232561792638368542891473424410773714805739781750186589695168788954774647423958737518052728024115328456672196525370990240213340359843888622087372521919737343047736472208477367291086782178739585469186326125320668533589410138375346370201491118237249664193392741131835871258399699908105796242279623096132317813031976014233785379245209404085583770388181649218193068284822381729342914374688720572902781865193943199675749515275816221060834006686677796466449603522739406670135770300551422599498188166066667627212898368504536370679964399201064857426668348921313536030236104144398863864478103271053335447417645676149850212851518395054094343340506073831569659121874531764053244236605399011666928572286476377574672141454749395008278720178338586792809319522880691235591493808754526165194553734012769771506291010977305340170071520663886394190793477270523759934461837646347674807305777324412875439108008068195839055630339490839198376213544472634639316628704285293444681346205235117767055039456819565502787487480158830934294183984377456141629978351798835759153928147913402595990673598001395348687726265221228490907163065402493567150519809528725315361910287130471217087872318118692321327251089554676403552721286761811344957459900698897602077646141650937072649514757366298997841798003265412076988178943166424320333317703924919103175414589298439232002714541778351829647795286368491527690579550663975602565693181352105678302663009850885868368295445619875824454023394171798430733656099130697583180202202283970019721443330989830100129889527618808065574561365195484636557492469657537005534530366644929386904344827296166973264100431155666348006321798861262438836780336511799415712618965712548383781609935929818432714400848853646854736424623635227192506950234569119777869316959483223685331766848235494467453148949548559975821688939688381322586455430650736962333233062072201470721487824079784714466501061619759693177382566781457561816963386128419632181040762106072448641532290876064355155795201518402521802021385216482219860821193452488605267491883679488133290133004071261641211843432098830410819349792105354759135176695625320101580975893546770510989618282118924713799665413893956333377567135253452029709757136686184506351939193619186643639345494248172445802825242610841970931842737437599445033898154715265167136001598218469618617967579738494024892886906154378572780169366626090867323605375566010289690086944203742539449301942104829393234399469439091978792673200421944962249868134227048456254590444826025381123445582140736892251043690277595520063507274887704108352713600934737797149072861634385812362413300385508316722334723066918775594428551374665318682095033263173199819986638583645975955092613444121207653988325492418472159191781638553048044753754425155603040679486618252478974604703120591064387443858459825304633710496430901327951225901812644667183670663963534935111788869204112929107444571461528213783127132267813515913857198814295941337689128088078564682589623582762815085740415601992909267345288874986804571248019747988971542005823475917335698656043493592009090951054919016843969237842805007200486498193636193191881111755027292935204395668869611448069032393671086260342684060517352546412491228892456354131096696229151542550046001811281985279287293804361122452016521464873058689294921680119303651708751599335952824117561700593107882755270501726347039676911795486186461607699675449960744151863288234030220238262583178226376353479613411894174347108437131362084017842231468210624000785279507139867958423520992208942450065359416226332548255042758810735739393593859077303205562298703675397539895344441676510939228829100269685153687970158440421801853430782710064343475062027743119106135491279341610669125375479281919287617292484258129525114946737049055084636291567615439371242073255006770776813942619448351608762720312084798936535663739258107184578055651704806141131007255715773538450051099227402427601727196281606517041414831836557018004742065972147292422385975357648059552997026155077718183937453311544157307025721675925123846466300269387672960629648382961805638596369462585994817796584796478663643791846755704756533849573994215150523525990444060825818764350689802250144149452405730603898830268944143060883798295137537578502471711277661035831357424226851248518747326716453036514364735069047857147532699714817826429564177202582662221727257966090448257511780936637317571128791413615565254765390189675395783533808576285520182156395696784053525851147441938821766698712382392016754722194178715067572586491767438675269329016421543354712069980796717117509209575127085899612509611951024723595317620828798095128297321624607485510463974435138000074667588858397210641019471913770838488599747075986774194068315016874942033914388863035597458604149880164879569519567593495882683175283525315041621421479243580793743957726227093011966321746779807488173205208667601214572777290103612943721520972360225812439471158061896966492596756253084233078934989303403061638011710806686063940466163950447359617229844937512736498254528078142593481014807861733873406572690407945843574291582506140396560930350326019410650503489528725034286113648251256393512184121605815189484898848797229847383392366045218606639346883832791523663541863364605549164781403295749817973289026116031896767258660817682680246823061172634857828300333660038825838820355858534646231640972428948980748871282537911138263361562930466442854259492692898664458654938956430474230846221066333032939290102158559373797382451946787057112414117528120430004140861876144329453596742056827010409197743073337783275499138144185052664502364644752695213173347798491116215776840874116172408098253478791863722099771073964948823827947340921733194165773832994523525166649363522194692679492820931241334272602315941151688103782988791107294104500988766442812855251832367084728301647473754052584800540357894691147883972827809544364528517108041680165598477228687436961956463449657519246967072414464510321566045966564618455955261588818358761041640257432052358141858660259471968048672053758907437550605068164665460920021473785378174751324718682803191408331095300113304090387985796447555650582022275915273271423373685298926168356558537875459603389366154098726017301201411549407727358983717388924631287243169578896614635081188799498250556380471326559618138911819976189177775528192233092686729381980672136788860558500670412585509383210810032248078387685541611116969805680774790505806246353490427634260544775304391202047744553447703993484827584701833476508847209843180989370154556297689026507294950138857980800375211254685416759246798318604310306272288633669647599223738841094351316587013127748390265998210426262347619639352673411934734618179626858950963336336580178588408089606736395079244566227282168315226298431571513201125953865179357439697103204102599391335535480631382459763435199215458576840490435714631159171835619487951439075915399584197526292587791376309273378071185680356171884255205827091897170931048767893158375791097976219334673113285106209017215508917900678854943532240159893941202483075535001694669193347215631281436922287988528951334250251105873727172428828414843393414099851150436821536360696975989655820827515043019647840832382616069825225630900379088065626433936889009913604361900504239576519017518132445425339677838316637340887974415691672786041096049266626322233497272375998334767880008185182284234230461591827998893843395103837286779493546949458223520259836730043509696417292619129325755588789061459853714041824951346141135111707839723574349812829662990971100187530125345220509553545670137376147850966248298785967236404002208802296720311708454409109349725101632075958426567979778653145886828173495369842106068583238072760788849871051586748256772021012631414928375247471447514003393450051328782553541974826457654220824093202939928408880720832429073910517252705338181514872709698856653483191024102974081718939879185108200781580583753533945240895586791379669119148023460259044064891047265657257478644896971785433325510504874290127108020390706921684387282569281804068408903106492940392147437221213111301641900341373827870541303298983835252449482285135885955502711916027257056393495300824925601207397995435484536482044485523605210530014151901601509250994406928353045179394112913729050388131301179716055939001349411711482445647454161051861752297285041815752157014828773404163378052264219460572342794398490054991525124824955053436917102101844897507623355964368073036174067284783107652512143065825294836635408053903725158664528398849018263474100689319945757895404124262366574142357136889829712110903480794030574347111746346317709373286681960666781800563144061949368114730399043776397628270860210223965595422989759772166834514999264651347383011655389592672903983757341238493988070031650434146454912214591851443657709121402157574164868722791334424457406228667499203454559254446734523911300165388006025065538991877100523207875613012181947692875748408881372858601641756467360193191892780717924143789135895094484718232433846381773843213634752522943567872537616571800558655170766001591009846626646211824778097374242734492191491201963063418808281836141087579816292442591397429688897401139224397572586057149421055324334158249474918725938386316882318305140449546544537460817930124701796498598363992739177730823482700066567485040337327860804213828132851849423418321064281260200534767269763131963293630190992142804525829362927631294304094340058124864033120859673278446930090944219206250332961175559501386240511180682836753661640360193290775313701227255100071952369117380667602651423767243072943309764028790501106795611442198487193287842619133760694210790022268550825996353891811470174210247548204574685698526471139248625063485890892313071975913929127014904116312628599046312085554000908659230238936163371774302611988522536794653566434433900770060323709251499678882787241429462082707236929862908923238888562290193906051474311137500416378892117442468671435618439304788951735777044971702789704896395765886304684167078160681313638796586651006380110283251667302515894529679503650674394989855582799313313241940431203702268724987500241273514457784186789597233333690526394869237311411548098013068722239819168002745155187203983443259379792289019676591542900211183963598380815865745289431830147336846413956394381345425008166796634310557573858000176990588620841745028534346865490627729825650024289947116582372177160081674385420454056757763846365153952045726530096453518582716834692513771454566089507364327072262172544557389854118742210340585635665431885228879906458409614385230097864548260391820304687436813076430210751338693908805184251282132688529729298091741603254419996691469789603206137931710000083567360978045047333514875033166557009701388106138281520798422737819016547555582050155681132844103453051035150585606568520330707945775510018157846829129831102988806805955171587982569963959544057102516068284573732649266897478486638570798482684763363852340278115437678473610019403877191321174439540935386226708426230374104552495371581933755590410304332354030457138301305206865119141799976453878526685078790581721016583559077676752288767930232628785617137306374990966060155630674613901368852498571816966378207069037081939843074540471437115315802264033819779099750237543887480519917931278432127129190072383276973353532300707368839410361066628132568867176336298635981456988677228442798264287915630929259669661036040994165117568403102102209977978540649671763190409035182161711690174968716633457989296038728161842064105664208551775778318668829048356073620155603180660835141975784540040047951738033761754869582147689684567468267448809505380323415723742670407738332178547000445291571334376508548962975174443541565944541124270679083616093220147561564901866079962209288917800255810558121715602491374309592586076342079405029720210570906669527425524385165560230875707291948691373655267953512173534702595633423081601801856093610432413481985722295329266642530807430362891601507789418662127277542311215761525526058175875003221228771841925580681667671993441458889672798600839487879660191098948658158508543670215369641184884302701025303992331820630851326330138358856221149700193692136983294135272832160876965369658818311168945427716128932873054063355922469852204616234721815273161039518736930051838509569801350841417465072399068475456212588731914451348680014266803951479741233543237407950419021471040741552733198756521853293910683135976478221622799210650242447267824460811561498285485897310639766838327888468519860816240428192743543018741302761702317977214682661864799735890443758931818856262776640982330363117836074787621464134427538715673470899036884015327641620671877136298846387094596134920253594957682471625783630406083341511569244848434239413945133513980145562441130738366127351603886815555050768656737008745882257545786557210302213821199943608522891159007604797249569196427154905056452761284398168457978467789775082188913632181558064938512047308918219448490129501108764286110045618435149614710742542071441350904420702747409309318205717270454204968200772789486022921844045556754435115895422758948878569920092724016780173170431058578646293926904538550801752183483316654744826024163135644990112268688548324973520703946588790677581660850890454742298857763379913259415964506831755485715214743912026919630494500949966899702334259467081780645332133480464543358990380003446870933004374217041964305732554188283136669428999150769500034613661396690258362209148227288183617154318682176370139026012825605898418345778111236283766239980181909417210518628731942825981063936007071499646747186670766447679829152061800015341148592258337908272093079911000266062226566892558711287706666889519293745205463576594160978801250871664859320293929312424271067964799245410165628259910566152169713670255602064046621421741749816365216223337400034642973084728980883587363397359319764300855278602799853436498193080316675834179198361765846613946270400112534375825702083739327930797347482667313391142560683571870988296878437420894408387314167262920292812516348765793638221742154034776171818843619117303420864792048887303363221767603745219629859766537406061501183780946072461837789770003270201572320184546560133606408664903370643432210742255897862481431853456418916226385094916654068930012873821444480732366257096104911170184262150082595061773506581520997374208243201699603446958769846230644150842932259983818482088831685588864868748198045408408747451577149531032366411585592921508322458867041009716184159158464780068885005292976918996639998744455505733179297743858053897717450018153562858432021831863976813555977657060862917897310461565866277821904019178514957611686147272811498261469265482924767815803497424200525229933516579547363471289265578653343558928671952436036982225560050436631422851571202214224112045044963293533125038916734990340337940730736552736716371787151582435973066209054963177105490391948004661485428336955607315938145210064210870121673731961880897018205991003865303467897723085539559957856913055979986439319978863624461787468179556699368381965642498136318259385826051201894547255962209784545906803291409758526161019131313611301143103109461203433002437681593167890765563946569926344444159492271653517671781787640873481499171497467411876643272498898696704848779991238279577642908536425303526640144665347478392629483678041064270940513091512117564163290764081201925634581145333325975100368965714613874950002965546923188883711052784053006732500998989457674386847187160479064711236199049003056756009023893244955315767798630082777493154494694593221215405176278716948851859649442255140562605424691048753549788108660827918472385926519399648101721467425767850958467704878680392430270268237552167268951054696695537049870517318368766796194341664415521309965180798881680149702092521276351680662025038299521776411240030163309950754602678132011518516263429889109403436158779334265992772103510077966090202303518775922034654013344282222888260255591333796775437641600653387977702149367785874785645853185905540693181211881717356492963201266472325079113694030932029402754883964069844778371273466157406301159556923316248028029840184026379148740904297636228421507991006744240930791922547126128312507990453428964217314731618393468519497972690106953732693470903537566581374136702844672418784261504398840412404817780709100600835667380786608659090209233474127839898351692604547042335493225028122665700779051400026990817769888500897301695337521488209996550289074541486489801164419823679903120344548237362982408953429275508170073479079791501324409030417640895891252311543736510948382878952696028141958350732609003449098719785177773521584060560847340361534571602476090546338170870166448981066200790769005747434356027821567724581933779009922414640694029269944380939753225513918165174853160103358700223079030247666016002951003344318497582451768781663408617582392886549454567168191963971966650406470998427857801749261514433314915905765733267719145907137723070731042082726586402700893709010045092283685737153990389193110654367563228881312008047036236692956715994726974665619891120327127590336899120349153245843198802346917247289479455221522529892510460030465577296718126157062442321507420794431615592866808209534297375984789275183891497943875461978798963253107359150932756359550886743085144058690207547135903449037595323910285422584627106546858854532252776415934955255874638335020426089903483302488887026562269655338169790555481406223377095497317996064308219920800247425295593544802492003175896190328478540595268322235663361770280470123843794202294157724496684933109900816570982956000034026819708041992808850783797343008447312479474330613320923280570795562938909269028355009785288258772536170684175885299744443731601540753252684618355494840807105818857639872719903620035619296836214810586186745163070015697479655832434029956796201694115106086703190513991866294050862416137678351166902779279270060382305274244250776114339828673918943201491406360372135416316063534678175039278207581050669370491886865701382930794181484350318881494742720205048056786533701835931804668941496026754715577677562088513366848987075411398440698801596930033478677439116608988276863475610179511930595662158412923954993561351829008905707303406199752226124134960329358834668853835868068457275383920277227394847837568329910582954355187363644216223964286084914216158275209201527933503757087273468964850721747304965464363620305319173088757373746416140143544658852455489554206717860330991836884126510374551810889715195997686831709330839876029928575319138329979771783599435667051902688254025270332236560987477961493842738450703808946382473536093769191590519852472892192534891333677177755432620157256177910840423745815496862510721423326258361299472937292943266125797981655525829133568093494382943716592998506820396347494764747574275437578846488186096688237544230078500905018323111735918308166864693619948391203005947300353897564514568567139434099583394915419402876458753704296214999303843763762849362187525487827190335472076699287239129295891029706231840818093469273313985082822734789752224447382493187011438737636665237737321549053838420108970134970645301564547673725489992935643896232316424744891211099636061561851984830987760189629213631878299474504787662602448538124422942308237351993095993117737297874534191050554245486801304362790415234526960225228173090067615935368171171124422760691423205802975370441222029344523170950624644813944133101427649774432368988477137130618291993299728090744728668311817252758489581975755174931401850175020983787690091968260641626530444015614135458469680048862947522080437015551452177585242010676635429970182009197833952545997730044488139451807236880674439397786573174800501519895449887244321487727895044447102165511072534774231294254697487761158959796677532743867950274159499461625222035129027134479356598385249724946384193385014804649993945866956166461050285249390372760447051826823177686473024523003371179926980645650235637703621750599907590094003868301861754718527713347490343161245519012419818877506776045506091272646632352859820997076823144967046621508934354440148070878630411610277677629577206712447667994847754233165685672562771838109136861610362398257767574152496336321620910662602055346899657017879013916971372237164030178934648169146537159689948811561600347370324737596083402426104790902529153201024994247933147595179079467906462700871580012666748025642312722382460501024999073458471590619077537699304815341363113541889627189622501197024328917414646327114564896518460211610956516025952475514873484264993377534653641984008246596750742029381870932267087242670632238806471627142896008083977631370202412076688874783469387337118674687612468832290001596928148786575575653537796582523746820159006356321019777301931304132559466150307371375115075005141934016996351003179132126607365248746708261241312809376914252211385050695156860550549231165553330445056457169556008486763704197459965972741249795903761422495664568242030711067978585900036995069858170810458631019426905196604265571288958596986902951872337449799255906215200621728228113335853364288354222831422445307499669764675135802236190012132821187927665910603849113523265001947809765984582027592438069001596425392103825686813397664950141020599642898635956838869978273833189102740945999319207189882598405072152687315241943160471271984801031098104004497386238760986022857282907422738650495539514554121298525834227862971532852415355564306225021408058623080119064526971423193957598658290539101639172449979591859878332317624406232224859426740731989613356472537654134276856401697745446418874254670353855753743022555629665264100047775091174496189562879628547941505826070390776469081246490677988831511432906133150412812560557424647655762243439006533565472928839953433384198965660881672975380613970857741353898474374086157795444687557560094399515636483009557042290589906722149696852596483377443878534677365378417445878369924259436556039614875719142830666812364327691518356158354630862604771635933347228648461568544938189124067038895755594256544592037942136460703485931374217161799974453947695869159695683569930782504524983228164962239128787873596826341287131894979972271832087168802888546670214116683843566665367195626259869168424575438813190746642096180890331398918721217688020096307712111765445834763046377155381130894611696917724678650986919908594183535160584229713856164655453144469583521784610698660219012174439619561368789195847711786662927945842182948060984854436971849801483658223631246458437386156919960505372138228206182194658241550921434120039593296920608773773318205996585682717271188163593021259817361796940502245775268426404522809352178873564212126651626619960488962705138203223932592398413329909186714424858002158883906153745977772844764085341079843678617441683634000694610265640475064097783994613392170082970031402393929261506352613558254688974191076708624767906215969015632972736239829420019872026325223037735106451085982360720354839393874009527239036454472979569277265604735474603425778946584919136217548294378825959672071772425743184693737008550272599488889230740148083549877332773542953485242708508252954748705110971193634488349609542009914748944764919051138646321286430839415023327190183724754043234683121205657036438510439253552597594426908177521929605225606523893576003058957442312284685492514606268339576163862284557281075984408139894716521591305559375892083864599881428788873332305210362807216519638473199680097728665139062792231176948475091902916471114861128283610105123655665921952945112114790312467779634432693351823458430686644210612938805751673462042382414649240269856887588321952937866686654945710713928068751690084847071437367845276113034282901637935950510385990815422251973078100033464349157403547410530008080364229050839772899979238359297241649733777578994678028022923429628124998866123623662538973803116816928396432644226937590668697284918765202364441770459847005856846108796834990765138503151042080464207255517263603750894042245966872062380526485974241640238118642771932342744349600220256881201534308572289298640212493086532978143512697477465590647045954370714052731192051204759878667603342968532717961193010381169012925215738220405953070138758576567232250871761662639648100713890598368042301999165263141313866747845861991351599988216448096678821523179048379555482791405406486442385938697707790326544136308453293780685028056366556706873189108592264820713633628953069296114943548397898935834716947107766250598746971433866226806172307196100769536753508238461295809475732275486497300596953360477140672523920827818303128681150605894543016060590963672374880168367754803917059700020855374250227241085711559936217454230439849732698809897539675773493595095629260844287749102352851653597852381455456383234825840896403582009692880401505702873514746844183073608497495990010746223555216036586212088843586123181733670254809724103923292373299555418958028745140350065395798510092371784239569322569810452455255915771069520384496977770312994685750230176948161342288959080607695026496175843634184648604402025041982222930227041261466737007069292785823476444992938486101004819549610370611781753883907975277416955686772357299611044676445033252136664788934351271987201900155140177462712535346271495360690940952789943901523799804126292058744565028152991279238003236604882967987615880755075172366273187658096321133189701440966523182527926798697559725343769464857634566667443485268013714134276720794676693212221994378468680513750908693124022454477711060330581534134160115204160647966800394556743650213543986226153620286433506568536480102733613526952788640990597609488962855846278703360304033438309786363373491546903845525243951980232685216140133793213141185574837376661384957180462345780457844208509658645501923890524940686324318273601018386731979336155291411424687382683955430326967767382974030322470304525751593494776969439368002349386447833990503965215051258954996930972758686358365171162239240301915930734033199471259059325982254670536200963499250725111871078716903409153607430003336921785090231949902577162629905291049131549235233408848049644994171208301736646258356857567838486380286140321708133034124841803133228431058421547169252570321955118629812590912701182103581137978344311174161507721586199725234653203555013316892655884244745417860674420295510480170572282681581548270751028127748698770405122054522387205124286324024714249042184348455669754911864250517639403720441053499309230048240769562098335438686991020081303322850792395229909987841641203693607723107691644656232469895863516452481397530373107775586442151292268438354607189713210269950950294535036841012377271515350664412180346947747683448577225876780619018410881176723847638837805297480292574634692251547085624301935635977585848613769155552370056163169800028342030372899813864808456562586783743028677426452793745755540821182894399895052194040062279717239528023530250109999277298390148317174885674881054505763452875499806791324523930295668501526243402388150570893138030988582397212823116282455352810644812429866962233201764176450242879892270656353501447525392272330868607247816530214408074287271143542211811302795797089835510921259838189533267949681711184088803974207979429931311838025877263901919276047858828159390033560982673133411156018711786789010508665988977045044241948053147664177450286483637517977228465404561032011771021804084812132873072535488444664273956125710615264812777217903345162477243884444008106012461853417987099752371128834411059866439906055611829589559727447467723950803729990584492507552831371378927479617373427687353308141031851848382496951072173957109701133828905088670392748177602166552158367169922191833799648860897720292603010481371566409604167029075015083234529525014307456132624600706847414988740458582819859043560459506319835668539452348320951251130960835799578380790469054143365552137812904319810793690577633569479333259522449731247834940842997088913019805171939086701272237361298146174792988904454935294672705998772749600787970638637740526041972623590917554047918219197378619134655594370968693644937640539630844675449799375716559909099687345191313444300984806456576964811542954897888242921353979001351253880498645664990155114022481946632205440421484457476150977661240114720345442080655104390153237080109967681207201479970121763714465095741955427304300847598584399124050109762875351073279145074980612580821810343746221159201411517442043326813319063423750774752398145683277042264279945620517939570988061702562026815796416936846435145057865778238948430075761763584415351741345355689420336616847306786317280016591177718616313164766036490339806260632242342983564903790940689295025950751570550911318994974037377044035422081970589900036490726296644854100764414809822418382938467325735188951500334633012815871070983800223209672008857413721691680093245902702303260294641514243725034738779300512828751911605842387739330279393962451907923216662992735951878664491111637083265585806512353551667228533057621199580187035205303971612857809207217436707389871405559968979333074442621722902384256811005126842804289095259616976455346561840808265745693502460581013387950438718959467467487690531711259083883980262506632964286194851791593835192975746107979917392967807829608101271986934150673931779365100809673667785755511746999026245548797517143766861090214948934112128709761300949808666907276239501812392997173074248798767556170819987906406220387179832457542777278193398020822687534762441303679245260489853401638578076410245452711233573191655234158511082485828282512786311542395237580617521854639839799115334332066064778835779681468647598587151274809483117389269899223054655573365833658699434190654039413820407116351060535668583507516933597153278920978323067945350683795138665763793541215232839154350726051706181286112789031215603572643503638276535234099416780505636176227959559777610593914509320623815088950123401941705934354423332268156874114378269097068600101530044377910665632848342974288819443668299834789756714368534422825041438057696289929826902865787758122696411794461096766785419613245286260518949660443357009899452877589039084883805500101053738070098761342305444250629466570841000558116581669880576592204746798017569531397176255270524798498107717463183762177249086547022395136887688568568189218142381161556094435797974454290784583418002139113177528890066937765608197192759347355412439300087594938471405295496698586130250980733691627896126384213023162598809368055780109768572274200436900846895547611266444196349926806849514653360829994871231279368346218201588763676862459187910313354712320132261224512185359985862623092552098120451136154909694974694517546167841585518347479922710278674369663496218804956680468181956478576315501321266483417813352699740121925896058828143896854651254985153311831731123206945089267534644394332458185987336353331256185936957575120562762413312701920702098924629860542963561529462731561474600308261704339645405350389393612243566433655248067340879552308551415342794420091214939652298771258067874552660501362590457218123699519238832940567733441219556914869777463653897679917575488278188771225688428506879507365162255880519684416565130199338056658151753905995219078776167137232334071883212918023375943088283496119662675692124922358665594535226685333842302194847554628253849932517926928549999518990888315189930305539283579066487727859567139896586993310321640617980359539146365250512311659262459216861800356984491978533470217938838048116593547045047422622313448630962357844877238670282888412062657842163448516075006634395999444610469980622404445313149439987490790668785370832251769120562393573692909203274937677199847012877073537905308483580839673883252962050162941840670207641039640608208417206165386403941796197704921781872610494961661350114370430726346848679739943974941443475212248668570258587658209515773347653492284356985422246789537819344575048165810663671431063465889669377370118116128576694262718203652975433051665768232301100601550685197281922954208034826772801435954132011406348072012172332904159528789121890352666627153309617376300381385846751979434855761221539596706664944561835032756991148138578152044838467890234905463031135252117662655361968214321957327108322404046670080880020066682430466957598519935719608514203745130262894291097925504449856184950249561010094412989081612362546036770540789254594621669205425373010290839292881275549945193316722614771910101455600834856490032256752570651705092845270162805626341670829474771696895822419816734369449853656041193227326474253287974086644393767381586359211992863008047938500060047422725888301371103691206580667385753457217147970770472359178194061875412285163505253362034199231078025279385845004033600917534383207032165731819877833165738919466242740539358897897196326922323633735227100380073833532724645978783082344854883380353869839528577636341768055845892949411551668842404473656071566573155816774218155183846059562177872574729060209355642673627378788869583439713291692425895239846353088518585054285715444802826693062314088980495752435950504972802317903743346785252198679560257982284820290073059025498970045964058017085336244554100843674324030339316493868812043048720098651385425183839805589096746489016461298921606966831459425051213878110474036858752141816240543316464414114613846155738078915270686356067284448585938878414048829486740712773328384711495565984515349592189945043344118480814627408030760033847003028148379174851371230723407914699419783706350880638228116397798226898188360381830240648487222799102757107251131048300018683794515834198497761023549329686483100884583692736880328056615448979745647083120142759362342661111533490606748323386794842835668632406799714743839232043633755676551924785549490407425340571443533471201943290843162212897086429393599256057336415168492684810418947889465599187231556188120614655058084201383614887056170529281606690287938498861318112467326424103743009402335982413682366928128610814888103245668882371207713113872423905279225214371728037870026623576807554917461315460426993141183360200578384511876863506844252977354841137484810684721808519238445552425036030563997703994861735710307043808910933282680601041934031637913915340003992072333782971939811554209938369002212285610620942343548823226223070037434361346148818637523573034320911013575597689259496278991529484027571299279019052966217944548320438849099502380882320255116731777209670459781942769366074934586265047178393949843797131627667129286101792635501705911980830818173557987062536143897169807436361047787254033618584778657728076723499339261819070438935511864055091992699302540006718860270673955734354933543981429157290594082473188977144989305530023553911105231285888386057585620062146682914294422003756938438067238710871035956192765909653839744489697982404255529224890169754060798450709251165833615609870866115386753240409183690546841144817642019582076312152823797547075883534234512530509123184132605015829517611089797392031161856656325398089265536699905372206116026798874375007616143804538473235208065751348798626151608719547224793043828493825420658927049094252599874321175425789308375565956844668410750575860451819308466168061684372299929143937976950854699810907938499483018048068648812154628051367890559464744217815643410097799539170093190014974809074712869939959955675683105408283837423649167221575525232227406934443439037995600972969493969574180602822340501765920562592870043747055898700310792815058032431304859229984196282624337704715068457179413425070702202159654744646767754885944515061142688776576609579205536042706446007471572199528712757726642241433261076985451684296240031471930012374466775087835664800450202964593313216296246938704644443599350684875723136956180042301313282573127906641696642223275688857156339589759303562124828660925334627517360283976297170639731935167263036786973654991884024693233778689298953879286694260396599505148903261160655584953035720244954359705824653596445632337625134032727330000355659616806696343875906152429863439529531059904305649181322995834499370662080137281520252522207404682609635466731630454600883010483056152006911744102653916164598698111150488784183267263633493982810787596876145115882473654748767237239922512896466959726041191443778509433436893494028106390777031231495717182994640553320010201018004756191257275542995591254395987077515093569126704714069635728979891972027290818263327799484054544091844758280370191809152769197480958375170410139776740472698198211768156820037768719632129144008527872896118996621574019684609211545764002844951635610988290843739155077342683143291211197229858578556404589144016620996456846343913843829403677505075510309712208049701374833070910635277259513766559508298665640397428736958350449970784805069460929381166705341284146735427991346389956163883109234123890971198449861180079854863975891580021705949247258105921038858736112502145278704453841185741421600553464645860980878307045448776110973997574516340473386530997469336310033390846503186000353652032273683341467651035486228672227042426970556714740359529513326772178945150103202062334130213351535033322543959033237986647894968117110824337919537518687396312007157960497442437561887262334590818635110193399511547565298535377671704765131217409286846639789641818347922674557993629500466913965336007864294725257755917642678759398158096285233901746129265762764587635964883639734893516836896449507472505658978647446944785221496841974250537082063451068533853626014180325808965720556466923609863603202361743986500647816968242205770668865917278330212117713422184101230364961114778661962652739877793982463465317305953707788168514071760532097973721785876460677594572720210972001752369401336934252566759997939841990763628966887794921937306667759802017290529973927972373699188780503996002921182723970601650460720937979380316785060650148285976265180227363046383744018580728613151105571705674628921836980661956409646988497011874917806926610970121956541434213959444381141806602795194728769767927440541594950075015988901152251966125868355994750759848597137718061695192605399213111592502239340229272688833699981018345888187725095488091576110542998225569582845126080060311750600550869843241093783717554137170497058730113674197326071807388970355789739658729944211350480088553505651709960777008995100897686436424352486508864221451393396992133349390838661313894732479357754286325472268537620274019833203696759126887617469151076767252258615976445550211988815176755131559235282068707090036004285466987945791432696021397505730008277711702928140120716257677733465355735324022003071940634571845654054877811496457611397381238914007965553559568341914090553517399078841871915527142353985159513389376395681292449173300151942346706707841510029638965662570087487975736834775781950755707238242413343739450954778089245861766179210226991584425201488244616981606058248208909898603016299202342034684198990418209415098081563818077434784982803623100432788615360958541522213418387242415023433752661913891569822281144786791305731805377757967771625446108207485587911480132338328153179336014466657727542057950866805230259864625580345585861741295647487211189682084772637477203065872450602493918928619104359326685342505728296092985430222653410303746102323984653740431412252682984250440339931802072979241634001523810529598165848769430587612665426980328827535300624341015369702673450696274977150651316264151241003123430293929348775613196469518775614295948612944556494895905571151676184114874970775361440905833784899659014309275967137335008980073304733118066616864441015842944711891487004914468588017416545461231275080308235606469371332697739828283003597419084997401032759090952377730813029232414043827342904938656622859563188127403892213923156733146218690913950461788622141596178994577209330610894527655945230398168301759772500867337946049397483179401222810059027671216362614752521198296165002784592620649947496190701500866352013262893540130625334291286400061821396242869350240251690465087835542848325000747906039896514558357847737129115763335735539388858332529297910140794472064582740261807575770193623003950080001499481243053744568308967085899951426120698839175796850244980142141094942140272688409446464662801064063023944870169666253529130582572486623734965464411763839794371111961486614667142943908171564630421810201300615152604762772579473680505696055889951349218451475166205758217926328745583369269537088904641113103728755992425525707619747945700828668486588615772222866312834267856092196672866611963589118430229594032795647478830069094660421078427948629764161214136438804109757617028255340797044865745471990748086915551958161407883901460359367734688302759241624010333993720299589555849575651582288614365974645299620944524426130505548446382577223580996340753349716188343912002445941341720058962885377539896049246907102018023451119127655497539277871751237445232935162245485400951236464924024290193734995426432386975933147262696047172936894482800472886098724658598749610351365205266668146339633458051633620312444329817455270025933512038884918595050047886567999173850137391155985649779467488331544557771811093990203300746463456710191763683456188777510263390148035794933502139217003591197191611055876778223741523160127923825591910933155351369010318204940361681890088422515248676973627698207189808876754006879254342842442782564214860110208967583713900983044809683293991216370545524288682718511825160141961597460897612108479544677399988711063554577674898126894692057682251719739197723734006446354310874260410028124277538066177073927247282431593912049436912038425762390205588247331779231779783673428778620450204694168096173399403901905385354875261515819627908860804871249074023285560171877701555727143830501891360605455756869778453562191505397188119591908611422365504715607925558768496148251831082457375502333593034122455226829514748360683081426679779768943995397890570419666542338743509814770943562347747255177292704413821822539485191660104302183068277792105186314227396806439844997337620629938698968850984692768822445366170505319276068911861575274426958323502548117494172795529927714149664286038764850411452034612110926391310534204753598303615235952696990477350344698584615718375143076293431676599386527349408120116753271854964365735479513470155685237044406640731948724472105779372740053034885625906446584006266041818716116479340964805062473116178355160164972508004353439753011025576716053044393006662930056717182760045967637897926652330715815912615567099466492800984272967518851194658042195632756667757293444683052334326090119964179914266555049419050385798601202928466357649837977251385295078501884534134177658972075069753963379894986130874850949430537416127113177001732216651313164550177267260281446183920656002722939190458814160814524127134460324428109470471880242160118376808138908554851343044549907535303827002524740716874292499023791270009130925061604347402740388068842427429025021366292638373927224690573837735943758286272964020864706356438483136919042173598470058852108231599568322385336233231727265236567753349859138135063391970310758511405128526656627954574541767963240904548718121043492861253983339785129646410444076646777617327022223570521489869424737854668815255255742352421406393161611073596571343270405328186724764902935658687056891991142871734551625832777169049753059390146660845093887635485258763747323889918977308941050502099083828211334181392779278908958124953166536409867232375844780662856993208079130495482729702282985998388594212373655042523555359119189522898087300962877191342406158867795281902127971462984983700989442012525779982872252423549523104506018960881999737351138124933438765624892789722120865409484382681463862528260836627290902020570785388989090396524002654199754632206575271374422637012959833847734369707958952584321991174683821887464845891361016792916951617503021838454585622269538197841736796056243423019823065327274202910770847855463238406640599416029760132858113318687663954062491579991890723923335444630844296733636866022787393916464663762156007086692640855911520094043734371970076916877207395102692988330786481808005002371299189611957350906829824344233577829393610205344679157661838068704549208868524790582896947052380885214258191748292775665604825017839207818191674632452515331222823196353957880801166645492540274421764064840407290803864469524613281995312648238968625489560712331215949167662168487630479721773213511738548794917415384353841221083939792625068545343011839512284841387872036153697098764796298921927839092996750670422456054550692845643482586443604682920695003282500000742597752408973259196911973586751521478309899424241512856564555897897620735825990075269759844743130606224528382465532099449618599796620430975540581307376712710668677425329381035748195201560096077930591620388114047716235557555135416123301714063164544384687457218371115690516257514302461909104865006484004393468826591400215474768166890353493983456848243134494756433576376529294344494612555285989162381644065217079816467221273734991336390782398085120830488270836947189392448583043343573893934851220210984989262168168262319327472588231950714323462539949105162961751647504064207226884472975543790880714824894105200896542204569108807997088446656924874252019712724076395585904780177294089376665095257751491338932497921938491314487876557093422119143843014991335019712941108799516014192797945673250423719894489811455183286575045315610016890349794357439020579702366617644353491294573005564609876930672344639566176920491407013290319150441863466865688110213651283623663768889319416642459445092059161525434925401527699716805622403081300180508559147936832252650576493541603363727024970822657088813607007158588071418843519936666136719228465985266107586379205726803298278654031643302414003379271051576601647630932350968439755092592985652824781086138165634319179957094443623122152821574490471410738106081415663713907666354061538382175061083247559030178565103850853630798297491114855741045681148939866146471429664515770351165152763909237343059381921241922818658598368100401067106568106826584459733211058489078755033540855810536754289893178899863627338702691303431657249653276354670002877900180050369866538545622409480505475052285869639744640291292160649245786373425160001945948256109834030450570444743557996932773360009899396486515428934920525309735072435221678347361362954340119876280553427158624091776669763899844114772688546542860426252322653388221643341545486464247492101959025522728474427427582537682452490242281408308187432925341517393081153605825160278845228665529877639001403618998349595213522883814748915180342669539246044983434857293605409346281448475985897986618394162842106199624640051903526095007157535513551214929844366999739700302063576442237884932007945800090181311404910941418511117815446646145218607744767023638215182784127002869575549366784791661747788896862834103901175822062337416325185139779174277625004683566786328486853956768635991121727604709949643786859001641294412983995937195678165531032183981283035116791802097789147208445251230792952993888237388664623361346198718150239092844524650028901970821855558516660145712797117494368298286094524060419076032103850882110308402986645253819451539432065518228590588566439576298208779805677564918383265140805437024171808186487241936229137261740762718782288123289571461813715549408129501307073790472842686703264556785968564074710496628105687007171584766773304557980500942873552631532995370082647910913759341457090705432554049691207298360763669252569267803103113671984165363135642838223983344188595683394824420251249410374935694305694914741626551309752497082099643060046006824984872464278618284902971070601318321469005571267913922122096487281931104936578794624792797722586580679256895815168575592789948897532864724636542819006000731541265232314680269014968972377622624686756536722773064834218426723422635307273694246169242166676766797948162954092266418580790088781143041916515419463225271304610062672410015993942548415447918543651483417056762788396965165456156716198634942318473504647267196493722642443300710518579884182939957663771124700525044616384766748194405410737253059570771020705838193957512021108190653692511137493660788544797975298079338388543023687948459264780700068826265823857849622351423305215193931701692767082014977449604058977316900840128657668562988843648196835297063694327735556073309047716249554480246769095497831439452711659720405283791356467137031912425765064159112745654261083239030045870885559158918862881516441190946538520178817150546314833842385886355902009570679820172218371264226500655103344384323952537049925935597097555768887225891523663240113074753739147583825107064251201146052928858175962424931678662804308972004430436031121236209732016347403899122750396544619731292327760012683222190702563162173680622789238386402418328829679910386881851243417520946836284310651332279145329447137080918216120204170863754036519947870767509559141333463385822870640200888139701125991335453537904549998584879386617984669540415327163672768436033716227880549292635631504908338536336399812403803660572515608545336924711067351285282468493513766383892391741363241469420260671350336879499025714560092655492628829786141977216894902389673787840702810242890212430340447614271747818794479329090029801563649681100252425257253386224763802575885687081718446407977299733543242278141057863522254687068953372372985893732928705313196172931576746374787334885553958574317223842417585643085585592535269329593527257564715921272848049142602787688108446895647016655714541646754893344501414848848868071428273129311177473426683032418171039511652626572874062873848673031293730824243345785586287519502966682316432016121754962772727195966777505051477415464913059575213292375972947430148421448186139394216559789473507621279708147853250137126014305283197688715458774488610363143500442590471698376621477235729410339603894606302469264657837356631159980105002161394183249525996797631004391370821573591407921273209642854990821455591921238945686587378645249447401494507060335497337331283834802530800565151317354599529057165916116030554032915878542637406785006759633485950542312988713249042915076108754119998960719529124152259386080773169567896158790165675290706685230292717649016977572348439246915711518771712104375984611738831427781725144236796076382423159430944175450734672071086263511815810963843865965156637245507196819979567559938636701996161128151186128548445729763747697829311679943514065306157641004127307468945237245690758474884283155810807146010176367930695902321626955145228334687400854671915683692296055084873539344607360566805262272650797788530893476412165889563116241891682229158061787811129343035116491806530816604486885951893235888550140848306382896052055302449494196605505046723779973324035920654596042890533757771992809479274120676233891212263661061568701056158225876696551202891018760206667968770136814171534723019438225112385416963610479977253625127851176088649839859287427613393403726903446079550341218695980742854330824608479700652021326443153740791556117568087318309640486653437885222376676500655794090719546896980646724034687932461136938678531058746794130580341911041498629606443395719512226130277618274147293727584137614890473440500077840950296587800081755649595486609174659735114284061536568664020567167108386359690010784958968172416269658001829771573129134991962043987450690015845194304711884256456586729397272804595935506752950846444277224713934133183924020503318354587745939847746387923890817381449033397815176015509824360481372717500517305309379366357867948346738913611920682232692533646073940042404359897807096091952911276147163500049834636698392888784256248206561667222822800403306123381909866493432312229166184133526332961559201658529569805828159942213444767203121555052734093499358617605780280028876813122600036286606368468297994459982112670039753603429242577056760476260168712057385263656808791427039450301601447318461069823903297048424775694564071474439306074260268195397822380094811515617445566628123321992924964089391993210609936725807645488841651605455070699153926430609291460924170401797140840245433285142990618522171552551035913225381060494691476709207848650310810641801467175281279980926048579799646705472883193582738925651551522880904404835755346460291193896171329538783800021715197963776081921751185448329172073712587829059139277258902639517080755157466018469024968332981924958161708028016696719551281606785231989843600746968043512464698902914456128700069953941491751041892805484054398202037076083951796822396696805209247295392051619737666147880902073800998605544812813478468199321622100620093182654446190067943015009945956697013814577424336330404331496848465721186307129325040063296451193109338451413089878160152683916260958414196859424301639707475499844875837796262536864965106622037429035724817039600376573778922826342449995732389755844955300627523220437545117108532493899265873560688370774679613659483465959101990613621760352276438292005673709539318632817750676645702661528204799285008726681157789488582040204764523530488432766409192851928666141986242924276466726485994548473324582543637648119897248122975813689932543884693749356520203666606688138026647512299614466082469472534323075668574194306301216436842770494458995325409622529027843011968184140835311711959735377862448125503237772593072273683575968519766215512674993197566934329633015347062227321118544259048217310547381737416336894312954395966094991361463662967629103430651764682786183923925639897282667536998393228406040524410678438321243593600974409430650448426542293881918767304918145993848904104414205455259254984929918363943082991391011029378779989682206907867608598733546611420547271551481205487018778563491251943237273133482709817722883992330874262298265905459845403014425953611558274599129212703994134399848075153310895179049876670677750308432068710805789243884483258875318525067423234779868452896004501457088352386112347073985965163233236444258705411184516019781608244922888681471773380854584126127757257900470707256274712704999866054981749733369721601339707662036433184984128404163098670834684772188930255174671603291042016158481312550150340677297596885743691427129498799898464666764515787806356207762451619626322379854509806767682215764113179763218217454328482711379840497036832703423704498167088416036885723056373290604029118838502935967842545289502110150223009919319998011684138931295350950971574116234235363303058362997441637291764064407555743019083720121921174060430636481779711287857426243249658641687605927042316026260205417432686910023212326752006919651898879520498275537904710172954665585262655973239885265710188472709758465483963646002000009586206250375753712802787823343312151793826525253291799451788934393711746561342833672039653812572631572166650234531855590272520911090024372105487144890707666958597849330669974844274418213019203014100640025301509573436310511662741063089068329922648836312153940528775090561445945072303961852524949478458878702579700524072792645729344115159368013491341313191705856305334030811340317415240778506339926273467315850623214870591695234482958401874989082639940540992519290184355743490348782221414537729627215645216287815133925523041676203129688279595905513733227553816572208634199794488798336885481850732176825165592782495334920966013422406537425713724247690560277736157884866904198534764791776493789834861924507525935281211691419939119429785977397567275987527944963471696873984750211139159128737785510284496459260549852981566403158120547961020324253002587640650343349172030973209803508172021457571389021312658965764734613239034248796197441733220902680694307011540945368734209536528683899998338062800228772488457475866856690789600599782583230991879075862169605823581587608870079104908512578967101435131070887117639671863085281448031550442211316293191172028885704695088586099562114684665974960596094352346992803806623939323702572246387883971615502485952426910928322339618223582476655759186922464350836109693965049382131138765676110457045820830280755384982702960115845834418111383248518787644780902172257238248023487749531531323602863538668143002222297238402863064828708836124208399138133413545432069053811822414007017249301697946201558543419396473097001793693460926118852740369009340051980974008450650822081390686066764572406872623997437434556296259810369822009568797043590905493825712257854084254373579084086962218429647297063488946611062843388317344812364716342128511544303383335471285294718913482249246214873800508636134683260966028136583584641789382429986994340426065085949010130507279400362181894015366702425386450249868388186214427949743027350782004874366717854383017906004927494779564526376163758703775863933732501847630225666486991944844911512940345100259011711349858853532036785845838751750495256145471645171781704714523339111159572500990123134401596010532215621518687775921158990136717693764826597691599724097796384466248631374786385477194685783509573419390174493581792217580824536780568015632762190353618741030593497147144286333622643685954172318338900031565284511125602598094793922292051822914882213719373051848403325697480417391992745316437907338408100072820569132537797465019462408544302539680040586102772059936024328846768645552247038283225474544512872799412587224750423775857259804248249109459581043273744652636091072385615815012708143598123396523676128370432282386441063789644604330203345260797447410524773188740036850950857767595520867162340441555218827915158239039228292002253227008083424718681508329482701026158202127484976275383899811794734386163668293812391202830009728875209406886357139913847487587489138263225137318876555153395779706578619485709911862072537499879193506249780774443394768995303872643780432957932636599182433842762741654902116860012867656386105553940144029475022436873164003163843203344820777688888960524785554892739924719938614882537498317388004304979775714782183389261153119849785146412510807584142847422119329464111484789514006778017113247526350389010171504593545017151710618451417645525130200543136472346469449062525183819175316869462360710380184858970110808841767954619833326240782836836938131037915005769032952331709355416107388429267764919906849289853637607136603933523967048280630916888082937786805716312935702813348649638939616479614816769919720020524826830834200346502645910247374862446754920133503150797974796086836111769852610613295532505048236204254929278273903288560383874031481749945921900688489614946651106272205124767455079507940205072602690046424916349108336143751229443169953941131910985174808778954164570850723816210111404776970825180722836887359229628566182874961168707138389406769721013003049349772786005013710273546704004629848053836455214328367294117534302670327617722402721395344267991133662211032273315123553158779888474739491064588350318745183135337785108664489716605068539461433998871933621013228195412714770659130531417444732083346763350387135373918023122576239059379248533960406462624055334143516023212810053694543189588122590257736318662406211633623595768764131021501555888281495519117516905479101398277781730301287876225301849298305593422767413300897880028685664655921019454216868940089815752805980356703214794825346016213594452519429039829165093873531728450944039375835583148475007490334940974236821205450847536757938355377124031327355923012710284560931224537222482610397977025306771818904964515746015679185422800361156478479458797976216256460921573774066250936217046418963783297473481784575663662409016128612106724209166389153871577529738335504334624813384801306122589883995608947848592297117623445825713234904398064639646963945192762490601650564669813400720302321633092727125710107782098721635177382826249430398113829415323702397013798183123276982367456261152707698479815731949788889155556777572484877704878515870135659590651792851946486805690602022636921983946324401670370400274705838180727021501679975034328198107821282147490622222915350159623690519843198212498504747732152563475528151357280369739201946440894470850926406699256231809270860602552349411795975869913012177960394203576177862010064199194154361016711457214116431829781308035896416376230592690022501421123639799871558342810954447654847326222245202699682080297025449626027579486145568234712544110793120234965584773047436019816029790974911342116906776905773365759420048010079849089221689889073405237020977364838828992267319372883772545499648003994995262241853617705195686465213776568329826388633722695183997388668742545793537967720753697323901000484825977446847823491190022605266750001934937066726473822368078941005451535141804481856239577806965124487648597771208653231951523027476500601216005191064083912999206261935500357646521820837462892441222189391265658719057454224335260244922256133858108614548153336181757854296096440044362212595900480531228250529086954753998281084516836579101058696517855226150466998476430869754421774980750251253873487779574133126787653387052875204248606224305911479519409806598877861381080344430584214500563105812873407902295822584300789135611850681797363760976143551697300990531985616724317894410843989760881600398195648112674082164758849793548426897804818595173963321354782050984470888234630315460862577167290498356118908221125907573113437001587010065982319934831220570614601218881441501449725710404716121742363858654948004432214615780508551870456593752486082304663572930603560010699509906409657665921561165435729917653025649495672756840349738159252942587062398348037708825451056652523094319989723408685682291043225831229237821724104148229882801324625089873974047292373834332217139872550235755519712848026235529654746223109167684913701116380951772725821019137164043015499659356104811688794039427125993359828180720750810363636495175859067157723435776573794186163782623273452220525198735244120643506177945628208819593004950828960158239387311625876596126478742013764184076300281141854862398060632030286291026586788487305037800390290036490668190117319259954544113875380817529036380133242525025339135661688208834055762622575519966721624439373016706554494969867549989902590140094022048911801933948185370333816519010114011589914960671182607870873886993114466448745651986825640910900638612625584929869338029536590429129401489648671808378416795693346481612581047659046414917281806035640764996209730715033811314312108255322981433039059973546690353000208876408728915376914572154360114022265773972815947600236347335179697240040479496694749079410545304610939976174140610670536637029789644191723228872225060025110636763565343582627484942972619219956251415762979876864451487471525071823546114678094573994487727161307986382115754634371094153781422027154069307075972262453433304726766354206323266648364904525973374346107265433853216367376409170677637501010661609500733559304072607893143139507094077427996904126465633727713676332818829686587571156177676310826248858846707457533631529949903030110183379756704159700005326796076493609098207889299162364466240934147141480951076937903957897841723500124563941772763837462983551598125898282613948052694187761505168123257274373619144952920570826452799139555505162837317784005731183916073362878065990723317580795873774087992889243708243600216182523325740968397521898476163822995682114743770855424033993022913541119034188967547207832745717076039358853990712801794476626290656716214652567497956882672002337095699974397829588535608128740165192125508699108886606810788309524522371320873172980420389464360139482596091349456650349007480571236108437283838135291301297274719997911596979873681555543787897071638410632580188877337466606753299522036855518597126517844912620163517780494143721615998459456284847713834663652455053321908286873071916018543582740313426476294919722663438058937196488090884471173411831936833645003031974113770531019418096580382473768077676082278784247339314462095046277424518998736780796897362848072831664002664510834557390194741291610155851113518375856977562924050291596567609195268497234163497123794634500782875275699923279100197356825060425826891857608664412049920290438798244739096461384377359082318346712824295195413623241983929268953382038647899362931394490488161150845010799716450478872159483030154711344358338101189300129509557592794767433266607692887556314800276990327103808160124978855158587163771595880471935580740512765969899452594628214604793251646212422141575913704320844545809646544626891577636348315417060936915305754582384894433030029916417470749159649511389214880641154358454848355383282211256647715918574970658326842253660664160766713604949452988729446779956841646011085312041614596149439564823006677267004201863923157984550784209739477697211806199060713352405161007604530366706471178448804796453876342793869338451359002682762666318519555766787118968839976293532966193919660468105949717022910562866640538500718166404535895185662099001790747740799314048185402397133987902397828051315874413617802048350878127747322596226356159691722645660934053831264912633745156235455035568512315493871102939092252153310342278722733131889950196883042135323376154885623224114882711551643108326377185050448474136829365586668684452193535782616372149811405663709079542474795355144955309187940950601654543823144251727490807179306657768580842780379376521646375429086763859344426740177395221960669935627751274674864922827398915642490463638800191488851475105993908011733577214788683177875755706080483130644449332394635126479859447488836887179230424041591280863066082435482706690130991176915595873362756150628343735882614464660746880057123455333629106596035621187916043595390449254315635683715600793879800502164728037613499424497400048794647719643114191219015053112691241373890230786522157664110648031759355789573460385904160207219062460259363745882101976566838867972153596693997204891373618035873575986512170484213055085186473032686304487954451446901908252334651108861114316580572605038110000187294499072957177204560826022934549698554093541906060398054119888637188483107008392408899800627771097556615294935630519956449044919995177998920905910589333937358346268962081913087676690088986958913760489636883626974418787485660195290842711544867392792092035776714651593052649868759714395179480866553574601787777171698057104573951473614205325891342317471140744614799293084115991525698791114006164488380229515431367436763728241614034663284302169261667411464377287576977499104875475905221112702476605798147643973186867757993013156263953590732818483453120319703885072383572364642302013608561942980272751698010991483855253127544612816327135612611903863887583014438801251083540669147401608397411683426637527885628471891262818962987157613437609084919667142993553416520288505216385815906211787616529338735839498767920059889336537970140360390568161251950224067668474764800955809312483319472354376398370094274280753831439858941710535564766494753444650096788989535778243499075434200001233382285770784638510351546355552694894362348794651425650604915094612838413097496694576988670179948037337806619166342916642866544551443366081058187936914016704401248694360411393747310796511423775055999493772115132467382080794599466856163603722540739581850089433224765656263346469686117174990193869559233451199678060417630262168256212899269433244211611622983835987491902180940963854485117826357914356188029415702339396044095738639441734558632240217271031010871043693709910531201227871450544059268536353557613572306750518983974573494704629835889000690017489829775001966394965757786830016469560316719794680808134519783417947855911831532730334058177329540028257652154412396412343532092823754664029507430100071782236792712382039814881740714545507778303751334138579966777417086736877463234211632592708270778345671834003433751632875631613259924746202378165209980847189135523063610563644909946495604762812828890414561136560490920174155156146912939300847617430567383495325837851553124564848132460327491120276932831123622590897617224356102380807168678768049886425743629321714402392307074160114613195995022930471175403328376205900939036469484812013982682791979609919518798841248549898267620827919709531406133578758482863651732938543574174484320944988615968397457145471255868965837754723556093386625693423845079999192815933450541140359303046546263404035494011988010561219672978599696303814506680753309869286023303287400836789188977829457996472833181811883660353863556849611483258680956596400594327281342068061452730338611508621038373996705047759586606490857192047796120066513016588428808034916045839604929379694777699206715520643925914076439849630909150322802763290671015114281543695837718254047781837235780014808746161464664033514787150197771070990299871483670819377848420342169916609003077276983880230345446501795616689729394827640015994762345097673415645616159501923507226413458758002332154526536724579270575123837762433179638668235316483303875926042099558572094906720212113227632831133158772706731656472430992868096867082243213489995942832223603627031992109941128970806934114565077816294298826396096449489341021755745534123238245017157209712178353634673884304072863521023840398060657724846473749413417293219305065210447534685339265282723299435160546888638706896185889768673689698488768646715599126425633290826614257410880528427963322453889948810812588275119798698952042212053104547897975067150537350035359153224375671254722637003129185731711080984380467571382718880756589404077278353103459472284941163569130074795673113996380996192390385899315325610209591492886121803340893191051887076862846445474809620708086068769511677775531703100462692949063805633384349850967153884834126111905403404347905019724279077464720789728782552227086994055928785389616767474008568515821615304497466827186051883460936032008096960671719872580535349367330880697786029740178615478471562401502481709542479990084275847429898873451197798945459538143780086286129911742229428655418532851471970005977043378090441758295524187132688019634120122026176652955592790871209191691532171769234271352444338550588036960083103214828218988016815981948801087958124149097114464702217045291468137337297001593513670583226313668109539271714538978697494985973323315834874294324840975245594048613940977748467488380429928802933511114962183024110328018351464458451468376433829448210764823209134625156713874592587202542940774171150798989243124422537236710519244311926544539828234076204812888586181632806804338009261718663868382400372985734069123007116197180638009123252789032228176512809079587099995340369077784031292300239944853375834618596718229384251609815654623114492308061079504632742778078410020035557234247628615810234217206097777929130558562833705653995553358138221982623414394741178844078636843584278216544097435301458606768046271024048986155339020273592433122255029300014546403177950300308319743117188508324168171428806535008204857639736174058423838372627646526749908461590880171667336330190803063806521576056357188695331522733996622624779570619355513349918731882824830339025679852801407781696451487765722346747864040983437155379609931720317165534348379398943322432062252321407678652832727623696182787275923191473074427245608676592473784229046543429407932662175512370171152200344313618097848503237635443228645472083917397584109957262505770126213658469016051539593613916599904770726825129635764674359298381534300068420390809293309572790330261385285785232165052351944919582173932844251392814014508376265924822034628002350909776818128539248227389753563159323482463799805328978796968668384401164523104708045091518237936220028953679164325116039944423029458549956497783366603203823124279515247937343854500282173283139555048613514994940263983977315979744595168536989526055576701843075479914609686205232900124309341740557046531296672757919698566679761775905064229730027921070480287282270358598606074972345982543811473566152659639134920055500982941634636581139237472332443239833040485814513154339076014380901521463306144162610323636813024668150745302488804218318002163919399422888429016910057901147510117607607390146384718072669460366435867619953839418889841313621606669186841555821863581356484150100480057509473277788499334333769366488664527714084362579318994908205167643294064626397628917312733080459052677464906716888642181665955233569466499427250328654012125045700442540014769710398357743301307673323672100979207953532708464734924427605349447712045446510872741885470375184286507478149373057522621423965225710050062520614725138554973485942564438954670111966117723580942688955814724307639692647943061299618903546772584557908390937552434136679043413608835044211058446948272517027161005138052281891043354987638171501112419368277469265376745829316758073959014654231290703224327274577270573808299942815504779048543931724312633935036170043655145900623415620111845465626343335646196253227258019559008940340179079910631486850971732916545015635885246513957483891310756345192376652535713372822061628885196147537291853207001378925801389044751458459762432072802447113588624972132703573354870899797485645599317887436353040458914587813047109227252907922418584301854895925582915765812410639176505066385568366321065805539926081579151895899360596655194477368401474518964185207373243539152577777863432858490469915078190468188770595104430244649860490310483898660909043817593214522052091632354869331468945654696533348712965723257085985924204855571425524969547572588843167538874595033432428393320352203119072409474175656330038194355624504399407001408466094043575427665111292853642969358049626215973712064323652593734489272795350104047339958218968631040458114376250717865303254886262235065265741405889321764016654695206803522267391801224181322563497342945437438116091431797156039362875263905670943681300389724540733294488036749903102199662260224298515158057315246302693273013274368264753007059708305180013097753013993544960957939695904856530580478258246390168926159947673065592017647414615320591036217352110229859241241955311366282887693834859440595885668155686353623943587326989814313182111138876178531119429191837096812835077019054498158588227744871666390184348487171836087487315330775920476143879579858797458675029764793549073999052995056531073621225466686145882742797986291649633484317310541459708779663455560654053396249907521196505968209831670289929978226825278899478112752033872015479191675597667914189547641901140871761505510221820569315008284921987947382543198314630009408425166797356902136724743471507690141884008755925401123369116156136122499327412132058572728477672476489915123820243222886455747080671346031945647119686578353907421434223766997015335973893431647874344965128483234196689179338671408947299325938221362724679233726245087978031205173052672661583650497480567694202009845468452817332427301077171255450059069055777682090361456094607510593949466999474525165831299019663038996769712204184781965603477491674627098747793731338057355779929723451975467360149477590945683564261636793306271954363288229830543226796310274801846368498122759421294124700236498225000315863337482626920315175517386733526101195523910057275852256179510454651190139442484079481537878373182461639191476701262607911620574987723541271569807482476197865642158390193875776502916641491206085227015331525497020463576705993123899755280636555657112964391297511028073699615269657151929374451805145981627063415552890164246825245881327467313465153714294175502024615872358657837673672507643921334412481035411084748013209887534432959897136040350102837362851497372116999040259423058186671745176568680948021817665957687034323529781228613289587000294767908588298183966336844184394655892955378621475197091056488085447166647832151349041215350378626986367759234929281441423140757848109357841583601432278517504122053945456017439751255088492205478959274218915701683673414833673526561916538225346312152971652503923061368875305051350841902972811524399613745786830801800210310677147305263253829499343816151689607131202670729455531378887178859640001996953422521314839120580277266991655512032471896975691401518311777672167745273113473868600541488376515024475696550285367338849590561262084376037358789931235532962778323756805395151255964411900804353652190049730448517100033679563441186192962355299316032464361769360291002273536354762004978759263911152935124397086176584398486087079803162586801734771597071398427513613600187317935942820691120479820436358576718543483227194357198496163146814780727546935757207951207774058429534946932547013122423563055909748934584376849341961439143425885465673743754388183275548583371679352118737626439680894365314567756679864234633156327222670284183856108793454662154664568917852012765028569827532338285327706398470413935124836984773460462834189504860455140718050025778908222053084685437497330389880886670615138257441543635521676337576799869681805601754788349065547837236488578011806122741633364410541317402435247945512484508834131793580720332570990607429589969654887981566415864661960672421802949322757765536075836048271745677133357341300381212569977052063289623160164109636777284332697526935468671869694440925492243816409679423237743651126220346884940557660378775053103182862641095732692552348032670455165692277960942128870899849797196380618067369146313729885131878173611367344261222845695712853573671554425027393308450269081564244058142507249926875882204896822964436680081979026479587455829922251391767306655991309373442054255520505193219656829089411543872792306198233015603284136135408035966413127322001746517429524766677460885022195265423385756187531968541587486836653720033983913803399336834294678025766410822256889548692788055409784415184087877873285619862538779377354703598524779577250159546262076493378813994723934104395059195126469782355731005414733075132934244706092125307858465031623873158926748754724029792298751491448203082312737941806049580843256543452761470043505035269119437716245898861469328200656862710719287616973962737739433714494027883288988746032650636425737773100704545829732714404872782014076381995438376574536082553445535598230915989503444168876626901023063369336976021896349925521159329236354767027535295324617117358703312804536541596948950088638836013412693916195774894314632091602438693121538115151698297201175208766047547947158767537947689367353661247094953628435585002602937598389462770262477769209401282616799254804309826951931517643471920899747717211364651558471581599809664855752911382823765815235906843149487673692716935608998417660121885578195450071186129567384295466458055985488288447778111186694664052969250763735066818903001006159033583878674537975596892193853125432195080398619150619274143276349915055157548973837236800441574834106504644394138214776862357557534492047241531607001070059121423894489072284614674406517577938903589366816533046646066825811295840199693025785788328538677111486159018899703362138181186222112528839683667443077102140688213054458054106063592958792111482723996026801442057689792153082428775910229918048609992800025689335441653685965029783727868197740385505365380342366908710570903297693053571281992241541499385457641195015955419745790713468440958181469436114487616242566584090372647376797713727947684601044378931652003901924293148789785387706472827486056107267483789837797263617163491198980872061329517980252518765408549230278520869998638805415476410276071573685816919942785159503940156521811886680761106115353577054601800268112011757031977198494265728289246229591277648322228531641756084105203350657540793843683577566083092796839727570402695323889405701315125330950978231240038635704016859233694963066316940181379895830812006124276831350117720364668565569156554078620764530794628463262759818795041258969994768274714175876370342231779438166975799299878314152012163953482976381112934319214967250186189256999303290518232109622208268828655290254217626768489542465830974548325513634526280246888440156007419903791880045630303759680673606426929709018832367987861058518426042851470351057540359590956202502404995786117022242350278451184742286943468584786222445473226044240040564179355156253137780676152561423260544420523242692900603254361290450540726535842618006864067720380446801606457715586429985551353150579142862676614561847385932803049071633857072771986984019856785117647470954808805909974762774126539440227964273705095352493833750207059967089262796563495013617056205201307904176917238434658644741492670648358105181434609609752698661315434345980578871675187124289326891189984296161212434112177468649186883071979726521653287273286792359037999558342385541677179179045098801161054929007173050500974065759462041061350740154374320396136408551857551130760861070565936715823170523694067908460988249491536804310439278130884954766724878478446611795336780826266677649920564334573790922204466693978047246782935028042215706316427308517525982192102884243478354428191968691683486917438462114123776280793977454714757027962580053455207602645107073015329145112148563241681338189253640766941368101461870325302658158084136436181401986888604403629287756176439948342887531626900947803462970766556014829235873140694245607219828517907852885741251227610986872294825029016880015991510233606508969143517672188550334329285964083912246378654414976245472475407251592803410208351974888482415773059367493889024107152087140981068555204600566687129925597252955295960578315181719188732087746047808548810203358619442427475604748958902005855130448193572822348682106847629811657034265134253909708101412994499601200419809258550530492491276835355583308626317349282087500289827549611302728999224279735748251836255770719530250423258304792235373131879134805418669816807014392559288732275596925361821574668995883112685536002068328313204817668922298822423068969356489198055592706049449096355149605981986181930965611926935148911578082480294607087419309590641416422630777795097170092712158695886743341663358323866551992947618182466597540831709704088242191028891279976744892176959971031161216100202010811169241062022487799519316036526532538695175067245445402344948547659847589991915161880767472550314029048526363692137107778034067106964479509930541916406224911282987774430813747283428827041188113691075755761432776204950005231212600733835696108114099382579067360542849467622214515813099022559745559052674011670793529428802070400179341551662475998212653912370160047015566121074543356641752055013829673818808056270604284862740678888358006454547299044329262813942997526562416535635486430594615197996928085559405573402943168461127370411731120426352110940153805865587654397519752598732082248305838109089908231793484620852302587448570968735359633536606515113742762099940133372814662496265592850524213010317948086075499418976176532880304014458411054358897642764738813547018584738285299016186342464816426369345552712092078944442561565369581896611114787015994195528442027339970773817501087892095476364412897733433079415524202093020089620681736630524769856559548979551938200916474975130100449298970096772473375911429386770498683203456425986321565464522874434897149091458590760074278031969686774381488830468428477989930515031825520848509596702805576957708566197833588570995240306954387794541019711968568256450309982892474482127148002795925258314997896344602591728474375058320486977854900742439912739042685933374406324155508803912606223148792746146547098522160467175070072121040987001935513093623183005252866840945723880637818707329354092340521989648158303714028360955791908775347732756133559447617682265071093030881813539307061580544162649715276836357761005149392080271309157607233112569856042838327028653566530789744386814151758956810576468303271651607075013971771439530563168768643099045437252722508912404236912556283806413305867591794547184518179519645191454563918029730931150825253260320212353565109368116769202986061837472773165944952585397152649499406864660763449290879096261839419292765954051903501943017198124474875026189305068187330138001270730969923860512484006765663298207240024011491282396558879578393564247773224398747454085446669371129736014374677985812685303012365323402815477493725592141542636106697391365207759611432832632509137648621480821205259263691519825157935405768314629083785536108404183191970107051943479504655496073313117235842105294060825107553256811734396575828563100653840398813538498904529819119124021451719709351859409555346616417535847146742336934417571737086129568891264280731217168378522844934472987025014583372777142929428932238941567720211496388179644142407611866570564069374556483514044608364265879020391882414435667906842957019677901664695144329943945266968276975572287204646472541729495405113382160598876457691262694968288227845633096291222795525514476972780784689911031286135583126566056933195207970652069381742770055474515847511001064990300012240958606072148055744441056123323358160565965536292146390809971902857169540235926466699776171857976750947701876025404525118318157501981979342796152670607862861513479252433031345200857637315405467911985371658094115889327971002146404532884873607645364974671480711149550425928420263543864886954615238761822834671130265026601707636321105693864117584190658141864573507478719643593076366374043171035534357796403159196436653340470225594517587490330794173243458147167146168564213788938965313687301609787246656215563533998115381692145977950750900454123008088279876907627041077634577400075692202173906285931943556802817004820723954635348518711745525611395109706551340055718376967037049551714452109207366940805274071667819399596384410795961598343459503049963341630826884331888271872569331335417971771156921569538615298018590457074606613520643968773518671778492455634856586029842551971774431080478788039808816771982825920137457125146223629099001195464077081733029447505176344711981383704277760932301069001958230790143844713509630563404223462517023809818757761411297479941996887596078857683706417833113262891708518440162821610653161433061960050003189154037376539110148311134635825804706831812959538834132252844542373590184319543163132627267895648522142819975148650184707437876507299802204841026229717963860957235577062577850824358363342571698782319637427204227894464506771198235397233956131566025517562150986524236076099797388614313445634936136073789658802200211905158902599874081052992388593291326461162346398868304411297697892909195259818300947269650971141382129725285544873782274656901428041855653872359576239665204250392881074310615759117584192496557099416257640292430577267688137116806741317213938324642581071416931631917475697472107247532784344681173970937893214487563795154626101261137832787787417650355602585181698406336464627809081629600237306117050260637953718606731282248535968680969026698348834037934571145685184424551357149802243555384674447181432428797041752905577186828631392241594033979710545564047571468156395239665284909326725285356482560117424562767733471283601321860190205698714052799092969935024252072280808433116179100751155597970281370309587998589823497256411095208960622521071579965674061531510852347422337730478151626344488270243504706071483292555655761717820927783138297243689131923500486073945998247152652294565501559321493999274095060648816262024044464260792296312468541013818058387735663170717029176234319752286589119431492675180977034919046516961458372416060330222654425145986660271606944933958768487731484014956150537255261970548246473077226753543957836200320563557979110316320879004704334795648008545778660431142042437469211768944652764897041943404712947468258706008347476683241734635012529864028499729021697228081710687003896620381114464486149225658668631199477039326523532641773423013624886373374391029632748933283418717783285655132496228421113281175010173168797528557298012464193217953844251838290437456771065929128400358770467535555451304490944485809827246323362698185420679049443201451000858299774894666951163143117555767299955994150620360495308719089364226990107126400168202580431419944522411398215279309832281600759339273141890231423591879208451430017389406701039749719534725068667909164832527385632120478091689390049787723288915586143033999928887223883910544506145710935876078382534949719628780166932878704217398122515208648690213294943838871205926855276070248938581450569562940356325267284450117795506410595826068874490944670784916347720052211081853533924528097288827103245242820682496687166210461477270970578279161449544237632326008004249809504900407245477824944092061441653968173727245983417545388580710766782225579634380286683926880468888155483986030512758578635954984462850028616936629928952600053563217680645338775740185156636600256639869245464639141916715421502352532560000416940657100100855877480404742658245310587160578103279371222345104563184594068377875009425364732157839453110135752066793058793554802456387441274199307755313468155489735878420703250155410392135449459883568795763651100582202796163295142219573827404115688608702149034363523409984857439115276236750732886852583000516499499678134089787751646442150583531419866582778890472655626918079026303883886921194561796276767837478632054549262209693664760489264475439697031659404085911312450611228745572350759716610504161742527300275693295261394729887771079901218244076858948488526440071069762931822538602540472023870140360827923394730564425003073605878428915477832470921653214832204030380836464251478044961356098111375637263720248798761489203450155228408004264582109569935393765544319890921393128362134486956185357630581751294639113226749532477279903316612955173020744457048796617850792878859552102730152077291534527963403938083884178181387964690996460675166908001294126539874749509228335373580132388880180539108044226440683173885267122768564512138022387806537667150554732333357327848883558859635336668727001456734471111449129107838442413692406918788563149990320201544318827414958934512655246089587936265900012998932428777257030259462060616670043687812585164729013901160599768448471331246194802444367822306339599006101048157419933045915717851199659777485755539519548323672852263259811163389011407706037949454828696259539940717897298870299776418794333359852707639584592175858212239551686872652278411169950947291096071169127108974530741657946409415627343102055339782382956965864550174850948090283567739654166524726899191317640646273933087973832816656360002784559233723397658699216582477509395674935339214970839562368270366665715154790168192373350793468805794833042489675986436764852900997118974099698731752231085398599500354550721223204687353008586387673228963513541846796297746068978327500754471658747969454831931994640531751569413733839423840800778379728707978568985761796942243578543472539475698087392366009346202438613729817077736859564212292122181189587930055796864202790408781498355497574042537936674194226413069465349272604273622958800869191210839443298512354328683667349016779271861737328668983144987443239591721349802735986141602171848185832549241032444592637173234555558741113718289608487268611805318224217947934195103940528268043628395042572477221973511712344199463234677833076370439021488376429895803449320899786105580381959576979120670245465585636083571369331237747766658118138025951227209920370123942971088057672145591514957120415081319384320400370170391255808063658386201592536599715900473535546686790758179601821588813380882348347349440300673345472585754583590972329522430657823436145791339375121252720133910365094324185638449281211466745233492511366575931104603119842597021379241609195477812222405231558150006002020074927001636115142338051329591302173942729290558508146567738842253429460575421459944429169809510082413689200582349199511070817928783207845889181197814651709254026380947898837393022015776756549437246398755442270786921480196784800342070993763596718851619302572043357330472918837660558725245264933531814793691420287513293740742480351019093131692887990469094241472965957230453505288786298871539092252282811014928949313194776419508574212602792920204235164731805302545553346919249344999375960944480450571482397975697661496915366868518976335588231956779344602545949033171937309555307514085076821531845352674688028213835134440053406480393243605745047667605478179531889657456748879952070543471380359950122128170999669987623287428367281772804689241628042932070056002583228492819361036390704524972050454265452124359588535986491942013702498381330351960569046370167602416476950652985809735757732494005356433648550125539906808436887404681627787435034080601393053418569323075881975088313499398772304003046145864899294027163579068029514350631929836691569071710785086489655466837572321786157645169879932507270626046059707084675849184621722635621174452605803605263522428511626406164334786848169140558383985522322275969534281264622107848604847207339270768002625644571563181287680821805948797003493915879505161806318849560378017048551826270217048482322152685172111181259855892214543892992128309446926061833596388672307837283894010288603117930201246734495467107804611903916263102937973454562002923341275496796162669373433613381179185274173945249327227910163568670536368856026655656773270522798945178382409562029501810879007038093412079413625319542371616016712353128209062629647435083933558427833024638418952367060322237661295630557704928225197540998792771901457917851971301413979562484063831380094200380480186256943283560105867498823701939450696301249984234493769829923245688834923001464958913495856117302295633715443506716209142010644454923880051418792176986835884001564891044500808236207236745039261097303067962795955930481133012096160230037213201626924292042671499133377390109292306365959717466308531643776137679058657234522508368400234136413468722965889164568296979783297050633965371366179690117965913801129081300516781647608471802702238622414875235686665783820506618893173936051270476280527148327361295465048989666973911194660840437691840735995423683458728165334227724383416661907502236715660678423915094450501080637035354012841821254868989837486900272502740752333065732109907711035441688203282735857383960913054673922216224953526673528063623660833948963000917769098113291074048137722593631169220713882885376759269641418087385300211681784530764058487592129592953471783861803575528249435642797937971393970824611856473894630733676848944635783724771734940697765969548303184715508472079249969145437343479849903149072823456960735355850477655590121420669827353761396570847713126362001322947976173947227777626137341313431435203915645589888063567496337809224138632107967640238978202943006716722965517262254569320413457318626012702271435196716394814764583122661293406310970686259475642443923955626815151526254200788488561443795900744843168360320284795474765032720404967145496112650863692772555822628387456151029038567709429135093961196575282472243871139025898324418314751585610513717402427046559325339799625250428676212905547165433017337531972812396512397521868659562199537624471340555681741392530779487954833498499558306170792329905700809867121246195188879178712263560501161855379852654164335074855663867093887339213128133913484117122884069393579386929100455075314088735687916531737798430975531229801439008058784348250880605598542324507900633689754733657342101909128156866656313265087489859045371368317197256782475014909119489103475328019611512288850769735216894793658858989461438874806819261441082199979375448226947386955121017711894125340689814350313924161983927113976118804933515767488829769627562374818765540410233161284213746642732865936475899959018260949911676616660877749488086938063359448054465118632542940897916691684016741467655704490122777012813454467729888321303157683618813166605535698192309917390452928456098880308238897245070471422287111693536892139946138498460164315235238487612341830872184432122628341152086458866450431198221464430925885226508265653102499542567698884195427544612621044264546363257915103958514631313570137135005594099122444843677269710664164089632337165942828498108864252582735370649023537351895989365644699150316579397911998289758948595953538910226343758185531230205235641217077328864042643697643202324267743168821000208399931441121255660661295272756120949587635786120737193772730158218838974348649498407802905116998191773893056195877890029630925832117439467829789886047961128154828226595706511236384930298607015995313794668719484650045508040697508259468437215371459127282336239867206452870159986100251881132787235305107161095815384679110839673404454715614602261441133749290938230704314321886654268403930137541328586414607383053725870476807967812315864415836277706629825850989320116315902147367324149364167836974407171641816011707112342784387480643849393475400918426423794253863689712786213490137487930818797819143224808079239915645198943554192402130141886417889776434890777624397497413450089853847676888157683761890043605597490982660938698253802428356400977282359113491801072195436988491534046851240006669743411549719597115027113017766975927512761485999010124312092677432658997276150426423866136227731844950868516831299506955556931595822691975626652700298766700926110059906033271683820317155744277506085116312604393474810720301098159140683165953520186886166973472699679841566556351672867868434899756139928246478199667804061367804133740758612194063334197122405951603736570066729927974002280590684576733923181944340804672243589158130265798849170195294446522355202182928529021080638878162989279683791404011262532854479173378782776113101513744340660932250318468191706273341254965132154392015050837840848195947287886125273275410647013916993790057217691682125894274320456845083680366661461835107485171849646226059750688765851899895423903988694266541742854501389684767690726096824667875283106617849304566977283094350355752287792299099975937545568328250291022165844545000341829810697331254315950648950109819442210527123980469817625994959603896230972201361842187048510075673218804035949193766732976613232231434460914278146149384895202322679113967446087267710036635711398014697094744164660488879687202781323989158250919722887386879449687200344747024850511422229268266579947568668797870153358481982790391722442128506962012451623242166481375747960883787273024777245797157242232086990889014558158164566871836722104530077352916851298063350465361002331894962173317900360888217751837817871316896225212335256124500613445820109634094147137313504783566625259455053988936084689263030550470766920139967188120205116301022763728373485208363920566770805138223926297702481692349831452899782702497123580346325022882211864680487313991083539376394653352017054086682906400004070088630102558943081549968311527269381907476808593879623791875378699152111893998852022256455876426347216014913939298636050828083275562652072467045752140901884837349792077251883954695804540836467652296630831853196301782038931817126496904395499701720103041570077483196013987236387867316453756123864565332464648896400347694179078741473061848848689084755907281892409095104462431283008287884293836277610875392154896728090008675163436944420120822773677198936416507731733848157408177758592694405526236916061110587134824381314087218410381914666966324839704179571716066633949032302238715768765859555643206694296502608727846166578654144546526451497622217643586855150642211367763219399132897267665586216521426977583135838642822817067979413750739239420862332555927529273068994368737345826136963453992874721140595434978860416859656055176414341500943797173519078895631335298038795902330527981584541339092747433756993877612306568765019476780706081445556044413607770464127427201497612496780100347084110609648075763733636456164516282778613790059902874566358598444507502028372836830591667961960896852880191849463014938854895219494841493754064231345969105547115429775464098646834455187810525373970469115854956257826741350462079441756325453379485636915812421271952857860180726945641203300236093265495402077042680351507045439726336767792514554499090511376474906755697245458825489204490676026950261548038663393914761884914567721392357551993352389247606906120598897133685300773464244738580765265728473106071033731424334226143344541277054990621767501864835425983062419620451758368729917537306955663227150501821315574109144141110778881259052954295766065871761744561954812285253258860541174098041392638424869110836461894665841450136062770288815266411633589904094568811407225047733941402391858683932608773198457194952537527970467200364289053325599652928937212875206118773343893211384232074744090280972462697972239530737015229136203719340336171494125276111771824727961253578133531250102444099910226253044665441521479728057535674146869223347587399430198382472259575163985024083587570068211392837573093942049967774517017219137768601128321775837828452486792177329920035872376098515491355084609142063074838545533578293349210619002478582786236682453269245361461726590138546164918572727519110943107640426635112771587301386485323223609168224642243866289551586437758771450676424914608749741162707277159951647249063749136422225926189928936537828460963371956867729044606694437547690845067534751753078973986199746202577478277467510472456328012944059829049371267790515996406464077125924668474985836477881869379681580723546491880304903174984646031299872006981460175974912325461843169727958675218594203069216384230198102723391148927769932311120395964335834474575702497432622215253919609053069230099730018170823928297213609721344230793096340586514602410881088840706513475547500121357654520741374484181348768609442182245271660086927287668206219704673232858187305942014067233678448487112593820064137492447201789672136919688865880092765349128462476470399571058293132787726105664925876738390352157470136214318515475300841823607588591880006849402727843131547918926943746987326328776134490061356200412179256145021439307255672717040067855762002647878505529792488972716837682760419082757110091693065375758163429707794312190309967510598192835708235973073963611298118173656792858885547563077330949827286453553968671547623203779627486418683169593437348435037575141521875290454904211910038435094306954522953764705455993947123243082660837456535333922699268908599583905726412223920729431879901612910880508244774054565526457758462104218744280859557515675606615049612276010451867324864219098655124996785735250885442247391681263656492696594762842347017671585574326306138730997333524156746861489733151877777820203733172422956264871950614633106272335102286540365765194937426500215398533055467700146452407378795907075720872891413204065512969662910035831485813915072136977292330173864145351865755069135263097720554685932002861122913480426268495467183266038572236211919265675491539852871154586817882298396394198732223443845226530746102369638177982722864028620568309900620334591938017230732180636949813138410134305328327606425494873878936297617867690208709278210986192144955308705933966278463888632047670515815288917924059715535198944557899362068492258515559685928137883305338648230269187738970129258054357109599057369259213819624911188259525271777928461523062427357870400269717054367919979778014698699874314088149094940418299937370015874956372856827217571425859379903020690275387978953306598611997342682369875521578148907950253133160239973876664465894524598559705194425587090361356982042032883259472075472873360848878375820616829541716661529223438713443818643299447978529178638471321061355155888792475715352091129895921974452655475906130817218732878289405781851050409085818603009271837768960977052444781266736778032788953831016521296179902522967284509306897552695260073770091081832089667579513297885800101986597647644155588546631027639146050589376057218487463733434692359070251597639206331969338873089701903417805492340247064418737765104896576506398693795697208906760581571246095711045824738303322208711540612981639026964804647305829850190370909360947418259341235124636955209988873510062769994722768903115512937908253883792165656269490684602054464125791906349648284749128318502131364276116196702695993419292076980113202372243132405529411863234933347612792309245906182136741858917139081985086218269782806036036130276074034788139172361190033088903296737585090548839336842286856604744017299489064404003147235714094794498708583163862668633463303059870317094828733286066134893185336663139667715919733097954123952811172853246284695633718644300452421632917247832714696782523742912125773592654777246673056859297560282286056857735274998626083629329922071636149721634077796437198520852695561615341396478402178083112376750824105837274557741264793504165156455299094067033532974183575173705727389137008576724704076184839937186556281030421648087394001273661573283981679203826099480899325902812755851314315383418205892263504606619649068294973546801954739567837621965234478982276613683562529665590782474488643460929734008476542108303567391703372350306954081421846357189032702396675977447662925999831239195946578733592954457362396293238032681949577250756064699213370046299134543454066201020814526175167177327848370082227559601275753057882779426927418802397802648146573590186663829170842156072987161533423521464798461161440684912605795407989163795698133741639407045849057744830396516142964963155470141714484904043174295153760965365199586296491472131672732607321125975412649382455159032941031878147990528158704308768279531687816229600584232420019413832344134742963000569412908208677129623098487444679709416778633001163623028086690722274324635474173893961662082171871441966415080002214859219196680124055149358946805376044668785938366410465380125619027123616450977110517994783557314409114816512254921064280867621284686620879312136692261681221588355462941451588183994509743515188781398082260250441130856344150717011182054826806912145431717333147142920872212501924741330220973646289378254972918524220816169288204376498000782042528965719368216891638409661356169135472446404709562769488130367566349114193896384298784946883196613434351210793495431643654300257881409181694184516358247517006564727952854830365504564093671535727494543934689458095395186000309845865753256308946211083029715584613710011748304577271322680322628564710822371649719597467262441992683247206245744899504047846162628921550849497288540146426886397043356889570821158938168525707748280966901922476316105386014084432236306504506533237964006186117037187995108126113076311779291112317425346141330481652654861675948387393864875471890836583947850100076852000927813848356068230917581489160118419239628589020939900773142419491453226986821825514367782847087161162461736026903899308002778949306964194052137918842822580053530188267372780831394601023816577654401665065530179455986478755069594395802389932247975572351993003522027540442137590835296965621813115460417915896963777031387943941191894480867099272451202567382503516005560798196583989431380034507260389365984488855461887690843876524355777317045445203606880821642833269666353276226527586152231939692402705984569915012567611384640848688840356440352399020032704424574384827561948256618136339971027721265317944689789566564090967396871112384288923867887788492954671466169370037176561325659235221879219379290041298837527442832870444054600741181943245805193956016738966351362536599313822402538030926518724254343451426408133099994883968125381628388110951634864609606423844090631036419824931099126251438954527087072639756199366205985187778410318873151080616375918512825501490539881863370369727072572667591024950110629152965053789651518189128373922457881127290454535102212442984160640767614743027806613030935966801308137110915421434176964469185513003660705144391568032364541080214132034491887926175779202577673898569910425539714005405893742306707369073995592752675316682510765171357982570182869051391537759913540141317768811386728436498599342385366781220495222407040973742444459323392458941779781032868224504552339433793869717843153761583891139571765166735092286937736412387339577441040144616528081267323248246510291789599116225524414877654336323864213936037763123976495236190243929386296543479974923552399253985655278195613337747287766299620665309779558162187405202527591068646581886142772387128937931810649620619310730508390195896454466603920138098461880314004989945676553379594176542270662417647618806884407528470121358471701410897062780299965809942917308886636598245788372427833643357548500187807765274766922693558177106006192038077399082693156293028575692415998552075633286522899692605734983979832027587668720486019958626551155317999372049571926482625697228842578227480105422512868162318371638577316451419299930798897766910835962823871441400432916724484196113197374185450480911810450120290513246964173626813110324750852389926682755337917809147820588550510547497576508582964358101427661327087468503753524809288214178125795266291858805066313337286020413192387266431938167038643135102166144843981769286829893105138986505194036563091876435108041350976597673733971446455931991728937268675161953384041523958577964920743791266308470628308903212076394140581533181058865282250001124644084472225054214296908700031682044365192888650616453340221712407702432927541114108408478599504867107418917098928712097677253213544091673884854858936465726979405863142706249885563059699461757999017064534749833180502677592281874094402365691942323949574909241267406852382883727946105730068707736270611734557848890755403447760722868138133236512298799304887060475227839785405549979827533570339950558230048593597153089095851343749687966140159761004032535609245754665201604147306024045467794441798902742468484434618711761843745947535158879392001670816569476418913947772029803577550719819299606031610667801993336409265271686272983910064292720018346019260343706280349269997208397295307632575129927675139109560573005944512238654588558703291614813724907081780433315403154426553470787475531003515252747238424468469399216870895130339288794718208269354138291073244248656047235737044092221753132040149875548081025536739563393213334235231199098213688859058877445410599406378518473323581162282169002361284574544252804499821712538866090815241960681733436564022843720090476845088169537513254180965735067927444129436666894573116800152689857615107949146278866721321791938012609319561906828953664510310724992237646689207579881249533696326617346124947156216251402988644287080306921123798336639986241714024072860067264538809185857563639393289738884550380537037419630441324476331899027080139739801227241124566943408773449243548874409517666271940728288955438735186483280374270411176352623993118460754789132400424518872174563381928851252942350120468289237156829584339997707952099563475088792651449068207372917014802038072213798053661771191752335135369394680504198078051265116140999977666353512584145139744277452483408886968775795589194612155459910514243860557889308475485645443889499325680827451559977348897054183529035215786030716478980984981948524219435801295058056007186983469354434426571004041705734202122619794401245693040896600470007507815762068343524451789688642908956776379107281700351999473014894690457479448732153266040137163961739362290906810922631535806480775069823256994041446952623699792759325936629451283566178351574584025153103585798989195426080982725155663575607788303203249911911354087430836421057980366556274907996268396385755859653254363705341220482818700360123628469671370819715400492324860060990083113863654058048576805354751273443797570651047414514241324387247650314948543636353012949922413462245448419651919842574279549763863443617174998660423556663723546423857793351230939602642848900347391341320789544195800909450780912945805662989409562217242887945253654580585646421355986102512220340267048589880759819560375450366098074706082431394449909892266857468971882825169085162170688334733079884488742515417597758703813438714868362787987690580072861541592172300783284457018929142290593929676646956994058259402606612519936923883120761401588595766614191665135172250752318496204125736602436292733770128540287828586526091134250484839914465135701863654203320816361466156281214383140674379113663900340796306461871864751140647090034394212375061689786572543350920449091668961065023420470226933784162889146745963776058027062763353699435242923159019242286457768116012547777657001895095789892378636984277120044239741292859745044220367306317555426821679639911410899564696797543890003215757953825807041264658938992286801869112916684386487620293418202734203142069689473621579580259411284097127321796770659200403369893146752810263198480031656178736656361026874490653585699479516322968496764510504267822666897585655814421283103607911664252760434312568929803959810700706488007691810100987034831397831997505458494149387193148453012882686351960727930485753899661767684246406258306199090999804964382899122345501084210453811328722379034000906993087219608102636972522181142285911643079611321064265292922206951978964973222153574958891384500845973908685947981364549339148122338238055168205001660391936131404091351393125092401335921384920510229568717013115670305044118017272468942281132559852357092257670234720443818996892735946026940595831029724881307132646555186372146815860919191749398612681951365240500254572496241531327143704866501530561018203938230144823867011552965154110598682745638314305619406032156390024156027453095152957912564734374281660275179801917220659781118955357470892450787352896636460505514986647601877709346260346646799343259964380708543823022847008175992465845551453491270115105980885389053621304085386642150742657140362206732704364875498780245438513123341792855818429387900047655399885520455983237765079634401781103060865433615394487619684053025883110076018000495207241485635107505701134856913974327416501783131636694019198379936515833254554638095170260994112942197341945554773524162522507383118014761775250056489591333868804247059339316465274970953115725766341608477426554752049446324735642785761603312500847947761763653617774538251857579188971724969823006055555333135297604486336999564487737145861865127462390112128235399949269802850542115854828294410231436928648862119767300321390861171993851786956041206125464444715982120886831206286445030533311128427067822638905665629268107435661577626175351051007069331912950871837822277660430850828760377085931643367098112737118698414446003592969687297457895620893100243652948150064495652408142920729720192263740590228995131321938377048485875596573645861929930410297681719443570998239293664610492558932179411404597088460103356733989481477198941907061778983280353278354655108296211868982669099970719629933247748049207932984803513803957593456700438864328376145146394310281203486581779284704274766864772879217217590125980649926687202333160964403698265315463790579799678110208693247255258882506953233388394795826451922717316168368118549051313233249197290121705259629455455729560933861686057175930277584973261060908130292553338503777329714297196159425370990187523314192725697236564804448060949208086972233658949339529550594186802568846974410580934487078887936585798046815102442382651014191884229136187409470711303829756395029785076014888551514956294358247161507576991524894996485272080295460823766743828112421281714853605077293068713644163344003989800857750250762006904118656429465193238246522438343889775108358262057900257273369877994756663797568405304270037895516736781850517759731456288622649287833824376497259820137006247745724926425084049266543287118966468727652253680114631543590041723068186987449220853577711191840997652723551108990565077252473594022723147715111253385245978809903024940781323149142867082155677335392058322047967521687194035241020107762203661863212532512849244713543357608950376897511614106977401700841588114709438471932268055687693109698163505868470772204902138077939921759320201644956066926828865394192423831047625853449797883661174616541636040916387560974451164749811277526719854271906133629082710599972297739911758866144653928987104931297656405126558579437420581697763376795430906451791470844589115092369829987135952525279008463780556073243133206387938533918100900758523741279620226385334866059381107264428516555369543192026067154269668807998132024884253180200306917052572965766736498163942867753405555797330484759850700091109482633709401575182130392773990402332989822455985774923554976732712045035449669821975490700970631339867859143558446226009363937077651108557085991088014521306987310319399316126494222229244842855196482735006060235059837664903189276936963991092756476329183982683545687146134914537931065065049421182516128955748071328755286026754705748955603776836903916432633360446143029624388695284225117956824445182923778718505566894158981025098571092901069867898804274145027883962043535159957456057576358080619057122643344156082855558937903236223026495965904652144582616483528298280078502742935000158181465702119469164797091363501355425701111614321075932561662722191837877619805673042882542848888909791562436969442291417994347994770644810021082667385824209624882907205906939401839130197556449500985366077535598336830590205682639430043508134058696188008328587430055437742123366162504489789920311430301006467989112069854129837978602091030409890202968718624909100190305171936963279967856331955249730365442716087522875436419137388698682933284951930747668832824690770797326336980746092542321155761704061696595798602315621675058726602906108435038802300476703743410262426988084066159217927909023484234630271567800620287774778339641830039223649233698113368148698103343929455555185230324821692467209893437913416881701659973675774642945672562099238604217454132878943778020046834709032960177551094434727166607764732101915350469849586796549274469584014915675341851516000991025801398431332694221447116588357475046133136123851153310142690853820815973917933790400075014022453392680795187158915942857090477467411719363616498881655670387184662967476438850209465556694119682646768438963145582892460278664070570105507510195354019851901684750489834240264633034781819178407555520591855329409829642756649261152597570018825416383101173606383973825516877313608361102746947369162832494582270582957314232228447073681664930030468073864258827146110870720552736891937942980542643682354094660750165535283467385359910390930187490934647527250239754482922797492334091102221515475060209456444431808408528912650309570728964299209563500538122593399452711211095507753696601276089289402325288422231638971993548581122116399058254805444793361056476386421541197428345961365546866327949143277341790359375538510932870858458397608443134732737397594182176905589275550403972999539609522841426249805697379465470274514408095154741530500233117043194072992507747088989569193974503358027628818603649175456576399233886374939457190100512328764817021213726006642078321365605581917026333956047492526141923548578568926579095689328158833726555947582929268556652623829675665997166794521591863551963070520869937775063483441706387643946429830988253581460514828635176058112113428799323127345957750249535840764786517444442994708769462967331764026142294338135183002692963380965156825809997998278357811832644354504146118234080708897329013230381426881149945814171466358681363339225041879830067495606142560935802504774894571275679808865526290690633162075931191013678671397175565356638059364231952833270728688957608409922859510028584949605012104315238072006014169558720460398157374740307608028106186419786795936880928047714317519921894199037195162023393201731812792981339097856158833992541379534546808281268634698232567922066090469675185635595698942444654550792004174842994562093017608437618540310011157389567344724819110816390589142273110525359873466977503056613376909076045918446846872568517395792594636269157602367955320486250097852336171303410614489818183625881243192850446200595202800077890740720026915625295857708508917881831281726528701578956684477685254323916731812466616614638663629194130941777089587960606922255012971221765753134056617198281490899642722795354043038503514178747472136982561793246289194202001376833140192881300959410264804366567220423202721295486626144072252083610065811573629685745887579081540122295828237155803904358106042448715516269277545729372818311703211360579522181203539871668982389158568926558721601236002162812333288775150095829468744611798016587166487220949652689576289645842367594996368055978083012626163259261004790084363650571785219019240989588842930508409680000917108798968349779865167658064592110162230048600464423450637209349461566459575469352852096710852178586429053747774107875042519840653301147642756786062023816422694571728704513091837000985292132192964091915519071258949883629201080740523206676756854383364020026242113940721262564151065488031620963599287641832817608600573959908167408172430581636667690921199821519379695820071948545025167258443534281110197197775351938799633984528473059195073629775055551812024398283575265527172390805917236803051619346556375425899641524077907614419408983992711012685032184214142023715180921117583559937338583752815880553704321472411027456030970403624954450049234850201792129553423409382115658755329781120062329601296145762312434866715131325889895317031534050719030211854333381050163405728238230917563357702435314460611430138083891973609382535544852261481999085701514499374625621083099335291101472755558230309009001289296660425182193688245092154809857776163378873274453965926882741024379316994130719913972187128755188214727475903030022270149694160643414878260251154046072283525947844406400972721331052901473260580223827851729118827567474436964723760741447911064874255966193006075563526539789619620197295929123481182453100265554353643485047721265446357889087713470637283595868819778984693854104445753174296516223559231705099312739784499618463340446613252466153959265473499674318633496993001897313416459091559564823429984450578951088201231578205376143571800163335379843297600388567305380742303813127551653040528814028149548476045126228001444545400474931476723858428186048589554479612773037990515127000046790509851286569561091904518473419199200411888534073817687318259233065961918239615939991188942160229568494603554194907923116192334363856277549625709322572584087270118494882529414096092117820463917604144639605016586838097353215991481695217027564979018672812958552823782583717312804550746013478070205654835445437485407977099612870221173638813946602075950033790635313940128295001029417268027827813207245812227507619031002494331329386194890853629126806854362000588042260780948744174524421013088083103489154969769564855002250993791595135892081111193635577260321834953586713034794610197356368713399114914211430562877977488937889427824333520364490348005012018231314307861961231181816203469647146184145979833645038450866459467106999975698214398527394770974087342928269859061459014356432853642335303768245669598872438969530938224537345383223226692676499750231142872100184780717986062182731193276290950678031465141181100281851126279332274069990411449713923680437595949952511380199520025287780998711581734801814281650992557371488925667792520962386264485395221060360204698250380694949123039542270997123771402813018831832192417347520373699107363222039455817421383469188063958311390271281052965116197885822210908337372509173466874458429484432290094596742498964792984645210046806734823394297121268491440206556318366031783675992665068745508089867794846018609034635265964881875990258018699158704173845651578360893836243368921959652360706380615560300292316868935451447824165605598774859557302339072967266490271672458405311490548429222707057549474731460631683251908963176932744628412938128142532420066655490075637327508893584451160196503120510593401059450334982555227631078046279381030600323242551952106447063224269526425160638345660578668481977144930936674327676486876092965236348791767018689043967117786557834553981536744161377142906115119287915228726206607090423474801274492774111470577715144140217209767705115389794904065325088214438461647441650097678097166232484086448658169745873057300418479218206982232839625768512948858849295219550961813643589318240461994321882292134547485289136969883118813912167294137666234325355202294648914818090772673219134076553948416433934862449752528757623695199706708687000069955568177992431080375935061442799384272740436556710485246228621911911310573450768301249173430299011290948545136911919163793892931758249597239554500966366058670314337767258624136735553969195310233118554207899588697949572561725825390341130592657655735306262399538330358302566297289243416422623633334821768476984708066305536735828880023863423254795682467759646131988477478399653107756800625123224757189786513678203838504502004810644749156799690341732706285448852834923265223040364688016383710366583741295073128288672915321299143223362348193860391007317948275640234431524653862845602457165539436600001150455397673726747060864182485851777223335299926088429882773322152131834499126010382859967062881106514457351880906025164240729794951710945012447713039231034209304762380345752979124704493061559313754032316242603859958956299398962557510200464022611082768852210360311143684482654788576935509302002827604519241124025216340035056078678467792558907427047990269728976644643452372012341864444274610250423137500285552676155497294532628193796236656793580655712541102466114022957072426250055992613215840759781880207629539375162727072110426834099966637810542685567049638473450585802168648039757684035497092167383440513667527633497291489130696257832914645170297905171766345935770151041346996461673606891219145856041126109020128986742719657984535642539869573330785437871825014380816618687442343993961378338568215568956539541333620952236616644535881969350093318448109853088363173238903727708707682433270125775766081762472021467984899543989485124911898430330923631871977541861495161753136275906755380449882543595125485292304385799120971931865727079623187873780869808705757684587690055339689834250297727148690006884347243785902767895493997659096602306558524420177235024037126879470768965105382783374695973809140794068966053809361182811958640543162918563079483529694395981458415928447050930462968413450357046333940943995745853472165386115628855196868740267842658511863954513669929274760048045680233516165659148963634650887166130721517992565584358435627472662430223454900952559041996226377868913611671194443577462760022021874271201654538061144825706877391432333441486693073908593850372228368966530315612706794615140758938329588193452475949059800366476452031645881727963500142150127232889324155156138160353291581130572301908402772340375120909353438526028000318292000005054153358516912617210355365896284386117836635452938955986288677476375835116930371961459254290108487877046176354904530100433540252186235916160344020963293812767039051985648486060950315093152330331497973459017530026854498841628847839716859185068582577252043793699689887707080930273358329475340495231900073903717378380799967418848684204599063972714582447118240009588532257980238509354651268638828030863693760300460991510459967692490629867827280346319020353815439666554887785209291392855148876795497602743914330992363161845817743331518340105102345150162330670738643253256763063510646806497914238644328158687331499681599419436824769918692021376904786626772941004224964990211013697239376369178063536997797286814961572361367800708735166110351739928804449150315249852994857748022390385563867821518158366907277930888023497756424605751649623125118391309011716564422133837338596578429172399046124569425175222007078631894576441351561076683866853106202632785822489768760538093087029088457012475496057878082536358021159234763411680624260622356781697306479660395861683157680658289958093916593299979057743369782708256081000233299751945834389133833058988559803211695783207564934308274718026501855449342406535493863499177756643553020062246366791221238488735110330372563579632096099269271081715819575377086773912629497422509413523796990942471600082003642159755909998807697835488380672255740195412128054247599461088661696310727346354280507248713878285515103167935883090309309649412826689979524234750616561409463923832632454957242326339734837435898830834417124849050507474218347575337881434949801700527339162520251915313751520910589151826452444208882416549288532537768988221650471694497183323640789524684433289116149851997830912241992860622813835008231026199902895215785156662425593910454937345212179516024950174309491578182063427437388599009556047804816584600699564665704274889284735403527363663966636577486158777782897441029614347508224620067528073491453295957538575472456544294107781060836405123561332375184637788670294754517325371967072713152078975005098171288988668531475164393890800069537830468934868296191951025118505925979876259156663646251810732929282377300924650806046299206904727041506771155839465913123131558503330168485662033655179479678960736094612683907874682219101570882994569722569770367383453900719001879680046619429939921781196751799052759300997090070403199054736728804857639272585957578880006262463614299117129121359925159803370315521320895673392853416901593754251065359593826281935165800710480585075821797225345353039416151316371008382280652094976422658276589490951928844050863708115646632394979102719332576028106243757257015450431026878450599692677336187909563157205922914387166285592130097269841502062557382499214537579544058571020802280262779609696140545315280882731935291431957590312251543600496667353268957302827302379745883928248303784347887141463668510406118696769689105302516984325068188164246765830884594656686186321544735107318674251794571133623575759695248615694154796494968128742684201141607655683599005358489679771517823814478431413422661780931044155692633647453471990351843376062556326275619060767251276251045919316481626997399421605631895565295868103095967194204915374042485267559066469235152752379913706893429632515940795196875924796482444469620384544480960332641255033033501871659571584456137159621373185197302188830682676008122717324869687703925246572687455287691417310765340500997371462506200000845861155305548413160381677916879415868006750147769253092167895791843876487935305196109319161919300773786935896705864099568211092289009344268224948234466167407815383499290329812892423061367813952063280551977851468988945130995692479729622434890620278543235506249308885712346383942067886882541231575028300695065174374559074086212495021734085234464333494174001787390139599872700715643626030190222676575083441738223995396220171762722775532799607180503136752205388150057729066890131329488004408336244757009996606623714183071619666975594755636541278184936657459108958105648159484288360707800694009902251938753627752916256028911403570548343755087701734738131042494961189643572787781225281028723798929721208562767712086154075882477433815572145247700218816324477525227954898243165688906938054376952961684440156400410511817673005443997504398619335628039397647279601544247010069837982536640629537665042760633440058282222039535807423985808006156085871128464427744078462486253398777795131079505558933676259405338100293094640662035043401942298411452145072702602073161770322676612688894851534849354926133708673630304288974240568487029495681343104589858308881060245312342568876146021778635760156053443680562885734981357880564754459913950680151229251316789053363036813483123876583793018200520037337283053257937885370964722349389037614030691648782834016039730873180460226534519295495314307442511348391644944462742733436661611151131178238035978219105184896692306202436555591411432015905170749929126896058338026302549989392223960436337328731709098157029362667606301302243930855215854075050953428912144177673671949583483107599639280879239667512732510857990052339376923945772718375560765912379385619774938224229308234564105939484869934851705814277830925452307806806227707258618281482157075617686236292473377873715574535025336283876914953400621756530820907903949993129179525604799970743385693303641227550615380684639248181692502157397005949631585170942513669160779145095273645359215339684600292676300619842322526606804197355755729191256394105842312618508598548569887651480076686461743681967797807091459180559693795533530765402787105766531484487446017544171683314632617729005481625931507923001319000736899338011922107668296301631467292743099408400071940744602354804199923565901723970001681153100556540243756080990211401611962186767482358829700439363737716820181638426332366261478612586283190084639809478010973664661603339458730577329190988875102030534460136689773179527083338393710144217246121110730157774966910347457605301024690128546091694730622785792959787146782966838549432252135565193906353248848461643751312793761357205361737165606368882107683053143091739141212721804954605315345005200787310542904034824258271738896046761709378838997579910392579608095819936293867123787779107254901404944074657396066794655117629716801125452456166700583386365075512448555159990800642790040259373954224854282388928694028534621659321922795930036212561358033971745574870047460507466129206022675180696306001054805427313521400423046905548259621208755194604854589750882050218668300798611541879486259886343876014238528842643573635272850569000766145425272398474721604689928575758617593260675872731858908655923226733627588474661174508142635271874393163272744986761835195602833309209615893341543755650756194458195005739960161099604662693116537193163219071326859349968266901251188281567662824767173437283362815703003791014032439082281436595101021677289362347461628313344474317776095759631903322166991484466761801112063453230174361325588063235014455310770796979317413276708973958867105819618570245993899467185562457017473805943222958331706192117837124213433620874714472961312572521381451624186597128609597133761020848966896767864050597562402645509934708811378315463942714942836524323072218964920620031587976423613140136562537152605058142121835129730959963945899576244386850612114867445838548558632835038616382940616316488664579529531598006923150982644247092435459280060294726120539857436962324375167310753161881267180823072380447982846775718016219488754008728948296288087732407843178642248713677487869560396828231700734860637259236566867571782763586701598757022132748374008433897118981732227169993728837300014096968509361500166416305621851603397626305257836930098934652520777091560743776821814246426024207276430199786499028897128420862101492434146759359157271555210337318206027079901821335058506221475519913949642856202665516646004967825521531751523618092625187536557598697043843284930739615778685894965586302430283088763753607054634803958589714889354926879046503466559401649041440960793069182305749740779049779425943905533701588250797885564481802453763442345166151563846753787674835478783456019822768460867350731164573324159420096573519968465697119330369724162316349249277800953758413887518811705359256934387544130739169557264363529676990715964695440600113954133349766733365508499715316255962594403563642625890375961557606656280592685781891773882444315911178692137623397959811279560804285900524672735160934846053216720550522966482216211895708494384144346053373410194808402089031249995466339929803774663851516781773745680440904397684485336619126108502582339248499400836231275120001372581096159098156316859753826193611731212791706095734554494243697140546347135422729704606686364654347144991853344199220247148116071876454170179269723296100879261822565830624860429880532983406217900293562141050592699345026543423352776316985182304330482033908741489548290855059989756919301445663460005753050812463353406492618593905007326359390499216842101668332750623686696052815653848406706206871170009431628975028066209328445939442128518049375700795423705644818274115152854209928711205053370715454331758802314517739990870941469847689659506074382525790133547870690034054501844100561813410603758240984212104984888519989804489153541355299350188744431592314248024880932286552384771473291488228214520178459119205805734236987400194558589063751265353223881147610331355369854367796244251883623594535146931386759849805037617581109557599207119929626514063752576585716086832226162098563280993028999995174100161440508864789937719561183168335617233783227231919163696558997235541996394194830388245497738831234755151798770661776854171190600210818429787231783377567365650696367734008281790994180811927746033058321522268817949252066643093054936279084307339231068951829989987865207269664590733783213278404018403457557197264018952826707970254580388010208782545476730682031517452997791786432948921450430386651355417377871412615000600179296180389565277874533702953571185461087946453535447776530334258362106667871903617752108573938623850956860659232635925236033751775355363027202308649225331427494319443047665290153523930397400031859415402476131591475885671602744694728907884999871015733128170335127646103378798581701547570259506185719259427856833264280887401728480707659005705748609170345120417539697636039106242001716127218676554922694774834290754874882554651690681813616419478611294886674424572940469763423899076090971312979985919408212959009983369796806714414282489945273403470836295125159421704302495977638434646595150404940782299498399884941176635659888185423820523929752025903515341780701944526580510252013728245442066683240969532794973074479001888426008939915750831007695455547974885628812314811074276058427338462921037202787010273699710257876023533381027560682032207724890716869972379963773842492392547405629693296981449437090448345737415239213569010814380936745952065095789512132823556844119428997006702299349250566181779192627294057583171779439048915337085028615155619745994404847753129282806643306701928465632043810764679052462946247117040291588240074499643463939607844496008797452152219199972952739771465234609257124344755473318650799853028932821806982380851878175339700314931932237950285785890282917311750225177017888096423620190542929942463605689568936768137500925615006701073563336945809665530940209947484876908055270975578613192570457342518028989472177940191636109730006590284183996159960042887208074012380336098037174424346646293218358062112468730662724487780167243997660991646023651490298275664115927478539763020351320692838767668858079146944601848648712298499072231361503077098912211111020384747110592230883425910379786175022871462424759810632649680774359583564260683412080474869343617406969823238732657305728204019272102384251120920293209682287830147169867240562601614081786326674212751783868857665570930667380281568612562329346649617187664982273387517430678913098736252849168144130343302195009463798278215825870672212089525573348437726112779716012904722027350177458019645348082386151705254281454932944765292514723956320121614052882688758497025441961406899880444047755672237776199988247684746546294622672742524545480629495836540752745108331497776846246132700020273421884489797346901983369924785979113145364923371540631922358566809799960690714789929724258082239944125695105820703785103111785517368853102140465378730436808767968273963361608279155517761302608899454810145274728157802640824673640351744479975404967621627300030679786748530761289174384562893371903489013718561034214216092932107729083367342811792598384198422253293370730624782121420355310521543762242419234102122987954830573792348375407364869434897090213790313817315526385251522703764908965803997194254980930894257616511046135944026688988471278138708735007621853042626317373181444031755484906186832268213054786428292679064196612108541093817070976906112298159777364170455457818221489043450925012057446548177629402167337694042826217071632437914447430574957807310850537175980988848791157006700947525679452739112764105030152706587456426517664613342533987124380852555142539176471003733641061727621419895023859806174972160703491869914986449515587370509331900745829192025255994263937425796067361161931993129795751182310309362141648154495143407269614970758430224853387292211745241204836590130997351975104825233907735287153519826203316487592460088047547287656328665275712050066223623449770244933598719314216537212646914447799856476369648608779664993701313521460697047092756309686471601078009592292359655087007495486973900382089497274569213028519871862908291242768012062104781407870498785662393783485543571310010066139211784637451530685463825187724738862641216916109202652927056586180630118890275340905575365556954817185789646397228537791725552957497533963707835513770729413315335350662289235658861930291416598635397486031457906203003734770965501232800973358665372411168293764278514369310961574647259168620481461354680118543547419681298410317341832528321327035539299212140382808677322692918354230119860899932746570813828379389654707287487308704389138690581335071752660810652696890557260398010616345920473291913834392497458371713831062793451335878662916584921595096352830295700897644109265564121955044565878719149166481858755172795252989860503995136772566049416093973242087726168049536995259750949733227200720813451706357107237926156769673780899603705388857176637415196734410264536430306792110617657412825509200310967360622257674674404396727281088960477328752616054084454155187742511249100381377672367745485889093556470324689097299689615458824316747270629996451952691629376852120819395188926027661557434843850286039879361598972455838969784756639711642647527665696774028509815974409764591616207015518066270183975706174052057647610179595935174387199954159178713376365499506483356190509082913810269042603855125632002973244676000854208750037770108649662545661780068339632956443019961607434063039762883830141177042103703521355330836468164284883285615689403608101492605001889493193832601616186680441749026495328247654392086962686218511588808775750097753871406531730282091522135141575840189731139049732472455442999933753856736399938921865640080645815704723784597109382099321191221605914673443920227611341674567645581435513851041191631175544138228168227049824504385047568234272616437616163695466852536239645092180022767133723260444698064493786944959818365583186511704258160775557686896135617907458210722557178925355636874361008195175455870110934534585775686468676579738436178758589599493309317271642866284276959198189146376848546746967032461086993834850850712988931591202342117973388616663380572691181574603981187594093852865901479855191128673600785839418064660338615364016721768189519376890508291198131657917498459384230906982917483587251457039991447242012600176064892019676580369229875903009133456247957823367221833080700420947164198747696606159534522634134833249557999589779308577330542400810181250687125243095766001652455847736394734145916379187541358970741935396167122464117005628311132079594809710555767969006219510940176687841323161898387497762947641886383634090231998144701138203000236424474209846969445401699414273091857786981854904857816387266932560887982684971784649588288624269782552389756078961830283023158509471708535479230494705813676197560079711814513823731717279876762771719920977133292551442171858964392820466674648748018835044860549764643967862293365933534296798477926955268583244972203976853374656952980522463226924722614407408239850626168879951270462225525435907304883589627891472798439472572034946669963398853464420596002014756826601659125896932195272020039185679596614714975359424883695847119758209363964711562437938005578099245766853107090166750044968293471978374968494304465830739360248875962203611583773702394109385270890279582926333490751961424314744272500569203656978056602170589353511101637617608722305412726801918952539355054835145605173978972336317473431594221218439225453846520212799546242416095859250510602182032617204534384582302925463003375594436087755654788205348842324089443544858309635293432357542258906720630098394377360603707954920042414688862997034853433497425837657352519910037788188653967592780210413419175326746209893220132986149530027405911269708893086031854741850143388630989031539779883939199321052142915440775115956208742643398246243417661056853932222803262462822315048602684782762849813269278485375427226507730327052157009579569731707869625633903828958690539032410166976661364751416191790541413179837719743922711611030682831585540324123502984521123055053869617428235643313733514817073057713663383706312069237969520287435094012507322933210250171776678487899099287034396924223996456765281882578617779446020498832456765187627974184606235888475654930419155297757138503214914729113487077116379197167823356293296070462823921790124786789719676677990017049981914180993557705890458645371363528515168643017069385106302584521913044501383017846195618188450228904213734736745192177955210493136447027890978588600995680507670684293185061563223993624528537172300980423263351628717213091043084166923143559780509625599680189688463358051957390849557969793888135713835048222269332969166882874322615940334298642167464736754326729923791209389997203547087587972205173212470218301085929212119329016375101447002934868275343615672814593640754522357954861448781029325578012382967345948478614713682582380724048535126289919636083725380617181716349066898863423730648314066773801960534652838083708577127355386727236585015951205368994313000781453181620057776809718447502985916823476286075013239319524482074655064454400546548092965177079274554787545799413116774415864374344257235804387833955796870293830870911146258600828654227607450237956491114067850017664983743415128429244551441344756282676731538404005443458876123243141727732430252481385026951777137695381714361902934931690658045666937800151876690016735562812484868989748278320673972032827278149334595448231657334617846661881971854541852882671829618880094964043404131162099103297835071052270903095194795106852751942759915241509478626887711287466306951047703584943872879290043783046407360662370174894129451959592969532238048580099136199449596416994096832033030122713560795526307584419415786200200166110548518217410728877740936378518537878228196846978492564668022031875889425925259004532895031817480840788017651183005665146741073636937264543735331240111816137971907804564975228905992928995640224738767517296933967072394596065273057938868667053504473823584982592699115555024880342341150363965646237817243485127167103336915279124845383032043787931679774015132942189236034275419656558950147519885372954538776823882071472947750230783339061658083584680326569985899670419313728055258598336819211808229169356891189476206375853246625655010607592209063738923322716352263543836865907910989887301969358180802729815858146228953007220892431694043709969621470155975086419418570496680963473191017846018948979291246860945131998220015410878012845014163903474799202796031569911793090875496736161545345709651573571643956010726947770820876888419154954867876346932041044663902081464770384668225271035788365880249714375822719940233259911390647234281510479840987172063855502723354198109681761943460925139955396811938157317967949882328181477162278046178659416182533822241352151611175309453280372280301868149694007788125143279229216530164396360947690445067367009033886215231523691298215542639094297346023751965141604819486854091610815505616739169149496347643699414314953526676548965086474183006978614414606598722258912134850002984443342299369000182651980620013542415777605655954313019273430143336611189694558582583672584041205834273133678950707222078609458722130589354701755349700925527811598764307852475111785198118771123069507331304287143562178261683357000012017284943066343434663691132215010353962895221761912885318047714677509669195234590370792818956897834989841621075591817842693785176043670840170221511936614971871120862696758302917405284730428614638720686064700349524588473520026503455457990335245501067950420196536048821369976612674167448496959679521685195107894816499868349148613223581627203924049801690109811510306860741862262895978389617209895285935919690745723575067297714026098633142033242906627010140358421749104395213496749747490886960950392925704225917287128007612510693138004663394204635775724332898912363426009836343001865599905482617237422471221542710204829424575833557041138039987057803582795980645856455145955039901126441648490793446980029312051169044349208348244071779899634408782392659317152012834433466177929158039063082085931324004613248215824372716388279780178822544116751668067631122339286122190497779805787406468067998265985027903853627316196784797295829755266295460262777213329161920895188275407200139751972622504391567518117959058398834518737837749952975497054746369987036706923529450354474268224325758119222998984589056925154900703517552110113530043409046955672119148267838640635386071612750918329712229702878165447685145680695593169238088084853452135023382141343251282413233403775594505637709005559859422360674158106681767556173652913426958701857625866250104501312556960876171197917604449156870110596819169696074512041500658873359603212999599582517282606035477130548433750571944881123421634682050189971286530081313500456372075993304246872320275169290774790432646858974126466484588486574878049105065177212921395689252119389416934448280675073455107027159439420175234451780232034271687879851469071570281410331435766998710788788701502401095030812754280459256950883641360946241106069542635623481627937056881655526466498579234898297173794215389740266959435845183132966151053073554110417968172758822409251290589996365351819647912319827752005976512401804358461650073288465773340884116012254066444445521708685571766121610863043631354930266563424928849447081073291881681441104519479627259959423617615335866417121422865288701564185792253644405713916802937452989625613660697388788400812727007603844660627568161200753868011292019740256084883968343601436369941539084122815909757085580621393348483763755007800486811120898268459281911151582296502665575263366325146363703012201596179844661459578416922229071842080880759502368320170885060453928839853138862934199254603165940410532101679846350365779421282509929054425435843492349835167895032360840511502869325860983183479576698049519695037732817347844283551864109917847189168388896472121955486968257761738788100787731241025285866794476763877037652944464257135422001260170484183654537601249129076256309650408154001108458487077528885457003248576438503853482267876360359560104161245742380800827095121454703745699321258168792757758511079326969256146128122043973874567928640453924276594103783340129448573882699664039296327195061504586368998764125573561901506056495508630890552613228652848110358914472629276632330219047433683214823453121655494207929455993409275598100716511065480937333109159637671422064803912476297608631951140766560310050907638678275531132822798290695529732778199522255833068150383262515447248788666790749596691444222734486340141558514011092384980549321766169871186865357183295302442028706402837050967526388066934107417717707185906596986713237555490860128903697908756121877438900396977375208492111395103771314458349885726101134546989694037656990894434933545265932224823200373154231373078493584744701282545761854335507944441542740629229787020167574370514397097872848561885682731099356355867243904668368519064623959539007649931492991485574756973534705293935683063627076803712022597345988652136324936730034739196419338855883304498851567880041036210090656222429838113775821514900199034977701080098547298681927657210475048409379835019494500699405079726911168186077640143521305927726641933868227982290867946233642992207794366414746692969479464653678312147571446001972788648418468259773135035413142613783859559943315518526405358763329624946956900492171764665353037328828229952703277928079551680160902431604120933144739044507387719689316381621780395638964403553144811261682114293570402628909184067894869626647021645562291371532077668094359941194303180400284618522230184226583104998861544816754561271195491014847214993197268016475142490600657948745345117151930484972549131844451842165809335568351182513077540531078390312195415582797831504161862642493385869476076647745213938277811577699553086201539633666652265265753191363960799088679508668577112754853896947263191612671282005305119873390291596580393295479200712795014096511968342323746664851954891839013909968031173797153424459137843736045834863683694227589657111025392542593356913203676969720818773346936048116336968444280165029268036297785753773763273228945710043282061674074037342646067336954987980624733374680612841014912450138179860986648721094012604807353704022565492428581136977179528955796046377471680260516166616592732712993614069851928103777317971792860068380623103489407917985378616387249712253996898135113832796668865252429215008933802478722695310929558309715756762041928094231859588517535108367624257316053191020015717691198972294222683342852832745325321755378661720893306627106786133504908621226395335962005806444916308537702624898942272598904473452307866375988950269008200865176052903496947740665596168560716142089870749395865553896466138463006988401962481161391441608545826118245827981534270544797700944999951207389524558979330121949197938859723279505353045418643918609477318527878336599092100915285370774150553198479785617690467877844131696796647021542071215697826249021731816618105742400340427736311163387158787567884251998506295106813141699629971575525820394618455059042881934549166003628539200376477812383704739088247075903014964949671634868165856578848456206798005497220980415663661274583661818420348404990197861000231458396852517442089255563817666962910110858108466092247394902327597492905840732317737249759145074135952903575055026934789937926250984755341029640063894519113867415211994526146379343090653030268385277009217610287631497812866591347222941558181722239807698369128408388030315473300673750833347815931963643055390893991864217352542078786339362460153819153719790065573036503692659909712768463442280792460978981274040806810702349682671180369088002889181735896770078051079312311439738066881811942500231317978766452595016114467566957541239984604449211478896502637894213801989720452182167590173795709561435115226264412873500815748250681205318247462666630051338303347798877916491553468360190097012342758925503242409884006953579116893970639225970237219091660661819445740618999349444603048547703285587526935885932638578076212656182852498927687420192437656981189781436906523113676460270069915082151095385743285141729094466192042189357330628342309757822932652399836075544457756041945100611027274536732356380717554986074179266355515100149448850358273597043912197906772218733251721712914827681999162668433465726996646338810266964015706511370758440886330688244501950380946181812854606648980067998727572124816747161491712855514789539953113470411179773547262714947698651347980529814900695214166476317795286797277907498819943915981436642058490597913413610186138855371001312125008426108497448824196758006723313426460916369204624817845888585898539160572351561887907687772300351659033059770388857885193592299943287946708426386316070121455534289606597513748790194540663207913233653710206298676286718287162961595631980607817128961507846623835717730983493722155939072735760423655115651834335767552486963352433687024973076804132755368359389816875728416775827626247045262232002016159596299256591612023158819581709521824970100527581662589475786282513267806518998717177248914057538294342052088631185278046586066731730926229282520498040845224501618945658004073064034001013120856317622596411914063806599524659855416520074352228910622908460479151501978709502686852083204235458146042517472702986477890750967507014487683045135846218297779700573571998544633287410072925613750498874829603189733814063121054896347768031221943872820219309831106054426915037723660460289108009765910404388794942572565935108568069097359676546614730531668228410548823190907640005551405274024973777541090753902161825481499340408601118005536594840216534988326661530051830300384678094258367045212591866632351446304226880327059356207244104654527625159713268396840995408301955024879004699794655168203994734019749499961922137122104222404425232468668856454616482644814411163332910755121953512268230628118326375782806808433204818777916475858176306940694248180900624811571892323315400426939419163195316541519610940045770227037958576450395088418162027453290562733437803653733816031168545403368493051991384301122263262687114034430345612058617355163211175818768273017090026488311927676932176146756592644119532997956183582403424616130784210885000351792233627903701293250377769320197389152670873821468487100492254738120306177120484896230768469796163588443546097006801890859695342651534143548580623592589253014760022542547565913607554460819908151368997090942642449307248881530045955767687279824507291706047853723476380196205063627602194078655898183942487882326317253534462955612020617696172232859038836377595661122314912045757531660209580402524919853059583136932797121376058694375639686935110035586778759236541188855261104749200508242386077647988528546457250346550547973397621377164106654406578573019129500133405805091468481439006650688066772586202307741284605010596634682339256686971173822117315588493137344993354474354461309581889565689887367899903025853076865235236054906964566431660989125681491306300196659198266228717057851641273854281153718858903526805285087435583470290762210611862752416463835073806922087624969970869996663887380643708476699402067216204418476737070765288595991342244137347643029560209369040995855290451043661987619622941000033781830236064161821269983036518581408386279592380404567633775047842354215122772918494573657041844751106397294291097477400864216977697233557323467788267871598997670858794299506599836884647766313522528642437151953673913599532365133743476731559329774359672238034090197395602421764998653925387336754369884511184655294414102425989505035108267413398328256358245277392546927743860409406281908576074570180188182535589886841797584931070002793916431950253940896937632055321339342336449649361438701106642922063118823848029006722298909460945233436277677680291692010628088130109713370746330249526041732019669507585404405541762489957945905241424162558648221419763044298580899812456841764844267526022384398884562557717655565834093420878723836049053994463731753429063767440897281727452590414423016188502841353277673876061530881130293236113731790261500198582140048350082901628869949101417663949578428019824925259064770491887098755208979502938975323564337688431094302605771696800858992524888459861914490516393192240216206600968609118699473002357819365951566351761364978826184158295815649388650606142134628666816152550216444188039272571590411503948720934561961991990662080619504594766109757924864871802043496747022700020796153844020116897429497999777984893714387789219182522065442448204798750586847633077921098390398200071837348620905986930056435529035486992812681697278282647298001226381657574284537483127446908079688091671883206659316675052890247065838795989299751389260937203492130683738450418906438305061407882223272642473376608752671886657862971961652600248821041534672465295358111489025261122636014869188993522293147892450592981814900092058107417339787555850354756447853800333759887813582409594848468899887117580265498208188866327553593514800632719239094475949198430180150507321881024752111505696953141582204469049124410393937712871898267745303490331050067454248607013519265057604097390797895029973949367021737667486159222822552369005600987376987732472322629936893394323834410499340354174785194965539302929386170341374817956197262790450777138970032212343895892300438385784027152050467498581288002712684120022390928605185176953128811418220519833237564243477901243704936548967068881296502805611734130710014008307446943240420720458940634986812406475913105699035577303429554019055059925874128446943652802398839265681268496594499262789054007161099785007191305345935904447733520730383148607512510031980775052737255708666061517991290632829638006081558244040744756566100430562189611465888940231719234078803059395151681139298934114715777608079524247664238814782854959845098666848508349589232155670992709162950282554861369332192923194350663029943038508507848585188564864884870003363108365056239867345306784782232847748161176192123147101942951952619504751003508190099579744668346065476870883057577066058143373387008683140473309680201613092114620834474643011521924362034658818544310553216139826141923349590793471677702219821127104289105799107596919185736131423704783649563575319495560334743129086378663806265394948841321871547389857759651867948921182098055979440973672062008436175253411110936760232537295064481821746263934957651885561093371046828192235068151202588025586956778964392560303209411489851602491027659959687484859259332771047535621441058455279886608835950684112793975603868361710066260036337562683747981370324841440619329764094194768485352071343471406530053348132092123819167696796249239821213020652921208282196914374707523796858535060078626809465496893882923290992627694665562257504839119034829273203759351444555423020745691956790591410513727204259818103549983833603847243865887725817875452794232320745880699748025358108028310388030500295492758332635280153343464019533096099458767881585900472020938770734388137524135779352427123029273812023607144087495861159666941752022323740470642822714047195415354623590687184748863286931843539807761427173388585168790442905740200928581381786313760659443561237944516815132666904066352093905691709678624513027384656295793800913918757698671788160567929403455435966595453858427872604640383741565752871992962427572015046028163208450055017662310414936057776540352254444056851262867501192011728555997737662850412176263342687710633906471022015939227825969427947049490925081695066448027059531683401107607719820193337158047851186344658135978931951715498347841108288746458971035607225993694017860822708995477054843871493439399576620851525546663147292262383851578785327868540712938351799093098632509952880016072644863511997268938029011831035981206202855803136116342419706205867668619697362029994821725644453020927316158068833594632226348944186616866493346770003223555943607792592568548421870431219329514731650270812794289379014004582458936325822817161551369026238978376636177285073363191706361272204738518713983584833081989418669955790165976166839055064095379387061914480659196559034423212552571369719057989322707515144633669151268330697371962397141753448628528462960491628242497548121218534035192135972693307137374965669766887699309041741898947696467828430621390505445088529019518812045728752171835961960126818945457434753890002142506283848632506639279377019097923779051845022954640536498412189192517488521245499798365267795362521304332511185797936586484388458613221564099539270896835818106293961802919763870093506260223299468733666680736639480507608481588101714874771641880320072675482871627241721115670183666468961458898348469432449505630872867234123441713782334595807478862909945219755628624737050460907973966988987143404198471886131569553961932434713749831393746114644893942668706649401418570525351534826467928634937247434998217629467032769182562195755697537227873916581827081912447828671075145930510903909874443123526315490643379221044856789642833512092964871472907841583842888393657724234469194897513789069537407988567084562588119138913069609264912164768614128510195439358102000158027464177607352659501226029124068255860013390623956943984425881788704821651738304325785917345079341215806051717710790460634583562526400651108690383218592784079020131587393528017439885080125592416946974500030181679842515581793908770544290490697603920819435981041728727519663544436259889340692973554103782343853515021415928706804860357763462116949186000593448525727032499673390995440827395065880771110252096986998283515596497853807554558273378374883939587575953257002176961711899183564436796908938996883505087278646008823218647998970752412431947706838294407707375732794488045574664779486247941990994229714450134576056889842774844196340525717343473923356490353408843222092451153858524660390019622382269614772962095618328938495146243586002662902784529797194153389548943676171008543137859647722943521461853542286015892074106862643495798747306949074370214383954141987524982168227732852682692652770382933365356405615562577706646415169794502465592513394683652511038304330252892305107362593503443106014430288450445983329561240532348339387528877323809318264855314910466643603447847246837985763643073182962477479995203694407562469631465231962294570721403703356155241892852215016946505082531953911123370683208154216354100266958030700798265340039078153565101634330806811625541609301472745553259225499623343665760886934044147516501174933907758469303937111439074759091295198395540388772609907494262206018919866600174921712286078894056653259867430286954581706881549777740426242152685423649097967646543617375679180450995777320308970835480532318659649697919148010112634195522267583966953612181082295103426084655773091684900737670704697890351416157675595063996626545209326318966349314460101327455590141929284442019375837030586352060399214314616457451624293265578529917960888348356145849947823008482769052005508956405182901370611590191537444973067710269035109135421986079652062111127778264104673986234813435743261835188509820482050042709003015793331367354691520080566305221784912601479596387459504806433127711711755088354370674968606136780885929675773868607568933645929777217503541989889466599282437005827518890863905022573601695426149393335137546258985420318748303543209013937465314856442639515012294314060591419308666547090308603798017735117651564172056854557668175836735751362534105595735364765143335280228256629136277610444250396014724368691107531134868276606659080510637409451266973976910330504366274840547457657505654429114885191613713832773663209011188394693157898841794379030925705802806645803090847676119269533414105739620772287320636921436710772451233865228766972251714692596820590145585513734003764488579633931671918024366687464740768908574784095938684423481249261989712661921252435352818735140007601167729759235573838263506081274328469952168620091904770813143272205246359503468488476128691495350242070373105216061629841906982815391524290169382597763424391777294235807805280462621185562145638825229278152229593473804252403425470228169257178609027031722184518503471768730379322498972340271345804372384229362523239665582109994061048115983498286597440296880275251958731429601105490693624730493661405027209782154701788754632257091790907991554817761146001587112644903158755391349191212463080294775593438752959299248818556720101287027079807481083390141447636222852489178540737341403020705178764796749528949857929405163626460061951419768924789402961926969664057938582278748430382953777431163705166183658308834703092084043079815717835871961627080473603577336748193105676765739379597323083169256601076906818722553250537287748715420460730832452051438713991859700389212278193376962019065205673808913632042835069433129005886642285341697871925188287114628559081172445887228933002573883148993030629774010026819579844138766731773674020246885779901377759159315294784635644033959107224186274084566865896699968731248127947313434240714781222845600401363364780831071987924856429658716525970991301475260991280543997010690721017378501650358141737818317013071028097337526206039166133910528278920394188559082628499174765888649507952331732722200087822944598049076884495105941227949919949862917976379752435360600618257913269597746007207181797862258672944480152291678506710666848453961506418505996071513764422770680823867200406191406258980396808626536491609698920925948796192038143543399049297895152723765134148901686372191142996774851633906393591914533032092266126257089271689604755762756682360597189701904691998746801206430208057009413384841163270625069964046992533582075330660338076479607294720504294717744582082894032749940429847473846315308016395579058002939220581148854879717531918931715524354865775898140321245670417806926528476366270524965656204195108931086950467597193426750618519792354629895876789504532005876443073506945218910783858846335773521660523075815180940823724765582337982553575746539251852620309470515198172871670984001016813785487113541340395259681378371058998110376963813542865691448904949793219522322763040911541848870087858453741649795663712544652761611850243138485521981254857527400243238444803797147027407960965361646134307885282263974120819656683425732580542016566275067930990340690031311607482591084645354950757612605096368372768523044880781337229374043424725237786887057744775862697505618977399159094289814321709539941720697767109318356679548063957442194589052220241255182325130507496176506830239117637391271065401231088023465670336535253722945912057207494069796463652107769867713028960103077993870579552288571316231877817692348368068268843225173845969301541653844615696737176144156290558287959932021826163175411992233737731502605205508323137392450622254199720089535461439389590615580525609823956514100723813168741315962183108388769188757559249969797541808527593985733108769869612449592536833193958001266031078958163005632212914849276218984342810406397207762912258208914120884848625260150616698375026151329712974614232000471026963970961681168926164781825931776546044980989355320457876563007212074897957748309528342396124193186168715859182773651947802417514677219476358202436377271989219377052822329231997648210813272333752432995927475417765284338914299522529665065303279525209874647388384684635195940925547059199400526232759864585857412648361238672969284104100062111399824430479987380417837606841002478580146790157251497489315468622687120158562908776485183104394816187767954956217200242235109811856625671711023684033949800691198029922829149027265520089680845660063426833634143241746136418588972552899180283555064267837854355495391039130053620615473003124695122698587010456095914353726589406075355877677235003769280256824482884346806772388071224674040637015008340500616254429376018334817959226243350005204009635805669149199145110495253447493510158645959687011530825878471242360664494012292589906611172654730525338247225410590169272935320142490114008380950871059911685857000963470610465337549026980731245277142761655204691261165454291276179239715149526730253413168713239159500522301112824416483068130903368270186872980282873036660035079626453937319536187577322123368143178018063881439979208592198775857545442261558582126714166408684814749722181991645749244997590298261545151803431185662728522721810776125989437818384433915665823135897609818473394815514284001450986603743077185750510938499268090849160324603797905834886134734573747647284642713139791242291686651605912986811645614132171406929528453779922976215198612940211384560968206713195317665837155535592372981057464364765126283061330725100379540479759056108166154150613108025223639674385970921547301117763558572994345005036015140469940581053826279892391436898797387516902950758389482664070557850489065347704027335083391791273187550985131505092572300847230393395003006811164443499811857375556448827388060127573860621615768732382240992652228780671230579441190460051764341983631070836700765292405371195690388666925882479487262932308286709980958350342729399222315233491940607383276722396757140529759803894307239884805788467049479110213024932772413621342830857582675893772243098432179043451737023634368098030254324948480600170289036263748591316451594663701901207745965602495509150797120444336858442594355344025707995423497200989937882428723618785367789441700103473452532891595609189703826052580850138000063941134623119857740496015997478147312435489147327403330682667482669136274326900666939101237413434975998120584621347277024370787730669999055714116673878972306789787418077382617644985558416374082489514857675220286499387630236836514520178493262768715026067179344651438379236685873557803332084373272137456088690598689542449931366879033724406262040312429703267201190538297908281605300044168857900251959990026309678062016853570995893513009419285375354189504539498733554917715460320973347973936433569462703107571288649158243151663205947835506345068308912465651344279065808239208542922825071216896861006210570876221271715957764605941369423470842553986175717803967912490335754088297349604512962767688122556778991487732803645821715808352844720276981488701297441813487624815398921247609371463797276182099588336161799109753248613661994025516583973932866444892533203990842034966159765172939545796983663781480784519227344777972460875280220349546912768802758865585461924677818711729184713140041965087816479201188435807370442121355679190611628984917715374501976125013460189892971884053430372345777864017800940014432397769495173678985625841862153793745417469471986625070827919658870932211908861428770074579748960912725042069447781764772726954755460421075226105453191868414113835006249155150755684648384991158228188668074913274193300442448639509622552653140648524808214107674209069436743322791186438626335093771738171463363173609728900755417010458346324026011127993868479652033146850338224354823419866640170820381807618842356120149859099928800176579426305482502608587310290133822092823382982275402029479825482959223323392266832871514602809111446138789536139049306435054480314286217008885057909826683591434542516255334400917802198831304810316769862051586011352430010531743114566951231625577074965300466256101463979385025458283303137311901706401578610573150426162732356046613775581651965960443453978528351574830663161054745163407931381261701491930474790912011107890509785241489022599094642128229380179344958582576323433780512791774019306205917278716337704415090290740889599511027083315792605862737061499984062223826822246973982467011352683663617187388015534295572363946223257161612565121251775438845468101061499956602062812116051383193185500227097018642500521480038660204854603586705644059572692530522836052064934130990924745801547863451437593996065642479937963591149200728502352296255028656682851807343110706487708610138591182762010845581733571304223416313591697390070127220510363856701431714919487437949306341038411941811004645084077617490035229113519666075183629275569112747876348120666851952382309241391316823339093276740560901850960339407158955469813288876020441842813976420753140826328463224494133243419351356544382381888199277557248332017163109114786960588171534045423148291370632971749066880615945263518277076314349139568508191666003763850424705812262816298004365601191697491093501618902986444928252355497488211378116158392341573359733693196472550328088617964379964477154391883822425443879875231252593086237433605053751816230382689162792400214107060046841255106864098439803200894242509697483830249966956536406178330466805427289941234392353575204369825031502502496668965420386235185535472341494139997340407507700705430208749388802403977905052222375892432314732330413996635515864961911658171649468294330502953529954768239387718617473776535407364303760775964882513639162153840210317448126579253290749015832512201307568710999357144161534230594673001470939477407433937647267301681695325934687356580696740941486118513266503984866016395257802835406879382914042146213104669068743338248446095711442493190202683243573813488521471045083128566584299622345414025378503037083703423264783310635840277811735981104702475596800472876014746412060845863212797223704796539950689934920103099104900571321342967224865584040242343623654264565577302707448697676664066567869866665587260506525011235911328028371375275214082455694771473758055122651156428149928819795027115792094111382238658391062953030827736678645290438310950618023036934245439033410127058440335047627939918687029093084993933139484661699488244574542041876544818170447264194682055399326814154105531181437375821881329945102271556868879347816905916862521861638487326517942288922197796711944434988347982957807770033725624783545908102141749363069249166591214963584777499236590657028378419691935717361930333967727288250969267149732714011828104741723513980149563582486133903028339765394932594164564413706051071120071390004322994146109515577120884837396416351074966012149346923721139875951999225819657011394903162493593498810630937406094847885192491648020503037001109511403039601230209073378010529768588045976136078234050889264046207624678321309914526536492532935075349629610915580821494724079027039490484041291924066767869099285174492126961631481325308290920731242291075164198968243110704786584886074638759433280330993819558009919622111119486308635568590720481565131925553053398141812552316647585958645725302635008124995473865193355520245919008237810631472493345955521943174338284151535209120889908787965572911139924043567075026720109533068612737294549730161301401214200137430404247139149572112512241352807755501692434713216340468422045198466067011518631635531234344255410308973837841441367572925903776838724061765191475896067085694679977760078940104452815608472704577269210453447051992449774215470805817140616396692522693479010891835325475438500519899823144368436407233574088133182140147071093266154668507229984767594869672593506736970872810342971744327075302704911838982503777586503943653285603626816792922899805592352891821114128523496429136906386806199130785382853207961639984755631353776466639600922677650488188223252607917445837698220841409781121520839090632759805880149523266748995095416237962734834405167311902703055911687947978489161813580336951347658964353125643897368401763668453400608112418113633281423591762509350823432548373965316669296233290386594433213889351968444733083010230087335972644761067028765634959315715396741311272356328576368369742082173497255789433100237283927763167836476358978519219870524563982678372730126104343278771198673560133075998424570444760766014323831146790370020341113969046818150418546109069695465452876186430354212912296965521458585098833454798208864527284282293508183388615546956974651832104173656892789266551633957991248856704552162054863308044683337435349192191163449441072264041708657884319163986037546960876260008035387820759421863849905883844097196145661125134275474529301335626243727294505917274926816849656242966829103869050667949935757460429037973358934842007521818746520356735218202136418529527896813377627282850523545315508448068062780918082141692328683961382466137937867588358992146816774741377473322788774951989071419318467506638668299305647103326978029472307740831861945939903921276571980238051527188663423249339407837409315756170198409641372600706165495124510257717547513821001139417787610478238492714136478547357773803421634150695896244340354644033957416286623484184799621657162753635681276504781566475776332783684185311942541244714253699400844716388582715724052032092503670474893206486776409787671267659574870881073665531606386911940543698290906445636018997665305352543384158632415572267198995193723318033844821797049492903583518007651299834288851843914142980647163706475047239195191327084981706943613763568717678194128809489661892994836802431736418676589665339249728175699988399049332040472587846032784083689023333467413836780887923796238173561447977578699495147333339615261096473169933048612566529639995287321458785595900268664437888122038855388809626248337788529841434112556597795239244302806527438561482845082350428481095961671643270799452411132915425271983062460094102555407564087463355134342848489675542368073865362194552848081764082158913952900866490212446983786429871739259313312812131916753186842965520519902277236714375391338284996333258721387062043422682935057544591647398759643617781092653025954406009624750847014699028148723356917548866006470024864366350955885006336196755599629320024287205634360475725261462444155767706097537729193251716312222246502782034308092730743652901189826595092486079846443359902062249100869469362270978224884203559166526141523521364667341603110170242832412688005474673140267763337614810849292761150401846796346763809471454942921205094988793550980594477002731188181296730048353249021083520928000574083356915466431290074217358792830547290219127011618212453176287121406221168021840304557273305742959349099342379798762085544622229407882323889320414141445577774772727662492282921067600737244834732831489506979782968115545343654183748016953740421364225000998863817984449924340624718705869534782585326935309830570316467129556211448230050903598359557295300493943667016629562210073247992903451231768659874058595341091790742011785252262815478874976451963532412397267656123046023749766302895576818255205606601612812778168488694100954514598081694259804782527883309726961766104887689579367514971400256443190229365697227120501018635432592211224680772953203581528403878761437525329699085505237143931957414088760129854756824493296566428106351395164201130993536753571835235621564626151280118572210123831148573374946147253449519387703081235017346679059018685295976814740691244038274100482688642573322716840879662795922473817096022455800836895834722909733910720847560945013768066572207770577551824985924848221527236529880988060388975118137397705441612619675901412202808353830422983970708636070546010969806949175777250927459007162113630467414544321521539157899730775853570034618880961914730480895114953529739595594836416942128668321903131784078499050489334418274423245720425910101010862851996884173994526163289348349089055170639712503035827162176937657420777132954399821077879342887546847946590816710642757891157547118291011686612781225801863451232706792080808584522842491436244325461453834294780847935720096549784866428444321922842825411064608009697865479715528397843474889243317361289926890187610743923848835605747027471807468661046186555067343356130220739971290466653553254924534895123441099890252552885559974778362413826662547644394297435590877652255840194232684023873209248389256132649632928007229913564348869814311992049402519493429072470318421523578975463298858772788352858357922501508040766163165732962374383866430180661505338234070962308082193414913059013020814741740671627506848573090103663911172324573927929263819830271786297176523040723568874708322659115675526784843889638295829674695583722526203057315620207034427101025347523575460731823892677173587810802432405648833140302408291210784421583750056238498900428458010649957866921569445113912976980736625083303949851509747584744279283493192141100394529751732376898822424076449948136753364297681401957166861269091916427303199059913216399077456699066049677396750342197317565407620366586430135738809314143080403439157409869260025912593168238360587916960132556301450436919341715221637068376005882063291565347991792098158050649865924156967984021831936467770511523118224828028255652212771001939880242993837284717534331738317361041576354595546530490925107889459066057114119608545640583395761808749376635276979404485313232378175166834228697773573471416464794317187773054102578532419090512502576293603588473311193394555253274159848560183384245911675662652103520955138772639120067382994009933342053694701364468433653175135364933275513064753885516427643186767167977477246428313228529547033424132732250173994606497014560390837491617138431163798841394543159782667760948073094635235787173579636103194908748972843286740704497692011116092247108768310708948172578427819839073413345529169425954164255322637536476151334374601536543745083924370329735591993904177897638117632878125199232152792005892850676044749812445528232173937056398815944379603010160042202053919111082365512765406637327101768473400474124842425064293404840398083829202437985848618675911079511105842229865823183158183472776799166642164498374187908971748377397499578010667712920064445356421173099314342467341729973161319252749213510386903142286661313192320869514552560245484783520552570510866100995907789149695553478795036280083997375805754533173356209699876493879678017915333799607474054981300854777276575865684934374217930497284710967522311497503845997798604893350413773879402408095375620951697521782785342225977374553285412444266241117897601435596870313200015566329718135163144609141278486027234962394234393928738185430347447554130895982865278341242922418959452858613494600923752855931992201926716061650333736173186552167943947968293096099495435854148466769634785627906944527788197754871398847521988441839713948964109657616134906959129251793487068767454150791293800693762156796659613034047650633048324987645062257029103079672239789664886707998156614508625223677458272365307576958747423859743028657798038357524978600436429849852862452306464151994017358170360337276750229742315400522598900759276135772686476803253720572727875848682903760918975089921986480782440732180392338357207097717487246895171400059473824625320766376094553448963377279574058769158620417843058015697332151002748530534554582366646577154172120972162048487317877685626316039643406047764987319753357372689559646506874869792151364003215629665358196740798139737272091782024240654644197850830059827504195461777736211724252293336703733593194338381437120523183341432390032581695786813062699307124732262542031785896031327819755783103320914237831350459813129465298756526816981037333937713306730784587198190280425346017670120390790748423592553523069930329569686226496705601052069420424434232212995235510883337146034073859465506003097344505485815505210402170713874609255423674471885959423665230564436527106572010030449271692939647393109197008489348925035708242496955741568031019277532629289477263312195358877795910638978808299840084895762949470852538989088428221574401895580190858634719468591812103145492853980325069740844819950598609001221417710344077101503142185206305427120415899861256906879579081329766086713175930927500888454777867583724714234180332727123073341760774390857179095060833344034211686911239974475900047491577357262035287393693638934939383369236145236705644345446599198088143973248639035491711837023961855983399513137180408187905800358978631374433479117102552294848405887171775362996859345374471935874348884170739933782428417634807383159729656043011931636683969633285188523233573900754461517743805117026654313551537874069528120562850518787753052568723044456512280308598601413216694256664201401759531419381696103799276719098549508072918900036757011931494331704251624798344520950256617283557104363740282252352457599990244423608347452685489518844848230545202764865329638866689156395990499298679220640679845490482707068708246288548267370053504269371052047458650888182138729127106184118066286977193520310917322680631456188057862491064140971542889549949818778182211358057888656951513913598888509997298578103858385341831727006277958659092206673849349199079473023229630820067519311780667070307305453388809652148383292785487447048491977592375865849134126165051427859579001453597850141132092257196051900339954310035454272571367755934018292212958149836783286962842402279967679636539908893067023717161838436090093394990483600982206775609343399107015986062444330271059766049457023453765462517361749289879993300409570968567175601851092668120260614316916294228172182277048311334425185760590518956257377744407940060324023678767126376675707499969686445679578846461740864550173558464453575620645949963835890093522138473269606995886539700928333239376690284146485080506079096509884228291060028288381728250445015638822984044107603236832643044366755750474266301029257824607965647240001602977528464191588284219074675773752267657847997536094721835472704402854471649279288420788024271434509352602301350651124106072697533904924768624956766541699053117649433775994620404846001151385904462055074828371793985752634580424514632760849009587954785839308698741207164137651973235231204123829805009983063365873713987527948543165575943787785455051160449207337518248472976758958836668205246687639801932848259486876617042388999062943583069103800134235888639848700805976075160074264746081332583811375293790766509273837606984620920332797318041838575626700998416918989665567652791428989775562648457722045935493350569834963456570669161203777337074789204921858163506062993026142913569970175908266440834236946584459069754453197149218126328540687169917029880711012938490326400670817861204220750710071614744347937613402622715141902140074437394984302457013059483299053322563506618677202244719850761865002930059393098595824448335585898622202873970165258020383880228462674647070491801232852369168686081426633581501611250234664648249624251274346597344544382193151312032949636027222867597826897446894139260725947558066247331251086613054731977964724153814495064450986837999340624714328197565296147448861392204434938754501812418065552988130862335995321107289909946096414871670119216974728084845500495339787810283376552202243223907678557706066165967577828752923702023535883195132578086465432605508598566378893287958731327011177972355619622227535568444979199081489570553275639094074993454440839316467695000153158035311649345796770940298068692362789175221411123059205545537753706071394385639880140566009179925983405703724394056365757748111491831682542455456716684124032715476015969217966887226725348662261256080080825850073484717619050717622955241619889741709407628015187555433592487092884651207482132230596674058050482641906263176451099523030139950359461044674196859735832238559130526166143777301335324645491765748920749530911994422912384023837683582680159633846396081101597215638536626159902837750296000233564359591716642837756745755514750036151562693021851132388647859832139925003293346971524789011774775106736305798035611468024732262323990118135194076366700090876342476526044837341236410597401402019398223056060109255101602481484740794693843883641798934656298712748863788656620549384145702201930366445577902450298969727412609384233433823224887216614436041399832137532423842716903030795843164934510412474584481041468920805782226013062211286578002005132960079435462525014376103995605757299165080932307415991310864110382057609580282999887013526831397448511282146512776160669180474906694599050100674120410995894737132979289356454378181566090937621200358526673551342644509736786474670454668161837396608702110106490796979372416550537583531046408052213502502567913191938666090819942059244696899173313068057481384100131616688005180568504465983046788078170990447430539155149039359471204546571185278527417723643001921644708815778801091890472061793921644106280124898323050984480404522040265732583200595685855634065999165604912695929061586096014564568342376585983949965362103665451882803321795387405512209741656015034205981174581171593001757624002180068179087366061266863029994739481042796818191678712107000010498891504720289430966562348184663895431046744808023279248306118934180946908283594747957399822259830826015259884653203469972298253423565068353840156646804354693306961031412451692543347854054407052946449625218233885739000867081289606706683552595086163160845303111446733070179797784955501044218374110017565080882079408549083308765314848805387577603845731044350693467833053217926385105832423929247760171319348172671951775867837876462517156894726257048480242653436726195685144917610445027867298715182132741428467024478155268215388062314562389133623806649289856658858187202089851490580249334855679328876839662545110060828335452241435586628153364341086461465269562721192446807328437776760811828285187875952662919347245202261183485432427861045124677347186668995881554565827469252735272591477537666488953856316759869667328650652153188465772807874986297426239361537358216560638546699401734364491840938785053285882317292367735979262887217736496006254486544240509009405846763525756683414197767425738660291067331764250765006263955565121153754407319218414771096389819687993523426086284728925247726381938320999284295955751887439437117251131155005393349004053914909502621766925642657789437786100897822748315981871432796026913684769590829213665559546450274715982499832464802685866326469433188808760490789872916900818513849272008154828871157356430431715825585152792030659845227980291273637586050555468722911538257886395626415141414518106295619322191983770548655377378400321211470450119095431461529034201199768961348748693671339889121928718726985080877656338891797991741803226557408181280183282333273715941285161596026019714133504810849357913169540441434252206995863046772874613515948973490373376856176821183049717564288638889294221577387443861407405404439403032862698515718880738646775497400967473559545663859418717820140939639857911282458542810009279500793548008772496949531247405316800895701417059267764975690019605615499368752621805632158787758453183005366436718460721433016300676401527870559953492652271028810556227772289459121346433302413314670810364247314205772853736760734145016469094801532877957260727011310780090058995138245238305034685540648272371755310785948481915772366437462418581102580899223905864543878731583406193873076378683448753483152275736834741827100861947264615727338018131887494045379669868604178994835599639479388148701677714660252598121018517151341745415551774224825836087569616891684667460019616585595816435510439394757789807144359204508683736383887807135362302871066779061415943050693811282219638280550691136870169458001266451858854028433132323082886482621551985440347947349243327033043029382737726039829876235767979474697582296035531746624986968533096150574138669428044078638244470908097937230264948846046142715485124095129323881898635687804400493028788705180899776020199677985716221016773959835047858825910047313320894308909851879949487127165857792431080990752517517810589200894720050295130690849813305395419393285351454504393234321586573459430185829376272188261039317378038400142657672802476759705512757627659998251256950983052270985823718386113330587647384919065858390606260060634229856333726264516961020366635824081143365883931936678002372515452825562821138680175130602109442287779351896980798220285402899047403363800689107092398290033678017042902989591301377656002394085933190945370951262031970593519368401889310490417093959572624347436101882757913932365997271376708639582824292100011277079965083422685320109098950177379821101699636528565768657072823249691465364819057399363898130182650543079791529338681590383190548129786355992226881883676865756801812548920233900783723751344606241101767219637137608870418037315791648092099320270952909277455587055684765104112566570483944920971168531546741782664030379934815060471470364694450306754550910975280970820997688964037647186113210023729039912292849524511417029939709472791182946635276990764181195228758504720817265483777575979065498409644896707308363346220800067403472234890202409899745635597512585113643733963730899968356550490244214971883898830469405193714246673129595636582268109978619779775288039884716629979460197086681911615822243210163146190814245406615730963571639153745227214553664415155861237938638745605554302130785400756254182265334688734502394408387555548056362765122236308755601314382695572703745535313119761718749742296813127885585087390561129284591074575182427216069097476573742919833534311070535016521459292420497081424542748261653609018279826473282212793926992640326629188284488730142026864478521206696386719692039920993515432590896917121703258235437624344801216144369778484697749838125619925492344804601989306561745644341291018393367528353325150677381369750583794200042422722319160192424967253594925528644153040861133475413487225048514125031563569474322530928417138904481149669918777168777279010333582049090425145319311106230325457200371151708549391213648728680203799174933416875631503502372937395678681330256910466820362573962343299766931091989913312974824089502971881210244652296262761519570090118228760782348758643117763917707720718190793982246247386170750451673059065879852759089138972717856045165440056663767815604378312324505108676923815087581716935363974542653939831539510804006776645733570570655962662997032592675201522400149226964545048817872162826833473144653334194086452493647178775741318520785052722422982026138285282135615059075878783839371788922011648067278623936097097557937191077295009850556752407650542372719436371220449871336922341826751893065045906935399415934911069426628411609970208232935984529089733288714469725313042483664013321581882315231834135508748746389831866092693208411964434045281273308139740214947834639162230091732423474468849601857288643871788802800140014303108295335263239268889071954135270055993613244403497206134461287794360031851669247327554222404146450580365887735922246593782768797297563876418444989559078110756328030162119255010209475351386205484320592749627256803845455074259242359344154871344907733974187689149034248452233188606133069481864441959420105676804859928103170230741943608788589840223519377033657226383405753453177910573003445875704341704706011889463311970888204754485519539522351622544810508501269776784388761793917547155393002434321430312733390965503941730627616554914686831120861240254045840599471846443241185327392269298319403630568743941555211762708892826920927554768812184709137650640041528086983215110943014441953642565160364380617404112326887800429273742242946502746274906798234467972396995141967567534032220933752055340380497235839397281484345029888756108554022109817069986782315781680980927600282301450752168358775052800782093526454825241035128760401692943520803034169733957420559597477443629448278768168286999094031872809712270851823775444092516727767228716245645641361431312555253671992066027744979334608803587883812809657642084399300068694989240395632936918670047746824823767641364273060262539452026253745424626967751019390496358701597950424817061886295264002027507643773241860881838391093207641206713697410395301546720811577640368261641864841577646286230395121312116793937109197596723532561087692751122109534523951624123178624026843648429806424783832924984672708240612268528022306836502989245803371998943042218419965456633561649703355398735512132859459765791984277911815906265869220571979676374592711426096973911853224401419740789911752370079950835829827457349097083425608557806063444152023334157471595170660120108756409740531974793103687185836544252198420236003188071772681428711477008557019985529907477965667446084178697867704209011076417429704362143850635459043203001204156361877928637944619932137024141444990617940432075331847948711922293855339916300644473846784246791556376251636174880613307057171530668608248674303631700684476361428546238528388959377574529576529093959437093445282084148811757526351532160081921920433522573363851803875200525791986919893380006978414418554306523239110080995042184701658921122758085527505656739776249449237146982910214803794654944554563382250688142384451097199466343898234130983329142622826624560983881807791552265646430909279808234295303356466492307777138227254856477884813321546874797111867371373204493280843900359248015080695271839680551206260787618114937352545142950159243252180669595213175367916866321074403436579796518793097766042401136028418973195884666897084159093497670309261117004462557776672199373071774767529465244742801346635695945230236234298591871613722017732096641848108101256405827599443916487551126192445423162494538745994812213429303054924814616416009164104144427098771357410123613171399951289309713578700248224789808354470647431118079591419090335477161464165061012692504700029390864560358356994062364880787019361034500778888184550611657862344325815580675097757276477768607539802057158182304593326427234959342571019936818714924174476467660378670012099144958139673408565228352791511795803860851606765605633909593702198134504149892133948179297629913315941210719902109239731454374484978174735303766793319805078854271229650081402627513717607239850401476891003911808746793670254242957130568819170426543348257479921673339620681218925872391726943582047029801834769812440153288517470838539856007518914256503772753548355686488898475946055020099964492347424651893040748308257180875069193248193693127573724732870484781048657410557505997033161283883098166131820328057395724204326448313762989375548171933793986060010286421832916237407797849322029045566906942227777375587304622334893623890201585990320351049970690829106773219448180239791985793309844600881044744458016242496267205671533145319287847394486849219411084863007735336745758005797640880242908423015265159425302072762102805652746420677005100100623288321799074211536686713162122899894761773301026100912833952417642940504444701071889403834561667196568652911330978759379938852651216364465546308855918945322523603594679649288439019925044420450519153893007686264951929508445728840372300968621904598583757937933355746996961085732467845301228629621813830170833606129932288347436406562650834556234349985871102288571529973080530393845691814369785000860230091843924205592829128240239272152640690670501666428231735093626367319171762902854250909377452975486131252221011687446843714996828120744617825894973440991119603955120428761967589946808340517023954173489279567937136764019617474674440346789346757713675638323056136264015814337056494931997215794693806213673646600924050146004340644292871872056356406061710682166791875406046923591962818403137320383848155342398225643271280188046102402041125580733754255098206796429911381602600395194802029365470465910654390905702359201812497803631435597606461652434252551451973245061994967306315799748120425978850628302409627993093958678330007468812602452761213263337685678339832982525000451805552111656714309677173209855310851369608880869012499066426364957327343471572973171218273836372573664238589725181313703217734476039046468954536992823008054505755705323373320895962726952341364899932858153002946655373094459526310334549652558609071654045663472233315669215606684084429760211546922857289029351221431407560441862063369944635171777996929226136611441473360960034336631477361472358077406576954191651708431474691385662078338986299137272065806702770637630926437178394733978427518605503478890729829735494533415581716617658818688777345182875904789632825269044463277602046720384745223468895491759607476843498678844552861825597062214110713428223237705721096297779247973296598168424310054605606713273877237389339288865677572140395579862669383721922901204833963015586219238910752814379187022352084691204958711762390570933274286268757356217403333325674831627575327200693749692303553324418686992830619322797689971274169370947901959822615349470678720381482439083287465809655758263540459690919011106799907168898106327710311068961299267121969086137020349512016280295256475658245175359415039008782095807555793931271288876110069210573176391255375103430386961240972027727708903704612625986610440574984916009214311413136549842889087620242513404769897020403969976081306198947432055369901781041267372540094360548713929775828127413372764612440044394890982886064632206062886268453870954356173179107888451943727419222985362910510623458073784015898094410477726928341393428532312171321878350334065172078131708313962250277650938236947262107507961933473555471068959647282490126378882214257188686155877013066297023928167736522329110670368570972109182967321513561655850098078561242885911718143213132627621653524469003207848979706919624674843790765682440165724696770548222034595448902891085305627740062995243238575560418045484163569627722071555820120489563191380336007719723726383551163322293654436017688902783544414898080187368265963351541017708760305817939448057108357856075260567675299211803445114422480883251337730397929645969419296575924445433869553529399580621958627107615979160393887661251186649637609724936013320714304418613451272336830617452563745123570263980011270753622088405913865291605621724222563898465142733584018949635651864653601640712063102534112821009111861883197580738122123377015565080471349652636469313569712405257405763090083641189856630423770856218836485217788717584156306029925256229030892273826137699887732311179078889075495760849267532760482427310117389606971510712491456273510926655619044414755323054041372450792996645325101215899295222340026039249429490466412671346446647617450001419069310100563941874756705446115422846769115951123893237431283331303069066084487252956996628036249040287154093802203719760691005624561913208650124157898635689403786889140623436003178286655770953493929712883354727427315532755321406265136423273255977302670726459957538622177697701438836679985836610824605271591947545232234337003754604308324243065937812145243997943352352990322403809415162069970324984851878135337270439529572388400154678975280632681741778127556204125790420199990924265312072159440352881044084517475039847399919763212640254345705495895047505164835580750248520596832275082986577270659391865246021277867106183454009614134223648024274670233677951442225627708015336846240604611504530546741303707473501811359856902769388764805909322744056757876196050609664383029463313387083646715785633899287753791102260551024113165918378830777517180200424527757464196101630458249128708354536136274618015808936852229573857118549373479940312478516108410264327168032632521202913697973161740795924057319367418492561050823104988422083767907428220469024042440039958795016993364470845252642008245313259312020932717067006490577513606562300820326199024814895890202304432496791769364931789218581174283589039283159088992648481787965319260279853474180802155879562907508007930147785829668171216337252217112546950157792955584753615620127402938021929864838000063076127925496555780805439829772658017696742849066606853430003636085395142178931449499714605363183464886934466698123190484696772686649190347801699495717475730454567537477644249198823715019948124670018496636281654636576980304796055818729895867460444536935368148249143540604924790237663907113008261376969629961590484681794890603574849684787137819774210728433623763545452557354009183397524056358039728572304786857236834643518807574349363506277061745813425979154487293790803740582550912289531229689117898885127056556405272700685360861717464789121650147077939782347063170848210329765333956056978797392730905252225297744142100014686393604133425533741672151622036196383878441167897935430489222233753598207564204291789737969849930128627360387662412146067134445342889926242461516836274406106593573624077092285444913571251049824915285607217053847059300926534567302508514261887864475971678938270290901483477310617882158257349455304376234799156389056578644422099794953994200127988426655094839966001125143794670904536739834937362136205562473688139594537279886731099392505082525749787359373822097802578232654087900782689450970225441435239135146699770814206949806244602387947759914566105292658134350320294072530400800637182232693810365303731256933436882025403476663019548657058383656341897918699058476693566249180651655314557947997441290155447224648791691888227842062217904656239510721862201250846648458705843856210788157201172703150511684151009994158011872793322831159380581668250638225407109188874347943605083949138552436399028693778960680111874185138515566569934580893549109520153280507979113625966792395438042373797219977129552751542396216775535658588933282326899169624302484047832371607466643727657945069239488593762766247988685868530580905787692107507915996287009003719791483104353305018656270763993058717278428627530084035226325556517198867614749049942597297630349698530916620651911741543749386226629566699318869385231267216281552371426613522812352988310758908901680101686222987744701780859050062913690341756706192245140715276503928341576779157338122472237000986861681201506189260881755667687796828441814662511778034122879335821366782042529398452295573543805538735963637022087235624101884312758340116107196179404914936255212976870278206904198792555364089185131238564880965633881829433938383735332540525789084929703840175941816358887724329792723434606781649276026250936429270558995396698925000863272852452866646438557575917559587109057943796343597688652803362241827407261722075243708282371231118675837572551220475808673747849498225137551826762388580833055590156439548400712093824485936853455169536626391044786012250156758995497345609124789947926141879000257118698280166151820821829934446210919178414971285776830145925511976622793199861659189390050146935453489599213886184607129517680891236571205996809325311531348602321873340189132780006825144897849116804745903143819521512141096795149385929060117077249261796148375280798406712744583743332127212853920741642209477404743802470297678885003528118105280593732521631271925741748776202716671288178305844745142424055801684004460552812471430368922818874229942076338168608598971626025889792030328637282487172329726325032406059707093275408945364939299479514687913672968416030533025657641358926350536847459499383050075842127342384170720658827239153815002608630358160809500250303957599414769654077805490531854440758843905435738516158877361164556484960090969521131155167754143111230273695384175886742177028258518890199762245432185138124232216462823746817572659767394413944044304250691178359522829627040595357627197989630506614797682297580608751763886694751618199241247949487233246968554842057839141227144719122878758331685438976605243249990108369886508735663682477157903464627848404838668427637295686381536206412576568742386897245487195951305484377414950306120368871224637408248230685155523871595764642632362845165563062525795457649862990402689898626313630202123162449596814528955095095517934098854640184243013857577540516681841220444049920959539977511627473333045460102367206508395896529827467507253520910668651779047435732896997383340673606710753950126593624708297635061510054078623148035659023745863134027535029575082592939457293726871405253467306948159205290115840866293918591905374140179516479094243010411234765570351289259177901356467323215565879225120165218655146395198079096451357580604434810778602368704887174199450441984633013022657534486048603908412726517401557536064214397884311551970840253849137488434802005200108431108688322893482506030322875007096610043767166299487275241704316629515645917128391979341682692363354467942045714501536902068919834246347622125548917027761618946509672037953062513574840216467868654493277253835158597377628238612377630244065530572024588227182513925757783460048894472087141221947133088037564620062598692186644014214296539332114387790775303572054100082961476802877637645356935994837294245614304309454023102079461778880126178504984916743543489199778057211907639094909295638782505989708562382521139808564722682991654181659803206223882242624803166207975050743223218523419989485351143489770490402994990347654867001505298775715748746919603520206695085971965063112696603406301282462788901416800587662337267283066353787501351073060575837553227662130887515950651993249972445224132204652526117292207730926437297436787882523805656279646308140388254769815255183667956057586073224861451141021219581769905722268639806494018422277086873447783826061708026309124899996965099812634109084942494787683352026493060562694348530637515891338196720848008407641424404016247184167381748868797911214425556833027063207136794346670252967474010484819723151892078634671292592387096483265032374593998189508521395368162781509472088482876264019730935967242222491699910758884755951540782093251062275082649892266364218565268334646539345220737865612564977911573036234759724681076044776712906569640081871862339175959878370988175422031786523525976009648514018547605018794432520875511259409732763381110675706656417313339759110033365110843860254218502263369851854286665966146497095153824190467675538942081597830124520860224789722508523674397130247694029710688068019457541671454975711169925064512887922248216857289631725825398935894469214153708926928053340344698353677345414621610422475682085863015939718857969073305304678319000204609452584552771823649987036358686455312684550637589826701796271696023799707305169499989021604051448620712416071056114520669621062120734469988471699420634197596942863376391865229815334424258772199117081672686037942875128590811866851952833908026433540393640065312714700680276668514093962928753052091960220787429219747966882938857689415243476018235440879821957667446309124342563082287602090709919825919380658474618058091870580404923823524557803129094592415127879141817020992846006349733940654110790100291333760146268690215261246894510432679964364201703391091035448636635452643837657512175226415287148091187071708762421024080944950871516458450723098916717496964298153727214317344862696122858607508929857500109025238605223918825672628210672213544288344472201352878571046598469924735831228817396851603666859141326710610002646731649953110107814729910840918610803481327518054221810657273110885670464296264331263995827960453560548155648889439826844656878495309072332679767223716999030304287650806905125187711603004218198559037461282721077777382594423907020432886594276801402032296256658885616143135453806002430173487693984380812015761548746046833417555156293672277575292068007023617442408544229571654318767016766956802595933171055796719341984725470850905908419763775535114480912262127045086888354484166230549853462835909910416892957620309799549310316994697500482000200145302495761632314116043726740392316113825132855058269419321330378231228878974748924338226189195741707048418184437963517421767015593708544999466911268247396224042826356403297897641778553637800796321466003335690418933976186293232414730006157650866814305870754785584731897791848214311832166672075214005894665826731140431951247405753693421196228809174536005571590862306926212032069905113803596089358892180788254989824654091499415797465709025226567570228699338512813946435389528142043683724110334539275654057298249249561285707799173898043134976884066831515354490609859218236456083357126967227954943633336806833973625575704373493371222281198242054676059194140535354368238881805628278399491475465738964512831586260966871289520359027312031485760186853392981372228512852219873182738367165895328157669791663465347013089115952432918434538793183022375666775176267798138384005064660324359539491068578532222325715230115475264966382176098821715221449476678407930836722353393173024475788550015154661586658758428227384330331517285727008018677287014060690848774362894111730845545314068067089916125112513080548733233689977336886861067683983376859050415147953490411382134218398743929250897474457141934221204427640783623696994809612952475765566865989023048140075779496495687002680894333815715412102800149644561852260789327743359007687903459004306240295551407944520997688617152520233642758559915741559757375602170013198946021892726668488414667480120683392906949768935047764727949172676356147202559342857346404602791738077338756968294671597770627168675135115009135894625153360155445018488653470695897611150064404143156631562536502058846796229425032158619047536623218350671247808637756879069509445592280524621103206098400401159212582399713308373926804752417944328551131075608398908137456337335998582583274467966989506864781345553618527355607562760219300066877451495377942129412930400682409539362178057776173186435086828078780112847774562006668362924519543632665973595776179583341006956052755850637983517606114189845487030281524325978784878179007774085052350523220752893366874134573188710429714136545210769087844261713286475064276744316339806344166611086779885278482398206203946933171325729890061819831120771892621682284713035323134120000478480204511034800160455696678746057047967712297088113307501537693305965023462849226773101223079186939127356768425456305135509848287816516231482897861358493653276485963547961377380029150616812141865451101883042580026625792827590919170708006551055077479815655862485289091474252267702738651819844023133400201382962841801454490616369991026330256959511666128453732004383872483233020593685732512799634748290890951023849183886897910812275626073797325348422565608002869277981007447711592688181051059618015041738753113527311744487530531566472689932398837110526305793555697740925465122082661844512022149016124419717332638150434529863321804306707728385608096664173893601179660685029350823080100518804415855672577189472052277202613516129185203840599004405655996852168281463047346302435119356634860856754559853938239863126059366648405632261062061140250069496734022489001000968058846714447440409746517170680648858134355757923038068189972820425846799387921655371738560272535013826144432832387358530808001808231925843654193827785618947593475139438416264482642460656838502376545690312020136417794761486311564356469334012985019619132650446378632868809940282519973021617162355717195598675991658670601655941612894470608748166185963889430163840709727534724091964396626934560465393083304733367820593522659416931726433825400701590083266332504115389075056830746872485322900924137860725880541445610851786738187121828875744975594245714427485731421085754039987720537129962534312539945664567200294484187229800390939978287711608106344451191310273779765347500415905837763252489161260789435653229035954796683932907467059153090677998960603403842883214372339720167767090793050982469337099717984399857361581021120904228001162134936235559452939147882969996764448221494694171670802524192730382129640619058650143175760467133069321508985896346813536084631861687804078991401383490241913091731667616389192087479257883116268679802437684346441036300322040836606468191583413170231956235504863107872423114094070427093370878786932718597114601777767917666650761146410963457463219324499230549655016633294216233214052152166479961110065360726095970546692995736546064035070052344429812859283212791896447497846456487996851996674864046577807270617514775741987773640800030250059529932413381947802490147876324337620098147925252461789506944428016229102513879172758247259217130997385721262483216647775205373149866306019697357191568231624172109314784610558248976617911090774054952196205582123147805383067709117350881213167850606601994342467894478665474729714322647150171570709957271646145106234277325690555890929790607417548667577950114537113616106000083760677496621380448453963708360125280740286945346308836535256490954756379621935466603128908113205638414370479804439393310812031956361623615999255603266522254383721069025634643097329372507788802158597271991844649188591950076751188501765907212282583242628816206119743829603629704457060199341392897615710781437518448870368791334667810124756696980980686726366937823662673720860416056564193907486256245866945588363951955609506336285776647870586536889578365702773373650770928636042584473106227452409854483828592474947891083653681792394740604285556521457079987142448274637555583880624963876662220800362943195011264929805647882299996512985403471097660074225931911285916459019678202854477526431784956451197413642378723459059238922718288625403251478269948426408129650705173546324092402404851541980536772023574637224319993462011071726682249009053496091861068063534024962482478551339054615684385368046911451107182726382139747285087854006230158627960849089309010080468461015740463778410114692065405207523300587361520345411992503364406244269631798818118744889590799707597829332206125088794430328886341622359139394267459501918497256799307461563311678124140611876355090648183740918088578026165693823153337407712755603427079177420098010937922723999304630083658706732832685151052339132539863623186569788244886458051418116407750590114530331558182292937332349578984060993603215990207584558995860682751420773339785978736279095412494296259323427999404717433996566820482342075311018402475950338030732823321753240212730582572930531572872671424661345363683230193592304589978045747698343395025342457294379534638040207805252641016314841893508540754962979124880223940878559281450844847752520300344702840035916699806444527575621885910456763289385897228711526569011904394975519339510972470503359190983441740660583770618585794662867596888252515519467004737717036351035699273435014218867546151737489101024075379908898254720928093406656708575426644217580563361469242819866516534384534706943438371017470563719054547531429754089687803002717497507574487749650880817751446678159114150468913463979424191422389382150111431888633554018503043467723313517871769854949250428824316899828434711266602953993376420083447189518497821160875756456716090608350666787912587199070768580272999695826676985840623529734499559559245662571456538971828805520599213326569826726451632856517569768177823943400794192064789345916243047821314393693875934705879901800952793887767956112342067031525199777487591415269790258115709699637169104612076142342454877701326749140760117554588695026593891994025341302617833246870499610162023270162581483343528016664901845910946394682315430502395524791274843706339700767732408191756514397672670328279879145076265053219677105783877422876617792955811738692610997035421600824404863078957050875471393343331638410063133911151158532265985616848786219792628095724855624417364732329837983348370656653731368369543401558279294566361996238204828713003405115144658472996318131460571022539183876402530981300694121385692453181429362892928915691232523088710880142905309383247863412044839387597483228774036978917049763787875730530680218983097357588043155365844681402318423484172115107071535589646905086836414068385809774591397185565477002052823072959123986520148503246617552242049275620045711311873847382382763938276180418959927003199976063406901415932522955542062530607870005475559634907197802503774659401031453048630537501372172704724164650501871383872641008663045094852638114532156138511786192946828765830516755295082764936817824721315554935516193014011118485973103793262271455558109770514631189572827629197855939080248367825017463649960855506624370225053980275107516960907098376219253629087872736549313114254093281626617398871739446223692968316286107991803876469497202416823940787547302463971417269164922065934246878498956571028104613425165074573162720941886005537486554569793908149840601649645243488145926164197285442768390838296725081228884327190403927500645627994821526600133689353756858725317326349470342654275713012559984332679812885512845975121447744206933389426423796407089594587188108599984547654005956682610042632883365367074726106553090092780208489141799952224679515874431983029576284314536634037179373994271771107423705447922755582347903582749803612628385929955913234650858505574487389975320981313669895619441177337103949670860172207609701746503289237673902415656533830324029832552617434218177608152936341605158119953393779419948211181038583142442077430112441571435320918456226486906447339645147890409974507734517937403839780508030396417966752274522958791472153051668151329895580240459644543256740605783341555919515750359193203457786711325141213424163374282633390959507899139514351206291840096169890495956196121800012805065907622943827086429963794598906636956876531908572096206886700346538201902228581120204596327978279730740250539305087552528721677358272630271996299031948172223939394673712921492084081723458671921611614716629550336460477072221578018733149194717315383205263578666088063623021516412015279321615106443592657668681679822758299860099351036151109998495124511355207742929318969029790242983226818724457318478028732448072333556585919003359655124411654060356816508463122527107659567284839837081314496377599685786281652157775320779450457900744568420267458624651046807707421958134594950974380850474227666403992643308435679153908789329289092229247820911768578342735132030855532625865240102508276638792784444402965558098839494416942195003421508559247005467631889076204147295850844860115034423423098571413477327713720633426284560174543461830345851523874101366442131011288077394818401956159578443263502066612867767803430899750341242522430335413919978540755650161117435333265030066258486751531266425042113941034838804946697257280241624549127490122450487198079083907417394810433621898600325125109528471968077352454144066653959115853977462576964760722409511522912195514945501628913618378171777823207599982211286615880751443938810425976875987054739544741123677749999890895912177645119862058161045848532123382006651140209971106271287026185741167291678899374022754963144254763219821478716904194485349260576381751840760591596376880859059153855603637481627412278464034896278333325475195602089110189712561843819785781469375255412635994666852713345085571883209972606438641688153687740400223752174058364056194674130583199016930917352648544369586148200892011718812613342417446455561266630155679893240072492993477636962347124392929665043090335150935573837342560559214239342767426062310402813937675174584606811125111703289034274656681674774950310163887549129909439133567763063029611172601702466478633400479588341390885759218183547068716673267082448925178271052839885312344143747201886247703704776281603094127645191562901926541576828257074207887228078117716028907747484901658799485890917760274576352504492685358308986488559150513002173903681438295069792950219560958067496828098247215856050623569624844508080158822216148121396922943838851227083180300442017443677591414877386220173976683307866697747796895976429229203303382226043433474987942737948046509956504966012005859534054706356004906465492985159703399100054440893026096347254266090506028807047962092518765620682580845895839696342277711842222266392745008923683933635373903828462495279954721977148337092151034036440147812259009476641865337252126352264032838228738001578432026851621766854970463169692952887444332826436528099259302462202756456485694212967312098050423513864796496816117848777411749826597669010133613135912190271553716356642540112733217132961115581535024773645464302425426570714787933551946287444007413620730086698673263059793811442432346124805539536417618383494669505794836089997775267020495940516491319352744881479182845010186978559075046340698801544891068387246536406439102113214018340944950601959988154789092363417499163077414730321626226972068073204680743452133541904193581276754194936192492084736115475050666614176745590371083129907937700214865199672972716155437827709299583522023648132991273315002270371251037156216373567931928794654008114854349315699395163458459047386098721689496236113799445404886913782133595939945288655989408651023469862309373089633409774332961329951481912457490554443114523951432956588570228916593057393471734114890715893634122233518958522826100811338936217578597944718243880434139522885697901482850385698834126837650866858378435930480977809840879015604984137942235532830222888153883763627658155915798399819445150571898078157256156459779935679504799045733668975415609657648859822139305316274798451020986842342696328593757309926886508028305312781520825212387507037854701575292862637513217565154585311624350377563484392945028990772234084672528073914283420973407906181519196214153302122964233840028465672510350214153972149698931177722721325435508623741333998459646642946317636368344906325152526761675898396426380087382301636833094596656467001733302565190268192671012851721939052673535943380427344638172901296052146556304205681924492569977334870133489301972658901681045069423539954712941095134125683483024610313812899313341848111718652810794518220643290267468854493265764674385360991658672488988404417857753874192999224332329923079558440869228061868169054597768114205824292320781157293864512037245643163270326965134363038424016095158189254048456884679394900555365222660519932606417288771540025383184124778178293492401905985261337131746033634875570651981830650803603140910488707975985124788945241146241563597009118744470670035630885588317385529569915036043108272140615951738579503517313027441896339036663058147438797595066184405772089293148049109468641457793839172112050979506033151924381289069272226143346583606023236273535483062783567014448217334363086146120327916340503776346431227110901164734834688789596143856773371983966090526030773277826356804867848096221566624243593168424580179860191236671759249709035124764880411953319182280759798623283476662005100556739793831821538522699439985977474967376987468406695079023404612186595878770229763245314778371260279740323053983816469453522335096382818183392407384597218118966315800207887133856059879015079818636844712906399307319590267291218334136517168709617842826460235950304796307483749277259448090856335049359305358421802298330766916288929041698013659950908705414341298888851112868002772510956977346074556490021870991931658599752884692832116187078273229691754591156510765837633534524417836607510401719966242998717650700401651179078051958920096655957329554501320234856620463592769407100661906016799600024022283684188448650293765269907293736431223434341325193227883927492098569086507881280816621743385740200217109569733768314898335707204436222750496166093691164554425421855988904886579129145935181456985710849771646122949298641218312669775418366426289962409292003489143407425283952188574808508396028120316833828651933127946485879375037396957830883238959725142532856015705626185276921094453119069822549154113590637052142711857841333810930851903947626937506910727154711964935589714422940597816430354156642774866331739286645617918564890428070847055089269947226585740628227709128853807055008691795741543711646147666326920247334126969870019212675895134566485806702423789231871186157924202019213675755293771112924335637590762686497216164516635992235336437770576532395953359597219167156850577751051795006015834124642041373378316125087495771017081350934058593238676997817630972690366921068453784682913256904396025351068104555369229820119875080578433780758004975396519770872068995303580593481394253714440197141996007484588085972310673182561287390436675821983443906675174080361848564043932437813733820079303974939154744396237156652220901416848285856498809172431105321415947228244947202793184753815664821135061618627875756735499931513018688308354212369616246390384338393025403991421089191396423541774295198273128741710168492524147994840451073682176444097970105385538679776944440489027292637302541158811312793373629422967816887439878454431954736670133597941917921221857459508998745663065087859902253274696454467503246855987953752792354407416382892663098604792575225786836995104539010231058362990036738213753984278199747542619034830996399149060884140388280921790906964446197198289025756866410892848840460541372733841717010990540777694673070559490233559698818093598489313189340151375029007769322257185824610532637944638847177909129426621253878235595396893385409210013511730511227751824806818688681099377478441078229803817886911138911194397605520914911903542775967922154945708362458995025823430760549091865249508434472141342163412657109785638307515796570867415544929962448931380424140393606399827141024178422207233140887986415184851175707255690106520432105914412618858094715061151015328482293760361195334247967394372547706484489401911343815553960607568711007048543038842573358075699809117331078304006031409283050189564403950662581828467292544154872617966207471291193433268249215756510060005543593521139715047182810859817534181436904653559328440580919862367005189736543699551135510167541570219622656258601168849655347640633615871270833350826989267314251072366818504472164272907803307893281313032936606520756751915278103417813038581753182985506758665577409237658149875668337539635568373613391601692125786586451172632408022911301304139673135520064690607019917736188858295595784719726128912482281768260271412165705116527662351894988962547860083324496118603176019794646997821056064982606725368393822837013022863877428190583448238066143706776188690964861717937871455926066434126448989896341742281901448533202269436484802501056320109376242763316795633019959488484391019463502567147586337509926673323234698705559474520023906943234897298930409349253507138409548271335443000298627686738001327716552539731233407736703169113055254865426310010359489114425662186010692963326910242091750235295783845535593432638243607872311934199300025320085937741887302136610185181994008782620401349063830658817400065929663804861314414061803771161031164449467364469167703260391860799628576317235415655602128003170026714172306878258789740117029726061375735990300337318774686247051286234800783122787629471471584763347858303192952194954997124141583456644555569246675568900518713735708948302308082458460971284192003161507205848184227211942309130046086662698633458102788048279465493803010006386976977396974092948370734138226157123273976800281605671962855697402814104652010110700697615793372269642767722321203167647427399438636479922766450471407215895408067908747409335127992055326425966192195113853841151063072431656098977747529037991864079112638969770669790188473529329449496302996601769333389494027794507638463611543052544679243108148650647057034672382869319623174434600335198978357143279401570096526160500881786952007963738539116635044079987936418558438860567667391308482095132786720771885663474126498792993537077066161775831730272727768231402617597301985117911847041245879742714488280331512509172067196367582587068389898226251155068225341289283538046856383022842477894564924616256285138009889591517233401278555592164104275457623023879826762885592760745797058194290204379725422978878026427025460220621993198761992464001997956982653739169521666428882433208952241782397212528694557112025793655134621022417521832041962121468226481395130058878482464557000275404157845000222638315637711976265453945331901753793289645084604841527272500183445386070494286722373152827697431426964924980576064286639177032102625197285057911375700759246937198112141779838792283089400381976986995691662054055372689292313842738364256472976225141155282639673728448736030133730293065442487639594637481072355921870490562707570277827268859195859766830019905354767946553925280012521348302686244386419041049836713691663829020962795367242207523006377374617201394399249002145514021367393166558155713360977762329754863502035665907756168986021658702001287957592038257155040244659875637949888928019637812336728055156158910756841896716900891377703438135097851425956269981965112637354506095355040341810399840955772612884433982499765464898141760104594100240905088997846112517734627919409726055856286447608550954824881573572878910059245558162769962835912193615508177840583395922039189183532982460818061428107056114473698720394872973530795849963482543923182192040407681549113351097136273802695223418151162925516738342290172905683990719211539609163225819885475668297832281953337680011084143177564592381115957686376307217944658522007756062446870474771490781484358421043141104580307732080345220579685730460074800256697390831712849733319000762624606512657074792218763895374090085970979574708930369284804590804432204990988563757070313520057814140129362406789559228469864340194603736514456230627488171684222308219365337897734436204736903408531419500197054089920587317330257977121184580834329905376860487827702923191509892573849579544015609230190136156092157961732700532240155761428824207461067022963889153164185515584794814019294499330405222329312373430222236203576908323144798572215406121408141714227405231735452844142546730436416772079658673427396700117813933072002097995552862576155984118023775404863873048612654822744208173323700631578238287537526274419926351329967438175557076031367130462735668555382022448102217551206071381023364462529166222505038574945424950401746545521590607251750706009899667081455004321821860044880448940750012155423498724745727587879402399463004159732191811088861629794616043673552164160798999095191771797614452358920455597254243291496689374158783491700284748305523689502619851477768713560121318097897960309089783106439075944149894413055031348933279218418250143503422622035895611218765968157852303573600308502113758228213231276540189001432163150607244068421851264831539136531843790962467531314168053175252551257446834861863981646694432208925788025229340613291774690075227830934302114234629728881494644725759100558638745174753563371910816055921837858901180433031652918914837335479223240379022326324844402865742218907750840865215166390468340140625770505635071678099749239908706822670579923755402575307947920892058889054450111109080079489130337211775227969137490983193754492479555001355379663581457304019209625429201702149924459312341608626908707640725502528602926608291912348943155975509463194248576854551334098912581628341705441949397162070874273631272937436072716587776258898721354309091482896584107074787040865117120971913090145645976955552484943586580936875180149366790768043077372510480026092137473443942931041720671904171662047196393996890424734978787277097349368486680865679446819103177066779943379943538826810673194287776767371459037678023277148535998726816020206706726089136198641141228570769049341376904121697895475267136686157575451965404804769624976749669029751908344431429088100503901053655309911856940649201798880956081222228978829312894904320924432840063203436394607356700997463888944172859918798726166103258265552690330422488759175317392876137102133542092766481659823518866224065522635847422286836068328688136102174193316230174915232260764736075629919339969644548978451637401790095295082209793826929235234793931652329483463325586900300116238321477657515761185302022317529127629406977527577928246494475425890041056310006667995732037796236162839684868782705403047478551055383793752896043675209463226031807585860912945974874153674233262061602739510306695355277227341133100538524918719938716036206587782176455608799690321894138722381510443174822300775231028077010354260421544911673531277014849995188744538951083498284712507513969898963583560344126400511410528008142855344454713840476905086803503520391812039681365564497357871670341048732954041143874959120047275043917444927132853292745833647615277823149739367068322107636786851549683565097344596595586305214437362403309375141849913695393728806888432280941890581066310987808681171641426827785916079823712605940340418372613075813403933075802875329415534266733282164926321706425689253762639829837915908606314673472098383445751194608349938604147098873775081890349326238534235850218351783975050700003665954354635606074372227208294497596621933702428034369336856671929011223288805409435380672442785837369210665216909674553021501202412103490703584573424663322508829757379461096182576142613723882285677854604677595893833071176984300789136577528895807656244548611128128040843666362920964454538914677971777473013203578342626461978832252109250919743822149947489366731019971801323137198563333791020849200503762874635872649810645499004026684325692394924570037057270335733263303500226278116536834081390853564738438985803040065456238577387112286674480481692936270321969898725674304063482886591591919217243557245549729700595803471492124737716215490309546444741844004389577523698652797100545494085241350478093924951088963936565735349497304994811152404519814560551131540285702991702947188613179674070641637690318696635396331626703101508185035708767935713799219572144272092975587319834576568607030113897216813234779148147649974885933504828478522093112089287769116123350279423108032020195356667853180956487557249113793303998680951394158986337318572310145085594526241604089089378855631696348370256906588805538444350745546688073400059611401780719494640598631744839367353759150944249166001390933560589928851594445053605593198767707273317626899385162562329983989300169370900718463771144678061855265966909232934195288417877332120175649405649842620678506377929642093481446480329961072120430607562931049444155844873519763862558490165352101501352831553486607212996792586463034736458385803843044885327259001088930262965643933198172983880463828980975478305607988727930532303429039441880298518179877112435853429284740957859737005224784120697404697098293498226790782380061718855111999403238605534171601407044167283382630217980463001930195315084119983352156149586373894272533601116351914940282731564022834021726553439976521792072360359955969479871391515740297307129286763834211306679142232153381739654397111955087533754201503898590522854392011095912128441511005614031211542396778219591908286031171448193854478516181892991773082868547682683343248872099110676448609549684386084745715016154810396924716207443551097220253548874072424994423764069608088015393712056132744163030093990470044419010987352076758305871055495034743690532890355516114757777254297248172977483720529574624241383823292324878940951190976564346222070737524583449268295479245937566424690936323709268885760563817172526416957348241229203856606025332103471378678821216485812419061974135585607426758645480363580531731956594357220280833750609609221880629987792765033388196329327985482028129742370034728640663889362014926878789586072695332304111488683672187824327354482600492077813332529169933270616580299085760895071844896122259702139314782942451014724243073602927937767987987337292042464416852148461946024198854577634531123302737768026189753453016217092934346757813007190963272332834986679252158266840412781110413222457244061367834515801319512824864342465712728441832161121866456320769179414924679748098952217875420793207295249300192183654311031985917338255718320258890746191126643714028161722304601460543042783804845980775878483470559106346765214205646148161544227677408522415457408335105787802475619275621678134285844623249639174028685810511366766038653905059228463370062775430324979145215504896070292210304105085435550866235843637380677768811049029018385940286599519072650530808712383915811700342384124897621971015097700637243996559765900851137113835982376235329376011339589610516879889229272716387942099940462268021003210099009213741397469645592570259301131859897346769299785573151523522564099737401862665767816233828434618990139991020722818136754614323125978221552641926632137336249700782652592193883925859801286124602808292577518576805706185077797524870468296563884879509366316075702013215914021957683508429353267883477393830878308389433886311417330507169160951985561055967298175035620711383944623336501023601866234697679265109454499833131250327666190055699897265960027662220910099825509175723029689648406280427906496642639237678146648300973796006800714230878472921399087765198298655446615635564170303613263176944495889193787725805454219715071913412529881597415319280621063658292512887852449876142795434970063062861095055908934806488454086961016773498283705555741847088653000888259462815844374360290860803557653265361667271832446256345187091374233278296587753767344480945897613510394554426783999863377395991102378296863690954450234246208672100350928970099080059561843615452025219970081870420211124282428812666751997239626031708688649034847674132128446322460691914272706413461887993325502579730101976973537461912457308427563080005271916748430636301336282778607588428773598584505486482831907278014035124961027367539254011870871242981167101227637506194452287435441898500963813027660324227184696319745697992487049509125785969685555602927701136751539040234978348746322893862690217462760775715843472396775943448539940819016517452742907454556550975810211226702444332134454053540597603237737505491260712561728205462653874173887134432840146200498825718089686924286644405379423298302406382543529045202529957918906192764495538905004859374976174082930082905095446773719789877956940212753282448086960207357392865710602001868451628998620984115104012639883091308996478588609543368117891706290406659240047836196412178542229726753563148837060392216487527036615680129204479975259984620261997939410926685594892604002238950910734949918408925493846119878451139485020363855038491198895838677285905229887135704270923013176745520350456533361791251197857254104794610848864567850193220279097415803529291880798884282750205306209948802524736090607564881344516600494637187987129329229576403494344066860170927182395952594431833124152546644898644456933879411443669052278383584014184567004221430200187728875009302845227240116271045437019443305790214360958882557704483068655897679584251349950424089041016112580970940552724767740202997707385145887557484875250977793498083086705354790370837694308597642161772738959352549730641186493239294645344208503800878774339677173958526500523390782389688644125871402478728314331379341340467591446490557909668646085396385396324164880231112108782630898403556684384818798118108596462317669399055938597400415166848104373590004020554339844781844092515366494418153228865324751782242960576514350231127703927741043194430509698993865489565729882209110662787838833630259138711310714074501284762901685207630144503344634226338020406933283753016056165506459649003403255353964918275821874144694988601442780751919526195620283013122416280115646911555979397303084074370415870067589614646061203175618154252612841649422339337804470631186716730158348918153215777398679778077620935321287540758560662796919407778962489593282053357811574815836927473290790385914298071000246497508654218655438396347055460783119610386570999198905251638954516887810291117320995091151809801214200494963777008529618808569678384187490896125621370215282971345622641769811567086953701000309590164576874190844696649819132955823730321012728349473324947297888345235477170201757690326114532163112599398603893106959823451442107446326141136439314202822505766331511191281677423840821439741804531004301374335074730892025742815260480184503609205877331075318943527216455167159067364269422829112070936790157082351979026517426326748055702832623848331078467490423355698033449391667502719162635346997448627220050126783067726323021072014720564650559259956764782473860934260352830911091524045234379812752106541883652402429771207740718645543793287875757677143542808851468473635009389799681896804711684668946842203904547633403383788410292616694703147064185679221390465704622563421953589405492437991511168584120890924695269555964001761842106655231635968695377083684161440661181997042956018695345747601701260150331039345851021319148277338634502903865022898053393089878553129262532887757122100374772240471435611549177909125200179756710868820555057621885275054696762446198863611671290951116763829056510293257223333229655640713045918890627927775301787982114946720128719800800401525160893201649053714718616361897372307827170824326549347888326323693809395587912610007370885613751808829190015536537282835854165483328938398087008404394423214997346427240657589494234533040481937720358579686527081601519095007273925379929036157355226235563364443260382766979810457846074783715621527096725647169391819310675447564572248541166226652142388932489132735564462091203978661172672116868817296917752362831198742492731370901384400834789859049107779329198640986105058399670540812702144675470005125884581925229261460431888958453993135696876401907567819162120139667404421998781473324087001819331828704689053863045793180984486275927634483354762889898177240774092514799669896473862867359188440943145484922320672030988910120043211902500486427478199850655666766845859005046649655082195181634806457685947793811262735535659241894810743239879999309516426015718692481579702518591920120761818961485979051300931378869186215305851548900487393825149962763414777313769749906798986161351300562788194095770687550376147050911044403721830288283796960897001623643104102926291309420552739289500472593693100728927545508128541116809723202123150301005763144428484061673528281696276121649404038438220449437624103930068268124001764074567738785958123183232985705336555058815083262258099564030074463508637700164347399331741778192783488613780275911027557391288157281330337486706755283761726580590171498163945553697933846336037338422690963050798833194886202818616108263434459743357470294456344328527776380025325632680831069823718460134184140965818967891139552051415970054114956734294482369394183339073793691059214647951546448530037333955540949870290321853372589978994623431922614210292079472872289424775060328271809297245483870548099344956683531075126952396030872915644271010990612445358646676291190600835609601265283198128027713685721952734697959842622181665243686087528302027608698267169234543434311766302835718143262270287552660983847091013464213324731655976736251125175303954538051820283584505040151199274265981501547310386093829954309987584530751731292932787383870702934601545388413448824861285919858638920339637330940819787535042862427718842422933684667794886518959656696177822966779641426011794004082147570226231277774589137452947707700404265215371312089913001219350265634261785067220384274631463969964811880938976224277623545961697555518479505818613360201107697981758310931526106771900144198905420252814671948711433488220862732313998626298529307319132679724711901206633578081047010527037331044642847799752483092475245160080460475255019500355106130662513492204513456584643505921747363575342218768625518152135730672348496406625218127172316158927018395259659589483614274473930556355789501063504453418250279955546091997177876401736507215452655813312119126043227300306698498730939943113443089842618730675984666403305860097642079838701589504895772362954507506275614807387144814235178871060588308604999455843097154614638678670639404119048050558896078583323956595894564333830289630515965860707617521186455925911955016157659007089718135936622092985145631656173413038529246835714637489688082138410923134003238563333413090239752862847852549143996793994493195592410826350804387042630920463530232815514939264310691123536877158865403793786623808175613490454633003306182372927669457794529247500349217108769244091666868460957412036745987596507930825695753515474535961794344880519211235425005097623207651434467602307726626949235999900431459797722140215519195989541073821893370456771135111166516908580023764273194043227054125510320035797635600248004347056544055852582121617363975898358367756622573532956238099070206354024367131447513377843512902754686217460301105366248617237440128968198960653661963443350370445569708535140013522445470922672437847756020236369941244932735459962119059357265121007386348486675204028415900561727136660471179453673563350276710201601607984652741167228935272440964661359107932419668157288972741760520987634984767416024841790473226494907485444222829022209890285850902573067826930347118907014390550264024323650439370974100544233347861850062277925673194757407273989028571632042466105520214409721650600236220738187387390728593440958384538448264795089655214627667652633867190177983825164804436868284163411389954778654858694784238792422023562404883349143585512489896225838529077135398772875708191676151611975579972357606370329243643011707824808943137763597142050742488107937154398504061420657321675690930452156066879540005246575890159369277676770204171357919347951234025497536837764898375977064849400061713537149335411334692778574025063827936409258983512470659063925889507552054903604138528650931863894050504411904121341967071319569401860082453147486798794212712867959837980557818033059477792865957209647222634408916565391630093849038422780196683893714155710187718539310383555237597870991538622986445588998496099070796779930711465341411548547266415463479333820614398192913792378480946711969057269584571469475455547168805624001293226417769021516314368243911410387480359784580349355195157154201030840357051161950524144350248482346361827486403476980157748945517978134584202181088561432784656749216709266418230003701634406038407808368092448554295661703276603365330921935956713089402056402271814297826302567107709269086474720090248394558034793344382966435836587455130149322551310911801914408852870631766140112593856666490670884893809011286864413278098306118611675074133904920746132780447911209543179843710664337428683804187597337696469552376912691608250884359211444565631438200438125752976779215370298258935467510922980075990606695983539005439614423330582683917117782120366693445229207730478387058955067706292841640218238335009913406035697094546296833534700529000223220492859373638254581881081764263882906288997794161033963953004411606576517386340106737241837593910088807593457560451487759452966250411122049280423674870868303888246116313578186349570702933204345251999687521888615301516852564526786792048911391898701282204897323979440434844951930678724057335308358447771877556178218853329764785664779651054029785081656294387552242544180452644557111880266902336202158748993999354101861299821426879643708842589310022979591974151305831266654122988864353075586735095364987094912185037995950507784892023544452037843989622095982818663990649475511078118386526006808137582797749603901774503055336314355071139895476389034073433285351842841163282133406037406325218848932297211279970709538180022693144435778483895157579662146740725444591671014872968452765377393548053654885031987095462007768705512194655526706085951538724121739596628548631779794901780533499425734319289150432326142049652171528484499944983643921782951267345967268763670518587300411419449285716473775472212238019533848970064334599598038221810573189956527188536851090141220073914221634296447396806931524884171068566589410968154326261066888433272380830157575302633528864276237967628309080112870143437620800805566816730863484239650139574785747662531925736152893731096421578913973396461811604146339478905860744388951731416661014076708578880478965168926682771910175602680310968360391903566487282677044826584795760424367079589042563259602096198913914895259607599505484711411966649858747862949129951493748794063429702764230279516199160696778482221105578556890696362251972541084621374399426277248341364638288017232408079804809703959614372807762879263618881088867109944277492851632065396412543050480651244136379813656569659028705105742869140390119520721044409433468628440662734480436341158614200108017645377034093121081847486126391468793923076299683442782175892986935307281850778887056453710272065562548219187073643411322412562251031197817146292691099197363257241133864823494898073905768226142155779884504894851147853774163279012889227427314295683297527493423521749997195051921085751657838548395585797146060237423609140075499984027182796100792858559909450035171382255599709860090302308710741794546775970988570323972551222758168170602678741369064024775058407194822748227146957271440353002412616714685770876825719282637108110193708204855915813744630232418050075244046389096300142678514507124801121385897685694127882752882861378188254443107372428630184189477913519897951441010040191666094768372613248311918614197130545294012322822051707071863201898009494444911156805050977943602427658646168356186885070856379654248881806333940906451505488127718614203996161655462418467044301304327424422168248254799200852951465100847778388344593343172801493289724570929622074158111505981685947407326677527627845361556387607607498398033612562266671836946313530197909215881728816624686365909948675604327465276890799757081099892258297680174697651025908355457624864083503435596161522925624468084043373875087843926565088529346920110264450122379753953382180810029734332693940322089324963979282204736364765780387226153226541820316362779611536333067711385594374376347993504521221873412154579186751718795724679915997959123952730548423045525050890626945349801581596958860241903601458076463278861829372619237930622321864482455532419020416133217642649988671534851696713055037520452718568273075275513640665114552635561268126941653875300399710547159150023768142464567606667393813069424668707539674851194615152502798709593933086637350154315307489921404814374663000266908816501683314070952520243303983597725517324472034826996684114514514471219584992844429100386976123414600897478151966106012199854002119075772306262831870873339154495097447820824220643631520323553864549022937186140957259709171065039263892883554260240849845365842056606043459379467509596241797350935773328952769363350572364794324931892421061367729976119671394920559299998238600332026627961817707978356511718302862343470025600004569157330956535165905747599730995100472187361461736903306727795532640180943992220730243970619568814112920556877146066960011055967328690581727899906075321303665262613269691941088517875461636543901320153498383213446978896538803980593660759288706899068718902943221756825805809384490698357847843591653248347307671817936096269604192700283394496867846866065006659300304464143264643143103630893242239926616689605265556978320407739119212657544168902344042210516707509776199921323338128869675035479890713375017641333348797709504499852048091058332721590861494914362077421042316331887628345657712806863546253299366015582848463375945183637078378713560378263503486594588086533186437405901621162747257226495066853425489161862699848863078728290091929316695344082608307626625332827140829394785616411976226147587922331000907050975350857201000176337423666806947446540997415502038409115362879806814789326333734146242131037955768713853638394857965413353054839001402664073765297959590586244290665906291066935501000143875680186216664997436307007708110694383041152473300335527772833990332651946754750277990244315235992189249140360966005714522589525106964340511465723570834973494329393819495562602464079921082174915070013885495841664330504680624408580239167837368904882612280480677792482854713642914881484030881938472862547784944674451882039998402385043130251685150671643244366548951270937249992273648219654318771848076032355805182789864546371089483744141459559687417517778167994290839627959579390718972809843924348531045762081358090826488949153493182003485932096881832027424544466273847413561727012361311202918678216151174365405091571334447764706125705544726637906092294333102261758507378995651311058320726662534150514189996942591442449457453749222683933776482381707563298316148373599755565475235868218046547351464453643701420555480127243224251724582461224548301760403393370866575852018459214371767706429691122211281457780528776136165613735836680182815513659539060040476547852588440531261407981944959304968051357528239174978756619471709068294957509948352845211898723095828168442182503025630322898124413106873158623876459612371077855713822796993918373725269091606601254845190176078407731644864246537647604460065171464043717300457943051816834362903979712977935236930818389624366328883657633605975995063090021876894829023721681768246260378314879654257587181103522674574858791117701846977160425482020190764519262241150426810732764732648535758455825885081908098364015145551384124777037945385999688888841737004306025683532722039698557907642268604006384029420140792510505518563494397412228409167350665813490909427346922906060355469650458800385844477664782920356772344928866875665277603830972385413909912843753304910686066324007759859437350025464001593420684392718910764425831850789987923993803597765190867608428234919804544788579498565687181521310967620974428006405820949556171106379765539752452632512501614593351573187547765194999649594227632033233808231239052155948794395693269747167142531028687251134312415178794378188719615647784023233057890791361839287433945431399474206383938077955806957874693164544680289605022012031931331986504893234577468787549628660789469033304653854810601373529723358380248897315126692434273411303539441633569276137583885938693117259068858408634706638334990684352720901411701460598414993932732285188829304316311892303679602566638422682698091090263344497821532481422987337148600204180016755281019736900912187396928535124337623711870031466749270216236263569869640643296629644732654220014307349047828799572680524379685994282899248399898973578542280341357936948869211379605973935289056415190886872654376343145005114031882476738464103952930689968098690893163108480157731092755524790920585553065029558596740329912935175734786212569258319427055383503947980704244565668163033470347260307206298322803598312064027806486396687037600211724162507576765275581359239394030765825437220126134087594030950879882340767231270142049156652071810953502678839466581101262765773240142835405455517741914202450479903498544748840920511044875260314036359923397797302146006321484133568461134426347717199002938416886586507098553734424670868920327037761606988396150060724528334696382377220395650495394789042800969200812681379287745012527441941708269901627392183815872910193580806825505628634089497673487464236318180872104219058088658979276271792614871312332755475162719549803022840204855606329199665012498214872205554585389530946622277856290987982815619973458891729066424893385775466804176825984248354465756433780415530144362225602277400456000843952753233309981724453554947879941184438343713524475240737422026753020850893525065047847412206864111724931572067317832911763035444313544507526495252336078829397987239284501392119660659574234886348365143356271273702765837620202427324431012941184758154507095054018201276382935321637173048590158373481770423621677709290813603910359830527725074028329146028466977188034839428318837360433840632610402030738236541049645707463834464958145994881030567566836632519292616676929670421196565781592689173822934650792036591667044114659406525864517102534103203144925450060084266134734728747296026551679848192672711721217857270500826426568654856401342234068766351769588842469303303655040017837641964669549235859244173820214545406823124119056752076793911656137493534922841082559616452241339221056986504465940264970841918491506484142692655951441445444452035489388922565501455250960778979007434855378068906729228354951142356416662765857675170349895380347866796751363610486041066841853283122976076286838213010181317442438304606876742538268149342864476658053406802312137300960139287411746325435303307514495590423680720387505235102111861664978808252378113737079472513526529001213113864459516122272676537285429098651084465718485177732734975127107909374602047081909457389008505188084353454875619706239782710383949890018861967759366360701164526308742661030494830692350154209266804686220267334665276034820993719683125126878859767332731943283884678911248865647503363542044479423710140190590198868340683178781182643118313297567873716883459907678805448493613717643621551832672308290153772128055539493571955561004752093246018144728410922057778325505180851130966722993032799846540446615950268705123320467370531621967684580352185828054870210680014083872754133463675353499756687225042895333708761167441747469272312843470865440228393892795243249615504161629110435030399298722853458487961643607946542566950437892737493618512160101357284252427734766342385209842195576527595081525764781671533072610847851111966992737826486009689471735347040069536866431249214408858690484079848103785374059973293630485598073457452170989967082255354682075716182434949729562593085965572119772798388066707323364955353674255382334078797119219223597759326081821359583389677413201894282693870993671315366468393846640451706011400278872678532178974936818575893889938835411779897971744413682491529570614270254203087500938653484917123841298478585487752709650739460207381459388243824614971104133212974099229006811301560856414569810629686557861118852931537690104537373108171658477077764488397523150871086803612342142182939220766867416385898322725121600999986516724243053399520668599024407466316489717296976486474930084625164238586482703860240173992394216735047551951138398546957435632066300521664464021012524516959713376115199209353056043653884413584247248087936304319973737365497231977444605314807660316058994537721219919697207882359289216151091531944618858514362042917996972881588910934416431109096755860702162260195060758788928307209939292191873892074507831028619206003698696941857484263344259704728351094763704598093733127308831743243448716941687907695629762447804280081710610207239977435864502579788866851641171741019838536792230517565057082844753261930120460166661732198205133234642254770345193786100880904650037735477180065388508698206040898343834653123921153181008324871125826785906214799076341653599928041196033435541012352550127155300176259965093238342246428395193049488685935164489233772379479035298089730877827502090019599476445995841878441936911063722696149637776959576060022356885071520168804102269237684467388233827755533286872730135668042931963965627740853810190992006470691858313181992743798313723922007769717985530692683184370208255085995335826930413151306269158287203732893948243118107684474995178673745296581150090959507389279574486231435370122033630612253460009880751299917456546827971874830233281717458746640948096491742416480948368313377476106530548273026934971584087886205299076581338276446563939475709204974562706028154990221735108797909446288782749010465971427701650151814793584253021741102587980573593312801304321416716941085007163863207210788337730035252568788788302846117833590388536592629332050584622401385164221220796501183354527828622913370624089141915378020391186647542394864376728481616903936271109353720943197786462472592168098672097650951629565887149097044433936224007499277325492463149539221287222881696310466387499500957232375762443562684142126511586266870550711241539594649173968959873742300621410917342247552556459249215678485216922109409153350759584549242604646347542383363304394195387833468240331398510761678493796465006162057904702145663805120908340390731771344448031480915401836288380774456202254992769455697122364679461652293137628843113778113368224270857305308713427741482432539016959395164488652656240513737274169001098257349009299797186314913122521363523701049139279816525965918850716106691299785917616084142178292263933946356395913196654198927540429613466604385344970708591162522530212409208885060075037885494224428750087067608007616442092420102457915319601368129946518112953065762481812974762351530182403560857636672018546828887790347775139281445385540112440883588408113641560050986895680709720451670768001885230403182631475641148531003869409803947892125578006442692010954124804494445355527299376129547772325470167205605637735722561182261763855345845826952582876397556882421602811108769453678467417289776423882708332332895465004147415338542798583497576346817104915770262294747157720242837765791318297523553236909669772269605523014708822340799496138992323997600211437680151269892244609506013794592663765512900031317329887907886365911941703543818257503106942756869093195477355342647390806457010751702798206778871582407888285739619482627173651920906732972626799158448445933917525408650663201887345289545014396998679003009155487618962335214055324633351638275971173309589227157960796234694905774380236358799451841994287232194033903103669601863009010484389673529989604110335443075134765878612215810648889809968540886828660168906603717350222277415278945415382428805971662990520583924698289970890171136797502998996253751387169780786271017555159597792518267806392017346317323626865157655996294866921037581597838825289232338203641180385202238255111901776640777406390844771013069777641332746520554636328156924887253772568512127376599630236471732315621434311025551924895554598770072599118483827153180082240189591331976687664027733214045259931964366650706035934410827193514159462777120320823539492524493532063593751630325022535817615648104198417949525963261603979923329170138232578791168792826788304652913272515263377453282964558434753759777275102260715342650432534117015611678312127340733367270898029143171987901011212284143876247462790197668040940050802481078198896727895283717518004428596898284866060979311440139589431145041880960601478398498342223134773771275065945978898332576796150289796995651517836399617849244756143924542906009905797442976785444876630362618755941266186693841133688521389544311965016954588328242806328708443852815912489432220768363272907942924804572160920478964889408772471937553285167486943946002281807458192828503988398529178765682037106409115491085664545921316368376187247432778216631513017719590943170447673258875107829261906808926981786804678901857236380770164466654682776980670580618460127437517989697231211894919965696649869765808698860034661255781884142716408726089436862978198012975513102788550906266739080718946322159324903815025836538027396834322322291210201621256260394047515921233538364803817154222843972255685589505423200035944764998063285148421643964946026316711327695629694220726320486991746056525585263157082723273715516104334500738694295108926464895013226591197003180370432289239310495243819775702787940579152308940001858413887204336955425969642168093752481693137022903714695011742037632600381521034520424809435385273018090982554504114974824090934477000432638490612306663698361423883610591049933612548278251177912345356048748375545733968767852156159779081625466347547672647972404566247210320905656907944710475342682147115142908126651572999715040321401858068311743846008473118615162037971548867934022624444618568261877243324279002272559316636260066145084495705840516951304919075688697051816615502292978073450941704712711589959179651083811072795857711444912561874753716841608685969522664298525520115887484059810950931048332782775827935526630606282782705568634244825511859703280604261590885596855542491316951346206453533579043898091056608843636113316317653644253823520945774239988861218198231728780833817798571683737040235604002254812679370559800124782536850784795777717617098661149176099845728696722902007166546995158004323634790175665931212565222923338612490260296552014334739617456810749094506019790722968077845871779745352245643395276377398330640224599841181640003275396856279423388388811987551204159729751964982839476983759520739648040633955781458751013272398444403678916922979001778099492454075339208645675410503245544584003554612750936574311804953387101044987667978207345239134156966734712208593608092614141302348313402740879234574611958555274778160024123135908640614254002656914213742026316577256067539465773507245380038317068652492986329080696151654470051380472109657570492392505432312733435683289274711251497005491468041853707947286482362064961281657458401666131792336549685233726346732928737970847259554308783923315245001661505307849177520012199420624345483878373196606089490749626036265379969777278165278614144858638107068224410564061300148075585759851127159009281531417298173542594262347009628608540078833071622068900755796976145552384001211107855201439703224728723793310503350693547592662679019962346579872588111500587086723152072830557959170786281293364120719625676613802887793654387255199431709117939772095445610529773554733869144788040797227628845013145671842117618464042229729173571077763029144263298794188048160871178042379107688353193200527340388712686053632245054253622681148464097465476995142093532876220574590831596961851090429564536177553087469713626943906735153566356844213563882650359753523172042450011022918792043465219557003044124316137243461038643680853480784840881024176192868216273773178167535698013957251978454936402910630879657476315228401482739837462125241449898223555410097645137834939847894616879504519029032878187122184290167899227661108133596416877309675490336443929781112628721689471935840979141185853515347045894048231666708554281648803418799339447731896866686742338200501871448175227533393949913302003685644504542150104439487321374558137192368539678393983796391180078216453134251760962022815991093297676625125720121710979653525708206955329624136425922317210476748846197544731605502377331446035900829528347464403737692726833337971948075372862365884193211627061021907678539407884028484951332882610675181508547100477662659523818662750974416392125662922102043092221441097613300434871049870118222035602701595878582618625836853008127789507127067588108904549521211772488564698084636360282309266185233509689377013305089399779389410210671782705259832797995493469826081984780794922477045027173992852058740933745389613164900337422589370312854951736230938373425451979955911925562287656709500660459776654211935521180662361842971504780867039384796749683466173641163359093836053067999286666727083553857812291841942202351976742012428475668222214591201704519361360771633966671646523244269599287211245280011819842011942599217984647909666570914419510211384943726100844790534030811844806519197767228166666401862641788120312663212209751415944701607984437273681007818369100008985385430998501489679277337032207473343235856856696115265513821017000202504716097385774429204910730275720570617552370470700076470469185041591501447694249583869562156537092149329772717646576295085523141145898350370682291835113054259322022514839864393716272585464280293408232650293500045176382523891763551168206481987584355662401203624564131685977567700801791575450156506652919666121328100513735797753237291422169191099330226276228074953329897911143833878306885823912759488524194461149527683476549918440389162974193599765376700401503265660940031171229283863209253661442454784721823040486038967391950629751102072117276390271276760231138954986398449375746412888254893613012355908870372799171305106166376053766735562610643116817121610569128134226468427317799185160766252504972250564345575894695273122168189040645429432994624143899021159739504055811914615797600222725421621345002008716726373284543148800545082464901629856079281135973537245154014857141579769859083347430954143083515165713656930416134652065943256780703169911949435496520533926405029291538712236283751545253651052636442528866270304880716590933753105932722350393710817745166061826748673616776599580661273426955797093940423714381105946969826962618111871631445774230533612818022991090835051531663077983882429078045120956003252873644888021742148542185630851465237495554720106201762051622128348562236973087838834561621635900534565444731766905954893744111346735793117439701867155093249296305185819873902105386330672820091356398872620228124762816482602983653893123220051022847546778758169600678278592106279349336312855509564945654103506961210772728233393858249074132013373739737757440741959277624004930506573311571263338832445511982469508704058662115240325518099113364825626810188044185463350719503496925423326843806388526919147066028951691097190393097283023948487219897243481075636949425291421739434362120346018065241088963030504095076229335226184569153612608275031627151722078944886816058042700744288845384846151520353931968179769970343258642177997744204077249821954665366886670371274646098372884396041547398477745207128352823311061963026190985923644794871225906692271436807029502889036396097742391854688946193703269986590497260440446843413116911251021128953215986755433930358558673041583625355709581772315216265086968506559656877440349123566106177609321644520544601527160888464239075854538970085348455080775080390419989536914940970119592312988251008310474777234355870609510957464568017062435737667535012657091155168088500548779608423551776043711617666805633454182786137404062441538978917303394444658476885811361888973764818279897244337437576760383030632516871845399967583580796116768993023688278021246361603487105386731704996556362896348872160395767001449042193868055060622360717345417467259718415101444577897753862712365926777167974962604170341787941657144403139457534817007199250631743118263386197824677958526086323121567476381007690883954511190247225271000939500702529013439704355694789016268198919945856291168271881195894182465047842207697543994237309699728938930490184634466757591170368904276362656039442615990253651044879856524999264752476319059341889012572266394617170764123921311555343411061398239293788584967107105454689017434216465946334358860881835171485597239461832718141203612892385663883817612232185501241632122499576717585415059447209992176140124062807181104811883913283364657056186304589820433245342546889586876669203472002719598304971344933174646569537948558341538610963567290878280289078648000462744997236028762965286499802921868936421707868254040743439344834318582540891149612454971873793926642199469917912900489481064368967315020018506520105293939077696669492766503706450258603375700717392146294682461983906560128661240848923566808208302026662173295573849252653706585531662006993214074154824282466704968238104788749121429217740037733121436459610144391875884910101638101462290742067105285459336119728890095442813843207107112061694770756662497355690895166654302578865932089817334907716518741828568899756575973788058395906190614532215688948554518088789383761501992277901379928631432530457102212385056821319690406451604780130794106968562213029030730452111409037748506011869140050728643603655784656333759224885919225945215174021733686614298865440200471379125989577573825972962932925055956310180570720462404299918768203712866608270136124687617711240509015752444028966001635034808912781851914141420346198556650892701724699610472640860681231964655666076383989170384985795142029375325645317351931444072893356136700737528388817071789503434715162533820176933094629468444904419097412156125893579161619372941716609489977866107427624612040319170220610052819045388961489849446126407080428947821684420075309880334314619184124801404516779328441506923640183561680225397315926322175067767302576809657939104983605752789922599510500328436299479892659018421046108645699183210874445474069134901281566165184695364575859195566859859106217751285977869842725036220850450769609958114718466567325167330506142788276967285503108062901690231653342998806568233692689326922860073475496838369328356126127766945913231980788651074877333659166384550861712183013309519170060481654847521232640709673534801147141478355125756816613733672467138797123858508703372962907092164708479527597016925306969572745730465672114059457703576591900128028025134061379695361524378626299567591319614528944972788716894818207253840648425716411115189626678347382441839031142026731559340714865852405441453772848502920215361800689636844085605157465627880860143804135080705857467403539811770523781466687120340920246504239294377607887895992196841368208507249459011373235160710436285772813462716343012330694087451862090002724516448378993516561875014772666333423943435942601387503989979059444490703724504925257414840424853509190038189612850408995363016157205844596616274645512811695568852336387446496715570160632025053421582235491429305591054191795941281577584393836811196951872023579651737469446992994631869937310787441665266315893369268100154529785094876737357084816311726352891129089814233302927488818274639527217306993752642366608319773621419042369287301154340981307544820783176164839513381407522515375843334498028402863368942773856946651644492664238384107431743305228055480130505152211629139630466780777214747156336713333354321757213595056936659840695584404212461829246571194212119732026027071238797810469103734531521840604917370198227827808478045457740987782987571341675401352023438197863057078512466443621717774734994167950595135960048844474857337267452158683871266306281681244536256982973549628060267640728006278056128450432916217293667388538659897700273302507732594653301459233206119717486956852703913943162395664130122537556583513363184778337627313856655186876040103968885813273753057324058735087676291426098927624989603960709053776557069282602412056559768989180576612850419017331363783661337510890066056928696575650392462865291322910974243232047585418305515288249313085050746016476096550602394005540541014541999565742527796981860333638453503775397183050398512286431961541086216540427469925376359284420425032111065027444149152805408487027862855465810911925915416043135488647968082818029644754448630064819218197009161167676030270148042238147406355956309711210497431496597732686723271909789113642886388522064829305919103149199064030579871945579003375408624767465907336724130136932553793840675137610739190308405321868653397034217041884937811619992903504019879854539492998598129388651046603423096260570171983817877303841073382376286121081362244850274027610392498015034187211057384942373829467291691501887367286905036002521683041018672276265670526527136476634496653384601038992530989562677616389937328710970968407760728286053245161255145011876708976162462896578140658794347194278678675106960023668813505087103452084719451639426492497732580905981430948157113282018966372105875736037982491050021493134647581175004541392359789111859593635983733195013752012563690381551150707908737424576061278828655131881033503022919501019386284048086041861851773757356793628185586592291744561545622663890274879641839299161545027125704024785286006127931028117948628772380217932026168533446616811718658074000158109035916438177423864249101336286333315549107213946123291449624995807632041651772602316411068807207638878018286097880486052394305730211566481604727450228537195722966346107001645496517854336078908035760836241501422976675083683683755499515856104650008753088222884254129145909654725377346643907787060972145211659679383131403595618581460024151451863965178434943663439393408665868763825304696932716850450049404804842648618001276309288195249799315035383117552996614602489979623973992311298973639913436713340542981674614197345326340986041534082762217001451670015874156220442431960771997454181494522646962924824669358249815949716894925375651705683879142419135061157026867111752647054873797244893149128002046445841590561874196079506993797108135736292454907863304951551201071843018745589059619994189444410080817180688660147275211756350100572789587424565281773024832508993537473418059055570437670847772016034348514065980231099643622085549244594068054508026869174809221560560520053455685042902737795582064408815199459016292229116178540522468681591878328872759407904168390824101169114656739189278057398886640330005956763711854485500575061897525369665305464319878627228421148272174830658424547665024918545369522854999535077921971014624661962778920910131099362369604090305623347188416205664623292485376293877761131649114308590217979782918476264477617718883339415864019798847976223728800464767506871180194440766843736740488100610956736146442243869266247396864570255016635055402753479638320932742765150310446176990793724909820440264063878843436318718507941852440986736260371527685691351527396714958834326362966146993403308319713001942191945797012301728804140086979095391389182548561683917641904155587586564164373506538730199167580754019955628925718588861225875973735558416557605195714475830992518515396168483577879905396207944345230846168176366489025799668270354045824035498129565293273977569250756081463877676022957440824695954135303155615059961614783882379089062898356522181270088260779302214300160769993934138697322324526579813019105164497200980786376805929684817429266875063395832401541921345218086229822840849353093455355690759340761289904624992101216910882342716045484671193240046899485519133111342036577651701101669901841586437979392295881276775246339233659331906939039578064624770019845181822838638448155026213223939107310141042351392670072484121932903558019393796061159401377236672825675155880327500903027013188236076444757015995849171786741610693179440803657769182445541209304362114289638940978913190562594839316923881535216611820461984674386110393996300496964569642076452439482450449761513192077345508755024027022013496476761336809287609240007720493510348362784170096122616849673130940932441481384219301493642081416702955140458103725607230888974755257226493345585986601525939745367664706013557325722305259239771941188274409528240352511906457551725688647143686531515319551250968427381560701662261677445931444356345161230455938278561829173897491927833859777239111708964702369309752491808352038845521598637018367322444554705441898405233938750519320683855678452870729658581282928221119333307178530481037427708388974062689852494329521488868213770135830235059250392514955544350304756966215578373392466477256054647671172720173206546879753954001400227856933106260178138517779402153386095489151193542598773095956104650748918373583603494552433569323549302490360195199866468138653388862033707422727888954052198010369999675347263983460372552624128622611570027454257266587567863141907069237842655108266551512988888718870220934144264819596541595279205855902138400939766054625044656023109019595426071923833208393488490036399702402355676925961146267562854507876313114957612471308819800588874396765535870829473215047026903065314846261434390523754397114275463205862278893046008134084279253261333282782958468536239213370220749838995600728613206539576138978179264371610606692832111545196087076242367057558830404941903465298523054907837283869653227325087518800940969761078723930015775517252659631609966012472779343621366157322945592700921228729511242262395966627478418162081980448106238420576163281444131588996469404426182301317574661624801784106013946616658360681362236131451513604190743718137072566811467369719103901469445212799473114772998116837500621967530005659800139605318956779002238347874163077878605244559754883848971641936396348541410574703810022581068218961737690472909944004878272488808193553254924040707066053498097530572132753347876487831832976278459872981617915095263887063879814792663446132863875853520918319829650491735188731534183832407641586619263136085582348903017495619300341602513691877050040893984337121207690200036776453962438278474286516523036099071120776778761546001140578752045055690672149338469103126949310102668548513414577229330616297004639753623321466259561921675690327095878003407059677178750638587694495043127747484893015167726210480902227304168725551409735979247810560664435740181003933857437467742439250826627375131933625172595492767517845332305776957025168068249227665182671903538912709039092724914101989724464380038257424532954811377186876169602558973678487345780146705574382417139894380179263701881542776308639141685270513813150295986620375451716962345563592154633019035177500209334662634802517148074181874468499041061164801283018195931568033252835096860176250876937737042703991887125645346334954481592483519470843665368066998778900528431060248995781411941734136500266330535803175044878564882629866175748528062204879320850996654432420368017465526813324078884726280611671391963870529627016116865455371628449427103111136848977256505413059051835826772467619053092489651483118293932107146938856548998505739237970812225347397953494701045076224230581972479029670317803637744186602293914863298064501559223964324796030588340749450783475547664981914109245295405423600142827458078914026597988504234142488153474820553478932172546397542257213352667549656390708666313581606658902136670480745622735707131516742522083713426223992898493189043182615444893375370672216695898486716025598674900623580437120905884567889583068635100278854268077453383190616089117093414585705410784381794960724913616158177615790431616408651648961831529392514451925901392668293290493187934622011591208126004799527278602014323482662942299231837490546317344530904663545645218879036641613864307015460936019220515322407099457143316817825056929630936724692830615203304593656969643113887858111221665935782515903395506676167449622355295161979974851255214084064047097119179097555671808711547235390055667609047277987715059875108963582021608257895316054033815618220373672169375692734219955171892545020875048735902176320015081305472749572907305139231446356503467380574424149233381441511142172630144933027994030812752047825668306320098674649374157359602907345001215938256527831897912961676516206176223291631964946073150796727633976896456248558772198968895646540259209646618389024353852550409574217278999595715954377442695907388459959262248723601291247037154781184506617339917691111425403043946491247307075718578347432419210591798216135668310552067542369857901016477217283490772685907812550133899756034540927768437286781654557684574979042878462663822209299426090200701149976772301990719770179062209976011143063357973649276049749444366204924388997596361530440753108853788380935607164134456236579763601162107191264787295122886745329148695203794932580111146076245514900138937207351952951022505910108842681016378387838506841277370337965895483498105384579023024605157605841760392507099424442147651939114168784956760808536624041181185557819271860162393970088323573909843534453573449918331021671118852410020682494958208189810476272210006929676673505679675376457212318025435934262573023992392308386897812510479359894496900500568500055060987244352876314009357363218342098040684793756734527472350689369017589828338506260994513373638398372135973557550404304920396036300683945408372899613323309357360724391175364502542319460552083861397775713860390864000768528966741567032122839866728313417837525970971135005239320152128338993359877818111912547031875261647007963585694059778332496080128477251985952522750615707278972727209523734977419079156279478584983459443479895785234896719495665433703497039015772903604831510377956074785006048259090843947532559805718655482224901944409849461360800604358951426679258813209592937982518496369824086695643218478000988305515355664497698242981942293122057779231206322127496683016598129326229324122107115758855602892840082531880229175259920656868181163589368011973756703852013966039276245644998431352282206085725737223281281874492843101480682270700670905133775878996975135381088432205339425214457146945143038826161248715439222827929669414536168509531274691668755623118369399540204299555127842524537239810279428400102788374012205577213865483418318161933590383068968641554940691600195964506634277752016647797187245443425832767038824504098047970705400789909101075046447291564054553525094198375961987180391175105289091239279995168605964018069252905682317785138994234116710438122932534873701680277625287949947798594400046370916299733598289374723797533902269670647265500038412709268137692136929681791675548161107680731341349808932886952618516558282001677011646819699892496523435916268062419803708268032702824611659058010516873373562595413949960325105998955233315961391275308976453642389977121514840371821093101873665333250306832458092136361905591239533808740332858624127072853183175913090490177938571046449954495968579386386303740177710923432974735039078504964637231591821343335797651661524869970057269441662925611572403338093851868192958514272242778537932818371475444988813880424297244753395849844029703020940335267405767851349988409977869273042920680623782809950484467884346585399404253799273059376113788536339425318890558233261209828351525623711599851654727389363085649970518728233322327068856066377723333768904769385326160523926262140002221183740689573191145139968933138372874503923705392124869115280516456456859784230024584629409407857889459382329006928747434835545870783361126683252214602746366066314578024710645634553452080029856711512591368417801076157659748688233574840294920390878815643579251115788248644329735661739127030827329677402889745373889723387770979458144396191654252779729753064958309042790021188196308653056766657303043700080955302912912510349593332966728766813976211595566443882392569514499706640042803718020608333405360196895573189438547744284570227784897467383672345747919880905129669584297121455522661753061342605074056526137967150959323111623915729210342182649390150757391746507106305231029797485985912211126056649315438578730064084818792489997437439396195028647428830972077549418974578903753699734048924579410526933082841700939413992404566159470404885861204408735829927064510138331497007424215229347318387091172185595941866113158703362209238975534672685214151362953147265697389423839084067513338712447397177359806529817838847576379057706340267712316291620964009959862546514903261767130717601995655762860038098159687089092444222184879932058840199561269278479158252096560474463454754581553847313662832028853252006605246845344758553834866804287399155160367368049226619957712029594147246689664273312151481585447936004284896229439850240659922229994726209888723003034941220333964654569783368379957102675716338034809490815718927083418431254521616723664256827232344455800509005152666500373142011999032806176469382338150219211649771230232999428543217253520787638548041380688085772623009716800314492607240204160381084045165805193563079754666692936606002820377519541190092512073941261011205042407416833877965342083979057526296851942369919871671800136092507469930113042454222484909569773402995483523251464308600628452313148364772919081782559855334651627420281529973883017901924982962881550041644906401455911988537550664321819233321001806781070307521336293037208532108410394617047128830322718671733341334076942330037172186144241751793411799436626323997425568036994580634084601575448881024036450902875506116533210429611871968400797604302547047773099009218966743215980499807284799599760853759990175855190374503818043034549335394246316840900074701969911671541011547277613474373315857805343288097180994023824389493569844068274788165502414713688146294507240438584524229845237196314687843391295884773756505275644129173597114866694528424087210055807798915683364679611833776961550425735550508011339722277017205975229331667548059070714336392023040751938884275273257893489662534506416001033903577582884140816578664819684925745530866960449636172981862779267295123347112136956970702677473212736263603923412504094752069639746247710688163872708870372600800460345365830954350367463818994498421567050557452465725254195946419438578318910901478593583722892643926473956034347080950090321801063497953330585477981843284615930398000166856513989544704119300649549637081885057246853969991215817344950414996868657752389897271256697286359029016737692155792248237258475552262045593594810439334719498916144072720616348867997892190631452189149511875128687900776710744923820839201451919676505194906417054056974186716506977429225810441038717165284384115010253008450846895857406653984472835647211689285355633473984206640118955791532996943578709374732037422107888673225533710125294168633061504140019788349149869067546757174141323850185754568922283102871254409967606304957996168466162921813900476228483275215211289999807275027495973044171547892947996749089959333620760042900570484816078484213547082351613254035738210239263734182247125844702435764840011374263368189725326532153675284219747245968456621781563049795795760397850405392318816199038215733024361284841184396042434968291999060308132997397211422672980359871915790340965377645811792684213030439611870080428266195605845196125942603879249762530255197771348487010501563198412791081288240527712417335256655144596390486226775913076197406025982425073869293191678475154824975895610564566027252753285383247336411365527294569782432222300190385874009706727630188067457996873545912989500246134166615645164796266646234728551071424337896274947692109120325004931169799153651902043814864822112788256597490838163990176649022848855506614031804206753980503447418905467142159938327067288625257311867192185946077462075012040416513944760880227758648063441901743070526911264359845151670807881631252072611418193837631944074945612230814362756357118918638828635256519741643910847717380453594963657773959426601083201855856291375332188428852808553368287832847480635316260333060967596481145367761915742989079149849000484915241370066528460276291955175572859093604142560043881516646583169929238631091199092957680949669435309834833063525831389615977112985430090687335345374476802086394558601261606195709326690455704891270446256685959103309486362464453651196992723799638372545224840794014202386377356302397379400170130210928912502944509384640379796145119988472909012953700764508993449984841061578645170897245487941609857259053783998187299778244034160054286063188109590535702603296059644452776534622694749807677741239921244808949739965175068765618484027075261927761579827758866695307284787815424228457787222010393062479572534890718606518546931801337109874964857279597403986616801674740889835285936781974650351048489809185899839562128647452903221873292816639933041322267465165809041194002873725704694852256877691247458188807203483463302949534114703772484192053089902140572010895630731335997815158147549635255005341723011852013959913647929520486215462157124627920287571450376918438019182120006199986647560640612232815919311009865284567689784656719363213028154670856872047750609527086480797247725942886504139677747044828075145506076931644327277810213615491941735352938270165554801194886410028823894479051819812176321109947007087136116048765659998270626512775854337669537573296974842753040821301299076559640560029695709648550212327787937499881061012793399459277400385713320333915098299106321340718525177837750327275145630661350109751995532126075703869743016618707167412554327667971246284723530458698048691639529169282926783675788869167537457341104627531141397676324960583261787280562198386547722206134664295469631628733800940078216070265477835675209323892253320235794963516615780996197911470537283752786621052034344657108703428989365680468457150424365660422658431619225760375833866001839329517198770009901879922122613456000231182973423957056369908588137577789769742701507181820064038958030645940366334202390786604641579506308946171338505563499839911438757632814770466235443068789486228958801717066677393903719991999170668737384113172431278806120780745519393546564124104350877833747218814014446341239383542717598947065312660250634537470786274423916479283176674488652808280910895294463455134075932177971562000394927856489391419911707507451844337060804200584253634565975203710171750026340431896400310443792114174934823749943099571786786533125765543776940376399973917149806488878844580968134095438268111444004415563256033731870540471465835318333072186016037621383356846332148052649198755621130490648415705570927907675583458139844505543150635026231971549361756753634947955446649782189679278263178882333240858481558709147189719071692904770961020444856717019147631594986933143355588387051882949059812846597163038737958717420532570562148197463252669445297813035109820806512007500175600739272411232085437668401901256835724389715930917810265882193651614207560775364340988780732262525925539750857435657573608604763063710804984018325411976971041639859544215709782363240249755589783303064526827681205809815981468233069291131067690965884132992812887491157025342089116391323122045403887026129465662767998679996613871464253951245569014501052760228494389236937782660631223157663752372453428797038563831195371847450366676748405211207854906728807672720119690785034893512545876132734755501689000608740402264175616361020191892726477131627575419498308299833286130533188134004956647460201818322876477222798439884646190180167620087649914358651201439453033477000244286847851982000983528984294562210211599363446680779162384926270330934881066577860832039534018301622704761715740338160452473982129694872492142941211759152742448547497559851081652905906707320995723561184183928810310490965279101808074418438155457749768159726682857972945764606059373238287290315051384982425257461414562847893276717121848247291183442908080064509140455121666721107125046886069153617334794626103077161381258348564542715725469327026941373918556928139485970596721192867302604492550195688751397520117923782603039940410243183466443217950094075389062744876469619525475550981083706793928914661419874657974251769692489729299141177084096811050747503905138016276521297068680522818893952276901339182357278390241866044858101192847513442426241148307592749385506222816491774261993219900372608502130211040697234252285696817001889545913180372517537344246429918211733906467981265696740174645022058830959493652509718117461629148642785191276600431551290820670362254799642206501453494821786597886767860654394590738804232777645779378046226672476977867300249786919133437156114956143877987906429144595353695584750518834885279966477649878661611748460301973094006623215374037066696234427759474133263495426352398508709312184699165285138953931405039633587550192850960269005732940978992183876766402526440222471895103102797655474638191447413658069364233246837826733539359260375359567629105565686348401609519312583933531953037193192442859066592420399102300237704690998756331791300715619553643560791667496570590009402134412130757449606155133104643952513185238553351899722052122865935015141912112894705021565012507703146939899977014147504862108448329094581722345921142191228581515979481956814241187100117754297557600010918800759698863033922945221859595606852833106849272897120748016957338798598550163291520472549412674355772544007144571659275325476120977692847370407896586250009407298361867431711546964442333304566726960325195305251383506125264473819679725425667722047954930467121358818268953013754380057785488280924016520144721953141258289839250003872139534739506448793514962868296384079231711374005154243404208682626863194615682325860820881415012172488276216907153878900126674302024206056207583810844761543968297253711095143018508046747337096830861555040034633350613373660085414261268698090656300149004045239198276172469956434276685815435534102058201439188340003798964575464284891867055097425526349544643661705127880824852133449230222741914084385019402690940005640842706684964031372987832072699850735033043932954631571505038374568544947352052932435711979641777195505736604487986899245172826640091011268974444656212982523018421377739640184258914582327744990852817973747510940355367894363709182076365893183534496849407258246176504825615527013933261537082100164226281942473309600685287643538531394003182413635544912248619531230370017778828234406950682346491882920477176608978956299309836685663013591506707036753783027320947704050526574657833684474828668876273296088071828314508342706006083304070054104783562336367429980945266874669202597493713903002413795462802980120962169309086505211309291974480750160367551882073565682838983353438320835944020138714555919915705642248611408604973471649079585776493265841059453654084457876090323006557978188670545522095851654403850669740383558198683944738618782102002443972769683461846725755493736297790789110705937556468104689302814842565684276683586771521675235942280751993419998708604874386493164068308390121075515926692484167978486892768859890817965249870783922031515327916771102101945439900853237395852894775513385171377458648533053094116814990174027903700203369365793257267724399508739506334512639951391031636935648661706350956110967805595995453386647205244733260793698046204363195559664773230933204594013784599635014368224384985646910736210980673787174502707045190812054491686681078033105875532968954657003116377512490039332428761217265838750564354809439747861893462767828444626497310431972311467819995645358764531653179835455016298502397711632449467081428975207093487236991942711121952526236040954063278066984768473050996455636898406557184267493891152105760114874104184789983185565712603469713760834961828272447946268047236477112092468746366184671891472447180494943554175660834836350264883687384410149559352164176640637650258691045532396980810720391483467721532417786612050057897738512303947931872865782287804584080161218651802367380645652187063956233254791514485540345941880110088336582618109495668959110805853914076079806813357715213701483799160867681656823427115943564575383222938321198600303657013333830397458734365974897785485939223667943926143196212247612352275497080825453706384224576234172905212206552531192494984513329665047618313328111550190884018319242098494740240842505595323275237380112091299610900694622233046495436493115300593572529615773169298350669031188196740168130112167913185004887476763609264297028609851753455373402611270550260639921889735373100948176505844896333932502409647756871391863183905810878164534905030170804989057409676024323629848795653316713728829038383981626119473935329251136868395174941393220463721884595079119127432524027834974501585691191747926378601147630537242064456059662343581127714965349929475094011042735055344015050896055812648331117111767214583110023787317009033723000255838204998879635720469490660830048057783847023345431285273551184116604102425123130385814569555005075464495139699033034007106466570444348005112414320141428555597395709183937467849564298957709224778147579250540978952204314180649600789279703667208095713027576859638524362800056023554202065045343080235132837971614007489175644981703984708585066641175528229126127259164453673344563037876058370293809268397944427869710002642324295996163610995721407361914763880690066678336132468101431048008814513319712839707320891241796723211124493513450838921061004006360719656896357245743308013260307982157591741960001484490287797581762142774319273289490638821818599609130425959691649431916572757242095380292016195859551340904896447465234066771545006015715039276711460644405434919320303222466650387472703708140503550192873158317883646633046032048921618806244900199251715757590542156805814047917620980713034297157594114290101943906274813303499644424849601470050155011074744643224636042532743898617767112826536137532559149774455836810090329660648758584816656236684098910317022375117894282066342073889319267687307287274491747647477232804922231877629166944648168621465506939074690305654575048038933520076344092366085215624302839003915206324251798268360137358259399217064972580770601468372505676540486946771058616591523418953921176863683171232223621547719139332385595263180276905565978176212761797755011174041058797085882122178696619849784549358022325582525989137179528973123645470452584929650472550794426582911771025036434414430950283608758523381480631482061203075452118744996392378238203637333112319774179363714084173935770022242367359057923340137660800406319590330680449287035952238361385020494995343574422262467960391775347947732966422442172305793420993093598893824321247230353206422781678717468392724240740436384020303867256719909221294134912078616124815462159547978898019008015028773892150779127091508573065525928255069992234415131384076033541507787122925325013323690098974864067069809955865810231835667106183589716326428167304703754104672526106342554609093830126018856226511885427999874829398576360926588733364316959051556645900516577012380621351375924029189893714900445997566939668085394548333225047741173322450230769342354620075317145871416042327573073035736845657525623698497269906232810997069313050787943727874727915707176061676446298353930114036184696559364340104063769075579498869822888264408221804427077240885572206827809943531098311232018673312084069640146246649202425747839031152267451945553505316529624567386796835206221715517777033839170384918320068926338369941957567421380304565420089984788025244183285461590439219290736618183688927544966751936527973250033239752000755777617520722413324398063043103411103853913759394472584674477947708920296038959767866178945362462456056513451280298686671819991103167825697734678729620392303391799726082143512289602364938582328462238152673340678925619730711771270964869153608942081504636397626837288428551497780150064655333016783109995167361026806867375137624199204418767450747798817214108673130351852545046579753321901764260262944082529496189794350327396627503975408347991926803403061856220829824492635581198368994138601672725692439545708231499270988387361395934664729665739902460791752595020689806826462678325594079855397147777698417272467942514212021949964810323923240420379254204407171202561417618272373245824552823061706379076403954360565687992164843273114382014674352092629731160814838065109727817104549280329381080347710636162360833625480013642019320230170611719855749720273538612611064446600058554532212428396674594591270009949937722601564698574886586126475376407340071919943523369164983986973813029612190721342593838494695126891995315961768818178221969881465202465354096797893784885099707384559931339531983143591498384296284708880916681425053402183283519076529375081221161379565826227966050938213867028056576416841521047955888464132518363408152164473418455173991188225655467556018089640833300009882053958687155453235665609015733252755856446344523899766676328889228298713040404997969443868706044355540929441891747348804673696129689258012551098735744332152902490390808945935936825789756229778547328795415104164911436251583939010887188932181071915553453539372522638415099433437817465844481910942109416302115168308568953103361593820144650187970502311027806038395679855940592066318220383935863663017835573720336809309914244938298963661413574726483417509585806495521394969433200293973523808982818467049687450337413679565764132252522129615228915544303022880889556922967183095787522810188590887089245493024244877328833337965623035938007294108159394317173514137115137362908480290752638376442044772851368638587876290455009275546215145567964309502862112018277780042996153142754428862132668149841163236067454188277675531640677252613076349700715886505969406980184875752669469117877063300772223383575712169804725839428914996667854908949928094072078025013604864953180762478585127342989108930091064063461332735964665760290991852683410296223516293285428341170619791179859382287774991284779697691971632668373412548797080095300779828205767324535223583624002054417630470749690755987882242786068416183749616583197001938932239009864916236224795433088152743658358721717656435412374780752112509993429513602576962826624152834962196839795774032536574560474078086024439454588294952707287611645209948413005596025800555167031694476612716801330150042143271242195888311809938217875504610686378517478762368480907081012122955884639233240275146396838531499209687471209170967830827132614732760139430807310299273618021171120367098833755974734900123761937218479614389719925105770097049510662831818584565594634569131063375011438740777364749865573517880816990065746861500748197579518470184137130943415343852039132967114802928032821657323435778007031011785808195194737937157113946400665574112671337101180300797704530735173586545969044769383616952940948195071705823565782865752922572418219354798799135531610278965504088805599909734074619118036571620099527690303504438468287328371330149763284849433409918902835463854884493383259237390822634196481429768264931541911948148290282923943593825634724870660329853257258558754142615937352608529962450591163298118865293753310228405316048260652363483066727232308824052104834693886604464218140025425307987442962337683046572576783331595559903669360693720644780962586778872214210490631721558514060401839719766574728213230483176170934191341072225453545672705581814942182777216933057904438011940989894704698433288959005521865257975580029706199768734399401989620860960091274139988280445469155277857494855973773329227351786610742534793404824163819730778932844890773924790895856283106927886329509434270016126448830072125270052520441165734190657404876090514934200109028663861442037583262815322495341425047010566723971908455735610995118629284231741535976801262436425296606322475778774722515841276976597738365214198052554662776349465130504958042929496326467091052561325552276766056559318675427625399057920824041572733851429993484431444171605647939983324659886943427920113680276881850389280913729242713344522959306296974646739090694298374334556995180430695584682976613163597936284541201497896290232018724487065605849319728511987239159122547430464625996678666359920284960481046201265999566070586637198526424286991427650450249752222455978939690649684513598900657734209404423001672005149771305767319091637868497409655395251277497795132742504271912968121077600749031238202988086106846266342836976992234449179379963428175421389026810536039597414958841926209981583737828605096482181584202723328749567743383567745830894726581646528352042490636988918499394099811525856917601325246862630379990663879204904428620900578373756839901847946068686371029864511666764673597393306442496706144807490225982235048766024623795933101905288027037716018417438223307028059270561589059940648660815055014860900945627748164280710595800854326849709250318276973071369462554647269345778125763025054322930113886666414178967931498695640665331913482720683487981590702010736545775543273795199649362766767351234220652687607465743372127441143194583761885492447977145368438788965384642644188357789951274636655363231612480222939255870145371347797380102029851172963596699547324114903379572222978374000271714055935992224194516645849041026426236065580323914366774090300408563472605385255334814020840958783143235271907138701559382238540831334228915929366540802987433761058828600535028378248516709799652313343250631648030959327450233146247254334198962090409923715858867077538508917092790834496977404912945039827511382730726347416476879499068645177037657711064708835573920325844475154336502860781760884916913412459985737537015395927514349776786324201092465113857563698307929774160627826851042954599432296049884678306329964163787896440022479109329015018485355858716538623091777929993726397913498321774893443562031943359535737292837403998490344153550123271663714084216676593362017254999236740157127001847435842323649534758999471927520040759522536440631133157003168919511581185090840607668393732651807617487680993701405903591788597615282300825968153369508981163585560074395905528366531347559950905034554049301635152149443189393364636390882429358490447075251608741710520267907352651711761380224594086931701332495441106682334453688435450247886326625157688543002152267415472844681966220255450554252847189664622083010623990380734182381123318263160241964560537242672905559138012096123547522803261628573422246219472977835135525322832131245620673462689291182034703703581242268664366997634675767104414411464358195909227081814878065980372618126712778401706511288766488798073015206158629917116856768926656417481728349076685947293019839749618259171852890734847027240372447256596267675055005468562437800976242944484369691172196560205021383365465937237678991760477334103714618767711454113695576821968454371433850489607873299512322431333582303826939660795275883668767000712532615497930432219385350405649938711793645354333810014364987338229958969608767607824088284922420762184329543489465446579565746609227677602697390199160204852982614398949568693050912884173696566355297514853198681192436742720029355979672415705948437878244193407707772786688774430382908452042708702039958042647286036059178585392632321343282330495531310089571103539715985671694178214828142513127172963380171702899640879117540263500344760131083875021009767233380323904994352550320697692135842827201272876461744585406117326898845808866144002750268767409573588089919566060317762076963669261637031744088369460367689729704654641645972830322309644865759318148247600936044084357746334647695225335184701804496901680384951449077080459358143685567239372533803977155628208315594278721518332767188209714312626350711478188180495220486590080908312070991367211926064563064136636536970519562425869632302204573655103755458294862437879985165324077467825493104605351880729306505223621271869526133209425184862168940877269160568766465651949441208284093025959480206985355120165791262267889304235627725384283560956214053485984469538427251539083498026830057837648615106411020705939932687460249903369642142387982182677007505400695903152778914653780693839853168795836060400633023750360628206338524843353150133696236246180188690241308060538604992498801520244020671076132414394525745917375903040076300895747920058488215936435497149517765326442774758283561640607686317348077290377093265062383329583484668342227778907835693480607854131887876137384230053765737355239361406824858837755267593244966262066513476354928711530600220083446548516962973523146543109501107352303298330400531128060135797859142392118084799290410514957820224534811711994539207386674591986270632817829989207482835473752594487546522345592845991743555289705789670610807883785555817667089824543745363046348107617670196418496153994905110088503510963825746165617784967853220737575603175443348276193187333952319050018396617456389204304329169458814878813882049145045515420394878452743832787352515201336096945239928845488007428454926097343188035208677664841657764595498100371679666701984029636857577380390560624532847680687183758664145834645815956992039648258855013469991014584911539164736670475324484004054120497417822001269932431446506813713825414344715947074354812902423973460288995380956180815491009460149255656456621709110452585437350963544796711627056817270422467668904143604807746744228854104177760142153832929712902444005850400958726825182348029190226513557984019597273894937180646461832816693444517108238116500579063971740934837982520525276299112957855557499677908354039540944012378145609777563551158239993172977478142469765273942203496003533155019939448780371343052278123958881133706216023073533635738926446796764239130027345058062532128321355743289853608027479210167625661453943340340855224613042678999701061731043836924332129578612150554318984705939379404798725240390355597533111544017378572526878042023783964749041492579040530134433708215364748250052494669403426831629200027841471923092285280755279915699484634345152687444842415016076558980807712976716424068779090749455841812694546253077335223714936816018798860288508231430660807380219112895199373215576445676734096861660607385774792255680910969700821530536166844429732019914141212352439805447589557733064546135588580865978405752806856295338781778433291060147724682788590663863549797055204638878727902969380139776386515103531996053512702859880418467929514697109387207775314241032841762892574315511894664484392229855245559617176978785389969321074651959429856040062849703902381712361894388313458564381245992748827517500527922581582061394151792279500963925517397974789472906036056234989414351766770928493437512341234591119452311329554638576559638492764780778394717725208390074051053067332111599677375591329985909900978458887046826945749748251005828049149462445026138828824570940950513910872247736791192352440956702809754232791651958392591936505330362029291186956998951224444022567955699726298496718456450891595751177015788512920286605845320765509838878120216238719765784927984663104537030364404722067449238387201137084424357116720182616535620147132375189277872038249159518337714713852916733752118327371402981561907218413212545294453414429621751180743583044265193418002697450378889062091587507426798857298838204691433132913436715068661705080980541106247616399922120354827977133706886175278799807496653483507333238529239776640813986208498172757189492338474990968751864742469402883822985496108203099796059820711558242527979129138986587799253583119367454660804544056552826132696751220123853755753913381433825165831238513156674672445243430443106705425188929642135723340774924145399748919449982917753495277583657587979421590939647429442703789888022012952724448349220196055519804731236642935015898875290370819727831864968390433868675056948669435667269624681582650147818323417558892201139873453928439439861748946277174727644803094799064949926989419649523914338393916636455040246633577341632365829835676218221750584160698416041997890814122498116658016238415296111442393884940174701534098184560212811051938444757988778908190196946643545747591606536511749924742064771043866479093245655689107591014798340791821820378478849945387664682642675654646586190541307441035547885146328565930578099425707104086831401277041245503051884976625293362318802793336133723881351136000282775102102199338991479148874878190208008786492360210656147462499250736327293350984500624675486805962689538814944443161745573054628742395810780988540256393840232277137099969307120429461033622487603010796337133056179230975836300905746689126729793077034865026444664443262907321073006404067664245590864662412341279760140799523974289940064242579298706070939695063865519479969874088627712979251234157680789518588425376128032541349959018961170739320299271001709066834786392413855697672841562759463819232600257348211571517418674501496662523299061108735656348558260420507079949265221815422856547248488283948218383483348746216936499077641940114811239083587867890875103940219412682825904780952428036166175440102556140184401797350049012603427972327129059922681083179869279589395302514993352144540643960500099795697704744195638638879999102122317808884976875427340341444998139012762779983307575514116216227498993191564183394407297461088233738460855704592801972998970651359886580952977940819099787377672811252380522558612452600675351032225271109774163539347193640743483126245821027647582760287724922792274923918773862892242383716732193488478368781765377531023416175748776881794797342954056217576600641415019176147564110098878870143406476879161871499022553728404693848755974232125188366722569827757830286505473192132997097862245898276762483197803175818611784286562525065537559613494997756733093060588765513569936158172996768407954476155662883115770062279928357212599789423492215511090549676803232534671192753124051266014269345356010646374310177076367019397151772362532919913295243537838028795175375265638436125136834091950289801190153638672512997651312139004421548984857464145552535737919417149894931087472383835753157017329287086883710489890361766504482061434342451516722777015753908800669983672788480528069479641815095267778042230709493294388819877167523082561384309707859632881616741137867047331251002002745753755744957515943020990508977100242595555091502150625847062092264097055313803858732515837257930573016437374712243469398424385288924849252305882993063483549875747590544677040506511937285146116590041353390649605522212527788792065119436605759459406925758136942192488890215252230168934672834212849952244992406560560273298920578230795188167880828356863062811807535470662114683299737428721012379880326459209658925080882468717239374212202676517154259324247898003531288013617695015257439751385144749363764328834142936483866850451069350120274672145135908009767882848644430795400034331025013033960543727655358104315598737440449694532711479440979658152732982751712524134479345320510472224569664004316395248995625234732021692716577904822170456992383543462023724318759018429587205209320956963180116074109474865506956311308187572583535288407554140379533969418625024704100247544238143605837145102020119676054759477743966125927616210255603358107017398423146514617901588619581075658261993090365464233412780777783692961466687264349188110345022574090714024514359622244216687022467379449113976667207940738897594455707711020143071821147595080763245494555986189049947648913852298238256542303053957958571251536024141297628934722474472462061370329881057758888454923316690008179986445334129322368927266783759809104685457063995467107593360021282933999932490365557725055585836905089539082577245312358205071586639673027249074362448231990694984331626007763550159221013730771600465362787433547822537928817759512431966113574436688746319846585865976800880178950685151389755107294812802086984998938019798312712447568164017382089530791406095403966969932050945358018342758834868503624388280220259923921022149440966418836235642943799793430917769157468125089145509562866547351535894399631185057067217104934995044694776327488830213043607572442186037335391005292157222961819725749577362883363407131744276635770494841900030301162067878202266665645959939812579453144002050976597161813254742338569914018336311662689989287907000514504483266676943620629744700828590536463956327773578974596834652798627949149727413537503636769923784562746080913938445450639937571621759284274998758345365177872908420577618926689206154403736027792628422904761708153808216377584563750500152123454295035869504608953928048825866417254202073875723681083163253294453338080093400531136211336317919894910409313164596468841282739568832918455618333822707214827366753676632336611829043262459107037365945974323091406940907397271715620832540882676980738579869101615328073712124201462521654717059272207226762990241130409239715900551382871668798410097466596526910440723372063931172169750184279551306754453963207645150899303304331670681276906452980503019519119243004990971912116903588295949446581902489664903140803492562068491911793022245988016699740911836720213753478145464034109655340268071533582597909935821690866077487063528206482304270356190385301314734954337576756104071285106279160417360662966770659701983310257244297334368896260471510639865895130422397472146735303904536825399347206700641989814596421742192092488838182868096283681325099004257078192026454414875303391473461731974218430649621496338972191679258323275211178251907134435145631888173104658468325439176234771950432086241277760619736320407177763441020316163592158398443874188782864795423323638506551437124788499297366551918124822467375245673314216775933350643256973612101313570484968850321020148471669172067053069592873888841908913131581361225479269667722193367695861460603624887878702786819893042834923585867795782471870908985740476494438346730915020559018182444686761618724590373222483947048029508306655253685690329305019638841597040447021633679254410515898372997397147514621424849763836117528310339848305923054704186502201761565565399780250974502925112949840526184059921977033321136914027780549260921143932491141739680322946296075563090556612619640442315736489800089932869001939230783643094628600430755361444418092699940708494917375946901535892163758573774519524140052839258428779771435015509450026894557182160945186910424894515835515082818719886698871583214929373447330581251269977413034971995584067722601401433092057815266779962947818177007053111158017046836468184468271668761951838533772534184071480961051595847373869629434963587119664804070392579595802830064133251679092417001050207918510403133299817759136373344575948203959634356701047404788648465055072165708525168985724714196380296216136168149150984539534438224648370254272757597669874305432335311672852717829015403152595209493153210935191002165566288188146963517622769734703667947376053119200491197831658310448777514529373881726986250114671788126816648928252368494192387544845206913197665631257184598948603749742821465259272575108613322022978234375904096565793282277746912729329695201524246012796345190213612913211547365562846362324663806313798044978750170922347875782301753913528021010728915595862010261283926282219557868628681308852379212455826067190744883905947626105878485799325004388305480454660420034943394669880952839296069786703451419442244930265139271103900146022871781197084584308567116641388667505086936184269050388548432284404828129505453931811863198148698987629469178431721776074360748535114858467236175067929882910125921001044468633429736499980343491236923106432913989178529139253095327432883570597242954195004903581641497987879417452603335309292699130375533846141487009767130796200740504358218047968952124325662925861203019182306024492594185253468014660666568666376501009030380273661438126637169101893110386612562538895576477643709087474085292906702713927771659231364325241497094762429109754123248745247984818276345316257964618437694754072986484033924909467732691520786617161469009453458371936270509734434318727968605421919811987385187161589115713204887539877050370908684247372753117134013016858757156165460719722564621846909157579106620045027300581374110433221855621180435776358614516804925627238643761229877477745514613498938061452712042141186705094943211251528174191316544280881445221966144459592840992284980668066279367236878148331535446231140154748402031015338543214162461967149310787017709539972015527088608581365741800381893719710605748351250557534203033983044931359695393688894286615694446900546088473435052040326108304070347715362700295113829267167374163719964610285628247387727620341486152755833676239990486998087660336027691256911247267639476552109021208329350423733503423949391311245234816979247833202244339063048499637820047914559301052582494496791132712345132146947468570772130971485371988910429844697839679180237216391983905831019836183629921331836075004463480255734592708238899299069556899848622890458944302883676717594932417514717747625805645830841809091431976440016113433657362948849057899787411814609690952801160190451675559521007644352972115416477765305438491026738425815016259949195718979997625397734160957810225549937663639247148348953353876090209655752755146209270849185986428536348767191696517436387752717085749004363463312262205662316150108636914952618740986743773094389010801574858690390383751593418817509091695651640592433526753351115918342454124117159637120100486392008410803651814837973985106199835169099587949323917402581241838081474815005116210583856153633440570517896551631604814125916638585491658421239307530116744146709420378090998735531986660485309000979742348046687544943085257035522374036214735820575507656685489723888919645785765417167521744134223904336923776769490395119755223707074789964376970025907241837802154430282714547798158668207960458920747526582092415824932291557486331468089225697944964066364131689077725375586367289276880405754068196294776134556757243257983993067297493100046397806434810819141694864045436313935037905742352409953919089918332912526949253532342172500254182096081458352127928894298166767839719002094762136777941993307142730588249635590172250252131869781440367235850960028769924100183719566578188831271380057107482820182150842824836642193343662242095186728840768167163117451998002677811755343146499616635260621480047837352037788901043606976362666595524981508857055395983678567477055944337170987836141747361855673091540771104554698291281814363098238170074507580374496397109384462452270122223232505259084081255119161079629777559575429674405105061152118010478609273117313131037668334146428846031323120283858769110373394560421112681858072619874704557625464448484472094676485042328770099384577096336987979458087715649171323211920492324922899206401562216713670253535492831925231559072237342912146003943104828515203332696760421641458883129829942210412149953891921809196238993274111958478135923413693263104113016822808691204119604027404247493127543856151115426968798910588424839059724389627120534509826325356907742296663238443458315730152228471452811018797034072362047171012478610939934044187299933468765214023754890068712378526841760086731080784637238035178402314174119731769558272748283072071776689057203835789268418507231278051931802717068936437438359687257790532014507897172290491964186566098170385971177108825418633148308709876354637651080213101596911759806111799548584972537628309640997817857688517520130514023264993241191663986952899848617036247566832115799835555883953863637516104205925541936084609370512315908261748074998391904302302460796894423667079969550486584844360192804512526882533323019745930847145386500424752312962260191261313939832624199763670676012324409852798917994437062933857302049741434670882336349912720244104705696511266932978266469813988637040555338107826167232907406981224147908225488892868922023145617044342864169597719413917614527084845901658777576314797304701435108285181943560975987424046755353597055691223908278930557346206518252044804047286875779268123774750435143824595640128714451088783166001543093469173322961010608508744689837619832920115714796729068736976584739955350694151882344370409725221994059753506187952560365765692911465795537765790980757970607108117864545070939147792879865347343663597235024586702459126578234434150778261590271561012049109980955230783809421779078861666075668251491664981656016306335132749072541067780172304486484938690514755654766164896409195865208445037611235159033526300899269880203472281861482660189956901184202721304264701642164836597818304404331800405104778230561676713162432734449652275284043104607948743585912357513073917056719901418073419319312732347972300943597833256472195862795990582514217729769053983312338659066833981990444720615544648700525071021418022687129922984447993704218974406288845463483967724579601458346399529795214344717956496393181319977030308021973949205211353138141164148513933037659423471119327410438082873077449307188489740815325615278592567524573811121935064471098011107846348330845384148468994908009694536656033728413925773900811526932368231908757447009176073747246365433714644989863155376812276615227282471806399417277202548088808607729720495524329618898352382972677027443335786091971446118058913568722458073400973191367886052499402645019482267945148663963699226670231600352863082322528371828811404045054479862199322395828495193972150400153105339385007826767431935822803418114710064343662584747995143038753931215194432747634213451635409896702583851389008427860735858222034338595922177126835716863870240818817134584801442221870637166252115161128275970616228083609931429884298017223896912650963401725456319946452975855643926402714866576864057692569061507706682027126588787202199216704353499201717978929341551925049715448905984909639587453306178660355639894679561266555886583535250638593175304733847500419920264528312648376862828182144334286194147617224760177900741697649020106998302298997930437142086520363906799663197657159354962733176651681235988029600941170298228997558785555236772184828019347023196137126208040867898628271657600129046468716611029059460376614762271234604049243428867816297977376748723089761495266687560628042459007037994831611410127406536392907797045281426541528240765366838045714697824215239288483024421711660665543589571137846651677603894858832279645232136343905901319514684586991805312117106686108556104641601617363339553370515051196644462678922658977946525976297751584209011152072485717290760687286701446467317676108148801398821884739081192448025030595943276411929039726993187758414077175710301994056277794467359164200245299021167674791627117409772459409702199318100694287098374453830968530801485756485630919684009748505165047028633443101662304124873031143680118097644303343866148209521663018807967828334417319580663222328152775734942660780265598524562858489958377290258305723842287194836816134792868423832203029014487801756200432280973019212779949252129970047291610485900659200537658319074508705914622745316378583733653278527348435223693506914701084577974119447990190286336762662634634538450547902210072477443303476160810577466732243999690291907938166616851296068527011407593921507094962106949379169105261326576504510629455385843457064435521755557710625797569665793020064740661370426598890937468328682934590336505282505543514545982359089230281937723540609637034000223288526868397699989486345125578199902980457558288551045790515514513804474685852978060598638720978846930751154500742595645770466955376382294236752177260397413146254270179504704070602578210482380772185198277657074424390243847381927807008096674405482570654723438579130737334936994088177152195449920433384729780637017253431355145306598347163788570290535804587366182431624876446112640614314496057917413598806462083519920018153018386991448944074426254341336788832281364714624669118604294994802333347450075742320625258641719668968339348713667447253815519489584430898340476544807717802168763251953020276596948033216147768589336977989254395004244623475815271732465421283493512615866400508028371684081658114067628519598087986945513908486295691729565929032990215116486737014554709959485311437038659784313699187784836126586701217307848803094983509253298937903474637154689165550365747512991291196864001489756195142926104241437309490442366743231951694894986446900547053977865098854386065772122116770418185095467858660408126618579747646430172016623369185518024266501090934121483981289997907243295968585128666446479030776297760778895028440005661175504430074209300567097560906381692644453539405721028331946203271659202608015263159261909569589011269588043398794148968917531467054157053138158048493824010647978016388247736717453883861451284566797053020364755101277500397094395048792167981985565128925304085303336775102011777654236384939648695948585802243955666314464261593207471271422775108369483044833333156507564826928126702588338671262074137310915247603549696200344589980715934709844498866318274608915011090542575252225759109511617159758783969189903354640148411759468991912667917577847646810141628967486516796385050844278665837272039339048511537863148253075448905611784376850853448838637695499569684995043794001705730751970123038007856376102624537829700609546919683894798366135699186880400284963480421386689537504688002844380237957712628530791785058914334783054673290708906134327840179568040043006401255255504339002206370653068245798606580273549470414214001663167711293008833693602174790155289258611305335275030072404663673860257614784126730505294903013637112227690755913179186793644655814005383945426935529943714009764922207194800157986464203141585697969946873063105649667231062292839711222140132088699173623229388399822377098927512568468198688256037375265500366712914680485702356567252245979027472307497755299802715025904707912452533646880361109664297322681619514647500100037760490813861111853890983792606525579425281081121505828453865895646426884601163467917273892184869653550955810753036770325002115058243530541570435550467699246013650762494399107467466490520928921348718305578001432311814948720879893086160334991674203724913173477236516702863075237678885309715361422718467067088648694819974652862353644144423924299845777619866897812480556471112670601044304596101899947882143677769037843708360583111628772756985548354734913078027032228778279499991044664687960265236981188763430435432955506898414389684449360835665920441285526527939027013820522625776328213222084194289119802299788195384306304571317202604749558653930316886202182198135141202331423699439644546990030432981565076535090738068881594704382225983229010639756810776276272546858009575776047029957164290126234598476303720975109852637582761433152072826597157186989444111001442874528347774099916405711414700839450809849541934845199787429543860800095839295635016215382435603944367879275710422993590749465037801847864201569580893365102390115203978821944371433378305437352330288784817567262164810746055090942708448074338409057972754229253211211128007250790800110311686421098723524193044430854050811109552348777938797210274953734795445690983273422393404093380940689886319918562271208311211389830605332632867929971434598966436002200209498286054767250995839633784689644046292530497138639565292424166253393284527886528622891578420524990329511860061079655157160742764053206396272845940672716104298539416349419727835318353843534515215272448422624217826568831971545304741609623523128129032752234421863884274163012042976328527682141235180908583115745389909737779422756593267190846666579948098173705658925372109959199644511703331926300658279703445354378243963197820072870993259404870089231658427894829074838082104598403180221453347765012615027272698568024025283139752250360459653721036885400591800563106635698537227419846616257742775105498407889704115117461720480955707979886059163078017203163214176666919022041185974457046260882296003667660635585419149355204600763856518129829403744174533958566334151752355350482849823054048770928236055948382039643642231726440394580628931516743210344970245928805113152017455417791305182313201389831446345280337193180029493212095177704512170232770354480429364514871092578771231606721006606944596009497756139952560421048184498933825891768903277939631380636086770995487152275295265054455130641334316072389792992045677414350651381677926491519717154451087647864614234646068865570525405928199047152069400436549547812850153106762089004741399603507288718288648960290028755526380426272331975296621062451240103613350987079822002614568122301000696088864860493646175193122767374503916324427353387899486128534188126907878158161641341911781395339103457379208558178831277652391358959659483177942824638077932513986039495298296033126552905250367484869622558227905189908159943270087455459068468420789855272067026655481524097338255092643488153378816989561606123056002263973355788279798844346264934442909052915203022487467633489466769971918570862091104283123639526417183740985894939622777528850317352712047444740868999262507230024437087570239691807552863492080103246030897778769336315080353420070020807787526823325050446542159691475212942906841915518937280674406860747941196222601381261218567370026827927018081196376187663190623896616093248325110257353331597386759243812456945410523206969237996211554095040075251714802842718077239138893513777409696005966634591994884784594847944963373280519966143304760309412713273719438034584961565223911734796408595171497748524305841058568077348041086193288672015835647121578276496790129115613048928268751523124064793031608740770758016149581437693584140201269802800821218716013497883216898474788669666560588989381745771886658655582932598310731579900073661991428375207474551664414344096234689224722223591558074561791648609963094160785635537703415033653971136438510152060505138710262202523719086718364653329598530968243115547290289573725825309223860501018309442222375432376613219157156720691189362338472758370601233110508441655766765274289442207575035975847157411570095192930002694009246606016913843875178451901844040283825860401035915037812064961317077274387128418364917899088266072396399376777511951317124366350607265786448684685077597487179874821686119443453010520664477101440870503725555711239703131918412917580304533890760771669322263137537101473872570467277260111067646708773447753245170818752385673627936274426667573551503448781889046895549035946094018007819176777631823508215159311743267752500932587195853166129188212073144751300690476101531642050247951635826892574829537361795141844260032568496954888346887224847562369287981807852352265937019840620357885182991744835489748329999635378583553236735181044547396943582649990075912948124555515378868404748823498584740584959940598476085132460429782420059505412735645126728775688263637197506983499340543701770565179397484747755354270823814909971691224907114503484497646794961566546902761656985533255424296921915261490127676326724334109001703865233850160569977471378946058559060454099833322714083333576139965884814746119480109914358884963199268412554379021846695888096372171715174039368563815685971936018063915394839091711098886392956334897205878043324428450877622188000835703606717191334854980048492876610864948918728320852800791538817032993235103720307521698121392014250209614888200727512900982974830952657788882738273657756018305318518508320164461891945399480352258512674094726081868641584281453834581633400754720307606421149581422116326089927468584732655429664785702271905535411594614587588275294261103515284206841026955749362826550796894380009949759206159851052462013610130208725355248260103434408389149484140502186989266083829924369739554707246080326221592446671619236688513655868803851393231244881747001014980829117935272511520597967424599979864470045099079619856851121052098720107030801553355166847576662237040401570526824670543241653482564642894565708437878753107062177030288113024842275762476920554972101031558124642523193177553952517051626486280207990858351208055788281290747748664380168131211364917657878650842098458142548530519750348827857148327504121107177099253050479788335230487203824624167590870388355932930704731887317783316233524465047264855929881661746812116363619553764399682906928009271444606043174981093409733642966862031554176073072637447062657563036597981882251195198996821524897265882650406029598234825580792824849609978532249055383153165907487829903009288982746507290664756360077247807809857566007390914305431124260902492105525073279973625699650621160551480787900963084717151751517335156261126620795009629648109326676949535096224829808193315478572964804722013093103883129936990630927188340671247721071079757247473720875685861338089729998006753093478106726256570501539657301197375445416265697290506941398922924055069549581335299748177559954985291100316236143317010160559370985778258438899621290130941340589374756858178718958809966523733636231162197389514283399386563769292350334772904064192606804079681839126107732865663615233807318148558903697295705171853789595814730206045960782919880615665859994980432776087692087325273616038346596321095444256022064210354066698583981402947503249878693691003397730402090850456582905004949439249018178952389308552817528921473176150613931141942696864366665292788449782151627603048391623275986904942435461285429590281865306580445788213618743285658026971727058358641408011279170368137850142237755962741710893006217299298024663685220173482637316252297459102450631289175245123969954685632428220979334129803608599441400871932137802735230129572833024671013997291420762851694966459965680598320949412397403549575736205325068046185008179841473363587420015104772484690193210923721497112123853429460344492745673874862382997149724686886217816624871689257602824548318398833209000574787673666004186311643372613213367951424139949719086595954747094663450940056579737623235464318992080175352812654266077021790371780814907938934781745405427528442693006491954418786743105572138155552753057057417012725623801963940957024604964418150292894863247504810790923636394837599088481635502511678976973162094184910762046494899539924977554467468822622569492624961928578728457089398212483592142718934288923227436530294107106392149834959061356701420670215555194782813359329133256508339331982203068424372516320741618233387637015015561397268682162428365572828427115872224185332389544160708086119933250636770678688664136956252216175401230851185689650467651582662918511104108859423785583227132528011061431512306652006266500771821501250298321821223701376566102691754044129246819806796941632510876952404172164933425403925785806126043959633344984570541064886342413251079835349431206798979934195282915553113904746981238456637512864442104029181011783833333200529436589150477513117152210490776321777903383411263097191438685272485372122051926705434767309908035128012514693735432054582482527934163069224200984946622934271685557091016560339250401642828284112986941608920338755731753951399623165613798417050655805240479091986963111366728545164202525544368437503832820429637990670756639415214244304895547933718847715271683533296061710563668924995388439580839694271460251255831789380637900728298103235270341117401929314603838938918708696038789291049748457904778203295942839413174834245105162587663235050739705505415745329560826703449873770302005857390204535780065538270761175022224046153207732438594642458833656095429267714115724586352860235115427340210368982640402099295316468829708261775758105002557115026360991296394919404779433605304368689892797902222079313274514161863006128807620823403596525852666638489378690741633017468005074724389202196523635173247733364242738040466572826258900329865099307631132362808807804222542325562358624871611787920738883615257836713752218576737172024168872943127582562686742329973841803182405495391032022727936940120052808509485224545365932266259358994726566819078183786078836680944332065041784656219036770432506174215495217850897490963774883401338696801274817318085076709118841603316449833528204009242304037132247946984052341591788090479162824253227997988004208391517160851053383661762492277876219942756003584873952311781305604563060159055361550982414647979306952751541117643245890236140150152268485272271067680737357169007960201868462493713374760735028535578903818584025091673161054743835980047760400208802553312938568080352887018163190245886037944544512794613904254607381111028565536881715727238374564086906228370862833481548082369992463250150196648455741672654452470489045303226112511554527915258327427976617626722563971125341735467050624367814705659539662681557703661277948845205646367866646951320918093134094448638804956804236788119369667520117892792520800571957724800607865047574862028499495673245639940166988045778533792730515929137497072188290393602238892205040681558951587721385429253792833112647190105953169799279635019841652787633487446655243689622605115138160285079972340761716993114530203669720339870153507746817230105932542370991725128263201317210397555422204587837909435075440940790622602122751903156848466731290424685923497170524429487217055214391145776034910947505765084090272216398958088587154724391263799741391099931971301188576300874811852271561693047722524273521126744285143772126563448304028326908816660747729362870075411813626476333846959140934550809434946909249548325361481182020073935036146400413938973761463303008869151711372746403788871600968522113668035868185079743130357396897083616491842068563323147631742533387070481639493857451931090785775883995592884537124862659757170445408755215812429548794263952744150636036666185936502853923084864054817866411440560828621305220903791600619813554462512367469292164519644459900375527958170936384865526550394258775996636635257750444061717735078262788360201739828531664262376753684264831766915835616196197888551429689583204945119465924972822975310104806682903492847810205043165506311373330370027433610702668278206196083576076867705128012227560677141528371053915214043250319443944729458341706380732552398248448195948411235948335148323367488478131798271693260825356881362915748868313147139419171984010562237875382730108209128380000112037074649274051937487288855147858090216923184127286374409377457197195038415712345350764988463915971639843883215287150201082861730459641150884786441542267882580975356537335719943678976090314294519782703130202599282870410037593348996732668652457368689266919006327680798521245467982150518448346785507160609394728380865615340779959656557802884693039898649453878863488636619624692682076679222687959381795460972317709693956742362016391185478702206394211603691662381259984518299861454978603231021807659904247975724358303936266320795754968368376637952623193955962655112589096226176547611662851554869648508122170226557504635357669447906602537116126316237453006329448132469152916698546767881368449336776226956275359888614526476864378624625012361614115142143931694768208340805656518972324703059426567232645357694321882808931709750240379560494282311101410599454320732068080798719958597646665314263966614878590152958740302320034667650658873194942164247150157644921854403993035791476225104167869517089922233036864886081087040908929324708547396727133714161291952134492871493184079729415899938488739624476065767114088635227517408058481958429625702419329364579136443956043661329694638025595501680231836145439452312562397573262069904435930876938110484125054245061776650773520378678448206566521585348244317301649252585225331939974790321951663662590596180604814286568007264124318513015117566681025164510443056430165480479810019601385811326021388387782226118663514794232837446320848569650627944106043422591295884229833546131461232484729985823781544093383498132187333176315602073880060032869278989954968423929234523199849293199060791009071008361760562851325203672035831891478837417795180108874417723399897519740949219695056862236825671643573069830799411425054392863915814537433460537051397815035329788297211677387931595086940098719493617450076706035702660980346973976355217749174365242874235794279353009657631911473524937976374088844963514603398658864157869178465449938963280230266155538366552160130808442141941064945641503612040212583037264342515639330829981979671841768485057289571324789955802973982188621479822514920948487326595373622237356037988504443183108277599846932732725035306947912010191476325977978162258838059640417994225566103416615526396890535359241487326118186976733825881218963725746356255543765119426586416410304307885093955293332333525281137171339600754370483807727926753222277585413433587328024481754352043230410060995684290365384335768938700699006449311769507327098840150359655028529379264549336097433287217352612768385350799773644564587705416086246749753138874794676148595151035582807219558231870741275528531648889529562812848661751194462960440716742647018720096219851606228272622880815284621022689924771291141527139526774622355543045261302560836902707494991480160734412005243696602955826812187388542620335686369161876871278787236497431046602234241883974498007218187305935241236648709889551817800180186985095186204079740991241958611510327679077651057162025974185295930287585874628709238057400420143961567293397019878963427708495924337328672370272244038316822387869032144909645436952119107396754850810325950381347658245930588822993515026387999700752353358876706681168227240573389872670545913213532548307234006842736560402634128856361964386586059207599586320604530493105726331796350829162788553513576435888147626916871594218859163404926997440115782718403035966351165291762853806361283054307167575106038984594917871741386255491236450522868163341816228287744507003938190443659514299343718732642947691139627663075957424095226588737309436711652752497732915360802309777779395894007724669791095910441602391617151515672989467615225782555794288902377435588328817567737549974765771445949452775508414412839116334035954610867613306582036791196643544310495551019178673208852287924972342585272956305076698859311265913375334856770851979538657428528295967143546447622359889830002062339275814050388948452404415950969236249856340344876181449685558090599255181172404514788415191124215925546708285486859231598825322601035494464600817341460372744196126165974116766751300956612227791651299144281205490088338194300897787037058945156244138524407939567614049748113025526178362256019270364226328315072714030123179114727836550311386833363398229654356813552305699683857025390943620833608255644641849088547337131597177787098620691599750938548810854171005848678869825576371006458858930129195024603180513629876963030583309383391359600250475376484575983329399465714180058190859430796257987570708719852721602700326812929517872002556609394297671902707918107511195769663406171594608441861995393602948551618095191364381346705794453386859686331353224107655501430440838359876561557154698296631936271635885046168060852885069355695108953850230074718260580941131920286128046844441061618782285061882961650912303786240562933935954956058110069163592873099227907855476874553160958276096722848623143823661174091128869800410794502696657002501575876673371948521418029447990336953477317015715115257208715765558528685861811973719734284911555177228903462027453226941576244253574025899763053922781140751371911079483699590296847707187987101310313556003409088979471349203065841075551368569841240730826300653197119382088609526915995704438785910624900691567582660427183898077131037554013045423188870336552038010046139186560899891146521299510296145239505809547416743671697937573346462659635747476555407402234125868300375015727304715248083545271620599588322925748933286098089247403718581184437840461898574230645673382303942543113293016240206164346476111297351131676656765152911450550996711365128062308811132791124364342030669460134459993165716900945604100290200516174490914237116371729271804072101546986054593685510648882995239403539701917920702262063266799071836702534560924367491810976869960149958132637931334345956858050270758855988446824965100966079895641075092094290328553702494220883314636705007477013319628201316580645030211218097378994489792562393753533775056322280447233269321110225055671884968393228127899054897359368771092086334350535078123191655462764766999531831252231381017785933839478836337555767301946605248434636392522238070899695325163484428821554197317277666403054671243209509356142620011839742953966628578293310597088824487396791521772519808372516967779444878135248400634999694499692543974408711698739527986314211758600713888572747465330199770683022606211060538659346119001043152815054260453538049359674720312658953758262101626112296214190721910038288452088021838644753316934703007577401972573643960755775061099994583225284079456308593467108469152919359384564040705890888769773616191448807802873156667105961484499467040827275233106500953537889806523034010980380899669092257708107433108882040049679107582937270266389448462475366318180945635448886808320971275139925411217375087759575035368005541721134268317197111149148259625025019535741747499730390290129885446600577475863579835904721470367608962489960189696873256556640542101837712811781583316577083473446179468462843886982404312940897509050670245947901860112838085816136761319282553019540241569498980190185043170544203808190576459479708362307457405218314644811131535347259792532838918060292058656205797242456875404287279621718574236677118585757525035551155644310514528445011880044722600611889403935771122862865573454765852392360624071934754009748813434233171336391200654361116521521242701390615815549727607830423757012129849020701062367912666462805141908112062736876379678763635286870297698523874090728160018207429714412227286742394961972888138717861679720673288041464951914162000695884739513368627852805316298393234377492738391257320405367799893513462133308409948262748789971434730341534548304530959027510408968561254725558685057603909120779699171118281916296736822653268871500856269436469054015986685019982715496481442353282240666792432511497526976720322457625122062453877535247344229283196312306299682105589874880628947604810301019282743296882727675906569670137999557246403127476101701366327868014660630773075192351934334655351062767537830381946700822620522955600588825948608059081639813649575245422281263621134965667936113435778378773856890760611245465556024621489035237889077883682111139134140398815222800903118199817290618836151912042927816225539978341667291083394224153711566031735108455236630682136271950137257671690641746098361566925583521856629561495544727595400285854725626602338428407202336020486709406779704367219435612047323987645645799735645444066448985682883445720231913919012700669186746396115265502282343195903608818026606482193065223249714623457776921769131406579730518112529226773594995375222328955713742110125328286836066544042829907298093401747824125664318180918967960989359443249159287476497467007211482289768523946369952969885077994556489636604919820982611387379940752391706119525787564639312046238734359419662372604700473232615513149796300121614436141898460003943507950523207846801823314538661975536430694270207627233984311499122086845135304357117613144702268730731355143844997102098624084651310634623534106870249247686981582441272248506787012886436485320610799992012644616226669722797547877099233894703301137933074539961117399523498295283509516357846835731864451754086678801098333890245231861717749638580174578874169434882420628337437329158616376750290314475633819737556118749293430472547915849353115673971589676516648684025826760179066459097013246729529294583844635923866804958508204860044171235912926714746029583796725457799946213503460934810467000207229154439057238176594129497063534595760104398309942748687052718421084410593017806866960278614219061458308981557764718542701687680295842265089766240313488013809843579368802947322898159844855340423461424053287049237851568385700538417315715557375467335382723586180406252485678550762721618562391335169022231815559156998233578691614226719468314429927448330216618426000978084991137564545247684676415946801552525853743631344816507475321130000487974767234655736714816618770628104569254342416735496739024305008169329098531398990581948749934147969956664947160333627843645865983214018349024705809672460206631122120004377946653781073113641559149097140983225676734190910401018911214677161903726918236447687785267869237757072977660222784543886230282349396999473486618658191262671630715201271068578938781592441859956483860695797649537023535280245105302434647192848756000055735422439313139393827025920419221344032111515056775214654674905268173615403074258486587731824427195916089719714724113529077755438579390524569588231076179397332849528954373904981910438102944870745045022888369065238551428730192214135013092390235442146794410741427667704916646204028959732593576810957168469956399732738465142711462197067144041780108198219445495944215922683610781118029922239986868045372752103594434572374617696435299099106170092234306089114493819962085467778449676935080400027658123665561626918505471288631218075805937295861356070358325939735756747391191042535347210091480843826996928937532220610942854831937308937006862581791449837486338749541180702590679671661808692662557194884814113131883495106015368043336863472887239495176238538103092054812062181177208468686469561487823879874880488184108907420494591773248040585552340038336356421739691986708177573813856621401500233284769387689091476179730701361100250702220306080658970111051872934760516637604817726551031994776894049240721001543657101734675338239001920162265296692622929822425641988917536720299660832957020686130827317612948224847282506560709767171870457985193887973224240978526348699251933948168029043406732460642948106664540223636076090495162421354468792813035394274786538332678666082469284500510473489155627555310188530921416532630822212529853685175103137369148524241888056595164837422370744473812041642409030355219708319125882424495496326888245341925471678727912752829415206493312232545472775164164786881867301805651411355610959277255951609110248965715819296784189243761000147391713813739499865436885015626115874202114980175771466481809875608081442612061382747224944351108001555710743992109482285803857290659857066596608604549262650224851651981029779786951124752029198388420883714206807597487609644866157272225082619020772198219761039800713504649029403297510124630959195816008108009320575047703823248736346434044007958160471860304410553739167676385281288124830210646085169373986953936053654672165111602200774761196766909902130483006034321730890985214339869783187371001973805069820325553544182400571428652168837934811885005669692468904700963823649603133704795587276572266885246056987236040143793297665130093435523123900488524598433375386069736746933756757649325196586701380488974317958877430717891893393440436657340628345524951700578568964455633890890864744573712613376563083641741284862594367516733797007819442584792560391385643166390667694081259474152095337313966104607153665075189616128830115916922728429460903613311313950080331894694690710886579855203036509188184479838628600425084524298689709350489050031443979213168521020169453832054550116964062956747994873287461801278803785044290867803202760260293923526202906248097313036157550653000904453793490333119799718479052977533589447749214217664219858196849634715340526290520417654048423201416360778439433565961482478371394777887194115466610444861095223692855273810192358915410202021834800719021387529291889245740685752619805028516237989094538895843676397847737535522316650926222142682359342103642995016639127279122055730603295426637405252716514469673443956649902314365558670329623893361966032312345577566763285471057077531184648576171941684774145141697810838718081745037187791143452099126423303996606605864299707869843163166560788849250745737841882834328008817045336922018472625601633132802514696041865402995949058758572261833576729435008705923422505413584214884707556058186173324064981172502464131554724182319323357438527660720473857685056681236375418706190849078848127208739507630812216713830229341870588750481527789620989545066356744596749081729877066243026247319196059047159580312437334843383310872670198038767305536408864542844824902459519172619322584047111642398295473695513239901961493559822828569428810926852568677534442435646563510055514366591803553033971482604791843370021750148402072790208018300430530190476382865087295933700504766997231906128434569044659213548165797933371094780349056254412190033289620084659915964461610330174589662240024714481129018044396762844010757011068125858904031414362891537157563965005257335649907808268465992097988589355115487180711520940813466444542920425857425444379280212759264750735489798773698323795769748180732912859774743996297892772772936767629997119430537982105866000574594565991057133914469302924716886473438752295719664046516287230374629257902727262724321996981827318990473527069196723349002997267538912763425459894563127978013520091338302570922573824435304273754650044448264624021948245125923224583460559669849362659591573338071274120433327721032868829818369582070335124624584743350357225079560877092060531347101559109713660012721466918288319398205284301998595478938184425508471841162524222132831940215011362927650768535967769573023933870241245275215738561454481128132854496039798317697992141862458689625722864952485055633832834874371071916066278754262783545993186913697099827543042094128529806525818965692744035848569905483836932809601169704691826867684679223266713280432188957177723984385828648534587280270851892341526228004733976246971966228648368800994798841044441852089375041268744494722601421335488377442836388232333258567564775301382018701200779658876589669906468364826901778555312237697325775543735916473965670701819503947625418731326497892350168449268159163876957857679025074241499033714849398932291044643730268174671680947899636308693044073821916833508927735891951243313844418701035177175503379762112966235021602023594981673810166534536583657283230173321664284590500873694805624069523482356239132643456565434428302567824550718475008451739310180226625090001211021586524383061445255739344621007578912260892396998182023614605067936977601652737574581304374402224313115309893719303274587878253775696607428712638885659804720118177988794054680853381644153897331606326224296873425589606296287631506821312933515569964784272058568104738647394083332022311005938628115858142651240848297727789103917958433102239873237094219695031947073181093023024012952247102273757351682424054587208694754148479161834267833196970272680772325868219835317658323928521545083772651407549484672928395318018893254829849553830383761479234274290786221956254458783685359847349800401224743975321019017701415327994413384546823474242593688741697157480728911678518396979326388569582779398807527423505640296295330824835962453100626137531126591964640567985865093890835455505471563051719850115034090418862947155121650622835705028610819899717888337295686736848994123616460903852816542058250304383986721620157249592569432501183512355359824012808953887166725169643455899923733942587109338391209172792039436943211163813605687421691369341842634895061472066729896593422861244683104486074704690018407952957443853517197242839901414155425075019094567026777982304399593914656927950181854992879545354948784355278854568295672974760200573236438033217499236014270109489443785926409440072167798621685520851920784828723240329713283417096567927858826960737474897484030193296095618517574725260705345119507983952682884748968946695736504082615094029838539512599983328149841596622607697199590250723501252066753950170544599490550402283694481505244413071196493910264452067924028817184683563626483329329419873570995932275674061885322335230247765696434250443277351051726646237186640838199989233508182594317828261403721739008485802864660664003240959036437344979851333685332521287880019178051737658269485651515031153294490992651816620501552142234518513897966273120135012863602530302670855731161137088104808606105559799849348606193072390376543738300701583130539557491576619098397334307191399585260713134660727994654024960328688865368608465687525876005750798776079743142041531289018113091089126999552089819638476042989714164237283715921498517525050534846908064268292713403830979232235308537751946655612582667843799040840642099679979153248560794483416476246333330520409783744840576597864197133037411308239751641995928701047091859891097082438050296765933434119171268834939778158746957290499192446765709523903442781191063963998007769645252866942777222586832358433932646826538766762439347290206298153576532812525676915146519650583288339047402060363560136463725948846617375412733220083926399819149639821472033983464832731711258260097060849810637428849637446963919990733885976292483940878075072054779003315598768375147550118748250083439938097055576028722196930742254541061321929856383767792641575774459143728773354377235831150833878399777921481346171760249505932697991648699909122144830802541832932141695505285215019568959514522317720340016926041589046931227725099448944707999374027591421943944605699815475814308196309212993373434755851684840087066242362319937044038486718454192931738364076701766488421023142318154346369726285875876811887441055571350440250310748960583895006192294565078964043980387440276182062463012288301365285384578108100884406308825304369508573742246413169101165692079308783844307392107669922978419170075646017188724251490844704966629229590376372981297877864241239572507295248479734551801323876540365515653382587319198021877594375332303874136785495201738742960272711479384193857347054808126990888902529876086162698783212468414898362356278269349834401302585480570728943527775569168702580889312582683197674367547789609643054012828958614496715893617536976016911864853349849986592030162537813502725918368491119404871581118251660584259561600018290057218069400745287700236620147869801003724985622209140517672968610407553347083504791154841897142639764759028677979459017502103362666037869517599808557771071651241184460147952948649243452742642074123574676963686526866274453712254867939382117812748970256831200705918167827718423684772922523358680522812677382828827485621517019513732343449669716978003083980008791401097179706380770571110161417230282837213374179429251549294541539028159545620073851325142195942893874090466131119723343504822229974098341494514113743206689716747998611176979665507258638062667666689362846061629071991711222195203116243736028655476933804446331031175333632622207924376484599437494569541873786718675620457237374596740412556634706883063233898287111754659662619484119050760037117103412052049685414679752677180993552650708238843611109289649950862034337764677186449960645564243648906255272858716300721120069488523632785198534652893970442076511213199304230572640919036816301877933521071303749667188850486316890778625341681252042335742033210009734131304163027391010293736284452622748722060334039398428094673984972454640680973480560331306135398362293900787506965972381842255827876575045816296345691655484619357338673102317432854629224936488041173353525081627427216923059841371430192965727423549807931108393369506615342378040972288611093100370895798235436537668580862390229843917067779453523580043016774761228141317336275516907556348372882527422189410007817415504200899872620375168453068516506866660392657142517573524250687057010711283865318504212660770894271811196737381354464855704614435705518197662883221826151551094839768490936300444668937813436694960061958963236395863709625965936845119573888725279016013350339214031493350079648573192374722931436077434166166851247826370220841341749883587042744291189382450886127124120756835780501955818121666559447343422143602800639123295564762214904777806520772202627921975090916801102738407456088889551636914762775100023368198181240869041027081654212452371963848278976923931650487783083562395462263109974840073037021663445650066086367428028785732171190525700953354303903157092751108160212763047544621377368344976583457830122568069068077319868930695712790527311384430418849365575065266097958282498947618625242423995850388050572408203886292496045225478188106316127001862222442060239870086773367042520100672425642303703702155345237520993535871002938701051514037026105419936028028954205237805125717136174162623520125018528501525608529657907502525663353739544357151797048968146707244509268062042443151894170362895597534417437102195003560729263737495702702751714053819835120500753387032111039860283452135129770766023304677100433454676095955018048572597974306395054821172448426336539768108875235928236547129747135792546687173485228632336057134343076167240083622705399655791494813928469029158325310456691223471514489766252018308149048215696477739164183812589220381307992207124312822420864129737662827333152346540967612261778636994300473075012557250407706904990822036925383262845575094951896472730346054761484243570436606973405355789836469773906405662324234579723555861417335820510149439788943455148534138778114232449634427613799598029543113024723288844489436174159511087074516150986477465545471404251726850987143201023177475946386204381064547647109775904046608472125500820464372656056876346221724305376926352400163376961509540165806665622920755475004188453345943472189656812335957367511219852959093168436912683896983763605300958375681165887906409037182581362193192638566186140839600590554944640874217284423712046710332034098577415964725516646534881498239562872351771144224437121180341549296121499536467161462656251606193277272101235176192062660778178775346337866477671149259109750206174387495598487446873131107985589885304098032228408075872287886073707380847452807277811695350481055027860357121996366178628758844317139579618466611974860679973768466115183947404560510553313317478506934433204602737588017788893564493674818443255407612239363109166078496421606414024856550342065115060371290265978003450667858232205732630419208231505798106439769341273803355687093973873449196019810228456522852257332651129475469293187356915259079587257516428698934540829620996985218387458083078267990725074434557418190746328332270283069796406894512935990351367627551383989609737176923710261654513466248054334988272897675110034857926514286844851810002236250087419836715731018354888304521623542296136460289926270959325012833322064982463789634466636773697573594787831446945693737194618494320153468358765189925371534270054195100984906969111018364487347876814193259017027193995031978093450624480723762031786691239795064022588312239620494015229207138746793557080551251222893175751639698474794831243750144453359207127448881409208868453762887772327647312276033177744300081372171333307369964983964330914438279773185350561599836030092354441384829813839456501689832478923643835287926785735420165491410708534743372752086102984753600064443681538162298852992104652890042868281095857654439114677703969557114112912885923494172659323301527752896536969252871795774034838987629055105932035190453623964597908669964595695251157910832681469722664725697378908591278456780985479577532923803080626020335908511162451586529087640012757602862379205303446354650348993520990561652898277672902543494130176140441324575384722677505924405556307111005071509670713025888199597869451038817266587517200666421138470189679825238587639375612766623886801425517491647773092302264982705931593152135335804594017696661771329126024581847003710876815005400527719814637306191519180280306358887482571770277737768385586678739903182257098609638959897581051695284803355560566643073664946633928133846146094726369610670510286714212834244270483390175467534006218301295243658888436039957424000117055281668537411031544162235093035226413606338570572223944718043674966817925622887794684766878141465470057932528157437714348607660812546159107751180109241554115598172556150303901761944479518730059138817922633670559761224669400254938657646440021942360810803178942764984614483485842465443534176696636780030957607640145704676770837410945420220120785415686902985649684640181080928805736562350502016763435900339894194605318803197352552641401809179691117963964100330303483481374415929787243663590924487487239365518168769100891170294781364518709038926859215161993398261574936843225334843303960516494316759682282831656137006200572019960662554914157436717499741346294132894120921859359979865795220948613456073780291316351347114833565510710898210949743994828995795067685402998650051466042257287562443791692948927649534764812283851370723449047853503160029214358771182499427353024068974658445629347638694798576358383659200525208174440499563770863489670830433083583859072835017801915543931263477840948764821995827108294191067036717417066496750456078192783840911589249536553076076276398925335332723258858260914835297507602920997731848477201220400966699888885582039762990759273708030687685082714558415378584135867501538905717160171460776691262746384726195717402076898429235572306845884999508134127338935089993309580434307411804194748536992190859097327064987682530542657367934357249547548540499368028519379207826601510496929719567883929254492146304384088835167385958816544660844201458608083277197536582881832850017046826748016153105819230670809936957748336964992343775399811006729123204960002995312845545328021118755357903416200627943468400316567559158351485381271852385070467429470029139332037572856799747648937204073406628793704422813986589121956483004388174903982743139944925516888433582012019489328862299643532268015202385420646511131528183158052044091444671361898430258573994616490549676436798263961484545185773692036672135248429201691270747371007893090398776995399022067939249490711009188987687040208469864797510328049894816504619992640922280300896991033807065580007690930276471482887622561225670669892366891421265963506888140467927361610536591185740538421375525049062899210545744362151278261697931518936347305186150605003530518159747163462426094371255044442352390265395881909856329718441154779694342663838184005883384256824253097905763448447382520358571975315112568580241280790284426041097000375053958707739750580441817846976855975153539605525896720324079931970714226543720713369166251465947864447142126267682905110393099108966945322994924653836014755262577428227702662346243033548825627094839745026187670691136980466346727479879273513130903472595951590073412816955300520460061517231427886441408142847634720047421057982853854468294277683447998603383541584125005147363600205153675565734805492348414584436989085107564764435502977711154435612611905093250531927564112822434066016630270871211177379946246704685158731003280467594775892192095099396671935106006671254183896437928741357919162940045407265884423616714676012577857770114468101850877699684954718357865996616934619533042905783425513897902397819133829299964442218836972558278492249324299184684460008834138873129449484373545263861847354502507698783049664064477384834861753936808783969255777847078857431612464132722330982002780741428756591080056601419177963583521115485282367458066022998292869689475934847467586210072382528678928731702623270449294817409169583086230592907287247267466597440890925150197507470911872779083573488554399899764396923497425925969657433019466453037207073034875090968777789078256645358096987269113745690385631132795708776965779864625952143935587033119839539841338168250095704078096521640909007237725441901918259116174301095611025973491640376293987428407114365012225095287049055442055383364571659460566058192717455040477269331158550163216389978935577737939325440127886327263456792293206447680442061513714314649745987487630128609432632086822728958204919947545098536968994062252996656605745092337374677022424707157887925506344205283986805389560051062594411536935328136529313457851105621060055086354463530529874573589218471275510495101589039999949837960266033629274725949349190016848582093635919646769011250763662796972612823962904623635911584895632513886019839477235057762645003977668126721122262579629046904711953216611281390600027614976496596181326427237528011778668403707095791489993155360628944478509902775781948224690445157471492028778184425341907959806448000377383951611229479919853791868518123203608839582303943337204142355981811901610712858992394143140250858498760671655450771741312042804725132755678938950812485844043641934315380919001057743833652719870330372306337765226236288036439793219003179532363612383379497176777331875070766208849269544398507406123942347692206281398632450910057520274778956931778522581877878790287004149233204048504768321882909547055152598874968114266714557087998467557353145510016104341861434720657479580350477533165904151794782325433593417118173846911336976660290066696876893395796669962266947084964311672183330318520555720692075373392616800752489152046690723992269221812918216010883235282032214879334099879300040874632390414545390672119889043432703950186847772166969408431656151223654119840178741170786743770476920353992676004085208346690397350815006373188452029525081704971850919349128088545597922469587185600034487491987547251249434733102430154417465037768095995521217838747465842648885926454421249639186827612931789210906898188597559221244466529402258255188193382651610964213725669424809040819427523515061678770657839702029256963874122054598199595039426846220758545845041925015734582274695146870891871157851841453988144965267477326012060004371694458792303029771370145449855235042350383957560782307834144482930148046302549804220349748447673755186089721508574790615524975600256475414020063472824795358111827135400982091268577922653974529463698238664451698724244932379065331558509626017645479739455030163304744773111269412725538436518604167007789729243655080180763114048919053954461788008371197278018201781357881954061187111841101184981731270593144454351828290021233413025151562459453873245400958300964220168767097695386623949609992237437939040423968920353855534482610669256351642539773789543775284231848496953043517394314053852665094189706699150330313202122937231478157610587373585666010190085014308906263860029473426784309253998308329729176749947309991515294429800300835966720472878160636178806321074063474250529520098079476944631992938348804567263245033441429454701510549134739739909214077151195030578769006077535266487665056488257562765015047675146672898306099960256398218671267622483610792353737544673062614555599814746720790302982944110776149309185420594062239937605175947393044589804423901319305751493481903819284685495582229951659512617915093137377683466944282535385548370149221623804511449264396539875419537060213592411144749186698920802499410366632205882243786278958769814856304235917981770331861297955424107819931960746021919912393669294189069526705295101765950675621861716259229081331041911056538299896052595143169142574880592759514235091753219968627100609266655152522565208762153178446410558467496059309947293688816810376289396495326254331081215491639125595713747081023274436502667179153118643128837194058822577589954302635163917364407468000929411530094890488369783495545837206311413407640742230949460512715093751482031020955039300059151981826372347757390433970229845365263762997171944792238170998537915578229500466247046001903276139116727481663949316158389303191907196304395282145593205619050052452307955785624064142576828690872711703352421743386263909939773941761710598495067579835774222379385749578294917011757410008151072757062539532816795106486555102882644848980889714107248630356681673003646223146731056018193653053608250626573349447243597858042397471152716462734588793203087046405829643063873022727074427110425143741874064152901690039693374797720879552723741043379072222719235904062251584118324297800377820618053155095193569709487718869357604021511025423609822850327514868048363568690479513217640753186142488939593963032045753009118180750823419270552228456726949287399571349100941750494406838434515683133118607106907673055106423819881590822704659754055710622475101352405242291965315746059139898981903517650822920281689275432236112897186706558372229088358569409337399996876755637421321507940831561791422028659374711584851383808399649210078291215143791721285024524682295167222070153465133914189192033217034854130466268855427872483592652488120801188227394268828015175763692958737050744005761101593780058456566788882452923186941661923840384643866515687454628998154726226184278846623035160893658393293875486728218092101470276673171732399941330012934629501999539376540971665096211894693614416020129357191629615610583529320925987970302163510088789555489976113401158990142668437877016958995629076821289295593299410116224425795936115192482080704071425262165970896218653326566279772264792539687182278525616747572555565014472354246000780126991445838331350240551189608276631490945684605694019285126746877534178209961609708862627421041236835207105368241486353555847510302598729250019364087696116228542390346576917398808701336537029988322484674194480164946730717035083027011495295564119972868897187723437923007721390015291271332908905513902222493495620877159641821309403938693456934889447381315941486081478247444860415218792427802186789352816363855328533103572509945993160718321997644267863129529768079940313448575268841678735848093124765447547240275729062170306038534798397556533419411267003410848114825084819862820931142871895754113101647593826953833502306925595794284593446832100525774583647932927725484488633063440080955119845107008031831675362192870048123032770800873532444370628386324681848460153764509809832201674429948698918639510885469214358406809977521323970164182797264543465395018063110055765674071908102817562960629519232211069705565223592545645624488840234088204559570017340799970815514553362142169294858926728849200277408868432928186594304775929482938026374924455872024690155185521260859409836048090339275309931896193219752767708318924472046184185044183373842165424766037949251677921825327320495796432229904816276156024595673844816364135778610046625787394338740362333423701694979551603238667604620616049222845855430432268923604331609445941574754716739876895028563436969910750007060971618304038320520419846469138778120552260843510183549796224644604676078353281388459171136753457720311930539689695092195019824911195176146270182899862716616462981837249010803171131814914361026021464610625276669812032973591443901533529184895099287548555212105714920842626674618394594229187208551098253175467557894454187623661805264349777775225414495484915574835929913938268867427738658914997179090736543767110655730929496935173530334290501565182704475141633711181290042900898712774470982959833304553079981413832595595550710543952651731820180495141666828464679136072633920347566537447454088468625608612554236230802886679436828576708705950168231362907664372766713896940868566560772506373866159741511196881863438286221874187039106696565203635257578657242589587266826474515164229745156554803473131452732479371056848012958949746007328035950444169038911901832701585450259805394334141319091857421754574942995349100033208814238556977117931652600373046659093452015457996189840061687842015935070070681334689117808576028882365580015546810642062695382641262221839044259588001595432033646814581687773391638456476057718482187290548236186278060604936724038825826581447205809026725670503392210583258878554969938963482501592858627743835766178447570229117135467558128636577684142246242720752591816343424945611364286580251363303096017883159031817796367959296785915034254742858690490632555925938196581501114219070240550940368435953288130932560989230070389089729104115245089857955868854578500847340842359365197633263199701133713186108922256167207520703501096391506440602773076995224809267189481617126628909511975193197500725341403230120510438732356265799892465134568931308180152842451655711703707418439153056920908550857520744033553285337312717555942652866900136485283068422410627103579048012424983928747839415079581308344302631940498481671151456099474795455102242780616637239117334030651141699561923703048796550666356473229030482897942445052692979757353234941196955478509627037193416718778003765464883459653219852705523326093257113191462748325664353377406016434211624938611725742336006936488578684772775084347045879823765984777727823822446468550134966497309457926654486255984811645717127319903452371978310483145960717304505650165632851436019012945405858952206801021760292947829467642331271567327354813514342415524604032393103892617758168792235958508481079689886505240892398623427036394913778678607778739502606358766446065062472657495422199857902305098317813559361348726826552375246049787715096826814468134072013035694675647638881243924417259521945081534807817658811772329351099800576511923360576145214424520071941697921763363982022245186526909016621363224044228560145905379419436960396204181110341026400022136404571343894310583935330492727864671686778051488464769135127607337446613111579111527959788338612029283086233994101183283381005232072130993730080599922508371048901889041166554335790328317939260952637377701205681610334152177725766961440773886103812463838259454492741510037354980557051398903287244208845683024884182895093269137208575032750693187860211707921063304822589114022425169498788377634254885940107200137587182802984791237579319828163420360798041156727255153548155781338680311212382504085819891295906650525572151457627751465560264850682077277786019222866748853785454750754466553710531396841874250923337548953130945630650914536557153158145202687825186157197179972451666301473176149597818741429500556905376311993672701242702842255334516243975350845552740625517665264187175922640530765638237462050431119610050107493569451437122507908766032727542628782836737282786294068060844150306648552905968051511273974602549359552193129144495949714170666094664095162987420109030146310288562735691002848283036465257413562452878855432177305330082972398496924441269493179930572324218920559096717659973414683389232567240684908225815608946459561837536014871475683716709427522179551748084697767771455337123355404090990076509079947525810211116749619246506483487549742757039193632746886065212479719948055109715737995019887288065636211378101233561755801578431952796093552498739133256777722881070215033271430567684583250731310290436690200569255885651748350071403774244670276014527313442536278892859335545351811296135253741800994070066569961392696875611337601573926797072896008260088002334943922519367543308109118182363715627197918529843171833286847458863196231072943108830244559074978683652615129006810355405895707883003899796925860069468099809867440962922511128355160194853421765534193836579811569407324629224824283520584777083380181332755462423836577363287684687579871350606904870722835291943790574200591601909418877287087222707160182569843186028191826036166182377681186089109676821430593006499197702769649854024859683561316238538470770694742015478759093939902423784822099879716219274535947259973281052809298528946078728505460750599408063659510069464646132552629793952569485621726538440946128890153003235364480048781234758133943184363206225485572613845317836193022740039834428763730858814327632346942521037653037081932102963164816649231010809527115140791717782871851641037586174118435444113537722794712012214417846860458630164912258470744319393007017789553997724776603671967326460985646124244841645755907732350254445267520876886723199344317554283801467278545709906117064610281190201204386402725090471834647245698165831372199017618740559965598147272988457279861573481120088558966052894614406073645325820882948251532175198848030066372688904998848559039783779498684899666999763999976357281995238967979450790057922987212795211141682544438362909055589160486539765126111227604596049362605019535311226280686934154934840071024076735774699094151690633881828705936832396309225685414162277921011437464737768231575288147273932928736187894479782720212843957685524754834080070531130288066884244804305537928246693431504593216280322173721766932028993316017966762536819366724551411029296564730265185428072767923232383211001821299421415861429178429247465037234039116655271357218032999639519980129353620180751572269254038806506280606831979767769488606896006644812858377916647258236428861112925100417826016819071968667399876262377789843680275338400503982913444843323165521147744011317071413181412710016589952649593291444288833323411760874284141036110638357773629081645870710908471534926564252080339417201437871999653993680708903829344674771258815655570986011221013456093470998833842681390589957438926621593854358074328456115993924213874161568030232903750749569238491308450358865110831256223234631373704408878453225440931100461959960115894774786157007185309597004331319022215320288229150183942471606508279715430170147940587443236030199538690151270107187482586006566327546870548217183238438896347345550053139973915262522257350819809337046425567872199896919256535524845470466803906526390260862171437687010730767849123908650737368481182173625279023573828028451391021945606957016925831101596486365903365685777299004808538338115524141080664926626315786256183967962534172157164884722439008885629020267253353046263842333467127879129334629963977205779950461390598942887461099445626432890430573532026098978895126760415266213713974674999434925170612497304514165078656335190410240200418238571606930186419662458326050232877889677339118449971253522846980151590412008469344881840932059945076453675115503848116684258845831259997420558057118202937315276000194653024191767299387570689598962204544396269023174243789608907288786157337201912285203866968577222650198215097916851982074504575080395485880902601919287276224243428653147504384068370199252058262320925490160068461805962439449376253891403839348471985573781742311339032715471296869191083734429656185091300019530460156194422317151829191064856187080438107502381458316176479099296397431931308765475711613570803492147608471453275456058759316437184620726822716629669110764936282544869009076665453569273141178937335814287271995381971129317078956498488973350820206489277728002250656155629893389929877654595822619832978065859370222265672981337156193012950237756251454274510777361092124876871948041967000394128913262950531633919375712707861068654213102154612928661273535717291093464127703233614607250641836245409624036339513312210071007191093706885192849361097435954353988127836950903583578850756391987318422265265830782637754330744834374448342368591374636715634684094845223756323250871244746329624827092712152213166904602152566729024348930080709866365534383331672454568462377974732697398921299373160286137778503454402863244778774740495750521093058666153757423472436535100348887168501342734814373432081950102001885204435398145801770464731893827790302369894296376673215101223348128823028736856576496920700811096530942083730379714046978651298595601708767285635566143043466939361023031234648241294494027989292631258741409438846101969391062143363185334073062281460788051572716182027958660560466865205694112385364719581513432994889963448439251109057835413668018139429396847626178514254550430197086104024408286697262979674454160397856789646009136577989559826798454077782037755713456189389724949683119128236294206487250853088649464106231585651280122928460516537674592560888028318522588290478101115236054673605507203619823566248753952140467960240012935019317033621882163574416045865803314611337955707427909438672182328823715434852066046959942235312826066768254453600469016982691702690353240249873957085850596566022330672044545903377552434812505110334416823675917751494008906033390365905992138985353376889656799497717508843900598600150467724951728456488763424232516774826032155910179800430694905789407930279952749676796744019423119735889792307825099717383606128793031919078674664631819636824329844817935264194174135243517678904587305622936792476405786907319306809993309616317373159497960712492942772628069229581078711083094852835781014287664831713546426043996184281515700168379382217203002548714453063103709877781479438286470627219499958263386353231527638728809265607165487235652703740748709470836288814957995702377141815437329173333759611512517988151045864347914191096367822908076994426211973009114816868673469495182046478838893398922139785204386768273403231329167775580732636204676904241747407265818789568360333728334847194813074489351301554807389800625241758943981420008608636962263316207460182682338856484404065424849733208816167463530671250127287796612057469582892274110824986141676147962284230291956952727119377262836189430385892939105220492995233629371960559843119919418896968608311788130902470784943227208994767799452053462215345377386338001596012566356285372751499780911318833587659687894168095233528543593705181875108623764298918273874125191147471191687231552264247087738301045213398847300029373994222505229058869852415823345822573162721413442617294228011308726881918706301743359461812396618417251238443410265593640371473186949083825132504112404813511609651218109928565447462709274899542243020696067653401832838052146864099555635362175164860497052281828780486139525621994304733255030129572289501056348856858553677886038657227163028542948326305592869537241039372843517478083879952057300551602661976268496172854467882820481992918558046654406182396554470019693980468225513441748791679041272335123319698425763624713079955329945179362242432599804736794823437759868066140597046606183795244046447191414632095880856731329532809961757297817199193226121613179840077032212224741344181903505642096749022539891382128332866373703861716206892893581029890297002216094918801808157558910550636430019924273282238172812110427350804022977838724145305696534946906318872935121917342507389154129915216434465135806038950013274193758266670242491608946119627006958142463008162020030008898055151539530389892835780369014546525133823962309916594990348287578156447290869357394841909019266838145182309957287886139191999884211045023123375827908365093087654919691146164425568666001213427468537781765876341705433081750144837861303305037858020988968411454790377888082212175515579536204062863189963768456449018290672079410401493143605243635992461357739787821825279712133242316632344079487163196443278642386211553215869213085400779285766644357180737780577115609295230063469036672301010493884253520259479608487008495611366126510489507995696825466026147673246141322457797217224451912456468805766766048009437355338520105496007633769582135498462657282388088761066292195256046353485536201558579124200250149534230797899989349213856598401213009046755278548147228192605527833796303337466883940578144721164418556801990854646906287433258796873528573757073808826020751437433879792140993114885308011568007359333183950963773314024617999047963324682224177596220000878270508936140810545282126220484548114925756321249738363939142811371868001326404773239796117370100356309368234416805969850876656843684617365058741442961394712369343234893274303310618340705407343552660830610645274977571537631023907207154388752553077797189350349291525715360256087762659111997273570372282302423100692904393657857368438113355363649510482600668585721645234582468455278131206558680358912015437716780262467183400122921863664367496450185377640238373632104836036174793120977753952662416064520471534796327282996454544043987219906887418387992122168835780006165005251828024528988911782735082268199558048516715816247107095493240660881548317756068958657701851472583056816649290844463565055351875491492961572653272988263911112135551069105195239245530387646898469800071973731648923357599704955818376943806223765904138409004710905020593080677116241335717561159223831112775651182704388338731957075239290679885104114653384803334462671806742853049861330063042455505834220297150776948813549170971942459900791524760159109186479094273240853429226877223053650078380533472924856284225826144428593938535053823143102852194931963719504220987701798704025241449881590058878606813143406800926907343552964409943594717827166919663311546966561880042201892167478000503316310140059900174601354264095385779148064580605928928630770932667114138640095673102614635930459656474423885610535387929081326940903055974080251399814834020372778530554124878060611714459127171009532496621267991774815309553946748978770824690648797843523586592490556118488352419252607848384459625811966267032437894774825741243341396265748915941802505451813490128504598229904740371615000691215407926895362659905205150959197035051975154313988577546208253824485828639454161858390457201430215366070165575365814353044472705962746434076275918520801304094605285014640506344977981855889427583843767805125470102406632756914127854161750753243042681952885602296082933329028677703930075231888563686046600963311488798665776730781047770685864209011822300751392663411913512122739946416490675572831495086966486417643940523844123616909531382203844634787975921029612930441935177020658695398416270244872318111215777299564189395966383691075152615321722938770046486104524883239963589188294178714251835257004367273065423049623865231028391375881450221743232765882988030213861299784201317321121012702169981690365845897362706198254004188864211317678065437305393798757175469400660318501248330676281407628902918004973577160881452588335196636443646104047901999963592757198504399731837072000709962920322173040442108357869622232784168738509042537084152274710945193155198057034800317306951712312272334596685647193818665517354716729879086212845993337006140564892208392309127678283806813320654598780368805255705885106361244383670666508154124569577965187428941798764546335035112831671112473574583740489616098345938509049644736581703372907428317746703082447564644926815303279306030994974955819983768536086044135460627371753402053918433047729910182394627678562163882192861965830903127626894994990876894800044743438579700304706678137020206562544125028333317756325602811751910044849054185346345772808461431781292034689810024938402710987547282461848067821588757765388065165182201248692631963240453535778399658940663192312190813746278801843363554643970376687201739404105598028441521672033903880426619804520423359929585539814830117270064068720608899515686778457123740925593131912481859666914160280483397010903412713189672673754967904259220880724676792336752307655759189513788522045734345731946105662028750428152961710554281158297648283699821535507881386872275918518551716205436219661567303682758590325108844368158685327119274874187800448908317932393692673705213955798818048791318881318193104198257767962416059517711463952589525399350953814462460736031585069209855567103347966624588029297659706926423141808929068087521075759458839099958072893777062170559001171837324662884151841990309856874057071536389473081239475118478291284930117485716163715240167496174932664341464323938350821061683844764966827790759843553273622071701464276943328820526526730451473447566669095158586176045879157265332679731379269099138232820255655396568661973839476453157469222010388055855260229641041998483584804433652361672516595123676501672722880171667674089818107046517440524743181026915718159703345085908430786482750188231274134426655548696914036147789800459293645023641938993997900605042828281546423816155298756519356740170130892193005580980058645540403547301895518624233644968579528235510162193216278793082417124418459492315218282181078120004602820412479477633006760633355173328769738414233535052275717163447047688507564787461536931449964097523452967169678731597484476238561471363327438154209205626056360600362895136188445587004816903560780716513660200273014554773498783079912523683487982132424198391991194932823614037136002370100263747740292800110673279885078920044873100851084775892965224001318799293776085760295594287693288905490024695758226590358768259005586604908912876928492977709698610355634327960688787624031820313569706756432512318963751590152590901792677019779793753240683388249771487350062699522314803522019782236415531723197010542839039137764602221028280931560480603120831357693081102552295437896372971646974149768853459566508963560939714408910981399541383777051609231046937330018816230194447946033022901804612443509845409261501474183301725099722185536833312228165150138245324414445856171990022023959104058485799390232269138318856728795782320787121910575839045309035117290913673378197096953165587245480806663458583387594484501642059234705108657772244996005895278637819995297844431885704354223547985971817439489020670908250780272973845013426566856284191123576934215580264198164742225739042458184164107246776725854444841286884039414374907170840571611258914190113310655506683740143740264090351787419553889758072154042184082428628448211612433836365931024648096219676928836807187786507774951582370551777904156373189573825977643876800435985765222298318612422050585533953527957895728466482831575612555563452504234250100568573816453095154265871630036061419904093651835239422248007067953125918695764927970548552714569532377160590193888991361261585952882926407301019460244068071761489133323678588625444314438521947383750682051586583096289057482827774027857468472103755099913028086173680721615760346129566904028495666669989115581053043476981967646952234995300333382367598350370931950782821039452838775640337670661893074940678138608096982025861833236956727270284922992596796663602943019229325258405837474218793012958365460780012176553617513041897192094997243672414226343157774024974411918055783678141450910200558342219677106111666521968865540235625455653419225789139179181110361665475830827377904182051718522507767194221974996145585974382933036432737174301789108335926182237917098464587022604721798363618588992887710027476476931328073968105610949185520907832726987268156078385887105845148801691179484939743179926671151018622154411011194476627182310758776518153346945683902290492455916159576587106353257555454030708751831844208582653701056712800511943027633309946257229912524479579727350865376150066125966359764443099629050704859208133039730524956605371378906144934033081849871075825594253925460029933140446079132671462073056870285274181083626756474532539004274818607278305737136671572112223981346755837206418085008966212642575423269776458855420735817036018268869726153138041797482934352738528440341937532423383384755201649297262594990748109004611029352201175208008096751588418370716119433477279881632923148244885919198273757479770584723822686372133288997254306313253119461867613496425373693811326813323567665941078490329347604812956367975931599729455465125167416665366689203210802429911245940320862492852224977366296209028987662173665580369619540125451571173405336761540738389365552819874923126494134976022080824503974071448428554151325675449999470586271330739848651483474897663152246117886853264646372763999073516764238332428504724967836048905523535769834714004406932597117754665723000516539505346803816073365332031163769338553002346559166543618405822008873373539005475230198921894946878835746618867518391786519666427209009871948821767142472392205950964328514877134321566438789072781798923581272957366295338895952150345803944710572606948704556190060323864915890615447111897189489183049009600004326335753779034298930824171635202547135954269751514988725559274615379021731562991288646252780878779394962736246711110204869878477123768434434311863086329173050742272732813612478874570187383446771051282966367042932427196280478339257652683388414453317542937565241991773250356991653413181216986339920420150822796298375412958543456257550543620753372809321933287137842903444830665647658031246122686239663377237034346354680658799933173033247619967466593946835739590506532522334542684632415225374084597006689733437058037761976703087698425196525266187070667969512848562867435101147766107733960745872746434323311108169135738844276106877217698286145213184481503472415631002463411814704927151671056234799356311059220900857007834004861254869418348118478962087710292808370166469167638500213351158185916488020336224611433394323657842206402208569570124153444293449332673327221548569392013321482683125017997324916044458868042922436019877325103901933354624515056102311196535642215914965388825085735816175842140892743916083948190086277462206280178659689084519615133516980972393896746162738591243953916418115956088122993943753854612241304298007046501397433956978611600253829685112596020345373250349775350576480060883621678597483144095514331546959311859315050313266253919732110011710834336058414054373125743735436702593443488020543950274640284757202016026466644157422164629791280708685816290213042423131158617778819757072610997310687971420710361539661866283068185420290267432173805762877204243159749986423198957524498613992153949056506794107175106344571501850863411931901498252698583573307032537170828146937739156043461021377940976173815522745864702876549337190701289620172631217477259001855619468009560117954823366188499465842877801743525128484900577089931828702522355328246410361430171695146488907007434333900217611797967673375962985304381189292285790879488461253939163269263938483240730859399676032599548716327659251346231555564811957920706719875378539175269647897778625864600353145398197236724423216111784690495165621798446082681180020051450001596691311893200080566866346754621816079876172838252053778553904662815594188043147500638216110473987764782473960196784695869595608279877301486523898116377281222593074381732150011623086318160570732971180366541434494046267134582371724759123979882359382722479876438583209531796165398866229859887988409711403762689413523685967687738813136306067654119310444032007351068331884067666818332552883235195956445183966377337021282149005216915459214545896298334914150832832300409752229992199202812215583690456320679356326463733114400000778484284543843755498261191760094503794486426420627780309660924047659262999495915144271846663920995221882215747074524885648265248118698259177845993550752408678002813210907307129550596568856520107880321318297203490784637966928179097587458863744033185280451338338842520749233924886751657822550671796682361091139713910744278456577465006156713338256924980368234735781867619399226167612319621309449651682171581791742186221795073843663043249693124049013430861170942956524660745124143733904696669643342273033638690321954594729784663182549337664608120781886651171916584957534498637498527975247351004911439046650539996133613768880898833278374208950765288205894601013369425680266003851804222502682792679000621133107361771743994393614871955191102718272200046454785799931739614923579174853757342936769552031069582705806478402554396827747618797610830862749143287815341248032230434727618184559644026540637880735069822516747977486528482878088578997557655117631582356135143633140873744015735493784749381974317256870133058734590503958825001944344127108557730092095517730227866693917749416300977555751773434636111251117340302991234441342732338755782559988415197162589559450412911062564746855294973669709442861263119594133494959077950652497369191549061204663701883280695045774890289247431735478386877946539551320052466860882483281538660720240223398087040476763803396040571478888708364528105511417153613154917763809310052834549772596843760893089374923163284566283334754688107782484140942722164466611435226368710646711240707698423974480309340490039720381576983911417702124744018817457665293422477071254180205807502284266623377921399573757686120209294909933182350941267634107968501014241448073249430965620786874562845700711203523702570343064333925001549261296789417697266095873669233299729228377383300882095154431745125465741909646294424270999586444743764372873104836686295585792173129840596211831650011365231033086764082356418877365937888366614475666637493294184161750217882182171907606393955935168885037581848836940975994374515248622981102044892285726514233140275756754360013806399283275722712834169815032433849281741175591670074865203815950370813022516419625502424176648782613594373354449557648762189635086773878205366246212692126260604326993863876253421906674721025016621360607184629637816220189589102937516071210233083280168632330922731538889702924386527762855244666197111347004474688001485247943733526844727644875919877728454036482392854792523916740030953438270056911131075179920072679455435326727160401082440803183581750719508667748112148942162743192092060561872796607065229057926459427714587302915629411470977954942252853630170580283257968094803360904764443890726255291899770786784101015012302878858563270758177457375356768459460241374375293443872304739011771344210183275621231273636774762921112849280783729515928091256742565807327692583928880879919350966764803379152305862739828190412087667836771293380438605417867740905920117887235549986167774323061748688544269603651988270844108514964215627277935771328472868257783054008309192316257224555289382781235892428263210992290235616683496386301760300582557643336408873899212277370367296690354697001126544668874017954943212425941756494726168365090581404655369375435732066077197633606576395393992002187221667788024162975059788248513670010789536445043730648991325962671402987701857112831418116855041306045165607991028127902373877220794967056291761587241447400371736743221954298480981527867543959119928511744300556639621975609401562304388852841057920434851439211617662197848142600682819155402497337846196762883046442552471426983149095495248487837466008655474137026861153922863619067168980902663696724326424331525261720764202831700810456053152129977570447420475013828531986168321639468519478895678031124124672578565591429833919437335344606170996120413953197894040120757202168568788256905953563936435340220378728642252868074614602618772368616227554468799823768578295950114503171961965478729948207306814676879803938802087082846601972666428550649348016437194584788730497544102049177552693494278179061441187044568618662889032327348771510905310363073560142492670313227354831665590494974193704266714099318137385733630762990425818982938367274184569727405695271582266077427000956511488482639109677779571437446066002962621501145287164985458315702639230475407353350154062914666987104721710275846571627573138287747078688481260885815107058580695037819470610681730514923087782524864078763709893639712084069535797929283650057473963174612917168607491899942380238261033019519793688167592691761890311000789742421192254477497088327999273181641346894459110309889168964261007486551032026433348662946823953712643073740879711064339571200401781883533947426892169211056314357587510898358234689759534060956753658301059412359958156873216583065678195027034962912349192405567325973159338604475175281233169098017035517792665459175296517996717614576891546697754932915017515251688253941121758529660294703071595757300181386808230245599308934308417929737601603334872821792567507372956879036774543870589075268013302207658016753255894951443384108288031655688491260842625185161129097637175622300537702128963288338930888818150182811316303727025064116698377607834308043450536640047951661673058559168365805442424438548891170872247252296291535175429192032973190841550503023464744106510058971512905929614465305475288007976531939812057875369862570964816168361782696080078472138528375182845498868505107364209663711760523256495798994840990747490546092205595383780197475117041711784674983906816119278027148121251018660728371978803218181145150397382795438802572846843382358659891402895800226014960691433777445892269688573826664604535301950839417081722779804212677378490966635207262571223470917532923447873820629034646651981056684162200741914852698186701887878841315193484443240757833910654184016377345579081768745025131608229758543098014771682622918220624453310687155787349638110197552242699862114365009502224231629062659416097727833290156202352500719708385869225653885288680305798939606671655334765063317422290906616679314477748477870040445963429169181668408192567689463524317831671474338491132302816664874435116486190404284579089492337715964761255019104449717829478597830931639011316684091044007805703659993530731750333203263625876210558670863277688735855763759500730516319048365309933566023956377040295109378543270365881854936533966182351023798430245883007744051367796070690226627732391093731211824477885792156549703250124770254919716160316864098648727194593437850352711450780757524199388648690288339826175031020911677970347670534418662710247383142796765714392043020642370035604595846353028182862327723516490252474314633050102334505072768937832533608576785089600494583133825058785874532976552681751631285645465283738982147555225927380254576364563909270962999467190959438382391153956524401607872792275513453313878913129296278435490173432599960521915126104240737957199210367143834332323129331416527330198650812996077924330446552505017188893179356487800248701086856901040380203732866959456898817330576634977648298805618964514187869075094508020861538415156701479896791045177047320106169773605391644295479417217310872987985846296887733002397014831888156669811736406329345120832685519349467731681325658945647499239613882175169714218233427677071492437499960485495279806531215979049671143238596871506399918341521493781178221375020458134318479426094245241617878380231084471720739614208793668969213177059963817328479314209997608489783140811195529126935489122862360503531916666845154877408885732886721614621855739285736494223718201035498843090574773357605080926220259736315237540718452614518052273920828520232535957442750083500786151399819227815945294021461829579130698323690949949674667161201781693506144985696187443541262040752853812528992986282056920446158634446472478613319851574967843486388181016844367218489665193097335666479028849544228298878654549814490380831436754868774980202850183788963634882223591928345447682750765133115039192940946417721212534358293018906570156044479249497115367431357157466562233672243150844736712705984944767053270853753361618561735477166091162292542968303397142422159408005549018300122542445930617445799607858605480450057648109476652489867594097572412594835112425618653974872140010522101573354757060860549452809486684095874296297572008624521872680630079257748024155137200453784060164379090994033628024587903648386378451555622600343394874844719044887532408785350842626970642004483047879357255424249252116431752582139598596980515842555660692280578200899898420428618725314831580108069348609937678373144754355990779249400083321611038916048497306384688643712526814185429953993086047277427833351465683103750310088507224141343860693967681380888589838915055293937114692221721035298415953166412000013298697103925303703385656252263717152958766661660318586342644874252717063204674184990879720996657346246417629991351250997063924146901755505030316507325510895001359238962952688354140897639733032369075391691678920893342407189814954764914901377753527944833628837119624669996157921566336131885916077908574022408220547349572035465053340602917557630286897790107293125159366362112662337178060237880705817457914584632566708641040667744970203712327867918964583478634139683220402106414564292098631133568573065014476406243355286263750216273073925816490560883154955242189092885023534778895688290608485170271032010614741808577347623376969673017106200816612035345435051718883168443571185809933501667836982821945485761049155641700244391542820887495090998892335090515970868180298292696479738774744910285060496708840619421336823314508106566059726845468818602884410446966636670094712603687045118311014286107128355451800227510097846063351552823364868563614525261948876567769185753142961833436623387006139991373722091895105377286680265565612090533487982469447373677368017781346191590549284334041559329089736125275251871229050050859113845188769906526113358323075162420129301349407913144100160329915445303709311102282118312149871556963806646018743226645871174423855600114824491650460805564093442826085055819186666614336549701949901192890135478577053944716144835532352147977068794566946376771158971178223930088963660202750633026959808388362755365272535602210765827301823904035178111036007665305874015183000475160300256569561778495940340676959381184812980850130530637350113216792241749918894368954306767687251881197182006463801041777734530968853966663911687152395089025639590942504935317227672702756336711566118797358685007730768637347794805654471826578072011457240304464571723252345507351475724134019656595551480275154487667658506513627786409980699600088381582254942382835379077183005024205952743892623238831672152543197755353154218575518709157187702538268465737196605384268905075753312498917942202080666831730032264924134134540379444331631251963211388051200343264683524253387885051400288816928741046949968304632863418837289435481893928693134252023495970913573283166495695689128172632911370146130096295136383461142346661467457622325809241333387380444167229504051244144792438148114853391482011827527746153339015148508934291102534945171937097880750664575227065716019585127749909123417708659671532604796078717367075679917424397530542913174734186688975603006954791216868468735304542142369662155039290113727579386647253727729130395451095836801878674442077444879192311058138061384629054931989196836684551224040661830821989460101846504726088022532994398810699869211997426695164085156611489646644884848385620329019598944569745810517472208684637150227539523929625835587388861503498482609793379618580172747514411079257744836076472668789457449093345071443944175852469163831544933270963000271791131151285005336638083403431551735841004036218665286608576250801528634248659477059804028016146555782818123179207011914345903321912147589614450875009838993448295249877258018684570071943021648409907347563241802311928948563883227479016532487579211484849573923026882437244102752097057816574450058821544856929924092166583479011051705906478941341694992201586846720021488523908009746032369333444960010471933641289950047225788124620522288578620257137892739625691216913328616038878970842328557947259241008311796157961326296715115585445490642228964612044226559144611785873818702606917918778029064248537044770338621558837663076547084852747059094592268697082660834614069936610259029313756101902980170811968407803079970195805816696763626435125890036760977917382808520012100620250672823516423922555830751269647667049288437542394095300974188932650829906518648885961036770550537661333725054088029454102458036009199675080544781267832182447659053748587664666862602033961502556472916538926450755795713686619371423853773256816799527900406691596419766587274295080702773258105307826579201017868806177606993553100323349617020877675865262770532984564295665752484692120065566395655901965421797232481967102510188602217155979965012602548139006777164620608175798908754670414401263549804865282821206083763167312349624563860391116031413633060515898978557399081806738875703845502478748639410442727172725978375175958128086404608582923620591251272981591496469071227132285266382170448902515279071527553975104473615179343133315413343115415033994165354851460405950600764379803301539895554728257724478689986516493851507272278730947233155053420064791421474405083982238091882511007195954246135255794785924844671254663369476715401175314753555601286204520332817197794796897682672202991629135953162747705944693462908850756730452136435007311344994026325234994869380759487434677980217152533527509084943215413131936819750659404740989402789657209130913078430369387682775932406601709189223455901592030543997521570669369235592978661499824994809533182714757538863472212825637175123919757464894636970814668029062653956266830745624039247878037911077402592026677175709893624230397789814122451784123058328784534332717445026028385129417868046599163483640417624411173676670240581139178560605311918000506609399698041839738545747840219757600898643161833575514809411629827362057723599965475373090117649692471205730909974794130300658661807655774558458403653677740211290320544326245074929247115204744071688442186066869165498910919504070738568871566061805210990419431505953516176505296041027047767906578402338278511076910309781441055913941109119647835966742598159027440341254709838697783664392184398144586015311070015098268876045933124954906560507658791375172175213611648743381478247519996883110639581242075013245251958379856320537617461250511081048660928095093186970945384789436720613088862390890738159794575490134763919689851697279603421434625157271872057566988185678631016222920309869584346724712335278995498407208141703601865462629446322391168609215768303761379940468104638420603287779582544512829998230093664320995355823350206807160614060756665891408363542996605138728383419583122060089867607539482016967345243662182488997522210401116488175425975681600543357475147715050290449814847951700752713513821330807689610321074163368178797261407251979303800692524983712516943509859257930951773258170292869916773474312013655387980936107881669506110055334362057353582401212864538239020909403645005720352984598420911408528621838599656840929318036565266077883228216169611074562764611425369504601681084246438866101964174994832553874187489786908138696397850722437288085658347241856511056285904770411660505546556611756138156026638618384422475679393277305718201019828418786031601176969564189847172287160826769433023904746603822518867794818467710679436756517141000037374834980464740060423752239119709233899460547458559329548015028029462677991556475174901095863065643769133748944920578792071585046096636155985348378175587943366804420587925558852580644669638054492297194631333611654947524203152047976566524639167108074498212306641634483337733986762872610192277100130427183067852335193328366655019807750913105169610377380943315798159057735832732040482010006475401752855501970637045127951321907545542728991176879846399794554159268217602201673386530608777099264529773535327150233766724415757459630195152365120770310068872321423482109278057824872573246275959722756038296485734827180127638533375975547139159719132343443322659502901871463414942916360690970680769196310760450729728951206510783627096487886194196677402223063749366196776760279679320437694512329782032525883256201628156404965199895872343938303707429197906967511442952020158617853385072000974947783493758920792690662315304660010412874489767567706769854720225262230584603769470891650230811217594499846989243015502484322667530050770615779159251451731459536863578354929262366531853601654411992153060050890616435390552091704986144867311061499376258944640915248240846915366884970171647643342943838887368577464666012018496125603546480046598625368376980880083741886962799311744240643004906484707543406540600141892245550021575765131647397410354830927685745250480728440688249153646731243073653647642644754046771541420221692337987822526799946792370295959624174930460146403816648503645547122337695749394344533607316721331953306705761924553008554122102931450400809134291397730959057951559001771970168950378457545149736742645723463659338992562570333293658894981334603767991604993946226243024095084391092780456030213756675150057114922450923432517900668946578740603340590000151637298846693624834589699380765716184632017145488486981925410006933067629633358045218032625839522936528202541374410355339593361515326302015929645729455843522120463877850320138354550452342922549401671510574003859475966697122856848129008106670047042047684930765059676282673780352531298746038132064700214582141606063019861490056066661193139787281941493742806888409613864876872168355560465867467253972473511960172914198218645145557469151746566736324666484269454269911008532697614760712028181847610336180237528810726538694257810508518162827156225639394452743255083381810132614708713624391775381730899492486823338452762146756114453359610942264424571691435593665526190508369117194605387839192092246246575400401073085912091472256578995384942328385524340006334122811741942665760279781103234507318795598006249198695217943394824727098867082124366356069635750534555474177742682893810650865536667547709836535850022342836975130836597941821597448068597803703582040593662950076206582005104365584876949403479380735645950148912988458705391578532814362072299114735711212575475653131466741968184601074600007542252710855338396164294805180163208486181103636781511051398354520140899252842262708469123094678231760001353847355605459258962837371324733106608218797658483848359491480806554861465576168556789862839126104458628759846003422742161698462068348977167295172542829472511634303890820101114693027898314519280234006217268576626345146766300570833870999122386603378798740856250300277010262809100591850191792883990523310555038023691830033710690993715707383954217205757273696406445003103752398543132672440638491442765859480854078760505321207518478711546584883080601946918332633865957874700271356466320109524927239392781918252849515006975448622624714336909494038232909280772382104739852231823617528768464693879656586601449901014109431596345597732300275734086607490478541394465259616948764045570071627992694353441775444141156250898294431003777398311722963468464660622337338985795689404516506288739099909378065647998747447268205741588028336555136551812191517765419697468596316214796883605458244250633414778278036580162064862851848660587454886495848598160526193384298919713883799440958508322027061507040601341595371349335609925474251554030883889686886297828902222376144093897457893021852627562431701304816397925484311523842973475178686202585101095748405910614228172202073739371637430652218031273305880103374322639828809262741613340956884272511438822506622518486434518625610374961487957731515734139150616014542851545278364255985554291790709261273208430683894195724045824355437662825775138592227049953217144512854286159140665184445175273847173872963253644593524967061295460887527893627137999990223746901464386174307897944272226994911904661031419197982079853965873417224586540092655841435565692453982084415716960190913639378453905932467280910887114393433008985411577543524273589699804845208280766980719978140944985179132187635970146083044846533985475652300794632006151663058459671646335933452358000135821676165956444642316409820698426828830161168519847324503011377682829900119467120486719546372054666532595263352199772958573070069766840177371853421810319665758544596471566062188606966529296009513321757812579349453941187819383895788548448361511910657410071408671860375604240939972942010485412696203292131868317426604966989422747845479737796131789134821872904632200349954042817142051201268576049572305386799550937375012720207304327080677248174752329217037556017694928324151171982156948734290331004028733919603622910357345955278475347542983064437453856488055506722049668456587086617271824040619229016695477363257786292205738201047479146009402304531411831807176982136399720266556454360981483155534749355460229795398035872827506217848783703840869342309979930312964516659117272727139548173241010130490110590945930015292118649086094592170936867527693258295183575994966945992076900035406258581409559741817822890390482755944691012293165236510875841513649603007492072259713832174902665619154731439905667066661050827334611290332749477494788984492451425415989850998358888052554760423252122081643553508346205768009444180874938940923696589438551216283416293622146439805432209788098726481812659101089233884366882380616147122899501245405931754846403911960118438178351493489475494507005552630074522904570188837275949308312443745344812118819464204416956252655405499366991543656439073534569011974510239737314919655637601307388309637139029273606374006880855276865623939201536973843590478893144681321193753087482406968137908154335807340106391656305045665232904808077335128380403283340647598568519635755759957718504546570191898939331303832649914164851844993409206800795401955668747898577920380698671742076081062883017244878210039493544211215301253908909750493640234334553023917699481501161246790718070351320698135409452802177589638254091177425857527429470641814446577624190639598412378862331962822161726819995240675132064381894081311291624019930604197369868101804722587809985815364345465320097640945267573197232548924516015312751258288186545537779482145152294880378519689767350499722688502006007914534606587387255293975220145756064956805346229996218232114574526255011561748146906090204558425941504745481932879211576543027723752835327496414544835616154273242357709712893742268109243082636510886341031711454124500743795764833612187478384354907063870778869181639343753825237633597312571954983839706360762156175699955672225947422188355917914769100768453299587237194366731024537107617313381438020675214937397641842309521660510128019382120546755206834444907839107076173957477253726071199433276034195124455449147057507650894040015955283961483775831675954190241279108030360580589149444358162620098966261313484518855716552104415046051201406179842004116772045583705721593470900980086227647004021893533077019728072024583392964753299741755696452312174997627067675520723848620299223022649985404614566513709629496728637609555011656911770103784588158357301125554804794794244854363763893016761370003323222228798131420805245568136990390032220171752011997407751245969074039324176162823238243499674534565910758997002802585170541415010565091673876738388096097051004755081098495050348726725025568179153782997961116042043061854068476427553522513411596132372596814069760519655150871748691152308429999093990271865829573605610684341735909363782027865136972249133659944182773794512735727905977364202295355900952065198487674006532672150041182407395780437908779726639083533212957555270743253486536482674312403986355236133198660622119321712816046772699220766085742294410137026183007859646268473815650826219803983992848936560512641794687535150791321516358430587964644627133936506258303243429143625378489321506445959937255410964924960186417823599359728044755287320893206867995196744101916123355821267656955816559010485495124677700276251535278338740884645348120357540377412871494725985790824804588699908126358679237513106197754558681568898894158113717727796305955307278341089130262822141431514118268753049343490434900189283272322086373628836976020796867835855945362418256445807836520741777206038425159220107007286807635184278546756154661784087546157161043491087455918742787655168096340110101407223748711289660132563710723269427579166542133560000243565907223920202370260885335910756477855025318875055654542039813991972396196175521861518856187784534665327845140872938569566816773360245283571128341814463248691625098308015426863613423289532846479272516279215921257854293912532378793793584286657263805380960123436330126272277234891997835790095342746224639760589519643769316771913036325309934973470061856257912503148943515191802443719690156622171839483827308243916312926523817369428445928881913183822314743856722189924967607252144857987956449225138750636699518482964358058878204740098722880755270098487578620917356724487596281082040265706958352868345462346614073982878190840777370422022499317094089539792515043186282048079550598916724803905997617459039368619405307198899941904482185965303419177886283389094842428535826331589828258638645695549111019944537014157369984611090182824063760838161298722526870331211073893189945656169694091848198013829371233346821494252596640200307734213307876903055766349620633956214793172874148832269149035256724809765475075920875479348946652331121432951909569159503444418705706211492090764702155632525550129370442035442316784115824916522954380964436693420851707297686411790673084846279001849663769879988467865225850802473650604251938574387141505454952751154931788462744937421835355902916701160021132938680823423067257574024503934102872043064998497996691946748679599175620412262913785760795993193311434595247547635380329987552992737313211551483484116689163394832081547906081557695596704396900057822206535201668689866566286110044467960784880273925752568097386066613864550937186679531882883573987665699916257125459739679274079924928134694009755507433249806912412331474830145680324600073944647110500455783852901894651925672659860670714726426213874902077888956698390747153525170058848627395322953800679336483795707938924314973804640905778192489550193323161993233681273924568977150534059990452801950563988530813714425598542139340406167929312973757445051056977918983513171474326134839913016105668352559125208261822889307172827002589929702851179850593614875311234705438511327023153514648879088211010389152128873210967824321921814034463819512634487409706684258135646719372717303832494206803909257186956642909312942837066071654524354119280539938553525001638577491032743441880467802358239134792978663457694348910732431053992626791224369953913332585070591360021910903249318566088508025149296165369130767433987397711680345625848607342871471189885647185018103908370117361518317022117209290888286051877625589917661898555734675669183802436981700159170415902122291786392321168935404421943962209654602885885609358822547229016149965773696307890111237898020365753846669691417837059167249500422815766458378126015007978999067006647311841424374619482843634489318106385203915611692674147142121302447717637774225297867655831140661823302957316340982470630541030132708625068297486935070664480881373277742813499423662623330391343319660955867681112413596235015065419731434878432721168249397235958428090542586451700216075747470728537197765826833932798641966314957338360722471136692565179661736650262374499526085927784404673430060527641971761488659162324317339408938721782471456858858481833964350561018463247227401945638748467809276617337865861404640008284046858065966498985439759367267740273263130410907307048757775817282636097860069753072833385593448959478065905494488154216375000359867811300566288804746186792853172362863887546767493184796455889541091716113269728184425474357492084496681560943479544139991479565466328374956383540729581912243394637165619041586039580053140474001658396557862687057862444538934919363006284294161223044601789753994498444598161122360084897638884681432531154248428938037098311269206659314320353882055805971071180901084629830753990630943362393458925133537247132975922543277430179366294563187765777715726695426665045417046110240558481176590356463434628728141462758390071739608530896938501364797259103232272249882692301736526529291752326450576134134500834794551754696193711726083343082043741184798491414317952548065320040417190806246901577533457655599064989459550773192706442627511027068254926279232568442933005790624004708722649681623388391125303128173872084526497982552034751713928292119636264916122661816099747752079208635377113184074623338006884870600079594669752836875047311207473523860350248589749713374803586546618031985799105048961470096894872265175476152601237731516762842415423695956258133256677955201382983229336640537087850802335042426450039266979474872885994571765807082163240521148979851313355366067490848884211919905454727106776278970863506262473191418256602479595409270143188836069313645173966875683378228505858092502068185027263875496167590806551976826944248815147247208096084301953928603208471182205309671959240744832590185952285784493027527903265892315411430383443560468959871018145507667176921241841381589189694471940599094641009077483322032394903143346422297360303912154898721287022031447712392408771926912114753303512247067600208923276980321759003171194964700592154047863990169937042894765811158079330404911851398773416386668624844948791610195793650407694870604586658493923610542171112065767692147425005411416029892649374016262109630714796268595054723373087402859132943768038966091276276239680717492076911408488810292848147234560603714224502840562202165508547054631832620098009874796452790017524648067832813452931994741379951673286197106146322010009189228937259121954068004710896913935824573826180008475628094590665720103370674740711015958227721120232443780676451636908912634051015355116718918438288183527009233926854598034921128528113512988591705334553509573884079883894630423499007580762137867951233383692243127326535136004516319777892754048320669189513592848842695954940694265917553204957190159228945778101128231085692093329850197250158199924186921664172028720999937549595317819312485524845312230025183568919806877957670169924549723600249033111408597681101110193311005560564096141095672230644031658596597056080186476581789698703037465669335578286571531834006282032549902110132219838803022262933220999774648178923905464862404911407185632681112034434224821305843059371374660628390700508184721171309623313789861307452036322378285632520881896461888961256123346442763633455188516345621224626102280380574435401010580988253842777400027863287202639469999571424002560468694280195609118418767986437406923882165220284343620479291375814598195797288834628023861570030308315143307150214669367529934672489654859925948461922710046619096909003962216657678193767882820636730043686728338720587790335617742433466880501550612249644031599205606325114362698898634107045139890077253102450117330733996659087875379559810774868786351341429907944259801171902674573400448677387732871030400582542808416834563671663109678858574283866123506421706352109869654821428198203679240124048666617508761687416986868986800725543377684681487981951192658837839741378287836371014818363507754249762185036773845017770261381594878276693162074884746993805298965856147883911774747865886822331415088344940855796724906007492765812389718872249480107534505425032154475956042229011651117128522689280838516911596165280475226374765698172421953436612024390647155222704210437779008055213015599866902351683236054333269957201247468529809333496401620748889323405522284742972812621313052132671744605849584153814708406928592005157422545444521589793740053193510256437824734828512747501966235766227095871810241558053451240762316989261103559184363349563881477208679926145161479607184018684346937208124702637797618812359202424299974767855004332205790349700424793273035864554224259308921225302630680515986482469175666779321981979231926969394262452900384935171629159770361629559371733543960868445887957469895013173670932380042583071609490438529684962486122680905856703012933335666035112539469814431324828764477454370070012103732124898971109869868037801465675206745764768738264848010191780382425237523904221642219651728199511363050425688499573872537446434782752329661397374127609561509026894575995406699921918713257928622558688982850588537504580093352544611979107276912546144283160874810410545833418793842241082824083745487570920986904797196300135879017445332483401449193698230765069809191732722154231627419632563248146633971890653358163176332949176501852955455840303420638042380328123998826203908859053487013451723262843131409300397081208565861500143186474112332590646121198612444285535855738854385357469714252903858577193160893544087311013398414298497888787164775179976062302559383951581578389706458905667666393815731233702561478250844409820692111008846051654270880170894265554022913074951221754871784461032884934303497588242713071013121797102314251163717215926137262442041100424978900414339316074064481326172392391999754512381120312369334185291113563993642593767635723656482416198302461436419231647987103897718551014061656990985625060975993712473727533711283686452467190416181687447835009786786342546146982655703543928214620964927704783110245286744029833575000135367386031879528648345949215485515022734268760055890714957794322964980325992094291827689506573983357321137648905026776194674483174987871169728263276193501802356062096463092466944285205143802893825935727780186950978016367022145223831604048585408442383443668959618549439051643041471695785924943752417481514968484027058190085745998994710277771273379516751781943503633836529258482727959906424881724116859775590041045834309257937916504030829240705655307756238529646548163472290405086983254252153864639674663710118434024354324878241443387716718368126851105303475250636918625250707305060066835395061317395114522499421988694571986088452010100677690284789908452806499870929798689634359660069125108745548694136101303529804200347270655909180533510519953289055548298712961841971195606918719852676955767320389656565537858534641963696421298481988962503361924648496920078933064827279109828734378353917085705249132801531152732814637894577725740989201824901367018156571950705723021851386923222369083365409205447464314778413237899106254425804209403281549297046299207120379651041651650248216674364496714371110698914512364487069481100771806466588021038071053446200306203706175484825435121422829754791374601021317711082158751702560590939797685961732525225110814227930035940144601555658625622653124960560338436347719187927000926496931916090057827722986633112924544782942146390637482124446547371634925529558882941367937706047889100079621689492986476257547939807608926104414408303110281533381382592252333383245902776058256224840345134999062687549143609783625013849923999276274296807506354428673902488386382300130251860360749659063886793601061833795678245632012968081050661828652392175779610974801200829468036071951114556235339154331096136085901680734686947364871679602617383752806369967432991268435236954013913487630296467079281861091447729242673170483583408468047852607830745056072412805205862919086620394104450548696068255823979592042585467358522529164783713523099712011447711270131999991268621786529839402954735716509792003797778467033479084379673121765141756588514642342576020195111570144405915656177090505023533299789776496294206219507236473276926260557058026300006642471762211410130835050110849765040002556765856950709499376915934782828136051980778892552399671160323379006127511290384474583951823539180763170964528617820474242055204196896197749702589115702967353910562078867548400446022397119010886946488140405859139640998663470588449427062131877526695400402613671941187622271935148655011340055960989267988323563874352760270187131034617969076849811110435944999942920369665700894956799961724552118187861581068128233634116802820102041770674881910638198198959388326286552528296295342799836007829922179275386005679485864690211487676455942630377021674791011586548040505219851433558733575901255402044906383873654531322902783448770980165151312776809560699682927703014673624848733591517452089932650679657029685125156095544018860318040585467118593015829972889518204081720037654850996353655026081124665642785004809785527906943485733317834101999077943147036384974554899406932556186014740007666903918511401907172391633397735863619389341467081964506048909988047781946384648235535642434332957135219595854310905347121632528322391617342429014615775661568700988659652538304120131498924609070920133951658614625388364618288223682901725987216189830163080480178355530453303738286767503087210121968124307881024223174500716163200611842452564988602514374655471599225288749573090092339534463953712260487914011980217584453554312604531515397806221017290669150149516437657811260569519626712453097160178463850493840151862366360357894772269624336621052543505526716401469015690225135215783914478427993597004796378714892001164135292181889947888129729850369672086432515709221682510818906106752840588312316523412428459262304092612546178481563318068783923966399087703563834939828508296784024334246945009662416897983288704470203801209204654800958249203205582415345087613858655394949984363045511960332870571313408161689983193945989257444862364494203324451254463687165820817155515238693576729605302519644657473349940915098175844272490505633450701027216574918171172180685548164081288838224977962474448253855318199354158448700263873716587748454075098183903475011151934018392817571566965191115012901432596094336516343356541022848145373440046791233765017528259897325958462902036851676337842128300797255308272757477737065261803217347393251150396724604502659407248400672434353277742566407510883933918390301996837185227838615239368758238360273212911609933849523388744444431659385351263625273120505532602806253313045249738074821370456711330762437070436211127634103296910319281674555696725783791660937998327804757859034774972019507107705258724195431643819304116554687676833629606810379984693595231931413221405408692709015745374440386903564626371317568249164407213749346823158475513526622385525349481735201487259550877942199678461055354859670560890262295755757925036181994896052114505289304134817222389358324177976361536701961323799198410956694414107860242997042974399750187702270086439837198081889554127398246803939875481260884987756934911798120416912477283577927358352417590454064477904469766218157670104742194877501741079753987349507359302243766302326328812849425616454955803844033972160560218929595164357451555720942009047746676774432316383271773084708079634588318440977839806777410548419033890139364708716921669695908469676617079967573265364214166753279038129143879503651798587130165644197984168389293042313356042422832460448863224980807018012795294274916458290448169724610849846571039451129768848002911177015989922598760997788141828277116517140982930005461453334526563710496338276896551423961916688905512239215962512382613476296839326214366025619353071577343928984263997592655098693112057095551783362909209070764171432783392088286870228904070179969039425296802939246536294396980042864793557320692839042040976123835407733567836960402853113583953154055511637956507099664746586643641166503051401548905143685726993880371551485651097924049089342004601285102103492253507047706619760142114238455033594481286942414756695981812208103057666919012019951151562788461498998190911630504175101439364827912122221485522696553425836959557275828175389908475403335621425033442312931683492732849660611794043541081290116116713543536328205244788300235141865909061433458733188109214724141392439556399687521781679385140659228111298898726806673932515845633352004011414736657199854006928759777838223760948119183504337261128403604459953458354276698975799370296587648473422194665264040803304065755456278713869261663484550458340134897247339715398912448499534421965830668017905343191801601214992447316167474115698280332556887997750065149748258367854139301159330072939257968359613780827898959728233269784712928141048211513692752859814572613837151518747878653695311755369705997398398077090733354020530049315171060351121669378456553691304518950189274071320306517142113219654825084742588095063460390023971883655293596265424220468616578685879653177979190498630929453179830969723750105277287136096108769450711755819633321452714959921480327573860336831213879010855566734756910236061537385156041457219473896334282854718155500091363458579174893097213378266049345679029307841614303739804141928336918396478753011179796796659874337824464791603240824545920632854647354517589682697976895465973144477109748084532269663584055223771007654870351987647827704833075844062202081958118611343235837965636452106478751249248725659768396064800183263876273139113561224540512636461760624191014360610298677487388544889313097549467055871083582051824494820990259997572464404953477076105805209382184265142080321539895807636872761428335510322962758768001136176623428322559461000761347489585629860793827604500938204975078753927285427927740736868946265441686160511458922023059217806955399494684016236219998224101529308316469548580675235625230109741119879198112900907321518085814282430794185946210617139929017199814868961659268165700462645970789302463705257394319021951514267648285913272275888574756936453541554563917923412035664177047002709093692408839642148885960406527339332966296584812601745801438263752973817925402278774504239801684293282048007042850336112150838227881376340627600306650424675361168540775018318659456696149958726460840495198087571610072139310274169405426920339843239998318980546929010978940214211187303602021680292635582336166491086260585890171333232464908813887906221996001535747464777397360160549806397779516095092276226035073772032295012961981015872661150552506183431420253482431026682558627016983395406335387399306646557992178122256874052105348387051650272155634918069829792367366920067374715102202093127875624855269708983416083732181144432281377668247034946518885595097981001785164522247689719305449811715543308642715046117188569154456133309293826471640002216728231830612685047674590525190506592750018661346250204451860160824526310668887843769806716393705322175949921170446514744413582191505374313444406009283332750452328931233115225263680637151499227039683324668943356867087716576804097862317283373615941588669324498956190055934601181995315041137158089160443644888592208023879111601183202262822426818917295701342213805783541983823354771579351038921385037097393176573098931814185751896527988289486060866970962992103806257447008176280056900477398579308842164220769906574811483338317150390575507680114439462574359687830667838032810753079299269569401991236739429507997525938355744087696549921716410582267644334225598024063433166861104827086087616566995273269797035366798614221421189790783597658313882659926120750866856555443978949120939239839176932509715230564367959858528487045967770972422503170648416880880864380520670766211542765639012698358414571370345986172516534347128883106920827617779974488587776291661883766866493717404321419963898659905933905281807873442913465071152394810122738729927438666330417447239313165925408835366333823116993165420636502177365762522625585563059137732253083327066911517284537743339322008468187662696822257567530076858313062254303489660132683057326056353549355624893040504181520805034579166575431903920226498952696105338008895281911109889479075795505125447226588373843395841857654728544251690757434388388610296491568334195256066417110509655824756308175430442979510333579135198051585995837130919515484371835752124129276323962519714095372452473138365080113330489161989685899591502288800273372895581432384697084647121672817487640782935902947634285044641562215986273822991956261426763356366884269933481581983089286277091315986125018817201143931239419536890453416096059985216991754822497267810142640788256575121480516250750979800205614302790311247197685498550368212404459831626155067702762964142788759995743898055654335390549052747866008784358493471736394363797479053890297208285824129949445108711209652357364300797846606813256504310252752629941963094000874535772473979579432991611298119124800205654709161784751202276467729530249211931466397163069029077156251493765840066188276215710630711192305294217520156319678886832616287314564574102858568213572615869686892256461833354894250233373758125073481627217573896280813253921758084843821322304560766647916883612758607142447600740103774910841047445068419245875530429054072039385251037839237687900599850854624315870109993211164046937113772776771192457688829469118988199527096506700769904081683090112219817601804351174221497681074835062564105142617651294188371498034783132740150086900359342471085981965351580235200517205329125477063211765107346659881322098509280641709579598333922671671800205010224617727183806317231228238600597842784734053596827574317184407811079314248878800420548099208044261206990018649552032842403154105449726863641868197045925143378227917992022347082590110071941076519778367528602034429491177203560019063182879545219324646598996913349121686594519868385041131806350684158885833416873344325354442166891659683788177944215629362871498164264996515395420993118262569999089133269468454979456027932295620745108880315251675962431593539555658110676232699627101559175833028492622026192426622562211636552053499997698241217880592751122356585164865074514065506430337969037863960225458348615779296787843297969470417372066826126730400444046700694918280939916732693250189714908727134400805875942410898805935496036848387183129303022431308102443996986614029036027462058682558495352188604997633746298817402471408272646669609804702650575550355778213288409638873149782790225525089089606926004242913692861540616633145128015134970038728924273554273969886341000362509655707114412655313580477938390192918788709975596670596284838892112244028393289302845408431362512764783846117156767164664980723275716816844562524082392974814068293837457828683933946535007192259394732817348870292341765784972763303243950024529711797223109009707060832950955386445798848608277252928223117431346182905483681775053273326419821772567516762710572558116015225016678653583712254849414901440301074874314851541748957171143381726082404258558463719256364976963448102781655612035900693945583579965829598628774692187625355999331674357473766927306797140481382240568288168526880987130726337059595647058136943074391155067004812804958331134135543359734340176257906572895935136699674287656452046538558078382445270200435752004284500922887302822902391126687032715695367702248545836821248731081190498214837588293074035370513944079746399816521199420942123329346091551584296594673890785010205418242793907047253309505230409780639459421785204461727792936362135172685274415089053647739947815776724089753776263453405753063529208260321705756647340147643388703738662655904615888849255462586119079131923519109212501187073736203355978847430756832266973436136581273610513672307206417345766543776602035806711814140381470869866772724495751745709808477627539125591828768990780130059464483011463747111019309645197251266223710706367068066884158413638176731734399851309038940772692366892566718043086218991970934919822984669589416779320830022408629243914802950412032903242666685180662930948992545774993291479717563505684299286626430339814514345172288915520830291339449621296895254472020486359714497447755107072295116648087347131040255104116503561213560637045820346401144718754025668105027439026477872459263692938265576886653760779235708852983128557417633458748457954806955869888176872895486275200924349833888152028638857350175374829249441611219062310492309329062045314438403206680405831870600234129002693678385873337259388339178958877869749891159851620122107725479662965445599209290338595351461705145938775519868614813463886121668898506748766954212761090431727887966280769838532824708608218014810298619179549908377280642878370069434243673656339959083068061010048504903759086512240002578646662265327123890980033140569396909263325479590617185511255171608797775806358176559887976673626867137736510349232977664322409263059634446575058708619351130773751798140898296825088598836667436800378780565446161485575066826643555464361791600721163989767989142703110519704898698533744256016958176477128553992715386318921413791788793293857173628751030310093633623395261867338285361427801413565957353849581739602919456065472263409462038068369132764094072156594028307450066103804211343920140138882787266077310336562941525127721133932117474198151384111028847821405411458355443039226356488581331692915591563106487808414370664105216369595463137632519067416093899826044877782075760645756599045643375473171858140520734167418384495661968066883697002541368100687598901977226505077341590330902244465263527021778619391248295995093710376421979151789153938907586659311051856158449588935295461147846695678483230478687137755292552482261974485260002444812150953281913295672633581212185871103705294414384724731366080576582144526794389612282256804859243905949806715856868041500650330552578817219828161581666358587389305936571581339369402393952859078573982542814271779811075526413420503053575934301424522729290268619295336047794378474509441678532869123795475788230200433115773183054224644595027359494561337456383067445205165396899214723662678565945613917139470204476447608263767050969179761148574413226899926889457769875678850029080581348685108447094357957440144718182830163648595052192637179188653994684589307899774645756957542855836819612142897502266374320671101844697148060896773799236053829559867008074646528945611032588110878956793063225935196111333635906516219888932862285551217872259488325021910233095343378354952632074393449970590405301547475217477259023645180591411997508405614484762040667024676883401393235238542672433009715034237828869665458388223437978316338551700670324426616218498913377633872816828345238233186300908041506905299331449047670505587314399557443784376751522980385432948865211315000512901070867166924957321201271216631877667124343002104065630753987165817488667126702500748994934473765711169217536171234090773309804216588138626116418719706573960497779038015929736737234945101963401701465209714357242220423026603728371262417373882364846197833941953416075368110178544572388447405074926888285971268827254816680771573647164708024050750356530981249459623648725071653664760520987996720402310322318604329490614181802972067903345187714330117874777257599591848886335278026365077234648222635628778080095657372764348619732728488504787138318819295548897694152149314970044616537788206315127110428811231134805828566070852900541171774639195153965835272434698044967735886081694285593773526194759385423730937849395622116237227264898511240649905041475743430129010266048911322246600655378150919523096928976735049227891153784390502095034679322988099463190808022223154739736599806887523933601665894947655936485309310370058245687817253982312999828979157065525982379873985099652280477051702632073941407702405295668973284243655092183743507703525649546334197582197838673332727949167687690638474411671538400764282110456832849888059604557115314395664189941943208099314372173557903175774033661690681706235845302890933152625135528417709394117308599864904614122063882175199679381070717846869257043085504098646811950634110256559146395852143122587110351171067913125075913757018138932659088993609224633115545773149498028549720660588510272215895330460510911215690229636785572131291650493460767702360046632284662054770797216711372333409836216675910210995975221151226690244341004841191434476526731262926922744919678778522579408543959011981537682178375124907265022466720310860858601977253713266930159492271806612652011745478493050132931165114002103772605243327718388484482456531747573530760760467440102077004364748761122249890398402087995492332951510775598531950209059374471024268805412631873979750729170225143594458730901823386753958799025859278145231510227513077243834284790471531638826251899397501920318285712485401803397399965953910727804276688150019179642891115910427372570106990697683391168552976837241249607161993511030879253686781031344315850797413139709164159130052425380516957741759009182190440210056674007558274277728579223044306269219809182161638873867016425000856603791207948184765472703794259778914917773421963616643650747992408394900324792910155913339255413451650041711430237727550849318432700200549660026022885111109884972676070981923203766243690692152484802354213567700946727542611495304672286350708538035481418235692875664341466372636410715885407119245995785189969881206013045210863394858378460209555057959670706476739421057929825328694739997579674630460960102759468522903223780181666584446305263136585202984089131495734814377911390317689792212388177967380853144175778038276738468590329136921751794223618190340215745309039459768057286396992995168643487001239323779073403740382519505496509795675717135282012124374294647181873604303589287918803458143862810866188771705240660534519679643193129560894705988368315378840319189622930221435771896187206205836107603103158995320288281540928411092519830894066947884110187436171255412039770227960204777850130066171484879411643379866993994423802953939687746036807674801649531230386419937552759201193109671957511651213965895848316688150393981864766718467878766578464537728882128144560915379548707831903731829407561032715000509690668755036285797144101351469168269743017314960026312171389550841054029200648443357403210505459916498855164054646506244481086941499419304198407578245011984422277723061050970419157063807398117270180761320463834049307313406851563266548671060296381695575401804065910343536216999880482386849536688394832027897095452540330908273352347609466589696777406432501183803827996736071254468324021332440263771394455424872325047676375624438256950948505708733216079232108685825631916124549097525159878776177250245440131971936113398738041252331174343676866873668645151461231731266084849772247976289983152593511669214703180459312495629934626356699281587291991376264988935923229992956760910535205519463705672304907359307924009737602489693419531293707166626155298501193002213414109420978930150441360287300146820535866116198489683474092557502141849048111559984950006135847704227302930412633779638578794889442050421361610869899846454788620837163198417285700699048134655287042774805909801639063835419123817810395145972767454461459870989703385443523247251825597454751431737954736166202227240305366839661870101033930280164183384951301019461623875553462361912647641943813795498962492591174146680080076185668212878678349382291272852000870952246640566287970533915019486027182314696066446817883764873784175364872519188435914617226019945192217643304308814127715174558766280476823128323619947615335989576646031062415593756893753260338922924213824160689199452544079908186391927661386401556895050030416133523048130861165268832179482433515884686290837840089173851063141892216118812543380924828335234013677979625372548405442762297611747214896837196153037825451111719204851009442522078278059497404171828791711769681476139633450140354775799218476079758160305916557158819680123324410430310021004206086096920646499263663191773225683237434877790110745660728971183304047989121340139892633717223151343166055080017065288033961240766652618718396756547016541767565953155427208004228749181680093907721753639444733065930031823557894370713831663926664561568012989068979576861376945168507930924661126777074889247182042837254604349418321084958215765836589567895164064700931841307400385268724639105969809443804774808937599448677873339435385107823902515160703186233921806018202116615736677106012627051645271887760069563904475387926790275584942913942101291595412878627101035488712857095439871526225149113434435153259791516207307501241994455588401398770047830166083600986410789582744467861764457703015242862435449801533175191827945887347668686773117625939691105799009520029066151580614494338895639464516785721133198871116436510327880275566349947678524058584274485092056405752769245449331928054092196486813611647899707974172920285226101303007923212299441586442689829067971548409113115135938845782462443300762756732743760755661315518496512990173583792850968492912710097577519645742606355255395526712320947467618740952598203468861394127858784257594589419164383579984254477590023687322823141124616366831693851700266661453320378284473528608985402664784095468903204528836447819542896142462661458132973585747740076396919445060559121082624325512438833573748076203722996998357309507089110397616858284767538577251111232691364863099921498881695719416546400151135777685812425467936924686340199223085042719602299946237323744912549467168861226260804195379013480616557566868148338144698955981229406418991867464429426007479172294847492517752015108627676839766577691023929906343758619043658872597415581422283854233000607663616071387198855794076703339523613204819251041921972914526032904655471417256835362806881591206487760225127781327622639617930367604051742911166012935133275616940030350616768143955027105428269045175438488238601058762042922891469113397886373157191420309997830056668613768166108863765642438013892673324390417327203736542574716310157644506880075016205268755527896359203762418274364878900866250528140005705990368063039742377610085721837463947652429088616157592128719332692044842910155751405041367961838387825019412276641110465151593502880953944202858663836270502389750957403436067044157374799320113634578079664890544428653851189242581714381222131864256441504220907091957100730441499913093280180292992628516303871617176106645012413602407584865152355334724731235131451055142992770700857965485831590089096739179473927656167308547949283616084357653426668026910962116267181551548147028769243919118358235599333668449646059708271609180457217927112549047983846449398471566228282405971220068714277529684410740972593366261608856142734009992524780934667245913276656239263195539890845409977051900110326074856803664400969765418687808722269476504469599698171203103998355802961053675149836568507152887961308446899386868793491205039995165566191869620463218756133065196105022479421194591303002140820528522178726457460913483174673139991808084207051379741569601314613346568214634186931677862946791689236317488067540270972950688984567897588251897231077135069147535689439968916656490710755637989096482465839278556355705621302080307874527267897030996563977642297813812928822174334454671616655142351579097009590040291324171833362023103881382073567847574568133481065211344191577735988365392584256119787983100918343076380860642368723706008536602366145294096718762455597900292022135340752871940442756586538308229200594187216418269390384224505036316649175916523863788202996337190765504377218421118501505585379449944023857855895019764564870743939366406399307152055022547386857017342816210639248924190593856579816935565374674535217080444691299115299394162146833464804403553160333884490168876889953928217056353203228758379507983872896880736834218083132580465522199800726479371219340691830856508093182281927066154542616176974046088571234456074225571204185588424603289426066529863968506242189859042424236351360593577857961788895487408476839267018475457141547603468879397936331472757540896265809995280747558855381792385077864980406989648528771488143278440513137193666550596760273744068627898396285238417836680355971471714838147955118796561651422247339597433536412067326080709239994200447749843616551279651867459138341222818743878931500784014949531303335511291696365081304292920311932259416441713200964294089778144306973506606737285856527474086500587973577621623167102075835238145235662528773372377310237937084814784909520717147850722899295087146403717235097195206911931372482684246937717358502301669441682317493088052531869399835829501882172650512203124284174231942495751076296509577441635438869362140768929799119027461099449428871096281708819242822285693632716377725566509221320617990171522289026777875741556023759174140087973202877307747223079733310740648159848818313018537162174097749633449353371919518793834696348213922125516031667075504147530876063917789359478348244180496211320570404716518170364380114050895384305729398644978640336811611948957653008519786602723864564544538457421705884133259523665173774828437983078038200599381081087864341218644104585541315237065243969530755396745380925725874982572670183655466081686315289842071253394561260071650439703535263688911426543997982685757613425012408367855738640600377032419608881823816310674108451940304882309938225141186979594949480789863089904008814624270200273941656652943026418400779979206202163019917315627482946887523826720911842697159908939471590909489561656232430682006109376382524528546978182889582406869374978464268544022693686382738456849828412722668727287601479229287304251995667779793748410947739941983738669395890183296736616205413983687494977298933261586716085436861111718646610911449408921696843313865924270381940108461790032145344297405148855727602152250785642982322197690289597544048158021164923940716649659343925577987438942538598016396157106423664809664622664701345124721398551436991853650762224429821686654066967179296646883525679737823568004592382995859431438135981206960994450961711085328071930897621798358205787803315386688406720579898565732075150030562297582021327778045933341241074478272972637857597492495193884391171330655851527862861693477964173578229444391912613413146161044649927719712544065706380766745920157871199498481741555959282381698251325466546003595518054227618477834536053495738850879119550743831305211183180811173041759765656214688961611088719476239967685549717235709926295391014814816169962072309610408453296384489242619276211764434564190384949442336752219316911559771268811169756135274502397983798910456260778272173674816322135785731930818271302032932647483577409026233508856395854221412081851674186922233933447678220121982344015812198081613942528369190952612449505504315467251160857635117826552625147954655239817630546801980420555186344902975148262960617657573645727167138720580474501220848838534974570850798102400371745593337653864740467082589047805088247382473100013524966339389081171375952293159021988421609388964406423079974417632049502305932004099020587369427821694527714824089308636965410950335823122235249318475034252707924717656884070167143844756489417711491507340388656077938383113135036072102679092731132332967065295024442052844269205964277326860687355557142532485286106967022154726259451805249911485406461591427360355186878715848295008730528000857395102775872295768397903057200720706220638971516413522972804844373377178299893480820841783114377845175720600212176902619703185122397227305648928177824684331014793122196671917209842399169831793297111664404606804804233150446961629452282903087277909900728000500499151671772064956259908969262297852251299146260817538327440726043821715782299281997134879691971755688670438377421495100919462723972017204847573056564406199953115545920717521111580834499553897058318987777056348635158348586112982440393071362703408896059485181798517481376391005594100835339811957324358445051270814348854246654355428405585350364236223276756027545399725209084058136670924332398858068478181484995986349940448241452499834841047508335125858196987792011568449608148029318939869991182651770999329939294297468169371727035217055164098630471178171579566015870949685079889218703844017987404720383429796807182698861387926579270673935257646278330908621943483013814045367156384869075909393498659001526304545228586163034351981946847788164364453842387288822930915610473676967436631599119601573943561851446595607243763291630652651495210990544797037238141434052840984064001850445194681444459915707736962543652544033538788456231440528284500550242485516189409013971732326593462658706189369015070396624504865680119032319885123359792667221705184071097316546079740837075231731991282294668488749153025297645273150224188702678714910678650024499331847867273365795103393817959588080221798565423215812828952813934657207212316632665251290038473174202786241662397698060260174316909140426783236009402788203532914760306134509121831243046264051470182482886956442020120507307821943438102194660969682725032539425103658399168269506627427782185219873614866327059915678563375378148702558262177518593688784467673054537588915985501853548714385352528049723110853461750386170092149276883594863407601430326391323399377854566375100866052268660999502991165067934942050224343684451048649341633131982944935617005313978117928893834115907261322445948458984845140462768362203899357074878068391613379886590086563146408522917261255625147483805155150509010191181597770027347113808418927700319793023559945260137460573864014361034997252568701159772902338365956318441502823204102916354990459931509526168105375555861981284345513028702164894614368254925786899294431248085357718813942387429891647098796113574030176050133677153217112373951786707037124226260979531223901414431043354731671378922585663552389923705102205644121801363193111932737082515978296859897702848341720380461540342562138157492883457664034225731369589719634250435929088432312427334396020920488834117517918768405853439321523775813343851043666592368111966003185287422156375492071481323609168598595260446366475397539160879869514927953547327305165565337273028588013580632365594692049095639957424100655018017533576526579746524220814657638962366267037086982628355848918283787556755369618705202302279836911377907103834471696988759460812983481328039672035092185785698149178838607358990467864900179303054114719632882951208632413856163707437183820001732686810933658174730831767639870294627116668817759354234273561903044018555140176381795266933626094779545121257643541443272105533331498060939511660501343857046052590919884207200955550961278448549644764485022811935932268940311375266012716581161020770020582863900871416795968470500970458887692573670221814623706645911811455815165710348865674142749179401372565975936936938351060868467643782282726623872447915578400331140107376129313805709334044940352492625225650174454088214816475786817932896678241812580181682070410724437006159581263308044257684901666762026115134412941533803055486300131874937399933060095003610023494176000382526078241817048400629228070806035207862206495628715207220110157096138811990682183191761606906090790019300151290776753343385419739737115660750418737108341886733434362742651432500752217302244115176161915494720074971205989950048518532509031310145169467926547884877370513367420452500814321608257359294794871933627151940890372428540299798384017233454932618648282379590198820146276670363120915347008613484094982521712208632013028917899553994463722653538509208691711837386409569478800846058661398303216855061691122755293325970061477116099010169552632549284613413319976840656855090176925076940816733900801350500184618634399754948239070340122918533589192627187240351605014318435362054769855627243552891871751665383305766318065853122524127116602906285698921469875074061938311589725007907955815697041067047153297287169003633062011570134389029046707704313262865462167020960009922720535936755399358957094777363922364454034553601572074916645269168702650239202321948077201111508607006264110562906732185119795012971140948616224941904421831194825993790684079072450641695742062954535816630063890583533140423648006537496151809523738443767085355995557296246372192989847224889483127092324613719674461459164334526010578031842736391986955068841930467483174591973638998461154440913675191092551899696174676731089229473751204854042502360432054522878058660282157620641695267339581108872354382808058827314911222368829019142233967057467957516311484481729935197371791712035934416962495464045790919264120666158183864037441876769362430629414135338211782935920776638226735348718909580883757513558570577930903848298889235618207671171691231199121109031434921606777620289755390162281481078409757608785103911123314428683384725688924265610734838308183016706001911838729058464089191103214135069858351328390557703062032082721787916665970139111005724859100270078972882815480131858522693773331139775364769184436851628416701216914430629565761145344667776080889530756940182698398648441236755173595030224221241569908194353731743965405052646264964716576849742267348510475654852630060484554653491151108316846773245339428981194553590046161719105752984109615630320730830468488480569403206443852049251695763071213595452464495287924060861058821753851939452676470982543170197142427352655999147058239095719348830101655216076576555239565916191428521951939432455485423469591709091305655446582903280554009188366128146513564689198228865420005761159342971114934185701418871238987200023967192389198411840803397444320068402774823390737215105757053264438785937748752421362387593971017812380659388153213310746228530988080146053888849090730801963498453401349264516547429167954687683782085203678966075447372765151155634842169471027972036767183462668909071930379806020658199722176130410969765343624281919853927228834583707660227271340642216487579496062444666700630169912151543729150507741344776059729753938593007418000351067476505772008061590838197477295956008678256377086835622318623755854360542405417877440303195753630475379046320671454908807317303771988844691552191093637241089966554480133030235430533073768252788942731922018400134899015373209757520570413660334247437231964066168305615339361270160566081938092698530892581034766839722355013441792656589979667632425624453516927674654755394824323712207497122408924088043180935646655884412978072530905895601146218131342430388528703467484502530942439866580910565002136017093942342116696790247977689824730396430372693184079900480185936212971603146293029282978599603550196633588421236607193208114603900064144653458135223881562037584747202040869062055684668006713976673120044212880735202880503096843803596768659157376220293740815282189559887828334122120940649942648360667366153575461700404773471532412271383030841207432142186530674263245403569216751480001325584561024487017409661710784277377375912327107592775794704748500052740590796266508856297529607978206886835971239606160186284237351340057148084124215171798118027006392439520679680605399909606623010586699123661756733233015603018035037654469921490023111814578615260941880351818152221971260523370980931360882503866302797528603893969632031593269065337182150988989252492820622410157063387022948322063930987464505298690166105445408064452930415482464310222493487518354095183138617682648169139767599659444649449688268326385945656522947395716506997704276630414405641509498029881760672394137669436356636372637956763371556135978078147723874214198570262481105946131778462455548035123801693435720031717118756075706130549282452152895300167569813240506028024002936825124230730547154662246109113226454870185165355762668603395474099963124234928274233239572723505455379860020741136263126563010419159738202515468973793024103423447880314450430864584755251789275612641032419353068653949613947313759359260428724775198973989803439028074513421077896489909039837353704403939609862800932263320473414249904433930117744627732739328366218916860216152513673092072602646638736736935065397415152277084502685084601965075459294688774995169772176648597367430080396914356317444565878224564388467488179861655745057848140252980822385678276193342070133696506399414213921567053724494060976814134074511078639258450951504245758434517061322828029515689991426681954262397563769353489146482516572893739455243404589525917433802150739541049630822682658095372800713051579601176290655802221360164183646849811564149835722566772590915406150538331809309038222111606215565319376612425283651428992493993496906705091154603397610473687024797902277370760360016826701780809528131210379535813375809925869098627898123909562447582281395416350082997620773845840774782974362605961916213760139286044892408316408089765981876093035668080725450645970800090729226553166467813082279322008061786928928717911244706478485244301688912865071178433902748002405310356413119885906275702928824922672453566291483821596980907202076535070065924079170335283408765846425758696483058704269557406008262405373654912401621223248695028443658348974651849218901943214880003461887427688811228857818934825555689486555750238030182093887974003134112180557200329039666240366428510710756730649947274258627231128043976394569546217971265711887995741710219795866866807669202001227276111728361902858182035876803605300985714537951489806076357467548756957728947368228639697240067922445337006746741925550417740385711014628324606649504380103952577309202788637461897552667402498545768921513801148263283194474698711796139545797807389979202900698832548261074707387437899690676884892967704347267930756930104914504087868138351994250034016217969559656032887970836503747907446424444610201347375716742970343268707377879538581985045091666632413572038372179777489135675990596742410232449425696181323619267145685031114654397741198765233788152092984396033678808033740055803847238290782359458673259682327556256672295419814539711822072796925362840896019750361068006343916641427696011624029310958261180398566376634185085846843570742232235682230480866427796363736072057353004401860488835270771402812763077063544435457334950092455078611683714740668441638451440634086254975763647534936274992567377868591336544003562117290473413549335217614834549495687706156465680876233272136078196640917848428202870607682978962163695395560652415556074419350872243219096109039529746310631383723603848810842331490245141516431047701777637522942269133707632220114525819642279710152467620951219761451105085896750979034442102366673867242435436829758447159330524477464806545680789001763638741741768619003741419078055376464022498271448709014979799765314618406969971634063812395274265561521094429057322721972843676485597221456918849667567837451682839118559944254193971635943412174703061359006379449750210799463693511919859005246204555612862981231842348284524234256801077854306205931501564691680462144878503238685015352901893858925601734293751892807054819322822240922490950342511561680489542494806868782976970456131772494925817562693001306044106244326450991234223187004935148491513029838781686907540829449529007069933609617008499313315207940579982302162854711677592099712738338443916179922219717230698954117324836743501920157293197266531576428203128043521620542719322295135014883308147950111781273302253295711438108314383279426611043790379936591305588398409492077488735169999114264541669229757696678300689855288428361139768789363051624557034785177834069785488389027369176026080917709220329786917308585701274327980692085200255489094910309657091664018726848450398941348999661246387330052913644615715361176295760846629837610509091316551048066314990120580198579343885938250753721100861477519530185889337243295230932929949011796907891536156143080616186708871509100372376359679928882765892967678091757263638563740942304978815010462393722988272966292228198053320523201933207420487584360643299161198012133742464022060254756768342219324075298888042995213819482587273766748547589325435199885944015531202863919593926948175771488141629868456943701403843638199763104147171932676003643004579134465121399600076218579486800787657943153382102628897817365237059963154096239484588168943108608748220729537962253746464896753563694916222105264297907761829620221311756106094923042086711248479168062113757113809843011113784253697521628737020105988434328193331665430521494850559340244370265772540514200968020021348579590129716880736299197245508157851783675785541718682656627664651660779796169492628426969562462525229427770036026990061340462544688184950461403541555854294726945454871590648090946727917470619459367158112265425709572846574365040504986655071572748534841757202955499624592838558556725374266036234934581938109335642411343498560590697104820701781561971451786713217204604536454664478213356842897620159383749303120027995676235119241944458290755559191017282358651929374643229298786382511573238613469182572896669840762104700111199607982650480960886721886327251868020485150703832310608064179562817287845997101041287618676058259929640168247262665872165150268514980749197593577016478645569765434911581676324098411634057142308261943410851706462479813650695250510137912121442449321333641208333773163398883572685488783441835983704947278079396734767110870078416179289195960343304834822538394068285852721815601883879383731910068683136610667155116277396816651237005058441234002834489702160963516254923172797656669752598752476655112291761591054934330775680728788366391323904883358404451476467879975310548556667018340980014158924135605922992529147944538717467808379778658576178082372492871044892531743162420732365302254900767505851748523597904708675148417283524605869473363914546518533949553117058627530101753483828131007472535175278427356559335164544212114259125568310212844624843023760674838898249074005583010022926629576308461288773847322471574098695154539906409042784592083068456055946477902260234569617585866468177790069147883916376196473685504587830855689500957999335683015160800139223964845828607403926971069338794809281562984704310027406968445623655352632694598816492994277075584888795937746454897906744202407504367463401231703110425069589368461299905329824840502539067441930606954606149296797746773488004526982983753264243730794792229829544038199546392375014474803366371356034772999960447635697999721757392447281503963053923554944622326275100010740738245742928121146076836803440974737998343801878715889476913898188696496016280479015683386615599740540272861868171114084079804684553999836186838318711374592370878205713573564589060820835467593385743821311674030250841692175262433365170168578220812389004875562945568919520845750232611627994857504067210081558895675743966008969887544800887375237764915989282906997206392976498372025102838465612750002801532209626052106188200516012600810072216046535843829619331097360294104409873004322865837895288328193769897245473320448153809633829862864412357988920617395203726815760010728875073686398177413909586940836097501200478953790505748356995950264095136996090049949480814447562226264352981182788349535718075157910423385054234781827621029392947806092313055497681650113585965697757869684332791269216252653210970922908572419953754175495130342528286599285635035602791512140960316187509719180252398004902545334752282233207878549903618750825373740837203884210962418846599695522310935828287744091079079418621111355238548848555073143052949886113359927153963121163542919810608582596258984484706470844415348735635750888397298722951035917287501584264983644251938026278248318291480594947226713498171915257997246668799226980718076694838522695386356629992972072183546455213954779950445809647603723010842034340757530825398481088375624905478079332422016044894107778212296538466923013849611675325596466404800437816980335713419415585752443134052666047585699271496310232030605175493931810273831611191114498072446454917375848298648081294285782652053650115222998526366185339240020604572977701808672693438120431211841546977315591056821104611555592020232833318526024025176365477426680218140287807330232399228574661241576923941607112418919339823994655540984874369740275254653417844084336888449650064218547837024139397198581288851992978331157127209726046385672405574025676081930697662773838127718678150988882117431088630829779875111206407747424572720462598377361624763506233391530877883037030790302374383572504021366556413895563042994229603551930692058968894945817838781401648235102811387584160088620844230068376234974711249570706045671477543678447034652839644921281650956947486118942753847633133137309595140909639728287001890741280715789659844928069940492708453791448704441540234787591398812251072659601876632599168712606003226975809128294913116523415926585843785612775860709378667102942320926660251675085143554355136887463259739107655750001408873880581474671115354480607080848858706003180441219013405407827533287768607824224955873792837996189033149984864670685919607939001825320144416267818928973470571501223585762588793755460778927518110021363561975919245707299432747960938757227084165278735642688505393891072665182764536302767217036380489853064262020869619627660364983024930422123969528811897454065951141066719205935544278788478332260337766619987207206080172769284868557043392563633160122508816135328246675759582210151885287872872489604624315239319894241371885702694399109228841858836891894756127696191375125893519703360044613507492797348814266761388806828081711464212036038153330634965173261756094146377212427459429445763083821308900701737830726444948283560465052269715212322533187764320746569945577111530063806323849824452590387636707684440635252780841466608645358456315516921070144437535039169202764334624490620038008872546429849532664979594124645258871707182600067640835335544977753014842863570976565916118602423921492517811025319838110340024226677171503336146249587915409904581679956719322892858080844100015372153933295867718987186591827799644533077476656285789427408394570555597608683196001143022808202545433362836055058224406300927308668807406119984869113167125520311987654948462253197368527681864152033033613279116725864659524412320591686320883381729665438236849028371725171542034026926854432567574585708699656791598592990777173977316408965742054484843314739546502700826901040139059963010606077707900510118367651293414044532573065987928872017564211691505097512769675534994317300438414107154044159352817159384280054955490709204925207680915246957402267519187086830257864443364321787401644553758194987638859358259027231546610952095549296663829973855544922388173622356653327938890955575180217993245712546993181514393072222348207286087208730536468518809473245365284461798709268559489064269683491186411581843005191449785700831266721301036659572591606423015072178865000513368943396779508077963981334356268264374233710603618149321589911525329881290458660161933543184902790279611288536400494835654719902640984065710942214615395431444140809275607415673570809814618726855876887520486745847639249267034873886911863806281943417032598034993661479175954572660951379466901123759364596872887804460976710576760492690560815645595275320789902631495090977948778501858354861856858735504014842958826213645968634077753570369001811672562431381192723142040976673206338599202340600392989495861762142535753366327549491292017138183166675845867920829743237794337513938464495366095413037560724606715031085445698020301220014509416920786877930033900504373527045321782540441497154707639687537999578553592894773964984699960170365223269804360279913831625737565245562541631794996825062376255800676232412095203411730309249531043697046576925731769998332438988053941052650921987779968104938298435248536216908411710993788816482697379683618817550732609319819046139267823417491593635966526292479437498757424302525983347512670750865419023477764441818555854556954239404736887042004781021822300181686926302380741604314817461726866879873107252898683764300449763953804086313758355601813240344840400314896414086786313942478387252857750250469696300520875313700392406245207515165228076323532862209976004189665147973114293100409020736715990079389898489999715541760041576681992133256376537674314322574916901324420933002228775634711858698856553642281038900119805587958568584151971435282042052302607046980549542893156366230955741280647155110257805047211100732748251407510219819624463111273012179428891366265923723368525872309143570001398784757308507192997345534655867357840835924543332589705659132371650304216874811735530423814366885654292363643733937828572563359022287129120409960999487592052611941840580785335858346811336665234531151667713588934944705779852729688170650015017285906021806230186401166920622845158629906712259774320037398785695796837791501172423672833767086817250022361361872231012630137429918248329449120146790718566114631401550593631369864527122231706164130918792198967034935051533945756467176083719153948529480258100915113027848196444421469561420750479131715655939766750925154660198054979494926732974740123456298471810763115670813647550860969772511870458214042264261667946810240791735101201200817235062644161749254558460543121282361903056576949527290908801157106505872540880316680400207991693730011767947829258247754287763398845131806670614883689556638698638976515193380902494888568362522310785405228188882646842983113109774553576191639301630569549344316958991502289138941982720154128496370505384670548040523067118887856637649699410459837711380702145604311998033749735074650386752761744197900047287861936216885474531867737012643460979644527247215836291809270186614224210051298905241756312856990261670058877223465038845765832642046018557999268248039845002722852715949517488846344453246713313413807435503561316417367400229440332263836765914698261417198944465037038351071441857516986217633203722694155386156790007312688235750902616899654643485455660447968516909425385339178986299937030500768150053552262672395775522818958306860899167318550862147134851979986659756508414725283950078562894175047835737559364338934737959851466292270936817247100882140622027789021877975349705558712191611271619809893991545590820727707248777882004574358855740898493991704758786698941110744790867337855587822892163074313424417484821874633927543817651413616313233654667440264522669002775736804715286275649321891686909486792133784886995225711466002055835556393335864333156939098528091130680158411709092718550950802102826284943199545819458803616069057661865773839557033097492987167890218137806108824254824457601481416054579950654512770741850748735916666071657692250757203034299204349136310738558709058158171869641601325594145233587295587573583296495978427350259036539542731889601341883912060138625393620628459433307544590497701602678082828157890725658184804889140495260723254536350366930300465666858304124785215762259146091504931851727963601402633880912737837976089623463653992440145082488779467743715505113481632359064356976333549327400524732570523574974891602890186587331941207823206041869078921356833536527596396185652887142316828788189722397155707342056769819017893569420223861655365399824971139003809741763393074834072924239116028327812458312684749156862333281084888852346770005668103616614310715696751527067756650523606561570755244846872191630167624647213875330000937904758046896765243196846607932750600559461884478789834643532863487075720814592679223979125879196820644348376778529035702414164736884706017063949380173898888297154814924005179684643194360163861331977297340201339906231001607810381562150117917255268047966087957580536341161668914700522485017668914246784384288426793256176259918058346483151738769005598199747523565506134470472202401599530967284404088086784249270336352414219303776088601549475592788177863409471547874064759190225654788265416030665012873292594766776721292295214002431134580582012446450448400369675420321830890533742810454682170796925544425283670318917410491400763770410909955408402907381352680359619266808353981438409288501063957125807733491453795927865601855458428294043720744941412267435172636980084196292905407693403860190213044055055559093560260919843363014067011410775832614901825576797726613152795346856935870946472501875400265576999427684466211688189948639157959637797180942848959235390145168750486833823906432305699018801142085591402422820205190599653932557162301454078392118355678671699558227751584443228775533167724723236522464637795940916265299615082177774724809948404056604606463719892224938122211927967200590773587948783038336011696162876931230485917959352701937395576240117122236391508937207267168830334235588814437311087403835126473181809262458331902245793205929370881609164655969972455329772769227359979560273256495118093106619741319098926304937931204436256781636257881770526934477258193648387491270101139698419237617234267621239383287689873118131033108608764444534656839677178553929485773966677072324403340146423275410032651800640048115208049656058527789149708806104739191649648766595743538002911135516598270539392825882772390239650395043880545626355633884727253932722675191189122761284433149547562938597135061929517809159757292024642774563810052530071552167920771660374087945304583521909182923114912866464817191186932691666702003301852251231314660796041987899258713978366562563931821293520408544293627265460492596008917604536200380059412274474142974245377923679854512294350157537471060227461708615797602087082437829206618316557486461591331939861244459026976089663845585984597269851799388592983964724490485037639215134572289064042681990287753421244214900123644395451254562360303886329050184042677118300009287512993583346743820123468118481342947783545849335547955301931797374309968540292661286590043191782585861933406235124544286158196666918913252967300817106710895287679044777564714490914374476535148877761975224044370278650006555448755181140171943819473246355792158718752724752808024576315748851110649612318712770203695616243434051269084375089067843622647678217665249949729469802959413349627965498987540030169522007443677330112172065782132816782700986672727543634613497964436571305354516245229566430100731795165915033462491904425365082003456317787847328720492830182205710728240096805470109910917419982458722562621218851323285114973140719899504499887456436720311640663129175287925879254802148697713700273350486340747001643120206245608416475878105693222694712960285245321872379384826375415659502227680346783845541583697890233679897439944423825869220338812077718656768217382274372981911652327287819421287687378556886865549212070142690197700156886876483869815585030920387964000279415196127358794461522645603170490489283082411742578049188782214479665755645568173699308444860674462360253258281344064954766261420788365390380693608779834113174789709406562273990855098245549451861076259342102881043807001435064383001726719930410005818635157708670134164667665738329717689581126111885541284331375739515525422416749795954717445372447620421118977797766979277895591440953710316804149569856275618871080700311203257892425791085630470981280305641081512325113135054084384935972097490654003751989792760226710326106283579266749631375020600190484516025954530271688224132529372746131918534681997427057643141934646952471069536416734678291868616923909874571085576905550829676713410439896892175406847517839502556431648071216432430736696452973595275468280945948606063782462317448286027325518126787112498748673679666481086948187818447371109968719581141427922762369765115253942524126273578958903448058203918623433950063102899888373427505364006368523288265122458693979156315635907255670538188473152461911524733964531785670769755847867511624532534450719882477140430810777538405892370564677413388871201720493521204742655524370486886917638385308839507372696245878460019815973677830919810490197089691531854444944521939200003813801727788197490953966985248496540024955203551294787563045113137081441833768675848005317138449045873988643906754535209426521621818574110806967910668142716183058905196265507668048887561663087956528118226633399456074287346505034726606393862122534146263033221428482837064810428271405156798989195435170185314890464296047390674680254221660850841014455918876768833486991633753711425748061737359889885763707085584445768987599274831792584479599731952140363750634667196342643592711366283677428176550285710386828196737256782740796165016785169034812518932615481888158696054051464569688596574301493506205563471564007871200664767788830060827898634243510859667979883589957062853994668898339645973318133998069980130623031979739348219902288496690508093427834911098798752723196519441439267978862231243466433594963829194396064135171181171703477967268899671765706528965054533625989798631009131476452913894024353260155391837467410810221443585015433939607036575132768389948960140881776939912525749434511393823938814956091436126263448518267039718857320767218787071388497571688204724423565588870910345405561388700675748554084879695397322755930944040226402514754739408618841207430463029519855550729146533505031089401296865220255755980567591975472682188305489330465334136107334985204221743574046838744613486835300457386206982299985150231839416778366859199301204499055217380366435393191194831271562049746094708751250997022658890818541531074607203837861585239604769467700070857782118162488858389321647782943663478097153696717238365457942327809451595739861544179423720173165889553020161035454496968647995970471873269075786211237960149004124926439070097488771062977184603317147864651830328802271121855310841672392568148644187208862740505458114989122014290982067364404034179912484309633969732734003381379130316771859841217052356585054495626379297545915476577032687921176243838896206496576370569047703813226888353337496844875687791399804279691986754988271533846058840019070420854211966956007042755567523532755744865322144431847435169815384952874043306402494625815345955551081353398699111891977708296165928462235163148593395161523475892452446381438408653648432996471969213249968429131109537412415598397758343967855804912775551599014589442757451039333801269238890083972584207025520984422276779775957605454605252866897203439973383943246046398223730719099920383830569851740591924768673560177548656678033932997049480839511058894142103608262270228622859620844449906524548843020481236441897519171903684033148946741565679104552877725066373752354090158897732586944684368943468086009156251822641467975974621871391142860834290437273010442577929424288040042823018926457797269632422745200712006411386794363927491506931244358434702523785760166062564028702186428457223109004078424045765200388146808422323524095619520302168592863781936189461421196884495548264111090146747338403617799735171796406299562618531691196143075394728170345178719672958009756518501361845535075107715980309781634672494617139253487596510673188768731861991019862867471657620877893696523575071693411060279843802456310284983883983315803882052538436102626470295871390822889470708497993954521164954933844535081781666118300903518627093030818154619483111590025647625232703905276035735483406414425319434581534187503449146821830332852543632275629164525334959770569272996473166453623103488229931255569271041191275503188952347803038465495379207674237781046540812682400114405131409882704685220761158593799087432954437118770087012985829599533207865285024399762326877792349274984473415817256705780143330829900707848232288303598265573670571824955580211780768470247023150612298972672618737951477400935786292990388175191508583171905646855837440476460177609807043328114361768498105228039969434570556907751041402455455109709418138961763963177201509954006079076972897479979908686476372407631889340498002514377139253211392255950659405749073130460982501848131123070634760478575069842706396817416905890079412814939829683104284093589662175169587580703208477772404040033100074157712654184965076583094646344341060533930032119563249741380496783429954337284080646340007536949126704777408753608298533353751309235039270358876210132859210053122004251082507566285524015895402367297379872517076743195813023747452113862719927402381886794926647499185715688681174286844521115531440309002539042532215762679598648502398449741913103095096577423442023101456467290813164282307232854155714913586395703205621785116143406323476141815614262483163570858881077210878814132928172552071463981910638924971976461752742343872411053272274371001267061042512019612252268406677065100750163871433628762373778044557789221361628195046234885750594720405012806606644378486559915290604621151081314415776771628576875773495125932359252508845522398621533786552062413152718527488662856675188088898094974219928083202665357359594320454625932319128605037422323926104087872964133381313843410220368628677241632327161099995303063396732804403276451931326482852879243748568375271835299159058378001871467811397936126927761083224766727006012805263793827690068810011195594865308371546450888217019889569104793655172100782432120153552626318916215858162584779079490352523733210332214538402681310475668989239250136316533831870879617046019582734857589808142094222833370189456200549015975886789996075167153681908027867448036528396901562996822290643711522389193246317184143424433149760343674599467441058764331639173742275776864883082109030693213209544226710840199790009603829355485908436120554654317497441868811280070842185331992575358228860414368225297286539026223477865335624525105398372493845036154102324492874762779973042151333495580125910632114595359408331633181040862323764577801809464224450054282508526536745178603926006624593340786135112832225677867483298310675734402850818934312721095047155961638966799345452671235252614464384171040112859101380155661400248942536448202193901466026750586359294675725154996041024447144051336954054147320053176545782503701337216175810400212639823291486424488142217742231029863333302523444791737788660021063083932325397847411148341876668392590132699271592661101021880049175406670258059272871262245787727326494016642694497323657352837882255389530375243950002595172443801378073885062932905511734892562121965969192766179140663248963019914739388890016516377322487111145333588627898764569602852375660349024717664717673232048053197201396926860124753322708008554100645748879618516851749960938296751388234736904213259605266638697870299740124543791841993879701591530513049683900721643961836418118459263332692396213519879518491113603773343305238650102979746614034194948508247176238379614900823397246461881633712669743140957179222665578326344556150925642492400967995108705746257703841130741631293824610254348122931032839359570506550091269945535347003779358752620918170972333112867375431706799045644749306245764602324915312565214219791318470078950359051059577891898048069620570204967066686470278230182851850625359394342095859883699621864102024372807288413964223805599421321209636518744268043517230822877336038204659030801053409257993867675541579274122465813269353433971090503700572713802569328899121843087289100568712486956104701740530305985050127344023167146752699687513686650701683445223660265013613578383084996893481728014350086386457145759413686100513590669560504229521672154674125400001686434213747250317937978541927686316994894716597451406661186856256377482256627361527427785242227700265812547108336833710450008636428674712481019743827496561476550850122100514826819329662223650359779313440160102595068617527322592535727800600124394530945676474989854288064746885740247726781943136131852814989908202080196906595545959456406303410892659559428044507688951606360835642755525311022512923716978875753505235183236138364799310848548959233780474579421886489182114148464858438388733074500334450597431188689833776452486122078712043571804685431643797726898117751265079975135939698797900101955141527125522538105774761552692528665439849910363416674957074906857366131995276615239304036717683322656549393462665157191298007211761244342700160499835010587609346081100953917544553202200582909866665419226767265919526056072205106922827692061073233449644822905134416604465924524636079429108902356272286204252654651171498073333870573699817893113040591554273096831331781589238262035945556506840361382011985650784796806486652741018293840983244420025118422955823109965122428402592996693184543070487878889448482584902749992337425101803964158951480317912057558706983828958973224907153371115758724287232813718498259968650456001588205751629767536466242467217022340716721256786051430459782813364093736536160009024780344229620580449586598405634001838436989019766132138957412080903153502191010462589404637500789032279553521571901844143668872350709749578727218961086072528719001698900570496545014554369932144219319396122599711725774334302730939057844924469277677636526630765789466404567444837810318588885466192627350493089603740770856576846305468424794058875144319361544593777389437776127034595301514071379107523209361098566507758551226148027987373764888909169765565265744132135329735397421842556876617438204404803223194988155530512607763414551743976553643752971109112157125740318275794935300521452173699538790723062070424798409429150959689517137830632769856560137217979444703219985986893313862814883945796486191511741337822437259460603122353468480655967840453093659249637971704316064772851031954521535630734946579322527482388888393737278462809107368748853705314359577837071259428841364733103791484031116216784545217343759801669563013108297405921630082752308745391581906583415148379600215813340755894409911757173230582525128081247451236392568759506845947835308267290724410880306670619511356880789519779129049740151369998023932736050169819495215952322463009543652872124506766607905267487500363160500540322154398696367777035968965567880788970770668248050249932750887468101359082565025949181076343080136470082635385069893207663039166729796015568409826832569326259289987486695558189136893412876990846755560671251999436050358752029907652418206260253426997985596223314558658024756342981767370883668296815519356724388011925415556535583347029250737513526718030858599859931875589555947154749499473936236061092032058461185433109552775964976129710705161090478720688821583249070214874071934602839358148629740042641357966165853255303753479468491905252292216610493326693587824586845161474129453956503301582412824768487926476529705601827973547543340959639346431206576957029343380127121122527525244130899172484062840501579240734886786753567375487981376486421902815046819370955174922386531805954002332517212926173877200136939229251719641427516062157315166210691784313253325306097773926773063517616177753040151944385983395355960821754403343881536533771257088799934162863601858494869802060052363641871077094056600745883970860267809322145271302549120603387431070786095102835978630379727977427646334849865244190845883101302054180030754267658969428573014104676010269453590412324659832994290262409566505985737891751931336806960034124544033360419127265892438859610111254041374041714389121321910008392699356248450571596853403553082865262545521553510949431622071756897724428841412839139647974450518662760065596832524916693393222462794524687369859120923889982054530712032751713983149908073237140394370730830311588534107726384442780833263007511183145296708650120327038819024122103548966284412614580905367146945838316832008301463867421829395784513363922607656775290215944549845948088640959722083012862192273346366103094948363335315475611749074742387750424684874081375633267907630941049471642124826981995135943214392175159099771140413798560025782046436671769902483507849291479581246651823080749376864893309022953723968816851095767466944211458708101885852011623063775182493517992239947417396329818646041252828809799326039133577545476749698600906100285897437101152755241237290924818239327666014007567534697925024337823032023242581191670386580411279820315642906129349564601440803447207686168084294429924802883868847427917492455156869700352230180059538282143837649265221284052966210759666082306267142122876733812154767068798204226152603054480429623730037221895703984495300950388826271003100818389141205085807412101151962887270877882413404661949974381130224880603761402358488982403182792667382668950097490024574422461321839762180550573716019369092625083105429642419463013456407953413356823013866558472225435719039195494658394746676740969494729435341426571861416320246741831060406013296545746374989155783185857894901220557005952580861896238609792146621006005669579525659666991338697811117932029864831682840342108897509754698883572062867938407236940431867700442217553843219887395806265541618519526842360656968688908261012864373307423528846432736696025713348008295306606230756948621594121639164740345080447731475744565557933573542029678046083653772954434830922832989786770402082023333655089784226882908469953539711711518188081762846636771598303631559104746069333339842780629744821358685550391503033784285662270328225697549203110646307438184619334097491715660838513419073450412834701329722100667630941347555809788395129715238153419743720497704182284294006130366055502730148450855287262586129614242810226082898319148796522395452171612220472242232480146307117838426208180813688544260979414693340805776296094334138868932063315743842887757573054423065558075686101308390502874826409632404374098439806703195204924704129993522714902849478327282818731963935650756768397822963662754025449136066990043829652171464492825747879528651064470324061916896491225963544198921030476635593872673087660248761004518307873985388795257455785581854514035603528257044457028983967068151091175424460450714291152968416822275494046209509661874340698025224797733115760945557730864239611119798329480842225241761467347366675472806921700580933660438392828156535281486852665516343110489184379292451272789914884230357739300065846905010360280755994576764904875973909983604896689145774260111909727630784208438970140591935895178251152055924200114415560092692965912468034045318026493694828364132444170079609317870574641536112077939604959006576517962334935278033336474494506740842474199896738350412112346401071746890551258706366515287689960744482158714304169829349886247935418501483451096425273015555813614672214781677047166793943653995631191707404639508680418893563308673255579932579328793022375712091348400053344355123331722279192301329376854268364261117811402940430049378287746110206046805805876792657244790548803289103217098925683007763354971276432655049961101594110685417961017501056954095240632537467239505666816791346057147567538164589747582691206261176378072202946797038598560535351694978026363422684896322169520293095190888060478051802608772563249581156988539963258035976934374107146813602265238290985887959335915123682070412165143589022623815976952811064152505920809547277143954473357739034394620014673119365014735301881604171668906514821827103781093253625115184688267911327157115762599175527632544025685734918149541581232678866260839570936246549059004140028853429166645092561492643217356269517667699253971818821496872554008082342013373081832547449252463282689009335738813419525641919230825288485093373500749595703621525742224381597768740223541459757619906339766941600170594782178727205620566870528231823756757167451102678108180283742470484174417716460143585891031167751894077615224756487228210040230983118606507910773937826309344279852479189846948213234412646429534126896426398356024584638810469248405880434540745842582697987649328533964252096367867306934256303282308772883537365059914673646880639468048264192107743679139485467410631408672855810939793742234327319380279432949659845199483295346642985598280117285673676521303950793205530776489868013358253667781157892286617842643373482410413331798349501760298362483210022137912611822928522666564099072539854306326903401280224998042846464491311255251004259723186939382373267196769398739047513830188479723519761053845372459186064714435722583602570310957609083106857907016502268408945085077025229305264379801860987840007591791033736196306517524950242466224142327792545741511644963214451760214495385894316995960394545189220415683506521896491989655902708338141794188946789488083052283749892618847420173375042306977849012432479312644101805735050405303123609563269735046309209069015537057156813100052990831195900240298420583209959564966385802450768964397135478423750682552357982671699497855693698677061266594040414735752227954335235235734490198507720075812704915377333597107681263669642019971076399552990022045452867953028397566444538432722579436443586821577585403250600423849911962382844612029155987963194179054833483440139360219258849084713306894747759549841847152167160639093486316061068767172068293878292594654602104551381469032119994328731129920521856532152849178922206277334041056591442686805340831826079580108589949434592679355206529362043147979689056029816841940020807019157057361437042433833725937606236647262382839647433104880752707955441234646651687054257518480933892435142019213870815044569891887762649061258451445829210449831450011638254207884842625876468780834565434552027497707079502655735309448138023328506939534382327460634788281223683363575576427188296568828029017899587529576462375884687044463323963109982575898926240971999939360929288662760227491968901175125669151862342512214821647343119154368892905759607987888035893911605534427374790244475176297289922379931341076134024411389098213649649287002131658890950646529941653397058615800139036805743168119661150581169428604714972380505830253323574641715912331641245635483039735701556411326804553223169837796644108270794058691389296874724589541168065375465664055224243096759466607876333434505944134027281879059385939112398677244959346238057949333811530904904422118222720482318111120109190239322429507512353554623117281901189524387279004599749565800305732047670157658906442404127376139889740468332767930176170851260514089982358578802588022938281663357664657932731015570971858616995155457368548920790615242576739541323742555968131501616005493967971919359874136609364700526892516324252837904958010678216986011185026551717997841270874916852311486255588030525838413180545754820965161381400412766992893860880235822062806754346402049212217290818881452238478846524177685595878794234408444046966636074534697297134410629029348619208861708103159467191449333846455901093855847802917738583944349813020642023833180214855415678214338800061422093646872523383648318722487508025067112926667705395236008211197052084587196535220645973025995018177579517318606475453267056827062187386136618048177471025716258467268784752260044091947372514160198049115921431205108458284932597492630938816094225036578214893045753353762620976129661651290167856951210985582445113212414919770644997715495384799751969548401120112284694015689089660727596586329435603079222800238367426004079126918625435778828007803668728111208317361699067979218729274220722891084502744544885057400471680529125136524101673876394730557247728421530223076109006247290454507522973347578457864942587535773945281674301992111014120720422808060928141911928227577833271099589200994142001536592715626378885850473088079320805071002001546323875927107994050424204575459389301491600377276663148259195675340538618533070248856004238033909443435623285239170192279239859188169801046616297369804686706605383909466336558759741441761022033823418322920548534197916120874581150243697198471560932484899005751243549535316094219433297781510987571140829010468177686891311193865937662084904867451705478861203095450645989218095001121394698794224701237350318775334413574377285144410204797210281699933599665970794396671175090428117497755337166108306425461972089801489783652534251481703158138405571801598924308081586520214598043892828275569326997559262825938447975911414170346250457853453921793880980296942156823181123154563988351603346487784728757860056847523561709090516332718397764950521704803683063248284484020944149574554835505863623883840086759179722566352329722488076123161824380728302920349319263152692482326252441243051872442360505669265863232285244908265402559758084664765991107807986748870470226092999469325549139924459482447345059257699351539289950717393901692550730921844833195501086620244942869230387360518121348612482122548057745701217458982075356136556029826409463488390676347996593136449281177426880378678379703337322632926181135846592021214225798760175504332383542815593734681231470707202851219333006001721192507371424518327585716769524707773632430684259900683701577006009031346432746505275697845741121474998218539449912140733422410526675415794815994287739545799430613272200974613090005709698938807395977242169250879985452401589968908782149059219314184442554276290216235921414331284637525685595255611750162122588106637645802338790039199841743811629360400241393043202266895711565549052232685935833488432934997982220719198070307193817767262638535311640874956767031161839930385204046699397726968779093158815532559385722327670873316516768450615744102633057783896992200012621321582260958879332946363230868480694806009659309055144668627445397942324707048840564149603051235819791189241983124216183070537860393456353785127134287007675968643022797637472787587846123295826706822816357187142262578547799591317499342611616545615749615677348763866050481100896205709883252466530163039890325410636384746422708033648997750923007575550934113439150919800999436630993978822202043893305966775854558279763634207639051732926787089160443025799478142861849792124318506269900920610906002895159043878760234514701293033329519523776018305709130395417494712649192791154126728791404039887211462286094904500727456422333101539258680808997823088600305136031546607706664852883561931559359170494076894556982697953221759456346402685281632141895296363700395803768537514442925078787004689045949864945425525607421551016330699451513829149226590930081245103215495652157500531207247620278623908783311343891192082929940328765275440875230074949004321709506233653181519006150588573988342446309278999059056690939486129339178913128657936934957748735861309665233003915157256314668924689321819716714735718932649378737174926150651427890145201570932762693229156625613519970179781592001870944274336796586467449042830738103612174279703175811394449274977763953565577592752030390745947149834174717419720257793428293165454147849256929293937996316644188192722435371606822001907555777247479511636059951485371434168278510286694320798260753834393132009621521836016086594442503787779256974872764128334482664407815676511411580146382753103482405368483807531499013066657587970724931669540670578587915273217263892139406406365873793568709005990083567007996987484363144336657682868819658059410241593879516077357867182677496220091899649972711840289542895738087835459682853077199086657583230911447931938603957090813716701085216017067448612972159283369443904104233626156801393027531633054350900102411197573278994993061760246552014071838391550032793067224841517452448783765862454605901316147502321467020777800414339020227586679767274769376504940863560631097070500696883686252880971934145837386534255186269773453089109399047084099976471825990099410253544460548009517234787268911793053264517185462756342655250952025448802149558501429706204679507515236610742433780993911198396648656098643541664990907999504632188373284272099065689964961226337466842396242083954176900741784627589839445568068239021578707523613581679270014661475300352178398872628502145560053523844263808909887555928424782254527958046229078648167916192747960328204141225500300142655142240544552889899010172806987150829605483775950979156900134363184899031349781536320829440588788981844345526180788339818998103167818996239147920636038559906090260602349309900130686674686492131320819836444159459625359731927354175658594236602285585153772579882790401485108743309548600701918336111110565212687934942738882808242867289013784722369823968387186089712534362614849587678351119498610023005235570040240474253709965008879404706278491787437469580787289373488417326558314805266872368178031116975719659794588791445359724087749950429619128918656142172909260105778075839884724533294452397759119331438229691385115139656026305564311861954547800608915696719021125000256555559987827786741695809417975377356827636884146387376011902187455527219996948943183501045854476681264453649451903540498183498700045942576385205582463963523018597169489568126507935432331391185371611280013513123784003773437531308773809836749988311689371750450692294558979018572110088193049997792577302074735652796448107144266070199209576445485907876355609802026460532822943036945130985290811228808762008079032062573577149355485914758328410435770765813717900821301618586034855867820083878447708134986514576834267843969083958065691519822340523245977940895823205743433864598778237507884533204287159604861228575049390800620144641166713456536306336349213266956746212741183717971833611016794375394188398320760145707787822777969946566440389688127670281460148107775412133231956441468777461308418975661096844136810324724600023242545008465194909818426489719901092853412435347434616014679572678285772612921515016433961189732816519784677475517776562952729951540341976236124082344774650216763188761501340136523778034014231854958493065724641506269430955251563468121083987812545904698124326515810545335315680057017710996195774108919096162761272325219864253094870339921201754496228994519062097023238374580894017928968175185492399983919115469749651268075327179321898948335669747591537991949551277651114688165389028007935921705062682226575355538984798549864445677755039741596768867637152941882353790569074127443194981779383740547458228445904235968321788482452611765787778352561872976397193940568890462928622080040921944895983592542024324674363699035916788379581037874433403764841160722511262050580674990250970591136780010771080762824753531188523036135473417326679980118532768495849387987336657785354060480648003662809694368105250136124149719292631434214267924719384773526221106505303517101141341898497813218116636021358405916358984930623799733651787311707003571063137950417991471071708555250752753091964632874989659449711253756597614118181366987337766971724362646993883947589698000241704263270138716680200231309813860457877915377809147492289366245534115235557621623218480827298922627149801102934012523873279525890341282447220723382700537102158375902181194697280745617883857689609120747784327623580639212130557084401905268873016790688880149030780265931762074489711069375997560865208732960509719469979662229156325823480198181329603376908774132788263277101079474522536813150073890783480527490431178641417765479666130618493284868012449596979184790178209072433136577298385099774497544025114527724452595656508433549139436769082630160338793736611655886305262049741646027277940739442086877721435072964731336669148026493572869293417437661738293548617705547603908722163251937457179299913763518759228071122951242517280814200553810454158023857270217869357717358402813671658676256215692774413347143714643357414909068622097462836788622863972990507058996890513426543246213842090713746836100402752010285222302316059115868827102637315295428514587042502071327953034213003260876644980623431187389374902310824570481298822785778360757794128294146806946658052382622218362533371859730945558919168852037171258046920573409649257549219563236733241282328930449048889961748132858474086066366501308980666593038624205747787366262197884945470686128288131840026833795483807854583856514315883097894012902891747324496064894056787402176139543905108242760936118513616613063149420081572186580182908689919172783417848436490938953221735203913231455488334522200369147141764936243848761595968274140002526619360784598727676710951436877150592187934110842548591148780582306660796688558458159304060850173191308202745297731868341413096984780777338953833149395748848969741468564435584240073171036866077525140382210728879005584532118633651744392248275019630302902092287995496314188718099873174302823974964680688044482014189533969828251412104118799481154432450412593351079636841514386754432258366724760813960489572241203185636213483233344528024887085485723796915160146948693331351683086252195038485050331447059299461970886066165153918554105258526029684810462251366874732277632886742469350724800872915195441725358568763439996875505867879688825794941112414791873701581808912653683781034849110868890091541955434942254383282647463979177602367533689253541711129300986047989877985575875939261769790613756935214000417328253061873059698756682562244756037312824467169257294839860678145066012136036675093227288939245054200566946212714975607997118205578898311307944727721692148218360416766715282594904132982103939526734209336246128960935599721217722263207031432738907666516338730933440088521670640868457738342590741963948372114545041137279059337739750544114766643255910827356420027558074963134864582220540841768558766862560129123782609107961199033320122422224683084076414689268240898259352884163753089453962848622125571265180581595186486552628326720094604382636161086402290173768512026966155321603283571272053081380687670714775316058021893077827631943934799789757603644248776318831512136280740292474471423929920369139385561858789281539898869126710870405977308980141837141589432548017778689237464696080543326655762977264764583452747837737541368311270880121576809242074385745927500104192596158254810925461426179669705477790953917129639498717472054195409127364732725066856281219251069684600263535435307239433924721566927417071696656539795232579691102103073544410992308995396307655612003862500079001342787956294922523102500829027950751271315802961052106457651152780842738779390970994819558730043911675128973165124395846853877566317215225105486289408350013560034709965695385582790449358367813119324801792691787690391914322536086001304956657268106264546079008500413792703615834173497486033798578923536534074245737537098218586740140053870680774044935518114875101779980744180044648011400694971755089555012777945652732782822316412502350856769330764837681837831291241058635050516049267721083984797948483591952919124951870695657706170560726813896263941385617590911653756594587029632298406833186845150830696342914027032807299275047982448829407394170104424376786524420713466111394327501440774170847677062710604791514927405772840127662864074228539994394730813045490791396158026079556792373738302031192297690328551269952329157656091174420455604173189652816391316619147132072477241232779090238361363312018914804074935374756655866147541156446954059881889090910250837946143876606591013662186222310581008974619170086422079526017993234227464419111567667185117514279239955269314735718138139835207187813919506663260222210593811274140013542468800499566836032227850670958080366834304465133236610988189049691099764818269972641320571200760724154768065124972068930058954192528307866715381256443874048391124696457596202304188733941207727134240080332614957968847989735353474562873009480204647020643027567520548732657605101182438556320113750815806069584971280984121134447137193110118785133529073788794751711519095271462635551823766225531713961404295805933713153048029182637654976191185652547392141443622867239826853657338479303575808286629227056887128148170799031134925738031330974136508585813554381384170030657822632318997173169928882202151886901610060444782831124144869625026484214107590878374278524056196161650951749950964089405213395412599775319447608488807621382838525074737993328503652895923040493883972267236391473909552719311323761873875969501452504927483270182851761843304818038275124700247173746909965175480964513418341372968012859678009770424041151197809352587823888965636348310576435259024308122794403558217042082798749284193961652944012743897136845019924329006212929353833135070243870294505620747289980093842398701518364113085870271140038156110847700248641003355002923187578042534726028727676525585975217241241446752086053912731645074524194008944972129705954964166220734429531339994822145282508678533426748707198113015238063521388896909688162143952143842436720788114462293391948192290633752317372852180785924815571873674205544298034748190333126786555371642421085727165385088051190599090478219754257504692823177811738278403299800565636992477687474082591613389213556231494429472733643270670517509682963488822273363029418543439405376026450298608123618395755135785821006657265215052105814828914024055143261440624896984669326396219470309171056762171564916428483770820475116786428813698220496569681027315410979918909361468098259773151414909202750323949924643885795136603672061037142114181165493068294208920243286378122774641919548499412800454932690744058871373793028451022359953976903478729865038546957924763977735586910673388520773716481353070853446729736811213342443024299077578270955613286614508962260607243730564006168952924891516871524689904030656220441215592094702302897026575500999809758474332071779059012955270042706917617696527073318234089020199951101511554253327166069093840089599815731924012667239630784786467580777229456330225928590437389189038326477944463403780236212363661534580084925046292358181770002939984178191512847591950882608625998049751483634265936823994167849309463286963849894134710020315389988469159861255871365902180824255762329078924736926063757042154573755938565374058546306548624409708011060677857616671018901682009282251309712620178832397090500310787245818409531608953281790338781763744110912844228981109613431099117037879486597000093262640318296573811024346583308206504463623982787620945359691115118901439307473744517512963165617876643524567500340739123138936609287855038522798733516352212306089621730404950742026867757929131374413101797883835643709044527382074010157748065229596616649474086443035560006430320900218486757375038726474296253471417065127379688549376665275748313989669069231674340176639879653347912110458755115788366017472877237204211754663809651351813853712788768049557255015244465118352307001855025002188444819062816796004983280364819394229790088659176994578272987767599942425549047303416775653039057896613819295456776958348906993421176136353819932649906094683336707876255837327418569402550199968274742518933687653070156613382088909941235798249391464168657118551882527822094029288330988813519328296151261380366536007569014612843498141750863310176089186458165121507614421244406542857354630267551151470454681019437837607508862621996677330709127568463320882027115693813118074055945388329837893607838856161634782216053727851689297964400152106742833153396808618919054447074349107666956575806955703824306516686273032615007221149890996377533604566035922217811454520917573364400264515296210031535231389112399649424517274871406680982463707803656537431162297634082761690205351637468348598773982312459297553981618213404654945185073421168856822621862665474339916060731566950078201347038125611950196248982223396036517746258815650600624165136787141459726291231771359158832285503459546175268106345004329067425021811094945986239633048779769138679381752295143622615009195256956809461587378369309466011607818930930340703851437983155353698861879598212183192321796099248864550482674966341962385239118929315885516546193884539313120372460347530607575426507206763527803181635713293719493539164033515281511768973033259921601478680967949179718020237319260789640984612102447405594548775512981399450063896723519673213746123977585286892152236982060200822955067055795080259493120239884956866876469824902212452218483817821965787840063831513326710879348577942353707468274739683639090000654139936362883599259494532225758602756237591828431171043091396374965427797270918235394526781526025230995364001873136616033330770169620850553636326383379900209158847811459811007141958430743021651490278658412395175638253105179000237350029660641579826615346890619134572832746775697525493992535172026233945636921715948222786121550726669097455750998481960535884358797005382458483167085146507847101760304738199215558563733691652758335529879632837687804027522035339246861604353192208556079555427686370014449076994317534517585632832004882841645713979093109166188943961841275800933018629932232755362567408939520048818842538762815001850354111389986359395375366638134386436044781843192776034015009070880002400854547133033004454869709190547586191234956639830735889200658455598228259816885615611306535700209417144055532011234170693052944406668314604165290212047361172948621687323101277589159903295904528633728836985617444365420859549656744381834627885673096802379240003809978150665556833057903381120767083451898388610498453602638074894044564808879367514117374200202703138052118985649381148436478881645989846322020504482165599346134535450223972437170417636250231043489301036206461378366647442229346430948569534303401420200905830706027616881773763074550176303776292449953575842306511436520378432413520351190699890920874980499078722541805882889171695600834932163211273538372728359631415224918901677056367897762879825501533374780500550675143864930378527900720668275752666502005778358673752256747467150398821249716692832392093661164265852932397262861478895085816101392668241683399437942488562419700141441857875511725343843396180233370206269398478519551209637488358237628706231686908954408860318416591535688904540463004309970576447819672561740873100691760184473563665073669569654136543435643092320870515953557748047163469676392319399172003304949674807780474899951779184001595385422900935266241498183116402561009906844182889256264467244918551496707354181054032381915741000586067631537952530936907088651459940758842840003269564357717203804634694275047232417555641370263975656335944018230705524563868975786243478133875022305095057213148285173082233479279409195622118527652539742738968145433983249611323050321880775699836123589354778309398046881210914475802763298473741598622994959775035324485102750266987730453320207689561916725300476424568906646472610879396945957082237180624824076760208257355120373828015452140657601480589715604687100797206399580939010979254242286164768743989340372356815657523871467994137611125854522778045977835662164798333531294511711243080191661053153946957699294220652381199848246932390270195964254008235998898277615374267395762553409103688600823494021798687944096676528814503518778544275235585695381372637590429731085071866936535046788342988881072464542559363945174213471162933017379903991719928646790840669648800327605068280597689471798004383960976941016677935023294253626463200318568162063130811733672801871281180949782258799175580999708340234734684102935992451629118876262527360273592245888713749481711750256447252542733659254700581902211748076930623547658388535237800043041810433409321146832585348033111774921538610336922272846083907160200088766054493249518497582799228120766117307519336393276741493935583089233950180731202290641435916612051732393938852193815508755697258288340537694457980480559119374786416970785305492754565026663788456204158153069729346468156071233586663468554081267842198026432453469214675534730920434431581584155629053520811959798476282730795794836864361081213292484481354683515079777917334464607150722036973747215685975225388851410149476506566351514241960574143275667681876162024460128965443406735965045056839950710057514902226627668578467125834987674183728224366375357038143497825206684438483790183173099545347958420168299640047388748565572679830525493978808442312234036648585703038548766613871867567006377783719406775562572747834439241203083546358588034296239130890337467247742754062552268762384045522447582245255949103502114563380524077229845557901832932553418834354915285369230517341227643095860157932812816744816619964151281708387574549424742239265948817309338504259006550405672988432268249700534606325123535970059786037741186195703620815282461325242425105483440281564559097964219998545959515352973489758256053533346785309002625950011754192080848395351135188260733910312570122414328812833261595531894021806770772168983068428718829477838206675954234673716156573031126475176002321259752617333984147159886811159473436468798058911428927735927975972720872913705600324591898238927477381883057896139865459952630368853146206888370628821134461305619165181898321811656360167724654574866669716400823229824900184537746589338314601590515789513356699031908962198310243820105146177651372367138919853046514919915916146129155819521305415951713854872102800651914411062246173215819495189183585500049818774119080986773344652501077520520014910178696657226856526245582618937453224822201677468486727696701610452675847625236783209394474993443451232108034930885778268097387499967630423933749512560876792674872065590652338354735597052640358908875752594573920547663511144371474475845168883802554540948569803923650656349124292942203563370098564088377950119931000996116193615793155569650218946886052477911602171295151629338920150103612644360770700155930217328387081929655857525245776377579276895040780613426484766850855278945114774194180750434194866092059196839864337281624131567285671629811234915755637671925287808669592241952488916403410187579523423487078285081165860091249607791715543796741343860962270670583910274284839223628565525703076460905565471050096132541908545068366446025171695596744591990659442781112080629602501228214494535706550713385420205676188480304191254351952243272874476595972697755226353002152569486929449246681431434284648439206966662858091732020984540178699831726870324185642980824267008751420916990729247419173066506325134643522692996365122786231544216596774919079203915804038655759404017118360636533667616500542593010249674014722399855298390623869842582495316356533897821710092984934774255078158214116811978023738604932316985449588061128871669242750706760562022624439698489548565710728819246376839123839107526526142532064028316831447201844584889188034380422451543115286641515312958531065183092778751128937081041105831150360168575307810532156950047737378332761465020394858191256108644957289665030272053420505485001164516400703394995696581924594011554504635046985565817553194492236821300048642656981821595546563259185014617954230883350314618203811047665451383811693786997892506538168444709934861840572771410416790197317802886898789206208622546162378257080660314027644453900554831444548118189438456363658576445538014422531907780485990318033468065753124765104746209348580463031362636681933058673028120144245613479072139542855013831204826737947335394159623005894187438478683152931917479013752368749943923449321608200161945275370223653651186037260172259749462682626941357997470520265528292804338796889656021750121057543976465536794025414785278441513146702930670710067909389471720658647483685846904221507064834460809511532097663388683199168181568328031196697940942307199730273544462926706045877135032192762213459859003002558952629985274816243437965047996236463233462095543365277385054781204521471481436592421204924416541149388938876216305272182429148278996538765612968330442038625275048846985100975679553500477789587590917147870092474280437336195049505750288766833860609146350417735474611851936088080192099077399980722722137805421547573039162795093071221547868853509141411915074350922856620814182271645255044544726673540663606331721111868826723729685357358648382379925349261449197125798624235653366292068074114722911838317008173547692810561693639132293228575365561508252397792940076618702216187769973301998353516944144697368924228478556777029861168814927883290166192958386292610683555135651828771236784873848505067176249258673872990374318427873366753079339928783917570748975941779873272404780499548168270882953764642894502399446521842409251279817351833561951960902160520337837835028038053814525709095523281351859620260112438879595187053780173284554591530157352828917301084265569391233601154991585465975201107244633792945902714908587888920373490833310126314201760935620163624571413343748307997001536606495606324930998527524534922068590649026971758229363846075911827349091747947594823906473564167791867473984469427822498344901215067134718746618995327286585993000995875151264866309997005278710103436632099529431407804828749211929840147912561884856203405743595240294906010893419492540135596211928652772705700791697758695736019437882780809470781073673115696391650264026956358497102154901588107888143691196028814552522900264545580440668784341513883410013946767429199378693485435701448848258627705779623657279151107445403854610349891015880800407005330290909859285986406182402306638777957736009276527009742825516793901983588940810571460412299301889332701530885735158619958828262374274980259772434929320132724479391987342066956812570677052079156282893356862501813336267422139442379205600952952286999518282625100859035982566103554871052516191922130857007206129755022315770156596343290595500196217728452770234216872880096179282242140015464195279809778641567581548816230613531893195406654413537250228552407842482370047584667134879762378949700648305747557124144880291522314008641451771265957503455255877879585580877367078064904771187687457129347840302196918266147573451749411336968711446826173420534677533475674299274477881620186500227999467741777995258211835521428397053941636287869291038207679909227137803924147201341923329128168535470021753917374283752063835021663229961904852200758454234027766723399769295561237020688879880776293457173724862696346379209573862519319919476517806813870666642584220772165517137741124672941270274186000325975550316481305347371786502009249231725351949272229492083006210268536035836396806285701157620731810818669928576813095568456602661760419606825779995591173130394428203923459160472484076934223333140942493071258673067657423274298249037780303110363756617139153556201738723580908353309153472338047639315496278071602861868184004932376373758023024665107230159653843873428413246303731404045551120418792182917032671060994359832734785250281359011485160729830275922578954565424209884396856687402488849165683021708362382074986327434906697494169281948654126173418825029674918403800904804652721212903844542762403495150143747297147802848056198736304655999234966505000020309330945511702648360069781505853503667926098518901700581917421622227631093087997573715757092751638263241660992485598585476261398272743938757827178088557788874192883944556522985149683193857069944054620372259322192052989380851354493797777070536383329854982372583266104194728587986137201900579021298707534140714525536478678348090269110287598638048152125721981088463760458519047844585341576280826336196478944180141682427598575793582359769023871703116045066420830658653279484583407999235110746445102606911770925835767090233327561935064592865882062389529539409751355718605303388072078631348393951170512469938778119245336668546151074285409906668442917512292178620766716653456251966943581011928523311502673081240832361102634371868508180073258711826108603985033412278738740167745907950921081517674674265429340229845921015293092290283734264857131421618649745168184283228591970551862652228530290376556316495190785893822477595889088474981075949621479793811768063995671257128532214386928611364120665444492879379929776809746141878188845670530929547124177430445237572891374317310468439596303732651108269625033517958479021990596573257971972112057689889098491983506667018567201352585068000093143337331383200019341335774528087296870438348860513873823737484105034880572846097391272533700616865603621304998952926860487148049583329289536477125138028168621657777223661190002298809782432097877756345502797214795495367665252814153301312369428458975236398618273577952980658537860330630847489893773078768281734398470012641251065042816070377453106794306857266085782646584432727738758772418971026578931942443922939320178129299557332404694665174447668426981804437711500068071282699068951595979688801043267849358700261781053906984432933338082480938441638702474489886870809968471567743286752820096055411278053624787072036307358427022487298232086237875640756768496074690448537848552489965947465103875615732295155899444417389126610874931409108366947513211432578970276737757269019663914727263657899471253498739519029563076964073840689068633327706045449343523673387581327286111912406708153902016972278299374337942260622564548844826232998244233750512959654896214890399776033381082668055923904226073522876763347149357888655531736603508153725851634649834458135590716190221298678004934917013642387269735618408660157672492147280777682338581590132093730604200300145460197595234230590515746054510794231210249290558812492560907075082538460172578007575553663451480101174630312678344983028801534522606563691548252884221800471698142639526809030029946854634163960253239586163320378492564367871541261991605566458292040249544552781773437048968592754777149241243790179402295184662917006668352791971956093723393000171355663236867881430563464611293060353553287271962089656745320121095678399623361373166052243413756250222876280358939233061519004592130876771245216823841726420649385258223923909227824283138595882508386578605694235991152807724346926769008588033943205521077101236137393933238037941159562985429112100014240675928707835423317208675593793784144593748252150135536641777167176787534528222230819801696394431633045763869688879501715404740531930383660856190460233039115075472440039098552041160495963441090285018631443694931740149149542637610135847549372784971231281417481857283199497992347370264595273061626307781293416866572715304243514190631286433701910413360676247620527881537196782601036902843184266861782750336623185752976668635928737861601773711095775706238269691866530232301061328018712078604639038300092347987600391319513497364105985796416379662376583908695540061230762668614362080604375553518929070777945441642708397389402176651024639764768007546789761877498815124490136764101729489691871085878830637570089043520871968434962895799508948814152200029439691358571582220395567761901257658075024507381391855206513912975833848204823066435076462206866178314393664017577511458136390646806813224078641848415989256717580834289143587201213962892203337583331838453774666116872387925104974167802880540950129125956373167779492670280236009353549540358218032864824215434108838514950811173356973148062404719302374977045773731800511567220149175253330402710829357745233233246728246585898185544909477482591857165920143239206096601068121510329749369086354351398902983383870841792204444297952856421907292835353259099088927041841679673994555085932648189622679128288913526400472507982425627197981297937033200243463261537640096681890754532345006712103726463711066402664060105763496813742828984207440072273412340146997339418096415691323050621591312600142083768655594186166602114925510089111877523215814035348751170023334275097407952156705472699660073803372492953477666753065852140306820871296191529433591689509311776226668908707029863464116263724104533385407895613069728563876781076479965308510240049875654353902519026349214931146815419595808044173936205346110773175898853470298731266557055844858207658117380670649667098474180577636778338377739187703307583357449561870616826150985304640692396121056917242071780758606603441760040203705082425377392589362281246010283958205524985425818093221624700867282201783891536614075126030615200234850347845528971375579989234681986046367856518183478840991711555283196439895871882309562926263930433594177866227737024513385239820158594200837951878739215946263734184453428375671462612830034831352559232978225275972444462151240077454347400942817858633396885425036412709732257137199999694154013109957921249143808062889544404224331214294704272725357104224353929917405423535948105958305194225967637687776833220111821142382247484337587404046193895377821283207091523100238142908323409104433382289057551096426396185761322225033848598066518953089091358115972067010636309441182774545781041657866356130823190448011405079937096559832091965401822105475941601367456331692151418366865816342267799543445809937688692041294377080897838594788300781567936666073497775602275215237173341124838472370851847506022331561026383862641760587221938632336845493714384191675441650483788733860420623843325440383367157165169376056474499024938693875203762492583721089756800827436309021720134594568080827109188057207614894140620996441588358482443442143583738594934472838081575161150580761210006959147665796207229592003583984677176255668172114263122311202297681752716567749555788737254871935441179744704949042828990533938904875933596456111894090809547429534757261366927486960809662137639304624240261536880175790425587226602655658645657968520926747072807285673908759626941054432283068926800903481826745680614049231695856503529245123853089107435160557037686259565113642328776658812912957372827456159504187354985384764772926383239126025456266913676068755189015960794479169763433413577272668667300657383570616161041981372953623709553661507250269201798522859905620018535753787297753279561392114881348792224750177244565859130185727088659081824704243498019100429332191252889545970691559304799159955097612005440622842964874703650901286921520990506199237641281921893788744859358854185879243900340215190101665163163676262384239088510055314066902691719903917461119913780534994219690722105730911576483362273042630731827364950068051217375656335030272713282331307770404077074322710619954861392820556481168920515787083053647432801245116395316266630305586945826692223855434637932313971556354218464907976505695190423058424452083117634442954694429134649792519397647163160151739460471431221437403135590299572360568283996777668524862142925854274652397234527473600367863621738594568653726000239496639451052470156134684390611140343438416591418927963723728050017809088631862804499091836066915484904398970140344946088253801185952909802084613640051625791670926184004269259790734404101814817005329370262201629914568839402590854760074831396746762012748464730065999332654527577869846709331872477249154357743457417258861563705123568465705790572477872781915160755332920397804413733168992695167286099111286896185975657113609104552929384336008203108004981449858064667130057024086777122795973687284479944853173256262826176820314107073777962260066944926317328162557193634187764459601556103639716951643905585023913017183920924344981745850089987051831722066383714937262242510121291161370387244208686859190010393394608433520235176391985999833489389279869251949058435734936183639197466560693680645136414024100798358314615340043681527967475047515613768104448794318297232129131851302742481009254489730694369647814721088452521855591312330977305714497889810018070450129175199201096048857540310672130647703098055155325869465494649999313144301891861746891829512380459374163156293040389434857605283746761365817536206691427165481500879805400340233571571539380928835694299556808203362898323600073863435615060730342817352031730211949025295459486467114651601089841334440831390386820577360143175583937603025425065488010255668902340916162666899074651854617919938609862328112586878306059181550796583357838983365871088044772107221658100767102606707420149772144119692469767500911239429898380001962989239473482746119886130408940937090150709886255223266239588496353591040358147062041353126729671084050827793640823286580998509799692473851531110352552646998146570780185685922367707445116305814899850084052186726334768469700429616755405186136105449143225647818647901401432388993462268837603687973839976030919845366545199741135032254760892976321651171863642753740983322591485233934486338639411714869474430778700498684217970715135799528402728675074776652001780428623628840406804745097307844598192529702847959666911198213132422952395044877344567642165405797862165394840910137920215763667722992516044929222029249987618342965706413580957392865513399387449322211793813803036350260942506318350134703322241147757638583877498624038080173204756026777551371822018105684205305114087211156341498914055822204593968884711030459059894514193379986205740646833922530565663117596649403002026592985398655517774360359480489985317306380139802251417040834325506229430319585215975169154616656461803217981152402110107767357472788464686615484482148884531197216468370595408402811731008290927166070788436337593489697573932934582001643543397523481015475363678703104097788014581557946778624397487545907553788763479243595418258288666537680095885585980280532252631831075797047096273907965126714719862232837523279932989974144217733950341677682110173297569439882495070971064499277130470040835533910223467515249651302010585361271841775786677514769730747102839361204236574563887642524934138860293111760001057010107607754224104844604454691616936167755157866393334703499953536658609655643748617103877252419173248291575344767057669997427508789449807804428415150558784300864875904809122011355586030261367255516529847673281669346095168774859759515978322642022113071820473129409427289819491053210154272530824982987663347708771244427837770334400708309290412117252501824716384892972927729429734016378674171709166090582424327174741504859639296208186228681927699034035721939080683722646375148153454869335735929596921865329380227394844393637781200105754523570869485167921608496766304910445556848128091662094939297294439706202579329856161988741489047206117065050135827330503368504202544163016945110259608085403843350212421082985194596631583745591039640444118317578309457709156582002987704020162160874354832155623851865005007107046529377207173930468763907493732011129493617883667422415080668791907570709448999390801890435978767183535569135829848288950572976025868022594897765551549085731070497632406339144391071128177015461632644525916407052799765515860076321182713022509186381617378355505306663144358351565170769854166624210461159652196830388158552229471594745048516550505664122874815236376996661994595330812059518057701508965038136891461909245912664904332284905354719737423137502916057667888132645990710674066612895814666200588794081921266799607692358430261888529798214236842048784840556105597775042265833302483233220168711964611927357014739903370480577281842582009038656071602505229845801824070260963089209426168384791322735960389720753768603654654327240853579215760002895970753402208808370340302740663218499027981481684501925690257280515340103384521717836426155865114154792080498044261454974257581020453968740605371853731894516548021777096442338808307777600397182152750467383705436948862630040601175458734322261918231975122308423019869347858034020997277159335208170511117394553311451083364208267616816831449983007633864796150001013735766265482991655997040962301230739590146380590227896960975635785758375066697018941513669764488437389257696542690748955406008641838350061597843561594259762964989940086732768519293871892493920976725324201687273223426652037960373387413882733258264507135178249308841855877107867877107268522567329938628528911680371358072186738838764761116075743864126960237652561178592217088631093644908850512481839871442775062757650361617815312062115942752234801054497693812203656596708743636769969474615338850861105478462238659045763197053016933289393327611158596432086402283705681533691725339441966818491177134169936366665593533880094982467440565803354354120209074663679508321669420331194345294605247251186611801097310054871889953257702371112737678856500006245683521994074008172567917789413582928758901910151622352893302027891221894136881931732531381949691148839027728172587915051826404072728197807813415609574021855125011783241304137317259368077148603524745404221227744344808916225669802572622398062279972879571627256038392626980533029878569544197457366753632208789962668612832360619704717638475479083042046871560039934967956423489332457992760989043416059838910637386108925286482885070467223541570138719201163383619546311774847279406551303850193521466243797193142527710748656815645090691662904954277881003386883982639101782453754155124850093803495381966158541763388325080280382441234375196110307202557196620257844673082611792980488903639882936211697664382115892341329292552051410404245901818347571901243986413524619920677037538877886523309207985723742301438262669702394147096268107230290206831204414167714725762770547898458505903691444867050984306187936528323801491240605962125004913347448389414183939865599714808813586021972979913002722371561569406910947855585556959841218311655754366625987940443503647038306865941115564790579279667036603615073406132988268689362243615438884674060987243306431704515044911332494587980341326513095736625309289345045278566512778158094131470692358795508222076979273515023462458932195589181290231482763429548549709020867814097237828805765497335278967264113916667106371311695477526978919419313193971751823277454989359520534311570450447595784472197592173334426565506673719587615366180688876291492738794959543146180635024772454359672026428155285601604190608986775491038918886930340686326732705284699665680909666721022551497812753202186421070588141349781603146328877741932531264689896079569768236593659128071348348834663386923183792042789506572428730948614024355760800265123425305146528429637969730449459260553196798295214464302777519326507129632472683143415086965184749272099329872744345365783190486046823271429943453371655274129380202421951924206392245901726531651825018129127811766898023625787592609991599659855288752048853526086330032657615573352257055783578968394684715466750084804282241102780772284204714585965628407899711165489304274613414924635826603107879971660097688548459515813881102689077811287060675054581274132718197048554574023891390519262076895332045735378601592744260180135110284852758247809119933337249991023237940480600888651388218267326917360672688972522173355483203582743486174457181822854659181835564229287765061384708096081575570804511334260133242692121892707069239169967623354748053395717049213561675313405566288982165757207526900483990351465823967341752332830064830396636947202189684824801714634277579716731438768014607634618706699021315950534509620601258616451014546869627149015247134388377236562285890935005151451574709152263781255328564969583396017354580953609886614990718642687917620710156345163062529638242604683112400069557540401294202394675728020993380059894059890848844905682330746139545465648187404646534581213710277921399208339401389788255784210673563365788979283479168155784903353980706604534160066069259557720355233316757660062724430198373048458430867410058026996767993681506364621252508264873714397890454775589114184019578094282888790760481603474673257518637875270921619799352215675451732334928760744934965424433906911231289988846881545972358583461413403373794300482566772847976151925202745767389547781149685965811190497999023545892960445404359510405501758597407257622136896868428706149983602943747033118465811525386786035572708966579727502408737620143398676228834202087531442308253765843300721953589001535301662189938426134080732136950840149541450673135410967799834362147644775113337379692683522879936409407943869210938183777269741125445306643870851287015756089137819271004124003077629411869728482070161290844869795464314117798112094697034176585143616331197712950917226574677961130207667985834348636317508239311416776192907414781583804389600669625364430942667397539472016731398843643723970321513917637560817107768173471655594848706573287749994566599037058657800637850847822038369830648189378985163768624511058974858498290458042084716566325293811731066889811180262503275780721064462731802246359038770521867615989188164631091415588711781762096735123490053101918390642103818322076659027375871526514928575642495776995783003096202366310648990737114607395222472642386847833089640281998082167645773041801612689309987057007502002292029412318987961436921012290201137185685382193605106196658551233694159727678587529688624675419317339377617921523322785523090790669645963682160663650030938111495895625356649525295433570054467539648345267219257505920709967434809795448357354766663086730488974623340739298167118332807363366349080251117000144097720132612271929241168503156025144745563320337304840256189156194090497127133190813723921797370807254691662974018759269233357749396011509657429784911761582888969461309559455996218814111121285223995307171542392071129481682156842100839390472174609220209921912712505158306063949511502909700307930938980093231908587748218496152242552814585139696362662476886414834036547203236836389935016073063238920740468119077780853062522895420459892531198870948750108214980325267837452142691554193944032054788725801244264710577531790081913530706377835033831496242182168044350167271186736017104011258187111457921107964559842477845448913538929893536481081486674147564528956514097152750101656534394719844189291712873673066420578949249911529038619707762549459510167821166425312655906427051211180024568289683434974276470395668172727364598823919057343385503466884458416395171834441378625595168919392957396564763802137486171545912710626389657721012440083061525498307938032282335394925347391188758188277819583936635522170591389138924692419247578498062939260851066067599939845780884068106912723748302230970579866967511875341157256759458643615570586850517970637626312654087875292059318647271448529118398318999900549784941049994395466963749052705813344286135199439790537480669608349766746797047752892843755745998253983553846393184319556399866161318885785435395050381086198065317575852369199369531458673115418828281089537218808761709972187843421355674995644463909932767798916005946921210760801267540322574184678902422307393865146636626705932059343072753593388775728919753434854273681882210421488195435626508340729504023466358220631892878439438222019260474118955014339467842707110591799367837983955098786194877829313281134862515835021047167484919298205726230530268133764974709822893667587062365330226276569493060572972115949134992702151537586996614128147443123116452108899385954845232814903391821305587977672428939369800530003980336827125166219463757771254336186757992672598711136522964982405429414255667667115983962485379955669071998345665528763009951043388512525195083980310903450074122768429875138019238242794052146201762507673144300884455786326646560910799731302225737550185384329021681466907547303356372783456304243781956667830224091802641056933969863167079209351385554596382359503304048484810512456773495864606689181568471933797091253441701978755101350228895132629668926657201257096932506902881091047384670806810348649693585506663977499287035494441731022466658880276160572674901092091594828157425350033246360410122792963015470304022205782952410882510880948916302911801673273333862930669994635678610990767246096040347423148788156175394364874746346351091820353242905127556025981450008560229189028873672525761866128519699180885106817180970753282576761832598740131104780654214101580633530474106188580495466560422149444640494248230018153860242755652520114612632359601335944080565356719448111040273095523745181894183771978429347930189944798450834636420828956482927119256759125092772485680860617290467517750023292490645551145843928390505610900446325431032130787199520837551273708982885406459537820214110503739707219295234694310851252421024151370769478913128041049325869110518791533555956137246801949331552384306814397544623115923648503681224731672116251059021234916216774469358570667511254968609561341682688209232815445185712613171014752347337741972869361517582843515562545724023888363545121810361093899179433741659009624243604995001975131974371623810151595367187309990551251293458904888831466867718770114936199087851957789416548082429765442424838943626665514082260072333705686241762285058586873626976744084566416495513350196082074416038453579149152229435071854196622564449518263262161161007957007777331949109929172934723076845865582513155852315571286514159449997891416374971615781328964670166746410495114287305477811104662256196633189841842835050795450303641484038935571666321838208603514806976431033211909770362091286383737928060239666560092751848963846515343798488647139164422489441695202326110493363843315142153298898687678870326675869614076627393937964656622298244644447721023443908390043767380590276304908846571485377351973324813561164797073701054465075574948383849330026281057853838540888414392256887608320822059619308536909625270412806759028151668123188168299394749570635157633203632117076430780880278781520087948727125227598304081902001342731349125663111566909818113242550256278302032303525841478587176940401165736020553598284163106917019239902714485854980715782829825534019676036614319546580623268653340077336674189700046614284596754277401113195593455638576564062504637579079730423553584553202625090799076123455352514076016310962392260618529082649374781168279393637743528382563203152495534530831835313344529694621296593758572867022818138572908493382468122241539282434322104385160319718296869164649291667168709256762505431592163900622378566866742110122726808241402399909942845797407050414235479203345825428747700193360215703454181859466375471261676786287776167204558465316694721634801631412058405922945874093297039940199559649600516983391852299186652340902152894608861434836461885667930176226802367733984631667196189695901949636324331753899338798741288665524135072290270005360621914667616592184645344311295614861679125609157163047655001234708436066733594320190170425483846443623322694205734346729806415356814107086794794023493576837841062933734163329086941096562024362822845412703138768680398627740133108947851314946795811814863602777074284105360887613455837711414818274919507153940219214679476598839718193557573936339256044275517574523288957998644154939257717450060760167086459031485122758038149067269260936299487805372736890428144136208414751978674191389431840088431910251497348004063702245103756749339158521047945043660922705359683632521809030286659161380170067036405200154203701845521290996705634442723204878648523303123254716099484017602214662723749381406781235174768575859270466436416233689523094717360779053477438300503735843285015660892053847983821829473581916585456030900487813944801320175167907958919360573519544252206666054096819285278629989539047330062307771597537859386232597994952615523444500840759474740526654829335074520926978816777244492747907436047510886095668921960214852622637584424201837160098994463916522599995844130346338344811190291860559206419346531727005301638935962815908239836041665871899981301853825601690060430620907090926780302034348826007814922775128551163569483190237467196216021301843429464772561511162510824555599246849688865949712355234482078431081840877149448859826138332600820647605374336162632233806217524065923633854511172866969811614129918339682737986451296263190604618804012494394315378498746115354012873456171096481361860172927553499850074425070289178996662061201959871048407227319022534515167016644580479191956201836861700301974365464956847628059341030846009630321000951316392164302904150981147296482678090962737783758036419431662443706907826619210949025819511279257632432405057663191444308608390754645019340301454428132250826647154267461186546810202021945524702258212377060814866986533897948019427887083109928865933228638169683075136124113185294971121594489574352884179584268520074754965573702920858214615842928695083436905436909633230718321866968929636606527147840989208246408860479124391649355120732050930035491690286808265480056038500729521227570455778477999736708310153964786404303013462437596542228030249549320105961040568409861409346389803910636196848915451784076078738963246439811774482521329720523593038509194151049800656667476272185780544288060754673948756627920133295835273532041292608588118085939931392436560345243710866574710164827938808869137519430011382716023241338748043743636096043824319497324903851876345883159871259782467032879833671504518929767836749325328386904090260497799946774236585393847952374473084422235768265054359259538910413218400384473915808748783970717940339730857180812238617920470794512666632411342256655171125394972682583811931866641323377156251669788386499442206876327579358547928083409539264332552771029504950737934970656074557896621059715908700785258214227151507509943094791394436668355475438070852354772018408234697772563037761736897332533784018561715682464171630653877704540586004428198357486602844858893030233904920740771648441990616635007784463953626153190388479608715400744257267804039029036454418220635322801717440360647705567166907283287893705405422098044455901031903812525281960412054262645863052754754153350244859359619045440254783299487398595769690019524492330932998637584090186146231883366205992950707167196341339959974064217730379269017279241641551851923410785756732849744381055509789166517027421665436831547258988911018271715430276005812052190680989548791733592791793120943233869862351899943783252646355992538183725085903711172597610195449511040821220697471539572582968559545488976264882357398795298518447855831075703326568942685770788920524135240922451675930421795003930507782790860096210097600192223970125753919347208488718284886016230789992736742774552955812239397433897831037775270375291455655102988544352009404511108647869908132598856720675206429670038945535847660482847773123824552236936005660412297647256493101594932297347133634172019058665372013076013917004385945978094718416372784923787432133102817470057666029292896286946204239210490184255385884590058906849762177403626394731879683526022094803103374794699803063606128531142243271892113919905072689256044178025607149779576478182065917101177291164116662046975843992629882530974875994182037616059479650493510529157276500656117412824003666578266539693624369080651430887547894098933440481267058217541623006004014139529404983268780236913136204750828543591293102223575650483021188734967306679149538462106198592376819997992756533797630870248835778940443604554279551987177080830685703407508264225282123981354146982444089370461873816521870787008933774356158134612984058396045781101293635710538770068895452394847520651565578723331906414982336000577939608247744997655417534988220783943572203337858701792628456577132289892932582211945701446112344912331348919449920460897239905729079037561455836278618158511008026857954282617356571363776783361806347161307336259047165375704614382366890150779616804148587610812235329851611135541493671698824989496952275986894574346170879899369466860882009217217486070888647825731911647418454582937839951944082874663567607032001121122520067408241648872990568571739078197840087707504102208258706639933850344622053802112838749445792302304497466836534515249043683550153981734263482203871718815321412105916037460029685149014684889875670812204119650757170060922137001646800045268509465200239108212650830557821384235345774316647330634015694692043655858842539395952456689459635555769809048305582988685475494032370008943691424754847009949456920331589423733498042472944778536653856860433407727418290458175916290191678811130219440916809522112751185047279317357266506317625026159401400249365672984998196490379135828876482945823589659119958764844947415847035046268674220113901846691145966177526431204979616257969802207040358019328926541460448304587141351954930521161117029233965386845700026370503362240698603022565343304493847480702256499790426484255449642654620853155790841745877651183135217177329616885034020292952428786670569960890388446369789620353384993094893477932485157960810383946012434723989243325674696509030526738499099490666231984322695585321347694200832348321339686091396507134004234339859246072029356270186038111517806789325180359463898506025172104887273528745234296616896349352354059547655460507659641567521196453837750647255207180980709080481698781457526055164675049801488951873940120599476423960259481589650556631506272404255211298371990703864369635695058010130219178206276917199557211708137323205220373983408174160405594819501798352927797557642110153459907269163975112210699303407793297623029570650611198415976671234527129121211963522666875287046822232464302248341960640961294978130447373654909307897401964441436963185232617443919967194267294038743249047394255494851482631046460742533355849168162310797473444215913388174821187701725232648925836049793788795621606880853358723031095982299904583711784967201398128667466800249070182462172587914517817637467265430612656619117188185112759770250273760791585551778422041941286620027681447282664484610486788787529037308967253319854845419820773037915691458934313080198355477975438983245272587905732295197530325107123297579576197287800928077862270158043410904548509403863651355853633649234813450846299585904979557540263770202134880525378822412142782941163973156484603922284943926395356659218190280574861176156797589796042422970797387820866305211238086568074090754024185339924969427027877317808695415821541942996606414060171719813230901226956986214957466231759683498988634871963315458421634620833199147845174594919008630006882843401805695912956080440654287113857408551138474342575064811644363682650692669405693449118256994753573380069394845739624924403454591085826220737984117498742895677077698476857267830073454228493554330688175477982769648801392806689918148219342343757120530405742166214061657458863730676762945835256266279855460469584894150183773530383285541087691199568121809774699697315454673200652282310163594854069261516790385492927243453050115331465105942882768320212260277264073053865795855527688187224311151182962796784213821889778235459008267505490764902123506734464466248873926738869599561749798776658362663077341113168763846745314678274442767877482837899641289623776331194699093916485844038350018765441446372472364332322775270446454732885144440919399131549943412591439641222077008662148465566189204135531631810666740860669297644414184883329728105808987971364147155206634583910362488540551208907382189108724175578492394086741053178418003785563775844301924619525329925955931042292887499357691157516681126748691830299148890424900404524253440760057472275160915941041444908064329409819408223866906902479246630386627956989021601407069895500517221626111603831848166978807761315993745344631236470731791103328013947412209291135918430284145087764391767086543603058350553602608245442658679084224968516618196714279646716092279670467899955967502245376714323178653836043307862586265694236528308252154451047472820504494676686742523727851637649837450136871045556204587139434724800634374552586175399063316592517029645066982771485867153504817993583510907807779730478683026090892503837558954742728752431772233305363010901346534031718447500294339012445503278196273910329320728470149348650032258861943555949602670207874379879772957958065003463977916493698104228443604590313328539052849694302010372520558217428387188597224467851645854257028311676572407911815475073133522101740525263934941311760632596443780519019108413657284827381366406263549857880411017474325078395818624189338490700542771559848314158397918411514235048407897331426515248134877247931337058719247539502534259214808061221478694012362761190524812590620654529490405308140567242908507692475386883957323275635074458816447019881034376481507267805998338777770613314467657150718952352923054963016218179076845218615819955319850253949403555846897633182217893602414582665322539737673925494453877551151639646095684257875626247298748165322873689627271130006910962691188938248681928997729819583664423832636526527465051166018573916074142291899843583188980428160958472610399169567964922806441594005765112738541064911045024672716775690198985088567455138273461356420042648571899110157755728745069140841198277232177659463121014956772417956637426006101464206931925561442882175144573686631375905278699308844151366203179009388265823030669279408936965026999513074825783665946605087653038282038930973580265265693138875697133362965497124625607658405389732729358322581129580719043522377797051179497179423803795863828543124807777288061332918161573621396055892843541724809395721058459747403539418088916407775472401391311688281052740480482674458759432010827361395091709594776803313833192762333167593474041929227743192168225588094496591262970944113475390823745097432186794934537829335103772026219456696825356874334951307877280445295054827691903181471483158929031865780891506252312609704921074498234231990152784667898031312269394711335553428401758263857562804385306098118563256575593444986820516142204668689888612196414904457651197344123953034231356191198194390445479649130629174796361105333512587311605984211789972288068913929398921503623136000034471700874311936375692450486073508289054031317694540064602733777321397293180739783916169035757476699899062668588662972355057171604375783506523703859631740131511872348009198782986695927633251389185382169234808220734729734474961399953782105692126791545493632025821850416679005782413213007708354505077309921494291664411486721684957407771485544324859663691108066088780435486961333989274381407976375625597838431750406330503365692220177299733357311823904657774378654762141127260533038640629651382807031845765620338303095817438032539210549167951328994322875609720125028387035499458933815846778743690720214209748288829158596429027038362187038114008380102070788920928819701556953118151915345747256494826519376416122364023263780233085039086013116431695605360801409861703833995086090850332310578778425882435682809489533894816192848639745151020628534520482495711398079241041473438921674437519197720984260165462880796194068526762383073065449101509722267527953945050757683826791944338560795652225478609316485380829417328297504009587089854479042691382397923772922770717596432665013865707907729591285056667045573539668450742386091493101232009199651901916423373618084225656982014620110637467953370188021097788498498839257458222214903095173013946665165218167681654603477963148094344545399515222336510222286587171615439055472901053129419587119307047897808448957779212502490121708522744462199629074463608577086286245881168355495025201244554955462055308712727478130204753373860617854680027253998342846393227195741712707903592849768550708462374017854446776541124063535468138057756977990212073846081624441694911760542428164347438379554639032454705681266478562879829711482072503912927695650953005979096166112832117735025805787515050806926536810283545010682778471053061625676860326400758850073403105254471132879694664915513804781518233553083253448473703393848522939415127053097122047435564000592910059144743936827156816078973639057772694152815566352749498180894265437395350228693255121639147124598515663532332935706202915403374014607637541164755191791437336112999962417956728496887487545202302768514532436669415838821446199637354889951834921095079890244551757856453956638587066967993820231765367366850133268145392786668317229255462707208144448091870850380547161622463165676019987405208905121234198673530142618114201112700732461983840539014595791096990812896897801212750934214695559940257676259374848241129359054196908837982779842866857625248234370074565532435672430881431148634312152830964582326497337531624507418007108585262265033885500681827759490336230353658976340913098037096900169487141420857781969525358441931010067299934410358847466075650852009696927308694020717349477951611243712865476237764471877701473712871501802137887265086355761044503095905529864149573721241652274846076450910104602221248314329203096965038912814147833230500039772996769139265283179348149017424027439867257746718026820175857040122400200004783859606017340083511845280166146984445328902114269088742721408808693942340471804175032731362027902771355823060031082495827419316285179516408351856575802967559935428077943599143552011439539490763443115567923349113385634159002266080466557834394380457312036758224401508917143221180539646038401010989557387595905236651598690304659149736153919990799392085363240056223383991215271595008578124947330888473202258384070567234561209576910853811732013345696161885141054720010462338467796529930640602215863696513739008033007730667773472325730561924191939836690987885742207035949390859585616079418764711033699994206184316498088533226957489265052088342535456681657445728148842049405806173653379677898883852863150539696756534249758218852831078267310648270602306256613315718915715820421118153163721298964609203523928632613968658144659809830906725559902394841491999389710607788311257430354057595385503513434717279631516999951718286674733137619545680930095648152914837653665020186956180275685211141312060303313593276557883067316179392819144053112198907495814543303594578229459390216039995274658772627733183112327614659708212607726561478166569313003418101217703951808782244453408156920088414458927837921376302047692112173580306839336141058873034968095558253002315325650959064429230642717975395734238846864922761770441394488928814097565523364740037138796773394676787121110676754888501566255946316103240049987240674131170355237650107951817106553989271952713753171359884630163739668951482476744447793264976123010802015136530117405206387132437948285091142716027276566653742810633586283872521976172878593849634178656946183794265214140248704794057288212825286024648280403593998915556104980631008503826140360568516344177988843148757232437990470544080131743409466694567417328045557195807386694200776961368495755388692046513767840629581050499319079910605578725699634566348627090667201752566927642981415340000028613591306447404374482975180252807912875489300319989365821115555987843086805835453384017032738431154546002592624396369879651588956033465014985966767305024588558825926294814437682270379413807923853213960318767651729523677366654929173374450198714385692893311213198270215899073589182971003993264073933587760393542969723950634472588739499656261418608183056289214905850149283850599357546956760984343493065107358152943675747272754529343037045412086002924626510272506166847299623165382060830421837653174886939749601058938899417024075423618828608460036845806815538065761954099221427691595650142658282856515081191997410573277071380384511513546692536143177558313088296606654371619054980187002156656888687435308713937246672380987595975485006173419751721236942184080983966511301225768569161763104502748335572747169433241884723636850246722224501490712603183568620746114518580589321640812198739932755045277693613413144604054059400255630572586168635750380949040086179493783816970963083567717786932951224236468939941789935433386867044384169688217333277636077375519017819306741889955008156355318216337033349336685752336241817980941701728337257087101263826617513970140514589769267028366154438091423897271056326590202526570962792155967396135529780862400262190343635755751993338547265399911398269203087050584593736869179007354488696131533157151749606443205931550019422905015147610365846992195629423659209152981010355605201485834813682422784154897933763582253424898991098745190708048460818363258144554936542152532207682299660492243383784890312276173377498136410489095782604334734842147599053539088595469852165800047256986548266628085406790548529270958607052221387471428788525257102101631150302680586114037447690714684574024001225451388220898790157513775596667831428097128628602106566666514952130297821321111120782637045301812531934022197786371735883902356321145352710699813078232545621922194912218782510521513227062287925192151886571057208114075743625325593635242441105516634995840433784120077174456629467390238978640573485745769719350209434633131554335714938517576695885011817064323361529835987538224999840186032777686299539074997358980092290933524374306583616355870873280602363742804848805878218905742268589862155041747056967486377080434065125974086206571788260658781960481954940333135930222459626722884487313727778858230339346940983240876905239823318006971567753603390552120046023029470012660491350081108601675202447648775230857940186427118404778761991204458382466996228582872922183871799549068391549187053288456442037060608632960430304380170680276024336866501144572711356464205962555734494573176666967591149220103679479621985383649657119538896040061079175987020970454235757980026664665383877333664084678376184288732656273775659384968821487356638914758861259093036656007340119672861287657455370945839051759591601899328179980027442966620543398196783178368906014811589634898186575077392355119133999948778728523291038946615058760870729863553000042585905263929049615953741532447048581246666646312098846601711188999850758592827847200498903920720570297406769133125418777297522214767747077686216656885939816063063253986890089452219785641818300252106354345500856988250626977163977687793357511560399458381154364329106079287983410084597177725995037484332438629120473841955632377948785361621758910509312760651527265979394546437234631838205079196550905073026556714912096932523204703891487987644070593733721458946854832148659365051934795933122003023234563807950664887607616415907708288382280171439317248577022852776916623702841549754977158293444882682843582630384710876712832961142562784613975025114156511256420694843493875947441665922462591741010948627153524195688281996914578885239358245494287239353460578771078243230130676380817952300514548449420062427398165843497521227112873836842952715779440675584683359029259812126734823989191249623117773640672099554583428647371485128412624613650489602710200556643662983157502863692135388745786670751469850057313422181734262687614789150636407723579328035728112484633286073220288442922876382262213023211335588822184044043098679605636208094167321839364530557593479963475225374718032377018160978543198080749749376524500809195296357235070001803323830464629984003118648912412815738955898704650126844518192687682240612324259494787454930229964310855108505987012472058375486972502962746242206930166756140663132158382050798783077356256660626634539352348733357742345216522631522656456767150390270132005427535949353779379550536665919111022024797074909028819467437644250906865330169566126068016999418625811509262022985056288163099892824251545326801100995460550844691931970498588059674935518402965013221292132466505841904339732360037566999387163678962937502070135118937434444862278894145062901128173550599214169533044372807672652060511785289385389677664555864313106750883578597543453262162044224446315315621029784484341788601103556668238597458961730554779679181053428888118893667698894712193213804495465939803214109960791147542855756694093699783938917444381134758646313681551838305890185820808560740692011894436552465194398614131270365357802252104080965367306366922979400740826602955518545007775634041635647569668132537262451917589742599561940331540373073288063509281501270971697699059649669176261393919080684893454749228092279895100011576768853800989697081790295258010932047266611670281401393781806188735950566949776721334760400452456165942372272048164995338787278184883365499362275251889750072904663984395678128240100430843323584422695207208614976829049858992780716900602314501779817618124777079319444693485323233730172240840755416741163198921322996634943016866020402713819495401369252109346669305462798154498708782422168690768178416616504206495321938221119237418399210839933935870329118798817910956391795863901306586919466225453868696978496025059912180892117774705397098225877539642043199370620616430508566249431535969887570753210998446664385860415697725369015077827548315885561227168030799099878448677397156536792634829094487822007212677617577997542702617340053999335359553723986194546828381624758687477894986299029032671968019447413115657689256870122471726567558729188932120564198364447508168873070885671927747493207515836000831060714360505344777866219103380686176600578404368787557831081740550781230898206646576850809298228537975897278160168561076459958085342583515261973559954230577728799970361863853537168528305652894746416981763494746804803196020306850899549833485907156841219229614581338243198889601653454486229714536042427922360119313139918723974986078719774290175129754663996941548189234735687915327712366176375324196798208329843436152474916767617418908626672450551127217335738564687770364818428213824292238971004140470181893518737100275121195106097149005913624653118068264968123468049955947945829336824396955305673618782379748677414879020648095267995746322194832620854404151751426834742592969492133162286766020592940732446605783651621897303801354612565622485321999088978635656903012499670459137023362483061434725681725250426955314191221357112352753390344753047400484857300095099137681157355540034389109190951919185033496566024479741199674431291115349104489291562757028169586926498712716259000078219118177557169055746717545270860059741588119679246158539805177997364316452993510010208371995436920425005861715225050536151004219142624737069998242794113206548435659351396786916132830039495717346214357792445130358527971068548503623577928575148165140052488095042972110795928981483999115263108587554244009721115615980368083906604067073840919300192372759850945503487908729589443555759852170768325307247080015071795712878076935345409566101981675882150004590401919295493846713578482673921973303260309195799794868310683113462185104339070730729098723405689861807126303416931086452758049319548348857418266041739094877778110930690072025465282328102180536344695696312268772583997783725223327862950403602238174584934061815376419035638163895119900041657693106890040739204050882161692205509780189728067919592337110552569864203427751038181880652069489980333691356372999295389557678462908075283065154251499046759036864740885818202628083943215553395712123525013299279712729083247377591196218989919018487816912671517909771920910027181866515757306544439242141410921926961426341206790224103042235773816214893457762410313242363050197676193226777357479167879977387362616584261527953320882773524918628308219672099163899053105213711879677360118992089474754334495735909949058439458544425437989595094695116506956426809338721809110767588122991351296008118837241796299181093074939407009635175124491825084868758512327316723461663947867532569329885735528848191860039816762100120782960889134623132064438961931369779113711445773371383549794141732101346678182423843493505455267769678806199302292133740314050207709039653971287010042330997880647165681918068630414440276726663976815507606516574195255876674308717043511793766278885564948736709744962241183108087255466039064537715928491703634783547082808842708638121921825113925768765518139895661828921923615845524879765779646715569313551982939462640266681461217516059084880975895700977891337982296838490628051849226736195422815085892001135682986601372249045009889511214986010948930436508339957279369301651732687963955390930495362445457570306478056624417022183279130623610387812272181379640744601611064160306352912492607843801730644015508251753478704009815161513634006433274695401470644819846562262847228785592131088440554114248610749022452977811585768081769302137808952807582546800357357976044420314925265291114359319899003477642833269905631114747648203574320080048914606575456207448715404062469413759116706142827607310676671729022821381112755098991280281964599276086273530895057855731715910443143866677440200439221178645899392118452586645843838899777907657752811062864813474144998649000078214810134148053231491086710600613530234039075886692177513791114406420022092821513445843175561258227390561259435830470428770847513445409035680286561013951321218963554298145248607872934168992070711313989712667711394225388194967884891905662236342440473715850670921241139514223166860476253790077120786865760699110049324944995219020908384229948354208217410346084206380491709416378721954019956004472481119272805705179201737916110536483135560719898516069214370651269410673198589145485936117215394186653721178857928615260890564046274884377117134949400580252026631213899421894919120053069647863147062984227941812192901099956116529590204058439006277671192847565349362053437863374153543879339322630086113057656966553537961952974738939344401411809891586896173582419583529281710740232928102538503662063569607992419299948567668244052309160215494996830977623021646240676214350258401551904862527649732967867070403332829545902643436354002083377695475557888756207775574085466766786063044160032739001394613916538170238331489796930307787719265670166986327546283087419837000649542932226891636295734382399124776205631668770635370995308417909499061395091982115877954197320923068999421492398863157984399920783178578665863470010677890646563947215252187346478844905034708302311799145171805517084389466552551746920721144197504437895336253808260792804701037713968874926118643444933193628981644042733448720021322646345980701821110236667474463605557872393947609298441915371287923362866721515550459251830039501641875775042260102798712478261627492529651124398121437449477499309781351067147180910266209254881606143719913161831014329743599253358316833209943804213850080354396535961322057803652077624210313916941286634430781753713229741097530931072055522044125211049120143500586544765931789854929492928054266629673314028359557443456382084629039714537748024485498469501818216112696530856441916297850535562263582922954941819236335527345951434309553358816878770658884621989793733491959450903198777848100055221950985227555139105982398479020136806089146401019070581943092612982449178930161879388655741154509813276615207832648424051885364331156903668223986701689569956185932318696943860834844238174384600472777955610920692583854757448932915281550734002650755663784607290899353448340947870423281848116957541896385039503476221420518050653276300263687720811714472843167521533376481369410121907442763335641676308183072013518228392416861842874058584338222226128210282593632387549468756691402096270049250562602928902592217680293271524634595705238879331347562826969444418806883092945258387186382702166259217052503589050692600968906625610332396888836430496004991086187275933885535043179835845152043525094751139174804069021145905097240941371907705932878699180563455584903665245628034398239721131791338902552473828731280445811808199345959409716427808135401135659803194736933885169374036179184654072730314614168763133527589467871461318973559472538255293355843640808312009343847784125212882813473603689712717780302999552890550990453799396508785184081130751202847899243234436513976691079329070230299918821800841699156009359717867971805385837719413025497602777871433235118169292520507324307876777609317160518765446338561341586203379397960258689884238119933656025013614358239941526589637815017008031560107877733088487802402269262226031701684184469505409591276092482405355201725574822236519662258367699123610343940194980639277866786996285134524309684917288488989484433702001597734856607126213785722601068871718900901193074975494175554239975297782201052191512820254899091806853391825611596452926109761826523524086766253383110946144508048477600759589621812677619126310300036539677293081421059623319765078165126621019619963764195958135747826215896471449107525027715483093904710463999302680076348832164531009349179917450482900066837379624677012912625712064867133394864171887967719218259103038398081497265604836235737744933579485753060535582179752677803616507534461623428685194815791261360042575489854562140972296630145257231504289781999968089753178226317895268135022142409453434853179995648304504080407053392245064461770230790621847847777873847251060766103385514988213484684650118694047270313406018716766285480434761356101963153468236530685810655547355705277597920238811480240523000858670425528730165356134667824276040160902175130935742599656910485568027044945923598763949246046590276114530538326080960693806114651021883669113858115819669503506935148091895446787975627477579333298830853388780507403118000848998318314818549319755884689259096536219318488192481148502038499349437034597840179787115649558087117759917968983027282165142337252584290460242258262076220666540625268443913468470493201685101744599730427254059668071706778256192601157041310130592054363281351696206310207683061448263696376140973746801034857398445556221524781515785096343784523694487769889994801061816173504290430440750682304370655126782077837846236622963765974432962026012821050261449090422284791089934013714130281882333332262105755627727827063288373642072760201488726468989806881327314405681374500725127319094038116449339743758837469278382837384044545492246856031596138920525538479511186744199838258714589767820609323692292877788482216575751872981923156064571856416436509277618640797034369787843490806890585540551846213904305094845463430892871403405766011591348554527371393839089103554198518018370738813854057259130856499397563037995464467702867005807550300704927180174762790271465940242587879102006337167722619033236832944422205080268092953216113034936527219213645705997428741706856296651043175870736909460146405385560394602863134531126348798575600714317193711814299798208868076522145941950594280388846058256959970395508764453777872867730428147958119475790203152908748965882358020079443517543815463544078677183010483096293063500715377121865261673222044055029582251105626993656227647904824808176112957206718468530437446185789119963865297614364723240725848460831345989188622008317115590842618882602930620543740567787923740277299016214364366891045621411408995606316573768220883051104303278021998629305038576980668892302626107780969010469632250504313228223261047085596090527817874410882086982414292746087372270526340687066246037709421127656083321170756877290852882109623444397518174002103405400329511164517586881345833951691728708612379753654500123080072051654000927556319060033394726082693486286604491676119604506665957852632857499191850738459686286149136653454053422571973505324660865793124892958444229717998086057131306795869525927199657317754956571583858697603137798981537002850193989039830571062289539429311295026396776697611808150022249023986534390532660623146425513464852592758413595251326545063437984733992447157475307985309851271896728881275486036575202113118986508368287596649607005470858520991722901990712904880480256943264463003172868155277584888932595172327130516625465546478197370483248673686450392260228025641852512413179601757037535062272860761970932965132769712893219650954876872423559325690464805240133095288753067765602253559284095937955349302433269596908943508097140258270223334021269135530017240453809724592846007946438160671010647495131175834392069259439671314638772289073935658696630201106328431203889397249910567663676805286923729281256444645665496176829125785254586573637829727933132111443197495278052036893948188913945311043453393051293453962005977071491200625570524854959426627876068878127407433966720402334573490982302825902734335256874049680015555899746541958819077557620578448257013560325062924263973048653885210251614536938336805302914539346524181933058170638972156051475590619799560140622812786725034807415067095077060238190469930072628569339174720973385973817605974119434102577701747979678889742965218465706172699579646824249625192917435228390649633530750580857768347392465380672389535552707623491956073007318585153050113288873508641892822777128541355496759868826597920150209146828472931067265786022283051380275678310028857398731065841531567960226008102011200127965513672329349782346754937533570811529425139300492867522517276402716502493002560928054925190362005763926849428303680464622898182273549765239427877110156803516897604943397419528425070841595501230515917150913586367064858391774413344310003672328856809898209723963700705669579776480236763990048234133435476198385199012244699633731138913687958261627943349899956347490739383366371651297211553458347541748464404246934728345538585848667693197856512036682891291997619289512282738217772807991633118593371061714737677335424055730474868899003210432873802632064400322673390976368042349816164070748449621879513375442647105424366033693819691710019050541112112369443244773277258173752609640995584159488907249935348154460399975450107461676046313749591508255435911563394161757725906389470729518303199648272365261305813315793068071912898822817393993022240458600661915292067587217945906789831890525214987206649094542606535228060511379819998587071260274322554465882778943005304953299983425982249319955625806966191213872993566364370214609945541251418465706197259759991057247194154769569605378935028901860296632850555717959859767056643556334303627390263012384222878011135967733656574905597679148820602077710473633411188189495798891521199467462700941286935417496677027947776228733193990091493852323687536109742047025891693346152997755580261264000632005289852173819558453623694302935457140590190938377789609471173687257401735377496193345545008350068419626898056347551327735543744346843450875834198732224821127913704672986740949212012349938838118948129837335301945953768082509445361140325308272248739909806075334810863099754472787019203140430193062954815719317800260514244116050510161034120822229329090054771079623595582723438752945466725044130812685958084010135871370862581735975789069252970202856179133962083149533022233541684921760210726969256473879947344684864307213826580667973282916740728341311731608258873181184419110924759658015014912517907206515427615399140776455744406270587204585197899458314173103031849817040861037046485517260845185565651137398469322103223091293354000737369252823658783395565925966533576772342183277193126029751627130177994800592091822041807977824464542100286685575140299623827564117613242056699162032803704527979984959040492343148853038361709513012561727173985413891465198983938569149050026517634063341850352326870672062983080777033470337935517864716983635909909998246091492066247635952401103486107381564181645192044694944381933264601215963959358657455163839873411876365662779768877988740727328622908250137362434540394316201557004585954664112212085949680310593923292202909007528624622837921576802467373740938480359903743903160197316308037316850751541470816334367838515959259992516135044534860053500291834665183700638742488832679111317251018342621200948422113028333593225532322599144546330196153505817347315680155628549140360708229095075745836845630084653874751392895120562032740035316271723949330482687012686464316198123009547087286110615238753480683713864295924925313449356800514162694305272969684225254517800990680741386144129272817865921961767099375295411632599803468919197332904843312751817037510578883128159725264256777416667992154565156442908377767183746463094623292433483966405775682691580725795555108295312835350864615725503023071287524771139711260533854430192389959325162672120288206203396406434036931343324922468683801960076875348540769495833063646210981688828788469486309967215674139588698671478812675465634501939082972693602851391888791416512737880602947057059025245636583829373125974938052991447855549715157467419760054657077810052661937529025815872408474576144444765138610803722950522534352952182442819880911075734189391686308173620504050435163547522319963023891989001037851486116277668989724909708718666480697959916943725458043620449793244467627523563980914624741095308818459179848221959929065526638434311155321162791898386868559653392492810087130828931371699960923848312105334864091946244960170675513881541839981995067787603723865910447613800959395715720595462105643689920041646351432899836831851390891911690174464203433308989540174018577275000711009247357278218046428165178545383517020459395390204272690726400137315090449135389129457886159400371823561373062104402702092477156468126954796771764317950109995896910789480456816329499198168041015837249762250588600096281498276589130624380076958934831223319960253336823925378067165243027604013591589006899195088095089563011686691589961119110120117775973054169143459524292016501319464764247614699328141221679460957609003122853187775201153280234373366400658104251531278742901492264210060777391519831458337917499005487558941973457246191300523533655896670572992152316580907344908205347259448624883266405572191606367772615105062219868615436908505175764586093221526767364066926118285232364888519288311832032325821065178174744112132647091948040280021455787983838230847421742302848067083850392107896244490111428111059324736653240083613906012200406092399357257450090012717086807265428285977653134364043758625066692250362593964077594130166907271125082451821871201115417327636506652649596805890427862787573420191028434217512962539819290165323318088994460982388764277006664978723308203395387958987789786312400330825086488907582063732996902519143594810760646375594300010871263190458602329421022635308866509593806207067293561646549313997257170428535491724780856215274507365856841766641761537381444384086212471846833505638013246616332136159735909039581164449889826328782331239446758562868333764916367521033219449396342803789275550610966561478320041052428803803100407981235127783751057907136559180260396419143803057573807905620643188225223381565772725548492374731881185611238113863319938693850267701212532044253721994515798465808056766987552649122222844686704458339187572510131742497665610053848338143506324510664704340599971058108287997664320424289449177476602031581267677617142839480641652385341442773400878581520336801788009615748463183176617806718820015417522992676883534000184481506974102872280248462580394042577018213417803879786279867514315208659432024803409739746579896195811172090332367052357184076105364455970498310697246764651982253331383469151082583399673322508880701911581304482172688332913857966378407158646465765209284481738579271769871176390469632760438333071440587383273381497245771917022315501980181358186431623534094398884783838392011623163302989993520757051007285978979186091047608022626906219920111151652314465532217056399510548398611911188920667598939063822378918463749637831491541962139184964584897951479063540334765616592749641700448511891105013294567760208010700160946025455922033526214858562796593109345937644595360617742648785353918909043375107562140153628492861145362737326885677523436978464889656006683709325127869526051453623501054349840927905037425334367116021555624442379446291243608336267529013960809070438959387860650006611867722704993432089906668926698231015322208449307462302626622954127953767761215017191448353776009994797697503160877884886784996025039570454344920482644378282121359208553933736041332083258972251091128995676150749464394300462651196283016372859578882226970486023628932595569823255627504207765596824943629337366054973336788279669812358066442881088245176871419677362709360402130242168550153585967624687047054958602537774684850007382951971615854816858397727869769113625663092218329235599999934389073461615889909310035515433569503675874663643590201307500867028526655602277225078687858766511596606786175741261119798145873634891437431860364187313496202414339007717223966620015105735431369027138570788022884206290833178436519873905129308594380959666553826315744073788879972333614237461019282420203800988003132325769271506555401820839692843400531034727401800579063802341742513405386323957282016696635233354181509826852825482031838804603650933230234462282584928011767561563911968451593610992959920793500634063052999311727460781901125527079883394892935536300759822246994973718852600881156757563906293186798532278107094224534884824019200223443724919045486908286756829781187352855474321932748932897640767766968426522107404132638610272804236600756099256556831717917986586217551295571909814989520415773857553187600812329597388302174680812102919072455703770240659381308439717917648630242027212687735638442094028992564866600379807842638234630849585420524923213617812629278467728790589489289486366607457761367170837894724151165010735252618060879487064943431687452551259684978670112884810599853368237075619114873321510309264072872116661065023210029721741014572050025745203246890231106961190547949231892571310134654588886162733058374148696545869064512235674985968147255893132510568666722943871963449170950972578017701465679361375744926913204384447815755575006527766183336245288925268670242305448169668888520274591848586393734953488630465645681930490755191971700303564392511548018406179466757467411169871214578217705961543614663159538335523973741315608590428008589630633840825991087564026529054560609399099566080171113972327317585376238455944244819852103773999094290430013025604988527120017133326405389436986281357351824787072370681572681047513682109226949603347719744202265159515656795538440815187886687856022672678086922211056095250087404356546168148245821092553253047059990843763986106199475432647107334531590358898756691941743847066529269608858281502651285886970513283839450549461658025787906583337576782497756133288044955469104580043732066856164793650543288567967934055266702891388323132358676921439982464738415320063036078933749560317127002825080816011531154050938596881920427459384099439162613220104504397815288540652234656292124999897969319487789591980779303623000189180782608650862459475912006358897894552221839343275740914611310698450328626553946507914999210691410778186432049984284668653351352139164396502745303820914533704660296523656741702339156818466170678226227462072255015013659815389171826809744588815668374395746726679986297485789091985681682956128841949287573227572083808589835241332859228336424918198928455519376108334481073550672767289619773076379974726150366100788708538252663502427893226774601989873596197593543881510213467769412281279849602913647194090689734460220064726911324346854716450413243908942453447291279858990776960819428615429233310303848269988774629597858865655937918688908539258263078777185550028449518262686770446898993630316766086287295042603753673461802449772308404533429599305961324666957293560144495767803430774253376952907020158471127401436103190675266873356316569694174515955578654670064832173489077863376963674430647033630980777885683976084605394263692715183538718494897612492491029841674474180272138076039890002729204745146101758157754660582519725246327062545632916070537784196048909829229219683262849394026745410397149003291336414721013413521300185673875512323567378253170441593726758902896009982420792492320060323998827084821094493083945782706459835179221705933216236876491208891880360691414406758728713717115978593314722370324761165069763489476475711319396998132466533442893087524421942919749648363322682033362996242937599001216641504199027661462912528294578595643522216365861548218326890279160665321809034450491821440018134394888635992312812080987641969383752122458140736849759417384023995310177182048477511624391464528976037182085730876662659152363542542488718477500618086842995476735380724600748250479550088493192972511717146494053845907634768874007266955515425363800261623556152887960492027377430778719788044339225866126147272651295644319923816135442198811710741251745976481408891557255428883524065099847710121555617967029752795853044527264032384495647824501998414205614819788679626603269106146504691986129642412132169851585144089602412673434728452194439505306561348903747466629247163397942020761265550328422376413784844847888779910080470545200218984464487996849817185755788321201979359541286746221954971487809721402028823167442436603692749745512068671757007040201417735015904068689908303654747431289501806807521554917644232425850116129972174135675812151404140840826892367381828812122551088120742368599782596474082208245226616070275018090810696602792952918157319814147092676541618384764641129333395838639519358741699056572114531223725503673974359806894862926233939216255135860958551416933937621744489380381719235736836292523636797125366264412967865491537681363870891951356486442114473360907869501981310104626256133991684610602113394547213773047170536525654785581663095678406301177825615056483677767939466171351323376303146905998806559456988513344637696055780929298526477429375522067674002210045221426893196974615747616092463665436014613413639994423300402447590062088450937444998640380890635633503596905351760580774167788896531577967496648589198039431934778752444458187278294507521888447638496739548847544086708585683277441303820040314025741488927226320255058011661835330916564670689180485878732128281023500165858665086188902613300026836352978448051711749702816128316843455303171927670258949860540281642152269892309957844839347335924113964905502942557804919860054459064201794035364804276563629018427410785123670130432738038913924087375057954951876693481982679339236218274225523600018043858764041972837925739560424020731582114082395816799657752746430286307372809603480902805941607065785634883888321712907914125532615631989781523157718277910602533080606368406901592886929893496731838800278814139602647401123893859078324827712429254177744387638374701717317812596951383104204679968684999011618499158001657746076676917302038787897545357201315620956923904371584758153081677440513100996881989431280114204059235854530372085413921106857679152318803948187946329719889535924790715190519050242151444273481359100909442525554204019939112545368988525501434120964709570954648621761780467687625906614966907149082536671763248090891360378103103909790302332430028991378383751729847541068491865446944843231749472946979332966062668998592342650835680675466241280192822785694306726658822701434527393262711560875454345708700683195645093304199434485749833793423277063814797776753863731127906986124260678497484654550102524874132740227156141494858058483326941140058238334036240606550273766914686723091068685779908281983712336776797220105865274771539983919483981653407581871778515926549189556857432499920933833188729258170008436303478152686032372232565993525991337115477902149427603104235557844628818574147501879143827214319017986977099279279015996002031933395502179586699719651104747867919656704246400597322592289239081061158770483064463576407414441881726687251270390282200676911716828251531577754195286152763216439977423537429766377093063419694985804315117297780403942287633443451777619712027816616091600766353965812513326353155073127179126745936635569466699521565665895379223344410058090580730464751536806621970106891229887446852831178191826825671506723234897906757672076567489370144309850584892417640807753034892688588099949851087178115101515540618447288843240380634058678682029234251329496560041306499427675216335931640890790253597827907057751278987299818860056047856055374997391894511320278255653365050854947530381418049192838599015103650313836272655989995434022208356665614290654378736774378376725569740929919445201307844321166307888838868021922942827722585121405359129526929401542229954587699251576684180927335209987185728398254997976541156828560401625746658240722348243867483796648494888649612768169850008431607794944716355519626809234622182463891172494081110678918648086827289047636085560451042315936575128407169979909683372556501744607726571086207759830138157316615683866332205437647477295966052852921942542755324355422253791376536407694535205105179944009547562222249495106041392511537230447255268741442579824095249920639557534425802028526737388726186162432163802394358297591114026734981576017243513524432578128300252035151374875803756161985241262564298238011871286081833063690690302933217346597842172053518537660971622889646840636675054751024341734580090387649671663847802438409951903090933907038338314743306185664000095158948563132258594865248073651029927689820711859979432987597853336843463850959049217402303443939100473964506566634098280756803737646115880702664770813885694777069795133531228487651989284337072519376657780377400830296102119030954839329542851145408106854634622951166208244073207716370367561401201331466433286634253228127166067063143752856499124682334881115816217897653459530817869817145247331740259033153386893179726053825301446062050188613908987895845272578614237244029210411681241807881887453018952143610384131949036855449322147695451895283020810556586012167635352493045597056882691210319106340104940151001429981620844883102389549591023385646103828426867515629490291358978644500778691132016306336201809286064361701967006701433536794350073596989947537892334333718155357140845811617879396439668237907201262796522372835408602465222491152106577968505894054632070725214910156242333979132191921586751459983711943460332879978703294227706649010094489006113421011099124527383895153216353777332938704259196976973289581171429116094363666184555203470466415686766929433647225789163034472037192924806980370959942582990984292269559374478896699858239098848279832690491669777734781655632371444370315757578943787217164774090864839679865793758260219205811670045814601340085208936865368075452729751398814121399336595918058777085292933069986084286795783718723867756848701267870042903493693765197035434379618223345854419739375378585091100115082409935026738010968756951211104892899587606897589818009109624328001471949475981404075197015497504666796306104299645445087354196514257087265425072816744943722236214576511211490028940232295009678457871599441935356765898982460172892325798214732403918435586684591461357920982594816941057862145507837924927072628188134722913145335009506798811876433998525198622867879790150349292759611508761372787321623154854521493790038779680201490625958772151276025806201911722033369400740255270373538866098758743406840978484013693788698066711082369804509844319929111937418556797398856145793833009830005210654873229877627477848805171747091313623092650731108272734797366147580229433800263935736209470513437770626621150597751269584545526802805584099749753462686996474952907191223281328382768808792874453790248038514515106669965072759608368353981054157195428543877422038591315619506005391741662723978319959050552028674148886157365731002864827373241767057630241365604090090335316260324960242166756736665119029830916490024250220140774732882892838183140303884726936463714929673475610283607712493490520876276792187937530792512131269598870680629782696910571457426431511830524794159257921524176391297052668051130651064866630211910409026551339658045884265659506598231832180331582854407210829686181566915372378919281708487560983511245646185800399825861826517397488403400822156275812940565576218687353561474915054002316890683234802806113406859467210319941373291494866048116883362331703444244415338922365106911569823068407372525622228044525140135600411549836092270490077920759866657842184952322302154350786070401212196115639215827741848692192309902781168888959372739117770194541085160452082367875434036252538356240528482468867151931018054509340461383984508664989015949031921865977486504069505657319993411482527179578667037306393154097507674053081217458512204930436662956332566227940679240941591314753526904646143546160653846351284783464061065767078507307774611013540705223803920828134310021595214825715105057478769821341920376810474020438600146171399069649399581475114971423709954120265721163283230477940974866492554919081769593186118844877656787898852854295494935840752660952960950780725528218794249759063394262820968794688346010957836163024639617202595575262770162818545861910004751890192360975344093937439093699817504948496599244710667483992865470648634847956667060432569720498210060987529574951587967180482867047556549090741268090016611834660247864982661578837159342168818321863143919434966563746555022283503555382542049609957096000515311608170269501257012816329817746274864925336864878229878106697444312667083063427774351364383989346369096834879725799445002558852873675259448742101530861817444910237885984377417460692609087355360026301201981495313626847338262369612193889294770189272300361563606461548114214014549345607930849270730375924527724582896214228498557459178996815802534988458090752123832220403343375399849468847126185538375552174427819031298784647035782424760290496474501852127149513549128601965247128191759907225836395425834680828942979819332509236644212264826377143539134909775810997016229572425056155040096515617904506676348907849981402027351935384604946034063274511580815048009305897778355130900559110269331199037015179907821829880516589846115371560579596107469685387114082126194526103232780068650306174421707420079866025925725228870236128534351734925040793300372886447950169129156293547228685135428676787048019818999280343758395443115786174801061964668004301504985528915280756929249510113015156505393863885712621762794644824443835004100677216152981712037861522751353009895928921939411800182667133559094037660575674350748289934455626903967460498649525822386980319807263591129431892678978849666760802115575451816978601542387908945206053236621314379194397213731564209440753612477007766262580409099166566968999455363844959305931552560096666267401046329519538136845278695045100753896718623757810982746233794264957665078694866070096729866949834531471800629865942456804607208661389141686232315614965295123534796952822830594400121589249809152512105827647017722968120655883126281975595905584973116499559436169333947991336277703993321152003212409542726235401288325824583983247006206695732610195956350284584375700369816406465247206042433666611413134328887265045320080800773394806004223795544247373308462281284800088461199626680557524969663047097144623005972758805217536729279266107163423324502695160061232573892985544593933025498021415677165094161569533491519128177489950543003341353191513419851768433381685075505914060235720660760374584381030194392656153195422047047845097015459527149590191336411106846783129012850224993107202704004477733803388686742884374144075670606892047544530393823708658554394068177716598449557792408799966596402415504354840046518266838084803868706306595775616085018743806603182563842418889137621869205286230055740713835306674041105886678299231798174731743665734084821615147699431102069751524320788199431136874060221050186182520843571302768708545242252208679699963121650345570149992654862182453001892044813095182341098393236046610866206747384144966512363145111913255655822528523905070805672021188170666356094369549277145195852300890566164449452120896944662474798590341052411103988126480464013669608763491431904832991979307849739647722179527415800748170056713301397932379863688980339861628305498071761410382680858640340483532099101923573027704604178433190403215771508787567444936029821717339523144761547755494603880870278157067481156421694416035117195817913955026039305657651227866796928302238460091147340470164359773267112549922731717238842877119889891027713242055948889525179260133743962041099816741808330753301276767886463500601213535962102010581306611285117274160850413101567856934236383586495398254153715606061671871012839979836477294818847009811207599322185207070573034655458018667285855867930285428958667165125634461628817847599833446566800287928280044197075698803055352005240804159804672979747040510089453840532840829396898469101644894730551314242400776632753132435594493991268401221096483506821015372045042720134672030270108404311917410427057865135091529591595606921801411854720733693947890202830896984226953634666361402014793137850760380888857142287888670633842528355399262162306735766806184869651889866975704112901723758688155859053215799741183536835293539428206278050627890250872238560323868930307289080909230682973213442898061258132505742334828587545713236452175618013120522092979617214651047990436974015825947062894019221599035167535075448982858638532580017962053256232695118042638754780824645873886570179037516922190616000859078692590548268310072314116163016751872584664425112500631976266845367131039141851477607754534624555873499116312399366705408544513456378293814909753454913420587585083549325159485415085099978355589299418403084354134244795530281929295131997842188121463145369545072671173757603779182235258482232489946776080117181053172670418583174311200853165649772921692821948495545477506187243821196675759812318084307254142147858928390175610616984091404485968518393434512466701935939599651693102191019598317045558755168522129637518080686622094828569747197837396790592632509845539536206823824606746867614884228529989315544033633589240383017671398347605979487873723050796096522118206601958226134485802268466257956007636050863875781625121041481378030120283524432613799375627546832143504360961752692135099006743998952897533660796220194956145054768142123624938852025098900176595746222279874518799024220746483828181921841816068277615320901187379270761194934150863290558878283256474789272524133867157197384923805470546287462235870158282076406314096553005499520199173663804827051949785039537183658735266120936113317910881095658204450272658480477836632534543856510246893779533588966160419263039153435353623452510110720446845257761824101686961846195239083320716266942563061310431908796253368404629920098382143209120249816317602292588545692745983237591425287759347124022747178939835225070832274588870167883961048682824966111260456937230949299860322371592270431453562329848658706734244172888959542365736677091836207642335644755471928614129264009377643090867711415929658001031491857869544103095693641670525684445693749431204690033434296035238714988245565823127521906715024696471250566216131446164760557848406633548597420615389723125192656718917699147132119384890110984641731291437663950022926840133310151595258496235790136579085260615575126114731789082431511689415342011594881430499797015630931523201344964429502579810568541967801187218346854138028367598273038481261650490253815752086313654714564590650695898991766514404905794903995965915428681015896362049328101397360461236107026964017117221698435172443662322303965543678233137845783275099537020021562976706041048737722682310292559755956893784814165602109556706533832700215611201455968635262953788310060754647152391872952370912391624934359439535190931459116723107098580224050867906276934711337271920602002371474859751857698556041639452011514052008987700438419496205451214588763057665295047554619565940482624929438908447917056451232422131552682225814818112813016213386060342896160031991906455442424201031845199356571734366711335234654761546226811082713067642271106498132832608870792700675429840556593079031988157071956066729608169152868866335573440564508437781576940358019238455361155377372623204929725801967028231345613369603252617394227175135237561576312885232141342236786146709778368721409614105925280186830714902177452747006014399079407993387291633269034275111896848719630254863698640748913104700162385976429715867426405383776277298079284923634881329897276731145975143878228401255707727841734297384397748740898384552159647853502309482556210858542868130391423402316821108144438195201822617243420608959252506639765531434068566055877987725184742740817254825723108226540443546583512197207819312054862953737120322197587900453752786463054825483699164734496655431161474077784723250387836197119090405478870843899587307233382857761043163798464079425682772570053873743093663320182264776917870095788149033294382533689419152384406797048732604923089787809912737490002181898735453314051847219858013143729861854467902919093871721228959752761772321824347877001842697145926522700461194981305249413725147859328360276756633731802736686355235383957097947155372505334212132505825512061315045295183029386015411948797780576879925992897958353412843911400984286251779082095841819878332567775446677557918026393425678713767210051151522498312628605329674358886516253698065589987373456253976544690524055051670247539740235924176509701242788550849178974262066625858787688204853189512990419081989720150080425372037480613411717270763684525574489631398646582312937721404038083729427585445989801288179668818803781491285036945849995029038853931582481747605524156472187750929353319969210543781743640760154869851843528145567469524504744559917782587492536641548078382183957974607057280184210749503803800913598413399556250657502716380065065642432896702108511722958836786404800915066743098805763910918948471250970499878821651954289357675988923021564892660713347017575719046959098191009721639613388459848258212208937373594755217852488574004329733687780757878576833211999266997376046505376510202282933598639863569250990880803304008836942757913092449872035774931864390225778025571480340832273867600544588879244329275011082583412611052935040043700697151959894582171906594464214816481699220367772650303001462154737469936923575757202553030019538234298226961776380403681033689104500234433865679201192053899887501515797290213002796411782959150550466628776123835130288290226683314016503702771310407515647209666693197723976268059062486586832297642736771987703280907188465566040885400773509335312998899867259198142093072898960450998886582994963176504588872891087663453961679659567046222776343075771496367270489581895243267934282390845872275861879424732587262856473844657417283729472762063044877942307057785472168373709465594156407041942006187037451876155353188587773322156547829825716270434960171801727306893797057922790157844349066751957664301718571807040263772887062675840828073260435056035195934701639452789246393585667383560519012121296078142182839526015205837112091096744702915347362809457281547385001766469087928856971345609492972987328103218580008976540772995203884438646180737675790040980195511926334883450705637126580251452248977451685853813206740901523588621554987519547441788962965048836578803649478398677015782515756803359536125422507098008156524477984184106805185452334762886402496183226638251505416051924984771688375962067559915020035800601570809610940902817927848393020129761228372027718288918971241654763017882610149615910884402223644791381825979757818441608748335640239997135203232370293455730827818232722270122525490750258276349733617260559773271712385961505808352023112738807383780562601554088975525853270592019179689387721410252521588366891175259127507504222188368334589135769242146593059917883210121799096518374893751475589711431636968241766541499402872663095504615406657067075130811000886756232451551032453895216473527665150701016990987269981430436661525037773556961727006310941992504192476944042847359804523026090448727781163268978402063851152767094470502352381091102950642721068703575998236650198820701846584274302325934368020746575486698150018875555811461867044826506884790030465537508681773944003988467050535715378792372073142245829069018343436918571784254248180613178329539714152402969798348819903438023155928935081083552583989704442667251482668041816241484966617324288212787079927857794646788719168513528726965387345427040788981966805874568929695194212524493736472800994191168477065583096099386260358880645462819486904543702184894131600566031239695568545897698465970947831425088159436057227561364154904169240628550232079077339869283146424782723422528223075131565312132274512837337361880379517356407984407190530440364970870740697805672159588068348207973376261131700409404040069802365619413216906988006049668422196421288948956929964868181637563297149540410620465441154630039678337114563557931698790705423205359177714998950733661054681041715445035986786204590670645606779149810901354932382548082611889543722909004769363929601455264012244520075924645659660234440555290409532896190761721080486297675576006531537949903769756572545263265620005626987484113353954082708574339767181124675332823353921762049945032452147587687901129478679894438011552374977504654706029941586091390403885335612296889003449346903317320100511359514470106791606821484931332292928544786758258404730387450205515057093042877395928738376562153388760303523843781937277031629465377372009093718479901075682132634131611615218865821427435647829222330037788711776745418927839882503909425716297256546343691650221240525789763037228180576876063066704682810986958584747091988256265821879457290696456382869633533204068082741725331780952261800008080609430992156342942369176177153640691273985580852583280592572189438706712890977646845028857983540502284769876673934515245820657474205190067413422808344451266911994361830982139822552675425604066879635369314051111785097167652215935321140527723714389076663053937415299736338976657596747554594252033938136015740246126846394787686165118928519041895813538794246204630932901714922790356278513159844322736484649231039498185480886083673611554462863013694026378048198561949787613347442539566848624237577081794388866763396850000019111751717937945002421507042622988452538389859879723208075662940060878447420666877550639310896434414589896410693229940740193982165590667033643826372991235336294600896899441901922198250174529935693981163098592949660402691468892769906023237645932945145057667934868621075343260385406276168296300823039986745789068920544562055773403471187210560294062054172954396582066634199839655459393944700739126169821409693503362224616512876396290034160284350707369572364553062495032019959612992256047355121257824648425750800755627548922152014970692493318534896443738742186512620377401784678230087323299080336937893661123965271417167913358716701167526998358334765370565182619952430842184041281709132676754960819984093436094797187796312487599562249580247740211902840385836708991055012330207844603269132416451590491697430533711544809193580137841094311983113516345533714235524927103529626255553588565361725064012686617592341922653604826162091248975933212689177715256011942199809930586056323336331835390169323989337393119955284360032876103750790720060726974308974103521444332226056928442965544204165463712700470052482480102100466395423878835897328867884134373785271038614186969691946249732106340482800488613508206808493492390794531589986656668958595422699111522881695750039181984154404777923362772998453706854842851037082574520305327073439465535829630396576421569897863260167732093016837418492848431652808175997502257634900140455286122354131670985559723296047352485872886575646932198133648697324685513934205022598658114437790709565284965307696102274472022151310634163233960909346511755819573887875275660856193583512182565335438277056138296234192613470589317582326079140629695080051605460372455722742588520278315026683465185694838423136576447984690549739772680909470495794522827459598796669354426037299362944639474192716128604843134010872334268971270586734781951354780293723272586218879655473303263971325227206543023249788474169443310941898204131724706190972706330541807184379718623444223452895190146109473207001492671955817571934713786054078149528180276320217589405340019113874524128683731923859615116226087946240458539051594490546834399206298684234264542644122301244394321726966237775837008788088122416698220022708792069347849538329823958633233993309468503908457944374563642987145844715633505351731978956296724123389063117612172934168956147108701181746810457418198341707938951567024316351305047399884895843496718636895556585207118306609052543895475534971758315785460848380726642580200277872109373303305440598088729847842624437342420468550889519862099332458710436693902939265063208008831645266470501575586303375065431741724840397130281799065832589795847785433484596204732086875402638172372479807572114805707567855727044749814192479087483988761181178035932525814316692194542745074172717805259603522929453381448235990800812321919748707264382454824247055572844118124126704436360788377756841639988901635062377802263906071491694115139398744921373858211190909530364822116632546640495196249049567170175881133721120030172823909267851412886451826198989497644446056753491185065554897351301231142959848577243821169354766194360523631336005610194491744081569884788090377326963751622928431262717323717977164376463739949978870366183487183348307507103154821231422998933049172007137095390204448082090520531735662576402107817824780847173566710446836195376079214349369906443128857596087246641537614972502343977395967871263774064603153346053215359126311943855803126456885699867805183775743817235827126821778022427525256719587808717912309737838256670489561388522265092636474896946331826180652275761376614633193202672326696201762741539903710217640360284267874376394188604377113179923464782588137352436519253761314480682748335015449609936942964283819820752102446449076688770756512632495216950376804386317293090899098120542230075705655965138814533533138299128189631149822471326151414847520598462052888983653632722968482618708578633859910938202984146073217611741629125039771420364290989069619467102276476771060544776635602835570734894398926901036440557384777349364704426904100574122604352194883005371395615792438784824808709108035019798060793445412636246038605165415861285469186535247500418358305372423281885552236005621185936422598309460149143290567599026026700861474648448389010097161991488320293762005189940863108595143842094773385779840328796025091208877793561635832196640160390570597428701176240599930763015630820400299258628778051190329262552933139883139514641464748845323173841019952726796542345978498571194808687632907468088578263559796711638604719323859083816204273031930340248792178797643123824153755971844305440190108725438591898877060041945757827538438675044950982798402679933503810659208029296140918159282043699406625675247137105639002415864848402771001593356248147457096107017654218225713956953748102977915342260845660509890878198152630860926738080576360459283362752665092176408730900142123744028185999270203373526170789977827662070530270441652289586023891144172177804796024422137600619550967057320163031607671044433082711981941853708155914989746969226775585508855499642053883500761843814440652288758701606652818321202028745222744536359853732640475768034439102212899658594664306493272193477407834316586701394274517258663537522250457414791041300993857713701549633994724371622654395087845234872156797708240209757664538604005782936611942613387062498056696449162632717177379214803150995826588933740764463025736454953334319652939363964523162389453620107802153629933193400440103790399815283315670884876101383243946844350705611483652715392023782968094384016117160878627309199771789875887816563957174400107410472458207624296295267406221260011129467016865921350437765143287745104353292207104534419098215091202650094159917261453375876606744426285545005603170772851358993499210300843112492047188294286704232802598683285388492922616682211934770408213203833168539471317764704546162619855224216681954768948745464895910825161114791997902216230902489201224010466435645822596928241041206945536838826204102416527592961076794830219569544363427926704031235036109539373575600635534191672205619777830973775433269898130333942145630657235764333505715038393112370220689029135878648403523477375161285780029068070368764808868717662376201481326803817254391453173407551115061008797604321077155949154639586025524269614248905608308453755639805628609891314411779221468945588637421499195936941939408887377377522982503064734673077770560957339497636087496228354692382246472814431230564559804047059390298902330644066838206589817956256581351798386614531964753544545310371653092522197080845954961922403605827787332097512815449701656938230907279683011592750276320369420643148100185079034222035451287559918736789273908105639570989124652355414248412760874700282541366833755435841191330964653848373357935075056678171104180188045438490395395472686756437653383868245973863321713097675871876490300759908905366194562873521227783072115480153691899655584494079792857510508215924568697351301672587703070091396518745658851591121106087218660178564636413391077733722492987123149764366693062748825458083153692904467795570372025230868502811142101582524061189113454941327054467685476186801343584003463852854178831815201556350639351688537648166930179819805623264577377270511586112702555690183667197377558840570675748118137995746083097164736626004276971487088601767700458411109058875937543341061296736436956370225017793864595026866567418751506417990545674782736274995342325616009779876668943968112128854638621011953037887739460182934493932458840247967661642005429831269625788388537095408604272558953932514228736018041556451655305629428759101545331844289771754624556900033690643509521490792982847927615341615786224876729850718225024807529328400535383330429456658829794041428097462554115482192991503576317462077229891879848212182898019518351988160155063932843973971083522166932940016809218733250485328960178386248938052478429162765234290727562156917924668166617714138698893190989885411407328624944561856751325794554733900579898135242949190772923990106537364876304448722816990870673139967174845579818968463895851698022623324549912598120351962285838974534379486564580645150428841245106097865150781714328475044097228856952285154744375759150052572448935871089052767165472655428945964527615614131956334410695051827184205624104954706636042009267841783945181119785254375440589321637517820379909969155783958315186793824489581549420782563612588348069585813401202593788561264451311669245868407439919176917891771052552388918287007812259337934047840853362810207510275034629664649548047003784353990973518289041245813228578465536921100334171099780122782554268225896793967624103528272337057812991060807720384689662884261956950940789366607882987544164039003171991072582847996397000889201198776119791716444899211585953663153651334601790455790777518794707647582009053250063694049297019017877426132682297798699543651138277372315149563135522938865692175594177662831735910785952250247531540537342392266205673392969417522489539124126955773449741896574376775347970672448453299038105154388960104011887611265471646945425623968275114559929586080393684852785720014795597272290225093571069615429491997507017735384649284772969646893353180392543911605070500225795012029512772893218535468436863488384215877846034880615809564286934361941776172276562388564158724553334059145863923186523458472652212720017269554078318243211502456267063462572353020628528616254213491282290622594239782215439354897721610707666254507801071009475141008376124495872439956488011093826089673401294413191460147270267893748671176599429494350394869997156636738844842175303560020572863110826024097017371376027728800502556667213839402208695239129469251776538981138458595382006119031493317821234367786963754045834461180686573707058568859670289064393329260138457977865685136735282298149315844104047741624793545122762578577568417363918522629215512267152929972355929309735066532980687715925797464312092980309923033993270200002124691525557604656860979626640185989545404157534152278493181365805096433153428422478110290519406256614160442093869131241493669297208249312535900457488490177308379901852594847771377809255113764268582991790544823437500634343037503196597509327528397853478409777496435690045351176324436186214861495836965117586731392145015821767715742343454139085663434385578590216262777272632275675534225544785015796723496324411153237616593331092032549393288200248947187472882975978823059535910317849297432737349427284452017052360954896635027655323068339250670354599127043082912955740175249139064980480241854896381909146621664507192933808504873147638342431116443214187992925744407634919110198291839312044442795330880668444807210669251560206147597821022214610591462445414773993656648489506783791696669897568533954224206246898123240877205849608825141251356187757735878129521279988647199394364589714190935475702819447770463275688778500813176817047539713228695535208528036762165638227541917921364060598246591139689219381098331645852583832994760446914424882951816524598496076795694429907126345974052427381573955159044230591324677182900527074338779673037848918630653032913593335287037509267132763719272118599385987500188424865867355416452705004712938087947219318676560162462874333321627740696090446939551586981662406761416262275418624484498349923227343209598465245887424554475744823305576413358582502257419350204808182249864735416957732151846746442329134041806672930628940882436697078348896634469846997034921801296398045506817751700623254353210381583218845913799319092247491126690262976051269696799929587197957567684394474751252674534963333857619788290398469776537189164374206612151652473413634826476081914208820959327693744183701470720770198727630909746945270530644415470330642256495186333240330416523113162630416898300733227633529291373114320337247937636451895324354520814507684307268603040691420043888163455589870539128142377528435046215009370967444007919452554007046127546528338936107214696418664319635704989189004665504725425181048356020486779261565887392774464121559690702318262498175547098404194059313409944026266032144082691141480341741942489506623236003676165029505827521539313731143787249817802678014417030912636284505795964353625049281304117209860054234160050830522397261274932296855673213710582582822329646877595221455915507717350883244723604030754890960576327719732874820602178112146703330134501744945403344245844122387050045108220170345722262985201075275970418836038542939528336360066822029671449551245540565978676639188425918979180973206072271093148679408097576845467925775261823453000290570911186957156111467964611365004340647700194271621954981696439964712847735727551969774146476955193742800100110492268908552365845322520662059486914762287319048147483112083907319520461012645076069429578428114794369325382018663451953450485730372995335138163659804473873328866247686660430285737889681800566555646737201135296603655488525623230125009523983915783037529054630202397126354137711660287213408229348969861014839648508844681604017558830036310044052652777510747306433670183986704380087420105566476820286902042020585875670558780126985862890974284752026089342875782405225737422251925888117767010862192087127402995232301605418571414242370766911801232737014716277144869564305517413351724352833149396877465602502970592552561796265442723564325640558357593388418808368106515971021574708392714657889494978228066956310831623238766662258535496155280237561208498843710914957439622469798144898058955739627992783978644192419091837368818444326132072767900318059241588772968063016262067961060717263287246100320840326651958068019496170671920232546347101411208054425262975511991738941638021850072421235126434566581505365107387352665705752075971735263936355608882010743674247743989592795794543489880285791871649686938342399453836587040491604653528086067253572461237094623889629062177410189286440937043402363565473882773023134647244907426917819830034620559955833301484558263518905162913608541910768527502745891439313401281027602939165650260839649166403576223678637860225392741096303040697107579279806991986346971307919961792709531433736461326188840322383419755080148983820437815673830875187792667364164595675902063083378439130719009217803897006362819874100113085515190812438441800693413868608429131020982182497906205482885075521070079585948335282393911851998734770606626844144592631261267876704806815972892513129803042838012453786680991147139986520408553433826483022166370770315396455639958961285333275822379651729450766387311617188233382078220550842628607800961515536258594579081131445919780588848814562296191749194076806995832142273006057111806133272974504499738220887450986858346394555445724712952261174517837249299135122700287516077014684513984854542099927359963700815980827383780662479602279101520540781797978017621054328784002089287348968118737738053966061520279722622946806827944650727968393703449206813432861475177645757344266707487133103990123150269782098923133008511316903312895679544472005655814878221750939689879244171709372489683827179152493891371399205431457508319223883747598140735820990824791961387300717955699228012904793423614951616228762525359237862729440778777966061755610396099168846068154865321527874533900616805938348029222510517014574979435038653277099663424150411041799036919669489369958802808032959812946891484320856519950170820723686310506065892345431877828664176006490577078654674889649024819441937911656593805481572611990185705787948571707354586138454254427558172498610784387731081743824431909885785936828179709693736635273152414799942541003931745052115947498223042717060914231841962732393425765896078094579836117402101855695764016704270032672290591762953640953085594228449759752501311645163793554066032416276968191067623739003575487758773292099368061750563391218759094811598439111670413211331787650513803659804363802657592114579393548287177648358180756393796851576779551139491377506456493272493046360778125264420338843416070299928109426200239184662787432204148905776618237276658361166594132033798194114154106614389694619704991666378664203317047290986486492607306328950998969621812519288873857373475518613557313106270131274119815152995923326644945176576326331116854931199222182671943132880445150744513764724931600202595971963170926918345970695259466083414620643139993161458446111673294558227758528827717431454225956042551782674742583071091399588260133834420550020284496783119455636702782935737971770750944430133167901720293983742154084726508458663570522322081257473827710318111122072222021689497876990833718660788616376879786192590531531791918676735064369031642065670678757940718509683735723329318675971105490163760053776132001651833431801298494719348714335550408714048511186162032734551060435048051311894081785991817949566431200426778495210990211329924356934193491432422724842079823692633577281852146183987409941417736863896806161439833054480554975925110252530935804677756471482069490467576710362459008926646121434162515718845323689351684627763500033150372793226822476658526195772158308270406459764022443351960875334504280279208459567329150807543832236460767528838621530460670882057999060667450712168351229114707618347272206233964243623750224100542019714435830624566706401437667667614477319082231493428078580184945817935788454511957661414984129728580446216876836438030457048666591905364058667323890794721180775732252711331815509918248213897503314666707201731010342826907861374729723954735147975690608202902294270284905893944640104855265685542360443532363567676835712696939584489949949147401927972171854037484094206665344716062601439055300041016718757198831637223124572941193076885672283468690524159466372006584980311961931259366384839957681748713015322298493383364663707654819160354244611756431941057623666825009597318767066324405865013550970500081138183461736241829070169396999777872658618106158630214575804649347868624665788426087383829920493770142924861205422432579084337528237968251819790467190772853551498887050195069360348030301523397505790553291700329302189543142487640210665876890283737208688007215814691057004920039779689326986913821658134389584716837863138500991502079179520589542009703833859568976933582213094167617612799552293357499288373559324787885500380221828191821927919749649584450565180468613520058650021321468486033656637608383706032517768755176804239348692793176927133501988118965830055423580129532247792723858240354735847923632377224704769140520133203662343544297464429594701600780900274185596379032156156990415178280352329043482664055409449223064434618271385294102481856196009539325261785578064878085030895551576135509047971509867540900303316132150489751357877743008917355757397241000599284386113513620445908597812989829894820500710199980435223577157906260451645223458476087174937514448185020785137999409419091612739802438379602946854792259323058240275796194795357682891297911470789707343090398891342261236492434004698238547799607896893104879176837587297324197424013345082032137846695710456500207462066985281373994880696651570043414270086908717749228245541771107001050590685456117013414874106062378678177955272665233521271119272014273377172764695835915285146074072213738859464257335403676601794679443106384324248885308631545939381289211368805727191231665988954480661987595375696302730837489429071094423707437428347276186817610366860963672945422004429565941626094475197922914581577229145563108343515744736337927506273324950581681030743561632301469799016913375449989777843765404451518348103668607153321720026894445664879946603612044884486122150993609658627238381101522189791979768564572870093411495116232566123945616816970744213669232349137058969931670854120565282747566727872393143709638434583982396370564067427175934836100922065072800476294626105891190247840234758138084123017618034511800525531581591755987112895962189653920697082119893978891959926504793857542093918699093759801131864262976833371455239791667589491392890257681851187330418771990170014638135893568035096989627941721999096638204039248631922589548582822163007159581315469196716278524894957399307665447681965134389751445592117574527264787269570653649892849174091285396772216497907641017082623699091003780957612964408791643041840311983871274385064684775234210824584043569136518140269621106200315418020552726594346927893271210869626061812555983731673511353280641159818410549526222039639458015590525874652712596518814030906430535330313494780415263389789708168314123614844930994290186869458924839256680596931741330678388681475267470047885453942374565218862368544523978087135327070088076295409520684840335243849564036789794133979254118991835001437057737579114033621728401679822465889293103533227531100637967803123995140516990911455691564654591360007265469693907121175381815189626388570301023177224725615541832409792876543919334278353584566802657178302604825078754206771280949850000710706996235346994858078592659898515392823103055040272443202351437899689611369205844512336642150776919416269944367399334835597545825768062975442605432339055493881589857161423478119601939672610751519354624223080924988614120677664109119793041404532033968803434789307064672664306124337384974028797649407746714623564000923572542706336237548782244456405420374757285741126785791858990320469172525503019068359882070441985028565173176417377457435348460927172437253788120521680423895745134491919782299953915743537882533660108524664359462315782044636751309612106072303694685743724232609272107287963752925458208736596530391511724125579633426324780429152182100895985936460270250086875706663843539186606651234378923646806272569577661207683647555800626279290657918962166365630522134718146805591702476695441925443192173120974703240678597096717772206524607205143975273738416810682230377841737231829498811525741809794183905060479127609298347129744823507358025050072885696813876041729633117679377667710730943796535790810877726930562957192165545522653425963379739439505045006751655163359928253960407205706253398683883615332927642345587577896819267611249009548828732136083629171686970341547153962282188583148456993661453371848271508828649902442810685949729255621414288393800861003200777527790079550909409593805920886102722417148190900327397193924704266867356282281614006607408438708405142376718189399548529786425472393928035828876210054963220573801962396142915307254417178418096988203166542417406408676554378088096146490363987759447211652803419124900852140693389527476243435677096418221754238500028201048570846943439654108050623171225527931539365725830184122381693183489321177418381414770925883493698549491133240680667939058656868756259521047220875556990170900964146216926603508539049022196649438225812006540264627701238895929867540440927139982972545506347268131852624129394207552294879199184653468706621943692774834726164884984207067699039318619189283039110905701465043769616472745619830590855623430254830819465503274059806631702972801346691573533701396707196456683465323751213947173048235482917018142519757688800894231214068704126109259095811207388492613033041749583343037521950314579795484361473440504790423705129476960673494584939359728545640911745886647407454407584681043468780120018947577369298505700819747540821029339010219377819334496748709073554929177582258942268086700440011277264796694252261362877210396323323321699561669096973368801147359760325297196301308660122044579746514056530374795532672242773252347892554538228614203709542498777381582632163131423773679877118492528788965873352035327101002057811884740268447005499196519016074336135197750454138374234357243929809514869579517102686040438981577315539886247548232443727958725024448780358119152392180099932542220015613515882804368089482157090024413268891934340728686589462064822259025402512345372784427819963367790209344234621362470316138567140658841868799607938053142163170597741350961032568748656600579925945428048097281601870019665464731991941797208920942390860736137951072996298686454851049753720795028995466518905556917589843936983469741723133538828435964546537094785951774880282087923406998872597494746683078791323735714370003289211902033865835293229299506182399666927310290460651003386218203463583177775568588223952554678466813342193677645341232839086397644479210015032384506528838607567987943181882779102544589792501141076368402261846638430648538326747306978355524779386041471401199843571226576109741899311975152923993555020119509804956863466127900353300235078171741041003035289819331363101553591693957315844380016977776958412954922480028880286936981884203812342284193997316692880420390404940131659534602799351950943504338564977218692494035104060543593374918766994320986154562552364471617171495293979974829367060253241145318748668329410467886282051213056702691570373826841735519812179042534223518272961785513897442726482712515107192777781107784672189765004256804404519467486026106002615672705354448961472281330514774527060954531878791407509808380396181363774491511659007375686231466494658374538080136643727853954845934109313153441357769812991747593112925113007120296031424295935192904775074896771067661691462623820716288339422576790112592952531421614299298557985265158287597293123223135343369671118664869462393773638070712490314514994750339790500963826466575935117566703714795469891195253680581768458991576073202563026048765968702538429311145078356920386520533444629886873618807394094343774674818829515457891114550825114486862810945638592548517366923109518642938301797357930854034209499564868135318618338521104809810194750555807293175590041444609994652390853887810890315137682248440105988942730134345914510690816638949594819672325626897302905907474669475530826941303935270833088940703339296755456111876185634214969429255431674874590532478046528149184133993948484860914350997431671925635662669138404505558805008472970080939144627935880342601223582346343977563854506588495619813311223681224084580944245463857469037492169445850999281721436359174844313509430602333653974154187411061007308484642367536796685345684893937045152383527250592905496436828384983690052432398885296817954504428729851513734674379766627027403947841241866827653567271651358162342104449149876349215417806498483617111015154120757122922743832194085986074704072253475091243748210503554138926626649587259494080890746755257757444501205323358424689213212117115410805159737922308085653785882150507892298895119073868296430595257056301794529634587439633567756067014925479060051413454023729442339788272232747485793270823498625521407324947043857684695029285355363498867524178377116167313966157415592065175815777166388723700959655957125812401900707781188359958388781872881550746462430223178097650663627752418241608145617164079342405066714011773762709661914770847476206909505808795041294441302623508319098348617863446928005402600945344499323973102021417020695586438447981012228200302374491547879377191368566843179669641438493481792341645191699365168559517203131845320395979242608379256604476275749581810862621752269230112176282206577838225583088899415341899137987404476437611193953854575097756420370752910780823282415159638604847181950448655237586616379692177930757803399257735431701098513940501875926924861774595102859475321457257449966905238694074623829991751079652533407588228576543930612834955815700720275553194966866043661562939619090294350497482593835373394377327813931306092396114836641669970179584867154563802021132554209221854444686594935097478931839167660154164286310478042904724795866458572834379392040989704645625075634790453802020801043652790205859602474167256405182392788100946516756094961299621792696392544650406886033833960289283774643075774248924036501775239784483381328711837012133695695410887507037350550729369630071422067815863684769859860042874778477174089370806845081599778146713826274729629682633394280960408003822047350544762424225762713811370539606863777061222415001802977670869352730235182241294974022736003895803105370344608533295844267373464775244623862502306609052649761387536902424532354735057638806905110595989825261344345581697248033233522321184958327460757583901884858851402402480359015342692386286585384543550965243316627291935487344470827756363661095500277612820175798988265219590725455098740860817113706520911928712145439198265909511359200216906202671932606579219334020429878572042925215565439921593465477185960484116343623226971646463682886686114530573170348139767089146320866142668022648266513895330747505569276835228701672863699115812112233223550979093321644132220327425017619152100313860792146234321664534664863230729279292012896504769077320076499025407612623506101012511541966983647641668644968339075115136449076450615472912406173607668908607426618601404733708521423088603491609933424721963477205137319789161124009659583879007512943672788811630759620643658061272687507280170795954873057903881099783616912947055828709542856427471737661561053812747865653610085775051149698789203967831717870916688120633596936024910735357317592605186189654354114415231850172474618104503067706832620515952050376045921805843348222084185751094015501193091363304740389399903401092526111244643028051954731082540918334792172759655042299711978195528084478366844139096668894487039898169290129585284640831963743734246076552890486086305183113946445870976780932101924888884027374840205856218599482639437122760187296707379635054995660185921441232044736709952360474162399113484682716984986360826895637401111338165453487468228096427929472434009976858462488899638060110427764235572134334221313115366866571227242641206710869946837381714928918099337087069559245436717020069554237328596074404730337142337765960800707423992051167562688845735385770418179971870357142850920880658424476134737043509168779929499719259345442368690537775953992656953246845316771985042502112318679736566522104086995027534606505878794304466029096971443549465770707468364478563256935147843914527151692060930924632002674610973006148716109151482107556132543717936238016922942683956675223873142529510183123942417453726141936728700793492392880778107310258208501133696049423143755005689538184745377061821780837912195429492925646019438792472495003253764794816871539961920060495420553293197641224681928539582383292645145726394993626404116938005640644575186608300621991160150633209835271007781975615707761035760191563304029201843486273427208769775713858086798812766416484049977218572580305112387943294091035788745233021535288571520977897405692444477637938126110857343799786010689251040412290281756311550808475154880088249116919759451059526022833157470911847573239373469782007433853031327119726182128500047939589309264921989833340060064022986359473284733355244959678191349621463806641211609813898738463502645196497990864865119506643225532512158891747922729675388470716740498307408917418645749672064943036396163813457930563242251655823485197703588282101565954510627964466313910112782759293128546567501925804632969751499983464635175476837510330144998096882717467577478294895204082338102007228780439813618925456127775010745834024491964573591872889443004150565256140086021656028858696787853907545632101413051147552147340639445012904448251660543737985585127916616339914627034084715461834327399383868368900069487898730348286424399107160746164187525352805727141339471608253117067209574862553968897110057192618566605128196678366224039094831444462331810412844376565765268490454439620555194972293831188814578028555683810375371513143274571451188154084295510602812143791693170857931039737271614900782252007327313192019846771472295426450033399039002972441783019442176513641416326185696275753365676774959745226450851348026283747072614068631961635782740446333551683258061024453673122729214130751138850800104504745263690171595421214128705670396528376922734660822353129349579072142356366806659868659759040617416358348308393649526752050301239609323233309122858687410329061071370268596678394426312065463703879684025147587237098164551329618616974851748904534711348975059060820756958473756322668926044177149599746077322662275704502780286301731391625999529734768883852832697190695492990164275369596615264985354032395958683708737358233062072535137721037745172527589662429164432582532030119670353301007055365618317949011049987819952361297203167524973654515921267539104806379998909651555276385652097544788867727737551287232634753369009382977481385222590194518562407819009068148112212785806223760514608832366170962884319271116560002787401981340575007448750780614273321129467391262524896093002089938641670324145554895443776391724618304578735396804650877195234687176222886995513909819296442194257170502747800338457301624331930950845809300210522735613566637224276898629993104266390288936145552187676898690162494996885853535972533767992927490128714477494142363456440561239921426156351311146351079482052355400480045203204852395274662211031671423427240565791045906565069648825361501929490617460701376085790220955292208707045285091196493702437539828781958088996059576130367082715005957090190053908276367729107997279686946980382690402759458257028652935227595070392468560718176325939283868286979443256855380291094248334810901929485186254825305133010347756434078076443728120463863009232390664370408902198794248759668805957334547970758356867256232155778089777449750263189579219640607745909890599597750919621105049542562457610065261785843433817504472196505341860115725773172805722711609078823832383537492162283819473431553870959449928909114942889519748332585976222807983619733092741160935793894903286694455250226355984149915223086668567808166836313749992252014394755633612378495822582976242358403821655463747535379087799073634172565672045438221356941900949470279174180211206667997721458235368051507805828275153274988834290001920678793408009798400666708182704296654365976350299878094865864322323440470426808840633008461714278831777407449873522658646667641580727416372348444298006762218068491364935407807876687906759966791983499277963968670408002320590858742348874055253000918095890818002860753334955493486964068886109540410623709560688846019866791564865447768975760522612679069574477108337434036228519339473541005163095141204139069159257100364658259688943376919656284574607083551662369754016207329796296201380814581906622444286540726578771394081566213673413782225868794420663122400008655860644807314497930187476113522411105733775798962554275757917704734034340685581058513180695789377375787374726814326874572962439247854227017043773588654878156454603469123724274414098808699783089180434821921712718475175505823372301791203815686423817601553020711850110306240011867695602080955865289322751589986183077086001733585031486550551956741351554042272845128228360924044192341263051068518934556930793961574461444803254118874677458498018249611913157542177949425200005136873220283426496444110249788508110574729523133550129328478142847927640319472088422094950535535190734074956522186537063862779577754124350681979085298203745168903774410855216659970580314422692696387932799926662961476863344078802763656230480913619800775622989355606703655162272974843843065595389681152422757833085546832376348585490728349156170584361251208151768119111120303841607121564488600544831263550418695608980734930773419563380529722920378653815643292623773389611088260290479559189274480085201117209266931882318059401318044970722600820779106396034914669254035399042217312203485423091447635784019129759306166193026700436634832639729174088702937375628646532112900666726025483951854739419920102414059154158966980883048175452686803001796520218828274602101074398116685027663140580170875989845987501561115806703059049894210104909132933447730243463600061318455477331928787269130311678671390030129920534186101703936329477340223239303720634089254280597490729687248118606936733017207847506047613144429835950621992862578875148934626322925702906360427809924711995924922698478841643491163109905841093818906451803824287920805395499966020834849477146146823212479646494153506197709686832756125703785518502037092787233325552701311335779368914358260810289212052360510358113638414184351497525734432732282622751974637639311851906785925471183602137286328100161171590366669856044616035676525114204383372505649131441641595487897564483500667694656509204687865198112641930827429248434533593516730268887266663670062089886761039517489089093343931777905074434547808536745617206501279150993798399601846797041548025417414080971398852194059102894040850047071106484645850132533488090171396792237260260138633971053570479968031460824150806983181953442438929537567086850589238359185764837795380401163526742489597001098994202396225440626214188783596523709826265087368622624372202419335516999919044061758767022812719695929454256284997351595014961208905069349338307084547995568241398689050266851492104359600003588347972116311635409670902472247929630886895970235228946465338286649985653553089924410128629311934743603211640116703539869534354741257960524887398859497486809263274229729201852077791322060669693852091726341466673142375214259453411457583706897158271215711640602996772651956397481213190111115966158862961380338860637985180885559483568947328087370242001239382370414102824660916644437071117386872031716226545534708798530166119091614924004758566612006671235603005608383991023770304161838327153613579811157867280678405438899444286604161585889760834479343364838042656055662408328010854397366320064681913413903382998734769227789929353002208864412003530425474220145298251794673541514564375112063288663815810053746430115645486241468431420662014533171639466831926797826531408675726535291147033766063438978248364447228626616365116353342937242391634076289530961432408953149677728714846537064854389666722056262452072132807931449634197312515597060274010157101704992334982803165321607949982793461174585844870418565446690845795310361802163275348334597981877546454404855743571575928512934012789099205012999240322481780177754145526021192601011450243700959476182902591967261689552201857885437875779434853982846571551403470719207756304257558062126724018550650656540354668534379758765902278947719193178751191194277435034710968774474899888511496846215040674718607973105366534705142835762360498385598704910051966319264774876725662645920053978164411601730582709177080652379992741076509066645289522142938800688206738069274817831589522108684806847949520868605833627864058778361116966231574546952128499543483957773057306819511473769629598824200706470748519896032209637605654456836982734139910154860984212995184097233788241909603605532314844383870642056415238335371068141004450648608499382648225432125330412768846306293364759949961199861621969900636436746699921511689113403098512325466148352988716985422331838371620486248151138688006984274216644131617043255359882177243549928473478419202278492810537442811174554132131068036734782693968831412693471705034264078512119723115083068288407724676298981858384118939145874641477519175117785875559044896733095210529878031883295226152179324561150457068517240372046361395497685482524681846730508044264225913797539088321557522041999622159261480881405375998260527635659019468326269596117070737868374589780663493245835236988758772111221428527089310248349712463653040009488460296438710877805881170576595618913959314709518318442775950087651526320821347864353918825435024927797484099939960645940880245652590862445327630234467229168148554581053224185296321747091145935108518026641323551786718176255259463184400383485197864983564915336916056975389694769337350646256689318114017969047368288466092312134177079554679348717922635966805294652019198305428022545144082320636740405493159054450579646497868179597430347131287429708836000637944081747388732662793681806750472530106451780628574242291973119900676270095822882871658021809749864499618107900977741301655406803004142950868350553728000986889341057957491254290530720131509689704637637574022855675813488402218640065507929423873171353153467243761369629924912564054850445023443764998989208653477611027354539765118565869063758644685213482669432113634382181099632197440420980328270253915040996832141798426506021570000834310950887074421707157178984168667090067663057967966552888769978952811744238672467577765059936802898437691463085335859263156748159900919682820732690000137190536897681507957359171412817480641214949530141431388286279667424944034488417508303209691068222303148533207552425125513881169250098510574666514297967858323313504155174277349228518523185802857701723231634237734056187795280930376405951690506590604627260021403067213500271583316816238016767730007914206115753285654240558328481826339083748548882843571290205923400198699263214671075064584937338013367043073833602992938747756127228046745401725685088701083770209689026685055238510773153318107330370834940792578193632938239781857932760103807106650023100039257195837008467034934821278566321736003788265708226097828910843872719516634176885543678318687668453253871459183137162671658051714231018242708907470081966128867474260727282404137893104979206072702808428242681124100466617795692045691594950204354424400302653938527546116307289117523252880878917781618870683066136012356981099572253363442073529133251326436446079903023831956834937945605086799486478946493138339762390772850082454810519627374769500399803440972999998596299864120579842710118984325768516536718694998958042341668685235519679536632047727390078416537465732972396223813030663795843718853336787914297319249569217532998043923293853371505973212757812576661758026625838265621418730426058951379755790048794234043850704713555651111089697798996739200235261841237826887585796537434774304246451413205004913671878953379912920316289214179758537216281599147606146679312625159935350718264241153352978698411791991259969915289714431788146286818682391103359389219847812622158912037989928920825283617283279872698001770838063002286630947590787177886939723437250373093291021203145068253662064569351885204105578802982348723596880498496353384784147974323019680601322081816404339033041046543679633598132109206797996808598510600240664010502841743450405034789798037075942416123942486959863866081216533567198906930296988115772500317367648364114718348353752621349110973829565713620046734831639987106860708291374387228426981516543812198628411750130366719111178436484571494675108645997613904332486161804162614676776189125120138282965728850529445472342471693971677229210618521906742759785072099613666174653662180831475975248736619955738951229121759319191002673965015052065973698475798178812814796546751802321681309832186966099760515663595455391868378393982859493385081891033395317007875384338742294637294646088072765394965750510581926717322568193216967318240639317946474946003380169089127558581791669435337262503379247142266631499572519245502138351469267290407823803804760036897811693213460827626668854440910423279192096731591854301185440141920922515969224358966719570536437624833666124203030451936267328339934454020115879318528094850128480057322405912570944904778135565975892721149020722168582985833641304027647304945379709576008555290185464846108556906854850078319198957424873437431377960754705783157144947283224971003403609851839001922491781382881757380966188978325377433224242883516041805525192453505545963131362353235388231925744506400006026226824204641461231282162140622003488040795863168526644646266830116251304701352559182944071684355916239079185478423791050626579834402731210246786376464594888016176530407209518054777139719280696220898781669198085679740714348603748487489254710185160152702514681738718926019027211876191201495606384642710677134164460529331662242040482185709443106896580184564871060283046195632541448136061461054985539505872154519252564283079881336855977566011554595885613808287829617712917400281110092175196628116202259355749688700843168349928180993540345151076376141245433006282360963834686460627360497353527970899884209205877188754274452826457412936240060553015009514078807621972515590192261390635208735972116866479961008734404215273413452315340582289390150432515189526497784526450275802571338853759969121800221997934445628615350821288439534642480636198851210951598466083928222147019062575209454899398533050877438440574961283977660322264852235316092436684859300634874562641469999428485736337830710012980900267108145337834879416068991473050374529356430273836003516198984596977644430067855688642616625556310215948430082873163151612385672138782130043510511440050408270462673528148962316897940271684015865401351130828362696599578068889947061974205517852494956688188317706288112357927982954504743374630058924147052476556381106182037507231732486692818852990519007720833685542466277341566221828462990963072481274782000702126348240881284700654433040834994975655049937201030304181368490670808502024719143664686753928710490620048074076133504788151059164673393967761093281596541791337969235995743847037043678060236300162046517470855368213036265259636164390313138483852706592065883765321195067469035164758622030820751247476971696362197310671139919784814787602583665977004060373472065127970525828925865439876495608636644042858495409662737955935276745647120510158641396433912914614019230319544670587183074516026277932263716297979465446495074716199483216711942936851240400378651515437022870789357523208508513867862630385898707514345934188990286513293097493847151044469150674362883768550243908838664884763534511935616593107541089500950914819796192862358276666470932307881547502434935447991913367092373138548162059773689431152917237846888598606339196418803616200470335932534738317214722684933266319420556822590966416951636096736274507743250293767385771873883036508147413291488851444848090920104592560901813987816856907667149056829795309750056488417869926245770084520505842391246427497034248409280924711819824273369354787222505991333955422129959503018246616956073670701097497010942519544227796782480442959981053131500132223450450246409091743403440737142920902960573158518756166712789525628451391833409187684591795153119785933655999577949612910905764100560555783350404591957510389591916705405183595173398761556304768028158547103738184005013449198469075437264983024038678919298659660112271121654067380071039460128655934037108378331302813306508619234327476115945590711558687593392957048942489133428835116759479032215210669806789597164339693906598894456983895288679216118071174835984305082042205724434671023705931053267180521216080067347095127619360495652525503675802915360445483121405153131898929916713659455445152807122303935208222173536121234570790341158779810231949788107435234130844735619223708585698953614246692488069732416492042423475345339933482366295064994263813253662542205370559784273044499993661090833661606044330950394908201444751687781425916933059921223742338722419671916220152316067636238482968153142665729828281726615202825303843901315209382476644314997231855639329107111612446611078887793759002870914145798445767955478917374478433337219201930256799449736945059354416386745848804812639951801880603538980626707052131816354451604283382015963093003123568536667669468628667172648905792688153287697139774778314890965648363679382119596769127415354667385838307573199094451134211899818236453728797556499708190008505576129274240770994380052931241106616573710143857021923312417184706781174025378470461335905840989628488373335667240803022856446939630250036925211159280090290351256818416713158013606428826614922815834054388428007726209506481899551788937122760550818648721112640814481923062372470234140147005488806665336746428985369688341113518962002159910530968231356936357643879206719694291600242885434701367216191886019340393040917320565288390661003123809519537720457600540041972514423239085801863383758016944730365107354866276350301246164871770304654876392420940574431113015970174939164668183466408352329677231738215271336950886721424486048046728465785081319300373236503075648972119455082808276495846314982391628439576433182936826865716871028754901647253245097754302241355172942764816450682108478667747156840288924914983845560706536958276077421063300941852910295889220856745158927080138774898537855438823513810794427590493033452609055561407518337341166217153114360903553270811954777572966310262184664928790313377855712695807594377553123923817813778507111539804211688666737563419525675951045258163986749647270028986075674540337555823077792204113767899464832151724858589003047715770369717153326767799961428514021788472975282833733224066595713745972569665919461740462232425611119562283483808405061740864759085536000691304244720792908128713173477186601514288206359620557195754159134829548614044091170996846826221043067975535777955346283306022238347777555135188137319090091686093024089977394586759781845428370685538667846775734062590766513332276428915034250941703337416206320655700186608314655709718120169150612576469844841793241931526747892360533290988578094623454651663762571991439040428934468969762635628395171915584899791293078050042392366786995391335476533414538363230824563718785039179625079636557959406079871623802797036893086876181852873248766468912691186525531431901743895869575655242048290428067140797597593555041015081532525648130056777677140113153303490280984544609963205778289200487999896505734597401042879870098310350675530538628780710251491770008966258544883106287956118081896096716616621019032499805056106029172862909290290434269685233631527808419549239154638956775861974367399146018712126353517769293923925839617884636478997934619736684220105419158276857158848903199789429257844600474202752298858040826722280620549730285952979729224958755564969010790444824917849538991826580450623456874096110554740497783084687632970362172675717095945310891504795798556160129846828626808888891440620440358098248394965456807669236997537509676954587400853265588589727938758432862787178954180903744324324969421768679614574382575262569990662044539622477233723648956532214671891852536653828413937388087385289583496783417123497407700374442476310898662315481944455733587896938855055390780721836289718263527556668885217297431110332722232399307436666542979438731206430827639069083494251422466504240132281068295886092358670669941993015161324560212080041731515765520797925183573073453881781108498077490562684709032447083171249682314561364730804202574300232641955516790505078792494352714698817166320033551511861861833562799729325400952637793452915014799255320808794969912714160715193847773458589637479378181625694111733266113754516779223897902526677148658716663689326639906338798371943293418782316430904874608967931432435024276483783315776483066689517149994235841078738820498019215851688756866171638149536578807166369566386550757516659099292445909570733079492495686727650884809219846628221628724056406339861391795690155585956776784860064660556925557192239837976749421891529752608003142859087091771697423231798274411609885501563101278222906792969786464459488791745166329977932040106228741646148212487481592674047974239498699401116862505752575256225434778956835028214895380310673633068349169353558488094094378861816171170128185800117036122616715540060400443994257348916372955965347593180633215520311141177228524896928739734241288898534358997132229671700080299518152559985896918273639418784745318935299573450009888468114450124346316704443000077929151521507085662856322455956798352668546668593505986507898994653459130208510934401901019691268984284652641351930679821994982840148407856585424370382492254750684551726165054264082818225156006142620677235675864532377291991113098458467437948533647630637359796440092514357847366415074008099736952031508129140326060972117248629458983076861843298618133852256790101925110416385527083826145446925457945940629957894621960939603614526247615125665229766969621564163511969320456113901585525809994719707801256148931414467397228975174485053629881420032943087343628794946183943580339688711516362605746554425002580604850686937816981639157480107758060097564826873339752101833994697703468227737407040121136539014335436025725583078668838600136316287670900126165718758958508838379468256297196986270249820410675865393613979219510465118831475486333948494142190222736769438355704064209359904044899344399545842340721461808001182910692206865312292568545234447087723177102849018230942434418802405254268669749116266964501360253069262777883542178153113221450085966267390929705036883180724197750608716866055648337351915680149253390232462261268041167647858020682473057093347836821958750998674551618358293775129215231715198126420537680534110682018743350243531115225703637902291495004159146898484289783858572409151028066289525117836328728441714191395120845369916249538265709728377173156763053479182111460488021554988221287640569616190585299866136145816890322964686370391717414385549025434600894861269048862797587110831369605772744843588824845817266208782330892622025933769616311074025564624209816598516968808075869569064938364521654939790671608804373173541067221833210024810027543236755591012095455134336046004093403104215772564816617136308496639257516107836479595117620840781585045350244333952366286426487389717963130002857143483945242369768346956434284862831360697231508120938479261930414912625011559174542849866544505493144796175176267233046075230686954704953366084500757733603504569195305983983604736583187105182830538738343247102797797097591895763937853896893891465943206340320140927863497607840094463250650807075057116158450770439037993667716017899839722949132630077569972642917614980907670248645777574568760305425437565178999210188288649037818326081240844575613646522650548195661896328870393405719544198899788092230379350976244604155858143527905397515535820834911899985708046618415330237258610102494848849751532036157397422312500742715939070827264760270612449755316256544133505046813320393019030169470412963426124175959381218069868329641424710466249729407441389215875740707445124737629943208079300462441669365616917127042246183110998996793441872216281855711442458693620384042944145934179478389995873211431561088734255631411791161174960843607974499710764486564053396879167238631030691465799940926393760501437359918961701794815678218274734684350198673638519197523602455410745258972148957627970954985672292387411038345778431882047165054500610926819919287230350522756928069454450027582131497496321193507517400579916888139835057156688164936443758254854985199635386970763666734633106427661355585154923567767908931961812162437696487367531585975021774076961435899776779628473028924558921351064886128243698215839805726145398727640779898059999226238854694422217284579375867967542432148703949269361904297518333055466366217841058186406350502512589474520467257870785560151664321674522749519296134821747492960640719035885009187207036691972119459015105739528240317761306429043310944986308303866816871990411259243589910939252023855567759026460824669159402232603242252961791359558394537548775336463493966399431646282714767934808771603586011930891540698883377543531741486774702025727363454646254299994561530280180754725382781706133549975784558068529293020002855591948327924843174604380923579899065936643568623263116619796652467123107917016574634337572329202924177607794383567916696507122194351675983063924182485767841030521531013144835088074958041630785937018013411857797379084521460603780552668706655742272632593881038261872396706044294787379003168246865741750109688145086400129871923682321261364792464477384276835228001670327131371362657727610693349840865896839921503844454326442530573602103352539468766419448874374122360753475467560640789457100062247275430158199052543927613781309930849528515904517815168328905105719027530557568809156568133537524692444580373656958442695627303118589912022128106781262269893924669306795453515515715637107003402251689246542951745053963337836758886624196202854526698057822735100070997198419878417968089816108473774791002757901554741298428755585283237048221100308053562731357802867268185589545037400461396058299661158670751522006768363607320943243162134842241190901097109414059886552560279448567222124498229973148401240899363706022775090780050597085915764341301872797582375382700798142299141411508047840343914711217601185101457818193793443617153274117602421888686640303264745460026417892171398694295467523551251065776232634899593169564668711708268380618929000636526956714716239592338588753566747321278842656368547715663194860649378557471588026478253753372648213426593747752620221248419214838006617909358230344633324294466314262263837445694543186142268202842624782884367656641570704971447772504945974565790787697804912109076079253578330088347245094065405771929714211859633409979360772407730936717155889332517103089731726060699195895137993682000248152248351537493284074302870272608298744121059205363403291188921027771246296890263990544723122893912329625664314809922992899313631094142209933431683708960976889657464125797681336536831969580861322529218766014116210203175138650858227445575737208147942333989123441495903900115817674520611729487616242087482432608936362681536824356781305032190723113527204542563230756796994541925270680208319411820005944766196926459595273828124682632737584513590030090146184438017682689398280051864447503818402443851291168488852364635753588497984328899988145151893746541126332608617299343290944903202264238138875120307714458698755616825383297255540662099767416358306429344305756462806684531799324643901705833561153971517408166216964318414611301480454937541720666368599475158782773104906920699114203354680266838172252450787198438187005656501346630420928687245159364869122310901947804513830569507430844131699226710541176895575425250754324227765905631492239141071736679536296660071271462460912774457978539022475500590970212415751692946161790573532385477069391778912158985872870465369459236188411506019134959743036749136322012239343370537295903616122143184807608937080394496035568540731709355762468179908475116247839643343632708193775459541435813876999688813615210915235057260046668785816888256153464674913057067746655905137598748155187590029249516604476665161608366177930805384804569602848182131562150834884249670672459368545008674181655400695030373340022777505053374862221526767463521081844377505639030623878429294622092141736148221687241211411735960130695121209194665975460661634615263530906263841173622231835476086821860983126657099482660690092827733158897143026785268467420930016660371488308871892656600788563086816084053494744219992499073192559521333867867578617809139889833433929040338987854394364148219397761132160902142674592500437793235018706687178189642988170590196426912759891566350104545083075036900578164999098106348688201998544309760436375230871332622641698030666695775174397678848661300044429242390780918862612159025761412335456668841594433983828567078861616668539625070115823242560777843873044254247174268203859844293128885125691357147680810614565556705045933214638700957208838334381315710529394483995222180441813292537282150937557635093057776302483882439112300117468620182689602440784707697954787794671116356881380663176276585744385024751195388034964841634420324199317680089644956631498794119085930307622019008719242114181047123069496642728522537418006329303540603797188984904320732119825344402045028135914456135946092656263404135739650992775237303188626475422752473513992039153871860221742223615745682971664779977532314543551841980188877159705063702028556435911318845239323207754964902542735376740498270885651985729093561036048212490485067219022239340938807887003801748489295833588157882504613257286793694103501535309407520235080017333202767123314194988732804301050733693511857326989236858423933052670445964924986263574287794849552590536814750956865128999227364329625196853564481919558666790309242258318679272703563957212783932051303024407231012145513600278347925395603789737435104470284150546326688682496685864044873805723218539072420983907051313156382675067875326003946302900549218544377392132668251377367964239150644203905450291608109308359150435749565586174182417290607595829441839881352891809720004669649377319877137574049223199875653135742736790552968196667138134216930218364732195666810198361066055957068899459124295787030498942874709811978079679854548600029985165092952415876430490737349127683164844582745336241652031100889601075364049302497995192060758966385905656751595909244614131144934652004973346073048210063576433958503555656816176559173136423058271741096216560208463103789419041893344592742789538638786794891360110554012993538113872685083002631684312557228738880579918779472122558632046288992184692063652221195699835895560196237352464598404494702377769241762861597164871564583588069846546814227673900102569209394193360277993232957523606114639700846992584790579764839015351310259784163158172924961590904358212500965107697847085600806013806798543464479381449774233706338382206645865278291718917226275958503807642896604299904684340012793330931640403505128701130568817642744610951566906059265649549120122021386978443588171681655621194490640081191087173616164050323445150863343729809762292068493038359460034583341484188830453267779897227944304313805425142482364690751524485778552633927315761906505004628341858089602875483147003163954856634292698834454157400145934614873415275025326467506659522971330610123804768238000114227964703106623273282241231036091124822242911693151004466073935051293070112486501429123074461728077423446960250053721617513379012828011845798852018357189360630659913247222671173037469648448161761791337845273173450438804068637804309011257930260844364735082785254810557919782220192326024548796616946934841243083490181161713694682181340614235492819250759735273916444622929973579216250110104368745297376387608622839260830793659692967520859268004582978149129101066384308841141303145541079567036077512650601276657171639654068668066561920683104360828423725666989461838315932701731446207953065648032963054415123122472503604031420632839394338219695506803062843583670344407526892480847423562236156779343322716852178544884731728164207747167019437917572667792774345652000623451718428430041922021523347179257818573633864661246885347902478788035535400027220102174383006214529365354138960318632952589889582381060018864472156654389159507302353260480446411529549296620450496664835724833210720820673143426850325724357081094964321331169727115298595146940984253266998785685876900596591683931808487549493527668862515996390379713918632680599644329214540517138835857118557660140872041000042218806299263630566748141485471829997786525585940939219535167818841818709312364866249057537252656062019642533393125374728924283676096277745771991653628527639348279028830038194852942472631593100962882190724431576589022103907741117886184212741714667733282144088350917741327587172237057868886366813731660797436993752834658559388508332596111577932924219545993511545309405280034607806106437930453572344542936903459998028014981726513686534677974227413956402550435786122003473287370466890243760276620460170841379377029789804211262706572088556381949414569931609689735013401129749726297819080861349862088179923848567904688619363556580471088857548488953251101478944377302860295159583898204039426537306120880999585056121812259194984466248543974536699774706906988686368444084461148041922234761709538025627895993890037168687852213922131286747366559843470212379349843195663615787283887851343609864153585643820009136373437133372850214888249390146177657228327092407480236708066523977555698551126634457136256502514997157384863382209344552297937338990205272330796018673478772621539694020654527113268554512683481471921347788675298999514722963383913303036934893902263606388106505023157328584436961307313093384227654234756454608209558789366326828557656854224786741381464173790134346452581841416760980883847260334268644308257010765711751499152910362519900172208749066820959268891979817001415482498569176970941866165631823956489885883579814671658114778848437471239860689848131408787461336407678491203759511171934024683878430295295775788845190722933398461857792899032548311914330478189136532474249143127037596556257342991911022249548327648653642889567235721358207689652856718403793377764178147900885892321817993864618632013016613902873020458946255730896643219922462199678222248412545428976101496437463775484369146575272240700651641635540727467266540548266766799133290361623194362762263499746828015645847830595430570298068136235485745306823958501919254363319766527869798602539599679657202842748377600259183180622321261291914949713313058653809152195770722684174536097581692960742792126898909384375692216769878596990242277490592801304956537143607359418391442156981848710942415187471558899914744351584954321474367272937023224777263780417326489605458074932166884313883415618979819761501057728226152797498218528255288513877444529917250971395808924260452236480180408841756066631164906248997508442806889078659951578712861251668711831000756401965406877766747899322108161248928211331128680658512805713570513513590219204074301261071450911324712539565629970382512901123258366230153599638384716535787017573894966985233491191954592116349072639625385627358804366441386520064112496426197699100407287879132488858464938477200719666209166892647812566252471611747059968175243834868215907174343032325190713695022557998743594426546605529260290378828806388766386418095470582773899767329037603569390193362969317759686998953985093510885321108670095217042338746288832884156088697908177176121718112954948235814242480377990396990467308018221771696436362853827634001595093889697703014060506159056069053758515247774812889855090525664391839489299521794331257065489817579375647511014658556967320800816407631832569563884341956583983479667442630530520116677129547377502101143385286121566940459590918270813346494200764277888500680829784352051515064046299160785559988970299751845725588183791759880298673256456795782155636449072642970254667917473628013668314152214133833242796492190055532261727664842715352457741610102938640775644741032305506098991327049531087988799027863921593209024524298480007466072983478107313860880040227928074982800467535654012487850357406575876283575361040581293891326715046865087609092908660255251250158891041630399012461659376341843100639330602225675833371347590032013177611768128702096986418366943237085466477738508606232953979393591409162380214288790714067439313121352381726788513956396450769997056998787573051036867338453969326707415792545470078766784214348586501611423791662012200231730402672941126645990121927510231184109422200634333732404203576643621328979699886850808159611464370929449530802072394320889821070381109161322911940183789618442398090078932592070314770581532400263856649454874490233903314384855553646853232824633226176731191121457763895414928600270535725279936052680957742116387159855131012341086407066465110863227947805057231077993689237867190649346343252929674338348588394582765143548678095162109565141277986065460638677417576739010669060913594185019742883355723804570482570863786800165864366541622472810926417709690364409438529292239416683242573775478839160732695123758061650318642858364854094613574185748814535313992791145676961208463342852546202699528895047885377890678888169841290719451033460351298066094167145447823159370917115335288610445054221116497711752236675291381985390101547633919358490526587335609328910218208908583734772232317537421524135985467440365621619894669413699296950580534508450512301965999218791155782156917806164201835436398111619364075411069807236694834576300651998220255775100077118497505526902745139862326054065554212645210765740859557847741502282469491348861877542671030024495522185942878448976091506070355243541706417444075666056298237221891108999351618452322397462085709909729374434780050912064527955939622627870920427318100869319638920694028165350291963318640202146651797646961795646167142830018174958882539778119944354827730177244716972642245823548033889909518383634458225982789321635017817308439582182484113637561452302733770604555523715336600996864596651183673234139290676932038018201408323223788963274134569035201262603146100281563513809478021142979222409415798370450123346245114909905390105520177710288356838241090692617196977683605849395996825494016902170314219865291838024014364596283078391040111238857271175683834436571432589022520051489084725619496430537129460712067734935793528221760742349191370141446701284264922267784192639674787810277296241007067410730458458405057085677217547477555576872985905070921587997612999223164935340097365795580777924354315925301247590862481437359973652470366736988601556208920046032637592599789172048003411553239012534626467767897884250685652261186441424567060504776703681265188647703139400448536113358908387382317936920782209885575683536558013513023073401351380280322924807544373134408692370446145664280197959090237816011333867691734493547912625802641301447471202417746844822582838963068483060179544845356194950359980956693748833104403568881884331303739663957803809263807171847390227090372127347434899616528340417808245980079204713856937995509029687121480565169328015317713725450147641927596689860778043518329759148525476355213920811780584260841009430124000976064661246772599142962611163421619479905680006570311954404650458653519394493221494306132973819810968772144859496635845364604892322993735298893847004090935901506284865794442114663170582422399212409619548694636207192496720538622625577364618541952707225085595091083274771691924731287877879164768995771445594011436738547593237621597758679323722918182344716452975444099969797957331459032880508894540980220402614462358265884538510940975955680121243656708289959857936300847099905738870309228069154464847156238289279561174938634113994441655628604434641010047747144585184154867413953634080619862229847708580012807835303834202223993341320872201156573553758952705768566331063351526989697418951739593798381005315173214287113696229761820927740197528125560072232442922195463665559420638049101346503720063171822541751366796951926854434241116237392753821232913802649994024953175451212702757446726299709625820098732893590798306933515189863546815683134449341401404405090829474954637309065382903605979757124421255140445633674746511818150187811989637974538629153785020484171112952460439133476965680912766887578822763212141939365367462180734603685874047963414332804737394095169224287204291253119893965632138765755781373819335853682279802112337162317034475924026652426070043923432877049766141201945770056918870082803246481533217418153846362118402218584524808112694388409752145818082882924432763339555986564967498714967233192725365318824185622172295206103223282971390073052535306602337022698153945915851917815002565283244238072771780339846098103921132484337601188738347032932936931941616398240582762075719508741969925063125071490913446704226299146765407763079479708812480489165988907150122118563461538748479953746915013780342335373198018507649472162410372217849088165667810561902364876269126564075132979610230717202426562212853786000433083074294414109461057451493609199889127159612568905301707014557321030880699870916714491392898962499951477111516413225705637833267394485030787958765648101522721520940432459559648577613851612840101763980341503846967561103232493407632717240757744570612646471593054588332309662551875848382575234063253988644509840960450793219014166648592510754874576869835975137540292083101472819846329322279168101841825004633679497951707516696629971804005910494601683216206040391194334019061573190249617400657130946310442141303816945037986917983745377978510028039887175474733185785573982349306892842130650358119711906797827635764372791609920474137031694213142792551920717269640487468776703121003731755785585163782068383746317489722709170753446971221231125628758908392927679592045378224502447038295802239493434397943992456595157201053753665413030839011758479237316846996603890524314202040041903445215906003780827786877618713417127550151013969508334601850470300972735792031206539826397579552455983905788643632023829146803211006184479865809197727408758162372878359519720546740236611370383079773775239491602624400578978257231293066947807898509031650403861271731176000440082705628532102915439599745471350319983605959259518795134732336588967256014657557161264146106719419274402279863565722103237048816104430976572505377830702974530881602736899773895687095738208552644324995376147646097969977473771182633330854154843020591916212638044281926997620919444130178851945656633513628814113736084176416148829096838902075054972218397013337931788109866624957371594983572266134381934953982958233289460519549794699785283332680502645492299191164406462179624674702375426797030837310857538969044114148439291929314643063945159262586235129298379369597976760439114384895269631492532759068692142342920956086357370517972876891153171746715248297139809390860855189932050846053386404080459096092707567635868810037762357957473674756509168702095007132496705527308759071869300168347375240659722540007744678428561540253097107691489567109785284974020579944000513302700917433658474295723292902065767165012849808353531843217648400946629548350366351878408791451743756121788758306849173865231560529781573637907513335844142983482058434510155557000854111148849610286498130003480051370639585694345107263048905847320888713947584735398541408433288115077866020380642722843603682619245409651566973245276525605226184644829371208869341519830488941124741776390450322468598144024937823268855310107063315359704256562429095419260050747620813939331626177110348381981334154149536628149225963245394113304631333836546100239874868808356396641177047836635659643336325568017184876027530978433104171966280191659552386548776809223704991795996547543983621464461462114340256085726356369743992812884594742359122056676323837336230661148646000843660142551199053731989039968508158420123277258152490064349772699252378789129344517689369944075263234063995240887761851296940777331883929631990332126396591350927240521271421852510885589936096248628981643434229633106152653202952479177948997508979441197778531504390263151036956211283396898404916232348819169197863303804626453512882888055334441038100962212664856885880658546109586781583367191315812682889113892065818991525352118725529435979814482981625053925028006984604359886318512422973341258975867444592576927200268161154823182388083493874025759438507325048807134445266410906250460679990460094020143940225985864828010540776567327269125540403399539507060288298101854875643601428352157921521209954456498919128922094034858295648029244864031906015310122235533966139349254175910125926791937454239019877177676310046607905941400119230870138488618934914958990935484752282396802922224568969188186914022718515897215609900131288490127886726832302692965160443173791675863431108328834791714089500756081519051322203217889925132502341118302587071511620720179763351493584072908577089904727078005893778879324526860599626682820929160897333284465750284861732431232933360050813670967900204511376739629389393856668564380852407667894061719482920024764750148748657097092882730212835379631918815562105963577088250692735048323775076488855905354020349984048036992983756557739981151563088777882319125148851255326435615021539945423891070241603489667862909347529337133246599898545717633430107046193640897676989204662625863680917230117263310147545477304502714195424364663546066823208475236855131299451112225754968524967441313359068283807753519524051101673592148960576071836036434048505722233055202745438822420755325951903648484794517280610390185965227119546198178878224780892774764157252738064281746607997109727071386237794156557126988152167614548238795774629681563443448733751480994444050848943341395721194754141449226202304725172496184844250484273104642423213682147206900782819017382632979892631739132012046402063522321033417669077379597553239620495997112402115620531748088950585614012674746846717904002730771183239565069583880266478439229777068393542620533121410806262988791903716350086890822512355917977978030192981782638051986900163102018069603115991579435461936949517033630737176810214814340306229625476489117213799796402979582075674193811350184220386651631197698285567234438677901885905534987517678710711300071002286098409618365105505870208721608344725699415362103853224051398803005956995655966715316268230634503783272914411627230123423431832065250020046579703900245917400106798170205545473663391475689698683288001590528186435339442887660062755868660675107545157638630629279832985186544930473154889425188223247960490263015570323473977005452365891140164210906275550803486149393289861304063360127627284917617959750676627791808629817840167151786385909506298402288323407256569380532065334579121067772311410851187974007069173612967960721198278391051436742678433573692635351258665666201933654033272338939256662014150747235736722829307069007113917938713044017613701369491805356672630435412886624157451856656501496638862890489612901581668501691693611812034100293793681855474519308651897836373133480565659328109056239369453347666032341234295216873607215812160158265575760288320753156935466456162140583550017743317866696345479711554826987108551714051045488521703907612803883091354772044864285959490509975085172514996139768559170189676661975175731264264563541124515807624121491594687381172304093645814248641431942050955429056054291801469079705796871668558215362067799822928904372472437803977817162357465899975839363319499390403002067612772963546376686746348493004617223577002979304629102579944461082102767284830038558036351649258436142125927381122935050223860818920811551652645198673391673980947110868296260396411357643643091238977539693879440839619262781682437438014029177119642625568525840547105714762395870833443436147231084863992938483795368170363726939908791240181042032052343026657696540441889886404399695799235079610169187117687428205672453279446065023037688879202315323586490281077393514292095661321607164053932068185661730504943083727792496657994255183804292307450126815138480035405005427307215293009434288818390737233705069121264180374051170525448249960718741213699202220854612164642989447384060340625769834684954012321067040579534059323472684316713336547334588869708493363480900631827279987449525126516397814905769913326324519088889007664651210193420275789072164745027978194459528265652034590473795608269994059646956268440335505796643758178287198381041250166518143560609187165437766637950002769922202608261376371900074189493208000419679710659406418698523513182597834753468923117477661452727511618301214558928763183236055514215830332426430456010620529720419016770715195427225948639148496326482419311990583015496015607200417509701396314720718028890188405254805851192335935801000218315351780889200480106824695288483440501725758058023600915043455777065273221320647731003322456886288817429844371624480879916832255708600599216324469099708153776441690037670858095410942977592329651114800435888353362536742315327680559496831139044664784320960982091528862997542768292392756936919709098500427357975587583578761538810602248438609912327774432625274017184094285406510266385890784730522237073963326847499948023461341551492880055965373791364173181172594839862822473506510346120367335422898477250179621280586833399873008012533100660747972331919615854111834561129264149286382033335974584254491156166533137902598160470049001986064454325082260381472512518121709428585230439845385672464111472076925498504804167101994089778707364763535373230239906269510316653314841382996749899396970122079591196151355583500058897320433966833259608104116705816830500445016527058138623615885193271871164523067387419798593596851633624139799433005898547175270765937319176434633054775369566231587358508501796032404927157822231366119899201623183065678001921441635038474609226993338772938657095415421324949905184706677581652893816863975749725636632262677243208511109433159522263620351697315454072734155296525040454630315830859324598088887473019849812977529902022491686831127107148681913497468610271512361912931206928898370402829449229215938668601994011305833665831392029401012941953649298436594121263219819852860382549290226882095146586865073879559957734889598005791693758707848423804758274065838898931394987862463377954838599431940965624043377543464830160213202978208361607855032076991422740729577272216926161866874652086465706397818719853660192295158257736185592766842749670894066496666364604498787135439295074768002390441364797893332422639785964474618953637779310074734738890406711335219893384720480521120492123439991695344063126800767072916896646779024283881072392007246786738225262254948072287237040108935311818618559789439126136999295007021337232064544935015225337857137213769287424836784047484815994954846395838165472701506253362745486796534194127218021107870441146496887962091800701259940930734380514017723294603928487802954687460143686706149109263156973302651568487838869421547076802543800044699969991731854654708395387208462200749952023542271231448269565771496608850368775942694343704676618178869744821000866848025555489912940366877826327952215588842036915262930317213829123435774242603807934154851841383114947828572869138791437145122421938379143857067398634066012895003449727280553989518835755738872660018482605605893599292402154959302285587194793679226753731700913730576198031997116087696195282015158752748750413213137308880640028452663294921498583680430634687467151923377598470151111026199694560034858831024714334713580894684708418448145093529192330760233298351938757212220198096708458308177257585046127224108130214238777271563382516497307535805275582870581172300218686272294899005618707507557828134359573688204758839751047274031152730976260919063068669641634670009868592721851502809296340775533550384341591008599349558045004671869991883208191399356860594601197386151498166869072613205168783686813672161205172464823625437202177370254763557384775113118883453288755564591372566689430471287504795463520648329673243370854024122113017296258240008664180430389921205275563702020847426622764930989337799940549849019629084233981084354371515228742534539292029480885938868010364317287191977515141728411714188145892674468644253658801555713437638045581292130256632175643404096186648834228272457803128270679465041363690004651615688023596886639693908407500008996175967530029209844292082583018433621628541926688718724286764565926353446900519005798309767115687670138289213233080675021363478696895595303116717999512624357115839488878365441929780115706230091402203611250078427717075880734212950887857075122159514267285845485348920956304883336558027871390155000777374642912981391743955074533968172890075271109150314268126113524643448057664402172951103287731358210780813525961989662462471606964189761995198790243428861048357831869480646123218763775772235525150961366584164222223854832475011687817534089717471067955066010128407451666847780317345691089515973250694798799033924225588089967234202823343740740301793428141599554910178962029735522430057382380958170899233812049186902270795117301572205079559640970727839921860779505863245850630799834829460281678141249448672274617305211500203672162277230186570609437133297130059037289780647949476997550287656082310892940478748834026719854651595719054597489740020604684150885437881342508738027797058812644164981786779849000274123933676613238667037594204682240894944147350558337736588895927810610722863143782395320264470426267766702621687957887831669579523412636189669080410359830415529455381270808102624035015956074522503061569448101065076413872047905400354642965937610669043384352997273742063681711125087021557171016245515637096518732087622006919935033418898441415065105023925744388045629317070276970130436430938659184582084491197324957089818067844783945927896125453050681269689694484943297966543401163559136731955395589250578081681499009966065327337184257327690992061455523153887499152063483333542043583037417881679623980442764584196309044651326460555898773119912815098040312730785404476106248092916701842369754164908176543433322340039511807427150222677453085728434648267575403628455631017150889464995054759768480735668255571458549556006530070493580931664220999218386423315397344663445533405060110923013725558960260388752855060345853638913028567155336635617700110355106755928169416437722242481867855433215402949378583010848206088905750284518063732687457945292891593906848308283369242823431367093855749627609450450429121069159792867767202195440794433409017408653050666334954802144144532581661385407929729448979445188716310557052363211443233222553156917589737349964250035810343989017451536786276496236305919632419328843612553919058246793938108493369183489449388138027660496701459282921414986574172057184628121075102693874709072856444024015456150675381910989826444047703352977942025015001377431371281611329227801951466623171280181223062996667832182805755467043231836899425011897267334377974691444922006453625259048352191743560994576833394398466267871936599984222061310833617250128150723814223085643609041817031141607971152429997141917944240126844759046647102949834806501438797844170007804810518870182284247339228697548557209588119842417324839526997625493302275187435268274198804643218430056315712837842577817435111462092374290343972679923891008281074282074909871537869531049075930949190557630308840105198655012896274075745292037286202171012802598583266057644688359762576616638538820661071925129603974740448793881303866608018683958084441205964930616550652529866680190245903807362875146172852223067953032556666138058223643978083447241891485901606506015210554426966911848144794616976367059117370177445983638093687304174931818851090145499697761228394065071034235985603694657387915572046100718886392282849488549559285120178726628571958793063439948464816708256833262420773178182057233080990878385290203259466748396543631492334289106707331741525729640349920812852703991228904998190257959423842592238853752514600275467949043104435810791333768738073056876921775610563603705423492376294878494736597307355724378011403838127754868666507561614661420970969834548261844996475097453912360468584073432574982710712680979138582215744634008195171650750293169167404061911602181493150781567228344849982040644863825702082382029835041917263516361219023175367872252057847323823474681977131020324252920981125409199801235061049291233042148967072791379777380727453887261353223587512528009203670157965232015070553562471321784791916774586557130226469219499255437463884805176536415654841863443881210125663209430619797678314576128336712228380544060711680107526703492968578971106374392642363628721285971430865235474761713178283747885685926174050457376500497620243532602346190580126542711375190456994801952477539021895485783477634837800063590803205439259665808787615384584692666897064468110354659495708199582150564121912239043333646692970458124694711007568748644883912921509356961871127496152751740519706338035611180706835630923804655185844672459793895267653993591131477337291124130412949674817915827387352748754960510171211718987645436537433092723456361769341950902144357786135727870217905864395970902085974309442809860349306723938026652558648393257227762362394864522158561967268031332766985515124484381883154735641016715196453142071041017487636239789453818597293374699515644551324001741428372764476294116919297058154551311514300761588994769217519863885203678843981586106584215028870431107059930214959110112078787429046258377293624014915848062718713974440059384967788105380767828276660937508340780574480036825579662612116352280393059921264740057522372569032489067482517363237979692960869650678250241976693220253984727418235388936108965165065474701227674474562878891477600061841017356332662127179450813482800287943403901858822766014652576347305148082611650808539450391183494456461518453155026740120838191257873606356766371827426584834715444239344859388552621717009592971543297645730526109136474879126775287106522897501345403888290190002841324779884086494659083045633602704898316930338392786658755990509858842229947178566986946433480484625722586579688360450414813887040144502915670086031620240592243546148108751776093087677911605472132705290799085664023625868396271284882014994022520269789392217594700002966018536987214632459038573066450159667560427147194820898326294833294410973361963443216853674746275027557175300334278769040646314610348226965975503931690296889309691316747800513214862683112809580885874167322811383748724867503141824970303396081580672279811115501439057931509194832382121807448384494176714992308062585478601525008776091387964466343583640353455939299725168050903450874056951493967031276897899205384017161971810517200046431562914650844761408056841192680564467482599843842983885400324643023399913380596769220617117454419197702810535584100765733803725143440282610602745490954689725179824700272783034512836296453557067576436385866673862620967469217160707897637738564035235116716605687135770141809294009003774994714157439538048889722167009662524938620260140890743502380341981791440899134328052731477221284180900406776954037446321871580696188273131911038747770922317456062399347860613410251630843999816342149554811649851194588560900024403153830365496094351596997725822110702978043032504505357287437601887332594432967978207384851296182409991971956551958988985896600217901319117855307955309289245182564775203226836137813484879192341700957099330472900817441229374281130613032362027447113273936655858201089165467274456021685465472383879375861253487684778549204701422251058809190653277988660837862068199449277492397551833078353015777022995289117974337247499060141720098118906482950457581224620146527199672048326100444452492448230823017044836759621437439774633833343838592195504705380905576901805806507727736037591084582226001864464486578212333834367104538176837461301821558653898056648711417747257378974552042474682975492021253589264550994964489716999465754943923405004604284584635169627327753661743841797953479345432249572864372998816613055246661982862069367239217223129941487832438641800321306781015894543958532871921559552375827815046707347842307454237837932703183356503476623478399313981338696380379440426751352155588887390474232730449542687663321013174716925048526484613279001272783917780213552431946151966071754948497842159222573274450609972161342883089886498732082804002032366143673954217753839089781768785073029886845728566539835189131629616918720761216797456014309765842791827201783154097445063626218851498801046667839341943056891963043768220584444744918571151355793794931181784766596480556923375810720029638006055118020244535260191767090336800410315864825623759590129258293782905817607795682098357177916154595727104179671557995056973738462709575995395196181019232101793227102952275961455245741157859990786444272855530150060574514771135039599448823212271581012580639668982508002553307707175033420740853875783103866186568532091869159613486350687524524308717813325905587448731099735414954335480827012684550355024733231538047820295851902893390578640020938136302515297274509774696026835935969269548076623168618332723153424816694530210211462741811117235315493768501277084013227649948043373194414485135900777553515298216123974574012078370123309661964262137498214835877054437425918555682592889469605569278462635486149953546433486930761417701119599125492117290868220565762713468962002231786026155378111244482951997280634090686518408420289921762523116110015118678887993311897741415394452555876947901734409730161816375567955528247649856037630747000626250944525395199553502290007552809039522338110272778179056063169932456043785978208752404559829584733851690199629762406124761064421121730001395669162362902990919019433794430398902519324532252683158032063657527044648593804753746223394306155778952556621234636562867875140201714569261981833551389347676509559482832441529735686589057810677707850657983944411633299692689506806357946902644111739919614154835788237786400434321949994838947052612453505060556543539774297609570622629942128086665780743731291646815188496687372823699641328372630859697005432573989292174961105005152573084505249351487611714946170186948395965949305594438939834197900759591294093008034490075851816592600445982312787823148095611373800818446588948586998863333012029304721599628861045094822766420783311188382103584719699421345365803745610641186028533434206959384088806962677985974579750140621517787956951344025511064931386904794583006571383943977018612780500649937740624420954933797876116905031842786413801545537491677418101002946812386664198642791270028870150107681447452125959326772288418051428907266428297070898873060691731195803623291595295914556601523057554782128488138051199751012690591824811252106103249859568000023940283858895087531702353122404826641000445862181270337256681355900059815433930482159719946914455888235367170952445384241109707614477798191693163111335941604658342915101807799425919951604313720020536644101207116920242485742860748776362726306332750007897178618079258529987837577008413741471383738711275669326756774699430299385636615771721573257575288769250724793362951092551229706541194963559042848184250348839757142800316482368538827449687900911231165726000685949636450212407543489968186641276734154187453508318809939569467273319220518650278385507644056309965471772995159844090467893187328664910384102903516244207915376539294682591483395032395601836459010141664692599112483347902943133481575430822677311201648360517133371891878057665538290260889042049431883524584039305463258198528198322842629677920556911102627658441355241472151606961651062651829470268176081723432969246783215666124783339280623855629226453332358742744674525944423344052210284586851886183754352672606990610421648185749082232807147220845128433030221944656597040492022314705197796202028217774289903544484232350437201130503157840215069736385215462824786784900448571662500138422089946795199880315894001176269300280707780826026181451499724135823516224396855932794483644831907411873526661667751049683508908835864239770053798571418589083341859875564251403378010974269852707902965385938862002704214731587613297667362865180701785887810655541404148826455715939504409385951741612144508875980561632801067555945129144316565957652732819753094694825685761540238786072381604138300079455296549735593244342471381580269794194190687758045060091412710970652403054410885586796064311555643119673374805091995181455158033212820018465327865876303599204877091955437200954756421050385419751955642258214944685370798495153722398103234880594172951158478841384140324662618074746470370850354525251678056392518514889320051450173028592973432793576692212336932479138942514613894224930360671205742556085379598512700992195350605331992146653063459844361065167993336862890803038072968438552526138004577700182443922638466938732366746066308843522564942385848704932820575418362887068585029324031330141731047187492358784086876096573360944364944882573689217723520052578913810640563362683838434844138190012710153664660953351117736396994907177420998669741159691188393856718618986407644389327178068403345162723778970508367105087180081369985910887049114267228705942634790554709598414481096212526541628655253170167503091513248561960878824709747304158213077030224101295815728876373192076984345978177034780356655662203223445350305405614019955736396653243111406192300370192227602417683035779757478237876448929689354348067672090491421132599418631508873373012951720100049680781465086861642506452452084241933393440739039608002485523417514792169378769258472893692785062623321465117835641058542012903713912758237833921473498360044757598677588158206583849483220749304023439871284133736441791848055575567431759198528437530732568934829431288559761229900466980208856705717838677303292483189187535019671912831299359253832522453065887960682066500498470925998263866790989550882420819102997463527173199111519848636574328416392473799497750536044298304834282363847288521393101197906253846449766629096441572773798026568103302691872519101974385770258849928991516213352335687004364071820400245582767839938875331291797638864868572999858539821174175744174637679398629881848221750822264216894097959918074628851380474062793495497940560732638769290302766179503727732828609164195394847358856502912266486256447458217458809937222013705721010176802178027969200291761970132972081814813121103160096465787188177224060323791917258997275906026018472253183565864913025995066086245103074385079757521063368127728703357708514842176818485969994355663059800942331765110121014176142906029907692788004556614122433627294436476885319208492252442297014200725773177713627032144789267130566673172511545787031925164389083823537595102669672959521305050314135110590270040943157410598882084729261805267586029406880896368343797657277328567930741321334521165147935573547411337022662063264145960006005530152371090633515361544597071003690702164490363190797680818347168833722842021667924944477098534464149861860280961696545019050332866828728641706393156636419990394709145669969458818674230972681324008153282625863577269555386643704656181015517028300530741208348861882664029725068354578532371444731561246586493267163255690593222909383819411953961984925289411530540583538514981172293315928579527166396498168022799348377859032309250828066347749855864103747379212349625944852181083940806619680601361908876864257223471598805970232729111698383371495119871461974388087792756169962172667318309779796513523353652575669286693357749089703025979151932970927783003339253712884320841307049064448948463893982766694542658336442705217985738130204384209457499103448782165951025953635054176901850354924203256654225977369445086678872546090656330904473295103894922720353285282627003761143900041927373811137341039186171556235833612618084302694988246429386344878757399281737409197348098219166898599313235981417181662661340865784044417191272208185927883232606881386938372173100965927097978582814066355116302128477451437875139004862004464487556239248426758326661106028605180352052618739720226228538724096010898679378759943515622471285001612248005591716065307046347627089626131228659435443118824530063895132577440264356238442227241712780153311076208034736736900264498963769211222013514566178009297308172117379420124318761331983383860116792572110359962187401389243379948140280027536510133759076034471187899335695336291880168483671151180924730680473888833497879693537384667631229650696373167793935097494091713582075230598251876587194529235650057523091932022254902134272229279133218053858944687255310913153651449840546738564375978359528959711892526940749492667094841813601638207178448705110356596860148930203299257540116770140971833214479530370153314618458756030032135619184444275014729344620459513555094654068326705168976961945679098532134685122596324140820298736664935299932546856376937828568115669122288055582667901137423451931961072722932796812830850007791011794843447618110407626323636849699678109649222936981713064245787841856933804794133486170129538372695225557528745504703666181275010104826098108794413361639888587808977962537805002295747446860548667572258723661135370596515891261250356988317836010858024180651170994178835359215290129646622224412041778534681383845230128853343927136324502874757229966495910218431149828474938327881426463934720527460361597642171940308563347280881647187957570704243783634618062007474961473409950825327655878953440714436669233442807436143103379240262080560584150003004234038154841359717303445322601789083726923021911498424460622986710960594567275520297906822938818289404394671830192290748259776443140211083678729659517011937582230021954273709556835742693229909846716439628901232386250858398288208723748687555513163732067694326015952046333199077618983940670134219399093169048500502743191936784065852418597839737860281667668155617918424257953503278929913549396905721605682833801767960819957940073899034783984881825254453555207880275095678441849096949406828879613688317050345802111798594296917934442345520539167414717336938375480916961803416976413822577969106171666995267913222161025595292243899147809212530943797356581111048127311158750295826810617250992327493326398742800673820417859492367504807936223127696677746577490843875034139480979622444993357872620930480145924394686001203622933709401782173893841421271438641105359764144788424490008563840263658800886075252458465741906929619206245335062273088751906672728135276740159034103667940002382001925684881858841249935876771226961611912786399367029791403425314840848639152406067071810401582453907576067688588692867589786420045334224355974405827476372526748348344066816717090706322875816599130182980256695531929545584938838149372757374845505279951359324138998629421454367339808986555066759926897736367364392923084965413155383022508290095536509629006739806169050899495355917806391478160278506718176004780955394634268262175169421088476109400679023633744183362714579329700121239250019148350109441332028584070763572555747127753929014129404424513575862830562524658129926009180275972249174924054335410761022319231437356643701750321358947129677672350167310148625066602093059965993831348906900206414584339073841347481900121437791366515505930843422131186334369378968049520614477436875602047741295123728533799504887680215567508755400318572137570395901179659812983106634473846974692207041140452617904246495155161667675948741132695769001500394154039783234925989308803995251287154440155228488546301324020012256043206445079048677817633439526413086359037918328832686971595328736435447442004107083920012561239325673752943130178011988559013365040697998827349989183900388653445540748310244351598412367949524063178482500042969267174921619341719149055270426249083803076988078310456762118476785081522392638043196817912281631871509570005732879781115790198736581322005297224215087032373249698119492245172682426985091657761961114076821980898057240713098654780450029996731905621395257098893633134064366219770749725481009633812033716249141273321008717427839928437124736745892301289931213002634725610634589061282073575327636971644337577144063764550131603438834995780417261347414281855697591850975567744660489262222391893687566486046868421059910315178574959595548858137885403528548679030332562897076378301692916187416194318173669519226129906018497281949729878424730131771922489454544337830606714934462884164838716369194419407144082101336456186725027196187669981414722507276644403154085827736060714121573235597369187241463857222333424301231190867190597276357179252747461510059770163180092860529572551262036431736152923047747197616886709839299052815076982484180483379438089662397764295295193560275484521246301602765070448698841802127196544392454215579837857660767361667130184444186625433439882977884059441489969233882894292643072609910406661840082954985921455046615355325776709835655778648472992341783645505055619402585693685778339359205330803679912900636121061312205497827455594898768157212304229481513728029513508648615275816231195463802797000660993374846007693272297777542859874109876868351506994271171247542006395741725371116143267315057836271008016985650907062728100074299616848522938526694123473997643497885968895471595516966658654607346987063879682867063267930102340185017710294187333445647640901445014846887159972099819265280206858678211836857476777573846813189608070218994833636824199616162905499382313487727493865177289672775032179424034477543862007351909138598662893035225847469603528685881052424016118128384348991870722337345043634053718119318673952491611156992140551445803357725715463385588989594405672643644979348137681158574642377563797252961878229625295814606432241405650699796253970993698181072074029418373097517203866010710266816607565817891342804525788362993078323377539761504078325642338554885344748108931145286344306873281264250978698790337350149050838907593305749357803658595325402284660931638696804093430724943846820908563598643351754775001055432129644024312142150172295365508473010687409857346926752413366952136362555527769376406910368285457752311441178015344619712177165013302607502043593636395306390393379744013613571220317583786159058990315907679076490695840749344538698476620130710512890722823324959685890536493035193942283167387632689087954739095730529501291580799468146111469252493345306075469470840041828108192535399005885823342044731224412701383548105895715163314723285266267670166394109691937665893297744416032106494137912252012440839236909921259546998908513766978297100541646903654591437521181020979250470887377670224340864543315065770503390042893959138173546766155468382476148890447009336073534890021711766850842557357969723812429077485729380426549509132489650928177331773772549889342458848385302302737333600349131360250578736197848896524531334332887100412535240310923177461444236083854838073735994294920044662448184480582641610014024881740118426061931090518372363203101939920082743033155383577998219061247838006647318958161839600915660177423279571305647675817952101807328151764954181366206680924565150516959253634023849228014901389554641041336349548849576766277711540456731374603965689096975214015833506078130814920962892177460890932027316208457577899215728396593883485898101988596413480822151133955861589333396940798756828603944403165964157188856030964212971993713639154536274240513605428399058119474757185850677465933403475437824677194300657490618032033439914590900083089735175660800253947494566708835568050608877760882158646769877967040037117655317992409791086516065932271195281202959405840419274258529830968720687568700944857405847185618133979339282779011534465973225779871571964845243628210793653504637924623632932697826470201578616474120899523062218266192135380626064732668300458017494408312251928101644834076565565645398001208620704901001318774730753451635945000525780658694736133898782703833466184430463083630388162491614506884213416607139398692180635324846065092925332862751646410967391525921798743229207634421740727723497163371268085193963372631493742127905876802632069621613753427417473102614482579736042205142070143162444711333102316743538231980059939951728703615840461296664254343888945701737065081831071914944597071422721534818004753169850834273669976887489683876879123383990587442271675615701293374992012550060666818710737731985028022477589361859093647534833917260686988072811714593406547896125997220251625496451586787129978905300680793395121485155520149483989589517322414478357886977593020684811963103153441447885435589179224638433191599393567929155658607822292855741865334457759891283577667230141052123468634058239979685231823913706095302545628697507146756632597478495545700993607013590949080971980826874978278521170239090671762146880225531653678810024557167963025879148181990813943589132853232026564013452117076416973377390519660463797377342908822857577866802549847611159269134397450327334412059440302775758230708454159905878519873972432335183353447416459132815680777099910005883254623212936648301360564567347215004790848209563632089090579971100574087841560205890096991322693805816847876351633255413607960176332956566478456293656170682857000856623058562177989551403213839545118677422884108871352443240527824228764262687181951994431522179495049812264798354739826454319677633769849887717904362365580168165422318906978665346216552355832145889186812909243104971908547729329064390389247881320246195564657014184918510383234454356393367876829296184410135190416769467616661653754404291441372493279316585127712404440198157009125221107727270665984737571691335998774766032694961811910668724565224854994619291285491031788843467877747645691056351229882574715406827858556924601382452110881699375681692452924269006019546498698574750224739945309429156134345885136124763625944214430668696627499458557633663803771735135783438147059130051031475764856258095416153253968724780140275945838014390326276992827292656791133918730864275346859803035240643393016763390277263608871858876485233096149144974567250747046794496500754185658588850116354297772986562753854961509176356181448718488549442896144607454969314802473992268316175144798831306378663455641071637160911970509353325352804926921564823145176749541113835243682338118082491205405082031880785909515290311129523282634190751466637852798206452218471488298432365816200828679554581317430086143979255642576576753908844832324256349512520855058182152298082955983896109994481665281279679817577949061088474478973403822764397675383291125612112516293624216294727653997261593381829705631260558705061172992363623889677152909048699776740495496030852163444554478573197903262450655986888671246689033434755645184252311016575720580960258935874840017222667409236279054284105749749062022847127716049946165810192334192174523922135266829287897663999564736533260684027831440160538306526531373531645613474185464666939034121917589532141425003759857083137993104361506806027840910976590964569524939587839771133796262595468072077889983592410220605171718377035737091469879241701924619838642753909967360561955664810797209531630986056610579963285462581540285368816126437737558546897825903809020723561825671933088296886943358979556502459509392910221625955708333701572048927592416910595688785218598748065183372739206870252837049347198298664200061322202577813018936065939765378555178266045984617698298586933850811973191600372548538522647662745218556840394082803010652115173641900262228375543647226580510293075573236833191912443245524191957303865298139954639252989931313223248587420800616182331325033797571420175313772135468298971811118382392014257636474173694782067199742640574827105716605953250936557488284304995532281202863275448907551986836425673417356548372871898966004866694617168590302619507827177092620682879513152771762846130775020806798104024001747602165966340467736850474028280228800616229306967278561945698391381045476904056775038813154794886626525845410696656184596412184027059612519551606827431787437256134295198977397963148698599722912767661446604762825181758944155526078817330755285592588920917885262418813367748903715671365794951079763651028506404120714054826348744038588456609628311483215597255043608429228468656714516772860194061428758504959354106745496234134756933636940867713218951413038881041385757977494803928275414450133639327799360589891538590964149808370896188172879694857339087402057032517734629487017170367650392913163286459330678809136655410664329076809726798425888345905923204719778632676235263076476532865310031076295169134712227147284985654175451441280337542206142570874363486665271907535040242115007031351518321989087080179942356801941333227243042097395857055368295878600065690033317091303496305505534554759088126358697929055628717729750589186198165066091135690329199211530231663539906408794635168298302192366840719097058612402846255421326895192035763116535178886324394151044110159057902231682011777782703313743778641135176560469975720740716290281564888781214855918073236089067273666357037826153576743435439856789131697892736062840126403676172503524394930450092752318005636489645692614699545449082716778494452302417757660780117228580004892573193936243251868416811378057450345859473668053492636251320319635824390353213830449309928515230751725094192941813640392262567208130428173348309198498877231348979337455670916016571869353895626447014707614646397620772616645838873208533513567773657227682354279768634636705329542989870002203797408215063799613764977114441823322262053066037044099511576497659296624355865309585609243504918198109514077415529328402646466784972309166080165353966377510840542287822244916205742744322996149627435407512537277200156900652900588325388052933250868144085282906278346440251424724089582190334064651587880328256386333579061864698732593440306225780469277547455073494801421353954004030669031856405725031902593505302422229702964107925226904457516150045535105669220112796687155975665676207749814787205138608971171136426761360599380324403380057444579028591407543544556484292270193858499437323861617011256494166098910625825972102620645282151179915092224684957283078993007081154007003571395955459461017487191243927113862552912885652830877617305316278224367636997418145299101141650740412541956259519666684448220181365373000920056520635289331168292753308195252962881428881510530307844594670677516218195204627502471977626185796602919546785447084322391570368606038189222630480699044951343826871118441488218969312595874729492595960163695118637395599580239319012553283403448890493840826295937829686589135451646314329987000355764012733813084294796831606560397092412196340338411840775324065868598691671120631404448642416965872168789731427132806864128849344813737686308133268766019124227367633510353234857977755884464489503784958687687287454275672340486515906988323768429017249641972790991661731893495298703368933523723628700700396825648245710336847619360443900181076582041560161599589182549173192395202436425214251590998896154214288100256215849242430530551092537165782027519568453389214411609412828828211525316538966792183939113019670271032397559648436345596382985990144460706742037592379794101782890177386087578612303104026959399206329066840030470921953412697440046417054653126673431416478520817217891634273394393489819911493004150465893644829132577488330054477295493754045772788303614732351257655517062516917895768919594224166097024870979122165699961923787583416037264089859105335618026615667020580675414455322130807909330504274215680116144155267862759790642941818250188202219296885864759246401208240017967647062678191913614842478154835572497886218940945916665485204371936063179867861510151827996805873167987043612143141479688809535166843248735277577325060319940446687426394448716837486752040708875906524507872772052000752225629389128167138963348379274749756572783575731581006102218251727574799919114047589708043817810552167810461700453593012418457022255181635228773852345530779182562203761025919728128285474209672017467230335426503386229759429874571832542054670426874677206497321682902399831390004557268577492083159551887659360753720571165960349697452491416129833581770183672062208476814127287378282138426909882184978433773613916999041242132263593281298440241621130429402995684642169384409118179297765951874067647121941601313574599745558217515928270807592273218981727178797183866104563449346660333167811132946026344532387688129354437442707928181103712275215891213138198202136997857793986962757981030561282725181195121780535543826245951893865652248008484835402305041544223332977946995425675049956806638774483516059926862837746593016382753691257586355857560998435219005840860969822131196651241352488924222179488205736425709708136338127386982030385569342458353410792149270337126948276865312395067754734635517761924922609685328023703243808687951026319017981291526179957394756112125061799975268108540734796438309633147651069529601253038303401982466357019065616988751112106643897465825169368329422643251855547913601151810940550370472460338728241499175350484739643766910373758454057143152596600196103610889465460885256530110307593173375631286077682855764641007621040817085721341874888867907019920651714025452601676827846272330965597700160666946467209271622044857488390488313316678771475985672835564978805366737894504124069316897260871905137015390765271491233663071573859508848184942412197150662342554874970935522696572472984799438041724246686556276517894143910542637241623055814619470716082312054435290327048335367476624055738798738503177047964665432221482775971173298103250598792407479836830798806813580560417990302176404136272968374098159506882146531013454789568315236559701579739310521779084772986073321949563814377136280873139549458635939634125419176319999401580942129102393750217644723573210740421280080325912275410664958258013969663814172150857129435351208505507923467477244940350035431628608474444443219694775640302489044518375304106220234859907257299637814835289214497236108463539841766113246125692381725512541119082316350138171172677825602551400185604784945962877671962477800343329310967258202305233023282030292702582092446303524480785578428503492705860877660623586429568667298100206157453328097901660102835742049786143514243633609732642415783125773666876548364264891551659991456217691983498461144265942304734020241542227236809678994196550768115620356021305734855650178382082290989619077105771461574664874165510503144349959422982104214869302995577751676072667428314845465055714504834402042403933216272247960533304456598713786245505387912023988857530415638077304444181486440902435741302241402176188868623595835997071274818536175803494027702512839958607129701764210473324389574891490208720880908310875528340100423567872274043751954493736711790814925732364017607432721216021666517668111109167269502306132132170408557992384092367433095866782770453307725725739373951808633530032386590478155804404078903914702091258102729639373338003104821427820853324964739244616099403421885765238534869478562441235746791720878622136921285343873830063217746790940703828467181388816520514248829105317278155785093154593519790909909351177690541159897540231583017667638076265877134688880027981860430521201937815424127870251809140403194610345337440039092897757375789241649954293293308624601066027521039726108565152621257206852311785586947950907384806040643767836749546942760090796124266070459521675775414355107305730535904819739503503758548230651711058899051914165219326306268226217408200006002186590621027216753832929668347157602566506340952918615527732820222102518658014767090524900721366267432751292400227684811311663560633389748719347936600671686959462407308404069297159537851203745449745333771563310227565162072326762627110361924158547826853207365507629174532940828213835690018257693870689156234755162871135607687389538879252100367891875318693911132719232884487177129761858970289379376821729836706828045665852169342776520108372055023936778265385399778983159173377225638670323515950326427968006024614410317075089606850005863294918109909631533900997942344874381385124799573115905948574808338104828174446800196074226947990393419517673537467370331708037307771710063547622476035509887711038968795335244165185720242048637063191170824650318099540062733812173677940131083747405984027074233172930114093875301839906603339677425560764990836089704840699091110352169381854636894263882774265179157702067917561689235984029390580945397352968425545690384389565490195869693187702148455719248688021607866286426839538307186532287876020924271420052400442510941276102700011883263302146405509710716989824188928409883676313027011700793989175506721507068406414000545361902142706513032884736688860806953559356056825167507700456207095389658429928975110364023337530104453177058194596832570387856029264443482774624232284224854364208607710252227056750922456490164473729156867493911639101220139972004160123394895365581313787597874805657660134565175760641856874089934432897300088928844658087016979972688808719354328295750114715252695209093560032121649487334917140163027276338134827824821334659444010514964998887206646241434055153637039645791754847739046965887074545019785261295615076614588276722638624115110340167116620163133376303667401197743499520178561467942297845107442365876628612540797996752473628932824809084867334535303991157641626532100114502043087512502336155408531492797443589594452495726972297686338877884454330529060552461229252366791578597061657987120241532902003932514350788539817922628929296214445558464554294964479015879880190219278460088914789399952850732210592808583274854300721998549317206568121446804910736954202933077351213148140890452971307405266026357191176791045980901892108375156594212013251931448855254703528513692300271049356648966414147594199169288445322117372043094284955123954904808087082390867180524222292554231826782635010293043018737008350723690147867101404923806450090646411132582703950427513536693065977189401529226421419880128416792922197301600516311447769289662081846721542980676034394391540600859714096778077245337695903153162908749590071174172793928135823108761864579430866651239378807109881900114106904744581030710718362278531850019121444498967012039985329660870331555702856057905163109268827229080740908262628562756776698800872134011037965830228307374945270696689211950868134832706122326530770418104269372851986300652540694865754390160634652084538174987191173351115357577102333651018097001092748426648425250512805864226772437807043609936950828891722850905984682299599445497867872722218037769028306497525736337381634585785871621841779966329206493531389390424486874364673835220786584726762471541744981644442745277107303503769244456664314590263494607915513616581994628230690775123394621399948577163409305449558311999701649819372853930909596278023537516667862943321473187376770284022799391740776941180266558440659963641855926781499435454460763196557725331081907899163189512666828261362245214020763540829508253113043653558511783542663804394806436994839796396595881612868205461123337892926061780607154858219610654153807291512273319769270049408131413409742891276205590269600579658031375902083058421088332321776681367482025279722072915071075968766990278846075088835797522148826309923721749781128556596370878311614181334149654942967769881224624921739795294704901912493379469047316414645580312653977586381050380931846161931879936056446604611037208318296027810536357600551563007465688201929315230578579013928025711034711464103095003989968098008199438254721215428321866400788289607527795013607457660471620093753482671451436231176369611147447450649016287782771371588108927304241323503485530775063813935052718334964916061702295181777407392488409088648693895771590566259428446739907185007365825318142338934672756309309457193720680162279531609148778366330442229640793635556866065331304691413075703643223935003079771152802107947449740253067828360822536041263199328433918523721180310994793598612794800254136449981444326720194928716783039316628942242591461823805813000912652690529661962472506240751147508932965486929236687596468707414861045813529688331798922268891431180401630792904432650041935604926899208964703567522247547372467485354417711504353137198331869736468542617669017542934082532325028160622852616748834012753347376095432749164720243743021083213754425695199402746222292851372547466524919349863344318161588972661220465646511715957560402897227980345922591001728988795674153856219991104772268145392319534870992398203556589623483385222635927529586936822939623405388686033145420717649780509845924964051198683935908355025452476664910946028022372818623127927740480242490843396127983792640629761653104175432124823420250705404534706318677869290348267671580687472781829115320583996585174939255507255949056334052707227477275491456086295662114003649490333256261372894738116125815679188831315936972974927823494450565445052458582060751803047481507859866910330958741814530137263258840050462375070389001446172192767650198907601682675942788927141514266273040456770214365305202222522851900689198078367777533950624756139799643476833525167266470732943223733346443268684304571869233570855252231168676524312341781063342696977548832045284173600399095230855346501790403425529956863824845626832313587415735961838429543929932698211148458990104571212461227826994863165757528190131617053030999993283443324499931535021934509166788534437644957080350169903671347177472233762990813939938302022413307242752215141369580689486283800844239779003215833712628913446144295796410692237340595729485451614039082021375506598698623374605017270723397891804474075230615715595747835078530045339033491298990015291204331383571271513376767973201369320245043969135933611989081306531637406789512642474673262331779502195952403358273497409552927362592435768778623630098869915510011173337456854124255622760129953777460119037373384218586252942401007331055188573877681405431607552667734317935498189654476700381044589326869973129781611961284537885037348570666923557178915604379566719232068210763900784754695607673627034192235336162547542565049285785122826533778496358721932211519109276557083298060901095930643756291190705749132987418980874951438875728089686662048782204430986111406520616805459917632226962695165452273238336615141135121751240170435909612578828792835909998130558155644931155951602112145273162649061688451411943691995076415359185905892042546630933830941583366724858628050024004426954953461361490140693644522876306690010336065920918662642977227160078140626928495460248618285092551758040023743911843032571360548261581225168776384535653523631880356919298738162618316344788114142801230272080519853942145674550785859280462859054142047410016284018417828287881075365429060949916120152252452089657712811841793108374735806736284248128843212444082425334107533929667059497458449835632235969358512071375567538986270490103811290647215450215281760708676113456542650885705115708154591182080327415915757092675750945792923810619393302799340833908181592820765399030293862834493856726944818501670081101771873610193141737219289085203129735355314981640944995338973802234278137826791422522429416456494579211686947399277624466015394841741911808559924356096368122915273122559646260968681206525284156527972113391994632667303883228147410274373908987914523552888621891667400653912086705347539807078178969119294358815837220492712637158575544754436657399615305676705859048204365706322767965391958107968487659723303967242183542106689157473298271313591070977050479955268006564716838326076988415748906288643053700139195154329973082315225635340785971251298029687005500972815936745153677952465840499514298769612316061713565842799592806701043090740135064518057290330991974879605726618314888837801030515959033920810806063000310663937048588718939738547202854305791213300700090896407425451989625725152538632535666160878614760315058803519386110797467462891521527575496289711014361690382888267822889323431811932684753739015878530365643856398437675623358208011330949396070274608860686056248042961531831736981476362163914944672060795622998280239254672384270054577042708953770819247910284979659097319172539011259896599531627790814199322566059492392243064391920456234597628033733355923006137393843088263138835539647109703450467280853655454943672746575902446593486174207345917950358366685952825068352022360686428600617757004132874916213249061173853456854464984463897527952742160199897276602299310108395751563776740084410291064978784161381762060948365070783943089634202324852126122875942547009902769640141446067296595123779829121324220773772135883164254939371718356338660604493235504128434565817511913715757155711608067755688479092857740668427993674824727123459230340687920054540598507243549886848371565392312040949351994636340828257374250094155832064196968229361714093298416683682544616934413198686943109051931720783671661108725504125897284222675429718739407443179317462928816301174257618024817533787854957222785918931630983005249594033946946086668952379457677524514989185162812001205062547389348047401399524892051942111200233842393477550146516990225504745607239966864494474630757089806900687408616673333402347197487524133995556192979165595068775780635968672520953289873209759120666322030995382591958409027648493250442681525131587108805916395264861858187755995895677153004473321680608416026044992485971069661324243095910785117883126778679948216614801762058485352044029998823469958778997810536082191936961236722359960234987065513455499742545937019282947080370842676934113508247595026027422828590282524379710582650488321891480320403747682448632654317183433789190406480302999141938245091594199150241473678373562370293434365464832371058143421596536973385514311630195581341716348361599748738577408844246959025035738649635037141564123380805267311569306228904771813317629656847321338475274141159700269975161127743543183076441657541224394052098476373205322020639018785017055774046459932499632523880557575840231092292202899613545235048631016807616011165513614676142792211005983725881885338374204214179900422780791590106817087932275316595458181029908226570654654437759588762804176545983999391834045305009276237564602804342381180909962818988842316151442851085775648214434345979511027947912137840571522669079187828222902898682208793464293485474356961320621660477535210809762693026222777900824781471666877510614015841879898369851324126821070285871518569835805698660023261303480001131318488059776865488912656922551873206668557231987940019050314914866381240406140915500316953539999974201164358161198166322574649907166351114992490164585308274888953497368852643544290237478775944134934716685019992681767626142569390679552177789555882685142920760733206090159978706061758687778398276348279222174704257499627991130099848181561397105638036822528148158960301668045339829940374860306788669016840020101931995027921710870311473252118911172927065525620229608603290151248891075975748461876748483925303801831636522675528968774899802495254281941464968832529209407060286549943097310751542484598578956725385495057724492901394270932528809978326337995980773091880084130943081724572154145197766691939567951840993308868822005257184961483425344230550927302061675098935162379640843105811987936593663464284354231704766921511871508499995351571691571903165455407570538869099790865171840041490429290086347859049664553090542553099756995753904807435979946186328464580731985123938935369219300619168566212305923054801732569524035199559824148782898884959481157710715646287235717909072573391506251043718317151955003443054164948832815596460266470261653114710021888379254950765334846500051350364880767205559682447130915878288947273107658986568716984229509977577882981849926624669739876597187070253696519064867934893159539037135254077673286786087442944391147397953113210368356848435254540276469628423872440530161579780451752231600401058581721488542560914035249238330442990526424262853574664362376934023839360804752682953609867632189017596593555968144217053257734271574772966744391266891542037590749531636557976720673104940113783853457376261563082353568464322562469312548291356261017648085740926653472110638315749456295863826824542559351639964094884240086751527170707802104090861087616951344964086145682825877503233515976071865005539184820327048383480054767084992786277789188405098253266979305234437687593062875470227100132224331511631148901179273657581312519145184908443749228275388187546511938339522380937191889218995027380611758521839476892609676647451087416771219704464906541250234401284240392459621823301170622975793815147177966822372754454383627883830896987859395239217391968859903841944423682919428200646965722846896420490587333301208091194918486257321927483185175581954695771063580867323095743666183245726663722319971776798808318613453613514038768866465638857857117965790022571655152924229111899034357200429627818433557169857787896518515363849759011592155313378659487898293340543747173123640906443182144027701356693810860559139134474371259980316947026138513382892282830267343474837292487693954334714591720177070672013631434844078026653317006403316732312392795170778184976315740142460331313036913168535766328222783415588879042132047223460931304025638085665466261790777089619647209721515140009205197558965296605518369488860782266264121984427126938825632310900922846378325745363500938176881688620948947691817103144226782762482096696264585816835006127156621464465168770497415222482969318544531653263190409370018311843165315497741830756313105085638155638764260333975158544550122651344431275838560991147370735862177266184912245519750614707006382719605912861899360279960988195013665836734775418618474338365342932645074047575059538679391523957389984634433477979176044532342026373315409645629423970789060834849626810218903630289319534358354943171743262254604107690341834280992286715312446829248208132505647160319408026732492836468650813648349357363618178776365587427884895673441848508678694226676426438847220162975902978319313553324873894870173359267826058514621142903711877496886870446544208101318748637727791556405065149166976346682648336965446137553114943790368434005252803969332736175258868876840603315745664079412460733626707186364070500900466714053237526884043911841151481843214724856521178731245968872697514671413046285482779078038599454876910799806805058177781464058378106393001055017391012207801154558272093642379385416699639620391526790540835889375735182919104428888979279135896189751938289141284018622216036824620701236741362063644335132314559555262229577649197631706342114364712368693767519801040659719096401889743254651310029450197053312314067512289830362831656028042518571707621376105840633674864010139184619090978585816155411002921930719016111463135703560379634920764755035213634340620209051597405900234838403518154929558201250009355558323016361715603000895850220613237650463316626863689225393781575813139414856878247419508573643500828069761011327494067427456896511916558549331180311260712423689717216994924667519783596806905962919334149595950038805015256898454643260566947726079264887138652196920218855173647281755230452581274575231164072202174788160051974760891581765551939192258707507552216006431830144697826548822101694666054701623944418911847350478339785765025973039553770910026289931133496575235992715150437970781121624170950988529815246990797507531026941731077463492160546193660189768302975558807451189437363234592374276043076253697493799902758055467158345500784514198907131403276025624947610159161215320103849578322186239401040746409155893168572156264443215132575887718501310956890529938959000905552457408744233370652537227017368426784654070294225783773702036959641210720455217057409300699540262668529206826276443371252830071511561911415581820870759826078318072775576652491538697043836111663524271887119955256623003956987055829409212930241490946491095599883229337408601545060805846666981923084156754688294878033037586622933543188212387604949159993770881811881411852133238632401639212002333110871114345673391277384774100545099121609159539227376138355705190395400772663875028573977367720062771796597505130776522104273958532111486456073149070196552017566710782854895165839773189506282439741353425530412585263513850633904124497847703348733246743508046493916994939204922657410955544124185596140880302215997793069254397502661874098823747337120888189348250369980556939295370541867305228316276248029391180721562185021022357637324541923002211056273225825807940055041435636903850543771234105626219569629832204036974200797393263653452045030435415837610014210688502982102687094420066975891345445370774212125585978191384144182345853972150345951185262703424916271276976297394763427030578874818552584715529743605209153199750386013681239186787537504116951814641762582140000072901100361413385275414088769057139478931158988902977049998086998581416500306851837139468955055237773405577429175259492086890509179628403837005877522756124008208437303540394163078622959710857817177106327039864093155616005660419077398887028355451601736768666637627748758007183659208275834674437175333354363978164994087082170088628194823024903268269377259581950776156615087229714913761513087662818980250661307522040542508736015598562163288019322852117482820216682930269006254508934012213297827534927692317335562456918627893102063862415531527553717605124180246906077140219057580499146031706544892650891658172718339440010096228675631335612986463931311333035409292498763349557287243815237802935718584068631530191505447017666915071688926336009982373498618794066296369316629652940107458882106950064691245953904853803151788296376285076231488183062165941040145669995928530190743553544877854406310956859729653443254441864722529658334146935503270353035602785302646992420871850117696330812113647780456125384269272481885775101414323504308600760156514168341461291077611848961046768091260957444589512349433290290882670909092591231399971171142385832209764390713619726173739179744210299914293069950462931046294768428707563050563010254723846737369959700588095719477146851718656060089073205938044586550477532752702560431947142183933448245860350564739380550614345007800223238388972789397916073510764756402830186087418094363373293462381278534527859710409039763602716138304840918258190280373976953836813810531053222624873728603953530937657790823677667502721304520520183418373018896341369373080331299323748650339876021292150454488002785038204782772541523512546177976050134432755018609930026652734877488858966358043737226006943493969795821072720621231101555880359744521719462915532274004957376404142124801252839495046850385242229111928774527800829244982859693838481638191624349982873193427187139458298949533945928617485989080350299426426228128983218828456124942247933086893594601749738963713028681898028353164554606628757310756312333082538848062370602190674246592705239171017098189793031055685402177075407227567268926839203133255552752183117714753521790689986533036899201713258723243486329897366301695331888922655758600362523553152631774617742829632316778279143523168122421850072915345829164298076602906376202369655561968322431509138214886758796795286945195959993259271855417404216579013382434683676911503754747379951165939716161788106346558214967409147810794062744286921690314769767786491855673087607450637675132748667613601227341897980161140994971014225968462945306778038671944545888624980457291541960666096124501259077787493569962113682996844494063286696396128198714505543728457988070161070597941625360493714188731942182025698145519529667582977465547104730022684540405976789511700904670446217496783965868049095276965959550620226333314424009175630832368489061943169377971800019883807943011808196181121423129908703891942385450092249416935364360539061461132761442879006465527214488949218970473750893605360405462596415791567196949277286734531678211770008008372330715120347531206333930723652678446599066974482350629034349763767525252034079402432960931852091044805884744255692642193438104386853986926324202191449857047293757538831845780035875436143839333904395681385250867401021563263784015102364206786586936740702558116190484484359157576327556683384852199274123478275985921213728509537216121000693746194496017953541373996276205395469963076404810043644589285212485857983361456071139862569757565676181293205794724793922831382193478647442181963718402045586214619358150679289457658691555649904347589838896307679404459351946648216955017484972390068632690904566324636746602095474356363391282927936525020227508777023233106462601444658988934490169588048198608743367378842762247467389223899757760659228975092150767287088151044838379578897112792555132100370399553791905527901711532486140747321732899138704133883649630278511487020617315547929090848648062835619809851019081417620613075961927725159037968607926977340670316329919238751266424172293864065845034510461611025358136072658947741402111713036475569806635600905751564279848476186380612608496222949839147533882675630796953942467963173851918945097501355977332984561504530101625535166939516691368914261633542723880158766613996612978498834765707508738312941364728183907029665903010215307957847367564415078171564980252863695074748994250253077733784223301000480694238659947075906458467647923524459190623220068859423907481131210637455008413163350327774630235894367351551382730332109894377533218071335533364021569807108052463799360634941358591040711251545168658633604711259066034870132996172509384225711475789123823011228067786718115803728645714131618961403818335571449533904707907381908248461558874606078560663455138882691062663385962323432295441848381313780623697330820343890872002458780366338586415502032865806757814494321348437395118877764790088196915231867451697094627482016920631435428639514346539417071367874082321344512042343405560532510824164523149571816051171780407126878140102981191100719258457096031993613333163667232989852069314809726648939481300580473286591585343523657540258721361558857743854072926491949930116822520100822011739857576920092918110924770861221628834609542660797571681095409048334341708492349527920177888126766840503625386735920206075593208495918374598536796603298835006575813901157980363314075427560649013105473589837430473832238045794700990379439920769935255736332456210883793378048664911331736542444398941470644304694283579028407395452663927451338039929520932168182568745877201398520078184921126561148152963289982953133918122156154999972340581341712102494652297893465197010331251650827819934583219009357809711233525060955739557930374367951498986008887443046777708848541876063290312546088517935600653110791264072674281829049676064266593660711383932887818366164323943880277654467899399500469753842781981361990461361121932713803330067388349578535034573300534262881513423450172672563874424090226898702523490988372895155409701860087691050055116489348230554862694357937966354446302227904079419488607075345262987942123500863167328004202364720148633099860363515733236337060966252569067887818057629060146300075551511153709841691526155222614541986035417724901333373266786476308717467705106639018413837998483214734067746176933503933398183754077192407350684126385020494346439723007107950301025962259108673459050085966545509187029816076037297213290955491028894815120432817374576433275352772387794547624102757752747507980472847685477072700324970067093540893640745577582060772530994859138367076199187266907415435043267092758809226219084431975804383542580238427513145015452773827240414908420984320402591045376363173563976388958661357221408687059601198715212726756634988440530851117011508870435353929675471042696510288602924163463129230590533132411743696838481918129065935757525168919229139052342092970759664518536705991464362083740386319238368525084094214063692325952419362588426532168221684805722161652272220884672186698245340044683332928200272031988211898392732627953130527923274743268116947813851066578182755929093060909003606297276056395234188554603135952980811024049379282009737486500540612385396092359138676321371515497045124213035270033500799941804166930485195357277089432408149847215667448645741334469258761694424585814430678854318246785834347203415406365634646979028192976297100177198991177842998438646777318938925222351876187081689188776998298691049118632259014763678668846909036776849420950857637569041042250243490718120767245167645985052320819879650308260998814859802337956623916587292428444457946353454302867765200720978941942727124134660419046144610942693249835405183267035703178038145823476917603901090075501548261494233246892377126116455343506295808225375255918257438200055135968175888964445595923094888108684612978174702449700799034239428261363606393766384595462900789173230742964105350567953326243765401050695879054095684363802045103249108196407977764473271149996382693214824609906542845082505706773246456431131254979507717493639840193055998354640859864727456891326652999925292472636706082617911407145882411633815169301864108676241123232201742905058207785030405782874522110065035843027295120155880302071391549049256986002331963536169935368136238419992805577750348809808857537417904816989972599322109952883042515245450342512009114681766702446831565847496406717763038826882109621017478496717440405644615607437735988867973680629655710250351715904198698251928479661933531225617223154031043844246317591875924314782836687144473973728493810541924152282646726992838895212744243737718126302692404367249779508253683659105849230258740352842559265567031659154622876194118867358018981943963207822714537533141208888058533494190503270409108620857528518524243415742635585253592220506455169672389085014250846967147228332342681649767846236936897196753258602786919294833420836014125709152313002654753077243366415264908796404055310997326684072519186458189928132224130744377697708628208812182385591831855842828397046184876687424295841141552303473610853137823426764377084470838427697158980395654854386194734590087408759522901020156902187149348018687608970778879860354044383263605343424572667820157826297181892324084844671388690219790955042016191660642368322410296266281512748867222165111564234783241451418136762457693572531642132997686656112203815427523698919035125740256579721237218367244439584790588695468129279019520559425759883257161241603265318140963281625892251329203789540067414679001337266769840402000861504622832443583286865011329939476197240081505474106832851306428855442334487980865731238887510905605701708003406340187935795628369751982413849805006225887356813145551668752630539755695664462493800258376133542167908973411258831287415065408253996563042321821958458243951958450855602634824898188707435823580010753332534139855527352870383641928778663942429776440678453736545056373875752560524430689987604440858307417975141851574641639170911860720264443970051792291492813910193362490594790087531769755341374540949690367543078143483047755358880435422011632994815507585187789316549277129945282351102205087817067809829114902321201335704893794008743892185614569477256470973961343528023481936778629402456066907928002076512840089079177810639701224060287396835368314890770278762998173739743802372390096922741634909966556343785462051561088771884931791975350749296092398043358335067301177360374255169159164375789382373160437844939258048875640871577017459429114397870886121916103663867250459413660402031278973868986273249225771797932063175930013317060067905493576921922951230451298099940097503525596635203622002467709141774076376902090559842256419301845889004739927489777969979168488216265947080663149397669295778646788887942088195612692770550538721477048433113880271341272833053792109822952465776561583183653460124437161635544279441624841538002372946587252296799299509785443079973110495094509572796440818973599954333029264933635755876297637885468860437436410097557698135238023823129115458409149734298855305195539666868737299145482525669283960976799408456749941818039045041578592667044263457810086664004850911487767695226802497803847694294793392517490310560141253638712476266959616472287875696556624535460399801513738285068142143858655265096592975840864751577812861445092440594407133482048919020947887530751630609012269538476096324944447075176951382724739129526651507389521076874887708678101236563780490397995345925420177118077694110752572604984096952604504466944855319523154016810675015400063840767406620818362622769820582296355270035406875768728536174251505686244227101293075962992735804936871524594027129798707545934047065468087148836182883923418125272575545548357093237149192970150632853781157017006024090019286156889679350836287982841234838697899989038252439786605662692344990808148658190283436256555562028940967815551239461637448212668237423362965590381124776060376211284753303235353231040254098924512702044031463169846974707796497026693758594098609054132929246070934238872807933998004141490042075394375483511045163369944552550275414516596200235871594197757984929214555930837917506356989434174097558068717948814749229491480265747924872373171341647576166021190299424840557761201591060639250675124382552681077940597292306896592214904246630591526557371851422187423462451424769870786801298442762002359718985206152831664584194553706561180151761315373556605515740375702948140787273949163338082973497647125486742283788716484341644239524234052413358710934953525366111329922894653140955635846386327663170736359379561366956629709375322867749865556837122628574791278484213335367487138823054834370424299974653205798548348654355901733675877893922826533672143228301030473801866757788872822126409270055090355628618415027376924244837040480158189349873256928710411099463275444768154306683548094917435041467103750327563195287221015514493132821463122246763628578569245236201849225594876927879673120202183759375801233120654491748140861957976645561044516945446542195298873851095944179828354625060983201206600529702269073797589561862669589495518827308131732896531167963749254154898295534305169790106543599330554168525386998651957219753422612328027162927874429793562878098993906940869850233535794908876453633542290076352789770289242836173557856132046394169528365968231635699730664625950973584197257008854008340854190416044769439854342309581743460797412836375286053004063699208778754965541158028570282680566424592555524779244452971489819418124118623569883361947948580908518513468888651672927582987253465699316413872479278426039832464589494204309477537193886523289201693958706108128294186711962384112351084486291756231281175035422340457087402549228323096387792955918376447149018291854227134650703755729870333475353338478548051354854241024769977416596006628761328807823043767150337862309434300244186277024069883005547352995821445952162518256276662057718036801645260921586672305490152231187498845554612106274129683453564077638702704640051088417542502466231903770606397118996291025681543727097976466738500305680276204190635387599733469819229842832149332180120150389535163750114244689919288399479450792309486984565057184356239355780414427363450505921764020985974446360298603572202209032726761860925763583409972093904199470686554301574082999029862162370390157995303914694004821334864462526900373271920662196229833181570867185862237386161890309775859026324187708455579410158222409732514901655752334936127491771291809675974431384463594095864876346106472055433261811469387028611427898646203451902549287864990346751821912476737959119599763084247174248388485000507153352830211370154997203978398312055363285261215784830192883875692211961508859260403265340727936318731722751839693321251437464183435717049322740282819481499278722449273568382925933098025317991510671308561834508927378981519724944248477430467849337261296385221206122642292147601823315858212810359249559026347446152768628617891424206576959405847651892300518627142591461178713741831168603131182139863169904179817987101860392210924771676687667688686002753660320234153959757435109251596981236118412488950644311273492833052953912077135716672780170585464963395087129466496249086969881116384194913337280964383783482111140806738262788333306092692637444276771289437448801564293206165849761509715130733969639208658191377251180350879883177583775926648095342821008358227963271431258590919422507800700207833521449524642671522404309009386774311464251749005250168598010853534991166962140825055803306484433104787771349377933171838023803525393016980527382259429652186617674778853386275324128490953834586120056468308769171599041087726895466440490670366668692656195941050189546192246724925274690575320521639358293146869152303819376455584797540159066176073369241883735932921902671077393221186626224280711780847338432328026564083845283607853688729667422944726922861475244824984318854273638118555983958093368694507673994745918710087982613014753011555191099491187198645587667496000970602406176820227214175570041168475129331726987731863154836975098171106006579550806938872926357327599157608773199558183917496174313102504819330018317655830165657402238140803185616984031426663399653396014244893391263542082494963066696954499667345996758964488710818551267184990281752855585438640097289847026731936076996693017119577585052194579849544133966126966744316004493511716049824278999614814692435023439084703799347406034686331501932132301317668762224658184304534597305890548037475251380958397051010460293137106772446163747418046065496899403076928122966606790644117653122854151746869230344437910948105558925955575759376224227303036889529821718793911870701233079515108897560582747597984968266550406115455435216315239253494144215146991439201366806785204605571394474551234326039073153727356019128255598030692333829304947572598337472258276724812782269685539245875747706515347803774063737697807306847653442247813837291646201562006229464776104670161457453853315193139838697877068801422150190739829293338968411665452249184305418983546244152454293521497792407624070220458218416070264382785589598581746820423771874279437959618020822885273805948351785070566945220572905364170473702026443896242364510927075528709485202066983280117694147875628581988339913595302358838898330813176541980552686986541988525445571986134305916798804254588715233123971011458733208444316124722027376275465970302962868198033982833281257864322247324251850822127046544525598825596973496764025017104521809275546643082188035854871221243887523710319797423343729227526287798131701957883359512373670187211239895350257688131404053506604023559744753209353757914528259222598708314292948380105593578886100616349849583247939559991717921760883020977905112476341849722486122762141195511156586947059217949572496394863177086816363397440241385557099508036972132028211300161366210671513061619266669365490635679098016480689951197637648471857785216870039236848698670559271104869312899050442344343217726965248948631875346958232689069525283274780904318981664529276424312931906953842882465715266180518920927282305615542052057121339372076535854212662864970878655716975337811663451928752268406289301191373958019741710587066080178714703237422336599747759759670727418813740531682054047629163691485932927530899001070810336499274303455179166271916002752313995997752149873477392540553806590638775046606195988420189543840255400091858340665537313117676788075206288940836392032439814682031176106121275123073864496005918343583210376126645501056432439821394935299667847983971647652682444221684542931341328286925703786207169038030069885846995896807640263295930409056618776606494611229659716672095235629526160137336391985138987714955876282816853135910039222235443960880849480891702829286842013524012853617685212024952030551118967518194162660660094078291412899571541604786781326847926439180719907788041536962539917924036512675501472325134267838118981686258989305757515817579406933598802059798784210289607283736477853745171852141552803170147744788224076202020052941301611194974223186522101357285645734147033288090856372821853476721696555163137968434242074692271892267889565520430363421755696735723912125148135521989884684035431862084804691259303229614026794040093456812140343124755828364632099177692306259327865310420825688785654724121839963583548534162053416677981467776672692205367872486418599128003312722489983657652732862264909911811850124762534728441469603775707821032923454162741515840948532757120848679198230772160438136972004328501202772123852990125459697886572360307774896518302267194889168064728443609679109592585850947275632843097426115709926500665734777078246059857080005853452739979095093918853248237430328490735302541245804560752763261740956349193311385041785147716457556342625006192220792734457414081971168226938041703397844782665605735188532294674576423328440699087346869683957034034780069675506267828882951119835237505648602880113976465113530595603821555952447428269401484865531356678005086798499539045177485578169560373054182579538646847938366015438616169923729122870565816133348315651530343027835986037286001811192135233671373571547917965812365666683526188450379338442030223058423279250267447402138782403442985419045237778257632038587473304043950129404447821717111202984528674831986292553683992068703608732283196056840845785992474573557848821527664080464764649309552125038278519355235959695613981488458615097786859033891814467932357561287981099131685880815209671997261163677505467695336526311217896541572568650637868781157343271157791502018772703354153203207987083058129571982712661177244153688867970852222403724526724665150469738653015445375503930517819873606250214222524935605779535550246858551421400367998395031824411085078360296161706473390283918644818355988333567591456054739582264221682150871968354426585926768701272387697558855159764683890897441283951672992290694304259780269325043723806752487606272997931927823682295830544711653535931729607662293555682012681996603734091869983879932943229364725700491865887072162697868840071421849711752088382914603850457002613206678527123220379259569612620658590234270469826168551468566204042054699679235685290554613232989324546280590673358303340266758080483220277695697345051135907305407454312166093123375781033316694875573319341982675377050316335857235177439898386638657944038287753511962247770515896067161400545161210513879030802803511085627921148234028553066063983491921544966767641532159269072713921015207389989740539080232773351738255832585419728035172493339094343378013611822125570003252867108690570214299372242339124999118581516325240365810699340566989151392629111729672775879621824893430637790695456474263733094817513536199539046774649601382212587893396486927539667825122098613812283504718011255762138129949897284255591946411234511074119855735826987869564121396856577688783286918703316300009703856670112683152335934013303241899311790263880384265611347493764231385755721105903400718163469267074587318998945081007088926596523524535845517928860562930511768280735101932311562767728993058693566350529742049710802101585025904694773173513202237309210051473755566525805983731604044666030915698222426033145209179716676256180020417989377899767317878446642038168174985555028132443340752489983336473117483682350574554294400901400520737498410572086021456699850548087950640358095966305834523381255841388077492304809777629031266167544048553808881096134485648802726745415604197943622670676519098500211145354020741063956164360172405408219935946218541236373199185124215596368922900319293176126672947686439748420859735898853744178835953325742256324291825213110770438781931927797544176372877488423108709680376478617881721719363643355734179003357807013565627399822378103171422740540164465651308724170870373631388954917691638633222053288681586769332017739485288101791116315039932670321573422963295610925831928639435974235160919815594252381529862817657332264842654437913034357764666034940673217638492219023255521439901206421671301026359672036823315243708833955938309818059326465867650343502356961931273119561731115741024011188084553189477690028753282864392940075358123166523608319236117370383408756521098892591143463404172279438330985935904423139007173523618417209433315688955262470534662825215649710862100130168647299216142879505245736963241475885777225202969112612560029642393302901836460369353571801067960189546241067996824188418180183233437494001452374626307079935269594375260722933917921986627343097619756148982434333180917878904304631421213083334350795530419976122614509434486340565172131526966057633084053154766240807908878025781400111961422358507848132677256752678607115627116966943478886855466272128058811389118093330008672561383514477650200999693443143041355614353716509195959181920998042614107517856644379187387847755881319174918070856136102402720187438047568571225172185669827461930280781480729189889928321189185836475821881129284094944541344527618540370579446939980486900710710762766547500178076787313158284075150604550747779760962369700401225371685799292449093301938357952838996284691508190182633912401080130520140408445939112165827699411687535242542973617039450965147599836926861796548942348328957126301733828576397772002246584559597439213194365708513587532126537553571549973412149325553387902515398651073603240437895609942874710432375405903269168474966898055765270249297944323598401376079123066309242192304804922045582190975356547897188222536835869779511572803167675500877932114498746239047326978810108323426607879442586038095444877707712945508348662265846733233219076163885475231151664392789646221415331305920380948351328691316833716562333528319213704351152101302248455587057321017166256619913554663688710256083163994064502353381841805411768784355785100221078624148533180075976011143077985964702984633401594424501190141897532684364288288241170029742099986932751107988888235818372334625109235087296079429883962036391587997839605689692013559250576967189934858432126205439072652084964968677265001716195659713888580249377385333192673155711146446352000097950498323731613183690623260117227594324974038265285605082415118560316176570808349576117898296222798257450525743260737967798263077210701735436602091748306735134859118188150338638349310556783800884955078459970983965990436508353616136949396008134539064398522732728058094679524094387933108531623426768315649904341098766169590962733791822449652802003099478599728755200666414162198746627718019131053635432178784517220249593979362366704787977092659237868403780717286970706601445349704350810415001692263462597282390128862074543416667177565789047773281100543859073387077512147585763205724485835402882176941573400746127218362766029653163610109059463140564644206933141815906852122232955672495003285796014808816634498642324088010334360511569400632054122597875422101261922005057512948613711954376727984235442874449503948989642495487600838394697480547102127955674961973272077659394543278479247982428182265797140709301211778425842961169767123063877900662818836587421761292015706711227100388832344949424015836431984366683692982339594522529773520470136750287493149172589269087210338500122511646212231387108189940943483614802419345670415477054132300753814900843789654010189909892880580466285959932758195532068268743049812448069937460679414163747312998460973005136984543318202822003772538485028218654967396179822870620301154257809431833151716681749677558883333187073704381778567259786364362556198719196167035053464855418156317253828541435251461131121979471820480312627861027480093189354805920309801710163397263812095182595763662254522579085299307207214612594341166367821787417168582452410957150466309245108934804918863827039889465594470038707743638272847268712603012514970047288818449754430986735113367251014952820214419461827442159120834844329266724638297716198981914269431253920457248972572609324313513938142227119356627043541309851997002997119653326003112516328835824714833096761528407119727985067004082922118274576923110092770016623639998099136395158433568471667107066987404706039269271918767248915349245776057735164667338258536253810439081799516073667356485946834974767928253629009479288683345464726711680416024055292372862923217181812484938258617095068416456155364729607286221060560480702184618106955666001839371766340419208675809229510185043514419444664353334404808656197627586949633121510644727878682575463515966586246124630286413977509984123888820855371885148195684222727153103417589420404344282492039727483162057922429591132480015051747486241563972372049124442142576260007277058031367376046938177918791879613628455912799070797654219242571280613301205330854272544125721314593914812612533012363842237538847969742829545451418186818993055013182404654321737186957582893521264123904675627840152890288603424806023052200622605947866271564407033665056415443873752581211641964410427967804773598033307369489961272216807804433303739310932046291455756468594699838949055458958755431290470931007223793501658812672587897887610896712232634910361223619075134916633525560165224313826696865795601519011264430782129528784164521128702662768258523727780824191323875213227980134980124925427566680438380686169095931959040849497310188437305210117896164148419954805282161833844313753123329867688270663724239510051731012074836434381201153031010566719654621097461273161825482721286662267851989158928918214916205289029341569328222706395686350081047598779394793120704646902765003637343817717172222605222018804045709287851271831667224540061309272760735485142575318887479790587882642469021586324537701573129434252861193907597644855058637705667323479953225161324742461417418106593178527658918797661318999050698484045181038685547466648428898553472843474815896075270896274004168395674858481699887465366013747800644099497692779498652555508916394870354645982977542532775554057262393344858937786794122950856280237184124781965788436365853997276545955688579698262570581545096063388920439907146736726535166212989932280859240978919771126880260401704986382866271567481266895996216008748889555256892570604586941751958969363438611516722291959722196041939111154107729996484232581546022370783767042703253789922550380572801444818409947970604693013799686334164260362671898073661255744527783674567899303416403804450881136488400196975225196993184329337459673722886524220266576322839755247157130094590628015371612674469889044905307109005181847849617486836446354908350014288277486634007011467145449299373855110298280823374889003696026690137772447650656469516511375692143058688261207525303602679524773712125562055298194862470753135957075599812442152743516024095905146959431933715350597133390249762629923243401480871790985399593125890788130766927073114120848137920096360388731534026835977686583697685662211620191926284482436550626897841183515247404698471101391591781298707786005479462911312123903883023047672516224069572523485768855515904876429105554787065827711157098087906465997973362651596875779799914715593511144311045977976316237300262406434838571968968015119897645684627691446745292380757420818810262622498310170960656863020017330170980718896248205704011829588533750433129051810302816968348688663432345216327830487286325743762734271557132098891274035917976750636925236801495077134657908035667841145744075245615059494960053606923290198735475945690564635981830021065477024162354435589732826460438544222459852802010899080507820523274254570161273571988294230717735832705432494765280200451313548609255925772012749556001927606381674402233162450712414133626303258930191706883802572944709752767298038260814807208075703031903945518506404036813885816738928125238530011481444022968570963407558830766424089876529802231044781485043932700475317413045864946417607386224776828977194765610306576896566311835347663350570071580878898805097170770650320265919363334156042441893903508853167781453749494428874083972383785601176469585345333599944897515991476665950101524862016715506957451517037549717848831020693417155439122940802720652667612020741863448872847291073249698310677215506067773239162241596708041903365206594705478454468986627421829766049477102559798585845410604887701559913948100971886205805381744045135026114601814749857891271344784703587073606341267549346056789257884998886052279291058157491176741677796121075354524872204005151921688278293506560895206674631426240025520926277499727600950983387564099267598586530372782111544371956145781457304105063353338054785912198034754080398576550439868620185971405901535841332035376855746377015247667929172676084618774432187022820161591995761154693971426555688398604691174869055646224085980142629342036326338034862516714664927255175574239574858009170485650635612689153559295327711256519945155267053752185029579360115520592945320792547563799856386524987410913425965844823156872710596341515028059964773671104970086029953378059819297789838018595177782384607063598795094784762823418784657552201325656294441555984841268371422763154643116866098535188863418639625730917377599720405110909354820669121124303889137817172603646204160872396246119203537018439349928665382631786402898529566232379483606720789971166120072821846648219312874107551841266123587067732306420157476508250006847034423374357717872180040268266370266616830171734844919819719440771605391971137602347118643294364113952692368816560734991687693955272350410160580873070037925059132237539532786775823151629678081476101201440443267992976650924209798496520105144056553581761350220223261187867950743470240193085509964460646058047772511843479996531176280837970463677415621821509306057495179797680796488716825816015477784338841268550369787290506222905082884751619127222506843657000675296447214319907447987722036516036244783266070924988179295297200063211729618574557641511765824517578304153150928984681581378952342745887931697271384498919421823510964273304785934457831519213384550780680777777551393198863640069052999542005174506279131910332707897254008854140799349263377619316763373074420693046208784480323892262447358248820812886903386897603892222454362118833430183858767317315584207147942768389156555483186522847006306040048583509397871077174796836561301240178443556164714819024941184876479709843198333482416901094559454740732719588927937819041878162075299362710142875725880608837131893562748324934423907762705607846526125446870775533038520016055794635062854689616741395304544422888962168262944475498028729750164994870255019895988310041318852340621298305712037500665742507848595934450321500844917989218123119819190564007789020173026765794605500822393305192624199125699707595812406700480484668151410379371983724521635099629883607983423794492883272915556721613738926368004522480729506384374985431739742947835968142679976048677300898901201475574608374826626659842514676069989953182916410410964985333269659263210908543027516647800918766880101749935461223700017117753143055873723208732126838816949709301635232386127367272126230693057932774578735692529786543707434290466623727731536436373752955238977890899521808056056745563212438962326680348779827531205578559178038231682436284496875447362947915687839081855844673235257293496813292659188756039232539542169930900073969460663784537958039822619874392358851677674307426173328250185081626629484269180072247366719763825942696757323135503513642251767548486711694601162501989438718956035698771007132428188322361347484095440422624398388322971316360453249424918574279551202832052099570200889682694434406053009497950673896896300478083061844261793643445719545832577257340142948311331512698398182268180315947036172671410994546312957398486880756782967779738159554674379713522679080865596841265647536893623799829182179494973680990911919885892366355873231132110907388827668792071078226882409561973127925007904786855684667295374520876819610426811536788010788979970582425880081598874584222656368003623785025557720810640802059150671031484209647298614629241073465379112293305708833912971573582645081346097494798557903165160052484230357698256596505638926577174487850756622544086512195904618778725678634970905455497338547180686439394987027027019546427927239474226955036965761895870853495520665494456903153988161733958859154270625774000848936371449314466123702857720514224124657858809881728527802971640402190595966398944039605539742120010299018339972037408873137991853888917703610661554269621455251484787656286683179229911904842687919227361312168748910153280098937910462521923755022725326348136104327615741243890603441072344214339501829169421150538278635918826328601533084977027670651923622150582914241266198575899895391821454114014871267214631342167155836297835506199150105721933817585771265200884740856900885854602587310291093921726250036248275903261515773787145225566637555154405973343402297788836999179138372902729652554964198704906742424125168398893870562786028099474584363606924972167881679037943922866389613770688084517664656680741766823219708940257105179829597854253821684471517370897242164077555730464167779178808222605172522206201161091445116575454927712755291747100340539244044955183409218757782391368667854320256903426700528560994561744816786757050834624393546685586083785759393175162243656273494296529332066242847028261561976071815806640384701542743869564401221631610900344394826156539271501464819965928609886557346140302498018888153849719622943366659992678139724799764447483512129415818359648159391355057033368260002208234380650607471748336045841747435981447827792378308097021174880220643552651850115458713560175692484062152629586997240673148393910025209031476798049921417638198981508437725057144457659835490894138325389605967413422636752672783279422799035568817309122482641312925150278056543021840007392233133422706011030985552048301778848310914065003263617877576400307616528851707566682301003865021506259809989021797025001612203730871209999021174982608443871178098110863198108013620533536458034138350610923207635046338202248255939122929239372937500772630546685457991126183325602793121437517159601572832001519350815686680254323454737386561989461416201183071166523253998829219006762305757965029150055138845863070956306698558454113539618805705289237957601910635251106078396033616008602300910250500185385601940568615900293423745666588480689532450616169461348321840826209512402532451577727890631607938351586829791718145821159950261238491977579219650187763250948240095094435316415885871931503939939541061093816436636459231816567877632151758389999563493518691349592709107951327154442975791589234672796438535322248034118891164235321067669824035697387413288079279691639655056128308912582191490416392357746173616202418501594255570869018348920212271884067062706782324385364814169623255202107438018782956411431299309295931294197959963360733446857357278083928930154141138313779159675464037406307497589635168882524826891427041616026447184448632583820850842753089037176140567493610915759337084868577712879770692814302906025177196745502015000126748282170575695902294298427691371067504868366721398226459548698369835439394683752977591275542283287537449868634070342760981491781757060262067861067118596863543416757704871012678887318814980010248807675257426276675316381178989739274404614593168686147033753053299800705267757733951029435140860763792850042167347362322606952609387934969787506314140745254901932432517165455624453383909365273651058280495423724331833030668234446394368536199549755482285017038734969473346029660775810111491676250133893107558402718728598386179481971640230464763932866040859466074808340123389741805826841604843138750135820515259418985033899972610405278072252499385604315506700965972440710338624922984069415470226400315451971154510476928768686440636915496127679411970904305219185189729408908669964267081958550952099693260811576949167420768642731252917413479127441182361181045525517246622077223998562633923028777461996754928065330322878641905375846150725211606518546578277979497661414960974051068996425594847399503585630037948967612634067234880780717876244015917250992472210957393499490956752893031816478910947693061213062206879891368476233709892778179795265179428178938902241886713761401202575284233142155948628747596805185004147794753979700705755837841375921622693118219073635799194407243586771864447372307997792969923182314906459906018440386996351871936603431533895762079100928355229544113634776382827825010131435139719460010768730273044461078336999697380430717068358119355171751007153776792897275292917208813963486696595436624307827582549743849159523268336296547783391444867965983814692008272161461666451203028531897858648445070868989730621119871264005444535280851462607591976785307166871004358063414244860593985018470596497536866831346408019852208418431937230324286181656376123077314681012507060637266709795220967370925652912655710912069647964607150224840491034202747915225564667943520848872718997525237608765103623902731263917252015696475323045631499315077776643937473787115858375337835109773167877848474281986453005108520361334001085411017387864091311638654901908495314938433401829883981146986208070561228840759521855471667015889579354157796584797585211444157753028202137541053368115177777505728860658085826415883149384668159090142362558377086075596601242382208978348778863240830458602988789193893603602453987811669056764254839947767404262144688909862238566311761172621801930482125256330890890670524845325259628777151583363625916976006074081435032022586003465825090741551917372069473934760492278319768724767873951363648232972133619980687131581118182522097993532062741346086447775469684047804349273166728157512706754016970254248391059347526304168147285418680467461348565230124364570125465812754710767672568507167979686928858269559616697070666114287862357442544450561379622887654445564960864481172837342797992830024278395174833055411419727398323915185138584614486548775239466851741614342981616541616090095668737942635758373922692631590526390780834086140150915436882949604741991163921975398619126115818791971470781908549862727837179938564051459297812261653774880329210214517371282738009828347768127758529664509935412381567831954680470235840422226493623374402274811881185202165315330783161181568749669965292709809966295405790355026350194230185763702805059696214934129529463373962135412281254123069282766293659014759122085703043891796317604174275522017592579120632668628134151808791246976244778998795115245271519468988154983238599285743403200688736181878747717874439357276556111381871375264530430240393578429330433142046690140397469994475128563733805644765061331767997836180445432446263677841503253896800502146155046176647328659494868797900864410909252537430878683506084420976862890983266716711267634658812639568523219846670627333980538142899754798603869289043289745227974696906939783854795996171814652473620514146407532317482536789075673391309066929696664162891119720425874259764684732071162027490236296087993905736753349243694011327914202273344166449405796546936211603020816303941439499600429546120462835763678533568278031032175123913130287993116000721444380378451217329911124534200677844850986446720905503774123761518404030191237914830550551767114643145728004702358358219425826413859493342457142680632145159792200074966250515280647089318896441305026806212492870527766460921851080768752363859777314615788179657385722417742880497548774079337832901032044461397811218460909638525977902608203212738358192910560529642138410167404896426548794412437329299670772065156862449641518246028389488773875001545997066588263851936344936791870831475839951117269892342222006798243432168755120780248689063448209706730980169844917479971154323057307773977560825869685718968765337609007159925218206095459764966294282207750643342930492107308780974554167610008714600809553216960034037851130085585260935174029392739171737325449293492119057960632242177255818440325278009656918731159744745688658453041306509621918938353472871776501388106160490996144294634135680610271675875727148799769271068600175902381984272723167557028181903095305408214490705366176968968576496480250134950894540641444696199980727005607507000370278599786136288170002470437122337608651937658663662942273363760116408384220693963779723680928375935728308755721241288101776367827236881690685686589628200496443407882585411403971831191563546404126116396388080178492168741830716087207147263472522275718360168019823460113509974808510117167717206820150270506051421252605747383587701441597656080279826503369569968607661219429513242908111863575919574929084267072805898450915304976548612566833245619779263891005681050206498209335559583846687376404883052199135503103891347024576929533301086899423603927523594715907588304951210040320132736763348645484629786452098056716647375301415481954964456813489734217228121550727347631909841804131876150193924904490605992184578053443806404810251365818697212512812559237743957636032619738458933003003640001047052193778488339134104075395506808465427934658736656912185884993164021202695791828061731241171806805923353693468500542475790805391202320760196952315573105934639864416834669021917281405351788417045063305793538745184586832692244978979944797905429118244419198399970684865285280708987407569882478560203004047393954268876228153110145680437799061961820262534011422345474895582595670690008361001279018472806362038655157117005954889217526886936146743528362034219678547261302231245826420079851812030331591607019398621645854290242501316660691140006141637326652621657772689505639713799473646037748733462067167042638132710459364387617032409271014654840200548777457341686954784514746752937825448973098833732154979510709953290791828299270030324687604633750963582731382158387587972075082687730769289417441841933438890875338512457182237111421848412829952453854885696718639402580573663902369704420786688072826643355992745816541280058360225505979706203018429674766799499367876886235171817743520831036586381201948560698214359547656475556276153194503855066178264736073653342409766058293911720993423365368992131560467961620470850469151735142210552503888976542283308561032129734555233030047226956388545384340605312806130936138785324290334188921500907283153683062530297728490154905694117987824890024804415031000409702210185801651651359958459058260660773808466314565221188092716284087018802373714458873251326207512192808700993173912611029918060962091224983702870786213426475007286091697036582449450795636882526981809295387215795493783963241572608520288460247811585104028791441420727259337168273076873666629815189460953766472418351546295227990605269760954443523765927927318619121761590428651436528449653461155938576826721883938956065497062026135667203097276497521582986200945367554147650833021375024931962015853549657656817271717679945019088971510259966502676049882690832084690436275480932130231551240529548474816942202084903744971325249407149271438806274678478906241556179233237345725734932540698419719336738355533939406423389745041143025785920962464653020280693690429195827490259927614219134795746243521554364279321216636963642981683891777109187024033903323330330252423792658729422211749576062584462963401914151706787478165982195809114170977063963904997073155647238411436313505889390763336433290125947673499185327123957677089764150096708847184524709410963166025710380129600264515396697732823567184988182695242873323311960374654929102498225718163961320532590666564697823042698654930773645403169660022335215512619923718078655184482494261755585447057720960939199882929257060823453422605405501489759340279576441272610777878029404058516250328668959256514819289261570843861004237568419043853390626895655499064865490322828392870525326265521665223982107524618550978326475764474790920179638163231835947194310345842476477341863943756677723265242300446607871877194879758551098972111490206219766478162503302394632101702476236207476092652502538167089272675628943723429447420251076456282723759079704217202923051813435312091587310234374711875107346189440666536675327293054630617231828367943125282859757495644587074561864800705961255910539577752382146974893311696314014402044325446797494130690617273158066974573779881926094430045356893269082087710881097409541124026582760090337123317914587616101690425400225140719312144789282237901018109675566274368757534537112515682633383131546208084094755521898176735055612129993985756165996335452259909627545065597700640130397095372820753865466520671372558695079071108847614428456172904821719211610381734720596944928579363143748518848772185499192582865654185363796016842292985035281286854930426354362043527418998032657259751499419031170384911035913267161747809955921164616079195355983911940408130578301642278316938791217259460811728662930157248386436544655538062187154313966056817722008213910522743738311147330916188398719948416154893167749268908741847907091240760592207249360818177829574100436539071501932200813674481179315260741131719608507767230792448378069996400759572471026558228465376857550993400151376927127707515673837316967424766474449844957731975667311980383850706780036156349029990260005423319965738974647290715239654591176352199922028499760048488481208009153254010123857835293450985884589727444923430704030202810695733174055699661471084977595363352271183099819690659306617398564975959140208000236393466269986391455173927628604574759501324809502393546319672580804447935388681792745408597732993056809472107059904973548707199499020299648257071046442265702480788725656759447851289492044197483195033687278154127914987437376133490613715564360650162510640381270860319181708036600340866508321564583957789603539969383541099748722919569564422638895203485965612204473771733841005470132777811846979079848463000517433727949367217163328334372818851438061965371982240948733978566883614239388761310294471024099205081720290567191505353495439862736429959755019490631032255495929246356184078671100159479298094686225482986480040264712042783779241976069666761373632687345911629796020130302328960926514363837044909314580345286693021241568429357746089656766865615428131611302116700244404910588068755649245722522802247352582992321744728766780996167773202153447500174985070631536888377136746212262739396560447820477489816415653880754372616008468258604397727164842967481865230879203705194449241549045105363468104174406806573061775793759361669811452971058875335056037163782728580121514309856913972298937079159776017058765219579929957064580814834315092133581688044887346265676622409236977665122742386020272402818835436356834067169287984562049006066445200191909911658022927901981469959265318825193239473598414896222874539878856731495679591264887995785991839179482696339900739950806934859179703859406947874657316175239613928085644599494541766321915925350648627096861926707474040902673425135306773444410103781630870895428421710929175606894801764353543933956467366976269083705050125463098839389387909376760166299444123426718976962706538376150521008839940800611830649105541951007057093114491051172420299907379028542951359808734420089962688512584020040235688484147181653732365023098371590984367564434934480528397795041172896534635604555084398433875459073394887313363193895146553719495114706737839068939640097655670127403589673340635281049991466441618092637819157928277027928090859113189161531564405944586003416277842972538691414323983678061452946756816349282678186228886901209225072481050876318355385546018635047690841712659218851674379672942942486725917049961482086851614277590080923999906662316917819722697203314692529250858465288983775875084167010034574695642034561015043614152310034905431559534110182669529423208482556543341748057438953744045405106770193950874718315063896101215714457862342284981062986291493323777798254787793302228120984806591374088120590760119319058288268203765862222489032582310755750681401278780185895525982698346358459598155302510236447253605771306593288084501432143552281688671981986247411681810834164853227928734345703991141016032956914463953450425760246888838325781499364906145964294084501502617254904880453637301002892461575669701643631279533676932421846093359498128976145914640319445933582919567035577155494754607805913420733752622561273889675129223469624325108027449716935662942486848208322389184847207868346056766136549129551343288364640601304167325498065840602457057061512251582920683748143284706701362207115827588500793512715774006732213167757439948856792058243217417746727970305124716249319895075316255239099012305124687106801561794734402735889540003571899214007472679505633480312206256915622494381902126453760823183844729253000555534585044292840041657400977580022983418920380972757644799802669482480497896796240720331124890422064539750322883534243851568372673753451744781482090493112653007633708329434711463912212244880121572356062743951315081918406459329834210575324356987969846471876436888705266332585046978806535818398616580420609860035378523814267112659457384456789100932416959060203549407604835012913790870415402224668650662369369022734084680608234045649245512024302941878624118677981472425007184160312213034037249229542238778475180670568321253223819380461912209637050062161698236588996302643890017294235914899986610872585434860564263403235868081695966284996428685890434321338438331233066152245504084702437133242731659214522869268270543188727117315859553990598997061225700911578249833428260168694847059990731704488757204193418673710857061083474980132185602104356382878519365686098403438397326016693303977764588532258751203546665087700530125450605376185772710748962130527466311307791331323544764430351341239577133310183490320853991932175154391426677408435183979570045566417051782650659798828350308986974583167722690037317678106855610645256862299982598986570991320245694974197943370162277663375796418466768753180024197877307007106545260242259768412510425854258303461342989295895336699415659552198182497812918183126971211127492537030099425528823412737195157565867491218648841807763529012299203040971461604181919833392187447932244755620735963479020568498835609855562895628313267701449500661174783732198889911923977795584611598196222902967110522996627816251782523127791462422412928233860096645976851584365999872658992294372473844185099271290377189229244978426231505573132512742212402599630763639724606132386057905886186461676009180303846860329934213586143198065204150974517839596432124564400114169995016441190256118392403968846650220587078516980037778391456328173303598661464256388725206793800959463815553102651817638373344499746462868856953992242487838068512067780485789401566950513359810498026319532829279153124639136241565962177739679563616285976816026597794812030938885141392809227582857362106185156143753306019084499633480408911867158994270487788707144295247117817430653963655148963969523459295448340507849471726270155845908477789160005753274759322818732632323903828225347854321305809911653981620649124677526802591925018020175821974631440483410870501441673693756109517324304239872705313914545921409372066535536083353346744273929305020431859810545679907941332440729961454295235756586098785681667503413325576156321633938747084479418667527576725151623240165535046974701276467744695087284218749202509207082261277265152095067599900002712299256601037000886510398692041483027489715532472485780900793769410356450029243295471895921718550051212700380578641553963320374378386995266434526315440820879392899803877556149255058674111400420812693501084474617062716642394019517151325307353003214714215276148690207359777806088842199060762658590168407416916727904397388505498316660413553706394722494159017551918914111716945298650722275296151046538003340126803499135189730847627791750585090711634716089885675716182516955215217168256817162822620391477138431735349284798276937001897702968698375935836908884061248221179716888823258410380702950571668316686497688750595179545906573739750045859724089820643232551699825274100963437619828168421586553538061657506116201399150996204630760182551268020812043568767940514025208751008737481863394340500994442692414399029062498831454856339709650660764063741856673162864265960293608541139035124989047779520573095913097856506318559580343584678964960079391690724931855642619189620976587217545624777209081946123415470246404851951634635039568652428620057905191215463831459058783824469647968176844102979910067534126614782433543343331676484278881790338348534864100085329296199060538917250412704371604226683343932431170978994168131683380574404429977579906635850748454198666491366179567652949626695564727318698750316508746331044467137971607603656879979694663020107867098157919962227038760777761698419445118696516578821954529067542544945694318720078272171197323458190648319282134361395132664088095859172094894366815295562913570572592252412346156004804418548859319979247121182023906602713644810057308445408017949099405656370047135663042862656999784042661316262087299690053630511299148833482983333893532298729782405450920180427573655866980106074277993716075870333380243897947054222885580300430493331062854121445410678524049781288103296095374155959450524641068579201856001140597771623017311937258470986993624627723649895233296122184759915923362966751158626028559656799004573824836379818185482545931414415115373071865646416414821164163491199348762785647920148838339702899480783150803289040914090807695272861163411713714436315081039559006858357069310696803277952024604261624741351854176049967703946908399887749681364401293120184765197882491125103450158780626599267435057466015349292714545104125860918887962688031744809077147230933339509293251992465881356600467141874241921738254771682858333326983409537122274669723687946263992004662045955271221446661153007092261292788445862845727347041134032922174301438597440908895557487643011772825301926406876911854946826870048105879302182308046968573500184943937518108926195954041449686973307326130769522231118755585305054020797717442553120254268341180705832614988421557051716846901500245576314336309326840620342799791106164496309269642368524086531755532970608372080969336972738724796024130708351450352443600260757481194614108514340951135008631659949904295910689550652888268015195534462781618982232624602020172660116137959706887800658157531670278132920172671437490623083401229671015400331302839675346101606816229210026621493156943502585934811017901561071554870226063696470390298584440995699659283479329695768860562370877170548649859072644482624496591088808299527768551276919801744528739040896002146343701312532295467089497341562385138042345531588306005403650158315914049245779722552149449324967711074437847052686959189809292172703774115429468138669013532301417788440034676854855387566691531961921691999184077159304124834777141232291512218599545756755612800805189138126747846925847422801813757994679272962971423814516799753989694853609285352480365245752186841320048993858196563404357105512354016308589863158245679232676403017987216510830276206943021557057703866735029880502727015643899622725098248550664183314755100345122089498292113446849035291964513979429145957987402065950315751923330116979117969797882648020984135547574695029581393239811215601099828818773974751214299968052295158500383587636345256281000400763925268204617466738306208282285694565213081371427285083100982859506185644169449610575136404679999632430838180508951852613885106237878699131050438077765404437698368640340656151334070165706472929147218899312530696016155815651120936300625615139163876536432584321879080183724837492737533313286613694021958332086058948285970235392121074480155716237986871951661581339050690430140206000204781921706528203519323392752490212211132163421431121574084138545012447320918453838326813956889391454535189883086230571440928697981091254629945617602768737637706074346338361978899286681882168061355951111181784061795839562127930543872757933611502251166080248748602158885166934505803272344060263795953323457397438690715010921956346335767541694629743571915319058262741108417039220726304064451754868572301965575806620578717891857913843376001797782815419113086365966107356685284433658978940162320117328985873556507716006954134771593686381668869476498659207135861875430180433303779425376115646915915355459428202749694372227206900950666695987806124018230314677113202288789543047918718500570501619881821928987965679938015696451370986759953027805082346844947423615226314624142060835765375032604991447935672343874322750634840502934729695135545356308191498881689565553311407906869223978980955283614477647889363839876131619204442589966714133535468197517177399298430380641677527664081890437129526008456057226825209091249225566702030210274388628755438460658229153117325152624697789036632553625388696539940616270786455634439122383877975783083245343798563264972808566797555550390196390890516119050597368890714778088354273048963898035274927567770927826659001275034138037743616549136688613785140057228426890414527012058067165588480877805188112084054729799209985570289247570279794265803399945431626190667327851207131832624868225742909987276522945629936620865071606496731331959866294988221336187891147176756463643514249896828121582368191764134800267640613260608736283594177463209200640600114949025921101679207255996121113023698948714484302489528267648561975549124511545861114914877596548526611336283703712425267322484240207388108945168309615382792995735339209923318296520795734448723423480600735510357858738334379586559346921119012028166356162025954934755059582355696381706041200245143353572998116254789233639018810206095813356779258918257853223888457939909460029379408960472542134840772743245517138258840005724021651104630760180530173980193656791554944380200079506712180262933106587995732025525790127466641749349444287784769836368785775581992877928549625088535344307366584274864180841200403420734924335723749878313013555075338232757441160333560867160110662152546728682428263843250266831118235650809032129887155935152423074293353199839206591072342616311440612046445728513233949463011438426203604199597887870459635744433937000546723595572619826619763230374202011324977184425531884334388187006551687650099923349609996791809696718438032227917452593320643863670253877224596955966129982714108784098516379576963347354386654354124445295863798721021303529453707721848318877820425968629881904184086835863596535269344086054685278521409049142375599980650483630417115445698535990542300089036406137223362509695088267654246789363085523118973673199844310083755633955078867591628561962394514291370027553087936032586048845272111462339639311299537364568981557311848231755788893452328695631629608629897612934944981331356985775448839960137029833741438727488339524403115559116591103042326615773204814779467328358350771904213279059888917361483308959956470775970542151439549320501068276924601300406951809319336986166005712143511794850471110568216227893539629594215267879433626069949087571286975107524920793513846424943811448293198711703073408989535820625869419265343216349158912178246760720803094917039393292342825756139911494618407683317412094502952757870996129935900661686397226712580568097143443818969626112501225654356369261129638802379379974615262957298223370456310972477668663851246057745738052086247478981504802403995135377463756210569705596790500972929152363509230260004095224684633808029091296058998584962741851697664489242321960822478447322673384598943185979558206266997458205212902975463662395487229642407373283938465320237657533712441553920193997127264554606128567640980058252567302056516044164258024740807632426772932728087168570406417204349229476353474206544804217993836266057463422147404230554212417423725708269907733450612564954175816081776646416868150478970760616022010066742826768160874840407916322824003144955802827268867957856537338608933348426471744474185608350895771988325313191866256273252880828546548717166469972809523967174087439672631256547158666726815498885246002137392898784551415878010006298698785283743729207445507532789029528981947365347983211965523006424262590118970498619723752186702695582951094173386361579779623581997624251482841683515696019558960630725980043533531543987798810960212005558967831075059767203279095916921767905004307002780401005672436717322136033804306034016926987779924434871506827935014551472866665889929995829909883436481439387483129009231627616738367998869958939145266141193806847056781840665890594757354579193635708738842190254124264195120925382825587925584602129004565738590969546945100631987823179186979541405373330118565986756062374792509634433302099396004497341612528022025985757535372118928844053797892595215326397958440772342466366053923630167258158305645427533871607956373120771335586744199855950845737031125602554474064421535517158194912802237326925633244946997311707799406946765671186494813120544356211580501902054217544912478563333230714349037158676925094007743571400792777422976815506758285544092544454981863367125833335281093519287153568751000838563681539880748612029905735498407978072819044221133092659468058610806346838119171313504013474626412081436680826792174144469743683912917178848184690306164687931471840847791257377056307619873266840185405499517496171273916833455503378327748813266588565768609194731006666045388673275341133645332485204894782881974683130721539990124948459252596282604661106098850295360690887738794012404994195210790689613965286133722344159774859627159461039327017578480820691053644351151516681864788746871980786844536851682336484760266593947452231817824726951977196118708261428937485114189642495055390250911977872447544516241270434687609577858057015121657959439039178366420251128004748500193266838472271814257047429009723986536742538919870916306878003389152272126254414495860459114540479839262448233340957176453345055707106472368617889797160854300647751404456494229626733335280992236377328806308938962088174662849725725040460165127690928373914540343353336736415010532613327467158960024954547106940872852505174084130079415752250418243519736178749153801324930536041211337039806560953900873020857338319050849565934436758027371431048105748083494569140107561014567114264255490342890578500864241582772100835076905816886135534691075119686547973413803277683985945795310767862494655385051788704679550232977024621937307926644867039327507708058463031079634771505018796988056552165670669548105606865115161237391851358289032937525853278558434976628067996796993345138953732727760838250771945687434041703662897355652795415869832073376439949439420353644555495042750971394426630464822025280079836277038270392023649454695122181171878379358451006683424035074125377938679920143057585243204121161565531734031630946066798573265445237063489595253298530404347852293032481762823793611351303223161406150670043250116489453163581997459458870068367119677510725969635780192482305831737004928167345336186702027393496614462332957731629700292630969065543754629951803365290755136938396803055579374263403617079408890230053519370697027073525118349307432817997300685030565941725479249795014698142850158405839752716262444328892153672603459470889823280244044438532555385455497002624533299889473559853996280523684556789304689589669347878740487009011461709286281510907770677377202903061355138851128881254087853532526769920128700839339472667503144006514544275527909385680034689398654089876402404474591262153190061050285843240557181600583457749113146402535025480237344344768782688284073739858291902071944061715491123065458772127405834982712721129981930089170504173194686686494867137756209471167888327650344226511569126855191081606153379450679519550197256884923513794618410070222271165724750346476971209537019575455995280280498654829885724641763266840148842112406978691673939493456505057719801664747714253465010682648204073087005074477415451365285164042061044508638097777602168413821280134484417010179733175436847593548020790570723334212410515755731803445193460865568145404714923094775383584779862559392513315293854210118944773301096861203567797679238078179216384191127102161210515405194122718498722087613041928398472196002335281923903646355077780719056778730753870669551479235074212988312765960845504383982982510927307955478571519005753985502724152171858086005877097168903679567539802719415632672697363844198323751210647331874462681460441400725854468627097630752785202363552239867437799452615590895907913302977530443374296294574355851454181527458081591716222749743138704437152526048101258033260922832443253056716161491856950506755695010715993601693208425962971241302992903605175238442351231888639369175041522843423306971421247881276443369735221020341464380540017589266961117649049840085990361485201441567056860703682546934244165941306744268212027088860886269773226650066083814556509688911149779810914518310361424270642025779713226643208564721222595143890771673672657202474122923118392653911107052031103241305023340660784847084502947769186655461987035014814796733654692236677707212459252278154855572254861953931651647418314908087320684149545996481660873322022361366346754058205559916316039639064711996974343237308774533881519160302268062600050456288771505268408743755934382415319759057466129252179534345742106460823579851155346811528624200540273881878943831624447109516331756340979727310406002018591143133970400654307957961328874124754066335581836010752627977279898262923640890427543369521481320212246005245529266060381665830216884445221073420247918685948135603260246792206655807623420936939151437953966114204996677531107857228958276669717741857592473757066362605380437485087558409759565881419354847227538152591798240142403918074569441027745816694427429253784935218325175745460709166004939649235412141608446544646136340605243861517040310918732064273648101344317623098881958097845588784648149900520220794543263421618319831862717279172059942211244103357674393727638130845138189833811843540925379548598647450733702281037020890736506553798684340819951590304364262644553534981154404816858890298264471914139543432844774528664366279894833182453386853087722037977141378885790785496971368812125476247179885694689166049789895581753052036485131442104431360653203797556086367297465452557918856129486416054075746597146977744808552497345235238104004380659088873285464680588836450340550013444213601542850877336824337155317704972137492507054025107217522469368756154600381057138245015833701246099672475373452910239653312367252335567547422293438040724570988309505608060733591650812606757467199507979738931893951669126997722588583831672940345693298199471776507761170811420009249716686107154392291500363251397571141807463194451848670109434349522628070877179947582623124387122560971519923233308478211175545150213403208922297473158695720977081972208663046827849728051365855993719890607615512221905421079678594121481830445972921945373035042508409860723456247538932324237227727582545281147530265360051903806511406163004926322043245757815994213482716190560837758429052362371296741630301300162369645622614792541381441749273757744350647501681891482933118398995395257360950333737159773827547631059911917806331771307058727502953571006770514162661226967186244345487092544807239079387537495415715021171367883795295162793931129156173082083390747661041616973500247425172686082053590634866648124782240714644120214305751027556797229842999978737237964772643600602472906459033118129330129864159683882901074787923532339912894288828585446949115891110557438652897930227234538770669902711260136936597679367860721224626656611170144731086546427341705074650163225174157129315141542571571663581575932488961452397238134662238611351769912909360967486958867979528578248224222305273973241576677732759006069780693704780116678799744468593153094704350436034633893800528075433013619508428443918136079768570417238047323271102851191577298091653553942202693215801348686820101925913608314535736580613285384343009601521304431467011858005781880121559753953816217464205783113622754170663448644184866811328105209101782105301077793789991575050281565047524090534199062943287420323648896867424231065295927832371984419990491112433661809337573099021937921898744251842343905442925925719071048141843607403573796634551331601602667521298814388548659626584624834622583416669036917611251703346043382115588411306780889544766255939471911235396071898758754263364533463748087236805467765614277505537906108860517950046534086435369600007657470412231949993595884802089601201872463850352460526190837346194507302456570940504899646337280221577140503558161100860946485519371541250500952535223227248355220370360325388496595945135837784179565334086273412979125825637611641805542559802509374722243667332146550723816105264758446206942293976813837491720845936056586298426528181820750309710140131989434827229652238532874039106702174689310650458394329778782386171466341688361651325328222246302919553904275844435027669259797897840613837238690815068098679332361711757583591541475117057874757355757773496366142224643747646653315980704323204935810436652203625172627955355984428343215770670345945219141140464392699508897974702039139219142786550974468072894443134842812702095661632652415573370889456445644668197959041965476254315202322703670066215133437028022053802661354231027003434759696262417783517285641188430662738027560658922444740245627362318078070909715041628624570117215332522509128681891537629025934936194170993740182254302785995128864630319506434612301189270045932924267133162994562091115071857782439541264144709573609061821705424163061749062442622821232520417900416224562427777406554320168942589762262646777706415816878765843563007629307302752819832916751506076919380017228987371834317087147920488693668192780796683456405394643050789143774982226351512337021604476026557851324377879025876344893103381383534641188083662958400355178145424206897230208785253649429325483939793309881395971012272457065692339548164937925183540677732552293610833754336755777142529975167806946209201975269628216758935629472153263439516161221287032888004177089279985464690103418124613436164280447265453780833251902563614599380644121600145125859418977626241977689841184723998738822651578951774941932492865383878768986985349461484175099896787087253377297847400346399823380558830848345136685857201144199450640889380015666036446181648440598784609918234335555362852651058172148810854096920465193242647352066612854045902502026177712496803475640672902960569762040472376043503807966418444148987872651603231672244290784748113613668500751561341344570533392734110912613080730964075400600749951701118832980696566626561107468244110727660822387410920042635710891752830722886561331680902915414627805094988227109366463512097239347202771613786504810629046205048237488129258969381812834145970684962581387389620016092065495027376189951467079080541099028904578071806192571455717709555008544446320641453054091395128497931840160828385067213967314277818733381449873207388077519395815120767092588562268886184600891760602416706069977993524228049502303567448373771146793263869135475992461367608063105220938409422081501265000858341095909195021610580491134282999595193839572654811678222174466615168088951548631695451096052181632695614017279086639680590916821953746298003282324757524353614853437727581921576929695384541492252812804625722834542482153137184191523870791714193810065490804354746240413191846635134027531045876667637079654376552014880680696340211894385327561281679258571108916308038764487439907973467023004186481099549456129884539240702793795626917514587512916722355030444717936800656710097310813050342708237593143157256775753786382614831806552298177331776155410772961233117775613370474755799087267861575585746795847690094723402512286462976095637153711439632006387431669021778866976051058692417748758192192347254735833293517417147213481246512822115192238276973884123971883856170367177387635813589328482957530740202815491756970703088849142456553238920507880548649027184460605036467919728152331596813043865231693238201475363928799098934049220340991579127836275564552682394348510203369178621574219353659720742905283215873035377942918438884613242630363284857699728445810658701508908733736583344248435031455417535199955671290513706011906033151280822468964088425088429486107924460661344445080250683957060497719037453046833314414446045579601252658845773921267660409464536801015304233369744300379470804075159375945701909797288721342610699494260110625583255770352851382484407493012971568137051139523664470961706861572399032995628663966249725658646078993988366246001554654568105450954725579827513263404523275947228375116308054405428428896945422164816326098711508991586164315782087967908149156915090569493019071457431002705951623217683264242760724665416300864249698127084982931409563203008223134154107834580637816838575528074864655661631329925924486890724053563303705600832611673687505821135622251106688692032388875028301906204994471740489531622509330596655719624159796268036034517442387659880687495934410628814492765666467317816223233777124683065028053038421319741510259695440915994942176853646060122999825708173182124099400830045287439001104152291856127457922560775563082947046365822423611043461056925664517111895111223776180495074607306916250013004156285272765666342749541137555036447884449610904756150674284505128675298004742744399965634776323436846815517683092367127438624098022093623087429883837861047610824070390127340178658640637676269179088138215827019739643954969857727407140575497699989380557649837683827065327873863985950962663362536647225576691676370167378811710373275721387623597313689953445735251617118458673602379184961270406915345218377809679809887147069614187891181818021319453201065906925217350718525813062013789900627341075251291051612330757459695292589313355865436744821395261873295081458468489384515234524617296618749156394061752016255023992031031671790320387267068041760608144230435081063616169414676802848828322425203223225829199945650733038964262569527195363011059169739633393058792024004179384972997973909646115381550472470439950088575347558180877824860011726620847429329214908946550167821445895384244489421823204888315436037780035397914427486655505317423104243491729728438355266703671975289197078125715104864004993914312986086905679374998095431192264448974236229938754698343759768183369825857451519837472525042689447409403230981707978819850813021321547950794681283744048154704804129400189554831524868996517000217221390591030969764695541896318095644378788456394641631093626290015321109539332175375031386401871680983902964792726290064865282923058836213304939224551183147230152545423036042379001141497515898260345096594391940485690744201829829594015344902281482193400288387294706577977827191664112089334911863932609457553376427159776654360619538194060428360319863731101093350291963073643863926801690895102513734145326504553105306650238505125598612667965330611851431726152695524650357197067709104343044971423852729821432213934161594928250777359283321840881206197292441302165114173402681185465177728194568236631696910737793183276780146670181770295569620007018175920721423400591728331416832396804462180286043736124963490671597140004161380231434903476714470113926933440898340866863203420411833661297948595396296260656521814748446718297451149839728095748201272034480005012657142048962801983455079101814422046724119228611868914689363424175949298752485988083494116854603518905481825059001646163348570606000879888482399918199200540881373902527293331550724458275373011179576050617422623137482767126174136451739829516587413571547593705780367878755887021894674706997050056150344056210533381832552650321889292627896243388249072069960572161244711850237050928700922697286532713500750221939576678402087540542900318088389101224917755364637914559678538690404456667811651003629005991599108358239513704559845355490702032376215797471787795214262076910487752296377389227402615635746588895805299510712772297925254881944677201648521366740534959351610393044183342170525409811073603478337284375972918478475308234443538804805107066603095742557855270394267015952286040066440865743229493218892406510201760030955711756173842757430286911404913698181096145937484288043796680016225169812463909926211664549759632244219783657866057349154723190462272401274862382843571722063724504875338093180046703597047093464065594729339145570624362449243070506210235584227497394594942596801680983949512208790901929823130437362172931431642927683849424646229049739178641325324980016265267546666251397053878523623257550779781016320762239688482063387391164680082484073319491596571839366883843527205273497217597723193430769900439470361129204909042584353940431042176844321191091650145031712642700815517747189968616752500365183244594125197166962637305954701347334615428810835914592642409233307992017805973987944825755431463146043578533002391047611571734147089249209179779982348853736926715334343354627273187677355407405498494483979793373893082728889781021199289526673902542654862526283563694966876830780671842938299758283643783109442734867272757230268327070070129749683915436805903432477747179561765063606348075305155895287335159504418498732422683602436387987209114118378603646201176085173234493700603340099832023148238432000766450432531862802519124564564442108167721810562339690901344885248477487176829408586089981367833498202460011251359676841726077808260277905167633919327032439501328018618974333002239323632288685303529283842309064581274795672958638521768423994624750317667005839177646266164105010938118242343733373203348871220074958489525014770293561716179608049305060160885013762512376397801616824766099969861848157809851264700396373376044931269564116503480001010815021569172812148607342624457817175113441021389627711372681623802579127602140354438638633363603249496984936536431359796920960396531277809606693397937560069726826278576916623407109380732406833615289162330784414804233178375903080704524524876535698877320030576761409707748716527146324743557623061743513559000513228201756247101635806019886973221663470136714321733565253356445852664736076683901462881331460960444947240669232848334367558763932378897580303222343455261247409068986698739585545352904663211199241195219602682623006027597789393278522928111054440637919082665812203538626954414838087378315936239313324807841424885233993224073134127805474396597672481972203896631592250951822879199415805504821050229689785509540477985465578988631594049854316352787008770555335218665620231952895200743476192643881753883056196151041373139091868068138651968085845810779692097503533324384051348563417362634288127833643195787410197492870175207039510711732196422372913000356573311786523987564533914904203987362103350981897849259747904023189113925872568882960776739317599710115575768296515653074580553531171386535071559971637287703953242116352515073474444676320908823789366141809709981390653059377832891119230537198144664129241988592289948264251162586635757778012977138987539481218020836169687944078488584585296181051378040117850465527777933001178706677513814411647988013288927142854627054810435015167780478733777454493813707889877435979367791075502819293720561471946507326511560458577640743786795539070951710890644361619749530262639327436824173739096761026278008876832278403745749643075545015666250221553105148492415093080109146353573016252616406836302757676248647233848972288181757512787568940032691948602745418936855276802087407423178652672836554754690691827755196295157560761091416759466550413241722843710199706160158016198578782023119302987803933812485422069718597209631938953400199939400019144179925497842992947679244338419717556506145879990071637465115989389141668653027515284781133564047237268354653219791209734347505119736362546755241339086018288283981201452684733545344130855587432334414152673263438947008268145954556576524384694239835128989426689675020685787034090175876374621850372518576975400062165842897607070264073215608816654355112137245633665716151780601337593369220777538866185019279470543025442411481542028398870900775582794329360766628596557073956172846093771548860361144594480149206555656444885916041602204266280533038591426088703364919778198968882541327375392960008028909398997654591354474975681746049691755002410533135228103221789836599369779391028824705903252870472730763486951420826514677799274040392244439195080898908799502289057716452438504562074379650406927615537566399624544669286585282348226060188190069579063202815790156186965231126455556193530799498184931975073298654861173317136579429029428108576185285145951783861397443193884873512374025598283856667128263279085630579197574047972288018539440733577195160531174073107850663540240961307915072514865041903477566129345727721485195457486930522563546535392193641044188439804094350395010239470577867645948980920854643618117791158597940060659964541185825476862972447476174824393357309983166693953361014803760152784935978652446288674042639522196120460710322112932055422849362202509873185289168716734117868929939901888038350021102761395482041186387651998227636510999455224661764682219481105163867553182994379579308086229301808833115915825505618164790160844979458606912311350384556725232475744470967123964623248089838822014860108272323685706853377087735499399087656562997987256713239904097509220622545897412504386475555954676898826210939943630963772215240639582339290647678807856883352613184774140548474992368899789797244501705807237312666202689413576860698236312730201642403204474707228951375926741107809009248614163998202363395741310874554484021761999728423204616314052495287684506081155484976266938120946710430730550058933216098910846889324583072603677525110572709496359422092469918870807157074623666162391429822345226625885059564687009941533917524569590109471503396121333251873773686123877819581836965012740764185525292521722277407777141572754256498406603716864596115411194466100546708273938448313871207732052543793665760920756591808413300273915170202759234041871677749331904136101473234228654760656901244927689955986037239294273662866045374734996290131888614100079787788754170990675809831657272682964000338998922686647565653193971915562798505917294722243186421500727936649855451268221117708894497267393776123060088953423262195393440281128243406200204552302948985922104309034113402750240571371994707404726012927034183599371646202336037402180594052317306793350337180433014939987084776952844914376586634391853900425242753352805837213409523147255688942541522491378314134477119439592219170446484249294742383217287641622082666109783458334724451044982279258686128708410788876809896507794935977264424253783179900865368426845132033075617945502510884450119691387283784390494327629465349947215819230529095357107385003039803985390508443165047256744414250696499429565753954204257436723333831544419415066389077380878222842604737254682988181095570492442567040273525617052667220758445984010160782263272629898056107928094970238466845304707977902557368947821731704945832934667359787077925716402754557273930551570462386701285521725635274560420783627741191884958595995446298740904239492388072357429782258733506574831023453727554874861245664413758540602788518983781479775933894537726361907680244289604802243582177363484962085668634518003946572680369758684474568785863880071147259978092987349232845038021536060190272402421319371131445637611402568110066708991392660645306666652181100158347032129143778469689604143569040027148881105550447714647129136805224530845054276846311834462322407475368497591727664845579234760708821397331052341862219300529588351977343249216058863935703624440455825075361158901630486407465283180431447620131189727965435579186333434080770588021910980429460323037176761156572263381614714629161700031021294255925256102068236731194370569208156497129290432970751482054432954483846083491822881554359690233368667183673034582086202320147001200394323012927474422159901794612879133194036950049582185435501243622448129601688362674164906595738976214001206038059889799316642307318902432365105177469838051972984532271048477149077971059049878982415512382593940152163241672622854163180416978816942872225180839509216184386614955783500481116084480133747335420084590006520911814864332011702911347318612582759891962562736574081464470843661186822716799131696358235310196508714232426736292904581088214284592673556387846129521497315868546250656690968705832092334863980493714963819796594512448662316618519717943990185057607054519280428740617732478151126740349306161266916781337049849572480925464629325363850786643652387818561077176860367111415322155435808925382530627099828513765145682394202509031845243962495352434046591258161554649878692734402985094327190427162003913351420251357040907296763942556252583122369633051809741407409644722919128111470975806640241321990032419315306131689418098341019026105977613273157564540857817019728944189563433190529678889097933354067861429257463462016138133374905868684918419663407358739781621365350616865467466655055020049650060752195745360840334891808804687490647138502158787065253009264700683383086818823245354762935328523859340273774684499797185164503470259628822451815125788274830004517415249328549597885255120185125003473801533438717241306068435707670749543665426107781302253187235378232018657236566622564197342214548556057114153824502143043386723646734537163230173674317969481195422198527322411094444855623323338988255887023496805578114459543409576092299527463443462984972475461938832766175443106036663802453119782616647287510462492951656604275348336407504274983741037490351262898260982125782198980134357291833748573985679668738909718894540491780375437084672876158209585465201538698019202665571339080898966589816812646028866784716932857347100873170976658731101602892759476931915516608927233842811242162563322163772279759010606054457310938720310981877807170704830012084630673710017702659194327322280626414828829978889678981765549542906617547012264944274951218228475375704003428743820440006525375580840714242005219008113035805175890408469888966193591797505115443418913047151928873832838841278081469566987527433414866057296252382632200852339623858764777626656481182221528446602991855361786869998091001764496965719044606496324045189786638207344111012529294839848588671950339314831390823185189540171627826718069333370557167524570022878330460619775510107869093443909080316426287017694921758849397092866362197958550546133804903034262596393768073326368541184410318482856345120331726874719654880871653164699913154549823873380341986199633722905000497288589563289534941028520765468281636878999595797525393874400264043643148899086531489555328041846647188185495123956024247826849603429517145758737119806225802069062725955906670623943762868140326720116148725737666625512177981643408852272416027062017384833886066818522076023786991375318376456513390629472904833952084782054732460161584783747097806088355212772566714102681414919445245602173958285324107007894515965655606444075537233650946171088676178136364357716922680776892578473312891115830045145578506082928574614242829530096415676148307141404981431849198165105454210204593410431265057004589013449661379934004816371798285264942223132194793388167904812538029376492729971426793666138917774028040643930051991573678620348410263549363923071266293859732213719436467327529682496896386164395557155242483257984973719103494721697979893451326935134326552631331247884772477796555677972364295512970909100615877595889586092244354523283663786119716483066073031983918508775782329190494214541414894885730888844993615021790585325027900015162675865829199764939721966439615764546331517576556516664842527626816389310540715900014027585492037628905369322254912259147270418661411481854731095534104257262514330985373187750027092842948174110761561129397002755428281635676799230332784935873316409328469321444152883874442864023761335077726403884856546432820319931773742169374050708829351313303389239722934054004381569826052801555725500961952352387412665284214856046593898712059390349746958877772211924957469884047161900399285677820063195896574455308515660483304653677636930459311472613665180059482936306526928758990286589553837881769659005662090086094620072453646697050691252698958364136648000581899381078306217686201778367394726775620197812364614739739724249123628490864232912171717324464643442851502410530963342444028933511624731752944320050944264037938760533080324979432099508832611274574387192762998193548569192113828769531427563473117315512637101644180382532194121838371453632409945207147884636845714850840283579360503123740595359526808078810023853444578481763264808557129198941895418468994590579593862710307000088128210127267237074112369694551553819532093225722907104836685139973277960512691319695546859079471157444108633047892200880118043225144390998799937656416709037636096428005609352369773506744490877015951247781875326016270207939830851239508165348001047784290023292514243574450532567609663747083991256205241431073168241746525454796869405400440229188845226355597529068468002648172317867320012220844615740836937197567239159205449164487046813975004379414963347306014809652197292263333058381077587317904586651943311025747563990606957387567617675800435114653520425350497903396847357370541470819523499442205273615239356307417309359194244805612640134043910990819634036668917583266591957214106839453411288698528444967316708907632564876226650631443924208717105509429538773113024643206795733597120168656159198650916689900809684126119953493958856495464478023730260187548934228134138543814051084949586367296612208406016999418250297526600369287341274308032105107123545126581909261060906927183849155140999955443174962157755936467380799800006022351533893968281532649194598686377101016602529462075082628050288494924290666339984081927605598481703057485410713098483290552419683955148182833752619816046708192612526633561282255846821835297184176399548479074400211520264616711544411670556314814181279247524183200464900498330370735989634097408245622046249030810697850037607802918699645124728171359242292559156019667964418047905145986203812790812124641389268825005970060430634502945332524465022739499980895025378049701266308949476756623518698831585893969574674029426567839961107888886325603393527877055817382041999757149964009908045734739937681523167621049349337866348576120899140764060900478502434470194439101554791081302359785190648586877952975806481867201822115975366532367216367383608000885382016432545398598344155494940833453906200063257486179158546690294665979740223946868643392325526137463269389896523944927466687326466812927593532463702448049278803751941048773812895598681197231113678155221142802750674982250184030388399151654841639691640017315347472536145801332841388722271221952071231598717045307451581136861696568696579786154788368889323135302288587283522270513672139435100273841497491596545569474565444992925013122972661759565680755843661625057933757140256050737599162230759436188716752591000539669918999523548974526578024068054100954244984643404116656641032302833092754041188453007273286276625029114629180601941587679782922734073336082500253343424319099785978755166629836133240283507575808010579576447795688005695059512773819246737727559477682854147838808894766291194372683180888085679635875653388081416647760070086659417550991777564095683428595070456101120830353197437040555575392773448167736090254711517584498343868978068477782646836493759191854766222852921771403681880522071287989247172463067645209493154434697168454817141840230355327031536001690115822551049331862794178782616868185021030932866438914426916245774496351343394391865126458973052977339713911840632531681394718580349681326234694515835754146689113141503427583274161607330945898101033542901179163031010257776931183072521159495095628626098368192732421113909418054382899018504100838121235918205939898987949540913599809353497409589628496926965568495392797682743194872021648603162938983660533837413425575625322973878508013250694476047452927544898806160981530872630733793510948604680215778470543113889445625482839598869253526161248342611962545301907432970509207072548351763656606215947914453951543951386162912391677536090702498192427642516318590431690939732659243947773024690123407161749906011528402400674378459678998360265835921505020127296257417782380776209521371125969783032687662972260770713201707256260519796032013022234118976285365438389266903370780592681798330121317682568109220614944966859467147901480864437443018219457782895533126762853886498028178058999397443409840562576637029589681119509073223891478863961602657065124551594850856568397792753857205204403993484160411444629073175689139315437649578566505925001523616121912099001069539042817373706225722519391306767448460779687565850552648042982617180680116334308324215483847028065302153245253465241507691230128689576006101139804147828633415543099161058630744705480273356265096127577514359304707772032638404774069878858584503715306485170826938702924221247682847726156701200155883790654587773185303959376191034906988816676320632818730287440862705651832745363200949669212243840440491370489847943681129649142834139691871971124583283962731887685608432628166532405090709898256632036946515338491112367050153771431752519592173666579504902033857047317804424257997018715473058980380261951588223341899959414893685867612069047193314280104160968666315965001310504212214680029118362225688275607488019095837956338323472361002592468801907007906942254957671552149704241709661599904039643784002423223685361029338348437904572245370990545512908345614065787255846903297881134418459893410203003622480691371022550202338079142776263638305190415081349931139085706843533122332745342398183065059742175514432455425380925990499159024109716531269862936676816324594173269306609121011645252218604000121900585683983098078620800662546558825100504304879016027902871412314923173594829528825137921938978412651087194402132090068672936835520532285301310662611127839564821936126634206131748634414040751172741185157889671462451017431297379183701956055086955082478531398979787568626180916913315380899021960577926990105570093016257209602835272348864985983199064097198485679955208814540537541250532499406193299646075004430869418677054653729930615424627880990400617682391785466660715392885396511046217910473098526432307987230545318353837439199552673306643160066341955760497719141105723367796673567591120002542659421190599815374633136220476755143193087835525623358612007797256448106114032254640938718861819244946158660475217678806749876641015144142130711140434512357217557383451326821837770946162185677509479457982473421826548816876357663731442737565725418329144305984473949765945687505073044618295619369776847058531052287353270133380186598807641061589652698689822563919111535298300202152238301189931744961419831874067036655314804602941891971772176631292198874904542377566659565299546109457666281232213503052546903984585367020866069356741429430892044578081013694497093651946051968743309504569668993739084304349125976463105776391399237122650622679406666114241493474737892318913239133641794769327588323001673386440276434725156230077116389061371085036831408036093504905068225303082744651338888299623964492524722773204720771888242525157602285972422884549953820859850425937146692318763644477442543750948475121308957163929817611143134068559278628296101901002239667736394942656665629977014007482383033975576056207714131613131207819938707291848294374346798296906229796894406644813862082119787655976672720926317298933442518356110112464961198725857222028816743150128787788799806749378418165500471694119912830274440286278962952185755509304498275142299611463838301481242925901158921607250241764780311191070994722621996016525724946183269971811780143003135630910062398504612487664738345189301729893031911662414110064812557745156546579419989847860793246583879819463831633229669729351968807063972975065726450353943988911090863961659334118051711745224788469136263775863211442523576961259985657478279879647925440830182803104266846470695508256891902999270094486094969326340987489540429006685064365024814688885113509725785368738919424070465492807592402891706511986413517204300796092727472606562556531548848805713802114235067753867458896203536581026360438339977021761976024290757104477452870513353659121188244284675044399706724134483157963859581516327375925462774263254545142266228326893727470102189739524576938268491794269127539916269855772205664942322816616327504789499771159655048478617966033465259006693386782838564134597950706673255021076201627047440279533637292937423139554466536677095475718610154354236237992444869400650728445951848750246866233868600095349075617013246973753861146878041027234428134396010772463831726050094257929141988491172753438860826270394069833845179457446402112631423556134944378848202447846635780940671662054548206470921472852250894190644672807230514266459373386068585145806639995195509512756624004541832009395258210872195419021268381634539926757147908677558392471874476436263265954753623521456221609309859036413426901513985632105350703308262625391114044314780507673709535571481987519065372891234406042366620311951056252041952487048114507565945803279096954250367025313091370553204540248946165830044571522564381647935029599934935327649509224108230940487730194123689331159144079455410384458984464961615038430514073636630369127373270081959266411465648472491632588545627861643674008690691115237205995112448089223266940135972685843418675141477538919848818032646328891788560430182413633056190201479916721525038302158754897984776082178836555456183987714506622867396554777351828438057683829712152266713827868940082148702100986970087727095839360140048639253495129452724291009392496982283032667100529619039488209133803160509462593160016777178152618194847351575521626615992008614820674238124961705203066695206475648500310096150091291160280232897328045896449471353959614299550209069535888595177513847416838343374252988775000846621801951471549474497828677794584116876157214637705355880263565370395480664203487523559401379794111666702805282914882617339715573684488996012527768963150364052190406766955822644523511661435349507293026368500914159646336544969345731952919836787787624959159908620291249905632374049602037520559993463219970556518839157884549254509576813030653006936787660507961764065363579863447641576275744911743746648583720554251324053615331641704991437169109226779758219344829287901077938405313204579917158678433380260044339771776981391467077108242339434276558730056189671259270644098135265056324354045971187108715207762275870673539712842597452906664525206885640679235233002414071661079739081132756309074877797890799321360983438943651846698229677515408266272217364881697020249098243580889295140402039761199026425255373749912693078353219034522168611103494811818325606028904729933932798181267681444722295811657222012370681983761441463206102783704357045269898172541447885773643165441860115680826497079213877899927109815597175650290503438792858024958362567367950659024958512816095743061409182582968047936233394279585393331001507152366111821149470717721627912079667495977385190321872754071962548427325496012077851080140899795199415354057988037397442035870084022781859102877986791440873902146890170622231541906242097605369713469516497882148412934140779551889873446175321239970114847990547490471143022287117687005363115486053591788902488435820664177379656212230804331896594414128571462550946477353738241062001822302338261001414034609134720993786586614495968461803179762402385637602117595409558305484340612588303272509103190258112148524648656616321114430000371960083871438228548916985264173989903379567687329950297690225791221722751195930437643436843926224792114618608749447079290654756753458523017891001280085744783913205686331159339071827120355952970814476967699769574015975394344679971578959724900993353196976010256256105903678969359188499762597398012460442253728676730334474530250893547066146425188814441146821316061833099268373732165698675454210903142631783569863611492489863070220124786185810094480930608784217672845108260328865240126056426110572119374740288735837311573609644087151059797893220329087148233942868105363372527360306791638051765675791751107336133848721677137542356864150861849200910844853629490936407381278163852202017864794010423186464095656343845665888170144213348487101767210821303152411893831293234048369282937374187886446178207174434028479785993877582019109226102403544080742771229408481170175696429584650241971504006820390942490327619881965760625889822251214072950717767649840155821593597417812124694796426910513430345975837822663428838747143225541931101554615666306983705429135695054294379173032626420144286139566507229648116519657864487598066758542187994257282360865762817596488484493607186472008577561965528164100116617170757234512739560612904750933655235629956148253532074045987410255850475326109007908958945058329109323993805089238641773721483694463479566699349742406793655214715485591690924114391217086250453591516330094175128488713753742141857500971303870968111570987752898308513890300101489611775844280018607841143711027505674586055678626250750777695927520118723799676848056609717046918268570953605264164033761812409303212204607835273844265330487393882208811511356164543306906259193739798141214457819081837873158153070180411644714376891163221859419636639797079082253472967462075493539456659490597367317608842731139638830133165736369060195141515465405916577251417140672595948842599173317699610128338029542579942462715874221938082126400516070991012702446264065013914334004958184475515749390218476727717383628130578653333109945273443402164663100519565753427838304917870253667053681389129455619354025892645870520608790273348930194835589701452372646021247641626195717010039385841102526356972164321720202402958882706465365300134229215757091539786582931002576280644757981795344650107547391002588414777545031981822215605613763175128631965085889518233892440754843902484514481857399858986902312095881066670913164611407395296832027734150505293205345021469554332677579924891147645746209487239863976388961267742562052887495170853066921349913803158472500559882721862689449042407859854140230453185884555145450011303158850922166339116771234244289924818066753292569992155743830414884151857272488640041949207756868726889348071078146945727415261997773917306654457288982808383443237562879453501141325038912618316124657566472242485655857958709160306838331634941472414987237727807041789552247327116496212429426342073839351044795633216253337207477461135620406881235714091336403052846154271796287168416620235898169444866550372956832697386147035235998007381545132493823830387907715487292955412341350284243821863174612803342707925145343564081115543982754747604729217992183011561748757303060896137421805512885676427956942558400135846348541754322914975682388133841546370895301827109707719675444540172965094366523940954755242165175612335281910866615260330433391202049073026784429159742557752058280639169001728858268686338096188425786785369969901826159949776268790074494713115433675356788744064542773822144594459695660460196612472751176320138924657830006318623859086581364531183364786933068454348456790917528403908361300235788593148913481099022057830161199570012615170167343259209244069438378074130784987772760777943737342439171182290402238262019197158954382868068704785282315601457848228245962537825316622010558492444610429715013021397467247615872806088860712146105494755612496706846630321414614745128882204688523916063276775923316123343602768863169478296672025579844153495532619785314720751806967339147038076318684484538501934931318751796744616765063405096320950147224087047791652525293085330700744864075441596639040577454386935695802777911399940834615604960396649911571120313656978398679683019613113204250884633567796180713728783159302194933824358096558339489873379211243718090127357785129695978093787349419295905816380134995089949792729131892718509488724785324043451692039760644366364803329710048967842542594771118127887822287687931363532761220460991306225519591262911977463343677433660919063687928451376752858614826095399838705411917915241863836186593368559223409040930358645391393536794384185552148721656259615669973100330158315526646585896114586870836644130400713388043441008545892647620760732804539446248495112951543462050260790000907989304339694702671227280484889804602268481594680317616758243351858442527613998694873983204916466469993303068205982600919292512208306233581140404457672958488693881332088790237148924935097347313034140932902598602868277172009456199484777197934115761259513512157179254172206920141336806437291071915633821047596721265006609998921466009413481721726613818566579848867770455479137559105615302884820505932016863691148125010669634144447624199390820620087393313883409876480257082584194150317764857635998123560994962823036330674219786197723372438212631543394786259697357152676175266667557154781841624481696231200605340051712419420916006310013233711923481567560820251465883214830733772377901133198915750856930285895552593937147777763897537905339496010582520182836603225248623394181371553106808152590169035038505850780823122474686331454302423624809604957138368648272400424151238219731100930879203273777742943999807989732699913719761768930555597902993973212637143175315682958096501353000154226296298570841530139066415394571410081206419986771343316797813104653285894375060229933901492745528459702134414674412242201428221447370719414973759803177165781521772457897965380994079077233975502046989570334318350559085135910739561451769149958296128735587700564756677556849499945350152044192440408302315870926591674560323363809282982999803366185899603594908525744047459587059885939007886442812032002916603313868399056177718090111607218925696145776732303382091814370584196548992003853748654590407630466298863809378714969200655063984595923112865357722591263900620473330009737243766574198881735604795665239730422388484207630899440741418681003402842950185659771498139325508372534461482110220483361530767832722630406183599729634777845814903319364888971703097428982485371634525859805192674640842739570514003523898773969837779355412195151330196983543880089436595088411305669472551855738848103736519419006611089159122978958274292287789993061714232850356180814242666248751310190211022432507704489564409111935972152721272067908769153287119859607326937227561522267456373522524356555755437977182794583574270875314178974540107844967507699869140829499001902415924555657392922956183041351347186671238534799784927247749991471404928238675805953297862705644158633124187631007390954322945026925153164961708346609597620751621249734682937024968763760973053645416133191094338897415612905606215990811908797582017068103429998557067619859863821984882450445723595355367295467814516841090481123845477940561095841684810091531748094220598018493174042966896272260835256462240870076760224639395275950830634386579159310143465745517491916786427083863386771225384178263981836779616638881551019390992645461970487439757841201642279072253653701265509725597279032963584878152295006545551256814088628227529381292819114583843368557752994730189148861335213836817060434176386354660528774796124566292622274191551307176638187854685963520815460776037930647426531777065237192140018500668450292174398164516969090570982078349741763209005948317163578544162661150473114746064274459224339562962506866831602214165142029127632562053886582812889679242263424821636806077073603841568443430395076318836570905548699783105697382991895576056696386196659909579507544388721886788421148392543970336015671420325222728328072061591117481268440367302398255595267767660464613133345670869221991950870797031753730550908976355911683225576506662775615852156605253782397703133390784537587076088130294347769606294194662627077399125618758858793701889614180038743968565245212662000173186629839542248318183006560704820025079333734346813102865590881607631471106301802441515835113759283663186427891272159732958386742614441631684246905856629801529571556384845014956692448959987910163196753418052398964324329119931874732091133612009043628638103209166914746789116856777646305188087144125088419399441101915506302600575059970686527993295112294302278450860610598866090275477551538858788398097925190214938454839379088900572744836230387587016603903293199086591777997747947831876872545070489324116597256260517266982072506297999057730241351509241742370962293487842688454791532895033565269028178365359330312926235741199006849350074010300518907351033718654586390187003677551354366715436075584726378723784013039949679136542061591042389200833871499929867440591294597762477400949159388489149018575449008026000006833415410112296059535462551056713859280443045033532623860488011073278912043654848994977324986189394115440828448612500952984787220094306845473923726162229157301430220842771504365670000120171903640045959758817437672598135464631865921882855715989523046650904110884120439637280413891506827777505758900687051171496226658662569457155681802825125962310159548572140227897623760702359240207444472761735209264658564018496709273601603390594012904289204076607694272642289231836607027758650419553589613823001351390284328866327460768412298916684221312408987993481202836408042862956643317803397503179801363016857866210157211587991629516356119299818157974007342122489455851665355071857906112667833523517205267393525299451051822234149837891080516204190322001110790911958623469792592920416479642068344324548193131101237719606708393581143658580871512876785660600186731099112454773658733557330564403671821882501163325197716936361006131470341082021488385585144992508615600380192076591316595702990243564527811933275858961644104365067883489935438199281485356641799520264664809673227999203400826540935980033355732232308379212276318479062169741847034313159424257474307535794731410348420751093158179767745576503491296533877233498511598855017210948051122780916934983516949003591554357289816306401813477478619830728726142051931481845161623360732345580705549298081353275874668343323272021339807316099724652312003776318653485349770226776404508942473568781463899397351258555256316175184080306691653545706278926702006881912938701031913226065791619848081804967423396554365013692201170413607854156430990355505656176828784383816947415561650933370857062177290483100090477128601688927317245910954849630334309997531373764708969674181274922540186327402134951997029605777756698151259230832583708878694422016257761736811620953543232033453955456450829605056282959781572949093175467453414729339616963006385586636185763364151186472564965045621546143103913275868417467624853476398841620146441977331629378434866368786285999016371260902717806076229841718550239546346031924653003722977892027384835085086936040340580329339590767053336696942609236890812555616813699243701810094053185065240289074947499678831680101155416651685550609305280903221195308251143343730880079670359848320909852584657826916423727186499607083048076207637183563964111668610341232739845566149612439680347861751195352765754933079293321938592967359901461198980255273462758152796386586247988534447738626129231499521581539818588601515381084226924059097712886399666879140731719979323294950792739711991725773488115278065005535770610541121319184825651721294921593753705067923486593949575780047728775649808882194412791543768151472529239767327534827250878288981966605335144925779874967434441957518928000563977706287431402752441092069484227640783308413379216133078546673443927182427730469745490194370487642450849569987919630727236322515718207728055908020469001348483557396924803372830190741894437148339499527433550717081437729834006293240598360445684573512384966529274505307752360906981016283500708142604437316015506847457543829288595374705702954173599988356396421045017144347119970333642441446335567459078951283133908466446594395117712201247435019593245242075100801417423769640635476985242990328178784206528801827518466055778071439176252887929431201375430463428567441610998682854549915996020452185839817008164940648866286337745431701894337349972965808709938702673551681711676890591927054740302652039341858441126250859878045524558288929176384334998560382009908684414364079768395594837769752315146132218027847573178830397337187148985621404345475197570903771676506822797384375621087085459749547565909946572138841247972934754686840397921747775102123132367174621641052924315967272790870097411319550991858424402172481924528291858878368697220835997498152484334902915032801043520298907994425834909524273403375709284159059442602571871561169423914600502754102173362068434662124776686797705218649171796276405048711901870160603848420550147948285281752399960333678434545005693622731685109479309530352907976780909296415119927561681719267085597915639938739226900579099145997029990929846937640553184208396913342936341114975752133460786948103232912976836445642831725169035889213074853922956799479620865909164074284021725958069437784035248358178024794932118013202710148028187662353988004803379255751169947764100364230776739246106332680792501272711857930091833504203136683560712437431946839165876570746596392193321570466082889217293802143749473605953495449223774749172248936698412924580755016858450692399697878082063955439243990103831673723451307732937618016150422661606390830893800587745197839992955699896752526119062238804182473946078912851360763564719788883731373184610421945803366409011383418172447339751068214684627166330731208674797683998517836202374345714611800933308012406094685358234397075937471058288240362648555712376138483200953939978926535402365438556763580946322109250489276029200089029509790085425141185998847086323702285333224106352405848269135013420681795401885374250562335056169124610465566224679463686722991999795251429028280684895390155715145512800653121857562209967890797543076502458760093461106888915317923687669686571477925435005597343728941563245428777620087357652157922031980896167946326026728884151483311873296708666477709708623407271442895045894004094801510192954132977194806116319517670733225577855411586284471975785155354466608762370798819104716945282515374426063444462670510118708603608049984487207890821930991068533214723156053819938859994646463474511291960854634993074460569270844068372353787727817784020067163950175872255217426248586220462641238324588156068603434584327011058430304820229866368476445267972902942346514019042492068568513599383829575354758056205635934166599273450048173513529610741204838506724804574712162464750414929755623765698585644372284647476160855728975985072250659796593979467984472388555276931411623895023445288439208118200413897896260382164050993111043382387666820874319534326163709308920857024045535034354635938727073690186323107944224277313422780576373800446419781487179600875361131272063314930369659700446130914126784627676496217305944901294735269759419330641756893965115020032367804434267505803673294564543887396161373934235490309613275965901659231053219250580942164116073375402077392271036109328996835928362392214271156633353007952684348663190861321531687909866647794799089722473759027833552978204506696311398751516708682418089675797260626153859380351376864954662645820828499462183213861453075612552684184449081215709453972526529308934615582342140277305226519878829018365005490047113260551541810188690748842216498442719149848837303301256340392779766520537210296350631831751709255271025603122442720288789557729116403344726850426825122395577746316099264292118195742589875170868487621853310710576878814878606323949697559414441065588834165655464936697951070014419127358938907120138060051728033259725982304914951404919043745687983948234759965104433910934345631444310640444689487720638307499223589727012402916619397920528188628133311110970739423655115627634952834299203770562476390493787312554810630089339621432388197613019275313612185818835422638066136489206357343393333093398192464991600581849858516719867436086229468868033013925600848570643962287970691308060160467138994608665794910832770780219557107359004274346586082085277426665463693016561726379505046806931418338946691314761311798574580729677135051490310674600026285125735156472734275285062056515233402257086264950460518287130554756121678489899493318196094815429395410260586503693095807633375504887282922968686663071845567787958792121720359083559784933392250062580558243246920160863173104187562966870415326502050122761862002909676411468167677233094828382799386501004897918271872056148323660551426821394132692595551316055800411190416225988105783300425914474713246094295714175832721944721515051775346244514320639263281976294548039488006911985403778859775232873589353902171900819939623659732112969930511642439067021922749861020687940683215733281286578201352622900063301928797070875645770170665201653335797792038560214180611358339319154125110688588263501921900720207553596569813147950258856117423485220060099652013918473983225842201629993034359753144492211426614156033162466370630096742708495486373011297442197894952121596186920540763763111828730252484271992637029657464665666223843217253568596085015970251222485868908360148450490647280459727793531806168970290222825936265663214009192415953708174242092760772005045342267831128747327753832698660920616277860750424408757612067696181384786363916718545041428189605957361569732015722715514153997984088424679030849428909397627625942888592327398746663470504113723774745204305012746244840713276571079191486046294180074275228570920387353570549246947916089288238178279060101691529074359023862638280862750898651698892445959484297018755527689929837265539920111180781473214347077225125160381106342306729660232812974832016519868711833179384416195494455255220758149341646146244418139357093285377162854493511717693752458423515369822184315490904406753767814424624470250615424808417549625220033575047320515694390858625434582203125635317185951168137043476253188647821620619967375606732948907767023661904312953097319587689874919928786309046164578452343783000352910616831897897108589056641905212491169725412495640391299525774441430383817879515995104198799597805700357102858783428040274481112151425672495847453660281696314152799663843179594716685921058821848137456683789970346469636079786488803323696539973885476078593926955699770072106748725384892047213929031534737876344428095583071712865127128735474620609049112886559766921981117788829008766110781007028082396888098634462291808841824002000561516024396119240192504932898446825082821789532794164118496615096013703240401380057628773815193752778631058472845449852585000981233822039528449850520224316183827633846931613773403751580270237039482492405188102163542278040373654516193424744580110483280125047983328593546796822169542090465457304211602309906834908361397237858638664100322417095437224932790889775019644272938950081625111187088175457954033253727814920313230669029823460183147806320822211650105665389230531417238396449721757966238869185850409368059605507666274688784322230677628748780489199623065695210303787484524965659435177606382269441390310121522205911130159737322040378258595813034664876084227490075268628096932648593135877820106705056756449545596822091888664994972451702848131443022886575640875139783725184437343547807477409547802226152874005215681621901149777998157480250762221290984329794457745946717291144881529102321660889713317598067033853726717586007294417189582400350886200066293579674473975644492535093052762336516049779474919140807218435055331474789211349360498497007993868382091908338426999388043409848137320239763386733663439241739535545879428886087185507757002375669368326889025247828882651158483755872470958888387150751671672325298347167171573355949774187090638135516918453907828094091723488942110978189520295827848657698914809051523716693086113058699568294577944343164375079963208920831155691062924717063564378064040877730916430194740469160177808504625041034811524804366027106755844341884736050073084551157864102343013901169608085305509159629512792605710288101944486003020364878158617434803073391766870533329957794236385523408268637985741721493331734995935109892967510652051999045332379934772514161452668885205983568209491513473068625516347707081338799853991185362364514226579743528538541302519237670639589034975199864086449984373703308800959171935156858088672579965709329692666936098745412103969034521140455626488190340281278635375261841973771172661232932528870764879760803962186049911591986171623800940946189912913898602528331235716190961379055984169108463256265014104937673555189485131562112332041931059960390661044842193135120178020291871209708389564012738556355102372513352508624579970885349013767843473713382228671569923805263803885317025629894420279334939085661913359465640181926752980827864880530801542764183094603548372000871453222457981426744129597003230795375031756916128047122438867606854728744122898184111725399608085594056135822892916050374103047103912126635902736291538029000687154335639985547423033564706739518365283221275769026789881216145670043115785970392785168604110682712207818965069671704019111715395485691859178792129504463667236093021873167591955299609842568640916021358007775279544377896940330932296914726668541025604348812653768659130697260649072401049765837406575182541695776571015491613802022452585374405327309495652337837594331151326440606057850860325649073725597725902132595140296806211607497994201866183347526675390891690739069099849517877243692714883431079404740545148083412198357037518866774016735225770383857329047695522546376075886211715594746502906704493973458713147047644161387417113844029064479851515973607775817151679674088802660413015355514424477720999942257248896563685892911398249857511404310283602973846428286624297818146332902444025597647700452443219979272837279582372113749901242171296632813082707502947289996947086513668377281611710810782292485353273518183180280918816263213087760660049282828436640887295940080346140463544847798979137677388874998002472969519054226977068646585819224110768626751185476073172040412869176567901008215546694421708131982829549574300380463018983886478110179725390577726838700844976445916623665008954899843022167629090827589088414856499632855205234824744882811220842805047665392032068857762790268118325652249190982009676222202416448683608997503870725062545519891197117585816780487485261722132163065793686757108779815648982073497681119609960243165999164970458242735898753780674865820172579187805435960445353359883040649450587305174257275445400920989520535523930072567882047251304587414752070231668493095488117159281319250439810905441214206499420780031720881129457080782652563349137491234329426802375996991500905976362676607438929420736779314663971156147358182802437842546146330605385861718784224679671025691332427254070551737255202146743482854421228542704629237667688225607656808608874331284675579614805459051927205091164946915273103763317136451952587905918566271385680521214898792285916639097117318177308872056602394827152756728272588171451056454927221619415297679666456975564825082724703015677454523367751078896523181441916945520539359216854805299675832586129008521455281386753818546205945993225234899614701929790253355752135892757793693888540067295167668590981709528766724063640089382331962715273048341647383491868373710223954822394214257347142164058061337282839616831531750617114604468443514010828993999065398676989951072735918227670097865259678520297768329341387052726782639383320636657054248282835908277369590795774484390108926665819555623639357261604319654313379741351352307251213391396184286327646117061424588044218382901324464752626128284330021940881204334722818553251691900571423089395990433571176863685500184902176088553013283648673900883582999468740395872767576751906454838567042411357509460555737683985888603409534196594774169366248100117056536893008877849881564354675962360512437272248190996863021759833663573533540189236387264044188710035171870958442006157716729282641499103815892717076393627477694266798826497504508788604903440730170815883986186074303448406131768539233047908217653355820336401442622111410999770109352520260262185035011450282474956516269426808062151199545867363221223734954842549088385528343592138597885700552585802735043630858105440757665359937223773303314080635881273124909252381304242188040626217881311252605529454665330117949769598756314450875431296139644249813474342421397938853988279291424171541211810563293039396917000951082787310864972815658936903484460019528820803586215923042641291955645662745561848610413821255201349174676744481498339767928632371267701620526483560503437914939264890740290577913444424985394652011841045242960875989784177081861185238379023023928977103866057280035973159648918983896224166081401935818920584903913088058128402555987760121152899991809514549126467479965959725917835884006923238485640164234775273140918776227266277949704141420304102301631811583297188765607515372357341677148931221532456043177282503166786593994553541001188787569795350080108515931261339740355215505584805429458835419163119964135628095577589689619474379836750205722120969846795292418168392387090115925432912338156080690049599679266490093156474773472011982401316877722315398707116321783191849964875266843068225545656446943725194610946339424656951589854401641532549392502077966912376849011299131156522048357460166364718030871255171738122243816243412937815986917532811929104875460256827103272311343188939548442290177769799517380438953976784970888392067967785200093091536245796988471432084294520092401830047416728559813387717528863995029803895608674116473951239072632050643190977716408140368634224615940694979935726457900448564587038665761219615613376740009890045406645093073824267037705227726743362653269051760318286376108869075080898056541531507573675456208544435380163669527060040518218624063791363417464776535060885767401941972433463540236309506765555563096319906266265331555895232865015731176282734535041021475746627883925187093458790937975092084095930609416940992624574066002870534074072996361189029041431660693861137263030415922884946576544594388146644431794946060793462353855554318628142114843501323317619205933981885047102390216305431544600641245200811899077766698530262651723794324999291325872955804661516125816053054126459299747281972507127638673447408957405830044739286702420068540691313071513500314754456886828105680921541077064373455253579244002398115391105825327602476124847764749839076548250637382399847990861658801843753004360624506293477418969449338351359365318545044230106359034383587237870156946633545850062231778160132478587219128707689513004476612204446256662863728087871979954566611955985887294612062606388936474470071816189192479152049789428824665822341553982119342305662754674454635888368452187183594110228774650970600510973752702484206501475939237766591073115829709771061256552809540734478809900865211440097694654554437897722819863671458263436521521898285649816560368027445331525423096073105929311985159487838574294943483936267137734870335625267675033895626566827936297194609524520664615191399304660419054837474770989272140834137858270482914708050046332480570104848402817460229576102613321059104062492682195434016229052030686402371541266220996884076664095990494793177222172275174892840578834581843830894578958610989768294453929293114601325382903499056013914167100326374700626323511313779355383373514472705939938141260914728382080520385412744415760017591253252027293642783495484779367164230389067843464140197140148512842854088156447487383769337322431657784008073279113152264691794334258206284846520292935412973240323038193392957871281185589544307890133859321541463559739108517411172382463574296505865930374941413271404480851142883874943654646733150504176728772901105777919530387757323357744849276224081781720444759337123525745049257510520802535211547227800227390118686425105491036560124556479851728507105270836107022061209586140269558606560104303669153807238807809465791403683228865696331297908383652175545560491723597727669744520687046010403705006335971295820890170578781733496560980185434266859484821931080709628272529214914948661271899287565449749629829154207784977725390807769407340379044550775940186691908295992795981418522989127290310015235539166433929233619094854954182658459737631558542544123687368098384111180552270742300809855460486826684324221451818332596474695412392600043489109264656415019246817376846903162209569145909803949823626404025985826490940337494874077834004249672719755825122796135565372856187519943118851709798328736159272258954922648193695209101591561464263917476964702009743919050707763512293450161535803744559226905616719810538452251773404458171120114548297010875479012254641328644024263850981683651992048880775798674406891753558291797733680665766194548441404049852433338505292489316373087192741824423540491453271254687493943952672947841404026605686943991341738339118668894006200814740375311659860978352332626232099144676342985435669569121882725722286815483941806209809287107704586821442861976261614954458952382345477634393032952961497617883474796797809739735322117955470945117598850848941007706559034889169706612086203238202139748288566735496148990761395898954272656221014879102223550185673873475929067951091970585442814229784150720068056784305697309974190339361717104993261584810787027597797437342867775511502992812399630662911417813582898075012369224611845025242601592095787013033507484151181135688985379057864300574392572372569453473004020675515848370670898854893246872182061271503278489080925418262291207580030884656945771165229782730970723488598522806568727223232554263682274587241559919521624636571020160764630509994507266328371609975608430735799231288069371515477799975735440636768004566593646385810962669701507672958399332340054746883438451833574640082631093993626766108290852220095888841131045358876869862009939545350596296646489367764881854486900869214147766715696290146378599869949094757739334339952968530607345437072277943380585555178419599546503533902795302686978626630385179449941643194315488486544757122538466748246483663191702287978929567684816680382856027421251747229954200532194433937894021345723595255774352955850624101545034006526912644971121266315884174442869789190487967807190333069233928025145865585099437918941320831878252677398407880812149631401371523088852717200360146251986532397350341071522248749019033340339652787711126711167537332657999460956506188371631776993947284015277677104618211230938029954478345988163163653461154968395147271000235454612202274384812536802724417081108141940722694279611475867405806879249307938538300600824652491576279157535691535931576069961587249921993431911122410311037638659163474706299850662254306556066614889091241081165270746153811749389441642008683846080186281451837376878777148929596424190799167591692332727992214708812240945665853065243344337027079825668109250013354298147209075827426491582653493527344207433880419765741326500068889650766401549955336329727393879380853077564931200187694926033373335577558198900370037198259873998669638758565140909061672487590633284488067053992729738581325709590665974457210408462914749339961047108606573681516973561808349852480312901438918499356661876886670959389534437710525064174328328981951934396338603792487732510139288646657411414543162914161281329044266379389243853853923458864927369550335704075595799602815944359645441264412271585272444659814812627941624720940920559240257254204767741189241645840109347376042760345413563315041755443196352690619022417330658216773506905975686531000500449336566828946126679615473516000050098132567501433744878972140105907302226364080065186313893885244724247273965118357228679769490017294139042404884584365143136084157099324284414311389117178750044295249125507845877496320401076516954557009053889400911149609139434228462405976672491766989946422427444824444345378690874363885052446222429377098045922254327579553489710474244270375934557313116576045954845971428593988443167567898155473637327978292895131160722278497510304829534134203874264058663703218373816551378486994088542648471882042756785231230565545213770537520428212687101544542190881021607443771163077287804519495435104342707442201743773143567994831251072407438184779941668677550258062026545146678007680343188891837911488648584444008812543947049142829305111739481249372853590122095798536349802482522883574430928435731421856102696715972127406069862705541942293970159108521031509019579465082570617265555338677575573476385454007695067437619444866193356568799358459416417739318315456773449440868469050641667528759976927054849766294923129795732810597961148081210630549102199765396124323290079727010836130011834015113537795348434963577989161745425914661938346862776356706432703761727123150318817046441817778116753878431016698134532513960271524990824159999349000161704988173881237758533983035518883971555016831729057456138975424029558428869443121052349642751546520809810867326751015202193319003354630999689611431060466548145715309621142821827872606197006813424801702327724358092637901414018128246765344399730602393845009091629614816928424220418540297983453904975064413517268829270804911610974020105038698438684694466111919398914932204937964303752955148981523688037692953178871761518574601536518335844448938766907946350899092496452822785494697604740470414540582474051283957957405920500877049545370279421901075995229225424347290697995201074517839694527390339201175446813742803219814685311301011273952565733258890951566914599303884990650464139072103633425770612170684655389397971031693085968785009663103505613212214500833561790035274562542065873659830507891232364102756421055632838311744348478030343834602053732784081257583727552746490194131856831865899894215581396328548285680177277506839032172590519730513824390747393982668726778123166718578091458521548725786408598721516211205603979961730241836789907996996315174649785149300158073312252313606025866587895680111183619619616505909965111532687964969618694135003608920149726045048994157101502566562453113524616887424804404266248562063666153381637941363212758320022394581215744290308080683541764328418860452049499707153342913616393731036200401386955250009918241403929598790128499366229795690699414350952999777900929103541049295780739515849544354203368802732717043652839360294977877508340005730070243847817435476675638358538642110132293026039717504415723305673483723750528526047881672433539370328323495218779865280999551315605388161196365461263908690580202436710376232213431125224525664329762861743982109048710359388228241977869550786528134274809365853092987003542791932234312079298766111753741337912156222974088783288274617684159562979305491290087069775753533111665993106285219057290515554927481971470583588958044485434122820715856919722958728450016892858789377176226167747923724577044874416405703641847466176793543984179200858059348482500927521405749109286508866259056368495606162301188881368540640845670548338726876013899964732640344232843692107429891364505017586551550341392673025105870074257339827743489635555632227580660499825331652576791203500162722032072583541627426960894512499118783781087260400628672126404927154013165282517265334937917451481616211310816527253507391355356886530846233498381536679527665560729065204370551358039268666322336488250124235499043463705042001807509842112939392193136932389973163134051933864596074806940476356820633073979716850717788658436668578028825717117691799370603994281408790865689597033594321043737803176169245398789188005909755015708442824373398810821676414405271795760092850890299699532276600593131132721462166274498598376717057850428243058914296109759955704079594538867605556289365965608491193103194882200942177812357897659420887215759036648122392001867160922296785571924142489826444636298583396954735570221515005839604379982506388892495460885795087827932991179246938646660102630658823429543654633022366953531217786993210879207596812856409887213686658319541521413116293200179797317614854043776528120341425639623634693172481446053374183639122336199146913350684304346199948318665008192647996774203020583353710251746172184244781174459146844586872913155325483582158316561624105787157567933010500775597707243742578415282639232260410937959738085242357141027159298233898247702930025236259608952967914480043452592524010274196158025286953366794863788207852589714126057776631703043055820437133164306772781334622609013456719294471611461552204243957541273190213336732757341795592138422016202865416162688026132417927580791902634860261528200360993560115051927566078418531599519960547729199973554542888604513962950960271458357373526370462270338347739039560976113976959055865209633132205989625384473106498801439525900931048200050994119250620386165161569930970101795367925062873346987787794741779209764027139996259738187998900001055104914721031858630099497314970221929581997130526783843835838630433696186060793204700257456331845741953546660440713615485876211105836673311585131387464687081278901572083932315231501685598339152913523834300005074550539790108158112879162880859536510144591381130333400559224322042992596433448022387036094448365048147995515056352836221151800189035710821414518659456130531874590455647224133971293991104389884386217018874848964181002787439381340112732648556907965464096926677738554481128048944078393499979071869221541143066374013197006861476175877697863873903867782904391472587142547597424117677115333103114691750902215054309721468663791330738674994752264875125393074919175902115122555235211701410325506482378445440987851156694293677121941316543866007242422645609296020591150552831307012947813199449267142327504702076468002749836699461858164087218507539658687468615372713784178240531609052275465342597288226944330600401100786646152594593154304563456230841349767998187924929925422186674807866285837279003970403095870731286325708292753401580806786363193873120224694277822023333280433371434542470796872955924038977620162846666215824700129103588093181718223335519727893783391684351506161980261745385823011488117682482170931460712699581346750736005635624721274348717373144179014854433735800343378677756342544066629562037079537692477803495818711414003428392353753318422060141119363250446926294944139163302502466142973779032285097972271870322579686997265914809640944503395696966762245528319516588457865052781171031743646635178201197458990970761757679449845423493701183231710167299114775454895138743812034302867250076486803195777388148891665233575424996769515059710435069689966564654459332038873960774733120341754660280914496368292837357635933613766542776803122934427575380068957796476416304336027180496227322429273148509629970365835818218176836415873091078759302118087896059881610184033264227588767517344443982282678809013590933442708153215566029742967853255697412753741132077928884233216856202675393988941141068549723963274355920212162862168907356918134514578141522698694327532052429167311526213579224120806582650777637110385625937140877053263844324970395818694351069366265965583087411341045275334867616307457593577016097144723292092759940606113142863986649791299862401336316912013675352773885393335672886959002657324357331535527072009636652218171106970041109921324528498511875608623752543401852645117563434856864235453306980098696660839800679831593490059401933499241599038628755495214783908812048095915257774754015425272778856977550523890837038540850579499004502926661487516398249833681658309851183285904476493277415444275020326986155103012518817311934524626974829616005884415791973377713563327876985404477703204040329253959890143570919007777484085968058444941942160989120591464605537083916048960845526464011223693789846952684769530646202647880422838489205083703812226581198128363265975151253874751097655676474706574173993319346695726193915616450147040889141341424553207369939581033521327969748392856694741709454456801611295225495810069214214693659140236902137534073792463012040588057473865705058873913570938909125769639269572282163147514151372259487383356910983515497008847585375976743544580494911845269531708862542478664530868328994982653710349620860246869464519482877935759388531494625779699784512374093382085380413723962397585817011980909216657263896162495245262991769007494509248627568729766374525804005695259890281864669605968454073945487224952032308375599394833393967970742854698082559338760557115835630597394095479191944331212910167108934193375004820066729951446716512687744409182071520761511614572103485658903156818716119300146029353267043216827750939406817269870771850878189634443371721176416398051555711378816145459066477460154070872096614133444280956167789685201743115540409721115974602835195837713591698564112317040790362667149718257730806644212010229592116983497490595190279842575591797294091910702610833219727290200152377765436661890419684315672834822657279394807022406838090605732481971686539314701180536824656174490949263689335346716600899523811294012458532622963097191669269787832017457365581490387463252977119092860086698300195438258223926951275828386760715471444967678386018164984697396513680452115915298103840634070849522273327578466218928310820538071913142702914633958034992489968694828158315631761938319594386753274785015571867252132406603813094058772445591173028620559193243295392604215427415360975094220819418759087883638982020266416659698893496524249582327496549108652116958516626373751616069670483835583840209073898058826777269959093093689078356176544984547353623183580007250709033161152473186412598702844861774522905173040270859053296989403369377869443081276916746642011572794568640157435033178372651304262489367699695548070076857581489193018516313124939739172834912097008241167249894618995534705676233710522959683471454576984121351859566700854813866014415901392557671478909027639500016603498573073896680302776201564633870092669950556615708675731365891579395592430123769274707807689028160829864927670912384206956995579104346355795089067028531874561296378296557541849949084631265366592232243891820002901666297411732001761333192446525612130834696005212958924757238949472555898626040079104271777156604945171660180970648929519810567070074573359536329981806819737415621069073657030593099587816605691812805800552275338176906079449941027913498909269683752665264213701358407961691361961497176683432337348517595021579707719870637352257462418905250855798335278490853045874901695403069103817151693058524692752666563565971683577098686400226510969416818860321561310262172363539440899831101317791746526568197177485417233297242980608068973465145038960151650079931898629379546010686317661881083883286385145390569836251464208066666146510114900196151483741657831036466717435960885812306645163648890823244851264826230245978715786490984231544518126492795544495320928427149356668081273161983287109410686664576253808835459241610180616132187849383738024842173279770589768142428933941233329146474150645678847680598604914678773990166116744569090718420250381031390123051511370873331489961267703147415085329108699821552998046774374062422929589695238569892747171827342445449437302112718804555193671354820463192441459406422824569322925784092814845556607750362204104058880149135535173497747826276677639267780728745700058089536836170880460595254521615556368621298450634843976080072314803403975407726602102939990040856404832524325422363769111941262971483227020312621723890339328290514837757330712339938526309990093866246452757068865149360060218783621113436163491502018196585329249291072261860014291862108340343333532218310352952218902693333683759055724972038971027810389770245415807304014877176724809432942389687974414990558925723436576501859183354140147031993438337824227482235709288152562045972964201036971734628257450825884835410163058606568328435696030566606985485751456126199901420432209137393417739121767025774462928495827711037118581463867197415969782146911456094906045600381495313880712119380890790492056703490086482196942667352306404111539938749391330480207702378448542654370939651485870924144799029641033017668296465644539471385561618807765917442941260032539988808531529081767611931109148094296343506468562233489335330304973205859408935911051489479468410873080673366365838641630500752255793979217214937071811332536889977908583152169196233974219502144582227045066446211700875459071501214064222446808205096037133370676528597720992093207017234748899118116790777565324004172750875691354668081379746959528753154494083653158132804319890520799624913716593740394170584563958693306459928026709660323982928714581553281578333914287999609032474653259092657764537991663879479302235266124872207626708691876010192016473396956894404252199774660062805847181648796506152062562216007207863283023939211210622557301362648011822387125062062086564734358225662689868219280458937079238920006844368954074478144637584076603442541175659668807050827747765150646933016641673869183092343325771493680382197656641665790164984252094280635823589371390201431300296880778366687879284215990853144912198221345143234021622167267241212782507428521516128563955358700826949223717546020329312696259466440121646212149372055174259790702765092017412085641133290333780352501300272699535237007790377832303097017568371374196264648262687909730753254450509969487988709182136992393048890652908062961388507033475763312220733360608180251445577151944041332224158542173640745716539945031593703800506123622296183719572868100296724990357223695557814951139409604973092521035611805965271573938285000800348311726255102516418295584143191966588237435058952209516541118635156723582017357075365126503868310984315988796938847290979835121267211593637141081098008793535855311424755618976963015916337224752077746092055237175363687633442625535996734365892341472076564751968820227343556573241027011920074236090663946026349936132026075580905332284079432781955209427396272788964585925184269121522494219191947197923271604676372784914060235393862687658948685893704860333454126870457971383922067577493936893527881533647062464018143224534343556099414778617136157074148912673661319180586287899986003131990652970732507328485402121056084935675887038412796975652973934063885294918906748630368440933652946225595925637152251063539644124102204740820939465346014583522199644778213767265845623904007918903404454286370933665218118443422929823706704428677201336559369472515047072161201164063185229597640202102062658180015862212581426819105230048972709346717384443854910180625884296027842329176202173262778747507290412110626744571994359755532706829408578985441965086213868419237486994047337106396711730740751965019379540088461986888923471053913795193169907633982147426887828239983925250333897056472629746420980522439249483110645940090771921699279505596597899492065782620033716905993116982696910442199959912649696729755520876651069860157114068649081176161778955986190138638069941093127994306537552579044792464006764808868224642829176857434622861987941206672632181913479070245846358067052162657298844154080635173102851703410265060081121522010623082662573278793257888456463956790642518948833382354114405280569916724907981914384063910609246016109399318282051387300183349100446981019875808970670447627779547619198794888525462461202784498535331061161970707425425152159933034808314397391867581497193452132644687011590544679297142985891036740501520549741725898726232944732931064866420406300237386031332375331946308701406138680775710032262625573694506471296862911752402420773914221988602899745101134539496885633170577393939603097395751738760382697809133535478692999792766970297744542582205791177852175792635564533149333423286797824861139653611710089824646526895101664187145190842973757518600959237765582233045637333058250237422447904572748001249943591479700722228998618314091475354738700166323237729821216601842178166290174851554512866705200580029251069119724353459332102470969762748821536391428831889502838958876692280124497659246331417092132391215318508994556303531800787300092246337091462605549442527685967412259816501243264053036516276697245392477266140163047656946638464327034201335238237180205063059334240551628126361785303354116384393575006944230893529689833430367071103883070820186081772407012531938679803219049786250314212133492764427734635979303189420714001239405627493533569244958458737245106806472109165480253163627642476353415713140227630365565500101992951735810600779848873952321320584620430463838192682235751962296532660771914678182204075700503924234172217404101420665045899839687130493846086719064447469001136205987822537736603090435507019504877969582095093423622319882360810392862079962114042408599856388733329828306978144974664583324508610817080460606878233887206949304850183068973438238990744979186994951686416842194817164724874492592956240250014742013171997794934883894247921786914287282847347797694760289146816147142311143363729737677690224105436246296577438955593245739908265288803772768324904337255495433205210058448981704789961946432508016080962942268745013802056590785276931906970076608132916770629743555405943301128921391985380540608683160835091335401041540596721345622538203953706342935091418959631117583997397330004718458262183804397559681830838122317316886403012097723581469052761938203541171357620895733924950926803885138916985075285241461120966387596496821335882104482481387206836274792802835135062642535750526453157626322875935097078715653765886010224030842240443940019627641538415508106895833474727897657261702723735107537843317704854524712286856603001708232901089848855614195877215492303884059566229455139842755257259397544191756776927769890691909002641003703725710626417013139069270037380984780924747272320389577649056129954379893041793869110402857759540603057709459241820687888469853704159674598456126288858380722660521970148618048882307327263930234267339619837842336232327182030274713034049846088003295119374707776362922368000220142413750296637868804485214124801874899083514459791021926018037693122034408589624339104558341073585760866663634933059753243360791942376189683901942800772140311420188511671219280151711374482008351609614614895769116252596170490318135830199329984192402875957850713335061267777617776256143336688573515537184437787811627630537558100510091378321103735070109714094051166955918204938832857918752996745649755693780993503986711322181262410060890664983536437277864465387958305213747200815233996059271581103492083030160517857385826761766845537616128321697124476243330694254297174977511874369011988782772399948248801550974627729216374458992872530536739341818037014971237099919962057443226924714366841434569841100780477353156922255427259459092572916758562257300057332549500012558598556080401971395111813270828452539657314030275616710778416689080806238774952577048956567422638858195562938995143796763508201784445132731432977610994662571523700066618572259285208046223956991166805554928542813614982729918981784628430477914450797278393039953351845414583013984587868484683742276592531641455130435039113229141481527423222530546396209549975235443153661643583212847093423143059164350724315680080248587090637717022011960111092178809192009309860930105646708249502100574796722502052883320938884650797445763995738534310610150411698840147767521650429761159656885950069846432161269802977456529680489017798332933156281739914551486182161055085368026475684995987055970663855798765977298889670257163834232212793296160163344823242786260781497283741637387590029919054176511031357999889379020054560240226147500802351767427243962040542924424849475098032038441214099398426646677107118501681897198070536895237042773256031704017099814508377775828658694717608300727927612723576105704632146214345658657651292328871296545999749320247433764915755609404885348807391111971820956193879929423146604314786005103552400973063235470937167152819619745185684218960737850163449241700371309702283610060113513801562504568937039339099377786597543907526266254457342080305783732963508711063511952987085085073934293621735723205069290451757762319507365065963484920921248392291372929212522711974979647762261642323021615764900319483084345096782269149636758739146571916961473318219602640513958963288873739123209733696721039433657390499922571662192502106484437992461384181708116115344755303267672265112951075168391968999428827746705080529586846113132543035689176614667453422341062026694139066715775316480492425817997729637490107117668371288938637431088708505079535639625650979219372071116314107612279193398044626707553885657472525108832484620568422468103652292329540649925591478108398794846571995892652594127632907543240679656524656239163221319761862138694707687865042884182103438768459755446914720903633640294114069080111977389510202014298481507101365808103313900224631984599937227337590515189494125974371301484331936817026957847675885459904037219424263569769078411955855810030595457255967115944026584678635876456724299819889200009006667970472247962218269898910073050496264063101104327459645097637223836032414161973358921755729232784246481630458263588565114566182773130847712110316999044711743505039788431547545056683924931667240546210122118562529914132433418073115317599068668096270358982451700699001232332651458803103571024301051185890382835504203798973954715083608561519691552853503703202685172859679156549868952856717403671532821823233473687368042195584273574796312192872575534867098330683099250297454911234395303670858997061358252439998675927044712256786293590382417103500982818435602017710609419730487375536221482007851756582882184328127840229760035401523531510790442682173320547423251413691072810847916084962336093433103563743011540703902353974099669872644573510571618802847045804979699586909660252792981029340570123255144780739300748841538786451944690473289131698550010526938413824100240340874929465173697559883911951905144375582825150885494083796732571690141385780361636323134035466645965792406903424168580017217537068754444713892756585039444588538047031295787216438966223328273446278988116901922012939793837414285073492496722443626917353027292834728810473160946221660911386835582976812761381490601031098391944386569135590102894635555853768466485421660867998426275434273747171689318932154267837973657587494736695099128284957616030047925364119638574364901683185767933487772989062048593252743991263427517826291177762814842667904480188169043595719026908931282301664830008124632578024243758865051607916225152436963171608015136723298974088576427030391636746135871920331193318281648362715095579721540238866452212780533126614232018832445085961418776543862202493291693795028684377917207266883755171225986459324207971163439268695379863017537992659859435055711025571651803241442431036843984397444043518441710453540186392088994035331179889960940542088267625342800233147738729963101013767287973611198434539594440353245002909317999730534303070315712615146045080201325101990822498505862946367394339860460721875928477868777746585275300265127553681999751610025278649755419584314204456178187093533464640845580881186407148508220014417508337131480857178411315040265828082519170463459524349353814153995051029497354265042568816657572838547851339248264051783012127203407622932179623523851413797954977670801482418074205357354983015209566030603005089157201674637479604629328582853280254477398391337213379885880366644316313406783189432652574254160159924264563772962342042975683662290670967867961556540524312571766761462693184926421090648886043282164770769539494742269254568446477114706719485596029207720224878843223849445944361582133917518898758533604009092414378989021410804324790547452930588579908853652090072744296292644659734823357316279866030084464330770812948075217198727344235675281705783644500584017636475951103785557462028325125085486587440710775921581919007942480232093371950668182573554709845719990264635329879611753313734927798208051383714613316009981894963232441901963768942216662084754681897374971354722893670808457824832135739819728532238269820692520119217385844095472393509894636874772288281940766750542341926137977668108985383168507204393216809665961970105044517570086049090305969559786243941219636728317418531436625856756105108829373144750491094969890194494738383809222137066459912071312281619289855233080429022900049740850979537262476765505074713338218010258284449226446069805708934323908320365315533814029475950555548185631870753971600537529211660980311470197742360112342168202976886249307784698992682410770495372207915280016995661711401225740070134511365510612675398442616993291778966178570781489323718348227585766263503476992061357041269555260137502352239889192034305660288973350181302847296413556644653569904749285235455218359816329186529412544192594115491986671322024334689502105260884711200828534263787184904091980041511110821319262979621917444676391530789438837815300716956696284261965354833665569030862067193106460416746795177015140880981674845569978125347138386415853665149348760983195504076946966542852497167058584292259774533884907037657826965561173344478086373909788882553860132188340842332422124751785944568648182902688584146993125461935413410112445008585263915676091403690958334497211635347668848762690949588938783582364697525143037044665340549985531955286072672950554632352617501305099367768486482162280555637658173005647521034703769789684622823768125979650996368419082452912308663915565461064031772635598826286058435070807936253239319432513508715537854382970138047137232110297999962148066086712695020962446797241551482395974658273258573799170005647467803374595867175409811998017631937575656679202471462732012582257389187862048353158850643283751853627819127012029524930131504397402047474869775454874081375432216474948701482154540347835015320098080368291875037762073020908943201767276554613788175578139458337612474706526663069779452754713152170941137515595455980822031787150683001479840469247730856605306494589676870937492227973066154956481809859677453640246743832221724199684216229180754790519014838509824653950219197907661586299934723139105662438384200415327304529821108272759169937739950262288153520893724099399590593019204888165245130064578805184820885083800122003720523095438082771611669975973331569317300339748321635192839839840610415623097239421581612319992228664325669604752719501939961097020368259413172758181114639097341420190231445920376802755032140561808638554950940203262016191403725506811488235025854314689910968740144755101682849959258856793136632188681765352173033068621713570888881139372637346988568716449028470619206248931432932219427214865631691654478534228557932350034329125125112592769980965512702760372026027452064389675041377508596648490105514245143096129408762499224397531205732473799090976735285353880997488806810078223784174121557206723328071130813279132102650222471990868028930009394035225805143258392745104886277997880910467201054514549034847550173654672534610075526511821428416850662900361991819388635898280668143240519478863166695588246345582796637172437214413070839215704998238913159375581379536026067421264113257709012184074736494701588570048403272581684960825220490350063841402171876822079970648363400064368268911520173973164522323657528968237744397900949417465945233210211684263419017067507588228822489790314167054169634532048182762099509317967591238705307780815848649628876404021857742524371347265826398616544294501446566672231449797815594284806165050526983981916129902450411577258540399141992203103021903693203329906234260431860448464785710888290918816409220837700096219253332472050159917958258094527686385764275102180627117253537997557730752859657605818276104772163129175723822261206540596356407640931721205638345846708914280237783930945653608920507182180080695470416108720496798575236120757400346428584470880845080346250409891381090216108627216107638884507965441288490792103813392113549168336808713610846040884566671648986329313113548130600105993326447756358618599027982346170443844244608070934072713130452779372815610067850395822373336329026317178710127178016682084474627167567705112961969967098788384455537550345597554979634946192673837218350802418649139573251785492260795078396909934879018023727183690288394979126940543794931989789576141001537125544595609372931887281401068340947354341396950312184750938698387259867813166888509464130810792768891162467402672859868233817733537486725535302185288418745350051779057943437509410745390497246707664071849470441420564330000390507961081378001148720908886736599925023183661442232252243567773402512835473970075425669941942132610865234731245797312142068542849749745854164123845172980388315587271112901422396110883334863556421788913174675977709055616151253356070714200091264426808549915495685714567732843234343314575610450108106207540173755288425531643524494770390414413196890305260406210785078861250893359337619984072854510837869199066575182626267134058250622423215630720830413361100686241248898286012076734202223090479175206840445528516616968612605661176633075536557261716278728511469139279304465805780674973928129017497060692149905930233840738751114329831692962741582276963759257849804926109065350466855265139857532473673529453260561022048796764203191971904491776113788961212284546270201265897514649504994670856771869964172239476905456097948244782336376326061284185411981983892129219470434302852775053187350516206997158940275918981224019119060424042295471161411399178727065914116881603217621194985961838490279357160471441290945690502966323930163449331930214417400626662822368601605090530974769247126342876188504476432876240957899654730510573902910175366240242482676300691501798355480467084614518464026420736193030530144991029620172571324638936565346011135744548052216312564118588957060483122830945040162326823843495243065144510095609097023990062904700185562945299674346117268958240634608853910102875479207829094099678279280485274014039911388927913964699840975307072383929500306467722349618592148421023619233765961698279101999774201873943669459875914917129108775126524076159715053573046524906026485219454431216564658021225631109730393978068154483665523292603315524384931696405387060534718181329721149875832298879053222870245413936104795551822761172986303259438577772095349422108206230707206702619813124591672574409444603279267094150515971445365520486003455472761454032462223142341730741277225836085828316329440842557575322986798931385113012929064578468327184663683908635854991099373822358536524672700321991555002013858221439316015163059533918621342249421742187555197095926356150691901764748158581138841477503570088446515134033991542181638951154201090939539530543830708869091380250673364054189209332523095606102024056100321918908516351059404004090825464277725035821695977914592755584244925143506500377920314120984906933540890205280891047084033184102612927450915422385269082514722914568602311743828595372809920892903450037272150274613903705460012037422288939411836673662697847148749907058972345500931021470586333945937412971595146313016087194683556690700813452935026084211117138596640317159783108889979236361639050190661809363378636401838897699174463639887617038031282341226377087505188886771395772312449136355514925520818240623064309910188696125957604967100189673624864792250384543173736147453453954282661499154515751979975528831138883906578348529004128578222267758190896261746121939531665749717622140539629654384702848858133150319045826103082831560755529994395585209757400652079492453018587759742719341843464967630717180844106458543606277043556707684123442437801208774562339002698658513943873147920359278743215626205336606857207941178531665916701683582715150179285225251252995977414516554455907600735137714603966561894221205738807306932779557680253835282367869166323781543051808612148943165950584303912069108108775823293077700875261442109621654749216316143722524392706230921145749658643528806803527994844266782946191962845263483832965182439232674739197982847124189603306042609371205165226259130891329489469427562781837914500901057035852857514475950140862301774657795435545404982705445563639575861183685001699988478791848394932809278525883845778420396046435293588891251921855988509104369912774075354183461051456635835407080577067218779313268905619540189610182966568014291325893876325554981246444006711185118363385667978751676711421894442007348634546819368313022383252246175123327494696054033342835714242534801265318281765869596786087044937652695311760612409049017392868393437541173428569139209187737504029251677304536963854999219728437075563810779300009146093336264667178538464919252757958333587125409757494692162674510991654991433688102682874632998434190140736111066815188005465110186228668742795549808785806701943960408820557252300505297640566499232702662259023404233511901111896053444894320011859755966714692392615971141195022305936440044368723147158263704975450755243479529913090368187677955462283795174219298503452100473102816056745041598630702743408910163201098297444215805217748284225453725279499108914395511478790243099098389781622867658520040641734628022592653476545328616930464392863110210957698267758895849332697043798508407767122826770426843890188623548328080720090590660303118430882426129337915400011957033286991326664545456544874825082755981022066865186158411217640690328730777693508406177697888541355813903851323134374576081739351587026269086102280504219181207678021684882517362036778199151418359601956358990167976455869525091786700343003453427314907973463227026671136801599958695796221897584618805606074367518184281147821538246868174088017407555431297842200385777603294769480175769505888323172768856060621954586758353299736686910401904971663632341339333804409967006825670606134455633866504209499089386986921980946086303779681299297915546826338699118763777914585224454018147929966841585444359347920760867193741702816762167084560460354590833169148344769649516514624628140951681859738497246933634795538418399542016909589120833796533497619258664320497421999108641636234471922072198357045133314706419840631658525834080446619345233451625763878954918081147242993371080630069698959123023546025483466613136483677810668489303850144459522878979128917160259961344002337991080486155186063868686766933040208732117016916322406594563118292449718696283339391624995507305748236882855377754430287606083730207123565056673321578914309470589700448849027817991064032876210998371406430914345054573790848984007375600627889248059168157303822477352448044135703336417049104614163942414350511953073107362213245721781158619922162590264357714003997679109015010935846740338388477779783008362059411773270021479568250256380632125504157606749472435193258075066390890532148762147901394153405770610795182479364161963076733936013968283471230822347802265668707507295414268583732383259834811146438081451556800099083153575581320306915406007081457987909324667279908646558492635951394079062032202367395040172648883111565668843499396098029210256183433765399218726979564572790600189752047446555400517210747575390771441085729099659826110776047836445923436979912060072106667452008050949496730268805284447382689643887698553607981346788296339200971151856474047675279939514704902317880676444763307572151507744773830933483827537930486084408018116564043388823230247327167482927667471069436267261967643044564056650076083365912102428580919274916454454281204934599598475582685894582868880674301719505012469080121245101015736305559609435985335924850962323260945436912560599865417375927929474587951844112524642519700583139278376029643868978810474141858295977316455436756073291178953726038270147094718058145334467501379727601267516644491752160558019084211531976164322362452617415141759472730617196306774081915775201911521186776724217668426817152679339657589240710217211796162652108287815139790757527546378211429171353638335551505865602279746923178646846353579278717833361429270296474542224757446632671393729549265938272158263118677249678443921547244184510704907865122940227206713744042086751815090364166836794585696122208143681955854613944533367809552520797850259152102475821457949320752691003796107733574040749436235319686386930832237862412564820337956206130414060226138499505220647832781108600305819992050596265033230621181400214074709324571990004553104790329602967509330475216333206650511757459968335897409465660482422667087590320952054866419959746227177415832504478381480043473506759000006036120823700991248010126432236793651295910143924470360247606856165559312918960791747910681892949239055222035004526663527398059782126285167265514630829294460544139568481062922228867891793494713693935981458562718959263660636808514570051945228075901875493466999219562039247675542311847581419223049833320039276430922815606569397902113309752998586734275052630801736715853117316762347477454096227622445525829802626526692181845598607925579473095969990100108102056843912672982606221169886271657686402366010288004985049966409914107563640967091125467635894967605278068577423423318354546168221689005335557577589073966530622523305824008850233151088627507747763748631204262390335336809290862115722069942581619682290156008677769100970379804802060038995140539988129664554694063252385931349325396585635459713254658587466616731701471350133411739483130629373040362405198971229657795846808529956093870620232856278145340841318278043078180992320278096397963752817068124697268225027965420739667463972218276947301563737889308926660169658920034195310044087765965730127929132334690638367857140656257861395652227677723330360124388451330788391387884509943974256390315402800953114985804271490754897588729162168347476553125741003615391553156447109010641101457355848141869614925848206437400129325171482309804710902941949578445927146482090893470568923729553329257738398568231206774265846849425265175536512719575262570473406560980114708541121138852536510675846386761844688274063209281236809141139408614318111850524533552883517537953847627807619465901599784400405742942168889058994415727973950438442163925544112144296304151315008813374313307000526206002565903889215996027549485407354276944228567251612890185840085720945951920629612769969684681942153057944879304380023850331630948754447284096164931353866992975259157927310689804216589674595412535729304063398675695056299480275044824606718587395024765513464569581459411365904872090583105260459000188045741262749338260817040752814493655351970218925527316793862102449382083513894385890732267193863840764955843005270215155764985851619292257602510934558869178987349251898752509146387578084109430703760698975304544288538316186417430889375720656647574666161779061748828824174553802503167237211791273186404691259314925088601627671444134008610470262286682578448396974543700892246133460490726210545959280013662484365828746883880488504005527730177904101126954779066457744635941104877386729269190309015296203492637487102344857924665344719947292145290162984967216786120778208632070121125822084936920294484259892576017661940194588597279440713538820027320201315103142816258365608881228180612813500681220282186778127835856775974440858185446321907975119128982381010515951865921428434753161557667483261280264380052134650331730930006480862185859730501463599371967881572450025603022983465698018353151589216188843572747662209487360394515229629206242134351789868372909108251962576898935727061010385496569406002985878219667041678707321524797122105775199343374666158031485004289800227845694011874189213561670894359622238790082783926403859083638783322250568340723689786518287333531359288800470554924397327162443059953619691741141202831166194526688325834258226669660692150262385585632119618855630884007018697889170273036623340011920420184198666541891561749163442176159309904327408933839036097791418688375395738944250752530242886176829635916947617040905680387205804014208067161022616345540436867909260315024909540858700679667691926315670086674592125854533021364266469254258416143899745518301944592161268483057008720588421971001658844268985191923191939518276506992921445597821123024712314534828351113086786137043434084050966310384556385809259947164397471266833328368104532282369299106263939583502609835513636935124045579523754773548319207600865537204016823967091829879669384107084419692523433320382598840113285700973886338912355823549236863915113441721514977858417697734674050076828375536661150687166549767529535174343211543691514441971400143205769391974446060388499956492110558590396845397236386806979525134983686632151461204070302081389727277143518936302684054831345593332616686744649349769746063616790123432278430937457141068221010388864282979483026059203079017106131332437651251079658114962229753026620219954525305408648681321027552796882878436396550993090822825396455802635178398990617587171904744007609824000169309618171233800587122842661521846149949067424245157849253368622702960497716262946329042450817642838668111088919645016284946546079814870528641917058036703792145878195656065612064310896374412715942216200899925320106373372718081370471184009843461127649502358022825639323961678813041606129705843622444294512702298268077508123888810227829982743394256666383653265104213675903811603487293577763913377363759847336622689963692494447212243155273526485830474802948124146134342731062850829234992696261915228916526508029478332390620282165618509256156181630988951094618747138332200153836089076840298752077616709722808739323678776973443298483839377304159777246789171622597123699351841459751351358512322986787221768188049215801813823004206766181178116747583827345653503577144939000394817003276484173634900811495832676019693135638337862709981172249148597934776226844470200797876576247125891084935096801208218718820650311801520628063433311756187396640566173032327810863881607675455305966011552903783827923986871972930116388714572345165070793516672995493374185110015525813967196098150442898307199848872015153791027523213093559815008014045296110709875625970989132425388790524058469553273156177086311143510296719461590093620700507692445204018520245132747623599771707881860607370029853079571633649388067340496607860851272015420534301280200348870918411402896186495356317069719764257686382319349233884918018678322438419447419320190773844759961996738828427092341369284018295668182588949169303571722281549901019571252992069415913951014754517236190188262439566956731181453449419916778224840099994263013102327617480879693584783875570998069449876067888602845532864128228511771495672454596661581389998313653727374760184099656261161150487150260008811538354595831017745825328010037775722516194991860362415848104092011578986229563963193524854745056891446872861976435023584991155644800860827024488421539164791467072949713658367129608945229165804894852486782012612947569918733991688249179399893448092023788407337647052312996685934052493893984335106435450400363387541977235323360480685099135991739699396238072905770359394921362590641948329886914952785637117739751143717449530937785311495292004779044273128756127531047376272196662028992367372927344462963285219980388751191338352010893438891822851342901465056555745656838669461637607800290891942442422537887567373434074775449493715178445206538215956645688721605779495420428900500222086182063543732668946143611278240612627118183121226864175903173272728349490372775609776236836107148279865093476813307375412464469342096196946894281052374096389826045069051162495220429179045406691524293177578066046527874130094029386137947502538290335410857459313624970468530653825028588414140177289795292031328890321726304323147393381018624384749922416253603667116240847379099905051921545318309953139517120564942307914754624818168771016026547132773488904803870266189109493058018600207104140460135546522442652586467324482594947551637783421555707525356462826850108543147056522214257781650161349552507662092357512498698193237087237411639292036868316891318568309819737582576662331938522624709747749879392897019287671946432173449909000247065581300523811481421387692418650233908469714242838858312728729289303008301459333889923334863900028532555664979809240453215554622125091957268149260503650168426475634601400784140344620770539900292161603001466447553992234355258633197975998057960279741497142245448694485788687645510184749746890020865528839296165102552903693490810732098233408016576003143029347833702222688290360678905815268735163783918784771143836560661105265757517204309767680860287652091034418889807770648732192314500437200361536069242609372589409721150864440993368994760842905033402729026963453587453220430442313820415587002385485680659354804921598706259378902646004206771482960124124217931468353033536850669944911060584286821064681605260506231730076850415178235358543193862780639023608191081629669303604625617240187333630740773477570845211191474736791253969200586298589512430390545070293797009913407443533334650386563255172207757685863012726044820797037951919766345206892169311310335562530454287556572321927509538916790941094085879066411677151838102425191155964132701376021037548520242592030230807187214664280031149273505427378932291742241925448225871345817871343582990922372444155732034234301524832759604788689838606324501524599245783837708755230691171811607207672955591558852087494700610510509353193542605832223460947786651898570516923916530499551760218764881312025319258614475257290670705903074428856764596427086064328225059786416927743627719490353593698524180561333941872879556732339589605309778492157976805001939470205586432640088478964805447421334235876877336712756012721501093433420184768759435708945938069267651191970149904256136476829365984925882621230923971516615349203309015359726967983391705538023115784801466385992928915020901446653476543117504104480623225174635209188839575980401760293564261724024395434616401531020237136847218683111029195783494972924354226883926235996051263314352824473941405722871631424733188613740054326419178547121965577623165966847527753227818279593762487307529774750194814687639115266122639979009740959027497162741342334943291534908350070095619799476979884338651840063255058512361308794551953202264652762976128672780338893603628353655367742988468356576423457242990408755311005949526972301567930673251458851886124193484163760297487962147983085928482903628841217563856864359355743935423457394814084209299307839878965738689566330123250282139625795139422063077340151382677264363685300003450885865262428674963771942968516287674022996874512916337815925779484275065399820139617840566806528707509356922237050220943765813942612273678513034306597468610317832912242216730117980471892081028148481001135140945816005699987001124520107108334050457443974316144596970055309123383614558380704058550330941690311670117183993993770105924073287606038622732330450710217905329321375560776960904135282057755348234235095514069067288199152915385985617085347931151387311937348654741585470269723154887371964689365138024812549063909636446959323094956360938978193925523239996493779010564469689791444606849562763182036262460825210566546455979541443728914119427179627026636296648745425456201048289018554114371411868098301690805425802648228917971572866267127101466033574238237992056959468480662673284276523727933355464740331029582102379450683466188764930697868505505185950902262185243109005200450576234375397562042392642036336878197595842606110411039118943575461228281998646331077909479298916124926512131223019683185324350601709987302101363423128898969462698108453798069735240132733927040062634122440510061351007115350717331589027176499000317571390968075773339334319167431261530003657570885024050456135662760507992914543541804266999396870642236627891921575409863266853814142153257709694469289863699540635782981961079228256319033602557935970277177405424068248830548062748329809508350230414494427552490939108047387317595628741415209038168465238083739897446164110452275602146366334307482090219663722234175485489335842833683470588099113338391392703344103466247271748875769931948767146970617583595106608310855623545291858252860275264457652037816284927449709847512983006482584131946716208241794310993332545103546315929492124721405049306813437020878811598394314411928896758866765762614496807011581432258774681920290155727146971828023938966577567487197094059911467652798111770643257519532675343804199674466246586013059236613397401613700136567937701499712027806351257766714345891399408532085076993097816519091759960230424963495290450164995190788559424533765620186913696673726771200107687762743597531939805021628523727037620733896902947329579575431106773346015426840839172722356242785735546747651925196787972521956385558379719462274563671082316490090095058523578758889414393134871441381183810902385377231256032385261571524569474804202705275279254758814325527707324694963107124489927742882832336128716527342814595119732381923786489165602527541796544935358540061408550310375436692815720092256064867174911590983375610063661695304408683121430786416784564836328164421320622239521790091775592973843060978922007858195964694343494705264067985491626580717716948701887020551937495281633440009567983612386928419584501309515488289020671089375732166916379441598882987548562501539016557472561931661464069719504035166839441444716094025933249891977378719324919765327480402518277463816454057496444544398901259699842597924251462855228073836997730941391103364569437438838371502919804375709767137053561948375964048551891484392466989356119969930102180009732749416343589624088149747436962756393557900385437441797498319774349185143784098057934020957568589225174856707475522849652926697383426579221840271699416437754810002200305272253912405996519333402735668095869901481345896471493875779519886150969708799509650041053056801902408278617952116135362124692487177551215297067193082289273730870151491869289474701057477263448461201033580590797803579310166368921915882339881306852192075240901759829872387502459276326839204201136481155645646498232744151671468321105087984253320046218799151838925308448955100603238654035950878047969651144194976941812260147256992892009631755410120489255793942208068686304330543430865510102135096855001076718434512931876270099652427749587617232597627923910587297847030025267356596252251203740807929743923122462171571531084636505331873789723694377540778537618942257564899467886284904638165810212686818662011990972316215519008973073452043904679167492319244928995957850193502194087080492571599868660845756253927659547670997936536801478033411956247330792355055547917964929028480132746788272280963472060332089624458740899552112395885452562431049942666696925399081301656799840164918137292471345852457894728940610001696434467281570871596871221410792481111688294808957553840953840025589937386443015065349222829225824395283116272861352907472189044835945247826199325386647695751042344373797851501398098044486310170948276481494376745435793372417310978113209687419655897629876479214276851927438556103196426177624252050620632724887874422080211987827636847156291229743049298232081619020566679542722245851255306356897733388177241895954212246979964108236958116818913689922045701113756765941140969149057629688175128203565263381717825472457424765279384045620084156588207676610413553686538230864668724186765024047342715058511159599782090482094987393908877957635131924454105689248466288843024541961694684107094490602707281501087893179221724931779480653710166550627963522880151026714537386714438129926598433258542792075256243110681031386209837970014744175296495734816029684444908482155922069390729008521621661876670132403220133557469730054873049048897264253713068207630884687020642285997659571957481136676797721143749696172398706117583537222751741668029637997942444998060025463855396083719406020304591048178053412496322333857514497342304919245307734795128166714217557883958686968207379969402596747356820977421833733915575799083683342339137525133675585766715163037862835414889739682726922369389058796343583762664547540192230887426709098355030180228789738025944604694850104506390812929268469223037641282505652635203200445260313438125635623331284847588983973231338193207703102676056958981666474597014266203559196091552952987323095128111578106029083887402201679729783866294015781518531036441224729936442430396462797568312741273510634739566561666966465126175992663267022341078427772079804152222308671960556877256336632483508293640528775133276656219448103175785687216464420671432485503743843218255763412395170900661212297179900720649904508819713904778786163511288673928384999934760994785586479273973585413145917144817358213096139000707434495524449801386783292157202552745919606304483383061112813889206627591589217696306735677161266660396767011638198350108634683411646955179280833402095214639350547524587807186054735681018308037527329708071875754714164763702860319764509019417799794005582541391316716324889968172098329691130805876171319446635412385642690288926188240003335027245984538091698320396705930168181541487721471983692622806440919518689147301110357662935633189641883570029438016326666956466674323853022723532181858487056607621833325293062729179092893121726712426023913887026578677310108525466183294666894759235338861987169778236672994173340317639537059917272437935860152469788215244769832788255568279657251685859192942881745207519159094338314184255219742221917633125460454330440630146686803909846415603767535895498125438514992027399071340098232269979414644392168831656410904317533080213207566760680727651887618567277035505758550599904070435772788060230466927257308745880180537603096961579315173385906768841379060980857347844724263041340636171720924985008579501364753234744946748199384861220958160465355757566181878053528772649997294208994530332845956234247542726868378268355052663000555889004010918220844804001826110143202480116712973091491897845914526330898149620221171017549429118547174255767254103485581251296882993037129709261695142502567791166376322184989287361811245246455881258476510211802821914263840341882012181186387853338200296821386064619623245457346213926517545489666534155829121817955084213145031315066631831353379739629897767362592699153358592919393619920491477507194324298520410165283388281213700615664795105159158697723997024413716260289066950738244501734932727998009329471975866340961446748781440224251547053556942852004690291934595054593960992927206073078998699991893474085362638980369749021009275473639038672994784264319505237266515004075425444922346857940789980798537086193127151552714349172586375225784165817069537572034224342101476924537721301786842713115834510112356478339054748048578802489956377657507995712038346626519078136823552322583922192473580878287225900959964315570990975461883962759608759316651561429863845524494217008185482616189287662605455757464579618206571174101662244014221599406060220483107873622679786306885758847196056957522367467258236926546993261822067127137627438926834329126101382449954703887214158180311281735290945752463062309791048434043420799509646871038591991122895014194261844753607714947278388809567537960082554968067581037754328315679165896731419913363568492009353326967635409468541742387593881079993294434657956121186725564785821531463495009596394441743092583538702161225017771206831643797835902243625967814883184717589476177054066659976394276243312280954802083592579677776763845818021279876123805127354603755870677220298173993306596229152798268391149789836804835629086576845520807981740394010270782502053936075231090515079166633042986507837185242779447910869017534526350551751851613502245302186238621989542513290098249074602077186936145653160673711325102242306413122832017860877204450574289822979917444767820398692401636350884616222679410187893045492549099773625914941871545730884264446235723387621693528950484521647079957611445193993380159381559384918568526191365396486823617378286945065941501458877227577062395020741693139138459507605550926941127671374534765008473641878916561077027608974238955616415541623648648368832710391640073120998055319926251951390357473243482001793146148901473238394617678307608486337298412054739973453890509515202931287263750759851029046583324163274795362588935438544201425330687700549448955758755819545373761319786066947453781882161790058084901598268792110035941392292194104936275473780869460284664531799261032712850749253575850135090181981980187555429665809982185439914415453367624201981815518040100934148927273743076328628912167918431164267630294752935915848665840982072506408910523269454760370120455278570557888737074281429379294964838859407438057924038483781617641274839867323034038668965059296998216921287440260246932507760530625669780004971677032476938044310659219590912069127420319552417141553214091818412135608218360673971391788387217140751707742889871534590531903462682728789487136149984738070908640982415254145452377361456313846140951618160652157052334560987920372192294246493303542748143127883354085934887348053513801930104383818143366270615673075267219996679096567275966473061638509101929817016171721188814673463221900707603755183310871154523123983365881259087726509598429377757306875929543707036470150038589921266841141574808012000589377026265431392967795376042808729726859247985548187054051124409318975730000105491097874749758331830646844671102894802730633259679677276534046406115440303261659749170712185083012016360374330598888106592015668076500337917058919209798000274591409085475545295129580256577188467946845838891679744835880885549021686094823596241177935089765011498973707692987900559894792460465513422296976517917851864984967411476516108484760236175813864690658465618508935945827445417473626595215120517573108155564501998870072013150228194804385123847966651680617685384001460081655336144598326801417377663155147055934414642557442573276358326742131739788639589143094735323908717296743015346961126083133095631442959563980064229231403404446762377267838769542487104101239680630685040267978858550220935723458348105300024806532376556467811519917636114606826420130895266032252781942300856937858799250137008428037672402424309877639315924751653946238848637674270081062766247558242070696407920283346502210381462940017501228253018846893245288815741349808540816455237234264480422965707034988209720248574566782976369000320800678513894582523615789574547679755079102549656140516000926001066230783341628094572099571244038706444089475308330784868914722997114632560165757274785489568892374951170794693143934419665273396575206184850472649860883894746533096127661679241392287435528206224667181508838722236213809198109897759628585989961100017483084630377032758947100344845968075718834704481824229483127390901401864874679921235797339024911134502051555095706317409071740276359594999858817316260227052362545674224916818709445401706105673913948355386986613412337771927812903448396480998536070817239429681677338214745473377945537178945277708102004241072108374189870117400803906291086703659546281418082070196736310230764907796090587180106317573638211978075505845282769315904670156625647983837942129146689028608616012488904638200740595632315879888089767008995882270349960469806315109675973127122570128537872939834740712316574202205923218255508782772340171519633178604888797121659108992322547285793262720641845670113606154049047738302743603834930535455562202168454789305095530332704291947410369467923973561850482912566677618621659478239192339317359363908213536940704480908264936036678548130246747456766775992602320708908372247088171761715500129613870794128842164855982844535709930004352324839065597169752424471045860991359144961814802384328559947627614018352470059358041256609471005718878341938094905743061043943895134509486259142627174393114111427280725051774326262821601669002755311647750824071679866636274625885601293253726260967833366186677523805593120478425516238291230394154019947374788023766119451714959349665473060566476974981282535391036811479757767006207275180178296277929674229994990350490889635142997467335309580025802840755166985481427550664201574521899696524974391324122639705232940883373041617526784088902151088685146884695795998766088559179450939893297504020461162384239367635915104652425208910434514634406703225323219076572790550690854866422551124788703892686270646137493140524020400337733027720961412692957677676266287105103167442399612806177146127486426893443546489118369053472739650646661348494370352088279461634198840262504778320104514110173916195601237371483421560254408495546302206246812289971565377272612797081836161309707749106031968662312762846914438329257087697292523035002575369383322362567968887622924493509591548897707716426969463886545797780299783588980237064596753082245456026574882868239320581666154363452249021685390054711649765522816226697798484515967646299728662611172402549706057990188597676124163383155757827863240193857459177302753783741896528152015071758334407998829060518345216996583319511356931152032878168101399098166936100589399674414101281124595423220979416046900513399346110289189768073825485821100992934683627629591908278971666769451511004013063363584796222672714447641116663381889045544556921446302605785361990059848370323392546590365064092983425462221549368171823268049692823864171476891028388609883090613975228092708537817788693523461498713246886320411667995270280042524522288478930548835059994806648438509995851177557669301683674697968433538357767076380029520111108768438621340702354934803813898792929546090291818749948125718282862565695558575277831844954337992669192073926250791888978922142411780051247867818944839487425301262112714953307319996101780427445713461401049145746227396553879014444159858542801708969627871897664656339874714654777513779981570606237323141196528378190583765860857647964316806182328577982409596862524366710976866031375502096074317090600929401661274524136156040926483815058111468440395573247939012904455727420461971640613902340647527180106687213689960793486816751384682722724156792609727177990773247629374848833238039729086028495998196861547652949228959363646047359895183273691354918687664922796562983392506789705277760799436414051766907945433380486502951855234002222711271072733996309043656950303266580366342276525323733633179350536747112504046075906842629304235824353824213156287513738631041081969510519247428363350714712220307026324311739770089536754156123159858073694039359746731023047024276340077613808000991115393775702416857985932247696953130502171174562184704589484102479621792631725854339138555563551191886879199759084363250926805888149099830348590095810863237854957390899925828325883347085904971389850067429063478513813591550756123768921235110626725289608797938915714228993548843162745766626533039374480743468325761537301212373796752714485582065758087973805420444496141348342984766734504343374677551540634929964602893074776014825250064806057331951372531207844947139964946850798221064549126155266567025914298056460019364852022307148621402244589263883134467747379149539430927934663510833471634689756454927405989230785164030549847732465090050625460380464779335134315524347772239861435014526327122395837438535327890690401012878174105032301022754564911958188020365633152230046957277189638543231494341501575723331830409271683802842742829613481348784891159064109535324084225573651216960127186832544464324759725421811301650915800339430817180657815935023981030641719786421427909983835771126438753384569223850953063328690204963524443826723950352368713941787902224229775086838728786160344789074394170807901314351098272218933259900484410860637034450954566830740343150075840047793854670821912453160965026859876092505189829522649210987507475770389902769803585235781081859028779868713771626092025422087919729324412382738818431461678823192826822357677104602085025795988658604542894918570964932558423214529380415875245639454942873772920288727323919916202049729154700574603406554229795866996958081740608702330999433527751647394292305602540331413452966016081355380184048352150754519686202180028142876208713939748708310828176549476640901733308782079500988157184180823497547160902864405195421550488958830058716549462802600554805378502299701429802047114272698620702011973510726134801234888462326495517290623305060092289140384036273322195333270065197736086227391954085890415239814821309228664521362417559912509435887387442954732142209199842037994740526754336866414025219733184518179784467998921137944708114114472154406187787873997183322215715193772746865640501738396983619630712857921563847091939259255761952313084212267784582771815228633884058570152810105830595609662396218153855532665182537413911292489201928240659909397170753834109334414512039707591619227430419910498908980134230921790869477778694209233851268886065650795601987299010965309510526307432206927471689192613234460535882174649300909312596099930031159397938400456415945300135223736493711869906993673931527387956245802022203060500764933338487410297435041420606905474030703990020093048611388504988489398507045075437455769078982070316591634548603322801946973234464881247176972990540917793425213452476799599768031096772124714142707839567698554017358703247381158451562611185220071826649282675644994418874998127220759331323517670622152501466030903133483139375893118795831879408871187989595753040247338294238535083988543877886492944107414396569038785438066536684973444998735098900706618557388944542653402362833073730412616784408382391284477129372406394993204045951981519964817642443621583593451037122513988304144526887552721182764353918373186434518421216177080679362803623327500319678871719032728743953848116183822528317899069897570593344312558449747139732281850011119291862842054996562132027242423092273164287531326504382092976042629400871456194450769362464533461522972442934521399156474195317194701233589317690097263960938243570183090940004255235007036260826003763548149662882085390684478750861059955327713761948736040931709568845164489917445873712295778669392397681383161112852906344790077096904375073458442714268769594409191525174567936122399177661474895360720594601054315492975630278529069448394321617807251825946825260540546842897332438909948999898134187531503431347226812139929938478731545493445798097314119585496371477337943708536146727136021941101938422777541092551275101182718443610689186234018547855242355080250523026874218750726359519469018387054539566972211178194201088123926544800370759180473976000840986651215811586366921354901014876404005453253342537335955818429582906069563912431218006695121450630072120353382992931774678950363242462596711325478376438728322665232889137274112167438359665831962812232312809508462129195703943404670491324022488688110488625861127363715755826713897300516851814885656900573662632910382402521380947216800510905670440466248713197875583004394581838692608981677848676398219273296622748833769189397385817858663488070476551733140585958120724651016657252356974517290989392715725762555565843637883320645871241860102186436924670658445827953946924693617851642611395581521001892889645095530478775686583912675232922612592837759819695233763838194270993925983799834628708797875882706593004664011882923910001522274200712847560108840390959694556363599487777866156693799060984309767289960634525609257453110834030314841401488986146258578121039597407600084030858277327501465460424619930462153477114040491588349006872550753175815131242500264102622734172754151332302242163860744317790657294686414142003296560823540156308389827135046209619046273985014597993343611239040821256587100556260716584098043536641873894160182634586781995715614515886956104290205475717183069754008420372957147178527950350306565511272555254444352269763923966037209149262705657754435886638120757891803309522019922087377740135924189025565545464182548984018370926354900839394119760066017754070545847668703241488431416095221485659608830530880743798041041937817863844692539660126446829941204595864851945391128508712545607771533529740362002703871546348859472701808575319314140278368026753336132198091961986817386688931013331752742700015926485085718019443089643521654366088503951855950394270833074187493148865875771220562524676751105007403331921270156639309106622331729216299659128017808653203560055027589483805500281504324660574468796013029995772077960259610598798299436099393177830508136499419787898199676164758029762579837094453547874930811536141365465727541472487229282462297962719491712211624730794237579752436774933379389327362556122609457578500718769115193070595817577877994457326002999025595416635488973945278603799445787339299285271372014861816904322439534333102183856670170302822083468651395263469254724021010034882753029962895011751200286879175178874903632516341219169494320573391259540834974982182686235615352306860332714709629513084231768709797815434855126095483522911786969594388437965355020161956825133686450055748446740013032016268897720448724794513830141814841163198104089801206259579765803394887931812072842768427890882088608929914322465924105309509516381502042092414873027911660615452075627227837272843606680195107336746168702713469627613688219043748124035087411225047107281324368474990513213121208713165965777317396925301447810454403688260787838057284437680889418872782615614262837267351067905948310843502580544335973322784548045978035740746738133820481038481045376777248565330257117876235542087179569525162931118736909866577605156796794691943525111773125048699743419552131055327230130819457437556430892679112929191909985859657269898654867388970184061436213994450935863651718017563208484991038166993893233963241592563782412087493190418380941390698913774331804949901436042039510593991709368041051526558007942381293020056374483744065954869921330284262757312872595860346165894949677627081433016795420225636661261724207947831656950072534928884677015187084364676026029821995509663541332505721429291302335873933349575942736028573399946553158495710885503409312748778174712706402340762535999459647686079959819024209079169443341195870414658917569747542534171340702826485595940013534334355824773333279013869575306759548419052951417901283547439141682693846436187040255751084979542722918238248386191256882229215334329526969301526785417651724695468947342086037956323207742245092234041364833545758782258923365737679151776847663268111071823638651356825299681051214630163861909690345702287314986044799588574247376479055537417502897445134414022940475311887567832418504237388966970063156509530176070860209535020031927689859691548742669633609427611420488307567994423997603201286890077163203004207005354231501911063170813962901239660651310650756635057711727330012460965068913475547439991715209416237819611161839690298775242540078166759849272629844003362392091744506951046120818567120819088623800951584781013722027356484528525318896119785114654674666371358408203549786802995397846122699343809979123356545358408980228331111687626673295966977651475675745035603005196049400608262124683830879203372603585076826535817356792518019573424527585262794587829560061794488088931536687428703777551063463351618276058542921814980955760456176288891416780833213408824349044693230158750962812267285674642538799511551547706862916320037047343104269693121879525336535174010063658551771243513585035461680505351112221897952723309594547789530532482531115909676037610814816088411950503018752459903159593861265757105235072569575628989313064592908432769970828537506224570612317189659483694869762170840305975896099019575893966881470781283660181349244213517395603000280641286378636363727096443307054142373478580553129798157601367090694699795688033290432424384794812238363626879832106737921993546111638218153998561730198646670335946834703558557810724926341696985537348123718822903145864580633084146620776853642351677703180257157164008259610070625865201351264655135451322686267851682927684958683538115803411109070435669467150981010550869879166293865244331124907231835567108012304505068862067131418754740300642572297732381821865715502991382030069603120814394945377698393227464447421159974997078929861024397243653634293866347974030075124904449540486644263624759689557486967006678681957917446509690287866279810629922088140374631888618117620769291577808284294419733051977510276080866535598234371062999946675436523742588600215655477299004064146888616856370385513586552011390781418242216545624316647177427890146775329094642822307492820147569023611986177462018214712765464355951041352759256203459929852653016605348955993434743090431653020251868017323991916152111157598065082615332539005864106121528005983708581521548344863453930542939625607715293479822298065577349541858997404724793057894172118504113575085704606280648293687281593903436759999018728169115166106887034770749986148738104586252211487144074839220272198598439081469647283220821743702080351759041827592944720844893462186980286220253032852452224977362947358362934287666282313483550392856229647356507415021113254671329183778059866680024407317598891930315244664692604041749535919868951032114245000714149366522488099404648985961944759233326533182773838756545514581784420816059354162513800605986195456849520887149752374202955170119468689897805650121493005007899140560142006110174574587377040203675427939990604112032603136386761364535170963105438488982825047908617793947840638173004524446941876216657224767180300127834723998914017557194490467882650888799472830426901309819259302389735499122183424352978990405938834834887277480939979630051553096596338495878508614628589062619594034472763555749647688503139613144233632379282148230476134275885856296669857609707673828716930532578812806691466091493481783422389221430929675769842919787313988148578080613037157480618499321747645722953909485803032751123833794656572732184124282134147146583380343613328719075422403722992194579610556966409886506318544801003890614002062287089118132010054396191486723965875172482976956090355455405956172241430419018874047038285214937641696459765693585750860941621288213854620937212515825423508335014788260464673263066153421399838144243643571143998715294421712398675479109477459815433824647285195524792270858941780959056100906210825473941586255959897406327096252835756555793445048508385647058508994148204531936257983275806154755034571541971483754609798465142658650259553559378737467651955446356933302483092497285811019431998180850926844871054389724431601483786416250709454578216369068263279591392687222108942351743809882183969839897313328489383664636114154855679346334277752710741528532104281509743498288250361715323784261921433798413482002765633757653309525656202888416781712361346668720896906573051582673231074706439562759886974193265975800429203842520685228443373270928345279672376951523356625915696480317403949160073733468639151577220450100460449809067718135908313526902837746346268345314570442849580094411863493329517552548412663722574215089254068711741889266878523097158038773487356141868780809279203129417871533225876079040430422783824281537336904358089100085303051864481447826936593344459579353239781063194716886627082503500044479830895205771840580079966503177818953869558195976685999998717359323323957536742761658060680083364647055385674736536485150940328537363147668297325572298284919109846714557088280558433173320781602931254617391520503976886400434757718618253571301701912943792966753765512825914860147934911855404863664920805028726166935086051424918354079796159624623917414925219968977436922263924165591898761822738846270714601130260193744988047714560759318731007724044309513996147556316142678621088163254705327296414405115152400762836048327284764464709227000181918271056801627640614407751504796533406111003326190628141911911735158167115017674557763739815465219085617587576360636010208166890500490283085544392338867147283194960854805711285527040103813548199895950153368538209034679517568888519349517618425052367363731419618818797897031627645623367636162506431104778295851640938443017359130767200875733408695954479320987334470185651889518690987832566054019687469619979468824359159687998871173441626237560057193470497741322305115440654836665316490826523653651334140109291760244075234511852762226189641076616733694235781472189063283677724402319605170476215876752938723282898518087453828496685145124210919863213939747122552419155982679298473117754632203660924944281152692077772215664191500914243058203821536318212238631245516291883460755028136330916145901271677182967160855479753915824667239881077605200532605787584817275864441201941135561199747073548586509864428953181633911756807740704597675620529129027865565262192819222820216001156040897441905971810011547107876193609447294711723030558363260473914754432572331402609789511678983129766374520595832260602040263025608459647840420506146695450010670765691882314134396693313174722485820263781241966575045054471056212450258113707380586507248833391289937207195820620100707064765246407990224394021277542491569004343067648669707691881342332746947739354859051083202017318497844592825728206494764397817575426921638211197416747492802372784322054572790659726620817230550095470695023449542730011773487656835896244794579681884450738361481221228433840080330253283846980406200814088527138249467033124181227708890132391817744868663050597726697960518329595293789706258799089383415177129135042006377873011130425466797910692684326064716732618189325494282540549018975161725813150724067508064886554943778603954519054717900465719345481374350956089018290408490585460005979726881420774062492476656492745172781110946900962797737208297933438609318244846629670036036060418478406698028913479417133992127266959543046434958021153923033618522425348402572554508523708590424592718799152336556489134449402472653155553644417077939444227707276966687184331552949286074325131891921333527064779246125175701039919472911719330201509214506150680258135199113047526722673887613989710028364382148524737088795343152638133431525355587506808917517882708520526165582362923219957663161688949142054808428605108821124023037636730479460916242633890366710473356535920486843103520346595187380656764835483069032621762242249700597425460256053886275173685811807099450214594350321368204871402299800917066175436320762111391119080483872544742531987697597342592048795212429258646362393731049326861416759042199386848243394440615074078689048950872444376831150871217842260011950338419887867557437184621446607185367928656013814768411868439103979767326494899243203113931026511128288982697374748784681266452682034344052410016742544093640310089236700175685490231452523931222914881605915993859874202570786639063206801594112667328392576553187072645262904062069757091402051118579702839775276686823421809730630736048313681635079379397228224104825222767465485954436971310569127945937403214058893036414401464466658468759905206828393047823903927480312996598648864731183708257951534187560301945043075168504282972603071558334206413153917275427681894961362632458442060389318434210645953585424459620748660213872099188842899746003306295044648260081937453630098588215456308847692288638486047282099484436237002345199505141960345638878149442769715608173946356736329298482151793478560100323328711338587328211393072415609356286410797605901014117640260897327500226768020412358400807419505328819140158868955667941585827946348668779420337431769078213167676085222943941506804170499951774428569939596539474469049840330327082039866865656090327966077918819133998797623976080137925273466806769466426997727540752949364334478821496417713324900173603952022547897405786221646812844415496355022931660757397012681313768701760592384377578013348382313947205697023623160567565699575027185132272360937259611366624344182134146210999663890121275178972991374692905142127387632980872573365882821772612765672661444212466592678955971489127266596622247586313388783985269315125430263258531435929447825196858448451365492971146426413734128248847440909502757790946278868332731825360156928372253153857749280774442349226181447269270726708762472804219640998063263426988125288770677273910988616394228767912660855960872172946149883849914650540068294148337934173919906254740737203599851353695185963377356187195984859050373113418906154877735867626590195169690570759487150525294074230473583674053966897820495897925323245134177592480810640936543285242100653489127237948690685177207573349390621004895363310638196830622153165080172477252967494213824466686342428564258200173152710267709520080769827425182735121305564377591064000007445790560076381962750580480706100848494444492234374563662418606105108430839452502413246798092607538655656593067846319095114300741291621695333429579307136977597193587086952300172483881319368021337550133166304275359227118894678313899010034528151113497424445712218865666388619789651400731940639818379859734052573449847581571626231556577165925695547849902403478936349678929331932780967821715499228528774933885613838198653029374562222590488145371081611164643993743659596627755767174216745804478626404095495414301068485162596401944222996921519775561864095805264066224570928122693219598721177525850159116048953126345466355544708068765392107322316033697147777890130033921642831227094883862885655093047084469481342946852624364286080893705334337931151195765710952476844929031700155124960479221833428009123306491468137460750983381824837444905031347874126434958153406288508630509817209209556543145798561686896538971361825576004316693741534488363534494365884466195901614749059716449046757760342077837799011473114761191055000722640640863792563754436065594734545407591721128245256711902053744092594240418803584142627215800912368238816288218623263502023222044285765415044416099290756911474390516060931594865645013366942274568694726042933010068937743465609153464708816588935158312462835495757723206208415585347506630915992045528682097064089569360441986027818927910255138591915557672542730952841247915266401536143570192270791037923388542784271188241478051324224283500180268423957158285470373786865821123011380503912466024124782844049627126887401118264117153519260956053671889224668149330469615091765742783071388033485143357953518595338392123508607146608798526308003237363879511230249151349528523018545247050716916049336222718232130305539010487996877901793216745856194219250561937233392903227042660801839438198834323329395994977718923459469041848936706354323603958643958332729641204488818667323907582073010527811501182463888924228615167410724631025881538939280173342965209444980991691555388185594951595883945599617123372336474167111054997110271884047868374691170829114879381477304552202806558064991775562512756151718944893671866210058800510812116679329744107363386448587213327095295912380819915530545424776487024914293532083734408970555752020163267771358317473301124531895477051974398294102246370798614715905962661239657125381235287741282650569584022404563695024625428689255852661807349083331940056865047471965653249782697823367067903318631697114143931144330170659270177417824433406989472980560041738341047494483586623193419430352217243337062365198364532402019245842506556857585559082029061135799688505273184523871159815482442333217935519623744507570598177294418187409151503953056124391867070948307847878835305536158201015429268445446591025855890965100862458025922820984165470555904520642929853388675638511819405311159400517099547319125345102659636732463175365768831220809688595918861366599446378930828021177747488346494871634691148644262434915285514292304998822458623974109729105251925219747075644493142319510222561608404358753836560864781270304256074892653775118401923328561392129888793831968966875509277491697724107658823016545883271592618420317288375548741815816779042840417920414774353848197045223060903661641485511533917989461203938016791567385500946430645212373197450636500356911089617037210603984802960444023245975980233139771582574412727933215680098147889110730081488113385718633055129581449108001031533129715703654697133498058451092055715897952017517394227952576380645287293483238333597694697388665237808819036426794957227673490337738899753518666603818440189984807107396658943510650798589584771679655281904813459965283636642407035252736969255145018325029669789790606808289052377597840900621289843106375285194589981288549158853805329678315362838020878761422265351527636258261172018616146040911786632400275685688855001285073593237759952374115062946232063824678166516743035058174629029893691108038414133897024463661145853336437272991242114136226372582030104124114418670826283525251085320519695614464566415998510388013239065415567556393514404256947406265239889174132285464192998652240695247904386547239500008241059942685200233705713726606409115435217991323417219369152276742813470027014196599420153868670035353907932646384356872041008529106440073326093928136272973749820559186313208811809928767478989652349127350143988685690101069944922296713382134297212881151075991375110828328171079864937589274372075809338132583020287048165414835020577293777026683408613193194488309788417656135992188214996360913553846089951255129811967503710218245035288084838952518086856187319283238767200156161842701675847696759407507115777408964480019421034713605778734700965104298136291526924002380056677096790381635793874960031336577076436217298409499664055486675724451923965331689987908560700330724429446962461333876863381367197615299629369638752753443819913597657165580382389952184251387268413227975508568054480014737983713863786389462317138894875940773712390128984620414897166175621126618259468969161041743351371444939294945647134750780841964486977594605047796562970299041237832552112544912378908058159592522209154847815196616501786574410233763635736151021848090622809575774617155581132982588175566060603010379280912557270756031606703609374356301656924625322644887555852179471154761270503876818629133408683688595221080895142470078227344155530670115050076421702376006061534873266863289182850070111292057161932117951567490745970155095242322878045445331226622945240440074254603378378539384766258600566754814318411411078434818859515645678727267164267038395133762077306733526908497169699200970633799025057178662555583801673210096658958609839277938069804658804668154100154499383003377379209653839405485131031175974184592286325888178095448830828068249456306695841768748692319639545836765512381014080572811127976947215814608450892630323352352953480446516067172477765402841533473645238558192372037690916352048804263450901862876732705973946008072314169567433192950733725227481528173788510119944592317553656089115724704686928408431492560889087789505997376476001646035419472787917396227709919738006607487765062996674476611902769499669949518534879483157479947356665560327497113379334732845247220033642346042275151917800779652260628997610335291401177086937726677560944687521463297659707037619796887021518167079891322850584475317106109552734941210110032792291834106948969826824144588629213792696512474966035967174171650899189386683155591532691934038602950450974200967382382376714846729725717061015232178839856276037234656762454803489613261575705381530060752553250331256789234142874347776186379100476472611330949694263755197070699492747595552983752320898753084584344015946295052643378943648694259109290944574257903811340736963629125306211256023134015065608068816383791442337086750085065830991862223963030658373230667838338896378184736023226424572934187597772388318052366941849718872501487284659002763382417332547991674597903445729631617125453687377826427386447189915247280541958265631644474338768055383552073708684354558727193557604030187623750370244228554138955611977630279659374075363755234383301201976122698173939967143856590185736094994816209864472109642804721377670616667825315138803278212176783316019836381935322733032376609537912466439432524632858419104564510389602054168054544307388758717211368654887132526544662273719163144985304700209390121785874225410031654821774254928190402733641301925113114020792695396908908348083522899759122164116363340184957392328215724754915354350410092070963317015168883203944636200623884873371257332508420130876886817330980927085076206324575881516864855092979275856089849337688747623265792093059192976466045309744269784593296163392792695425742883695973443048709501765431724158315366592550538108175734009622582011092482052800232166174897554325463361312070112542473537672678626887741758694407972960248913617655575459963255219218787327704400772316152285905187961674239601647900588642804493207810710394063657983109776504329601857580064602474936205517841551849342097007980920535001828711954162654614669284634180784053255238719155410095436101737254895959140185810363585101333858988319612575051811515998847422454056131093279324455579297258548366741641148772870418234140379122348433444048187128557376143775144745940750402328583258316564530715731131734506389517469987104274318856576345434242543777080914874833533324661897133197837041089421203544383399379709101269878545374487486739136968007629045644221989334291767999928230864406242045044846583108980437848577810563937638629005868895799316459909896162524005861914717646715732538907362752551200293570706085774247638919883820919295578173045387956941827144292430085104762694126115897836894922333753017569873768592308149775335336415608242867518732807813797112261466749366317202845428629530476781473577258480166463122563192997768827126932033130692952589002075055502365573952073903667440552480492323568636554212236905798210743893929285734588389133924415342771259592586100290758926818422269451036683186434135483663318206174768446646423709793951541612196797177049776920668914484313141976749597578385253184826206817971569608149024358702461027954396571173298478981369076649669088510269982481649611223982323943022985273359094176462004435507433062382513562318387725994613254199606707271522764150212628538785287253406195771163680763935063995582986174387164825880290461027950226116715226303159032021939486731457881863425489122535637852909354826258254929223195506144715558612930107063262082786463686332446191345759143180831624707165190344359125749743060188210347482956288393865307174053261613987464411920913872595200440024508793345871877833928368174203866650989435133376416934205468817642834998593798303856650438161487546598926010582191595035249545521833189661188309940728543724714551215474224083976837248065920898324469722955666607879979320552375149640812457600514796525780472644207720651328947987671306779917745552600535582545731650471111318656741149772969226375883611854377473861208302247707835277907285875248015497693826345202952374992153117047271629769422972558363515326218947543573134188384244136614289400161079796517747430246839453883092948577037332749920561076367526256546215823580111460492549607633859932887016266273092581718909037124143366844800622382907211179988780477086747127827123513486119819605419266686072376654866575423967586349451282832722681986102172953718683414265156559019932245006174022146448694082115873014999868305804474141006569933477547653117361150969274506269041707334467619969326594568231448968329359931508018663196233182049619032058873071098642718466028469594706478174235417728382548923835657658388336491553715635677157572544204952766158453659438431872916682722509038432158183615037162299693825524438240914981429831798322953434743131458005399693677729784615064487926916246931243268133488075197800842630926212960639991922353110217597584265812814596520107175355543599927163466894223311093609552671487084227404062054471415820094241446026921021779416261650252486975497633186687115734702982938210445282405661555471653291071735172616192790544882129638900876701063135527728453470561786888778486962432428574124763485384819662679732103524569679402439814748157726948140223989618446142404092203061004350091283884758529269476947670408471182701342819720403459350245572191931323014922406170676384176436141987047140628512212251373027783965983863344432036534674464198839253927824755642507457465395776667654043721909006589226655799224394632086050816282651828171491053764654793418709748842465795055434023583367803348212060426095055600346294403462720071912909242880639466634300430182405429106951020640155727603166024877207988334193273973322398254602735948469421762733533498199696003754235075634764186836961932428200778845476975646153697402330487364929458248352841296139883865863609241254442927454588880537904242152700241874198876062506426356512605534825051883206025003654549767357091317376010334821746238456892957733401967747065801628886988160919257870745893642713841909885317534792413448560462323940492754780672641425481814340450574837967943198951063942547868039968367222643932145392140762306414703024132124209777441030660206827239346625870333347321091560112709507039369613598495804306629062275802066569867865613056232649043266553142870645378783054735642348131146011217843842863621796335239590604061645994032882235361187034041172159973857391332796023020317212752555716559735829726595026375090246580892680241998879764710526245325660215442597276201318669544805774234781565596155729598898260170171600943402145041683719417705393483097459327298330847221026799260250689881391184654738634261639470676387551885319262861216598539398773832713857616944692898442841608343494731778763339740834661867693695617353822354862798454301414493814530595000270780262335127543772766817256884271050236800432286249005766999920065656166245695473881621405138475827566144027577680367978023352574899533766514267023097126809459821242768585671604793297416033497829738080101251446670673855959126780023840785842535507618553441410973423378888861232733816424007038024952590283722543387298593879264079370522708742899595478149619426443323380322688037382203674675752226930703926280926125570471130171371935280644592570376597933022264551160222947794114375333654227023873586640877804862409679132645009847155984685964895358627660501905365211978492446600625400197301109603667529278863260650802290972155552789561737791082905707977121810298139076347790810814624416787275773327186343333947298710064860514572280032836142075006734528972643558235442314238585610632438995368252723864339402681307402785282325662583177373767035996538790738737817538635351505184275586852483741659430098960100606910341758148405159304486320924155077132981217677665067043462492122612520333966991816275787937213839187460292995660845608326435426088503908109561338018072325185008402362601558929369943821559239904760461187305067167538529216113558952534592373456431185616832893308468321151688770219995563969617455541865926566472785364153124042701033552457266494328011874251697895219874584071581438882235393156710135284215633417008210905904763875295139296591173473842860133424401350999911298532809651056998336575930566502579903209302472010112571733384570025103117495996555872238799665561191875681984195815071313698900334667434589523466881237843754237546806615912145920070079833069663432384634746149207930040040565433488110777222281072772361934081469337747918742610808593476193340963165602663616829843107770069773721956521988304180221933802798129095952069451428219022668049447910115966281301302247697594021828684464794723219949832206217530704102691499766437719770009791111092733969068459552721516318838427205155995337681424248667920250613601065567521731653454842924691394913575131864384454587176912591804841373014166196628198185871292657014948933659261947766147199751081901708093522443366475550740194125360539028979610327402405392101893891542593604153880821588473266148028296641357252293927479207053698702416576726362345310773535827513465259373023751271832584562441550715070240519024951130252559558120006231905816339623652491415163641979198881643585665324468060467783721541507933794457311760592926309174361638181927039044140963960588725857890081698685444043600853695563389611156021680184642287469815719089740820360225809680872927946063791684122929814891904831693028337158462199290830950833736929384640029117104124473006004303598188145698823544613218060418793614126606049075761881555683213560710774852032818508289339833779272677958791653024653935112658323613702314553003698500694274888305905535430254954766219230419515074355777135642931114934019910913229814297011453741707602556067329010106056858864148918833073899064429676146801277425552327290548058196378376396296138818450552477232177370819637017235634417530248856748051083999552541913556097844043132310342467912370282482832848823337228441101950760969439852250363780224402648673347925893580628996822473181574708130541368712547387351391546474469095562637825789042423235934222471400579006825422882433159302700642162086177998833016874467426963802950406795481065490087749089376052619467861264560547832825766727741958404349806177893888739220399311295814309924122282642676495238162196486648396270848418029997211113725792732657840582692120010082581163309713684473014737738704904694545466635091080950294123095794485867625416017895099162967920979885368307718923268193142878408858040319701996298922542623728661370413426440288930373318618159658058265296380327466244298022287336465865448072713664891121494188790004828765108793678663905287708991536372720728898596969250155763335928049752257375667158307851514121672944668628965722383553631355996896077992801518009157333688679613615532732102666937594351013715318172727285804801063324098898398773520235876386948053714068083775333962313920655597424370686139427651069954355923332745502116512014217245281417044235561084176703977387692400275902340364886198059117542603956490623111020521100025891971509702968922395872410100254658268472636989466973908042752501840227020211414829010406780642730004887367608861137338580842790863659866413932005115976659662500668631194561642753329283534270964389555088886482168503663037956002962905670720871841529784607489858606089868861293555776398855301511559027268227694751137959803056849542444986060533115216023206031715662351943792155647238807634177273178922871028137522275719010266542913944780065126823984877604930138485834875849897346167965704161286589385966558001442147672616374978456161295961959679541903518709065543060318054793860928986362856402397579270144300014036425839458750478277683439776483438118797089679078830373421295343488363150177903411885495240600552596673776728980589753150234811469439258100975123354272604252142764742520313142909271777602944100361696537454888076002326717539291945925310320358196824163106643898576347039138340574788301178547073405323736212482711698322497371637830378647649221578223445855966459930059606073946371849552752889574811529018986524341511214285506317800086120579036265520807137755092052070056017593721749544087316430818270263970050014622900515666650500451644149621241065751096538171935655613677797541382200575541247318085691000159049630496340876182429185814760497838887375196834103184019665593760970907956867925547551466097917117501245186556739615530284125192051376084649057514584184693976780472408186035832918744385644852191941366627055415971497212536995191605502216501629514997095490243346763725515566876757982531360313008827678716196624968024013291497824665521614066717838375426659088893054631484898850587649093321592900545014489871261693459385164226727988461984836836221800521503980799483427496201098387703957279887130443683947547397139674989594006745519224591347807689498225184470021156426405398007304191240374506361773175488677826858165089437065918761574715808437785890837479360975325360078996438709162100278244755441017814120916683293840052616821503661139052814533950874367764491817040758689776252656565078834049297323302274958093557785269899971187955549306673323975904456950726804142107695348894249634767226467966802600290016282014162003902712025692819923733156816494224929608769832870940332052843128413370017009719321123390671013423042817652088176132355097634716252731271334500796808915562393558324151211888595904478317093141694360523932588625517203813538320675488489549294946892430590381785688796660494351115515509455182414164092513498253150544150611679919325085986551635608965422083560287144912495497806700147749515913725120670919050142007071811433312900437021046299478776717342174066834635799685741191885250102176898572204831617187163364231443191145305765230680073663194226062888429205770499269608410617370817328452460638599161361339052683773297403729723922195381333545973726799393257394167323964400449147744349810147951135143810905361153928923968936750234007607427389483770532136014402567740301830012067773713074192373716875384493038749824436111365775800735520636011118145696207788934288288162187118803966429482114396449476323966733932500195423226797248029763104488041498118211242792401344466286815359682700883591451816420540058292315335980055226451112186650066985043040995296973274101069803248201252946444418272592122612587978478322392782719535388891077284028257813051976163037421359130234917286027615418139099452358471173607397271507726861722232128105570956586613913273715660477096787509309722691608327433111261348080456999672957394515312299633123921124937798462878456547995861580419205648237979294767948084714442373431202585236081801502658897956154592936408939324260015461284295024682707190070921789094007073432512773725446578014750543516831727573306314079133008756198741481180235367134161626311540206729784835971322406222471353165840106313052004729479033168835833521469668605745266258737866564323893454425556958804007449026373585026812642340514640721814089471870280064232910419088858413201578100284441408181822792975868382154253276613876364712942275319579519698266391734996011144455149794776585594930437975839889162372816225273616969212979726105457844154626120841043090235961254983062926054697256302670340454524131519508809152524791916093481546254633719187090089900520347574568979072422724207221856730464228819800149820549771962775108064991908565434572648904383265047291819774189611653376615730652122970084794930707715478812543770425396635534704443675203708054222803433012800599941000144273861520924152016604463174560629545631062690355485117551350612121010422754908356164808474836425702385376122358068478020176150839060909330817633188518138723048465019355156061269348044247626675685008305464100157280974890229745785381773386870970877630761761741066320364978882067866468660372266714311149648911081884996544398541569164946328017227476411335504337341851795345168806104551417734584595973813346453242774166862991213636371016131180941804900289653483391953957917481048133412634565543787542788458708428037908778436799732392166479077023567844695023102153723965477228926116761734140030255810918524195268172082113092460706637696193547752011204427203514907742388516224992609775009728560619672730732741775869392914046090560199785950639092779474467864076967238400666474315096778417748030624587695015331951931952856831148545786491324577653204607719965608538363491651152006362229922150055632424831972183949797422809890882112112187234024010912259909391919195306941329461307741594198186183217101441441119065184163644125265434368329377053895592142718010147270809823227178847010770489553794118022290114678704236748804728952394145970638435169991438454663596138485790989906031306971006049452606988392929579444760651081397648605707694191822282519760933328631710226731434122396528511661923106476043344337137558995359543847767217877413724478411614501071641938115201990264339227684947590512205503749699302344697800638682457063404606461996624597656099746866831928312672805012352936085431654585354878429343702989521868833352090064337981259025472769734026561459720134010099993321267724754504569555606296724121347856181231050771000556359839143966459081902392864433428152200762327150006977123537987530727982571337620359638715553168910706452140816134675694640168548636230131705550840219793006563050168198636415510762493759627701037614164358896276932209999025677551614585763615862315501763865439223496083119392052306410984514342504792731990025823088724203344652921381707964257212523053522833835715942173926629647526954246300733951863323547876358200444834032158513682728281948375561953897862611197985851438780459082143173953596272704608925512790946669156202572398795218909688745447080669493317528496336840180210523882347936944659515901119296547332618399856943303794946113526304851276828656473344518615307351487787227164876898381668583357964537400540724614959297008707384016546873083015313977597063183656988247687883636890031800369531871891213137635762593089604438559443635955677239782215073489522771261071264308831334431509909077972629929172364508512087955695734659502070455810800230795363117028371587837940452685454072890130652900951429346429781136095410313431241830111409424184607822700659849224282562350568592992221454804988424324667066924497617838577515284351510325221070715451747954601775143152601019942763776849579183489512779480862885854096214845074453781605721807063330216058354054828758524887466913950608947666541985893866620498700920418134449290455641051718932362694819201881071566651022444168355690501816773749055973310660827029677424897649113183489865714961430620252608137378014073808089732730825194315350514502551182630029420784507897457183509550307976277024466503938425317007800130668831123164266700466059244401627829241146075687559686137685539189045914288815424293984186083646404644243012352588639925786059131147705963890234090036543105305796809706018257865042810392761351406101629789678283181883939541919162515148061590575308174856427972713207321077594525761854146083190509095289438439747694905352998889253676552272224199698575934287089686045874595339410638223463892262033130023535731845520056153428405886477557749591728294919309577072303578547653263236221729092885936256268954258866536246061368598123978903651017824251750950687108989992540206319304550689875689970802875927201985586849137646535761701443300666913302038271927099226598168460360556824708823540937379433142105351498652621979763675559544245270711425495978148548596912609618787675927094345707228168509897471067734365524806414755302429235835540478207568593325987650435885493193856328866732262033483271766267910817832258664922846149102523606630184474130614823287170785016066688075655648132534854517544830964342699280838680353184850520069483273987677387446172700636556039794219651074646980428075260890880309430991206780271106604240194568141226544110853364942905519236261409735687526235518395388254077349948749387195334438226366074861758890486933559050509224557101984671017560847345253428958845380366092542575259383835995768002277731077343475345338766550245231464344950207999536780529178320005382020839929893255303488698077687661481215306358277029415186906034828267548352414646811140586588070579644212207782103378763811112220474577314431804962738425170782032569137220965031625906821870495594966874453566341912590756908023881176782264806427246068493862842952892385967578791604179460479833103264480573865402391328823506571972622315650848658731308029642110417617076742919813263744565904657009481755123257802235630799505435717604732788250491504344347390357733510328922191133048828443327543765945268750706775718312594904452444552822700436293971069545976747612729637416979461868321619286023406496096653321223569926272452841009317040783102959288927855153452225513697017241212318237488241587968134993429366945109684301747895172752938378491704579551277111620281317157461844425766344141885986430923658212041902724129459525436200120359500404990172162311070781603507043215507599191016546000054955532771940105164063689972679474924407306820141759523010923173459622941476855357330264576006697113128969493294643160079037154177640079348376160261620703588796419692389884172217268389323874719204632039260808657789593624600657165281834865379116753801822459933898618646308460875392513464363547778214657304484337713322448898283194445919965346119285722795410099244159626549112632707860020334489073102705893639941766432687029074418534534364826971085560888172307305331587173189502985903195857763252485482290330206440325464644740177982635716259963186645254424271346392468460748512729812678954851678142168234469842093423824017990365647426545045460714910342465004572707334709930212636461255754735014380620751890436459325234969290550581337152661380146015133274119179439759651018798123926141459950800464662628925931275068187621858069690699645584380767054884644881591431353683338310376514466586643211212721424052050962773423550582719483491442297792532374587128020545555063365912649516273945428385326879581461550995427884627326754340806958968758455732791489939161634807167471765955201003618279869544766239920370651617327162475248118077073035717535960090778723818264576746259721215773567954544811025733759701903348784811118367011735105930402763517256200039939202791026286259298063831983401136572077826442885217870688017487185461499258404214890905234922283904624810432800528576597066483605706314911219791963362736952793688343612773965030051953270598685790841230565920453779943673239994996183244934947671230487180913144902415383619447011896961017689452326806950548415775213052712105030400368828806075957645761127699378944918662217682923093322755056098191432476317323156608225034096580216354503149578711721067398650127226819709530509225586628365876027325638362402985187027364409026272458446047081473093341172175774346871646902918015105604774756833884767725372970953310598450325951546344663840208372764167515135990070004887706409644432237964484004879807309240853685391045962269514030429156843451989670291982627946176659527295011440346493103859792354778431867077742330360705824218216357655243936349059762084690352448595991408610692995445876387350215476410194606902195036565590990878380932268770650311470236359551086879512550740906935161592437085062756550959601568802326658499396234504417907737964685575881248510950125817505367889315651438145597153350142514161802562590260115851279449688353899910386860793054619218702372602879701391219608995003218909871917530508789404706522868904391849126195012888538344353705956659961123539541110184766354370636512445379532788622944205583200754767824480349434534600765505264525452378688737267795220679530280335838298466232340195064791544614522189571189892976190834021154104208131232303805312594582293007887477205305577238160609467469392437363146270692811736567035198978134286731530223460506467923936195838347380035280606696167926395530476264680882360569778313061975101520406173233279623971515647661101322103148831581151941700412601625906787061964874555301726360291051834534520674941256105441804694394939920064544852345781153298718646099853551379705880566218385118681073608697250561453861392866194919868826175956826272363990143558430239109387835719230912383796227771515609180296443352498753190302597506898110074766967777608662156814029020123746572987778406864525302579220192151729161083356216905501750405066253543658059485389167978489292179420873730351889617839234998501628520663758227305669099269887863663338850383755296911190354779231795594425931312234284628280751713831287919373065823914029366034694977016615276870093327969727487086345068515715177456945091256330230294089615421572230708424680425918391800164423611704730283430921989838789872860737752398007561935449524566064766268903849543454996614131411888431152245373006202710158797800849310469694327778400378449109040403175631563082398536741204272012580686944167855311354752161173760963014386696220723228375597309842308608670988783661338150517257115388901238334490037990501620211441289798565229225424537580895252925379379016860405406663902964829098434175186093316849497994479546571100516953262591741044280024283324529194969392346973253829022426308239260749256170181370379835799552300950331945559307002149552287779020444526644675729600229829287655802650579734115981292957365810254441054198567516646847968317474585734063532720672717684461766182516950774615717251708725572400106831494764493049112791103507810258063699114514456891114146918341355637967752234296856227791387082308930309813392007059812223003512074144070305060634358231079982585888041158818577002939609623633567787691636865471170723728657775920719425475581689689242917766475392793732208240961455518083382738863445244309596677102925000124338645039026871184187689461059142402218277497136437808422690823837668508667964548274076870357928152942782284021225657068179360117262391712594834670565513879131548891368926765788141422928015844178332936218392081806425774849627143451549052220733667446344628761485292901216354629843284220273321056134775184346938089033843108657584174936148952541743942910904336241436278649958885971608016173206640909653908333973711487257803918388891716263661479081202915596415016653673559386286713846408197809138830124410782236245397043606210056270819458246897090273641475007788164338774647774623535299890922583693931985701464904435611761257345816601730953098493790012093402000441954960128791139563006385443086514793308290870448429204426938398283328495137004571205137233049101217068900332141028247683126559728054081217360189675598773165270620931447850726330915690600156062127377204361553244779515061193707555412037219422951633767493633742913103857454545672777824904641842435520507738959915981377683528207863046387238209806518837073167920886576210873167640392238644578707147997670234179136088610722876850051896761729526551395105771036234880577486374001642043403028334223044114538013908146172204527555129624143219337303787961557768059072720598988334939183978255756918994451809107194938368396129008180626626509197136286104985591529865022594159436534571711903132106306266536030225003380016727112920682694207239537064122740495344958354053695552972997046710404233739110829400583484526241940165544969412058383627737724839121991779374790087655080646088984222479712782563606205108072920277626708627498315925830435915689297332875283778205125488143638277969089104524651086499632907655169367034958848569210524014460446356473473929029957494124297777122450313548983444123098946556074055812784744198851389771832317984785020421678487923599513776963616887883258150204300291257943087371738592252931713484479037819384121351066022514660490117167331029480733362570978741740002373781974995421360210067659852464472184162315778362670734706969382543151025649100162866847375174735460848190745199676561472788872031617347920306000547599686643574793576117707309564748711528378402181397905214648152608477506744710528013489518059975456082089921941531848294797488601158971838807636455644687241368585748840034982036048638877265979404546721321450111347668641923060624570449830162684387122513623110894909057782766374810722209802310361591354456492754989799032465903906443530247926407501717324150256223210918059877281665023081687152755676873616842066184994981492605937221009904610140322658734625913556539777828602303067875149023478655416507858751972241677885281007730894890447318772055425491173072462605664870044407700662684940519855355321859401508581782259995781208189513960568957546062512373363491238001179330662529898878423831003072960136208483973228550934655031678628385896893662828535184174731506374664046165929997228369224532320589331530046808934335026361189230411366123108868633359282010746047552321334282943056216939595963971394456214893146894454760397064605610637726781034410760932285400289949209540395246761534744311273771465964461108079248467885347457760528713701120626050794652359167274657140450965298109326261667468464011474466607941179475906800871063770036778961867027081862897213457360733925086117171941626528586379490577001339945806803674468304987021146919398563460659130858994552815836167441300964255502585651054849267584385021906631692103127758303645080393200246584621551358678146617468796258576603062181046096697908747215523481655844863644534969169725911636277960863378430932811564007857310435899085907432826815941491424399314541322747584898485898958696400257043632389365664894046950541591496749776940064916863610550538438536690805456085018378125067798694185918552314565732258053250038880481692506894140585414150130028205858182611713438396567771660075939002306903545166949058614812533093490611608814322990012272744419030605358792053855425238910155748158449840279486678250868929054659644255906716739249254640260647935809568366350013405237280927064451526316328391080403197365539160935604140667483411814634739047330167708794705595064458824228479623345454703572423274449099300372915002386233113506701944272787950533842281046043063545600393175685268830766669903059721266567375756447925734156439587281437633639439170248314491489666333463322998743847541854394161889301018364997684389761263034842790821794396099781355667017623722504889493236536565687121876403984684875453263092464424243019947843050517409881947303918671816487958922630551674780895827563548502538522253166287839096530660602914431648659974974186506511209259737138622290022511064990523088062272027045796582534099289150336622159611264246931214660887248716193236659822818395559175123551973322124374523487066051006888782268128710774996088858144813739437269794479882492972636268984889325257728160613185786318756103341695798186654756786555649964883877377515245260562822077725702224715288870065764715826272918329363527565772120542391644613606699779854245741670111735800709889943920944228361154266833985511041352090670304691725211209479118621686467828536856257110258970113323612864067275966451067434196167346376727089894108204667293121761840856479346718513367615369355742778455406862062123649982656976806488682754577775973690040783101136222444502413118065579070395689235393455151901453212782227036894670218102786021804759839566665186776189202661899922236075001109059642735787138349716362197510217219385007765759034069241132520042066509097434632424127094218604680144789797245791733220493566468839275256383451125509470623858565462615049257760665623545972003028396652657002075656896423311357551378641348247191297599601875389872125742634615967906595338332498171961395814379954934409615757438971524569933641417066818921850953426806361956055352376478193781594921173465422824495484361253429919709425043608990674503728246185454523027464194009938060578735065420499336098075195533646204644112244396897840092772701513239838406406489897885720360853515758493572869509962026692604967320200116512961534146719379245880531128325358904526397027119104147424068858442617824595261475309380772655619589749912900039116131686014606753003924822526347422888382669336505930674993071102528607114736000491360547698062626277296109899498559218634029666985139593042823967873516106379614761145066887674274984028753138396780258711369631236851935680429144738923065689088865219103917727613283498917894166452889916416132474421347319898810304132324000390165922291095556169680990256380117791183535387265904675981409712390050833229988556237776065019934133541930850731840801335369771839961110229220185015253288684282992964200671541947541912424675037831244510041244061790187540290046786570297872759333127970214155456901159064768663785060080438058755971018893648489165672213013169772650548101574320288141903300936759349544034673447717150144199056404015267645121725832038104699938033622347702234021520584902922448062472964657929089558603106916528878393542301389237296013731556439652108328607980430948631299240932786343149519779495485726819478226123839122286435299726162384356842735074635803783750625914128321833726761562462448849132774357568349474047788117851223530322554526802339843010405545731441581868616412359223395854135951537051897981217002447820543393523099265623231506611275432860568083981964569296409443425252321098824775373812489329113734863594914370952928758138907367011117966112692522450113027251019818169405492784063961565453839212161726570060246645090849422447335402517317020416025769419362270592642653480928201927592965548773797531366257585340603478623026322320149723044958967829146283545468131845169457431106183130532674851561434292945387108938591446438740167914363827414740084876903130245691123969838642509930774898515380305150728547755462319759067870076026428449508221891883359991921677572923138831735967915097764995439616487811024222400586626383434699195758103996851631908596778900713463880191491817789326866539454206688780624144620237731067550994915499843713662837765135257100620450304497869514259888259477794918089939141243936794166757191994293639390844994494630360388176102818226226242191548432004029569657583280513120866359739378694016053397966257771390278803494473284510432824648674071758216819993920385188038673343918785570273700475243322825415263288892050520020620032707494161315384750408433047852566725952694949257013579959963942444461770931802331166394187902493119065921293312749978809873430298411849003232534189087620565482766907165768442506416379392830332940493495494230745097749870610524941242447509917911202233214998714573448801035214133074960842697266507199834327184838135445383463485702089844505307340011280653540650646605758436596390908912683146881225624808476707068119601554264895748645509550736487391874933803587858275035173804302612701593333661476620183884566921493201602194003495625904127149974387213406328971213265868677373211580400724028341473956808060255622371159365089808591117752852211087723939261033178791129846515045376554508926986500902824582536910072277018639816503326760993544795768377217430466375434688900603600465766722213972443017429122705261936838729294689743707971865785786055475633518051351787691448815732959124812790711889245523135355126724258658773571679297910275110196282210408045778664954137571559418782109145973426223665926113446186571983358376859932210833935595193798018408634796163824262494778562025740126245144267990336557393609742451210967698837980605911518597750747875009320881418386505064702728128228645672203043384902604751457366535946467653078981575069730813020878555020398359206622268722482259586284163714510825716802395793867370503779990300331553898957813912234145138969250113117328870066965422128785898809172242552754029615937877605853433369756299959509128553381045397230855702597861454519844049828431101970983087436131046762783456107975826866717685467093927616711995656306348961240231781151885244943360817516121673743737494049971852341700505112539337114862905614594975544146081732400863943226773640130612040317144255388612162122474233438816908470325561792922436460623093698755116187758243998727673769036904774863988388338587214779058048919122330726447984871748364779424682252612672549442395753513843832713348809753096884258759595710470076636645170299546542364933510274343210338095297047341463930940817188336866838442110041400120495282114549373895455708509880021179343068805225115151595005906981939859645105884590767903805785269887460010814132030683882152715111160747317720693571898864427461988280437578302620553606275993839087844001734896012264001779628648852995023190108966789807284317201631812694117898309605125256419098199398475900811694159835686780000629492376508840590906196371361459696550466119583314111661570058855186953768446292071062354155352813540735490014847901679373312774495362513444224715265980438068066948348670440139866677451957303674173816345215894792459902430160780435062386119358745521316392181791973822965228767325522101079750242117832565912227348351890853058697396775329522888254905840873410797987463630331215936208436045228259801427598608481693779293451624490985447254127379908437769560638796987064861110895131090893623489256647878107621539485070004714449494157577690060045964158111767376795003191477522531368827297600795918833994948685513297536263226482162421601901266381507921184745033767103582173780356100165349115618667294576166551093576255998993929739731751154842904842432245245051123966357315158762084094269717816093551886883031987069626186398242914469083889456507246992524707343857208728508002677544848857742964673536640081117955397003135277107068781160805948529774788049952211589806124636350001112562829588443556482538258434231667483021402804303471756885890308880340019290238630462840243659851774805456124309264051836797846223585137904908483932433132272686671536966010138050212369053308734090151941553978314938955794758950367552920516208608461904773609570566042287482682568547396920254554865397950023885295871980184876529030904397289533247644818733311623989603065088834065700414602997088910522027248126786932632293827641898130427580564805636514544635777794759589723340780624136852183851560001476661504613948348134381347005743382278462467368640660028027477881956692400399053665779136788214632756185431914948475224778704509269607937194678033807710572303455686536352685302243387538165691888814061318015401112083925320580546094427856798716773079954645008474468066899538355227325612075578970772614126323122622457596500204871709785320958025227360596203582738753650334922048790671840698998678281878733882404819556307262699243952297782603564022840035511362238718974005072822660887243211263596526705161557216894009957997339937610994030037302993517864157194656743811100785674743432591186512605561496249778059575437999838725900926914911338128568769996777336188495665561246932434644768036957012143708382246840420201446380340715551233820019227608851849126988035735908738612065052557834486167192469118536024892475222288177930259686357793166902174712091676825241234836234714798873978750354467304217471600408653683466361042851815589252849423495999562581668686221394845947340172766095701806966118257832681035633162982160765772779091860662114496935152255202624166416805179469642036149933291373376042746899026429005939739785855955333194286204513070310055822105951836651417892053753604136042250086191852219120479174215149325338346622600248823502676037854940321695667051714785843224424277757238777572548200960079514453811016719346116505637824421260371515457340955847903174999043849530839761220261283770755460872595871767545901897950256302662431333943642768074498942750901711064911484337077403988585893907331911797324148948961263756469768725917818229354315669497951265133378558588624715353020700068502282400600147468816132399007250044136880026132276818985685080684784205114336162824309331467735285372974164490332578209712554847682874598198557801029395499494665454892384678017291826267761202683275183045588480102858308246074157312306981586671358581603272465212758769467214143119903767215625165252435712698101743561060789915365944754439834664182573577347889776369490979910074304163780568746324783099705845538196708868638586173569491072859414131374695716574143578271427629223020394570968523101573259092036713847235769406432038920503336167868839279794870240921054901628703131885556282786819517927982287567727061278377806426037123653598963193537793444414845022749942052301425548869147749720595154138574236679838219005684661540489181828469291901774683073233797854773502771844395875267510775244856389877890462012221444689174671660684880325390508344961724423832594165156334566844961389599359235880406306791393373922898986803329542869142360854809795159044147516219491570175178166785079788191023267699341959696341271564438349556536427829714858110408162826128732258069247496840725955733877654937834663793617219435434912958353507565635903654288710636051797272144032555812341198574827605365153936048663728069777708755415977672851640958454481028895033931784921410965624300910035803441644272851493537858561555344213460145895900157062254989131730202412485753228054292182136563334472899944802608589278932216680066079687395918091101218205971120689826259762995267815007539591400493820937239567546154432162286695575055065745023291918426373790651037233767208042888284699779784913845410608750801903202309920305139165528458032389014975653810023754485272145518507873836204469344751998657807221356440509610317681381434805736298870111312348049738798621832749670941691859836046833245841148867055539869087344009398400553870209940617962239779244903972824683215044181103649084532623124726059740172117797059108220900415393575437504833544489532203254407548259174592603636349074274304828057487894217207262934569315372771656532010105317469687714436349753763006604226461259570785463916708142383166510477699359312114165569023260841949591919623766915791226647685200747905977104970842565846017964603538565117236275848822056909788555030420000134432353027208136667662261328261963103619755012597966161710689895270352553231074571589729706130819048008925729981308068700799352643883007327358907274143075808662459800333488319101726236811581772671620219909041201234798770132821520186464802915977896658753499903391174438516288609643519489945618095628141977745581994969715391218308379626534084501371779310902386858816506355513304972166153291567933743977651092730293896397857902763175022093716000976537438093727564922897889683740732279172242924577236009241144251982315606409738045392642390054858806513564704377788540916965732393903383348579100457398046923539767602103234588888842826924972144711547550860409889630981496577925399843834209525513837836400036421749907490736203322722001194224124182686479136605150488916985173296564770509199003974576505608816336491358287185973243931954349966896719312848345398998045652584758655870453378078650556438078549719369935597184993454216313813060885607339660751910035934299998226825011876958956437076817593960059309071306303436723374380473345208184392014988370933436423834310897406898133911403161056343748457122189973877016167532205319189950690769085329440035276496233468481776275730571605648364769491435756932791696316055972677161751962570920508201814966163035863217911726586198089974623148982966502749579344303169770798981152400412926279682537943600253335680626892568073536601337883254819544305236139440594647428669936142946875664979175184467547905980740745559015962404947410450396627697716831519719920528626168609410866145708118346516500959211263689011923083262591696155029551681350466988892577009164605926952309420375040696748903774647345176169019877384446894113224414334106249885087714385808491317254021421811239770880549058324898631185690986377341828004414071096727373385473815496809055546026547871522805422983421874323000823103326982407893030693554905420401998763209721366977458890752951818511045542541669537165989836449529182263272984316973895845343202831615324875176382603356012283255832555553918210216680076128622053010050476381051692366777078007035575616999994179553076250996457798768020848462088296142544125069454340890834409380018137381109583397366696225734451602711913744146027880286479849628780306563568521810115536401411860805926538054295186148670558497118118762381514800144202606926178402132673275562702225084998750748928818757042054929034130133194159376282809782338175920140512990979618132985620473458735063180333794217871996711383834583886568902529226147374873561472777789479251971145513274257883123783130939168976501795395587077502043011357280281263716416309922641320598368661792744583062540686014904069989781169147910765996503540918866217045242171743359599369038433731554316123014939959122777068340512531043472726619664457961710241393184657032808865949214174625309246558724505288988194271355971913369007875077309491468554783008399843943951114005947571520764784533944728710397553749616283555446749693873041041339951392032810010584497186443286859668769148208584190549763247592224618095424892632657379934401601642365492328656494628628566258034384819788200230344119900087214595481221566638014074148231413224237855528354457811659427320813560169861753019583774686509383596881002362027591342210378291042289391310359485145842692986042462657738786647935889798760341380410260813227623555171623673683549956366316007296572175546974590204989218580982130318802748549600457218288089487712218585387894074996064829509487532001709642732743278986616131908922718475659280310761280478156569952177158180639676559326022961483935522176778987917262243659649188754652324593973524804454575380656287881724968107092185794822708009823344516608326783965442919039929890063052749469770867896393505260396827301497205458160273430363511190325750498540905885451732882132742534933394564897483902055773473591759060820728086391697967563528393305541689525874631126048975888941092544491178012638701221697575883213575666880648620649537597881967443114929396154205968705269971725497470861876467266851894208477257601541968354257874844630688476357714939032523237107698553237494213178952600971410232767131784949596325935888545961074919260704461427444705681503114035621683630891320935106738979328343036318526453454548677844003898179929217371485923503538088126658345773178978078290910336194289032733853107758986722052609534415589815495083383015838255359365232175108909157584607575545865743693367896505397612001430124049440613724360760363759458185653650688913361455324511311165236426158110662722762765204652519231087582407219852118671222635202982164381126166734199282871309692677253070314412300066806322237901385213005087268689622532825447133660911405050382927314172680148922724764813582555017057941504776390310251863870817832817253591678390442204257888287269597578656075328475782304088093956138660135923477751572996892176078108353940618928516977423849869221190201013841942048146585891748766766654008102349568707629878300591951810750882169455840935076957737878210310251079843795806173753986062400702182623588366353777984467033128124746163951383788280547540208600604696308807961382052757398949058922516642043331580470565008963777500321794043493078356485052204114126811793551614842750665499123387374497043386813816615614464769686889433569030817113243541147448774657935481692314175086573738318394632314505404072924007943346759745497201230774287774733953820267932362388408951155746408570490934348517600082897858974602973907925651209002453163877572999512976750731909657685615026063926217539661506599824665598857292936065512452042702880041242544622810028137085619576702501301663848531184878040936341099147774078248886111879917987912213243867546164549432524482410647992490275781623475330901090208073128874605609707430345719632932453432725300140439290353037500833110874440352948957867836744421853455490736458879975232193536659776378453154964811844869673125787257658616317234618780945758503743682521040071837606603094856705919879298354001698147094271619947095894309253400683110330177803276608024701237484692106396388792771929871552742980468926413511990374369211029181698098928766376582267245101948977410031007921979563562511515082184939127088850614020373416562865848083504436936072871193321894695309856138467854658795190036053509982289929861809360243744923488691075662579022369965766443528877525456497021590246035327808729393181441253530513352883201257339405165033756539714323578913889105923377123643077200002650891179183826234156745698726626059752752915740778414968340882971585092328059728088976889953205556335111217563028900387816012747123103761535996703894731567161589704475768320962137519102835822334769720505566351277107801135105886376360219635417337269863036913269688815096180537453382130909671247508107069545708611517173761925790722717791599176043481475634162431708784203292753607894105469917072356861754163061976622110406736141910467530708808830164572533811206969718198897582149959564146683058346653077024052477941670763873485191510673809419758327353648843763774817713245921606253547425790528737940675691784760183506758325372158560674588452084927034733224379488169136660611107691450526818446249322819960630495534527772499635531031972877650832725488903053816045990528012692567550206955533326001372727730231811506372544360436079632785182203443514621223909129837557275062141592536311232383020362404292172370226237285807992768748112673548439239525999698189514531045791607740839441416077107941414342119628308046271408480842164144501797485586204721478196106132085256444752671935484645449623526766193938682844507547448186737440081507384319435575406952405078133138746152795306703327595907422185209761256179793870225698466217758394419511236609919221435837546891481730485849549553509515078765384709249206340742790382422389228844615927618204055856466565901265283670774247060913255582822021121031847976225868536110598492250001643464176798542043928197018730444015164646237685917719235407386423601503292334366241660650225573902253377774944081320767858072285111038822477408320330850867267574435244562132751241453908421769815334719320218548022644624135271594272762446878448214851661603389672195228867193476827275416873957193322777037242896242813999444678195741962272788830097949395707923882431996054431403346597882896591951670482600121961431832400882242887871922356353746300603917757429806135893616566628193288808707231431661530629814697722562864234979231108548962229850368543824209097419177735945317073134822065985305404335440100885447873111533572107830188056165331867150847730513284407676325734943971834512799178910421510446663265450021250838073530907713589649072606793322287625170188427629311761375591357339787418934499429538720393526623763191942582086676080253153460935750068454849250382888961878144266067786127395202961779571761954281021925548093790559718277202721759513194408749513753243268220817441876333678918842877920971098371454352162614724044945440966521516148349221218005367140511854659300225396038596525479887062828760416688263089695166735453822357440123135367994344306568043528051499521126698555137667578774074889740709324769792846839272600299460612037950498585031905246646296122129603786419567898770187424326876200769148526939357079365720485886964015707137633279125342896997199155662411837096910906360521014499536896942461667816644490844039807839516517039813837631858062074642546670317102213511183481354887839790275625460461173144856145026026695993891087295369849310708787007026528317829379850385110802206778315243541924249120513534285026618319958332336634309025576060254483269751617736552776335182735019124761655390132207900085338832111866306740740446529590179743323259972999834633330051780356509699040403635663904704435107185500353862506547495688782608777828717369635911898249739245081587966460141210994678673707480163595092987675320588668463676872439721759493593540516667269128294081120590472147285016009223319936966782251881386985620407826448707012233897919153224693360520517366625140181081254614010936034308651140336912381555108269666504099243019626151459157760947646095205895771937656683956344863578654121151628426162958901869209477363658334691430356501087157517486992554627137263670927957574922431996357092035704023545650627772877569183579121160869534338453814918457865428714587928969851209905598967859966205558481815548931183198474014022665002768090463573434857949515201052492579167223590386421768445733581727729096488210237380963535996392807104996230089522779497219158463884673935459615366297940827556424631049034746921671526435259642968602536971478188980054122061218292872739141387110842958976388362639531042568507448368852287906160142003144989607520095271237405907444902613720800458516040899603604577585458357760875237811079644497237362148952499777511325952492140178027874055051540448026551873262991143168643824717707717220257177845033012446038425105252248935311577330605016050835672442702741577091616897791998812057733124925558724324133552732436090419247135015749388154273667131732821103516915532629266389228181806961402941588200758170536654218978963549862366311155141048970357862714691235464384099233831105857814679625954848427378903059211689126923260941713223535945073712800280961758393625513153727561348930544746644656120863569791440317065966481113200196588900005730402110187119108658398379639821658722602059544093560810154544717018475704467322956739269672716424619483128218263467669434477985235299594834223968847378252027995779367715146027639201428207681251631035026818900076189302210893210964762046325695415827236960321885769615621681392258622783622416791221548909788998832125059933476546106724795442303140537792510558533192636941672528560363561422635582180338823907015113101993141547479436501292620029772035249019448793657062824697814443659430952797431693309005954709839997301436008199400717673110520407787792712440462787106487032858690213621332636694981047785396441284130853171809376331729549436261135405907642625129469138370636318513227526859370080391145294579874481396983273101336018736285584255014236893494645976297922370177220456855360176650005630641076110113517916629109510880470176747477493906770680293119795796827426448850202135899504408618981230883617955538032297623926742686062804625953956235847393722858737823775878912600187423730701411137600700289706547702526260781051798846659206789516328472539222970321502290077981735983633009362841529650092618059649934761528783037753278209265505614968381084934937637785692929034048806108762406258316825307941454856262812773524407838379321863722900431610576634158689088315414956251768174700802800662607813416930407144051979590768877995846257113347929036130407845480894606075038280336699158014141365667726180315852832546763017529183696101317286891260301494241649577583173041217204909073999368369736768240266507389879132090041022804881457508955262158580874952544922182246487114691445805135364718803684505769698534343130830180930582900740748384920812781088106825591030091735480055383596536917710168267411725088573210832427453443914631192590149777666865186157582831888433094244641935852727215231953907986624174510895130317530979448714740781402962515180721438107922383527219426021128893038664554166056325128097974043457445285948761838128888006854375642829381932661726756069772591846042048281608766382689169739235709528415145148000086745254212457115866722781453928357919475006194053244568519393492615530405081962922078085355558978481222509065204449551261797699750433415053843381746548363315629456341942509198084591565722131107875291969011525127908641613184433089251833380907973173801668323051800280359108098166250115780063537530321837253175370216587861240807348043875995116207149908455691217632295963885523158209436248865728970778361263428109547491918533711238955810715099647203123670651127192406212613037118946957561803295382916389307860167869180758062070282706813663917384705892674827983778983255192809696718845440480583195386854552037080185928424552935541219496387209941030599735424910899152953591154853980295426966433145922405709840853792412512464316373236037056326236307278473013454867687914990553228999348181335770669136148587195420828074043800336078246831002035179750055412996221200575323810492515019994763751891922647582685500667768519515507997755088673668456360045877744597910694266962259862703819004475586738763948167432235417210356061200925287510726946676609955782150809302328373183567845533140188820920939748018531284994669214214769445034865012728960835301995341311304932880722314701922057085818146633145629166569708925529287051602743952776516681627267482632911429925931986229886027380690658495044517593669936029022303744109643628429377996821949427937510754636667306035094371357446607307037194322397196528741503828672998861013939323599105021803636178085280979635280011354372022175017438029601371120016931665648237702832128623511247337567505675028025890202420498772081092985080538056949799851594033674797131181820090215691267769830793794094964923440514446237591870335337036480894997771939490353156466107646896065603768658480554338908942513108347763674524497711703035291082227965698575857364165725641133202293316607565581145884949973128970699900456357559619724411957387132678559434307694775695383773968547078135117167665989113782533210953626324048606155866919751357950801092817635300040166281670581157989410995709604885244898245006354770595210950879483310204833929072777736077662099121141507569170176117197647879694561966892365753393334313815905836406514830097643234139149511908059363865240861212046021910311617013921794564536908399155610617997738007450013312685899191439637472282917968822638742857705580077671960750910180150980634418418939340263191032008933126181616188217087396363778759053218434956600462797860423970627735142599701229467914639735448110335735047916949721521125257879275271398558879898533112906480348468751563943719165135531598308928946075466501458499231933766074469281535175743418723352100462822098600507554505761217945870890718065629240846429877539391313825502414305821252104472507953947553028404591833231806007163365405846518127071204532688288437258998030233083412377287233294677779496830625168271052946975457947382279970684061156803303658944117846399240104466231744167199458393115685238959327992148374714704480885468665500528557959390816866393007976245712401305452304838807060607052162476182357448694613506762445421928483118229815121943108334906061492101196895179689433389784795893286510139370197396823594556202705434155039840002466503307328370249068816950523768957770887390789608129933951083852626534501141982034655530233359992999208862219097277374048702732657484773618709261216793538208504363891606943127341129051742129272259333956752929283274407119708538967527606357704812588158427480654737690595358717763030641696210577100394578982677491288499746271329322028648310546673724806713795458494302686436556426217923026523660352870665013515401245660351138456997726763249236060268258899411209157148613394943248389082107822039986949142896305589397637182477861918058158629019802747272853582498278547001814261895363248968458745918844739405313936098662342285367079371044636467486403650701532080280165811270919555021831391634644164237743655777140170721442900214727379358753249892972220874115493133629125952084919449196454733420180223946700480964464210992771439193589195029098669965504114411187778083799786234492648546446807031910759670205182410674662099753282713361309300681755077307212017353592208239967333189447132744265665486994246771182756827712178683316259441759908033723830173299475718095875226107119355320297381120846978492152312077497791154606495798368617990966852495410738946826534531744802875449335548353745027042532766265286305317085218442850221076790023882060547703488781906232483318051872547683700326304802157419770835955819549974892264246417414421439579282452605156070121111903095065935030820904734592277088706355099601567847986018034131933427474945739400128072812201609965432464734738473536260167573933693341967965022172341646603791671331618365037801270781279592680105837508315178689274708667289417228798041577348732274413846039588971853709161120871784797781438422021397490606600648967304121218318500409324358339046103390801613656166721464428779015661596493776241541014649581167930203469342917210997143490486480492539743543690254023662632524779965477638830109001197288550180829793915505221041468049140007699831705859497072281144866720099664470262029984669724356478606648163043317904373126442979031962807402018256268340644340963198666006645226650310582635995360235419084654553323318149498192819500034380742889835888950136453528382702797890420782267202362678136221365747367154317629766892128557275640296967378109573362828622997673967118251673272084235261024189565610682374570218364364789220078444599720586381382614275710237946030525688428216983648462465272651990928612866949624586108358880251525500882864502476499903742883159978288148336333321843128909100396312970403371679309887737702171383867526982166055040745885162311970753058864241578867758622050641919623422470781178795494401800467004157501457921883854801088935613516559366964247347433742080181438320015636695611354249139972646099709826719466012059126050542694167916306177814265278098448195808749057661918914316030689284149556962728105866259436017273632249979224368730976797036756440482479300368436052074977714191744281039547984184388329292809802329861958572394516770005790248590303875130265662507355364702493894816773517520621159503559340931929279946278855463033432417498572868047895999800978921784391360570101870114861888659038181000032870392692572643044990634247462942324974896035085852402979843257756733892377131145194497904760502744925791194452348641667483007354001449516127629689999187748800734735626454232516968913751445476688522582770426338322014483127498524884084429959107869993123351144340911454860157334312110036432886901079290338698290702268823486440907163777914807750805305469966337420828385885978807203062872248308853967117102931390751124903794469034671503248952119552201438772250574215598772561427076338658357119092602886067334895991346809523854554245259545601194061009593741363344500543112946528720048948791995288212619825534611007655796434469396104949885648121072996840888633368021717509187352070778909706007758635956076686690851117927474693508376730955406611511874010896041426937529350402863061038939836379394457707300202949979670893539030810119339281523301078917497443753574456013572546114049257254423085364688100722376671027889515736141650611844327384344754512307220333979832320768410533032314323044102043065377825377242170244221610270962471434579227867814974971224202122062095442527306023340458546096601740232395943745266841916395004754251087749783983062236472128363714531580334022337843382892085698418654214197706761075447440093986296915358067174595763925648575579261855409647715490287881541454881105224606018105790818787569805430976248865429323653173113681378222643914303319802519211814681235132707514242689909765976576713626848772045973075161817662906487010876045088201328501598653149072817711062407141102336243687683879920490007151401160035898539785759437957150128607526369127961746118074676007775471723876688365701926626873629753352209179811049999890307228223057029229709392615599532800166430099112581976689150790971361726818370891737334924233772528947485956513108960620113564577825044890926048579339089570528656734315777973322852156150003742448726099478199319136618419906158223214070129495324555848016635117020670232362604665971392549160713478760663156018153122873180914925267477590121446090238230048889017483643857281108023111944713179105824887172222790907008703858592429717248386803412508805145736910199747035426784388892987512783598028814645111660344871495038786078569795392225830750101344665040751986814021072079901477919101446554475175263950640935294156087435523174988650008088960162075428537613718778848154432121587899398767163128986409431801278723777605357054873041917314021768890273509956275421826157569471464293517705546916572882619762095184310198743625332374185560196326148260456760120009133771841449866613173393870005413389165153730729530423217987856756593139246070987669395965582642866613621784009247167886612153185188287966328340249940384259229878501777353108133674814996117134677663841819769259718890630708133808647921407312034131633204810341435887911087574179688472327982131314420890074575712023401693513851669878210010364205438011929829947077501091144811644863797856582178680079661644937768248015044099177294215249514005736525263805150210810297183252671224799862443385982215936513247843804318204239750814773672671534401655848258057105424562073519700226434494284701444225637806382171616396971373147156059665575488806764381864658766955897061645304053061555690210628570110305688099855448658520081027782684864143321687382446318654046784631825959986829639317166083773222709186009643079245859608727407992338404338054553598800474016959399581133971580671819944754275160889557103693642073847405444832208817337747605435833484796131826328962829599056219863864724128873661451812256692663858911929717745616972337519658109343818528463853843126306691972398831182532504101857456326424767968980453801494659438861655878123150996549231534217038069999392016394365337364058750817929470597829120075839168177971420508959417781197607573552432234833622747169020831272679333941344752997921405377439038295605400390922050500404778796065765195127672108520848594819352153018508442114678958976157441599815193318922667980438617318437142145146452326413886471311743554389800788312266946221832494041337811600936730698223612389859222697552005254629552739638582560377879882888850761723945371398344220064476660873803446204564117026469038099521408683799957060501606784480571524672176319850476044671398406777420621169967938273391972372694337675939157427213664387310207309273525646222580534327797917015645885238772647977633141202335085580475795371793408096172121200613384463040315927047752076375259479887081309769189620867512058195963878704951733867004697496847696189722394034735884750129142358368198047246134674860755887904215356443588446021720195386212121363616745945430389146952954369779494278649115675196095360816499250505244580174224341463839112807996256563744048167446883686840360869395327115178640990173633423019805182571871441572416177041266798990907009261050886641596371152837803647451207733615507034677472644124662836176923867750807572971479972433365425265333769178572709468511868577789872593631302014215753607843127624640610613830362221610495550772559506661588977436664004644939393209828247938435821469216665216125646946111800361537615947017072876281285205666860124223580767055223479616063590215010661269921351200122728267194433530458367689589794055971309485838200844718946112229096415442775593014554052708300374747818550954651624943249980851657405766681001577783810534678721540378252492936690876502259183917272712016183385255090140838217415201013548227493345786973288894324702561583297312540506540699828625125170549541292843704086912590264375565975756344634669059914451380008875072419405563688424152113614819680722976314244030602777893098760850340628898225763452457633011590410602142006504594796789604184954696926210555072762921291988603649118942527797473622295833425823478364456684552503010476426412474406225793664225732716318350809147239335410458840725139692465838429250210962895988704962260394106079374542278445852228832102018700672464299829265544554442130697624910346309001759699424512704140270463691408358281822316349148876836586383677427640884665195916272266776758987655422277730107641798757935426182059527166690919880718093475238021609668858137992471768433567475018973994350571435794031489326502304539728084256242075861228098547747937693078177967179767087440913952585293862210347236001413264072499419912856205478511705904088297544080900662296411542424225542243646960253748708332712572193554953808252400656564620919821318599075749449693571042573834825197380046781696085192333839639929681025515473772836897847876959150558264311085632767050853224742018132759401001733868113129445366314004332598519971452970133832876764582153718422592451586993698309673690526788253181518939496443888806274077741988406960480207676927813037240740640721233144075514342199726909721222275702320887527199200690268370264609884372420721939297259732895500050106243905516251301219338657542822484983319488397868888862928810106133106829616658251155073096930115749548075792559549424182167269068661999174922271662025496835946109887238428180273707261371412556014910556597048553867282530929216720265866694313347113074442056134592670408165786950845685783211515053768573665836146512050190592876774497496366586426542236839745200189089590824372661700638177032556085682335318344161006204983706763232730114823067223211888070397918487585732688824175802655597355635978470863226095486264020904728975816061940842160495286096531992088666881901342258934972143878745713103053905884579680621023720375698781771957165677888258906446937548763965293248426675996726265739948755898039148759928981339103423825919623276859831429164872250615729750564346454166144592274146398433651955869879641233942681150723608608356843193405805978095482690015789183384483798664474584825550334629345799557745341897124638710863778468455243702598311164275613153258026829479851855967661797882587574221018622894546224435416312097328705374339014584345903739660366279374976970740848834503294183146522359390903019256956637909689273530055880019629848809336352582288785164107975941990382725943413915574276264131622462883848955979070560127993241289486052727310315285260880849638213756739791087406223643368900228557098003587268892205811463670034875101015339531778732770147707627596045787467266820877783200435565837930482012268941068076353471366648573962509578309134546057859901467661195500029500540192468949450351853577771135383078402649779600241736359793727328829084450014842783984552081158841687029623978961208174603470516065946240306881407483006088074153171073662571536957821495130967199134450536907895690680643986627201972417859714267884793559947493234040393369964486768715491173861995125743674940076858977622769023289591996132649442387083531198321889625883730133767689020506835590400639732671329015692748312335437807025292694727116556465556513126155743716788249746401773249997139825256561776545374088145637403422007164506774026839479921629614770035535928665292361154795656578567442804758856475462486024265713708249794231453321488272351998917062678109488169411107573873745888932409647741038638043633217358567334792961188866031081456926167435010207968438837157003051900401062042615985866871198293371039924828972422993692163548071728363954977424903142458585614832434164972395661491846872512645450082182866033537421986207936429959073811751379305430202408878491676835173806836419567043294684066859842436508376165746843996418067027958922437447701187716560594498023905168719888166848308677541869407893222252065094173103139558632128726263939922965123430185367551182550953067783125500388828382477870498817642200780743937450790582029304716456606267916385379278706080742154686733919311847075576805643589101440633877545543753977035743910048170713391021807363827669803720668727743720138665919213161442865076270984642032606089221361840528349176307810129341865503943543874698230009334534189829343712290670584782692777046303868059512271032441267066719618001655121027737748411356505481899634410825507509043337600225883658755401973276458751469615527328869482836811456765753702106139875695757264177574182023152873949689691019191363333071946931992203647215357369666641491015335421121502423861754900720738855352120835858272543355731033890272419354970335110074464715002388136026169862673078406995136635400068885293875264713574141017449005651687946676035715951284166849737110728977591200742105927111611240905020969267955127333482498628145261301566929100029121058873724943019206670469664677467117965307729173753346174959451166370036091996747629104704567527747490132630250363606664896063909750944731975629174857715619267141052972332240089344349206266784868115293244984746342535912699419357746971104253738974182579993341168281867370363872763642151490838538558519222793181695208872579948148436972557751054807633657454633110927475826850016376255031377488920260460287978976178740138796043212510290763180354410793042306173835270114480398100640831190671639667808720764048937216630447374002779420829852827816737709643375903504123456682389137268005768216935525541193142191054632879252398456552456615840803250274856690649057133965350978800421332491691294018371794814149227559938410162352952323119148774728935675589301651828755627353983282650001334741837424563868595601297732714977169570471057836193695230358332651677003955444348610894958039363820954511554011192613549287048482691937512125156921271794686831784091398945573870027030629968399503152311011694654592743799507791453731005960196571280010020830735407556802112341708616141441648467456216012364182489797198220794173032709399283015963931491936772285154876115784095002890733807440142249558800137031292065725168056901748345961698780490555709924448826114178170936061604263819612819150426966658285105067941659840159584254227062518384150692022395480931870840823673334049130165044209551681563864585892080449562810097197546551481105766867969809431131404770078756158017222369169929749419717646307984712124338764745359192525931575021813652942365118627710104912354553069822071840600840772765717461275443254223210439910712601599083042312989661356467160288213140465103617659801407841043140817880326506104017804753404391363085143041749508229191535285838230115697211923168049630110766570259169677443269995370054028438066586643159353328503466583240322625627921341929845009047432964790124927667525632324859568721217621113572045868655705559088851430881701885924072296958691148330556532930728112585631938209766171658872668702736229467982337047388539654996009772925977152581038676976194623892745554748114627960331056330726737393835112134187401597174316941115622026277290252345143765556340334043716854368038668883862565994912392672021422800328985695235125490031295897983186417532681227164913644345380430582921214115576490557190985144212950955522757086543263351178111570399583928546695666697067932547728591049283854014524397176839948996339071540125061398397315146907368831173481245560657383622968504337550977289626909958372262425808980087728043307631545522331462854977429036593773393846145252077257146459483041503829688971663453673342825038597120420831641574060555839966740004499675758963146873800296696632281267030117543197007147200117586305515867822859414884622985805845804704019361556164664041222283064992919149413050029415832255001345920415392174481021371404207974722896389397416627759577573524179506329083784407846127693195780161802994793411134549384391276511025707255550613417597656396918670924443228016122251523222410140884552947242419078075003137365581531350730322910341577173794084918562715235238488838811745193897642542994964891996723719896014331087677349322945174017167792086641011084838407570756630490195118100060225289373211425696676473605928261191299941887559753499701372767357776147679408468937768936990569082143456359457965389764978393561666297927546723587266999215301490771274678656208323865328476744258180962208174647078415085414532942626946734917673693290754545976965993069167956461316666856967554059321994712710873306303411518731880932388557165458235808337318079030754152272542908070180945777240625775827279029588002136700917556933460984466158373472052596609421594264047472309046856601707529848492110464767025459857535650375848360249939401221208679161767120705064816579087029491314793485600574646861467851100752696440071325570180874086700248110781082751481605847149198840251770930222087920065290012994324522467817812794444416210831784043040352806712123351929962429296901693651505849634216218927821708305743081915796048843936896862674341961508657643169024119156129077866949549118380529459101644939925801714348374181514719628358461986298901818134380342224201961670907391837089834957713538678575279984317460171499321086872497718062478348424544455939862167201491773547635468788855376169302027153208055820712389528556402622529961948496741588687108586506602633533865936746717155769069609453466930784845401189196049519125539027489160673054604054463502967263075052175181740987191248493286630245513872159239387155525902854061653811593160386136497360407654072181843122383054504176005679471640357892495615165277510563455923171983390887360335229290803609965020760606934926447395745198661652763224212132444495547314383000595331745019662766687850317940317228075692879005542406453509667022834586288539290977657359017459012277086978788963550051865315765307955006295845839855491001147279274821962792222089607306254283533029728066324119724252414302050657423437006803785582683898841091661684128195946460599739551224240716217259749079173417611969704662177659404943684248337970866225296531300607192926467362877685362992659348850594139961709364102422037105943149900736804707662167164289003367266056127703835704620359992119080434015655056568122916739463912157486042881315519341580936218096325266776847039884056975636175931780277782131602954900958215217277315568357487608911248989566472117868886160565855385441024995638171729225684794650062443337718203705280061345713678024142968160483423284605611383607211818254411135720385235647158830349231636169197644755064257800116267481992467817407244708628974981453608723022779904626531262844424739618635121286440474263217513345320318602080845234960634762986659367417279287230373379808047913327024171130841002340957233641674343974009917092461762110166404396819256275402429459011579985105412625750458994441129743179090913408276993995085483970741058446421510010520771439548818422951593046840239264198875851651741279784744873981395055683831378855899130021979940674650900476226013889845232513375688748411636664691489095933381693832944530007348066295739409041016859155975453748249906427414563160709435122464035411547359547052092067793189744764455153438332621049913396124934922064717734309951198912694968288329902775428603621484385298728396529195919288830735751728478466652208185602869368832034289367467960471212307746624106730666575015669438489128894521895304882065947544041526554383160833421323563335855223550664543753213553804599390750104214374987194561588046022617249835007586447810127635876687855663189957533313094122134792579310431682801155269944381593827442194075822260950625898990239720927814049042925139825389559084172281591297672793579028141146641341567764790638499630081160620729140159267063865697016897480664416517900460535519921094658717213144161824382833361466599688733598632951708575242112702773286025865923934641003939387262357674682449418863537305073426693610744190977019572891329713210721244412987402303664753357708236870156803407683261294149219065044012276123168312252311735949090480047564727548377428736281336440095920043196172414875334695677747504573034350450470493842353285338995585890834733420017545959753034200847044911017521439449040122948815528545318238531559650488241782508519793817064352484801587203468125041188087870419728046985122881984584142690240767890041764897710579842969428784166042366022364272298035348442661573253201413964405861556723954171645364011486577112205430828773187166864979236701182982880307676218388061271273434560694414549243640738788933865983551329514817011455196641368890870100802659935494717317153173555965636191886793268311997424464967342924058020240359030502611504878595108113819071203479812674623237622230123485758888143018962324830702106922487677382925088580818109834885049189770126366244713341350292031698113906007437671918573146814202270020648101015642824301528184431322342747882825351093000518734644927028983199297174350953235916564044920096711951910209591542630130145765627882580369854712733020470747786812976217978414667857394388899088634773101064700817193104533804033441324904039653657708529677734265975269840884377925537127096646753874559231128975606396820419039802479592545530637242942031068187752779235720003949103309800879484655171685698147458256618610676907192506142060911271952065673927492085201516713446639967485876236364434795566819428783053789014334642755914173990784612233508157594048501041698030367888320347435041672168587537161115763959170089446651009734890720241123800187148536986455383173316506176588161083749009266151033815658213258636596411322747577122063485787468713429710778308108783853901402682841455620848301489090979312236996692183391272366332551906218461737812196207842538881104925115124771711728311842253718309256660249493377109637372996397937529822069575402187719171889574073961179964233487421437886909464065172202573719267477546269974138366314176285867021155945955976286542789331249659513732433913345632062784718695742819595693343924727553973931404712084997474705305451051834483332360464304818146090644089923042995290964551629427971683984292724507123352108683013433005928420862396955710175542946664032351275032546354230742962690783803367720761789942472810011954547046597518706866057857547985198700894233756249267172939885988412542870948131315810947955715431255790248920625226213999489464220602298878066578525805171404714022308481381343998530428880260309391691403013861033187088990081272246885992591536490687861775112351884099638950964722232890546361029198638503136962243096957458158249220099503145252897183421072572222952226180978957309973221884247052634757970272035314404681523031556213883251720644299259597257267733280095451238490437005903521160416372681596029524715867763232100176327889275842051393260304472652447445596273558286940023583160384196376743266505105497528357568210253221838609089672782412423775071188834210486810098257963503079877045716525881802834195441868204240305202577501559415767999505522046190094422792001340252068001592042883010012830042196957718404231614256210766083207052257938890618424592590333915585382604060218472878312904971753188288270074278079880979943720586998973950679675355769575623668708478779569763160349226431022869807137830390437719540539164802737034992934268938452055095156689632588554832519475862645064100033469082902174772942064710602424322571827013005672255767029418337554470091992453444728577954105519369151578944061567247029005444365356970910938614795124843364085161127937064238375891083713954027999837026254579410158170356327249135408928653150455890839564388114526416487928061019051632786774783535835001785163975043950009755305977577199303897341273577596940942487741826624283654814757749857356448942623070206743410985564731732779050743419841243960191815490310908279164666665235964419614364235956555789888613260366302070126230420853399241969670431443682632224919665553134746169261437385593368958511849615823461138950515142637753814240917820828394041024453920359472739189380114263883276210314665169572127564751146995428092198615387596049537312042140762928492077849127808535972963007041287278821965011436040026935174366591646222203122503041559702320732764182146158176814818948852023688468391347369340080972711086456504392979020631429046391276324291288067483722980679203373685217004524915525710083013435800647647181630182276732054976966315482616487348593981889957280605555261572765842111846331385872341880574523616155252216640122638413058456469295868601065060124143510139215094269274087175348613430997567541268257322391295010984882497343370202026944064361671739170113159735889552680712376862589521120794161873408578219973889176968654588058484724418554093752888144573659259861891231572427028038620018496433480943061180178516574541606432636330666100449072104007971018186530960032672602391155725873794798602666136956027142630508162581570211108553239936448097497826379656938140985494414018640848837267670433355907172984578483409766864095813353670314064119433976527416194276185149006730342630352528457377497281753713413606055537254362499640223731712307817405949617652987209563248939021437540616282616289996631748657524319432865446142442364620840489578116554277145416198597981121555365111495390923530951880295990894983929434313205544194548448404356074311019859030766833673195891017430377845051681602697176106162297918422995909098985722696393827958734754570476683019585211926700632552482981458203772087717878852494349091224967794774927477934937648905007877864487144445522485827997226892737305364734756973592086007776646021410727342512822452868365200904226812324193163135700223930152906166056351036821372356108499405507615050589302058582980526393901651320655902159799481615119990714472696334339803858824212895002862115492208877089214440165606682312167174787370867922606947747933759585213995301832903337431754385939323822379507197422370126999093546590051996768491724860607527589156855603287887728255981236959685173060244642644571439602676400721513279121976719398825261659686530930662822945544131369053257879527951448164010585621009022642556545901071945156369513911634083458514567420142573099560600586032242572913840808719783026917017640618860817170513492593850447357292605862031315996073043492301240820051121734393402965331033647203984437013037932372895437214700713497476956490713248921580211185617962486191433770266505172910695827016992509284185107860998384583665074759432587652075416263364698526573000996488200237219081621969904652369156491562302192343671215041102920978920601763519650517258474502726706680660707226205211353451151714348877045786401933434255799997456774106507279987093741273978098656224503504162235779922031772600484356328013910695948156376419998159043767865372817871361281212116625144440799337945220112137998552559337606327179202808414600342174885971157227119813560546148971485942629676479592776566609562142787240752659854777676852144797977018779253735770752776702224366018189785716323993544478407335906256744077429090622300401603849214977433666972266764679447676537600644896929768107480282130623573630426269472790661330122571570605101523127683451846792603877450640203810792112104392124487225107452892498105347223964960049131820765184495174411362485472926627305830900165517937566651959712324767900989022554382697581709546118836321796239485253529552795157344082026544514330769850059998874008749967097274614173190529082290366781247928654753302303713356614582609954003215001622494336254400375424309768752185614950099142471878137041540868507625387953093705251421605318711109368983927750611984340746515359477499139718533225849716528741766750522255397690963131872323841677934096438622946480819780854570272404261950478588268736448328051707097835943905120270161059605410991047593791945501825423078537984875816955879669829322681951363150330646795949648503604793385393686724403379053059734286147344981113678337586205833189077535924371137600561896391054287500314203462832399675314064642764065247584673018168852046426466725835901885182700300967491259995807619228140662684570867279597787068837769211360639019895295437580984447556528215313266134117467841644883227409617581756496846878352897761661017693492155554383410328380271319008930650357954503534171491154839679095583062214365101242736062809611486587966639698565633599371445430760794641028746168930649220891547561382883009381675373135280237815189423473828887638225912574808436785121560233265234721406862504282553726292417581841254719715451212407996535016884888839172744464140381600317989298182388199810613570216562502048567128429240737183627985895514018510478951931627825770685507247574136323973494752876511163355338835180102080970203998037397491660711215476496400914443560609762132318889788155436493555745790887062332620939528171568659429700465831443182855992714826550307238754701780896867894224251786732722624003113055307746344763987950453640767342968435765154340999184699934626920429530650550945144463010749634240284695510407936179225676728824525165544218920747678553056369775200343489671532587068917763175674767788397039254425012155699860680993844766174679975263034401133808730457610163636137688759976001692256853690604251910906585178116760567736546674450629154348963322186789196146095082705475153528688523395299664760761265158582557792616718037804919837968013252330767939940988114130048651593746968013262156650321421247503387661071198007559916475235932164566377348261870635587357876803734042917530425335961317477243204640550055568628097050445991161664571877658879874908293826507182113050945111596967653705076461177961396737134991713776961429052562770682275741858746134824664277862488088532581600678347088785441544130904378518501910700804127317941187257203182931981915254498722617313579374497238655383672341483347699398570789486027394474076901980319661053356876817526549953522782338265957414193446235939394570390378520234010323872603307128617100950003203948929834021362197102999206444753058082248247084905102870123199453374050546680782532196416904229072914641652033094918302448095647458076088560278727918924712890977452906868935789348815604646436497622547494949461439711918184457613581189538041103996047114724459175241614737326875180985343941254214063270672753278290677469774004349340277243180760786853901746979576993303011930391695226766255791017322250726959746701728046248688728393383549322411065055213485857458331509437189127078694432212772914042490633578693064241656240564611350322822441286099090298239000330626293619053592259100950300274833165619633386271719635880088310081260458336289243538478638640116780229069234284044262660959659719407557038520201877693435313398379138252548659685747212247413904877355483088791644091436153401518859937744228742671560371983255659497695588931418804020630750229057129443707356337417607456111841874518372740109932452860285194279125911074255637274355250797103728536908101114949342106868501840592013478992017759157598135080765552124428418905809814058651629349770785030546156664302312656860853726754711855727040995884488180787993755044232236761227196888752691266968592868415775540462925611465877200167441130854401182812484227705216357304551145080738858418943055884582816447820910128976810011827127006230078217488106491198676877106544315859911523815375650822810908471808971758404983701192619613058004198604927251623957375794127075964383270903613439370672051309223160152577956118210332500218829380648461849672661568930965195102448509207382475245749363528733067778423291701002755546872286470793064598390233388441159299783289532191185292858048705586994427276939207462608694088893004259285149737378425543512232540287851212082100260331181998096101410737398899387875327493597335576514015852238036948069725260956528796482151438179926672429579392252137252760144289691503978175444352288369207050697826683759230628188818277277695868843143269755128365410722290219111313588150337305754486376109319462729562836517133982965034374439445485905548149052047006569154602180995601064663516804835291583416760839254407987772418505494015217554412949101215088694073011940181830233290430162995562622816676456268209402741454038648330567138634409346597903233548005810662233087742118483207164779013106531491374942075765966617965578892561619500731868432314092952745631985338555497319055223118286150989350903296057101270937293147640897103819987006682395919056046987628656329351176205427173801789779129605770608034847368254261839747576591184041173275825779220518502501583547608467911694418769533012736300357504226466558033335076502815833272524682424064875776298284217857795895254719196990002171858786724163986672804585168368475679360388714615555464590710137126735962611631888360889744381063274626793278639745816459858851820501880048675575802253373810949501758663485866966592050567261377348773055983045653835815442953614231692234400922919686396833419271498110007427864307963949150040239374473216466770423251109270205453330602282622121099769565032105393035072775585152696590159566654754942622030014070713137918280252204713116939466104504054606419757161776650884852684419743900224774188836170397036887374444524048831379299206376552447783627161102328385153470955662164551116764407145984796411715741333707361991118564609714059803277553582339145778690931855576360449620177148433142611963902933065955378181841954126877394449717728206553252377138684423349521860916387094130091207150002052374705121737343228288397643136920133573954042444683914960259217458822136000071384440518732557648337553332668577480830914758795657474389077197708949085915980071183773037448219658028915091726443609895238332980050950243544987742578836663859743837113145768067954503678660831589837003374149339981408874581942549939002732503432226394893710821023919646960437343359295337012667188504592671060709654471399961545569458561025106466183033355606060022083930399072725644002784583331989484545578422581298687638887383838352504478825940845670295161894025986106979483923742494112928505410130596851086448181940744587147821026742396960795670467038438143060870137019414953766361038083239002551042385680145545854080880963028910775162287052066866896460992161604881067995974852458730960226914044804263069760887224106895436672141139106577867496312566758791127854858003160724713141473784204590821626638481040371897764674706650002810146619037845099551502607377078435695049673056135610898313501634861837398097324749999954778076338809827659003269727084963648508713630527093992152875895312089694545205201206272731248889415509083140536610158137815382168253423840946631497483439295670473785432376614175224179639574054787368906038379453981758941401368290644518648883683225354183835171057241809620277591784776014353163016284366277654226322498182281188242508515147306376675019740565928668653004815078941011320899392935373795058388792243075881117002257947170271724431427687886355516756050390833494744315405596535680572642121907540449009242508588890309007353518653722064652986445733175863974299585676228814435798867101564314977321415766097782091290680469750737304120625554023150406173984181528846699036005950361150874611894019839666902098486701884145826682555872419004310828860707733844878105789264059671071117482010765789365885393942541994098845456493329390363236378051789922283993876618716703981333166142254865787222394022209552593229867649518786459421104749131335074914135917245695443880991295942417863407096769580981313126028320831476143498075137392459948798557263209031159390917326002374968718708292352252223340667927717215401716156254921122994858560029534802475591494882155730800850327570438912093704797418385161490188865178613563465105818540018128836077232078832473528537845791123561860439119812692950952284149169080063180846194332917311114286138452150767718925285807514710367697776627326977052254403287829000770525944322092779698988158770710261932688980577460446980170244061417840568482500156653060675395074701760348641841861990125358380546579984511209095252618920606551175503217382689104237979589099839267785812524785895087052193482173195674300559815078739424331824840174083579164381436061580517674101100014218916120792125866461588525810668243384884041032815962521588229846841091566590193683584736253268244680938085430473859457945446156819678241987215846300437934015830010492384793677643235486653746440187936188476694737374787393136941328211155438560164000569630608315429166879865963347469908652754522768943299686962482921155263699147618276827320991455715559395113419517517839591114433470722091837965305169065051117425914503608202161647820003937372256086970470472953403445171715712316541675952237610828445357426662766662130080012276323672329316810543424647788965471591204519612909411055276623294399123252854115181241937282792612830526787539478957256325721838859065747076037934735108208833910417735721516268054579384834249912158402322601822966907786990859101344831612735120198642178059384003959311150068953684839452292189812881035986049691811873024484320186422594390875618861482750553432154199922137540463563227505799697246237967735474059443939746562154868437274679196346956028028072761834236530107594568767483605298091568184736863310785052821370066955635463532464809619787217003008762221415042659244687841879061000825869252362477794870786247040001491683993187737721019020826571545873116366084427254214466718693816099633268045715852167736814583198884777130971739459012818147262183142333660932712514589454755366471887012530028336659057727272959665337953752996887574920029932107574020998427791378669641624742294143039034811222372245793513591982797385330454322052987494258212746579703783144769613693795088565105137967020414309799695621422269510936119262045035036363396456384719799117942633084119622536641392180663368987635047536166629512773093762489163070188992464576343175839426267791957920283197371887702392279785858106414151052438376137883097017845478376733113513958536218844770199502584493868694371814916210185637158403792480056863059838884479387319124418956411626219464769757066507861383841092386934826500112679029479854189216185883583294295279859941754222006053821877489799838190045353877107343431877840038408807557520661504734262618496995016171551407794127110525205067166443041665531463414375112329273835431867710554544495378439240504153432937513536644328292283925119488683898183609933899579797933101360377683662656836103027006653483351062182067526304647637921325064915322349540277881570470615058907891217704412519499803457242682945899728368780003908897000132312000295888678301368456179775914869495327857256972056165002433575557858542973476503720309203147060588166427045863939183985449799472014438811585546812750737870839090927520367252671198617179034679382643738748230140430720919061588064301394865377916779611630213094847892566573807001916933844015612252381667797213705218953755017271562440411751136756771510833607392050610889109929009898437179599967217668596060793857298682930942534620432325233721166709842113768155926321888331448368299367538589668196845578674308961671058644333339360361108851378959105038816070635533376280635235562395950931887133879508874615267698758839999190973276744246624782876983661087363080883952954413988943904697399620218519704190172131400261243118742883531693729054924577451075956533128921424278943110477435710595558805205373574032969625073692822728495769676556477471003711306262773489711244220283670248202254124641634778048673823730023321767658541201219928978434176752772336035525410806092398539545391409573115952826275086649632683857993271694870827898408158124558254026476640494232346344547621762113951375318145802687457094196957491709760267088089679252885881206352354296847245308232552725867840751747950349689897101314586029377125285145883343578220012486099543218957257292780503719589889036982324543732020791459359062501622026987978477690408951651763467693395430810184125319937905502439230797228486669376225474862623392413013921879356197392578224400885653870763852920814866367162492334444302457562728439373838436905103185204586541181985847280638362374666248818781839109378794988802037124330526874552722625356981814494719479890912448417460543340169472344370669791806966635909577051136918139738544004039794609004966376607912779970976975564606571347272403794438479299419194152139449912573050201980128745640651835714349529193543523322577734315790025010771807364878378627407001484225965680970833520997076517758267539029188237720606084313528236977032132446071571597217501694508611606316629156949148345646027338058842376696299638016649136137864700617747167341364868828592109914659647267104005604352305272283176866508620282284218979136720129740930372532719257844068726649370544838420374768771009163200574608505650600956761562823674626663190571056368741488209319820283674384140600424514050369901175624499006893741555328811786588813402673261677839169329172808991386093085637426909832460635763211797260377723087771707743748563577901499772691719294628468601185718304049319954205958985560618376246462443408367480913966676887988137658371319151932769355005736815509493403410596829861110031051346025935474032429704267342836375058205446164997104459286869923758234493102177946084613948089764451780679185072152501885524481911679144188014249126632396195517782715223911065668137011259309864056345704922196260766426048994850526661439425267318466722377020857161177044498513339660837709777904071875437792874766531982241859009168847508340657983333030056461120506853152700577043472749506465204326715229702986721835140068280384047878130194373160012560698152366343002466667990674114331666151297559924637225194127760665629828104372860197403024416139888245476263270322080627232458722352061198237765250736927934358930153624552858954856362395867070489652318326304345953069093452763718822638644954890904880198362588883820620780125940527836547797106768538044412301465714955929950734056587694776270429239001858959255922004305570008311526562705406420189567175795100398132141386916211052212409874117806841185122909929974858916759552137468054648703221177011298109922472630183737375957555366828221635604699221414371931068078942965062878360671066369762809112949320814343046346057869187025810355319878823418674832668560619187093126415692347400817640843664512090241684034882416123925305907292840004511583903446702204241042036032207156515859916601019542312306561275751188328127441080550710073282617547655254189076893387052740438894346741633897954962042393281808436177895848202298058683843851240831894689247251157142803667007271200898053839767182092051404718315194095810155838528543841443701755950992134418243324446345658408405510059454863516031847794796649103687995184388851145533748672579037460677291362178945554985470355089889296322837937892164926933611205248051220008747475703464441914613466941298979084397618556022965118601929508149820937402528381837825295684892620919214858533878455563546111302248466607885228510833162764834552728495925578339436819986303087529763966905366593862348304122403742946849679199454893729808268821342872439810476741041052320911013606640476322306565617012068130389525430761720088012659452701034048130105249114911627148868895700674982298995720401346226385032608288236320724421420241704461561748229190441679436160802229233526298966118105960412964130955658652924293048704985572350260097445242153338138457323955477720552959794476583685900305375039490466509728326010892675102157402740041448970066767963753610304281280122293766387862866996735277563153749533065772516009437666971883072913914101748844722976167957595093668068130665208317612295277510575664166001417712028084332616944589704066121919508414289690978143239145417202912327559539563976847216900664324821660708865259038003002620346545030335742916035016594533932589916198500443637713206272731444603086226712517550917785904942582053846393587625616905645077023966012892452181761718013625436706331198349066448651592937816805471247707363755054158323874205837556148751613448104819776432408647135386653699983266829534349781567429383754061502046850658684496231223946055679231797078373742575645896382102545814984344114161714305974854077867263521241755806119075267862119304744825144585013320939091682247704258233434417649402826116947314368002912949943728432314734747689792403014443754028613327389362351926435722125211560544706227261383179245609771780560227167288563100791348514597311902371497907420678055895874820205226651132808630677353000680585395702496860932863096381418447245627211150980768488067441101483689385667117732332912419943290748622443129151224214413493931546869216131688155779985907956736128915530886337136849119630555753935843674553452302882579255018866846242940832698672837934242551096482723574008195738379343765088596931621094092189189259811767035402903599347317231055886489046502800968952459096851610658692914467748085562025981236303050215690751780113801989736227511812559385180995940135724218323944684997162393746035475582493575755063622028514811497241368933296178331523229720377618989046272678330328460439175040505417474759008514050627595631293565027552371412481085644881965657643547461668093068404456380524890457055583257984769072420026511359141349222869125229335747046934223110270889531868900797300048636932406664532709792198312556808258657884220868065901143380269044609873656309700030743551833307783894894694136694862033066615742103172436547635746584951866015530608095356504348254605971882646038719677625096307267611334081563535604204281333089055916577196363812179266540782547437544680210677381294989908853890810650337882779451707266199561220197931358984394251981009673797570472630325452944018391536380717155302010308752359605124866214584327364513629942309920814676431034870548867077993187618303169342603738920335380144025457525112471388078284455457159956831717954282493466118720419710303454845253760263854793809433572075555362074780900372536005278996224835288826186250101997410611196377148815269941276020397997993814997637686267693034397183542465343979566757973620998104867095691181066233859175399109189984915905707926561234679429931857368484956259380885031719804947236079912881613753587622745777704842341045138892222295622515876827391288094078664279751771592041123573377982467951146294184345191358871666733919533528779902669217751816145127581171524546960922935457859041465190345375162905540335828394858368479698534809691726717229330625131610459209493904499230752975615173067396443451196154314542334447207962109460731303537461535505285650921554546771045335775333509001131587319784514736851097109805519470163733435704485479576519794666128387416435243525782872990216612260115808690608274850073312166343656278606796148708311645220521108111287946641773206520794521010402641493703718929065939414263329536241697923709479155811860353394280500876392012630801528773811666683590426622838168889316514459867432779355598598254878102458840038482961497549437049728065371866590442975114542747578526652133869374214053143505339242915641911346704150964894781941290134646325094251550596419462784909363742723110876476747783858183078163126926452048341370883180039620798623744097379918834949577647208092207007744771739581324491994284504056522920519451700832179254099825283221714331461832012925542824787746138217188413693059921775151156166614260774383663628205286967365247221505582513280107111881158654586885579476449461216947458207131600996721830947858507344959706064510229320624899096483409613981321058170552152652724142849107797874284703538817374099456914826412821266471714388666827911998753755380852978838068447682744779206388393699063595186864075385326887753178679530203402516442983150178095287806545830975154118549411930807840956450771763815955544110775595793982325012461338876623639343786556442578389818397147904348592356895875030810439035434143307830228000074942353442403341204300344595039838115491109309285489482964755280089140026210390516799220727533217447835144846355932241135075918155821158192130490026721031434029733714224327872046469195103308157354178914970286098113895118377197048352524032285359764981277345880899587252678866100840446436770119898238311804978479559455941729979170445406818560800175003577605866248213576918627692156755782388712119396583287314907811294007947465407930708580108959077107310634632376183240163252077380819038554597143984442873633048442792588124133478500249245201352426335610468521549171329608575431411662654638459221646907622508202548623562220910216813449760528754844918134055591224372847814183982269733618078990842947881720887591551342550714885994419497806931855068067925712983912414890636578758870869830620868050718875640872087806458957681189934493663606818295757015923035017381686854937455196163803679544096479536648842105221621774554583556975604436805135558006837118178406514421599615143988335707190027982467574801168476947435182435850353626736928617056779760814221778260795482029871445624192761458251552579544570691901925940493586019834267423743857286224925845082072259164730639681634153206101512497912636176734287597243188595604668873870978839531556924073369130314310790477017229629674938021840723792859353218764493085854258263432883195206784181865762067442033652576998045786804621125686619121630891796185327242153948751208406408531010228133954411127640743505192296065406730741109817462312650393077465589492373297132939015598151438968300481122905858526325111717925997380079439121748091181413377593283256951765063953179670579102190128642352984369642141369420459186510513223545545996817350290515101627954397689773249562029232654730280124048452746494292400154602146886856693284310939711062123407006396463534718920776688866640749320403943884753252812370993317787529682063904747331014075642644117728840744959869261555150994743834927268636173775274189838833591777557801045305100267579143092406038516969961484715260534431881589951846568303300541083611974216384524021744937047233859461131616442789428933868903308647938801556654306181640448215895909949108882991463327503776965376333725923014498117314551212577406729300546685713297294862939465690774077651260889278710325394942370211970855039609250999154329820830400489586659628415131888251973715209650239221235266795919779451457746442807174362518760311604053975425831193596133831304952845677314053430789454171290171689292532945894312177210445629291242059628420736443022645932327552701417033955901389274111075978296039984534265664533031891289241425019038076069328420568732672551014667098648401043464708745359516694814617002773416923773102938216348913415045413835275924372415031322071240669133129059808438297363262482625702231183110947241835860035632073595088799242045507278899467675243639422698304070559663016378431425903245013130896348422686278913097207755210601497653063882166823445178070470827935217197321971026996019450307931488353488438885111609239832129385877442632247349018880858458209096506532234035995055726304289626388211286320435047525074890644090366345095740852012592709509584925528644113698288799272431304718765128734435313675064260765329300894578632881574202302579079199111048165827872826880436653365657992961057831717108735077500607178404593700929395258817010326283201347957707257192975092620890058332740650358624337370702167844322149676583932367354271373787037233682624409095614499873159702509149536818521010221373428754452582413372962212869354644519919484586341452231520016459541960268808694417649879837180595791510955769424807288758880239791244203018720415630443841328606907988600113780055670931673855362770712374492181315192758327163228625313697791957279387427550637527361281284678607181541074033982616937595168965183522964592965380783367969439050216034478127445179089213601071684514297050989571276699320070662365476922401053408327852728080808313778663584957527336772742232872209154110014800010187868724798445758403586951912768847422510753447045566667621703991199131965239829541143453171239860899912594807562038233494664621533781324844347377577632145948773881024513152085532388027016470460706117994072738270017697555872435247891182480705597398154479481067787409393496919085309975921736009635204996420624956578612460927405595758888166940335126567193140289581215597409160881257263159641093051923378684793086392574187626641653982069148207616775640023412944627497016384180758254875664399045483545143273144891544219214651670688361249056216961747024793666242924780229254773643896264206106740421739478560317084991066744713949036331564877042447140925730525848070544669725296723770489175502379976059574170003782156630277474531665734061432821323930332664401039551245741293620160714282604635452310718821243680064669913575714422184187400601074100546520651716987745980261421201478184552521696441622468608498763435827184914647598140000721551154333574791769218091850678255130309299065158723720426401022805972682789959672671972946840518705067398738362244751662543171185966738839052839064392538259953108158925320964036478658555939603782136379056245058439345001148361756565410489173281365061170878350779643124263697797346489559841449174685007585521209071285167316441839466963924441052734269581206302657905756996638836719092044573444329967012001472728071131619014816817486599788347533627620250902856903923401948376811038573192913857607894816575541994289368111603492836559876284506844851920461494425659262036002326248920962362942134389259513685820550009311481442224676089534031563462003451208656140256265237713804384960369774147483303482838333684699563109720475127228458567815888414871813848268900854678170039602386195377453880379574624553560485279079251282876689506581080879179163677241006049319810851421450978685243365279371105006722940839882068648435324892841381831940735213246192588153423727978622578630451911481936564054775684547136521607641364739667582611233581850353972760095825235870011856328010987747871238915395038858882191105229433904496118037165451417996452491372511291462931508850709546843758538026661359226713196386780091843810259119715692050533500509432823669825664151189371540616672927372620561925678884361741702710713484894388965250678622969511940993807576790446233270967243323387531361341778743265755481014494750718016299484879096081096647044025568088578223967212656192306909865244008161817510607583678302923642430711783939464082186766804819497406430752855631947193820684447436434205593403985418464311725858694971342960131499044624135376764093833942426905351077915061480631448349578769437624340377689380972193496491251672908584379606827745526127104191705863443065857687058421752254438397433985839348161762130116749604536327486753359747591410454342601336993269810558045340562880111498370425880113632552472651661709634894875406496069057977041307060387053205551039308165368223522220219633005015570866413982191172944978829393812464368470322421868709623209492317647457859067578910626911190415235245922784203952691207174345722398356430897958561106194756828133105995515323067861748349014650099015271245708492586576090489106731390504381007660972652511257373619127862043295599701079941706353930806860257897050934293982841641503046544653096191632845660135549572335666264985650806858897298261452460855207763417435114296140149866843160561756310085573836988473538329047129605120343004814666006292688324900708638087916704201301646773879177735839307053109331190204813771045948293313166049017383247505947056421528723128625515454612665336905722956253966287695160973279624868556207027969569752476011929308043093944124558519995239505511290490441169709324845445506687049444334383327341222915481792872501188890884779473130601744678625782156194270420244443511940658053482084292947623125170959191416873810867367822943362768503328050497325774998925808916399869620259970012304668031845052017860969828459608781751600829618167353390214771652040395039590365953758724709592849136199030530571859309571713116285429966880885825949158112877065899405387539870935497173551248458121630347147183270916978541286327019794722406625989137401892688224701977593712392878177467497895758980652578247341762596796166966280917570399458608617465527735375907411073549461668044177230780429434430482151212288784724995288984225130110518466704903037645059498869977613368756639744713500759139951860947767606812534001421764173889727473585716452471725602889353293580274898586120675051297253643986592829530107300136450194672392104243965648847580952247011868905665545271600706580884453487485390155338754876090083550040791880840840848046286377321820881451855890984154793080527978875081502343789057874969594039496454526304849232927583398590019793641070418375285142534839760543949838454197352719580721766939030480286252294471141451100499048610659421620695272067440383093194038032057655768261034416805868709912919558673757652290727987656948954652643948954884854496561332551297763789169951241882801377490734221904918894101517309636808484516539586698939021851166529532027949649960951779508615183800155179376396371036036923529123930389374518184324137159970576124894815705784616329094673106895104478556467511392192745561424092864268680134706966689500132800516889402720159558132004429295970992759368552531156616180465039181591571704085429406180071667033693011234993415644687240211877678956597885293039368194610117620658055118053460364043962164286646754869653970609431736276518187074393205081152090878261129859010165673544540525046631075974730104827505356660834574379704103166551225848291005777112253615197142104216859899090977113119917325929662689243306892027615091429609663821384787134827833401132937125313540518516137362274392312005943962617739908949504446370571531003565880784433939974339999069954623122085072971654828747268043359112404038944383478186070790147110058634811927476657802600928017692411848913367924660960518621891834280863808867680823399626264835181544843163935235899284293111420249082098468889376535398314284205803196627153125217128485953050461055467488041397378524052865908614868617155405285469270099524328797887232389111535382257319277887331887876453528058777528299016316494277719286513814074869336953923516966917160065625852181740651280428670941765588784272875354526221612382626823890658484998334769802292968196895958398452558304977068181585318242247765818814786762294531811318281410015474909586783310199777519169081575829438023059287628368769987681865785157676859186740256814153836401524207265804204883561431664462092982489642141241510458069856209707889602728795518260290279327803448042040581069676035917282652323591261008168670771119197078680676029136529787428384794873936661813597277411869169055309025148582003389506592600944967853635257331239617228458391265852606145308423912966083266081241886845759919665609577847027725201538820587639895858529995196003094460856531079158343824666506011998709207411438749924264486261514663549178360760827793191165230988982430558603090881416694589340511949181046901743476534213940889866094006741032949956567628370376330816590166161041780099558078923370835064430807715780208655447730948239123933405058168373878891489413982342437842739135187215317435463972754540263761607619525398630507504095078707480773910191847193622780721245281608966361406178297399729862186566859836439661950567335373428376779415866396201004847319490997588536404799822723382488651707948965011679435557214498525947977320434605692983514912784091100601845804357283969865953663418674168094063964092650571440625156564273200003112660003481193726055847028836625893638367292936728188030511597726874943262050341418670603784053951442023595517160855509334045184295724373638246584891115513405808719127467048877974626576027730550687765363129048983792470932584271589074322587140220478496513285905972043943453045380659849708870495800074387522615348961900789036727034417097118857021094001636171251429759008471188142338172318103274238872051940235967467451236017251413107343819010748132864350047306271204263381402677432078514881470940860459845678250940604666855077208388844918541712008849186516974821811354525257931651847171068669355039183725286278094202075904908888317292114748336463351914442555818453190142185377815986594486558852941295169650799495215510360705752914820421285812265885771011898106202728814904599202625922087761168570022655549027773168471527581921928267741634218882623767557145623577698729193793228717455450216413809673447163072046295739800117417811638758403924525428459318601025687321407721649129312387917026765895522340629236285797023656997055555038882406638511701310761665257842200562285192992188485639581481760992850576667568203627698712429553633667462269179534548841927920790217922925111429409882229771458480042824785111608086333891454675013329176885289007377556447931059229772140785371300619997120186156845555899112067794315273529136169819302510298964572248227590508443891680298248788627417031001300263474899816483181144357176283738225642348998139046413524770285961072106725748334736879646463043675900754365318814620133901898909744084373106040288264463409026021287808654087570218356063804459161012866193462386033486291666424393316742330537602286671686389506098037735173552704754289104745907289535377811808061749127493206963221382836786273706544661247184040188830115849561703172868330806636913082532499110194271919080231545498157891286265139604267030655041595395342162902776917296102036303609857710920688717330521462862250248971861001635512508768628763020433148473279135428418975979856593181174283750302340089034459185973774213725383114983251838470290504146066534430569580262435577636311201331315582821825159597977155167121826219417401067483688739969901810738629203644266799730076873895047018129838576896754710658080011171705622966436602161815353918050464594349339071788255074314447884392424302679122895099185993593180807690325319734093550561558989876355133439238807700976660714490135158343884646690265926589955802118833890779032253615960905942982338947231872047093576740483734533281292116998319985928721475626437400821862781127954454884843348245596915436854799377436221019220778321120907482042538397410936117061101717185643989081979052971266942542494282704779474740654834785408242548234439366616224251928954963392904469484325148376605244766355008654580422344343455888254607473648896901312678991903887319480847521822379529445698773300846501242324766260311414163946187481627206731320859417388482759472390740817053603011347511518648497310403031816495876935604763953457835081471596033190634247900752794865500453631202731878741045460850160884524080348592107229018913739804589496180199227017887716944116677617670756134722023276996422141047213174593674734716493749103729208989532050608941937645583413523699187279087544502648842805952667580265643039219279454698984760755344952632965830716246924514139302111348060386036124889491360933101442233883711359187966345299177861682350103780802835611777931414654172726052223051369122852986791595418505232429042718850034908091973126210330116770126966325511867961581644221573071912629454782517877667603433868628621718809322802249193746432846346237562068111765878018282324616188124431326857885042559635630285428388017209602447181364082818609157309740939797110502851402128643770020196692377283462428000409182737708964468963763760638061418751844211764171298089317919620491373080990004437816403904030999572106968776405909134345341437166599567625061373447047919730699923907433008827471076357109078819965971962096893545132602157284536579817733432714619279948891736254941284703314104488271723769221697833391481556801336516376003769143188248889884107841065146039327632132888182157235239098767494106923605929247501992614094313578831090955536679107371825777174065320091178790741194111615585942262085838172240125185721416438430870570415408996094465170428606575992395537588139173511170581816702044818726822873154467308856988890045239617138838558735947527477651614538688342505062311091043955428280185859057905980252404617136845246309678222056390123772928215738814486829934298083506578832816488630869551221913247783523005694434967637162888072477814828102139491797398167651764484253052182533038031755096962235519580960452858400221809003642135599443060107861619323994005601591680318201413203493400419162927357375797558651247812552855703074354917230636066845506708192163876071264600502476429162196104805760437138250911835554177792816499210644652452068124969606983533194233649533218239577298794321375056775735029202661208916340286464753673630655820062609777289206543123610099202181155807334304026012146160481927918052885659624680245148527959554569724386772138233608922838923679474025241596288418276755134058506743811823220949681944608954334992912703350286619284320903818756929109294449669384818106683976230443499561992311563294832190311041064737798559929176618986211072409322539219920731972883202158722766293613186344761143371438031035982881677180035691655250343559662744154114962509574280663706961221490170122282287411706357292905855702971205223193485365978953867773414392269393544943952719914224493813963934166180662468731932864864617839438175032267676483277000915089629424808328985041212110820994343131582834184861111049839137555073758282001449031979801893799979676478280759896029527089075431708121784043576907397595238023156912995144528560762806172502593604492401029938848473621598388390972603895845782288998995152155463940973459884917129116589190251447872001087327658495784981882693419190962392263590138391546422577439195350484735456904241254129558110927066847063334778291675271705322094389599852304362415396516080040544415255606366452155517890312329239489032475665339914077010749473427010982303679416306383464018227572797147734792119761472509261428675648525016487846000860809155380062206881225911279207689136370401678761908881867599441483320967916508866233953728111136484069980426173454176469910945184613321931728982686735687582625448903066545821344770085635025441385437754127116021942244156032315033166624814669629703160441505357270476409375155442358907435220551140950746105554317624764800388105682225478776408689246961996418850730820225256720159880994837741428283645714180645528572142301874004857027274988897223202706236735279745661983376651509293506629573732298413355991490865052205901162292220006637901862748536908722388655752481246013696538025356763065695783010211690788572640307844020394343034493672597034586223285658910516117423308614748832211398685450351123442815352458469809217453414029059543935279961186132340215322551133822200483282993390632708902568695734839810629830010530615574842595369272596769668362966861685432475097102914816561739259298274853395534839841634478073237480517961527466950090796901829638038520920460287877865754951849193522676573729059794245756400850926437280947616228400428611292297609064699684538936883961831104096155705999037391074032118660195222575810016227219374805481689358644230350975238303448674346577656128118453297703171238148001617862086059428223831996200421774541137289699773039416256879810329077356913924962392455381198627542617498747561812086847412345190090334206864959617957447121209467830731355805998274713437069317340299717636448470897494330943807679740778676313968965811827979851262888350782518341620242379755467222612831507157232082224604145133097455402116405303374952176900817717386081361608721640627203743201931058178333125353644363524065032103935636788110025059003324051292577262487502248223351948585899051280695468604249529077083892925227929600035503385501968472182925313111400893269539160735248580236446195640563306782029684300908719159579264559923664221504503318612626265047604703905837162464863107934925018747773090524774174670998154362639540015697683452531094188852665900630307772503062572447063841444675036060633030449598719621725272048283992759448237387554546064682326248338920715362604836309381935050037962183482141549572632582879804040848603078819704243090527469466688020310080808811473408602341768599309897566146802109358458938431644038082558072898277383078134968516478882162498351393121209592404207163937923421852231255211657444003152880342867799045633140935492726350279790959722030765723196937356123421235987334938531250515853215666296648993461706787804218006873569528033468271405959327217650538918343311894533347433927213831189657104461671419223095191455651168291989046668157743390152531106367121817886259595848859740699086882382892941354035741888358739569190888725183832501826310268259147469551640497873232423487370710177088878565902374828440985696672561233782438847585093733935739870305935676876285585428489329898710605800415109270827405314616615803525055770704542799362323814946170910234999933994635335494654084556445235601221328486634415319043036461834290368040161588977222923887106094723555502261987606582506830181441138953141863240874437382218190756419122232893203391072593112103848372279781112141935004197833161636949538971915504331978863057424170428427872476515514473054608121407874139772908401829473133639499049605778677948611399959709160401185185917719228079606191004134901909038536706199631013960980639076913427406481039156189389466822814163466718638838525584774762904230427447938346086322738422975774850159202551146266529646020349956866421619164449314828255494301067544072431105951846595188829135071052145716262512703713035018447084667055600583551991578695317491078025929758131407775981630367708536632185216383588506081381409348509370204721914898864210994689195820717433484327884916944872453296726571919655060707602682418543147680335997376030611937226255767016775053100916281281412945882075185552011347818454697596058250875136819511396326331105983310931233024922644822773826874335077893584875798330079107864545320399882428935887466060695429138156988443405876998981519597230664827804276743129584484840065531942350187919795958923451196864985937327048027790648247490289790568451810729492644370688252512136014712470127345990169606242298622371173047888248846171389828085987263153427445197707922906683993812946062614579701114187885243200222985214208101255501411471568897416741245912465173032208166220453953206316000645284546821587500154465397098705597465846318552479180740760292929844543232321233498311953235632542707187920611449434600203156485574086672485371033047362655745020426653185727380604769546946142089153939251978122199892990767972251875341506398304489391096082955819758861556510542677429314467218001356068552600295443594114468509375249795417035756328943986316046218083823487526701871017920503114278768281686237642777284913520224800654798281312941500459593128457010886515440084088207376538350519240630547972808735231423524352281097790824466827726028454827005637179596464222982029026920208464237165396757108880019623993941766764087690563168521789628056623156791356767362599666138947130270968256153690080327786986741392452041573872078403295257033879553953930164919632491622136719807477192709270453826023453127753869131612106443543187009663739053208590851601258553390037818854202245071361765731764675940662064098172442979644818546049937945012376592367014972263641526024063369740332203077104596490205336590973754408117525064047295107556988017474093996547132380239187828448246025004463157602689911135655081545990082008233913573194637977866002372208069171921123820120679943291904519866708127838674924688046793747408300001327096081028875633099051867643330142160815393137231394154552166738102508580266496901369349953514718777185644881111003262942052574493502105566420584342891451626234397619577650264715666930504839900455070384884792632593944916424573578498573945671264805943934396888500458288273509447894202274286124915858911396074913936122989662972279399713406291143002372000732069950669513392677559105405654827794789425633321623040134056132712099220102216559954509737529781301041070700873471417908835534706660215213202252172077653229182689906099057753000765967504160633676195113454107906958478043071266848687575516085411162593924020127783467235210252209795751449161706602665387724973953378213870454277673962514599668274791550617906656344448389061199031306694417449631892608724705261019494322760989550828592159424765974145416543378812242001048913323711807419207850900280684924436444281094321225854266085922750471689260001045084944214073650098073096093469794158227153467632450333224052309816478723190034669506977731507951968759631803632212640899017427049719061864977813808608282332378199797010553820523450364794966579413187714383831011446418821784959549173206379536830904334709346080130834506197375814247684360925560188202548748116377827537392540332771001899624147436059649052052500170960842794416865593041013670254884785253745668003489556032348960470127697430609466658799363167879225039576368895237028159435777508437240313101740364489800144888862270051060024770419468080277883838515566145300969535093517564215380589316558650965392932811282900221313260808523233587617635202366424337708106121445204693836476035666273852193207301361086546052880240585500582474902851474247815479949367107254704906465124050296545690256027902932978355006830324425997974909039104159573996267178171518512464894254446747036394563848195330873536574343333796316121143218500487085678189892822560021523593399027255960484975118083331810610558073113846734926680014772865306703701326246476084438590271557098941439525338945052831629147888087254798040005401275346324556471577684614126131023023499103205344204743458835241497359786859643954364858617862031279214302325454163601595835335181684087734171899479980358249031035491451440759082107058547213724133185669750184211362123318630300702297294591000459528927780349657227779468496137830392403930063361175285117305370370514514367839862009689352673675666282763450691842872749552168781113834104384155830742101692208899732797990840914248502619174274763343005478835002193738971579802729352429980794544050192106212583139481663790214667466566096925297295233946593807724244477585580402153106517970853864747018677005260659501192111622853823863492319336331329978795835313340346915580643983307691124702846283222244046376358531265844133334293063163857899464718982744276647391213770117938545386417287840010845943949271063363274344544125626185838371636302892134463313051367349144589475718494998417731671057920647142672662691953155396318359723712578393634066898952250011593835038299506915050873171585319710163083785448170502632492997003872145111263066201439532056032740976857528524749311684599365578685069322697318593233175199012436310311067723392471595931884999639014196847713588436896214521897832065272327061383341547326208640443017856614669026224275033337825186657597707454033062858115023146503180217042194794160563543215636390733649046264332277418401178605319274973016142664742183588705163740702427907205282700555310399590251400276384835213932824631639323445967794925463125766469055733832466788258027963167978139853343713284988935043429806130950963596370558635993043054709641161508298884130055275582616266432782756878751259915245972294911590273874957122209933788907440097118502094489715478825056225776797394362147263029374283519375206857409679052783242005846024477618592360311503606155341863224321517893547792434560103820764287448732517706904821928285286709502337131124432530623461821025280449461551124305289212960019254574481601770410988148322755657319754461339997334909394285423677867251142376279044486614946279112949881518394840440075157317826484360285324654343982780143896138266653592960209031137391142144828570495259648037186137834962971505018192794930816891851853699531363391881601606509782267001043170741227678900963800390703009597046740741503427795594489564525620093068032416496893238487881782391167510928170083419834961597651371887879315526059981251620495685942574926414073461564927757576031589684279341301276505307729971287455624780801820030837203365308800031971572868754860885927791463076227776819850889991035315196329583534404850333542163714391967673943143210249588429976963962615503234758777979724132059757219453068031786173868495062236798671454694213545919536703304001469727975340913536851927103783024374080925448382587812504076156555857155609984614837014288147870243321706559408700023723639148527955743766684398560349669502442870207606984024726430483908944754096593236052295787997210771973299513782308872799950956594032411080407219887515039324416511463344964733121410654672610761127967691200500050051390460642738812454510072434947250622645767114129645077792565172616627324571263245865586661287775604806439668901083874591130083785246558476919565791864114945529468232945990255411868058564377566703692689072600643102024509681758075189152124882577944071031704841877996850865253255648689433742578509906697821172947988174638282024520992172767660456833626934046293279196171597716327641671405729130625002684912367718197476001945487690759106220893811562388963983887069530580720442902427896187150472714765802859959596770832719139768080461106506579390016227209491674302732232993273539573183007097797013368654077250416189828518360773279435478250434054389721435981473793712218700011448213914389890766655635336984581152542032378366767339318013800266291697499995157470115499107600609314049701330764741955003249195693127132529263649517330553685382375517076761368008535354597825178599560327835478908139359432144103948385121185499867087722242087150569393379731313150524561369863173583804770682003464068181091658959481621997370805487589493297501458213568232205981540730609663819759956468805677101334215098740055069486108863425251054224585400277722866874850881949760070344518532159326160202838699097868051540164990027579323787885371683464906245531804534378782586552278371374583940622418018516076849912632690223519468920879641301323627126104089744482041845692923250284301735270237335125448914610318329698975542869895571801381830355835144728170369572988277735379546122684868120782104953442455591626366629230886105241451448091937586295941950266978733060122330130370472643707924553807342051596873249837772629218834042153265393308908147183649968597063748293389544569635180992040618644378005058711902681236426750937280122742744139203219876011020047082669023387732618333321603766988880361478683869146274708364678977449143564523863294640455693291928650483515982183780196891462594502584029591779693973389826893895111692175877123245004924070519224778977318733531266883630569434628723572387052491791689823544006551696951489389964694917068701341986059820028872944195887001203488167242665304270651891694632454687088099044476160023163296013522846268818682931606562572353930506329879731551813624589922347350141004527536746556491376652837575671412061232550570008984389572635374048799609169170442637616697590503910141831586319062696576638802021097738175726954341516461073609547091682405860876215178773156267056950395630359495781064670001544620667097557297058455637411065775285894531386773530220030725881047608415556902788141938471892919338537888874467056585715551934578208122399333914351100425424454742484875998488324485136874983858794818601717763603757135541495811502498159928605389404096771811730847190158805958669809366109114166088673411262126230747603492779047299145807266198371492336160539645937938510713443261166261576064483782217784968474305273376700878278564643391358026417784686151737973690554046542559789921252715104015561121325486241469750903945039147009887825593226806955522656763090607244859982774420443943257079334829096233040268496540768330497402979259122616436148427949323905548181184507338784066330853265406601384149289727413378227971633861886464038530918306497148925088635096523515821747185460924298520439752874663078041135012348344262968196374990472842541304816538731224298262503031017507962609373589269555133964439795380768186260683250133524790831800396946165885509592842723213869282822739251947802293037687916196152507035177664790196019482801544033991624826678593318370328842251749567546005696715069614362400000998247270011150753049923821188575409410792559485071929978544085597752132221268327073501731856324534281761770304166318119218714268623581457878045876172385344134244910555018401442042085557793546241243053464489154265051260251383622027725683794613676819911266981473096165522379227875802473172898089397858077028158195967761263223460708240576131998651412336170172107835865516974083062558164593244953619311380982506427444043686316476121864741267340639202104885627986984894560357790116420685954685350229643112843581011961799580754351255327231874359009719854274904222428281204810369386710969464014167475541755192864379930630183054826968021817475832786802317565548604629530904843733744582607344303171994755354155254335208238695057573516211984777575975508377055958195314638400445963677638824520296421604778437311132690047841937239819707831171220813481733323687789643972629197277530657665895259843244961630835281235103136873953157481736682092374302678560478101270207727007236377223232891043520440440683580711652782014432843687739640489195478787987945912248327046173054244069738004494116433753496520784494638433017259230524315297668981318302866997541327056385916302594651869816371902898164224568374149541749045099679958865205747079350422994245261413229352706588276536551302524101665014409773303424531053205910461194700451315478217950415477308466280146377812668272128450193435948070056704809619895294904846900474404198103340614263986244778152318268479014023539270269257213184346918727477892090049146132490092207357358624136775553356645954606339915334861909666021518152185024229021347377664214180545446621839984932879385555649715850399692392353883398510120520689642719499758129886736929279093456707685732481249451778399804802203083037628444159960719115103064432567511108852202722636413393193769502769745627243410451583788099061926630828865402503935249854152533509418378120399484151916359191896756279846041540113194111819108861039099649845288844826272064122424672971758658924532152784896682726343553655344717406037344950528914804714012895885925128913737941176384768798071416529515610904991682648744219655284758177041412985609228326716948697277602877260272777419168695363259736424757847340336897678219596069735576477912464236770918220120188740423446369774760402143857084568263730712240010232102543428140713144185096995338683038432066918155628738181813394353019063709197059358709207936499617836031078712194007884185978097287754703887788496737962955989271752039856211750368357258150683821981272455263628708511410606652011244048402251054532261946563832305021147188549851348809898725694958897356827356207769641503983809540061450896242763191177766560090258009927073636154927494656037102258558256490677138065497703827562802255509877963888259452797520436402284719427748656535738575387788102307487639947362865265745339241253946145825780205726962864935541352215166356810607258115083413618969378801437734747478058312512077951031341278149025916408460067807351346853186031649279489667449414823933491068281811253563278218686594046664944970795631584475424930316779197006090166955600162341087509720306558281828041031910283756160516961771254401806924471041707903411490282966262799765472045258990335292129957621191004530017005118347254583322755753885705432197616054936661052120450097108696474426685516083157568367480157967877587453186995277508961333087683158554093191781461232279573695128722730211955647198993106722022186421065559270325175784956642323355928142134505994500478047194134784187842330639933622910962598027576755061124621024239684516023358009874416061907045978209008181447130399172134979186892336006638183176741019629427337914418945113567826055580445222061522059446344842611009938104863253324827756553022423114385314298509004588401499755127301498143304568919229925268415249040005488391760023331160907914118031779350335581783179674084545364806861366355332737486210603392840038228092688254661716604115645049206070888106067477957324247885438626728003235207482574363606240909247520616171977541875075139100828722046454131568738599022662325411020433705340836771455362850739902142119503261733206808381688519762953431250031116207243418246548079192831005806132647409504862782582941271962186763790191740882192134504438911278250909127492958642067790857929654690330660588614561628903496583119626319955433463650317431223633453756149160639966645778357201138465238666794354881944591178532499297295687608914038764497257758993200986395920394161701405272366441200895412678256689151449036225991636841804446115875979684262824275030535268765687929688175976231802104319055423988988260588462074895082908482916779111948218016682648331571351623715288934220598193327939123063809345164825988901365990173929908227463418123960286140719227656987931303982449569723227895758345091997320904674634495545860977758726572463572426825425703812148116127812415808105903919674493837754079485300202572363262310135311350648051410199346808833759386036076509492757205901688698288986663980569969585787032062982342483801558441553646510949789777050453926822529434693445319898056194594589274089347126520910662692971876520291839164537142350819428963612367924275740965341147933259081502416153136293068703839598716942367877944614382143786692158216818765261534068882946751101491298850913432178038668636234123512857357667077164849884813003154708624821652196437962670582181250652614809225026385178778349602066862289782283057657776352016885774547312554870605448988095416356058801264444555164302130403187893998130273572379285179044946322301575678963048244135699281077076240787401796005445380238566320616691624073208702028287869752724167818267638436211406335113008532540950341139404043741382301867597985583573767959088620447787568618733192065273297703751976141364904217767757875589448666937853081252192438051689009592175825110607331102141117962682163395148345529556228572482669209744514051916305937977561960499441531397464235635514422502584186377957443886871701878212948266210524282193817818283117327026160926544197360754748155169977597796943903876173598279157391581796185412942954892595174550031266688508885198112993788939490823269634109707624776352037682022845329696984349896493251553506837293116649987798988843607980431967277901269159043531387821448620301845858845532815475237230758092091434420035573844407072050573872553445555739904363057227517907144359084629918485789561401700284837308600485838979512384072854149946613952823870513625133218553272566011681560602489602183680306646635466887194189906622008415643852350374504534323833537395724950261024829690514717142615793561833209637295049590904380505297473253386473370011762941922120472959365703855310598928720691199819094499259957591436693672991350666307716778067155062190852595755631143302104041970303295194147152937046867789076844507893005210422120375421913453397464204351966636475570181373258042589903968494244868289978444059617601266990317440099950661035590275492519748899537920575790436695365482900626156057184329503541829290111020041792834255935859903654498345858748913947472087453510437517359570209271796536152457484625082167312776025336691890966038953889618820290678588555717644748423503995379632013495301759311428607343957912057581016602475739587131787448443899740181841967031297220301523552484701583864692112679079099288958489633839965299658696335017227265464856856177102682164303125949568622493514560810507065921495477063632686269931343884455396199122850416205074825033790270613679197122822262480202584276455659114440756732166589918855583413680400393167271947274740659084557409948186288369969877118623471613791528915620286876824737474882457722664379759029709107619150919698878324952055248212691490116563378645826316206901076274062947601835393566603439193884031659295111218621771509227545121877210512239749702153440399351965609085310159261066078956951236767276901487778628672535520744203478249833857167418666739906173768428029506765854857040716606353630526768292780580689847266913011491992274895986280895276252546605617813790536422015043542236669711260785673845629274869684564428478042841826125480629375135054607897961314284704305507913544200660509115289131213412393378171443532812758400455437376762399487924906148538337577353040201640732019194968854957282901995221464203656333605205216439366729682126904658434511652455827238840624054477372433522298652552130679609723389147317997898142964373122499953455889328137600689822815442099315366923323314376935245478884756951909689178392220476832563957381604453032947181401442322948718279001587809154241432278445035209448918204104302165246143932591886985288069429461318729419735353238314619903989430868736689421694398355906180430492213437293232334170994695433074983624440210034727666980498897239594166365763075023109552474507609415517301720449162150208849787421118602302757295785854892493314500704992280503416340764227785965155771209871103298674909787683355135056517256505488777146792508259323505584000318795217187761914849910465383162017986954410981136710001641798436967328761447670044801672369245380514101929210241893189015057549475860741793449118464542105492797522183782154699873024253379623816439658616340027124437300493406498693722539321547838978124514559018605357435806401950880814619458413729764073977277745999714722650121171753772479843763087678750507235207471673972899654585039534006826632888941634421570297414605652716631749124182145929880296519495982489653156097865030466335256846199357893867341149971171866870670388318473434198121686428736218481123255669537146145739891414262501284144249344413012917634623541323050090937413026073165565202990350088133696206914276083206707622637882885235241154429770034775154233713639889131685096188368920515049604008789286774466453072589360737200790389921399886812137160429405727566984527385192847944285055134470968519905683799710804559820602040440527216879658927384427838214573497906772646324560745975522173372680066584352266228006434632063796731035453335778702757161179910608757624349731684283340789357752735142385058047016020345999159427144023720355674480566998534814664615594018539711972161896400093222951146746634173175041961938987112568880240849110096381972329851985975314784782449588062055421709262451530375310699065847288358968964000872428959691230320201650308575616349301772342947367838876205632628882869337577177693051502137622344251035537655434327269760621524476678234688758377663329306088006158126771402588069621272507214122927180788998057043975321628334880271869649205192662145184797261332709511070999745842191692848798735163574644483651796314893797171337048415555833038839696656187026765577260052285315420261429492793824824747618883458767708709536216158946788521114076439262628424689467940513301814504360991485161555880866247148533665178744895190422671186392702724013769779581910497661997365736527659254698624911882391344977276926936506137923539401966956195507065161337888052144154157521708824511019608211321604888680560476151065644038129605407769864761329214607684446160263689545460172650316346665259222363404833670439602481522261615936958423678481930473856308233239016612667148422532399512491253952674833702400522397884514467732799025934631907761294678840430302358551352143620664340212806763081644642067628094341879644604241268788985432165670502792693277245663296328561424550633968616988737656828271182838775041292493305624752534390294658887649476007434809198014103601209402149167753842039847232309684813052321661068343362552978474537956868030876239476911407447751451005161756977756670586267486684420496080488703158090111415280760402260251850859054588749050131415837015277513254881097647172298729159279062347804512771325948572816111443413122185647788917076244744345624874913389129197969818589949852460322225384746920418135459427311246007761787087849792968549724115985507010720764932083605895845683162546434739089140838618133648373849392400423479179370800523909079397571820554983646081894553048911906910562795879644399908941858585743858294312965480083261906971469724338836850976206498612234402204111972272773222023776914254638424919116219550969581776566492441673764046807059168351063469939720607483637168116040661724782964406428001515560024995360338301176223168710824724759622018418808033229111453849518267039041299500317133696030441469832830328700384570468400437516823139810789847144318291676494644670703963033278388310372306805765017823516956557002129013274530995031284849855393071989449113126516481780276660052771165975421491673822884513777982272161092970845366109907301270068177574119919526915320764182265858517767544904321769308021517611094863215550985324507551526255391829495830029306238016503652878166241913574548389694783136202706754649652556074374277440043886077798571532814280023258786786332813364603875280482318841679770451143680557352677869865436172097585099117701083424874871752926552961458983208231544156630777991447077297556505723025569196066353635035528042544477469334908015388025061013190325032069909503689885095309208150330129269482027306262168061861613218091448133457340018955103383288922996994948092439214194137467550322970272169208002927754478060418691995456565208736983164529185343663381430413390567926386677818734139459043315223023233625360252342419312770867558036836370204148790314477650231100438413033785110897989187574324256146677877376640180194626106734847103040671512745162999152159062425130398304647450304535013261397871858885691028226677330625926031674040118225680497874813770549647589980862942347502048436259921423591448648704094363284492089530566523223666619135251395236302572358633224206292420557658690800672462261335542532137224130964372782826760376606647025872362201705237015983379426939271623572023013339326075403889837856943508771044694952126726901548102864590062055294494373046291473671590622602328952582500930294353837403121744861824306627144087931526231820025622564088406318764349860518693881510922842283698821865818827978406462542774913927526632856839000945024988707549431671117464099962651319410312318217051498122243051211083777153932473274401864042840642353179458600887691800069752078488610362358267583464844905384636450826061453511259786952250659596968413498209306076509864861610504737300565647708194933862946642554585272648155208117350607455026653689346875841093404924918983263569996166997803567031210280154369993984772937132239497533451404155325248939040946643989816111905520346798301846009645267134825298650677564026498712309058904319553922262248574147984913471107255421223200773294446602018547469645136715737201897584040413803436606906516470552737092297599911958295522673487686658727461330917625484796418973727695521679136691226000768343916481088859909983997392811661603368998991291959071036799185077316038947453632081442431117672508708388178444519300220869654699616113562723100240206411143235575503133469383969582534717828046514899624868994763340102434335909176883931987132146311111905307120605423862739439642549336315000235924682771375164204572909645836838291786111797018276955865217076847977075763759760437850466717883584037958519623975023664874220661104758176970868714976678921031678305121043993961835020909697490132681688826978451998062830867521813619149109802362677688007203260137320712346586170257140407436320031568712737547208819719975810612322298737779946188769986569293103370370245614840730529552575116099746145387119007368927379225040453561799962192944353903739104529101425836849883110517781294341346225239584050341736906455870368948048353634364345297183683598190521311751934354054411005872618017205501423641733437105836242307777863663192663184593211054088777323386459535764545305004152553632766291795108542349451114398677603790113009163930680080185705510201699840176176917786886185389365119675410696204678160391159911107567063614458317827778717140732011565973519544796497335595751992927192767709066809658982971812172805636221730828583942268964719708609383562510154727161632024620280260592110149364341186570288055974436858732507778230896439979584331231709163061765190709791547060649459294173880467595503893340738311301983869272949691120454812872005831225072378718199330446651954598568983402972678052443637130649825060733052651184945184025256755611485595117479050811122360391848400149069711535022758460826089025278803208617031303181132659557408553311045597937644346605165222640996501968975737095656341976921322891478864288840145863164283855574622473096836277715793451953031374988825297857793910296629712802142101955937037000424767212128241584859535346169308716260525944449497116471777726298562765684889765541679359678632447212723878324145853723866411706878174073263001804425124164863572491191725449784832989605864258767823104932402286261017225725512312279385853913012915137038761854462734457927136799321552495807869833089120323627918950147704531542241330549885088330699152366351566943227483983499818961673908769688172942009735092873662828702941214273897305507229026072723286899150452674075118232694783251365575485245691344631887454423696712786937529497181496914669875241792099468096918914232491763632008443962569568281378668631918631857446410764388409704619861259496534091812793116230219869379044321032368692510648473074804521301792881846814678542608664104322591290013601854948679796482047367123275372462090019599249813209193429126092431826722217328371161235358379936833977164978672717166554321042334902038447120355835485158672988635907557390365227354585930223840984648697478779461994420652156662851472147952770326413351062950943991257232920867760876462442296851603835884750686957888580614729658228756628196710322624739903077509938089917960736880755688746829780001128516451178370790692380656803440729484886863431074151822642429201521280407746191319674994949788456772085909520050282169983647264218775516102414193174140367678572595910393348790253357038649723052548735924252234504957670859014560979144088834647506598146774110086727138839066512102439595419595525091536915959354604977279188340711358263668568520301491630920618489626797978416576822593734613316143070457059555857571861695186351555654997419449521141031290953660384646064851662966627481155952944131301218525612663111749175034647346626753512540411740281267422874839390316638597198380383008813239207796841324745252336233081092626630142574328746070418179262423005897465641992491652409833785223188113760062861629441725760644519412949621495129216415648171996678722372840241172161955899573652291339227210348201056429975896176844234170377110727863234035152565131170912942992886036791065672783597614770096848239521950161930740148793645924661990766462434175930393075400436470875677637417120030362359350852236188163917223146083627452556787826666571719868840598444050906615443688363714683249215620365155502398178917483747641122935968193643314327071420242326485153790684062327684502260644519985831760627186483202890656527292406550958384955389007466986760559461707352244968813131685324373059642747014445698734528704949956393174716297811894654872360263996722239822239800388415869098977155364218109475391891927563635227178605359872758681286150496851671790176843146657368748186286324117689672039625339588661017166487864017894434729737860107446374747021529320396835498763792645018955445802823989624768696378554763799658239928190347160207394528892519210355630176691577393397183970188434547466144596056780587191410227176118925014249672956588173898735696233276791336101945060406460908519292130299545633318337312216093297598305858672483113773919758127336251792496201694080988466119283353497972949535283797839120477528229952292822045531377523207048957131205934360300193675207809594861867171921786036382978074802852500648313241235209304076190869282741202933571227376585673743758954945299313711213459043460666008501314326370691949392053134502564648195332677343593604734892485987981194281041211659748385725952350763530590144391341117460393848027868837166547023993759105273471577171961897878718415068041472142621475285519630914805949780826141840426700730499052547405457970057512351546169666973978872528266482659776264512712103916737108264709579834356775351561532725415355937144229769958205840433316700412254494916672556237493866531568968226006666940183922675166828041279821099346335642985565761692013682639433127970472824268640251260380158688141847331157645029014120001004348046172190614287395698592415629706389045294753270279265545508050208904713439382758995074101302895899662609711792319869740573253507558909761615160207552631400151265084129450493860713297974991719978902667598089151558709442751924330230604100843575943873737887792898200742081998877997052113969789483894569426919998075199462217555110415666284752832511230721798671076726986916566788553871070512058329412725341393921148273429255320364053890338077991264172587576064556871858298189539758299165113707383239915326576781404747469044620244526158199271501445750985404829261458583922998577443237340117706046298240909484150551290064567792599383926935424270344770343589111566286480961469618729110728392167416976918462267855167218729866064354575492982401246093655423145750824176026167252006677506857085885375960431430721599508188645077215284124152330420976858916211856507324739303595208496623019286430755244591652384407333404526388165950789300400602551588829288839452594861894204056781102220820864616290203798105894678211542150878588477232971336895131408918032933228786922907887664021337778157001471813011375677444922224899745005178212527489432879051330077580789710078107005361939605212552853100604002207576728067860507523188768835150899651883779419363499740720616513163433689413196032680568760601839542824767390310807160790258735397245680048562418934125992591440846714109173756580937886819178184204590987484275498487650838952977157848362255265430891613210278494668491022939613170328392053224477377510386645218503045802778732510726161893425783408301944093224677137642874787361732256234004319778704947879882012558250953156266229122771451627989080941892474626731568688666529404703694409224586785514029907769456271886342840927109131866438591458065604351178014341047277758706603367551487841265165966486457213356921952311826370001014454557614573871290952230301238073699065540557470678189291797261184313680525691839217092451503201683656120360441363565744859505110752379048882554532389690872096160567980768464928648127057268015505343044870362498502055806962899464608121419184970878073139181113422427008741464038399091630309942199215533475716536230885239844505903552319742904853974777958856646879834060128972817028955084662719130600534380391924911102211119184703086213790438607296548650296356339354949144084285835255033411258093516715862909044737964746196103622346342682123377960458608751358209624656142418622578401741912111212420805892602786616124330126821809212076768351415303619851730134316178668139731800320516035782662689916925860232336744893497604515717349755139672967385271641745368917572098205611465866446362715000103314929998745364135513551178573128632124080277252320226052580486962012559655614030367676283640207357538841503016381098564401491667036561004218353767184608830552344803359874088762058229756720274893538909391416926996645002313745775484836901653820965213505496296199989475986403341592719209066619777616884490421574738873520745712615038280907518798676102648356453240297937419174655611681183439112152614669573376222972308752323186076780780292248464863037246785492484901027267332006499964449655839028244079097296016599896767043216092815226490074562944544455962588041504217919451275531402663885200997320274336431519078111472005129538067795080981190160470893447136131261165922837104903697032565026859571912451815263168469945007230151851793412618862167974202830683974945026974610875361633320288720033405294257435080827118620483786374188883860375518134688716856154684255092315010037354904022047760910160036919615842433420376726060313934861134040483867784153691095934707454821467699221175566110369733033029157373005232208818694398646093269721271888384302406397099568227567642860339724185469998963255463715134199299560157661619881512004412115517814510357311967011032321860271202119984429495722367635437609215279282658414170987820385394151682933450051715308798434051949765711492390192280200761001523387720027990725871163211250934445626557279917165222193271695067288713452819760038266748433345723418646910861312170205227289961726234321014282547659727294967791753469540117610411698504995261258872304040560771548572494293403276619292415947090425347028036782890719188131403064532236825190043826833908685506995441653214321486585617029785408993947044206923027970730877367217735104253582859698950704565653971799972996778877728453201382186111439919290289285477578694371206641391449258508281941034896266069700626725599914353378205390088945153180158401194190355007661565284469800315015954010525786829584964913999628308575609702487123947250780549330241027598663570344879842520707886214389014988406557715366736604323810050066143609921903003925502203972777131932131602260277676119441263760361031963335808179233230946095986023661595077008994455961758588229371623847479930246312291804101237090914477923125851146072308140054579707454992029351304572076933676512577216139846249179893641594881719701968552033955947450511595301280782719046232447498856883055595948575537101837327213791458115897257837981735856678232708952930161702581259527634406656920669619804553891952355746812774510631264438389547011794802620781011358276349123431555742277666253338366817934765541157387562203879074572861807223547055487469881704334734446390932639790499250234702042249046425261050993877657799877976093739942207863531457964042881549687928020268938469434113343136236454493036089119591322595138931793285274064113415250124449283651740303916507937312351218340289306195457254617010393617510543958819209160238830048566924972875983659127031220613223883736616496357411505943096291937136958558822703515607436826992832965666260976463210980510317204575181868496857425050495220461732026586580599676857970117671742931819853919249085252347186455752627278555633104531920684343384460650807088936205551196380187538902351492440883156965997666069034505733884637814791270585516475182952276277284904233715617778579306079597555146617592783278983346129676819301578479911373690024677879692446697975905422375523787841717121305361887145065329744098365114638503064405296468907132752627987245341307294519309236498921350070305554623075680215469493887286623834334234755594580928832523174303272645255628971620627704880696924152282871164588609203163013328622320359791590696529719485064459512896331375969357651426481895295613120123628837689796819075537511019286824002924924236719547060684719541454783339565999640232680255083525199697403812693855370314304230919918488770424566712716951314479443423436747150685360903580237190285167247308087998354171277303703542822995449731734271891730353998497824647103842957271596755355704355579505606491673867386190051088532629958281590214626779866457406326633182318579684354030078507989977814997640150182820128703726160093625437060881573860252842313033200369212194610760420377379773933847932225421034968734822145022125047545951868919104281215922782818147540732062361504792441566873819190759129337803015342076820125270354105682822014176494255689413841465565671913487815633533002061959746494264213437988214750326589024939702175978445329935075542013119240871195006098383378660031149334105939472913107220850533187289031969013116510060960516700811620440793048520235131979749883866132731496332151011953546805271265572711346212525408853815289316095990412647087199988628559651547569711867225387750140429037784817931416572150238156791734719763527905281375736680593035996400312544452565700462470862145770260958311547108441972856333854543594809221257748498446277896464629623131077567720888249128149446413541973116743112758230959002529378135185709853278959672179388018194870386235578787958815902806829425707587770062941194678190370272929437072804665246107478217249233832395584675946590296416580034061486658510250690032689851928597250075141064999343344250177624311964137365110756070066200958387834780970670583444626690298160835603056169698554185336836175075203147235799413812906930612191213482770182443585252919766659509997165986169771606705714761247314431903073733723285376383801439286572326959355573472345935994056984274502991942524712894608916803719419963952770550185481143248293790769842983851909330157761855447667020789784238835767805810036653885121883078072963712711354696359070232464387373974206969297864381852376405243546011857550812357197167324102751614255095178321443524242068571657443348843767398523135617868709123226784269828559455267772840650677226183438367265109770756325252704733238893410431875962806183116384154498125856814250168561589482407564656695738172510582298440243883489704283582140937482539279525800322490563125384665076757645377083346041850001528126977837463350762483278348236704155275947295100268839456788316936020182331051140703911436867519703197598334654937523698726958764424372494854059886111804630323215735380211516673203634859747280818712363318345667908059829062083771404370673783799486872095954703701368110115454515600966997137263458914494730844620388865431595930704226443089993042408630100236807830253709614509272615920915718493085034692311437558530706546952174370955601974270051118822717785679883248193388464370473024166363689581294929838459724962881701085902775861102620395435363101695124082430755946422016844246279084199811985566176601726807119471697796028352783814351705221277976275531488258901535307952452528260358496419574233738067407492381952088198951060421099782399053907574639161906630371503930004620946749552909845716945919838529822329255183356625088140051838491721869756673029753624114134256161780463716706809773117678354394528118688019650468796982404962073311626040149443781308517330274543475895005267439991008385695698758141367527844354001966070068804715650645470686529006861100935409289911348384028431517434539082825557533046652172391324590608621144141785745153833007820825805816098855001952545059592741945978518198063049291273344871919248620187569668858528078339550080028426760756882067916871459168954252743701547529664714382923986646960019734228602242177293959582753717354707906782457190769015371967804182832603528897321911967340577036485789891189788909229493157371093823296688076590651843352897696288079284454060718312720997697724533629920343280571963400895303135821657139822226758884008175856778639565209120502368366521241605180849309206478268213251869274645394793448222611199947115472131939295444930668230297839226434203147375307498514139346684553773429899315946733897614296542795206029988033242235876511673044911987710356742646914395599190374480083163827023343835562284484591549301371165548170638388819919636748048919151937755450417752935869317377681590602257906545793401491597644550992697963743733526151738663928802484905609672350609771677358396853963116904373183011184962277377198937138040801788768583367464604612191670254107600797817556523494421491231163294512819676657225239236250214284143374815873035588834462904066560175766349393070347235603350470882110621484744957270617556966820238014216706307945668827610049777766646384005156284911330872734153330856732142784022724507610309627327142888563781602617753974746153775428844168710581798161589230125259068349514091384808161234533641957675292573822110983751821355846678975959018510518743460746174035880693500256308017041265687314882468460603752968753002118321027228463292087750826196448403894582367943173791610800496255855934240032323418682154112666965311671542179101097798465805315967013247072785404963021983231688171601577468056876612766311900789258871983383795926772473563992970153779984015220617523651280579363191642379027031518377873316803048149712173755007513629873512561032670169369252454450043929530587395835156625296365287184707484916112049307087673671436372109125081829487945437070375581013866214393447725877528647894871248669106971058643307758411252742621767728213037730528144456669452669401983536590433879365890283985932695843419015337980909304954041473070443738920191670947802307934027268745629788581767757430348264756569038657415210475442509169247601831973980441368914619425400389367049399995598934487051666426786895201680061863294455398238372923984853276266775418415166619266296362474472017117609324333375418021662564502299068483524995183536964032175429099143417049678988271470465037992786567289560135167667191208995092274293661132018867609105037200130015035036095239878571226082591544327380186153801489154417685292710527658713083758079984246145802062618534978222994511165264870898734464834097792980261699935033223170540126178234039930627668069025259009879255893275006408242160431535230179425091634813857023447876341246684415789806431541418493571065997586737595684661124104988300227555038995003599172145149603085354047114142837110302407326111948419181379670898923116249452306075866793366682211642345367871210878903806616522634425916824848237432899446540006780801315673803709538918602656714166930739370149184101964212281654150088754727362039504326743112603548397573326745051518309935548273556983604994687870539751105974932628289199414412763546680648319627129408962331983426358940201964736063973556729160252924774899064870526350905570709548462538960524595824454851981124560658748571094447335458291151210336630392746902391883158396424204418263299308621644010023253911469458536944117178555522797141429599217064982345811371445457338508512649014322260068964799130554243256072886923001407061057733433700402023034667025419041816067790459085712039072586976905865632080028721274900467443015162308343132287002801756080275476301690143634565773213109125181704921051847728233564089333721371599518579261387812657214491597648008047110721795442934977007474905571826308370355531780611292108033447551743714992058400609264646749340443467705974958795315642093288241685108179459926934101106953256886625431621597221100997468913233076570158069324182333656901816029840010002934952505342594186671164302931217390696392306635997167934350070232331092863123647458358149339679215253567064693053638817117632291125453084160394538867137284944855405636242567741206356485412653263955121548857605431918778632017859857946372142970636087545855633160472042894316762199479735744281109630977219179573746360297910791578453706609981526324411902767766009470865258112273402592815426321046832570965929852080453112543324720680207787189736257792711495970759625686049325257448343932153211436729364575404844099062823832923195296334184900207862155089182792883929874520314732258789508627709245934728179808050528184161529404491083198018038931315940835849901242359896453562946578430105946193991218960811910192622546521189162480997808588672436017109436498646441314858015630915424380355491169249701652642166356511172124654084418963143351970950761785707517063029308158927019172447718092244285906743610529697044589030119891776605730125712525017889580103142606333987599204493762317726052304717370364573529078388900072355353138514194950950548008885428589819461388847435635694776436246251556697436877282736741912783150856205733575666872285516783557627818813662140936461366080066370704468919061533548561482927543251523231996063952151602873911913318998008087150332517603730204768987377798497467067976116454056441212918010759686152560751371238354492139088235510655193333540336831603198841617194103443401978248273045878897703380834632378941075465389427539833761416077492523331324723346485891085285714262186259488226016792388279505590576422329129088777972684592468173711733581300295048306802978240840096511758082203518241453958377007008022024698575807186506941221747669767055573445904652639229299763468377523383630781708397526797550923927114176426221568591415693026652895876066211968121338996138492552931870989474518838786206386640131835488261441152173534125471433455877381931240195163608784040137226268818456443282123477767103285585751318304213453175983424658680536830224032111472923715814074182861161860140622445975683185489769893884982240294520267707399620685441892221473866385065794670767296677662109989989384088681567667328050144128770287069854458508128246031806393084783152703980573073964911136287010774431528712115285313755947593548116516301914776842737823755270503687923954579286844861285315168270005322037851185179712403448469558312170150608034033448171415876885579784378061848096479078046967704938072902716302451619433432049255676503938851141800983258295850344005624175205107798528634716496369249955526410661618029312997480859892661316403415500633548069376958117873545587962635387103810383613645983195658163239321388430725369509229609887888209563631468257332887514816279021089936535792993622284962396845444522094131661442857649887854697597602607858618088870755920563154375037967271035570224269620567367572640475026350995716230297655388893742708258440349405971013585615367766615863556140744007704760835203850795555697745300895583186651141867056821042190195339558153086262442779578655821318937076268769313599657310110266241146828647267240132263226804777612682622914278281530052823817752214786306491021746358767765541578865196015658621590950094764291155235220669972543028301131165964168698409106341817376727512629217743663961101032146901441071044171840261330622494035637595328087544428475617507205739014274812481970908650455258578277180686863239300315525969860842847106027404076993035443950718982886119609205514864885757421381544232652565025970228753486313934195559375911218687843017907480503223983576042717318547334045687986582994081079616776623173741586564901202622727239409821852421745184815615096997129585763971939640520832563223174526039909058337623788340980488578498006440851341766260937225786676347391153598226311837188810703509057812615401103521512869299692626254708267346666936460134550709578110178909103381589873952939694297528743567863344779796324329916177602926085371420138060075781537999779226390121407697154972488077934276443793939632361640722749063966078398576496769365833799764164900843873249989403758501864007434752373876368462624474740009997614133255308539858557954904545860730579194507028664135097551884203537192675660192100330908100384162100750047716125475185596847917465276466021465600300052234260598873034714786181112661076854514545178410745690777483724249278276277042359605005327779765215637359920539042533806727193252282295827048975155383755249068971896903482974371984580615334547364278173873655921161803649499246900941025106290811032369954755334314722098175556006928184200551251111902285795724758802966231606371540487092836324697949482141214673895146572237170848880384956920095184956326915032750553380387459503361072822856240322682968498884342145925687657551661175798934010151192314130675968468829057139307386813662210338412370063022628216690699354316111931652960755522508484382532786142113412528245957772679197966866437065455101333266809839712580939051345906094625726609211323156355346078640465263197190167351201287617108806335540076526246819860792882460271739413638030035250139070033344965775636108581109051396332985334212603118950083789332929171181039842572436232482823337290549545563509540212528678186803826673168254947453457663863873671475837946984205638016070656956973183032742426223651892961758048010680653704912932078930637593095757146770301112449779680703542485305779873332545332850067427792654468980236346503249917319113923085661563605406250273986528134057672344694482666608462713000667976237940427367966825894220623859030539145320978946650698570030203130396197843934870678884106825564161179818817994896565777440069722359604287356036431220176793887262420318618704799192544683188115545657620811865331204601587054776259030548291736086760822185701162124266106044737035784152425942526668171380833516460587746411632991405268252923103623796198718900236993341401350592261028132982870332787133322390739166395381132988293958182412011419368813784968171848802717520810770169349860005088204642932964053404273513838132478745327983023066578029082347502327803920300239977557407520820191275557013290137584137052831623245033891948996844945258442185651203466043543188818258018311217064532650783044081407139819711296853761744017386487051381767799619269086509693479366149090489726215634261368172280111101169739934526253169719621417723005918401269058412976327900271088301229660342039320617750316098956059983798494044825835205779892411327653854232795291863971020036804669989172894775123261398250167998647827647903647911483409942276036752153463768689545178929311240828842409665116627203985993582177313890233754492612044356198110694044476648122390072121835994810254398675120207733604610891657854300299957965122823916109213461497398061086459014375667231062342518883956304275752802529711887827746800926055221447865065630759170944791331022139036553960839675298098024017485351251696399042228951775644766141847247404886287326472957618363826488600349016042629956219141380180664003866798501703437386105758236324407874304811632190633649512809939907677820339286970233353810121867394123195101197063578480066780833290426292063039780340912812772521446673571804411474411087464819499931500699066548143647819693332560525382720309710943575572752649764630656555486829840331704676964227285443288817037438040100003954613960886513372510885636850196859663851836184204261341364298837714678202401915506264731777202917161075317967602473191906611219429126506760665629054873740778178574447824667113474231778870420137957364360163756085824560703475900878522731931403219616180327501388285134824405676830679905470234441886013281311973336055023946784076966189198212556805684677781108725395389975482672766754474376782996739110407032345314222174894237431794559477935959989962811826036790656577603778447862812840919576661735319799061880412528371218071231888999517078778062342215661632862527818140682450032034932477873717489319991579783899623178586340249514952028481598496655252352965128387665894176901726796587484341920913291235376626106398898723429707501742559033146524659130754816009555043566309754113381377690244959663339555915743848022033905073242789812963278128313900435101953919147150159817434278867911891068714228357673073816192140057130493297524067207925982655147909879158591988360024634568305963332697853763215592513663542929814164515462859952956382056965850756926305044824812841983070719429772732915772316168858415766455048487830651928830636647394673456118465751777761681335375883129697349496112686478108439244404873546975217254046615322786074053199546490419578627170321953066484817514187616435916651787143555785382043263603619045588756717851581060146443536345200000726235326067258782935200643377023655317496397679491346240471879633668186852673680118555217340088132322950701080031348796432527635568721783621280530866463368206201543511258128781750225392350035505927873317991587479142845825589245060181001754840331634273283683483997959837507187047716934998086300936141296637564012232872892281692411250393287056366495886362102398794988549072219349591282072258733406008404425499098440702468998536545918779174740467006988298336537076668726491215392013650393927895017531946415169277214702184871536433589798051410833740921297299518310099919275213127622875506726872882128216905968505492726506518502735606073053680337958306694104269090303661535637282358197238156574353540822476563515409982360648660586787305110075650402177881421884509600947674114785893156148016220386375691824595590650916233911077266545092514793462818786320347917524864689672350488775914588165952026053518107665718389898295924545579941752983605142175890883599879220901079873875408835456479320809465162038721418210103155008026771592696544535004976456864574584936053607929962599314881780812387154605339502550410146991689752925846451183161381614921688752282180228444799994447035844075058802902089824679937520919074538954558935618066883880616216162311302650304492218098058596215673449981421652701058622544241923991875180320410618797568617193725262507676807603915597473144124265584010170453547191515190128574418879026958544313205747864685349407512399025652974450592306356346957806480557339526465682415187960350836687802084073458477116495568200581541352346300647082321316407370756781494671674510186460353767722810612803619923576972517119241523645833959693745764446624274351629208165358881343539463499127581457891218124353143819510984180585558217825986054983718558945848259187037296062275018076263881193341100168266873300137498939959771912089203494979075616454774927064669096518338819263967649684404330335761923102496673555039644985488929160052562138958805651252909801995425011749642157937973157709703313875234921013262294555864808822122139263928850795683125468581320705990995387654476059661060315033035262409786254865075680571268204064579990693065807711085689616147063424458681177933605351762174788308513696055357582094789198220282273068521949027439313431206454455677281689074387208782435830899302583067696622819397669294093429794514825298222938175328579508421698445404435636157191668088590674547758697830623143531266989402000129899131646753807209604811471935745251149824180478284388367987632495167121878663139784797233568764997664555884399099104517053489279005118339842248787936842329354630699161758007852535770392606983089322890105827464244267531232907056730266659950059807700105058076783249050381538688128567600481240636459589045715160379694174598623651746063999076863067154850536480452171572105036784198628367808516495428029330230624870188321507029631062730676696426745765060772586237332810289766922059322583195383556253150622406921847812435037051133507701432200615682769916468437459465515238945482162780144919811322043510457125758110673373577659963723949034546555479278523455742415185184313013764030168977338599948939088019640591258171995240760900814052752251612082096203722745651952222284686097651230092696698000043604895087862223939407351795893430706831739543627081773800918343681984737791132734181957045659580285232119167239143723242772762115958911345599732806648313050741536743429656976739821024562856299153403563691442752289401313716285393266070699363411858306386816774915507314912035464384863993625114911112047081251410619155088727005260986925795656548311025508761671854267996912884184030262129494645471086390525265574695686750500719614685602448263441490927367450086468295700105621073244022749731472415595644047843697207214046241088079629198975237164160243569730943712724084543275656680299938152906746412187040929467512021834408590888937100106780440851953440635017687994640759194866532533089966332855846572746953421995191421538833409022406053467536302827917411562351187188037404897658866955016817350656370248796581865097870934646023990976808803413393455146922295331310016754219161065271392043045252638914039754630723092758210759451465921865998049887052373683739211592946695772934871355152630808907675562155177377835074036838577196064335065901933797085929437030104889775357122577157124480550672438041535263572442687105732933442729102273128301426747577342062912416301902893208155915708815144774301773544900844245327526508910635286907984431587937393588024548804889797270671439632932377644215288038960559086295889343463404436227906617430910596609249035039066385030734389850337873598129513720120431250340259473379371940671718064457244405487205944416029483392112302664266677565726398549787530295779927628692883323260289293968266591843407523023980166110021049031119562021483423321187806483738810819210091057935665890842469710487702182517638936410194317025155643860532098006723298063080378353820506451648729309880847511519602804261580359991047736418431575592547198383333577028117847270283278087397252484670570227090558152866181079495401957026290360350189156342305859965739466357336086619013170748322491264977564730461517495394965765143463953662839814491264107618541578495297090733991595138913686327210786003121953978769085921582371374894234739618294922256881533072853429037851003060984599210568150312377042546098034630605096517718682904488721972150245735678324588808977103730278760073453288150140589920349150710202949935086836852753087972097714007347201476395371833399567699736301651601162925317674923047997460375773461102267058127607449008498901965349484971210868797853009771817391089524444990630707704437441389139607155841013932234871566427855592456693674573822182099146225757448970501258038390885836841011560502446426032853449103815079687766604754580713796252308472897365050143889885251006455108321242893523081589729716706119210594362589119541409080636301613783339134381102211634701524394152575447329521146447797082387464057243578815338252410690057345898133212136441197444604473926049910239755015237344020928308042727101497011231311188222366117411498588429087634996802322147282143685680087207419992547138242783640586596246448393440247757115274324363260392190198062931217980928225824605531764093512566527024508013481508411410697934713497268651657184011652309305556855384792866240253394139056123739830359758204879379172385994002179239672216618989351009455999155170024960511436284075320556653048575457107859254516835013303566337193502543465740404194222361310496389769451093635284401556727677802673533420678949753966536434903818805747130672920684593148512217717409435199025683725040824964194715367568272688364627727587922409430771000522913866029343444511671264556454101413155553280410585601119095101195702022729612683837393900086174522738745724413440114963381224209228943634402791681849194196709233863267479852635610709891033433400415642049231856423839693400718589241870730543460256710010900292000940885987985136453295873934101273974280987503414046144496552772563745173033947150718377537568138568504724621693267978238262816604737081225807981903428361432496402376782055682273845011290978922808103015004116698904662841904927947078253686463647346539059605526337421507409112360014547967692216827712322803655656275678621018613962246032784669623112583045954521331925082242368338024065131820113552785593440149715543960408480480754523896410146057680040868091622169285851791374843482915403621322154106569846930908633044968244004487788733235365134533758080504335694627097292635109340863955328889402983238251896746994794914700332279350778626648103810181558468522177837388943342056409513543395507572198817655350859261524038316340138737727067842326686295650366004796540473795025388867125176731880671677595339557714956348960002267404794165933947327392790096207748414501412641375647946632736006871319501183448490266441074160890898511742811174932932135205636074914671471609568936948108226636304284037435245697384975730115143803668247342272563759865297443851944282566351006707879527820809704914535881511064924479467887907884987501417447226758752776869858350057309845087061368792110657813323804803407953070948318760379289272482559960101196929281749246979990250092470316083175336169715231751380184651456294692971814338340018716720266558884681670059558222825749657061072118808368398040865746881056220801360282063708899288189449185852762662371116514574610945236783419606269009049113990778508471557147597824226591970414527622701388917662046798841815198198335043646095537453152422168171292190790334068157112782873975856372863388909769678990345635143744497508609770437972139849133318326601720247345504011401257658595994276229910056065201636204067924139803490275526928113624251556543688991229058883633433824006459891546324575277360834701083256545046049795530215491503149413902054330223142956409576104891528270046767102226957339193354171239178189563006856793683244078030960769586541507099533960730563893273075953910686430752450704983620186829754876628297284938138318703927077056108578399325032489097935379689954764037312400294442202654284002897750749305787759496035476667232242820445192956298811446733413853054753583407639083380644251306994804181773268681402501804209210256101637457049084107196434174912559771320684316226496803876434867842873754225341158251816351080169971125483886858806690379093843982333428525486292381194125335517940460112210550865432736234406608299260131005517106625471905985838498655778130841501404626546619018109559776830094044644058121974858734906668276920190115398564162546785897491365510576359715907258451715803932012645783316676653218045102704676064737396409585616227084925781148175387134831803075403893579701116737283862144784886538962618714811043569872284259176468071312833036933414807135582549043044777511849982861219736465829023049477945437332914124213432279809064044497131125053074142782184252226279105354074182485139705489814661560861672264030146400342582475527710100624713079975955637871496378145275379131673377597131553192659006495462909200769964741515621417228433037234262930167281002996345603956483901155139999052022702041227190377171524856627180337678853769122476478450922994225873095952376670308574452415438884414303637369240712192430776333070302041128903553110241661913985045055884519867717416135091682682962338314519118784129070749122604142328841561396682070878422369246046153459039246186461477246297434484578804572080107426495519288309037131500795024918720329697279507558833964097580093013155935974370676510844722548539978933238415987475363762255838287294817621135825439132037594233007496669774633129761223619984104143246593708841345193960403167313023408299242989501006034568443242026875602219548642733757350099160360851772684512594801970815622667179769394638517338813482917317174831834506965410009016274688072558478983071138515810873545332263738466928375506145326205605828034298975071143479666511626685837211415505765319826696416176069497191301943225137889075101067042099690078343148478766305779060482452707251783046800085938109201793829620390281070549925146668117820703628079317185239716377145907702687073942889194558755069536549006252370650620647514303114488567896862868170313845106369359516149763235749339043824380601470069627455331192717396107760992884537178660690596968588633458083024454923328689751828673010172442601540814908242350715418021686190302003475218129021520132654989175704249080631198586544366318465805879947853050482332924943328358467622126682285979152799442144788223678971634748708955508864916782799008954021799955579151226861312072431286922763895960083122363980459791633146486597032226957318181222543227666112688719370433867405661191016064028799975710255672508410282900597599691468417361795990390844445608334329200002760223879707494724681401748804270252627729697396191721372391844482934853161893982984451470656346336636279462417758709773180181888576316941024207636281929872704033250398943937300379942216148104257703373805269011724075860693939246592778765265741672790967259650009289743770983650804895672182572392205717279943149904289925054744174256719345474763140793971863845186293100094233354646163227061979632797457429143101643327374374254341301829883426935381502090000013081568536411431772131230553328653945392583178379855213647060335773517731847407899341232351933168375950517972234160065755467107490041711954481885707095753108100547642922431207073017899004594490341273781263200453505366690343697530472688661291822585173243988315036509055868976853444435041450226249605842115103634662212209520376078864354879028355679371666153288497040178638357593426420581815669792380996824904591352802109376156913403930497758598577592703812984474772797869922203375334577296559284640921395657721114447775270678598203112623527749957524636195462331660487669409726026812344574672268766840583256769703654146427643105907974999141933766618165963864040834197406268773763153533823008549080775608149579149952305557212721504557216827340146212149163174608901935648738235603753879296497994505766768409309766969362117866368494448855421318202925382563566433845080506904541092333425578112865787140313677314445420578119238977475967298646386179364702250238887321121018428246530054738311956444855807720998379811511322934251274018070497375382425626724981741022673063965144771701283596385900187892143581006651416850535944975149479813182391078272640325492184217746337093696300601910099257946965457471066829092339422120997861152891540856296687360397452741218294154427572976904043027427055019112200289116573279594955418197354493841674234917287662119213919415405566545941447819279803588061111488011018239431890935703314381279159900793086545317316617471979234583179609378897271246263166154824226597855125233027179738266373787105478604576371874335567406075853526909446470400396494786553759530463517547115233037187772047531361663227933070240101222378415970400755741645966148117929289687796508229280517755954077721715462623887897911974649477165168177506816654298468262532634867025683945567913385903736939714796221889378847153807379290263244272470149861543370199231159950558505093956420121776853878001161483106559323199966865729458516484370755412220731683448366189926128468150343080533257979928842677755150222301274453341124500029604348129937954797778557334634133736645803157463393893914977266163476780702012278993820515449388762148504551723709802630393849031856923846908286998426903074006802433725823268429517147926025998514743598775833371657927119214081103580486036369690345270703224407351715359488467298260366311848791751671471660789863651403431817324955929327627293131650070741625027604592628131715478707455741862833326362564368103672605294060511713048189211643949554513454887433689213524561770337278804449093137884052775395949991112554117508987800792050543211064592108202453895679823084002375530128277464736770055426883730383016961466044627227833134159910010762151378901461819240416675242448150753620440241684477192260097764316634740611808614360271283164695019887987840675215032948696273719490922232386497691677023580380492283398011199841276110163187672474891209257827427487776362380843500434830671645770623372658286091086384698935871283275193450532439665210987962104488031479499307739509091024521362578481324122245342814349336317114330771386279151127239422782074915247918380143598221823922766672294783916533431260356209081132593121738110244801088669615883257682121777515306728128722613882593020722177641275833122180612491292612818263105567464341058048827539744729975073609131383264599021679667677614985341541971672509425559881385102012181240481727173987730100831223031542849000559737925558437173731781285828422459475111274280164342234779949166450120139114026766583016333034081264734868664538722449259137100501862307540484870890549415332591100743328586897898716607313666678252136346523335822128122689937137304934465501103971303758352737375268505980323796944775262113033608764099547566240955491350426293285743196939455458876427041530979166982002126287283624959953356714048017856590533079047588540554295685800470736439377677168947198151789331965383122584343275003243298034851130461804067668492817124386727160167307848347944817430068212736814699622078931790763189150319485365799929825408806445206034720561029537660833628684179004667467220551988317292928687219491920972178949197431930961590171747365404339840592899999739576767660966930450730786046356243965738699446933503476750256390084348804874786343114974944643776817142707086300093271445347395601412219065259278101291225299548158221951541272593503317397371679370878000716619656365766976598343216769725145867154242298033868820868977181338422599145916720380125543929186449012991189642075267216466663959832844332882149804168344318645131058816057578901124512419636034447269406241455433264333437120399927332064381010255617344250834754142877823606265696481547986484106765924727058927420811975277243229330044972335928622844830327419954251803157287674541309608907885666309103240068559920637455593646211873088158572227505434787586874928391421565287384772575017020512975957018884815751261241835490741211997903956330163401986818236845062805390550786406325204305657951712270956354552936572078059879066071524162091125538863259089807470476016251751165982063300503751047619280308210964480122288346688316849793344383408076998166022248236057094903451569904316362185112927365540066108277424418592946522301304572159523389321043099957433113103922953994440968872225248867518719918558947588879833262380334792744660779495219098362111178804536419715698288222253187775754331593317926128593571910161716489963844324852667557222340947408913882898206897437195317458503207392185131662264118790322293781625174622086200631064582989223124766380548946388893013433178360272886639764266321586632736750034899342764214567427765683620645801073967827167592627264471094411839621075666738825594918386473884508754353250617621485860796346219354393741987763829784497417576572284178695133342417784617271103876181238601043900591590186098902009821539528247748969056848748430302824458066602115842506447065786015730244702288476604607863427950419548497294410236220102374682912401732986819346977220653222859072885590084544525285340423824615111003281832582339014526763854074887308966902378221128579940460160525894208640377670498409335751679292111034846631287297685079956339308295032761047653823181017132329217137494446220181602224091379454741262007624150198312737677449847512050276073608450620685779794049585217961065116450518222929572888010882835383540807552084293717693307931443065789361353719945124579198331977840797309859376774105044287676904260742089818613419664281772870859002231888610968420327066696180638021403294903572819852191740267374766520483880966075163025783418496977320243830517824501027681815234391322314521210824136126549396443210677365475431992131528714984309712903241631543926563352980172697126038149496200533059741873279209329836548687605589981462125679164019389321931709596050909085062211342271291166259102919785601219659249210687671687356591005016839910213179861449706251603841241540411595816059274843819335415386121324800563750458002445702880427927195044619701931178711653581527300944749316381626917881112193240055855056816548002286209469459944327773631373642586011563261174840298939002614890501911561806374322617959706930517053882421951297054341251732359262183759539065082013939554348337999032670379750362070725152527547351909090375767513615537982420715129255983622539973482471229145367866265690929104669628690508194335555771561345482118119140623616151745358879791957370877950163701072197195405123840402989671950947254870108230851779271346191884298080839690142238382945110209754074328969374748702753648902414935219031519759182025018801653190126381386928591281155271713849322920997448926824679721684453436336830582146403259136841001489575772752047575511298289812159884677212164231816659833320474852530151569745783285023129064377173546885684446351268024979323728803976064062902646910192117071021940409162066173569563841398000389863358094655861458876482851056518346459951552429734858849531698129257524382400494290870711351343910033580927926724600362123069407315890036634583393951117668912168255307147784239426880039394427859665013539030026223249315240505521780024369273811401235336321036494496112782835019277727111298423431660258546192351100390137055494093925094428121600753665015481634926816583548468696549048115792073388861974887829473726288479900556391165951531028167196028272152169532562563382950839728325319003688623183252820123636862671441592874853955710776482576646331480616258922851113245581167281789805118833712197866427548566154113892041191945963492723923343842313026329164950119632662354248208632268932915530055837451430564572538918875677934109423282398878300460419107579547613494433598328514974960931767707385194252898761697254919423843378728653664455031253172585604850592569164526319522603184992019330854848808137845323863352632815819404789243072928645270841898727265958242965874878962782499210477743587484567838338198296469518901864827598114294188561076202158008615140071444432654332447969590622803884917512938056392893875492668770024223619154202583482072742094643423623265471861918368172166069551526853050347970633057377219505819224068462732484363621219435570093159827042010040481100690945072458587472603323947610973885124917776988836027302722610789960185776661327345863931621760103290019820364194957107554960779008721755361766031130304159976918650547674978734368588273421684811186488119069889657404172363558165482648190104083126594507143507506253342885778600075188776537708706009899575726397416055704009631667604381167286639331363447498787067545967534292512076355016309477901922738500965690400054669933078133840036783373202173067856069314483811121353460195437420714962267369646599274340643765899460886528610551596183222104623234386084101508721263973733496779570191336909191587119894978741690473911180414701708192250445663001537504854338580932496430708691741875370274287112468595249833336627448440352222005321918125990237309853709217130345873584128909684148998798129800889768963016958678848876523769144133384748057559348730235254701522261884374702061507181741671797429304979440990748676192170055415970009973961530487269668471325944557491926881514758130827475456641924763210109783283935306273285110965942347208090783725233179148457168142130984354667656367283071187003321817881927337493403528190353908001228326518711403300621742675552653395547624663865313038550368980629899182993821155417984499298033628537419365700637302202914954810704272353464078211337101392587166996372352994143865458010513901316181963479113762546304848580778303043956975636206296346455769390237674263542416637467994117652973674352879672957787481590770948589506864850083793774218661667408805814781155077094237046842950774349205991153962198881165114433416073595176176157578554750217776638785898859785274240277676954408435084374120634810884483885714221688927096304716243794512022349280756930060568689398785862618070975215738194517248058626340659805995017904235036437826503963848274262159531484130385390630319076854752096430928982687506310070374609678648412999909965889128713546992851062112215165963491394080219651148291126192824088113850962957142506448023560364987402934379334992999963046664279617451070319351644348506920863646369705203018235957702530509077620989935699579122772022090451707341738590937161566857739233906409352515044310926560585372693269088630082100268230416074797815528126345631377064702531273807078818883742974839607978881233712572699543378627683538877404303411097477005626853700302178564273033204787749727929706271541930727510526037421309675124206909513994847285018263721088713577156915564897430363649001595146615098440941791200817820789816832908357820175402431555585564878192918341924547025878777257764835320685665165284601500856609177293026585753906209256112497297732477278412814678242549712228208381144372238464639484188788302506262898029593514360391648208517391597156367347730858868967868813134354044546953814408327361572367930934589722214629382142396137056154394315085693952898316162489293394918827120328309317303676525758320562347070769094741717144773210449103093385582009145563937703843674032874458860103049795813116031711017306844512031168026531023805816171410170563431875431360385775576764624240909443288959137691218758870307086324867627417900444419103845334039021561967426731229531321646203883606034648794741399080967188269316633903296903667269361264651669849478388631943932631381775253305407510366157509135052625543815006944928413895602877363787285540245591775602511152393883435068158396369040789838398989362253182899024420589601085234022158959676353461435670373644440688038973864880772992663491373361709803552726210317552442598640154542122656456578551654991222231308983735863998271117726897325975843588588922223586202118228179355809597823583131820515187414098927014130510244424097413588473645030838186544105282179809536413243642944520519882714472044833845454736044791034289714472372038851496026370435231751415017761849228873164772716577897605394643339833750160112535286650995084294306751732897636393219057741304455225620218561071698025076822284404649246881452318839845266486068449994169644067820547570873648343333207207582646411206695052527234956927862487401936850923348167689227822671125844233358226877036784456470263156173073224039904074951041420576446537853414977676379524589364488907369103190783606590860376435717502626574921073648146564826958403732170860065786930236841327879515505692698907152715140277814465665081520633943522311568609842826669579120431019714624661569686504105588385985538397272230778068407667013319038298976446746795659502379661355593089872495853748557177167409951188019451068154375377521041351714370960293234043142241474306535077133673014269572839415261804001771169617969873612119491446166763152694289241482662159241733158776083700219001958489722731626152358999047817517939432253218101902545823844765443016343306486165931758650006130457432514356870731813553975798518611322535318919340954803686016375061310364366743148428528003230463989869446593203725297147194151331288612171082050861757064800694394804283526389155953941449612804760529407202776014066152133629268716149543780284826081317353949730864004866325438198985908861581204856279685280970368601811390410143312760235215407284505068373384165249204262165414238298815964501159646184544078048946443597295243930679997532558237664179470814467501686622355147600129452231098068132302976342592927350598490591455512056941283328703503410954064007275232701490345272704343264316283124860753122501551006166151842442614211694469468289536243198845860232132209792219336009304215050518208735756030855528202347002796415729741048734408773290647301224602042958599212564944814554119383416684669460843220964136003871903541314065490841107155937443004597776856114596823705591342624677981780946358238706258069227614103140752211107186898995572193243181592739977062376476794765238729335984908192955499945956551446798407634317096520158489318785742717176385380640593864350344107350361371635337472824230448881935754294501570632009956043898910108683409870777087706658705433543751271249882985945904931201907776948716330211249912845645825913804162713797307885825230015551648103151044513561347269145263870026692185409932065642240584056281860980736258622105027135688309937861117672029855185206873636417498939653492765809201438114058066375996153718927176592772582020857942429860098640837884749215662472169598540586776691531568179324140024005521618984834811810934956266549180994878766562742141420574266809932898278264413805556487478530739623079614762174615046057772160939109067243473306585803165096583556836364523542797055450005940125671431264295668260784942516035924512433504712578538401553710545020241141897878093852186402453150320976797071377481964986454791972354963456686607522551829115123277645709573455488992802247268817932658123730116426943467230501447783782690915652622834541967283173927414172145189004435109309864053505945432624597155049095296874978843714853876666600751004832481481257149260618862707965846283595548044046909667072451455758648654040355821519242745085201514533826013594286181279794838651486241472524905690559307630726394057287971112057215314562184887950589493586561148106265595540094640989424967696480426250127057310217644276255789874614689390491257151720584784378445273207559801560347628962829732585753571259434793225127646014001699471718098609598733613030063026288409075459699948171801027665323660456583867139018605992008663998812505583083997962310397281046756677270386847507263258653050746406700910686509361316525171393230361909949736181556842823544586511204379357697186881678132109077020799247422845189682880628440591984008347694514281154114403889319435630693099301975513548033091683353071103189504449367053238784183760651968223576771411774534416807283568964177497252694244106448429286189719592426867783628253772700259651609401707068351121730627897019558206572561963309870350384911756166527497239452308808305560059786382316356357788072795461362054832498213547950666761013144497656807997503074798967920457823728508885817062856774747017734038214447086852339925870560490298675486955749147265789195542165718434564367998146631892741353037050863958462900695452578644093568583559836590614336826992732662070480124137715753645202411654745544832205265636413784539333591808525442413006836917620270511671996789968376098344194010277366775133099871075802349886801781827442634455442077061145941188877555079600409387741035697477226364550680613956550945772461904434236191730557883686807216266567837688220140004918847978741438588365066590948111537840485273972129825394161184657764758510200273788899029343280722559722471161298018366500889289823880906712179036791898514468069077605689691316433476744384948106986584987988703590838545609561342872539298475306876080431449372167451865287549427291666710650409041330418831454742534370995888977439535446994283422105248787520477728081595181599229201291521755682979520057552969661641377189041751633687863494622485861041875262618390021956903874118681703683111836606052061472157461797108366318120825727753334551779474874737519676848226780436742719715701222218943607578615948243543813375133856191063667703338601511542213155615604198678407699274701358109483714084362889459774920500907036641831305700046556209817401942611630242983845153232269329306211946135979357969594727996816635716212416870863434299528752962051152214459689223872350473670881498988977934081819713864806806938839671601479467795236951956986925713531605646555593433602546286955360344873271370909335132787550809801862468894250146060226638110895301106554289760668792885737105431146311358962667589251571248321325704863347954266347216017348397985461946202814244452662551512816859131328602178526005016596897872181470918503576699146946463472636060771865218020532223222696320916279790689432633372491439920468823706462972793858850143837801798585531123400813110873405348940583501903329997016037983318977882251146853684288701906742587408063741320531888767604307311063974431956345180724342263431992168410814284992446038357753337788044639931823793735483116836974213847824871553443872039577368068549436652178669056382543572154547198444084263479615599486133760089716440433093758369767938252848743258458871583901914802695039813674410805946037662663874373399397497466085723524153084907081519544960451981802809000201450799663572283990405547386959873644513477021582135386146775301248398173240318028667356434910308521581848990187997403620997478060382348679370980432955246870157615106124044334434460145759943105387743987015267123507157237427548768095080561205784597762422073106098588888716899269858639501581886525120060635048283867618653579216710594566003117742310059206085056375833828083241611092091945749647743375534091950299390299728894985595269374773739977455350015179569623167611480173810856047657878522209067380985503607338670210352172855115669117635078907201573850027297493054481070343869919971149541878472520789160016839004885566231041142436149230482991437214950356944153467258183072155654285005634221984855741420047216065342690940800493091356737363333935460823518674081480199092529612895681235935505389897212815345561969838255197759521133811632401335332582566074729433164339115068615246063386734203886544337204286177672947730882643702819255288110637280151218824203300139996208698863482212605408942068875901843734477857250652183406148236149393400830326972156174966069041387395368071834110038591233878517771597033439364496255225664753864881938692405715994853357767220543273076105233371204525889159285556588728715734261595147101493573803874141015551986941800121781269555762025833846942915262965448966843285292197900371718397729505923133710104565412607197747153066638677758908537071802266875982105068478098389281897526701294864737144534990369841269028425542812038744165990040187183994599510198895771700792339947876744489612023772707076298221328830042316500573426987999337876065099003812001361954309773937547709951226264045963718811734145891587092733132711465830783512376349475653439158904249149481257968214468345578150183315436841211941516496384705475234393479008481278062218443472965371805111293981098701293741246320452232380953332092451758406268062706590886633498604198026811971368620829712015975416418330859718670478307680941558657463268382397233077125102742807735022818978217560377376569686839901588451699077017150584985240935465205417492144444322510942044737034802223466523449244361211197339245943625161202451501351409319311283317488921088666708476930554174512489928383568341476752869814476770499582860252790384426034006941030786878605147055767810963864626446674029308765462752770883565371201621941789265796053254305001531935948575925234499933220566355935851789726078340380558370852526360095765780506005043199494971620689210623361346496640689177350670806887408925193962427408528849693134870876861529277556582533904186501034439708335489430678216039811547584089323486233701964540021593986871963428343589260630156450652311831379951749359816832284978233008888445065125065477635754968326465164793151052769990808453891342113428025054910502692487549930608373177129214041185036497147374620987342625065767517924748458001660602479179572183463290531392451688521157208169472091614590445081561623901684317062159321771404686232233908119729301581363201480589287807636807200991803447089054307326564132453296023030185586696355976472456896487913172384890442735278450830340464175435403699010634091078942176617972496772372156754578990413464605899007629474997500731971104678623574523741770614269621194582852496810817857032199374499920853729902335747723057442141097425304393772812974324671544996884290278239101278748579650233629969991713134928878206096491289173087992083264478305668293315611871185622154065636615312400796424712766725605186084419864036779250476069854913278359256323286557475424686631443402087655896500742328331393490488509228067034179203975700998390279854845895386539343315220993305281193978656690690416037748634345809197395552067792513341063755952374406440844690851706571839646247669086161420103923912604467549615395348644046166224103198805285918157820466678739012837184061295813245143503380027268153730788094487193701178343470037939716188582333634579420357443557063558680335791876888781585939860278106166793163778005822192995517860279870740254321272387334420579151872320707710605919026321932832164251821258255070412797209287746230436066621885743008405282936358360953768824583439931737502840027564273019285968251729960357396485447542454477944732739577475073695885651458604310829985718367076171237760650296124162881440955925871463658134176877047251205008159334548348198190947334122972397038888076705247310640559835554250693557107074392160595147405275949199745734848033737584599420270415524180037696331429186730174213738729495787234048008853137917726174530330022572922360459492221432430780260531396406321278490770879698368102646334361936543322888018928408151253217093023766183796693373916703323532801889650245217585613436535609066866085432465186031879337302851745496636819967039227008465778157397117902286978400023941402734440389965003070699270488710402307201404743095245756407336421566698748951620932794483723023215096412756088719488404220584281137202267875089690687827748675220358520297496262816677787822616972620104560824123566118945805777011914832451429762059054454012302887567741732965866457407500707015230506923248986141541234786782031069778069683397392648267427928595393998686811060055196777219926535465089726113982105010586289856353906513146190320117257308615507751980076673222787181927113700934813551882354798728951952566131809658041564242573467471679697997675463771041756877165102027626613065539569582267179692157341721397141778416485267051694079592156431658952516411809977458051448894876123613066229029948651817145104333925751781356996714368038931997843601925992329370942507243417098783100973865119303184909461194507745515092830952713587104676398730400167709851446377696610435093507649257779167485060208234313912789853218664357323867240060765843338121832689077617001045070004493789993228673574846225961505815454024446177974096979824427914273525832938965569009068629016933407540873424563588092926363041404228227497106736752920503414021777500195669256339666632399131827574850784453701836437038180758735314689169550917745532534520849203677818997154257627480613443476301097953212093252198116779513522102661857353889695132669220315070444856432213516888189841067780420619687178533595277473968814719708889484662838818247788755967088532497376566257181126588324965180382786790227312062062522128609707545804687764809269444853074787603221755747759709935311806865977711742830867209363109471747880689331519623185194097442036523125790973538945805322415586056787115080459587259706557810227167215026902466042878455048610927262113495483609372572554570627999331200242335511691680049888415402588096553131067240672894916287411498059761457566127884819384573455719735141867418798365323268568122140753515542240670803710663930967623528838740105955668973848996219426134045810743208719833333014626883594503183466059419758149810246447835005680931075051833176209026608744329937121053541157432603034088464834973286315881297942977401708333774521855595576478487659270236740919900512716874741613298844093961155069475322601832072477611126634642652605199796307474511043016726367069596870736820662636495613934530845688480683931672382852315164851230528698155657598778580103399056655112045316431098024527243310206513695087648499660932352416931991217282979803575377301381714545238579653532374559466916313506024859245665743297558707572388441164891417917825044044699545403412088337039508687203883535383922919588180594328994388889588590888373689200231353370670478705264853872488739187683074440990062580344236506008575671049668168782976347232486259830520665843376391538420660652798510405670280640329905986139369133996775182641717106666714297050769635429964829056982616734887546033450510325445821346818364492165821756600258441155438911877603111069847718523698447362662136977536228753034791589502190916019317451297972350131759390392275781279797576160754519800687385100273496994842044116324912576715194997588941868827268834150315693270321300064720888524705363936593971806155580609102652521661830999354916388065451304937863763681004443881653636489670960703999927690353311352443399200824773336283161368515983051715189561734205292225713991651167457461766251545512188480027863176776766206598607541337460652748247293765066493393806315757967809106219972153940260611424665633088227244281629778944136348641702260357250730588179086483661519022781283065369942159035156729846478864317383198250936350956373035069071452416495726128787947377043403482334731460598484517598783136289641985405925396943139376103694247303506208522636577677926005757432082016958003740509464260274829229797549602406928310045349202887714901566093660212811955298974516102807815015981669663015196659581044640946359786014812640938438085453442130332099864574388586170877922010264351403579293081745297232745382800375543218142113096720475558409419737877388164119273158983784195879857709179507014533575978575928007061670766170343193596283572254394021632958697113396001444400872574225402853427015945447684934806357045717923066532184825615028698185478999876112250758824855019914971304536731042586034629143876915824950510944295761001180706893757934824920115596575364329636639583796166476172394559344575711112102304414968601710441054020570944458990711565968767958556336220308811521843325399943105297751560124756458739404674896981566325089003113400229553352476588696487242689182856493176051843322643548914266592104698273397392368936797702785132043115202563126900161901160716807494687461629593303521518486805619764310252127047709485865130656870341723792767862363486540153108690980054426613213924346095933529244441812515280779980064271594469030164796187986964466060986463923987094728373817622440848630194901420983431733996652564008601028378050334239778789278215771163991768372181885414157371280491383081558221935578251890043866479963777486923260146143609766353161563299418139454978897358063045180061059279664934345585533896634240416126914371016168007488570928866511806426956930737864286404137009975869284738022450219443389962582663241610519900782008195024015643622840419898102117347150242103416444925214062243117288987799836004944900965973896423199167293089436685210356525285541137083832585500885893849915628640520993116660104051908588868569858844809621682577968276399909219533371417886273289850483605274956288374839059302429662210192554530879893858002891677831303112337611374364099130485943801834460141698375508868758093861164190247118821208153928474207787672377257553792170417220009365407260398175479181069689097311147899859224943428961825778843907885905122343963354453389857054454825128273692175199198545280866845319602170965944484830373153470642987038091299601597472412795050604247735868054057174021036008636117125243537996253382723849689919462482392005238409386449903827049407276411205827627822364559292188059595411619911774289231435271198984266822958306964228285770924912020321256679680031009939083855757450604501300636403431834963015374792919836908990175471379374715457340869473295752350826218734758226150531460241008731786767899350192335153700262092990320581198863844840079630422665618534733089565627037965035546799801938171300699413282261993298817615055217064088432152120086355776955699836398346198339864687819307336942248338194929359477567699342835368297954810542521154473852260700998863701668921502871143447568664122348463927761242282015488114137301376352430741008551924359809581433870948865763380718814013448128457272959978015087345260424260381776946272814320561925321674302931389198307755797036385398078638083199675206774158368954747652571027259191781767069035621174912266644701631227117315938399866955913721828046251058319845965926812903539086679029799178078433217662369205567274325858409121404284405216535334448235527977606029382426604180858200098492083462286133902013604473358614785930767502441241420609743238990984130805898972271842125216822674767758137440680488448011146665929084141897214791300103975059948461609540485081482625106974376982922520769536086043733950207556789026412885026792612037138202706654747342650608269171881234700957637497262481982219361895526743088703320162259708301860121551512018352610139324508524773548883285395342730275891549497367275754762766638389860305612243351836160314905976975969137019915632097081556739481359568455217931908083448319458098878138882967412914224584229352373290910166145182381253508393778630221256226199514223991331189538206564184346451506498098043078756804759292453814650786963605161231216448852212625554573921209610509427235931082411118401444473107947425154606732420709193617712149680170251544099781007121810175577899189186122845122305154020441343505289988762776477598936537514787819415570633617642555841996325358333810109321160757118342846797000573699573782080521375982238752221018358953828350447743528484909375301941212700285622244813781777661059219158629549001459393735947743459757086768188168952427023332492307858400615720729207888998676476814973158607243194917750469076055809925689528209836498139059987667247162743104253708959244693682810101870422574243229675905442636983484058988310358712447118014843750942401574557418624681764251423838531800283759008695247608323599897595861974009000230173757594439945411572127680692369155796078631954633866357686558856547575393009866924360457800104924752818702858459083395709763690686675787015263575709721867474763367431244668156553747966712752960791726947188728941695628331346107291395107336338757004225741480471371448156880569626320660126972076197616495124018736799235765066069769295202438031154883548195839349558165559648426002169193231651028098331240900461265329947659401487134596263067194324398295077037203127691925881731791290656790791396636869830398186589090285637730499972008821638471451269862786585754871756287097096201944647628213150272923112678324585949514543925268986159183091296438117535812860410978088086593845433260861036851402483046047515811282979680191824791802517850890454846186868693692458790812965972061663127559352665613226050662460931942276284450359052499315428059870009269605305643502114005317298220325802927896492053103005640980470112952331775564194301626097254356256403107459815285850782248505654234143021069813319214780006855509921511097391683069857104282769138651579368660692171259791281785567469941300845848076883850357511727412379996001330120534232391984310958875468288365869639626133173682454191521010190569713049201199992394992427588160885804157925559220753701637399240694921999011173876981597075018651570893613604991929973791761916392765838819578341781699824980020283847545549787741405048293023262038662180423988995706096032210318590637005713366737820486329739834824623651800569520395386131312697303424880561667113303324686733090692279025709393370587619876632348713304028863838413896222633256269744159030784202010934677830845177031795945955306164146939587985635515137531193751576502494315937944349078414708913732840615330957237865538012654554963148901874763416694279694913622364601391074950326596386551964135453899019850330849478141583541520222054453806131611583789857242912675110482984777989604462665571757721790174582268421679994238356238485316094326524544737891083819423086909220177049057163351528082773825671359740651646553954267159720613958437725141872554516430677325865532118160433253126884397226242036046546509084672753175119232919749810491003719451520701672386171791007179119038453225628897442913297755884943448430084103973521122208174966292561805878912993048667368695705150772881915527327057466505944395539123574445449415116628632613031467398152989158779410285984785083220357011261393027667153558220624234929253888454850316141362215805933033921240653825839985923710842905962054661577006192529936292556292736730611780714691745668228003914834689931718045446064000169748009225284390526593470093661860854267085988546740704290508990257104918622851706728418572263539047388423228851643775648780477135815694546093393208373143566386286887218303075793956931895283092532951388333752813334590762025062815963621506030206460247500671677609148037765439076419390211293605229332344470050858658497785972647355965493216091054798100808555095669428113044381536186586370038321809305922447686934595504862821447118473951029099364382823093336320556134115823802817189856328742142066025679804076629707789765456331408552072903221434104201739819841155429075845226041138665949020162231028019764134268171641651968471640768328757399358960813845487250259570151317568944980164533933901769884964772925118149128183393695677895128005738050921757372604349352302813458456488754941391869348389800881241623909127030982707761165168093476683765586959340481967485228512962239553983967299394349447710460777010994527210707676374632015174319645892642230735183759335152857834680362675774927217188834109099138669554091315094824312993950904212211713387769666387805536176336356731305352484979710502225844379861718327532393758039632372674508728134260206083920029474100209420800309500498286300711985940055191851979102193512306380381504852186307537955414795546375296176478526006053021916640675150851853126869728461280061757107295257290424437886214902173309204373056880337268742645903874981650991557057820496418096931205582988210335944928356702030933018827224818958366895105345126870964816990483206499971565584267284006660080517209274398098079165654833979739706633579954613792551735008850255044913566879082221341306143283789146521850832772491123919972615759133995542104030536940710654029999425812626397444983863792100483004071316643419713264261020873825527869899615850711302788988002020301786742849953506874727596126391867868816245400234844937261067730927481207326041503279440076776815952587059841840098153859926341711435581003504781073419649443658416117904924016226748792057364304639673875141804269831955842097038065852572217939678454081857980785608467658050666122030426978535201040077019674732241166339049151756079103851974607566481006027693177111291799902446580524389158092531831750416790751180294923596427226408469182486395081631467213321448285834677781724759186756726170824930419546527694829484933180961135113277213558895271135976730323740030795711017997404776643406891164044059153300700297843359887803532597305893961849067985814459514113719672712965686889533740475718422986213060336743752075632771526866309563232993695505374662995328080331866383491422078445514765263361164008300631356653606997156644322604293589021767157528394302661315419668716372301013415900605097822766605104485134315450326526231338375593678885322808899543709013680903424925999269266099650756239237964769595691439709856599440393990791647771266293607366699245615144609880639187666854007304544162364568675982348437226444537838114543616003767803550823090837356080515151749805005019331184200609742060920851807702948263654381142479648236410094516064516332944790105142132405722380336684257224817497891630619670100050444584743877342355259844666368392301380798466170237892346214677560320915671895293624419133528806703922692040471680271113184052926740451054634866776939700431071540005362021499371830836403966576824517981280194607068843511799579165194250754032865174564543897723477806160119123043147347972604188815600482979353146052363617888640058869527834575964986287040349935378891346446707595848344922359523829725819651420743352089147104137610015807308844690584345865639258585585154922790268185854482769001951204865627771952291661390713989583460953270376187287977164818752448625595964130509881909132610419029544819995778795437334130612896748040339807062508914659203194481007572694841690488373800226449516920083930357977444187981087302233023249883019938042727784917515488906969972030097442190804751472645254565063607247840165039832523314028435623064431400267568375655452839413600217966846935482169913097040131309058816642641506536387101022270780921935335805580629151661505172692630712104234119943097341228310950557770971274418813915869125112325096354995557263640117100379911241037933045039455346654806436822069239350203865289639710393193627016400569298216674585890713198920450554252149873302968257634413984284573321972223725820743321734786135810095416351622491052159715135911961215885540321936503731388293109067022634965965439233306419024451085509478363232569844435913068604613327771114105484092983459890331161892440701351445421363657440022204514569274171506512518115977969807681755757715248622212810275289286716896773676473482865064658611756008515278614605421868018459645182508454414211988662888808142742791428636953206185561740961850596533091167503613967798004329546028287215048987180087013955273085349898828833967660610455318524995999622690724173603029975509358022952283189166212106861848789453752682179069732508397336594742905598606776689175677915645677225504245776242240365309765544159877608927019067277386738936046553970992888104950775283369051233279247278013278271145972836051150234389456846247193801463995928594559915475482527221607078167582432828847597259862236533170265111618790174250020138511217522682090146663079811426047813776184689222129245881740824265454844355619602304640824787423438999477484403472442592494673258168051856153519399316977804077731520978133285302574285590371334477085842931388966257219208909259499075465303412724218312203568521662029336138304491131649369339335206048173935687790040087005390407873618144141408297591462185797630513428917640335633998292580728842041095915283913230970698251298249133039873492779271787528358498097794725344250950260396795444618114601670802342168881605755516823094194940239152337585183141218328247225016748089132961565529201028921320451708395513454828619166036270006967323387331107482992116331445332463812881538960143673196467682881172948934885509126703873906494928867310355011628330687256338797707260329275777378490322971161627987302724263955841802471586788436857934927786440881939883795298767575366364465488123805877707852250136175775699477299859584701460350038170842244727594147924837805606466516182831449250763938752436346083989879826776290786981518505449138114269450198992335669559240075375854117783466441599801036507216045271515314117837434215021854535828434622071830731376979545866150531631113774883864341137988076084946751543659905021551521450764251736172518641807608700804220384951899712935912830020128291528590971937135338381197255389785484763909071410497733109108467926490080575753984335009164918882468800564372510141011400353040205620315563875495772738135223962933623478885675294750140176786260627565121052766344487457295240712911362639919735248708347977083618944493037130498378612574113375287021480394517536435383813272899571840482949502923865403027956470014502265466295820389827937582752991616083792961060236897475677084442942617512140467193360939321135967066028814899169911758298938034338336291759383971230008974245852615061480222112759777637366827283423987688557320946632402263400716345500958934290212394327085656473772537795941424392417403344785247121111636910413482898654300239742827191713022928824925918600552144884944990809656441284321878208591928461033315087963329996687251269361647420441054646397136635222193181645432957681469609330235884763325802233386556056214385557518427402669561514665249101994715573289185639213331650246826656516777641148417526749868207525319674134160268366414336164391781895270528655434173020924441072801182778923490267882735233184999407016581506154353756292949728296210739591662156536280099390052375203299374795521256770228548464380335034096372899570511062832665644202927691661954808464976072192720486398745362283520157839552521713738921685259808725700132881280463679577676121365579704163199912591584506827886296317174201341576708624535128714129125022726984579951708827268356612793501859194048821008923295463418230920360912434329329848204388455784680967572298750186908781579512432231455047791922104052568456913512617091742276794931184926759933973038298906130753964838583156611631816908429482200254802713834394812978109760954167692228920432802108767407623955219332103458037533046353607290928205004115065443176844209020704792565189477864393410068388097418389379092940999186606486365594767490398844251741564488929581995357790117965520659641131198225601920258959126942615249382130850021597972515407206761506038766777657382314432434243903953480461650194072138764899572139302063738090178441474493577966049335265736182910367348008350967894386657015702044012408283834940480043332787500819706231321918864491438343944056130475767425337693257991666148773336705686280356338287596135271577049652909302340682425668213699834844150217888988791304915368315266364983648961099869434177152714068740021877263032529572561069019540408775884769575034494918505740625143682314376068923573455064540692755574945266286940525963254461055025817370534247120834981514060921952011152805327872225580047905784417395670639777354246719606069296972974060973389077148777709282237030898544131956425071821004337735585174815079038435065148796131657520782318936396782395666528354303095481645123311659362164586365124208234716981297175535564030529169590570691866232392977017718062373573004357404004228169184386078962753655203677353561593706101946447085278728950027292574529871830416463606396307771615850790095183288607417145892919074181657773162296766226444642659508631891240434116735567375026791659976373619841123403189129503795455761335246432008418636606758050881007392230180724528152253072648964938389770140284243329325749406071917086744485894377785116749713168522722078979547932922950147195983551189708859303871620314129842944763212063661734080276602698306078167981417516466300288567769131128201600015604555307320519668679520997124983791637310996814661972757939061492400516453943241819953018145414957084717360482039790587020549855735650013378523599568133815145238008781289246773619949206715515392187482424579740545257129061540198831709132171171604882042983663390523817669667482434015410025457262688491184169952578226669708642623343844915432960784920676174793068167136291678377040530107225742410941136302688310398343517572079055993915456572872457580096453451612604392233295762302051999482531770457995925002503512591681523392865219930205756826409780451885686617789029756903869415415841814204992548828710523751474508924891382203796613741217070737251363143546347423375832290128730848800800121881974221528992823357607475028292436124650503435909990825510866158457043537874286676021423962314801790485279437203263445905364644212584229307434370038642242649685217413697970502291344748898448575272235757324430453437196321640586189075608263869134437974819422238994213751339681380462805524004003076706032773861737972300751213497998877177999291211300791907304684208819804758889968764568372656777282894442906033870618992929238915062825495011922349541069084588018088940772114015375498348720234027432787194090409866534587639217660192712582871560804691051970070558452802275413113806385589782353730122073125946254524545958382155135338144449830022407123467308879361160842442480412003617244560164957678582334354435374389646697628846489005250052862255515763990697531028945099933953892241363375138801782081440992807633222276833525011355254533331696771011161721589331998903389514062592188421776991672077551521736163862241828665442828341381551090943009068181787807193752812801053397362213134841335037704813086613194318944691005976005964821314756272330259381947185123384600398570691239306962511965517569839185162447815385466428645230643651902256043164294494005801136179985953849987831402588395219179375832306040548811920984957917237190289660394916099157243243940005241603572415516937688014145635357918243072862804180487614103963153841835890536751403615897537763726841425547386327459207379717415746011606783041127273864028597922227232865173547757898159096589772366597484229913143373051062017801483891274813108167284264515777622190059256322070047721144848254767677314512729482538654241017228891999312194195041580056769715619846161229185408331349857410794848031826181330064538446249767321558400620686137985974811330487146448442711074220093989770420645427405423566066112914473577048194720668632847511673894564790611530705244759234650576556687313167763466787715787429348230195953693042732982315826584031411123963602543821908110102350016451254054604636448163466719316084461176392851481087285924961478191412768675729395203309892499914171194524660376617458778997853747361409183505677060414519562702503187910425181416919001393434371334665095062499518023054530332364070171642828347706979048520107652773988563745171561998309047126757788557853774402362452291055115300031935905064137272408399602611526972539421379366069909599315955708263559225327681043665046727215740046318389051820695668107028558508017909692980841919218237822606760747521775609131119589801588015029782567766146534115872277055383620543015499018811133583716484508082555529507431652284006572698674188139559698788781229654564922808162685596589644800786121242934376401661647623389482875914818183039603606827289884334572482094601645474616199789721413937069617149448238007119120165134185481828064492986550780781834009000988594607040394311898572588255954118738971230311135444561724357830728405077505875639064819414252479811901201223056839896084117341330264012545546124069592173320049928205933564906504501922866707321105829338800987228572108285130304840049561209965379059960580843803268799909697242687644876332345649642957959189957821809793910058438526692578880152261837009576299776529600855504047298098571914614203751577134291774549672589446605613326175824718754117539038174750161941119614158674291509512600525774563242246156735839536540565333322360791859438950531800166286770896175955175120389516606273600648725159306360813651544619193852667893487033743097551839647865246003580514022295535923833860152749483929700673403448729305505200607029134771067843815289528926983326544272378222355698190690755492713470323109527886968407978447740011044035804165434959347267554697902880624073264084760027909617634310594902390613161606464928853163531345165481156074115846577203888733213572630680176471604793485268064392207904564785302697430920211898537295598084420513991039842858757569713848025572259202330306310902702998497527388009524319592150898417109230743388394800663703265394522273734221634057993401752989638955344000551890761886955443104645886239479952869082061147027230803556532138812003617865891965077051531800364382119518634775365641831024778343456855792805694381694974637383299916043143392494736462871347335190349178585981800007189294179703891980313333653626155985587655570433927906431334255306571450553112478883329878060721835117019521170882485021914768980240143022278623763195902283455730138338331255658732645532761505450105215467581553035860118328686013583501490679684767061239846490192157068429337238566447073017322505215736324145583526572680021627146191425116913382614027616974527408437547336381747235488177859809005988357455184766942622669386697228024854654886367690269447017618943774868572678967909983841681920803816217883756353537574098958757623111443835187205570718291650316188514159100795964578785388098909022540259531915432253631591017815546086260408316175408580113976460408481598004873168702584267488182380783270255096135789427920878709663666983648726204960583636109203292261671291222082253712256856388430972808011540417832307170157543519953051937300422978186483535942663844305634481958760350535845476100509177190520339188902844050675098448577778094734932861542187964908486378793556812151258753638958891691557770238224787892354564183242244503285971759667942812450911508208300314645345194814436798932197360581979439137655116230930661535059908977459707798182186767981152352208667876991756158982939666584451335354487732915753505039845995952407442151924214544917943594022684205674018788807567268400048482909627682349446451710696385264857238689547301165615746968024336581655166794973815287309659721327656971849519395813226899316264174542963557263986048058807100395453064471879450495847092112290822002642694180839367555969666677117939995361769299603201037685873658289234741578676379371151705478097333000916685030916088952367600288021051832425065422809268678927075326901900988227047065420173767469061681422419968475706289709048423179141822568586179739460567604355454884608797048700344737218121179995320686318038839003568440489697800275794065841763745219610051155166613354455352689340811408976273264344024924991609036659586129261036840795218192741060538017407499434196936892835863832906006158143483927137523746634156290611927379722128510292688738680746550261677895777882647436514891893130853285461797693541508522905651485382019694435382753054305429737007251924134064037104516242282296380405826684654762587817220057921513754253780079111994599399013734812915830860600389602161577691793135836044654865519257583966726782478166630999113369318768116954447658653602610002994621988366291748235735256458649217537651098236284030419230333313150858754864620100827602490111130089631824939879230660998540539318407971286563231538955719488422577281903812085174772310010666684888522517530781481984508816645068407782204888890839196460427904553756756993232391531463589349160614835893499533774416086986708464987418179024409224133425502312285454785036407811530666484843505570338766827338942840506711839920164170856301918562212048015719107974330810176707207718530991138585564011255608843003638260049438525772578141961897095132684466928368836562414064697775727120266028331005134872574658227565655960702685132111775251798392792255254048823612791311922418519490479869748359262850391250362853389396621010376347277389295897989544439329489973948852325204993016650808288845400769060573556789619222972368934703644074388626103600891662154595598618541824497200947426793505334779069474725994753608954813611214883358556480335142011897536656924511494243468196953103197852278145460329730502448273648293195245928194798492621227938598165844727196898155940345213026857760552541584927607680800777691143563728894633655887035313538358322396409741483077504289431162779354716660319956666691561374585886752637613405291738606968304829979478511374938661863858303391174551353517891673046938407019962576110603262079828564378837008688129452827905949119830802267812221943551793101026536389226923496877792099305352270619202258955172744038213168014615396153547481269233975142464859239381821415401059618951462092990112662752948579755315528220818210036544348828899026926240334463579054715633354740381111590295891007472317730972130870496096701688453230307127056582977491422352002093436050073496860875466574696223667433435560978659917126534343547054525143096171379978767332492671776792343660668808099968488608174835238743916483548697330249090379573450751724637983666112175499257958957967195629721919323418206747869832289469332447977312590942605495572594902957767933198384792458260262313641267913211331091765580034960822924888194741029689619359037031500040135655971896893109469807978212699426728710220760077591776826989067905187231454481223749559786132359789375595606234620648005328092319903938661835370415716157485577896950073306247147130337895229729760043983242877137390022641499579548148733509042941265421004990614807653347173440133419107967361298286989822111061513922368990282194874807188442565532167858278218962163769582064459588313930904321965751475194723725548358103793483870875384200897526107483774663835297202715925682902117552496671654682321934305413495790937772436036557484670771752183832569647026700937810817837166290578828035367869294180975612605896718278229712700988113618199417680476408185694281287942745338308312598715349604958947255038375807503938574998704542720123602242512133970381992559289900255570583804364300777344532375548004162324267540590056069431394192513310352922886693706408148292643885614061731180893760422311298068665085831676080579171909945753951743513083120010962878297333941681512613054903380909162812568213050235805864970836925039206367538362808210528598660650044194001600529283953504418702311807101970071726301735036616368004416412960310549732902867444761685865175692349945614959678531588128376525422442761210071530213685890038089457831073571852034370991463243851959800593307596398901919816826595361149122720775496138131201072970698538074237919258230672006771694029223366520064787776925320569420483571938310086965686969475891826536934701581466403144110472500805525372534619516657383869833638710159883234438566018799332890984423151462611012693494718099715728072107741144113875955982289126713059496949673793303121273314601926584824111577148352053660634831079347930259031864365901364003632923631745453027287982666545432640607331091926535838326250067232063278148395932316041108522020438268100814027313207681810608104036364202779687695210541701941851918914437788240794032732420137452906085854224866483289830294831434477416880459516019015593121882110698975235960430291670706544214792695544739135434169630397670888487362647122059216579990614623024900437250755132555917175877128593075077433997990346846304824848830103267049407138914954322533200525972803758529991348291494003856611194093607114851356519804810920687241576539107680804087418934353877246628905951382769463563684171770861863864375412883441657065414405489273794941113149795085509160726116640565706199917029851525332442731901100582694506251114076628325321712888934625142513874782239339484256095828789741087595228482340817529855660445098579877403212775731839556497947836192723380339783387729982886049151278161969930028986243335220661084752196014588041832095024697091352455979517213272726578288394023398444156493098274988702226200822413632625299212266648301344525752196982800283383112308795027428050527388585457155393973710888603886315510108418271673792032639304537975022149117335152863461697726667963860895906904528117789641260151261326915473620593777152208456794622629255006501163094613940685449787815749529926869408313327160982824785462386003088931392169330763706348397841433567507192745040127767698058369232292666616079223824307593174502385739437269893988014634017220707037232273335824402943152036670141575010387583582624303678078433088578093908640626985276403863202297108781541177670707654168937588569532314116182463099670044193548196082530050335879348653913452772022000515856301612638651835909028447544933292184993963875609610301901951867484195500763151894305972428378085755238958732872611570692065512786948332403116081897748488999474217229373010738238188276985331645553479294399336199818409297213507039850083049774172578797276857177748420217267117896082795905453463236334706638022181790702495629762383615817331698258561618109136791434967070797269335578672548693351465817458664730239415221661950745247410376539761723975335270535716579481575643789768653510254677958490567233250482817548430068409031680307522084013111736737949873872746444322512353795614964750017570149644830369749594239487724011970537677117926291296500756017043651754754565970413301054843653361706675278166059802919865109839380425155231487703514694714025191871157958550900144880773588726687929715776293991056440737322761467415498632741489630938192485157659584579833513223952765524645983449626364663267142008310672945571686807900709925609483239979604179454431549720669221871166454897989467725827385164230324899936155861604873004770227430445169513963558112796972934512225169605660582797749393477309151934603102103862666636093227831370633997543674757366290239363877147438594830437416094678987120980933106938289408593073782031250454621042180453963916520029010024982423221564968414154413113481110963690697620786638626217418777529822731052222383568050312259730610455588522757695658031030211896793613939066351616056605754748428748615457569201335375927944089934793273433438532200724008597141582056326005183139494778867395801699408510550277510048647449797856650142258055605095319805626616514544660809827673823893994824841480973781928296061026460216205719406851141453464835808702878274952889641059549508931710944714308663260146751123327545786862735758098819133050312149051216536687074867236206581663719012198754325001416520709153351622468095317699654822344386131837322305230037042477737592123418708384654671435485973090630849603095648057873758012900874637828046472868316089270447041782168521559169500769568508507663922913197562605225443248882148067464755324155560645104153332112329040476198994244709665320587521423277395058424912779040093683885358652768796168804833144632615951884950925492280911434529487577352278615704650434802152877825423424715355130593770716515645816466211845462550112827327820125356436401134008249663563905585812827654603285384778751680016042995329280808172706387680083964079739923608057811407564637272487729176822851033688864472912532425356511921713130691113287441464225559865067133322076390423405318474617136377364346736065177425868105296131857520053078721368120876695635751491377694472868264766706672207932485996599754879505430380759389079767689799973681391812966177816571883390623759666297211528904167056758469335339608975727843877585387884139008499550838944133737514404132629291377466893793930289503444610418991573044912206184344958760601655076253671694829219255824242166317036807962347452166100899751261370558840071876411345731164627249467254306739062728254386373387983926302502931678269568171133055163524547520827955019993291562614919870074057702073980616831105882380800652907461124839932661763420910746473414308316281900470863276169286880379566407013551252066541885623811657192955521563135818596285369742955081331351212426586784575520830430761489062031238605168676889550558132699315345975870610312127921116751422815402528766423984456454032579829942133439572980273180506439569874300833769797085097949621253544860027182493393317093466884829316718721328304310533605604906883931209132772963499648694414556739749354923494003749724926202231430184136494568305795906475556339345183373558596664354455402053663103056295897769958065523635778730700113192079534903243071876969501537660924338040934486494200673280556282216435700540417898155720442685301259858762213480261591779998361511619705370934312603722234691108875465077694269028809137378239135880668723253221565749524172641924139515238217926222225044880890612811893868007875434789860256241427474409582908703792463085577792449727502795581540717861934486336008811651842966621903844304214000306238573006573682282736507162785799292002915182075730766440535209697502160897683624546852798496784874488215891892009418744471695566296601774085069007312494571271682334858831105917098933878375343383386357739567926446613870412533702156218335583970827433671464646986916991686552791758389704599860618022614859393604180272125684527099215694314914680305221104736310774776517869312810416742135371388069543048307341361323049973532682101370633533878126261377292539297411834921333022648189773623690359683961468465634323546392084333738688508822667584273515641641442902350345447300636110615188659151692690638423720050078659400893796331433728240493443203268565743236867162568466591382268853224894827650761436743943288370462660255115669449808633702233022482858143727182492701782500192256419919457862367169808897527740258240688863724568978280911183256662794949440752672597057245913001531487484729002958364941994880004634957833838391575362292810144919574462674222626856561821550354628222987632507557393389009767794862948360798806572304761951761927017336513849288330815851996683702206552863433888907666863549619350793339469803023104077379218191269839627977104614230598386456343807388019420426032248428457836754484445677404787281514620892522414067621699075374855184237389923790031688462528507398910517374478302788201433149337515559832201835696768231152795371732830149980877114704376205578522649074875120266647713743849575575747592430725125066416941903886655399319916716732092613675190091027001343646541846595627684335551826592694492132388956192196464256798655892115103414131545159830049456244676382645695704330428533138814324545814283712984390857332047310327818485486944830841420364262771134153520338972860712856529020661408431639933562784049983194203703976476831657838209673793921314083782713882922924596847181941933734458408153181130331589101591675307686515327355177547544023830039626923871813616551123337024846129329826312566567080402047340336144935198483868112227582236156865944646460304162628392232533439145734626150491715431681924226938348695522219868043584863374271424990724660172366139212152434931479445091962437032260861788083127195892847017397279645554062420615461995835805931024944871614856443948780333273133564425586237609804368438615799231836005861745198729541696846651796065380698214293895654876447774912328097989176699148151613024514375176274706100307615274889429062970401567747416051429659102616085445903899575016878604220893251762918329169576223827592020223180997155983878981144019294075522465547087438061548706055848615372160881296353226041546744573883370107180316632581751114302040734839396028403306940879080634906297741563867230638681377930879616437432996191875459791481089861824458401312518938839420164012718105329436612250382091138003594322953670686945473396571645086468367537931373418783676087470186058030089293434111815782455761096001099857871242669347752582838694541346752933216065678191437759579886279038214564811430469389100170591371308916565908364268351605949888272292226001935977740963885876200946225298174715389039078954084316951716262835533012802998586366293319631643753460238998924945952369545017168944738591931935723209302533026636642932598244449522783116174895889063433503023322179789530114795014884816502456443852291647528090032124238098385325942913167702255768420526253598870781141773247607566936173043533549180661434047483588557592791689346231428837842647018225109921955967861720731684542114294453771425594581800121772081933594164937273896442029389486344592325401393858066004218216606894057423074341478487592019035670944014259959354839773705458594886158674427649550905858441673329698278464470517309409321965783002655464943551067762395681881915461225363343704344285906338814819429191269358559994565694708767628747972820403067136099173018380843834053859405451520118496946082200654952667413392687819051369752800453007739225365533338594637558784125101218180178937031954097479297785609842739252897724437236192145484776966836149914340279783807384303580983219507546000040276425051262462012512286811615098002068998722922968979223104522674503944163461250821598542923572687377846679710717126264982158326734945265364116173728581621813684287017010235852900125591784684752943573328213745538089157113383050740218827576830477471422408130181636075281989605522568368391618771838853358594939941965526742423656667653538463690614703818277931349941149088307206200160848662487147990834093582535099924261796718761461616998630689453431976802661566068250123663101366921282133351368685723244822728040280135713841595080935852322515931688566193310609181994194423062749056255374285965576334491753980515611362036131712835435215024180528744793147150931571593844679134991349555114403459066832377383955244426210703997832286315845102290044418520909522410360497870818333165693415714467940623557460335214138188772537645842583551566206246289839090991409384898347724777538913457563333446993260128968699258725005217584614737614975009543618222483966526787129735589949914279626336485901637485344885813843437506828906736532432987009875629104094970191217112592685209678921943866482074727321529587986572799308563560343690009387488845715527893254402796919445951742610931863934917855882055421029482669220470898614903143820322936601560025329359236282177794943060600227143043107380629070885075952878569651140207268460386171644932361737967033007937882141612506764174685670021931432747788144031588057209057784505835288013924219033199030119489207658849233133142117256741386251879894565601786070819871669777912301794987284717231409730266102507642540810557896538814068519113442808451009305521634622268565028387774400016853266629443637761749945107131364296415980131618707945772325058138079681907159181813081277567147840990278775216870639599137807135763983417008551306586832599208953384909236511718258193854861697897158109765337407886985625951194885892017065045874136013936792375662872518650039538656242224852068464515892896650429190929267463397155123745431032500811766971911739435342345648510036179740021243543317718074849225618253106139161550959264967549327177537388584696978005379825497190940623969379319035073228448414514592333934727496529922950663642944475791785750048244369073173854070694355190011464811501511994345326150818679370303423342536072424269435330458710218195503449377606353102690031045800735771140454294020939364392670369467122857631622211170895004581923095682789287529393724178146203598694884380922923124871959836440612540884214729284185620560134231590214501505122578836949988259150075033498558828015312816131223886995309363623530260777096133269822952133992513735756289541117858836474614493845072327223932064359870912849239396918376167401187613320119895191262229845061721680158008952300276307027039176797873332987718903088799975921674306284599793863607967762332539684706065542801522798671499694139784625063236963101785956796835941104607804869830021046187035828334811745387934227766927169653140621470616933278323332292803178663780820532284862568544653270919009478252859929530683780149650138219532002303007606875144561352556571515682880533496306682896862502266727422322194879224455012077133864162261227874685328017147280205207320830422714309742743597946614749795333142980614379275403101734231590316223463305962062394866976051477095463696244213557190989472279029127615742567102084939811494437761765501823275248418005465660311799587027651403745204675525676662949826114544484742989751194235344974929540354663426252447887444999117490193759467521416289758829641863809530990073641165469603500571260656271574539767155176545786652576188246549681188325674928760111360940119016954830621302901987371093270934104024359239557037555116010426742892078762399015201910659483351009198685881936292607653034076092619163921546142247046368136561470387478808821893953114635434206080532021591196557419457373062969594635195881899818996580436105456891704646543946949261970256077827097640995526004219454700467762445898328645105361092111292142544388195434572899905502100005182842722150527918878403811637446540155233444287010343085280574363459486880913710958483356785235304411647841904651001962359342619787324445795692676944590808690501017946847196630491776789687725725555286401169695615130738131655672100784581561131315448367049525206690592911986406685831509977763028377938703131839728925545618725691788009240710964802816695567391342220464419088915713063439289844234745405966788070885000715754781934573355114768390168180203348361348309333853625242309088623288241303196075416021868318746829811385503946723483636148001124358531032830488888380967190959976211327975413875394383192371969035304961333411490441174006827308116954279730013915941374913618619376719653222346753102994621882239095937515701218742727157922839043404246676496575157662511077624556693272625474177163633552909412175075025497875802270038945300909115376224702206561172698074401641473118115595600118959440675159553410468911064348940297696899169501151171142095703024899913355927075515088777232513741023739444333646208523086842998055914920408343774518041442933921839470039977489722454922856777790327282414766185784337534824061503078293101805771218981057273908365776647127901922162612562933695637660133577778848207771708563037635012932382665068000645303437560465891913561188255751140750559216432802190100300485093344666580487366770139663886190665427603003466558975979152441040861461611056620191585882552459958032143303166833579738972247862283554634596094351790787443583650540179969589855083998885300077717736553537876256356014544207750791719884792493966643295786212851822109450011298675121955519013067642540817667376314576286942520682071790680301920731103750552860038881963910688291500181842248624243510514909066053860203601474707839833606908524705859417162696897741389654586749559934420796953848339990755509622860013993754120255060608867343935498162207577466820596112988888575680185702982051239805463886760082826500248612576700992449118983283808878802678963966285657431694009047977990572743508636877920298630717830483923864123850782854358087337727579913848153446309852543324574390517519492263174170977314199947110497625277348419794328412654401635531394625670903760553816435408572088154896863215971348924832641072461446633961334217604304592357072798017408225984100917628613997509459604452294217956465825232060263820808356220853130770362166298488115389777214442777132464131773282985809123828143614476799819277822747958618453076082733409990907769151694229654823420711321898827728094024901762395024540089179201637931671271982845137851043349876426012613315517256071172891682654903117366468248460219027697969804400999159185285030048703196636489723053505282552577895827737641769092989769478957324111348822441676405397437916975366815962530741046809936767338304737358051248380640736815518373231767414201549109785523358568895910229091870159976568958829539084056670879380665437953876702426457397435062890983812986882920026182424396620398310234137615880867474878257414195196346697658139611224840263138360727733863699644742130502530565860961974950449492781536060769451183723892695375226481202155808916397850105341989910497397386095744187158383793727165458442079318438175346767174831634356496242123226040913661227747903122139682018402176358035928089104702260427673776721836217417860722813573236857242395370774650128532476214147044267423367059094412986969781178304374776624007067972013658853918806548535740821725156365148551709071134055941751401130131892769540114059976287281616726475185912993525901167479081918468472850259287664142921318948042547171922673190061657303068715110689726858111896890807621703164334794677314814145888704935111803402150431231675436168993791856670165523167907433658552890212429072850104981937435647967752717941491544190629730336335323846316698511552482792629439630325611220835213592017572369891747037807444028290276043994406059563333783903422636117590354421435881416993095369191211294674505604754457327766390189076812830803572696584204999863889780801255122454217244914906163033461908354049206231291897781935569126565970088015304001433380509760799539675318933463042705821231663662712500749336300475184241873770236528089165437843854969721837963403146921943309141026346487231401287524911619995434225341297298565059004246069636427795330922553229139462851211463124464801264895278117561692166173068486925580519990574343060454381612545562764005766029116636303857955942726052858758974865781798485638115460283839616095336805024500267387820609101532363542131398165552050816655813784158463766234019181490222339537071930518149423523018225925180051537908743984994311857596974236545660941787311372633215903321114561330385199812167779625292230455981599545441104514070239877056991506392528672252317408690972672002385069777852207003287483276429877573277135936972182710440058950508096493390748285854052404410801568188300448822118168121557168811896156119982692731270607352721294194923888622490481786796212255487504233387076658455338985152202621178428276331809837171582275319436632249181594003538797164735876397679943658137356281662769120983833600084348949044146136226759895234942423227002649032509611080771498559783759995913140794581881002262891734178988943233327862482244135276228547937269638218177712546919922524169882034901626339116517487450472357349317169088078512144797455736146517931269473685272847263215426547071841455615236403545714849839235073563555744436667948403280294894033268303316043598261012701011666203403870874743085174586000731801423275191296341245102163360833162731085754814935623990170868576512692681464910396395971206786725603061792240745530510774272008316770741030808842882601628967052831827527947510723807912559579266856159761595862166326085992942583449008519141846445778214677432959109081643564592753682985462407966798101516625259907497644977609892758163481941623117305599268138754094109108372144425516328749845983811439185436790256970000503369251018535257931630819941586899680962388373086154568313210126520247803088701563171000350357415051815029990649356335719205085583409935851303915688743270504758564438490105029839765227142409836815102809240460968038365401119631301017138066829963189472580636386400806522705396739357553844215324884574604374600245085716927355741094303842659597649749580181912323885262065630744112458338850255629623970139252772840215234471244872276296062432951194631511687660541668845742059769001526003840915470769358305488990966193268501538857000073986171959053502701741187516475716102046162725294727710750969807612093280675685905329008416576869366579973359556616838151418295168866557282776875684120757924259920119931091995290978538991042212875697787051372864301298240973274747100288923642729813371568351696337196286219963967779758625309716716534281883474582068529946721355873119217462518920235983486931974338702748208620148390338817003955477588901737066478899625643111715383036269368104627812866789251219333727304370146799748951045451443716321763437253486262418013574270982523974193763007597906750363290412189906183958987484268466704686629977194983366924206240119200787078690847110831158045402738210866018659194256143429721474217286696588185471708750614506173365863894033644283727179269175237294901557605692239801956508589652703281164346937794652147613029052579831081308660943475991077671229415788887904999718976341606211007163105791387745811999397424152488743051982402771000765503971012381329213105706864770503524537405308407889508015623519250894980633632840848487213170923449882884225683831519980449544139039836358842490380664481314938111260048336068605502343718298746828462180582048627332213367121218874646204385671637154589347661539838147596717299755521822694885493691011604080784885996257394585532999516087598936657484535991553049356271616033799786729102613217924081048504394981279054917409827158346696561856025279592063731136662345343737261332545299701593222216823983327113883613529745174801189651381095497186912549497769511269364032613078254722240860286060118921115614173622071030104446284803874680368536906773918032105341675148093679113945538204945561900874155207409003573251584934644440303231288487296330697257302717665529270625471610172116632090906418676871768977035538977228000420614273619852780911445855748057213930891595004354434683862533436879211834194896528246310681364831055707361128601493280170251894972950452137880395152691730500692749333744963657951169025216413845485967776022936606618631045755085737532977265230380162788367471693802235385013848458037901761037339740661143325635104314290622617600406180619743369099530953055971108887895736826687183398392118681167690289796305893888077369053698747317818813378069562474772926646962771065903791847331570127844443669370260008729222641383189236599779234459927954120957569792925421145749526009624553707868172808397309410094622603380809461203615550364732865474741707025037157683789781443064837176447189167049881818532701457496595496227156210620789240679325571681530338595799808714717694072027194242879709347992995859603386598876485729159491275841197619081925229002172117793662279579883939870930595006372527450441282447551247677820169720829760907346992007156328113470399607664751071275700313867952730261492138456441203323234781353862813076290783885695486866262310253343088599063670275329850329472737121054880486147146788988666233721833666824446814282511048545253160186824644404123809115968904487457774509773635474736581863838555180596957005536759242547244881255810714388758103451599394442334894423027785903609781174367741515994867341137333504214402516225848153869373756186295290522679136717320690117016767496692530131349072305259546732054698060883131570188950287096079888719338543838230992903112749944248238503672570583618896091905620967278019163222449976271849939576190766662085582146791638588208567080022849063759978498917990778436045507138423558517945957765947625027399450631514829953912987808078001831561149846834580242674274935019829481006393762713593759111639438136168494411635020976657180904608870801697797793071350064686843423607956418103635075968672277301864261747077467629349382258976914968763254093048246442111106683590295715668772530652542450382109998481372377357738567096016720208088251389112274100544443830016425313030926498882644582770222811276201799932391054292770293803385588843553938888911708011626782653296966472392462000593091799382418302455877019309486491006152258153075395336326331694677616701306710289072516955640064496713241862467833574868523195188418476034386604362066701394490277522651169858637728276448276452941308438917651099665415014353678061521940623007835079686603639211914816047301216446434840942854053863112862830820150868299572628453683442146918114835427683922605882009918242744238957020060136029968936708099777191048798030729460787019936846404728268967936985293847096337929610903153977716859759125366224453009791610046077100143944013362873105474243293317340935061656652095969980865283396853067181676864031564571171981276533320972482638475723823151370806588493980829210496617169903128570897823647273450651702968020406790228263352129550332839639331443082481617226504152360908250297837626043561314422090489954658127949218710632841157586972436988858665078175615419760488558402885185702841566258294048227753236654167993964461075566354064363282406049599456950848348104684186611451004537121331029536692594193106936154973681591984566907519630194454700222817021925870377861125073209564233419604369184407775322612380015586341440066521072897811329659012583904656087289027871491326377531515775402175512608965846203573580142191795188743486273138323558692869131431697748102254827597475292765974078622506780955061284929286029344499055116319215807023543164392316997247834105123390703220693211581306077876878626928449389927115974815275602648813170045212831873269092593991752628396231646387963290193915422784780763924589098498402543595172035270783078326120357851803551810102675416053015155338939967630490926710344511867050455180327967387694819449070665635747206160031424287672272843594241700936700068967856718812975121268921010515665488385199543166879994363590949336995018174135393756560852477859257165140897959650262461635738096093278526052245338508073332045706577479960710901460660678887112430614929213116889716141495027694709482233401640406502853723974946273311965223766882014850040243318558432397941346725100613006850665623580036563985197098818265657515483360882111914625150905702678025904775690414034236126261410596213312956995909845304603218288350267432138085538587225991279324823124276111887907125785925991492308671826862662370607672073426236382933672044922496589389310653311973126182000618105068641182093199735928872081888445599590578712615215286892219191052119399901070130497076517061271934462775178085289859759803066107185418960163662046000629148334062324560157894458906870303277057442188781260928173616652783187297111194778750406554990698191953065947311649422754052440673588546151408030188630863884753031949426909300701592315897059734234966885732605882155846155278055358317023932445875074025372678078926752990958777325277257079767818481188424300962354387506466972268731067986760127481689010593044066139260135927310599104400788531779643014931154701599679278850393722980001382288545562967261374031317245798999474727485007525818020253845301615865981032904305900672818295160343772722001456804906230808509205357867915412799321797797512604790290407707658250909039257911990292715630035903384129821260877198141191633900682626133317327642917229971768597420857875390606275884648358317251267953550177056498080851623923607608539672199924682609044009890737727199226083613879383930449997005387219753530159545220303271745192269026425743306002934427388859228300147635310600095537374554429852998002737433329294939613044515862776473520237195770421041739028558308473799245229953126876423916524279462567760344039818102668187902497434897768815693942829076447759457519192877974062571742229787891029199909203100314664556110219857617095547837327507432046270161937875317590430722969753642123422113118193337158755281146708421273669601809156567719433781799198059270282048156767452587465697714082858050238351988358237009874199047591491950884788245517089139752334099057540440810011576203802320091456081133118769473281706559195193671919481402935381072676872150179712127848685763147802000222365503461911771562587702882535128198043016060779958246959199345816215510605406904830842275213710398321282666928182483237166069564916961184479062310048940775505474265015638777226658955514362339304798505171214464899342710926332223500686820365072539653175005939762677618315392468701437852406941288603569611811085337077899845664180493003374083805471548764148449029227693256046876653478395124279760448278990231591882245304410511536461341682484477699937905527705454423992618289358483108799885785317005710684588496190853259996035783812408903917615670093870942418428392388401196742204262728123672732324001818608875675803622490089891256639626129195421518139238220224129934496274611749951057608021860501914664261911704067518245451943169430440892690698964915082104386225139388642727522285497856896813248007131721704392636799027584196674577234076728559913225248470170792250005487150537719779257200898489388091562497884452352026229506368525348908260264543188549106598654499823358766210337301833949797986987888968575333595958853996395599741477329976906131713665342524530620117684957112906214144078212103262416055057513799771024072263432825453129700964429611610425193855654053774387642797270228781071926102610477740344893805159245346026151561643757198138685213149184853795162353866201690663840455174909361723190159849190890007749420266269131064031016499740032525917028972129809491668682032898169452284197539382657825036227211936478279122362809130059481952451604023159941770524674135760926687553840525084328173899832544344030565396453875391063728088862148463394067001818212517243385274742947804960598560609208974777316986511078723534230756460103988257371427814346284180475622715340286127435219607729160642942484686267198732639589880492343193972599153300730031873871561812590873627042698767228144707271633925983405962263809742988469023481874221089765239612984659611173174597917083029677214336989538782832384846537542199600616391322491999371701906374820325096396772985241802949113203420312074459930162499764131767209623954267339490183884677324604168275209330155474769563409840629716669289240331746570718539906401147624120201092489638319276721715131280041370098253190782505131145801067030885843382272725958955985548712053238129420394461036432907498559437325720654633503659709176237936686594383102270978931317745183761605523820920790306629754891235800019754411367785071926984681363909654067062382450352661851016823405809186132056381893605686766314543800604803898891608398632045167518135078080383277141587460521198899122665997693793037393570918069593678374226363387309644914847895123552399869897833363940093240565713163688005408446365873472675165089345263749598688598607936626573735805783593857442614490595287428963709366282424720157752025825712857343601208958528669672708242098860642022259112011648650935782979656804379927237997315410890999283554854620499371313713043217341086931570209575754158377495408525290252072047959592765690039393589932554310318783647331302057281576349617305072309501460423646864704937333405709834895566082510351899562243547397235401112046072146959183721745407729790633530735574601255950880543515089417384885396943299758153612630093918692440594398589083248110846710876287831173827489122554680248524403094576827800389929874310178828827623149474839451248114222882609495704773336686665196538523488647690197274838905659990356947420581232864758662404114315294407777743638299856362701102457109287031542807029056141347480108158228045498060694219079055099591684828952758116746393985902126512066742978172689599175735122640227112119628260236194216568522530908140841025332627462101436942051019445408290076207903491453645866196740080465563203898824970740014839416351742049014064481736107985555731975021214340542985518576349557859300268243009239858399947777106676917657512223421606627700032982420223607650426589906873737556292765647545574340147297344880448947889383175041860410456670671951673078473117245640083451581791040045618762755204034806683778465147145237856382051095602419899271148676708934014070765286458816385442209842473430651473275023226503285962213672671476904186477755968525977783066102588211449317985850345569489301570260407743748858187374758457955629860013230772406229608259917389285750381839375178732167679061847652663576258571101766049818617073441723881276922578244975326474912076946416448034121391432693583306173050290794713450129637201768228258301622115735888485791851375506658538076169407051849974442640400209221063026217678870994130696431602932845574880482693765282574832182338724508028456382455928478920446180522169420416688899899595700133672146802205500600745037016231043014643293877703144750209744192109936056597661306804696818024921361932693007580645529812418160851772689477248950682139307037588224268735906410087828757975875846652303911025187910456468255661631365211138322875477888910630033795408734955855255081263732351697664335865726364041156654298172370489509991529703196506613952909947439313936243758975002433941419914781562825282123091024260583045074304109674284705164349029629911613241542238406279469483364942165927182825003881631142057632880218925911019707569004839293456599780301421120947940400486541718975716563977594577329060210104071044203144279978806605479350789013682866800569267791776377600551147810536056431784136578187037940241703981102670401463286773144125772642687856351842164203198252794384459053020903292248573404212443204407823618559544990631515901322315559435330743404459384604042544903080454401491037266160202108710860055625598759617574386949534045938480720865632397215735169831549285731843535993366079389775348618828015495909290812859393020853143902580400720484405391717035158840911807341672083565286248003791146298367293695790662820311229389010659634106784839238245149071708603979543000886040496951562263307117901515456747627328613694018120597722912494641878613940724886616117929911156584769926447848066500982597871738899071514371731437454630840234083119842504567242588917690128801059615080340479478297750091453358082724771796120215729621283292424465057966504371163030554696588281166781003155653338732173323630460615247536167513527836773055556277691782777789443847204394260420447416212731691182486249616577169790995346901270562266586477123386386774933325094731755403997474359129670144211536974819421932602633205661985202699519534379545824376156417527365274261748611881750270952723337389643433868944659562891361452740338854483306735682902160735130353868210575981830202250887376952611514262065370643478609108221812505331290702181544809468867819387724750992521093558070524244649958888550805553793514244650350168348980132094315525144808452790586907481706429630825600836004951369469787772232491410971635057988457752669650478432231506926626755985986816763959853194977630792180635938328782584010840318788627418689592862530637937019813688133614295950811161417928816741736005243902733164802370271974700342493831444420507004899405445199073856555583725618191009533941395155133173500859633348178790977157782808063578707548400444936341685782901242239452877318842932988354476851874202457571419818932445175297792148017004189636936739558626118516321854894627731105791510521315780264687571266618689106247423857698980251450539788805674319556275683999786013728920203174940421683950856339980338501863820602875046903348873453190272961816062963259247343505625391254683499409766035535359075800128509763825373917153521067565519756487785494893580849588442968904648372650314472790798647089527870728492650971863131812704721978820274928472390077560826454061101688296742050378328089612252512195125421178268505706748535248717691108061148379304909543521324375385635839917030608568225056936537066728583048488636192643407111239712760841639349265139713135687896435728828043675529785626750010923020474804398219514335960425435829447237553962280405090727676831051574891803082204670227259987460688922075301699383860355525983900657047769521462263546834862867015718925157311984806834057639373547724370003579212800778550984333702212306555387403894389590495779409366313055978168781951658660637103346785931802523140181884233165557311268570441226706056864873226655886197523654428950078608404169341644794168043335847250848819757174472210781582308784071420298322119591878869471567807203864194574849899290744555873358020819273268965469491283349701019715570292869918215219363200533354351660463957151409700831733971608025992111978844352445677803012968349107932913117288293833852723259033983230302755223987514293746052111451167043917677498353965195055468729880398505911510223530601846506434377386298378710524722390639455212984218229264440652873985722371802602584798387424227536354482988020949082250074921490518038857469315569914643175998959260552892811164974459345831021699397520321902097362807471291310986044521453022093141257629681219480410264656233962156725034220387288244529443242124734204851330122980001389037964569109996715766164623412770117627818843457667431876022213081334445365789496638349859158026504656723036491218588772035388567826879638196200514050985532463688479200912112310659937151195523597477885403814775273428023056548277481408557652212252408792505553848707928753656282550941075157500152160406009199139891560566949927054968570232511528788279510744487090911398881283153863733710330914549451635290474509483014822637370371019902619441201014220712862863463677382404596558201187351405168163937346649770647663327104104077051113052072241084609213825441660979670989999470334187371333072495540386875018498737260856034741901731676710273271324963299718019594894470535601565791828364980086970492256631659515656460450840060153509591399540002485970809206280047079220451525998796795804530762250188013811700133021974063262957133370487085220050045733673816218515698778430107019613747209687153651825021455448660583517799380094423241205848314745012556842397217791411816778883372419632226686927996939516430384845054852924869658701413876689478713953779644923372793039953662936348702391026349623364028458832111189171367750736367922481541758902179446638037921282256868524593338202985452202219393030261214766392082066181087620023153722140471009839494717122966691341418073645849341197829697640881960191324311894048100630215692484089192679855199963459565343004263136730980470758982373059722211210937444507355902000354440529814920166761167456784407101545126262912137189047699434934543583509778580128827109591786137797018703049504326395146689303467447881079302621607667967255867194060297812483038073632242651603776113171336061741561294875640943218483072932256227912386741205335500447799035574789888635881894738463615201038555388271207296754145457211290587160951693843846717604317993993784397820722406162979041399097977805940257730027493307793399465471121040480362381024007553764544438460987840751165484775632390261417210186196083027044070032436835380059921168890146998532521329356571983725106271572064614129462822339161845797852616486395686209533800193555227691545190581699583120377825233607906308247299767158983888289792861120462373207504765395723656136429819091092818701675539544758938854941090441004075327287707135528781304665362090342737876591908034524635125603298832209546615801855984107413085520550724945470622888764872079683133383150094589078200318538896453518742715525248317754696153345119306848778387457573964499295031019390794114620501234086873495085853165009718240983306588836825829202130985962366618214323391921895996548702146450282120892400017943976876955669839143536857900024738440414187066812979325205557724814211298938573069723328572051897643162235785053285877290126480619210594181046282850476338336267623503647895644835144003117182709197280258990291327557610896205661352856097631723647207199956849174761355816896603597709911017189449889665033665581194945595301517874658328702883758871968300593955315546911732981846891993824441200104271755667509814288837806418318825486727416424273555421459818602691876079146759411547951451143572902280789289817684085700014249023418312692120279408743634211791168952970328507366577871792684100929903404762660751471050748538534727781236774308294242906947698842719972948096671064461399258298024790826174133963693662876560230026865719487071751521163994643073716604987166855283822181087678477825759304918801793613791963595439019174229739978702659172014311670592025930760558434023431507139496094257248081924999708692346676922251243879762247728134277661704092697331439607022281924753925640317325199273421525044844818720813598279220824129763073333853282031200199057084482614515788470419764731255092691691120471656570977032658142476966986937049208052542840945474055469379818709512556290180779529252707793990729570744273527341592493688929856288131233501239102764176407550960513253016415761771455409777049874143259447206421906173710072453919760750156128651240935256311975215357651450345409506999623555422262645238437518745577006386587469697237547446958055724468238378094607965913001673848014642604348885066918539642899886204011120794429309704516148615318516396780963770319130128478770430245626011120484889910111134164781600786656046753084244548771645370884062831259645021300657426465261728382533059763731517901937177128072000211225643811664896836540999824959282904405609864455249460731857346916129367155286609254741680720996222575697919528144637914150277046957495926986775948135938910171240127169023234625362965889462976553526860118154889763870798740284664543465817164777166252817541137953413664255056660180364055780283794836049963529431072539197922732743385910641358869400555895383945609759108806985022673161432814411929546246530108321635566571371131291430883485236764655853890569842048624437835047060220437638357274219678879147230867634402051112289734808739780757773311315428488444614086365769333214955144816094659963451788416244885416763639283151592663200632077044085862458571721874724885350150384451086139160461590042647066941676685183526914327003358990071130756078873183588695363982644817145724548100109179389534741790049552537218718303586178096015448224684571978643595299300696994232180894102113300760592866190321316144370480302775699285578541293545922875264593909107559784401076609989113049087879282718432086737043873764731063723063516314474353798458280161555132671122557123085943779708971889961929160969708122927746575093901645927271575704724280392274104161810723937211686772972408412884847970627480490766100099444617802094906408183383530640797285809966789962198188573749905944566854427254250612897892941913023724535419892648171258110066778207343386770554477579068621617535117943876878954761003487403426763121160807709675448261102299147575254238074458060057610655105419587732516600807668837614410305033431655527341107344707237937854282001946417413950840311897880418498025560721553746495859289065991797873150444558948175322499112333883475803818646265710619304339579628278937972560947082975365893247595130762733477058932146991338953406463592600616084500597613460298717877287969595817166595896254072358720122571258555498799103815853459268159820593634750396710561164158153915811539754373462194587684849652977519840371895554887318279297861418284676494716737357716620278388537797567095102414711134462884544448681512461652164953137864044371555058524176668476571150461427878240978687000574313442701664327065051108552484291905986266383792961660958363099321817719885295983987145608021374800913917717903587821020639704890051136648850610986427405056238506599662287677352918696695317916639308442560553700671112768317906972218558854938067527161824929507083869867276956687074411409275787211399658691814746542938366937828673187351264609108214103621701167576373810194598153522562289328087781806335752494433677891077115302103998414358064550011547275957036715001019622882610029057963987441591935520842646906057069585698800917363671785982082889453406210943878742242677505588250704961771038871646566485740732622608170352305223753937123035594133065505928079192665165779029361379166340523337316413409148378547844441703454318502666385418179548041280661817597227855665112031796015785042034481818914702507693844159348003206488527949844829816535378771110824158661613629691382815775927374364338505400423242556172949350169218645531759735766413575117531714437318111831599693445265160301000926956312523704057896889070892310717429806768815532871379041977876389558913949269438013594921132827173577024309566353857134502064361709242437923371010646063036319145221627350380994929447933499409777339392357512909763275199474493699042039587603750769199240299571558022643993830312195369166238436647166214524992957946332073202089928024883918856062653477201685539152038805399183687224952569302531236753697052222122435175507654166249519589427290188926523574881410111089812197370147577342992673959983090081902129808699065176205508424462127775513676589181221429067381017190361123659426154827705817938209398410669391263499655959399808526946462522524746379890220723414019284658464884440770284097077936594957380461879666198290965601656339634892723958371078694549935652578075137678179138022699994514490476816195332634815898640159554057389030418771997774271544978195303349477496984108598274122012883491810328921235805812711196898379862526121471632276921149465580323362382911995220503592511778949223227231122250262493652057923515080226084910039430231812067244927850038892801668584809154281055483885887465796896303129296923527555927801820722539295178256064421150207770845935380223485543762710704973063858509666788613223166063101949731683274607574410058478210779865155970372445312354581219158577313692007055225854661583050619402438173957825544953893269204845581472364002443604074989181019718674724439579788356356997921811337952378403660937842825848132208274432021023258141924818090242585119255401200659260594105560924365192537758232099687647526929971137940133325542557517658369466919167645869171450006031177240087034737528731077475404264297303940113705964111322508234093272158415976664590149768167096368805293772203661616219586405347997769137898477904318079632603519830279551406080231922975354200577364537617386506503546158949141135648058606275140337128301439087942769441021481599880822600825636061005287180134084285109840822250063182891734629696222972695051066869257280716216934928306274949705299328997352396410020116125493651261067736214468472638761320044874426272315170680850472696395121513631490289001943608285587956762635415487604626573267375175080179807484968432786542321817103529126932670543740788165805080269154320789006395695888755708306336595244270756653991066264296112584574970120726469649482908335905807033905815872476930358393295998784625025383308817106265030934204329133401205469811089379778716910375773454538782561893900218440944525690133405418641991642694748984154289165927938805819218340828175670932023695106911675160440807662022436492257621603740416403631301749624211214111630160953385454948761242719677015933195582909497556969640507839099969286725625528291165619741449576532898824971377790761007944087974828504125807329726650300091908634421698762502654695563208970473461683584663070334093658588836958325550274244427520577540715372681209839364353828336990976116298659787225101782721592806424463165764056319833275724884922801950864196173869022911705176468217704553922746896856442766031273075005295216471626811410810290741901720717462259195893046794785829511457742721522946543541090866403752561800387857580923773506684111493537288188424434082255631110450433627154579811887744502832645807231817810768084774410257805502129828084553702881884145159418749956148450373387618936039889655127534680733753022852206088924559720447825215775885158228797056106619899929283186324568968959042747300266948333479277774713136897908632090055101535575977445387463499623434642870579609551403159702218170218905496993835766073787369697450734481010684987508049196275054414215729518988126383925246551732579080710890185615880237808225076850067342984099202768284575070211084642373051852414602999444618255835867603206980387044073905624589802057339522997890483523623555317856405204295799086449594096762597190453898947869623170810491995811769412091109440470002466914293771475517790024177516241790251471513669840128670515458468522775008217893114446206638553596354396642642507539057313428130392073567082798300997840171887310607630483375481904536044383182518170235448244793500175360123268394851386294814739375963778787958903842153607024229235903301227055517326965867451203281574440538469494667066622103818536737817242384684180031714341333245659441801876965896441794857956954704593853581188052814872339740849080550175951897339837154371933545943718870526264831516636011446612164223590248719965336078809157539565854237739075104917748069365290259214634117107133158508325724474142007100390246830863274227874581389875497199867737057447377223215929184542824155017697883452684125470106477269182139701302922745079917110511964829581880536825218996781894502646326709387000994209746182855104632608336093856431814926099008393746741703453416355908572145818938994594034250082009551468671984786286913800578420594783923086623020689079289665123493216644668496298573362044936369585770524892799029853550005458920102060652683438851881442100736035428245618458314144734328864013778071191061380275971744332093107118011327942146000515230179069318885368770535367666553623062861080867912168489917188137349499395494412182636373328411026339767245400797449955286014599580531700514312697216058410525508093798237079145565382463883388058026281641777920437069458174899682708658493297160454178979671618250374720713730115077819478525973202617697000069695694712102172345212452242595951143748023034646635227975572097906519468210127412375606935135911012564316065448484565106898779681392081425920709705020927123231528811637233447453299666849305766887361172076417987717233729642439143523312903387593860708196396732644813752241877892913793412626806739803158031921765068291814222407732093329874595067881046743543859421240734243365962497622207944126306464786896046730213636871031082669822486603262017768674368057529103136852625882785814247916921211712748882600596588089279729152022603452746034297542708322421131759194859869725618613942296370525448933424238791559143744123452924937880029146410832622302317817422829420785806538607980302505583154511840944116901513833164421529165073952437097189769923658637710219386518350314930402547289342358993870929555068391011558270576437990808354635546875470673631984687111248035014678638879733313720563234350779614795190197873970557997468648954348481467843674728233727219597829143693026346826198889092294497708665298173796980506741297434227435077769148801684188418752771417095215532802702527141110622129047746822979151566411127310000660377676671615381379462918141651339847057128364732462851610656674821314985402421409307463740991510596895821312759914298628334240811251279193410682966532536429284400899395466794224485573214197195518326958386560001117029489255835619320086075471757121622580380657010588893979831399343339439588937597385451373166151748489276236574264326393872034396920295579007515139760414387912252749042618645491782627463966732519802610775441184873350102659687051183985884731522216145574222600364701787776214096539928511485960944617577736873399695800946333987021637208992662947190360369634743184608519425311354834062593266990928691383947793540739647464238287261132131767668290561325724353236248885517812356713202056906682305805799265037202904159600959587104951091050770772148217603055581219255729437863711430347739730216840511270849735133448417864854557075306438661402787719418347133438625539622462327353737202360935116734834288160557641180321228668230096636076182840398799182311111968651448947514116250929856836528351996252480181415104276507867748091478469214561690500682696163666534302384921625013696708189291770890999815825518646886503331067235086371566935091191239679315848978789204480150669893754788036943027938065104959737591632059529238342803009919339422304214699365148085006946485555766816976351222572494109605247578670538929982109245345489763782467829389066473035443537563307882973676985639172943691458358429382332934435295994326891335366231250650991251812096715642458080356026780530412550729887209135642815504850447511427965100009414393412553750087946590573012359926574072251864118649145904236170492836832912085379889995225960949271531460836885985244635751268948282018701728280070422244499629532427571570841879468664724731338568865937416386043711202533122400589197385438179278226363007215438568889121082847183047286151429004045581578609254172463135031775220278619088434467230642908380440316427150724568938884549459906000495822853913402235147227387921108064063060272682093312965474636401410977260980134753957496010379389014468922498000547289353756551076117824439046592124387551347297602735577069119534047317679986511230231501240699601705139628568705300049740707095025295818293742004687021307459412139962077994936821888297806105463122263390381159712184084649592537559332399186697878674581108378296295333787068286995717314977177075773293156370369725461631479590043592050512297548399434392649763869548701385109915138268820345274418760366991559442646796248978422505560333727675436593259262947235741309651545504037909210265601937958717010580429177205268093434284153493439485282279484149052352840248699246280871756797953660230770318303004419327023652430471695827246996566172589673121181485256835093388013239496221789479421912795916741287919559157272553107229882549890462771678905895482067995026496048436217745088627918090925029920079733329701745216358004384330315198460291800180510987888118591811109336864919745123506511771506238021470978296436827548252549811904501556457352047039602087552330009403943136022050480587122061009608706036272872686320591339110885745282462048377640878847027073215647956022233158945584904069958411888327203145348168957009835781205074460049567911806538981444684022502056143237227352144082321894993906554649249432658072763868407969029838168247629801257937881715465802859994266632640917808090269914041313182551841770764138163384519035417517115883915012900467114307291112641663180029276212079964339666497515607433447147334619817458737730653061332881695693524284664668152807788776743595434921983924060661483295204279128681291210107129630456306533224067212700464227436216117963311143531353305840979783915670868051399452354309042412686616458269897383623155421871843813573666126552597168798640609489259264858150455038949659061313490144893093748951178690818593561238438940450030350492309371338857306304983591328581795818871804554372738663762845700605890198109809999056310364132090739658729662728072039434771038933177847237611894359242618530729574222022939898910690083276435315366664203777677219559291670634622964845332639703240600627710526160761262852593422637176932504551635657446407805722239199682011637530184781630740247727537627867801120507244164248589225640633235309427414435679668514441997036588775077787819393656406008037280431760789003196336132822890324293982363738936268503682005197763076633216369066567168131970134767919452319178194133325218485677270481637793472406953147383682078938919158116962558415813027439001168826471562222623131159042783778081112297127864275995393710503399516402458538704744697006147587395141689047459147515641404852776440088853130037663822813871114140025636542311335903006031464130413387460996227285587466145033018254598313266719737489033235464776669866429002740098294762898814882826167279429136097965042952539493609743378532451987678227116947143815305650256337462450734548896293423063351746189577044558926234274932708270018962181806042492841342210249412623115582547757035968149341396530543231795005072228629886360878723688208638843502885323188755662911094733141597098460197742937357696736072527999954384221470423568667919104989925772417732347239333563692237125474871728583475002973461730672908792784213535665229361722812037627257684493449575042356293204487613274728752768841274131090672319454424671773987510200772747795429171788025177482036128342128831842375306963206777588041073862683079915522042488463109328512007665635125006280203282547113019523612176141258824528359512030456315845976672754829699958310546815148367549035450094649228332544000062523947188610657139006604416316890056607593962342457869724768652853766155352802215948808445712772082924252376771239125556423942855865678752244234140816801300281781612118017128760103020847958850217891882039410474926230126800823338429013817519635686361072890431820343408477023906248706213258745829359365366993376821762956419749357643839143746164073236811945954139832335572725113111327077217911661479424310921971115014345913283575595722937046230186026645205042909884083568479730467908845747999481524507084311465514722362069096582326185552770340506898636262864802010332244669464302972478958893984553393051315757426515589648993441970858304050887672973541277096292101622115608481391871730021352175845221086676893941271518055335041376120731854940749234755918536722728690936521745223591909272135624218318791922259495497230554855328092293350947358441351165165335302384646208587147656397163161466467750993486057799630235390763628193535755471434726897113586547295712317070027003764448213396652124915021977584229040723046531239829817701533262098273841040602629989511651702014450207510744947502416039775977970485602679775503743430808769993472803218289760786006260228115288908255918859875356975371780376906693798242799572950575592654163770288622061094525466634305383604728718132580302288494339807225038756784446217159962263219423101123432325312813771208131386886342972886529749882838773587329839520199608972662044991153278358773421338763267143737282847453240111725905520936147581628179126507723315069840302449669710559623891512200400531131141227736456446093161268182230315458582414942258473568276896591913039165403218416045179488284381530852203118977741264159542498624208084348043630872053289096939953689363142240235189208569460583982643210937466895868971841895556343240527689608502219040768646200165288975703434009055226052289211904725608810348208844441324298588219286264329136857398655524238934574125241714720250213808890395162863120477616728930296773530818769088851808160224726105651913469434096039133772574003596329992149602762242977128613403076099008882644293199687791548020244408991547244294883983675181796733759550756771647239104213609529086682236793210217152848830846473735315317740921123647051577102006161025109142434095418636073875587786193462620752320605181711328304516052736043534351144781910554749861344328346122653618857919965728849761104425426130386455377440432455574290722303073207998039576647402388717736834036622154995410433037832947786766920079086910112391199722735561776583421753708212507353142313069172516895180426277250691955966351376547861357186524470582258494818434173613053537740416600982249582766168641710820579181766866891665349909079318423011271894348163120879721350626498916755416197119538689511359724580508712661911370277105889150671604042326166210930799950297444259664051132480460281422838000789958138724683621922651317028846658332103294318366177656585883474666619493790959328229230036447182138980036506753263802203910142967092438015899852349121839161694431945054023143960827229688518567576529687902196940302632759089641082982972653832585733371299561214233363879925961254386275473691515357760950356270259059100630205882882297404044928023465631366986884599311226427736601332899279568662830880228374162826069162994100038649283964835774442963148549755105697534814184657549609355296487583719647888692485401253279883415352665466236932809718313778844362243896558062567567840268421433804474355144478105497790423295851307457580265854501098643148436661329163031347910241028325093955697921708877367213810482738254690998080135904052226570572940928770383274937795731437530733139329234140387724260210060802447253562862521716128892117955873879799787193387582413108474234382459894979317806331270961334215663708790201621388626274935306298626583819144383093868266293055266400087218489768164106525891557036281079347810278614765706026336843654800295979765634711009984895507516667200746415540180723393316355517896443853553595659890310308611236249362664994799383972142563106953855045511076533104566344739785070550677302206564285713718109938403950209139676441088600409781149186011261566126191902746944152277853152129479962765997130305227204908650191202807094474624473719105789010041241946911558557734910517335904788870981602014480490038728808805105525575822754678443984676401595305028326678514954846381673343055946072854170917104795311072332310356735055154800471655952959451416572366242859813884281992305258226873424828790423771415547731357851865431435616850900381405689859616544075250067353834940431979204129482973127679228296173070567869093423544561367525053936462523108234446162719065835634744350168289131088967296322919320978925222315422363398734667542088680941584834872483821756618478482331193786916631228001646185404496065022738735291508420624225882257099516831589461420997535216161962046308208430426581896190131729573160356850518291018853082141706645734296600147145829514060907996765358190286831623540334794350280198795120140865847646475023357852012958500293023861432915724145193849081731624871175684315972977241293743028981118939727557499925341919738795388502687926581783892759038530042279895266809244021635517799128628918153923580468978655332267034521095210691364903215440443680618518693821610460325144194149926839177163675192732997970826901697146690485501823347409668966194233655591054044852143488752988761191086473196670239140854222410090727167154815193862315361406010659262076177529394659402447762602987725473443004973850520468514059148002241568340479137427444335631274214384424229984173641258016067152003876218653483962769823319753233712435127068921636037433328070537551887633669103693396314044167301570212689146924344531030159297978461616909970010828497825398353167310385030949189364199447025230308509246439218783358350047775301960723733188680766821641129174393518000841399136107337322950563795351489571811663590185897973182983297275418226787842623924293053937953459507017762303118848591939996375172475623318306525159133883024240586753967063304884697281864363890036123470820776513665490445838769700844107651563881344865903381129178103682459905990441196685311198513649922517368208822329918841978996841541023618522000333514813442570280065269396222965897174314033475451186794001713952762498984944235072607105374435268002154701483924654949473220863106407492502959205610262335753758978273049523513280503868460031699315333115974516620262079068809401505489499454153553699763725635963831223438231416675169112771358302517971346884962874803834188675150844472951868529620818211444129445906770536600926363714715354242092686956432546238140405597894674336777336093481253209796282957357028150015661744093500367255292064752655855538102175196606706632612710368158092830469388768493020065149851458270587774395201507996733542342209588044573757278558251864131170020402312067858337879286582429314197830167722107234567553044656509003308551013091675064479425007267359392868467608847319095331505643918822485759669568121999044718869414423508070086866214734546265151276519205221267126657557690782117664317192588004777252878456873541732510203122888134449472050220702253091879988714783513516568842134602671336244781107899131620585310311015904689222873659150912820652259281242202763297950175563290000198957195704585178112732733367678467030639448836585040803849095253490216962361567643862364457799027929848257429103470281205137169208616019783124747791764737263547359443328974449809914962462150691292470651368840356478965110843174642976518551670320035455464932775774945737484299500014951516782266376573396257708950318563090572121465618097960963036321413696229461887057225839195349839264812905531472198730283115123360492349763679445871997337525480921871560527812288755025174286666482756534657207986322329514430814597928524895455453954110634901099800661808014009585712529191988199974916078379582664950360222561018315338336058225053861015863720022647812946216381737096403282422502784652565795918606948744999339203173741670715287746151713805663566850436737977405058313450008524487451489228776946433976499413298125349314003094159739760908474073135035491178374941012680687877723910522009092708699463594350252419367684961240228208387177109399138015612012672521552126102663248785850825602014105855776522733070541007754387108004031161409185138439424339585392731854993743428068714333095318268060496754592172589435617245344580006677612750343277206068720739020155407625173643672592621139054104061890517805036560051642710082194049170095411310519353587757265766095715379780423254899232251341060449497052266569955994273754910857828852064197882109409909384544390723476019501760791955587584265511993123217387379962123214062022438334725475795092094299991770476906282446012855092962116220233948411441621976654033044855035579566864967271288006545322085781996797949699345120682026561199335715448758894481683228988164527657803842550183866404760493528351287477521971936879090905454315296459314777194679356856822182635679488614745603022474013177293739703875687027127691952052454070663457942342144807721566591116098012542984840045666996841262864692381107250308555473509582941789708621232115206796061287803525223891797487510772131063459057950710067038940188518640032387767830144118147498159319643278721024128059660475621697082777627134584649266645554335886849046544802949033491729861678034201624802252804468780501038067980829622528254261911966937003686364520942990665162530781117929198142247477209985628449832995792269152965205253456694603592172633113796878587107678809297142749101376553894149043151345371273701154468472552131945902946667270454770253923435854978917642299060988848744070201520056763589788010532876180803334909481585110537944675156097463382456709409407895155126772213373693545861676231585272417116987165609583880015905977434053595967348759716786194314558153083962907940412545327910971693581842147307356584246802287255636111524091775040035528081643119840203182429833537696934452934421412201001470637634650326162882364570588089860345005820103470118081443242570893682471293967223188810281201217344762174991953082153461018597615197919089743641410346174860265686803133477060128112187317407181580155702864980741656416560951771685389554729104032798996407707734506008940198480963223956883361542505463528136924755258199080458170635004058819972134167152771779619950468668083418405305566084095673982745075722010003161278083989311862700790034879392188661661554826051359364814339394225556739858221979330995240057555334047454056576471761652955446214908447713425076230168115867506256456531121032532408373991755344354794076952908024622325697802987166111243526173986130759834254576133056357810628043336149489115543422018896930803399519655676359378727883054724432298088618361013899336567049419194278169374079034715628172538038008702392492475716037265244245263338882717221224078391483924698208573240850814709660048646387149300974595797441079517249121320934575975242043867273412648642278680735205839118743713247791655481498464258687294311312588625362406425698324937439550188789248582677463670317370571134053902902578391655237980259840117002722266142651683905297989539646833274203630871228254285596838220333427338403567785588974918678479718656688399174510431942391443560753895887230507905536037430160167081649110581627234013092763924703264438786868824050236399749381997285541808491349324912877558398126949022149673836709727827380376296951146144346076391863695573769182013414312353639861651197371558960286294972124789114562909966843169491103171393419619681077345922103924981107090092428216198252642622293144240921291768814830895549505084588048230522537383825033290266784828490510484281638725349208120344453076395268143516390837980910261843615608290189819048059721841640029483541402198130865096845114495833942412936082596411014190700252824379353529664729311455688869918417828645746143650795462197942357876600121988388520139613925684954819191043951385406370846414080103220750374861892852466442698002235027457844757161503708657001344901950727765811145861666821980216938197967345504563978592755774314704505277742069451074690714468598598123062617580019275923105798390664090804581544054486591376223283413018936646068486477380089849500150527367296289137804348540962600125780222738339518440959188985306204838648554057178043984205311644322555198417241785250652524009261097372222496592569298850948069733676692217600703097399538180515103973455673813370691669040510906089856496540818548910028333509749566402399043779705259905750192791980624178285880745091120617066998571173349243811311375280103227850474680986942812801230666080947843814456788016722027063199293528344863288631123465443462411108496059667047140172195789534664210709204347633767340725822108999016621549397546723868044315110611261925218848569400368674656620175045222009342581165974239444759659202500508899890439537762952008414165028775472968930405596701515916942640959499751442918529620419463753149443761809867981842531871104088743886487864925035372792578157929748539732039016251381085063818117495054048144577610571576238227798189408905543044271871663390649301013020373810233368938521978989531619391311484821771006150325075373144242898530137442750753303177371806324334092731360439447152009387833664191914895208351162050774563914906624768489335446817156541798778295189506056604474249272392691715087290234260787413820207913438847515529726835030770651766837929499953543028472926028493921628986076091488061323831318098807283668459765050189864222126039821066077819146250870286181409693962881549560593082691746553370026494188093575986599811935907716545092790576630385707970091973954250014753825078034141179572060572940472701645261112636061106291038425530541640867154248050449660617623842671051106033601073026253627288897724155525393501279136805248067698936076467159137803614825203920638955546294050401092296083246019717047888418976693645538697176146159968934272386145880732080639192101486443793543939447399936333456969541661823619690823118065066389701476993769898552418027430603255822430046539826570754891910149393602313214250504233590486329466131202817399625305695397850820704538002144132105151867522325463047270649085169841361584893200021505028938804055159740998800450166096752331834154059768180133827102556392941114132044490358165553561986283887668028993546602053954075230700529074794977105196910952373405276022944439815034027159547054731558833626245455685726011512845713517013586868097554755709380925698957379140605663875298862552538091151089175833351705819373365322687231463349862981331167482349718108602761328472011929121620056203418310683517251761207019897824384677200430521303027814698490504341306860530601201414412830173260276538716694726971496744584858468479298887885096554021213211324816274032769852430048764251631782418455582747307151549233530364448678069071326048382307530176956231741056194723415947544909482853299440456855323183713046338456386772659639997719108582981888436174578037222305951125058149307357985316321869267139555699478324854634223192805888234892063870175554226525978116035389527785996281661024830590697271796191983623874282992766397180524836770622665931481804834723708025745776652382364555169543270458580554656570222859064374283478513249163549158981004041516157344108209007235312582791692791236286596569460169858445121733806498916137427184578596130922171095742263539110410276313376259925780138681765213525344179996895017316218998076321240124119109013860967028386511965248173540602616242984944339726751066060910563506864806641367334938386816442305899882123843080338665813418286130466898762464602635712758090170905657446584733321633059337072503222052932466397945542915555869201294097449503118638324620229642175679443580840273891223247811509329682352559765860256928024775347379554778522868205105569364733894101842121685680545334618768851614317614731239750909293736131814357479015711753604435452873102624429397742652411937267540684887440836439775598779206264031908399358926617910994238433576297749908334830185743526565624364261192244389416491126908457102935503999409384845136517185328738240619307749457513913553660226772285779814254854821808435428571690348293181265131030394715516152351908285584977385946616589671020650192306783797546804856808697454811306147449486960005817891729934319186163580844867173521711465338689117229763510114879050605360316945883970091536196912183972471963919223662933552154709205092954567540966967737860886047960925386230363014753588827615453568018635359649514934195049543844356358882463967470286498937994817520167254084050434210399862204986898626802289316236543797862753068244803017886419743644222976129444823366710263984101820099537168234370917904634286018576806083247713816963588934363251797341419887410619876681686897938693057575153812477012469237256281958225098243322939580065492282142044584547935136182540803317908459911711996931476463310332275176829193721074773939927235393120676822946599912728146934582414755820264348223994155034812699340846379181284829431779776807550120208444696670010935059886987192204718796468907222627741527007973600457358082282215528912703124072483284300015371887227069773790057462312872919769531450577896768877006396338014297820749556924708193152450351340157142273404519966840446950340497822921938525779816178398313178296874291031980072861638810328608215075014239652982149762790985200457931443603750095378895655359376994993166467874939255611569718486454436882270303195782192217166989957933901733381639866799352984862827168068959843349115276691481884331499773778465597541317148769060376547132002872183376274068438228915943432755090701200798798373331395649648871593435690412525018765676397408908806710390341994720106822702720724124391040684651493537202769669561289626032972354183702560507640932081874901330905608132291565652402942268784273387578556619964748008590022179541915152524260399656143878815951202539765548583404899696356711455617661448637555376736884477064338858759197682044875793922035841891852074051899491447473747749149793330695288543283946465566529922451083862548492325111750114805254950379012071638275669023260912187227203633510050470211468947280661012351301142488355981658658956074095457534595989721941970152449463628177528262915474746969665597919694971705516832774821677238067506129083838561267283170669992510793327138521463308291207901789231119031387328587231877979761695692904988931849453379211063708228499278451908153631317705470670265112907450112322170056270953988068186220585233374208649975868240947815754361483540701333385125644234394138334070354958374780881561784832090461537953322610102973930732250456200535017009059251113619920051410307455725743138153425148709441775936448707772409475175954553414037612930283795322799178270190416702129923563518070915609754911613857040071653093767155716323128070705673521794098388702512448589438557831815378645562098711852724001006198295698892506215883138357060187561721583849212267951945835810652599032652489220292400930225816329197651278832488853859273890089137819681051398469700995546977291219947722092707053610153318362367205394920579615247119615115248047167697695921025572837852364649184248520951786956265985407111052160917084910815268868013767727792560418616858244803545229213363769773345936407860786367405218997319699488628786117188034088226225560977414014158335097561657522561036008714313132603847218453395501676734612583392634942943226829993991667293997378790892269210493679419991849889046051379093537162697600853707865829026955797747219290330376311302214059597685706138238519036166581211925849417803220918361471604783747955926126325299353564526208474529092157359515985789725316167879735704000314119066934179580845057672183777184978001460385025822081119834121398190531423329756289633505888105300508284979906096824088417941589605120858196198594091002727975559089441532048738745697237187567338840032519402211854995201648752795942286808896665321887701273061992283905712327531690900007508125465229219799779649173599296336481644419362314223331778210225441672023462033028751623140336558105415839592596902677614216714943843178504069492027810659320676557575539873597115114304483269451085361730351092736650186566662662763977978120025037812999647202372021960924971422310743470620727688582562886449761257185867523620362576942322280713726702076818653687931202836361970214182009875541702796232403102753806373013756418306606702306580661453109240982129364626562900559346062472759923661698102665274797520791396288582863172393550280274252233421175252231552935623237502113063571481740690659145986670188651401920786312847758030751741203726962786158610200055853372484377773483077921693203953664919890897269667532106111039641440549160017279416692986541510099317912924749643473648156377238671409152468617636323040389056829126073985386895374125449129435338517451750500060652458091934447063008282579546012731172615586449843954112955812222104534412821969629677357813097357364416779785810974573521396744123904832929303859780569002487515433294608447409494277608828088821189394137342643668820083874914581138707982316316703981291810247316962499811256183821418534064564100344012123174211691587190490792722004461901853468054719047376002783536409112319750126135849506149556512730752377599624239498448210680421292238826004328612258511791596618320848321226515810594371052956399748045716934789360293235147608129908291593569427448643821762380021866402406011612808625501041422093285899617711675298410524525872817240645851951007569362230176311443450615738770333131569800695935441581999436957277997723771249841279541939623660343777770796821775020624824275422377655754482606875037363470450990116312677250257657692384320929114230176859766492935644439035247344806640968221248639339283730077341018449350677956439388155165590354729746386363658071113715680099444136541305652994959363259393628226056767141242797457443627835461464092269755489636381898489059707763879952011141914297932804447368042060636857546206542518663024556133411168698317030637777535345953623039049570619980573037510505773579793155258594652616371422448924513021215291119362445979552328294973268133388289389287166396487593506780952134894699520890782857554260124826128932742260504971873629741669661280891286375023722865594447607688808972100033571420133729068236567690052289735935262774314912046428120100295470664405855104881014949969499515085025577925150451296427438504104382721506593787216314499319289065482226886912649135597303738245258160966522942767037822458119474820778230693364456173363907003160706066409953607560323798645014802444967076131919035084602254523609961857793504225557825911588022358565632864613825951037242872949499558716623759123844369028129883959051450032904470350615879211888311841191847941090142522861442885974997729096257101723608439594248193206906233477489068628623791250121583953970826739790518954176319461319630390700149274106439613643109061613518333289598138886736992191789264099925878928747730725689783820968660401482036392692081289518246851323360999210459888727927815611147135864278601199683824813769474446180886469637674199755827774505917772765280994749776870811203796044806165607503210972448320031741317946606101952706185342033849972054220947730162706004809763223563506838829764452188735653908953024829332532094139696470356248201792243027395730280341651822595002256443577870766053802381339160167230117246393059130158510796721558432334843305032479924346671127289164301241216118066255854032489905085537356290406335407896855016269588738856108848868196333980913574675615905218047303681579062923239920485093307409188269877677845116557953214328584132174381426083532285818530760909931501697604874426661694929021669896840654799783462009297649439663477295653971585241471574244794232975452696425287059809304636869066982106814093028337635127706104889939231734151132968921092220990803767775525035569867491981430227423341285974206064698983461062871565955375984131529354934886878838636343307828124289249051026539170726855246691450386594622011265257573797848975843132588625147639479934262719062319424092777546555115052268681206873179417832352145749492457445177728905935969840490080578349556463604652519098818429179094829028070448278681360459277263680513173741645337506098012854437711348900573169332467126801019791503935116802551311358997886069775977803592871917984289444371901419679663414744112672819733840898735116362654633244838478473786658978565126657129418020961790446476144549946836903615950524528982374629604561186287777448838252731691186139355237382191462065024968416186140842805295061730518227161550261433987827245564835622453697966959464863115897097260869884832466659095383949198583232732830497734452873548647132764761809094780373913747373813236150810585157214447239227468355933695647392871818936780409630208172451563510668029599283301948972393514369425989400875223142984858258908345887358633116234077132583420050204624086632667941280855723411333663183813856159261513603266988452462724019046028464433816229841533215409433929535644670467533539614137795886416019820244016494357545125260192556666249932898537665115332547621434982487253519682565227722054944546263806668437846978313005950823162673953814392845525351682307773701533169297123360179669155673717132943131627423696539375452285532604604399756506573858571452414433530327252856105222209036016142352209822881630385263049915865827755083323149411128979942474416051511684782101817767562925224945464689487801830719592017420596570008497916314005344142900624961750635266523120615189290322069993415484006087244200344098311247419169671756194435772571446871752216778574537663209115320849788391814623050303500397602743578214802312375119300454543014183800289879923094300092542367369581767968748606758789496736034645262224830026259443612660842419885839509823546727487392514365371673908390848682205308986760958543499530824592405887860265085499750676397907960767384109737472014968880313187563986250151787506005997816970965268756368464457161582433021180058660252579631984235604453882559432193312482960399090458994073530193273878071601388519159553934906115854622135140934851953329755540431074102104827962839699728322630322292813551696261646688218794352348984295199817333372543986317855088616973850082943105774278905957790925949140677820287967528310861600126555039490403804184889208690343081452063752799323816143250761323967422982179340806834090981171810816136338559845639619881589167496735538839138644834737823831330675076291998219204257727780637108206543564888591254676551620872602847631883562350468551741458023295084554226459574966186602407566426098308553870026320953741220015659591236371798767451546449406341848101760829456938092495978165769501605983876024096835449212270315096672264592697157939838530206892923237272822678512059932938973865452184445902743163039546519404759469288472322006686622830439127151603461399190302112016652326341769549824829235711798744838309343562009838971630501629562912886132222615792236376415174974952870679067699096742137124902344469746654079317043626806301007320054861803292949099034265786766637820296268136319628797367254999357695258946600636461564021395182539896657691278034924273879688711305329230049300549689119477054085844543176398012802036018206201088427952900642915794835107326865535303134970416598273914650343496091213639542130551930964862818370744180725454737149677233340017915500954080094825693575182501008613180468379761263305552206272128406566533158396785217318089375355233608466505919462369567084024761716114892597413992032966781998429073352394941670631729738472881751382319516633124959972068975223527682300823558862594760116736434727929500526963080016939996710412256521314459112311281898136171463067200234562313895816134010795971627066057196310228957302369477324234311362523267677387273535346719049742837107316547819681814780926205096629823898461921188533244643953339257867977288827961274244350675459763192107261117093735202413978330310887490481630979580129506104678644443523153581965730526642129821808977884437622860264235600657431373053764533628391901810302361797697449619533282360189711134060991218818977057110121985480001818912621444666281518280562547805690371776971249185078141723785727603514575770343966154812921529200316545467158476293610451721548342064093995792238198161201269874879295605559941616036908632888165910820226456383951342879894335968268933727196116275192933741468241616575763566736525036755882938203019148627836363309087661036691213357325246265409302785991145208484844656516058993069002789730332671906460531487665815216927489395998541064941193487677267846123094568652133337822099750229455204954729388172797819194694573040792399575680392869233169316868850689568021074098161071190175091926445906613739764036018748601036923049982666849940134255328591480859112926144112916703865207283933478166966079464246331079731117799486160335529284107446485497262789166373562544337982685319877490222735648849219067597720517819804684281122785728283670032492001928610864075296171519162354283630758251423712821179406767628623469996519706236168593634302036225794051636065359146608661011880259618499283821449055901866410671674543117699281891961565363344595905615972216757251370269446228081382836958519241819019328287815212329695188251974765315776901651543632647209395443520843694890087347915935017421391963484405718355699725208658113655860839929736035011548416591534255583945559480913060186339518155834004354770083234804275890880335960520361856422353494108194678907344558370311482782747632437850504812997564568246227851059374992411338186966073058361653080056890463863810934561193870244667875277509792193517126080512167890240732887628320639258490422712052426576594661811182028687896386088178047217611522790792772962115335793740911585979116102979214606698708866492075360830492276529462806670087976693107475473835982485681581942706125191853977322168678942283840056048789086055025896538989781930184942833689987404960025731381452567596156651113065394810161710522565810358489309788728718159562370073616955742131414115810134885633483401626800861373895029075129350607320332572303009141167150422210715404642139117274925787425303507910499907848315787314697218447399071265558756791519370318271006855481256029738333864652576997484106987217253543481516678586565409056030743288201884502464328054172829204775183899969217821032692230564141278776444314306625598113585342749322739357271185858822515407329519188110061705880086366729735385641093645014280025317571653599739763632012603717900405532754747005138525385106099820686755793844509190186132513523383929110070741541073929829214406865242395046629381440674992844983245779944687399001206609940351046791865464141192849360002201806827891059874790801609288336658459698312951199347468346482226585905722177334138832662767547328071175235966310523245190300250262323372740989464705580135117216496449636873720899249223650613249042128290386624052483330649740070038805026226847020091875520411853522996508237165565484690287899399277454724025817061452035336676334705642870858163373020927274495600667792822209953913670258006363069115914301846959281454916692371241788389230264127193000656077159383257251391759080967959740801126810635636703616963034492977568879665549583848104105035241615825349721639810235122019682193727722763708961974357566169163279084577944317421148725210726786498496744840546915938300248378642517546221165243656281814271143311846322787957775020880715524196637883442820326725306329018159935539747278961614485524593521274267957171939079632782756748214661026402392046292539153285273603168180426646649438530738546532439590752156332694374916664414307232071336502485217518805948769058202651222424264593350572617599469002436070117857814928906022283475897551667546570146673354488337070294309549617175097751221715737451883361226326276121858354652389530029190056541495328242389514719525666264819982503699612416048540169732336937569143921709657852326726138859551434543775441365101988075266531069335387794435280517797497180173744351054385376685518216246921056859689527633523570948097108067904077362452522243135997865793375624890415654628584537337711241774396810223507709184020989383283384011692894771692390086700749814074366627383750328457169106112762889373732256177992011320513238294275038609838071721728438095116398265417659217653054784634111203758122683636190164912612984333158300027607191168045838797311389701572553192544653336274896798081787960945911124084136363325568412222904663430619768077721710017961006313569476136199530411372795475494219402961458969808563891848322013072114405680808195041501231543063886145610393115532267987329941105291119414200893500526062255329237296293023684349947507180448675987329007487231306909861873247588022541115326575895858070870037700555366022068751943381030162373998213317047979826965811605539129679913203701391068946692022016470878469153401215982279215211679719704941795594412968093539165656172109208707734958676497392635224243370539005555793142011215694594131640932726601579737300629004890787057091134780615145943841054471590037650179106293062620112052599980546763873312433883311577464645638042684737867963903593153213816316198544672543518110357215774186625412917740687449584720629571569732966397057880127953541406574506875835973077778449180497983597449716081859321441471565623701693746469739253512031515418192071637290964369027818022804992134074824703145856163720751761461502337432156251530750522372044381617547832763182867772807625780776497225338676645915978865522138663031966318560450099371612249614727113602271585720027014995339458804852800249131407441358295703816271862554688938858142632398356598842574367292384551048543389955729887027754204567398374748300529540514359023560538012610471457394279275568505027973749260584179709236959075471389087381672889817657296641366553234640019386535370162550930006220689812855737220396405110168347574382838090900673785025204223595859869802154097204977484936649034837317317875642033686544983684810569413368473429932045268315717153983014819346063202424637111816441103062802361561577379150363523106664092401506302209161701842038686867030546540190701168394402788837608394111230719958970333025236332089315880633173671959255062463933697724999395020584091441226248870817374966725459505768376534774704737925236773665299479462472964017313854038818496926813055149296260785551263386613568227745094946028723154137081402691203724182878609136665202851111338661017963424024642708286681505390558136367249568996793018983046157381229171781725245550132736449675659900214654569209837934624236852388213825478473944620736277364254489699031370929974656250559540119680233806875156392163380840962406371759073203178352515959347124782943399065521141483063310900283859207436906387469569302103963496398460461166463859822643408350975457198631672930380408794346355797292020279799939430288690765512512144045398920559802177122029538719090504990293311886534885382281650271995764148712687721317992465990000940254126584729360851435937207882403852761540799071406153838722750469861076284884737638209481516631925737638734925895539154779002558274582953357327889264027586762553699932373318998781785388922471191757727621304168041346389373746152493753813034323237097639018189596292442566434400390665536283947584104790020302208501115119281401695736478805832978078317357717481825440706997113922043419129615686025652601235493224112252206563505900468523927595655889684589577056161000212223537948880120348048595952017180722346208879055608515306208797196005724159420623925696921556188832955426882758783864256925678254554941168122854261985644638451689603108203854218160399409416465682344404083343011210313653821919431707122796140686087991757877110156353838563026101244170729792963142536313394041615149517869569704315381713809596935389803010339921654051053159131597453155009527458892504241826214772237872664580951023135177831077270496175466111602133945546201613100145614749917532088612134485951276533290159964737942604995714526914242048135809856123488054082609429588523119203888933910269007177723747504439687991353484435312775842350362751108578935818873967869402662190566243231515294513275026160598931780871268926385565535580755191997813434376537211188463839171913571960163398543805584801449491741099332259758595268446659426289971509992372805812759751148130683994289490631134803445184229033259185813245464502113326529324372930324136471229444279798408875284741151759005891477706917338155304576488226164421926056750632969337241395041102573357325398613172483028908782540188202005990577716624137285515294812742994394299507320069215552213888482599197019016334441342775054001704265159552679985178888220488525197819221033004596554615180826701291842071542498832790612452287877751221876582730248602920453629001242702561446677413356349159956776326336326789213091729217436539578240396844534084310485391945101934873043365063333174048017313410036928382846675588072096012369537614775962182073221317938955335022548917829646772812243294119780552783578126907364062668604121229278415810853799329969284654571185635363146728363654726288280047429026767761849808629607019245018518623957241753432995310718953698698492118897337604854096384960247013267054114202479414697080826869233392335434040984630728896247787108496031107557247404962272797016514800940723848239624306578475149769947843977572183476033602895573064415074014450424395381085630360215969160522337527955049798996930693465580747812199737629467944224332468415635740457565213217380261719217872775756925359154000898323724646951874917167637496107640612434379506884466578685793073563978396078641928949669685888016402689626589292610939557904000450289242487937910243476345979346842506051130746842946400081598756327711630957316499067532250137728593188673765433267121818889185897730055337787048369767710018259608478522321977302433717565098891122811527030232299709590152167156592333631913909965713229843736123589637775520273820415452438274963315307259198197486958009499840353258532821962063536181760056706491720443091835639850072786932153103995812837562472258078071967550701234694595620581527104599785673933631262363407465048674270664517112349937998577930394470789594283164518898437623674231315208495797798217738991568075128941777772423607089330850104992521922082361323403295281820652809265467005665547557026805440739209044664388081095803137268226285528859196046028894649728206638904406785327410774345483653188979043467485008096946929841198443294697730077383528726765639326284232417702387524955934267039043929715214666945764168241642384513055772674163429858667453371052704696684341529109603822826543680337270923613829484758039346352167120345117355033762551232023455273044465776536188763009396990142080665435275690182625791125828388687678814791623337576523671102545954854765553660403774608104953466844661567868697352633955672170990377761836535970164582815318115999597499803777550297402140476226124892065632513453716625089775939335166464121946785477181908532479072506334333799505589929232778135706014457646514696317260588947294022320956032306050512169614569970522533568756255691940431188902460417412626923151386073621056975135293123812151203443457662162074551367945355748954873175756562526544719252240901073412796759865228351878472952034732306676513177391758915800260218480637665759885564386622525399648859386445704862550169273840490450888501548107909795263317642561293174155510774014119849004812738225055369988045998059392932579956795445669131352510455822624688005402718261852942314154270256296328327954641690314601605304497245164806862294564171795969061275262588081667038331080288746076499172264812866031985157311196642299565918918988250371136006223044897959913574472232478590637365142435667071777230066251536339222755693151444037101085818652848596946960720621656082285226472794674970923902915578798812080736083228683486869842124101345303162758721357708004364666431575167562389423283311729801590352353110866633654756676888538710277452173927639347859600396324266517636335194282369686115611641627550018701335402016162200342289465570145750958072702568024988510940820413823421242530052323222293806300627626214312378651518607946436165880293326138380663932271510524589529760378314921525310723820797826229875640682646182448099097595699384503075766866407601257699302163987507445999654272966271996304003474338946436668690535068591052289811249185775518233592151036036373288953333896168762184538385265768423040131126976156066323915512456527856651243207914210277932231288011498943611987678531351615369427448869836421708465937368642562768587381128938811555932313045926316528980205731178011896846969579473149134602690207380024377085587507092584396202385637829968818303247135952373005405659252310090193292577349670240205599405510865804075316946436194429742660520205961856477896858901317246062931838764936274943605420276279585231992436267649995108920263451553728977956063107221335821172967603139091592416237202245018461380667282073927616977270473402674735933645682418177155121226128685898451252292651437137032355243038893583366569921181070635968171730166552943399834158049896611622623505827862825112326569426145594978388121980071364886253936027575055932526204820741874040370764285995378247500076863435788420831858328479793234953967612686670885877101262476439648998915244819052282125230544917465066337201951437713036633269737806855300667816083699929181909962451080813471615339763806835532902914797423994088659312989856391490919098666588567793414691275081365653144106631768237333807889169300906039197567803787382456094840064317288330478506196303344951741553131493893639215533222552565496981699546486759770181186581369837588820163599466409216853640051236589816604941863351831270163822800762205548753815872861133480744393606760673513120826884643008013742810002352975856959687733093251513278355421454495303382680553406155863207703522358887801830332855524725415071176585892485965143790324905026193066596793777891511504590001943596882142184956396681510623992052513021805977820579090105439314629912787722161587223184867580357493862641122104882875796860408320071288556328121706433933119315138087824739221500642274888802575900497874093118117877027204632854008530623117117123457577940379943986891171389983937920339457579777364812757613890724278889581382031541765242270068812793402081497070549505252012049435062519318749076781592354749157633016802727647909122065890910434505341660212916144885086068712701350225979532905860852917089946337464437323728445471077378937863598499483460747909889639021535526325493268331552238675475715399923803903971948341147859652436593759014992344985402893547513580463417073720362923137386172420714876494592339029807258831636884699097104531236477914084029248901454814841275395815260837112670342566296840968403585392179234870326289577303750725958505990375497983534756916671589987617304471362035150156461896709854242862031073417041535881699273914067802710575240258488958025610065753870872338813789885070134529008908513277619563761575662691890612342171062854579812055943364003345028478375179210610155038467153486537683139320539307887046937927179018256080988002507348156753656826625697410413425002542536385172719878896360886985991146048128459796415834582701484812653778362956797118710343056723182745011326080825180275607000172727925076556758463333643071931003425589317027849903001723686379334782126395477592617721129902067950610768835445349465493329103371905190320904215167891089635096468178653973775580374175431146906855192180157918335678108020472871658312863915389347314560731270573844968676046688622022165725826802516508727568120953166402019528315241565489208236680459395705724221034112062991524955966356385474398182664643718316217282113327206939491781412637286276183152491978753432582815589598497243907943933204452713289749483005823541370525746420169945976160879034681001699597858800779263885014588447232429718738082620015610438426443960244040175729025239262060126479431331377103926750515365478745501495492699821428845549748367153384066635250050193375640897721867105541533335642287786388501573460791929861847501572698705968969705495984699889848891217707090305431673891894471158097574034409432132001861914375199180940670719295139394967431353929288745083038486495216219782900960672790441978172239015713228782350825021310303111653776324055419845059858993807715794447358181641595997083127364233032089006323794863685610611193361453496845637019044846878802684829356899426095835953172722569953255945869348607996648861270154729618810187717313423705126909008705960570092214250007290267994414405236002049553371421258033933057207276776215817357250094584995449230741608203785677641530156808323689231281311008958993411872571096558585300935842284880815734933076152366743238764945981034293826662195531690733430505306471215232779117205468243052068813972374920932871611593508896200603381791664059873511400044613138462680323716133401570006202761884611407069041363958262173587448185102465332213834068700321757671895816999200752472223626448005907812262418119484323365695302107172692154931065109610626331936966959133142578887318689037802420158431343332247442259433180863620615675894136981209178052615053469569853595178749864755290073621971620271879713855427131406627097683204541866864972514965282930029819823608530015731587084436638612381646113491789801889489077277951504675259687915392639200297711165960423617148239318414284301145900887158471785864144015155302781017971796503035519574097108343400360385226684049710677535091802410092930059648038079305553591154794495662543325282242579542065508247730348102417638078202498342331434818072165886433393694287735483950445707036886625391800704612844241630902652983094353448718171990472890645258402212390592298311547134357492020079421517879576701801676684026311846900537621724914461798786133572495170303061555666461706993998612535816965870187853598187391814508082963836918158231045548280097926415498424865042512988790747391856138718404597747064230383830031754066422809058730052302740950873744435811149318916754174379983047920739317453264186152277225487357665690410226682222952468228808190691779726092276898085542953544077620196521399203099636379067006618646322668772285381719259191776859214344354485300180498175555436231327682807068303173070275242914759325678772120740341634107407033342698379949461342054392341927722091720859940373550494702678168943197842165116514323167398011778416930942931730791655086846522352654518971863452351465197636881846807924985578563435329552780693444438107014506558372716681097274414885378507414731975912224102470877947531681786485958296634839924177926062218348216643373114819228856291693468827439787481530277748128218687713788209159885555685084736019107762783779057738845126353749175210538811935477566805241707175137572959261611318426117977237036804856412642560526046660251240682602978780797221329704674414084880478460107487487251416421493063040364272927671252826845981967483160427189430857531118694679343141446575854134962515908739994409241693382142663172960297550876152726914595552548889497371712356397390533022374837087603090781630725796948460129042148360646238363127908702569876995002356558690563572690635970519576775442851245151094130682601362151271019250089172275720146477090713722530627774180245753322758890333851070292024304932892192307527342428866412749943118959686292177061612068007102504561768835043145190010857796883444228411457970342111962746126493963043261279825943654013837136173550699756217107575264593358112964821631267747832388568448750904952102987036811048346507786774874438932678219399219402365293500665828644949422944834232245126771314408227795484647293627170521568736118633346067877927186670543657541717054852467078176353813503814037516338817538778814721950748025370405013306771089675287867942514922403291852947643978628126328131448775841665487638116776099618299533035363002624330955652164078380073801514104915454230977198668586121597532205518328835648643478847552256400778805344051553046311086688116055253059850374227065294876706761617886136063352523505250899036394244787020969939205421915931786345987801444004619402878748340633069318324072189564151457871992399454987208603637428957944959173209122667555942141920532733053872689029864492053881620963239036132559291278852582420975521428244252148360046092987080292012180829407803399035596774224797531593750662845857200978680018957603976546289832064777364779833498264788638916430662696225679473711183825738596896634311999642713479837085449060363411051524339871524558163283567539902395389728673456316005628128435594288037669874820229793469839806375896058127605768181585832216085308381075987137178255322123009556689752645374729127757153394439598778407484648947934284738062867309866368888588080048039280290164630921148371128538655952075501409077720732599323095104225781781858321417013715997850947430635341418222564545178110279468825385230234568536343425970427812016127800508613103014757208386887873613010395618073336745579411729337417339389244640056041694492621108392953187188911324029730343693116455364509528204761646122784625693524688696867694377130616328093681185279837389987718025197710355908315594316426701081625639531254726490023230522472099221827432950204983903001677121980508719605543807077490805613133061212639580850880852638655998069922060716465545156953856121268012927798632298718243685150396074879002979306893372815575478862600770452277368331217133197045601881486734424376223688534716476464250558324293304622723606545379919544035262447890677669308098563791593256815231636461588806366375047230714100323014589302761358071876544901917533903534001683282709566056041809328315170460850782053481113022156483457799865997995474042661062735666307009091471103909194351018857915906496626027506987290181433591759433748952723197496963213450758333877581567540044887065277257223503664440864781637179468485669052243808661081094206890479631316176556708800884618325352484283973140472735763357301603641303595994195564340437151639358018701299774353673718447201768770143502777260212299672025309333393750010553748230363795736213563972755321098951990747073857856620899021320679660170332770847128256209502870080936139982420304780591790387562186738467991712129659214374158165676596391933715962850368265027286988904832970766599467797187054322702072237159763377242549266153255531861793961097595205390224483624020154086989542438312633667133237201755229622630509620312754760497506886653858191782659090151346561827311511057044497499907369489895562438128842068917012804637462979658128920179647144258451436311871116420229324485910747869559405277656466989346047441584591915978706955217367576106546162617578603213786495304558999083693883780188757296681615623413368659798936979933855842729127358153458070973995782393563108984625165521244174937842095788228082792191515181857095209363104133928682542874762653510513398150048864414286261115263072367035726585577034376523832707776100513792090474796059844852964958985451179827953227320149251407388532083007899635528406659982207145441788942717811638924958765570770003633996316933350689177215276040988960560811761354540288169536543758505224938183163976112276347529249923876907611802704278186162395682788266190796612652842233488701135263099654612091012443000450312863621557352247567981763459810786434273465391741500432565962447365721045733790135827477298468988918307307331931439475604407775335295790130604621138634873309719597489761492856518519230977937170723726182569694742698361141047959143704031421593007846911490584219913757043082155314207498031284214060825604595755605421265545698409431836883992501894386868366302131924302735960017421767777714444348574621987848392332275384713357022040240083598021505396138829865737546588538270185722527056018340069654477625955931106427203310030069039804207224535591155925467785837398781417788300204693227589542342273047208034818042822280191591386258398047949442147251741127665947312488956542579213725894457352769622495856193868615566446121532814583283063833044166680787112020335456992603006750544864759581595651519158763055003790707264182251342229322642534661770434203804276917770133076433150617071950706800947082689000366800242621640018961905955188250112778360064672731927635913765576156423563101690103796529507353698842588352301306820578933684755199332897316799350371260390236820797133916242089243025226457717011555191712214392491216077501642191508169601554750709774199604247512970678267557785846007702288741496205546583826871378061772113775140276982964029987637288358698778594588231384607465223767029067052658808984769006039188777893260252980203557529355635860406135064524822577700796674578393585333023096899902391958470617973025025247758522525100832774065411947324379706396862238920832804372772613040965891149109014751684191243734960280775058714230324369794456743509142961138254909079291987364358545415527186955899354463317109896527167091365141822344172983153287603359628989639144198693180276537208167674268467882202565350254929093880130404607379605576764705378608055609940887959790786058753834729192661271614389801611603648462641454547167904574254535193864004419567579993526068666843409786763514257057582951911187046018648890112572153739550170971724903384027271887198763106456454204683626746580671701875575733648672078623370838907775431354845116525302480144880753700221000303380392202951604922235606255052949144016400452133447873333437872317559356646544435815449358842581150964965655964614255669785332409032476043338247360911830127270005539310756679915843307947607128091137036572145940501447154779935601223881821995150083115200328477353963625475992507212757771819597441958399937523871890988693790422643654922828386640209879958368785483025438583422203232293797815713744682222095775776589968109838129841193109697603490727089261461502562746135031723219686587208106385648567315536849699880631822227543372281168480030779721458529387236574461415768171027637404124116872094165599366567797903345654328329048999565409514358131473257076164816691345513865778130544551226400727688445599903062021293714078697508949266534398357754811582394879356040742276465915199205475738094603998810922983019654133175295110458821588865568003377629495601841473934700366515272569546706766687465211788005893226812313272976537631822314986677496967247275106719461001235496160707595575685105876983649080119164395241264522932426093023677316687134554168019537795182441363313587240157002095946717529669075547393695261530698825990730282779098814973425764348646712712825920099505017917585047266562474348470527444173688596187642901075061876621822424449360337260033371490838464823564825058109816131934338119837195936857367566813977342608753068605887797931331190997897097400856984073679309890056926586675678357237386792408467747551443059750048883269148907852112350903936279627425595569293902013503184600544391790993816241288688343889977022275013701727316441845599388019811125778686558586642605800200742574140240994094929543476755297973480805218984381651331075705919846144828055926806130875349265875717924280181379802885178508337593276821067844424035576565935063693283377897433633838292866299982931209084841330775286660488759215284148418312419682308169104629285332993453500592975744631642772173786055930126514051607953892309287546611152947745348646790372286282952150524412391008243409654008650665800318925350140310401706308805216181457212420688439056446533715120466522910183479958575778211768659098688795571527539442971070419900801665406376099032973101797657104781916565339204938516525862290916323899415356107236407570833372896772562553103819457646946443721618656511006757301228268392821123517239824754726484378695570733217579877049137618614065908232930689884836897231912213620018932090514039793341166240207109743864764909319461421297848823283823049978187923678689578571816425175177496113583011373439923064462569447425796394180084434232826625448996285764715394599697466642505720519254589250246420970322974847796830911621645570522873775077139060360882377355525384140475210595915916683664423900519650226560900117398904849918244240704173487468532009868395564531124927202955034589374075935126579691751915430831566982847980235007071402373075719559177177082140043571362306124813817270940285794978297112776463438509536803725516866019970453083410199273913256942657129378253984521777533138346634423429847598632031200475109653198629927267920155214869416746058865228149847948084765777009551094584818743727969548469630401175815576014125396840020918470618183805607716430071311353349435896099380040203119116848593162111267979919064620024770115505893894378832377531283624362562483466471884941703782997845041273449199955286619952127696044153021987208857831162234444340162264161354814064462445494321596549995191113825157026679861614707589706773430866694178907136170328687930692872368483214402504221476663278873058727890802946613380428981127231534781421228141578987311782722453954066898098718345322786511073446748870983160232986996438532944345388923818850674162705020150434461178100004429763870253964355648049552496566065757728989874275718887084850593869604829693606075058216866656861663708443960645071505852187122499289525153184364396148943764342340324395454631720834045125143216509807905202898842234587294397123102824918526359058638845754423231885133628779746714374465051931947637274989530898397394152194214757910981870810217995757218116220288981305131580263423597541768820787710354266689840477402661626926953667662918765481359292887431457301731197260005383791055075360998309420036764439504099941570321991855932443204234893774563531421537144482022670266252438711162397035934090749134437760162268070147690874031838115114968159213848184188559511275231063106746522015906074535386401876151686212043774762993234943551738575012480988666341171720094471445820907105044879273893292733227435812252785853028697843220491990869775702019729043618048484332829500097791358357118092791161916000537287102874833428390110449469290327308349966869057061932268677693415285170021086778044926019924966424397901209317608346183823472947755989810871862672422842546927508442642371345658217669378556522187815589447157013015627343505525860172870415141778351576219993149058889150981826801028006177964657448783261897364446314257685701120979874218358259790179032195150268470083441556325987144407322673323526653469734620929635082511667832516702359757479074497563862228860243130018856483913364635240394496303088412391259909458526649149478019169859170159143992856369991964275116764009360837091751930035207713020748347508467610045315420194421509288505794742926985718655975348554939580136044565521110244297114611797994711745667755476928242299566239025908919447031888422435791353325729564247101805046650324993304834663956058321517766347899514758634886401995870924257669394155380112139478524615567079343961010622227797552857060125847580595675135517008214370749214317036240359766329486638517415908604116334009188761654935625384369097299481234160948729346763413378301598089992709772517727644060052837135383797552735265458074584646824766583725384966625576294139671546123857953490806315079350195937319789225980319223962840734083650284373969591698625746451742013337260816505785444951319497189577686692967362747369340270390451803667801647049040354829554275225950663449400564069080162606347336920986363596590236479515586995118634405761550462160606421777295320841008549108535651844526949018416503176503142328402312393103670595159240616069551537455551373103321000167775009162245144024567635030464883559592416932874473589900285892327340925812740197212885922578749660776017951481436277607740197165567479089639831330454683505996251456061350338156650657327383631368711838528306208847781416770098154305957171777260244383402717433361033369479040550117697014727625378780345258945459024121555405310484441472984016107198882718063029320555690814082985728726960548741033043514671215614483913568322042573542697233029510494297791128058783120453943329940637271740703705535099814777740621345558010017362684871271945634559351212210484526776237860404201844146729645610409558941031761300561497500582867639115290589206348845921292839084617043792186473047845919720587536175103654120463145297662578766297805806764359604201828053400566276258752296771965242018887025916599651176382545248170043769229982846698808298526162469681987749060472169521449970551431971583015160409045994455427206349160575178611064796541275273648239436928991211893670588958050548951247819909941321023411934039173117164794152378242954762118740360785752584600162703223064579544522768675358564395882973601900624398700800852277701573826692475016343425799983446276929295367390990806878516162873901930406530947378908054539078717898825695373456905105418416740371723813344421364113194617962216717959646926587246122811737325505982265086004614448304090397072572970843011180109521025475281629339949244815730740507857326441272137770761589701255435098782138825384830899467013893232462882658112471140520388069362344946999982100660439061522752417527323964737382257630629636249371364970745148953453432508235880107663660287473446820324521196184670765216223467280091515125290805915111813480875550671378979427219340398546719552509301666800571840392199713800570927555699257913888206105669339563411096819017582807048141581899875592775605298737945934437566312778177598643096322059758132521098784644144897310920548319403780944617908053959940450601099711114295744559017712567790240218892361434850396950478719818131045621428859307787695132260734292328508677273926348822950913838845738128805374932597651063461014348611142238621288754439536111792277760708776296615821431611722065795519110194591494149112179996395038410381097871093697492655175955953274212846480950942346548255536526076949089715339454277997759987354225080142386161981138620627894127309680195536768709884191726600337715638687358896167189315366996250865969414804594587103354053102176116610445219050771622946710647639367662612771229201214451521993640404058585853657596095742573909854600914429917330327805472978304382382876901096906339557079257291412198481061194292050029007821719859580469170497822555224326179390243174569873879092616783146799516250524250388523017659774874700521072808090152440692723870963244683628295149560965809602693445586160116910116444710529955553666437437573424472057081574628784395477529901468972763528391725432086155973862309603422462785306458271704829393471921539143878527992732625107158571133571632069229904632758537820378632506815494736059481519408704806011171138025320638649233537528650702894823244236535172812474069370580502817369519958668484508899410072397377264660100404965349203486655120367041031381522693898928510146059697395849945751411853671031981926806014827209725578986509377456880930404716262033559285215446029686835921693641183401574342990429835546021239745345038112567215515278879202650320651506858118605123842049782504630530605412590848989371307147073964048486522666081458864872543254458990828840632820758538090778798783259625129122931722025475398664629501769148532898929885005408155593315555881516698924497903004064952174884150523696415555056676400208182100241731896937050541071434849229979519842309670828289520753804461256397734453735090217953771826770763247387273347895805829589638898429702729380529837499726329500307896941825629594226484175784292935458787294758557519949906620639789682812221527409024405031138517745228568771205612745591265739023655336216921065198498339467866350629579034390932649105994099778162092588469199027402824782389699491800878025913635532027311436802859611609706161740011809166890772741837158300876271361397561353699913547123611712987888807048202543607389056421888501762845449165989370668896953129438743194713675287091465022379112203401424146263338074869683014292178286429112560249976180848549637594593766115462469342357423415084877349455996453150389715412280116582243019004848491988775755375379551884607499418538886324667766619020761694055128888722137292610417309584067518062051079503398475687813726768938655983405372723432845333272950427453135605014447356837111624325999294506469788009537149652599520338441358430287061939569481668015296059010811053568351843858730974210901379703888356881314282136655209971669537442201098167486111595355058439341162070239898137939620281926862322084864111830064846360406970173036109398622799494754279140556636202701364041996028721530550268356652616955471925550117694742762056134248956151322421105911795286143210252887184591512254989117453218771197396170471057630492384780852841764277064947834544335411794383845220560652544131807894520622714268769945500188893793033491209169336470811122908860968225027524209303427747002974932011266119249639382464531380511547690519154162695892727366468028453578702535425043243936183490431746791345972186775351462342934597849118095924514238425850122694477428411414410724076139511559985261353455056186772432551775300437543682430174387139551267441772902160612178783234131011504373565529901172422919346046877580594308902921997471645037787012884965515305575794033904906980384150674184777824229110191748464963993300824068805647493445816891650383783967760327571367102850856703874060830858215247840268912741038024885925488234670874166500502035985025540220801259377006441203679919259298516523673184901551209155599510178421813888590943820900659487848305810673805724014804225775552323358114419951722149226424331158815501196321795903976733928791044198678202663196771703939124013148667644858337416797420607081008574823904380672817512236338107907880519112606910545059340014401029112348022077054904591738583476335915099597527204086504609930397324283191419417033444052469713376452484641700753740599654406930734763091259347652525742823240826018220846011561010137000234797649427267365139472488063141005133695163130211825194833041521245739216539997221076406088307885396545348918783937433837355302755553180846885116056250390338407153253146775205614139096574157180007774798362183562615017549500393599111570663663148314059903771937376578613984218674164780813480544643003049545868337638089588325356771029374423744968751406588694916887735105693652597613872994713638656114500261195991552921550324512755988990181237011774930402279262553456198921868831264460317367658578897587323886749213495168439820879430806742076161716963354666028947253162446624040352612436235981628266420700399904141775902149985228826095533594694764476677181438234576995775544946480506579274392226384175085128769980547568980446932639866610441615647627254401188970929144988374753125048790579901311798427486103355158720134249532236555266117242666134632474069244059726502125942670553878987991728133467820400569888564895506050242418036437350358440389568810314378796315343895926698424254620174444343872677138423972066575020633908305052483795414524934209806867027674515101034580180228659486695489410018041113191036130257116829396054111476566201604356206931710335695353951075639161955667349267285004096837746978393233837933681476794504865452314622695200703341978813230200801197362402572606233334280702881415040389987073477829593584132465511536119174677560256613145789554407964328291031493034081280655545851643768044808261004816189426907655514267895554694322886044870158590889418769826744289534349626903883752025305542626820644003849398457455873208701452541227308143184086609446473654754241871520186624491860644077759132125082152589581254420607421555150794949648901208928174346743092440013509959406992795565596808758307850488432332360593770507858729811109004387140937439608625730446265779421728964591924514836899815840732555625641163094572018814289489873090622425140663103720913503461092435799763072204467840022981522998421499674916956852963191941466464023111538395090818207492837969938029166818538857439693616281014820284339382705080207789609223801871859479903474601993864171889659660819786265438023095373816923270652018141083059678466842212356003258640854455922962390520391344552058194532999124460870719110184053852155277769592588835515930194713251119589761957724717612598773210976399463007514804474230500657135640706380954488085042723996860339353805558420828370755831986929299302142599093556450632651923992025876383713865543288073397024557227439367648317100057581656695717255998540428722277118085124198960827565076083539191555313911650183308488200571650480492062029867922901405521012093387562281726137550436661842240908464384838281533295051562284219120630290001208227006753847434131309393174957939253560742253891041372471677627701712556164008265957955230676899146072689934035694253215075082331502909230136060812597006776219945758466959086279075156707354955950452110129887071868213082548617417744887512399519062306339485380847287823503682224113167552393196257196680580839658059293789376937248721000809806967099607231847964074938658817499914045112572183250008415403300839280934270932075946209219060204213927669309482323932134454767000758142958072538843406523094223118026598680697603320485760114520442735583467392138191317831779249174569674991600968751475936677603620677274199106581552261795770511136279368911214372269984925746734153098805240383386802104321606094289663697136502949144516152763549385738612205694605220304870041339172954201690748470146700481595870020884479813338166477540043660200199573269498274905196021327192435789876767753616567208852942589513318041777687311574484456740022392723867151206588734046925150323738017917047872123642053965208183526941465360077271839494729815888989389380563088231033476863474315274848469557330676713465256280899786764427945867309129717578027934335211112903316850407187739233302161220443806346938143676793200188103098351610896861080148666523768805718686731453831861692550882113113753871959036309980494535910349551934587563065255291154978530180219749236047582092866636928643551245839769262509471871024809539979508876178544787562003165984744910408099160077201179546879813972574404202490090299521539912918694851713016821971816361070621720586444569501471255781054470484692899463747370032839823693694598810725459244487403212107033927127001539817299290049751289632762156874057637012140589432210064997684016201271398160035105411474477380848604040404835839554989051454255350910918263155740107907787881229455700043256163542710609739807444068516091571010348547667588989865804768770010325508086401707572606020438420274231343925239492422646865044502950681040442241650905843945671501244264629936710331485428866053052022823505040684945067272376619864904747860024495602508822164645127939540472582574138404508011489663951567095088141074556706964627471686074027264189497509100738027016661985997510872083927584938074121758368698136454311748852473457708518342646103515406026423781856258363386335579447000822658636691179591024550829648485741679717366807665353722315233473956109916141093803522158062730463110532127260226713135930000628441250520782707495774339905739192243639768727203719981548604468820150951152673079866203222917801337470323366309429010972644065451719158591218622958939104219382952527929044366673722995241111412202848597898917198964637090862798519439540964050530736888576301985450959665921684906124282803343632473379806969183935412759562110773245213848759727623215203432229089835613677395937635403204666456451884480058783311629858765274642183620630374611763137762894973118741453687844783391023012642875632105335014378923735986403405113319523458142982023056578728159332354851110249803084733976234939584986744838535970342400190512747715236568676920432960528298798210651085546991043835653552396452455146685621458032831638809647870928221648582479466027453211685005961417052206600403146534377459741566587541144758970152902418264587392700930733411575816137238585241285084219354453858067103049675143545993571086016584682238591252955995629823004460158706362211070440004359181534656909706988268577147300772440953144879683083698595262691318514306440439024212213974625304478195121851760577600774585957414949528503578081571204823445618577572381453698539475467676551327407791154981088962502937890010458419455899719305109179730213137010988533177882922360606879622866031045448205053443079759803870713260943911164283237728493485015389650157457902605494042072958194220558976748741797331899181431449691100690522103557907227147710136820515811884224620266068729841988743654966747044184052864972285046765673130992608784821997685438652569411143125692954046905775739085246479888326905216166295490690279178502013962108997037551998828587543241046589751453537256855688718640641075518968311877076142345178848919830229443381130139983308937134960097624485146141758876663312479020792153955880726718045331540692464270084891238295800919219142623576704104575108527984923323658150343461548000106379722040628732922119927282090877393534898105141121993482495710234873185474000017150991022912523861223179504617571956066129791247701812635819679983297221684746757117698013957260627788489735304966188417694642966243554829033894430106366256169813529408684359499296891447155091306303230252553728458433822646906676024271324126886215247763304452295430263288892028745772488113490924926945945332209380688129214709313215569385944139279867702641842306700083897751621114226817775184999675658784452881620032478318119551012580727082978306465415230807147167856605242692272561741678464729535055206120226419266739423970141427264804792652355988233613883596646588486768918879791058886429304504779472701893905501499339391825512099109818045637934498569619908642735567402722092630784366683977162529344489212178685118857450527138715322095101723279766543705610380734415504394964184791834349171814021710413660475736845560199573161948530067659887431073099517114711848147369018979251988640430449069871808711542329841206580665563764895635038360686753188802462567792316839027926653074661816444494822263682883981437197777287412109814904334314938309015353982058475699466990786365102427009736844248721356903846693470941160415185398892178253950521782468835264099453032889474184219060427130663646994333527517007466741974613411455525585659021265974179159916014211144763766202095344120740587481726859686494683234110003721830455665840494129160648735504342544004049882370083095109002386831575156855239595617430243798226669019097196378891320738251810192840637308357124135520371499872905857695887146206414772535891052839567681157256591379809208770501750986708060060951326214039551759229548940686219013005478456789554276970464401250766463824805660606965354312895084721173701423520276170616268881964719239395852317253416719252451051604765278035593848033122784140194462421038404927265727437771344216719279305647987882307859255154454376912203927049657911824279375388725509930187483784913489084294448699341710559881419401363859243139697847378141359249905797912929271431415710092868464343580385681078419729794118918059405366818522704391505453246403975489164475864830072599190919665234260539420708715569221647615006524151661894107012050910175439364153570646262943133611536501967211177730030064999215198433681639038932007543489260099066173812309025242392523660284032225378044085697753783621245627728078486365514675116675212882659980252339390515908606859008877910272185335666125256040308326315217534665221541793974998513596522842700057789019525877276423940315417631849106558194068663407261774993430013289677823431382149166602379546433745015667182954530530220862857672648626056784184790124965703182385916373999960283677823627907060661414425148563311061410364672259933314181799524349740637114460149016162100797949860928374005985824682767869302691399390175607399952951963389364353258225982233644845445188482295331495387408753598804033172429001037957851159322042639103977598465251312643222369436585805163788775209522829693268299022271653068985015833850259886989245049773050055840712047482799493686654128761015286491530706834260762388811797439375824596685533256887473554963677361424792838431240557505977140829123054997494363697238409630811766676661411910660900017294650760858377431045979666571176502316976368197907909768984723881933074909318596352557356002809755139253950529428629988097609797759415690577135042882426985322415140301639158675993843118393542188882903791268582184012962731069129832093332610064060608169102426710232307403727148901174136531761135962718904775953347322617242665198325420306464605051401080803329157768478862377857789115342451392259901242126499176108411122667944555485859892949962412752288523182682686763155049123480424060429975023298152556346990012436261727744754022927220733039678816338362886349312801052700849980519110794127793844209935718604043227274502779278699704531846469131062220738626578381479402580937716116825707061831846050052813400674621218746746279358147941211425793192407872147753577743533594305078516279520953098005779758748268032984007287101755455667592382621514693811943005782391796647845719027695198776948701677034792896144515080803937174111307806600073192593294123101438053554590443753471644945849452845155113244971192154677137993666279764866621510815410557575883691322371147557411408655802498641263805669792060512855154329994761723992888223653216176530944237384800116612515411556596332459394750231428681251775995700851021092095456940912844754007629340005776310376001692429813112179573695871158616733744885401106932270744239166603875374514799031653928553113372603205403564728588396208776250437774003509317597218729871708283010460989941982196669247325003042469772611903158090022537568936053968900685669696618295326163928684730606150950746743242795562648263698766860542005288147660796244720440153497550272532923189469568744959570261119689884085131245081034392791962373361552378587297122174837991842247304611989930497418379207554292071401949461698945326887679559424425223145333132791645229219751307897590452046003830391051602340927463114348636337854756151489535359662023227127832769676670380096747365867776230891783933339855074953617673684217709352449786654444752349043359144862281976503434039917567149762010959847901708869657172554143234097130198829409358478554111125095501439650747355744368219892391062448600075321656372623164895998267151121192789899179000507204663753786043980147261938319841116177264502726288798478703465117214540366363181280570543968763540483821146032984174475896678188041231764000119650305283691104888052095668735890385400223018662194521835492653242577146423491459162251364865302757371760420851842069850988334736924819060812483935550295932646977575396882738442690392872341500732270217802592661935957955180737634413651713591448494289315849343350917053125676723084665089149228634590292745215542720183912302575363654908779532994032570061507027232660330963293811501485660488952470762302211631389899869547914199662096115984696129192854604463036741854885133480232720521836114564183643733185648965818280566027201359882124245714049278953196562467936266977616678034984900972534713596767458702988528602103397870411970438694895435642454737252012898936800205102128455587155578082298576112660482007078823829664074823540980698128784155951912368466141524166741884705464495164429018173271532698233322007543442347620465194744728984204322823064776927511139319606423959804129378217276301469666711789566910021577657853621322528360976907908466096200109381468285116294067813783843204176988158893259621142784715079308314340679312745733901538959300076797567914391875587554240522572295588324730705702329068076959602500014526735803010693928204711985090975681297930552467340234533759626671424005667566148694960357617681676654024375340816714625863465838300798054634809207846273016056946049222375678463524035714077391011998396888394237745653355694469649874006685670203203643943442880783947685702208343563145374740622810223525285711365407807833515957495922055670737771734640923968896307389178411858562565677413984387499348302070844020640217329127281946888158412435957695603187874750593570241431305320742429299369135928050692673597923161436596554392694539629776543187932491807745836026432156252732276427769551276507408697978906390706421887556797432418010608379766349719364456377871358083459912623289460461668879153984126897140710004873821814888930883998890550893146213849682749953895611958294295102167048788146093603244281624051799356875690967558719250853409771761611031540621520201353544239501109745121569727605334399613214091378297202690396856061526589601802833554792661141657423085905362423075590920734879367340383936672656486105137881825028094359182803209955488450535553010727971729742775204553668303689046933484228388043250100921091939951306843785644792952299049504499072845529258009726134850150413121856901760860180596390705554148650429371157922140687481311379500217360429184055602264029721195177903346573481675882709567349609341585436732816315333378031446974779045157195437761438524825635528717625300159170985794848696761335207606221399569762420811392459342211322971757499596413611869845976008405143237351717880878512856364075597049576240157168400284289353877958711524935972771938195534723529713842400206813875714520860520884347374997700214135316115476503710022654406410524860038802671018241705600228483754937629454265005803162675298016934550063666253638045627392721101365064502310505114775781995596724724924718297837250026931305678211966712384565084471626295959086461595942191962016998594142751965391339036546818923294127223396109187382694722344829226894312621736521460708915112634041416379302847879696610492286042462641834917196036473706519054308175775504657512169080010782589773590669482735102262439734416916889069864021724654898978088004288440399248259547718835212550201170691663821547969650319361060825022458241143668600209132175657490929695098225354302627987747831460544093432667893359675841881958089797523937783760887602659153340033203115178698897153707286586371152733121049508708055542772782729303659393241959412582056099456971668243555218491624577476273961223502512719723040193764274684422036940625575172483012590302699825870270353123471432951494226445838405386798129484969559996240290010642313870038183826682589844983460692220807712856496496780866660350542573494448800007623913949487334028354123277596431980665156769299464907396228075752484917700523465028107844655870096694952749685714124390802609675640321399157298059637022797837784689463644369657135964943928888267454405151531482275281905578651561149023702985479826185604748285378849549429540443564817127664687345798047070752402364298191406922888270379052116348317455670673291408130656143056844319881877847337535683991109942730299209389089485728733979849973212280901755213507269354227538051133005332658438652002609885627747574309232494092795804112396794397799552213732595801846408502807239820459058498421366469072537041027198161731203001469331444563994241916081742956594441252322885305882998799361665584927283900594572887346698885704020828515058192669859589917606626384777079400163987936440208141679467890538392881460159270392527642663167637473805907951562441830779304221952946490160976893205263318474508491676971714487084351790163533292780681845214566747893375505290835829546312779837358461961970620924723333232542704322781134502996619341193281876257647924011705996266321077705411345311491486317106172361064355799437129817785475752948510472399098454190296563570467112399233941425544733194802570799522318897093733975625168047699805511801899671616277745338483775822941138947345118452764451011018775990673940394286539900275128545536277951797146843465235770892412561931583002972917638250168440726390269042954445123834596154850224093958804439003132746069702162010221521373550958657678978274136517947511388128379384905314499134637661523247010348202992682823812381499168430932400863720161967797439684471003805991695169618330514776272257547787298837634925249230999821483451011323890402099513859716235242182038670052647062410875719459855694137443467267863649817992934958366441186515488184666109496558732170377373508534706405232460407895043131486489206828984979306254292109641101660990476330768717096818251555442773372245219172561368766475598363718655102558792992388766201927292974269258859235355234103785776050926408025091187838998353342284068359457043123604256722923070757650418360322689863716157412212351170253149838205190368576832261533596493856329221108833168810641953554549127478253623267756568086263410243274860692131510723109059651947264680208042919205558649860418640246723576065907367196603245863059352802310915539911714628743606741295551526423483274624709424879674779985923454213122793839502202745620884907154378703547544928738547973531190532943156032370184406435906289347550409690455656531164452592896524530928702947283313969322500548047908648959572285571602710833586628715538724916493593892929299931412333511815586212745410058686165891853668613905228198121442312263848626088280588257532677748800558134294013846759234890923081706967426824643116041440094931201923902548517310204430289361462237142807794451357218393420566776612546949151947205122741692244212941402337160276623266756662427753128528412302136632861089678860509769193545531762381789922262055795502970671849334472984892007805307175589099059990474535617896656115516868083257693864471981330764119100961584192865433653250247513159963387478264794340968746453689742486043975585764367575073753236747003105426343628042799619184030602623541842267337939176097128345968461379371958357409323957398301338192336175196481821821999126500493024213041383316587103310121561032082040954612505848588385293969555106226373143704987316342995076192279713063372239740045561393325870924292800921907528649072106695844121552494446095972662502472070192368826513674151262994963313959352926520381484043746560758039540558041275315522921687427336613548260104436063689756049378113112116048499839274617991051613799473587987336010870810821868553979525974186043639971178022174791110739151044941154301841169453251860928963816596689923237556073859543961896252114003837174033852363485788079831889697254316482429550983977061193310892310760694224538664651527531431019608803541285922165602863905129863596610739362049376437203984447465275485933060056802475189419731120486007894143182836169806294716457587779831158789972494821823118574565687634501273085041406889930223219994336468420561624251390666938531475708346203434779865989604347969617176079859905780509910782591765124759229851862438555216043174593927244136159748820046943450507651951209337099783281982355146872253594437320415821185705111831236900989868256700287485964591513994745886767472269770109098876158823317097173045619731246235498671426364598504754005872705825790456563396757931393680863089045936018751006668505817938561071787592476580911134184164540468903417315567028721449113483641962530105765676901076671435108922375769496733041111173479803156469043038547149618538491394898139074770582359734297327949949651439777324172381021598491114080114574916889745070828435679738868464172668581843755648788804743751475127097401785602448192117186882295447829844023700172531115985079554831980464441904197320875474965867148962872053006776391300656129602016007108655975184484649512085103844657193713949916364350464476025985071977246929197602675123213293177214550793145655607862975213860463827228364001003413533203738075131725805884448781719568543495647768383469442570191943247756373975526194819550880356595936726533242337173005547559653532596197129977836077617221707833273446586373534635200376969897068555087283507253473685556274674264997430655839423206672057253943223243525865136108967505655871521721669877082900965465322684510890530316253226492072123863637315212233343814184566582834594778723461741309143383630084445274913251039439354503710282181952017369385126390301540556268607919044467541350046921869293075483426972367990506342247500175092068708097585421167867474249083688109543053845663048683191727981658375716009272701952676349656506254359772768358497308856960603795111296671036192291081028974083265448010017292588792888237204721010970634395292946806581512513079225444852831429280281761499069360881769303089505619343384047099775796248777946447890878058210116353317711170655886631144310594938895703768514785086142277819403599783860957583286051049740709799238030351574678857748960765571705300403796853339888587832952563474657489144384452679635308658965709099653516153755434370294818853193838758224660539602621490085104567336537348856104840756973161796187046882808644407215178513533299779214581853665141279406425964588260306764413175475566345002226132579281170273457012543662548513220630690437216641715854978742099325593231597213996748670525956584162280088080648470696446850604649051347586141385609404397554841294859662920523631339967365881064952931349754224215080116385332731020349902605015944083012705290528242121406601157345526843824986901351968169686486438608498474316860433587500203696534972802727505735887381910635481463596148700917980300849765808308479003680223417994258458189133671303892157447911183211921202415367289190770979558574081193534355291473472085359698367538728751617852741772410511475817730807018334262910758005025571114548581714925178306088268365222915992776350146296374771475880182022646217369136196525095419970481205548831108391232152245852797189132206956182693438692771187037220688139392840309245829353759970636907302914419230708786815779728473328590420003522327025151728814277866700697120160938856215109820437715507702028392255626128717563967908009295057737012671717697702454576085517807907078177601473696714009586128516810544964788626689759964684431006787638244497006397625010051440196419109522206326660167829117194236983614872260422754016750648410456760667035915286676467492521415573992693578882982593448031627242088679728498501293723966784656111087536219032708988565423592462944266756796457940196669346857594614620751945312643002430839728191184115805179861610336934089756384751970926193870644364285120611034625389800984978973662836426851619063640420939648427046652573287903236721184606010670984033332857555113564977927419607607738743676919988279879786961821505705072671596525426875945615385038142638474745099688977959674851431533281393954270268968844321897797163195872870458918051035666936249789376948393095172740592606102186119676965018065268273766370251480418876023910073072881290485292436931811935983321834674960490549792052306390194999372978678213664346980946927383630584723900028569104063353451719898270192558527391074559198699540658800006840577738836079276731174780580092059386925907887034858249944985654155708806780819842298972267885715136451040584911984279765866493265114126719022180906238052795957189783475076161523923055982922385046176905592216516433369908961942510920254042940964838501135029955079681857656271297325278653485157536838863263558899023525390967373682292719517958566610260591149242785417802076768968257415864614344749464354151065878414699876771571811721245452849333477106686056196597402931463070309168958981189638520713346223016334662593562808530184978866834994784375486692234517102740874788636831040902830020613893479610947998661117496233024986100375859899098513305749991242738249615529389226285442840434147027605079007028774036983998399049797255132837805098489359216604075155987759122224754764618191409143351109525033320770072846528756827000550041502477566698197724409091687962195741559864638274765147662108073672886940840213008553212926386588868966783376540942374397862019917061087907844223512575841927120264392187309973794314521243946923502758342406648155446649797313564849232404999909396429586150719732955472320912438848992134956545962854352951812736850078544924861466937123384368704094404293254799758274040573534885202719531675955118841541737359603673538904936838129141661780771961052102622523412896353168100663996542720692459238672631278179572649967930775886599582754890156455605672054042886308435394878337715923166356628328946137292151309676533760207134892267173326177557202615983770049767426033910906048281873418918964079662567030141258221579618518515638973460109045883692615295714234097323379201528668384775204266671809213887670835342529934069045782963028596196168951265575461095521214556595923114998942593848596754166497191797517307475000578034928058456998616760878796773939505218368246101309706570651984607287659985719474789089335493856056542884333480041529230949941170677919843300218480007049752252465754462829292041313601591658057705625062299620431571013353059426053896710292407600621060566692038126762781412927568483023815958576143531182113566920147125214952897591986883498274365633477749329095062403005513383729070328985315458778383119578694721718217744191846031159882994794378996490661787428989035887929960223947012624407510980771925569655255051139538765995227341236615356865974903919415199085196187230846749540358330754362313431346923935196563084814998693212044737139308068779970517315292831699450806149920661182058695417638506314248362590147897127706081471597770700523302179360705041081507682858017746098796809222507537563792255858996162487035197427249618469813210640065402576621443177668387640347334232247984489599329835106930327580153841338531768707361326081358436491948027491257505748103582895858654777299358757768215985368350606621786840625191473783190730320422379420921727352550373366455638136649305570830465319588059625602352131244079405779879742610027206323557830781498045081619439518086497202045634638113922644651549327459422805888302728191121697671423723080652849735799195589315034561068323196088282168527060937955499712990917327801953111984932397526043726175490347860013904909063124443701893167799021648020630330779550089726911648499961153067284151555095282480625137809734993665790561257190899580537102171959227321273186387466527137413647650567880669315228581876902151546253231437482763474931541337377486417323257195779382219444653461130521079011467095821620868946091709612386267453743988772995037182438594204694907420305605350143978597342937465068602049615725982668397310395892366937657106229189087372072140405635464395895404404190146494083209408469934057405195106503305683014761754237759913869126212141097364554726479254432674802620210312668975473455689658121013178330493131314056584742640041967564942524679233181358293169858737262874461778119448284401945459841932918428231007024089195231268047945740033050593610665074509308070478921743560376698870480190170917388859814281348962955304616297442679007232733866557933246152493649255881261697362040329718075131453753917116822301352809675725785471256885993714334128260078149327433927094274199028829715798930617564382962127631193835319529556827267637243841581846369895981633998618536511751248522902891493783190916430991610857884515981434069822706240801898378554491407897108011948989887839449075739211503889200047651939172951355589595354607234980734748273982536328657430743423692542099910501840344763901311535890126468018916679577934169702809451204662093463447001602318913690917953355586188581620066930786150105123129726244121434347269009832976397054194634821609211883985079859934724517752625702379395182278076651415652715697618666864586241613523388543590677239094844013917060727609623558036969127761137400418153752170379449074721890591550679847296740230848475804695729249805822153775995641164803942623047941712192536338552913708372320715622339395651464327097171758883429595925068043208715694506587849548681293106516475847189370316548750526814762245037126359655005111490065509132555952408863475917155363869226370438769088357776498669449644102525270743123947522580278111430558324502750809760604321872423678472820345173722097691104832069033531174287733954436373092253322531371565494149846056103309226162225100127946423771988250059825476065339334983226509669952523996116083882223110074249381748781398694011221522642042179859952576315383638641859158721829696919903065388397475678232828923856202597420288480298891085888452709047295321034810758474860256826375234156536269777027376949864566413640446822953819919497579032173470380596700438815727332066396753690586676062316582207968337564374821758180390868798974134491946551810235989441279762060511984789065710381136957131594121851845170804330927914933246294158434301788227912815743398648146776705102185578498336234720352574017220241928574413785038220586048849497940442629768196914525451560612554418271279163826693880054079168856853535555247024411942410477938156469323107519311633686887587893911826733994709647102671799794414135311059791154052863011803197351264682308676082853965519110834204243963646681856912719621082603373030385455395124448553237733154371499210840050861978209322386658107748527756325220612373560128185874499760559345718124955664314142348437291285363388506454312621229910890789206720061728779447890321143510528634139380989754695716325917116744590307364586390501689373046297901032860761505222796263846923295282426897589946262564472435825286725822211291710297508939010935728590674396279253411691060432396198819695834952168036656400819285213477261562573230077993507773661946655287718193685429726235482012698344610385860146458693854949881509063537424614753223161660955087022886782340105364330373537781753461075236275305266554853560548460960121505123976039045303387516647430846340927382908826275306022756405822314797129110028036535025032746564694130507222009150564866973499411551827317038229461413114078112187766904402526846947948541216164634825168337902933427782127567192971749247080307061646303156506272306686433716948902896949990837745777673648108637317798106711160199460956602547630364408728520672007874021752247074800471444281097015773476990350244230064889882850570246522353629257192785635268856392498932489322362683058235546289796141784617148982485071073315966782240525295674305417439614438485249704651717962654840113159288640048363250529160981732828646540225220146582689372692164416862920353058045275547260596241604557923944316219378155965880535294441022644324487723530842315526784344181838103647916931544535573819453220266294611641523689653838022146031508081966800915189002426247153567902719310409568389721994499739167605641135914412997927646591607783755016149839499840106555448557885606008233792119858203666346212103348276925561784196221376674080926601071182183012175272656307901029266229983034513784271449368282652905264089012305909126117287361779318548974776308776885441886119568892125310321807229538471963913064579233654733878900629071260730254726039571255832455530772468268844110983758504794966728578134998570765528192844624100896464661921294223348925290718406043461794260449425725476696842864037802790387556017211838012100604143703119872248424494725650146418621234901268841801904368599055727809787366846544540215453026118420990404309956253445950051498918812827748620325720168814520217571215490318792620248006837580668745914137232185192792099284454189027434695726647415998185260293580293339629612458718084757835829376608089856856311834418792625289592399747298362650519522803793591143706690008461006142883092733392381552545585373463061607117052637568219617484277198011863444825700976508600586616470364942056823110792078718969308210601624593796496904287856431115596692771307655909292992027255505825556179357548892204554295682174694946207192542845978125476804965399362574144990885115954498178185789051071510514188764932780480850792313255834211742834508341707164226028962354576041434716692783651237434693235306629496421974805699978365001291504242390405725366170560530559378292005730714654076289823799254483761462533560590767004107878755733309558026004038985569654456167225787064911056799617838636624383841029726443802240158294006357863968497881961068007871713551061716888840409427669847837632545956623582160737852350510777424571249506094272490558987308899096355277198010725073491499244946902990782961513417977666689200104944865367678587541208729223926749928756305469616409585285437340998321590115633091396760949796769208898934001483107648583456417526957707754288733536068967696693048589133639995298637097540269348247138444537356856112505751910371216283528912276011946269761699826337833326522464703119694675514990076307589213352127858686340537420496773554593370116136040396875857625577843530422886078383713390162239130022891358144340315919148678002604120012583637402331990308978039301461483843014751922723666186724076683580597986589843250195113943984304298018745814473179888755615497963591684696200089347687812480708503652920125277605850879780088385717353551182113034423684811501499308681256411436058086399808839503663330310863364319214160858703930778125834573064377248370240755421120517075001204130826839879196319045692207186886469781401870203308896089134813368440570358391845563563975164083394499788131105650952581742579530554091479273855098654824196000791225271481279025264904791852840256507335107177311993750902376434292498761981271427267582826869174844575427390770987608937214017903390432503453972730728760318384563910214265045133136505462148405013014100591277216304714965408079477109092712664543614360956457814237812983313873794512441880151971854826609503519332329940497988568514398996319863367155345715151511847960582745411545577498162661549285901459827892995286524238013625280657926607336221594017664495542447554754723555590342333612651888381778333619572289296493894067278012546313118352758096974947146273351068471614966119312025243741677081625662007165445143428359556215777964309145243198032108813832570352599904713393960012328445700727773605369644440569752153025634721216477660195111968358265864347421061571066252738080463472957469979602552361134021627636523454007596457299616183961064738245216179130343557273008468901258825902564413858395036810565659626710922033464379454688401583485242556498889132886594613388524758476546700715135570060538413666078201856282543539894403794780004529144850808691894387688740795340299708035650104644253190926299756637226400095954264315440975223518590277225750803745837061423028354214707029704292648873831567364104078114593188947530516346923762164702299913076920649894537615145368487077240307652141424943759256459157790688163711316558267676847694996990877685689107201273122272764111257734235593850798573967071511555496484331833436483650556222991397555649328903392363559019926003152455404345414076883787328761619313716683028771854623227708935269814299296967555616173633051989871906962938172304466788165167427826411840456152207639405009332121659127285709781826416576893644176123787863907296056948265461294589611989767203590197081776915749326565712977970243941275627335036071359540144110285919187792612831411300631594802164308135719456229671339022536420614363735742167037215799360270490824306174777383086713448701487482430311188455271605569245012062450556593342114398995023907986478957594722040432030128310877560308239852691523259983735871693385900774972874920571061058756512005668290773733551997322685645678187113852562472324780701628353636906799461543522076086846309367985542324110734650385092099761016506635275788383348049106106073933155153568722643106820841277410349813711504659872200060519821921007997281699576394185144990312846701140933912307868329615775616066972016229325637423948456000225261563771572704381779417599774998955653445347322015875079645697727259181565404825905045947809994564572318956998697708008812714087646194410235851895402122193186922864324942326813732509166488525059379058302258230606564396829551658996130630288817765436683546338839763065073298296579673066332291883856951802852953506733123111588962468526548836298991727836333612287028965439239335707810033039390679352233480601263300729111723873653434496505977727285333467300010924720961954688377219490537579113365465749163619416467984726972880640341627045223361305607789550171259077116473906249482172219919282534609263690044823696779347795315666645680711385415451124423644519646906667706494070808603753851391669332020402420570189941444959178464328353029356133038448293806531865926033476360932632796421125096099224684114243247277025182044331118185510184313290005521033923106700621667595853375627310051201009386686060217632397136711288837270249646282992746042960919436008298977976133770955507634365232104378074429374092256181369647252168576070680458495754357729939435653442181844618740958807281933826655143294280517973431900008474625797702905298937910589955827966436706388195233063515940885124900774701273768734336858616449573920447841411697377142207558524867362614194185980864791616397358317356746408621526254014561215696964199471281120954092268882250119086859288122811439562342311745146272544463772094990611515312413175505638355337588441311409484537545172796592389888800062575288538330849352611237206205286895660115202195450701642398757315094983151322609266234932351322274949034790784011701084063378062529910835844760281542781059077938542960340096142667327696626306064884608040294227654291206354728878555360496478663363080582778263620762093830136110957834969287767705121557574669235237597314254162247561015740656810118543463746896622285327804769061604547116044447600805446208878271213088105221015955636365951534983000547814852907838248265977706425892982791918392165198100227139530304651650869345632591560621120655373741036308024718302652240752987153466154809822587747384876639736383879094652903624411800102065090851732455190858084813898816752914385558373443441940389488389241117619187969533852946060485291783219429730292145681981890767490088887413375846479227923814608829354751271495056027950330409215466223749340282257763538230851697003174359790081070036994644230739447707245197778185410031694612133732021446574444992339698000373711500054993770439173148942574701955597575639425622773301476856894162332984881858595715914186439036546394868103292641967848197428217251184909876459524816786642452500263905148541700527108998925453204585930347181554411890875631518313597173994929277538175890781265751650192778855463698440649988738927722004993205024618503346658919169071311408992930974924003450012214726616152876824861219385183117428266723921717859341306157294166908648920369158961931533762456435097974357130854559027197601772225294551607033989366812406945885261436306925592140730380569796110210952582342104030118284458672633365228188933713777219296101014780557124654066444524090894579663911445185542933475964802925052864072315509872131899711970712075961765109660491944668230286637263749911228486550607330785588925782237267605690384213806067284775585128390248094206057361048442634689113964880046961367418441705537602226476156402814598707672158330768535178762211303203959486916531398243420267997749180357401951034597092648736337654650817767651741156529256578158659196882320960022103715983260477168108421804675840200953979503013053269193373273323433353939570376374720116310688029099167089551875720385916622107861883189502433650425191438301782193741111118181182385499655608244403964426191266078753850874760722382655985748324133957350247632848468530918740946983664109213230335686255768170653578398787990604476573926557830353671938642885365862034630578575048002002173624056835847344301584124160512289149253295710139427496778063217806569827443302334663212975610302628706596750835581880730193440185888433021926399748056774403962464217829361539095386600314220505449899803501381235824610980689254077436726297123912375324918390496141380731526423625468386797344098430497173289344134605323417776270347498611112491375548442013078560215102846890890220398728280013224624399298617384413247160500797309717626920158931408832890365381111007953598182478481189454340589929449953534602724139673130011131871675105609166626232021813965504011120548201062214046923482979280193617071025748986116948772491154422939693037580958745090364374454507098685091817186063241688785731270893099296879405666865321848927905629012476065521231053962041584916934379428184939713027336574991009407336077371690397591083502100932567155493265402573834059570081429931585383647378122901644250796776050428149170632133696111708313741744990370564293222242367852920249437712046087331133703946054882247262821337229220071926394555699857316723469088904884450853356796723761320023317735574269041818915009297485267360202540665441680424254005874862547380867386622331629219969356454715776565501362804566160492381009644339565983048600014786998170248321273329168238946175398918284158784140184840860908976362317229940436728939946006085197536226116665278548417909972800708636652645357049294240066060762923214630570808676146362336923965718101389442305257461368139443727081456318170886632803702719838066520801230142918976171637447608933129421706130037109609408636282184906262369780649114107053350081673730642477154150932589821397081609727046341265178882823312621293978512579778689259027326837328245989495835572716436898511125539081307314425225040121011517403890068637505102714912842762763671180674532855545060539453792927223315664879092401900172835473032434053557098653591607988266980486889335910350630431563983128756210780913728207902444669892789463060694149869636769017451369676035948826006434807807217944749406881701899706488234325192379557557241670457677884459715835056320691753902071643336846376162482185676255462421538212790301544192391193510742096471390181882220836526921329499710618011436362429616558288388043768601459792716976904476626369679552767237907084125065824045050356164407852778108004135080124156841196470837089263675973192020456369474320566903369697505735132676191537999298053271828425105150636388234522809089003130552148135935456097615092444835444700175420348926874318545880469222376644109176900801436588405457668211094842961500564093192821544173783652544617006445981928128995349512766395152711893172008687161759020836689705083305624632283274787652340508828061277855467083162522771259179980244700328294055188615034463802999006902984641447024389200552435709569253244422058714785528186478340875293401148057699172384310082565903942177913130406633294385859431892625542002043844719300299354808448512569429195406734721563557328488559330206695828815129501734623324147522314739369091051535808560984252192827437658843305934034283102183913276603861782921008899535845922941147622590025776295869249043063607397360777288182351080996775692256352530743658950677458907970431672564979368438861188310246912092623002992104351638334299502005414517276405731715427153445574342878541436766123947035607257352053973797654319154591649297539370456144870171419821615959118688571006124641443607937475331290654251203425555341522674965495800238966315861099503340142217780109947604428113585329410253228016205698028851904780444830195370582869323374902866052182869444320561977691661994381874898804265960724137289314436838882312103728451663678061853376078549863417950564966532321543404228114928096066312585271620989964317080533890443790170937328920685558616528033605537134416230548412577885863366116844812835900957658112506254847434672092445526617158404208470287936758875522806687664944819779883755941585903774494041906642285373265307306693598711179879290584563438923874213514580175438321217326130578500158160653042457369428863369119155840104630446409267593858737520050347937241062121721490494133300139076870101806037262884037008599643523761225889090194984047880874887126179007613315619129627612052663307566989722553117059206909991025005006351764901709502274554312541365642645881506482287202993880272741910950372461854590925807703384092734736470552340168479475631850452107655155778315335642688978152419749095297405267528008874845616036894050077109341984486029142854506470225493849665075422436842324301721861124838079968446218402386592753748580468105211979072710808891154287395398098387598183359909841865531030112736219416861743730533917934292717290262258680071595540844592020721011403705441117096886295295531514639151993156951093604546832817480724855744500258953634472179704696541301552343099532567715994373698771982878539107970923625497355237299884703135058175191388451795698585707425060313471336219414438430462773032371821064302271562394166509191735558840826941303317924252737235284708469947819376260859150360992654217562120818942577642582052389635611763194586879282248023637412356490699873714534761063006749016844424574053403149790334915930495475175169576221392911344129162130833095523197549243838350616023785749285101359576642567062995655499367318014317999329140178877934621186363681326660169737544392730501598428284125878386937104579862919002444509535958181583807402329574646323168742316089080783912044532601183418968866544439725381867058345454969189137575282065956451224533608882903660238736114751907288365393081167747574864269602795074406496903138169140255962678214157091592554123890294929213737685466701628839612827545477124455062573889571619655122796198990633637741578193731447481464962137551140592783832780493157968857945056332072868800981470329097632045031358989706730456455225233041482680695487583438453337640462865332413593013961571407915543174002358333694179599881737538621432936546484048820695925077589937650796258477921749416208474834845505233777620051079325268486094122294263772362117926955435114790478402584322526733137460868174958565817857631880505598325428403485207721748567925995305273014919553742384590141961746007144966798092291595131237454637129647150417420900475545551559100829172270514883750133489320276895628124455054387137992738476557102209113422144083471069934886354513714103306218184132581078606679864301631655492837001222621979005939561592359393991788081480459465650363174371041631527838411770847661381165237766857891003847983499062805443459666878387817341770447525125525785200686175818190548541855185052658373071825523699773514457133170666729604495000674387157520733581979466165341264972276780482676551760163304362201331632651143001794070338772221775709576637178414997617101734045808358535893861577433865842294241672964468914117278441092543171847891136504488477626595931115072969821784020727129556871756650116844540220327895851476231338179306729320933774468646236263837583263342488769930838052466310917191421272497957719315122316063472098490953127574103841858937814478620255529006765277696893303163242320545849953617112967081768380322318180665174507654539034357086385681904188645630430707423376651066771345991303018354617694030704778918836585174533112549916338001176823776844454601753475671255398393856145836516589687660442720778851532956953828074655685473948520000387657888161858639343119459760833304070515462278628395304350718468564104143796747474665761068296412715345867307480455666781725664597637483408744323333840056701842162760612826115889139241407675579181757768561102175468067441234301023183664632661664436906529279922673396081592389371348739288252488226574376900124999188539414516194104757724758784230361126004078066187495657561869320700003114190320385409560123994104992484538677621198643526274408285849697374619489138176311798339034251981499868946604359111524140777189407950038212078227205455028157696233038965881998882525789896049709419483085501095323793826789675528534976246962683774936626074525571579473769483418871851453417310788354344153666092906644475448749011209983525715469865086313444517618172326318810745764696464342242166872909131157658050300137626767631325598347324391267568335863615098971047301867008341193047200205663493526892512521455743993855753847068447722461846704887959008808767494600860858157642497993145643996006242020692630692516013052177167168453389385802732380105437949400012587490629064955939652381610252354756373148226408952660089930104672490967222294605879971811028977885495613115045722390618299328310126870520069754478771282501469702134633441123250552037134905570603067303643442619055898959127384253339416741273245947864237857256330697775613754048486900015455025253015257791916244965832677011957498693658709849434122366996718404845903994134528169679181096622721826150263398988982971066807386679004713205591054756881518390679728514442447157428392226178757491083358904686960527010908736799834359566242321434936134804774373462452255699921971364901610124975094454819367863343026698398820918544161141371676134237939673947442547025372693703564619309031250347937184481386117227223684311667581725902772723638045850830614345063633750305549184173153121453579532593948726062113312162607879036044577886924817353681636337861687672273565949909679113466543476034508050134303158159437592430713425308177721394238096687804435734135057303572534277317004056449087907228056570151318891399996764688721545808259617253144300515529269779262621847212378830322097054631011982590919129599212788019853902804446710976260619190817400984984287585129406983616573927075165377297754461935907595562383798960398375798657385043160039568480988048753196945374826100034291323339622359720980822125151423712506399264560383901642740176579949190707329250098715131591717261129047952139741570912700900687052657871887589397449993567133766425598031949469963398806187453117662505886649178549003847298261005652525704149794099086994415671100858191464180188915142138421050520954866346386791171762957972501257395406876502268521340330801337359160816545819044032535012531300803377818099002343801751244396613123604306782195912535337210953047301010444578216093684750863000592921299116960743096697761428756107755193449031153945012928989234288297294494718749200611497317162641848354049767133566818750884450555153680208604596432332279039158564631981392939301765599315455016029651961473042281052034030813604318242188624620394812236896874331083969302921624854149448798672985677753200499518226926759341501079595681995960263563884548818372515716890869478734573084230539453755918738832339035037897841622147782729678853121440090275387651180099010144293126602978420642139194727410706259264958705645512752795498891368460883085546165813787930906866922787408922699050229517489143339005919706801078803242630908917032314246267605330934703521465350070707981950459513246887081320753726558817642841974321460026705328810158898954985819303676331377262007703699626572086254618971977240742264552057630886904284991325356914610316826523530442339576664184499859430642619795192989825077047268129981288662220951180991649749753883643298061104795506100968085938760436636097850094175910743824851103034985263410225710941817788208238036553244088072200559368025088975660536173523420848560677348010491630962627005717655320584670502894284299013555272754627791633141830824936641041999765700369386039011348148775802084241913073987196470824877356611885887275875316964385587464055744273265059763503279976356592459895031472708270116885331673419515259177333397212865138786597769221471554714415050054334770639235573395844166864890745882764525834810113238010001617288232878148963259254518963042184659366843957483270752971607164583064883920275500588013826221799811972894548912112913834106014975965130417106898388288097364496813769887959062053700480901214099504714252487892762561049576493956507546506857944400544171092754263178292587162616393876561343451632000813793847835868700714335560452163668696535685306683208144451796386719162338779603380195539174956705222207203320787452507043613359464631706883724549556942754636428836565376901899312828583229684626270829153549883436162151510354515646000994363894917925559044687327285781096184565258395761991229381660455434016147530089462057120929645650692102732090276125175208778314981496058416443795888232144362817978315717638100902561538523302954298490796240584843109783453546064230993354841341308274188277306523125618794481394700228872596955764125575646729041470373587577156755318509979412635691973324950165780980407832434160893623198691877878326451242742404855335983640720812470644514509806640670397904167862211717446354431304937457502869429177080912323124002857636332513116213182409883848181626712434830964359208950902016401264012048631003052650239312547263202745931659051600578122541098225716427437753291822799452696435781342173000619427858774973175510198714449159738811698552638514890376647112112847498683812206815001167741557027542328637481385401291430462919212349650052730694660880006695415210353029031646340196106409322659798448995335264899981587980108357848063639179291907797659089231448588625382709574981634305837281010517310208664410610864914484835272310330484940199097543084109691107419539849101357828790793839786416820846565506810823783758586436375377599021048933164291676056556553715640560508799778015169560490759889203088867859093416927953530828598842512896028839388865181585596242834686913795641761428005880668241024913173961824257687487271875891273849935233241030329721730180476257785944455450483311511879476517552441983588393027594178537407212772371712824652098888476670168994740809322041512626243617796600247362268110847801973940617414487877478324808010504740211828020758015659392137541484199487113291521070963134417659231359090909994350626510587863766716456219579394406462949003483792171939270642046427872674094255508636381480841100446576251655337062574027889964366032295550000813121632609706522265980755178264890205846854490846680829263764459408072764898570704705026203367322219277232970592929087902614823108353065097885454548113151049191261429942089501798458667582236034466637411258988949875171383936257346247336948580616196938191599106223607954551854882949166508718578642376206563197467601069115130381161624927902113528443597479679154755420544765046897808896295824509357688015044136202208671050504058388581846779725921478333682896006521329591718699433220801808169452433096299311784916529883125579578882011341062909995154575606612443835518754246531105997660068209272349972216343271283928232879679137939031001147621259214870894800919693972721303335770352110282083835945645691288229207616437806819592820697375928093317960469566390703332677587913777817989659004810160594018035201697259661970651541751709980185252317084523270113937387652051324656778455730529909680973783706987036814897161840095972757913500618917068071923235355033039224318655200261583542074699364590648571418948881664289931633453465294887302586543773867144096641500662046605248259729362580457975028769229617798547536948217616813441881863698611165789066858856188276665181406470273076234219353254315008271965072015901840042404715490779721607632524290771891702537583104745889414031267654093302920818595239253662513709055955266344153709298495237543581374510799978531769126586769407900703399448823120340503027655152499242154681130859586410072920611349880978387467862618636633777335668407837706241786921533443069016010322471515479956886403084098552006160876938626141829071479284817948515044940617311942636169356837238488819753687638493548558314050818575434390750762194937651655826370405929438601401809915310722056808262791148841187930648704742735807159993445369300519399865297177137551823734487621180734233764565027740596740817508316533668593334077220354876923618154831384766924463061358360126370917117174577979600496181884486087052080021692895611524886347475940061331866625058401596197053084100847833035870451480907567826684389537815476977110041013420376962283247543981649832406193786290172602929031210832846916531811867139086934487194071120969469321244775099263234892314794789337685070360859055414724643941241726094612344237004101040003301724224822804441926281079783699832092876201088155485240816849542873454073002029131886907159322699209832078959696316826418437049747048797415167107671457917370099553528879125184189566985131327087085885636988878074709198379267562286940560827711701569291189098444068072360083436087098432399146435931961190657999711971823026566864285315152568775834091910006195823999135781548072908614337390508858818546215602752715912186444668223249797092558841436315211481200266377979921879248105416571584703038378682664944349801675579185522452868803334523230068701683195194963185824716192107136898918213462396525283058371502255958212132554652266116217844358514972936600781889151446546676096901299553156196061869225092076778308590624938630513543108097408149737699330802176520855209152230506463748446707233237996368848820444555268236485266412130031442198127452044661369747642683574712587891941935304045481722933616875986741820075194916868127869599729983193618983784575708037086224788983767733513887462355676705415861392497742930035310022389162027176628846199973003061193748171894591232761463691305223455030871761664750931500272297660913272155808569369514335246730094610340431982088630237436172101765776934722546036471806776545500540296775698197041936293803290293580785310479167344578765965566849566358017091601514895521609505999882428392914777761568727089558896745040669491027928881669003478880661302972847888993996615161935917172247481771468017659866983327530752345419095899207729018151174662621934651058767603655629623805279510070093763365272565147065352224671960355397393622899875994774155739292760070314293740413791949481305731162484557482088142597752281425732636797560158082902193278754707033517589896266347542635193661056596866923478513520406286625776978274600971297716943429011060191436640042644833879089890709364659089881413653087270877537660611608279423685280068680593645582269694457985140901884276057698095520358726420767793426635216528472543802245215896294865300799704427235748506259369886051148558042873415288280177144974398359337459886795391149451542108232861780177217003702279212178657181475768059269562734752745946639093162152689758321330558559218879970524519644818900833971714268967149644899576641980937215223289617461532547878053825003282870791740482013827624291385459096905377075424347653382154877073990833279798121298512626596348695252369779557342700510072466082245059135794578879431737633655962388121993168373959142478171768507758026734665276962394521530249176831543805324926096581518317380260116159131574427496268325905444561265067693863581323431094954106471341073490199902314032567408384803192496486464066688049780391820248407895894655164302148165944459763745154817046933419597363021097734999497570654030338264709308173015826120343191436781060199878411799071526024518962583276836473513253802827921378638727657343531318484541686554416326938948290066589546718736212229403860226988912426383113172810120840745662346703021698344984440393515812603684379656129204070823065978456060623886245640180785581056451187253080769419524049020426977312444558926706320691330553849634414560913936557016848274090595417773012979551196369201678236381391690532196685699479579023917706715666940416733642213801316166564477273700970228911434489048244702797923888283391733235704943826640123739313488633033749696237631109303632914739285631074944335708459513667824410927751757900161201494455727289485663545628623949179176786567933954992097183560155293079358212817907351000925378077482405060757855714872166771621640908096123330023321769175588294406261947926083179793733883616283712249890114669982723021234726742273751624721694050887942424913734619123452033137102444724141904584819728756805889651060436794431499113740185290247743677262578447317272881471765101875645234434307874073863505886737936254259827379757739478737133496017001888477649281092995344637684818658278785755224331973075094817837029495015600372970193257860711714410782796654354474855428560145526377817494737148352547588387815016126155651399987732197433104851540297555171731673558134721323389842690622533882825465960689389564407482828191345913565239874053492534335913725369651775566778859737670235348551019818741908836063041151440699812921040000123468789991300376130042499814348620212790670587745677749423705584363417098796006162923786617397201030301355564167592152255801005453957025752407024123013705320559667671403784544402402825001513875947448395311840835728441679755360818291265098067852579042134295824546414927819178978434387545895630475028591039460754290922219966239558886149169065491348454411907446729013652674694942622736306382094159648528292142699038755575578638949639909450692713261521102220182213531678924385461220912274922177650514701670728406061205420868196788698488501103003478670714874348964792214557460045627903541036778339199431415212867958288358298855704645681077624172803281378290797253479441733757602261898715996259696893258469617680852904930448570046560390722463540125501586944898340889067867582961791563450638081435238104453094869482176382544160886980119263261687674821862614200593887412107553807519346244777933607472549732717222410810555131080424410142550894345939093562905156033949880276197419319288793535852585065845033143624820516996982381710048095031987806528897098288455224795555167813183671251583208342641866146072179602746724717436043836575530776593693315662298426117081006811869602964695013964009155676478171723070589526810584042474690149390961640156116009190448332470936129759329686227699852640048087755480694221520656602764629604266016809562849954236991067911974068997936652407320425209968229766505295562267024656335441025182861621885108332406977164864562255709422570413152092814305265676686922221572175153059615307933189579343386782353741173287707438000288047518905691102851327838761173647020828312672427558498667327144963501980160004813976328372544394715280489533418746434140641696429101396316748527280223587293607839858816005770698424470227745160333788397907160190751840064334074620040956335386146187448482535832758216296702050844795087857951061669562588713915707283489836426034061488635019521975004899793304073374171127190376285601769545562388035325460534248961919586629515182029068189588259573812070423852936345469194112515501380740077865657152314571902897740826202762580464879723441518368955741173918345431814561394271484927969539351491035795746301120079018231264000567470791049179431170079570842105398871124023297744909440798015371450113513031516602017448857121547498458357367904998548025854868042527360567780479856487374083538557718975971374555902795689766726244963099513016293664275225299943736192134657700642182358907375648044217334043262135818144685075527030752461943441784361404154008142241881468578973865091475966182348243041484534066566273597719886136053156172594354270561336604398934433342531448619265825600286677158310279447701614714211635033478145807229328974891676819268932661035919116652748182619434017897592518944406345519598248897378693391980729962994722894997024070195907376240944966390428258923972148781068857492319342430971622500967377963698743711862684461883541824645401320684218746216481831758628118748456434001944779947090759512542391509623289581553865096668740630885043426179300051419362392821256848918662076626363908072059394793167206469791900075651841354099394530919113679063367561779549914469751067205137625437148995998628160989890321513950870917268731257438475379436917414401898559519476128287664903576692026121825950705602033161974804932074614597507626200318747873845929617420157575167373295610646964733911472196236871293548456893487003306537009464506735307068336087713309265599018468181797738567932366537923715151743351462885597690472747233113867450563364083943576644771056209210441413266108606493769138474838457354892952748804738792879539121479215699534585880987965886136366898690827713477567315777445670123811100866828246964870786094921203049662456736409072632877033628375345404157035381186270321572985319979110518459001424937283974825287425066676460844793027879160818210037512391768351865595332021165588899809414755952024239762545431201140931803711892067038390545792279174385734656065142095200589659134644867914993614296970391984175520772729602995044697899934643274137213142389503566375028682651808276668623158797214341017380040387861382216501635244493923432483543476195842002026359813547931830710091001345798409358441753980937927850816794371597668879876777667657997376916239306350411576682469272094871791837768135238025656165716191559487623430796807981458553301296931040514234730693555916882961676454506615635067113923524952732640816271282148000344707970068658675875848508538973539630428781665027570964720372817291129887493520634950377847909658600970466520413487683573863129573898223149227366406788842433027292520118240967504291351339603631565841693605223913963426105289554758697507624679046651364111785060583185117611022717066579124929626737504114850181136401814232601056882216017802963867193380223379706405765157238000175140480057419012161755671551102802111930419278678509555276382198719463306763003123445699192569597917974854328925838667686469832434409349529640721623686587394818310719601463210747005777460683677455380273390465631850252560289599397257425057703514796860897546033284594358763509674206780033557874308099708998901137587228443411995521083554162756669541173690976006910592374453221309592624099276113563626997910225278654889186467706981703044230073191610844724265480781505728592489104321604536855631941457199244348485431497189714219729058512342041683887449967304604025894018305952078452662686340766390160154805824386345456241880945080430739377148744111170549711608938600429618182157605144858827364873639269176995922897751532800659861762742067953747860168050739959415711284971774936011972165932459002265126319943589177623995209869044961675032107658314133945348018598417543636285046845258599423690850621697957376569156620820992022601751506116317905967675033193535764864230817615688854034561066256591446623409419324193622320088356288896686640257964345281637770263960715345548704102188979543844221329712999334912781988558463544484130246665871894622478452775793663111200095217398640684583486662258155446655417698846180776086214713150083185357653346825124219491320764072912293027089137504387221738819635790047342619181565289353257209705670107247722766833598414604772944014060601658939326252664178010638125137455124540631326260637942491044219157814045440239208316979204507260149213042983978320464931813066776018098173148200502110871791540888855050246699510902459968349193075923811378923651059787630538259536611852802706293575283735263660348367836245603170118676342373007439250682684312475468404508955556462478801980991405223481190933443160612553038507093894043145499191760659697406402823456387817978031991510712395502466860551563563223313910174306687726900118058295432430848114060717389074895002533798020517265408560966795766270324020693379518850379175823706160118022749999396019398224713418891793570078624962315159201461423624353169182641410297219762046084036141859778767249333553615980469620340715498008593663059087407844355786284377040733356873381559518998688009650693908381966684429129662137575677766982434593769370883912129988566030242993024856493736838025616157829387205505731776305770825419187281363121616542451720455556329226502041107473676448656087303870113726203757529323333348751411288876462794815282925390101479449080309335788151619926741287801272735949044575048114729385267141740542090444145629908837828800908117443190021281752207959425019036341169283721247685769131281516565495162198108965933357652351625357612821233029229898089636923732204954429083642444870065517959508867913470482877493871482668101646707068039344195820975904094726350550159864769799531439150691962356707984568824684668575677771230191280117347249314492114890884829211935426733378319538483526416911772904518237459991169535497355617231655722595793882496534621859003726030162007991701216991765837148010222084596221046018057033243244709593641374457725817292007878442428307061488063441791902922768230194259988040837839576472283029165265830871013943744845910109190538963313584266326819730014859104909608915729195785533235491200180835516011140760892064377949829715564841055998082121431703974978421825838610876083094092591581461070952444495908041608785016758832580069176234298298486700400487417765307836402170953630651880261480347114688757592400440403078435133363960094396297227749260860954190303632408587027151134083864432239745294992724336969116143955525623156316407313832171933052728176861496540156896507329782154824458730293988548504510978016666542994566425337221010090052226718333353876356997567241830049482541692468304748927943953036793291987474987650262766511170960498552948451646079155152799374404148720584480130787593353509120226554487213195476481683557611703078522892323144842403163690301878675645200850800703685970983396790690096447841593028650725896575265744616695633272212791864847949183655582332998136804990893472614865031130048349779491520960777303474883666979647128823539063688776255766041781952347667157371393849003194809557344878105378346284106437516587339715548654964051336895158390577389279808128445523016437514933298098713719406099904402414456204602444365149222796050447138323758628873122297654714021515568736059268624330189397512078423476702170814097669588686639458393142710949831441161865411024899053790659792841969963004297688876555394693528239842317895495940380060777376966838027251430524780908262918967077946283535216052334985707079050348893608161669968812166997053406773524387649459246697699091390749979552995670156405867079756364345180978656125169170761578350623095494888249382511026686333730280018242064804043505756909082727927888872458482126155955193249111527529997012686852072142495007425620904006073421338820950326334079139058024383076370005957577689236487235897175612861591202824892475013956422186904230009781849967134675461906436439434224818107651521933904941312844537463186310864819812045466378470410859477281236740151575958063585759600248232682178597762654659790643545084090854461693774256624477372322173841654922219196133979192626383953705965613593206505195503265784236463839628159986463302328736706724500995504392614029287986697970212340774448800583266148124914973863565126919231655641526634074734268626965310970388996753667983172921306457652067444848895787810199861647879360348174055522981497627895499484305987888487144069073712073240004831992770384717985315559146724634650173843063401362673808128230461219920163268718237200103740479077552661260990016598493064176794480684806492422076435315751700964973947034585852371629117935515867150199134397351108927192183346256101789815262401339965658673882803220912663705640109660833787181639259231949194119729846363599267727670813272977747257646789146049918463933778724597297862641002421316580311954332072247384299211550387879974148657574019031495605921952981423302269373054435734495274921139400607966077568975509866682722657703664251508512167498446018990327574259734948628663017435735083596777965468068685885655811019371805485736563768223534308192519801338406018756585352855041485755313180454372765312104949408041666310001505413430992925514726684871174571137564694784075209508190374447893450027964124279153424920179244895876756230334875656752484188731281228421694912825937484532216519397362295940730519322529872881408843282866474632775618976087288331475774829903931723824860531124325319365432226865134921978424379940513053189944191663668970430173659406172815542149065689554266081816239557477866054191322964036595424126218877872835366079415214479123821851687489123616304550716948872529140746126612392190689215668856362189602307534135434165488539016129927392025560538767672752113501759055056038259929507077306892036086918108361240544380773442938507356573839507566131889953932103361149505421820053374214045854020371015500091292140998596034260424482363393145661559112639926627803960001062541090001082789018754987774023738573020607784690484764247622219734770143056645393646346768698831272783847487706596525232505195673891162121356021348936763870606217044136761036668719927096322112307220598549470486553538888708953582892339632449484907369703919460687409227891378033885879942671690719948720825661457629733877386462299388353478386372361324006426222183760859516921747223699431445767426322500625284186569393886103325392170365773472851399254200922045998339943670662676779819472574190251071205616571759358123671199848198424987811360810821788248547958959177177484186880038749491215901083077314442433496426415409579405932415232816403236610366191199170478206691080416656253342438223525217617539465564935193731849748214658275793028214842066313933976022074678558083240947327174854861314278520131035068135540752154501849790828673238851124741167729641949533337694643944303365963128957616314905096521035026328283617540040475983962931910519461476165941441266853804188533358167606919064930007452019210348272862977599764094143788634716434292683852432599573943512576628994838376322614044027495453759743167054029262876547988252060312001798045003573050338111807530823470420037832539748124521044069696261904755311445741475213772148564282384778557602049524075692129107303505586832058718937903453942213595649668152003366538794935903564167156527857693543264225192835852237306675023155436473565074644098777841042888452877146504437783284227235984953378537728028015268839897301218868434063787091805283402279758947011220883850850257576456938461334907116472332617161316977097591000343662916260126378866656520109908106342491833856441253311087060467154110449735674627429456197227379130639927845181081203397677181345140978715403172166607800396534989536254882602349398222061903833819076586172479247946371971193605867054507874681369605405478994873077511846462714314789264331986513245094332536375550396773317245242568479483856956053569084121080913179781956083318462924125886819046951834868199748960978731290233480878068533247138877786559926223375996024272560320012767454841592296480526370297148243184709532311489665783936065454936351242892632089936628323823980231392210883913633183980846404931377258799110012398324045540508447698383978164960761984092712814476491198340933211040734563069019963546337999526375783751617581536412663346204661110000962182497668203887947396451889800946136368619625298268915805169540050309751078873417278823722955930898927834330702690989741063783516389376384976031558326022160627669875200612109104765737179620535786052362774002716962196530247336276797102704929666441554677301569249769416808977360894859107901840538814454564397376628180591586103202391681819591397469852675130974545256288035176989811991245094670974116999147249689393766674616110226132195274858884773888371071970255932363055327254031337311566693409921386011134472201991150307500314022198523874903907884029268741026624653974743484850364079069731923677131393101195679296513865255486595297885840826707847962580210479810985140084256776729362680745895241362798511771156251875506225567152696138089277953006638298647971419326924000759794737912308689599206843798481293290867467025528120949426765475644358233576776906343896150819619732682735308052848883449923261037465975631019844536245284688032576561252283227361204551645349061533525468377901285795469936365224943065485417956488372440208713936932400572574013589092447117833387018621447161344113692307317297388836008968773908179330729224502501757393464448371236769448962533041277977928982606186920977468965096163805237081299961906288013403597096795365009341728462561330578668201804411601572888044687724756089637913756764843879537294867336185693587565392186974543923391367663264858326371943941694293121120277593241605963759164706060432262250991325929266390875922172574474972199031510668032473590759512902445012709192258300245312924487413310056176062917014215537523145450203088275380048092089015837144678827763291619989793616602036874508533064816131942509952162751656564636571943295783366707935307020658220491466945823134207060312582592447099392872435652773715249299708913788220562848373869459686791237566244413542013759704847968122672835483862907797364474840812157925902810458775774694379248417833426005326539864920828222252071687910404779905346663403288138352407705484903058737414978570039097450649453606594149675227130748901760033751836762244882605246659412793851466131319828275894529755719140528897669315797095961990242582138604725357172519913676881789304392759595995830408413612851118771198780278638614405974799741240287640153170676527336632849253436067927581565716644385156375957866873365560885438766586984880558369053263312688060420579037788484480751983574400341616325853151850173455427848637360369720045943470069115371412464756679098858466509761692151637263225557273116221232403951640570691292716244349417400166817061027210297261522375952896992110554689467176558954948579564721193934073639452087742699555324689630040381639010157532488808931698750787367299010891128557744551343870795176878897469298395389693084314589054318204444562437886526840311010375721950598884354386285708430811068336240105277064555833970751119877054113089383259532000616634210488896745537935445290077292595629395602274885154210696393745125000784199944717154207358402435488616217148651597573824965746892835781895940374794767087703155603633606147252078979451192002206749692768577454361959733608507462856143061434041199740430902405052493636268023944901207374465715360159126235403010622948526572306398837346490317744658892201083803219567865384729055619933320773428341975798470448563750505065502243455861948611009714686491204466366734775769880651875201116665892517256638506896365002986739243554911833344787225559859131522072775750348374298884451113701141680031535414807147149379713932168291920402581845675832252383556752606084032857221645787774636208075870827943756563114134149912493057340298324276628702455163644073334807905513397198424391402202743471838119872805808263155604878826281655059860399463012148592191326111995724965731342049797738919733678116887110683414941520380099961770637445179640233595979742254263206437129196914736231010332596457075637007123981139972530860565964282572256812572858416467577031521044304450202950846979575819829899445425574431383474228544517893087165685440724091987436634638817593735011451267399978507278541494623848218568972957144164522178963308836560742139706291924568860191557411886610102743210748684139673478468824250779638891521130573594448869704377684174020762793591100295104478898549121151371501071689166248439158902272385131646931184786316548658843935217739419476927700194165238487512968302365415682465293029371003629001614113091928201186782034498412011212133466454513525085716665699313194751206485499926830137780421091527924352068714978134442590750959557692528352734665007083471781735611218482520070729441460000355081134784169412529078506202156890934441507101360503835064653571684911537778641669108736675195393115289028172560956373777437108737743475284629695788298066886870596833121335111753967366290653602699995067724447127755795360663684328122718922870158200187491489993531015030535605524037728456629792784631241365598600782306070398422530925220455356795366137932029383449307731649666825227102433323835584352389656190144447914624391223729766130258704863005731950584043092554332238228056347120394708375286702597719562214554623381746010672224747100717386137104865671592846394088229307039705833288288900790241863002063567868408334147380353886422628835923427937259974011441489087504500722015787034764822163331637897361708904470132211584165970478048286937717758263989791280491903163489407776226579595444673427922279140038216074892414570758772531196300781349902597404178475903045343649809858510053096696482027068728655440860279278196343758764874356743889809645485552322850579773838681314672601534933304398624795322572368769299305382881239665889032177809503983137609360961810710746011378405921377484252263764233251923441752090869679398728036485239118321336560200489490543693900995305363075055302058115307768733820757223696777020765336372443386276259481755075651267721655261393119695079948852953294953375487074191541970373901902519862596694731421021628799601309190733402458170453790737225033510236715095608643983934931026410743912110466748141637058505623081604159181932022871924289308680914492354123458906279201639095731788677333753673641660051890695162574291219645220309146330714995177412631922757441308115395918553620856577270293231556091762855283516865564461178762965800511618636230129854078952251595720257748697528031562826271466012081620690809322905851956912165300489480092219439730519138000986142772271391561449900033520974105637517287245160999895209787465877292746256242216282075541006666744229583628140047200613449610043902990565346528994481105257035098879943405195589273655557623621580348423471356086334695844710586479458965625255665507780963701966584381328557796727967314781578689417315536022771890254413453433755818235943219606218932360383004867283099827750271094105952393793281761355928179064674209861530487540607421739906998770505145838611262973295369790128406944234395627539948832796681048229923457454799640519511253941583109198960630349117232403021768071936452559704535295858107162263240422381776704572327312282897843011795150922519495612363020950879418160213157998806638737437020885042569872262911622171819532528524141621038393661612376706519920808888513290484672591392279540696485174591307770841689063323922666418627340445756245410584759349653015703502100785199604616010337604951325283928685406671060200514296576465544480077221380602270329183721315423670971037874972996623626492399317314469089989148689030351876498315036091283137781646779683086230178938919482649758412615060339985639669725575633830212876511457086999995581696189472876168260532160471070654751500437400130466102306768047146932252940064057280868230689022074197851777420532530870871219466726832170655990938029793405240774997406992812499950080427278498490095300193851883351288742423218710371658208983471761968455021168794142844593100509908188620876965940648306464888117650822869840834732776024837566199665451568735843857807470719691930396807328577067946979788632969066485684958385134279120563521302182565448378016770144158172003120363270202133610438404550243518803200759021545093765081895809721884641302181223786113421256536798739655423682072859854293183824072720438709065307197772699838132581830208915262886561624318137874298287431899277928755236204092911316662116992835734657736060677347011314111488044595711293632386072903188998019952410568134428475062056532009893395189594573668345246185293005715654758834190139422330752696319244612148147728058628175479027023948159050954369378194808392698299982659526114165846537623890092325824307965321806977739019335457256166433815195584133519358284214728393004561656292685567573304455079105069853605602026904143955750968972876275299884613133640699951235820311107328633180037662733940115290721563432638958114668441503218772687665561445652388688844704841651758762012386736271669542663765901617796379404158099259407756315603307751915510209460766396887715566072018184066574644551180561702862829621805337149385030963952306893020337538613274570609745330320146456236889085454950430321243447538365469371694312907462453333888735705875337781084550713377239167643158748531227997668306218080536319707459761116066250386835797614155731649112482603930265975682791206115589979046571105798650410335517066495202015197894267318774119128024503977319077620869405784343760088233233370695710955436222934653693443486744561806090126322355627915605874239537018302576130906563821275886514916120046991671278827688288179418979945344075384732791003772118116147717548382863431714813680321513123380864023902067152538130609177735929153399367029670356667280855357368925083889750483239091573098162226194503845141911839492321729771826838653994490137107551793498437532131187589810065158128237265307117588765229261553608841742290287283629620756842985985229482510846825943185076163808734620507869832771583593368193902383698884012329027902530274466578923936012322670916369369756028044357201009132252520727627804293664714622933021123612729875772319066089815995864981806312976290909228951637156073408693395083166697838491124832121841499463392572128662605322467453078704520729736352774640358115694720414683609523112318408122866913603075811866409650971177961942469173460331217962118655869841593575706098014588257854395201983559099021366499870858757554197080468561609712739067588980959627477427243718881087523214362496470517585031025231790482740830906758298617828995559533078432960948418233392060994699697828284425026511644354721732347456188865266225715780737784343484971097556013842468657926639746609534220874536459738238182493846884055668216338415472877215269039194471490363041951339233654357347568426622841236250872105970245234079160456986898865683594434408665739544419757593243058414757463052499751826734348557866304098910471172970327299839560530521904521375556213832906148218710122620131931560156434572557112372644812959141088559804806764265867137583924461838159687794392278727977346066708764161638191531892785950807869594569166540430812748761163812404405467245204510901883259873289218290029140826706882603897082866886127106679606246501380026959240429311827829092323750471473908974077342534402309199394145762966818837823306494136145140078445120509142390916153962917532038090487292820989234689792751048672841176267869474409226958534454775804364870683600025721083954419791773588481508253663118881765713058343262443307517016495960622564859705581326601883753044643514375390934059585677594517300363065875193405993584235235554407080760257361814253944350542539142671042996577167604712814194597883661322974408937698227638797210237169598357962476685551233754098201555373505809642636268289132573597326284783682845151146526709272316620280968474794235069318755053671993877501235756271746676227956454201053138183996976505008016125300632301082324757852110632848893080432469330360719173420489154997618527958161287049084068029892331136728561313036396234471399948676264491038192709745191078086905901828293252618628817801845233662788037228833353703863266008154868378832949270221206158053940982506469756685408472530187437257138966906694086311788067718969479284878952282407988831911863275243194373947114313175047220188137263674169289029319628134709951512991742042900384958852552869308002832329548892759579573226104122433157382741181423540520414979149520233753378545959014119388660153422819457169378988293905278879288973294546562778749590289040437584904716983483889152983621507360147739083220106931631825337386114170125835375673015653928623355725128267273350882765153314520818986908183100803635086707664288738524920741449607205139343897415166434884744991211630347557979091328455764700990071191467734559075728909796942245769784745790530427648568874633619385711637437768238079338808291661012021251431306957959145592742772184523099859143449149987461244695932717738773845373208488653383403737027470727025809482959357081055530148220136499964584580621132891304458151599606682046023695094868778934757069818884388179815188392998341603619923860512530190068510737403148988767513720809576724167359440449100805095664933354549704014613135926553832093299280214801742387057869355400383117753400314337163042253878639324409140338549619827279744573153287086520294753067590624082323517473984008514843371667857139192230864648037474504584309106083522555755773120569974443102440385140418163359611332882229587437690070617538616028365573508299340688041833344056065822692169719565682906473349868612054216274315547469938883451931331442544004081516203205923721013799895258509892150153494654608042439858320645506741383345568414851674183826186917948637486160296371819362258215870486453983862867546365552442240814901803540442523302006547614333975351910659735280452306683686449924405318158254130320706875010882695407005239359132411791184242512787851992503266017822502797086524393695056242429981765379525530895128419603627444275362515606797454968023824832053321187275468956998813479037389806489277742458285986246872598654859935513648274262217622636741010169523737441888982011537146904349482755442422003504471646705580082374463561426399092469691231134546382247793448322072791630229925299976007297802787597023782708529909553457642931876660631463418773764452943390602909453734544288114707379980559476724333701423479343237343871561810054445238186627430629590009711449970088903521843948492660033617383164578138552271137762913626390432393610761502185572168420893980588952830189406075581104262988018888463973417016195450851040751586339135408400508660935180777515924627838809914598839996084469524049539463016849874654652052641823092111036895189100577404084183206278969155140169559775345882542721573385064377777338706960853432629860494737604452217272823022175235678323646943015422249976099634121978575674030834284400610919536117387603409928739179380194516437287749985058765416827554448544075448871758108213313954713385828811603063762409321860359084959363827288631722183551149171336235463332066549788988550329342590237958334585500507260619298392333314358241031006609187087493154231550675317399614738188172302616717693401994815954749320761231958429507782117185032604839159673686850526533055362584898936264733696710770843216848175580304538574380414468810911825832014027572121007187852246365441617869791022058433425884426917548781154215043478556993100298052154283918038412303196701419933578655149789595764030924743444027106493755684751145900164499830236107050579798178312471153557615130007498199101795846448613184694289013011581541973144826169962315871105410052634345125552684831532917230902987111183498510490118240672145954083184907976812433338333963291159806134082866551947113378459001077013457025060731270233786760038794024834976595662632470554658169187574081302854156306294764246324165228507029032894876040115087118565498715159312641186946515742450306113204776087349085799021000357922512480488825679799969898459919727319306141598727308417039909053095112441701234186573214401020167689136436167496318249740981350967199824990622566283065226562790247065841775454355840090335593156504076856747958236414746419909392617364206600224777842683867636101547889485597897801780813904030236848782916259369235234641954776116248021496895891948900741705965764677115063094599415276451595283771891439170273899758713541165917045265122851362597346622259013443172193038147416154956223663614286280149647634454171600554296166938872863918364298880710568887415512549743210183060158859122536834533833735637938307996089265760483158562452612943370143674917318679395188304431847628004023410394528954206208495790790379088293379858017977854205187685085337622439557528495975298482014735439593099133425042810555829861344368378681915406737039160923222846550322151551795555173338106716216224763311934131757206449457263026758469756195786303198259666205710100273858176934979737663239152147272785764722001981413617735510915448329713521365228240695339878971678837290970042122227787947805565374437037689574320930923429542991578527182743063285314592518020379235303984473841066067789584096621472105792057354396046632659440427381028786058791934853018854389137226894113456700578132484164456286664517720700302182558190373896557168485495629312039665644781888067395450248809279992269215261100035041859838869801542140251262564754015407279981150313464450289340833707310440116700712113442421433037149889790059195519165825913993342383626280866895083535131306555381033652852087171557230532535719457701375440212529259335205013912656224322205583417514193031567734846701709457942385591973502907893763465414065604347717861487242573898110275094725059776851767308180282779256960561992604548269511525795102474406851302080596848910530808007300549800215185987457950864710114806659825153236103998372196858596948275098550975443821083444089312342810627015592581701457655314348869092395361491460375415939630642019812340284321778605144030559550330468985672068806597007282277979992792429828047195836141723519071725246847260883243716693019396476294780457936031275150050177312811774851644301419343936386021175376524921311203246768340415627579398248361015578888440248669907236890125684246904016479539642635045132724860766955674269534734191061485838426092630393748000760590939787878076743572126011928401072137604934115533446327670682934577670860549058869449848558316887896681615231563404502042731591420676725934577101839049988204326446502946415188548773870996719076359118156421939408064475969784845062710864178327396939289167048472944598569892006183142688044427748983863800959031288529523659366795086146272204019462042486058276900204328199649532792920263803426867382880994418428220347512119088660360325835395672086276619695172431181873578536532928799109943523259993197382556190153579632294076867982867853821431271534789557981213326792888394740973367915518960484473953537200175404178563579048606464772688523575316865833497726450511343756699217584973019381728404747591322811647563471739461839939378521626194128737089407238938822453517361190696928291394315735490220683926316820099895697973771579661345373356158142880472944427216532626046754070254851604155121430174922186047304049435682662472448719384247962694013890016596109213461774621062628316994959669710813560776073446761697687952564417492597214014323261094307792748097866015359727184700184843384188297322289201100157281340692009339819324638604348356342888239971607486617945543649723258815916602441627378072692276919774143843417592117225785217947465999404115577022065439357126107046132473595356144509032596654542243843684821602981731158674435825112646036413756135188271363552554229597579721387031919156080581703653306994726057917846963211387431842240747584867685197537984014482631846461833375146671068340854791833284745606251802858933941271674467950501197873984686784404057267898704109940822237495301431972790779161454888221231056536170922664960390544863231844521359940327981453724325446588549577384900768076792996213832836631634462150047201155131278731759070749537374704869736037278212836570876804344266016732555214397299022879937070899287986286625725366782367695025594950370845171366763176168288689380357308847295664409216052779518824085388778512956689321548543508512644035085985957028894450342546778038886384707912712996427730678664758746423371153108406260940514394742226320323521474072977623557292810134053089795316737902370944619182182750992947563086177478963212143517400433180549799626188522912597749723585678239622516255600916961867309849051473542878789656413301199297252421363842742151907036327183672449412618573094945069275680842092668195832506788151613613749019722686422444625498818224201696959790803608054481801527126363769147316353321973662821060145566362415518594260007409100935535429443526354136521621858978136716487628364785798540746821562839029089425411966824625475558256994620432680263659654193776892536465578396513239933257156930125391720671740463707165118249600270539877796525814745558608345271048721539947479562234267704885373979493754166088679358346044492687511676590333103511417426157199477061156869738600016294980201537244121626357331041334578210144646624089908780015348358763660006059249781429148717018828570386006654848511645344818170289338226242036638796788395023787743264762798824163923537331284294498207699721202876497294938930466955153973873249776841357082536860837725323582977430059319179776238741516079498088217103246854349489347084979939018139405253485276667795565314799111833847228324565400119048435811378791947791944792109092076055464956630471062977731862432934486950119944555554963452665217520604882703125396587518028264544038962406505550327573844897728170296204752083581763224729190185807561609418279895162860219410796308271085050731472015817204040011455099353515245866356695437813177952963174667360105933025083252416094686489372390565454147659323665744906885389764523927918659178292295918163857594900562392145114618838798632245949078794359763200916801287447278150395008400283198618123913560542640388232522988336775669082602329430720602421514076448823978473652813203768840846569346984573453125646976084232757964523609227376333295946040022055782909211688649757347254539560883222804941972111333784905913529527606775087513682120685475049433866309653932790644648998568611453299008037785848362849701517899304453110495339044763152780485246781336116921471932580145579608794070377510770796362858106239981232815469946599868073685532573780688886758001924866860412554564915672231878450962702229444301272571536138527177104332764930108517537481248495190241388161262439704149293633072152344996749911097365699808429727707981387634922685272763600337237252838068267266840669803857080067784565484913464176436685407556785395648915660522318451829473368385306271072050806607742847405378160253585317844360073638384126463209330578525910392361462712988647522637956670230788179677185236321992262508967894840924331826221176748134139484735429886507951532145168919616809192423978997442520352691935152515684867126899947070766393734115821816144207225515212869541768907449569614616091855006121691859892921038356700218692030554001070722205305291261732550149068910535444274025033876190859648779232167426818581653148696678677170627438948116047827390157158817359248422013092410762526251896085408112009881830736188638013202057898360300609711111159736512763435135278328902311157008187396789043101127812749013313897668144194630974344518267327175233821118326104751688365742119900101264446843059097923300464465352261862898022441494602595456418361506842771905890256666447927365368230352728751567785171831556765106270905500196037750387827697429099195804350040089676027100726652644309646430339428496515067871754260979086476359194638851901407100359656100353094817976326017196892012932881572423066359751695124242183163905965915070284685048864067466547230457031599714261257973752441122858100471837756762847970529911749084357822740356499202956275792197910461298005732332330715980117471624321582304110106856942599818612249457109161362019481494086838968812742211107687734930845984145671946031496436694673404565188889980993655386917248322605484546948646289902507180595642194946625706403091615543886324256759222395916504154792763228361916388854732058954726724723140991075403918392018471734389330302650689129799463086825152241381580355856428403490736378819394474295754298823410492194620045567317469058946580436180407561919111805339365618704313355519633971553395039558433879839613288959478309649295128445248485240582550028576291140495029904036069782743359815668621206521109009308446183490620462662254145356759254609855453080553651008096572275717224896391242798406065773888744412503579841961809996721883356666674809307046900278206262070773010913158682169621001956367951472991471003616148161389453210954655276605982578629062915723504400095861462304290199461366384125753750609676963885400952647786706806400958957858465240659660176753279867757611638699634083618072199055368839574787457969287510134334657474437280570826588873063518172193541903324006529566605327624536995989981884040538544434610538098322169418274596195764607043539823807754710511180960884503757660472294115174863487790181299718042138596693584354467010319384984012306526054297765701583988658625293500117303358578669374793569393163581523860385784100566837626974290242171479658089769701178748239619504996190601595429513531092612503300481471196611947237871583740318082031665612582034598051626031960198733325184643600224376043738971595191579622386063655625061811473688249804912926022153174794619931723727389169542317110373496869647090985374899996970781935225325233686948122888164899434060910155691145147769637852160944854560010982339296203623524999783828586940337707915834113117242549850653227389338444334363230532340093777506767841037715740756635583275538395888158023371045593376267633953554418278705133272276317798410845188739742954083675519782919031211640273870870713677741456199538060927264146421554464750764226382573955910646290646080012254742230776111156189556137824695701112952644565955413883949991264115748244783500693122557108982999036585895937846689289395512231798848963534578501415828615480123548192061382048548249920395084151253868165104470992517377910578044584700823130059482145566051455197094648474947274956400318912455289193100640735995754217664081140347287770902639050198025500601757357290120486269036436024969035311992371068364109514738664481436694234101673235637149614873373524753297007401980365262464080624923657876977926581795314383506783913052514135608859054358411604233027480966944579025958582333593706587739016525705085700842823340377127771999010712953713656213581014078165953308961162760946877082871948425382870224343304118253133086377143357039473405985584058774980081178810948347945029339770690112342675671026800156534738856665250995615502915052595730355189812217000368863327368436479113980628610793119611728502698066807628690639122224162162269000914531884597565032132000102064780125636654430260694442173863281344673660933078987594815189070263862578977265468718288192849188322194272763109829561589855140130982894079472867454430981788488248286349452205065571166417685863405140005095668072914892807912067734418902388414040863820331702980730893906534066333286203191781501856832286319913505909565529421498549766270731028604517186490206313735348705332363499738442741574727967709799915567245600427307075454652478182774044883901271274726179470422003067408180964048811550089373520308502471023137357869725305345588113307913918109736021304316707712146997143101275912145972976121066633180996647356648425952063459365026206635585650649012697057502957289483214963713499741933111807287742736504387561505401237772527432390357650989595244760533432730969929062922389878742480640730898193205591371557679962802787317706270166697783093475954562667125537261928314180574088694780885318796169176679917590283246618147170481625009783726695757459492507616775825651555134067743364746113662469582966678432222653395684719565151058961239650285771393669584452685255200352218887472129360003703071884530876858593279657256168431519241458131744188095951016925842684270166734713629818344319473771341084418518809703891684270492865959361861699122805807707514495150785460365093330382583962512958198562106110433460950748341185572876689000113716095690497452487721873756399423177713294233455611375226035756979291118717770340569968196706724990327993899958638649920802608538953278120568190687102295179372728314746722700163577124918073024683519744044111251867907496754424918934760043047195728252937361035726226680377294061033361210775941634758803157414012599570620564358297406053053621123663541153998028459260857467284873015266209080057840912539823790846300628904257533263752660206838897946495563514376315359773656679643818418153354161941835000309566743761028331529619640327252349348935065093530182323056766297997212730124586125750503004125025745986957190835354533410162615350532588925895893117614971460333182694170533445480442714789165268926522070036646101656595561804434744966336160774475535622478089984282779100189561588325234524242247125285298786628859006270764389231240695105653738008393896467122392250993174358044591850308909851554881585839352614722439908660967745813011735396845045638326568926518989514895366316600071437600805718426067815833664001286156761981743987871254537638014326036490954457256724219568357569999981317216782903135417097590408432171855375241481377403518902770849618807771903831125643968313747401800056501995135071042328389172780632033528578433505680583842661351097833210083211668339690739239039381555903868256502572937998427460541556154147324981390836358884742853170080662562320173099133272116491310077937641929263168413183351823358085523361863884150444246497471177913325019101343779224496733823605032481496708465393295785382234353862519328010922774373117456135613842850703741858448323042722049678495781055692196237886821484169810060259479252769710965233591534826135652179344369794264224033465023171888898283117066237499137203783644387017092726508168885563278281390488031994766286807704448899277220446226708953670363568367607178398094123605719123813937223697678834387172900729570966432156376660067238929565508699972367137311447105599124592697012868272915099794678746812008027699450085329709552545350150782590484606059599321135192801735606879909524625878443647362074646079282939222223439284561673481361392467668588850497631635644984373666656964487723968843731811001319848425948260180779034099044230748296991414520411807796539371743593123032224012282156305059289553962644539217830624428694555592160798772003521158043574909677039904417038832680365669218850610402628640820299262484977088463815774774241116393996134461581143919233881896308557182597402816399773513611269282624396019257824790268169240135947489818991436959378257978527061923813693678132004859818420611199527270497353513721925819493306724623647497786994228206741480097934357093929839660115224665759692261763363457128762543104530185739367435862572937102773554650559272366694733325623376139294640604123332265171182340017275812178977936282106558914302128655393115854400834124593828520541920183513580598583550228313574097877320559159313125255976615770454284009035121553399404584387379846154000221138263461431854485908175391144084840668999376968973732478331414268032556766200875906286889315472186735806938379588921232510509650829538043496917813317247513231344351731157527005295442595912300034710194934516056875348585897948921419541251226745386979116325111072140412558232944222118920036898014412253715460244042817450659198933077441295324418425999985054845301221167704169317682743516632808404219359294213314233494629405970063332623747778318924178620911595814064961526344493614872549203788684696202209940840019049227060927403053765118888351577833212733236937300541562912560904528494565716181872056068959325941960308507656314971343569130501387973356386876630330629095692959460868026308935133975500367960236674846671860148925580676648514723382926365644221530367598911274045302878097637745986833460017736918975898647497023869869906401696461425568344827619905112282432102134209010157440464095614944366481962147227121693871110875183643825954522865858767101763714566455575367516012134265912272770657166098922469931355885231813850700639118813435288960992388766392354592468366222457440611508415119890757207207380307920921592401141555384262367794021962832877096506153718813999766223105489506923381070892485821389299327675777556028648648360111948917693074135887007989698851764016895397428739767887872879162784731774824832836275741800559738824820495892059158541163592562527139274551812446757575131928597373223296110158054915395481623916372649450827836601714863642053900168382015586626659334398523080537992983959801703011056575104516713393380259292450085776764570402391883189139381697343128411882535585948272538802262852051472563408094467113554523558171501490384226597769032782847258342418974792034078585098860610415268207102894781075214743312826860719034253162737874102090311700001417781025837202358547868944341272554976476866775646306411950422045899536145575182320685936961889331797740582859844918293191695007871322917092641651036078136915631114077570745520855390801067261227710140271025658680103690173400393459635641592367867032667898136771317011480947582821865340319993706118630971603885147745595233214200122878237471037319336894867574934310170829053311546083708556694167221289487399372558568031629371873452172005219885835818989014582546005572327950374449518145768655468888532026235417310340648552132610547977112434862431466599415125425589747661200056590774183021525291732035060816680298725543451072727765216028703212712990425197572989080418231998348218757355557715361350714672767568514552259747777964949322962644137483731985542861232714449860705639070739575318952813123190387037415590739035230678515715473954356246004322874293674189663557370546484074755589145539805583757815091516951783559839692581998632599940090321725177159944196682129298223043730277191089505425082850636741264068062158605494336745011071437492916911246087295613099470659444189933489672274848905155181444724035151671110614127010844345653102361715021787778409026135334439930753641812890002181248950267839845250042925622270117060083077606608660021724152446263520157507747784142378743336779151950217841478071015224322894973242161707793733307594601388573485577453513367638735050218958071073103328533324415215990846093802393133764582265419394860762082278572013996254282645580485977787387717898859646090286361421079576430312020532541126913467165669948312961885470449815152122190577052460164161619638949243103475303101086864640509818237004725850739902043924163275759315767101151181518419660380980237436836815654342565970308447817015977385424011977587393107849218484624237686662328240104782618640475348108369220070736292057703840911527084114746383133996496072999748798669593155744901560915133248399154104612849961596468943888147555424526454056363555539452265408889624167858029944222221882439710233266835494465268913312561915083478934194139226916461300190289668399440702833565087090603757484453413500272880876006993140682157917514803435603528360276103499618029122433053542426195431404135622374227703617187471658525300695295208667738254855327604279440493670176145482978577147021119897644010379327855177173451680797678774801603013642608625589858755633945934352076781753741797458681577986714550496045319122510303460582929389234560630171690717969621319177791393147403035012287746548042712765567075169177376208519773660309009242828595889347533523815845664760648167532805122429687902799335234810465026955774596665715221482423834064272653441806038459471107138391188066013060412131955889789243853922019772640279975335394512832598257035601715773669236303271294090023613768759650577663980407982324250228315435323598460775309858291427364923409289233323446811514859387722760103351553962465162873046122839610633489446095039400259878626589318426262040302597584557030761123300201694332459348968840561073095728343613255036077123909701656105195472849108687344454529308792912490787543798849701864262986438854219354817215485658368098504363879587179680161177773794762226797429635673294013104365585499190814671943981481262770613450715965870726243928432620049530976074347043951790359669819454224363393783873075090343271961459715731905979901843041531377213084126059475324226914431613261377803250647506561255689244255177302861476054391248012102172965764865265846025512846604241760185219281895984347391753860414833956992940783188907907888338689431001005137699926119049578899423116574604421155712978201143851982006870757221510513055528000257681656991747424439876758752620896446066282520500895530154957778710126945438152260147087491784169429376822055469972836507911788705619918382675763497322028857636986529527019400664736506194438710281478906880726840955976338349661119539423200587564013519978059049959584278500685498420538940716638484839192115842038283001165888724709195753105814093607580649671542735391591758095066796910157640025145438737653384348299490116191362931863075964884464282506618949213225185586323845394466920737030443169366438153076679911204737886226509327783086779353065632755353306405291687632079789699581219960823251748485323199124289951203741362766843568390912445910059118296255631560664537124174229459961188799179077583702372626183296154267403470530846687321591757172964094627292850575279602367048432262173724424361219978238196007692603272000739696716100341287511275828614690168489897889654513584694834079371566448994427280352161312249954224952168675698762170960307247181315864206992676984237162803710269822131395698126211909781144903196390769023632916071691260206222477933405700418544471690563563997632696156027076292428134894277983305511480504277955404336422405908530112539214776486335823046521711528619955013392564659100148361055285415179335139853373827723227992253579060364056929138718619980241518612005378701715392733060333393147049344958923098250739794024424115932853972883568802951527687231694642801546656314631045908975568372109868236667101456773134490216929580529899755836878630967690854244180122378879024624004271605122624788948698295366081117975455521603136023272691191233406477198011672462753847237431597965490201931142473487771089445385081843660174920648766858125964782212648737585742288189143775923010669980305509127914509017666784154041927804559917389966853229807428384088473909238856642678482687268777083475951197726199957207888014418712046844845010358173110224354670964181449462431557440041520918051092488147484633842583286432480787386713976351647024269940177107961582876340370006078521269108647431339000118664952010235665739565632960938843871932742820827533849309386596527975487185448287784579736675401922516555921990966737104808906467675558083178159323229911308217526656219457465729582862392434323106991850391586795348840341880264800099220414595742956699920360460895745175093262956304905495536860060838825335733036104890287004590775144637776651160195203863271876232420513692487872716408494737485219504081665829476953773733605685164170332249798788672035754999870269805446551313468499277417479877122565367380438097403430845851556532497067952047804981222783146219799470036602091723196766059285219330606623964685985245393011894671611620479318035262988021890686552467996223099874391076222990907361180596400312301882306091161672876205100814278072266785881093222354024122836254098874369619291593279060579556321299336073845466441398760644238996934593045014438947169405038780461108298097980489963133904407631017755489691830253903204870467223247560918283105543695292087318854781424993495075339841715416257619383692496666852926536276503987482345938829246511921468480260084290760387985205676742100402754707846825287324430300031304974933395008745032273866813298195384623482067392848178905362400042999388762495532741408672300235646447412981056603689812822914103139549277579850223892625086926872288501626327749029727463731469917008687930056679699892978357804576177176043487957733796150158898166623505456755781846452606424976925776314252850051424225910888731450787458012973686320711837470700510978032239081547904468320782741313663811410303034908010468560792406276545587118190912565635630348151514824963231007490655264428186797071340597907880087328609667923791425223012697364007713416375847294872093345154937184415630444850158490019796449521794576157151766639985309774837837987803196431207685358224607920288783797546451284397680690390793567697231563452756468315697771036273223568259841984464325987932764973909520414941332764160030418644515461992914875064868756770972803151121698309130671105270824854699301662378666396613080634746567353110112293229674624029212537943008545691909542600892373894784535538767822968300823994058897234047760871120866993337350286152424629385542237734602209747868560092523493121002608532063935879939883330888686374688412089988569986305995086639056009473035172222976331311710336992432484468631133035779518167752558916327609438712263766770754703838523126452219512252787087520139777729265217108322383300404909851655072432865962298964389696123603456129007773122652030670891898248845882461438166732312032493835049909064133717740566218727331935566146223230367786735928154055062006836161872781177389833738086358414784736698252386666332445333067499390207056225204043658967734178531556878041671953043337198870435066461161502630152134680272290602638404838007564271313318323685967081089760037553153786922838237140303485310522394280652678207939954611224506916409815853606092625288031710206126163663453934856270226252895149729315912132856678779376995347413620047969731267471228302622421912025845942694522954431555949334710553926112842979649758454313955412491074286017531224329163650759782068689736273178934496783629997599164725120918430077772615817299303042143296429352755770778109741718353643027308596151716699773215242404510032663099068379978287115558008032015311284544016482636569710568593377907444603258351458731295051719602430872643859817340519429854512287474205498460838591644327593536089365407137859326366397558399986212263894351472598017448477805667856123372351897255590135327510655476756478341449841505720298735079412760748634619012094573455267366878654847708771088361868613064340011303104479415534069358452707615442555489156650100615671420387001613592318472611677851219823786573517953838555738233471557412400942375716105032802849580078413767661302127985224540455409458507717825618849047884417922145307769635448652248852406162476378736273801953296196490409500788229911156227063400737204884151763028581632377355277676883211069797211992286491964872949649902756433663192012766647438007063116138156945142167073895630407053801456036400972051557472257969135674939440970382715138350068600765855748058720414468900443056668547422483616491806025080130275826516894886076405275610438427387448416913298246962360572677762389195388857006019553700939689337267690139494706726404804928717438970038714529131368388552923000206347454185557282414139030948076538073355685217665229771615632968471119278854640962447203287967856566918812761323103977332900538541273974900518303194212001050887178358698082563826823853301630819792254867213976868694253748382000837231117706336949116011363625527479760985184846915746405342334347995256910085895165234071360650033482041976655963577552986350842420162705771346276382768666870407568847895197763043804654347027785189159942112089563905678776384233729750604563766133356206329708848786554415272573802127621383694109539090083730214995358682836945107982031369021924365752329361173649757404640237703220376600124878163592206437664141533239510814228100618631768070968656779023198491920922870683838544245111523011999263874568139524691673496324554849464984356022907985496809554588083833730313441818947879000629322516838810089889129367487124706769949431202673280636201961125506933880022648255769687485553073369770311496717575990097323766626701116859316170848932883847920517470663670063304036976047578701430038084681229680022575812003068456404410920580641965128501561264687632105956813332506211864041519340580497320121823029395946499304911019682402044159476814509800871599927279495840766079458505497375871595884258736217704451390398817041604083501790175329085846412639215315602654965007297560524223171972603787504604314755224299258020667188105770976443585122728235209067000216203173785517943259670865252751641073916615023806166279983700821483381096848674300502177835928110317662281212714821426512923796070745715158990323004599269882547990958092819472611882419098850577576430897062044744467283577737335081380604037580766977463997690913367801414217973149974223456870370408454453414427126188205555652698479885388337320686333534722895415774803391740184928683469502970286561240821697708886724250937307411178963340502359428349201217736179274775111514366937444781478710947041419367367132955262132714828920182332687866669110861959700527104398145828661235054743057146288624156662337469398464608512671192532296506465742077297907800550217855902848643067054625215995772222488886118806137951486767285796001123391994511704513322199351560543271884277251272004538106916640381266644172025191776084598717362948648014097576218135849549900022222505804246187260087598427686418014281548829002440005820595075874723689337523630967312508935494972506157883103777436972567867336642240103355407383857130359085948920401269516869359878839600782342074614631313291150386263486329215830774025029143478816651385868053731821846032321283683891571274063441180656256802882119114120147729051037012717914767874272795178465547214756462265402633920513952941925347438814984559973938449830118800629709116838205434928680918507458585663744070450100771424570554109671476667286824147050083419275463916652126748755753863223308881086159784959304994544013279601908768556423686879491824042813627971071864761475234823179913995984678670121595597026757474053860523408161828299329036428880472881675259778232237838100458736864104160009310792498849506841713717201477645617702771548944671049431771670211265200066936797349624645139038524056061641383198571398814768949381284211448635961603072001221369073269462550389446875290869721246794974306742806163835256967252380437762284920928395716107472861170508849668580015234559611311712714163081457477095727251903463431071516260392113563710628320629352011206774054922580671183365189022880261142078030725545806436191871175676964683618524565356607443637131161235826273789353332182763974742536436722773966170283201144155235341015762988751812332480405885333622889444688547635548689098772241774657220431771769445920733360588722098633462906325376088165605186762931182540743094174178326125372010594060807602989487853699416127214038469537396554863928481681102774070204154062424472930387257169396110790087316478412247144652459584033371213413210722185758369167911500435477488036968391677758597505680367534468134989468120827166587178226193541798826199410760897947406386002962713079452459110258068652717515273491649398295873239598222463854947754941738673355850165206327864549346519024842560808626879321423866295187263988771952081763511505008265121660539854483748956578962353143832018762862681185098843222344064119865316528847641070607472731346474881038019435572282626705405673153039745471590378593714071808231573565018547794862032958385812742045326872394048420387934431268387450149715607876353339225368422747445100967084341420201270799025757559941867069002850201239640567412794007269242403666534206059798053848527103977283865783893397839371802794677912134247688319044053582291138039074512594367940061926346428774558281420421995984855369805440475819240778691220963485056635705277114213754669486311984240367353021705886527527424753009689365330799400400863675227422239800147952820206726734651342854136153036835541260016377180796803468519620695634782531192216859550299022178816564161011086581891248667123861114604618801300536700740367449145619369577445439210729206179250780919312047023769451199122016627727930534001176503567556468207661989156995017502479520472937336573146612358560144061017225296831855736781016975998468344588895275354029783095820595208846966229156553336425153130276319026923962709876174845768037801868739296336886415153369080226361758145991961993942558533112102720614104496591854747449562462614645607098257981053694308918278175104530204287190528029667981740750130502149303577338720517234116852794337360765270459404901242917408735678064911604607310430556751740394060213576976319976686328764136763779849166346352993076144366830639510519940082562177300308779691704390205372573628123013974579217200115706584926417905526551104486784408573139341123659218869602554496119137175159225604304273531307347156851985072453330532161150754569159579606170467524004265122205480962354870973854624908094837543439804353520684594835058875808822844323388472503120390600571664049728737788120979814859501489616098972249300979046498339067883445746583523214327921266226655333750271199821888400122803091045095301149450121140717774478734077475752042624684954960330172172608645132531079027722795295936117000654037788740988865021667277216665635405404355500286398955417440511367415052892657799142925908747909970176448558475410109747326482261140031314205382015242573741823068787777189058885872142904655536455606906057997574091187609446003201165588833757738517477233646261648689868790286312516525971790378643477686981256601517094144707241091043864562124886503284199308109703017161714030980261365671503491673619367903262687889658768888884166304879789681534348817146819537992701793350371363429500269181731643102764489371800363544594600031663327804602865840648972931184498627521505135935220142535716931909854735774712686606802117976154178020834061809470952135716808948494978783499183767154054133620157657658106224129958096009373199301728018843167971467297407422013047705597179222861506604012551824772434673839403496101751916829524056621854675717516710805753019521491860578838541895327775761328430024555630374162713040451625092929547798972171233364435707772572427619317456809228412259849681990141596528529953074968562996770281608296957573760585204229753677119108774954164104231107150850319459195060349476754260543305663940746218571759422320536023763916629778378596048230536689737698757676578468028057989091218530585923707397388120567749457127110764912038419605218618598685963888995797681622370305880765353144522692046266091831203373758914800559277426581508990230748508073174725603929504447557885192586112830801385863601748450415377008422394207449189557930134763715702484058895728274383425535694010330595661481032599693728385241135779552638241529579868990648360782541684141622527959155844175954655696686574075282859670840624360549006514234706730227036105609231039028068293703906057072811118545560884014635938236729470939366580173311643483936321600841831705900425859492028190313351403533472839118916712531001430373436443186613001086525875358842157609390077629753844390113255135678437032900876196021961365739766142704300912714315366880422859591511980849818710731644250429197165996035389863000486926469864636969514741570402934550461814178608228241968545349735089794717168589603713895111403642603693112559736193505877213211661781421324163492592079734092771135175246962527512079326913434319826499339521532611673290907690217094087069543659430706728429955947451899805674123563777926895742967740970659832870514016481806255230030680898921861407151106067688433363222819029614849664654514054754227722400931224845316154412001469762800719421311594610330476148662061860109232392481316926923019295378647437881009119402690968743077303890309138291512074524612476032140149493403471348722704262412745538199981724084588653296322843354514881686022031659251959571028194454622630846907685099523810789998148024193371802392966526067129056230524536211972096393513707978030168834984927516721335742270659728270093533726596743555180261677725152588329729724427386333451349465838056182973498680096132960041731938904181090002242199348716534717549530628965905747230178782938293581177098492944610277873816270823719994143471958154809799196262112912802395283081660503951389507903280098267098732620365593428090359735986650085569711078520788688418487274791130616000361267838735461586112618395555413594409478416909308264236318527471407969580942886883233052329193295554115023126692100300844048029602342626373512521947125484814078879797948016170660343562232994434695996641649427209281915222101208792411129353793673987016960247903423495817364162501587055944195499645620936394418188784567455368268604891018674892372583539568088810563887279551013625406938314756876746732358850962309427736016324322373575998443091519761010627988792633902280105290681926544858908264925993369349639451367454474900923385511860670357274118218344485636705128931927365683112757431027481758309786939528427839124309408416253748799665444212507502409157774986708099379348039432172578278044596454274144934760986585947823427048117919134308503632488288721055905899473636803114357764909623194494256862670064532417269435172552004207499226828805035278309399387052381115214237290671650650704910179405495303804645603299956644322682824916113751216398082044546887096594524295174336562581731379357372258589323893804494650582134106636415357637306204281354340318443624728738495028925054022778169022025391374033697456580687515357994231642069026467621473991673237379254003111482211511270320962623790628709702303424135364938006125452103675231247103133061460343363532561618470654734658909924325057305276338607167335740445003774300388096108402391490480453471091890648228521845493499143254673544665474667303432063271603828385191321744825980956318403899758879126115277871693897641027806716803282371806692147090831157996045432730710096542427285307017077334599630398586898996827153347434580819801611504308341267296119268753231120043485266945384075764033697391591823247815110392693377135755904228652255639825466615437792748778051153867223352129769540862358003864793596324337176843247427157033444924979445965859450455021809964478073131832874814211378999019240550412234661621049393738835980148287768250521467757976461438278727807583287907636770204165891956846137551342558200554800588688556195778910930074949781277617463964772323887764445990237575145912959523949315921455500431635957316137158049103010817093200925819406360474064880909273729481628332702987836249593948826381113974487075931998026934466759276721101048568774019682958914480789524267259829511411606319288587540909013661491692239579981829151452278487636680049148032927369117171419594716095595092296256920256164201205774619220831368874088103510755328865610541883862524044489311124870570156444815232426563260608504888901720746089756901394592759405609604503465966062754943182326439637410465319147432903243225352067569378400806609717648462443672326932462350866729820709089497757259664845324540989839410157926549059064933121227294277892338279758706439270086637833538594370942094747883839152726943156159978290284711208858281239655393783499080406503955577296571297401775036885719029279557240466753064394211677164545565764809461627948266943373705222493119545800089515779562772171495779544154309015723006206979157353729077621005879478163417023780046575974605026439629700992572033670040568661649637583476592088225035919782516971079654272467325451426654900899564131614770457540573591854908027844271596495202710596297376029824382951347430244886073149114990724322505489533808938608432812167802232241490874292771650764099477241373217929738429018954426081736063330405629588812709376592740156201114167207398025192329242295611477632155436287573310663575133628215022090265991603838503083442260110797712273864715295273285439741361831048696787464561099269381422354652911911206361590287897964849835415285764819424024462634363937383124110528432589024626667922946407218970104551961089792815001560967877535119853678337616617475239013937942933187192906629137205789072931530751564874821794974361608252852342125969359643368233910391367853507432308297033201711480134465156874753716654176271515785395545458344815353438361972745415776225864454979644426852961387009231120945116524101316938902539188079359848303765880415033277127253595282858471584774095328082678159632519194689832689614890462618613567897319553033595122223293394183330281593851624681840174142590500418305197577588775540669241105960348995720704407152543473041884839607096120792494531243522867123701269971271096721151805254131449383703852378305520450749808923815780637280680121414244858609712708888794796748869975793784387185080587647945418496121131959254557764304065830575859528115599989311598151581262955372460652091605938310436242119374375758867408707980879998459141142931380381262364534188628464249534284986544950868847091338627625311251828604310456243721280640424345173362274150112638042753801479264290564117244149125890932288589714077062195434009166619789427238861670258206243422390824086072824418546172847218572862070531093330265222370155927918016539965995494364439229689923939055683431572448884989618866570558670206506296827384703139349192689556827724230460164142517119433905513148131198452369078711698264815698664104667366248336289650203824881293644388486361038719020745290978378360749001062791600788668856193715739991899921378619371909531769683367579286306011502569468238774485017369067630880823996093473883711452910502493676886937896815812754602910725219338710710303394173429998099724902880401251756486207467012092756620357219453552634176592890615359131891482504580508479716664981527431466615696624554078630410501857354820279039177119242644362619548899834327421710907379004092451892358844734456611871521183113984338439791740797344595695653311946949725187324478780086509121017051196026845321717984474374334161600956625598781273272466359412643999796283382223641229275692216531039629301445958090982862600751252022071082628458110317702108909743930217023247177851651874160335056280875605869619023005980891570956545076270766678828621900180853246094628480475273556547739483876924071734032142899635509963351893947895976471279965720925357556821148679635323259682281750149291541301505157861227082164526621383040615557180743271993942579966427813546493312591404233524531875740464340694222147022217744183898147210060618357668739453577015710537704163272112410151363983749453386411316390788701879098984388557836171707993395291914683379220017638854018143932872444433100732431061281757212921606279055464191270473188605636025450310622426386056407834086398043194480801311197062893888317085234119574777042134832699917031633560685368178484175327924079978786162933359862559029686351010965313477908082464254323105022477098832910022980216459903872925527123917674827992254245533371865595953342611492215613493244461300109367129050666024235342551658511971143922822422045486645924418750635368997925805739906217244824242213510623492825079905679328829347088322653260487610927632758942879413820770386196415273305041986902212431041437044256090549074792646629427002706578021718900457618571224088537430057592196245295583331122241711312803190991899041260562691756205176824185500359005464141191145676946241984513034322859410941690212618572100536305423416636650676820804961736195356398305235617901243478454646859530061386500816376270771455752670520651502215729939939217978065208642264755024263283116575494843476184538370668014781037208038470123441200683831429132033717693805635670226931077850819146389360707104616454829158539261821627699654689931385976331185275893218511910971755679171624628653401120494112933257719973916014168211094681023066937254911609467229826289837278265396964973978865080232092682603416549321755711118848425785806229430424021536746314324868728312678253172340511841057720478629261489346771378002895330088604248215325526525816783048570204951494841438845253512972397885087524638044540717329815953485130482452765546500901775942363695895395755508820297461156760313727908975364884093728111456675050685517085096595284376291454419344740166101194625430796004962981602334607842587604820612582558758150763861760510438118657745880144512826977637870621047638823367687642859533442795819233483275728030371694054079127346314852712191370339225642833633705538351986462522083608220470204493078323613332175210205558689666669928392133143774628631157119443953311921133030399804993893089159214229224967604538621030798272877763140182506622437277593549438757086330363625998040430534208674840174713948420319674817591138981117458403030517321349344183699205488539377720396516644891798755169743868834636112571251837272232789184878977008110193562813162868543092742075611305386824676398030643128633136413423805528561878067073820637586055978577934236029655631035080346860380489291163910906157924232839297604360658325844704106678615820959989788770722461528082620745653225018869011936754176082961427635482862937143812782272610716494221662082373057861456684783129566532372321935326051525157085379742574725544451355868869124800456816213244610228392958269249932179064374174544051017782695060102708580011243604705483564597955724851575166372395896495510723435980723030854240517668048920590462794899370041960721587398087864809560889465369251166371632088056643593307409811660269238721060059578730058437197952135385455860991768121974846638550713771688479451715702833719543714379052695317845794044039017762806696848300315997880275997645027935757175991818488255894680292324695726287329268111998516202230895333828925538664013119834439168887693007019989363823457164956823190302862751787467627865318490001786036794125886358525453312892634130720892879136320491922306340700690111851528570029094407810974879248355543451394211170649860655181623629726908221458632731594043819460158163638569622196623990545720123603715420231357495060029149878485341536323475866804004201193850568214346671789000199915614889894831419049177529804221548861183321974672553000877756566686319608643158983716007163799716755630394138578109847078203691328115897579298077016212403044054809981121768654600868019790938681155500597534500573607321824309635632972725393786712623738462939172264436055393723954080753536134023984994879398637173918697485478275081990096984185689103151107612772342301212398865187205251555672159852447111918582040386606920180080718922353998039933633716604093613197637682640559736963643378210594030420944871173999272061712514481405212800028128155749215041213813373147252720395179914933191892650740156517287670925840798366447985367532072875321705938306855534603580324686227973935088484743248235189955239481240259501807650093429948976384412864407226493697718164889668992660713078760376118307527004663441323745103308802428593634087047240892710411285174490308860505079504216461941889414843122667913979087056928698095901470080446203029744777054959000618865326621343565863363022288080620315224303186116088359331248212504273410361806704071899620562885879616432261263293387838835303521840470763721711639507691936160694095462022358045186068001535551405202182363740982017154867000497844050348717988451504144932255616459992004891536085282847761955616019929866621646328519127995198517889151090575257475337620677612098426109906157685003015944492503590614098622723329483256322795692436640050874312272921515930083172482929445158283449381295338669760744363946624778486733381967564410955543917355035244888744377663937748011124129321281655879603418600687690701970622161154020509887023345942572089415777059586144834689154348367262999777260119810967427792751612827792346771044772797566806319031087248731813782234044229277906238435397793470531883050169709860856839712489428179420527010392354350470677340489159893397052903997891064440781243757416703572640569707446150220940600224977457593964598506716552088656328621380805575144634300421473832691718437591345272387279587930567006797378166582581086756323596238859298921859745912247452867496844626059441651494210924747880299975119792741270646110647051344304769495622614261846486370719959842540895812111972481544734294707807674981259407068875718398597090788972075954884201568909040454906912798584650212678390733045509909507982604457696380920733443607804529147869331363722862934865921456166616611040354229844600814991323930032112725021973030823644134727058899713666905382681931566523674165424895357519564761845655635340723963894967315084394570304043650421355765345116493849532047690408471889438802547848415653141660590475957045795998916678504859738598094896733086693356724419600158166378893429948513610744364475436242749042893888874560723103688231472002628310412145059475037781946983736900739994088906374092581726882391611348179688487870033922275188039030052233870076278558126486214728438230436220206542378321017619131271231623896945001284078963433445864377635031833764200749299093330513191713194660131366998250691985759276531351651959458689512962627385432767728370843628544722463702493684676245694334799263967231488221291338725480050802198853775850295161309536426330275135159938849312482702643023009694469901616506726097763840449004640769359075165212586326177107107180378161894914376778208102313119289140468288685253435960463691319902741031605439344694485548610421333752041209832016486107918531193528120763418274541274427140489252075802127987841574897710665989865037281835242857336816291812745169650492332618971210492419414200098721627702209319184341199831485049945797968151731224001514574707666718763388323619641848586145109058105834364164725218091201981473379475406511136124904847346196559981117664359606675229409242254569506260537554894363965825947426549664981506534380844135824376414429006997287913545895591720067963504148899324231880023390730310804397230792362990111141786511513331743747291755098910330948402052012242419982687163603476352525604343372789619408963230620162347823263480969001605192239285478643615816619418557945958503203070699023494562578501601554760388164992312365076824180701623119493954808069783040474510832969468747873461414656115736116300020939249372405993701197168782328993377306115427680909272600061441700848471133607801129412060327301084426640817723028614203165573032255286728690626715358388125368919387719953120400114503977291050904902987098717462600744511927231891966713463172481730145843551607738746563892922393410748107837233112768040049664923765696054336609173258726846835256794420997217963297055853162491564605237662817503022969452291378150721958683821278378627056202769134549607505581022057962273203749907894068657500712599734496707159412084660775455204514859047575058367214868208420029289941523251452408140913341149214844674156629930478264030772795181817809121692164742373000067419215233349467660022602248923827582232502563413761754267181476914025197231010300887876967636587713871022072902164593524978949247066543591437190481413439803386047502474304368270022306755242109105668336858294908719521857997173053592868118412055244945017587693563199720914566136871083771694795117971225536447425129179729938205323975048086897786762474145358669121508839416738566639561064134825732745586748204186464121798692839691330534839057540986825347997715601684012671287042404633790567890974827224737586024633136976418133348192290491204783126865901521852542363450752033340208554364156063864312173064034238252221270396964646057854502376818967434443120629157883246204821903948964026663759121919251958338613742985255164227033971955255796506028040256003066373593156867680502869070259776960346414758110871626214341950781628162600131402951272874556610985527844477836098411514447859946501484356908225606843750244890008665483172377830892956603001680915412945890231842383980462017273616818526491892159425884616910333323814235814029471122866451180741187679629205274906673365223569140973417827269095664273667407436716111811290415263402157281010825481111928882140891981735925402126175701995217122362771603487805560541276891595774390117480206411077525430156359969830768768709176482296691985994415380093378708862998852405623349588259593799586294569397613648517425909320428801775214582648470286006683163850510034792575078955199572204557044814995450389698345730680979578134882766609552607968745405915224670571816642711336804581104089695142738518076570544393744026849677216477584213643771660426163001533521941848891325989789287265665947430292288359918783278536826808731617647793912729838455965559733627494706862001649593696028575030142914318290460989092359315469164367058021618797042277945626866634098919504772047939960057056409278359140201367124923864668914295936570801546954274039165801285769307958063155489512823146434882081812422937542735174045334111007525054010398649252271365514856565446982844381474217356316495883398589148290050250221725207105352395558400714398176721802569361948030578682221814228910636125861739822333683658800174056633478166980793100731055351010011880383486839041854715499645637584294282241556123797593201778397077954421764181532102077037467563999979553603814465024071366211204095069826097437833440281238535028966103186194274734488380976391519348773588133441527652165884599941745632930354422621244302692912912424644657528613712414134975052878944642421489690875771882698215703724139395294533041714666251714130790691300351403589037385725069107111113331978679396862376318499374617873598533802141721977137037328259529675345890249765202883452805308175243207480974544299875563093463528843178792598284559287392624702737417844068658722762209432532561368760646138831085888600394140217907726202605957615121606363177206076366502830559436198102934155139424692773949842779512002676768465856890983076765850509387658335801106535479070375881738064359718739669400802323374512678190629708063567762924171438943353501452645785871366963029877824832576237190581509059643061553249618162980215540900253568726914195930777378866087449851689199239330223464896095767755754234017364254379322927187924012132723405047502106468854465941588056695682838103952346328922999291874037500025173455676398833538331780906552537072021370454540128337473136679314735269009164268228546613032885069824159192646153761906399316534141607508403065791463838179459220702658143688120176646288601981798751711404321648454400489476194756826495499762587260488073876982239302811784185448123833166643096747387548632381945071792745562256358927702285906786416152238416458788650928661498901500771203303096336907683883000137156331440571217064518624194444111855937193707705407172770994145832763757394926044050620804674195869719867531771389430075727410618482498609876170795495896431922238925618465672039542887978356095211519996601393544456903351501055300137750597873873829433162454486604141392275643546538250444462753660822850457472080477360162315269641536243590758911547977388087470439301086704072934572352497956234346173810043981534366873287207457273261254503762552513825101447799562841902819334350943835678573791206065864838214872523995508491114541884838991406230892466348975329317500714617553494543851702701383058644841227390844501134677164172196694036630705260553329513706402611239758140976719982603372424488512342760931758650255756281743238893473197276626609178810040658378080344692963642528168146677198958208665284847800632837824645931299670471327972589104235594837465660923848621084315452523589176078608769563152698418729331348131175602007633098879938394157975789082689568807936518066406987434068540035441951404087770866449365786561875491568330341170878836405938744837550770422133736675154935354045802106150758644264711740391434197657179439370639647556924915333355176412812909898598737639948906732645749095345773807448490444327397472595171752473286585149634643306443956611990117488064662163237502009251317353470007779388135842168329702992913623837800719221026842080276812824141826707294615018950855808012607249792428674334678755756720620181905288192735414765571357336192695069827825124641744744970360551835232994028812277439614325999732584802855085302283230328452837195294077944901636298039288459410503548848422006285364565843205847106053735516522276899177601502028289821120781128117709753752491960519414372475443764624950257348354586284645463064661990018910447845803279147631530517938910096071780245614309264219532051938663698307578249510106757782759087373850363719818090263657852573941170442726329086138793069435875185884079506802193185372582385277789997009961450475177962313355087328384585390115158913861002870251876564715671199339012999214687258489479080368308696344229351274454123209797790279400900400160173500907045699553505651249666992034695756745387724608291832547715196852271058581015408050531208328426090696794567619748190161876082425514548433497428154217130609334031330487919795976101732744191612319100810907494756824936607921980563868239681150264676078668841745114776123991547059694979310872692120183724969524781052239613672599239331378849017572852969382802763052034311708731386567549134036971425214684709104968820243270108990390348039211382970509742233102566505173418476643056264150995820848777007282303446474788074250885445638600612781968958907597927794012831727108649354496788406917108052458143289439105859120542713381392521480759694510676241313933641401868205639222978182983478210226089560192695804005322023477451612271734404607446799103846193221577074855131186157136415615234310099022749272800892933670179634502287037376031470478054573398358099720240810370450131650269530238367663262772717445219480835666575203398639285351496431193716492957988725326738897062049768172848684262215341973440158088001514343604027522603705860595676944253438157717145206438566164079967690355396520857498970695886429466936539414373581656283950960463045733545919984302284741139139204130269359003478244814126739344278326718063314417469500783502440814021257625445706412678250377623464996054052553823126633432724948141613217635387178863164819337300434740388233552802197772324031075898227644796559587313894152418415855010013685369167953053813329558462187537606713899886665842888118311770573618510117394621311715130406431980073867144506447124670537385184935798209548253589321748177438404394356806736097344681627822640246761863876973701585372516346181819340016230848664261361981051837791606062539866991041529368093865900995221605300132641331276153199780239915757473282971480101378713309561851963809290337961642017021318874861385304774506788874200368108827551198462562593429022493398742380643596052781397726977428267544939914104345216242563747753713518981446256012292371912313842049318641942194156733082311693184309985271806460347402287823037871700000035052610032751651204539202354846844706727827379702188937551578829986545471287201694295859908583065301414503477637461164400821879566033601211787757772283899362455009939577309862937628228691715155771951735536432029804956004921574871860423670476974952997873452137448811372142689189946797466156166839498274769991250210332589271284393920783984281197206477116997670798670593009288398746849227037389517812635014485445174321114787485100158680532975266200075389490566202801680604693366949336823954236645517951480370959087442095487976411816929754969231687635448788491989270624812343056790125057656250868370494350391383159124700056345754048201880510999225035970306805493634421010019407232988294080188391111785636337231316533367605541896803615805130463528887730551457152186752148006095325319081677779778324966443037374385867499881095266753291930768745489899398220254951822055979394913532871146072519746807235758366514372760109486325602358787132347159180295300389233677554852794724973005158603684119286230760030306211149285689901541101925973766796743777125150697967975103854791439692877031703572341886053049850511705762177335697331685742129664663507322348522823323471240918267866931493711364451524645932989350367105060620433335422972080745778636763399196534958619374335175558249262277500244948200749954369926230276972382410533801955113791630322830964940078854900126929552162137976244351007588115227987763840789785106380793779901317978649463850464398395354472679278416401416651880525646910717980249560646273205763534076390836844372285273781752601398818427212966672641403300162198524957402785306329916841522165778576879745441841458271440541309368726256552246486723381040255151288201066368191667785360294180196269687806950357741711455364194530865393041557732979029507546730143067892346955196170099475449572222622281224158921460406055053292329801886038730295287465304287006930432775145471917114229805726282876948945288591751384437972540248842951264923833412677267963835623392075662543179358891097802953923888870579657466171950505268592129170270269256589284518229052919437376497259574717401653804442055057821619553806273393835872333875669925412059059435780751635254876345935847045957993211312009809931237131859734837840961686337270916689915400441970706731200846031278623204542273767751038724445627003606016579394395065209266439618407219495854781396028001222255059215523839935178019205077789961934522409764640060644221681461368371773047236993059015643823850484424825048530991071569408405816648594493106481225147249504234397970527067110876012491737151268776898371087023751856032559325167968545543565208987802751246535746077237797745722757728245718112441080933970902050164188430738026056491989775533457861306678394556827136204219869547920752094233350084964410470395863097719034129967631279989332498533904565468579082046835696429423222053763483713452047409150456541590179857234422204395527907717258995444916761512016431977694443528237818121357932972341702019176479023996292292103588187242675015200085904357175743843130046659079538136458266117260848450694180694041193555581050480318410500671566194663223250068399488799237785336469395147313518830798496104787582259371091678660261278952038096317436970350499343296118101471449008650140262145976682845487352778388499295310179557106456617292377867547207614079307291094375604677309831170350721843172893671875060755958929953923983124568688974408068313748173335930036450114233527386699136031054771782099819226483656414296681895103949773441716175905362164301231470156796763325248732992915796891298906649386334847578756235308218625186244613146986400234475907147628607986590682251232430476219824456916500754024870919423411879894014286578561656183681107773885879672245970977206288017383314734162306823585603215182534122665869746998590565941539682070313482114091897273862374248866873011191433149954586775210942106993197057044415456023910631247172738858254018253264635245351547504108234079867923359758109983203420060686067108714730614943886355173200544118885308769884228881887229258912311745720097573232890078658302296638406787105100373612785920109447903372417602549046425215017358532452330478831847591150623713416448157885752270530216217980168759281863399635550284365692530253603907744324950315313004124250323264201757616959822867918243278019545391963271111165683699277577975987302108003156666050855913918671058411215606773828857217360597310068185498872332450041222965917003414133814317443252490791601429077327825647935881143707672418128645922220510174616851537001025831317326317709386049564609080052319500475753340390717809724931836198495573430242101822415504426221503885363588354366400129496742686198611293815435874897254162201042389364813290943968753622573960899690761263829437008730809476722199271441826273857243784180881895679976713134194357314617186830970851119729899476997214895964565428970499178308111818225308369896493828730284053174633365358887608151473487269100562881563235635620684875393759760484604078771940319353928567126497758770887406553670455329832659053809959148020093438816679286497123947919204027829033859741291764099824451199578163511663683817034955886012142156667203534247452944798200619164262697433367012206723251042447762734063237310507547205723651217620222049265023439822438571271046735161117077062380350531239705811598813971215678365696726408755782788718766307175138511728740596564020543110081861813613656484360548921546157247327889580421342975615975047466244937519033618587120068173844926288266109088688536623924229485751784662317215146396931256656966738267177617691536524638557879298964001732027964314919428709294082482649686392609345592923630965083421314251053642808977074943670622196915944204416594284828498641474034689030647731528642500483662600237579306072804727834629468224753727740136895584783690001389005900363171455759524430143187152544460174328830339151368383710436494059250311102372084736126582479285613024684870276178226519549194352639505093266669521679128930455835885608440348940194151881200534712113195392219457459073662385260458172294428580825382036522543144217470116746138833389618311698690741622397047584253846683995707026546943751602108465956760322524037184529290144286687074772680228669073999001044596530065877482372708482846161954481170384261089510009036377634057093093579902243289079975839444028447766118657976977424029596541080225625716244111325614360862275201999664656652639248093907475202230661141385479395772030909501792874960958046623756094775767444556404899213727888615210561242339741867534670683266798791643477572883514119892541578472712768147856356616615690498364313923034082032888144336929149956850702458182649689027558234200468632646205012820170008246546463894284063456199467511343669627429580260804645255797963042545699999162771428735032870491758852199681080628543943911872292634768727225353406781186787315690696684596119523264649689889170128899061546592850287965532286652325783657978246923392617314116927797911005934407317064083062348539850026777113907119485598817273038926452442651509507161041192820975702632424701018956026587406505174058271584196246584905208843498727313949233777051326618519125561283562451452321267260537819451102224954499537667503094967121943642567721599745658321587193269124664475234341067755913936888818251671159842278105714188471538032159545270234639182620286213487350445496839594928629711314583202030302343180475893596454187922680742192961948912951410331568699407928192646246620201479066048711479195057169116548622899045042287024768032236183432156583043339130338670124752881358852179283305168517090882539518043267853664881104797863495734350277612820748171033616746037027411859089235202302938372063744964647346929163149702731309462533789237587411665442840523798796571051745593775475203525803843811879625007637609214481486167899027172007701956220671536658586473036886167472273409265656529992603657083191557402668683522584724461972221705603664262648993386934484885218723207713429010963464901396116500824779267726487517894742919774167335017899906836058808563005921388826060328695999084533302389136022430715537345236553873396351890621432508876391834897975779035383538369718310254025789642334816479600132329950142722748339049958227584167796191292208769133663034576911354022493320948437111174107841929177553207492383246393634652249805316732440803393007359054744878181360203064991238488634715528761360103646062131313791986641326251625869329958475563278357723538409282269082485135095582795325491730802039577856096208822186718801033792711599293885335230814237357387274316699489874026754497779043286831135572211142482195671062120623348038241201888882522722384120878628798862601828087755649154334517501158635723922830321943813955745644581485389271150600772336325583447329060944606698374587157874448674632486275382129481233005441638250891552597630505551591103787061773045711226754878669056492610482679830747146115794724799439283206790009577608313646752436099678203306027455684993665796935632224556599528187390155547778012337323092503195840680500063030716320587997084653515061734859685968552184342002866588416972718075027029236395113875325261470984998155005688991943082945862122870813923452133448526112262541604263596873972484995131692813794685295330215152343933489406342526538597773244980115154772532082668591930286147225374437814688760884070044269068416711518996756414988774503895256773775737229429782805025483515043262782621204876307756132624412046615963682836376891012953845891438609501252745824406527956615581092459784823470657648536284110871501788100027253026375640544260466242144245111856336440312659006099808153261501331205247969644928669575515012011499163130573426247755068582146804212732911188817602739029806685864116616711033128284067536727679099997642955024852056274937121949985027111591010485871274183347987179592836523018668774209434473097902673865183543458367522789608620233915255104388329340148941087223872277594154333164372998445558452519408480659601543420399844912519577427259163334102431856305146753358174011174431443164797071051633373096987596972460512246458416952943042470816718222141017162899836304949496768487211719998448427694562251144644171579038020816778880077242185673715588227512909608322183493222816001565847644559767528817959520386091331171790874892471087169207360353248816198422806476004106670794693814079565463478233121998332940735692141014425334589968386021105025301413505713227618312365865338065435359624948066245534945957006763021903855047607263820829231517823297685590990724710798967022030966825291581119627866136401145591200043328426254477821044926617393551461503349689314890555346129799926084706597174824430477332889985726695998956205674390549330979465000336831837364043950556716419445768475108663565999155286193179758349314984120061070635845141507382941853229366108897286957188944453621514604619320094811420767372687190940605666204961478927675213749524135697543208993957182927927121541246805683829674040540607553950589241027989360141879335747537222397675922282537906240911294341012982513421590829665715371468777673086661020640636206155679436862237382686335704321352160069852041539194587373762505961708351733676738355314989674585496165471734108598890931403500193942873841614898620362407687870623486160633332772957597823503616174574637858851189523195760133880350302849637024181179312380060395925695768009873482616786528934318266594969334566202303145817116692368859110949664154237255588166845887175334828914560070940039585422597833265843762311870960670944662086960785140400886758096094007763997254105068888689872157187097016424127065611835128659571969180138612984730413704991534026037970913668230610684264041986506139852062452323170133527328949869550806687676280910359613869954134076621293178167127391523641836241445615365856151273214935404417690499463864416407483977697807549528535044737992037146086119096644434439803085184456205481009345623478152647162897616099703611419794368697607434393188941665893747798969988945655334377528888682065116678245229286991394987846152365558455761845135318908986604022845344863537738077978463407549662515189945299688141818374507376719136273439600090346090793684590663385707321402818657743597814304307214167875352469426628747938856782527898002507636823917025956036541369913135363280818117025402945016853542644154227515798048654905302388619838642069420787750264204150228670344445978404977219570481380959882968970912201211971199429347860793527719614694724707564779652795659221414603558962850587648442864245256581826992414610935406276355723831766572908623321262412415341314153452478452395165628401589828915844009265597643712232618848978221676273379231697221168939081588296371043367406553740195095164874105734283824032582231636488332040052332684718444268817105929278096811860184288547225354907854171710929639133798287479730415729910305476123936454052568018991034676272689522912450577481998436144520555294358474226400926218145321101502777557536212835879621902981248618899617826197664000741108220934786175575318837854363062013787489817797795054200063036913740815581860290520877956359198014993536187488787552415467234460917331721539272868229423010693647903576388269798816048527980996119152515174968405133575047660802124856196297020665450339770828239417770669962002974932326950895541945473172591560248732659061877980375920128054852386764917497014100600750694319762249927316513370019379388257192223642095326449849304644720450814721995242640395766457045169566601586545463658426705409379965170741544733056365028063582730934025939941168514758967827771381789815525841499257324653393293104765418301518386324317426333275224467437758893139491393404339129734782780996525440329425064490437604148071714433730460313345084810477042333541503084741416407495238191620521878443297211167622426040573051706591893405561314796174288603939878402671189048688001345032174287789342113495736660828966511788222442134504932073656161449269961829013444447804733693615895422981596058511074948867038865209177880099547661428300332694487435471147893037139527337058606659573099237190502263431444003571299235422547006148931627164854808771116022482099574089746604851207480367276884965995972090217073399169335188315864629807505491750301050724927148035531980868072931594561424703502539146436862295346820894241601963100337923335635512870579753742889489457345380844525413725626215840097520615286637718164656941163010537035059992235108023295647164816754239989399633373693441082727262978893605963913858024492179248811261491087267069684864188497562258821275833477083060300531191456027619009686839096567367808007211751047839624972439352095618143363426693674981776339866291430081545314900188294346455658262307024271373316393092403067765298860949418287889699235719729660045237656150900000215386610839383748216995289318986434303327687617357443914587706009104583638597493823901411293204470593699081709375016198083811524388185097751010361683759021999417040844214229254177825518474956515148351632988925136479560909807016031321766387246759044693410028675434033777127110637105466612528126645894685995301224056100462405330917183005362709795027076078737747563547191185780041138715028597512094320717220370369138460832346091701710175332877669618722953005472256216027382975935082405706202620576352327547648528618774702589253183149464173256078886265905580711895866293433686819515564505341692916173384535769901056223484686170993130537925190083939235571356501173189119023429808921162266925159027509349965170167294579375974278721169951262725025783360977339851065778641298225724277640714570883134977556320779947610179999360179533490834995653057325488398646645192130599095787564827323974267119706270784164835688206520678111565028628168807412581544187723395642883340509517402369617685059786664025598657023887350937410883881849968213576170198068225423660532113938970831034325437366260725338374582195968726089858531574044769341542574890271223165391262189414670069197806869464273465319444062789661746048786401761949676577593913701200907124955521846128477073891321340923108528001705163559883055098283717912264795923778644176442403598527091230982853735663841580707650513936352414786684000325215032395647848120825322683427986170714879174060723582017023876489269708125735765359353302921045063381247874637798273502963356571486868787108787668355002224396102705877723790222053520306277919370483484894571402477874503904272832256729336274287531471985870501237365384029469289575214105207958341711739734773386728200241792160144973113713550038931383505408336268579704825437498107603125729791522037082303802995590673960608400031161601908713707690723146535618184677463320226178481393177028013698706305905092969185745816254843820864477964781177613510583797558249881742724684790925682311385048124557535627870372330459996758188543225342963563027268420951974397794735111595987115245218411897750892954256332115896741632332081674592343056586878101382206189509736221308421042230353725615454618827909435698625086460310502504671126494182905995520374195955960304623248201827578544138847306728429421133562182398331974475359787829570713105936790352767489450359491753864630627010624706359869382891190014611172874328193152098144449632599378732899052368790825551012582917587757011732079206142031854165776657225763622915589110198080933657428726306535943392466805109560176828444147368507620204164383765941761424136683103076712762771979399240086697220033238320858546869014023517801140202433421960401422020395119744148505233160200827536447874970813004841656087958450764852860759242513838548226831079434191649916776389105722819928224450568965990501294499156786814052273237507876117800638916415832627961391418448552426312716526615369218801309326324849024406983929996401640564150971691298820336015966058939961837422884285089474439884928428108057031007622537494044604386214490934423787125835539334257847073083721625685457876371347821371697274470604010864114616278063292441679090734172918619270932490316947072667913720076327267016432132412344077754800147022088341836453968570651961195525934637588673380599747670370271274171913701141084774104384986652230488614810938469675985520167821383043556981574503270604375632553428190067879381137384031224464079360887744506450974519343224787396141245547312675188664411507180383952771972691470290531350994862278544409706968154172110455240029277887389824539200896653444672689649707409997815777908105923530215605246915199281059350094227358425967730945077559212153796610698692198000402941052837848180072487619222591071067000235537248152263162333585837351996393456263771465238104473387822300274745934177134238895407553715989033734744024590694158864653966964918936265270732235531206113172170086462438293216614623330320832352792854995986880619186351470456275938225608570863056380994521028818101510741451777084561348280256971920598447218448479228468283286292411360650915451185979066584089991919744404887586122785447938965395228528496712592678843321074098096225524570836217389935096536105176486321242645091858499057221901125201203701790092668985379065658201412429279268623791973935367332961905110678794206727351680649514995878709788839334766134230887870146331996335969575569447385086363304354738338719970262609018861357566149062743203999339324261430240134624120729122125824584360364053601187313916933902396291772151313449670764398466956128957926461585431804579308286934485431387974054999421661433076237901501235089432332896493321087999870349615223039628492271852191136461528074910315600688681213117039335146880625969834405435001607017380635389243249499284123480427922520674357030736300531225855111465487632875490817813477921830665155001116655680255593121297067089147171751902382363546068237781269536681522631222433073759007502870434204261235915715580693339826143855606223328779894204824885883727432159237431426699907206772058338146378756228831053522997906396605232840576467131206920144698780793739534177046448989921829926530566838222895882439809623914565751565353011352214752563348383699007821893281018221316696067446339910912705417119026683731207088250656743839244031066354580214407909068650133090913987591254211186610084109785204713939567068620069095536563527010026115351875706787385546367276359270530910215486459086563173944947159587138788661233183171426990664173277182787202231695123561285194281912959349972589586308903544841150677774945250811949733909755742496515657223889774736380492370356576765641242896442381075410288059256030520206031411359735259051055164251506879427580905889913222788151510736034080392999691199188229718054344468109248603959634012094169229130235760059238554536174770720711221541479098930379932954377929646481384892794135961745331647992981467755443364138079545259553697172617950799993934776679011466168993983957997697725512333425450881120239816055400496861496554286764613267096917079818840524685300290134030054186486353866236604273122891891160533265524820032049997678475074904998502452175576674669407829115238080750120986110710755258834770665737627609068747094891844552929691078396712727663751804177358613661137111591797766546587615070159174763734676569079706160306592277762618769053822929816304580422179003591618997950982533084189069908052750111122046289923812629612484393254656546209260925028419970128591278954232871359177062530015023291665732323128381521816871172173266050651173341331938775400639996604546109033528060003957445379198812464286901757508810689287902419960892518598143299805122953578184756817567685501331878110906478062185936470707913826570233561211444876941410083739819147198261671811651000249028895426864491362221716104211822726748730817653233368338342667658412276289352918058798097041189060576056762257691075844970815419413626185492893036015042958088681672686921281972823967115195043271257599251028895821745523125195109115361287025399581187076475278768651084860953424046513036913966079862571624014914637161502159409988680601590960181941782290263068694002862747842090620245398206391559144466392585616484164218627160459479394777527506154034334905245014123290323477392144629366685308802025187452100029205049128647755654324756884569814448079422304640271199021408852324246324365784448675477330033819392675061931114343944686167520312146394786690861478911009569136358259083865289728046691628329347280001312802369866208715009767464893976096623129033739352359260141675546758157684991297886866451250869668455303077486847549325606962399917542071967632983562485017198346504304222049048279564537067784667894286480153653829105973492425810008180285991186350374942539018283929369509155136898409163163646216355412957399064367217263507055789724755673763293594293325917091980803350826394823351420725160122041238102922912890588359155797672001882559243469183341142165907674521238258349529393373455099124272386145201682497994915485525921537924769541733068688240226546027435831295889301979415039558369456878398941450079780987585457553436391333480171556903861184100912656113428744033907057370341605761284301163881046655661109217635305937604163974085574623725317453787510417197215432303059749504457727143570424352673540152333286318495265694841533681900558880455538854179607696668378506564125923701800140557144307995598359595466073963675617876675783247055946794524726853820739223059594735717915766185652861670989716588494892469840641589297872083864668431833407551955339612306984582119190718648056248841293302972021513483305049849138914755714317200073275688179489287780959514539692472170792004438729376003615478008275724592573967443148513921699083362467707602860156580257435731622930916914573551914518065376954457666971364666650729862506166639802875268244519165256448128673861305640855320299547538649677417542854534513582270461965828530247218949156368623002864070426246848817564869439067500933450737033633070948897503242757115354905711905722006100264587441269424695436527635800937326627319082506545705620463924963776434397248989801563366552342666124608204473016222050120064993328431567504398374399275424567812969979818281422494453682003781573273253723250179556636584426706097664425556443102928994214351920555972077552181386950061719144954906842548874818470856176281169731082576446371674092230141539610256489595409089188377487103499438541864198801404699661657880259989133602383252881186140617394204453126833238043356029524310359691612331382525639964863882035901814275150262079112462402447103352033421067224673854006820945525292060994065021864332516771292641018683345318782542039668323734794191866980110222602248713692626120047710606628478557623833395094563134113662127316006864923392801835605204973680048563320128795295916968724530835300917230353705888934715738696493606714251781641358102212336625579901280870316179672516306082029868081497516354232074427025628203492705656280314460779185708414007359976019968406944425752376369254340975224920670156904440190723328797316853750599984965861299632383439494443556743923790041515627816281505995596240351305309711432283184595285234696483371180421610317620005637386750368501001222185650065064757420903079229206792793879258722215335086258803947681113133548965145530849889048943898715069613149883253033043128415068255556412107010081521783161987189451044390307319488259172838854224496682181483282996778589124815996763388509603477364765410831563194200665699490027294739039846507780715160462235106569710580451518085353950618874566921381407279275746889174780101232768768216941622185626794247219639700484546790256861161138224439101511610624135470609718318742576667455054150096640536531642626081302264962657045970701486384530593566423242870744452717421592780696918626210176769622426577424505097474228781580662565025319421621690380751317636707486136857369874022566599352020177247522669572388852231223979673646979487914237549790771391200802639042696876129602337751639063802046521196285938122986322156865610743296830149998326570475118681046832510582301590200757691045081688037276056850070335964392041070500502380653255624719442070349728628555543652600658297482099011591932476319832743210154292601466765549137378087007866198786304867019426210974422031059899451973069897761333037236803851286001853293963893031526541577668950467092074609180913435383331883147525073054874237581350564302109135084485904088026803580851464288901938670229396580277270936571642913447289303315872971157626161537118576682164151944764852529644045612502853102936847331779918212641287322353594718972238135373511741463609300385730789058621818103983675938240148472308420828262436404227243260697846762702909891802328163684434443421109308467275795015892144133256305142401611986303133160163737702251752683345300156021183570448736199040874167267740487689696484285650080358265620526377318719369996239467157138692169998299286667086819974400018862863397787902027432504074405351851113808292835159209103605301300683941446227500381334176995205931834449357271302063783755959029942825951942975235922269850705416327104327426251826430147435616156505470722228371612044157649177996000501581505009995914210188181741706641473948664746810294373759390662245572263114337149616054268268801235877224026753914242725342853837860055731993198756574460151992042826312420716888402145085669779069798525707978241164175312082488445718252809784049152759435981042469254775126837699480147876006187113774125622034286503555017296872697966684696602303115246281039395472524401008496331002559163751034850263905392749282670011037218113391402651967950846542412063804367877267932243295298539202559805837279600573613702141766173142369602863513952155791157345967305253647497845024956793022591118306366649096504699528490296649566047450656685248837972821801787158753589506514131769785289745210985571843407276367948920592281043425724373197472788566270795887927879930225064988012877146988078684096512397083205175600567564607007189184892747213967249898418585161571154346434572950752514653505862214393088457910204529184337091949024034278277114301276401087028772679886718721169507930619783976053644779820887210605823800400288116592039191087538841620498474834122959696985017984321053656648756822383074643588513315131730807788710627977245502582673631171415206322529326118611754429885038502120560472931191741296414665944819636284022164360449089134774744679480970980907986850610397619749428609922829519236645852457235334275290747116313950853795543265315679595895566291057047581140621210374947160121061500873886652139036795540057929650264818161909375242253934412183079487358363086893839419323792036992347789696812876574405487279962160842196519553138317797630518602496316330931730648602015219002206278445698107977883990298906674197795688892587626959386650376665899750836013078328747499180454644244946997157200313790143059485787812739989563575159676566239294504262529019469654645923259375039194513895065793363587228936996926279578140017467831937397978007373130596323638301833519961743662207908603682366508952684293279919551146292963987256808945599596294272078140702023182135171294136567821480871122242784413405328335214087731113531038476527198077898059790339152177430134825829868424762428402355265944219928467703091128881752044007097474091918009637789735361989145626160234402486165695249773783958442364106676354932582245361592645714026640735920711690980121055459674630146658238802592675228967826766746971732902432573594853410196162605851386154118568814720024786797948276853360707106768227193292558787185652991076099313728587876672700455144802147050711997712104476122394914776321642027247181930722168871521626101092142063140124992158512327965198568774710744650065134644504069286359697814166551812286097507968539768408511480148561632823411176955320390088268233303902289016492645888023722918703759786308607095986445156895870690114788964229895698180305931044655066356095495649531805331483033622846226566087943438787982459691475590020296114892951205639121868779390302126758310001782380044669518238328913604222955092421807245169315358412853351502539518005092318079966196422270099848312536393773889504088496482682818066029564416406383676380643785448583748855225430748279995514780394670981144549911963047977317721486885507064005483783872857469823974957703889675205116369834287449024915567888480340302586774264217148515918997884188974013869063144474777204289384808793915433380973268939607278635629965464545244010953707283124365899327173157870655810157692677044035742482297260616352148893276747224803072071897078484986979299142772558669011011492189602531763858643570484159321178829653625793223618299521616921421956686642509817404860651633494019427147918205354412012621041672584010475432663695559334148978802064527112093667182422476134373599582015198883668925230789303040392830538033622050857367017646585619451382543496194088004245767322370822460662163233931692374972544348957734686688851804540102986044228210719373207804758110621951904600418093130759008383196773217393645022462902880496536904022896434517714481806029308139469407247350078850617864990336491829168329410655689711502535537109389023218884737903136879219352355516479706569101319384538471430472763079727653847686112058586296897177025252104423930204100064923810898312268935134825692529721487761827740031425615059939432962576403906177141108411354355089175684179143273337971029944355320561719021220559120865986468796843615607212070663442301830256807036875757008015555810255688451097972671410787346450498740449789398073259855121760886040128438653929074238428550529792840146176592117283894803972246112643377440570666090300494197971708073625307267649265442383050845588353226960086377627778278799103089709517875642943588843050325257625779618457326797753526155980569919165374358908219322792528935935034082925162500154230975570325970012418957010562025449895798876656088544827646673519849821490200645862987946212802790353577276351878842747914702067079767043686198170302591216302291251203956297355262098225813488763433574723051792110275612612225673713523038737930492745197392271514885945610875038907532705732802106409688902407364761130399031561536783436047750491409429449681669525590704290657444429081409965785846741076611507845349225976582581938561462225482636854492075002582194804113473159256385864649008013636980235272631367398298439023689869102635236533906493504113533329043702052630475192870163663168359145993883941063528520883888415269373859737629067526470862874054785753062884639244694507901044605426970714373721576388027288547064572351509642856070293067017027476446366763030938435734341885860947984869185290431399341106060343338500907593633808547780498331585631293370282614066107851642342096385804792351185559151183742684563719444134841007558470641556469090824700240249779089973022884384736458927245544216026547842135108984539805362739033464418759829099836723815444223450846078375279051612848297957124349047368281689355976841517371690653036435637395208277965472763145168868328103751832063059136435615241854664927502538285640430563195166447801109871401079422392311215402953102981287123932355232096383602539462068281355478205677953448604064586332079940674815531520904605438071666910433596055972001889209964315032656766205823564184347328240103901715692962233973095390908135764191195281343186036047013728452108466841243058112184096973709346589078385033882835247012124650447028798550916624468732363601049927434469536431167283552416692440486867913465454357157071039797597208121534278716717243414884538023431741009026564096682663938696634862034633335696255085956689358387310090360973652607230336028183443757369208673582504035974319991216307332982064986834592251804126182478170830679408278088487221572232489862560720594879390591958767193410970394873803669171747293280890961302921048423347291689853454907947168289686719811188783530256610958990726700824317193382105587959169533567220381461968119290034765232865796275446400932764139161151715190118856576083547385057791172799174981174464985833933910121762406605788985137698159398226270251477625180024213321508523469545927126964348287017254033611688591714867412451181226843096656239394317061974302856681085496680644397628193570932494962718765382989452376574254576196516628616991372295896571952015949208384166420124783663885527235522174796905098001483526547952013626835381049788689051779247003311223190544985520723529056692798091130524427322535146146844178920391578589010549119317813276481134485372985389063059155203137086402396856465275560004301101541891307621929639927537419627522045681802176729569824928144854216761665288808606169463421224778250826975622294868082698886064063661393498651025922510004042410530260417273842978559422366934618170404965697366261248107293543845000686666200871787007193934933900693042842462322112024588935588860085413982872981089076397400293727524799854301886441912593771045835917366598072626096676383241780086938437634547614559356054374939480175652752088509366552017794286306715988390047237222957003129782525517237603135990964580141479597555126649726408169510780829010244586065228335726675913915738366816116478145423390799263479424596310354473995952407377528785584558364278282720949383310585230037853953637729527204215168002982487983054489159188570966290777366980801666445437161332924523329088291204537834743037806342286930886466113641445571141696338029244327805716191647705096492745293277713819898066867928904925185123397090430081745013437980475835931808848500293510979692290187335213382095756999731845423283779395898019199043141682749382348344078957392540466836524260578860815503337259467868501446037610978521077687003775959248022720682535586749309548052256458673047895325439016257508660760954065194500216733375829553252532847063277486373325692150634130468110425608118902956796984638130275811618444782866516466377694337496914905920346584243017533162572785037593372638601677041933917287266525949194182182164005040317325642457385964601794883744359172923535343316628092390711558330115340431872695314448400140909762993537878560021107792847737230957735700393437769860500270692927195048540239154352990595045795881577042642829729227049272901658709730693700333616996250498817514307158988027417084619526722975438731484769900280118675058315567395231319624023497051809307341017941419786321089205905378419018704036624070467373125961143453331665551520554552964331692531206709508655039234095794534292674074313033512725055575491626289400139304100200982872886732830845008683545042609719819935828309475897553782102677318442248195023440493805052820538409120616498051637067732644969919176193751129305493905828134289191221896545198334277497711282319695582298672162843037084094351844637403018782550595307376652669825474999357301025253093583280596952848934031773613193862610038713395355850783914569212377309251901840229273868579514850200714778971967084067915343661639272047865659965948022695223389318060905325932635605918244661196350676851482832955943291747392888365133885993796766996789428779705779348172986584771811906932985369428380278099899754676421797231517217038469856630108651976564370655085989650840915809435271855638919645037750679736796992782148166031379794333170899252060730181501119988305858202467374427265196350723633378212784678183094087223377042167681484889459542320976293753936485879018456447831817098661825049650113574212408747982950972779036652756308691798907459850736389637040858347791538376078241349054848953079794235157008735592014714684832617981308790075240275914844433415146523926894648888836305114400478147755132171418471287898092149978051886314927777107023632162439920144249366369590289805568282710516348412303916544198483222594387688173085536373869311586520225016109616721722099567904013767698850333348603125435580710880374379697223140412057009779257605453136971506853149624299399767153132209047033574967733615083770320108580882817489636037693051706796315089341260099754084247434162465636716404535677489666924974242215237241878988561081103910922686515287870599452400607182172038211151436025072534141376541584185420106972430900336289978270059669660674600422358693375890698991078000950434201136606416165845056310485795310006957525846202935660171998373412057943332726941170551987541461532654751015897629909438511260213346167992230380876281857083332741133387972029986306270049777791212002842816592682744157565158065628166320822765376793243461865767511947874280955419922727597251384833088239848590977173276830123721445372698424517317748073514430450143989385505996340740177337668188362995750750239060718114269907420239791009046585371595639228740890407730398386575196939673464348674716960988710006305569919173535356283655356224499304136958131756608013547585250410811983033053837415628441192840134444585291497088056624306032776499564498302697813717629537741098321218389685633002300837209555180140018463970061212169227946735787142469727367721806590328035109890350223030942106254064044692587023900709913191962074231218892394683338179916782232196527461258566988701401419641552965354948874308197642697445431075425570762419863505122622001268268126355347389638370620555034053605813867559363226759934949593753237002662256227013417403907499235563113721340029318088811964599802691819301352130455893432044023015196460053329266153184457928589206075646867936170310279854834261933251737007444119738087109944982663036462521921518442624581454144819648383599310507855272134447063809421574723086492709339062982804654215674681945612458202808731385762127361151461821526980783914840128362806125808301840583681455503746209031992002914804699008901426813865735020579188784898625870874258049826200810524955207523382794458766895879876215476535177776094729132995483667827180770225328902854365818851567351917562339152032842175100282855330297669492679168737578912510459825862367152327750355164038013545490113395788277223558696985824766508600382056447518001850505802778529970762313902516391878927428927641449250482154710926428253078325531748169516910222226878651955009740667874022123731987730264274544156373850302976851396556529167391378514486044813019808332880331842174271647322312388143493780862954658223981598640638795940789743677276889335796818139013604680533726693173474642468823715149667755007082118069372040138733327866616383331535852921643558493959001066494795640301379629836289260140336367909834846052225661939687555259671508336323587810617429188973518710642866176584534019070650161955097161450790886570995662276271043604165829087310138808810834504363488178104593243222426643608694729436841239182593228906868218132812520348139407756000426291245218221726516222087245530314474217758319277554535354409986760810360169337734753908460364999199883394360639923870516902616119848447811337449273050764696715411659709324164978215157458157100096693501782453438158494759389697054076723211689179782302255400758246951653992049586648277377696022576122071941291268669798868487617618285239277693157302224165201007054820723159253435343592874836451608848020921538775901593289519888865913047126577415036180429734271743943272407478366075016018989793767317575540654514605256776190018064490006198135577457966011077275427581535080498312799189433732539672475535497296461596789163759912507552267114930614584812270373120724399651531874321028034307380496087142670312610002304694520634691498482570687589332984075228138725646727247300949579075976926561633471157266093107232864590573694796587565555980537838982893369958057552684055125354359841947740587194936591608203277459564658368814699331357770380929888169101582327922909012655809731244901580388532621090526918512498745397733366877851143681511106517538877029422408477864386868296992811861474670858125637555214198814847890959606652625333977537109900934773535690690278879515173101533468033914173766098177809580566115466637172899060572880704282607988881263449754833617724323627929417147846063988616725642547550233313436263567728671872382537332186398233918387712402640045820279669884480121495912663638491433748911356750471724031908999461897041395523316348536933535339822865277237183668598046778826176688527839160882703239241219273480009626128398002562678726967110334504721237041033269669838108860480357229324601630208009264858232667713491650876896277559219200866209140739116452561234623084617836133787781525054085089502427445645736115456149293357090852243491105977286478549653666797169742819334993895591685254433898979710154177950380303793621373621414006593199342717602146190504913860057838928262034984618412243047222893366161797384717872023212597150224462127324361925330259174265835586928785315691096951242019291369042868673277159451673907532307249058478430967129883227059049609867464564411112152618092627897406547869353991821292203180837723083234019397713637537645777977277166212787807114861442639926205291359454763874085032394773389817241868552565887153655886328648128320695916915617455575244869984281208319369019685965326524665136873153848923967430537618971122971476135895698632324851009523723274571935280689942303804622370712635064422184456995952403513869790108848909102101551277161162053942935989999001283185831485315435902703649051586682754670329964075920556213685133393944314200889840833191180459829385032953569164579598859745227813954046861874538565319907162248608406707876174620186597353692865131333697489695967098374425850677818500531935925469056375987478320362377047328441414079970938084066241837201096453866728870523348051686780994889829130753191980704458008054454012590582779293916445819506170671488681011435158090198983440731999056277317414244387632007525012890665709518566577608892960030044631210217484804802068820100146959529939989335602961431732264557460496833344568112280442286634676246324477420993003601432364740966033827738962008397761885007380595249248079463449650952919265013360618095756271320749377188825024104217855963729448877683973892174437887740265209441320526387456761959936890750338944810090509162440602763062595472445973512205009688411448455290109187385477325986380037030684602712361346316742651823523184354297233610103105511963968428694888734527897246920147851663536570453228028360860173618893386586571377176931308599523643068269648117979176187261237781530369077591470475088687961821800306937056702340201264341686864558331260525262911362959563901444201253982828615922439987574491092976751323199991008549562058966447265575328275953713352864134441786042183853224590288325374775072822108136437058403380631689191512986155306486049926631256708018451280935646811319507028557302272430144319938809219712517161929683591668644014799251318675187289124524553030399690854170261751176103505771403804814204273480316958338456474675225619081536955227528878492852512151562456561994933965307185535953239508833693501563706144263331783262071213942034642471267827885778349148237054560309385091990124033873105602974496281199876186291928621296377654224160856851069308681913119191911841157665624711751626237431423481298874353886935194139786293619340374671114981024825618461008716108600448658873660595192355421044490730280861020069772008895081567929823894696959370272627677772343812587370569129132724740299669409611669999211762280107764216763989790394919939064099088666126822898400643125742263488887844374379612115118848740078300162308873964086958644912246200965421581492757303893214964636197266300528271376760267750040287079099526781134812631988035680113964345193334066966654783877853274909530992314902530332219488162431413073372404322190391546485071940845090677128157374679887805442642941413017489546025216557684989165844868994389190966073277198764255138412734045520671707126547831956577868262326041671997958047508672338814607003121676710976624081943827147060741308388906362061787452925011335982310652202058151060967552282428350692549573807515883501184256681795147405238726582029502159785120038912905206714944813635550521899191429709719519306703480013198366584966975134995803550026227199562413247200367326145517004420796681861209099040426868129572989943580695944930452832392195192165803724026417953030897604674655034237875937280612881926506816466858844297377913108902211873436558176277774205329290597707493728408178086073685808246589304610029759153841205552442800527190747107128384476535241205299065955359630764325428783072821224774407237895683275525415920069745993164348158701215122104255451482483099680729743481773652084068870707214476844607752061956688464756495698757280074917121526637749565556212449350658584708520512996142355036941086214146165060200876308425560266103655627334641938074247629400743220813969240606399863213526121961255475528985061504644822725937752922408544569194582098906029970637481281681715849133155694540562816328515773051823949588936068419162070218645788060148289837127548680841411047902023052172001838450371675116632434332638662843794127196326073357690122143565346802916798213744183567752838030979168271575991548561042769358361438046892868565889791923983179430574624953930510990865232011471572974104580836155582379745911188526049539072826758431993350876719544342026900966344536595191018907967991686620818883350350795694814914060951254764045161658985735290243153922113975093150319756046807513489702302589398185083284583883187192700405911978475407397117290664708757601430804531531652606582514814017765816108963142959230672371949284226804007634803050403526538341694523233393712602173528541279322073750874698054560072171343929456597313793496324942844840768270762576300068636591956332021093023785727442941083584558053705905105031954958903319905502947692701298705791115857855109462430867093298085831141493466393372281656779602620263946692844077757981451413952115993730091077265141587876287848820921776907469937601311835578423079041721114238366376284740868799164750943137915728752773682445973523193757858155260694821461556847366232569400498585015005782966391972514434300671552135820215259374689790949032972142937916707691508008609957003879336424975280807860258140469203054826717262721857726873322280348044743592223858284121234736262521414956927789241698703245564011561685935330054117446544366374178617179588347445511447686163161908248358471099291877155057794756853411172811870262021735740982354458185666811681499564258156376397336251575551319927452974338671997018719459749546844426374673279099575860342466219409317974298407120669445819802261199220804007496023076259455407805468463482328326881880741613035990357677377932868234356080855667413547665473222452096926498934186053146946918100647291979383142433340854986716188351632336210813250103902851365022034974942101380320107501810182714262205924059856745607945889464442828361794642109552485652845440574581346162822443563275879933790293521882124770611122016965110810570591166663748776970139690756824981864548698790960604533336239516763782255863662182992221576267726062267016474902247268830246983463208229047090214435834237633749571260563923445484073787281834854577974596387487973560077494798266767599444391451384533611388071737149015929840221643647415456430747921639042798223909060775783668174272190331565719583961982259760235453465322966341608620740238440752186458792949937946476408129530222452233250509615843986124678015730545397489537029256807108836128035867939688693438361845367046524172269425872685551478790981357781014835980948656001661033651234442321210905869639138944047995531236481968347044890232491940982373161086020041246558079145144491201092290490099960422396362528493134189995971528475344665181585282113636621837163723127935031370192493804562211239650889798550753649708210661524494089258357990270795092075641511351562962137527278465403152396691807757578260893278848948541606410333851051649402668639880807229792013812394681223477227663120393980331352979136230238018638572316533468435927823173813131762107166649638717976648316359312211810588688323167049702249887915829009970502290523851448829525643254760598085356625834877397669503548341517624124239665690289776826286475632261054874629318874947440615250929754882940397355375611133276343123956353144458033895281179245190906598204089014512926513666633297895521304431116815752612140728319295018999659266278986952880024225448886483178400062880825074144262640279545153214840856978846054681002875667952292074458957312182520684221749633150823837541122079337604603243675593155162937559677151695030717045592442186910096855843918477114135290736006918137220738230044630144354568148763406332132824096260273065536763737096088289290408985199737517971350674334635505495178847017429592104433244945082450515122586796282398467230582780582960962428732870746783987811249684851457538812341171059641562394773683679175984811848301521226856406897286765999140594813101865636101827795983590265339493202164389223011468692099623063167306696723201588378809349090691009093200680905895891085240801510666082880575851109555394855908144253249393351452221976271621176498527628236997777751873184726366137313963144634440791095252196303465881980423268149475781726169255142416535184508978018408716877889192728862637131572626502114571159890288052241264504168221050342187328015725777502333010992254871219932011450031340062496172235205683866593423387208828592174770356718269489127194456631996415953501668673596731081377437929834339237369161234460165020860843534598420071849412001746678627635592656152564896349770229066815797479624067039424913871193486234721907133917013482399255182503758699132622185619524511661324662891864026469462723681598245338038607637813135430274455535917618845094850155448593623056619499241765852794598397206410616428255216206516150475483381622063394865008172053479199767080293045688301705838308929461362470677246140713893789499131849606129951542420379851753016092585472191267415256251148132089171109101478052763153368211502803459370007767502841087626492000489471231898879187490758044072280845634948700077992528029645029552318862909395906412497450428010832481464422517295644203786614351343023771956479792729115374204159780332102386305103963543625305174281864124466821036142830831509963240719887868018736929599336213629681154798521871226543999740226772805816283597122883856571955780673219072022732048285961242380650171068520585770106311100207384155848726676809101108163253009625832485411973674993836086310527584404701816416287076522002830569857635980133838809637276776938342397743093604583307719461827956199535666418805825444108143612965492105207903407621206569206273971778096457843735798832331280689611135162647673931804351109520728668295270319569489984950854406738847391238283154104424237306451578959177055664066833511759968885583239854255088739278376996315681377896743782750956501104239036284590720472858688497586621039514268255573590591579803035359544312525964457493537225675354027108149954074253788922297265928344918077142745958589997996162010274039903319725020006347632638420837214037935444500777077770902986146706552711578613410819030836780120285535367037013522806364266006945234031731040085996830127825573440238738940742388187813288287083789538727119116357864631356381908758665369351377650451462993818379444935670118543875237274413937035477596502315322597504793632818035090481491092710862186626643002869602510663030167929138213817846725276250892305301175958438381195551506432110355256039828698085056010462179920330766250668179102176972011507857026304176570894688719935243737988194591632572086453683935022520645648766228336444749243239701988559252755043204370866577771664706489855161786003997110188426351141480818903378704733479084563985256106070118071770964294674978102764628389355340252507439569446298452894803863651668131770136136720027773328694648018304828485037690221815047916328754071433641125705792021369883007991884678027063239021387077130794455393567207948725995116343342559561894973472736034492406348119501629353307505350308300561787264289149102708141860073297469885394319290280303389077741804072594401438365105264406081615761411342064014767631525257240050756289560707424282945161784519866439535006265675720388086701054200726711347615113320671436005196638359251382307806772593488007813452100025500394545544153795591706335601996309542032024145115829018968518267666385108168855675713782687746961235693215654661713980173772267177794893201474765122131324314216284305974687959183162686098401944478769749874960583367470522034018888990285068839853206015527005088638414431957811129597363458029121813129150546984637373631611859224954325690147985730129187602110135329671422589852690993813609030943813961048851341557135572840893285907430679323729566560864801575357278389275505469057696638720715645517983229866541469158787644545446826536648980161827613245511392717028406102158705605667085635501133028020915666594144803530191748569927273828418637821966645254523456462586209029184084249240605783400999539175007222809446021553223085892759940770262229650602200119383269334632329176428259170044618339248771942499277918747310532495447631770512981401126505416562270065069367662370516028321583271340882788582294295858848723476497904898369050209633911161136414701359734624855024828066674984603047405840358315047618939386181412216717261711400367329366799009048615327201889952726744916243002924289885170550106325403450415522613871197314013698741907181051453790620474075926142181110949173668187709496574408210878887151192733178826785882714298116631270697436844464175902366666085758221805665129248074749109947066734140377767335522045142058795337433895029897266344999908490945923235718370911188242113259075083224975913743363037472310751180121960295021159733764485968790135116917906810283109339091755668559269994797151855435390506797921300572424123326334870293887036176041857726151425381559763192044891569863818828319253962610971439848818254022503759265278381695139636538562361825278998339738207261870731293185651943387133686155928696480632284522274646535860028587929647823332199438571092855902956584498227770697931909908410874560538242728717259065014932031956299764778675185054739971983054686297987802013309835011048285225593720666934790587328357011898849593195581462051258725591489498217476250113503292046761776175180372471384760404866754855885199657606157959412393161923890089236821511278649691303427213848264039770753899441917391394477307759449545246018284615198453348688114233281481847608068109810097223767609255049155297778309284136584327857668034464555235043591599135163346023340215571781425580821048129401467800606205484285964840765749628784014012014940234283565111151755999920497716619698074365281144445716180769542442377387669940837034865858800683924495651989138398289298679733047541712323592929409904011164657968603812999091358499880987055169755425050780734079779519856299429304570052982523125015110686267818254108225844645645895713088277683858687599061431266770957107556343215822188342528255137377515347611359723362454675899028834327276144030905108205245975868321034800327404246912069243883423299415895339933757409403814279132857319401470853563828632303723487713071112929236990390014432718649689833615861272296258419535144013072472383095685561765473454836044536837628582845288452237206301171424447723162261830005383335762180505457688116372991049987332065618716896243852011805158440989997186479189935346797377352608912184045519783323141082005257847347958771437498527523882922164682451320757531971592615889027251068229294685238300449031583361266303402096791380772894521872757860220601589547907975177754863461528320898126657449617789441187341367968578221658152502805693638709918441700652794200351954329485485455381243144485793024927120179598808825895133590191845128061436109544313174980293753033882393719714301754901002236371679035906130662325954281754443680841569064698772357630089285104830772951127795446130101984661673284880240893360668059967243829039225718821803602409516898835455304006278958298350994888399677514964559772234309722640586961274934631884634512803942009313083026098090499576167282753812734934551391711400474277479171294347560651984920168205801685472452917303506993023615216681476880750824262370358810092118617032810489125374992213524803635894922366141331622058882745166522567425526785416335343059730146633098301233448084465258884173719390486362221982455500220547711029316641885888462571784639305223272170571973279466987766728032179631942333908851001887965308797444987748362128692818700921662427878266135700270476320260732016556183547736077683646007991176017846015421625347819791769332165392349482841761240368517049412584514517249770166690562073401630318127410836397418911397434274499916156146369423708737920421961855912286133637394585838617487452346904712480623330551238395593798905549505214110735211083568762637845956811859014113811569031473208222288797447089272334540422054873208425032274804931886075908720995896826677178730525244648162041964693472759333203173080581151719872894898339928096093586967303310438827702373241663132167866243599687485259067299511658974584811894783959518809504717437246370904646259249310670917253322890738732940212648778505307760183612639104755431670723006194134205883857425004596275417625190812543445037726499291694214709637116218920804866930102828298405482242100603550330907654674967316227167983160817388346312667408333086353727076679553920588710415541241441930483955975653674688884560207168776649026891359158965103895796718237915133838274141859989407491809415011296270588360738116816838568429594612266298534157222661036739705155028943551240726375175725172798427060718983977369226658987407606150319230510046354201113785619962891080106462418645825747499985840797798590392003196658173329566826690485939402859363418959095917415882057329856338615653185783103374016892387070613278391417609517945680542107378675089917230710406253375258803669499669490127483985873489150136009394371471492998317368922812468362386704224949560945547927303980562354682318979103894156997328745880701652494079702571826659869393501350551456387347065155280034497824061640484617058721919195848735334682678871677927004789444876180906834761240810556228210103356248841867296057284846396289100425651051988576716826378854349506335358368868371166813009325225889225670467830086342872444896047898876493024209908626515890478840267388240755579842781916600837566673847642240183702643156914702244927583732770528652854121444127379588680317145121269813374832113199437629662934665409179526984598660657780251103198245588296435661396003172272714743048046965174192153004042767933924779740587994025744511746708554928132772465581987816260929107564293059662067864158870367187186113003008731579469831884441795928589520623801649514906117654025162589808341768131538263617503730333833531087512748973853072580352783863270351971848332590533256858385154675604896734821938127444589638971354435457547018141682688687623666989225309078565285126941229978247770240411895891050283915415635958343945936338661390249978216456380872200735176847004180762473657141197752223077344523649909941488999488193619943546815304164185935739204242694598032127146004838340295172601823758709749158324835974870652618091858259624488614758380968895908581403643001305992631259220689882999673051181649587724335370751881764325725802405413469048412274135120527459172501274679819025776366924243122903879940849169029444375014447679528617053411432545401037932024472428374267581055883454432934947559449566509323666475944413476616032151863773693733230241971354531083125353640633438673055135518115726362432280317260607733377134304435331761715635560110556030081507575790200238372658597027485066748508623469447763347091310986408035965826764248266722333946834449156475482005862647689829867758212569803778233860759106396730917447398064200164982551376435312266484279803795001736601015469857017035021515325781064958113228248735469525574648664173669498179543385930697082091114094288017197270141722657964063746062394951132754351145758204993417443699321129835830339636493887581577627188506311790378677242581265135960860697302688657847312945493242824150431805236205040347472320005432211315238485440268275583553322939070105521804322100786793855504676403980870617187839179709259647257654081473576889421059267292289487450484125123833002094505072249020810650195190177589661726179494994399224386764946004256454408744050411274173009466751255372003666647899386928221631189927176755241733869705364556881771020472764616650660752521293304004277722993872949193491036970842666980023508005423631155444017235103650715756284047203372520460810467384193034853120573007182353552054984079074383280759603582513130034849074764346694962051320815959816766442442423197190676783314317476988884403541580969729570296278967371248318805531049980559493799776628044975999724257796854071545748813131613949377315874917816366497185021215624222360843513392011636906341863643777656784526875535328060149376910693526994178599295130157963230759947799679239705905068315208327744023610631145142260616445679270111996418158174503984784478190275500465259738085463586345705311775706331488434091748645973182200017450305788885398984586036908237677737215715570869436498398337836308418976589941049707131395175614111596379189084537724353702898722541155963495379793832449666142106864339684441855726716565450037560335629988144391645358698231669627381413962464938951119055510713877873882210549767524348125312441578771884599795214345864871003766429354379635468865813359587662739999867051924387516346029877844214199751335835020188365097993071745702698295502729015956312815087010699562411203618935420955710367500939682604661935164352164262580922000066544539369316634909342180485227534318191135172737739423896814056258644633788733890241924110299372586273716249223827029996966548160719084699767890571407549606785759358714690115085981545868005755163525909684746993901670981522632335450994654197977720952377409592384257737191125433810642103376439294458906484925637085562541122130569185857407562192184657186388046685501326828174956345621565356832027281684967122747199567974185490433872268565365171355931951047677254214748635000363706228492138810104400849910103914701487112324661074166980866885335785836837093798547138237216836021772737047788101203439330398485451035136397929056325118604690273670744978795883372827999519450404974127816260526999070863251717129272446192542954371108207441755179040522030473281497434806931356509369329701943994323669646880945291844012186180763239799015976201842013322360529215581359622893753813458499609615654887721400561707699598669762597726832810883590608788780655550837222861842240696860187172699502194846417211392770776809359715931525767387947355596884549319130196041568736205574086449375230900396028005478749311003793661288287419222394204845106521013699709423554100707859417627153602145140352587766681132589451910694943721440278009528225168019998350392228622183947211001587068095611080103012537101698141172706921979586889456866487699877353551914489578252303256554531788431162870949148850688867536230907636027762640457125687774960962551827292307435816879535908119041287538462908682196641452675239958022958090400820190549974627072240663772878646156677691762389974416408621192948959654806731564180159315071091166465651898340601255138489569380757613289819832806532934855985081863114068025682446275858055611302441749922058200411883829470652058494822087322533570837140753465435381182395662954948490100254049407704309613177059305406165794680576501241749119953429748705321043069236330703791352980774291193790083267427830139069967011408149549273351518724109804424080953040170390522219656374058124528987172301830518560622716885905327557186147955388743608736649274511394575042858606550462164537615169247916541548634800495824065293570907563977422175662788465994161828877385228126447657295838884962005495735689676914980018056402071884658053895634886004526871606225622351701322552609927797724132470888601346861103081430527114926333296591012713996124743277831559838701030706718059325447995132120111802915747813173284800996957226600843385444270435994755753941367543360487885530296929491829831320779634910153437022590720310858113018807913172811362636536688951997403134377610484501911057224123347151992679200081246744326569796464870335772237957432922129215716957000875898812992075018473297076101890594331574057676390070209563452956054352329029414032634823866679467113292404670059553021043562952077938467731006681342040344688684787357854865462545376713768921962598524911219732567696481510258332138306772866188599548332108353908921517168909361841784183174044179844283667995016721908228061349857131173757913600875318963885816033101938651838139894523580660954093385605745136899613978469581268353023594632766966611702813530550362486652741753105416033285995439299444118735819182994719330498217022469173841388568313053061198952767894350421474669098196314620427121163302179859200884074710721673728701357625286189341998115288231515122135027820903810387942901446965289216564089244142342397068940431940454741043662594843455180578941170984160085450558963003825007391180151244491825079424915154266593465729103544491555003295543831647476537003612029151774827633637874404425717446189624661671759957376186889414898217629846770450100466018207496360098724230583028474380567763734975306995792621733117931546567317147672534099761624805165377152048907600156399307069735024347686367021610777421719129856813259623911344157170982852406039732841681302159430342563370770474429163805928640783107775117820097603047848415731524744610575058554857649743489427374983712094680476614164859888554581691920554217930034504571402124761058338466425453969858564048696218985538043183790732936767625520066419871472554851650637748809649972106618303295239319547589916795164753146077693477966243431909890459712937805963038586289770499400919613956385721332805967561484993573445903194113073255322742473873474923335580329172800931750319895604661910850000654730480657609684061818543236618239430421214502797469576415807450564081506144322022463273646479201663617837386236163008050155272100610659135750484568548916953203625538789906263692633157497289570029288221660525282659698518224986597421013692809050397153045698420626700870303993940298943568339837314618496673088246170946969656108765560213339891670379801264457965022510846661943791280102357934151325406015039975293011069356457282476537673744540751518270460575520439813733523212862622764984932366608746143557647237740539609017851796505539498803346382814649422757032733534079248839437520691469986533976267364330112794934663819467643943653204229487639079305957573872226234281118276530048774300157177480566552801010274160752485075396680032929799121958412707275268201638602053700669907044594511008887072245891832667406547633159721281444836077412052169679008969822584453716324616886260111484215349702849236940141254463549376526304847912119550504615621592394678711815345403054904037228583092608935670469510057445787331147166353749635280963788852455134790296492064533808152249201759984057462210469222899841555318126315677338786901816236375611594048902814753608031727989496689964577589778931106220553185499221023757554088718796598731190128195486777539319206102361235245999338396437259637425167612362863243872289645415183823086524498844550455406774638484446959833356172891311506637795461604914736290735104322605653502300447194196350391385495498341286504665532972960939607219438711249706569366700910662487294269360636546337427865945752791087218084630886468068424921455922103360810064040410534208174649417158875023720298843730275810944548518054142186259921714192045573909034413733863502303438443906141321349530420057793103129309862589029451327112270825553171923769071328945589873831637167236527551472186739002282606318719801913705426774578905461487756414356085598437566324409784603179416707724912109912351232048394692161092957979578410842406263693653054783530278708496259667370293115126203266858151762483096452022032100436434449281264601938788572391510633615776802587622022279537735743658213901875888721136593203036673998437310890815677238766928537520856170203054019512016297609421838712169269057265778761866262619951038573418095101914133664436718677033081072560376196888884652779696077569906517837042266578091034775319641254765785169127619755126379354956188381421754352391172896542453612354939242374560393234041062023572839268381382453984995605230494468236442879747689041095446142479728341544534729517272107094748078954352868102007266700247825098777743822999429740011169652448683696433638956386107998517978468497876573047652999297551730255558496818450745574616566020225367052566186961115460085150214719569158729086916718974137373197694631650283969707553110198393207416836591814420814188068646361858539013228329367820468107802472668232962456735545718456122450937596103720998933368534697283285664854555845772494545255705631129723789460749476753573336310269358551662443576618495855186958064143200930058326233381260117544143932557428507529545421644779000830527292225793328158718697125008974672438914960394035819801015758256971476951376522133772427146137883530967376592197778851257752412762762114471655057032136548493043766154574796110486956769288635604911701660984965479489463673426426001446500595019164919369976888317825039188728100526775812740740935890703553294707893120739634619358155960913964321445834041932337036263786725679093807597319452889050154200577436052627723901644235995163391945597516632726270124686268980290386802271449179486473438356552192627956438843189784342979362078463328780502906053946093256754416643347964927176800035368095719561747902772889863065334689448554489027690442381796005723022759069446629681798504205106782084454960676215480690882795192494649311736868060781264917062694287120153284770153117525826266743626432200428275571569921897714284551078458121251128638393813962548307957895922133647236749681623948829417674320925277667273610602234942206869915852810779143729963175195888131007221042105530636671330866790722500061402603116126901420605846857672357862928764968839804831088167800808039038621719045961732681659520731890715486509548018674477755705463258231988578564294470536744641009340843645692563624672613656622293071861491457502320067335216984220342400128140608766343944261470346647251085878680582715303236482694578613018290710775295667767917237182171167569335661512038105400188505659979698202476276153367733975762785798508483976107937882943515444108770330505016069517332392891436772682729055868748829484687708552639110135762813458048750378946570946079636040381163695949276578979972780852659264747763560829531351391737285642942312269226390164143360951665463617985321695674126417911057817479218923869246281339791311770091016487685811110784750808820721335943794037441827022666895182966792664367984808423273428084943797618743843225762911602551731459807706852830629587380285585975746975939847145278896474125486797897723255063893579096426178669051121429660757969357391386455171704701672686175213460795651408471616094687101262012032161933143511773003975558135264273185962546332511016863723607488713750827408578156532980579241243480881706889352611097630360880299564821692439720354504326708506748192750958418749527965944686946708678430317614258146444564317937691663227111904838312348635323231083324949379371836706141161886316145371771791836666233114884434088118424836543301302618013276310769536764384506800565217880391492119184208289585398141060395762580642844932486300302182620841438644495944479644563020648246577298843224523470974140143064279784371105648472124730541655707128900637721798334336207111017798439679744132393874003017501543266634895839108473939380821819685240377975050769855961650742997655914862892574020239717601879809895878408281741774635940951069124872650323764145677372537345370269386928028156178440143478238192606642738022903587363212740531635833107333864632280752900786721082573649778624276097760462819403340706387184137032598432040746347873523857485765865223258967912401338610335819798579393425887488863228231993306743913183267265539719457436712404540825637192084501370611707533427348186253192392589530442214133917592915522492120373318494475691344011587621792385677912342405430793966528697256846258987271433898602184679015597279328093715693401435614324014815902749268303025060124689250251970910078433258338061168059384593946659214987448630478964296584252263617659371339469927453459830347866608574822026807439174504559756356920854365010999153906509208276345346552554459248348042324424761295442791901076387838346858074023696316571378059190703426821097194706512104272148940419953286774572517312023141885814589824903902250535386957545604940875890977227601786236496341537818932495244466163121012316380852104014953888869661610285743336880865877573645454823588349507775078156023634143888356676889878069620055820144136663628716053736252920577768004561827281857021080741086931561743180278001999247129703927941253149302652912333923087032904704370350370416805430671759860036812579456045234065665367590491941201000992128507866120347856691475572692355784222304069320622262290915973799899187494946794988546086642592085242540205515731975398917247760369067322860630604589271507874488470353081223795220355900193688427094540830106978016509432427682179056460742074426433704204925840498599429449705606845944146780384720242918869447539925033525385674838976771644680033867567527422140727790180488508686762601391039221359041142087567757499734936258220361580092444026080023494788564818545833374993038918856425193951777372377292117395250901728211697885899927461907313538895229117705199625329548014307072930342741956892247444743984950369888345415508573792235355287561372939328938880320278078628002892194478580523544013796962950500603190783818790499641011629889984932715837758159378199013252005258428715559545206422297542419404897669713080593701856752395917913011012134748632981385656579644907484496687371932929386555619480486630898605819690680185853098329751743914836462761145161152901095219157905467797877097740442994885149730678971083659436355155975138518692504715397515753282708750740021636763831381609401449372735184867201132931197487142043928876242252436002799794110353747405496402393903045146721568395670698065228919385526298095623041103363241039920502258251896700861774252694331598402548275574466712975504285991513041441745824831281973625008453467001242526565065278494416447449365043803887950810294710509620627076254535473271529322746251910085038193725251500169194236604900760583984239090642640982639039271755733182841885375776377929760272615701465632905789726214458879387556600745650914065021661194393961899108673143963215717413904829220687399567340496098664293750989738922392966444592990100699483644225959365615601639942844169485730256993813906286869045038135318613531453029131022697693602307732287997232275181452509260744991883365540877458683640756516719683027808485713320024544018465170508860330314227683266250951580513698291251007618673709560997848441168688609884089308911505848379527374703579960424141817018095733396989004073526707414790485470282864854807840221117307558657121324102352592188236752879325038852000323653578085416216835755249334731300428741414938709531462796218189729319279382830704813403330606010305679242460537043647401891160988882313031498669021186658470022618152019277795970496469148823476467096556659658558604190299739170041287802613709035095535596022089724091810303285272784312727377989286323004499024373782836559771676143116789125338224457747687262894215710213901216697611309619483562847328529908222012252441595992365957709683238707192864565146017393933173270002953180836080556589071859105646999079189770145767472198897872649940095066598655127709001093477177078922637635399531107810116852076583856803904239365866040462877711669628342504307399730671852299521486908520997514555576423302774751270645485193114675591746760057465025763461502757457678758003018581613925518978016839672170590482141255040552671462195374776465382259283857102909193165906647712466190351029254762772395815482517209646991013258419892631609562034955885396403821755134375949665817790155078311354442372170262576338289334827341310434527804031658419453424279091440060784576061064535195232144446482890254932832843425761059331299294828929693425215203827838853149036895415553124499277047295705834181225055702866583908328756192248308590112606137055734115813065283907817730153643625372807251315338257216963160125383344117135841859104365205168231507387845857996242325632654691482515560259976525549589580927261335214617506558484624140118089059305236791977272051894396850128962459699656233909287655956509203335185617956356030185688546299795492934522838913979487093346087959431245980370917049836070328554013171659889343799983498657873882862714344888803498398686633778642887444053918208296496706087160762330849985730669275318930612360937296763566285246803859995106774514974889452456396835921806238428418366466348734169319106979633131395453279651051598491946242145063400716965194861736794817600718663117614749581449993678050908511635122976135058587563840339257971098070387192060664219229395545312013982928539057710524061428987376280382626475818347899257873006021915181627091193762312063484078051108558758366324332031337475649399525381177985069505829416269435121239282398547826884244539799330036340405473830698044681431276214329981697815003161328497262700719186112128944855945835714925859383647447516286465457681103159076910199548241287849503957560716600172174995907109495680174612895538296193272996580454007804026565397350643294635339354740546642864917910276624442377518986928919982221084572822667735783076653447465145825824509776025376583127750534754860421240638719960272976524754881974994338097579045656254602346284655511331317703165512897531795859244578231157776424857068122439962330064745102102979232421560444639713590411494319979560024623757952753396871915878471814144538766104309600541494433433309729730930544456391559695457431775225121975101760577127765859514505940429898134342975332084609038903024384920895895614851702304608048658823141904095831544964898941081688482348816122565983483302344709809139711476617180325460463404146987671659683423547329593917157196355605570406851746922023311330060014092419054882924788189835980460694195459975513829605407926750498124171409906260355482967492111051897441211545695428007379531240520486865222816523517963685682224780289463201429912941501408806267901282778308399650949220974949844729990801783664031478479799993867987473873594463191477233586012163719987410501292868680516325515953309574943433639486445465419587318106221415133445436660015747488030518486440445779076020821812357376486827466617281848159995250728490849527154384643546227897056745986706393848891593857703931576529734586189530659858164821993218539063036843662851314385067595712456663273822485862344471124501830182611741338301798484021651682648877874885072960661135145807475150817603244999984199232196406774879001903087801933540335452897148781112541211634904620391576772168592755619301277776149783986031581568880087283581312134437507722947265465953547485988935998113657057829929163620283220374054780202782779840915563489130043826818662061184185001279264759099123025605706480395046963573015725487532935510341232928049262883103714520568334488208103621276522760978538580781392570770354855923819338553021518095106190292520022503900281158964212010286856425941163655147642373021594474560695557206736455168258335348917552442334392018818813639905400025959426227813142031194700028233871809964023009318157168607599392828540693046898752725639883410395146086410452711335953410746634065967965377129765377649745812264905276551883435761113277230101365921738078723855261088155610864287793663288152781887189629714952248116180954761302266313922458902638473649249133045179411831100027895044461998660835128817584098785951577433788441926498325084494747992177118383360672813371955142907371546865783782795614454006588449294130907040849477366961513167134090538430136336166137857481214761202002470236809809865159462606450543580146018334697381723790430883872225703725105719690013988619383526003737528554357839050119707731287304555887882902966495287222473280934986995532138509713598723298296970852971872223464319291772501812449194406941303850847576660229602782210868426796370500290489346819566654997994921214410904745244556696760954800241108220258773450587869289729416723915936083709120254025709450603396691218050928478189806886108585405126193769553331305701929407230010018142496309417233374879370638388747038376629460574007293444782966271453669560675279038868908501375532312367299760655316098221666540849097617715506959255353735263853393715290306114090308359252723448358636259749705834797874877777408532559018916658516048014120910660749341401217538305919780715032017637153622819858325612426743162062572862302033420657019774826822806953638261223658758787804758045731138335201206577417419868694159415365535433945960829972699712683538035418919450629361555746867997350903979144863642388460448934576468236762832983826060383406362955090896107776168446000914888505998770662953762883931254121863445962418212961124524036976680233104179897785415969493680443649239631254855419094523596083804177351759955378959544154895958381430907152071092895761794018834910242473047689443329441846977837375984376612945138277121085277583434381934323849527336386770268539054703396821725215152892658175566845883020329898720590130786956231240792404902508897687737369195763770574446269926390375072114659326986020984152183712158418983385839830470589250545613655404847568054212628902728828596806915941713226563673934487318811472935352991280185009345872095220051299177898384629760515774014245002107372936537635620720441594504233251700682880407351928626470540799517676459294181241342485901544723948234450545671327977784136121663502670655030008724077821311939901357651497146721637835846960084771753783628706549744213764703535888193812936114757494351769425233220266892312453067786894206989575005428467158027508766914724442074979498859020581385645898470377783175869377726675874931889962991474769419755268361472905334635087458583445523229186738633670910567798178658034417096370867194145194132712577615660593515326268402960178853215320972202040800914933619428201012126448712617501564221089587893091243355019628287730750661901900021854788207030001841792016990132927458002758346710405127660856090145962539397832824963565740854523661224770409397572659973749454968043320050495937661195200230118341923221246424782611797375435341537696282249876088447267441079621573535418522347238186505708541451709381481481952939004219095420831865429426921476094733095858463538912924362388953376023732513723511998707687670411265551300188782688351471970772279474170689036742629339129753699232517997669534771504255290897613729721332647185503540886528314074967133134091125402683327829996270865227699802389491367898543060767970964503287225272084048443570762168255342445167832888270340328300527897108255435749744038936319862104036939288448120952077789222033897861357314015551965950223653051158360779103386720025020633525223657845198215339978562349554395743497843866024904303351814748315889601432548088224137638472410332391710566599966751023653063243803213911786214876420496327293468639274430632570949873001446692376914518852593764278202584999643799330713471169168901617112802595489175986589446009849768887749481887497873199714870128156763873330084462022427751768518069327859746684001054755941243703797534952745646962468279756050231213598000513203229675951644472670982506114441168356476660189713686447254565185881065906147965602111137573122850222862951917298827412974687797401835903171095156527829879908251214339412513438118485180090483747667814235734184583555566280710565088806965958850372527468250167292287921033641075101867435191350684804430336487980127417136571066205301412288559583830681236615169273362090985162708325882575899674419343968153197745351028956470738401726625678105274509936526250672580761163187791874285545495944336065315589095271054798469074030099097623050005900441314614041326429636670399617653604320806990589604420899665930443832125078282575561559305562034308780405629027499166697456210140951270933525160868077051576478455245262693403469803052256123779334867119218404533050171749588517218010042929946379441342967568483914913261464395186683186466924737973949216226916034557616072075126071865495592669393075734001739126877837135975305290292691412956243201408614246772678487207120893084702312429871675379338685491097671561795374323062953203360137397918130172975946583604960981781524320424917248032302693617914006347505045602472196953086245667601475346847546024546769297934263844789779907008052357902840431616341981531341147689851333774131072591505355553849716748238493685406858039765300080359815630980957047969621661759621247051772778755434577518719869388040212629533150492516603089265869366934489856769014505245459681946002725348033114305126123162409311594828452599417648028682188608602573625522246813115210169159693664951350811910008943001212928113427269170926060432849105577276402564861710337424553938782554722864991094725475062005223483509762764083124537180226678433005427612714891516403277972084143406468090195167623058520566822508271373675413880801601612805967467965517860138483727861887358033959899678395819542639499565226083397641837985361955850265571291477464603446437076309828139057850516700324103489118085996505435453920503671782959540773876579336885120990555923281941267481243050457273488598160105936449475476657692668206938402237162151578550685481974248988411330120293556591197868207910774628368138946502363056861413067625675454969007682616444341947211788318040545530702404451460276806054759658273322904756652617748557985527530951590791806766068998349493135587670070941452545056410221670067022419744574237811040470766563351665466038747005014587775667123798822784810855315866802336957390049224409418704781165393136330625494967802411436027146408565055701740708721350608729440661301939178673528959133199282868225032876323451346038733649974392769564953373412299827843072748195982945248400945161365861052177824068002150713937084636048120491880455157254620878268688907747750535895514436563222882183998014376793969191355793274507271912337743695404655486619084133173644172557128741574107286428067964086810516130669274578103964485999719409379299063673030508295386728703438276766172857246370039943055009812821112645953808215505073146415126798628867574116231363939605578756500678833583919517296037954277413421841788633651162646025991537908468882569457913726385276774417118971757888261471894209997115235525064487993780093768694102660120890540925450373925919527577911104035942242710179819843921422393955933439045513708091647168159282331901856775130583859536000429832398727988336608811426414975658198365850514186511339868449003121316064397513745821249936260867358173069379819872066616533089698301315232373410470683213713944034213818925729597852321612122653683371823632991096254482556551608431138582509810199297137347365671442664341297227313991108938115717523293611912303557502138605994352276045779726532706267418247092057966416576863784624905939903072631706890093248786259942727484957556282628502496936947114646391930013611796743488671360921850850313322041613915955946003437872867972809771650069191895950013218845231350451502161361166080567583965907022308220994035915778948877709920550982253096444909298407819094972300368208558273863435536805525334050042467297430718605699797272951481664665119976410377055071628723942629198467192315475052335803267284502549152211386203081675898709946460287547490470678386148031622480026449574749828890800332515259654004514333087738153841299704523590217296533255680887042286965387311133982335636660157065340273202148901358199363827858792047564777787364103578372035303223599285349989481203957403606576237890550345226253335005671494237764409820497620174868445506537787961059851175961119578966282630471088061646900753298491139287454756917914735929228356016555954688282073549350895085354839092253143528923904506198006274654688449901924304559453105613731314923197707461534051156106708296771306919458461742150533405958739558037160968443699605414907514133899955076724957654872793944310796243697731063042245408194743062416209009184911200878662402285285973567480219846926766982246244013467491794639123909727420953746933602585529964992710619475726929282013013459233345284188986778849848582626989356036627815926066481765359095749319814298378175520340604079756018219760636560615022742934119505041229134866251829857121900857027637042244190970725671720319637142628327806805376572711628673206098551344842615708750535113672766566248145141925199464015432577268314194577592575493338387365399179521040936749990026762603061290211137456737045326154882223863982829588039611093654322512507175052218290132461733927139119798333065366565605073887247293445395807758126754253169045501635015173558910895626734536235651450220042644102598003043073516850186828490111222454969497808302612432105071889303313411661847350940146171872471100372484396309651107227628585808801329084234584653531772613335039653481591594227302697028417385639495641715762267357124469027753523264210482804927666050230033785092415695378865784702193407784155829556510682196062940619080944581548412863695395112079517030240291488936199760693918517572343925998064626756941143777532501715867738757023734259440944746219074518521997943005867804463177452779328349057043643057906271999802845246496737543607198876960795413194998532227199343563578813382490701645798686399665320972749879324468387600833257696612015601954348702782640885158545096553187767225707971458963929957334458593530692516660141413865918984263751484982761823853530699786675416892558516053319820552519818073466635480092347548348953606468147386664755286645729589788312021537640874752241051044155874760031894970909436523824247247918262924528761088447402088333587546900023597890941106178043649499356336068818370620249787637423186736068016536511841633677788636136554140287817398888382950464182868421198837061520810193839021401371576430991230880423870733455367364529078331181757138766623964322689670776698127056328215343916857348306308902459838232532645838582423145030956064852637309024828321725970118339173742348083248967771202010420679768959065082584679685284609025187119706741265087039589160409043316113724522390419246609886470124433365231290048660614413752473718147287591784494103018977512079485035515121949421584068388794561530686022015674395677948836451880372317680365448682493521039535366694220777764111509587317185317334795679698600739129057151938586918842715838361892015960528905248607664467761172963165168308382135503765932669321403232319869170991508177122104234575926363647581375205665983733822477331118048435272106785582183328587479114718278972520716596120345811803266752454581087331923278012678747722031866704750928608407420154309268350864710048761484298306799400658346714159000918631627362827605561150456943138053413206616274173066228727409556911800249819797941446716401962263594915388348764873070779182738697360032910469154021701994185671715470064713832444707841606769962354323234062262506481843966644854253137199024905174745393491387890067065632925621721958695959132007999587898754930625161911735128557097370649157406549712211361631131464685840524644115109042048968293515835117469059130264168272200734086614626601139226974831729131913095625395121793250632216282479910293151460387572509746740586586351195732910684428511793161973700203412840608026826896382343271507941073087138758691020788165204504664511528669845531601593201197957214383742700419881205548640539739462227476681979280128193494906125241641786097989598954077080644860989448725467178871038298620320489445971533008197184040345222542261295912285182785890150905342560497934547372128355226336346954434330007566609271868237986755393373806369324219379418753712801149047225762983313751650160918317966505918842462843910087038749852947711600696245206480009336686044647476527454277940080844044109857261215057305600473886698204469830413263988413787173766791046575944895007463406731435202215866885122234603788735397959199754184021334517449069574492691829957286833038876295627921982649253063166201873241666065393276732265075751557781747079778169095229478375059373596404728416134987619679639401837611954907105936469654693188862222974518651017045098346460226881843738540394404126169499601787634867313778472753818737605320999515092776120816712999807561547697007541431251097727329926375738959106429491737967901516526010099562129727307495578383575105824116612274190579341792525498539581866731443585712217265424640313083219298375038533062649645783132803688334966247469058895572179095078556405315208818682780860638190869902508442296888476392226633240162058761171790493969257787644556186609786120610290522231283092862199475250229024728228039530292938989868350915125368573741481185270715330246597464706916997864207048244776329904527090383398347531070135335132960479689506516552459261048796807826863217543739731638820386363969606404525231588538682658303963616335633793763153612244893607933406427899213444814534205623560629688727822031798383895478271873820140138267159244747324337359506013754147291157986790942062067661916159390490163082059885863902943995926706061711685415842069851322843919949783159306312110625016685087039418794202561133762500023744927618092248289818443799036900477490655423784501528165824775650829738699425753994520805312873401992447675488777413338952381919446642844701233999530951831905504640448392659739830669447822066265966252616258283994465931170819132115148815622769236965203199077139980105019575897291683146559187289783535579750026394196981298014847478951358344389198866413762339248952055913911348482103598856387402673258475829647927580839131206984163158740499388247103926957676676159597964429179582043778805031126023711973033919216021880757946618837264774268245793029201945879725814285448799806538115303641643012855238977603242237910338652946699483543063941938304518385114693414763780919500181578061951457052349287459765303238446982931478162937246108828675094389962783960444647168425126849744767857334153286179469031599924230614063659870446230414349402491078923211017514719754317431209558721573209867372480070186142267579209321552224416601813548787056754033712909398408679096230207465628685437190376353171888308623972820516171449825280402962316188409294158485542193534533675845304844534148969004852450291693045036619847756642254016557471834332004027138215877411667517473057543663910215144510248980264843216691887208110349572527814973183976254747100773321862017473535951451997943123601471903887598624659171271142371824424884288002903617111563451360099716168928724292268121697656569114401812348610170804504150619480525192072198719255833632965097811936037513488770913180843776372633594149136208598608751073759209419508155715879023345145509392385231879787034355956727559114959098563665710412495630324200673675792957102205168847155557283941700914740928159873506699658557017855423573811784244754673802719592140351270724330731074194862770965431300553813602256103781117686955725396505082255602212063589625450261999415277878981213250610771536601990692691083510743405421680888424602559912581602721740616727073864619041822734115529521320226878415095524619000640971602760463716758579197893509610824379436585705423847511530368857776043887603661345552840632502863547646689501606252976359472870890458999397397215634935177780685785717657275829442487077252972935710804547121664168552012111212381989665086483274605245719176523282577578473937090670247779951580962465466268630840521387472232084361425598443590117703053434470449528662298439011611368987987370594054349921161073566740638921456517825911290229875684843857963682105614314906001189043970741626419082331689574342001665314594778422366136679821591998795457848847472114089423520861491765097033584587873438384018974435536737047245720414598776657653261284038557971788326549217104686888485793497272007152850376130265525083777552007565087925968049017254824553508189910298156860457116996008591027786864180205160334193417583119316638862407298980167429843891125312864552550257723933398992165918250348414395687625297956969933757479825005144078385599552958261790249146750415405713249217093494249598735670934040655597026920515486756642092540635568952869912189495558464825015362220404286975055781048595722390211232111656193406724083466619650626607612976628235518769105295608625106332193200185404487236123646415229926295015563003149858351057795723063772715054945693231883766766397869990452249553298498653734538003108525193993894398101743236012769830722454607833038495982737799606195705745110734666536671610362586654593629262148166528943601020306094073660713417323390075354180626621793898610731824453063010354776580820930140213581615752301763483531971131137021128354241716919332135219114674032895172795665025185844558667913883250008456810379526153051452335001285203221644550831824608525787841362772117817732174526823038591391792918375119798841289473237549287706312046923511867432696112323912506861371153755720382651627446567008120640048129291280062727900062580920140674861123713595209518719795249745950176160155550869170014261794041382916654263610184943322182647153989814426468305739778590477339087750362473485355457530822892873574532895319784454826224228152284615935285442690828855442973693741795336978897811555304189634744506470202396497925108886376486508730499598830564423329615334384272934973569924088355898316335529906936003224566605668344305360970646623917959714850329773237028139208750066677937711021599312541201666323208254149573706921094492277897368983038416186040352249793624603829573640185079730661988140443507804480347705374464587045652238990439600445273949214710160529328280400837083918658901359801299652194431280662159899621452296880851854261277485382907489844634890113190919726942081813823741634957499724597608528008061309563798293431490912104087773648416856008073367171222907916631032455934352670558547697383678984557998281579559176927799267672515733689590327622678861717539223383812986823309422946054995236997475003071356033214849235624945631351036847312193399125809231973925945814403082634072045229029357180670988873472525295904940700107224609685707826698615624033009870555532042582933311776801312652239616525079056141454621669147646026402816293998047662068818044680468651872181584163551446705374812290545182215389802413776535882770397500927438358348807857149088906281842737812674728306021668979372356199140699153143712933752443700659018176199301532146178291933968329503517867336356602274389917052873687510631505139025121335239936916489721211391604740772195810750307203850925111287710405614801630853738791573280417545392906385296906341508196539914270037772877292391898954913082604348131303596973875478806720027632788387818758273859262564078732748700512790962524883906334073407017756416148321448259118288739029525591456095554142211342811957466175949882867424416714291747382544782837940493531729687204724525194191757250375965891112646041583212206413268212646446185802794450432970238877810219795706063592882625616846134431035992764236951382612784994888219172784324447081283572322640601854427384474365875946690688310560457427199534964936964226392900203669596165420115485444923713027554179099788393692203237083964972783071798887404479550110034935303885392201402862249260964309283174219271413792154319988881508576538963449587187018763682188093025951513284547717511345593582062920929976374692047213017797702033649499341210531837788938648859350216412242574790226107371918187521392171163936197842974944976716260748383611519208917469573224011627456543373671231370298761537602353766479702286555385145395786402160578976393362513121836168587963678191808226757869821045817256870421299393724475885452724195624654609063414031520538923499492168555947846031944793355395704382487378521209209931948907813509295206427048553416104716234279198160611292351179287373303417122638867256885301439927797522040755454593703396289263015289663786794666290390182438450780442163176113760823326952484753805613461630065860104772197559021211299702809554268837572834398947727559089985865188255398858759074950064329312932050506257487219017637433883220758255353214722132044267773929563205489939037578392612665768909522714433609200518850647103207527885902437170746707740181288561052455478232894357252195977881189116843102884223462605091671284206814326419447803779273089417941670284589931101150887747528157859958171256711440359961482318503249890602342570201516975094986304062628067255530510860966408360513198293753457487710356595858293233527116196037434738301037229030620977935525073447009961746394631142073032610591855283655346855878109628975448639417013518718589082533825911605073017883494566800082581033033117741372244196124779413558431051487464277880391675688983471776427983373384837132899108013304153981367406230017005034876204712834839605088787505062045348301403074467448177944582714617238867702969849238017663569855980703319919579369613955456146653179728870322852407205968619070568528570744336319715049139419593018930528922829837857198985405807637010012915242131277477191068633691448364160336801557621624024472911394211217219727920274919326926503846386989193539974301023340658701388448380594112322805972583127780421195949441817569422177172172009855761466992175618817206590602158514900446067195480019726852836094918958575573744601140829628591283849057279542842441454897118501820594372648559662053486012624707448905404458366704533312952575328568423547635107776098045326262323897820707292869720906703391136213740110548834493984351983953251623286815681981079546429724652536235573875131486796910046167026813507086027615643562078072662650728412179803000975825638690377793717060017438614165694828958998300728928741110871263504429685910630548702395998201148305205319419699204121265362354936681426618588667337476870045763934644077565105295984467362702738568954441525274523040012752805734266930162377586350082206863576522952923661174705053012007142603893223540805419593088773918342123582363604327697592600724399946382356820818991016710135916247591225785125086872289134338924193574404021348156699846555193623509089030660550413301951867880360393537171066174551230565246239004069769122036430884054015467094434819610146834327683238291572264936909621720816318483263009278409827341916761991156359094788898172698779816106108773414323747003412783090477880333622360788055573964099061388831661998782120337033322973147504583154367700481022521607501646192612168701807573911929684442438517376057069728450062377448554388645742871305707451808992964066469575738447248582394014490763884484836841436900554735360540702586318696870037209964576179534580403243952908111263677270059825659143319275175402708075832017541038091225205407525500823395763742463972942560102677154414202561779630974928045948124607711716166548896078373473934970772184221067172649334330942531647726557916557344876855614006992602974303011272819386981156894264837357431455965607387832242416887276451588773368442536210298870106867798694735993661215294861485016230741297197414234530385894515654937573669680625883235613973946504910369760638259943894393780763263803921971877036605947807055011507266751026521249913142792033252781067599411622952453147909805891054316407076009722715921964897906137859776147216900963748016195567268018254624003162173355022340737500763505639747215363084397639385777269401386949498487191994222165838997594958981091794792783467302792200377674369295032784439301168191709617298944842811914390436620129622180119950435724747600807869726098960636004424640980930596192455287753020967562675114341791582652002443434556521668344311262327211032405129463936004207795358426827245835555482176457568282328096868725899284850707284521215416557375103396534801461750099619054987090885347397094979531942197843745599172005460721859009862755702982609326853329455829038760030308110462333166172579063484994743444385215804112137819228949242541826797282853812979305069817022269368905131961916457891756929823529739797422917301761327016264256454305522355158547323268750961158672840302757776278833634343403419249476619312669063155317092575734747496867116898098805549342746709961122729350664970354723524774162778488360497652380754502601381702477800236689796052263368372166060015372730525433428261510145352423046083200317515862524478096236033373390318208974899612766376591763849099653030927712541171159658658594548364090144263403502905676160911134450203018548492046922933039295166834395947984061134085951334295707420156174374196276494708734722302755872254255436078016701633119173743023160318534612288171839711609366866427077727578596352385787450535825965261949481000184954645805242059895976752066954607516933489820816528328707600971937753970091792597143609019280558632594758898052739605156879833052016959774907052391829694558083021136502818090360704949690193120597170224092140954076999720446033312735829757991970410983588515056561879154352597495955808408649255326718630055025701449634184250359192887826393183035410365865645000624735452165214488932900186484642015405664623019316323190313097333522286053671361825731749533066874524942907997556987635096249304881049355489505916413928501217799125761971334913516378316915968953878660640606872130194348389712042688152598913084812288952446047497005644398939581196526065378409439505750969293200749342672206036610365958778600833532107224378517702590239205594300717307223075760824049989195654943629697876290892954073027094340792142423067434170290616333581048955741796858024837359297155582452582856146914460558159293325791620886204397450783373351700204285231987597827341320031172365658717876759825641313121990329832802069951193958768345653514262972807202797774369788685722191220591750476675011646849420752455189874874581276309324996996379087871389577143508750958246311329737709001943396402820564433219218502899713822343837275113070395549502443933082996435794035042498163571936390880299360780736490648101882382295454430995320538007672274989849510472853829781113529309325238279362673490708238114558612256290086227461735754463423999429762324101806213375661852794459913491274007174857253222973968185138133223828101891921772354262441154467494433385927242620470106177626696734947555320764576337379246373531317172038062866352382741754570448954629263420776491118977442056894251920792633741243691523964226709871266586727831121720834197510164310728905742641049321660041598008042717085938707826140636221814841554778371619276230889060212532149754202746374784547916385088366761080614708320627302827480225176514313165789267253171412229356644925567651017406622941431437273043953338551454041637233620903814942487487649716785843830237452653857417700044031074378926628625480736260838416455599187631135787844338469557835631718659496690238698665048480664225543058177629865762039918577579614523146558057291230259425597059860434791362324393163232475391981407354826597300414183098058069516280696588530991817727734265548042070624559415741508126882946474432037510531255621319352188477607599690359390121324919899352403144675815148242434989478071735364455115463594549712334262619373438591042468878502991830037774004553372200709524355126452984714688851097517572407329421509919985764750239879724598312817401991733009678496566908340109498015445104862449793548264542258017453235833687681367620335764934190731479324413542584252800356408767244471558102073949362694530556022253524724407687138915410828733465592460403283116265287285785418349407726045510686914169545769889327939867639703529357615317406132444310593812311089496448572411938681301443967174014716692410012745464994596768981950879568869705102950457371924367947136655728166271968963492908875856788218119109689669004429689927637213464627549182453749593534314516240100232761825401832028065574605517630366011724524568726878252510817961753853111136911478044986978046532151346929092094629213983199659986856720181131934150408887729512505242572122893125140504702640216468338966100427914303473759798236720829214854439719547567970795929835941361772536079627963720722386886572287335994459805358662362220667518732784291513383928513492325144099982345952556540139403272466799869662936370547603228657271910633535114986335521869582763081032822058073074594170687039171164759530827450785104036945012851408810509439763976842612757360207925766979439339853191713013762547612116537684105633895082883531299705874486159988627162695761555580993990701089468148369168737685027303825134942684529886334398912164920066961606836265788471044232872638756724742413771132619617922747933294667606343662572389065469702816910174384909278269161145066404680099913888104818099000259214256968958274147311982731204134698681689676452755459506856427812753487361107984872365574251050916900927744072414241705003050328156227930663141318206216527748169195320058169995687354771292016574222910407609731557641086787602820811637833605808244280195444459156122978278559320277291791278173113623077077818804116950026950823681955883540262650347650763464804394251904577653555022407409812406988925100806690698544242639928609740930979824362997872916716688837881477856677465382969721543705719547262499116422364716378819651457394994443969661265945658620045798139347854884632205478420133073593134209316227265181617981240507548977096986166957626439010959705901048734848046458183048615658587933127943722968909561319601666999049354892198349054281898618266636595343505479079948324681231481242760304313899548535884620036856830286649037702698074963517522973147727094556229020754171731566207345271713225678540845600182988204418068367876981514396304746495900898263625977017450846285904545101023627510412863964023293439847136392130746647019693697374604551864899362510899068595743291190722874461575917148769992128620959456952239447920246407108448969704331931794029555968656389016699337824916089444783249896233602146302311208100575205468494087427701316412379915312000848477406632036154058879268138585035653748519076951189311125444160803371892309182459425205157281619294979509980869232586153380282179047837061464586647508177552564660231003299228580266337566952438631741141568581140741889846333204977898986981390481490066093189597513317689687361785334176785775801446637891105066111345950789578044803987412905209954282625024489813355556218591463520037968727725878343530258847292021918815976515278204172949045714584197169436072038802445857052488332463161013210144930245610641191104303504236303790768098494297623845521706146898739767649194559747434104177663890716496092936691599807360899809953538023973366739251310427177911249470776057041986093137899446909891871542381842712745923076354811780145267527495931181554232125966271398900467662126235340445982630101165677299363592553518761804880612338782149531746186064896028101925224730512275750814308184035933129081525387557631398779430761933367666269148436497885940096850505354231418650055426636798653923453803957739088784319199841814255242503440703265983569450378938419581670308968354199371638614957443850513165037750927857799317127089229265526275126971226526645439353219567599417594935395372748290703656639133069472991334094089244149214884919467604576257854281295258666656194331467522887073436704092701111492079398681871920943894826512652193536332478050413969789821848645865372363153518125590585499292398140471844197884800340807243267371070454612846540331884978045800384763697694460707745133729396943279102756749492586978893303027497824530908150097517781073191548234266009703517789160839531257943324460689179420151588189935451523272680178845781968121776626864042598230763961830573729099457550580212892180615618001918055087633037672947664503566452272703104586763772302618938912546634393525689872532383184403671329475085741157855122416397681799856339940044285923050061288868648147007757159971659317199524101474327246002609667649003755950966557407029970654217861794808141113487503672711163505565095818011181850932547375528003105018079000380817517941266896368215014799067818732662379575139746442357980201404732797687335981688835760157558173746365807525719568140577299920288365732180017216595187584891531216406192533905471852518488317625236976281367434966391830867810714727590848947091573941091555314316757434480901184501589327418376027346171198202201672866632169319492281568244606617912928353380939399366092045224237001611832230982163690820760388898854435200699415868386459015458931325601288806604896253132565365523460944727375562430445637046711845805810389261442880386021872668706705970278002050309583126188967005739080986138651055243731248642216621349063805915533962757730399419087706704298077171868266668155634393943522822981607542138922108435713118087639001365697019432703255442938115443512703668152472224535123309698567026913975613164010701040129009036155048546647416504117910023757976830644974344934124937063010927537684771075021521362595250908330096904421841276296383815726064281022027799653832753930344641897741252740049752420923317106741680999047417203743556816507671026902309286214120137993483050456573155109963402771317163815740028172990970131118169198354534282091027952664548110617527230380709240548055733457500659075613716544191937497523825348779688028364041005933226272273047376465868612205839437611283239336465674935520377611633361240833525228774818700631211653536516084113093537407860191898436444635712913384888607176574171112624022550365394702837077970409816954145748331038303033400033796263995390736600296225514024830876261904903749122792804172164647225737345129021211944619369537616335740040263043352599423484104430661515702404593442898402639771671657941787746574933164029624123769397787103436585771853149883731069496899940787893166721327942219015062682342674060638991601791540047098970772583527797490269902672226716660036937836250860651910615000508736769316507523625099816463186164444400320409894805679567598956053382980539175995552713584466964205037014280129637061605486269948111594404160180612654023408004865959732996277045935089356801713091492858704598723455207642918695385631711547601548383122657589540547614529348550374510746987406612760135787294285230356249902130015765634443564080582494015195913860273092056660755102021309200054779277493654882522650619592232961566383883641620780747714094168417475567348943986237975732232219623924215600059418625178843562812160823698905064247542192473991039262078673933197558927670104533924600844062106524557224150567238837300199197318981720971190374743363358386535387063039319052585227907800055175740928870441003808878211627237750772993928830728220091740398019765437557187375567120604246038569095287981770596905636117553716154925059897721179507670978476115641800195035292441516347778145335859596774021640362154494244773686963235790966379896929550159854646354613689811006581054344053995306224559679128281804644317998368987041508771228060723681738853453993784024489764817379770866337079866985554032713088079654756415044858536518780966439439053784493811156616432923768764101210661026120429903849380030122386588653386926987590558924877067404057416796806973205507748655852674472582524272800088416204715437651255666987699689615365505584586280475183240311555075275557978757295641812432131641801713514831687496118822497050461704733922491554165125923593300793131161707999805543167416432432301893416893922717299289113951972237888278726909122223105277601539845648548423080050523429662587461354209725232407909591954101313470334621303723755795106090315287268310258098267902478260460700299959095912158590242593774780979660476802907992677341044552704207348125764756875698552992743486994093806557515104435186245805766037632327664040643338942326829416410979840025081323305389373501846248478462065879276821028138395239854909628268219990175832619460625035372304618459870567586259544514273648464481805061799086939502534970554923289559704148813252993062729847361817552283627356333164676413826025550621104854150476093235342499143174782512166258039153089153476880950579582099594508168865129505825773554196217384510530599132645531331838492484856488806161716346282586905269753849527956033672951669986679990786335258669709539439958940606388716634476595478577672581822621652118046065955835371399830969977174620660765592384454695830146171834013023298161788552072796105032785218202605391010766597256442678261795014884190680118878485769617869209090150258708576233719832089492064634936797141917185819595654259586022428629655540387702246614404978703620153784386687902202179823740867139480403055680671831064698164573269516203444952877858680186838440949658755781942155770513543074772895374369614183147842134683554813633004014446735732538738576179552150269863117677443578327920962792165697394723869634463452180894524875748873590745444750197712242578434828342852940173566908196312070982050200855062341593560813910715747921567191071094267286827555966117530971513687294690168579177810655903299621929466752408180019074407280109567636553843534072306787089740542135477989579050317718278595816900270492885733617141815006088417958947720770846961664678676379074548662911085076258201026284387852417666897660237935244265661805888012408362946466187172546861810985540825484271642298902283065142226206067871202519660398892444188482815387616835088910990756782109894042493636701169227459393733347065935314095752631174290788158027300404736793079582702444265104929861117812092295921518245496724217308928750034785511407287685171559188307410501162015897728015878839976635667165512821662820556472239295906607350844259303404947166195278647664732961036425427936515320702029318958141937574176900345927122583758505577255414078064595492269830833250122335040418249070498539462545467578295887843113792646947730695827905775270298068339831342619938861261879941232393480956500164963670762875251631200502445860072683032646526811692270446876521341439792405793489492192178505047846433904870821117699842006396178069206582990280181047526828270844455240449903564043763015623519996384158877408191744112156507645387666457938676074322463165272295908296161688245635448907117198414141850762758837944281520614805392488617544157477089415653535489016046998269028805057814248257049962077397261234666044457116096367537399315680072528942204086293544205345772208900984690283194905211711734110761415699263804704450488797359818435682130971690750617255954216700657531550930730571847103432931931050685376869419034576483890387940966522473202687466532321937126343490183452928368927247915988035546339411052350993305860118895550692186333718829318249286540454319910883716530133247538226003979237715942918481263728785725222065168050688566462605855194507548846332661111531860207619640223882117715221943187148784534942220715233780554366353539232655911197692475542678798540736500805514314729389253810154967463339955440110756866325216635176523675050430375282326555185757856610845445608777520878347852016288422575673945200584439890701324742936510932652254966365280846671436753821235793624722350282487908381636355412518730717097904039167616661806593046933008016307280340226193825106834142050180746922232169103217191756521788379105236974984430502975429421037293128252466584492521679217959783522059698034325367578331269686346900061089634466021583035630164611322577002281446431178763305193231725949443617591175371678221861616089132117384193401285006124633934481435659373977815081913139376236777161629240751938716705668208184907911112880966100429857984532399023739820675205070173930065945637606337264870040997132949658862086657692620456130895069328912542356672271195837525655402566969594401622812667143430623570585365121276760232716538402426167614921986670892176838796909003745884843569982957232839556416700405873324212587878833624601830740957142217054060731495535408944145589383637703019370982319254545330060404638393246991013846753468207835235527676607853386206315169955091253460111738117448057695555944416424040048268098936346889844114749723870772678114200343492957493727742818378107360999927522795335863195166425855296043850743239432139517924717483690165221513035701425402866988367304173029924744469866064316606327393443062780957091202158750920745896657860220801472509211662494564554307601729277157572486379584194357480624115709173805879041432781832798151026492888942188123311094621730053570353477662151047297495077118281240220839608571714963562161711559590265448761759615001079996616915167246542272080318459454131817043617472655057703416159277330392887093417032910263077271461434852500044396773826894830772153780006204431636161178235171533183924405607240334251867371753412988948899671293934467457782707835578665254753905479323850541280279973958994267776631302305745699731679759507583941591123382006042991992683032002982224981557963998498903310318340604266574936903330773365678910791303788970121230298462903529760182586416470498834811860120357517639439351229858209733690581025766914198931783364450571807687721029657175404618539152510497765839179344933718392419531230585238223402571624203672398002375004840253252328405297207914741302921429657358547874454510146546514429064825186491184899846357901733904895326484095662811070425338134480462281707454015637626123054404064291220138807361778515226092157099306793052787124523595463484464824836807714037824449331033419604997350466389099448677801000618750253377004105992001506620590348652417019243510020855024191082214393300917737463303871440980778990519725320181413936838254989228613656182789468837214943956021420726456955959418674007784968851678508996529449897066035137036701600859427126771986681649257730190046966370840498592047873115324937136574488231140618863445028971860812106414491476780527889263645857413017305389407382026794538531844153229828469401315457538832786063015740067750200194364740828895932117479176670903456529835281595706403776696861388903002569234503871040741586934138215809002563510332669561307568096826867044305648480753311584898272607465126957290838557972973729190528795372140632581560364805220095613114965584338762643942213289081325734813003505852743073066646694785529049972197374016524424511198219668692913786199879143306477465235586606431177865059388159593851174137090777052366148257144444686715550111154089613490021319321834188236283208756668040990764424769336008851936050257449770390647835031508813769913860051480999037561296405238900766940716105034683233406652065047360804904890475090860335522361118539240111127137674645500769195001314735387562183776987894559543301206162237711141165236366552924385253265235040974891661967453760960432656853445095856357711315111845813448687801146935169308370349928274918802329234435923073858396700888112210234667110246272716483897752253691716665902238142397450103430694875221499514812137124716902842143422911935080708226964663626209356383310206199778508848746318132209643701824657342966604425846959123833137288810678823538588950508282659944251129818150992779993570418068156779277954314684966468371491460139289452018579957276456450275746825218875966452555722774758940034975852112713511397043319809999270095370335908575986384285628743067781113343545886149836079192587730749441619900840423236823092159265901564837034460161057640656809279949911241798393280807934254047336539295057110006666421763834295201697603605415713696359958507926843109849703838532343298680041354816593520357031890802803308599838528726943274480211104827472214815060546926508373279263471246523521764035188214543836319851816566277523316058282184783432855517660185588110923453730794895867576747930412873526934986451656071672828338441852957075886088776718502799485869537712692267104841731312154151422416001429431788303347753646203968639862810873681471882001339529945772065249147335612197222895203961678087347745450629896355675072479008832815322717661688310294641379629806008878862995399122264417241416482223931043289899970373477624443959880401417971585781122355326447920650828242102271351473079156988896826330992210236551114015781015321291320268135651886426670202261680113167371827382979285361242205971991923747653908578689052080824617835127913173248247638200876610593366016936284572039744803940477410471180779617855356052688321880397815006276030746414668678976311169401849311828946844897496286461544057308568275952713668466742049889756652395599784998063246149256573882156115984289951683290563304701951701330140674051354675500804822074150527186024309384180999471369208689989035717220004801622928569610485631556862464403229656366019139323781576396228837492509675028705421787851889536114572782244500936038067562658667572949170882413998995403343967760503129938259448960393530117314201826737588962116723398631269961673657516777996916632592639049713338124061549586065068055649511883749627285574541084033032931822365590757485335988561560719651712665650898852936233035466139180763165506722016946321530200608443763093111317090691995414122761562981657665857434025134320385816809862895094481944179856014479588805818237730421223798067032062593551568964101613891492292125407030509080964536708256113535473428209974246282684925252064907983032121615905516790419974611618973831363205703500092376893581860120901490002915319461035871099614765515689727001219967029361269888446320005624235866120034921408542263091836168627990499142708342926881034631523808316393943488588600891782390584977125867172891884439007415746207602889162328671942767555222699729796802534870857764586183507080457087802173867290911376610290796372875828711742188760831625417288408974104242446431391740315802778163321433717723254376203433327482839350084114261464946748252151514593647442757212246323812774457174247670208911003364932450809435646737616903698983702951813132499314671586282454124793893228798132171097979163353040352007969803418980804641840540449254997316148948824960195432965789650500167412102015219515270172301451504244069918992860761894789529221131039620008363900292817476483107772713693298476842282490075920552165077630125565758197455099471114064587776200704215557734942954153351794955998980018634118193362817443585405864064646679067974946190057951400891177655641158846551173703176964686576735665286021813769065445622914377094689011738536774376217248972543360173514598685308818032778847027780846364337899735660843345791412178604967168572142750057830770721729792144205470712662292705156059947593247685584298862304470971982171419760619400370192010536307753065443911295049045330588803963147100246674256227917030677069137246261009844542773403571078906604423385554194057313447180642496526032642771398541197997224448156310149701951654571166563406215159043851262099142952153566053475892070838846653249743632668442776340315943798204229218370120886714800312064438106437205557817994405227417890001048864794144851735820685679753271450281017524875378569330296913967519861705534583647388086542077851910281269642332420073734424401282602198122903908751162584062619784846330877794510666672401035349484346514554907085003072474432293582372388888284213091293568825245726713205029729274930050677662524970429852651229701392397179634963465715760984959528858143183713608510314696702928551069122578991832700509972522822870227116288932827892147108423473101444186029372127943103805027292536707511492855814252033242058401570496699331809085008072388593264570167711678611763528488725228658124919176933414323776677823023437252042035528038914085333157477487972902043516450283832660236349108900722471980015228655266681676574519916252384055852588686426449360650341476473637667051945198909506074658703911320322499600227526957668426832804150972608105924268806831110600968925824454000465242028794582131308906034547343342046872801811480937710515816475426910946933299678555627002807627064425946800750176308370580061097517328133314489319843331251048552024112728260089134380764971174591997570105654470782342378891371300924461197412867079999363012483048471091828678226837828680145657536865477389043748286096012381715751616642452577265348330509951107556573150396067984186223798538135518195986565107655586026018951574006492155846712620948506019421860981584661969524717502573898913806135100034529055773234451815518692928084387555756579917596479637369154230086070718534632546161410169298229082865382826552511754045922103124011373266414037181197722876359910674449758252208306339246315493452682740954357047235874010693392966574759938833727179586490140694158288519151287114228374498263784310267685236135080230811575714161302755052595205142630828338979830708486760219899580832937076702352399866823913200030552744316143179936203208610962521710860032778249874290117166857772275369913201243469558432830482867064310868602901631574184349529560392995697855976556827132178435953855489871432656852316903951126245375881558259265791131613900441996391945074864937854921124230965268406598219501074326850992486687345767041719763933552358895080449212505212133639466191463397764746215728629826411193576614139470497460143065777450380206372594425302061707543821382839412740037897643894730577309334144328151662123595434737960335776285325047518386217852076618543698312268893061261266172994557181732735733068949148051792790911645337685952669174866934880615187371460254460575891367012008793625903381849115001036953234487446861147515804527754300058096186200215667907252273641611904323287078361970537708224394364033156377957526163133694675427127831632462308847422069114679876030514307750312727170199505021394871755095960578932976401666054310899825449222302841791227699252193274921709001346737327199192659742319575154130887807427526568997877001478180412688276467598664404426727445335064801950284902002645866274247935369594463859956656200059496657385825055450512257586234148606953475113738034435023170710743914451962360134617380097147831055541796240661464232890251412356876577971233600644655057711343764677956840648021094888467886549461375588136209244839231566888510320688203932591778301112824859175914990553281790572228505070790880589067721690128689954244700586236294676285794470821601737092344528845391112000802310718193593541212934755840815255580371521261977775341607761934955296608686322016543355095110696952493261259574404729632871151258282042449255938071784344435875309780016469397745657304221358221030162062928385444512831631837381735841597123193787273250879267278943312386584267421736851138469458015773531155871346744481318813362083828750099496144506265334744278631416937467202952894378590631537968370437789453352947206375956562380715575723987905525797958955353972114375752962391161365147484597199442108205470706420323151934665236641032245568784329408549572016418843506425333874594072178018907310075428260442785457576599342947116777659919596447212119279499478527525318945573192105431489434652491657539029962969720280579893986269549012938174455760641677944195984227922241602439809162887938131346121178012117852360229468091278304407479839001160089264070671704561871586587798345230282142980458442892101427515281287368601926005569005677471538892126890279352179498595252759197915366937808203877998460431137689509248325331560094849093347322680926070779219151713620102177184344448914178679192861833835492563705038549135014745071904459533669935920334500067754687459816751568120500435385464544371686720019046776429384710691508889351106909722517837611480536413793323142437236053263740942814144945671816024815679285836137431752421890585533890902589209002153169032175218235618462237042730661062691785781568925987121538760892191332926816981195652164504897701012634772894795053754515744993974543832262681102231832989500986328020227622170981133597547517271579003413185990841867403508671183217051529247119080339052673655583495135164335124235614317111888904086647907190394650119372380622235501156531596330229588063509192425712874666962692331191411852394787019395528827949694413275947181773664206469404935348039059835001033734801924728222827356017086909776216035910262271016801729013134786052418273262015905940548278444565226504189343203675836362442866480429327629250284037020642115815774392863515809609466556694962109751514961440393021333375729970959948377698965906965512528314847435479739556040735639268884599305615271094609167669195093876045905490651262456042142197632364433197149008040806754688565282006344547976016800790987812130188860621135769023204691451696102752842752760976215965844613523344450536407766179778870543971157401626183863939358270365251845075733779146068981760927234152108945879088778521918511924962397165425979872191036509787058238502476262729182129071574774371438630933364357914950679149700845039936940666365121946965926421751805633729789878202237279181888040438650961689272257180464114879706390220317368790459673585436639533981011172639014358081976447538530525289018088134446818881734694031619032948000824278434769905551180842858541495333679999239323715459144928254876902003063715612367190309480835367892462469361926691367232366788931223928387116489401369670757743060067783769353511905792323380784624754414147373639929805790870855467654896411593707266082045029818272213421006688312353326381034487835724493381593227594472961196667112872352810477002674123898852051356535022881843277779590648989747602079429746426555883605101592870140755699011030096275056390206818133815796103095841665889798502882254382261520366925548477686925858311689620119106569275245657183555712517893212055990226577140795716944881859206647037087097429967944776331694583291003952873577136732463560886480396617445789909704396453683809215141123385097933048494392875614709482915093601482357085190527825733830027784367899342498764475796466771207883292256333503861774736026555203702199473993858694126966952426833403509236992139277949041432182778562127664145764259772562201882495801769511010576158946982836733993649892068559264061150741816070725390270560989818395032412800634548275339449845705807887304637243281001383720088837727564531213419830727870489660609475157090448834798066376387449626293703791475031729646991418789772605189403458208709572374752341994352549658690017299361533349941661436550506438227571340881138229659666503181366878337861631581632182560898921284158174292631618002839555984812670447614279082385592903233714150980650846172560945969518148945519928354023610330867601665639661950108503557990893317793902135102038627827516735719863413187902129515216545935549734333966887239814932382547858249893755137498015607270402351057936058074441021458257000823728599348788624827849810503838555480159984657624916065403539424613760694164678100075693423561809394146059835536994294884293845928078776174041190118305522773229102016340650297133780202088441842360788126604137074972288146221132529491960642655926406108133245743582313185363471750996369262824665881294999234281007112395015368267535756539845346569907322386547855417201382447270362751783212375846583009105946507030172891885015213707599234511574078368997800964599660726724824552985256099987981829356196827290816976082741945289307476655933741799126063430146163891083904868748626532838109518396328751837232472475795211360024875441373856557018444972293305551138769034931456838970590727225305881108395551095408289236711119274002134242874064171380403597142841670231295012680297939566777674028373761537583171390444442323453677462000271588955250483813343348154023064095846878254469482540882239532741607997359526877923731252136780794041202494287692117832647107100196723846549316435572786107108567751566165039504442665708485758561383650064149329729709237837249763677190552841343931316149296101722660286242223275217070064662632907383217471843778250700765688700315559678728172102160152905623124043965350381549843816564867282432072127115613878866621800120329142530344561844663380877820118492680228346437379047755433501064731411260584642126546501127446525310729751930739303642726903873176208812769380390870540376414675640788252116847385158591567000957827736868520857911812710454349524329778993749064782052084012815078593504365107259185052412046227754934955131605408686951500775181279011612375165406636333740738582728801560485240335191632340972620493353384889508568717073864465129125255442907513383560571018316636811825380628436646747108424077350301512206796379458859528853949572268961670687357195254791360450423189122102489522115124006054971425029331805606578701863730251824213086692249000528703802005389392496647913862777941382221788530364100697695920075107096572658247527470602563910803965263909085465768747075583372881025073908751599748041984472645157654288858591863370846523115968032251449209424848948590055997743968140675240813480963499783657435184895637630481577511806471431258854227403239408205133163230277504699195984630205692960783849401845153155378164102837028742371207337955205901277232275919428340846526406694578692790643466568458645687845455725842549311880489732895804918710420882561775383075798500267647781976569625174319193218991374190277891929212037858694098725771823325063344921442310812070008658280909676254765929725727581034026541803095115420120950106084313745912434169061429444403259125089886923062840252894215716266700605326450058079078966369609864583140579311374080755870836625555973443385892328679199647514231046490620632583160012917933265098678315947019429502685239662616690746247406305706419441520139395253399734413215884898990204252396768194638085225291693408078368968469094533215240619218781491132747232415111844171702117745754884738278044022176742298347845145159484850495477201643792046592396550644844930583010511017573053896811217255748677717819423967146083357479919509446493594810652814372994524310012733305782022960075187054633148906156111943319050889070749132980608515210257514533898042941984550000433885687052884127614354504358453205852857719209081525576716574376571634649802410432187632869024233268069603949890220494355091419346803079890512608182034429313949709367835878496209072364464706065833850279338093488310217319362432051610543820260954898333443237735447732374874645765420616724383610754064842224835170923843532988621778400184570540262371300760917034732447109492419890294554028269223742879069630043410629805103167968544996150796972384909241625200380939209817177198285676063822530376555349879591741764805358086464814940721021076437929023037517862949404525144762451170856596445088596375617703130236907026795836818998050893145932176068479874056672341816908150241211445953412954904489614704181828160727600838829128242302769402248585943768154465790288963415177132326409316438410441045940920265689157049554293532261015128427791062429485650919622841877697469542910284351071593494511258949431076775272592139672486808412588016717680348209654902168193087511211820280174461568547723145224728210413592188302635372571033353553752258098258376334180484900093070200062298880895086390025084595911748989189630647825653160698199969904931426903246052446414887117531311472631482480560486506005355329791259231093199118127241540246237636263811021449549394587398271599381986692306186348860450841630737484861134000999047452957599356916990742674916189254855863684755076610042720207788388065028636496312065551860163038956363439962877707273702705538050439916102511238363147656612173069057563561015707505083167263054214772613627261740233375982527149301815096793972342315582912362588806611572605153860318723605295790978277929807257476893992811577780537420542276758953579713348654915666900772497582717922915687759451798637534281282488627007937949131961649152906282900146294431091630657929113772548112362058855555129863033935823802538855361541216632177930019474071299039112885203545193565058559802012047218275606368313261493402524662421464168473028828027316103821914978802155500336315065811793390079608560774118054512590609358110557258740495159943002194699425056770796031804881024075903115833999009585091846345416217261632120733901540504837727843866418700989696919843603796804964740590681351927847263764899525941520065629316156715197496475433824659402203250426041904586475020954482507342355866558141523094695816163869965534607204848851136780484812143654432384842700190304469961367830261743929322996385201991568192943216704299590858981696505780505825473607380954655885753891585479264280099987478921581626416805822678246880113478354300553904226487969512575593265815290510072980145582383921449331582743288753262695970444499294106983919196009844673281674652376287375942253155547249517578574451193783415275889019249023777377934964662447400999765753092704768459869728216150709325367119327744591416995536320865407965076562089053504175666264665923004921179729294692603108278681251842275592467595774644364605841643974198491267018797126727438860413465236527552679526781227087063870670977185454826424887327831425742985619355314725729751775625030143465464112110852974559899242276894924266046375592806509083688995415431587867424954736460406317720669054057488323153375977646353323534651246633509311418567750654856073139130392720680026329926011198586560412531426221141698500974545739554385916505450382806434118057270427935309627982421492200030952232408089346250726698933354533863032112563253881831359759929658603746778245878619682764002823508129183349856174767333804740397234352465759493749254357747312470671170982966257271350440865369499533782906800613059081044480437479502157161868059122480344076503783202235837582180016720445879515088724491436032257082789648265638956923526593524983565312526364549964807241222754217874584577637059285561350378035026495994423621905237572746210566459759616395757654595293339318228609420100662290462669463209135311518676824180681565260535349483736472275989389396263054706682934927225923117029986655122990152172861211020428143991979445926507279327538685943923864303446625416946675170408019019912573267502536146147013693888572612826156052420242450466215639297239988038301756693253118183860394401514322180585425999387876250342568481725889604987030219853900722329676279006141449401047014662425203543020733498825853963336877525346506697076482045237159402907896756733201900308696190977725839261524797707231761310114068307453013513291353530483711226427850078425246709043965975277264211901565992984092829944306477977651757942064946422403939312805587808233969366720335398988975675954945911258486871507558364422393330341234640394136267103096118631821129695733421271306662318238518009574786095626485620763517240988853654944983986731332270156766972984215629355079779276690602393440047842199937010223176259906739851265411282538925405746244453225941851017687821409184849750496211905997227453517006196702714496793298001014759116328475758389982836776859162715013751897328874646741848703120064188074832843758246343040125176936477781523987271426242566745720366386580254699176174816159252640561662983570985898609659268045257419882411793074490621710155930056861068085208960406653434190081717713687274413574279707219098653314841460044851462545522270877418752688350830717652316388082405740789822101132974772548307261611488321459082409588692981622237914682196138228814461190995825485129481449990437719482687599645025698811741542452146809433708291947735745449432406823283319787482619097980433580214791365090713189995201283537377171097408820467632937123417088573350279054792056111471334247386071150047638390340774462800007284798016001424785463812911054839820832164439288271860450584953723616554899916719496513469058450165710930828191709646676575153341965384103688464592433904971735440047223570512401719363435969902326520606656519188377131314499279784099230790947807668698898400244131509908018325246156036952487490790656104165961060203892171614081655362991079838181624368166161949079734955816111147293140304667842063301704507620498756864516341496280706102163503627309783282769356355193922986875059687600576581411951189520991734310138230626034267559580768291824088392943368589199675701920596817596307422603457463030875099897700732768285243140947565882419207566209582777567172353024120879716297849170522484083477330865011479925448373458143497009483400615077316314664071921726734265076422415884641815204777970095019120127805072539120330346487153901689060935263490808037478930068318777376064416628175353839221045380635427915510063757495930341502484870682354355649889083802406915671004169562716632136094319537445516499950106295950449299104446247463082797024893779355827142893267568277865791314556087049970440995958675636442825611377256629196160539317907319654481873249336683102889431594583275150295993564500621052913991509050426113219517899930265551258226730148880638294569056986031842512712200057944660895201080646233744671707962036723483601670763963751753115914060639831428674290114470424996157296248083417404968469238989669171996834890562905745203428127554493104060661253942342117968231661998041526744485021550808031575970025460666721073960006381185158627099134314791075201056216390065372761913553475246429182708391321184303832245601519540494679213614637713427459879847246041516079804176605874131966763821168808963498413471369141628280522169246096549302546480703767348931122151988125048887923243638310460591962874731518612795790910101099816248382658194682751018417821789708376857433365521903132627841509940149197628831010512709371093490623768633704440556964405759989081338841270238929250313136320519314508196616669195577181656289149686608036316742754694838203814006325283349063921886188278104544029264708130042801301450056811459591235659380387577642011374040944323501318395469727617561861798494841280330410271216529936415796173687480439832692012493128183487359237346430115999615378160007549050829583416863484661934703740215870307089399713312733750870885209687120254288359317454114553640480883887504956806537443050862878894687508034514684634930176293155123869873561265686954255670299851353991219928197505971824178084867885386461682489442724391528076453002355551715396119638922777333016752873840230880807881250057647233060064782424827722868602586651901096009565088687912784249265299562579134525641679323325835620347373749439903201649833248609239741135491534100379723510425487092451506507835470156335550824281765883151034930563985699292098829492616427316815287011103957813066547283189987892893160599042374683355793209079567085442671627790534956327402091899542078145058250491956472447590661172685824789489686640951605137165332459111963844503161621484896705408921169832763411656440941626449326555387081884042661177414664420939947030644234890738178553843151770552520796441112118961314546307979974320546684900703052177008466312405668515580737634287328198358699300393564335912589965260315629761718911807913032491066970701498234645641949637078098817187510206029504205618382699647121126575129558139550275150565318495752546259499747605053651972351697898802177397370949511666022830896181860834897044563274358613858044121913922990032847549128362616727230604466947153771127108944377302765096302734021133500056335476706132938108214313460249687943177428305881592472452884656901696411585983351874545278425296947656387384097692667123586350549992103220865626851775044417308081916778128432198488725588634655160547463097185562414850574528212675788931074460653361053597215464185631963422612411135243828487466468177560695315486074015908378355375943292987935415160289181548891033786804579464251051923915242402439401447316430739747993985333193823422113406348247006510035195010065779600521248223172406785817860985557075190591194275308399878797338435212657787728106683727653491025335203509468475195502101782003599919290679425812580888140117548601335158930454796536721067878125206618189780024888150804340656943730684883709050875541808394249238830029430427753812649182102156499174655863827561300797533608307283378694768076008018690584821540705145147519586709341464523071042457812491196527281897940211005260990517872613481920544512770173282414740389022317483103080663596367222708683074862289173543037958327402327190361999161684150772414069166349984995803702400945707459567941786111059396079266600011444351461916931223453311572780226359003995942169464718849781248541576380840643653821975511924184851893087174825731391929588645867800761087408779284325761346151921509929937777392671281977388450861364190286777698557318122722171504740161930066699656050927954311483963243251577215286861130823219637922178312348153878145145910770562844247735399138828051471842395498327904425473135999086487201945866838568226931033767568711576019039743401073525327157312934522530733976582700711071908864374159145499281232822705211755799885657625693646564883969847576715617407677817178506287669625903782172333541396348766388292369675289245314502805004861388141868172560654520235435985811635428823058218157751440717031473839786548469865778712122744771032611179228102783190662789139198069452031350237227364184137661820676408410586887060446912890358714861993314521202927255616046453523818921501750861166667348906611598813453829120847695064787658748919989617936378052717541633869356529008245111040538196387608714202495654474400030550172005188926629804624981881830470809214115869700607797187705507624893146047892480799332453281101570768758168247595921698991412664036713162439603573031759688371178049852637599145424415972945779110547590268443319141201127328785071454125762583405501084756274343254810229440534087760549594643436062306147910596013136520000146722807210606999741941518436711831259468942499464298594587363157205079594546643583129342494378609559248033431220890456861908077868359198279191856213028491578784534308918358714547969290590386089273792970705153307194349445900577012832308966915443525022448771822301472376248961253572101138351479191951735473667253737622111138011108764621453124517350040535472265349887263215103366214030432936723125980639956951983014112076484843750138639362617675489666374391747561526593175943861963141531968813889749094745028304502018426918656910292485419499941265959514260545211731682676470529166716873398458273952643966325432954169419297047575263567363849799533621001189036715460163593838165936238702009357892028486617415369237161641254789118215534582596838342789407125568693980255798372927585188309177824173774585773868786798219099082027704493808639726398718434212716289922145196178821735482901972431130004151987039706893108467807291387127384854733583527126987575848468800501046596102863881650445345248237247685439530215142579128637708273211343158261253109048315971125185321299084181786405563039489597033447675011003759935432004085205496044694143976207090311611517526196573039043989796957047258894956670244853564693379331305963946087499461300640808156433167552701855054664870217244609764953421403293922968468314694943625480746218721362169298924374591486429359611373993782952599316710629891157601671465975878413247598233886103375573633742891395087354890833994172260866688838719862666449155779202940422523010197945028860029060807112941203143476042233040821567010858362447891285760905881269917145159308705992535970635689300068252490015577790727972787560821636729081012202713059833249427042057596462943572035460755044684949255987364607627714454425984878428430914216845997997360158390815552718585408251429217829666646564658029106452273260511713160596131237716392241032420614938912104753957161844377543124961897997741849789288794919555000182751370568829079489605952105408357446995091028241428697442499010135730778070761113305986434685886923914801664274221395114335855910698260275635422547872834366115870890357559016043132121000045722237298208882578409938877142659687116973331999091272477255859625553283977296701909941404194395418491152344097283303099340092729554274101877732135839877446426726412861834102149159694142515058383830938210594955648469792541051165484904919367209895114025467899333719613042532310576613226492244451053889476033409703978781534966035529079061089177083826129161534245530488556777350168213577335909750338782010970953624203484995706847519252041973517891999047377943132110290642178611299759305661117819936842380944879241592496129525548062777529289583775223595860940439561316905003403029846716538252212021602810788459168296080254287300820055635590527146246148693270703448784882822558368219747262198099786937502622388116513674437481884521211597477593362631698928634322464389585047256279759089469645645224531495773930643801217870250598606460138563929818084919135905346461220977000737493283034786431077812927519585098285959489083233557910657526067487284763506744493054496949391402345335048799909430566265544094876899560742278171921092515798103259100629391326246405612514969896974397626605475858117422413904558482412302247921706243579129861552897807200814496159738512111802773994193108433373701060734166120499927396372727491109375080841533740561807355739494869713543253846356708099708989137960362193314641909890686966239454589181308479588417885123354916839866291685790393917873700528261178342916496774919683982933191621780612714087079135824028436086766506275729716827201197546335528321352769346203823947377759513086371664562435927300762245517645978879212062726273577837552744571021309914608887539304982941722039786534001440778221878654758060344489699429909186501869475589147977991470301517513804188195603754966464648743227770177079783556461861636443685120392974919869022677867968224264401300230570838159081946378611625251981664249985845075845902189827676136252279163089070819541612403248625040897483288770394308542363880978185947575333502071753912205745014602451528621233457894488005282320079906414235868398155614904588454050053071967482041557090860200635332437376234492890598217682816702689484784123410345348388203314939898820361525229710675823543977597328156862196808606057360452211840686950645727012010816092551579370750378715926324707238648260832538673234123223812988929441666441268982099017851642356291132136453583577879912694271901662625190390529307852529403405762701237586531872829689798532735551242486554225473479791725533618705637157146809855950298012525630381870308453296371843626096770688420757217542640984297232801958579938598749370114801876814588981239541992119006026960764896668903792490850931763262620914671380245649988621614949903300451907693566005655266136894282252371623339164045272270301626794909549077002285031591713219959745876763573191564569317097000942077916790096585853770814466177023605275575151482965198227622336554552941098860804039904679095892499880780416816066178454640855215072557660218121507543820110757601250760984421607508421922910423277545012307597957447785434610938886229708088662994361062604800678162913348293252331616187581471782929460205657361605631040875732683163166356271851800073549861937195458317573980148448773542405499327330600795756399403768548922964562740024886941462856941540641925628179443761520910523501248088613404195122041523894157298065029334146461285198467173894335732588310361891785610072867286574002101494362748708993013230004734901928768945370628135387900246691196928367670404055909660664923786538858455939932322404979678058345453039853975536418172518672221026188768182793443732661525733904956764673038889595273247598268671550051012871431773205344980537564918587185084445143648988257559571570880157718559156994594589072930377147322404953621192961633447646284592592016455616717795892549670867762914242249431942510790072778637074414641160163260188127663894544574770918366654903050520720591774119464693138900249219841446125794832992791346696079990282128746155191684553279144400109204283166501858470154950059947754282787830967500165183523161929153832133996015721745945977676068975737545033247848936352890488226169331497708561811476358759028828336110191641353608192523546047727831141133979290002596948515951744947574441816795933749625747219269726076199389206466557173133159385355899429436433332828563756995282237335173589811513520713041266627537483319883197846962412565266111721942560172123822203799949277399201829074493871764963803119750758312076949896541959386800264463674099749142243746421564101636076732838315718495985995697152340463133709597939780377330839212012838075628044466008288380859184984123736949716974982111680077237635596671591187536114693405275767582912144800212820148336142716611585997625144969209591695621437261135378372844358228537977444293524604948548774449610330583919650907516920126258697142993990784625496458440580903082548352799669284382266014479562236903577497671480038657792122933571870023253370095423171546869218249360738094390479853802401574722611431714255715592849567051086355942363883419782238642308335947929384326623918778252082419615841603142376542077713034198544051835386489768456057370509777865897689212575485835990775852810693774819721972714033110984686552559189079945339085926288887526917600902918996568574917438030245709683555058614814241205054670998562724827753482656540081348732694401025524351357447045048473817514496460068033911258741607500016803484027183472581539419839605776897831284979623558096639020188120903057474093845636945890752778781040107290762663392470211079016040162398776682168620081180865637701697117520092024894659188924960018691562932483432476898209398093257080298093307876013124155915197759910629927324056057971437455303119260957621366300547372363016807662067622652100577482154552053465036925814142754463923094667758617510915577193297313631605590719070717539974541653837111789664287097495043768401433369624334045563426697469459494718518402637974409556159333541367251352247908581638825933401806673906398320308604123427763296525596628889822115296947335726575041633344230344489624998748565600218708763742255067087426321758491904104877654245532877527172654202496791189817324967440733510679498596000362631507330695138239160136035862653000874544191515004071317273463876348868263707723436117257624948219675198422871715811031329489170273650316303804919533426399879300243603671860752592315792132615486671734886847617679908202747279434178129442048868481180443623138126171317686433692680564007978035589261391795375115878806181606109759721080022998995374330638188012427447928583201011080016463561554403347544916832750565930670521905290701908309190956873893706861616643577447559326781885528272799732465718588023472581978509752906802417971988097407312897727234360598392868743674835865438059715198484663589664572637779859885883585828667444081504438180558219486651731928542338082368869860203111889188361064666179354224284405547661690810108378378264027721091944968555891460904795163918956025118461066175421035612478262089856610011096039235411803900511106570984251842051929775642172385856131721328555284238732014873124284142217038007804607724133428467505697434737276199757972630062351131233924519618039982732252699004255742341259264794654811941156634883903882991647388884805518284497186766852905215184399245762192841904302219302208737061953677365509994628843554562267122313245044164733818954571986494545152306620414156189647131006308038991323127050787685372072744934373862364861680403224926248729870032440425029261778416972281074140286386745933007835424662404173429466441712262818613162990538317049529537958717554965831165182871456179242220688019250219093699948439150997776358292388425329373142941526891155256050847023947426349188992574625193502666342316644077093611461205068618984837907730425338498649586218783585524265725499794969408412703098282751090423366603251411114167700201352600548699274544105997951466731984547567056681868352770079479047681694502231043551872003877788308966129058982023538245728721012072125574175162716511946798419518515247586701983004235142473994220787729667768811693563402710989282208169897892803174646442515964400221311158751626554743804238656144902877959073045001884141380466036570427849559184980778229575572070037323730329407751062921901578976463995903875857393364389891100754679167782883301850664476406914546724770170546475098931831369742101780486655574043821422298038875619503911585675094850234496835145378280330870124249856558097959526028564878340443088176021431996069318799193953413003351796682726663463186809573738391623665004780936036335556320007793437373919237127702272689553704707367023975649376227779431658481812450340294691233534377790432114116151038789389107409376941027127296577208988333770135681532833430899066592971168603790096489801322149373398915990470519642790534623076115776427894950193785734853943236634255033034004019015795857901597567864360815275874969186971976326102058869208286892177827731106014537166627891988030444602492785044082084061588853276603925925302491040980525608961206209476698280875367145076754432432410603840121505052530023684107826909220149388238831283710600047528418385628142695561996948775556003112063339389891555753193028509209317169084401142995795343418373583707989087394375960856657043170222173613414363324739554496383276212756457361635314650199407889888497699709824945421722291658247503315336719200971268822179576383778877622840700383089272952337245907116828739319317378750742333218665056073100399831433241973365341937477685294762441769372580894310345446506132215369990437447258284762335911486627742187983815899174257934237063260207643229923499635505404477344449029741839251174571068514559312206328222490444184436119837082700368182414794350673671508604456870142979222864382992817657188499385776300284208367840575442741143225287100439349168593058341377192203527102472652830534625594495408722812770064020175976391309732581982067379876788687340003602832251091023312756676212755892389373183257083281746685290470334402090466458951212318812284542602752613988256064029310923048644519929734873012534625997604981876103707341123207293288930656557087737750638944982008542861556938026393088594863768664462616014880493706059113864587906270825507563039503383941270855492335343067591373032600904138289230708750431544143370531890037154366738183658876415452966712187192238871320964396143314795807255447425572560836946750917876614464291025487682266195396247125344310300498203174611922162419251662186177525345627793489710677432609148463851067148504722255212460680078246059429768056679802608597481955491046344975228543555670222238236861527785183980703458690775289985388376900294830374337910887087201731101742022081765393893705289114946494478584767037816824840783970151998271566155912835997592467235047743552233767699166365299620463592237025975458701845126429380134047565638805846399595494559850814400398983510641790111668186526974943871797631045285656537111038878015930229309004282394008491028549674477979732006357190466351661958313744128680862689240482706246571232951868420161740370965387390629896466718793514550237754153185167368591507742678032403903155217626868512924228190097837486173956857820980072946838251579483841907308904745497851998232788703825919805501914947304278628596313946473838201464922858004688615723268947460869317410048929681048750501717217442649324419712313356868804299401773649141710862285451365747903603031860611779989349469489045977778083292503052326025884588652159388575231688986023917070854968920487346703386798844861479939243726966028758324089605961340488346305183667309940212591707767968537527672986584462674920309120573571415389703724633077473861891575160734979551470168189171690244078602307302204966932921736029065581940222311103562708188564733499538459860782118239562776025371449251855387984297781395332068501494800819783536071094331149938211061257892935485504429004900803646433949041073076345110168074812705556840054257850139110580578322732341103167155778266858194262321844977218591629932399393506311359002598970479648973263938976456642197678067164209424430129151395312179631238472066213472508100352035307827046521062278986085643630669357800980786915065277485000929101019119450072118392978945486220253395661088872186639376384817569567629284629126990586968523061203487972422428630925791926179501937879646013263354663374052212929712248261748527763470144035883446683152523294020004154997840232216162103495644828990326172890954402769321333056585068236557524211055371520241314236045864868853446172235408907638968839330571500685158844734852526068315541320312888752354722324827336948447384401144664416441714461580199127243329640068052192489225374476858632369911215442254953233854711099946400251198763118766610458180528055565675676266259704268894200645351589753760508894487400026831359482707931532745710433374962680795989590890590398404421048077608150970532497340713128662048569411623200683688575423293822638205254073780609793923023281736438354406007980423605915874042095025012392137456931978243957836587478105863031269476596758850949251729127206558570643392288866938237630693476927972910708794236374471011710269467095791181874737278756056473167316954245599134603252376160563252511958363231908561671240951374611843279579688594953372672207317485510197277591124667658899315095732163982746817357270874080259339617540002045358122282526211852114077385340662527604822518879381736245042924523759459882293374203019309454402062733820013426639717735715773233571277768673230103969538892222888720023865111765477311486674146132594916988250780659429966192875705957065946855170879058430995649999133892714387250173804639812107925028987607326647385864667758805939127713209197355227081202899151401043958574980086522667514175190920463761207832915724985602863604978235169656473843156658060051983685800804649312368941491038567468271026339379769510775155285413851794759511578892872418503181878592571451464105462865834296860271032096742284990861845304877581746826932411927944397933509671216835889966198226166967065925689030302843837479612330348426881791714214346574928367266209712108478826914046432786118000074399965733138585727683270415157883503665259626270557643283276544822020382133491151699236783829671872911483749259432209507952449329507150139016471349078214305337801207910320529554923171477744983737338341721806945468429448568323819989994878726585359176303987517430515053343628802463322863950191299877631257467107643068135897672417778883680089348614487954216310659435792503432031060169417385417108423739650915259290790164442549923079543175898686422090544971893972366438756834545403254715924430397568270238700876128587598828176432638278167977195213992219643837091027815219336250276509610227067762764578120526115663598966174950483079058968554069861168109374261913009527703164711005213446078048529953258921655335318843840837165175627836145114134376950985714594308251678974335470328507584858964531913578760832537638704140306189495920915901469691501278790383966873410409724548599474039955144785157668173289581641209002700183244311216454987575586470467520516297482969441077987772201632987132262177679593606122372756701340532982279332350837038320098905726141372491168589391939919175387085829989809596785684439333805395400479016884247371336701311009988818389008416097457509239615477979795655999526756171956893697584494482785473360261516261543910243644480469537036894414186224582309572340490041242223821220283738168140416926611421874562487895396254682816878102257950801455792116877514414328637659211003089768320481852340023358717401338490744019048498048658245062055835717132702611991834171973947887752595800357961256341293693540096666625905755462023168312733126850962968622239713838069275283829419369881153975363408228972708461441025643122809268312342722195285858044548363367099731527293971319768921118682607286875387854327935457252857365146884919715946732668957199781868526802977742889563387201156816034227945939409993182574769675039856662156259064307679346501226007580639778018336659039792113257870608689366063955862626412401204816091051525693704541789756519398505007982248623631140194746719168410836890891770112384250053101653152258322633229669691665908320420585298533559545796017110643210894071524406303520422391191131756629169716187641309600269087226147253108315494197030157493916520420609399975286973396671428574500102469503258655461773991286939526114477210204357681094764922525207141391686382188551444136789056421042326227951194214064882525077258489213079569778685343447514116816160803037885724352232495695853522536946839449178534379382872640181909031797088031946468380023506947026643479681202192028543005969409520578247215531072464283184402667703497718811975470123730947981468035212834464986873026509329426161896767699491678826976005634699224303423543527470528555623029198489430956267253927758553176356329787098572792259819783998515513761852078149610398753583225453691181457637491460521447092548362042204659932966565898438096722239639493539035562071309433857015567263625602726066255830471580679038565632037011528450523370912351468724311713586517745463686115063499268287828908239711942510300795704635973526664254828591767289772078856183859515445487685522888263940506909055923701145047903926033441452439215472662265633810508332911899563847104137761565464120537905829628620740740770097354714724579408566800751268324887262434327992828796791629606904042719630099656142838522266778224762733718251831346383223742264031768620973539370198854969970620148123987927639362352767754239269432118441997305342440896599591331614364213605684351775424977942974084419762321439030501685967480878551825813336358380439381273151665595558477553624830192281069341670746981351012311336541976914196188779588428487399638832566039638593683567523221259422575017315242526267145070481822106615217026286227125502444364515419452715678570099204950148670127648455926148031609970193366150095802559010086075020831210102859650234566557874917241430536813483771319664326909665615100322321518678937330185873098480386102954623398447828113633869974113083046441288660677138953420412754553887266577806960004946523924048952621139155602703003679028773222182826836133863269724467532452514820507460073378749488530653079549202301607702601004206108441884232151021933936502313269435395635057158278796768781517933433014105874576880874840315120208305284811719511934785639715678929676139715752347493491414242622542380952697216727954504651524320629137813816952569274723272040083459332244133779690603985704069954075803495531039415430863854540333063892030273242786451010503487554410784143675237231226770786430212387987179038816572948884981984253763072698003154159929846708204525690228429086763226138860153384516431400209330191670791813014403808711195121884673769053902409316903762723289490858526194858878839027898598823486793929243490620463543509945804061920691530551084231652550971518323046060004687412652694804536506281293602753586536710641933885685312711366431773431267690608432301378692396170120758246962472207693596922069486489077538814370195334540294216153045753233000278374138963783365773809624983596318449638771596409853151758213481080289509982862860597466324601842223407467204499643092685094448606661250820588727694907384924594188121286126103161556110404145230369519941459670280164657053931380451138858288687407381033673919165865243056927549046398947437729545500530238889656487506089098910341205021382803857946838206647459906830005581835938391450541279488626037685799946994207056287837993007655988050489923291935730331409919457730476263653945716308318001948985133603308419237778997373692360639331850124139436752488387947998652673112162299200161487120750364194267422802490524410945064409742992684847559175417829229109022840298971047870880823383154327823653976778279470075481050325890862990995402549171369709969764385549858450025418848299389620046345455632545870474351947964753520688281588675878291249797668859924068177697946416014371142608797957990562211329259351615306994545917012413595849116714801646292839206753632417696505341162898276972244226760684461206978171547134905910322739780325731890483374522157408300594762606629066366620348151646150389182420649197271957695741471342912512143202931676658600853307337482819623627317649693999000045461419829757073934162127644362716701770113438649702581276137837766170308469800534606585860460661177269826230967899302454629691825631928021220976813484701718818790715896891250703647860538240428055004523724223846323721511073995342541096615644538116282130443335099144985202175101364750268341539220463855134640408135386685211464480091821259820857468553588576890192865059768493239206448548838689868639906664644856501709713325177431581944877039219645124036804889595826757544790417078551783653346956592817915192675742901439899258538617739944858735781412131366756811447234573418860248265625776059595492061985780379166163544323236680322610242563872304273471468999966848878946661373626449603482969241395597537404207346114292053557492807349366215362738984527704949823522509305077845120586801291701790424772223867452018374697046025303361338630370381037303090484507729856993413407632084935587351417365968131340251709566019631810771440178566217449149260821857255399129293494220208485651892109612064492334410653208736235244858481322539077484999404477523197681166390762052628055496801837878321512756782276929159863110099273514978787885081373838070147251699924625744810241783365357768118788821662130599245542323585438377304310774778477668275923642728944553279849025384380615611440475421888298098035194082591987556581606842330716897485918051569023266019420376761811976961752796248590026879974035722751985273780870162506252292940180952589859735734188105879920351478271637158841125391119822954687273538063966559422075351088136763023595470369676041981458053198468099946790064122828669779171658727917211240930687904110712605785736602645329685938182080670609510899794478887155353960044971407414447995413574932471739156568781157753530293758355295319617283200156307151598769684428480356906762198263557711045067103531902484407392710761552734240662329277042124755294590107844677457348040846742249943062782186284418122355656154814606432692983971115356404950662557300288444881680774260595959707678056282110461502646015133687825725599717673225619310113426765411131557204219097000378850782574679529101973864997333782397250594027793142471681652296330808201027690255251426231739479287533328063935767797382998683463820846121744828557735025523494405382851483631271995197162482524798504323674434356278196687446407779900571366341276644831346641705121703419493298066190371414173783146142936240794768469551242389266237116766743211200534579662934207538699287413223989320337610301804869750368717834590377695163111572176445960489118812942428764248990861227818948352410514028222545910387084556751398562093339497678283387805078774100080062914511679567306369162481217708271778651770167616831188436748005319385376960410575262400956821535109490356347502101759734727526554545110271261372663869117949482044851432001293467275689283569979062887039842430372902087726976994523238494293879794183007159005463092728561579975646975882916183525114219516535503673166191802746288042632024183408512200808521691695559096520708860242275918602901467329929599127865552788963113705633088399703218039755401398284142036154693838221252615870678364441992293701073615991936005896545133310378260085120354541962676300897740485013446935971377894359671290558536753997913551226630465556160791265953611295222843019444869688499547369245340186702068779141674502155153052297604952490717572994298169425591073292119115236276867114853107649144545691713565771888875406306299769687259178793917439825562757922431270742291780934517965526598370734892713603054443139052508869866186283767180099158750256530613971156206761653166553578153114396134345179186514075256075140001824424367586011375658415773065211010995326622035600078984627810409720550446387750168167664629160124895270089858639200035815123719106436056232916405789343577400320543383095577207489756161550757481288785451155220548606604304722898333612733903744177354056378589874990851516141517932854698057134293688471885418920944104548963444313743303106523062668707099141774552128479293272687596079224731495908283743693050653307585639441873504328649801154658706717246838440845629958964676596217456297091876355762425395449554375612565198949216946698003808191836791151556376476854252461170000966198268327659466648734114543272351842757037789736942930690525173203726270536184459665508898467149846838008213975133996919157155287156161480381596147408455076632072105286099829423094703387878872642464593304451930350973122303323044292312367727490136896336605955278877960386657110894000339080433677802088080739795110321612309813060659204768799871991804361776394999115715184371123925428389004387461623179583980525720749126492480257841748630677782285582399684217167427865558487806671294876577162014592362896213682730995555212112665995694671107240083277909362470112426193530712463454861351244893683923411318435018575256936725518055380076770633602592642146939480600328333113184843755130997051190291043878797121512313016383017955660995769123144906564984669646149528242654510067585090324758943903712746907535177284073867067316773152276861108880420963270406424598790736370971027182241101011298746630837878392950842507096290453645501920702976314813274634490641534373543485928476891684836738333569832965806181849192781684096947347153687055946311182691091707971562539516893732730924574250324625634500379845386315452763583551945702605337922864073321620217338261390987613299973779761926053365188117149167377362635433065682272022473821896574584846000605895953318018151703364226113390472869166508843508413266176674818080013934477975662583808246366541631234380727904780689481099154278671770636779041011746451993781154099426675545499413783992476504825276494167573450807588897894361942119512134036846054011328587842670930096946204320330348925959395519456007976154391407135101857876659748406569236414468305546092342264206964192560277285029317885280734194353826626137557847120795804063168983708494093548385602787079345855401389769432472175490875620032411036729872196912323558727298039101727467510340721901403876038442686700614763347430384166343453530922878069246268831281543287824326761814142040627046956179038168092876042348399194168747678664898710229139907180857497416817375445314941609728095285816466956056719848442899230489716171414019777538550097697505533536539389648419933536933445726894046871734674326844352924035193129564913412327448745357589021021393370902773769088287091086316525463293299126797438825527610708862541923728485857926426506283426709292063985392569837138791848418223272972995383850221813118105186573981339241604918303509683287545328426754267409596180599556021283962766619108061076440248442971319630077593661276146988374793353295910745181225028142292322935998203602972973060839566142305484256316859256775888033312617747436053984936614069124859611729884597607933653193413405506369952850800263137762923419666706010324107551078685582499981098741953878531724937304556243929373522626836584142599612356343429199016242164248503625159078978373457996516475630030978449188018774097341379901022943243506693705814687534656773277148453386934506080033939846244533336694586147857787335206590108054511950653938135207902271071648620624219428566941877396137659032576840381300473152903975140227162481773714425973336082149496523539844100786235427698566260410922824323634014766174027137823100983142981192240633821393236829147376999678240329097123370037019689552337000037658731606910115330470822822481037012259601565174720440959810226858594961609303064895889492787314972991514884463851471013519900329364769006172243610601248086175582963660157655868460030040916593978365746166270591152505211559653994407434521750097485615531972624248508679674695184890717995070648533655600641686754357454908497352891380030841900827583034898023017572464480700914032157269411873974004438751086615897548964014569931175386626078040336312059190722797627773475740194755178799447108450583728149093733291679009121083064161039127070372740382248121590880214208279175095375967756051404981790041784821250124855664927191121417405129547639658964616356360248950844799295220822944487930827899170429569526023940690348635593303482692108216759105402701165801212679530051532818601351298290021089338494717507070451409312080830095777236080540186129812258828261872446023497045967889896295273109288510692757897438470127314306777955710189224031624138878506423426867562389627480329801350227377892356514936387434856868424242702031389169000821161674864663533234742445908523715090505622361717581112449445474601626607320953325291200327388103917531069463636147099387401773015148477873991388296753914897017907186571289449453247672153192210906957248051367936208759090965654590950478637479769662338290594407966886323557241968789443032937670286726631918850587095963873379617978713685950899670115848040396555230816182858471667838945632190878099156365235042338694837390235322633598605408541619815901840488516862114516509841640760161615873778269560662534563222297864653146899189872434512596285184763648675013122377682308353244340616228005075052627506822958748798460578931449496330859573513880263930432280993203530810957172490718631181232771698052307875628054267843772225180447017276726936061562285101334474767403255591920813608472475536189328038983421611030810507922554506203925923073526644637887409353534684697777588000940736288246726688449450674945994741492296369312217837983819763488995122397260250691603132705624720198928487643958362332415939439477928949598232505110234772431234304417200422735543335319768051643865060211180611418662816000483823388498750419604982876550984755894835544473206383391539624928666391118190587316810002307744266259220619914148567473071732308239084219986961238313204148520730116796591229576502881295769229321925954965615096289978591135341227640214782422587280437192843430205997111640003079370711483618211523592356830655980007620460990987933792694533821818479575935273749694982828121278917486396791947871458478649188327692488096058759665696492738023389074469750515658292941008835238994562457753215035789044005833531216627727542459992926988996325945972984000083534513640300343979708844945621010601187028130956255963460670982060287639020933496201982097833327246016445982001557814583738471921750902359357768128651783154847420235671694222505665508586456848825852231307269600211418732388696670781687869809797590670651301201627227630579646232699733746230483801863197490258962516183075896824489739627947560053282428362443040294872356692367637977295708334444691382680992401326816002403721911958709845202670600483813585453239759521606876811896419331381240156661253351194766935114901794044160844211828928475260460659046453369003671643740389700443907291337431902075997450364105804241407266700481176675457202452089436568884624188633391492111661106833483768986013395912096331402571554976795212348858812802091397239764441680486063548745734143043189657686686984749905177711012896290138419978920461535591616341803312159547234151533504482413957912026511309135267402150461640555610237939713210480278605257735525821441188231833641127015679318267273293611923493169514766969883180348324297706607662037668198950401780579818767361607385134709322293758477266376455773161432225969932210700110492387726373831802469258148730283166144241548642435905515464717747781347963587085561177966203718665322444615698077878531240520212560428978510991078862690280011607702516571142032806194540656188558554305847779097821934233783514922272360302739239085217783111346340276444960794532551728367496529127866023403808169472089188031103581981729259435895003698381571559858537038463763479359051559340432505326548514281136103238465309467479648615167454954935117850278326986922809494333994053711727775579324984668708399108990857617309849446192499536527160732964071852700362339124591692590515463322709568866628548277986697924854277168469501319697395671744728677916017273158336817413251173366352063017312052508520231581427933918027114028715449897573443663750294165968846934554659976950508854570613213049642226559907432657175594137131108723484946715006830450543797802897800955751776781197771745465237912026353598696896224895908532894508136758316719784990494894346430656067511315923734838540062479956750205870405731267907988699893556938568040281870208703998089140455455366554838618949105638066980044447322051748428527623834181458264750700284925622124007766739294237796047704068307200340931571104608991332695117888846826234491426094050263933337072172525325002365004095555578321509357223810104088189497865028782511825169271160892939839782889508494871550402976813291930991247935668583730233597500319022394968326191489515464445876217886041827278432163662564826681712724620026296807588241360770778564641817960306429472889329679056958489999771826466994948980546990506959705323567198404667658924757122968977015128744818451433845575183599939132063738991203320784786167810171544050321537302304455380607934264572701622165883893427347542655460018586248454531677765898693794475990952081393615972423683152537450321637298353282287751892646616073621385133324224333389663001091082787898395530307034919105264748488510492357874125544517983603629403415593436277789606352132055119082539910202422842566454844285943574746963381946653010301221779983064149356209283690595477340109847998286231306475976325466525507219084706395822346448718538115953596051254939428240068968519480560291988682439922782622997360672329405380827392654473159094909190414515320498034782447096381543826277154040549797869897905165953143757800130573916491872564752365989891538819138289930579025332221037868939119369621284002176155704082481371853249436406473539204778787667594843484889973653326587125472762168089093243303855439320053236690075756882905844024931731723530409724498949089247977997882842968254211466580685816559961668145926980175264777569554493939630142657264336046703603944057085455377592017436181263544396499231636083163913823024744085979366593453106781883731584466012288768055307683105338647818055850930697058078668924578593713150416470850835046637062141250391326424613714352704644041150748408249529637550560077480841933381722595495193616622520043087221137761506633839998043311857288919950321807400824839941716438194448809560234351246014051224733344130253764211925162144975277017836709140769946575261161181962139819021864602194548826672298768612780317706954695574388974395336845878504616461848408039445940885582043633205064154110242622936750100179489620657969253344729600146070812249527776975404597714461053691207753743301213142096805471970051389231050435801674047162068043559369773437249041971541223289291822001859421885789338175258466678196604285107421112290812866991884809537338622821825536333394504892360524395628152234101270485933515639198063073594753044649634064970513586989179265992950913405550154423355159747054296012904967411445183305264280620561762017173609931887267036727577632394395003710747812891815554043311774640824083271854715163304139827810005495923174829379287210744479396771042502231026516496407914750647886058370906661768206210844874465118922450244545728191985923971046504891669223205557125279136278656246860158421153400942641705843306008159711862012615928052695056189985222791349002087213029415822669604660665726064403234723876640419083858008629926996880366288285001052806194314173670057920211596149984098823539468603493184491770847335384031161755842534599722596440695095586741391171564811631196206177358491345633720885846823106263576575752293604253001734068888573341104067158483341948125723952969737968120415113216380641281011640295356550719106322659249027354730028096231006825024135705981036676211660200357388505508552492892820620905732509691170811584986216107425435048521360985062819384844791136540848939733727024795968656690123098203782689365986272955805132066915355463051026188039347861473097925868919107933820873619859666776443146546908802059282211468481726296550157574375647710799451638825447319478772532520993491965640202479200700480614694744634637458316699035607536906355314548991593885638683482796110663157614861908659331673259638449498720150698231655921119262718514234315145233098080992831914248413851245249552354668739688913125914680413287216659431580109416618686936371081507025073834617668810477843987978650124488837496573216748410750975653533566641408960936271352127382536886817863734233841205774247826570785109004265798794234645445455785965055901824616667217523828594371830014083487043170514151951132362822762817948555111846250502531026624015389428681272062086235432793927646479207425469222308524924921644366622193206452208438526175505174086137939157338604342922160824278776656131116082229374104177359114014280809723656215663164208534002039731475603282403539403741775696182805845349480216668816607963893505398242776811697520686002987588666518968720972033995721993260887798382860717791476643737618597030604422050329612627688158276288940711778583963235795497322881608941069471708631571163148880280944802182904423100202665285362989011556247516348118711859319003760644979055412285566132450705503462413584519870460471653321163286249032548480184206623308649817404467375545658963321014572377119844401783336960468209532002948836861876561227167577250606749679212804113888739264880672964608471216763118672765119605873781618876013555011643885372643703869011455211643492006538488395423327449639438806548029761886030237667085486420246157706387700075838916357700622456499276785105688363060878530887759328393480032352835398497492898553560195184505052441142391809076036269286134079392580746429294047705762107542627562234131040747927293290958064022971234325016314427772781529381906235500478835917939375209129879785200613295871847878596149876704871681122292058558177351755190805191886652570056516889781959144042867019518031941137805410045441008610311994411099800963888672875107688620454051186403027396193883871139870819881808178300934413278144288890240633105692639657867045808390554958136596676622986396120414055297823263661707970915031201799353775756057777996345269278716374886436599091253418838856343757691430619046064961500185120673742202800362592913022352874991373644898779106207952048757068641233120182212962397029471939742829336151049864824451387046271042479752132569182142689859187832098032381665117454058454426399911255748703961950078366676434131237138973308565429974401964959363487400399509249774607808119581868576350712278968179482339427088493928127149687466654646842174551542289856034400380599687396926026432471846589263979668356654807759949533482688929781078101321003246495010665676589768434266347613539331436863849081093461178243619093438022387257945607399868414984285018480895408976084553171473561515990922706731151534062401149190323841933335581527804619467300375403029447850723840835708794950428451736716202274541176274296991640320094154639665260427781689319312391360636614633987833163041936041150774115419310000081949296915342575156429222676525240102085355244741017465067755781319103521390802191961550125238276639744870165572953938885280440107271467543326790177073119108326444131343721088335954503521226667413396816548911065579937774147004720334989851969641908796608261302507758785815613090183919885129388783645528950522136715896319496760593427827273735718173160488089974711894578362666234128088380634026171545101217683232887231375395308253774465160487635155962371853526194981563928669499238429018523596063143380631123609426136809034555179363944986429934145659203989314099880115908694036419831632457970120727292485011519518551272151154767998996909238094530989944324640097060275604200009880454925149775748610991733722079776642331312023074483523532991491596086297841582531745855413345307168601232270503815138537698926964703270370154601256247446372566102245001852633290289698997030377934324308770669702830264805537697494338042074779711220823813683131478019979042975519506141209511477507060451481843944217310512346958371463398701017720188773512079989312433674157244947403863382839638512495606536445844358613543158099021351627478309273358200801081501153495069111064667319937950093026791942815740641472680379525026906914637196158921725872079646352311299295665651587780862590787113798942828321321170566764513781672650987044124729831635886053144656690923109491929448844739881252489520608369196122821038608742845505990532924569111026259661383434777894685888831554767117251179775641430570861493642859677548971419556145826614160425289961087769811167685882403981904527245930961695332960232807460185953753605061618480815770673032723364465230669806325083847124917894342940202778717375700538175503752334417952977838455853153277782636094483786792423321295195506325245537766831886032656849855077334925095158969689349125784846071775506259688353251405408502029520839894687888067327018493106386022445677396640432037265822445691340830898032535510325980466160395430755696683781760635712679214224590138703536532209980405286561863181134010042739414566162964146570297326785756753028781963301824559303281097771033694060910018665982979626353927286337889115511861980201062031053584100734727356051009223291924551222772899867747991370645265095654530959678649952936372180533849910958266058236757497142156760871604493926992553348806598386853696527326654161282229717051280384742592880027207316939931131098343387416626389006208008508280952235327016514485448825726348794635775428656140839117783325415429507678583837053804563856142361421479218979146227264340647022908801077179903405751360214717789355867125174919904915834874513416629148561751671479258105737482280531941022077082236039657991658194103109671382776855980912608318649641003184843920437385893877991196461458023507974560378753373320309127976690413540282115317407950099091317602885462569452729069061157080508676966922047789039371416222522654750648916150630304680969695735157837971443080427145771025448383408985005002035633390833695227916630793830783039531054292238755643323745402500210010008242772930459615683376440833186185362321007835254014335137833058013627062428833759632728050353136634137535459386382865936751265302847534863272410787166225389878622021329471905244115536548843028290053167612210797739667151332640603873357790311806840166781953061384818285406352267605181322563184135257947232467482953030681313733543615922451658543678115062409607273353328332954322176234885170008534319731696590825539631819566581749681444041229704338603115868607766119301183302823162171743892325436541024223279955481702868363560048508951302247424856224531529716519710681664190980693009637209252380384375981702814142061903643485398593142319524690596951652691776467633454483499882005505902630419594650970264291312570044722255190799752242898006651225003583811921786697898614778116790486376702511097888580213185138677811954788156134485373339216318836302853977879101281795496707326481012587396945469286239317870378366352458506939994259796010251864478044201344985721774653484213224105730810923901168722830499586668753539401454568880975932624658878009472816808913846718053454858806836258971874161985256418498674487153120244941474172596762369813415851675505062916968316830155456659235533279171831350577600790735639475566920341038370040830350784066281605027231111898257283098629124561567495381787479845459993166810486775046077163306023081695885620073518745598994885330532214143936755211612088172599366609481722099924282933438219975904331668554860232623081955424152879018128531490158816983725856894788777848168514887417607794923346804509972822801829660906078792669596040850543637416762817772581518856565504548403179381069004823514888563378504444543067013975270092308463320149782719185316438794964899560315976924528354983158329631676860721384561602162741548979213016482240159450390567292108867970565151568825002383877665090658459266521586702777304426235522837048937632134625976619743855748660873393933553915135035287137249962410655461207511610400321685532082163966775946866026265485672013149012855085653125407056909296952202985722778005094846483709383250528500030889555505379872582976343065240281520929565960905097889082770574913225254730844454043215122132935008118789023942308683012933806269973694203742231394355869364050366018685402696825821458066817993546719170456058864794786287592109802094204356474865926560203842145093776697802905009268911174839457085458016524146201243212045512673622486035775937508637857221872662831373656236589194479758698680767254543525138380744270210947550660953380748011570555681870113563934698425785016712562836811728291981249737993349629074825801710447820782585926711146343721821693200799565159440368642761297275514811804238754474517074059327976449213077055843797999182003669535917255184987131869367179732877402618450524799076654950443615140107412099882838903980310273967203886519986600441744560718132865199620875515972525649644706304711902661994628006697197855993776442801482418917755148630146687056517141580459067967183634861072912438454412149385431858642196398792752348479755916248845406970652438336388864432287344478198762504080421264465177597185769336444777252997326879010533610803099360299390289364161350942232558451346460537950179583446501963210573803712431702806866111722301314502545862965580165953364443000692229334737148285889463341426879797271162759047847274631930893990044840983860999022035031510549848896264136109928714159470825940138983104283108208107872456728172792781083536335076978071674932133203453156607018250643217562724555049866158169989198117049265057404477500816452968511605246070936248856705391788335170917749662572305707428633930026993315422684875493641298083882447982194479245889509255494459660100638709508382539903856835750595474904312439862986921247583564178000190803226119305670721166357385154659829131155686560934270152888702596154678764408491664645042006003807073534128758922730382651933315074964312442622327398223609326987730413724394776882528380909910598981457319349070575952412471149723860521898871256007874865604245451948875095218232256089365881369664988592177487504351305894314514656354228675883752704432609796458097302991034548194154672453519685673617489863460169314818374364140601300957051816367812331820203437898925709435599768792165434209449692624676907593438454061297569578073286552233460581347097338488906636081465860430998157280428750978356989864493085938659662895716484237516752792513059788732289946546534771449771618505112305713076355446003805794254781675092075146652729228889976442028730373018775817564909688221253872020561565190975928761369894164455828533656047540121633889029551989419766227826142664610305574700263957628543731204945409845398377110258159963498436406118442637448737222851669717477913389886799634586245473548615870409061820770086679044046879387982669527122238712734388601429457654995734753297941734693496181456652264047539529929522543948276950282520883812536400271134554212400009522525331848693796056190919977421829833683824427929698275292357359037057534368118774265672231790869328772770020872615821429089020634955792835615958037927618049369923660486124840027083740078479637252396774731587115990671652636335784260747055403813639173239695373829610669902289000625594374753512420595236991755587093295909608441754530988254383868104646008460943076577427020442519546525771222591181923970993997540248307362654096765267794329223299539323336870054136987532433754765778308062072778985280762788188697886690309305368262385030423995329248042759907567275140588657297529464047685154946149950717313350902820188963202638329933270228026191943593683338635905676841228357522563645529294464793527792621177433939717666512246691180497485538737354741628417692043604224720346941205132401414626423528693205151569345195470588289127600258496160140525166727439698672119850783803970315973888725778564684880643268606366548119407941124812006642519195439633195556008787758188049197856858547033015764874616375746460240797089559738751203472726650538817071209191759604872286147872530254295666562655636785316017717809650710723854930637212748723611483994430684765776688583649417478839170160126266564037711352898775706168085509272284555817453628358024997442030606249162891813766703003021286145908045557399795330676422066339088139623691473017868347323568200002863941872078968502427107914115263862710213947340104897679833704097788696006684077445503802194420176853035111147146222968368784378117859619318845256363169226550385942058178856008352537589356344036226874219073125569473555917102460004989042711589581006837751829975923402793137616075451784077403358012374252685779524358845933973170058611019666704496660607927469196800448055849916879058443163064928379480898956043901175787275732971181500212488937675906201014642275952710329832561711536625204995360571549129199846238356073325016998059504604285943424342138066907293199333917397457959080655337183523021768818024681642614719286556283254361027634067339815099857514136244614601248880202546221936594127648466396335238904289579134635103398873050279772910607126658209934250369953202829015623017564922446893543632316410465498982593889652302603942060184363141332838972891943411175826341475856696335663437392505608188842249673737349954807356506882547415030749728648807805992978566077394647467176235118413797481665443598823312940496996754481011360637009023864758090664317121359768022615044547439223235760126502169539909075807151044788978286909570439035040749086658497610755864427870775294639700222583925738582799540338769406707169963908094018567064042214682444848023630833092131372539828600478139578433403774460254155437941756366443747096016199635282263317074956617016214179003338224504638779338926695718849907483102202725671821002031178314329499822338573695614840008146335529995908222817403674040517006482189744720077479731521499473111894672638442725094158535401232262436085834978809961779629531147519994420342430302234473341069529316364280822114508081976531185367559913204528719270123428631147317116675646060831946962140962231403232014261721065902649634230303172776556684292452356283821476444465766246694308419548795174895604962960036908104496620093291621639299283217255521357125652719741557766676014712439325318523521270673710192071964109901149264156228978365159111993033154191430437938711139934408145556184715727377096181348184685123908504630682898811487070881617733750029948600014327102168684963246008320907691719928292841783713334187994192085978918691802883221160961232886569283841160285775872049793047287456893620603189790114088058691887642944186641558054878497887337631743021640668839184025607341905117898725177837016562800114977234232248304871442493321567058448480830509304688091058066378192594118502433337412824662652224131577472955841121524734217971782062530540914710261112260520096738674975679856906870196777133432846650585943138825233642155832551852351361817655901957744045363472221611233028278081295003729404123530484227536809084993338477991487064221366115402854507176332642839981627658447381037647754160848106147346152009675310292766315517918541943607494187046749216751524488840827366270812493074796587240814628011496124235713117467743736144562606754707744322446145372538053927552975121365684737156233962303222405581531733823072446841363915841505370805932998502005812776215553321171777760944239487658728672640288790324135320283236483175181257299055680445066063122125783100937025706157169331125826218340920798694428664611841822583945292039660810834896754934642521811002454581351713648972460000498119774140926228658308372505532743812813995324162659777356678314650079011462107090319319474420869777578418055876786010967074237192871120252642864278632704204078660209372136134462605924822282675370749599403138948194038530858258226621168163331496029361955181591246242800357565176252729382301353800530494461518896973416886517903724265754307392180542654377166872100446105852342305710941017891477386361452206025310523469089703881573945266027095930342577402639125082410190825569533732135525835507225047329300417532655558879340617036366538031171922362491584318611768773648170615810943939107305320003345385011171966271196895125383252549188394767705616012517256708224673053742162426894736491761952623802601457346299215559120455691893618033842440562565890103748904730817377073898333875057847900001124970186236148920963288763333785280754664052609441364079841727990528825564657875859299251790366242538328696142711625730592582442654089309234628983661239291983205653837058200666615692899059317695513145618240704744680800688336165870308608515425239611403655766599301022295893944412349087181314282142371185221445556103770056054748070238610480059187265268094764276195120003382954268884636731981347208042050844961705400760978177268992667256282233021504273174365865056337190960353669620749109641700692273180573237829676370274909757475416613194737286247553599753429258428808521287916140354131311382531741546524244050509180336039146441259794601604426411331492903516887416673253204891877034825829593993288086300046902905997385415921754834667609000461184533333542333272130773476779147651566371995859184734954519011156125559801041294353054308109167802436826410731837120878894105400761669608770986308700613492222681365598158534738134968344570075153802482857429714710031192103528297805260359996198584321027888258095921072114253721177611508683739698208908719734748418929477752031038206336036603478476613222916371921139077874997097230399141278435597221119758651797352390362825410443489127140067404190842128708583463695872768412739985818122901297389669910134653742016957772867083708715199343182005140708947207776109106231496858660743050927526598289071191073181679947689314199300018737910465923644136768071932997891873732421641253084794442821650340051415275169589691765112112163530408867729806528199957390104146709070428590010486392569739248353012171275078744559931887255697348689331312479942608237919890880003791328522288346619752568206695266242742342692414181602860323009005563687602906849761222919618222148790106928681728048833073693877449386437369973095098349269661848347646442353107624857932139751175756639125937961890219949817449698028949527969823725240976576861386273460795084798711819445551058129366071092950909118921039872453641126675725806440601511632180304012875571307459740355446704631763032287036975975702585104784531802055765224047472519819055788793439539351310464531632316844374413137622323685802577881273388202234753239592854811098403570334698418503911382526102489347506811115715052908194792776385772155092175433631997373723779573802599321998867410151426918863048270455808730950580858510194540818942986457024715730693719830779568885328533560351282944949635786775436605662650804856730619794456110804616876494467721996670371107154460619027258312013264367971738193137750242156169834476103883991277338231242356876618301852122929989178393929111603474593690729170506020037658105405593972031797556654264515420949746655962214979662444327970175906976771341032385217618085837209385673065256443154412650454298638475483651071474795464882825777044238539523162849614330960582888697972164046824357330823779012410445224204458403901688180678229284110164744893512983964090681843673788665448810186660908373850756941159058538895223255879510164295818318915176058321993980636315598845694884368009432452633548769186606999601273971215096332095772323336965552711300044639181562633965900032959828236624517909666640901516154950975695851102520094549697482857066727067054146343222643859904916521053917329695202390192828527974850522494614201814685308747574115829257062875415277646890000830851543916020164520886199720925401621650916153665061058255940519944447941725388244647864984275251824346212565593985397105304369746132333735891988137872823533269928701135647568993371301850767668361382350848338459329146956763854509671992998174349004947428061644042563485243620066181434533011801963455063497242567835657077631847397790191093655961675395808363776489881077255105099877012682031078304393140319206064342868549587626914999017174774182989890967896500747047614168574625896222771215621552075323956118058873458536959662395551910662410195210774497355082511712944137344565903111721189433065672191691144917374779929493880897881402677252174156714620675046736368908114652566843421318118514549469400282221095066597843075035090760110817786521290510474525276505910434827677858676155928316451553351789431208710986636952715287887260426004452889390285437074572183995885948031332770887328604433838855740572929946799281984344776723054548905664970681724259425045622299800457778367644927655928895485927825323403982888792774956713213480143055726433603646144507848830460994967416080240478828679922977343754118624327293765039144822145011840264926779222384067559501845898478806516928731690569868562801988965507073856573496764693657796646079016162207492006415568758807069871011699620540602055772213271735609875042929133526606501904814948164541997713607490076961660179537424975725545445169863171072322533514578155443443976559806373559073916384533763585582253073197750792610403605144692534266705608200953015027969624947001869301608333995025974282933599595496718442961945874242775022518736623674559631018327796197122208264225494254841787240811822655932236912255027412048337461687028414791487923852074379186675526281539064334084069650751269118713969115297114216047465036041689467705416981449082751742076589136354537806926963563396193308084964769214147369293053762567001991895959397738689937493598651299115811649629304520316711413909228844193456163405087155432992977377928733005151211970306195346152330959040531549343213862037989623379580791454773119557645068423875736616516820142723580905851393627636285699598544212080957351876925005867532349425222737646601633073754416548842572554889624394125584270511271831132704156612366268819597821633097075176288488876262303668060117568928447685587063019213087419174679083561491176423689213056652204871497662571587296164492874636604106220528693721088428954029023369780643520485032316260801555723529972153597273125082940823503791925987871113993157096742151436130986133464919612730271048453202400294246060737436676835949717032741433544793857786367329345015944234770853694526546811965804719059127842683369716909304034390360541514340011639263427238545441221223838504558246824454747839333811153448620369738680728383393569378354668434188227180283768063447024419445434539850631248647001563271474609210586388664661857607215496220028931496516489440062015080616390519506354121433742699689336988725561473244061595348906577149472121162555954572283478272997228358717119783001834610835409530341244142993467714197691632821086681572622288341575370101016963255664721032800725642339838809995760763737514862197720322219802484620927534860032905315920187464180377676604710922734667917247249461848993037094880662614380253372168427869904258558151569020527249761754168486292403399962247315253351179000345211087589948740581165788102477807364984013959153037736796946447915223979725182092046734124015705983596785620999375972787695615785532167322910476069011415478347081278598242779281410550463713264559873236114047048908597843997311930594033017339991972673543644405809638987071755001751374169728717148476452779716156802279158751374029599212255093347441448972409992821098756361617580220175426805474964214703915862623976788758428977369822426703260715875566418245919875905317164353630292019763417344365528149405642000400474309809937821620164657499885549894209233490036088800061110787805974211979219331767060789409768408292944242034016276656285599509222371341919202470462770547072223745140706486620635493453913486572851736024547063426690560499862431453667230775564420056802410398522422287717966437803912614317023728815312671046872562003762838282302355015289746083211777479097678354817640649575295819929307949261090264628755807054359713394519966210170366792360051922761111941494900736941717375478509013165989469278597808970385374876320450465120189569090880372126741999925622099399455061633256816886502490031662767424416375479226038341970892370991038583477354662728299929077920729590951882005180122671351461650800411714518928014873240927388170486969866404235372208305234226625999517043248100607526063718249291869327345500916215212959676333416559933693938278117236151427284613407089814783734531346859734722583909765502781044280555654748689557256767981871007322690165951606395489430075492287761489820143459131474021804655516997920506602582790913832276504043379342877496729712756530571335511298667704892240611069508067743207520619330023975540441864692833746449168887681701217021230796710499996355612110266563009895898775619218990417122499508358938799028632454679715994624143485724754807093521766096169957541819088394045046990502253032624699700299438925981288354689629734457681466111271218909419992579519489685755245902364798941486842168980189182804247042703810706184021252753982827202705210102197965271129469078510579367020495962346201351485542999079053875623106590910484309794815823828997023777611398186835867085482676219483871142577742409005837455507093521041226231765952626011461750675194325926897909642710608636044685570808881500566879758282511221558921555330475563737066042035421504308347758110770516592014720052562932314600942885944503630966403060872030883641361373584749128753663816585086094824806791167740882770636091946396729060178187388487270236416024224299748347340760303821722190796020649236990543848557405540289446356339089763385705632460234762930996410631993872744475995251353014252940211785632516440236842972401835527317603878637028511503423999299852717183265350540755235380393454519954760430774952719321515735857970541172677477499961810551858856512060281462006496906319314392090894411723125075833029731166830575481720234737671221928159105804365303354329783489527851582174668426095919675434450482207728921462709915080029184980511584385854764775553335722540313806607950106562899352905669623838479909627788020245847340387640166956011176305235768724140146883541385725006180763996962296539078439725169764223693143261339384835109271440633992506735158848831842735157208751116421485842394286873916648491470564881722006741986719361690776378620711401688148308501741241795123052860040823062592192983133178727830863338216147158710757197239405700579280875524718973935991712891683261673823202344168411127003076238324721187742800665100326819316332121028412189284665230884294612138467688383110119464212933922544443441710199178374988906602661345022271599074931192563792315231725328389514602871325291579906008057593876604528816625280367571936907212945105139236337622312033178129965826484719609719704788834666202265264086346631210942519011922500514490102784051620856792117517612981899976450668125103306839919076316383855975356159830261945632145674283827985584762788955052364581474989243160863668891277234628720893634262937030629018100466797635259749212743468519835778697530716169319813502446739946668074861936437006067635468318287788759458117876096781901433418267116682291541180156545264204465042417658788341525639820779012870318616085602056079802086076299662169884162894590133262673045256541213855306257885825606149371500778151055750763393387593801213292720385589242364009160505457515250850637018065777252977848253410953495743090835773905624687300531167572590476196435257984339517639206548361860972303939796750076345641169833967365762440233291257367772041314702790495459433053805376066856511345385193936468058490526206152760203729528383398827931173586789982067311926283884746895561320970612028883582828490736772039466672911321412874902124484572296588075766258530449493274122359687972185237895205685210930196732603004237343939715188693682099060693835162089549948945879259511941578073417715467521141836177812887819329196537672561573089619016118518006347803474867557205682944816723557389761809985250194590590320786890183415715154787910549518596749757621304080243171027648918894850122199455731315137819435825361765605147047098181111875392865658216549464851117059112886256222341722088502826054494893528122644333158134805907037806414140459089268110289794767299836199155369044150594797917658529662407127258329344419290991818075947073586187062383679573961683377248424157917226250117309372564178480791454300889776010675913064038774846991514106199540740356183020717651857771636486020098486018977852816491080127995020866666511623384145082623689374780347796812293159270007040231510599627467662575977470693635031382505835188534547526513933230791470347123377159855063495351648257283703133780524936847076465684189559137196564197999938863191823168926189932326148765521317328805094493376441334726534469000143624964287657323951807946988459221256392638656294362094664829898089218516495711990307430978887963667652052158466857052438359389011571054291436836025721043039298757764117812397494600743453116534505879251590186111868597656340388635310760221561521841023782339631227884458584582632086984388898087470639650430560315347900688223884356214019867785553002343212904368598438777940018006701662929261822723600239380693547859597777904316223362611875820770163245784871550455777547565846659546968454329659390488058517078953961366230437827933441501988574540064603520454859245648382785122153698790090765278701753426167503730476626120141070650391530400551539542136859731532085988532775976696373488868273115257956687332263875750322272752665696667616883690824367709661202896886646921728607309175886251117824715331178102660898166165103751763104212579997722972048714786823805074562712972045639127927336303119470758239377110649546423889514157913030322852184841012714775440152165605769573296243837515814917870336895129867165544492566270308980463390378493011123609792608523595886691570802501516773504425513990605512928456103042922043838085794226239051135391901667477161455895293369518701146046918589802391601517435559158123781567305527551475541416233825387947307221495324710168579490837894818940609048806525778012810157704778616867938282256665828281699033424809725387151912016318000316676926036520062105318435851712008720344569988110671487478533461366732010113384309436300171890915281554789152926137739739787536813581562563932211989475796802641240030066606521325813717422175123048199388918210416774582327296739202437873718604174449150668497679070215403133193077753503720363942211946914265789040190626183259261310292954100320142804270129212960299504990544363716749703122556018395985081709994313167338987807336499333973624852058047067507332782117759699537185823226712047415793901966358774383098957860158257243319029612009290148021839540034330737460888556397183930217102768342019535402367949095279188189692774108064440301129609125099759203040707160829478912956824045883287096961421011200216398482077888131274417957063779636656538143157109500141054223943776766010163767913122736240055429651366200966091387136092929596606207867840921292839749747207123902977171006667973662938074168020290875889977224033885612259077504349494668665102675378965757829556310434969079444956738640750035528448520423425073885980784677336493183364527699297818347285955811802669331700764475153760744047804385860915764871509520384848036432475058087542353564235450118772311342467973805809615335703747841680371711486249453274776691870447910780479252980040395997096907213193985510582436661706912389947167654154259164806444189994169400264331064918840129736308160003743421504500025478171484469934154953879733446165346317520100518017714566049574930954248986656616455029664864129553686490587552371622889310094809484510417048469801288105849940694079987897556974719139166978564291550185783487515541899379848391432787029802940004439697065948408066824480538320143950974730913882253328919601014506936023997130687895931965069468507803294002010275216641368639297965199882551054657476548782843071522452028628072891115922613184759444466539483457893291200572442999081768374878402575808486662244819165213182636509036847220096618674909049390764051125092713745708862858909348847661095231853808666724954209422812850129336619935474473506610269979303563209335307896620640836087288748251689768963255750168080579984023617724655803302648855066618241101649280382843824321549942754745912043624870524691620590212356158908694475193990280806135444342474746582119088937220880301085215079890778587712142133501488230947940425655391027243271284258073290747915501996027901465282210330106798282998765121236212809674937281940875073098797365245797245143903996421447242326992757544133460793698913987015155839712557728312425389459604204484798287167901891379639890954375481132057958109687606991523372637158891051517759677672966541116725240872840120878038822271500664859296101239742263665322165547201132162479178150736038073354244666080612373037702059189161887253973498170681890658872602354622583166961833454489476984732707550728037723873784942563661835177093254421771580203490807155689851847630128448705568242388066545174664137839010676190467557640128040629797853152443437152709213136715334793942653859733977002129325833769151029835875943937907263580824120091154444450424551255652297405811569743076181564470001122719865754263404062319321742904609070566813182570823326724939501798570667529152324138805465209326725106561043207378678834478632950423212287875880795417815883679073341415276891583809352299487535678504463847991613210027667181276012596833372582396779772365675538016645069446844742200361945547960754908465705166038866601517433019611317127192585854701496577692709082323663995563110710194056751734293303263717393094035445517687435798523186728822265349522505980344847931311865187725631744998466604723632213510485431198433626188793772495799818573886971829698494631546093690451388772124384698033842576848018770855396815358390365034557988725191071151220639866797588006075677887946520105772032758317368944865153871224284752712156274058371735698706140902250264331092772080435681410556498168266671295263554481847617214280488557387420973764580780830990535523861734476961212909286892941791320247733773401162087292447741320067399343995528682169793339778609085516097064076101942228332358449247956642202960621610555769438057991783382434129466368127358638346877053507495280957078941369556457891704099492428891365398113343991383285585028155391813416696106548375622341508135183388056731196199295208462088289524308901175837525215650017012243685252483777607620067642067068024110383497713715667991782124561710304267113945795676707479248663272223228930237494216884726086869542105912459923774185577253618107596580692070998180145213112581513819076901584729707882075041996386084285405273773689990155831836418320202303779060034248222936790581049557484530982041036741224347230626489533757877608738967788336948291156874827400720479804983844152688024157266389067227042151990611138121900255457338021341901152951495071035169496745440044659875478793118593947468924338247620881002796126022288538361044671715009905576949835490917017035932228957702246229582846156835547605597418042683549664896382379711052862749269351725544024378711920764218066020561457239904445971551966915014556926584246948930312230092700036964922193541942822580222256487939915859104455660320660991126521248759114347327587848987906616746697998621897457583282314114845034493873902601675959334550097645120171162875430062023170755619177864719247747874119550900510882227017151084350959235792060883625811264466969781412704369506277006316935458115009316995627040280820214877889205234792233439474636234755354110604301960760445534055196551955631952895392609727033276361215056903633157506198805852231908164172504725890172522073295626818373168025924389232695742145692519611490135202719141104094018354912694665856361909954080446041001081914850736724239663928612543819565550265353164123117051551263621440599703037488460067832323561545045983298319577801095600446104768190488690132895689481755783910619810381714527623568234951120163475210195569967003773462802405830948626060941095471113187121299166894199732487981490234825503113654319046218557250269458132209022163115491404191767323534978833815433790101486255597267935969370819982572303731687237321708640219713224511379024887329168794977306078458451484954491296771072236792355855149384296700337443085682782019699138442327602954265227538667186472932489975881971198395098257279159025420283831404482216454840874414499974378344729737949416745004230037430504250380913769959650483847296597675177666815731968312834881577313297244026146664896441582707784794127071169649208150495262057119272833471892746297759145645340531112912098566015563780327260156069087771991975835696712146393169801548008677292652023993662973926005564793798351663639599750938650247843774900735939398980508607693994540138538142933269763385053619588604454104725538455163364257700781385325627244519690174106861957683554872288114225807158982274864419102705219462818290645930450902359747064379697831507395207963810928404035777366930403664736300413473374641450854244228765296386654055071490753120167882452685576456519966820734651880056178004377466592556875352823130375536097187604461760883100768413771195290588753864125234463138433456305135037098231785839131819477180773362769973293555615797888515317923594283610375254257034654802319197554129599646164806776493514668573344100658932562477863418030376519246604458573818480145709452384552477084497820315451675202591575069261442089838082315359801632863521448838689526628267461961427825637150645347887101549470724604491754537740952891037478061619160907253812963566665574899764298584366938827321567493493483487646733742308575888953676898772341873269144850373465049784402688684561950706306992439145330326350657329227740834058932799723010459559095787232590811640599069813456666594985620031702102068817552598631185703533973680012027425615914245092166028210188911622948005948630915594963225046272835728982401675660513740733258218984599631270782729673385358398825629692032234646678350861933071235987140763994058057868753314267757677793239169613467407588169429381065084960828396950639776580546430558867527447514055302644254134782938586243546725952615634275849346631158829641102946809904051235098430587533758731628338910622619654768048303133338333960706664811105156199019071438662946851627705647657860188622334177572713124062979518058353371061502342583013915741297410092430128025446544030950121088338225515275866551439457960196188185855891060403205893744793948604854050878069225342970351251885896802867549993746031193994791576528878360797111133329368891564469395984357465878299797210980126145034884658895473680478518384991163813356387160415512733680159222492726665303965957146394783323164152827024123243625400649251598501862355231630306610454937831962844745577885136349869317140752588970250755083648349938292933805809291323082382384245302346225389676574112359445940299940109028265339376399520429753898881162255331905529984369326607216483537050621464679917649211423686085120617171234400302529419914604775312941904394943279314644633715862132036738695353532012891009093059177798402674989205901966715328712396098649385511348365354401681583199783585959140958674502943794876447078674656517264382146304956942660297129613624595053871562971793573610514918492323726173472027061135285511815438804260209294462514934851523136689371825535023822703207207215291622531792662483827972469547400794267039845440546257146704469829823714593740571912187004245184112368997876098695962727260056407006812286661191665266578993876523729070497751918552763486467133435699310471813100987832979443170457359343995594908859424754172840705969476484923164679833449336999154198168994244889366431580117679326176449551233742402035257686838829969447142286544209639775372025220510337917258698815786208138922382129008108375302863931094980635199736869575326535920015750134427657610286869036307307228171446933079099221545262153788367860339455945584070223256641194112499348011276009792885204252986931864735716926869836005404794617762709756115876721069493112185788830582705377425943170136745845302617651266559033224339658257900069363343309689024218408983947994250748448195898564270858539666713957150577747247448573798901081630279481688988022405807460269143213395764319052412726040299829055061727131475589457979185517180016815379832524233242701314979804243191938453580627887316306245038461160127612320820444224510721808393543253789924000784347343540324291806597572346031014159675489075672902246532988676878938769989085825253674129930721826992570397787670200637899912642168453840384254675425388624746702226189436549861758904998463374670073047221352197738225823871637652558764364365030836722002639599807953744758429287165424910906815971414718234111160037194778165624971668591356983727596442685605236974969024014394905490434988499633100351104038998731163998911420819304744785193786286794340031343371549538303752182456586843091485169865217090996215005282625338702776388224842029299377832898305863836968786889105859820709982130702896360573096955351204416102378111094248698193203475846884589355214100974805855955855776705611693002936804370971011895509010231675403175798641431572033360292751840857344971858508784997895341334215104054060347723840632897558690827081171312673338311233356140098118280327567733981894201907246316299502252457241916040694739913935868590029064100039132744746886252835653800875028509904297447097884912116366903837650894722918637940628224519639734038993088884440497413509934748277066373845965010657927446258161377845090721576020653662204595338588133230015380841028748555874683330577160304351097284042733843779389556661758640512066195817604586441923298365884774499379495314670456202467431919798239265651188490026853829481093066696063398520701690208364779592696475359733438664035896131155666508056027857148902091598539719812956200084010761219754792105275195925420857505242346094527634163806011806279061010005572821553848523253347455324330653001445749549025293299039951552172377897694441627085014755355141431427791624490207584764801940051140901322718342056623510563100113693649957026633094663109340875831829891382484092447516546762047920842464368632297811098630714202025507978968035494653818098700141940184541643402417278741808462249884819926915067148614553919342781803490856562184331801005278795221933454123813942895858902408214045423570897886583113317781760980108320645170398407902393755324604125858209173725918560399019696634654337876551028815831444740255822698094127828546913005155469410501564152137944074235247422948216480108203649322760000215982844803557823146753330438686959454560677579774131580239039284508223554281572300152005653296954732168383652437235299830105091712123941203034479980027412653719254600890554037816805610571995643695654646024740911742962507650902591570358551718757423255579094686078077665104564014786755143992729629792288329025332560345640332804972181832297766039823481760389798387655407515835799894517864329889134175327154196646246426393594757351198419622668350423750866295076151027074858076791536539786203271297255512315250925207667466516224773403589762724606684174687582900289017395679711208738244408303945025863755721385460752357308269838488302019208959140095435621081482004992012852882159807463741413106141118135279229543451650759913339077468781154841480784618941770516360866289224357716814048611474410387213631008884804879604894194906951006740698647667017709226285901099527768837479598621395124421128650824590251000265664829262049955991373265063197637808287613338695169938189330192494814242990628935594825741493179635529345693664350507565247740173803480980571521662562458107155653225248007478927014348760864356256073721104075819185867247701518490498128656655647112294971290133048560229755708836614993902590870076225755680395056655069799743635809035546690066159870422179074587062191276377807562123299227770579905111990795992299367024382090974941487112161675405309770459676844532025340240536283231719259227605264388836203113695171033317221025021134331955501506572391468293630544367253684393693595335355038666833369701696513023917447021961662184873831544743505997422972628532540498733879916373702569511268197829652129116982129767953474923169527948528403460837839426780848740373170198659180620339920051748095121376122861777071686797070190959178013343712947177926717831817369252853444839117893720172435212393304083579988148612478709879791707869180042487689683327003373086916668444070288259924609522989366276017529781369099230742922270705631234316126241983397519759042983329890310913722973042889067786173680963905615681478971346637138359727705972152798524926610784269623776077333294998557330579939795036887652361739078101292313415159267055933877380312013531792080514301740651901265665973281884280992265912255424971969746154216251532277803035068951805559481049999595085275991992702864312935267403844331876071142168950005260987347367415488394915395915482846067392234708496981141300802978086051451201778951969727648359768823004965577427882517516170668216969326634485102970190460335384883434813278667389806565946776540904865223143964942808913611518969020311645370503254721317299382207948063795703955526397083265178367845595788941848261988268943706461366044536831933993517436977866709995870088782915938220106043886712338704868220648434812548441112196130467367989156168588021881697277599899800473202991903807912490387877341066580275856497064838214999138561500298118792139530779456799370128789870210111462831224395097543770561336934770224381568721595419577628326257089988001358058969152328413687647440851667693974516640838954043091998771206930282659578135303511028188044769339249372985452256595639040525841563871030955741372532390024527998604002109209070241829308972291664986025659655071640980999401973799019953974873032298590136225494460141555939536558604769465238976793291618713491147478653635780979313386739245161202806378250199091373122813456940189199207731311942561553681754037388868234316850463900614142245289504780437333611308685124023247756211590830629391316382600462094974261651205557128633296805804619701333621627266911600687152447353683631336080628915459502729158932149301514543798771622118489361062210109709189790639968854530854408233598873687796222196502510995886681953304124039304131246121985842950381638119525529155984098248075494570300067600308763640111168626639535144016006554091555131234804348129354092161372158405115869012596736670869435427485945965821527226684336639708043815811970544971081541118881548572511132593704390588201947551435519910928207677261103531036279076243613929813742263569533966879253383055704298283967181183915333146271241061466904833539998648621716035011405231641224699748656608240284013306775122949266588313824140193136906198555363148990675746132205160955604931576324585776146967652879185085767776631377145624953873052605700345929761414588008993033707532735609707317966756789704152084175719184244830227406058087989044032426174733028823917552868657003212016990669397645994709669985388190567103640025107597888055613314698752239172906096794838181644884911896361510454875928591285593191154840197940857206305351087312973942027220412035738655237535940029048278556588471760059325563872490621663038063535470421633964338067286103842293671257194906578199529322090772474139629654465732519580401734797971296670439484025514368705221408200917526344343381858495157804665996693937061164749845579460544148979303193062750170976754416138093688908918841931022828612426239112020843062264162060015187239801430929054185088461836477434787859287581152258114601524418039071205971591013674787742561241531442556801725385951898939623086991338391145856271081010028555070255258602061217394916486368286749243141272908673673399870526304735164174204657620251316051151174421482221240827118931366098589496244266109292944954565095242470105107160409209688910998252603927853907694647634886824475955880728242676928088746578036204707446740682793930978626825961214814783023686916878802148984183448588778220507934784907163185099284393288132362354519450415937828763975011922740718675499135527112360771165147384932460356754320034828295576859196117076526912157566254019329656106527124589522018174290993453949625275306343166390645494162971437263562251640785952642555015306970314820074739181309301698522124169101203371249158925534357157236907526631594940587694228361792684369745256370226102370552276656500029951049574166955444118845289264134056935738865483547751495929954252619715692134422228734488486507664908024146678933487882740854668158362725457639306119243633180759493900356210717055075019449960942261957941510570154079700325010229095232435237219053113294045503894163406565182219346194761492458826921911197705163673284835515859053629328005930742919903757121080986437547170998645158988525703405768271679508038940935596980614053519324734195249913762691899576610849093439287504982950174253468650869827758195460682918952876312463307626738039033603887537020639899787314039868225053713516029077408109804998902575898638281944124914193094624046628631896278975889388968723210087512783045541793530080189784166096667583091523429030963934907872411111246209308043329579021324532542730020571374559734695148249716524394669420961576162027294218250434495640598745375516362399565560033686081595994076814306095756493090949606086685204699441633443598705638548781302486253995722899953365013668689349106051815527551048424954086411289624774244368333118403684977743248006169104337754702880482043628086047367163004484812007748872983760106325943035389416222612071019850150982811188256461887119033928321746311129239951414383369378115292914904485395157794662323829037376196110322016409924611330867926512747887251604867896344120382958512332375765522964742819963388002797603072139728175867964768594828298185705546480240031805072533658485803784661436469233747175831617121605944132360643511027539590640063311235904822566693091478641248797997276846485691431374838932463501706906310300064471948898262803142112206734412106047506107126825881587621843325892224828687257319813981981320019853645124821261075398150735063758945506182074295051229663590437992276078331298617940176751374992463260183085124212228807971678421676438690642653421190078969452346299743507846018930718872977584039717210753560315993339990055590769035526441705169765694666578745644617744366315503428687134014558957833520815530652484931486012278420695182462063534430408469132454516999430120332714923485094409662738717631933964359719652175301936050909944397789906951477719603787771262631368559919736620171950299523393119987322211679079460586769184760010135629305452646419183980195536832542258826605933733903566698146547370695570922215416795575116321785351768552061586245954346673974273179716643587779924903548708114717159318965532055809060245730135399888986690389679533789079472766142046063797787646582615125678621620924117327157843581717031591375770591937464908680087399950486397715109584572237559990070104672376675302877891298515132264970983471753167129408660127060866382472790803706898590865487842246178088669134403624253959734142362832957885393099636132183179281863688713851068851938886012584603371478680963185534120836142278251635894540959315516378041441219988306793913581000601588023706022595744229412921431040824254891187008114095012612315225078317947085925248156367644917515524548492326552794228775722787538401976791126557310559683483089661723580583473957625367686622416384949372285991105212971574136557688562050257541633142318764286697027037095739650693557309482532976916109214434235991087926784682428020147098545650654778552038960961148209654058726558587272235434963615502701330311996818735432946215087901445707572112073520859451676115708664342256651651023654947232121465322602011561745835824357750794258225912572795614905479201169261379684971197738671128508746568757280486178189385852687588877126600378121186180646444860202144629408066819722120695596344820902989902138973521638741306265792186550423335844361705294639445035042255687270206228637079074730468956958450210682942623526360047082372444684824811648356668428216085388994097571451343528365787880907826775309929241442327249735072421069475592001894091370756310204472038516099537015044260966966008763276239510565115515834481548157487591714120919964661118524725137238314053230655453377422382613483163020181407957594413817782990792063575282289445464467321211825982904131776568974971560079684381380211437742868711344842021311128198052100716764550665239425145891694796955667886351773851538027816464089149838069360492756564266502453737504926257438441421581189320601560244641053647892156945775847110044821199205645013957069454731860699093676066705149483940160944910150201081047358779089029400889476332746338326879804289236902648776048939665852862202827353434415810484690377894104740994095937233031775809060345199533516156756945774500127783669612911962288431428302846879778837491111988033376957823116250255171233732257120695713268736240817345300742365706981955480500467076828083080407068886179525291146727654697363644791790268652739103125272490965042218747312350441044448167835333255214811032043521289452910772494691831550763382186822426761332606114181075517013509749801111954198051532767222406643845444027940141567013050195200582083112684812277298455213108022465658558727451934752487918238982874075100067662217659625583664261079368532842719784391544401764863173538739742823208503796736231807292304951348353040678835572557646777194502474305930095380909049167388113121295049705318647976954220193030258733993219631501013418551942582358909350016530838558846741587603045526211334868336783672786956317818640440367033160411913422953675148556741831059335939571555273236868881410167975603152574521075067031201263625712116487814498568566976267808546727363591528308739017939605476867124785500921192287730109888451828649733315836377347340104611593824414863137422045399329485924003192106346371518337500821435969261878653858139164917995687437735156964892506873984272223874733117320743916948524476158987786112588340093070424610425376989039221041955090887568890968976795305455008908086809021362913607556778689693376188589089994759888533546243362171568295277445936902898428785725968442873746493387115647454272082440986796167324715535343904148403442542161195263671436251641661934064304710814514485495798090718002006590042117342453141667562185846382981080058393788772565788025962585443424751754104875172220423820286658632156397663358123591316436928313824502817079159901567522585499570607742035286707194158351059358702189752000657931222401320251658912154665909854158075735273185439054441925405499544880219600140312677190563429159373901263896252969496040765447710170734997494407442608638216600758078712754990101591250985272785586339820753343831684081548125624465010805420946184358836555826224892200373813581321071414588604284051714906673689658797996509346932843479464379568425973890005176640768613311061711899771696557419559972207114614562156026240018936690199374983298629122248086737916611511807174591445615150684089929811968571909120006598650141917625965432852817459509383522137187023576064037039647298351593474028520112381000689156939446499094614432634130105330646015090098926628270385084109126204651124864896826257168319642974010387776801210082763512179279048396671248099795259529293644185254840154323042366974051094374743223009270721495326262625826805441055013686206630200073616852066028177496206329824714533469292557970793696304506157366486037888916616438362291149633450233428135675843124429380181992219283582861445159379516395663238472788137701586095815994217839729937749595611284031106605012140274214977909001479889553683467018633518381758340044286205695084073957811628160077988176772833167542655517631226541762746190022389330132824818068792842975481068803205476280181815686378757697013633704125537540238391528085893264042908145419229250520810456142864830995882937956236561081129277742894247581369029079932085879700444923807063065713446821811961031248700398498441717031094151703095500521536638048133349618534848327292911792618943504816445261483283795791387947931355493527991626146537665583621513802090019751385318576548073317498865422776782650041259412316708189101517167502713729659830180478664596100696683318063099385517222592170842192043254330862318768750029310389622429809460189554780044352905261650696378002333973173255394867004406842236729989775966336265136900263044246118705767628580026584111329750268067915868275431132152998322155746628236674466816501317391247829234223425147497675740541500582308763501133999974670578552005910396015877778303862417698404541902324264037031442538980575057076352471244869566548035789506632219497329397873711932887894682753366991196562591710189903836066596577469046620530727117991225612539980231151374280012480517637244659981659915447065880991171623766974661428576759735787259696758441621184277262411313040655959514135692219111913558223120612878782964125915174127389531446419047582988884920313371579984116709603959112897653879444152372019364029974649251697271773797197528233039421307961590583080832232355363233144758620102126172462638605301933535663365776875182251312894724963687851891644841089508735428338059079369461053233610217783466086379473284871454282789600870560954994234042238696377748234789571946758616542335910123522420148208229073898519155785105333276865923504373839951370366622595193428285241921396568868875830807248257698085044168012312251623899455314048218041429453136230866560552473084031087683855323896018501963521435180491390755813291626204061553016455719930329252164423510952829415231147475203204113161604646491345214089169666525923126939963033654782790640537382730167103615033399645639843487438227293136563571034734898632952514110464701735001303008636242125564470980950912103649906565283798111840565903635606059979322878100610962730337317897845844817719405494556441303226249792024542091463357649671315984861444458131676345547798198262090693357508994750069925479353398757523196177463380324319956044051565218896362241724705002906127006753483180637817644017164592989080430389684692312238963625928843811776299102225158222133968457584392947760441736478535501826663129066847221921802035437607021555412738493562471792605153868467158121334633492236713985044725082919649164705508426708852859374103832459797159625426602242802741707334019820785983384647440413113467442353429066447930022852062361181197058391036712408824973758316546427603987625271332592011180424234234577749061081199266076580068784873801095167354879550753742614680025664982454534268854478472334596638194968485497661564646865332347345104481468512245270933100912899717475926348164889683201087261612855116456430781205295464820928816178143953649541455133374483596578809162848482411366179227950523584968522692943073517407262403786903389662504127219706007110048595138087333981858014462670962021342071062619436220270208921478856019231002563922350786623175277286397554210979100853095524762222094994269747389526722489234942291859345777673256733661642989475898681844515184442633653879800938625355188645707737759382474923033692388513797676076008267271707645417399216082366791164727870204648868975595087010101546277822312537153458469122866554502392759156727607098969462205872767864603929580319499405144796486692447677276604606684363715651915852508056281340766532504423683684478820760122944821195639899008216559800972560105818165062017320257580579738836021099193168069219539472853907270896060746544534175473853071360423003797728801318284335657181057377106349240441151238722521603501336833945634812984546102062191970057181848437226663625898966694973002852230657755976546506269431148743389863546114492679781248360746292057335691909777915153766550308099433651255191952051847653653236325133913477032905604148443021742962508757386367275267687430420990874545428055860290053825947616463284631927404991505013216497711899281240651328087581958231704284945715138100016947108637046614496540843529524163251408537355987750298052286770176205243143702610643209590855545468783034972350029288377017431535985915220877880460744805240054579071393783492008369329933204776256057374620341077876308352546261111487949508953238769118108544706294841331325670147863187501152558159322996776049351433602070092509872760885644739981282742878834109507090371358101873226130051367006932585903591319030510072950679148225685197696244977268217820822195056943405951655909310530861734020057113005644624965720182271220295832713535349271317083746775933990665168985922438631324935476504125137697498809395643723221725016109376607836616293695681085208206532891079319764216454937792936857751566927723604323414804522017769321710732650699299897409856578974166425504988357855555070708237435028724621814895542698069813812906115426972811004174657115995162267813009408629408951597936598288386901453444733289563807152756704223927048202949971725010292902489189757034608733202822953317885736807858889666819998866777157338030740694466589132085615019728220713634772449345007380145494000019302052247714993932344069433672576641621252718777245447698499662232458550949809419151792653545767175539160869414149693264138565765025996885328161382004258353226460971148375863802954174542340710129797819464951638120973969326482252762078900107468206813042507881150062101054673408119048020574654247079751815649578431565039345824510339419835457381908953847260991479154941628361850392550880015366003936151263132422737991349278747019159014867420186167578145369795981009631105149536880356919971305042037430907533174859427330142682090644908776396588676550800624611632760755313290997504330123284521810359269288054954172533986955719018483268101029383931653758516612555391636037335117517293213295361589113439687243353642506428569992345111110379349839631145337898165963643901716542066980555708832418180378709468934422503363074918523030683351802722487181355383102342431820032077460069914760737483829825462897396499845998425772047778837480278841300362178786066471516983990455625357878781342859846425594388596274603568280365734914682654626978860974548166800185800905795521221647933979572998289124375240552642404485716995030394980912032447129619767736172915620734234488440416315460776979305447057375723585757238768063632095966008738084368348540901964451964065687587042251781421534945790675249776533426583667308657578809446309382272648705393809203108885729669225133348526977903757587307722674695596858741149641050782463468740988508000139319221850329623739833378127250908409650057935566169908894033595019164375207994278095906928899124826430803969941406053167681842142303186277682570182091875280439347482971930945168623754849255901956570052683213808827612268167356711552407125730671201975298502356042287441444247998439013955377810138000466353457503491080130849195086363916876343389305782174819787855497302831938863088568369077482383615707526381492379107355934436974529877152669913796723880013741393969359024565001120623743096922678916331449840362487358813008087255765661046567931063703884316484197982487615155090467866809648881364842104205495437613127308814365824610295392262230085782013720878576503295559223056698765840933306408009327867188276309949383409775521610046009678273068899335800522845956885466315630778484612931188478293202925832717312541800251370337925533089248316043421628992647322439565733043827643135309228990308726129525710754840841770357441243430789968989697870791282968292428133899786443113978508735670063930048603074594714243920403621484784330377736412057851891232375655084446553735160915791322969065153079577623554050684044848802373886599262361384561925174389357682420535948024697781115372841991854017441747605027220070290062735682897446603278567162303286735939824136547311136733119925328868286311514325769981980263760087802663572490464139661893788641876785831794812307817104993476078453594337272128023252819893976851109561032445092139362765411759214740979218633916381080408861869398383800047508599567867792880595867899032022606120369765126012910337170091142549151224292231752803366493723166971989310402058306334239954936172124893554225544240152598880856667106348283389940892218613348721294325970273869838834434047772296542159285506265660324277223472268303978106359589967118655129353862703762385716148887677333779363425894504916932481191668927234389891555579749982376475509743419789470252725668851895466011283442590999298366206094973653081765917431489866046595994120217221378879304329892190177816147533777037218677262011897126425492760676094464367861693630082025500179071419954370682657403302859712507302028818391418417065695839869240091762443499007061234511441014217937163916121900316510851414309812377293040255265592678692712941793975101365324725031709803272247479536148304763311913300051013022699263660895434847655886249719761670680123614227743469180459975637003874484384663160461858012606492485815519588015786084548201857616784629828632341001212045219165550907334544887071535453886089375869110168552180298177489120194821915319787274994619939999906492580295914069562005933984548262514823686516095170219001352544536101002932900070530392040212673219581991111205920269799354749717730249208601689485232155316002473984238394053617928653607580236675077813451771364985491985981933279865748180915674845497228820625459982346998900532818424452139266394399228028232369053535884345850251176680445864254998419903594457471807909023334168133129707382546289679179873703450931846871214936916739474669249021511528616519400734326417487389376386577986057208942111223577667952288662130679745940374291752713483966699624140788929081207686089257110255766309246152116872808338453945123403497069440343746510542375414162225268967094434483709453707693338874117878377565634953271515289121523775433945828637021805413990157667355915363391175136240179033818836197082721109624011488731412054597186111296595901825185954072937092005648864710076449437904767199377695650342730813442178092798738538621642846767107505754493152806785748685723271924871916166200147559808601492116949520523913836327963637648962968164103317162365359139080956126965880581255908775958969028170813864714454949726789931585786561943453425439826314397162488956849965978608877125948812033302727931525643083064824042604229830339320713842937982373147796837314057772708279487640885049745160638553653276185075482227031819239471011133704316231723731078067758701839679398435026127127181836204362270316276499711357773566485594951021799662684386333192579500323777234026081063022546826215715332573414922533226985132390818133759493141061985682860464054460180261069021046995603031004588983225019199387701174848145066417128815544785342158298827946119691528657106042770821439565523969528820074614273665496557208254641143099975384078795654897740903449226958158327438962752962477481362198461806045726250262800014390294558127723039326772920248353162249645746067561680991149071631476465706765803451616814342533783825732896856383388486741943579550743879050082120475716252914770710457739925748649596415056623649460973879609432107405891540324090177154702938077284257670484750836984916823183353778025633649193600755836421186162839120943115644990052695431011004666367904832875662342285869112805869135614104689636087085146886502721104691522032513660497433532870203371227197247251193549614344002043419780228808703921101020425339169364442046001277297379060488923756842162798003700726265474482057557140647096500580454015093503292946207636671726710162472642424745204333329215334633913439997974616113763332209700267657512908207633453231501034243135542648096179882720925036606480228402693505735304201547579230662214070396517078794384753425861438539415043792865579215671083285292185284408237692831171916603218172696744898553985721572881589362677458220381073131024144636571915792748685896320262177154240005584832886466415064019236892972270434519335696925392682481244804522600679335232320363597219717525997389224679067689969170312088371606093783239334715200054682516311659363813806097991345665137790739348828037947417635740241577365358865826836309085548652956797593309563896729507780210227701815196968795479896137886889624494616434311292054242664827929468147635276392990723333772951146723838213781715365933459492574447373992828360319994575506671184256301544056060606510538699535629083770064209106352701318532005660933136850218156708675368593072579099388451537337285621006815124948773413211353739306983556094326875886484830379812719414717830275895649104373644571662615096001562415760613283001429669871381152553301117018579742397562919140142490032254281462481000400629664923019727532068717599411618361131963559031157126271599524653890474619118839996399703249291503154403659953426214446899219527144360156081147580794639440912827125747094393257779533270175139652497891746583437080958136133372028248612428969640766086114691100963271496544670964342285324246192347022607081777824586584279334221322455693457640799786731204277425389922865744566152218363800906830726265826068194108490819748754613411111515115067543854454802578132408891861623077024733655194133761792266834855419797211615501590624663161520535873477036812220481932564742387601059214546380652174668430369694452674342208016549650931570586800471836328130155279307749931255420689665986903250135444545734096224171443650598478804723137220500751139616569450307644768971284933205687067465829838968248957315919043855455784306711723682696447877171644710475999158618895171191962911798016521145439167775748133008136033126313573436867284851735841280387610336282755150738584121726303365543572704298346751686165983533140203237873776346753174614145797643687304818898834742452084325876072285385779385289297514884674253801903852633144120932065127901881602658267608708808651279589564966603100875073592487859864779518774143964614045544166325833957874351129312371622590839840620500188977343856740505627867843255030085650868136402157573809391851912669408203344264480299101406538159585881284730133331439899194914853429220310761982341954405337735362616837816465163122426013683964800336904443537314319866264246280423250896220038747730771121307871262191113364596014472663305698534249905568262976353573609428902400328391162409928560592041624559983906025815518533709678341753729418680075518927093416817611771824542908049966680955446579083001076373453948549000027761973372075958079180231003325284100331987704919339415930172746033393369694422818782466007939621203511626070652147481985505611933856206107123250130064181344533010981493924342445750435646924365616197813785384982657396597639988545329333681484920416625174621400958900128629552194680613948868325221993651148988159106051133683326568806290649734766917184026708016336720533204484030073021042776263794656159662651228205227929938848184126634286829928003693910698418521375855773414429390962646696711015914139543110571313592203780568258151421707167139999910810730391435809342301771413875034572328277657341643737222073430966841849223467449000416829413918898767891488026873257504483501804160851459626247020557633241730969443194286832182965745552486534383933188438488393391551899978056135683305223449559993144456978819270735782407711972581452438734870971723162939678912625229813491354425339932849018138788575240311378302365757720398026703112981997890110136996772406911321862993963904262570937758608515503881704804773241030222100728309199873009933039563146937461358572362133214515146760892733477743648433235135786531698166052521081002990355371002863274069428466622900378586705167026505164615577381758533991875600728401686654762432080122516394452929889325544327437774685060012825505015501392996331639810762239431659593146664158037832242927040158650927202105239298674924403453741836703107762298563616545645459289489875015718737822635092508418840279445750568360213129131845153653574214209424071283356707897572676581715130449595233278452525257761976408779718454698207969530167602968882609956691991287044572576290101859234132147437285165217951293103667677491241487809568690042904567051968716791726430226050698495386938353300200732497055919098793327205996583048070660270526798187122004459877082926696347074517048992924196296732557448211865580974297970891119101046092919479130392951028669494648575457606030904380418385245016767526868578650496378295994084135932166281253827908615653525651211044600387839764682040359417634063515938830675590689763871260758250031726815934374852706595769180066901220607862675300743941122396255884493434886276116930255346021755895553925820641100897454014990625587417962036510586468890733115378791282878912563311380157475753282105363894496620872138817770289709797812127232880549368822856540934012222537623340275352068736049295328080109003845180730852511241881007282102388815018132013814665528396725127291728122241516841004425319990551970703367251884393234473401922754986573819337060278189538243620649107682063706483423125359261970332869485798019800167092347106928645675680681518913188381319732331603193869041800593710727133968943732780139649485000158467922449113095640305950932924196900018967956221966679062120159339587838949902307681214316692064777747990733048358903273982801181680645627790875386029039580552416215294198835849286724693675122401365638170267817732519538496359252145719879439754907324028015259779264336791133232923302267078239617278711690480940883171881696225247389346534650672744545172927452426657417290751610724724467033547306148397927877035466235833153036694428027874280367669378031898892630481100398318371922639775877332225827088527335470851673156151479872953519405113813586920054571556380013285526371315296983448460786486045881359797603587165431998798950417090674758584501806657209479190011807045694241792678567922015019309526189915079643934101961023871901994202443351092276596202902909826602357620228557380422571980024809574007018378935631887115878574929256895199741897795284871000747311384467416293513969963502852406454752734185838281126349453304859405039685735520465697477292916942719503005498439231931094333991131134194854676351800455908765023998523071435237601301053628444143540497140411755200093572759620328866556546787001617769301192739988941567474789497128090331007218656606552279831869828944410035179710566304626300901888727803815127820136281123810355953617453703239515431883334824885527594850658386284949328515007302139804265218324139354173281367156535686137269398011332273327753324643597955451693148480291522814915577553538534319180447835455240850082648647201978924952096750022314054267450383487148761869512744247681918208757793428122105284577068841386606925891332945567395013321686514530216373322668362610623497616598499304494788955821295397879185470849804560693594761197005929919682702298759013694290564261690703507497823069717300945370869434525225795693947572736795126509004911081242034525325527771788653785286513774117393863675886270801342128517434435258291433691503661971298216735428738063336418174257232237320048996006245949022571766743653983308663635065333419849288847511452361565722551705588485211994728702957728833173481124050643858882165662048176795662682059313369711948785535196774012306525311555637575077742294923776369348261233653120584731162134824571762054049012386986134950215989686032700280967346588686429644631131807732228070368945505649172539050440140885088602846422384328168511190541245475725437873052098420611857122213770143107885033801399667780953393331808329455972078005026105621928682142332222220248510360252144454784864558283610694422508761412909929060781073884100277278380096033781807243499864059267321788549124640641871727311155511746379384444799845237735509824838250472841176494457929126403738845556847425886562489619139144322763700420291192379459931265123680683112026899131666301128080268248866935301501269207286771942182832539807882865014537070583346537035114984549192931206137186582253772521324631030534343940871805193913415490002333182977478856578920832961210891041582221954256881182869265220332812649274275271789092821882277172432942733396219053044913463684397482842858349042570456836348423239252649666452278417856744421928985047139252489866532863941012866924803655258645641750747989819112114914441307082760618663351236400276966980634017895386916613677041625050627386787010641529832510351348620949149505837167441972099361526104293603727099338810870625822044769907831478500362495234347122338329312179697973497346942489463345616154283659600081311357820067592999341503348234069311557005593458161110283898753769911844560335027878413185288897026913221808339017070974705557279286708444250784431305307004650339795110191571974804541513758960177615927403491349035551983596267657845533147376458710225013301974075672264109374504469620401696737441772854505270122997124846823842159231275753888655258749419506611033523943029067340726875957899438827898479399931960719627989880967796855311553262715120768819234478174411230391565022683909936440928232098927829064448079213686217346922623489021551032879056964958166269673555623960704762034432255760097262957722095480930101865296996938148028185014506663515663427523527362431652787359366431682519548795802735239320170427208882896564027646883757004920571447912312790529389998130100493357403906540769346218605808449905820079133587891920720963334486445540306755229514384017344821973500115637151039476598428713338387974786849070613511180617611965935554097838313990772502159558687698921510782786610254695013703437840498026797273452255716366223223757693184693176835589858904868968989473870242912080414132812650045199536868307371042361893876874464202204527908865037955010169382017320336805475780309560404816573328048370125178992390284539950864599006307961791856472346097691006553942195472941171467545791562207597163912970934204438046600793210300844922254828987492652054363616408971954271966699248547511898067872720232692005975094883675095302381751541491698145449490793560224351076846222829912693409051673219707219470835237620571015883585850572348018715017997509500458988519136304593807402054251207078693177013842207587839326674713432175138369365030351466390268140545145388251747343275372808357617187380145092345534299101938744290202159450868141829370714480186954670659699339134573898570465926593845513406369880882112202972640925099472820510696891389906736696783372968374120380759459254538680159174459798899385606515886557493121229000600675478761492782476008353951163502660545611400586448606255752675855261685046250555050968010825443041736089090244420345891081359549653930801376393548194093720013308888602730325783538787306083309163939833783781943491077974925413935760160009328606254798204619259847653203250674340059525248326445407641126816601525662472215881919156078634683869247384376280800312870900627238634334361532117821790282104341903506737585033770536358609627846996563390471996829065063478202912325200151520149734869041562622650132653606692688203493278021042283906746830053637117254619981296834553743721306049776943372114646378983019721970548432596055196674634957962804461126283594206681805549212544379033389267193367951527256721428147880747184754215093435813574846569188014798490021645503803145714998260573188445139345787198340902869011604130765363788419259610498165631509694579775102730736831483326327945747394885789356281497387710515125815367904874005877719881348973347772824918460643234328839268769014272722601145543057845917703319836592220271620394699927611152817392588142387109384337928167168244971084681306596998154688475806446093637866103829430746143982951386429440860615288589731179956389209249312690584173034718667556016233646638883757694828120701991599661256065248355187636589340358796659584761306866677262736682221380128835557927463769645814383557432568383978747581124207071216017280685477867882588996733106234540210709354052498511836109673627197573977017084722365833556187691383110948499669435799653504700155873629997970243433040013445438576884558015223814707571644635192501163584631166097412656337065206696754573659231107246155260898407805886397483351977149649806489037661976485439122310406050898516581361220008077839579203402743018241631838369483843685334075477812733190522170223487054034175307676727313878388040234450034602681135971979461166353601962105531079567822467396466680273783812090346527785078264000660549116071922538225097197210146814413197594660213359618660447850607690684467457374609910665761725923059600244242970076378083685509276773047709641893726501824462799536037491405990028833793993897888104082495447088602996193861820894285809431610726535372601696158946411755477075676079531246693610966205890704005718695317543055660567798621753506392623978856075848940609036043799440167649311728940263950601498598231418099711501887860718635254576963136261140030810669826147902456933426805551053547937061044319469562018765338956910572747003312129915179421494120576481567244654716491056567776730094200494418498593030758455219161449699029751869290390779863684220648796474834639149863180762487328326300520442808562738494256909667687516236371699184883857379947289180079838835638065825850265806047476872748060408430506644715096343092376092976463220731503131625690401902756005985858064841214447890635361571612342764456315826495548253356366967385520648768362784956079469490339020196471194535787438360602075762845945203172140413407927445868153543320511494147956711978646444752917233765599715959455165380849370312563784529260875852882414531026150871382101668575639678689480319506253670702284876641638243963042056523605872554645764941149581084882272767513349173081207680493021667175737006787784552325768937598082177133823525600177853388463335047134699131286037533653965309093596815433458296050349889687563306045553826261090678029560027739215406955379979869801375570794917075116564650621059588849452359997408515394514290533488042507103444133935067918220674926294076111884729785995193035947738170282777205994883632187955422462331759324940694949256752075049807920314371120171031439075693657452085942638830069564905462702805263199131905582047037921620215311667362802683989633784776140657849520245593313147408994781062989449508886291579310951063595595637141500232140220398329633741921373354581397319981252934548765118044509978894755341805276533430237168953627802812510695382262552578537790257517293093212315409949277391359959230972504409283049724938287758666795763581173802091077166123747154066134977929924183194015107188516772974018033598297667229148318674872683268115529131913216372865474715104507366686400406410935955413260668422330766760658925271192358986535163311491041702424054975599306717206617261159738856012600345264166248417082567802771581152707492743945453161025202293503373148679061344316500741556966744097417595183800505704134729059635499112359471139708838945801983143914657142175537438683472728127696101077499806951143575182202364210624279936329986732609557595363208319682436383582809624323906418394704491689904950546333058344042404433944029595648278427008185100895387034772326991631396839513906060680562394147062326516887042496470267457911806398086381377065038150841102085795902215759243114994270404715663212558296894565633670008850137863161565044579538249692761897937042973017243888616197543956748272058934900955084610526338320189762238566015488716602411619351221065391831430251103480608508449883934430661934160158904145360996914855220733902658384439161976242605756095494801110041848135507552082843054082210549147801615754127218751623544742291835808297697903773751673825792314045609205105613663722911906853216610780304405313733880177215917142759313215432141370527987144022697599772239320421695395654724731057094941006061521199332259525060256317962086527714347332627303163264754305562180643666275180153816958154469836582844138853566779548967553661875381077459671089719160583470340306818286274872602147477301143579287673119367682349301286208224266199629720381720647826699654889113626911609141746158751357713536333838934566765539939008629198574576875817018247590637836570157079285319063478377489435722471329371819981746767207788944454206433195799297002363064985054553076064541073267430544203416630559683916243602176075500860834317069901876964132680599114444161053887616088754592445329306899058597282314329752894466044440078579857151819741549854084135156513778794529673734980655488568080305428692696620420727602697508437731244607889063523950112203565327650749192912003383214294673384028640937749788735906666980580226155132785378944995009044228974864592445337228636413221400428771737061325671634777084678238859230806603295181613462240014600604898392202490612959248356526900606939302048415565756610628731418345097800232191370382380945394709155191937850823400573378821574185724311878791481250881789296599996064003084605192937613193747744980252443567417631521060854915679416847795539782319979704752076030311116451879233725670626406824634163043624196125904600258406435014543138844935095110345445449038355937881917837827214123965821440075622164821516973328126723466727505352297662711118930942333860390556113355261674676425987570561962807044417305386580208078600611057801005170769825190165283506411975237248203758898610524030346928182322339541176320740548528208403721382385808048104313442170056612229523032730126909910760130580589127001167345380503476894853451630942104445992354730423087508620371853533903503910165791710990240298293606697308300499539484140198499226862086926626636426930350894860775771797398730166691084321457485949250922800428933541670726246712111827491451378604859706741911693632215564849370139788525683190227777960560570941968267220038014141962278445133046295783874578028587191818788336255653136100087764461998151727709327398288678752803152188057823406896774998686247236084217910201059096024132315196938144216606591226027563979381376649916363351673942861065683617793998071792974003409995352246206317944071454855339802992907696471570660107627824503994750831827162770100232737616070244380475662949511071016121519359988086062304008290404439302208775141995610682697801459250746851423158370327351871241782086337461251386356838981005346405052652381449309102814147758612786896141618747411855694987850656698128537078905248640422452556578641299438411489588889399604257032745216542942116019410365481994675179083237838394706951013753147363180352943677644968341757529543101568233477039223798323137505077362579483972630071097916087363915910672473544180292729741187580395573415305318083585717755436702721124413613608872915046751928923880603888124398854563090377024329241719209279179377805209896335841995107712481517541201215709018136564447386648037822791531637465957881266370263318390941083407610636990964994323722722955883476214632545371564669376395893464240728644130089224740561441482372880913415947351174736548807947613531471315907658235351080756167998108641600044263080447860876915695148704351803575761193726399038296699525489568988828302115813409361698759525743057550271522078358211554713323781277503084603790881864261984613457696410094190068483161832277154606925002103375793517502063438535167905076503347181016754081545328825785964685883156156995723872622969042537565680070911263940217276232141639645281875159313452928713971746995414913066386618714048807669030737797715222426824780311243545837852670947043099038511584378805755494306900717877903914051483832261719034229687385897278125930237942858270632205917894164961408821854990723921922593597521344263665869571084446907729150264094293693231066285054673433002547400549143171986458989748090356630556127025476540447290041747232494263910792394516216185811603495268563177512363079616695350129548836168890395280591326666404785654871013754138294185533394004621750831055852446081802469491751293087322653017501920187642250570721384285243932892151521780986227966839726257400286897332147563299411344349227415357947909359103989284612557005649546965315815840963425462500920214697620742674349279934987242620443016552010972352940599576863146498689381841359862451840909478785284780351439142367964297031495648342598579557054144879220206985040649998895480038040565564820680722890912707225527388513592660108810536923642009072348568612707202428378415187836999513718939191038588999448338830111106686335035119191615411510376346162224037564153340025531140591567646832634091097640959837147968553550827919255831486595024292714595624599640512326042497785972698236668636345841607180532669279045165766267025296720756510869237818098586019257098932201199391266865654402647108832406969944084529535504772940075109572894466883992109609687180534509232084193654205993580633718932218325048014032091032154844112198095089363644751145711961157824859925917471258647482561456303471515821486001337857251190363653039193831277156317587770275596331604909115475826474770300803292678677000636440198071947315453598491360278249050160240096390048749633161482736448919577261385191617271634310161147738966689649565017444654613831246344475379737548038029501496296252562826255972522664314444800895708023347051055406724492752231878227041642485698203219602663263022046554961233437632215199087477110903607691608041564441461939257165783700846347244728163283416312791127896367113900851846259717978567694920757310566648721825203925826240513459104522030641395704341160000947853684781733976438706141109413590859660920586673049749301200776894607948345596870123097503643508136971159252443767166347833044372078863168658651450236521931951960152479674448052918306820608696973438447777368579376551467786233205615080994652312048412703531286998177793587099074604454676820353798994654838969910090809331099318993755344839546508812294267286647353674278595429871231105661672231543500898035784268286014285765083444305779635300266980285901827328374448311292494393938642509059881518541142046018133416939605358666095469879480441527596481971669109788315143474941497427663630583452497908080879133095465101853519849372382247959194913768793038460108703174704400371910367374145838501242650153767649634311590714931477627983318665065657616961229544535459138937083059075862696485203007175414540977331118704250551673160601272244835488323019475324285651131963381949723474954566729735010955421389308797841824262006797645293526188497106394374461332492656655314495319074932289581766611371915152616390749365682649822439121767479818921849324970617291513819922051372918109310537472172911289667185429820537546821488833146808462754019216908355737324578874155872611792883587968089556789711155130973548333100911470961001416088780274263593844520634436675257139308664443863440493649925082913823175897330135665194597829629188451719289502177955158866985424570839694416896514116987377614079395613644614147381328663939537511686203135620397910362828951952109330325295545490377829835971205793832446342086315076807841658262277963623205006551320080485073100366772134626328679625163639387035979828895255415399604500058544400395699467594279707176627466491674871201874098042052339499281485337382988749489018007377361253727595132098320744653721830579663260358856611461671074236547936272177182790511959153796191054925122767955392702620936854850356821917619286053257529945606730453523897582948662221622544834502613679775123829907067067584581441556842850436153327930593496614000454731137649218589145448081431367834724155333512919319956844208138449743663377169732538275971281946018999684714509248828717287372780522797375847221760168436048012632662859541654105877959898972539370886437326645385970923767892945937837179213118015416063831249815264840611820272656828568189208178776380280788383934197964729498371746838077567139716822438883661323906299779408796913770756957330789747965419036821752861710404812985758187752290204076492782056745038358716031799124703742741028467785079419280640462894240974273450938949669672001359653233091763924495295948773567727810753087813331354688207228897914125027861610755979372946064266450601134013868686734354324559815258848457250710717178606907390620643644750339758595048240233902827956144901579457056186819863182371796660764459187385457195194211102151563591888985286023847046006457307003498668494980809940956846548991398499921686164455296920399345372329803075882705948952617772048854669040317419071430909795786324531607781840575042192488881788080750871745856272589183489101627226829943012488510228828907292571566272166397118350089766172742259577873670471485503174660661440085624581333760787114668898720707268290886166732191120251378665183038825505286498037077917447382183187322930293714008162765790883220857954156900775676363949648172550132503063563601157946836130834107021215252009257973608188781539206731213498353146705587436210788589743346214656856006195625928543995113915317779476914259451001240469349340558661510460968336034920825806492060109279793617269194374524466830470495598008278644562424087020998408767464640486013441603907825226418155337289731393091382525473993813010405774781089518591093360125364140039200372365064082973142710130108770887497075053862474860272517835502924490876854254104769615920303996192713146109080962531530831390907704551909114854524416018214606767484354193751235078581480420482979797971927460134770036255123166453824337922432832790623058726622990872799141671192326946128740116140851107742931845096211126133662388667150871171624299535331701271426503482736435398034709816365707493967127585268809828865196894838792816043713153069785634754568819623648367390412471492472157026040435031801668367643059511645601768716703112028408028032465423624249138871348085616981712518370556949838948388321472570435390910084719519397629951372010020010633379850568823421948046139329881826499638577600644527222284708517759683913123990062678943292389895460443883942317988746791062930025982894278874303160267669491511783061171327647462339020476499795202975263429181496452347370184579235451076370536601906803452268976628981051588026628598944095061455666531654801610732939337012329964146888648354928170172122314126631912108702450929565200803404380966379979991456217420020389081746618999487937264465027039040666676349818000288286852065972641148646939587972203331349020203958229114315028336280474936855696210596184243302089343723669290742345353077683045505810063468182802709833901868383082924241371703227274068686687485735203559039906350330774594783988763165423380653018966754317650354287628761192006378490925101003096363422672815411866055019915334048892737700299577280310323837686782922876167170892963958128735977975845759527704772312968555803972796541701228199629137104177412557659701899613579363435047416123083553929069209197205144702841655159759068647404558098388509614564865434667433328635464862089235218065678181002809249506681872191812734914581775201932102380370774146758912295336755567353680127565726571401107931491250584679439246404251652460351005054280645870297301131160364363085779413295407803488790244313026132574529939722163878710951942099521917199589642719554978620156249644316417160641347696087839480677814808385681635403665373738380265534812370731438710000660370288863491434181194246517937664729700198067287701876516626538858578044025105596289086599168934540220553098188973160079290912504364732302082018273657322197312343513078369965692294936747232682698168826163654354713953117617569405394659921593826460426038497843300526012259875893557550510187970611939325392069165852263982266541188888340356112788039311953477527712747780045523397739236607915493561911617642747073396351929703577451628962647045772751839423093652481766550470973620281935804011338526346960733896964897390228808548507467217767733417622643238965125271366559693271402000644567507402560053593959228562171029071941855487167702452951559492765365503385022968091009660639798806179496625718499784175934780483023473003246775474272183353048678995271413980822930157895542740978361963523987659036780675209905236228700674687212217463992509402963230228373256146490421362522958085931351452498137418449265719655615060673903444309199264101980050416144569898529503669288437327542100411355280232292818362997648714941055191795114856797271322645672618893201483309572090316075441325285218087562155669435253391955321732796457650516509179732379737760360522928869561322743758512626483789139033468243746595958363516267603597468364693246836032160339928446311301370889605733524941004118778733434912962654721320654148910842521494049128450913347826370528452375797524235069925676236225144908733844695819649820183376841811678398141611989993390262710230019814794644242678961731246694257569109575296719569832449159566477799829240552548496518128734111386322629612841520245223370468970191413055347645506595955257231304467409484604331498916338076300237779792692884099096753922592570779489714730565514557054156584761746351182796983602373034655030158997357472801819963680884748680885426999925945665942133919332696284924934494194982270896793782718388492696585568712714452869515503204118420703446087350526502868059465616511882493133981546228881801124402727912858885796785337103781579448119279045850975079572418866999262435090418500827844166689547847951494578469912907108942759138713534358293347944618257429183388615603990996803076682322139818968940516146571009217152475337738461489875084167422873327359530553451680649016012231469827891904621347992423068358796100644812199729378012499510809906245861825765698766713438520927590889981377928897819489922960999028358632732940381812626379045158298350143631030631307649757203402925483490792444858506347066608017875916749330091436819350750652002736674038929650982728560723942939078188359511880947037784563769146770740382422379254194730166893130574721641273970263351600204108793625336531585324358051184538083326124680840283770609963833136132875086584203041029283764216558007622491431947617605116136693453001790453152214168988044796680401619665350383051257486869730383716339458660133546946493609305005285540942371822847396752170472536868243137248862477381808855956663384825959993311351602574724182103908459005097477361335456575712862819033245080469016137137373539844394138566244366348914361234649756052331129928831239847899388333196837862627897462404103854352658708409959507028500346102492939925693935571126581257380958307902014506501223134296453472486891776109644778148754723324256257540173981593403697876531217146475417926834471128891204833909774361973745520278210278933142527955297366589371005374199694502513666541882958728322288905581038868929794096248833865068014047998949871000504582224279686649590625956386552152545126497373130024450687858126806127729975787921446799035707117519605774395224777803777955615779729977764388156715861785537458364185179170049243834823292562309371670122170689923003010784101208615811107522320409034808704262095555463419365879854644427317343345306886507033750489246821345923659923917507390117966463088613477033338012831353891102693256798253900837412381156274613259846535345788346263654077203874554754687098095552337250571873676905720893584566668979026116542338525810262254194047146668867312095464092391351140230401027100092114358133600458093065738861900003785324107033989315356359763680993750278801158504142546103502652529334505332770514517418776819231727607006772961381325940754131684641691754619536920131540695407806760088556178230421452758014918005769221800721204764997738135016482877694029988371335523900735393719061876128543789902838361869423166593019288245481235261239444219561713999121828680828809661707212355361477921998392764518812658034714798640360880813031441627399924623080479530526390278152148937758425787316538979573496273280337372840304264283613877368022574422588918147801406797860229184649297624266390993716280103199013853613838755890255133370470708513768641407197846577718322671697375802127018100268058271874783309607477400978695149213213663319230951957263532061940286521919597654974905856766197472415914432943384314501025691721532577354127505896926720360032642993726627871500583881268591791259509560738773516066240787354922529552913378811115220720798471489420166849841877447459332918249056142989738275379014127318285358894880653720900054473313871105066145389207264316208902930637775720855595942604953901359740482314536073148476181908556812247953036780482702832436748700729917178018196766995990113576773615059677594284053606552940913630730458364642266563006684151828491179899196518768033546023461492034617212637322158101580406458217473386914683893461651106147306208773099161167246165284772762810053687395657649132414599734579207993275546440325110959969578807871801941349855744189940041320040067025845041633567937596957546015666495546617350559075324586079290055183790915874397496535195907305691413852521476414773207173364437362002758676756622178140024325692753080298097001513987901325316799371684720584632461154744722793504954519577810714260059881365817163424668333946403643574349582131775986881198330642601415876404220775260615299302590228647152116540719695951126112279431849864285091994114799079899066959127945243410754277535105320671393923505201265265463978597657038177488777935089609335012467557628857114888959700351244600757709113130584219427637789480271425158305499626169475797821222334809099250804422605636117765367075989188223487202112925188892573188207134715189739205000262996820939827673049819115670507347720469657095786536948094693865636765785125501718995301371770256772529544170114949110253526301657614828073223476622697168558152617548678740558891520859037728751276573077213866611120578084797487068058862652446904503870665826533303042436148923430828157647098032180743871188932606376980504517517169076332264207420172400982210742111622160759514628805027428800060988156574980368957894471005542973056024617256691330572221041558317783099215021392374774641882856855816047458451737506831436209098665459574219983381836686401563434291174126175040436568247752704456955984790511988554559769153804238276179591371108697710178866832862174940674087311514606658632311518685852451024073826929451296419815808530385121166152854303328093325041830446744552224643872230611858090190056494132201731451765490301094309574521633940661698259506797776447763770299164827140474209659318587811681786042488577939558221959118822960348685604838749565470216779679807309469910238218488531676439301375845995556563116722780539560252181377188164928316944357306075795173280913593190179483807277126631614090826570201474721355329269124147428399886064495594684763357854015855800308009374205435957899375149938505150594782709995188791134101768999943185478149181339619002708199466994210946035527628983120511273301638182508070499385302361463631796503478593149579680974376016926868618744926516505290540665241021531671673869946325052242761284344607639578054711333477275520178704884245320194575502546733970671394106931903470644413151273468761293712344910114957888529770068045206791602770163290901234255749909933081167687774319235630129980066443285460851273401816144704044456859110088640660988108155525338349090759485211988255429034301292856212521995642791853030773138019787176690700924834236512537258529297642950213896494642304499379670165875675916095011722862434660224934566095142366175256233972776245165612578579547942010752807419658226090684826348975072340972526996964394860332177064392527372459408210967642924158660363752720515716687841564955580140513001725877140779745389743640863449226203931603617876774868347397311112723048238775108423290587733521063870380033153421915042387175984232508177933782365659810855870621936198593429450954921210295652719954912960301230756347766567919016794342575600387106359328608799676964298460986397792728474158954892267529848601719130496614898417069021583451550902939978334725094281066691927376493295724010253857621094823198631488600050695379358772583253454565989542100633316968541252229228688124411238411077144138010975720563057229040009243725380703195988450984928487007757594691677998020307607395026291370787279137118146128701635929858263389325616586030149033111945258473705864549082909243010553712771203906151618567098331017076662036604349579329935284617774837605114481874681059866265769877630328346633267598226897304565017083648031098673404767047744510961038739547588544695584386097099073828587824790673779846345379953071427568660257721979748731406377693735223863659487915381393290232249138459852902361898001403396682294334087932009473551725072711832576238652552358490352817190292704723528901725684393510739654593180639114715466433968607151466133945991677841360616003793209051201045976052328780817456760854681165766451176736585251386576803403741941800907398394898338714872160324142515287068475468987964838561814981677654252734690517825328946406233053140642319042679371658598230676185448281636150419562763645020490313629080144273720562925024374376694310158282570123018883725318714259209397831163847049342562187884634971496123154018602024913038596707676045101834851365050030094236781730653904486642808481251184546777044190790414077963160390119887640009338257736430812112560577839899375147616718454330173222584607845607443565000826329944646483457753610344362100848095733368363960651510391658066341805091451387059072929415252235344862427867243278385625049860554276394385361169385535325933101002133744619067972010317509241922026987129613922531078475078811818836920198988305194485714769221150393419407299867563566632513817029492273735195173137061977328989839942571389668963469200736364317560352038917396150083031116909828555474262048900331181126667275356312637511073687881147356970391848018762996471330983435070774045958696181433451907449891644042955354659354344107603036730559910298023530698549324964851312218074900049534524168440971025816997408261479861729786712898953727473925591432617912988028093163831746741006419460006829689944760547278488604164241423784436938318211225821162912529060217142141525667711402680664448665397734709608138152471874030574737750319454921027180212501481408881001330504772626239911467011980544879823107608911909933496918804584389266245218482195109970826003662779946343800193370837909372281374841929713991729369373354779959271921958266414953918902240168479480393156333784580229288531566927396815968112593097301608851043853776402016919192860715561788998556182731551412062469163974612215755055119986904105912794540409856708268832118550991710304651071476789719543587996067757469717782280829605553713449326820240930314170442701711223646512648969207473506133778095727278037093487657908500279883298138363636443896537472375023217680545629769960538570260603301840736168732624653440894387781441852145921840199550835973485002814574768363613480224585799873028106329519524985657571376177471668863128612878801441708121674251761279756203384995818287332809114845128669323467251798852131337072654133506464324435167838665113915190410751601526966500742267531059967567787122361694096276051645779020574091375032417328747515677222984228029906842069838578364310497113300794484002235165546734737692766008432010097835557817150972963553409587007410758225186808195287993682588815101254684011271947972392969372061096327654484026172410946789555112484518905593846676115494113407837522669066249998355781911719506821207840608787408040897569247941035095701160185140674452101940381774669170404094607136633463960406418875439679725468432814210478986574233026597247971594071982186582413700071900038968322887394289942830894100689854095209709141518338628411634222631498688582864360836114016445546479101833196015825828133595662825347041384487524270713593294172086955894308581947928673388007009939521930619231809961069440135471195643067876593482284145434200373317358408586378791003581059710023284560741608443096535495422984437926683966227111890549319679888596620115402778192724794125116292015618323806114748254950738978774857524441096934437406170896305413666897950404679139182821914090077660596219808351792382163071553920962898875009563065863326533760850538324539025183285002263549301658925131186628089363565659528629096002413950063219788529111985330125818649000687312521657026807926340068313440404891475504707987229042644046862552057397571440336956882157315247874293974508679667600804459944108978152410564612339873696610888130235267335343935186096622808671939662769413565540560608976008740578432337100840022135418719661280760180190089486441163598597107084905666653414489775375500134935485898063793286928375058704486096715143986853664963188663316106634223471921424352832025108271216933054527201926470494983765581363837138920845658718088334962853472262026405018211953078952357201596387944945058166185089519261739722380029526462158304156698734123775182006353264291749123538657587500140980367771521432235496839770976311013165774409615527323966199282106634181101623884134142784685405858080612836690890795040106897662743067308376113762371765123398799849732032958946096500791841126997256245987876486528930790511173589230321520955229612147135779828888440433606752198993961074653047142978787564734938018225504831623756681071474482184510204735347034129597223604012929995735162601211048180906086613051220417378970793135111112866326692071518907511978718053016773959274764456507803378150031689233478978008553301991179856639324164929462788759301380588418270163562532333695053448101813444642470652453912378551235951841104942508446708614569583665621523370553713865643057470516072753626379542179002285045560731706779294584857132936605077093500248781700762942393337392435286160784070101185906484054304789121693262242473893058292013268511598647301786494439632142939317215878501918540724248691243042929271839168197008750299858122062077795937551787857974538704456584327168854975616150201999413345522126897177470806318556068383175387433646326618760127892598580303038618255661604388537121443380176386592061536335583127043319342071569453142984430331491794329542177955332670327601053269835642232020148634899565003418774856320497064977084323677958652479546899303382897469516723289555980726761821798979309114476159685647043819863585317516538305030870213129369455832993619017637973714660837983777686449129098847531406135183353367716524203983212892369219679017420212689930467232281757215032714614826985776959380232598537742437334258540665357016423393704212070348668952825557748220643447992737454753649630377299786101386319817221213857202929307132650815371444716035541712447334045670153676814485521627915394522090860615160718876077178044834975890385115166838865490367900100926422694271614981776352754568914557701935069806480414478660652991411601935967528535127528336841005477966221086490436125622963247871173018984478480903774904675740772642848161427027334020182106219719934447930503514975418713456098958418497033068800374961509655575548928546658323207004972433806431832613220504955525178282860361288907340507577444552528019287969071476932436580369213625930580386950073211252355964273345070153986331177000192449284000202278571232896911166605671740375020056669890177519122714745675116176248684394093816209666775174322185524240698197604524208490369558595232914871383925115845342505610682764610352280676291279271026613638665831433029899165884242337493237736432815573547785945316335747705986143749796427168769851535369756247116197523857408141083811043603568227511201234685062935855455365596561371736993982882048693162481878546389203889011638868937023254807019376213110322257884078261463447290594625772694298499170953806811619543180213002791012081411114661384087413683560480289131233833957195064616063573616493195821028615332452355671151578359553172567000304789958169003507008250927512698160600002380475475001128637124581420488810527554166231702791567729820548160781422686708772814531185120176688658267486181459159919112729464542294010342497907396296599025660899808115364406223709212788608607068100708026910076579730022227271379213466271820252446915329160925288260601343072745520888739748829652008090365120384042475689886013910492835938660351459262774557408236613211512573217913060369042248411194348445112431605236489259914828373885865789826743059383329794787428041188923823025921348119788422239569796273639066296696448721271476526483166961731257967779860320512531583527793854823912840761531922260199127298940956804996465370844123145606502899845465388431019834382693042479470922854399830080314864645117961504729214990278641696386640355074232727401152131188906829023164006002926962843805231966233985670103282914024570279578645261547268746588946564881476165840418913553294724445877201615855517250079238257119343230693400775397978889734265314962191933822771931895515277075934411753510600154580733265763644992373542863352736410234175041547251290505114762472959900911334476246759269467843180133939536764945580781078531717533466760401712473161305776258407347586885189246272389293124672318158481051935508897409447977089211354719304675798762384515564652384988373815381996473615040854729091295345097779797948519256171010661048186118617436375025025228614920849719673017712206125570416144845535208723939241112455199963342984912928307968318227846511857705437312546533162387511267215811078108872731531845888488004593810904715363359347385513910264470882454523246603345981798455736636642113767734992423539030270162870778193173043893249071594489108501303625487364391474341209556099372990745983633773761922622894715811690326263429476333085864986617041985286888516057000934140690599384485317537285221261666625675915743893125257490617279239755763428351085119785649635927311699220093470803852301764754022314584185815098335660803734407323315590948091813585598281761818412085510737599146366937461347461312720668792226800625389570194168086859978442373382434005682202412977353800716952485246880775266758240144404846481698692475836496880368881675539392587449157678463157286724306656633344909260701275334212822062102121428745724352426001516980402970521762924906759215940533889851869131562531874467943037422159306698278190624980905363957817168233419058126299619795957245567174114551574924847481924998481897116273232741008335792856823694483995662776935782068398318436830503008461818081865560260769152283009864828460989903360766767182204704340614262827926548394183281824906941952099889897920212683625030446499660747383405694374596286398371860761273591797539760957458808003182197359234405789968845588590833387040375138434317672212548790883944952573901049009470869911532853492617084528796055648915210491484013093187823116765861875027313639693255551665778491316847800456218893948808365622394695123880689181285445453584671523773416824933826017977725792912065853896092765218093899176792647230735295039432786605661720498799546728535241038397405538136464479521635732836303484386060141805931816754543973475800506456628055448227411125490537792493206088135233665735982220616995648591021494683303161272581964468322057963964295317531323155576977841428151147989543444487961320625252489094984946996352692333767293973376764492186438339109928065863608646045071742616717314622803826103283697128979944739303903670555938476793919213471673674522782165444711108993370735418243215229513220837485543619412717764829344260929708521160574631174568332005164326333042635563952213315697221158545621469227885915615495154306472263282612463295522670667549461459626944935374006821834177495116353711515890103275740756137476408330258255621502468464097981889762391832977190628837248405791483082137005923685184251076200926358514927470761541845624326389621311124406791859687034449171356758495426013718508684072651134744097582324473104578425050629477039717245176149916495869477192177609361987779157655803604231323530059425865102007488883240314479601772522312557267205994125078640789956436119474467232609767219493307038722488310590869349678426004822255898977490295368054921614820080314104109179460715009490550117826978576864059950524521656219410563329877690212557975765417569092736098468049801431733094375279298848593509368037185978552411035173717566840144044080485378175136568023203443482923912263548629592869657416328097091244591826138129826214737112434607538937639326417367781966002514392552345142080577284676783277477399484134209880113838107742197114582216407421295999423314917963343717417113403606933119036459369479604686940988696474986914866723487809189193993468808635709268667643460029324072287623973853074882512070417377536000086671349360476580270654062142528559094741064370898377993625259977652558145583593084615315981457521421399335726975507609175958139074570093552454572138469862541267019815736017554129789747383249204110107693815262633939985454310789749242168033282260880105570177612644348546635196560224283320221086439063469090553158023546772171824294575073086926006492667850240863303226779678901818930273340356343316745191755773586349398899724584091679314034781778819218226681113089152882676883581710201031584364523914122966853604912689158120271897439148248568466576112722182507127007591009268584058722200889766155948528266508451586179714519709496481716368322139922993894851374609432348257486918881076476488461704148623817397705527949743165524739928156743049954257258945042233176541265746424322864683949107529731093581543289031135154837997291778410768102123184308499026425793685264770518201761313045205100266054818752363111151294878094249848482874255039877229792671730190443889618603525814600160080456451325327262621664357857369386519859565082764945034820927710548432381097883283705225494504360494039445343803099300105687654479340343799218327716483938895511449694079939112857046602202377428901001620891469745254383645516593981587190717147558096449342845663383424761102781507846871633462856606335481308430062561781350075002429485830118949172591312604319535375238410257755276310952089280343577896912407988557864785175558152994389758517590836636987192704276437242150978639922981973385059020024612714331298390735518832873763612549490390629911067349385008726495346919838669300245248567554113488681502463884289096056719250240745315664394478638559604968302333976984406659500571088712860535438693981771538017019748116009245700481574507460875058479183752574276756764425101804703586064688850311684110288883907351830898955220672001941101101275328245072445617130880103399711478147080231722429588353997741754629568667025127896073498965988499730913580337585332297161491365434419535788098335761121538772858061691027596737373747225483832186418964589022280879965337374361959552020768392079173779191481570695924588255924336858354060219529447832738922845470829865038851390245548407813622295661577847026945510548163860382482223178619702459805880051808512505594509856508396721546737301207898636195491001284863810692779447660268383203325237894785801625416298141342098538425169967405469897738056607210249935806609834497446095638418406681980404541179325223789496407453203942412429253951799391199963205367225001337786836925641039603741801157066735741130486231061131408980626123043496397287256787837848658199575219939453827863324454838241521608630252361353968014404277656429597886244051572245092080746285741603836198890528957769919302882088635335000238823262371641750004334013933031392816029558719636463520320393106197436115473390264129427080645504103313922961554510876516044506617318351270193569340288130326438835143122194743203520497749626555607800754516403555720265748703143327768716843253419738994198676681758080331883184066378452463194851217228554901895573578826583670397968578228654240528381856838676613653164095215971383415884571307154085767202044247848040661595752359800054866352105474615006089598581341979294694442284128873366181496895247908931695514725058591502077764006853110660217666217507327974960102077652288093152449458476110648277841349371330300218234768141288114191290520592576087768248108295720300112094752522582209330992364258354062960513837275058117978518870323638506158599493565894804943482178421794868781366315661546802708395214187626647936820908334440976358614384712669179326161215828776024676142290057484759359414864912435051799047686090126728368299889629433572109369968743379823102375140491802688665302354596227839344489857821533340756586633039443879425595520673007481455138326893795621783569682871872597931384320096185401172535189190494663544553229870337170900097781307716833985088563140009098381663930483632177090605610149738260094234403670224559056396801605416672529110988445628166752005192928973233337205512657552256215774990612830503864090596431863059754140686346484497296465397454725944927480374795471334981340951706996042920586339670617465002241958102843364673122168368118472803881828964762385816259229121455579171525490045303392525240480641625030159567163958445094086988109321067150166794305308518319253232209780930803089038558666170379159327090909919239562740932341494509829132587093346328417156273949557465085242411221013535799799935349119045613136399616268237079731893128357602512950914025294045142728220308402140556129452921178197542846671553433956296535945869187122569370195558998081181677886155630158424722852820139834337370989838708202318858954194875278985019807182615631244781806048193962599269194359744370609816871659732251506410794470540985904092601050715079358552758962663068262423151360495566202745356712639168519406032819631197652694232608257829118094941506276280051026555194561362654018117378644285120957459928069692866770949417041674345616899358027783067247982763804480986909338900032299124948927477813247929675022349360888318499932405008917082865010722325618669164227523109538498080361644511833471053591488543712624277480189009576059841882917386335384204495003289791478788823408415357961242689179995410325879763811987439863878938148190207079982600127956325023120678722076432609695404626232469984005082917626338515635893103394607338671977195452131720136427463631923365482277716376352028432324051491162127511014374149379064420945734913866088434884757322974209011306851292988549143717016083887504978645136626570756782250541495385097693714191369028807937956088070870879806476989256898811818268354815313163721932152500763889495776052672270970971488682764524348591886016462961410407241677267873221615362925507764621254919521139331864531503816621489918255368551212623169914004870020376454793064023488103742111073288255149658217546804027997677836171457503648892216807189137483990918274381786900677870751749807586054616082254153521228816600748155437698588822724460724418299050293965218725202024051412818201138621111957422434628505547558971189325846897635099448979852198832720209575769429231818949114254032390842313762792140466025168666635290137793647838701508986047066187099080876038874978102036994151654841726512221143695984383794294083906810998672766320196768418686965481974017391870345025329742392247609630870037078931124462968774891188854567030205510517639275198968358392914131821758067875536155709596993305047770774040970263698882199518461739370646671776130038868499727484159040294253306409164362126450701065690987082712293563704023654708919927964099231410339471240373409695332178104012382656014259408123151680200558949417717084152737059510212761980784477644930044975127029831056538968615749975472224834673275459314720026381897340158154779768014388351719238832693041513922026735859457908570337106933432178507056854046038847957769396849338964240380922721811012931331764542545137964285483505327926952710861355836062564211923306533266259169777494539439770423065703095512070534906755938809756641356821669169013939420881273632917137139345415865818393825924913184018612801014775334570563665098326563463764800640721923274269313231087858549475791221996573962107857960450045224083084154166589846169291840778008605340193646314497634770123057261507027655809862158911572597706291941823491342871640553309421714237170809697802629048331844248583765663669523741920496080250630800500727518998491774303612351199261245866043552967141034155311560390692305128414774895580795892519467407926685992968879684273122522684468470294967296812145655308735907293336929339034959120729663524436933047055113445729302161310506909095919028932972737882218587336155320441787747485413244786390122662869414526351758249666102565564985557702883526163965348510083002568196505380007017321261797271796344528712507395830848540145692114601439677606889697687565904576688120935776776388495928539312555005264762146925999898989184951347861581590476001013521738537304410729951291042747968085634803655131473859201078361047785556830162297623058172218018670661671299739808119149225086223625346728519884452077918949970886766517860937681216957350742663444765282272932475834748910488492236499284019791504407048240587346145854882477784885987055963798473010356280996143553621066856740457292950234752544793116024574024757288154675075082632245499910474390093475018227062121244094790760570261215583436265880198081429964106889432315660821976166180702604457969141298725040986010988146096205961478784871826168011266117116286607609405025975824865429728109023888596810770476162913909280687577679516046276710237206472516131953142232360296654217197711229829863892884315924959711292937829057397238856840210678105576550075585547958590641682233977910638343610762270987180242184583001075579302399411077149039048052660722012916057562641969950870731510220824099250975343374487598211357660069973868475186896318792856073121846366108285857831795031642315627941216496339852324049979049396488337358120266725258312462897714627985904166898227716487317585836973526616728347963575195088846304881739500340468375929486884015844738245510631399590009022764765264196497194557206984846954670883401652477417692332120678957721053922814378133153132323702298387879160275423739499528606143456530251095426376851594017141705271355552037425950541066581175519694205001200386825474240825418011845014725508579929478314842853555110896174160009193360023904088217287887610925739191161012297090969032466903469077153642915171721696467952506591664564644290384120158528058800787789166693768425644396973911284431347630678294526401574646531439491827828726676507922218149108594478693969057711854796173922574068823924796597567968170753701333450844285225714853618671318675033011772019980192108710529543221377574014093265718920959216394154683327815206357040239307946779397627015396662056098915902633768671657073481711278666218879384107667555590313484177361025399522811149709539497215838462712032614873229188896526985563933193371908155306343193696646843449572974592635978023085539441920391549837324555657455314973752422385131680512443099712179555836041883350957666573811248139201406508914524019306780409580362149683695319067995935632589521059702866414919309465524247667729645311527483853539869309474102622586238245145623798645745303100769591191258418623595824932963313461406469613617471605510582216676013100350778941723323275860906978118979630438479133224260872452481063846906625333899714353409171415755988765110030024553451113436282084523358426036791821364232533378843495306157797926590730452399161421267713122126047692480258122890023128037570178428200385367232931946874410779553141729287933951794091271921128012317324450129038721548382654252998088028746662796688114533168580888530325375752349957283754144900264035651505264129777896061732218294793106735608400828000267438722357118391384377086146091271377510598678302498026136616465995087162963249250616578288534301727150492921654538388709917938677643524739412341455020562852115766346626853879265345221780218506701547944315569246886756758628667315356093310946910963092078322412270558730690711891186031367589721421326310606036195415154174561331949269335102619842754097812164348391348669093346349579221396804401354265356681555945675594764150729807757613985464778301575647997569399733004913818131941137480835907402188965390236674696721104437846772679064229054948576267395751840726469619674566240162329984346760450380103366097920525056977832277954088172178697173192832503670105242876125591547696370441055427870453317680345178154670776779418887605511452520234081875123032504417178070126653314609502226815943797318378387370935270067728532810577923671441189111265100779084326247661604799947412658661945879149937345136221880638125972720821138244118123873932050721359352544601464017337020899367237360193954299397998581806566359365558351162164605941149845071391413620942604055517851485880487606778307982605533654812317613555811815607544428175111687788783805370722702299323684110015977844020885625685175528250363927456894227026172058995608716184188613962325043795212064978003093477856544398458018577917384218827853911947649058219058895488968818461673381433312564378567630355366600737019000991799240688393978978072344787517991937675290229631191323651990910333701237831117838887515679229635813104935970985360137967494240911900227381520761145592460099703104801788531384929746437795252942512423602459014118529769788315461466950370235707536800278023817844696822205382071174455144059762795824032867446080845580739783919122191075774068543138571583472268131973554459756298307736269006754255092060138451882589426817471059714498413197004446910595768683042509610005934808607962708480764528449515580111409656020136595327667065232575204826913941423183435164985134960579440967277193068716209703694465325928926297370550697007744240878966471389044415383866606386084825057692943203383406661025854935113325446922998710461606627077935999751718726334788277470612475633331312506166850248721899113687506761265717676180989718187950903975242162354396969163264773905618392023255861290117376235655830813132922221520718500850264417762540370174323006634520349700129869934506107523178013600398439069023719487274466582966150936584502079918240525601864247471359140406453043678741044129967012559405405131803499213695168064863182751874323165875178308564097603781474662776183867604715500838942640390354072105319164185214312451937628656623763264737613771556026346000713420106235593635413719379681421011312675947799140286746831169380255523587097556839580670565821852379237490073655996410120870535854823398058228530736828764341108669244882091278400426642859026715120688516361472666082588366438503625719017841975639608703143634421500349920694136182566350812449459286800821793651525087634583647766309307428637323132806807343185097730378787068382433576849418005032234202501425264704493176434774881796413550319814943551612196521292379989819127635679346506858672984088350041989117361199823426209909779548742593422191220430174425531725257807594236685089015237614921546727186462873117913810673438226215823011935828946106014479609515125209635468784437196438642947794739857094582363810212054789398561442925022016439302863312594178539476570760911528550399616318084057432604268089364926525996692168883284109147940983547489164831567335272973161085053565730621318099409513827535562344004295447067734316160130953552873293064307368327946133112034281445543600984618751591942085160800966860349002323845988549544179525760485112301667781441037434382112917316770506135230357386455830114238194818176350363804847941576424349307332112987552013082468845684466548832400273550137232016170657973449243003164656260925064794129634161175569338890309422039122212850012532684165794749770101346002051103987426392693499709026455095533649431278098196060470642395975635462407315571697154888568731966987571451767841419665219375492213268297366023559946683528338081466130556234115803477349139061885057867432538928152387394820446078139766555609400387841659785830176992190920144439274437741651700652261963669380790298391231290817767872915722415181549401239938568462285962416943192463270100407984918109319000729750144649124350375978945274784070127315956966773257350325867220641608398520943583049194487925274332709173544668062275756137857654898829796067578661972638088884954044506067129500017999225598290462279511234620285645862968025717355503907174436176698367070288026672430372620589749446875511308436805969034235922695354851888477794217396495409875313051986363823160861415516399242881783527055410776840502374996029020750377909278177847545502206365684760323143274457262204673747309614850533039409590737608461052100563110511549076839966849969578270678301695561717561386508139844694299528422887602699922843492079812698766975239634007959226795007915212880079399290152540030620722134069349628176114201434710558591810319993096151036263785899069457142644268053565514613439203318470728219062526121946282252357875363345417505057280210025522212219203576614559852492258779087829665321103125412524313436677106918812094364255914118671569320143887748500274389069073493389438774338921967295200336483029285197440501757722826544441421210380413061753045394779705998042073893412418812237780559924799379423654160738840543397282306302345944640169861290378520649808140351341305617255544612157062766580658314752968919599258470950103336662855808067191741549895714463396767877328689379964950197605225332294587100329036664167333184150689389950289494059750976685342664850804278336657389880408987917308895172674414937736416067620169282572095087451335140129465249833445018582838283654491309436523553060206256369892615784996401506417153641636965343797879059069039512472737052297401343589006269158033697923934269518848188320159742835946524983267541306565952207472398724086783849067142138258364080226980455870100598984917095397257063949203195264324032594890009387800726467419669224602316289728583811654909946374678541176799394857392377969713367771313047059804471465555642219817657663409784173126306941925010807773603689303504544061695338939195537560711481575287691831730665460088141082300424484092957932709084493884210098423287617377099617625419551926013795742624846794546513990235674324898714079193067240981167394001198053073301474344569257357078741857734527989878784466163337010237818641443090985096350660354430356081877498934077313061010384328038865657238116579481376998560445019154838668256463517713850443444226420278285220416962489664384409713649016333460134598589225931545175408146643704946240270709454423034649433317462996245190920836074138394186036500205386276930863105073432665174579064545118644835375648399708485644908363259516640014199209156046005900554519831642039279072430621649263347219979267933446981369437531153419495904922085845938127670142393313856158957556028654696186496908853417152855076669772486043075845018322736519185372194552763696986677143370020255453365891594501686880937727150433669798446800878066359728921699494203446735291936543261778811909150936498505325492435479035784809548464592778694656292762194396070230246163607559870593826040735382296602449859766869625259015579012771144141062046679795144749645005671845071127054580859683264590909661454936654914466936904216791383286160262869331378734816702846040675209329825542266541144328199617725047696761486492206414292624833477792392326261568408936048288945088208686603136561432986779929682238828413494282935544356177983653915109302971332306660489458957913746501133340467408896522088979500914736458035970965152764650600167391894977294546075690173714856338181562362973617747476959527438337978146916728291669650155107458063645867244035346568470687238311493680055870778145118322966082980355981994796008234086075708620448717724447284574724699010346036856893866931035485983766819792142541912253990269224648813010359566647179111174628505877175112089764791473031627738793474346249468607208359312116487162065602156816919546442654715296330951825020894193401245413325736619167897974480431660662199883071040022012127781940829087595285812637751734976071369789235789618252142405804469889176819392834948563363670784004453536314471279443828815557922759326566663418175592102047457796398886265337455902829213213219329743351850917474290506230370031400954311606150271190794811436443283279724271383630197521971658702325816539265901076652153979818553467925120092098207263240144888914529055047850376316960934252488456429213534495908019847193544217108032488843216658101499958474991876767122445549653372300209742097602112568600331591918337598522921900780056924555913247387877806240160133978181303945346442205489431920675248160608366175573680807294353083331721556398782325260749433785182224487139397394891421458690900247879713811253000975393526342080088114068750690420699067411183264153089161480287042202807542330415393539434116645558922238446344852678580052953660917514365212361038968377074412361664453163622521988665780050523875262083831012778337968876317060172220482638234617801443737436740243871441868289172065009368945876059778825984636485660964311647153907464030877896527178921613837648266098139192009550603235010673792478701132264978101891527286474967936807065639263755017883733357827139068421931930148128707846749309553404481876522039161732399546420898381579828244889062900694087726816235827726337522061702953999835101443886810081485379446719447724441109979893868663160899010346961564622635094326036382541483326719968092349009195979806333140305654431013410540357869229241483009442869616222388546412925197704121046648913429442561152795066840905219484485755571485285198854191328638873937992055041060328904396215878312375418381301363549501846979126308390878544398464433638806486370064691710431739892113944059001957482132787839653857974541248474767019358666508475527254500853612595194386700982538297264560048478817705353659738247139571723725474344494128191445593803064732871378491417307474371703159811450798541345648079276876076146425713894592924422135827568712641352969908838372634600127286669375292966269870510011374385363873706939441852904034510318838954197799941251020919289177959641337247668103898925896179504285870944905943064567919835213110727916908732104986611696480597155689524439857855213797673781573098484586770715924108142314101715597791971671148449778976606700532129174144001065124936755825359732362505534574507338952418040837943783088255620210664724764034542426629918343402597630964570309972740996006889957333675161087937929615307604409809930786539683104684596333493017247850508436958764284884680376790050277267920663691460784300444273434272997448602793537544356681743939171563341052398560738086139074191797896817960404979803466845579824319253469512014547737852717560074622898075343946082420132914503362067299511056400325674278373204483928798414027643982209747227608457488465353263580050795294416198273621597819897775129854985600260234749943458291188621775517333746554715993277388219443455497245580401263108774271137340777264110935928862589373463282459037786585854973520238301668070266074821829557134658358731028571618526471497796464449858437597229609074558115407460304598001732703587617517746620814976699021439600019038458200120796047067915372885899814758530560924656585328748342208337156434311148581545647635645675726853978144330629293731657261619609627010063942838164620456932854069675896712293459974474298573690749576533050285133927925335460942968830253489274235995513129674507348715947725669459970714075706611733763949668184552317123880075402951365877890381488187273984861328455130527208750866554284006239191234182701130774900767486234518935879530094801091679249082534196545188681215156171252790468800873480692983972166666344549801078568700690938445270198745811094301205987379354388372842684755995165168324123765601149145255395098209876745656951753541195207961754660233127794666994372984949816430832322188416694846226223499359391242901717869555220503962706824416737706854445167305628434090957630379092994070517947815162883597270298323669190100113845697937506283721518955125848760995374725055269049286012618427163626455088308477958091544523160030072965979744365064501330529495841693466686406111053691930310768908361218966815525837471568909191029176071931386245264945559759836207487662807205845146282506124038064333797352269526273726152183679086724589021278316287144520323305152955653963732154669567324364672596334633390498957773817855120025401977582456180425925829825660576777954950866767748251028565541615467218214096815743984982604597048001909654350801504854571247817899243215580974287205823948641228225007534720459864138595853356899957468234084733886993132941092292870147986084090957876046969122761842681469332544237871586836169088414806703766022933698955105159157907355976830328886498011699652577072894662512210302723758056860930982248624547263620320587155639169765218443463674159082557385302884460125903445043945231790786769275295396317916067795515016287013294321876202930049677614953752045044983631625428649274917201340825759059509405978492602390200858760547158881840889835420149781428706278126780496755334365761078345861663523600350255145219455866978359034273895918689623901400533081495646979174977981652924555358586868252379834296242670577141746182155896354278124851288480448742613627429301040475929921164653732930744705952341565168447188851754649774513508892360281671611334942191113517479436129770921932407128396706102119857664732410677729260807587107221625389627407515610398671435345212853236460376095271437471609072739494144885005735055264176428432799430670587001154738058000680476195017175993976791935512875682864355080611695655355761601877809966939631065494749236216284399755250629856032167526322062329283980163427337224227567212699156497269234269103980966424489174320582749176437578731808973086578105016893627564557242383160001265155487201087012191767395499028943769425642200653818450121537140372340156652297601616703449707193192432424875010661899106409232859809875934348540587258394676008244091205436773000469133958651356235911328607495545806018687338216145844153139711760931019976683922000449314054431433654201321495775381236328933422572202849358814769935819795502911071145678086119954869401592085394306256397139406437018705487770216678886045391287937025993246100014805399885199682312776972182704663154944585778826413070193270617098284884697580791553258226689585020089016688893158958007722816389812920444808273120860852337215003097348976822891492383245699899128407496230367123920474777886653331071809402109234226818883054099265411863450904126243784438989716452107812278125602462489192742491390733683455730227418027256650742398724862708403574302599201348792121440133746412128323598173516370506522112441030144500500220098281884939649259338409217833504502773699380062924754860852715299290412364540111997638936691407455109052894980969973254289812332650313993337424777613305356230864521646577309678178075779463649505805411200491239206543252516359602071789024371635124012825123037999613532827234482746204842724581262386640015606584960925775176689209512726561318059569863613243869983301813673059602544509222425316778970136175535878231296364372895304907353868486180146522016437180015098915244862181945134714798626308563982619745603058106726040856936518309675529955743845083753936568509749878486743851362125324085965064121427467648609634746802833149259530347833617826509992572819681221722677516906680706246527925311925117515642248420124563291312869370536861852011624042063495675610125214768173908653382655459220883637357851268222792103368942866204807898377415401744219859747322176794503952068237033689573366496019632653418324742891465936933739608242998272655312741672168234920441286683864323591585961435414552373788486811718639082440518483848447619159523167455245121505272795092473924120990742123636374264416081787495020742545734749163888451759565288343237279456830294570195599767827466393834289555855642030236403104845747922008572989481957348870403260822693880185975125774094691989387379996376917546294337991089861645423879442902871664273887710146645363936029039027721508983353819850691870993420265394506542608771503814508134855559427434567367051200553892066696608118848841930232353604838858739137725351073618857689964010610228881483786927347178034856292053389620561228502134765099661732876102376499595415526792970016933627458690398135023899607281754241011223961152304282866319829721276119813384967363649387990707195806929715064507641300677234404710197835385548774348988635829581719226115711995640570579018452916439942158668994786630659588274164394848946953868390993298003035139066867608909946523316512005542734601783512036634643073873288173414968772637249433601539069465557361951556337778255856558455491112784001448020456886349237637086567670742943487098866113971728048467457835065507582577098962300001049207344212755616279419263931690480592478743959379426181420496780841108842211489340579276466912898533453156565049424599437562413987827597035866637873242796520913112286310628463580387757547849630955395789896846114286549090929413180499355067019196288176608196171439156103498193114186789395959183834545216888261487611007870123503208540827045305032277907531324003861975495575450918683424027380482711348870345413970917560710741985552743743721169161732362218632479229933672294583174078482537847471111547437319665225804590273490388478282392198047212446117909461324144295078518580035455648441400992366146493039383706310146966070225097860829065811624802559838475866810552113306009487419530986741348901701793752643404749058253226893632229957792619142352679680354112258413874046208476325991002745100866837170475690272279580927832547360805848433549034176667341713633998041113772613195029585284504708195352063076180066872088749579170534587066648044325392230017987410029604108107643282139073352117463417338789416995113056445911886102706800261412535045942867894201684766699230956901406092022055592016789880027394526488469909308534211217945174827200987103949393644766294132816359248469631390449310359396344654830727406154013080755774293673991225026267169129923270471753335808500690490084087721668357032975777659956099363959221631739670691583038379568022764890152703666967115345140523857337261035566838806157579955078633611490210181711585366630106242223815012652910022290209820356744484939452992762622029469271645242727089367733850165385700287869772304980279151316554796395142904506187004938476209480323187800843164205846763652983161935843887730292711407642396103094744210221155960132238408033607972842350536342610331972070383507289375531747172811806520678690372668953212386243261041474002391304536275874595915531384561643684508198576493970843503846079185369068901840148492408013962260987042274063404658060046840371861064010074151587851564969776536997166858190021810010104333930015962985275895617221748825793675722088295833901888940130240751718648140366009515840267082647318689373734767207610059776752943617890255132592537239591422419434276956610629091011592788592872401926412003993359896530180577642545223614111668740370137192081404059060391194022837097072843746654878381505114323526037545624705708962906578569505159199838549537159315344167038981865137368465981924315519306748052799027706054309954286438893338118169342714290111627882455263620938313022557384297512243901446287256258945007166118795863852221568414535416992284573345433060277949720570440201082774950124220309935563755362983286687317066171947689429287479133894205366871861774726267289100959333195475629661557236784024539401315927340596306601884849982488826186683944449411210006983039297801745115694379626642085262290790558539022967050815780334001380645393879087847367202408390994507441022296816178155454599143110799363710628982668348213446338533590125398425283541717034651752448448072932516487537123011461691442166945940777404195052203642992004806843522167223454470846267173777862757801289088757642301615449119046996099611080610861140271244725188725201551122168079166838742198142401945490387932071250728147211357036329657199683624243562634358346692888238820914407386853671006672144320640922521151824009574423606872806093781260052201517030147786771738027420416710955974245011969588714321393443056295941072053386591361766166400246279969932678590314526002994649699761509286839067483108478670033910688368531812245141591193754205136866712173055269966491693775835018841484615742039116396336136873789359469332953494252756089755339015516839977275010849610987696584897252258935244379211961519602498555104452056421554451911547434530035431337219575453306260122502127439667172949107305914457577047330580077548623281156853692760110107849945905356307496350264078828131471241240664254502233340811344478069789081280940674027755122196267968743582756811488141696194039275203311566364846121949562419196678429198947618536158781877020114497606657276237832437361992574792990229083320111542778736893516153588818139034464822979561490617478119977379267562817314353190143305663932613277240083685591728040593071982238851965313623032354772450980613483048471981284669419546314958944436067500859770747901064230354958573418751444345135912924868907876043946510266560118899752885161018086272841001764030265096923229576202373519114226624424310001806003320457622671531589676248787969340707857855039082923159364844050310532693386904664126126115938933606811953940704037160595923801273256915596415358526589670458228459385708460348761257996466874258036356881742337902750622766076410531554380890300309896278638341375673790780270711789813637117233296383620362221311991248369372120619361070066239427927303568253247377297364531104853017139549751331230251435289670430709242451916930890888762916608100892554134016225362043636541933374474171360007549397900898288002413402270027798159353558122310805002350605884185500578818689019880211037539238367089585018360165269851192851166439196486394353171526356797685848233786718212864902251511241954387012936716366589526172209247161982781457257232504510305753254516959925591498575785924484980056348012151111918126702706783432471301970870559346357525223546286091866730159141614831821247615795537171056764591522246625241485964680387414906074767322459714875753305610586968281408153452878628715102145219500762087904058089901902044942512458704593843549976414811380094178394615928132511865040592623344911731406948283676206168789828931061938835413344037132190956985380191151278574201856508806389911927219599555772307505361529273320528601190285983687777674132535900101817079933124967326374201453397836324209936357695456407956416053090947702976976107087280013117759712893971958575634220477975062076845243365320318008190283833871491233325940772893028061657898632912020679825950545056991602821384003525906224676503602586413187594750189545929553889508883879126376954821226670614446054832788010652685851424806135246134686859176586755208093842350852926564316789634006072776049258059022921346246785999766469411236241094786784229445045280667097152594655907774781174430412899631901712367311105663466526466022923561278523004709919745337987515838731804011666855724535478599560700594391474392861618292736638710278987105363134953569072780856970911029424439958066044023046279427259702352044486778615752153829954311289362644138586474887229156366932609514162812667179951216868732205457407782768751033437580412561575347931650144872584400592486005099194271172732121556236971510360216254913439044804835379509078688884392294465127389601635247397256948986741658212116833030385535262643413327613716296495164741023405660790537465476322122661810305885587721977356109718500834167725109649678835928351875595270705290344341411619278089113929097427132316297117295316653442009224278547796153753699960306127274402503520736791964163454637269229950870195788376972187795190671376745200719346812490350007456521561353879424885529393264413439303793413158714792742082484695509858839023659579309352160394947541148074662012127459611947849713644658561537050161650163233003070165047100552462177279866661287264925677544633385560156161974966398105865363802716945690034693106575283914067185040666505718688110156436618265895571741408508489493543853366852835578768581825162480812629960307299430083148969499216809930319484682511497772077148593415323903449289781397230496992770355143590006437714909037860080028870175856765021406007824638541209146147424224314977026877306621939064843466451538413080137841102131731342613968365711519583353209238614125165446342396471151221305307065903120761429650762317397502884966336987009217602229915907379280128035100577296892313195967021444744990733860429251476378649927205655319204932282677994396087501621791545793176861825326304275017103165364582362054151943147151033144827466198918710727460784512554422625024896535829685986697149430906198266611573526596022189186144966667377747208878982595293304178866973038937294418907724503734904557613042724139754011629842064495248658270871737463399415801153790011040706847567666417147637735672707161035223723089108114325312404064709460353522523423445747416790603981771826129592737824858908225368579945558860914840529697342203673438540921793164224525528742790223977251612275968441077985998304118292309687686313511361170592358871272755883825362355531288879415271335149603436256408582549941865452013244039218947633114743593636707515047492524474855915426204297976085451390781405954509156191052367317500973711075600996182031616925775616858855135764706273400116217656932042383945511520335483518897605664253115927364477484425643618538811125513928851185771629504687374237480120479312920780103800373437881968368362879656495634384634691151881011268840927538898226448091246666893460715493983689408077714227878585805737351354517835361726848048518579577739612026106637036498229439060546172249826038323886467324117600290257434801167400717474811311691095329507729628025764674889971218263252018989783558475940800551197673776649865278645185232844727294159844273261731325767171830726933599708204254017390703239916707202481724774226120209457441590023342675044816231842032420356893512648125583150859614056586766530931428228077777014990344420917366845478455826991352613863285367123051456775393771594144677261023272236820716791969487027256515686129389763180920559903060752510341741575738226414313029843490516072560285643043913655467233821107709680947813652289130063304139437082420406045180432263902213647180294354353792124590421653376748619546412349474267611314561939980774015442703478341108235955826149979997692725705748094699640165703713708938404333174492373713357417665670451354197398289856997086091526311319497226462163430733302229376437128334017138943000236972531302386787179834247881460303967036365070104112564524698393390967566814563946950019633585689256664256180897156300570612824643299680139975765099782488858637038565779778152114694252969825984350089901979809868163259954198447002690755754229555017786389835411196087177496877344008368670041579374703584488211973773055173231784910074796123115716247011355180838472560410267202133315856931297785555490457147110261186260597493690346700145437411021253218800574056446069238359222453889726940079662414041551056994303229286026608174207535392085944394987431783019899548534748434347687521362802479999489734036814097810494292209387004349356560542321289554223788681926428618383364626246209636852410886183233520039467406221131693249407397082896593725263461923303496001715389850752028996573374975900374005331881375702327036655480334911428948664810321006821970085420491317183218177602089966775702610772992326252788010076631559169185646126724724014857179189450251812381441329627824083406802907461326499050245328445381936099621107303785987992634730588357026706522357102127532211291131322456710059135489781685959722334385324117190600827360829273503610812187566158199711952821948271950421969168939200774168707054626197091350452083191489780939391061990322616286072503734014294156806503915370166235580319550740010644726937387148439784734696021564888127322041445633142866888089162450506566512692327503641098017636475978231352930312763277221430308364515408774484845614640198080109011293056711081814608155346270757665935062936372571298298883465363843025816448015434750487485648930948766383751388450063619014622095530365691580814301030046491320404223005118650223444587328591516072836570305202279047333869292379093853196420209219806171339401174068606473976950409081466364861287763811974283489033140177860269852213983758948642863181140734994200077199028884954198237091797946775744010254767478040809746701897109679599971889943031409070597384960308915338417034807906900521550246183858064062082685729197019797195659017171802651740980753523087866379421918908898475163376407768916683170351111452475129174074050839152829286265568991438924589889460178179495084641217678872610054639951662162224077209702221291597629254975121828313191839550231169828209777170003985785813371110952069206906048282181762056077340248420910443293238552377460170111155543846472391607806924429123633967671392124791726276761685591565365542850476466443979249122087025145738382540255222747924274125605980896961103990046761422389956986487709226843753777081619883602647426034248640126572067224802771815800546344570534283190965723840404537644049594605956685990701064612377940438592230655677810788569038661183065616467051151927898204130742842904623957736928959209358485705053299277643121599997281986394488019051157563018240971831080130024289069012850635582802177672193409055318467649007150242199184936142738661083197559229396400812142858444098281647511227210007375629862619072716458496980204291059927293455588191077614106648647976922166973951791232263322469795986311214456234180615434159380973150071101581646633137355836658859824125739690515357133727993667355022972489089195781287709173081918013309432267121416402707666464415458157763381023789467164697762897134984506476827383141617003490090707856856781553079029679339581937761562106005433123605921314696962892435797279532320788951608305656301100581315470289614336149113613856991902176309934665724546421738967871256656282596419387780691483958461207311955234846495949833723149481502494909498281616910948421262022895408656857649444373986663750239450894142690859745404574163425548563472984062860837199025255648475359713022848024214369940842160312756476037666671837838201649626405682869444600617176748896001262677600890633310240047971402644236043985790973736149269948653499880973097654157654879318397942482029449411456386173316761573700856379900364003915259772401029283398558737125437958503031348843604589000337966313695261936752696305008149873975698301974925286883414510733312752451177233499837825647865706510246562636169644458073094898124871646246573995053065468449231337781755579841771116802501064604244568478613047626424698447565643832576188012638638987459206966008699871884551367076632733871264586014941179856245593246870571382882424207912862770285015750124758392224254413416074395783048992363021835457910417048281740069660125932098902051273191867784396792395217556802856307733217612295605456809557845116913927872042727672182486499644118397628171509839961609930398453485775830168363838354887243808454185591778389666943832959138693346208636163510681319338047781367808592164283864064783032095825807139632432389472143296429181213120373213459807074616283585760133030510120908893533617057768588084319101491996304478051664065414391697004124696085814551043323903208055741729940272656218482117200250712245764724656944029231360357638154182540684136189686471001037515552080170317408923347617553568487061725537683226268888709908365554845566509989383539502377445393675799926141992121686892880119453459382807647264884047514660454300563131749404740528164821549661455464996926681078451652321282301840478459113914932435195186303833489396566573268621942037227452024571416001890580017143556984935064105174192963922005479992357367219176194448060753882486113006357997570831143880482467463267293985400282200349082513746975018933045337922986107550958768211152746125495906531236561737086785359067843608344979246588282956882263878979980565917373034217213350393016875214616041473089042841557152342604164514987274878859685141684426175073678903741222974253346760636523544862091341263535915361006464635258885476489195467305221209065555971372036235785275827886328301504850840317256630435532591998950803119933253945134135973214231349471230929795023842843834775419464724107191314536897689156603771785868295134923642131175482307572249339581332441877362845073261002745214192042736392341148794389235118138896994565381709434155095345977286304715292317632371097156417425210496888363166712756324365591883420689534473836011075423576660537397289720035991829221265514769665608475047579459708019546172584591488320819087629812314248142014777604818697199070554565466651910230296755547242557638708653341324246988026878863405961784640440109720611531082300388274384310580868908025610432744172407467516740663998171617554050893811473920113615359286838402054763318432285161175144149501581161114236217266582425886097392360935936161142257682008192924108247994816407300983225959966508504610038039995895561989471773168287726578457423405819992803479550823043959717208459142955429344562540259027925338538967024359913608174867946420958923711714205169275921513774778902802974483917898608492768240806342688442576178750834692494064634075907889861261634572333998384558990350235225656273969414740244056192575074762215567786946851099859745616854279516649667227580780193173110237966208054619578043154319547192911967789647296374739179994422708579072301134791643534085973615613498896941055730703308733544058377115952701818059843977385290973458526928759355918233884085291374362046469875430479567817948210878331878697316334515066911931548945447010248558719744746783070197941185964255763536212257174979256328848645118535580069510567939989406442325709069478183764000432842455847830547830466534197433491769050559716870532408590439080232810951620185271246500696079478907732411290872580376964360003641456841820284466210456398499012917515696802443961391136586603569986003972272977991804279348929650074819582099960921490393328308857722080904783017413606183113681074591608270972227798615818593981698302606601791739079190247635577848180872146427621885448077626109184861466273053725593688745103026975433942740763489915006006182483821855543017010630704285937670203457079230239503623258025742073454119144010050654868665042203831367767994750307285136454431712198336944948956538106889907984596404859485153491132490845599041567806535518621245673784159955273964720736375753100447228982696995422408388644223092470002087654968896949356449609512663394043683072958225803047359533832826891668227514115760714216199042873252419497144181146016245737641746421836651160056866834411292838739844153930021160229111055228735186039217477014277401108060156364792402131673041225468437798654511357953053324694797855177976387406810409856431354820823331571130382165547346294746822861504248092889364643617362904864278658803498864433897007344464450885746987868102741790586234159689001888441810538358456778108004704024096258100086817521209764450155979757781044895577499703123655715927053824246562094132947763960075702726949416008078184456794502070458328698139595742911107204768407538536960702122780651559172813057346145222624237282812180607260647211830872285251569132513480326975624338982997618429786107765345926393593033228249927041867462428121965097633541838782861873911477566918726159751686638643889676200117024566396892563598381134010807326154305576703011382553074490946730765932206621178343286976640716044370909786081349273752878362552853708030934038069667361135417740978399669104122985089986373099789247657883345998051959646901847194767833505428061575531344010624581942096548462342371671947517282555456997883264226946153842734614108206645936254150305106126153696593825774309669845116561841544202302833584972181170733610438181767253133285735521064615977431656673642386766437376319013789353217330812595888043165817404356110611181195379468980700110437339383219292281613367682445797106792488763208991549034551470263052444493598999737922341336275116486509801277208145551079456374918915010607876732019801581337956090091634190580929658402448877954586690697171842632491823052301303794875699967754780312243846660297895467109973963844918407475344684906831100642135044362933891735178249664571437195286747496379301809361551893307249072156314040193479637160517352649864119894242900749675849574469342970777779891720525456993527567251131808378278855852402410501701072834045425502803089755965339819968090650899505328162330355006673004485000926954203835126968717445986634892942734176915680065173630451227122537738534484951659136390954616008314608278560003242740768837781352216738247584111742344291097914753095319688474081228767989069755419161696240873929114116983651739411767458047984023166003147639129430082732599272674510876848018985752642589598393794181796011444061649672621405502299769029422728524010941841792812286499127928354862446012154168935438450399614204030403186045012892263321115380717109831789753479862163313027318610086339138313812648510439745672478997998729577309376830586403203053569498691669728829566358344345391313992837597240039804348223761373129854610435541160635280786574387595776598995497210468504635150578492384482651228832275998479174142304024841139932535700816205085502663563670322649302240374303384831142827761431539362039932898194655843521975684007198145994334498078680174994789263158202953582309949835134003080625981358496957141106065792520856650127760668450352624915734511338171409125403167254738185114651679426945670554158199300472547617547790038954665710556834115647283115735251116442372130976999681782540047298929039744992290256821198604674552964875690509087438763015758662752631056241285679107857260759900151141479260976713490426397896894086352022224823474492789265781248533765033879823869632112822035266266910894850292805702976603724542225100225041595103125751166514069815900162014087255623423089823673373294019540069503420876709309745437354280594932820991605861314566741114478304861190827251573270795695447130924247784335717952242610129857055128162182637477338272204499589448556808425909449008565808295058196208682759394050826104030952342814857322523044664450438457296339452811938411301068606052067462746451020923270216944596188715310861800265179231809138536427047323324438534056881943359793612392730465896373883217849668781435822266570230040626279427393285457982975022900808919493609073778271489360673331426236735643146235825345376061093407543133176074924656955754911184933276402351198710662101232684424818660420149872895165205445030522148586502260608709130149908514570286442836083662805336000316139795266469913928473451610445382502081842413749104204133505354422837622762664695031373410659387247572701063055392125430469125513677446939358816458103889241254730436615138576354566297932588499758869828286056710662459168422804871123586053700594348334277258634105651394836711722216751286018684579821515870777249797454230416719555545323167742861043181325122348689676508102888446207774651130918635229528712728121051471875535741172720250364723999256061484138680315056682405221662022854407466950703395248599586503227789772229802506178837475530486364850115053947436471554658082822089706773348443218676472050972032680442198256611481099681455117772297914334955997223398432036675727286427986321447455826729523721445556686703729377704711970329341608694188140304581939249426553337951560321687889208783296864694619878895511522269143495063214721589788567477768151419475866174054869290645656251092129341437357745000409803952103559306585793551879338226705806706784462166092558051590881818568980970151424107735519970531864348831280622424693141519485343480410137094118468310238295417954807828617139727201424408941459041949130132811726515719913178920718194031007538551272251836086519947872513170495356985509477323297270692480684245437441418779432071827198639195685574163570531838170350208740122158922855316078752907701329912282356488332031456480836090274387616513295668227269007673226411481515634335228254639470462493217344724777591893034976298572087890883883546919626506848610238202923826017136185970921655093180552091262567224754177396876881303333990908033556259216568102254244815644952041729066397012753372581466872636287919698804487604971192109664206368014887998272721318101443429851237874554384634392424793239634828567184055509723744543293962664498093375246385542196164487084363082950395938692962600838891708746658799081108674456290411300657088428474818027716643153889580730648910231486568681433664697134100445140204937358906253145110887419016784221076871693465620438605283624441898230067502161143878790627286082151808488395409808626981197488647792236320217567064797978082253119451874093173774559572142165976176853109792724727601181331932001397150248216747103748390878379582438044738050721189668830654075311171980864034224700970251305112871838834411112693068609533193317035911547195503664755921944922723334114873457727267809665284472862206079934910478037942637705953443806437998331806772390550163667115007385294402493777050052095735932993354019251925921268726165841320109404757753784586021052401631557266103946729154136308778608705345887976765307670825218781172414468609983266880431187954225885869499246234609837212628426532147931898247282199080843451739285349106328918131798391507641453109729538088026952002258078515426971173891082327578837333881267366675530448909175445939229221884790933047879940438918849218569985441746957166995365540433550879850131847787092222423830381986924570385472915777738724005089344668965665751778632930153335223054648154840895374208161193508702435494081708145136849664193794456230149209874545400565632263018040506437703238790308741433858108490679266704030004455000563711041724504442860065530006287357628400362077795450270567924019590273281085846402276623418818793934222100474397504848242807918496833417906113401692135382359817278276867351513843241885028854933393288452680732436976523968262327645694791990211398056863975632126287501907901620493956941677167947301734230676973736538664785512778145151835624011628520151582479730088867769017090565917629346628650033366569977597231175903278404159843402261772861527341984891344865875553713792637097244010145719709690950346491704433631203503333652564750919948804375651183055812235375249343439843160387367743359317041757362658496362585710177498159360171689548113843624519432891337704595221387054868163857624553708527403864683308631623768322603084188047917530189763555405313707280728671365331101630280586842689158390380843248094429448199441870149787217732473357170563253685598928312594550145076636662298698642336179965947986780191249404294935170929266833750597577266770358588713573451021829841540837218946497519078811114559274828020668830433946342900439408888835544066604352328015432974371339676810828003276829222188506664367248061692422139319019827259996157501933980678090474850295427813841847827594424115283892210250170606055149637582388933192465916231635582842510517028079588441085393711580357353818508214019151413872601397068891481898512100038397503972280169749341680337825169014911389710792000911915060812119633850677385260751618401962254782592222257495835892930350602239317198330260964645873622888951733464130502181684003019407561528507021320025868501707451724231623547533021162794036326072464039900425262916156565980884889051420694646053758627048374340886567285563798277214414551104212201679652166335800474532339344682493139283578134483831107127931510534488924563751556784542438900240850106630692725102388058639964180130086208744594758953988030479316029856927460334446180745876598387025016833354903076359120121996189931048347215106943902372004204857500890680629280542021383664367846641512438769416814602943088087252421646266936320813496094521693923448529050803360836943027372651172324045523646543519285124234713899460256102825954580415452004639066555929676690137695085448721477898014517951238965700505549346615911786879945462729798231073569943891403228858295958602958332661940948732289833321949685746250149280528987529694990786077937531999613023044162684149465706579459653852123173087809676998267620244075208396149948522717366714370910598029157849788166470438245159567720113244317945604835952994213165484234183128035889613056333310540969922682132224264505310718140354290962712061793029883130735899000058257958994191789684858518966356892306759964953344364154708603828116809051363248403359675733608696013950838665370144146824721020653779957136828757021552043354140883056828407688676093856318180928903331121252165300268281451881640552399304431600414245401444285097330732473006748012165738606587561622416216667149167148522332196354713351881942362254998047559116211120202199780881282162730352926523435411727596974860981336671289303641303309453480988934366463466785690142109247870279515790387056716930566616724154207362303959420408714172909669214487312211714109700509272105858361233511355360673574640556537528426993480265593553361397685671173980042700953762010424595251637892554546957384251441686284694279870584162558310354502597198207214878147406173287594773184263307365144672835388474720275221469568853631066172564614525308862675269365741595951022139838213648235064725403988419528986663410380204071558052013240217851485821069712211380834262591591971516186497949328278917211072551398888619810862661679349947957735798533442832467362963324503707457253473604969179360592010392442262951339775786158262128643541635825497140044327847590159738441361503566239312258138143906636399874574149713847757661713174326877635511515072812717079545846371330451392784184867941083045906865758981667646374438849793999727339838341204398627614280636770970315341863301794712605276264629213201453901048841105536144969188893527333877000380771829171927424061737155504121188521230456819594885251869110947790958966183403189547501337975601627475713850180052691208224867025796400252754032106350429537231113789468421809961587148804678671667336466788142678099488443284658369081123906923191638099303778519749335307376172999242777925089531078361899730869103706589116657264286444970405605503175770897231028919397775651833327846943058893986930302875784279910607256590093199721941872527509258293671229365893656415270219778644016543731998828299935516265138108857164945311887229611729118142312728388999139531096224610781304151153218429021224656439736984892657265770529168005985431235368483713085985112431147808286690108437524925394955794872669588785499768923044982309772534984724597598873334893823939257120392291070604097373267939057357467834864067018154849245977603145353259049409022496993883556780513616636121557154575236726017731631591494199754994467183083248057721133752981656050135304865077253765955629695787422416726626324030632111200215698820949027547085960085469565811199037296999607127760490688220006663222306739131873360774672262825713765460402256386226483213066666078454200798612406488192217378410744764071006785443835857166072421666574852462829784434130940177326789421498838751138174880766884089499529366084028273726249883478547200049326633675790168362420429128899558365323006563572055971360976677279948676749928565243162383513456758263160940772473864935761305619984681666805989684446395484474382843564014620118800440585892998645851910973035067796270617641443802995027730051324948210836807187602053050645273454783122899639317061480062450602983783584571267646719538834820887451160602770112966881077193186390264462909854154010450280644859403630076237636529666736849635744639990834161781455944950828398787209945028741564707953808904029651601919119684325592291967236838880900471873200231848921328827970782644008393392626102758587101079723016078012619443399805342339044730633410155733129401010274760451248916309023096886405521561759470123487983029104014537088197731869909948217951965021192853907320703335646046299556510351394525655955539863826308817604889595790882231295770543625072718769543734449550690021243465286224783077353283894404547656539646187252398054178054011069169462993314015778009151100278031289435206709632780712462868229388811853901715198332789281732016809106454443426849277838693097020498900772005129013455522099895870085656556399095623881670201967097997302845562686720738854275978556955481440082190550530951645303310566395060462960443733955365511735248244718070015967653542384807496396086970879653435462347618192130477491750207210712861560570189020746111426133223668478699006807830423462464467824392959612159608349134575601828848517121119910533493928047696340859116234862174921246115707893167475895630861601236104134137318482037696590054516333133129619530092237037176483186987089114605233059356739528895533980870838897782101887938689364747309542790859755790549627148612272747064748021855810833211633510953356148536645712562315530204415623088942022535402587303839712679403479545803959477990917076251923596100792779470796598443262115302503740241297100930972962787864478354226335758966954292627005789966139594106312514506275838224793986267032866805777706567330722888829915278017872068907395902109223646185649645063697817194523764344107917788940141445722919403286528947271144514859995665554861909284598332866351636445484005216802364050148177003467611441603343447709166650435832199514986253446498442686863501754105826957831546036025459134927301541214137599641058592612968440990763789845873533304163284209318562746752866381945544027257300184643805455074345590230572410882564091557324542948421474938092276187946018957660453435248477163991007233341995393730928025859086412119583914944111205868669743887897545317238470169822792927174329786075896999633947509398390589308024463529629527984898737520254566630086891447616136907025596022207720972016373950021757332859024032253211369151135997498738067815752964168319890580180620270838121221812999858613927935843881987144139020118200462256360672043521339389311207205226871443717298004229710631136203125168106027557403795632848893692507164075590257973812087638734210259993857278244370861428435730593038413583145828343180354571444340140444770606019493396362952518816926747005152339544545728211087322508841750652533730700426969918128884505290637529767147029315408209321131639333128255239040958536144092103577527832208295253859374521871866819772480542557933699028815018232415018828707665589920739270917355634643928312916660156665013175636979855204223249159805520921973256055517491716897521470351989584024181200813663298645271938910995780468023874932407680611355516613460108565308213758422905663774938000836360216454009129594503485553060110048627119482371979286345977143187162031642300946516867280350979508317378606485191812175335287541547488739335399958580721655917995702524677451046977419961414913239567675724203635801947291270535420043151727827290274438618493290924586556471422825823535811322406931433911352913739948342448710979505269938486066192003424434811171239825293016836635809792412371914183579883411036868437667246622558367756234214476866521273367720483939551941932483352299672242595392788921495970927705889429573835406391466691043155001742067491932548633500571635451457959874698334550036846095515071041994928079385305562183433653906327296952813719255425651644223400326339284806126917398477243899820858254363614697655681814595032292543120802660154943069073670978621019840690423205418242148730187476766028917015155488766961745400048118448062099138483736478669805784439791651912007095577908806702118954767539056992201798101079817540719802647776304401191994825001180256005732891310430739973745436542941268985520329015100221016165365750089379708398783211659183915324221447690750854532639792836559115551264072113210800894807999047309192463822824566895544174744538065142606575909283481647973239986361939734275938744121089595061314532601242261961699961058311233793351782741341938435226800130571040682452854120291585120685412849832868614381488079221339226880122328344436993292453693068034766817532245789971170065401855680906213772346006387896292796160968933313755734302230361777094780777074228973750714295886172799204056780828175692289218548115928042922147631740077543804583927902351914799911714319485130187671414990383248450879832344590432888247826199832044795938866954890015830918229228448597220301799773559570956225353104518290049417745587368554890596275167528610792502326468074644590307188878978024079545171079536538484838772986714885672107182631254245012703518522670038033504677576752892815815320460416638331491969284653513061868667163394173091496812242332477399805524269502040774347490827395427135655217789612808622891675100130913263699482617225700437674879247265992137306900478734338499542422698659502553397718289387740210511460036040435257541580759644332531227938980586747109217386724688167199891471148788805940795271674446457105610106978502920442597899921203009483181143328168462830924670676478951604209329800897632713729914147577411315477415426364095862421291726608018497424796210800095654955442086505442037475442589174730726792224410653287221523475832331489411749166342502229019164850683552375893135733310254002021379423303972381044693461523281898895620519153033165542834456477557329607571471932163936438750969454084318010951413439951843298214522884454833914806273197575429658339550128006995827495578306572376592007910589498616980057459413718331009496647665631484024299588721242899151495136656238862415366791084869919145558648233041091760897763025272207905999653002174766506345244634159914604193091618927792745041807527763765817906734713428415166065572466440489319714940106193517753466174376860342034873126287143721424533116301253655568938964436590739883030509455816341829546126925351087839751853873658938700719491141220054733636322090859080595625018185817835349099867946319417503143493749824867299099694449307821181074350870629239243035469413240084255264522962044579186003479806761110675532442600684813565086749023109496195462117805188113744949799428921954157321372890560776371380328635737959913801237860382289534816062616157880303530423464566810826008596356678342521459884864200633518748332350049428716389854170709494351001571237929354481777676462603183850143032625412151292895872087872682118525683805182256137089117948969448355129586497477110330151435268395771109699445538142910895958275261845419517121593259121054247004761853004518023950191610688290065926999278059364099988919728022474792009201382373820120008676649834226370006687564532925596060103749899437771087853907935597711946694571053528577848209245284934329820844207018650633127165336745869550728315656483987129821507152344006202895215831673195071333945669508288993727552612482807322355498743601861473515879890119970500132512943287547565779139880904732054739830910947696793716603348851249852475204099731729416266145854387008687743228827114848151563493849201764565607698751871845752373578402038241087919819740359067073174571857479071551276669280892968040957491015304358014742759134384159714325394684617688074321311247691088441735967178692388951119274382098102627935701166972954380821920923321266633751228117824648738704650217077362894084687456450227342171059538313198368298812105580543699791961061103428527915330335910758496107842947616411096046975925078461285627285243587352015353387847043106841341868415820556058093095280738594595519037848417233626328022127853465877485573299126685412706596848063159816434293340086529388124298423544442011116026820492006506661391686408580971376365978502786428292897306398405162858513451598214773058696429540250795980319840705536425301392351143286397779819251209773211289765276333303538290572224890152442402671507415035152342277999954795112877985554840327724277832957700069631928367726541109024779818599550208658894402737131148559391446247961567336836485725332689555705931206562610197033219410877468978031668524666217592985871485492270347582766711318320200344033744608503617023767457905424335673534875368681216307271771434003300078424982254408599301265890360794810890246311924072691783177214745986769996380593814112227209121108801239104836773704651898070744810092406072457047953267047921770340767776669801214352220871147900652404130536642345168306313833113170130199099658455365347542367056740261302697520062942678295577382072128781095862253904747355886912991531592681086331647435013598757612617218868646986270789740019583638141788564477190095684744792233184576641822347259341674039468892273317404902982054402748473637590406699694098796368187773448779483332288130196310847900664197643306083901609198084795615733374090460614337326950240778084396811518844583146455741238037317123408926442035082748410730444055938318478951384422868697191913898227242486875336723006969468418814308793620025083435967087522321500320068085561017520729661302815243315767940804261047943375350529935987963724072894557110572735325807944697260771608527948199309341459660860648381710206159686440763789919918354133695303446762047206402986146023707975767841355456698132806606661812871294340384895987322397947552500210895479365870441432355047744529621747283239011207959509365336972965305460213470520923700610543896588976141338820402687274290828739341965730974181805285599847989486348475529425480445599008420779422682332770612458369330504400294239803121189369004445340148168725222564656763253093856418450008867113086967990881283195021162976168720447614908840490344639669204287851076538405611012561340100985156563192547135686094999384329964975599557535886889370410314873618097885543672527984638962147831046460910882376024203106490357961029323247140408690093755845793754524680946470177455391832294588558040240329389428086119899426786582394591476073569864119747925067957136330317424957764718498073086142824912572189545229356072680097432879749918339543111451094883170467669620936081141334047092471187650802437286569626381875837616563284340712093426324987174051363071755956916108055937371068252369038812253555969586582775352312343691205155896589273519507358781977039120901598400359938489185054763657059632297438068212666878523155327570608510012403549777991740589329442921834685220612398836783339534106799617305534975833860639731382981489885293354501033896981278344090776913737288842376092190416348410134532729118809005750975557510622969555328117014917662518159570923468492466215996099248101047917629243030489353953878234873514465009169903480066984135916036228207431268365761199730196022414234445000806009930197624664471610365760234167271825108321409160094098062744500334835939225282696198678678100003934664591776043942899732859674012998655840213785261485427443135901572885108648975143232422870934965811411168002200927026638449067268556046523739478825140571693724041346589834176965226292346368617375707020310223821420681380695176642982823327529489220114555180133139369174709331693526761679458745183910891698265775860165787802882275915190048614131568087692953194477475002414357771792489241012710509284533375659855674437145658965213176622791580108345634675697020329318207161220426881874225029008097262961743070247165788727574696917800574534031567297270408984623190990832760847546069994913283528853748955472909782736864071156587696771443970246267605371186524218159599868695489688897157192430126317761395374702223413441593728806703271873006849795710347399779501646571796949675680154592976027742536540284439064048347060733165866879561548068120584551537792215181496689193514468754678489944928516608025725504896458711008037283868860318300297891351077672948059136703704258304727489418021541530603233851049588343390008035237606180912433668200139347476562473432310925189373048279191082636602768001085273631681652362685810571224149882477643227451297447497564969370172250268118406738705885150359970725348503136907922787796898146914272492475981602973475780096830726439138967947282474279879176962871360813673706126317445746153921398338318897434972266102191987807059899213601659770382290472578980015223113453907948616615604040848184299222245762659979647236791369869022082789546667943693870979925586215823112372504898598677646202715228730642084130503173701436188428074068500722990908232116314232382468103330320576773990776761534097357643803191775393207540808704987394757588535081479925378931597242653554334263094363344700898565825323022746782585538927420121285490841738734811023423166492071046864616197267004053249708158880109701443215583460308739618939393194472747641750360794498026022888507864910182129206471216304748874468022864114065863042325269787286841816973584775077147408265747468681407086706770120458340529844826690002505543032232195466427100440471970344083150815337783142718227919622785658192344316939195815239842334324075552324401894464007779628829462596713746970157510431679802586268970130954693041223594770295285797505960062515957766767981088942914561412696072221585329534803621498996753363064779654058525842634360560239461715013457910404762351809044349688634328142665556832278127666262020553328240531154403498710908705051255005638407719469956088248038636679920146325190735603620249280922242774332814667403671199539557962849917385556836171400749882961982953588759144331945150011755266929951234990574051668261871281241767841239280732853686943346350489944184478699643012411693713824770001302265180995776453074058881603608920131033691617631098464834750654856331470089763281563177809657045429410961236661285179317988562197872854271757935246320589001791720095754267803928620022370629504824858880475460480389171533654511725899233123964451720748394049802920636842824574212445112432469593319021847011355841305031672337601156300074794750943789094676980764439923365150448910523766627233765680090299122187851529957714423182103932920304173772983268258828581962923652631148001923208992977701522625320383094998385886693590600644193056195398155718403061369825742164008400069019075999994619763941628316504169083928256093360995225476030842980922190719395784218244356591244422166004994417689615339785077890182852313232501412081149187130821080187798627527176547243556721058219918907038575829308009555721667404200556716587850453819666889466465766698859391013373466783719224939762089611453235317404823521990622858541391673911662975560607384272115288814348899117352671829023083967845106723971063605312736638112417982941259517905814784663621291356924921461072746306105050848750485142776744930107849312527589994874970892227044775514729642724670664369078304132565589733796574957454463441679103977289216413553824382612665750312937552001314122310453740705618659157881591171627135414149442159614935287570940281305736259220731689236037785608619941776728174072102979600251490143919959495905587896448498384643867780051879095134420025865213754632192578313832317944409124246582211568053029534046783251866219965907774937851408698084521595707656877024049457079832195858151836348115904848079037035905123020186570285658408123372091836255288003602370671283397091095020385617338590438787514684799765216847571943323021965209893165335481175134384798950528163608383446171690878603756148921208915056979253326819277033978329341479526262557372114741901767826706966117036573849180096178313718971116752625137206107544538259279894952901335497198169768497129775641659890465685334061024313970124016951074381410372262724342714292597223809918432590390387238926985662836416367190409423872856376753139895080857560500523853229703529193976453112958371590932501688414632198029061432144850254342382982881817536603345723552816889046421230813701972681322657791730308548016098762063099650175216088167235735658364081704466993813327530667451297609166834002873984853300035560309690517368766922161603293770944062097417115948045001602128898811084797869643710705226003956442727058977539692137901445919434526465079733697340291791362519940132722993786269831996058688872946932313538540101748202560098045373216256939550136447588976796891373157608103014493465881659009896102990524471679258644908489212794607252167126871639075499074859902740417339559837283117807680758757750834809521174127151755721423026446709312242680523055140017461588883067210700023022197681096943134759276538536866930116344766338168344615051771048575122842935182595111558376216047727170890864417851816899238835214402147977011200736882549645389381109072244142349754608698672703554483094309065075257754729822431619935209329666865220635774467293400681019504270700874812018486417990771984573222229424295248709656136722953112147299612195197757948068120645176085012980074855208927943608573178301140296155163724472591185558096860041309656672113836016626375850290536211501370959127671972287419828497937824359480001517634173382998115430239386679212025178132138118162376066017496925402051225515448274163895594732518930673318935044581348444622135692804384835361580307271900771929173689735629892001868893648946163038195670517719210554784347683242968487802237284826551303002814912181872299343063182469961433348513339595614901178065408561221270844941760896597103886359927952782368022634305743134503021256049286405093697549540848300873227848532497586081396427473240506235166722668771757281684924857035657900160783888636560782151867275996565018870312831349002678164624639204501072486155840616638717596575420884213657085241137343161317526875979882581249420043738770358025281265276990191960492162184102362225242198841660648793878000705053204659248178584167031280236692288126258620981740263137031197954314329697830106520125635897363264972437540059660715479215826436118979905656934736091645445383039549303662086288104911176642979834776425754694089889871310317802179414307900664939565662450024255524643346589385525609230161205762055989166333648779679216378702337880967593850831232788582609121660603270723446243642066136694732324319109629395732815407972463838345345707109487594049426644010899540236997351607159281831061379412750443882939120324291935936737577482577258596320102414958982651380211591589514843902510964550945730391210332770989229397047082259361227689373340472807278947479725004079133501973557523213797327401772376187812489063564591238466702512475535710473338065414545807423344895534512358423825117905762498344114716697287436498585630453693550229967649972351941294245106128520153288978789203127331158980708814465659794158618499150727963929137256569029294722295668391571313270731306584493906922978206990230930583111657521016932257051529546658315633787960981480437181970164173057239654770524932722551602985965220350360169453590665029269749460851358404455506574700959180666975082541107307852570059022062444350417919157797817664503508591331411735904221246619038154867844389113820410175349491344276001638596644226935776907965066247990990625941395226967842317909923264962004003144850743121447545028167929765249779727122359318698996206901477151907090912815253262587159639302998555672578674402748523113511083491211340728030130304975948149184928549392305238989295116751373040984619808808626973560246894622676152356150974390454034582453017640930742317662662202841908048606746315641939091567882874488147714168657366050776984259831212781387253719117666198886923882630942204049571716969111988717705781533684028834821211351826927954753592127556657882139233272040952115447895410452738890448585911894977805246800944825480323634533763177503062438416569244691409284216180427057497322183517217229113364641463482307332384336335264496378128264997201392039319485932355167858749318439226380160241768696396859730602237715175656642375180593885171702734102338649935025955077374819596107529652824793363242829240499816463516395402320949222750761807367336031941931666814402654706943694062253701990269548102737839756391673748489781896208445176119199991762348627636346553892567575862229164713616633670204156696868093742854703910076230889163457657835171570408782325692958357016500364044885419306007924045095464086100127922147607691573899642808146720094907867809097084111000451150959456044535701916604170267367184754407752078829259848387607327127856133401350355069403955414006891897101753433519109051920973811226827867478342730013234592085840845465806746745240263056539666605263718303956134642858664048768755468334233283832547946985854053831310786002821189272820764634359642009619385300681305549917060005183561706204232926140485187360553386939466151336303759473449360438802955071246623291729084440184341152798155499815046670859051673495301612342329532015570139115551927851317035521901166859083453317443940502832855123635380909202264512410206957288314240817146756545222219619227753394750381378873635562591093573592262618755006081029167180014093785876062199956712041928728898321236973687937080198008436897331807628004157473227299501605310693984039279966369078563462615966063741863514812847075559797555179661689799340918645563297192244755692486787444783293246053116232742796330906867928296051102573548496371346768185566741607214945664873668313210376807815452894870323988764369488548230221161923491510620982433020297333289999919320946630605357024634712497952480629855885699967359255281292568231295632475285592314361659953382150661916091022049694986071453509159584373325518384348657659352093832946870523758639376157931344141972634412115991323967685990920665021237353662949777642826543519459243804503739976340160887606188798731157705303743646002147753829450953958865828405422430287475623021588580574606075960343125506145743702579580827168297597667351525379851198609094777486784785479677043253974334256545303156606664396765334867504583652285270157050662400759134663332222398484158752103903086298745348345896296377450605656930313026071375531204509484885100291605980259610977677055022681886480494187506566391004349522088996368077912517838959204146570999119347584838202373563425492805408712905811067695001719526598630102064010280005360379226120920686851325044061238664034121643729961747053592805914051238947546481832407861696277486151571488660648786558629278630276093540296227698542620277934934926610573333408415435004702023852102137244614584350278834338997571373042337383027369812386307273925953862328320970490506149419162755775562073802842394205575491229659381283446793147270749298099567472425093723965659794224900645507614509589029556194043727612683892193631241311685463668386881342313674800409161076625221629602975118127207975731973038038581970383418018672924896289991229281050076966719611889090356350504043070587388215801252412046844744749765972334810635784260392833463526754015831703978828042703980556209683401858791212329052546214939993669192542991387168434060201602263021877746731431247281664395345571763208420509273395908333085158300357357253662475887674923217071565810300905420946389581582293189485621258632926918362970027278543677545328934401193414368736971640527584077033460085717718722674622742568720380679765562222175779847102659590476302515234322699319118803160337753632694648270011084371975962060067414249409184112167579584530512745047537492859994409888713225779054365236898777164528577072652567245734521421456390471612497649286505117030445628738693145675488056463657498584394896821182506304985840697085563307895930696638632291796520968854948931133907271113745778379794544816907556741692920205545949942658463031746861045790894557838336972894317600307817437258072893291082585246990491281501234896472061354579434818520600675540098954515325165223426782984695315994617324527198470776372903180354070951891885673210450062935349280629834396825341020611260015894159962898498042688234083869878364850854213876912926081293448023041213081192579831375382413286713208441175369764589594406195360421182443360197866545504830849339503781695969241788738307155195337388067048007165255531324585385869548132253868110076547362402453057203760650925136546582269118891077632437888455488408148811934167652260759496472791413375607224696026933841897969094264441924646232996132686560007506678794211940788909985458326551126610530967503955279251238024051729284517787908363653621274921355388134878276663575827192710302638475799040104856211995013815122924966424667582151278120739974554997637774012214008111126090971317314792129985505175365926577731555695613247592573843880087861313549880213025772885432342710985444616902109980330603197809691503054568501383316381654817623606897724194543632223553794476671359228854004078188794010392134972582951456980790864599313961280751555382543192159519920214636683841543766031064298604369866902266394622366761086646088299043944143886504464822790845333661513903472514863651133970763092120352639846527240247473677431818286961213815128184017889547088655787651911080819382191418180205477261878322963477941067207361178533603321072416273694310157463139544239052556866851648111920697639502077826200697213712679278875444971806013072251765737861820072631781857645980618654085431224535565641272983287718694397479979120918070073883609286044873112644349001749239306165008857359871308356205449215743221365092871339366684834721690883835261079538154702501456198118974289437959203891432504431236150471583792367574537229937606390937037305016435065837817922093528447271382179437981871959863174867482510930425871102983946067837295920523146224981640977261326370526336589547730865054596930158308793097314841032120977871426129748684229156474908802262487262042747308367854408005135893198311314840875978502013013066741014689286759381497497580912461696022796553962160221784549619649556337388836936092552147592908488564539971618631169372788742731853661500024743616120452159547235167785728358670412235035505074711611068813605794959186102598757625535604879874284231295197033738562928780953491919257411972208226639163885089382255152551162406740895170322681922869764085563910566419501304741118612336802640500223979906646658391776554339135785337334592822084252317932974155492444544840181131671674847302728038109824659408056357200415263687955173645555959888470968540930907354747928307089770098672345666222370551403913096589950488067651787285684668404014127008458814120753401442860046380085512792179826619492111908784965070978476829753453947722255011670910699373486189634102628102541145498282997913636070143025002048544273868080027667700459541565068620588449451628759345473917015969917148575111975210155620467777279273551724725930065410136182297055958147321965978876263238834418994097322102926795572498805746676514832106405806024637611614824080578316137911667727109114372212298164701990349485400740829017541954912863558446681364274154799002767768234955037989381503146762684005626238143456383815325562389092300447142300919204562674194398508394647213083701173246690976781773517925551537240182103673085335617910358772860018787843134515746895685385874439004309207941230230226726772632249425744272157108006947217667422742957683671518969176123408446947178082744428052775646272107885000157567245826368315829572994166100153265729730378218724033427916350931553175148681504141583888179278920778757774811420691631521938530931579181329741700731129393073003026422123152178671506186918815879375892542578126581550710780870568857706299842199415429752560098714620481994806049186472565819489087785108113379515300688816374241724925242242172453842200424823587294455446372874356723625634373614065685733868978158068065573567224919521774477080358372527986448449718147670052461461325244387081056032156675663006947817027893851856721550077515417424529330497498060172538685336521198813763875093858618352708781621209274253023009841442856332390400313858537150475765324162960752181719255294281044628407785738125397413851695091507813673797317645717584128498282236321943360632656688548766327640042677781505275595676657860296833986489792347709699876153314004810364398245960321826766089774649002097061665938715509552011824821738102973828054219616430682768167973601896167220632671166922406385218828818666560850946814969608771989127011890947402015729352428740268054099141397771098433789099708486017263555342333297677404714271008988152639677636249747756415163535749155521880580142604457838969657962795365138534508224128700436926381743917560715494100868954132958591156254993548252476377924894066012615557559996589714311030283075951565449449230661539881597823034207480910348370189594423333314854411801746033895659055059208094576031237543464786300621133052934219976736454777110907647965151751822989117479421897120036620329527427192052391848694593347756283725536365257995782389845994082408406885314423217796212351029950608316392936966508678483372433301113868165487393116792411458481389096060456234241814854098054439584863502657899223275700309240084164278373079184879980822599816688728677438501605911184905143295800561976072695735771502235319899004535871095722436977464825209756343371471606783521950777486037504606606283524981249497670525209390534731732485316788846397160674829915482455551350798519804640909154156800551799597786291517673163493714180077296329284275257260090364102707129316265464752434159609878273697408175045259461543769383455949229682509152470394990092416854439117675061548588981755469879222175825859646456086857506143093010336731197800093637137271444915587224326379543532454617916341671476454731832490238739671640638369977066154384659928185496042634839771964440827601421114000851872145435864313980105937284257787433235542278647471882217288914422977571188983054378146373541462864357730699221357138551169791253784679212939003006351033143782251617590130188175611709680401456376777657493603197130471602065746982194687701348694325745508273379568263379867976482534473904220301820234857005640652192864685819911925352614655140724844980254931470384082419796072165757759747194921326440092293406970015486622454374629509210022170669685540029220035837114114843364574521955466316029413573112698908480116220212965505923517671253699797544200762538280672883296718361622335122705389245788964240302930342791278496106803208223996998431396558147834409161852812334219153836011098414478541780839542454812879270984532208511332928495522624900309973154649544535206998966743499819305948446882864776336724380719299475740032280255418126093420879778826063194582677396986993636752295841532996641627140369292021288898074514091416690093417936245973820180549614790650787884957729921445886451139551216326380517638940517969358428163177618335796032237042056523615333512073827647557014049113922630201096200262735513350791339303626601297542216795634951356951952416587485041726723935835188217734522964937345219151214505212325578509376344002008847792094644147628606877284624050295816791905607926884333305021473922437762128862554679069094040587781267414751801996039255291644985531435394816449321481353518443551815007708314428624887576850537894942742630097958655027452424303894811355400783296141168232342449376171368607406456859025272149906464573615850658574434826331177566320139832681710237433394812877793252961955451951266843833570737787397531072470177865563876083778031541811541625007992628022442298507879422605591351723716637385265022629710194235531495817528422737370023831079648810033451314832847856309914151786531064673259416974789652920392772450030596100039541546644358635639946056924715634825449749041814786001139542768659092934247185928259995832547601072908502338248204946632017074851630257441455205507267955943509609112303523238025697866171547724218122614477166590048860918759174604929214931170160574030459129675599644978995346155174124022340505851308054876147318971668732693098115953688267367632523760537187749024881470310916132177567922621822078214219647600212590790809188412606574104344613708446606514806377286702291909886364036333133274185890307827903896275766656438783843207864027736776436282817205086080347665148087552055116225596280936910944704426595348900925889352152018223605965408345659633208130624800819427998301231396079730684738941534519057307955709862765661330706734128284562288939186324526852821304286419988602313165124493188965991478255553352756036686371706040042508343319331705679730583341269364247979373313078681831299169941637476188115020965303389805714073732407589364881267323312350814180070592388284943265226303033396188740712093830718753038872183485576088363082179460896088002668464410001183761859370476759284629998508980447958024001073233744019986234898597841741268942160641304238591252504363475996877144671092910944704356562839306600842670939805158265481463571669228929199371739112097853430719087614181321374699806059958305737930983605091398149135771268714064497821338673329969239064551546241015304085440563844395570964196172454013853999074602113177933371050140371883954074173452294683880929462246463512426191155297091061569542161129469286455008905357053458181094969088599293364561393615182785307775088681002246875598266604255815553424246223075831812486482316275471868942208954096583695396793795854468538314946821926920655561371045049620097584214626894962241902471993869888079855659008967677166328736075390991515978976602719163445816564042495377936961350827689798322482046101500350154908683419112868572665511146789976324909768777823266721604191559887340486639097081420296728644349426126826686466414831581257680900883515312230803782578743963611343261315420068722375732942390943862621360692385274570175978662182292629229511728604939155339269002030946813703914456059306600017587117397630146305953343213781675729884515646742793219876437420033410887116104706000351189868622915962414500680398687260190619404809359169211712477576702779631205834357918184646031115701893426078615928927711841220349603434873911581867129559277356811084117181692556118469546223317421059713407578938293741704029760314230517083376420375766237148111074184791709624195254034351878968107933512109203996326741967258513915213512630553276431580602669166857020604252896204372691885113455936682220445506961361869158952477656468412412274878516001745886516354341044668676656456061102166010664344225300036782691564751500554764217038674150472026770829691714213123424541060569949875966169807542388371137038344620501453551655063918143543132828652529183774061212336083023729560703148575619980260044390756100155237724928628404379253128355671131840465520706736417730633726771892404515564247337548529913485419035515272744013652304886019182885996438082071737444075239527275951686899582378803320788782812675665560959963047269349083104527407587743779487487653105187350357124367226721324173521326371744583680953746395159709534252392753539918553050237972799880880794041391054294131257204592117996463705744993970678609342017413697540203897362176882155555765920750313609158052440212911926223970596529285590267594883918401284807783193313688392914568657570487655224988733090204219591554684248909560920568926461888874051504455362749375837603217205611014878910615146101557053680194633734982082039690009968083768710568001146920242567400631363791754912273015854089621067344527971261072960150139033725724533085684607256729156570644256825110483239831172455888414379453634721992465045961381786596678554283534564349835786779962444200253307000801982141966440905531399020562172022346729388782313188142087034369422023928150906972357889494538727691343553421224832207618829253487657888812780358983751561073119439436915025277158219689197823029806096897105065149123093675683271132266457972117420126832531795762205320193156011436613466306974807764798927108743222469138458512865524695335023558285512870831408988614252295098717533003242586818917928206229249792130086985693651220373654433191058698263074294004726086881365689130319992727675810678505301500964678701760162539816662392251905130857445691613847135774739518589906686241842685477410673705361236585799910170357055514407002368566077462333291852615246397959515602547993949484325346099685719490632633443384839138480924088730196686789377711229510040374078878351824149674941942248415998894111135866899987898777533167022862930140003661230209321044545106829729630448451445318547967313389376904803853434961170392871994866680351905636089759534416399573348641350219057762346045906374263446194632284444236546872605158915472785696446186316661671829986595823079043442550356733453808716053247063037229449696603052589135015895526178241286048407339132653094082640664793233654663676034151088072025474097365822359873210680337254079439350691696715937718904844210584185660397527105129582944548438168300571048560980490267986549803606671252254562446392811807273786931780085277724126177982399490174581681316975209076484541693931781537563437223888484029275363011290673297627530076095497248119065424552177255929430783720324827214681083982946120903678359371675778932215553670978026267269899389383706016874037871297584645857588787324247700375644923922215665315895207383530712808610078286510007193271070457567507221238175103424328499882425896804942046992343971929222749508146913186588471280884319970893179063194427718973553651549713943330121251692217799787473680565854665958606094692964847722363404546717414227750608306703677146603535230096256731816491076939487518459708627576283579499710032583601840084368675169343383149017326678919012488940871438829049068553341353389863198736540922800478264005019134111983403005514791399257840025607251272110479652318055803667203707524101801093644743969908772235661800147298035063301307762159597897099183625583852485875146576265584953280570634830854240321124613269576589134708300286868848497022384007909714215610239552203498536852002888947792410818273526567871042609685983169157594323707328827706661499382792685202541420367019057521004201892379965063373570249273737353067622814202986773888508438445576462104448834767026528016880538819576304831115308529931082092646796263254746880113394449997586626274457587094128645094616903746982077760676534318081492944161251167318564064599383557784421490237359622077392511581212941961418406821986955331037590303464247763131486652185401479126248243909968755690173844267758371417706709309246329879476749355192029553383446296732900179078019439708780320390434584863181857917690442248516378352708169415224762033499904114270561262266943834162501631976753612549014472168821563849419101788837680506625468554527751750721570913949652457154354793726422530121593758239904256032097769843823387125688170980490074463424268763187468551228271920166554585054921790671533741033050000713207010840806462821783060226823827807711850970537682227298165262894849325725841338008956457266297737811198978012048143552902043412109164989639363463394506372718612256009519619731344298827666695899165081796351526095289729453644044547042335345070741921177678241032179620185694851813272863916049241584098164381108238813348285830061810504095805071118173335014872022989788749290014400236322162923045506095348577337030943379268266723768956863285346581149497249423156119564875527976673711779545969958474302202175757397395909970741227526214482913083901994933304964856657921728864010919143767811576699544869087264148447302588499948899110527466114069908683042390809637187895603228194432224936611196052441929288794256793438375085221499970130727626438943654236743778356660651135373904388538428179096639166077684707494066512120312679648930306738056874155892827474664949571360333507739239484534579379538378924282836318966768735415202320206967762098604962430369733208996389173914551029257202663961140860765786963302557222347154605105068281718200163666452227458737410884244243065883435739320607793835863914505056416083659167331970890470694512387612135649990367952819996042104659493827093946075249064653293680181170733300109268232424015081793396556989716708916621507560152408098499572843708794486741921388065543017925736705954971228250249120977871126493383377041259323769685378776304435460297051124972054202128517814697837979308626581937017082242258109661926275789430466259406992931914275747323667594450392785192488322482675804466691331781764554704002905635489662183189106949471067018322263421038822756071044962596333782831586233234513885998744168646978871499629638713097842479495528037764232851588844773614373209878408985927790252965083704730938720913792474993703779756128079175843730609797843110400058075377595479305594854415857318156296796756830132287117475427119464414292773090164383860571560861702656984363573787837081812217269478001039249787418162073894195791440979038424786037734980857983444242612712197914577104826000795849599173874406173665238872429049740797142140134062698750007405427126462220610715285408537493602694377692029677162046122655205784269494018848150690294918272723128498331728161008557617085611785798054308126384222360291139501485703225089817977106597099209094085929425045971990320038546302342988139762459363088221129848625481354569948936672566430856351679253183714510010208370298470954106148456959815254560029332066064343395660132703297701928971029761889104089990422609386793469978070640900135735147431216044495151760332309654120890669794784504141002736817161667377108249756014545746199914163670763023257605983690153776899064967179524067288865788192425049953904054820561895532572317705023759118521123192524758107586253814455679096457521370267602513997153622063186661565327260569847168558049101418436335220098410904600497863884538759117322235209385440095351702501019995028152968513849548735124249981354545035504361274093781336975360426811169674592582144745315252018505948697316447570298639729720479690468135291410812913434695834560404396267015445923653470327883029526998912998108716475522791221805721025225002284598666331166232718605128707068219874634985386229301857557997577634954125170066882217882091955899277702160661550642006859216358800431235975841525951719704595685344830649130471421420629398313727485895938424166981773376301634613663228221409548915704543625943629132438130471708336516542212807017026711269611031380098470631942093464252204971560631693544820916319272124233804089844279370061148140250213144801988123610933934364990400383061990256361296541652668895476752003151961397696056316144413385139894443904126662271091204905843285138625066483156822408637466673375719081315986007913609813678026258390626218214423111164650887215457755721886687282571112912388808910435669160691641074928182740429106207237883780763155077122346381125981628762415745887025913706153749884697862599863765307039724431188696559722794937609395389964788844602030566586330288571487151223459696634532837748114535333975290440603081150216025417997049553657958209351731564504501066195003202880491555203114302290890204316443621628095291909807042267369316852989162907923462513360137253922966840645820178275764840190241341895715727915783065019312295055716205477182856280592807704171958380457153306064501401310226248615985004391163163714697532294871573212401014186988535922005227502860043831112582479287225058496083300248358276299848916615155242944461909165967802903216752287110884216452537865694162727789209999455565985037862300059002143215565734461207013793955950417045996648472702694951336524555164713479099739106039943203430654760308737334415844578097909014073981269881563652874432152375967793370810352956499523638194103275128574891365256593479204346036061633566130657091066275043063178844146881793549624810281228869617860460757734373943403246983986220761134955800205403102055374145566770484156342218454575586437809062340472044816343550164507821713429878118415916276471222541438360039494665370087904051921140596423602982156859015721021275971980491224440260470014661688083686784516372126030363860705883926464012995872215966950003299954087027342926586851155489566534195084683362550009413602333766702789522624808229914004397108396932322698024226470248276785728852037440430390684705787748850506456199573237617770355555535937333672139701923463972273278207551745247240230434639361113985705855547425515141660066309594814813830774165892021478626126206402814112864693773211316313586970056084030968002799450725846595556804616794226698570698806550660732148930658009254105651997413067218886322068995926611218264468642615117902515864637658738491618528590127757088872073340590477641161061233369372939095447018030851087403685640057427025889735437381311543403783067176242635971371681709004368688215976927203480616981236909034104642581711160951101243091045933489436838092495392938577775025710241220571663428610890610315745072418540013922451308543722257932438308301096019472949874632569714613891135260080019041648929427573548490052910069004411013830192095122261947276090906535412687081746389188682214504072036368241962927769413759004984420984931144699630719150261084080657719629230799735002444075614906459669903922928996060606863714943843290444787204860974579962380733409210266228151156222226831348391949649993742588875494792268349792803875074575187125769223266690603067785919008535517451737562758321191907009121634446810266156129331657024878135415088233481942250716641823205046511016952256070974341701342761479473374431222803490765502424017535559638512267235109348033465886648355334829891286893696209952919875780078899534565514441799582304630002529977391350010820839049363880115607336126476133188565671428343738741143673047494965887826274596172720695141985429200535056437881992506921182476576985934951732479790693055034938171116636491065625989443640398480717195191117618223043863051633673549580091802206031912530315018238780612837421021266237829341368963369113761365779032357724748901796343302641053088867501489575796424837733589319687224221090832064781563704097300147681408941523202969917526091819511031907776498753766970096462979313305098777319144293173426836210588663318387448887328498102634787866701050421652394599294522564022943988474302058403257535861723927665962894884399985250396456910383068537823625620151833361542865841565935297997089224829795943259941848017985453362882003697733136875142046092803688306681252083817812623629406605165451825272994734348746051770297158200947601435523949366780653891294947953719392987339995881925696174975683304580115239442718747780568347327042563965899846012119433656812018286243848144126165718349677213029113401916757278898522614896878651533326941332763325243865442003685960646128331106183376460069016376794781916988956351642101081457176874487467867233665768228342142290471616909043926712388551381141489683077336722552969538527264203486418715499644043471128523293163787261243627119522008519738261003926991486481114979856221526097083145092324621885957001149365314035449600200001765540126619867441082559365057526172673208694855619625142129690301923845003235515888820440052121123566594365076268229366297229101094083442733549892731129885108696130946321949942584838875562695700474682252018976750473334211481383682705815282001456159493785576486770877199923858181052229442360710651477534096408912723371565040909831031257151511156762745321815423765038873165828332869432091643334673184037751480354443530573924165109502454732042964127322411584657655817059771359358505957914593920375046289166337647837294786423863595044115610360016548095195335892382264728640394355903018976891449351506518997859354151947069751818647337563248504191802411367010344903510285831412064345922518970891859070218138619260287352262120482255426087341419572480040265091762479417514009334423521405052654661722887271313994910476948992690110419987414441928370516228925545600683473684078766911677285703139738703636447430137312301082220885875643666318482003160733915618854345223910229470838477997553616643824734273389379618158867390033964103822265608582000328125047657579442136665022052602347149298006290138255098108727367318789559693175494489095509870628457241341182249364079546244445817435175222674854801458465570448460237625428618888618327123171053117143880495302126088415216783124650944283979547327537844105510294133858636644887416097289421417430496666684765286510332292658179105928187574871800850657909457082923080487997522348107990945496461824194100206924078714011983638683273029596361927768267357731940329736127173611643367551582533911373012472005578804153307776951256136421947493907916478361273975577349912292000932108990047002315019397383191578532100448281271090525562689122488700158672935135134456784349716603739996984296511834905508225304158613648067111569956537170206508660236696484593181459368970010989278026139550783027516291013141509297375474312464925537573659289635973241168902397773300140915447326093166194331195614970471386430179374121692325595571387260908809229700169530566560543463274505886475534084933169741363355489121715917339341939141716531691970373011765040652407853192973373605223198179048436310014799030442710610697700734562997182771896133562783398868632406441475528502755393063278451750314119911069436445864370900516178651367462949078421040260277338793042161046351519367390960717189964336627042452103416680831149733655312965129171887038928674942330767494118868611861495679312189662022085177084097455413219306917325308520067835367978536516795688580991565589555538510256959307558779144976444438463758833224936971067811634317246107269753047858641259342456943030983889445411783094508249968314814877388007965069091718760759868569427450083614660399506024812905039418579534335417638974721262325378718624459222357632103514783769105303860383647238768600514281860935385036733913526529777600055697424359228361333609737822421692879922130751505664287696886299866449027777298792453118432588334210587107289594701499300035451279589656411587586417534754867878246349376189423306616603239586833277389653776919549250742452047742113966133733527047396806152953978127746164692499985176789434753953339988308049871938059733928907651111332942235712995303532843608417077433382392300847379208654619616506677922463999624357271872484166219946343197814158892677904348585214788452827615015517218534755808845057312412218019149962826499952300128210085536699177120662963599676331370988178555155545419515776026826425892292847831003258869079159018336425037888705518477473475106373065977963070230605858110078172819315440892004635459741462678461842994474160035790584677487917407170515759905214667047496670855530584765758990049715374143828548433277819106783412438444593466515094765444572950056409822100691922260282277270056930697028861421095062906076059754243657176717245044789277149209508183492701589623551379157894632503888765813647887551617701693039821384183035224289016744192232534134140134991950493631700269479932585804994799056880598878305456977779433934545073165716830795414819885526799734662589835520274033395465574670698366465821745701578409727394298088557932760054116423563030528561831883744102295142617504897565723286538955031241863775417545145524090912576835470392780042523837185876133739656277797449250702523091978327830645107572468927176603249494902517940941225844924963748633903500134450344426899507498440865258176398205755649554675874962306023707152149436434930415928307750002925061668194806856999453432697389539175591450300504847352721125338147343410064964771143973992285217571808004783091860877382381541241249584595977432032264691672560719985628759158455858598110971069756936677663223055439545231646191003426993572313248309017991341668926431469140430842267249554966905178846871639978755387670084699805497608849625535924151693906256148437093668301955130328009000033361833341867899383869678548698281757354047057212669659356799058526159993615476692586962434046924164169418649019647658258444276960610506166284498662115749797219745894606419430966330653603183869275184362922208254709502458747044658063522302898231436121717701363523358392011597416109139670962039707478907366349186066583796903749532071372110224404763822159061597195433090648913236955339313442487328708133192141792670027006224428369141111406071832027496263655430504957505681833147726571661132460797110385892344970165858011816195182572916032210600200918682540210217365851482917817409693783272813759896381205291751757898964793230037649119519788752153464466894897863025651843909388383533868952467348740459281090087219440814915918541599776055317422846489608472752130350723092151863037676610757595451789602092370640887336306140365653802116832142213662658842703457979626777736319244670135557643862058478179933399309137203803082215756386076741832496724967732930642059713943553437428338862842707641810264901313166039729565728979587421991370811949195251994830360443897125174135269883644146171991354297205808001575098628620201969838825075586578224164029908160185267389462233075442265132515364462242075692522699501600635127633321437099065477477432515288263559245168792760280794243648458720808515111160221012732327856280299537118499381821358208051013222163603174571169602307866046763920032641419337674615264616863670650833277821729678711825747411353084099518296576861871719790741148405170857569425935470967825530916271295141309270461147866119566748111137222384380981920469029050285587151158165741179876990014488088747183553865577183658631987831012947821735763644001792673149964592716516240058803096762856141928812992500798876293412144217870610616727848657168996544504105921392026948785382138037482716897063718197093263003497502656376790650089595720340409298085673788648983717693253889423935442853046952997352273094966997363050342879332065231227746755012649485790382551597066490918595718933458805333163820316846849082055879472867400483894832400371236721698801476082063572699248449719872909900573270636107296983241728961432016378569372582366071821176027945530677631213774808517549433506143090534258325744926158854254330697935657640970807163834646594067327202249348806660198528802290652168043344842167259759017763975786635712905165864035534899843390479581135537183550502990617436931891534008163949464385368006503634983200392430996664346178233633192996448484240665935094984992414225941863215763175991033365265255766777295934905999746157013696697716156240916552246896234204506766324628777742467070922348307493527896845375613707949516840396105877055683872188467828389698239813343154857399743696176957593013107829576806944490069618176255731613420724927231928291991472691140994579582109035014296699941588446788156587123393892917539445604129253798722646535294642921711263025568437407284851300839395329844029579569590955848734850157471359901823282062357657148532742750094386380010160261706907462285520538179474984230934564826305355101275170681906958839361242089656206928096737654608549199189567881585805605785384780400925351770282826987603943175668582089681651804361231397077560809657916015814839365068545621312190122898088565906730542376423731276822321184832225749302029140769370118222370775064682588443821198100461931049521628391786987737924985364103151652676930641830297340777977500945463387818006768462280973394506640487125337819997680379888004256591796432030023089076595470851378847030105954236040121011248912736576375597443492712094450039221199305814398320691803691435941266545400218354400989095009892378827930393323342142562378074339612206935524394435776786695180062558872423669055575488831528799036747194836969470574889231876627692951458480863322784838160522702078091793699662346581017105537008931205684541250786645428881598565328453224167997078193796394545632481851112362863948697647045245392453829790608026064809672314621037517744873793428522649673252731935400314303671175525204204592607660524863520083269507349157734164596640792099103432310831725658847478518799580853544412401297177094645781954983720050754483780735632217439726692121086422195145556723775325929882811638762634278768970481903809598467916353311394770564933075389659744047150756445612237449594452526400367634279556073682383476991328810956892534297307497566191125297611411610021024783094711675239763907778824213761195764228761658692647816290624260140438725445165120805605122276164345113757272644583841067046225074175092258026085515960038084880444167013549830149924952437779046804399116212675931993676903138001378100202889287218660294591515878263742815447120470758515357257696808849472745487859314009772485503977239614004314305808013718106378863186524965190957644712477584031397439171486901294391106041038624580036731183099738065584278892252053391592132482762429055027365276025624093390598417082274850957932182392440731328510804928141764010716387753241895461835456086171935861681200083441000265534668947108656649024638323891755500440917038943034044132931206572554321004142032883278655968309773277262559480144631908939381825962582568992250760213753167071368068080119497191325530710270740408484864799340960143518047135159517660389882957123213994966343000758809435201952483484586727587172894869623219162190135144789782476446891881501080766428718931040612436762764753174815981588344284690930322628833256871743232755224113426276096311106466011763021294588107901343713511747206578055557342554865819721011841545521872045810073344899612279796038260548961450794367160145686411022851845224792405544234918999034460083673391060726350462645055638708108108560552769362306784847096998030916524945906663014102552824087937256511830485094372584890342519488843591039062207598819998256407634367746348873440442443620009333984885547039406774786266957479083915346530291135775839772742631761552409678829051397835497757152852192487432224306595032810486625804342385974038177845320698175339936579310422432061747887870130859546806511482252087610162184831790154787895919593276359795302368202998764045916281836853753417997373311522271499102784008374755548845328955713745067121080662122861658782244202412056571020052861144155462649111111100014769157544297535349969529121388169602289044998557098185789792346312996750266735767937044620254262406824182749010219105213974710703646420877970851594656808247488412695188739737279036552948340177907118106049615804495961393207541535372486230719254391583586054239536274891270858951774303761147294716102346214375963887588916329804406042408896089193696619694953820506546110322914992840226012791996576443939103904029158914921273351238323876851814964361098014850859263210799998121847287978336795624924209435284026269775887852210142217654547873670891202640745729356810147129388938339977797729281669291615358180768189154528471357855648935360988447470488792423623946207469440643842664042007312097019446980447224088012101883304114507416435187526037983811388694759802282064847905009836697584609723908755057157021173326365844857738634323214608303169643947002590082735548139844785018840029903425444282884667051341793484922674254453723813486874369952530375827348293874530829794901905202528941614040300639892096879525448440863592607329098869437043673005358599611427164467173952914889291103863911226475546527978601530937784394716714292430706698777170413458182133440440285919440822509292394311446482685001863580869020084822292791650425988734884741475001140089038470918832344961413571275816373768980953188207783734093389894900378082702036098091709595280139208125618684938022437753421609591417836705938227042203747854491456026846763978538384582222466846674842935411129128715517351885217101355375545403738132298887357894214533294956351553353009532273453095263903550663460137412843002852279507863481658417810704903894035375434709991923489268268805827429678617596200684013361579228903744145636823336713508664816485013251383095603852170640898987610409019979879222605521557175746638779581692011011933340749456768463038448673384138689769949249670476734356541074513812690081566653374809539864893653184014534182392749024433595820902699930562052101720219090362068736239355191634083441274481584768303326890457545303471004474631541550951381678903044105797771641639297314483198532542278040902290121299128419614671885727006077054908507606456125119451218320193619824531845571978706119148821000070989221831426018750452571214362790772569631581280729015088378131193526585516698912316424713130248478769389599476302315564235318809385802990569576411812145304318499866338781719481547488269415496135232464368817812527716933524567181908312020705063246149722139130960455247380022777965612040387539298993548277253791422446347353905460294291666041430582905791401736240973948423963062441655488099064296484285548569712462403225538179511686358599104839143945002838619537024070619073080220662619557782964134656659258238288334018150043520282643972667448745487889754347645063586081108676216726070836500179868565217286475866419374866095879938101620420311532654944326202192244827869128410518091621298481689349946696569884254197337567573278081190514573805540212621640895164009579996792051247320051015906285579287729961460386704682780085115379499689918486725068288303987561281270501235348903089868564123870053346403595796661987770100523550061529094407359073112823240093730953995161052150619746881058572124023295290682644517896535390765108930940883510443404042148396954778571802545280873196020586953640403586847433489451092878426450104251200722043319473290290286077429739793116772491822101031186536675374848111165611598766801106488813722756019813062813376506088577274936517718922041113633575973977827406289714893536431608894599689985235009462847765314696026958077591665072225023245208489913777516667750120113197400205956166121207451271466968623729006590654967807792352266419656179282501481461892253826798853569345934182107864657360471068683134254077562874307307024900362596582060354699013085419403254670059769024246823125808377935484170025263915038307654162284655918334672179815975191544966934645225766740450947611520868175019520237929170278220084815150253088167779099625045789038429378629983473412854896231352200765346222219178974391111366294858190075152405998770406075126164762844446977078545296731646259258145072495542748247242373751827472331165697239684129084383934409896547967988598158546510730542310981361215668752643547818985661452887775137708847741521941549130439974765399554226806267366639238564003033078030670765569079288622182638696726612099298678699625427052485909684536777208793913535618290528163043372962474377617120208830684280228196225008401687777072804356159845640671557165237811564164406356107015751711824153654724418881807152956390823913204526785652267070845198765924061544924582062859455276483620683029551120231653867367138049046871483045523077802419086440281916653305164471613718116009082385861078584965205639617046103671884378567840340506797113614743595013689099693599368223467550277144110973279716510240021803594067998525935312837877872582672540336904103801797893818882199736279418445759393812074449111712694573020753137046853277592000796046350876819768163764012370928508573453063120949096206460251584259987021338557258662557396099781972881947046372126324873726598217004302168257721165833769471906195686898170473262935579024983735855987889395203188839820587384089012230872118587472499175985158880628129456420788014204799714686112826941168469681317840210428015124752959061312948155898528357934999210658515746981629910141420291270977836226384605064184187475183630984094308340381326868754450609074585332306247433203541297634772601904132915884097779913077968667095699680637002349274033524813301705363149618808865594874343608931246287484874059261463521911874189155531916084396462628773556388581204513677501307316210323458199658523397601502695900080526245769827755586653797971087975612517574150513196101608313498857689225512064623794629377094704721913173145850860629241853318250056418939861808312208161558361000926241354615513711002709634186020986819390760051903912270797730036891817796336199947888852984227593571918822433053507400681098087896380499275807141576333640200717027872152061272323973372767397018781609055402334427871661577887752010960092767008566284218878027474072486561471356526504453168936613197007085634371049721738482880382970178151595374015638836043256179006728501725103428752969161507527918775272689487421432496826013647945896343735676186757190213621590583404882811230924258530152491248809452242531968651844355341659484316854887474906719101903897173220588341863752767122211543854326556021956881174729743349929593219561609252860231296108807050876613892165880963681832114380528798480332854795208043192765774960028791966316493435460612361191774799069729168049747848508645385280206668200642359021297511279200685072011096258956749054617274910469323772486797920744838599573485178114328017843521728812600794847138154655801582773751113395807804058849650036978085215967537084539156762208747117617554689894421201920878114680768314380190480400085473879645265725721814091853289360719023549709686914015374725475173875310101936042878298030823270271379530457160075410101522647000797042562551413438386643804132848747384399913689168949236195935649719675285681065771875701836011146849121222988415948062156094700347486202933599522107000013420818240914564153197341747023633918002128043631359365621918170555655121425926888881247465057844008778390464586769694804176937439998830811448800101525916804603579510861372887095135003313631772241944496249018385908533862291471223041448936940107791265341820335256247286933868987391722916621688213488198276530447342578481415975291361320796358255799734654686306094419354920861699626229705793428852986578254395699173771744341284541560276210014352856639818261161807269721822500917085330915452598452661343094582578546756507814094287170001874483484301264796485199636940033806451561479477276025767052498041573435159622894416471611369525733187404175544391982511924867003055231860756507722036118814306438577622714060470630552049991809462906372699619089414291155857063850985199142503329891567206048226560143578634320494726330067336012066800057264108803099016368535979220160978744137996054020547549588328562652731340512683715734797307587515658746883094711869037745747670055910464246606871687552145736119836548978085013727294443869857499509374975868024103185442228000474246605197510390980249181670564495524728403995975690976084473017883033154296959658181868277221672263272718240302663934347673780787328897652089074462682379568616860676624077628524535180627503202097075500829495064752221514193145123398249789946687799444587951175547489029302809716476017092112020402383333146391899311525660614921354606274681582433910351558500932556945928581834147299819091028240049183783911063096913209266258009154736506583947472878501197684366639732036845927231482850270658327558996833047295449703266110937677985938935409084543596394264347200387491437884388342086151468727565406183757441662881817523304829274308115952246180796716145961856732356871793988583509677461201128721581573794320190697635932552437656430859777512855521553087177845035923246124114181680866809267976615432647392457510019142757328041051087999864317742824927080906213478783747335400893791292830567172240648027717477315537226591544209225520157485806005152076357412550584302907527145568897080071955598392042698004316284344201209521277459267499950084352744744363322933647545316320223370946241484653842413686211564869184680373143844340708045452614899809578809544813482760848994897429317245685862068584916097657668779370268862535120282918024913665533285280864799738497874227114863593434556535551454239504338967885190275592216302218911217576388311482517488891607582667987059959155925535261611056473716465484905711276281555813673712279342929488762016528325170987750031975041279636703411005910181239550389475564822840025109448566259219545269469903371134711215043073664659762060324389045565637619954482832952952729378415294961208619252934174503433566085588073469799313795958799200791835839457026828994889140644060169760276266908695953857038853822942368826391234982553453090594925696726134279265414175341539491021166989725998529272459037642299160103860097072924559211183318549324339203054002301593661004385499691082155206532046839389621938680187520956425320250054868735499294823288981983401031640963367558504607856097821381503294493286306631295108679507159185286056230575148028876284957416271343287076762966551128292492040750251409361586193798008966589099118103543644689420125826779657928707213113515365441799558148059436863315132281939200403377607133474817201239137139557665173080057997161317169361246476370832750445030340068344040689014852984434433667675565992465657038990966123685102859159405554630795699804849295930345180772284487508625401451677151963619813513411862803774122274584964005807095024982907707498541521722845304677976883178691660474263130870675757672628130958990553823508654018575864963921352106164459886290081312041995426373575181862061066878929071337942978053716267010365264705810118181826305908870821725588426556238845446984167965673706654484958687322582911371857046620351188055978716121698162005673852734174049709673489396879193923956315195362754281455066816298956511134014351361901465564076222333983475869434713108173555833894821579111320054568931375386641899308668359265418694873287706308986084735769463456477077879919661452577802808438651799911150969218403339048000526337684701142070818219017767051768258744445339869548579658740582802052738772528271857001023431318670780578541976710416467608353345794648555001402466124983675592699099591397049074388709671815302584860998443118335774285932350272337408300226582971183187297916984721995081778474597864373459973101458843242884470985435450508771106940686184688983015151412917649233323563435201579247382854534357858457389200727939239748441459681797744777842969219050129079996016526773585918779608461977824561716863657758553787711882960076580384271654549878349902030867107189587473167639607687087410431097263260365414245637072879702279203755972517824654510884023842907961657145423284104390374667701601855477826063611391835625666389068481787897664806776930355953091389106982100639024538245895819691228371295741592848912747878197704012523829587803950928880394025774904779841894455649537011244893519408613181396378130418277033631740096479258743556333893173446756008627335134019534350070231505511278230230053717025469355801253510316795212629516101599730989388687840153589535335911492939043008340453802686243437836666719153087478456818620286424555913688624172353217947680087561522570003184115072693881445808063811375838575184315554735839162535179523420550281171694162820525104777786869093072194088374316039251004321679514407794243055398030685060620492476803384990833154499659304191996549787699101887667232781508698627459191941530230621534531888113553292679103641126764812125557321004283971760828259375009386706864250679123616281657544223986826543612751712692814893700789210017508662260289850209260188871699135585472371625271899204600916010195996009725165345365540880200259659863693137253679343998733436654472536267167641535271628722035195872707289356450602335998703331097693323273062588623600214833346039909719599213848239837300104082425043274754348892910818527801562923019015454335821787177346669388288502834057370134066997968526083579724714761400513236034467643933594451572619833753790364226708897617712595850315835387936359327756266256823373158736645255864227360332061441450645033187308753997265573269506727459793071336814591966784700794738317830057619736316100781780915413140192851897394287024614974662288646951253511178838407405932346738587707403152451479035334684619280252489697843552444257646089740213089141891909761126022161106572747287097271654821610023482325658378126091680709921563388431089643345723836781702242211460411341093567019933341316806754144586528028014450758357278556365751018300359709322983943589870801500509133965015419330767671689182966920815890658578122592603445817201745268829163317106142931855454823786248165155913096047908283437895927610096080460876012479028275923675111368713423838282808372230489820309467592693911727954095758416829678972225786634154987796130492227489497506858631714715252159999335951064768734483944420292763958134377093580157376228461698319557691275862810777831047202525995293608257129360480159422299468753726007670053381194705353162799257604118297654730966514239497254270707762319501982459622666916985698181026949537566481290321803247864693374184494269958005866133731261998970691921615859325302418901904621440738201010794318124800324156515050764748341484137446399887147222174563637538935094618453355856211235475131291310093353422604105295284161223816538328261689340313526931332130677137107569069442595151621886249031505295387186855961281332181299553195412157154492052409577438416813846951501000656688035822955545042404037677861606869271815370706346530970373169203823430816391342497420141035997140890736607881913427171977669872646143457250830373896868338550008575234532087289863135787082686845258353401158806283836265567055263789744859544068836208287054284638751756623186879527775231305023975993469147550554111132960275698401264263242644751734828752017154572316877430970520000208277375505422473636579355406722660822862339096518113115263594436304010609951080811808553662207764826042433958574354454256750438938672811438634498302418881281373359119300357420908600212448133734495545078354848376375399054040523756536149125586545279236632277264166028670532524607172792476568290410050665315993020945392498968112392223780266625067619436357813915348671287869213293310614311054702935726263440104689142372365658051091585804025731819751219894371570210534280472236792919377247197001647066374485218630163145648394553162379875664609574299614807204720559319280747906463638352938291802579160244807356205634117066990475931147917155408551405433009586539688782734257453973854445857037174657661059170261668729846863114386055165802768899971320710327441305465017262237110292749987385266041859185858682653303659880442409465647631389615054857855435712246485510655183619138129552556297292696073961113922034804415836437502811092566357157913521015599072112032718523305867916016911044181197875000113962508351985167272201508450289291959263795827742712112540538215164448591833718519867453754673308731777260091089320460064630485811972025796393360931331879690300464396515043370454341939104075793014038011758434027015661814853572730930840387003420725922324202449205177409108544097981042129915191351827079283302299772187795466657083636273105944473339162451826505917632945916891648134533906075462359344902288572383351107083738709936813506922181260216436658027677762085121519138103050373580891757794268949752096008313354377935917953517808713522172336029291624199522632230678946692947608635206413828878378482573193176985025795268007488524354518427821212221722631399686225715491152118536785819406367035737218857273891879614061064068398997453509604340582212843138193796725987435302917469087630714644332757127497502139928897681957379469607437053281654991327420510853090833194572052547992197689200379453378700042955610112735787574946596779828445034164971560263015894619699281529875045788843494337872930850447883798190482270441780548280538477205587185763442166563166152108787168878153028025359061927054683044624194902001582452141632246832370168762649092922023011981278659618704437534818374257221413914780971922983028953703675754790940471751512590530887678555352004634023758153004142874594572747514264614667725732792667065736094123007599184048490980008402030847322469626278942139075096953885199201298915757982680846180400275478098449285521485136929638911595719261559764890027129407223080282814325839119912907378917652652457733239851093485277408749217852321391883109116135615185140276394036933052346388029508144467773891922933294671125482995848720731049368105653442782208636846572629012594348540575438831729322050695061769251525561853683782693652085160889763762802743583027600130850176087074659434703528499454012810422706959272048382596640866453893356841987974080963087282242715863670161032652352845218449011402830200651085265924629761815347491103626663131115730070644526372523542560118138393965049278894114310065606793972771147772759277288924123019749140230076597078807731864192681830257981337399227205068767457322119409465127957482746297444019327521876266052687907165705606051798377795244361356476835136389438279776431352241907090626928587109982840430397146098589711378436676702498634423319444325387977779847467320219265056305813017743245305519189085994851347808187270032015763825884997375377949174797369449670866945289357762062455662392311609545005651004439418561839808866706807756677203346619729320388404815085695166048882915086528758954205121626959705582831175822841134799941388250273835609524848313303293156502293482400740729233662657862014963355618793492255383760157437192715503263087881872804539349555970106127452470116537780530531786958076941062478113468043326108825494574475137681680235680061125925257026838581223657623556232919331966077300660548246083590621203688682857221203074172511379451219151415065789403420437321795720247712634208021428663938155754673842903481718723709677333168643843052405899782134759143613541450079427922234438356200986267052900463797478073895092641982872014739917411616870378795121927571168949712966135358660829037127628631128099208829915019489094260461420626612552242811411837063520896380696374738424382930355968914417656599485230825725965056676346899472218735683752788470440523368668220255673340209253570936865363573813688400807076902451777111394375340340856915466143102528520299089577730824622007356077037999880566225267816509904242153628944702232290707397250644223775571750478502981272835619695519636285186455247369680518084781445627844567438222922327921290758822245363812155519244629786857229114972725716098171687530810835859761554055159515070350452045710728295224940978101271763024760937625345858486521108617238970551692292088099537436837852212896736768209039106527450405498984360675057451546217552444140351006721854856228794149291599888160188201933186511519810865836471795975064445760377433190366167747687846932715407322600696121809661287623660684469603657506812093513457085971178325968261538370612835911582424197243115111478535500930946807042182418003740522580424949332639604883213837238278062833175173819538567160735620684134757093031369914839040440413847056116142039186424345329265363253413027852423715953017068124616724605499314172551673388606102506057251415632787607888169419543497331933662981014378698621569023232319688806223472456291123738477925262930230408747106527387659195475956566830163694076290689849118922273848451623393618090512417162450594928742096157085751915829505643790699675095495585249251822252296711231410070023893926573351772168175685338147571682354346998696430913752141944251526263478200428464701532259945717673672920680518843145383082891196535697483101480160559846102705771565731480652902106805049551714620015763139030523804311120416725121859281331039548733877213096532928649603236261907920873804385579915299273770835911673432299514121074960000270282696241010520715653560243106660723458318152227290496073876626776368214063979189469986044617770589308320307026700253996354622023188431899425344716172099097551119714522124288531431484602136981369035540752174682410710151088343507068571013610911038657005528727974602343500769741172632234582865549935130455865180925410644021893446933520217401920845313564557532308591655180224159328227168561830049571912161292082595417539662520840458258602166868571280566816179276104356205403922168846529583412892107543668348665031691092545356178360270672695136000239804371140852822815406683970120069557403041123804597775856745116205721397700329900075926372283274258863197295877858881210081227015670694209726614910094329569775356194840963731092856473779463575685729634340516414566380919971138908737615317824701145879184297525279340535520789093499481966054979792796767405057670383836631996171832647013152587579722550406823512556827079528785157014481662692646108613825066099537779209973314206355844630225029960071126575571608399247984870624281423525332911794281940059769660447160005144494678036303989726966567936228789841195751976355151000662394269110327000350560288851892054616901507351277926413590315679726620703485685736253309888976066015519910031345138916381770083389425153734863001187746690222825868881265200742165057056094596669693747412909855932054485494541823754712869755063974189381382494276527890513567166972394474357267535316541453360777792689439359955047331501436971228421198486389497231202148083171430999231596329126282033492622556123855642101523115392821682590106404477484278782974038616980691466419654841450422752632454956257452882788916080406969206369109159244010048645347818127270100853842175505152091436484675131553624870720567631149033763063844118048391436003670081963735928829264057697241159034163671320770777911136858372518214006988957527138208506623134984145600053124543865389019253316130589956168983999536154589276018641867800703901652281921491731241280015501014083433002174987078048260077447684851638479722209868013573382113185203525740223972273245357245052589050178940729817771250671281568080003055333390499641311904549539572463078944866774834173083055051031894061928631972692389902355523119646282578985856999616360774851793979853174873282005763249413407722021957979894267025721864885644164180045176765117557247874165783977078208503932162827977903144349495120545525647548830144205862665125627190509032335976532642157844819971523147871427132312490239400208982165240458614772334805044027236485330190418657103847028558287143790125967967649920913036484344983908871540060236892857165134586969047229660310702409722157547639426414030228701856973500045083387574449681109779480957668011084063151849678515521823148001078021080922608796801710638305580008104515418341260988424256168683801922034341429283515487622506831719876103761295942092135369239409854148167298929672061072989138346361319194598220215386278549919271110185826359842253620347029236341589659140521363535756889782428137215033495879891985609277434127223260083316943640319590912888121496952434410615313783399823093038346896260837202014599066145664415830924411276823366158662421895194599477578561064465004583137265725752708114967318160022784106607981609187716999743719377682822233501971938280461620643283333152251932051842865007461092683874051121757937930130790447928418697693788460557330018183386565679048862262970482047748171124486119777099018986112754833180917249549634059610047331057979023796108489479744022169504911779092694504576756094816731962519032536448512213118259781439538797077227035311342141115113240633347238858812758634822927951457021155985572129410254112692659468134941234338397074146873793599382775231871607463423071403522383071423775598711481084588734678444959203134864279181706724932500697981336347336036214059244819930543011815431587441643494385286884883565724623568199786296583769560886895239417986282057857747778499623098396542461614626981401999579396672711905555065769880998229331640873850067051487494756775479402241653268148961267090566562485681451918727583536589521598734670296057785175385141355428906964548147969566778438086967528309620196245503522943027219392787079416299410966500476427893442002383785502677057650886740746558878903178678839233650957323129814706500075919960465341926069811844249151513296929699322551184614689619989174223952480900379834262126599392749833447971673238521099991640917246024485458645100874306080532659786632211647933969878662533795006488369695598663107360727260247493689315168680630540146775397181121417123291262003767964641996527642990465401883689929175011005700275076058950482864172959032055755560643329812615243625604673347267628513341256680966216705096520494740770041069210759085569834062202558217303040359553606760967027931026017315709905716113903664008319396755019545919565122386548917702569533400714326804648289996898394729038711117777382993827803072316471431059944001730751180611220515629206709369089411094729310848681502638507697760819510644368020084748274978098882593334034187204657317557989372339235742422045979484417839058860346959919792377160362501307274280081979735852133159602799545566531089477289134806496374572684097336836750320545533194265850891440561464249295707718218966831514268966866334143734139721361590308488511739856722347722233549280099697071522817059366529593789681339734518234147581311985791222935452598668353674839054177325447146341360389909316958556282895683590202573851227320125260028666101480338749718376374347471922641901529190515217705511084706247637059346918374299455394167567173962965787732651707359414654154256595754507453340856966266959999684257010456902509507397720222469273719811645416657417639419689097428099205710114903677720587516307189181721770707985651264896452384371316741975661750210919124260726644311488603903998053711140299252780749980848896288393485350853732913191933176066611332053185694006012743847563060898704471643395388346236271687959565775337842763908989258113041423022034142780088451038209151475657243631112604807479681075570635536981099411764753530429753181192238625861823336866828671418756119396655042088905359468243226258939586979717602958646898066144074388457163700367106436608305531767348552961408004629642355237742496155581321342774423483786492687467539786921722234285619674951534997473062840434685544556869883752841558678588854211547251085168399797018522720151348390012066888416309963565652441366992292561239859897670407877275697197219932505348384346266466453797210869633013198546885894333902958426378382332560822909011696119974138985835997501421203684516092826206498252841256123727285339265927243027978431691888040153713899418071666170544171008548633807019472870348813651749239612365737008596586056757599723555366430971916500985240439090848973991991748742232276867488890841578006109825915599177954018361940518328146930264932342131859805759137254936715984486680649217283490993975673094856484824278043679737197979185688700434163456567783008096131873178656599749138052291402789055561386422541538024959443613293587117941696799654588398751056008490001259007459790566628348688159687699114290229407665695170008721687920118358211718373242449891448687517536594211840332551366018398688275719953420209059601233978782114913202061141504310194178467542895964620786617701428244186588110681795623455426913564862793084168461006113986913182859217581425184362370881124796575725234955308372527064692928477758416752628929112144829296827816234274038840146067330638255541484265816937438343153695238497530529649460100232999629453580092212604342344547551530311727258359969106797491291901402221718949136745096006315980238379590081901395995487901860462182225628151164513554982730491153299140099235554634060890090565877805270907754717064399310037479406086309649350757836132717182239005589021548796435589224751327793322325380923669763085578542605869805203320523682497151791684404638724750049607264833996475895959558351873774787391718718008465165870012620635314253458463336870693812635661918234538065159482423367950228956872764710684585638219782364431056669572630940758289913471503367686234906927436648928850681802651167338396291642679342605435710778528047959123169352649481102366566021621533437061030174003104645298193996933474183138261592078411134800287070880458601445488374258727428206322913469935323368258831944838787217339067802042091944745238848645257435609851689107385005166488531397476685232577828722146374501623485113977953628906232590102527118187534678625909062330158532369732202736090750045414207490029871681581489813111122310374340925220605900277979850316375853656236885898524645695605740216072955050124798599081955863670113781302764436005402016045875432641967191356170102324193809450800820880540420377206569293304550520412100386433818265322603272689914318118301641865138342402602722847299678869509238844958890672812072946750201170581607019478599012264653618341341510084697825784018824882924057195198054269184673016366593107986467015926285652484318335242204726520207056006969694022684873980166960475939404716940400636992528846191784804159571783140365410498206450120509023565948216456400509314030970279443915457274101330092251352018365552003074160634240936643361913854298035028578049519926574978032192527466566052117163299720594456821019660444594853734959530992913542022937500200622736855825093484497842111984727098733476989702204818046616345160115756500164011131039945106093971048734194883420260540562164430262674289493151462688384493356198573700425401312878462457389216236188145179513836060100182322692949382406440600709428237046955987282436863298597938000036660222274555976846082963105166038257518647227639248164786429305180585571688604127064934642510614322445656680613213764633784461331381552115140605186268023143802382117561316867037162723487635283181567756330186986836309492960000680011715237433190388150191432049483825787510129330675923325079169911435846978253981948462006739536072397835975003522933731049491698245053908536851678755689475965921956728936843080895468085836719994663665948523049196408161381005460732366457417322289949472309881687244346744778858680675995720678935126867406756166125873333982807875813868477004614694943409637992904974591521529041868218459388316190082208200600061566630910714059982223239604464479905826541156965707352097763257573993644385714080626860602480458732678258488989031563606559876337361252228175287671510527157279252112421541610836014020409533295076776317996013610005450625319023473815563004200391118435862848250675339052101691423927211474541590823730800913160523370082643766672509798431329308597378872358049996385952556028949872109642398241813608932210586027429468640286014261219904581586250694816708039398113352543818303830025288793932388680957227021709555015675689233816379225150781808752971714986721266704342757554788667899788489241755079996961111182592278901101199941480245154223182004626253342634037272305653960417045828377807306845084576963719885428792196805676535302250480996409574108390683081961071186426933368535788439766615633744453028197316717268566306120838985220837960583076214926919457079616588551782695575531474741233717229316475567304121455526504228278792854969846022669987350303064453932425773399424165785750483689580550145448343765812216212823944308360183760528130415017120237767761606422631189655443771255504133079345196678652996586342570302011471066345602505891590946810809860924395567053981696570924433905476270961636435754939704871017536846639186705434057693432618605570021642443740813994364283254480212541383971384743944702136036491156140719632794861350218460846959189538070761833912729880443627590442998643172216585213047194140394385962023255042214133245047454630424538820462120628692014901160642987394836471381899225867297233215629564074486679327202314729172515577191874447757645395541686994508326060586473226032772049591626018680938752624297916944279913345212892537015276547141654969646752599657476742424033155290803916246303593518032714301444102718254120615228375896820172834003379417339986429071626837210098652429416375978100633331648283157046876194469002580869472291047078378894505311323086881497886290750438529478572235626017058308771739571471886305044792401002356680217241791318983612458781029397885226716939804700312011343430417275440265799831621591909828715211559188847528174958870928083325494611982783100160840000287834869625615979520032585166810828778237269093958444588918176847987003897557150425726011181569726490115807428011768829250835977718501719071131782938156445880701355167122355686766388060247472326098139373481286878559995840395709215280367370190972099105310178615053231278673605885898116951688370393147050055957331367868999437668874524551484589718060075820188104184237395323068207537224429865168732452638802977047935429262097498095577893245783405452432744859402873637247372113530004546244142238068931191777454307438829263257064331356742217468504506731295280521663871883075034430170751410929210768471571536585461294149292319125608055357297010609691533024100208478098041607290498955592963057574529051412856391594193810878698519418194563152012806154061353392763163615610533774120627279965042855952313370243001970961001582047479220098627835718468051207834998251796515585014830376918019234987717479714205944209819236087714409247219550053191698135145717416931128288606444394267779459207737233600965736570850857971618545818716764298054504954402151156507499636687190728068653247946332494881801498215182851769698587802776991112370213484125967648235207712205488920361667803148283194279338677661779017969267351211146235496730135234489439716071356321890817826297713810599701659861367451765612692307357219787953520172624634807709539445272861324556578323340661466214718800697748558230953224169567938598703843011278300911581650987897482335321937483571761700508363136511568241794231438014016443062032353844039111733295451805861851507912122047788093742245879287755342647727450035528105481874268669553470015842909497653503069276978840000150641569010991253534793620354935379267638980815308275936126360766836996033459792520108786006992592983049680475272434961719462897365231274742496959313616408155995779171548003151036185409358825002198792573282528111639708252147297626138874014681852439916993329077181489659573433307546935348894265471731209639740206481614540736630724948346511203585609092837660639389236287984686088244197772992205652107968572135183468066816783592533819935089166854540258048140373811292576803565024238002290268303016285363557032157097933313355305755147099040647503867671068706996194368476980160936361608412875763653167808085282906875500742101061423138506174350748702264168210453913840505975865972282307864681002512848122351175973855124064891671068972611327445367590654953293651706431272991744470027322581532476111879591300850873672787219138032511758937232905581045750467757033362475921983346480969851382798229829616849021707132310468055306042849219619701704552892270361718671209824856538022425183100706057123951355872454390116435147023786597576882516899639133116400147328262489532482591259994839110034834349571292687938616965958831854056967021433054384022990136752395318102501942258965369365607594977209460334845101447926669287958494663109509509923466169738881394497283957656617597080790909568849274746536229992903043318029876543399304463245302146347429397210059912013824180639350278456859518369477526687598224180016007035749442249292189248912978969668117592280463834792212271244048952574306280331787245264036592832142364037397555086494879139653707164734431309932945687377605614929227269658000346926800867900180935733169184104633421385750146445719168896561566980396563985398098962184527139125473105041577907012314881805819723802057796211482996454424012369932446655175452061126695420110952738734660537887458370962251706259785286510871721792822990485341199383806558379694656091431434016877763865096328887787228986799195337825810662575030498914739511962791207605616676895527063850202638316918752211653705102895823796745172318761449363740533632178416634649846832610243092951062883997012420801935150548031616793302426551866517034432936916581160344999044783125400447503352334179054336375894540917800076668486764039527442458121058273693867103242740164065470966080482540670835276546355077069997596319114118430834953851515569120547311182124663632797820881636363785814102265941780741967927003314931226304997153335384263248002934052169558716771876625462454906459744312298421620563130323941071325286260423720175026084482563648251006752502784112351743788729600207578505190600018639862769214143647678844374645549197113780209656228299349207507291668077782461312148545267464966489420407062957543081313243442402314563860971515363217910785351068283091775580037556710304671193512099132410782389048834599993919242651163171164013877953964699742047373918463710190348923538403669442411484785610574806790092981474973408974770050938283918486563285338805962255100407807434269957289609575638873850533507498461302946337070261174261476829894897906920091385967784617915791965503881084773853501760533123041570833656746751966711013221522995231098341546149701786107809494632519290491001672251574794535217108142174170370370183411434757020455445954648198369094059686222826868364178648079484400382312082323057892709526186560189584300965322647574747698557715717520282900612105697538653548584896938213476192889338876869566319317694686587966152229221009405496309811735039657610652208535072709876116796640338487596994414132796251423076545888807146280231736175026719039096381850626659604555693807374823702695248327014602146551000379652171484812794480099979181627905989973018477811728614748894871093693577074375844790974016767614428502350651632486315737170553974217245815555750318310327421892826800855624248554128684578448634335486520782049549379207636494481759397751121019179378479049462791185946914273677523895407912402530725106871177814729180079417687321017273723649300454116526058764779397759158923984055951427005270546568512278120105527500833207530105153306245758045509326544734254071165372758824501252580721205001779424109641380905070198481560561493090531545465802108826830748170432214509761369991610643115203991984637807317031966175904827921713912114320765656198025063290260307904833292569399481102279052417509680114140559702361596776507405081062898962594341019335398513296535081287618560464721038154804008412575884627937182604192942412188206588601196979165907710585581868598328112673327966294733023570697491796635149609266008810837893243526590831533708401653639782396103321880979913461396468991469898427903993032752308538873855005278520752566449222319569386533278210665859833212516187571970075124540213826255814338302265667254469806506140425071412137664348020905292647543237099615836356756605327409800749663257878221810899045731673448082579767131387105295875825213308442910481541590305492039579810390799906416047610145208339535057618424760341369237645335210671735161277498384359701117910254512505573433933046950787392346975772624992089510100568933913492740273274386670701305538670455695661839738949184937644493944344526652253836015091935647153495035654120493083660447889649256417653555249542150109997687136285240911036949453677424218399680923121696983169936897747355160206235953974034801653454347121436107263096380567305562939215539167757195480819880959945282952104279495003112798035564702578292032506239091878336086511910043896410585021933686774811813829778967563746015329119211004695840774164789836887086753311504399746717211798624392061242349842786566395715537109489170491836612034724833794503839099857156526144504054043968920687622853913603614555321983369021574604405905235452245894162808218231645461241594330483583069173986444381946406685209756142662282179558097402387505186998076187772258393600353602891657274544963136370807564706420271796665417743881852289130433819035196787585799192936613321572647949271185871416292394348675600010725116748564915353822741602955132317327552407088254828583816469274009574191946982965220192147510590929882041728775857310945176834303314167156461520437306056783221452086150473245902631188922803154325024993502408829167601027846020103102880461037204702289620870775062030397032311483734001677066216966323546095794914168281190030915986226530974639703219448848899847840823271590721651567441999955994394208380489272591773173167555930838634004358526585145149851922889190992145433639541181979050689591417534448699278483057375920051185126165684059104944354344810291458593605973209780558391669233008432746257879245004638216583675869078300602889276720565229413735293465259684686175923369915644379296340858657269358042520734049575495918717872910584136391296954236555324432748014640972274778031840738762903906559569413461630307784672627356445800375389735006068276229911773700361410440910567096416380701776769553048785325539591210320487755007061099326564471105822989162858229607739635259472243090560667288390458141591989316836876105755364515329217355800873726345596764657292674091160899962622474399612890228880167301327039789107255157581645207984745903640380407644879274477040971129586453474991428518177696430039456575587305560343436980134329947056625201325022338973294759170037650463928473360169299469248250847408841381894798690516852482994363738738397309106255179594862540802688667083494414095476945535009155822443869372587916878967584088710007408830551432474422313201453734208961388833825246152948234286096928375752938765143820714165155955541038037362904161112891879568215090714788437575167742385959154046422124257292535104356354380731763433092457101750218161168983160196169105585226519491012598669431701062381484265983416441858332589475791405477432050943235427369890022371367278359826108110943809380650372742703868219880715011258867303155369794523635349323290206210010820240323175157828236762820007913130670889172297326582857810612435023492540988895910897063735577060191130989753411574899166535633151722352218220288361307331132416736756472842493155645786008168469416480265181169682758105369324591012713139064162847943103500747523309595439094541249982943851833210182720384733045700573908318690082435877423650571592069717981403157091138871290241884337470320129134169424830533015564980568483532316967712248186536036007914057004577240485610955266532057114807695008086197049249451919063455692377800669599563918732006099189207049871937272945947682387712637393129992588333415086362359444821783622547238230544102808823726080623330087109066212876746264802170762289904962169917468455834845002120079429081221549106510118996687460857096437903978561428637192290994052215439846178015614018839068050918329049797090751125903660048187277745558982127038147755733201905107922664346473810533131721575769711562361648901580070699523696050198091167050992851879625645705082083544752933294525700348089625861542321949131400018108163591587021227366235386833860294374981263171575167220311689200367006549560013193485382006326311206366575539769324790129655608855277548366263266658262830231550466585124326682833477125894956728251403480097474601895453127786460218650049643969147368785764374793698770652240316477842515016564861062925772512239130073892756397096348623297172184362054320592300144519939670693298704020480080188485135868240766316524385294693584645423295721388831496614077832023207287279304030796004352684854751622054101502412633373576575302400556382477120304162436783736124233147539002554392873530818197725961944794403956843955315264653805095888708001355691784162891273163631953090028711922960822736785640734035522852707711729618301590105412356154389525812602286667080292930788366780601811390135097599964360747668605022997629270160719204447673054584747047423391509998524566612381656246731076405861283766238467286314969686326503625356504972579480337120159344665003445593567368574974357722388573159368127906245262563013085575366505272765249545163847873368494875587896522493525263696828510078282336497433895250750053117934900829155408706689115854685703932012700421500825157138893820997736423780098184538101927639211511792457427904837537456016088068195288625505041458000521843024111164145191444722342955917653288883543604429879330871292291449218223671528311359648805466847880567063856531509867393722640743470306618094400967922075785680276090612017307410776942667025172161734638655337326854266805878624643900352293529724379623406436010854014101653994563261333433476389992832551800877673918542342046407718719276786332115251627436265577794160822083314063387020389753885793241215304947357981458854763068072711786979411202060513535220023544688223495004190033211205623656792136360564814309506191574885109052230241423118338507804765310268717650345791107381887081994533502452754530311652462559394819648432809337780055652149589708415914756808368360124351818984492892227446271373097269442303411066240607712453432598010867083962243187196224654995254130567114831739882696711043836221940158841969162481644447825450419241356432529857601924300051266472081897287746238659083553267088975816822686556059923303399182883420272848341883927854460060183408476121751539114682296518990173744698401395663670220026256805772942480167225994482883031442046345377123773265363435699738579994869989840657275489908517296887595242816805852645616173611068308872945216949146979970070610133477327391580184744048210450615583940272447790726289426153759412077982001754748687098629219014127543657493488258774361279399379238110154211166669941971419091174520154216241172459960635635089056516490716117873228220094953446465701081215498873172605377869521891341677840360221646474420335004491919664633833395171467876603310681315820359478544332601104511375897093967740053531970851835093672242897714451087036838113273776693716458634121435022488912469149117186415910528899487559979475780747315371061141053565113809544330785193807418731659697848354755673350375564562201793046520334639340762844431697749934238559074625180836920947756953041856311522076447338531947862096191565513665022455866704170906459223504345551246880311046456690295430361286502966438036366190623121394800587610144620458952120072911239531957873743260376138209765190072226703874001261591481550086061412580943140104473953138991803721044205029684740537849401554443370563332635113136422678376801073540852250934237232885207696797736436869548123304198033291460548711407416142480456108852503420902301527749297346160761520711771747985290987646524933326294692434785922804891252181892214142310364355772426179071547486959563221709619271829340875341305655281134634628879569112105234306171710607742870239840647711633569606837167647005063943820216029396107759863729362739873317422794958263756899505215736725552007776072675077581856731024668337777402173756297485889334355726237512372085263228000797147877780023679502039923405216035961381543682636221675393075712801390265891052362577264461779400562076414773970249904481185023386186236537499746604096481487908684942375804966186346955041600557122160117065660233919038957019193229258072097132687181897215076338334351516566018332511955402967020838983933768456636932661074079579386427714235842361564465647069398265197948958148018407916222905578092674500417328702664570211397304746315617501575511883743313974810772359785911279131976773527013681963493399563658329593922031575635402205489018362550220930799196234064206677222344641082377951853629405327406788085355392543753649411739594756092568405724030765985311332205507797242276012872060262110858931911821090987760924334761424401976543876921697525909411479061104110458965812791864529509842152110428814516901274664968549346420543886106913502705735518193841408991256048005967414825849634132881926120684715581118592167855009329246253101822697536193588114623982126451342347206679554487420679055554947657159115897782132648302308076008885093090008003012898481974990867277815232896569215019621491300559907497802886928468120063824807958287585041797423734511793949346662291701215204285497640016122862361738457919780876859000937299539333072620360106821988883132955751528684812114644182317918212504049899843412041438110549857983215427717838458444304975459058939678800825384271418009979195936739218128168558715595912334158149884382871307120360857946336979997789793369752464684596648240100615788805189616181512902209379309874075870654271059624079378944281759254753122252178841726391821530436545896734115068830381565629637874614074715081455176414078715927505773063722764427352165932591352655136087036915941669209649198970687562712618265218609889693555478694345786942117197614008537312059885111313678615780262750999550092857498612024141783032824522205463279865600109218241948499162860680554071674368118013979873885468253522559192104874576170370707092361971078515143825366602120671525806400733293975965978778482120771622568520298458617206174576583675828780098843438172402764140042802663752380808355047910109753119100546035351121281559616643277557148554128180365544311126064466467389689486572341398581321158990262437233826396539907664698708475896840767163120469134617275355966705550936409701717229104611609123191597043273737535961542832844535691373518142639677117030405526536969162390773570789784976176024282548853435443888887215683949324800818884790760646793785294882954653120117778733689489069091849906610107892939775576249152149489593651755721568445630034968134107500664312115037843318429968595431825100976967943004252841981372827499127004605675742412683347556109171570174712625560422895976809468758481609165581021910292529806439597575362215005098996275301759707136900034964849916985916823456026307402360117098135918909737258368700504351044447234882232764780076407053948277526098709104365470149166481322690655183273291491607594414788958331300357468262356080411953510185889889617704809090972814725287701220313480805878248782053798909287210304363239482934571707379296409129562119451627290075277630809332094924093794577948149848978602031536729984381801549984272091070563481285915614801413670991136570826603570611534650172704585259687684135117700260008089942938252033403368055835740867254403383241556700282974519082940271854862388807294160722544144737098468512803571615348953744642308806979372514684012703603309598832055304589154300614825349357872413659777480359881271538868216880057515925148430787952167040413071779840151948079433450362160218889201130224188678914879104029396022481941512311177305409953737527714393585590973331412448253984639077403576726132306027790591958022294828151745360441435216697844601619207881102327161931794005385167995172983072285309952291419478941700886547257302349035725371240344140152746252370341243120875521474930617671042330051537886622567295625076341926821334687862209061547900108500653090211438595130721345622638382440653837649818726608027464241310139809825206305687324069535554120861973293198130932774379163832824117441693398168783117320705633401274953711585273882270499695687298747605223659043216283542623956852921053997391420526814999038303256654841134625992071495653086314103065977218514223753326172396007467291231253320241479318362083750925427696496712045626025276103344741660307668067381724856614100677936874983074830800380985056729003015234152167143447630403210144471060214579727605940476123383154745431417503554378259097668456824337464373297337137708782352759204111599241661851874194745844805922763102176828975965464855692704003735251273628229280642042296707745011034764981729329892148976543435057640260819206331881365083979586888237896128520794679368869132454802397652863287896393475732042736344620429645118957680810839742806715517567286386236396664932569258815502449922576508251991808859958141504434715131867049315116127299021526084178941343096736963461661871549663868411976040366917462803993621156870217513140387414925694707376492665311068797784462467662569199712068893239724299233328430773215368026602069541345108916310256256930267224830611235547393765356286474191341869278699999479120325151307116442630808986414724994399147582318505228730048719088786125906265902590616206244127349747899363403916150890052633321246835874516132960834020127882317265759827957368316501880050101845543813765557502037440599176065439916182525340467466925294506237179115787849096576145586992622806586267535844280445143532206864055640192056016900464839223083617895195278258462102426632280258545861647171796912095145671243914089790128545634863533579288104104164506403812458965517669265170356181244240374932427603431870885523475922293706379193802265005506215799076713381462773835703136205444571368113505348778679723781254024849774759514010737812268079538744709487457484515659766894819352589561872644928939932594427955826627575246650879869951841200399969814163164857273596750712828858517677696470347806561754575630494513361087928275046102840433445126801877296867850923889995610833768533927098135681076748026613868407233718345193887144856584977957578199411089477628907683376775454559529769961061723541981407476235039507760400494365346026049502029263511308550143910727763575348031525048010980466284571865038770314489934953310572472178492135604855147388311823209749392002441112958486388056994800186007999011443058748535767020733346049591868071168857044403714718256866540551659135877498388248675990581950720615576046469926600187512837161025524451486213108134473796308212764783995980844940316323166699230528867709122550695617534234153961615182497823225834747778544350181007779654965710864545109060464986936018264541891124515610502947770239562301542424125661662627660018118299339679477694149578400498176657202246658816224457680832618634517634272168825147450614158326780379931695129407966536555320005427105166872574054225429660412767876420876979226704046426261917177089602771224981549275968864073439717558381385884047030263504430256018543035115503969994218632167023873079774473620995274966032187109333765297574025497462381986743182390561783417743913720579992936608302904484389750757795125668418316647658959139531745117691211064354275186745010692278175807969554164831048044139705505355983479582048591021669800700039690834689404629629167268140725370409958044764594702171321567697537643494110942383390093372937206410142127743430207005801784744112351704191542781034541478387380386590479933945503633958640260724417686418188424055965471103714256414310433305498809690448882771335445669337903745977844678751119857560461900127059965773468845601483517726877927459712251423859533924157328460574039531901155303251229562176722280965712564763943028467758977848600554887137444312500149676028430627920465298876053894994593422633419858890838719588225070933846831474171442063041281261012046671338819960444478983343194486974507573608160047376725545344805113026296849028406602916992610704929036521811016320506099500136125432453370611539495657194763283337916987276679723285699154463657432925198434949480974098584675836621637703962626460748365215556753302039758714119556200351212090604244505431590726699485966938849525254068400403241654802539285894504958607018260634027133311344030051966790472259284875265625318006805918920181986074915800200487427611254788287043334237433948686856272608505452887354534012719639414350261370732573027002925207531553902607747108246233322070371207246890480706570621284776917811140422048602503106195567024265239187884249964520042421465535939814758316554896297095892031262765000856844833392037577840136349657037343329302209766862511184276385955068737883784266918616146175952376890514100086699237273577528101318018401096172954096175774593997658963467324386981564623069490238091053042042654678322194343277469341094731429761676656031004043624923060054828834417443423091832972005593529355836276574449714234317052026675124917051631203498414131689998357093324296925324237393920919777130795274520058737089000328234471772225278239535832129965253817742972772871770126013746020755799790312688612271933729837076991321278278531690072435536784859177982870627025073167065587797235062911944628356985009588750223284106297249788552028504525254371148413282719181924082242853345679837841304309026853775856373990435423785467227726304592748262608379209356343824869585668025898265135060583388773910084811253128604107332662741967640048454681797756635983042309308647594208158251766070078650124052703436993226889990104428683013950614396199994921200314637755729589775536952173317455663015888618602603524592633476249938019481717170638491619082646743799637420737675978855470400665947660616715931458974230949602799788139173291580469027534487586119445415089063659783689825424009351782907505497875672333099603444306640595068779220490730249660498532153868704765086097576045428976328304718537432205936244251540422392340801638683821122357582440776731665381653499121434120191542069941243442095619718285102478755940489687450250251562644568738702281001488406779105866335420911347728172318823083092320610377182642651197548266838693448925256129526237354983251544147809085675945919631667963636087579552899558865724341698729747460623200571752505413848768217234754077258356757745253217163528921753422785715020526808230297478475053124392253091955557670946724391893419648094268573689314804173517759566269582129530605215343745222883502851055469417851222563552351944616888560673556399198788171350326853628277125177015127040360963673101652114583368637655177849255479053202774313836634468359038601797259754900227317676584632630636828277387896775919865326485736396176472976034683853236395419737632002528589687834595431112403029236722809517844989703917380452775292630876336679037409381250831229059952290818949344513295863311711617387951475639436112840562561015901007713343192473092311386706612117989818707440514750231632187120037542356236489203996140810798386944859534538359951815282083834257819149803258194215395329145752699842051052235392374119905932283558728491466096385936999379469393570657031793547646766618540911786534168684061106194653790319037639487878445162343301975495643932059155149751097924893866796607911988895705479986098559110195340971261400728834175187307773002156211402265904730088974951667172647676104658873057149225392930223291087183273725513054378004089438793160712628004631592886908842255550089008656922198234578714508499689373177633755702019386755079330692251793203298927253577518572999884101270288052924641646436485561397207434176476686653547611654841136830633156421064764787570807217194356983895686979999302796035357641453121990547606328328696391793602529984970545985802717210186999772248173113137934137343137931144139880385227961185110468873733059677704042901494187079959829086832796108679156522554570625446139394600750111639710788699537149959612242430401837809631109976510660392777978202382216210759771981947999431638665473207874089732591426217290816552716236878298641363435800275293123058545237736920617455207723746248265881222722502507667718291396950998857230286284749665483496617030093847257958344542553110877416690239725587538254548434638746868173145330884866864478160279868566554081117061981580346482283950313706813229731748632224577723948561031986714484904801160023403576448638458701863708884772857883861212456002177431192815614939785076934045263220870159769026410765161039662650282569444730735773761995455358577585649074453290538562322128413318559167206588875219767978295333826488232989363719082317964564993371422293418861279284466173472569191068711559756642771664008050760959639926327853366210059216052195859452696015388399270133317177993909382244823870099183077626190291024246903157760136992216768593391468921766954614389244452057598356961721861009954021103809081781273401690095100910430093030207612168307436995545943672151933380430100115321048505041954512296328447892728757794923176640010467734570050282866405107306787295980868596465302154575237305569567278445718606065607051725501766900288922922728722548973040000375173725487079482155690981546046781175063642119057335961982552369152980673643224102869970098510296213773837911624435736375529505322296935492905642141553000220575127986537990600557257516080320793238081301284864855124639639161848152876147357545084386557987744489515378119758933964367871299060586508030640403470269555258891364566730973517418214061669887597707111453142251616328612663660204875077016130565336259703967444147100383533637786363236041948120374136568119538438423910472326210376712073002441048468404920584837232208353444362073489328245697568562384842600734013283773367560103752104145918276183868074013678007140422304208757963907367953444585386228088416476429300646899775904547753658990882362960798411457192654185635472905758599986596798450133483166616244539870192292920467264619381940798020769400065475647200861679760786872352750725668294274312053913908372567451711009035629341186211537992788799951623855134263249316112802762983705216691231575742617185594178501814274334741600455119546856092538813932721890072655416756040442276680537578971614462939926374809168133379116795836018252409741414496224263866969987897043243289699625850864213219202130135735553894955057065094123105290839244289388560224358994175743492961374484823563387477546324072489350035098473681952478315477176043025619078511558823128075485564665160324724729462404021529344376699566760942169474471424998066200623472399789786760240376757225050603601762065260221333751906437079956030081533777475744761760021144086812749997311628015379113599508318132327816353999349785477788883234742005892176104207382585132964877088612767234778453026289959001893412892098434793047923424881618044441268401218712748439437497457018538249601373856120054513477766937692092940311500680154327926964067465196910465737212877118470148036338555486624105400415725477547011442458107776584748779639395209590449598662657946942757193918703315559407663678058045882022743492317668378327993255907576452130316118875337639038272371119360249490077529680445598167470656671349893463480109160952203364866846813343883841197998240785067252092077845004907257778443157398355739663810705715816614424086558915693515251297381082536369944306587121045355247907885928269903486597299334414151860278352720937144481289521590587878751108199973109804772054788123182610365812804483871485399242899556049404949531097995085370562701487335749330217123543021588028503374225582592623372815824723827888643469039469893140709038675369967279452088185818140172438708447658965854350877841934254734649819867327747121396731819920170232575579678100212333451149807100503711446954359486548832810777540762867192655073589074477660885202727744031775812011671866279801109886475799074455038691826083029752653034790347411083498866814840229046170869789312241380259069032365188247569764975779930201359421833475936562894943142436627604788164723398168690488942373173973555228829684630411291692563112844027730929211447329106443341902921047853714081045103101322254571872752475757267595350191712937382769559696212472886258095662272282220948192413040774041322824145962807307356608845935230608100549460418894765009644475807721302757396267284408085807795653467902022468077648473201478518902528443090088763456426253910654556924518445587160170356994418791242296887964763556232066994301640727731931309127276502183191642765015020314506092289992870008747374038854407360460549419078949846539468077334401731534398746339709603297326240989438580247511822468084764604358123147833364386355767270307478061098640038280819088373955477031975486965755292835253334772626562090845755308232780630130939957962834287709649437475221924433783939352499385102561716597543293552504115579140711984530150715395432247340856995894802142128092366623688603797197402205489776802137397989820273494732631865156692783832329713336278687908065590019353975574640408051122068982616295303355751508312162771860992526222015839279281543644541990711074150208045295743800729581545069229081226378247761236665348900075193913151337767179171562715468960679721781177761277364916975719008226938891111194894850671929547831046641764457355505034402404274247743318745758091662868721751325448526155451579641705293260971810971381577451748129580644198404648433469972981579193342954123446880035046989441180033857041028275395753597978698959818435780228260525477240542209607830082869497014048227708677165504364652394498469302703399079237156741377257483756067075635438638467974960024648358239478485070546601923366196597726327314403819011382194787706972090653399295270494266420187505834438950045257128630098248116371286188567701580345098620114200770971809905115436079267926607974715878715654953729299990533184608163356178955920934277527215001930556331811979773347084256524787618513970742074372968195075088966031097521393594367160676024169888166013741227553166806713238653525456687912180379564323654536722202988568047856027248748568265500254994405753095373236906509267607798096008823507720431773197983360272250971470668945236520888520502974231608475042357374827002762151875414506684856640387181439103042776059928560321907589084486972111130005409131041196468755244908975986318836055064481669999647132730350638413937737940786331473221995300555697825334759232555987677465879740196507721630966966576894174201522245707018221264265479165552770238450325430679659636923168472897591050632161819591059131200782403390800225078393137389598871217242965067731916010141539879725815386815254355714576307530515968904414114184995078994192156854321337026314247681725020043252285781405753794230899459990355182376771572026631451138651908339811575727478478245383895904642051524479028557435285279335643630018459586916437899853238317426816453764044116049375830063338775563300108823595990746271199299151458794763086488635007884415489422516689199715069023154953599624290456958520224437226627412041600474893939623663354735144084984083184699595406083860016359188032825213677561325978736100354283453500676341431191698611836696922746978648249479601891055337821958460805400706261797166033264660655209473182174664484787001035677990701114055337964385252426600210050598327857325980348890093785144561605533116001128313254617911785918370089430183801332122042327551426833958710704794071492944624590515094917060085633137467202411855573664952077115207163767938498824492804411803097252538286339869032021072786772809314733756797622281182972850509469968632927230021317270304321526887732706152514966274982399298887454696892203999872845515634069250189880597872232882512868837688629275619861285509848588034049584839424226874823159355486244188442403952296481157379308607862239024572369802159752785389513530465693397482927071472989396652687259537932743886578016641338100523705662560332086567643923228610787106107039487956704299010898780520507719669582807295568255434712953477599026918122700534875581328196601974066280954675377937887741203237852225519169575860930064996332013844495581454763454835713374380467487566872247374654695558720192179916370657201698798299662668158464452895427908584345580643103943139843531367370523752354582320555965000466030818170111612949653536179139578039158097001535399115658712824089590597642499539467983364899153528471014119246920984098427171372441620420299527923597749159770097675977275948268305335987090496855855035485979264094108441099765093227131416980860108912665476644759543215142899073026778689410997947109177619263525567621972834281459597308964604831118111940868458375714897448144829722166614858627970307601600899763640363974381934720922965325129691456972463369820809396457622354345865694543844104356416987374244509742568291393519432818103598498498131102349609280838181985712000918608188264811549154064890746151796308223695537489462782276941154717838302266896523793983477631291852196014727169843322577617300640273342894178417209219374348986501853427506987521206611280630166835899011382486523505935541307461855383510891013621239767408503084897403760147650669637440260358170724658042594645436458513257496281654273889408012779038120302098315923035150976745818691259408193624863469412441908857068832838589513250933469274067432746943333800975895951950482014381814451490741271913682279700279686349851121897197043667528054756504902860374118884141149690647648853410053874341921763027885234262827496717617775763058958379258179836708989912001791961838177238676673343611879395605883378031944184097980356400493938193512085210457032864647119226723271771911981984497192461243177305055386776404050306865710808520326049189231110666831497231343681647728353399931381496580213124405237373858533469221013428123945770997594792617883850703568034039447408222875573747687420402285384044628855977592955200620121752722928631678176142350464603766854466342264286144303491226394101250811043344751233358160881397053605605454780670554590037360846437047075973091600786539401408305177235480825058894979696561153318925094964524186102686100762086529694942719565846999551186047241214858661087460856646126901716192001349159770693801999883299029126562241638464321456485943148624012503254871930203005154074294384376542288949622549377719525820533031205906998353652901525741939598870610052120904269834050842989549871189118547490916492511828723531660172982783463362578229938577735496513626043994804911696523792751460959249458719823497960212260245159359922416612397785202377418817934939983097975751233537257763578670322374964623111127948607743891167527894292446038988319959930240155059445977944688140801248369512943117856479357896040501520121639729730688190587365290954518239028837880765613583191144851299436788623810199961087813168704515061688376036208473709979454604414492097537958428832011373988587253711548327765281568815035784747202377499209745338364207866409993090300829279986242033721614610375267107920084513862685227913542721168964788668723090337300703942723172644367397726854713687238391866531865841735487613798048625535034192927081954921914410034226898810782292918185983471841958138165349950607145385465166436339165553091430346435959550205853475591408109396152727725824246539834957895556377531001005069104713814539100289037913173170930450194091772178955036101803440985467441656235105100704168682990158558253758145337863769173431818954791104566512694038491601050801191163395745311280201137278560697032412958195494830079639683543203748841206248422560359101362117471485093577321056763815109243229971285481511037015895497259857434876902976199403326089884526156563811581172239657081277008066676508039270021766489569114363549205218857854391626689301372258628142902208227865718151862559122426633282283667691672502890450623077448469541904334210556651222130414922160042124204231040381060252267278119555072268762647114190961895102105008196908858595059753991463782642315176415277038585659122732460014990033000238204482729574747370693086135280604993375419549025434470018962755678488474050992698234946659804337037356430348879355904685519005869367260348340990932484071543232029507755018413655305784545483430708091729898390593888629951213892485237071928331429041198171962370578513608997811531968572844348283033370785296709885544344539311154391942479346885759904625288233152602437132134721019710808683997074619364884101341317350263632252517813264796482018428351865072593638199443715430300119841624931193976753497756700448408424379281468744446313458990726190298549243718547037614029420020467050415893140222169497662236080565156244963970114114609843604140225594622849831061092235815014622688505172668225869724813685156528824432805575656697863420640513484774102434268806530394450837848965509228916086954987396122381810985440908161111011038255607303507481564992185468504128193325889577095404729132605141529191877460341799012349705085518582105870390607364903160384750642950312619745606817857096682635376381352471712681055702466345683527018467030293416167155311193419118703892220085770331949609582562668213046743714306855629162832489665169744709203648064388407537366188639087042940029418524583636380701192093576669523923625845456672240231090666526466593727245203059339728317396091838044869228346314402521668006148782868499172017081406436211905425921101658787204238099131288565860636800762522309675127412064901561937972960950843291520010256621917610497697767262722072824617843232174027759576186754664137918322575483426887134467792729741688237597807937843365887668646026312929480246062022684463785556373130549388512599240974596640416379341244392857482471582331465126236171158829822671619856776646428831007265615353886553994290394084051169105653107135056022167688169272352519726982999517885812134020212915841044909770953673856560727965211261126952122032578640479253643711307207881116866740219726037467960176893924726036897346565099504350649251518319559697927655307914004344852285824853855362147184957939800956255396237957401753448476356359208110351971039115029522461493080590923550742973091607584638389967629671332754409556269762273695609344510532778112028360386804356845255296214709019064773880961851031827296486839034905187813440540032393450021975182939876962544128645501306046574985478318308553455432717931414857046280016010844829572294656595761863408773306888579425045821720381852334457689857291183270344100523615428453767803085122869327184018031938489339728718451588007295872574696467500468510612273630794228921601695081749974655114448560854402430307494345599719251976583320867338283499109483792723519937262077508483511855529101079763631951067738918243130848251491604605351420018457266013966466418236768526956432085471072136124757919712027029024324918570622141373430470992348737660859142768966607373671798817012785422758878394215026871130975730219415432137208858096514709964348263371674740096168074669259594134197304366093487923209464997404202165534285752833385208124885098837919671881157012492790931852616972239679387362559104058780172106104594094725566004146163083993905377515395769073643055174575709635008092600019686448107646863852928237403206230712521581613790078719037973442625716426438622804370071228349116429273789780753083187676282589679494815583458118565249179577707137093872005240070884577482070061790397768367526362107183856265170932240996426168313964146420989476789604424832724538452334966328606582575461355158164523936562770178158988091874178824777773876447745665911865329044141307087922914718454393492231028737361030026802731669290301500624463210003548676796596865845303448157654213704334504106427485999031529369769064845148144564405447395928095050247510570057142053954269492437492067796975832422572093705582631701749672166193721523756873075320622919366287144788079545969764455612264503274773717438048378558552982469713065282180136527767819275986036367244658576339543759199488023034233726332332685742900585532330092634405082632758283318644689747613330712372921365091775763933373888116270036023895557665068712433648007259451710284116664160388991401027198357485005166095558364731620218898597231049420540748290665443344002986362791868107155017998315687927627755176496512394038758258163422550530955767504506040228761667700800009853508440013859557393969123017725793161114455257393223163950146607479373207783429952463196391503259773552400028248503026327429869381377576583069944298451794538545214175871222654489987957143603064985049100702917806763122250952519646510415051180343978442874722699959530544244911993774528090978186830644140403199944527038136803578847432604689620756768015895468024586324410065168623012402340719318203705997463577705485907523538415648232020286336238431407949063456768560090300354221492860516936628314551763781644551109177638622055950314735522956075969969193623170076076142756522030062960144775423573726989701534750635538816024542589540586194683447914830639329051119026674402044296932992559584196520859783535998820660176888577203771836266429533500752530627003329105561327120376268156508244273232866241554855512540326479077059160540266679549683040991643004953327349659012740829835160622122861042312844907489738149075791331704911740830738366373937493031542419394441352880933855730072593376700095126699053822039003554952820616727514849577417145177764086552559205183965744723805614876572388941283805672905800541618046695011514530759337720323626497065246725561804688415934361144359311533994637222193265987289681199286810170809908822205478659650128864994586851994205098053574713458971713759191543049642240902468959012765477384683789879375650992021147300389448817275650950273399260401971280308736186962459641835642724463675096145551317844573706482989121940206645679206658557510134558502055062929980639530340604743279806223630284018969791952794176214902316509545591370060098455950798733664494634030674368629134218440761293866594788566109120263478378868319602735316891878092488386608611216337368909728936780018928677622889052768535442630754351807376456514997759722871202178726015037151714716695042088114179427718756211259997125736158879859611869470171280613279891302336569670250461393694079842130966563843156526033513546172548254576322149764709049176567037598388700097586830832697512105967875551683055867813605400412980487648659249242848663894120742522912539358563381012535706600433539748555414804759241603726597851818136653162044225428520164039875922716843619286050142409299352916948133141754642490534957335593306185916389412116833714496854482831552817866438978373210256804311250633390012140517659346819931496373860316853956888979027039860313835682727625546463136662642663014739495125297456767272174504881389333435599786341402013793800453444451131778660850028721133349536123815304298177718771067730450563091068202163149954832122770454709845529943885171944736547689434650040639372652998650021740765787070923412347690620426458563362316629631972385677036502347481682308025427672513680597927294983349401583876508994114238993047820964040565338626680422379164119052523682276660708037782434240266339990571558406690846685291577439612608548449588032405959656808501895336751239021158596832879955430705854808034712727009133671869459610317572529147503629725565146410489919211147137205107885076114876792296418476199234776660600789596811201995821546562560295964048984377063985464032106823745480486290213001007058310025325070914630063260640348900557826039045965277333867967004117339987292886476170990559485561348981201329892834162096514471501562318300188105621844254100001294058593405244526091129309369663599496769146875030073384431384848598488280767702306731587579858510684065624610137471201151319761281752572442801197649853462563750232655211278554720281565946792322603095734772461854449658932552355335325685924322987842581025391422598976254735516549597485773168155791479908827071923473185343300107201615718471954083520494962831352742426398856605441445867653941135741187907047993047165729820961235124742984529784313700268298644425600195407445303940023480737247853338510232992705895414439344809055327868929866734336778806508503881749404809805048509827456663843111546063852135659296780836855996670768749306900653065350006445725654637025266767047338469833219179629469348855059952324735570636604803933571428189082915465080966518533469884349758656660625517126886046788516573370128185705867388876426311243735655834723971694755851275944625163305903845814786562809834544582774420964274738049025766139911715788308976788634996979626433089682419032104251535323552870537008223664984298995381240340615883339777570655207783700980720184464597171687041047460767840647843567140232044036974905524910735520814025099755010582646296504605346115621588967298211197093258551323670428563576994258515909203174442838217419351376599702673758956108878129404525569371953160721696701573382418462877265405177556371247357355391591445622303374369365553805388572422135568372083248437216968519932544834913885965577226930640208280033808824283938518169548306901072218436848373835403338124447118264544824140702489477714010059858662616984145866303773225313823266366242454392292857687511004648435117980624819855032866720838977194117067577865125735094547394430667872328134711780513758004336993765720889197977572911211764509716346475322627053882465434498843877979705304290938546259257640973409631444596181171900049376766640345960020336709533299733316211599534355331903991442065505053176131994324578434452975876029097060438624900356052292042764701127524670589285436734004057206950088552864595335949658717458765337570388636110480580924199470916648469676403401010298658581152448344613941845464477052847086165585423118611448401870970105024819150038348549349606441782307176042314472223545879014707204314330510503425787124295873058357452057804188859131549479888137805408709959690450152424188848494727523538943148582201026811217277107491994170361321233394179382717038117080892613089489473659128589731780445184625170563873557434795256763324862613000463251439181479545943470046376047126802786040056689855137258213815716886107029077575416286924972296113326955770751472379325670062715406553278272803458064137405454290885057727811991840107664103692944172602874386924869175403034599161243810773845003812114805633164714151024835511698573827798976599983670922501231311508478458758093590883337193737432054340281426490798413888382134417014655404640541940311086621389530290867554283621054036533275210590391625527863240017572872249282386018010131258749541314568854669904803397255765841815656627988069037330609621490116699526925650231557568856408796365019015146788179447309243053602356255824216131168849031891186431092710449673597165365173367246181422750750825754039395516784739431804185569157766431311373650279903535539508622819780590814596988894174727294874350662341917291490182158178536617416207192171637271861317273212015684085020349786558252347538131950930934399813778278238038788104322463093424473363956029476720602079046728223081498074270517216148325719275391498892396656584647980259663204234125544608973666466422881464126280368373646396379749123543377496550550360165109044225606022424102930639554393249281817623573403253335447277282166002577965053981912104565773901239456109601514560962718105213468639550628358028368493905707947635036365206937734903515162299430847025410203161517297837545434514324974996129960264562738316772108978975961600620501612847248015784883004228164607365890108633137303765467968900292303493739622255842570373899259360919949430416968059806170983053288244487920753534013314106924770129059263540128409593337721732309915516336121054352639970281252862068989463579158343217066506013683811329491682022047939572723794937349146225506346560854638451942272745687075194187418926589924803288974418822418902092492650609805369288308495193866194235015001004912200124143125135461340637510886224206557204803457726843679667532562786541518331763733132230365322498902169720424301309751985182063516583173632569648633568620935245676860529697306973510300627422379490124069548543611057413915721035222835657814189090164467802225166235400248063353501702100429648679241421265204765540650560717577666948777476658332988213173041453235571347941579719696238056805502257925743662161835503250078415011056549933872498757348035242702217105775437926519991069197018662992090494921323398674189133244159290199777794798031322047921753290175012803986142838017120925926522767296547809533163252492296190433776875199697134410296446141060395353637733848558030298055285428182429579296162621225412485660038571246433360933675930303910002648521757210321576266878707471948936294497684934933977153885542325669576483944059226327180515674296504806074057929036367897111291806148863682924717163094323027772904194801344423111243851588299357167917599895181364818133965782859567062276266955394089890950471137420246427926583043191192692913046723856866586903481353840608734895346596815355152136432980861963246825703709948497855726277461689332991352118527727706407530199116794737265327699218046658290233196442170299991740849881319401114865013474020714321032170170749000481301237835856329167433341553551096270026574182033793001647180229030315355153798274656740723090658963610991612914824091647589150766558125481831421397281628063275805601080342009572801248962680569355058552317300421182715948248531419474345269919153071631843966168454705860681461086844362149177923909824102474876407829809931983842182966444494423856242710632832556690952049249862942052466227922995756616986541551446353482805082574345037709935969101578480401415149325026246517407543772949015634487166467178310578556086790381030463686011929861002418942823716340652006500283227491508616524309310790540342411964381596366071565979133343523845997127322910129601506626635901066562809349739704399840510033332567533332394273076763621668724658401613192494715670771063289813268029115100991774338064995635008895581249629965487338351795079399423910266305296868611296487909806735054513927235689123219910176072244357344532553334280145036565892699332498188625227260878054699291099964216944153452099174657068755984688427894243460745279869576630034573171323080577780876817382985006086435026873188181651519351871671776913550840432521593885894689473594076540875702117481420713895385578295677571062933709199259356415407274948108072785857671437169655632256047931603850548491480056041460907938454303831546186681259847451882790893472783212685079010148883934798288846472413039470930831363797498632749104898417854126676474855666201970720622229544911059312637416480823336183232257816360977592105412568925532677090276616325689451602381640046075977097771615105693639606016954038596366985619830776705825366021649317181652117051836479379683002728084646719308120599318212320776921384666334443926431942671567176836960434471547601646572940100539884694103347539909795527248858908903190835843800990483215160512667258470459995081019313356751524813867523892495161542583615237379947490563404637995688115369377110830170295493995191174106304399788119676368363508697375193630816192467565797391343653342018832419933821238432349772944871728366606377926257179129797979774567298111286192755965044159369074816446059768163231955123411767378025241169800976576253800859968603978817642810899296113950767813107502523375134569785910516508139233111673475887060438660159081149604554005856115639166886294920962113882300170376024931754237365606526407009251175575919222931655199997513130597988075288676916188041389469254808938926610035448892901679191432414137495927273628906658695650525220869484932466332608330565078619681616067096440938139300026577277814884803304891061198888539559247861858655373336960899013138064135298910437708070921095562849759209877086921487919868161247181339220134529157388280700303674438860001645527377125118796250507848817378132949763478875597901985867091859676686902213983350632458325676699665024812641764874653779522151661671323589437039165934720658366932948506077308350341489352989609273965936403878290570887433835403040608894314273018566941794173877259887820301809702299346815006773838103319801216149219336816120884408018011945870606252874701572362704625910247065849871966911365806489316172871772769975947008360560768557040390638558183346114729221522497280718239334458848064585021030051441521235527539665828997995858817031485841869214915526051642662588926457407639484337413198780205117372917006521989200492468597061335661355532486794912584324108226345298577978060654953802092129671740272007405780797612167531578692178431104973375829896900078076610175457588741958109797704542879261939761430216755020083794776704684877502967392488415687545186150588444536817135844298629941364225409844405023052566756666643214824935579746807620060198429162548931478118529886859153835194463178671349591338715359247157580848641387108445013510268164469488866979312442078710694728977301641961703331311147332972957300696920058294087585038842821663306939736259477545988361095045026839047035790365030018837303721915478366985630402859100965219561645163402390010120306351405202922107777089155930786998527368298453894694707096348239942963667630019688226240713307680685749468985336230813310320692449293812265665387268263921558406799869432383273204153466020685395298941791758080310929308716399500953468528464440027923553680696472860951244210402781923822520282986218852423258429245974064471779436702283005445154292457943755021820314530982240386617997117102145747135128272541490914009284434096513413070347111070874003996568667289982429339966329825297552533292483117962353029039937812192006081296611867210326064296255912597245620029990622181903962429650456719909957880377484117672968047454658084312730831351081759504548092843372664805973015977100903403608570454027042491836678795033526781245256698025677094250730215820779287651100763399738743692480464213386269855194690020719071384553812467149153852971600628706038079811471487675950758439473588719490761017391999819490039387160907672077444556605546354457073316934830785293596990258321718056384932198466353533824761806345378680487007722132225137509587714611666781748663675449010458445157913418551835970563417457152547153259656834679259036461291890999476479199769761750268275426139462220661050734194438092338648387030321552300636363895245461288315077291019330951698352185392013043223681828634427870406280195090449350280679364814503625025911582231175722803780598576943725092571560184879178013813000457598157656753696286313518868850020727184932257155596070720230246371109247274346177276257945449728114929108038364616014228391484573354175229772417744815307651874896095452186736434763058782692791974027573387399867208244210768596910476586868067642210267862379182396800581406039239172767192644749077381689116121019027907231315892190424230363261844778045940500439505682890541968704001745968489947944253888401298726231614821291983357314286394752203049316412312134415753334129042872019921769169260707993750103352573298718456998460254547221120243167324675604430818458077080408215682887273031821380175507717804917626505999655470139274435747405513200064452047835242616413075009425676819971396868061832507146559889840506664242834250071353477075624800339745494689822383369170927453794346045789235478429079765915033474929137915362316545580320737242399869215925325632863200089985144741572779716812832164820172056788223333049963891287110328232963715880226691185345201136448840636085101524026249182920929289642224520772360516958757280981370722744203257675723085786608542044335817311295401976666449384787279480740275686013312173462298286094562674777743911323240284806147646121666191132196628395191668434006249000672607211002493966421400502417153645372269953293134492527371055316469973807369737496757654221864881533536846110663664671854015424940131709340161044016086808740823928105476275710398788680379982772551673575210019297214047272893940472899067230999675267329164157960679481943394710441830894914302832040026643824453910881579062563294022963535089287840928779095789164484037896417289135046278873071258908327126775097615719289793288460261442809418455261194735818600775736225383736319068089198012401007941085002024096782029961223878965749246928400748525958038103720377401258672884161127932118139271387667737730233508580754281147431311160508396736083146458746678622471784067095886338108652957517303865877023711327150220473971476106221837302700338787084015578679020092849688142957777677448428883397522508469567363442106740729746515864993516588769222212579594728869795157469757252713597842354704000063964171783328766975450474581396178698275141491788718642455442288099701934674345935449972315904232106421989113188992997819463526118864828900365363076624045406995090000150524418585680149036283358071838566695589298521738513017235251148468862580686705754607357160566111637777617499941292613352877267240301037515424380981738692984258569438795471085337061785844650900381692985736685501144472213229295313846601031706416714880020547843545386234705499571872669183824480861902939074605119978093024557781550488387111276357301418693014853441049352382671640839965256738700205599794397005770214212435778684936252672273067121611718222758487585161833118357459923678858932629566433426650753193544357375087659694982003630544866090523598359396295071632350659377131629796876022299856261869094456446947527655222752187716178786165708617725510201692357692114659023274103195795989560264940202067049800201791913298614910034320340829038004653560528932506884001687657719237127558836802914096489345096775545034324028576215119394421652154708353286457372495410925574732032698313230187109792564711432474854014483597591733096027830523307912815403014917696403025848344551524213540123052674986613442638692091726648451237164021269229164048101783489220497450290875105111680529085207576711175041039758333691482925494472717017493666508633228453095367693866846700158975317614307145324869335676123405048456092370174820051429186160308576667233876333928610863032106010185546893404271963850817810675140665077830358200250130177952913400208490364259692222406939967920833554495437088713571747072002222195224234216728387210399148173340391835227840260488374217533259412622896323585541757049411666556137866827661241141705109764656226912215730881997807317607415096348249353007931206449353791526570815649468932578077817300435134374884113833360246576676783250392329800197797751930731354707284234549489401777117726610685921336544620141061093327417420836788318926057817929538990612790473322059713773386168131665766959339891044338277041235866672087661642503583839935346001463646484326373019615392247666653067693110941461696528293395981918195357897298797936448007246490399334366059793394618031753183571698422483760180581582666081513318918016020287679835543725275549637418250591951813804232497184741425859346068743012353098364948729510718748145245009694224636301270955961390128467008418146763686607027932594910640754033089627177459390570748466358456137273226320006772697176104255349316351859765610275688946594120914404815108952447952645821381723728067546334047838213718332979224881272672769468264154970385548369864888118576231178912162931190182282067618391137830865584771308579913004509408867940882556454714200061610146262654009847715984029976716727961158095947282100018704100032368307306177733255898800236582114038637806393547015480461317607112545072456966211302943866039789614839385278253567439971430118926968627753887371062839869396887243449743974966800212665498924396601906109409946839638112806289667031123427925886442498368628547876019492093058748225588635854918882416503001288128029439377790061394180541322428183269285724429809716614164774028912415038519548348423740748622625087750619826909441505614458480225677624446342331456193259132107025503980437589289379876284626809557871093458301094918295955908965651373274151080107019558678862051561223789538932265864219695827949850341965317523364106999057627769243127792406179674115328182466555638816827030412459386189541165541056687757957227105654685632212851174881478465302976670957881208121188480401283017007750641067411912897608806670473777780239912322680328165944522026376631256947604226700572081076957824457769611519248392136964390840097827272090580560513095498394213263136558563667184478908734159445366290035272930571106959281656446340118131088578476881495907854349904064391265636776666014126544572577034328179213741609949590092090646213762809532307860415722217041531664522922772954356036108542070336580743349001488879168208943457179011194646593967026090624745782525820067129345652643489146165482882223657079937854406099704597507684702403519583820378406269278623398527150090459114937322148551798267148898219075893956504873768115617888959556096927603367969279105522692410327631548934347818655139977812757969405065874739132228415360633311774969511597841230354296868593600017580016902585597111782483617280232374519531441558775097454606488319983896227684645532668008530784910211277513694439050118178322382064194116956519783046311435661660510418987337259907932971704645651888703491041254943928692631288088477367127625134812746630255552165368393491027225785441424845082307941076253892416684612313894584200496965617674809647625458365746320741918487384082754524510505443650812187098651268970872553884017962121684384600552119410344435777422556521212978953504389231276303453637937334981469740390811761464891884921837959668172499378899930408953753940072688244654522642418050599961480897548837355438564287539837980571408873182403698220500478589068857551031571326450403097617827119216140901874373393004562849631030199198200054587769177270023821547924110895078550596569787447141953389964068723028259150231513677215886151630361796198133392086734113941519363771373095873657468756058387966490507259424765040037726093879054960213273955497170928808781153241503866417343942505056275627063155722799725689471186669104898694299974468984525941242632513468862231814825789635321671254140533922533125174038435396201442053120717264983116250339704697091712413562149476305020976135528142244690188923993194512856637374338354923097240558541225410652577848534305943728038393951821831857030801134490181165535263143882561293369829999530739705640379268981170747701965649146125615476942176516367237592678845507550943651377101063062550487215607610020688990114585496346966431211767956362292284063753227449755083915636565814415836843926547295727116000435905148629573128648907700075121077035384868140295867749558933031588194319350581475944509237055638778267950676483096594603547071663873399459186506503999536656528631661466305102725138883722929495438175925345053258255393549596770338788804446639014328486203950181006822384717702137899906125431407459220249716888513898404685772634689744620758373979641333354926662148387249132792185505194026168156716846736398217769122114469600358683973052742329053155450577745918946051807824445532600342269604524950307294219143618557155217899587433219326373307759111800350612239543738587735699056082244664708744496066634644627627436925913347559519697872033500843724092822461738707524430024675434938904575842943176399169687102772341319855461698756136959414844791025186110243754960511252220051444649568855845362333713551020603307976982273865908999879581119579763433584415600848434056457906237658358627685830286408846001983309918045452757758421349591632039549470253993132726977692646681207569042297497221869743199494319925071342015682788593183529179971805440540769477327510769433610902761743871380158217421137041849806555611515029349353049067923484257739771421293871745348883973300203521133251780246617860785477860719458015005322382235819381537424555104346077101029821254208807982264861099119049192214961072657798063612036590413165008753729467550463277739372277152102803493454543037389434355529635230455740248291167380202324457098120257044038461701061907330173139686187125586688277009425766696171204292579526188076072880226557205788431589126856672511068059797436379756870293505916229302694854385041063223992148742429674271846887305515586634909890996452242631728412272301046592400686647392327005367003508984784839984031480536679978778653539611205567833512379960031381962280314576761962440683040918383505679440175664604163821904566807983989281195879519579997699533193937837720053257437782243055933526490131796920524061519391749570864858128268210807384005065775168124993523757738553465495486960700839473084454553136497677748835485424516224320121532895095728183320189249285243955674171150590614143247645272516387669618404796068902823123021489646513255408927544992230515268414859445824381398814843940435496587070635507000609261788735116234035241294964558832922788629192402820807061713522688581492856481439334735755823349474868481585875502761786605878093380393402706125457593670086633104383602808659482225630744161282984256786371275054852460394566192729804809775895541833084958220824195773621527917846666864751416906581861354533105308240151469683266440475708518963438383474588553659229523379175258910280383971276116872592922742695883964435422875396450276599125641284732119300100441517131913663770248205445913548870694644349504133995741882238255606123405916109562140339952419270938750733026716525394570937829865027571139729935227342117246003924103204243324542386825518788468258462684620625196413503746197430017143307338779705955682047986164011026613517801102959874358564638208163921642764837121090201530353464832729250157048307448467163810391778996119420340351211562777188588221124223113264897997059363957459052569361293573634350611069980411590894216039808037281440558900763708870409166761196359992915204422325187823888109748180878906001579063645645824351328652493803753708040671341615511829842767377821807116309908580792388023653180455195295581002556410408196352840539412042601194363087595618547239362546636998001989760859459512525983820716552213634368985710658094373471559288612026399586450679965077219555371220040736196468551937601905232314090058628618943019510697734182411154919464902225414320226408253990672431329459570793495566122145401727503188385677558994610576901609309604854631607607373741681004813465670784992841349597094431607045692910173823658202736082524324273765348029780802060123157972654336762818246281127127058640299486999797210878276635833685064415092888036968233965705741754412226478510405976830846520309077340280175308527245793474542263206541989028290201769396133401146977545056964254340372337298447035864444625323026169763979640384974039168549966957648268349397394698916389066885041467181684279896618156479051670415988777040139462781793372288792496965607900272534148387419597028965878898785475116836718953357454707921697161922573629460879945557286946102755821891540570677684458181122161302104481897436822012173829328224890532289157378653348087379985720572910031327211397160099086122303579349611657042009818222747736489919661345348288948264227010278878299946590871778219755633813775173288141704452444440817077101488966480967400548209404517266510153023836156133628420069435431462298212298492971445294542019775055195113984900410182915492212787289112294237357959687050690755805777941661533153698870446937878153879116229950139586781594976793071085965639976800081097557342200972678102772116681227625096483826453039256606136708935975363165079653167185222358992487270464779493821119261069975868109224994364005795859526853331915308718642476574844957612717884003574108898209927342427106804751986219584378562372399760424111879598241578449885785992391997804947518059204667666690961476123231607185028373455008726002043174884627458820385850998404828400603883825882700821852652745236874022021874003653532385842661467899804624668919016422123020583921657059363290124056406008483568209522955040564662849069151071328789565563849042558469832374939084483841674930165556883234216630795577065208042851861467774234928542326079529064760691386636129852814600061166048202772790029989153896876550256206990362418510889347110867318832240743493307032049852596862122616133848133173206980072539233043427991316149491912504482269113266639764998535708256558434949609737673807419209084929508979443429485112717824803516555644975286427164039428670485037260868653321328042429072326542265160828263507188342158349284528250513279940892106318563677824679536583278169964431245539405688168924341566431571866268163273321842105670942362862073632859784241592247847459869129856806182440872766676334909367799884693675405994372065340365339553554900065194511364013241503771324665290956909597744145050704303446830065587372888383001249031678637724631395794147404373407103603452650226448615370968519172555560007863455402941950574236309214200147419766682013645020071446614391815072260825064567672574839188112192186147138264912476629883191317757014925406700020569870635318892370966156907580572911299747181851789532598868652976019877666479096931661682740607651245861899525906812698291276845451813448704488632982803322339807552329841875640366343164647799570053942221228696707409309726658366278186206216578454638881064874816612399776178350487016880115464722174991293855145506136207718763861341050534289320263361322162717320794748145060772437100615021036196727575673258753983637621634906656890744249507340698107137974602520236460467730596722754609443299030782993899736655311272877609605908091954490102189067149702443667468644919927881727770054908189078526234477380750981281241414555841060825404835332704565752744078000721818409871070768544667130827554010142066084294994404056466599364120349226804782798323461812838995424016313399515827499275600965455488741180831788050835681369829506945117615108672628883420112425054730493065921784217163039492520856351997789035471990163058113408176051507891880015913088162569245171677666476325525135867969258345293070636831319458345601618437698565838750471041559136360504106164590154457294778915053085050827445295984830038582288751757919841490860180595335522979391572546859050395983336672483409995888748599057258769765858473148127819053313354198328539047805628480003491534346224534718562671531936101189508338700980185128062059843913591159920677897571628631603317221984259922814461768535478118647991799367735058582620356232459713052175852656109091778403399069325568893963473873081786740564520367424511237485796964076828897709935192662697149551137798978019460236020987940144676264241046813091178676426581371703407898686122858264595330263854495375154809563149157306639335635085617888165505218476617725146148105703833826262171064710789001658919069274936665566672934568901534332547431183373351616023646460662442659388237488312371949689445158571671093743848270345530178217206938712859429143928343577108199698191942492525828813587605052917249128066307333822540188175800384086366140930813572996811868368798610634670462427000184906170607850165458117185272932988942175760993754281762358634058835725752985322217622346923050170415752858418514022855171905453798091946000205944389694106267859013920994391429352474584616483530243553582999254068960647925772597303121796193429085359430380736480581477731039757368076150213159517496325021496857255692246329816438419914979518140995738907554976318124814900251341087907535016775477987129448241825857789611900607039973795141489095742505810318390644601228967151927491287687058554487003595044327768335436361551539458470733808443149228378608553543997193629296693933836225005434018689711508741512221802583296877591500469892854221336101743774662127205570001364688084655013927392289078704272713615196299681256369402937489836020788919190040494330078302151058451254068733355064954137163409829214715952944857727509822154557372678841882056578623552393203613705491140809303518324778604663997936373518681368846380223626493834235956600011409900844734881821990117750576355140245349195687571426827892427775506144109613334357820178055641924736197586947881995683346801390180961748755822974582868231479802508467134277189037115788823660171200840111287062050730823642613608095586974936477708553873926212380156286997337206511634545503534538804273297614814140480840434900235682999623005643705835303579321308108932467129284630837976656810301962483728526667229530470275242151341617549420126924179883547520253620444146407474807142877427925611089117221047244819656994929064296470317514182510096437466438312505774901438296845219150859100811343318741470323273595165146028643030747681622515070277900577955882557301748124664426269459008379062160768102625793697143596908915312371988066005050384552352484251805169086980643955444358264759913242914581074443466362314687840731476753935699323019690155376504857566865873139186203199499859613574073805977156514932858528205646352175943224839537889799038548444863902713474941220817986738300774734536644093699506298453740171137129232348545527104715992386718547723881575718701280429644803381654604312689307989452721894392126821626893206878380691029921880956170548855366617549847630716430364408857754034119678123344804703922781757981366235642183389284607102724976130649414600273324105668976367351734676641176173599416465270302081176114392254049272150528680337469853125551959057558638224868216529824896436527898326652653011444571363905371006262054682700973824913213430046859279207839885814686649917263315842801239826869655246244732886009191384204378840744823912848920744137953267041983741423185437248407451474640889089438283943555361031250435389574383694773787880285392833490034222482783578493446737212528514424068240227525378445573747909618385415868447563344422797648244095471256074382684652579567146684510238698214158889602920792201389662753137162401701065517213384313952424009979336907868635549357783992216369516123170429659980739741131115629722285889372249081332118651194267840865963813943651474063179976443206507948738987754301332836655969872465928670003382989019838104121387297358561409994983110569943720294252187030193610812431371051264070743804477448062249182740037036450190015418443641027750782372168595074161959786637466852532552157217849742393336864907588169000853554668460059747641538552157895703211001038088118217523170052329043241494032870079799240877259216678096588829629985633427404407259474967992918605324110605096193412144030242642331934275187243676728524202851540370583237523132201959065929847513964267114650640917676744236243276314590266023963135917965762514018684945727728983718413924883143904263676169894465342375457695433345699415075666468711561830614592340611771408848958090721843918856712420065024986151133734721606405708760890591001199645177342677021613590103326849493755384914711013994033189028227654886475959164979291712197237757071109139612496310591229927940278953600538475792745291192714541331571782905694858909227292489900168456873010819297449228764643672511367406550420035671428420016116401616816978898346899001230175649288837831201593206930951780107980751365106043173988160638068662652814895306488605524298609496029210954827127690628530057363035067764493193019108605405249283031045802904750788592269956657814699643723605821143966927131123509940037651919522904163297540283229732311363198638272978372322213134236416019240052602752864449485244233419752718090170718133545735495570537648689708508058039186775913432259024685980374425140631113975493712267221438445810371432182613867354433227675686190756460036266347862481337868972437053500384358262298906796806706119777510950364344949361115041783831730635123766439622422418844245971290936113333048559354838760088034714774692911124126753997763472926794085022508376016330960718744079920974473852868222221709977211534279729193888144398253563154881926214277519232439601616761327297385449216300885428209661276091172372775343422021976874050378738297208847894220096882746167934484560662385441169898663984352308861418912430713096336786956512425323056818285682482644984182475618843663595317307249831279889095108675176284898261263839410496105259981902969567781956787238170206116411445069559475308368287930414959646870122420070931774769528147096619842833216933407987358323698595397495684349649717791457329858273178407499792383826655066743005083897995203903998889509372956848489090366177456304182793333155053495682707685679802251695199931842970513661523749811177553095516069816774631463128600442431520657837472567595651198689830300295853386812765645080133133759582109517646259385338448491169316588988621574830559939497771075945037691799283919669366044648114367359737606006886530787976515102963730657875669892686533031488303512700393636289605312957545342941456123494146522184308391768915372638836693214767139545108874897889528987736925146006537596463340706408685170317772361585127484437196884526545042709413844931579443293363488860026764698873879343484174080668994602911300446885566112962032445366712447670356792824142266070250743867349713424871817655755869419126948388396677975087918537354220710859343935549480638134202640278223173750552329778797576243013034985457676107771929879638549626532976147672312769141506739175237378180068185435145881455198613470619660257713566085980114860070419030828124761209977425312581329126017014640341007441012620021728221541704235868529535056923466912058954854906405892497905762981113295391840629600075504480270882751278590366572032794664877104845694940791420739363342730902419960080494326050605714570018334853789023797714422883960856175212395253555708011064797012803628745813021820209830060384891049872714048293357147198730861431862554008567993276731346137868331883350285066375072318766351020769004330221696408376690590548558704207608899231046239504313596048461297165117861609641551640218245635086447196508609721733781902345839664883532673108374242273798036260381567113267941647263274168908286266853910168411190258684929540761026776633163007880018783862187221113293413301885344012008702626482599449178014878231778571084738452851100847503207910294745342673673726448148003186495106879144210967226158953468580371359892723733321107291997772939782135379962036132770774585548847014595725813071989140504394708368412788262382131232840233945675686670664916001724021639675507974436350110371385502289656842610524769171158398900722433295008877130396440253490806581868378099542511709163727979468974109894775031067520696313345967276410393623998047556443798838774270453402966920288334245837491876481724546082634651390537671634133406486740600482655635383112726747293997976212311199754597855434395255416716248918659287052426626023738038486034206562384885681679042355335164693559265411958421054470967543942999448326808320202118190017591885332229327175004623563690321935616745823424651781866495925822803257574065638433432717206613441620903131730191970467174690497002937576232524785943193520095160670602035459589646861858306709143856915246736178699766064288891487271459581092009052786096145253480462313150724669690572884149887880718853738976956708828228402618953646049288588831142110369980683668139801000524655807200047007055300470035658801339464678416499616160519245430844627055777504023604489422725419804973137363373037404808830866795357031280022895044640457793293242452550900743883556364354992889221403253782251632875007548265473706634747828244372888223303136203320799157701403350053439101063201081872007243190793116500528787512533577067673727753675765470132004961587825521590170999028705691764687417145422543697973600699530500521891407077743060696633904335422031758550389188698138867795726496810128538231517906917494450461439957189639528592071851687504407720537231704370794666249175082903419485925928670265183986841095429158937056688652431125893303087283120403467747437911004597183938927867914799877958389344218950468616264256686892067177732168952811678020845423270450370363349932004095776637196041513437442422635246963550101418141313225051750444592549341263077139496102747781557004632632956879373011271767410833457735861083084013583757530636289796057966220437308055165272121303716662889493777403732899599889793508899118183783865036068592687379198274145720186511447846291920574652789220672392183577984922132552418070308448145321860067939681650593544427935493994782144870094011101791769810372153622394897906110149368930164108726078949604363488269535795151851207244659285781107557958346474287472387579360238591485148170833871565065600690923384376471981359081656888216165134655136375146923701762284782652756757941251798745681532502644363220843793067591049005734452716102864419529380842319093096278106743621061088374964326055882408418261375157040829210033357638276775956098593051746918482863866965372715183173756854303715249354491690043641778988997841445133803987882479296111847733917441711011278615364099951978163644231003485147062326321165847451418025812877776044314440441130491300743351171416496623450262935851019259649455891848471583898057378080206452355019288692907229766872856440237924878987567428420459452801609276059404595878014877761687473021147109199623525960862838314709380570181869721814295224428322090914338057929583844973755832193381963227143486131021729178252914027064094075795897841904942005089435242537141016160433221174667941026848276042922087096905831323783885263694552103581842112003731478802600846142512867124598915381534181968826290858536252678771278716112451020653112525793850892460871958921263497577615100742373313517986593066282253139970177580761197725246166787234985418307871196293014874236472771503016040401865958837721190009525730583091744728795053945998845570367837339209590265080587258396398542031053818457605209181760661452784114440824968740486903361433398356444251248910665716581158733368655345625485805168757201154003191094434947304641783418525849723523992497497703561481753534887048160858878097384700014181341316945156443170772860989694066267356641331684696460855879469969839048205458394417348816422886348335360377956289153435746212858935410811914327904202564624499340834670577373318960777907081642983884940226557067224891549337048414280262404879884150377764021046218768497943597556767788993472787787701145343101387449169424536562535171347683143854127044070231855402535302513107201536480857053414259985064370117641353721532263801648034883146706130685529718966629453914169892021163883364549911702236689751253575748816657351624924877449617201729873116714424689109426883581846877802649074967080230299576067160621600710613775304591935312195329272632454491431589965362588761827343558071066675993622561935624303631491189891353159931190960596627994503797519285058152232293823333948792292641418620220292168717754032276953179892022008842541636475067772107048390214238416803927318421756641060088245046653139757825006864433882535441815205689249505401730953701275901845916650431819398693376379319444651569088688522727412875445471230699048670461601323411476117978171401542884394982078971577962307642873542875559843449942293599257315897966921826354368888589545473549540370155827436544615223130899741081781364760274684899373800974346066635459769669419994203570273610669741147569935342875602945741772861842863177870710094750778651514915446094576607630520452743971018944984612795850152204912785840711942742494919612921580906272810273975810256662121886722524156206200727566496216015703140675152584644238968452287699487008911236127562325564616617861353257984105244321257576701746429180837488561686614552893770158065499263440856745721755611957147011444132606574561741640321867542011086179318642943626722884351960388031521721893738899498243767373882396428590011171132479512585823283770864005950671105456296476071615644803103883942963364247946731860163392963657220639555419056559428694664325646059763744348876858944683406020055088151960827792965969681700898127214744936449511533124443090973337482577499938536041895727958776764530236195408973494005819373842104221533743120435105530297167285883824328674527395300054609640468029508280844652418909626094797832906693049934940848154205506706620151530522711776880160320730875373597670138828587378722829827299384907872141314118805173314484607890999014793579363638081926130814206939912205613500509258151338906764654621198972826105850452075602879574092551609164855913026396842983128828540252974492306531391928539569692050787814325959750005613915590103908882884769570208983264311706560252371365916075488726167985797467279733216466493832078939613873152869780865649903508928115928512702685623808112472411392494102650319975016836039771296476210147654624464909434209403716365669376315144081643463121927903924000677524438833447821524776952975493853829627522356292149775183769158188025212016670930706924151989146173153662086786033233168347970225653207166577542774659253916144722809895009138159019403610315664173543044480029025881400184666229524583890085554578354633165738289150493331556294499885911081075559430403734635209308663451906299724691338724335960445231197648902675212555782639289196649888482937519665426489979364331495167896709812720134587959385499331874538743518147976321320310770895316963010096995738391136695945757785801935100968057861923932593722684060973100769799074150084964897901755785746394614387513808964343815267381939487930640631540258154003125516181070252489879156618917047477050853187819476745481765131506376009687342412872580728069817652941679302322841855796862608346940883869624664754371489592869162328159209394477021914792616678786849471041527879253216666055252125665211067396631253039165211777725561103302137266429633039324145731156889735347414889179554405265262571001841286329951791903017424700579906475831947839569641912395912893258153299411554587439322542225757850603827449293371812491657714966406565343013176028767917180213838641307433821267717407521980825048487045988830234250081405875795361355241927249761681254297940215394444229999426005470949385441378684549787533279130562166741674454779900789790320550242975893408690924565485143150000830815851068656310227053140247707561489047324349135844612326089239832795878885531206225672136793730514149059742537317298472906912511149556131182550412523555028210576078570965152028316765422618002674890283714819811864776222044928059618995619924855065820044253019327429731439648230616581768718748176591409172222421220281078360828309941402814799068930568492531373904364845609029465888196255575923310594892372796379588242345080530593962905063082078024183790644977791555864963950978159411865101756302410756189705067622290602759776982479855495405054740606306972239751855609324645594824661008348262299062090656024274520730140944449440395391873034781236270598618785005936691611584504578147227114973215787691308492947578518231016439138593366195384825702302124604669783121971269484866917273253135898655481590548380993315892558271748147861157551534931409263593542951454795733614176380505282708887561409714012529255642329204447862102200561426199654575061779094673158178494093409548277700646876190133391349228950892298123659519892365244290501363375536109524697784657605011003604345327618719116666902327147147860497555136611599982268899975564114007763508166342978948620406782306071466112775529318868456961242165471010961108422006433336056176970207535365476173482272199204898578515959485444748523575249142228639624895645406643731053133169298565875646011945841174514975399821169190964293255167906634727693981721621311242190353378781228137406589056619730014207219531085863461973833776010980189853786431288252117924441678953298796328351844823488917636668426052660670358243286277026447370611401657912006282094856774370161970452430254730630973990573909249425894132738884849741517704620096293061029851703850866340257187896159470896998293105401890963428364009293899713068681242646378503067715525450483845497169454781682237218872331777749244940608166266709629355578444349031378200998315830814850319021465867237565495250017692181587587572173516051209836929414022723025309942078659487929271740971929089094361635198770436032108313906143983856035312362365270990543629580964863959844451290309086089650346237763129189080894621553873745233065992487103979392988782942973065389840709771021108966494107987459875744998296812702650557551456157585394275582231900729296044924576885734124515954322907817144981077345081654416953858794876624527358459209673788190524412635515643657273866205981796385737667156900357081186506083594082358775972837481055934359698615539140682096263665663072387086580994118406180272236989803131888427106848640816768719075553732639045911519815569256364432274440375144633072371867785891582939361599322803130490509124166685037366269893005904731427167275770255387116387439075335226011101032224211241050296106145588845235652727820262933165030288307187435414050867487401975830186804696538276115703285134605874554192222241656392111111472922221495839183702714647742239719631884791570795451841758429485224837443250756285488294019093160206542931889352764502978685559976137454650767350171545654165408451667573209567995942205132231695659208868700746156405209416627207806081315656785558489047718624205914589375956869939171280157747708607629672168688713850018251858155630550257192244589735921252880490915533749211876917235619338203930207382139562796809329166872231326560723285875344938363759649079286584647242056983146729992367864372921799371389297361834950105291881784416979607799474443341982440078295993748215215941499805930614911688735131076140683701432704340932088720169255859449162032460529558968381066006953483910633598779533762190833397829474020251067224561656178071727783278392143651804119313030728982492052246612891789020825743273444022609637580806507411489516289068337975538966517857866610647821066681165482792842773149314117756918758183899819174214554844420564440131771937117311532297260029175850929102761241228731482198996453791376060638895120116050825959841506642681137012295114254223743528089764968239231413985509407311097863366816579579455771721192858266324766875762950850023009020859151274910689397747700850619624334432589454986328062605797210693466226411595574917333071970317460353666220237963992464363422273775397287039581202757471643558920660412976561436237483476154937136697827282568755715107138922639699863830525916234077600055318796819565263472861592710095513809155276460134070602462182356658042672628166083388868705928129787114101329371362241179214688688128748209674905778050924460086854501993634021249874540778944776427613620647293889775858825468127164380638657936448873263107688225238834829343606145602815645792985275730669505545414791917262795614677392940603631215998056478012082582350462118655226124013939463603046758931266723225314370095351032060706967767107897864680287679865898313008912305923762133043713973884491831105120067920803913119464067831467899168548232699706739170517193304079378788526676534303184418344171537443299670864336916696152352557044689396918313382298694443029686148860999119294489944855734439585263415712602399492896102816744821378231129782816801162596569774437636927850724610082425437057736350884219245427205364405064982710030664782796661486212815941966575201424237354588005200355029500897821538316320213311718790473999556685273067503622361085618992916247232063085305692653984274671112001910700191555756199925752157735652688360680823560040465778653269755242609829337227145447751484736464610560732719637274116015805476362673693052615847221150719143832795818214695513498518645479056608697000277662233509115547433353383097709821125645533354283438108039461260707002653509817201508178814491996936947214591770917061806419674916879354705649016975540204281824164097446815738051691315840266695391810154698270173142545973118688317322976888199868528630831280284825301247698791198269312865515749056504747490947176191392251815784037742063252320260928076538632010256273962108612367802129321098655168136551711695977702425092155708008006392962959448791696084099327264694264298438364046124865616396029875768500569814596240229673633596278498305261656709008792228870372279597553070337401042310238655801974447088137800109418464810173912752952944106209094051294223234496394148853480632486923689483131102467361043139960522687626612825584595893847915730099368523487453489452452520312017112210006765465838900745048595379577288100334391918854051475255942722978278890726769803213671640932442263184458780910311939228408737073910812606341838183680421505345127283430682081926241723771738840800214530910249064217611916538772661752822852388967697600232557719186535707400555860451013153891738753442398902374415238661248080843255859229346027968682449623632503772441908758212464368738107242483441830605425100068811070127020565385028715955954661706651098300875303043595053488843088817480506555050340918505833040617905248143671801670843545926845269849190922328518445233960155133642618308315860103048624693662187295131654462712933368477177155045861055259730970586626916790942455443171540104612381364694725187645542132272524272989162262306490485781572040733629040404611710221685605447899764092513004337417603499112470605863322726364731254143785778413921922289162272129164746968800895422921146284767715674519541311635473550527212318078554271445682309675890208413417684005035500937501386248582362799547318837046499073864602025302964244971539676708360889095310254812331125112153632443246927477865709538278635043283015518171480789440513883383740476149231826871504426831244102569113938376675230959414025524159063683648409836890264438568248586381810534638608751386426151213832914499758913184648913060589138500363002627668273671607294624228947843400770941191905908326750942429893437636755558210158971228330547591619757184709033770839393995950641136717826907132762946071891147050387825618263629994132167992843421617908983576204042981526088178212864057298571758332507321236354329852670703927360312677444290664133393290220335423959579759719690314922363268913448905478365288861860052695894835804861114639102825442667233649256881896869593286093188122255650868349346526198572317024576794234914110626404038149427680786103387508120005684011354445868200742522765698316128919712897657242180793596879463680453308179653151496364243226157473558433326892336998362202380230994764300926928495629045160198254894384563249572602445984739068034140035032998254342232298440933903194991661969015260272532793413512015440399886441849153169682340001299443985825314032195052746470982180385676194335535855266857939329274338572530621536515675272150442353660834594731645523062543768583679406933513189270673950449594962170809791298868391003284205839498537084844782017501154668496419567949695840623891934825686326622476848178941240964480904316560439813215880156130474201459415258180258556343521141671825797780009129489889421671940707202753800406736012663021015913372542871693187769679867510669161710430140964497958874291045244100409095512443696111565263046786248872137143509849400175941263615536891645281864005516352116114938497085602429347540095139651924662609401075697032339863991295880110295429339300392994861205792612739111529661053728610589755890053459353231683424073647238781646618453692360355190237476188223988081168373013295759314294094838914328594723307142467007273674456357793281652162982513222442882304440533294619728329276545703886062108717196220719367013001738104579996829428697386019215064763089175192186397420536962118715812226437247991071781777692416485088371188444980606394240588956228582498368344416014740981395030624816692577477194332500583915023152885010936302532621785429045183999380219958195366978108350354826698510812096908257551062433941286104014673688311220736395760857266455399105865114252446968376970667578618656542906384873090713360742279740642749601286459169260013039499071375837351008354690695268007752117287353412314932908360952516464874253220443911710633910501945061880865421718539538776475650643167367211768482954072928108233427078259984331190263852171977311256187390580685326841382746222292873104933872941536870101075622978367826193444264230122588386308469116416416699460371847726747574470053997119762338443486189629211304530188153886144751126464382737985095460018400501464372961673418900501742982670423798131313310114916604504938705779085471659860409491965899986308356628456565417872922631679184108860179199492917980182032569714023327709529147220178093700495172441207028871848705552206176134426961985091851605527307651301602318732067131643614243584298710802367395045778140008684896321694453410949730663951057993486352753068129070913628039077253380039943673632749536773932843705678391088029121039210616713508758910684301096187121262265206405490123711198083870160634573159083374299480628803546977117163318914812273417063976241762802036907726867501451749497776885405346174262775888441735794103934372480823278307828837082746763757600617007793224798817575305915980755919535264337053876629903505956337263142725226989916403467111131787296391485064728030644809038445341024514998076919217081208679436682953856850772074164358502033591511000343291942002251761959000967133650161694684354643437636742658729932625590815090959443408599498800816745939213924173904561914822995256476128088221153662393696770898419217683189164691681295100277990859903565271211745218414610248400973929699036657513303978421654100490128157641736925828814046569852946420069082383121363815732704089003359842442777331112651124544470939243763046328733425825216100362153024019190064695347381032264433153362248651833717353927838194561214482106004314442787943416709843066117917750630276688455335469298636639316063710003065189536059739777196502351645996185585825423998028112257712525943440221758456291850609992465340057564838314113447027948073608418837404199011635684767974871033079065952402449896464151341906014089284479849755192892904348784259629096487336464190240392356888433787910897059179532078210704661474461574882014653027996126659016221914011749340560179667052053768278086951116204604406936779747803287936757446170462871517708084184265942321279809090598522577357598133309931367325328219489714344987526299424827885315983594640135335471483850119722736525897285483580095365931906035273370661157112978638686673056257437546743648369736992493915494833959444488726518147728007570450066011540065393475139921147791741945888556008493870730341933447373862169493553962718150380709428572066186777669953737100052407560353387531440429592391233068396626455996402933621560206860000456496113776315780349692625808795052008968425827001708524198771704684554242180542212770175620893187120680853366931396044051462237060898211874723743465557021405892408373272610460118073500556651263150251343471268349626916597441751481002350280627522957957164738207586370047809273121101735926102278313026086767423526847133173014732614631317132406375713395012581874122249219298545306518255959638665137840013057510846504029106780325755536884608224851870281806124087373891133910902103756335884315074368827521223717614079836678344313762534074430875894484963428394523750885090589092698283431421352012019139242245228159082070145087635250656408220897161483238772980239503579675005052937038289047355677748657841522531537309307690146122803331175461714993690625626487399465316108775128629498770357714328336870962816891322724015601423987855454502118887487065672589219430925281678292660407848718539993344104851819435387437593863863205803338454263331659235485957455359624073467789537014448056372010652599791893050449657270515153999097453108527959790620253101894324541033192391557319265112203085923274564943155446322983769195047214951604774185227001279183018596268732475057971912881188887296965457861639288277383247156375459818262112645169100044003223728531735557606261007282046518304379583112381349913524500799797306056556264444139262008138599467305026519694179330314610255025009723162510570066067703314801679842199348997082985009456960044703771105972003895476633953926147913894367774738903759113431788605220416699512142162316383974018127015552445340667548974616537074189823345197217380411642611507790767192891460152690362078931202223328869402187956178423619791664058383620180702151365632371052672377440995223133335905628008667979047061218767674285638110257187588376011147581424600064917436021074495256613322754925284954394335262627820270189352743547981897480082160779231589089395717398141303368990912163193935708544354646941439395837503544181144890257328354023728920915718993946016308369923011627923878095057201875900827175011811311534542075329786271781936852833636029241097935691508141803871050346319074762836239841573479479906738158435365130256317863902481282286273941362482562261610156040966763946744208773589581243814185192875095113553648868190644441594132492950183867356996497795095320796470193818104600366609260869324929156441707524139141191566416368451318038577403989763596125180677492573163888143516167378563429247127858537401884643534628971903489427884824399596487248922143666984260446942220231424993498714339586123482961936965338448781334405350976910923314060066591124199985567932959559043210596426802095459972224451285001601966555265529368110491397196283515308221181074593769329947215982349136036514263701877113441327318532642603751694023097757999363010090111776912284275859585706767100559493131678381075031079176533940205784752477320551751314921507207952010504704414357978164979384511924540939264043219518890414225796735750732065545016243950319083210470591845773176053828380479882618400819663031258836731719352279778710513467485443401487589082637432857910766959919076433631365303423858767177364495272453003418567367229034262974809470580180922625561374470809202520839164198774232746276918447274935902043974170055878325487807718506093334280220555853249442556047123053004359142490819290519593332930038399981568530762481559469348329054757016832280306892601514171761172391310788158831201887003017090101799700626940467963394002782607036328615077227444176877958106549150794174159400744041700905349345498614119472578852065713090878558645875060556125880354967303347538010385513201897430943617203251915911414387714238334862202825934556824948549549335941158173888236514081355784205711766379774780552191933168645102921178612541791242456871264695792842427904889628344134039339484081210226678092522357272619173526477189354043733104283583954028890796049123713979627237766849758527923344638289055313442565511414630964887586695130428320031493738303160482753757379525119923325170240662486652360513995994949311284459066316014212480866760365862134813315219676510661209542443014089713740165079254634015261554395796471149801978931707380227290711826044220559137194076345130854164188246464260773886895332836982214655240873257033412152993018750865913017109093823895750780850313488364829411467967526845670123250912179693914926500411880284890632003430341868197811750379647168406223135988402621745010484928767452349142870530108980068749586890339731448318538734114687221552824890276275288203786328107581544431008181163187322278951664134341753138022204838268197258336539005314367487719838744689017970712747903299678383205024642808348304477132395719815655966127713049238006235051103891106684722843895893360403622454591869467879581176045646978240106915008866011333474534652456482513595598397264652354112735669032448946593838236159475303073132862643313269425569603683471135312263765525940210079920722688589242485157483659679016354988723232652542613594562344222845477279246314657830238745396877568041404778968045643033824216585196680427837566028606206764782154560777248826748801886009487598755201670349087063684159605554694051980965642532718196545397139358931499151087989256213217995116206040163153077715393303132651188477700117761244041659020200699751748421047206497312340983984513731359038284782774541762507939706638779774787369753977861133240721300903285406684982811674634240200026550334889205859314366458198535197457476947799651259679301837470643015137869111325527496476196450778742660167186333301997928884895143409608914063651825078110833740957492674645972927613619960396029498459446520652112085995871602221948956650438165640246807319976013173562055170196463587048665166860816858483232720561789070316144395509771345145342462113282769144965719164947476308253338841266492135634461282955313085808497694920472109475453968961764008834879591073134443542638750495465571468863012547174713251987667069950232893836023021565578999562624012730331783035473727369652040442495004013728665303655283969995049566276090587253683078468438060180147881034628257796923251384823761857834959460405329097563828815411760946000109429174784329640546426241771739751801051507365987225307159051966319371263118645271493165477288344301017638014311796052760993309217739346301812063825484687665514343328068491438723099228840750866132009233501573461984055215070606108831345216273174193473319578818324018685748783827510002302972934316817810710272774654144016098360516331864287938364944891207046172639925723717833802278190567910067446303502142981260320095894512643302223413114871427412343844229982027472504900893305046099523990990742603968002486084132367704351202125266814132845277503748746802155589574205775331548674335158554014802566610198245578313612251749350846761004661064003092283930663223646329704498443831586789652317110073770456483893243406528886106378592757500448231633543550555195861221297510098395111135227582279561222098588049983382461440050782962045306599005230394292037436790956492928127804323212205192223950216776082359144066503468839499597763936659271719191701553610605850661690981981525945162453339225863476133216146358594577778439698769512055530633499508677137358863710126428352424362045373971702216440573400479289702166461785226325007460616762927297793162520929015073531105912903346734496455686069888111265915163630280824332581391356902772156109676500181099707989521627668297427344803560292984032534652760423917255386500802280685375202730376233082024509459377351802729597728624405173935091932651388907417873322591036303098082990241430141737992671402525818596072286594481691729482182612081975635913663351526860097974273702449293201326957415105441684092016899971144551814851370530628890066673056138048568380302167798352671134838372672415643645014700113474624247590155456265480867492430812662782498266416631119798149886848806257088810210374746878327610672403844728156689776947276958732816635321554218937481744376081037304119564543385863839609565004145392088851952468702985397810767374126850790135837130107454328925245799292233023233208617149266404070860387545511524944126827373705953027254403627848517746168923023360880323907782853077189048948885644705970402121218459479124184924803016638809538488302493924162458470731964610595739152898030620240753986782482423911548440454753032914204800190232425050377640256747366595647125383564027233102554155146173014030024182196953913188599044618429357591698907694794580951088319382933909478548533194550894072584551346772114901203149684880927392665945762192108608505007440376892750188224982197274478605803756977684199011648394644832330403160786124468674596781167958363391523776850575935086613459059955379339395543479948214628650981168610883630247836092360260085287121964000557829323247371574580507529427504929919145618105481982743206196408123616288955765136413700978626062437880449322123675915008887608827324021406382619936671162327608438804744506202652185715453033351162335858140230438213388164141469762814958852402175070345224879559877458284416383354652074919853644504616179154733079315219416831168537796086799025198839631396383553432305110866732651243659010936560892732692842708387204413790855580952679545696916717326165618089731725814879802519286096395746922710777129300638252643682564773312882657978097272003585220478230799489863962788816535392645556799652068912863512588685961341828620101588153292406864041160969273580578405517257856333724597197783166348965881891672659878548129539785688446088315437114587320599893824969023450492461624025130188929109600786066800316450257006683300082092555081002627159382485860419791245998897789456621726388920788988368041398862617997542656951785363797956295508595631013408472445428042614879079929830263885840618759329855021792620439505106313759838167233579434450025201540675904223681573368757963612195956989732612004185235015087399344239517031048046793762406004515474002431158154972457583750683454122774544374631225857478088546008126888325833022294771714446348445298473046572194794533277971916471887530486067084211070130934800658582140510879752590631362819668153715428276938667927862393839000532085126005446229911506123280060242181439646380547175716547383900196552832086642865452729246195144679726702462363758196032530528398127276529674550640794699525104205501307616623987379386328258349395458088184774942379322814583771763229544186675911175710842198704414403656576191170079542326959425187322911698372227225720533536140103933051459691015181060119763906481667943231609001891977327144068924637386619440268224617063285272563039398092096510443087210496204221559737909651429649210038703551875521955568318642839297309244916647262428949817813042796236760224255452312938311664163421749117440175782021248074675336166574235404387382464010091697386026928051375523263690572761745398265076167892800036155032111408795841562470870244814019700038414418330725098984391234601728761979325935405835766408394428765683333487436402013537132811896794513825148177002025283156390131501910563782268140273187598898987976287997562993378020296632614867289268353057396173970570883563665764430479093798478159582633699119362182960445321424683069992664479463169567105179528929304839933063656440181879313668546695677706961306665526109318898987741709959209479259576174450269923279607308130055190706766593788221502134539432735940298024407514100185056730819823150150194368123621896307480777071767398342571460575995875887014092848533651908962185509616566479122745656597341671387283630447365200557282469570036293580709414167702558260824913210689616964215678003827319375744152595803958071159649470524613393016050744353994864990028143765786181448862218906014401928439869470598875432569289972436364312798923764775779856163189740685138941343699778810339271387457653497372310551690722157740606595982397172601753982760362332134004698764251617826672327722457967407081588515877734867810642472002101461969831708576589910955737366519444496903996857655895661586967035776178430060509323203708986499904677217867648540136107678547925260273697284412356662158283486866972557818614779749465270248966906245088837340238280299507785729169662201646776948105633390839521910822112528327563383896631433621938066811287273918375097656825371340632887213873462951966303316930554260001515217036258148463118081160127986021668978680352634680308340657326811635346566891757080052103596602642590627498939749543323154256971997693538662307642646756969758321909900449162222705215268924363041566140341215502553501441649736705085427954938664756129238173458567417869244752133687444312455291811512747221542542796813410739767310125887209333206417906561942499192962901312321189775082766062646368725960531705609535957920839633804877049348494187654146509821375954193649994353782142482978086385224487039052115558423554779102723477097455236860583804067056477874704248533996341456230167962745742074601466121115350092236304077637758083705588706754616433645765850561105994617043452351172950532378299633228846135656985484797950046791240951092284064827109205663165388936637821589957565889020056151311851526585078473947278281463451009814925759154477937218519013215861292683611358725481982144914504180038123339669827236289610605203683549581725122075047738878670349303839010088620577941457841207412735902224554492034988133496466628088021566713636487595695462624687514898868318227528672798771610262692070209129396082707192241838045746497542546450343770096503392861942150627055235731217104592063687614340247132368075975435383421445624745937958472637188686329880696107593750840973621521222363452154854201683990722504625688027357837817893630931005184545898868869878953763331501471569894427359181451727397244173396094165129138658177056184231031970923561665431369339868757782882293377019927980627868426562764817951934427955513470346723352305068250340636497943130087773968001207426812805395986449977632875003152105046066556818558086294045751917074144183169164237954645332919465579360076998751527317062270532166624355051661386541702534322933627290427674196053710074256689130768562430136447353223497193970481328495863501241295760122899754324513140081738536674832348539943243054697483805109447235386185777885749299772031866624424417614240664285684327481049549769209746212501947143729769574410057605678805642106561961502717890977491537361282897194580374598355164797596802871398334862744967328424301135273017769458314825803119991433237398685248641026427394988042656951265282025860226983615807963764273561975862053596988590309438851908114893333596773172946994319262038429664030128356404138757209519785346972295256958485041353260559675967099801593722179091960673703066843911945514586662428918312570872598664865162212506661951466172491316750626033110365877625676846611503153632674919465834461153861036822895997064323351954397842321494077051412840198619009077722303236730726026307169745268456067741253269303944124522308953381069791779205041852410509531147039843175831003888227445398873768778601711541354400638515554979617966692519878173515901782447862931360229905862445368816628032683950603888419608593880936765403163762439553188191421526964029785287651043067859999776676456440758203334111808855930264655759814859026882389674896504554333505611638351633335728630569019019522079908029331582089928124592779140118883812750149036177548167109980381892746769725020800808651324631825428875665542073284763489723437617018479399608836951555994921796458621298733989065117555938095284962887910469450478053983210256834992053802730459204992387250780729977864409975561616388930272645922720978256131362344384103156481056953449016592251548483426984642427294341230511689583984813536499974865433037407330119872466556992754078647680343153776328414735837601377897490500950494915523076953758309351376798897187536999932916875814430692818557371297541899299302038618148623036286889669642889530264928162357308289805559859076636586990448636466166629460618165550046045534746215723865914555327443330841658127321040055369706200314874751154046084207281036157789216406952313775221970473544263461301095081628706812823890638500043050943588638566470331662117439338801046447722485638782283492442270458145299926973507998536233470358681577465181894783326007372306612720888303880290865797060039280094380011600063529478510608322930462726235037220432645257180287582729426438420188388366938066811606344613993519154320632084985680090673589744315248726147111436485612126863548658631783903524785302694273749436841286933348105041803026756260789805860438774555308126442627766694918884582387142785750844234505141689959183693964954914587490565867316050322292389852715384095546643281539034105654509675801132576320337971418124027839127947613634263641617012378873606391166284297095910497678338100908940183206878929624227429905012825866879571618405184004426213042300806498676612934977747986441753654584669933102622294807810504063451007539483926986434254668503915717777241609676647737059291854580402075650198247851381092518750099803182608979349197803164207572996026813250458076251805623821940098196814278528002184407308379665366833167568174151613814408126704889241625884516220804540498504467035841659341542625263100603796520444322675401852317451303605144574786887337343863366801455028036244360050208199775741579116781324471822487304530505019715888546392625927902103848301204744754541087595132036371033451571409307469617689943967934362726398238725574369127459499585041543498283616855904684352232378769161001466789886321823314102794279951268493578835349755147972620848822698083747088922159806962530548286399822037718271239278469429549779697814649069729085144925216003572145752664581171309664214055467956537652476096486055644133187081154510280680469637044189407059156694292197962862422269581374500772018253548094804006646066979076927479087696980548071161284559926815890633551704313111486739133120574183001030807739439018509756303112797082269009240563127720337965740540921022134257403337851170207460038287722755348847494188583694463341969602314957151744261111493602555508577573854087825947656738935044569291560010002494794671090813368329723131240442562629973070310833947540054762623003293689349311011819403389468312037966708035492215370576564353929635092355489761423534195143481866256081274571662500438291008957305915925813751745966277428529703329184321020376360076346607652373718148609741601652295331137371070343337310148558638729801472925298628087517419923652283258202432070179554165098051682944440625922238857794627180317854473593869109937485301881183717909585914736659226573443076129899916186586549367681045914645330576139771909871349093174058518541269291678830386418716621819919870950313295645822356209334028148689169289818493943394332738589979665205800847450656680917910123191618465682703068983924764552118986694161819407569877654619725015288869257533446011407464059898190765291537692567762802921748971532754922441144777195678607980372488529694536902336164090623538809429127174013840764718809055565728038187011630275592711831205048009431752273880193365727344037488259233335734682572456209758798463681681375885130906966639277316394330454212325187219876188436327240257231006648076784456995468265001203973346056431518185086918446426554422195749569783167059519547253939087135596957611920862895256013419331166800204596345006664591074392163238428696130695730210897701838889869340448527541822938495721286350730301785921498216695904458641516243355397501465439411662918958788286734851503089512767147281668212877952768808424974967180694807497500463110345285822730220829049058004329965475662270007927858253294421622415660872653779374147936716950283282506298161026746127318159800496084919360343961520788433066870092423990353186432548407345879938695355828042969461332885827239105662391926793365862730403006019107862032802922697628712755846856100814378527218864059987548617603983452417993190976033366117905067892252202019938726844115967471607772085691143804587544143926263644433022188225345170497764554091658256788613487268252312621126331112969397775971573785611034011906595473133444210380762149305797553905166998159367195053608062839185950007331681425863293346290153771649636368015505609316483652437471244600883982606833735346121196612841467947025745670413401265019351691579479252600531475357700641651160667363690505784143654786076201301181575059092253481789154234355606409795228893065943049645260902721766089338423339677909298418848026870479523839381345670824666500781395770291372257373929730208968595663382607089966049176050470152693680047187370860010280827135499797291621191912670111513700184687245124909144625490501886098745642658294690056370133122056415216821854261726011664661174527164740726534934962879702943192273689631386132885209811947074448507413340208647881668338124170389999777070075657115254368581324367550372367525049245430407350070248721550724930569962662516482394243515250156942421374038748768834183906006469402340372555153293347422471041281987702916027539127998726279665671777823761635391329090921427756276919983154280911633164484739079841316159632722856760938602140431944863076071330877321412707541027117815225143933535458725680373147177076121065622638875668017663882120063030778636466968679151966529546143257629418712706533728690485883670184863027317834455041985138830416025841607250131846746176950430384602865021425507975193974418446333024297845199637256308769073335114913414336413740795091851140843159154854643979801874948445833078640917200069535760858297405302734671237016937583107687944312447515067093755170615460266124310247035438882070748560636562278943295536639032127013876903034492101187223425069485351833895145013250764237075746824639907766495792630653933420394926208430997236892720368478262261895498699398913304777843513657015469407350019275381918471778155657973348060416991657475102822699808961624042670553928168557015923717426462806832879400652757445764890709132345707697619105823826974135332897608286967107262550638313816427524622544159650948495266500779485476489623044793046219826713971238811194794080529140759427181507790185252160514561591548996453431037183564183769398058115246989422061038604581935050319935128336593642784147245320544607961008967345035372462686911753273888761694616981539948941447605556582099761953455973324600372220256992327398627176938634872184466634366443627729563011526770665103900486972225436212797657283992630916039214056195729438674832872813449028866453718764799812771646095700721773274704766287343949840497478879053638530839441136618344151171745591871121796527979565744005532119582097531605947481883816924923811263632235699946251929007546763173338919977559730873817253962526063537228763545150817833574439348826516081663681784456999409068048795323122680840827651208894471728058242798465667361415014585794429433710746919491521638360270765533270776522128012569026962150744431872076715908649834264552413409843381741003073389205806241274902565976457710969656303765897454746892567762870853727627496812562728425059662467598387098567915950129721803922112274495419756899590324191456862829543054008918993813640501240146016277066940136319471773706702092160878622632634769919883539605609968433484291307047869491213788843521446717983049915883127887818353759751656270163677086744770275630469829037887829873658942629592699251169588165701907318712004763697893089572969528041869881599861872748884103492028757211406085802969769217339303832282496908458833945439542389631237326137063495578628057160497763377454711610179743285422656973378439111977530591750000280124029020685403909302231715220547572977636559597292700224224611757100016744879776017645821180248194437669876566225906091008923312152130995527002556429613821342049215720031601873555907867717666210205425435019987298777028123336488189189862419468416556333262222633129119129170999865364574692436269812882029684135041516534401220367415941990894697914094874678769937147685925302629313244071425663939022567150296398839338303182914628971397634506662493185420160159796815033191767807867968105345704217334996109663058787960155385162972065323229265165439794877012097262623478235285042697849583627372074449447063408494416937480893497641428909837827463395969852981866779888080431082107672283756237436701081024431116844540024924829656164079692593264848698923471789889971055727835010051705614819160991419216259487420354291068332540475001479270233069127489952756087134562661449973709420550391605844819318281869331610628190282378569811654750892785088787287797193552423662816863267636797170020852546379397900686969994788179676176737547211059054880725734889815360446210032811610966631987912852214956380642120675615009724949487081950897985540611859999819954076902863805862241478241559546274844153226292458556424681540222520757412922275155029398306561755886937227151621890090492953445964075329278371234475674006289939747256746000764427134927345071195948044056961168601249290183934632066777937840398104268565281510650297891575092318360195278734294305941367060027447144207552628243471046186201497593189858180803353905210449429490152926468779268071094721731080982119027644342205109929405370270074737006049841046695801331301592365302522987146493614510626881204558358290939898331615699964486524777789574165621359009900190286158472723071123566180037943709382005115457154732557999306188746517522248626410519821636751420701048488557030105412651812975130255255026277157511680485224991209904635252760324436152277260156108815216212022959139721725952182364006394043784581879327114073293100189264632318269358243366341345045695609942582653667089478108729882070439877197218853403507230873605050988820048133824676232303543804786210476084643156156194776967787455029444937913610600879711151629870306707462093662494243050397550266068092523714691599048021539232592976743402587506476221549660461352368616983406052837605862900388955027540767198500573235109689166844348742949163433394573073709641355437097310201424148993346469121592985465061801038557529784045289443245315886419258970484307808823547092565771680539154454864701365659694061301720908575885072594800244711367169967154599435069032141578643590894576943512809005556657605998581126331003487637777990962988485945999953934771142546623632663167420117931384417329598985498163653444161855181180674438408256156172663551077348986605767273903204000942518222806264789720860148275335403397116501515130247172344601150899661067048118884887943742671470400290613852535520572961473619840530125181338726829068020924571055122212558836643548615725575931140291263594875614730497361242284166751202537428473756464889735003483264791401587626334246201064869070377132875486949594173217494070067456138439678961811190068482456299343029834763121039963927097722206385924369739766064854876342948865160056306578914750032441087315592401877529957258550604147218135737924275947439716771114020071241100395624948267882115881758630946928427373103018910045947664775781685748046445201319942573723336022125416192675469717352167648525114034772160706052167633429942581516189740768524218655096811070299646094167220275551344239862980048652189665724143052468526227212591517771430666279674686903959053517980475131249658635564218907062050286549253020507748043160898055605899361054336872969239077238195823922193475905295171072192637654396426217468897730758592910914103006649878299777408734356391711679843138569958134765559028455760177299964382209835451262711431060004468727994352017963234060613103190017005045445068047483495816664802685473258878216637762600545237646237403587708351309636482353614586424158758682050571437291189140790023967674676704567723690920718714414447603530517749941805304991187206650696173956909706367760880766881635640010140704545790815459714488338973037697704809932668427553131070548056024579468428780583107703294157786502680177987448559304678551997695821489000423927237878016775697723504368589342947901040557238707680218619572723425127110414387961755266730886092007143415355089619456310623763748923196956652618394799372295646383683913590792068670724448967821506236844476711798277568486549112028222548878020728917640011450233191019206302638783239975452659695102241229759088348287346599528533470017434651989010529116082277731876611248659528389573182210927704129833543264095782764604900462111381911318413721720750219456647689362273886203959588390469744386965416964573358450642045016304905324853835583647336954552737439046567011903500554263187854614856027675994899201547368518585859551235129343929518247385812946446052856940271223840084621635020868184786255163439746765157622663787428055815793668182735881644089086631755096900868223688301334140103916084472668190774577657777761128075578292705010391986026782859458454897466929588706260367763115648370404436806912471871736643443152907456698775250098224220109509525677466027229801031836839642343223102713819540641886387411590280064580737436395923958368161381629121290781069953547261990570470059240791837352473614458834610333529498891433809849576625270220993953139008389403378391320202654452930990821604274707868109753849954009109263787247722618240135333485212399583556665531579541725618264794429309819260809566044538087812070780890830267673766442562667329389584469609295790851729021880775797517873094674612597447700248016636295884038444549404539677265044702438610394665255757952116910313441594358560222613949528498741979602046770747715204041159905695908540243856427012102740297667725194278566553137301430683152949783269730022062008484760668272591693798262197536566687992388028647888661303404953209300407337864443359740528845678671204043807529480763271567770107979215106046120691943595099002497802292304015011402093312901321056545051389715129218213652424803488236785126992940236328818142535094809191425739358685371205241473947573444778223327557935832664708798265419780161654173505223630599210443915422235599351928797793501107945477297543962279018837947759021250438665947377856740628225213938724788222109442661301175309240986360332719232648495698929789570996926637490802594609415035625237788169149417045520392760207058629637444971635680824775752661244003710409890394708992183652117742881428681192458529012985230697920687504286338030710955745838185916149405405339376261770474031489566872391686652468607137052459888366494863646802876408062360957909497108835801550747619988178326801875413021896994487017949601649462592915695451486414084877071587817422480771519819841716374404237440103746565253461188997827596492402778074942318040564500181662885391508820243985620164018295827177659395226826343563087405410123196628452616623927384357427339948936468861673471886063852514832359197966324065072295275816978454698140414327037622572788282576413941780995547872098378567130278101161523940028211267169044629008964445960534202951444580505634766807487206282036861211808910511037073846428545946698274423047161192766249342524997798588148015179374807291767860235886759709225470522183821180777702258962014343921609334581019222138933868593718756003696339511869839746061323808040479386046289497921150186381624300510086670546185633395634036983675622833347629532945286167813381204673440628749797389201220087813031585764688462713617756898053750619395445881851233540543954805262564652881610772637116884216151941764482930667128442414976088468383137271925560086186124777484796263564225949180639518877368922901320193979919530749123747155547981044729771988264735524297521836186897979660572943382323149106777608530637986362370034976822066458893266877524306515883119389380228813137039024892129275789984404609836444860229199635134604067225269419406445795401738252811515431094702741075178469069384142246468842252461124413042455457744298488492232737390235279984982000784904560023373655987017274531690468574081442560182307842594625769769569511022360581104544691933624544891594075792565481517688192258045053720491846533564589619375507379108313587679462490429970962988064007976949986588074701022847655063981534024639454161906576035041744875943770768035932711137055057115800377062737605736045105762777610080379066206086755079549965522671353934293411935396633585152348865472385494257934447913393790096048599615486233374927186418418385376185265304765613011083545903462324570009340508493054845317414504954491114516234446365355460840665630239676473501161646642871252672720229342663162952774023049810952267192570684802151317876626563561651767882517934777150781408347574245774080161309806135245055321218787889558767958019856125623844185588812332103479614102659638502993375841400026715647659421473835439674389786214314730161983436284665701778747671991879125395844907524501055007938608842090155372860354001100485824340091755016104151407675947657212456697687492017038659919899343254591073999625053181019649231566792253150059568717143516990744624911564191228164579692704956379169136331675765318337216285267821204345291039310556707851970838316513409681555876416427561896961103946479353001334052221764367432762281750888806643709804201298895793125925884942446379449575519871959385763679416244813734345601527847301649614274930191408516914338596790002059891854077213530985954891398317233585062652819558130085059244207977268666978334095513850648769456324707789283066360741328706341374574074090333990208018412226836615134618802521506219580139641290514723386522616427016018554145777985998724500643338756202502150375075436999502899518945447665523186773595008361234448911737153594481906269446044246509324527012155765070708940388375332025502577226088405989565309328690710140122157243162176201729649127555242654933719066364294906346705813599159227706171902905152548560590885615987316295070417634340203953164780271768566511529327986222581691027420465352599165661446157173746777118749406444421193497948856881268392494340876234467815370425761038645349907378697213240346403739302844996202184421880242712164925820522302302165315229370056289119252385926848996475016211698167947048828003039465484912494693158989079352606153736251566825260336811981158562381398018451768597693633147577453149756968771994596631650175821934600936675518568237659623537695050838425844497797642788316095021080099130243910547128716299982531714336495443100599814864453904036849387353336752228223205578809328522323785972801253565298405387026467990663670086221322518041000597754498809556802756904781449614851935369401620707214101518134149045108626896442520334936820903896225161973962276426911012487299513594570907618020069556848497148705526559564202002625625247364308146761325248766606010636355502919192663571889821096153731354398139282189131344111390770555455953498536274305786112657523366213613064138961845448008574813382523500263806365193160892844058361252130775525571618944265490134589063370048309241142197482456178213187190519041600236408953593929426057985317640474869749930105692963922169053345348764110265373532313939780952494368477736540123086790875823698857608266092106607030293783140435304879198847424451862765782973947544880699996138867514004112648156619023936036689032931271508075243964105014788094031353773689090515612611009338614912312054373674692088858111954598958314445444996479064639283726009601519889771718752302249222098244302932633125724334244497112360438750738979437845659507595000505594537037890495058760040912079774795137084880125343460943295684261657715436014523291690665721627987824573180873801203282612343723968324610809829609117804124182324469228145582139906209667343448732266480684190295852901116981468928399299119677892199150006802056736531380999256140837679397539806522498643550824709234385373375483316348832929802119061755821138379089923713805369705120786684981351535485589512786642055632822316922119733031912374328517991562811848126073474653384851207452499893984540653424342077412649869168779859357425427650125171761719993968261569130199768931155765948048774540846773241168393284153249482045190134170934474231906137225473389226285600570091303999872356687317373715347065031126047283344127032618255853885025708586140701351064121460724727977395863617875373704464118649067495791924260869354384775026274667797202815690194347479756790438856223185866299405482079837553821754312837089921956709515734658209815245307658744916707040371709226852663056140351079392836046648835980861763007964458429308024990215208731111212915558871327179712105749554350538273093667441185399589150878636657018697875580311121662768874874197761857745756386000922736772194587150246290207303068993950025704671631021349224983801696859035497219240624040043795799403156102530713129720789862485896840174700068306336543474015399680566353633664836254385527306848665563211022817616259995705134925987313631180641315899050247157058902303405618495256417421911353364913118398072106477560708790035870311423908942683778741127714511607980724654561993523135634817792946520148628029218295616091081057855859058050370082064516710136943381277108792297965928037545733336748736005881128609803175798361575650487199872302862711830083179120610478742529395532450036169801528294994914372172360227535287157454542259713859896081782586280734433314333526401151014822063107102381071493166424119768919965571092752583965250946082084106991270415587327460092158037818083670864389867202108729348091421774627265835441469677699768141680693563110431381167889694635688897435812301450882818980786543380738800098605081238060749514160002357230318627908135139198309156787030385293447898719660347660689002565656404610745816005864412134614306646792667108175763326095129531898792205681389855528707249293203535381579806283702744326364323933037370717486475558649683946017188582161664771671386185576320556368084913531309728527659102912291088311973220876334522317232523328020822380003074295278049145322430636752265770196701291629935715417044339536135423410220745313091579177408236875744382401008476621042641129511449838510321069687846036395352277773533278969908167989155284727374312437026241768215587137014710253935757665803381767689534029749808845519800162131886966278227248348236653982080785886939871087474052030148361876492124681024204461257204125187087175053203719215290252671352364435490647948918448899791585511262206012836632041532251239138544125132975327018473058239841257203384899449279845096870369509035707592951207321542286084608216573403156858185701879582535191067002191906021809338103449183898827563507217310313823219147782397281887728211341956043138798271048786049884346831805720489557954614560359272377446445767953187410614805709944369190000387348006741833423119850610086580177258664969034433193041480265342131757482750717439131791259776030988733601749989399861137055245989599363540668370953265769343022089159718706296941894031992560519818923993498045344797779662458250769333732029966135533209815840283289491799516488662892908396547744754310224254089039364058581449047162780168818488317621653811688488383457538263220679627511825490773571628079318831202843532464427491954059940613164621271619127536080099284054513473489174102432201353977302135159783312804487063831297650326932482659646104953007374887845242044614928722107280559040672731473999739484059564955309675995421606555265025716726622610446666417342967222564012876301120769191966749557203312555568259998407719407717170382052193671287644904795426731150599618477266592611756734842306869362100230035368225318044011249911302245800689241307103494277661237334360641598454984293960417971916459704910255423042069744480838554685965284679773528143366767723927648110510890224710432773120427408748715849586954206623342003723516075532194540417854791113848501983433987146266230710545840563340810651547000471310620878522420116817240773715727560682450861695772892714523488150188447443473510753402408728904181134651976906023202967207047222626313338320479137043789891303490558827838582983534346840441106208796392439025721643368089275823293570227578330982757507209518557626965936233224093006230789437020253679479104845561684954807114208112026971607022319465907440702754045933354979077553238241021739442829880333068000632180149294516560002797026369786951834083467772386646011013568687756344840790469827160520262112887569714817181585632545268408315179412178336383366162156461235729839654460548367877846564893002766696199574191820904417509434499535337922824018062178445792778867089914608226601220913707925055221192525411668805650623437201736722233124168070493135435650711233707017711018425905513942762053313732743708910894277884367215516394427935218197189378826555859453871658494296440130983481991940606781023104611736444958091096524684088866349239723467972215032828309031784988862538199278550083776874405177088924206658281909548181864069975189328199287546566402350430257474069470190257527123402106424507316300768607299110332080673615511853146352161630438370682989668961399779693320733353039265240253593629719893772743977388783737185175837136683449387019010052521276624074577055949346506567111024366615464456718806047373146735052513241947792604370997032732626964478640948244843150620117409002140259359285518122729502337229332974717873086012571046533819066061224694460149792673063785866638500326335280380510024350138917005148347652199372618850271976495271318160379076004369069119540518830047981896155292279029531894651197785909360083567418565055642339653129301568308853062577167084554953726779843918204589620614899647089792083133099114291958463356879242626524849157469658501705112505295509309198014024201276873723875374098325153412702047866298450426906527399426443765094778316629503334479944210743107798395042326726754059574730226378519302232451661423940287317265277280922627867785961373748312214070677050613055769666771060425439230405615927139635752685514758467553447527661394818492361350729023249636894899879079237301167175846023006130740148633820638010145084015247430447898983250479514445747964524645379421300757574817940743773139151151673564335184308128009282387732477918983870953997451296673404541900116895280086222166790101082416997509289678815827683983489949325135516705595622440877136789573132691189426894132431362325862688296624375746547512036635964564109113253038989996887403006736753950729335229066469809796980581912456817486297696349197816009356183912300038275336271114922836104890272779899696124764094756463444019466258781096098295822714239197145960257665992811987828146606705274865502599486476486470895432676527007552667700155633802131005284595733882380926692162781431962918735288388741967384798149842943743609019724867946979389368276486729387418722793752951078861969700301687824640942460336751655741951159105577447155865257400061699064724915922468823894212546122642049790045505420283038947643197098780883212562575263802723573980944738810760299400239186980451188421434688657100324012250140378683856348146411717806313561558867397457151846474726358832028958026285881931696651955432610976814193769013476669211372501616576626950624207863872761260036885843992735877106986826454171371229759206766919544753451646323024121571240333943485033990367397969674724554321577098337961673426066505114371342211962116395834340325237712469092020669753460796146312506363189446573660227785226388599651466064062936997971279635682683695654196117853037910519424670479660991063926434753132511775329803591873115064309910056025829068705389475039368421527045593272293908728252693807672107292381766148354753012035198759308375106240817078818319404718108993906320546968487212756699204880742139179792896939737089305830437532935216433417825143006980170987067085769193998418420983430569292584763753731262449651096139099596539138606361233974114968785791596418460453189478623772375461812889208663055452337984443625225547622664396338244707462911976538357440926161243799355666428961440014045901649653198791347844664372416541804669786040236635501507526307189035367028215833828948212010762952087758866094630444361185088898700496145378963204777565801602496382491110026078630858572158008539950675562862564302816904590009140677639640945745227862803431953412222187843818855604928591024522799822198540613431024710133976881498801799764817148949704689585790591106993879557468062019973480631723434596219142293836762438878932551868076388882629993824926884750312532042168576945024755902546498098754243520093687808102615833872270991738339488021249751369311852105495129702176085927818859448886061603480846850983956238962490146099978854998100915184350714056644279359888869014542298334845281763413409190739443825902289588508147383146545643592206081424840658789379173881144654923723373089406389400680528452218878804110171229493326716056833782230280403600340603075011832350629156449368781160867780494330763076779752825685015957792466563985924490000357071870772212981013560126597349056921076741390126545262804255356404231543514074077259861984401626011820772116869675877192493081441862301564051046905449407484213820145510423542341741562304007716075897289982750476347124229450467839224838581454341394535578161311440411098678959308178980094616700537824983584202612476130887860054218240872370959062893299829976889951771624884793177159172450230158737952186067976711612429403849127842526905045126911557488633809674345624372993517690660809540276617989109089159945062551432514264501591851510303441788368437575396743057095198549162907122829863116809323887095248560880710587264160582670355659741621124750765397397161628465671427595770586598329209231302761893447140743741670490164407234308640772655192678209392157683297051885615734952655261358180220159058084106000543115835501225719036514976441997160494414186468403190953503818966257247165593614183490361492999450876080757327855398220983104238381239040160245467895586860170361518318418566008570818852560218637670886784341580656498910782192124505079415255587594421784948350018375614017819447724979992358966497198007795510449231576555239647672542707561863141616228744737474545311254871286296549459497293201293175104756878686503223950048150560376893487853646869663178812908345737770668746577257959530122227626953179899708502552003771656284809857405780221732650177452919130433956912693374035509473210086866929169512126537381287931640961929838925641089623149130184802983131539987714035592360816095739925699393294118377155802789828523578838876013749946070164561544957660484316974937015031935642849141263549514551589619078276211233459609404805085681194816283662457738184823424309307172116074088914951288290039442235118643681926457232610086694107255352762935513101789992158366918936279629460189286669067276872776829808530358430209676412516755312593131150767735426210692180505582624640793690426389661582998063504667341790753668437095917001489183894200376381882174420429015013604551438416550686010843272656951546116188426410376227149362847700450363551827452038920679226079347157934584871838014784503355199796699180148489484019920948013016422092251552117682143255735329600515304847248658434802767098672668636442731796606107401022857206137061719221536075838550529157142208422454211089864036014940037269780086410285172660200653270353166539865330811584687269456509412930731651790706856299250710607192585596373767233339659241224243601998359834705026811985199050610008701244797930781919365807432329689243873009541697198286773776316760759145174520562106514476236082808302075700969132681579254512877357047297097620725572655673154848358157999577784648009950298258983084405274175988668568033555671577814374825959169584954526396511389105563006655199167659550383355521689893577075625397729467642320662801237475201702015116387825451577647000028082385800765636019524140878523462520552614255891134137021545890731266419941437515190729806985558148605352039628050835733705148988095473619185591340262193144726544517196184917447752805824152248068262027326613236364203010699703365107363564658918808507943324714080261821246707365776139173721499964075402971118835683232438339237088735373720106060264968274730951053089107938795505756096690516041905340271253846664692364699540557509037698798639910526087805169896469951811131039816755867395501140490176443726779406015289839219873114583018969519055472799012073383057573062814459491841646878103590983192354832361065136246574713444065565616813206491423856839760512446137321044923909601146133709473894271096817265107112416876502853375684915021740144751243928609581297133420502645676324857029398543986881920180412303263934044062306088151831410892947026772810411343219199643344741327905770657651159295133782308996848250665347539993747752940126247658590389266662611177305873290013236004479269320054989956507874492658831294588786321828369214700564286361433617037850198536290969393997363060430573999217245027031612148511709071587418442642725883817958786321883095626099715039944993548327978907879919966523385474246358287350362982753219308855643394345564673967730228929825386101497525315955302552825677002176111839331581314917826970658640553179915271259347646443455934927785393357841483062648548422710873099114817323431804219371668017626356792430166569549646440366344622583680914619195404310636511327139822282906529500562293861857678756374739408021977490680086710530224508229211926820165052176263635453178082088268759108193566055652865014503537509153270972021111114954140914323091457996863973221467873610324635343142953168896542961468299459310891066993882231363545876889127436030026692554364170832019661154469653785537637909324220214604038889969467919681769108395880479605986500988657150825195390899108157839459669069555691015997963149242511056704555239520598191951016735494860032774336197369333150122969856815147963496595091493116751156124986853333105388547033734251507123687835038113289091938298807954790322121984467748135695929289547995998924160935275181188462614901549750395737233638544824823867825675190118014751512919408546179584422593006793218194877114748014127453339246604330438931548243974736623281176419798755351104180596628031004626675058429195741705331822358318229021477449345860531057686272729807577995521920514571023607350563189465310719897560484916446986114120667460458242528140056807983266356227890762662541568280603590969818335887823075897311470891565583959840654667830865459880977245998061947248315533661935133914443635165068201105761372076464126323934505644752507824341312611518806406089602826315576190067821037481573453735835831530400767111515300374999665708202296368926770464276491801698097968503302667386644951512892007685852306682793923599724838798270044341261426274903975025762883279086217758961928915412805254718492729132967743153684879632989806291797603893425223000858947790266342197977046458765139207420879178846156277471186327355187895920450980023875209352651221381736174227101461727107651199080692645712047038287522491928268798159325398810779454983412433994398222736243056506473645299218217842968788882933122585915987865864885337440520494953931801101474981630190933480226805286464800009399973891010970407494995170435778634726003698032703169418232421987582035424075344147214713437960116983336705161062586301686643091372081343475352746265996474762841468744047505111470468270542793327798768940409918392070066052001238673582270861711231218660050053233931463676060897035173362699093065281649477714831962782400171734267792883047003258479568550523688262162573611039321433922498779391369137544350845864211518760471629747607820662576813275707454229756354153305824773219672339166464701013320658419051136944418825268443351138715919094438350952931489744574808310634384463994854267173691135009689272740137665927072977924205465947670639734191996294754129648203480227512467816330946897753379862604664845157080633900994401888729356574020268546279424123256589359682990581117205759013991443259047907434055185347429071968395380379451896360825386922337738005869496486733824256751082871498842606431798713173154938966642149582594225727310013089282090966189878689502713072822101994944962016672062057664768002301107013052818445919253334585941241333217398991258627978935989105120159674549269233465231311666847837153002169376382908981866862608204926023676495168046612761151507253613959168560884806407371052804061925097756819846657890671596802205350911172990054044461296544137249633148595680193895595757884853548752340528183325278677011731835973566907021675005913540747220380160176902364915779911713181611666224701184004073796482366546928637293522025486173057345517181652186243074394988377083140893319320218346236439557758665194600711425526059959805394858961931044765734780436774373687502549193087559467488540062082213626536481126700557842848056646023574429251791512659722296607113130433499505223760380099798782612148653385492134841744821121694567456115714234173733282667489190523219825617418109123769790136104672011804647506762452267343513747431853230021224574876472417933159990704163402770398823506389589852068356192099889602818401853656614879420836727281168078445856390467451553791661448497591274675889491840559602371072822786692001000568359735295305024834436814693133911981414414694751671735852115248956899022934777162718031742931533449943075329631250454991179978905646984904293483401156827041732243346828121082595491565911295082052741919785741751700453639095315604508678347102179967515009623476693722004509547324341460622197214086352862405184010293821738170312777191195544338447430696124136231177844368464804911321689049897508447857947974244584557440359321692444135048418663831036575676424022152611533201967434622423661463292329368314257801845670948587768229570512756586106696031361582916448954923724828427594642235182543481087155817624574691605128832525353435746419200504899073993346061246527218206311152980035090879452469666005453150141339107905102961669618983349638320748401795877733003466818798318344762562230538216926587853006598564625249300116291841088252281585708251844996258081132979223419463840701974919614388569588099686996371635134732526566724107973818408403194911257822858934230446705947988359977901495122069595740963150318051582072234003841675955406148870861197220976089374537307738366989935782974613828483743283663584573844089558251796671650430635251729079936811937025055924970725202071948130574995433822380544215055376920942897712065037108877543150708457749791568067202571042700614230636954573181738291793771495651121002718512052634156656318078521375526377496700244985133665138796173335810878160041965111688015214606093301980604709474296714994566324402095979057769190878589326052642191681613170039905199676369049654790376067707681407663459943329000986996499016233038665645018177359643879570336967283072818362630334604994237903396833575389226868418510115740984737710855215546299564038749224078436340679531397203245738279363828658509414518684812645718331936482965894334954207205843043881608760342038157742276993481171363751389895948582348937384668894971241336823761079323148646217385819051537987335217994414424171495759647461442977557833518372900331145646304024925164964986370759882070458766999697343940759042915899055627992768680386417321509113314907671614869846411076240764850454104641019715103967153491252156795935125138932461470843337543706520798881295711159861148964601645965595242091556789451892902527265698109320077157787345563841873071362584080819668093939887360256390244804540930979207526635874960027523807381943144905768136160943970941588962424203113616376629984405009521731240577596473922020038302995805298295552202908317285835424266606493913176006224776738550161053671142183830186972794464845565880226436335482133255884503207653939355043179129979261621626999249869348571191357590985670832228996334654737047421110774483584288496996352323268713403649821407157681716981236803434566027210536483888230389353348476668588519267808596941442698418678334231328467537650033215525983204238166162159052645003824905337536141689923256434997814259747050860157492911298770149004925578490186511771245528197225357133541015144234469768118052059579820966125259294967175428389034743281848816032101694930960984582900185362104748268067814196260598349099027722610629591863649306628570102385865628584604125694274447707023727298803129917732463161658418053544106585846734561312014315924642658647471282625168223147884344152483151715709617584317567624613844231119528608052508589048535463404695997235581894442057500802378136799150791406435049891789787187478055994057040412840487596183229400083969379463510510944475660168782801411246884889394124436133259877346930267270671587609608234384478102497948208877341997863449273857131227122919299631953779035212449208960309407822752414876909783454449195038511957407290673504690731395757234079477101352607946959328699355446217063387414053733998758165846692654283011384002051557923696233701972990915909464056352554901193115575954881477233939202286519827959601421349390386046217593626960748189959596306169634120293832360641949267329765310185895942948100922208621927687875571766270168331517660901962434599515153273410280252166733921562457208959994085346447357439765591940466955520730852212859870704831352586610774234976404644467200690286367842876894503084623299471130810720066167936759186339364261945533134434753095996187233708851452447345129499501214792064054938424995652738437477510274797804893509086888526574447517451798493331689356572834418170356822006059812143327610211591111710444110705160641812564706259199727523112608252626430615555027934313810972166078478792992762267231967934766728279689996416876661512824691844269980556422202165062057152985279662194131241929898128665761974955863371961317210441628226179488974920003437072435199650944429370871117916252960571313798401371883147397625384637262210974798983080084006087380847130547532023400421334679343789485215525678693461177941920888441536739309323840655542597971509298415471165535349232287348017371251264932954144799669934482855553689915053317492716836619076411679958960292329860034967694651335782306688946061639840545071839949792265830685397191080047731238539004797025638450701254300617020133297959548851137405664113829035688506200174640254390260088240578361366099243365112409095277248757204855031459126926890866440575618514594228078334686482423513011749308271054948001561091093667056324859800679528707915180238170891591662963148463370464024418751752800248591596793107434772524977333713719088878220873450777541267087641479967790392763202704136750108834698522212943918526459135504785512805012069301603390066559203240016895316808530668646033648912251409144464698628866655852706295729369850440094208505302109005916659728251058427379698312090840069715048005440565759396190923278535072565604691980640266922747115257324893067749476340240240513733841900794085075923399542294661093029124266496914103209316713762558307113118601945246672769583563198937009299434617528488371315351664387507454151354363494272050995051437802264568152467942990485437076633882556656522624831128445204390859989539904071353062615925912338360832517654757547518398025710521007630893721769800621487384955303084730253180226273067756923637997320125035420563619256535211593500777535693830791672265934748290943383719203726294168625121572686231207836308550265169782841278200010330666756048775849353896467200733539591935381764046807827074156017845815509610240117810727885703159465294748083554489286575030254883183888916952640592987628854668218494641404952314654041900994445097138970017715019716459866857351332989278240070182455792853480406782798882387464561730175115723859121880595527457018010947032515242028825477712460368769214804188010500947883022208697216626791255272647207809962403256038377530746313390525117058117473833407473827365528662786661767591241839698276004832402536503302825659019196446434440364563123384849287505999440096284795585152250080511034573100530482717958611767078735824874158332432371368673859205314786899597489983881285015449998864375991900625280860746966452894318548837303145312407627992840710246233629475544798033797022919124017786215819772170328916195890059504292805007243161810616324091155547310096903170889299909117031200800507433384092382131782040628224700287739735985461251742319571361500355992598206196747297167182376114534755068654709214728729797340133346751904608039227420515271350034635196965063941848104595850761258885262222988502812834135756230142214128072058136787226798337252998242011855236750211201506061933947915900379486357942997401140997221542068796841307451119008038149044541442744773173396261230977135351669016757351172432036456944593953102456124177936798358570209517968611306599347897019717042215635780159387999334846289950237975695880346629085875049572821102912555769897760173540706192438118092600030619318635604862736622942153596855408189803681163380409181371215420341564455265281621615992261233485113363284460154298476998745786155331539065895623397834546812484343366857474464377146785095239035032764909739389273629520696120730958141650550493908745314658948308576187604994077822900411723977199239771991592461752064866550749926100953640743190651076395708694597369664955395772183141983994661089513597762601287961034837261611302072424194158053037704057690894261799848671109472696057778083339227413350501527763897877693679482791588222699813615298449292041951979788059239425000778843151073241156278570307056945166245141797776325695449804025038974145738304526933608275875659625746958507541793994983697330946656297701693446913529955755186796210010573616441643740384963743068873353510391540959078974676240835157319622199963004832988192893843000307110087271909089623895205809877190058278492425615220120477392046733840371221387362009961638675371428273329137116982494675688779957704638339001163662723571206275658382578103765781877451468252939470075209282559460160942363221388965560561103444508749444698984394589895514394678584391947354240810754256404578875137371321514041615891186046676007000500095261029149633273912541483502881669383290563664686607557017804940046876961833519024086290081868285745219721651355350670809422824683586373037416944726891628517167125668590186871065698252875782112091016592267148320028860580966519096126640364059410279990969115203337915122646538066387522538143670729237272843437850641531789052647624444591493073430116549663854265190560456147374698993593577846386637858486558064595607665866497119150279503158813751712124374749670433397027430289635699662424608448394699960122437889140189684853221547229651704665216328001743074900993958778923094273672141743840533848226061140572744511473897593101354368448628035750025184980173349484879028821544398399615123750863468161934867736176852963940874818644522603320715701284021028832050064212234566171607350371985743264695752164145307919703388589989598227444230140961734808937230756313212182458592747328870445382074623198540308878651301705285575787198441949645274027814476254120142448102500511117467489263571391471732849625564402036120872664067009005083494971013642404848724946258669021753016999176949084634459606932925408348087127218293900950016664607278676117147443268865537965619347074101664993888681160477667186063322216475753433070974225271441204048749808079412205146061782428291175784641914215924608836461456761147754296800824882093224395107236430407876502808381431704227525386932026773556428580689904021319917915514077966332141656575761999629968710126870347205267906320865180404505815362483925585357507173957817445720452174389624105332797611711991751614614670120526652079555284271752635734848922594867005893142023984292494217087158608135185559053192974310301555953925725458025868781546278441655069096727030594331567862979583268131387206428968906118605920507137537051470828506368743292532645284974178051885822550695887278572812737958204569957438012907010569287087497941625548329281088918856579042472434671350817130958504630510394919833300417585008701687726601453642119317655425141048486882717520968383319853690563321991869026810960792548093281476742806198055727850131688184062783870646178128965603308212587557431820825113518615318145904944304237116738189703516182416442089443526937881542441957218442798917146451221870398728088521091155855975198364578955529379471505411642484974000612977602288600772240615896232931729399595533691285704122117379273145540201354655745627469700744493005404599354043809501515817842606206215351922938368572154794247305009939518961558524719676646642091829239525869995865918680640083725460171384148484433718387102169481740766643827362688244966525651848749441027289748388172439257094992766126212373724301764596886351692498921038288175127227116008472860328278255777639077813257948465468746071765779360961781028189752636168496444314942125889815656500173801500309509192310687031345577588088159302949878893836862102302790770621292980025371871551275423131604257696554409287481675420704942166234533690340329108729535687675571327834232487971920684425684293179705503648535192856163460344884258581566851777230634392638221225510281150084520139145305968606688958412920594276288702346779224188258493190619882474869209790888945135265349201648288597148912501558021916321374965475381909057715450779092474476740466834303778596112575869045230222186893362452832889204805253999018859193836687945133047099036182628021900229271000120911839228259077410770517923232735829032636724486932347493685291849648495449141971386403434069774683507998354068392832755747911652438129140068312747407924655321539670985424145728347340102026177243666247167344228712097448918862787817751025074618701073704765538688430386088997063767101961452374822421437727528435126810851989249726177525991425609594704648120985431992563727452735154999160812215274507222923167191872404457820443288942053216713870930608802624853272155988409726255443245897128207851030955619931810286121757955422313571194888412715855655453636082859913442119810388249841549663624947025720237144356090586049369855791188510565816731008602053036552264198441579515676396832097517891414443030745769604892240062658114881141693051325365909085709958093991024889451921908856058096017585343785531244624521419922409537980480151188937770652036562257093497564936929362340504498449528785614266862602315847679645923453142954102101880488017444963436686596850789864841595446719369945116618326073689302673415744472077741256502355589733981044689996003121345201516848182094172380317221486274492561754168648013328463557900317339775703464772023994464362443769096866908244441168014725181442564049279409459404101062741105713403061884732977696626528597773356032344027192179273638112573416990953127905450859546647606132059285276788271000298557616592212556952836672461521056048661050998906460702652472367131325867201925398026736522701776562435260243892449865273862521824439325969978730525537430818215444171427157881182819592452331764576497179099456134181827962955418133400478395719523371843198961762894081404788686424310141559191896051686813146953506613717257276061534439606348007222396805812159835704258110192216521834744834856441182193978928912874591101070631793332162292397694974850233278101097233764281355155653152364942659445311131202630617510147333142432372829914625536667012528528179595662576357750793215130847270739246510899767801159019068444511506907225350406653051027663859560655313054205087411197533996091392584669630259342817542068267540083038098497422529818966152777763848849977201911523898970051112189638678169392610460064669919431866493289338519843450625478079802810314903546033775817031804331289499966337849650409827714553251756487257030869973863841377629737911531083848128935674359936291286690443605278148632268236933473037773019584172979130630771509528480178746188552295412255181162270594825143155533905799393872111362930818103964204283958615828161605517464565547351519439077835047935562200090757091879659868821528526900512427246352429853834856774396706104003226855901222427383923960500318921333220596865392827617840575058751690299539585763726783648514895209868148617690946863023200271365437713321904575774484692664649548519621761604541688203940691303437020340786907506749235266545641306867052155657576373187773388549569557711455447537745687999364922166654630624059214951500376602064235685896207339991280543942804173323569817669350807297148398687744517116290929194228357094358734710545652622175574606126946398838704674884208026862624424348560354070629520265719180627256100915173641856895143194006501022219623581623440964200222499151166111782004674341279808334633287016347308900337711234390186265948022025731555208485465761948264763324454428100355290550395061286889125212072409554890642997656042193969183008574863314864682008585017244927214765655770416599007603178454029201654451757241113149557244687516878029282236405966930838024792617784246161870925858946603614693052662083788931213616211826042132382259290615887963548561374781679614599301799600183119922382310215447044365565854257140205639198874936541026088835712901350597493984271645063337248602373355325241276257848797409118888145558244452423938169045480145817919560052906204280964711767423319045711742956855928433060204857492766016681169276734897332713624036619211753497914096178410058056091110202409198873837619830286033511341277496858700462477662208389819515018304843040252686212471657913004309718993191005893391568907526671953412337552745668115606182952710995554796856233584972169093576303736789487126082182693590360092363275709813676356213456639732958750023234823043500463962492346767635345537351415805587083194733368397760627840537910711462504065323978948681832350438977525112125113187758876616895387102127012386332423103450615151648984088545386740962786690660781211054264832570839130111332175712236928142620624132492339727996586082968533806549724796207366753463213163789525144978987603090132292414049068006042582254909025902583017289835187757891836328629941798096616350027803577527496404644284193714976930087775733460703800149148733012142684959530293914275493532338858624655199515161195603079843046518058652150986221055014901652147463331730011074926472511090067644463724841550764627021993262625540889635772150936826629836051378694345452664918539816696240859135601431904973416515051414526326857503770792546862481848843807936590642579625304769814202103847914005905590738750428847257911924642496682915779342462047856900007391328102932235331735446029148176388826463318421995557043978254507845220624768984477925072410068008453919669821929437444680192603037513138226367160415912594030305478297163741765734204570360750621933319491939697142786528925417718459665026648890855627797446487034339770321531029908081091590572879241774928106275653504526691691002334960670650714758498416371048960481551132505130830050839718620504398626300395377903607747960754313122883012858756378777821311000702003037545584183544474084433293823235230138870209834160259078329073621536090544758016399726376477443111491788932221461160938359055213275565119187478357525139280214630223854901802465208231691874260066496588528163014061621445659189384504441575384629096967414373884525985059520310465995052684490481184017398923079851702829950948965108282039781460371316004756648321785571476509748607101721426039118603808370407845989396563609608543930544322041165090890766149520372036637171945283979106852285247818127827925773169427062298925416240550768564109313084806914565684731024081029157522567325462475037180350832531648197456406401504460972452860583261578615980869938702211933969386701387147967717181995734762271269740600172573625696682474345658262849551718157385835113504761089845564978756187569142271226317886439741803766435176180195865640687846021827072307211193801817661994194425670748579191059417377886410710902047274951196311247426010339095219348825471509283578214193745167462389222740749230053318327974555866462905726094614901956748448423514454238171556560332254484565019052069981861015277880165241622891611406266993480458020091913506274532400140039956455941978886286601442373977452182728589189494855701999388186964055295237123775085142884734700207515721141185397843135715622877891848238699650991739653529387118195440887636727501546195962892238529825582405224436153206970958975917604950945633959068764232543074842947298403180118076150122103642866267205069364334359961577588692910027982432576975917950995846006870634657099959095085077047868494302763138500952248825665287209881864609360290722855259052519414377988765832202527031616592380585764320218900564697806729403891225502838734229843697587940996361651743123372894605145440598913176989679971947031799406215072193497899741516971268211762151215178539845413227685692679147034996378316032135999749780277902726547848143546514181912391206042250074953695667634639389557212144982718187116066635363339090945420345173334404221085429785374792452605642438703677881428886731817572246844076490689573674669232350422029843248234249684678241409897630834180852037921465793425253152981597719747447436612295903434821013817338280576631118807047414664551760187148491673678159786907478997759278872445235701652574108963055276120083028700429899785068771549839827357904635144603755132180374931957257757784892252302469390883663413316717559142732445077825755028204266556679806297216114726154066592188878563540431338261793824266075676533465240574796057344979951149106889309021034910156231744711085921794898527631052763951902001435929702557360406073577956732362251113964631059736500752212618377480381324757273473190302299177007033341235918002884905848026276941943860841030355486641167183966205053822504831207259151116718642472278174151117638319576151713491085202438240545212840006207640769240079476490655375037646002724374739879605384309611678719569017795945130475722754660097492589294695090236316646359588534494308860953755836838227965929371892841529871372797637951160790474965133240247395962300241720758222493867257026142799472303079463818280228806148037966520595147833707398281556526394002817866361241539330224705819925530441600997422857409856025621548143160373788791150879513481303020399056794135311395479725038515156829550361383827647343588993954062197412232002495345857778352069519703985447779642347433440738826666452515185317544307809470761409358682170209503410216320702092227236343162764125070515706881881163714193496046106669226625410836870854077642161760628247517678233362248425769610958049527353171345003062769148277537082713442919126506541578264854493869829478990750809232432061117023801386302831520018211589710511978433139338887405071782305476544726033425038722791820020441109582792641126251123223808327442309814552602016154162382278411722097013639534649442081730990507680410935716152944918682113550857194183040885482099294867434522897966266787148000518794453729480373433805064906259173789894837862655150596566289815192942683299779268995199546421293154983648670307340706990678889756923834157515273117663070328055246645527444730731475576814668452744550248805109991488498855550964745022915986923868179409039386775582799665572962955516362737523367318714381990458775689638417267375154278724692893662552615285714133926502019140748570681941256225792725960284956248586535041362765745803120458213265622712555646360328327050833985096062503625184891284375264777276681381454553720434723747081672667845914959531925077621522578124866032545751015453734912084797157409946077678811119481274757897998140588751493354194955111200947872130293472453467360417567101756997274289569584847125498101118307409439178513725493300706841677771230601863175209321955306997920527534596293902739238976797116238730424514258877878505821212248098217787305402434630626728565366355875965982654047534222365755023301067034623188310660039106068431375368637678940477068595880790773752500299442801861257703568032456660010676510263051001424873421165731472824655544837185445121797953861862154642963329603093933710581880708189374617218330409953469057573702305859839436012538447009734468152686681136891763438702967615545251136258586805247215934405833335608843686347330690658075241928441638616546530497501243046401370275606589499977830857238808654839339259972297962732512609027214308823603816756905252640050135422250891364870810657594906807528733455753718065643627712283416958927522314361084393502276003726544395993860762026824300560790087801510603026769193158486978615137890734009936507491927067000484608258046292766758290176088994183979605336648677790675428192533085299286630854055509126848658680668698221512514671467392666101899707660557127058102916068354630130868698040515406234286036279871524616320443153753991209946276067804407570942855769749168524326837794799564067598007539811324056077294926365072697120086326874810123997423479534872273230667134544756024400451206964903564179704657990699825293008139712165955284375893525400490507206694915298743588420252437815438311665206186211818873353542592663955083753869869420929577256561657772129630408074006467813569836628358037674853399073112861235613868708262526418596481955812297489739616991232113774115718700899862403289592827387070874369530238019354615896210939554800217757473766756667995727220714950465120845260062757408038414759609229381520608034214163650177091389918054203422742067301326567920562321142121092218189174102813072312912024048048795201383843937668639700096900741571027374368238828269871777706323395996858118936234375576941322474578345977744265630073061272795346165651945213041066014119558852596329075930474809055605183071096559050160565052357914793781605863019970590656820946505063623992160920706697915613504175821364680106979605657565401824797598589437848913744916738885547510281370285565036390174648781799090727286686920951292001313959925627096540941797492447236290315057984561959696531248302850155973683758752716322365568767058591974640961191078372134921911636862385343228108099950645848069675430415194934818408878034052770191410177245558687054315500827160580976612366363490551527494212931710095874479525862478519741461511419626351218857320468865005672669794318651021369130354226023201668457258251016244933831903691997464469886968499883264595841294798212606518940724883431800329176870029132098218284203752666898036022315459378084616730370827365860762557735640165406449346562351721554795413301531879280027219388258785917729015910144746962592762904485805953979413757650444302381373944960908295659175807730356398149279742528742968545234643914590505884394984055215092467524714351936809710906964595754117793095064830916267121573361525699998317153013005451509643781843812691800763246911031507180004930726755438458943833061228625100818478633792396104508003587672308185835585385928005308818545707558645129828198275929701451584953371634509415852738572171813515186841470177211615883891570014851035817574658164377761141300882474440583043657221296339595373036536099642599373586930974199747562630121706924391214211498999637172626133468606355030874302191590954409320512643671972550461486206984480388276312484778432076013843329784107423057029813514697066450350027822037634114424570251243555109481312355642036367720046715686321507620471363194288098653810908014566197530220960896018663255345993081796938267769380536950391293836613280699991198812642306640163329452586593763685122839741121862326268140634517314255314180502977436231634344740192637713190313281333847439128936409752779185391499405709573913071828461608410522230580682817025597184188924139005490804137418611171768659832525005525381154913861325955742997296808655136326004508658915016179858954809176453192909783364680408604413041337141497209386266154990559736569502898463878015419618866490372777848562879773910988411056135633211120356084744672617802012589959356593324757949130027686376022404252026414954326433970955399776365494377689799752958286941420841705648493381506266903309081305759522910133660656464862816806988365819722114340556848129766793451416091609332793754471555865639617332148805576595605375277341232970422572706551994522570492203854990247843660774108538587827724615201759015370362457536043739543493938109292292315653120793618555996063989291852167606526399667078878030957062624965483665088929716697569832929306247478571971578671668055596021013588635243664999942794090085846283602349028013726408377212484106608040051996590050179613030657280616844658285049129856767381429764129777879754863811939596857316948201003473060240007345381820094824116354432172935697184547356146351485576519595504019148333651075203445652008735764239117412626160041779491979241640544192073777740748993926417495286130975838972791931927068526160089993090532789316986493706713220808514701477238818996293298708426526506315956292912965993592949256825540830618537404961517280852092910208023716609687132921156555539458768902450953576218096478353400997440886628783310856534179352031968787366161116667015513974527165777565132005516399228626885169203604516064833946287345859529208076367137626540204344327781327937440025255730146118896620304504813999189870801532347391094621650197578438358671289806670818373362625073384255174787170568081973362227001972759130241940404955519930984216095353263094303662728844753767296739798457669345792901789051190787357814622293863636314021188501820002615494321406112890866306851740523175887788957332997752272705486223720029561054157512833431396530756560100617301669206494843956202850849792134995922786059945048449540904408089929000911498570109197441021876991828210464404529323649783244844387711173896336976197991999181665087355760556525342716176360420108613263104782774530974002135801868340980561564453899430816574120019615516761782794015923420451422771049695997462032197846241962103684267372870561014998202051880587509096695552184185558361796164016092958847382723857038520800593605061029701295465025853247925162210423830397858953338268192589063297231377443533281346954149707193305115934166342336827887401690786112821357032045912730078901193517683454724668900631409140619129093408671013442938695698477436055328347141502821058970432525959204739187935133613335740368980543760017951330044376362753134986674151418366081956479974930839051980319481505061729295056875689714000197158961067967046435067385263911692228055984379013456827063135685743933052605482260437612462449346149396012178049680372657467234617205516286172253588832844061782891109536924462536856129574221857006576835737300578605628683121531732535049194609662740423429030480616153832195918520090718869086338522501751653520077568957165507602455864746596923156035037231887224954383759077038650701668751998408164903249647251932726559269268077413999102832209059424825883588236829647800841903340540155962017441557224046209088265157407833011515737861981704275499499117309509616387817894947056853251414525168880100345908633266640497862633969905707832802533037904298696306715354296165314216612594844064928718866140943863111402907805573516583602154443538650851100002218300162177108576343798149209993552446049498716916070612316135108014987633665593897321664493389995756597545398480693260318843702409792239631628449817508169024066405831500858383057984560834304622759387807999358958652186282444184930082091413145282321678202048472139989089303144383847619918583407210383822239871225967151929744571893673748767347547807280057052639253696488368098423052450092423014474552779307549340296201920177704169864722105058538074457280003857703892421512741965184064866693251370555766079478535006819100796930661320195623668214163932549104216391330342952015784453225970520656418895603037298038686512185031744740738169068612850292136799418969655449909078609417274268312131802579209550664940814922643118871606748934111638131956089349351435805873309986461372623137458936338363041199090175885145544305628167849870986616881406692971640158826961145900973964336568605481377848665487445155962977480581028919906714912675964829203866231087910475816459437119116988734106966360428328683749144449694749439369121760338793019822892276712412460423995033441317357962973234116240338573400856399915178196666008521665901866476488118174162164012305822062840465951882127175276394487846166159574005874609687516467049597255044701091053407949810649729020614253899807829748629066085081917164369483429908947666355130726723126937109194979871321763745925354908151368754482060842391629172091361481175999981734815690577178390125671378037511349328792418061018851153704752380472409169876159486722360713115900887906589577267136902418976104704950910789232356711504136225469156907502365786776805128924005224230979380819279358795465023714262803079384468597543449417521342984163186663545541679979876613130622679868946511871513396780887097445798513070362935412726184134609398247603007704835471270516168813125261332967964540323953501228580751562026518957179813437876022814827406770795895174690261846701424557687597529111185905963437697937765352589175261311392711678317205665412044050471245655364919430861870882221703333778923182793682073846893855151144986005344403937316124349687841729225555571718486331048785786939795282780279515037362114295465146819716489789550628701714948698201848907844735332210594489059760247578557743983134276847187693445467612340418319574308843321916831370681638912812561057789076814727363450845352996235497214418978819640431771093772687371720853679854807351467696593121520183296757572150362762008521724110845269369501895869118780020454025601324206778742918816962044675392878337897496083190310033854934543809326643990630580500505355927047632716651381381640171326766978062034221213370975569289157635753486879088609121471251658688297329250290732154121073261048837211051764747066169332714403108909686920893204786713503549672560180284612958183257117305545345618615785212298022975448985948580977268702615566131639111239225212245868465309153795801379996699377597973663629299422149314445698510072670075705902931712987538591627296081292295723233929416836408449107476737491084826823852943899643205554909755934735037993728722218137550135000457722034852997210520231608235371717677497802107278428988919654564319393427150611228226213682220321656045600725342513290707870731348180431064248832157229918863762527721624013793993136819122496032129503196406912764691205476172155035889099981750844925724491925250876138989930892193439649048063028957143385476467006729273756345310982131985349607122483612334747771279615522324725830347841473327516438867599372974018202642903360582663933929244269109893586193483491301613609236252827611340162903983711369029870703275765119323402198660194690500243049434995016074683236535009253803343844065952941031721846155655662220435351594314182826906815576052161620859824074822484424407224467629465831060391441588460924166480832857574876595634472268588278405746932505415325572375068352722652687004454476155916310931810472686286314470623771609601781402051883598699977699909602368786636765268773139496612932738847769940163257764905936872260358068768323896372263551784150876119387762996734325236538471262975633129712707755839815536045800098964293950346437708550568216030820754752903753408599490563614763808158482831464832216090371084504174940520675663493873560171082879420465315805712758185040800874169681056202069776129392503010087288823573847239543510819409173613645473578266608844684564797699152971891157161942952806674116984203400725612686967297660943441542948762425476500477529151726862686745227455713865741080940647864519801112508817405069099847532135812433374442559189724434113986258285932962045793321233593044118032120252608515943486012610508793184819284044086565532661999454615533746292499730334945462142395070653127836876542154853147855263686348656799723063636030421920171925987506100797516447216133387592139286209868168618820746740954323254263806282456556468050007745437448229211580922933495995055796680661200282824810092162802063336566393080519457273497824034176263179830420428022209450645553468897410250231894645727325786304897913548505828989222687476447195398299330306049956529767521808353476759037129928415349765549812511721508793732629158918142250394684473314690643046308541926166005824114250506682281315669225916793425886504847571249023847323251127699851634517428884539223259986883453915550091708411313481656136316202647117929383861342651106708726599345526065792817578316703928133894455898729638503556927508587823420083673535208301494728221881098061727692734204065639438498007538335519269299189063764256450259233330251222177739986445254407342352442607300237543728017064526792217552467723011756985100717027875414819776812628242462503054805039014883949250582255542281364497547617735041054429435839114668879000056758301282983818106246113585849639909721655874922625853839193346742727852605605298664553972107892581853929727011053927668991138824244385665470054774080208773500155030693277882782559074394262597538305907288512406918673742784788441259130750391602762350569255270729590106659961781524344764643076138444790187145855418175845840420723412677602721444771344117330486657335192500549339925337968308539161099879051093454943938414904385383459586781351203920462008306480862562750501326425267236650164414739314233092171723905923752805119652544730265252015751582428545474321229404811539841664893801454119606667785231127866961605437050708016238848272381846620606424681787784665847906391916805809574296518853617654286613066952111914960006105201806536728661084230476199695924215578635570582931742438857500148906246710874865859609252631843432195547732580053478308644208797464239011475535480895904763985596428905759022203807162323220574007659188059191061744850080012575645726096766073048881741583044194968160115555737823355417194773718362360020740573298967923314948786078946341483403217725747957600774674081229427130626923237746198277569406085895590803485406788418669727708721412127284154515364557476748563491733575950022881861020443626928499037057889045679474313152898751704985463481632940765881849756148881464024347773719602221543981819225906659044857190494498049280360371373261627079907847758536761513480745454842296349103850010248882435078522087897634647186331842636694486090003675992056822886650391319141505774813934657338279282572107560506266498797301481782775351796497440714465555268722141237275856785118557646069617239881880220669984905621759840522917086025301377384474017306256941634649664134365009785451327442295026338752866952490146411862015918039062183674867314534383238453613097326511701820720377768409173379127427678526101832596534319736999370388865543519999288843796025555904294109198045144091913662905187985968550382494758377074255055447530238468551834203973459411357359932491496327128395662425254883428205406056490242294443924352460399034538512545487539654229734384061632909647025500761860781397785780117615133305257148493563467417492355817981454270070660787231908735483184448003271585203652059408942617693159672525981940446403102658928530390610128998679513808111650314697967381534239454044734819177198487264883583250886475105380683034385418502305204447913542410785143891269813622711720532912612486704712776575314320045352647690981404169599004370649797457599981533752017601511620185352961186162632892115323800023129522833506011056869905060422879303540430470152979127953613560441173776143082685445122721012364278545074689955935505662688213678804012482847688627022035796325817470916065786951864181684729866926274291351875849059043890711992490798673423324563872916123635709608214360020440438531138413594023953268263722508043225738658198173204125365635090750655302608273515473448239903442956495301992919835247569559198326275091281002374718886046954526837385061209049705151167400902264949655145141329895137017528921343650654603933814019500337438469957040708191833640445195000568360869668970289677128102827988372272563525623440404337931670586508352251273572859194400053775306292414625159677470428218969947797535164708985141795572527056496323451886641809325353003906911359247917347076225061399231667463084861071395618174260287607431149185573630132766606354366626213489596346013362578261448355828312228242728731521722182842758816630118813355518844478763232884534997054585280069606501324239919360120595186170044777746718191378263155292546377857049898959657573451835051549973140009070448540245023407430568470663222575145292395358768624806198698013999570181659540270600265405270356590116887969450872957390314702552674425024475557308090237082710830581171399864198062543913317422239440767313627628309819780207667342119639068592297090844672260972642999533428374546323540755529867703465550225805852951719518396923455506111442093083211838464753452481161827431075632471880540498673138602684492584274726112167958400453942930487687285060748996419067126230709981127590320642117905864701493787821986498268695756270050169960464942946598511383720684212745263847641195510130098380239058970943039902872667151049141989850902302250568897444472531458471317945863684072714217867648372489556229600191429152817442842259438537124030305148191365992623483397020234234224231189989403713760910493894694243083042594921270424698671870053160514111197338780217190664344190739847482341615560018939772415318523628189808223288502222200428295073944267633258878776057050593700559500486197142795542630300522289701406598759216926160626614192758238515396351207921153510740517108547728476097213693690767301410744459852741030073660950636409086943059146576148908934958030410511435189981664896048457853243692006549383953002399044974057170552396189613680559508827396432872312893041018583141243744290596867079867235808424448891494957030447066406033699818406506607640545255119820483443991929175318297921817281738564734864969285865530678629810704806096486246220496123086669781451524900723070156003451566274881171806917207688833713605453242870597697051460588905958755937958660101055318870869401831070072883462693339695428158126111566960063168463940742861028259606021922106957603869732702838521736450902774715473836105431401562499905867425841443969119573282082209006876542876620983687376701280554226563636203362923513449837090538338195346789790899962993381208051485158869030445295739195203256202048975741501908327976369240025810521970827092207433236911304151101722018348822043183053156075147351619556496790816955157924061533022304237768456530855024967350518971019473161363743372473205477332072652284001761083513348465574780171020185450420308414963927692370292891475046705026350239497486592351897845366710657033090937572927509180722605813152571292546476779853886543594761301273853682628700484103222859423057582441593297622737004633152139653951352011189552088258489488741992553562601196741885729706553134047444500766929571370534989204000855274697544938010757559801595544293088966015872568289902676566058006073436893636313628329598734737955411417025502733583524128274757632039197194555960772055946139694067936575289277663058876980797576548398862817350523713259362684403407634408929515651165297170394185291445618027549561826176523104502039120089189187212612062084679142354381554157078379913805588208147726424892150932242656370457686689070923986676853216603592591915562239329375493786610735066804219483222192083104619105683477451122193682312900854488836924275781617674079517359472371747102202264956943910919573327799488881614898198593120844717179503932785486242148564344902891544265218627690107240092004375436712211874100452761675309757653751331346932692811938165829832632176266124336613444513216064792298451949143072904254545747576494700721517215371128741232054531066713917640344191853957228292612336559165393551804484159573839426844913740989499342241597881512936818267713039155925617704990862813832848123284356391877764789973466307761614941533164749437305589639031170756321102797900730835153605896995462773745670225984796920502716523130754960493998499874188420657545715484208620063742739682189502123194394749073638703025430630016078704871601432870041127606177934495651843124655105996686633476489454823490152212031069132583415788762521870151207054439110448979957292682699894114106504220228075919719000970777179996810570448401979553215560611301266015621880139800803645054320203586025011100118423337846854766888419454596318707565519997163919363017023681694321058576980996634358513351396309026764431239993951698105421375033218043878645478759911329726311034222459256412418635092057446329056533050275180716347606134974188195905228101680574193217137748510484630005347643147397900569538311822511164783746398610638827341104059184672900281861994560712237437717509567563670091180910444872522201058248617808566495116600275880276703983249053955863973679018925052719018410165424154939024396269811426548507042160968958487436604102791672616337269249546605204194001797844121130723817220838418356948217111289985506120462231180175553332558017427003142880999693755311091788206417275670524561183883579835593638181764279304562834860769046385100992368325522993582553647911073758782392248818465553665619121677671881003668523866333720703415653387899034191077246726315835033989374145911102389279476998711329951270505270940505291362695590757090255693539018471383017506803243638485647045993553278032310389180447771626338943641415673862566145268557599071366001170021820226857231440523638212599988694870497180183418896770865469036629698547500251594511038852563332275791698808968380588281454589491623172671792457402552325307022592788312604975509941412559238082327017445787647460337090254000685701939882727482029639808314064574073419194018845389105688495732407566785993606652593821874369501167770620234222877583271676712342089917532271176548764195257906227554387883434753689646562650975016475222819764703355487917199132859934762006061752703073179170049532081318999122077647977139757037692422426874718952191070940332084619447935240661415975704565086490760645324808152322619450616435787481185039165537470203043370741573840259769461184151271786478302340149093679710252052010734501268834598185260944799541027930433901399553339313106623972781978286409736397254782799777777171660039148223665439860963500086499960682327429950167636738275195105491871304754713708940388397573156229013844577389057036023246377267677724352752042394562317691355087079811906168052981628360459609278924549389903067162648953738389812376270868317517313522362281989903979565978731382016840819302946723308552983072957520408034296556358211360251887376004597934819343385956168509397279649709167173876468915405729030629661254013628311487290303685987300115699850373392349141883414393744070718864267314829823271987627567910067883975669213725486802131721957337393493546610535710791186229956272431982339199150030948371673153994082581797798317224142365791903769689100166960120585431439500042920522343512645543360749804180096735925787435478772966598393082620555043650230579742271582559364108158580101599915384351372155193619835658348744192512648599473516012634160251483956975522086827994073442732596914159890996372519546324420771286888740504190712862263528169693072819554331018433971909401079188282220936134174611940836488350809401533371689707227493644494546178187006781772943746288737786826128791355674763114030574679894393297604947629165782090486772619567826655432621959118954968302511985697774304933130774542460088933271513665494381928767187635711049608796357506135496547504274387721844502538812881449640532259398098933248200873935448064604499807088167788197116363054993714620410028202713053872443649606262883439732509490618621064661162439023398646769138488215021802663356690590321909186344471609329231012007117676515713042053717651807401393472037181752435670006737975047496828589417404858576660841709333163610983573350260387973978417605930971681812683217067736920625262474892526941740019603536236039685343961246281372730479353085407000500639319349858909210793863924061630878633285198439027524613498490714724638142778530574879183164408845164727383598058087792369385248115651312012333663302010790858052531305892245031967266725126064312794190934465381730875140700477810982566321819228781234186801966890982461850719891853721827695872058286272828499677478604968596871058584895042767857751782465549900189566115244166313506412830711627835720146587039403117945455283470724315897397373486341868038025781490226074627072364212438921820711590543190753395037176564977043215690988294156006302087205875787913665448243836089455763740094730017849420376375512033159156154987860553143507221022178861463923593446863101126770696546183532267081190374608767074297086545613884090018697996360388115106667226722146011847950132727032072775805975500922353352845886608522078873272952030819706324572880420164413829816822662944076753254188364943952186894901690275554829592011820085059388398412814629206186854174056024433665571020028565632012502266989911732940524750338446024312261571469451635851794401171708254576984642393240244416503921851086272182201398652303698653284292834272006567545090060847437131436771320599059778109018395118394839767318616251208017358390213212836000970315262103112301193847648723112621573150557931350160654019146121332502596763774020510182524874413399064385959988735001487369428384865733853466809715516479376587983427079482245675861540723808107819786757981578024783451846327251130458403544182124656504287534949733943677623206282547874360196411179604861371619091809722867857620693497110541820235260334780341946103368791658704012496056888930680890756756948012744674944577605798400985770391415992220856543973349593480584138925663490131009851334208832427752190565738789625388418559947256189258819427416194255338902408275016673042954007261653114899378331977307744512687909350486106424858256646141460580589491155746287698382693406096782349863905592718400401311978721759112765677288175348058446950880024958733980249625629981044035168534797700216184971033084866019877627759769493640458435015139942116313398975316413672831522953407561172392027552142742342865853431488420064635060960064411193471385914100088561946862320292897371771384268595481027463545408047837623174037180879737626342852055009344157851792396515281477071753984039543699445786527544760367577983208981464139206217550670482625953874295363810545725843030952761362959369195753443860592671396742986042056789992265611845548727038019768987696352352183727400946091859215091781399372814570563542230977163664065201806769239627817007444267620815849180922086719274550798209625623876387510956759459119619535286096605107393659852219547959316363675746708385080066198597735674923900863593462442386179336878424970921083576928582293213173028875783912634158364785420278921478525281795733837973725088329197199346068093628116197536797362143653288027121732400773911383993108887700491377585585658490299343971435505751717923200727387080391776053722316435135515454032609728937139735604544201555672409726428532639648297071718301298821665902923604602646987240020732677988963011578366258062518329454766698182354485149318147254800349279038612575218000785634795564411242635451921846629754866524865449292232508789403008655294833141586434817134692474153045225238602800583498539134640014171720412393517458059111645421762430623797319010538791030208204817261496531696296326581395022219158376468947651102103078392089332272791725077274744839742456441763536224524448251781100519395297992172873361753904929487357734423158056463714768703612588402949699337379808067040361360800180610269926687209649516431593552821393117347077841896426186080988363986450369947831866675026482876652798380686797077860328705157587605685480631183123869424613263773287385766660418263064508161732533620871536154437956701458628305889775380643892797298934761509180272320559865639389914884781072101717981755419088657614300765923593914869435271382518351885755125056564979355903989753746887318529920749638663242134503219123515010717601284432754130604264267867831833734051651823000786128739488593797003840246826481602645035686700410903227206926412159533827279482929225794074589149128718074363862483619368659841974625052345503749216679021975785074616372182594073409152431405585520908911083232157209682095578558744194695692779735680803194916095571609557105841746465457725778345274164057304151964273002664767611009193419475597862215635392469324002337804018720786620276045109905862544742531789549448078565180576956714773535952860024762023917232978038877021994433578058556003270822298570775835553655602962719618529723266206260113862979478625377719141485464437848173730853947235566973168195047579656958886157479788486875715317030773539045036182795209270382319996182649995483723809864004146424245561674842766485133120922104050785662406113670470530513916521952664124019377006247453830652887442523679854777048782128873847066182441481172662921458563832292352738220832744024238214339591793159748050046135209183099475804459586952082661192014741731629656226313792242268193358604456506683962146974668575859766995006484261938368665515776631770675747865491346933784403520620831605622876246113157692539396268756872908035449300079999418499761728904184967482478231214495119311113550933999989566581537824311027845007854959301957557183442558115192034919917757762579986111039449406153290054191921657592235777497807291720134373878474523458842245788051793752461951851037174612716048614949846515044091872174092365073544932735494188078107069686222513053881448518293993337759675913275638802491724493744615125642089662365721528443254592216318249431171288576377945421549033221407237475029647862694125190455176134197404542889519228549656212100513800177712446012975497551717290783241406345353643384473172951376239334348012973493794650208711489673776820675374374003217508357006688172687872356672788024471766763095636358330551145231220359520833209840378213684528193192655628714490132845551427458394585689461725743431228275506960065665751032451945137066823084121740112372364697787867721047620027150803403428592395185062256430166897422177817922497532318664012227501585115549634599564544936399801319314085948304351687190385095897445034856567491519684656886941302737015968019620737625823119065843861376949102025236003979208006171373014207517596714658624344898795591668036816464613806698367545498402992287827974278467076093992248156888898643833570562654177003454907084321850301783579236116105813198266368567648177099571335286675901681327385680053949344247902611941917478777904481048382982047981874555428834674194369893908315275914742057245936117040562065195324955604404986786830781938859188540610948298441112181573789389296501714913388102586984080519439223415349058332550182075379539401113403127243030372545399199202463704543668739686377972530105914421444602513639632475707730948807065919909256444357651427015030706173989198521458664540744544154920191618702431140772075347781339475811108997626241335411380343068518296677401519733932557196831288381309012617375032004502643424161966519867061971103358825979326682499829252450499975285068503535605745184059913649284801306792485808255567610041808089851549035322032118602417658811272341094418492314842451676618265822692237420182213961628093294529166469189260439931434649699876345307526940735469313470790388530867808545534231472856839133184235917512066695657445172399862617863220731247148560520809259744618989879636274292859023015512210200907137358801342327081187723646047121720832870910144375799681254678427703158949848606321781208903362081585429578289472114838750619101789745053315573380379349589165365776902603216704223691533802637417162096068366378568682613347183156740788858803206280253034690501875232009279053960302586790612860789053901896203682137436097695062350929444064359913303681016571359000297666104137755864831112395983505166389748767953514975407027326395783041639908046706398088100940394763521784054820733197065365000802852120203766197176618786122619099694875272400987088468200855555534186198059566763063654489228915673463786071759589317635878251201222502976085901332397244285316774649662490489365376247404724115115756440867117520103529001203423088332321141485828849610339982769330676381565120839600177206232634194548686391586323773457848968593314367970143176093111858848552720493841479786375189165228756405769107138435221820662036603416734858462523281422343750725847581641420572087521504144731145874600160442405560008743176813414240481622038162680020957160404785022167445793871254297815830306516287719855578932302430879432607248291571617645512008812816933867441067204209018586702299613967065560008182865260207983500118452783291730561641430856344694942684309795383628580089909991488316000090990931600715148455837922787584994871161405072698397545374102212177748232117689816504737334419979039987056511236193529443607636893792342880918128933585032533085105086007556991866188654257932318263218166255955722580418908923612488583755444373363940087785894793634687884695755655890031022574601685104160989659831785527375483913926442411506284176305682622996726749604280271470063844870021922831885980032918611925889094036241183179254008464655488374032584383795992584627745525412430560008069179475331410924454866226064991731344862962402391046657879300967209866846529295679377018860178011801782552196426228959232967265016780303267358316313972882103807884200890579148093773641335612958631393489538565899314868063848630784254118621187591314454644186493245747620453028466298723625625330031358531512712121709797391301132375093601482773305316619789459883227010112702778764092588662314659806126428389446697342549489405150715286536341145493650129547451681170547994301565348709754643949380546033819939766827103121608324436861721141837522257707864782926738802182588232231103941667418639287624216964957539965115318220938979039528474027164118794913935347491637365196099025879467842552785830184919381891655956633092562049799527635550269567966049444355909213302695005420055019287285599035714312886361997894554467095191227230178175545723231312680822238855315059795781134405324022155569106417778682202523433819781718827149159109452768725792376281499342326152785938854866973508662200432284220175686152920079963528124056546073482834210989417632554742353674727307801460446399416886012016011277128493961038268561442921682315004912131685888489956890825088995774778165333477879946715402174687817375755065657080429857767740182643356650813321432570521421420717555710448057311307854650529891914758722563750515229773310685030121880703891090586756766767311340497406657481812432295832364850920509206515819481109297394958916688895605645700967291398752582258015405662489637355798733944403622070524773590348072076803841741732698198074142372949512266072445783859666662614101843994082791747731501761520167059375479246649640422048267381164935967379520376308240372491682571651333303256333733616950811203683272599436798832605055187184465196312375748573016525881566331886814338047714862082489421085757493757393951965144759026680253733695924389558123691442953976872930237339730289717740148141079802833769758120312313303958128958973099030573509417938635023249364415481889394023835644711836227453550909720050350957281367508369451691919124639348425129153463328235224086663982170192564561939208106463748802384911417557975083263964621008156583734513271186403937943946968840298090557450414531559856393040596943711673033773739878197964476042798612427225963926456669127588255761591496728074413302317713749523217291853976426599424573109815747164230011907208868409298006463754012324819822080356076580697567517557095241836692995717117414188455961276376063983199235489002995382418934162248180013819203881756955568239175404352277931785594084770216259493965497074031598077049237634870998910392107534758936735304888428252771495480918739780752280867252946260632585979924808883426890960128963981754934868882667959836080612150332434636204471011508309669448194766816342130076459341072361461472585715103908117145498447396272331780926702787466711782150132978538205456557265332647787227386257622383665788169735549906618185079270177683338390618842019415301257582954500020212867956133757701521570939527726476847109655469623686404401005807256132659685311318264754372122266923005879794516224674255224570142006739558569179755234873079696253691334748441414263797411961511086479570889073092025067702294475443070001913618179737623087942909440717064413207404583753077938306703993734572764662047596859091905998245465624541397235325217161935867970609597027114542626730652539192566156525496979397904011048914164362618583015723297506210247589367269407472746486126208139266881766599225137803035478043002826899427360457392314906449616873209097005842625619393533573672925680535931803695758596524353429640659705474884958560859150590353645426041887185145349547687918668851155370785168741332833900679175067082172139699673291498209939407938861471495178603259225691518542279793868822646400103315344205234388604912826748797111663575658816372253900204506227781975775665946512281066910247962645544079911661757484981617867621683381240107559455296672787027963055922676787644657229706775975197135112121019484306223240029765600465968262303882748742281374744213980414388870444896034209363503559523572178427361796276883975347402239025236836007220924494688002600823145559803784630842970223866538756490407511518739800700871654142004021874750471664993452673949654408136673311505799723359132034283060795624234997289833879108149404370293926437037326252107192393050097842602464685481594367746533348209665894214039857100386576538490474855656949203587300814800271923451892847385623658321549034053330313470676511387190047487597923361451310915838886597969238892346076079487410506654737152456763099175257905255552906593961471892577118794567774997347829579698727855369374293542615840250845947558620068668968239490745879980639589899043020513948956638955448652106187946037397303289353115855878498178653565190321033583982203838779975473304434843062014990013168762668144153870420371999021825911270538954294235026852582508514923963210579620430457878032355108850031289139489045826227226863452096621050299895049318138765860795280878838191422849336178109984238461324445638066824108047546885734307062592810235619198228696070729153609520179272926931019138846206587746870439491576649527958540670172574853935681513723330960577011703303584175591936323344104633420525338998746515200710910189018392254801062614862828235390116910891324764886024354056702273777884261037298412346655471716791783454711353580598366297226094490868840087254124685646740399863507097789802750873275611638943728404440330673564061420484781347721844164857448284084032504307242281313803645873325120921622122316516041110549699644395476509682225739405646091732090537606935435088840973113519121289963337088011027695049090143963636049522509003604861742193141778353834949240722657642003986192374290656831444976640139391380272819749304515024469181838229319206093693051826588796129456996398195214001574308374455516158048421514416556978823916646373561329392623963487675005236766235724190257100711368639657065758872777877129571676469324743478471021108107883190264953680917098806855526438588129771073276697516561291653107017382677766761544680569536115780723825730140510866492117971595615399842402056968394280605618788745096031213959574835062453614219080193195827244692776294273433036678153721241729562260817492838685422770497792756749976319648017624700711323423906334750645942527174632682382793369042069339361471262587917165597285745601366260574648002666505510680518422110516979725889099485924054902194156994847000566086155248028607918912844614160035937658401753711712711281502696724307995173522464593612298091027590846396303627990269146484954671726818417439869477856975944424386900533363454544456745240782534216097930506962501052244316492129647818808712005007782495601124357226833239475866036129859269979155142301412627052817896950781414147755955252511196019975724942117564829693126518496474858868712596044616490352732333225050117657820268455053210787151677497944796141095305870372868487018197487441357768313209215406210149309164216984953997932091512299138109138496598515361231522004582751610305503061375126116190606017022242897141993475501938739041839891759636483766454045833017648359304511172257981898975889430051970485389987420074761137415405018971541990966454025917608735097250141910745651105926332497501575787510286039513442814700001862271439789361813444063450259716703099195693117858886014249179605248927282405587933812752006431303129444664444690284091699846484360205324120273899486792343525887193812195502251972417462961719895869208374141106944392770743963553912570473899196784704816288945653900027554062710807658237086340448190865156112486220371155364740379387359349226475093621784459604170669037446882121354521626045857418599121402870779505062293420131667394897328759197063821472699736102157146123017109205210767587886301926095029876822124891404719983558594608309357413910843641507754135047497637744860906011308980545164201538214386769196811367687717417498483239341060232512424409378692658048984146821369336280401435057961967604810008398399802038457372285474481729734924497210867215046680508022949315077331105537206708808919408698497216553862507837202865874201471336239744533685912921800277534202709787392407235296077508229576820447587425188906483240392466840930257773104248020310338843077166698014135620961603784398760533827449083091983361953452579952236513911683162955787975430280292385741755718886718418768797819921872986117180571621437292871721410203784750908867133246068453145682039421852222703816896194838876010424009951386383716119794929503664736795431501577812730345687779799396209233471514655141608137600637843114875112248212053293217539486182496423491651340054096346542798926814977922875962059621263166314443977830743889303286053682627739244846767802696703015896833483146304182243873400484783890864968952628993798810910919778762432414294301065253238431727839685638504762557734770409809740877204469871691892398397853632501057092134350084719637671474116101554888823531829778185756855331269382166236005890673884317115372377799105152422587857959562307243232170458805392697144383783380659645253701166065554570112361700888467303508253168508729273293559659836731638860969983951572676569200192492795831236127702488824311826364971938842111968813766399861465148949394682837223735934524819137345866220801792029626285051389372885938649053510703495216466848798438948381162054289050232836199462676914272849566193723469385729389116681321096448739576786568352292912140810264668881298803887529971500081798782914979922732604220628668775691005516545887395414765828350654951161912823266043791837622177616274533310796475042843838484064632666970611282390845156177076393055845862946167003775213961318618487264083172632854003674168328644911324914505500819415418650438297685297199341731507876704870252188573770208404022291597636524101735320595681197840229786690956996254071365893868944041651861595052073226570455229181967066562620281280958675431342328407100820699160190754184448507926379405028664869884312535398661497313685353679278264120598757189965058579667559931518576579063559228121471792166844117294397775237930538493035427826781853704741536096712319216335569559404254402606939597647329379852189839136404482440738391843977154293824384788606375027237949235800258633709382533460607706886764856545858048336572269394330497116800656367792881163271253367338628244991672552917095002862686848034952556207444139785013243186898798963282537590821250822251800396038555196864311878906764657998230211122684944411743712035353338715508564312501261343330522803434823680893494906605441067641326927919658353658657517717547574242433495759192274100238702068354855569674661804381020490502129624304952338985419444415758163608201839210745540110749696929987065987953441798999157330268173412301424886795350405734185129574324719942944233058669859690289346099829341172642688962984075130675282089602769416798819142146260611529812442969844496678735782803346734855696680941449867307414852256605413057035096625611798928077369211212277142629645217132877045195204045557093605444021037571381405124816984209940743854522657662091324412463185217704695976348980135134766094020960167969390678085681287335282300885450102759764081037984444934361855944684905137566161828853900887151415399250829216494511415629882075134040223522463766740074796643812543979429394748540178468193361457929033420635831444966994361344170793580962377718066065288011524299393634360479618240071705519634693243444574388385849759953511087416198211614863539241320058597962248145222241255323084787152098673055847376555908502738165312814483143364287105782366782024324562358377861674593546479422145549747476141395222986063180984332900308896420424764020795113818191016822253117005716954457741775720657148889001989860533653045780060091481907283729029052450744971432144432816618747227685751325569027820189373555614505416607934272707957056729231774478347796164633136401459690259917384501730901551980218846293409983971792484383371683435114611830069875678208613666935657066967282474886104383275262082386750851335655292640463033899637689287951820134554467341787715252859806596183370242808806931556419474409628066773912488635606299919628478972294985756821570119137591858747714737385126235241104260149777037478840762284736703184333154219416153904809890175671904601063777759945793210557800489036104227174204243485843828561782396180334287370702835514772806715273089709085786194566976729555062351192598032875996394052184772650683698624207422119843552198029141112068292160203360769125813048891896749461858724338015830579350005888039107236154209257248990717887965238110129446485594171960210737040153509898614276049348826150291647995329006993464093212740883363632098844399627000973919756558919107000914503513489807620588964020737737935956649404510065519765309787086136826623355170803523406541669161232504459477988911642991819938265739131375151779420779004332526593826268633557553491170799963051674439110849907016576147263232849831492066016815916778213875897443135220681647430260817750124551337642204410702367258635258632024737943751326713683150769091318483994721144364531594880243939294216989852048561592787245269886300349078288318618854600528054733169744619238931970810161915072648445233182749078402131810530020273777869749420326165642754422274293883564750580882130980445268535432123289854795079246730487608170481577029879969550620208382738987401707265222286557007613745040018700532003374452197924363724848145942231971795422510085402281813004625250487875497555306624633366432825603784840659812137936957878567707080962634433575056843021956061013038574162239575711570278691504089921011724558788759596761671624926664301594766518258968566438586138836168529650060647563566427481604371652109819695840575679676174011892051749989506685698069462257381472679825085049354673547301846430020669573376296860374321101396653816964449338770981082343137828866734921765309663993536619116231282322562993778727884979022081028418252755442647835525526241352988044981876408898157669457321711502563567044371930029990632982244204818971374953540443581843859878565938378746300886874761491787644826839979862286780479742948024242280882886730722952056765667145846080195693500262540743444781970837376623275693459588424920405909048287290850542809686963096221574584949160961779720092253791202956082256155580395637429889167524332014403712593112075946853991236021756299281849653172021796918313150465173335444170550022149112257427200694390205372113962595161059606319147365006386362152481612999578794059324797479793634309545148018901812980332808266389491110308795580813611803695024447336373899466927838504394635579045335504764872303447898693189585889264571303488249038721019009307622623732118995556375428076126672333778376784395059212158348555352527255223863179408445971650432009890616328925904489023714449115266025131093442928386152873965742770029958049280264833403287575486509329478622828462851042489388757349632991448248879710769734528484277041555810691170925672758702605003149534294655240389794893574731932559657663229937075825172110450029709051250208188810104817000853910272276395377755835864191086744869196927684925829091800216646022029532241136922993612539389317955074698388959936423259016040511155124599538330374992656993432746835313054747442225154410806863603965066954602916513340070409609060435833936975380750288617736633588402166074857276255139829541133739749078547179530489513832772815777345283962951059200238817539355320345795700722512315667718380880037291274580925412894174452385786479887117828256584168825688816686968256449710587440526674719390035174500283371219565589187172949962375040500274113477370406768532960914078648529373267542194985843873955116363137141391368490997561414773709509575839324268395198018945665220834939885186939019208453822356244148657634872326551788665703439693666102190829144005368385409147343222171738297061364080160710597373486104273014660811593590534172830850120981246109627647815677970862497299548815694415306197911656648127246175837025896814127816048080250262826523236327422226641706738494639901801211761711749058333938636926576325194607733700998332016017197928374183393923433051651326045243021068231794588372806516147487678785409136414783585410589284682513907670198114273189047369645359270061656269129907297708035558224074759185613909679945379987503426007454853975778360634003076642591547154059313722664607461498413533776257627121398210438282262656769571213298492638806664188988384912662621468519590052947370868400751763540147390877720542942894621415298432493800869308264044769940039759030783825201292282134274061872902427369412260316219079375780211978361939016241928007249739475389415862898522219123226565802423528301736800818235722279217982222197830974436701517850881720457686646332084477473187163672660917826594804399416788603130175613982083936038759236877587614193913350260930074042279420112432321386021515334430759456647937636425223051730684137228660454890860043195874621177078121456501807291444108731558436938729958141147109762833627092048268794572962261480086337278210840157331237494700578775778489641298462595644773175645336826347138448407354506504380766528858016772919833961138371720614427800618865476927615777818186932695095339961784161871677284948828377340240076789636861734296500816060093093865887546618026746081034108762298934528567759148912702609455349173358357738396273096996797311146867696022922265719032737610680267217894127140276850532816053066266340221745064649249194047197752715158286673835606304753868854388618001698778067997933491014080298198951701213680052235244760936775542056556130604477871067735447824735083157608852553169785778692586061774815381482397764235165168558534487081328376139670618806377201665989346506749123932764392986233077090796568314091395879868254270583646975936746249135075083163959941200055164439653647603750525990565956891676505463356545551636241114011480362983712207171794002017237252931336099803235500440342600759598173376253231833514535827536362477653486084027589834825239854171129439739644011227492563556944683656528380862811763697532919596351338204757052020697487246948484992618716079181661170245198536507342841110062395618671594551123613342036880377495956893796984235814575557900610963387216107759144735321817059892660097429479192568525778553076504088961842183258705926433118164010731032088171352959290176277197063213635512804875636957809825113814655290256089093811163712396664529023090885051194703728579284716077779082209194401763405712006885322044575411747851045824686293913127193125270641083708583559497199442577115526671048389686312627835111229316771204475694263875612718838594285247848271540501958455750217567005583172144375228397074357912822533144376606084860288954754824572065527053557577217014639931969190863881076140347330889306587764892918658386847006954276696943792620530256440670236914787779824915203319585404234443869595288967452188363237376198168591162008710545518139947742042009628557001735351568418775960629797134063132279584641110422251621921556285989624107500309296734328133267861279374669929761084340817845439895386815880617325237060453289712392955250141321940339411116890785681340259856274728611791674773908204354311391914523296893716296264851102214034255416473005446469835091252357032792143711287839831510140414450068118330686482343152689550176995332214251893509299782623166266188495723888013733641738601026273929782395706232993675158513977131879471550801644348905999300087014537495267398214942597191555965782179518875682089675340300324539194846457913051132529816969935326856321778134607712333397703093235430532664333458606643943998219628139888956901828079174941070589323296993311266569274457105325134052384365125269902774423787619106683342111391677358481409785196105641791400036374754395387996530555050850088311150496786491111108547113917586616632110467976231249663507705065728611441810184570180889361452563985315778156445269620897437695358236943998951151805190758041733928178934352019010416560078786031635187052238570081133337753138694225488011392546446921010152244431025021509026710813438260544973134523946676749021166316170107060408348205869154376880122992475618584578690579536463614260509978061428940514322664384793946985677174977810678150032167256488633072336922024279920965808960933807956848905057460052004390292345386269844260207493364253826744230456847700943981355547469215743255176531776576339716811301999012332800708329823926235603461301208666642460778172014616460848943462490933317864605846122140676434226662417310843931794147681124032089560026146031993755381349241624368392786108478695378885529643079278766315722135407956574357831745049956311150690989632029859263227433726833280580494859619466081612424940970892921032675060231905119608501115626372812991832031659458043340355789432475836515665004921184964332082498368413754771043543489657124625297983934059951738147089986696460760638033202809267217976818043247837491630689938825198340582987438445431885587494264381551995429604902526849243787987909963969880480882071958403092868561809952920730474995494598694879522976503942242594709914471056381555077689298509439010135709800869275322345756820220164478615728185428610006946010142841669137178513535751031572319172550070932146020204429412449166013954376676597005557504592126459816118723333547228474310911774592963031785259871165508251528112677796118718089998708185788707176833466002657526510220465575105791074153208987538692751125341711890581089588746823664511834507757997245400268717381919248438738499173962676305510234475857298213329811144682785400109428056463774792454881505866242175049236019983592275732952895908584492808583790949053841782610058213488996032062100835990080130311504661203768407051866754279870830925294119836723419080148239344050484739183655144965555042078955073567028880769462480143253210008947600202992861788715414747295356311646043377338029532011717900765593338771554268869989317235807733618235014902092181371274760714240764988802136109521016083452541571747399630925493979545850451434009377032715304533343550107586717579094357874265338515050168071766639699587987235302214684086199773086885155311324602478188816966591556187150465932035988588995371490175707348315739503392060514591465425798155510836104305194459867276861494406054525129693026002878485943508763201584553427363856945477027254747717334554028031799925505315590583678782386160625231195170959143730337530722832186778898219411445812977811423579753046283850596564809810926772582178931420277431792873185656509612964473277958128134230162409751413757072827386221508159878579384010672568060439072448175556412909854359312584092206984516026462326351886358243341868591521919665526479032657929509792003799483140998842409973184253147803409380592811810125515415949727730044370088849191887642897371430387605334096788451443763165012376218350028228549500611739010809477621036390582133317346342493559043912355261456386308195450093915914063648166918063265956850336815062449044366117365067005066080798435430163667923336881675316290936086281975868134293604238603123098728301525604646741931874102497757463356126745183185920499334175065959515386342902401013776310726904154842134796980898414229301480699546041854747649167460789694153893886748740936278419414303537040082665553053725198504565227875028598604061358865852008454572203000301146800954032291461294340867142406362360207339438359866005142183416148722505275243423282761498612317956861554025787143186761123576126338864507891851863677502030598145019595023310583433598280254579352074158655223034975624164172412375082593663070826556910519296691196051774446723955285859928487843551077114086921704630741442917073253876934940294760473931110986877431267292553714574397463195830091773595293852199173989436550394866065797553483403199025999289129581905321073793104006930301064261343729407095036181330895833971799393138525961216813087712211689385187675282545950163219132842398022457520424809413039248564695812658424836571666922998457349881374582761752565588127876879563825296623891155491019507660755412674244047753926274955694549832283527693800145987197669835684941157766327882647179199415132308483082902075078934305807460509271787290759628689870516181879514270617047830103522238117157419092569166551142730875864747745930245698056779634303755563181731467161267450975509851927766304256024360382513508648010473613788386460326837611341372958817281098964615513105701009692455608508276524852611953369618489422079285498972459678576726401911080148281012819809099875754011016584463791405754836159478779022869102875282327202210311799485050047140990168453241585610224420999003098678375622397250689621111115388975745395756592907734803618433252383731984363037569593500068640082113363689991204000145160747258345498193658212792373417035233559322645982272032243468771829390904292900866496234560169067451547607853391930339997923048512478354852906148581271346226696679985794978419406293969463099167727429621107858296954815459322460009860949428970685156597304748387173220063300385145461552728759263361745080314043379289275943537719600513084261901752974397993723637344740947906201402285436643160209810310125403474540328614329995741235720705589726084132440537974252632765731623923739050862378139945721347846851098550615737990024060160468456972350374295974682642547136509902274969720245996301934659509419035371339303241138779341310419085082253715281706981670805607899083041607762186643337787089620203696044860929613338798570448922099134390493946822547146107562568920803242468451062097433443947447339761426267265150936358435802893921912077687000268790515223067245871333032090526536473158031354569253259187738834300254357773391318464990828205434093552309035181707105437053619021313299336191453586730737210800092944906150638122658614272849108635273959111939491945725535113114177545886512733173215867555792979938528046773599643904617875677927138728335097252495938913471434577497380369533336207868597887058113738258390895716212164475274586761035362764713096581891714135144269291962810757721174275589976101974114597658743107384129515815008491290440429578286664811713692501642208817374054087881186714956079861326357302653397064785510005469914312802874666191380087995699716896612477795141719491273060345780266227727181695609630970585464531937424132912361689620509022278080282172731967502419175474924404160849628342403768439938840629654355184702510009774405077994178292992892796979257302029221939815127589723138745903274061105242521518147216486685778121473196903323138695548742237212017302840099901491078259330622593067536060452092277523646469421101462233549964494838633463777953606839452597149607646194009773698640008872700371788368902531777180376283628089584746980896651383286763431615153324007849309734377023815333098130350888709558146416436289067104941746153625406439409358621477969021506630044359355582003473902622032446018026083261743798320984716475548987383222687850424562011127880820940896729029370377380641869791554326751641839225302460685463659472519607037965055061419913071338019173605046113663493162710877904523322825323360454368992449995105224093709866906413568705016442548815504964778197366373790785826013374138512701144407718401338413813239951100529955172439428930101412803048171920635944672538101695719164722050405989607005476221308451417952300691925352256812273508209826124869491052559127212204559413224898374989906390092453246685469866895224979167128834101552339131877274234766088141955138970791213180265424736929311121587667209338620394353715666705177017455673204051503736841805057920171045881994053590069755614811798603915180350496811184549116903482101897393383264729734000886437057136545407025933478895221081109368776048259224419178187061356986366881970453817496473385567645894995385971557791754900508003994497640278444154285636376827401554106323536335843026917862248612201078514274887698890736588543555340980190979635395072594845809234306032650316576467606335997396289707788834628328009692375196559633260206136018313861186781375999315410047940245690452398620520654878759513142795773808570141422470348303411668602486084476282525329687721030336943014106839653735142848375464281861520000049899093303195821310025108098959646994118595737375893010659138034621859133212821648117585083573407928118612529372138075310667627748669119195175906428452924460980998246050535884025765265639568345498294600895256682389508692747555065458474836599807417529720807690463835868919086885710254690702042489198307895839446486012886133511357128011262928399385660541537205745598525742181200555759982653251553284246132383876630129708218217233131164038319880591330550191255733657337859660494333585323173338922635822056501803994407430166869335331054850488530247467544626216229388627884112735111514160453471246704752745828802416062784604784726470444848823493725750371172525778173605160159844514413485267227427121512940918134325126070649143071682749561566383974426756355207119320959830406353066710867747000057082811462909424990798195285123272053670761098704893099722459847366192017570495025243303612321719419301113569431588672426709123861522839733824540863966224998592344264827128959762025055950949716941304589713877721759918699288849595452872755192625297305500798820404037809544142022420339602256961121368938706933148084593719847250043198600546478481655214437430325626443080461945832036624409402714211774957953597029174893458326131401478475828436704835816657104828185204437110566054297821713938552143729816952919217603996714102151631278783390870080132013978543461024512265217654612540269660267224818416152989394486620435961710297919662397389124729072922491447093488384337713103435983553154301449405583607322507499605359983929612510872548046625368612194352839649280695716505485417167599594020942097170230192116414336183682462718417222269322862807578552138533805237272448139588194986201859469969318679938567454782207196825392037614153344073140202684994199043669426047512850145580656800780455177541918929862015383584905113037308758325570271171600714026674505973402912243952487594361702748694810726113378427543058937957037355393992818220207791395979126629275346500002668570500593390142970659463933485799723728741879570828866978983624426988256683151552754924853094569530453530939308743653389255074056661464069793271142980387499005216714668353267646304371577182833038818277185282919129947731802247947419081710264168775741478631133953273969795230609708446877271170092263171955435570386294990331840894948423612506256238310191501200531855936208218410470634340646132534782272394720460044461256884356383194216324775832663001422174572556946104186087501936158597972952620484890059146733716495232915955803058285054386511764039391992863212059738860106166591780385462799282591139204911329393841623379207488397905567422569696964804741370892890173891409000207461605510038817285124390056657800532970971833373040090614043976556534906793364847346475766498016886701514104129230774360324227991237856203988042339606237549171715365729756215817612977530027711082260216383629889834942194967072213694667935166747759418737103824847806516183699396328903999581070534213249781771657627729573859008624692146135015863570883592356151068744081751065130819195194736126087753549127353066888106667149911497217723635624828248104506059406316567853297925385692562003915339800252832606513177785204928457381103267893524758695402841450512346858679475788567435304004351522493774510195920041163667192143120938644590272707827888938718569913603390259798461013514425080759674639695858110026498176023536147019389181697676946142487785125564233858384622717150119454448353348602676932412402533405811261640744398839185058719730635333924417924414629328752100942400310636054025700313459717433353889121404686010726466898896960274961447043568039098099450853924864748653595925967946167155497320286367156925095351765663125038924106909903618899159693954409611024540483217184165072979837450035048873795045122647133406193885987161080480134145454178015793387567803396788833123816311519508291029407845697030245189030901004120045835982768920737184870886063691611160912919539997274677756650708152254204661461481820462809966655773029971866465535461272022718917240791100286064446773361954237036728772626287656651516607258993677959653240858167379240899148001818283741154713843206298760575399930359779591772691768945652853125211515391190673711510553455911422355366649723317506488275052635127508918861655903318385381418720104777364278761743635439637015197547641961075306931588338598743386114895185874952918383130481411951927533274025984300111335668964845517179957031657317024201486981973055010177770754709044666720235858670517428492893997546381383693154952630785165689432046331982231828075584545889598363994566855404220403210023580332580847019329530899811355405136346407335479167610654611497876303156669067466739627517459836139011883078834795663248219561022426278983649559204174753674841349227559552241276857635655003089743939033088756107127062269715409731272353791202220538839297341589815944005342991907745819441730820342479208122615185962376177556723189203160242298501816155398856669741162265975719498928786175739689030541443043418881913492057092115202227864664430111520339479344484432401139522985289766104400704143257800607178340897941740459420772926285886764274815239997081928887198782522978718228837878432902182291944898360932243153018589675732587783742626999672765540476525734095315328498473204522460626007602822141361568218278793298896697464678785906853621350686643404462420974071230609453931669756655577765432936447102747363844117737830438366127668043961673951018636648833475464187950401287642463692228685290777933873631863360395474670571003738322954719173199703039643374278984127974309051270876603007511279271845438685173965063002970303508254741825256966199056083522467762873373878050300022847324450721906441340876838007243567921888870654976881180394780505569437409535193630099736514338901352285868028368441842900094264488151818247656473610324625067060400417177131418559538769346248438882671881688365176376129934265450470045948452951337874464420579468238341678161784406104028494492684430137938430569523767490477200169333926314587487344186098969366355021456195779888931608344135076774432313708836042001178088716814950054195297088772993108005678973872809582790298411490540664116629007961179384591124622471645925848466742951934015328545363198176171990946971409566187390481208133792183879662161735463426677360063813259174661372777697675075332517920529532991007759102198405007169417343067809612717523836959360906085232059453760823653163728961607319137605117896783012387999881959323997651267356109754098645711493377722342280167350515728955316050005633306410254335150768644172386725169995373034461994817987710717277478432149420227383925776832853081715031792993074813324357942623901329047936649710242520199471845139737164433273298807707072710441768314857463905826449280922946972634485010100685917251748951773929603719645444561919695138629355726862116764041181846155237159168135304674413518632970788737123004137200174248062086393822253690520803464621140140190573756033159506773462049387226483494674162019449368104785179729301504379788818621845222686192883199780527319885687896322909178278569596603489801523813444460124864092093550417596471845479054578739226253440723066394343502061659565158460572889311761630806950362762915231839777036933836661950181773101773675026587563089414432537372011656380856539242783429134154219788892816860089781455976329462498797631834518526533396399108141823759162058550576725873569120612578115769190228484666048304622371222512957597911490813553346223352145362780425547569212727215173097745897915037579867894101080340616431531991717641615172798942744721180532258126035118706842533184624412167110426192202048324581457481935676941068659930590806587073631794180925245190610154679651865604238931405646927982140627753876866814826358359116824556264431095237879232177670442509689701003455446603573351125032578799806153428674551528302970298290540363663327585605038883297432677514147446844850965381808267497248783875202221233126435287172508466597905147950874314251458299587354589074558690824205514372498435958479132286498048114953374929456336376910925339644157819262406198480270035210444997513794494390988201389447053241885096620824444822699805945656114359996971036912561404374973555643469581760116179209040420663148669928102254197433606148656184039849387365772371683119531600718210643561358089457103053747654687896301179361870095884634872684048760857729970966224824710529923469471564926479027802974879432663097547901495674257200779512461531051692962870763697085891281282480178662390721262752769340571625332654965543926281598577694423694279864959647154358060383645501242317391474349705389250536243504128429861351413404402189879175042183803620530763611594544879859165882118939056790036326622014261642906271418833122760302186460429437204894680238093753786046486880804437757366754506410642436643732410739820994338985338044751060923433088530648824270104003155218558632911586295257614864923861472849408143687256879228830707968032124298408209890335698924386048636321534073038609090196249915999939905869268303532005357530188055488205837001208303549453663948660421831695120555337262678555165066946627417988483382893697197387217313598647855034963780269954042054314467435538771412092302470855396319480254577137818628802888714003273801737557703949312458707129439937110106268221109290621824460692220194720791570089258450979121989414919370717437363123551479428765775065769194421938117346800590316066779676326062494003023577431336167944399500085729849496252836322379218626443304393818447762115418997055297519167595922717265707477648120571571620040140792272639043582095569022887542313452999245535033601919493037656134790920665735708488033473043554776775550959032564151141193002051305097809007797907433890684890411893797892803253972538015233944910037909363602666416334965205026269415154950978851024519374876525334861904855623634980294993950998897046357716778871332987985202170533222081307461034486352647324901553113701654044483940941782785974225620490461778503737511071585110826686545829576889011130714895178999070915351926827377879729718532899042753667229276958367632339037075091833294336860499769406906718603371523699168061132157813299082881157468191561864141302229428839194793031606565854559906796404239437718866880828774583583330406387119242333698827351776114553317874868893703732749190934144125278744030229922254412782129818960183862970104549187949452302730767868642974698647636809605927888477766740094340535169028186368091625411008209315176155176791377458944017206425831343291069172729265267932327416888612223609433368519533691285652486069475071249868144327640913382829103254154669171659895399501570385007327897911828374393974350329148526847495800156045937258508219801980996376802522006140011080960418486832111131887923059013008488456800730748978071637920284743195496016251428207962918176374411273511965986926466434488827635005048022471710956899264729148203115937471292870726476410267037422166000891037621865354665991687429475413683081230774714682473356610851805640994716378020780833302218056815713242318931124070600053344702977025938237628465053226313392521479278726710450503079783736662160322288905549360959567862508456140602674393072004339915592358468564870367161280814955800451666317307594026136433454234734030631429269139767491218309824023346587747482240288513304296486717260159039970995859672764086751474254224222264511065717849915254482123876389029339816476304983367893287133759602939771287984517994698340673495891239927101627226174839987050361874198990184617462612276961274849556460467544300570615101972152170248673938061378623642013004464235942866457823194870669525277341784479284400466608573349752832675916075650630700427524690243509385410943999302215789186488375934224626772466163518598153357752068810718447859891268180326348348140586560545873487656152433866465270823546880079029432788865298370324091337992921464001683239460775085129386310388774450478990517194075787462051236112973555287048128969110253262912171533585576486757818871483850667001597669996998835259374247488292261346716077159472068780207954202901251135435066744155349589448933992171957279576196522047651477658666640003894595320821596348006640258657260362079470486040033366619215071443209900680483413521036033926774189480627699337649236120663473321032030185283989258483915525338482698908263874923338110732325993335979741326107814647141829847160444138908624361013397612075668589969620308957605302816141726359228331540769480688089693365760864610386382170191000702463963002728029811759474432867922784438831236402644405615139210705017977597639866366991809674202732666450065812858975458505630239893212611697807913876508435460963063365949412454896485298687201033846557054745921784688126401418702391392411516271235756288414792417675252233757000585317940994038059488207160447819325356107550687404992554364520480092734199518069679458541602104938770058989096781970491827188622158103432605024749632557289488137988798719010004331841995566051168476409843480320068573322201749843276909253910048103302388259639655993880129473373484525290748939146387984337396187625081936956820088257262430739301530014037861849567767997778484196746178397932763285889568870910107468059477458366103143652811780280204526481606110704626972813378397343838617093929037641635795467211858685854736110264617588758491490823700122614949584884042070391385714724636619815349021319759234034695345352187350762104971378813052004083877861448985920352002276719420049743274321446541084227865330363388410513868551606198247537033306172846468160847174861550914759614782315943526333796163619727444050000060810561173688232944656930210423241384460296448748710926276947668933710748922323021073639142375979691780867937527038807826315696609364548378412677007448589361830071255984903084612040115235264368805436834514980446900196979868585183879182624626377928244206550638039887370169726148255838219963340491785999628137554471102913608857361198987661569060468659067640996818010096918110932023158905576487038650657617045046199412348227812490580947334313880248484952912788877344774654406072873563049943717116751355569831708937029265833549815466856191063569565526696399359615276068254205352202989115538897344989391346904086353226886946025357210978908857292329140636131481496425617841748217215873221049540544771261052803518664047156158549598211667333967733848510351252215723400987943138062174407917417433540475474910399697444370053498359094696704176903365619650215888571375919485867162008359859679610245315985791404939545577484004953495787893890245522960242750210344232352381831295394809797034019513289491554960810968862402378016848049925135793254309244965894715901702520613240594543981076061263840453069460804081054746256144588371652892475514255172745583567426692368655841620196566429819533831947895010482867108886161669880070760096407868898850966881084045097703387180571356278272064018626741910926071990402954060966844507831893818464771227496676550330000241098061084638685365745212019782242236101834582579739950844574120261825430576902986974541671164633914459002144332741599626793728547237575852202554689456406261713486875282989931054981658024154807081380315861442718359264986699662026881256669135227310099587842324474860887650265886602108759426441297164555736755469730215462853256920677261070961715054543844951967924278377491244471858279103490895234477903779849035603451998704416513217987940066160881219480363295145668023738931769935758763918204553281959260649237946602035931475755249596175074095058834631346819207091213863854368457832843693844496947805312027562095913405711897317979133818615047204012378872374654220439428567955879923625936213321379271360276488254390384695751240000607154657539879561028600925632944935071300230858125725120717673936470595096530206018156134276942648934748970876176859701137766807779375749244268690875631963551976439412608318422414878543703749288416489463535239413425648942673315050504719916685000451169438014840473099704371062728857601168915879291278190136440460279509088398499758854208446066751721048675012774186115478094174134128765024826492722099216229519910414292651954665215360468963394610805458071061272870897368501677717908182108003414073997406509845204609373342742600616473384929165229736894590879312585924138855970034561744628098179318586211547516577651398811234689692697453424033743919667728008979191407097422851796259976986270233936611966423117525415199828057691504427465518994794640211728824166305050416687461407723450289539783878746103090972284259588918015706048679449023604989717928625860780327202167391795244080205914523502185722653774525411116662765393415541548587465407399502169681980434738447847686452189619226610728390399955428342002104633900963946005553822746096095807148623342791134470256445848267612349439364327383469640504284307104161374265369629452239736678658744993731350816552791967049240445529996934703969644410618383412394108279028840256101803557037978745068729072291071752990517852663266738045162777512758634989516154150934611842323744654294772601852969596120657744014464773513728413012434207323663809310015015124903346917023004803687762066096927037823581612705189600124589532296472747209718622250811307252671506945527253757061057424161321856624819806320047019075572167527989834926402119908282325104602119021761993099732002966620710648939744698715703892388798467358551069880522611142135667355107287426690879585606359746808024300815550496398271204954167587485955907253420279384586105392876979468106808330298898879733473478555743107891541543072272422600664696741897379217206189220650927330409066973324806247980746259750507246191684991880937289824872701931783853761083311665929335916374974850844939597359276096408196490698024992952554006648990016882783761680302967502398921703692112213277969962756032017980933344884632696976732569379558747230747129413633270754277291622123782122261136551385504637880333153077274725454513316661844479447492473449013077009596455136074186349001247531433063032541210553260555857134884692732670589642429846002430987082096978091942070695280282170667008645206445365334095411471389164538768631518577147056364565561025902332439874019121695218511878390388336218977185131181973905527804466232081834588517841848520413564158085893783067635688000171530089407926960687435097301495062714083504409497219639659648955613498458604334063648175439092355652896744088023565445975592550621834658366576933624051770852787116520994726741613172392550996795165668966685753801240419480201123316610353487041852078493798554528678684007293670151433141580605610221552403393063391741165132503110741672353691185484766236990211516172388743284332273270407068553718635356943991319136813865769589679694924635267491591654369259728946161769760281912210172688780210322469874690352033761753786497436031836872698260425164343500713570080035858613740724628430670988392312323123072878128629512848282040886063921797636247782855027700491865819039100537305888329103931518376217577582083774397046749824274339028723628529434369242225441938235011900944471422426527573443349661498504159246025764838109420749903212393518924836672563437883227834816561021408088069632649205938278377387786620363866562324262392013026038078221836138668695947348575074737494693485632539074692576847976375864453016272612465368450704236431759474222924177907750432264888991238232467818189341282102708344849580106558799071660208398207258848367687040846079808751480343854189072948485096848702065281807682286691387565974051431145116440833043466749657939992591224889298394446097746891971167387189642944294448093430544305478690236368809358696751133023112019275620135368438341019309732058342525467690301312286140595896525417598760186984917605823837869086392848245754035789165962377784356087649299519274114319429828228594188129554449750690714827117573605103111551213946887973078605512243638953416909107736658853925921662447971117496431079371628550079113476365016343107180144641566487210919496229716036298790837123974775380901388274502060825879926173964731420448627504451934591712548613997761364980567367735300171889902478395262140880043147942469950087109884991508399890925893285515810529481672655755460054854173608400917677388166858536479585918185723495748285260507827022842817264584353809437968669395831914127042645149795807889346752345289425738736822323684614337978501948515081906439288495803289135325697033882800857114695144136141939677829625166693714247438421153111071129498771015978637310817789109852656401524635095594872776117321062474774055542826047365978949134747420424394700810300933458152659478805235587336491212164238906726853869927233128797496423790298202804956995676154383765091407041140661403664314872491728848672813921682939891501098175063888469235870982314571640704620703674849036374331475291738703184590555047077666247960522292237127789495461747726206946748169292011319679306816063619557035328006417727474063099710456862734722965158080918915703134610722539863494096106839720645183887706155096673022615449527912826525977995163694226828262320187745535655224091996445689449545737854636763022601311225412480566453866755657555702287599608464877306272082738953721014210377318301782495277816980448367842237595631844267894602285485288049562353233763316081017832345970904263135613873968558236788237621530016221120657545937851512278651394026077041386515076070276240688710480694436429254946376214154121085088792987092537685325330977417094490830658048685947936533025036077297663201963919216180360908999672856720337683013281825392944474726882409306713045719086493999017759996179878854704380781870437878725096435184548166592501239170483803372142161396210655413342165109277268494946253016077732187952522198761501375428960837175549584569630090494679603614388535559073808457565809089534685988179663705281778625918942685969033193001304179342601938158257197127423955580408745116239243671871846577916310554454513130576468710658509821356057409885325843253081445893418646855760633996095737600835865409335473917153853888528471594426204508308484748068285433408906259161123316090309941700519060688053899882997219561831492599682166413307326746402176420665966742638401833301717130752503817947201527749413026738332551991111081027376515849420896374953090633377314392883117045912062786981025576474323237608815531531139550930086712798576809121824696803923264589719112265239079599183879348162501743941101278505771683348400332390662784796915463139634995121755170955231547083611073905358243324340925572434442877198331214736754440094313998491754397392563144905780825018717391154657015330915425859375548735299687459169711314619527900731708001294033419289574586415508994467639236086186994394929970808311340391687122713452478204968961834904225960401628210298206452941051456112356655810744785633735299811578143394809912414361768581349793561387023663507722652932720267960294307793151328460982446766802765469897882860175478229662436620514733379899966765298956937441065662166282613064162035829349904904334010889941451510663952137480323006165704046634755418830797495940192878449522759841222613012639125191220367705320402614348758993375446055009638682909210067536938251094258498509953434248608715570639329306157421965262142389587359928202160743423610231672249204989596606628491493975858438123896635008655985322317323513184786117090937226018252457356310772009174189149111975970804776975783518616416957998485797381410071413596829650717343322275804328364762711517252667974962611797647819559975938856105967729666279639350044765216929043578047756061070216577448938943275825156346141184110520429641599578108593053098636028578764177847845884872405401021655050767361355508652484632606146231217615785114873076944628438374530935389127704127915347136831893413727967542916545506171367667993897179906985603366266296659551834768783638485327278242083793630225652106450445550199099620792135656538206378856384316143477952760998430250158021627696431364184411832683849166675393874310751910475023272424368677918476847312365449954839783180433483144857239376463754611631266728737118493050583514939809071140473550024736117631270537733270831851258445600158513554384348215236758321482134557567981109777613607259646109280560292461238237494635236080066569710650050738196851787182384828501536339452465327738074669266284375478550455495106107333510694823238700842156336941486471613248362841943343786046490587419031413182284778373990390039571949429426725776205246936936599337873429578599143287625709485713772964190405420306435581006248791299208240056683177343098465541142256736582960811658397723091696997318244719330653726982548797528003459765935927288061095665106759225167946321897146610829225339066221326053815031540119247358826387680534095960004876480672280593113017426357789129991568110617207141203328766203171066446881114737873496190748278726003799271738512131446702035487307481802236346047587927484856660883066368239368018827353124568225385830071803286033614874472165882329079858156725817055408628735647845555240417705156454882096556182850626371408565753931800381874640976046909022437766970846856875163035338443142301916128731718941067285894507512564030160263501536970767431558972636065446440654546150071390924882729857439809392820445606997725189950156862098466941523922106424755279607040135620812638701628574562594889992703064505252792925117725827589237291764600998136439330677093691805077296181987864502529987717124802010529270781381470892331129790365767031990853250444333206858099362710765982182154852752474718564099529017371160870331609871192444084149299511837511574241824658031451679701939024875365406336400525195633354728946795275328665216895462420171787502832906400694711361915665722048015144083124185789901160905412097023303777383310345058808384326674054686897285989446676203845656269278548930336702104977599607419482396573996936417878843551334182029941768137337288000780627713804979489074723205081321311754296604687816819535315048789858813615526272835357761014195818692223453028185566736078103962764002799828289935850705306549029266005457514536053151387588143793770831659513694007518645959661761549391637156931045624625428825517182055703900563446598375570627262246279226696629872206669942331979406040037110254602146764190490062151049627621535699767613731584419605312812883650511443675478769080364671832944268732933806163930615228972560014732357845307883233447204305709355118337015641841389732805936274958888424974484502127656325089244406047392830240044247200401739592463219198276462390693145432297313584295841063465171566358750694681225373165583269594629539205056471673881058898671649960060856867884636526993463788830619353805581628399682125463226304603597089495113045837012605519747160333653786030609758792812601041363545838892846207607547123084127806907795559849646417579981382639012346738996204763880477278043088116734327563497069023663964045429901807103669633919759504704337522466639948823778477978143912970828764143706629490098641923912049491280506768603763768790265950064664979275643419243645584928199054425007486343402174706624327293420174403920628208091455800246186227913211101502141255210498585897515235739823361727961443840668502988447388216301605457710319157803102462723609494158319948565412475992223502371972039959810211324792967525917871627966953411539453440327901498099309648034704853162702780968888924324256339211693257282967028302126036702471108755958205036885068843291251710268319832357145041496550321845614246866919786652124577568505943378144273355034412297018860964214351472589359460578236695109277193363262786601690447045424595787374050139391039137599165022497563453993520892606368946268741431301031873226042780478090158304758585281311894715079694429164303293920527154485366474461571520805602287425815582794949532582553115515447929066422091396126507793404965589172250485733810075642576654725746152599436526077307846481875881141892525932321036090388753350622944845778705827421082615237337225581234509621598949087319039493132198628657245467146034308832133562875338034307167047200642033149608618666764830435567148313978356889795897605638898430954145696186954110343352364014223494331498580883184047944433269304189442391485187308716498480729281396812843294276369050263610046759194314399354066963593740661416271514250122920587968844762749707212171813013019552954364211439729366026328609785432589140941000593186352806444145589275489316310764183119706576038552458836234320521082181027379848634017075938740372206260524813836907731894860932158105420698865068469568665839181938193395843093158859167503396248147836893501545511343812727593506209124885343738266610904728670278629994447347903913911483088553026834905719543741918080387209013227027621219863366083332735461510164280794787371210435666264036937661010936671361685570687387102515398642689411015631716375462125261598142847314605547306896646035825519377235401596701295332863551458189353951898463004995366036826087850555681884267260369490617879604733357774262279483478258482365348465174198787092017727398069167454818896297355907399419644368977690410055681994446002592329548008257811975004199404542395389163887006820365734079166296442255972180866271121833235924379112870999200297090692409278876957384312778816547502072718225043315200316069724444049591911370334867422415684428254670542944893871490819119308004620214291299175599686408616409218700294549954439092122582519521436917395358615497764985611390705831231046671302766737134745286745147163375245439897105540203724544731399656381028802133943980107139290124539135774832645780178944165326129237835450022337520486096268572443026990315652555593070506603922666008825715651655813257087128158796009985558907885977478562155023521423705102383006323880431682029923902755239726444840063723452150417892163278536343096391001173774227201931856651832893238922508313312087270418537408018442643300418543624280471078435005304977198597961666998823438710778058682435324853796379217755478344011366745897468823569857748336550772087931360426704839860158413893959994673388870380717678664319906014421625706328815132080842289847989572634792131859747599168249692052587126252407083858502625881887682842432752931446000059243343893271803144102749956950483377270930596032337162726422888532489845375892816314775820949123057229825054380272118737379659882706946352166360203843776275154472793954127753164479503060058052434289187354900966587113571256397271010458625289898145929764228262730795482191550119690751999915919992870412348523827268678065768468138631607697361374566853197269032591345796454218727359254264414737359826289749616713683970772495397927546257836300554275293987446808338568557134872809340990656122357405088995821010150961175605750619278971737203779282912881428465320517527157356541968196842278491987375784025701670482283616722729749750762827800033800857728134830115354413337234819126868217013549348665586187859388186980123636877655003129093996423619281788556003029806924179410970327304974555931269232607404305660978961843571942792605225416215629097297503994237983810679435496756050921104601311999113772837147055866421746166733047578793839692645355979815301881206087739247350971840732874751256424828882454751704769048464454301449120708369534768260098746743753498705055612572918983582856731736003253830981298908654615157917208235225548264715608951819825064922958800042907003790521051243563271360132619754039126802891430487771795048904416185524707871517882875651442915297029993870971063597811942483054776204509534741662034888467113513039140789911435284391926201061692208397413741255527184016102271110134547443897903002191552143864319820366417132951301631949001594316660153831627826098310402358409764963765726986949803447373933712458354502530652929041077875009170391531130165231043015600229126615206259495486790734101909644633406661905798152916460136431515785784614480480517400089813047286672600654503569739584330303875926703154823366321205782022429088529499916787353544774043499068695739763674827160739338748618536512359063832885711949632927378997781778629484784665542544521254599061250627406340175354178754533123050213181261538619563695459768536451024408751743400938337661164227774753626082812438413627093937733109204340380779238449709939176227818145888958226337012955737270975770152995461760341885160733406391903424724321541334980233319414353593423476083370091059041183469433642047072125887292462942879125993517616926403148075763591186267563990215659937688912649815866057991890566440957284904019361143866781942888403069208654889249151419358448567062953138892018263983878715463763607356999747365300653947181244011376224131576302238808664613572810562621802590329325368896430921926121257520801091120948149174349100714449175560064373328920272970212365101696738509223760498713011266752329602226255394913135278991870401295893120063959402072617764751280912027326605080245945813628840764817617937408816683887033051204348163765957436864348796873522279025515713784529744186174912593875762813175272638321051508994281527065742222424507161362926520523800765833476917813984714836537613496315007923952148885280110267886196470412075301624411381429210554583172726622303364726945200840374224714315113818926792439473895868985992744136282730994008720825051367515241590050257674536902525146672274223184691980061325609131094608820493201526149859262936433224993005523157162891902885945793424705841605591734212838923311960484251098561653853070022383024289073632529427081466628765469205230511494194919354987450167155189504213397395592346156491477757444216881812997492934057102564550261906181787814695409140378410487002430081940571299012769058282569175523943355617361221528910975400452688976481085855672796744987282677299342042938261778030327461876980112236062450144922838050286164311854928956260303280977669651475377419817942653095635098127639093859018513538057035551399493344136588888091362488862680670706943676407347288679570449591034673806135934652910394898341847327382489934927121407824203899087317540448924010830117458272351746277099031605471735085610079209750459261493640415593284229908610181512856313937468752290053476360236095751602334861222021093346914187216869563977240701662074237463940683525847189726302827130816953104951671600042324024181078085674645998979224578201412304123702783128306171300835186456981124419265818709652240970950323918948371429287813347413386379347144599786938928152777562093622539112232670399713306583059044209703943068457843736077280928401712586982391667883492678673804146435160730014143091363874639887549703661558913439169833263762040913217049595586416685129640858235894675421220687850629307369269971205558341713965248110742032398864411390105023927731373569343414026616599949675215885449089047434552673136401833543563054903590367251847505083921092095471131915095836002353928519935056226972790217934148453256032587266489469811018825202006658424989292739375936682522734423844302010263402506591623631049809623561121603394860262678312713526435206206138223693250584549756753382727266162124473782805777636697621444931079003919920661217662682685742363061586943230553727909190593276709246015106164078243797261717038543334526757131305518140390059275678998093437701148672835395778580983740650538562069798548775091883723262514524930032984506503226279322272779687611294756933102532790465658606009556731766381440684074763181965942049843030432035584685078126733232332892608224022062850357270434930338272447589341703156430884865166051511381521700524510395884630247998699211552339059157217627559457654165564414548200488483487587243467924734216172456431469224463990958895511481221937620544333104479586404745502383563036401571415156198280462755983022449485851069389774113609469447368501705513732530791007827141487260388407759861100906489855327065951864717457654299824284450313288970621991093797748486874541595876891457565576502925859221094577122615573129935683466711910176186897501187160663952249287692994375790416850812634806062847677514938916470228482074216910203250498664403835024140194741784574203753868590663560169319346286224935238320574902706133612102220567500482797361941609476794155473180193378626357548750022901373107259021025294253362298444098102254464397184198896649907204367251241597565856440905979095557113837954762564419841926239292241051708722333352438788438264738778291412617697337692462706030507850536567355679934237443551785982353833393566192352300729094620312711329984229112013281376498232699821527812870639972137480180626067327023489052927000518048363815733796645946059755721301119327332903491986657941640681632419867143060492376335695686869890347893846638100623823809148402642329121908611896895307074898114807442212562213007996767751485603319453171177705955480236574154926579503911646754344209479598077604317390913937311081343868303093784417583188495975372218729909311992305880848337225742188888643487591766752818572321246377761222389833979650733573868462587971895696004412022512061955509609037297308634422381134390066312888700664095215423341559539163381376209428897588055985619826149413753497293677534830902569106368480180305451946378437840557021839654414096253343677059518846882649721882146818983036770745382197149861951062020656533703888553362283881946302404412185355679307786849493318726133856687825698610609063720058388818698741032238547912936030113696699578661614463641878229948712033634248217807444579899848473646324911146545096436281223025479250656274300619199524358046401616106072877101172086854549449145579928153281968979968992367167462630400104692362289222024553267591339613798662844604455882738926563373226062663891320315745582838523144306116123676179012417378419710856811230144131820770221096775921759725918299670999853784783791582511637066872628027629883849984671975246740006839842260090395773966775501475805596263119996453560190724306970161466162698522670864907397514672766584309132930061654374741193577765066975693981564704413293062391239728406201381748521286166627996760191722561325037194459699891811333598258911476758498976182001046183134525046972995649550169411708104631269223118344847000625164681147444800467165603239447516576135689237189576410036505062566088295736395883621464601047608981714651346475456134249503660925288772346235267420122898843382952314064591275517997540630962375883910772737963140600947573674700316859780024258339158072867417616607603630408078741201583987721684405958381904183436700206546269393922874115111945183224898815198164815317556327342912439744715825607442681465830806345097806037730131666641303822062296307455352223279202924821708379131446009352658603783069373709159634717902487937867214869733184178021274542692013917174847951752310172548419698033945108165828728965010024667944872036923390920854316536824536215471772413982352755198112494024711893768574998725256364224184428290608586162243485639014551151556190447418976287990908180457022165775646025606812010184318589823462356794819504015999335602421714857461822075840686814820551169630143896226139533467160692444323177249403507420834717383251224278597176942650861587204663519796239647076016981731777984463197853508829654733383009680774533160979297110568700326878301040179618012653988283293099394015366596517243137161603787501445357867311603790765549103249452228353941720919344735117467570178176317425317247650146999941182387970668643143435494049005854368340994844928437246407355954481868447354498829831801066575081856710811878700820196625729641055126769495225052985443502825679456246827689604216283910319671615405261799286252811367630365821732124684595278967508030137300680142342861800029201427589408931999688637321256129989428178758335491236166368541134701392829089564819812542183021781236897898265907112732190658748135629652825907153301382646661031609841546616685129613483187882016727976862757412407299162613038849398376406368612412832264431259246496227684932934951711393195662313558132935491163794948157218703052202361724523278948326408979026721895823288573088495385056443326827240061679270575853693102708254634793660845767435528528798056119161632085679048776284534257633713899102815990104001369129680747327293984043402519474968146642681075111522322505128824297289026080348436462426217875895131687224822123067833767348754344714756693723385456016836648127853196043705075440880486570468567026050089543505777047370828387162761478558035814922896332669349123249454728893422549837823206894491764715301082052694362263982659391614861048514316219519893113177688532004070211599539276694438049842615743070266691754626797872478089326342888156161851076932844876357735556864167365137182311417798690329428582708289547828539232944390402940683264985218442310027270707111249685533560860537976855666874553076879105997327981950808865962257522261899894890317795298226152233580311896439171679334538331072959336898059474223282893465205979488113125793900046097442865495686134778428937264803337505807658930152651324421776418839258410920439690371729225012621836049180680209646059699250152383828580093809554653990192295026399475461513734697186273458827792515580582316815360652998295194312649653743865760193284719997218038306636159112233980095043135836802842088991980818338373247767072016931828762481616478076140092467783445596982434149026172011335649880511114485801673400723527430225739607924627728679907995073784522059112219109925087656511744088081741098898449694497278648108353909714382763986062961362545300930406708495077808949553796274985566984149684445623626349347209837283075120461103491367634736766721028059385118142424981957968041779540738491613887929778421148048133123714430678908984851565483802838023548631474997330283539413264773080960192493258369994247091814603838313826615194474666842313700919411337831918118487059148647047331503833039762057031354581341517297799326520904820745456997682530544674539532445903466816593690601772268121565206819873399700320763363549334753172495793362549142341646373735159430245184860341982131778298966557831168566934397435012940541807835953041348330242335192328380742478235212185904902856748515081542653647110380195706456142496325372545914177831065390459846266841807337832242405806026547280249898821291562852370351294596171964221633786967526053136415286540503946633183652431462064263141322427732261004664548409880876123842788630248650205640256401443828464216247739929340777903452771520054962167765614335545202859002397084365927126808875467910875438376106391816855797001438704507975846992810188952859104296659795407149233030315674083135216032596553238312638878105508194886025338740485857738549725366364180334774226705829756630141013165795515294660584404070493322447778026992816392907299239770097329302755249354307768236565051797821125887772555852742446967357745182624960460753011746924149714460641286129340498238829029016153711253275221806146754731939397174034125034098170424869756248595053682848616817902947665097021594657453934610443208433471046517517166607351703878562869140894640334752242238835576494462547884379913251529279207565843626018774832924123554525581717706912496030846409303010171398624914617625674268236839807403389605593640700469540017143265445600546519017453873170565245067272320381857258138981615913907849529295348219228453633964554068543383611714582875385570480176454517560683767829736198707036317490052128766693881746068795721952005534523638374244405542803267308181543924941548125604644557041565108907517716416057547468883825660126169480869501709706977825904571274759259225746478644974428148069852663166514237915528537608118313393993829228451418666002051043828414355393140123726497733109056294054550822304038701895421124699916240515958175183652208568477671467820689056039799951797637046223332669106538058753889451639518727176652000204631303889374777183781595209987717500804308628302697229391548406483666706487617863451227994175404938831765806866529221548669755672062095666547489908861064419624878945308324704884619250009052697704491258937588040060201132172362748074045356793904464696977665787433132176527826914826597337649569295615554922245600632061391040392384651105287701362211235023293070094992469524915679515248202937662820964224098721726283792959033508597786917094722632381689659589251549879253743912675564832611402416594504249760534520748276146311867738546734819505142486013342872226065417306765866183014763319241103871621592369813816877993496344749016528251069525312234320169799840251408105480856157137717983416560956047030070028538134945375201355868251497338957612537535564597542403169158516405741814937984581734907428714722940226056113763280447683023281961861023032701309954593344518640900847429302655843162599982693694226719442737212253170067101102651736458242468081873921243812100710529500614701837228610891617891263124416194493766721066789259418069358350058301130773976101684877947561023620838901826998746742931595126468465108454410460314151311353165254018289675183570120956146427765135914352713142196145919150919120176106183780984773522102803444154935171883969194430583843677082952860261883465383454882050821294460501499092340031006135945111854899934069640731770701803132956601835024582691464190859675828278146489224175168034008730525968282836735897202886838965379849532275925845988925531704563800534906195646178848784139950530637051383505154540563440463094106397248974637321830219965954435137801013208166268237753650851674046201984941909224982596998952868854815234707695999823694504262328171625176660108979190837642437949726427134124264462722105129011201118839827059300489745646232489884978268677356662575068569544921290197985816361902543156682864450177983509842115845959129096533974715253372773046114298590861807161657825986374393353794267891813741263149062739172692452224124918598753498295309379628524183748146793336188325581105548137400019961859736104971472084460637679904551615064247735328791869432721792558976832649029808830840393557977280052979917555582230629757770134894625319202338556870679538927446371537422084419456220822219666167677444697279405049885116823647844850377868238460843258152108787883040933489202603521113072636946682208705003223911441290805092490946528394678591726330582916541215789129197815189750021684857870956142779388958774560871053162350770223064413225378103362470520142117952374652150840598033369755528678973596165564444620859699416650487433622017861925918124319475783420549022017411505784270830487087183280627440688710303842967564644451607890272374867840814983201693788465820258280890216734408226670155916593235294566475028269942146796023846733866550596442636573807458352237286169126710841047969417050894229387916227999708642488718050391022293049856589042823253133228513453726602018035793781708669762176607875782356231112109333926272860147771053069411499615236148962945532272286978445308179697860617485053623300494598351549750509891830459961363393804505026956909494839299963307364938172564513413456450758904847943040092944072106963244063373932408596599788317689674302384687179238779361192916146865068714801916724681023589490262792389928371748888988594635770926405914719827209654351956959368143635564387922132018482896589726025755915447682129920677934583200596860534335149604249784087753834644937439966909028169774364647854871239167559252094586767998012075182290925079920857235304756229957724997171587348948061625685799968395819911467878323149170828882707673029779291365610483389946810231132195388193714239201676435493925136331004725694878925311411837777611071679653621556837882211029973685607065898997048033914208619480084664286432981993913479953071397508498358446725441215730025648874191420624710166077204814156935754779739487735648743396462528550646056049258697364863753889321546231452500584968971663040882112162395178787240795887357260479177648507386135138161546290047394385829729780516905249910369199042838571764167806639462304345812337456569626570571155139985144010962106854195224319953249414110032388632299596464756105276082791708605629594950724416499287772053604892671493887373637658144074868341818187980468481307554599201174296121920373321980837075279652611068524132074778886673064332655341216819122122707852631001336735837746857316106466395965788524817559412557262221449959344853341837499859530568248045656260676310634340481762481663106445067649810415578135458974463657899504807800249687370591886742591604656859104111872913929157007907758902208354138865126489489368737699668187102408305191793396560662332937195330817708284335081896938276555860267971132402033605247493400125731185249988033621619707632706490968252156125807261612833680012796502846188143089189293341535293605071947359644573607596120760508465970400815866747066802620567525354768061571832161793744746241151081579602853048184455373213566949793369817573479992697397491698395127454839243876894182505547606160230880661504588251687381896332002561072369229723374519056234178962356338543684999146370805979548652194675554345845242064735494819999129134143521791305247004080791976105896357672069378367386491449840926257931817891745684655623854221608550127304296066236411533994936523696626955231839285202133867011367340324751904273753216019166824938291334765510553800315818882089677992255547030486082211383790176080007886176876496662193198680358109041202371698210223092785715266060368979159860596806943640618259109896452713449471087491895948036855908897714660382726430012749276985638114136725253535399507276015276856425030453193450635197381472866107126537558238504315706819102098641838535715973461633433695958925877730808298198507442487148035380001823849190959044649426016061530261215854542429423000690458709950583847032931639801421914877501428372114401044555690198709807693627202465253590576341856562291149845486391860725662997233861184429118291849321675474796459743871696552147426757513751225745283351672817352552966491146843299193029030549485806660837254087560330746303052836916975479186854032205271364271260373418306821288229992992370161378245907867138965866916065311115776048067573297723034327017372308921032419507248693912573760795056414568658489663063842580359094684295904757299515619770711242170131752421216265025374739660693759106923821174506324653907782764725356915867139740639179338685875834413280799337893403089393466551967017484299640453562908217494159490499356424657158315747708604320832081613802456667454148925178883254608638347759762925351827838389676383491470105816236831513406835092456636637602463125723396589781990571639932765015738644393265983338579651006574671576047240950994806838301108619391056531186335614710070930192787665321128835062535057757559887436486779231181086895851096268245784623443333006242699302112199093051812085675837244284236651178501564832536651312165276008333545701682365658488937187669388439989690556370518644385646390417813125315981746029807998241865573543113569847756099373644975704161599245177710909131990504553523901506966907420460020771279752353409263151516421608941092691349160478865611311148861247588730058810721088473183150544344209954024492590740192847341210315939612534703690092390344452713521889439937688941189002114758919345866023438529911017232241243031805520507701420042459774849557566271495915112976598316950148882923441085472201436358321971141525023206960270707403573987548208005116932874054122344753636111892404566705323857019445669197964580878041215352753636906571894247406683027867076674972873246020181008952247346744054826742990527912728564515645467531834360142307900116798782059721032130585914828040221787899303227403092455566841431542089788728624370340778837024993579186078432581806528448203547335843012573142803136841329653147068013973662284169419684814819602881873282186617804340588957057015945486527843365596867641034103406451952629696585815849718494221117754755804486146194682711613380983540927811723520270702554741232215190477830472062013996963685884402951611339398819937081324593269602202846583209967076597959693683590300062513793126036585104712376498396671715474227886748748921613016517213065963643557493342052167980132186842170885214341617780233656207008408190904034682207296058244493010532504203459239880300830505412486035982824307164425074374189431144019602848143483476770675148601666011881573444311732343135992400667989187588064176441709008520318456748278784050414827058926296072920994037379781699484916205234223962528503776472183451611757947161597955665833164678246551112772433378031882644402167623592427990541016615880205303086089422171934721143968740812189485680264369623199443375212165846026248162082714130102364617960883362120410716280822800917768545399511184536118725826104847815267498962423055727267176397957059917400598832280290804326362630839033571280834552395067779970888096355666749768168505501173123055261336221539511322367935609841708395921903577202668209601456117688358739614858874727922235166882652370048238093501785443275327537251728735775950925452715793360034329398884942399014344591603841852629777402570254015232311770643375656977749429409543064918541281015306548431026422566016868781383134854738117061503880077384666453392414652184980140832758598790165245953589436943847207686745296720777599863769866832984577711723501042179507152061117336139845404340211051071475758737390796770343323548776970875146019747598803029713680741376045795608587682467803823577859537689274992354867835681490656109830732810230129068357850769930985610270884738826418365863289223038536103565986607632348915704239665729080190766602417953918921478076400691550832058714184755751467034174089028243091955895120891710136420318229801336615425416184055012464969308222457429248229060013075726105481417611897852562672004813026267571607913409060810804061795916795986788337286828373132778696895312163118886247216427872189236488138271738029388557733866581808870653686871069082754196785353873427842012072671650453927028335351643556301367231805327979180540954072217889934087103978507085443576573235770457050514626320586000563687408733728357871624937832426544022836068419819241924713371589594190767365234777834960583742269342578692987654263141577735501415991888905141709841085637972744005310252433915133383049914486069269741015336474597899978410385013326668616175324260045495502381372513950564667589208503833352840313097371650704853268884256893035690210359878717020969549130404834209407149118323504882932894567834746496644061104553298311833734784965050319609037372822512922949442487339861684293849558757161808269141949069587825296983606814132986562389102343847803897500886021935564133587151581007428800684536954386173185964774313323290895001279825030109090794616831169992616771044649290743047159833722813156778714808895115455144596936230206093966595783347345088234654150958363048046184278823152650568963046249248719967230953309562254119151988728799092095078451287171697913384863829286366401646053534164676853615918173855582828011161356929458037935632615041052565417065245181417108088693842948874817917766433639675561589993103207874421251648539111417837451623504084787496014185479701042206062731483407114552804012422469336451817542276621728774200032871639638738802870659135632723759170160393831842592120008870335269722719791867975580858625530564234317136957143403939793879389638151495400019988901997371971564995499089046321169664176785081523591447331929326860439060079311511370495684061202922323007188056055565302826027427041688813233741591492349793584507368549283023727893572640786273125256507274253634640292918900131594596343462674119172511387508684529693439555192289826650544807450196750637448326484689153084267778973525177411755561334594676926781262866094113954352400870550920748645656724732251663438785541453385687995230476282076291797460052968028379731281350607292518659057136382444901760916577303902925151515262252566433687277871755083897826021135252861885685322920230247435630756970576360840771986440909417963532148476566394550872419018359703860617239917507269321336723909368671449630400757102820620530936028449055448616014021037596975240855026519238103331222494367115554523674025309856024903533304525219840259063335295616048594714963458379713481896591029639890539078143779254380024610653513795711826323080147288870693985739829762412832115375520148718692096974375960825546917524302332973083233030985702841392080683204868318175161531042637545316840472902622105785379763168327186722658692848982786055627086599186490075795737285985543106805979996613331306689425742068820662344461630165324493293273492619952322322148602690566342731206287803331468501075488407570952124969583871054459098677192998944195760534605396352420315169727042170232513248470715407766631150292135627394317154818408292745424179213646062715287247579554583607002509785614804321447785838516315256851036842173928256903217915500933699405822336381582448159069141629558270102279383018454670341469705399701681478501819479626400313014835362007524911993848623434129471273121155813559488557203193800787129227327681745527138022401879088053643909077891569649320467291312426341056958646044031120633118488796496811260688767894682493857184214752145167639702132326659712933497026564121922716796179250023831030288856986156119559238224585249312829586356143099688339551143541597321800508529776411020845040373529817637465484974415582730936407934937642883116830121363519767860197262393442966204948306737196621167417350730806683231632768482937202791340084551444285242238367124517173387940595160268460369529275462752857089410356380616907995420577775897202639440627693150615799181014785925102606492079737282381360967703414345095442759875702923058227281531627112544710664658299623246031950395815832026144187604453346098359374209898778957325037635443117864363003041919246376107059973036344504969539557726293541528135593489099189245825442403204729729423603474334489448629976265449227446159813132166622367000552083156061246609988015552932257666541425856056990592629818027402206062191432452802647868078073703097945532766333457760962117984597520353110940782691705191814396379408067203710622403310914523451054501088077701070653539202187555750773693996190066131189638016183109817581627896098685758144817606755907278943428891503128321610263859042202257402818427242747968133469662937411801031089856910434520620549966103956147181085364872021271727012266671271619540000728444503557103650652968534091520331840844120877964582036759315067655793694205458836829039675717015341795463364503656907459998336645102640739137333060857377156929596721701607616496324411197762265518473433696368608066417490095084785387652312228906954572087440365080882851428702903252257692252353970357972985161419652605617944900490074425542933663822733778206379645703908236878918383320549576201040640938005843795224752975214563074113225189203521765469751041996071409616042388199251751441950353695321426051085543095283347122585771225789396315291739433787843277791294200465819222366946137136883988457778664020231015311153152035176045983894966883653569926499581346646766724618665012509141802824937606015746759740037436548888813958847555252956856938720074778832465752384556119435700753356741174074267655908904027704492057352959577704712076024483165017175388608410643016745711656061622889057753787569378921701343703936090188637671537933169899161525516217957891857159520729004995333375440768589325718646001644966782463441189632407038957836509499694963097966143657827811355200862450115745864111667421407087488407588197420550535560560421299980849468881061355447215074805965425539571318267818062594319361301333206775895986139480534180917715982496111630397108052675366771030426427657037867485601926886239042697914734178058122788221231865541346475727493448917351940703522746619085457082839767507851180084564697644040589048579039613821556201411530186817188655606715826610345844628501687714155180079413162185511617690705694828186226864195327363606842406306780663803856719207533842329793459528593038300292060386032255967371424843668430211563553988279366890090849285456927687007596491988269655593020063460615036601266803302089883372533963752575788556990880259027330426946610444498942199441886840361261962979273691064567334148250139295503438273907517138151407861258613792977571470828187570517457547518252745540617177429211290693279221379549377077363305181640968605876835993668531851300022598721338558919469735532486699636240658279644696062778135412273692501333694281982663946642768618620317830118393352481591362429040154735763664604188068785033535747284446553056755370130245893457483887765140935543783002133752076279553926598971024556813761341766800166313957705742311964091753746584967398521302474415203372839922849195543881221281620477892381585306650804359046754175429720701169538484628149196168268950484069253122106521662253190177745731506250439386833089630551607834230456098570958517053446047745471366761969793335627329336038325540917696475189055120952281229119400568179923889255384016380744039883336908203397144428608520665425814343823739524845128143908677539238524400060027523248758504227317424460984433408955046944103247409522353325304201112635915960348622493904709093210583285815345787268468635341633806744873314111739483630428553085267283819811771221251347187822920373379393660966924009290883602923141863428753076958928755726918766133045864471655027319952850828126700284039405082076299866626077960385878998668916178750901817179167618036442832345369263260593940377165678563144228268739637631743598741293921255044850296918920014917803188942408448701421495240556641427191493441143193500886393200479047188705689407156924957030128456653300466683460937723455524561675710475354497814027933729522074964674042104326438605208591419478232702200450162161932399425142286379164414057972404656574701122985105041211511502995958561978477012990045344208896354556893475702879573370471843618738323987240651473026826744624609862138360805046470689898975309666140182187587477141783193596484246793182040871978869296055423307195039575421076436754348652603993499269815963713237210977090608804115949109286917061494129378586811072434320917462289329145758446648069707058350678215903907387613257252454415046296925560569921742930461018919308669745357115488719736267614360923656904026088665404395018937405694447388200905785394034863831694586895347998740376552974801276508359478614766099623933576461366227637524424613045499474108423794959811683401195779019159509761774937480069333983932114768882850241454976273379480051534722120561607752062082746774390038181525278240018141072280700652471927745454222114382810877215920452683952529315884755172859082935240727794296224226655808507524666082314899773123828769504738366525566291682736343160808603044579173736672209517174675470074811604924843928510702108829191938652618311246419975704838134249851800079052116124853525421921454390107915607586349416405669751338639720925172034657549051929200725446028152649247828464300215285916622257958306469806209686257102236825603895577448370471431910415461825923405509079564481734956531608644533103989884693330566880204313673992773270740268828638762194053670262166308755400904224203946061255477822630330888652619343770482458015991912075262308237552125358084730057607636416800110454305356262379049446812429266595437935956486461597661188928861173038074926605721118016565535829564956205808025382241468857290340998508111425950434132814065291518098683045178669728985825612915962085580206701660281211004947328077616513808638034675371453485311169338639908737163992166647048839873358956627871451608075737975289532662009802594427079734981286458013936037735226579911304105375155624422103289352775930535540830520513681737168800590431080479406065063222711995053379998995286017112392994354537061607493643544671715458688644487042204793726858451936343665319241610381627172421760286217376597138578661209868345719288461167605117195349810518311236718392207814512140805677885994708214323819554457077791895539691437907221025343634472881015633984175272997661765218498904298677615132642906199808143824972197299848459919768722899735447350060415846051565199597432596788248224654879557357369049020795156683877176380090431174310742331527438581535366605470306714247503464394427634540563107233783206314778331220174796517854753641811953258033780272200930486982447371914504519598391929420159260576611834172890476218219480401223425630433331833032400849605171372284895341659706699866743007080328335901063884300191858088631432297476834057724234358888484595191888861900037546487065169290814264723817391976199242568513369367011588670848407500623165361076306257176981562892143465737537975208842566483762360061628954441556061626470826332056331772948338663422559926161573742254053208777008264882840523660673679987856497748983892619037545392570570574195149316873629579854222445362573823662903869691258436546369317788892421520213873915166032833752659715444086711044688278455444187627016192488396191356734618848879058812539297902607668050046766978153718077298441213688097432693487529864624770705358732570754704056485904764718928439609179346752099129745108854571679847822991682803672984952591395161238164489384072368829538013554265039404772752623364875088947275805011975605658499692206008701083758383706046253997531690291893500546313813706833523781667510576398914593689233509002656196570128650702835665800983046697643556712293976614025561791733625265021865118799402118316964951436296238127083754287753265723249941026791554199717652335736096087869661635977227963687714241232812748424049654275352502595721144590385163467803529193923268424090876732754513584719440478186345963564525674198941219683350605811301135661668100641591006962001220478191863294175831144381420800970986571099063253786478232054949021192276883457686506782383753889115478039212998188009405674372372648895417839748301744837064307159414229967645026400609432723618114738960761413073218025858870688636189654979169200486014616138131817491221486461353632574302260274096803131613928076141194549481429360770897068614790132888013969604593665967864033837286353876416694823255893212157583112454623284036366195288445640416740148046605892816992345719221747998354556870295710660147620804004647308026547775316979148858060991305377083920464774072462484216559343906176577834615566746135075581057133612125514612374770833799963263024022960402717707505622008953980545711904239618522540768492252894980909878074579025128832567563351718800110723399083795442296510040972853715336079660566253270725660256399851387211546358466422277809169553686105822644763922274353748369197535824111098019588863352074711304511636014908256432702189732670214545572141721571165710712519481075703300823810649419178165274419212649692631894969889954007148741104948244253826374333356052570486880969366890733182842997249490334591644096608430249122186654388254565246313463297835084304609108562350605736046872395322626316251617324807727363672283384243033049312070396441949240978849034521085368879064419705883970783263761752219458745369964217234690355759308106095994721253072031338754962557712984792316194079510033269630067368217253164804111158911445474618386083672236483800885541436876881156274722109267621180045357191662305947256336943218824904448077493904660120432187431320059273389122491960028247657015165367676562892993344006800074291600647267525703577998116688972735158300004201620412733130236697210825073405656834851595714073113474123590053144879158583169473385168270865083187879679243843587038499143303721838528487447229208532552923535271545075355513487600821573403060335184291005303773259058300459871729112796136484683707785834772055703907075992801785082140425759061150500220132425268292531150735944874350552824707649565714817518764042673695868413421508114330396775273130101720720205408031332722899209398200517451629510887153669833203432863743144711350924403795332049564695225223084908780368616778197874247206644829159375343452932729094879487448809630223255448344808607171374728476305237721440242279511739152503744507977434865642284363998069617961004468976289542708449473504779797091393796885871961489842781202962705153230824128068211440825380040448348934855351623969213599643153218594990208652130871656721783775477690727855823579271407339198937652181695248528466380956771039460962487232133284171022415636852307880759058431009061439366075042894426617312881846500190179213338638624563265789864407325424553558652129339355281932400570872520157705247285994232832046360955913482885999318715088037999057220477923229859587488604882881226651812339787099003418212305197227280748367622303851954358432039578703835792572485990972925943516894381845424964317633694228907110553471402811945005366873873786418328811600175953320571113214037090651337590695663625086567774958034959853932454782741206500883108693801087910923211188421819378407370584681167356184023496256793458900575820626613108646930428008705405232628156280480314740617199195812202616369605992610207723075765282074354606787028993433354319234729889266677269750088636575735557180412532604601380591437784428545629146120358090284830999285166118431445609188141783447887272713299641412839274947556299103907177266030315665377443128598366597967934094364478566106648559425162070582171829745742206904835823516156325478074548173124424650808908925997677328896138939982024692327622073683552906575437463366910761224656436397199150559329285667125918744864868581078855054475858735187587151450768018997084248800585487081322511470089018220569432100945564181629796239646188084668697267212812850789291207194721167884910288536465769413912966353314474378424059413336701871749110521713908816268588537401639188936283814456474975906930789351582850019992929188762044340978937738913524376499506973868140204800576662863361826364519997523501516466488065724126761914949738482189768099616802381288750991525581313793386027139589269870199577831712343256412462516304935486353554922557616832988494918378279877871045580802109866868756023360700370434207980081337297023201275228565969527590598149135868114852226489803568299286074606378278231490084603497224075065177324451314366532538726573884032546981113688485751497770427182511959296708480432030487475399543663620240856061998274811672343130622571115589398259635609562208179242171354465180242243255785446757636559544598634840372897618298041881288366964601922634663042024339265675377572303756006776199704683058680346862129727707793505396199256030652308238279070809102104967902179425160395960411432993129655798405103227193138042101400392660251914526321389983126028573475948223184449280803384709082110928669560749505100839814392960989467020859553949903871653087893430903748592848366953930940352222006971054028446724650314619567163512436231781166067155100517490464596779235268617322595344434451522537409649891452616455983411952631526433706087423141413036630836513929094754472255595052208105399283200369979461014871729637241506002419596857863373141128070992656986929933436749043697069098294965012069916539036403947135514543106773204670951398270505941763048963987053555984718158171798799078620578121892607235052765960305629528530914591021437665488648165245070447533606939369635486101979398415321800655059840997610313620984378819288255639856864444978900438624275245809984566278256775855569930777020117176540433156885582925698690215011798109301218273289015537618744545232650492385271917932721408094121693893137016210725477609814071969541551232642252449735207671384640126852593829128116729924120326669524941374649096035354923419599090373652486790346032406556629994483494295363783627875769119838369235560470141990116427833004479287336148411814521991888456089054985447403684527594616833430386244848907032736673488033589755668775629098231641043260863758442771859361322916499468598665771519752719781596840214206308005317582959218088029850224331433218099139191370452628785135717770399513323243374601100877369601788478113616195011194880614396001082145239214553790446311994979759114844901803024107890522322756343813248723432085422369650086957767566993797580730405207530009926843380474511073278610571653876029699956764816896862442741022990738586399383196596667090136518523823720194266677052114352191963367644468007864181460941592942062995809101463472583072838923525600753994238390571053539713133053849211010812144080734818582329485063418291056180564980036258108928319671890713576817460456485770880681611655337264985262680564644813922569975305780971502319707756443995744843810247087834922567784000302630082965806326746395102432515800674861949616805908164806085291698915748197784701399786196144004720140995606297404263022572316856978713760746819209314777182167920077590904355450468883074306501073559655778495182956240391337869088205680946806932495646658676404593858091926200619877113564374272103808368559867844083167538187614003549053616763812985268247930902114785017046068116947519341427211727794793704993652366735569280217678924244421067132556303269563952937920952954614299923504491137533956880022511485036093010649070483856518678540272735465482936400734235605788010250160204569153624181019471460933976052165170309021223740052047337477681757803640102181291387417448835808203445327485739347744358545069609775540829822255424179003296067320211004468607239203110965698351656957806429884448186218709103140557771009866518825404796805107627710798155636735360180938215775073890142944483471040780899794041763273427976320135631293150197082707174245366759548337493534067618171485000230857790925558359467526473316381558749215569609207843130128191576311994589599160927544082270887010614163789042964527521550133029917458415469629055354434288510702315519190242902201881403956928301485573501735783762030097595341329949180243960379691628583784808141243097740922124561934268451690532908871110167769318761092873537564547281921724159219064152617372113070792677809652439450891674116544888591519831966684293798155505777723161004752093372007066287525119561297042796653129795623957094395468703864762853049744151047359449138782647789670765434858849252632202344931529109906033179299236632035115766695252056914322088860342278707421643908100338563821154938033120713374974537644553970951014964381338526191093176692989783783634841883054612625120180161781050552102859163947604320552392559402100102136150528859752358110633955155609000069504558520059630045048203140589843625480670277100821858596336184835613870313201984553385863677457434214940510061853463394222375436201499825709934703562394210657967834566051156732664183423086505627908946400469554865687298335543385180022670861238150875474705966410930702048511618256584258451737909359496609749457685852503885282850555532542128965736080997789025148497033005028628488077616052408700132005365761599588102977918825166680430758891948837878611656942202629082120285240594924418408753170305680532957542918634268352208093213260478144600613936769609763518692574023548695059751055633775114361985806545793917401046046622321696640974567731516268091378950457302107523950340800697729006019719655074692476231599236147050276812350971788440783132294705496807640927914085062855464332795733288884497290396232274355439876544153557945162269621721100680282305047058695275047991378258037613451382674789312693465992943552682960546922960129536224616510626566520767855646897992084542594225712489861960298202985048210577265904181867983152744963908314218260983731692755748988848803956796459005007086450700417455722301832147763889727692085549303111696110286283833780247050743620503928784871730102357012219527861497004322320747841402253710750681830389970465729547171223812327156550662743839243817174159056992199506000022739711637652841200173359949350383274352522139514002317324193590076787306176475032779277046223020180055369520737735248034977203715493215697395876734928310312604074836819565532579562066129052496451550237003838897199079798296746615289457906143159442395906557251078630965387498708080225454828352762985736633125873246059416749479445742355625771296198540428761205828186932131715095693047873836618543726287232384568936500612245091629361018806737049503753788727712253133430826206457778429987043475639980447510245466627243569388419376998250640988165283131879134555365777331487701305318481047090555003392116352376702164002928402009900707909919740591813158823738730271581998481048737270686198697029160188957818383793314897297847790055395114258591650114216393176896066810138925493728771658024118443834680819660527121401642920403946125313545994425472348986524166916253058216612007175190549815504076408893968128336431432820881267021528602879040333556984044804234816388160925478631303396489442372508789577912068797876413368986668502461151718582057286082255097735197009222919590733292429935650830428029533905217416506423463368704794607395351691840629644279157393134447523702889506026895923495900377788263361690550543151660511158599244172784266160027824986822915306445622524204554914247914935165791940377180403209042611904363328703277481932629966690255808596343564312971385589134922307849866723427023205254877761205285095484697700240713916336233985505260680218742568183389353766051057487671917260378382628818795399769614723713154232893432128236528420222472002405922475572302848461556818442207572578790199030743753134208080684668566402396637521075656601245369061174173944488227603585645652920135484474287755323337783123019983107407342078683064023871361911173444324608832877645355012223422527792395990929809247551492043434039297635357627557374356752096326982034199818231825879535884904137921307554845119990923233239141790232608502509959564390444845948390608609585365886951365684443504301391603641649325400089592026954006405591637677250966815188456477901125928414309454306529555790378618843520519170970599480827254340861822046154032193407598597794105102861896034485159016861617864008129104323418504233685686969590716762931183716235566331754288910842378107729939833234905992724209442830857546376224131864238203097996286916961450924543908515211266503140125271146898792824546612564208401709734312317794459562361334163820830068832262215445692213445141798187157091753798354646618582845612520767832120523171173992185017147532998118105311712130411300462572893013259003307260147741234801228433007977170809144849236533901560160607645780419713744853459793489100981711884082671067926054606061469448159036177945828697436697593376678683792912961315564826239405473422673102553373198652146578798716108938180451115566883522808097531738774424852488187860535910484042000419583796361614405082346668974666827322753120000138912244594283409720573840126077196303237662151896628787367264042035370890240668472219615552352781653246839500285114571103882370483813407783915728864256164308715962756726429606615661227007749674045979141387434455342236815726746201405788289192586533208476654682281758919392279779328241200269864962788417492845662779277749299215187362558088192852513784598765198781602791338216941997964707232676916548157151375949895928088144764762954194994142954609459725242003246012600935194187700802124024895898079246375994054008565647225257671221044391180924727827389338734800781331580232550786751163479193593225533285375664530218910895836976879790415885316264734160685058623489735678222922723340882669421020076773188160942248041854808747289999146144425685415853541097960356542847919955444747503845077285272762413179024772056116403593512409771196041739874132700040964706903434760186856901751263621435492562370123296753611250573551166311955880160353693151631762421919418115158489759105378038792933328620208201309018914553003424272252464846120047593464711498095157677706542785919828871604933511200964427044724959805297774856240871056025941965963260637810862798051973395021289492374103849075251931825727214390800138778707094268510842946654726248074790638209831328533336138183759377786029879124553451097894342061921103877781841023432095763521642467588563235200458511131036510625996886650872207694602609288552534925779572439106976351111249597463720452143995407283045777698459615797268301293570864222888601569804409786954824585035244020665990221930595190612314344096748299187868150688191509138991299968578027108659417826432614159537973222148615336806654192425538962226680513994529388785151041511595210480202885145729100913131389391227731163036895526903247032843520351769372208460510706016380736122028317982039074827533797286062030678419336790391652984549816670853579624342600729408252530226619218037220314354521348331331260867898028835260895638468694939244261452686735795570879943052450679449906907111120403756070442823210290181130123282434469780107462940551156243064643844985457813895283662062095609410850000400117366973258506651649719123218654911817972194494630983536956460071839972360929532510687802760232959551196399934754356914779840845883310385550684029466336358480359728084233760371286515777426489705189523491386394079895952207992641479794360236203429913355226545126661856521576190701321413960660155439283873522775537037427804512629535576261184824249607347677036398175013197682465112425178809330341871317284234592583716851890393832015174521122943636320302746394476391917326218773373827263221768484871883438238227132027407321973002932126482437163285714639408461425723243168355392096665703118055313091174572115952056763982064310926143753021595247829858220688150127699707200191018527977578847752769895353947671208484486478020709178442858700554793939749660848472579692339774927742561704020442201607445320130089292999656096539070414427214320744666450055411748370994445630357452528588601699572409078390597077325806055453691392820638023708314316109548252906977365587196465180037816008842542635921687424247932731556672131630139470318255789441056143299274934766842013813287165256605124792123835614073085930420472621002642121392476092341596133504631808693645484620761047893416671995798737110006068957565606103478499707308491234942065485604642418511666702795186877169558350764004632387276572698356876055619724100089834849630207881892125797263950540037366094771614173773705012311302306674471734821570158871030246355007773375109458750922898065967567293143615814179485192968313087953697789625877694400926120227213646904173573381036791806251234117465802088549330411876581775229815148744073818444610411132855922290243334259892272028990798803352872028250935355693964939223718565276175628300931713585199932127188513735545995286000454187380638058652510535946228740456735339502224401770467098471928060677236291626464783457420847740571371476216375299504614582480436181083629483095562556725357022493809415180317810929383004240764997286692233529336971579058303405996289263359888165631526283114782738233220054441642649963724719252936678711556309451671063650878337307035847868843600910266845757148381606117387252574161396987540480401955110626098526623743285895349627935319153681441117633826330152202614638247625614674792376893090013132303116387176829146284768212473050665533850983625802601175544458443305794014440662002596901180962895043006363607645138557958898584234674099848178500920099546540871618857839253295593121519903848433483210784944307891753225687704381874773466973750628772550337117718272227960647921252621903140577522768643418431845009893118004429813559724368545012843683532993276342739032041619632861617397634683860331578101433037286645508745552925423428682201695062166847829763347854198675126873463109798840008353897543563239877520186503588884325530792959221790566289310870413100311061263156381014924463810785743059786688121628182309045639617097515587908121662252840364299690606631925843245534390034750859645860819869894841583742680663253890924569413004683022161186106612224038367604681660090224432596410804915458415384181692986343038828029769255475317204969263038603081112369967797700057799581331213733381944164402373436558273345245868909711439419170497916328890390755037962979315367373525924447635571115563727127089058160420797407562838288589941189850969044802427941256902659623978962886998852088950817039066343759284039237016824519535221746822152613234257560971398807416472215026327922605858871225628527752341815331422000937192009478928092085859578870249710022764294962480720491905095315469795445489994390218828997967197976075719826273001285868754069566857116552796471287700803303350454542559265678381338852277547956659245604712223688239528418656211853601924071930709366732248967207918280445630301385927021562632210189421373437412482011629933473037926594039009878073312817206837039119997969399345982225771060635982650273749214522471062459264432777505406720014851145122646517271830693030633473750381064951741751402336860130637540929689818752517559669662735764081559384970584601237012556464835843613327018061779442527656208495549279152505454103468409040300935737508887103272834102816648488644075038891122279960756027348284571432453808472222632079349358143451709060101242299018034646572237841259363399308744040839922158060416533814177919274260606835365541156872790087099973429121636830670899724078916005019934279548961863998445682862970063498910416699583511529720546912596950056675870808969802680834423045015325038637127969244094327850515517529921441188464872972942006541495059704616525664650590524794468783224712558407748303227420634494667784296197316117778020233834665174566850046337036822224395234775845732824968387896168425893928721120204205725446193655804640766515529552834386220079623340447382019396158843146406212185800723117277481212049530847379965143306023579999160728252334796731230462143759987593969338045037971289278167220807519482591079550945434499257341562690939929496593461976867605119353424987741482649380963925889447960638789542078514055935259691349475695031936077576154056266699529781713080315458839407540508123038250401851897564114897907229419942350638817083703097142404261760565819954006109360659596140983176166209664333182349762164941465142629724634454334818308885454636350366710079276663183186178775184590620065117671279581164552519423647928234451151283504171078297997363144881806087047258411908939026071628933145479229070172539404167524048141279878121012952622494120120973304520099697277255662125376480399242225321254680048941186152645185857382710468756733987198589867875750498047467246904853315622633750005913701394602652489227617056205904120482545613821176295860126571568078917781027727162870520060304413541415010075496809986419140490211431383323505902500332472779978853299200871034362827822510388647188346226000141087104998215398925790465901915467019989055825918953391289119512874260905164598564016661342745147503929146315823521302742556522656925683794562317191775779774113707012383930942488633825402661924034153060172768345140732597192663221942837975133759048054484319154019937952306043340394928566260731178601834978751309065195436203310834137357035869254405327100739589968375364408067962840792566092688917264255672014992044191350211975070907976112436306618767161367953048167622518818632710417087073892570223751669968803883634707694010174308960717038280262029464231980544659584967394069015922198209029359856632301456433402137726627170506705214750439052622770977424242002764840001510057501323289914177880897085309965860880546940140324334046126458872012818527964741445090784494870229933307260950325698687427223544280005656964199802164295031567896544645888144758557614704905550398973258564669964358701213568839529997454963697429077987063776747298674438194973852043296851515105142144604768186675923577752341888531348455710851010908222040160436139342352894445713827581939881518273165358201217169624244449292884422569192146690063689111624444293052875384376957922154155274991710176803490785873817286470897666370850401369913205134668795495538899836063661627013088719563659977572690685161198275158148225210435691795930884606837906608004269011118494324414848903295321045119187882810255288591759268930133321133500582850253821776107512615388617641881510231675841257258311064573684783190576256554239062437444208432963600339216011855641583412233763085345055321007823743715095133994663411283254640685759941266989725487671337048832784070130643633573823683994070902080528114731489498905217683850645169719804275129924187365181946749116160916356691468976899692847236030519721406849350183585412873430622569074753594658861954247383624089032534992073020434908728462766658534968289734853406555113617095200320534841856334795964827178221768269172478260106094478769651634274620225886008309903240882116365008263138039710510443572572634356140466816754238225695186625942477873131744129760233842432950833055132354558916558429158408791213240580804413903858596565967850923478285813385366976396718358416137674139725299221532888437851797272683677617344805669398056854918174696068235054166413683767756095942395594704407602793998996070207658360250279795334075618578354753521221769668862311498892855804470286538119368187990435323096261518643500604483658485660076720036738540618486644115741179322672925255238647990101180152922575403315295063573901203327928781513602822344057649285204692684747822728088061354821957156802850807399637194638972246468691137842093074289420101718993942929248488694154211523732508295963318736708608123121930583347934946139670751469651016221987791179747503017769593473472996074236704305911506599254229149600185266066673178884604960439830063484161916678951954984938639364321535495446610429693803676584204099320843402192116749880313466911200072638685828996830917031081701318307456618116796738842633054866695593703008457517584846539810853568350097423029529016566501081197409204493990543203670288570070408760790389285983278213401475539149640631357593980406168858197105646010066176539203726988413395303527650395750561836922030057350508414161432453333779546893540060727834047841412402678518725001098899971900822653602781700024822688815278439034348646939588388495268915335474976302592618994108369457414982806422716378989587285103682543039738561030007047509099789959362613846754093147564803056616799201690086676586663276709644442103284967358446409573367315756924901298887453716857541442057946576092084989216016248949035414075757790950576784878408426570956386429811936388175284016236694919514434206684018801758962603900764927941878142843670348472857128380245042720051662219932095571719603680418201599257724298034746106750714068365639152038471675790482255196950024291479547716422523929311073549655859158897898522215384633810901503364788763565974433342277669666164468293898258463048331081070598476950243035463440842204489333268055896460954382719866117456101259575888446477914272097301032319959627947909804727768904791330505408193010843344433710572363979671723989425233297724003750050162152502096913777194267768663219385800962205937840705911895620729411669758643590672712265473929801163882844445028917614962602278291510612818213978501738361480172563931406628813030766977883343121626147347953135876134895870638585171686738801535618235845776285956779864604313268204700500862646754517684521294450518123033268433177266167790443445962579983853088089616478539475021738031780483117163353150590663792369503289958063854354514349655349488244039154182097261845089911803011417871265809963794002430340887479025394724253703868083415219144562270822269724238534020112151532406407561377439112394984180384026470053123586372267398407875813669895273552621110960761560029943102313053111126201206865195037688692812146030216041099708256330182768417006850663804250252308439297827741936723887627125497129047979907722295159709166337923164243978841378121652960150846164442671833668694941739985441902601589344845512281227628189675475552711651663964776490827156727566376769045327055062733184945839079026303077011642133036827579937723038467754036313411043134036056325912387122063014669934193902221392528553909508875024452999975188605211598116814762246370966022232713383626099768937265662609240954834678729762943930656856355616580753057255052021766539692447925641287077650324293123805408744988141324007942384426017115079653856183836572840436752196503177605078729842950203879200746092632441755202542083712219656946446776536177599730167389522118839924675533067112819831100065206398597013288588973219351328606366178367787119651519902428200264527373201317563913594459739921160510981210257722187466636540865130652401998337523992953846854397088100359460350168707242737668738088741843869565217910158356764714458757713425670777504108955824182170033467677742484292634383680569064201970668655623942993005307586402783065957439953400396793541526462731840906894386135095544624919129635679570095294001295080122039450912357933988992804689023893241234735101447217626309109075694770097571787983215383722445323770289811634407509912940934402483337719231829303552270282299716631874816979715384287039108637891885774683872366825698519139844124558046025790311621147949271018015336322934767052986379881175368401421524896644384664372466648301048385769860770584854597104645209593642887897896078464250458424466493685963906548514783371927512605021867853372722703320137357524700229749445489907521061943783491010797603899004719199587827720197059970300318809286172121490918833514404195831227629016653605334937098919301825528176668093302185331170201511299258827559322403003334174610853281813061315658913491140515907087250310193806169704801950022519323780590097138763416133899844161009633471400155090064176170713584964323018154408738233392079312502589757507335945326319271593783247868230294338816303295254376019081944461427057274020647549268002805931474134725404673925337899926553330753364991129862719265460952482701355753654498053910225564086683567012620004659279751860449716235288187614946674376014608317197906564296141630537037719713253466555548276011491047128908062550949082846059922183477879337172032385024642281090901829105682956676307760846896942042230384243953000107077740472710047795988519245484493739425812997219265644117828505588375852773980232086105980428654765348525048995034093700309947579225611548953624017207121678229618025167796491999637863741096338236298355646616151725530393523327548987101860525740664600116676703819966211729072105895661751931563890280951565953382417015999263094088869924191255503899208384008457246950728246807301832307310708558130907627494196714276131964555880781925179050507090972787063580513795207069170861068140612889714297475547283449000017663894889368817533547146912685239200353183409747996678054192984147749077105194732757320376076617984997271976949207586875780788530779670642069976752127883117058875195146653585823407537683906520437226536341672251427310784708648792154425555838562953216209541649865549727384710155807696633552196184206901512471704504415059738232399911180241615475009213189022958025700120247445663189337989817007122379467756671500926276142785560775203140828581780062539930028131894306260412983774818213376362491107426076750595644420524621106766697254072223454714026194152365249540902360919442094587573491678370680500137565141733982623435801004044268962519565438582249836825292873369648220669106560697456300380751650084644904386553613225144468115445455105978168170609982893497212915973653912429574482971356201951329460511853787969922725560389045550344442492429914115244641528468437500690475836232439496366482782867200896806481649317958187035796332121568789487468129113128755777460279828887146124093509053756155392926066585788461822086347194143964499323328258647755850158172173766504607627041656848895906673001931782437577729263444917308231741521094769208932721108355175466991759688947533713466520863185963321028675902040663609130436941052248523262558659882506810634212670964839897518941559333745464498348390823969988659296567918260702765537781836425391173054342022032381009926175175261837378617553621921410051756082890170908904786768538738344510384224138112468317697389042100919049313577195871311967804056287906726334317123175013586622408055495552055561847226095570604161887342829538252268125080394576991428804262698092159758753657446344940620964346845125200176164711334400853281394194111756256657219340089177087403251948860262007672516048332564720319454779096401936942440001126074081134296560248023792172057067931451304999723125159725251161923211746739388313225912412898974268131302046202861007837186605386912524215112463396286083233008055005295789863780560689534193232753384517982941437054664187474146762345642794410446198950641254642688200915828848641768468154701107363234405100865714798805907262311846852948463839341523333810141684093594945250848312203879269528656341532744980723759911125279553431978811833329202599997828983321518927386736826202896607618802515711229215152470478612329611118904044505540518443162877371275897729754217747977789966078081077233448663552267798889422286451069481285396513273443612686598468712594483060004131146136357254059219842433656194973033331945964378479811465369839623271904472765847677917607532864936830996495667650516653706742332206287420183345868945713143283114339580474589579943989024174020108937431621510873163495732423597298784893938696686347307860684952129155554245183489150822954744937157561052483250661089409826834509536569605168098471400693347212282583311764529065124331901874611287433766200301153251755292811614383141754924622100011633471722745398803047909655745385060571634030239918837773746649500179840099401450882861036034113747101301888976253323924539297205979833415725990498439008606898583870730103595666632613894033278290807067249195975373055708861636631141763460291895259770110406579033634624055786714058449671560252537640951428250367496046176873368602786235246588780792857147275855176133286281537695457513996160664459314355660315015825162484027704143247334052643602571928093184925114994839116715581799244206216778668154010933921652140001531387418619464975922153404458144945915923434100925642513664672358718741004899679799845866333035339189373435787126448721877863207817028893271569053958352684007402327134793899882400804064987157190206645962609137838519029363945414156840883331120959913263096965186138775463969008698604039793163783686284341768827076128710737879608059132556790383317250046362744027530996764998458972885144599797497666547858431614587205170875324588069732049534601511621318756591857949339897832482003152091169765515596283076934769707513587092786442874121085377261821636207747074024496510188284862293138051560280038656271055209248264842895866200026989607960573599903332535984160654918409546122459096497969365127819253855370151574988813317662437699626746038361257849026789607549022167717577561257621065620778157643670112895925444268049998729822318487365808743492555730201805694577321105344704246302728414823778698050987462004476643236241718544450594324890161926503221495621958221311883482972600392557072740944048918357473864517772958396480751091532817960560021933622498170443830922407493156598531619560953420213981724314175425056901229860011314462587917443536605656871984651154224324586285135086631099596343086375994391938094847760769275627644995753854934245944897337171825407586552317969466762467439642701661715364900755024852640067774528323165283535395453986685849283749852295733524463316099315602235445688114268477825604956983588274468722069173331610085448386352821414731226321533386339898556500677396551384458857751703743269088251206420020658052241518530150257932284869296382464718207324015934508226451101435790602214700174315747399668565464120862138375239239641937108871927661906478986109992074006315024379702912246968550510640374515872171654109284791669523104833737325675354181133581825400373202894531919426590642400322931770841203449081457240280112320976163923533777938347617937582347964517464292049289791354189608832997377539554584981484400172698668646381519643805305711227222681560959254808116408493368240026465630977962642309380591719283553251000913187437979790205086903454103143318382154043240219241095058831730821212160635398858358956988602259844166689422679996169990187046899557707764307603684397918524138628542168551302905881030825426105842684598680592615101272664390185610973893703142648233562610143163352297585743739854654033799768455468377904838197105777384369361796819650520553149089516087256104511756103174474933881678648811405031360793638797649964704475809533634197699419070238536445101232609492470659345900430980955979520900518950706994619055477776359218156317032619985048565427168898207968618049047773591242648863728782445420058472777601120458868101825485424360415252269136043947578094132266776493700810027952686815159538689681353844359921417736644759837018668818523061665707368626382341837894108787504469847754745380125722833444659391575170451574076342351781697846992196145389626466780804910920106116993185804282258817844763193593230113677312317233572569673698675870258255232776123236151972864220441517872018982050238227018236187520322530166227958544200095600352099691385142977891777757440451754398735022195716755730262745224880055901113903370588732642853350206078006890561206863925281641709005444523194463124393177369331754592090306600425893485275309431912665308791023345163164672651464823329985422267576914070657940991265396415991493388204346219701195180207658542047479974796140431624964530072716445457061423233058385374826679461177248091907238482995620956606072275810281757901981632871182230926023957759287752130036081055385305400382024837402838904007251130988675205558316534505542130158766641494628820416706444950102355032566426848590583507068282872642745065173390605923869070275988199432120227286496568327360006499834661072871872515819937839181235732665706191680696636831299055416113022659697958301105021704820439749391166551299309244461593114352826535220606268077724267732603038723191318513651709141445859490195056206605633759341051811306952308223765722837421139707199173685809556211089569438724134340096348621863313875095290096567126883858285207973426067198592123034202573443816480147112703085910679177097790387160851545855864775306615735214897727461265763565258263165182507700814061527977064465407822545904012474272450053656248678803637335520954309754075223965307219682087518694253847198160459790918768986084322116451500051436889825700212135754165347249262504424681617975305273748545921031509596752079831798232322437110458416520205867432231140974999863294280277902893657628959044775298431885968193693961428227221154096948746026563642631450386991148373611101444776863715138755947358975837728798061431862063152272336202522995248095795408866070444381842645280198148172633551265047186540770815390865917599489839816471656636907193691620435782873024785502751067065787676207148347692018175772176300303997198317152127763274718809741735646111422798359403714862736980020813472330495471946579890019320594514400986384682342356966617189723251379486476131810997191621109934946030435658283731126271123747185879984591226813509606385328439159431822627753468780527987768997352297589210407556891036983457297110171587170844076000698819423836886062060392252558350967138827156608218799641653339586858759849778918088192994668815320105688585350480899662772320764885649428346458239986518094922182442040443173449655122213259893439732462112483393475369279962923025327212643767964347156078981255316055821125461436880791346763781066873460824738537499705630467788328682578152624695425372417948835894792494590519698411574112896959748632325382378680262924791625526604069141195235202849651572036148273830944028875894285724485636633400078165181321075195524265338045286044606206606618712721600596508084740556831466012643840199119276186922918585832403203492319460310704043186957585828643409007656644120208483670663088663574513368853585457294236199831440475983026729112675985738846680283378247878334797873481190267249489124131224311965010068581630268731102065640698305047463754683745006553900269409037463176852042982923699257475308635900881440815762060058311971545744341272373571955498781889382564916214421236045077359618458129548845138134509164642534788565407212686965960749453347718503072326748261287169385248945826664256588594725744668978160932217689690284376482599338119300602467062458735703718828831381671169559555014427420899590717467332201153850858263033466843266596618921900666576780209936015139113739327228922142414393584771595090259162320117947412828428537939672143284759334695829733757020971069047746169778398238924570933696667449099622083581640000848227392775297735616168657543354792909500798323772632413887882886974865038701945424399336744614519608510530111502490184595375956836011197981782345597850874481700084990645517142393724216650456634394774970130043682092216642531969561572161005510950850663813336491650520728308202678928075677074853086120750672458502359138915611343345810138592385389222031535169877632684103605818925092400769040630163143837757026049981091865769375013601328040885237769056836759347533685056404806028847417646222663248506335440603640033999537375386502295904701270088735095261688883258945565501572793572135712678892846232753264629261894611551506225735403834190967731841094427121022780761906484955084403071417231930589542867598661064198626643845864610061201998869222926256041473907152055067057380758113234239406785680844209306252731837428525963708550108422621674779488168579060133357197393364398520179119275008587457240200579687384376441933273693842160535411002445455657554835171478320062995834666677569686161541547608662262140630638953840629412112715048995213896136927816763993240304159580356732030563736580375713198735830522883013189844775326143663630435676810342459617886969906546927081486576819562338609835678096325184333195592658319291343806768634466917910273838280829962984969165750805715451715139772274685243903452507976650557890107718307745283703941975302576849522484993902839583073585318765173450435162785388891373012305467729039967777996558916462993088915299192449378534284287252284846387791986709520611956434794950713334701301344476914064864367077067617697807373728517809509221640963600049123458953268217277131618410305421837516482056100754718194784907216559345485649087109888887219725264901833930713116989295274074009248720818861597147634712127772971321212464860800314097002973107384721186102956814334989966320198695637786043063637426616341729224828311528516984303466152178865321569241243882464678629707658100575669626977694678793211652404930841181554210137292224839254826500595535387640708540940164859057392238282661356001026122981410183136998267483613774479405407274315525784479727290491196958621386542950518355184521123530207916731841161440370168100141879357655010892948160548671166562584370659774503272835997528836969219348945858890587869297922501798899130347792501017812495983828332224393896619168936186067802978847120372294900694934492155608493230576277865760332934720399817889136507925880371641705740333616140965209256892375381451887145062780899023436004373750638244139020115996658621509064347985261275733432849772490122084163925842558759730754518721389015405959149136798763143296848970229958399007390707052601948087621701668811058197078326768908046254539661245817624842944784199504155655520457229944439589566100102798097417530139133202929681302073821037045646605216049756886983842076155393428059032088479305619084382480545749509514421090853102141648492879745541422580128526323016613314349417173773535313069533272912659350741341191673227054050925495832083832756327276869981092727347174967985431734794175043395983636722214679273798761347879213595999572952238690279089642159266573101643043214979578849803652857970202455291713682290580157396437470773611356880972566377217022183929448802515521225586581883730697248346942112297980681869050948934210663327851487504168593296609554291627163940416467645082793922093295790427277843217255491264042743634108872480563273500968558637026731299636790967583590241453615686306164733759289270762554212464867405918329053637398592659177833392576942468747282238905012551718405732774412385310601214705707150555275081639292578881450441424181539572720133256796096511158735683497478780851697568293296261686850795620666953410808177747297268732774237838500177762136105992576663987061488200603637672543050105758443971398489318922726771747738420310745821478812348393387368028924386095464880123313079745941760404836593790554150535420131940167845675815229946517342956638933231853015548483878091233547796319005856925271527977569722950085810046060518313691792964422390679170048022055437565103289825979137168840749945482332130161656836171616055513964678425940004246267383856703753970950745596902969637343491781816925904266265510551797568362810736547773259968066662244931977584603769501668765026451786857270685028284923062006675250542072950233622086320725868230054745199762980923316446657838320870523115487166723618218107624803801388726015210528099343398708516192997103514566376313678679179793421146761847867326028828095106538234913338643272298824734110760638861800605768640460030455231955406091641476570767293230341361613844853478317330541534621185272016191903620079898881618302375272226330821075122813624696033679035630281534437735668424993194195202445922805768612992432603030438647550274634253741547391890381421328201495412531277629381285518439045675282915736384777600592857197609503289884822536497435302308631625164079991618065034149720817569492359889768575498620138232474042796085130395837026696864809579319111686909488969390693669314040626138247735813076579752232976234025974332261562573620690555738306410033862497924957047719440037799376933703848883689200076069307868189116737920373219157216800140957920150932594253740339899313071162929551621696097829392883014126956265036283296198217515201511992187506879122287720881058900232147919004895401003363569712632233049033021179337291894985603544143914912791461995468443825230148161365704518416943977806299561567832627013520621478899363842951655789515160495614986423351775521247007003639553516014117442373815148027998185686511084056379740421637004599899672375621972292561957770274724200979463042336074155785257144640646985363928976099630216661738462637215295534041159873175414850302709957197555242618969857803988889165870697274928400870728583992264237624543551032850380992143663991669260713925939892766813736050715396431340733551804782515947234373050711897137060200078674539831394210167582374058748957580695169119278720044683722634886271019266583551737054249334597201164952003679703658350221969174833140948142883775476110891301229436566260889064108662922318065677028159547061452331673407323275767712360248061767777564878943804894449586938459556011655587188974470618251426606509376020174477912964846166991878313612085088487715159910726099517252532154391376137768132397303614594827452487061346827212539764954422641476290041514866667531643800685458422800645569479754338329149052478746042078891050975021583261510172694159715427949431174865599540393570170415206803473014909851430268803972218987190803156758989984692992624519669068854229312656535511902392278202724950331697680775939636268949732504328853792295460431593258003095341030496800644613854887912940517244557449749977388303171402427470586098955233332675185716267180554905187274508086083760678688567388557424014904304099033158967954279304322747701979490538978862102752057574151118523053263048592681511913932544479405110355513698195382394467064655345511559012581997181423811093083753976698904815323602115856195574016475854811756994701765620332780366591060608124799707368482071079401955392212386006263202202644088215210570873223726872349226352472282281329615823327826183845384926038263497839356857416499386919801968391317505850789067759148091021401603107141016483095022507169682612907533092772354797012415455932635326624592322447871628029294797475169322751998699305748601483098548062413763438298350234817678602413503830888007637875332534987309506333600327773528320622722328542392984311360924740112366228879526975683484000276139159628648671383252355012592945657830570482834421027222960509960401707021454623735309724417626111995783663133467120927073803733624958879178237017654871021918322373731181315636173072308564775637728113321202616365481274191442451671637944729596607932181577835931937965866373468231848638911758782733676794992573677251637218418051586910814610264328659032619814006309352147304831378184828473617866669324415452308636350447398174874881758091032741972268795052591060866164823703686497933541225801074194789470163454132055222154183049823857770508746226993301415022658830208194641420739359195221797661019016199026110200987157380172918915760488417653846114120524501693686096780187622344996070427817109178767965351636182946658297812159545184069262539981219878121707977144250449666411686175059189403977199074065824318385107324375796083456589383891516048911743651461110098788398477016302888992737409492199965258531483750298651204738531031477379514934121296360935733394203539864736336481761884221020747045244789148481064485510852957501321823173912155786590728302300927476011044457599070858228676818888807343644044266366454942347812043142437372679099360130325775736218209458527630046106383360091523606650237844535862062301808145867244221921531059518566841013045272971867352859029999711143186926820904249720732130507282017858732405756744038938626381054649606484810323917681632287151020727314490099883223786679313266648353288527517309946055908862137583255485013972808401325623933200219679199684023793865234879385482570609863721832865738635425360079927257365487951831223524166792577173274920904940219818996613124831783698702479612397368795861244063087602203623782213617826739126222961899338987236381821846061339577634193932200507540127540607669832396804735010109121602050185898924901973533861211919046915559220470556124141291828995957972588546745460600972418186633984423978360825666675837884245272955390239670583574313054939396235175781232583185867397886662511719622257222980579586767560035314024611161090135561068811681122513806560402547403581654179241078950799588827187901247545102516503160043077685295014223403944121075957109772448800462470709505712873368332964748053164207542612693790419795654028649444183566943831534007772873382435582858175558865671377909957915713532392048587907984300639471038069956276218538910702453329864136794899371159651155940847175961449182603386159427282201224866601896060853598430902835567733170316190350823302871966869998046389089306434097130588499466030466222405489919255743195290502434170316811997592665479848446813957308281711088193694209602403175924038930834279024820603000730803540054024599382765186608707096330421294073404425546611394960906479635843467290251044008020126672485492505113016715175302855306927461998831009337002945553584244051639628119416600189842984656816966860363626191354136918453680594081324504111240507931707675353732325609802922730650837986389154434387107672767990076850024639093343212229631413867285443775001671215302757256977943263079875018288953568860071838998479105519291186654235340986548914675209876967226660745893270669452317830024765121861280841613763392365459859252976907800972279194902382523683213727681621250594169882435655418826045107780967209581932567621979653314983951458136612405328960989664946533714817304815749734346542156390596178055507387641629416914907289492043915884733176890107771074601867248123548444658332583019986053740348167663433048368283276304676784146333394377183401099220863212679591983858172739581305379927115464131211938779932568229991709800195344472359098555863364629274981047426519522898241946545891383406167868162019853095676421335651212726730477620337377156799362342633561522117444011748303859126809299766570196582853154589679757015331719686815906198164743738363401095826481890776957643953900261651737566283516238225266707003810425612533197743359028338183048904637301174112873627992379026175819352095606762156996754732488034400640951459744269506497745576268866318908904269451349810795770174410083655372399200111591350321150745984975210439225783940895216072286939042213003838881794990740804479317676114719895267662747223964886854885378153212948851378135060977110611561184741356560387601914294077636631932963462797945070348205813063980835529415251395808068548125980809688658442028673087613954201355766476263741455260069443281674299846482258729891296749934593942710421233932144785244871314065157450927745882370080321545808611962678210241014675872720640434720290896995613808105322174422528251962731959519306779709418842302445117379389010202719962924149431918782548220448995291301715303931819861747605386032959690484740985049332625786445756475999938826085171839428994013362438777307736169798322423459269278092951047645596396972547710986601252099564348166312975292909706193613645368054303018137744342904203150626498455793352844425629674055636093635474772446177042337425422592962890303826674043831942961611191758748958576380791396998734844805378487729259322636337522921263105397087155416547333357141978925152721110259080611762117053728761015877945596108926131821336075598800981737284686842762706684946360947801885731226921397294276608812987883743884057964003881288548234490708208268456055758986556549058307756147170781531103382382312718324017509776977792062851879948573010140809309400792119977848832927035900393352490364367090612606553039458855871576086229877676342865670697120535106963891094569137349679583143905262780342940507537303260213119711804261868520885651098283121054628578639976006800559335687663863211459589809675979159526699138619742598495891026398773119937128088122230422370579637964685257179780182575986859465794184879021532966824860743625239908741913703466016373408933387903397080490529100492714020515133486467922642458604939358209437738456111197826369583105156724417334975720507135218390378005901095226160451921246295133342288895195842109695521382121429279082825006570558425731996355386050702109464995522361417201051274953511199928779834931579348753377411397254184427002662948138311803445671698998904707034036918619027827492227414550082541105394921950353092374332951508105030985343928926963961189668241159505121609803704674017756920867993301565509148622529240461603850413836206692713203968707437675953444098428988426145159524210021549663156954218092892658481359516218265256224382244102522188491677000592348124727326606900982722405609246677430307704706239752875798202419426969351925464807914819475873227852111597872998744130258474741741070756218164302650356449733658041904849480440296973389470101595999239888523523206655935774818029773674989483555812658468229539340942612413979460123529395078422048191723020393495758289252952546462526531075985968772099068244096560640801456770464974357016854738271443108644857997877490290606873283986166549558218303292427087350071143460094989613121063282826850334987663333772670450684772619162847509332129616312909461478359049760002078827517285502541201320053949735877432846838606005787054981378569413685551694064564059176346343931236156748488378984509498211898132530196928299699817054974751076743503204082348108737423379690045684718418483296559165354342800240047240121889700271438916704314797311228488423272483792350736828352732199955762562598044809311297273078964414077442133007950248877661037261476272318825562888316527127596313768225571329634780368650750634101462545580252178026496501095224758100619604319265833679082763644121057624944675031298193259468168449750296360759494100073598309421052204280062564771626032194970334921021238617465438436020129580511463765523169377635496762674739683312800491389595253360017615347667653270040826665178655714492842695328510896588843852874910685060511739116930568345584894710836858884795082386277634468346625441809612041383967587499469991583518410304938585790212675178773087684518418008956830957360038832118894700807128886130354777271707778725311356750555303789886654505106739185902381151433415483277524836111867161892639614276018658219163647399671068460322174150292138310490381612637708955191014859071795456809362441216602899667266591665701794642864724481627834288197709136789314847216113719483537839605172452550960075390727025567301921542964438890887622019489921438928686991892560935597855581819944740239250575616021377518665016607997731633526135514030927792906222793261825392221458978581960611351152433364762243416100321409965797840316769943449077666692278262355251612317260324428522587705393875066846580543879800918437705111327591126064708970859734319015422998217861014118546338393656881009116334443991850349904314832740492406806199835545668832829765179336637722418113308706475765700009996119812194076278424668201060806165467108166627005210316452583594591786194296137058751639503335826491609813346211595153796604747514324498935740911079743064920219363270884697983270761127134776525539230254635808897334580954701911141421398016553627198715422297089023738219423112959335325410527863740991338069282194273524110172999112653498848702410385812191627237254370076061229631830825754024019407174228534531013800140067857251702983017330219621319244152753415725221564518741792163460218926943680791794011393255945127176233701476620778882204241077217581027120050171390431353609929866497124658612738377243151441599160207581196511706314868851823463411824309331274660548143300734464451075453843324236183106511993419410275747246909053749629466994987505364303723011928684322194613505938698750635066181120071113555805080276029324495349988145411981426224242770507181826092970386279454245688397118925990521722676231236510801300295358132240622720280995739312942601226263104660705798567766697929309482179461404393937604676574594707336701646040051680559484971545991330247522401137510054851353669509522287903016209933028325718651050672952351664088911359542720640167683572203631539655406813684064857522818222034460932854295035012958937287216236508162418757970997927938558323291928562141515314603622044426404274288238556185459615096779910037180279891560201516310691463494375066964914572904434648341855191077658175946869781260015350585745248254941680869658414760986418660482570165904308424970494696815097986204246209800546773903897994929545948977823086261027678942869041792500533976511269891969995011023212941981316976681466984338691882168043707662261346147651794219715545081376370279817232982824750360738411231843994271950040547823089415190974815326695204650519706738056540369824332093506524102046983817299603145585141683632122583889516417721503278711469585468713716218990323134562297151537382901919322801553608186688799762952048249901191568243517407597899583496226802915620352897582543226617439269530126671328960223590575487092280672654523119376148905671551794332124163897614596965541881730240233409286138813779877188136235003679557846606294013729390885697823391627515424226850339397660254962128433988877618282750470209041010449197771732271854102132740133362248437766810261108981075786197306685230269959170650571055621208184729911437289926782467579164262495540631027628783459855029445316371860595815416142445535621580033348734813363650958083241992830249846192288110159909009866133596123959330997270583164552340112522122244026037474194308242466954841110315356352695146813508223812587629508219831793753757064184319120795743521981160662732645214406098292596823562803188627058642904877595637835192491938872055454123140225708919635675640986791354777284414600153306847641318449793571853538468392593180703025448735328899197234393910791042820392976597038366802644232017876483143340919482577233854648176282812558918156164640993464586428859122843268746569013568208951688104640889897174678899711875593140627802311164145950697935767141682722282211174079147513460501396802105251240102226680790924882040552893714440530465085746487626466170053088801989351778787433021604924517398560472524431190120732055736582503546248336555412886162459080150029575922180863570680940728996697692256398686161490382996445176704394275037377997290223060624825485624276597414810353041920593740188987159446757823012810339785608350847635280802490974459236638885957372168485190735397432727958994815629943047755942842262548480464234657430137676982950691963544740414698689553566647555246088762370751134669873498240144959798549158681540560961155057293799103773226779307371991462332130998723645779564232975575871707096965368472735765940143613586101431694406814116675276051102027793459750552104189171776269554150690346317461335239529540400047203106501605663993797813878516864633728855554928741351449569535330958056469438059231049479522318234369710559516602703548642771220328797282704519496504794363212460521751574594634556652298440687838790845236617888825630950675481961160187704891993389502539113210106432237839715642712457376031599924863569841788259478714252058592829838036544042965929398733608646915189807170289958595331247613086163590621136389043635116685438321395901711593553644308184873232161408687846872304007149096755725511578759273976899575834783686726945008282525503037050342707898897650883043010228338547971586366298727832858634606978952951343147903181840623447410275590352457584671588835398805652866867806129039510625479468498607143891458216874150432587066348530271192674500625218607158813378155706848075822746571532487235782255057965669719081547151983277412072808321445287940335337490032227453198030571778664456883515946167230032957970458320187489654418939550339980299354976026226622500609101902201148999884661821992424278623323007537566120488404552143190237989555617414329493364515839863909196890640504818316832079691983921897874494205753308239886259396242354379586740215033404117814365741574532913386545305493922466239609190286058034666553386828232051319120757561527850418688190373494884451766201811363695863135064418754135285647680450469492736465485847625734789647710254494306004063658952667444913338257558857836741775923783395931641775125552608632422823880716821488060367302971832875258857094133656947099473708702853010515112507483665452783318913911855650592398431505417159784919745320032955062051670704131194620187524668862500842788284376226235195866537682111568403850606791777407356925472768365242915085221111219999377997327403255653337210178115225961090034987303052186535833454415106593728429226632908538988809599258359187903965715240674029957395860024633858095704733255700407793963232197916482830836374017448317141532380383686161263319550023668612212923050791882614393195027061431734602569098119803441274758261704804739182640370108686323173253972899816569607492606486293771526891456361569588071259147978074926156869100398813414186924892646396565510833586536780500660496640778529021389830078956578257360142814927917068807287614912827163178162794293436743113698763918061138970790679206242564032747219824815765027818100439759785940180858544059473122157667122250425591414513289302138794019260976371348092572766062835371419337230814866448600118458204305187797202517622723214908111712784333839281515306675264053112284969061458172218677972711109781137447215457302760655276393031820532898604410282193969337028262141962797092068953930046091147026629395461471124946144530048629602854523772167507588324601193111832621429187253258200914745325722572811409405209887490048792417949764871272574110885108276464224881239353989291141840154656866403542725896660695543981349707411448196796094851747780661938321883212348758888893320295677643380248366749029799963328509689887793597582251697748794655385220387891072591789169309817370727340292283252446196896440028556050938667488930220613839324288588257437997168229671354105326194862737278357138427235960140029522325154999121664611985886141809055508379797784952939489427968271826257268687875311254715859392464542490427246800031017482025897217155279587564655544995589754976130287309779410878533526168764159471884939993264325851869382460366905380819479239587753769424350822623404323253325475777484837140476769418173129688597003228215998789634753533018088648871292899534654522809304739445075949279337462745524440824487026949715797056362411342160965483378944237941965166003878501106140249304070033952193569740636233815509298763472456273129138253030407636239916663951091932700229068929100442941779730039793083776472926973328608457121694017278202697169626711385371128438200458545135545610686775382992841738384404097601537697636885387527364016022213768863545169436856196208248421077170213296727251771426315109352469872303731346116203280400004103601983082679153321048218253315334652724565902557670076033612911208302509763822463921718943371415096521925130431509841748073836957189857487417062944256501065038193490904208460494084933374966086354341812135188460348761366060893836352501462193165407984215258284029607156667704520863525982115647713093452927662466833065829006711431265531346109045090532380146495054522921670385761083594052976435551383711883028305520607292786037067064249406845030914951380220232725557835398748366266804506901424439084927356817929338190049271029994467200411007671650434128977318407891922778063858269252681639491207611642903880207501768011656147065942099725147563022755106436342296234274301984062918415840391934564079076049879175989467142711460858726334109310699714155582319946338438544759148031985264273906275710624980256073043349090415570550733147712608314217416412250343546990257269905001532877194121744343615751246289139208016644272775504205535087754890970830058574625510950055701214603144567049791553113697706427496187567385547283413061261700652096038681126692328328387589411260245550919814414447102604554189601493103047309797508728027674660198020909793744794450187194646245533406953918119351278476715859857692015896996595205241632904637285938197858620785572632346359194895925363067223571055343449903905365785828847829969418413672978182313267045754238179225881702712791987688804890485703679577308233951640001679501527483164953244853370628914141618330327640875465506685375944105993753618210812117034698863504395259545212374545219065926922349040280500074586283866177695448623237682009425528285620719072457178397236668709635912818969262820737762257956334961216110722389968721127285458738096450427904645438927675570441767901728374329663153090352026486487631857300223167530773601685372323553640093837011044267884924343953143509971817139073821063336260401077271853460526692268910383223206876903009556284657700352187995288982418848744349778858698014537411250780406617642079811180120209923604772791290554325694363590207044531782265117279873038180109783862891929446099846000871986746169783119808704028974737624357763237036319289856393163492697841183409284249755592605395997488440962880698046086999108611621989443348436496717581347264885784547563947779661614592075160270966555238964474754430528708848189679993509104068969958674489765449466930062951088834938926828025951763332320250395322334224910527719897823396771948437331047774912635604814292937403517795873801000911836734174751438179803620640917436231588539502704858024757955610812674133436431895364132643498871799728075836018049814321009814804962713556286702348768804798687169308197649170337017554410431903212589305056182838816778856618630535674044359726604279812523700272398195808912998609895908059206308806302757165553738963318757688507745906679194639051681473020714116924726911478846350667184016406654821413701274116709376735755976835273116190054935877688478522512572841458336706478887419545340859181200721418407615428395017348265344210800144782429137351506564967935601196751218298878413276191618968403303921229328303979632997799277017827965909795419230818360854669842995294938791396800037828778690588772654392402997329580892709986381054387743118773358629332141255460050653897676387240018038970261616352479921273333375114888192048154905992963483954324948694962045662420459027334082055648614852319495343910102481685016731589356020152867032168247887724558707940525215203875026283666354414791249563646472901423095206671152591007249759512359881740332836055273959389001078549446634528184060123032435968144683843760497366824245716212156351757457842720792073567821497705087942280102113969155616908889300614103815397921820175740959255231553250376338111363186563139334719343549076550584589298181852548228972483271906500645654062782074133855924922879049634682713892757224455965776943434477261443810100275220699297362233140235423310876977143939781152516582110326499591540969823059939925017745922762593002802859051676035362410539919257241528666243439541919754651558554065828145489780401573206677717264852660387817487692101056019408114189200191849640002930937530071438905943380202645535769506136344754900119187739361208729564145121379435216962240212304344093427129897186633846656014668551729821258030719905436352483072210014779793639939764331070080815850739170636790335933950786999759533684558885867609716915212730136703880757569061844436225528312357250891761270262493397023047799996123865509026914248376259726769930126551929847040076522676863032883195740657933964853292021158146164320889228775250676088632003784423660560321362595609569893477293962505571531123664287598264947752878685469850732164205796290202333381875550739185981638764565804802491819248143341471644263306501888541920617145686052077940541282082785727609633259188878803992531986971479498620971637453890654882034716149850821070249118417626260974761027378993214127416361791355783556215638800861222701439361378876662379233529005826085102264693869018321706319143086348508840570950723138575543250767070372646282490362916455933035756553618111730432284874180819713434290977096110810199479887965327857494140566219851117549391142524350846209930052763068623709871132999340640034481434012503385993828343489671793850970256709277651736779950934697986231808277242825791813844746576193915386409312586142974258143315915645946120168784561807315536440919259574987842919508518459055024950850609232124696230496189547587516157474921643244032349401676780342690754154882911398527970479430506359273231236405356416471736966736871997202725522328296799954158234475294544518252608468659208459963356445275762774444855625839555813347305183913996216395032317472957929870604431687766478442941380249569428038409832316672728121022228492844189479140272645854046133374652098884028553604822675634405574911845937948727092060448167697418266454197694135025322755677347380306354851947092635470628265738130646252200572683275150502567288976086180544993067475650904057902250159812469514469325360416809558574163381221252281267824830080199698725715748349563360704714253637561009644348837175036341349924352697951892144612063861267385398716254650410561754943317774967488363406528059411821734419722289719434736930546772742501342825091851451921492214846153106465476875983996360295215076330179398361653831215752462025912656787048937430713082172525498662320050473188272134715569590263667502926162996257442800173361119985213333629783519935468514716250717586753164471674851442403855070717570152947600704012076462666515947815671702917607690157214257343738585533926496158387248093123799113372090073398619627785498520087807978201041952677715294466330879835395294704085495756273453099770253334701680352327657584878768251720639184529695693207854417491062399272653622738779380359728866039962994034322568703898621342218613153016437360333981299186159046154423428070996451871870445491825285397215523712898201493110018284722554760272221902740449615005569662258542459277733409745828339710859057739081354262248378076212235213565829725608735219875894681180434832861646208631353584627947116102016590619546338677069596419860948203307295195357158409772895263714999544071240439634644550417935383410825698809514947175255750813290146209218907518050635119418322317197830310243247870862243837012883494847097439962919797438862600200876559324477570849511808863402673060541364406244546500672612942591419012549909361389683587908352993389580702369580384886874979043272356729469365452686726763509130802425050783653229581451550958236260066820047854723824910179871177483660180166124446041359828498219469805563820199223293316658269002705284893399675690877943814492154716810609165574390872770359954847018513927445534268507193665390353106103713310163843186943379972042253009663600594482281112255867677708540975880401267902467178610248809921989239017442341921595166890933929217360652858491918420678833912362509499064441135199763022959163066524361649255732324516203146272531881500085141749008203640114504412840361664480327915577648498426438642475864221318621544636147883189988222099793825306720176802271334576788663949807685964469322915033162145398350542299868766148533009872555047159134668908838239062664726679664749246902947778469571942100023521238555892496831802601027312773610623362394127747741751635948955621160305694347428090761877011217204509591535656425260317881214875207845962631179158929431612010167595690682272917759377978445086590773137238290696303677366091065361207522897159593326526478052931258880408873982903631993966167358257464804618749174933464824300530002955357663288424814893140287258673300302013553599485341840401135266193889080016172175648806059867343731973504589243269076306961958637439117949479376573678633907060170021898325803213496439557899918261121766829427140333336342028721974684824604134285631279117163132234040683722809454980781540783974277413715155662523807035383069220257049799639017910276576135889250456050058686540165415777148888550869964104288732846979501596868909720667640464316858351140424923015361604605499595148168060949024869991283561314028300968960110754177519006866009439486922889360102040677407142724106533719329218378246078683798517134544462760404098536705426789351051965796060761729662748301909697830492938186006671485549689252348945377068260533135426753595727120700351670771750235121160989985061823244195306992938474960709395499253169248903107675626738181073699026354733736908763108766061522971229069954733979190473831343827961129384952685360817408211269313496720043053361414465586515805747870335588151533882014248955601435826711680798892137226022282770135068316742204192027615916045667575116462193460541644336829335693807286892106105735174615321987199475313338095688631801961299612164702700576319106776177434897965456036471190703226628687456526434648323018614882334852237117167043262100113156360229715777327392093926837840980940379435897339585321147552087805290105910787286974869713504294040792636568197785429813522084578971883194999660848619243647547382012525193791616011239156515541552004177462568697114372092960037835801855641301591761559803732515982772382491363512538313384237722169641095962245759986467026597769822458254020466106811759644587415074007092960960364588810315140242865254991307269554578550430231996998932042324579967296231486634337449609608944663884318286317892209278182020399418921362376540226562734352019583932584871642512166698650013628905276608070431708329694774588789415107604977332860586489269733578202526352027358490825353208684023860719585743234238050712217833688107969513634083280231826927816857369537205464031565613056837891516030561495890819121536755156011597497238639345948422791431580048341476551264416755453992251676060564288633620631849604642455964567307109534491829635326790272733735438671700317049730885893326084122854647502769910447171758536936041488158426383488066599397140559646062378609022847902005783193708169952380638869717755553227306550506653517290424803861304925355967446630646606532083868936652202653753227096123808671404991499807134309260566166615836309826744807076911426151973944158428014536593858776297318905049648935098570461833188122400111661530474612225646070383540772901798970565781400066266444068594968466114766054248814315703625130942944775198533823598724172506177565434643843837327683622381501864597962877038529505227313220853463134458022544321146197160566473595544607922189170784961521575410785156593535812934949777858591636361472103353362133705998018789684753854234299384175863646042099719192581499937963966922497842119100786563235733236614038745468270223656337635936986338146954347571811586191863435529211954174164839013428043441508986990716812379503822818786880952224251959329698382662121332324883451346346931403639839693064299830116417681266313127175045929126065495588023218424483229907551326054826990243232456311735091725761934011194161501507319960542537439239061556163992299782035776063668391297623120732399734112856981143965160494343972532318697781473109810192917009258985451095559229190529974470566328192717712626475373449934192380804516928728842400197692990293643905475365102834701055508893078938219328831066009344557757577705878086417543318635153450535450467038439088364882791266646584595264182987575070952165813522527826512579557719834724822309858616827051028683985754196755341160958678162974894013161237437342409508846022365588732459924356412517976929115225608445434916918405534775364062950018863036110958698139843214588682753424570429031357769558681562397276118226639035252290912203969039059967875704059355189779180108913220442941641936864551468101085144407929740429548611052012342840393124497888545007145781188784575578312316017663043394383431469721377008140996098573592801602445306409728212005247270585129408239962108699747561540232502756428668590208817064157033516269012344539977876055793991941614593462437733282187328147672797212628789670243661053378197142403051512981543276950088548474482970920703335679424543850347411969244441350678329300810096690702074625272121781647071027451654052642161952085435091543587038490221412791384280754942346741931897654481690461610786303525681313916214064015230482837384175691350601384600080989393250144098859631744080088597421820651477929414121818683498248804264768245272139354951570374750119143470180698064308817774522536802583832341529175193632882299841055885238739452256542154728893134920431185655446988702131593484210019752176775508397622912048280167010258707949145118533569114045664117827519085859173934951553587298017762874419995604044918417668947435592792216200819179853322399081234248817151461784802822157664572259382058159808916888985030480993894950098815643702570724917032967208919318273408433095093594017277646291326466311842694212839681100868059761370248189042208881703251785137857013783225607931677500533758159260406092496549170705399131013780558793177337897463836216204622558860026200001396935625160433754887686182678795968655714999414811587907027948683611650526511349138010711433389727800813885907433289277374226732879023730431934760242074935326965317583572839356001201564419166298569600184202083397144896872111248646532138392657371789807962406488658174527559021993665606707310387574329367670903457423243647663483154670079098393795559481759372873111063699792474857243886398707870577073659298447378761382732668026435131458840481717037621760669363004172070843656800150449549293102618331802391383678733627228146625696068623279216778008149325138195049636780572439776411653396585490835524084641203003972483146090709717570586982887936908650022247600603903319049094556806082885458969288633775835460635023913770999930127924211786240312513797835441384212534306137318313290093633276568164984842386959638127346796262908906214677132929682609995371790937213149179134991795041712573309093151516458087494621952279640413479123466311505115233663461371137928207803214336442143959480735583754672317256091518606068357365195393206118524713989542127365443827622343856546979578512611658660708779768429338757988448243711603979644678893456832125986573050098455033537023467168237650370564100348734610676982469861108468952845891876327813321092510152725768661849754548009314146572531327966821883327718642666637934788619430613058733602420063438187359196716233080655029572008087961001053440782670847014011187504139862333751222451147580690495372491560904949359328961179260447243264067888076320621257485354270400125090410424323041690567035545010738927543364714633693518553274513619869390680640844899876408023774112866566359422674936221316494712896122182935808323218975880237094653045173152012251780905870658089352038755502699671386665667988448612901594984318273775122641914405012575418179389491881250633267310004841831946221945180722266132025740936278942110879860356279852991272803298489893075775250666806143794517175830836664350050992760191715942616501013250941460544486794722678649797370209791505784642508821529447897338626481013049594263652025419463786927451979986442358055501866660705900477357871649063258673051893004251087949766545647862972336484841510411192697337547280504584184343575323556768746131874029944114446315125469628977153683324685819563076225333141078790600511393117280051954104100862335985560603083122626074541591681474320921705000518653318146358047700995427276513139235779197922273304510278423974190079304861886330440311764256849836379862013256392917064947167447287735981325564411309676504090328271609653218135457293118179606716374310078775670177398869344961450494811531771101393516388139474998386614899161149455143889280501540052005751844689601585678530689439179092238926616321654806064021445509614158199034230792467299231941777014688061334049624379983087968584675753257500245579774238309181240186093096455490364924843393847090074524046141466500622308987421517286861854042020320968899668124920583253885781255673994324497157146964298305546465052810123072727216948670885700716271880859152646398823896698209066880734772339787634914740984174251736674857129264575460360059311483961491920119129728970401246403854961733992069797381467412337789350189641219149949934429599364138896470142013261824018727643541519238731599828811938324304942422266871055535106595461585769470147531524846662649070257929543339633770871995636239286713691246688877246240299221089299299381608790763219926377345510882453908457068678948688314307925131835868612683145376052674996583143922911301517180809423534763225161840520958936928190082891704255177320495233366037904879414921050675466904313620384981435681124761535278728579101534764093800959198321378290761755107582991881506276556182098077599633996828303960865051760650087330480572132226889000584738686569356377414991479762899881265960944688750232918567369821875679842175673891130540658122696431721571206755359681510553351818543216542794376886806353651991751141867301996240503097121691157467470194240699578336247430739442693879424136228411759786250969223925809495622645736793161831747212134532621183845588844301126469802088086923851006259388660244187974647426237804459987022580606377721450246568572596675749821112591701513873659810750921664168916442287759529844558999163121189449127350597345636872041118421958898482853069310334613641568734471311701177505227954498579356903866273140583339870110785937250781958781544673267280785305365574399350489399445135144213980739784340833616940236592879508000183530458851473865042295982227258579174044240315014437297557196335762534573335010816195593612559158509525584446116374282534525127484100951144923883004579185536952013300279156212931800970092046100081924320353129981173320597080543754736893603706495248179031983852875774880325118255895755752420896932577310179678531945646313914382136846484509281899370329211719369196764730029903362633171085738890974330530742429165892504592930627712233203784783696926194477730000169309167403951546805493156054035764918610894218342750207662870770214468137801188006652664964764361511359210685061789117131178135577589360702766245045420248757755059940589761835577566844708992283103407872259028369111966936303548856767571712032700232364468220325658329897337795383592574441912298261495942320254709660809744102239829228449228290938472161017446379813399539000165733935341550140542678554740956917765811510345095291420929369971886580486157182880326667038812123358526481326651307857048670756856567794904417099381837916405669305151456611439025062229549893971369472206697561625888960444769339762571703758917256158925357974301735088361624309864621777515703982352789839584157994424496265691316006896136936400715057757490771559081902059756812722379737329562858909037941183395517285540798475925366651926467517861081673223422648282562105841116932232739004389879138647555589798806343643250783500432429817346488247665372249126761288606568958841665898173317257412785443961099319163797054415506694900301311646817582388333870842726584621646324946326362905635562773674603311965461071785911271423472359863456083116927570550840220039071207622356148155526652210115963295041510578246353610233342513608212875850987532201586827534585619431437282161220078996985745151605579988052926010536034971677584612895897680078483547768315229503112499431086549873452269975387672217053538380142191442664048399003143309550035628986023601769238705034533146069327849362453708967182558975840795359159595693505750541427194316536627143679512282858119586731764703310843328792204657920695396730076501953695298267951325019925839075114926109373604170994678838731014032121824940704993772737697472979743027546011421931386055380692194329104666907213794980341446562283941183846894563427227040851919863569058135150515833678759155588593623074998066911417668992588979351377404636751714532077041016414917794197920766819780151552996865854644912408349910354338301468042257776053093836090620110401128313280480332194957436176080966764487437601790023501364546606737342421368330475495738068800034335492689277642188748591121740295100192883707819487690447084242070354065474013669270339762854197080958895099031865580681793786239054513745889236197818160375951436769511145502760824011355915933331310361848150050766460267682696388556554798938857881614707638686967759090873698809564850530649768503452615638396926718672736642024246778075381828058080363038137314278539060092804518325698888046387300993534978743282759581892935438256752303997742695660051713592866109507875752739021675355337602905106686594403481028327226868070101471127582282877470364293308351000938196292633125419848980389329933642758707761176379987367739279086332294345464355887813409133520974631326755700154204077661734663783306024826831100295108399596767896596714158361998224347825530508137943583988555041247813822290307452890033174002969420576504990345693355310429465560500148910877191388702275850214958459903503824796728962213169855981288282955915073428116452929139169856618184804763309828803995127543847348239022704453142860328482763628133964593306205299782319925308940107325634741073608337935138744752193025065266346127269393398538232065261151533282567716639224407855706797075616961200205874253548571051315046427767625308576340729854486682254591537680636727283881736465032157349101767566009994434656315586900964559521997801321764042282570945404850460714144067951236847773982944002639113442125921848577179512361154828021486801016338522309033687355533171257353501165492306491004221849251106617506381499403867704267912509877234347436510272062968255671991460464751021662811627851767849086954004487794994008524897155486567581272766578100543868639997036919815279762597389965330862716354728897625753947440467980165311894223904521829891652713245770480278428447204794864063531090151022132412388213502389639475983004366682278935500069772755982856477773388630936721892557431623141930941807997203902527058052154827205172372845111207477100393654551962332748494241498611689628198353229169859318845971819021139099039846820731633035185462759475210883247753783088653759003758972236322293311788708938141818438474916670573166783662093428084578484770248860219697112044617606689624119534876346264436042332906053452307851415866940957207354022617736381301012333446918847319391616909252185501762411768503045884671449250315476642808417353330813809786747136106284779810527239297927790892117951474870707028555716207540328793184368686048470715121151074318241830334269860650549171646386931911953376918442988838541151807918975989629978614968824260349639745017243781032018677841925956647148039310651195072705416928021481167685678318577244974353965981727411093166193058816535833324230441822375404864153903368360238358793723821822982999339816162994362315152129614447915953106754052247072099866871789581482385151069301286038335662072468768610613579263380694842919613407249087880324750931479775928126853035581526267140774208826757473533045228420241377301781115323315824739222424483875734207414746435409396416461740947291704296647874895155201951672177818361870430269795324397609010453181585093183951758465068684171315678280339748772650991220155610693716958899970953168229717062835816584157004697182261564583590550666603589169826589580932114567049919402914321211215355954910046475421995919943044289776217282410702383625016168109368170854581351396781410910231622989923451956273931488910634987429835794169173756093284496184393588894134087575355029342968968253564971939370279236280959020432130246073199866235723155235374208128313673607460255552819085211916322975374467389964581780166307463215344860548878923392419078396006830867633741961785859182532916496974122244895838366381283825724570098916826005969271765917837417175465996530294874147785837094349440679825713698777253902598630342697551162921711797271051620871661213488338200310492326125299298509413604028092560864944142086034092127010088894567226425277226579362938209261800597934745425688763906207662230037912339782451436887874394933374428840518363515059392465373661022007733458096089838480163929598685534059515000196899660654837041457017402344521318080012102601282268868496139531367708210974690572431293234549859503867664740816551982560982793559440171086890436617466138252475118736431820436195339259047286704583899855856984254411490478511729994820909816257448510108888170127080349033333709443670118927324182422888123373137292034182397018961860197362231977165035616549010147158782334265070309190829393279676642059125072521069864072028957828779828001227291255265476940114412916749400535238260945036821318579185356906660219120302883494778551423221629440359877531002160088173298037814966364132829094198373966748871557095445585725911724876562261071122761959117759706525034492917580184668556499501722793539358466633788077903680158240154906845705432662581537788349882389398262479506127984290045006028382368586849029191774450888445540272484316883142785819598500117164827339659044938577320633380932958153991575316138505432397237878712086100359221681362205148128651161792101384694849595172890251186595786546450135606441490220458629686088594719239339776729440977553055823991265806236077350987396009395645003064074188966359968509809549182637314919769644989513807239065152644974130524460378767478366826328799267446135121548939889708788041638757984130508225677781348255073591632707323788669604251510732889463385441995692681556592892648061760371743614878047098742090166106971380785346828557384017866660962211845305525095473804510890280518965746650827149552521922410793278331005051177008708826844132343898504610166811509001565989312372361856386999831799613536734478069218556457949147764974133785847363757522684142635223860509970266928076915980139433291078126876936095033536078716293640232324182954686665245839263520601900496656345100376342728242427272205602608567858147940004406272158017655010740981163156290895253083957253513946996094917903348538799972062181620897954061692896709361759169730686674728742698154379560728717792173493543156991531948028604114569911844733031603507800777368372620739954507373654265979779447492943123623285086154273917013134973593577200117174951120575495858012915271917663884869478682680090130393695885591351897208880587246804181605079121640359840114505288940636023558548549149725077094328517783546015129484823151048621578485816805826012825362480510313041417543610778741973204852254797859958622056546611987832243727304748453273079219660697644102288076940984587342304539816334854340306080100275967251061666605079352128561535488898020629023203731005822764267394868367172006839601176098609146047490715833120713968766227962789811258914149549278699032314800719595485078989982086547934603719944491479423905071802292569346316519452611357295022956355703082551958919280649541303567045068663263334137785978381143216919001617072929474942512202387005111856168828697253508574484440929398117691648670879858732210271167996314347408060340104991304677125127231622377655301898414276355163679212500597999578236883774365946422337304931608583965098082262020456710828803048197614675775159064669122114684103925101967688735610184239859810929865125979171081904399700811348365077482012662006281078911918798524368810280746272810598054830303658991319340564687164689533360337455355695247177689692387191888731613223256532501471279599163896734889791208836900092821058448928331522344567857192507629490198820326261343426992422252669823787934038257429123179377290943025795097998668479261800336972959908398061595253108196564667956948502125723584507376975880094842950461013044467305726654761038176128918991176698196007214564463226168335699287906122045910902980013568572098532031644360396131751273223871878095147420228790486344587528069594754507652632380235564334932306273194567888610972639162849668275076742874765519870257238516646726412323195223132963104680700517384748960985859121612203198665026609255096679257619358581862242045929364273771197192815463494728699687356176434008380950209245152529932962728431533447175686592655418227263512595764938260523269486205789450788051307795514570292113374114678749600903405321629856813644736175180195283202855024734486005857718750514865558448236373110432627573144856707225967829257693424931046875454842558311222663201896445117453436693582773209155533004580078094380306814219678290073915198021434240062750512148906131092953411949493545530857903001933913810182575499138459404656959875622735400121397207350107907988328741320604130706441650793273070875297845327052377258826299598290085543945546986600915523613565498108372058281097016325282588359913458957771777202272369147033984035930079853420752756419885313078874027140865849577907497048364329987125895720278100103735278861906048039382369734311319245636277804588296859817019304610155224904596692345927510373490439652316702375586885125118314699559654393418733326902030994241337452526837571088544531722907562413948283496424837332685861824554246512313703694937677351310684089316495997891614849639681482964776039314710273793582404559005160526402753636577502822531904869367632324922291102015827666243872340984169914138937446235405868351749521280767687863287556299121985535118521823900289407441255337756626992808786627578201243178201191895781797929552768132982461598950829906059933993061953898339208928286891507746798318192643595088244131795100936396496886245643521543819445699656281019061830496712124229269122057031114231060628798733014461767667166766999461852284344063608676583458646731204244417407171215599044240816425266570787511441964289745227246540841580586810100537830359751873398791232135777368116017532889764838801763355843450410820583476948738813198890082940101463050363440271953819680057190955110936993354162540387242733866228404032515374832219107862712073931893102362127282430992170893491932202939371292779483113342789554176781603514070025016505197082122005787166894806131679980277828710379492216418777838946309841698563996570692955212287146445022733691758770535382093078013565030334795144446676805270319542682164697417405904277160595196366993120416185219197169807041500895954087490284774426325843741435029700135756848239294399582368955347231521345364090476420211873024496817064438381985460820559878701398414108493613945265548594212033172485943341788723475922425036051437958398140048065937127291979960106380910599231948981217672487354859340728756769932491199225547962987709670700797304129961687479201805277465857837787964829221351168266305466814698029141670970677715839391693743265158505145716598866481732975043826574654959280047744779289386473666606944276657905767854887623893967852929372160042444778757642616992549956306051514850412513146349836926147734274097805823470392067387903944078030407100843885319632574030426591076578074500007942742284614236100528738854283771659994865648381674579054839071006006749436171017496884563299199756389007554073070177566620247284397837114508527140145917384845792997981942857553615890609790846368066480302644444274705755288836088997532415169180766186046829670375078971756183032762989722734319366496967092903835880329768827032322120781255860035597238600787133638241942027831437646513566146566988560481028708536716094742790395392085260874814878180299954228540794092681971656755940431677161625376779881045337343951831689009696792015314249194041273160115351329963322840364631957668922821846583789562592028770510835640128806926990483062286722082668508374789395658016583164187220084048944299431778810784800559821054128886537042295711612692885620478512985206927889299901817658483761182086720252578570859196667284807055070365667869446087757731514964925922211594935492561455266600525608133560038546734257477746513271486340972311195305866467682587599519777399067738451985046215708825282910480449025833360444817103693542813046680607130680912720151668615424559784716457266586490213948490574268276614066920501899057835704062460640390952973874871172126821541674358109648274996833970742402548301437268847796144847217654001276157239598634300428219251893281609741246551804497656188158183520721501871368580269975007517966503443631772724389479373197778008458108273385756356930802214669090392206309502553078327521715251440416171005916630848944032338164277523606032843821129066918849164477717306505405728146349957343990997135377927293922294745989782034075230582307514017939552822746398856725595735690746437268036688614165236691380345903585601236861607691584516455398978474639321867311340534308838458213186423505749924610784023845470368816094777379627980862579527543213698342918372151456149963432238683605352771904516195175051189213163871473115161241090237651600639801171026630571947825011072561297640377263194441128872215218546085904399344545582136693410044094663161422726646910977663554532510583441971364280282133524501869078537941942081022981971283793470908611736203599952814834114161179294257685012803174675067198619130581689597249922655351049309965655608612681435888969949682654207459341670370325187990859284861761736158391543939332953079336120465185730390720303203850003646468986435401825399712181019258918793606621003780098462753247154327331969384442246081166669429759059946266129687049780441666599114031499983959676501456809599534462407606110117574401375829322759291556061883951678927996733904409968486401584963988691990455233940162799723097325207765788629089178529010094744094568261816745421020726228940068577468714898368412055937085917952727745892469143249089017178817535294158660037289369296084442244821414476353091537971281059679600411290788960275264917339939074071859476072166762593283539798243526856380418100823627593779399164066261981266124849525923974110117372317002000183635073342838732850948742184836153934231324125234349684291277423958726081398202688339301820077377180963401341237696381371538882806893081942170369583698044365999832804885385751200107783070087098641033307673353106695575550978487658866666674753411318723186902939366009830048990023613987905675788942085605763821806964185392985643293357066567348854760010904129322845810395742673331837385239233222521812692662898184600575974994865660188128242347752508808516249052577235602317486665390741184532376913319423604930345474757107005638001646301827331473625503197859998429571111735639992596094735632114521628227805705681478128315388275803568644931700259579115570739081031018788394018267239906797150449914596041127051451042112704703550191135345622953173107855908518642861374547090072059574769339864237914865816503152479824765731520919485571411206512661685775755253028632055945517286720417616212607620943294831068851286822580162461978900818370861737463863225020645645090784850944323959341862629513347437372176402649226036366207490493056737844276419645659881018607384316300272478104747954459585657937715415610042908933936243101273611499969983380532242012499390877409095349866301239515923470224775157469782800595506963595608253422709496294843562572988262847681186364245336994197772668618677848515870132403804270722950235854048294184677203401376617773585470116941075240744617986040610536996452652571729923279737911231031784911929117919099498628513513437599736496177195817837036580326134375456390263801288152500932061204889622501237504413236960189925409771018378061568740335555182857586334222824352217364613266943696857581318314874990806144404570120250954507309103775230647458410822801030387246957065220920064151752789346542713581393730568545858399337639849180370288869125105539139912956157946111520132438456418112375467575153521324924703555549962194911953500545044790289610493118444441305095708619171846578005881207082578455398286060527240537457265520631455595108013448392535221870480103726447941470463758452272082539901980239984093536028544485038378159477887575707907052388261052732250302842738587833833028929992943962646918876538425908025028795641457226344127127671291492760381722002337898222523566127812435611241091915708648832355916183047360001027326310551873741766641735486881610167154098309604519599007524953300125689379094803190588384688475856086867243692360346470853299520695763936660635121467924521096211301762492817516704857233242918919935279324189360812140086401972268031803251796211839896465053314424808802477914171509717222141424060478938105569264653615374782170041021085958648343667261920319949636590394166929055873509355352333111397291368860723351848688928226727260353712539901426368002815279679747859590924289733787599205670442422870532744204809555409714334563319335009578907031178958937779771408988612502284012431302831580005568094499690189789606343265688107337640013345077966854532156052511643814208902731444263058958905171670224839921697825198055592651182083916762051995394990608805711403792938735577414797115520845453253853676610993171683500551919811855948286966691131737077623641285207027550405602202643880833289111055590687541401211266781105669544647592650895410478765440265412488515265286659329818278609391722044987997598658607235215359196575240753593212859673688521459436989678285049893658427005214685284585850114362783971593723515106089212624475364079175350248711730099561643825387906048283776203219155028201025627786393182312492744185047303573135036000663333615768898339959316370255081883812191979809216575115524034372958015522596072418074183831381129362996071771090984270281566686756326492091669682008690955130983246328359387263326237669768594636864924770050147824766341844904655915636059645438448011401273769429933877756090547023629363366887357143322910218375015395748950043731569934479152656983876915213607308345216691862085876051012855030159648187088883150361779118737208879845541421321239411235267477319375411241663618726746131995737592284117903505889622398831601619721097368734845993421168242053037347606447233946804100969276646841895509424856066960335537959277062416571513695503647182605714804885782462339758823194731563645298943242971026804500941918050050626890799878057175802861693952425969882921679877014212641745376153585640185631037282577971938378424501864450482030529427146954606547454221292131559245914412948947110755249531140847093249863522027499391863135522872214272480563353289524166271615095597874842030566693633028257596534482651839409416286426539324937486282426833787708006676231701786077916859672528726826562447672734898306927781162542656398138374800349234327364023364282996990815287965921246402797444166835968954142321587262477285966589918656152997619675008104167028727749080285855124819050890504812141919128493990665200565883661883843298287097209032474373346013056613077816780180276268892981640955895175467973913291493352076163345931263140713859354613041478793012709750100326984324577981595140874654196829629734852627289314985075122653922776782182439862841596692351408675488496009367126737153263201614256648119895217959469891543371435753714999553305711231203300018072322039624437912479709643146198027041123801409171093734642347297231985558288075340856068923150112613192222257329742565734323219940563801777236543628081662296802987088491626413210179026582370195818178858952654266274394921176140649162210590311948793135532349918814118427311479270964891967126128657104148555179794292647668640814875208958315193649412190441043218863317343560661184285120637853066816615671750154064383667439701248092620698650708651200470584206071019309682065892074282539493960682983794506287261772700762219397332507006515888359739353562534939248582508712131423237148461015881358632718395467395935010110152597379868087182952249900281194967817319901049852529195157063405482653192006126741809550490292865206255834084392753189933677183051692481940480077709822523970889610412247187223314228823350143406699160773679994050267592156915401920727382147576934364901160058812829713131738175054378432140188813718818924257011855298123904424391130584907470779833182234939955052911184183293302466168106731855827400087078147729760489458633415315824166422980926511107791055048068618104960863742486587706700468377991190265530231561004744479699359237328605311364698882638103810416679681803575055555775005164989176374044923918913606977252457840530998807598524548813350006874435416998567549192461757174785445188916155214693120799374062213898838676281895381865997536177339185400680429052111682152381908745679546058730402114799231301118433534999885756515096438063363277373957999190522637432018327552167816644697492091801013130180968967913442678549320919698571987826103173551339698316116947053548977471522789006165896965180193246199845671275780896763438335505463272916431832439377107485429225965384338167132351133933022815919725595662764097940877853213362559784800002842812650756470922556837714297162177150402189545154687134656076237697721818085054375718975724186276812992348517283925623600531337009967293555942752305522045841210391407985301233260251911932400648687814870083576777894981480530874979719144768444221878859074466155222541202125857928682695994478121484956611736371780748206867449928689416847860366083493241424789344520655858148943295178873249992806325414823439155161475070989400918848977238422301052818095791810235940572448956085359932494299104431540335186342519698296039417100304649863271423317779455535255293395501868945542448638406002981594966601507331821841104217415590438525122402906162938914043036027725598504044299263060190266857816293739251033933770528374473242444455636685915092778666081515991231141166380621751380358404077644535042333013691426808761685398265230003188346556624356521071941534520190522076865109182771439047451839185909605981496687484791350023984438350080270745130406815688217110769839687446854048602759983553980219484774449906554366691429540937349519761239815590984436656676778994479553515104976141772900530772283947603400141778433388970986268235385750979351530747412472240001669600857103214833087130879972256381118971512031317160689798976798673141361161745400354819006085706373174723214870898943812445884831049110824107597854841399749657552461740837883266032390135473431806946555416014072136323817416282711477381542729235804214629927558468641356425891801516041169144088399394424588120869190389777957203796388215896941525740589146390492257751947346729030869423732004801285192821021645347357821824269543034742454330576789222861917711245107016325231354396902518121343858897112743003566634944713168062382592553079965552235538646112308936699187518541581016016740144328022205292554904956483681863479909440354193668541715061043521233516915371086532317359665830219525918144324203174548340341535392088805839062952299049199017526364764837156773268743349550799003499868616414088850152842616398583336354463915799366860567455714484055094157714365904109082660910729222429738573855790553320567154638313814432790637240441501021305160078137222904671016699674207309813761219124473153035556424871216806820094770290116296330214033716722350811217711159326621856614258180330320035159609533748425606642190841184067184912189035407342324131608800315392460139866956654045791641846792150642269007630449569993386636740062026331450966674092532497133678982746483530784691926067812266505791537130431299918957761249051636312311862311859946644495056237799061235854867342651099545977194638029579825924983974786807238486978406630006137177650985520581763257661149328625101563117210830926607376030298215013499753228923221049085712142786395011178573842596763002601930373504379132770495005256354655675286826985556406923022953478445710907182140318959884543297462004031059311189370940318021940349603098737502522466195918171299179749728740635202880252268436294585409980592016584476793285375865847702332946931517845667708059346673876625596962968073678931736592990548826186667126015647610857820473303077835452532797789195467595682551497618799768515081665096019074683248561040198895324437263201217540497443078597650469315097540986750018298205028430856100995064056594721380475560664367820054903368613257404585969177053063244882922959214803233892263570882297886844582627409610050554174612009137634956197820996111357551328247489493229811242334024667216209648174247106231216232977287467649161324272170271480706470090914345659626292481370510668935930494139207773123847509019525170368570523879872705051779962843399407967755652965094045358728024046180420471111070816190836556003820778942760119893943757912443852681586577672561300768825580419054894839496288778126959181013969157140832435991552296824006933667798221547025024676817201364211308284108348423136739207550749530343663516548238522211837384618979274474073702669996949596196598671819326379439879860087096584267342225751921801843263183785110109809131826032293594873932288823617360718424732072639549686520599947539800139803528224649152589804030812453592146321489968253121576815063229825878429834953996484405239496687920274693439904184825962274190244701234226243371993342958091472956092747866988626489304257907067219853907112349885019924912598506084161611691729046158280502239170855913057209308696705404220469753270789866042096957076633822301549661855115711902696687455382898186843760146730195677362687853644552742852754023782459896090988524842007010672232450342560063343716899964418838432565326901422191571076614856401206020871295050809810838421204511760705769849429845331275286361261837035014420455558046333528424831293180282023607097174242439292114759266035754174950004554415988016191885313948811307151218753192983723059388341931961845733371166366804912837145456042759008116449426883238211145245370405410977607800923219292959738510810626999771193513487893220714355862723737060852105067985844560896204861678334777953085470980996411028670366757517551797420478785837621321283796316794896138870056124464615903761446646896028687313830836652321131588321340520835168278068940587042709423020628495243888745207371904807083068079888164075670142236811814805809189017682000421674226031656043347440036979051560653427330376255742852845618192427227539582781903815769913020285833663626605922834985122432609946803472895404338402824824297979978315965985371845827865328682876626249698789096507535128726390976840198886893122931893346999059188756987554344687521529279522743353558520367981445931377720285550547420452552672537890308306578305783161786036079998429422734427962173533770414735348548573927912622412146934930026444119904320885532851576869466099335380671425352056062322184300268026943524494328644274535400287300095280653659209982313937608082163414909993213741083160126770159043441299449925586144163331916066423918999835411779903059575303226864789319634717908080308291854209822143825697545652073239870336564070234536138111016812536344086700062989477539218668803562592736714199974259137640710105730978844330670172956788520342144881747863319669887717327976854458805792018086795909691224365759876085984570211561969478604784905648564718026354711585243880343074482849176441268476071048038087878057191096857776970285235466919767099919584404445874486610348871909580672404699879773025467815140097363003075642291409520040030006863739188632838267162017721810873418432542402605183621585601475845074334989946484632730371349772511134558531287062324350092858938117449786495653730819465823539250686186281796745529490442336696324007603848589183973358527452295363870366654749084430222291182577818019026050195073659589850350600303399669391629142671292738061919688716139727823849274595989349475098148427411078661927562270840484810771318980504417438122080618495291690633456782366136918724543812378619321155537185553826917218324804318005218583133749098588885629812164076776981330072132942142101553898855383260413017357897597666615579194718349504923398290005039214796974299759170342067128170350270638695502916756159059048248999320703418176984218588668325780800736015549987566337468823458205392858932483855505009528617125237931623205507491533619316309401852322930088372188089925849901352450664900288728247751518264917282490833730312587688091394892255714069112346678505971868276514145360867682447980697069289002992951999437672341063749277348298098962910575166790193747044763894478059281474626822015494474432388134640636708542903557085399963176429692056041281250201064172088921863004291718117195110884728037445720883741833462671343166201296736186711161423776565573948019240810054756023256593812135854390839136857990929266270536414758052665022182523903403471150424702377737445465100075116685718704065872597722131338946224180102255345307960221328558058059131176986101228061530091113263929456698263536055163717916865279731531344030144453941539734519340150243471809655876536783332647401888421840245775970954532305785139755254967629206316207012261784394886840552995302705840941815180767574894953960166635171891518425214835377363310977476850818910004559163150930800911880697265953161831689287712189556954215604319236123345347853347917501682666662346951190890952649613809258289706645674933335470993014488030052304112650202967952216386916686736968154918526721105681374574940139935894019387961515071651942729200386172988070142441918770686005500992965687530000474255208429168338917593835265478837210309462103472988899616849534316932860343636772469915424311027949747800564120668806969313151735832552912223969806086607261898159505915440335627367223185917269373056828204811503589701975479336627175571816231355157642169033919210783027210952738558811687506415835144736096359361507316200529036391499242518035645851288615596256221363360124375104716324589211185786700207854855584531609606035164963659410913706741304627642441106389859711150974663692075889300723858336879456791716624160858286015049891472038652989338769860890920189008091279564734810501326550626920477344381207391138294565863202091816005521957349353569327833518781152424703638512773994193609049803413644214478985976066717497482283343086842422351768116737115046450397207313336372707325610692165471954321290045861670336068224968458565520277007062085192367724955948630547119040857481883357409613248406597878407138102886834113507173705781308801372123837394131314269895869046038178188032548871673088671702154758486667647271136655286129899283744603937922609286011101908150645191175654891585962119759113174806482593006450915132313679419975925669763460360821824368751345428934783286960166019709761631302181459417868967246105427577651740410887225018506997319094870232069798986433289462438900417512838935823926358472702597094157535960489438281550285505987694811384982632484322502241430911699211124806354479551078700834109444292225285295992130364780042142716052925277831965866104312603946597395729469172588253206071225305115349916736410748766198318189853889058805385061891457913532356250681040375491314320347635069774124518914077536497766691899493267092536741573364255437303764383183443448920173508593289005007907353784494925487571390817705955364236989592450147996070589105680927929054189284559494978383577439063338668857118736662503296061151879710128564368489629629063064962090554314276432582552648676588404904002300180806565820692499478204242980404888896872321077446451902360507872431128434087572794626470873643170194490709086683153620898224828562358372200497272843073085594668682756396292047969389433565608945950661136454425317993953494129357623740063631039055345145435652174931798071239224751909703051585749659605404126180991823873955961766966419328585878374482588983604811030012264730036205335473158158437397028450137426177492535905363471447944609531471197764747663856103708080383802627759741165727249035399891850589517971627752577151701726869203203197711584228014075420717901373215804097693852417089785135044479402711886718899519115914249879639189018885106611598160052418625961047771417754243074256541724973688641030059129548468300021556760330550225920172086210081842514590862115613300288447836748349249345401930201475142351283557075707723704166337091797608496011940928089181424908240919389843466811897294529404897413712163944680171442625486492613975912008766171804518138270118383673242565791413274908245611594470886866105637206180116405313815379086445518773075335943870971359463118735334181650872300100485946421912150056230029794749245334693221254145240608919357988728529823427284127273369719631757544678421027207104793917687313338042132353617204552591643358998988038214293826848349819806726243931631802652009276047851622636884183789382552329364406365113164158907430362568952514787233157304212845291697688382015759285579565026549143450655119114460233058916667504634930884451349745012945944900775746652820796582156263421764323229590896573794091183381779569591051498397539086564017055091431084559265145805829372881912415995092172793599890601896788161659420489003921807097634313304129300561489859847771338665209981187984842423231844991919539000283232769232904842541596969583504429584499540785655694441638831873824297797281444472740318582339663046472428589081731032109162553713189955609291462325474123577915827439693647485578505113302532066905731705374727047963954081079406164469639416320029534482341537954403378377600212003908708246819437955115027152826671808191260778720258285896491192847000346395892094062663777748402818208823637931780547351057136520464755834677844359433676191015077422232210222756037389512264938447111070390493883717230865944165075100587419330014724577183615786506222635092923689203371099409678415273685388053032362237171015108873419034688829716399837149677215541119345820263927722620543512871268054176968124659414901161079730893507598112710860860838180803268731462719441890785901599644329621440705172046248178880836355897116802455464732952600340020920801746446218063107042074826303633061894675465380386793275958664987346438486920507192846035603596535895268038285628837914672785207980619289509318863084287222342488695283609192583332361384428129328077213731001657052779990947880287107167435694046105237530850909615440141533502613736941237196204236463929166641894525316992583373538527779642256137202914416715212068671410354699725769969346655116050670254147947196149517763016852683311715218635680647252503427270747979772507814857019667079622080432538217201274258324523511814687095428155827109191858188930434725466026581771100588943925550173065087468256331316375613663525148258816624923535234158765862924444697131881107608256878103010155857187678234951304478136668739583731265899108260756043585856068691444865823565564352368274601850179842568008587315237714614345183083879616276612950722984841890107206378831418689113670139191042872042451861781967613250523855470340414347517337556859232237395719635396462528079066621753099121919990273983279776523932107162383770495196727231225619067139816780159761500592044819436067695674288511681376937903794329162681656604798280222405775162091468604597873246155086507108476514682074446302857623000606506928018172457035725141631675122201204080965585557351087429482297555436422674056606091511038858079483670166259118664051119139907353391232512186647894248832098630358479927416329179728624252940775004116762435681789224162072887927579993028833124087317192738593513045443606925337549923387182595904424255318663958217711255290076862406969636203448272880241184857692286564362204188944579494733374633997884800934007926342882468146878892144220509286097590964146913345745561915328171415111631708665164395003362572084174494161307290586687950664629683595621027998984152588198937113059082367369241980322903859565803833346974564066979977602353880260254885648974641760817409465809417202033572634169331851342137841687183022082863156406941651709588759450832007127600757650686473777021700242169390971742876317706828224024519260918021166421900340357868459260329839383826603583881408131180401117411982329010347326678407216502275846468429759874679951362230496030584756462574610509481864468189721510302669540773233978296391004274459782285367654863998863391887197295931762616738465037834484375096877755644447250551421644107796677319415867136885751381843636915392193716629746244069375321133866845605181497133143164577849716844023396463580423292338069417488005312397352200130330700159375496896493138608193266547750294417222111786120678897833952134264348397925084054330552099583496362308380429904720371028863590036475559322878433655091801182641132277695551495584753398297928323229378245980285434226761568100454941729025544896938373376356789883349302214183996682352608587165167438611701956952487035775519575977535709486765788636758861531372025424399062558857794191640381668870889935451082739308228160818152284532118310752653419018509702408899814859645097897336543130701476806104393556856810741884386127748073269721969340140729870277680635495397530335693885381987273402599940103694457747018663674808133710169682830403830286033541703130121376684403709888226310665022198146086412669048181245420494490119892278948967001178736430120257487540194320080427466888522534755276947783225481490366509300876779355833805295012784644066101002417862181078977353642866984023474448235421695427449639498618830812438557211608364537339433011523745442291734182155837433488193943344658449566553341903171566613052924178229570324363453368724824075688393526949723862028093918904201533407728926608128053905932745107669875792188203908996577108551077069930995952508056742441197153627101968061113078803422411142805245959291247546313959085350387566617908807031911761646826549904039412628018310174288600207535660351278689708051100835321837463113623002517191067917381621134786806554625152938351110222577623082482819220300495947312354163990423147948115882303498351994295833291499775492309255359678044206013835408161606178047344843588579799346522426528851394261734763350852331498216818189957984023189522007846343910041041398361033665093158313007641097577558147283564835795764897834878825999211563599288891694529920616699067746143873994545230016436232019649873671869739544062383310716812844806807680779222870974425598699305740348627198712992849839767370241208572484479605868068033595964608626634831387838812647210246859248442667139535125014594702391194225578532397889782928057199974145481243922542216297781423263281556454661532406688363857046249836767983522319832959269189343410681742481279130635176767337311179275867040780280295443165977599331215428599988671330594467104869714866241202267715623122225804952444655477618819387263188390708897716869354338556598812679975774450213795920176549430173769586833576249976121921914431990845533006097341621215936859355864736432561017722210792006843516455447741673742695137857465841624340092681028142447039385752521073000328554737316388548290105043105204444962965042990240521989443478520176636223885799477515387612097574092752964233959562328880346035335429358829379018117149578959456526655651886862262041467594197450604233731336207414789105575066937439396156064032838102378295393041147022650261671870931351196756271469951278126440352351912026633926113197586676251885374508703163479585553757790283905807394878992511477483798512798806814402731707004236663825191114341637683265710062298325044873976100487690251972053986174233323870612428825976032332353387619925382508489295996261741412152077210185299906476268712396398975926233971276665620832484828786440596037760367778578199166266360787155451583599558508006297292114294609171374097862423302991881894354967816497546106991294026010873694439275377026919620649179474706318201414598815211728684530725109475803541137470934119556094183386820029747608987589595434518399360701733187176381079399136189755410428141313205925194123106101768819741908994974500853420865629973340763575137975714506635310175832243495434595627206783355726177108810411414712817872226624986467260531917049344296166125034072757116264485613892342679352369479121548010872574223171339090329285763833374540419509487059237380691161594174591903207005497820300406846209645040869834257976501639883303408343231321807971820389609042040527086892995244514976222070265709465349113474357050614511359167510489701002255051143249208769245221202704594192025535284001598175141579967538549719821832572384030926992911619632178495950850196314858048314006829230886407805653611084011568533515086271987192738677450627610727863353997736984559648946691662817005657804677941561291637457696548529361481014837046694633439611044004694486214386240459056035236523350610853043016202491049243422405393956797152453680801584654585913612531144252095518195727275027685849347686176812792743451044657897064879477793253873681802303696641957583858913406989371210658905173756506968002734065991981549661656796863654637274236709819686288373704625332055797358585496443369042104590806971292936597200220261915317686423758949545239133430324897738047948033893266083521364127966470428643033202680783740529089046492750714777514370273930906025182262288575260110348319440144339078916565056203600627087557313536464798021892592274786557518383479095485524574883322904839782354052693455603062333873277525929990490841573916702509680420946740706593000437592239167637935290795587105740585107067572852410678718574242106870747017455641348401432690531301615982753209791340408615522561655766752366507241661211440491979721128383239099558366480627877035472448124332472730521058641038207227666198646917271631250991604999788617905637065768988345482884642712238020426888332475589250650706251022232888686585394270836158313864998748707306122720951975043345724401170870179402438329833736610850381864508224259915093718138487993872339042031139299119537984115012299851770196440590717878182196372886005126957600542538546164377904043271041387599424191827187203671340557974992444167865097468974486068322138492587043684164554195414911364704847549066850808233453929471147528051936988588466802485175664832584897100918139163834620652878963406969579376086265734249855305700261518371826414881847546256451778640051880509185655485973452505162344843881793621208782970863266558692214676235327950043777279356443040696735753769000189213113879774388437844016093339376917319890522692444345124533689268517830791841779437990843402086689899198663802425953849755478422737845240236311587112476437023695231707607487230512047071162423562794478993934005541223075997589135815061765230245445186605078098173976413514983853446871081212133974085245610950567907558435757263990106061722900953106581423412318997756369181345606661586387370486759893728259514599371092824256255851146849101626496540896947392168021634373181672976286362673778847701551902953449169829141416324757551464149484147273858756928460428734666033423943789700863639758472952483891838208628086120845888892903147989810658684901080056949716068893209612036607903437296328264384174163874568212776516756269431562981514444195580587929597776898744809242194726252417942081965111095241797876782589008604191160066962676836448022008021860811371073046224929848966711060583714891161021537847933757529732902059004377215305006153854272441878765172129872378599267661775976687798111690296760783469001488382497751180412126967979669667682584047337895976000149170898850738700486386536527016683816707893173851505910077728613963856653919152586606832610822753760161898474905215303346158221247167352751738486896718157308474837692359348170290260821255228267237242689288249274134187952775660522760286047859831588532853128824651721584670627278759037275243963877249328063957583625340296060642509267887406563292199247557859513852326371903858631195462356253608157107330334075104651663330670481723282467532987560457383515140980892557385459776368960279481407468556952259898423047451817974465478087391739080920257337840667905279771375571754917435982244082835234228842222811683876683241996778680335966849128450002991558646998695314010672710808166959570650948715830358865018030595345883095082519660369384211162910349427202518741898928370811598809100668346503055501175322857844291451062888258055289490665196605109131955210694995569839922983163957679701185445997978955228584416441507439532356244224742363809201502659196591960262889581104286075181508115546636998128396957270634386405312714504431631214055538955032796436354694857326073141581323291400602877671594764112035735900811976067741937938996496496989280375429606698686049076564057749037045192589873781989089093292907619785829231421227647112062767659314043992002091407419167856536486097338077234387900104413980901653090353443312153988001547438944888905917671516461519206557638719251254245841149320507870647187822008037096467776214504170030946109871969820033460081130894584813958610510003327522703940629016979369085188228103104075178762862196000611047924018427392498367013158435013561899555514663620156267401222072517665616662776325172716257332805272471588452709136302424277511428911269809975906212036753656034064602124588906266134792862735096815545435295118180868038923028653696009564139475609580656429311034716079510993329930815455842911347406416739319103264291499131132697089538311200901684469650271391919654870704136365076994870420214993194438875377012899797619449086303422043108053105378657928564573825761093340984797716694676960952861760695803554366100590208306006049921798373332360504007397863322395695486682163213378985609358972594823862564083115105579928690581133505112271161729604995427504390293400895453945910755289990236860898827427908252179802481304187359742891436262075810987890503166593715292962179259218295271943320625526050700345989337115769056988393208293124668612430406284717009155904523786823701920066318127829490436614517376497874831439154448761115524531407906892284176772883413364472317437143710892489566142931623003792428474947965139382027223815064239582582395052592223825340803402531593614501242633068223390649457356440370592258297562968348887325239318972435467540124074950807200738736321615465887225683120887819219499826394325987594398365215933133364664144157339211544006130526364543974773534645025883212106372468659262523929696746110882816550230209802300599967491619151989838306308142122060393682894073513103987114904721795994554253903035262997779995953089168862566444896030318116851974526622285210316394325378863718992629274881478689668410255578804417366182190307193860168466313494904947582370525053509909726314503061789653756299530555942775326311378780846500829182127303860180280737989559726717603694466114353668855529763098168507776706362825278903812424060985455869530184112224267550930287129425436427040825372650436932346216333144982117728236123835712971131306797024504861446403493246457741669655541863152746022782922270560092649825679183533943615834256843652353816503011317232816905743192574544433811830460964379980807519024605585067662584915972022485713132218233093304144297950452824271838843294520009040003243397230556296878785357390542362418684685897536421041073044712668957524029331564638030125581596857474421002228809868074510587875465532184320046657949442889198061973070922328417058820436418477220128238296155278982690049899093034629051277947220740755892264686587528502018667254831472010016649480269463038513256230226822183593055387467608542268705114170599556171631878133154552863379277278119293656833421184611351976238747854140388586518291143481677548271747493669878068552622157953473802808621273978036740011368338636176113008789724055921969034494848535573319748784724436768951668190740940269260365120545474023062654641663816967325400028095809595233626942257413484406046213205370375766499516118908814225707174414691323591488001510593985338865637494009287133889922077609508100728990955540351993832965200893734684298987993402210772379983363275004469418393457084423265715406841590501156470228416886347213402088279874398423549196998542198764479981997509300982987954767100203480355028068221656451079500182471816359582559880358669659980362136457245544567439357896779608824985190882898133144266044532082951275050097085980992372094561316527170188391605008998540257428578423660973888644488548293905827350086982671752606327266595399771139085533233664513529634634246181561705241081123147459828071418299494110240009469158683517687099242281035877437784281978927198045998978196205786694282969294890673183834939381278352539369272678782073018309142913860642449205015486692817185158790489896746706731261884915878936992689584743346617531721861225226336775213567363459418048765249231330800635775702984282777866966388708373342749920732584728318591418099495256324540438829658604652820444009288274136972083846463859706057724891859523034100565019173982349699740986167706104819471940605288614612887941994805740744357887904155624025830143335095218232919436713090492444549428868352096278107092945215792951962142862766285230371526367880468354818718339145337855812179150715958590160470391391728651294489649691379574567022127870919775932074221902030341577114823131087768589385040579957633989542431845429291583494742490035115054143973950530975418167795585386431987327777438868528241555332124655706084004229821814531670352516596882164476868678914503760389474113125880818972185074909583924723808566993212157954913706344890525129189520068972721803621798866360274924592192541815698157468079999673427781243152703314557390057128388751777209873539808493415880978785369553275443120304511244565200616398869076097034210172590473045376243567925520472606683818131669206129713744675005635537969532011770508179919078482352315051780940527197978444734221550351718781913622730780965358864518994904249147167167311147344966074316907570867942124162441653697039172018165627247964412253919665276404027174712300781245971171816352346824508227696439675171598875201800354899493144492103058747464435966228835281256543781983123755427485318222517599989210108650832855441460116646393006551971848240095532981829024604099829676465072109150407359213278725866140582962200531364252251272251996570786296355869049713784109343666244797669504509669153683641620412508850072060137134712261378882939126332925733336204362425671740930164136730629329030212708624329435971272605805616560821950568710900743244998439386433169268466044849829225326141644561514158099536547688941118892540735515177282596674691321180444355313769220167555684576102497674079726258712333594466213591273245009670086013283717142424621923534306854799389629501654303592751981079364722591125951509653551965494472029777319156194933073293755681142908757986723541017728491455616234744870753260693509180584456096123189397475081538732343150791148292784336047524287695627511891405900581968884578908926195566851877073471703013915781811392479267396487030652509664760564477527638885046702604521935820597309549769517160614308659343407114030795471739167740913654361406939923464349064977744478617093805906779049236145350922353147723600448963948735217377204863478521734285279485277043739960873231855848310493451945129242591256299849509822643497439281840760876810488845974232321852883544757590546601883854032681496927886246432862483210616242364555363566574178760274100549197979154826941403085739942590959519575181204556185105936277458244665058455743127127970119708210692050954164155669324748617904614180732089709466683071427551147944364341776933672298493212739684606143760588630279764679356892879879268316500056671718020096183107352922889195330035695108601548149793590795485840568116292435795290719717359399864361713278274988949818278486994291390615550773017125671844382372297008847882183817839928896863059208445825532756019780806321514930835566540768918866127903137971036014986986483254389987170365435661124186981227168076033542654168202053416568311161290844271385436541831600237887662042325678459100104974506358570766687739500824173010738970744478751213701311007233995994618965212361750778378059229009536757371851515400059393774187176225283084385880681594595514195628972199084632059432903760033802603236677324058258171831038431361277004358960892284842250661965933835601438928943697955229117630906583597074096010635100710400987268175790883118259482084541877347340938452669269164970970204197419613533809228193329101606605614522473927252442380865454082877176721477197841305410692773956107799765945149583625327156177252004616650556872223420858569165743845478390622814756129209321684816049932162889638313336389890837994464187934553224211092421586615757794527733451991359848047283688123445511691212181092921315995498103816057268622504338431399145786319828045721934841327272600582537553348448477431348075415911266246143376114794572718119497130011020867573236422953693324959912762768272718943288101205943954858955811035964928428562580544654036260936616427436838160009076004114792984454145750058763296220043733334157016773813540774796875291749670328018184827538874139323143321085828898524991682871858887768457262188947513397744408210813192177706572999415987994882091423545610999856600254724735859329890686184730657421127409198567559199674857941738707011719543374725093874339607349882642746963690198773506101343292753870296750229786912582301581173575582460999774335273271214993297988441676619399489538604850443407107786159113728208692152216203358643559162339378197274130122899700300426982007107992443092364584831907929360977522038293128307644417119384476708679298097854519245062298246432324290413405032491822700084798573738522745438903851991332733464849747047147516675057095496463020348740271218899275120779591210081012817065844923667184813998951912180376004936231779651533237444452954014514233816016908927031019870735821833014101000058123458330858118789212975763961144432390455945678689608050592765974342598834689639430240245860451597450218568061652533276534890588711808734488697062253620017846521254336884899474484449827180175697513231031671823391831482967837078806445960850198551669598160256940387045580653316663831709855124953363790114621042099616926856107991370057878139304601586501545999338872673007613707871546484915535357034342783408767942531617399127026342160312822381291091857602458967204159662173302905299662938089287158705467513554875519243717084686460301130890370080417029699281201488402834045081206923406183310869713091041036486913572958255815222128552326705945248574543999473227703423509255864198797663080373255282279324958380122416033152943537508073025105715336028506276710129610898257781174271059705201248232946306908473936749613185620021164002561277739306728970915212933146574780527084628182499987683304905665287333887074266574271796830827394252465203097790229095063698368452196237775630951885366379416421235448336713445961579654265689726556859239382081545012347503968125320734074550278571153917891819556800996673838171287531681045545634223078027967084598732784674663725935289664093626239298659473923988471662696772477091535506928866873026468165289190535693163890681186886289902938416416863052567281576504677831633617955214824769382342008513857489609941997107426578916279886078676723585922881809418435561530904715774762755205729176369160391513411851592677435002292426204984371971677694374390743547044717124522878073312235803240738345957344705179899702879159573846691685833248652119274552331149609901370655462353280069857872092895657591140163531876849298580733613536442746003413015038676543381611432401196612606720046725144539350238527219136547122669867598920504311241596817128241519237005885319893958684015487549792302648480533835714823976241360855657778599719140296922607218125863276525893570518869990562629535885709683938678438653724737475699123014495460219313859087531407196693113747694614967124847555101801245387482799043425369843000447967192384817431736234731605613353423032606453736496432120013438479173885400671555701852385888545740348464648196209050392111888012337672320638274591801178202081448477573323186378443559220388243462997043557675892463555582002248904814372270724216815720925032992675777194333001223942154746032459145360540283825084952323344926903603482537594176339701086527647643816934799032849088802517347060863669735561556255757243317123695211556983123328355355755245967966620330915174018668650756015035161598139185081642435394885868442966421046427819172573993801059101171266537451773311119967972957940524447896639250497618618001912607512192728148142896213022258309902948356515136060091742493110161991909487656914680092362140444618313066456197383052018033961080442153036905176185992066568716364102050027848378254350536377473389201095105136626242251694330365987308254107739960794530930839196980437263391394521670949295720218203347425961972743207784818227917562649750615422564460035406968188556539059328859840034250057625638822559988517017591579231329311720374077956046490838615561543297820123693856919817702737917094130901095564673936194984664595137715983216762389284223747480723842632213500870297821100096889975481454881251200459864235278695059618941680835257548925620850623582431344025712888026457396721202873700281990265076498312371206275080538607412456394445061590794125420304791921594555086274616590959670156429624693612394293747569794583587684243642589170505987711580871390816742798921513164297063772374314457888824439499810452461027801161433652004178976109702457678838091449780095222246512252762109916580824167756028280535488559800334857898801227872758481253259661380037128020816903996459482727429267414235683175593275435340738325409523364872147406192720659924315971705165988160189983883592032186206868039959438136595393719098483941687596944798805805690274776241321513303025392098931435440433657866021973716751107674852618903764526334578961250816728341206657092324611752933945630623412564532702945350786747105502696458112462117180371445632464373433638089672876101264223849644799082916495252086863253244422928024683608920892818044592806656515669254803731736724088465067060655803639509448889059874014145690463545421449159196382596971662726324213852480740809754428382392222469010942289902061488576728532078598899653513933207108969157579041522080599517668005923345353611957690201560447515894787627230096680279687722704316770173733691310018082560662778491791365362771530448278556074220448821571116199201764022973636442145473728241829139326024976648150725354847877426974898946729909169526560549863404939551210812029898825942228284778240445936896175441378323279570314215866543628116022583805281316963178131880609466388507582084658648671435988729647207707686451789425377109032085853106242955340287829402818741313024878646646333680889475243012108507695616837865893494691903633884568223801543939729534282965932741564087115741725258336551536786959228281246690482852707739559138908959834780212951369700117393111768816471990683090417922168438631145133265024677640300047523803453888378957023605750612337943472477155484122779289493185497731415068008172823790276485379266875574291883511268076203631053977742204882437288351834627593132292494155090355123716128576833638372364752005818346505570378565931378729270085232013740109645805913252978816441158299769623274118731672400956552943698828056955754249356096248486956409517649932157811754973404222251061228306205898966920534982180349604061358112980831526446001195350166393931479231953671411260365474535191138873032429772836590576070116585536144188121860816249319314318202660739945760146208613140727485405726706353397162545555042431297175901744166524787184378771523035151420245164742950272859547026388966053137713332745902966167739259796910734366708798402925831120785651493140205985526661023062205096486843269846114692756190016482625067068201416619827444611855333021060898884373318482117647398742543990385137357718279987620574549854003667782407837811122662017544806835211783374088864424125500898352063043545622899668410406790795952669628648694758685714425261146403936697616691060069005954919445184890855976209283717748135069276181961535195717222879369607706036299769456755739604674550972037186616165718431948412901794701228337466637391553845033154529851604495460252302146481463104438872021342243031548000943558835420463682821110295604264220754262131070059209690032753647134171519193771471524114677612660246525819706297781238171207338082742544257510904527173582031078280693264899451387057770923325302587947323842301023246474272660003802797949132423107185754962426654247319092736538587058599537189731988302371687239073482455178373780759616649955384438039778914536942923063248355218811709924412040060225799325584784802339388466163425067761153745388356672960401561297161725417751547285840913779581710748284985970976644453029674235502249602326707038334458558006381782441429888256329820739445418179107959280128080186426955775339114662437404613345580840499045449545725468262461358852687611280428924911901034169049220576312063671380252976533346251825374937179262807495311332589758552911144957556981583942187610316156968990321288515565366142184532275921063465632599281084333757439795123277667507856364962058732273652122073628178443177152252933941134004184798371233324860524120807127729157586351930278724619074157049433168749159347257193611845786631563386743733750468318403182954035875538056266901833432830983534122962528821561301451598046841724139300990895704183184582095359751940608133103864416288490104100809399535761740699226221702855521233571791134421494160110692171354319274088952013270495545693775661430206675383803242694924711093298723267663838206056758109900840397216207591363153123867925619351970322613147303891079846893744636468382849629563288226407818782543432007295687442252454800332119059010416836995915866669585460732234203150875472964209590853832614838606196985816906293686302975621565394372411365976089029178656007617056474941796885812239163834626941391574689362326629662514940605648267036120112884939005657772310624903206524207663205556069049957929305162533520241985774419960303919805339861719465177928702779755707351042349011752560220904662426942694711953546176222084102639734915259359958246437494177858844170406496582813492380800312850920930011773484963283673486496245762919822414434362492839437794123909408799705515033886886421174068594364094522390878734122269395570786228908271530471164401102548921135405844141015374153023979825931487612274745761548561248674173021347366186800374097673749103772236500926915782137349621920891585258637948145432623891898403126263406177476312405944131877808115183839009670589980858184299679358212504636595891424402500898483251497578742824501690845292430605664493938773873921840686675995239975554649453661209379286086209640232886314526263692343021486282379178562975975863001453713107855445562572361049800584899671649879959601365994615731417585703313448403951594149497668705808161132136873429602110716624648941699294060229448165370199022145790648707641065510763187977947351152561770867836892490885981761864695711271725175273789007675207798325367672972380170995650207163810805136338127934146579422309467073486322881059531215362901108876892850060695726724329898273924524222098490287842080876821023970378084679720392108175806815117712520884763211314341952370092023568676812608140164451559238188451614991383486313320086046617906945920169424941313799180314934975634760843898205566670988811953772579492256339331369923816160379817015637004349698750092689400346533034647012061361418764220269660352115487152512750321947523117389617632190139098714033122893021886343836344623389055618163649578286789476615786891470897547547513605846127675386599890722342324102994792108272607933608999036222605172211029956705305694572151297770387580401137757869927655728322630795785685167518464039143753835589046236627776028360422684594932699456223513422389703271297576538022042161582814673203621370663319617529152452405745278060516857375507866175908998187254993326723881090182899441596094964675805714526755378406402490879148740886921879092670759620297595966772124266570254193275756121125536725266262429105752971273336916870811771063692965779620317697174256229069216064027338934306426849811859895274334846832773654684178477766934743774917309046966211753286061363336963705120718029583553213372581337361827103365896185200797164722305960546993911856214104733788218502064582520113111648698864103004353211113486156466033656980013450836899609069023884370902098169064127372244417080409016960930718065795723220337562733621446348931914278212045885405674207185902274879438431502074174675594791018322538332464592242532939841520953860615678257121700817922224041409492612951337925955048382412120954403572695785519179504901565781088894251149594015002898436214663538965676309913355292455013872641462986718861237581860907396508476447828671709257963814566989171676176921241477559342447156309572177388592074933754725800421870654046841501885908441779444197375827645603501396150868086103969317116072302218895249037540933574150959744049002913124149149252331967795950465449226586289901525889581848897089958584977893125773096451482974433323301863689463509989175654568235709123753347237320498840826108664134429537280031086700124473485770445609139973591691066662159871959075489642147010085602185955921798865229295664723619900996523017568131973454114377540754880609413175556433433155994729719085419839156321734991498499666631493159937151010318938263726006687817170411157057694882218494847113510488610478873680928412172385052554616130645071200352178614516930409409682363623900753977873019130270837718177995297836856248160759040507684798353218121323099312627801421941811515047976880259362827988062699720399556732181001995927896836344899712779288796585483076218967394840806189262082781568599619129460968782061041269246831498280995426513397891443350552844189022705224120392417037541424530614102901442313332576417295239830062709904205896396467042813066482579245740600624112731033144498540649357312413755576624213182392360966076571538715552276587220355258698764981470865825373651901461173971200934973896066792167701246352031614961462534269872136252435875133658040657016472169377868507558381860270812001917179707850428173870283763390823549885653635389099222400491829259521978924767208758270873302813460272601961119819798525618991285111818917016110102593311834563163052882891765434474855890863666062172794803872544408501021530289196680391932533869101302072010226138566258232890328786329208767462403886133521877853795395763226452794403282306672483508457108006284293101982951911142076799615092073147678089948547415570965804384826773503833142420376032218443993379754422499874411163843058731030714653226004517736934891617653320300471179700776174723438485678475266022324574594514099234765093452691454900935962742849089446731790653743314970251185648718386623818806038961114809467008476057081562687778349358579212183748944031615298035340669611684893412799254374220349172650110586027161331259912170859374470787751530036920669406880263967508043688350707193881716810324080779079772896256160286132748941084023646145798648981717201979207146716260743817093556005031762159316887080441313960642064938533192148924430532627123085089008966952792917411687710523743403143246954222111803672280520040972938447064668126583821781938734172130350803267576721823744569822738056838038325015216960151266346935543744459595193903703002537595607772752808210513074820246693166068115486607663933773862684054301715677282283503227446284564099107412336793156913882049332903895397054262751991976438163889185558980565013740781122450609377921897102552128748007606387385926455038003443015152726764986733901642030792841071186498413071508384816037800797751918401396806104437698850656200508306201934407014765796230641259771204848546883829608095384355466957604710592990458084374175434563561311823499899295401414968842763018510968492797415491826305886522974649485263399863021574101309629302110691274135828825868422455341022172104968574315059941613588513527956596683666738714661798548306039346892260754421594309504698794644655032320536579156062841058397538691121209796531354098009432584462088335741084102353942687823870506943507000920621473320087697549902848817459493379656713243333392833369893271503057519882903607666048716608530842646160468505000025777053736320866065318619638386487397094749861263813896092991470902758137638986856292018447873186885933685513774212090945523464891496979428073640358143682638787861931972724852783812009432001000642479383032670240155830421250556282985235043913120071792032473198091663115082862139437727094747337465350822698352649125833078754601367676212059796938825238344904394449981217391266690684414748419559877786181859368490561568517554523906056027046694865475537961374163071161134731301030771793796212684109556536967657843864960893997035150151706044959647771064076788126070661103057525711954270244841181580539128174343185966258051860955010061031796062386096512579345128193339241280593313176717177369979245168665232370311544427518995660639342862301828787686335060521311131125634146735855087618987981200849703471381998867756288171294249467795922940855198893396868447762410143733462363753380645912695653340977321893586477434254486903829361039104535224558494353136711455213507203135040046384300408871222790559923960218099689626368248437247276646819896317546476981015201400421054753379252287143659475083495439961003076684604369950572607856357359129564931107959024856446135091530279390178720052656360227439527932307192197976534515573962940816329342710269696727803313352064355215688351860803787825778798240173003545136347126046571335550596794990581785568536663657068085129273988289340190036377185048059226072562704185140156723638287757438642729912231103759987476569110369384136212690861278415289923714532625659833822680727127142957934861597409893012030429661362943682938612115961864293583343021586635417633329372531775015319662886681642206848036030378137966192527388771010412404740178945504900182155935035152176751836246290170973356690345771112696463173896530838261969239229470972211198979837093422987717108431727112384601604336105139682858432550205063082624447027335473608959509735607504256714392249653859799063690695464303014200075014850421772026017475830841174775119806179890456692054489496791872653057483552848052230655058771046531204982965148400344512555791791710331235276456711267990683309209135293905895932077934811525371237829045324098213516919066339186912432208870044502636169993557971458955244464326401876034955858403644431955976520417943579399044906285467271817887674411467440474554785677208770278530547369873921142098349260239841194621563735044440630854428831443840034236279921875555672974284421420794001415257841246945016757634507402823332830030361525898991989151100362649770627260556626496697998585421213140190637744012401833910908440730555776603043103464962246400228319333810224102536226941249795314889571536847941271027819745219632164509035334788703689769185353265153636609642133572252415765927463622096496057417457813452187501659313298376529644739120930340824706156704107162233687830484166795467827055245826964686235298218327738120967823514998540780040285593044183684433231099982189576810371528791797783312551504585936071962821487852863364287756096863065768098123727690004167180154026285512544443174176340910506723288069437448590203945195876643736949737646873469420791017426690961087531463785822096156815586169070112837696912548909857734375564084950579004721424767018632567111984258747167978938121632429261209309408727105220190243509693931464358908644361348692146998821252010770312482300384407030458708560745168838827986271849509479705982001992072503511939875758708036726947282289391847663653254521993000758442033577563870919103236129359609635690303597585203520785429678778445676385026327852706587659263444994789405541180655309029491904510290800824856205697768496221906193449132281748633974122795686839020703779241217397467257060811817123684748531186212570006586379609492452089754736506098011136395906943739689067299937240272731378295271621266105362160136969205943068927141370626002954314991157340820829916896955484613809662139133444131288914543649582966201497944712895515330682665981642099025100577795414765437755021009950538654066615469043973405131032628878736210473964145867032847302003525682029623823197345096349123257324127835980074326018471001054760062865558980819581899919849385487170876290540364526086400112229239008233541497569376401353120441693918169516797654226830699380993692370098296651950272059057020867442585149704384459924384761554556370224592173275286937402026372396809790776505072352522586049463839485225062790105145348655905072167070842070806477139497860567522410381700551813149965021079876065709488873041946009873474311219468171392720209935585232030097443941344118176755608683462667067202383921934411392023309745356236997007013035737354294647826940663772392007458917000278776101986914709907829990005383933307330906916471964942524006542731121720096799649836783828339147188516905165037324358051454821773703073114091123759651049875242645838075953708214412230526987797851772994699974131204216909661889558083940129355513729821975403035703604781957079882955735468623567556292379451278384106496102105959637526000142122218403679583349215731757530553724738636484801945825612179503140330703719816224995251582305982290968673148273048744069960270818235920266034768499065876934356917641463161243222136585133330239747717516377227985336951468496342422360202629527064626612436809582773300566054757147462448921933045709163075694398862990556613009303753471538266140279615011541914110035312873096159177986403054236464617634635464616258788625524855476378583940619656180354768984391292089173377185783974625255657983737052246723560856912080970389333229868312864930539269894051613701967882340217735923365140145296089711010002569757163089553731343417763626882431283175937594578395779993121010724715014531194602999535570678835276436563664445260668398554136876935834085156932631367933183156846749889567740335777229084474467822332873240799767986976963991646731695590203386265461506525774131836425115146560730247027709764802259951361864879311173656472182749655320716824238060267363570074413325703977341364661517728947032569189873650069700663901473149590484129186855211049211839973939392941952613500834767281166256140136337891577068022128709130312278850810269972753963572881840325496730709832377332107286284089774916375452513825309180372676512840774567987206801962134721450141821134576323953384075419104617581796916722564467980318225612913434857579759391144203278644018071340953264180005494471404786266255576752556014874349909078327454586377450297913859636004773846695630375663743524215594957743475894523374074849303914296731510339452039416104466647196997931093312893322794964015991261169303833023438883531035109736753857645823972159946261363823120041065869284926804940002137318816294354020110630219938484739479779008394694910071083421342872373617330616370136050726676008026200137859436045177089655964848974316884841873050713357561892538716637178993172493844346329703593999176159757560460423563548990231761064320797366561375448476661749131216632062156744539560323853008578214028933681150376211968684375455496061938190359569529435762362572712604207563684356199932649957783105924643297508234361634123350336349043974752026726661871206105619960464676886209328202924101743360297336149878534199171719786235873042965426698519895945792725326771415688505354255351577419279895346664222560410250512481559161867045435977295496319891807292135653380003164715113287275849902204190067582189642312704078702916354821313333597163111814731281695295185986003281502828788972154101240309058882108952046408320575158137722341300146345829912009523028882082198606658099695628055425239701580733892774714921985286492011856163284380946045953988031079629882639160727815046607266398530136795534069242924108149560863285291314306874007147695751235425304857163660357317234005738312594210130549057490839319329874051598002746657587849229350678699092847383199857983676176652850902507331026457323179079905838676707831090358705358252519135245892167881321889177081992234558272393738614215877529098726031535627808741524727403403612407654999999832061415704280329037019968849868592885920034021284050370215284024757816585295737391064754431389083272926139398798844233233539869982433975804715009015000667717699592396132793462585327860234232101946080195553023239760737905909388486075220427743749373673631246722004853038493751611073899228252744371604343725344874106919417736186126689973816747244253804025945103499592992792820798862458017277203951904666418276043147326190696859525424723767039862195152205528006957546216768349013504189889824091678467344178883689925330921823359112538627462528420771910624890420718896463949008100660679972598898471853922900004691345576126392055501524906895876906164551396271017901261498088101782115399449593658833710749881484168752151279007407723829793092607011177762992647717498281300022822245324360232228080771437887549348838305179008170915470025669450078103954131464986932963433592313724169529255038356895916243424533370573490048110350029403234133542662116709640591730395758143470794761374567589926949831759300355681882434488535555798813994628616341743159422929175422114731942269876024522654836152758482237901227361451973838802915206688773676474254046441974144220926446285882025580381021760831638790371970931400046942326316240540537100213270410840129083433954603472384621647442152911997757255939951704608812188621451255702148696045647058455879391913109695568844186055760355574082401726661197222698477308362341446085925361992834578225219886318282288749774542910308811011766717000257705329602645270335427243609981521531918168795150674277652089794427723938189175968159166974201220663870019937639300877609016679031666111863268060949138172597992691027613802376089457296449044935077494924097961561396568096444078139938961578936901828511455400103228860297383620542516211099673712143360606328295382058165383547566194793324863909715567990350653214230848558895682501198914187799023024960667371772503523792171044960300572180566533859535013350082675738085093657033121680580338486663378455810495705082934813768624133860968051592405288172475256314890843341586441140490941534667194190845340286846336969889528546933455670775838972673287303005055064154035861941930212412217367493201839957415561191877370945247915392855385048015484595361409465512049864469771483529009153081922128476446802735325627081884866432535363822010467209845453585013241668786986531741941590784689845567081081411668595953164751010589040271378959200821344017577427432469643824246918689601290134767738146859126119785489621381823541982747770885524815356874584036752348150932715281023638814245380606642922664383874824786519577679592319271807652434050344316233619820522779547442491685214310164919694802918172819526546395465519942772076531534448632324169413007428894960248969135207036175650349431814430772900654135805442312955153497029204918210105432818861758329049047232924149116624463572895549424732308869025795267685337915786162032481712322916347568173389253253854949099793675480166393698624940853533409717550737882711018908362808731775255126749277470471003649344787200904628302773889160588266673076585779890935572890567861110073768360628922337589900603227389666255799960917472443249396312749115866796147294833528398199612309797281899759937900117504246617704452567758006382118597228125402530679432256936977692881164621475353647059188740758540355417626527007015697933251787064509761390373395354153713892887801205256538005783177961419749478410899771024982187245327889220876911819215614576171225611117290041887833588535206935580356249746512195444426770252591416785560591641356905121031102438391769852068359290068545824817336324994841537547560241328616601268456766201395028613721738408913921592666226372341188745661448744750779046532160880400869219759294387332721718570265377269700875469740535320146021920830967839520736522711599419571782918230379785159391685037148568547545153398653765342943944893541912229482667853754489301188245793439781173413784727646348168435408552168453807001227224199335329393668787123792871100100368825834517312379349720580215390188768635203997073191936636581422635257585331159949713524497764193364590447777992252362704655810560056606203590128615284492196050027561628049370069914525688324340668177445756497707590665964600271281848555834485581897998143779739676240451376644192885289123005008673668037769541699572125441037419634614361148118985540146172964077210741333052793007141316007892653165657214265617655601354472669976473042944394924339230631896531558752733970932105734365650422743927098577469754506707308683216738383255046037710039791662125218538062502840997528900901155649436001538210587710195468866615607422790975039008046030838707812544203293790953691521424283757935168941877386732601786226185806703144419415598393280203010636297639120233249890065815411393148998245387471876926664731769661700613693084730925376844716182581408509418404518161060826909696510675677078625528755853180651785398438896532623575967935531060364959082329016349238192526545442662633247808027905666643238863589967043150738722533206246620190483323026228939215191226941348755716176154213075020551418378446129935641012274311197469433993832849981586002839796088986698771806997630584122599832930886901698774410081068915930339941544401345301437335090412536094660423516146783026232990912849803585174293723888806038582349286320234795412167852219953530921988083094587478706942354635785652844266470925849359101755295041888990193399149582997526023205306131216091812542974985931324924156837934850572275589417164701928520546444270654628280829066425717591132300481785032434146310233966188636902388875376630755007076222306537303238150426261904639200118141934959346294879653844526177631289904246569806901960128626561999079328231969192837515821411137753836649193139217879144045171819150550136977831033272362399986054439736423885231909359825575723731973132025780081836886280623787897097570259555689252810738809364351396047837490199242017935297154356004183289454187217735584783895546029397132160768265482911694159719266699458416971262585281307023357992326722958070931170300733329490459794773860790306513002686570436828610306585686296816542770676070104776599958497902302507834351764443580228973714378532245747755285006013298707409707087234407040409246294726524539136282130212497400065128040740648092693550656719328392884112752947128835384331813278783022187961946312997608833878057289468102721176007381853725264697785624614471192636434029996229840322569298618937687096677894601394002292455145092876567945047913960898761865916915434595015418264964606551629512027390753340696226254140456348252178353624330693974540596022425212870061602577797086643812256799687351607483031750755797786710853127053798080277134353739727519643362035635748903071435491839106037476999958507280531646162993621837603476837055126955525595568343681853539903775429052124419143102888199481438397270080634940343812378307844621017039065148151900679962197052711663133809202257966451394342381807028142876665972979612586534931584308087340567458837761334359252677594565844710691725695129820731084644174155598910259598622358057298140062407949104001262286612556718441794980383923894474863571651043514818522625180265830609527855313721389363502929413950246830551902570565561877877940215168396716037158268715885967662852958175933830029480895610379204187880926401920387670721490578720377837225833496396383922325926013380047344266524011705491689870835060699445502298727144567172070097621919761504255365061966769380800399112966803248901619674700699838059689809328069425878465123368080266976370425160806127573442322147009205900871053384606962591152433383770694079759789931330107203026822194945551371647680355057854205719243761023723520888395701142918614833287183966520137467459928194227197016436500864030493740369070103706551179575992318056538807611889983717882239571588071126640048601092376441900633243248342998686041015120629465457924744513564546704318095820317960461258398922689426008711758689447261944443788950174804778828023033364786344812300799668485212912784815805081132159327757470666834852803023946552581299189525889250401889778016928439001361602735067998859650384550242374787808674558472569034318768481000700530601428925820716739644566161799688385477867079410942993808300922411748550163766213847360371688960799524040393624271779846941417393556426746834014655355192893926219005757301173720578731355014083245268996172373105967071566180983919482182501269355269339370146786622339495296786485722721957454647200312998092516134780363777263696331377672202665436908783847529808767873515472761392966547761436854927190374182954647602239768383877684259319902336404722676160985952486061282751373892079506433338328794643370188886351558109308596880227032942550182099052946829968163600292702392672591602700900931292170698809445140532200164926286259185627597612555569582010724936166855265877597257210875960309811650776690426122672616106832722090405570643666287937523783395255382858347963376958090033440756956869903671478381624464460097037373724086689263970685205371188880921200175577090564164546626984490074011255437252204146540540503373742313018364936709828857008691315698989668132025987734396481207395299523205765607973466675491137113093521397719611916743186295336886633489813599934964977080681877722129047408965232893075634296124857063581461255471947692160297376552283866794033099689790768437491340921912456146518738167992286980277892068528681283240617748729506640201478610261432499913554678465300285552391997863510814062003052388891123314606598687577481635502603842510153119204678547397407709365833002206597374334574433908549142785036063449859909056968163947125287862319877968368732115569963517122500618718824573757309839669804212606438189957506227882068356885445244919346124766884546157906294564498558678922736432414463535755330437146512320209505817693596424719267674540244147202752180220268637711020444426548398651156111067414981753723269643283971458257215262549019669175652637567057544361675013717073130823787031164190792426070709176846618292102609046890698182500267248510365386450805315293689761991379026857249627448925309928994012255969349077192067161663638498520200421303027930475228048742188040826290701700501965935537127733474532673100173263786541429530405816890031921875005776127019957597322285860334111632256036801274025100173622305136829987310203429031146369393253591117353943947855186515715456314846709560534996573793870332590664266818351760003361017438175316881958062983601235660734848054355923724489620233034203342845073165377310838018030361471435621516481511413885334461913040026331487837737953256515932337148795345277746795436490528864908995539425121319115172690981504585260891920213826402483613306477986106862360099595088082786564573562965467368560037493520783941054681818063885539821805518015928951605578443497656290713382581136526096856597219870517563282891091262951288613674539492399863813262144465212699951528910053341886532674961045554046411822357714132886077243192866211059577223686043201472948814506354359760563782684661136333921614729744014766456540049498049339126533409717101613323439552761473539442922437475560870367131069696199677113318690849637050943095138698494508553197678489131608170999576154172237874457190699342413920049959445820830049798450988525949632404200718581880126147970958251316613581217832465271012885309061145866483401596302094431107491954145999270870965660846330523359434383076303277464248485738126587144669567095501456753020056388029865593993318688284858208811130227167052402622779865889827612138290769643858044557549915188424709366204307706452706313391930998094088829753588330347122575228887254597183723979010936885332301858098421624876550430840819724112984956472051727281717362153513563155400442114732820321144266392522719897413828479415755197113051900011496731441443235997605316685133178101499781112827473456474041395857764741627704585847931127133349538400544625288970641321081969713008675401029133914002925172104448481174604227212816943823355454580067806339555293949091749424948641185138249184724917551759971972683164610583271391073238218853762700776089710521357495790150095577208902638982102342462128965757331999183853539199763329406048026789065935853330675002481263237314331706922744508214174167646248981847638649823243743084870298409813821760373952937727768593387775437225508410622713043144156245283668049557206023347194163720926155492613506923202101839813341261708548828317895291851150348386508837313423897290226230081491577099644254470493920350910066959237723594392508551212272733370770233537663036388928013274024404684372651484569272034962636084295800300864906962836488119707696257353248760367245135803041708360392595769620664938159951618237971682024359312485582070883674516376024251559189848966493309217930769072499704725511548554212625029797120693759261031602080015326833196932242802465466350127030442482783778363313659961533691616668502369995850838424968639873285536630030774127726782243322294869144549567258761091142023907448392526993097757869661886526844218980526138750848203760164485110983689455423435429094813167634307273549222599666246961624413105055110148957130949444979146164227942284131785594243980933903958950120549426114825111943057130365572393155726375480062070906963033776617773425045813937535920492790353475618038880991926238271771990388490014524378680185438802721529704769035348133610655256036595149091728645334354227938728821595126454114167078071946874866333439440895144126753046326329773561330291231134488691721731546762516780982145310172292470979071338150929188305839906605084073061313438538715380104547672941703228296207562859703212022260251559948699193276060976868957871358871356473846482482273512436307686079056767562087413121348278114996955739319402010906722627055313498240396556836686335802068207253844861018609236096817607965776308519346580345667646729778232100543134210950019044688270697671936072985858935256924431529985514505191417875315739672831352229385230186874804901943071911299460827534082559661782853781254560993520659733168834321188481711411099008570533470213986622745008857393643544806100115708177987338613908522340916900480645631713927050426702757869683984009392859701178101166005555917744448027991063493047612490365996400986330782535532690840271327664882143952001370982964917075474792644719840665837189744699592666257745792218374767221492416191981038623625351949082637026548718204653009086638531109499219366603590706676861181979175586090019947271436072402326676412096453071752075335704269458109423356544639938467862597414878969208124099717527953969336389815453914772366715879728991714620760711995717623028851666321539839063522568740806110244317396786778510558837042940511560757594882477962785124794577275027862447278004796669826329344096266212658581426095214851521404093207076622216389329659175459782734092791015808791037854453843489530565321963166050138124544543339761109591199862130304337952738760351860736750642569606551594333511648349946305370730637329545618703609192489328276632772705053679893971678194599062699153927218148071276567299617792756076904152662330128300042029405560856645284338325680326332385873848488629937091624832097614651826534094389286885805399292657607664630390916841242829392225717898943566049871280668822474372479411655145680058056618209555143725518330782454836817154833890564964208550243609634712121590805573199186307558252758760027121496966952804854054889742188892181459121242902391439812191906873832184238179286844289564325913270161324685573825431290722169343561939165345401296193154037694322228963444320857999993304118800985436525996271496101162997738769260283452125715623421167241243311302850275230091692025804550502518163648735505319672022503984971944272990256996359073363980096312696473156510495932975589816626752824371806363396679336721037793493652907725235485270571264788476281488582197686443104901866130021734721285655226408654074604489184706054647013896156099683560224189525612777801677477441929470966869124178618162789205253330047523330696542730059283140519638873882480446742236702037208953923092981551408242954047770433141805036385908873538873677983769022339174774858232186998373046158287847363607031595178551690194396435592035232504762365058957347215736495517635168685025016729787659908758222394746618494820033512992305063336629004090855409712427325486703476681101486751649591333699952900863347084033721589485120167818904264306330044514158115194640966910938029591078232241212696298908227926012879829305319144225449296370448909290834417106655502422929272056309784695121159494988554034562107741144970119635441557400093979337186465605428736552479072747216120055218387361677723928722561622568192043669981912736110506510492655191676983511239043925738500375289239573636952294071981544471111643612628857637248812653687088244901994150213350323494196917020037010854926597559529186921137942377379127717572410613974230525777803150459268442164536604745830963363927910297577159203314021537624372787567763304075343436586854551914249327359485120451807959804424262183892378332017714300090233383745112467988466212060473727065723773106105617038757679230591089969410826376935155128276278571028447222854127745557051384763458610896930133161015727233768804894674391635213923960180184443520642116739259301135874243339521327329447808714425648461614795891281993308834168878712375254559632487328892147563841951365021036503366510941678137420273018403921036632841658769047097420790353013483235461475500060468163921960992541440607308354823242489816498847717033419752566837214520565624577695134794522608933406963033518265668570147124517941014731168803820160191338502747764838128812500175244796332348104693166326554605368689288562439583918000266891299572315592844893459133059798715234213929604672868062883783581483481406559158854772368947222813279093309778309102513310719814042020614411276423171733504189868294369323438156320711333220374793479082727515399411510139220019431821869768642328657920805403780233534596370565584805712742374008764327529026596901051572355314130802601981155654156182451705720671502222616607190249172784100281236241947232446685002816978501678229857048110275664084116499518226089637227718043679570547708298469406978911161457459195742259752695588418659007913581438059073486295446663457732016686233444618408292460964058727017490863500082671199128989948403182182864897371876495610902842271712860359137501875380825443889477043196035366669204347103268416390552036166443312292636530104052949736321002046745925676891791744742929597200649632703815137314375949532366528285863329703693231555847952419310589304129256408432597130332368314967603315850831770811711750108715190419555833155873258210929864703388897965440865825276887489381278422232216879508756605704702772234410669263162637633910395299336743367286579438879120639094404904749148117415928059999508859523176924771912251063995582579162581558731466976160038468125956878925015570880414129936654303369498814382335892509109434492400511284656278130331853254683240168976141382603959753854171042180895217215322462708959700487040292517089600147302510797404804192062507276655937092699513488812003594872556611096613516317399631761575840561782018467327559594426546537963083917289985122757724918832343825877904877319347443114303646137143670672795614083349034083443559535663923381786781956429563014243566602453048644859129443319736705951718759012579817919831323363025970135330481488346951301513259012327087238597415619125363591201792004544568221081859393861935260257315402619136610343944984118945601851073694041750132991994159867940279093934103525651502390058982167688472470467367755320262233660605515608038609523980418108399034952670150704511231018674256737361956212849927673345377482487586133639799191985956365105359775909301236814700395578199143977649812451457253825494651374622035326106998473417601289925348945619652244488275327281521937847614678859746675706066908534018521803410286719287866027199114582201704647472720606758833244284208917107955443284608577964861618527996782922457962962335146702522033175149251081732777140300910136073292207273616365729266924360484587120050637178788192886882394501151760599387429734599415509678695323466153088160260762123784110446026303411568878892107078096532291356610697619975581229160404539229821564659032305698488845149636691689095647518412958674011759918598278016902008582102440185499004361377874052501481881212939304120286529420705557136813511228986905544552956683474825886730932560625830516814401012848788772036835470571789112707301383887276519530956837168604660987233339115149927839486478693331230278839039769337146242961455448766541146794430000494788120971083055912518225903495384870714788068807377456308791662055903666253181119495055868720900771076853247029856320241103213941050525223792590615221323945184518247099842050152779987856924013733588455000936762602617607146030328113973402050056322496588836949619708528244414706214711322151413873190332789543547419352412334949973917837129027628875741169873479958213930423357056624126252832578356079476441420254850930959444541312297318038585290418673471576642915171931811805986154633172517467676358431224680152515178417459254143477431541382952696869803528782051291806647298126874329536979807029010757349926329011377308022125873089334445372626606347877313019769176345788609613117679707967357096159515366742889840589718231705083548772824133674177503792483089114882600414844313639378259944172278548655550146209315854842293887500048314672377225902650814802260652190604109038994421984404533156909742987444056157250258668043598391051225487038621668266067337369088077604712051312560166853435613423383921404713471831818647811404558611904846165972049595929225156640935685964329815395840563357404044055449330951101015096349435378275102217490126528846356263894210286489004335908060271620545511307883683140719993997372760787899670974920264726920458398748566141893580481761218630208450124075138778793003884554169443279243709862851311915566445765082988097690055277459267568461296545037469276409860266017777447115734791006193761003119611531906081394125174734087094292076058847320142467397349162558667426851440971337745107785967563855020881560574294971375274039770164838579339474142428710185855511920365741765489465549357096027488014253718125630350333661411150254034680525532085905502366116802785588499801034235845233856822248915939861649787572500394355915709447868558490289596049422339995224777449865605999025223735928626932737676268771182135239920518595079017566114769874909291123126296776941972918138841175864809349079736822331055817605844141799592325585786046560881807308323336497931608167799756594301088156771749253219953868090015917759194417838368421798973817227292088782491209132762894439781410272931327153776086035937792721368641265298429058573604005450332951522685405251229909062704426054824730432121134042449260458153572992278061313675131447284737778882345084310213116217589142789264151896687458131677485497978084215876092861285200752836094758307709159998156466362453038988901922404412151284157125653960842363467027080308437920731880926691605556523403471472200199215218216173506569143629223377724464738739646509370879732548229844128874432740208952242256394819080315353023439505971337049574908991024581883006484999863706577404684835439415828236961602739885681307024422283896091262209187559997830553056096228776289894860541104127867001498296192712502555042053742720325114387107395875664406953563183847930030735832263391178351243495396782074264282734436996112823399390423910161711133206404822007523243721819248467186124025990231077123264431594708225344319644926338591359522098130730291839561895541348526548915807931386639181340892816918064702518847570225065625684047124290475586767010700213851837204763175791340250518510316807283409215879166857557138160903387977060555377187672445146245420933563874473435739936116176604072106954977378539064505648598917644863606692830843513823040243284228071866799920247966412902648446578257765028051931417426699511051429506459941040369852549181070814012463686071854421590210174966491056286373780443465228705994070430808515977179032281879687139405069642739115835731067013273194158576343469841853459871622304605784607096742792208097739597238942006283260403251773694368877942981981912456022994597631383990995555926068112707671765376186843088379422858508050135811507527390100902399460789760249761873229245804838799137166807903901506941776290221282603523042866043000514882893041202648768034999622241842884762413827442969777383286779136990065608501905075403109379679565775667180263230855185205702829956550452931202851808759343434583326967284021083280148935253951606904474285536474972306984929956676107533981198161578017544017240988511419068379619105132457636481097666120349467189875669040657579170851146050139162867444757999625665833488518708218615716693887739450034875865795730099152483789282398128277216830642779693422109085770394807124095202276737330518847087132479720480093849978473348220153198208738183965562317575991922344525638742803571254443853143450241158189637057222070871917632691006768572897302456865595541627613938975765278283446858921784843045594964564427364099473910661730460834178723456023226881958759260630330055921842849543078398354145270905418589634566666338613235671919206494143543807093361640440152022672741624916417783668333126807170142036475669562356929440582382093712390373030415763805604945977857978591416935521722069060397771264277259263500797917459727457716971854264161103605687112102727223187391509521609017042697154198956315855944547113775514824227882652431444040599530510456483792623450971502095158835819797106530084371660681329557203540923110952984921101470356885640364877775871297784656244196574280100716982365848615231814206694171351206355475176719308196759821266326316309377826744367443510828518828475829701196700884515874970310888861915752511254030572422325673845310267377400578529071538607016331554937974612184497478839490587264938943819228326545175778769767303214529949079328430038100582896505899895341021573569026557448360579227796053967244693842170991157198890973331058275208629024461025624421742117972623019767549652987888697746437987764977936246027979555455223819020904745211840422073495005392079481411577437219114395930980162721127256170090440726212371648856860118910324721125018013427972608281499877242553593334940876747102232216465109606210477592341643507886700212694837024297289210271397317229260608347037558998317938975292686729826590875924857789237391017674215936353775372290217881032124259191787107305758208837615097768108118549838910062097328509170259595483860178559632309290684722059674657440668903137174893748724239030356813568512763808951778418327896209107407499538915544698471335458610428318474470640251808475037812734731359527193567252564877878738973306421297630000094869648602879926655314871007114531473481287181696997940064580575463477761352080504087845441055947833379228423231129880604494585046410014583476358978884052736282787667941442167513177708663076066981041390500747254903304564533374917243941751723934438391690646194072372196869765358749994914625160645643157794986047676442835143448275006854463522831234725770813042398282860317408233671479085435191035385025666483328863212593861907138972865717617697649613658548118233556612246677877087483006797031649859317582505126360755649401549102320850815517170542067237467302402428858493608255309921254785872825399177774627024806611392699942155668331471059539360344963604422113310867624849273011818754203880578096835592734723970034047259218987753007362044693323259327108024057100175967518076015160696379918936174820317944452472708308110672238912844432969905283835459788961322761132435099970640565355402323527651896684148247643778264500802700402292958512646223431155409352234367564249106103979578429477849967297587120092156901357318049855941708627615858912685362879281390458566817025523417298350491695102582134274038839668531604922559936097929623874338180819881501905429066174156981144028583721903136414366616528697383788228640267363776366032034377061142638981335438553646870940572238483416397129091746890122052393027457300590680855557266148508645822974325144040412303483576174168822300303152088713121904269974263686695640431500013929693023042346272471915828468707245760983661979928398417574014932776553940899075753342257371143206531245860875601473568846930601679064632824494807508631109022114527492165782094955138366129310301695720776180706695237670479230216641610693442419972553744046242175069950781523674283457417577471599817523928619152635701168043449454698647462839273949224685178064944710074161804131144965555379298358884856786977306641297498020349267462724972798948950956058042164015997620332681023060461824368297357254231855580808122247799090365157838132021176656670714310330201554947347602269437851721001216695069598914645857672083272710866132606139015276923357340733228465049840430869146512718809600806165170792859803420130998966845434702308708726285749498362806388602793369271230871002222882728861641598124688250806443285210788991164961171666314840312172860510086990221108187792397326396417640504506893457953587918645386973513747229407893890257564038362911291244008880622874871595245183686831053901879516390291514699656152446538620240766138486073803163591831195843265253632246985335371367312097621004384033832504074189295816816327881384172184887569161434639066514291513395318816317901036326007995885339597618407339999047483306712275469666556424712945572758477125593522248149128240209926211080091681664907481154820930606634129741389197078359494873544711015176438751953851934517292908482937443447124572299899724212782131541323741961879018565783745818274759147128205191940821362576228082123713597783992460386716705940748868548273561319418577518692542926816423785828824539279880584503904339663235475812429221612840359242886148438181670288225171090398559709646016573272509121579839523658605161185831510571206031289541846416009407009756501403182445413883991619042296570034623871575984699888818789038338949163191844820719367142110210514167251720356577636123928009156019527783735659156578323825928840762910447135989798714582625671602741696680498655597270550976560331171841969608655009695589277766797064561443254925654639995048501546420254266086972381100428618745477782854995415037427543057692428401248883929256935409788293052475448408843074093043133252631473518927589313752052428630463974788533671351300364236901166454587166876980251617144518181970032998493665583316259798864216087823740762438113458757744112929694544317381284421624368035037551473563963084350669959170729891236442871975119000666736511538320238439634704111957623606114206359776045025684847384174479608562478661927681325086665009973909850544228170122564036988202385617724075066070781157436607480860868768443209174788157934398307496301297031055369674870116449640224284025738233831881641610051577212541769156199865034941414280628976999762602792397282621993946410249115140236565135301743453801529191799037895304057038455722186039976639850720443071289986362533423786369892793112569686211041238796741440270976385103802202714432688622407798805979001093247485746419237411361473492318665365448210747828284769344797036123899795326037413762892493765078543236775083837393312139353160711588900161090128509733874916119344012126156251470202635361941597666935637527995715983461774437845817011195183040875649747484444989328304588634789214236549357874586578541969106851709269002547740542420686455837497947946330641658697883867517640823131341117259085014887852793062274389416326203758551581371100760258640223927602418631429955366000205138920237634558927001223042057806634351024118429704695320125701545666588052891299761792545464831589184011943474396923274080936327769830872985565486204232848737706714952307048296513620937702925511382988040568316487554047704467838545946465729446211909036193755605082469447492520480224849273579346760802842442619725710715587835775585853097208381117445651424746797990840119671658264434057768783876488645432440721876815429802221475868031910316640833441689964131938970324743406190545971298049285931308897034524603378650305344140829021599888960934432777350099580616364967282239952779072835581954101474007666302070628361888036349597732891836776959003024919294217243060367110140234389895586450658531390756681996641947676892429780983645652182240680174358360473911901145541938622992394545347167036231164863326341276636246252301296423494412873859566867564828689549924047372052144791479793363600663707232757757227043016028825921688450329822421885732032684349279297813657756580147737097573621366460894056192670757690062143567669019574513485444290964542977030401192317466941471776415944921606996881959032564402995095640606586288899490514448258394754402385705749031889192013941864728436702113504900248074316543298896166452195963700536696790437570049552792758360417133640755945440983624618270615925540571011737557046777401231517408593342909724560094040777365351507135445110283102723514885671551431317766798270288801495669658072811101026063153392891025059856980356765364427796381040079575316010033985991508354677969068532308970869209068785938231539998199265377314159295392919568716336389291194684003747095003525592826808482685106546499226566571720933757366919506074273955565623368961767712824473456166245155553283998886907725842577149434480690935652465151601041661173801416105892369324324261223931656090129039629619154433665209523534524789508681156865589984281393602431950561881943907997266047396579698210214915977011605155585541371881162788094315913250796726825916417887621252700018626310506161306722970289857506468844843354882402347901051926960899477453256054207998080407165892879988284018432195100043834036954173660475214188512004302923804562141733418350244898851845093764735314584266886065443976288723030255764411382049711338333404103111920723302956431494262268354630174686926639965985559004256696721614893512484456104563644669482972994713152839670623144999682068641819522067238570398935858901100643776443395782935371154199090413469170917656650649863927214807206423852827419890717023164799857897156393041647823619715603193962922129824163738316838831751228765651570196177388411526273381487800059118245083883554753341967392643237610711568301178600716490187664579216277824034634745805531040033483025173791408105403532053455129834929011477535909084144424389795783138082555090020957293419664111370091569905215929832871755666050093773862725598390743796567982692761403290854615811323191268683457045412516140838824390943101169816226525481728222892989529764249285815268324929125121626570614212123370629012414372841626338082077425632303556831887836062843806352253278375288319585614273639816153664744962638063068195823894737863392705119832922534339502537194829678423368364822206934170574534012805213791615712410865433822394805418504340757885486212936477040740491505215014156462900096545410597654912282859062782120327428806581078275312052774751226909274821399379499428091807615811034572343276162490249534207108780695268440726989194662401261546005053367502977783130888682439693648125884572616403633952538952211032420174798700388691865545447952427413972298077522925228488648693822839635333567348937304833510906584180811566329399778238059869572384666438725500272188978522347526371544932236779390395675032162711447594281811768634908346717381615018436737241202392375921361598919714337733596055981507483212751507549222945897237615651765409403664183031056273094150935854937955537439856484092921345983226973159577451581476985272885394195060367619099394054850521558109434055428454791751215999577328771893312986580300164437989723061719568163986149818917782142484720999240715151814383042785805413848326384174734906380436775431120592885669271131814471780383269139017042403377122760826343986813304389857776870763918382670983342781725277131433378644336386713866813667449902112936077507121467710384889948902758836952463515518019969289944556152337383915741333858770845442372936757782415982343230049483247435092338634770204217327870522142240114503980651332096667955788751808512059297568627739058250403312003541593246631223815688935696974756301953354006765386425414582273175515069500853049682950666672553826811687259630863278812376527806042667564354722317423385010467560222216029502766059751911325453216639360425920828973188548644469301469471444287296063338240109567963019873194254213560960428589351773614194137368659188541051315687674086443293350668374457353318557689377447080723294105211668321335799871169173179241022082225986134454269003908968460032234851006865405845489107323786436197277815800248902736679105185688787555930095334967258523874246150822784059160320044821246631001664598177751624024952129906914041370392435873119959602339206378795661583417647736389642984114492444223029233192095394210989640202776692920792477579804616076116501362752235921825163518044907387653422481589290806698854274589690157940562965043625537087913586878521971203198086017783890961763582103379206897231878520484910670523170088818001533338274375900527979969378206683966048666284919608523515955208413439170981371748823144907607042076033734070266848663356725620459995623698304590421321014993405127887674242070447735780801260451415585543111857742974372453798091612313195425113715895774898066908999535119142996106207960091449350022317566227498643117937970304531798656347667412000859770626414216668243449021301592882085221089791449766421722802236347772986207980692294871639640553262829749970961622151430855185637130329763705671593848297901796656355520385357267303134124531837664120091732757582873957628402730112126595971426261798405591824866746723210513901858013422793087228870289746653201990405678024383341749266663166874689526261598752182901627701933950950074696438745511655908022039828658051457002225943149067467233502365949131037329144802359055565458210121952586688804735757226727679035038647601032464807960819747753812766575558677333016815431341846600906885662422829850370545184321353739244045834972587461707486131851249837287838973308937047926809158362924301532096252977177162554746168543212253300438895478414616086082529844648154894558586242920337413069921241282994201417149633115307361716790617128087202858522704959914209419583460086883451143683006626023633724136447719814486718905268594242453810421514102065221219238706431375993366492027194634910897389699232982415093664738806118079071603351466493362705775259883175458835548546329362521185764448024564023996423212091997273356813567845002520095058200936280575487043572345452283016999141082085967967580650971933286840053737918742798002325655685343502588732352609216541140075687103906637237813567566789757460008879009909467660142604191083720776623117085465221207957879392623834201663839476337695988924314394213262015296006333973226822510040999916301568552364875350832990293131463312778415607204299010600774182065836060331583575371283896565349246305931738996342775481023185280210703623256284208733473835625398683749623849603707277426945194677241328435637351781057355266498568378520047493005910819721331329095007617798075450437991530811571319916112270970767913435104120034301972461374383445115646051895219483869940618668207206091962671036949261626331679295446678279196958936954772996414383622540390778622434911212645549186443566371238972088846316212119227387343763413063696809240882901187672230805352090037397939850115050600778336592072537999140868317454035322985144415589774135138487164850893221557463088473873864356749224242624523850018190410073598340968392157981809628309533229804628531951852125151599557046678197394491268244325568639965242922971485259515967876952808201900977948716237235272702465913963114780305947864598845718285755973847457993204802751103342796652875837432485091122624913034926858181612849206383476775192465000311927274710429751391172733729325735148030862802809731599179450342069429740714999627549294421806199320809259589101687456236147868069639756800442650726202586998172648835384900210597199032532451839607960646269106837850474658419902958721785966124028472902851557580050781657313812584563253994917995328110193848148755812078063675814857052157801596541848638787985003250554908023601078415341038443144114859451688016905063031205058714285205309621743189984111298746835444667409811908221152663031172907416341478186135369749210787143307384055792249235285082751504760233979837239483940803652266716317082575534316816914657357360401727319613765623703152012905484929454361583146910830224177436108600887503219224209847375815673005150657393371264284765592461509196605636214579176158098337256034551401940836553389281803331651903180654084328438919895058881526319212645234211772340883861393492691743981390365140152141225923385883316238963017687003209664876601811727091204358262166608235082905542153630782900836897593208067698513526493014354388116463368973026349418173971308786138494529262000821950834898898475036030936766661992332459053749309567292213054354166506246037205383201774589589377803491185314860704731916737438831764302573920203729048992737496790853583330095794702213957470818870120348822639746897797439081948436182822251826645419771358667548052344588340191830606806413115950364479898810505161460639469253536525283050351077213195659825530995720729587255158724871230306008076212276387126264611898757648386885103469776779661231566373242540132557765753647049794558458428122779861321655704146328778617516189925335468550845128736367282952200007985017847899069030157475910143260077834620031578112594085049671439559995965925641397262856170740328325688155591606735581328543473564289996601969979930868205669446359516986322809772942210499090516088468525057368361313439745891931670243767936514371742456729886390542972522595491240332998387906640721328712836407157700287359958931321210165232269832740442303084294135313419053369617782604867593968728626362975926370584699993570711023321685766522231308645108732821140121470933742851772513192449073859697914105315823828220054541895559388920418617481167522355793894570357964851240054293849491199412383679330657021216833620603354058360229927789195230322333894183844445507460121272376341049273154845782851083890234625178963765320634097432013608340635949481582150152853444745830589150162252231213222396117950054750189292077161220825532053882984992875035238726742689486188669343176506623153808575935228449124243026265848353925062621816286808106704104211725932482121540294938992013187176193635804463496073411021404708106636924009159559503899690835599686743249954027446354085839028324468987504385045206508076446212321692791738139286562143328733901176523044417640994724049912429613654311538254904564164987534886119248423523082611420638307032469044692665720299429709527250220747369598302127063963621026159547450634975005354613762845490184776874184195774025300503978391134009577569579579053823422625605806021634765869095780274433938331551416161509610921329443969939709383632827346238811843270438712818612611365726416124173980699398589902402441300931355089072718224482735358774033668569458286349029385485627950657894846804868739024053006602278157645637528980826904725945385751297341191691358380187552907498303939655886748900365243291969007036539781740134483045715336979898085183166611573772740726256752632685475602234012136458791528958769431781585697096892637697650544169213632870227592655839051994483014229420366302984917410793580750016489962024000348934356214147420561501751405013077269550310557891800704826424303575798429875278315271102808798114616634965560472389589180911407043272910715017578007223015316965119869396004056183424769411342920494567242215125190239829223549093966013989471328299972796841240252684832414217163102964259890371061617908184811346629404072120625958260763921859168140338587333862981048577645258286973823967442154980473885866048671810229985567554707072088893993179320472782160381815686249816386433389912036922855833084486685410727881584383172789635676114395290503288255214615313868833244129113278695706631520452375586656802678519893565701511993539075888968488599405038631090120062538115488957767950652299425692898631157030397911849579266525343681315917606066096090212314788473727085035709021670353305932782838073847825405679023472899856469950682122366303742706983836561534012722333096461021173828009379372254321825756105275925292905410382843568157491644257345135079267655053161376654024060791952142902911791192006732739296040328745123598800333328180245343475981532586569724713007640995455066898675099472183124277076765664390556529986560753290706576076109117609349886485467028995149600875262778609867937558060774536136310916521257238372393002651450754591062727579128618964964893355385850147834277401446523742001212520583823296040793722628181957633644345502745988372204130470097910013885887838732600658945640783075645226073453938189334444234176202275811467348879284992917087787784656479280718393083342150012694553792441636672680636990494595765053998323564702966951044215139600519210770117942706676019906065986664136522725725435969791577014336958718395702805849467465498826432269568999589245436042965132275947562814716412459482029416538808275341126529503517799118634132876798341267166696150925248996987169613584373441157048190770916601082422440759522564283797067006745000182266238281167680985735605813886092344116935440781158854830431257588015685226629121597976458786289811175025447160459280847362213795635795113341028998678882000196646231717876107968068987094026581122738572012000821054575909619892459294542372004345545759940057899749229290333987118820243604425928642601227444773688414097098036769226378159415266670265232383167082167797894369391029208278283747544346372241235324038757691631556106051790177452206414039627449948699475439864441127881731525662751323522980047140203688517855898826908337427477509217262089497364262932914488377549592551684929488567603015704266595676218593188544107612667620480826504865723224900044689341863641925608239485325884678814129378790941654790351087919604850912541604300827226740835186909918611412636614936163722001312661318055344412684512835274109965593826943963705567177832424052176164589816698482889765603003761768148801093116591741127175184236427083956518165731403591590770687802935054964473495228210440786015324401757991404173407249851017287001740358704708640632755762579499614215409520498013559789662575305779472966449338721377448556258559254735601116390564607478334568707811106690688164585349551537559057004796202169703900625686991427608952912034389532506671236198492737032796220741677297456421917129052970149465322556328541642960633966991581482908224085832561372135969892381485203252179699574179076818510648022346690627573240781125547378715091646472894845054605857710072186127343350151970711082646375360446185555396244106598620235353594029503446538392462002372311604482869193660910497017167223516009687089311087474879830934346059941384505722032747310313013166980387412297833787168703878088437220555592727231275285013232289568271829020313765697941171528290215684164632362427662995798973101164325586798111053824583337481013461070312072520411638126962075930856232713066337086546650894662339195476130589766308104280202930799854553569961123631454909603904605257290966509555235887128142205551650084916266721874591712104964290576184975626142177770059800768824049664210039112385299147088716422432325328260009680209701472099623418499955422977594839881206024067071108523935463109180962605384584633770459587609009426901546949572742375825099481048026656174898768526907932193010770597691930106186252931824220625768453869093438049926325965888372552293122115635268204526231721133219504828326713183124772312736187682248132975809249278069156067685686705179463630345793647136279521543773305195487133359563770854140669453447930547517731979872607978801255161489287593042754421399347753267705091328867427294649052016716625605094815835068785541747207118079003862530996776489633535068086184567315990460703586704052859352894995553424779693366421722822874955922526653056922109784719099960609469637993688679335698718054474934379959326652971566881740878317662094646377518512480477138988145937465663141201116703375379995968453883387134834420938209307516215093357655941011404366588994659102169819043857234785175862896049189577412806073700915739959907315315022034868387085413346084527853101196087123911137164079175505606439233026423674744861385208865639026715950066461417299586979087295170034105682001187302398496959321194752008602992333307162812506480388315372120138510494028501376199779320607779964233360906742125442050815070086824481920764782566868781119504093125519290814910049432485222226114204076814105779987121925538853685648040020324586318822665421546377956396883754275503018448331653468593249539743446584523836578539158440587266854461496564319620991919370424938091641990695348459762182886395112057048311422090761646726206634652793201554372446637951593344686183132640982881824968606696141447785952499246354362396689610507626394047922436256427581725105567253297895107557873368057834678097984302382008098450380587118532582846531225890831613377485358096913475158405668306416805543950206025032138843800610092752963118937905968391270139091670830293567633255215734594189419782389111795098808528555503405991932065638882473910053587600994597647350812200437231102464551480093351665127026583589660072986207564337119266593265916250602923065678179272452153810275847242708037436063282449107266704085483527843038335581501756033989609195730632186300102591650946361596636286459830168310348091040602163929610650571120785174870155554747236763047920090296449547557228946748728036331424588344657302355363063419935245458800649772876592131967580012430863323729812775675990549686518611396959946897099257004038837372713338278902123840639024549271567632944270758089222672495058075363337163567617908411122668321988915914367284188717484921609998459649032174319398545213278704044388343384115170416576301001148643403361317877016898934496836479081634509166798820144132869491857171315571828526264417803874205713560021756297641416492008557631795720753800347178999576001766330678670530063896962095034435611837240249098112192555892931998114391907323694130494995468795179741259722688638325566796088137389843169653326563893619336210178554868051866433078949027549053524478055429627763140588538604514105042221411945505511470950234556648695589655942791458507252988615001197163118750338430254606441262046367953545389680560616990387796300291560616098598769597493075136178081619668429875714840488731592930939429130380171795830966458171463670962357126120879008474288035213201941081328232371933609292790138087324155048581854249721233492203845994686769866876088866976556199763977034198895701685840026619371224953716761078184525677734728311364025065634821658854338263932237839985687932671487835132262910209551516286115430794195824614617385778367661452633167851870074986089041280144049251234427946658403042748326502073704269305666602383637955912351597678074812451992061215186343605053381550394358354678718361667215729395573572825571038486056804691381037401624327711232261086077919794858135923563481551332625090995087538489187981064602355348260854784170217811101698958348203685792802083619940666852129141242346258534915139952539088548016853503791169421659822953221590842650819469472458074834651714570804594886724281066339016107990156661327090167472690778317893299604718454451089633014169737235951318370322680368765613231980623904390423135515145575833300833911956412512510550731974142418386885856126127480645435206422769752292932424132127007564171251976816707862908607488247407210897105290458815891464476551566672407234594264739516572237021503633024954804649184486265001110473766325984911119017805438626222513400647184460106861492020990827022054564747622437046066630376912224131103464975659555990880484111416237085583620370133623321135769695170142345125664305022874232543728425920100501852168117141101510820059511587548219454472479853787216686935690991155355498373329421437965985322034876950386227379009366179854077114111032825055246483439650033732693237557690812397049441517213728252966072126497991447765673135282774330591496888508419285882628238079025629920863699113503399452249193910335628287594420092200854438308970041825480161402833410505211290821549548914023608572891928647722493431192523644517913486863354670033887623978355512778114425335710887518886268639120707989077172614137662446916317854468614250945608662703037331129953329869861632134844884960657540741054872669946541672473802540611827538937233042071530191163070977619061312559589653083380457802417277204682832563550166504742881886846061236084974521132585884650868528440283703069523201390033906769283313767472867924282151845535481662685778433639811448023189467665012202486042492852478683826476876276612773348953364416814315450803479189627760604841591649960653171406976021660765266679243273828613291440572372388532053452512098507107920468953636514246343961207519702608598492186589184932119604975076399557680554151563608770347711180022002305356081695298664548147065699931052477964146928028361039068685961810774275055638896394179890959553174442732007965386149342840236454558662785887103677410692699178708386066802881897755991803076099564134160025490998199828851922315150179713268943154251949821886463824536048948695222751722622853081054752970958198840610680612927587341258814109221768178832058838473827849094938710485882110458306053371591415265657563167531176143623492321545760824480053787979605782564344923507345027845886994454289125251262845621575823339202718271795068272864326429019852219382257215458352548074089437584560596613926216786268700463578978380150095619864315560998357336234465095618999689145667120243801686792837635789683109841988514998913375964497641917165252060927258959442042181502252478906719707391142985491179699497365369881798175733285682846164800016105940330092382651326453734429772939311024527356179993977291955843646967636906988419539261791377559797464006086508897766531687661946046876451990948948297783787992622548729895959222465913141211521314211965926852807509905851570930756744848166130717466506411810034969048052512873455718943537483470837743615887935362561776300738746295090054943315595035050017297171368004243890935946588895597246326774917377733730128574036126468177733852654268090439810113926167152735296014634043831121692636706673765436002314375567273122943483157160572014153279055937568744216378565321777481744278131378336599883168846226287682219444133341144413524173349245641680390895033509602729465819376919661185766641499332141699066442389547295306982253657421788802618304613477842816016260697489496291776365533068770993493329711070267317256335759555417700699295471287610218520348823040005775366895875607457930729232530920319710971884421952381224965288023722785394281096030977818984723766792028356106207182901857388603710769583275932376755402254610094040383127035021893566569015972699485675694143179462269719899656084183247645958567898012958632888869697241137530026082426921370506755294490651231189825506307273555838889222170065076640562684555372060724915555670459915162156822137634324415394291026671241739107569097609177639710061991593552308172810085742704164838941931867065728446366589466170666003160170104278188160162334927003331650248139607024074845235676956820195947253773278907240110880825818078855008816294780852601388423903701690415262611841480437343362855636648718069876399712143484401956492009209994014145633338395212771571337533938003349034889801252429127080796746449938035854857184344987162188275163125024879162505197885243179713798802325851184228807769885409049554836978497280015859218889365228929007507701461701268678216141668614461211945009502097599007288491560416869506519057332720445160839767455367378222517331937639313347167766326990875445043240215945508073390793742927779371954153441206731085629822967013005863184430721686090191430304486400262509214882947425206470853797701720175369958485665736701680618530346814458050828617237311277774789575508572938006183271350419575874064975463130458442252617188943070712096321767683405552840305044072520399257463033517971324931157036788487694686322523386997445954631669667414922553361334465428090574103737867121778246295256803182327572223095352186054953403244658732443714835581852080920117023769479499206721900246919088363628728949248960063724171705006305235646512316118494975983474793936738829035137503052226728784703970166803767502601450775544984589701992691463720558003395359349109290865041369912938381088418299541663373147954463949295943100365233874089691690200926663174163602532724982126165685216523642679189792193181554623564092662744580124360508701710652325008694954853387948470031092325889615788008576467449434583001028875831653294392626045521877896563706717789017931184151468386738178287059580396819851590907774605110324481682479284663722226789822621985262565160828589831085256214887181670242499419726523566924608671763760857418767571384576248438584526182154394927620317666303795161202583107921842236580024451880400792047623751442790249625750482724172164521720140356110801698073019415625003932695376134332047548730211437920774187577067823893750642477454430237673836462711329501490185241673984651579923352888953354108968125382443315545905056017683583056244298637259672693502523165144815819561806224596325558209894786095212135707050587309699975325284205926406579589129099306905655036515190377054007238822616839213344117884008239454403919764329602378697273198243308670178122995227828141182923955298583540809408507491063306476324240652613887757167844767508978806026055897799586255175590757652610838732372618525921565536712572672017083297762872801814004629611262105462545022858553422924140435744962423016990449380892063578267219699251537378485824417758269534773617904830358967172198030700098152727589110567039622107926313102728948091128800503295950178859607490465512800984517924023228774771778135567590488760064967925467764375938161125676678689534184017589901591347765719248952297495476632330940566557728475173105517177213720252607142521506974490602373279420891394505732593049396265105191013267377259384820411600314363672394015022935882560427281520214850933284404369679332800771221052504439715002523528681397868786531608692404609420721803116943403924489373291360947214626918287892219154916615681142468983385526068705530407715813754513631536192960678803384855112653704537760269961138841186446963840054375210391872365687500518680247853959186012059794005758690717387457598029350192573872334035056591690369966752620719599293537900446802770297765691387525044564719693035725411851000497961522476206140449383029417336448536723701868645833342337398861639775179054708050653957676230419767022700667167417485430545527562415652000242327170147353122996133119723116947978030307126816797632455889071444082667503853500343667070313864023863709423486056830546328065513670263585286967451584111670025950913153363565821702490996550456110031690803767486330700711851722765367432406085885725738576347127803734221294334130230432595626002401316813371129687866586781980096358153397294086723476146137590957128693119395077813097274596789782800461361915021323012566472972265892088410066668008934093808555782015331765229752219180586694158269516165686798460088947141335360305045722634859864890674474370836605968944422359236243314785427410708513385783034127967175026588435635671907086808758002374515614323094538404949808367369035044129415947280140057341670946423275213133062375549074490984993238386070424564962110272064439328585738094777099607371052824490242360584042049432533534598345240203107321605863446645387901930407697422152739576654101501653768239665112084869509372213498219427818521655889109281097784489529843852426170007655182041204825396626436490099588991437094094321355887639964674963358055073441275597375554412252186032212266168975678073220792449169960886015645019351605141555822822084864490262704734875099616428042519736388686802888212914753665815701344095087700891561341198896710869351255347714255330789818366501098077119383322808711324980522616788087577744303994389945371871720506968553037115062484730897965322609348356608189430829843655863682459934121554946759109479439673582364026261415150110611623535941276533132042060466812844069603485043251714447051765308637656813759852009108212383420813551503381999905988979598722210113870043262415181937065703449862836132619905224519056925606323740445793226986005443716300855648843702529556977583361123670485132062714543288811221631893561377220612271680202091424108824983288502760856237089698766559849357641142926633109771808934176903836909108985978335343158039322127668282404460670413187224873927618780873241323163640046783255205293961999020574449004991316828697450728160113491139645544853314728450315370825550200736371568008692829991791640831101676673872687928536074196376320806514556257298848011421230449063924891221028234638345672865394610386987516410492130852563529857582485331554148989295780952003159640587074395685019366869855118470894048643429422886626995902963071396095280146256686776795739584278144045054996406102210089405092355627486078201154925778960677578235914149247726478656570564794621925777522628953256154678806775574058438112270366782096310234683969068893171458474078912964707112591521608446192029207801349790778207206573435880261710874004657177484015597163442191181993621270760741236604036659014966273626201269818839914709493941565782801919453848273895106695343395664799794737674274256633475604853875286139949722164486977661043835794555647718803329253037317585120439983536298798337277430836158383926812335719523408202527472744354360659164146790122008338213426430483579073902985356202837671748982374085096447847606158128306805586829252581638513160572947002030290549985036477091200865084942265745313571658833969037638149896115188931957290579204723905228546397904192708225935139721451673949182225893417171970636299343865167320232908263712686238052737151427925254346204736193825595291736078539795417116507399026381838193479875527132730168309157318490789927183657964652936400142856965715097556859134732426224706213781805908816446527140443978372434629166618004809772357880462204596296778251945740272041526416071410082885316224339307185710631441467422939916251184115004914198622163706459371341637828124217533701874436666011724988280419303408193204626021399130907465167864196274905534430538850055212512942771154064041131597752587318828972329169907762953813079556111328249681168939888653520778535507973836981910426353166210851653423239666433841292355730589170950231386371177700528127358168267618403771098998977602896050782972545522658443393575976387496640688478802129854891618506141885035458485842363107645749720880397842420015956371620759761740541764158186703475805536197417737094261119276561378966439025609356062188540819126424819526690669074242195051661953104430256651838040237897392880710978928609149668749926833053205220683513111419771344186464409680084781284747543888405825641670412351784237021511995730301573008285998736567846051212797386445475565389770858068170573127823731009455910203065458850313029638988047226159687924062507182048689157891291916710506798083186000828039860145134225607559688764524921979141541789202095990817811932874095542937052356185620304242589214626195819311062705090968787302893057906490914326914695768937470387349219804059679024485073773956827455537359536821789073079283119682633184302594902247987311890155984091779257236099365131503965979282917031921047224334861503254051008700766058147025366134278600523048750614882917927071337795366721074267117974355590021082007346946496773872765478391402415171273336215844855498244709969552946778794591225800718195674115995321929954082779170922901046677967051297960460607271594584609594780985604708989325655919428849272972726653912011125822354099113826551121274440446268280302949530528391694260418318003730401377339919333520777871601100670398466760510509137417958744665682695433087463696262954401934121395098104458856452733892466942354280271814329046383810321315574104752150893963832330777816059316646715824368915000918039729936398910966273020547767689922320259020409062530492389651631561633039523873492225427678308815144578487325782331723045989405968498670805253658942527538253842904328785934835817697637924901749176585005069184610721761634663701872918655413365645942819559922309574328703465045772038007005185209820383240094366908042139744792226098981502007152750531433959634780970788228086959869347290148723814057578902192161249430521788370806592218868689579376524590656165925993849260054618117576965162546642865741771682157734528483907131419014764980152177564104901521994116479143984633738256012487486516596538232769981909590435154031874921518926087274155746172180425666655138324330336076723907021644113515093006838633736966140438087390131195647467820212272541320938008980601876756942534849203987963243269946329164962676089615293483397080973258702678211330326255564480107658802987518726519364044930453830530470891882958952517181759767214215425344676406049561673829112026613914844233204455131170560283433350189871684663731310181044466579846671845220372604922538687108532346796726000472288566786150901514430404244569769079696881238952246786847616046604388359168648273328773443262378140396063704792939310710132736075070830870578372394098392522150069893798365927085511594181433012233514014036713491154395348312824798598040232204828596156756019148548831184651881729095679827632230820699854192096529920790939519670285900609626553919574989217007179543538387219352991367104986772506548479411621138340474865970341259784095447787361669804509906830960576769192935979747859020174873464470265897626328490092374231447015533586742266765933816779426215890773514400612225737823672577772083651056614800070673260365224707668018275512875750929380379073308282690872492764310603458120730769861236061038257973435666273993066408658062142729999164579154485632740188446453711455500229928856999327023594315456874213886930359273188211404112320439306497218995912744497374896281546813707234353548050934699117831085174674613763699631577858248886188042156829562872307041102388726297928755193143118688681139890621279845122810938347725859591776981009801300911385604633653850939599559217245041470682366024367770332857172008660966375196461327271363622872135743490784352988942381033020940672257898705316462557585083725499427173510756739029739289321887741282838380339731414015322126050610200344903143169721276081113901922828587020266485010372909088292476514020289701927543341044086560502422516437860298237053842194199050254612203672294851151620583530981058870381527139685811353398635228986253151549915701280666827328876951209806547871112889935228158882886739446186752850172468517722146205943148606062172410185089846231676861156839015003205836341195737839832615641748350516799011978791153781171231938384669099805185652194295109280740567227753433823376150334639641420978804957849652228337056382830172662533538238243793108915780552554620536297236502968102073436639135520131103084575370081087570444023875573763722907776803637004911068258441140081092181179999522292824774993577338557664001164359395719761345831981226563528881208470724593285816277058706560940034407327344009714912301840392914233049943642297460812575755227060663138915883792626101121595282361635180155415983855785587379822199209453327791565242699909395964138222511784004304684524574592397056341640515692486136298350679300751695904270275716878188713492466917226306484296698295258758625360938850985372247228554123326642161347157598057474900518471839806187141586598281694251676553427614228623673381607512219421474389289711008394525507370920244538238774572656604155815998578332280525897031152019717385448602665378477659370518691176019148409884960930684273902144353860631046859826155842482285020805483320842243819808167181769480195620605876810566900788567544509951907169404497040660102000302997976369636172147083895737403873634827558817367539859758440319202639748984019855741862439183352612322729525794950378803159572362240204920763576605302891447503344558126386251041523960632106187487191067374177927702296470627548431185886193946859580388712734060243472527684371114669701701469666724278525107010781201358331830314873746516629976223104865900175969930747609716319680681537240548063056025832724043830320971698499835578242765032406011377257206305256404730976363668512710840612261206924007554756178776446402948162465435165126487414709433849330359391901143968831267300651460108799502562783350841445762793705472955256056193892547746754372583916573370429069202044644140366625521607133678601104890560303333073923689447523803878870060549954898167374465332196096105655227209807518642347937843438519831290339034157120541910552751861592840601887864910800236648588179531356892120925492346991477646920510342864632484078029994945716401530924813310707711560620543521890501592121529419436461484273387450329449912888313801373557794827398893897205125862213282700342791171376765647571424122897418145224325957905375061699215562118152159338326558859667852567559289926484026085818684975435816990334374138526158565960440586137379090848441822145335671187877810780824044404892272808691249594499106795847557720676302913541780658948841351744126322487293505493018989299527432807218087817302944896440385135259004689080488290898482096062253114107487522546336531048100339507423425127272593296197955193609441264423970551638962786148965330653782614214308859961519711659366766911032325968442048857201695744608694183424701949957515096957990025221524039062487461231867796592149890758541951004213002033115488159395989973654025516245575770465590933386374532905158227923177001628690470354244108695563713241510448333798279223521010030677306303003695003165641262044019439865394488423576722937562793291665217596294314848554523453691194129803661361133376661397022258843160343598491720803978898191477290917540053693815745964878141935679477487123248982000106946798962610450161704515960147853726052534297439966175417826866787089474687717159934897821556190150042872120502115250542520339189993422630047352624902799526434783503924693104455806399935881893355173858465402920670061471110532836783533494001149463842524973114586703076821890280901973963336106092932375936898798022342767132713449474307271760077798991234722949656642224996926191456198538510160971090746761526777278605063253043195050554472517830528738046168329405381362947260645986834367952121049156760010818356784463178662732316707371377522773568867153127189690863449294234356653221423011599793073573687329323277188144184472973229259471336358965207583734487051823486558552681205266655908073838714331951720267499579769321740568919499376569211595088312646534306715996276829789947148809189199029042744215317727744622050826540573353616527736925462625771723468180053401856981692313406010962723123236573879288097323484962315732443500671371132075248293080666625487362687600430627502356910929181002362835038935657854680497322971053131136344714247799852266946180068637799104959133949761362699560621836090971575932054142518117939887637863560082982133339102475701030223474440875107079153825637066707933043976537793152622235636007764714349825645156754145914981206673377634890473674091061742835990416095101323612174499661995096900996385809237096876200566591297009958700113993324169485495491446826522944296248594105197636836471722011631585585201626685103587731715330014699408184213816184150038679877201356335632691995758112661147412512098194829573645707941256290394710339993023239794825471969755883277798667760113444748155028647130894167817341911432128284886872042712100809486527957949607421345678923947377221795771632494454565615128375193054223632395734614088039437255522416656563659013827574429182554439240259010919097265949825734258999853683228129131436308644386194172420375399670332106427787033038853519324758196589720039097936528141347357469778241204321619207353646731909889677608768883487976744822975181306181555117080815001611628272473991074707231753368301840205656828144996719095446722344360016795624877949114725183602147348297134047440844704318636213903704345418539702520512674789343204852986251396747537012959744042614624928852182846190204327684500372122311004957632359885830885993520801998397686182577551077663152164368241351899335688961587670742437037065795648952502990652732681560538361990793148117844782515882135124350567718553699166182321985895796556438486339297896614890044102697808050563125078090257841250407326380737429388616428488592877107890307152338622651722864615287824939625299367920647018515667759917930692405585341414769747602233613720164452359294857325203850631805938004445496742993477936142305494165880112440557557156869225622330449508736445895389532473630532254098460426794369583564420683670351326541547905086291819895075958111913054356701603332885687824960490954307873059858661148539672815109797558269876868675167479862307581615691982560650330983418452711605246632209449608892042981989725335172881882614362744306374060208852431455252681367057587484156101171515700826982430189906330088731292437551864812880535397700515137420634731522478075152458987988743166269039567575040762500345302437817629297819487528428524827724752348397409540878024378559799999211022049108337387391717141077281857652431941000944794731586272065266345331961300267638968056806548980782488006795914091316344162517311574378099158464281670703084015619387514904944545022266030775151459969544841277298531491393107584161490811650131454738025465915220137840505003247653996411699999184715525188383706548176442907183101714112978798195685606088308814584698137482324030684714377250479222860560462672925826451829229541089951865797738213174737344645833889763411289928127643017069724793011136677964190151724730974728108414774079856169534927334704281270386409462725740647081877587406112720548277439576467189401613585821031287954346212250659651419057267019053040775260126462153890178879469442307104161562612086211256736214466187745746224478356222972204836524952905088518089123684654995905257568655967663889014275928095372929095121775511036446980620130198727398257196497784407697295063988599049089935473137108626575857064636711007500053219640846798146368070372847876055328087147674576280788879515777873349565867984582452687384401029000322024233419128550244683680432231474124975874242244507998549841829116191030877166572914392266279755072300100853093029165252085958764876233411826099069081020037734908890618418364597328885045589917788581190681844355687451983174101038682981874236442096790269622739548058144578446159253888775191864317015564678261027076542464014323141297272493073573046414365634790872634921135502696185969353796246381666688915826485061122839141541706742655480661931594177365313880785296214833336091380211166606410967158169254559846574708740936548067728658443002320147743072483812243785290861411483056705444349104476033185579730160061450806749988640065162327166564540485242704103128589658870064866370564351812980245884475278974198685329257318161307359929409518613235206250683979758860594146930287418841490848672876245445156642824888663193540909538797828448830315168602801547400486733769779080584387804603420627857687635510902335450935119516243570551986536616764704612657876593698696102498093011588661028932951697725593737016953614016129946966881268792502154853585109340137630263208054256613518513480716428774152825362622941882741470881836240580490645206368585641795307841438135371288379350282618263726328184633946730820236286127145855435872326500881790894326462333272232296441211978804861641816659531400979091427885606399344352907739482367969720223951397193097848038629527282638590598701852577089182712933187891010498845413207549801978091644183262221598135840499718382438899548637998989453484352797575934361036185565499801708134539057992216730410298255018052324760750744532966144731742337547346168581725693352952777747920654557777556546988666639503903275772175393781873132354598450043233655915005215719736429529146567359815385887035887274724343902970198777280536972150795201665751878654831572200492847212190531610337598346946285829484169783492903108469622953359652163166016353005292204898636980070825901444588118984191107750741886214748052782579685672179475500806276329477251808646387678319562520367852566017632994520278066576366270861721033862221465870556552021892390381009056133282031793732470895797632845375970761497992525604264778509081953409882258027113664371589783068623822642303156668988365198690196050942181000221704104857745223825712605004694936583565339527007751341042846212608727930893854105272890719168795538162910254586039203988940207287180621461302599880531415820133490835975446625415623452956403117403900325847961309177469945425435754442059974762017619925986379915438570924155659338674013988227913922017446485348521609963458348547719944897740689492618508892545545862031812372131464596595551231494442500640602781619346887710992583753277729294886714699397988045898961214743955590901102883807103053480184768260143244698071258832173704554283886084918296375276758118930840028461135486430067580306415020898828684845094356207464865339938576389979770402223164767428628431197752010651943297439951453507286373769718129385313710978498204217390482328756858193357611473221893966721737963116725180479697468967841357206088113777905901610579704290361605806308060404598152082899455897244980431469602626318120971673452178841255489182056032400543496601797949998695724618023702297568393719926115252379520991958741460964786513704513680714857079814663684914891923232426095109103299180460729390505577953377200368238894021896758707474919451298338133552130036349257795665467807848578528838024138872181110681310815901928282510269155131815978171191669008756012764313396617269253903712047920288742399282136703010566960012301864919453598252255057072431769714018209691681850429138807745881926609582994124958756932902641537682538485976153109603648310271434226031606354905788411152102278035514410071289356439546395333238115804073583540982486439603939539485024093406598177416493840118492332851577439122032515715462178488820146528105908505814123407301136089922556423035277923735485684603806181380219139084805736566804638046947833467023631814434902142542939189827584359038781304330645585032342089736020765297916224307985514954376469464979228768308366684052535336553338203106263833572597178636799707349004983680888755040562920172739538372838474941040599989262948140482475678216912810109542876272020801399955582661006259238935599594738476898402835100153073454445135875114890835016054850905115345103461258391555696428795603634902367256128151472017102662021039405134249670005246878606437334747103768198722486520742041846827689984216238654142919934328889575779639534354996541160451097908926330422707762720738118653986759260218924492620745854258249879159331901406456876380392378510146068107741151054484362852972512594527249539286668665726862185842951304664324140369346806579679161888760948675342719607933147895512155936794874246668151689896411258568462797821477582096835462719990831816653702409488010945522871413189477993517745385504769502322721079354888447198277703066055070955863001250008499084134147395566793996396384777267139903612347051327478601072040213094146180550170568942933572361305723794641695204333123390103451739457835236893442957184318992490887490326476681674234996789218105293624537721280130118069685720485485845206813799780351830194616751506156772617222423451325339292277787838910676873984305589817257973163221777781666768464778231017400990860488684939529435361564921028268278144619643711622954256116383971676737352937838344050683279469868469151909078142295932412688741309917251354950076464694166477013789536529746140536932389380587418074680501907690502441084949590143573936630761947276904685523805213481235463540791954713724016181162679775899552367983307362060240069850196157789388511801685549741125187510098465046584322005413919669217615149926164782561935624869234503340432386156394793564014091128624563444405969663928860056148583295674805244798362119322578647314795174029317542446991804721224539521442600044889796884094229466037861897459347457340828837349069617538085137425730219233655483498912456893683107553875876105281614109887344724964189271264886591232057755817708533440964673629494882187709372665761480810375344929138238911887466697401127090602599025118307884450366352358403116581650041035750089192197973844030134099970482265704891333946971798239730139047716489322301833698549024804109938980029427328242222463527753192955577962959391179671469211553895402539313119733250940147014398448545058347848485000577223637214801892092314143212947944744193581286572159586123632380086032246989119818801583247807236059515049561550789961776090678470961748087501153083297008513309216872196646086236815076022978151794660780534257287975004859424294604778889373596601421007027426475813257621073453299830361356265889414056583771902523303429166337471358014728718116323504870124258926125750836443249842799265045203423144334834620636379952894012995288741476807939127663058114389914094816162455034070430542121567172478419632121848438698816292844062645383152831786506026447029667856908143607048528892616738681802515705188549538252125518354916422833093643324654820137125748284236271961696880833910949956852001707482254383359526025648822550048687531215415815959530172939895831914641071817370895332164010381766796937755455948486869515380650569923852081319996399538940460676236473827566297555678313228550024441799953539099694263988461485118065831095050744647680503660771234516741237125591250009378472409550075183250549365258795504931251250998226371180112060934749170238166883891745351144477576429421589736045773660647596255300186247258256800779315345506466595676331584522794682919276569721417171641556371436285547480873464050971435495567070294011102535248374046448569111426642490616444063380090848220517785255717769302027817786343828066118122084168376008275897055383630025134412818944036603789169859729597151653383678003743018167447649805661299882883161555782505898254383655233460714937443072315538380351894083772415867486386745757799867800537422864990324690708264633502517291262951719750678955277441026122219346118228958398756407187360929509401552026040086125085053859649249329412114046557329016242658636529679944685828616776553791563650408509282621692980417373259864670671848929354117760201165974165094732896238185398352193522113629171771977497688844570610078999567719931365141500381544224726516716739304715086279004921125159690599634884267079017558196189440103249682124887149845615152257427953905576989728598579401612207514944112404910473478179229191860310533172849798253046771389360236760011928318366850903991775779638710382772349088733120638431806856663441681420650605739910295459091682234187435769969719188562606880245245940011045573037114467648814571742913557603766985108473428512104526330362384514817991453233940796140263070562862115290582885495738605357196305792097057519300207792650610606306108817962682240978271125131436501351187302836673655501266071575554796559061581996910523666058873118400322211178141255443185975651058015150191312607940668319924079349341298411144732518911280250645744689714652147203506670138494693305000127509417795001910335046933527503404480840443954493622283689219331978668361086848484899416308351655506107430790954743760637144354908786559392332255580465361671325329519836213661004270326707529088990216479812033188168301551811065974534833209647661097844003838828035750656476356732545384992682043473570382424056598195492969527570226379719312649990118279413009222823361791607759475162987210449842688563600017212956651708315486659572729287501700735168856274146870996692073917508094359822642789613801797449578772703525183898291607461621186989312302352617463506172060860516468664282143772721271157119588230813439705607642612559165132800430386161941885366230552323505577629607714517057453054098017382598294981519969134347716838175906175176774234592408870141020899521670699000102730072429894255892194055553806189485442184704811918256290133411780348310400714276906179651581353548804556956202105739174532762699908703280962029984728434237607775973578005067818698052559164163612893063992179747747118016106427181056122654974635306663771072759808282424905994388156966007904950050916463597737528586100534337803423041416953005462572809132509114511071943998523710765635041714419785087781353284942991342095260146164560684892290890560470359739395788915033943308622677955863927913595151713866030373666231544213406369068281200721787111372950430498276325499351799066005320753521316244919054045974020736442870119587386497680631066384346539417884966624536879445595680556211919230906526164966456534829454135539875243878067507692111940055690551989693142459068372641581628939088303100467013440503775198287422008274002076261040509143943889059712337485783672422225268796149110447584245613225676550848411300960915320157017911005648763275416282804373436990840788895884778115852478775321235834383303604759627439077240495919306048317243396207174685035238637871946957344252911277689971140524462060731387364851070541384464985182027486334681495506692905449376143941871333406425060755445432827757107465626672209284020245413932680798496118818107598165617137121159484783511899569075406668529678443961196565624419777687558129586720142840659848350550966210907717497924265526023523550398097463497282312260945815934362076949099139757768410556783999245980252159531093338737160701638260293765729308668271358474833220413813681518818362107701567418353559265918659988156231745986715094558507364279942396078144137139897124910401740895962626607755318151085681967642989570460298064082411961340291179199019266998944032030337754893643441787323134663584377456877895812824993344404255875220408473879284254301530891735401311344795408141619134329351319821248160792055868481393896458568670593192946391724681500215263051475852152180790507030839635023684813815005779598481019044480490626853186718783529808710981933179921184623732732828170704830421802187216751899075948596690632066321038157771832574878385409450275995723451483897149460678894063986722990811682329746518424598634274145885524717633181432664785426518165285845418125535999118525184602578538076519478545380985174893363204083647208136407346710848104993094662669531232847660673622943783820591173422989714343929006775241785821128778641406503845764805099291303104125462888304373926775895435861156596203525615182513242734290052344452490500646483400887320765313196502975904653910937843946544980737048213987667150406448348749794287873700656535791889483313145926034985088083214439142748931396680050966668383263807329740727606022953949337417942770025130154029122034335539883365259485265267540458523904945067356029636371172569969942590703360295039786119934083743177755761434686385424194992504092866962798725554771738245732975309067087018825274579542663815239735497128493628830832754800952651143110376793694547270360406369103828257359418104104405606790955291384151989569092933264505071149679838197357656316301095315323648475884159175672590102884650368037246785282386904486026607008325642112359025349375964329092663333084506363060955922988146793435008515385936295183256852058648328306459010807259792871560437328015728272177526371697949684180529420420087894019207222997286978313687205655767869017066600806510032752579488768633664796266594130150036394987205760892375770312848797540649865037905370519647888658135520046710717717023105473209165891471927342545922304026094592721108110372439003475070818569844808839038387293129737228473018691999963132846057144802132253625651544096194229756564405288752620149173785428545935363356249819580833870663272601044375786862396515590476518674229848265319034924765750751689918736800558595284736331849992879848486207340425703550936060550383073018667984521970403501104306838258778640997725822506226359929533728521798943352235824232111615874898328446690608366867519663498694918996167529491535819101590487188420870697373123416931684223690014062006562518542455657428594383175203316179702040531588755961018065955850380974358900949287957375897414727985836844224040985871509240687949112767133428316780484175930384450198531092477673695730916370660704222289205645099642148589902692164695728177794326762413555804390806340402597303993288031678468829065818537906365178843548537962848302520382693221992634938901054404516892298676816465546119838830476650065739072489983659780175092106431299355275067052900476786123997671636330116362984092203306213983934674716156550158252618370729481796733468970175743164402380452247491184146768069551874317360108096770311173765288008560004792374620614246061547396217573041051424298189159881587762227689617379444940422846876122139817681067066238377528636581518629581280650372869354159252379014410875764569458955653757629094518368305707987055023735628214932680671222539637288914410024894365262311828680207237072053546549835912200144403751377344769199859707828388051532309961924868780525546508461377052640330834529600817996947906315491117653105418713469199906951595782812995631134363416319105451542295619363549608849810649086605879101152463708463764814140722803107354269503161688119933225651625730293019425386866975938024338793632549012042695132391294178428164151554678080461474266212174044031242462102619309885308128997993497682673291035008542947719118930361965045325838328001973840473270906035120067371119858500776491247802461070227090971309483884546912888475594365513612406190845913519442625484481574618640892848041997264053132664921116056933827516148926866365078871467596175890309280219132821897552305736000107890549092678796342935311880158837594543947766198955012919261935755673791364829517480259678771930224666974806909047527111088039620473791438562050008079210972667187593224796428300696790434797672586973007384621297206225968530990402811240044857260573164838690092943318982301695580136682231643814197906935333531525170264705061901087260034464270399814464496579720708891877969686330656398058316130444592805112625329304227455916570639957995934215779126851023140250603738953840348831376779800151012980551557377933609583619843838664699537770139974949781274406722175624230278558982889554006340659173740265169524355312606210409588305323803694985852087298356408917854064444413862585605982367923438370244003558468123109379328303813342528092563141205409164662765164912986270514142949046533878484189106133727869923464072032641115669299809213215586955047541489410949720528127248159659845349754537489408903284409783151784861235348834183643918095497715053912945429516899407489038898448578549704797944494033040609340777740165875849270627894533167255517836049606750269593160272234575033754228523091604404048912836290895862630434064712020326039732994390344452398361883753548904289880464124121267275925070079235754911759705778247291650022841493465944793779824231724888516132737751962863068275361831669219048064473477695379366528826929550810556826081191059429686691845802937323734568718840666781541491397116369213373128194670612052640618652452812727652709456820944453857544353488357594025239143411138789603955387721378152131543358420951609313783904080982249889072333589882745473779644672878564728594959434929248706589455766313147267138208514867692848151868335983341991884010019521769973506022892825331626272282823927437560580281022531145359158633460216009867348203471129201726644629249938253675630048364269788597920620156303839519957791939474812309782485680778646821009193289685777906720289854853460417428714486798290443058845956846243655537364305990343410259856319517001403591800592803623334267957318290399947878658525037188160939214219284022946387466070763462335644572015005581513857433192632353432723622334269829643383619448058409231385453529367548707240213620910560679006461714987145465944360655954546543694629223469228268262244609223159025305419825287123139024885222562979944669942724927624156339425945388133004645651223191971830609741268590879716365987643547593620824103888518872045030635598836209150973058549041338643115453874959155607494195905063163208274387861278126106324650482490231115947179338072750762487706900736646231299784072400682371083635638124967170190316658663204024495254393593036211160225985232541631737409692068828360136689743073789310225994870367098473566708414848066974682098824963326096449818724498324550503719926932051072602776123266648600896301505758998011637290751333933265355033677684015392634413784903580842084412582285844412399665693644614546727350486343017280603361256737813009006240091572392068960799719411545345152640746868432662464776311576727390984838032005381335114399517537420481058471356854187376366423439872632341157687855068954887560093780409128075613008617610481809923175207877104686689608891231718067016163089693631372822433395265849533419191551196159566785552476917556228280645056660124869006883429877955711139687585439769712598501496626587922533568770848813866992740135255597952667539193730307653367680888570108896706984836395263907668528581534895598118521613965813158413746157577544677631746539883885993656692010122912200432990179196657927865502185914889450895108916613890336865236517153482562342801758448947612937917699706310076337200555121154796906663208147295013876273105548070971213636963698021803026416129766378202384388028073051354713909259370655307900264693683916819705620849690696091984679474718769733867311430586361715819019597282407640147697806184201664678713995959273256221627382300701805868632451489772251121532186713564568652260504758743491641818630761288258733468496693995251512083951538786442670280982574287091565606435966512720324732547191739168139261383004175258584358663035974046622052155865865821616506712384317408933518053224684750695762510476289810738782403211455250351075901535411159099850251016422069168158426673644547038081666162926251529052435254036217184181257198459058218249749730341375532749931344221264915530033084305090850900571780888804981873191127532687783165180834340225504908427938344032659192984219335058474519987696642123284532783424514698585966231990214032828660502742541984774848980488541660647449065647236045809743653361449174998158091868149707542122842173636097074289493929846496455609807830542250330547814355922064375657071385197268602349607814291423143726683037152131637804715880069681499548586832307001814466143302412252483454380805596658062215856171766422922927476921518052015232336821556804052513047786360304993139383828839564021518453598993159769925700614598032895039451641694360002452133885364814863562177326193689580096818768192952075296848456474229328035871493209438458681322547659542855406471306352934762358669457083665758570295063062821136637416757460513566438398253287033359437484447007883317943368149376611221868072996523112311097717715566858015112848406396654662917671375038341382077222524573768864034841429134525912012182573379112714148167227831252518092269796070548627260220000920820281662206644634753707090561173611076776892171825511317768543791623531628006558446748753802439391813181885409794479665261389134134952611370948864659224507500003366501146097064333283972337967995509248259831844365364481010876033627667206541494025058436244361768755171682266780473503814232996815917290641470872862813897602888744495402623502020285737360856707847112675006543256761875475769551785823452981029169967082211398566119117974040140841544529100582498991475775686269058602923180870276337764399546561727337865544389557966159783690940748639977876699725723441975188214414539824543736141491691285645046043080793264682145965582212209005826219206178560261035196876943425885210737316958849392594715593666277988735742641616688041099957703831884908194771006384138720053586857497226086978075076419777005664356994193422424668822035497002131775744353832182495454130615805751605158070628746990910514840531701129500891080629883019475389409512376668600921860708919760060098876863342297152625834705449729870132765640285213694981762190056307355058203207531833912302366303771647554102489090522194647375447432343540071203544645673206404772168424738467693495747526180847185408276599735984341687762487327275915889847557347662201796861731393245468391169250551461537623105858534645697929746595682673463738064220100199080116607422910289344898971326232323368179154002460678914021169672372831814534839459155225228472811167315880336544488669142800387035760068767916910440463901316289305926610144376666264921083578306529287914657158153808641746358148628968733774208279652058627047291188762955884711107059991918398343909368088289035661568680388290023743716832211997867961674046368411723100207144533488298752014320336024485547739496860763334749912006974689480360200496052158484653388323784287904106618149038130520606663572145933188159597431253829723581187402993419207353115929412246178883394469751002350716521014350469732334769540971573158898795037306950721479392230250299016755794286255599210694043830172272686796566157612063658772524632495103284233956106582519795953369201295183332766035172563286655011581957173209933622581149990282154686467216268122580822146465576885214149809747777678268797063883282670091186222299700245929715653170294478394415522990244700503693259020904656672786731579823647095639027248903701447566657125191055904323213040208803398352764079966497667005633532403411581564730767853057329586471878467016483013309436396480598232524177809759890315328805492755519002538347407020782198008215093889245097837932986285905837696321767049284878273217527551924240861508995829296428017354979251797552432727247733859707653879274546859596705515759987162929835667648433928319159135454452210174455401931519951289506167071598291117349626002969197950958641698051094550930406428875753585687520441731075395177595218808742038950201284543666769333008887377951355193027594362624608069555184857082711341642080773663286124195713623490653046879768233071363108388375530793872159810984296802776799472275276453272723029137847610656182078061940022388156193268375602931918821040438871711675702875304280628425197720102316167234926814657030336929316901791662173243535348116989284922657788272339817417849389235750334986091330466500009983099041092976845362682602967360439451823523425486090430264954337114378703590234179452777314532603989048802307972857210133698216406858282759104822742276258058227705195327231743721630618728073038961561825941216573845491560419793448270250104232918420633577688713192301988795241786821734165773419129239883102939547442649303926225167219293361412148618017875778038378628972582619628821319931795154805225419539896658827758750941526859073437809363367146126966053652322023231793097021736203083519956390187720420392852058648377241155780127661115112272716605143044991472469237111049702004452906656049159893861109881494308457474848013924934561181962579761156458179581684537309643834894088813628372942268016233227581014890665351181896493101675547641924538908894323986635844597275356104014799040143048922843094429170024082407973482320298309755043946646492032886486774085067895443343794417012722293290828897859787741628112010141239330794250234166454902393729885627949253877402439526319725763793846935253782399882183343162665868934948305535521861901764417106742879577052060885527099982610974224447775092744897478553151583805706848843094756552553741526123223377349391353571327078219602215440346430804297016451084717670072118298355798043287082972860751593812240949498275980561877657832707082839084677576095503249072919408247506653338296324993438422293814697835359636429219589503968359680539407779650619546696617998141146139632540084078315482725356250327991649847977019541607258078998428341477360396298959302072915688056906782444571772916801388237786452332632736471672906003114307806500127254716358231420750308487398359458215838269882276748818788747884805346073619184977870434563283632962923229383947152427262935500639476627052733148922942950681667862135641418777151200331180289511878922252009558974830605261813948260903622516984185119716674313742798550364888792689877783800206738267919890733780294253113467448542390568633341553306138823592891420511647181307891276331465415009185825410355621966988543255404733393168809949700719753896516172591123341500594111135088199199924547540359819577698422282268560071219894209064720286871916016178830282738385526138304786770751307722741173695234422429092719761042226151847962740326350571327311178978414266452081230988427928855170246860234260829328724008912726058753670783253587249292862780620957828524054001059618073401066999443604941181195685833278757723211095770983853369487047919573750813728453942817941977825273626651849271107269724976875489265104566167238270749304852343608600855584146631823742069411419580806936831367679569450147174938483522163560035764738442180957196931096270628477214598581584179328908486897706064282959633332632975309380259220542739348697565574571378229113531845950568470527701468171359386975707265919679223048804827436981383825127725403555344623474984659738478396588459893057450687348394652598544048224007724038056934102165108834086857031890872002740285786876061072302753185292275965971332851069384009987530146547032146084540319369898845381652149161310738365035433927692225434568080113869485618907468729876255670244763814564586267525403518706917195920357980217432307070875572773267523333178746983185588854658147334836770939847472805452734216523810203804113807203153138998011581757294261898806397740787479806411601803401068701588417836174927225369269302681394455177396056765050921990630844639392343298860849461647204852509850944975262376899401992657063600888639576542998299493305157803483868511504727042492309525694554532411090349718562448204530750730987078548125197757764382087273956455368538739346775259150839833924392311806110309273445894615505028851030717053228777738210546969515459954484203353217366834687400733339411714220266557007323587639240477029079886637503982194010187177691305697163201327868744474813083124436064174098502636863928979431955450924991697767141594689999829810199230968141148843091755231012124273957445948903064147003577115712849007528086016148491270748506293948282926979971655622383312139765644313495924949965370334337611191961091748477777141759433551496804790389951542361411513201583304703776977474431739895921028858055265193815511401695682519195392803338683363584387956101155544374146845334648076467979662715187573763362209837608588456231873713243969061888100911204930890121370636970969442789638916681359446858448164722150243589410964851472273010255546829120074068365274224487863069716350877759449589505383986653233537946744097512939211146101537049369966134962932613587013524471612447826898629498418437610013091329126823224005446659639016266321433093912841028761823331871327902606253261261350001790363906209474222106047122497482252300096757797902979039497692366926759469058898229244446220838094950968821724494412478961700876317834319067161748797660710743031944316437569847468297717184372080472544530005812857378178832495785851355058943066166041278246506885940176864449349816793242002171696581447828219900298065340505174751855421136765258179857933811820893050323570282556069389630714781594874875528978450224692057462115278160461285161056279675248011147138477697904068481831547044183667440878279431698410145108591485076663144720653257847676989023438660410493615987980820838515050429511797184899783556081463213376446789608598907939499275582450303410585462430139797047802563001015043606461536552376861143988127922222558746745443570482134994955469228557752306506908422935576819757229230153185430394266407815435150609911851459035005493906498329859612622838705175001019644148552130473481592315104154653305445206439124133837798827499338294981998573150159095253073624979229569955157988619070224121758908464032208126352817512565195227680559766272035980830001441014030835748362529520203080785752832978420569458645300432806894576188975868341901118044428043047169394747583006854305498493474752570463533051913953665915140947572453452618150919064158974047872997049094586715469322064045689235618808439511343978496418498891073528350441141598482850019385408676054695146908923319887693767301317344635281403785763070542569577972767423181679945897030544623149986941747074371454791486902042032254789612713325216810044009167525987931541576789447200751673582947548858877004803083284028646021675637785666374452012742070781296530706981587000192029993658046460760617016474776602981601437361495636551316188159783814726876051763078411602157758255329677385607546300027274565846540080132402156364836301041892614126549918668986646277902258030894288155846075942878571803685685544472140595289721906314200670244119538539603967981925093904992905628110376693874160310591073321293584654923362007801341855510083869253228666286562016297920054876947014069842314656983605403217305774424208703978242352712787312786923314002023497399403610381173391417189855985645453039470396177605061950955383792947349910166248436890647049220665645386967238845315372868071977494149126473833219717214709009988061573937440879988107607710047859102427215420691438306052039940058511071957821937686977085639212660714197877131602276311205709952105637486680623041771476687914082479743362783371421277442506169818175692405020884165807205439084315268799645155024128402222232804716133919071929162020537672977986182086662988035289940346634766573576273649810187813642139154641696747484842967123876010673468654283584777941261787354921996428779709838925690383410367676934785600509937085418116525570212504307408927273837880318183755741786541102195631050724171160347125224534952998737708104663517768616071956467914575335741065217172818623796367037480960121641452256118078760179480939299199333544893136576353984975440873436150781071852206254578663469663548622569647213486759333202079759170200406624316803810076051096631492886418396175215116094754843021454297242715823141158071847699970328590450114500186487895886942957234469777278132256851036212832053204718583751968161695216768794137815744568006996834609110662348344344564573393735972846875691751550999785372205988597459403848038287872509658435456001594311557243730349167623957425091395285407177676097380479354047403857208919914281272485214356065671908395590315222340172430188286183104245640894483162828026806183507903973195106247556619275008046604076937640429177482918550423477352498829498336944955903317048966399004021029863181085244350611619740157791166528517033405446341970725615957071206637087647991263209598319527875954470373365046082942716741793435966903198031755270310076413475041148503066252419689099976716288544194537117496844021909512331661945423405619450750594347663148605919779987879602293603605596581118827215361236144072973296322109580316799296367922279720738723532753531419498947652261310328068808863738223406768874610600839925261419020350270663882845869536019168919910772603795530698782979542404503440941276351753890305292617995852117947646815566452402227174423114295900335281163145551403521968325542262240480456830489788951959545256813736242125654081889898635217172137562315386464606472992367164284693346699714534329886904977489610695431594645011580305668841421778069369621994914374389718382739800194354214464262285022993239176404073191817993901596442803740856614573259876317938997766485066022838886525965164514659996092910205103127861307545054103833368798380101302295120766459369516060450857781281069266811043483874816521809943059533623640228344690947455268629058354525669462225391327965706571185233470724890026423137892718658342050315321024285074973313776872744922861782455139446141347332408737416179375190901434746643521781988406815095541491072309271647909395964979183908032138425948261962909317901429409996509807508598739406302470691841344807292655210824592838609454701124809716303456018848359868579520991665858205220359103392263661362568204031133269403783224474401755643392766389722348377087093987063433726296728484433297659056617129973774913786962662895367409435639721824486140806265500566881526104304806875639267160984801395319726009658698790657241747974720889280999039257564066459953970611260841156599759893696520649630397300083156321194782101256380937328996525428666299700523532167242420161739175402116228774506075085406093657197044025128425391635953103615850309402955220690670513857628597097830260549754339080109897780554486825503033473978384870513856550160606835810236759280089014198700456350996997791926862689960026237415740586353304609159926208428697128260077459886218072557517698431563870020317668407103797410991907309730139642636246163963057934503625887715128639792366583988709602712699476086495930328344366021157626390904528924434968682818562907239354882596055194040035121795355355887446365906838381897836770045090386017514750031416776506832629485792222941889605355432513868452201314628387996209958436890546128656988668519862122510651734082619108275203093401360093473991472364573304829745869048500786798706779464890820622493143333225499491466676175347418859331896555067981304188293723855304197815667956366361546132152367348576275796790864078368075079900331868425908085491382939767688263354324885529685537913519599493316697367645130026092650932218944187211174734650145384609837782741667053938949884033249082614460867546273298515646134985185270201702546588196107377398707477683428475916283977013742455897573952467068132242279357681451932022812209028728997575351700498224515043122680271136118380151021684170709858817806532830393289127225146037433374919789019259546906032458282684530800561559126851381183536479095023132342301571916917871831686797621172573754895194294087760042915513408501469535826087395480273433329651614640786140315985944189727868950285717466293638007996748375690607509824908034076526694996890504994155237329417960012606940806871432348726260485837587585384467361739706076696473585160373183282448905623817725149665074210624119127828951285113784116684567239899185664397489176510355229698082255354954858800964252728728616184948397411913899004672379019245291024831712793766201031031166901199730553902585843165163602894957084252627692273497602095235172507911905064386023898147558698720381650224033656302355675233614536566943844373520352154690363571114372480634813728607446545937566169783642320824639546202027693797708569094389543292968509359791030759545863978622392642249449039061404122472290966774958027869774181127977908595199763562873146381892065824502346290032086943634368617548343997961987310848427902910660492592725331062907134158424137787397329444869089748208739630052338430968790074779469313008955431092550018001391308699027983224308043348744543538416020181096824657047427985947646266629058448869330735168647015067820762533764718171341390674344009204415287808479632905495549593701703664749331272451023275381133713394375306797134355947788086167718821032461030133884313057195775889986077474678441022873689004669122374024832367901238325427626340224723311725920728825873508348289324406782452589360432494195551059111474854352607168403932840748323190473630666830118264969296408996389809846321453455652037368586113205414476746287654086915506649220220916485131805484482916119101313502422137446315745348990642000264014792847176559942051487464964659650754301442398015461518967820266839623438891416799108332630584738378565280440562820068525138895689310449538038238057469457017604144752937509869689837379742535838475853719018449677356248701075976481848088699406791294575310609853616039336457742120288740770587251026222503227361621762503006599253131204972841587161340577135162714908728802950148298261210208573240115497060484368999018483517685683832220019576596998133524874397986690154366860852831911624380399066827924621716352133935346496486069948031990028060396474300940227549295389191422735788815550898370939535946764571944413193941080478017868418605047871513456307201066404922648841356063374516684791754895924767663048887816920266154377511360538136420245140730390861962740448902006085500937113708488300015126702096724420705605755388486177152184866553613186043136758430388813985271288720310306095222394922174349632602237022767772809901255996238771417716203509741573670630691163719144538239612598415851222887978396606026429053133508211747159545055728156443381999639615260093009277528415214913305270036193714327207785204434055181796038321284841923875993480317914237561081239397907887449979937309556890499114276294038675578675817392096347627364223905555360585467741752465711532945230621529674436702159057660725515338811317002612856103758440024295096340304343850846237343998439145039741952794484007351815717650971219353214900362822748684023273974586594046402649829386211967506177361890739333820807516004814925382840685492696705179937420696720530764377581308047548089631396118666256017058674866842078913683081447314409107671921108859879271308941340820084257442506804829712386455492335567171175842492525237548681199067381193583875268975237897426398682897378659947878556706442127261447828515981846125472648862439157177808710842304158111411842503592873923260854921137224276306188626561321189457085256707729306857735218331900273318152171136478271805734195893768923121822888060725693126332961204058003764435217478498131334040596613352341820689556922599508510317603267302943400067741683114900210979699513398288773509160783121871371039275840058329980367463776256404259346858211395302166753181010450027337122529825295102491945317225674519481658480792575581854032312517576126267199833985769954180941872712257144128663312822222083846516745998526266963580723219667465797136821007804580077506573325439745452980124257963226933949219953321440476234999724623084534602924615754824098323421690947579929888345539259621202681491940613585418803929892412376943977143605651879555344934193907149345907285994223098986513858066268731521401665728581725090350430720340231036499686344617191194642855662044874763279828472847439661679455664225207796781461997186921253233404645886084117527794804258853051122180916739643623502638909027119817944138940812390866120702781526616165258500831275163868621918858341836708093500381999740710609046718305082806682113111181084073608196813367443924126566667459568710104202230567296641349476310625203400461822620015548528365471310702377442397390929368331552383848031688124229017281111233454308375421892782750104013643086196374057572415141462294704027998465862533281533750378187760865423479207939797591542146439390400924984511447749518173329596305091976639273477489853075113818758137675914695871860751212220036246575148745117744797672500144854540416254069558934104989596171767777441158580702501294702568551701130869579933988468963430624731623143439011179520796460945135455587128877977244632022830019602891513451222718456520672267662488288477430158950534570414888421536867876357067885419439524806213158411302593253386497682361023055468075904852045269708848363442601366693714541664199688206924758241454267638108630047522234060339724584976015866490765371094931282984703484646576822360525838027693011815390021509972495346787412677455510413506753328424831412107483321670071736458183533840964745650397921688072201177108600842119965668597436772888363839559561179035183474269133433511767559034256484508427310286970040802321963838687042857741425135182801338669966561945833101196760563475292074543125541574340987776884035076756970703728175269753110199007667427670645821154948071213853121712557493793112655657783783755799446870653179675828477064127423039754602602360997977425154923174262661710291974874258601156118347188820287411831612409494044483601619439362309431043992863908089576654944592289232337970847350960975970959356749616339249147314804138760921363742400969658054906906784762475163494128127671070701537081519800493655068986473450878100171974267070231293470998787874359132279757406531988757785765329040624621493392412288057092136414120976145841694904175903966373556806691435227816384622013960819061201658105657452067093328695891971577329326152268050301059735391216969914694773644331440101307080725528121077568963258287975832541594148125282349457886664293359749878090747914314492149042195613930610815834523991013953521896873587658029529464130086931094534401345983408242599528151231536952009167526729354319948053780563067988213318617473244169269012999994523766240944726045122390295590451891240929028510267657523376210006887975597915546965334655593280543055118285612000255045413344208997561633771934599256280158176262185648387702511020737050814118537452669687289529376168097635799412236432940166255444903111776122494525136109952610705865595413358340397093547497781186295802607650334009847782538554262210016643023741937274202291594837163866537337543614006078664899433604850144124133208507623705367070730911754186762171525102047609198925488001948530696301168088504290039150004698261006004378336541576460987848525715426171723075092862007388209428581795644599253164059125220984568295005297154584522400974611844204164573711188322057309306577527566108004842774077377162023554459801386976556827132025315391247703758323341970264185124285935128606755184612368454423834214979960116019283974071281982966335538660700598364727256089239396290446905912776975203845378125928269703872010061081686221492561154033336942332981104728111060890312216775794317494825004341973301799258054363574001056757903437106151212278384035261535961255989177682852353421627033602861898734397936435952130291121824503313105267879002589596670741171513970368847656898287107834573168097725867303796125290802147163463359213464193613941757763200731201809207742586507353135330759876937644953088511806883618325778170615142924422586348030681834300638018041203609751825924020091477582082638140208604100903591698208367637382096147255522343977789573702121246208225879307272400928891922960692225972101010578619408692048301634323481803506284710770232433118836315532436864911632011958164121983980311828198740740773290813666606850156354442147237419874996749937988551532656659523438100198475102667728562132573921797205879429799496109513460371649075692085195630683842696942472037371889751748364168685343567663716895903033721674887220608955786409702158171784009486695445685367302655322316939032256149378199859478745150486322309339754846898207416162095333737822227981045853252068749190166934056903100070612626643821011159375018988247226170411232507636398438620393059529878395010079551359699764965272219693487465002052407128205306525984716176914419225434988544117975719754424021234589226895121595384309242310468418714401775071362759990840827087358940013599232434291056163558980726801598930051071620507939626615107180623389942763822286008982469909187907147537760969317912342559964304891199821816832439083120510848685909218734309159120437788765681882302546466666137019021815626360020582444206453833153575953100038370085484859452416219020243557444861880968809910553455167523097322909529274751830435576048097072508113807253942972067579853351276396604275707730669300900071233143859113405217619872369309527467432265151132802422525280999636993436683695887084312022671516065798726324563033591789463203879089186144464905814530806431184793759545293950491286607832316494303827158819057947203108296415208509230012377951450037943034952480105984235040369154697194299036803722009096633177574016656159507899964692131701114120203769883373567788924274805162559024618930881918076817683798429462463175055086876494644928403131065478917112137829554721483507044128374247509186352285953576261073628898345084905496183382842017106506190293907430663732236980735402168551486201939785603442212327881120384650754362051558610166376328373639688807601985706248605575819466594088157322943207284528968753602455725634250321684284353775024250828171982353098191139835650953662185997881614515373617421514493793230778834977900685491781984598524983182473619451497778157480880637494294379687937549636043695066392032522620424754534902611104180385629453693175346945432921860882860988745188062928782087154997588417907347996301889379985731232905059214298596210290179343311693415923804741459651374785523774130087291496790127939253229709437048505785825074070263088494524005041776492528675146187001495455351523497146130746173164906478375256061297366742382923420732127763040733842491410379580084996245359006671838097327080429668062160566086567491573367624501792839868819683602686373828518575588674864835974033058675131869082559002388567036200540459829126823114374243308940151794624245671520749160713502303979698413338408445468323771830652122174336394660633703933616131727517776397538132275229556160405023351352576937004169190799430739097083738297646790256126241931420974389670691803310311383264637760496979436124513885678168319176533161675817150279164841068224041113540900463501835268961205102133893432629032359911313426055088548137002401809729398585857491247214246025675298978431710400118562202799594987710257794865607133721901092039420439702376898112936339171523565238614994933288927632989172767476567324297224697543101840200228262447790070118726100028025883021311439881321304101896204184892441747722965744739784792599616809077959721078640781742239555485777689659551401224109310781874701129379196178311061904616267297342062394742247820233371244918842571101022985549855008913046164585221115650005907011338637208526887941879641316596631145558431784703524221326287788924024076669472837045501973875310135739703576633930228374798422674909544340510736391255632259821997163913123661335085283489217610131336155019616063309305644676467060739080454535889959922755054616836339532275346143434664205680158497509956569764027689207321783654585305769862583935791421579437528544386285255308030193412778642894748577421524717805691937713999702095447556435489326683606597589169070363163268195157332790827784192660989020670020856978287244232092051873228309168169654424795318819443810478933446798561585188457982649493521505759340923855416393809247665360886615045643929803375364898715366798907283993470870860305484100122370114045579191435009353617338218838268625928779350668313362551023755636100754220703514772328398409768217997427853918557107315923451194107260480624921085714137044677908517629549105718638392133806512321288936874621749885630992684068906129670159275251802706739505542815771910266651001084516366230256209153349496231462260395631621948876834197301819850142418738236398957954068658637479694836122641609804458256531074284449278543679656665604111827064935075607437938427364959228449043706042903782893925915014780109537956974907123529306627464824687910882828035599450780200947373047418478267462332654803476247719268037740746708979139857168652409889585090150596621654371338793973822141852116850953648744574568046167997553937948360716350984132647677025934877482711998651704989179595675191661838502476427514401546414371358826101487933660142677947949739519131555671670996248326744804025849902381728903853489011597380211121164472958531504490825624231954695483216628610738696982451663263873885664498503502298174406513550921085913002033189201640288133246741945653434024202373669067298422465281948357757127196849954817100278382393167459851241441963959815179120880842945137496658694807770235561426320593039713207616308422426692348451621515474544532598688517387247867822770428505060427540407388997793821362252037658563822291574552798647139222159534353706528302310130768889151842195022146631782095753284495986388569461707052433396345677966782377380151616684722905966250112797255875274646045834065873862411336805516244753072855770893286882084619220215952930055312141764996434488731045929839083875376633422823003150437798059605897168413252627684981859281210282895798293650651575658623864364844607584309636405784481597019692594941707110884037456277630534673645616538789083471872185245491860208577868486053545077027741915387366252228382997945433273986840601522583611035490507074290044139079581610926313170979565382220614669292928990693643777450570842834443092426081842994697770044576856542352420334425495036424114048324621759823097847428804644430357246091586918606802012282316561907452075540789492942519061814470904427357131711042020877782823591956349755580813941084256388028096722534333203170006286877581598164534379337574687277488976117329904244675297564447748169463871472138064637870484489710255868457990751481621269209302274501322752737492680277871977688561037669449741814083811636988247641888213226232267546749519449679720154481244831476551100773982483462401502136877233098075131132392577684614458891452724776782623273405964505853199270698710040461275729595143932054284221979139231574765473516240302716228943949516161227511261701420580751094089065589732936397327000298132661257214424140624847816585766037242714576400985993157426819993082783158101435160412893193351011629432958805192264165925698334294155626078064954841725414072127339175533710356794987926374103130247618348238849057754427081080622819918933563312058599685173246134868011708628915834973586128069983243011121179395561123832703439627155258739195949475930880451684563202755130162303442945863218063422226705934537573964967710533451182329621256926534554520295066069491121950197658008968739486334197937975456195061867744440901659877766896678591102428175077658591832443370794212152623675192490671774100493421595641228465533152898065207300347363009439477390138189737797145124323719032243434281885646893490600156696927318332922360794485337914368638762278462727436594462037145347654101174967401355038739191496437219105861304052510569643528873660256708519555908426483134563271186465163985552673506519677441350863115130077607774119193266129263412410709014125152726224248939285542514638271338578878335570702146306309314280306031259930352092587148616197086875882737763421906867031036901654147973167951179736618422633140240553473460788566959986903887379105585916340132369262462139743541290607748812887816153958629950893775371728079302293128896475412817300751612067031525433986246314294728526927178426971990667544030890987508014498820301222772734876888657326979022230768860428925298954457492928421227469345224229030128736293646566651158718156170778304412182341390606712964061094226973159838471060790728076808262108015900267671616833741678796678296743612308982179375701223805536988456185041220957494418350274420943144687587598099549232577805705237309959889420201997527885289463902298058866918286530067471553919582253497534861528602745162014138012834291314047684639412374780195220317727352289300415277181589643352424145406486369760502578551489440861420599145626440514191652150053534254919568500132013335895415014473864945162357547343098968569477310486037661017992217983146599945512664638143138043047479601306754349086557559222178969763121019600788520064225079552623167885591477127484754480243105995024814679732610623730880060361349231662667395558218289157218656077961572027211438411754728992727417944825339814815525902912034956494615167448643321813824703660351091081139812847963419218562353074427691813090374741166917790735819198125478950406525612648190139614947985849635476547573113641748374213447841101626011058219699141329952412570234359589111795695770592030566560787759491275139194087666759709328106348431773954793922946653963044465207927838003470692280821643778738828773761306726652470735789409251358211192306687195637179374111008410322048253837850465420936784501417392453197164531129913884848568489990212333448685337863376071498554463720687005921688342793961737593397614738684549941851100023640000311819034277273464107082705338727004750145514723782072675992963188931778598618401529665975886238121026737473248430219319368271529411324763529777622041823798514350892865620762274362967545106841328437599029525733026541771367939658753837467743535252685961759042108784685293985694044483099957587357329973918957927637590953670508989875586363228731675847909124477858357538224278151621697189217746955121643386857060139667724881266489587441467447862203156393038289305273028253199714743365028213968628347530738434904329772503719499613952754749036610798182794570111498276456971527327680566782983909021435510647752224849821107496483164531182377464890455310323520793612998791351817596349854109874097018376405020501244491437687105742883559968903581432389892216588640441562246965904995545183695767923115539608112248790430631367867590679013562041560846919245640374023146633882691899833952903253068943573469634792430314095961057927166631141348153473277339063172941010535868888263077731511341156044314855144917085591464489354380834167924482284250618286991668840663281388673395017883336160843666752693533295507297999962505912240697772406399592803898045596186046760965793844543770390699153695867137234898216071928271323733033688006964344875816495878838191213828223348045523140949576395950671724227070226291464875049713017701523946614704595876892711861283663917999547672152570599090273641626830536505005954206451036731847905215111811128666234436522208694700217022808730056562857140062854384472382761544685803255501164769991958553508786865650789095153750280754950186907544100527985446857038022254855094880873288314185270623604543448890993981996781093586908003925645393298008100208552129033920841301858585898069930837562765585553836111493093864942389408134429987890298256637649281864828831186231939048691479761396057322507534973206647560103795764080971828284494236914667065244919974170139303828305409557028707746001341349206686953057061320845062481781241768719335615491707884558405218252922305494582648071082553491359206099791316546406943445698980222901983090750406603138026270899994506742409445379699234284414866083066196145823782320136264155111020617782350779886167707269127277224569313801871967328180700627059051752507036417100957138262414362192407294301469643289940225739356414140815398043777781589395008542663431769264567560700823213340586757477847359055642946459066751109240234339462313473145327680914565419027362389060726318924905660373300623210534337515293222477997749624660514288737380266911643851090333226746575618367181644001739904146020739285980259740704973075036334148102077174620741807890549328938619038065351906436397817544390079606527079012493467975553612882101048492809504533147018281267972172612158455863329301720844982191040696073058552337849155809900138183048368137149374341975606403908191182296945955697432417322452137375429032102886554209281587554445725954083798917286954025046666272442029481786687041864248246236699872165798092418163193813796722161811265468942307131660768260415938843771652545495501579086963885424260359672371063499721888527355514942842135606906785994881821444161088280967299679749516909027506546959362996396303397393163924479084922412449380265265988181100602794247733858435275976918061221531462656025316653764763786392912975897286940819348425051080949260332952607016234506405398768739173871267771865889959081294475217488447601995725205956934481292422362036415955030930300602838729257215375932771296832326864938918347627692005032497230141851140740549030422257955848109808839602904754087351002320610043582278793392207016394191914851315432889093181570173892709107829117475722616569290679938147544365644242945995320650705238812491388272392201791437159590978452276273276940038472903856592549727825340581124066163372573084300892099171710781428666735933505399876433957209106185315775574964351358527150838016424272752921149587007271440000299176768112733753794429325198055730842491000383999345834102136005951924495325334345106391321105652188377570182464534250087746474479069136443854404139841430878038447277053858998481904912435316486515960484492729823727054055278787896960895049984696450927433696631267220981860675967672413768958534402934637895228824462785474109949437460828363632694159386789904811563929219331119573545792615123317351209094132705037551046381872047610343249881993994478847296218755474136512815354997206623720832473945176009419631345953931966521072426665146339793572142908592512452801040823636857173481844400518767837207491791491177167809126700824092702751896699282988207715506616589067050896814261441859878745301805521917930669126595302723217730993481353548029126375282572138163532462839522568262535604911437627729026773242435679649020354681892174800945449360433661382026179037514045738018830519988542403923553421218849546346462299065090021183822428754681641443152889162552043106541656398102869433676269765796368807241510744275244359986294036981569531633154294859389067374754245047018533314082863652712811064853199897159998903547611780796079131649866783242944320986538346412620717753343530719823706811745077858000004375362502280934192267371542194969232790754868253769640594680738644372147838623101283320078047294786053116773808522504225914650532766421290799109679259185726856008579798262861364345824918142434206557231615015186979797614332328215806539461039629722308775061005959815556920269269805769210550048688002206867446270617820224811918071400171102232713899926019340243204778218600469128010643820547087947249824237759755699641993724289475118876402506799749885936559430837904257192014273766690680919510184102595926035942636918244998288295373354890842544077546390836605970984336329436741797312611589426937185866837260887769124168177859963372197950616899228618465679064237949457469515789358192348174968320650771493905008205192396648850451337523117813319469515240845884447634052666037756070128836873613570464379022404756933458541950968366391882514508024214920386544490542580332083952850036769677457817904816170525340893553677815539059968766024626814588347500369090800203316788831493881020894095197154244844554498653867487982076844004935329716908055876101101735580566169811637793271961469947765706222584385216606623194437958694652572180179129739016745648128791457916376016892049598761932264655864986656809323792714094298352981215284260078406764419181281372304768427371981091827634978117374619455490756140683516012935743242388700326452453794133436580374858808690165777749205199600398536045474895269179988762720806398841563238002680075395378750896123496546545114292579947809092841039601883612176119662237830673304349204002648731270096388759311769835828154208785321256097941417744968153114476016460266021791026721429599336908775368961940510106742736191744812831090998545871036680822871948309253524832527490349296395075450286950110253267794549539715341894641947229914982565214372394391950376050191511292839374395623099505019365711737157927807858819778919089327749751677216152998315042467915501124055372494607658228215386491019056358610731887578162357903131033469527502082425932798534829117910348202881961382295944373078830204124686783979336025460102380013732747833131473492666441802273714178897822304519216747044582661990862246186896541686381470154688674605887989232521529418721243647952860861000564739875685530612191632002252986807971771999947672173853185332746516236787152181723817432590886977583526558811568964144853446861666788412628697049031543447179913978057228988093961994866879855198885187261119291318624384083256604721666174428175117681083247621213805196745602984004172036043180013074353275275429269013627820838740186160657923697024290306939915243651691812444303972948567700556041630943005168388859735814875599480268749936885047587744281682831055521366339171791620381996966574253014757415245986222311348330007312575587198193198917263144197488569681475779817954122213447198537047160506237668111480855931741127269436713870949115140235990236865726207843988660142565005003227046401346357218574461157607455000887929024352057761852289203487065825031753806085864901347082555145335658420830994417514187573077428287184462480592084535723341907511369546235656225119734905821043735047549465457954651466433640176832925708822605368949166656363293644102030068875518195427559711493161048793486130761614769521774456097557145786411342675898316725948978586705010221020895238900857039187346214801157193791276034751003891474661664081636910495171919979026162736729614014739145783559752836023703758724041061460403036438849653696308630719390477204582270053386472259338648403212826605588457166576648944032945430709428617094498936197480661894097139252673702926527115901259417957055569405291447192863564864012954372512762879901281467491634637244243411939968110022314962368454530841315508445358413511376064032647943650552396429168617518475019197612071276361966503248236416934845701827741241519229614036147738925334460488576647536388233504677846226119033583737509051642283108398958796894067994637675962930303361666583075368817580305215576737292175319422831788975190765792666337313740911136237278945792248578452612516098966925905836865003177726079509136470307384290400796740316059919473755486399163639058645407967546063910030813822037069678561254756392947770773616692456889350900437184326088267635613043598220361998366523124814435341886448624149294116089717230509889531238303992965845757719745475160819089348306015739908179311601439452251921850647032299574804428052121103702355429972779557027513246771608700965002350849901628737107430293874541147010180974225146210577992255638471339851166246961705806483909419752523348283419764953554383738234337528829149886709292614594051213422474218289119628194045838682306136553039403560454600538916140785668913028875227029002734910839100606151696033499865710378539740375542823561061608958423457778304890848235737378821516819617115702652074835270797793745707234996763487365795533849108068788823206978895439455985832369708979525404664192223391428449458470047651997513718474759270818632539892873127107628834702941029424658625842590666686516357612958158922959740918730676168028682262666842028351790894035930697413067403231472657222133153975297932927472484080623718292400783038401585030097580478108407143040606917830874181971591783097544917992723931606778965267595040606624900531954393692536179137384530951342502955815692434968179726630950005439122515390768067529715505276779462160088811280777208208329988620527570398970870503759217187601811850875526538250708234807128001334069856704522672683954055635360741977260974106676279925303657178566627108909747721195168976112049037937796336228298070306422944099683936678755311067968115044293354276614413474993789858109442280280816975895954194808988842322974575313596268126859983633237064610343115411021817239982386001104908333843491514688479710152273768004960045000918483465063130952434274713224612429634545215681686118968124045070586498909425972678973319786031109576716164653227365012418271155623918993005628503083689680784573099952076630957359305010866517305552988751823683627604087233832733833535594594706604114021186496404667650828046611058737689155507676218139137621739375971699770778212758112549850483811113490855424433665060877989796673329471414003307252155910436165425758563689352558711103897248217589024345968031193734304561882235748995909984966883279041476782702730930062005858381240960262266440064000911057780915660128672645513625327142179565546966443880400840026755099776673146852960797333126493692837996339324377165389871369587946348032020658292749595573253757576696204002665239303924581218060222711967202318233211730282175519848685424067244739734253325161491343440175822820888823551432757293228753848096014809757618854889129534218179604296442065740426383716861832433348893274917676515583710439788682546843485827553107878986725583466857668683220597736594374021404640157907270622180448053120809496729561409109258630355481590411159418062334716127040047490345590716854827453313535911151672797111707956245180775411941504793373677261123795299744603384013354499424714857831730680323093875558303969938254576055288758786061605346267255259009502617216073416147550731367797362707828281947134382693184474661287500238524178511561792275544840074184856629804374131071666279079412716614941492105161413804652049567472153756867240707439125179207788767790089771516502060397672523190731806386900548111874537675009397374624451811823017182922946355799934997997928859730418929956110598835288710623860934283627715216838635164402085752740999386364852964673986532533381619240327892600861554641905491900846162882608201469431521130185607514940791717685100762709379239075220587074709162053317122162244120882280799508838686156971662280892577901168675794711704791507956269511294244070335258699965105713464460443469456886502151196881425021237930776751174868041600574545300164265292363367236437244190020555923878053930506912435634470683320910542827423920349019986855964103064865913979293104823210851172675752256355357989897078405633185657304971610386771374213349380667137624675471946422889303167338933456338295260625316980452746411305508280920795283460982604928038340782160648235847365317180267130181604500812470777462076311950206758214272731798115859772645297334461496091991787518123286636214097560787214547773302314546089039305445424670726696111741318321187350989071962707572516742858958724010485837189976269705229247554822875938335258695437966582253751350492464479305369829881696230121942477149883440060636035792746695052658763270250809368778459528561726591881832130584261213843641478885144636598679158269588707322982377140204789699500604389047032558472067468922465709195546955303432587445365537907553895998070275174756723172675362610184199417079260228771615422144013901394164365500755935845273966443878523496909961738367720983994225166598049362183594810842641319041114902695412467457338968764032576750845246289034309858422035253260336809981740962281632764940388707308385390451156615119835954373255467048585141677673169865383329151185762858192824822202415285343945998242732355377727556566006657101536282252329393015253225203461181044057638438633508501805867277272496353341267010331078135670288728938409594280612160308170469684582819865789395972614956973817355734892783667120094541156352294848666816598939165940235418236233201757258620187989939323723814070303727059181696200196873215478503304099205190342103642614701044046270126186559402079387884208563910047358469535260547727261795856794388675940535751848305667686925417769538832061037308419024906703455276195637393391172542022441464108800698611912836795882488947856686739481030825152170709263217411365270202514489173397504903826000728870818856499927800124373911243950383315449908775116971625475068949646874717796734947681591879503811637095416066721410590454745123535014320573892455270393416610601023043551390024456955981042297868825391023997479460421864881247194092461320817225458301082999781898513964685657555766414547980478361750544901267048246387093212981600711631236544401800296411727559275526508337448200920021448979559528985668174677912730029537993102664942761239195426984677181863886900414906361617594106604930726062807584802222103173143709557306196682320560335288958072241504046830696616988120666094970995756914128886047006026162056054100088880490497374004019796934559140009808610487751304215134164340638053039900087104933319134321792545991351535125322264305239684012102772958024001196071096479795483709700873791692341898149402315845888940215549811956211837696603332718593073861902770120010580544273526135545679230091156005095076796831902603942627088593190054131359932391374750091864298951209456340531632298915712495896202421121018159565670776568918766302234807446224361310885861624737777285571292478385803452646468651797809714627975813946455859865776558298494131676279566541196070485797380804309616329037763813509199394805165077176588565627412424621914557278795954217417855306217315791964295152588829948509783543979741626355563596588475824405504152636114456886846564773239754735927856934050870845422176397748230301782242796280151043073962667650639059987875266940525847461073730616562933609963918270586622732230655771167384560727914620151102456892673581170026260591304312647506025505494056233702902000903784825104175509231212914956775463650422328387805088610113930498202503746435675012113991274118893906507573865346406584038236829268613096199960518525668234564641205527756173014597228236632688289722491777063766836109592778386242043650121473117566112629574446242958758631942852762952285584651847288059920484156488321747497123735022356043962944029664341475504205545473865619692610281755752078523067847805033102220671489604105273058601142483621926132376216364034863545143124701705032962972339097274942384582988479769885804704301235232294191549457545172403001410556092243189711340658604495750585853171390964884009538065364307351414181663658126423247187506818197334219302542932679859110733309023619987681233940869629625939095052674757217412450498180881375893905259965956509681180046161127231961241341130806107084023226328328065356910279359118482617411700925959470606913314916720901477392455303763649303380892852750299643104713173141338895009452476724411857237155321994035086283404777575337714862843262833045900263069454551408555885305322005138853434105789020295480090813907726220180483410513145949417005044513094225631077475287067235516813634327717268126081843379668077743504078722711984364737166415779711120906160932877140563763124818786946950695025930894184133570694768180298114260638214168731176969531941660337630840210587298278915975253596844056299390312780076203772849292490313855527751457642025059090967700923261467100828797634825634729421767486837978112496826949291199312308790382400714764583552465485812973639238057712103950268763886085193293688883712098393816188711102778394731371521499077838460882058855621216799791779679205738965669808594547446447040911590628292290222126906557858558979286024803128783449744563829127500569754079410545173765191504845883617189322581550101111491290687515460648347463826362922651200954702015978934346087768340971236993452677370107766099106392039610931194618417696737782466007177680825931326239802976587201598142916249640184365615552592695839997728871554897161018874787072277299466429172586775294600673046815792122491477881698101679696961472897240775527273651610265911843392281339230743032701937971887173104691854807031775272311276939055131788050398933204436270462954170653763301822774835813432034019898017232036237047936417281959422718966423121161752614293861591061488254268136965301251230580677017600784403567854989200459525664546742179760528537017005862085680760663217432041231063692545443771100112115091423272943450741427795903374010663788495865872505398102672634002716917376723592611524625312580593732850357797441422650300870207635715736444533195736172101626000950409146598385704288457473363317210871915817072161013692394549934343452746968134557896798242348720937536439641843325739949131931878469946104995458487791586065260628066555517423646234989094836927716452729138433409039818172644291719080235300317319630888757199806780956533788883832914381803449019981486051706903810381319182695018698190144160471523281948360460363934643444558416553108236753696759793207962700476088713638855280794505286859268392948514817327149843354046609307998161438807700732595018149307855495047421376689453743180803133549927470497093394338695603020479880429233701427768692719851899007848345656778506401850295919425480823028276136910544719429772304272678425949244394721110648012661040182330015036093846815400172756736068104035025791130244654613241084684332823936572956256729401487943735102819136460399246867796520753666647405715139724607915475388381368827641795484907609911603635026058219667672037338182116807482805372622091739338548610317810475662578918828323332054771262735104306251006335835262434644354145032816540140507291308693455233767624305360973982708343433514032328530689886440959993631647695374486972225455511519232597259951887602010347079012300345419767157308337516676508640481997107287617142584285162633489498831162870163789260623878269094818426506567150738053637676635974332906288433546798245758236686689204420503295930469600487035440119558160427470757612490193460709070933092327248168989283562078450995886136985334674258946610198060463366066941903145342579547829396508203125259894485257472230228169888333840893134772994343988123334077433778986291466720231952567721679750873072650008086641429658436357849905173727455177146393415544226771331781563068603611137676114428104867793363573511968282982125188541137251461049973429399206603315044804234678011056272939701174983161000502118284355795527204112501302623943253044404504872625261229586878970359503123606142572348241683530273753827296307502426779136557248332071887175549014119764017880975461525458118371446340253264915289236592813936730808309580985189717091118475605370304941740237256755627093704641874112261637818211809581865266140082202367068733154431734841053886408268365237376576183214494987487101019887135557673521229089979315723547082973543503417380254578919631725296912396730434038161724190658627247884521453687202083572143111615633241194589485602967607834878975453622707715208318869813976860301435055437143320281682315344111594865101591671110184318427310265682059577243702929012204471429098520043996921504657154117850119345466172269243382652709325000188943870481958446426053250753261997763392101756236047078887635521401987287174439559806139743655457707131789199057865892906872572307220134685407506021415259898774990826542250690326427208645991479991113507542124988777423140831592646603031131461202889894845328655094302637713572897366761587588085922731930770406202509966546686905733512035292801078584462495276462389155539488339232291034290352756886936322088290050722553817440018419353870882097113347168905377123812796358676079565647443826450824714060627057618437208593722210800772654400662721276711908951404350638212953920691676310045794785739515771787511422781085079877832021634726316042610876817201496092202119385502839555035983242882205471262097219572272895658138263834207765903685723372784063064852540759745739360845583400745425214369407278339704148312013265305861533676452716506509520041365143687737429502460345748522638969805761331411235481579622163473388653371865600815768801245984544640283333581569896630157666673809897134647740632579237719615521336371008631171936807039093212454374051498701560619312169897833270293198454106310168503910313925116617794999493432309733333830013061245944494282316487889869802131882366818310444734948906330300559156135083240590913425499329935029507112874692351814029689347983983010075313013904360692097018076575609688425299081189631439753291635607405042720963167932904755540734289321928907858801606161250062182222469660615885443637455818385702691221576747073531440599569519949485394013130342411968117391589685847723707076608350962648688645258763522445893402434859216706864590886953930062190474910280348862519192627153474246974347744515034693740849580975921944201448495534079908394577003819296584205139982975020207619879868277865733704569807058703219461731003329548677618176225254487712648692895482485435236328021497795885444819527314093005713571373243128011306446248606003244107201281247489682963649201744933206196720644682867433785911842515651308275228450343034216213098110277853789329870752027737185660313883234358265580435078023319364076256413741112721916259102947426885870594752459515264277539182219086728591173680602837107085975972686243449382460774006462824416471628005040774194577568048911509618247906706210004025393239480520703011007479904208507350270780884426751888615996124427983905052048238241005242788486220200079248612114824290622202449842058417017131942680771995028701746612605625978734332185940983130590456814657607911217736194995660408788633120695982274831495342490096051650803084513046636894749014558917494251198662541873032323531504275056612032850886592051949233978877784415908185062767914823809594978430808207722512218913096232914246000236798744461212739888183659842557443381474615630467154410723009531665802903873931681079594720655155945973118204856725774087347940934606129445515417723393069132221596908566946066202898258773709697962510663522381584011286306942552999540610258906759140768372298873755954679654435687268009227082827681780954056829730472371267127095865440268954548399459479298506609062177402017202733749450697819568585254238142024859922365704647943565328933189459591544287379614602846703307534631133683489398393582906200144039280937193515298004708969508980205065939912018034915370916520206100969518645909027720625497955444939405654823856839692860113838235664665577766798225427628412323663024087072997045382122577301852981892206318688564516847363098513090077325278283544967586031227220649725998929672276006747532726878783914477288877501900801810868875087994367441569348534263854900807500465026222129550972545045348311888378792117305102300026386418713943320473541265020934746768188973597999005597404502489136648981205878306312758138990687733946793980297103204390990098463294876932370955143963660582875471592620082416180392821740592554632132173687401131000049998086720267843731865153219146189392022792420639840093396730244638139546107924598084638204923722297643511585730637720419841546855750610454958597313829159077138899701164405257862674884059435572385396627929285923626560355927005005791522274477354807449772789854434182845297231420602628526102513238744143872415109614857790126221166183685046795636470130719446335731188066847507509162578372272355029637700701667010620243443025677783832673700154549489447219403028418166313258484624772189806425398146751474707800936329210455774099507578326688124182383204513161286569536603459831193648305386906055357404058055929679200598984385535599322407691743079310207873242127962058473278741354890705548701730693661485246203761013681294215680797918677581623258666920254713449842627835730356119811406896719577552369394152609421243701821993777834131908131227755149002445604748281834383933571135856928887526680443925623109538429646372142665185893555093358194059239081436355479244755283449302106893651909986166168217132205888768015156313875576239341068608581615678047588215978137737527343576911646042086759906064515556206598610706984287941862377287642784909323500185192787802375800093741012112635191303241692331981206400883599440735185823853764376058645355658836236016428928674970849015842538311692258335209528858068236118228795279679083544413558084865304729336727329491024352505237692775570877688809613640658141782122121132719209745838889353592315626977548554827346088424000037607745132584924844491033738190659917021662891350920632629821608378801564308742255574060173065253779534879837673132598244489174039525064808001315813015630919356561810849836366849661599324762559361685579922700056261513974233513701654167312449781898098511658126052969979297838846437351725596717377239889896712789805696466550229308186549455084531119307540176959144926720347681437753215740056022242563594399442188239290225263339421619093299148608290195809595974053265023696192324065947067687551421520630877540500878619497697835198971956277466607015391518722288132812193234213472101401577806569124661165833985930043317731611737816376486927290433333362688414492648839474156191922195671818076892521687472028886134744889755783613239273226400784880381682283410567886571398344769329660273667638497982903827887831435051387012277437750968726722100749663529316372701796881879371963443066070413817875345665220058943885614400527971266589020884138297033326542422482277104624395201795365579287984852073885243712352658348053501508907279232602613956730911810820162832903276585266361834573463233648522280293231783232993531156466224165034663636531007527918469757882164838511452282328823853603307291616937278814787447180180559061927789240308270178294307096125632985418287616288364964032291560107403096288804664496268700371560578029640929316007691740393770860944932043761638616859466154989645541211125986493468300767816583443246774713651955150064433313944906226324078897246228829619101320676305862950187285868473455315976205639912655200567053645032073307140839618321151733513873656766174118689310433660721405432531566172552700251473307866179856159346497059053705033919295259844606436641267059443847141460336902344138253947685337418815606209910820084260578578173314891136165163336144197916845180372309043853926171938304748031402277302782397496608568614165634071215708343889903922892690250702299052342176788060158355521641185413262203685965311493820744423741981006752911747392773802225028598896607890159524660802271812407109436747610805353770149130296543044715902242446830334833218049628535666592084318477809485403865117784052838318324274251680001063671156102019103284427849062150523729106499233099564999688547316419268892905250783585845207040121772664769070696087362915751603953008769409289318773077055148523999664090406734363622671321385726501351942903801792035077516390628728130933565709988310247579742142045835369484080617628871478967917176850395697527649523205742778442450165769290731428815729010848425287371140330317313866143402306707337298150693090149607540589793278897823482133160729965417804683681943942125325772246083931282989166069894762419013110903582156445363172731839759645055498258677876564037935630273199112835097171396845285599969462944338785918879438811437947315028740552589331835863295548705712397496039526466171302142281066439179076434730100440985510214779076323354382663942974749441117586142396605342159397451423675256651669324377344024829890772372436741352402878049462815315598283065391168015253517481585123727384521848516166810771622853989032809927308821295601888971674396223922541891065220123635190344344114598499690248547166573227541354336594952226011629580005719697368149483184198357690516456167646810901806872197835888112471896853330223784280914656409509645103128951033744033328795504072481582230362184169780997122781955463151204425547179969631566502117573104982278334846480092708730755400653757602654777229545577601292541526904825421515020417168560252816003623358252190304849260461406052342392148920865822076854055512876586965054989803437905442430065226489615096296377245211313792417450631670497054775532950696822666827639219209880612162438466349303749175467934854461093857098535674944722405472493929665189873853389332402161504683555246589273335803097069325444194755642663618767905309305957726775380843258596128879385707310064794165082788385806206758274123601166307265362568632164021731505013894673189374612614520566823319619140821255690486610095822797182592111756901077464269233744963306387869759831278000944146108728674569654132896440575399178224804423829215453191021154945013092457758747691770385660052379616059562363033587752746202729874317227208234944544322208749419378574764822917021427079939046013169662679839549256319798732443327578634839151234397908756015586117358891504713434236863756505376471540674718811454591326594564850168470976705289496562036640723029851897106797515822698082623408205110631862681982216201641039461985772267404097218027477147493732546684967866694556199780159991203720968518823755965245656145205998447359562081975985889538832553646529818519280075736756450599276883773938987446194907083803277813885289153581676956808296949577498309142083470839504190259680766745818296496273105995639629397527904828753161005992527619790225357501700899521508535680353182708699956436340281590579848258995756985638739480983412072160981193390898459434143256565497666663389874146465421248264640984865506881858624016597020032714543790484951388036481102300626701127153617069991141679413614630265262150712414958718502472969953074952995732486588113667456131442525472574637163379718763344773187503142930899223810125895003051134518483525111833556025039877777152369206881920667796789226336965931897457318242860891171593940348660483457908351454934408823517947281061011085699887376711804903119292000653802760896855683134049535207852883566951346029946912748585373214254436788362816512955261362870139195164548189919104460277990761011478904387836239459482720272435456501553934716672206337347154031518657800708690036213156102890068559919975282918846505018293426731455463599125396608239157437196853031251798148941352530704667527694225114939960613875681077030292772965529304502871882012803568751756011764092569806175199610106572636084725744114532392223137873463728326066839850120077487708168411315742462852319584219486877757732166010324852131548594040844568283184649242023549930327980571569389493965508811939940587111236800682136175345324252258503785191259798129741322292892944620615737633762583484360241522665315689030367835400384526037375976139539361563829076613624728148736791851791313156018315555483065804959648147790286698017855734575737446480104173042294559989508028295256421252808224860445651628262603783197160958984689649369302477156876734136198972487237853225367454202489456778532399339579418463530332106001537187020086454854327607946975211070556792012133660800836054650536183839894282503436466063682256954938359519856442113771115636356869428909838268696258905604646052628954071573975473444537581892363074712224795751717142435756068524725078978734841346162032584894525180999956819832529146708216853959206716749598971479871198102125456360418469881151165173990722933017090351187100920908920000879537850872023204404130578525659444353856072779701522609763456538268204474639860394301227839061412787631643984489520129701728520472185357085344512250854091626279137788269318228049091392449264246791256976817463538303710912484937370654339715916019309956969072668119991352232264411341870171867756286290798832622442229925511075191218501004805679092114632309290586607085398956548826230130041964141058303443061595391964700347947575134850991575632672269502962332186455062131022655937314952795630828426553504865766029658391160057081641423335311222826311383234541584618673855820753923035060947632221550971282847081684011134603182566769924189092211212620304825069583444227894892124749543400475341290472999195212646070920521860190858458165323842402572639828501894749926651261107946447384618887353319697531034161677978308081101536360241829504184810851349919911457870166024513451821007467701387677940952885712221993228858357973426014386970912904127385209960312311088175057613657370968880217466069055681582882516775343481797761710346721822486775953733806648461887457836445603069631190390285675666301853713269239167327297695443219370945697015822147437071057404960338960150214972658984623227690113216373723756833016771444516339555969963967637060446470904762573451172134393082258773762203422799495686951878965479380147602422669137144732080079782315097584909716623173163561684282843907031479041937859047172606810672386291292222331345399557084853507573796418890191482960195940601815418115994361690051408372294198155276479084684729186613441337064056274978590956604847506809861861682527892007578353559741076377769211028262857507790308508692650834469416962945796901464781374952977158825794682397096266003089189283430729780248015622036777907960836093641872456037084260899349276365457237318992417591129153852608413610828286030891856496660788529032885730220127496308452119664389935283956059901267007833605061211395686980726873942229602726038907455478009024934982032849218109309254820956053563037362480287272302654036022853528618199059567559463616833955062438905140580179764329490612503240750945071125894586139465216544710410240350261867448366116851954068448390159642384892385599904417135506458708325219309170936317327782092003117049353815211477089151363703315833742503251279392932896377782257793879156633637604834169539945832781514960295843089308307286691300586471402410408435196493438647592737017703691259921197817544834372261522940092238001469647326599054838769285075783911768177170279970145548547103078260749343477575306384304664423193205468687655292060410633313034204814449547177620838587097031798324980306537320563337553021124555974446787522242906906428087830108757553231413596338808155819748264376131959175597700247678986697153302898065857889401173282153004006804039087235855730524101623468710277338118393723447691109316352432929099582704499877435701258481743536607376478593105818982389419802991468682453757757015424723156595052700297486949524646619314432060449061723861143118437663427423466114007703770092934910381992799817938264233237681578122511842815429314475648562073855159444069507923019699228152989197541574889769203829372903972425943140749766079095943395350384908239481688876200884392036034853645976392958481873585725099210537975663677997948392537841247469718855602389047824609879519891060045478815033993303148995096067477505835589875919218905218403409445597047039582929240023857585111762434449948109863068923090207936484245122289970464141018481207041125223130930255569992614081405147620749709616531810072741286875733068889761750036668821558456236676856393797345763595953013213859836782575045144215209672023416052579253164751292006483926374701295335435035615314725829781368982331837201885392241589252111996764340580847370340437856264865375235682474989619320691284195281777534957478102576840165125710215559232034896256826385183765399824133298034269989067754235949282266152900855003486026018493601793461520546931408157693076141193378594325859055508765208620428198201622418053789273880903329608109783510499896087579689571039704828653731650917969845524887331458968568368174075841078856156296860638951100349024880154714975452095629299874966801373510568669625137717721122843070633762560240962346795581927821529467105349894062907251751294896256800842266455340456394112996219765116993691912722270370779478518873069477034552698727551814930103961906030488155385757999283054742601192988412252287749317528873742691392066048507622646637985477360334821706721764125346816731318312244304930838878848352128322787554387220671410252653406776600908949987298015332616867571060540543311244343081343430438851134597494627132671271404008595967383053428856642565922626950075578450432241631326201381449103182638862754869668520389243247852105399489076950667739616320651818189319358884105270955819920782975904642585391443518174632261871707477552300194898553461088097732036997936517556364212284189605616085616172562896620050833347063581012489225921266516408973125783187534250095821323861888846323112168983946872291081778091426809683030934116751550157934385857759890824337175312843512179024707134479996959396719795794406449449592534284334245017717207539783275933820601182847648884730596175479722864186797290237312871012974392138003934619916500315088300816508228895985399953420722576726740854433599917686561633582450862887353055480816885021777066859630736820765144143834930517431159849666275960150555448029763674823975142770839062386427452292154957987690393377937384634059836735904998628663232075099122167542880457004961277898196599101763228823666471480471632189406562901731607049884445043477120139082336450466411785566259957542028103980543320737774122241549003125148172409098250684537501058148590678040857701254528993107297048188524413999036488513676238382024366521404881184766603100855112334599253002892804199769578138395358394858252060959986192687735511260504493494554167081688028088134217841095221888507829069595195231165544298208132214210545940580388281398150750848186362726098601672393184042496848042238068878818500423156777520634527444036125941059263982239924956134072352693525588272144415530586116749649431960422434388699983538305688005729587395424408618774628562342939999531260405540923303618472587054874282696115876988819448787753313767453273922428890037886501510802180035421011516223849252618117287789091441155831818921719161325121644771259254615306032983932618092064747406690528158355970958496774675898621230259794007537905742178395182146475229189638075641103149885399398603606136806833908143638750341827726781126726817152159346820181678529802928169863070002052037288818421635861373539045431801811458617690620161059521792280405499701026235785074712214103861619500007787506792684633191561263569700899403294407310218718460658807467271737036217402058392895094963528818366713692640640786088713878000827438040729657690356306788677586106695718353453319606710561381566880245144498285577532397644335178620637525877247520496748189156651226127722896592092994820530484635492122815495687089210830732755431564101216150675848944853853990463023195661720700414219121017453195606226730417953887616702263867398401388020727979606547461484037849619483108128076654782216881674983970153256593310212213252331757498258533920329093857883665451228999045820958574036645625402669656217714767299179750356738794289014794909431811258589273001859730689401254195691183751422549621936660315056960680027161384581901113816209696637526602573745071774008715549438650971982308418525648248363569760761627029266290606555280359279821688269269844294358526631991273280430478114953197730840846330766475951376392145406432631175852674598385929650374406888731210413242198821954460056009426454579284294040225892960411792305308803620726347164186514203021063419349863979447440000699786969454295253972481950496923338429659188842257603190990667029296708275595643331784126492440533735309313614385304871036598614911982461568920152620514446246519724728706811882004980640608653798191540259710921839701908974104970811572671856544770686832263695776958230059857073616497787843540917680783707658492859083261172473222419144396356688801736550388522011180707962199165077330957814169850899936168006589891456345073163568403055581820342252832926107344381402342031308218420851285746449735457488373016756333707218346730471710429496059466394498464291352029994302270264264246474351489387336353049171690886658353326086147305560262577659450280842363692278534522039827392323385092737593969556486349638176200946917828752463110210028439177858732127471665352082192208279269851924192061424185850981912832232697187998151773316018932825711174198424907868303348656006375467451073085656198040313297703629684231751263312051731130396898031405941116581353028084957519732460751328367519352154258392018057210173159552736269251343119721436776558386208353343179743416634000226777846692811872824000872272691865429182999232369837432436611624289470736240087529254792714618151738161562141792867513853446314463679353720082253436378062365673258318063167752248435157276135248065108412863378077399648395895931700860309898081894123718070632169560691371331945169408921175841108281863015598907847418317929675080726169862403611186269956532829240169825229799602450063060021703457310186442537542315493941524434990671269256137542792246824628053505039422042974889003180055651770369705388241917897902267014605586232445383975952345394707600046927238403251237888325383863811344736301015908999102589519670985868726688127310706449114271788894086303428247886780542115387238532742411958717219746680273325405328522192061519693455565498490413893813559297427489915880220801208946717407042468622338764115434810478971218025887873901443723539974483434828680418588059177999636195487900738986251017401158820564892756919074832606794076788514163580470051827755120616186321441463629359664100683102616752758865932368453864800994151838115928061931059149636700621673326629220378613709344490151963655854796342071649567371686676477509166072984924351356082604798342561161579650130161541556496921362359647624478235345679683998837384700566903469161445891493666700741941957019631667102929630117842477497255002941655759329596088821925935197386332318706726651127333206977640812892815479831966231677099138238535097682704683547157726390682961806403702774527323888695076703733138167715130983940358587807284478701781368890338230672481671435783817976864674986254509718009960762297716636842753773716511495692183663583963857525401035055775721201195266990642179878605445158447133036432473297022340385352918156905328962266627630368581263876091850879691091151536311470360377630970755848350550190052388755221701677304655382481767866637505330000316934307767865937449960981318246421951996209253314350881790622949933715535448713966037038233606636275908474011812998296750523744963440726533243449775062403057508874450388095868467681453678991128817389244954328648109868653035841959530562461593745419803892701650606481314141860438008156361805824909791415165698500913781400334832637310579490082464819069554404773457820426663703536484547294617402124096850514520733147674020236730538000439503741094106849162373985540051420595174327004165939305166892786572541217533306352219522524305265135606127109848209673191277287048432170832800570109964041454416732507431350058180408081158980466553062007015360074104688404841360440524192175910931872553583713746407732963708123661089829854308983499825082446870246474031556809753428745658864379292001943539483277271998243840683706087437359846805723915490975894009385053665695238961789307944866937001153483080617647208741034427245805537630691833821133076219931060246240605932519403163855478774106681317792721095515369759889037830260587707260424952722215309868081190487490840950327619358018565664087407235041410334732547345412183264968920136712057863551634373815262465357409189174114825763067866532576475247621307913866881716028926025475687622718191420850762739615010040167673770490202690482015415488964825932623805627763871978627367508609982910288728804420356801659586675301996080716460388830986460704311215078659020021651726982514561967249009091099273689332618047779721881111235564524353928869662026561356978617690381078647246172371867719211890798781320366115714891759955527967851962445326250709820355213848994937507029793779250182235391932755383456494119895908155374213934065511333070017010898707903368344090661134832319944096932680329163941793787171824855042716317939678609338677991593695624660253555407755822057018883584197323306144179437436443402739102132136467176197157412287977042661310583456653070253722744973028974992414632179077433637424109886987819290903840712862290564903417467370275942664030528772991207255724864046598182272931063207289630368686554342025417112907094843059826012902493094822210848773766455699449372261348065843948992310925052757467732273028734293302746409068997553512156042374143358483058059999611533574556750329213462106556626587655521481936784470866505574978889973800975807222598932086928106220551568581691202834660302439565001350340206384223693259604572400990829888006080345263417387217369045139913857219639185167498547503773476098582131279292598428614087742667763206142008720975561767815602902428521919090690268931206960940656039664160254337307479003047835563663168808846084429080172043062168485425722842833069620142734356711686053447387794152212810545536141712972687901208885307484471833090413379265632686210532754964442071937625932239960548906764205537871215703764004902116164313465170264452821136139923164484968864982770621726778182238179300887116751845810756303483832686604068927304571534368388447896014671505287946930918966272200198667618942851881394886146343025419409253807664871388769692209087467206187405624485186606101559333301911706171538457044589640671779647425163547416012032389278029919450022982067076402877420260962569151712204855353843134753822229394183566708673225775042427070514999005784275036024152554579615528152573822948128147142914658049048298559006176484725211720142515607405989615149408441675901961056598261135765144079267309787441950548943249486121558410962045871799655556384682256978630642137082567431376328448488906184121026548735403957764569321831126587232893714245701107761068551792836201049884561998796671118599311267850527703087211334758281993365040056056164802636329842998080853881997474534057005081329642118350543609331300833768587605443676170890455526166440547786711209848375556892761509025312079955985402303811376448869488491360049645616329870494549852260423754775427737086795121033102794701999624226175255682730040505670159107428042473967649337541509642932435089946828719300229343902110284052410601179165273887353073649073687691583330622311482865507014323038073736575431276958964660403869713446546952912039351637590372992261516410687260259862277440731151937402819037122127902750027667260459823593307902332845758755712726977701355036164602450982991012280752947418835003460074511315090224753098812169968425731304671819977215221331310968996280829439205101853005302339525998031467049729453371567960621005903877610880298090060111061392962110021479936955462070681731063112130162801701488000834682816903454251221262837626297662927312500539704942796022065799130935871017590712043422538084397810025487078089338703039051684198776320054297199246279353561957025516763085068528218734687418615590553290719987013489485534527834756499108242974669391722555343250451073702884659671363422538594606289709346328949804455022104440056342621421717753276069345740423597392893348027808263341291812845861115441863724034860479163144740600044128645047259378242693776493507351675226461079257494436329528271732286118932944856794789259612078340116480441372634421501024102890962217604276852794616486828089427020880185962687479303325397119110286192934598405261727432814161177124361511475127908007279382292005283327640164373364067240325659605783881228977246255230444827929412784738054880689928250803944951184999719331473125385386823093226284591100060316179070637258521867499616650287899571597967836589767807084451504263061120941754641468223082305880539724334722247588635868475112942178374491089631363356237150739224413063067538826908568716180896279975216479905635645030708432423629342299799702852504712110901991989528689430979362304687505411671967166909179696900044097275349091845506588125481156040154498183603277661019308202255370744168453327552351529575626897577224849955251158068401679715891432286547788212934026133314055116420169802079498593839101096299825377960393687567186646413565057336241145808363961433970114856491360812897733569668462844195646896528920672523295106376839495991528188827335810541529450488486573551749692582816638465825014393177126213098078090186309372291915051807776809661496549495258356869260232641176474126274922460577686970368520171020752683853829322698725828714420883345330030767570256382310507292692459420358398924444235061280631275142612588462567864420378182285301703413553703678138061438469156201241049268634796043554625072030992707787389350416669588150039490345604904750887253958400903978020140870193531143821593675048429247283703578460048564002313177969545830677589070261168605074506797096604941651684681666934952699770299912336136471720318999692870884601123733688449015572318712974644596822263826443643840660481098400577247599818554720810952903365333695122721483820033113617817914382536834301641798552095016380368770846438328998527407613330933840960848524369327137277212395043429125419423981728701385752616599800628282019948259342830514410975954679032347174759730378930171880697401798230583989901396051038413742707483689233422228696995951883205594792764028772375592900499155878222751717939594167367688216902731097484401576636399288572045244685619957471880587011020013216319094995317119016368739922947802722606442324909500016970595049302254754706073532525742332774941933578945297251598491201944896713621884403350316593610043532104183548067647913261138344995824986397353249818858094087158726893234487353785609205033236124716922866254704584873698384594633085191750667727429606638982151505680048648339491142865607132976766260829252057887047935505742032576431767504503673467832153909084338781378064598627079911423447548782315049379572472996238248273615119400139389946939240446086625434097886012123365161511436752097036761471655712230442978299288867202319489539637019885309885091424422768224594253894961314915855746859130505644123605566762164548333106290102786416872599076442045016986772126824377427714318726360622823170748014125534041680721974175580118242725732263076638940353132999340502376072470108212298143391056050498322501704806993109027573887659555469696023491577020253851621308987221473205878601190087584629673699326295488019450476169680311568127076877542036331841350423854914210096529886966962316823022507265220073843200050983961310174300719139152472115493602733869396346486504764658632128822393706098424216432174707498644703974067155792682928815516109444162766889141285316902886487449836283963239999078070447400092930545101356851704439741999707496894814781179967541055162014354209837689350265915662068560392851076298917468471622017977522156634803335170898330449278530131033519414747881652148163407807080835959612816552182799631589606106725772337243611747016725907202409950096685721712932601601766693073163082244700930320923940044805481255688296460299563950068133225509344935938285705406181548355205291076635195885169319484358337360148486472968962200734460494301240297806850262175137127716735547376090288590618928839437831237078858959668974893695017767898339053744200948385718022437048095417534049625189758861219193318196290835412838623023584682990065100642099454450951238772195987187728886749097875141552640661496998414979416482433449465611343749474209401597216861119832512955916109059677628780916453687668242362496725423193122808414573233827928839929297246053996689230978061008054355281010242080922725115758625358181569296833136677757589320969364897392461583715696570428185564431139479189493263285272748533340783202599237381696482339292912158893499346762461227319487151899141207838334503439498108799878710243197326129631773741597255033297526518571285522908582744880646004896249307945524394655147460653131511822852931089162138882059887623060748563664965938178568339060989431913680610907979677762622895062846888779238370951091299477553006238852128882576383844001200677870748414397443422325629248834227321301643616261365342400043712438403852227327876723217298875876673411265363769129707937621478470613520233966308731132202933218440168089570610526796762343615525330987964401763870821293511160736749604922379854278680616158298532083381013182544211237064923382549299116786722650233870605938950057663891956103516964597707974388267717349695575723870957164254727705177127999555868274202772994612826445320300140876433091577102009738358655757559155480416581375014933391090912884061397440149952477683684557593109830992448351103448379933673393378880852072897864932292395471114282194564648711614953093156564231383525043999800504083208410381524328866423440682007687029000429680404451544517486547920963277202733245584097460290548990165703779581260808919364336672057824821434086484157525643337383797094312438301085400345011577327948789346293536990170099355090287348637067009804605194648071301993559498020438339696144411828468574585912283934856037771251054004770094531455679102031872946143235859548095407237298854797952282936438055898100906884765081904961549888278694846954693913358105998556861545983689359310182667699153057059617418285535299879746826887371929250109346926341029799116715731650182431360982837049956665163701813758756409900487373527206304943205308836132015122654435990749125447331446539893058466002491005538759628558606300557589868488912318259997703391068406907008827554055118588114630052664109192722352468514089553092018545400606743751775736940962764464421677547846785754542242700435778415115979376434273758862757344301437488410146928254429933544392604215794170244846852097824640653277365420464771397023350092147566955171438165960352927699708769758112476501192275644995567889012907006814486837777115072493683370544007944621043898392487426230942229132880033774014726421884638920515687068937779746586172079071987417718229566792603590219782669713838616393492667631043725127223601024603280311360469628952454523739680072908020996646771424167311676738255410883407994543574942094609042908342501316134662057428994972261600263926368906079780914950120964967323040800234996221790198565974871882079611949915174353614982177599171843113283131266198950238643279396618906815065006837474992825229922162156148603612348893309841755717555250168597175966377934583404045821869127269535530091453282532001671418937877738759487748063611470593170039016452328432896770306797952756958564755609821576639966944815924187492746217994637898004752335620615398029157224021634797393786488293100516126517573584217604442351080715021337924362175873157300502973556715700657314754863298007791819288672477469089585549555395685502581702110429815206521080569554162264001747004784573624510967322292080389480294289433949022964388873845782920138085082514279030010582769464288898124441922369515049393867004314837330929472195533410844471997617435297760939459713707020734795738689439008415362802213702882660197515283824616791766707159784677390396381741203347387122275476197581596513204791060523268655262452123275869717131730399975038818152799982357091577237594464891262841916455545080379200706441643776484663715379325420503611777128174771703075848255715099258734460391126538755190516256519337942926363051578006114525482735310673202459863787537607018843437075389594250493809177619811687728083779618955963986261158893473896339252195526912058132592638626052257643743538201283367495507385790993672847980175684347774493992501845303827918386927195727183049902333007163606754344874890826675424462334284997760915549604932829126909727413542754040578488260755639271350068546532069473700906032739550179084368501613023879839610475690079421802651037858695246777134316735030522498742385826436598313080510201526752787681053566696527823095519761426564236784928505917505385993570344089898865555374241437492941771270993665829571262518043211147923553867797156699822445533234113083938573155100657608772931879903988259919120107740571018710049819714699687387371962419126491029383623007068525126275305853558453266581435180762492351525198607804850859111538407416835431603202546113993789558246168531616330015430699176373051593622636192901668872726668080921751126843405000726095059472539160945700257407171167080040482176125854071439581283619834997734389334720294157892299259082959476827671581760947263256213462504463119815009157297883756209006872765603782094992114415455598150595714108643232527169160670543952581146756407318676542714079235939486855321155582386545302296959042691841686598516616643641162163079231318986878346800062247031317990732111682633833963206306024814499842387424965133661450152859111550917813657000626896413420413639008404045888184607977929163245891345540494094102032398992027431952949084118093694692745822391172939254483801025147321739753184139055825978877290346260047119739169392449466360438497611778875018282034569800336422893292213768623380773703571479084683872081451259043057002251413854610247818869955908114085120956046858901991838753564792944104266166360733619719952344228052556284652879619880221632743681498186777079101857439955573345151068042504731702734436715273155406505881113914194811296666513929258425147977093484791794796565691584012695275628329825630644816632924405934342431873279161347479209276426238701553597489153647996955597362118202710674134919932417323446820080314956565996293246665500356555196527762858795300473799051139628080124833718986132145173003416716664710335011118369135674264242169915253392675454415412746439385202333879614052147421260793244329809404495510306301751033831789428598962297796580294305584077357256839133065387423176158944167855002810146399614763069247777117484671724115601135205068670656124769385890422565389953860542812442944978324616575934365706154026512432630776151877868627917709564103128549801218940508902875205566583525921454535120006163410226520110649962273791872147730500929569286084815770841734543387435221362970294735369611913287404801156118341135090142622572119144279052105246099915933234192175231098671154909197013178057298829902131016911800186868153189832832202232133780108668529836737480771316153667639753652635665150466276977880762236632221743540335665194818453169286385068957969141453552881854049695299236074762509780553602166906024489611280144514183675686629515445691647495071140141531936011270576660480544487471529611538913302406066235743016447268655775660792217755612967141448302671485683049531094069002139328814300300782133814617714711735682935007649825082003436400002283172467087633465188778090623558523650651654622518914390442614027652117472232611278083498477220200188810924334279408942170999976627066172806739751861119703482265197559957965112388686599023296032456181574236650428368654609991033095861574147410004695136451999389003775422536880163104817059787346451266297218203143570833907795735179330950030944360970736041905199490135675260237769009443292421905448158619338689449083386695114055653270477772372939212914011169200991833115977482387809977272747742221655344554117992468713484695989769793681794303356508225042866418395091349638241859612701411382127784912763552803807807021609765843080088766868933848721566673733802057478804184493996822583282186306416616728694675109445602365859552163781827345318340383779299037802596799118314394820466752226643347886412392545755049320490018436994517980751913064682012154592728057339278198568294392819124556431279536207734845675864138306522620557547871734301118693908011290626271837825154750362218512597772007332153390783927616157235186635485267142888886626408387342530973463249978485836268792588413182543439424567145874103263093088819453743137844624423360787344076710627532743995775889149474497293614367998962981206863579408806189679820246372981320060429460836143723392002295487024389484835266110493798317069156495722082048592972996958550636228483793884450407670446414163515578835263929644872458705102159129765314427675279004109677501174024560677273549295657803686933932761878042003290949418326952906604514600918383839367519928679538089403430394997730531073830674616953509490699132205115833526963004932966997912312045606964765039796925559381125999537532515947059940071866007752676419886281168745909037541312411513004849777163254809642723055916842794372338319342908667590056595926296474117948748222334958070274866596414202586370987646257592402226796935160565187529011515719580469192483006975351192640382609350302054505758711624700153478476265548425486562519695232006095835685217243659985449880286992329139277942638750218209958405996557859160742492385108473067528814064370588163749948443009809336900900441438582734762476600132670604601141384960042085893900728880972638154552490122352206339432673270369904109226360660342177947349049927286806402685898001240084680107192670568996275634199440330869854043860020095435187360729679292636491394134831554670598314893660881611613119028833753534346794324633814822009392169360083019054021655097883689729103622393824348376132491580596912624989180504476647646732479080495331284583228069485462871151163716486045970267495184785381155299389580542578032581234068352569816342570448134020428804161677302820479802793631231457717361086806246483049889775184118425905371409687508143983509029875899796012448681644467506165979412117070234015543337262947678709242760451685844295235570696835611540260545353364292416532118509118685920760327876192821448867049985164787798170048898637827140774713027146773326964233829190175894720253567014189105181136689272514671927097176052568616196306746942337714238522559899077117315609897597651623058725611693663867662896177124832118156679962548143775864967842836087686608514048792063549169647001207199095865595120498643974609415502529121546862372532579506316497608300964515911628857234826649224909053399746173504614694915838713784027664734644194685694531278747093149012212591443812971158721086062336321653493661151258975387383270131400608579925752575891274337530444119670059723656146717442965470505151597195675356515329085576454306229624140736990870058035766880896155231233664067927900725833922034288256490908761127777153322817679021867066957246653289045610861573473416425485484008386230001734648718654919482931485263061409994632127630342762510145931630242804351582703279429913401936869249398308954932177246899527463053223534953757359228874327377014789937667384975337479431265693317107106558015600456327977608613276549729777375113703122255775875296627786471181320664296317444457060525933903274862311436023833154366120611926811033750299001518362739888443138901729807667064345230467542480213960879979164703948977412052100300192053627709139142053149248040211180315904796583763894670327000731375129880848397411053509691696669336526387201025219372623330330659826362441905661794519291430852485986573777933886775207545311142706952575575035433591731017560718753324683009951557247547394143795071319280081159937395217446502565967101044221792376395625636435175466821020172847429527633119811518006938580298622681639591982992409384038120537110469657561034853081751096921678288403113576729878040468680791994628171558598442275346477651618564810138648117692862094317688602872304989470706043370358130368137160791713438118280732307040612920948964948926154222667782749151719257031819471972792125647550751689501434359838537214707810084828272732493379357693326516891550019041327492032443442915638952998997289815071327765434407230749435336785836906649147568712433806302275579123288231352947708696170611074898067621564222648879224696883153183172587887607786943731581190198741446968749977674544188378979250390571985698633994773852766089943045992605114225903252303212406988787977618292046640333925599982577918092923878895537796236577181069623654299696785068850526981996877981309199795064910859907648503933033426928113169188378840937274565079109290038643877705718621133487836099470193848422136548667303080025726955528872560670780916488610392430258446867521119502106746372246332779576582566953427475191315691033457934503818956021631607859464578922751199157723233815127413502858849041025909372379340159893863455750523411447087205907140143488018567454983443852944486751758015237936965263519775272536209929928582980594125110964374139761832838198932904697398949542703620298848075060279665609247794158884588902592903485738014562177594344610921384230479090035984059489027577137150067022671314890569423546191145518733927016571536182048670053548497581425688639451775385798756580377178113922476428708416248444013375508735642547175616415731903785338915559012133961183702171152957105459028486410899265063580633072126062496278674750310629469882338189577988810633496338883651875820302675571426425564180120915356781178192268170680130390237901682018635851292285372828149694781894385263290815901492002101762381475346675704173481950514042069631663743604631609603860371538123848380911092361908695646646288484744699095902412745587439381296033732748980551121441228748028549378367974542112311071766455439591455657776801737928026557553537081419821264880590346274360416049881017465439885861054820915179491714059807593966750414107978288981760897499330393164537107829994735870787190659860010450528783320548756500031523943094089133148961582483250286632057364626285844983763050308176571375227734799014589414582122691203310423693388876948640707882277926459640730156254368669238515868668132262054759539848419277999097173049186346309903221962740868366051239136668791807564798290723245055511907660615764246057245250307217037664932540404476892125608634031589807705347859373100256627689021387029103419992753916507838125298577487780902461629294118246340954509635123715037116492442922689623554446174526780191426621696846664235106690269769753573860802004624120181578973782851733634446112972298826338241082613603747351319267516600109269244880394476214395965867735289758045678793692362057896620423288586834649730553218584344102876484302175245109380324563823856630043463098696698754748806705637200710872423780211571638192810633471899201383591236638292112494744873660123627956828797622437270223293576568512717836554222894380214461489579622796987296921100080066380505158329656106320717386829445144666432304189469355725310622742648173065634394963873435277004316311381439442164767097273448323078803439956828391635281756732647732321747373798542033130192186280705171337309179816118695142518839753706037620560783760541831564548377358788785994644358109772360797751770817753915555522244264191263312600980177724493362667548667611115182003641745988299567007229470594050341455437814057310489669211119577552690937835428224075311793047741328444353028404617163044992531802867689959552558857964191732255028401963340609197419616014277359271264806940467174229405343869192678199402803168386688321367326446028248880609191527547412422440464257404589835161566540835174022854785622258698069239831567432100643761849227995339543586197281193206180319597422619538924370939526009551197110850216894457279956696213262660994844623231351514090974343985989846435516471709980139213771021900801944105864236834805589979661852616707521397469487661664795672940709800689522919999838917963807399824347923032539340995390780539814916616013143816226271891347014318563924485083373525244779102195555415042522041366931222914961225331512132394155144055038642556112103345196170007442674236533655098934355703659633903916033951285491551647858879108933484175834630192377280204735553262549351640907021307111982859486142719935253254987621318304084664579627694918892538485771338845467093249047959549519159426090474237283777967448393363801595670594484164697105467691224043833107388717962122747342050827026303150214384800177041801421267598290957973399956431370796759115315215831885051623213966373292342174509889213051714842907503618324020772206303942764516392135514837909153438788145295561761762467597525908332862419258094144679348490676633491286581832894226636570444240217829783662002865644330021580917938327285706559209477732411298014520107088386974453450173334315169651464687217003617202071351083947288016436826609459694906135476382387178271795670210454445164904424909477506771370429305908914355358746294746774650482206327232113943108883852181708998519305755870004079716755363903690599878814422368632578674758298560091975038343601390107559987007637186911502307427111781403880678553327292867005561523935324474303208553193151000295163387095467836528654926288325451216966638100455141653508456485149944940448604040879098837603832328513230210511760055568826501498642464145712577999741522519499843030269162950339360644948295982946035129113515541710753594122860925274126832319337311715893723336793149295548921258931594625771739476629887372016035489567036520340847878435595256623982168002953091309264950124084881001205826202679471002855266408942340637131016822031234543887404800195241439733908913599301135281263653226003294481328646084094711268224057446062544209525473100791975923181321648928217031156893459902002602178134993267474479865158534494845940087199076445507282344002502212558523023582618292167793093130050680242594400683251352861314402361289099750755874977749895726945977138856479643530593135620142352257654469317641818151060490907472501781709044696683985271676157679333403562170637127426217785942123844597500521816552640480141253821384755134148514995741802702718715650609297328050375935998322630061467124003135427242462194264750396764045616965358089121066795908663926883438942434894617147348995234311196696204721418955235681519296500444365577211846659754656099498207325997604394574632027098523056000039225293016898039116463763728579364505058338835171707503449853151619318623556304697099487473988887518822723729178018358398672663038198862540475186310666094977108246642537179860183587013785536032754503983677957032843727072005274167983708213878108747546562977929649231610175770887952244301079737884474010541428013750806136063836762469060811788611266020013166589147032091211292535769236329652754202410200160310680130351317642071266552011019826643333200999470751391565680338352036094809320960432228692214208162306612284309611752944277295140415776419745836133108100765732333033436279894961548902932233472048856477054421147704338713776940006811726593039994005877777030384240219025659969500052160153306792327750020852589234515947390039445084799040883306005763223512423740946462563218939690514916396209783013211417692338290005740824869152048364801252261664901959278362461050805512149780278365063496438066825113369692352082021321524046984790212671351616257304513157447699457455713387848716858818673607053213729267946887378225239587624230401152069871948822651796976043363011857668733765599671614192223953622108533144636816905769851049756406646529705945162322752222635683405231256692635816592869701228356805113387509866327400483111607197826927348945821638855666344152265350755943798966698762661888174945056995246357505150885322488164823681106029877251780554589157356010065148385077748927064629126029659004214150820880089149979619311648024218811048681599295681159315820988490166427806251054876716276181444428912197373755297378940260155767466235669835640987327477417175533810353923964435842344694437312821602816997609974942462443995995296022697138747451195241769095209881149310853503257073872385720145628225599845676926827144902691150832446221623906174978647489424694539335229843806736521998930858688149007500228277357675633586505397165035739614107126759317425905034280370153271061071721694736774487411218097841395538081260082464472294775945984459654817257446532069603681009010029581456433276626891856713558933711369350562702333012423856192110868664578519352034570807377987357449169195055887008161330935672498540422052220550278598168358523740650430277429207549466632153839855555116937530689011094268902178225435638788652384882631424796702594391333578342367012285270724843992453279252958417464058929005477481875861007780374929828929699252032687530118668463615799609111432025434095509392006690935820329211948392335132601241782931391778010306227496675944717463680173143528810043491946914671647959497307333987513573539566259923316380102267359267742776326479982138736164051079204768889291495687302244385559113364572378460488109054037400143060675464806857659130612568900039754061118542083457081571481976448079633241768498323994369839616119967576848725046099303588170421292011420088109242519635202512003176988382009548958017289552004567881591320728017739453360244731597748669156145479401696545893483342054717411555983034368636834104798151182828613683923382081223108662029834851019135910265403540562115851901169992926384942044859936113063781244489507171916559091963776214228004754580331837398930370990165126844486913008717199742946194295181783278451030213368622256422801225759761927482984487666699408510401888082584355967522795063739086517267447068714356542283866987161502699817877059755800417388219509563206827120076463533533951108058093311120972791943137010970302070540323756629898931158651670693190170555834972119270326650499169990801554314305950330320234203161586705636997072202951283717205458474395500796488899109402182035918321891956576180900726953389769444452137466268980761610257295140969103438372743866195543060835213458539227279717670746789942111086083560475535469156806105123623686873469071155831561566032865777905733596013102063937097542684541079235359120096996168635231198037165386603853504967960220735904354345337722506666980777355867881645066164658243897831567883111271273263835705708816316619705392776775544756616461455633750366349116092961744528710588654373068578737446560061478929474426214306874467408959825849139511609522124242990924686726948370806491589600657627491601194472190097573846598779672900845663938369875192009580089965310843874058975401088412009227707397406109837545647019593986702509931669171680889549837690481343429600063395461122486342142236642416994368387157683891538135704909120462563360971011359445872840221222614362351996205179751154483383699741366602674689328225612565040026697799478357619210111685389806106954186293912176042087945990779436884797866582543348123416156582751426801200092350867353160108229479474548119928200428242272183609967441626614250972468437693461225055720899823386529209978733134198121031829540055061516468563391557710533743098569869339412534984674586556186462688403697474807169711793771662118014443819905361996742327555855947939456619707465828630748242087934772845196292694854317908811001460728827998062917171768043706908283617531853465440894961853667601955999906780090921245827348774265055051303437654513241195439480300074943783995337234248436739195010511878821555755782466115636681752960932966880617486045834946267975593022820461439807647888882784351915048804701597625130313773645632698886983005502029441731650184789700937297149783238042290731806807046039421832214918875815946929821533482934499095466289090444701567831797328584430499619545231383344553415552230502754202743772993940210963704620033093979383465437700608331785190108126254360555490861310482625837865334308249104139364850825701223407338594690099699523084655447651739655910731889095992535051340703299513018818548736590022823262996274098028948608959556100012517683253025050884366843094890586481270736921888841624235105326035539815587258393511435767554188350009328046028628085703995866405350970095313424954873296316691126831588605226871566005063067066606938973855177438016885843062303114576118665512261967345654322516095882628606994641694621969102018102906340924214127224431808265412009250730475035845086930317198716260667614161780843042210443079343825104950413666586754038050223087190931804624075111928297040559644174861421832336475481418262243157351261245380993378729914394140328687689508262529427772562806902952738925555962407304436001780527070165973672370556694210130775561312668921570877354622993478385177489632242343278999801089758328641979113556628439844074204502842317683090981080535080385329552540525716619634844463221427890349588532546588127262128558167030911799203242706437179249791241112686465002973447724783334675601107062703353044906498758332841303273896333240888671430583798285097019325072425712794043206102115790256799943811250006083065589001111566607898984265640778622949604846969869425079184890053097960941854381022738341359381126885959869067493293145166926410430405231887099132903257907249694059715780291148931388873071737969991146569101734044402555344943243955999903691391767687946865088261030600648168560637404651257978206577457416623962864242389352525677462576875360750387128623139039077390328061696535966999093367621560824558989310155157112725341875931107013417408989347525720143306511386573244096225322160064284324856234017295933939325798452728063616641523908877458087354324349912409216856488623005323943591090393610485308619258042831200995237234404832481659395698004229317006270382285042824149578581635572550172294131576057371480704287696714731367065791316267014621947026614805190139198429806300847849054013631976259736756574716894012985029758186048651865696903098948701908645486331263445228294682316791476055913670984406931858380337820275725940305839792731251568401064402302393274640649158129263247850649464832539319051964197601979764977705821564588527427930030449782437756145026042099310085580113413286758003081714515889458705284566340326072478355652817267603556752193256148196679184889027966577069047051296098270499198777191734081805196709017019050813840160186348133925802437325104800567781347280619160939544195331295223637072398520760927591298397331578554926510853966477483751966075389787339152896488937267593020626383728739040824416262246924716592318868208654302628420770078660447356094032861221945394815779769324800029561374787517552968403136153286983020141422069336310810221167249835844547568627791356267996489701920346156679027300122605699824612458987954035187917187336017689012145724799566928632991371073283831878482522663999283276587335193737372952338813560187108227308888285703842702985969568737028291732567790129123279222059130505859948588947175707801097301145183828827808072684451543064231927362004501504500356264821217785676876447379547544366134816254125715616809232736394130670705331255051884125872122942722165927855695849598591255982183427987746273116674286756849940742504040932486243621738203469532568749267812945982338959605119325951278660894329356891763478228072492435072482198794102280301852395344204969021369607087852027688046046926533096636422682074801060675327623499874530349719833600176996821171416390343897059864357606347049693383200672991396784741835098181225830555075607589306031299819001559440108997512100479536636462766040765234401370903774209038996784664850014327652200113618356590439440813604276358390385141009343913052406701030612698263451783838859990160013399880608532675585745692341228356044298734278465483009413231379597073647032727793292928969055952708087327394784442620267247497550062000158130592845582915150585582137069515874936608137542917410927047132033183550873017611436276364586521644950606972212364583363483146773016364065057309529177510514774809969135494752377043869594586186407222373335676251355603337065495553689408724167144906783231544371331300288333743820014865975242612850300411318076235005128558263654231285902135590293208091505275881429564929807086967075011721221037518975219567123674444318152676296337325194907506707466169071117861707501044684740899627998718659418212673106335171806010851223468439282496725466265157044520784018426721698121968796803887558433149394792645065222630101405904231167571661278285876227029438062049824426465270120579153864536237000326769432704524725028221943181348073595561795264073169616417039519167639654129107136375691461883512504699789581271990184264706420481319796814980394499610378145571911200503516539501773930133167365002719312719152841450900380796730642876701600815623073736847176300355794392579652661937495425225710252040780429655650557523612461828159006490952065668886909133220270923447916206212383231052454386851547625430071674818299493325656312253928462683861788259516930640661975220904102464662099412575336298094836776901055751990012682290105752621315555223709761954782098953805075438435921718855418935952665348240317205410937722477988597901172855504761755510958045687358289617795884796488616691530634830251229432187285882203408474063641901835965171257697287139416661403790016430484883181134745712245546958000588329626918812574806566932990656564316643735191720853130131423841520673571716554583196564114394953865995061521640428932273998882179240574250037591244248267683120087383244682249540337530015680872547140831111603723565465719122592586984619006070897746967300111186052579500862394056110953273794242091406884289747650821587438722990076004088424281670408969385841524856628122655188726201230796691015252407738693884451669045485134663088842113955398727001124921982608002599664576131618660657411851005743065928938635343274560483763224544959550058931058862328853360946130860615231461126999082450047888406617934836533593911972780157684656978987877377412668345897667058175336563469578734771216180103675832902304118607341978477224386493427874442389089862966127816734449657126013155281661553411657309150846250719855876209363938168898064067632956768026000856606692897660369408195779111605060278876493615051380907329434071784924955748563038679630115705044032264284622646028630845540124291615826924828084400991419497873428017499018016193951979520881437266026846923005306597196794936815507104630285066877567155684618040794655700950629101580214415968206577074249415844982259950396279226183639806028568475935030668885273077687058411425577318939188949970198527446740655276765277081439279917491730829996751217909074648566106189451350128702654494282758362101961672835611137754821421097262397544049420955887422571288304801652121484845702575578218357338248610154874361634783397656792927271486563055305483960982716251887776222377123701500416004842672235424519839390990007906690814589754236031520628215075772648777709190917913102269504295571239264756255545435235497957277336351853806110146915405419295562634127143106311735116803252697242397391169545786294828979851523296961098061419392709339626759977235898631056419061097442760187011485502494679328668301721598533977154098291758053411826123391562466827900775405077064427174636765813619251412045465486547914975906338255807157151394649697107072209663584790278001824380369077041400172364419295044281970687731274925212504579159026092027171281771782269997128403573255994105100620361901092710125738875707193302023686356211944177972412068025179347236783067970999880170421331447105319260792199081967653505407439196395957780113531546446193916039359259283594315455356295727102818911452835917369219943313988976647417451232626992363216340836480803848114558730260837076016726279242582894013637187560988444869405589529733071502530717117348474119963824066701759588675252663871902192842077520772753254569528272865988143674224363223731819550952049895486514407645120056175705494425245904071055641016647625351540625192265128987662579639610482703915056027609168811665306843196543767271460397690344420821442522943325454652768465221161365717137132681762215615043166609832526586946547035521088718026254399597691805785227083955397503367183503161624251327631503492597673235732375748318110872050385301848741424610888362225292486295138922106809513362659827903741912819662368634578967374513727204466942230954947354665363771936710476518460205475148836281350776647588061951284975151530160123696242538450928441423215768461755266997633859607689139009131737264822919914284861334841555235419086019587343406149703429409895290842907717937533736919190193844297935431550778255454067066017252531061825408518150171531135233883836745247983525922531374901949196798841445490256704348369994638775960955451533973814156477706795147770211706433259882273268267365952216962984736107713807235823860681820114198744310782536706588405805084358900998554455510717917573226916427680532746847993516167550135504305863168005091061926172450869564987268216447975702769781335771114298151186858652075092814820338360126141979831923063622993204720702430717634414563188811480615292361226149739229537706796391205912923274091385659727226096296666850039231930190745942412494234808151892228943547663614873005982640066822688313524905369149360434564239417312616741984170127948376528310768154565514917913900019385396686086557352424976841458429438997839066007353941641080724467300811481813798409030000448513792751653035200748154703257117416686283828833211977382026775946776797242271844539168136214032480420785877255792409932514196873681796792193698264579042792821963000892595240520952831824728174985598301769270355797514016085989195215524734623395318120618282004356134405351351637205652663605362554056645888988536321575603155054507137622825077559122692295634180050629002335677809715918144225659625820882046974057128642549732448169345333830620189701211702155641587370368850443501772435657427169515625744166816554211552475393008777234352018760059161083586236082877036539549442013835112549433305374827253255888256235926959985502451231931776296131632475662167133233072517124651034626092688502859136375220429028795484888007027982758187675045421123446310635128900302276434019559665869592188451637665840503979152515010220425907062699161379921219070233204679948114740843151757088191688029446459486273679459162789535305105904542556802376699465879398011246563774060410350905073489378786904100323094779530108008905299510946235621283909767212536954521582270629813736183746989068182478756532717086516232982708612610541124989926414614391596724869374702091385826728853477826312802459186603050729009870966282711670137056132368204977558654520841969006349802882653110271603823993157018921086530269144176524111075174024725873827043315791103446723020719048066589021325037223030281905782700295545122404125441724230854368111078642965669035469258411243025947422645398732224352200155228104394847508194322351321877084834599583940745102919668390344643554534744157429208380264092928101168480524254355831965019621656459903714584951479802857744119500636927315159650396074599547101119052916323275707880025583546041220560626769096001413176984254026152288901824819637875474325454587303221302038404664473089321914832859993483299323695586786874668813114940210263957162721430781473439832715006888104984134227889363880869398013083439309186225462773715686536474826153704143216519872589344160213330069420594363124572438724697102902562274516024718975648187808018619161507423756022555452459235752622958986819806116400497867177042246356240118156935386264955277298435939806965707959542264292852158048840445961936900364193516666222362904127479588535781909564364978681034573271043869129815042632376756822289256587310636869514728234714874139142082672752159810958730293162918539500597958352927493824186524387820577625674926385928873451318352654974227955732143509967398776475083906939093441571209938466062043386491967361428592965867855339827129789416860736606232911299055582633110105679856881185916510301287567966144429019336100886117483528466422465499003844847078315710208039844983237227435322876228659786599553651518510347102785355576420228649798969840105047484918079598194985343251648742779139564979906147266311958675894045145760580282349503019865185159130274359163741546978167941488081795933863351133465974165852388102852340175273143413024173620020446296133048413427730782540602473768272186876433860313157220862881965423655669905479804105897892172777401887829013945964737711001587060986012689066096962029846319468044850857874007778112184151186799860339130864311808384836105617398668115026168416277205270494888431359454611877542397805826679292034058754339839346579924959631834057991801246119820262222653525044928280346435273681752969585125322327867269869265598815939463799380295434344802947428262621714025104037547595050477450875504007051956386875437094029546976034561087261722785863927476702041872411318090910634320144991534103762383571323998540173152546159763872792707888369235722267542675364990598227343045828029461561082839427366558638782147006736428582210392163136804040156282334887445030883023505946505876405156738660692923777410504437795182765114689996127424174112001478370972373822418330874344094247594840659151935514971364951177497249373915131571074203514544374571666842823821157658833993760786538312702090436729498429209535683328894416212426650275997520458553441447459624198347879953686597304573419980331314594990446406965590024169552558089122265333659603318413400349532755948329840046477912999389173581995621301887177122426426771792778466062638684350454339497859901035518604436743081451846093462891400087373024448196092893138781965426272910656820382161497990943154260183709175048139507728567899360563226294635982000056863981107209419255355438984650933830972549655670412288349281456048102192531433871548608649960529019359388731910883164344247679264195298557219945509687095785583359384688146012314468217696480118411891135699695332031974912014000546240398956848286079872314926903814060750967578635251324014106733563879886577152024604140445812600395125757884129985785798428323433875319555350861741295358820928948959492968891648686511215130320067800527798728341571149023301440919680123058396600115627773110734236544850182505981356181270105148638425751084993860532867796395140719091559452765956630065749040175320036555985316182591722049098513379836652158577721988123859852348861155369803805118460915552421636609263231602508928653656787430357280285603583053654350930205595366989981503306785325418632012477150003963870426403310390231539711899169786776680524081003580381795179034068793796011851866523450695222655873950987073718260159481627649583069751652482626598938102645664026167436254720605542841458801915869995869312870073017018610501366624771831260770780129831366665842736157720113891243575301863532619050804380567826586901328524836588039992750656497459411561266633211387260283970506189427682442259676709787410942405061460848447163971907516341338497383453299938108039226962086311798120545142260357069707478885553796055515884970857401879341718822461039345080006083245646530425321305278269284849976889491404470799597800463639822391974954350260652728426812092036623000413845483120722148713257789005572932044869322149738782283387239771517001182737747407743125973034059893232858337497136698081488408436971129567979012020473965789053548813555116915393967310156212215983781615482187597202338924142306674045734485704830112442937462675544052764835894893006638547156822214165178494801279092881773615154474715070653536205468443868515057140441461809923675840078042393114163322270774285776838359678462006000401912612063535866807834303008801863913833970675275916300838081714952830648617416853536459415601192358399881584754366423338289409335140572731678605589112659796419017158360113162414940068744983542460654851118684825619823097974462793203709912869023529750765756393756833966749491940978756774620338663463364959426107813786541551292106592439724241619149723412578401924865769734346937043060015739387342372749695272564298637767230391133251984301611721718594061523522696580212316990458107370328529176802977049761835645262572612110625207530852135397637761363798179755822758933331111224791208285617275176564643640289587467573198523265026143005704611520604730950131241202286384557993545002667138765286713035313338233603561358559798295230559554846031234749396012748524587610358621782609848393151001976231727112383601587231650461158236499733462333061435416882734826726482187355712974949672592694038115088657214810975442909307016255825509763506680365793619413001963866160777562488193334480125388561528310720381820586976380959183458646814473681482931295566870822339610356425031741662005763583547421649095504712121366057132485230603031310116127681482190956080725682479928239070461255298289354931500157934292325963574057022280563397531881897839070749802640797117307267934018064013623693907061236528894621024516633458338815832484113864829227318350546262436879109067569808398305399383271227726918139943090052729777904440273115097475838042018731755039221459119922078993220829738284305995199105667636727581534173846296356549414662695529781302983767058991260974481994863424193598266539857611634097515074394568622635532044423114468472873298340600827833951627154521442626602171210639222817816107049419558087517240720429145402928423074513494089941812510633909580248690474970254427732850694584002754665691974405963408486062839640155113532499882674578910206682790228793283401038232400018935653864836644098021481020834375574919346825516018294402644644715041377375557967424384542046226418167498411670173867277758716588820920540775618744832545018253457457136625312252324516256803342270734633251240370691955910599446849794127085050611708902139231776373220890015487298977279736674898932555189559730426495717605010345376878817768273649406361456068018469097006077827224397401538074536685005053452074233959441921708049122312337164982728289680886243489873875696844999108184933533245940654472150345251777259707415548422046508722366840295551388971922311201275954745431598747722828285402004827865598271363858172163817440935473992539843278511516681639847716646049216312949472303602950820245887401378679127098369509611122044391797150654832703301870070515959125439741325649681035088795616014844176332441501438490873025356716314641353768565550782513941779182321713802655763227035068825358475640869735246868997267421808433169637291941429387669573943751952106544182268794997797307933558413637519867467894336872625931054588349765993477407432944437791596157908051989852023219889068248326927726756888030188834219698948763796858421215124188858996095193762582729077198395456364476783714318724656618118728343951843279355638266596115725443732518915060460646937913338993790285987005532640594960112275998491745353971482173362489941947903705682136735539571011023358007892790245945553027608624694868578403395861409530366710564064327296610439414326347647673586228891155604338119708331487440744403050781431216417431645729808290245299637066771590137184803264796421185861000726214875438734223165211670775000215598193876348842854662983309979920471269621487484182749565643595165658150363965651371630476736311006044112116650215820273893981235249928910633990354849054978584457821277107969658815120673074299933286289345774943949655544584292889597694851156895810425532209993880960449010841219410813300062350513646911890917110566329898092430200050037117422978694518676684852203475627350745515317717564298792253986248843850427549136529008616510301211437849372086177565962353582725485956053421992471483092014486683345980222993535242386703816960351313305249770794926932851368996513234998267633716968899206481043680991854029916980867826776931455864903741881130261106571874715648307829495121257888512718232724166680813493113506632680403950185183737069446485842005555113102647147919314222594159029319317794933469966488410518095895923390812329175723491536768242219787231764258188730399161333958076686241364975600805840053613701510278512018136159008446515063397961321385420490331540112611232529269681854645355082755713380774646911284165839087033223684706880497478772733875053045676830062382719341794366829511449117886274586983151453223617426565623192080743211907861827172117811021229296860569433440573807879714791502788228208207383075762919124056040202517231466130049663467472593622908326366969184308424127531099959740132045651676054020793024247014091740369957651614232259679968110418095371539008842340316158181537493673330735305118399748066518524913256593313756781863380647816584971543129385241433822616372390162799057123583713136331099749268558411518154317459250805519523031644838937671046398521325741567982333330292854995898318674812935693264091549280171857567348063196505907880601661857669295462559620379677323232758499625172639532975744441252909110375608026975312742923722789617031000688169873048302078979813211109585470622694622621292988379220788356055434214287964378270635218595437547509571639768869914834997704990837413470286519118590201611384345328173462020618952698445823185125854497460422704101346096083596332515090206189618927633233954764523726295916553077260615618497224624980223970345735482402351100111419674097150441159555085202619698071744207408977740727047638627780942580904278800904171639195256538969965560882680870914566669580972484569665779738205190670939501656242941208681467751443758351498918166017415275784978761738955249714909076324345857274393771784835576251649266337120384139415376532460222005908687031746819696763214826998888404205020440728216700564656551074871605030978337944603053052875191988686828020789554342309465175107968748936352014430053062183730447283324595831797784805191692175904502274440170286593225912337227835692418344130187455461223121245857566194947083678825280023923952222000506767832715842140293380520850491491880773025785504299837615617893452769220601942142797233979036750221497415047052096290298418218423926356960238110183924577867827802868061410608569591720943248131675557991282462012219131996629897329736550288599941289647662669496553928363572486350985270418900357370436280309698737479931379918626592875014876747328370499782814563148086401084132501698765653345828443894488009310421713210382451304738291081933323990316398573323992341540372566554346062706429951372044350885769181058574014423142314490936979571061772022672260211263310537709059456225619254980246410811397419344032279188994222471206058965547444458284984847777255441101882677454354304790415290228786238696678834458625403164854745779495922404961446102731623955909839442146993663208521272776732994042646199503718018159447582959336272651477333185879113838979051674402166356948713238936018177663626671922901376182056218453253480776217157937955524578253655624598241799490548807237014275034925215172603917477588440326481099531415754370492407569331091072363274003401292253983454641753982723115485339754186320571436222167126428239364194569478423055759133992739658032729256535559284656903289557385396886813986969370324127213899498331054817102318854640673132704381036687218114361301101247894154290965244394968057612717889765222311706714524279444987033664078130746263068038206474743663456386777868703786474492751205339921888637631264208632095586810695152360061247276026774869682518300463457841422523106920931533372540677746509372136698091888615232597432148755212299199019924664340822744515544844030165838668318292840505275575390758990820353143897417108212612173110471144283279025420047436678584366303315778439757048291887720156936364249130369752192524528720922707850579040582508262760448649368780515228140344098315427529830646365559509171843374703166094028497430430305493701108512075833975836662438172617410860919035249256431236483742878131116337560634112304506699651102669757538215235779172963316625569017370715017751828208392593716116496907989823540851238087770917614058265759755120614538125471710774142906943848127698832838997905852031116006477560631784833032651611429035061978609213109429720121456143378930263818284308894100498039930581316220660572086501965915766385932017128635126062789618059932669939040971170974944423896825922941986576884240507329306695139394940512343341717851790376510159404306849587984547862246648066244941245913459427404672838630881882771026380581943464875914580937908904567235076353574286513232626162551234866794804137462537567777637137704555259513308133597616056401462415425038431904573472510588221669557227079634277264658314800391929788068581348621718457251568194098731112730796384453983080914785586328442283219321222725354416244168250330433329573855199491795847590983445986115277612580661453974182134279040277473328522609095020740674631547700929953743415734649740760466824515242296942384369384127000969423788311066469876595885014331484788580812014118841164264222313883341712464588870869368929741691047844158161405349954788598068233367779266611702512459216183252746396336010335623841518316677632072773518425679653582294971725906265687182087393583611113750221598761630177536885446247703353306679558715039611026034054936164513382170145015947072946504129969379759984865549772537340621892351069520666313579212852782590561490929076075023847194316750757917104943185317279490440192095580721447408923237088878049052287227438231657856346135573210410491935387818454872670274530045766053216267602028948835026013930207791662871622447364915860130987150794366237154084730151370738148727045839330428178976711700379328955509014749597753795398175343360174365862291965562330265612528557296893982700151625329298882780700807034631141079079521218337395081216672292543731876324755703837503625753368324882856588075880177099733908320515145140776053098597929710168881731552548307997202909698047553098799354496595775052747405270164760183432233842278781509744914018432591339250537707189357002536120618810639413438417596185845228035342290087567180027785570635804372750585639358569945662010795346793032099524873226870861330116021293899969435530613739944007830705154847957181427064945544310994970900082215564144629228401004174521910548876448569727729706189584582334115393560266000460084972173045119300641287842158516668823328318022666785363848584761190078304783507411072771390147426383149422376615707979254323278867748189838702275030229497305895814871917349162878928670534610516744056511556145138881902495701184336942756744902086169904987422642664359314085176054707256232886564218320850383231683623210065526124188263725645450657875324838182468315432579603003561761095845419399401708831548304863168576672952541063823251817945636459581501806369322345951046975277198214983437203694397412205441109627673189365473467557382048450641502817355956182394781754796692097413676575891899166403768455894002423758356058444276984750624300122850446134273045698851480104910491515992486909357109583413375167994699256712676806173929643341807706067057687669682722496525379363481215448204464542813023622456276434783184809567621213386214532206307353802842997378012661708392410821735764584447818767682228109941740428572847152185825990271534417785253640938639372612472269888882537566640967594998561589339757215807513416014654972083331090247232402190481109191890769989469629391727025518279585719302343254014581697746846227886558761645638320277545261202250073587645856306651113973577896703016964642504283579407139178721685766388586764503950881285064220899567164995555058887519505091282469378082727580961635143639301439026921042520843103630977952523444106049559929122461358963478095289722669297157240420408878190972971716562687596662193272526732443837480899795381749584672219950122500669774842779742680500501806498040757657685332912769921330897725851441743474627904955889934104110130275525144332787850625656404320637099860374248951280710852931470817784946615485653017270332533014728633041282098570966094755132482191289624343537262583506279189935645020632423087664991864431248245710873034430136038773841147320950816817962165498954232400441236388457359463353364239618552614999616052109100963117954289429811220736504528745907727640751404376591339259207001618734250368263954501935352823660440355720855031708892013784267518750820982104302242315972520014903258373112654065541908015612647020019206102883946974495211322913338475142695039130325143629402890185560860945621614540501231395187098063633430664063012329040453824596786705736118567273149678716380013210410926021434239957959761547960821237147189903747035386885008409043017055955606089060547430555527952009637770173644946962972158697468534297560141882891328214471441661082349546560570943030723718037677035663969766967760305951840567280966490610233257143751110855309261346349642553416288560847686788419431199675794174564217958408903716581999797126572058919875283738878390172265561411188276200750901934926840505266172819499361392707470588177989558843355460464360201740832943097112911357683718155828866943394638706312208089855228617433966125069709661685772332011319200319443957877177114319824309293624157684724133213397258665002010639320346116501994073585699160336443623705685967046371109109875388567214051284622469619967708353274612200034352113214188793311817586514404725211466912744448019755429738310993156682659976199637388665069667188945498376839592147153345687298324549335661262594171723512619189226724936346129210963715257477212950963704976052985154684538000265062180604261904433472273512325037436097431002204756962671340098348976755356063771641143774125433850470188728144798904949053133028004049255121386685687490277905967531556542404996650452899518820504694927637688849530329184401999503939030493336727124872252320571356073076082962019205906354259296604444809205685637949351732776033760814983897059733269756249818944124402337715281524466887021028517452487141301724225019669073843460256001129158454520027901115791962338389243874421017679396078205533418519071001142848211570647627007000147024993612102319097467591959074276320922723348522082961194496964619736348827615574032545375100844901431110660709781603940951602975898458860387587148682457483430222900709059238479994752608067971658188943236917758030181037363139137659853774157415163976233071893732254516692817391372971984758299457789393097946408444379626524550570960229728064449208882928719780924328981224955592984545740685174660376916190230449351877436373201911757196987435792330937858885352386902276775137286224232556631891065872967660654110289318492362442502960380919169862851197642319155996770394858439772693317438517638466209329312210445235542892050177060530536115747126837965965216235359939727993203812238844887465219316772061143117097403001546068813195889157093922578557986039939759071044438373156158932802456082341339569155752658582879362774866105602715204849295468858053780646755242618758456724061807156007730667861245752915900227304565808942562221973108820329601126716173323875259814396500318108642417435536484543609280923240886098609916035537348679945334670654867665586878952170948293850910411778263970486214630812361711796348045974859361870627577728489332442742131003452735928265660870994000107417111999093198973334016063053713174091656723772476356227978942303418854872653945317928762737945161939088915062559220875411725794111182530143457538469636722492823215779187273613802018079221194543690743087315194170932659854795314238036241864213585122898506650450188803182643605762857944094291170470838487515975387322203525474593791694418382809791106541202235351276999962114459217189513331122112902196369320057792536677863015145595925200625856603538277763729011327397619816093350505252417438913894433064429088194899295984198864812861819100147307369606271700088082821547542220515910192752475912420351407917420056896038020960135651297508862783511685923861436550435445163608016180282633014505266220126432709477464950483785053559921773668309507592419566202551679341319188411181857606868398244921417998717771839391608864218601308916007318733392264067087357511898608641673424552119958655733005478168294119473818821647088952914884017172949041036623315901382196255815500576841400291478378732833652213610339844668684727844187912811965721780313237412808918043395102232152500640232431845449059519167053662301965043775598808418735239080190231184037237457642333022364480598257576952300472941914658439120771776816742186752885616771660734195722741862579170400481512269013231888497308389878560200679829223611015791671718583447904215590491509614439651033924807555975578216739525374931120476471053320847307116439982094365162761990276663092415918036751665488204031931375223065928976216659962232052270097448410813832831981797008235321946018402625835355597707360686376655316047699208083713278199800437789049662503609526124724888499935903793913253389018175751937936180276792616068950978106561945719896641851726913256927211506738159942932519626495512154662461255495681016471784315299174930185778285366222613653626298807868010740846631366104656883555189968651293187797547548768158630662265523959836661450962259468607558752758975285460686079257219080228851322919113364652925786468991444278441891835986935715380163324174523798675665732927012314696163832641084042385564002266733362744231633118568686461512791519700962721731035933187271113655267072613985095469058700564237669210906566667281964209923998202444019554942010101173681995973240121176358633819822551776088144525388851308380989336891581417543333309727946267091956000678903457327720974470839995958522171882321885670937396018682895559563544837898772839586004625092118997260799818208972652692717756331442906472661451215728492176215402494711149834363287167583807300295132529835492295170485189588134306547181747218227059718294841508784120124386926681068596446235653381455555188768869293126385364410473929050076663817186573925196055803156900014421299644518198027674417948787671432121557650164560674702054429189812486997889361060474224748208710611051014852809944630870695992422659933705965691830998729394701269440437483877216394256823462813342318978233082167764410554623481445759150272654538148253955342127426797429287290574267767265905153719585268085054847688093298935211252485804285986194915379558135510281475892798066707947182103894661713180593541385596915157340907364256998392941583780969149927487900487130876339129273412188782269882316720548112849447163307227772777788333466974028262604487767679661380627360995598073646338211156466661917766069336693440513584358148318944948705802649022884423527322417025357258765356109558212335318531628250750343481440268976378026749123616232807078571608472779625698187985296512445904932230136043205978682947880886708254124651580408747179602011696851146709300629623780137834978022782833523472628016174813194714999360224794769624145048765215665757731483073270082758630030181939125358816426287222688632406708659489636440947575920346777689295077647420801420674343637626725768285296806735309204053019945375485428936397964290463593730109627226506454361677626075679002836272576917741231888041383521033580836723689489377251725115658159377206117068292660180129296112084240682415609316716921119606615727213794175619847760382886613167426913945242132654947788616732434161036584272812854671713822693227942342057552454257517738220387066374320192066968470511651154629907594943643513274390108214489342531013494006183049144556256034904961262058357041623944571803341128915695954047281448705208081762669926381230459754381564910381425475298270174658029485904043708144338099298632070367148450213476392910024044811669630852447198933821981733200634274041567879798042184082709856491457593504650599928113914875207979931889071506862772422222588015872303195797172457199197923481997635405633944950421817399645851460538830704081968218344862235846866697818671086116317381208943381468221369074762744483936309447311208572606139621939950683748870596511364046888259087738359920724550427328950101085284710861230151596470937079043670499736306674442715057729786669661057260846840493740761986308745533717212935951025099303895371995751368769743977270059433737066914485988154711781256680391584978634734360555444808490782729531295086843989211573270090885080021790992621967520500948659567084927011849920384664841109981044456416276840371178395428816207637635203889709448890984117705750454217383543306693366986044431081673794300022791244455413649040832425574628398802996329213112557535051178623593033744473699819557718460141143907127834730332537136101180816673649885680732795191616385382368403078204162179686243782909003862121996162369348768120520171885522998085536976584654525506824102102624271575096320713864858117463290760815091285020197685043559008472489057316955037614604142540914327699888254175779069079240313482697751130351044403608269944502921791087350371759244599605195260381250426262756954361433794720589732608841563493840946821751904485324228001479654177123761271748562835338437750740279170903653163644263323089667651788045364825210750102056970818388120293055543135912570357750001759496746653082510305312346785360820578032737673896198139729530436869296251738290095249047953889623284358278746106555175519100430682251725889044656647385000525313263676925918337083508116428968778315381595928711920657226750091957744057834683310942947483557831194463137846903121931830263120038486739740512561736053312091663273213052309996187919475910911162600605326794873935454903699200501490732711843600508504699115085473482916876812705069275380930266076788123230958644836170165246035811056059025963681163774055181631848484186123449237444655639656847255385225505862150499102197374578361587680654477904192930270523378481401551807051064110165445637857336948443241165543864443649212566898451183065738507272307380480306029068719059991788950907565692463317383358474790365011083787567735394303072379813088213826253893616437501317910180198854087407269616264540399995421429555831626743234785489713641174775240557367828991523172476026513609845909988267208541940427346855316666918252376510267210889624373822043039494134148560992367869573966242692365768785041435612527657664777760910977668830307528948987973665784969088433992430395458900187351247911259160005474594575753504106140469679225564976627532283853461174522721107432907224966305724597237276038642020618607667521646959080508448148947151223067397023931609609520213958829609221392002797997332696651716326848162265221764517845565686888103471571327465978297716346885693782297001658803198815011539749286573392023425393729430762249593193684604650580800568764922030348789016322304476246576212213242761950723515080698776269142638629448832412531915087569275651041818388884390305853146218475296605264811738177983662508564753719508375164599281542064274142582093952812338364332450802525982707588654139015804485693797449328262012490693785617131793669077852895631247698625953330305909495165549159637088891820036400128504421631647963148845820423661495986033651916380465802173739240049922583767253118671942278849015712924123839748174169320407334789970962825956111866196908068168641627153776583690949591301009308869424963218148768157308665110538531680882495915860251857439209426808695839014781052494731475141336692814176038946034068531270573432390961531529003844691994196227148411317790870099355528053540263675903065108683057099582504151563383532477764208572885954797413040263654585692555588033279861812833745994409304329845652970342157328714479574712991037918598099319127664795796697440975063910461485645478249315862746944504483404828012089447560825310473282125822755127103493206936769110493265035838586261548635716941191061627724042474806205244503551107221495386459560715020304739093989671697350011266180709572488835444972287784559775595366156826574518983905350844763980104355974673893864246205592443416412951755597889142285306272855099940781095711955746450402816984371390986198979672140542719814124967878987706961036572992609796307592487133124643017474709844268726987593473899827495450789987769585743424074336501351961499546599362552102000624437320833204878507241149730890235479446107563900273864209888432640086349894604249496693579679502507689517134338289714672798144910316827775894141404400481949783611436727846059269849757775391025763611090374258806206302422453534415480472313100069407224833214248242264058686365915547555974396337437477286626963050046629984195954596956015845235213237923141368727929539313373187549757540132068539396572172261957407620824844156059916598090702057473782272103389429950889031723330210878360702912078118856078766591534664121384522685179829587245995179653950957532655080163672704920172003794641041500663717258079235215428902682053257921228597088685242799512007910249941228700421527688651051391535332720052289705813625340770125770026234793050734741640995675408312109706887101854573477488033431655709782763611908724983218423939735438210678671571348698145090363221396154913290593268655124717477258857119216736465971720524921012203101675302579175821162991564480546232143543826861128156303809876655914189859313967297764003724662144343152372280466000724659559255472918884051591967849110715172226154413780235803522221659015971627845102706646486526030170461953608926195497897445995931682955567533348496967314135197665382440882544835819153728353257683654047806714983132005386898700761790876183668060510118660783300695165156897550816754761589416017516598302800182156000380954651176138749613584621994345619514131777546415297854606673927908979088285333156936868076330675163134596018600512303837543437536709539607224858451445407860944830744650280178466238570584945457570798148710031655789809724436786238713386528243662574846348558919566726331677740651471870636980754929250736404812070506566377261770473654907250625452756928161478795221893923854631585975696149234066719744133867701562951057433809833762396913969872381589500186581986278250090149576526520413545034818040393265959615368577728896514239136894283701297457737896909948272150590026285000328294081154320894645809348919811513100847719719724296862741832772426859039376047595842475001284491508368012070109577397085676723560183391869306273972890643008454689520488206126483335339447549633999989799173526569708417339275019818035096550897356752417518854221114754161650978883589815369285604866380168015283401655385450808551800987649683070074585024606742861677107845125852895757670179319716795877853436683175681483936606493794285067346241003841733048438931856990026889802039996427020357231555843472656784011459095435456307287458912101084874361197202566532413540468925876040233063745998432377414686356352150104521558123284070685157118216638101768638965777599412882226117311198231038840961517731785471190049985258082739958511791894136928676640281517108791362056177957989587975211658789536694132727161259287422756182956183583663313690912073863975885187021396310773723518238852454448030634039840638358477567528432365100538399194637605549641566614529738644023494124570935107889807493183745495197794203613187690904307005984725317013666983148745288941137772219453401282980563093843533507439974803598397303839435006139623933228305124387753526519475918495550905819118709385291056807458909844928614655415746249218268393584791449153031786309827119728271575470400788193645937689313410696410212225405041006106787035656117763718451317129332940452253776128922529604241099502835859703916226636174794682188641214320187401476574163358309862905206583745804964885085451467936666301026133465285091757611257237184821699877100648626373219314783472795523889721465524731742330819883433099172107311519006892788570584951053919912480979454966661522156981705620610041057683773402981186758390542608714092515926834946612853049938082151549890862979189769457761907073647847117449259241813428206910495556410742273985904353972809190171184126813087954777665346474237318411970641334903006214131586144196421660279311041717865593765533924673362473824561378092701389117132495986615265463426442580166094571408096863342337848290918970686475008464332253425795307535675443344906343282720999480605260719225544950479825782187374322889451707717227271090769958269323435822624046454751569427049246405864126615131267919195584915285062524617307679765037613967048693694843145601084324704155082486911197063055156204559534682392662481306888951316237191921282136604336755002965496072435816431210072425846595575806119547340322891437357462315063286134766410788244980419719543382063403998251217782185664052148316197432913295607689360074867993420422199279035788795291404768005184269366301694796005516391467728898600881864673793767704859016836895670456339462819668353797995288890367417403603118122618172845831659410502835539196935896967279348917502829183610824787334851570741360226380053139270832654321917220039310348317574008080237216699483798674186591661305773786592977656792904652605989322887621713232127344267130879211573797090658083566098521198667372481444757564398519637494889860518630477586699753475552937107854173295981822680567161376418663720517672440496474268385413814734042539194844007262513864950981825755638515575570064107134268282542727010675282605960111796896599890293655851635174946085482134645440493002759166426541675012200583310988478422975718050995165939859219989012467922148734996311208353324323033616281969297327643844337936579494251683138631266932177305444641303170007103776487031834447723849674565399244223407215307637585719106288073929496890122979545277773684080479430690016204103769977862243715729090153894592286219451595497015702514589586315367310495088073635980626682155912581639397362527362305188524472560511225674977116006407781440828177023714541511958950353774139984685828585878766569628425400755592036692108384592137043683955019444980970286554777079477049124738899691813651240015742065918172651789440976225970126071490099325095032388115213673620240898213020813576090517935550031288629439441924463059548965924531246368731673067370373089552965761704646158167861356958566176922357574128003836186271729200796649862547604660713695720632364672787744803171165681392207573820977914581316661612824522912391168465704453869340959346210280557286471142306442261468505827189082538691601631128137828659227646983191199021993709704152050985355080168739749264899842434013394980828919341877415020113504870537817022874067952487536707765142453979443245761588377960908416002871370983621062033652911981904702386618475343892348974939273540722835620376022069057533890095827573396148971154259773318531040255658132777114762327250660131890827475453897480143667100713357279285009799079243991909005471498808459796578714778459971376247312022541685950100707840411628614349774717548106028492694897388311622680847731201893499183789133387974400415786810263230605277339795503985499474765272002770952275904484643844849564178926903554817265346191427293913125886473911302285140394687951664042048324044353750170605161229460083948492562466407762546835035545126252821511138611807787880475464920627152412719970700399822943662468402439240925849147887272521385660802955458998969327480999972504332576420703244485518058974574146066619096148815320269320533951250160833258224233320525539991511319068152783462675094202741420218873365264400099450376618096425897683072815901308659185119227508444850839261281499382142358157962579662244307373603270551129806123199332520758489024833223352687098782717556561312846828126309560177605350721492556587330982920020222042901661714022304482796747990737844337443337069114779179492609428607466200516285452453917136600359441606187383160390670382917596617754690141180727886306646489676942428244504981900401113084860701262806773989137276614493664809110927488275840090932888820964371681378671511224101966664446629724147111463847477752854176859601443969189070117909079767673445491985107076489748699278420871983988059824658431296184954572788557750811342628392490698662005566069767938687795428900146649901309534355523500086686618524057112653234801992116267981019447461849019880113871367432477970484537888690734768682369270481995613000200172821546032480373494677164435948992121376443093629911021115571248665176923257061705242958463615338096125685710085247658448046347225287182448912766040697117364728380104533930965236453457380508168763911134945237949764152995180945418902351930722940732390932403627851133202911443576769579190827972900317676951251823492715543512962479183313503517755577062261150917851434840505644336622845424442328872735693637445331531518783545908267386689255627405197191465505388805901337003837347193334858161577941008244901666270139101596735115840378991590110025605079611860284374107059879422145792758473703555596915968837399486913515037995685638846190191818330299485688620401392185945473201971649344963710566847780692207361981653695018530524721678594691766294704962299873829102467831932480219034471535107196380574175048455767886092647241418593453277481674038202149118749176419062073987037841089167276079701158314174629700673598751368947168814641531967390971500805908950304580508994320851235992250295070282339771045721401830554998722139735751079058216645787879064830890781016208444062989257871658744771774955742673683272930177541223959398841216585957306505388706659184993929967323248052838370452183222668302979303712154099668480793465075533246317368160930270889381523721970915649428862922013093191822080561665815154183200973007128484497544185892855600698682999809905217271574398144672949020569683146542289054612060247982434488582747178401884886000734218400848537867028873686978034733695025411935385728826247379403981582965522512407391568989360799636335869539824977892374384420883348979532091292381933663991425100261474241413387723718076685700030226806302570733873254954115566346554936696925648074243778916726427429091980450499539300802124921406862671450112082371432810733375574243333188301170549961942000297308481924621780993884967376105667266663310934519465902112745171807016562375756775075037651054777293113249836392113839166947674932936871904327888231349352696414477123178343009350769387765545359464550442252845737417876239342393762453951795669202690665954078375091702976629186715070627564695147583365238888175220760561484617127073447710009066534118707928634588486822143361301785539428089620360601600694358055112962521897624025865573398011717122575998647255629463587643456051739463197909819831108958997402199907493899077334097536942999944528387339592270456884226561904779171397543174285345012592937125823936503925500918251989692424656438436411624063830771103184271549446139361338625282724431383720666822110917115121554785492381339718105816833052697282624471574308733131268512979056410099082621670221227008004966344605744721893048686430872661831253769041282524225950571677962486257295136944774020637814031043923022414075392231558303667115996541127786252682736456216107423773807297568915173721513361954459044188824900374282063979321875511547453016535566975936179356861109663031284182407747963479174774306563966479774082252892393818079994703858105097929021567350174001195721291261635621673434246932270424190517096217418840426230919034999271267849889173638282526213226431803928154129979601912398974298317580527455805719521244954386907338339508967049306411922595483849627392704818804143781048242316572368020259342076876907408548884449855181125428489760611107932011073558217502507345110407228089011721309614341656119424629199573005690074590786686403714936650837412065092549631278128740971130000996159276091032390920784184627142064843655826001801529212403342289187184187511223987832388669863513714825267046836301436878989048478235566904181413430166393263652468110357712181183474867201481952078712424815350003130532406005500675204743564670530803590303836956850010741922148497655798607463158621493791665630920400260102162979200621744551625458120465809871126823390022835005653217797446201716403606180025620478846383650941725290107770802473573159361106152762973449561806906412686679455216087000381797581523289699514202711881984827387401636083252785063194163460174344820659294760168167834631987027486671987897774878757065991947448321718707857613094465935225738188141202210263955848644192204051711390853441724955995883095622135492707036186510484540385268203991105285471294955444628194879382122902425007937648392162270963709504624847385269757525693877215935877443524056380375999961040132007220484945883735941582518610127485021945368420819861515055695045252552391703510413483431337569568784222085819580702115190967631242289767898337692898769763330201762618621959103869087242064423390474456383307670602962351771019337059743662926095909980715981920678305292338549324412332660709871626362303929104649675871985662298414357775900012540937266211213880339176060957072991769686691349701762381665510494269339003336842913224491314441717255135133010861076685407095956077262667445451598528376390865492126244002073478997748720358017696064839748392025608193413731991771670302503082066893218614674326775506670991423170217420062932618614514900076265435178477428590949721113943019420658211580860781518019951621960353066945865431294075215766231908994030652020084109010100241266440617280610475963835947126565166739700652393596028020412516961580118732218764029706093860363311119854946143611285075536730183238786524472726885550845872190783659162023283589099721957461129717316998004925946722024634411470572655322998203572075890758132369277798554594085624659785851854890385792894358980429070479843935361858535587413925709019740946394762444624460817355658789376650399077592862294936685250780585361666124293672481363215177391316339190146247904341018872340068287104916096385418340219520290608458021811389532256929228383125239460996351608651241049217142539523676861243924201160230222372614026985945773291533345792724962971197063935619108382538507179951532892118943651088188972767050831920610926498859243813813488433467880323407819995942202669597874746744951734946106930796381448546720356445445708045912407820800399676616146900338171429543873525904013989510856830859120406263525549595731521387818877797375988804764995822619463690582210346728606966201981863505370296536182759059661073850804003086162221099712420510123275111068533835477705189179015498807204920852629326545841424593568094294843895457711623831251281788366692734623370281449912263949889502419903326945380995504507492033985370071906619724126941311655530932006403131307877465152599314425376260891864291738564038075242294592032855414958978528075645428353816737552091344396351578357566292418732243067532094572524832211008304184144107462554608661665335208072648271486115304889495671302586095660399588995443756849230713246600643239361712738185236480729868282956023955992038665699073517135329131690842815593455018407146955247507988938695367655841378907155378897406187705490057983845739001653912605351147386361101152268505197388726493650106811115240880888145734230495280432420320673181634740263351777296799700617062263129311404424643216742379612872570516380691649414802896132754687496385307707334007126770677074725460824678216687576047580777218507003017228934453026918411658739758933914117554276569602052579663004725647204130202606064004934230051083894391495964401967910520515365570308787649447900893890928193753535968023106744348426716457630327299096225874550284457621843923497682194443446258040674418575420104194771784742392278846028792298180521785340407885390958143835794757244804216427843079582760287943809347671893645043595705550044888017208341745459121740779206428296403442857201400560815066290754133149437433134152764123571682435190191588894678500985860532906116021308917730540320432264373736300757366326790663373552524249054167123873707371955868089167079906708490552467809883984339543363022688334666804564575992388620301695736592057738909434109636996591434043616960564882465204564073244372652345526399311840829247907366335643219740092496687478058131687067047155402969344263467685157247975561936703581819367885570299478177297293241125203245416720980620779881077689699717505968261199334219138772497912868317314892701411587574942737381792709461288789037790608592808360161928613902785647391940483605743671850461370950780704557697660978052823676595499525285042470643491475560961927206608242210333486043339411445664723046776203215789155193669781207197636418091389420819046830551667715028562254635055732611682709339884078231809169335662047381223883477091237989082027485600968110665323615068791589574746828415134134748198431099329717892445664171590737542929487957844987837528007657218111392522930325479481321685520370554757133213882214033808193740529256002505592347018075500794421109589279906062036522405937961171889979452790630991628710050690921881728454072132471020843277120746145863114395154648211535223658494691973400806148513840526925785026425951152425895274364949709374832668154801130375990873659399585111436192501254743110627098403794421767296188677797691276036940328833101777890436145742705849742430002466959986080491628841162977508739756106590172716924583865057351010650622476457692107144692397135491011303169369701427490961045217530712922682781066558536393294318960498009961577351484385840875923516638506055133832469120938994156017907255578745131101233300601859109417301966004643032488251438696950136098314025827890188751952217050591343177691918566937608271010764705052417805032830447558728755002919768447256030207889689768050758630792275134081639177885170509370426020178591094779215020629606603095603453020821895781888501207899979913611597950175540434742929253996582656445520417353686407779662389823519648742171859184209383560865035947996664238356414446122479477245613451296734028564181895317289964643116465405118981389903919778813748059368583782604492711377538322353540613051701156610201742778259951844744120791055302893837071863838296606326622021790765047942912401437732273705466395948263622763431339358171605782445320632755957739442409190181806701620162636343401068780266413160919597012078821263232847543236256775742923844137556648021715274349640257262940303985314322548238562087375131657944382774544283308230148587998259740679483695382909438954100812959441194288840817518939421071603533182186858542069607049553790845814462333400185746489397958409720855168969735182754389705072766268054863614874597402872803161786857532344843458439906360835014078917319151579755263831071745104864880706500108819026945622152539185290662020566697268962188064032635389512182039411692207485840479720489357758469937986329502391807786379316350433371689157124205318978942614694917179060659598789908464562885637863103528544861416321937929496709673200528024761455844750069746996860683666690651806223577177121382761023247676671560396119244657464514747648938578765496330500359770986720274367617317968674052884732536345570109452422565673728108986371889562222036918037553559182827344517846313238275296598056943656756946666167390138677680562611753757253811516134985434055336725799938023330411210419245873293801695908358938787667975397562932181796298442601201879950761970122137214897628014634342233258102088104681804207200722546489209555501693913670258919528627601151644966121625149489210138807011670319694164681580583091657439546513729471267582333132853415364414599293700855936928812431374216556873971561288811003343224676827938384328918510872954675958925290379160491233869358312729722803538916247252251260298922266187948629051106894798096213649210451860325481702118526225552385069446078087791109694770397146265294129409615469122368896748922410275026702746093126509284093201400625708684934316749635269774421936680926866284494283566145167508121048499463572275923350999485587874642905863651973380826785374886539637271217272515015670186224246951953737106503837748045714594926253486751386118186766458117371113253572202103018846872955216334135014972157895566278878024578258154976137799374618895814817028186045649091408288612951914612025400040499394139205430661927716436025983529587576165258763275849204402507715899898418732434216855816718444378096447923821239248735946067227307547441973820786869407298867942115361753455743284835136725084421238999096839575652755127102358040346376892748938417008652951442590875940107039262798281280817316773590341292860577733180539265351979592576082832804898086785822776282574881430322799002756194967949926324051718203478768717364689227531323844300376378794876802237378149095727615759521439844772161538152884299587266260759813571792656292123052908870022642062822496241413940791429305343239636097643400615963556965150455119653403990590353623036415790018035549836719029037877813289021812542392253103102381185318427560974629948279446510569597191032858743213957607329990178948262480124181263972201041357292922858017379842219644941041495893505061040611722793015121715711327168285396560023732912094189837455233454377830285897102350935646140557672871306558969503881511244882594316933059942978270062806462320831368866558207351223012464860229232896423041464762825858294162390522848439938395869350649641610280227435628872088702079959872594444243181225495547783425775340909276132097266524096906557344167404308354699740827472280371959140336751698611970666889578056336954301661475765688450374203032639742304270193660827941307583897057594063728026362667124624169122015469619913957856694989304958640096288632244418812883286572354953394851646990158699691032490329473183763023806688128848500967096256332241392527565597157094379573223913544092136808508686998149950381220172061377363672321629428908289910928398086649274288836628692030064465653262056968751212081309335074665922148314540568336545351684846558666654593596474841052155685823475472771552893535189272020321064941890834153889424676099928693833753336761701611952483613922278928096384225918246426071466190887332218537786799269497865724355995663336061291501696060899516446661371892294713175849814976606765898797349414190746078059601914185451007294945629646958632233897506268051593014777209062782505900730768095781612838810520807153426317227368789401115293450906532419276978404508016317216042993610176798806073725786595076824969755257873700349689420475808292906476018401028231848265956408553376807529086774115258957940628091516390553388391011116203617165301171035267083158587188370169467095344715850279953172924099689061897518189548183057671518443366089970413123821542893591865809507679647277015439462014177090848784366207463501832131341689709476034896744922143930951107401223035850738594563210113236328187468668396071611779179370136539767851618598619174219611009234170368173580166116068933454928322482815408554269332625508252187287591213546374095241093518211355471990020551356912805301096209179142821015555642297686758906016461323523346189813536398399712074192113825670843066875524329428620050243276788006878222795282079333951626679601924868329770793005997112352685760197170331386959881099060735689487445462356078644262677083829146808195726920855214939034330877188912344038854578131001492969929744160817910944327593007620365129902423149340128834317021684118406761305793384425542117357580764579210943605784004981976828000454648631810315822973085165544490337536605850027075532664764574742429292533508838688942134750324238909373446893692832996637011505713673956530659839088196088519774162540213285832774781896293413095321956668325724817020050437840271480619427379119464367980467245860763260842972582696480236651846962370124751511850554705928353317622680098804913132728163941532420441021009448054052873235704775337696160810947603894970763047451921850280610413341405595453721375167441669033153235620432687963974793141304085390431605705977832817791113898348573511821955350821284346539974457324299338943219513545505219460836221263097555248885059403450359980976715009575097046438762510466027745995975517449573461221325292600741319693955070780299735783842959561543772882136610063127000220415253348785825825825419028126690319545400979701467311988688690669468001605195663260503541315275179909278868277536490250644471300055441411477496357363053824893256655643129760074140028777048782665099595714762593714840575868658733914252540892160588156718644470970851284331502033102479452247644840943372455194279159901427022806357375057143761300665531787689146341536534141499586624381347942158806024739965111858642590738056908519122860131203879547749996286163824999131680601636510755135989689252374573092557368110130256212642782132411295716611555518263109024507158371596015329944542037882391063270498460598035870366408775846016495445968468522096869490419977520230249028769905111849852157298718840591650206474788372258807548887511523775257040827987463948167410993564579955976537359039361172413722752511692827140691988892634458329101907155476723487088185069611095400963617206482133950504264558234801192938622272753696466704454678825699691899331940023017468646236299376014195714361395525349706397845553194108399519325396631183962199060097541146488101643286458175431278067452338689384029166807806397007669354108533222311432747941979299944529254597479208698048350789468245208499197758054311964025303679679141492151940895336787805771995281437022962324083905570485589713124607814662212498344421307999259695411812720477130034456157633971030516094917130589771288393241088140144332555103032613440341629863683398803419509893752332161182578205832040328321256759542298064600502874594343023533849063382966447146438643381020769110019079675650675172609793637280474417575784954948844668936473619901985900996988274600887339288534328855646537962714805130063543132599461923497059218345444305341720385967049086481456623072747709471521723448236801911680987993779573622002725412777457198977099391708413033422226430624968458729281272857183473740884768656842966011839444252350934197040142498545483361968930639560278873750774953855929321439223466005683438720370994298097134123397026387287444458775212727967048911854047534599739694855554778732941794246961651493964488941032084416623613896180976460202656627225903591631561995639126200520182439163211407722806463684969487681973570339232213120828391051626957412901412848013555891501375831334489460651402407280169664643106087968948086740691911784714796599626109392478373117661320467058281919838513064350594729285041561239020662331822336709798246954555199991108861705452345130148765150825413484680173829969088274368036033614649595621400613615054595514218572172690697549720755013004507640033494612907622055707380546192153389772901254829282534284373407954014972659082358362683896111248749750637813154892993383956507197692159898356359921172965272557583270285520449762459874581325801802289177864535553166008763082312542443106626863571076877231700545219278988449978648227011960709779723753365653801327825450917826301973827727952588416104737339204874468471979480989233723161147472214826186572698357779385687122980085915345310097785832905311062151082148300416934038388378425231959767823281791975315461514597390423042198217488592292615867791080689551596269990349570227336621337700608170993882920752721517880448694545188680325546309598682297492753755462901927169304768282562238492161853693779993579432642995312684600217157424564276982336575470330828367234275580609353596633783081264691748442575141186458112734260182917233728174687259160474229775231578332976129364815166406604179635297987599346891714648799753506835611333142218319340121556117442998284304340056412078998605841897874665300796338052801520302878069897504539462202919025821661412488643708672148538181273306954195578455071493161507343259867088942377622592310161053059293337010605563803980086738551853263741136726646537205409370286974121397050938195003961192203475905480212990767029869319711483553429792732058874806683393239858041028741724209693923297840300596878872840448680398320038023187483368825900503139386768045963382255562636015403087527644999332643805678714115028716150132316715754901874446312937557881879373639718401595444916880080214152796940379307062551812354252101562609062140992966359004786269000780307681685910076085716330847472985080063172178987643517769104996798603360495434674127609164552695704535430993380957195131201913808734088984733829023869417604548168098072531541356180207141133145960642324617009241538152333451608277727615991274398913057864265995570152078442403543268473415592201795542881187351159037537117903303369660882244504688970402294055205964682889221272684822739364901441764891745576785023346031537693759412494501478215302426730251094211047197105972496178562211521075131790808638916788306267568181688802621593497058623014576780167208182666751334790392874440112930185853023394563984369302164512268881339939156834469109667758577541032125466600819926017618051865836743926210512861083161269100557346867479532480676649407565178330416767151283285084462179215580603781968971977938696984343087820857568984187435129230191455243224680139675115800971485857914708690604056677659063565751309777793422945027802498779051459705450090950205597057632877846877961963843969139938038330037964329743795397878493866044215466951175426043724759198056269328855146254109697815603540517439064985907303540221142957147451015148791268422001773772060713690178822427431826661708980398425626367775304284710656773770614495264972447201215988718971874255529649911082120681000251605486409003323864925034598132229361293232788960743434181970319691855394927029541139098689864325757075066598336519250144380982430540483713067203036434913243110102475910744400796891988874987215051405457286095597929395990283222700259926793653232976025950593874247964769035158963366619097074406793908723114041713537386881870920896655843592793473164081915530639994324204466580004434031215309314703124422389427148453205545785908926402209709251311812801391808752100058511109449933954291822394159427233899257124508333534362373330886449498140514770661522435490481516944411259343142299734670575246380611938778281833642416991041118500490776478145988955137190888994834322815117065641519977369837409741011268498266858541711557431557221629161240240952126953616898858693978879016281694230119288941863686496882156799023249954756410463818879749985159612601794505260547174737448735373781878139844235080196081294802145326671205565039355912817666191477029978879582480718794822401648245032450021271065166458740550064138487056614832751073869703390851436400019843729472426755289783522885424759785399088417895128412889764141548072616921867478698735754426959140027801511922416699207126884710279091826472047347862264386315194321468312413191773957600360036723096823311486521074127587414276045542725867936221433609709098322322291447924023136408881365145886053083594526425159995957612749887832002321494036688549293518851382006977973355761797587214159405058224071724751939742854751180277422098712386612021421985066126525667769947433981411405556568343230567328628321628806636496495826362834808423443933263388261003334963512363116192944671941807250264552068344277709716443050050171207906519706291545297109755241222738329048556070391908390758046718285183174753567201818180617338636209957243074641037648663994316743247270378355148135760290975719166830757980384492322157369054019695981896552860296817170895645873744394869223715722735541803436432711264670922641488011105692739102606646734060464507087208549389346043473954121073757485975923749047081834926055986227919376807340903844673308347538553885887656841024891849810018106914493008923694858520044938749601138188168966986099433096856023605149512863658824944464811173496818439212158012141726435898857877374971202665417347874813723229158380043917053393104360479660490310613235273360072305775326565261529152238241630977737198127466313640328828541352944375932809800366919215507792837176389914358021062168680574532854161175901489835309862345916091810703608588968877439484808600062060622440083588600243656121264209097302429156545938586910904005241459238489670197814519150902446393757905557203350935473613038403897964062553268456741737619498530257526197091446559526225349118629490118124280414631760453406223412012169400570044187257904422350709144387839354964882914542262616479167604860078931673594137741243836387644851340966981714977106516055663672688744137314461926845925525181684035038632969688338400777031272441228846810243261054799274621217245711046155061751995928430415932998776521447178540941310862703643099446110018954349817019122369658421667915859292771263711223568807420943943934346625222973015047455811994759814771843102578929127530476560620229462415985171365997914292451460021589030466294992054534005527257260321891987205754542132785514020272738659917517539820879632492197911209191722466370419194933534153017437430287107230985400196190267624564191866124308275633431342751367039205743800849587835780972312851890252954462285470432178671058178189836569080736725548388292125663144099356293600509997497282210512216939716662861067128320062413669088322357466461120453868776261902418386349200063759131930823683548203093642739616415591811946087577319189250809802930937904289560994951074972963342149535426852734059938170936497058585213052613682385550585605885683740322683783075456526863065369013915295579367368625916493375900656437970427615263139509890094430073698668114290353630156377469311400222038587151065185128437821403905034150207893174633011224864454328148941222840612452208964184090286675127468784520615726707857362288126350785164271395798763561612715690999645905358374210235052106499176497398847539351119909463209758130484661516248980813962005111846760686103171454000245609078984331295571685877130267896173292072484904452500927476926213571994028816582737836829743446675416574187468572853363027234007677836148265455942534974079859243708011565833138840815335186182411267627011537085000046570907540038435446039795345069107678718585962563768000717049184128737757728619084247940343361469384056955730964090739555748452693106874722803639122558513377379633975661253607147272095808961362269364495011184874344475995445509801792398602333317939591124915068185644507370651991536020295434575101754229358492053431075918012466652939875252747414927417137507529091570339305399306507779548836271441188859548113383385918118124652232563766888324770451023009118400014829614485564599518254378782249966514759827785158250284371517329575234943500147432552214135552129011615315128183829385022720980491903356716635709213184311864937139332341578771202959435843158209433657272526413802709966260308181665390562993698410992684434421535361653364011624188884813395677007007099292867130132240872430292448637102501467130059433324501316963516462659901285796168574687764384540843272581913545193090838443884445326909168580097341194581674773363285375243389651598486750241479808582688811725051645663120481267473049812338213064328157304368770955629569224187077344452706521217481483630203475291972729297905749538525811461352858932998549669723686505994391653607009184937566110629781469378900522211976025802709409566666331999396527615253944934020688270094875782871453834046410188298664888511822423536134007246435300780619600294147662479927608667863170093329460510143852741018964812486570286347257028555283855004778408198829058983721348166909009036568633186803377580084514457877496972997026032523979668860399966164881071500666470617312656606179270604321380468010833112462238306798537021005546916250740207861960340854494437657375440491821185013775612183444721614910651975440587752847779561526161525727145814543645897048003854693740248361590226958004369886540014407170662718119296804633840984377467777138910790053179455062063194393448240663365933867442825077405006966893387133870677932183995107881279423704236781109319421304761445682803352288238331663308503874421548974396940230517461814855805342613734448534724928763509270270876380529996924698176536191021516778140828666802295674598453445400986842680155196924391047994227462864893242172997795076643083401161532708391822941228972800766897934513954502564920850740238400606569175389197893630764873785321968394642370639960028831662159177906924757976496903920222230770385760653992780016128631320884527565450939840889904657177328522217504664708778223247361267343006949793609987627441398992562791001388826881855949340271968305359671560969057010697365526610548428680317169374959052627639478794117160807182057407709241942283385425685447752441156688522717659441205267485497869162366623570734439528288358404027898969647867075396906122387136335851060148244844980100441785170427590460996905922282644670983422403102407602958146246283120613736897372135838000297182676591857747641569072564551565190203568921009473643914709644047161089073786173130101484668888632835163947802067543668186394946096931153974599274523808807008433035264924437745076936524101468296865778082792854868825475351651302541849634718303712688616067338965130649008683380653823083480809789976504151373231172197952436589645036526431716462046543462552539348105073094685869001241854980702320425327399795702100310961397670194717325234785373780099166097643796252645424730489229847067121765095574469662229233376495183825873003512363765063244977869793806102919204227424251541354549157746570903795364451368152556080785346603287202876396869687680274146755292479653229284063860897424378254221928194805376994071359944270811733232998704223237929895611527194705639926028268755129638568516066362722391289358295574076233508042251700042405105935529627495167954250246527714909830881501550031730118246408772688467532160723539200574629201781605721862525811472272945858294701676490240680955538114292830018018468750783617647829346455053428950285688599135080499537812906478266026324035052681542659101845508643221907319899356280862167965112312394408699737494222444969125775153034794333958556024994824092126063510533937089195313625814932653069908196339552512622900799679044991030845479034673651577659083405496499547352055895132882281786575024365010386288891038599757099444774546425317886720116791167667775243130100451855219773495696042825999563812726131635410591728155860535973479361565426819020347028886845497670172267475060709433934472061748911357704446578398110728173407068286811109771558759489724455936542737788441685839755304912048263758460496801343766868989806264132626146476801010627064666302797820725115302957069404952347308243905742247020815160442659005549232559128736804587087787664055969493597694820158624251761109871209139433322987900671741230268158917882204986972637952859879510962908542403092973396657629288836691603900102928801949871830035247396035736238871363644528779882252396950013196013169014110878433100528557602540640538683706536796640894001526774164822784610569886573831644167467421902703458040643649993599642539389230983871785489995209388006596780858031950400538121875988655689992192371166903678408049310797120076958271674529311779827555637735056803764061669521907166808374891185867990098479690174302250385110345754781291809582493566455150352447070398158799737934839463340971116730206826416668632596622527173929593572678082663006796945499729875911670462532003680197110145663020044517755851431141601509504020593536788447703637652242470924681698879059159566452340884011283223510585924480986260746028634833423729644815331375885261254022782313443489404827096594812158476555922790096695481609805031199008437578560378987339759343240790552502047872392672933863131506454756934464426244615341065309837896390932371621384988815852868873078123850235884036672102720674252422272070873799104296599785773563410689898829862892015090591498578846729921973551169843451887955540351658635751390285900377864448696115447448969909403826460170711685053533963470617793640142558430438996732747005570270851839931971924586796232278318223853422695556136551378769812362312751957198023660461752874955252046209284930711760365704825829777200158369106103704798266822734664870790251873786522575595246444507018971571841342453195900317043077000362778547399988720634928881405338127599309906210371472721120958598787621194469609733989276346488810916794822157536977310883752446617710734158879056508403088905722716108255962585914007935701947158289366058761106276619521209531671752723588701008416625703845197237989843272572690874745142641712741111440702470926810686510201586058804993983262595532926083095851999174638554863526517648165804834271084293722041607638271990699676790390228597558681891829313473764560875101405929689445425134217293592588872533591853285722034357438900603504757378154765700512534597322865792606634001315517520942460237694573406821886887847304756427729682834975676779161712314485686290036821843465952095327725457735454200412246166224433732916282805724059148350691270139106240676561955870303904344789593722224449883487947563200183601067945717690749470649329718968986055389747973658887027063122871554598186451959521661191922576538685567972439233351353342972905239245300012174175908702003646082446452466819195841921570140836437599614874989226618258263638809535344057477587867373216287731423160947519405479770859009369550704102488770668713449249845153944100923393223871990855934968966227608631555694481887432737585665287750139684497423715583642341524633066780564375934762860503444586137001180051549767887950697937151697318718903983120584699379951181405982002601534063175106356728570329222744514975673263429981821911040217954318028301221992565987820536698526352216536668547780792810465438312965300627916452588272988840800170519362228838815590621544419109332661462861194096006553247810277571617983266302892390392644165481629597955506843790945110951656398609785804674220965749137753213091830340561503296955478778189167872841332498980283160474720959761145433380247255279173721932761156532436874682891014710718093799034446785502188198937205786229528975357513624984745574885049321857116442736852418936941776248646351783084752161000504844027598183730922182507809710322383026493706579472201879808732773429888346255340617258875947292061461743465225332517816899641881217337767606074300212461979318794875153898857913065260445662219009295892891654114029066288938893588782546080017148213833739992425276850668016015278077165899362641118365280547029959892736110080943389090150819269501738281864761465570361346860551702368034444724927908192692306605481007367200812844459835827985805438825380851171537186510481759930938491487826390479210332235311547901851550875105772387061118188895662013298847827913964670917481862965261626270615702785633573874982731672783663812934262470977726622020915233286967301558105157667752931580668551812227534126274266993316829870182921865766944568091499090075475147078393459216860848744528591619688683079393365218062436131724827856026987495948551903156653674542765507528182460607594793231121205809360108146246853233105652389786909649122319809103678194318513615146455005961727033917564279431527786711254429815701369509644394073213543608022093635787791664127066662620849628633178817592646065349624535332775514744081386147585246140008526740914361544441651965754218623341016816739619560739023617100021254079527005612845762661569878301953798347905374912287663994334433397701837068818290991820396595056233067713454733108869513519010563299992543005359197949653570601589931963785172330553126069562659001928580777630561998583030880871284079224237999283638346521086072936122238454765496188623910060749302073808217425470144728831139892019924131855070984997233068335310682934397108613703824817361207804606073226970623724886062832587657062753886306171843582303953615978874275870010445185429042041691755178340403771558630134624432524389344468046691633341534065709896840276311474907522317134195605138813847497057879724198111331952343398024221798593709758381252138358354727647609421817336592172362583541119466962202485187901263635537359230876651247199336191345372893046523542265380934188514591882944199916966492588046617219249354515407095087122719870529218066858308897695749557427316386790775262048787310907316325153685097663751583432646810284819105016221673777529282914053328262353233519304039453969858728649710776562323211817864808544550392898523270130652010485659603567571689703462241459843042086331976335566048836150992755141205680631860146769651005491161574297145867886018907326904527701492156006200259145941864269295190147982533089981662018719176761599535555629992882300570730004975945053052947390420495863471276532160682588155227971860613091750918227931408643595942027616714399245882982511821243556575680379774854057025779348608463253879226652050867781387763243216773206905561681907417179906487624981533458213216751325105545578928600375893868000616250084649926345365438508730759252363450241466146369475448450022570146356980740989059096948097006645259979094312600617204458318169240218067035546066071621489052578951846623859845952560070788209192520477039855580239574644179361071128158647250915565189840703458130982565615863102743874888895475538553092740936642043835971708936070027012708531697380171415321159434950813217906240165052319325348592247837008260867628282822877831986190361004431101873961760430366623437372116207742025197829446334853787019026615958871859344981441281776014990404105945265905941455586302139002984795355724844750409199557024067265923354957391124077083468465153771826676757305319244635711128995820792138361094347890202522234959417126643960340191209888297844533655622002158386546376844519791597520016817999449924529599275095083460685738389200684481604029867957826773679479630998959735019439451569960407663956427798040911122355450758402622505401615811954333066946910981662329153801903785071559953252781465458473712570303816813455083559283197563804037180023995751545964312567364483424035694474732426461210597762568268245340155891033097537400087203938868353463109189420388119223429219203495932361097264305684615838638739616089989662280527254051895767523064299624997944291583858683812774563151769385830167141329370888449758446772458102747681122549470919004702144775497972648783820938566190992863538025278971961695268666659185835912302597779875463585484029832282076344176735209928296743645489726945141576412469335236399930629624509251663649816074045192735488325262322098227612921147336511349823979898819464220711291944484348611259849068608027101316096276880813044074672701618809836531329972448826707344592807148718128465094505572867797454538087709809881320989199934016104066300653702261012019323406610034709761402293079194128745105169307559295906025177796118828337586258275936198915520596289079240559270871464144114132130697657176276271112577308223504337716968410293072845569326792328609514968932363293300828000100317635569241258676914256693982466910612714800165237176473333629207283757615379579682809646195110925107680278768880836945994193388060726278944492322735625143969145632961630877796242356786820212786788397674915738520289452721372183282151838213953377415501938464252154833295055264936300706717169390069338523900969088586040914559491058106696770455996842100328396097590759717022096670737025750851753753153675858853388891820952208131107752905959226825386109810165559888635220522648447519292329687849643608166185269121694538273770899174551785120530042515422924054316268157999835728971831953441868853063991152856917206103161908660355868874943489900719763216275739118061738553820410116904315751504857808370005971295603000092769128889706665558426749168074120454095379601094564668139296840701731247209485597288728873664224545149369022677946330737108825142759158972287838891432520648377025901045279514052284852775366973927548529261966518793918461536291692130202139288397219868127759491421010890037190009002245812517498161270526901387229527605996691025517710896634789492445568254346597582696687973444280979891754953551871709187703136571234255001076396747425717184960078816447129557921054885093533810806958681092628917394442036496024371220550160098209566802999458010230512592827573536253868499973695907527932507234602655777546630742193667350158873192333878389926869359067555965098847054725439059697860941034397017287558164770529059522773726823424673124640797950056552967059939136336848163820128092194461847744593282215940492773277538130462996099480283444867907382401116422442097843620462090539081077826577532034382753557095729954591606802039047669677272584551710200771100323593139965989619659480236426338531865996002099567861501479079791486561656305829924391062225907547531952218231996135441550006688072814454971922249228419547340189475556850728435471461857020289074656351671748708224855911332303916350151576654674082359945100744568556790810475666669740128916763676858966935570111508472256905838680624196782386387664144227483020424694039433329962045531712294987182688281553442502723402029062202867319409546326924851244102015822705635175105223125118344650301049628053113585281312066672838580776487939954963086227136073137303049138834011785418353736765560616091574427169432352242253279452696119202474613315752245391708324740277266332857716728723786882426591258661358844771568433927273321950741607464138376293296198201283283666592052139128287977538678274893894366507197895408602878928736219590690821302272068613533626528963819318917095170818490526977341338963274151070119532727619396622440857113049074721200273070953395205832863274729443704519515968492939186671369062750286536015391015760393403436279058555469704747882301145453485361347893982319246651248068905631341102336321415103517479018385328622921900619215652750901480587144505844495329455738595075993041974780145442612337956526037102274794576683699772298404267668218848915638765954687761284536790992332965027929333212869773921829090429190384172830065674381892201208778108944253852638623328624377693932466403188088911343556079204620183617683983716698156982566378805876428678671346570667288744553633381153728735195263740903703150724858484660735143563677841496360020109256176448329277583320156904985194435816679438860093010954236287508350806327724594804285016730185306685953571050762516902979226361068187732679813255948375778492999275859076335758816163502071662731556974838286284529519072902624636471792730431905381735347101723007739097380990856770390843796381298150433587666837867063889437254366721231399662342169739066455761817207867870403607168295582417017092827687926757972064825394477218661858422113104779358085225780875041249152893966344810385001779336653113027921562492872544888658862667675886194076979156839040745405476439861920310141907587480602607879326211328160365287910117495600133301860777368008759281567980092795369852285866519789253353847309131899750163280134027563057655234672387330736915494290355024097025484222663341346903640281504166194129909394239886881166062734707741840232276253158227812058654985606745755591701823162404623908688516805241848439479521949729286712873194910971433498886757138079569439645927490719053138167380792283636810125465316621893313103808485946913387671065874405323208507052249376706236969765159650251439689053485421458366065357983716595729675001309422049182163216754293990004112363637909479348384195776254630535969609790218878390132154280347917545081387337739903245270192049609002581100539733877610111584753686582438677645976408147253626615411759562125450301972206008621793919463697023719715816400544678481020179469958130736368538353995036543220104982542884851460337581200153313226881918996445769291154534939186631222842360259009220648302576101936603876900224502520524307079390075982133227606848425807288725392731588208318922145340479464498745319651954342047541412888848611663275717213673035405580147874312647222021955668962267641476228191561086820209611033933652235114833959797520570476437241920297662131807364072065114963255201926380206618876028198088945399290172706353040251423147786014849880221715376254353339477680888155352891557990716217876483919295371480565566493982417833837712388134044741413855846509702373617572502768470139173643478413306469742796437896150233994570995613904383216698176376935228976403481022445295075924508427181253105631429259493296749340062730382940992897037681721136383778376607058569250935884122070457601895761730225139917590671554825566607453740705418235036629327035928846388677276865100478580452406187828861393511026365079434796311290615395547211415222573617280132938196616930496652738415511167895775601228742875263738825008546631379851573096493011469356916215171418154979063586703299385089634587966213743261476273863507622493184786270600136806858178794270250983685017172162935486748367971656518251185622732353168551157610981989105878993391291370023650731736218032465423626901279564767927438485863899007584522626899361369741886142625885355091373310435336108268954310580540349747419459853044874001045996687287349112943383266072714397008883901381487845599399956384916241684098399650702786752955665321471586690190932995389399896165291557563177325865663767704992022264053484408449906563543412675155728156720896869537413188708043601329067698636685141881578155624111673975163021722251104219283471830308103059767469052005639031778535328895779431904819103343313173290826483953960303782157234167684149222743035218008619700228326118598820851524369394869399915796264417078503260003846480117975335410353158709142449953253591261858382484298920766628416520619243288053671858706763184747281494816106629857498191562449251724738504112190986233501422803938737090394166390970769016872355612150003338583596010648249235441308661087634886516816235796664990137648472933921945116583397953009435256881385586847841070657170705571448977236401517876389542947993955245463811083393574766867897244953169353481015022343103743845129592091353484532133340282720430315703257112791432622582039348953940968583707031456663790349243596879283169028740115334757885946858009160081026193970392412833950367624813071999631070111296849472868936344388396707306198438855697645371291121986182437841588242990896617577814778058301408423001331318777321006502084073273020580371842052328060006382593190331167255490637483766989932684371895432860272871781121867962886811805760650016293075956417909716216613612101684957856756939298385750427281679495308802470863835378244541492382483801491418516126669616365896196510478827754873756177697996761920668603299956945656680211233393599929611091990154877209607902588307730594669263476288122216518657309370184363150580258787987135274992029682422106140062951670456420594819908046217850923476293366868068963570470339559560719080879325602094282641435211800824251853449216476573069755144420012643955688385585044486198320254023993275877640389190849221338485714249552493189888737981977802378553561369712223670278124961402566891191612892357178955590807460877323640935511265697168427523217938695172308478966134590856870647533280496285594821316280374389270807660460684541398588591105539588955416265431786752046248620626186761114509346492148032934371945656196784034012815600335292705777687812680770947869116266521822688872568651108313038370428518702973298971500445168553153933139308594387593503928456122765013555540130451192251140079711551691573703532288141720005922711260380330270738284865582323684232244506435325486620751807743601755215278679826735648222003674206683166236639547175263562347021068338213635738236925395458527744520592400134180514608343268150030238311580849955425028022210373449260248666991906782306948417167886893927208470950024177485273817702130805272550434932096421265963158031160578305668548659980012809825571431225627062922778252945105242696691123608078095741600618423481157695171381337804263601913889388333724070291288853414115023131533051049103879310961163489291181982668102669659906412880535514611622419230784159804150419204105951324994246842964663456699218679705084105444035739428037764512007942554855452010806503685368932768252804127950820402556975076339795381175507530093482236463744269071195640945119887825874515590582886434944261911874973101398328286746120997008248697460090509000021791979814652915024686179239800104913333550357026637675345238495216303789784547162062024546404128809996323651977059739381943717476798628011767006057637259655740345123059224827352303021609315897342967910448101469420272790316681315363409604006386343275427903302970543617154008950101740987539991083214618407581749820424517692158546634517484726552342409677157019087905263281236244434550979852463497914841108706720681422522735589861854704765289422608503535444808594739673734139592768547136116535948114064095415855137374567696117286324297422545247291212355953659782280642378309756188458203681195181780656848058696883923432577541928407670892690502363192166387826220664091210708320452589941699239575368665491319070972819066370228887420902014994129140850190364114985696703237541326785334121215861993283112226086521964063298450961901155865475414565546254823069337327786907414765953994259999807214497614542978887632652065231226130599126013819429356643516734778616714418778983618760190377377314937026384800840626533814125521356853965277164646178812680708597123682406935287547385026663739805085015725967793185832794107670380927452704750089307655991739485251582822716170461776798681997540298268803258598536943936271379765510482578904006433526327171225638098529571066027196808918977550896920893917312945419307500566831196209539349297405567635816252738632478444524054422029260790609308222222917324349330661293829633176000289359338127643373791919407184043586916076244265957630639694105521992469949849767086130662143570717345919430187916732180222025132457573431191793264319458121444437048554033627187658524300447474527145522128206234466606767837628830111920764161919153248880429821044378416322624406509768972676367205395695238243488765947103303071382347433855108245735920974312993656904290789358182346325681274200725414887723490528061142339219839783771775672176077501363958028238599198276121476286920928855275154826294024842450084483441739097227639396035528373841576713072470955452342005042595281722762439935584122512461707242140042292149197270585478214661224469737840987748374666376057362997643487609610279705177100524821806545387495063676439044808490221192708208401889162398195808074938643983340307680511041876332660162356106687619905762282791184058165077706667556045652157771923575770443627101482569870609483254326326838302185183481612080734528490651636463502530843287694052865037145197549542441131326670688359110365727285522654337722147684846952446897506626206859932990938283340041466439119387085184851592338071976293456548211991542993751544679424905062266027394139199796405181234539097725667214558993320322547533236501339037255064766894867878325807672393295552634022399820921949108983530840238862632358857620818083840345526752270979096815780798803463330920202956037798597216422253852176485830802587521942325881806617928214348081772047801009699749478749097151056211741270335909099826083981679032692519679782844344098751466132271314396889040649417629217272722623619661587812913970012585604179891499028858459823921322575796569641617923900053410955869667264096717877409285978761165911501988106497083413384383382692877253714110518848403120324764194055517485041031604454833748206905050802752859425608816162028300145461012543670266410677021406139365731276391566198410113200539725546929096179302729089299391392780510490224969211457120098284961835137077997259743973542836748315622664463711378526493972065420071340052187758535028408122173713047515034029191346999434921830364390810395873365692001003815145052698220864705348490183649330557589898209923988847581348635634905418769156979109243910339157802924659442755808869176071643593900090385521191892987177879075070214883813038393451593147033260322305317654671303051022284487516687200841342079278098155249873754484046946558178730368658066297983099769852564006251746206678222855392321870227705990611727667128072687705223687050399084017942509768325309779082209631876658093505858554940311338012841190702739238791139118494767574660652577451318928756000479044327430232057231901568891259040284636641212049937017530868374797494939641637039658190809596563990601935101852879086487995814603936693361867579991650375623753662537042750026890025776321351754799095985851092489098496580813038940875978309235917694300113304044823232810359695664140847709825415005177132562608484512891455249269086286185502575877973948698523534288801254830186785287086542235952199451374252654580352753823263962294089418490834912852215209268062633622508291282071191757320317244871486977109899153337613775155074896917346974870092601589437177887830088749064087895223494881765017188133962687310386832004555872794428335567350385784962368671883053451250784228003588532142704756759865170235188297929519002193864671471578424762420941044490116619852134991117047897066754677665024381470423757878542909502677047624389124723910541071548204664715815150394378889920922677293507810830389159454536520585976785022529889318799079244920093549962971078344349343038932722190957547967543491337989087439969280567742502911959609407246711677952619207848311263426585082648660079331221585542883374048858726197146557472904227106900122582533285362035273852768692805403155714014901361186058683376329954471437116486238258797463257835741117588681030223146223984057851879803493302121680521475985785564475712090298776521105379264348935635330640904939595055182589015706039551374929865351235607498444996207449039412417493181215368121476756914872647604531240564272342855326104395466192390397918765599092956446162695619280722878777335666431427728587944652360875126829394094575714736433335598028832819124446515448539763180278459292730533941925894086778394842066834165289337987587518641881725112141812707759097797821432097798653367793573357676593401722420518924649815870100446198233211531222608785849860823721253109252252243913371907566799772071692349631018745899331316693449331719372953696065667560143873823487764813955344107600197634475822463207028752004766514897181072389624684480010412643236013065658089092923090375255899294423347201230878697661877297618903599659329217740682205604430460996929696298007259947597145071285794958868975072645984468212844966099371913646342968302598208462988424797903767901624017731991773780872953234319532656159843077373573463108688145972413326414962161263236050292623319809859855500889448661561295540696153795246583185049809507438997837838089097360069227268438929538453064837018657217103878564616821409054504428274178889546318323359991718598263299743993488113495849124856262054860730019879481557482506245549766426714519079481139585200428352262611146727831040975744913413021719412510066775834163992611179575232645604950653142310644781493025747693223891875160115469705675317252532029927871076597060763388836141498103188635480995703014837281688326456867812621062880871404871970211597587572162333378702280599595340027547006854855109491686908288919362677758800190999685656747709951764451988783520397509582334358317594989500576641282731624659620167208139269981047764545830609636919790435626596443713203071776428082127319090101225959032519911021090607846481863796700273914209342544491818172002861472793008929912275291597091439552822674278760017221395986543760254279290905405372606984062284745622421150976771404842969848649990525186727761767258921059867671643768399385767058458731327622766954074568822558675137567307034096125470815071837919399619517767006111053647055347194070559030091928608614943096960161345521665482276710241294956375898503828283863350515142460413456514585554188451406726167764480679248244754978001138452393411136110545599597131663030453153667387617595743286964408173070547467693411402807855556109470065570455835041006795394629748192087561551295929327956497474632952460461829046748712424012618595644967387626959353291815738789133904927335839965321396524822633740093698593209510371201055766584248128216741331303773298990118407400843562417662462267941759401806144976060047791609285391113657099508444569448708151489802806432188574084332749583445625823551984476672580118741363671440085137245339584452560975102544326099349384963257728782295573339438650754041747411640964966365549326505358805719794014425440959771272093638945409018394366069674793827604896851527444471550039210021259607603337199863299242494637624805301998684131343089259444130847296622586927700788928184880145678870291967521541993344365896578451036663037106096770058568891880607112559526591636373965853230822636031560612989481743445202024563893120360093746144599810501117178345613741732766023915008259171063405912891190375378365756325912857960370796912192371802785219945357171816830400803202760930344792664240864965737448951096192863593165839814027726691364052055222369448312241990723600578473089960093574948720069188048047730914422558128753388067668258904734819290530470364517533279807753178020887787998402057915138189956863461265406449919209243848188924433923842099790669295987402866602983055180016269816858048114317101829949564147417817905999875554041834590703922625444468553725925135871016769221819384034143738247006699361747446833980595232360994231701796941177907499702858321410264243880412826248898626661068208606878054058619704787581764917210832984892190984960095593437473187475251810341845092918669452015059623355281593632096901341269907802628156512283323029160704124346454900073884661411856370809628463174719132493163054223702727152815919824854851937950621366198791009176476083850871400376631174089777186778379284467816046166219556635381229963844469932179082232282377097157442991756225152202489083843261845326827811301516248374678481767004615745282695853889461233380400797647264833106636771123678490589214947235881544127393755592943706938036832938600887838139382332594317129874187282463185703779963642321023610443046760908830231277247886783610712492163846934590297750873449885066407951417896103242906855019958430213691599897060007194784828169327437090092710410159947432360601206241616979142694577725035102810652794368426363663605353131995118527900602407946598214110680102764204660540714140079359435365689391480464895305192539261058167200392537958867323463941962498442695160191488171802879018747716326520365691791720407579484200062474257494916473864989373738671523158786034608521141126894774025436106623833609754754392501826753701649655947406694871655233095379634922948208908632730616991273425722027309022190263193966615766101224162921859713489019983519938730946813978780465303107802723949704307109470405621243664354354808153145905211146953353164158778358689227401639762292362811352848475719840158593944847336603545894782727488239060963986307224952625880415190254830321911840225056710181319388242298980309697920867234572708032974312110339563536429788602605964202201408757809665812645612866486533837837283597215980212297987669287890551800971541952416055997843606340653167042535645817626819992568695166648746580080576448961085012638078047378489108066012955147021151966012801886548344333855385782317745068322221828254729014350269664786611431053734247735760126039898835708160178737352639441482526408539771253130454369821201323990810343111438338721559523122344847288560735686730370885520510668575723116879730944282656510447855773377061473970307106016260622387843926519996947828848939906781520865263347712007846073657029480701105303022763158534957700728470655911929656186959633158016587586165270095996255427150994638443790649889436890133691984735986625261713816298947981537251052241364504336477216095211025876264521808288509547301073270707691337230863747180627392991605680994600436464692930027268084387730841001183151640334947737442606870377582566111582557921070773499740773542385160332099343259355206468533783141551442864963135440037008591358930342433387550816053892004588294398731567904453007433862969838676070288481664315579300886013585036797776943322214222814036020740721404326725901413950105726976510970431763266435615721344782047989007825150728110291763024197674832088910914338354668375510656713022071490500159227069758804597454879191508154619769628394602543889321745137749976377951760939181616857759845399478121174422357543905574660527206841813530374538205209659313469355245548203202297139243782399235955265380601627551500193662009369375690709585900370200632390603069100435963874944741669283234056131718252687116859151543430401993340515094611110873927844899973565057735896484585931148139351971664116004144194606935504016124015802898361173778335380575438945179391335635762672717917652267421416999246358306660378222247803233956795676782383895362259980094861644990551216671968307733075862582928717774509267501766174808331012867268388073035007820082663286451176970469678710725580677435661908510154797368228721534423764897741537084984919542767613576255586121649096525488055520933142853886311875464498113610462889473673498276596487008615010438290068085505667979531825428804408250045555648409034963493458203238545888544452074155100669398168214564998930393873171887122838996073402926212895450360906696190308383694023058496504008459220763955193065755275462587622164886354342752671674877104098511013739182747893097592174530148423971063725833700721442614455527790173257712244155391180177790858587480587659395049304594572641214563509867706531225613113167820576485321534238808278837546343860943521844334142486452643547742399449038471737812125224275000961917658469360032115980157318447720188859578456772243179737028844394609170837144564185769100516356226139259745258124307425282914396022899138067112166121582442598998874576519360570461234454819115008365595274820464058922350101958093392871923859227367152536137136733735131326836538791930014047954635945734463993070926271682126347360572372513760006171626775931043669671250968605570970806025539615176216856834262221559121394501636637525477567105071787262935855349131809469290266446138707026880197751737177660106737142607635555669617353186208565498815290303729635573051023925500316525709179137070207938776074424890975622191572678486840970235818868832953108059497616665237408977562744481857183556034656599046451949422318632949538882119795035489289780271050965497628287301049840658208112772950703491539244088382651632641256495816370777988204441801275947757858945553093587841285443712452204324465899448606896238782875597849872482943097047061368020826181032281588729954807256920486948792360097056239540604874548439599841418509375787839356968209776546155215291143139500073658123032140305951771791149933092538394269001183777028972814110628492716227194969408133248513216980215817714406429853106621659516220362579226573734078592286887266005037105874344136081272340543112630933685450597290643087408402275882241233158837949914540707064347104172697779099719583642608188984489412213589857431620708913609741929556122755987928077975535822993887940392432871793450944172272642442156885885552978154735777190997216316199002462532609890989201766554799501146705098098365072295463693886002536708601503929160113514639415310210682319973508763271109274416557716123323634321342683376833677974896508323280230906144427709347129420929263555383904023119296274338490254163656938133639638139557784656592371164203561466041022148531587743651606741442329660060301870328640052982526437361076900875679538487764952796911006632108869225881617168580507184110018140789113653455428662983616531823160429104775858324685710506706694767933364234156705671995402097052084821696200731194755218447097664657213416864812935049847911452418481747310379435345017836099439986287849998754292975343243719209110306140321477814795206177201638868044103270981959083611735030574225131180793943944665592463424458702477316464169468894595974500886418522076622786152154866669277892399375357983319315104428711327809956299301113635926528751695940528263718799129602333180803415307680492593763483787948740206572884731358800489285733375522549488599664655483288126454891731666865523189271641316666180545748592585399766833001049840671053238797800239477101600240287868195090063242071963882511400515792156359315404147233807983276355197598941944919284240761490629477026285711035328320926147846918403258149184521478295765163175074805995203641117387610157065586382506591139195109160448532339008632877202797056040693300643258193095751320321219897767016342264893984116806103503847680029336263166108856505744030117869871241571018158753390441820581058130489609313288291198182450482043682127240882065961427591999681869369291758186849654964495868615639554962182406396078291130407447194639367741499521045358045573575811308746717819276476740757515766585590398085080901689520461357651888053687522806866906739511167290693264900455937351325538841653110652699050449510866481390436522554255850846695079405467642082308795270297007727643740733349442992618217914229908564506409142025534822880810956231750170335597133140552374003181942894772823016144805713712255401837723516910009696487181556782930829346671386880674795358310062210422719775534255974560945477315328224033345465201081638251937818087837831701304120793759348948141474650044083959845358562216448129809449057595895909929269041197113886489141041806397790641000307510185597541763465350935372141914198617457094855543715115984337263332827559178131301139601501894188549164134628016400720089584385758040765461741769488110685666759387113236814295154337132469155487650215515673762123072051924875183783425830031161839100282975783898815116674615319117760088126003036620827738693694210898882560595676856892073156788051402272523129791460744749929988502822633363518139505258489393578128786277167835318005869539707854546731981953804392454825584328020758127187762469718587457984590080261188776983033136616017844725321170926086357627834574409912885480159851083714917643072204040499607256019843875970284011046154982909215533498880293317893276825655625226559078022372484167682385646418365361405786862637222985505113546198698583926213544782377358864691207397675046490495475422876352350783740620192441335079044322812093307065577619809947750177901141588413249709302994776455951938099972003752019307578905149306242434498517518357635576778324881146878612250111205031074069391191423431480444387554709556135034926804284368450963946639495932314371202791398575422029572386441589485622956443664338549858218882263820957464531834627316089490655662909027018821541637442360090208939556763535839787710985479292667735295119066555913239629037269714203205436194259379393888111426745863705228010183098391692071132564628067594521562174532777925014557565625826793219550987676343619443945742580319472469618754083734650911027223769026758961260544382426570975767879327524521688150343276238844329452290019270855973183394952313774705417671748209585669478062942115904901423246849849327786539359668638700714438153966633210478675958138134639335392633824358602471463790718371793916787155154185253650560552840855479057978579551550563149799232621836117390631679168776187329808767798712858896989569133439405866748093338730357605110748049367937293118244697681135408179950023516262537097975095842664317513805380477998602302615313065591785418946457683287053825063577172102678186525293485547699129703058159435636946281195837658877240295163825559148448822446334985456435827626080590981296824831351460062947643162984430539654460456182384485149418693765481793603504682986603999945851067308342902690046899979760680861028849025667150340090091835371227384255807580774109411980337818895701120886351375495843847814782850225159763906458213625634364717378067490248772136206038483134386767831730633615393263419826263360053435416134812889643204128618341181649778756108789013808779493583090623935457518370349343860649398667153476769269340492102560531718113293489200075870189137686865444204090509474432759126106801164256622460193298334271042986682602525694988554208224920377018061092267725630770361173801962358596675748514915498806511434675678878720044848664874187519538389664242032447647747751202125751858201891765491240169614465724186631156131495024058444704336841864402442479351073559819336063944672985248500234110240695565352474116164415468449847074533207991944075005115691040711480119116324869810931238628402870312453309713636366328572355687059947299375554212646378934489226634817968450547889350330331380218534350733695907210201696482875749425989961084152818565497599432788936823538748286016601206023756982870424185635895571369074389007244434869956692045775751964281951959853007008311962620926247169456432789734815130989957389585418831574303330283066565864946590799622170730819607411263746946542295366116089356718838710695891394282438635315855077471782113673742659968380314096776907342157118255844568220054201650652307971726913192765782708315851728034604856537303555309945840272152649468803014310157225086717509440670080464518381079134464048203164801547500277340773061149357857827163082038795739281945901217047541147005678696716533003009405779593480873625017507144514196913223399821194068738385123607035135680266699636305448650675079909342864285628195621375313057162435074245540345353063746828409819664123571415029295322561104145519065669616932514649545932473927161508489841398267063249639615252028312526418788315653967393368017303037687521147540945237053379817669947178107456663959384544226329425364535242831675420689117735084677117810119960107313393045261568785412546928569052473492858809814819859114109233176658808883141602133222845499702446155096947731091136517429678083385682705757790476663722220109640686615113792125583498279108132485586614570840912613951562851828551263240107303107110393696968864115678577024144128577377945139478379374769035819644955434610488683769802728752205239302475209463887585245030930752126212092784996659813930498285749871674869848060630673405431131948549072702432784444207536531831463738230246769929477738631429725342289891706868784819761943207399900897020963561682358133936941625211233588824040348598613325046653232658654278092832498495721085711450302688205514325064880593937510934496860459179456685367928147680955543922138873139526475824949671587791813222125439213486727246544502654015520199983892867701352717847861241086711705429307666010890564595123201916055144292477426827033222055757805975779560714997049470836099764826113916265765160639126681139055220891358587332037423852044505870262621973294556908273548924981669739125747175606404215978390853231664862855312172663873030642872822758912244892983546250341732142117430956525585842648836312267310090078327846534093599842959826155316147134057267299137450869530830517730601934554608574144778348910966698394048726303761004101000812373524926750400562744933085723738421214489352476962864787218924901081417580449412733144561828778431996908490259071266927178165348651813935844763032909857179452947633125930908681762534892028627400877638781359951282058747245092081464913168898413145776503675887074155863135157129128844426969444315402181209422974543209623615096214555590858499444919562498890849969193909393847281758847430403087059895230729466158043245294663902919260440840544126528883420818112597198854677808652179243801089700263860015358879518965763368814529888897551862351153552504143907329994669036032728825024911020596337513584728050866909665636327052081232389166337453542934310263856863295094337064771090441190427925193747718482972623537039398834767866167731882556810905647249516583638056705768492238941491572603549847260196341366054976897106150752920943962626249008910042172375811587833555309232677066345706195974235175042237804544742901214298837309515528395830811970069461112162323556032338969294259114950002485454781800078986109252547672391054339223873122854788033473971169486366901843505347541169681064306602717030706721859218471093914727240824034326197256958655112506580329214299764837928732316710666759353290542686695265812615487071037139894743348517210679504465443701429265458710989177289700544707640728351753014028082165498065006637091075574244258634804786861817402000821055500764994640603455586372251768863853370514343002554407585107908111210297878715514397507241084335011224550756101290471817380623113262080207239495050978392855962282948539176424154574668750749915859075357181497898392092358876445687039200047947409840168548565742237985923683954884371068534263002137203357996496348336925834123445714016645038024473687975468564522934976739795516670485510049386391639740059221086425814515513270384223782082156373462989347637466422969344236937258079531256814816812013861917118177604864771671273839554176346022511083079824013886929251194640912864952287668718798376203265247064256073616894598690143375995968790692328491168683115801830749777778113810133112370820930914741695573904820038299930308527344838648034275282845562423612246105867720236280478048637427247748767334529663897375441495368625553759543853325163940226377278751205145275801106200750915420747134597983201954943105061804396876294493963136131841356543346644347639262499599579084520400895695257634079544859664301824851725651507297064513859647421942324577685620731836971502260839229785232201237634878227974103350584014660106989565438435280890145426003059663210597560135925238070561217528008005444869668563661677415265319358923123554612942816371008674518990418527724185307281840659549783664734732108683187076301556456474082532216597724054865291892745801321494052789437478033266488063849418280483482923832360176313837978906543365776040892017166609360313935456269701187414200417308526833905122352310609210845817155476170518888526604683542099874573541880669665278972576985559267400081152871993658809677601072719261353073569984946576114415563864413545531952475566668920576693116698698842908675496205276560275677197207403210653639820085502199813525383012371455849333039538265890340123163999590577734798372705298312865050285187341819743910103466947068969201700415820654691363618342489672288889715122258681545075264151508769374644848956203193770955225855376004411362624051973296561688815201102951542778815713571083923518784973132621495297645954805522949614763626391076880301191411361785168568866117976427109274954790888315810132099505125366986058692028326208737425972945571003616174213797294801770385730039493223988657686728225901729070524192848988838496660254867090789854326239348621092904288455221046264424135361809315523996188112362428061137108070624679930389974592803260413685572229984421314893135989965226233588377217616795287873138733066315666225197977822549846086347685137922775485186403576687031089115742601896638562280831273745829135235320869709161627996554735139153333029814386677064276474014759776386008359348320896707862342246616399437456568018004107947335246554933973243014113281149028686772641349357463433822986540670227051986556477996911897875202608541324627219731902677881765174454413440951678696587877845339987076729705137661956880845552943183820009796206697103961702875712233670585563178005461330897891676017616740098755685492157288996282840161776885306059376447376329883524501368854330342402552532751253486797779446613334983660761975633786347621013152152037032008868843255269951425464587879461447945156832568220586706555563235190247948799097497764166090064065183185486584232964698775972043015332479098763415818979889797726670959859653769314360490914501940152259585486798605463085828782713853295840547081275793271799531316556014695532318482566524055902536210365560165138497588705032589103364379203556016264900616837902125426987819896677527617671574701509591405020837621867571101062496324580935120760620910447553552815845690095747301022535348627207321814611127460949661329316768796649784079703295538653068071811112331744138116247801866903394024458293434867235153527749133815774905860187436310027834592454749051916708915417906337788842864547529597865649760478907822076188029454555233574316188505860888839802244171511638338881447154433891921399593486864498317344025499809591948620426807183409571105549055286507191197466336630222275286412309616760055419790343105309719285851556397538445554671963491885112094273872274892357245595397049428984757285952861894159281101583564758575761868172056798148216768666925889512237620362562630068506870503355325368486441965187903931454241979409019203006500467147812093328787533820063258856328956666528597843665045429288915844187469269431284539175414827633648746811822358983394456975007887311308096392997154057147620752764701988482653358698306071639373685463603819929765765608948059070297517040854036470948246832853924046110425556414838200135440064807892209989290964573792524511418620867488714159860425643191611388238206514099229606296437031418592363027673616414800430485425576994173634011373556749853662903864437797419780224533714853699825269294675361697907441843332117911827875329756829426444391255991093090506305939190542476115378733986496715703138543148706563744345405895787615583723176972938003845220018287968971989851506326148805174389152710976301325245826070138361369652098470858615532120274704276597676660246492376982714309049718430008012138429969282627942802317449113908589008490361163939201640955350236432593752274522870695383469444533875660465303953626499642752227480790458132606039188098098169634020242951981796001710331137003422095256969963764782345303004742030701370508449668914425298507504879438980692565229193064092144937704537459748123865118705716361602076365577397668169507784173072194022294934060605175167775299571951596052673710818906076809844206184037492708262785596322716016633592419373529535506745186812355070592732908698399394033722206506188652919011351463267743327262350196863643903982798960813296295533113046823256790691374054011641775369365415238503315608701112517390866575891560055641797380024317894077913290137943743049565269220681757847645950387462763528742127969932667745999640474150506401456746887910614567750186241432254544377755903324096304983649232119475464223604265774705444960072849234275925156587097795965902050233732843348154181020055441209747943373924071808741693869056557405253868412065887435149778592593991539396553080653948415697518207837494912212862721928476515095278743498933244018247456780046511392907342227692518920576533195477021042179633977241470103145313556009061957864074677292228787638613006694825422767421588070507468593028669992010456069212745830498390383637530497422863386190554130811683682506056214196953531143211511658368534291678225815563033884529243075950014086842197648682337718053308344895380385885886087087693039444984604311154196162008245560721006229388821952791852044687056912082915370740092428684068583130529795876497960973244649999119495002036547137902156363975641892268197910340191339309477311715905769779629304116574560047439622261199403554277167299043809638536577559127773979897406852981260277990947157116289649488906702291371480770172717757945659967214136606308595169516181285839142796977150322080072232440481812077203055888891932587848995704914196709063982949403356316431197241530104909312401190740315409898532474567281589910107140318548314039146428159058028454261365783891084382112973930278664350592582125760533146309515738861655716406696202390540716755726876582618849219191297740044743602118392187933420925897598772845510675695596523423354543587002886423042102678874916675124056252336439048826332934784476799167565617833613630001814389117218404982239970883076737440832527530156977943757794671273136902692140693286712111448759932587131855024239904097234567315697688300260937502893364216189541453194894638723297019124464293463814847726366060992050057329427351941373758528384662835346943501302595500448388211037295321485928414011892825280838837254988523595499411235456240371223900527286715066474301879810345335350953676785671337489946338542631801774957479699786358597334786047140345223668997150555711674610150922474891458116641857494124444418793841502454176067786614338181087541501437924678504478739592648299555536751618523632905652791217142822679475585667881094584621453812468180808885872311067657154804539269504002623865288217828300387838259061439524974565196825236072851345049343335854674730591665000053014888016651065476581998546270237593632804924204437033411382647533819580028821594612746163128542957713680820841831529596542960987817651629444583067514923956891147542511390809346151814423274874548003557870988828525583751861616143154539024207297078071157374791043471743271636977483751510329165108664060272925955424571331344078690607920329057134118797550722147116369673448538051470109377472293670723082283024756645069295004121786443620634099608757653160435751062051133347272718311910308804791665683550298428308757170533292120749668994883242469321008550551433788568381840527325416242696216701328428953481867272510659883668412035529780883206929827172691466550962977253443964882862011018152174061779505812795974709035523220629257061301704294760026690657885298326282527670754666662546278506924718771445943483177237964359872757001086650649679628339339963796715626063521801713253643227377815864087823197188988941143025316151791218688845484535918463331646592664127909507464571850657938850153876661615535122468551104015787604197132626847489757329876185814540297536485721102724861713703989028671786258062072160789640334744795694194884895417303924945458445925269644369502904884816573269944984458016673374918176975591198910251544277194632319855838765150116555679964579492271937638614402946794468374114319540905627492868308083279635472271908613972044694737568583924163132891158777758172097633481210990089014529848082322067365268031269850695737046038632918198753026916350795991366351312019177341879242214286903123781463051470602854812660295977834898814197438678598126974716821789816234903487543089544745978706704347885299654594994588726296899062883839554857284114548822803381653068075439263273044606324691520845370742240226081185597960514815203085963534320364876478252957863441464003697642689228807625503689266357163469404031664273712408577186609175491901290591163545786851218854425919615998211653703143753534057997415191149855872545575195446507175282419307166820952230028325156401756577264940187057031884534435640997932598562026399063865577027677980672999017808740355428925056738774004905607244710759847709761742178766864929181636693149428929517620410006605263292484842811194795292985563893408242903728810140898785167621295701826319087902396640693302617011498544600221596212134420739189845754412315485088543167298410649186737337700047567337459371940764078768151415400450489147764740408600253101450154420657287936376416912728079566856714646365050671717831648756728144836347591912249952922369670467753453368832043117872407328212793190273836456643191954109075252877068190074168068402539374278186781005614721656207761845141108845430691285171416614894870209841881030184794388484904021854971560840299686732406514649517405891465778038474356069263810475783798539277571538824288649085505615690916090137236798463424527183826527015198640725936230239926651278310036903584978660916117502659294826305435596231945280185137644961667836560420516926005734537740327066459451708988441051094451458372731373736059776927545716676265659760217529789954553225617592442247298901991801450028152913140803840319131923884229129597712897291740068045465024559750225936192791091390316668389660263353135327862968154227762818316835555280654695552203685269742417102394128380812729582727782019387478230776530114029741427390271608937243896919199362536926773062358996969458772430256315475950781958056843634143961321286292188411146386015361604130580229283469945199655315772326062572670140857736685575734604961083819759643802468837157448185102176762259893290534475492581403603854180652511095147155657422964923321518111859823203717267605089286300439536080076772650581279346784210321650216765207346859423314488753453402604561859234366440785598826059824536374144219940222318966197655665506589549031230515137939272347755491587698337382949179260559206598992699305078672363714546486078829041309290459303635793451387583286925636292736271127319866641718747355520450640318921821045227471403791518121327442743523806803089344153410207515413390002589824190176567082988183699812717391445979092639669546714740582309760367005557926478816497710423715081250283153523850957423522729964789944271596374775916865485786709204280670343878267361433597992909903816965514260229816061585105501260634053932758891901253431967630156510171440868591737321936726013845522139631350707499006455929971423208666878095071314473978508837779651223001487364684891068169760825980195971532273157299878814996817337293753336485817068364113522459138873229500351267823628230887185657708244849185065052032577112651081864437776802613689449335199651887787039606485208357662391113923567067664287117197761572675990064272524051322575594955308834958780567337304068269870665827237285286636662761951588845471207221604986732330238476168507472075984949585896946075023438878812512660050707601819888675166908036019754284839675279938869899891282181892127366021737828313557177397006956442905337011053003355868758752704811857705573629461180929233456591186814548628719735681154968648840251494509599260044419336091685366879164623632083877593230704812361454678241636262713699400959023560813615186038238761648935565347517568241354846046972812378259919194965463378478718102594720891087871161101955152631165019941113235434371380089908269581455521889210523837462765347385844222300626193748501889475314264244204391698693293899629065210568167744348745521976662097338883743616794115707162601253132411165348558164429402492687588342782335266091713132274234035176692669608219621249058344408729124529072877650953896293899709522611155742465151869856839642206652531404068074033676178199811723687672891641877160666204611648285671204301432513152311890875017372074955303581466690266408896174105890858002926697806933542913327905065420758761168420188104313234714150141884030198569334503880901293939040466561751878765106285452495962794556445980038087673701017453811615376648695177675617298132691379823767796785214049981968642174243401704846793948841964891727876633517420800749194719812538638164886615900036492445488714040330488602981543513646594988157624078421498176931731416096819146355619350286465357459242298581395449878855442691855424810070135373799075658905706507819332633776748272401088857392692821035797133172250590564680197124689821027801568826089259629771258522842910328033044666542095729864262804083372638906780435380622628318501527224345608875704137036546316225953422464453527465316259757596117289877540675119539813864636340581731929938824049768475534398661150600179273846904616744340202071093728990293675340934528290774545559460267415078950096240705451152899226917787329961653969305339552191706726324122310699757569700406160386603468270844782779112542199207565643580620429468163518677998732851157626556121348749615904263148099047038812778970984230296522583335051280811673597853717263193884078866806928329498187782478594079891267230922713250788558845164413860143373529432223191209148395596213815644563384826327651290316269150193690013378048496077651122778865330685225189852075369368374219848387612810193695384788070035347235921070010870909811672672586081735176975137421581314377307478484950986298348054965802106168484025585146202026320226313732080435197310582885711238878342615476596859340417300406377980398812674458797020836984196280681285646172405864227759115271848937369921378802315304854573760760671136839370608559195862640272055049545331142063072923696453667182014658252864553371150993688885478503983220051501815364799736069344784201874001035991750087882814910603478021847731917852543641337123841353705051817343053161969496982358974412150724768592864034662039776382752097952894491231856803068305845383888638290406616506755030591317642381493603118599401213822252828560634786588107642567481381830629061927148560747671541389953758695820938186990318192917901753064633938933329862072746923530775990400447550121468995121873262371035634132299205877047257369587686185197929856229229997953720478481697537921957118923425035716902308962652585376555077535390532421416690599980919060331295250755167133194890315992833623785383005159469617083358451207634744079577164963373115546700030637475221815464462601116800133607913720442188698382525660046656943161957222066150107559053655420533326877024185328861413199913857164910404985993043100800161568701433329776139442912159371400381040666546914478166186778294576625380256691376143113294928649298929911842509167187886485657908645610394609861590821393050036533321791339483003775377395677224359238079849351291713935390995564725563332591083171366275747804938287537067088168605125597063588347278368017064869779161696011736753179865517683648460012267200724858891538111410453218672875414110015050968208700424620728765408108563755073475831092577242747669722364889942252719033790195179526753800087753223911059072439892007521602164057797482676055594864540826754844400045862928906223202487349409853739629533019178061475765104294026392988758073650696487196149780174153604122026673825737431847678436825847280211745058900546366540021307992629515921788291749029836418784113143450045646156622623984809295643923380012497302621105254133977373093719305284660920820571330299915928128387581440711785700634781810441278718504726017451328433726705799129131917664173799453530441390940050108380849239415803517544701431014564056130792363391768957055942743819703435889597309714201194959415593516550465509535386891908656318663298187958591551910317465615743555340071784936280374254596287366720846058573528379107337413924525788093481510813919044652698490458951361886119069804169178533753609892690144920579955743156058522073712681657495104220585372968810534438236206105876798523616203592841002703100464430018085411068921952002564216186387189198452424817431063415846449970675033898890415851414998137317583007901366544345859329011947613761141761622838727228188966640465629774588307232110236270702763600362684105326132244667288283042449953427170311932084378068383779936662447511165175511109168064933797944773328384429267078293885806879871712180222780761384978523513557421747529479773623051785271796402996989751948068224644432850729923857757713674821588291732110681194655050708934415607311607553106638729850632613544156770321474795473757724098623908306219901348087573387840816125481159459712984411932562797580894402507888904692212113154628879252561946623623542620451351456180292057477179874683580009257491278652672127416943698665108147988178694528450259202153839294496676610899373897388397380335182201478967034192455562598021934601595592328411110855164370086559064809085222548432989240648811579381835706029067608688106758645131027851191459546773235890965254148205577538360447884040450778779716892670455965040343749936792415434752956873987017505515707233327078321055459832838656179040645557731814210086160855288063209122045524977531353848817051450723334256858520301472135742925130759850251990428729896386093126339789556505776284131169847244467892035910948785286306817614978388644334052400260386349146898594863312607415828917147759501296413054171508407543565060777652395694766712729123494317776706382564202418391723072999653064599503502948423345169324966957432151044178169499901930175468454315488006683332762555701170873528263224982921549186878607153583315317433353662215191386909972585753699746091173495411186179147957518731691764458466762310157627859786484332426168785791463301137697574508396204649541908053754725302282285167409371892824174127430627144890679718440771228702087667728280326360254369043800968991454554155404191446651960884519006416395567754674984294855966772421112073588845099195408973932998725186969503343321294548873895941708215550116293158953673285120477949124642300495207696150881527129166431533372028423569331100921221917707196758229220485958884549292936490362080723429395876554817319569332050460003001201434179945927949004713339088286660601357918727255930871111071058383631701062083145063716779974135923666137743507096728996834265311152188706196337060106834985546424903440467215463256737412279847917942374470320140042220558072816277750781369053418743290265433530340154140637543974659267281826124472719463489292225943406036337778243518846647519935996292182658182831798719273605703548862823409287408834045640874375509569626468829903242458577974453767551690665222698719118479684023075977914235858257695820879339541331934588939193344948484647642385853187274873319025990559196626018147721807889139405521564269460805835304268777230617706915582953957920658943363115565583834330282515572132404346350771388212355841006863700315374801859258421882745227805219521343111898323564329846741002212748301030305375971715843381469219514200297733186782051915997081881784907917367320933076877126138897856020284896944126890861637732665809633300376512268901472292700364310791482025690990991408112700624984152329794779455196580537169113718313203640167426049206262860078983234434226640150157477383111890247691222004912712272480702714836431489751450934183366419376116704926704172530160713121905318506676025611192272481648062446834695311689583318365177118964821842621678568653003052768157030575526879629368223227749438720579822669302058333814459206518370213845591203772024689300518285499133248493309273951200446312536808269277164142045836504299217529667061715028678588161036037149400840825353224244265066358734043678912666690021306370529964138063811407432257052076775518468705503512031969470192744222266402582179981301266881852464303783280525382964887204261846663322775242113143584870783729270085177236526164043407392434410297452684802236690803232908765264737031486998008835386820149915329760957091247774226160232503453409211653532588880814615579286484361881097488535512317631541809036658514589093869167761038601267216972455838930696244281688809714792294002234626050120721951300948890747441861747048314353219610866428511463721962607388268561751778227290267732012524637322124195126552766798829331338907524635458313924055042375633944472131083028503368521218519381446644257106226163469006081784820368889718409266814208605678977610715239470678649770275970357161621033968776112438447758055569037925162214206931055038288698089642733661701055047202640759359364631971525553223555739480806079708393756331216493019542753478233028427784034118037087723485628107433746555370410245657231986338810885936227798539789872086065286278351732499263317758531616591146631863640236688008409986440543834466935135415395256925954390372103145732300736712611408031511048965451542329529900166117649651182520250617684223835008310852302346181806361527614708790594456842705993829034266687677125170940652146824562619522668431735630117363302714171390651323945978458632123379589691643533934482441744435705821652584529985015743756746703446306227724887955910932992216478099182664869101640136463458177801662730154710632657384214122985708622437130239935623233723598138878875553101978788597007395390234409406577413632979213779667161889369720582875252772863928468450874466491182215447369933393801018013970143941743758693214617334287753723006943462499860830275795049909611761752884024634548800640725877783036140607031102952209542206780006747170740201531026979295885148782383778599049823588761163697979514895618942422644120168184542618927444137298990946275736078584358926802933517817791726524620019105845633077978322555703139475338015133583818963562643609302193708022320648835815241928246062944273361535981268752380641758836643033934679866046661949900153259088401303374294818614639174545146453800748044976944955536505084974295132785099110620757450761725423104002981385296347170960511921469221515004684740922998407016687697981822909239863488701796646696833234039494643833174721048820266143322889526749138022510364981808658048795573359819854777293846557077321454730100217122884335459409517971779758789243899207657181497294545949554232801479049754960389731772662678365928928396592052217146972641099530929190596303446008033328808411557457136442020923334415129830163485733700073252365671051741685255550879804584122927041447730896367504019907718866155428292960386858780213438409891397719148033399670856670743487572903570005254483767181573128682869291763029900106286114182986298969886367165246263385409077495576537276529482123724975850201365373395007794436239972438060756093232105113813163199545561051288124205765081611348482294822393729772057106115410137201586685709447350678970939644727337885814993110250553209197405853585487044221732395169571435973528941287156241669251592495461915570629304620140493714294379352434811026620769603018565426802786633238850075941785434911842732802275271663026225558834523668881424098063071266584194029621023414484501486748918633591142453004140795660048028127294885227729791322783125421371031876001977520081711532216103225249907177805441181339644269738110894638004481694245895668500817295216367512609106055205497148632606518660421828634827599609585025463013346769505725442380941092272668364826107970773886248470920427319247077956029513455770254768023926063016303840110631036691582783079931720317268542592756861088386102740546627252853830457213966071469099033627325416971778185049300829345408778602164567397221520994367823640287903100727270369397985487957583567914593278710183861303213827399817364791574604394681655299320407982652008028297731337023339290230112428327197416345677657878165143084487329628936690086725657330960349217226470687491192040384511137694951372295886914845631590546785263552920817495137615284600476284094226995828483215851375630104250115211580503207810487163780778424021258683553787084241032477583359022084432106652217587028989046990199697961013186640349291533971803345344936418703167732537447079987983446902766227764592635450535500575205537376913322110998065812120451380753501186039148396456403704615158772203868315862194474173358184417979722528078365143676014763949573390067299553963758420928432357197946561890640825642029486595698181855298520369119763151051965060477935578666050700408969867847097773236772484999047897908262064167401996186339696480451827482559195909940262921371556046983792237771845667994805956729667759242283121162571881313068505158997433234400843669599653201847056982835228350730302478863963829289436137617505294467278256374789504195169066143798770955967026750796443225489880648809601739989386219420845415038226703753167657450213490317905573383139337715053848090714680167425452646930199074456995030563554510900410936679835648783250760614874653767803943843240868426381555426917221826498378190438175309519037839191885886522397098730231973200698910855054279000344484908828146706291318807491138379330214424875560105338726006128261492379210920675344731151825844075355906467114576697502090064116069515089105272670641749069624786059341568468797194539250811735697802252126971435375124385379885112949310738796626941470164603509898002216015962108748416185434143991665575899215124962119522049420281078816427521976898840738948939685059906649730773506390383173657302968271243588963377516545162640359773925389551698704785523816453057605768642228623533696709931296424020989534394991289470607591849437675563472924083851900937051808169089179068381654452081132038028468149276601610230589976860997481767485419329137871349600712404490092418184358535904270882949592670703725669443426575161889419583339440189873353627406543353882318925620251088621786574983051710704885558818856759009087518083044380670831152859523681695800437435540779489103391607621087482961772173325707689415594824689818372256050912857308559836650166515855183251218320353328382150313011697063784591573524760136128267712843443294619427202040209249512567338068220684314392917307081268939189770517678657560316682347679298758816059563132385790839595476698320939181420786406253147798376881199551645891033107118210948682112055361966512846469610602877048843095646417029672772744668022515386625222920221209915471414094756095265169032232173351317070973474460347618507699748136251385196697025043328144169896137688762320252621817035372824565301421679493478102725814587252383671711019991043597553038064525776607769398841542945327432472873485125662117594510207054365344748233146518650109979782187502595472312332218409384360759568503858639286509124993700814101197655505710729514846656977353842703998180114742132350828165945965418765020988900246426678626444728260424576260155463286945026676962429808759047933422013650861790381616760755219056521495862977960783902487151415796118474959412940070379087027577977513385586177725409441344524256831302488484467041706417070754454136889079691510845372793765261718775096065710882949718034877036242037081952848281032881228762445045461127208767995144793445561579232958026388771086724727766800442507420210521729338181145025231558897374607952841498915280715959052829378175461032549898080485561665927634134678744452435441620244680367066216825355338262627533642476964871725907957784902858826008191269705397322189244341428286280438491497768071743531025222182824726428893610703845717778253657626698029325856231193914122194099932255455118125139725674187906802333485890631118496815085514117943843007669600736772235676887769237486575806579645286922395081171240074600715961003150231609890646706412331184692882369937500408038032997649276778055818909315383271231025104973447790073668763014360738956613037188974931372037345801457232234414219761371040288228990843814333941906070432923273642884427652033850150124852865739739555761313719971509020837407694076648505273894232208270065558028962331692078827277752350099344053681018943968709275362822165779122729324511725731522480192239911413651836812515121051277211546793694879037483308313971632540430393024784281638901873954605246926827556081198390329210622748198998066303352129110293447379648799309481064971096655683218921614208774427497722183117020568298186753019874691170584273616080359593932745644015702040000340620930553141986542326327816487831756982285730647004888354456663756589465082304730318900757271107846785282236623143035503682877001419981835527159537102661474213650121114529161799949096224287895205419672255154152198268521945437065579145096542158373962945794543239984482223885758945116659086280633486639801260864027177423238204885224033084181824388261343058468616018063049512350467417900195771916498105208427761472079282925489097413246508759240405224564088916180888986319115090179724416024658473676469416222585988740649223349614099635547336896643079468072972041886629582614110740332944290143928542068868421504760324755652498503086530254726504259862205985405162875418330916597972100767880735796978617692125537089842969906682390352494187065472790765330676491162237554507637469121279453594929740216540501737283304774815408199905348862289767894399332575537189703791548522583656893674052938027808246844832889583573190356063229750700904113441726242406774939124028732532709385593963944108086306831272305804668965324465907163787252203357494731789941337704429324294904713467674929585274719743503881437772156726538224488335237336644426926355743460955454865501836209800553621338264657500277357092786988543122091658748054410050335543149684986738467346408383200410554705998928401148572663121786997115380355916635444550848867145154718772270899924333937647899211102915497704221400080445440434149636566584352176465298493461626939050326027733390242851627823716283576577072975761376514198598264692846332257503439054289865322137383623285478615007273279650112354329266292080468559385730204286443105167183609937646158190667909107531262818199385754762992877433204127519010292961302694548448887473281031575836951711332682443892286923626692845341690750123316742266518936458766146395715565920466178641658358862052783669131254153457951983237556596979001925652987568514203393849382102959429872390376358746173108306910875187078513465578683929696938349031702613160042725523719500891822774446125341183781405878989319128108575902982648287251341193084290957625375443318401905177433632518296366744144135488307913287604548046339198030613046007718570325169297872072017398277035659326900191236541301848641953868996469683164991779156240320885244857949227130034578429692765805660097923268499908951372495657266710033042530646669828964196753816684629085004783122584667916431672015026545265419359309031291580311774397266419012171741785931442191511778057600138534929676060875129214693028396997795582165797637100024598711622104612532052648045357105845313291315546136605146142446847757140130286219928240623978932411098436330677397191579900447471920246151979053838390628669750914216456000790835081142128378410595101678743621886624808043841975334086482704682653391648053093457293707029012586595201255090893272763254219013376933873857005523989055631255861447634041027357333888641496615103523697621271371158613998812871766020642655032735967932213301394813892230669559440969394331004709471477814541849431479516449719844512415250170960028312526140943092153566669238262476871563116207337850761481806774813118288040293344059379562684254264358211691047984118957063020440191839643859005389802723019872916228698460015460787503474595119472331554148651404855562120562789545587155997163335583146685780469698302145912385766281742706089921597518886525927740815888250485935905772639295751152298356907650574737980628753283517434018583465676839128966236419340826624507532595745588053522491017923538436803769189163268479271078796582112308893853982830512301425435313419912545704086792080939681583265830597960709536623750474644130182598841993008457006848683529708301172787009063689337189997834268389377552734594228786552876633752011397338593691507722561423547506592259215921967166746761896226766028120275512551188240666443335263901623834532136780196107769813689128492277981262848300167703841856212763428557598638740625540230029870170093555229040184414250327584415015223216979482543165317088622885661516475296816971504723999846258022842611733324722884438126475171010508612539567876442739958909917997178540593845810229325885370104652678674539822203716602374832655249549284022452926898376868128066777340828883767756287792210056690611512497427824113396639992194977854289344987951187993465761241735652396690508185264216708912485093263331457533555108712457141551593929273600892106165360026742272443408842969154548441033785042779785506173358609419955915033221730784839608692517456373155373969160114541135587293375302236158820763218854162386964679080934730903639544699217327468719567685043450513563986405204916464998825060535760408051222664044655517702709023830190430546422147078610251358311971969349564717586848353119192428721992740093660184938027309860871569248096809750968890839689897908810852441094929058195888032762409477425273877547540480365220516346562464384066228847716932827389513433334352582172637015350846899529128668559852513628800762128146324924296980663836829919777313241634264114576978457887474605806512359994090585369075097477311316918203808122289024170227584000476111841694943772688516363333196149117893264968369743829112344081623695161706407901421910140285611585619666419068285174271881211589371114518389455597646545457660966603634058037914390133061983844348713791343489474215468146939330694753248440889761662081910194181136814532899055983714945721461755044120952035188861727698887895481127009001650242475698832744403368716148725509593561046356749745305485157290664406551799824908802683191151237492865750890989720098580947841695090646498214461804366982873440577127873477846895945619664706097295866365402022535582369404670376789604708008669200874982015040208788621542510459938115514500306794229010131821326886016293768420631052478906876924679642684526969828583759188081074077831121107834676060537719605688363646735551450568979985092316491097560986411622769504088354956255694083600803915173204969621320206201751695448785338310435121077061974844404584820400798756677107721356167553988699081866904187530744666967330992136810675190172473602872595194408576624829770149052741575294471034893400898171919554927838583040276536814587451138558165062424031851527628520423753720018540225931200683906312772536423905618802076364106947069572874103072470006915981107376222535976314853689433116188702402761201493367075692090689613008413117281431006682277520018011409571076221493899418811104965502706581907813489311013854738087111010329472276571240361287825161465040674604104274367802482224054008593249434470506603725477489584863428959674059664650416994266227637123621332210148518690423540788150721075594747015111878037250423277326228734666978152195719536787121251487744820850200051889414940884090513281683181807652967563727199921912699583902905263928855261728335087456077842205007128583215586777029469239067373275591551215402820356481754727273860852897140066063186940702820898626079533744735252162243391067308065620706765011843390609069390367329246182069872968195599534985932227938564913447535473383388309662851265628143318920569130757137648872754664157007611920850502795558671206849958048360326459178887738472041472250009629680420177207765096258847774889691543103078946315287653629027555111262776036516142142586419269212240907481281895548537347575325785987854774853626229427384021332892488761794743522845176341052157727122032556537430902924056390045639907047077762395654112786435702524620492080033385443210841171244513939512617500610600081822594703312339323291166693151201695952127793724957391656868193266325930973324855561778757508758455034308218050536236066995176789427546722860864481762718854029642707083374667018296280526238246292974083067573874614297183243671816600921910972268528389655588206341998569249815413009280936841904913824939271737269843461221698426481955798556294900376492405861949800240559796617151481571415189574002962646556512500958907488503843076344607231493584734723379743779999888183790448913651574768736540154081149842273491379055022625755795815467747762592692928673776326750786536925841465904877249641710836202366878222445147767300533888562097190976639490898321908485861050617052856328153812505913777366143223029472842307908304660035961561634252717623817289217648127355805191562400152745168192251023242642359943714473070652057969031680556694368244677689330373999640857546950349826113623528171826193085645216904275174253979839054395378775971750447934142545226122737632367572622949137196353067936553900289853117128018474254420410455797536969541777085341228833750070687084263127361969503980554871865533751543032339873296648592467338266654236428726363596888643443964781091910476046006601047139014742610256843446858241460831985350463894672459573226989057545228308256628934701484550476795232523286466824886502456913531487023140671600166221170007367008661482556455986309068994870586184869938046542090937687521616840014002642624458678719197430517018514550329840460189685757040962996523207051873830592320374411987124888048843420249372090172942985559615931986742279827533818118963860553481824554188611594196503621021351501863773861843608873075734699800057971301813063646584375060073075240884736355750644329861625259625843155854515151398296878358915599863381866489658485717177948890354604638263280144484300502293393008509753021491081563674764364907012314233366287495490005644112518352506834554155955752269970172269659532092760865375601004666134045165389591913220600183880999212577232992946244022946036429401200923276050187579651434472565700309657159176194641054390224240098143233682648114141004161928910384940471618714435946641276772705792459959898761990983510555512590982247914040452057751402959511090140751795948526657182925954471375145009517331492248953149326215384566576773732452096058474046551845677812933687300970737822012953722437544365131145192842753478445431628718493120181547572351174877077872270486166751540754823392669764030320460085582982055585996914375935090267547026378761830915835440196697505532343882374376117825663355973041948384262217411634265306050882213187415959673370219915947262080331405011697919640249474563575444746246028364910618705608100534514099772419894064282279685682766092114824733807835517035347686158176066981736350221958876734162306391852008001695018726151273996661094020505287865748488636653180474631957189948741620855456690683788555163741335094667888654155510838531802232992536032955869657944726163008486948037091565676678944361593766009484581538518159724185027792264474716450891219862182397049761371285321562381608489979179765421307474378228720585443544328189908241970145630608491501360236132518825624516668012397867021901346635467097503332948388031568312478389224194117374579677445960251210473354168581767305915811786178407107660262386518881342082083623152022959666273666954129115793963683924912939022431528587751868147408540144010192952715386755048260049537846660856286656110135516194316718373487604107711469696154788741985846357938820306250582250527966470626672235943399807412646911265899810080417091071974535351355064567103701850447505858189255046079293324489832114246764260707191007974080303394887760503903719442657671831302715617586600923050028991988497503886376127075699709206780050216543005796516699388789583873713316229478754995722348264400619531255360094868619466107388356836784955527280864065556815754261016133263351172940403564434232309004850335647328507845684709408656390547059920517528089902420656266261742583155937448259976018996215943100968929295465796224658077471292221563822024811730903873417409700689225978331343347394651912474512295833886516722390220387904778547517551701359678603505906393966292110269924689084872721818428589986282559823132662700540628995250617789077104125845237566450559111059353059801262444023428180921760915422370968775224862185184075868421194596706025608571398902337838962704042750189820871573117505151819208879308331318793210528333685134250805121718138514181916180464992854672849571661408242524250889158110117830470727266281695493835766647152301066424188388388002940638235980003353304890089370175400073274597120040544717820539848242711104451879434838788783360428364343102881435838168423464572419803421343918963768000245988673248227763123779721083320290845899471485385678168202426451237714344492901796183929271736110539347369484734459130192106582957983319559800954850460128703526087383180319872498099266400281746475843698385010415430317185383252440118861847341446759662625806721920102994578362298209759064970474437748562592061301964426452373175712550258855202533429582370415091082477420745418767570493932509390549042463530766924121740798990188388538574839139206897870773355868670258012319088990923653654243834174699525924156604265820742723576574605474831290831342173775495994147091245462814672844843332807465522920096348180761029969632472079114179902314816107107610372731247914820665124550386069991416367390824930786020559699580981911075920046607560152233151974185344188359176215313511427249499065749548248755125357461337342373551124300672724134876958276967086080024607653396567451654519894335093923976338684883300716828663343921690995431351976756370589441429185037259462455990409711443952438755260968874745310003657544854238457651683742072391216902474778011345811691583481098559818410965591995815266318399422993937774934607504454313946326828811931562516112000795532094137900718321961828347590804049412067908151920748762083005453406631890983536002218815282950958361054261687569858557312143066072885122027117016509199057175854461285894510601223861679135268721288211424849254713405661326059639307346412419378122533809126923886311673148524991342999823922273126736803413865295691655520961398294584760533599325873046932794739487094147282793583379299903419898416336366766205964358395039783664239306631274261155032936551054494051827847959942556539673002656572425970793652591784388434524385218626247675441981082136043392220281203310539717390515734992548579534411730597579636260330378405816979651353295066965461043504667480710559687527321703854240037642086520378747650265666863241806695891141274173722995831170442757196905023206090099159995488510099385046495665362392493071477415847730425625016373435533525287580212147048831413490710399350100783360035331290326382065554235782804060081891447309296104933812952230163766194374376236907629919334143798301363548045826876241672483786006067321076675170026591561615309294898499258026175927475668454231894541872840512839719440608064086979282520136877464287150649813867646883014305777330326004576488569724443009750359737844195118720390599950798187194089451081686160152855590807363641990962658729679352081527035974998455945829410841970807877541653712453818533730690535864755623003028846850400698713003833574709185362714198965811084526935227995767180258654601775485326851072852607638054012838077856873438806757345132646682970441918768175097747624290289311160070108244976049851037858541460659492736029122539836107603735345602457688592872064539055156046826963563444718356306554559145015000343111232612475785299916192851875291678197601079537706947153037689361020673852493276070415262308755458214219492247190619866319907645542239467157384170770691126042422683802763657008950387034715662365892906011350638592623640541184742730734613540223799783609829845413170714426213744947230283919276571183314027486998449908977498505283232610689362352797618607231351984075809073787295512785687202620956762308487533679092650265351115079382573861128905701672893700631791122896990527615057553106802882526364198957743404567586306336251635290041046876001279951233132842868060526771374208692221852786433877065382351965034125040837880078234019004343672230546501323074196782834325929599443498131956238900416613734341056617702839812498274990066651690564181444918348706045839650194884410091052026696120266265248672997280111568881330310445490347746226785612902326721822307718863401357540335314057597363763745449596248572581701846751187099779608057938705862860217063683015460603059699726702990685113778723450199177636099369646495313276676909572853192294268999585949222483201371258084635143009068990064127853374395377123121070912908987163071457646935280941307516326947259524572435777406110197786052463332513804702750876558286003870721366743498527210201982072945299507271051673405077402112437280363865245228015690098309085370566945813267459178993944644917245919172967328252914277959991347719017952261088744543059822331042203580218155252509211336674936272314876589109474327759604177149712745264678899613913705193902398857494922297887162713756503330586935544487290319865151442297124004950376314329679220797979182832224621628326136215786275459271881677822155979717549026119603438670035813471006741031944238120513125932372511403204400238030929213739128721362923879364771152479957392001021726038573992064753064978736841999598894593719668924290667395594995884934089556124068852706752863891303725915256305202400444717314850304056237462363751333355151363672499892126124608881717217281042544831380445467441386946398031565334296431900661922232200640140840347540050976314413241167845864346488912905543279831784572604994066531340615463756647103623622376813198589242955315082355253467793571110675007924756708025702908270929739748819052556882840201383903052027240923613657528309709746489096607733320246709326352149927406767474053570510155202885965919830307035111752217709014559624114849709225094845669479009430984436655346326784978167363252493256764106817522262206467195228014181697181820692401378493226131510853654065742897039959011903147750648278902150367745020815277197689210734991899081974611553002055446599502882834160678922477052549683665333799629659069690307513702038786738666399755541439094895628336898714489231947733531640763278472765862429822365988134389129436156470048060315276316306317545212566503777279384402180040611867792277254179023120942848346278243477058994602629081698735249172016198659945433519878325947380275064928076938601435611425700130241221743092649748328078117186617611734612024036018142197910490873807437874320842688616815257245896845861922703912049153767264901330392202079394230785133554461478556396008640479422252307833819858586921741855822689934034851036030195615060976910158540927940924351314419964499630380720418552005430430565611235511251428940825961783007116317607195401960750897838265512648160389300746289174516617350434568271172822665865421719383953901659615522858041393527884818799662915724547960492991113777717494417724558482707024361875971038843834618998649323234428811947490475470900454271126288326817078112753852875907613939791176457306163576464770396364554350076282175316359306240994623005448671813922366802496782881784800777916008046703805935173178791870716231933896329285724815507580802484829292135356926923792284748352488472480491841790102504085142610164448409215582795728466661417891710236419069231171911322431592514192492539032250881940775603115993506995934557926739270682312071660057077471075675601565422204354316167720214257688878619684471086948292401175185303192310458862828632525902711914641083194966527527606911655784458560911376559046297323250754364143459070233525921142916929342918590645913142105521290259956221573344799149456841872060841434403905244215007508779426437655868267872850478526278961010624184713991596915755664474489048952227481440567289626029577761841423833616799095011219976325408213811326287893812852790531694976796112278225725465632999989570437966294402769885796246541921083677130400250535221664298628146226893709927971864205054894287388643641538299175261802470351700002417062983335117028258396514819525412656120691934365279924682320771873328074913536596765597025724188208080198484486013570073826997413035224743276639571757830787056694246176925517798630094229708686579754640745813089476778925247137631802692061293405930704633370250029043708109427282632445329023449855662309720960583938384162421179696881854991070208292467821451447608624998603374533141115941891773299336123794239711655257060148295697952778270393206377771661242601411368699016411177145370015706603239377264646094617346929046534508474961432726115300860917530924235126885824454106829860062420530443399542642453528010288457676667786938101880493344329527955036007362333783079001805632317094249507686927325788862428121087030705479526350242137014392980938195066305481217780657218299815687797763936196606353667290776633547113201713638643216088676785204067933685883333837360387597120134527012440358954685035621791073745427774517097124595939016773194694464324661659020229705140761146711594193393866438683429988424097730730834915327672282741318520546174543805010669473300999915174514170860879732753103557983499408173349257792898302140595243926838145525524715203137381697623329929692893012829223749680270653039354854857778115769212969858338865443168762564653282022815601175601455735638150648768838588025470608193214300590586068426724019869390606909299465953881487890607662347136631379414255612755740054511485000931664907253416931691656380458328855632528073629006018206049428056435502564585098088238484925617917196296134489118668462423468821215994150526771256134768074655625689283315259425682701237316886902335834157558943003764714582164097824966136713648317908665405909725484283269901959732773065665322494030788003511997002725091317713854327138348143802614560437265672673156528527544418543748326318350211195875917521267551280372640624402658852752096754962535331845180362793621216342271837599553464964151239795633862700448699688632467452002390001093292749580512383325226373213333882738778220883634699685882291766843755762417161806802331299961363225299381665468903507133129413281878662424077444654002210912973740289457921339453672334723567749658054846622063927903567170332181249914462217207053293492905373135286830595452909986785178466785596960641026463768794439085009618250260858833165121254283475435284757609701925657631257540886804035206084079061925158462781981840359699784879152032926023331986998285476627237682390670188893672895238243679255386450730032870832951977766142734267405894238536672323929327545854996972661292330744677867274508879090845825903270022453031351768887252076283907399269433274819236006148016250633287068092000996015103515942899276936948169287400119192301918518123061568415237609661110506671601098900053315441024492064397667511398028844922165887771908208853276521098827733225505845016466616724658725888582020690119451636927660015687925182066877745315259105573713081036945983198748365621964178199078734534661067787303132643263876141953496630423188651415930083213046154825179735868984709924090711696566557187222809195827928204534159447458971027910668500263236270191976741618655976503186425171310240096053170532806272951744752194040660543719829874029383076959822009653082217285362301649661236143795926106801478298555014946842712219703991642216238155978006524787210980504279258455926370245808863103018284477420816767931887593266395475372446573923276050244442737613198398992772529787525452315832478415071464981522491416895169295416838321088389409816471900274620150264200736762040073408064456517720460518747218888248789527647691754085445051940767842104714258097823946899216999281119842664004500059210010863323612876175318121021221841677048237255288209953289869811027814344771287088996524453771715501527332540749304380150080091948052922068708595763041075487898602825905159314371954836590083717845696813620718240702738159623564509622727547064692183239602847704127666387095971570195731016446540640314417171194619441366754326642867942696139325479703097459234606132233470860218029795555450457306540767870385802487418714615494666538403370114094927464371855130350726687360275685698602419074234382147446481076252918977807828451504086682102197535064535588470150621809612818799001373675817791320202148670721752611040304129595483978720715118105262250833193608887299489590382841302330874433172005152482139442710026504642781079316795143091294613584849288297685881950473780547221414552654875784776045836177573829722027484184136418909606750635600397913657626741360960468471004710625475307171783523992268951656279142428375370505018200882112260387381976116316185761104713514061289985238168908035860417647482101438249824092816289185347923740302695928586331986951155054931137658258855147240475834584524749638361407528923891990725463070678325832187748033067366760769994511935344437063228534888386696083781626195321633330487652915801212785736696922832587955100787602785267465280364847915339919803930836810179773079828867527992894593865354209720143392273603677813138430618380106652839203473916829581448135487355990990841529098391131588701541384442153335964780060249295476785220453171978110801249835586072892153854854726812447401144062027219254350294288123537943240042659393014076918697906667470259674084955398211982404097180107023382778311491186540470204873661381095883842187923535165742784920784033654077500612226485729271849236238918237967987517648854642012078593078219149925386047437406826819446884107847827972218774619209876590221563689256071069499278651848189531363558575185390470634967657565801500400277748171613943394107067306297118508531925795049164364204594783662137674102690611462560855034392986562748314395250792345242932040458534080924575412950907054149583841645026654872773881220401297069908987693294174885783326923870143906905970285717775454739395339572158318009635040113359143237246277643484680265533707511050332623403674737685282921148210858504745179962861334521618165432369737958170714806991978720445947796441634635890545978706526865769138337558525872817151653391979456885754572947916996084169907116437061106004208046603625812575301724182516356218155447550929345470989696313746965335225652928654455991569525158009446808539187569383879312253886359212545145117489205530137846061608970176435609641604539514601422079506209603772381086402657635161851025879662686045489614237996401461902658226792477960054816686447211441826176677073501660618366775098339591718023073216292624607365911563724908743422674218319259729151765138643083766289039333817848447899829806976723879620141615669663515493637101755355198252843190665131165562283465807760580491803731097279130076440541797150344442349713761432761170741841335753996514559131142864168197374127961906006702086882029616202123731498106555444009158341216706195220356118022152230711395655568633067184473009489682703903189696158795015352319254997832207996753804552546218337842297938907852691310325899844135103664509021719455659321866031114874947668715609492500514522366492347231130098911404398077442959867091940937368525222111097740249187228302644445178531946859315170970892773035513245501372435865781570894181526814956490262426488537128449273320268022552295707169783803403738642959674626406404149223303346884050850426464450433168102264665174792856213169069383785394313149914394648425460930433237484829940685019788611112158320231424175541005609332205230752363665958414297731095208134618029143718310919588207929186723446707350779595719161116259284393870824019664754015171310027175607929305500646478951131332779011394184705607844004190634578984127484292482488913063159444906017394080889609255829661293609564088331472769121251007937454538136826080858819448704754105625236309825843330730376923931766939479038391187911649784357692864641569407486506828744324002423764309717706849594890466020446790206982861513519018110930086877645094057629908701096255126816320886774018313706280991946246317003144653701069922503573998784436736423042481682654877590608382661227399501166252202273136837565789798550198457905171624031360801289100972983202077483223676066600913643133348554240914512419231556286807556775763654621875783498579583201484344293459899708639809697479225575210458085496547776695068166169871678684582607291354926518120610845958550254735011208463138339274653836519515531227507966984467797768011772808019716704335574808035115939570180731222439530267915904840456706940534343588384285181888513083169432170904291872762010643723881314744084911863966522709695713512193252278335160543139571909978498794332650998666429051586387721111409324569646358997215514514570722640184495444372073183710593979166312009232235223039596977165525375022679476829042886968780223985011694082276601892263061808549304975861150180094217227923883041650989857914416545066788277655504355793747306375202934270927290168986448175575272433381264923285848590332317878620896978138069962442218770952752775092333504890402325157074985594193600365624887973792085001521228031709923714616742961177462192711046538676177126614102586822717717432426460381990726551085009092830076053892325479945972722978831410625582444210251667444262418913836118691542176997382294416650312968064862000275532855888898836498044688729861486301524478221940095187511522241830973820609196683336560879681648849762613116533441721423099035308659225320709601508829082155705521400559652719484581227457268973591887934170412006317123929045377972749021717384581170951814667115784530141109547188105618607766996599354077207284154773717113952034475180090513944292443550268468979988225521286446865990317691124192649671268421789644451276832495688654273216276087896218673862381837688438229264090110062905594733906475942253987693737698051829201444329300125390272115303809403620937494024545822118812082114223589920483944375482640760309250299278132739329615044830255042073968354639891598116442150820216294806427568624877773370360496170479276860699639038893561913805101503967618679820728108199528983452049763885454196541446899517115946886260097152021374028392713577711149777082705448231716525713581908857239715976675612244253898166178980720149876679503051791339899570671340163637643178540175307930787996694800614252824114122122613809874476884070798772554702317559647174562826276057462087717908816604786240969267216627880065282382492189876838305663090814027451499464644897454107653027938863213151081087749708255277803993304028445330278560437766006645810514126788563612847788518074824304926908171116251247066299034534086681480594040317842393430138500277261952835740755955704273487074513557117315695432039906523172696395094787839483699641010990490328661949874060516507336104396808652742972429113813430057269105591546273768467198833543427927977023287080371785712446098990776620490235756747749917635522037474322911054883178658740437776599186041108515426656228491468622216037363863618253429238509145373565835939176171591243928310054993599775408772792741289828204824889276454901704084777650313190158759124271762975809352362109044158681482370548488714607954424511948986204165018450616112297807740458246645737932860652952267008866082847736866334371074126257040260325581061786606373672550356153598694570200368879590352789751070736677907308392823844945807119877284899831797276434284341920706790210655269316196738357901700276113093843322981210104065080616219933245592520494349976158457864759258155037385461035222571147759571559121571063217298977737908323310097608225352157367513635431661170592748461571582926654545515747356041575571517373584742613737870751998571983957420375828817508470535096180626129029100290758076649388543596546548934745729161904118223266966495562710061176602815874824841332205437854553114330191356299288829177497834667582502932831357851560867262905915745786783489642619528331992333523486271698496964499670280401325856239764302309348762171648796560317188383560173111286778776408185149089514170876959881388223183584490650891626867263148787448286420577765336948205644507025825122871161003892388646736456477057349644142524290195785504506436089956216896957136416950410060887080166979394893021065765929931109585452020777550961552901575000579241920702671870446032059370765388845741212916063832544645190530335050701845929891861442578222942448858930286892044234332534478217140442502481307639469811114506911534604536453359774949331494415610619807606188806913273350062337094468245999149717425470181574938386033094468159718234437866812908115162606071556578397730720432870676683316740348542988487301967499951844883688907019455280554388553179996827125008485814107451676418153065606096580285439444955444336642291982263318965181750979174818074758238443418203132859779261882605853526113473367255789714594516310207854794614509528083715828966596133465345715896399147994424250670737095211952424608438629307518775798546945206203991492308435382155155203581109109720101331937082443221492324073114276146154857225963501728769967756236786956573019335205543925684822405148968338680847269353375564827543980273359940644209992965990514616195634344921728279315255748967383842340744426258017716299221441726983207911614512728759483231227990247909081107363241663252950873250366881145617487812864246558242289848398002075527173903619756364214578195690286326745670814426537079377580117829618317715693112023866901383713041107581492892479297226873592234164546989156792192391235036701146419341326731557913006846445939476064284927611940752069604798118674709967506121646706858421437261234918107307166719754466463905029016247963956512302018630725723690077260994483214017376090131291287445032756696668487368204823687026403913706126395724103884848335155738563162610721018797297277432308125426488097180033967217321085482418670010000426223442172689076854465271538477333647983389406265907674390380737039323465708868576695555682173931669888791149446602260019073074382583521398050269273149802197281266070317491620741590500938731339326376410808795904269005873702170477955612144635808145379834237657022448100761661829131434539567415663753203372733857365721431452261180877214676549590286998181290735047586648154383875160235626705505330920755526777298004187392272431309768665587053211136213286429992818725012423199249519752677036403474827559117043778555175982333128446052371254437160771550371205843719279718196739905035414107823199141610480504116954807184654286445563418217922155074038218671649976072653077428952918697223410965920995198688824649903247495527030874220158064412570807904472190797772133475140027222179078534290003157354026161589675322710221614036329221102858441962714776435083077394602646858314709561450437219381654532872018564615972299734655159034153332469331376499545191860519405367559497212875414178544626974966752511160484240569725123336720156730076187981354027034782712761946026673891602004672435070632486687512662052758462064302179194588530285997023940478204342838722630059771422766895137113121151493191323483425101372581002034683072552163004572566198940611673392865192901515518898468835034872047267586025648791491295490943747439192181945011773135089176546558167990343391386058951740663329983170940101195115110228080691479412749196565492173048058493432118746881479147408331829958326228963205392619333931733985814073184776908663349826832280008478212859088590363226705636394853526174867704467873127772266278356199607594650893789953564397359953218011496451861447617267859654820238534601627798560772435584129297067474066046017543576742999909143312789724033802861379399732328885200604652022688637424392741764870163221457228770211394418388679198752380163827858141783688094356472499787576529867250841015711487842773037722841227206217568740701081955359392823750634657260837022407650248999197172569320512892635874547651991561734657145375581602664721310216808144000971488020757957886251749461304292856220791587472186830440681652061127241865214204784916939569588774969256623243730034561188458010337448954108983876034474445395698295133439150963247849089840357559527111640262761842627522049320672848300338604099275013072319717413409347257416402997680307290844441525751752558225876229960571623345291119079125125447485515938829976204318674477473828612056005228764369200556466710731920570207431716364025313806196725756150630113523698890793915540354893547082658759122815591462255763139646904607855532773600996141621823573080028978621196585552394986067518526613389963425820473760743561225207395463245007851691026933690917575184313481971846451641160641675136492630321064443645178197888684533860308835400017499702733840717215369406280950095982026685389747688542559559403559162361736422715673750629903569498097621717520367981863291374451820396381758653877435287807611114206326031592298764300139420682561769223048873761471338570452048629570968117983647369304148013881167618650062550503387316820854359268682427404657382430002282770744428776797960054435776804565107974483640329184219323914825070500358098152798286806684691733036534914862418406763601478526409440272010141081440283776166074270389125123218188950922915968014927983335460840133265849583124820839595133808531166097594446335218984593739189572118472882981426641156489756890014900344065883499243125496046321358182605854206771890250452253629986529378569779377855790055920993936363522330904249266392374656245392966176689263911022831339870326035801547268621909581926487543375733983909501117034545678631858032880509715291628137942798680408518294139385973032140083249562043329752011746154302711151942763944007189640821967171406071832995559256864828276049405708026277139121165359590078939081201532175659866076472822203537348282681496239714587562949877050397168318254545386728748814482074851964990367724362097728618738597540701112245340677243493613445643455891732029769604829665704761714708526693841030435205754534587134458079657562773961671597189003285393719408769467988377956077091599120224030288270144606488892566510183865804429874798415914370524726983732330998949407804577996942618525195468350704136180869834318986946742775056327116587649736806094102155122989900578275911931943041825309732111806966127431293216347584041524212827736100403775529438553747735635959031277368364452337991159202884570109600862739650156078985153648980711571000985443765271326200069391960439614063589739202690385414677589736486367982800183311552216625784780065999458126246221886536463228922905048092658550516544751235786771733403949559922177330828568655887047289502833340167165687357054621594878728332500178522379514633163496630989667870119839696386453314100074639919829042760669170202864183785308157557472166666054269041880088676564992485477587315378932041445955480855686704484137958026136679850701193216245900761862579122336329247149432254888993628629765700843540834770933733377276933209262508866925229017431524257945203497440248771502901262865248257767663049239305373400537365408232524379639029564056745447988186177927361732891189982011658326667270224441472081807330843368424420517178990285932051766211550111169896858354426179787070366452543268734904634320793159777311089722127363141237111817711216129929942328572032883855204325561495930785999961376097879777197419061820783131053115971263227265071701524753463299394313871660187642075880520807472891078085792400267704945215419012162376406252688701660612078192226196721030209451441742716774208604263758899639264148952912132268008147620897649639612487174750177221628167171472304192681443961359370533864533952642030126261563571081707786624087950683442820627903797894878693169453931417146568025586873840462286911011741861959576127397932547508664176354447313864036915337742698673451706156585785812129609939167915765637812485979364868448021709160072405567847850293629249687441531347808838875410869349113571555514548536760094179872184755274000132296133774871682509017944488409475361129101961411987832624668388200896070666172975321110458153214309087271584118723474027900294160610837647631403652777708178422049037660407037550726064725181445488746667929872206473260394630432637504774364601800714603655976805927659644851398455552864547126176418644484989240427325515598534727376208176533082285042948104830543852956964079445948107878188199880977037581139204859740232937012818793370551557173747494817106673724244529769248515215969293441200573699300573692592625135283264602224737902089121165470642974771620107119170622566508770683782841538419701723190951574902524940249917802759386062551560390711256843926750653039513187222026662664911063489256246069355667181849523698722159020698926000204059077083872336877388986601487920356056419988943054027177229283911950554173894675387806150810193783078459306550734540567881935869151234566619611143115484423378066731493535020603514049924302680516010003825535299876086411754984458433117036749789282428788640621962723425551867843203785333252853337181122682505408502542056733439400678220107894755548426324037367667283381972519543167760319668454221922182340230879923007029584141575213467426505623199154322703069011496999619262212795162002681898369857193119492557459109725906594569191417402740396352201415027542949003476487138630689595962433375384348984886411526428742672184106573804398964551996043597601013449824106656752804343894040686946445634632497953980309287884998404036224456109360989699053156214696507971939544072923743715097801948087988619221933619251861902119308612955803881517727134401482391572399197344205751992865169202707788036261277204986878619286530966220428892988283863157011432163837617412923410247376491727809307433973913130755554572755399782284136480453347485996591972628182800985034484381235024527089792965234934882650698457453336888394749973832827744124067816422233429514453601111691439363359692609470450196147976915617974699927101851424605271229100271301844342790789108517128200195828432858610317774357205366779198371958452396686607971266844622048987530095755495786382685273789559151538207545564598089413404264017580300002029055625878939049135461204968001181825373569650325536648442494879202120978066835082535102718221983420420146942816652839489557083999833393831479239508859066684734048502373551301696487275446060221437122886023827498815572491236279070730739580869840779275692829725829269740912423957178765752018838376157422582332294250716712326318330565470291552437707345668270404043652728306948151743340235629671060180521191704030997464128750696370646652044789853835091618326222783072060531614472305819212582905392894936637650049750964650479392963908593534325563525473193636042284830344127635674342155969456327447087074091816911413062667178514123518367946211014896824549373042594415396627545373735825230423052350574941157280007866884370672035098722515801603869339395092532037693396081366638851125021716505205281722680989253572586140399924932404349798600317166408219874726030128078119648583482711866706298718644815967324865991603138566986377683437859817337032149008061888693271535221016413285903917146218006084099709261504906868426111009814595611065882204720154857351986227912767431478503048774865548265045293724168717540193543731070945991749540358254426242306809641956492781516058148391458718550438454431710477538571652638539330357473677415435878284756611685661902601146455943776113808964591933429619616141603010867481969988598358095916732360143885531105093243938720858793416308650288978368314826812193436283975390856558718792787688193575644114241184854339917665005047892633813693793720168604439065138413809416802032080893061269983743891711998095048319071809340438749138106561218628655956612513085140116689676619510224101943546293283302741293572988197021463430178904090293114261272083543845275084799388417866893692542969444669202110805020464483302856026496527964637495920872137482028352617291528275483862384538356741316285038934018315701963524229246129336721901589004124025064236025689755439053343629103742014691261078799810218479670349107970389927521027831670450349693915448177609018794922017228543759251614974045609096576521749960223402491163885547935358435869063302115577209526912619533945183712653787183439649894466074657371268717790087986503816286780040914962924345013902822402935054215918777856618751561745621751779403598228217755695112543859214758702371547005206620107835881634604456928472306017296522972729055309988822475194173011526970664964178601598324593521023329589086242252348506269338810195920420136199718017647608311466276570196175284823663346716987669722815456857825124953372866849899729394709991965133818656495149018708552125362356377683189651613780076041334538615266039331358707036898184460222078741296050970256845920515870721076330771789528907549623193606312415687121286711155882201278727685831531148932608848024900990259918283349716383257819468213087763135537778448353099167500946809085774661978989402513861316899993678023238789589049516313359680054577393104093441166213143618666702722875508364957363617385381036813638268838848175906163056368682943328695377432833390915243066365439633493189015203694569131084542396889512207572152633956014574379808790945420699402338804162600811742183789025074606173382533084985210646562570393262476838418314933498650207646688391161588063728394119546558589236641793348958829617374738050565913031435767276038057862857179880373292420826630223994069520761523585279275391597447009318876143248584158209147258419179639228407759097015665472485129573239920378958740016404224413745228086215685826649170380680754541277670467491084430826740373313599633892707986414074145244160802950861193591371776584913514131519987506794373370308897052417471307229380886088616470345381089488626483875796356198709513750750890680022348978539938207498492882183142558655309785765457220318623131300110458354316980447022325336377028843290742845611774276246438894325281712944173568922271835571092010880336606256367762516417056959225382277892776592365879667628363199710171848646797939405246804717160696856202609158945042718632149080433434385556974207650673963442770627721611666872312961880973803227587209692086407176589781448522620141390223861150357527681539433541746399162225725293762269290928992087337134910770029512237022022925907032338315580960380164532159940418345991659689229607451106697995896774951401060436292023670692951146554386625021547417394698634374209832521940736439155416774640507413903111358628293028091988290255182341281034089848022148124532484653497156504496819942230877900980602653881478148075165339082683595864517971970052668458520747470979130461289220228615859286869862654867210692288500069969889959775548007978530050076019207006796348999182262448864281027932891441433215013969054385375774233293563521026263547702612304674149260565128914742605649526591217979898592650355935342073734494947051855904486458955877797342417209198888842661780994985163013259904675368973134172089985938163112748892606350167924021674913984948295790611021802861236869500151626937872460180311398370635063460114576651265181786730977682022526920441016552010963372475791772978008750177016368615644798373209168343288025518196328538649782022828066433557149206789258595319948574225635794783998584667455310221078197955760199016420510298216780185786923663625406504573527785822057756845347350091748657233107749867139116214959139721994945730089089430903953491677382577407939195734740701462529311355393644293282153325650498335708212207902257298927095635157944331559203995024264406507842457771337738307585733040128616337744817266828498599913966208834129437383108747598626308636664876390080491231656057812029790972158696983203276232575054983811690948930126934552348062771370799284334085840736589783498544637672344788241967710176936181461904191902899108601489487271571528849162039072114459852721875668336489095317108147030933797928984341767076897464797150901526236424125487333417963674184499434961567606831542162048443007013953146041214940206169129413404635594275811567693163287524957303523405888502293512428478963464351670457094725932279855980099191464321424912595270899850488072049564566410017250020261191698438640465248380571748475685473461105049436179696637697858894586036524600392437771579939543295741433176780468475231444009776551063904019337804962040018084538685015035581873014406204145734663805210880052128591438972496760507511418143874746322198365253224974597531764451278183935518535147268360863161255282463242594691024732548337480990670866819056655190004901315038131905023220241958100607902800546887913680799969199627226889361002823560313528452951564322099975349724784313687255722910941931010923330874598049460708783479400202606814795541009009420366349880518097993129165337063866683781356467387424649857827695069323064113990064638889427305834861796455166667214596507631726238093053859143970730039347963369990786024555521514054890599210819747414331605126472782654138402757223063093593993936213859899583977466887187208748237808705051393303785927616253370939526947346057879115721205675167521536451864675877136562078183607629020203737398385188869737829400166965476881497235336277793754754664742962269600896947540347433976343613723574567754585402866836325892802259040713915732056496476050250227488881027554815715490713175711630126810294027952023019475347693525491874502838257870124412062094490486044255578709962784196435487002663451533644701554840485360480132220308236305336560663772376846984459429809968639383367099263905286610306257816672274224250750815002675640583471278665237554250292630072427896256202740563719835409041208656969699797689406206916976288757669286646274477178555093551853378149344871962676348643033543701703482956150591266504167668384317249835860024006354706044796174638240809877675967968398156216391999088876568007109445047020777260674362779532727863787196931397676020222011989491887868497514427469079128180250886732552116105692328064460095060067186466041795590169150036636282967309915839702343623945730026070705153108088283244756248717520566570237738249702487668917390909581640103326563190388251290228206649990099452324698305469381778398701881402873470517636716825726429891927066604454192152091019035037876516361357984233675419060234754315644388275214095379522820543682825574114811251858969145017238168059182832673070867579261608155814048348071322579554766168073526137952362143891096539251281712745708008501546295790468143297235975998578597131479553024628767949417892948716791740352493736964391176247563361172812800306949909947978705837137532792032300980950833748285757862197592469139414475118889511658804657930992438525617833881187173153437819004776403286404510221544284715340588176148526236508870992654725472001573756689806324349295331322558199712471183812707943792953290651322929224805119573373329915848419151979809472418930937380986565849184179199955103245554988433613575639856184680803915914372292778255620291629012763079224654235181966377585398613893552117262698985669339402672530994400869794315313597753210735062661705999479795891058974927314561942160799836748970103053440511418724200197753162099344582918204076487100700069899364739099523706869956198381767506982563522252672755426697824166600652468317227724460925294393120103015563590905185127728105512978178339837570992499587999592921403148067482519043436417354449561785437489538752535492296960126278714128972266786021233538894326826736884128943951464340268184594133867405341876970493151091448940579001625537318794302672881835900255852532960360482785365134592896268778225986339063166786583273856225932976395344842927817592027714856649664251915492528200064072258711738873932685762415224397920149684737166149546111984624396492467547534521704806332656068956834289349934707116774332849069621682991989043526733975097704967602530111638089938799252643710578851446734645654215525718222783480704594505455752484222367313226873726947839764900973787345108538211528347367977563875059936253003127465064877390873340649219967920317179169489996367458933739349673610369147516232453107322936901439774644950148007770490421780191072379139147285782804538430663908214690912116467352790798925006102106437128906720521700245770417916059995234570323706209549055208556090760251413356621258275679669172557239726141807092457612864173353592576803630222336117355572159513107174758235318107829542321984286347979149695375917922648189910027208121667097941085530415672753657355798786503585099617014530114803541554090904361916333678982023859827217950841455636718564497419834811889925371062737715936388841123694205268453992424123120559963620982531638698600150629835118358662611407851771480229430339640121780495332519052705684081881278143342753072410515067809418771113736335072528045774476034485579776306799481377153664308689665390142621999587260959973676204788136998124698425864350536851145003477277833242002595435072158416320207681131180059192586499378330893029266839988514152137545606157150298546777964779640778323547371337082563571549669097375437202411666330668389103631663536969400004586490619546004673994126113747471278536006907222280835896345720177355249882460666861685213898857763573232707351019487439880221853848659432997831722472557652963675453888932414185978260706542319216907886388897697017207110481054734454391713951878909574314034050067300758591960906135084461845960901700692841031971941072818295090857489258288016414557478901360824637178875126405257752533335559673559028488477936452400867049591475707425261072912704123189207318350817615500960698723673653719619851031196029608222488400943295604033262006161179273243177646951836906705148835347645364587881032685277248617069956892702722762890878401371831210094316381509198821434922235074418319030470692067929848993633258500184551723677078431368114527527066351489162958543034897516338399796682038677584587620490178576330223088532510453729582007618769633633058764729671539629201586257889246968763084247999321260971632342922766217428549291705938105873726175371289643495891474919329325523055671568146991218256637148766779128592910019230841849211870940807137400524553583710240105778875224249489033971618247046975809502920673022165047190538831531955349288290291581916323672071428324504456975492689561738592778047537218897743604044797672046946183518987046473961775263317112519079298248351299737589406179043493919256673366345564042411137905012643987576932106351477484538997669133323435447707048620572159493985143655031031309273703235317712439619943579348424971802382922941395816964479677983158412481249865062297719016620039551661723650300837726140724080139475109518831320680742678114278625541553812750453928826795841455388834373831802031654336320547102005295880500097779836075142891908034530997012096374771394988784748877329149987934482092078219268963848925647757205981765953855554734591052248834255108137202168834608139598556317486481416982633716003507434257483351809993265421409810175657615028814063076272753168691374932805021932350659702351970254149670575380196781162582521478531717488550525701183102698626388821600528300453947779936400845889035396136452362894551286529924834999755212715335229137141261939816032394922532703961158828411049975111271557628740655853685584945938612036609946023537099838297084404007507719902782057671508848375421964826171482605332713694684702867805353011611056453438893243016898540694281510489651917896354346455996782014758813716019101901694873272368472901233590785633404260417387089429272089840837998451874357782628850991177130223177247000177034641645134225470870405944173401303855586013362432138986615522934235359457821627651501813641497654776686057130036776999147105563489382666473280241013972003368264528371972258549981720782967546367761090841726941681588178439328712841874742612031733646062016302310844819137050074542963130192817903912560462689046824839815933132630170759199443312361500637371678933114883534505731363360432403847138942546487269831440257830079685008630389609322974012492857810885322549181249215437729055598894840869019424640826390794869080524001384751734982546715196230108108744871937447085974516418467192289731377689670724024319052651205728153031302386996483709140425220061936509532509239680858052206912273449279321825091292117486712227297925303511248919762575362335190482476894680992485033042544483210292151348619725271377687295642249916870048630835174125510221689549932342624887245767323325508549199270472618715738234142053656985427785144591240472001354636783496682701389566886189254933152038937260789627319942543538602190255029857639529165420290128472938324324848367263919855925322735991274146968567161720933316817099676859418519232896860005819011463368810070156006932309778473619475906789470584625539233162230875558658342439361083596390850693812321979947100170135922573223770065144410251202656477040079344951031098370027743345667244825658495745990579883953403578721340998939124538299662639425596219992438938482151487738440825495013805286544925619816460649302957481499006873597855962894374047483305071438253394134404877945753562949746910366103627426556731900939913127835927282577190284532025706238728518459922034277912399392290168948457965151195477821073030974868475245851176447303937438060990400736312048008057638359773569190138851858234094541644465516116988894149726019274304996762153329531308755727828342855515643435265519380646247010091852200062043730575017783843239231148590858612324717701096694559928279241958980777351553732170539153915974478789897813449101842500995533696996888171561348492688044095245480682863400390534428408283074610470776895242001428716887829488202308650880833980452678938411935047461900844397766779765897203531059490128753395211729244142646611488385789090982012206309495524358501547434235711787988153042050624909975894294237003302859778143388166191125841427976045185332742026944985879669593920883144844399440834662577060872125285399098110874522903740488737585384414263791433883460959042891632826702580763953924992488738218405833538324674304388115349985347366952898890586967095736305042528353110185658465899056498961948038518440163249077751898642908699943777909966677256301073876104601454154408539638060558682066246520264366200954241983515326792840252983720508115946874165432611753390198015233912341895390087490365708906142375022979226431394244280502421949839703273961739165108634413172309892789514963688715938059997241880128578652081076015895129953517965843384572233089914567011491787328123741927639065979316888594638880232987700860518496592022021154826001678077180067632322551690232682638849722047066099970909921887082717548153254320226218105631931598738340563971141905215761471139235469063912348387348819493713486043949673327457307016914886563541496651067698166430079187667538316930178381896376533231192368553866796434640078350245463927206330079173412097167924117507531849180009049302895336578300075214211744181964444497763539233115270049120129651809507192026160021295427666660524529562746547311666401417602427376474131806116263890635770703304960095819338122022409850609238531967031036331417412844864172752788747050367062855927407673900235871387904467447250755780908586056562600494955923024710015289734070797256296120147125166257423511507932391327200724033798007265360953092302104869181965190254880924810395198304500310428211223929536894367187143062211070259199682134222031645869758310212026819284315380307689075208782918747451992079927664110920779110333145161921434774337954157359675792799923868780296662514026864733688898761646362938511490725043661426733174526816276920356058166902096084500321139422736717907537041915942820116767296046883964866272535430893985205756873813720785088735778566893608926361156595155344894946552398643292226268818750635593922114657230213846195815652080685466775813567911959563827530849208857580457344672462323665293141500837507812870094526067197268553756474906993712188314061720718896997533697907269191310186382460978990162151098634347762727748050424471429987647393378537117322670751899100307666347299968562504080275958467209124872039687141062000723714212115699491502291609328877099158593626293154768559115313724099684851639950096592951317767864907095946036303444113187554597912923198887750437746815328979106408532347351299354264397345861227331135215559961510833251327319881566738661562676607915029543003399431818108908166230745603809595797865642955518839386708067309114832874579459931881865310730910690427125010285330385442891834827237640961983652255876797151926573876819350375782763488847532371054977053124508191741686704550422587362281974080071902871811031123801103716006073821408800586506077370895696086316406388605442613554936397669479069086887018759577728180451899821492453954247787228915573047542335096637058504143075006155606193590880794950216873951018991898102441376593539739431513640756166010926632309113647830197939151436443870106971494381101971205492413924179960821891062540026045284526224897321009635593531802118831809863392989116532698276784765339350146720641985808575401595362534672959624512958413468725205195726550187738640152353161232343888642758371263386124475115426566503117633040324315684538735643903570424691236437515110834730327409159594948592243974479299053982881584689284597055572987377984257161180010642780706037141059766561606836925844517780409927829672394056408625026383342724740837851313733996244706548592819171977770335217060069215421077629207973533848585532730582743166251240850155379427579845766264087501266162630545249766100038853234339663055523384065091217320409161850114732617388408271819395409995780569410359749693829039862430529485565243919922999887047032491779824858653520326634783951504872108152778839260680734882314349243754844251272745035003274678244800360556308895981331355517020471110785014723279633197976773503796502497765314342135199453685093004363269646496074000298815171076510727674508769556878085318750768388841092489311198782592465533663857147043632714411987344843739898446389353329659302393691658176525618332882567838603594576091326101662666510582332944571600292620315964045743325536867362251408488002663811893852438363347506917197715418235941375396468841577161001102077945768315709059684445325481284305058129520609360108705821522517594853271904723512612740513614486630953343709603436408431188521231139155957982780783592130723638032894298642127556226168586500636947754617119793047883348531210390441283120562235562446459461282765711911662503234465660117131835474212747682886203793004011376840797270853037610684789705872755027440414269152937664483835349401048766618192968460086647848362406960409616257316782207423243858559507523529785376449571076238183020628557743746494796264584584729182999753066312191319740933966177396900940148595674709523405411760654176904682511470479891431490367019156644050012435432124598352450233467269214060984675771460002822260777173098569233796880826497471221194254929717293351223643554469507786487457489617926856498156341181863214938474286058865599571226681420329486966036235225852841195850884430384661467237097366119355317953525545979228968840910471667184754019597283177824463705770823155224676072775106194091603618287576332200557411324264648158841720360033185528142273577971886759115805348316754930223413887153173366745421702562368620249563246193405899400066518023813045832575149082103427273754574979061134202463874529820794504773317991936196234460276672867959020958670947697033610567498561170061193999424276921993282486021066940143912239796712711584169467501424277990223865906416493047212719713944254761031316781515335548290330935101564345100995475459159212495522856328357577747590791976051686403442885512980420866358408409728073756442322749731242579301213596663470283800809140258733010067334311795175802444793163177562778065876003306651307676037892237789365671675944620755154496991833296955343637785943069156881111937762804830769042144258225157107891314002474895051350503619882906119295211526577738451709860053272604972918293820223101374202941476198723688193827940554921493754934404518402020530682600708256230548803407769090756300747776946148538138632720330496062461922310764505704246334714902991524560224707540914000222384607953488425377375640345325263992617226919596012047385101300929563174180388729437899547318051024749373590624391907386840783159387236621127634456231803105423234798874268474093642776163121494483565129978959839093283365445352219577788677850731854272968313646347442013765359371265889286601536568183520734046073464012314016636091579900694586747128177804288433648142149578959955817408853731243823993211311371396908211012508987578051466392217470969273481506960419522260601306024115261767998222809115044371958568452838364756178689970184942370199960663087834258263645949434118374914920519822184080888758957845869780590634251785780556520037087269582488018418763854613920860063302472939811701425182078890895785912709404521801540013370435491154396934589978027637023038811898031425290406069401335531893040555730458412320022624473951710079946708832456709412385138847827905287401272895745626330324408660757031980889108580673763263228658693188368137252847425536622622575082330865592460466773845562227039129313674011981764625571828711198752998744708157574072379164683824112359214189758462571500115893274580412035527259611799977535408155516572399150202555627944190352055172338699650494385113146940711198387536991562925462096324063198486233369023850821772973407115464630530738309236971594579651738484707613695112181217549249762226772840449982571618404914102371860090468924646710248121274846723563714782872770078912304594591138361845701712935506585930446220365992199702794767101004606824467511039027717666607406964208277666716185181161241759551106761972777415389691565318601063392814042362740756427263618753302790240857241249593248492202747239867373129614021945863399974172596955980288050029369036566312109153660860299457943953920183650141817642847378089573526172466009448402889687355366289002189679660893130627658326845684870059086226303725656145174652692694289447275869976955350148678432874758104875458209883537902535755761387063970060867520379101849990045887119354887428376586264157951947085284358590708719399072148976623981896212648026009769496389532721765983716013633456442751846011465004487002675147272885395726279264629107127358381155273076078950158537788210904922985892949790867117011677610333402698905742487448653209582520429392289250208692216848054612306323981466558262888961547181028480617187303261839941282078704846693175255738567431743208775033277418149263704355668260748145470711784380405154171227932541269058680709175100476496921684299734672723685228093401763902624388427954518775643570526611387394446976505706226599842496347963939342229554549269283083147099413980811291139652215900120023623552426220995684989949511683149841393927529273341360283441997697472669471822829353180021194445427365687870575838308804326079073819098780377453503799391534723160353130856105201262543383660246692966999255792945784244551325805743441552919532072937082980327587972440722650177362380764044146176620699057424137234024465742309493030145686668047350102205503845547104921552366648216352466077393734827734777168765065359404397858071062874073629952581917604344884765170622038269692575918841934500170302851681235273350786652465591458071309206786656296455803608690000605569922071314478562592607692759797292222868909612930018325102622268960171473933976530154428191506556170716830946572503425410829731909009854880034009822279389699326302406009419194275766083309018818654114640323645667251351048578473691612255010024709511999645869871196302306086183117649062421567085356746408571902357754412369411881425782145247504752021114404660446810519017570769852040594908737367004070720837088829249639639677220013262892252065047936383837262832061518218412852073881384767772419789907584705766545701431923657425604789248797471200821946687659422614392910671535821589776183121671575129297891593397200837394488455370571033590888736196032949400740914941869111491605950540183617426861597897470402806438665985644164773442679870675110857835410320403172080710062644118168337166144312925267144197345390426112419448317525881371273743823811595198154441743491562323236017632627709374635368508705084567446543948581885652854476371050143075895137088143152739802897068282947623818086306117273077820295618113291742580602220052472335307055158072289683201663968409492007265110635439351009655539372734912544585126588355094246317395366368403636703880753865625772347256961802746049678163642003147629557359602406408648557265790360413213556202938416203267574093821353414765942779877396069206921327808502196008298245583598562726822354274427365590749222576535164375172084378230977809606226958949485067735758291587521169081335287685813077906435996524948944653929287841844632704337422105700614104762675778597179517386632116677898443633625833863748852571258236706199931195325704369665327870722298218314783737598336063420013825764431782365267447610679758922598352660588187195543998761764892083371675528668894798496745409066084404433691017672710431838206445148359569022777636856727089413686301882302218276616844807332972372897181198332935216789669256940279017192346287385236206321149671430019566026997493723515725217304545495179532866327031639889192965168940329653761244985944788133791923434857407564012414862812980684780973893900463425762980254197646573920098084186519970044981417877837265204462463523827916901918812465534086491879499513666564651509555069599395513710899887472040648627904126208257876203761210728956812925084973923561981132138882000904990682339163776665570188953978108849602299296594742465209735275149967232587895500221295025653227352855191352723105960347375012159009888786169093333332825345740080917565699260948583815896141743501667468697195185339089679977116458856826013012576661461145809053707406797428627297571082360312829177980860512413962160355297403521482081604148971868756012522466441734522002681759894457700592129765163584761588516556506685870393287004256929865057306871853622912833949169890087889016219740305229427526203328063802020003689488260649027295991908108693371339519521605183438701740952179428734801395649404609744572631886496898639131001693335470380863246014894365072949775510446766379244414285059987337191204157257897045861649517121535884437327119591271925417752014631838218630450069552568342659430304433607382780950610951667472526554166088751806027600491290358357185167870298681238694241052061403429995480460890665917407887096430694092307479658389430526120714724162621566384252940530706312578675387033719126497414928377231165263668938409675543538699470467201100880212674326911159904701127517874950548894878439069981333634865981400908528060269303748812438195875361776166222391951031398473143664899061845157221796028913792997583595706816151166212811264761878242904700673319076289567833982736854677418166509350446056771968103555732977880911236209537937466932381980180889882887623564703398720381056766949550454062136362092054245856154596048212554198559339560074951505432851326472198187780511061816925827281105637490575442012111138599553092847473171184371132808184950543957471289324721062367652881874507394325068669066353645037562860100722553140833044592525715106500886459851334422437874459048230608447749223642846472105011222211700457519475600078109259933751213773730216070646106329444753486871111658382173357105037838990773776525885693355349611203590770799406415790801431465005201262236192721291491367874393309907019633979222753425245554721094067001962639627191686497896341173391178252585191304672708044103006188807570606642692905307693871109442772961687898421466625609994523403130905121528978074605535479048612935394674957877211270358195273487590981739827251480616509035902272797303529957294573730646460197611831475126145730641361890397301854754764054463329767066985325517892663056766226220223062899163645305504163327778780424854222013610522765151405268634444432518634865051755999293528044047144892055039074553315247795871278239080486837494816917348633534586185559551082150410134074414135951224047858974652637543370257369237900213972032998844924333158801316839512456584432411384467064642603298388302166303388044830038934973900715748455108200682250777794317401453015287227672314754833664421700363616850048504453672290915391267863666189681124052930702206166030367787724030342745517530924662179372171981389413407540130167675225146283334006238719677627658843755900187413182548631927325496779430922827137043212229563243409831471517716776956706731453165476861752981218111742003548055182203511283150904919910028775027278101435297825757152678373428382913197224711221240587541052895743838681906612665232940270882797427397224249423756367181530748870921544508037669288222855911189356593240181308149483645152365597937374559328937481912890819657835229683092243482734154062278271448079670374216513281030143085310840170338653866838842034184444494868448590329063304617132157548083285949940850482334148797176009097003998324026531945780877490647087305580229064724314045429820931845093453414739572636778295855874831532681443915447614826490555768426084825196106682113214478639181180686803856582539437228860476672781590873375228506367464658990727417778197845681850641941563980711391475542080885166433042020150744975926565804203712319902725152596063699264815649048560173636727823379256182874662606480005385489192373450324317381160556683343622248290271157972385993127630730247537138928764782105703866908392023935546246520754768465455557173000051248403314433492584956118614521652946272707692642154042010341885025223897638226192147321138009546370824278813175350471447741728933884161698866023471049894382537162091104433581772180704803969266441160784064642357283886593485805749627899707787168208271516225624272976397575673978618512488749776809610058589517497400262656676963538453551817943894299887416725895435319404939443738149661688685281042764152247918134519401571100581542406343532386321613297122025609113371638716432365422585634256512321510391086380397260567744402885330791756533527140725145337696397377863635218817522754423337388194231936311929076297053162393243074390774846961101599638148405292525939421406574933681371267319412814450488974848932978228857354653214444157464476056528753017688086705012295709811241749288364915988004128042734733160505651515301137910679750845832530846281430427196384815392479397021856065588743934457264181181679000664366781965500631817229275187600853880886423296589722372640866827500529324461736955288877602343846008480593959049517810529413129950057048640924569088767631372457081656517532061556458606696636471779562489146769031621269909022109799833644106864117161045553966541705960208912508685624003981704158149482271726256222533937540804659995689322051531380466940361646221066265013506893716674190712845635186092240784551915686501708666541955411388787696987700640047311539167281655614457421932135001929136495090125535689498941570056643776953224481358171020814408077198561724122461671373558446408434354879800551579103268165422177805832898765129802630539693570377495118009534994196136536788313417668036920693742779885333453922132666923153888597753913580351931424369425614341573966959345198719950460369720001647600317075265911895387382265273897619505259024412870694132202288714730539115376253501338087762717324852059326260244606405444607699944127151255097995602480721828035628283728271720281606021672864473165028930450654248267578444588751726615660153523971934763150463109470240567445917656178465413795810123983732427980574201842827198961059007461364078808723597127884565255045607853161824792846868894863415564980762450835569106581426681316134866892456729633052248660965597284780486033415185884135232660387770536373972500576335756330678984124252252026647806752036525940457011978635728062398190995297071137818137047508594828353085508108084469987536173683653237737059369418618305508650657842383908679383847796420015393616486685298077203997102641204886919598417286491228427435484059803349823497726223208706307129230577862999417013050515223934314225122943564614329351240512726536389117432120561715235004921105147929059142149074245675928460477999612041309312677273710841475708760400132616340327824880756484011228321345209350480814297436533731375772461956543687048295325113272719933208332390786504721718282631583847360535239785331779557281021280459212576920674230607828230588208413830300164624629255717005060842231857181754653527187143219430356864840926762520027473435411729255855565579901074800032685489677846106481631431501095872731875911613412874131015537644489934801817538232016719113785660484853966223317933098375898872364904397337051851580225077111644309786033561229152863478388857260685805881066713613696546671290763628523346332634101280085375369919234367446279492152682831121624442618727651269631564305980214173178625290928878797134428559141551781277110091970600267118822880228267447617409317988427028367512870837563338031901174568701243153476718609711398032640654335824320889934396361003165125109397688795045149101159037617362343644753990387496648069622145887797248162023630478182667027473273409045319913812738594601567003178587377856649071807557140944910776315088401930208117898152348033859210707065323617097692773228292888275344209757103505836662411527131101116359482583362008452655209413202646075895154660499954829644474994078789974464192101397960405667835000691351241208514375670911894272565989603551302069853573386689807497987728857873586945610528430812325987786508893714196956759888466358205239713285518414122658063538505593271983850383193061045352060273603387051629034324051741121378899096674909476006695230806474126941849443416640124690691395593081972471101097696100997271990977196575004403059536204585309944678896804780391213974111489923365697330600140564995249494658335050733209154247551542842637904515760279149452266526875194302589548750939782865688823288194678787393015542810414150571035813055577021585691232389809660510715123693384894259801563678019178905525589580826446187374681472368224375348618877942183311958963042838994001499704156050650276386868697541487958456747573736223277754499785565685365379445858033284072531115984005837366696458451854226046459842024540759059450844620209449865134836530397613471453536320948579332279102182384721234695452397465968143253077760834852602998328272840352533936212772331199234167021073593591126625796505126755327520729663559078815786311332331638323633866816149472286734430620454603239993113077724213516171556769301359704422578380172988673190718356325707332819350703966641302610970403070638819728340103730028832124548758942140190810176793240266830960357479900292050774788075527298097500455699745310365677855360709650632059275377066360549824918071793474680019618600572277855514565434208914237169457258104287020442640635125659177674473202944685107638134289268910575627768575364057148039307614941243261216619648753035285365215213635247545879847583231520667927888494058991965478140460389122205832792737447021084489369237512511903614917698422233650498758523689309321515650964598161211459219180603380215675691108488562888842745453574881239740060261551800016430715931893484478214190927869332590268663056414164797433483541651018157931025717875178960199341484615113111448730275237853693246836439909586714910122777040877645167809101053392268944377409495038063125954372698610646399306329908099706995567735194720645472004045091718639764664624241275485169469070943351675287673216180602788474360104915803770707296114933131200418365459332732328596061774136014976985190681611436463808017711378897147179368300365835874458624106687993133854338072904894147238170868119413492930929673973211400442969191902248228173218077032952541566287410258270530807452033731761144448333727251630876405107351559786871217151720990517495357353878033676523499073164448465400054235632328880535655444789304364370669169763968375151754571673187494428527741652043634549702976416212652441605163110719292044720838400370828981704113933715093411748387194467262137906008620749278816273103319810150338861815269078222821985861737055316980156981798354481917966881175629686112795910614407559371952201038082374194163279000910875915865513216754900088161931113411794295783136437014272271578437486850268596614629532191874024975754321885355642805671854635322868557545820453041832944136381689084792719508384559410640677949309301400704417905572938237485148271665292101020031871103074866861058404131664997388070235901710847634248313465013212515460939445665196238501021168340032733384154340809593951204547062401985107157109264997090938832294857859004487070063535532469571244914736487942677935634205514304795840978880674514008260013025960445689729599416910141452025253129550899072081174363037783899185319222807911587496912692309490766873508581082407583562488422403978217104017210167762195461048866122484298380246051969828001423527623990237771191106325827004053361915310479012852820220089467342979858046966953427350357599048139412289080786967879364969093796747979231059044073598558400016155121116432732914378418093136573583856384988624256827560628857973503322931972423902041787756651703193502786303537012221390477983794291510969795396733818676574515836514049179969091829819672153495023958030720379438782420932456523651791449543153799918260135599312326193239890274590268204498856089396688762504704215898454516853356696162995759698214905074955538830603405461758418151819118142321701486314722936483364738611734174974141736906645019824241400494404142880642448769217209723377938531821842127938923521548086904243726233594871040270956044212878661667515143461544821903141553945718316276142497785774497726714883499573081717891209446457049383549911037904988671257538736005919953780943557018376966871943541264753122391253689798339071540136796142560446627951236406151759658617438583513486448513834618862860935503497855807827076210034449485890276883665753817613090135025643364942637090769086720079713772277858954330300797762955652320255815441898530951590882859993960485482122601827242066690320408581053536480967755204172485583520592426004282783371063741583674174044904462609745335923735047477775708947560549203419483238609356060515178284346979495122622226087012917133000592534073707253764798960185578821798016488685566776031052180186967956971744122632117611966303980953756419762412304047171453850767959459627218809838024394167532556131579622914141476039514374915953982350772131262495130945129883204223920320014400002943537634150088882693593919738683678781349687566417190591800439262507181352317385210372659069393727120908515719139401687379769198154310998714291336182915213467521921134469264065061042097643368965143170571176814495260880041775803198658752327082659650908665640458207493377646818828194090272073217044028412090534092698004372487366628080432457175851930500090307823730788789509196466845510176411843339161427913557858778080659842314177999516385900224064308522600810704806860910621235335102070378586057895122242633122573400392520630148308148646917722874037580644021250492219840692124402384313599074343171538853921216975599484553252463279776577447058642130928100702502451036825762729551884244766292840881400070482821666790320469261104675762221028058576529988271566786168050403033207960698946117252614254515574181508378649837412092140209945893601794331149352003657495938578658697711359461801741816036602393126802609708069264478090540612364313850350352012069307866855923786726128725759779163174026447033891447014871023960417604596626368067545212051128952714561367260874928326022281268848283546164994759272457852568665245818304885224977727860574635448199540032242171508237189916359389609613882814595391516692109747335848839998325805288506405336719941516350582754858840336041456364077952042690366663157655200258133369112931683790596845791453849291332077998434410602244916166038527598875225423054143260019737715325386324229938108934882028999729013041721071351624581516949086760038260686408326634810148364616314428950383753434448108335852759114676114658534015882840353655582214624972584095058729435453511721115243186374166702144371904187981753016108872058159837103227582229986235400542144875115386885107036713830959833870700105895958661367540349411264987000972687114440411568950517817284272192851237930109782711139976829817016082798630349316424858497842439919679003029577615792266985285463716742089598014282450275242804269268458539228830582048648814210312498622583690054703774507853807385159960898873097233919949019881633292275190544932572088912846760290562045615622173342055136325742404175281446302145786631032853038247312830295395929225428288323853761439013509495698021355285980165300142292235183254435310078658886953671553114568178680735366649458185029381949474305733921840312018101976486588710060085435867209152001159532752309649070758159646410163030454715845170338626477843257075965190191148565953588639199732402624061996053955906220062168245371464720808132939938769518077206799070956814546780134986002326596024355616668025523986241041281299931312906526611869211085042622269133214408393062378600696353641007594418136058817533807221323296234682490285214362223258217037331105366424106117201092303837036544141450390504537585463997407448891987098916957879348938698636568859011593048097130280010158044689634832119450630058037467710972322447403519381526878931690581331515852738911867381279491822884266565168352376067348408715342530118343253704430240334069595206971016533591565533735303162986905855944737375613492780674723709422778555159287717954750504965582326131776410504766108411673427847282428888096983358049087991479272841691583117457050329492213139787097406160536568584949622505044122539262156251420305129479194334473927331968854840576630484362171945523514942196910568389342156966745883950431671307081310767237269409708181930098802675534521686195198266487049634855134809683681926102405396642064314508385378787360161772758785159065138489326536986650105911001782971040492464276682330938576734954907884967385297878054381238373941782434825585468161067489267169863033086875929122695652592884352887097975193659759032226534076662763152272249771955529221931359885236686281014506668029460577732894564318586800896582936397732327559214877134068862311517946915160780619897272264892671121734944582638459122729129228513161922672548193033835567836611275574367073942938368462125218228372309653654950411014319905293799996716971351729266719458133900434787470821796946998411404704733732930145165487173395952088560491410370422662810274802593743954749826868164704276934161159181561716583539000726645134319972899136294333024552436310699120011563853682253737128674833028445950022731414308745255564821289024865002004852079702327265015076905046667300087275652194232388178162672885756201196010556092905647779977214649981827605912704751852858032677259205651800015161800486455839795076836043293246806396544608069830462773425984885059325688722011262854760704195516990491562861978459593234236182995609658666526341747362830975197469008045004907212288572936036069839046934267024911509154996344398319505104875173385927620537583225276875494936088354305167368106403846721573052682742394967881932547558248849673565546318514851849250878395047734235043974844932478237167388196916438001164587360366966029517074276421718151087521470537190411959485135285543973374841673354336860995573996362396687727009108336723046133624229259994761709987635112621323961614306978070012265293934876173379887522717404203511613650235975145560411039307583425726868897105965041004375021236444788848068349237150448529881203402323413146139096017598627983127705222496262379696233094809425956130604376578106918948110342711650402724585582314861991679339269106715624265068186933594000099010481784849876347294850623806580264209926665418897590640889656229774725350585766336132257997410190744457733316507835890479968202683385189449487106704322668203993466720711463623880534282163119346658960938227144880085230241407596029537004017275695993386320403099887793507854786366875462998306643878892764722802460258253827931156533644430360834708567857615386186862120282433199040711603242762617595179513446529905328328972704488135782912267106622073842799728201783523088387694281357670248940590526052410139741165356194394832525923050539185110595393703019117125034268753607141812575386011806803705219244398684864131860128138403438324694778645227661173833214478078469004090991644228975820422612472696873668725366883643462025274597613979236645620620863162884861978768681947490464797867926810401900916905603076993322149409004655758955312031548929273448243384001932427883037422547814398739595704680221636330098273900251351288968844669011626092814838524415254361958267369813986848489756401942243567195375493349566305762508484257321214917677932756238832988473750773651271182657013081353089668192906134061375189662996486096291848285488457216454991195118901801054771123238575180581515667608758514727391286001335513322913561946868113255837563233944246637723788847077872408559367805999357481836440974706575491243336720351085827010478256834499772398027546977221306820947074163279133386109479485322437946268973339910584612728644048327926942692836917244109747831612011775073136315425099582596221101426638088548266509768882566733087279802803844103789891235044588838470486506882938126816744247549476532870964451894941987526651132786156525106407830916846813394970319095053484355503318204003379195942804181747933386471954459064518701285436606919238238421741438785174390373445460406976347986778483634003875290109943990295613630459168007803200406388258884655090797584270502722846307724290673527659582611708363289209478558273899014073428843425218769108283749522228060237150366909763342226572329945294792430618536328235372825404454877132233827102954861459853396540898154629739542318872583496517396399399101879238411866319629354263327554389231294081277827523646628035053756979765144902479533796378214081058171591687351306304042903173152451502521978158289222275949751772901486305325573163389982294284772165733353809590652969761319455670797867886680708972690738626109621711152244735869567769214660426058622498604822166783543307317252817380430239128834604391001062693010603236740926886135924763995834683982993461238133867337330751704699800244966796171525711132538815759115702591415566144788669636718585298410439558975932871105220582527572233249011034532730987841347854059394624627185785584748765802390276274198133363790868615565026538099003520469819247333204480417739069171576527888238756042157138173647926793884759234020085782688434246971581768038935222487923650867567766082472133795352799842500396872117266534469203924765678307060272190915925219103675265762082430097961560720385439246907399848649687548575641594895210706401938151158455638712776722571545685908943207180407547729595780746155774491387760033408220272485840238271976350504398956152889337144562621181220103445858666373583400833315330647186200811319639383286494634121202920638290980820679960732533895944871736085164905934189102661407921824975957351189158331597759773755644381964158060187934547735714363361758247799342445310849606350161245796259530986104489096204150540707872649167073611600081748691508166473371976577487797475258339901467776035480334389936669036633451812079329156303950193743356278227547780058278086784971757996698543492197463378033190327037518735284043393409525857592948444509448274762637307441809032509069820343002390986033099210475505541994855898005149293189962420226702754062009306196202959952437403286070248456406144899782812131983069702699362823824543015836737703378942461770761626101492442536311070163277461453303410203323285006621580279081640644806158105926765062881714355883177092378563403991376804044437359180495609927394604748663328225470106701421480663099633667638566203299170591261445117362905667147755077132805128994458642004917196017040384906612538342019953201254476449904771546623617072978612896529572869924873043645743748395007786796296537798152072721920591534572378573161559710818970440267075226936579885548848855085048330945344710022944955683380365296708518824441865424532065758078900946969976604328349272148394301937806988384565164025675216196122621664130818369491130282964264547577363986148072909465940525590235639007960672971663181022485502950746735330928001951221522384890071273371294994181345354768055060313578171690199826969578757096750545626578273317152504766245736450257175961303107333094463244686444330583118084983120256950898785566208929343615212078166662287242372879431200290120945195411209489621169076581146680961234393603307170452961194430961703254803070093089247903317473707931021205022631419589780096029323292670802177234970992657645139078627688130140192639906075358245497176239635402674087705694719267240295975527030540279655933412677241769249944254751454231662932179760508170767701628570584960972084286714890360621397217555980765067092913390485945534257743883874920827812099256448149892128601756298439777915323319890313790570318765548250394024627962131058834372237024740617569210820178289224996834710354033627597143061170956026321773380661045827109583734187244725544519055260677374700582553228456220025575328337509723026085343262917499421285601846983279918547034136906784239372229310009976055644404541783043526366432530371278834119179961853170487057945830967722768714493882305083476515730292195559884541486412554141038992074302334204722403520483204139656601208668692545626227533716304282653357059713104923860303782472858880858881083278779776712684296608289580374281769111230773231250142780610267307278126356633686374717177095335562528980833983564276147489108319292334274460422573488497876004777141644106112425191523028533348358212461213224767711969861877375400278297307367469355417582766707625826742894939778647208939497371942529461591344303138545031710679392734397770633171814929652983101803671569493017720515917467799732535709526100261632632340540546862815268251192981537829667030754193006807999631058982168536908817484307258425319239633426617187338636101041779322354816181947387531603343541218724839119574029909418263438852120670910686490362178753782629536114349282250042317000886645557963739400731624542892081859012104482974967078020033406921048593465534918748433010515873962947140484420284809738519752691619295965730621810780631844684486557546222926058967499725754677310793022566497663257145560002972609298294975570735299158293006348661962609495015077150440233213917630695262191950289505531997177781954293706707214703844455331179122489513512040290044609171459292932914894468346463803331124173004471858674346243653394260884225976238705678081973864060936883968170971063463826348286318098278005422999317904388533270644636477027766382877815185116535628769360052064529327097183262322023761350903011881356671733969008253843853513781501554720425427845975169410227365697569967684842642178502383928330623239672230560130318847164386647457408928662344142859823050011451237011135251977075760181997970949200187443528618980453334506253563691370596997325704203330705410795246686926624030992425323501211983449780924711545426671767839260174651052463644117804810801327229726150183332504729473965173294942900833465976279152259680217081919185699009628367215795441020697471932827229878480410490109515195695211223184990502124495955536477192444223882845409303842469390258832348752205792219719179297126962111129732071999051893229204557461167959585077222505886911118216135962230567266278320225847238304483568743181216710083287199978996808644975960113664309618774593685789126457134126926003875269512779287217986717714660238275833136697514332944570128584558001712547522347422178370247280099952632868117825530613698045414656075402906510461713657323483715488183305905440784234077035014526520400808085257458065835112694899731036199865990903983065049990285202932860533986256395565503556002462668696314867735995439619344058369334106172765608516360292724120895981578909690764074791039443710990779570841691422706228304095497711356918119913101224845441541332434291364889399969942807219375479485143844634697226735287117917829921859395165640925376485196382596452469549810150571544541431721648228148080830975411585748618597357430920459880847779455440405566836229039986867854779189323621189399438460404570282833169258311277055819503362810159862198242707388399716360688765931479863756002125574550844419141173200203963568900203061362874005651289098440879659948513121086614965048299183674822594703647605516136258791399134235134076112963324008647994285219828501190802399566827104288306318373214524059551054961974562381802712280038787342350412555769027172641728431911219976982808723052467824968896088155474771523453409381297320561833742773029010211248818851762499273810671714137738658413815463895704554783695204482767947441421322823139516760895164044245020533777815882337019039697409850319242520397654934779639120551863862305913423714836601946929637088352793267336022460547737801128398993277423173215988141152762786166069799703829212594533980264290506784210513092024627758688916363973229781409972926410982494215977648100330813747962434193985876029759077698302214263148928166042200353491009635336788972689194721531345655265710295716429718061054279336037708938458109235181641619998046661498184736641231639091195152737309263825850176855549790571669223229724226446829780406725648543634826945826459238642255528490708456448307382210658890796360971880793921407085415676036112271745940787593935169509352310914093735920443096345961276234487898606426551964836124357010933809310530962964111774672602471919622341260721879941237566829757814716200128333518195953835125407152102397065364061661635844370737201729715518755539809115153958592977598551020227735808288159195349304930781426031064489508856549342669195964719148680385934665201951672397594780205341824716625700073916286367351804450973787337457917880071027842118679299169982687052629005054120511173226965859087326974434153348858870738376029275149950688951324660349385998280179894648118081720083607796853958671388085485360014729705624106913946021599052683411415787318785144476298315959871582917835881616824189416604062718700605180926599257332603951920028807059186302059740108170695106154228526028198648632202446482833217498380864023113753053255135088385263052783878310731343526176271473766027423184162222308684813430023610445123779278052858831327346608199835218535560418053310986300733237193267353106697967642723746197801045234241460045583566719921296897218508154342578765922392196248751208139463985068979569758629411300725029531651215539026788971704363535244193171638473811253688128424048878430169999689989582132898272433816229144148717510367515860512340070803717188430100504806434763880931143579020997473797266248634881094638746655131731602266963869266618808064755118892436662690617796854795796116250966148425382579364841755911787111765529516405102002041383612586085249234910393588515325400502358521858869934443532738910914955429299925453929123336432667573108496663814791122707290007383074036413958943316853676969254325949150024322064413305580653183467569921622332287202514962023998941792790407683012858414404987941943693981894536138669546127226544464228249485122040310673506877811884480182489329544081891012803588451082157120877707892190723367430642666761162970376633617073113045612858063181557214449800195127319230426429911462599516158346359433126914615374213929833760346965184414850873564162701992733967471401663568199037332287744500721723631090687178226211832942501192960527883118275162426705498405409369521806668876941175894106444080837612525757165735702979275151470947914024719492792845231820392585532944411956984872452052679001201549263806539825008010298516920810504474169733342417634414583654269771043127070193066866138049045191589055400345139585483412415820349302883079132775905170339859135482285863771012581438678980662220113375582971667005268754360245235115246053448975757918393853673908645203373620750442647350482956053804089160611233460085779092217131154952152666755954803018424894556910213778545243790659219893150707012163395078785597150078260033836690055237206462830435409024315963419567583706612348406131191887192166700475421826890272159419560644681739403667940756865541267799045065992898545478490807469727178313003906890397897309317503467669365277249006001510292230841161953605020929889097393434414149068468795801704272684481199070740207530791902380925876357223983415836255756782606753406417595555786756517471354051743750201344637974223693143346590997679142045284677218370944979974504472544204284224874323207414556749548037153629401584467292094948874946914711834888908375674456562304790070149180046533037125178695815300086549974147900438238255866575413179082979699808282485783304530890322296659150303710643846497577737012457360219086625044313211122414393224589127474187273749006185914528477814283455305562718291141386428199947028218739054185977473178775886012613506427166218939589239806776316205743096118131095381525309488734854099973645677461972643385526430009498657845850054465766208294457518164254575036685863130015860823188179804526789567195168710622299969635400637812602881036291666714854874926205552713339636014992616750808213746289438931632895594448143255513606015173407786142781852581108597055536181708422641709824531000582139802019911548968272748723240370702818153986640190592754850050302546622735846677458130139931708627402535306426448928068975909411512065797335757968926822243892671567294841822468209170826618086796428634526013067341020070275171448156794841017059758010512022948269959204730618747729238690289039911927090678806121722022428256248663112474626144522731289626432422133551031904686792913625991589475011609100418479047570513616530632262477580354475796001881044641544366112296194533359748447189881135954800984674275063504349779611065918331570655394096726060698129447984563005902116782518090122658612065584070882939966903176638068435252203543466790585100231919950293685013826184697778659424568807844552791771020798354573765583472184956292185503121617279332577654440616577786534998561960719271062617461778120656576269547050775582915767885597334921342858292267498626267597962402399293891349694202989386261855413548153665457337719106277518011442526017810010379636484826729008556185381923200450947827036774878924132980779393895710922977275795570885679778076292934845010706096679845262206224359996141504663035703987480918444888159251772965585370072559706178230544165429430381766679340199676150043920403577157140083602015335836583660450619913566379598451453101859592651830213425495210770203027789352077647421164602479396737870858525201596561736281279764634126316598205969018538601158372467518365106643007935611328125767053476748596980691192038280287433469652307230675343232825906644152906128461273161333922173917700683195884822742943746191018718230091267006107067199602091862508618398876487498081866057487816258646998071541729883296434803967328136426580047333651741959198725987432692577557542708174936954066515014039780883862000894264181635835734284877990323121742328404297114416232261468721353485267178992547098734972950872844595644872813839856550581809259746179139593131535922601974768185103859396059054056840259380734336538624148281206283231199274158740818568403519856358527035682455093778206835540602415786384357677554206470532810339754444072380225763234362009630950308124819156083737821751607792546411096654142010631690286549713090624271300066884923239318388637761332933029491294268758495122290409948422115988733782847049822474209532412934238774492095175246196543984395361362503465684391425870283747768432559719459094570612362737024710391116833079543444448215504410546272701390389982469584494271161234137365031579164990951981856436975748816187674376165407502186506582224848089246363790335322781732675698740740353771800832115625784965423217147655662405373232006698511949059660665278400633450527594858113067212065199596065490980741588712179913217676770004233857254954188788859933450878205196421693603797139117440275718197265881427865016448815271238486674105791610081836179098924915427029304924983958500965229069102036589663742887837257041168437667392964460265563503079849788224046016791150224772536745458281457002363407673692808067885976580377503164944013768891034001693946891073506147554946459521472916606416360740817568440541264825083499641980833853186339402538135600883386745481127075804330247411105027680676100109819582349931850610687131687998174876429480727760190906919830903665761452448206829948744731368950585012780308301721566816702857325017964352634578659258593270433716452359577525468961860921456902422642886178688969702907107826933490103343267080097946092536355598646023468773363842370957808996099901698691848982070922298492377652804187021245618686169993474752326981454469813062289223744964807991298599806405074197184472815301631313926574731167385864327346567148276585724191658235777667286769707491675004910172917263572669060422242948635423319590454300417397875316826103939524125278491843672214844261960758519310928511810527947341197694045723746985318632740870674797471347070220582462395957753792861818442163764250134119671413379276627199671675880525515382082470433471620754383614275897954461973475950753662742563236953321322546735507433482430016737641589890663389285002127000351826155740125100125348809940494743305709125905387293273039334623736515989140630249582238380564603893079287069901635585360283879615739436966151307971364515736667276662797556628310641401176699315273296794845399797073791294865286737023650286178710210446424063176701025031499659945020704020595548002656112321880019604008965975369308103998565354620937389018377765021371938821436583149702848572888428008997784488093279158057147038440548120090075642655963897241059439453843741698741569829485112118037594833194740111335469388440746248761770878036271192663957554852211847850047830617909749583132801631253719523227562509877097233674619218947067093295776059802019093103452938618275984383738302146761691978585315050153615588072276532434384482805759022174228086135068281079996917513421813662933481697960413410150214056922363765181609216709796498781822081896679276682538841084517067070225541557599403096344604443208665887676988491353528248757482630326786661455449004477657356143467859466636588675413819477184394735311646718002315773261175855601802182040640961785145331974534304396466320818996824891886863032730019996542391015680846480167084836936756547800992689632965673280351652955687286187248599123065812147027070634398483666625931689740396073736428667288492855493252917945326127074157360433823631041949729144665209434192053438805472969042510857577239620241042343704303387014128519066001905586874611782109047554157859748718833407970350435181523948192475302481542714389850278493672731745766356485913720515274147335406740076672224516146605764087417997850314963261164704947638127964114929714964263460492077545686218720603507648456971256417558959845665620004662706434591834990974961231991127629661749275358927308401312597133115065145431497906379368078462209523526511734289000615107550102577245788513805807876732961387176847486139752898209420935201787206069865153964920340374297292356845537292830709958195779047304571245306134568742117594934958720637667276203077753795868881043174470182145735572124026750663288593806290746586436670537177890852592018088023108468960880287186876289346083623654153680565596060228378453796836662727691838900734485211552424082776843926924852321162092727031964012560058650944162027877179871858198982228387185981940045905719609729682963949339830289655327774873550231836614246679746482737113959728423741663229649435510100387469973099387168287125689295769576613193431764809964915044824283610328929086331253756177619746740394039253419971155306006284115495444739662352305901874060528804425783013059199824897956725364337783422569671598318636243191954496209378091259002270886528578243768492997244572646476709999904014599079781438479406154017863993030429118471101530987344087485457811961221539693831649727398967448871286917241170663764105899316060393372992678937289900079032449280332955538596174695694203807014676220722991100735379038474106356606425564540973090533485553408807690985794630585111690681799012573482220737893816171796344529197362907998796213460452849171727122877188370950141869560407416841215595274752888486785742052668918367234978759583023315534947540851884676513161655437653487508104526070844624824733624777186524325363412254389598393044940800499257276581456834590254824663151069295393954224455639434115005847286556463176802692537407670310468484524296118083863099178741078253022621957096715932183384301617357418224944616029468288884804740065531160079768633834811350833734617954215643376711883814049588336412164904606464160603246952520529760774364664890568339086850400913207008691108074797275379889490542870672934224595666155456759853478813914659299554204848244770036539963597009076737318868006084211686696607074873765601155072285112503552253311727529245447474964188490233920283040677135457472904443924561676090993033339578383987260351688852160767406696353710547090151561728591090331610440543539623686382347287509520422744386241353200623951265712834054170699697880350163716725397030711481716357885214555776138403394565701742700829549013744569390744379980483698256147756437087398725497293972769421733508074618695133810634687376958406649672578597415047763076756815236244580126561485208141667562363655312018913245589782936292726993112720884023665336600394832428250253471196331714561752618656945927268375631016019018477239833798548028152891942100338955987472072990543939617480084247368658014325910232679521468924875478406464048144408520488900757589507366138267718306866214180019944774544347311004942716250050543271216847749286975676606986023668234408526227051464323391759317121307809670871868243136224627394770141855561977954221454083125899330492291294191325645415328920528979633346475371333642694481916910300840614267371360545311266552928776063349561506899694162165279205567586536000198849593587723351433160833304351359704396262083117386435719704769964792234696965176776804831244419101968976528871319237939420234739443001103682568999508460351410733295501010830691587882875037787290743117939265416936083608035665239095849998034332818926582206858796829458084466062097526711741248273123342143026706310416492847833035231173406765814221343262510675710114201763104943227763136827930424097210488266888372366597014586951030278679709170444796364575712352220775373148103622213366945487261298764149345654180253204039861952996039925555025634682787838242305127131245414622504781950604285661125764842452625964473010298598095155825611563393332501157472661474963075728618363690261031615552669522213683849060809958688968628094574425223192527371706038209735172252429438513057401986924037869110765436154792443076122813133682020393647054636520979490406943425073266812164321431491233576331505769824174067920161583578327486387006495412539762584360349736124357985385095561794592474674459839649805314880053262192263554598924692806728770645428856826125576901145594962498654513710991367958164421260298550135607967245198126654161127840143705885263986662209610144783577989771819921957555225435954541889312181908626280701432944754072567257779126800968034619821474491461290544112405676818854948787166909008117229012988918939195473130121942703776881719097993269030346615148854740212328744801760816990016277398948361746108157193024035937590286863113319192187278527558454850552203864432356475715379419406782637179353344774275401399754086714303920871702130428964684747800102813500915992278494638001153770688172928112844346094262683864270420851361183290976097771966680897334628900172582784745233861776022663754214561101262783116361169465348477165307962296372900736693715529341284528773081668748918189668300966030623498051641466821280747354268469596177047167959788486004826317191868981270284175514481589169970568885408951762974218049133184314774580688160110097260628705512150087964499198957220922083122391677226100950468882479509263686304440592504776997807161790215046743149620528518606734571025817525681230164109166686832412929171735008900058499455749213412801728110375459791362054143300778152620502412914690663300340059256288865276065300195261308155547295891133860004955788695641535025878913263829305186993512888599426642779575515569881370696653511452290085753489482609388322213373037537593478112684770597639157443025576463782774956477069479818228906544313495817993483644940779802247587921714825639804599459833968514381743339314078426137628545963470362380845900414449985178771281209548950411816290086244002767526526367388150718553368782766317361856167602538081136597861554510458077393542342257124851369366684851750274016918791681267223097300087876990853937827656292341503554562772384231618673452696849342142771945904733353378369965289815190932138379467497330658117157147343925048783050582852856372213396762848473645232316831570011408871686765248187568911411045011582327644741484960195718146647419362662518732833726054332448935613666142815085533589402254440102089606741373060719409277895806879337367060194408770081866640390288413806500074086206020810173308669854409613839979680497133924482384335239133362750304688786308491836481076009442983724735577921714962614827867225841109863780168451505031820792962795750964086713726859529219361771703242997385763560614938929856209500886986915284354887953355661413112305682439775992179326381015237384791515091344721717532903496401362143044051441822245779168951631209825199865615230581938459115919953253747410032840201852570306750107887828839617461967255387309209496721713692151537127413391678210745488711168617703548485310173114421310584291905892449328623382294594526569668321382859135248829963426707765125179023689577967826135111690785075387084653970944003205899750825705830282525726560167168355425264337959348116365020726915240156142164979676809402933288720593217477089137957531437224347904321253969811318237556310611259387436797882394113260370341769100771108401670007748983617315707269957768857457873629732064716221078526280914538835504554414459812342663715120910106585142156209957298297664276998066543915211931835462541490444889686833845801097722719926320428122441024719842879410179346795711568679933869304422659532833513138409426527160235397532211708732421396971634827130922652320118909924767769434555617656605260797386031062929808552161274254226962925376773523070901655845507796118015669621510159832781470923698400441720575886862203595033256633568238205707193598453408507569519243775830299454868045561538798340983966926107872852706993096738305640461680236609526041976184203779640839713904480837593861738045779905612962559927507290598106478825810456141572781668823020041617583270144160796566172592415604099671856258608289474690280644457693023803337399145914579769955284973342702602223679018670187143383577944462812378663451719030739400696285333838959360634355770031995771066236059270869563778374034566296041230211283705128617830853419829539451783959490589256922654687382280510399821432561657313440278264626858223891732724381359653068458121803684775640726791198081890141545212029751484861002669205381361701938080935793743712049542915545593121123241894137756760376582649268761187836649346914620861454519502743771620925791805213833817229890889420318093058652064228089923261936153407966513180199365850886761167149939484683656290770213642182441723229682949646268361504383824632585992828689247656576693884186860175921632348484926473671016815792820526642710523069625493078264779145437151707149070257684532169674413076588230873249836250525023447369874502051654359051062173071345206617803637364395824929382856151569759737304620018223825616075158692193358672240648400501628622246960548036154302550344597549013333167055240489503160221868260331396559708203368260016788320764511388618826578511490503375005955862278273030907486793076804461464569903935049531788736038132636700231386755179383432767563466654364613777740901476568645259555050444911511002403460062500195307629566633038148697515602815226547341028368572901849648976067601904962975629521184062128928312085979772987274789524221003453813524398281079572629730947590640708195245182860255116649762814776956040668511250330931757381390735431971066926622449204857035393038682260154179416720840664495538079365412752718442559632271238473655255750505799197431682137926671021268902573491306319689149858213531260185260394728706524169718071055545543833026131271299160995942619081280676070841902520110633080576224057214507212210715944590861638050631821020308961248549266699692732006848092925172315141216019980481207740507532684160548028177535142797010380749313061547803561893535466608810520707590852996113658909981955899988141882108168045872468384508070666672708846257612406976899129301328381338870243828225079608519932489733770262791117355128470301410866124229155847115028200685390277744050825100638997962225073648007085879191543479569729940842070329343833136299347497926831611234163511419164649023052856450453076185127236671711902041985480465635432342949107513866972038237059975578889165666942028588096244694430589810641817116003167860089752202912073252413052236823502691911256662440788505824415890595173840315848520714265058141327377362537578134717865745171397647913613897877799167238445031808868998189330248946763642319903527251419519828547564486656809222050299093602922804718925686661890237206558628691942900035832131096302617623230806531662399340137085159609770364394876360791667253069895657996489511248988208881860957862990904780672406632587602630537177693825047561160921832942681671123398630387471900560371245680167837900607029253226074969762571383328758690773923090131470084538785825015575825667053771994535365406827948788880739853971640536368453289301977579992967005276366606470356549281852435875842925826884627622325442840151725803445077591119806899684559173596535947494201854066756785997656054823652764378007727623246268370645537820000657372016046148319204934168096544108887725745000196110966686440793795762244327194766382338469525607590876361544455520152644854272671136403960440295361777806406230389983045750670162346894518757492013939190599010790494929884474990767447571797293460729305715577109435437451097059333860902808410093883289962070860923331663535526409836231148177302324154505123062660398660124861256688977999386001352402623158527665963584101780567987741726192446532927727902775574691373642947811372051269645837266392789241319141882707633251443132966224442230700522904489931759372091938497053476757922870874142326852949385790041932227008247611622027351391835300518561005836667479098329353497821515305422131515674132327226205499540838678070622996163591561467635176335643132208071975036843398352719079454922301764186516870210851258060234811028836746565326045724339492049913841895056217951562625021486851518720583278101877806913453016128773603531805960847542880671552266487687497902197037803961732391835048497628948220436361708617006013965066419817250984448999907249236460951040723483361636925167727641466416901477164142300692927788030594461422366383040617623485196457643443996915427245686524217716738742869476376991888107871487509597732683409322039571804097458342321095275951007480601067913291714233680755839377902807889830527822655719152732251981806891077000541138786905053444888694060681581346982792374089183075338709112388969603684006145732967650489183931116535226834279471924111483361184608359997045440564549952223049461324852408630248650182038974568216210020086073265639136079429764446799552152628707759101759066371415571557441566691288535465622315952664853340515836669445412301398442597253758249714149424751516806872830393599351961867156064996182316360786444292682804402632813922545541827673950920031196707655088030591316314072048792082393912383240547501205490958602666374772322137156597584246456201226691268306690481002471207575376568962148022299460032303226207060920975006400513333343444047790714172259848921490093311040142695843425598874640423325229491553380014006628103804445635396825952258935679256552324876928464155573439917122824805941108659985422439517827382912091378075379594314948486244978716074319528740654473581191138188458444402724844226475664076495846508378440627655400470867029176337915640315091897883069003351831751501072664372625651614322684807223894057428591516792127557917012152441748678737415111971677030902861649329770769601486997579425280075238654631968360548372891815056159189332275707533046817572656221692293836895794533252117661018444898885198552650242066038133528149348361558239173550478027746541854586306078491939831868058843520610584093701063842708564563381292466260568309153693217952339689314229441929313804796509093460529713537530187035365365024959394203293008181570947230480916715353197247869530039467878789697800028307715647302886126895841369132053018122586957254060557407353889717073106805579865129234279605443793563246886421843161614209363548449286786536136161428731167410624049428275545347267822017760858056835504778129697933019746781643471680654694881128352028617920096699442723679484862199186207488139142719985126343931848897035255172807212498212257220780712255438805862176427987517983789227454474839647370076781798983139025503226593015824972495062844993122989845343727059231768996955713363785217140465684255772544870667503672866767700442186027487940597106358076746054421920367537717672102707959550543593817953374735648826896499086486741816249877446902987751145964435534715133938802538494275779151975161989289497608236613366944768717743877530328815387226804955087863504184987095975063708489626734131091657879162319968125443812855932192441559709708777738131366462228518228919007899580881048729107882475536984184323208311363183930832904524717316063204427736863349454070573445223746048726894946449367236061285558529225597967891891202316769023553101241250944584377623766186015205911372843718460856635507467984317077227444045763802948675877775564260594621529425298394039339275877598757085906583401514422632633967636651684096398472533333439225259165123154739583806893965149469404826815915583863118507433723189850813942090409496010532797215471588266676297625735567748886239610963366704085409408653527685938712541825466467402859150165681208740630145589937519561145966963972218864184185860094677081091754982696832924064072747057714445271741649702860467955464858925407648269837057057424880427276037414156704860698324167140156751150355593023344841574063909317711850024855068352271461449971497399924156082403418370935813761176808352088692355007303358026394921300278136662635249943272113975206381168881774330295706412573829736473599798947910920706420299986954322690613640113333954222268441565680198128778941520602730279667428917377802641496319531800699963514614719954358942800445713304711507396758138722141113294994060692967996451560577715403978897000778480832213192143652227620519726499216561426212640395727268976096830303739820448447203347839122183637388979095458685993426843610138294425349180935922772112420521831516692305037951079171197304165068127052311226967625692613611754691753107462546409336013394125093352431225667078341733366288202365313283103907884239127482809427547114805684358120622870450420962246904393307657302112143116507096749279797170943494665157213331815198545157250215185188251108794673773936723051962943288194280040146029545548579649984635665745024948160629344599459897880746398462044619880112299317260356217172072393797199989085998413653857114069044696175322863484736931046949698131871277784833721081602751068963440490029762962318859005229486242063820067817828089309678039507092228076602881953256699611886992579296543775276817923687530985310333897654714963665677001705516493503935914449547681520235867547950429449361563803735501528177542526314936588925811625380759283175679110521268202024629634033275098491643850631511356340279970835051107537230219901374398743897605190919257771525904196620309925482566069869551288084732131043398298560509360868138778663432323904383512589001354019161764642013503823000981959473453552874071606837755300233774054084350966015112713797409872183423212062359326693371549469681594443512290587238597402143245363626052067015474266634549252987684738374658354832349897234488105175818475664124362399432767416587773476803782686157555651418183984229219293579431691555789277579477130702164763300844938402642654856932532984370209696526836713308354241569319386831167344143412051116498052388337217395913197548914278944825973325005642927844254852692368601979365167679182679224585015204743416845497508784808690920817804220554550942132714211142143969152702990836436917678207064026736671687808319925741151634930000508737630338547482376023369362616205808713398405459215875828859185309806848397081963759296850808383238157038945353802282498372031449963362355590205372742012163387118864571648040568860160682891297334392303011225226377080294771912097375753347440274450376194142621749026066245009384727699114936155088528643534144176924782453223754213995296076932767370717511751313013284415326863820536087383941556269546673030370112802466151559777796065238299774441250093430353011371711336881136690839925913275127331911899780863588572186456370708336630189997199190141224594031365605177440443394516620168759809171914473841932286092367935476184779615063001581312481047726926457602262850481590970831019323986544069069875755715610291495519355463399789620293352310613386012580329936232469234344788250620654793266179385775187717441571392237765688086477120187264688778419941367763159568355502761040370441040598475625522367209763334998707979839012059046076974218984143967284962776160306271683048443480483773728505575730699175653993580764172479604616941351035451227670614395975522484058948757005692326166341753853871983975682776748868215265387737326606710899912560755404679550489208360408943173079546538065214606729000568794538579421965901820148447929710737314118625452628227721203545812723513475152600107517945763678799605733108393865819189079607746983221771814305270623645284034796549474146115759879624664874494526699329431421975735848752157487210786997142516973209537461126100126944257113960963614147311866327235939461373421755733181882332674469910031642918027599992519132298853268659225122649243976441999575302595791481062256011775321449740745339589624099794192882849881951387348568507833743849234272919913110481436541037350147465710430131969680056180300295529327091989426925066140449912229237989799850818521438251949710914827767715992777361115578707728622814738168662504875636522346160490356752883866164330150785095012867852008782180384475219905669565756100569555337868438341973871217192698870942211903016510451283560967309975653408124529386233623697958201149108579177657102966598389976329911043283759126354363666684054452453478312708866145339179549127631760757514912449321835749348950374253740136270566950904319949295687803501529150592603088556001293511264491839072376850792717691138189232490561531890427234806824604628446444988313204182420045754970186136646655802658050212483786581275426797551308450338248003735179859933096242446498357434655498929918580002133302083848672835322346431700211469432474368325791434905729865220360590337570126745867394348098104020617960024429148558482768186476971243360985780857766690310587047160498985905887500783309266450795393574657689948025808388278439243623180071661465283583203798792898149206681834577517814010207405528005557215387533394144057514676943397215492155152609448140251533543396052182388510904079623602739175404319334416429313283093900367424886180351691400682796066777949943577070352795789020817519570278725307314735602829775802284302320612709983781130646291338595456372867646415157017276846678295617550708526293133387120882643931991483767726591050841647618738719303868188176687399318655286607016345540327256482760111657232341836545745954853727005057352868199373294164515409024802172015968555312777845103425707144461352719969329265550407725549044409488343845085493053498451222830918401070346874435028943259608663389499822313026214460282597689157728163031897665224282857989695010425228596449247808116198781921030944243614527100123262608412684771268144043677784886642202121839134213163840420594802154065117667299775350696527732592491893413683585407581259672253851067046052033606667631304250253829938163153982880198602510141283362657260387287590737654847768784202593325121112771922259150957092323619272016554497564127369993769892307586685923141342893515992572769686459720639490624106996962238905938573376465678150837313697581410719605774025474555852265795878048141184249140208610228517311074010913674838900682733998184946943247577853100663207466664825454628154738768602087935493248508399467921059115727582284658183404246326712893084699670650880594423830958114794981425737731281982900305360041567248405679622207832067429795812050099447564648425008728087448664482141024794722774337559975937644296459758517707459450093220792914890429874478213820379503228916447358475699661172156102695818877300108187629506196545893464122542386693219447251655732816130107190215983959125656082319663157939855330058115086164129034392414605808434759778006077601582016329931846297501491767062558843539310295979016964172958800696396547420789847060845982810109804779499222967594760591345131008122758967715748870172267297834730408374371792113430525038198417732551801838914983779048734549548842265302428996482834625960252066396281883002982352209125394112641958595644442080717289601221433952582624134569907009203919554891573588900321123336902439793888092326912319405082823407162465168322159886500229804411074146648947080210159061965334580110675636132095321389039516532720328734168006720152045988858974165576958046171630221699946309067604632185062671550158230999707150893450939565402163031648333545404575256955178457855665339329901612028468175523022442549134684990817514485467437524275568073677685699126168914410564872992193754709144222106494165832993928631637067827140362901583776806024428714365000655447253004797993612421758421667011508724249494881376511374401443441121579369124911687905361906268743643154738218675519330195871373439239153073955437064017061810916571374375945716014354993251602216601275471090708129956046186239690548878862577945800215066010557679135015381518147593056706170318515159529769767757445440705058091281816717984864116596403028223668772179694204563192627783565351643238935960491984486890402986756969109002922455128068993666385283553713650554507988701533656926174347079890212606314502846437748655295049670309373192379854346506575341191840275240840656486268134923694620239853581994700255103964636052826742018169028619741958821525826307266220238746011169840568172136068695652443305269091279875030271156712016218555193223078404513458067545985266705429319270131411955337802678598061499473303502800201281636579142192528168883177306603708076728805940361182395358084763161137378109786681956075983247752959835643635964920390870158788473903300000953431442069817286079958304247415527139653059525131166710638192701101704764066712061552960608428981652170072235714780387977372165756080007124096607297698159313770513160950194734471141303636479218397974155361848651729851850805318789235990098565375138793442016437283394185201387843911347525065842655036161777671443160970370695757186204655763306590916826434365314286394010667458130571952864557220318237572003353459423805944051873448463986706061667669116348856527591463200117245969022561532328584379641742358742381167277525076955166873015312462669270789307021902694021926064936614841131285190131132826367004711784257648785040080541315107698154001783769817746657953199805559517630310176939991072595761884982817594425355197628716770490886781687153026846963849547672606967886065930862665425814899352201167296943901353883863992883958717271562708046318143400803093085931327270075165030889078438448446978982685738460545423704551879104057483017771774093130311730401785422723153037407226076865488977504046475931944890686997106769083380493231218085800557172041287845070848428269799978759919758463236237696383538214120309837880755223370177300506696390550356139724339844533636065085905065539179153597418082417009299127737200599267500396470657119970024645197691644691549170857169336980924003925804513653278362791443386668558441125577872276206164436998510799014268513572035984339269320345018492760116382708912742956571811674891602109617849436688595465162879721207555498413770119831311954994098283246269120902121237537203576516729750221648209210050562124831112872237076683093211055073757713304033624636803186698217910039470032765512182224164637408427463540073422907729114105022140685248661881303134135397046699573458035085877852237988970635417874055593994675361366799298906789161234579589103660795008039903521201089366499234809499022106091764798349554168508813651118468327179365172473972603233342439707041384171712432869983492769666063975612038816644794511420974844362213193035669887950067712206604222223275315860388939788100332885983247296837900296681366649994589524151837626896205477159015163864392131149179175975585797248313334937655766995316399555512286692105651177046010314439445363548092203785539662266519825545684551742134939790664735894810850157191651018587950692844503969689722404426611862947010421746371434189645199660377233665187162192577609033580003714570540896713533691210363580256292324797761221559433802622757088436457430253450518513894855180770447369534075682593737852779021077942738769767344212668728902146085499918632958276436495676590241453208997533405484796372778429346249611658825730349200880047434113577224565819817889466890938022600408129657318258314067267447218187261962764342028682635124437291946458992275593086827631565291247399143925451291832827961070787263229112098556864521593350679456259575223094576136298991851410370109827687059074373913068356646646585703939020098193857467528119694872400823137290051349817616287456675910514910709536271488121724617788964544378081042374148430303516256922441575365387501068254670878463861325266343436957392462551646763187214718178341603074830076480173265583397882262367339403798170802286938935967622175738314627676563965463709106347210351519831554061442038843938030026897294093035536316976261003775630345801563417551688554431219019536821095552199285476133019326796261262236097208662262731135444992232592617104035658402543574809667894450513827701681339497476113103118440673136490842129020017081685029755244525608643142996886146112252132847800397962247109480392521529973421977758272246185740498571641055012327899947147338550985387086381424554876663923778390516255913895376607899086872831855034734611209190846804260638716720757935233428653174353869966459317410318679892128236743338627993686924067997479155469389632290350816899229060341549479481611955808643157304944409791722490812547410539613907314196438993851655521816061931355980740140385681962143429913347813814581741539805523706808924170272581689894448283049814186187853557521362390937226655478506142674917400668401170688659385897295116149698271996749096851619090381844090539599165377552006006786615676668094125295189913564805384566874385514166480273580752334635715638210034971306920302888289334454800655545533491994482795219300620554610019484581660630949782669492214341393779279418378654855449417280448622394184626038973805091577093754068291584880814808631657545046584559676600226945455244165595786245793568570936741392232077834041246967173867708378405858943001543023984124808552242811260253010347473989733627999927891217894234368010845906929263363526376708296539270212170819049070086086649723760781789528126026499658155196815134559460835386505927961423133291483937031263682736683947751571729343078115382669846926695704528879447802191847647392594249923315351973035755733556132222815341490896282940267053729467651844173621789936964764625651560452837463821226662753439564401801282149538349711659107970918332090730323605204017381349811810496272225660060317757712628489461189649284010106172891964287155571385211090666739264709165809478605634368805619343511414918494974641345580497308777864618680310997808322914774939468200148153250336373809745501583480622911861935993983298504491993962028045702134638113874967141833553642638906165928451099107294065106697603846173110054595039417206160817032269736767297342795955358918696490890258122677570233645539178901848131480132713518146523071355485494520910345786573701184568569817001888007854612846771582630939299633600529365302483940805762223955698326625932692470892903677184456253354115287057945667334945104622361284518129175359421805750459790830273612671158903419614732500631863736298650095721920818045834856766240158897670117750168232820295034400310959500248497459424367928255442585685124228695003920481135686549584470690054685582039579981857886543594079907038862180784688024122112416155972135773205052318668253764082834282435155819579859615665233114458672781043119414860029595867617958313762125431211909040015679984872720305890773380758495214423074327684402567273774531266689884205527513205203518624271721300038766493373503489936161272692530502584905544808630728050172105220295456653450226488120340584890180665176796351155874813436254181789537573076850461878804462820410337265216048991688793895374467321757550223934769966291136157565299085596879665029119300920929998160468549615370759839975968020593962774794732523196286090143262165836180395349270550288180576283101517591941674152735524831358192724983906142663687508714657689514933496459892761615571479844780242401914727116465169075061048365185849170753642631594350687099372998996861716326601182972394657691260952045270373514988341576488759995647869101004834007861781789322403656123796789351124679729436071766823038722728899069387617705950871892612913628809300108092339405085140296250315542338718486246958363796027464296479296907855791875407248222638759916343608618218994523765582936579007621263311726003896119098960209139254870273152226645144496129134696033004944729742218019014187532535199116631192947057555554302950091714034841054074786023140863926708737627842789819689565335240633791058729408489673836949937790037344902873777941321301918420133702847991756353743131448655696763719012488015909021007270329689501224826699923921755874726792379562021270580444806144169546639473752924817960548549387917925325020852943270941825997222943226258425825438548484955362166964166114273504309050268244823813275453351533480227132115582139780546144945139589222768382422999314250236543227241586767919718908571697962471187108854426587585674999244487789682506437459151269193978655785825956153867755842860433810144762005441665283907951693988069334123432095329885198460094685984942345696729343394777502403231905722972783912472021824267884955629542773635811539545895215260000410767240915940783683529428050983031926814083464364202649928394617307962470893585352762154579440347730423884815155082241297263757307346164590227338530644394197040688065232581035714687573649434152330032429606390683270600440397819936331424450735817626675139298332331207290498319821881709308583321019190322269101567602490124041419709825622288110103664465925091317888642695541683549464156336455695061493747750449551931479651625265574506319239739503856395838449770214728952210310816684641497220963053377790712276965272583936751949272941938306384468939653381696928073946323403584236255946891179849449608688276285936323152431175230191598318321277181937272208359874144622343028729691349355940470916860852175286728927569650938076226584800358859699915488509969141423305504130253934333543994995273952383478404188709749615112616753617965241877736465317684000559210015635032617622108430154288442830383815201858679411630607685856799709270605255214225603749254775474218559519909868667036627239768986394080498473144480196805837154182957256329250479349911917066287075577381956694766989701091947955045721105589744298239077530661849586236651322138943015732343297421464135124436273554670735600534202297260043744490364152533213828825212093544220428083477648153570146815681720673996774066977488544284777478898853082625143238591831320221878722661970541514528017350431835247680842598609626673673072573168447547001864302318491616719076863203127779391587282081601739433415152698222055892361657684820478519400055323939708436975255799085333828703991979741231000320324757983698584481663165953524148607304558734597387706275385254952603759746290039456313037509553082879852655398970111897769258628501952155046526067174463177823474220171963427149382487747923449191892720012987517264220343327521318619946114937272614841856655284599288186261229350605492238828338463211745587146257036699914078146526637659132202194106985423017498263434843531776203667032631007922069686655034150029197294217861872195828608951671229700219357938753894018072668483595711654925077252964692079026221976793006971038846294250715014787376560386992166230275224115326051929616834950506222092950099751958393489605472406828996858427821438042948729271599134497327562764841115465474085665189504254705732426841418289182422248650214108486535008199115091640294729169436385294083183567732635287578167826676380652732375028721415155994184820131711783910154544361586185903176662496378979211516522890846256498308753706997627708985946617422240027518690929254741238478116123646899588966273832243145197511119374484583648146356755244337776398689718173374137857426892228917921995487848098602162369804816316398430695895912807034617767740098094158901591154245401289106477435803815732816412847511854411626000517572544505294139104663401270777069298678787245262364515760480312731226105964834957837256740094652859874226766380164693928055795587191300087475319216357090925912510853927867207583409359601619684153963627066693739694780820082430280211179332152567228441451943089061009799415730715216218640185483544360163300317789989404609639628022054091270682717913503438840384625614691033544040116838467391270801591426513250975413904101404420226060609303802821067703280498026829845668204292746552672074047603793513319037548370985486979311225190592757104976216084102175717027329248204786186569001897554015065443565348715810969995614671166872317699233850029614162408338030053253005265500160298499224580378438904763792143523040568244927432157076907145838076897190176915038785871327200466501332242586902257915781170808371374190228397543470975233446459822637556369528254024497265790786685466998079197309327801185505904840837255586944910128620016441059079353144891494663698621704445687520754389277493728368481994834118432251530152761088060003721016844363228839606706576826617211762465117281734816545124176603513609616403038832944202382099771170076336854844837691124814038892176402076740418417325790686817597903083487726641819020834486329485893064775363889988071282952971617888024527165694304011168345383405538175632076676161806863609841812787180411011530052707484441931447128280496127687899993541085645681405943250866337330592254749271010639138088037531872794062080155827129412787850920283274841720428362231088490715683648105169103989322182607774313395019113009490146263620621852349341870523231518866391545629468922455037825494507086261461584859307734596468834308691182748732639696103139517601457911345721478470543151668968018934527706270323160114154372890227007864599315869266827108413385374434076940045275013227290353860933715252639538437641925125625996439530959033002257083126533015027292091403756001617264930169166982102476795323925044675336741526186982348486413758427744879892721197870207083897739030198165640184859174231259974855859493304862407133450969362904715405207618322547627673996927265220325259141533070088831838032111783316210796117382965089027375854306031974231093161192625230058861163103830382370339245713033493675853241416853337503876222017238058190233432090377818579157813978734480493037613054909873325386386586583344415402527699501913696588258886816011875884134680912363851713855778620599739877415318304031245154433737693925488416186105876530028299969517174398401449141176548964770100300525779975290710905663520554188544880120403701679503493626130888401467677296080107032943395480267619304757416286744703956267183855702459396615184002430525355456390254206687325022335117380343362653062671443247785035237207912327681073657231930577064694839742198071588879186852746986534826537454445728942843360142750828250061348419134559788727713973662430996627677465487507340592786241067489881166231823873762690030685132835897986744433159749103399892532846298046661608623764423889761584929718262128681538042617382747172937983352039065731496561894250118659602999487629298549653953626936757426302344366569085988768517869574687096765283229328576860084249114583152031348437371175225978594903886167058860074767107061778007104154414878756308171777471770886815659042527853038994037674839099652721351009122047243528369926280896039172903737618410713506613118558240947455622357847311353433916616805578662540403896655407012443495815088545704823112866449934072335053260693790533165920046302600678414721966512931092648406115274435016515998743970017195645735176140492283044913016250904241279814416157674454469775559700532389954972806354983953576188607321084656475170502836833541345066766700000908345349343124946455529300730290153749886489853498633830120293472570208166701745738021833661852223642781850239013942277375596375673886642164688982568210222814671270144631700991483345269901993341108784826873167335084340695022901573707822242822219338594652926977545854770528496246858611292957028463268516392467127911851061663653383181823782345690897718437986651536720441044511782086706654344810425042326294508890686956054656027737313178094365690958526027000275070969629778872898966942179821489750133650364604372477739028959270249402554037151480753648392344472266964052789978536076556836762902847006758444979204953496329503720936370253138947689412899611357237276985727198416761710305789974316063530664400971704866952303987322274684204236717148099868475693746029971038514421299765154133664761547309421861943863269096246460998046986263729643857025307945225654822815318161585660872974956012105911195743916982608560427019353301572876916288095219494782345627614305301687656896344151215342996309776383889491489819108978075573022723121877961274956374755456895861995253422950473067417873072079626281307985772733063106254815034451273110046681051929147679510278414113032806651419041464059623433751447988748104734343518836566668867674192166495544728293283673874791485424505365189746038093545014427265697107258183798494457894607402602105793261239854393649653137717785007897384861708773807635811096091922157320016050351437411472518613014956762024267813071875937216444852936634814770161027670236315628673486682584042239246251299883926992066334648632614122596350208903786280492147664160195512328226407385061379381855451872731353503783301946154904009048815154235981821551844061927717741031331374712082236785080068762490266727422811688244408648636573642830581027925581206648518791132067268610415248261546684372784656138230355154884062010178729170485604612276237280680620339628122654848385293524578434724185463332812516348635469083556291621080137078912249412137300912360661589126043092277561565057781515894752580027551833493351395986857643061448622548345883483960056936564541877099746721380496079349656819921101391812224764911323687380630352214752541495871642958640279338873899124860442854156035563160280286151525961805051168693229547444261892580135429602363230649763143959514063123682448117896729802364326610977295877629502395549727567878047242645840234752530652307915964162168212674671145088399157069700938049912517359485819772841430195735461085051251627498852866562840318487061485483234591097230047887614196146745185566800542069191893007388767056102813015877503575662045057886217150296436298259778198621242882462175659001903327268458820335005548928054132133842121171370028846961500696916101391336105491524984165436074078602864030004002776206630654960418949439863131024596487387798241781892889716032879517317244751314043276370531340992586276440179822924754715656073730305829066651618884568411573603046469626952546559983426771684350320345292551463805456805708587046577101781271587346110964012372573057068786713297545508333794402473542473072843278772514302625276217653785283162445778936279202939777961696152257000272105095136921061535283418974905295023504254105826872699188879410045724967451485265850826885473458643259382965247566280414065254883496712658793953863653408068539205732268227173248733534951054333916499150266901474348333274728504611033200146339028437013291909838276020542462594722988004600529761497045758039454319553671405895475151413237401168214443313217754918737989875686354332205901872226223314992273775799997420572217437585118129824872200635622775194347423051509979724502857907883217156944874469272443275084330719770392371391493862257783743034239629368014621784407098026984658560568750828232409149165257155639932999685866777430629861755911779774339179700389844841201316983585927743175800562353520218351302477079880211117174539554783724348509840113426923010506387427667359446329346372753020332897990710218243598966132131962694950257543377590392498275726452414605383915678306810984058510575582033738536879162861874881434511445235921211281699157143974549092404758672413058583180629757451273229037596250024667875301290884000114789847563187650216047662296750708632410085694929658231153791332045447430813308467112816372378388974618856858102812307893219025834074531394316122461212803371577542037851919291651701722626355336544698639339231254071990864155607236808437631937960890480329455834976979695074037803316085314857311463414844420238394668192371611868422290535433790226817518231229780682178685072244725535091998392776177901422717910948010549205874740701744031046530566810816906044887953800579188730704776798520586764615241700605816674190494599572938311646891327769008198845759939076989612348596779735900802114006920727741459380793823061349633095570559511526134047405526048179200343098257743422413111944742137073104299664478534064758196791470269896152452840625791192874907754843405561944640230979413174957499965557276711627736443100563927577626522525471002072231276397015428660482140864106586812288435903954771354817949147264930002927991074201540299388156407293052443510667712880457739335368402687634139755835283278055451366878563519432361639578905625062742249643221530730678738151808254590082175359700762251657985017972748620778427305349644362735371598170240340520700903665752061998112775296093888495985588972837556829332354487643480114368816923097440292505624012856321758773285924787209167276335097753244391447002288320716066295611797203184535562036000718349551880630745986778233523910834105950529102741558393580873833883972180802562743947319348338020637713127385261842653751806046275593832714084959711708268910009815223579548354959323245431132944696756464708985457790124661645675353626000689623393508914452497642696571913289794005624524141481028549020063020368816601650308814095143519507583206101687494378293810291011952636369938812355199680271761063387944935388258732992677284947140180595207959064217807314825663450458674729577624353170199525489923194258780526975787025049315835494752136112716151756297624323422744215180436364207977880758461558062786262666984632073928736424398071755392026402171098537169113082019510384532449503930397756905492094600380682791253103991488543508346819317811137887643766951674691227314906681690598707734673279514636478010059375271839230016162473124689158690398786638295117154538034993752615050904111505706323818004386620905802126958291036812456093490145989979841944898270234646359775262137595728481066957155364079533327043796219542727843550916775468909359406177109302816423372318094110090501212077006727054000851645640373571030154332811710405258633810629829379898279773130766576956575127126366746907294098995726419852637429187052865129227637993750777905121589592736755760568659990346603313257499159806451511203426255273122629691335089176567333325462185401539196707690461574277487052056551146729632555457726005903166940605248179720813014904635034961875411300622644585335661251564075058039413174146001334814588492028404096674661450121961393525104669424962399486988395142513372433784019178701556431993088027581923646993872579198289953510986559751858827587864525997785097111850041104681694120662778305512709092618674184874132609796643163649382195493778948936055877415973572137158017894814440100794800431089175821568947652991844145326361523666166743150317386859890753561688998720734179707012184733721381913889938945901619460237825430193142174515384528336502479928896499889325224364730145161214611574172531361760273855707552399406039396432094583800838603632830761198861659945197849481746342025249994417818300848988919940183858774873551919295596889929120830094414999368181714052566603265708699812979700891138524162504694545266701792455260000338909862105047031419880756910085289964718917931159486731350647070134603149965921593412975260362585380746069340018261279729712310415246165714798771686192809055601800139701891024929856145978627737458677362896375383361075696522211524199310999932166302918783016334028906602214324923192999008787225931072991887816563842696170765263219255802953743101789661727144188442877983469001408458386175298119731570588835676773264166707332570061399719750880086738876850736569616782671075894337301672513000050852529246569731499332615011412706532872435342140053285888348807417808688334077560968330596106762951378068551822110590626450493412346934478926406320423723305293313526619808441092382357107308806517984127188069565378797366652109552088602739805026122592004606389640090494985083771276297280571046779039034348685506683403406287487806095352897409130987511205907332623180301565290241712595339844234580046550914239485204247692559327284307924801023895381357607752047228786997358312140124606371577161230390125872669560041135232031961768579871358105737678212952491154510265352917689822523586302040162509250914853794491264031571310596554533508655381028124857953937428923365093524843100064276462284266052219139605167162727312978198176180797969658389589450994165368455505670029606210285796888878430682368958516503749144082424563784588133529872834423165751542852445845994552312985727790110899952407141949952468326103083453371902860594795780843226406244349314283122472758032768554842632114440278144136029184903649149727750522812476959707054396542893089412152811480080491275160742631787118093569503752030533356799799007721286377492607007562564678274713023055098402197614101941509257040459984601360385583657724119567781860631324711961241308918024075721169787675585524074913306615973032914513551210748962115308491794084438492640806326357907046080436716004904893250106446045011542583161446832431483450589791673205709015165116489203979122748303375599338238791543052058099667167352093294657921147288923236251712876741514316368366860415240006081020185463425888685487843327875641529655399593432404860378669488287459995398454468106489878651363775392294443766065493729893282549300677007308021629940264240327595368829814277071793862104763731616601374215162115095645667373062730856044536128916027871681753271486941166280514484341464124085298804338138989039299834595488921326973869440569912120560769792852479059490856497724271302037311286764798743699373534878825782210829313091146312112654579078734449211428530645530432177021670398734223590661991503683131291911294567690061260086109105555032415399295910716287598933860140275811131666109961765000483242741404699709007351103430104179874161863854331786780659585174466795096188218417608470135273970132776458063489211651925531752278718430153764034373487562174340865992954337242845007713561619069122686692598997254113696243575068519184570054347846622855153971586752189931618414719027552531694836697573865356165506112698207546453394721298824116580849195141557436716224707201951334086822512440994426200064507568142522272665793906086183819614196856707292619938592893188233294175394540805804269479084238677227718542806665084894442972632751507196197028585045909127474952161418621004792712021112476096076680378509681346868051123191358165925867794725218452160805229615979909453841466672901738763438047318887471706718436650387152844013663303106953476152147457086466512105433840554466171338430262415534221545673345743910062646708668441462956298033128902028498779956293871634157796313043759220614938049117877114324840660278538154459515112349096664616056566746883364231132225575116827376049227439379485980197173835221024539974924921133083054802187378520480927866069838083640384401710728816348846682822349657635985308863600620501641994641472947035974379075999008256253504280420995233676631088323000774287291394977058732882162898157238665112229964188085814053329394853853356866902749390256511634695509070654213569407930593219272596158079284626354585255007812216974222370477004552506251573736764560665307938718928651848955674305485877512938509191541396916267805899412306213137314255459720379196803355483150121619622983582616826382804814085065817429754804729208605086223459394214653587501666883891428185247562873858952811590851512000347907022318988683828652695277154967128553058455481872463562224811402872942456768139948315148307517695037949726753841928296153545770594952163004390295029686805376420981178858262333096108261273812987630250867691368515667315973449020505270924221785856332263918025847450268485344682187621695812030624053292162707879277164994761110501031120927739092183377420943424867411616649710745236193797794521774516206433274972139276226815150952640085539567172469487135115909534475505290868839032933942036643711607878630402695169560608203695587661450643294810568375275362028519271618067654271737972655840618476031505220626446560155427694477635979721728288875594115877800211352452254402019043100079144574516223060927073815207546403463004952138075368998811754341096583097510110190280301084163126092141008273014507564660401403407050234973437259393033936111401058570612896250780630386221681597885643710498351904679097197740480912177810109312916855135913251265664495678469535587302470883816991918800114511679174184261918632305031054567287096372144434722699959474459571866670246636259313394075089228704237691707361019866036029282751620672193085363214311356077433137855345079190835890596954210706151122368217662353437930782100561051988042845389329976862348603966692634608343792416797546377303982014569138315003972003922278610367220722672351222892673353517903824057341876704860389756330904026945267307540361302904847647052261376189862346221442502124621848910885237910916170636128942189347284011047846427107520312679717672797834569559010794579246511231131813621579918750521761193057556994519562308819488343085734259408002846992547303190760666391653080532365512620760252728904660617894730718045896134031587677472549050844444115543236176473650112402907339009231252197474045851174229782149842851332495510086082128001894010648038516148804791232950199497276176325440309139034376173052996188631300965744575346316206779282579787403222154308217980965898850948611383727202113258452018921701136015115748121724137095664274975315718577238923659097945758447401351574263495040582356924573054811059231110976678111079316639040839814266811739290299322261352783882618611312588367853643955229844111160710248623467302080265727725967709471348315824839402271965449890950555268711564586829041354143947367003714290255542128390078328525469850892903838844983108883272362921654199721305786133015408444737423270280658703130841011974850262959214526458776073719696412490558011667848208673639874625524810768055847079642200393102781368847362385150177917428181298359637773848733270302313430664693187901861526558053866160080609818422551997200023376643830819504824432692993781483656210563986187757878754701797829039540780337230289453662259344955222910231133401159273175962547280190305534075138869095864800214054371802875076508688842543993607941594163482036514056222137612716617631928275624139800865327313656505287414927123924959467974856598471116373110979524078851545297752139951004510788506525596661682242251821268079930954478919535985054651415052149428769983790022427295391376349243194629628371903971250206053288973176312567181024575497068856901982389025739530889336642638580710175726845149649661421338080291028367125717691567605684249816597826031440662539835572478713344282675025211360392528568256604554051015041174077280877847802423829068804659378931505162009303608141939995346662824923296373832609271596774492634251142512134308918980038846430203119655826781151735095980053833913944772599893452864556723439479470155548379603318465361964901713683852571192964600200861034484189396512171502103565727991934911056541611570686789067097435824365883353016533076645568022437177587095009340632948834593936012233795475540682437037181389387377059135252252591442006533085797996703754913501190968591245638091302921467291850250455117345472698293312204299818494293160325718689641662387392375618653524981505166546359331250581282629134303347169358199777267718512890148851492248269624598370213173597971113773283586241288330223374058624743120992725780776350881518741838978716715510357804034697041366212648773013812633205840388363232702486626072038459619931800432249547912685522235338729856465982188931264242655317967871090930891105686019274737150826956254969832785565046584750895648364049209707160612183580117833559858353424657802516644853752151523962798338664081213986207210767060336380885737184602564954071309836551859458758266236485153494019872657958060179509241954119522595903515324570588768324160534279010639240930275413412652513793825321178147240885428174021047062716664200334129752882061320303492088281250247821782839691816408618772238313835767404227594630616718961189117106541304142304285497789887964909192140083349312211356412118708258141914480295759615332362822293604281958849168875925078936116422665701670194101952892102954020683886765793873479550709100974651633539122067194205714788643710217275803927682731926843306194011205695220321829438632272587871332735350271016425051964524656801456928585052525432407139663153359314920448109806193502702695228289298178639559691923430959543962213228038215202629521370855870247005132774536492792830163709404867789213402117993196099721834101053128492536343722354197461050368446413102951324490593374693275431263078146287774574919630078249082415843931500746757212181456868597119499065969040434610803590162225772261498252331263619455492047631154484862894707569058642040916465139488567328567620464165607317695874343994914152737884845599472807631947307742236693130860425167588917775660276188629707074541917914756859110096143353342252907726742921482616489198493155230974594954781028581219327838411078856834745456383357416207944119951703801050765073042033586287892977726762541146342927515968764370169307214657353514252805222983294781025767895760073920401680574706310566482909677813829778173949100527148260362127583216867791461000129017917805734907271341278345127014161958576793963716712674654611698535607240814125202287849556141784326827753922829429607105123166500730595032597347458931135287359813785121404519662268308935687217974153669172630435096672122613103442610790625354525723729417932016848977955531915051446946617660850462768090132463405988422564633523654503598506004174869435330752215624192281761660751088142817504879069910465406807170375980993812547289333778586772665003959225785826266466676398452354430179740181269023555028332723459810114752911411955253526676836309227143036411755328966071842392675018965876607700310538836351510688999460441974590791743885796644818715805366869003769505756688963630042407054360865807682293830625007199379497694454582804182466456221199519404441287168316335312464264906256780657664900254395151966947924622202568057922183172706718024291093440293732098523690403894170781848514122473296301352838044785125394816633610074315846456210925190590672198057445095890388702086099531210483895376965052233719935461606073397836506918644216453996717982330016719424063423516557157762955733661042496008618764725724875327125457691972134451788388471515643992076400041035854776685758471281666920692728756849255355700189959766429248609823321769648465719428146783903393322944415166150913749738234430450298939893870987739985212740205071639801374714185063169371899532477697172636912490210572324090638463988188820496943367252146412559025719603822679070926345088876459332049770371519355082279951458629114218065075464970691236055433615508183848317800326917052465338257068629260654258201843391317850117056435937972748985203807379937893832161225093211176844817089571129135147380910606905899729488393298658686805144613843155826470784319328094323311563978862226856420874194098633524300236695103678005672747131245686185580533429782157975360583167017947682986459890985859863935484391544361779881548562249569592002942488859890412042487689808639337451010919211470330729756110025140598113024362856426912160719280345493507120067032544527397862211892914914177010989036577751556899300969209345773499985544434273471059928230770547856390074366978446221731716483198788377854526960593529465993609149128129264016829018065447544020349074461793515402985719454022931968583804168697144191435095550571832573213871598139105676319600836941820039469004364174179792335271863265473257965127513438718878052990997549012476714773023532203457165167510533933984457349494470048023231317190349941567349535446038124968553059394198790195515248903839333704828458176008389076941420290821831038133904461458563489244984061825284523498661539823597637490082074249927386306612009394640153637438223967723375875169133440604325357370946794314485739728581125178421227958153284945740978940572223790649382627115839583015947560893544197284860777293114255291444120389775066834204581129913549050974459421095465233260387306591804417420052668524874750718191611556924092778289885199685565479228889724922861497081651850758800506739376435293081236461310471889700064652044174504693685701345092150352196054708594677321725723163051587997106155817108957487079189134053813551264317548186317415571365247026685056450192655686489139794651371389422818818832329096766626133652319034431233080019768287767741335244149668425751079714082612836864828290341803607831165882364425830280400583040846271554400394487348555948464941629689357382920213161227495935319611821539102993106547296658648235791208622425853343846722347964813871603173495792648733327437915369731193265319288218745770991230838823026497906168073793078152844905677410770057534201965260594039445512057521191244141087236785158411271489182094625760414142810753082640368968570348122549402561973023068337705528865585870360626579751219155531365109353304516236900101056914094051280881129381599436864725232344452943556369371593040855066560743982969455086428799378251496096971832801294389011452942627482488549249296428629442447847305717268205001455240124868083992546653636927386352311946043838473626200259395390634165402960798526293310283906567621385731204133559102419543547829709606616123959060018610382807036858624227622904350177367955630233109072328633590686850544870440595499538542972906015148070387547262919732902350991383437867774091488482239425188852247001982596732049243711034641388857929995358619359346929766830412039730276406853330706273754307160992010785822743529269962254354716950766309163525957422155182981955286002299900608346381471683437607304281455563807585991161910790591797488826778803198208938018583721503328608572744133770981634142885112576647768602286058995007267265998532741489384294351527193198427482882884888458546223609556239895821964054051545297534325586466227224197430977361201753781268724199769033583024033219727158141262220756227718626642778534399735768041110459047525210897908930407990040730495581004916815570291120429818356014641031648479329101274673663453845132925654827996484844500147302213561683626666495879327725238046797012060838300799676303091204501061380343720901119205008067406231706561110752275122912943143618683140924177092313956937614011946046954383849606956606586559282493067686136924515578519343434056137607063704000451949447189430848976078724468132458280461428361960663257055820530200247751419664299607864051821317400901347798529195481058396055910645076560596421734657607500247801741760467301239981946923804186127422112837747622788722886216206552624824842030803099518052427216293405619396715829317026305822730477053374295224032664217028776448934975545676342788739657736138870599006827802897650183999331397107717751752259875284829489799562557856221024494443970777987772053264251375999724175103996637002995744411068019277688515457548752611365389815161035376405051806014187184551841732580764406498437183122413162927674862970739823006710340116917906374979283554718237464017413906451227778742671050572136544831331864285134525381300592891390964648662673807571529886960358118702151389112048507822884461214921540193460566020022146789918117962771214240192375235970213623732185181673254787393538271444893129318147438032497230198256302104541621949675677600609829734959972450686808240291281538730019986395670424618101463566973044217204217082137044168837523359671815585627370781593788635043035568514793132984601999353265906244494274767839304352651071232940459907151164392285448628881028797862729190387343297766721261133348206702306932820673345353449553040095529862808279573333187635790429633375416357657504382956697473548460450721889053306850958464907607097331531020651170194862511235201874369732290932388823703259926759408391779229891435641297196438282923610141246600960403362077152810021258686518448850760582719754374913032592348009106816535068926884365954772878465556094545974211481880123300359769172695307180144984205016105471424385780723604298031287426494384790469361020781665170462163683457045506554542417092548010387907854350250117324850683009449623989328443508551027601743034463260230731589382995423421738470986658800297668805802157686484647584466331263257214510953979734330710944326344264122893509655841955370583801769616646871909553547370425546067658391450183830416360571263068013316725650061294793695238769421359727282128483493852426294747994984056298780457284155263770634787746281708319116024629945030958661725139284351583299277889177654237050603026127684100480249579537507474395084133715260928921448136215291485737985071860815405490232341255611930677779934288981518139284460478410648280857412971495887028038605598104826257186398220654128770957116786966602187897955346743309472675580276337665490683601486178715851755634526464761090580662556070313644277123470099110889673804419705564637992807118284741822731862955653103784447434603144108917756421538741216780229959305759940221210516297915489102968953872664241601199329097332606904675302349394996951506305270985679518179237186195031933345922488188575265645680901453549571450169017376854555284033097821896437003327637287156272725852030186431926107835334528386599489782897578044959951928062717692539343668773181883550096889247609130196685802165648338469450859817371747973247618363866364016047819769504955352948850739636463735055812919392894920090586167202884122368643111709050235333208951168492213801756588558242528149706722961789864373807273711843014274523468628334467221471495194893237354910119528027126184370876186096895295955856304791645081265626284670208673288100305481544585971218199155243652528558257645493543290092028850582502666840659094346653987511450295172067553588979038055374674016142731429838787889573218663945777698798564578677473151668807119908357417489359600002121422243432260053387856574071890325841776902104977247440021672429363147053828319969709208846201043466318835041793684208271815697371998087196818338273832663979284378243871595255561460913043913745081822213345607494978236255002245448339913931184751494498184923517213237915610919705868023986123656882630828681807599908576462001437258589412943933535402849574986694960088006532268742301852976410512681299567887826983920528884901591698324779846977035687350939640670080631807836811066789804548385533300121983508827369676976898134387038960560458677196755656181364066043516380174824695891206816451004181958468289783781877743388952909113196540856311658434444670739160515908183636102551100372042493372543100427034214310397261147154841245266790568801218884632682822690533209913910068049751578981792074032663248732633395477819417815583863584975165100732120386463407790713743833106853133169405401900352341457253315095107427732725407487494284390342944629614150518882688866321208518513726133173392358685218925680208499890668957860499325419494759970761201186063241709923026419986048891384767319344574232030823565062384706774532533835313356609012914551100984911241354211403628055612474001767905481190629053419995962899795624625403030093175967551700241099753153878941051607474782954611527133746146837761118593028613366085485470923368285093395656892075560128115175485934410246960472003186369381375072039097039412264310791118613971363515356441611749095832105478426786744392860599598758308903302920824121965792867350090814322182360557329178216678870313221373880284625607591986013423321763527289018338644671284819836131558129260687494874041503225906684153194965696046162379497641363140633730655097256621793408579869117020510526836988549618401741220864306386310167949841914975125523103425240513793990129009770733512358592312999194620615203039863361415847982096357433352355315543143049831158188260586622106267153835980948894335478956729263494418116576805968557028134041193596157499388095102904122611255298862897222021368262139743835974185414344599045575292978849570036700140493515727011582940789665806580986604535434749426702434006422215431657974236626675779269922253735270188932822854439616257385807493593894155609623120938965114075042902717253188208445388557621034539794035058578483400336402002192387442574399495189281276519376017763537492728912572880203092618880122844629576677347278257811847092125802336210647968572209867450075937693460412855636068371344821002607030676694794189607129721229971718032998443996001608382931817681201893581301564869632982883192654169256006104920177180620113287427553048975424807797816879709452799790252987884401156567709232535356521272710774173536462630070582657762790261865094259222228253842464282158448467836459877745794326280459410481557852859950963825062126040112649822627735961521783794598731879960804054571120301181437876156413569011233306296667876951266957289909234136467551835768221432341182253023312827901634183074400864060288435995510058606553950272258137922945934922517383215311178629870786842859484806416971210432990670779946357744889363290506763282700349083359567855545138165997515734520986070917402315543474419091837961674820041014234015485935380663812907585038263426852327640697340621552100689532452746085964218552856314996664226062294507489696275177060059511976421624200468076429451495731791555637396035399086037127398532275794658142541734823721575267394404385914443339105176181456724990666536683549586542817238649817753949660841821732309950921611193938415552094693935519417481800584635697318313272039953559201047258397710404092872593884379118972423188411524677262585422191180426556383740176758510722765742521490921439594573187079865990759328556377773429290193247770081177094531102516938093606432054384008875020113088404291789871735266458016403327656616168154625466779678958472523615513246057859953562224096054614299988692425815965723268725065721214628874212483890524845529116475463283284355515451373677788936992302592994637918426838674085880521469000709015540373814828801510201749365009868090100063340735762218601135236806666653861095056919987958134945765071537159104587291463334941553891352805013152079231036976388166347538563889337727900506786646522116079448495952544126168129266200147027144551996210841844732498589110805892683502561640570815733017737854042911570094421219891825100887189168922210666546598243043506058228196740287789663940170684244016260196981006977922245835475599253400978050751116439371798560920060807172603976532796203816863401472665190681349918521788611538500907874981794143683963375925228879003922390419321927559799294206841032262027904546873874215007370038540622158327956772275847521712620896426431384605127826396425379626836828264590568127801912361269071455851872703030751099385545776171701215214400520812698765195917373348162004567740112729587686178656647197397533837962438417310078739940805877364989528027968618486341300848480435760310831491713445336807284873112578914740529309837152278131377179141273476496385492973099522409748942091241106630002270120577457921622591055373369809075253728822202116750309449243492861208021022508243587188974888885509033217853879969574269008641044791660615229382522700981706696992510146095394353235401340375851815293760216315515075624177227784507719717812489615192192717593024283372507663174075245795155263482250107711909235899411863935423363906241586579394845352799431359777567275068594852017145920131139486491994035553617857979952905977367824272621595820928382706443424534376864062557273665312610488604593512151084611147326745149679849688712388004443667081677543714547939747850610877921511966923504020454967132973580065937835786372803938271072183790599927359774224950122304926383767806487393364110089946936314040944584929530886931354433381319231122607494183932094915769920525377978452488404320225418028798154853431283400103886064916823677095780023317628314064347218585552999920066981748709070807182132511089617485938445315796726271601355772047664758308171960610690796168815186259238047891096636437941537861178198734214841845584959933985388084304793671696323407296652866409293096215274516880220947364156478911118568418623824787601503268017696829603165618184205551399673897375788040199253493754565729548259924024035216402989390196564715063350159019180739949751332051501744231186290308888461760499904148238221620104913472266597469487457183508555357655734538728836908429213210769710498838034069299178640282355920111334701496611381690352764861475983419109336964562889091779044764808480780313929338239780331604187532934990087807521784094353405224104110065259768869379752528113213762590792646777835277247562320296369445342583892473760763035278914803705569394177584560242845008100711129162297875912575748903216211683404902297449764812526615884536332717765965409162257320114464623493020399669217580363079301015502319932756276161298788169993916888738209927722154295458644218137091488705896254243954116468934712842374137259887527874177537440397027158785256868365390616851217786534065827587935560634422486316632260141225988346346812584015921415179573208611200066243254229773055776979076432389256217383436001755718872203401696673928656392657765820733615855802943069367334202286742117268604539747065897960868184686404395853549241937087984243309287611843263613290746499430344332994737445737822692092386980154534208230028570596851194123659648510977522071631189375747585479405639592647491106739479162841983448772121454349581555226242845218066753378166736157659814014467169955069420930498339445223561441871805658243938778300961827369406928581162715748373649228863161210358136438462353851055920084754350839534333483972667480393780454231746949141886027229606450544830777644659877379933677672052165350496396473561904806425577719993736728797669572392469365562758904645734010480537659642892357250553411899818249779249246246246481400596970510207534798162593646663994608864413406068359518162017057355287859629881626279088502690207140336833462856803778762912421034424693336519530040486678968518995396528453224119167491778151128727430313058412718999258499368911091627055473302924509327384552241684879181709577848186934963097276543690819795358571479954697627395129285989563243026822889506583134252712514506407555471107911350769664099667766755445366109620963526192666153662875919381637339714037460371576959309960998531131132082590243861902471724331441661045508294491532930029725049039623575351266412468942599072603958859479125590885580485795279338271107543989784428137390418037498680717682571543044145208819521326756833559789987762635286090849608065566164427889555962736931748829073692600127197175027445137926426941523648336500233545529776484250215553538580550648362884355974753464651779450744629722052479981313777260528847930268903584098209724028349537043337766074695916112578510397033315001199379014864958090394618411297659170170622852765171323687964025980499880046290237604861375241507886535008628670903946964059324995785311366647943618189217680173337006334994375552802482876414205807424388961785650056483673911325079797753999025231530886292921649649648697052236743211482236429417081896855909143913750149820330820206764643527562298966692225925733348526814646612550851799103712518205527795205685500996947964274396720673904142959564491659263282216836349114330545846017558238367409446042408955424771709747265425215121011383018267405550115681321996473964208866734693612337892581219657621181933360684645439764135785133271349705711681653248179953008458078951122449246282491784150857419494553162944255926689948788986272894438295375807605502016906345078380541545573643076701090832365734734517828308434443491738989992589736337334169840435889294745392296611942351568355355659391625279084352145613516811765169440522205378375443027185780189242064383423985611063586408350380298935275735671536357047194700276478049714369620464655508723566733112663695925234677594250059202605075993805168473802107777108552943286100335060015467597644656400817162654831642025156273202117640781060844887119088880546089066186981805208342119658714656350115363369524717356958130437892021418897167976163050879692918872288364979933446884114557641274558998637062450659496521802637310624845136971762902328280794215109804919818974698394172987341701854924427775849571215072276664938685459632904871613426891142631953714846344460266454369189611406230146070367371034075626076001722160524203830548444566577181290905051758964513593470430528363243683110889098601249471476852708830694197419502814162196494579435363748838365581497179392441657473847854986591325406432667836646199961543991898043968505971703832540520885193407774605516844622382130900565065487338223194723685990265630781377575595537229495065992117047213236486508221016518571533425513882122664265353933669850577477779907433457025344197683023574449219346647507856746330056225572748810930198520848326652233352274113813614092387024786305109475760512916514340382422001028068153906543693369494880805360961934008953137906615996611990229813795094968258289425450221850637302965067122576019792268725733926297816315241565831100740194736605511640198920696425068641299687794028513988414365185566218642859115692995999875915749757385386019065335424379935325263141620941284953709235185362523147814243341338347054929527559256721427244782152855512270868728487504943494516204434609986293324184856603477808597473738770963334306526814919276870372904016213303455668571608039817314375761886407875533208397249762613985894124400779880446680617084508339899705591638750079632753380359161147149434301649502376023596676190110266147277810061425925526237531367959319670457302696766989966123672969478009908277485006854523284995674732208793974969657322254731240039491696574348443552929430174337389063608594214038386530021116205519154113339836594587308043322817743514472921797834755923716678134784980232027002297351297200316990159877182979428009804816723163811709447682979928867820602410856424990484561534758760039888438126874568906276700744497532376408658193231294482590224181935557337966477882048479557933628263913153900960508482969120610947453709528607966434108547392081071622413448543346164797426980842062580277414381961319201580663432314169458304003435318687823351449068999197989373509922176755324184543105296705143398749904294041982228481142830983443951819413882443179636252172580390933845836837758976918684092670653247567617295101252464634052360665015503611280218220262915601040222303002139185678906698468072224617347046444047092936350925501412318191914960643605858495863977832842838562904557394492712642827933779344768776652505657270619449534771691662062989276108029917846140279810353325372474707848273242880763790529262423170526187444400301228748177152719000618258578858800088785228642129740336082218905762936979782106589333750142504962099456958835865821891674257288888386931687898116892589833887080274851040326830615236937585581289878388606606396245810662225846675207830578664786862761362623486603512379873616888639526925478052598891168842345021863109741951869986528107070776959921257814982159723517774526163539937755883283740053864129372553504170269206235815450533017673878463292935278538393283820913831952838172871909413666839479939977450378630904192128038035016813931632911763858477914993659531438383612041281148101975618250702841610926531906303847615462061827145625319698579183865958001481285174061223439762994481931751843581642248684341466711928732868455775305049969684318036108874481047344476916785448700217349710395205821391802365789083681734184170686029870238378398552756849592671685855346795414061166590019553916584711624493335901629422168233236567755399076393031098799495253635686918362997797642846806763099364732174676038157344628810394541000664894991705050333702037421279662156498881799171716959618631921085332197131248764792013323308006828555850334700564326342504659781464489056538391997989348212329596336933978498741864161373616229827231545066699768545430450817320463975585530206974349843141810744794854504539320111674334417816954985634419538762927495104719839613184921820137470641663669277613798818026770280255614041891419676768134715333177910476663037409271785582020455846214139350030480295143372986306574590247755433494520010681519672277476200671664986694712324983500704439421238345585955244233755053900861504718886623621044640547980669539707926176201533597999742477281978649325973233617275215286595452788886485513049562987193824508032956146562085021109039949371918621849667532714723132759551262051323348872079278182056291666913060123748261074096323882479497154403552585884913948209928948591261121140576280155056126063452706553507002919078560466589483921365418072289226267871645416330369532300719111182024990664333615592298572663185114426880626370515075461325486719062333092132846742098099429893061494956137044470389756031144563705464031482011792130733910850869986853934514664971753854228405952646636083233781625018382624718501217242739827203065700536567916351643379554356606780677822141493470977358129840051852174270280744297727315947206803924295133845392116910392056192235993810532908515525485697279514396471146023441746504211201229866376871475687577863875618347791151325937532904907791817716132797631651279530815893099826407870103982593586452110290721091046569904227023123143551374106947347114999287897593340739868855146744849668962324398576938189053422728272774096725587135378010446923643612336071923535990678888842814053625596425802776946273310897394776093038386168517202113065851536375350867764436382747157384244927882827390514226555455686489037016088393423541523797604963647979402816535238709348118312675705199519697206450027338528402645253295423425261466892532054524975468284123597568651078725965150786750457272721253620209723426616923074512222835301486883526068001623422798249181284004027625888760849991429428978629810137602222001084503317175338566337879726323862700923367968128572272699557713161318152247159668714886375405814235038719648070161637929992982597459335252944711834692071910198006329904642801168519164222825163820883509376637981116444551923099085851796857726140795034317461992192802548062930571188889364569869840644752849125290929814314334395490145628823553355384162370469286498896603460437887104412022544426657170545708760616381525388759136624313479575965486532689142286801510417101675733816184281183984053385907265860613629649098199961423184264136129677166535009360057389315568263991267377337885295572548587255110111604194626998617654254991983892647170946457688240824067130399636991021369770024282936781819943519187785106573260647411083786782687801974292032057334512593298525199668387659691463475562039708736600453524832714125825421901639621198726137788269328018819577701709897591108495783086895615915889453188785464277894910644613773180372847098105829494756103996717260712666047166870490018757580511606985679662938559549083014805487298559186884989091456347239544669506526572054499023099887988592387270774810288124269362348509258543318816546430248153085501184409282945073544118879726333798833302797245519221178909922254714004274475596203743491590748213266684686195796652021039293443034570307914460436082112909576777452161119782581328620504392989985009575485515154537036308928459470454891740053578271705308025024827498830393855740262519629790505663493308592518594369740574581927131397355648989455923217512968246311479482911184970611738798931555368097974701925910366506494477198316736318154808852446296882776157675971979357504555351470435033425412521159505717506216618508038310194409464800310621653730721507302388844750465309251770797453860510981273415076199381188091802976815496802977050157125252367384621127656828277387572763327607325370215079189338659220123171570173860274449389932746476502359820264238125058017287718297041965776147325950996460662195531335237830128772394698497860604393564070334722717495834729918077885268408501580092320373524548554869688497644310806022394633923980882709406166241222233817323409838561433608664984026527626039667137626765397940566912455408662729589936363769725986767953394510824865965069929201210956367688673740802235815048570401607474064932938028291673510440005659705035717576728639186153078295146394222672295601228232453675935882067104171396451231918124812734621395005073808629711111606760456768104806275869636149368476792155387098030214145197373616808262697450110340409972351094814696331774134472015039459879827311883542261614625453688846477879801730810162177645410858453162725517663503274137683458866102881296477632368705468740416117202548054001348071405531116460836064160388419122169337638175322839236776006223813861567384997474012705666181815691267157216735962258672041470727718421983725279443205984035619676441838541544972357507129988639248910123759231724246217099759053864336055937295261496088137537889505277223409259619319010150571053299769214398669696926615468535697834398281008404055537587842531495808000369175743028063378021689858408871962989939625382617966268340211080559594314614878903563034775320554564477055333279461849639664772015517011268858105738089446867038739314060508594773567669806950150203651460030528911427082366260195287374519461546204246713380613977415141875122976066110989233862831252811771947543190967974703079308961784435062521858589030279498927787480944226355212015284115554851653373269223674315451312291892520702803297003532269828536173562561773011290794473036519398186912519824147602442386775926260692035362643502970542752364344812608391965908873217564016005054907358658051906601390873786358247611505671592344520432798352865234604454043304090165199429722555870357257428344759298638999722688538888686190239120623347392997090499788383235516293118581177182320426605463186889250984584453584405708687383237940110107136904849480126860705514699613648559038283995296109907272898408867629505232003240209567588076279911111983136274242891204926892990090266836127515102034507383386193467334932625826687619599704238698130806299942415965192392958338899611043424830139318751160155205083553782872529899641493844729567091358787473942401498917009339428782720113456849811244788415907262385509063640047020734541898469509632718134434929063584437250887735242869269800711827638701042898156644764067337615644788914267421041269587580562562921553391314291190834824840541700416140693938767369616511295027997538129160731616456003706344243797002040742919251699582511631667273736881119203583543362481506648372473974288877038018817620563695604413336086355031070238891512296632957914974380610177212018120252272961954242434208425954260398212968636962479813863750205484743127829429553524467216640874191566505349783171714262815465011637983832846463290577893114082190805960620159919525038961253280563066916049655824788201713189913853438863517736615432281494560901203105856070731447867120404216658468049242356058899679843292222465839269148100828072670671359923736020601216303450812607151989962020783231766910819733202135884030416362592972101684613594386984463849087014895898169346428024043300776051933544224324287920736804733034018724398384836554001335750148423220583285355361603637578293148222610623191649710668434939183604146508804474599756723640867476648216482229940653413189906082494273819436978989624097418382024803067155508830873939157743808341916606707567298052041560869157147509013755000941444490052093792991987817345717604173075951777304244521399313720805893791217230423689880904314558458427703063650606195947920477100338031411464652905539776909083239271617230740076562905915618870741065241668407353717117109182609018153024847363932525754801404659543987552175789004812235854567606377338158208763576324285999300637724837719022871026347178526814150228971945376198997535615731478324128055272231117340523386827559189198293476382925735242353011904586432332479475185239070409877717032079488803484954275175894636553052980475157664798835278598170696431794624236899890085865601117639065803214755920484056114309143182593419517522001484882894091110957434418549741980418285443361623877334845809380911816670625118851322552397583940942499746861379365484692514782461108427145946958556832895072277685778832039028349932945431206199811642195555721377042784060477474605542631415100695324617784254601236646224881149875116351557960261930058856975225237707939785076252423557009301008457989653158605323816021531573876263777558305813004611838832564840036753635211943098013279328405723739736886955042993902049550612329598242768965336809198434898150891872833852989572680250182642227621706726421381424456486912889217361694268936395860828041011044552900323838347330018134143657902915287312756367235784552580929825053451147066145288836507376920681459898044862056385078200081591950070641603573100219572578429710551630667972523747808139912215485136570717641051029130581171490608756367367521124847731115344122089599820556508567832088171002418612357029874807699651952782299752512251821712460078091946928145459297149427524031595801958173821935288787929527996087758428234199065695233774984176889892166105929227683878709963152219728643771735848408176620215687260619197114724761815832736418469681716620140234318816053751125006185842394362321992823188900671901465845873826808176676822616001779102816209169015662523688921977399866957842395482878407359053322063581951712849071376942868153852290338028168820009633544453717874068149371429704486776455102574815985073680564189918467101093815760906247005646332171951121555531922967569748814107966914239096828795262030805679766075955578055708453428672446237075613993402633271911093239520830887081036814107316552078492856312882138351900306478828065630147683657293355178377970041309980065385164298866410013056316428665209008406618575274422194400163679264779606429520022352050338054198344836574491390606664797943865299574816660783902880263316445184323287108094635075531906315007072295963200032572071228003247566689290393735310953506548283502614172379559964918129482200638723834878368749683115579357387912649734859819765186868101543751150874814419417472626710219334167829233626306788369323252869528807972778146827830604518979165248669854323401340928378009281401866516832345005958262758081941587380605432148204504260241554735518022883661925898743327347525479734629346927989054302575659795429751704433268944882137002557838565177240003664942371093812561466474036288812579442682120473036480085840424545979317828694656046694429918784237328685134249406837842285991021312424896113036249949031333974331252667957592799291237459062676728631439544224936599410560065486459914016727292212842340873784933992091191492862783480885865249736393318721466296069193504197777143862033495753100354743302025551621971477163006103642800640758836604353380513952568955042238625889368646582431657310891390133754144222882961321011346978925499715567882784435492920349378151332624483043485117658321256997566718083812450912637856507964332634155528599765506279134814692423631465186402349789238734072156076112395354108250015035492561935412773364725813974232234635316935143751596535508114732880776109795505726720153039711721455053425529460846156056436209941960568967988431348643574173928850692651608657107938758418724511038688143557419620736316056579091408270953231721923498814406902018968562309480302726221516500062160184604513311377809936912926715262707806510872482057564054977901624538457886353797309774912555274594415209209229593742812807608324044677887118262210560988563105955074066337367376155831226079000815630037660340086516274332909946458581669563537537662720582465745882939207075405153058565109782346015700887424688910422255891744780269715184155969759899477973238643784333236266493421327748141339868018760704180076811819182742092881187683323874781442969223311541660840109432714938088128513731489561757568684984714031781129444564704698910867976097666494658228160377607935567632145889865998163757543379728774493405063971962052256892195362143979050300628373126031529691947708301678288592177404084880565890709769890796941628494383511509704571883490081909711946969913880164170410903348040102972647692588074573961628434807027225521952153906420504259788117793257994378701820760528439837761779787337962698403770626650151497997462148063178008340947973631644538876938188953412757373767368226185338468083647852935894633345593470737544251210702276825306650556673397814339568449006669723591859704676768868517081056846635547574713443690770848543430005913830392602932406567938408301829731504346663269521255108996110572147356467047571046971978703735281039846339927875618374319915066848731077339105435198879022589156222320339678248238575199290735428254169764040260587466673505499712053057116093805320973425264500859741842635188750345494615232158481321594104588979879432869945697256099076843427696405274435894967325435747662585074879212427458612421627350704798789615135754393857896301180279360299420529792072560746944663446393574843964455444058315218999426046891439967036749124826058257328182373088505385489048528180932678690950871710759174590661218571169572419931952405179555119655013677380627495968881192756570963590464097732764320416227231039963731110504355233874657588517519480776094947103463852260241411741108136275963631307480198632060705464202800994238876385687293084333965077408018642779433135117888928088905330956605589781885584303561973049613825053741216104669687885176313268591237881074991227215446791992975516839477414254202855369130056255966426951731453300416406720645524560946665314024619475966794419978073665275089650379575413398787084444309605617212388212292219313441236872948911840169095808785954841383967621201724783976965004676357942444566927900634182706349973196301443032037196697353044612117327055017981139738709150535516166939685047232115647923965148018775146103280632240895925334435144367160394527908648525206121031093924493287914495727006220744561096162036424934497272705319977885939700423320400783975954730855135069599910929530975066087318164245271877168189957162245838465966837475316012821476997748824469962302868478319357684149740008385212802882819372118321393343044390326330522709453870686225643780270524372681696997166470940956232290145256850413986337130940775955570752814040680930729767888089692412979405831444896580112044969120481963423922436653071312028795393046515877363383434855989742909293760302263121892889814699552488166761345714926830992428880759569388511980758238717101818375453495528331110832482013530812757675885303313827915932326139827678803571919737094297551150223968115734686319693494337766373796294150036303467486001677040417575419343470083230702755953620369567539320101580252546152199628359121341277846154189642508187793465225324186410911577017496474818864245823555728095176840441103485438828039556504779324308212282570796474139296596692532361713825653349682972367991717706342097622714873690735128617367149050097829535488477425566677696474980579490963949309192439074980224270073044021337101253102296993158701487193152197678557637180663527394557883280749546806396428339338668884049862371703481146538951465730353230543085404759421468129329692492374582988768749630804722409884883290834120706034845733087927234172063072133785069180116112690565215662290461139178062118088025424032140755419398338035104148077719436102607545143010062783255620312796589431334216912864460306518762581303325765632173543234185683756364013191276500523758363996189598075386657987755551810369472432401480690688684846287476505981181108614954691951312551526102975693760726375947338805895880497311936211498991288936319612755792956226862512007144309763725742365152824516551550033834637727310275259776037440727560197193360106574551361633739072095257497885096685339995978101741509211958699036939914838863638811586666420160793494198476998240873014714864612052646671464968867178661550305456409314496145889259910358750547652563568920507454111228200970369480744363451033185805646267302629377914955760703716773902743847390030657726624699333618523635469018837545321348043483950981348205746653511620661295661190736881507753581130785314476588933803065210573907402456178996329836701571996314987059496877292632974466191108838192897859026308091608692639174306040468282218201247422265665474404320864529081153417814662772511952782391824755939770565011055924881298860060395179198040689888796636365621159755139117852211584774303158229768745764020254683367265282886949924497176795673237087726616003999220363108908683336245326207924243367580975429823108566496791732225902257101994335016016193261602185765134864410335016890683026954887239749714827470217002526713382516152351618651887286920539818279390864023627865775708610424053317092784495011794147197930426719604272399853514345010326352654520217506994610376223000753825880190245848138757331287403846629402392807793897794988630051066330274026560996055362812979815264312191169902894137307320371769477032945130930715972756209800957241846924588503174790072333222065933627829635503790043762742348943775969161676471892091838793192887525821182003449481405192190047561520399173239666731773931502335846372539634371207426061322861872229670623608600508314764919236449274312602918837394358099162988415700971275948774052502209959275605137611732163325290223522969549825306295118958214073921406909441114521686166169736833691356648087404336957092706899496906533458496359708500605397289344056178413513227381386175069982160979121166922666062258009947219758510057639057663135994057566907574942698710010003958511676511231497133700522530119257256281553683839230668243995977451140040939138318001922319569270457764806400575316730199063878065548017461550504733517056636408190512097358987266693676861122941046250398607121060187459778562552507396243370511701123761260787053756801124010427941443536641610025278566092026127494293922748758992728257114515358186081701894277558282838697206345667326130424097234369547068897562970583913004833497881005086763458030061323292443203267592027398960490594672156872084047279250481031597279881353631165542415008827340350373695117434579098488846315738650323478954587925266994591332332209441487242012057979639777015951017910123665288080635363906064026566931589829971253497079186975396706835587405366648387851452214945689989469408126635782636837837167845398353682228787190906263590837154658555652833146737488871410695919137839637634593752074141172189891349241801722139734869591843785494788363831083015410356645519947867278317871779840767018388891405999426801208239695556993701191220697925593126372641319579905557966263175933698541130525904155035129104581337232359316282680880928324653785299828922918173909717412515116466706514202593145550593907093202075793290697319058088618248267700443840531804737675281049417742318999064745695204835584877493960796420678588990963138767609947184170669499151407521875568275191391827479783658471662520025702456714146773978680020401925343518279335495286090498753269689562893007472866510890632126090141633987683349440690029449330392003553368264848258534417851038397693972079768078219286458957258256206737942975291520061099618537646480821852140292141503648365580598999163266045542294848586303157205520348749833362743798480369033498302619666072929556216537682429791283208939458288295421057498063380424847706770539149085336881919475241397996541215603795971959162962028268681625297874505784145693536140384627620922599178868332358432355777820466952569668795385624754608421235069759398465798662298424877764213232285335666272609548040404973948357877246063331786408539809002367037153135592881651219255265837196620224161986555560331647043723829431198649859936503393605450358740306554089926201854021932202147409749001256350119804090429335776597345689774076218080568702493053586917082302886514419790238669991408207293177192224176090754770540604529041781194703281907225692384015865341595473373301626468994196235817309128808218140023475045586147892725146932748469982185776596409770453901780433500907268981316444494421397231950800560619131939784049876339610281783155299382084359753969923442161057504929876704897096306048562581064101700247925888563951677931497031298441562242872281701212074694422450390543334668740305082898668799497545350269393946318202755577491585165884318376082774861840449128356746352668065152655690268328735870421239692130480242706399930185845065585196077155353378825831473645627059035396158023979448833437515533800449952741177425886318988977758977820009536144682595152656815639319158798254976185048346917564810885165038989841209081605208382615774686437853411447832668609044118881284234723800238429451834054210447246819785960850665230421449049384987423743640290746347142404276913037647019230869729883144322998897723574430307722065058218167117035029608119860151792896968409027661677841291096400078131600435958317868319080679678152578630352957213562928569610452211807975823050502119795884865968736355608184684970641996104724444530491052508806514710881036697434834143096905553148247166355312749766378208337253588283198599154717851774575733958967571945333265032782678416544376667091868205957659688327239608508052319035981783145458799970851689361072448663146590568603437282531492193087691615357471993621700522927439077751594616092086997542711705188326059201467982065513845707210950323653508681860393264374676873064223122819926192579683263164643342001458756637834253063575650605795911748401085946373456519375866990241972067938838018125025491685123410876529935445333203770611926822686872030973808936704807215439591598349710455334530005275605869784461464522573172184843073776114741080687679876171561047181361372677444392897259433228898112883422052273721209422696980262617885927463760321778148859680804044185329147578796182512130453103514039503080221331065312352289339815121462608659638547533179755359875636470610702834964642312592153778297907879890182136635373725220317150034201476628525800787627330285275748960510192232565095864492868462840814804672434221233372008757042068580934407413984271218705928563203919022776120254142432402235458430892185359753380750558083965630227234413151443707343348100729941548552451785634105345066816103351497505583645205091059734539704974347701291379369364585499581829315701767001382958525394041488743904939091953371829889034360869047790427677689207402138925880314156930078220994973118048235288458844073939684175928116060516376346841795955207758522261973840943664370200272857618906869754286013650317827511226464309562641725428018865957643515691436378794270670811508228901684306257335473664650020088379407798846416277256654274244344890928522048642299372458656700146801389420469636935411514385188574950951781900373519576179755914513992263505927884281660415170281174936460368568029704309347310706109371807118452471380747736569217464502258393936089320754428215318954099431893208233924507690061850234002016753547532023481579081675105855679171524203920752797563099639548177462589706900213077525319617305365594436548969118839877865224223725416540268510666969285173456297930229837430522093104635670334823164557128865034689610227025211385704637714195147009875262685236294064378852882662615040643017585085166558684075306207366242419526171511767580572855235929723507718996197483948538039274587039183514550298065813227769396109117627616577041743944611497010542366171661322119331281567265831679245243718909252483522882271692181713794013541769151007866590811625070173751041960117197527130741269253733692241193460031479777063990131001915375213281934113570893245665512505551908995365178752260660135114422279556426597054769790085362846119440695560093661883800519512679128847517860147513623659086272012924803964642652490883230156628435461816074632796203921790441603399843143423087883885582106929122235374687467474270389880609175935998096754725366347717716961149702842339652762816218312658480000042612206254577115696757428625335234010885132901822765023922576637414595073957716292944931789949439600663691804429925243942055881749453221403078336055366083203722806155010081314853062308130807398924941701475923326431397842607761461194766963948853855956967672339824368406177987154949437029484307366320544159040663970454991308544455975765771647521640112616261502462288149506343759556620669244096141895335627507051793720870028851519244153047018972620449168161320053726264822106398405788370047362920023729947702854928865613972232554073050243993440140760511722084840675666807048280326875388765218319780889356895377817346872355411106523798069545069324522570756606161831130017503911424819008555754482190196193629408510583182197063416034005225694368464151976357785532374221433971098288717900636733797535002344301793615550842210661282561169825649975540409128512931865121916608169028157233793563519814591437353053395340019040335202181463757818997552418115269677174166434712186680639553405911418785841046174761125224099420852273776733880368954869579694787466868631654144673939713463407738423809498815864612873042103790345583289971049549841399026432248804029198035948667343729263880659036847770472914774105493822007976380309432047521911338342443008350538059332316903495876620501965661318856854208063625744694477872646106058344372283320726870666818043238098847684712966932702288161302640451868269331071597465056598343693352651908561003952565725460659142411977976289241104071224765451991111588560512866094194331137737438067508809601023650400150855177616301475874325787679411099712586142537483989714173529396801167509350283971319837580106756691716579344001830866495264568968765340405961623408748897986191419237147401758747803879261998735127808267694011873595374259228508028980922280554249303245616009742297127841902068838472188968249798005188629739264332949533713320539658373275848246221173267998673028445914319174464205126301931975289546930619840102680052650790159086862290206388588251243697309287987180590725733357915808271216225000281751253836980480818555027815500727705851939387708956890795220546362359885665825500362685391575523503409206998844861946991224678698536566487218731381760715278851373491820178645195721218095658645165349057796263503944935461948918186850805100215358575788161459143101396080648942641266487389064062188215643936627012429288317259838368147965073780473624817977282214390286088909097967474741131964255905389412321704086498310301912739485514500390317644515646194838181711308997336115787163920429715415865394075780020423252596212974622658734335911400219832584952721439263961238320840057541575970156547825950005259189405013774733155973701203386371959022196018071108371109439153760553280823692730065640433501687976353640347814004538009887192009795775312396771421561349270424312598644981298153831099519276586439213664883797622434023814591853734616914905303369262856829654718080448465305870365906896699593740353857097083449361842970262227881617983742888336461460419250679382333636560521794776903236886072236722197657156399761703026325968550812884699175938940605718641969647680787796045770203606571778413931048498647223224590594154192643787247423603332988980055840077450469136346030764077710705299592875952273337645340099289569394549066943541737467028376343068466862131299996124898819385978467178119413372566431327205699215118946452773278834805868025917355911465619596726444128745478338135604981619938059288591538125369942991456578784608666322704608071931247485376988039220601367782832205570661579709122510450976796542897483005477644623589988155629547033734094318125109315189063042374172957746361473209891015556712937638012683019281208964870458051389888763979272286952773429400310261452070180228892580577605411098079893115554980161495534419233229700121221597301032519565080858058587820743819932751845699329666438577406688930438807710470930326057692307534616933308713410444641952098937275150276571459677522769472005923864541571787435766714897637481995999611861990470746999242733499973247731247481394421277111798790872017939431781538327526907717714933603250124037303576468782114126451008837107318891649895314048237707148634799217124821901030621073307783213713057149111452474795653837828941125477945612444971773963125092647973059284985375221112131898407546217983192646053731419261246117403372598458020629661662950545166399552515671903472167036866349354554957946023274933708058442951961518595350446780476697485116390212159320091894588253789956908939867278633648975161377420806416571317510200279339432428727080124786749816096453214929942648588433372877047867987483029705181598332273084203498965888392751477942565927545609137258619025672043202852447995452198240323416270450793589278000969300363348674753346828389917495645189470042869808051987663255374389182240868400673767154605405536208513106556050689848528664038610936074537735691213928642844852548010419968570921868928050334836210605771716199894326574384266251283834780438897751951976354801375505385162036880622326257621297075912305830402478347548084214066497390328552189566654638621173484494961228947853438523276188039646696635465124269530510849174135610459153322676231091570828503958139992101064678856790537811615193922890306318795159970706734322023854556193856150148521116538708850052719877065746836054937361725297699151874840245328051583970198392354386346821391615385085318663825911149258748760449162855267282829692597794288596307888309560085979871611688073875221886958806309257921216425626277419327230077440950129562623159511157036376980602232095781672275637514919710522306152121186274366269111803072374828854879754265503546761886132703749654166583643250806776939610841953442994142411430789881437890453473094555509406352332524833248238612605255909211776385072702147420059431577651453874973127465039512380431149645329038460403885160986479099879799425693268368969277510732013126046561069647603711699303786757713566340716970940523529858809498981228668948077582156049158930121654790863109924310304518103896989427375903077082479809762264930258653627735432078342327606400653829824897378677434395158919454672619079301987063973336397873768959096545897847199581695791700094239813468686459209354583291070352205555026598993229915391151584869833818179587056537025587549698938887521845393355009489349651776016304873267811812156553934138735065366939038923263689683781143672408898491560337258908040910050103372265650674009395129918277547879710408874564510568278488760832575567885999259501986700085042513311547937508271808414052640271733672869662352282368745602929249333136569609793757156816273648271821095107291878358123770006397292625647771322682684052194383340369878870384624220410806561325646127801330490624609873974258801355052125507053172411712754810598441498045544627408493686331198641659485497819051496961540077432101676542316135394402781555858728493393692139328691062766412282312999439275922553523542402384041994247895043886550962850271225935523625525301235561682972866091084488733013923965344309528268746910856174476337996302360971640121147196561944931184573498807353670591186444503103466240389203941711315016525987942353105832269084352345944934059763919390507633989027941180096996271850620324241234111144560081711409173986318098879011531462785201457700955670141429262580331343278153162345036635645038939667228970177506398556756941625107825737915756092928215396190124768220095475163967364634183844779724493857644876725937637139335012445753585901924121574506094211581526254624562546577292728841998064079674990011140244964077302215202598907889018680856601638646863470201022977442897174054526959994503631483384371267707228770665930248756528438861227348466726780529835753999268249652973598521852944604667912139551792412259751212814330878105515199979310364529100402157573938064340082737468883500405255587823033850398477856557019558231761867538820999807507521684372032237180828072422038602248031723620298564815381960779886050199887129729996602639559499314813794941014571613879935315127237408527493550247778961691160739199232711506559791953472030654837946906743445405780424033798355937255168448971579946279246424364476775692263085583063069030558859331346171467034042047177014495995041614143272034525242336478511854400945645273337683929187303337101354036249498883075781719972954558186920466430799727887156225748784989263755858794841855151696891570355116008617160416928427230591623969149906476053164749097227958687077038033152548108606263951282498527734484655071524094197069030142076695056425314263774696288631378354999783753437023399467352651992471923638853999659538246280870369483704881263044783558301274169324884148437099250633485829232091280827615686499465491080039987838446451230506009912674051014154591269437369664671664823234656669563258686589395187973360152363888153115311141295843722327175206526004836199471720786560372683736820187275139627054118039432597433761558607261613626607929423239809753959312580427295639632250518907139968555282106765376107625365783706906543510635113677805068706953355169500764775133262063429269355228785053715132446662459641246514786272346929604100762447976453155570779247692341401587061348508589970990453900096887029142701079073446986981515187832152901146020392701072633462709111153320946504762397236201881249424478909691160954980532552235086530220087649086944313624863701994701730297532159403277986470247799045899250086767690279790401119165885713106818489734295331838245676410686265612961204701136072110853535450705068656210621929136805876896362304070558182698630957799377292672940974510004281510100348002022128865745958079616866261161514401513627744814731513358147281245929393003870686692864660411210381682340989522627055579894756813686340638266869786506532396757092919568475041309167621392965902799065526610623992237501273518235635961623532521902596370229357246294630186733229144208453397840965457512769035385044087452895646178818126621047143085492619551322440861890446334848750267467883380724131653997243919830241285556792395752887765913551774470271255532087916123857980045088908770656475284707991011645036893243546495690493789569229918566786199044171209152997466736943792296011142725809362071061696454860578280983626958950882513623575972907222719096124498560877622152567531938693444605898109528176296830409277108531666248626110001819721484218557280247909853903383759667803026837455347794176316936677389700125640295509756737234800435078700841472985937650239934540774876664616906830363287721770777857403798560783154083060205312535296748283741173569092384442017039418586262983975815070311905473094664581983263849094575437193202655148987026431284027583899126918807601709182737099664574072634389826090816720967031591303959806786497188723055267983002872200158452924823424104511089955116138818456691295082848923958416706562222963252656891411855868277161379910678948702952750267250928142277442735033771965225429088582734849395214682741264914176527089299143954168615509591096436794768382762259413789939635231465684416020706895863161381416526509697731655414018314317842574812644370399480851329640503453504669234622376454887996394430941119356041625886225658287136114082224713911414940053643266156542075526463229764224477733394396253436040919143109626504537258808731730045637562904044013814028537709336575745128799090181905423616679442096527412139084633189920639563550376408083722254166031977046935255478891032703845491348546866216097871014588480222865133166002486195454392153300867063658970931022975481157223798051216301552450702893206261819427864102743707959043008529920757093745338400657297149463891002414503305750417514013772230796253537600237875794864575987122410825787748311180791079210906806680722076535335205875298369886396016193426680683040615865110583625798789230653543858726139468476142750125297552502221286035000720336448537470730143661867033962327620117403091999469651898318971767347615147068792431485416795080351336937553342740338018914879535681490367530274179675316443009267814120670111485919038146233056414267483628213628800529340843709011602122798019929136111994307201704775079134994360702013375836519816581433874354843542634435084110387175692652920247492333336570270681021446274673660043269626021380733204814602703247504403489557012260544407317365424607151772534966332109849792488206796773726546977071423332891836719253450466709390283725857110392836237168898502096820989075850520255955145597575369374414593002453575331529321228648811123751580309634166511915301260652308316048382567817116452764953346198102512392137871828295464765477421216544938179118011799696565384307800852782518400173718298898760492524435953697120442035385218240443391607211749972749320922892321824143620706581019246929468811088139657381364647990744977229340122183234010893352532392894566097090485915892197526828133054861435100432427850375869847723266080292019937945650211515738403253018904845563998734915981911470484930845234618254540347695820106578422475842104777983945449154133745798621192528847128120788580553081889186380013542236894230996139177589301752515064997595138339763327164057018552666058657009989068593398941852068275540120506880882355725124822417639290654766578275079232861643003808074101476747397511368942844272963885429956440014356282058249279789880391263432842000284773391092802940595785932712506949743229228548368122298866239370466698169680116512489045037589110190078547090688258096990120997034337872918097203056442090884528927069736293150723068860939724973317203875563553688806169711669793078480823397326095911076967953207719017150923629437956187909504224903029959251057667884574425337644097210132254529604450093605383492007594861920402698701479195695667024917121971938240547267789329727599330076363819629654908651800456024876987620823082577639251290997998278337132876018493419188724253783011577718402610151422520500972347144593786151108361428283109736181983942650663166914840923409302911213807865554367816495452174620122841905839006717652182229717529305037484202390941184297882756868331355875242577500541402502959502431334853957643452060653627228333582187539341994569989586764724260290326048759751766534483892551505162450090099741123227618384564967394226362201055084206710772312204407933687123086750904493770835154962267964303296137778528820256821647680061721058735300253553581191919001669888273677188081702131324008411528520609690409892285622848536566233759774546205962090117469171327862834056430569354126305907562619362406171256484903309978842008713512367785310682371732862745233669693209493413383135132866482765342661389078054954168704000712571585919202681281163835632480357997208463481169069642463855103474570785561791844425068132272698671818863788394604092360990368288190634059143280535875012303270081091475327684267637639477147461783442626889614001726978363947571715771943148246670747993017036299982873741863636934170769534801893459880364935952070545861585504382110429267137131982624431759543237161457342546817248126979811266820491700400016025159899099347437207229155308172919855370388783113952671857973729105086142444037413056708226695441720179114438708770027602973143647881225031967625869674664287287957317326286854803066822917623735499458672814558292861399656610634788349715616255136207406717185114034980730410072339730993083191942271007038730651835149284607705838258391605631919001836965741297194474268198691908382847313825209059137338609644692269183743833083332265713475849337197042978935993256204162031928758684899862626418596119717752360065871686710247724538115073474193602846201692495424187017084120656198925406778694295845082272245246424594476614871723522463466585918245469243479910920523382818562340203476223147627157040105490812698531880915267414119694283952511712935391104930931431283120833271442758833225085220702325946396428845480132351110758905163401300221157986446347235003167828015979230401418834858301475710498956710254985939427796925919691168753476093160831630955132006701548144644148251936727408515423977029571992975196556821182138963243507314052764963431083269810243569522461513776324854008192036586786639084094167102371909091513343650046154555998847903105944538217625786145210399689235777206981814683408453390174448649305516844002285407374765308874587806578832412041817232704728594163753245671299233240674243227486833091307509813734380469709325858543824959185120533792321188534287692625530546381098788246843803353029948652400115784223441853211844294447730154050883192203963913084463149117384294968218258935445378844174332000160561807638894530035444993097088560168219061305306594286864104509125796887323632177422386966002960887560106124439294348936783278577423440364455624223500523193379663933653430589613130387377603550187760410948781571579858896593428906587828059719725195402259015103594703372039676401467100787548463372389005158266654853481839156631844810688481271298269987029778325398310556056396722714383713511743990123504837655360252827263537881286810618590988123728121433824870396371606698746828013185142795538130219773869295804442269295569180136881671341620803360600417974899565381793881527570981977489075963419621995080902879833361288674973331288280758013665976434825742349796187180255275212078828418536004729095598015500274794610084429739869549263362599122798885629490103990145198575034933003631255295940653325341629097246797764727042912090928827281590447812855800993572718850932385592307646430624937067476463393853441625067002304062242143844405672080062128575923745722567498906066010981596384957732470321364193298902840099403448346741723194313899049048578839241116885663936103138265953315507677212290376297796789869559447169575627924805570974886529144088979080555719343031097731191615951958839406304362492052692245453419830726583555108255880470363921314276335918495078309269106307754657723559665085362540239437928686309794119915894857211501371759993927854546622061983675303371520249092523434087599325198508791795710547231787321867449450262085313317140449000475344445820389972749874330964335017187228102853113104710210073534354925733547699914523895746123098042060215626195510098487816637710666575561857297866000700511950450128850477966748451037504766739081732837213758927119775760009245793111579849641954032322269802733093200658753942476386820324064695940506089860400172109705837649390542309992389002086003101798739893854203845054469841000605614799645707126109216711790120072745762738089449431681178544937703029299052278474961825779886528558383039473870143216742797902732003601270743067798316202188166737241938333539390479218328975886936316953690374028619996707647718206113968038329580302923817086627137883003819182502150926925027291464591898130446310041585169649649849527939594111638837390669463805213029929468909249748397814751357340557907469414784068819234716278914452852447070485339317085258324094483255605100771865907782013107127440656118268557355949880187728252514111768908736465307740709497784260550795589102885151137121684673661597188676794424396856488860939372163406936920543132305693367743173819364064403416510161018073453558091951690710987702121628428012201622084819531136090615344491180869523110464243161647156980926332414847054421468680119564637794628315339104690829606206230844863455258990809490899201287000948911487751022331838544845167681775397313097763842700880128182872478459307424706532233402937963649524573224436098960864195821912814316531995602558112850181844394313112776193619428781838924040991214098085391681021212151187448941378062525265399480711688070743153839346643098738537723733006631019554133696029726036569726340382732165014717345758432190793268058973738778399498809078871587769526125935292931676481826268115320049569381628027805973941076155069490453660944233763294141369769880815674358565195059912742131627884359794128294834639086109652707313979687237919970848018144556661805307951160285933209183774459429140521250510946909105309002902255948942173106788597146454827946685149293300559106908391248017855550956143224887823710297043304613071925068466336038604047311900158252883078018172883516580479599769530208826391591714593511973658734365019258441079902839627697449241648893660248468114902156124520845231100837445484609290890802823090115461258936475516494644357120705967872213896756987759048509708533256070989552462047826344632043324001060623839824069723281758688529545581547245030648890592516271629848305105638061191190829633932473616824739329323633830383173202381382522613147427765346938730725327539785163879922983404186374892211021152718159329464680471347218326738898833019620724328793328131807376028215362668111336198738851528446994159953225355050582981759117997476874784085978905392322669540860227004599676814286088083136137095096810288433053703313896765889553151021329746677979315040127074962291457777217929940079786805630982273885448443268403191784328857505990544702390964616333130928710650949344733335867006126057727979218823865657899133566332045655360954343116934708643129357839048905074785103067844625354973445385084472776397003338705037897373499114194013130457596605312908805332960058365933622998320439629531073908235625472991282545814845894147389708320804067424683724340870919923155114752733341738655121157466926342972031486532749347599114698140801198686707891842471790072755012053089932429203661489670369132185714050823164365201560408970391585826139601830856350765476811814856874746391761582889591050179663645505484042526864319717028473044331796763754487486051331143687535156973124063962515824206225557799155748728653859429192177461330758131064236667993797118619922706626525849976529251234011104985316527675868738808135591053262692819348588316100990074189699267322229908001302250443071288571196971263754459263095703887207244597969762463061685406502409385782666075137263530760580369204702313226412668639359800850799020270064711026170718938071613202108255200538933933785598419491686996785889300042730414194921221852375055395575501359103657397902534258188190286146278202251491368906091525685121081491880872705868315987741452740881958000353015312260472692488750356561957463519094011702709385831792964730834665812747817640348914812411587627408726621539114929367693009626173952860636939117572219099995144539493456664375153768738557830751820225697875451297880835873921738004030172231520627776440536136911857845410540996389700987273947828644495748751399963753239568276763856445997413580102007727107303293375647101062883276302761465230919948113769678565271630718855904089002835694074396988461046784902725907671641478047044581592457013526750264445778972166275877009961189472931036710221574701926568051849813190739198287901883975099411974551312459056350660741694031906096524609470659638450829291799032008148073459821382456006315354745537513150542056842208678258952493557774372781987834588426574813303841467300342867509151498964902487885796387696116583038549397145509392319026694226370648062317944318771320938392682886759112673193278496912561916751228284175311953263890375425637137635547711769215760516198122423524193942777426510126322225126260527883133061615108671708151835902811015627042352007481734086959754397707112221449156722114076503841747518352993837318650077400638255259296964146068832596023022940490960729413932345942761928275098595433364849113406296094898442592650910262740040311010647700394645872781239400416064707955031564701635265352138403664495771958087309993237410837870337500012951271029508636104766021533599503108782591570572591357420779686702131486102612641669752703709209048804358185142765032802777879138924156670838717966348407876030631973089502530397158409764364534420763505455306653821617852439413570016529960949638953145093528519490815269650840249114492541082825641326522324046085738891826637487494458641376664937218090992107285676465943566210348393422539790972980383852941923245183449443473563904507780485499521507377722833140765673559956988994459687461175536679126482317719295093657853907084566344473648389902940474377501126821763160279226433153781707369817241796964634405509317998749665308903341605642220425493909942810393174135945168337649865962764138177673577786074128822473374328029100978559942535712726208528189898466796758453968126189296026687038474255995741247029439906366453847313898825598687305107140504758555943670294955271780665050116553240163375362318167750330123553366764549157601315672971097924183972732823005054941056270007709093490474093616820160718745123377911436128989149269176919047165928200110928229418331074417996415165405782578565310682242604728131111869360147018941624667323582418393695043998429987648919618807771771877642830973061433061785582108280286573572464201824039645955032953044047400616165442393206117269666009337534908090004278076105028881303846239433374470873309240680562535847727740206098218845808823417722453215094551251769260265820503128829970411903617934713192419078982867793863609912443548559573947190508552118120776743677848823921388689482199777145784346182128016237094895676257414712485115946198285785690950109610840452240067616925559495738099883159913260200676451787956791721553472549887199539452819690921644783015877097556044049822216490846602712105200102065133430730034216514539438276760448768555373444960771865917563328049993045496778209963383814878674811955273038082883763028354006826872992228985377240878259858304690241381526069662219359711944011547581930473735555922126004802786183823065379382071897080527700974903948790306474671430207612757269872256865977775615933895861276377261399871417871768333648767647867590317391286905862161060448450469254217526884096567171092364542544016872923152394990942820645687121053915558509824298037324314277828495314135401193780714076307957519753490512616985788800808058686633212419116008885959117810122255278177673642575129569662691014444249195463637460144799821601481721901826941037431087689267900086813420424119184078100095752036559586624897502381477328361440312071608164050839550525708542817241907670183573878260252420237615775644441519320923422423182952768591564247237206189542840753675173839245041869383194940906407247899723420246741597146367901740741068718295644816391505823364247478359563542425733066207064637598736578372600791997733659498223193462657538233464105992455969985783922015348974994715890566456824324840164946032301940452556479886988677029412004230447719081099679811732394953170426733617452591546829948409607173660459445083449774183002113269500065866874628788749788546740868299219906927252966734392381586801278721339037033855448068405957056935869098685227841435232116452893150771455612561374784548325703668510779967030430215258389081531692295430372908275666725757574754911671266199958528319902009717309981721543069040021304506249882602986995112897549477412922233505797725786071858693070407267438125471641678811184841760101380611629231713187473723314428040351004005003922477096623713136748741577970403616580324200172585840042014906135694629480676630541998220007953841778573252731960729057022788619517325118325882242862249135090209490678564327748335656922506455163604806489765157881824613172394118966582657614788122789397133080613632268463141730501704841996778245704927794332933738399208721085292124147699498510137754074226944293417897548272084370009695170553821624263786201476882204883047703377973131316071509750735551835410107390760108203778461268094215086226926134958249600246963767224081748632723094777946390928350097738987472047187447585953665727813702170515187669713760731851222522037943147654038431311758441931431409528542247363925119434864138223878552035919414472684998956538542397339225099705455871353762201993771238621822221632928060683172256574741833187819909217631873939889619579231950679669404629153613962603642311542956306163708647639184635844634583564776111398418348579336201438145969716420208802250228358196719604431872939341999782040296065241931196989501666443351153639991665954915273241675014000263801664115416280543780732983686693896734753832319892235574061851012625067840187910967978864543381807902029107412124141222997151368501215148690708132569438163628948653648916732637266870429808924604899105350242415875498284561385287401925404054114527824881007088362249088087196400565190401440981116661093787244774253189439776309551303582216941861236628359643686067433793314396541267977176017536390808062073674859938382460482539278886444718486676031899974050532959615155554794156072968412454445736138922331879431688489941245566516298815706067641444871685863537702677204388000252915937985976750492420344157592486303701412992231723072345311819025761191806073288607062865653136412967100403363404533148546536129099273411395001505150888184262861209492869642326964195971735120331291490208066862158957342323109673830745542913335016671454649827834313506162592019348282067567346994425078926853014071132714418513312535561646826010227983266945554479940637677265498461528494697250641571192423756693418432256267033059660862810272607309599345292069882095752051150857164247346979232916621964519538925888534477603060995895458704403458402707298159473987634308453971651372884886001579390978609161016264467009075711380858539277942699969415570341972088393017589675624061508621047085598599058440217051255752843237099727778142291059006940494023949006462353304239476267553921549278823645008722276568943085027775997360105396351731724196125361881601515568728543149896338750956643787982655734004126556089314161992069913244804284045458506375431217495182102356177238083628291762151017149372332528321385145176005704492086131141903895308014440459399624139371528098855737601445257501834537068843011580114112193458813442905008220236312317914071963118162683153485250478407816056576101152705758782293747665434982507246549175203969770518372982898925871133519841685824096754972311797283322104072622214017157852897193991122296700910172742277660206650941532962857661764471066927277856588554590569409539888096868461720327609522820224424386817015449137313122605553671333917373767486559911112691873947176806955887361293082707841851056589688240382277091248182140010728773569723225794162652982512614371213746815331412571200735941538132955061242832997755017856123502966087642414460245858634419097152067412411623547654708958392225753326045565336584068737717501166232239401090049541377534910048396096833809117402228847214919025284427076875008034907784099200724599559686004435064036052986192636720768865007554140861783465873739311298999151504023329781540995970753353286025303351339227467891255159735114299582707089069282891380616253706395638197904982421080769333594464098674019321638598036503962519192962457673973241400153044590776508160226374396898328050499540242315206206532998212735278637293659286888679841782223767747091495352292166516345043284336286966897352017535816501015793781177253533790483986005729039680594145768503332602527081344991947347463225955393925672822801900163461877634513961625835195400281395508684047768781450989243275213546185369819876539944351253042875907170217535710422220179325223711655263125573514808543863115433071347569695624166664538145881515749721040073153402588991896584641716263728808663103909793853618442162448831186571431992268651128735036245333033163835345902327983087659124936959539545822957896575550367220287127952514223758382172295431087507527302983917752624377943794924746394090159019296599265843750614511696128337962767432924509959712428209405512875421723602877156158777829380707327047284005019968793089501001592794935271983226706172240234350692978903529091624908137714003452245452422932610379217068354553836488838592975387425833012885389458719653327205562556870180700755014639236969426140171349013340874105388218529344670569403528305065019223722442165421250626998238996905537023036069625338957434492166786523141440637399756378358227902541713973603942900584231029096894595431380319886906627429955372346011767226510578186434970626455483614866463147720168387014257394392454121368121810690534345731571415807057977586370206205682552014927052959973776156059248378072955472218433671135081978407894616348703787088938880009208953219422164732045999707606389259037165170204604978046571405379329348873277487275908602748670113030412329999427714929190282296618241340785982804892967238357320989011139692189519077917634881721421797471315895680509875698390722418962104163630433994682498395033970188863319382633014641256558923739333386768821096826861820314006952372733375139976456735889901312104399780478969148020236994755618957238053297512362827338614098148475833138066920841459025706103478745750646250976273845044403717303457953239538687662265431504447093848298539273087952626782348152182345779383607964940769529386397143228642820782733067425041284718499458739273012188849709147450416929306184938559874088997639579925089708024442929725227498807026378300708906056164232053587497136038140158581221242962364526409750647651304086826993559039959617681289408407261439577802087697770749200405421414990573398425224744608599593619237603453466634542756364221164029844949949743059898938335219677218014564528813527243145494096950405458432197261458822394516943235474031365847131014067547493432145290377146492570077799865758484142838472399245620141537476913141466502798852757988378150425563241177742832820026680643701392577380689243679292899213449450292273156887456453087032383146831513221243333869057048694760815539166440114184613948203534416497153079963467049297417706058759933329989791661921507748548776501656868506692460658560234654864951596510685807700542180396181270769924258500401044993469223503995075003864942128535189845795728512024295800241625110066387714123860237679267668841255578778463571476521047885804048904466833588466191725622252834893951279726917391354063412288528974752008245274833961923612495609246037191380055959316640370250261525474954707195461055301154618554574675312513660201465589748533421195808058475244529968395631838123721165622615151143621040386409423611223099139493220375811041174605494413503603303054204004402306441689742805247994202426245729153731805726130289694541971126718263837197292482292801568831412568040517015521480646597091491713826246213023912141948286659479617712949129977223973057356149849314954394602333211683483905610839124368961987688158108111599864721893063286568738476666272711605559316627779650961697239658998299488399525694096877470020794977020169124888794990031076015071361218040594638099916751849178169900443966652941849887183638629409064010226950842411483235040356386662816224673636594882446209193918258681653015552277314016252668055328257487583575972651266285407125948589823506729567001207434632854552523211001757828487490905608988190204989058999213986402515968167551612251820968094930165891835236769408132782494306843121651533148006654150420564021341128503533324132034375753601034359994041390588003484998942702273275893975005222600351262086255893136451828362367437174571280565149825353025491855781318819170738103514775725656493094628219641369246783157532394500816713842007408739136554794355135820478666087513801911488739448293463220183224405778935992841447560117270602194991942493289897345901929101243490870074418944923753709854624238715735960152239972314501538759117117491223248924751495090626629675593134824223891713445524638690000423954776480294115079403404442240160889588766736602464235975088544925400197078137190376621594754842115645390817109692542922979447314377374225347966485612271078652046288779831594918582845953135619381926437820055901768827220659468743589257474546938006669927666943183365600239798686249917473411509131341652936381592586031520463858059010265479302162806547797695725822262186860109480560273008265025354735882093868418687850932320828738387759004918954226323785942358951267456682003634917240613857895223850419028972945029921407493305870572015516032004708389248769409879200258705884678251532501881248104870206394637181049343356019232467909490196303558285321877262923526193332107565769201867528573724182415838434660489640928307953266912311183261817041254967035605143471471035856353239023803634230667262376955009476749184029860134988342989269165867362881948678552142558103938356429161434993537129684109251799128217472067683214301190298259134171702581121314216845514003503445541158610928337594401583540618530752339886179641436483302618795680719848237513561315558524368208672402817983523596524432306679032768324667802243872796972352897731669596035208224023054524320641729677637846330717895408168609304947544571065255432226231859793675669449404392172922176342823167698361256040346937788445641122108057441198945744674146610619306044755910774877973953673846010955998669414337412659592816999259942377708997637582394640589450996354595213129334099173802286245705656061875454917594310707339163721744974531011094093532037980263658785496225089053941080325249924248163680990192168707864177041521568439366588295266202308743330477292526068623026881722522856214054090070801568076671746227519933961932288340757998237329132736143117856147786088493212519360510547273849095233817536410199821124254293357017514548740543433434407632848067771747196303304586832209223867456335049303420163890670195415538780118228507205116766868530556146821086907487804507736493101471525105284603919980570310413533061085632499787965563915210436171371714574629340269744691444832262535044563723480701069104155708522192308075971760477352396516109495065050657667785973130228797786621632703590632750696670771551574501847677817598636302370667377982870676729978524215396236708261179414368506383111296605680202117651092936955700964183026031849688628049531661547180052715060518566433118820813016986899519145471532633358871753281255519354669988672830998335453376863611524887030439324614156393639786274995510364022462144118026879726330343495021951261119401735879306777457426769709183716088138100466940727492772859132475427847297359368931763476480700448235531557025200903925689613081688301032963521862672502366626533079096816300103971531863907701338584522903528723253591578208220288408714901192277498002646758399876867849403706606308439620261624490082994848836331270194974421082287034921827678801282320093691041310108908452900465748463251052238370044628760998590939373414488147945258483617532473038197174348635825290947830177500951560748610888144856864513259977508913721127490786456217823493777054556494623570666095610603544618897259785252317576174968436373536076534919334490872693292626108511419511755680081840768775902343423806649515698612347038666884929893888013215002553951695217696065387609964381610448789774556983532733697113133050227288234631492587487244587722178863963766716828075269688656171799314252714480459862832364885473732154950103167425824356938627013679066884483624260542816547653325209968577403409491971751142244420315352225101015115573528878468374181351796442299578914538853590348067377983319539172400276426114777527939368181673194833652390848209174522107973792126534080359686327545962937271147775501018784026758583529160362259398403244795284751406895398799406641759677545346044381646845620472522629180807847135023686748360771611168049012287444525499454438895443082777479483216954632296222825984218491259014761131523987263519330015078406733616095726215606222152350531139153974660092010842202376794099904878252206770844621157905175565825718204600212150881419196769781240344128119512240081395032247553285619242969142105410312191287734811073605828414897554297606793161153030994979070538240662373257339307017684720286122897433572500563234687073543471617964795076978894297254529423332207563030321201628118533129693280485120204313719998708126572083732112851578539241010263425353109827326288791529223980648532120829722260976646138792413664621831043248143460873388387545344567599841656626644185576118064682784624075724989531442280403808925065970847880421410445746878876805445911420509234601418672267427768033057845125028241336380577277166899471137652211040423478968813978901042940367567140826331259620750772784627155344979940934079442737101657003379653051544258549856283348738384486473670244054055693989288574922483551107342979151458023100440839184636056771024550161392760801483301923949091677194226238220299044990949415905776158748153584116947268176595664326495003284652928435119690735081298786160931527797635502204202986365353461312140904939858093099820741745334411096477773913096982780394912781867461715927765017463102994938808863296221586358021076367895736367093141044429000940478902709708933348159384338885846708257510023836709438274915911491242814465147946116252608285844578572319673228774151598991761686475537545413850829673722819331351088704088248767898916584060887699610262440623861122742735175274784849673414332500064551144853355008686177176338319903706900160636879939484391117615156821251574679564244246273706761171883925984716602116172140397395899553015213343679426851538504454045817161936304036185614329221208208952748703388709475444438205192047155576860990541223364921382329101309142991114020215114000134998483153036067452362364226089581860354081893549895923887080672312040937889317188780505873628040931555681509976072612982392249353469673744946982433172897164634915587186312349542843749951039818853191455678631985878344375660840467981655321137422591659254873662354201807784804584968283358860871120719798169494516684862919327022282271211803868291520675726485983637645162689981750032412005510150581340855896809922519665095771228465895225167292212085683263349585152250691532943899014744409346926482585866769901762623299759701390195226638791142003844590029257193395583869707019589223163405183621722190010165574920963311912923469309912425555346164520588467445785907591705177870097350616241833270085949859564124010120165239654002632693286235504293591403722526255144416969048596091162570512384720112592198560900259530146601757059825431890373962127473820526427059990787025627426907038891812370012701078300782205192823157775132060947469582840942277799016589839010853587171404089384204746509284234154801853743148418309615154989662418812477588118963318466088129364718461297459307270046902061149043801871407518450892119903038469550656954892861855174309236117079242293138765410498874296789212338993512074522686109704359681647337935934919023080897332933220134579094623895257931575680995624124667243464473341247959814135747195633805823381744426222862336608973023262065575733258570438592425754495539242984328911871344769402569516268598505716506899348439503083009069344448073508582492510228945525181151922125954674536449342754918993442920263619037330378102698155271499916566866146280150183749117908435875703610193690772989362715546889908811945137787151623124865171450560807340981862872821025896074952613506825986956917328419437532328187601914502330646222960334490694314254784801369767078242753886127798205549696405615152512472110306212073570273197000035303401357946033931318980276511995029479719197068862668852140152150288409234658445845746776573430197947337021473338130968646699067618737137736722581895602610216805974201092432239840082205910189155517725192905222308406322012261345067859917358794948709822672665370837928164436409480045756044512847318801056112673336093395760528632897759439074446129797512752268586928647652164434233413672602697265094524720157044819517095511123844072394862248670386254348297151079053973598998116844243818982329900279918469432840835746900053512779031800967692997427881910554097807848217131802722229722328469146226313327972806405199856087341882821827597644809229875284935323064405560725543385660259556399905928040068367726812284315500994230545083121822589046448489641383082876708510792761925043177128625086147607871050529151653650625838107298734367590241043699477929283089902955855143284107278375131562133560260794387979605859192239524398661384142340480365893064685863834493745656833733822409628393692961288333854806628198212580187945010805974998229323576390559360449121237811705335650309035727739827874805713767177969205223448955056455814515357118647829527676639338432138169168848869092168726758841962678589282200074534806854681794529569191894069352807925486213290905285005626350123438606681691246877255214003323115184391370056959520854987042776265375672868619733456751101114025211828898190985504148895910792301461739132717095074923332477816337722107022224576091625989244753239151908683614282252116073200077189256702258744002466458308214592418210222534702838619673713603393108795300641353091775024723393185080065733785762577443284987442455850288291501147254522057981370488658984964324489031636972512026548386866072191964020627689415799465805162215854048703651689572026361923625209673949061134735263824981867645314397870039262261410513715881627147575121520727428968970057532420496318438499913648715039485088989515543731962381584743683215334530910018333480621992301549277275793814162484241728069908783172243067017282381286162682559831024964857348243027106992681315538372211715650818809130525466134880509413591752987481835096943607757081107080725895333802661891859519182668431749586125684240067373588978456042880345523760562973768280880521951253088395417304813889290022758251251853207452173147647846339657156473413663081261011151814575346416289340980940481151389870006972216782335675875796902068285908096346200385656307969772974517610985314334673838182260019077107707705017352863849272103868108936423702513261463645674919815736224402390461854350233157510350567063690792503794419074168471294266596323514375890459812130782324892017484927979943932484693411703168747468494273892668047557763438949798497583423831903459756026556328074802327357993234476903766029893337078960367487056952298278848745908359088465870760891227128758019426149009550513728420119903460049352305481878651034082406434795958984058499037127881054667819132365777070386032728238774563268967776030926897172286115674813726260136784005217682915452729113222627586676924166171349672899766942954907781897938132460893502400598878846159240591728352924212904631914744626289771603937997120274914315364941087811001823515853819597687073941692384724534973422268870082809205714892495771865087414228550195424452580094606847323475868042450742814823593468443591157996700621035382889831382712804535374734897945422516428305110694750895274717017026742833075088411857388424507871373072028399515772360264901019536819393844819392253813506734154442885783385576432012413554530614429340417285797540635535816135688806161239324022024566293339198322362017222531318941118942553111236196726421654754385380344142613099425401056481477959388026482345254970594069809101387680975944867391159751594877418802469724209963850021641837579376937679593749776967261712455493699674714767939392169030220946836994720924709408531703836471345315021313761568790826501782974693188673539684306453584932894807844557513292530561113019068995532499914040968964096872397318268189377363837977643169502296329701788181448652627404699864877940054959092883275216433163316916554295020854059630236833668213374202894638310776235020961222250446789767578100668586920898510659840518998187088810561114144251634690219964757386542164411208762032026519899467992959498680845893635072434496317947686486018795958122937851793138270330861872930962589718449420645545224433058931643606151626692027483263139623512861523734555050635729053719635745394350009740621171694510039794055824511331414941130378430541189359645436845674052239473640530064692785193264161048430812466464922931859092208075065257667190189121849788433771503211716596461217824831315655535163260800574701426677112327625613395249634898784570213266283821007694808045399936808287270818603946389184902456893735629920075240286176057546653267351219090586660560804109159618318810027484268573000859448388508723024770292649127258099785456741423778743542364578369214956084434612922297856535945654757923546002516431050561366499954101928380803780100834135130423501313556117266495786467465094394624894953153439322083614928333437970465285482825186387015433409464034183209612992961641852888773846554305162153262520031745694206580759191732576484622831447469153056219671036095869272364501423559895601099162431660525806788059004694131475443057572681378117326910685207915394393845398922277756959767859526518208746474670870845421329196307111864674769367536991618949672034228394273928890937109741611685023898670495038606079716359149096120102670171559427754247995057551179871568268070358496184257036412109963328329375385156586208980708710987841487919963856272330748415307238113617184666385794430196627886460479313009705417840839563688372938763626343057297519236170547568446459689026940536397333134397990131263989697075590280650270524989237444042793660947882473123375713046412945908456937666629334479826829709998258683784807612354132760171363444027713711285912892870074338174845299140195787724514807389201376542064301815910606091295241335609931612384708342717512370680154691134792931243192906595338573790920085704709707795279044638219913837463282262390786841765717669279680408360117546414551214229179639731636081209047961354815471408843819885404582228319800985925174302896587414160432923422936170874777144132301469808720914395186671161746733248340859197142283754706726322833690867965682227022271691416069416144541416447582933393382322434959131555641868501003419030626575457134649767121139309138064820319890131602123072970018095811428504153850564319612277540387106651497798219311217366781161509539505346529801744013369140169401353745366064145824869164392449833117823935590631179060382760749953592117060577068183021472248821278278650177551206137919915812736450740163152520214056563731294292668393838419277091517245749059113349537384220349592343022181294092235522152485143891348012561271246554915114184341723661900064580458907482321823680027031021921959097094788327809187430678391976359152281000071000885309637327883326234355378929299075792699169398594247004510291018791308562252308679423287701520354180410066708089054931688889171702988550358900471262109894180970014459047770749070760934989153608901596194103785479642015755281508785508304787156251838399648331151218284333381605261182261146379504780511919722255456916419769196248114853193250977227992758767883713188312762618189287201383057590285247765978319874437607460263094761396626121181073138773271238819608551020605132865837445964246360700795947038659197432941520213376699947781648122294122890517127576171624349711284846910318905053286769476224461332584679496191710101988397744275415062063273817106801051661977403672553738520147153027339932496695133762219339785452038694064192838643320562066696527428055031988684375519670169802840630573785982471304092109338819890179503342662664005968306210501439381589061903932451378813208857822784060897532059157491646641178580567299985349068059464179934356303335408049177968966272877517533851002443531355047879065218161537024215781008800378967841531592248208256063951124052315597552276704177893571536317075320207544631397917343275791099092583945971600555619666009138268859703146202560558870598784316628564066808378706455664325250024059972449770265770285462625831080260049178453403043122007317701948014068463893419538820342463559272494252522959022603121597406167264331132311223211625081421789955008662691315176303982150915131370051548794143282768258834078824306183386196622264989194167036269176783931032414296276831812198940418016222345415995413052543071010424717921794640920612016743079828235125283664727203861187947454293469882557520660585838959895899525864132158673090163837182384493004322451580029492565726382082437563421337333470648026593415388807351866443604719782534226617285816764803247651131183462225687880081216122145910825687396432464524231239687968723557401040212748480230104178977064255672833408262486835827616772449615651169357822092347375707091849261857833316015952923831161827602594893020847404297096129474039220717768500022686834050462928539217947016132953718369018612332997177971236400795538354967480021572605954514900641338300751788129348635902341556319141699305436193350812527150586456518746826488018866324898826712182213320803685919782147383323546255360347225366873864856745875270939701995950103827184902837221360428434386183799532077731804902746973560405477090872717821651434953281876868278147194871236933781920551334935663673184056201061270514596987192803167814428589466155538908359579422469610882912647670071318741643534378597395719671243821872491458673080162243194490150835438587911745403816467665697940769447893878915602339387536654621815480233549021375709698717688486311995004881183755076287710399763759300150172631357206392253517244868236906820281940335562770007535358214059883270056068426334048848926824538752670267852296363186948214176314050195385824095436074080050058144941191009122392985061141688604323361196768633946969762292846130383732652448459035263252649710912380824998934601074241828591229651991629921296057802274348629873459888787370002626837334721698412132376380483061061956801153845830868476554236904082074961852719426098071532285213134955786786288952247297637838509378401265407503899537666548027995975334466559756262636948519692734373179868529540820571845265579666403703300414793076742195412045413791633803853361978338755719432680177885080603490820750400832939937071288694789700244662655028056266831538865380872803193102025385884287859982632065440287402717528764240859418854652698105487292999394179237075799467165712671000393571035122150134842111220934574603246829383282062206938121006744288906772990647499911889619563947214629689736616164248961704323782590995033810632871786095668971780955932336353161585763676846585582400443141961417439268610843958330614486927406143978041482068628285939747806197806884618919921611428684544007323229412093247456840321585698014246719042840982194621793835840672969882574063448508894660150937581058946490338725361409224046169814642443181295846536254853473768093817517255839595003380792059582632278410926334310287978365654400135141624054883355129243650237755073109307598191175574645210516482465576109559331644750179963748840749226200273967331750500718361881921196352045118326562422081168060364952138512242775617724392019865912661949216947428813226473708791974644516300631205104649961940667267733400986565725154054639933293153723311629676742966829843888973917622897350310835876830440784520216092004128229637252461784971680284132360571202968405848272776315327139499782096431814389231307544303024965129124786297588933278416753563524985901415104198098279483205558931889350619329930570312094768567632578810800155885512882506041292471293120171265236203772257509157779264102518188392912733420550461555897129255652981052794256123951388868922784879274903036270776256379101793210308690452274780138882210026724950247561212547727545404374501747203291314288495369942717853659000267912835126575476379068363584930306745352463603598732366329936781336673135801587869659067430684905121749520928306138978729737034014771373144415029859074352444978017821508224099405088708228410859931096085110610316107889043686807710866365008082056930736456243445558225385886807872690419448374210480660805048033368949128843790720994236749505530645651064943278764590120481591446782821304975482775400438765453877229126068627730171446514121587607097090602006271020834960040355744455415448648648142969137883529201645296516354627851224130478198131520850844201467835884320376759442941863627221569450585742121696101860487498205302736379083157532901808972841232672822801744913710124763754969914316004850212960419198776670416158339609527658733037428413893660387007318594655482275135113766093451726916316707541458642149794414648285333969932206257191494785994764918899703969052140413771523172437992852599070318606390816029687070982709876141864587664516892571006043510958300187296245639337777987157459694699030102643177537647193359811672060521180778792166290976884145515188186969793629614297472568141105762874466569072461496520813287744726022581430444640499026113372504899177009680468699266743787180215028583241007830703985224215228420369318604317660895059134918459300930287480347950784769744835999708999569523340400682382791187609259425721883961515894112142636638408229693431188762533058564972719458988603696394905299894456158035795764752684066919225075884605344712776694685884712419211192792038901032661887368063589943675795399710222155000013366851936481342889082468329365664608366417032431496655441945935683115848962499395724504433289863428826448730597741914894286681071454267900325759419202225880180552877542165118007897805935414474730186575031110952348868249738986480557365471362411527547345405345660092465808281300343540412593451780738035228884141353099100093950760194056358279524961244472442841384769667977574267785333094486220149686964562720063118679746029616032069922169165338757801439202050331311749928891705364718040248274697284976278102416373345471059836602918818593869958618713950962933776699206346865363074860031045893436736104179655489032917692480188691650857968445706686622386613344774051973125687891379600504546409157540998503878136559924795145445233879057718075200934218518206633495784608528176026646001036776360600664574384171708701435712561817147113809500188842963901752254683238878392308160037580153820003079497082373571698120422160202082648958980629741718717917587391446397903475766314974277154871098830274693755739979352669774780452270070146778856883165917757786003421197944231453901485605524484309373684500256293490488634178001229963523095992250348315902304954964389778627447269007581974703660171892022347343495028789089123525744209341145735018002753645559621883049855118191227417759374478399057756486913047984891932947893060099640933435952414339230484957142578494146632740401269765389459547505917642752003014313527331757365534219108346303724751377705711753651918895508838733014565161128017608494960894917604191519299060741265860635872724206352471810532251744431674285330506664627339529479319123736599055856672248774349454958077748296095143719915944073984425174957441293449913758437913226711907708757085561009551450825457451258062974766154696852278094573343643578159387108174938921055004242248559999864155495511024165806844006883609129205773841469184829610526598946978723422007881215485282248118866809846604388762985445524783376361168772748682844802324591496199608630893623726898523674786309615159241369121686091481470182050648513786090512780744806040725430697978659577092556131571475796657063330175569851390369040966672652157761672853908232107675339733203103049760254091654461575387101291575371812898251263949203439225088889604654490896788596917854131180407843999509972589187930740031097653078307958343234712503175514096895585870387035757462119828367214318598680925767123190536324601794385575100607836305391472778529722695299576025978512281073650764805099636507342418062452107522897299507684991416856464174891407053743777140961197580748996063192253749456904265644032954072509291355483842920618397775847670755787923299595615921195464849064245950620859523150859684955545886620811056961628703730381299626343101615656100700174713590747794842014318475842683896174114507984438683333451501669270554045997228830458707308038396017747177325174338367524246830987478287500243774391885860169369828801504820056804374312276802302417491608326630976971452360084555126954070732649776682564651102488945751050219074170257537913412371345859053092318317650966767844659019329241425601797139219971846516483959513302823691205565392668362288879734772664281701335911315834194279475303517745866269740517796992741270464296786328867091190790361305307507836811183501153591226050446677878549866057194978471878865054791126553621207586440794768696624677890755096422177069639682019064924317469511631971675677433771773647228407232126924779110678449991913418617457713316336617038299379207463224673391808093610279468069711139876731560298911755605699959858498815428880308281689218114730185876603159827868821014672829841326822362459269146602816660744531261872998329201144482887439631699263670941348545584177974402966338374983662158275902403861198758382353543970776666308069496834490453264965238171304503090108344891704335974815573172491926357735676531556068263486144125687826174593318564573331125779849877129601380450669508184301734901124052220003346186313600803438188633041136664151250239487471382667288854886316223710907683984464519363013745057927570153575054462733868066988101580573585169846064988418989251645484750623517433319426464456438946312545574698068468970364423904026562716818436449045152369018887036291467175041910504658669378453974812813270685097888183927439445148112448932681958961942054739054136736872933474850666483942124612669410899652950587061516960972639059549979929570764300022063096094099180175730806083483415161623293103634023385071696040977315266926907719492814025098748539222025416972121511214014362780780786399410836952108788324967483934917955564956580962000653535764430063596425764325151725088652254788928584026678581924589733320432148953043826750599907456148926792380921593418960182950174996953449363180876630461124422511948961517429010693424494541230917538874041209968324476652636842455171969379572333571265415232075264042858430948265690961056597637615870750216520686311438269228238239556268647705386773027823287679881578296528375904852698019804202245417433299420641841295610791998234854712385773547755642904537054906754011861679292449091478782765935177673021069749347099463666119079925062731868920490070432349101655105525486838036287666615235258709209754849681607565747198341695318343895972041550208486876679169184329999566778972761037771084980410405007123545519946820014340102626524509778051442404591768591456758113047213001129289459402462377343101052734075172828654451944251472835047071846335593254334236109311354594112907411033096636970344337589359613897886944799964958516683512503672102966334579065830228113977584066718440851250117586134092068341861741140577582427196303677191327427759033434676931880071456691880617806469049295687043131146070736968020894876897936251144936197441111003719379470951666593560251099148699994004938042151249532727720026413492393104515300678010011370975122390473695276491299069664473241015744189454438598175143194817485540969381293764187573620576935544899337946515337831327596490506953048699045937702795777683830542282659033133453255356272798645903547567888935843998200350182269849577518263403575636972241405842739920480307438090190285293168648682131768287549893964384617382052503133625513328793034130085260588127920473470163158486097050531359516664187942950113163130386738172383198694217410651327385565893963404329721582788488080654258706499909759378620820448078021145074883008329025222117955569087961342011476698048972968604765388532844041888319323022435754420437223860623701456792746035924072710613939750688756045035330151390552798050053281867314740303270770388273439678802666384615267207037639151488831939996284114177007962440340924578512813211634386150399581500855181599074351816095853359573747826920083120935175618089482700024429424862624421660872745784501201125110790152183024684537822708209437787664830024349121721036710116249310501723502390664940352983561506350030778365579986696978192005620535148345908959005180843671784364959966309727722628698648812204803892525738829486772018981660553808097209685809354559952917704463803796983090344409248547838106353776663906609398986506817721767698711232075593832319758530234602595070229293834840092488756755271414050877271199711448750502311733045970257831118572800381789171777594860973820014590633403664149931995575737772994577796128828291992780777846025051458162988734095540824442698113337491721746697483201218899432174831129574328516037779741696158033956551180783671848339503748062476146359144992718829462024958041388674671645338400790095071292392270713544922143106206678493272840933814462257632199879272691252486436033647073041335061983908965211170382372701752274424300452387770092208589310506713684754600529211702030945980155745701545362157095297837414992361567700062068791191963244701430809756180803916424424936430130688832369614523720195592022492214906395523975757031286274816553625072079329404688132223842997214404755954745411375370712166415608912235558965971759577669633101136147911787070171207442803035140015231368189684135690401453041903706223486971662820847293457675452224103483928151812588516561315929756078688316977513482849719146965217498897873235904887575846781601534871874934882533446186737297272254185546799763225589760408983287117541789143777648021595291087051789066079967526822725325374188383855154026139403376496462039547373458337304803591516561435277376158015507130599673278699406464587169223530394680670560431769929715313154345901338897594983896049378662156499935340105254778812921732425246334417501830600068860766525405335939632180685953925204930399085125684934351692155993288225115749753891894498567236918716901312635898045520599844439169431885665013155728764101463013761673029308554340804429349845109551212164611289107449302476522134841994768878064469273637785932527703636915823656080353343776974704115984252562670781679667772210386217199029703722590855618091490290480379573615020055485054075210945924627102524261916578848806016228036220511231269324647275798242711888579880307503130892678816194696633623238670384003348248525785147905100484557584944405338681313368228043949232620490147966616878926247761075717624777332636733817135115079427221258768951971363871132913829040218033573053172337615296814637249825505370436373855916823361981950860106524480306873556157815671690675352179245009811684136463356623310814845187063217962712454334371585553368077254815267960204411252897297676272290808790287669356788679409864304995709698375745946729541390447733371694890097066786386842093277611799835115093649514077642572767404478255152184432407353735597211779858567373269552080620680836077680964662268905292074313172516221963906857641186591110762333008154245735876974390458566637583950832816097228253617861602715007994869090360722378717153883153563296023209841863320015859363847389238095342309620347847067630677809503607269886871529717347258538434212577734185368501396850665519568754591619784428475117040798305624808772830998109281571946482152094514007695953915339520066933751897093213024841309557418060302453395371514114785011486703753753531424859427548637127152514618282403348354224912723483018134148439089288708271164993278066682647098999480868497818839745396137982963311652647673404948688962692813183443881730987315719930114039896355183599807450049636471441182903414045254219240705214750847848196076067896614772849590803884088090965311120918829966004117539329760957619460021362273604739083443229519185792236063773458697403303211106946506412812101087130004028876741319816724139962417883006566362582914353226307727639320830372198122704551743601730772551774410566609381668962030879606354331981478826492915994843861338608169035227165530047010336209286238637494584666848079937444108978472359717123104069835203906956753909805901646324780990292184968289615028713712571002677496348349706724061799095451143436633387052581341897011461301326285533890713693926421593453137338114179196296346793045779747555212701670560705921355029839973773917836411795278412101166553890579259873950800764409912749422785738282327114890585350998187942716907351001291097326657726394206007458443390494430043390555749491278215634058552699241888884849748299482151410108124958869304094227412869855708641537834617168731749575833176129773023494623200312730166795785271902550382759800964761727079421680059024745185532622266325039050658030158428452249737227274639116495579041461132262528409891693555555160219006865373034317252877278233145820686305413262952237716132093143283470750008996776884068050003086397166028235113985661545167067376478614760161943205894720277895274685712853864816610665493906272866501486636731466919724939987981463204890101000944265685474025273158668897157678544329397618889313738428926391173807178898833544899842304061059662679116054305181175060244119867415347027939550920293459912308576311387368425012560083483144802040321081572300504617387766502345872443477978829532462906443691829161571397127499260490154817411972654628082653428487513990612283860468337961745118682072949977433682640716643025562599215847451940157106020577374304262850119858769648620282352127096148504547765897774437428586455032478177083594440036070937492067901233999863524536308740103124901748634330926999542407361632249950805082361146969063178999474027318121947326586331056727404733132039604491227445953166017310849694064846658497155465255394259665861595548934835917230767797622586939927716281096686768418873559053528939778815590280843002023898143535443204836333376835480039016939606212869280451125281059873756341674624444133522665591760461166511681553229023037644570395387453382188505638113935278185196214813129164422961049256789597697884870401781027500567380272003070578392288712380015726950092049072450462106427414754491865656126686662182094770685621403101084600829264423204670760519767790974943666135306349694362412383516047122503149239700266537523482682416253389270961786295127375043427431169944604540831242541743455277218691045468234061249045399344904463586433627747908672561760726574715738184592455122119913608907925790282912783204702341348067545196356838115250648513167459400050942861306618407945456170603108027375051690631426564814296427874996321763898928183412593143910683824407670598423599049613961089678482726721605085918368083385285309387439476865768794022290357137634842100744169926556033574373519063583956070606833813716838736935958582018971531548080249415686099825891945288190233107442215762367139420695280421919670870297111913885100373839087965997133515843734690900223113853421882390848523683768342809014967184407027156401738670089256895952020843098895853550275871307360936160054808325997953103377008492991036781316920020289202324890355715357218365080494285975651854254817050679785260605274724225905006924371853358687668031266030585279271653841097433768536602615397004187706243004991810500623841048116208824913299701308752308769176626645906634400411106090531951391186418039721655150755733003536693653869814701764689500024476277104480476793444452188599772239429201337715397179727164316502222316927972643644484710634285533279328269259434012465231824953952331571288167317294360720861506066536723701597155483479865149843834343302740002850208417405261101107631712547735377689417376867235197681140155430944422489718209689156252749874664583349784899043339632829414585700550269440224489302913645339904259996851876775958087068090386777100670120936942288382071793775676716342651792351790733959251360143771035312555280694560057840805014381724985340049362936097754460413375378028760310985141377009797504780728356751512084841139765274284289195582035578316723994570289052222911827021911504618190483659250540411623999369026700839776166691652999211050998382670114939047507995773791325010535118082212031900088741294005955882772114880029624958972189755839348157691583949818984313965058301436308386759111850362010863327894386331479978988085426414866350600532163306418649715851258720461343001367314702848793750161791114551531164674817662471388855098470149096723027605858817858584143182275410606994938985168913167355835768281615692084091443798434589578621045912782295381342983724620930769859869535198890121865032517505592084900149004579380276521450737872240612008874809887243621127758604720828503898279689185969740915651445421252828162607979777964434946788891861914119764866227998275337717546346290259169462369625223537991393297944930865873103856310195919576997454456278957842651087193971001726388526215596250313613641027509020040699840970938072880125237187868918176868119725176841811640937630551466800402997660331789660845633891992065484070006387604031005251532307399772022134616660484702239017830664468527035448127198075002281367907913275276932073675403643307108312122208565667583725332291004624920841714075270508917306958863376472320694409690101652304533242670077550318961746613793547469132361984338579349068338426133347158124024103970791525313385651635090037107613149366752724840767058007051157117956395448342564078235714659636435460139932042628878740704555004812724471525661512922496534972314633844273663227221205970088481819298171842957956194477041276901087976054930786084293019395654109611755547684869810241646219188123376801594427271216858310919436351225499699200394949992824249113539561477034745761278421699655568778791289054246281908134158716596593384793075337030441015600033738638295040049572676761399343362050117918315703174483740354098848210191112528321269224161665943829800144400802708800192245665379466110149236434125558989247119089470106971947289106130548713194857226125167506360291367769011292707888767298228839494840323680594003055054277296884792298795318601971365187415645003190144874479230752334123643029906076247694386217841533566512688119676747351119303146361355204768608826542149682797198141317247419620472271689141428477080424836920801810715184030860856096469114819211485496563141234668301896391189590294933976556738341440545229864008482322201475146526862764906612484800113186543445004219794558157926250522350391075832567388208008539270986996118735040678262207288972245235402024924148230939656212991126207310276950825406437506723824127182261280147314529090520775896727939478074594991370553375829863811582814560182744239017702195196634477202847240170933046118327593320245582211799381981961149838445079390050806694348779437069486352295203774125675053526517182596053075465104487424271767496660111781787748021743166902311579637025490469041931845893174167100949791369118926259554910973015675315443584959906381882181882343640099556962831526836169724477290462866248556676679275421720700934337595487792092389450410828735393493328756206835611144705367440671138474792945531116358310519252886380301641345538666542249142142313376379871003407869011051920986730238206992598784126783990047862139361445103305812126732053051352239318029530707533907203268471775999248334044174034318751575590182081805546141443897407448760405849049059418827959927232083429402490596982260314662229721632388434515846136014882889606166646681014120468313491725110838507074596666880541019788733203765905061229223953491393644161019380150216549924866410035335964021327645138090481526135545979433580890069176735910673636370892761807587825433404685554082815825370381999717293767825111918686655923537304547334195546556272437536569586666756540427623474922948994957009575717243509097916605628515716549905343770428603611381748768949338386380686358869813446317126641636833461589819351398943506455011499222437948196315156806466870264582646110853495311409362388607440696713173368765929913574542338662748210732752808944249848325449037472840841805942230611989259046884328440107727835495347134624694865648596203589206238706786930164735951200207072368280497510584689850376817390612343818730747159369868840604123065014289321977571529636073941625378366776905732083557274795052777685447222852421225593638912565186160429605148605894349823749666550097050252821585740693092689741408879034357476116043675855102806127118526823675636098198962359907346469146490880635748584882820657515605588528036015338084935855676785140763959075160508332863031042399527985274052522387556288679849864818997610964518728233232520400394994742623351830669902654598944165685642034543875604559699163117351910197596055027050621463911579946417724418633592821550964965595228323958636242841269650205368135151785100489474086146460995633230296791854054429479609399407710873456840596146813571222365135645402308202083483783059696739360439018089199028164554074105305374351056539873600406461619085914382891514388203595749597054525406312639394771770580794769540972807667505993124979665664968120006803095667245322332119153941418859916418905632286109508320414355574115736445076114070268818250096505413694398398278826484685187368249699227372833428320226989580603430488231536800151918798648800359414067360822096237493179291407719773589305688475625023042016851035155938700420578084520874482925679608149110161312328180593459537460491896491207594619031450607639269231479053612686225874023944794307296044784704383423740602368894450807369047868158339676483686760223256283885329533397575994403579505279769494487573663461282575846505600873748163740829384400828196363978878236785425841834135990414784385542434121523796185865814309518537385684188699600286195374263696628154179281225532925112626683108063202930731025706635867370935237640784048453071592308318973935727848210833044462528539752378649895241142840700281561489771046869503934598162521777487429189312881329846761773231825500160436798049059633502434667359057164432981780808575807848578483188734700422560582533128419020278485737101856002039573620588424285660619640533109109023407359674379725913742604847290113193348667232902514874010938819899707043072975435740117763756177750350630386820509550262504731827705094161692953393282963863840600965798969051788487855366856237458174600835014794726369041812402782022879224415807038006265973782905300332772440527870043799330091566889910269515894575085166518869868530564642993014478635385444186402988406093110903769706198211028929166043766536033220413551598876430923990991570864852832623418695796666397330250799748080496241746326691974691695669682776008384031078957111709011903422453351662636749052830981768559740725172899844385442273056671107731138339406544767685041364892337294298202648878202264864218203428081544365076374343881461662074041442769676510034158237525633575156495718653786283722607879533000109693345938040384500842577021968739667981328781552940452849889623726721006982654247990213899242073732739722039984119661777387188459151254566565975079162238002580971709446310362482891586461182082740679173785197334837215997025350173093555641427617163769689750905320484583061541318877663876227446879186172097029758894380906444247625210702827493297509466805541328117519729931501321494853865249299198006123203163294036636300418992682115708195621634062785825393743850489425194995919461590951154049785685713569502484435480412063359571833280553659594505042839257884392949876718156324357128587562599665994514032888148886396110366170755300700264103964189233466979711637360758201495408739631750546296722614880288226258770767757424016346714646626799458037539511447520329336887597500405958444841833141856031334864940537839585847725614554125931056781329413419237116212379091257052213545879135484035490281951027027104965064305848734218422995127140273252403411694676634651229581873706060882887271221791849174670775733415915699740099661340137483352242315182129095505527518493542669935116742757448575151829416241614726977084182766612766969173242101691710579200148797666741201417429992664524384265553020535007196041603408841749736210470330229391240378707015650959750302919749438437478577613752120019696185029065286816626576577220845667711251578371127605903565533287575305424599489551450460812433351820632034906482285864969099812912197994185474191000047897273448377785286980766495889929513619429379632215974756353700241710248084224462070723722246324607852343549330533084001396419699980038970283505167759862149451079019569938715326216346760590333876697531467703666377672051756432402105517727738066125448786030234501653786221103207731647442019461724389639186246482177586896779228692940870335177489494054085828621810142845645478993552539230785094085867115882666201646501753918415905615933852183442379018231879966493825671347817113140889174092840948117698636880559485412962280393406554557829175806072677064098185376334374711026766333385900664879589960434587094600095283834481412258113844991567536544915390432240593078546508835129541792565281668697994268461445560904336795368254137184529625601055366670665817089855318717778576251409046672894088690161227436524583713758283840045212880139950812486861657378347540468530805725391865021090700724008456344890246601045557450004751634259254987054756368882155454930332971927368276823546227277511408122558524759146596580005315802281877380038687724593994981548070129620509082189881592466881184934361259482039747149217615953693876292447671349394256626165853330143187160187399645107075042419660533565725147337306649696123013689916834800417323050039108124877537054385006498162099159424622746071631944472102271099258490675923409140316144134144206018415100642409201460294524754273733117463082452088477722555475687452294453804147746423894484034634381598538889014010481157161256317678964581639901268558727919855745124243318582061971940651071982975366890547884067369094499216592068515305940947428256799038160719295934908068277746440587644261266263692928395194387081726335594233690701769181572115368510636037678614728599847722577653151538899759954636823253679138890614291539736457413484070874230186102023910527783294070077299830843911694357824889526434729218290328152231326399196044235618038929508919864852838106616281093833996222896828392151563455752969320856348728379967086719353910846780508730969267941123026294552139499469309189512887869172797074380111714634062900236899941712077612604665958535772387302462617839206037910668212023123371987717552858064015094779661499913913712324183952807824992431014695930118767930434697129671311104239742987021906540480236415994005546025663214370496040411096199748653038248657954172404843770444954580975674327775210789850903955406635389555277689324954594972681876021603186931252220782141017940190616692946793374817430266292870698462758358438060568477232940262804517260722532906408268099679965105720542718215801352461059208792147703312619114766904178018309617088525022633556617057198295237166053368023901011231982308908907505250640377431209725690668208097218853593600501320389673780337310516252103225590701491117637222062547885882195278744372437585453314003356408969763469778554423672702082216002367345265300417049905409339811893827556092727769905519034979558435801489713852057533964850182036251503517652390866906534135710574507847555463079723564471238528347143369758525483471289196242284094464313017909451364554230936200980009664080117878393615383410232613668296922369323990006722086879289545407566327128342201377054033443826911195716595599959761564356219913022187420872370135251906244607810375061186950354483518134502167648549986847772227477889093603056166260968241977068936936958979707561589802689331601733464081931633514615704374447363438427052676110810642324767183265569713534739660568161935514185854355762712891360986067631605306262967567802937841606925342049976642074524521009269882273127074513600308777219585082093274426994667402320427949876291303126631578272046244954303719388809591946280360100456981770419922979172557596895339435014664414526406534246881768242494868110668785400958443684231848029096473933437068983075011022875939237262139983243586489440242012109330377777708620454085199398285773923822313014311674704886881526840267206827997267448019116836766834619817054097504079692717403019161806563306025112664340947795947924967204861970234059274244908230691460594438799286505222525565047859288016749424922497968985345953406620114905943799536795178508481449990967045621113730677223599617584818727426115789884592498385225572161922082696045394119479131103656796116669870975717307155125678502330695405003232161610700773438721266507907967849501029288575755313075941587704640616990195788454350042282114100766434592638303311239701057780978813805792626824342762949957292067985211559575133599733912434626291163365691468286171926071644816047738755913523273498346804019760544270201791840691047382196433098087167404847215573564926925254616152948845211205064668131165517086558596377400687012369404122106423246589790244142566397795309153201858224791043652111150483594233461889232539723544016394795073696197296268358168895585522345398620553849257101922570983766904590373912720300658379010317140531998935898067565443257028134391502687470343571401298164461038839059654106793160711133145072749873291668349118948790678114353083392332710735408651931535025975437454047247625325080217661700721929481421917018091765545081891300136749725035964897702196343736582254131686849872038152126120413579616625595708633119735827930896517105385969256496900450984060652340729281979771452359893081249911026648365765474613015699735765187010877449103300460554403205267006113030823374453515301574789720136939113541377204207352335939468996946517594282569754618997473386649337080763990483874401930978633480789507532697626964685834346743929098166162735162766381899875113983950241078849430615216445336804866923006135651415804897647502946563225651386934190870645872713939819728507849629611387076335916995538910462704502445409737667196488910877709482942058671776818439570070361617217845417342532308863736617050842940669339861218823854154975614461936933581947141988081073615524427669766015929225450840821467084851984708708572592690584201675410774594611845443103615812599221144266204393262584179773017750875099528117883068082453835090254111526499353658744138201877838059185171226230292514090367963320295842902735350522595126024842245199921923041831808237830593180221405592430402110779552585847927480633806699945823795508806700605772346800194080715483506543725233730425914834057000782855359145785434841891124550958867697338265490883599862051546465230983641888589121181738719299064377285522761806429219881011405025034868350847306980892590792370534332346825234354655983142766881504078841070294857684068502078462006053201831503318386773020635551878198750100177133418442350282539207964131610860575908574384340962814737501339934134388317844715001343400880591518019441155547362438280829760662568103148727998108266230231273114288420447524788893849530776347636403555676317301913773557473254356683444994637495978488728818151836058792592850736500982498343241887728617146187821361115468140940601119525729789371021394582060250671902918660375544319304907069437487107876220819866172403608287100025540723456087069857390300406129801222267883939538750863733476833237309994991670838719156092863220620104737680746517389357231576004398351288160965006894739733425349447063944549742630562155163963330563727290076658177259872385874365356600111565864143628628772407634727348931163793353982861440623078012512633550197563881608965470329926480192831638619994217988268553438064045023972618210525340680658736148102538810490637808363925864110450548863352121265911975037567164938785351877924272001811264955501553451626182001747007131114976093090309763241443916401719767466861241049681926267198316055382175772418255951369245849272644878608854790655182831463857599878481194684938265327305982623648891161304936696718377188335791397152726947292746640902350572026184684211570138419574101874636636025548817268847396303779376294551191247816677952287388966273036582872065026553859048201982576957489546007790535990654549728042527437985457386063050532454709097340427658549277984483096863368483636549563837574281153893079433456036456165372469551544361601442266146691502901151558070965574789146781488167312817555793976770076527931414582275077657381745567433247783822224410361713593984053964008872123984731796468484104809852065442574122569825135359520992446008855113446440851298579850279363694965915678496117786107798401485033450376689919912127599584313194368314770416146877687538348113467511230101705138231763078905521348420345779758277009356620418761037862504280999707785706155590012958359400871107026205820966638153678028162781892637205014908434715188589119946899222344666561368602901525140457000820514073266607949548261768574789893622033928004645446693088525176845660487891655055755387814752349311877999319986092263278653013962065503732875714373163409622074879523066214051266602059188472270465899685485188132026500526448254270128571574837142366124998085784244988825961027066283921256764835567588788351538461114103239341302608029918682127246254701010489187677630733316073435484686520180399188773383097292403368336023028862048461907424310395956662782733752511330797382875585669411811231719972627213031777377146017784177208309233289727081210432524366593642439284010914717376417588758182412021737688894438031241498234119893785225083265099362526221496132229828457072484348831945889865147700382892885064915347331279849483864225880350647806326487848649130296698322845292249240623080617392814313687405733354478830817547173936850669133446690960166868667469868058689160844437931132806629265662160628454760324772839339115445981903083485002427737850191077628508948297797842692913464422762396332425342093250338392019279266962210128711048626319943009309839579988266062838450490319050068302794556140825547132410093851916806589292641002316266768937965280791748012432677205364236434295184609689081205020754628920439213469925846638180408552564520557919639029813002933233199886108741313470138332312475097090167437139013786343015601142460634872356772151235665788290532147753151998984244611045413823961488663456490295289859489609340525256444094320212505185707494594565708816398543400426106483564934347662528218250371012292843271099564227472981656865991583267112842955090566164830518241608346527662476515789736739425702626671929767160228852855179415875351979736575605579489178263275265939183339055521533948640572122164703002792565572678695966570037368898228342810927271703527153212561752936800927996200213863896513049012996334051734371759092596105654422058467438553115246365332730516049506945575341724093873092428732447227538193597564063875084499753247429843560149409889501935414482619935947479591248381573622484587155464233839006358782177457820815049399669936315508109139110290609645272102414825778617840655831137995738245466118899074203137108520005304153454816972105810750727329926591208035080814439388892312194392130021766209439889240965318561205621815568369339526420370633946282352993545782560747642972044759973683977176187949260698693861967695394423773839304937636877494339136864338511630699970908712631234325943044293829058729016236236606259554623832568950632006027668401696437726869430243269701234777371654285322344922016819495450415587608613873683332989750809076294978021584187346577578552031677971853543795877266398117369025714566114031444153731205693404439123441487765406210833053582184866655894192472629368209388901870413045468220204481548051344958805786924747455946661073314925524981686549484821234245016228069590239679277654637298167308039826606736274002396907764748731148616525045779852632038055882642920652059187123906502963942021992596714935816756977720231123389154836842325669365433232398938438004414802852585554578220770750272724495362206265301150316250468309491524379257418201255102720512646785717158544961104080163393355925880528200707978418284753211652333042130830878485643797555287518169700819939368275684088131264319881750897471951187370434305728894709405701130370525716162510161294094646807285917355115436634582539889489204457362426802098311883645384639246881291542609274381368818381263976710154857466696065977738399570551498282324517272489717590923030414421658639083392379824917435179439123821260916963045401727322229163503839797663098260727228356054505114597999190049513607609861674044599597906808994696509182130814798137176145112762666938988140989104069930192600350763163762684031284556962833642026791804926194795958844358252933819465562241981408366358436582541181450263370669856306468540225072885494539228986809545431115230813978704085108255488593993132807103866711904293278146422611184331996723110351688984609932545781549721802407759518232829803744054342820611888468500909409608512328790312823140050104656763607326746001370582031175784063569041448263529998158212631039679527397828948700629214157814048472060407305508126613657738006560389585033422903388489131237252703777602386451885788807076103370180257456063988435516863872541252106056286649281983340237718268160618639838916110958118477462306656084752938709227564999161367773661374846065257768536897317866021182327023958937308055099346504648656308087225425667876423290554564298531387132700297030536331681875648963934782347041867740646569277175757358410020563879556241842457675383241150060693659676890808491218633255415996631421176029754701709532354651612852360874072877227471284018769521156445032709371269813224904720934288253816856578376385417915290681213108373643278197075370372020264737362094401642425997918946127573257386413373339587367979378015823713636315119966058676460142357876659915137803376273735604237239286505389785448760883723920485815751617686125393101343726656117188525594191770664302540220900842776966393453354452829699743152636761457267297770033336752833335397312887287414028190626566141475466028998720988902510569171398195614604504404853926510220463216802010576419152485660718379391961416469732600639176567166529853952411402251378268608785477446011805710784722406551288973876968307655917043787297841007114552501590068706979127298177102903322124131664233753761904717447977307056635741100302668642465414791748541904822354394837727624397949214180797265957974091719482617724864551318436839723825220314347698558585799336867131212160346137178246297224776850700823650767911038965100424404536657501080144068164133310057249409566655023075237840365864747332633339500417572704333258114588606255052596070004146131369547259994649058844479520270398250258860828321604874349780413867112074883641601767419137938362403884304493392447890011065734293289220284421985826001557115019464482769739578405129817324559328081509610205679730414547737565475571889381228798790949012151504682979114068602796675493651085513671174949573430755143557787461108398534443504178365532389679810042714472279726207180043510354774712165804181816949387027390540336586337795237469933498709450921483794343689844484510420524031558849920299175538455380397387435449525979722476574845713598820995540644291083621990841034975632279400601240278498302050915225662353276630791392613105518386665580587573783905153839331934526179431738110329220547638400102092751491589369571629140777633353128061887148041905117738887823403991186379167811096053090413401805087242842026453018008109237536489251076017793320900250372843261135366294338691003335763773285542509193822316564541474483677746227479749917795102451144806188739400109975808256998335109142744954245220139937934133628167508270541207945838858363223839384934667223353249766202031986377989634941902604577179069580112172950755021374289293507442506142145643760726827131092204634235072817804229952069850149981738942564883233519902241201734595829111692769148160811257240989980239544414752203866309171444076985333831900169675964448207360402024266426572479490987674318192467251385885755967097338561974152901082661945745509399770782607137082870141326549975242110061569844756082760297910680768948845949770102786854537232595794392469901015402814864334068740578094894214778216987217647961614567233814971189856012812173975817623364981578895705057994065074164188664315124460684477394932369523700732014449355924155547063513139934525365494854682237052031431925275029420668448027033418497074293030792412836042252482347055704493591239442738258065971323009518242562170096299721325668734723296518907091259318779379405965169280645492800857366616848754840942857865325778392025882986670352391221106553172475266589945249561256871032884074723983463840817547129717502986346935951107176681039430017704270018938836146623961139522961382868149804966556646641513963484986558110212026963201736101981333124677064713886134581699003856940918493982129230796623968958082739223674323892063257263730487818841106116157163583071297906176677650244254271573644069899295808314441197558641972584272535804789762148007408574593457851709682734255926323410341588558804270479709621018751734076710465158337569550694890157232970712290991825835225977153903423321900043067317884011350706286511860502898000385802906239240416087964191709008059985961727242128848106502269948473339886253875667590461930586093343864765331100230063844627130302126359082565264147398606147867095368127688098575305860972132070735821643270851080845774500685741279962581762392588356681672211442885283204420067486672456312133391013756403641729137609354810635969861885428599349786152675733310498316661536328081460885473881585967345436109860600114647370126386981298468118897873399346101196954899414357078384439840123424888052936043064441122164501979960450409404155033433773836506883545836550596817809844650390392971146474964621266366049336717268680546813233559264457291163201496998760079412078447720520022480179431990553943433912401019899104959856487651667483054680624639594846468002415045013377508595984078466634182696982553367236689473935638604668755525503057404086883540862177502738576254002762997838157972991640739578017913477842637520161065391653612160613824721193188428736434963514654734808788140916135414804874219629025298710830460972374304681957939108532026622102354055828989164604964156506240058029672287333793578543615732067832477088799589769767610830645078198870731020520460146287521869238692137590981899187278156381632088455178080168746641947934442040799234197987057329510353748043186664386342184021256463859855315389767422468575987389380790960230213362877514289345072043959213405384797403265505687624177397049121071172931771189525316389169524592375383685268161526320088908088775235258469781273119885571512257072428480374742214880363454674350336064303895135552941129181379070127325993004474055393336890573585463023292419783186567474708463466255119763718270322889316027842187350084188785871318506444529005262577569361435225345840954848823083591596633703064976798589373433885577101527337795645464220534684279333148058623617040635542828599955450194830835302000157973756288330577335411132350316344139765217673532524764668157302606160455927152108483804758589189301449540719391926419956616256715492661496586665589407906428543513682096254041515656947498667506910247837293028946930779651356936611948064665558253801804267063907799838914067539808713270527578916429565738152091649516192549046565675260957347777019446953686831748717811978910348901059846277183836737917194316463825068880817456057493361542387251304723410193611917687494726707623939449244016602218531612770517623220180658423443573650388080515739440919473837906327641437982309529041735489005988018573460352417690805382910147519792834494477093529886959629416045448350214498825982922625457686024985512884382502067224159083117248302250076247572658468331849168818571814164183296503288547616715193606298537795114412693517485666325967392121071380106069115409583531972895902619086512942475259342028808800712704364879001827697988579761327625501179860496184980375784903338758737069788980415943626588764520724185222948021288441404989741696989735194939573420794821775124991746663286826980897586265017762046179261918943767586366975197186561490275288990036500316405774487635209087191090775553893978664023145144192768176619737388233036356376409482788209255971060651942066817455328527219680771235973735380451806911243415583082378659292010413341146709674249483103661814829194426802466768646218373464605615006284805152518877010507542876842902460293948442923780596812693186860303522222873443413442964264554747249952914439147158810915518342083469135623858926068951727554779752433893511735565484739288343437177046502061741609616825670651336746590225781273230048269344812553592424284069612945675502591152431826833378089881549344052275378936239635533145402048744290241889591744642960207884386925301604457030433575848359250621282508331548441203211287285779452210102250793487038597004227011606346652028180121350149342120441766701156736567160168313433377096585506942978752651758258122842189062416987786737682358076505371644401545133431424062352900136687148609665496606134562323363701123281181290389463070423006011724234919134026281470031248720138760688684370928165990362151049379867406668206421225188209927511958379518370708937833719259176557730772961343456133352094728916623715002026971441083496488158952679881618551247890824217836665975271941711359287883861691298537029161100816105913386047891175026187816865762699896934303586140735007546535290500609272043695063402900666023225245708928330595468306949060639073349384911734722408286527410260948204581350054563170386561336578510731049715645062405861089569853139507252063611495562707847423337619460120777119240886734779511374741052376935023645474783907501148956752206858827759380379394273591488396919529581954983771692557305721507977238784801006775489376185258223983723901281099917981270775516849510323691239134483503703893167704725091934414773860917879156765544532254063986810176981386060886497768499844627715331456553285787620722640394918945108353465471249459955677399510922655264025485657503023759536794186910475074554768759473471525524801376746951964146535942700145429616511530360028490820568057359358285245682784939150005927258324034239597430865894748580375683216376012888649448038175443660486733600096604434273477524576517137890377647459664057508758283399874769433319227183981400343778882792992167022272683963447409536190868716834421862770971157251237656301823133569342368674037797282500998195024160207319389742765328155181854980813131545390834872610472556957386481360389929517427428815026164933223559708899868803200091499753325604724094280690942821105413403731227129821729415180543630729908962409502469225136834962626175357218250822619974907246038226941156544707180743133592270219197893995761598485699043411121460409100068930908874430405386144622992922784349611008655667379343499279423680453086663253309557205446903352889550676716396319456679692706715609420699927941814602931122053389655773818939845634223945719847524831538196034897503623155716184158084196457310281395856552673717885168336547540627898553033370327449502920798783224465576349132980089183434194468641547345150058724718838808385875453482546817859914510436391517276804929712619408123446105232625811806440352433058350260990967026703768243810129209193824100864772408424658468968841044267255537152852165518123028677145004069961939659437822942522062715075672963486835851684273151824950418920787850901574962971821467081343270260480948038662285295805198623533574179203874439642283988663924139984950614310780851859514549094858705155202036082497862112289267396005085297037613497231629903663464470384729438018021729626445449741995255742537322840326481216194994872258669123689532115878922930503909309311918506499593614615950795531229557433052431620514831141536681763234403021491432686738395945176240701239339243197597576809326953129963340026055870703306507964723250517230858374381958075551757426888909752127700179815484947441236425596414595509900849854190127301916850151113888712752814710189830923639511180551908325765794491864659114745360488088166224541939293290579810519734147682081158384217237837242214427593599742157488439254218922017737534615943098848985700619027744937900385648812998729509834350033805372685105437819653326455689118582302757072012638111789276455490039662184371004925237063113360942053270466398690293444608830120233814084192262147288394489459082158425873610646166269083120626374618369143419181304472497965934255429981890478328479779492104988530025344142500371884502093928709495113421513380676433994419862188876368864954316767002230735564507156351990810072193896387938665231287179094267163472632567770219551941097912772151788106049716632748467744888249586695277661368006104734531140483891250803986197351450512553171490486158792496062632839735846082409829157260659982294242647733559929451832685652126745134254917601257746757930040770825074676486163917247390512161293993132235551161030136078532427593113371499289856633633454118152342058791557781666777924144764840765700742844697452958180530235024638631566641220000782768161979907524258358695404511879916958164511405381691714992095393439295694369759873043349469596306774580951990614146359704606148723124739601866950056116877093344506313990948858674597166058643894174495850414426422134582346936113030494988742057397525198526472161728626573256609645763156177968320351559399006181691474430792305477304717017582682937652457634715736740521015186132753810093044796603425555894331651382710852365867596424477124483645733999849095502927217421646446098078900153260021553197600448728283826616354893700512241359846080026671364912751661696177313228797661027516795012210828373799364277419473301543261022756551920842877283198236286905881026559372370499800763363536418346348601597591818182467633218142213765229155707505121296948950652974985300679458883100585265427503939137965735864835155637261307317112802220511777661107294152800468666458506986536925796575927636013028540544185104141487520346039476043417523924369471057060013449705057416442188056278459497969469147897655452323425425438136175578075669907331847750849725895296105382232941278754348213462811951960869221597309288131040069838158156298352461286994663328977549389108143090190887762891025537783299905169903101536176658879034846136157451460947639062648796619076829692030792573431930366368696499238511184143713798368746994443713802312289087626139147182777557014374628809869533172423606083349845358039510443191167451255490457694107696022112661284573140525173765443561327588710425029433656182096665413892616609269865250656205654220395413718358402939768903040910000453609238959401881290772275419980766639315278479448186109543317558503194621897495497309891822713748854953353119058447971641924711715402826844498849338478259852686267695238554436238134430603298452932309999742527954434660058691541276937298470085052851109682679135163837128858771868825373368288894212857837654425621295410345936919011850148587226439843023584953802531749578580930061451612065316004232266953946087491061110031278431822686859706240662004104022270174732792590057636171129872124938798950778486319379985988331127713242535877124121348978922920357160631024212098549722358604108214319113174967527519942167126211017698401179908821479307000038316846274537115583698058043291821214357349058534345272783783623872128095162059729988280380143167395335853241211675325848703239798839795394555784547474181749758475156433452479240917071727071382138448024983509476599298320839032283802239754863592099724229356525482157550475727101226007464200158982888458151068193279848955838802501471601963127806598659531087215038427993884172409171937247763522730765549991206975565950976126873060821470296353991747027173363101613966554470940173017474354304475361246898038314081605514782696874364128379223765990509130961910522907806876614285724411491232294867913029629532533566772545879228606969762873220442054825054603602623378302892191323426089067456517537313429508571162883577202989058035988277097072692256074642316960133770020251539534713125616591751455005360026308877097689015719838833027626351761409362287140296994309185476178128680457421746056268961450394768487787046662002111288572320585702324623899467888404798315905323225046187135362245876814565249311834824290827385483973152059448792818649860074193081712339677659950777753529336124081944319867700856795632323616900315401333206517890527511502604420904456603988280864959634088562204340749383601220116113278588373341463590171121320820797097394045973034228188018820576724049482277692881094064258038967726622776781573530830882044541619564692460172843084138977016823360157565492907890479928603839564813208418384618604215466883678473794485092384208135184708754595574863333058680063069007076824186901745046755920845649733787215499628238622400213196222852983208249386315587470165969492524211764585062439693334113559646725414665909402634916687749694197497677828403945633480350649982448785747872473243760375449169725120368914752528482713688839887080079774860305399868988517860620127099804884021373326703655304551451262448998677595851706303736387191734368443082200504348432675392557178848056984709319892380751439114170245665756880745527784626951318216318420329102318918213580785085388495654117419996853668309667457596744509123322254713215191924721493288386677910381297673915226616443278044337720209020535312470985032911459915320854613336049378188302430310694806232209655994727880517854331563526826422140900633975111803319730455211887303557772609576412362054012073638957109443348660829825539437443896851787218093188633362994047278332170531904157404513784761903640097486788080981129963950912783344401896523183525903197606878716733735220917247859127391308488599007220594962474032880200792039564762591703656877236398752389716643629148478381270981164708665347899395778100782540778505402003864454255061085740557957049478633263690813430800564168462299388136650182791935209394677516546802580608433560680296235384797702404198165145164722005302146880961862649053969389043888161221479200234688964986705623540005032520861343434641073543909696497702127350759609360783144581274751707418349602165769196189241683336717816012824899426064486276933012701553530882698606586410883783041253915427725661093945152533496121106830876746449712331683937528675110902292617771891035077522319394495957062033244178055496993853834096843688396272238785617370088966239856471670312749982171451389301138007503783546714537984679373414875719481153023266711620433978198352698793562791881927210776310163733482802072320151189855673363055222890543491627363270617597768689826461887282979309125721313068637021109982969100461587294145667161805238301819443556542941964480246255021445253766940860039791608802384707846698713841090359898939223863399723003021750809347255347317108401503950528010480635946849757323810505868114805820861710359354829167616484994749032434851924817290393268205938754562364711330058918200783137834988851095146585827376981449656292227006818935159195334183049498100567588839469681101185429932502721038733099878858047426569617539169996525662046356281392079278518139928191646329091728558147254338965504008223594121461855135251288595094191253478025403205527848932751831347330565354457655680539728982575393200820313006780966433498990354236554622107170597837866310898923539163340193586322457374058330891428148517410200776318189233518655521529243267669462135896478172770311479546462881272598835302104139388610630807499030161121691280604035410382189155680832023473726039958062916348069071843609146928883305531404309654694759659682174504996920512006645011707786625509881582249432647636445778867787899510190295032143260604492833369818959101019853513566000597779239107937090522207850164244100895592097557364196520122128163419171909417814387424712133147938319127561191638351809860789678880394982381996713367808683149131395613823128234008973014734757319822852241320505894351502544532354769181397494997398303604444739175308320984264146217165133618610217065867649544520014668229646503065607365764609038799848630346476442379446676704079441058160543105996144853538648329434662852746428497505084275664744676773256172065486210417553524753882108435594883120351766923416643340376284402499753965181716296983199462640734359311193698351111414407171279948970759818937258715972977727787403217769657179676317674615817366649977514815145123464463366278016515753452231282277322440573216344926785838273281535360376180671304218368671794606424260405941798139632306693119597913890089147590904023232920993832022260008029879379778926905065433547138352818485414776063715063020750632457248608383376070146264323193063395730067177052361781338636957163832920465418812428231524582549748541616182308229623142519509295728659879606785397739966745245166040942355857412129761500496979178217645613925036882779560037922565388302708307124090854884819649983046078385769229377826818038896658321103824170813466218932927153330960035328188564529651975368558647226596620930792666568727979111831090762504255958933824650354177771154855947275170656163746969807085886328246229088843003924922076559963051629433441353643074943014569845230481250605106737322540443992298154097759338315649080993294049612799230521152483636012768746306793110444409896939111443837873482342489856499126836556811329806865311707285793278075280459883483489222533642728873502654882930179690994103172606620709524842429220672981262918907841308898606055753649517686868068131218419351445836626825860939190375838324622332493896066092000469331035376965101685066108222404279227206100163316649686950957353767921374165471468767592464806347256048118738597881541160341446144820432815458690627393203731126510973279360810931186707932394576165421597094024349139530291247547531283070778003208227926736469740807024520072941652188884602302590722827926449179800014128961053126863199723898786412090169544382327992033663000721181106881605510556383251764403443912227484617714892289190674017920134034403818194562016519973684540897827615248276929918247346061437222969422007550908697830128115382949726881418846409759220554398605723255876581334752399949524864998550912112079851573217046836676756344776513956268079558535785936953547490312375235543208340629418745319549100860213976513051006620859635602602023063551362725107036374038875999200752267809605583123647284977218791298133680345112663176091566766591566963178418288863820159247755403763948540952999180031150586577305984218530381226889905763548643246436338674082163097946835013991691150637082603386850416758231329085464921551212544582656024649453212366582598433612232698358397964925726493033039212311176648573678385550778996613708990259057388653441579575114902273810531826180248041983243325033945424358320404708964622575120272682420128755416515579817027728738067388334508397397862447091368089154520230582181919746178612033022782879237588462385850924556493871183342739115884400602569656752359301170830474873211291580605105756539622233529733971021461993913699438584134530174015802379379574161303722348819372358404694396645568487076860520491968156834141318430680298398195727998286632453459055389602314100665798879628468220169391581486180580730066863031464492502774961788221355662027779319149621664273642400029044107804385993906174757498116704942875439732797757298855874489106918005273826936831199110649222104715904256964937231103820245541622055808362024764981025546557168441928983270983512322393157603377744062060955478291573809212656700632355115818698096723185427429437349508424229110801033255855931906852997003074789162875219031909391136047083921362468229311746056581021912818688232161332486598708716134625586614716419903197424818980855079113544438315666961531015489001864647920089730022440081751207015112764268828644267509903131869985890077559850191525222283220716046742818923464118783635741402178764534817611785890672894849494491773726924528148523660235144162975622430836224313646885048950497178143963541591783923826738698199110104486038060572285127009391848333486571788084822544111115457401998211806949996175612431087429970209971822183238132711233927666564076160172444679038191840444618082014540661095138811926939682852553098462856698451656745053723063987245140685432053283059629977762250177475808924774628981014980021737460111417493535037947715745455796543578870709779122517403401353682481387769281227611330749697869917271903783461925388418307543287839301430788803449196718252085023005281915229690018826962301462943627839584842310716943230055363623177302079304567224294744747040391127734966866404963511309444180965574794895921147575622895618870887363553588894744673053705396640522300980425337587834767935671870862518792022281103129020648324424661436561184126300971411614851238363346449683750369527792010507301393623104768411249237895317740363493937460434002538473368923158799296884663910029897206772771984902348173815278966653707538509016344893713060899561691569794312695593178837157935688459590283805911281742087792766811721441183847245633657273911432531255120838033264164147424816336474854162046988748021661264580922582059174893631386052423446776689033780166680839083269110859120790683180728710967732277375146597213332212147088316729015075363716782535837069820765962843634452896676190686605444345088886140785697350254880451004758548314324356632813987935178969145278310226088353154053835797908710702779551374680236858935548427893558427489026586322311815813581332441130480039842041222608511287353626681182729493270328885213846355193847311342782527119228781700992832418250574106104443970188533733324153768845270632554244994028343783058060217307485109958568668160938957370506087849121207033495218104481147206183601199609515753799302972667453169935801639885146826391342489477221849651664802151195766425345264626360437965116746673256816699466868841559232933198210468583172142565376211733417624844282638137776284564363026843135122380915434563361484081831667411137252195538539394523699294331042417045590122007111239414265142074572832318271995594052547613567253728127357129170647989493928723112222693461248426698817278823642091239601594724995631137850734564738000598180339902513510234322946435048363253929966671396079936712836719521291041338948610434808021733764877020404224778190001941508542104220409442684348232269410904660337347850182614465171487808486942038128248861676042326033081568232594535019809175975877430165509327127958560481594776651705475274764082968067577081978756504718208851771847106257145807113469008565732523945135563991171016433671966151460347712307387764164950910088157742288711674841676171422315480278502574856348349332912371219811954985813778613260020564722918236816814508765680336022633279743736501895427587906296853005881379749320104727222175666927899602679052687072322593688286780563178961166231104013087331944731817394463747524953473639812088207126413304319401236936051616554018247367923267647880252442221840448788901600003597788710328388905539225424894130985560729744365259368256983838242486481429047679742858191619030300667759722335402789377124567672978405004204252177283244279230017246568108995917865705904413705744283339309809696671733063147229553537537914382630885338137790990086181926774491205008647903327715752365516572696624443308995952057005456403498392402412110004576487589540840215718442240440831405552841337256998632375034097719214161284564210709212789669270367178612444623743408443080828170196093666669695240329858594111591854098305513059035496797757113670321517330895798755125089685220871125388175582961960545393260665631179365732860717170658135637910140323589173504592874864711235075230319867534451323379486608227482282349413100874627893005274833899666496742248134188424288684541089625401978040723480201640244367685974194572713764466918402600465221129737277408539663708861486531146537980371146412790838296708543191002820839238598065307890097926114086360381503981210309282035044422912351024030092585645919760490904239796612524954130044081827412467884687217975135069327997014607549680715887689950062601863400589807335606120022831265345956124822424023404409443727683542508660491440861478787388866190515515617973565553853918001079233897052064529099318479248924016904869811153477540618021009148658492891283212720412521513481838785093913937486737491034363163039776367501571876621179758056231497008564785616830666388062244877115296124798858051243529402598295624831533048571763727438973267461984044784235917383888207067650820985362633094654094142926055756967687823262772474290416356029469556018756918951326752974309127515043291671955621886073453370342426407535370615426708972019402519300648005624119190171851612975072336445332785282659633754883934659940826693910203097088443336712248019111209885813727249136454995065683829173016517582937039938108350167846253958847845336295264588603036362633794021213907210851322016847388965269505584288957382325807357567792088837792697528964369123184701558197747541142111978783903993906825526318648115335276149206943060491293880780538639181015731615228612535821394776818571055212208376447961666043549557623645073898778335675995148756946061429008376753546333592885629501520141644497153339067509246239997737391236557607047828997081590674851301980882402745954598764158719299514528876655266679216749685277015363596066374824057637239384603723188571342408789008563687031324119747143169122202564011321920514072439854268293287397096049644138095946414174819339858086751396919493662822426152999628651869341345425596981809622851192762551856306006928258536357837479542922338571637305557855301881112292046086782926892888891307961441759080166298026222349132300890740754190064941893246798545195643517403510602165103545105350308126281215538938959676220443401064011068887945391959132054065931934433142228640900702999530672502304167162022486761510866019477466343608173983145212177561580568105217672831339111518985450983584568751902996791667087656489229626310610895570720313193994700349733531287051743947636616124237595446624884655599172830382024580711246276232753567224594915544995145161192219761477417372061577138873771001428788690600542050227262011838966484372599353236457677234753987150482270393680800215390890297597541896779891853645354841846423662313200723680972781700200573797171342402910949254380697306006270209485785563100422057044724328075457263543900594673282899880905542716179511494009538175719303847500847496606604745147144047061057635306858409446502911730641141025661559143867294805848956595566056939045703040687337012158673167677750326762331741022247955686685886044692613603271735245606983529275171968908755241503611752587509782976595525402878223569080190442351778315875520209058530589764272994164410616630673527407429462885805531407855523320070794796650726347082274548454785786344301342884847901014658779735161123181184381047610346637490466653769874300024288138060293876029799236209278359367286053559565913107399786997433027203128081115766597452828863278872651295792339798112797571622165391284271576386121012358247696271142744379552031592789842036981429934812911066430169397077922097767900425110426856650571083247333879963195084960738899302082622805422898634639944855925587617346514443137394929457156812808488625385234218832084225376596664106305351673370793428729966310507305150201095305376573329070167345835697287788470794085566842014342611363558652264184650410988476146560590092975362750682860951714558741430648210399424343692463018146356150053288709679066837508295198156804130481921169065068158874943281618353180873998060453471809855749037300329836785786016838761984648520852084803127325340630052799517018987287869492702235862889811790583515587041482426427758532236454255040673851024204713556926394886544866231874677173775978852051351633089937922703089167753173229665471838080464468956410425313748034578495672677222876224326888964868446745332028170896631551854060282517896604530248277522560340734537608848705010076026215555295335221998683260625102167385269442677132418629493505103913650907688560843561661698198852844950254093791367756219590680151325664335054971666424859850392158454764929396758052990438325300475083563421141704145615525380245625571452343029597259331322746294158885534255559502211764286107824613795902645342116990802320106289468021366840861779202301580515726221924949660812318534683736026735142995266822247950529986317045904570682652450162840620841028584143718523129633074928185461403574467591222069448290913705450813099416260097682033085875386581942749256059540868507014091367086975810623280604606790782142916495235448636761208657324098655626393609155686817439426175410591954918183507534454476502896949983370957341315315978097446555939275342934965106983571649035306032372272557820807620607049541126591477660348552159595914627292786365392738301098471154106911200321012687556664717855829958047657362890906289495574423356026307627261022035786788219106909906553872166537849596742592233094834693980394653146051635443448214004842948888466691700780476269713824932934305841854551169301366011226102194985860327242581087471359281301027182866136449673014569271986525824800128298208031155365728614674089851616202890603641281663466472032943149650208445860485471365760130613359945256080376810106304319124000931821410145668194574786762169638992516259502415122388971013429376345422620617417474557337985586037499780132145363320438123379456005168352419306350319201996016389627149887126194569850798585756329463616322275698422540122290052965439195543732203491236460650824704376416908665227108184669866852049057872335953323039295351458780368660232775687458369815378330524135951781844988741726253801016553351658549769410249972905506169783176244042451052362573431485595545253697906575849424494221536515298353646250174977283905452849150846587163810672767639593770723757784147337560483714744192858729291707160134124084450908098291353300081600621360795118466787042737441461255707043146037044462004816186773175848069688682338525074077812757123575277198254763026026609054041517958080610435037019707656311332472711610111244891696695574070722174553811069544784004319526493303785340353649663899934111790609320069318192539212096807850878335047890945196568813902398533498212552721159399295438212325437636423640732705190362699347979564548512451737654744628416663595359694424800913896469846133035240284913641201057409653002943277748297243939398739422834271577147087836205576905638766123568761275220778265448002595683975077138681724869470984843644113320906890410109320289208339811309181857128534025827487697654991127352051437423644101131555273487745789145621514739606600938321253042545862549252660607202259168019759450907609559262724204700623924738917380098617694292241836688310186310996050206321863885801862782924858312901281567991840569372448693820940720772000674607175893752866377102695783347967685897844951378165116939756690101784721283427306604621299338763437472284453236834082748250232822802570051310653155628102967715363495078715333952301665535317308639220379623695997695109845432272334977360676923983192428847288856589458603332349402762134761024142804938493064613177792711258275244844936179294448935659112620191793594667034063786237146160996947596502572441512431649015829149127297759785550834199380606030247602794635673004918754444749293009667973029057714437652236308204506401354143485688965339116556852644823652765476715547346162815024531862319546257045991164798825597946461851386268035576552181096938908848855333129698181570361281687781602881226519223300705771183054236418777006603295855388879538540075065144397402374669773617731392122801514232437945985268101731713010716308328441253317121529580849170844290160810249699194125599736820788883895100160286254966704179110027901753155543562370503486564577374999248918453283550483050909785712897610570742251971241980074038934718816728164053453959200606158409261866061465501326392767169486199823393623539547631353559015053672142971069235487666112779993169346233699900852624584843476544779158239620984109374118421301528082072852811070369880098769651322777972891228956892567096356613172547113406570981500789361696549396933866005196404186889383164038730098880392274546075102642372432159802184611127341092886324957579498738352357344248985973603112789562471753326365051436377009245836810162887088346078201975361636684740299444510375515806485904982416419087030168009495471704440211417536003050564855421454452749380498615923394514131457959944809864714903807902375563961799766625202222635651102687961804621943304769810304483883436778417365853054155451752056132295341307310141447767610986595549229075909477589736072896244025852780587422806083147990453130468753090557624050773533120511895291134547720658734899479612914684099462484699357306000033213364093379927122248486499620720054814022002985063294120889448664572983976711057947793160687168985080088842082440040777359201831992395484657799670982654411442289105210168934351555642702394965170201758528160652066129893461807458513479154782150302374125065791431845742071489227241030938984504031488384854548151425443917420632861091108428003713668820626400214059570128830673378411282648678114832907016367079953354144389903568602892984136442076630840093478413828769078900228835776349394395487094106167603400340639416307464568779097648915589985276694262037877221512566620197226472126631474918599800353687040301034457966696587689338782336313014916149353535775559374769132724166604668501888868731987739248019662553953923106263216660470888266656049595011157851223664919687750925109749625490587193008132201357936973312110628370023986119422634563475769411662003113806439453178867320806416322311095096179870984444764786260462532593569404173246313455371204355655710832919295908216843760157668229375175579039013044185740692883946457430236820316863345113434785606078771936555142067608712534622877609831374703071566030355721432026763085781032493712501931235348691603273045068387322284007682895122949121530538925850371532198434726316872989228376536788956465836690947167815397517994996230204242095801327997928684143001117202954351434941969699251777377579193006582554708771257642730787857104992241635800941799261157554365184751026448852803849841701081747102123564580630852409236732508589646896055051428007975590633376434051053269165450035741397993281500744952168834838923720439276518129813835175228779251508975034996033664565616032708911886252677370147461452416393409110870408850074797844762270967035635411263098636964643954978164265795199276228807265903346527675289074419781476482183037363095999030472515006221793593309716616445919234821011234297131912992989934627741313306310384372371436286070250898724167859881926941918657235816611275561308597900213915194339705009601499333690420324229004375330666289567180199398857285959555807707728414435357637805328420001892382941520859527833780462405714421339959356630458188457459147422625333938880695049808681170225949484342045189783012834262589250539868205556435373425185408610976881974627298584847331578598867708072320594360116087818874795192259898575097957535519154665033194689227519859328266883138061344917191004750154941368337416215377597161155890907814465201067715905955846544024929238838358623361872907667558863798417656962982484455053010048542386807863304391359110698341654858873875922226812042986547179483695937631976149370724371737226638802364139149512775948848556872009557141708321747756783249116802028776060091462989614859886451574053257186274680013888301665115178199200431454684180050628336872004198648709131765365105973387252701366969420600582878909913337498499820922139175113136022583000198697753611491728304063277505878583976176470231119478023359648699388446803184630349091811567992593977774307819041980968939860313074162167617720567138094739030588735147116433165644683395253957350723306484213800336073790902080053904594271934953418610685985233250422971260109644666149474802702619220163345648278392656731585183313964048076011610054001293864863841681956195880631138670520230746021209060009423113154768042254090191544415000300016271848510559803498947010212827397548122624502930322174461739417498375966859620502871925087421227880071484357583190887632404875458869387596952841701277390187274934061608501882931907254931016730916837649293511277956421898257157281553027847715758354208618445277244244060564941554123431771735624255083458559127626839872287060938977808659505674254127847078297625491304094980878262636610670528367264275204068047104574392146666262753222044249392455918118329345182337575675695199401790644523298059447855376606266641102751406944047410040603282106257676259775981583583272449788832037461824537025732636351673014459844293510882202242475628985456872738782307592060774746585382912427161382869100182747918641786327451191082262419971979899750601665399294078090427614913965471387690686183583289068517517458186776778631767782072997875819432887382428444172985966571026087702844256604109218966624976483467989931558385719862310303338344108495060664019611102707820255705851831819067250448858995857814460965798302918271406701793478321035129184392546685428083230984321671102127645366519681854685249711213043953218951733023796721371134882218206744789710364429661335382970653698031272855472883086963536923564715125244408599071027102001379671121650337903709756869279758959916301849414588293075106181591585520031843289413749082525703163932012057629196673350953636319471041111966447518779790291072010656396495752168107343830183940279517937235381660517802571717299992517646953217963669048101064843945656757047173208063522958297786124123237683359071857845770554166938281296512601656878238559138598466343109823134602356139327901859227953509032570700467302149087633362755355695994044631946083598123067285670845516281018101151344307476047512158478975473221165622814613616396561134322007502161845140543916800095661363563534005629677225966785932065671161910322485902782800198134209432450665948444169200533197278998099065119764220908623923775580478293989351550991987424716857070675087703292359327781861704284540637669256000988435464577633218043120031589269456152632413644704597047422583009721694204228613890382359383927900576798703293421537542849996533978052250614855798363088468922633206093234763823952032460212975656979177838424484117446903719573229051687642549856002268719511461216588898563066119796757652225725233216427257855896289502485825550095281194123509069511450374867151503613654702875465627747172054259285897166356593989496974726592177983678361969134430171409154894454624564257706810307380898659972681153877987871660835330311721932845338277843619618256407925741873196973071709140371918879616093013685653524177693476926679953878257275898728123173447613770693342218105294641955733640653393453445047782088679409394428250917730241082570940534354515082711633920407196942408385033430734264454940721861685380394157052834512257998936124016302381372819806601136703672368846876819338240806443202377451408002570476515599000228876302209402195827379031877167808713002655702824109501643484194469336761613385981197021542678283366137479716458624709508827989155170827208402642122348788587015246142178328976897661630302060030001574429963010471903438057957675632393866962512607978998862624751678951307706410815933698713836572732664394384113448861680822448781020907446827252952112807734804619741982446750919042580173322410544502899733059696285827939726789716853954526986451143958191650098474275690771262367949704721171454061760408230560195306465839091678635319325351937839165215422598940661922850492590539238901090461184675907717373450670431754594458059524748872647606631300854331662867811518811097534135913487281119391888173931201369058730467990723840047796999375930047170996840979653705644571372160177117287179764368580121361176159170157215236426262154331199249544551539944082974138377033435874334016373977828292107032433211159583601398073573171040105899159983666912485141447934689855212441305347041000113854076581295616915794116416479914765609463309635516433593259566541346313637178086071874777441849090724375791531518267511212309132926631366464693278542021089746903713127001541600421250832367757425059296875685028752008910612766262707022893292974491737470742251246985586564250947403727709407080362170945729003754062833927853300160629780157203240284394868879337717753731806048120251409336255807059369347765471255017023201445866418607135864524675555066811147834477360851648758502440454404644066141243254519490173362134654133366849017675320308022726670273256963159631136488904088524191805874085495039756016171471000014072815147261281671627035174309732078330562469907393667557798899598087809752961936110170670957748356683172346810645549531139897891451736219339139050099286609987220864893201563443270815067527762102484406174823255409993548061342967096560940098220600324005377967096460747814388244765065553320162564174886525878908406723594765549448086817418820592267345590783587588956935023672979862217014481589270007395562537423575828562441968412405358195112667494135761950891005875303770226371053045083300165587325388916605564142375580900369670521599954712106074691720214018209339591229426745500151500300264571489304620439166613672198767365098750683602429736783899807750751472219590744201885338814595167154196072753416938021917604805776243394596002723962029808865062495003565039823409107518507196976794630867296189431352541434070182871424482994736827326262832272741393022780378838022475228622868787968681431487916343358738761589207074195976411735561027185354201095790142303903311518286171176679666264675880676417699288464985356376265834828756595392121461556602976740127274120703540137826871419564153041088739962201498349928742546843525515825079019471459589973336907647805286488279542901932892183992444753769293687331764646348892071646271775443025857173106430472171627738245303246930818188626442379571635625717379862277839804986535874883434184196737171555752000771980330809600815520263908648190108878030433814502550919073432036601877460097840513035237177889674007048164411157477421273791869020858571367456918516525791053468912835634339248652350500435288428297520308462335561586795356647501073680799796708512558315536268071370890422187676810898353130436496777948927065943436930085691999896840197697554623829248821059312882331806135903753475801442141258746144072195696660956897511978326634241397338984159972582814094903102980723749687226655018234990520099390472723988968227854897320411057865615555391219794126382093272316138973945340154829882307947200879888343789292834661156492095215006344243201609730909252676730568605240512813836154592992723606951740977855853908711585715718715711275129859283665043250129391908313797103397117400318917509805141741147638453581758332682560382699487739739682268762632325432428902094539321372015870721091114713758015232841003900338476278021325995022037041791385898292043837298074319732432780477483898685508068233308825778656660487911752558645069471829458350206464408859584556012496224625762469345785029518817599145824468288747044057408474509459927081177909623626010623743924044353247042435641820188458473113425807607489786939320660344373453778908382945148023825623394871855354376517456242781381602271818497290073031257466357279631096475004102699136242152922617648903698418840942349884724010572357391694410254045057886734941991050760486801424077091416495047961484387074856764050515790302133392748418223030676116404793398609531601212270068962882768537229853735427534483128112529867541246439941057467865270366540830016700966970415062029083390599783754535954466512997699299628382464650342530009629991323243577251778848494490644737831236762545831503550642674168903916778612229765460534838998796357009680275797455620724199631981879863798087688779567431995153386698735798180830304805764171567738176718171526471249145539587622985010142382097439661123976886251882344129234386153289097765497670266305545099520699404024639782938305213103899580750885389299678635723100980898140028480570198581770245455805950515551423728896776897859268675841725260905883505042844144281041387646395232100681576885074727184874336615788799467377416293979220800489115591222251552953953363964406779596992879781732098349684442360230442655621164159102324583259022307694439251338976326372782879515612326616721917952269837052816178734049281133979591365159161651833324971385387632221722931275064520411978522682644370166668075965396778036108112516346099457048840447276090464492917725608888843694852218847655663453366576888767784791523787122564827442995991172270875822852745212166024719316254866989040109875833951934417193043816565769652037529685066051898700655231828617458998940476749563307087356664763612640533616805407006507674046336175636946751179905920964562563042924816533133502033942701682882226981999294565522955452949028493641357059929802948934112098731089232731181676215849909554584247992785134572838829225658320658851199064393127693675423325976367381148557902629460978193368361299381486849401491272220308219394121838490380786334394873746964708608319077804961439563729707245227835100809551712274521533601857888278423531990787654778366790363627464911236297586053376019393787438999679488657457646615547111415442329424453681237369663940982257216203681506834205587892856875394291107977351460401102942614000127739869261084045423438717019581836060111100533117435852635181970386971244447875731363274852067003307557627623642634172746525030763589695404521078137016401400483192609036132911454595741607968022233292975289618797658516050515898151881374847234011051370944347525256820169187856286816676582144356568156569464741335947535943611747880259008801158224334238642740103337785474246795365079179967018106405594019088952733125135289031143106271858572594284475022966049524672845400180930967938797592678969047016613677099572251782250917571873870144236045095803518094767133268798010298117365558667807800700508160512301892478802889204992085645309533151967725940120324941651515738233292353945682697769876427303405867020172355519343243784493548007406277695470453087672435279892829519921752401277001848882218198392059236784149333945638874879065942179606618607144400014394111603608514038462814459174348457752699097284863479272147252596673790523363106244647989830071895638523844553621135306187905176926595820637792928969555484408161593046356615653852577494781235813833980839458351093279306452802215989295742338207861347016675332128465001657931263459321489486820910004591178665705157821303667829567195364473624810527214124136336028574650878628925763986615885873802593853310811147591608258800917042057345931123312414872231971116774234654429767128057634937585049688634987860820714982524972690478674922014334932035676992910486573230708230963773691075873732697771371121360169724553326625850217110419325463729300965074591900697729118441717169902037453941721598860078917677787274652223849565307061871446371637879549036364797055160368605806364881913210700609347714122965510528539005654781349734768470982389055713607069865619740784059629263249593057297224650403676114509716899559415012520553674371117987307490214165863869047590116587047156594735091322650725416964481451995198942382286882312795642106683425750460266051178049372646685653089359738625566244035695270056005269614970816108651882962465477872090908322811780060742655454224547866829277627444475517361914741993054020553290771616576405579564062407778617335887104888855903067092736813677122334393023951973196633450334802257684140669235582353864982993738895889451467182698675907260313511427021898050264701569728971604660929892479961718232513362961543819063965029128569206683848869052042771915460722050817550403534053635487962742051162600249868238439579359052280446606566301146760179280316393422742416724950044862440263870635649204981478958063999474287874239746266458971638212827923634351262695835628710325855941378975823957110567081350029878239856098611966546009061886070379931397955843053965596147036685223629259970644767793380378264171265103496466335865796460403861291446111399169663292643799390378107214204650063001287600070646463969510321284695462144523319320847116054542259274153613295312325462169392279772808332623183625164929865964166168933050942435696988688314302658316289799602466640911055456647530012037580835144876510238227695110490907624797311776946635030585635529560767434015077539268334529010085722821188203557467546965107716157741028426641640714013111351908972101361186727673014933227715707981030578024998607083224364521237714000174711290739655915108747469461557902231463207988555693300220760722658145842643314971403530199136576872710920732639969613472378892392854531893026231944546140992357239193725544096220808461214994901703197212041879190265776965175423584101445906511341430244033358735186614100082756982142511763753661691434235713498595875889826379975835362992154697222307680379656947541907940237505807279853823357818074266656869558969816847387297312485424271979189088314938016758379682974045800779435908719057272724947974305908539064223967854136539755530855915772591816105073136621634667745644553853752532198063012768269173073646396226041217313433043851230545233498487535553497091408079702075876336734521563041212799146457718063744666790954338669012151337601315350266366521885943566142364674982061009085243773006353307279124878342430268456897519983834752436805967977696115054213012355927896557705742905192854387042846598416419368400676829770663594343969673441187348482933452449395860712593968754631247099053870847331843492438051835485581568932769026473347214585589803131844652376734688708852742704850329939364718922759293255226304123090752704716388661814798765486159044805028769073026052173347191269687811948186984283522868306613679366993026734939495764580897641686346980732517522812045761895993806246968244451773780040681317850627601041213277362750575106652478996889886053245808450244503372947431165656350850054425598913633237196747826997404085075027632709205091567653492435776881334474641406452567754743608440512554256671927746372703700441606559534941213818230741201532377949407596956113491567574924281097167830955678419635874680130802910957171836316624232553342808552381449510047507968259467813017069414870805231031653779147438810380679502827247648261389242993272764385882457848382980217780838958666722902117896584516250858095864606893195902889375425666285083510384924140391963657581973905659907763477630604678503280427847393558122814466666823422281680613739022234146572303808086556332916874338126507183357427773178683047818870657947723293186707744967919939309626447467971154365287212942510863390379015753058001630669338684963025334374574339997565865706383137308482153880672826431414584918853942495713995017372854634985760790311888712651239179351613279994880782162561506406394420891216470701948392271849470490052319565455152055284467891567570965759579913770218789319079566201872549717104210932264546927521520385484612115415860221136402017684291447395129116954859266977985357979384266438892756506485673032966188056112809530835967220913653353592284547241901770332457665059626059315298949917046563937821388211998234863548950122002261059514574564871258261599593754725099254444313016714843354964575656594008440654027577561688462742269017705776572148677216862786466355135626903210676136146152249244988788850952945982649191492237429643371453747493169555254126730093724583295663327259322403196405913260414560057403897535263623290019789266497879153988243954903655247324905723549551248921105031627461498222882869526396679879663315266465041410477907646730472900983335883821139780246990359182405030937035054596746176709010671778828400382584119995354346942274469872941371844719523627368659198243932740007259299867563911902877117197140890414197607186032858748621839148652747821408951946652249763431922142266230292383634998992194608357268112218617146526910730073309382961509940403226217747087893130736115293194690415092071718258190825708987655904891964670755243747590246425102267991443708438401563133989689664231229409347479760378406729796806453975868340786884676431420464364946407312895550747159148131319586436288671865618912042906080220431316881624768202088562809074216786842840618126589784095175791161943534831598066506803004648668385808828363704843453501892065248375745057492246018435143714521691271289651754680159933922737978033017781529966280324021132242449999930984535072436914459813276791973122529898322360838319548155752213314158485718243092577012002852051903533810906420062997552819506897060184172067293810918955550412813286758523704257518698794717865239662049993655584506617856619793789719605258883287864568658999100444764750207370676653305588359122959444720013053211182695527817260748326094371215770936708597643750771588896625220860001509960947647523321796790446634978885327877567484191573392278279973666516526074402605337609221272233186633452445086052254053620900215933285458076269380546584033928100970709667069219078087478914724660995148418093999823328772321625922180727442334121583492592433696395212602151719027608909123094797901213621365813697479559925507888499837132491988747201729433625088900094438302098351305933825958103553764405761894968553719806488300182477483272261262868439677688832185145623598332398662038629397078429533010229289255962712456601342859645209653766817274246310670224983256833519669184686828497176505589133071966311073858632971301278497471261251851161012301505787664437699307850081223797142655035367188466649242354143602488630776372912049004844556626380822323543221528821765130898386448713927986481596133027055064936057421146430103517855044371088968051268843269796007888100061687528040313400673834638287138699309903993175257359303792957676576838182507082064913288212492447398591445149578793853997004700183251715863851383565166204200362393866372399284362751084829525570881662720161329197792883902200397000046005420597187539171971407251958187439738517754898273438311371440140528093653160077882741856536889804651068731684457844845268869259627016806752029705458961250503271825065883995729766470074334451983226580970636564287036748621218637209282921648619850979911981876213618318899724970644646303804346998007826409367313690511915986998344956144335082411470154160368417826452439123413499441424887971385799377558149901599764996577057075997331241701131241684826894243931246799855343314805745752265785068116903836434771254659966360320216149963071936174951619883385462003090039802168174875764595494376891966487496794480369030721855249409494584219421786092726276719224263314095895240921080507126049183033841916943992657316198568179917952265267310665185108511165667342711040872085835420781407766637720448427199336270327586737061301045256733953056497822402540744640779570775374928538503327995084770826110653147962335271510874349953387194464789596565934432393041482640900468861313061530300405843348103915068249506247553827272322278940758424895213874957828192493251907688033034435077585239292979222170782849332638605865366394245869383291552056223180472024869478202544951867033847321854293371911431609019274242080588687823620627956150934805517755738006857690421623265651513612534402379798175491992974632157706736928932463040819442577557853384466126223115683475741723341746635311655592936818690475330515497241525860195198013956089303810160462299761004317089638742102819878776662295810826669380543838758937821849948128092098859840876467470554476002071382734564677533582780582460326504427069869097901809200464070874595937830526545273535303012030762752199009713802824876789798045010180906487471044832765920083843780646254394518521855076710770636722044042560632840599104833605239637191997219103290375085393455249156753905505474293757649462570179440064352914578272973844621780231718579822072027877888823686810009868391662493338244210883234588995684370775073873887119697944911701396660151394362805395178797163927220216638152221563499211401409631490025060221747939199250719198579461553389507642802311039885254124209330485089276060726705389583256399936358793704449747960991161489320342989205688927142310683546955674097701774853961018112990568758971338066541000326242057040767112422633918923776116539361181053456119069768397781994215634489923549288110340506400382446101037056199540727264746189849916074885206801856205863619539787989375571902816836636302375922097480577532594865400878539232785267250451272538171251899258295025077406111872177955574777512468709170989818986499139581138402368056443856604848295956786389674486521779202724106898622306862411614034134141904400492119166441080602342475941526444946016500710578645982181568012169175427032130201637114785938587407229161967544780170783491956949066879063928345655166235203195488490203275509972173940277107865443437026266184195802942145644538560737278160636633807322297937862044433472725746025145705016291533017111544187640903934920014849454873969858152058155669951029955220227231493238663503915205983910408103592488185023866402502847605022300240932848348955628029402336715766787485445387361819363226626414654384283369980246025271836414841662246981472009355334666109801619752782452244712866885324237326862927897170372661448118072765637871382224029949985347226039970667090933369574614006238646942152441027800750625531980438189673104104313942008030542157837240091371340639491433580571282186971894439909913388353805728669960806000011724760798962737711753164822551517716506594389893134221074789834867078808766609659389977644609210388172156174732652729887612578420563103286509066309715682566176833360627341679478434271952926520185589771523115551746751691750771881836676994609278071920240242116193647230720192052496699008563108093641009558857949313660147225435402792012079571960529564898685766274380032065247930323549638688193960177062944740012460803733446260746423616821512331876416097740111826454468666950182295392125642959985150919264898110796282713775147648911177947291773210963786287235246381430254039229158675358928334113768970648845437553172636406630795586631189259805995152555815857712019425026974775950068222409738037467734865980529390600340148502277572810152827891723438800711163080294729410671787909988043040910476745642527824973718957015264160522635991333006239008901454613464238369871286562895153019170543864588448858517805292272443985794215194382992651294978634502013139305310141341005249135153834598460094038849909550362041216739221297104495261656074114022280590265306717705461848928464149053806874301679106519724784175413088844300541352581098390922067092194385503725184379441421551303498852996676007365550494207333462722696810983843971251798363456932423066577674711374747856287502162173446539285316912687680005331359395053868387718170054794750707160625296380418019806739845436081531684586280019380731075537556345366429354739072756766815733015605824831335846539242191984306551644112320119088272796756076447129198152983190415825507539170767502720326184983823859500554758617687780368056969539352237563409533159160610989282339937024231173055651543994975773860817162800509070868169930292804249271188311493018365614579675930302844593386951358370580125759435199655972050412330910130352566126676445324399202643502544276650873649995577706629570151379398933003897106889464811159596001907418761614261368944549610137111502431005112472268840228497099293321300960543158460400261804243920326407906874523505573907579624814823064521381326466681475133095048593823235284273084824918350811434782600313995788317183873626430207218214787908531324030356061114817123744446385327314796330631060022338238565386603461410664800916530071244209505744702223601162986475617556466115097721567020775727924490750501655294905947276390452738563627001916595380464754529340299855985359902274090808115602167795812195694272674787000217987592949016820692398544986612729122129218882650201394181460872863012051232533828049730128009231126826638645932859914422744289563908616603336741809372597839256563706560207296499489922141350097555056963170118792447312549575158628830160314365887565926345295200373927535690170925827197945814059209616187056327446688030452220356414254748364006894750497708554865945206915531083055298592403616796056535628418329918186723681687962467760769935923817937787143269262454921483406846336935978901742274768948840850294333471088388636981444122179010266152482703127966269601752733400564146063939331232705484836209017292729535937944729523900212730249357345922144974568021300222472653557680136579420061700243282110877474116106579180359850299107336145005194239175851364604090397944961955187688200741309186152202773948166255956776808636535330525737727857043857456870434211401422339350404295766611913032147119038101981867715710080394609186349929586754993431854179959915353179110491109442888961384212632312122432031746395881465430820975210858977063386160217934564520195552524510976629234966144867357893422936363916204146813152620115543284295678604790855001081138957847281539948882024562305558672744569045977799018833518055505737212022757714057921999831016378817910599308155854993331807517320925591451897270600273997834939484800614210521257964163377134992685243925702143709235074810057642786932723241605338477986369667095465025358731392407573165037888367624719066978456831755914519079589837365565620988968934444253994829750073734102563065788456105618073170144945102691940726309133282136298208825644287634139422756142996482701701114412188953915362886060091142565592750293010094674714807429485812849872322967543768859823542781289384855731947575388875053228450631585688436856394500162736942274488702439847576452231189140625398543917298884317293268070044026696606432037205105439544747295311437403942590032519960732991162267408755842937295526378569329303136352969050653659677302381122743853365161912663597613983984912942039899660731210642020534832619323765762530027582654261808128867487372385720261885074924536506683760756546824624703087736920032637564573879417188052111066382220957664984034270165741588489587120782310234558921309311382873025064830887721278582834888521229331459631532584110390813979168293738519501611950047542070757808325489384651008135964717505110762566801146844750584278955680951899877292788271955003040208171532121087191055956856454451822147865029089695267782517964773823563473576376667055197127232461751844621715525421328843033291194399681783779578263301990283067764394865294017917301501138228026173068308682831339249484397997875757323969948167766635700522782214472500466443341062693359381637039754602170538942986240672712744128638169145171384414822591631328758368528286568065336778075062133849783032640372156358960634813697216658684649317541326580399040258652997942138186265297626823818200992683758380088620941719255098544581926081755830616606540131914329352224967238167544815270896635199820459192922190882911779460165123911829177135220756324596314159611644931500792321343193196190885032533992993455940395822131817980301129172097512807584450045682685297208035670976733681147840456770861103826138765230842227355868137705032335083388243923038091372243190871322388049519043605340881170917067786766332940540233552411298301838801960627883856931462618188994336937156423988561478512039883078448432495219561694273487115846889912431185895511516581882292028404542031214721480090193194132530889188344488682785008990250985085416671963050834660870482217005048088248875860666983078360472081438816130714957969187417757914445285668355688656096664936466599869282685294212985074087279336922633535257854451822698807468734404689509348479883837567564087345677882825438387035233970248379848988118705587565059991070149963956625620947078414874499821378619525473722256064260203220472966783247378517705674097574770321639592665476622908601843050220268525202525287451697201942428920164357138928183968753352047382662330160391260762166328461470456931023722647188201848206033470637524676507878962216841569267363325791764671132264098764652936607698703684689834728673216337221649097763308621168267475724259378032987503480284393005112597943363726105601613519631972845835248157380044140031891177832321284523926148381013866216739424854940688587076716144175993891968154456506301691329828721562520589109838491323535189616641948956608841463538847954764667245682441864667196309060372442092122478958597874852047468755791555952370549887072563687087018480370372642639641991475071286685056941032606079150168757942172547893569801923383090594530035009184539973416190391228035032719118135722039590063821515070034719882651336025028082405800291273422239224200184776611853839405146137934680955185924885315095004552347697171577517328577442458344897242604422730687046197601088178995905800415445411379547560444906664849009006796521718714213187926722835112932619995794865234301789656551990163088105898029496076388789556492158576239985182426918213175343899253292994379387718983395865610612844530352947222510103999743198403533390409148497380126893414433595402259681955662365295593408834562070747280872474093723066210498179881504182932089821977368124794518070343163226645227005645966461896781772136732515913853102949809408241251813844946624923727063665841101845384310383239928114864627586386489919442145820289741203482957838301129007824577206085726879845336797524300818075664281399124268529014705101445701504243213806518966563719214127590047258078420580979584755857705803838295670232848229327871768890860820167650531567099757542736076906651926893907837187034902663127116353653190009122257105749606041363338368206118002861117781400136018446177006766009775848367073150775455391257568804420825732585158727818179100761391386650533920438606556700764415047529388533499421741718143801433316651947329450084447854077262861264974683887989671108476001865747672379169261339537848287221548930754525225792778069988835504643940093507175005449860337653478994397716918856157207446740778240488412616286746587027937389663915416911043016497197682274564115784183247997672467889207251522027614956299452991828296283453399952180687977282239945111398427082536366489299075210074614330312352096548358086360189240605793795840841731179162383413373248615533757605766190828037995337925959828131362802292904616775513363965655946329316012360041174315872653967476351523035801807228698633038540426593680184384438189853072833914745015518951876406890503258356042674104412641678211372834037626306552632292772337702075229274342126738638718280513082897904760749050587760247967628753528598982402624573962496263034654486239959822824101146086857257105403338329280599666272598462801948609591208312779159254824386902677325827739183874934061242805104991053326383400261173821946579584449784841283932241876923466974231969197426009605959615237225252576344275910991310782599121542737512368418939671189564837314283189809800195230516838610687531777795075645457677589704462063354464027555200372999868996797725676477182661262842094413848836117342467075822718182881299383350002692707095739612525677920094772127242664408418619861954478507758468185804153159187216695778808239811921290883913607811633473960689076012952564140045454278917857637042521067219497871446362942709871848721116249217430742042151968456521039429360677575540950529685464041905246561700664637454312036250184643425707127876165015002948209026960036941962909238534556341261874099163684706671309572591316159690542931166138308083018402213347947602349305827752012498209205941581516536990665869423331732839187535722133580579493306436956369276452062188712357120112947837932490947496194991573859493428756830759717772236710576578665155934083602773147716240581843009177273595656769650407951082874318638458945821917182119067615700712739091602711073482282303602651674631962905333936665182500891654183604872239304772879041593886422738276725047850228092197236757760400920008519336586709700169477848352385439183819078234006000610217651036630433622285646093066529869996866972749151742292079648952207431156474043366282966404437074850207641267658002541515227599478036022496501518103094687492951536402751547924745396147765816583642124863493640152178432917008127587189944352065091100028011252666048905171721765219148556902868437640912117411104039422459485863816905576483166553308488696037643812418226093588972440572531615060511047618384152737618987249195366561020163853146441917210068575205040709309630943393954520250807857875978253424333577529687101129232663334681237713950265862980019423908576745017507486818122378595826446329167863166567828035758531503101483536214148212449540946931531642403175928223005568354611746781451407817303033555424817942871913458339786489211344852246317909338096167472341735023382169262525490968913277295863822747567158517159306062336939167539453806320284111498245114294935589086205306663772249795353728616826205096274827445841513306089481273456037079077926729873521854433956843205879616588352396239186607798076205266577823295918442655535324573146893937838638386444439126278175027158861597574713764315137902181334670095849272126642592520104831102781903896135453157045975046486279141753599875501079535161564165947687180158758097624322541543986017609381740979158218318869172535675661172124121589781356839994866724442361817787040889015841641572751891803282007693716144390995961161869417089704116127235175401913809980674347385979431571851176723595928174097301340571745135336859304999500493016376403784382467730297231971951326131348536603553804533428821799114990000381701508701878259602325141659571942432939069924388126702600360429564998608038083610773240579292872826470612811644778549973714372137825693345014478001671787311659970181604755153871988706016769261591048295451650968815201374181167513036184813109482486436349231155906292470448599350820999251132227737032377971656996869588278384861825090514523526076996142764591216289736132950986992646870783833259082872823950761455711569864238013619715740482810471103929454469604042609826051871219797732528771731375537433363620597744315798817425141303050001004415154076285906073177091635953887042952787979347613854786838846573277556483249553804877642460799084708047731438494389604658004584306781171475394099747934757475811601836584276867285562939136146192108410214024066023443810415803687890505472691995419803203787414718792597076487317248165305290087236709552005617226230154872486918538640546964338284508389093434969594502193455316261272895785733487282948750445978089968583055707250148556755507525853874113712471198335789397359571947237002954804296960159339066777341760775661741127259205249966244348905561475800937800225348554588048284245467799805833759431509354168199101647154801537770445252508858282757564880505600898373344552281436048067159172545377419541854339153159885512598335889169739010565664177003854930106463364140731189527956873371854461046583415141668324170629996144373701398612481202370408289607787048037804270990025952949851774288625888621386655414606403775958574637723338109969934587531860881010117529654457848794854607308005415319390997609365071584588277681599834600720561239544024728623153435529304050269773491707171647589770449439478167434678435123852625715750641121226179610583349289024570572129624121797578165574756591338865457609601728611295394423781609407826193489156081754295924966331965718100687240296423994845532349991419510805098908348122553121253021781914199451855982787188673770936960540410546722227806134094318445704217227455958047257043701704504634792110466250470751692688125153282567811494495791892353169753236203476972172399043747741538892048863362524070399199949078340565094329514795427526117034186080517470872328054370405166549797632025680404766816299598059047870408514037077926848119081024855078581868902207270339318565821489888111006321550431311320621433997559299901288324685634217590655122964170795598921268923696721860133378537309528689524750607620929414731951467543663746615746675269522360286766481904787476630024690043160082857731871160419166457719028334604950035838745326574454052656377497270868151968294307157196450964387073222497045695143251571470281892238847437977672251531735995444740609563483304123138216029662057695393338761557277615137052372335850452821417062443630209316981156958110270739597779164833305759249293777355579521109337519861850701138589430982687744746145246959948950429312625133678099027990629607047759427702810478672153497862113678208874857620378269025585931152740678097678030438384288964268610523554930628079123822153820540393404762702761243232970821950738209291991126033078841655188877719385049526551850729453045830155049127807736552132691656531932810395913010712446955880221768712723131691183627732937074597001429762682101559631331634672127870043476089499163155141827546637337276099646947370538896641098678222920097498675189295688551168356295292152499044647931544418488514105363257954881303194330393249984355555513267660080845572555576961668302315509069238467190841636933121916945835411439894437470163669787011624097305272528961035534385230938318736791785156339406422668340155370190805093873866937247281311844854943486309592415988023424375998337880846855906862679405781911976608632295621143523821272661290792503735670796400306742478617687796429362273899548910909669807470014835278111701252841690191153920158210016350883311268685229636669273372536540230256995029849972223124051028455395914304457379391643393734456719364808393015198134564855537869273453846511685453380770996082908995099642487100566161778751736610433650932358353270594025819854236803039487242498861667330445289691691896449181156881051149062768025564860097766102476592617838904623520089240654735685599406347815230536449613798152476999172081789735368532455393957028158405235939490639909600429213177281349082805848682188955900450867418661255027172857184680717877715486356000195247067416745999285392999890623238555335322561147479435480081920545621956294209238675287111289322489627039486438194411498986207860848224194852936276695666633501546471686746053697063749932067713256180494601063904711358162222481410330170650067348711654356808329133809076391069593139427108540888089232703788126754979650973056186979026137449277974426003589276744937003461878987635908662119949495677093059230050279680475546322101103372136797943565336854841637348082673038619620532118685747072413721161372023826211864742407011404276428268923185253189513030130577843256441624899398235321588079318294071833376755390545907204137684796050145079206334809475223420646755142595962129638013372677602858547319257537311773835299919623088835150644707836524529118104825587301212722999544554482609398762732927469539043457479052165951702151689613005189237846841591070860760899744399447876848468080267840205105379987922319239527359734180458261446919989904618172153960789637466034653217297588597240308224340685348329180221518425748361222494263271322690329083934233043892225052903861244914700202572577617641069026151041589347104373183923864719073150301608613835508268511574627167895124277125291399948697577726883392567652914877642016310081171103868482681058015132209734442847347666486962102660688856570200726617137410016019209899107161302782888332349211171647477570617363643783326656366726942243171144864694631630177347213325120757965817365773923635744916477235712321830928394177870644704857917914312172764657937879739290991708508708380071824303434697953194848246950042682493488314302589061516519482373739896454353633096613254644329487759383634414271843434120298948344483375612338960232004241953981385477762864350729391408506368985211917884131480662584881312350969247863854927200317817319220425975054024392213504342062933837904614733493946671376043120648514755422471929558425014395717205226980097002716257175463015691134507286984413345504325935883692402070418911641592401188509057818889225769411747473160928790531388625359601346663667677081757421352749225173090774983482616006042332495351532759399027293096023021634818056705631641035555829655174684993796993888131324599437145739589247753897603404547896710612474381499280459975862993951578866342700658184178504166891437394892249293838513168310345439533838042864165205804801809469106638435741729558984697486275853380083790505946709286123060659350567082932410014058552772568662338699212431126813478104714299792917398202490017863989447706681706208751592683466814358742319856100283230502938346061290650448386117715325663282044478278688280369673273471063512374371513925503170131174067968167265029921382419585200034170046560768056265298670258985223445246526941669078379186654267179823877114578865951175629725927114081672672171440877413860953326827979096818945164834207270946936068766806521527808891204557488830861342523954153429856724261414969375334496021915409776832624581122755884544681015679233080531772201804280652087819460963627719181468087547317267850758710644672039616482841998987054278800180717500595986712374840610585544533899715442639180918396528292595663883699330195880119700951318068442009084706404551974297364464790116005346063641512423721925500722671173416064419066907432672504909120183555211703662131826827799966518161026243414655059266905618540468696966271151883235613246690593603035847978434799006374002126345303297578911212038376301817007608123563150735586815341868702826664349041903433894218699482052754355055060554335832940727077277573519062710061615986762244447607117433565188365597456165161655638296262800175575654698523810514482206546650765460829904648729262338072233605245916963185598576730913216125781207492459778981154935662216205266447132433299996415166818405365773246700410660504531902978923668947894950063665925015072323132386335374009223947126800567301555515252485284123807789148424576049978812206373650652742522131846875266563603054856642363694321874509206385381843626629042747698548935442574494532165646886383886641828787773000249688005904766270831868473553621238030366483600962694990912800286312511039187622133071428715332387889399087225788654477955124602677468260111301141438757099085998981774927783137165401512400189337461425866793876891644408785490646821799432206288676450569196916650369137323322758817317885020502050924755180822015047983817501362386033248785487309777106011937147920299411735948664176694271994854867165749591134854134242437367317299500985824039413787210587235190383690151432354849452865291233013261059551084888522965943319680279266573181445556640352901747083696338226516082274095328151558070221301684125165335830585589090982474105938381087145145416179909025313803580932350919588483742492577581322566568831420049560192297276309594484154014653598310416727468096916118909189693809611310113547931974576234927930735334486046810898090813042108404368512902179735899883078971626169519230520314760837817852586247761258616125940478970156436372556903059615152689196548036970834064326250831689733945275018202898916592714966807289151951753311406491188061278260868229463472345271858350514346312427811803597394101317174562976830694945039423257558382162253685551538136462096485243412694290089802591988007621017423809963284922878903660411729585886126569156896542995585900816062484893652828856765881071840933678513639508688060584918906184268832211623017553591842653069992970407054126990604075404058229314015476486626304213568800281253717423111419674947324135606500421903375922110819835973199956694855409213510743962394220236762189917888014985679245534898599135525774985622973174623564141585972779592974366380958509985855278124424522559747153766828252604236819277836944790892400261220944551637422727005428122044265902314392014031258216079660144306410714968634478988354347472972740668783303149635355408961882662277725065955351765467873680855255418811591355546398420385238607120133050284429223628610295337980024553370052888180662284698781849713847322991557597527908001863059413365915207301363050122289226391714612729829803462847072737998777935007303351380826632007499652880105509697931625142857755156967225146217855355787312720914420921996473273065306964023987457437229645100374585490165816629062634161077946452085659682083852568763825001138121949843184861048601317456250868087904478153953082329228281276357780371736892617984737347150894205303465951415759823309648950731205216635711061988320294149988950174249961003186210525000447000842668262353265264536466707868685236542344039744713609040279426492823389639192739989334934280941591451533997323278793288464780362439362263749662130393776902136049118851780321287481141519501174656434353446347790304456909416691579706444042412379840603812281619851948961924443953465279232233810733160052736690530583407593387327315212235969231868587375252788774016726029712307609929082722851052302521099417981542401529913554354655234388726045786621621570653478136490373927745837656818777242111776679585471605680005741785885075373339489129580764478009224027608044968954573863300318453750029998913250359743624906824937524976793037549906706622731611186188891317814733750011072389604354566716936640989722469991192210111968600764870661120476972901364992025734932553325043336363736340241602237411746464129867990071782714766668016672084421379640612351220630071465964652770597869322987001554450085956493271083249272023001517027484277673165985816370577296244333192818851902670565301061428718870634235708810926667453343619945071060678096081178626114735620810188381801180620786424097208568793771379150139598831197272161537942375151691536459614016808362835875253250399801876849128487880168669824680339860126050569957882508953829374787803661937873290712424475360958734394178079480196499874534842548936929558221333928014418809075895194866507777302002944789355113206790640833673350414316190501021423034035666934245011658418533945220398807059863201421232640251035200366412658604226023726059225561701598067524470086637712028816947788291807638833079850613814995232568375986978226662596431334447292004011833331062272643690912607386427208647745319000814646891316815365017021952909284632847960799067064724770531140642596099171396590195458440124820667169926711489824395422433013338541990036746646507254869393282155493609213927572907187808772487092228417576774170653255576945024592545522214934522499353070070099206860568016524589326513332914509910159873552266768618779470903226370379746659595957528054997768077399099755873950294161671288974734963961400807900822272113057132893334593835250411494701519451865942270176454754926249837101331010654705856090803569921599232605303810841223007658767518090025556816360383594821923116262107171728138864746122900761115740681012926788706047533069277937050565337572615052867241042778451536422517792817803476185813936427125481131286492831203850285033911672581269423949608187394478637143485520020115674661657547818861486853251762109834920387394275192340124520640622068071755574955163182078216840295166551371096053414606079054798674108685542136837885694133357014137027444513644634434438515545248871567422638732316279064774469733752701129151985774111270471111281964770705716367737933250601931071496980830481417055755045781002171602489690423997828301554448187159829234427457529105235798588191310847253694267501662204094706574227453476543392042959344072970532421654539992416220780104691185695633496508670362035463736616307820841308931610498659636146595391164253702156091334721389052457664450227910875510272503899489369497769282787742811954957678635677205746113433036231924327191699345708043586142187208766457571903763738050849720902331976649089312609524725164572310575272875547129634076178289020374723444891328657259011715816375124655030204583066221687751280335641958104494540351484182558065712598053141618315184766724219091361949183634575180615823685172502868419141125187241602124863690432526923137500031090610460367064197138261638496067670155896552601138096094968130478003576876208027727142227450085784197078050721458700340115826430367098025554777112259767223932574944971493243521391414911689432048718835023058865354221266570041277160714637602082726038576385023356979611829538121097708013912776252883919591406833981438006804433001151178571939473709772738641413225820664551642068690180435778258792416483571811801562813689627539077529968498067470210782048828726104716859253777042153478921709421818240556704152759427041938740354629974224902153249854573571456638463456455526234747019512010751532803805737243039244590959375293269671692863614547240402205591920642422894093831426504015219578869318156433382945901213459222180436414436158751029454351778251203360783869502514345622504707271858093603154743433267069343575929255230499894808992705526564216793588237971474518670113620925405025458881572636323190775343951803675573852082765950972574353722938676899940373855784649569570021687559040568790225578185270654805294220297446266661475180226395420063096261001827927756769452587553095780946218979424210840470405261888188041680319920621535174641153516219374019400957886474595414382727071720962098410911301359292233947476268064167018997433788737346279689083545599542075811822095818215273062248553240265306387664435587920735849951758008540542188340743056279363748486948644673156056954468343287787147594993637879746618076886901253139338460674708706855678617638950493873171120893789616275230176165977375822293040227709115736288037462621507430021391004443774555173660453371515879234320095970886377309961927671311105232007496940342323193740579624944688593697961301276620652491140676565138951191921353705940151228718722259843362804672160008615851717040100532565843430665063757632712083949379586095467250581389116479156375044356240582094253505203643519473710813933417240591061523094996194747160460881037033502618883207491930616529552036901185528521583134297148055982975160884830238545623417222830904396228588241168928174723849398402068296518855885794579063560830521313089683273199118242222344513657551403565177900051847810352689096094507968545292992108091814082541245582319469284680412655793545253318287450470730253250918121375774278692978331497185451292052590286756938906955962464451684852632970916785690671087211005220715234938843876210089064143121156907182974684634728053647673981096218947321784613593917276246873825681513288382911328055478864107267665320410076861227017920873171044133757594685172130157049463185187869632927231322793818662308197976172108571235093749434508615136930003176923096060883876295672450337566398329857780305731397783146048082250279529389027399919937679585958891533104051287860012905140843367439934108957283660004340789982089881024731881155246290942312669254902802858654094643654416628733414121812913952288093092303322230011201638551730046491203496238581640852541356920738558469933297185112907889450041395854862491614375504393248070354662043897874530626948696146435633469520112110312930623566621874018638235719563774691068519727317693528599344786835621948454022779772452078392052863842470715445349705111675905300522957275308153181119339981069954925359662560558986703294035983880012619232315678839367285227083429716201370550039251326047898386060871919860915635306840513289423729790682561457292618492582033967734887821277034429394862221189479783750549881692097475805886089394273924676510694674554597052835352121538307189989140963424252010465429459013177531102199684730127319724802165603510400530176468936675645283628321237289467232654800688492811254512842980355541616650507984569031326084825641593890941341391719334551460317419915117561936091633911339928696793321921137883653392510526469551843368935488176524786009816474628363981580199330982236698141958492344891947408026489379673916650792486653154577494828196841137017282675717030923409922678134715871482725985117740801583270090302985331376144497299830393480794140845102926130139294430268414102795467015239123948748279849116187397076128626561591024628304423307781982737290382846539772281507717469689223577382272849831894931988080740289149060951852441346917978358703092341773120056283504956757080487217282885090202079005733242484398491296643092151107275945353125760414711610389968143214130240912901748775870380482958678378424926060181259192126812931772795701785184036639974694749210756934313755697259117586431230349916760512966288235599350619783070560429499387147034140947945072437673978195608554941743608180605628698784563539833457178248577401836777985784033897419277790874313740543775315564430541512320826791941855300195569185262033707617119830265620124210005241785012989920394429329791297397349317878494991805736676911878343766920569216279795412334006728552402758823611887851783816870748127842156800536851187046082070246130446887412494487341459188388620897977951838317522902749142014742998203569663917730146113105565920575958192047758998660764591978669760666592528905680979373570577085329309651760640276534651263510269316589565477864445837406507729439358687391279125294968351664685415887323228062563310010853013636300283279158189985090129212260543516850164511917050726254138242484269205542611498002945639818468632087209838688362628725790237256742388796642384894668784219127700194047709568240298872437180592049791890430207879810973117193569828969411694001414231971497144149760255811971813976933292755943066700673165161145739838863984141916537966757778661704538853766750995290189813311242347994567677850673055541459170088573483335164117597254158924830287871638016666133092408481363468679917206725804853250170429374270247323870663153097924126913458062391777572749982120693564892733424987008151367411212946036736272619789113827709126814834526823060098435495567337964874468541507112122225998053183982754417636691952745776737399908453297805902505788541853878414684971144352953452413025204406054766703227707088997919599750705948338686263984944946481521350243427526798087058918256615758749179017683832978182358507457840975878044147465693087039658362407158397450401623370883299091978644543392608181037059892138924644390979739309220727170110820027043152260936567526593522938031037632741129375052008890434471245341768830912708606158385355248657009361588087227755573243117964728709950670832063140227192191545836700589448540561254551205028873500422721184346480825247256182561895677857053672473192456557294923511719650075800006126671967773753140959400300426498206489952989507296222408250252862227995100390376205773244531794371455277217274685703703946396632395076623925915675997714710880730294040402984018811026911678353782840838834987097170016045355183162746742297728077628729096782840226619195380910908712649470809459503182817535233690020862471202607939401969167101442035905519242268419605072650361008857037991305409005205433687150934044623871801999852201538746136583484319438627348536738206032372124499362049881407374788085617736427574186982557146398503811478334026140082022676006523570843370710545644108775012324521977584070432243890095721222274114729693705071911847560089317053397092763348476376609572344632320853824306634636607362748468255221214214852398176643368129520585086720386944251247575855527089689113078316289544167505108508365345806084227365341858280388887910351302718222741643565969266212852745581670203652351697032010254652636327504661255545498848654774855886682799905228495113147367545065915977099118538454911908612179581907353153983182271139127154164898566689728220502394767925441585094516405387879587447295491914792902401299483997968232594313562487533912700370202164765232596001891834067491765930321282806355143223741003835759651663446382004384472122752012803508328189780473435873824189750415161041216718885676577018797369587558618327000873753713552665334675667370201420005175986316587225271091386254641043434719716148098530854828068701722115326754179820528528659747595449150181035256421206919953783956939956047126391949014359196915754790457720622391566665106900561343097940440466162594517234062688704637997627464874116532194521255224014138106424389716753439157301654861359798075717223641186680885725844135017961862665023918503614759893706859957344808959028889364152077074439602649434456352184404419846390753568709280868634963648561130320103629460855749867872340152469450741156381433544412021966666921365376033639048017820037471819769209576778782978892800328159767936464679157677915902007109508104917567274882819294632386366247573111368228105815508260479223033652682164243897024056864354577508859428239793245089269007561145271081457333922587691452360091976629135716395325921854270711922520070781875267311592057195356380774141896323901754393844389529449837183007363541468505674293891184950006111818510813755777250526557802494745817638315999748480494431862877824293351704289531592557867883042708835212368755079064316663802754582927958290291052762691105964583866224398376409223593068852266243687996844108726033642712126508569298598854271323663275129275621051651198963996618047791592787601661312027826907973551034908551064308485926147429216665576157586514875201467031389006026457810529473986644958530632933695951618196373003821248237743485120295069776187082762078433698857018746286782801679077927395763934710604482346883278080693815109569854080343506888975567576387749470567410019224755540964823800065734509498992008253656547561351471126130599591642543508162918896607996755931231717231388008562861538034319627887436865325385603189528254841822307696028285834658453631342974868460358608357787578336631709440633363735949049129652615007281013918926825556325596032496480756424616257050717935352731411397441633384664336916617453240007711751416872034207550599481151838538295583826248536376396335471428530673561881991302368971280507009107468403854686834409158037315915662928028111599565913837425211593024403430170102194685635315167725275175126936421569256919277227007152729354715223947734764984075150580109044534107913286541495937038962448810739074866906479533409836718286477242398682793868751508879514941905203845192745485296206111745403435035522069587127066155149875094876174341406732392110675650686767146100787654728316991636801697782739332428339391474097494405026092759130977895620248831192946396025043358270132875871935911627295887501597387118460813191138287111632772292887353308418035866026663944952487327793529898091555083078546638934249562486871511506763111108226516354072434493708572498362450741726254115831152745882507221584622133067415930507105307355726821009895855288866286206903599976663383984565411754049403087816810389890255371927752563657551675868795769941666254965445823725841583603722961799141632430282304349755431516918208600414133183440115901108714572881165610849679523607889671970918615294048170439967836940338761126596868829969420742603181620946484070175336470067579215419299663160695838459719598267915895996285462234008715365893098206289025128774382843124390445020788455166013032337607253497383401407259309723247646270436341647826889206265369049483688888934599485017849400995129136446728064186050073937604061728276713722765559459146229659789784063720477009832130498780160834524498668078513080872132311309880650276604433588295329912219789331054145376655802277524828888433376298289514518878704280092851006210094300849351609549328902380799415219965788658856061175730038256821454465938553225584858412156177836751763019460089757201590747000466174204323136386959361312733353889310240591698136052805196899463523170085058414957031648540630713762657433431399196969644321796375551085408318718181114477475991676069395809651380419730313312257623986334341552330443659933448161824011566296401999046475329241244275344752429800627778875864724315884818396371478660515064156160352129542400779366455989375235071050341761946736124824178047525936445616277193664358651926437250330902414813399284652226574176009072697825060367069763664931869321445672738310818473467329963340883404701437505636633196247758010612303769124296370595207545755360529728223539781936441613483916590988748726225603388727444975724365457768101913071570929951188906086875911975469311361574530076955413664662124891585466730082375827003764953535276461878957579193891639543250593502727701566855608593369146494084032125264463638998656839704390407953514634526507478605440523370618869396631793451070555291726383691509566656670228197451366788974823952754813161923905558514363212796946261100526862764004702019316356098500007182604236643746934625929607830148221177396813466140565127279667020594477055162964695948996732795425670296317485171794023154440971758897725169945815373366488050937927719985017111531310856902817079705996345806149126770136114573359080779081874209193577660752621922365521128330294142685099600524896541182543467329456868486144511195622003694190559645203256191922074758384984147716186302315944378485686210757199855091411181826014024414302240199837612944763025712387578058835882785648706118946439500950337703045320635935707210937247225977608500630180439355224556275939879821159268919844175673033633007814923212021956217948216919115335567222607702868948420195416057005137099067479740704175922402774814223034855254051568351093781907496640291314837126414648959796196903702888644565690785086374919824572652168547496378987093207125579741531108437025724654281395077158173113296136604641053937398447245578152696445384732823814590464347510790457156467971094733505821723318432130130088748344048088630265452568658406468716399099596916471109152787248380644838741174895534742381606003228703924903968084370715233816831415106355070040965227677449667562584862425957226688216298402782892408927346093819151617116626379723614931964105670892564776904096331789991166170801993455861538676688217189933702160647815978479982864190219654349635344940978263070311875189957775323719277465562440413580359605295971691886259395110438533671389282509868230486998029968592170384422939065393018941768774334565902055556313306397553297304042141618364824841214751651854245490500956536221025650498681313075893616322070340326683967130238053151525697929198697760414874440311843650424067110658884295605198222657376538563552715384214228439398497919552133001920251956498987633177431857303675385452296126311425677939634714618181226408768672482131155878733339170243375204570314738135883973793115799927764640975854820417286875361295333746728144661298296410206903331971631689147398185932518633158007882499633591131357447434588983865843164348519850956454883646751659356580551808393576854409831446285484674682539621136120779291213896911934665428282630436085888830973180830825919851641846472503266710837571754959509846319118886221953706232152634531451150903689839063076666482674817167235913259811186891989261082582700266993579815414254703274270966015442952617139414822974601608991045588530595851976122130347223093743003216071257054530833199345448839504581081439426689802024037055593196827435878025297161755396081140690090318043472481870796792347272562644801515940956303361055021746404516145237990758236978615166888650151851688327807687643734089509493342999000761546554199135660449855955822882234354834806028133301832032900742792524412271987885806041524510890458452756424594895115894113976631034594359137991300825697313278747274177748103605782269946618687235949588368794278408034203324457050390336795468965185831233828618025155509047655621896440151616823707645075180949990423804389301249286587142556944304069606275748775595777147502525973235556027011099107553400795834539019052829813452587723692840153292336314622382318826727487654666174625243229492964321996824168741110463202921141568947612590095477410209205454062163533386709222192144236136462948721914879187141858968094802367049615331870174100568499399053853957397425514480791256766326365818637125231012539223324089381876247372152303440663072358072728983469697527667664142860776800534022318956250236144637565777901636734125675728070554369478538917980644957978919788310547987950010008170766931472632657886314328101076922416692526641106657845060718141133763157633434414888732728258360908078467338771569684347221672398252357085050342976860756693412486650770446586190438226229582770576898219910151883028201985027906153872434683539494838435908734749427686697482459457001781284064512338415306407823341825422593053287866567033421270272113482462503845879347411705333401423180856441823663678983891394001956444012547284319613604920956210192096162501144091587053125831964378386663992073330482611775109652952554047305816655415147074549941634440144416541926075435025965127077741380721586037783960893235053528742218846440834610545697319677822212387536022768090307771378294450371200508643743320324967316092311771118947150733845633043887462420567026203104947968598952651126566468503319986355908955474596131521299255085107743173311332767743405393897773747376208893722513014731184611309949075940793308553912502984505840480824085443676744057921338501896199161722075518583773126901934406473486489664583034428652444506651115298713424134555121599883533564310771747735594488279739562081956645640243300863956266385265283623120262021835476315741649876699745635062041643579298288920768545930980962558580951531544877190034973851022234476450897719492444066574611191871782456910922453303058299569553425401339637721505249078059419680381584586330734767761040868484342444984679306805765744158483308485502523491981999371864946636101643037260047234054803532377061298400593498558876369596121085793700469308555231913522660241572518485929153139767816969633873302383619817419889745906284733181850537126784287045188451355475042173912516963983834395825202553870644027043368161967771835684541782211812625138669973826214414215204718054034459227385661748191934110400707417588074841275076506958937487571150234581174955022784224384786592345503546948816371938739016037059469624760438759779132196268868781480124187904442668197778042715833852575266030704253964394896252032149624587379262200887972982063515080384941783226747039872588558642778023044014978254719078904119504412556512252142713017247831719484732714527071653389565699267367009492343125885429520131655935243406868731566187787323096947392455543161133016930292424969946566352048405903983132565720499081461685438609312618366398011422507294273403379647165973273452255317015076837827202321798562301871768269558227357810573522868550165641431116497816572630753483197147314220313279168170884015060758642221752089905307360285663425759545040171409167581322665151620887121352949992784129384953142625072868196752691051982271699255236464206817440830662371454618874613467488963691574735330810230840330245990102196726535183028521368794857029939173788574303575146792290042015885516241077136196029135403623700698534822253436696557243578173636461219844334192528682144854833436241361190484876712505354690683119532351368360924102241919068447664046808451580568447725204328160724820556293602910609812549265084044294338508109339370116918427819912866793073395729456968416800083647482592275448201697306715915201293435540139836177433101750734657381371838951884847048393006258614536244383657787348463445176830154677664585795218049080763583029907742469869100723917286237270777068220499423082694529960558518240843237825600838537915227407500121975400834726613974162432901454899103486926966957210880840439268197649516809608524302380203217444533736519157091279850190199692257748306396793047541029534377775217128921209695241099565869223300305939380078826897867659188649816009909375601966005666623810269752424358436411760852868730772699152408046871684607719822119394920793218497333358967550299180673895698322135874358775358062240573128068619561020890724902740431309442552825708305464973291862828079258688997959539492618812619940429786357362390849769261992715980226030268131657751595499905126404227256011555859003501741228962436165907782887725762293975629823421406561156782379208064189724533367740892637045164159754116433939955066104293263472137743911873361992943677599837613819504381706835055144907150661346874723762949773445031177213396312536152044868032384315571016571686192616661597497709272377043164281262690664278722838108123899878083612345517573291671082911729673173922777594173720125913077147674604139182601318865507851836295624899091467205913105818064316952100946588017550373333432508210098113295027104854970101846730569275064137187603520768471327689575001600150722006450724784449905415132579583732922893227598772923635709860454128353451787545981790818745941597577483108302458765097985954720205021215450405027438083274744901050416704108936294142271147471313250310563378445175918065429509695828213033406781331494281777850678970322778296792742500499001077059198867050534332177087698810072251343504512137610562916601492051825958294114952701313401713850079731297105826546690672948108222168112888592181216256079301719226870477027550781766945353365420008177537523824662531252011583089067688996374071623264682030151059622511654482988507036260521039397028067875215754825953382945572700868764036997294777326424656434660695522332370053962233194022431696934324019334934902785339385170108316779962359069454417931991962160538198767577951860666183210877308517010998802370730060807971434982462918382383164232489878641450048440091195036625418561196713773224978371555772650770261021218363290144658001133745460623208379681922772391507238271741273460154352632739083811232753721690957786929625071495294537334871092659723855770051599933739724353857775275596782763414184606244518180349011623740061735498556624884301384669789016433310622027870462856724555797961713310501277622529266479247289942226227783166564967881820196007035619562858682820700291395168487144781706087543703726120865721455022134598548291140308385854389047166882349884242048532319338831527857922181090504139783516148544595194014096168258050822130642177746345801519007556876450748732379192894349661654230727893309099006234118636351454134810465302566218156064431093572098554687809040116016450200409021128634587975052022882928504959729041548437150522503760155917885844721949829730830370277500114061483688714322610671182777992260026614282277001203723643736703078438465259664498657442237974978373765784245633791932155762960587192755354189465036904978125442297792171123027430360063808628714196595609082483762334687208784679397564800566780773841756414312329387688924688156751572389793681813816269400218005459013241305530370830579221720173297663220023268855122205015794935863465540794472755860771395719928949243035757137093053868266327053869287145372616660829775585064470888934597817031450231147013415679358866540660087967055332363481257421944764495578356081628214716692795951680463735603619939220755032467072461831482911185910110550965990375741731821605593625117818517493827165690811293334433009428889231132958914287221687397846447799569270295848315517010663602983208218533577492607017719447668448933906209697824616143935452595670719663772597914633126747368034690790726805741393031459387588334516798793367635607635248933000769052203826927309166938626721588459744194021900155178438541264150917817383870711438733506076603017954987861640468831491068865252837478754693413716842465393127810490535995008283354786650881566718688621795238705134398215109408624812300630791908620913340198980401463067867793045387581250387432451169461275781503684946200991905052111965148450088891410740779086406469592127695267097692816003336196910706455345171881460571753551840755097465162806790064666684323675352288027616499148395163147660626032128337847524827050543390229622593186097744482935005880446248584121505003959858841258110138247700690263637333883036010689001842115030800082728495155988040062576627950768283374988424440589676065483298348313950820846657984323448000908652836654477042034887862895445822176994456211059500448917830683404337896885389300957048533531016936864636320589707766076204856037076948268062020231433426583525778818843278948402023170973153222491698092547690311099131972350171548478464355238634634369045548255522969114254699223911829393578540039011748796604010826435105825825507664331667808319916280956329843530426258860935997803569808494273443373653770080744416298691707387447918412789961570723728385526761783639003548264003866869160341435631732472816838970964714550709081798053937130651573101096398829011213090866627195648970374040278427298085157792871597101080097114352244845443913729273267805094108869240224516821942070618510028962081214557031753445650108498383530476561991640803399412307220701044925128524094315165865961043536341863738425192735961508841440714295136528920142115655302794080371005067564308214420214794010779383700803115616960770930070002283711506423339581942953867709094045129052491300577698103170584368360407167222207987225835982502166623495455285133179528311282395748663166160503907860835161286198597362186835867357919102371513111950576032600099462700922635712595521429913240325482301959625831881920086832180005451099035328025247710985199758735939410375141572874421118788151665761444444278498929689713568829441526356821365136363387244482810031253100562402730486975492926482413982021185469471246643457031927748673951489173825649269046313440590506463316975900771808849494004302419928767587345094071025450425280792695236466722081481958771904841434846218240837793005616645555036603056348253242532532605604625078511217965958441599999376671689904896798646697267576482394788693817893982759222039217542684647751419092457871719268240493670967681873975820546658288441770838575586547022358486145532117631571795784198719181933717108460280355546393259451890985696479802515567240316558745449641956988479799530580516840831643008230807288764675116226237211324243704096561077479836686782815885488875125049843504925301938981952754180567865128154121570878008174185188391916738340812321757948341004005291072494675053844466412776675592787899998758499640514752497872609733558563826932238818870911945064716452615194518512323174778105225507810504197753217596967144720425065232587056304389673004366893833605531575059149881392427102147123268695823803058056775042801197344771620579461462447163270852706916606361548037914637663805017844536971724777586222489890435614577788148255187125842486788168227706801925845743315403503456290567900571377217022969658299169223116315034000428197992282557471345757006401247164816029754908961752098381552315148550532367421736809317314109212415415379161988282949227505181884821101031326553097043831186801170526065172036840164265302419694311217493633924416816187529594397877675498379604857683059144288696786785906514525681557278534335448297381283212398467155596352360910195507833276336340278815880528641642519698575509877024282296989549347537254835159783629545133109931272324532531090938167096344914148364825933127944119357747290023354127247229742501576526682140649698363632504247335636761242476191996226121182102082646077618957708325165129321341054332754252497349877522525652933545441288593151139560432742045031418308494456986632934888362732928692826094507855681721763672586920122638990110474027996411354606947087485755922706001224196892413477432566050075845734604574799977542759072247993444629394187920262439959382829792529766340238966593723698133930161542529625862527953969791693017456817680532619536629940853021836101940697317626568930669141155286422132534920101928125848893598831343541920992818268061320283999724581273863879577654713703966993307535464091774083003532295850679473265656548582377215840055666802603835303958345675970292538958304510641725696776323246924876498146432669449426619901489780555157778733608066683909911617511575967615463821688209829113808835343481811051706852284124018105668000748696422608971420121367909124979254439064664316275617569848624490827464172170384731220977973843614714035368137422607817022351549261410455930620386001428864162658720759447811981251472474365002444433543551044765554714731608474005443723902149996077553318528094580977212850993684731774136574110862769439289684606776507546928901783625886096794216930366470464633217053156962257712138988964447415255153592595007465584981320312856180707871785534362230711765407341347053617594767529772465599187100141776144878167359732171812521637278774908280245598730867055129419048385738278305928755445285107731487103191900469330072374121519178699534438481495031692756329535030911686251697905296005751137705906276824251221347362549461443307226337894205175294629707127204614370701838948522124478677366586819497254964914819564546968012050316642289760349353681812077050016031781431336557377706957536529334319091338831917947990985358624766217259721430705958960422566775295053342749891857072576413826474168771801856682446679738970329301689280555063321496152753614362183109139687230530785311954935536879471336831251125127188396373708227640237304727844031070411768833252155703518359097941530646637254721147832874601252639711652839850893508400619061201341939628368052571227748035109409911932769431834619511761013121204642956228879654304694116095132051911670693467216831267015749315590977310101804317757134175838633921768957324774290615284116102866302365377434773456427576009398187396533094703197359499998748027874577816567955630668048830515019483995295254335534838530537092459659515857141016670592118635582803159565951371842089272835967809639959106215338290766701703293559393762878916946620057722892629575313987054720410889869996958462773509521948098125854621648369854129733280844542776737611932396387121144543921028946142639927942181500977651849304226014572651901595513478471541408617496713014656435583302387669572876638193523874260089785539680660762850432981084142008719273754205095832683221205299445519736481837379248482215646717949798381350542603040373019604940228645719401302065874380210094888809851820983547884136604147569154447462538576207267305119861574036315591883860698293986444894383986965701729541937131817400076997144960730400051074713933480602652718268249758272797061531488278911987136156333786073075644250502529561552493911623254824525539082859936655594824696314358862766975354626473377142783116361610063183435588751437455772137256684034854964832634325599125519203594254097725934372174502015474023354598205717891682153670545621488036198411204704369347487364494854182454036603453597995410887042499022973128669503804161650064005530258868935896718930559266209074603470041007163228569993979490089816427126159426570828903368598993700924881634002781945552508718225859817560060387740797350819458137051550150465246153948501840753570335984868485103585013918911954345811894802483429990922187154212754924325437597053547628290466899046229824872668389578100963682374148296997349246397750947135661489521541867823337485517953633596206460897565947465487532599182663701263800157847970728821949283019403735274029445470954329214766958938620691004234854252545058393955585293187402890822165099741597429807188422558518852337211716275860076242155022739455849384224261923663735971560791069822500135478849653772158239012572221473492515995264900560905889648375200696862945275019208810764132580152397400921546394705996974190119932443248970196944365398597210335224247851714440242706487516065151767332376897376154114399798950130356216674644931480581172875598323041923414124859493541603925729213556408190740863274136909110506360119361069895067607479031408869056972713199792017248086706355859285293214819370632655019442911945498236876274937215819171271112875248028713581916912293312783864311650350215517999402664802196914705832751312092476927637504584138238543727484278647197778539461371576375824212592510247610733862902856387828891059018668435431364786922116609495341899919640870071668819777679955564313147842478347443620057790964453547190056810357769544267242514472254046396403272286549972413427959381353028881336046228589808015383720720007610182932989179740181080784095058519750837707429553496618789213792032526815713589170784196049411780341823309633007347925530464415370894205276866513056403536010869627504660337004753430150128092205786075363013709089121774523476081987790729688168756714177030792914133973697052206037480181306742447776060150763209289040703828060147729531364411937147613696415548073302884934216869172618228598296494782130621993050461430213921722132256911885430983529421623650204452232902156919002089148556575202789958629580330287276650848095515706820027207970515105168354539135582333934012392805133216142221216341139838313834532904183649470194881607660344332878921425836286048935955399730583849683071096334139469678537675883797144919016964200228205219141255468510132683860410726049451163282474570018538550370974592758073150386371911075980897350810828162186474202688477762773502404303533456617562655219711656285457122290543000781509674223889321586820616979617250040074005441753406675585624570980475490743443186189549875824160667526764034113981561046853681974054154694338012731287290079021691046344981940724034557126046194195041911329094120233632752216023422534476321873555910670559246504159583671376805819120696667796699546051291643132608802533949607298652860645146527312357421454288139165939369065386368977260100558886241080303446932609195778222907196969040355387927820981949413563974832832921962127188458965182419353194311379904935621781694838694214581908684865801082012934131034153122059649472208959220139461336935842563260168882616897398158242876337063893244902905307317125150570211502966415871648496441882041174334500104901867184327041435676123524657750960816020981422452471253468482949645006351222599933067795391398356151796618516563544088883669477725464959352928041111391217524923995805499861054229291400078605339998037847284334578575702745372639812975354193287006103490346480921766020276191569812124348880169355907586478911305550028069044785088554425434568212284388083272087052080851923245430819513302455561829189967952618464564864528922374923347512089491493600388037957290236229614055249472344353473952625313544259749470658285370371984785192835928898478673383119713872186124978529020033516034713276237330502639676227443230853404016786145813445404696862578340221102854268634358324731210505418920039118702565369114827173378520479299386984064689026145229227973897312216407987473776826275172148468990546932608404645164302859578865770963396524311496171367745232928239142785323448459746880728603572146007498738916354893985435264140621224548339097129420595770240105703121254135763531706352994137545263621258664921563321100146232322212703207687725157573018498321868714598606312764498688988604891075409769865696260558655032481953185073810000686674468029274013022504204610274755701894961296721477234439962074300108325523463235929051380883964609067350244117126052953100997144653154687237087031089143571030774623768838514590927481183353380168205600849380786623150281636832268195081897523024654811794853850056661381517107453248735035117044864307622658227257671617037805241762356857853570876298585114994759805560096773184295830708235882063576265867043813649705323440313815879757224800380882582784135546969848969854761752268806637333050747828347187578833328791730684053178507104575970502820745539240306002494866970200547179237970776987975722872190544995004852468867149168115431445070064193723446809365398839147778779823712785745466245891054325193924548764740446444649078982686495457381364980221745215493118591325176631834705711800730180436213051904839745157765500007554473818660841375176037622108556550118480453594451647979579803490886125645117605082527464945113107472518360001864825804959511277684235543857560995271556132938279884487182001370002094081866962467802624348119127278922748704647495749454158910688139838579979427368725490112348120892353384505326477800044707830427707748788945454293161538184260861861150102850387905783550111021030078490203241800910459967520384071486946663832472744713386991955238017430315805033165965359272942442024432757885865874675381007398436059453160097291635603980066673599239037944097101871575950502074573395809846319194951023628405075343253086228355791531695960634643801826349477905097136173921012153105860331665581774695869848583303483972779919723528585780037891826509407498909861723888293749150995736762363960811407991385587455945116576550976693697436543735777965388165268428503830586986642719955529838622082748426106891384175100140459566105655629537444757876875088901674622636879442320421241866904706927634407702621194396288899898417744121519526207342986876109709184994713597755150800640626785685873707686130368970920036772401710503300950012177151850978554388966108245169310063921947929056385619440711758148866091697618852590889522520078983229418891810890655791639574626044672094587915020796983806973422950326452661268818055683214447438473928180323050371691291106526415487888109261958906562328652369217611925462755054584384945314886454673077232739107319362090533522397606301135752879991453418123805740427035983436320667218433466219828824872297765319022080185322592020060281475301986070536303355873826573963870252065058748588528871111906505289936952850156245530570632564034364714296143477165856814699633357654268192758801769556715803844245646016036347193421791075412640630080059146123977463354423623527276467849908433041884788925290764928493385254409735677864404038398524841894310792524669419910333885926059842418275284391953867637102060219759450718864974574685049820021134099992773237444098948202307597194601435957843420510966807695741336542611215242050337508829262856833421574715902151278892269617548865579234084402520237267806975534305194107639900095316953480882068424851468667936992152082776543383282538504404655917751342297191038388883244660386225391316254384646084858799740300480650759461313515137958256436156832570398643339520855116385900735420592714304869053105387224592188456062060148812369761996048299344682930717800534392109774276970247258937598947614627880043640687366320756576310071113216460462920546928842915159504312083236257187277057165948670710436063600794322188175764849344173925808423805152666897216160183083282065624084189029864100910676099759436300030161476459377830151735947944165679637269570745396460388149880692570515601124776085228613715998127660196043172829290063238352427085495791811442523630975461792057708852305067621600861286317521425258787445126902826809751720225237823585385255636095153690314157069558103569207132757738405646830049852852030858384579151351658599950643392201497008876192799851156637894179650784495528430344180494321808940418889601477690080885657187604827575226404196416036990926714527820832991225069179070804944532485511031595601176024143582907764563235715248903688277399859905991557897200997730300222198213281756490722979903837692287250532327069906057322897080401164062599946701153439988970113559896380578259346859534292033622493588939328149873515691637556790978145453617873074465874738839619390313908277619672606667807136839059342326038242008522738530043432430475352863891915725819877823869784243810450769293206637875849535309213976471900822400753141259789316712092163807686564435194035584109775165136296536634570761917047116689113558820700784696763625217950778943654540205439453216757055753317226546300911637283929028764863773240635632701132079941759275255176982418549531389146355113327304407760252674764806809620760699983484099021210030607331074906403455350871309714426635335514134397903194920268301921417451255014930337417485168031374611169559900100260894296014456704256648262236287504861409076180515645460542270836269471904048873312627946114407481856356830588889586597851015451329111894979126119706824962803496216314756098393661247851908939387037539338581724493385663702188753148305861480331208554565196622214034730986432865828321476697815708175795917307209609833757775613285732237684786270074083432555117892326052696084705271490948859382123872876335817550810412731890665609985752631849627967298561747492456427758892435809723498844767927996312969320373208954281269289245234450715632032180004315177128295386044915861440907819781568092384611578509454403260248893638405415142092343239451173588104940708978070946555346857293961468747724675082615432031077479483194126105661449461238561783760004870550506877292267451865796064399368707604789536579121250709760750241370945282552143754168779146185132614127083442351234315643525100884359520837580480017691554481609837873382700334811088733260118095564287905977012786664297066919962447622109908269225280336835738310421439550476895587291995396916076790449370249677357073368012721687429245813233461510611368878284931505147846846415843331691693673272673996205873100267820919293621743170234943751016908705284606884233576174400387075795667711600292594772490438591280782549008726200573588241066463634011989010469166139418049312993401731753402018145945218935148667197490834173502103793917313496996888328739603128651849450516845971313815027156509089464008910277671920840280475434393440404521991183313421588900374825902903648543319532269774649239027434581792238540451655980470655560389621490080085368007343864086047431332661180450403311097146135488723373138820253540529522756888429320512951370465634552731108946540393696944574938284405039610773023451057182781429051239199353797149185276653250118611068878332062433753067406851019372287577843663170905598926780341739488805286472614464603235911726164018068435697110687004593818307991099456776853260329141741067692390777890242462805122427236685973894511779646968993803379374151182689357274355838283577880728755048023823202854003372582105851233647846399790514818822338553353168899675759724601894783003787233548515850879501288391414225328198476237081068304058404231013639293693438066189387286026937235668209102433487382151299875009890381666959243736285432316274996805888143957608220178367763053801046630771895574962294258887970814097961893525951513641326063697460263177704235428340724812784558030429125530233051962023442733579339265512227568812567555337583641595491521152016195984037924235968728298295704813540933118934009794544755700827039195321171598854791508757335902613196327972027430224012343196638032170103248476903803728351414418132971231643213513423913337156269288327393459225391340050387171395264845427117779665739464523712075212999855303466385455089213466919287264064286167964304218748144589247884844952777507700618778243387965791331913591370446053585229440952407028729129715931247804926246344923895605287207290524601097232291788425141337755698193589419446739026535472905613409109770417067111467787337520790457868116982093259678988536292053971725488935592252050709271108848596691674276105670126810901233276598197706299403298280307086207806749489646187002761929924657373047190356983939633206263888754179215277400937443190297724023278213723254086109892180714177844751302945961484091457177404510872587560521171198311915915179058812662678785988957532540040156909413933442780048905921896758727892789973641023537778209405365629895145641791513502013760677557560018008761601129490194250223560646804399942361801991437926306374914220396082205691671209999578568273155779533189025895890453973656319153018161789011698450114323354968876878551060456576575062891683698000583008228381566493472561498681434676505199138568049485169267341107680447810535569393259229769510874740664215696010070802745171664889567462789503301819894330792534068555600572641747143638594284024066968034780632273331708916923135916006884109266052495621499350861137689937772053737966418414619180172486328319937698582563786015148447626832968552606889864453424783423415180493045123240377766270494897239444342382153109672018816395799149081500841404428024169987550432512660237877327899537583402825336776808788735364202368699423597473054327541924075042694815752607437828254305772826705507211699006532814483913809311094108351386407773863084843229962666902519640921250898323016534341364629272666149311593866481628524346901469461914726382770208939266752627468425555082597605331200823395221070196224191052788207554565022368998949890158337281801500680258611364985966167787889207708546089047773298532666278518615511052610132606816975983388341864694307854518200369639964432477373653217046686482096680395244495720653391926088175770219884169310266891481144108251219090259304985875126014065177598751046676434340116688866193138129136287065827241680360197157151520739766933994552213939167715473787168976847104607863958828325912082529611961181829188549745372004023009228897162272840265775545593181443256791085949905476675286268845437043687984871125001630378365780072984199444174542301492704468654700086182474258514452311927556122123228560512667453094095432957299054990085562301869155781700855134759613515939207181895020092270279336666730362332031710946789374157869448850922583618367192961636929067619197638758230427020298411701647030310429698587766008551594584778063887249139056006502977531267835711255004224438967414267718698034630515628443759488329315552127036971282289986456453507291095302553409419222716580952746749879662008645376500715463795083349831367522923889038074605677525365610334157597346171842616509820481073388149645083261407773327730741290788825106558106712839961573994286864004798901754676413120037046645584445377776636335135630097294437692363405190458979805614660352329114689430107530395758702143404866621018884607577860873873545345293598952360190505258244377208196959630112393370596113144422489559358705958123539013812641258049664974700692253924405510177724357844499501508483152043695457925515311119511424245706613939157159321467385731387077920588569939784059214343547505301350568232676796169928999317139376822645487236669016287268519154500005960633033758440608258212966646447852179601003039739798741640871683132630869019707641889417682543018471306049077378476205379404891734713269547361760935520899897937346138278602671139841805523961073655272360412078619611297646806045436252322469696052433155204646018989183056819250208440311413936863682120696591342854687612954782407426984562728144496258778331628882502013777425871442108523018313298984257988034569235657494036935183662275569432752245800746618312272917924253352087243586602835718298076465772497629412747335248436629268038493087850995523292608966168116521637298132094525806583681026631550906231846576905025144809525691259471733951277958520075084058270741994330660100002193998601483713874201533577381843712030189039556987232873383012240525401365380229413089298015341098526814056200924496036680657007978736509345608657430116610830805538721015347737154489836296337232096422784583208344875664178568058483831097775470068559655101463232795612990446333486087049319705738394011237022113149755335438337688232352846519635545889953399445616886633636861999802719897112248077733032972695131467594254792223842392412908839836611104465883131744165436912401060725738610252667627000764376749539244724093968037446821121257126032736492578222951896883763014889642956594626875173924495237178333681310136633725566533327961927868712125798263960615624162091931500424790607356853572124920525598242040597117589829256771375328739010438838531993406123195777104127236437565911311524848904402831599447600329223759870283931768033300874161132097539839828837607299987144773191991032746500139100408968131739312844989782894688264645532126553919814660536229145225818044839519186355238573496887587862936865204454209879106557794049569992657398404107577087701955064103681299340647465648678597311200639626850302863198882608375024776946285111766647177820592301967327314695044994744050245843182153416469401297090538531905501475914013414436091343911028988247663473288754501564571288473655390147253452716996354417414388856824094444273560804100476632886332620870148086205027017159765127503616713817453416816588987304947623239822829998565748056228031772521693084429993622755956505570662973838920830574557061937993499254248182021307344100808447714222084385872475766453193297068757730624798228963177670913745069692336681151115236706328492740467488208905623679208567147255322082284178879973789787504645307718920727442147061384111218046896697861220930279352145290491964282743565552111168925228594050723902871982716303216515871137308190519723379141395610911683570783674069047226403222550373181008443933079934305073175597147720280475714751019975896984672797254442055304516019544229262861924311922246799577696622957627008853418140836252379985227399518974925693601505988729159452098442131322113888593827438194521316271988246493263584386183483321044726373065056623561179887271551359283275072381965951815867976622418753217331990914714278173617932326120435815361678494637369649835598736878925879820768293221981441969154379390632961543888128317529889436741730712641735305593494500874800991910642453323889826355758377492713586168803504980642054910362068611663334880923679964873722955636574811185290395672802610200309924764778780411320174355320999883536619108967420956775561979148291695670322949118547273050091508989913337901325347317345553715020958669456302377152864669485932267706276990148075517109130990742177029443406066822663998762575906964086334661151035732609499967586171118552844336294249112237611429930425197253186044906812189573131821923415077070629474683164959781160437584842283690637781503186170503514153660646793492727111120671983720783914549233347808288854353087096319217876335839301917557305274060376872421805402583342620275458708403561473400558338442580201991438463754039340705871983145071778299650328856946173508834601281809435684613258444580258424166838769528077700632550622247390209061222303729529269330681424313906215034044981235342488668420221762010312997829475985851924780671267632431628702980517721226178600034699215920343789839614453957701411461987977811039628224992290109999353016227634612193314701427127582452348813360139862203199966544892977515014056027854169284092860783283377782758107623589265117595675121346854142289178533757298699149283709087946174472753902893930261512685070089595379290494380674127160478933158655344946896359215111820120869327483050227185821475376638006203352340421223388173336269848742798928611172639077638867181479918925351214077003446896086173591048046259155762647076147169379542607214989572690510395041467825335153624585649887270290975774010455052408895370104163405787600700863680233851778870812676476966872802487186675870375715669075572106732592508860995440107646040325558404450201010347904959355824142034840932566124753488239206164316465086484111257379581591067691358633535891572412111760986303101825304919715135037430107203620234053389293486063523945832799889773399164466418815177425393496665519581439076035337711970910268262041600259297974720506968173912685772429316213021671938940098047748036520824999537395421154616138180014404494467652313992706141545273735502712548730463834526306135074808016760784417304528161216244848750347597009997013513631528985642382810948725426248534734153224463533354940661373265498731622949186512663283105489212578091940437557379401632968373640860073691985138617235526918508279329167632263521220248742329833355380522904603128376151652372210395497738142148770782365660217970249147057422654948367212334652795444806132166787264007400282821856833927677064137096745065615780931012329762312403506788922123667587734941269320845056234888777324054400676053576704069476802287976138764764375195177833261276259500870776693440489600736360641714326823524430930753933303469220026582539687107798737383037287814467810283930835983131173185017617950783543714931247998438338463397358517098383818686419244103345736420511540286004055842022571441687347847935255918211866751451650861367548202442296622581198034050708213412203189677670383755582393352576135903545472040376941569962602051953991524452891400880170656806371318189598782276198466507552126461735236789182505244630237637651520349140125945493646847852221540810502599904864640798653460835956468182824063894182632312927668432291979577205004210883367956397473368231559282393745286597218976875714701499811974603149583659285081575648388179405332316211777344578227158627140039828933142356163995849195154696370876803576689468750960959323194892242004616820661086322120566158427573827764516976591854036209415063527844039613515704665144896254228696701296853666736691282935276483512002280061174696920166438988299789635002141709884860428957007979042517784703133571655898037753077181224369063489892044054780603977754069609583739847898391147051207457500364944921009546419621021128842111933305746180647818007998095868556017669236265785612525635273338145654440021302784982246075555271868625257506687110487217626015010318795204784092279950365796671957385364104809582391877165916017773985227649372577120346586612459063837966210153750240537052980006748245185459114815588127769797235404757094154873714122153692037662176214990109800106966687105588615567891297302106752098158297269928683469031043189241428339433704225720990000087223471586598718852902041389085941149882494810790983306664887048279491515216719312643427417808396781690075505685478780001009672344947409713882337195642276062253226766078248469542741841273649573745662550108915072460248243167431106054206654230476691005940751327069156100698656613844990944000540307954402246242038021017171008457144852749408950292561231528838034141146048249620252575294234816897243395384215564882742620112852899006448237897138396692342433226554578163300813404507735293172949760388228793981712569968166111296388981757383394620753247125150378009752174803244170998273845330731838099973175754964332080384196040259768912014395266669370818180046150858076729948469611633294237383657720120316530511145757614208159941640905783939301356799710122003659804752548978038621940143032981353462552659986591796515915296551701571687195942331375250270610955527357688892737338676552131607140005624225946361474953730754137119066021379823276815066510646683649944869623945665643920925393986460764724695277773919604596202389740448588173723680333612515878132406995803485659647760082779682254213985728499237095121194005772689672519227376460066008911114111931155225764732957385697947747676200604360094195055164723425016631720571462416933923299066878035455843857530176346363251712281581677286811124766466590208357264207465543893047209150010709087559722316585090488338995907827225216805962693484601831775249772971525634122225565076558730484211126429248020253052272551401728213703803559632628488816123218510934778368847817447441632568796032031533779837931346954272260250576794544516293195035045662349141909189860809663950940076387114686674981511522601802507958706857863906124524946265853493658221420156508664094558114633590795803396792414071302437188738197842064843934998426173221207757229140322821057528231012537478429383204399486457573108132249949141621922354662515718453100230110656107628195363121173421039222656574545328438627444291903271607420112409243478495484711114519312157646295402932699072065443033624060533763389599047904735299965409614310203809223579926306195086089446342508214190991485119864476090506209345885604311462683050257414150827753972012475046217426438794657524181132869779983010940054724348511263611318061366452463552792883435103025935483594299128339708512860782327092980310350852050959318551759469487176641823526761887847158149049517414631796391305938230270280102420974987413353870813127744716613161659965765504940974667324459972522627532794518930583703183178045214689904529843735660265385783461035998712697412356583733678210052648656019783059138305002407908539838765055122815752921178571301533697409229581544395236062263021823278892697467261776445782859883952610216313902730979323695874479929505603206563208656278802923886948976773379179434786490337472113923499119760010318558424122930686504055046435697204443214849809148843145832718917954702104570690539339609586656810046674861031474018035508516357598918388543573168566482422100866581784390353705913317122337259279288345307013705913782424740887023222468158196431470009431724368298340770323430606764417259371331990534559545782257059256723185276762093034751065116644284267834506101312923871419532362844980097078518308214281125072410970323341683536006234079741078060655352848351511923851651466965072414750432535302398323867392612389397842973126678691893836400885597256973314136449213113009591511150906152411611165664619848270689959006423345735447264296777222915449949532962109467648016597879071075067619092603458437032124708067856165769257267041053268387207103260337676566015586347500261823069032932345217273208441587478934059105369461869735257641627606926273555578078641848885429132967055017348606331814933443362315338012712276197795655482326862294161010906886760035284536613859390953639657192980779541035883076285554779790565876203401900612344357404672326297499324181057933730947359891523981025772452102729772620531643750854825692520986375643624575519021274480316534222403955871120398532304823347770098557701736554991965246000556068910823009917176457572435802020651945835780059092639009074756559708343909132432559454963503275466522434576444129618176903988966124037754221471505545066789043637422135900395119047291758114639311167318783077343351284963313284414910579191080860781832467832719237660505336818701184019610038599162593215637165429969323772852199168642232221417973174799088032978133082294711634755716336898463908071120466016008851335923102454333841505844598853073564999406176344716122174227570902924823455251119183288891059820592610977034028921120472952657364615633419715718703945303891698057609881686224081000089916786568786610816403125553458876901128955151879318237151244201472412725348924330625726775595294610047449344800464097654455234260543268903290003725890459813568571422952876027744685754809556050498804402264415271126809569208058524818307663308680434660296451407515700778965497246311587335265689568974869164166886237294914079261689006328490762294421033322347569694107745570417111340305081484009400020547834689133202546441313534639310144656550658621563849758094444738339215440353965788879484679635475563663075285357074293822080499168347478727538708612693427061229394531906982287807822680288219016337667716109351354789028183148961597746969323198671764467502147433721400758042157451585924899297878706565208016510479417666862872952731470014621086274838837975763615275228800796171062406372704798289384087283639545181888022551835877188132052947139168122014970773973022893137055177140690450529615221338108716135271756686330326609085658917131201108144320615654453968308902497383762112419953725009225643134114516506556863604507447361238242100835417982458343377351113890650364439557734294658340065082444648941383913463777255061583691432720728850675412311135987524570107441782082226811983390966360801270148251581498545054858267551514747465350719894555832146442752357308233147562572956980419316479714371961831233873335488380920816426904686567073009531311011059090473291264901399774293759651614568714884500644030657182742208222112636393742830924210037618018318259802061722827005810351158557655035408375172869726235545417334379712587671556394785563176196320459890673669683853206812303068888909487833488778312925528139875387870606836821711111033774157431521543325907252818866814852188542294092618784873382165813855648332119282231340853419198069471408671103985127625881509976243491890807723192689163807447052848584403435770976798017988282071887998883303575597412607422951523153789641166164914653641841214905167399053483573972048942194379037334694909019478534971227735093679034026638020206039846828286748157132746696238495168517903151233848621664728303864437316785853602345197602799503693688801359977607501533336711551206363666644972472126608384590365898813863785967197032545359213701105541794159523507336596509597191627920531392111995451327752007108595850257083759092653199530529058141126923552735411272413064479000145144478076652615194905823484347666011405657377948922387266418894373253027562066541636793608326932964521191940600263175579264364439939517483262015137308872326005227812047874800690643024367509167622734798507349447503861841359450448674844139110868914803197980616070765891564057362628898292750035809221858880706489089095110452258783636349446246769232414935329636219332967485174667391344343577784846122464839266764656348453217216973286972868726027633916211996050571279760685211514396812304030751819082572263224488335350280172785837284606674616424989645122571225540470459735385418667502045439154096142782522994020562323169348323037463192250687477256455953515893333804236349696309785151750961063323677694366532022840745979053263517768562797955228227305516364191750978498953007303333253184014422698757812887015364240015234516098484801942703128696775012538250627815018848416267755148781646117995884380458817227879154752124806526395882945150068703031405895158474881576398435321328160792866827424109233385013955349226715629971547209019143125590904487364264761127636873484873307675054585048498244404449197763915812894874464103237132454225111563591282498183765682799508362696321149675655179375740313218197435714423819057992718094095245280056995713100421740468618603215610762414452586751443325465382453485445120187609204632197303794083270089261779163315628410535315338065487096391729701684885225313144670112668146097158885088827254586283118047003311481351901241350010921318579391633786375980103680642878905201767566067175291671058340664507317994247274683558323766741526720180790465239645816089936221150403999421201980505280846071247745674218594686308236864207907768964798305465308532158097033964961666976982565817757896649551833382901676987963493668567306783676116316948847734288546614168869969925110945247678970926097456511285364333373209866890001858839149851052185368723198234190301438454700097795771859282402419928982160372201494882974762524981437867674481569912796124209050471181091284178921071112756647010726221010215674524804177176348427183877897104119129247940966189183029485738122854043335515628095751728019367472967935740186417387054660673321889112872737260534118028950010778837376698427791210567212202323838034597594991821953365934090237464298090959703882890624741273983756689754898806960470573588211841416496474964482223596844571939364507586538185581096968901761637285602721897896652407947323861945735141807778775294670804980987019625249980491766510954321777002765730208021080405260413382714578591048844068309522896765077878601378452921698045077361637475944446223872277723764869841414352323699487490840249323358518887585043898505746215835814382382327373843854822699648250056487045107743880687333977003401924062785998645135458808373512511013523662883872950261431524110807066241903539164760079892805446172437995205203325303182887637824869715940589742265646566597870890841252209389987570442490871544564573534311790021823030327769440472139092839133533283199034569796385383684344529669780558995621872220883477629624325519300169934118123177606965091842479554928027289635436905134235540654827628207318988172692390715798951067518994509688987948409627981864908238768087072146993326676436220940565703541220814429039562251272989481011777832496087033797462588576008426826847359683990913327043457025123599543932264654201221592072348156222458656967860667953764911297238097808588227601663159855654882128645226668382617094077845785114905211867428793903165091641286671389855234112099257346775660307098655648261710600167235184526657841622135219177769691047768358005934645801884325809446291382432377332258288375561168720261863869929984327359241655953987817848771598105502213533752986075073051218052619384226360689800068740793044742208601579868603915862879739905497353216726643578690655978724924980634907799234434415292074308849172432322461306603241358745791141737823377206770831842941800931702003189142476163221086778036943777267319765200837725672037289514107285389665102906485779730448038961266728981272227942620613346295898274513952939110580254896696190869226307196605192065606107025647716409420573822295204880486994237665388918971670928529203914515397211939420548233796240735641421674411370178148729954068087983824801470260251407451284102817261280780649369594116273288301418275269244274105737621667045583670117417553616388252161656979535734582799897447353429877124663914566167283130511106387461189247749385437231305125759529393626993395773882295691357566409781781117474837708187684681212521482826798745331925559589046736814521053221314869109172922081513198132502282969987519257480235584675147367437023846736524487393884494708491448307929606765747984311770881677443491763435522432019230126191042279222437774844557351375258412215741750620665315826350495899854368186080138186088857165456875502696215691658673379933030528953608386209181767636265001102635125614091788367518668368888698194857745328214057918752593027505955788924218917850651079581314161792924695408176478550383043470521882427854397220007428631523543303422603607129328841358167710707995167218498842329914352239372374684266788093749603601010530210679587469787359933289331262644427689887726983492093567026244022991558157946831693394239627624171967317703875183387341918957432600265690752098202924393470495811367580743695659431697736479322362036958988108178354726134763629807160723840159967665896544052538800151641528683287689559726587780331415643549691521392397109479875944924916608203791053929698960726201428801896085612942944405606370215688360917347774796642061514136620375314075351658075873631324215321518017284684735624489060563552658586037303443594677735785838824432877288985514480735355893675349234120870335777345239828065249820015123794997032281820890422195268820449343070296852631797364837904877370159855428821911257069918332711125994192061174270582199571439723807145173991606795577072566457865029598480888181833477372852684110854257592851850117005047460551294088363841572287904479512256447398630239328963673986858856582151904205313105679706408864869002959936342187406103608811216861048741269060678607469400020940000015160824435459400687366667659283750848713501984936925498482937466988435956250401084345401006925289782544463160084794107055339549633211920413280170413580669407048172526989008190642923653803515763240396190375850912437789780096903679385115142966322270571490202690514396573803736137815634404804802965086207521289736479700236507894149137488463702167506926331062227683717160908450094109909362293622184808215107899057820398272134246289593362293632421452660600308927219380551475124298774053962534152412691796527059652479368172706758249113550794147523796695538663836358937229234713777876580196654077060263961843108528798574302565123085672396539254506735467059676221264343493519897086900532256252084060648899223587935510943845109744625598396249341442454504913648556662878052822394609605665653157701025669777881373628461265786168578558230325380675773806113329102132014891498732584050560176139928589123600577692691778717594131407664978298993327108076197129675944732887978204225361733882498666510660878724972187092216447496444720179869605774634891650616250106272155312764856303358385226759766167631413299105669121577998488897871480709518859482963776307291652209526667870962808688668548556220002576045057408450339219771416675584808266144365681013184166312695202862723128916986493782127725853608433139559780346634473292788942874142559710258406090896942829707590600967626454651092162162039553687705261695681521784206230316344701794061547816464130960056715098920778898095314296242918753700598598249020020324518781904397456238299762961000461594909335511668187544873352912926562925290139564776599858587443987194749875727982467290074914283651710104752516067331194251468964812701347672801271245849819840357601900704187650482693635894811466502100956471486683220587687466869922610105675292121637617077906093020534892517604942574680989030721651733306888776083773058162632620021299650208580539686669102482795937251007540965816608267039960407799467418972000199269751321610606510270213604176266370818455320623747680467140354275561802533641678333506936275675276670181472013870459346126902476524263599514144740760915292359076063385264719921799630768169274373330027336302915092527585187286659888187217524477307668274603045036119980554080398212221964284310353598103385142983947533897907306366909377232934073724228354793170090988677157644430229384837396977055996694348957533071100524361137527213945164168135595250012730540438966747611283415067530819623969567350163518021558245092921750621253573509087773722987590756576859326105146524923159507468334202280621684190398170377730491706302535771744759237019732984500950359248749657327136419852934088225235740979394609857122062433378686901624162829884678310591217784948381305583425466382392791503220990183203128154182549404967464694851245702054826335145723846332745218433050914866105768018017433748971868450229509591641505419622657251139107547516998624359647075773971763341842243248868670483898850260303784464366462092292690576664242983213055718292720184250399172088655484718391031584015777588595174005785928049318603054613244494707314301942770439738438438731645532215596864971032461517077279730080929964865490698576374265076354105483810999622702539548578481755984711359086990638122460413979342040315871928286917454386254266872705370401424243802776703568168988370066046692778730134807717178292037646818314053702478679985253066106685780735257311869665480760692301737488057200406804752943551423578314035080801967290715133693676708757266426538572839363184518804807099650777535418077738251203380800625754335896247276794717489291346744161156022338222190763854603463589096958005010253232882899353284147508446118587036324819021888010526155324736212913104449820921132473787965584013014296272827844382078934539066759199356787050118041330002272159926414219728255750177001074580210934624224176793000786675345206742231123737058706627381301554840299194074521820650096187800467988269108835139509675689695200533720388676100943955404618880384577589592009315783648339558059582067123978073602925218214812373670660136851177204471583831512760857553909371829344106777208807662292678100839837119861372219834029345539491135728508184503666451417654334991255569033989831668040609358111384255193882402144035424121274594579164229346030847573167784965730485476031852196927510866424133446906976031376190932600485773833192936216376445229570509947303323744498831224429734982188668722005058872635519756533368871542393416466244551052535345504568993092322107083211722025190515691613870832847671301689813681431400767834523500044781528790095460968358816431268770250588611185494389388811456514373487197086691988452890609069583764039019414280075023450794507434660821785369502733281200401796008880731286386796715726640918493641912043780535218783007252392141890576912918001143049970898991233642514491155051366572345937296528133413704917121805899613582744188065415741920599032786300346838665376887705674458710657424822743437624356902470825481298076185397814534739676257739070796974964043993158068804724050266829026102595369739562547255455112636137853052821738850115082366956189817158375153752366503622537745380011299160730543374429445840263439419618808240038463415003190495713845556272987213317089676991193461026667606630414443551869763425481746150134776341737473088814041221439489499385250545757240170788960194862369566694855423775745708308995861313408305558626546901704281299356967278448590656846237719615060659591601192715564157657341362588817777103243286712596875641931810312559270185928242503771760201219195204548147016333224301839584314350272053826110177585462983749074415347218849155427486550216480632479383160231501958012307183091349474054718566890649286309334463748189403755758759604451790400879887380133100548016155677490980704732361002276653588839484192109617914876299220484583375118618992698816017005831985192582026915784270136754839794746615163755693902187862615196878516617354658404752002414518375056215420212350680092771313149230996994400877845067863217996072836818889328327130017551378036661350669236468304932186110551148734263774789583488968387636095950546650709195901301588171463854137609614802977259960717170277744385881353304156645529933227798314270256608066068860280308405715809353094507264978145778639926015137014517631625696884630749453226872041187763377575221533028312856274028162978197281743146305248183346836525210821436258913981964203019909734522031332884683719915298143187489504254006136351573038077616488739619564668449848187938611000526000517546146793308610887666130905894537875365225340200702475780074071852701443164228718103648013249925613536418587890758183018502754151494918604816782424225890298655160003513409541961165440795760933108782775398030590842141565736428081927175903218930294421046685867998102258950758145978631593925823671815876830286343933310197508939319064146955728313273847619955094040163518497089698825189818581530132585459858101059936718126186262128372629444296857506895480183152862595255851655863628996745351424357346795549484003189961273280419443508575659143847210424105960789848807491618035806269198992296919711689054275824535745761463314843058920710478764852456108489226146454581184765889394149474370614482330699317529067678186455823999877612060316778650581655138752439738099473134934507394822834571120514471383836321440853337979171776483045511846420296530434268335613456805931914338999505630555049797122890959438754612795567348504184506429400049839642335073896354095555628300336826754094215553369836772425557931508298344784896204236682196008175130258559246738800738873128092171758218061950748865684828207591907080097304602534520239519155399533040737176609316145419848308806035897722764991690396483376733107043635613018748030560752696716122236267109585836871215252669354963109671996827847032033846952748425523569239118527803580401844103219904549790099750479139527648489799773838643438075237504539387155851607864823386703820183146883216188181374103359983900643920058735858442002624591851527819397744199455298698532508292141031588218683315942247211553871948310512380874863751195070105163528147864932353555988276576904710193843744546253551069236451352508714273430726446041062256803761234865474740480733087784100500092075232392161627444148543838613515253923074184869203798108863548430850902797040758396309156452306496615780362959489927174076550846948131735932200464698838682581110681610598216625113633056357544244387017190691461311272338888035784984446229356121375568061115454789642858251281210925085665388620259866485967697171364564429255280926390043333619962758486770022832572117311522785426126300948052488585258027001444759313612270165424733607308545383584034715974263482638161049009010063207863834574225959323526304785843685334694376130056652267030300813742664234509430688873286686240655557657824515575406131043842677103053340596623183287228554346329292849582916803825853759266525471565188566142209453960649381612441784619693041441916851051266121220584067220232412504593494955421799751395532311484527545361943011407261175947703000396657032052212178892660005891762163631262369722542994135801442457495462507740289113683161175804144441527525230275133860094058188814903071991332663266887910777544557208828062317791718584408014449239611146790848219343315471566213826839208567657534137456512297085760239413747149716066302049633806316627993001684012042636028835946860252912996388327873353961073447368983084914424218488252035539045769601579907078856259477547414510984590405319102518952167381286900353198324260073915748761973045157152718483807786686341298364763151118781178209013513982526723766071186983140573545325451167420137765988919251122351921013381428816374188684842566816584002912900690470701094056523793609857637999491938164000717030707940224309017707506237796627082094656221275760726919176257607173853784051729949984944527844401178949285511454328182749313227590745728654720035275329913931456749940323653578676495099683100636691784326334646515209255163028239820437001474931971971560819083484395471869141225160856107071969771258609699738306474582564930526412044045595588026602566541143843704768950727739749517466767643535192804331923430888405874910859018046185905287775727274700557422160192687303040955230957559730136503004176879525270988816573841463165057389545745534420907944189925399838324234812418105416583319992066090942333422998157284373761272161473736538705859012516748227166305821279562692619276596486022236435818581484065858658501973476655616893096188284053677390516650317382215579122198523780028562373353476626185965449537455525178867372781293449060261419534000756059161277559943351531452231752236687815879119327936030787597700725176383324799974060518865385234395700918793877997065794039920667690474647543869137071082093143495788201426664294155367698256572947647099904216287087478812257888820480539471506515398428336471786965689431242233644124523423283653710666595932444342291426239368088282027194027286420512355246129139543426501186755621930430917177969936628974294136074290249539844591790035980121743144534121853605534600682250069495750097538186909764813115841183600669065637420506117319017155582042720463943525653304520454675854124786325231118829099994919200621036245466912940447824527539942539611305350047649148545207913542354063501822708978746009246920271391998967350278444061007090536882823221939321952179757782270975941473199255336553013383640584487448238888510379974746621866749297554895944100658479822829263115197394852569958321767101331724822544015192851703480460026481752294690876733362605010545349784098249870551676803892319090060260805326240777163581675062515940583867278790009990126500817151072699493469744303926404295442250846679205531887399573920304788830545386681280415742104715212078538550020233183374524179406117975687087020167458654975197279564189538436561302692316572943660841356833252269022760172118395894327929946979749040055918099526869741805054359486273434383367061219390784077722803435583013202940009959607672365251170554081306524025391396474273647987758957706407437522381941780769343179933101808890260874046904932780197586533180318145657451616899671011179856835602956186524056968642763518260581269252737982657093569838831951656086633716264927490964696116332812822869851874621621384811969078332879643025411713773298282854468678927674555533836411579962905039066813185203367892940986365379110676715694051146171389835040133425297949693838605394637837032869241928112974359656472123460094677531623254505076037379447597603632704274604959853235563373046497887338881103185375190813424591946168803512281975079707171325523140483112167659789747212309182525983748050942726341430144488052742989652627003703051952987646607744108328771376805388352381567333838665755086343178430744529127791160081723784483398193883403920627605189471254313408698864203281488179623551001908255910585568044872862990133859350551986421373991007076339011397236632549785503259017574218047539892502300514561770020598103599299031290017462711634422292055120717923209138058293818828520745332830227330490961007453614925319227550386525724615088524749603807363808989865866585902582709421643562493777502604913701244943565836601406152774836208785759715287924114213743715572179946428370822754563066030963362339584622649681628678007068893551970368854828188413904623417304946278971411259393609244577776047880415574779556319335113325054240274516857193748327194875062539835993788350124580447727727979207843961999701633817433287773218383498426191343520339560622227064652245667000965042210836518441680253263916554545528167318751383591679209510395628234025846994876769786330784111300492921416509992712307557402829033137794184802476706385701088978177501845619820564995025423190060425433495394390325656680856650810020067876531331619502836582838758582875097269145368431567128435715028831510822304335806405953566274661526466671457929284646794220179475808069987370154905777734878845048915490593605794059142512032816880704484674769822828230053571111913459058548165291415852505872617439985453056976590669452604714790961173012634922261550327339198318266307206742323008299992802076989721090786938122735053453259366503523039557118578941635242225404588522854055283966286723862769856438770918072023516947321010966335211440874872290684824043425468353819265336333876201265042884473735402178827647775573802829239229100357337981183994085392221909348668067997348042432241710953391118830050588242383309313267705765560594275482158666111809964735325045069777883437290660085617650448530138331958133215516725740171818400855761454327379767963266353552846296856234500437929435637569136451408142377285085482856321345910151967751675203198648270541776952116691699135869107200489303245274034551384343995085255302143698828299641136673372641573356337450749531967083202147868154813535961465413671463458588732654234074847990060707511772300558829454425272125728960340329068340592766779306292234365572203860721855361313663550239159421889216422801620849006315363363443911734256877931892687660552176310277728307084245541403590110812936764620788006262108238252584905689969953380208377715508672487467522901899821340454858318075510033120398323541734170551156479480599326685012508871489107394545725711747626276952878815182066249408535840084179235910860848239268836139599069487477546883837446021510364900670939575734644504510048177125448369123869776516337704167745603145978291920143033697055241053097536744494894645017444968526331516587311062651908765349696250707931829342846651526005691340144384981609618215306791997586059034180963649372085879367925023915330893049172591622153805937548776475848266167788601393886157847135414923342961463994374306695330452574737442800474998950198654800089083821750931951272102053339472635697640859040854920550903703556730144579375207054677060901723600188638012968681450506140682429136577060915912001366931815706115670804386366721472693150501863504600611322018958472454754256197847479311442226810073020649261895658464693773173969582413139314035109891698676936564696738343135669029026526517188753450704717047809302058293070404500685813905373885113356800515069960094016298187357884647694072996147634726225732282095787658544069354421714972483302195610070164186154337698937975589082145158978296376934308113949070538783071307963240979757206495380602028049676680178363214157542154589143214414313424988027192780942014996822165663843576048726472730347115711929142374565784486410514335640189897350418647213717820062053316964656535098110399128827402303347575573395941254784499383350267176255346325790818497931744059745313927240377014837120630877285043814151584136008345803886293565744639729945204888843884451004311379759700316269624290990646191630536809478951224344602726496019193858368950518377440487433380502901697947922350472672478289808068579273495137277108505284014609418801548351171894455552900776194597031992012718351190923834693601462014077426991992185637273160985098484751368449260101440839531823198924907965574841034525558139420973880149825220210843210511497843892282096218199073856680858832428146065920979340226421146991873204896274743356509137419898000555279051003389577996720691737689897373779675099374988310803803446820360015839859628974733042661303093750847665046217989676428276143580226614996954453738115984746108709312670786795629552232454440976070469233366809954789115626434568126221810857048821364862333321355995896849139975272272152826549461449173187673651640499917460018577662124199240929743697104581671279168967756202154259538765849745570574987440872442511167759528823376429654331351705524240564411056414890515314729250645580353014367719158268714557675682506000385654823005681313193548756891155538964023581540294993798096908775142863201198181006755176736821613531630198783604880349104918534046617208930182824164443737049226885472133711110018846631382587892477212167801611138200441605966100225039560535311865639033735902848024825536568811867938211759253536355915064509021020744340898098570236318173785561725434801139284487685858982783982549494563746003856184537540971228613417980502008844610425620471819269237575640396093544933127530744057232400772004364950211827522076081062474673191842941482466575839396786718228084032043700741357142311402051616445136007698219122605269054402412669464239906630852708308242332365451941407353918125613705617168767285463551772980578226872912685478960725766634065501086993779627425571508685839756333569678085636681918204588958896752753202459860069851209955449437031297876683535424107582072464225362152349448033534523422704608864457134231646428812542402183697015449880461451762942399179863508829977291490543170293048617679596143748073397250631402753452540451235832734300564453576090454283901768338961407124078800777404381416161300692185301163629952379814456387920673594684308255572849880032488610759414002298700176304589388278295169741782954769028172240037999857327735556895056475437538770939627066512801708459348053368304682342301110997923368455313273935967086258548938132965208928759223856896877498127060686270788983602501996658457309009971491832317979893296688090213935435149212817503620845157412566305430809958525128582085888245333165728908110250526695503499897584611405494302021146958848645724087685711026388645301247088847420536696438710536047108444140681466132429286235359964586508193448721754694505335832806603522684920939858875208251660740552321812020115452042374157521052245562430911960800734045088508346629820756657134942623394024646617731023931744702015534488512933948836012361583651538082599296332411794092928873438008801864602319578603298232298303540006034761195357898024129255954126117055665618168628670525742951122206243528583633595748173208246587353359967302864022018431611257741165460007969540123666785180999391978186278091559845966314822544416084494851834927108415924812713607510926809738753016654063046641849034005141555540117396290777218031554138502484901444698147349807809008005410641372983030457126928248792284511099599257263542543218298012987861723751502492890367913487713283261431636116349770569105777318434041076086158425522672785166081447042234062934338722230396665195332417195040442539915687760918836586200454213839958800234835085425426000767308562642075017979694640563772923008969940649400781061819266184156043858321733654592207574781017704355980238570587184393174028176705045873379854144687930830260145397147391852984047105316703715264684996018356465689863348392828100680673906678338093581521277617791145433106674509474280268433266629217474386611501487711209094301762618658695663037701606495397128532444206629876300031577387256013289632375176469902901373975081119596266854979880589279192730904721722049928830182110404462649330480465578706151685411504288958275510269837939103502923734204035008601848778567783258471613062383933629991232849738521993461772420143267562332236266627643311145542451598466021966309995266853237499825834227522983319062656794703944351402834225784013308675345153819387500198015635575335616810455539569626574710072047428634525001340023926687485590305153796506412460370042467472165246567981277639410767694486048147639078466825359589618653260840908773439842301560321131099233549557100539024925562187629456409568824054251461933352746272895360275639705648511433789399893097733734317867675770974634148555646846818568160813171155990994785635224723158549376699655069756622395486757975412284409750071166106597764718180161830249650629281601594827980804882978881116942356963702083364337541778519978872376638419245108480014598454384063588182996820316148378283098807590211941988394735161812577946960380496801247932848785175009463577012038454055760243054032328133223220548851471316364330711332398812470131599243401854948872274643623132567146221816701066189050261643104166448054508123977158377090857428850043257695044027182289388273953607760228194564227498038159834524257591667121126105546342807291634774069778257849296914745730262804689013658441331945201262472737986035993410873765921573761924304719154956435439653630682339930656721354220815474497405282435069681299257033312390303475606171214847903921477310613147481128677412843363928471398495514068311643019428540396605595274032484007688922747096009712828451711089440797600895046806082143212651538984003174991501610092283143996785172526901361543296240934840173203777653035542911619667255791583775642992308587528163128824290828234704712015546313837205479793479486435331790030111497734141722462388657241046047090459455009297196104396219539861224095116138634041899927858384517410596746130505420922504917981334611846649114539332712055636543828784978873428515941531683861014263841402554979524045833311173614665675350081618814489679556249877816230948534868256841126418960626776798430893202147323613208766150071981230997366263873318807790539727580873917870626261754373964097707743489543682045886407377937685721313754165703250192890389785132953234489997035785826013471420194880962041593091763651330613803687159232907022296051393899797558697193246752060018141090312183617684861987376069655413421589243980980135022280345611616089456499366232040627033233865151587655372994120582212742973192235569602669439344506242199099763722832655164135763348023855153198133975918433134408351133546869818169576979800222326719879182909911324727275382067975420818697826444699547924579694151312749811729649612528866824653528986806689501769280056538700708143103175100342813351858022241072601620836962147050642609918121265856275716681839665305671369727123147783430083380222161497447775417841774251662792599905331092153566233570258653495863366032694860899136076440853422055869702442782376801956585056872699293042668202936947625666491756116090193631824284085761298115448547733418981012053612059628059422531033155939450497664307623855096636372624861420974043673009024906256314329868349999116326128683689445533624262247100489003558891093778130028187759077105097845868676446371734757840185316620959513879065650079639838620170485324841292061162015528121544892600145421374234288877998986283524370447422436677112461481810467493835174485369523767512251044475787228342561283076229753617619647474299520332815381198998207686068978988518973068628742840610377584998296815451976828377893273275837027428709731050598968857209741250570914505189827916890531033993168531810244736972629989634494071255979783988251160660442836437916554742290269582637227056985221474980330809632694222687896662690179413225072508818155000737869854416756629547827078715061671561774118166138299690789738245623074816222607285594923576761305959770037772724751952701351923670735425843016480661634915746789714390587556408925193788825121124513172906484737780887444615091624847364384871395245445193248852055777807896527382754708376471993665338930110574747597724052629555133212169537873038216596875633388486990536979140789209737181963136941165586233591610923313064444836944404843447535217823623461181333938679058961533745423070224817366209161736250454091313048697757915564130884664187836318897311375154869328000124826103609057146225051947045802560172278439830451256568930071738158493142285309761346700610252983514342498858110368181214326639557008494444540787918856795107018035412239396932452702203948600481964314349345319316396632189269995929140048180897903983611143917260493930143309697912939288016729698090322904750393352958895566750657647485802772610581849620460370992510583561370296904733883416989873078303373604769161566706795181626121697525148784969523989401494208068863574264735362931058177608454045208600545865835332954083578404811294757462320187663198396054367797065072019151145955252558713792930579771303628239369090074756521415857553358647762386097763899902120495921318465530318074814633296547157740900437066992181298074029165296229630278246401116595458695172215774776708918103732390867317383858642326094086573842491092439937553469306945778135624408543697720946759598024580193537523014686134388000035812827355005062648393711167835965945224775582937995598462934477373153052329556010709559835549142240984314379378170912478378739567168540600572848470750918333334317653905986445313766241398879780474893538127312932981971615733504674630262992623650729666807614278010925220876198477133492337216807316153650313745515072299222380494072249366963402439902728719741104173137139655698645759633754498882395000649936014471036535405711198796299555062035894228343667007960651192334262266640032200421455279811486752137406671082966545979563230462707162801673178482433561249859882004629027361978634930402680347257633284769520630217774192291550124080788955634907479144674034362527183585219797387903174788910404936440368572071459531231618924559099876111503344655961582504911575097502229912151157471294010059925889192551178584311760985680950985623020161216077889360470820118413705779603635214770864455180732187009462394417946050784689049914774890031964113286220483378249439568559898872320773742697604143411887161459120910255581514735393924793785153365438637667865716287634499304241578361206154457015799911521330589837318234507649087374482602633568344820722318610036856680918292786336589061655753327573606440754847833615695633188248936023421947278613086997722722443982610330049405647912558732292736893653763568452529548519338430231363180476745672666518524913008550457941772804472975085265612888414474598279170483922843308561525817678010121781275243051202288774548403569764326810265639154896007898536072547377749482762723265917175725447017413582728796200976220914055879834120062125953849986595219467684562160180429260632182738764727238936635922793705537339698831046940101097697443401433382272065421277598048907265879079472063168027485755861452666223467605628594000100961583454402787381365993696648316109194178199882032960351948448114068334899752245984855106104051052857482830148057816593690039909660854089273104652332200012431235915245153076620232644103987507739597542624044774926381333253971582455573334133500917746906850182368738680617259522124712158934944782758066798356192520051240291902006349030173680936700589798383440833396666588496408420052594639964977575884365602376392618716819653615841866225154124003438892505519598171837213387768428384966706645293320104018522637227411837256304970499127438716738962359582476140195209827657323422967527049032065625470671477148129037993129390805133894786363986519150302906832418072258282390125800811603317264965750415229795473685327846884846568082814540823144108238675105380052981938077087714175658936829372375594124857225956275934779117948410848684980671313621137562103729197884603983298053939790586752614261424707617717304715691158865415265846801120811012158071389620168696754603808229029778516512716871421843729352903401912020215116164004792175092014589911536333533073956978087992172277648205869403564988363199673928395674895388124466774177816405773626411354265803881638908172069622049141363547838372548379127104197283938311557327922902110157391431155424835299548631163980005484562133387859413829360512282939760637482150186149933678967661459441145450698812933305758943638321829847587172206873681129769884478386969207688491117002758599708084666926295788530240857827406534759198113291058693684461942203626344373116804807890775591764941769026370289698923556300472759269401657388023259156593209318628273616343500683397190217119272751625966568054367830398429878392583705217629798680707609644231960896525738206155003361787450525668484142586119627805464248327788734844409799633948852774752383806673467567867675359193949843472903509384087369160938432711094313346997947569922086562702853343821372554977748787273523213202347458372637128479211123422909425567112571554384867786471223150939253716855373078721984048413859134879297928083045052108145748879082494962999264143881462713340795404903192611421205003514477564936377398172592308148638038475104935062223674950475322182896570463583468436331712906879918088558467715990598111268427133052785995880027694941649510113420554801383811036676754112081589760546472970225347106727602790287801513033199641399810282724076499780671906156684752279983790396244132657480990636395592740610625989497886719267164912478873522629781588104969403694758095120855169496010118259181160133084960819625422877555842448542066042134423547546031607735395283043198238540811279021068879731948695658013376265467147965017844974691081418790254030702292691836997127646280455250473371359618002249732185981590266932345165825454950203254721924377559774756705552951753724690032100893660065854120411797584096206734332619957486507734070441798766207513316198884988903177975041121431214217503370998808158161733751899466914348506857506242296593823799110499298535894558682253435347580266803956318379236804480772873573155339811445562613017949790064065616653275666411030304482587113114326439574418768101651511974084777323854180011976624245546638113026386237381358481742704139061674634381654469097034299963538912870378946525064616070210957251553025314298531446202621227763041127488376420548828111225862535130932273976290486720575262008358478833730728097494223125842373302741932734403566367188420493463682310673791669818987622039229764940232616918304543828806570071346971224751975867393684762918931933683395665209202089426408415387955678458931501098879995062979361101510922272535949425094987348501338244388821303181930652003610931138704481851890310323312777986741533057438447979357263376151846380014549130045678716178932282490902126631150545944226289861296841526144633288762543730378585891099634401566094885814112358016699410085895477708107283051072128034684720704509495874521944188960387410503933252911243249866747668811756482754083362648916941121415433069211186799484301090642248493176485677882050035333293471380645017684572873926907548981751668011845766760339427819215414678359784283390116720751755150732798053647103399626245595966696216119495670636500985817522840193887946836890685913929422078244530413978210587883087429129164006386504031290130503712084492202709167554396045703211251715146062425349780545530482392505058356930714896417925531974404025277066120187462417583527522399028668735270258689964009321221052876133206849695489777866028729806203093383734553325853077778938999020091136062869578596780898664069528050142790393819055033092012376138136859418492665622358554389332349341472403840632062544677657144988613849980075882179271065489770684674106034856709098873168774925269420921738370107081880558414996371847215118540680649303107207112901078609331618930884280269516855763201991537394736364928228702618364303085237429543425569159368123563433406804457106858800822114916256203886303017292432751985620809017134364020975544082758894065028520381598731349822018037875373300779384925832034697805186664991282703699228182232400999646779761328636056744106725063591824460836918104424300068025184254673127053171918652706202178367906243584467052107613184245664882431112838154250257798311415538226173597838706251055598027836147468842317597632120611965554841684718869707689865922167518008011686850374886192138978818780201373166878370166696960576083452297816997990415969585211782192574591453460093587071261662228764519164246669083395292468817696983245016187335417906322651650080522168894421446084706331874815372363769847680028242206162247037201755053669791843111955313634366922883955677655280961164096697278910884333632567408173131369679593737324696568544100769957615947888192676252296971030187220515362638661919435767508493548475780690657463725788242556609228855103579725963067053646047306668907487005778344386492523226853325100373524785559497230313487853296063239781647578793904452484591608196209901178423416611596102510492309787141446964413904524626500735217837023176115007600547888992144363022280125309749641486982976552922091949553387475195147014508053607311079837346317803517805417604988863495369450722262463509474417901371871102757588615326134598014161816283537386403397148703996405126692534000366176939951528207394064442640142763858065517944597967515161749614214173629902499759712107032398793858716796685669359720535583374407176476895325382589680547605409614869748972526937568745170200954694921683894863018110412100677215054288916259397195172403575154242819092264125752453351760057727621668214027915669652858096993865210259481190269745408100631332843147802039739760325643332682650852900104880318679388265254037997361682481698176731970855737679360983666734967137532799181656267240254980979037552121156674777340906033690904946063836447609550402098682317402060956218777618520962547606763254223508122821554783752381252168918032809197617195228998616868590934049356230574855726981597936751616828874593282386946936560591970326179038427187753810530005669502229649930946874803625514601804965661111024022783504437180989238131596832382593963388094838625441821198462285777426698712824359880227641943396953764087627075946881438407468085499492170405927696774210966762370157818156260271334825492447055551994460441995998514774685836683621941078447415868385677408918056931199911444700647615252777678604681435876940464930340960146549355602122232545845806995689347511498055099927857303736275412861054352649103729464871657809630252544140775563605309881695821811603785684840992054034818549677871692671572922589805148961531075143030110176283862016596653735652664759499936139564076856590074448564409984704486029385078038176457508680870602824104437969996214788622394677758776909149648055342390982881408411809217627498610777915981847898810879968857308903629477497489760124596455309497686812095170275561208693551289724524397254634850288885809252138315748470799650765405159009156020806136167426147137405817830732471709700625990271078201028238390932839243944139762813703670298151915917193212625662890424752507088940617729170411788103838727951617045570270253128169930127874340431498355982007728874006766228173354546080612559995887949854095509378653999759096222894764588632135013734808176548457307706005258040439182276233718383990377128141272061070447103113731744015989844929987359124596644090414242427285353771653348888723257004744577392038092799267774902517303470987023098039200651888518049205683584015073360801457473918203206378346476489829180010009055648028221095058527537042788729975575075175791544196687997954844028227118557288639544760422869820042123507594778832150219455590301044871959377289830642371078230579232446888635231861970136860938885248489961850963098696369817360252796991631543133714753504894000370314873458838489301546678408787299142129904015052399976696443726971900692700325169718141690222166653104137912104491250528908212448376183323273726262692853850554005901248126488705453663277665986678124919337755028849185361205682437944574131734792257065020451907409963973753520027955718942674023722484887321266856411456751146797431567094041748336567862505589142138944069823572797802495705600416536726130686315163488826417154559493863345147764569766825906225437258015482348484799473536960501978250466687404890522205573393474761183589880645573977481190117494980531768701129200938277276927743575270446071873667949311754133463681382503046520249021173291658695065975088294935250073521083855108547512564300971380855443728862539571678020620901038767671666155596285398599932155243568580515427627173583331623556278364822292726529816511444779711161389883700561682093301014949565977146997979789402809835860289556331103438507480244074998439693018630500242215471691690470394025491775956022375923804946832567342970346485455444649984503095785652134816316081519886434190809354598642181988984926438493418372230947261866237291074733261011342610565358734611846983550346371960939509682803315672851297239927334278474668705285342112319801093135256610023302409213041836018360212575352955132457800177185302358153664160452751766923341653025561367183749931871165887725285309100558691812621932983678643240098583536510343471732940424149865072965099532604199403617935049848818499564724099495757018265039629219766246587489909527733181642713647008778725148378972300149367277298970331378276796377119854102067631885082053321568975980317712438038034433671833791491023797993743777805885445025113254667101570660070394621759474762417302102047135348839566371814310017277335392822114044871347208140113505131997025211004160926811733563718423430052346644465414461803628686517151719824768348204658117247125062283889358732915548883650850996859047398217161860056036623819019688885620507301359665862502545159379447384575843175882391099976416800204905883856792681381807222476466331537944789424228950352441899285209943352479095293569998449187842033214425934591431321183037942907080888756948467942045919204067355491046928721986600810909221955220775861584427172050147905864813853494783072862476033287952709552733735010082798557389221463632479347080627009565009807986917725005421109603460204852040210374841177957472310126734186709192073590011759530855119594378074577550597506828565910023827045552457017731119184378016239157199719768837134066507433050302089236884840062438456735823562174522401886209705016564813616885824774897310234380304795148045365555930092762241205083010342215173027273753624859720675672234854525807955080459706709174367886880257149695412959941667664401821694693574902258833208524845369071412732815772850822271528324197689952784011278514913769008841632807252569861432857662761206476309520479242939465279621117217824117809210509824852266696346725845566953335792192467154072804564235113057953698895346555880369699241001527692720858717835035111839892279867911634666945614617052632583027320338765923641865686143120282203554237652293924017792212144744674709120241532768430467026141730498724909468123721497600216313217054667279837015994147601270771297114374897562500187659778627969090910577625253932038326753593205444973000564411134126585062376431768099485134794417233556706272470515252274957213379116216821758765445189538977246053861704669151152765209962845554054116087475808730640125277736530853866385549165076603220864701297938317677430091944337570909836313780873438077331869121335541933951558458497684734003830041235357737748298825323945086729956405444395235599601698222829275465042280438120673690565020790064324165802514435307403931042219189657374105833929341814698799509652333205699122694169407342055853781063298827505203513782035880746773357849947101532053143769949114436795001802881171130436160895020630768708743677531799636340884681791191998997350189803281889433980629016323725985673951542401173313369588508186979316158760352694318974046747673799350532339566105824873385145594575336887379409702095674376490645616996533035787003794459440649305702881451002835803737408940821809035889873254890121968215173272509525133763370652763519515686885409538632611598810877627870758172089020672275965098560907698195366816665820904775299280422652600454995753003749655011127139852240801071166913479971790849387541210611315839184680811412410787093465751247923864010200899232940762776589801300955616412193040986446387454722166810807379140963370635716774274893458428441093155236688500108297880570619136346436341045782215356694897686559127066881825046496109338262740568148202029324734772294754262108270487971861673770254525744045675929075804340907692287448811873163663857864883545323627192131254299511371173396407174762652953798671239948699309175911491421808852246846491798295484171159487393738022485184701585650634555786452208120794876763346983740948743410772806886665616619342493631359747406358366101268663318309464484179873524248471373813657565266613772844670923371586445143316323902505712077721278269112842634604351002821006761254501944870286785277036024359868872931966105218235752047431948249990454055174784157082057028556746896973375635383917537026668927779365605108103735457685594775958287933943077717865448625125216922746964570448155874174384777016980904792073950706108241529096988701179498708291874148961213380190050783364269718261847433632116118340532501600953651845705033452336155643435195770177562882814815646834091272313548231806153003002315106366588012510166734176898752253596901095339345187599775659718112637752663064665186035591061426544410659073208725622491711183546691796226057934072539040278906122347778265274171175698691072114623425399497231205533412303886165144447184298572135262786331292392176948966824960754363255841800466736221419791007819857845751293599088443147436414410723830357346353028903561221054240850571624491930664911033364961423752030645674138896002718676779791781273425180647769706603928339791760259541801021979585833661648093266806908487433420391535938995480040862936920247607882257020639846084712861358163126461040286816302406484224045258901646573964370028286263753568397022353178010697114039181347574642029418780994175230495649385733988781098194741163611058394637858590201983583413312823116697691654436629782983305955286811481727509545771074812960554481278795108477231093656255049519020878429512524592188924154408810297088593649069635293575996030533923260965819964825199670663332576600950129383989980684664900412484111170620486800693079699871215575663709566362666502023426772158059766833167286256405419531992652096560172444288848169394816953353054160558773500363964106340104311989208559424344660944029848816800734798154877698907765157811153804615332763096943783663129849138409041298035585021563323203776595754660760309849404334971920587771091615867545405208709101795612319377977565140810047102267498727667055267506602719605525859998731724194437777355697307575772228808334320387820119323367615268309701942415025734692692905662119982207432481275367703195603600018203593567078293530585801893295971146251901495191606952070906604440547198543417572399700935162367146153925420419600864410181877069926020402535661183039654605413887065000328506946957628276511030400130887074053827995772104681196056563464219872671627130673581900471133397321854307040201354782379700180512857138793364750407479496358365980582512953412287606197582832269184490238377792076698611052006424008090689122874678752975216153598549992720451808997755878353581713827109158989630303927852595638450621830293812774545594390279878581975004740348165911862782321763315002744020181649872473193120434422839645323646397147181797332426972389890530185209228340813060456068224313023612074437270889009254595195117554702223223368857777799600351295256797769942691332929027496611422155777050611954628598170567450588692407945298549603390431261408176025595159829380921264995834411781123431137796346107690580008660363733703285036874968547015570435256066690057375726424359292802080401041412622714838750380679878978856917287383406157898091827031263625495392176301615578136179556876252807937856508102420499264260076555720690490724711791202756352910068897266364309230374155466695375636070844981794066027981001211094012242174153728397991627174220517492257052890249882128057582916847378061147853179809881369990092373279357149715139060593250727829260684641841913403686686372894048406133931808225810271820460078416939052718322552451838969312173135464896411965499603414429888451735122934394436368795163079706456295225010260126429483167586593051881828283236262902355489031381626951647232032473538152045212661954789886203877774456165681061871915125018338621243751267468709457374988454710545233849587133658061752358164813246854557253027216225878982442744722794762996094775304346179691577257723853298531671920318625305620387530129282077771300287811280503599334772676336795870402160916467414457549950850630006538665977104736993499798354018363913013959816518182587400366251378374188356170607817295453465271886225823063404287545731190174469781980386902119829917208923568069845855208378442339349918506383709467218048455505192382415723404418591374647638587538567248172467079001708537621024336433620255903886279739598682679147348547947036324391311579810799261148977089624899449356559499666409566758950084468292535251957753018735531369089709196350652443192369066074075777757855834846677619110888528383366959803149602605008966060659238881768776285331431812348591626749813952156970524078721140823593503394509364562449455208244010045605094831628764003136615278627622030393207555150409605602636044586542035581576943281238575399608047134304978768090080394813955047693834453266186069528166786611643473785246582078186808932835705662179289646839760847285859454006597320584425317597131521915554360249361521485482809426778305158761438886924925549664994082201318587750344001187034276012507909254004790098618931377060438363411565541110600778717406086954782862454305167665881583764956927610212801157475071182161980798863834364904333642246287972903019878554090632366691374288558274061113561452185012460296723222758177673397195048453389061762560863058735321449427462030621432861320664898252690749266770210207655262307094569639863095447643139385619328456114182962002063281643211690464663970386850203637924388636508854441634938841736948669180246415700725100370665674203953607854224843317252218646777317820824649001380185926421564639965497071528426895066524864928238697895794379558112919596204369832424331688139981486727280649925975112998623697263681791513407010956375595331123473182498657862925698429786324498631751649842117732299703615314511994340971893623034587377453780990231895820222223285158925587097224762498085430883739478924723551598665257892646509900719700801664106670191109529635743412500094391265193461708834263861960784823023610719494497609812012611717803101817238109958970025794859723852125216575420096748994376678718838216518465474458760956830426364931821226662088120927209920472882846717406515175604507337719956507114930113613234811469849607477296218680266314785805615158973172456184047499457895445029209137980136519958936827841450055705784756009837838878825369064026883106088625001313535881246046473935768731257713251041953738722451418171499353597005781263324330422878301323372980906598615223806786331641921895974801379895506878152536882381809012875922688071173633624413365931284446535253487335513917190080690373597715720382850989556886586465486406672388114206957398569695263588148009276502977405348811561831203494247649368042432733182761007221740718147353519552902843361249956672558666907982874214935205721108126591736374425751808184289345845322276371890103313288251856715016167998582148466087448659218435181577160426787046456254096714566202572464257842651196175343710180920611975084191161813336450566309929730215868661446954969320766845991277275374309184080331982907323120332311467101721745746043345940088588517179443529933592687825160789275308499016249369706203366777499491226136824572972735335915396985183613679571149104968902464157885889044106838439601598412519522037619446704052074648286545930965998187270094539170518226675052885734182334247981823619234193110612697597611015766844220304783688548395227989853570742507733565084735277456737699701909390726312976520798781573724527167366131390092190014055387380496345474043105945875129555192543246855229827013435710094091190329704006053563886376993641709660516087395271758895107845516744787818906401375799730841210571884484235071165729795166989994407221205484536577495757221858113050618771578560886212197177007939626406804043939411553707610180082142246311828504470567934267007854414088229129606756231491727482125449113983089497511070964936779303999215421058681616499388845853675110931395685867601856659675032418888264411132882058793633789414603395773331803668436387811017659724457792798106577269413368827047182558872068298027636874601885171931073207201324600834997164846039048366856380768276693695420361034287519738517231197425711075694273745716651422247018887777296805667772791219135762956890851630192127060613552701449038408184195145021940685356060795967547210327949128836444791965308702377358308445845005511457649787866895826954646725381375998911475454614631673624562616800843765413029356822340419791389438824421640288877185734646695115996641883732357403425533684132883231339825336731275911752417610174725516125885394124431302372391219226558468662960856798518259974625219230174402619425988537922483952440058378593725160534390384110442804600054098047168055928950697630245997867652191046925519570266545707131163794679109151235833517195730805107582594948626768671306219105777926264646901503205425436523927102974246578131911341142459919838358445674461220755207149024513501105294194981551467577333807258436327442616038854289989114744901725223586706709563506288221896868073500162260210475874334040230831592959287866139652697484597061749515292221714663719540896007916130365883510487208847646031660015002919696502825137605007106827011715470605498817431726810642967402343507028610966591414747718573645413513145775479866827916042149037245145814366790421986657059431928400134464000342849446550727025379898250262314039290705045939710053625355386546188650493540810428440641041046391070048109118082263703576254995365913937398077297641866542034198434824262810272831945329038053942962580907262438010072651879188684614008502306646152428666949123084214245691460162912091983456049494409596212622716394716892018093488226198215387513928013339438325989541968271962096435326995863071152083571824893359822306730239004139135500883505041759875511627423106472156595045754267844868604372158908708856151735078028890367025307558903552438472225056269416621251673102818135183085402416275190771832465858398856704218266394455116912977572289823939377493202168082575378302225345010148934653191885870012550950027333735273164476926954597677905752860579270984378248744338250023624335968917911874346072599166142919173210936151901582793360666788034168915470291325323955044548315015856772919188366508688967683494531784175112869124718503409569697556435371766861459324247294139098533072983764755471975869205835576815596686992424404642989652736867775958324745152035762322527153931063031601275699663588273881865961113836776246665948999932838032400205218525483257338905031464275392404236124333304262198757381526821290416197653721754708950070729071243127982484173256337441404829092842298766880649486990839319419336798774746997577831596674380153817620720095511194401890450291350555338912848712640572887909686598282808890065174921352911401576739032524822535936355849921747169364534941579799036599777600560314875925337359851170736223450186117176307376028080240339216933265991995675217738004226257994446209981811481978962368030904561296809800566346728955369263127469003205940238040426130889232184631908509242899335387998586913870110682872136854564679310195595475054930286609720239038012466985272149865898596296920537455216212850311707738649121863261367427974839072320896169361625124425423945711761788278276353139641389671504352715876603943816799233594704502324057420878795651365133545905964394409024454955898233165504707199488424540931040025392502288613112804369284096761215804491751739901552750168723564184718422923251081652292959234484016775978926088040444510284133302861370622205055329960822648932936181609300502025911634928116952567570234129770423048395841369424484355515406379996033544858521351056852998609106103154013381173301500089807267143819988392775719243052542105928825701703228706423784279211764159056048657727826973415738045032787793581202138347003484332384651700138419993852087362496251488927658798775345679361976120072029273680929560102442208114503447362603620729555656069734451575284728660579681556230175901540132392074357510896567959798495349167882194919218475085909830023504251093040058105877968685282379372827396123271025874802256786666034463904177679881564207475952640392696982301713991025371181253356129448608903381869065583047845851740722199026508563770880109258197867241110423292234943080067749806398993752300374920060686229620997301118529725996785396246587738085221050318639947313980172908744233199383486244051116875894002191699646797715645664081252262800009845812994142932155164568663842737430318855712249124987397915295042738938276661109533988389309092682050339152801879243415035825440139101419723337936432405136440503503703335901007152201345253524382190570746513079772147077042745862229994997935307160538021926741651546693162407889258337250881471452008169575785347768520388358457281576238747710778580984646319865503303442354088267850818768555807167934781584295169169281925128666333957682443009469847368121132874638785428415068757697002811349342994079447589712459024705976265159581778632799848348132312216875600577551178794164053115201774896535906770199926094337832209855609575027146728468348235061442160505721304102115107680425251576739896266299079097735472792224153892396666317357246649458530905245629291981261676597604341682508822267244719414625274844940718125468946723542786272918219082242084181161203610965604886015197876177997555272864081910387606132626310752320825719836528779974272690069190462901526220912692701064162392292256718126750706557729510174120039155878386851404589855308005287691854296708922692298603962527589158128386309809122192538856947812249925983453312464592681916418593986264085359945126125306739772196805610816384092922545790004469884300294087847435393312077992526633994044425875028678461346316006874119246546323724033218366993711352491197215365790697314208922041750676196448963992105916217474410998383438233642322777959410383192989627325164214654207830480864429239942736233452293129488658028877593783685724900770072275363330209620890398418746986782724386027408658143228385780584847718746657154438781685692205435678206659009863919596703738874751499816532657493318770014038443186939495714230743812045870451438116226073762267489166723096795120999886915098708466275890986713028610523593766498898638192452989190770351492500446362875548368354466256755282439020386707044858965339577367908670793292827864270516768652563725720404346151655854596924083171551017656284778985090548132915307280862877312812280535878286482010301699714379826588674962532086501653237010916230144009957304338721268008225608762570532080601550188461763593162195371666349468111351498282041249352026189964569670887700041040390694651249979345952808319052137355257042233040903102271714959931813940320583940624788849462187636611120951492271798632999665231413395474584537052106572368098992977970047226816749155865412523269784326879428629050735352154433003622647931909840428469419255255683203771218416557290137829237553782835624877189962163935684869175887324027651303485001787608543114676133073273551689796570407538459682786434334706638662566680400006677271611678029422598715327719687247078850886717154934079387756583676427187220655291052759548228533555624509258920165814380283152180991935426157434227571888297562931623686368419797768684561068884828206273471599493267157934057321414470939526683614768968828299361238654692664118367842811754024923987403048540132427742227499286197917972912661392002834694204460617273741861379498255564484706262860306823118148377779578323230939831386951394366396266965684713540606361591396198786342153726616224860057522611067386939193733316462820538086644554533648815363467900776955805091289795728241642713649795591481842809584185516393010711552241193199291955532856834213492841588114117649435492284505201904812087655738590652671066487048300099476024323984065970579760011293005124916105029463385747161396292901362749803950577817619105925395131798457049768821325538577855646267182695378025476539674143827363907878876221969513963264156385208005435048072792864392312193528833809390011485336949470817838727095866808219333096777169081273067540502096428347417736937730536745549428067175364487335527396335996710446633954252343402537795961779710553344418278799309254054555322574605975069072714086624526716019771784803461501551439018257117740997204411361266660612006786532182065445349203512934719052315953589233595572295086171096658283833897644679166325858066699170249220219449543207842295309421515933145505713612641182433747221249932906531695870050766166254201701884960163345768013741970801291358834404526750411854492723763536191154609749318461772706905224281631044735196030038346392173424300293877489216728200693459837974880954548108908785771006747973833962160971335051206048853151812656594134200165563609105456879311986467306300045187685326444736311133864292504809691077973144987254143579380380598544750164385362706834216273825627955012623195421419321887290089292634286712943010243367006887488208617085287774532556284103792100527171483388067584989314751916522944885422619124297544506407677544897542057643820877892645063470268778116590150796455852315295387064655695132395887994583238313828048268406056853523124284868451103829321541899168638757384515192317563034289932014525909654464099881567404231563176724873529391104507845412879307220266263456927147515086669229720530675474341918108769780819288498996795409243497584003641442135952406080347165264633608410629613372919158872131951595464732065988355387379548499280812713484304216918319896584584976126831510024732969804586679349880000328799065965117845270278048538956167715600065162638306498206707146361861943820801125207458890500287803717053304097901371705844052991865694857779205661028249899764111254027097864734839993305900524158053139491841578936715798248381625132861404892012121823518946137692409380321437742141364002840490386779586330669927408724092865033288291608067927664273341987363287779408080470324476493498628807100259062981495966952905726557328416737776997212414763289647127599288940837847918917263821701660825918769156631389369535103347223878203676166554082042018119097815549643561710917346632085569598319930446222896117637500358470769543894454622476141112520543993753867570246865026649877126984785875394632098647361559527008070687298796701381862924546934037695720560827268054168877840034669459857507899166521865271280268148341342622167170986067488989918632742846058110651982564441997300647338593334796207550204005241568780669936673775005789335666652999598939779057651161981788319370601382590999097187623376487889512186899980619815468274851492394918560574111624299799870289001510587848829622900784538404961542200046717514300942172435605332987714629467710279365008697169809145911278431573500269090968826346625199951576914585819106438742249272686668581484389371312972325393555040227770197372362355304282480989043004314531545582878846909607073851568939531638188284118489559952629280492361674041611211146187115988327998134541221787501003848274532636371069368556970900606375343351770347270594495111077346217542296511797782666921206062140020944342470821723625437979658236794672279923915491898659354102604449428231490006946611288074647944389232413190680781537242014416203355674003959341713110580413736757687509846538300041969479881136975733357665522855617511480879945744665703917419628718690229559050397307100852285413635252539575821080120019220933024131357022974299189073315872806847991921505105710581646985192369837358107186835817420162187132086787010320985808578045766765372916909137011393648200633264897989819608840606270699193468061013318874144142632783092193143732794755727319560393464100070444810616991867452382455414047720018517780034644589557592226443240574812570252048779103232299644708224784421837638080098754367355255296369950816507998643100215952755118008393534495596196611973139626737789574470350741514170296674313948258761540406717400048375270233509317961743073353491230219607349676260409029882357780838082106289753474685820453782299578382035260242444897624946316215321460453914378302454130212210503905618240231731060407963861854993959378017878650953675064732665194937729697472391714437583422853878544239946097552265567107612539035647660041999852138594152517032108782437399044579506238107657388058591314383655563164772085310402181096785453334664547697096556059201816874164152990700804705935257426294364995461188687923909371593104264817304339771032011252145556500230198556820216381738584091584684536361961478436655854651855420137435785043636466200203169925205148829909257966746487313590977497399223553733548046066176810986893512630445415315890707871846236473131492599322414470899942369743791974011738216764233879172437362337732740049216743816084633917073376613922577400747045778187637749723568664680787604404750991451562137135987752667296940900214508889698977826233151379235218008860585317226290964095098398022056924408168334553653152072825142604661562079891189146662756978410419389890728865595031720945438348071692874499677522293136770987923271437616620294854469915611758698358759433451212017082172624846238041103715496438541763424600986524889766710271525766821739436132409050770189688740659192781344781208421201704692899981096146522578841397789951559901947099427728133442255403304170974814201340473403002507738949453618107039943752816718836263598367808322770738656388372023130995083729438995041945689506646171788859730944853256131273716633511977242348778417272497727815614990384658450336860572410949522546761156155893751764236125731948113511243702575706961460480558737298543820573050302421110877652554957069948562973222497052112605801498935386690088719271208279876275056422011230479472469837903987211499182845016691792779162968956456134608094692811884325997976684073018313331881564306097008340220469691949107141221318746627800566149083148603143755356960754733580904331970798319778695035122819434956575957237264972835728098039751401850384209875719845725495942268983114781073533573752764840300233449145650277922977565471934495247939952445628801404234679077625222187962031782070633550160798683287308602366848087548366354355082856365018343647950518885407496883370465545835597069648854872896147852251549317800096442491968865962023145839750781468953601149559527269356670183944641177481654688211186162930500105143303727946806868902796908419918770244999033270748845247793478181152474303907784834292746281494157153287933062116073355065112791327956634832684761139734604228805055048780985800658409108604011179945007112248225036242200129827540534717394413391153480260686594455904837004461712912034575836467769911794746567993702245146158878044128432823737550724439807848162375663337224652646351859163262900668561611701441711996650334705814782509542979576093948325875865784353269738144008957543285663463577160265016490301931508870995721049527759895472928336120220236878368999618904708749473145392525814877556679177339834903178541578423767825051552770697738006166751350100849335694490668772174723487675079113123247121885972456396377435811061158497601431507944393056866719749923161700205474329279736154824836839355121457524427849476230119148924205784318016815128235269785257740072445856332785714861081313404636950729405336609342086143776152060335041873998533114600351768891503917324813378263179109511194939040981718369807744943907169473611295364762393078193126566147818960401678308011074828066709621920157673738688194110990665960628977276927902067860923095619439583559128326569074780170016640958003287586671375849768670707958557440455361615996977407671998164483037528861566267702125935899253764789626469090351509276929861608222500906205526902215123327757218744967617662239869895050926007808542645890321960373128586102218931551787152498691769059211006275038660343403190763154120862592272896910830353340908072940673124029244812045209000272407236587029142191926371082751479716396919075356737899269853042918619668062584202367609097419053913621582293256483677987382656511062477261238939599138818667705274595846282583887897945334666287569997516065602240265255034782577497080438026541461407686957077041115877770578472379716018799400144166851741163237004895141367707585033540450179232008254520546501867195706172883703246864495765364669413078830452318256090926208505066575636788081130338260584825596034542240051511317810216682257611549841246969950225471346942496765951742916603314985681707132882737341740503043181828307177169040944070114752608656201216560784781261029424928920948973960734478317596609718035945416265002069362010845634880277151969691515708877430033039209642023754770992428388970711411909375589537915037676338977238336210825708137345714439798228448233519190707460249795496102136918570221495174176043720380289240949720084769585276951715343103794305431980608036895422037220682791518009981315822001965914763223074409592405636309805073380808171607652917813456486014883709748766744612619552996482771063402256756366854141775432282037629527880581609688267537832275203452364721264585341228618304232319910462150930717991437603436465098894348438067205813129238714242635979930504109717253480884330470638218613057679987362738284273333704230418765476703573243982433808439083869563156090220089570424537314723258211232650007275181650754979215710053975791898244540479788562390052106533544832969994887346825615101339307176364555977158947586326340359417882338614060810759912146197887317407553105105711947735280935325223414205449649667956118534983574479409053098448704657092461250493645699602345766160896024667710996325860062620390439683140819108093439861790383792554539476071489065616860621576112118541392419208349201328220137510678027215575745166588181078022026531653669380257804018780975901475571184537210516070160774812358308024621249885988881967995028962517622069378539127188127729592622117544842523770526620218642542984950497282109924662067420208347263323009436879548737290209973976586819335368387522042614984306493720928662009927670058370833967001376245146494726565544497003742137685678797875199629449806444248742015879473072670739764808873128871397367603950443184529268482031739444047840201365460585372052049749022852347783726852355350410803104502212730504275315773676467884765523056578444042210239820777501017536184681868404294909708749166186199074943295880226068338927695937162988684210396652118646599344993888396367236156757091394821420988553413892339219691998348670489781389163204665812079002033491923607992556716046883329068313941602115418364345176774375247812163115845421300227705156910155076063859379191818979755355920518619213370085508531345378199020150146897314876579533046930163581885627304890726227304485367460333226928930982666384248175945221980017322603371403913522803227093799823344220960435000690355472571275828888787694501590126066427483606148958344388896714081330506680157630378067087048778144492232719134510206551230311541601694343811143021427370151610850787757681930726170564136973569149757382440099321955178765305794260464210060467946489365652457660226759015567949115923312836680158333622662738785858598052509382016663371160466041680134108616862962822004183095391589492496190561408527583200792942609697504564454758957529539774670241986484885057729964447471094807547266837117774927236979147840466646723072391861989328053610145832855584115888199870029738889021332771321703042465877472172257793053095764857066604529654191166065914503506946370652785078731596944352102969224775106177785561097541278039131618298541907953374449876634904886179864421219352803409280207060728856153670018459725059927209400482849009979710736859867533067429463604706651464500898548325105176061149897338340312055155834049455683751085216308954684497197021859634826472271050825712417153370551246800002545148510068017045320220082571988071407111959419076761671484969338495806777410343073478701219044638144394643812287406111381911286578341737278018740316538897001150038045393824018083409752219790577842215663068954008705673099902292503443625901637248985613272064054703477786862210364791738109574563701912288879624243518642355879350901651263873853059768800060526017778905182099548851529842868817077898420253796547181276131414608871199971796674145786545191331435945319078469256173607097076335805248533811170213603130258619703713031585704042513193325427026053642980754893253106151954567305308500972464323137445580402528923308666185444053731826749551694297399741865466475251114112629389682757114741906359118656734430467090343196232398433439666866769981861326629020827905102130587688061365547454555744498410310486333645084801849528619038921268368090835867173377043373262349111364243191762449230117503532488400086112556548918780195816712734497711652365224563761166989323455990455663145170535013048643933911138638033815535837490559195367283879488140515437206690719443827581439457519711393012142312631362688040552749309152228976304448281999318420141659740919611697586096793744460277090622425714165868504702057658830605832938665281022280351066518753511576351761738961266173775417842750621441443890860813110704530192226834180045848850091989055459949422441324776988323025415174964876733575672025321136558777200847708372963365797134908367352877424689122471254056664647070043518710779639158112998579965357739502972369639548253041147262824554095913170474257323494654800604861970590710850293065703568957752091951482702182451750597457881929944115313351353839277010500599159557885931348997928051762673378521514856415199159058065324204621208620045394065155154836325458112317213495166169864162879680094876238192791570329503920375297697808338221234805759168378533082816443428728640235108460218825475950323739198153386536057866906251178233595542094670821652902626950949087928781247418048899456969164760683872095774228645713700829265486752757870918208423852383956339730144826757667405843516235899038822692035361664197395377235332876978558411586918728862878772388000061014021045573557029943960919350673955143983386016118930820741593156699122097822292421713008733138087528840891010065923498092694913384934288580044240405392754793101792694640552224739749969235026762015556672660434153238758251667706390767086853954950460369094869224465788629166555904405545096041398713894198275328912743285702807233552041512982853481498958741479982374992068828050591887621380403359172175569477074767503960986337887240176303127943533185518259424303172100710083177775655719683505845317124293228174984068179431883686520329608505306160581698537772827826434949961926869822498784444871957125523137968988230223237122818228673187563577016862755436485586934543505631089564333716296894946947851763537435198868100761112338386581417668229398165421461968946131341278445118195561522486798854517350595466392995341202841572948549923298358989343685994807111696035413215811663735637278080696907695640462551343085747939041138987133573345491192771297740665917312454691175418874040580890037546702380371897630928072057813578784117120311416578315414855467540423007320287628162756603687968519460858920782320910253016596589450538371230016707493054100622569197184862147220385491745879836837813543551756389797665093193843719841388349544090616089263856745189885618165753566291243314276460076171117257481644746851099941323572240786951353010899549782405207018395042930697241702331423127116199533477340896096661132959623105960305855757808959442859039503427125046636838008970040083859640780311578830489997971601701819631228451262015971537062269870484997233389495768842888826005627690630149179399492231474296955972239783710272298072424074822739015709013292297007664036303306938171103134426031436366620397970283786720951193609788040906096780895055592365505794685647690466523592748157464033165423702490367621296768941378865143712769907251290835159934750775914725336394545393689667841793996837008596062066190866149802569535645031271843910583333533010955984926343065635868781461579012871837746225665282394399715818033199758558961819509378540236234780937587335908073913476221949527410838752924499211248669544732114259412977872854440332551852409399245114363435666434859048818501060071276214816665779341825024451204569178572971929707095505878436148138320584926748801316077673383362616796132324996137867147704292796754672024054149585375631694937773034450935866903556728713991374743206073029719772341354419586246542468961665003120103019917610694131845531419258799797869749653192097235947013352142055937480859460254584151634138558473262800498160600394344640403855559399376698574819534457468422314754784868837493224647639199175220181249908550059364611375047369000720540451640228090802714417490940403425433433127004386614376748346631109937242366888555824785535569745024292166795335226684343848740336708879388399608468538177775941206662261141903931486930861151802878270715744137676937605046301445070994835065203899091825068984724095995394078440220902502770206331748681646197233139956325162389413236747995779167089105690707340200115514937456774199217807080669957081494500507205444317181757534069959473255834646328843064611047309431457246735001825150863860405797926154737078742930532775032929043966632653139392726518606803621420002277711453129286503073758136596296857550979671277216052798545151210323422425014847067612792739343865119857914265789497939312182408445926827415134737862335010405825273670139199853188235832623129739923108959530832020927473765512959898996085879774728808691881901918105387037060458678654757641137567023950353588969006560424866017706961942898370126054604064589912627093747671666764215124874341143643954349172670574416258334598191652218021819674485917613986459892663833010966795152913165928257568200926707417682736019227561464970498148929663471474067082649353271534716172480920204837847591942666637591799338424671307157849020690056018768512892040054494521150134774232718712527857861170793987769124954864094169934384520117306508215453207623115782174674296647854875629354202232512252351241124653473433836552146801654072882408705948663511736331425477432047657054846467279140089253421041980584734736169941964877551275867839966813441486120080749951792717172618073493376039995117781153246135887126677327252458733792719543259011495376495124806664837115764303689532192667073518203651539294247646299462727087484658227090934394474825050245103160411841011427004892699094676227116054850184737526339678347233117895699958302693485832252161477881179814818960674159225611607447259471135589642561752263814234761546717632576895380903693397680886424499923477187322610255697554628211019085009894570921390289590691285431882005432208215388334787971897471389980280437258192171993043600399777165818870904655905710319332988325622835648896177556497177985824184260839817445696709877951058724664731666322858493251027748378384647097266923949929482017149822766127582986554799166397698058113460006753327055496323891309107043097134657102543791745318612415236746328211447151944686881281454658739484822965316892640877397945153224003400446826008596634348875770305968928508543225493819926059694144699075764467568238575058586354033344788255134865322223889149410995353415685846080619218320617483306452538253605350903574624529373434656520129195086773821958321572967501769558878114022361203697018031600277725431692468758385330542681028677614480528864175412623340583466206553444251327112625429894966449051265233075248396208260835454995082228363186236363530027862378687542985362406121394699319427569954542218522881396919793681829980575398189038555295904390973473880439702693725318503985720743450813296503525623431611411273859406925109361228483419913895916360219313202509861841706384737196847525334505529189022409658260973447936733858167193291665969844411773745765315989817798352429821659202793668638634818231086766087717368255191841693793760597617721674892749732833628844346378767212650868941037099183899893750292479503397789244470410678676153709757029441784867176980488695697623628708916202752315641807545064905892183463260831040760696871828793562246111823573937989562926180515723052341125088694391500567557640475485464952971684596037548959939006316336450855091552213646129308027892946851221260162179339434832406308856012653059365216283077748217952145651439843313547846329837873479334912231211264514685719495940692460882699950240868464042009239496739930076937900381099407341991093924370370584704222127530478617565460191804418632613086464097879970331648480977872286053585042222023435621673490033556468917876436660241717364089542539548918906758761426485589283688068752676079177787999959237041092801565190246216467325139502737867010118856205210705313547952623066757772294712000142264725500957541519569432471731607491551731365142269515231327440791206850454703146853604424740497491396509937658696511662309075088947080530565511388287379839888170389185198733165858009684003309932298774196737789174595571055713076662837086432884830101638480379235652589593191483632925651662020896466908125824492116960269423102061187782335260365081848258623964212781627954579979578471103902189054459251761132744513912536298748179872544053642722784566515638631680186296320446298527016461292752148938674904410579470945745756803867663550211569525998269764960858196797895497626403157669855551434540344685904920952038973417391639494431365357256160302979990019542902900167469682132408584232377586221617599157850635264147989256025935687867687179325172904447509697841923291111443158715437266770838785628887507245146382586352734139624975370309684882640184264380267836493020898468751505508476097969634010312460322572205367644141735821040058045678556386869167674927590476964618140964768104202164593220135334060829861423853758897123459702686071754500079060986323935264869374169719159362952856956255767009166685182710736423292502688274305992757474419463256294229966825943829043183191308835468401856854211842696395505150362282122984667485615529682907689252786120160814833693580945127274090894765785855275383559569333407601897590704549142297081137855918346971898094691317904229606490425315405654504651917283018404888963531463936982277664654530196125571317796492260758149829722716673752899228844830619750912109479445700922602231192302041879019331344003084492645262176451083317574641084583655401727858186297858730405837371191812425118391792312352125480032239358323215090957391553171470056289950829718827262267398399021392313033783023122826082769470787094093059762755680505834950225009983886695412362471234305267680046245482051572758624325233232253337726642785852769252934687256435664696829039463958807508468254554678282216237227794347077097874476633250481602979220224625632698500184094303486420171577798273168382076997232789973921462928410802384226619559725409348422186967005814654381951541066403698104416522123789288576954803163789114472342293739044591060091125976124714439985332996355293902871575817136272720025138631613854701156115231786421567811480373838669554264737524112351606976243320874634884393831942860930079964788027378653095638105746755199467676042221501000725717343818303333064431129096518724702513280332825463217149484638732717384341992052689159915344758731699693382288131646152422357829375850700330540136318825312364154507637597752974308551877425554701394545902589667671178064236325016059724438777133701553876725366275106818947275165381633079724446972386764282970531606149449264003359852113732382295663717420980582942663521862144300162486851987984190102338114378157104095354049061909220630102728034244036428285822313501149198119375721716822521512920159439157811983179005218544353693891978376237769291145552310629589041032646938589197572137435445390433782245237177931240894831289690643813867178430890439928079281845161446835712388331723963379622079220623083590079817917539369749658135569808918799710982829492934544474190789849351237670871744244440224172053521555419223150648344269664771829308779522700704299667884811426771416334709405709553787233813462671577176795847727764204718634781620568618563066377351913164192800828063930453607029709140588753857648868565566804228716182426360387317171740278621288179815895163430877823378583117701443456285508878304929207091952752441872601045328874860398496654977066604605847038768442406174837613458813739378783846981830682961221346513628051486949290638974833403816150635497303721711530474528810248386059691046793215023424310770041987062854237200520145572033873705555147677647885926030228390670285773943121174274692294231426829675325519454062794244673752611290619492448077637458494442935474080000712439736797853826993664125314106544112895693544270875075058257426297124234441643536643627044821827485658343473367127617335805770531173753144692788857460998158357744221206626278702532719315943335707459208558268528320398924479339518442318901660053942629897368634141245431610855309276371945020800582429625896771661903269046874924994658919270367023556949631221357606872719386629632995164927253269039748420670375649206769694367160979094919732958691710353831578168512790944313312134426732325674948510777055896419121417570147755426821969554490943427675754006822279417582130741454448680429174611204631131527809431348643351584967760751279650083920330529861544260896080453158060225931696224876293362000207109191713742741141579682389523558479426614378201279841060784678797096741732927856202834538945025793480554386239618960447314926172759289559981591115190615731451127741207701584951596186071327572003617899268939549266178717407560600183898191144026453770555963441227390803208706158493425806898141822075730616144278225059290194157318979561422404065917418572420073717793659019747283029307198729101481881015988081948955818122347739281414815655926272134619254902639673727133178957160810039955289532075705234132290877191481551480632556871536792476881912436375330396477045972336202665762801160296153338815060449944837017200952265151400027231363773046361460749863251715626850831877172607305313980989909545031492529332195638498986915569194038343561026441984745365854830191516250121413574739982120982637511976223754369960243620833884460941595949210246435253937522794978153215679007051285391258277283857766724661196581014605977855137957488195787667497768065434310110311349551777898502736153138815860933080373897646046603478980713930250570404118562822483991247891686430776845045725555973064171701092449584373741527289003471073963653774449276922727983215520664102771742434648341470640990988170416906964807044253228692340072452898219645833463225180541616553197336425321386137647098867300835228938099805192534513130575706415854528156684110866272140992189660600053669214392851364185605777815125308100487973271151501603158126366545446036719666897127117270209714275427739760766019779052921405608487647501057554576673662922568788772387727686245235704792943166391799712727028253491358316208453410478806673276458896073444034435329263630531963338860127484208723686852522616972742805989697579888868890171291641337106204187449567770560246446286407721103003252221602726503820157740006379284871152004588491252445296554332051554999852462302432694088036077841477372433692308216128067525950302951638066053198268370544659306022059639492794528821582172704739434656307472433045040167752271626452850528985054776964532599643241715606918577706493018707704739330116659031339165552847873097867128154117734118278731198087675782802690166347784510801045044911885874283673616720428405562925950494793296461502456035185650216941092071986528037366622351315752625477920826907274823902037487467567628325295176284699451256546515093208576949116460565072950283313851143082808367682916199256626317794001117934909820152957742451187912862065993707516327861305131311245197982479693464714737640642179222888659820476082117139639753027324731645242293582793947205849461554005887817053585707758552852807818601893425689810538592959981027973406191749097839415051484477426866044154337520595246294482847214459022779113635874294238951871196991232792635581127006714072994009771901771784810731539035155863076965162413426283521823820361304126194258331555926082326792824841135174232469068931134306609100744617189518112932955451202508330877200262616163344578506980312257940676532174323486077898760029626245635799188646132322213957031497546644070333275601864351445013963158050311649374875821402428623063454089419650999857417460177157779699968743443590990369612772224299575319860796997246507365975936969193727382978005233016520566619028300389875091128150586672904077173284159499062617558095564761318209174089332736318269277497681704592350718043662943805459583838430981059270007913949536304939381362720850034668526176166107874454339804310957336531484432193046141693370299287869834854844229918217571092362101297524301564717606579983744084629756418952806201927918711200821032275274499888015812851973983357273927159144768701015358055956270857813722536024602892483393904533084654264823014066371304418551677577776689518150157707538329283995880165490500398380036207633759293855147990538198662337621828557304986657768485281104735496136868357786723004150257699566204024160355356858116263535801771191985800725711283050323405635820258918495441758927460838068807799660686843971037692294571517373708283847863160738606045859404312540530325024053079932807152441023269502681952058847865483871242453083714606636725371633026452474030925311046362310292300287446043745141425744576700284115941424541500297251655540688872079604370441903475767374550436722021712305876196061391015106575536258911805136272596954971229863182699839581173039125600578045885628812776127263852097096843509092428138799092497517467705240937242824220332915021681982187026657998486984909362175757317304510936281249600484911778603729174688721709670429697635709586062397654218809063551497455689423395093168860319393568514129714694108098388694419891907552618056845003367789458570088522334283306787901456247560161845661285432013340732409186050256880081042535234022172187469264535023266866790461224533005455038830919146335332288242936150591608895223809754717227657393617211177582358524942542528434198586972899227983081383514179971571243051665865596188955215052601610878846246458595201953601913503470947535569030962920571615216626191899399102993398331299456243822173004613540166485940232650574596288304305639832156094517302171363872117281710203521894437885326664030114175514006627867577045806719988252587843944723731902019277091419411404737674390090550389346926851440352622412785896214151187317082016051207656747208485055285347743055873921956661782603676624516481413507358246091304183247790953366704525580653722647898498225674414836880541842962205938407378273018447031229631330236747779237940371453104456209872791414691841578401609347355648942210774696959521277595587899872035037783060448227728537617630993382445600628585664946049007299430321531483714412725609863412735901458535318087423798096777897849534526118792135064034668376631951147470653228310691842032571434341689675392378760883053653891759870516467263271773518731650366732442831986468089086044255390741533508333441986554154693511888095951960526025053657074130017008959452267012933831490187861188816203343197365526443974409102355291726891225822680879328397130076694848561243375417165783004385247020191030179112465442547268212561416742871853421916477126725713193469005524723347029406750848307835859936313419891020205754838806323637225838300117115236159136877638841111622076449657265260198988317876963108448594396091530870005790829778025987564002641796970920418663212039434890839606256615889381020707317632882787501383648523024082988947131678044430648747679763831807673240236287675300221716947230004272154886859164633939206207626741678878338183688362572606037031178667892014929962193078800065981836817654557525895832324499722884273507627045142100942462816095961594845100558058489415171381445821816374476896118528758848056424227099366687854177120727514152538188267343111060304827169225990006448006916698173961525322038212994353956443965598719105304713763491841041061889976426288137541466605617255277256071085313215790784574678912028578437103162551552704409946890609981903588639922697881804638529943397157023588795448052395298499215349887187873915996056286044411238099577844298767417806923938940634362680339457355916859185090881667441682783429249565878099281837491925169299280763927978217459450062697288311463175124984110749991378216934335351253410122282335776643365790905145760743290221248478577946426283634699716512141286977184867803404981864911729163032499408728569763299273746187055187295791180376919226508329574721353269164099488051498869772898928860258773852432971092617837799832649532601882041704158819526070995713365793378892429004904232825966905958297079901169142849834436077820652481034218780888335755777436790215565168553206834238525606278748251138328303409757251645282099825703866886077268903049296959741573546769872855995076368342299545033215529869182039232062885961820943414238042814485125480939127132476914978081940490822175660370233786933488986208175774454066771519397452084920079662620473710283627085173295128449086125033311032520711263341461635873151521563650195034594708453517263847440013517675971991622999225405406462989669175809423865744595271412581532126984635444304851364013607834513785829928933013996517864985904581003954672533769661679073895601630163416026018439489076936424509927039784173520055583050938548286440534150235810313619190706859450065043556653964548778061103230936528543421724191083849025356883329713739699333966182980907612913400413416500832960624418856171107284373842426550218845749410715741440275682863270851704995481609670482765918470788712662603093103897595808390768187648502762560719426355985677505622397867645057544694339278159656422215280436546262886835512405941593794829205016898962452856462079328878871542484792159863688824498341106851623997676301120127213972971197076103324565806996154856484936716000274210211789970633808830477436374233199451191881487488882026144120585747585374556924551140458077806999229849002220892748154344065915952002541634258209593345287956108912666115702472321654947413238904025739272624032600244077148740830617913904977397847459950093339984318218697519713973737057407446914616081290374946443219469189011473443854934010847246150149804704354764277796612856525386041895817748783768723789204939712903771966325808672494384477287118468946306250443374270578940674615035097931759975693069103301204483496477384782204548000009155468701984963442627618268261876417105659434557455270395323601612439478979197789860524383997052914635767605421503364234546617772759149922637549758245432562133919169446027866595218121664360508113383188046597997459260102576331841504503813846675722544949367602825108684318659815183269097915482260547303328392976995601128043089669230088489629198571850475102844500083783191737478421439067998171749608698790908855954395276497666974539304776701850028252989833362998038652904112133968913394258040721018555057255839501213649387582578307997185558276313099976778905068775389148496824762431411970137119269980397004047382434111170536296985396599937163446326165336647342088523536763896028166213637841102565070767398101076008476497250938251109351312524442133086215004549027377208133484143309679536627642454473139768907079935370324379233919901632226616501595641380761688842101708694228569555292650526317971164736167161616410805946469868416100538626413515420317616964746380091736015771709607451321970674091158037835939869724096737433569613152896903693465347276582162937735729039104451262589539008897419138778974017172108050704243512262544076818143967023643865082264756144952483712985212641076087833031019106828483226593889709453141064004685969429366590639727589443419001568475685990701890336945775123765572328717504227068636706747638436612409542427875490138327183331773527893855640332978761104521701979648158118362653748951208438515641004641076039262348161712736857544983344296027159048921969367693863622019615267030103078373149677297954318406495330151605338570879848787028594240748459074693920771464050022614077620838464476815378344499823731225771218015809210676154134054324840800398510875805357082446982270612558447252189774878135761228073997672438334746941287673616378283196435635835559733354277403694201317229849004582115075964858539890635802287762615315503680604492154731079593581563374879368067087986750058217310143747154132081410587224305659157994746241020719854288189754790084249196351020549559564609109358641953446280599574870145019103937208044463773525832606557537966877314075304122182707535815675219624407578287194945925594142490615548462307788743662473808352427001148937623302264614999922692653409498579684738497528536458965093332440097759323115890251601192051220747750586922176920508170916687718324028472311635644058809430400083839766788934555926740383822004315245375699587761706658461441353524184385018044981524301489469483808617409016060123239289263175448529283208143890526034178417842939626969591280869657022682918964442592689015687875765782990833193335703968065276953740925905279382770245828240407216147861215174366256523481660150808503962518059232175863958627239916932024226002694271788962515544445338308089970788795909231515993489269687448947541546183933470118027483845927724797367410266979565766544018594382886159364285921100216925425021153507787771522047581452619557454090140231471483518850549695359594439703639101925778816605638341700766706588436309106781276038971081363423528704255246940030272897784046724948667464339709267097975739335215896250646157903519359833362427718576443000577411706282577006281592856998514902741075463795908099327261963403554549543109817492275779915835855979639798463386648846605740150125649600369489256378900676153138816709848815134348424428926158504549600710042518856548701620730591047798431507812597441664370833698735495413714410401032352093275687805386824036417432093136542815965129431019593986624998577151560916942021565445719553091770426010515711996231668947186149939233442668885110732611270547079201179056280230190977567066997880050249043475313354441745803351132758073769644760265884278028482983716824825912316840069335054781959539652257360354937961966168952172423990757222767762916679861316777209886530925086836977821607250002549598456894903615279361375123144516729008366195235069175246373255609958472180263018485039993279124909650564989966449894432854401666257735729472673063697420907556915394188751630957705088567007087390614995892210604675939096946457110819178990847488427771627247135215278169870411414486407063433352907056508029899849223726897507606670036048906364886787145005045229991967241734578076360387064938103140092683556573664329201465304326582457377950205918440358661360029471690436876129476807354674328300040682061313228791702553215935955440070088387497071482111171121046363026653700702639901754243866678454156957758129541161205841696406131672860459106440723039651339352433938786226208378290598508341646667770656583034942502729743681452802539239614036498086529425275814163055856022863035883501880834515377255813548223679779202620128183846479270025792678429175479605152378107824690089510284246248135024697979968449280521587844593877725212826296108011739803064580185126109653050718773729047584708909876164649700288749709013637065931758082909599192136482603275973395465432263071396068928339514461644827174370325874028171207272721254072659813683116412272660449187807916241447808003502010776117034526316051884411538811085751895376425178384115556777038151383256385708391632736676348087148967904396031154612480059031460148998448205567493313235508203947138914777633953206658507514899920734497783860493868366959021067688248463329889558214214787483670204314439259210198435655168045804792860097622132860281918306945209660091133143033273243865625688562581233158115255972346011456270586139869414099006469000262611276427836459328280344711518249522070631651661803455666818890086577783425162544179610031423721998023765373951803804516224968581793839052706681439963048156237752866570062770859089930672209916192837429260983185102753267462939110218592885300839604302291191233775156677311008797341718069553909493434913854474583158654606055734032336541588434009238148880105851476337731015132293087533731604048972761543015121251656588761854754879177975706259790495437911107641213989810194924626480510777534600576965870232877980668137225394024433809238845358707933050394957767907964340657352038965819421546976786985969506130240830060003431190878022445583929776805502132571639438128187119350091457021503423846705727054747115653038130759960152149582076704278360902283329874354167146630946826416294634970003418345230174307172134998821548607499452985272425904184719240830442730489392113150162256684545189264734968795218842686649648070503349522424087132913108921429535985787949533891029045795988204231785441626393279354229415522918086049009857534796692669075576952135753749725511051792403452543095113582331010777622002374988133463616496635404574206399904493698696268400672869775020529164072143657631458017859312360230148627051814328987793275531902070244745819223752097615313265739932342954775268779714767812650374479483344493174114079287004514963750064125440292124337219217096279773958719962718223208752126215968507535527024769711464901171540908519886475702772331305233165479229248087443789720576012137957958444854968655939564595677034131592969065259315724447989457972102112254544459451373259460974523272703054313854707194090725339008222345625609872853509829319681987687738670267960907683567590250439480726960949689647943227865248519378396692604394089177044637294828290634486366875516308037364928825712172240953389618751714735590216502795772339530648963992538437026407145861531036999817762308086873230249069807177378981381618981465390029619915196455459899450267156956588695569580136693845082995454260634864952185254988773989489026660066604120214567954145876747966095662661239350541834986013281275628548221450825345239680707187404940214221565274284871104790187115238440801352879523442064859772992676015762952409788568403597928258941897424108873893214318799103844347013692726992483501938742059452914980218337224043685630732001755259206334077572564908583786798491532262896557668021499183286369521469336726244589266700073164487755855669384191977850816072996355588135527974891910170148826585854574482653583617939530816071576098875152840410097472769850208280113006861359835408710217961611280359060213934439061540072994275325548567496575551742073549530016835770972415500426745126109762827544608648205660011436543637931046276092026311399488042501883554280163543913081319959435825829281060325405368819116776599479527432505271889511816540812527842912572900234043083921422479961086993426893766742844028980979310203607193441500000482454978092940670234319624332008722694811178145699821072886321726281703180286795501720476382559945773920472207794176734435499632964650936095128153406307950570663097893771322382246401615074001698790405284904264402087867055503888325882940008396261241276139765811150910449589869788438099828533325956184062946608052661366931659457977805557210647625728088899107373999761565488509130277063456317306430886694296714738228607401561027356212389773266985225638946656725800059627233973419982519614322941383823784519080245934800312003724828451914770198707091080488100502209609322931443298523552576411081965697988332374979905285768047908436301171777574313314122769179693373125673871207164173827621505947417643374381724163745702358623179951194823165612534846091662365348187046616415745988861372284528749950831126996938302257925075847464520600574474656243925587580919744737848236035617649372985313329697798748397829266217370415402170286070719736410427760416582206471559592111151300850414910796881991020283059200136351633826906343143586009629300243173326016836379399482663450559924649446328465078713511717638538080677635952008426380546633545273629880758279306785108228721915499816901207698339380982912930048242983276044252087815423546137710341644177781958250034405631099006957891460841567393477361250862257140119580122185386350330664444650516097889710432020262834415502653367000544273413485118347656115503602773328511227917083471141428188601837015704509179856300525989246233213218660394590776295662739751935274806438648062420785599706125639120854072779962950583312512473672199594026988022133664207238662914816859301573609180713933111319866247012254075281064511933410847841637638313559353498202080514895205380204301825815488597084831664448535281983580645731719012591462006058065608210268737633422352849861331666272092419351263169500415741993301884033958040159775288606356221879986783450140309798445157548092171218211982342022280879719384863148807823307961605305420491896482938489728444200932738315043541603844103129638138049515316514788132028501494108227658823169377127492699507430218341124281179110646826107620506711446049813389768852081164598989757297575323576086562401787306896405126588092530906201649971053236717003365570584301883680408766119617405055850114166238332927428364572904065458282618537863800155582759478256323925908560965456073123724645645672799949590668629271314488653379173275352276080389943203565482977933302200879332802837299298259065419817379120519606113332734905083918464322831882999852217747452058648701351266396647018787568176159670696568850130914039685470505306778691898703326073866556851749760281458617374837188215313396667464486497431060816341050207509851139860354807866989257436499230818445258928770331917653123903863074238401043906734840323696937380444556541843198303640921043884741720161682534935165984350793954358262454464289806813460968102896774007930975779953088658672342902163467198302004334216597946488717508186629484964334884875633205361563478088457525657575120931325839939984840377938650731109587705707075908009276231469989024931461358923395792749632685160837273691172725548383273245010886543990316411864892438364276411626864545313221612067614797317515987126525572555518405737328135423871388791634893705293334622490198752379839023599061897299163204705399032016341922743971244906829582108618524569021015985733513043684200886716583872084709739361480450170626362917602470612340498479798904527799545253315032347584637292376496576577781369606673412802571590436754588000384816422429591140543469351527754154241648959751399529446108202175931162167878521393201804561504313554306677482980554773764135717182928952851990630106999386226557725330479204693295656002427721399306109591227899489146970853176641730029490502172847474854088509754215558083743932081256213409827352756183937084361627735338759434372783504110687304023149076826533360263388691096457722311713778774842647170262658319336862237347612298182178876218558993484514773159425652884079599781993800542785657442718092594377381959823059861382128254936656992444099044228463513652739874384175141201325250100545121813169411888524926103262970605174551227895602062783718095652901546118755230811774773659446787405942262651402197876725630238239610671095764876419571434837878934964079981519101958578033104069681051446758984750626383292796980325891622781339431138494284710429804641090430519232453242712933317364786554351194117203648245931543778501751933166705568791019887379797523216202796447849145587447058197365311354217402233226781858804120163794296267919601917670738193635581133153004252547405052825222419163141783922324802532842291052155702913892676851634617880958963558074281613454868810844817165446339651980259324566218465197244733298509739785275572228689743085344037446733985264827264083840589241323494835746806170520278738703944190757427608674459750785329854100975963137936834862384358172308335678188827359963940217011604387974247916722023912445898221842362419561580059208040791218042646463435044882209902873038654756544981911005656509171832252150648561408075973971094624838418519761350452720504347147399356346974881635838568900432138821997374407618116377704069482665785727542189276100134194081558138863566796785145351729381674980533795145746230333592419326802834469964924941075737232297236736298407584998454100661683285707784223502333682262986597734982687296390357816984430520793206514415857925494194965549785732215719105050265813338479190520573361854753598441806625538169845050949565932622163053310341836475274606271397233327639897211561469499442241011768989381344881148119588570328530544465429742498731840043340140797214619340120559984746249421754553987638978410891783470119405799485602531586602564425294572842553959156558858635711744834638458723398576112620830034610264183256286141632027939740731803241690769369465233906589587585463028754654795433522366130734856111134345758437496180575368375662957147990973324979754915612527999791378097198969295933034712362474802222540237015209578642688643964461784022527894134264303045706564713305782328412282588798476008232631657695720256762541122174934480377184135175627954284664044908310889645009871805266129532457991552637049165277539477522071640547721220600121134502110986069063606095917084035100879776271042023877729754183635977135108798723292178642940427878997526990096207166445478830529314282993454891719843711503373897443694246100880905037998434783702169579024205284583378068795827658797218188777668765817357529091999091989435426421596624493256460360478509969103565917219782761357206691272404105425102502177618385946212841192867433800500696830377095412705560293029827813889340742421783892699209388373000260588881650945348783722274676394683961180268891935870660384239797940578974136731099040565922565348858034637816931651271866952871581758606008028468879300931232425108202119267379219236315613419338356634923010587373870911034537318158731238085558524737111239623940068685677308730702870375628168823330137561915532583991089796437778711656607423878840710661448830124038946998809280737213021610668136006267811682294583691215299763196129527644910103830737364153030362740321978221936883933383067600009390286875881382847521782612054505680854820106310691168245251096891851619676911855028700375316131287550720157601048584159056309944597796914725959093123879317817412165836958996334934749122009388645231999073592565025502644001763154301963422886372242160557117919281143474571844355425944071377504856213074685054054422011798954094578475407302674729727900096338383161152750374468549844547243432121834757829843909677685427009001454205121747694667836426360138764385143254776064833848877361092289468058217012749099187277529992299587722265000124043696314900696068995315488176869949831061277292322250153387042256553053937281875977328052522633206387753919938698074793659492054762663278675152446455591468824449337400802243492218576664073077046885646719142383722596216641247137121674562527232502709487538849321152669385920253191337914864224880868848964110149487030134128769800719164175902969057578070368512693037414275942260611276291115430008616982571360234552936090518802836345061513298189186418432325820455435484185073759645179185006540710769833736893000816771937687064752465081842230174534769099306559811669491975886865614536470509239790363346192783931978853259846389837615459519981777217726279210473745406792072314215241581841742182227332381566508350813696592161080146130317037517970727488058513088106141742100790937931593099142823870931358033493607405159404061278713785598063886304437998216945333460996681594965603168798050299242559082149792879447213122368102784184888366182533849100725322296246278156421633148679503542469790208733825228007242706992992066022622441924207956072008399523502323431676162851280557372389923608087156691503633938686118827820609970412250729140966550693851358948785824950319537667520230446195798327674540960937758284030213979369263618469704000006736290511679449430327284325892592739148538926069328152301293943100865762091841483815719891426595425096683809615484135027142829438867246723804556254291647500952606706445195599142531855208042249685704729666551917788296676375031779582325313099194126553563862444284939741694395779271881476135230206521860624428346142289954563046716296573542566364877113630015365520639859333318480080672217405635717465713931762102201599860410064217480727964340649134972151349257744351905468570914483212900177113493205776924680771222390931572025971116902897552142347038078311397536214328021392278393456726194706568205230096348741944424459841882940014408002674103083934911338765916680233311416949090241069525597737388694300636055820742803102431105175419036347971739299540765943101199208786014318452174983185710849477094094813226129777062492915507970490326308173770084680752185044935808049884240371368952777186774332315762899985100196623027249395197079401227897268659824868254297353846012664759617987792285938458632570204634327288280839193662265461485189622799958791694717120869239237871774604984605739616370102262292628571858005742837326779972954273380270954312878434995061655237902744641067066683291901057053164332848782315344862163793940664538352904807860372818060077818352687501208140527937731692188529736576145832180234698320090624635140448233476130001253129095019708904972079399894244428456379281942989644163867794100511719778496637857918317062027740468574804893748226864683490634154247138684036328233047426905821477612645064502802960413593789457534763541372904416596084709272553639422036886989922549402026417794379713140825418424910342062349021584123886505852831897609712801209816968575923101832067292535005921150276741246661273709364179348832390955158079798836883442832746636818326142773852420088828019917693845893315367824513215334399338307093114695472752740633611576537005473262288965350206999049276395008733376590553248124162867810592355973759022141410314141579784363940965526536217892561981336352989736654423915828944696060015840007006778646883996377424101808500588825975087448625299337080755039137012524784366367447580785710191933302743958210805684038606686357429003098580126839752115388852866562089304868899447720757996389438392056259430755746644411135198143320113625547268712734226990355293342304590915560954063159842183687890851574248088957751417502927837864434267145691560882741603774403494590703487244853664830769964575357342203022803655597990314464719387274732871076451255839816309576009723044436422625528891884060981579990382220606491720807325734096966125746898634883749857359104493933709540849980899350611887299379623258360720571483616578641747953548518988282995135694681489926991622222941185828705897917521698071454300120304723969290221613461954211499702638768691705069674426851303102148535273697325449996918363306639241122285031241248848969548616826166282170993981177810805397460896536728952544275896441288052072482339093991221565878731486301644439689637332805921311715708575307270926403342611323308879518205758804041646444552227692847824031227411875868444979859881475331016781080499295570351998718570777182749035056777494058783371398165427619853288063576427801054614397958229949511239121560174558977058437087898110025013915843111032083804635760266147192063190869301106232525427763021254208393985992191104179796626038817711194871128329692609672630575951059634126969352390039552387891816462104050120676966712004298314047493169063662181343108772206744428121458558320324944859044715031200645928755359223440623239150965687254814209450796930253179900275388496898746203287444364895637823759998181018389841904010583216150834867257851815093411772914821892115095813542300119900498473542056499284173242298764773990548501657970053207840028576433885520905382223686222502066836335281586745765734476505135180174888069558341237609449771425904423093663630636417844293140352936451456887444526680791408281646328014735057296191768592151169481365809944931659132971532591050544194260918125882579953235737840531392255665666441997483371723084848149617089986662993907125947710178740291390383622604491133566662410044856651585785789070941312976551159976827673887972172112881237440823758570655131168556276077114201426638044810431789935807262433486967536413657553218252487786957448744475376060571753816772712933566620516712801486307658693391899218212519306431767031059835787752277272056508803107437492083987975727054107122522407448462747362646689006930791972207055359762364568213116854941133266904813134280186718377411103212052452911471378527457803518198095417432892232779766646262639676283792342291990022311643537932686023823261014667362920355612482919775947277248946101028318728992884652388432181353165630649747076802009814835872656097392498799459079926423024496851521579614876284402128853863176755127313265056185542328242394096736047020596982084091990813066805056105882301322105531117129443260923451054758100266154925291094034995434336877048172962970179406444643084926354601970017331538561436002458930008391075955692529110473075372106681944243909838875727944020543517720296543451251726205220487284564595016942190981066783392428714474203038810339700038700950663423061895992984399450266539347527008139181712482730965793424760859424450982314106017803726810319657770493953681808999561046045418393962319843592514908162947542082533937938198800014811430962838850862383140988957417037923169915225274758465654197140190746994923405283182566034967142155870975529889137898349065501318946083602144940033652482895284110838356073445907326945957948219490376009699347067509703567269938932650575409494085687864996537599705288874566621667865222332962444530610601783136194512067517369287109435454278752139908375866061957862740037397576963905707344511316931455067209068304455652763898044712774826952918078688626117691105431665999472379303563436753859718787531630878880995971498789133969439425142034649545405995736075239280978236762466515588812008666273000241728831661323274446193555749103472922337469559536575011910218997724192275267506473143768669772263763056873860964509244232857448884693298280923099611601941853334473253244164003384329403284815513633997414516110942460247804405377267089958590682354462736539242151258395453535738757788923484893462535568961863781682810003744550690011057436591439751578997017111914088314500954958153116637135656776405568097311274732598124277353325515719785230442642783886772746807881652683759660031066223231242132204670640364895565673087879763899249164316560200879785442789001724441203456081204889675533136512181161323428462553024851991045003813059227475062744176512196374324111220249696168964831358001870751705810815784008683832750526142333981026543363356618098565287899626175921034861596349204729580301797722480737895456379669586917513922520534947453566090148539439873580254917248735767697680212169835932432850421271564960359921305870559443969085956861073796439861045841320841321339091879294044835619384333964652352678816572462794966808303971648313084885704858748913771380432737280899598329540911842360437375341702149909917823292220781501699342898330068636467545061250769582934447645179318873808177927469190027452530502891294280650970761748930285846798935269419277997944763549444690510165078763613185666938547821335639946997572498782675296542840184532265337288451847213595199042189982800263093316354700472727331691784291602833008093069033588994704410881225337556548983004306122902720062279313563341471689054511066242030455606159684561262880328668913782588636768666645681973328385197823505384304471092610652688458472800509418767834285113233367678918849577755272494464397526064547824376874034721013672243984813472332103776451115964609390168196035022580805375992218247998912558939942003534963597527152229355787387566261878093690166115742765826099927931311700908562488749952593141011612767929098350775603305292046881659057208709139739048417610730320728444725225972997198271592896936586887504967948669719645846128572158532520004965843075560577323353481485645851814080540142007838389365848760840189186057714943117910671322667842200810464444744029199670881265145666904699684913037491875170214387996839644500942402829708940801885130111068458427376968041806780982983269447488787902537212423113835017493467695052351709089844338673954115366608217753339942283965110194168963441854754023446425853308302788626317061581699969453269996047639726739862538867344447655503532192691334594521156983404324344638233876529771349978185316487612513750684886294274271762085482839908254275738144811949357591915181170906395814255422766149029844847605461855419543689758002208948151607913212212239369700268282503393309984025847227939461578481306932936971199919418364543813213267733360598244726125669148394333975452645476028631105749668796717023082648767235556329256457538757248293434094214414402113014993974450787145396309401759794860037625069386367368192452630206626601168546398292249209029718763788254673045587318598692012667103009148098947329575332620246134961937569605923844377959065906057457776316843088135426855374940124475169189972951736633115126897374874022641277289535088028328081574252248814490035143249773983433932807235939255488059084318337383804480428105805106232369109681904060402454749103861793847747684348954453332703914105143528727261712807241465250257420764590170683951086950950670948504896125713616103907828222422599926535786382082093998023919187177497176612431443674894042315654450268613372464702228902702441579560956436094300554293157801656056094345780103093403932087305004877257941768397374771921368034609828669489512347362269620741069526923945904110394382858241366973412671272935676476831040914714260682556118771991325327205086479159124246633268928153634648234183061449267840594533452849174734381177959077046701721218269061746018387605331710183367664886942660006023275681113977777259452141167230586640220424196399180630929463515249951730837942202930308133524240876310843601542863843934614090475964704754845211487967270027781567454735687263052876706706259975366990569934693516761730499005806787502976718016558064769648611937495678861045921903725098285761844569820368704309861337551222571213258184370300158537209377852218708923654470261484101507789677969398264597206227188844336846970375290742706684591254467523554786903188983775974139185970792346324258906058620522084284327219827197888960520787472529762250042834189476362975632105303955086126015859810817319723074503551954096710135042482413084835224997158573991923881299590338864603411774954381539775065215504343538613652979453514446384038782113042175521719775122592975539656056799635081106323212476247124764559848139816554360183931786691102986451228334027378545439672959045776713999986053393727641752463720184288040287527805012403621380300361440757944172011474979949664724861888249876119765837880165999586441053855168933490224455866178769959588156504762040365238722671293757223809135148527386696917347529673475936563884376932157074650461673342896969254523739819889082497865576926768477639429416500286062588593278109620299214979237071690686654864939345079036077063370867740377201542262832369552595686277178592027490959571339790363492474933308937358765214133940225447830865657605250888315242502178484725367507328432851405937230616737630329753391081247513302312765180316168632795747857868722362119220789116494413892080088900327373884671620280404895356677549917715636549388775870687812131056791484612201507923041102164701585969055253189859454174744861188737399337103797213199520664980619297918628012792895071304759023355706994698151479762129437349327794574052306681019596438071374626553731387364651105033328391009330808298091467138693258361822895301426709623635584371691041433034126049569003143404664836936235846593812580071783555160662948229072926772921641434441027670003115300988221002210845861615123285890618463442789201418847053960759728918672764239718850623568666792667925927236112809386786957321378975684294939119180390473173433243017170320690482042717727863940882318976433921870506350684678209405850750814621683128480719756162471379976711030724029789230924096153601866162562388570778145590192951756749676938980311169570781481915177505456066223422147868887608310127316375615954737394272508075134823879754053549788827240734848255127863218791506535727881557377897698849886740198778696066023304672078186977947224499558629764435133139222243835057510995974888388932440136498324999133102550371583673312837320651185400503616391402743949729073592534745904255687526724626499138531795882843057185240878989791201965832196172167476606338455129299915246265890443753326166727777822531420929517686781701385550339035984379875472279606050526218067689092877794241895789924602374407497293886012861856586739134355927986132681356143302801179306871809036189221507558884168056638100208488940016441408536804669716928213692830604474227977582681451563099828531509415275763460340963224002374705470270210006832530028175917920508699184395152644027072801362461816276909318225076613394266855850192514363875640636377975809772704906953677486888917463029053954601831902636583641816247160976731755073749279246376258235981324288104410999870593419662504175944849136269395482738484523700191633137419474750006756670035907052709811514027279313920138544167510915891013406121449183394473383375276016669368706699595515471063211363904567605842865872587074836600086580586808781453752536571468910730299329730588861510840539447488392053382610204731193682458971872756191680627066305809085055390751702225585306723421976253199629566692754820138577886218746180262121240091403379548032758717375880921053747476578195504578021913620539350070593833582061734993957024924501622846688858278346534737412788501767876621988017410715445051032790651026319028311576782887555396221003950752450714857316935389063649613008883438599565669919763201839173708115731249200643327258995753716250524192383857186266027668033069374301128027401352173108497101802693050696897508773638348151093891433096963920789430902699246929004442073633154817611183109094911287568095772899033750359686172796151047935331808578657531032849288349069834793619562993164104293864433182372881288420930299887822617311547268019820823198974901459255922066404651733994240514422763807135070025378325337689231874134103108856717986048584483235194662796068017091558315629858641607612281782593680817907729898531002739232983318129488976478151318871972674643830380798237393348436376498782994575162322120017370917967945761839126645682803320080216133523829654180743484945119652073952253666510644948434188571254556570066315533600112753714187122813878692862140291546858952967569636450029267357445831240713634541840699468539557196439793858808680446854860924785561571519543842094386491614607422805688663968115337886956319576575650000670868623515300997909579447417367705734876249782496788294994124251357725254350272804476706458367176500785681496138001836514253781211658362317976530009783466623654631655794164263985562818511157909002111780409830766771317491492160023099208539282378991410247571305171870656568645442619297858599959097561825327676928709747447044544133943615687685603537465319003516626564339075476368684898401410056890979052001295733455111517493822606938195848608588726041055615721625973391634875665295049835447212055681756887211986788308037573952819219551647545427425181926375994920474106521936050600380449150468256240555935966882441990309945157177361973264314132372804224709927980066148102017976650886694793580223729663718244689265816491762563724862853879674708660802007268953691319182673187492900470347740011270881285019302751292859389421581147715821593859085481608303641024964276508744901235907762327698714766826159154030893110595159743947109043778809102530749662184176511265651186947561477897555489209834849107819346312653196817378765556338113873179332961718171161088069436318622368743203306208015379720382628329310600295922472927008475632372487383503686478176954212657728683337044327600677320601709641555810965249460017828853601196837685517613048457373923948082647707085644997613325537967905809097399725802421832602047585234553089322606586302199049704143528212082986826305630596836553415161323152516181780473732146268072080825650610783524216834378742542752800349552010562518036859147561268112993759277503250966658533752159391562683393829471949469331012688786578457180905129347365175818892447454305015044917625822339666936323585671566987530920246269379602272607568298128698709013965687787956532733257039512357411485412662776198643938036611555996919654690941327172650493727012676869196286480272662620411437898011506505913737948298085843440169247872740992355234540752344794242908567950803104163409909401723253403378835757053747028285021515339274727553874505235039712973435156479376851729295901347997901040642074228753370606810376363642498308830829229721578258760576360619358095692010972913522530511644346331764125565657614123890727998953714219908544028031146732292747524984780168852063884128337599709100551778397592831089782212159209306155854496819065109872852085521390499393345339732301963345525586995289826216585812561639011193039618110667435369204821805624492384625878095104474536990409998987869887663497010290054632316195832110837018720351056778315326711996551049065949284023366975545795725963243988668707088245595063339728990636016456179982437603984052247740936224819303227312205389488579484650638197380119816695942648949460561361104677432761167033002311315950432878667502268511104451695756619012697548891181988658058863146330852131974096821188086411440725194738664977965367935763822785579844930875709554709969110085266770478710388087233057008795269769859600443230833376439265895401304732714114189063353784256834810645903741208737851646418560233851002721528111596937285690683542534875317132478561473566034221576469852481185582523415627209989429874902909176631380850990026195093535981508163935176331433876735032153778684752222823859863288175144475314640180303960680553508671716792578691961715133545457804917211802726569493815423595104270068320128676094628159391428951214717057800517965052388992056266489301753091443592401190006251058529737122225564808409160596514463488749657603089638089386622314831422537643246362402654474295147444248652101749454496912577593774161364590412639688606204034183849517702989354142684323930055285018342225898076294030155120259952644734671128262250438664004602793362308206649376297129516510384432549474552104982407379069906260180247113240919263180760030256685694018153212137044126007708095678174659023050253932802468641854389260905103937436920960022537608001319819543880562852944030514477310545848188569112444801780683032965402709096508617386023505821270963107862249012343900807541815309249149187785260303550846553170933581941046013137912841750714403117752471686366906964663236478748477506957364664840453165391887977191644172774260746449994645898428837116319878838425630489753700857923854099834505364624358337273083030517215813885066530769586850440306459507772492901373601926054611070788292729406445944449182507511346735939420277979896361009828330231565884828840950414652566988320456059582734077892414026446418228221371299928626733632046479583141104951576913948577361718741710252916777083741744185187510260753599736763311949142139890227844973087956951449844581535603683439021885217157392060804851024685568751980078036872941592142325612897430000173215210930534578157471606777465417017580027675885571484914560506939493501162156321566713843463734845371599678914605128883866603009897562513702313777865217334032186766608696513890337073332119493308953512819894841774522556000781733625671193083091388304488949989370138104942649521414828668832264019016409851781480427735881756059696528965891928164766844385501572087622645294886858400708999619618046957596275904558720155843150140663140519579535165556810912182001025059661863593180395301201723777910771630858437050564533977679037025967682969484581183715810469827585961152822550083484799590123345170794234613122572239695503578648972134419923691707611060800347992498013534231627798903147921515784458935501861668637092399109338513238881813444420462179038138143485010272844350784895446634992696395537773852708400589512927478869206028870532178876398420691525056588359234821264686172609621344512528819632599292549222209121658842146413677450874743386220315658278386191975432426117687843200931729207759888387848826114355778805883866279789416896153353240013076156672755071601476231113156181811265863445483745317165549377951828414152090314438522145782006714542492982162748525155416117847679511376378222215989862218674157075557515839021292488151891239408688324636484100289415090341027126201654981420707356664392718749152170582935140071740719154509830927169035853227150440778258831168446618659981278123517325722433358371905657198472386705145901916713055803657063538944778446534211566915579881481807071966214975408512708131918928781816815342598385789900322228976718358717137624834868039892072708559632273987141243666911171270598731843444908612788711075735404196960693342629391149420830505855105343080092256630606089525698930950900102455545637204196593261008910593519406806548004371603674820763674997754366049953200993010739127151185618575323899341558352957377460320069670141914471313491373968767535090183409075713583270883519214618048529181555258251228017505634502326304684489745471612362537857844913324827271705426433916107912501236873543135720950371081206660963192039534273738606230722715757180985382384281375804271065946082202518500809105119371509435130456838883050256009267199822626611838116420781172970510288949000885147094311463375350059255687010366520350787519067071450725668078648485732062357283270565517602974770402069930151680336319689594734649236415676225099670520640752240100669582316139002577157524690649175689109284000781532181370694440437695890206376168520951073836765629958253081940375540514643560701585976105878323225991467671907125917839249618113252922708116993388245984582386542798594290413024511151564435121047169810065775805656836866509671808352441654627158882118335460541153996241819241698946590750198188679520393636122223781389398317578962296594510155026609250506305888653213107156255784038911128149306308950114954935077384941796430090601021948976691000838627338890266343917548989079741208141395859393281704168180244605970095596930093485536477199594549455731110344631407717438643679935200391174467675138870280222757912434018646880747435300734109461378138404728567944614141784794210717343669182937513100908632333202724805792644454526218447095359446817558323295950576214207057992034076658463959514884269052518414732973809719569552473813223443764592185348893649800633158849822171472765760342875472390526675086449943965755409896587688114545905346907768189502666204546989969121940643303558452749559399534107546792185538678256639051883266030235608392421319508443266832871785121166916861102772243651995259149146404021461466665003287620887462314770978471824491568951683710163069971674295555518618806186850630250785486836197879161272161052402691868510513058420067310267506377538265722410638298586075807120563573855443235392869734932969627004409752615851352528703942181065584749609186665185115606801929755350623113388901701663893502218162630515523895094440041692927065926602749669808398113507064360357665475803147351823188647667654626645964957909123796929881590743928643862014056886156254365136653215637696846924144271101560876476032595234846048995379723291311111415802793039540095759826792570076156116945526520213524067573664398853868807311215280417106541649870058412051901314017386578116956141771867427038046068512187934952355090136774559529366092847159896282514789462463741732662433735138970779573516637416026854274739702645868472716259231018558925654341885796068933764765176593727855631606213621997220457450090679910873256830438454194352795258223517534029357411132824695681916829663470646068012430294192408752524442758355835229455642985295664429175313639191216088318643429797019487101450418650812027387373091787593328040481436413097829595157050812588053013478805952250489485607818472456962365236597386353982943338741449668156200685738390618956692066681892060060093385372161869304628719814470521054337466014426312990778905522309089469982583652581891274073728922700734248515385678257322412645148128525045753142364682563062568618801829414093551380579159779815158749730379785450858438516312984784294682488687356012483807071315993620693666340229739573698711037121529460002126440239090099489660491244340115879167243781843738023266429832584816309127229187137815453387460024097247230703423519125833195064422392534544979246541288760793516874004829737671436716898792633363275318362985284630221516550544546958697103972990619650356544297186533098557611332510836990925644600224467620670116128158401971194668948243407486416312737942131160293418214178874815065556862138892842686157517225807132434827540346523411479335229860498243592468840315429421671596086863660166065834841964612792881146241840142026899798417512393289778884782043836181999319180241323661712489003032506456006628839627519969409271075618578236119220437382435013990749859285914859461862616357254816303759079489027732271377009904295881742248884082184078832558161467802250236736554718806010842931257952755269709790287330512572390329665165894020722591752945807471696646639128951177633653325065083103112379322720955841998605699499615135328490615591441685010565916579704560246130060838598959605588174994703357297857680909514526747956696937262392343865338484903174904557122426036781960845770559345891149874723792214643578917902278875351217205259298617821091480401538047069879138834326261215685283781215418783114237637615527608443696586848743885068377233226210690269622209937119548113876680866395378406232270138977799622274137613308831577075988927159229410360684761028876037108352616354740191927488068957810223073619822723465656471380846902795101470492989425160024859842301274181869977739885953243900483770605186079918109590548962196835787723225626270096432718997048915804625728311815495227293885473940886693742934024651002226002958307808022889384803834301492545842876645395125410455843692827268582409231047811506452380423598867404972899911402682341100484163536079134574310558463049968629308497859331601025368397250993375411902412733863603496511035697790953265882218687016147067305831813683199680025593052011019769561596427729026320452579825736169733911866100603816544054104802512256246055314091537386080732783282055190880804710139890028988811596461438063262040910098582434934872874049431915869190781427233206073057680219404090544108878889358813423478400996429766802799598817013062392395668054507721641015921358129267457340925419954332614533245863813067846511010514372580958353971463199827530739097653465664004414467755692337610572514739850823193187428287065238336590241531909869307257310201083701519086231040068349105934751693227603436295724008767181280108184081558572056458377680016239544555404493531237102172056627077219110694594218344742331302653495551954892138866922059727872332820879203403943994990160148846937707021320422855678606593857192382624597332717178320343982587470406762601656897208930890054720562917675319547962877911977870668537111213195845181638414102719802747809615924446043225202395300825946728992841099557008758798171857180397667539525915558665913239745691392251866397115854608116458713537353360377934012232377521053880059880108536757371053177243946054577903087627900125045915803691492895689738325945202020614846726014686850215550463624945428963961597523541623526145803840232593058094039782060427546045923447477020017222436991880303941912631234458864845945844117987686506765392197026734371146526097876800940038573073437625080684564171864330859310492455762273957628984326230835978107304803387914670262478100832520873483186557253975108977887433122109393691900940132530000830192323644185106057469766877226516060961462596113711971305096700929729841151061686708200827081137504791274147818691533938789648902127186614069665409672109885766975413590684333737978812399579869941987184761164040110348142754407664498218705943306652035923192577544737667151377407964154284778750417108883820935802564828598974083151459366004329213657994512211190740242365611229526266938207637813566697371242241672899844837095204740848332951043605681184027418752153012817935162246920000624807088233506378973182244095901444071852246044182110846773400210103876311422594333500646513955646771641883665466170432985154597337769579743573015198711579346011646836403843541009006399831694698121540080234612068029177972153569623989498290348980536155606679582271878361724585154390236618804229098320343904525721660963580859401740749507382887177151662657493625939302600336335063625943628142799479474059127077418695471914314628046452566320383826280203254985885168739786159106319176720465822357261530340340960505547797205928104472220628661326087474252210080355286021896615738565852956167416259424713895526755803987346780550063848226470449260529817433985760207556698769515025855757318809248901296624215982342630410416600030793152288923529371840798131167334977286247348293196384076324744839395534704347171773505319427467263520419728401528258996946367496405744519404650725764283858371813992808090179917093410035049917898657013705893874080864889817087173638907590606036108651166077163699809539570556135290283444533355774667470756404027457868471026984824495931091464320808298197946576618752753688575232850602837475860409924994208535769501941664895312616355439458518685958997816265097501445468392686643864943568414973491286490596557285626179587232719510262681486201687855819044845462470631302448827461357944812178835229063258549555665265637797444298747080131262130804180522534499398485634488962715387394333877226034948836276461215210968365469244039267859382733919541572505015426974323629198472453468296686928306042313638251534719364436677727662189151988356822300371728519186705118565117703447946337225667390055865001319766622004881293957738755058030267129668373973488279097292825474624777995509465449404112479728368754950593030772080672648027097201344058399823010458809373874571767777550840840332851981188411303194328975423744756659807525421291489864808563452828206632161358196384613952455843391212753602823966025976424220119463101541675016025447011437499985562521072594877003610815726893016372157808701554312981776881865621602895023163598691621447954000133550032169255555175819592502596656260498798514730760217588796645656345107752214822927636227278073604695894148380236760510083325967214676908456132479407793653267689285881049537372246846820957182607644119890438090439469422766187232189255308530153526409399550454346375911216395760561539219735139341130715645222643141599856187038051247456022735781006642661837836225044105642520930496048902954728010690089601460275770840095734740050411330247332780981235383200332705725323368275719438216637121033498680221807386740333405606414310334687485158667457732281830782059076041126428114438528154836922776411376607823251499807916407952603840509150889366918207067195553412099023796246822247571466345508690952116340610748383590900711122000395775143253873428128983026336778953144241442478880381153370692717409726433247346676071180983505464400425727358933037500105484776301004068621946927062767483556618543167038530957258628438422054856485964122929995737355291842264201056688423490753987673183116288369395282985965587479230581107681580620140464629497286469414377400893401254979215728341017416242548126691313963468228395253150916058873546947878205694824046678604644864247850914732301842605916494049468500699405773061155545707579603415228677362245230860113064183939173192600195301976057688041866874553193205143187248061386052006576006779629235493613870242176697041016732145639225734666180038494591715993688831477007065404823989961938037303153898112430968635041501601363626908601447888957745915275176605804979626284163842998551532561147192414103929243607297604162312345713706112335713908474756860058690262625001393609293321855525066293135957069128873267169733832093366131972985645060960157811843948506171378619874666854376572213910124043386688988449301638373656238724250918650924438214276441587517237358401818889565913838344979092976146431786416373127650121027309867869693336700965319375142416910554739318302255536130112690090574249962764832434048920123353873961408431166025825701048119113859993568437159779958497815068865934320980579939071874776381680629356890871727208949942211594578662352987198995876620137885304383084702936468153966010163780200013156814693773492052955082284217949878754484814097347826592477915183647637839582969444745951968404944685554326933731041256929762875714489211881022036264758297015778892594069645678411832023795815079636585626287078536311135252452264723302818235304616706811929615924273407253452699017511279809630557967021172157097851394225998965216702613031440281802838693429503342878513461450213236329197809450398030483447630697771983865281744821873551170699954023212122276891630653959977321276390142974058076686242196493431727141804506108865632936560649683476843021829633055361423947074497186850962230475959873793308326349147303317079610227725079087041475525698443073694767341256546449577603759479542488003451162377408849786622468148453447161973245186826562636289743682107209748702144699742021578862137828491245117970050363978103789142723665603288026145241127189820873132135989408147380183298650608383117329920675132319056513042529589417234237080606336298391098167043665861691314681259525836062146409479566320877830862574584260874140277975330922009124233679178209987881716327513042620872311805629029269590970505925968786023780982421370098337713857655864840180399991045720088272630000173615794473772289817608257369043555317125141099505470350534103031199298643971864010663944783264294484757858237175123209767971563184080682656222410100820020311575955713278581191517555453352807366054769401626342462580779098452315574702089660272074116691576801643463733769145827005211242512071424067464897913410120467367699865640672365132335620175039329784984142540870974479222980863762468188758614052766525993133464267067908423901029683349646373946920179541212442523920013820516577956134112938883435224922105615569386867053347702868755047975465598863077518688090503186848514740077372850681038405363400144499913149168050463344421518472016574376483530566220691886942496947752845157031035024403413378949402885119381398714912650660296660930619994575256351510325740925263007961609244518519304033087002076755284845049026124699873409042611455328722689244967811144415106826164843778685609152622284540423961929639214582053329431892497943215111883489862369318349213981752675210067797819758267829456528048469120234922815586553863697850195369526890423394103023158019339671713348561113417725238131623861875356187146783163142589107244963717786859559196814951875427325056223717304957192987488708038836305012352282962916111112393380063625039562947835986098633243511333376742839695510091109395555554929653720566546795264199820219775307580902868742534083459612241916586009013192207403390757586094220235123123137767170905370852027821959818898832751458566104853029163806679571605506879807213159555206631972588723136417400957001192277714835613088863456390423965825629338152924870320815461560365840433495684591073005989404525011020197252837772222238597320490820346200637072519706749384749386632104902579312470869565788666207519584112714610188242365421677116922800356276856143193069603111358085990636388381320387807905570123344529527768008120685839910549070697192322556762050585430118671151679887309305954802176424248271455079125019533406020766103294137938988910002929905330471466236256722500548009863271087046851329896805682785135087753458158254735736457046723219927678320915418487454568944187899714108067993465456612849672921088607264920102529103148199861694951127314249981824267489616381152012075915214994290775675376053267603206370247454269385335816591560040695040481726582802082334413787206542293395536775987811461663570377418400181033907362803018068279302613379337986637073649451972355017983342798292527515875432856025520719600957935275798293617183968237502139216377889790386588424099200740544561120549703236436928311504526587734173126803884292626622623959881742677844516140706625022264900593909881490274225381875837017217635406557368510019592132203905304884498275579464949277487917616118047999037792462831630076462757759246110031045706698829179146808434937138236118956001567193457238861000127649596983838697336672196689635783826657680299022573762757246323085953890821460719154557625224002143600472077889890758751619803391692654668315448897726242247929677732600555660641272133859091333974790302226078849578811837230568917789106464979948112447133270735664790027848620684203491285092475388591912634432236513559671094667276738593966407343297938485405889410846005879699581932972085032798553948634739016370997480609056112532175886413143619843776456277023173971359730238117521561710127086000165186577838731247716797278003766234352113652249870296055329697454726663569437436989966706099105662117140674343084726051832411998194432836055724907185626858503876413638866436889038346235311308762799260677133255684762848541143853661646580969639973645204070956394377120928392723009619082884202820309465091185890636937714042405062426300868200799628337741860243596506583936927677769445909087002162292517546189453262911349616002716331721231044942777508234990621403578275231365176087343998884043324386320195977907147051113746704903776225643025009630082370452670613840667831536578434105867534129022020114625419439687915773474199012507499247795249228668892585476874288811552072565721737736138841205461084014454677954574670150360594788087954727750765055997607841237022265053422675577067301924810152784030979560627117327064647527471695596026432319817788094414526741079269819011508586717616687630751022392922896517464205112764095451961420592465817815314991620479522755956365163580052611946834871540112223577001334712468106610029576075986309019477447578216745447110392854348962906546583331491972830279988778949591451988884640616462946532975746456102322203529291352833011333489992016954273038158569374335301282324008405054561840292045786632313887221598577846513405276963588233605119493099124791516838869936867652974677652833591491252807046666342979257751848833144966073850075402285598518182310136109965063041957357312620063396146713464083538837646215136886602953100992671336467352588956449669465006765787375101121917497317337272076710510345761087802179206441311202793295105492834537284947871085030043295689476297413455435554581563418739083240272761252594947573151417598104970537467350071622567229711853654931300821289303742297794069373364763779181272799429241774798476984207465202364118675606290868903829729423552259130044658583482992797068034807644581198130293382220824502244687897653457428370575173587338048754761292361482544742996671982050754483533471702841008725909409678404061400007172382013207078867388028113736363506515894988944239272197045358102531081722347701068384455837942850209676851537412565922730209935666991875828497263979670313752259866424220992427165650069171229474341347162778628469433907365976175262721272414772657976097581558569599053449117895864119573225033044062044086266505413039433603892132180628090309800925224970989492798113899366455626068679000377019183907536098456630969961170935745740865034004743139568264218881379148985671002862981976790467151070201813823176609638159437516846554596595817527907072293788583897280886080302356680814456807932812588788217153951962615514571099920537893191657569170311599057208621967055142492010318905403045202078252683818646592503958576759879872039542963856451717189138622441893186053974190771391372537265682599189994599448906436519531301950721363247145709162361693576142045004617517333128683517727111578979802540521863189282455517966727515718259543705321315858562416459925862334623883452159642451381810750843411850972374427201581336685586409563129242806490538803579803954139246646144276313594842067294621308828230786117654912186665997144149268085674835993879078913580381047319716291192655581986315151582868530053049464834619363111251376460207646633221933021823189595792108462774468351842347535092383226954620705303213001437023293055388425838373332935669515602701676790843348682033699893668952716977932212000057730198640826166556849909758901982083899337163547177583010523543728101268260080337226306462466299983288757522583394970880462673415476839537852081138724199385409789958986628652021078238282490489641239281942214212636128370013610982554605854729319601784047958360359377238616808533785358513662612424957242349879801628434034131094468770010050199358399611986739282907720863454571584719393463371286670879651997380627034649378940506496595964605812533048819039073859967041131112314372921411121791032944507307811426935131282660583933022988220455095693481142284390974275172213221308760197271273690210872843224301173153985232311154489105119440192918024348640107203709013060835058354684143960041490533744507998366590472176442433883919984507361446531530186998674747994902057823342921517700599239220118769147549963940737024408451014158071015876090278918266245568198578837874479620328169468608613035193208904600564232380902589293324517120131709604780824047951744250438851673132039720285370286533419377769954488970885437899330371256880276570343303193600744159983363005244480328213697696665087451263200207625207448925428015936709371959393965991960052881405444056827893277471790861228886604760711269653596937363893065901732486268182042042664930962952501063826742166703526473428391005424031718140570875148462520727779708892235219719766423921207142546715479565954595573352314204142085259681867437091931207348231261255993530979498298066452116999717274684971721421821108753839372578871243560503992068558403026164353764225400916965344205481022932694666234572473259359629959008981122124355837067760683403618547279785798435162955523967754672386804841716075523146380031433891648864496429900348999327828115722835247947439825686965306474362477011665937031426651517594485371950836594477531080058505389482427999132503482668182281649461056971187502307045056982928761040033335481902432456749009633425737219338019179765934164963233293019702643352999819607939637695450493889263790218595707515156933539513476613376668560098267571883138215893046797831183572749258540751820246492491460613413264836673310696780041024740969749562622164327896209097890546272275025549294672482761769970017841910532016995650745670166727330283446433012722075039559454456748840154345919059062147582181534205787779094693643793682587635431602064771058974624481571299080235534308989124408693256832766557793981943300538743053790997413139666340096059686067888972086255975688081186809454736330058866808326747555451095465929461589331974493812683674237733584897850695436305891716285592367829726418715163791243634684194424296272185199137056624202961815607488786672103403605014563853746655534495029806756957775648980267733375707845177402002656585101492010397059033506316024551271959279460969048965628166872367770889379063439211091637084863627941612881466484264208998370617958109207872480702743657801595331150885296706333620423717590657289727938150289617282155031258200977368739067567174288411441843661514768873843695462945847864271814647269905667928267268580661756070419337093147568373053704548096579585076303714875825407052803312877874897447259840953520397121755306794732879533395155036407074622484296433506873810943836141117207694375058916410856993897487460087840684384732694551627347879918117935612043678731495074085888180824764744992285734607438750793356004041465604523009171599716873124813069390390615249758905887361864234280849119474189797053532528813065344845197999489869375382325864454250146463061732583791222773193648567847206551382768958213098414342607291524452189958892023049608254572457448475466229376620512668450323357344365406748655977166618865041992073833961911236927899420961981477198614746932640773116938966437327879673874797508258605336449727803022920920261040243916214833876864232558322402926952528369424611215709096505049467686670950883473746058106989081164899720558494178953288532172437292310692941137165239557960197909442246581169722961948291005835711989991819428431567867396087432699633544343784739437735296150959582261319659776231982946772431975206803348221450362407829887708150282248833339897241955138995096153186997927431509903363821488090079785214055375482294013013339114203027866248123334581867005446277642829323273179861904241476893270564710291785533560064061649115478467548417246956234125501370552716386564680900568947347360705784215990213195459007673279483793830602093626047973004665582339526280700815265535201410221345242111099508627793466090900779102558973697627118934283706889779747129358661599034875301992189996938864216620009923536659649107571532270618565222346784941031869995453085658160767192059570306182943866601063970008899515760311043560352708184852052470389822687127743282777227295811627986879101490032516114059348553285751578804152504241380144504672445656806226574921848067714377161559352502289140846898713425581645332093636149441229380862662967697944398808459242952646524341436488651020270042215703053195631495852481268191038007771098200635892481819651686055389375209086558829888735471213067394915441909256474446560049754974624611732000458441000051665279309812968216357503383607920365866019800579470483435910913362194832838365485234357445029930407985662651489511779704566410487228545001895497449571534313204030546325469798243380342252797537453463534255807709603597400068057570005071010125620406171321953264799907461668765053022256824917959913323466031100215984983625697905992190853204322175024243791202865725473428464733563893890972160550241766948769639893031537702854200572585164530820085224415506851246570932511497017692405156378747387219226828858170143718359815916575041195005747608532523823349158920643674204359635262903810114051300811910886225652537179202832743553709343782654273267962557646966426273799484670651385088378779633056741205689398031289282380267165207014595398966207961222329917925922388655367022472056156287718425763642549223418768235447760321989640656529398131664439212271719423722854856060497524695170392872299588330270315363693095332907235523204030605699905801619017077136277792621222726559487862462082004409122782848493044946753676208034873696755730227753214076843503652398591439134026632470133997412196813220746529118395356491854002475446587010302051240772989347726623927228511602390094665227165179886928833383279534427775957664666069808693506764430828526799509425791659327927610839500706760219856515240001609740014690182208092895418680118985919278611478289713698174837799021243086307333446876145005037333355363423825235964653352055172930221820994675129300486293826406810054003304284403497430799277433656487131747001455480113131148757886293634145242560185852870628605548417759850445896489554468307807930264046798952069391303879326774841656082741295849467180045735575640977239022660590482696574623703347318062018463227427390522496651879306346239554237118283023790092635669823485294837368505203458549206506723418439676259488560853997422774910502001692483365856083882929888809408239157582623913874573972561300103890075263785648755709931695067700456080943846395260998301720070303093769611374047193254484202641284665938419960533570519240617860709562629611120990932209641229551312933308853699572332740950767264197595273598549517815430795477898101321086499834852147600521522647815242392419275736426877130580946692338025461582656181227828404700818764554978586378845505474226474771677410983459921387464780591005473472683669710559109411354121283153375005221330214867956221129630588793191697980144503594256096386268930909553715640544884687156669208829115886651913286561047544787764577634441963432638402168620894968588628420615410186939235336654845878709554751706872300533661717117394647985244499362833501094569039519300668946790616418743607331332645873807172197742991332403549477261115208055634536375394363998378542016440508525413719657311530609389108480874555544993285742077272649587380345305638158100764909905528811867690150141617010272843914744431769127002064106660005394831528650100234039396510703522667215672492525836439193830581005495914740300656610679358750345182586436133615271593585301421138573288705013703976735655651048968240328329494482300516700175342240436494873468489960872364492235455421975209450612071094302542766897933703090000310013420419170298620559632401691024045314956990058063194445904750739546546221749031525898237873924696439831628995249072033436749150649458376688056588597882379641678143237047618670907878229118369158939090816069366983762173812855827329702914078930200046270781890544065497591752962694620496273577900139754145659012731975128096809059325449725586715880360024640970670449481941473322252558015937527530321417249336614412014703788817791165245235406908220802488494526626941384396091281799351150830034181781147890552403767976591705114717197274419124440867429860930069131244430948569458964728180201081022536647334108816593194062701163968257953086635183196044834351007705351248179561452535854292541237964450716430609400766030170029079679671282706988857857832677285359086419265755722931801600683663077837180596482277528460756230060090063362662068655200264735336012246369585048322963352646472242520963592378169748576074764972993768133605754563286484595922660297015684504191455617265785867268893782097763919096026517637807974308880035451836192638972413907900337058223832382640834074009183576292583118601236447463919625483312665190783610588884057616276925478959393449286945804486205256147570399566986339272394715244499627723064252826105880158864989948648428787397440588770460887862079062334044190114871158737411407327477391242389623149634160795733718250858604722038819822799020739475007738528091977610609760429851697827956424299458773554274606664553489237672445422942824880815988147079231728553088274758281885741793686554015790997715307741241720643872608998337862931152744999730345273779178688811821707412489310824491731740540605852536167333040418952388085968993333383901849035780166396965809394019495862320619151301978651598861835675059433874600359042212210713493776089949426236520133127286202379245811652637512383645367906612537812442747228840821581055299451353571815657109543452366397758264957233711141967185686794563404997266897389218733643158855860194966836262126132521305919435291473909505747585960176452222699722059533716631628006755978014254730147816878435121733949432235170499554836571665385743813505853878610401249891751957859379342627804763819351732556296470158535269524461830725007389922474553616070668834545409843381411331065508121819557704803507520239684501903220802396097548737474776360910229790938750100964714475710710755579980818119381607610857304865824744851891149733008993532824005162457537912795010888107193327256126205589719126700877347835294902270711642947682753378771350139129321831869658270069179441512800909496841689311437296133510800908348755508813582323366234840685905619823641016733444135135557206558519758791532812422051272637409695274293933262023841091492886134080171899982863512090464554128848956193802755616114538644101718486553580846208536329783729597281428617683698926651673641488449395761237678283176205446804715591418653103623001733804829638252036883393983899934208467834486536879712365112567012011979713353230650714846069550987646478008961345045152460662740201953256305476878682380708176173257034824391727340290563675086447151515966169194127367073370080918165584473208607054668180554532247921064399378175281783940488027761729520417153037962958381402455563207069817104545807685261043149601562238534330064425958969827598586007223702481439923798182730507839937544484450836158627701664263450782781445433759266991209553505924124580779996364225495224390207213374375165529042020651729418897396919595941695565243453191565733058495222551682172099045381489540038584061572764263697690124890883788292446646644487080104003059432801306354712760910727967133721170744417416846421691515120559079685293764064999015013916980975206725563230654867015619409657892077629947461792542094440899359988625299298391749016907159327271020742722417855967234503852273353598590827769174186340176384839566977721082980147181581792811541353096745924563634051594485050291257301086189352306480096186177444053432611320734660682064562146643876474473852467595917512757766473709903025546178566874352960533565444150182259611493578740584719966230966185546901280010224047556288750390856486581720163772041610761532075101168204689996624157860238938307115025483389749031308168377089878930493116983182212884482829263958948183346001355373169723284281679339508346185059359547526900067051194188228962653236108543610992144105228620430315815400319556268957921956922968894973203177866165049404682909850943892736793856015842058502905750498372334700277749937112274998981265615100293102447982556047307943501179114105808728790511194387852468006235149876918867556667925047865342180019192001614635823897640466658093698845699299243915110155855676367632897131841007889676004355718759271707916918438930250929863196930737982942337284223255582932338587685225948000764748839134530282673344305347300210720424963172119970650717859417259390178298792603150963317220933444297240253343116739945691250007548513130041472948861828563776515319350948468369927796615401270375198536285517506681442249955627537864914785292084281076638005058618809041549167257785989133268870167694559241657367943843380171912417796228771357999860672779206788583423616957397047182016916626978440150163436634432086794120923905730990901666700234726381388109641440685926048906624358723793057361694887093195789731685028103814169845434869143783193335923878934548903443619442053833165132540683653940007256668871502838659874783656527343201406760030135030531633979219197242313102320051084413156884075825975696710988364231962710363014435257748293325390375039602774732528395689184339111957087521400652393250402386719726113138453110438924389432030515974925639964945850373163558030431345087981998979893008496222248866698402991789318877253876659115002289031311985877881795038846787025805542523464279760399880756992045482668438940609509865992058783984519577662277156729677625075916558325314673227482437038617470478794170472884213108543087081028498520559270101455568690483807465086629013886716086391430837336576012917116281252632212812491024064441268095228461732325122428949658784262550572546213606541099435349967351519740947421510218123362453133714279456122280196725694009893855754585884893069093611919285420912679893397784582570280402776590496561598375414483479703161919702311315649597595953976153962334226768390641206986895687915126002227723691400218780625128049917985531483989030509429718913050493582603659619397746501781673099489385451994842924951447723255671852859624929597684252433021894669521141696021571422919719770660270743081422761795182898193542728201038172813953641625979585407479827684478042878440085621918471215940985779480122909621012462393418029939939891025606535138382840969857555984127344866728973592927093725581597529669260839981804822291187161182806234322002467911458502819596665835265668145523833605599338248721415062578004211723321957368908754690757500293993675871694495574168771961455176900260291566299800334501577794083706067763918419500134124438178633295246972774114791658536987930417265363844255030500093951753208401651992076823693932968247747799408546951075750541370656687959826776963141622104154344268848674134506643696792703058056589623698000644607345415073234910028508888912693151510968445207536945047248679928746924244472400938320310340680186929621070198377597476607744325983622671030115407056462563681962601480783148225758686691224817889651699669401210316758314774855590342180111771517300076186138805677344019999984901381232187682626435378299793384141920008427674872001702656285929981480701656497504750089224861734792762812444623527611290164303269856907157081685863717938298835155764230999133675408545696885157862652857578474970020768018720896149558462642785830363147146306063241998507498361360710028504793924417481711145898259489375479980812920356039378575037317183402875195654277480428371224703520628858367625211376084806226163776081313225583931316466853950071559297049283660877507342539741806796705735909347963786767158512251893334042963071509573778054908086101538069667219731166147896481371999482457610984199011692190217141905465478858988638562195902980454385313315435741642777159466904309662229600964033948216314955758200084229908449008570265488830623209844616128363157715822392115832210930811908843979293928560298545022700140643229562665608127146926988831890892634603000789357551930793103917613591042489119256020214121097474408667502637668599353552292889895103384659444898631557156023427686988393108847796174615916574722091941473243876965805634813251898521708880209069038837622703550230389791322646427889116437922015840187185971656215451745111897908920006567328464956642916622372681699388635902818228553669618594061185126741593524478305913034101973642358191118455628940697056988039803757044179638481102937381917147436729946025661436174836699891417189317170332726690203389660659529058473243466136127986805976439904237038698601994907633676097394311264978633246871126240352583656689701419610686528065889739993896320064889780640833347115175475133049860769611213063006258392168085862596358674082005700065911335916266948322803678207690476023931734632550454056912897483529582813406740699905888528621786796329129528109872746471505620371432569457313663240707814052754802240142419875311176886506021321878673500840007663485056900898017646318499101860055591860837363992235855624569975508729515519677052411937470400494944890860083902405161061226954376434858411228860153347643178240269252583728838057575876526579657458275464704028625528371764716696109442254922204975846679775141222763394848271493714944655726325848979774657992247063702941517687682658118808117010436630725081955438443269958900672354432158423931537676188414572176394709315614720128147177073018732363375403619440516824627208383930178179314565521799731860252015158638791240018654585835902994331352533027758019979677207463344036526945799621207852645038324474603413557236316279916808741205368466750780738504071096819764735024450161437623433493152830931443556249345627159199986531014758699110694294499724150055065420544604611378519095017351363461853273149412274868527625893559649923743091666551177094436280595130454559964535145460923125287934047356466299240326611650596465029649554825524513622558189112595401354702694317171483355311443163425610642846665913424113617623913745404033779892686421323506344371017696253585803452837118543448129351256445993487562814042832839349758714266400718477372115400013206889663480601445048718187518657085139413992583304151440753610881818830813799316320313389308067980058254628348705426247284335986684651750210293584286598068915087115421705198726572788445918602297445196943793295224153053832144977385762970798686678193434322974735222017494531472310740597868351112550427901037542117539779040186654050712513294754348560138195076675748848771895159734496273392899382242927553383955804067484117887571747146259475115196966996792810431501912552369943496935995708973558365138683175384704832850679411587517382343219098069766186444732082336987429143003027244001489072118303058547079710770359749614505434696529875547560622597603881237490251807884875595986596413730217924822078514870622609248029525362384456179057892424372009410578293736206542865101848545495082310992294540169571018684672415210956767544935470953421811876357418447069669212024374233985997136588535810401383597778039197669972441397214971250026553107094787483308716604650165601578107503412790000454199579428951286176714329012318279458242895570381289538714718272589340555935647219455337672046232888515613689584200791999860336433245910310707635811769755415194050025419957079546110477664506021842381633818971560199529612240805154652031493999990104453061477687314897861639224082551214526997857581025582866162707993630175581003706638982865237172581968281053375892506568022954055450207412295195923628277653253882692270974517963109597368838832732236830706914984382943608653929829185289499282350462231039179341600496998531061495363605401798735988891507197837590794148061652616699661669031395063647631226724390068308292562651902749878261644306038356806590365895036272712374832656154311471742196582781155542287849338898047458030698495103761001264792234160586394601130295745816370615566418923252127312027012403635817743640988811274644278146262495510921788582250240497090932952588019941359727335479753434739995160879169490235036373079677884979072079448719909709117064711654102324413135031115848518049433436773932329256302698344648197658174169852493473557617182567484653861600626190132037292073503425450073969955770431170640638036302577940159484588656667195887951702884258960733234989290015570469962509018060241423260095142981721103499986592929803893031532710103568740733110672948592606832857928560494870005215484814000554270762788577434032324669146251512715203200818461686945372936135415262625687196427965791717596757008188872706516517772238383598418904440423559933121827527822432358746407710572233946862040675208076961073498141795266875092465158142180851023961068014095124769503616002588997982472929319039248186274333071289273265347064301202836924103895409001013099169082708780191290531887671733655331209121832425068583001159437385548396939608640739829543624542942388265133684749626383628703137934470099984186466446486519597780843464928230638869231721226564620261801524159148871560427602810029690449601502651943857502096445917354631522245522501225062977557079636968775259356688859513386860345065956336225276140058518896113633156622231400739771343402056476256753199818899141993294178719587311607082657790151447947966222312703690685749409604732644286863463466515164581723086112101489627353680873873490099024270374258229448030912755119929793837184601201096454687335215928739427484692042906106134850545343535015165283582698703666356024299401815126750339008049766529076604688015199467052160656317292757605298638025238312883829491289576051032295107871531276401108855073945129572654837097188401398912366353107732923848763354839923649413816851866540707046649629425394866550643085538428664396969975987140178696198073543130253765443616999411143730557019369858308254183384583007715418106644833898056399603265999251545585113461555459522521335688745258475934875494258263517062701592080358180843253760019502151070654574876819370531493774407890221699306944162443247477689905932987969713272197326478659372866890919607791394377126517606250648628460575996784167366483766304601220559895040702204832709628832577984291736579402254260102090285969228538391890183817452504162239793323527213792243819362487710132621181968238528340400341669393577248236697122361089219520660104047626443817891831907891919225444945253426294522077232766681753655746909529399030467635271334624403117801010432556426853013724400982197185599575551433803611038068375695121262764514180253418226080249651321017819174012144091542180602747781751473117420779059285774338450321794904930613932850866418106345614409730614491740832099074102435780858194924493070619948916976661739238597694123453220265951954191253397952007695083057476275521972304430726991840266722316373904497599678171128887630884161633322824573845964334083246446213240857936616162941972572962169666293806669506826559779482612106179368756021932207833374997271727652890778062143455965998937876350838411677087405619729014806662043269761968766268281413226348418747559266245417182134757889329727480723633084745767283363310351953104869048602251119091141134210205848522497632403785535498736047484016968162594160212691122129313895220737472749812173098897565218768698961238163648912969375993125486300191797570298962726269791367222769959667267345850689166984538565911069223059351457522306242104491154433317752195172089469118283329778175583529861649100004345788038311093238274254666440487265077311276847496755283518767251283068590328213458349317994546438203938006303395888367587056458333167487397116861397299032825015089747860574472569559734317678815249736495073634018311221623843959414334663481993688857165513604534306085443326571819709354732739970009445283983536297091895292443912018920848772751002616467186384621927744834585374986605128126595118344855447374568055114637390027026073763458822379323061301653976678058066461641338535299994912259632458469816412779722808890433061830575314407668841171169332428978249502829784400002590252793356737597385070540508298535140026654403157781867656706310260923708937718393977777002191425789227377709188927418694704435860206505978301092403210983983218368764030621467039635763236733232383953372449318295143152046716544815168363793328664606183476889743020133984043697880754592799930612929803693851412367656014411539162886217004685780096218255804045443568153176471039056501653334938851460894561840519942999873188944835158140582745106637632053269765481409721427042082196492357364894968458576839669342016670144137932631761251507311898519380168873588545565894855929407872347903535461080692650980383861193632724180933703980999503869678120716136010199586089457020543428955032978970688893447052984637800851038900551341280892001207828863082117921477639936616000557778481810664008655239388737849006510952785956367218196519012426662643835505177608215214007053239758915948475388253517878702469578693242533110565109688563878325086658988876326470714114711772869901471571825419362305434437993425843004058076099323921784459425418288220335175285441154984523708727713972946365319041947878432556490467804375826087449942359252226299670998518333626525097448979211272864187468316217737788832304412712422008931731803680372670695846936095286901575035241934371018047393077894959686668671507705609914018546958946859343088844593060544865728342866682850449239756961789881408079654146941546436196415453902212129251883885427041988556208519372525251051643644763395240482696978799186932682693772639850410630900632128330462854527292985626391536969473399594459639947501476349506988838056705651110545973995297705891904918969282845266449283446747968119593400264099372316946594806140437526734432099765231832260143299064208513472130851807961922445407292796812976979886305117581462067347508767801991687350886665774917097324155644736369172267737322126478146077735644071639823740801035063064997424557673280353351536469214706467463317471782021003478277847456157607993983491367396430991538503792980821892768209328042535448827908206547842013648393011598143145852366086508675560867448256677687437386348189576007905416921176195597349865186990635650990952212393245101689996322952791339113168185653146464985162915556205030869498465293106136011549917705201979554614679975187765792508487589695301416337963246537771271169240770032970847277164050604068421695843354838035753990880661056550651247940797511021444676103565199497927958543067290085797724691388844099344656670937999599958951689530464281967949932271966198268180591386947952814565863532183263191895745412449851297630909856241920031651303795816682062520059563479481563200886652070213383485384576399233351791272965368953865862723587741946166202870247633363476966826638734988128180317994634812462854004735932446505327691267921962235937897058112607323282732001212379065956424668582887823880325938124170457655985523953325822649000548183331647580437598959271439687813984233135412471599010317185707449127536667150175520679386299817963924053114243070508124907670546094678920197405176139975980969532448230741650920902065843242006784008648601599777927018189312042774034758361462502000645219082119297063682492048009675323296646652248020691923161016428743591077954733741401388564681062647181768363015872955369401081273467534932272621512909626530694166338495862356563415278597433818184786478077724928786308035885571651003236001876892827397976537873886469310472655201166232948055034256463258597959900742169848925109697364648634640450871439509556618750036819291738475419370398805698591185645403063673330208755761045233242780505188153356763626795407679064197605088057879357349192481588991023812055768458254317497663835184119243625047431497803052911589745023530189032832488344400002563025238987298075300243154943919273885895968988372890390233406028147166395348179148637677603180697798944800486237378354104288149575024655509207769998307839101129779046981957946311036973554249465477419992866236902382995932247242541655320514791305670047721672941395929661261695265974493853055068105959748520437031253319737996079030285772254048080148500651171749650083043723097002122876005114007444467304201671909817154935849864845700097880876595780287285559009600923870896651047695968221171181236623008592997387520844466925958769769563970984650267352021505139322023933510559678630459938683838718944189503957177423794226985471095038840538751483160929137180866820866616051494348824150605908922472194843041605577547196313508117677413195770908451978019214997718494043548850328256511754025917502402895694718924305571334626617293313352968057739177074721321966778674943269455085237078781303812872662034358461694501674366413243663360908176558490683448646989060950658532744228946863295720683078320041258561021121378380396423452894561763964880833878758845224380306178606415728283308307765080310875437070337850576224175800602769163006237133154387598570949822525051436241705097542207388932901861306307669194432286938409371785919796036187032363750461996487831557153138862628923988141979734366834684780923531943730830955706640056933905817506996790970288589832696070056877587907669169813538394629784818048752624933859894582938027273030289442782731096305141377581015018258650827302278603034430963153367556382725837918409477845143923759820742445440604011907255257742807236719987584414897552167021928810825109396270265789975652753519677778079757982987106274535193347072921198096280358111905497106951247829604599107631290676359947504689399099224664041565540127982059448302945896113247888166363800564129720453790993893151246334968200986587152980535325587405524805701820002690197921988822798785670154700973554855838444575856394584360666314311279765866884589631983053026266831167533253558364654720750590324890919819549587558127715312800165289277864475273285578204195886683198648546272262098925800192114129388954089624021600028889410510643208125686309691253442436695568987919291678676475971228435158737111729900965916501686612222380540445186425125298594716371145999624194030258314584981636616181301514032564847692299382603799090305128447278188614558888089144647776159716110658796736788136955935744153124299746546999840741255735827928228882803726915507692663748821967930361572874837008344336637192688348212242530517474068584712117254548134531698275651466335864599402461863034933347942429499721622650452585835590560836581443020631399163496421759100482957004171593968486960646428514522656892536543929434721420271321928241233442678496656281884085882200205163263238157844487156652039429175017245880379791300751132167422779466293473874741834315429551999811203393128840895307871039346736055768828957391961680883565845905178546081308080832926340772403243367196262310189959322627764403577747580361485398712618353923895360175405227269472961811947409435579312520204876625196628119262904131411186375490773095135866424835960531429820311687798158268477665146368551907105681740254943521308710757096450488565438273158799757848859021436148116929747983069188250868369828593335072915753098236384366313379783972165606537058149847816712743152409773304735965707590842254893413937983332637755733586632381151166173445921082121293110109375740649500387638098699863383240829689088586779239785230689422451595007121786159210534192004238758950002243482210588335126087240539628990186317065515606231628803422518619647807192003778443190720785837805086605554288116932492710240955187957923920303329792383372985289156215537500219906044914336502785035156225689361709734139472043948079903333784971196592140111826470589860576766096606104660667790414340464554075411009907465470648190222070205666243703876767652259045657890542190522108052611162963574220410550859719877588575474177186103539876215192003452265630848155700450368625106696811172563840465138826348866922220942091702147094420141883733188738608033459084680204746285591213986624164824456900224170972504179947616122997972273951356684764606634552803281845052614826319062000216414854607399300114142739224635985097868399460773743645348996900692726721957494759773662831411831345851143122873948126495092302954525716390637783968811916529186403039778274407969136988952163851638385579149634466273211573484318891415675279995333992983061811922697483504146908603577123643054044931140017319198185207684127599140568703593894133372451607200614690142486420154475845114356807677024102147375184350662164992222280463698838167197189100780410627093699874851585431239425905812764999747699203424430156392908938121813064774149111125448181231392023766520044429027164683414737019514121328464996884505488906613952962279321581614264372911423408317692970808044551696163214325185707062695851046772432083731583951301575085707238244238845311664053975883138693214887679507562626295619828555247350259330444235881840090705078450862928649924209355921590498173100440618073177306137120024868877252742630448360295001823710495965261407066834370848428149488390892161594518424244372910692348393893982564827744197912578283318290951101016904985820099504259320375240301381645385588847538241203803020783753487860918504766071980040379234746540266031344869544109179041242999816758926658411895573886424731325310140329502001845617029063051635505306895443815933097784920991787905169241386423098088973773885586199764529814985573170794743651930081239829548940739177387710214258388458498889774991199182013262708558463702181619668855954472556862101817173541252748314451895309977208780347270567900746269826818685267859448248741090770323631724214211901249414002463807691550025429030902834717781826837598196455946838412541769792774987805587307878316230120318480524878628552121633975904544574226631881806969512683679728185853939325913553198452058537477380533546607189643833223735607399353699766486369152987276609692226394675129675522161786890680214831117361323314529704990586686986719326750089215993289062029462723837608662064877090214644463745536591618795561020853139292360004316486792807608075163317990941726865305355188292719274376884693348226417001414623609573222718255278687926987891431707551993047242801005646522792259327338337265276901097488329997665395648756628892945923743429439625835991742780011037377373542015392884811291961667044924479604709316672935559513615880620823180060989197875080290540124150725774319433405597970699427847857522138725227602771355110944735696296732586501321612919885080938868912261481725595072505526669571361013781237830125427287444458424365057166841025315819154064692921001521165685865517526511406450732377343960416096974494591791490039434079322821488397646063106900408432919232216125175696152004661709895751467577058391356581360926878837054768886252893024332464902294813481966715803167636850516531939445759407697392647201597997884675540148454088551137588497848513016431704174893623468072446605182691902246091064081550261067764509445094771758811061942584694325962618254663779214076602582118879531272974249465735943342022501235014591398391052935871911850686525047288494241712320738287692309569071062888676866657124719531749785481303120551242370494015410007697992309999883845405605689766081406241653313363817090509941062020375604577912359700254859285240614257356864340506028645277510981290325107984410685456562961344988786778820234543072219599429704060849104569054262260039011966210342084361578188961193424151243354197376130337166882372602252505565432972385616322178417609246711564999033884579815205187563910648722080053855515601909571477728810655388001513949532375229412208934521107832098900965151251534234178506692738535629944184568822471696138264803532171747095037045250489939108865251035740468885329905286385554352388110720617600769724047293690709715133477206674861403786583582234866418801656717565780015121471216875926430622383828050782357209159777981784159030866426445717481965046094933316128076903028181038286808521891625229765527549181865978583600434100727897698224348651989934587084963498588162875887242203007230709168391433025991545696116775560181905814152790742760870627426432808950906345119113268252498641650730108245012705178708680676886643020412445138124961069576421076826058390606356394896610837085572594072505674823206461625216599663605091197727832131210998098259373996714781029683649106974319276311121702324558074189198292352891909328002839386727844199112185262067920211873747950179965961154223122335433396160975680858397302571610599770226267202195963214647451484431817512603962754804169572403288997591983651891459948544946667521881107482470087661458588747771438179157051404958329423029267831225322830111586188497242154087657091195677397254107380520265150063554696565548909423536609449818761442381362670538511980236510232322702024729758981038297684392782041369101880346865363111554588509677341416263318579792430919536849047861102886502338730180838982092443515262737239726637186131231310704983971672183973717448669087112322893467305654499823767648196395095933903045818026727063194539554940267227492823052407563619296473274093954554310880798608898970630673201014197169053821925647530999104945158972156044462157788555019923466928558635334583755757475980123868500050018009177244061517978333901159772741152790117843499261821494725225140939694881091261875629007434046064487563380043214475148170324648310057723328948731492313961770220681367784053099037964199684587427893209507497955739209565128547696344946803762736894641551379801343825873984537373735045666842152375256425881007307755156074747329299773322353899782984982500037607839495733437829242463603510971921798932810994301846977613779217085293255942303753868000211623440686390741202194651380305180273321821540364044399257532108986662223245359362838980215876204901977039248161914895540874828478492721645466734475559102322759043195340229741107427952960330520151645412097421581145730337605782243203645292670203183529419759925072235645067544249425735790555250406661798104419259895264877343692640761527433220183139623925070313282051044290474824160949728079147119715015102935447812862037039144665461795554454281388595610030916560519848045907338736681737564404566991998757679087872045092475042780195276099511830046670809229242983486217455302350866765558247605520452904562219278706448205076028180625143560736280036469573213650361219877471305537587446387803722441320618495085073050948689074645116153333515045165851784128497425388081025475108764888957791490460629448000060674768060571113497470157892982415020528456511752408243760551209593495052741019185291061211038296893839810015594771932960349412791145405502055687495343168831921082139839404706662668561217003146761961506026915215083830748743231690585702678625722089427489172937438393905823471413061901605473353753540295216806428407979680548211333981805279614500690288172974131727961834672329281267161448002325835852006689590169159673856426329545610301492708197270754631967470224641065987657267033467445770064699950943097291560383019594605574404581904222381199847133774493634506595627515194694025707033435915869304772525470228736529734555149391017432297361207300937486284512598280039424867979840576097874448541600941972958152605741231049160082159123072120446104947792998577410150784223721018056220280064454836520649517867874367229142393956250347435150196865318954968651207875933662476231532435443478288354557800679561921904008840155388459202217695244992158046315996096329322639062462904930972989569363814794639063149975250890444091028837202049480894654703440387757333504081004258435772242900165411879295498964071297076928786246720900259004138176724191735085031900004862161187657485563561922733967179026034508177886588428575760222740589570213305418760947644026856646733805732916095496175125684460240033561508216086808958022916377234879595912873498740733491365351641851038071796316170197740216257011980612615973510716996978204047366535807708678275920688535351600156747659593558243104361735219605403272298520673223456254442856674384745483612034923317288990434596064639797505072120409925760949623801493404300920057217666929788956253960048955293005459579660216753362153708971911486347566689908749636853951267427994991795285014131274455123336891828199306832837047573596470001643591154593942251056722455532681989468877749371242736495342796497523335364957223990493561430984651163855725938790240501345635495765556889234348903969686341275569039096806264802639770056629616283578124413669800906107917121454137205360018773303004514708050236097095791062348078691159373728294891816895185079416344363980656883746521490904064418543703435611151880330365926998585588546422420041343696075194852252163194108427329284337011016264423015911340366770689041845203570630099779929779360515953163594384319034465122078383406181203340587056549659166386137592171959643580450480051459319173217305804046469203503476055808937806921296602191440359775198173969356636744366984738379997671802433593272759592601135108333316550427415223877706258805743820406239803390534629365607648863763780686225196189702563499332355522004368050066557968835493364719883384298489169046556722361340718320635658088764280019608337352054663663374546694984153516658763698096599741749303421193973450018623098483189784293789693860427449520447845677095121201904865115989041509594192694005102125750600148905107382460439641977202906440432604882144956040695643740751207428106487804072325191908485803667666778617683694633885415250456790222839273238049759774908334934515415849993818118261730122461985047363113176290131768271695665024463282074213850771628460491555528209968307788651367720333620473525006968174938162723640080837084467358117162181110630215040315040667999055887305933216724862656764988172231526415664975462542438339959749650336997044904911625468392638301061538219505443322470658426363723825582354209713177407416265954285502811562673318413717483821076846964013306933931353623934647090496962827425401644086359294100447020142884084678289771906722155588583014072703339817269046511704111959576361002704679868759175182931766400391619092742559135753767281638428473514136261611343220852552980594268135156740151551210759161673314736871554069919978740463882553964906795836644585580837881071055071002716254170637197169673545598782340185689300661320845946213246303869221825240436272087371213537623160138680847926993375494524471043573355616227946931448838464580288492172120221982314130515454314472959170899294413893642388550215520833359940792882705766291536013457325336106863972044362202802611149192482959664434837036889738427178728241237268396764108183198200052732979454249955490665026722627201111472110001680811943078470416051027228423431744174359297987544405209205542840648613436980583637516892637795194416583582371072741576100620999399915181704288750180439211466777160130189003114520526267202888050053323993479598039138842170495800679709220826266501050501539769496574721724748514387249391809799448706664159171280889163428578278576129572911150440860535079642750644440043855225122360498751898556125400851189664865473790710870021065315180486700727678781646984632383953391440234213470857095681426479445253795856669460801888807438534806810641111270423586972859488280009083632650719244147459635943874019638996356513508164780660312310332135823508587429454992103259303161420454248985652301605573589610098572750077044336944378130929059118250353448290752611834834466774428936695784918792709338053842915325604909019871546546316768781136389065314967613818863291001855120617523193557872470066086672825227805452303418643370593942948027535810343873094397113340358659779873284581696789255361403913724806926362177160435669982757961447858307438697322091546050599907622323298216505149168083073680330616360127078763627047468622135288737746607181494051256817175742271626353861140363532454135289284619134897896131235940880480867934293314298165658411168346566948317183295600611051238819905950959768080245606888638988736102727188872132144663431112873137517856780141614200412606271070156953902275481018867726270677503571565131280652226271891624750303469149971724429170406747633487265816247268587896696960796063256898632465525032123233375484367815050292053545473922705599806550489974725529531943258538555358080059714101084472448974478000274529315445691694611640890033141566834649988493952755371421857028130069411296850738687449762006400135483183072186117121615118783690141697528378307700189650311194937894469063507988383242941741839294728128900014963327202878214878754924868574841440262137397229251495563036371000866899594466385594927632053574268063123316461026803210031717921317409657067239045127162630150125951063308622589859185716830402156971995139207043067505761284747797995926848977726587027234269255096411977820236985110979857750667129945547656022270729239441933626314996058630183112039812401973107179545145752233983956023622322296571867360829201542091706276768045072271545023970576154402029492733787898621459121077911712732968343812874012265987821062254548023819367615562148413816057946572482047709174654825032936147105729704331243482660767574690716932589284212813969382440771868379503883381059577996632820117968924950471906939881570067718049013398689417583501372321438769589625721376275910439032469332625320889323054026084520459318454796457606231076393244623439400302752299525222524749005530623089140311627413849261423297439163022351807589641832370998767160235850863558715507353042994125376377628983274148927980794407387384120770657682916664694195162611170693086238752619185312824078147197721624600907781288640679002587743062880393486983869577611838134716048923893336725541764755338673836907719106957547613495939813756656156258379818104011817716566300710307617822659131197589650716875507704597068452897085027142660159823991026114449526169022466805532962837404561989317155974242399564116723563793504024462443041541166385944378035535050714656096086386689570406866188117349511658049799195555318216661814493186104897376490891445031275661682975385649115348323519013298005322006511408387577267929722767367068504769893227194298533561260244927384085758965238963970225493951217879734939451573551939328030155810677820620292285618148514788603078800271283641592825717874464896671838004123731682689634264931663198820891453912706093241358430140940692825162695864066278126476748229858274371475173348411968799070403521282183153666126922137816650272085147399814330868743379547023657199419996652043813997224111869558227007979087782519250551337454875216102293104040899658837928946742646067097390975504488238887223191119308897743463851560163128429639754154580923297953948758832286570359076904596078487116351762733830304156452414743753533317046471909708529026717273055053892999148081182475872761688288401407526108199134830144727173881689604776476884839191691449293378281124846152937366971714369158860293502338009508224925277066085093255979285302762515692628666846938099352528308351875370258393980339225613623921506398913054787640097892606513646910251375865464619422214986523358157097161379610337983182861240879614427292598328188998546793754209497559994932342111665218312134000206177169350744751716677377421464644280819477134483211126759227743387304816822176947014294357304840091743153131128449223105621255623632447497773200198988809686228487629077734015069587212939463470328718613338396599218784480221122315266580369569466178281813022290488655436807791124916232565597701462663110823100489603766731953303438682433886351803970988773203159321984025117125660976780071123853105495536247052106192288665779478002393112857164507211033662678378332624055972959178673441749528981797876071196347231139532707269361392216125818821248595474570447701473542012744690595565345760721417996080329481585534207733946924317735270768512056457641556625186184544385344813366582320197907714343495371155812384449358402944717261273110321975681006276961261902625422538556357052181716805075709520493944241168657077170555524123395448617801399548987251410405559295626143173867051840612578580614671374429346367766313307448366809995021605402510082831902181695766369380432644555556267128985106138749114383879109900168727024004255374486834941702737369597155726588075841492088242571271849445178425237829184054099738184182346935515877904007278690285689539975167232785155173953152137691403681130640210224937820865372098500534579064940272227993102945420675674031135115281675978267674212209070316179941953928534480557034922337988530917063364269806450546122092994509052758565410583298497023394618203230528353236861087066986896208115971817619557752762446941125866849681993548702813112987172905397356582439447438738977936026530990699422130984842311123082830446608430444057281320576296147937413344412249703199125590401501260567263520332066738346841161850759299910970431084127134814185569049410325437616153518176196909424372824391501939390584401250170605840688246647472976102324614287915075221319160499355748928862277906432664267810382800047177639589397962285049655430412467531082367622186813759386307834458609803586963588999326072213006869371003776873227465232206806736686732206718825260038418623675791426978639279662195554562182088265011515637116365536637691979598347855504971483016063811374466103870318182871943618458553500963031265204990980215052835366732352524602078528362803497503442733726471494660797195423672307324815833675609765454401642772320884604412930906014323805690082622819129887746406675450686237392499883330643675562432654032651742815374261911077840659986925240135407496578504147676518925061498398051614622496857353423040808725394315973247016141572472212350107651619006585870291062950572523603705065823128946528573484608453727557732365156109363052140625932342716951082326957893350314449296442815883900841152897420652277448715677578079367861975046674036553554169149335340293074692014228260917994293070066113338528493142870827139702246876501628136302236892022454499128553502847722346945710242768990282224127059132316360161274728037217090826907790297989040420753373759620660770093075307339531828104844247642977858851893077077634713379105060898689789639477935849551040334856632561504477582901403450386804608764416855698180450633759521097190841795414372253452221752332002554352264980650107396551548885466281642393162846555588370332783053143026380502152891628966273302898021352977946912433602805229211114641498463737418579057930596755829932679287618852106269028037647904431501999004862816710115236898753835185122932167302959066459875599972303027672135634277835725775269167316580656266825352108367481481191295626462763765228981093171997886503082046836623124405085184744481342725332627093391253350331725853664934236713717957664516836857680504763455208401810834679885004456843269595236290217991256567353533479858159849123531081666701663334613280985029835854819801330462978896055784230477973939751110045198513081377813331644636467656679749952781336219728665067565426939288402635177769157702619406833898017382973847666547427184154631886010462355959812496766615426748636038382555144427771140175794502165991185946211865515739194110186940060803207461196208376911517447757741711939466362449658603723079609728963124709502550650853410946334489455613761206914816639661109487647859731358606323224813219837185636501040686537956313794744902278062175289182029488625238339405933180181005439259696751344651833957704323453957064669830116791971655015638309804106011447078364638272530883900154432700942258432786248296998631152232453901667278801415284713813801658801634311826772029545067486020908353538573847214801620975462196721113790604043038568880687238332210495189102344682556906766255130176956334541057376629455251736819361479263449133651887928869797143644383434197595177798970411287907943560045401745295567201665850638779208291956601690160774592231644303412217402331044796836687250888928289152913143508706673207456436755759376962871383348327645035952784738850483985854117707656063113906184054026747104002364125260800158670167429472269062452273419684957853609485289688081596882270395714676716720400210308239132050532818131741365804368674909464195055987956468704302145404725438392497849025473586209649066450964980791294648722106041042791145702702161052158021123294947702262942586319945262570635815369202917693105793896715561473026428888833337449398369748775723779835680786285578508814997554194173339649268242128462307935054628891963507293382975357951574419914003131183884684744016883133064417341085195762816494654901951605160835407462419334170620417986833300508824257219438406139522268383066240886261153724641093234914117767345001528673002570592912510261335204319393767328293024473537008624984276316888125554957247861687963721784784673791412104064503748676006418815898283412585295135908148050464684737203390744325309726905512590001019257585915524678638407653507192006900283690748854824628407166191675702067952761724966853740879134417753612167911837058176744373280565203216490555380253112958721100765837190373417035160994344430924852873974196044562551496964331176488127385247122595195136686132099669060350684293364493035992755331414765213673857232466977301580431659014719890976561065944597182872156612891298458150771736188753990701916405810340036565254654120613521159969209820649119554549362302327585273225108641463964854455450845203026691061675674102516218393268547961366476378466229680833236918335341696074827487650319037004773361512833615629453142032970427661274424916679254137433554375149919185656176369742913692487233656183908694606223619315506389677426833626603649240318174343233797825330193023394057960831718870983831816604181272873467169106841169282900118207921480397961734734661983558061656401533646143832903606867661855247772111068872559201593552389464820775835756667284300041600792139545868186451408274900515973452259499011066380749193820266711031861665919944053128667626436877390430524759285827607125096223482687670975526676921337897966056731121838568177483550378840008342954306987694699259287142277624482395196501695264402797237054490506861625270664606098684663486841685602481265746997569260851096229862676970542101592085767239314790206239964491572792024278693482947205250197696095717298435879969782028562659634911355280245427060550543116022589652907972557427309551254394269772083946207100925516118603158248625066256094126842048096451316106804115313152369217571939249135309012553409739016371895890221232760756686895124717462912627816789492310704724985300364012550788105399671478581477436699701114199121282002819026392526794432708915839356908726726739531228127094223258450171946192720011623830230026334511384228921890009600182484202289253247627449163380189151747115250994275386528934348750598988990152429124507122130234727786719212189183455440318676657039338034636891101893666487932814046766811280065440497557370867405807184285408998480022366423775053611146187683169051695090371042599927614633661049439810423084234689317914596119114742429145612475025702007751930081305493700450781153542465853145654624551824254039292966788669784248025863300732023970257368949800886551843702496293310622027097833240266304261852759090241735315365198127656832560268553580861856596346778965506628803041438624825047658262052780884740383647310925451185924760127842223955719341638765931544648682041341532941884601202832787046290501833227177374728370547940177210755380761276624379080025850779282481361586540287443623879342271940098488310158279775995367234617414468477542419930363639992867461395310111312829800239647019087705199208699639758946357018100175055903282394446306512943649958589440185050100775657046103416049955964650127293168988650874201465376096773892106180174182373539097021707938394504362323155274142496088566313726498135566527495525337441253447706009609882681721660473719772664620101121040245600867110255615875153465787116943184562515149575829232159747648519106289758182022431648999306345408910422543604331145854945974014984471638843033005138196530519925985291503845344414485591356626037777951331420010688566380422313445592657255752264085043444654079990664797652376244126234115584103457254008365898734022154113294966826357509197965908107697799880152306517306904028830372689364840872756950125936757387488796019886959260996938032569850590127888103311479082327525161950124960226657737256685300457322586895758899319994438388174428554621052302401702255534921690978260278534286373128526792611522484227791809763031769436147073830442057919255199920248825109158347469475018466724177618752355762461486691714734898841859444340355970860907799312268796254564800743563743782563062842100132648999574929263454448476878721421155378352423985170933116698532844488474148414571140799671606690628594931880989525397988842381850800680498687372647510520862446817571695551536446501627320282883969077990004733282120248736431484600913878961620027718166717394999800300838160433880488700000916976586883385769714246489659607690376652204149697218528844721974789756534203536311937444549881231140955100339014882927825845225826158116171345358145449340116018914736005080509310831512420618764266533603617281839210934279702973429363632077714639712124787159222861402954337020640713742953074502235358545444280637326946358605700015513382219389770628917819348390257423194846815388327519251473050737745640188110511129332287725436288022702334686066530069601412062697258932986262603452737125130476746944359227348889754553833751376402889641958730673453930905322677857290167380084485155341558489556190321538018976599609958886986581828672635295656617575471489141026929707827524036567561395139996063241452382015097691549251846360994867269130591125255872180897991542194726371026581592737680880636141553244827332949414326593085524226809730666479048588284169144533615869333878953970903296408445694630910297966170419650607899386073162548771855774966514121917630281662210620928576767187172116509490715291633403137650499289088711176737889841125542521314240491829246591331192508715396542927891384316283948905793311614695029913774058016510957666108674923724651772822746760972206850176072338798262191518325308008226423782803074595260447550885750248326356131513158565419480398285694529816075664771204157975169993255139203194844158317903903643510021048424607695418967610358219586243808249524516140765472011465078080557440536162808787264009012609551813224261822298478534854981584781189346469906754516657276092472927225458770782943279259115690507208005003976845434626025050495381705943837455089970912417146934579710076038662525998416512733642863110597909080290027187816958006748701250202388807423360989524359916043589053414857596204589779243499028096284410271633107529471436354668433078057936004592272293818629375324730838357182315701352845006958467867007701062278362422280290748971309005545119400711423009924115899316591841842627436703067497134854211555997262354649399158303980433483990813832817844047153219077307908462941093277478691137891971243226900148032537916017357640568933141274945453468873926579380387115926900140521276835987964154177876766612310348643582114020826085809833088069998568937950129685593734518912759610692428211813973373262576121090528878891625729654295151481213702315626398250168504000554165644559287315226537367050942095382609781081323435769129066423142101649768002595625007740372928746336028522515207461502975052098835799248181029525996014364891590959469778626034777513820818882585355017817472525365888698343748277297104166688149183974067129538786799281640550222880918611796728708534732531603393281117631180062331336638408551733576880635442654326093449208828687107169682455032905149312404519083579098637595911590588721996370526662178724296009905985959937185712979054402107325923110548296905964940601501823494788749705032117121548876449314119318759487051661764625110544768308169666531722438141845593600560635772843155522158114150824385537230725118917397167554916984818044073087831864669118942734628531435536042847462784180237685705769184050245633296161473121587392948032055634583895401308798347190427274342430660511191812220487189306964319953628389620682054294361424465315862882967737163235665027260297088916581005821898180814843742472854104729919364534528995793146996021879501204744742711126955173515732957747950901447261423495101709919525459073652133034717568192790047106099338516867695409408171825508436404601313325730323468639931078677875724614065865967876614310720641915843850661111941176274629989796320589821886387758853133299433022752491444561376379488386080640888859373576782992434620466851345982106528021687979254469827408954976227602082748671698301227320105746916473648835210657607457215305520067123990735983294687684281234262460202738881544150724353152826204317819882967229284877572206162011549624423386105347540460860229125078839906827540065430987989324203356501294948613200423509997754768600444639839079175454499461981438776973443774485847820800697439892651945153322469314331682124559941825905492806335024750859049911116268424331523602094724910096316205489237333209018250294107162168869496069747874409522496940492270696214398487484622380546562213662789141968933781184496719129053446606458566268347514849740089043296269229873637334221779712830230113535872705185676728492894965744989772868784288463545749961758579127826466392981240154127901822323019939883491326347429025997081293309623550850023344143617187562714422072343157876286938214982479918847898265658630341253014597840842072799313777831722205751059853684689944420768302968324171110834345523758989805804984959102328304926088703842095575739103621868369576287724399533991941518704216793089974263488631031631113606789524106888756843455894354044089924899462757778538441489947006281533425528951102303166718075140503391202269159085951774118087928474324723773868517879291411803727682438359011912475464391114965337405213248123123518342788542299190776652765423602151543015563046890470936005150507599210273528301376318964812930055324910148549512359547464299638206655885295166553004351219893135983577851781055250478153912954040361705637650858460864557406127299517195344593900365934858837258600854630531858915107425529554920355354712718696488823627533603675050632351973148503177536000861293001574879312257263563844463176321350440180587288800239541080685585814503938413615971369067816497921290257009433334320698514640140924405581628980172340880242000433318193084155575575437444011377668478638431947596792677428918510971528365890995593165655333847774776603703975153783544608280972399415879319685605906001122544811966476684355990998636880040537658551760035035843343684080719685298445395130325379290510958138698679564581054386809542776212878003216211609943084083549381790504301924852661921122942543816295924364592108704837971755637098343991149008361972174845551659055222557064654405317543899849962598688896316364312856046130254402964233816441470666549214269159636225893859369094816311178647462663711438963330927937674341070433728828021492370152232911528345754744500512875281180889028864615726541697387116118758874924054028099155267903344018741080314133546928897398499155845956386511761197752702405324575968981424567502768241464343723521362160274476584226804058832601348901290228903150347023998554587752025926744300021146925815607886758609024274703993698955490129807884773393032423520960337205461888195699152726577039353045421134592823733777578743979473164285049297023754571009689604200383315703928066435586888641507796053004564071845656785706419356319066362375436324949606653921982889724971423152454710624513238089107877971404827707325880818769723468509951042212162186074288717304784583869475470152968939929067654442172394375930329496218589123006260800035484486459529844483070997178206883864951441751497134469926320816421015636153240982437641322928839215007543198264908474456853346414505192685173582504324873297044494036062307917965685989983922286242615786333295047913029150880023940309033506610342002097674364587171839159523547734994643113672368471904419746630176541135286090527677359174783020409945254610130188532535971432603567931860677705915468073844668840821480483724163954350015941046732776164099286831534896807634505601728786911534502941201764788442005483922664953937231504189977486024703815570322998455087541422654541374538737526857156110320602147839491614787339474117129267361561466179371670769956863026386772700952765406906415155876878120055891719923956956680991349922745713477766076714463385324678934539512579935604852903765625723950252682253986483230324953155161394425605478448096497983050677213619002273440721211209958777086332477858495823216841223435515973918497205820908562367502390539820779028236970218019113716670370240454029212225471517658665403461463853404173295332150657841341332686735826808546871702348831079515749145875728692578980392169594523448772385232128389329675802772857292785594483008067346898524038815430463764243193822156132543559241301404446360104636227311614751392633525018051034961813301099299590325933184464308193693838609400823057613899292870084672861161945570918047726717368108943856216344426917306619328642165588344622504839275255552175329242378140641489765295777234505745766465679201641352541599970436202014048808083314268103566713154312530919467031829039028175263953072109309462544874979542605644099337812400901890079644815323603159914675631804452865268931635742902334743876294707424075107907036513065133675238110693832120016053601728193490924079042991426423777455079442601741124803686435927051701557504637098187638661781607888752129412086995910998043518175931446363339812504543452625038366781508941382416361539138930663747223410278977332228684119974511819650637038044579325144039232809153291447428790793167984177121011049619607494572476792283772783318547167857244394041009784031585455497201970119248292290895005598109501298623319506064954074625142715968117063908562657770684543507513060362011612378769771629079947002528248782480903673935377906575384931370191972391342153927722068038086149581483428830469588183089002998391392357640422205793858973869876499044263777821943453933628534114475916843365415161669527985896979444429270106439352831429472012026319021583709685404398376424802803863955800081175809805814708849906497516408529018055331749878913893844235166385478365216726710300968382201243794102757178203664572080461301682130587873334939165053543698291677186025750743270045585317274748685463802523787916877794278869603074389864441497089755670656797953525484570593660426738411294892518076641507528561350342251413763003200442496095806797023099662019359242451703362485171613780817068066229897884679982829256359850256537129341897767788640101622537146610622208537961821809754885763810513207497519209256144592288711660942156897061457588085687342799091053447162646040894802901042037346133145510217577269089789108507159832179366173618448488505405828305586438295067568097233489423662699081317527468727126416688847312430174831528739377137805271380870524702798056557766602013512332986752152836109881094805436752421934406656814204373461679897773509181343157239248165334856174308539106708457711793322731340440455373946208611780829191681887130199629840795540332549180769312189092224699519637747030127544220631157852961102695134907229582816267550690422788260579118115461676819763042324550640118912324709984697031041056477085578566528024000163648245703213650393008698750357473426100274442117118851004793884052015228102483497624003253470931128576046368592832026403152584999835695503644974651546434728415885056279470362812810229250138479858707257059113073152162294150189159083646204638617489556095135964119235568442400750662551872038167184932075759604723895020646583624645701197546795129039056909109873483299417258826111262046623322564950501703785411834130302139570708955228246699801663390253948775235734046420304703427152179220152602830711838263844430212520554678326987240740496054245086563541575308613189238617334168660661846903327739446188582001672456695486901126908248070789667297645203057070681027696856693454850981401478904880845925954751347441862889933559914673916825520272330663683036614929387516371297947000187804841199057668828828713020647321332493966654388897539904431460851476789797089411035272005404694902160481230170462701495255637675269833453185271194624785519432832042448302707799868622924214382507431144569642048676139735546858167082227928016054011608074909177979031144543954659558029208143011600801498410954229695545754573777257026609028778518914592281702982853914064607425281370434477185939267784795469532303165954322919205111765112944016745748662830723539940171919387579664609278293527330083369254341878506981096225979302843465321029904654630352445072216360094673432154945131027456719584877657852306637270780917817756427758347927844039164621447915266435953447754448627087965422915002334602624879439883068526268551507122374771618676014817028264056433080034685139340988802459974945427269642096147977329261908138676706302965576433502519337773597293366071673004573325695478106207026798482548885341326281574724109220545472809664915478555693133562552531910616649321592446097138444344531020694811487921232895098451361580711321320258545380303927577338805186003206438353765707355472638559668635076916544643621304667052827323629075819477095680495916786501522596162781898724849668165624883020799459827318200614412174482633143057301975487162617485231522761862486461304225587843777757042272312438991506009453298081862065630247207459268591982095105991473635510138364271711723506404526630319163465605552317936540715439453293379503507751357310873074802114205892433538901144059180178086389595992284196659286239909199226150504472608236559412391852729603374229672768645238743688161864187055357768253815854129267411437329599866509447438325727689914700814066774912051272830359651532261166976279458210787689764633166598804557617849409998539023861866526366531177724690330491977279264601634309615196631719844297810044619827299476687525134666509116371966091073437884046319564697955304432720013502523858496837617015815586505184443263811786483129227834704303726933605846002292314623545350835387481610562333672429684901558639539189839665125213290455910761880335252623288400062093598136440751918085615818724722211927028121114070271479714008828229673557315911560629896237082740715072083355174629857392033270069934935802596441864444293868775339407678170043058578550112651804184658878359968632212070132241928460551611358771676642581438868534456511900433241264133162456432339018519375705921024588565965721667838925259165828405896808979720116327073020673501903020257898939466389009892662351654530191694714173439199592713200310751379638920778051792635694112286602097286200257716962473970632796004304737334872261518710717406855033995399024301059147096041052267616627511836869040228616930729757448208748741213874438920919558600224220489467565451474058378545770060094508601258751705469486166631917898022450071312575367703106467109814097551789089433834615579942356195864556348358334719081062947915680746963631667980208472738564207909824646400428164385391709018096793702406438794617738107813737803536080188902575728026463127862630289823627940004567298143628881050479260898524770693503361424898197312514762578609614526337940783949810111827370222658817994018618423708562285504546801166468898456710101317568303876280164762455967021399066758522572270685986668294093265349897032265764529588598616166114033752210034488745011087790301110305658613801786751982291555265070763994905294623528604378669651673925496457069381765424167842614227821641221591494195020724332738262819779794039971278465971679121270627700538866954086011624188081507356581677658584380075992616462744462764249767770633490860752720341266666418021473053174285983288386024078041096803844229492012104125717102756256851135838750716685986924382341127163658613739606394859907466731722569817214012266296618771489052836450880305243554273409341525341503095741036579549551418244187873922287709125694609500748489152808558626366439624520627532769926837233043737707729435158772144876158468834240277144793998725755793119316733753205467214315020221352160393564676485048624167315695735322864195757668759209610482654328706789633313315258820289159874040741682922646383991788279280060226942853456427870277046307337880467912579607355185961238240550226837827992096987475836305901402935379292199397652349166775259521992305712071827307407996508821664495685265087126875183557006242714269077213982611347209662577335108698657008958243177242878220831639215975334006195312259121436335440021186805461656903973289037552084851312657950151788873065605809636500975496392514884198525544829293464370150860075714771502845221556699571361863557130677428771145833257426351108523242880886364704609561191454314847848414731609900142833683408453501119785229560038294137278125753577000833005994324575901085614183474355786438029881786961785064562311733740939988356327464396731214953328369081809341196100937098433534340660476049394943920734989899164666338795157928503126981789770165780476941987307814642633014506910059564704034273082118540413375386028609992423801203909896507207793664487520159907114324746804369045385676768355107364275565107012773762548438997365469955477923235779434643014621658656137141508188253569482888012415196516709830575873304540366828119742663536434778381288203308830201791935989097407347197177515654725031592670698765053256714287990330304725963036557109126766966940844371617700999813290216716494698176934890953795188122465274396180933995738399814188615433301493712024525975603409799010768855311711828820492792013245136224529612005952292718750883286895976981538743640704674921203760651889410178307711826536493088592855410857504621826375833792093346739992186503690914169503353123063216519023056855565944477326830886207521618832274057352007272585854765773723008183775342271062393716358191599132664556748971899313511871013583004516302325050938768543580039727641806671769846414235221792875759757539096910539430142291789137609934910229413970036342176680967056948376339491263579259062515911131789669958382100376531855083795683942677792173164430169285637051920817178079265313933967810766046645232760102686736117287109272737029581483456775435181645622311413474525145662143385917852158813591060221237154956907652530462620219709656879325588773558440276489115048327068159211082899096940844911978771838641877150494140911063840122879614989789082332117142498597728029649868808535989311896534892703600017792016782503350810630297987522972411394896601275346694868295298457222474307861572025825608551614924720361876592033195522418244056478793085281715953777338937149894397229858070260915105216253036579006835527807235737206667202710130094265622234124838999657739127403180929180802128866358212008887770537908984631730997901870284995654857593141028414429775005908958318242483952823447131871969212678921307929552880840185656964309680813411441057483026957522544089251119997082200838931971152034903413256482870209670443464652307538123568617945198191710227916214405377452410982228056005647574084553287746012684864583253275357501983674581924270160553082866223352689275949483329019345598515592800409268275490495879869843938309817824181324859674870004283246658664642480663507721711954670027713268728684733516340905827719042800335828144313681037394265431198852769949521513461564130262622977940157486549516367003472053158441123768946183468391129406465091675579512594949315396813704583578103667575120287659967159672013593750684821146809734420383456356085774350293001132391837728685809552316011549657821214061556827681258795093133544627620651367894384727834256729130765610353537002793476767945560920195523375800265686001024926245148543680256644909252743099799779593143070060367357629151581496623900599811561712722105894904590213875610813047875781711052343128741720665440825548818553541554828628578216728622070441423149765407880614547095323731666604661136553806411324287232479992547008606495838507180662248390799294617262624034959412342753087887491733953422754202176474379709227730633344306838081349778374501165617122777202972171030569295973574261283947946258424532362220663736305799584122951812344075640896574380780726307905342286603425228707627854502312404809045676194531610789634473481769885147752369614307728186904585570775067954207901487921047725358853442368575506401052611796542738211986432508751149355672250933791637966919605167640465485212272754205636412064823287295390544138340177593154958599609725022064808085005327601214311158524155893505037984556938770821021362942042597102046250371202820616755876159817063624807806853749234622229403945227494991020004449190133609682526815112114857800217577339871477468794528243351963330899358965977291503351575531739833791048385645436641127421574192335888970487802609334844884034810450199439498619570234221128366426230054460707804086640250809792915267637191204100605750252482222769242503057461191418684870920707100953818043081301321334615791111230916556218883483575282704103039855245116999264179823372475478241083135891202952575163642614094802016828261578955605568954737700390441977875326941469597975804664872739746987508311028254141182457412514517439444650300573514458565726807209055021536685521602374939806713093346244961470843993694590178350269470258939883522174297597813940993877854704829507816007528504471517247651928176479749737953030421730773079126537351942842041888285521413721088211126958058549301414215776186550749896934816807126625840760375290647774679045375772020111708809715194531439688112085676294107353612589371167409239301530927740101712823229971101902510660340428341283009206024802942417947450217822896167370759660596128929645980863290172388600353838357354369614712656707511591698760931771943399237306542602006145205472546175310557309750894024590600173098332299573572422156332867440568945382147000916897248699669046026751304242695000623203714714616876462992960575815371964261901552288566255366326127990714157002910818641876876167651449551562728958954275404468030820498761234895161014123354070227864680449576299716689729454388935948663328806177796797852625757103086596464308696338431956653828685841552526234031588547183238088111305535466194503546567294603265804803656604283973653422402008097351188051059407352257989811637016232718246092457782778657390998477740694279087597716231462120399347408602998234490885996530222099302697413866082739882846090625396474891008556317437424214802260211908742955213202585758278808108440568719576358249859366962123843405919126294988504825638409396540666712251305947061887011560172737180157124597302215254611553564472623693797016217744322182934319619748981220791937489276881999146205245918405088001433313579550627946197026052918292174222723165126655026390743231340098014235365853939069760657719334634432901592236615641411983575850861011646587778354746832081938649034566933487806422678083604871828539528446463365239108545826904510611613587385841008453604460367848888751721525326857326769768619179187258122045478901877566991243664200533164419628035853460911876779656831615344834598069740103569958425908392679076421558791784212610768385364318973280770830533780161736080462837103123435935527939741438936727285960332197035293931043582351003998393111274186242679153891631242604281653036352757814348546470365547940747678078163227788592050344392118802621921494857002096894870733962530131903835782929213913973804109401385559328033647612080669431278429482711419198616768974494154813179698404899236388923172020077275666634724832291811804218477566104592532070771118740623218513793326486583142534843960355669313608993907451561575643653796227845235876244448946934710717736152914509641711880977437233851640311521085032292278748599446220655596309686563616552910652540779646411582169241151075486662424316313829481258121843360674198274933882130483815781974723153540293384299277304385897313359673305015509711071346492583144388951700850675921457162166401439855479241343798388675493106961331808614687240215374969061177785417194519609223877767736053383674488235561499514253987488125134587576968310387083197459200661403447309945788362669746317673312371347269496892505535455188829482391959439583861463621866243905814081218087076120766522205781272107109588671495682295407904255308503045303287968921132291902824098444295225437474579797248699182761502863116850123528731322924745816635920268368311857947767481246706661497767535979984996880823664709276994572012622322021395919038757278928747423880100487520071493711504427093047654335775402410070622014541309124930506402507233158334164885512055051560345095305892809970841071839746537448403561856596372873241282148295845994390267385249130601269954587113211400943545087128837753966659221982966392624983130489212947603982722116203327054142192156551914607357849698036539677969256877979290074991432506770735127629692886603182564392779212417462858951353945298784569895656565974545461405913007578589873210057685097295342867137754059234130774317902035794063878538297881169150864499763967329096572578585228410756240286740000315809313748756813489389763538323453904755333354392054186177031448762371048520780220768131154280795085419604904649462104898559215339734035408095021227393364453041651157212903372895936894311980250366122035304952511724042641449360031265184998695606652825412829256888371315848821984237405264686152930947064894769288013655428182895416343282986220530490265403009203368870500137874887026148995935930292823065348513391432626085682100544037109214105874677380870199943033838486346110180371719019797246719118670585640838395940671958562247558445267405391166107872127966775756621443840927262250767834087723558016881569186282977535702518224384271362241422527154293865745957630713318541271902148424864704760249409555390035085899848790539942817239956401777127790211497723452340926968893260741018903569681488070418577980480821936565793079046890075234492126580382576311500972185058078729941938776708471179160168069227610405534085857999732301346446650442716900565187558093799886231569581841725524033727065281963597126187310410261025556101446720134574784180307316050018704859419710852333861439910876062897198470314784370875134079623771863951415718542612383732812987746459835991931520900054348305151942167959138728430314422544717950382292759705387473654159564337333665300431873647248797506602242480486278070228315977165677795150624254118056208960741120072688667189830482431022565436770076143434973609697148052513098350112160899947203563654029870891225989246626659424721131083652667545820403411679658194650517916765679886729860146013734790713956041767026843625665249048446575877508518037935667885490895151097578107470364338391900638112590933259990791990940378149005782503618982851087064519562605863398011458532186286269289741101081469588302741458779470772558663348372432209090635425637288429885422484840500944301063506806975120620329640746101775628645300022057887678679756783382927690154546401644962679150331683182183870146221876299088219557553865959967025867464200725814523074016140554428011115736908832792928350320643934116469874596678644182622242941275507933683473529365442535068465293824800207196264386227804451095625262346767008506438918066513605766147745033354228540679211756936674377831652434665149337563064734631040727620743074745430802900433419748816524618178084501228949536043923463262727946970415790289530427579469750756523929486343791953069920689557746503328384541352106235751584075676041504752895171526881804496153615023548571201777119942559003427915302878615469010292654255050272090642025532298851687484279827606212663490487809305848760367970437326962892762467625312328210161821754352688322653555151138241908875149949383952280443544210140756499261091842246142575302560670062450756420566056253370027846338849365009597078218327942284428815302091104176958072176241702311721897654945888417011909321414741183210761559937726324626405094357146581153989345025869426910376789196254056905455730082776458404758328075165937236324523642863269775854160625576887288451231301417867641732387841785563812725117304572934782970953541422117267171637086275065101442347812403990671578030150012124301521521298997155384394418709367155856325333150286989073821608689727799800817663855552855407194488973611232550995096182057319646110368776060356314432028402476553359747436483717134933644632222881592822315156762083476563099266119519504712065909208748593420282373346289954588678117975634434125700252873366336799985897976933415374421560618587966910559454031176571326862147614546022353498097248520231035687965059566392554310942573870910152904384471292663395578700021401473347600589692571880003313972657379940555879820769473852698491438811661294263704427076076154397080408751518206273811823891010633822481120465933260236171569710967580648014056944442945399627702215081834866650118572993860448001240806134901278770676270836070877916671692530534599124672101049770307894846438163730631735612916542259777210912852055479945210532582311672728565996986085871926498758549028610334952531164405508832754308883184174210781825930332156621824317977298920611827664234285896455447620789314529808497709929368823768122421627052326016841775473181693159760945016068095640807319187843662288486822595756289241028624809553122411381825467760780671079239760983839481229518359267188198335152294651637446878452321343940115803632873225238019287993479254757305237597584627722112691164120178649669606161301930863682347869497416758422903749917203155645717142828754573113052147997922794105479167470265810329585777208331302833917879188085884105395095407211276900404363691958802984712071042753879019858787534211161948103240529437691800257439245401759026596150067165166320996778067915921179065573810209587662889910472451679333594508137707715981489671900272063305204750271721243358022057929719159569363653370585804088607562621351588300775559159279912539668062144374188192760497623565496520793984263730663844333708929554291202649746795512295910365829146974708484036727890169282454393386318339340513114419184598206268022098765644854357875406800655222551336034095235718062875597210340943813786160681974887005081022687714030323637258819976504653449947841336847342913727399884016562540416068268157363488993555614102784775762695950014946889168064406338879354715694048057403726654433886560152513783879602457564872081750537110090136807487534379230015464829006748992084004393680952274419309190861689217936357530011912447697393191359651433046675548344004069136562140204879895826810566869306852354999385260225047137928597320211306656761923280658518698464881088233473528444726611427854486548714557880675752344437242690945424606618110808905026044393131653612384237982324558620389993949918354178591985592859732978293840253084377610236212181795875971002678659632599600446267401759243972922229135541810434729466787677326760508704089265019231996774972541609226648566358820331919597568020040024103064299434426263544495344927456659794192240780191826377108987284354927906067021651203680583330622757152488798785977576762530057617548658004176594589870888837913462869714881946905596411863519511067047048684155182002489746639119010191783682817545526508363343221995986459211887599573079847618785949407687143056348662903252940938692557502582838675960018991922740380861594977120700057104129824466539318751357932523533605295746926108577910435630908507882769691853133994267659044205267024149246465650926108122114917758889490719164584296147144067033152621824861648249302562401597206617831908317647668839759026800219322839550696921276776008986377673597563509732760473303322649965216462522525710201267320481031746022468110288732480255670399470748727305769469269982067320571508642851804640622608863017418068711661956970210272661058719804992438447450842512293055390958127934243500609965533918483246825197945869461455010147569570868626945307304300589686464917965930357300175692274207077963765280817791030890513161262834321057901419534722928935755429405065484415143758967243437981365407784550687381456605377603489958740931748869387037346577004432143042502857991528354588272099178874898969534806573746965509299581559421462145664518195836589429426415864420268589320037874666219387264601247164996152179760470473776874948816301365400880238803817353516534316470759121643522607224999810809703650540560851837915107596593419136439335824582211115656266897687484274148237699026621703421343839606263207606776091581815817382688354497067066447242585074145007467339566565048715656865843439041023754664061070511352746142899092118255652751782491508220056391191857788905464424995561719615619487706383556181843822741391751852214575871855669216401612149757565370119633105871865985843938793700593786167239998474716156014782694163589898708915002847686872302333304715209378068719623603005000050198611298460049809255208476360265139145519670272680041951375832122908611138120324897426334433500355738902720494378251024203288569518140778430133837630740656892861612866787024628701159738629178622940816850837742020421422235979361765409216701233709087160920997047074789961723131741712479374108727585372032020498946990179704753645200480430464542974977325877032097154376584701342213422970801904787363723661044962427145252613265237791578606965454980400332816120987667194768462080909293341295457483939180889407941547353696975695561981264077184348481045296822719150927151273426895241435715774493502894708580479883147173437428648037448541619587905445514993248767608640871189748062067310750814050931700774272447977441618505495594496898011143563512215547256550592942270896302752651070111086314608212708636604418719447506431120550609905310205250016684512695138473667502203164942417898628592187415992648512963146856491638840550131982431523055155526755376500490878748524184809829738393240959984885130351291260222067784815646468609029884607001383556059348509765881205789322757544009837364192080096299201663414138965424279092395334718098527398998888403698521779814475968247389299005377645981851496330276239329809092178198259806874635943118211741467888748913894481643511022292586078901895214038785890373418814408002554811115221624494473831439370289764890372195119128936778485151733873551138552894207236287428745384337209827642102676062165034002851048742977882047247614698877840701126238653884720327732484982596724512440191204367798179523265198450923181403766454667727144842317133866183965937482454401175049172581071627536238054725559753158751600144776517053077159347602629496236543392756818782747398415883578806880844587188495606927282091633810450259043458762122182412302282411593881542685229445029196440032521677765096646713914952004482995833848413418323959620179743622229161045773213417876542218755328130582654454486821927902862831319437060428090239466152140613925503780179473511202322653231823136059886443534619388457362922363995828328733023181972702339582774218028722742887956062156034982139539156424431425713780368681038452369408012929785450613335895953146049483829114680311209869164471653150722141080106762141550374961932986813140273533411244380849412489660468784053668487491796579942217401297935868522514989177277507682004071177654960924130735563542970250035899417976789556918580193968775931998485260593855254983332255064782825582734172890547005008196675578091388289935804174301980369291144465729190639580830023754014520077843666668969355911093083104888998298408590286873371500914382425975831262572349390208532049056160833802757021123480002943446854284600085462046103562462716472738146137367635735249337482444732407600591260949243463663480170404118012587746342748319656012767025827919748444655568088235604142173059664424555214918421163036555080976683571830967425187973268045939552735554164729929750509169144449369023420671082216638530228096212150832055896973480266540769497022849132695882500050730000052823399553175671900508123435069549307941708513403759485919647340682568624614495957325652822106730144993334470817627191029937811656979215388375687012907972482337856292841165875183939189982050076853096144405032350510670889808239145122183525022302880877459694010341289689192984634412537354488082579807420464126312453170616144093922952280242116927133801417949298147539637591783592100843235952292014890475659585247431838320446117451012363092382402862146071032171588551171210611426153896181193988618030718171258106670975715575980111889124802580796002156169339349909803604878387485485410163688353822270227020933040187265784523317533400320134580550676542878004353676956129139754679149464292755517498642664303327700200680590544144966263400592054802966949755450190505082271250219894684562186597524895646813037815742138544751245918290192793657116059098262347809011561422048165042444329133463801333820742986507748490535454904384741845286095428798264396445497621717907461372258467275360521862239341145722881088895683446218264127276816901591735567515826761917721873042754835371113744271323521715398302985444078246999002049962132710902630699761604093458395256801470074829915241339840827618567873222242755566850365012073164388797754403942164572947262372889742851125328596716114652905528551040925284704280561497624468294169046107651307337301031962885072498733965648205651535625166583704853216045218086563341728925443053188049514581786512902933461906462613964669343380384033242828355725897147270036370410476575140658596323072703042122087397878985151173631714251429071496786135041153915900734615144803767609835069199173511699473785039427367819117819169876986525218508005365838559525839888957143504545162018846886030518653111673213481848468331938800308805261276919686878716106816480017830573331417141222832256684189020415687045167860983466030157452422497092577138355816544287653550020544340748481616168766047265797589585365381355774464650142507546391802392768239386072794914453778590674364581499677137934433418918359142044307694126480379960368271829178413996490429836639693005119510846289840853987094628429618828566119163080904440315555611538937859040625875083593459711194122178912967428159062702789494757018993563292499540543412196666328406810224785806760844158040759143005531710780650927820417735213336575132975032643072158340799807145282462057126935344491569550093873765087875481938619320467185404508474835034389692994153846098647523347717926133353811234189039693302034475399893108239038525843314229715793402339563087415081453715407781539671076228547002110861467090655937086208181671235643712775056166266484449026123836410205170723835659404293612612994185488974544775908532660907167303409474397512587042668959309114225626140298610343873452768288306997716737944234578800522428037917989551180865000546876592952461056327932415144718555742910635853824240192577938282727214682580647267030933465049286687270762994746418876775914238444334065395137733998236177058317562224417728385016320285113577976961656769926217819924282191635010734693048720941249638427619620956176171807201428998590989192482766200969311901767870325745386235337206930850204526188141532263337346768242930030023707400940727097805427111652568586443813169922736944156090846609122430617530442410901184704750759326696624210373904033562510841902303063342845341866061778640657679592215339028657160553504201998068777960664935770799782094328635554561189488134026431986970809136083282195295994415893556756520416436938912924047302240149177838654497765127517201057038343896371165363522468737320080031905791608982220503866681886998472871434986615876130414982512272444522586825937416842582463220457226756172040674818913471263900706506774764205377389543813410818355451514045195584609841103111531480439483035891179743969173439142688773675180708430001124049984232025735797995297303056603070329276840039810372772596035943990299514289219901627560037280502719927525050505224931132372847720695353163667861870712284568629915160207202484655324276221588768411068882629547305335112874755754001010636582407208758785034429051019815998734143025028652332913532769858390462319433218321880511788005071416513266945687298922934092161564083891652161266104459861739087027964247367391992193130055330448251135169580560886688407110945935793251971016624937646649504218648070191946703244503961721243650536837407608983490542271820742886139078998474772896695994002013002310880293776195645324308757094283628414080948983169032450683977705289578618745343336642586971109771767173041458147279521652722607682836971026251063528473250325698727972283888585053792733177808052452568737014980580286790454075195721077917215920665174247470439755695470899796926648809574499427450579002220725300054197610471235640013354071322251208314756644218577644664026890335440219943496524718734150317499319965257364656310142451526452105567887810114200237696253559450441888266056153177862566830603201735298107463809324795560406309513747196296888094563543818358051091639660304496599325972217037469251190709186645169453525495234884023013870205478652675396842245291232096230234146061553473718617444336197470734829824242615040809919334637286971023278576857325496897560778838167688654865737642370024661549858680262737667535826002372066189247041316587903503510484251181575755851708279446082006823705345665567350970444937278849587987765939496864374146671081693359007862533533535435460353563147808566868119241917622379309301496778675009192724372427132068931227409945338235142376925616418065464625464846313746089421428629560777871290181630695748346888670626309879850047196821646366953473513225062003385141889124920060040573849530441979092360678695862993683431226485567905840713609906007362510205148792079163664423509547546828703851977831234781215498613940707240850171285492738307501740272394383545767489685746124004959254232461675279693981186969573999068756360276796270124889902728981395607331267685782702450183908301414792848042319900154436185951622891673815259031366138190412195311790841609394788001769066180460033080796110489629946325735895650239240037787142807577582081922163959422912635101847185223135236423123766455892788490485596118434697616102195256672175346954282858179309140665105500123928759555590408837249950442060065148563657550256078985442070823575679510060289342373787289405794564300010049839631264535277870173405247433193037603788238577405082239122220941434544044614927734690814771108641989469023684559282864423422863051238509972759158685661095521562707696824422890116035753150278982820400771435487308586996872478542729576457945078165008559610904146182570157528494804130665942914185087924067595241436061220136660907915176833736864362497439807270590682170594407547332280960111273144468854547017499156770417619540303256993257677053318115099763892641274136447277506579459999710417845681610854951286779871286595805739708929167978788222075872442330060464851268650768336185482438812899727237230089645665517185697873863766636018707851685089144872388992503262172439955012065080520053465055936587629649938754867229967522676414228763104147481862581584970929333079591434898316476650532712172477801571880498217274683140016271494116370887868707782285956321496546894966417749086508064586666321534552104901519052750174799904338641629537188000291745471713342455464410542496577266415443786558246913490244891291686675710550654361378197122834826236562227595461329644376826902287397525638306921096243278633938118037098216691818078751987712213231497670456242099436910104315466933084574964279648929671519389766511661756044288642628482307295577148230284519396513111971270648741591593363597222293839562470098127022814894219792193658309636027727351134734629996154175232548063110697444589044433080455907267238577677028085897350517846262440668732391966635871063206475888224470265966105340888054225968131781726511965391670712722556273813702707288795290871235210299745119504659619494858216146137957758466994136542549762390072317319986904673307716749370356096314709684120036176248024421498769497040038086086775669262325156180618507958981425214987755753459372662367032580576208864536551964992568814511289432226837480480239651164979825636087909353103624914156246852460264323029610878541886609128222632543384976100128111579937103514368001404701865744785662225256713470452476499739436084112463960307584314429106680111173558511157515215385591368353109842088537319369010213633943280774997837999353121736125318181084726519571410158235911413776720501052148225944561966884184616181683925260088825222070418674161484917447344769660301630319946582334849809167357581700021086115760487254308231740975717872944846469523816685299088436959283270064807297619517335026790019024940113963911757198045566357295334988417425345141446319883563350411401747897744769261161248273656961527319348738655798586693973193533967501391962682065946287579569924325487663901800905183130450426672980266398115641696464071361139071120196632065858369300325909115615953904532206049066577755980363299245008153525422660466156674011852203138877891361259644841253973191660290877394947431814179556099721737569934949609957874635813961667011536375080815204770090828528754272134026308490428325837113202910269902775361413054877622820131912652637786259665275828001398885269852544407305075376002676137337598387643915165829651496310292346698921117910757311558396904270629965895652223758264152052459170881900118014870108438963579516377939482376635239786910042821138027448483661361586134176111064089427226901695881618434899046047936128485180258294974230589222254140594962022434569220864575138704130404762481937874111081869197259069097359433089441859996134705828803833999765951542901013169119654802091176838947904864696566622792459828142996370814167218440591504256991865875310070447386113926710200795208876411444012327650086104605672355665501181151893573389983154362395207899629993501296678189286734099089179126288525865352930513741276292113407292099092138048638986037550360168302252154485396012333117744548189355453749436755574351438154188739549922036754930875546279617051403890825984115789262964147520823400695530179700322776797851066920105667229681404253419747283748336732778686118086630162350976935998234946467098222904116752286783871752216083031418854811674026315910613275710251688770778067605089958475507182591045219062576436883434335700135053881307796421541347986417057829288332035706010438993860356915366789696467642147179546755834651648429510452545511294716290253315218950010134566660058558354217105746823007955224858110063584355110937452502642424097676423692575587880609862716837345585428428779252193938912522093044171883051772646290123843112905070413730847083578380491809966145836643684634800313701848419604155022169847789489063093480336477608280520767878879058735380310101897246075648863946986799910650476460357563644968404873963325922352337258355265672127223641441370984896187927622575284778008600969213053858841618437775128199091673685767898707963078168354769512967197982964099608246753319946018856310834645572490050950103110257579417262179894379808965763163997991110802224496072621008293136700121745704988379123789370830218863434216191994541128353836513852047600487899000668339403513893149693188222253786971986199587184327138494883841445517132608087955172227158383114694812692953706282208360788738798686321376994134870810412727126541958081581218961991718309666643790914491763431148787249707573973494572014788318634523064827572869870579667907459336975069576003433182569494380279455464479659883776369505940412286127510906271241323017967252290891646141314532171319992944294908544208483970611665660552600249263418892282929431366171238677942997354732453369363315240720951004358895024162755247356375050921127263367737981358922719620413484818646353017992103520865038437698935824897826152865559451892823944837272505607022263548093307795865985366756332007970589538957227904110798384064736144750707722038285676910364957154291301849471532978753163825716709414869330298497444565235315621227551854890172707721441064569222362329473109388937978674946917485397637374393602192043676066907203213720511828019936767806202503620709080834590445086431077104094700705142707386816496872111189021985848933167249018640929386769528436749966579398261754710152047732243782980840206923175962337240991627165623177289408815724267629433890534197875945592290897096197403340316414705630611628263719907288350931307179755914477165969096938533839728849447549119376073704065005928077400024801602698529028461656924339146291642397174347988794094868463333154997310864973924977160364570938924768521184287946545581751312757127142357482734797167434627122207609721247599631007307229210375635262238830995420606895109931921463649438960915129082435271004752527596005711963876586292523541977621582783747407664729990772284144648062982225826630615109046143334855264036571818638661236755008786732711595369191103822162957709908644682165972345841365307631223166123409478524172050780056699083978012437474052844943652038664262136153975355817039599301867108711827518522609087607260715288471262944552743938106429432797882934401497696660218156907038353690121914289400003357385051735447331702156723857748427790962371497059560834722347243815008272708170826981112020874217883792096281023674330648580337848595842912106504910253904342890718477350853004582465175348212335630828157534242812614855666886328380830936634662501341260146910338799655138638215224718742491013450827513443824641655167824608408563150584766586186183159698898908057643893863308424373499884438142246671072721417511219304806192255610942226044028965519694356898747338885371970941034502275470537610117562751900192091294364072229032769668343979401170771581393346934490944404777491275982873891846479932807356432416454736495043190388040995651413159903290266324984952399003844036276315398589481992146359908218881720144255177652143551539075510421020203693798947652378077977223815830837876557343148008281002231786653049205132013281939420420618408094378181599010167574055763934647607650565136605108789633532664158164027301802721211385712414888174706313799428000583121245007292116008411769641623886761957293770261781341186477517533035488844639003305158180417011665801744443210885724431823808172391984162326882277151331205386589047720200344100163608091520684849505070238402281603658763803407774580302320589358645567908496385690947897277388657279200193673906481536139466538929086959390825763541424192363631424525054606280379198907695056970186835399190463115177088790240038795061660386256323863133643478334050394004930926847577296061135504384770718695661183453193642223126792063710641088839988004689153890589944559772071860325342815954542584478387343045743267231103448301820897374385753993689062689954766387576828246642870408904241287554515468053537232185861695990120363120838865445009184951333312678136461056473391233897352336862092530378091897942692919790740279067282599878528580705812960197349888115094998239695377747611826024932718724648713506556968855700370240018683181092496839697514918990934314749379503104988384073271229908771438431121507344725422467358352382668309280687596621728106166582875781837474120375804730977046566039969520221512628933358914047578435108741312938269265211506775902086202653394366314893225299055743624420961302805990440950223058065372639848702548232950805395813017475625055525145620824573212923315885586082670752765084969071406716930487208363531694659433987669650195634801009597718128957479209249481033089861565203357382148059807854806429704543778674523768177079672656153715788672069020664228099632534087283948599093463779633324925199660043639130302732610670040158580816396051004113975004273467060904884553184260956004203060001008985469456765956918569217890855916718260849756784591700857072276122689125481657377615475911008187668923659859347994177259490808271132504875307818075646339292109000377831927294164770385771039922099592797556419702355131338370224089076190918597467682074236146205934996590741228385520052223982380824576779986406707594753830352579912263931140537778521226361221064761985820233725638477837862751180912251393612772738499907164854690683115013762597965984741303426525805645695388487757139617895010467668627144614021935157199793087306524862285823727455524556954623679067460473250505419449861517142186150593619692562780919924034933442137492384809051275437160456460823049467043006904385013913253047840279566629037929614753349825977009470314020568257985960859798964045966174155128108644744805739419987158277557136978869242180042048471234243237242597184890085708102589159533328296165798011802951654671732669473042261507661150798099396118143202519152874558940788583507147211412084699715473153696023080652017375659871490265715424829707289798968285039019583439259213530166527287269570588007008288448661471979522987997335720909230107633340739148138344867220832543675948467387946664720122273880121791203549336557518683193620277503540851066506102409403549471995686450838655968551286176552454534795382638790001162721557036919882286732145006643720631476718885396161251986054661552747827019656468917895414226772975674421151384031347677481477505162384681241690080042279123553584733795518804902842839863293429319094416182308293114231502018607954884298161143544389185637759666777120570864613517750529273829872737671555599138667607001531042491345896268126046485692216518743504165274452054143495062139735345245945050201543849877182570496820901496897114183811727860870979004252922986316969727081834713065312230727784733827437230263163090937237225410941736114036522146220978321602390160968695694529958561543718246161059653901962983378380704704453429407760868676451066106409490409363777098899011468494657919725619319725953325341066126029941252340768072941678412850079096174974918873709086308981656218109753693545301558387237996891179769008905361557454779041008553075429864757437323188412784920556246902895063982098926619018343881417376827319582688578068685635319132154717669713234749376717583885409853210398928240616576494379895200052874919566677421594136383482594259575213422104249662270934853731722626407802303879647793888609145505696295534169349898971812429503111302380863004513573746338195567084360541446670649699287785828546170968008536805249770802532764001564316513598202342746405828781245808267394435614311266556967542574544178983045837337938385817251783319519648719051511161303610592340544823921666190164401706330859109422793817370972921274532836939410191823846997157776527509772874852059343247535498026872646768609870387834198555797481102115930976404570639142584173932162102415679771128890202846319851022354974659116189964306488592690032132963078225655203814715528737300556266347645861579284039661784762626303237080459093551897829805932995278336683260347061741861080643909553619515693108995039633346936787180651870166482012039093167660982490066790358314846148116861400649199172013588133443636748722818587870659790606721921615416927542907081149719791798499436912088370759633682034975319370510811765745946487882431129510926944864260737297161051525192136020412122196511329517352161299242987734580265075477764633924624257409457482178195281926053738659748233119417336964693835199267434415815339734481661349772615976630870392639964546936629160347313586437994804511886495756163068923276614929741863876630759496903143330518455290286056752808776212981916511725957667748880620311547752573096785099973747497984726126738546282603966847029537082156522950556066306727231990689411205320019071147187394533799541666704945099090451439151001362082046482254997626218393264809338350632450812488628880101628105967637683872819316550991537840406075660854977469425373880121565648589108022807791530773124200792728966736140135238507161916513132302100427709852555563056738742459068156219612088779548453736601081079204422107290607740610443403762063895965279789076114227163228068000623802256663391750312359139557919854325558629124262511843937643768129394295848190736223156073039644198429643315176044622412640453840032147035561620846789672220531970340675306152518960133972306025883927305610022201239911522727666515687658141668429636864653952303395863812574675417777974347268228168755652814599816014529195781518890778187000045990975277100705003217149987208267976080373562772016246235172364971576026307385911032090010357836050950064864687200196729625855162129314380556680979806342701669122751381129992616623875216457493462471486379006155435927554297779678874391137779384923422592249985170805401202534121713951599919997171283050357444530604518858036642781517048795484441453774931150504984697479545431592785614731874914818775144289327430895333588839935293993088306390156607305777272744937472537201644529647940733562495062435563692389735853647206224152627997469485610552291408913887671658075285057212845429926744914675310879509608061639162110541285894240800996270598813005661905832199828864065785654797035892010626447420124853801179586700503958141169621611065522543016988104794340973910583976024790170145053125676814662988557364463856357170914936646776676250443789087590729700807336259784440621674349827511933365019962450121709116462783357963342727474000546327797875954947138189386542726945076946970555941312271209169953189655712535136162641065561889942150593983867276676875612277198841964031448607542716903534936880348191393270775039706483952141183705211570049291281161017000934099557093443364526845543017213457246735733541971483041406432753596838354037622224049859992836549231858780368877133282927341267409591934116404132079142988699718979411548921323594798237620905135260796613122600891368084791585124471439936644904216532812268350409971993194021033559893593895005748896963926160323029288656155573232155851294332913313670196535806740949403860747029633915880475127076754494074112318034590113359964607165216038340598340531334087158031723079955928645375130502373570697286810859835140375706865195853022145441224114474086955203879945706432276243270488380850161292667290072236143314856619843558928591956848995909445486039604465875201358573374255089174660700047781498354109530614642186651410010285705739321698733193988123391908840268503039451302813086589994873915485329031952247187053315944913513901884709104426116760942233405769339185522809580846878981973035520480783006629239319850516070883876629092635943436474041161686585633346057177133416147641538756199468646417928737855854315734895981828969242882333205820576934575582157281322697790656816967954150921563606543017629850279964732569932415102449069557517685675956625129575966058025562986182372615586728019392657800374834222353032850760245479058927679497294452290721686190195328418210467680079188882620866609113597313662648982702424974640409976255334755868514581505209988796858990625395820405006875033894541177985983644233758256180650742380969918147734579042337147169621190292425462547206780046748812955884312129972109059652585889845230455966249518521164444546356056885110741218058925426876822054787803679725563049956330368681217428417880408740442993696286294817747920869779040330075347955507578099823934003523365339877646628410350410473294033154833254613092274724034705006419459313661417944827281443970647038853001752170727655358329855972381204692026439054017808899342587723590445095291254260746685177239894586889424952108273364611339758892895612368997177884255118347807043054652732311676776475716755300486890023762204417320384010412598043379718705704881223624096242227122853858319890795535202496729635767953286190492636902587948174956648487334152718276937031026846942500679956958940277492066647665894561717637482715146627079100342453506879308150231455342092755632773475091656595734979178631776836699219671480398323582885973960519449447641470922798534077793760756052365160521539285571635773332183933162976558765527561466352098611263620374261717780407882297187649749137594929075448613907100496904805719210739966866341120502004798283079010424384926300830755215903613032977797579730954812154174559339498796354682705897068425982563140681659085410981691049925625685253511535308463006678173839769361364334242230767350008751364926050965839064093700193499846817884000684817490974682621460199954799428303840886165711954267395572374347292850933308408355579752392328775664268451117467134570465193228048044316271655558304090065607173638134262957949196138179027269346022187935074180678978718915881828087736495004610877622017497474997415677512730420462095001248913366927606082135485578934657766854867952138718796818694123501638874335299244337653508708537299773434305188644634203132415603014570184076176337970143069378970902959490244944916910548285769441862991784733961940673567426952711487892888288897516404759725649549660506180106834672699376999070689104765454462719237620823611655865208442191848032912595081700520461867574841256516756141859486795785723907864071343444377922382963520975854742413209674033528283063541477456316309556067138027438900989405449442419855231979070392040883168039520179838590357869395234227077950218396568330011018711439435496899073391624368841745476723191861507740725966296299801524224913750585561237077742445100168005522204172256691150751873792200648796842588004352929541796558756795555117083685609373975130960985601288295232981756561104562298938003038179209513796390020417078685704931503765066763242772209591950671708689858309639019417196726566037781969672214840694899415649782366033893611340206838858209933230247943720854934971906137022245955814274713398892051102130169512539241559392914905568205091433862665977141182991125004301607068480095745133106491728249099829013288307514105285765780887479988187836642320561966187618825635405193265787085122928243373036570238644862831470813780184473275096413522365343073380045038248215315360016785389310144943009480418173591944681118527460777967515260032204230763407660668550804207394379046148516537502490094790155611222178100127639227082850006498138812126207918836525020326120158502613948614425055771801552252475218324873978951635928308861786300477923510954915336030668200808787999245703276627811827180005811002635592722832567566475514624666948764388849286851489686899150148532290317641805366713819098951152090777210063261353495106227189764427170134017906462970683107459321527945286846733613731467373228895047012993068250720040786397190459689316085223075973454590780430395393094581196031818013170647462649502282526484240696137441970322458652664950036099897232578164518991525907207615002774276085749773322479538000569352951908264287214131676687593727701673316271474614370238035720487431231860110719398231137916213277709364485572012988675741105198364031215953076970894470503738831630167055543516080407742801147046750451498170141447620071731342781160206285855134124010137342232308727296268896724283192693640486683666880868107200316044819904862791877426659986125770936798911754592575415038188543033899457183842945724259114665704910335241163314018184273276286917354150863650660802839013674659291926159597372294043009492337590295146501038500650334504489942351308137365909523084463531099962909963012518475082609819810207449235725786003738851020741792489897628849043172354029861631150634943071594583724616395101698466427577846759952347397704912098958950253435210450417877060853849452763560752315450617366870371289731367079870327288884860410085633121271420009786393427510310160587353991005734859315895350188335365282076059663653388143101396120910001574871794853203541307874927840896932142101112427614127632807173085097106331259837544863925183570569451962208375561892803324147163587702167446064166742189183960729574313019786473586573469383190788630934620526432951463553826154133539017181534536102117267712137511890684016354770302125755271426103036051339129815851902695161562774662302260834819286002005251660934277078036968201378354018486394695302396581658233316220656877522824216930581758308775186645677113482996982847111582001062782876709944626542978649558438785087395968896082894556309711815381979202077077309931990795328506320449991171315807258283750882364201354005943701541608879151899251458973861726344696150598277397162095845915927387947071090449354161020382935529829814957195039023547499625744438389205189247714251030537840870539277201566458918314048837925061136731691730694415226124091722478315577610999695153237741618832485385372530175975692166343046952140319378972430039615065317521064444554061944237075406653406532144491822846871252369655427015393757776666049913121496197863805583163957043833698378619681228490937962261661388314510747570098606828389285714846191636328945496399770162319020632466306126730619957914275161500237184302242576218260475412947137321357296517802375811377689855676443045485030920559685938807282284273969780280009426442299564264017264141613488419802476684761520011970016795578174914479885677319592025595793419264131414066445660529573996723875034793498388933312190032300602602866461444243624454346586183803340933811807353626260081154136808017117251921936799213036191864969060652583083607466471771249662431023866643431789321214986105220660450600782090126267714481592219545018044341587861908947886194923520995277027194109045296451971015974517434439718601460913990142303998415608162374700304072924024172597407713314518379633970413273601776306862914190889429977176204540521861057239937772882930879297243360215231018879848656161761530897976593312670271202287082839238054317068186883580279705510126817627247029929903254406216847335285096430462492949047159727702947075189058118722072715349056927347604397781028029896003379692029406006964972081967353895902020441024922217383159116655917931164184610849504146604646996362285900789831511584542034579541631833114310271543435680069691770697296347958803417824466180600616071581554905954561026569359127831507945205357660332394969517197731498789164322375613245385371896025767402000358605060408699003668209890923686436901777090739850748419178349033741102216297459898951520448466932838099493367362327391874530590594783957344672018430576544348215841548662996064696012494525962386960777137830876743876888997178556770040157326100099770113289206311787890983642013850955377329958982527118969893068799937227254047826070908612684540526225954637072559985856485874028281301819376135003669543405538607003950752570798500623489301099338238569010858487017263881547388432337015188366293671814878431820207431950602871489003056969131830071358527543817735472207455513571336756923110954380280801805950511981530948027964086110292947138108740038591283170034630771064380387665944334223301101981096938670533558564663266309576998973264536457801867490578008469109866062257721079235893923307666547543360488510681347326606379170580542592199233961184482958058246919798903046889783926267500578394588075878912933278731573257748110694629402144858911131694028771683609872053031083969274495905079834244781996163721962476052416862515095131847562585455868406071097667547728752644834558710088014549884885346335109664806457249070317948096056510793617261314025357746509906115557404974575248601402715209566883966197420845768364198622367296933093080614063422051757866891556574171551458565329481300645155182589729199593605963812245058880510604071760659887503409678545699533938954318053552651076199893964245762035976436052196200849034953283995631520352071411659021821466708624955260638410113127475940758591804150884257650989698697250595717713293313130111589322446706229106945307422454457462730188792559157924273851349935451157560951279086050952602213577318117510269462619877694408828956161667487144410453279621593899978423504144022372285265373956855959744112379544723507366050800533279261022277707089003236533192394822442450731161042755223716569520544919117205389979042534242997810623910828913735415606664949981377623496882123022946520778702504641842265403499783218898825738708029108248777438154414406525470086123922374241841744422913604426557266853923082009343516546519175536778984245495036978451256108597205731622554951609169618935341453660206833933001776989267697442173381957625862271127853609811272981689152643720598839704671168782215261989651810361525943510574284937438043339630562447492696797602546335437315368869076356655148341990789066779688768167583028707378486247273931208278788517598892180202057236947551583294575016883669026116294104700124263557703626641594635748814983166583222722020262957545393651454710554732321333683858849068424839919628425686395961953906358623410635421751930272004109289047720924812508515903729358380336350253219199930691416864654547621580849483624093309301162976883411827787291810565361362509166951853360286738102751144407871430814379903366248208642181034344644292482856776090943681000417528032893903053956152333560012789673094489796466456627629331538595435979032354964009235199652595455181663878398163575255209092121306736477167399196356832292374167389900255270226645268099729754741910141961864023349147825589776202208748997801541105464074972593535606192623776689405717569910890161780253163438052505168065056967927358727782401128690374817456151651224476129696552638101554499639465895167777238466254203157766696963776728785369368776913661574814105601109033605437447326613548580431686647494338808013296724800339343835324960311974505947714745481398333065375580044434616914898278810589577370016842507206607656227450073982844752936796678546419737152608574596589231037717352095312218367741032211633413945344109571953182605182630990437023160837957158558102827374089653505454299065473711923515559011931792189707588544020912898247626971472455795271472398050085040743172732388796219163637565553199832735049551152520005413155873942417151086872492948374968105588255966035602759629528559987787636431262869172152854519862837217512306723705376349491795830355375081677889686301508863920789715992852677787749925036718289112407865440693114472507648292943684649450173196603715969591693999742729863857097848641613687322521314037046112313955469386706977239030355443435548151438053659984109270441790578406102705698674233840618359029470758311209067492034380795200743133451781372961022327020279933727039468131250435693072311776131858173564628738021715836764936876487989682339911521222215198423657907611402151584927758968127220490570603630221883763930820762153675800819320001420074952433425582669758311080876356086420373707531902401877317982833712028687582918537378641751410007594173376573614076704028683574052208774592069763306004756186759140249083244638300909241245807697392700365510740576259662532224584227339406947789418302449592505548989562440881007883599955925241688943795737510455290370022883583910191094370087617421226830800302211905643029703682971658703706436690684638460850961979334243700095234141531517943468644743190387911597516340519573782105287639691920265334785862412943120781839939542439205868552117101141993055462803713511165070327602789476139411677144982694240891348316328477781030033272891945957256011545992423053144972041657509951839313573968531304467427939340268586337223814578778303582906655558466957118334313913340529963882098788529918181672459870231948965516941786813362775009792121657186686235505668152498749399375846638104255772368879096915356908301650568709740099684414914282222757979250611947098056685978969168908830474302603032488634045549056557759983068359871607831977756301968980114488506124253285712504338146035048055474946971553832465668172200049385722323605019863166733431273305047519165830089099718399379468112354999735497827855205442987749318584711423426863183031059200341927987537123972420150439546255132837017389975665731305496624043938169145255793063451283340798545566704830177623652994266049995590787423315305283293422728840747482562075530171619712032432292738289569435008361436658132517025591697190265299128663626815689205126177258135540301533759101265745883715305865352819498609040722855324636123620806736901605917556981155214968807747255180717912383391287406474247236597161397880463859656755849891611825689319773577204613729591041661448730832337247787820401842369526251453273582115779893301214965750360757827126574108745530573206406773492423007974439240899677464733491778748907054691148669164320779389699600796809013731819696765788575468603946134170303147549809032768078164019912659435686112892555185018930688148885316573280061014124696590486934233634370230883083615580059113074433113431518339731622842592859837535499810396156311375210729089844890124293591520074418061289463398505722173467009173678619354489495228425364991886304550335328438913994607244463077241193975470011258688595151262685007688109663110416121646595475038473884757442915913684615777665820945699509479628065730369974383901494069654954277884027529640153793089050101455021725310189788795654156449913815974072598464955429783338895588125980715315877546835570335500512334311881444401830213317801088900979968361678522505596682389677074826457550489435982504232079819509342646561084772412609077428596659211580363881392383465246464127442506918111204357863481636747058321801398442580838282985124367846983832649917796705886343100773192193858194114461311624890070082679396743760212244446568184714528945614045833264496917651082344828525397474646567286300813920743150139988216198259515313427196395633948813559034834098585012469183667733205553939742974936768964998287138596310507357688699344561347318106189803650995709641891195188214468630017829646152812847661276636033232760091214469217129701415519894414955388994068217921613913468826406322107027264337232165103566105205033575901688313910951147033458723550077073444034090277688906552093498904995877903060626352797128464432041886230039300367544950891827346627029249315947508584392168674084479012482158745568386007875729800767783090005533417930700035540897073845236120490066925423913332286934969607437785291456180101874717493195280064351115640134795692238973452329438747483146296087285623871308677203369460080317092888132570399235434632381513984039320384834547913161369605086048706408575116057568529094718353783376065861205585115846960969610624387320794741862488710491486331256090766631193739170099188712768808832407509293294870753100784434894204679086033401651878797129066204528234697206690269343620521584148796374605659384220755167470809872667475312164042427080838022783077348276327816789348788014338934865673841002215524875688670319393759206470425307743410465691425148164568703296877879882059345981890471033552855748104098531107226274476951370332107792638961306868964486536983270297479042367716694567878139590189547667487508972804161745236396829985929774185540128780407083528900951764879511825901426636733366341568443247737779264219877952123614486702605624575401515126783265673758253665305477074380395470466412016058300341208666825186764428431427847383760068735849932082011121450456520075492670340266085285075972312056755890886022996361518969089111494891255205966553597724625810831288883441074000138854053420924338860393187896966906161050950331039811468377842048295893689559554370491139807483823404575872287219736390672248905313478703628725693700312196291967279217076989798585228096311602413072816036382959493418940824670627198586958641719356835954006264614610322456452032633820017342528353053997821650972847469506889721267113300676142865947295590947735111177640055430723065016524292345162999833664007552869607166315250637730485418881274287160929765194855557816513752281330123274240357234737421052822823256440971583916931420533477323300286343570457198941330795445378264864475480501822848211598796524348977012935027434860936734622207883317835328257291372173289371578814384782447215181312747433454527694838634132192705353718608574530435283256557805281125348522446570365305428473886787967764259769657729918307621099938650038564144679542865438453547720023872261701016919277991155420296922543101468002871655948531195059394062434768404557092051276522942702723010113970092362880681998962669126513926201852544568472530536799277808735220416068152143219322641328806774420040911474865011577016424105112962138233719907117301313092675347667228974944218326517206451309169699398597035141174096829236006873907008315371812619168921622998603650437324946786953049835765105926749921233980768992563182684276217404433132489390066791829651506501815067044089506166095361614097615769768034456949250789922643246892237245698056437002121912732995339287370917792667324738671432210643546697715250367764387787105229327076795469879353767090168211923395996675687639611380277378900549029725334714362643249770141422984683178269146244186794454613129043507830756339805842679874240666965749153433940123350005310744324770781766046062750009556990625286731639975798284864522679709582446286351076373214870841033249685828513191225924711512054617521180583883181005130270853170451382149676713647014505901495550707012966626088131624483194913910303093519664743718859847822403275851866141649676385556534397995907366063629459467585738952674558350560054249407253718666807842468328526215701080111690131475451254181351879307425522083049370152480381808726032533552016702413901067138175213543508866100217940180038595738049403949626673957238550813947314127448879842474914416660923493991034347941984922804627541246995110117702505443197126905235707570641631172394397417845176239431138235213694955577042918951501269661474529188438988091417321341830577744285399454026932577486281908880053913292558609138282643900808093150976513061333363228955695014396193801621784851963304251634741064447768489096330818044345784241055014127422715329331013692196032446476810861631527569647021537685889743414622082558602096615626676585349653215959885857861769215950486262426020367640517688333733925639240205166533279137315635230862707767946716779284872116213591411872330003975891394697105656057831248920326650640424666254706883587231703988462035411532702333958823140663130372816482687769993383001885933863782779273239044675109524667760184067468953343951805671335071709063708608155649277871786145964990740280762794450174344732808467282165567021158644038527224975524149610979017518400526603992342705277210235773084113476768679431791161190360677244785311490186507522385912623372900972668200271238353319230814952340514042906137030620210318808403891026467191699080447979622510157259920306000325237485114612260614002788170190014784519916294508493765508560146405530913795581819157596290947690144503780515396780984626795418361616407812737389478069652770119369591210891629783721908664369943671889087434182660919634917751870629820168122638026161875116989996794543545723618577250242760064745700994928644853929412993873497305956359693657239298795659970679074949653613221889782662797305556730533446567363122993818840573922939429909981018538893729479806726084636398403440141662798319201910089492685016477695911171531466946369275793753274821277573835571780441137784405274186587833381896911209462871232221786611844912510720921289202512323703311856857704541908409412182862124737722736301001056430374697301349713627586469153914508263762596406772570730699064294611451996404290545257546383966997263393999836552211107378468881343709290205240218648967719266169419579536160713094907055548090402142602463631055474093500258195529290776776812284288399800118378667886698890438432422143225166641536709467513572605209668477125436727822275960795345171050556172766985912853528715247653716954837604934530474874545023613750361631358824243801606551900343032121406655712160828070629579474782317709814810279109996234712640520186704280662783653394699654195675964907371035134912002326841440811453621122526132340771300733940112188852470323816403031979034257269896872696276140474153433355963161134293120083819030060460568572269800531475532067856987506926391847822663743707785421239043560578267307611907915447958362333537966176130958564548903678262569680740964478536781607796885493326995425398987638738751688647320371005327931829761793801977146691523478243407685777343564078837187288939065504580737934452587607320725180634020111735806665188862470699156967271560698932362696854878079126806373216284854868845916850630827619883458727186368609375972920505887715514749137397237410010753861004814253383490885490420968865145965652500806348685891121115768069158116208499521262519372697262582870426682510062962753347254509764011076254893311222163024643812120471121197186119999582164199712324330553221414135323238236507266438873603552273259233976153787720549164631762798143576127426340752372236355916357203152662297330317659408555821598163511447144921121794229308652719263780833914632866613288707602873972044608193800134525743338110079541170403375236871967814082522955284008529869165552860281819138796793182331040714437333257181960647998336711084960330420525937243597384888317194059685146392884991784332187559703924372531952355613411626857335219236788443619384114179660959998730090214753635891164031267127155315548245814744696839725215190878950735836813146952874112989117929676891656631040787639593526941193567175175204475105040967370134836708517853665930572996233973476863660824656998566595408916273148149409744478045796598297238568244773270737470199081819987620209241449834169253934156100473622039871715384063845646571856673200830982447654136237283409781841791254153522663512070157562667184890094768529762368143490762634298500880326824745523715220025728022965318332359352101967082067059009157664958961764090432676191714263622222094871837897047234476930092331338672227125710024114429729007457888593345887952684879464795620661268441754872989397497149734066384205729103989605817129022145029433177026624197815496601280748139074148576750264398049903675580678996276692074818089052012904175713369935499529895992759165173934984439675862017278915611497917281860486399267167698964605850019207300162859427081109721002441118085019715905395361455029584070025276799861018465039555340594568181126302138224061175512122102946079019551697320560907102532290465947366162942559458861676884067431354224448430662099717005017124436814619245472451442041745342054868328061911518424361799155870519918602879922220339158256263056576207837679522103480344426540414562871705958373399481761214266418743279096706697940728245843067468603106209833276695599745583830454727867373916952090486784233916202390594333409288759974847755250719753559085255649093150116252012255212938912016007128670524737453896935924147778212789752357429469391238604144569983910956587642179773533390461163613400953955982520564692569157966792489089580510252955251766621108938123649398940952826099867665052823532708072840708565004621757806256694476428764039265196745544743754740772717375599970505408956324708395656156188539635759502132353317941735386203111395554805497735231953810993044408894821320055609556458469282532490205773109171990013376223478408346497729095435008487596910166891539811026763874162102205435251456382956288554529416652068406468359528090518642911267221931733574253327231788848625105759759039145258469205013792867716801476106985021154965462437861258199595951592336895505412179888077100255394369801281609962470427041772564806994071696177410794898971330404853446099291214261949897480288870018636994505854528368442920633861078635569150565989618399283619421833387317101503806513259717303775317996703416263756377701873840141141229627407984727528804265619184752603335804782712320231935028230712135741890344186924365020399442277919798641859518677453916288215716334026202529360514336348049726746314808072454540082648798286705648023920534313822889560462578823640287183237698578546399519031363496236196158482127259286725243602272478397539345270157477498592305904449382902543465127363885001636674947485741986702411288506296997113683201789278503890536634905828873609619070280861321582094403215105524968283964747394196132287276080713130754340409642110534907230676400788481042346802618838681694883143988018787488761482503532178577359069270947448768478270933032686576438774898208341282715520419469661471633295827509126721209531962229730512881576619919611675960356377243665932267215653542185498294058373022365826988216554086185765389169580941237897688405240455750709614776294188806651301612804328506805964011596621802245442556040224789680056241139173162749814096070651197798700506921366234303203273745174806705564284849438758698740988850940756937734921535972674735888828644829971565463174688438745715892095393189784397874231261088708358764735112206625415148774208692817650509622190548164216323176057770965884952333744758617985914795043810397716754425418686399422807321063012327082115683678340482115206732532741666932871448378134541812785763383751006427839459307602266705885265779314247797801085025072319745746526818562793393889039319286216920515859891116672039499425728945373487207522222607274705904361438517915671645608775424442673031551546264697093998529993086857794853420102255644018167164308615824230912703607013212010750030226498499179789775737474672957916851599805087519731164476830400416923132753445474328041129011015103690922545753528788134215631757151844594351894138694765004335226923449416700689623084968701555462240710508915328566883516059537970130075076529503291909998775585729850258662664504578038101843135593140365326277046428457681241848427911145806209263928493918523182046812313941734087865189581610791893188549674988759133772565724631242450897750884869379990478704840214706516055659099587695017125268576100079710589072019507739861109640649644955229865062693061546849428813470289111112312966175114036406246968222990681724255591072510564059836534964606357130355463594137423488980147672714456243260579664123201289930928443555854387344189728697932989613915556412540578684860859922924159468991951028673754846363447764882136521877783734370175149077505509653170178384431827398916649477973513740036237031549521931475475018439415509013114764272941424896356291558953230144980394584096489840941767978912446868304211699323545659922686619739553947098882950450448413229329579549696520373346124533565634329337509422055465952037725172099875579780751762805552119913533736723014903865514713885329059701405042290151239523665131664744953325061827365662251427798531694000646928688304233940537718895793222351941678526269557813211790985018093730382622899084858762102699592528152930219802001819675668527348867218320092702740466417651407249449354578406349965681297363113007732574368080186593267267901836257815091946659644754578105852463443248539375995126233995286574769792760774469866962585416158599627468649986691425659807285480688925547007833484526275363889334267649042854482588163393741924128026395822761739289181928252211782609910685790027330363085704789491957522080427309034575345227778539800820018344994778308795988335650184938030710537641196868723294528532958407062021958112113043632712804094105881361244744762998526757584329622719016069090744890636194773757167730117997918117992639088367131155332364631453353460942287398181777278573674308725718377168431571073140670889164490856416853579005033920449245792890989202643856120739812297321183716153437109831477863295965034579458895153588118815741317195352422792378374727743443891551279509768460706900644275425917824442874418578967083196910028409555474804153188268749438241180900642902416256157228290565906290995451533149444844959742748853484531301692286785124138202262215673012595205052048124124589709067828358263888805372267889699478480290539391558090730325749287246152777257915901642570437180228373729673638073384925492033274744363977703268941333056628729824766762950930131950676262054099686722934405846396435472004685266523697727301101426585254469879051676931586854387485922760316588000822386220314110591985483090610071373172503454479124213712120539693895462668847451601511555135897368108838367167438193813532358584895321009558667361457235638003200704233583821267882503610039371068498541924061543665781777562169189356755965708875207239165436488518931772543568685412621154157713201188319461043440356760595007151358066887672990508674406380685509264311326651337208558678765093920414673595704611373881653253740428441306895394448026456953115857489465918598686903576922419700818493668204905127165910219579109018220472730412566770092049783167839391644361013278896636745218244581633628197438004744601964436059894874905426850703180608037341846016020882781619846414148367953175523349500241684287637129009838317082612868387393471227394301270453681006156734634651737491952481533631192061796320829709191694430084380207726132695601984302283680101244519503522966662552310961193912548519384826203299347148069855788224066693712528332715189323452671604710519315007218081712251144855505098858506335203347512632827081161083772619780957849723353831790589236284699984172612774250964963737547680758302122358123341141765357807176881242923678273700729093554816751335600496772728991944589725586262632106220622785806702341042694960977381209736392476686983452850425593685731267559433949800684163342649031815040060245826396254416521747779653395493016914924262046242723063726753015851123225496191982889084114798900709885225934823881309840460940044342332338876692952655021121103614067055402600705229113018223881952356479659384313860675667363997671253802187435617641285651725996429005956187080954083590345376127989878995032943754212385251945791102073462978492183192945435999047791265711414039832442836156546307889285987052035171837933111319746441102370761761572020806577639957486350914635560683503442561744592733322156849498823280635742483605781916424484096545693288798920120203034965982777983525173545753935625875446857306225488701849816507155123043830350443923394934687106397866152926075540216172842842239427303265799777534444225251837318431272443285074564533074394867185336628707913008790314961174298309074521014748176359827157388385989093347096290968906079071070552098257170875205495074537767250027420184143494649665310490513859588099754158379947068785743154773249628099946115714810812788553316022728795937732603044699929711152571136921229967167662205860008851729685234125502706347420241088220833577067308965974758131645170639802853368486639458041821774889269677979963854308896897489471460310939310407630013727021165528518721870233528991189322978505532508790307858145854661767039102514157287035566111234103657067086777651146475695476786504642320989202998822286914337805083706942259060271521456921631304074792461638914882447629972385345702354640765226305881275661890785925231980586953918313338982119513088225003840419887013997166787804765794587820136177204328427480966122203208300500831161172648858843470672338392180069093178921494736519386030230300435616999486664917671368400806780924846247852343019155386557508396514155991096016679814076669468226559092960541825266792165985826631131009185482443595544137465829368673245836778294229961791034352073850265648781148556781366130929885039208634533209223344338580965702894735256806596676617981031899076619302594985805028516113113910326819603828004386702099248143520430501756049790156023258293013035074825018250727213788354389178356903962423368585936362060472705651725056628547365120934427817048961810215439998967602182761693381710441468605234053300279072978622513942838054550677188079131262275700571424780543624763807081576381203006550557005608059145080044209401913945505954108407851293376808726173253373456452291716414682484098642423935998288150359275460884435636106836961015384595894073279484884095854542853088934868073586370861022313284604913305237450093228857366804281569338772930572657833363889109968487105544318424659133486937525280686589749963051399620655826509287093116046136495041537623488733603588767147130682237268322825960139746167084781795978318044342875692722527661353546178054902514567517351450905846331182782375474479797891693025345709277761855534873180508279762629518530904060942904097759123000188240333955465858797415152582090522587299547908434555180923705815116394405081661384999652668870057998129920722091960021936846242156619439453220701552316764192815124065992988195114357628906461505584724312158623835036968873657052862766239465810541761891225015124352834597738661817068330271558374790838552623108474538804048639787990275760410330836033905254992346091392248733694665176710411033312744546695358643164616103970943323653509536824328214417616259895488330763352370038845229293843319689409010834288847580820794621601106949033701997803987116982701652565233340362631848714150031195126334219652542994335206825964736166194228915556104310623762732151363630777153856986334117152724977221946372422211950255435647660654782074788871805641904631709422799142378587983082506485725443395985705397596257392402735268274111231271403449022107069137956136284816897036603136893928234149792926252352042613878586443029400237755098841413381425747701833560531116415756289606839774957700314294258678076674571835911469056454307104384151819007126802835992236732684259667268339700873452834230132420290077182381848892800177740865160466301141164711006328065047474298398494572963507061271324512268061185914324817971242261667862578305657257174911729297160677410412553284661706557629470668966559641454881168288509644090202697578427049360415633246755517020534209263778394236787734365847397543803610966593054380509704516153175459614279269090263414004571490269561929359132192608747772888453253004354487073650196809909830192229537480218532171657889341836198229475888305367728898832609027868549669266858231607124927020182165412262047424321966572584605177880918770573088495422632373594141625449379950460742010027727123988526871909418972708125334836838482752091840826776489505493485421021538729408050065738891249460178070845728186754308323158204782251803423636739101875113571931202864974263453253223743979210237156360418191738997173873637570093454582669085126223404126580223652468851007415768507070244601103750663281492483699530844300064039580908811444288861407671266825459433014063815033945866432921081190951626220407592030583600675321330190385502958183347038930268315114868764671588138601646058989805340574740969946792161870911040396281893559569922391268090134074267772138636932349065272085888081205822201197446370266495247077223458131452086214547460307467659786281217086791477601572920009587192149514389966003594000864528039756333787196111086551968019778095683554602106933644191252164635986942708162313719039857269437744920616186249051653549766864669437830652681481019398146055712897959868104704603360082898414637792455857297322351122241788460336514549513606414409767219359835645846669715516482778959045682416598735624923749898649295054558247370184166772225764694202741747059796219932576893139131839769334401589419261137073010175070944576136666039568737434813119584130917215033915680346016602718245461320105409314406325188551022989165790110400464435054553103857432184708626477100470330937407141542289309602415483106007072039826830314968018394748605016519066468817331020608837299208853727656898656748337735130643836161702967331085109809762851125437223676737003536029669515393072424315912956253501288879156871311146884611643871437679371662793603107768585963192462803779708505287070638957813105383425407379353932622639903886769273928032862183538238540829639639576176179657094477969606383828894150724047731241043299355431537582816562497547602591365362337711052205655479034202377206365245414408397614060674417081753096659522056220138447684491811196743728859220605658868749636199885828695589039964232714894946152772080930246109992092138186525894712305763266828517353509306841453814205220510983259867101836185620659946751781817966475447967417970070754121450563212713483357542988597003185984357077634716643265284835207424862422089109235537690096322716406553088704844895273034623522766919380428857051703101050245934672754409002523463285977817680452103480637402257310166709150270639475988385089403031474450390995039151023916407268649164585321602145858628905516776936740083009529474169073920090374466103115268925753252846151005296114219459032028265957024932016084610578491417550830480058847343050193338114369181010175739165806175579728494711094248171532569328374668550950863234726502486091862262794759092420092986179425430042192841018017765037532389523463662607016940332615865405714215293854162500904181260325440212690496347858274414755252500958831108700531615744452310144264103948036080826107573189702327020374187209246904502472286506878886307187084929485559406536803974238975717283143058184102647400671787746526067749127352626286977796716504206015654554111872950759464233412831908906186473129219109543193166794174769151516756906756456139352902885676858090249407022719921042130604233440061317731524209086176589557724539920135781412447238277745333868430012638453961331756009417513705102806574595996358965236821088978550700607184022506010134426083033693623140217201836581003313569262629966039254327548674894934011241544922642526910121611062529424158593563420935799373459052588328319723798600266729362249674760227729474478534822961299150820039443645842282337221716931594625440380749258708722658611589448940524665470263733620760583038046385510510644404920599669944667397338798847944458917916875900898965176572906535043015531892654015504774667996584532819327649013381388376529697156096065464945865536034895846361251420836492203197773194599803067391098019446642010204815419973798126397044306147468075664108688529860589664309232842769067311115330514163282973108579082756644041127232009396075533333600853177656205903327197582390847221892956666483145323877440440407601514775465586746681783928425758834743686784910826710973258685650085427649985181503158375256432274960044058829643548888190913352306477244815135510972507677209406544826915178312477739673107302508642196137151805686035511356933552962209167953938127113846283762750112409702539129589599690215513388312845045545540615821797222390735441778182343232255993190405270831799982407751338143753952759796297097546229260252533541230937956408208061296663829166638609034972520885347470313397601811149341619149854357109918234138161454198540404910904386607978771999201164609973446239789398977886698124725213486094340701352979232264965908123796962441996988703905229035070798195575666610435203192927936608390944446403736637319962822915597311491078818691554995511321273981569257785046655422088738881987211024911965969965123369468993488926484812851192228129568011971765283188440097892893300850247761967342019299814316092360546787034645092197926723100245121149764466101271064051485668534933394014887209269959276312212479166927686988638895270749817034250358052261602952120980245063145558400759618733511994093936562895609709659044447808566651517080267379031402392862940553834058893848022119590981477346061631548942255925540053023424168410886526388689374935514790904499726753296269953880000659415807621488388144249334227813803236356601302154805638369959842766198088599503399087624614209846776231178745708085719879118776658248383659845560908373465426511841067215136118353421536848019495890095675615965542499102607068802148194015063184932715097216631130201569115207155231216941172063640073773435647222321408825564718247843770546713188933297426343980425629134273149006312032933613593416882777412713773875366313283689603382962499955339627523229605533441992521579893436248047071506752081509765227328382030645996789722805546370418371148335493612159903745346272375659971983105550150826269436157276246710852704695828832648827919043543322975144921395542147850128492047866428094568743273730215466357965727682293371129615196210526416155502392040235302182942997062519566731714224153571157947927725569484859034930073104737684561242175971371154244212736484857306871375528497752875302678203811325965456528891015233198268792600600788568949657461047908834399436170369877183233291450895336715056929411996238259344017850261855971867348702288007025823510595772528808686216936103843349861741374940602785050998279518497475468844019760893146170483583902056968878283539083837148482253252464726904180702049095634673382529803397311478786787514317580471129663606086560863674067464332191700353636168721252344011982082874739234665402030613571769493924145730108343539798746197346035774141072287261270679331037740613319955971687937921823415255384144935683660919639194198942004124458839031384717881445792570782454389059990158082694207862396066349956043763303535555598245665663444984472015964434520255481175226404030404653851121843232516483837805689049751363217307778449390931634276379432705287899734602769717630165593405151725005499176372486360524056680065227447702958615519304021386015548559277200704136175131490263771247792662627781250433588852666168816961693664110896358652554679940152280872704020511087272738455033195601814474976124355514502180055377945421086208070932033664506283491142284225793806497952012710694481643911705150960997481749963116891600439684475360037002958545219468299368945506835444881071737409766775858483620322167512768415755427473739093508079829381795272022688646508416781691953124310571850966443375910248438608230695242970607642948540905665403814190588980347901721565613925954078294606705053864241204365053479973661699593487378472951287363507496654279873708848362620896765031252180376955876138539047771947692256480299118006092553344852029958752133520602077597637240580295599040836381212844540663159505566046524753129734978867800785077779404053813701620176805667665442654041326140357300363489553527179878481009190796298586779844063983962622878139676751165764740984043335505759473533023419281193387557727255625638122893972797934899165325609832080427202353996929495678641714724401415324075313926991390178234951431202985990411952676820489120334433519703139938617612025140469259700141573331941762594903382764803188676242957329363887159592787876296631946262549493179031115691140935682146954231891178724275016801204374217563646160369218106076401882579672391575832730892954039327409347376723756751482810782805134229902960693212718767186468261069604365836316348813130128664043066337467402634436968208217638982641829203790220002051221045041309757152254960519193985652308421620113639152110542858780469621837559633827281124409312179781667412769739604361341080335493242125619722880704471253202539915967209992426675196209651505956875298277837441202373310835117917790614716937603853540601310933853992125564262101345893653865421756350384332335102795676334264742187094143723541747903854183599762886751224645244638246258553238067673088863447778331728828875310054304120178706735781192519459738491989256315562272174800472821709418305305808432472601129479634673632901833422921353442141621333007995661576276578584953575166508422233587246005161294118222790790602029427107972303484088378585487622734720555402382399150274953252190681874656006243863287733802471117133422519211729505699611562269651271729674002243138900824475380923728379116939732349277377956567114139819156942213786602144413371169607835191807784468311925899976895288851116863961897113788516090896830381334147714457670817089874957408146277550054055666882947424156056980051177485366340007596296969816314642269591938847429170293867165168233589224129395462147816442074027783298737015131890346365964381262218735335807383756282874328266546838932961776921173188663238585975387792072650270591236566324073487413684681539250704555097894093693443299869429990785578593286682362242910531738257574841712880392943267893472024057739892180018637474471604413845422869690370805461376594450400201474417162690186037760278154191714995624920747873971461106307981606890637935950732156750267447923974817004160525328234160836961465331240422256846227518463800073093576444957400485610483258751355420975931505899717180109181556468638178869631979310511908294634304614965906960065199903070701995986031055528063258033161835856137411620270854310036908702635122342388955525264418132442965840418073424463824816689839295817922614071932952497277312791842436592039123405517364152487918401861542075827662426561544076844437085509136357271841780795951117658893568064166480172331824130895948710633929221566381433390918135935931144378005224979157665557467567505949337443103391464780003924325471565768861155904754194499195616124081893616084190520782673803404474038026159851251773280183323257390492802542077925454725728854658584785697787731093878055138876359492856990320431939215951283788488916618038957062610231383814451491814089841114579381715999986128253365780202601278162395806110511666854624622667352979578621463806097163874132062353840614962974117068739706126473488401787254434391089596933693320720621225746145036194754371318884786595046552309046967151676046959583960416909381422897391435920367602044471891364722245833971442518091334867492721078433180486388970711243669030550918204906127104384840892140612757976781466786977012167494132605316621167157597125386004423559700322302184562520473304447545255163768548503285145333933454498161799158404725601401834941559311376911114364197682874592940369775368063605396007015053141152799450473097676978776451998007447417621433600880549600148923639256453510109216072527195140157232525871799663375830031033977383180751579956558681033577579479736181033124076438064514605536140919773050837845178161369630765545555341189206604634903847479530421898240254601180952466605129823951933904014552151036244178562803263050413951804830738742373430683807850194399905300915228676343273845595692204799584674206236580196099536846501020039233440312785281943903726130675335962652136702443416138518725483370986694298259955400937127531220972582837473989398243826139746760233244286863496304193649985923432701186427096855496412998723340691253407669534664653344781985506513866179611575277317271751177818367236892316611327141724567546612902631463443300414097638608468833809671994928586387979911412172653569709242484516853907105530259963826099974507655929622006677678211239434919833177213397626514431155662876134662255233737411703926308653361805190505967368029879356179255943042972767715671065588084367152767232708973810284568848154235789630497301606671815837701882742077710365199575928079255645079358464773191453719088626544274548424226461210806771619372682215785131022665663171297864333338650084652123184514176974801659252262688956631563043483793308477281663197189439538245338359273607256328009887709148504018456464670374969902631193221225315505585617617988101573917252881109315637996406028884413596513796610311703900816696597894103414900487384754190572967771851867259547017879636990103592683518852476588072286281720246887455809634679003946413168102209653216944915496928690938693365239884318304994434951743136889502769344667609786029741228110771901944188394562863163091173829420891865303741667921179741816501949063192677474034717265842901555135901625480459293250784965169864902317886858793564957299980640131522866148913382639880922748215003070786095828830343189727678475469263878735050609699553396559748143847010209929615393921935179953695172321450576744577508611324090987962804270008092275285283867663586723291306581571498730410346842297182083225995618011896504312158449046686377135634778797112887956646506350301096437653881552381171783150387990264966490117509596487483452843407793966387215188810831549244573476594231719819619695532651886771033736505388046674342846392609354380054511882610304920932901804201682350110940221477331309758582243092369130434107122702742314606768831377704916114499943431860538748618544690360323213535762498622259165899070233248219684050207120306270340104490565988707094028473614678008884706335601016195793888249956928396525500624132276205809399538533084190765892153897205003087474330200053889282378887190307251161817243564908008195527373502814686381038906653805020798524160931135555416122704396820703740721186739286019950226097590026266390340945809644600257370854844119102900772264129928214364299725700615008516850193884221864458220897438321670877761574139860219767206102823426160026915234680489012622104414022935465952340377259713297121163742563219665013216710675089658585590358164850853613874245002942426779764864906812331125742460606642467877109619157442659293437585929374469483251641548320155311457807997858292770444420276726931348858266941015966513390769694505212892933865696890589577385146161828371862473642483313518806571850601185799270729759882982953311545428645968529450360850832011197057662713643661777808132812990957620499810771398175834483456733219657827216140224010352722190059880918835259465095662973501611971026821550502669748991257334082679015183635999667787495496041798153517067039662542789927556065646456631366873426157072188677702042433061380327940243922701799164488261915226566842182749577040104283730000331225201427275137990154524025119339189102293365729495262467201776203138028117102678640801119118241765220123258301633119627061650610104976277133218323154293281180775844802396792641157231965850599456639324771264234488258105488552408516719045888536902471100991789348236919074598581678932381203057485058706333100249175004484897853165249469225872250180783860752445015412618473971390758904164731675683487873817879507914342265577459093275248743326993507227059561885370075424428808219753570829889627492966509518564667746669530286545547179740809182824200923757777532132133151510312570437694869897143239321193182391636165129678745724927624504132487690225225991407042024855550886458675213410299635122449324554480352514434073539299894628444598908351081144419315506993782367916913627709349928257430554913647807923966302781248850300731686103096183774448825636162491494493207908646950220854211784770659147300111923851082244479822071864589014978167006087933318604830078085039820279930481122195443381537764821607623216369298752176758877258915595147613206074598289718615365239108772616896183273914514416837449628302077325683037243381899433758086577510607235617399480370019567555360961342729231732433961991246577395529473879198965640923968383237425802944131836956777008994044716081007703430509815668957911888078112125525454980664992929560601773811247691350507006866607847879991383150748064825866969735566279965622819131620839693526458283569464256729595135120111442768295780210343547185617092425325238996923658745054062305016132228891187902337978643294361366495633220376975551965159100629465155865235492861145989567655301671374659956225817603260283854124917886653032086700376194845440801091766438650349091637665802476010397996324299056022605706935409653118746937775112438313822553715395225481847892235550749220823342246429349604966719646866800883197374063046636790005918633744250677201087407413145539150570089692163245402594250830619615837677258757412983178204268848956376135656894675707782330572932520371563445871103754975754328166764083686799520661075461470300523063920861679407875727691164559916797137379395141044418344725435276647834649258183513165191505657566246830959044696785981780457121664341760301721681102190132047889378462536611354598403308328511082179048484521439974368814061634182583381814193303322251594813676222678085991388102375611320071460485444858088909035095388009461490813872677215525901751129995162130262567510125702581274689471056640828292879555089275900856511385806561265589152000232106250984621734030984464543976374273014362487071326608004442501113638574143321456251618838248407722758131338977029814764387259210258675026326259335607692902251467665686549242068653055872041699619002262291113212973915082691640651556335652812975896924728515819054257688601245647785950802289691122966120229332831931113140408490422674863943721827606865087019676333410573890354771619362656748021870683358553285978697576801955626943124235510695275956831456665011642184690382464284257470272592192252627684835555158236073232530686208545890231425682244972893277804090014519466273960199223322037782020486089947195415713475811020351151164052155544715853376037257878783980276465019160398200032942265538792685602558777977044091873434870099520291713893746236886687354314992380557079197159190686067735634920203428231950423805121010224713062306057332666717455355282602798623952569985584842559469688656360075260379400611904456188148033001386006927114989620181847365715189247715551925770417431416425558444023150662859613999964675232849350824676295843088170159778045947076734092677526716574461580044732966963725696561081078142327361757770939247006623822113873676987484530421893281116376010880829531308077797800675444614407931059215741865932208460775067733255744975248794259892564279148518118089742630035682910414497914466368687643140396683626829451800801256897962508523492460053487901676513106844647524009498232078149346883340832850281720208351610656540933808657773615423135225302846941293796286397320555914018763456846495858397039003230011883938219316921411337808004833473561885954090585870136056142578620410115623856504897475980430790877497970072932081264483351624833714782877650775356024068131390254473988264149845453357004229475311597390469326184601519753163747040917476628214414052500395251861119888398407983782109834238964089402576758693070125581618571948764269228718123812339775849218704628236424600512261699671445854496706680400188778550381571507847791767899950466413738890383435714490704333689228941224733085152397432509089721277273905091881980881278552880003086891184267307370762649362909422694375934463494623309779879257173883380947697100993748962669497422900852903400457543650571657137135099818144197202932594626106653297819086228145884759605800444076282652565741101560422767604485491391436124564044164893859930222120405898440084283502146239489971110271198238456437205063235364072214445235646736261011431555258171887428203760322174305351688027601454792982542100887317042149371121943266710741656332315649999167215575360684863712546273677957198975992402382875820267396434612722410612574099645720106734887076306757718577207172891644715627143877036968229686788550977727659673665473159294183665480347905234865206824564680955443381732747746674270935107679919397919954295032663963600527846730086537737688303481115414531717699714688176395205097973505246616840544190808578593373504234426596142171824052990612842120571692183474075813890669501430678575573009744330302715769575355704831037312948639036667571697919892914099507583809453249527413439458346403057099147849213162468624890732019753627630569550180523500099655916252219622269711598330154014120485527464631862816914703767869707675755362384423946760946890487695811848378427784755482515929821897126350870723659238743291199411180901107156861672852783620719174429484178616647619661836883870743640572089946364410411075981105677130214971554892955548284126295024077202337254186114123198363380765600597378918380444149493090251848937195871825469396596659190327239067721347014616775411198662599974441811136871741557940688317314143129693762328077435319498306983514477191263678586962921446792268633987873553843701648694805735670207966094731672431595600157701662422470917714901897811602741078477288651734802149381772410347280604156325722115569389865712618967306018278032268760763302871308600975181628351196809369697569274669143733996413151184243778542680181827798155630728797986819400668945135773149858836857009530383596969208758012145941354953482481609643812782468389970849578476937179683012051301650373910745450885689007150248524756697348614145177425306204820079782611609852587661002961273068328013404203431717265202871150144536373043766237043641580793792973165906458313085674631732744092117315023835900031184550983705442507109970253891382954288359237147878563882256279121411387328701158104544313374273863977282188664952650371498270439217197411955528823644072614265204908922151087776849927715885387723915518337834546071333117154355044680016465419924996729104466609923592036787923269976246316571577651187603387477825663958887529860388070810881359070155520862921921559029602767927440121611745310330520278593670766432141619025224294996308425991132919114415466690584641698667367606879003358327449205582257887723837426968432099999364486078911177990122698860570771591005652534458988928269535832589283419195049022807685081624282416583258091436056224062849492400522232907261925465857970893255466581391822629332983747882618112825109332889975205655147992105746410059219472938238466483446167588664309529646497565046768748590184167793227426825425451491188872793543236797672838892168019358888478126949522852994954274233464424913467586460225423503724536668955764066979938676339770876077921749104637934024465209228677006531161001415994760268955338487357067428449804765615182343516869851218439050452310865364810269142515207508877866621582801681124626423616685328869113065725268464483204946125347783515641516343727053753993209571712422819974926727966167962855856632511282207064838845929241132048862965437360804834489095802270672142705465586526262589440493715084102072844843913996879578157985451377678244019829761663143663142423679135694328524751474963014468962399414000913594287025124566395035785145242240432081377535881603062695262144723810998573770307697758966294599407599595121854212159490859989632578628188552599361334831758967461188786059513236340007743448697948210712345351233491711246383817567193196629444033425970478314143314174076900032922668798218717190542225877113550133462635450428876753420843290994701394566056833201774140676506441409692546427677315025400031966210308264177941597552936255886546812796424654498353178450014150412288906428933058633823576979127642633610461684686449600747728269762174127862685468821108031488679145305115750477740495575332229335169185614175956467103773851312505404864831676187228557025069056978560144610467301391230897295728032662435170082070156215251177498976836346795797505019322580301520229952148961577356914091740181496928966350881942576132992515757416446914829872675605171255029246089371210699962554932097888659799360892233308398210157011504607421187463778259239112911201317014771944957931601225143966538730061036125807001236446392195659202138349703767064099858942402322245186894195137971303818341790386834812319319574997668832630594412145442263698028468525379192652616658261880290049324208034076001251264859072816970988531234267850426259540299046400461827426947204897269803696510166965078014867067221110293784696865199940884897710516830119738409637826687111094447653344568654492972318710947481514458277551029963975742090745937512979289622165516213812830602605322534938195358308877086625228574004101005965239870629698156567016035186994917034113213185235729455171355041738315451472384630907450228882587435450128590178096808703684082961512601222469666407137651679305893900106390764031683582275815191173862358865905816060411825963287617079537861932772167589082411035831809888454478657217513760876289631331320807669621560145057535436280614954318535981749379549526629231818955814880204826132100378094333443750852011295295955089704234869519937134380185555633514284579862569878571248913633379923781859654869518369430139477857169892334719716332751712954001878217601344496005206663661472120666412868802727427837004956515281423857787875850932157496957280407292128113997962472558601157474337579918037201091902404870778237274227417398029539939053637701350443679227018681986645393190401423223965440721166554336797286536462626224858754878360316444540929439009276711110344077598181624580703223527548660308368104748040262835062657121348547206046185138034801510965712476263143739920353728870067931249712258325805351900496655483742423121918890352655785794886392505888162170121764533195363505439681317217057228246553531755031089796991123091773650083062058978257227259404135632965876217787048630054228113206027028167728181474309755642758302570762396475803409358362525974802669867023483187830210731166216054308424208003972720673718941242284906139734501169080988949063457799766031328235871175967392921556032606401499784519912053209832932962296944315633636062805624623135200705066843905311663658287399356792962063610129719883460333301117687185290437801511067281903006963169041421901007132273231662898173797952763906729991674378352903588706827584946781227707309936731108721741961885499623459732602539592079370005386379876181411177884678807904821398419959248327834662248359018978219355719113029336426276637330149901047512557627113793858075596206425645199957706930939530933369339816887916533341419833876927473140628080439971435563549199583714716059977148124067068484841371151650309653371323014300707236238661166364080603773550682892083208657254232770892119411854084716338440162648602246830144581501023281680286566439711299898364892823639753208649952140804996399965670806251739168372989957604651928515033133177685972249645333348691129192197064711783652555277388837349893191285416209407247965434187059950218468068671173129959905626956211852597842443554533979805890498080933334836526446101691658436724821579387701427816149864388818375189365186080174666226704733350307044698343478725452534139915817823018351148773315566180678052700651572533818505394986616441195019943541546076967384081691184144222048682686724313013816441005170791660891478346103305653816935941525435691526202514038996777046724383262941544068307819843719629403029823251546364520680182706653948412234457286564180163113865697001721496866300479385189952774056501563122879776874090640749609673937694318915368535606914841667530604037842573120704436516947087893187098073072051475583650498137418583265522926866340450687291887688452120709639340818965511447790311799051270546715635984031299817024260301439398587496257885913747484842467945332136279825785219061622470667348182454532873174070506548994231008554258484108494506294305066015190631624251142365386819895471139459668313604112497747143753501529908959812123751224106336883064443429139634905331595328316928805714276746215010233123477625795053806174939835211965376408671863780653998442536408837557464857191481173535722084531171181435196599135834428080927174454940892640311739957442930407014275646508473759936236930806038485809211091805522533956032510432977737830934123546403907082735037607803488786832534294126958229290102190729263759459104721734801750875867840625091632441235154338586946671820140386172483597255432203467098083491778662177594389155004576659794251447354177858375603118610325225675618221083986672139015126076685077387594506841766392255659215065025580211397817046874133476040457098379399563354140063605436267957844066826700930418785717142359234313597775764504256499122024084869509808663725068558598902253065461708824286272986943606347641986853203430984085802948901983753600940399903643331797468428303383874719326728525207467449639840502394846683015468930821413895120541510030853354459797140952494326782832646954038112571058245017710908895115704819056150712522009123112306305457197650043659416231534748839615382262426821392794019350346518266926936601852556617891980643606307268369835882179776073569061861039440681954311087503883180641188414392770452858389902195044771952627691426072150404894459273392785465072975937554171888846283714825515698164367672490948750351002484183462653038403430740704754856486635015763687404539292242808351834830471012989044867265342502249106483606566970957533804578063250295055164376837371471050557682429936217737790282566362793855177936689597656560585578766420654749570021664730359528165469947661734018105886193378709009002033840951679357662818516203573398116054136839163609891779229146061230524829393519050121232495498895993100674562398166551449207044213970826821027738499976172172613816156535409241376777259681128899995322538956478007705558677075287682632964496600795012399024777988771490704019293489662059283250123104849677143683804823245921984934402341733708151107638257173839037367455750330086498561087756599168863531619882756081745548507875401282607688358726995196853225286584384493803407260029141540074966128295449183544219836954917810641053920735047783267294142730137317319412869720303676255641179775020697975813452146637797860932453592203595743785752970792859003412780615255902089590156423328189760340993745373179242192635736658754635914349659738571724980089256170631298794870588166205934794481881446358246541969421864482476825706274816548049315869315053184065499303087458048717521850281862700289357953007487598946624122971260920803422717941217197566566082444984787673381335123784250807188741647982040112323845924302026752116670516074917542098108141848738363412174745995225925964275725588358499531834486716424303380816778116308092679011360993946307757675227254077140281104207510886308938990170508246040426993101093352160382350012402889245360562734633238098032953980055897284170269892742088466824070513838084507718565634257781455482036266986498177557778967001568377226773053628691951367386879333246481914100234897333857372546124529054632557199015414064104766885325679442632998091231043558126468252221016223261838910115082196141622432011977133644743738283934573438834866159302515456614188079477189878086124406262561610100296308904394939575541724167947321124968352376238429679119596505659900870914382786089129614426838421060530811311067670856845939778839307330381621848612280359357388590532297346456170013927825869544901116491409087253029253251863010908600102647821391668406593755601695652747298033992975616120830639973957161182758119743311876790946110136363577108386495286948471860103003283477011751318606387226870513382102436746277072671052566895896898782504560116815671113048165299091623559342978481055288342849441578013792875312029258025217443091971830528238582246516627490662924369586324673855905731825230166076290287176991882611184834514522346753741376468019024786535004383231732434840840826305182827027086879768798181194294597716035996482259554230408452617965483246710965954865023335458431828237529344168374702130941895225040983854410395865949835625596086047390910252366176254949712536911926425026936612100559691363543676143533439333894956898597490679202767100438481232451518134850944902535484880648528742989684527128770180762856501430075356484136645610505329386857502717993150596038219613080458698578913431053208787954082248075566901616486212382032882829998558303163116459953799668963622971369170800100434022892195619570031285831826151726515573413232962247302094273869982194484022546805863479235663398850155299338172825212284927459038284724759811899094674269556236775151782545572389641453856901225498464410714383207754424616556011643412926676803898940433999553437252895973083670405790892784715612833164435479565534852241826159405978773230382745611268503529588712673200116282408520954266455352550866160115288623248549235580317820350420675216739771172010738469486913155267658319839948435245986694728147060922654237751609968932689311693752781338619652924765265005724857523876207755162071116364981662222319931701964298146186246013550608279850993128134366167188490242317601302769206442582888309731819438179314401047961519730675916651801081363542501849170151530635840833385327573132234936508027560946857655371343818078189740083743119744902235664691748593186996671201063220273875373291935848450197918416395606702090993393332902407962853963847291809538031796591504512525049177641003334135687442395256664297051243128463003252516185786604563236570716247326004458623702048223321846242624035615712070805565513372326844429513867301799231182731575300928412559231585210242449075859456206389782805821786692767940479825903802393737544172651668398769164052179961193913403696523676811853348181529570259988717504440363567129805776974068259957976592185413025809853740534363496247629261040543686845910278798174241035002378927069591542770764595476267695147858222918878773186968890307078195709442665626433986545702963703321538375227429088049888605361760964794245232905264745208533642988930313394279680999226947716034773816098913591376386529910774861576580647038063618579333680315288560305098937398983105724254434398583806660258220934597556307150321557961052442975224215370259458237324344616517999691215190110508967757598568705969081486669775868131630454581441624966482840188610066333960140636196348947517592148115971831642293850925516906893350847429470509504204865907479375212572736317033861812484876570813890851974280112100262986455128054945240878891823617511123244551949158261007807147825733706341277697307306907317314897694689723993120852829181324469108092829019662840453230695336351273554473406148543850676772297893837854069379486047607101189372491872639061508187155964307759798162730181240963018357914369704918848085779605788607678388083165701251655938115816222629565858534976992412107858250045771810201318826258622806289488191955911672643743732825135583024991374758727932904165202091450488139426105473678140459860764077408465313762020601724926488096739872789414384932851408517546442823137496385951138037184226629542485447575750746223937738296269342497922329762000221528486432339851837783368746830472896019149592996008235963415701923151885403477142109550863035655856021305963773234693824066570904695958548968573456920588681200923133871314406880132149799911960047075020826048251050983836047921277098804740602552969159056657374352129627108124124518185181809230721197857565117197847244897436449893951827122962762454002819322137713374287628486120712164909635340736981395392048850461479772576604406911180682809513793821016226314432255152593626243858722669957170695450923095719167542047254134144416095835118430839513373793675502892840831053160717703738299263024122476318820323852578990819745961122047537582750371057833131666959724348817684009164345200232183873540774616757408528833956680705556725630704656773941378723252538122585902196107315739659719531341015133274810069933569999642347066112498369180868671971719478590536270415950258625443725720265528299105570889114284309580866021741278755534505939684137436084977138395204726831675430296515963210446255012384828437387813781255810758475973096508048843123594698244613449000830679893500655952216827700234223353612143175925822652448414862577568134915133062308814251364473893438915988385867910887614024227161338686430777403143393709233936885872766380305299280085203380947997875593058599565841936092953038589296027054698658958637335732636505484481489899446700301310746136452094647353611771847523332448546205088096300122733310600085632745275051706910164919270671901734912828529186973127026241157723390487977554924513073594064949129773896126071931397769562911910153594028628754679792806156093526937156926616467603334141921728096232426332939713045708409628438640543386454956378548972857219061203718136057996515554176509327976478652962472138507238983619442857633143406315991965858823521542609739421397569852015180769127600533675188034055132969550387982306560563053842222850592496260190574396546369579434105115944886924937339246316532819432549887497199841973260736501033991465447896662988191383094366335311211426391542490215862674387950218153265486453198181797691834731889415870464236556574618101730877709577085370962217875232343017700304659058241087891308951760413242221828640848944897360142460794984340120572092531906038578546567422306010572574027642235019868403507890021236827301424392295677632107943426153198724623935473927162068508713340066737703193183369582040310013561964059880510677980515594130620344164894009095770358882936212043445775701164021648652387181381630835906860478090896580595479078371976918396397739955368153094266415782527620790551005953927036712063744721593255835061246949453083155660047096103182546506557812052749552627678705792148962391427808227353615597197352371974882120781270956586858272909588003851317825328930025903045685028737683778270478951826279004101563236839482483892634701377534256676431430665087720234579570053520190433757489621364770768060206147336853970239880053983892791383207083564149153508308010572384878392568357804845374457084017107435525394883772151692638017833057324417604051388467172617598439856246366980833761900502786088351185315018953046141283387541612980319671862718731537882749136311153307238388411929559792551619279118415246576801049942830456034833850338422573939805393733175412731106902877817562621294311198573792576043655955597249901123995967459128268863278134017138018876449821452997204923465144764972247540949248806416593012479167117024461456821414870577629508964815458243130478523815136268499113994260194233523804061911898882727600019210313248606902560836463254098444838778186938423263882898043172680244764570034467541324396251020003176254453730639390846692167793931548169663006476286355766558451687325156368154386909900355761871751744405898213481921103141056023325049422256885714308124529478772014901273540906677177849973577644094450348620204362460931271137351777832560140474057827405359799114993916393181210437330183502609721069829349830928723405792087979880107866845062672460346516046905111114870843933459291882073541342249201002530728877308715623050190462496610632007515388887709647207478131632022082828920076679462074475088156583993129105839152394484011138100341867171324579017948840751883182196850078695774449065656847093381437623144059559420784409593867000785726830878910057829433997874019096232818938132962089116519189260581769589410488962727685923982661514898032109248903782547387415345503959575584233467440845601101730153523156146121196187314095333666066008419564370654474846710533203932025894690791643827660735888101511676228862631095136216757406741998802422284719568520039966886370246807712576471000723440758312210584071470530965144637142057242691677079985921172031242966651963450318339742050397141789861852798336420106805383294603919294415260932740007840672604244958546863122208636087765534611361671900993593500917845638386729946179668140870112328696061753820039914252435687053228671302467381841958572305850111309941496419946836924729665473579579982016197430013933411006150820160424924892934548299489482031395750505820913136660119151484729483573305498714480762328746592358092347631030993066843462151645495721965299164314486441128994808610471268720668046794669111570349508102617237967250588144561865678751390313550054772251750756550822431641877450185930104872587832542765349574944351400918932557302198619897913650880461302824917754341256942516980211941249819530767999047770383850617812603467630824730799456908836252981289218942751437952407336330743773506268894073949472413598060074361457307266682630486229170555411978814225727588647677500975845004944562843504703301441837231135442557497232487390775861631549470388522388500506570177497338018506418712741404309890547436131943318701077558489439433037433389357105690887617209586171299817490298484954393148416717298405253133158741749684277978699614198075108818246611278938256450821330441748866615587629219769249141369216772278773096123345667660203193337713630776737958434613737243764484591775290372087708477098167846762186015650191839541632804873327644188120818461136979542238862879729714738664508032577053689095861743655759196414059365474862433971487744236201500776575286361254604010400080012969788955911138458071151288691862235606543076875002595262936595948189221668912243564914972935316502546648141955339337286409694440883155111125192232743286282247268863647665304433351958154376869481731913316734566399897507571586306358368813746375248030344556432965121221165392427927512709408529963959869672926718325946234090298544969707563182921803696122146520329711116188960982792703946933856867779778027518490636434133764956692150532919117686529231347273166307820316085889580226063668776911639691284477031849017579398967680460194309566106304740254289355595448262081938239377334841516434393091982025360089352332159877372357670224441542549951164534301370259045353739810181117557183215614863585181662835429434762758819628815518860512137745696619149221121014614351151095070176883410575452176566295929224341054388239803022826815266603788511857657473712045719190742120094752477918777543443642658157334753022554646225624634129231686135385324677418267045803254510576153470196902420630181476887484704329899211670651497239867418535365481879967937890750071531964345319558659629433907528719253091456563690548329242844562975343083419068832911075076486831438395876178717170112489027163605396466332476085836667977599198650690340080703099165524171733954753130013228413039830836235690927602802366714558229251821395066866090866444235819988462658773119322604186255752411675119721668426958156511462701557972752137106834705601120930093469543553731790655893499430970762033741795876861299535935790378197111498595545611011063044967421736059422597267359648405032425116854491528612218858204610786778162652627185506576322777611531898085988117006521978412576177574662655482128120628265394455259425753133759394624737582838306767626370204576955738690181393053089826269391416613357948733646980709551585181349066358171976335847519581228800353321455588276148145538039294564141204197019920826924846992932362669672281457833282528120677928050882531150144506747970306295942942155579453283946870945762520982243957820641076776477484942835285432461542607828504057550133284515864206830342165374371553304976676651888563807320520331717402819867056390918880418086226945490869910491720483933153376390544304442024291134015601723770524294914768761803590911183342698372177779375735912504588595890051577585387613885413610416980032097546204749053076279412339202799691853673433718147705536661479317883078958031164449307015338093864750427139803199220052449498636284601912812582081349051243035870148152502366771246806994203886629534968453346972820273396731031048664430019899980874782828694130305186939769598579114078921565168819324758977117816531489360187834390711596678496863177053263170867760946117370566779413934919680176407169840635089390568481886645983421743251207531821452998320333356611391419850659935005542046039034039585110694390688658675176374523833822464537727508829180852740929823733352121387651737009717416368662380842662354935695221805387511242120714032661537952850591342837632315212756484868873122226728678154007211602589028214743286010029357436450107030894449216833126290631681527196255163869246035290282532362128327403732057574151953966197481098600009370184211222617100176176821519071559837774987874478938791498566279110011453740105820688743208423893015299952745137453802240986489232718407386227286634705255166841096650639769679027331686833290859570290869296993105453553509797344841104791228279662919435269392387930447304715177906562843602034532545059073654650139489449127840713929310732211382422799009171378751417611781077243122216849739983957036569580900192921767921936509657961702240301542661445800259024264733892769069260458612862653324703297319952388692358281556160525896481172115866965358566769813670340906778949734303171131390794007443713306837746906093306813489191781346285241245960988969390304395098864238275698425396971795934981229510953511316498658099537259072441392263616729519655899149919648551910723132110493625757321740000022174470723984699784797482701507453038802222102269082352483902069999077080693847319992401507764863948756982704645192882880846868498856779193596728982800632070770267688936907405418530572224167164314773672944595888056034953703551032175126654586907603793772658257418709591818174756729436726152445700654776621581328616378046536486227836133553263923301789765367864492833366226538924536583479960442947611302483610961763152075278924929184420947087009923386063513587018639924177351898232917293981236120098214763051886545202650307526904382750123618525394559230457106900600035603527482187426527180869335884496315595959310044675376783461139200237593521080893050599602718169242231797188989439148408552692245930007718088899683306830701981171466522381282693465765326045200049337278814452123474695864734760853678362860686225985260395757325612646884401269544071645322586752825959819219910886935894043917991119974979612324649884905407561174700562752013988372106588037483368248510463236691058045036559302351216376662112561831598528634342403204564164191550534826422311917256800606788085642714356425689440952468866801709030074138544589902691706139433530091574486123028333013803081955825176373198513021121941665772013020005194905155450298421023324092206231875296486750892713971135523411952556782503161419159653376219165046388074044765478739996975793885444831598513359983243155135421379803063988888246259472376202722129515806227086797189796814995208188460054535928321294594095002145452716713737931601105190497149301089217363357121431488278836026561482703788363358812512798726541937646545966482650414182318396678199434140735382079606855175809803237601570126793423678825985934381286932675678778792229050257793700910106730200142725323283392082990078058028922899225859866104155203616434650487519681882404429683320238648911729568894220380621866067517027079000333353382745569742723446408047945017711720376312772963059806866960885435054755241276581343531148154938483835792584322630732429505477385004102601367373860012700544802976062237443925827419535673340651730656551330637100471486225318739257060544792519359951910540141138376411526373814220859045448795916176468483484271304766583890010210346075712984814820069984944541503912207775162667917946648487397611418881725181544607113085883398128216747557336879282080791269870451335296298070958476639773429671993214945923670014730659548364787219785691021767550779976761963563818558819893378299427105220048676219130804514949466857681759094412083738337275711332204139829508582850912156428951338658121942543964438488936172331183102355538155215607194568881687010994189814430911718795212855289831256130109738889730201323383574073730006252133776793338112523168140349348645702002177512003764167648073291013565126510237936735656955435592660842434320652363905108696361043991236440759643575278206126923224968421871828820483629095688776964233193453678207200880399903628951736873695052524515375267129628144782728734964446049419116827360551871804339967069258975665111107977796846148125004976874288631016602185836947383271137307899286172178911576928823176565014559630342967887467813272984912159814966418637512883645749959061133347983208190194627411044676306937591839239931814084263600656750486245361642426535063093625861444585767105703688862483848264367344169880829701391581421788625194822884762627030049559025218055484042979789773676042671438646866219522576322098304799472237970770563957447846589278738344450421675416346760060589800589115805131942273800994998693528454841535325071999262985156868871956882993242239534525450193557200686834696463005228251880378758842070186695375653735305203541751546854064141147268090966991775037509608052019927827042942585630320934731120297983949792602901790638400490588333709452460024972042695959081233978764420383840815527792989885263112141483138877275345764213530923940984591158530195804794103000076026828302392245356995991661446788076729384902010857378933144017913031045333475151387019379997342221581211556620320974744052273729853934530852697912782351833270971702919049923273641530433450680581578444021810945978393899560361780789842731178349829829568153911927052041028088642633021114911284318511530142723908872640118770521467817222430397503287014310282020772450979184743242104475522051653918297615377343589024623379492739116754290013564060276373601982079680661021007535452512574966520438736565528857268357915684487588044798413597084695587467467081525290602703809112868882341638623558457341695400278903896119934787912296275934198514745886323960692102337370333211299927881793166882915515100456135994454326827439001491317271273435217870370547376479856328371725530862604814496136189984833146657439665746547475852158251629684395278392979403410420012072136132414918017280716142136828120550306265018533333329700590290142459850365209332345288667705277905900755969001612959921711767544904468239177054836237895715855010764000047183984330824346921712490305528888564619601038313829105749448211495223187028900897894128767011796744948293131956139925428612487053932195081934363631455113597905356530528370292765335830244454725127452918023956479987303238639628118164613241096973364584569062913137242761484290681401374538738183991722048475082190373473705361545313381523709192041106976641533899178468804275570241846709702968587896344668803867227003815280437116181918988752440426969869354621972522387934902587738172263148491559345358315882235077401417703565444561505937186273030255667365758380736332754561947062291425886111013965469919766824732221017513065183413985011824545096983912075748075209259358144513470077031254446521265932274054664915731597490063829209210825994780841652909105211907150749800988474509384574944133291944714674505851113060089162564976308406118420136713583385753415780108784783098996059235969626086815862255358850253787339208385263724805740299779894408861012256611942568722478286570798737548243670553868518707285009964119472011888982275595252035580811009599746174221265478203918494455092169482290761996699874354209622225503984991221066254609701206593366552130230018403278378505195329111874724437441164219203935414144159666727110453018686669164135138499829338055799393833676130446195691292551206127770062099957255654407796950325872758552474581713395129641251225139531198130554704930440290037024179818143855644373892250042824480517167927495829355557783399815222621561589139940832169448254011502571334754458002509903237885602139956367921452335566856958772307326777800690553054026238806550193865264674431589926018061671981533897366279172938499857239992839488022059770602560259694985310331960377529768227353142233783350827715605848880186234963566950497689519107588664016862841585605710665147656271336625872452878067250779339426147722088102786401752482057014773413171691423344749520265313082743292615349736979609693688047264390582854435756963263613250777098846147786942856009601815045048109547743107221100223895870880611504787917094271587968368929581076936531843448844055974122513243780095002385417645488327068734177023168707164009549194709813193894868528857130319251013233867498825176309186621319154447249965893374032895588291436101760794821908710510013994849934264305867972173125267549666874771030615936689979700085008443970492227383140632928968175667516943770468564593079550594235758213909274708360467192772536333384480703879298183082527860225855929892804384215446150316594321739483295675667003313063241259397116452603002118707256562276927482083612604448813006167546255739490026752876558468947708839515275967339075920054792331648546946212041405120743116376906184618958484282608800273154858866531314422511814594772009808228566722065072958688368649384962769138155225013267989021807950402283150833849230737606244993464527177150067126276104270791240806087543034311582902964029995944909446598050384812103702085490466454103198520582737422517128991404747499956517803445380462695505478081620093038574669404124996219061692692441569657461364673703876557513654911775505790803477134254133012498524433978665234282475719398715566704427311657336784365871609197189093006898455348872046960035367274758327370714293498690703398879050250046122696458396534046538129650585416736320573664380435551509749777777679871112564521933299461412518569070096060920672338568327492147779173407777660873787912210276355753331080673251348921530220732012816206600343398900991372861905262915882016835374468531355821596627570330744494812170265851547731934753860163005641426353165155355545057682261200423116023982668515744975249131335529574265649875671306448023949982084629803858015162752866170161358291763426469858097202474235817471119289361072810234132557233688520685763895320203663775361459599837753877266630012941093475335889427554197174532805984114325700172990708504018813959695023233216750102177170164883890103710564048367231979561816663267089107327153738517689150088797162483151032506088667996168569898193313717822173707348602930235793723997571986236275769531821369847040992183890584523422152165243897550156841481588332211570160173646343019411225495372768614417156161923786218251446023199749127190723956525757242329444584331709545809184922875669525466052762732295018619344450123471986913030467584435273773035222805124993354153463393072327953839306530069838403465319712224377641118661874894317651077280161893972532063372266919565091453924413411440200368498265122582634449797976302699032948515703026670041878319308522073494682126638762374551046356245310929067744192153437115675044715125973605369007760433273960590313105524827926034470859206934064165447912955708267931337385827076971841844835426857513450296298871958273093745804704373781785718387743123331783804363381978752855334172451547137825672840546689265171941068353913671784725255163467714426445587143496667916603458786660543880503401815282858929126412015658795230347537423255225233177412204377954125659999486846064391572765497394633402465387376865429495055316054691613047590046158022001334389050272885649610275433565370155097650425319886867050021538992808459828402364029756625572893592651371984534723730061045369165075027703487923157118013897789978971325335291514484926339967314998848922443691790692405724385606752702353574599168923296032162908525379396110723239859438065981924447566011347332486300021909953763635243358709295378620844236853607968106064621921821053443123122190786354430447363357178799629279554584702188020164033166565093820016608646471427328556210682625537768877230551197271444476634281098175955615910927599668157122253716045973030494693349572745525745274522331568573296904410920150166910789107902957806592892082994877302502576409988006171356129752952691919907178676304253581488454323738299607921877671456265536530832427944068538651470297692078305677043257947154054085596682878881990972530286039501313109638537752062624331052336358324517624566385344048770129425907106909801386331294659888142767327862849167581883822660256754197363579244938383697152693323545406827787126679311697671349023940106454514084668541576763249180307960027409170420520301278691820849766522249521395035355839059923794345179994964352585349554269042905928796976838999535430567661241335523100394346177241225161577895001456355633107900579982510398088904003430539447787859311721470977248993683245602951885731079988012945383489281048868119764282503890293267240384846318458807898951847033093335919847689396523543435027449580796345828580830300977690450587676718738026840622034088136942301435331141766610668758868853226093689184036474262036800962049382233140222841486309714088588656968131653427709890569038169519097649792059610866816464024536527126541570051694328855004193518139584676985667651663498617796401005508852317095404789088041195646157492084664994844164190874355830971211211430874242293917460003671874065780988000624384383155466717802039780100157916861361301959027058118878669828547352864110287116070300454399508892049461521103042161955084675914858607239381288935160165811722171745810248855897282548823513301259129948963875841524558218152761124150719209492566981332616027836878862330359289529267588453948725865626894993146743695825668517083461842782225471338186948903890648524350770517253244041515889186459710666292655318209752580444396323063745922795646835140734039995624428907217993737546008464821910396725971355025606253516614965195819887571349410083475312904449880538906284680944966048325171118320523643028416037374539328451311376295836469146883063410409892953430478650238328210657351259295499042204867458591782200816802867778459154472860687042423084601685056091196764768297962141165937976363815656546385150711652262252900485983716492787843989792985095792738525791613149781506807135339667893377194458558734481928566501188854593685557498950249382293970161176626739055073788540231914289447341647439018896662925532149184828341446536265753279134286749930281010420871176213096500967506928036201821396321457590964322068454389064975290876567526838616575774149004758684734979145658055319824238440464323833993653873808675932020020232573347675334653170593161378870691215732180540442869278419880339815510008007160208579124299931421425806440807750093801313226575845610541846802283874170384987142735377271211078638571713479929220327016654033641411515857198132095423710002758126856700534330149027367519614750343095481506305353740698897074252409622832323798439362547792482125957517612763686402575659698875027801811696768859455592405740398885432169364106710445070727750058414634770791842460301155174944195665432256212158054490597972479990964143992414835665642393041362641279504491491937795667707008934583799023083210816714639855127286522355139517508550363205978058524359189022285097024603127264583190690759075857793711123198160774078636859342130685367842488829906739128960720312465868732427687009972939017932597698664628004217725938395752091064409874933633190832198699303441075823653560752873284365153046494748740413841318852976060796738370005572949907238393091489762804417810981369288338438557814363780994422340858233700503012804065580085109280991765025535348357897940313041126181153603089018130035860091239623817833222794594934436785130781111084791713487397925325782672631276557711303433332613990429850090728413777002402033581513274519512111802469404126655855620234048496130872338506883642964606668923317684426213208026486411625246314261582038574594956938197470745418962070257933548411329270612217858716419278529451179762308262591376476796639575150419189109884036733954457558460893526558731808957997465887306310539319201631026477908447550761765591455775619764872418268449408300792473191206456125002195992808058036626628814236020376460331819604300756036430454856854027841171264995215482035703367372933022071383194170667150637007137118359481844446409816712995576853155491881069033201783052394645239380055766310138888720277352908598776743866079790089946601059397876531043819270899688938175019805055511477897218226856191220639413444139046691962668129635393572968044789043698248372842489711384994987260993521300168365966680460697516955819546004551130367898988111743481096473500544656927146836049082248340092259447091874657329705408398747664001589515466038098393974080617253044271418428689013843149644863453320342958251755106095328739426083408097500622580982184364718656954108457636313509511601129473393708667443876715684337219703452491827387694394651573558029904910166752336016140707867432029723288744737196077460419941816626139743958889514796703339698051465024977066223495009963313371652537941143723997966056233130100148802088011177798076567119408050414486752771865464708270601545228770256699830779030722977575776259240152389412190286685526149085524044249326705518138435017210706145682742495340868284119419767238655741171632149974855504812526434587315171997457197737775216790194121219032943680277992085173097370805787249900989250970544358715209261968932520076567346120958022240416226674464913593200648691134812004098529347286917339394217895704651823401330742443236314321180502215321007157337221594406530850852064332073838738018005858449072346203696685900474149171583878135454920733937933257198278049606301541968813551952722972395450335315420695928387298870636599756631379263835416202171887799633121814056709552817360608590368289017239707225206027597957062306758395131496332478295321659615831454929375563925759837695290830150399832672039157139333516552761702453282432770183683250664441511788104441535326785015251966779187876980245069888054602019401846647557780659370381670527828597631092724634347320292305424139262784453134973269191022408948740560165468192413819091600108196911093313096396114906239770640074774249591110885356951235153329911263011886088874142420680754518860019086716218373423260278125204390992573423448087209607071356201235719250398388884550003771310486723470547770335925882505204066857817373518353427492979188181718028273530138121221215712443694280029826317714160495871595199990101911278287197144557832816095167889952077777693732377321461576161725084899536468273483258146120090681782917456590518293085028407269541838738743490317514680890543099375899495798587942112904264900005094568043105353888685305318580219144675751866604266159337427509583111393791635541567660774785299301253234379528165649293437462686379300777721938601447005283972823264495228718006514120557611513788698927674582262700458230679470312097461476251785003714499314113269541101928941735784054738139834489502932927625219032778034728315077845198201960861847767260547942078907027293506286496460693136738264802565992876651274207751487459173397318462416974363879482384881173169527955829981779247231985104781396023882824869523686461876199352770682984208120658418707223514370908445532399115748204050459629751810749573647488603578529273239178766849315100222917716342764510139831226223460798940699115046969828576536649154860607330148914170797292785426828110179999024280018386753333416443594391591489066846091479686916826640259393011677843553465552523432780539414225320599290082935995555921350227078557906268714020919672843091274416964641106235839664318697255503923811625620404687053292247092203022164890221007292684356936365185041186689378193884056542793281349022657895576614292236068320268962680336208386997640424690036987307301287412448240450906611024461446217893366164691018080494345732601563977603206815666989049098736068746603574734102112118436048541456345628870165464307272828243303307581882771476407764140057079493227921460794390304824323107097084592555388062395981449960902408419985268319975720151378380895565997984340470767109164807916519176030483938029028821448981925492503546547890219654838292056380868455221736722019615781900702226252321884034670438582698232722943480714907499307273846633357980413337920797567585538785840018607018526898542949561476983031933160328567284979857266309257534746936684088283617372283911711200273267705095338742189638888209747311965752253280872007189103402021248472166460740707830002539026169618713350484003565862556784915856571598671786868849259198014075036286492724663815982957834361807088085121622141633786784653586345845636223713294297450603712967644886688844136780115203713646064780084899448466788831052984288505340440797894437182369145268693998709723747568274649201045447715555323878453498478045022040198908526564893793475271425321075498380632627517731253298718327574471024158871360494710904820166808587451774539249344005081670960324570719871775944729407390271330572681605833971207557818803028175442664127826596288815720887142718605710067071592351675407730252939423866006732799575693283846469910127788316855139211426685635446869178705491810293002714157825966261113120509815888873400492066993662097442782385821298332361212859130501099525061704636769309414517081518885446042141485948901272205220989972176616505415214208212424111070145746843342636142959958474619205048834061973022956052750218641170397209651569567014073228581084091040857940317265531849056599736511470280809381839021695111599713409499600132361643860363864994388104860300452331853441515990878494785770403067219469197677594842686793337289397848980012945072692109933762879063784413251439444394624487981520476279889527443891128846773849248215420033922928241366235039717280578943875605263416872304065150746192203634886120711402497290916665927771452134585620452220088862873312935795129388519045824565790896351156259046452854344245717184077283529152236853699866530044015306079342697303201380474740957269364159196395411594839426688136150038201655130361341391467289783961325431824394516974298043355003154156165981551348393258525107372135435978523900164249671890574352942459031459805288765527377735149887810075942854853395304883627492372697463583188761569131108650276228121192892207878604650343471688408916038008170579547135228020748676992351280262249131649964582462053068428219784461953149677694928928222412294347891189054592934330630237842405514046700648153275773343168879317863597075147780236752747988054179602487051685504686631988629058598286767063114047514896432854598450527829216643898338710187599298357028751086816635481578628940237322813232383655746305435305591764302073488933956808200655204336967625179734757462172688307522492066646627249031731633181525370561748045646805911952061651599644360879941291836543766681882983031612214244229715678723472740149103920544435076736916168085802048920113925547470054152757970650377024057726527090571135837718247332053195713526212346918663267266246317975155115436117089499166310079443723158416560933770986765271907345648534562403118977834779366262173691993663988281158437999670235089226392447365447143690236968827753810786822724991379981641352241724951403223456573463918903474565925276128701683808007079326226458262581745196510914450309000891924376641269981555999151052408053375492299864641953170290405590124496242844652272436843848628307306391072570380464925622110465788766308626071855226357491981438107137085976672202650848899213760197085228076451486110613285653082628110105332217621276674488714652426655660881588693060475834031887732979923030670211624529887057263811313284091118381122985001645882302487415210975965063099546000940210233579660977002404397021320490916689018749993753333246667592003756297707749986128302527918662539230728524461162099926776147815564223658289299280029160131260332203399173407413710751818708614156648643927262581190647592425314879968755132425279514087119082478081283420999083381774140812919624216574656633532841276074326786301591120980094445791324213990152031495155235553342253664210818591147718353548177224001840977926959996270334356586664115625244156861820827180825639842263236926215408005895243167895072858706422283942610855850481270745525393720559845725536741609708235436645815303779554069599423986192822566018402819377666807623732932150483562142026725356741700381120994279461830099476092164723518702012250502785067748907222501336917236404351796009318621584131592560984345549065381391137061816798601055609481376470633457192607879273262156363280454646665331548132114228054821146225787857899680231144251159836321791281439221089953720819862387102955638553313940793455436742582820467196240485832751843047176760940854497190949873720535977128835388999040435873075725833239579953111591444825223168871153548574183411309777700094949950900340787769875347163048785425504915365835430759792422357534237173221003442282965532351199511781951298117109550635770197730915369880251361772229477497057624353899217148328556362856153976451848841572090103817057317653669317674787942287093841249735812515267468261325173580614226796848745525963739978238502050254572263379149887552209839461838944109414132519661984565773018903228405794396747298891298049280368948695706471446544190566168159318189225055059827330711104342458740760172483340766648443984605443655835039488839984013421090956247593237348820535885843827591162741782117457021860004351863431705870993250909814198996869661260559242088106139865875538184649876757958492958988488212553366895261094538567547942693931381129368487171886610183451126915023297633157892011785162313990621684901676130408742040100381313801747896743432303196918539168663786232699122714194762102933458448385917643164327910949496358242292878179370137825076070293738039029387335651644456044890289591619224600314305275059414094851818794906776723691815920708078983618583226388082338197293160029088783335849656745448797511147391138971651944714866096946687629020137300102523049969249509030778939823681516141670035450619644903002157007924252261277933182051810228908982978098892365660086275118266183857171765246097126269718071534884777676964186396804915663701064133187305470895740765968720863045367279982247462174192449008752373724463340260708523782674798159957163984490991236248615260182577038186059495399767118677365783260682944890659869727339194072084133192740761165324857401672180669331999219406451192831473815113178433881749903277505996784150459328966524960534075476061881762344716068402547736327523153930661088660513215413285934759621086347609499201389388374557179422550645478673731051604815844117829899090539785754098160614762098955432441946987652612873152290933157038604114398398724086348116939128026078558643861037850712889675752130373707653144213675858391310366621760603111629879012829637323721054038379368764627429624110569179901408504344413976239538445847104174876839491722842050135832068700037591624688945134622536419712632246502965986959999643740775616118793706105131227279393733742118678803675298823730127149532589175424212486969212424149762313785862897604346986140739474103207947756882860754713635104992038755736407119581138947828042860653081239797856054064440979247172853665255272818377145045907733760643132732784830905345224388801656209526285310731446780099774094779381574763670257985331452957430155770936687075643591187292780347916452450405885117250953150236493789675210143390059020471615878864460991998648241975385572545171208118110852238910966959203726528281419668805870392033486932985213025064164455859538704729461543139538117969499014943772617790250307767272105747637415877150267028446954688026616846099155844613752616418070942887963915468341864797120905150398994865936437224461041672321446593401480092023888650226486062796553510464055553210679842160960001889810266403336515974209665073733676543489871658316776632016942552002323873325816128723377933447073445593024462425002036970975667950957743537766731000757034466969916154229883041237574362733398226391531524564054890021960766815872700709904724791771962045079405788874385562930054366774256198461032788983087392120165433553059967072830845413021664097082352114368470755238223434401642922410025090225772198690996998222800438751682736522000342130202159331552766954058649892077843861070649172995099986027476286360979503816247431415955393657115652364795979183117772534760808290052412450069058007186655532210696361067462695663575755938867145785603205946351194586431684931944519197297997902892802865229008670181347113256876796502043597948407634175855629968181130383433527544983339250130516789625245497453306104645774247220321886548542350163583176419469935111733538305832471063068907165177895439983479802243688117726850050465553699809294274025887597679764299788153343601888788475998078332517292178432691838018512135184711968693434976733625464466160038181194980052266827079568616608138430535191881605312431203712566321283720147784848594008662224592482094131980757118409921972684792096987898677884400225531662267653465831788290048902976989904461593315374846970366644184028338184810450359524475946248680245533203532939030449187645893914126485159056070083211448183075222298452347252434941056108183627659428553677237986246256506401907126267583202639051616975835554144488044788890301604313979234735906116084824748099359069019481006373741659346603054915610293338570732930164220611960692434329145343734544834609825070171924810463213953322848130576296977084746508014834869416689527894891567045735580057908284196838262597647232156999818471535473592044363554173975986559163771276590532344531970735105935101020083362904519487734824181049296171281444030235686495416673088469943382698403472341997496602129951650298659979650023690983693895069952275157034310100435024104004457330819658372405080720617366437137646554294269002367255549185279502772361510620433855225720651773812483867057956749266631362130318642891206528591614395098173679368793892864141956293490676619974170011408045101909094307239268312605846493429578841548835084352122952362844053240153667041794530249519276076465246766571186507116300330871552086399163148426687606738268342945319165730752246439831353153317871313142337333064923218705784859955110720645389760226043732807978503179053536486850222318104474546388341710114882113407999553282647593515517941601370402590588038689945718351403611630407276260340106656439648761513458564137954609802877952971214650720484167888296214988374500564507819597130503135752215378137039475297250569642566523336027208175352367180431890729721998552423449635877584892027169718422674661352375560196084505965949841584188768633613636149106439369922508969453462638945256397867495405881711714992080356930821140803429629798371843236539644682874151798370425643944410618657951722618212945598260953100762941329896139142888639167362129542099353935769394152305441524954135414555167303090443135718810995065444425900427345894910567152461583087322194905833055680463103288143383031993066514306972362255878052005106253295737790913506152793286311234171340435055522168485703459424372274877684428849599065391539948238708801731244908844994764125484002173137398454008165698530008943928879444739264880102330600908520063264246925343208668221230065373470984271661397197372806934424804140616748129792358672807832204205409190565678249236979872782484259891210007188501489441294468242080277794626404194901779846737083555269534732356489013721239236685519379399010986771025863609127165032672002989564881651601352813704368227799930323881105640990884291348192221049090086697266392630731158084855443187729132488099940637786676143002568215247955210347298530790978942841561420224329149926671123990802523612597550427719283665993625880530079000041195263325911396412751667922737364300298566001202967585981996659492290462757193751116089175713550991833566251249752981949394415317609237585939720052152219460918321286296100634267390388388513285455387604731132474272265448414719106560232435598368321167703206989244176191536691640314890402231502282246422166569801014121318928530855863100881161994075092519999182779278127451910976526536136532793233405880480986209716816794862079290803246271792459239915540176601090006608844819530768291054531603460236137016916664252161905036732454398152894798779410555494510585455404427014495505873320588451475150694531823352413971620788767261295966530256082283771327910953692523384967261957296016010663472705385940301397086473645454963322229919412457984611574930109473302984859200097182958535650413385301337340125379926080656587486810797197983150185576308704144480474211252421945611137303994115361035259027157686094716228281460085725956458449426255813787424777583651116775863528878569405942308777430607283088086198290541021774699678144716211482296989174809890026451755658713633555206875435885207121082675692271116192050764614492001421613509577322206252876301906941730122707546703047748809856386980677632552667778052828590252863373981418947677147281641926717276112984305926852555994945237278998117121193372475283866708571074754873755731100183378989495910702797187315024551530790409816429454763928816179176203198918110361360843028915597332729133778515576568911376398617310151260555400942823825275914685901032506476170579977517297784476447126829681959365497765167849408723953938359609999513736730240226846414353776505928203128250453319235015947454098427411150226336705009856506648754639138029660032326427699690321067321533941364435724993433422929895913969049628479268913548025229746582506880391330695146127218553752404265017606922987519878040270592616496884716218507401942917963289656185462515312506594274568250995584835220076862790436960781291713001517997569949974839030582871024433990814127132543785313410193090269628043738303537477863164168350330937493340523991390127270639927253212230181090414085732206054428109279885094706060493260647834408001424513777318329366739531445935251682573653634426993693031003141518360443568490106817878458378599865973451422817084086550853907248726116714125036305606956045204213472800520549171842338383641956718102400447827991230535199312173574879284995132354704851165968143286889685089518232604258327770533786594693219608542222251004696145619547039032228743224027544120985060465376743988450295717445072775430628984405964537412657335716266018558669709907786818489338958307867413364110318245270715003669968242967862013035609557111103553148131649060781002488950297454591230885784906192858654044138614808332249204752181633231236053170205362248479094024961769898930440948703516406643210180786847480844050317262059502502154748895230702899215860790332141861446962876597714310320454597617968408975249054892537565202308322154500018133071638692538829761126024121689642866387554219861773107829314049500490564078848405154684103786910246546005141246869342836508707999763253654669930827192484429809276557960899515219862446171941579161374245447846107302314424841634521762520308840116847347230269493202474908120638249881355080865315374718026364210323846876239050958990154369576714812964775311192738461432804704161765296657016921930706336685732636924756269566143356598775034227168649469807898359086600813884454347091720556121534015501459155706935815245601089427651257286770121498241204197060430111008069879004522963492110694654489983823483721729298562893199246919797581920079029251999774449855716610337398097805725692098245520456630059277767069923901450784358934158072326439296952790316037470773155353332386970351159179286539081572303122327231377622675475939675770036323495655590652786996595774101908841241622602163272733973716957009069765611713045738391110950262660100900857728335091496396504827306275542188161172863983632444281921136488181479501431866353218201628911686227090914583133436398607251856537850857860440514192555145211392276756495503743533670400942319531586701349016061882041901502742367913076730948720046900206507869749025736961445848920712815226809195867081113572610618159363389073098163273732962660978015329654447851506079661008009779377936682259444001095497642782713569474427583437241122086145040335341893163384973805607282042661462591711997142059518103286430053649260335134508889023158689448973142434647590522023507367287706618760511873037678669706743510171810696520445858385666409262202132133857575700349293824841418863586722473720958270967637034336198892766768622597405848224963033096924646096386791322274582815521850408558749796228044785740106454729537087708861938571075165972411113523685179105323971426448192472598996664653721836923885989919214346086109007234018351031106069196958977452623314762801136194192367023312423119460723308451197131649772518484855280676118276633003552260071177743293226315864280359259334699568140998727125460872970344205208294448761302124640066426069376450102478019887267743399156489615468434686777905712029841859807479372740451290406714488811314877847345102656243451625037454173786391593338618975164828703092041764318954637864286169672435431391955275350706355198806777329902210097361133469513369712059668905351845909480561426423833491634280955574238031579904155093480063501184298338356556124647662650577045508654003571119809011281880384458319672092544266309048336471554067918426637194845780394711774384143239009230152353809416172557760824839995073074846451149939936025842509819214566306860782669194199810358606066465912896943704654386261589749254345756556233914689021830132060497546398145028234180843377600027292096449180920629900465366174030631579783669924833033930090457795508700914780162745649036195670153593790566486509259646665629496538502593569344341405933985956767598279988133931226108166813087953770957179037563124747396048740880276022849819337638371681599507160160268518176094067296711032817115751659762366611543311892921368716347829218399406858478590199004641972290984452855338901781549674180439216980212147849829898837184905952133078454348040391634352606993951405470103445092141991104700359254141253442552145062540740643122779238184521425326990015395607890249971652701017393808374457434974227610763112518214864351617225392666541162669164821208212617839060989921762464138733154839149248181963259950191514276188146715288488588270230488623874029861269329628404605754629492067970047022848531980004056127686475021690765347692884049095284898959816744154849781275123830294981511954794408577709141930347208792948426018256505006012070003402414712575279486067608569131769855657393391302307058538799302354169525355496820672669443186525617761163326454310313423204658320076425896358515683918431364584202497975633310583148911894578756495357176272887837021350824403833305048537921578198796340825198081573781152130537100948649039398488949538262281947856698168185323085974173873600225457361938972678170486351140113910840287389417625291727426644686754047230522042656066678640223669153166507092121616087566275529684161886663297264303483572793564860222380788442973734787724932307421769185428889993997028454746810986765745723386168432264090540341149828971443266259689029454135713835788235809463847675265403097043299464921173377348292419566534036573750451852077606444292342754613334569741513153311458437863627870079359236053673549681903690136754269880480118120789947087409637915754678177680123026648014562244004801011835453105063402562852637018350669902625425274814469037223253387100501692691061578610277968764951702131572112547840698030907770023088170284464198989455768958950084250438644017837945246797077975804725820476453405556241583221111597800666906137326386472864278961815050871756694093720815573876947200574639432007184612174359306167834119136040677146016307664703788378156297627703272517542668060626405095426807346387940960249337757669372165706796612747061982143721684326586954528330377747664278688944770039482744308194062356409284211621948985287777501818617867886594179974966929063352457664805433331436968598908979320500158829383632028060633444275308926768020811240126098353920922169434012098103921520732354219524950239418012541486352909819016682980311406888354630935227611085244002886982342179788092300992695348328181772737715733280579804828129418723450099444526396660135739982358249111721245834433731532250251672201917840217231869537827751858769481363229220409575423645736695816422267120905158156530646965951319915818573335458835823590340461489591294970473662681642361824617282266924350412234946001504551827814410180397849806641917808474645553528048815331934489321575861467077557120676808535762529821569408822966819588902091080674196780913667232629497104477127196025076721767265658953269024165404736984697915742968976911023513204049132375825909271425662701952210401919818875299236247661603376282833158139144521961081299220285875409902352093878330882084832423130665490428810657758088348531064853754357060482319361242429914939643589026913833933215003992868530144453155267857186730414331179530167585869976232954104515657251912247881718716254084236921364897881131802045093567690771681921599086284667240342230629005853763291000316434008198060470952687878154049751631078106065076902824932300260917203839008556150704743189885143596898156664685632436164212570840876145367497300573677000610246296459906256467212017171552688695521108185436831915726456042931340295859361093599453098882280248071291059818532732101064367274718276805822952306969991164242839713740452231793824065280434013819774927724058863359872389633299052222813138151070436000881783530253161287802631146084164977609822312983151600422339304332765130942683106517369425474568954393616533760123291371973050332271422651608653906357795662719782288795332953891566938056741027063896851035918003046048946314258219612203634850012254983509140971390365576572812088834360228224822370501126963010520575931891301154955682144847454372819537962603011342827297824912788610941682670586181575149291841634069056383785513219053761985023813509778290302654017519605307472720897554507848046291689864032822413285078106765754613414517775355845272612378954586740044893631114477195193734405780133856119521841721522137141593215619098946344422497961452705332929792240343030492416690220627235581866035918389633906366464706648309413835531464161504644366362624374995660338282691789621826580997406930075219076678286998520545343275009470759415911986293645247574118021397459593921785184732317442897414951780475181259074176718905592624077536575047764873818055430828634922430048897424956866207017232940666843672625509401633688264545843015348338115256806000515396739315818057916437386810247602426283320823350645497047352082560982897049439365687066192335464707043350240672614139982243567192439221095982738153210835954047729584303914900263010411278069895764398472817781578793258530707442832845136663584716180123997642203914520625731255431044540617445712021104195839601275217160259970281856677095677613543008203437106523789396875152325717192777590277356125063475709016332372396132144677579884443847711306239103469185636501644003162873846838342564989003181105638281789877161044298351949425901109563927892592639061965127440344890824231906929500718283084319403737513957787425105252498275392439055060413009871649193561821790634107608224978259793214121522448105143401719254741664933016995800252253813263134052052792084296589898716469345854801356192854372128936179282791318811750767085084365184010423581886661668961596981405840307251067543281628425261926333708063748595500131502170085804031539064639096730926278561190794282651625193105158811767472334297582179438519230422536456788620996994955296102558414680068757207566229029273842247291284936211307199323620462512138219389593276586838477867837327033045064116017083635311261482734438558808546138454018929352217089678447763918030962312936763787659110928213240633061711173107487821533472266588181130790710342657670283936188565584165609367208182843866830972977585711806198671303666430457106559085593075374046288046209294541223606548900018217937594898387204404217647438382788000294780748914552983419961563969404787799651948413991258824324843335509302478550531661798930918200482502227069384830528743213768653144231725985984927180777938060297588926563476781479212940854515123679945242759379232112448625639820248630225488256928094812528294518793747867737362061362022126480264713936085913854039265848675264560371732919954338926281715631926052859446931402673040495039615861493899699761112890890514108323348630602885515540899729539966935800800668262910395705434889255338832060800512388504343602881351478383978620645349424220300771554824108294126261010530618088818398900613999858157313500659583916659731163529701578273692438115657231024864979373638809325100286041210868705247178875730217738244327278988804156389367524249856978699413649317914715085027903644168227500308394012772569368750395643303973527039339417636985333246410969669534739910063843631302404617946090519781099218612277752653852477731206356812642798890325089412037696650299457168278439350830765053249965893500887865591562757210906016638060094016984848513599112103161999931730767267054999389657480190528361806871746974737834023064298121656375303589777720170072524684365347021813041215825016275879805587312274136050159188702444261754817900741277978506187567707709326283017897759042859065436910585097850636580672410340865631239877947103640470245904277727333062674562490575220956851631689220849888114224988430727085021082594114528278275912817396080712176414164324805185776321519280184135156291892923316805469331946668258863655023235780207731843958227502542166981990833562385346128227872491587910299247842288484911567778959474494210270360637575674303471477028608651737450077818480304867148536573418296600323238872906514828041150179364507461741881777709361852356504235981182955204693931644609936217427771887715156875669607824513649035656023039656266346535312031892876325057270379180379959561298682771908010665243076317184739772681782671165212530288603520969484511456005332625823501800903905236413921242875890929077990261784548291702233463204068433267310123339516534143465063589576057029436975929214447554412501022276139119991532289242177627884128219785193021350531775534931503605882581103580736841119823820302838409043686348078190948162326857751439518030658964234681639890957282135819457170862842654353134349518399416806685931718741610324540400452555931754549172373276089240312360802747782076193710714623701041596352613835257328181997089350384855685364952971059285869210257921079758170290538322631746521699481773118986600039021333601503308064586013967676266270170310683404856094994527659775841575344969659879661697711698811484538370715259076566896689490816046098779858446918602069121181444934047445865124545128325157152822055113825319310275118810166362978556075256603097278948672291830978140150097432826951178853365167250323867568537363021622830780156893353517420051748080637574894463523570582662118186216820803413026180425247264296219027870841279910817300063401982728533232674628597368256738226920855148082247914582629598081083107646398751861926371416178815950900022118377675085874699019454785708797669396195455151104668505586437759283134799731272974842486438633490192166219582751631346217219125161228597514445897443029463586698808900215662796321137538523868870182734066263138340258107220318678027426333961433745407994330605039917407346804355209000188820408656086083887233314747056438190707868725740166214279059701225119291415095702790493064926706345033432398508965718238228757832336060139345884896946341751839153750065892609499144912239835420445277985253742523608842913695481126454466688117963073272702921669291206651835906882896467189451378860473508831282973101524366046326780380745805382307074938875282863815644618953295555887966855505180416276584773094167384117720423620274613551415762564182520113167864817939352838152321006477773241786956524818974639094326934562038323701524266249559989346673388485927310446700728286397429551497152370925256062442135894946977380948454097423004335081498685286184095153122208413910281852598707840649548561315822374775343582001841465318013289253053137538807196035334937472644596950163527173647409111608587704186409377666146889977572631503476879137317626053562705573236219793902617964320903399839080979153132496676655914302369610949402148782135133254654852903393443575417724907671828595669119544745669455856830593921812917307524166037225005018019116917554251161707247858485098721071072107141265244211854633130992729029615473581557781955009757120884565044182120776076710841437158515143601033220006088884178722634846833176391287110976500160328760704294017363630928613323876602252768624480909608253897013335641625969968823576120435255478623353367666932537648085931686331964054782364748338167795154072736547377005210260046459785186865405399592420336276435541769377485520083689824988364854488347044037454961262894442779394483984373033415630545959758813469724514986603945672289449217356532676392020036534958685081131736573456738172528497119332594561267941778276318072053183092466765587527754337985288163175642213487556879812375005703744978467028169703600824335186600568106093769521445596469894438987903523346420694520773978477154068297094193135664521383132278670705436771174398781845193610716782688875848848372090934910108480110543586177352467578290470826652316860580560236470791342613576359999995757830474987126024882917136824380514283574279960973716214006234977920045327951918121344636660964740702919945174656894351798432828033872118388668473837568336664778213216019485330400067788226420694604370238959087564067235467538863712500955698229484657614768016703408813085018620825470439707658773698701373042044045184123758194209440840359216408833983539268221924408963289301236364587769160246290509675508677038226383858171219404011812339039419164991140064576235172123132815063766405281221159373096555566712076622369109048680377661280552766127931314447086016085665835115370787085558165609718704221302604708844328448324045804956454896654778843835811879093443965687919809082610045284324669539625085894745781686210185898343521118499703469856266782970643330159562412562712726001226530195209508662284883417126830116133001450933969713286145110563364841383308504286662575723340955513375443480824153294993835152060103142255296276837278616624365353644444735096849681667423379656383058685717329366369102095489220399986565936485462261920969655172288613524249745823047909102807722563912648341489724026165417955299244027822392412007519560632543944849908532815425537047137837549882009309152953886602727510782124831644811286629546530525148764308997163146186024384080128262383768216102111505546818631766284187264808483564303810372255374178472385715843933933032806034271604405795212665326679450366344611341710575529619653291987647675672787787370934182924521385744674945052568164568868906085713514952899423752889142061029429647242609172100504544872862855480155235025618861996625290040210381306543800405172442524772557559222046116334422274719817551069448914244713583824210508496341769302097934416654512561225001233857567016427768053808910638637737035831857761234683804247889189743046990425232221776608734904438097971463418221980763698813203690414912160131296466072581047567217322326896326067643017199088950253042851871413221712879488249391102656673182025451685610047654931970231292686784252206851705940919717863778446219034255546499623362577554936349658046193626843832541872669228379000896855846543732051894388251091511162440590721598542209888326955918496853666102079114075265063031953648980884118422332315711546624237088298143928475032631315849762712167443859929467773305565818916501111170803546383786374822348950099899113870154827236944317106001548553606091199451421746326623960539656909011504341034315625289024386557994673205131394404645551236761387559156299959848142653314134718396713256655250784443702811301903486403018402002661490831619745923712042420828158350390864778041736991714696397972738128096641819548777255691386858310889019666152581987051361004841172645312175944225099369272307207702308750939585731885219835967168950158014130951661399632911502263560669420256323402944259853714475918884135062985010423259068227450415581510394231243096670063734487861128603476074718212740740110525949773594126701368403676757056102326159938956796352160358715312985198204638466257403851286873536020324328078408878902809547963055679327162482569982511991805765698601516481389112778788709599862147891949462923750322297077124030914478045212022585370945839714836229909462846608968518999676156680799936022177064055452722169037474455636408375254953237304454462011385056562786413672304856985909128796401764880548792155806232102163922599322717977594713477563802276837220179552597365504044338337731855147583996455580819819512268868525312012051695762108912347010540236217791142810376199457285128937496667249850993693093304726603991441431167938870676146104927620256764049725775328969166000109891148157881432259699215555763064643900578505318546602314907695068457933315786621113809511570472740621576273502180814069704239915608218949237018484409345990016961503624728466372946767378679771413055583183748297366709478550615230897362612207358455189668189948782146527444874810346765879235287020285332604092455964198132216467364540041448683293306636427643040162175590370189539930654402334018002638800702020616422767502840204907285201943215494977298879286173060746193942863680460956038916074438693495944391168499680668481337178755319793455453262353325722665113637693882373794508325162066736899039358409350397104875344671496019374489528306651224123747868985524707350197057661122590725833709454504369366341483488983541426176758021063084055371796484653700347858967412384295369787296975373633676966237162971853721873348111283348156332922625233370056229664538180932720627847581791518097973590143871494619539213913931400498474658800971086453744046574005513934888456865995307371046785119387591837936105846884656326045758678273176228675665216679705880204239438905938193103823936216577280606263678091246525966961009513106920556701240573882946067923339518773074362907110509205520760457046977852733490672653031559947943321876795280699517736878408833615934225800575565403239366984749518986096251088456600199548598981621533275627077596287527953748694046437134363792502034829010573758118918427680377438928017073313301955041702407506086804515289253555977466812663190954997159536211254435045868806973272798402040036743652638882266344797808170020375412523251756272508510984848001531752047912706875436003631569153323726014951503825099848907344871992049036074674638551505169695022995847805621902246693155057897397165788231371840576613515620897808917773420668588192682072082733578595444531629794004731666170559662170958077115367931516633356386387806902031428866873937420734956417386309016716914360510138842055001421214183773286456611366435827651904637738672717675544330570390531353536064677309150164804485492341006781753417688002128459183082119594363194882588872063989230054239428450971515466615203166645520050890365225988551453085605210484010237296852724933358735240370347897879843822937761071497692542991142492074607928276206616327338058128992358928366229838276119680590317618660814407138458871234133568769394172254269537249756997978252518655600599572213477157050897443172163762771211534047410079110574291856382280831761203202049048840853671939365097721358817593163888323877248025979756370792433306832883488218985806542787013487854597596058816569489510925972750881329356476900493411363324217152219024244054969258075018467957337580252336192526229609771491883647358522114599967505779683517597253112522763285512002567365465345420029630117648694459260884786016559533480988810144383651660384412157629620587792860516416779072014217912839848351894163137783891571619663307004244803923907302867254168270049774022547507302932656794276172283831959717271870574089056552635816531014691332799640791372935675377278284598893462703868271685043632736667153769496128639960880941304875072391593148785852323625383428753283547928197901489270680984551719826712622669130035662356331862163592196717094526254091040842350595259798634129470077513985300408131223419566937712027355092210036909010581000656930011928923863595296330926765400582094838600170361966642078871623371317030832487953075823588799557791658818467315308072267192689853539608039310045361699146439658487193799688510826784074997321685969670131089872884163040291710605851640244973657532443545238949132506614705360961407101050534544796896112555554641363748995729417852048305609494122916988946607582410701042204311124553467108935668748686824227113123211642262584148050863758803079306678451680950553832239411807062666399892188152867402318534678316325825525489782132011035814341012907176168011127818603896442222014185390201264062229349649184706534567715960710947604567340408862477570539553542521009748020600461794474677865602568399464338601499191156679873782759755195702303184642402662113609250787476193595023870263897288463793114969229598883834000407412263354914876865195464631791774437367801084046090026483049965256226069544731844399818626496133661361385092153620830337249245625518029825599218605114952674570277213351678847437568441616193189613058576615238427382658489192075474820461744954982593691979311215106600338322051871298226224419334611649831485596114111215866749233906103482795118305306265423392856971530444691221134119638681903851401526688421675110428746125715488088689280478226195154157777908905047496336021877325091360282795926339219952635692477551742937809601207364985283810722555145421068762614173243388425797790940947488529171925328170593026376145659624797720438911011528559896944162358784073497716295379791138797017948275251316625474594925056737233951351633284148089775256501555050476012103049350323205829918793928607211434358306424538495049920054115243349294210043060968640216064198604962988156194877846929183961726589023202277071581031295523846829687246922090978169651264025938090150524401131695326841343654225489012436229339742865445411808977377061305094852747459529693063970388345404528192140154630718096502077135911004723260028752949535414816846115104546617940374168861499523674699306834837611908134598032340546286568931035782220415437814987511507956068724554818583142861616274856466740085909100022519589474203694754294322258273357366748213324541961093839662555057861393456361438153068441700703207324737296730933037935797442639414606848493690934963393205208033116129068313353420807011978950490184169914378662993360241426639655814359831363060130838514465233736359862892124798771195802333739702278105176241395051946715203686961780507989467493104730595432936315190645120711412008492781392702055687608398863496383694455530897631470826118704457429439295846135027676000731752732867625312054241037611021881228367602785289926175379745000742470279841952443260997937257617847590088038555085744408411604294438207384012704437324726686604025024269128131627313662952383173992093485518781783704551191698418737373065071401584793140583402261865997895534354656755577046921699884411765188237559593704711540525855370639091371098258847517318943847459962487073507215921856291898229648267405968025002968889202079170797918165619198337682503435157953221384911477498212028138222642952728813597844114343089006949811529184046010876050411223533002419472806741902522167807252410874681165947421192930341396827410319959820383945656682482165411501377779252963912988850120349531420446425362145578814881936374418574721587977679683647405918753246626412051633039213309728165921070997066987508502356234330974955965519161799570967562596176307428055590240110660470266535663470026505856748748174004732147924439295426432975619887715836776308963987361649858061738602709404220008682016559782460447444813762916242496951574728950657977229481200511194760416715428374963096852474987376938836262629248842978482766043352522845879965040619618899568360572655230269411000430773844451761695623311754758984062571588783536311342934269943334372390419298824144675953988296681511954262344215578862667488266923547368758467497453211875848099475625154054425522560744125827709232850361121629235320761007867193919287593183655414026230967562283610180925679013036600515869156045612471507898140936611358916120983930761652226895569379603418662750142594395292728630690293515817533034314135259767598270000374658788421510347671040811533016832856810907912163419498980765461811847394353805681046062617965661890584601957198703016660718237245919203912741277813979924717293132446477809380125203063369856998957479627948076583588716516978645953964430366796098017090648509054136863097037106203458334254205879352369467086586008397591911744321768289262773574835832716079052103688660981655561634794215999348615907495145943392013647174780532966995074012164650041512226127372190282261000272990203026237352285474742989410646552321983214881256045967499806182203936872781628236492183960044046307705518021443727363368401300777979080115128759546892279188098272798811349649883579740378534164367334977409174879408500862300096589739220480062660856545923805438369472279035139890885734129194168518026364458811516383332708147661310573606307912555761689514868876403192586695318925256680338979588689737512646810190850634020177810425857783738825718170683272245547084536194601570505589318008378059548601956562303296274173041658100550224828885168588924018867748145785531456462052949245960720490223079706464450155710796439657549844645091337002152078460479054259804738796942888754372365991334710236315151672986263330263725011831882478890425250420185149191185005020215495978624917796634442774767891376687092933970085956784139448661237774629214326867203926250303922051865351741622716712104221429348764039274292923852358223783402500525259862117073205633258961913890432783658619651999059581909250781326188773424456142969494309254276570325796651824313224189722015752438059039446345189886408412303140489456292883841266499168467068371342100948612112968774137298558734598012802119124990445908204545235370659339473723149155230345886615010256331194561143557419481472689205774775872400392590902761034116473765072856084571485979514260332698109151525636549647795577018327063697780127297693474428411743867476763074288749779651624375512839964599296244984920636703043312102423949831853928889565964535742803044529427339887122989873417974059908205796116522287304951561312670454772777370393865231868048158952802782992248014409148206285792416488384259789584690915476728016686220464961178443216884544717353064385119238018303253908086346283390010549237651061156764133965057882451579429167622896812039072262555828288221692653264563372180962839045552512798919606220738462718387188176644436873335445533439915065203827015549233194163526568026807011779774961129751848119785899542691145798459635730640855168261505485490785791899663522989622859393015475216614006308126091901493089611736304091393889409384895754338715931773145404243636887273523812534045019231844311748428915014974266973944126194991278584928160914504418645082102399297791577540902170001572717690460513478853915501410789926900209735482505636543992264440077133433294952461923485865144089028032935362115519328933017892758362894656752607163380718165868154206811066161829142780235728978650131404914409595939895349017057215140745522564544874722661562692064211280212175673435502234141236781148909685520714407750313498813262616736779409851081561455088057353885994690800089205813146562093599563104035226420274425828228133568480932815113633173534240615410965396188107767986060569327918463074381943779606743923954364960704647655448826291326519507646742883964157675172365230241992987784244617228835277969373607290600962879443032306076615309410632071708907333325852700134223082110283280472474676283897328066317936189576967663766447578656392650287529781514570508530443933100870295756825620682499038655731590745284290628685551144109431267777304927103557397242430811567226052068908119745329543615454341116077630022760708240752725680324509804406500776456533875220041356432012322256972840278698860181133208336668935966028940806983477984115997168348426155719488469713683153045984736832959897643411851807285141283456875686531849198749709793875824247992874280290824974781843353949138479662975297700684968738969805597249449140281247101439160105513351716312662515776474882944062082988119115671240485229033882317945449403164658282370687686002375154009098562863517358927009770460162627001230719002748323225457265213353179843645718632470871994702718282878560018382575861552563933926538971689355333415336228122288959828206416044110920967856004525594794757455592066147829945553822136372905463020262527682028152549657679637973709734345631583840960408588613180617083284945049592820034146276662701250161626359825709014346255289380913086086361621890645830932784984712786705307522491497735669310119933687380176396577869817685014521827371221602193492513960890667218945201005677701518640635233156525902894564272505321029020755106243891271843664589071316470606551668897393056038411482880286075628168758394924915523656450689428011958309094255393656757958394924268734341038758593789965780351852631407905605679471212176175087650543811972648804914351405844157571275960087169151431062113353558352985601887907660470852327543609579316544177345731238282098023406253976249904997293693761951626186774967337411700717963805779390812051788796850323502447351138621408722114209465582807103962808979077243327221128643394485650370783450569325156865726063990492882825993266523352156040429883670491195637324728492936858683041074356545545933177792250963035078520379239854053577924377096066122989682121478267357516799698256770003140384115566016304919010434111194710794840840165944338361564924475719387621646795870288707309896545849483975492252734984092594779612986748906205241718551153957993285956167686727855740085572112605244368814469991698935795125914872134113673277121294603968437206363968499595090491526135004592338050050271420926377088920625739584232548034008210351402292392058528968403629783498325603476219109030697579744795445314110219598882502389170519392545794083735359741206555914586995196757973833483580176184966833669218506350761404291641463717791770235867244551313492923789886390602816206067288297777408869243494776911610290949578429278908351180787552518733174605185023297805742668012977809549918801986724417913531071879553276437020098893750861366746142762832704384066362037268117708440473644196285546527496491824030010598030331703821566720672356198201913739100085893906339427756084721907822820985946607381649536374779495447345767675705547449118821728587349378127169791257363373343648676564044184205346456160056651365359902641452529391997597558947808993070651387404876412713614406362755409929373179581336583571549128955892171926199277836615088771284837853983386624689851661701295487281816248992842820339325000592437801151091046122899400962711541242344240041184367965454551089759595529837880656491097784376070793503585285724328066538664537172594294766627101247986860784525575566347676734863056820399499966460833367036918974958891420525819333139018287116650096501016731520748683502352550021599264645591064178918974191056227815749257098213962538338373599085553129863460894725451176626930063059413678272365008657071970583586362611949503286092588694847955075797804892475580503823752133307198937595080819954741319278081805205943108862116180148022040533493091309705825269879960940925168460987434279530107085430380608393069620871142294558084232292871186187026521433646529868708832416040840805119636538430386237266118359114147302372471776833391088047916457258404868505607325952578647103916570812928720167721120571468803394324774773484340726397289428919115515893155085679369387452356858103559481498313549476544252621592773064214178917474738628756383686079478033289745337198024175303705196026480641027343094231956727240194204210955786968303870751685782758565397947045538958133268444224439072381138492709315412964070749965461660244111564004653127354569405701160909067030895437452953402567876149016065425873045613857723816065943546750101444859541409402512952195173411185150005975000230054558217550923155476247300164852736184042403801896445680185676925737402223436381215032133097534369042474738823399250197356542272356963492006879670600248173741093047792940989509154793472675720884364153997651313015569189066160446875471410958721789771162387557336903662851859739121892428727514704457992124911094884309488601614210482206851218253055323983031840764942374239922914678882931603791596022956876317998342589667014000440806006697411123300282983773675220815607855906405212811012197120958685292667469225107723985567494183825668653280891134305194905828474344507879762460721046721935676320629106349788592291556584712733299598681953881957114558984909064751255032786708712320475747837460312884127254672629041449111543544051953874651163610870009511150396757780760270747911550297939649066665204823035682057259874062028219348853013415657582961353509517385936734369731480197351904547405709515775046202501003788654230387870703550567653762714181150594930659075864352187938103889501196360234437021287770671710364750318383987913568275217277185678836168843664521670539732201310590111779099480796541317315418139371023992246410792720961162466256092835538549428749823233427651210022591918876688491787163924293165868281421103576719341094857794340033692837268015972858141302114809386384540359930394781332077990516923448638531916396422671406904050015741243834107143739495966003889781362027002604767271269033636842639219259934571419977222531388187899758309585993253835530725638032364134767198046990881747189368498341095540788585629385188824765627863814625022515079430450354021594240202888976957205476166246724461760011496244412420797912452388680609542512105985129404779174663807379110643290480974856078601159909932790004474649357744804417405257713563371201916564453315927483482279229917963723477006740358290247828366825656915406735064375105092205334320600460118482304837402491256847908434958782599370806153039732870542610747216779910243250134750773899174231889322772866890750087976820990662524924650388548948236815343409963578225947668920950482928522397052902963823364315099973331735236631232592400047253766413996683123776792831912042765588181687833113097119168927640835586257674757525004765269559722619919015000022599295688625597184203345837147620958758326414233486093179987792221727984085316903989601170907348946551808937374672272423332719581282052546615018450168370188898917814628041263981991789395970956828083346491938070073265415787596190448839585247623209267025163297977148695377811454251808566442490451271049891023976203751871998501128840207520279989100460097718982678006515341781579412790467970262941741127718899329320849567535363689492366086979802043382688397743226579468909802908362927739383498606613603481234478396895312547664904733995585840148975708519423114694183907377180172305099499310433190607761576142358542653643346956216631539309937612793654945188904364050889519124497389341493292987662589283461987558630996423372991475513504129187570821294177563346570026088504769637933333142695627276748063431897138581361115135982516713932720394798382898298161796131243570526138081515609671582723138923406682638810880651189095684954011175104435842547886016339275666486926011655403861232794221041281174121187231254869419545222389153052083189073664784641728065823577080500503321140502772480943000604755781500355468009770987266302418314114808152092110075940164817783135652982182653843751840375537097283612978141088635142851085376459659634855976757196671149425820652360868806124052495686508493604207545300591559926998442700452846544024212946042879334833436021286271839749053541905688064654762185964183732321808261781700379922265765198181534617018909839350114114690482042751072276528975009469244359709766292254836954661461950409345976890491933902242692429069062667357260747063241350606040334945385613163380117279529386799061160952607177885534571433284471752729647274796080797785305725454234886908826065961092391336045765864769801392677043307775014968335456453247041783246443554614659230401902071517255273076956047864586738784982962929870849975188219169331301409681233497784628340348696222197363968764289277565309752076808732180433603781776498083525311087971206906885267314303391924849900519206830466144022417838047597779833246065947450430390616419837155852694360637832334140908698974498347012063484562433737501043391830190751601910297239620212429209811103840094212526606443296456553837178313520947992102866052525033068924658415061068474597286745138415646749466006515567887389490173635105715636156593948772670903316606951209090821877623369282618596928771210447532163188397987883780916262276725407480400727040527570565132714911840042636842406907317050680297225851647895481374249075480005473760014348758606354432950007459794973808209474620548496932334952086327226551454341967261167728293780648698699125256285554573185130976273171060470694033909279585650904237277929763698221058675825872636738883305117360379522949101508846292929743394219596729236786880569537093736851003424449123928077963512779266379084900935549609759673862990218149470082843729542626331400419782708314077611196929173588480103393109361806552232208939998480150962227634457586159190090311934709282529460985023566221865479799488505975548059159305355334037690015721511371749524804283504945812869266440097830323523367825262193759228055840066126740109077260274156736754660566075395267261048915976621692058002138144001637560584661264477668492269153084858631303113455974496542423974039908453503880037615668676044750856350757050209222778311673505257729127354986743526658865957675515825617271557546512624190245770244871771914395121132580220910099390176598843026105485427730152794264195399733038809901234498186126218972592770170526633783011399889896861116398764515143884893959269714493643915489712238391164702397381560406101839913660650301099579621150691220801315913789395808781014130691201708272500254586470353447649619765728747143639391082724869138210088651338792044290915492249835309408965243467654031766797276624634151330799300623272437282297301654942262092980462394110910271959434744724644915789461678994348575924429964729197261323298651804615489698203018814382008494441853299817874901509953402946216853579873485219505011355700029008103555292112991539525686448382055572316269691462483415226038206176113717630611078011426274395586615760130048265395256016486973020202720645257872031532008709183731465173439017542044591432103323530650378848059852171261004022269312586687734094618160531545395220116106556912222321328319333300033725371277967192930604427061259751072514430289110653913671343770387301026814822447701106746944271326040625795772471011421452395468855862394527852421803245001694285616296053529628407184717141410453752224776303380006594684272950881585378701212594094954985181759267047238345520946191711057125746087704555803248974745679005669023314928922487342765660906172006341238472894533038673680492183764149975379032027158185017029724724481225082613765330918756319614561090831889116974515767207994411013191399354207797138258875744335352491683826834684800993419327467252977257220929631612928494787970808533934440018663799413181751976482864371638115404494751695040297773229050407286967825712337796442443576571044055603330942081888000223809004731388399383510906644097577595864567496462182070432901536651194536232336558298316443706760649601186075918706311226433504508389622410851712094781869777007411927506645759074346667172811379397278507823280638003152050946040369787990814024947310287058579365150545133675740399179889333217316535467157142892974061484300497434355503749197743669276816666706144493443492475084356960345557321039851324732448623059155393852537821379959893272114507621209059537619360905059194513753950253240459771441716914713656962562019351526335498773106447779170687396713671197308172538497523278836034354705161394024228130417410578580663796180533166397926534068282037051121965579196465128349845759773524456494260740914942532862391135575607922738331698032332480823157098461710396716637276224541151190219447730471788116197074182742489278577603412617304864052747006515857607571806990564688323599728660098720783109874816028816168492251061169003596470657603010473562321295059813966353820927306672404959269793705448228343306756976197719191480952481847544650018888232648857097461704486715527899717901751937092050052292429961153468315260028070939167678746484197317315713260170338305218967065555643470948195505358842570029047064081773196258099539295740980297614047428728716595872336197792298482159813528670608649169511759446025395059744927287670948094396925685484749250403249230709271262774274132944709787691380065361866712764847393501324644036574399680059272523462507698497421101271852814193720328716327736805859835556365049857808556161458042943126127336636080622025692960609185187881354404706234062091809789149047709875581711857879560954258031952560507271291233250172473617718893507393548591799854194118153024411780426274270184430016573191338838741867888147738569999239647510614879961460403533029256877057763955756352717778140476126063162508458055501108372563926906112450508376095266359548717692439864718040738210350966743834586907256248651390230376736039244589168737882892701567796253023876860239790183488265605502747869414320103059400507028710538462911283912114558879224039716422376087928367433631145878717329931632901506659349924400059731992326976499903240729651936508544627174136899542458047234031811143089105621648274403180326620648166674042724776296607881851026121517948184961668176471877150455204983569577669952730760099851280722152154816754119795075958296083317034019678634398868631886227120490704772694619210955419473554041579477953934370598468151562987042070779600058658710370995861793079040365314948469598414647347473823943985521782565528454805740695231228971760197360644611301056054888523052967739388625828152225768127753367565027901309269358212645976576843577561120424348106072715434786837401449183611361508800087353962119866333816735174538618079448493493110028732519430935753753752610612755185382902456482781397720002632375256593626188001682244335855945511417781558447709143087280692368861721849041479381854464818248943750438199382497353012495149773793078246919942460242335812967430164817962063942768048898764240396698394095088714482830022383827548936144028828193909486695561538860933816010041951241491126700908453452277843166526744736808763444349465994356283535202772912046257679914688268753958604464581417188877946196825320913223076047086946316226278409748849536936130021860277720528757762796661637171411132219855917836904742623750615513296232401839252200808324160838331448067789386429537094911420362773595692216204611492692202072918074491854259269617126768809618109893069928844224050399604542457922141682938051488794508221811765580188490647795392175674074433950707421566212204910793982010094487604496145418263032174447550562520598470334647741876872897884632053053316712206168341345369599341953076818103382984826424167296573183862556589668926140892252985446993983279304240922048011141906638316028101268476332356488999428672928902477399268819409840204998145311106096182685130816725724037418180985467707129600658989414892640498822078450048219137233839900053113328752462358607862306625210804921469880687733903965758286627019642066032971547292546595983978629041962729483445637965707266455257847591242409887081866571715767198758018299807979688547537526341674437557663372170021509441872494247942339258443024639257923769984620956643253760539945848714923495055216305652142394194136614150999816408751851246975416018298265082510961594915804861137484026634682083694583784693332874399734993061642878087259707702956140315251505969194091866753099539347379568777643995362787922496934408219222333682735188465812704226438738151109895299743256110952673681308109752090945722529716773856917637066776755321726125078283418323383106948217616154455858422327602287108669852338629814876700814960296173418450008753829341083442178310632347998456954927487401499543421790954311297019774276164213987628837964261028148139979327874970399691715993647108192753387998288191628951474449734694459633089395007586038906449239757939011623527844158159311964285165639437415157490234427932425756928124611960091534816873425096398500929700776076984465218378063288030726128738459256764287624921143353179244044572427149091060769511503497327558911286308208546098267199418238729988064660002990762094539059196467536154683967332347306079777595559134931835985499991855232427493284017489225678427234882280932087435246927074678198482675521666986796888649173828629554531735934663704362705629759553805285965240278685832500954960156516231291940232103720872026109900560351042546123974363567581615426221015391772553388151079037088301874967561510919160091038534746884734117116625377088723101888052320689500978303961634445039612967845172811946209944967444061037789079873229141162216394612885477917071222349924508441067066697826370473875532224621752819144141498337234262114217532546151804078389213338386186301295459428888198912089809821208237066698438829024966456815544066694819217873163491386683399758688321572634857225217439934740261680683817238797858263275744146043012870738650786417078153461761487450030417617413208568635889045775782424682617090250002930984472058055450326875483821045338958932431392374594277306451636322106859514447811193455987730622790037432238514304238384044484466580611871332190461237226881413159874642414271981295785140727519396364080768871355097896917866869667306972921948482253432129085649240296020534960427224470472417030257528683888154449692824797458175073112910084205390634035594282075891208157872291006380932775294775707847466970675174417510553382963646975548670967878252262701739265230094464690685882805359858467735565857548034060263516733943393617168402214623399369543662444296047791872723601914978212103585429831764345014262753583552125804902567240804470686388838038168308736098000747407220680747008687125287799809945229212248825394729391415067670167256060585824741133890421401353781210267813348658322697853100356296182526726943582072363886671103706581019200573392977600699668471154458665435932364409237944106754608272475326256865444801611169787013349914198791230777779750865685754165527928565391091481624586854301711337638400263285837204318033155420044327881118165538722303034580825263797519112747260110566576470005779474816773913109173495456217949960718531571682532818523195007443693284526367396715703299158939849313456951892177295373789095888142264683822323665680075949168755673562899417434604205506710403567172215475583591742397856140287256679258248800840502579813924807817303503212467636449821370477806346390243528581126842958445424148628437999927085277194901113325330399816947812540835725641532897774281968326112625178872481280558386384345951459008012833503543170483089801984908540314897067130618102294759075864957172146516572263813319075799860087225841608984433596405408395446668648748726838088409252538418750238882738451900691843920176008402139178494272229801548167180492601801838066321252947755877512292941604379827350259620909541643637434509463452382212878273389584610273187963830714870376306124693605720929757697676032469022589543543965983355294057037072080703617120391654909925820452351056055862542740592790697744467748776762946693793348830814091701048725291356950617785602982556119241740704423356279051656410162684864482936790216916372813407735897225689042703424840364555098016519872118746346468350688856488206086583269692336636223955974223510415495489997124441659226829496855830534036157337359233448446950726123590426955770531861972109678869017713766988946833169826467959580243192493582284363414527407865083289988447828917569020217869202566889020983300148797066677983930375201087738973846227628688779983877582779931416952185662305984874471394379593913092598218593903912725786008208756911222646742707947503870778754129590248411384898238345341198251351803870308836171293812943543401253928455955167199982440118640127756954886719025517800277680794972774873391376701413980309937966829526057031592256895156110839600468808942084798463164625953582927165654629603487810944621894571419946631158351745907102387509669455566037496630477435487104746090049959999034105202911738989724280791419207515538687866350163771569607461641270041111617897453407266975286974107479076007941500933226465747711710103272370834235031729452116003175527094869124959929908602783985349090182949815509990668508453064418738247035610956793298243126363366405462518572162315058050503748791452427426066655903395840660542704047289096563943810208987282868955887524968457459938389438118028736329099165532505922049411683268094815755939843243904234833102202861603119439150056022815941424384106232660178952008872975593276262608775234236251305385514696419939925162373769691262355725455865837163780913858939178346460059378198946479309148722393336651456760944054914178863685252012191922926654509295470493040504461413922074952716527449581842683422303063421284927696926823251855020959088536050827983440310934170260066666399516647359535559591371654453847074856778362900950532438301267061082796503387199330847065630793788524874629753409124508250948319708016382377692375719070087130420021984863208305984783861462885934866257108099358078037898815084127397122838123517187719337834116987299865562917766320347375995320965020715294936249005672435370409517105068228917943000348202511046198958119274681607467045480544842967790602872660132793545604300416930225825022532810748480725205728801113578927891191086677339046781238889254858379615335835218172670211536214782406092901916830782223663840839374212347518694328298005245411159134222646428006732246836633804452856008195880545513617164917062204372875489953020167186063783965544000933851984459729219612819471549011129483413848054647081633639139580194615546222718283108542270010847411620305017649411118037489674918185355776405774294560871408312477460482350994583859785817619981097012684880069104996167762652631615777628928598909561719128149785697153982403021578866203096289114014308352335491465820765892781533501564874079595887851410006584873752545811592916185841303151593490360800621435530910666009620951534084910275885636356012640887534508633571097331854234368589834291525086003613276615616902019470534074856353289823452421164556339870606152368800628788521044347170227946706475346924574024028650716640427799829532972963689659559534337490535452136058812654640298177861952963869299953826167437050042138912507745326574713728002679643352511221240498650343556672476819460259571032850151173899947877214937813053928457988544922257541029343746003773359766015381816527051005528300726432275651614993151468939023652389901529721545792337558437063543594621724071491462140634223090168056553770826211468998324154576410779221032210861777647844223800598435038507258139899223604588482177050003376351513835951821747549319660836649769642661510310633995898451781706359432756767343886170043522975516451761933613170434330689035241747034953711515278460866178269070945711522188218348316795769960202422200665682638134048695862947206263794482598180681247972362172302127549752172876655173009484050575671286537966313308001109654213510357663492998741022266520723535922420938442662304272791151368917501918447380778289279966069663565176903145717152787772947651883155588373836435345884435442975881954941485993892181594329196765758869180425523379898442736494554565755320931920275970394355045327299103726596090343054634856967605517411170060556944820359191954029570644453101566157368988191347464013347916758252827706242804310604763014234683268793067253741754273413821839855579266286102598583850131034783209517778436806182883390719936788252354697255706111209420494131057529883750504070104870009435073336841933253956342895962105392099091229580093040973688342790498825866960021447947734712682203176444997225469031527188990618840341931993722538953969266779052235821125710876525195648096465281097962273359289299999792304827864297868664938413891021396002657864918345483690741779351756578252492577432992950392073419054058376560944124302358426134245626699967517464845432433383716664155179967652332076165320985697337992314772533561134252936190614718974930924579477875295489414769606590136047500666657567219974879266591944993360484760355589823010767574217728010063613372195933512002892801635997329778686261419634638161764211156272080020836003088855117423731907858132724115262729805118222418316274774011889820738830525433154286600746189990524334398657642466501498770770021916310069690899498325471650318799590704976886687073618906535890885644149471070010218753867238965303912223141957669751651404215145094481945700073301605073354877107733951873496848356350357956452174938621498611687606097970936351744124005212198441192908419492831913213134797239991234839105396212512985807944043860672800430692799917599882724832786697662736397667518986541901012274412228107179527893982638326418017847420586882908436458051041378243685197375467449484363721174827318929652057693246442358962763978948215463031620265593697181536192775383756323509934017637387771204939120380477168401232325420129818319361897724607122291029102052296669672468222735625239911919463537481707600290358174850936936807750730237247176678806022879727886389199695666543483686759888075915103668278893321517275854940149916508678364810622202292268148583217299338767317348844513997980255985333270255518903473650973918225649283555999195552485727034241643585037245903650460178416147021896939095638767367264928889482240996902750587220895173892074073030684195150265267832273135133610443962469470511507235521871510526087162114634581380359969880175001313462004279675947622282831111765773287414823913525111927609384229463689242831564503625681163459929308769522175429098381770179970400214658436052966484456294338727838762183012450761624166133589337285778597659273884905143470602658082610348290864489262284067254654021598871933392671937958760684645538870904698137873818502291550776706895315722143139939636581393537937287448933055982830286156314268842239877700875680125481820925963631141511006451583361159606971827795481233206276503456281089172917935838538209074521551331479842456188914795613698428021003676803849081182491462824603935638842536600371584455516987000361880452042048350119848606357602383671408401367457559178514340865651282029598277725283822584507584243736176501692000260475011612505785532146035271580472461664095984385435504509207464451547593582131893339295274600876011266289370891605994225503333841597325084382919708324255153686578223112057055927256912108839941686198446728105129349417059910874270777531139561102619576414886257945988097521287593086000981582171000506270536653558597797349255795766718348501256190116717391122079576365432098937657466173940302098837899448018738714553174829267397114474126283805680896182460195756521287097583408697547863006492420091243623899922699727765064957233868603277235330020565169986841525383517127149260541688385724974936256059272443246397803774812212348108751539622931089648280733928906699846071315703257474278657821265141147152694369910976411188836602318522112506211859150419852648013561744672378543641723772124573224706859888723911396869350997042655447317073172523318126277474794838033261521917383977686373110671863913648057520930562909646373051555323085932824943686768539517712534473739938271362306902556206939678923031372081001041608129016304878073974658432372176398451202567769622408096477085178448689835275812986797564158012765052505892077990034311035539229891883975469626536014770948518867283960853166781715024526804982751041657193816332494754802662758942438599527785769719207371169679236747081205837459833657314396928003465402180193319530146273600282396365148797473697318189435510950358927299554594795313679311671875951873708536792564367570269014883014775931448662187254292037540577107513585808631185195098492905885253808200664239598852945911918689041371786892425626771597594571252618322549961207118563345248032928159245719776392245887007333924459822496389213616370573635900951966172158899047053472727048477360556961767417191172804836401860956722530559819928919802355090391100559985911563490402382094732364730043395642780198544355220973507706248341299361686018639074769696192012585234873236670272481195031585207283351708769587849374864269993385371516002690464258077205929120967815824255968536746052403312055326325546422211619848811179596072347504316146971998892322314327050201521764920152054977426485125408067057834662978187767895531961444679401758561044369977875683143518697078702940210164526100948609414418865073393891967962880299259389768064523855961502038902280449129080499686322232484408904637312128440713934828554641625522374419435616659723142414694879244736094254383018196851932220260257951169689622864866889748143052486973582188254696217899976382092300434106642119914327369438501051776221069096687355707058707217850504726967056838847140960892092041728395978757479096907346520506774014156058633865603554705357005346354702469534007126088909638691365657896284082638153765045440534951896262565502626067432878086329395594724570349360943704450979771577166647683754192084978475561612883578748839430956289347942764594010237069154397026620752084118665978608072233134274257782743041493800522365427520732452867925224661143542263760306045866075674946366996568663669159180384706558644590852640370780069472825813010269528407292348835197836984773741635162079367967243497136538572756821006271691309266368974253137909176507803108996000704268598845080164884348612411334377689679112017658908739285342227324066074966554386079781133843941606163466895196662445096665434803548159493175543480049027000206669108326109615722219066312106907233416597867888973734994418947624351840857323880215376461448909654692921176699273334639338732805163042314741460350531120328281167172728310922825225758944792726009324974508074673088054909206588758366410984211380571609182365145707493610935801068403149902867859208869758567609055395839145551564268466636669309940186015398817507993562318855332959417293587278072483862918162275299222913478704506392456920789707258661950204124968478527460688935452784008786899085492192501250313038386516989891710292760755092491539695990116047534403170905319168757128115359871876299460848867981848395461337933585182870391731698868270236780366728059770984034745106230322884599278074801090274005326027842152809958730696437307380780004405758562745884716154883711619576458002287158679662825512656624923692278125697802343656085018009322051317184810037689942087931019784386942503906399797959643720663888604190021599450442135213781507142299730247345597074591606434993700963061666717321549269876253312182520680620562588519684034038336050866188068248242459676544387881283370372207747351475862698162861383787984273902150274638847820387032547613290832260617527649825043737423598182660693534771102820721182169944292343374406992993026135901232380098366772274663578802522855146046078399684092311887204488390163552175201420656871034492386435003893202559085676048270621360792398952640708991531569696957147129036178479895036153124911931843016170749484262485229745618687405418807009224374825679478036415223680686540696910386540777310435622742234566645275351604104077538233469007650837667079979847644021938970142403347998803532001923025821336508299693074843217222874055471960457687175965231602107740604800205572350253024050700357950340472945588640954635192141546653840101807246208641163746901828725926902978501466866314570185572657884746034994871556328012119631798084869398581608980649116370573483896485794363436884684451577548335966294523690145518583579972986683131699755226759971466369601733296013220709063324755967010771584360617254342933178775786799102347893086852277960459635741873800441358953951982025205436989502392260742950892506695082134976590086927624304628308496787011641606653450627790273609726608912065692417306610729647365868459819880888209638173546707223562903398533681049628750454165331264257624279096496762817897034115267137026411287043771249456913996211698673543056816064007921408486938225910651006076786412661964290477987737834683934400584806473095403182257347438187974218634220542468727762127701317529790367565210112503737371145827270201510484490906138692914657867322074784194323201147534405817800401549398943842679621456944747484861922741857461121327277821324442247368277312325545478095532964576770971022841498873841489073089505601116869962700191921482030587949826418939017591669009015070040675571623282215202333685535379422391773128068695516662703009196581859519331856243073307637003424712593652109388561449408361669237228154379630774181663904396933532727979945169783090414525775744907673345380974259003706944100791792322375442483230134851358476537373593676464704168725136554593155793519605799405018604280816617787193830212675099960350458556799823275598093044149622601838085238782941505967533705147119440948680517784284026938017316668806283873245436275958938889577187304297607691646800475790141584536865988904183102013068576924221822433432428809209785009406755896581080225320775291918360486512653936929183646590600402959129971688601579582873085612777628701412512350496157955006748487483690492467442455032720183158047151183457208448400189295661621774882415928822383536782207249196584534736253840025448461129125130839995178563962121466579558090360442686254766692659802622317819364783408372221496088297418754266992599053942929526516198440059983804122216983799136948023735690535561221051417716737013370621529612297841631279898750709386290951100939697435825941209799141847165071829881116277394266983967243616001221218333115840327254083945045341197598489657179987192489147788615935245378523405827492209014392724981874440201938290439328166024193869223452291899022405758335317614949620823077277377152366766543413894076154973760559885861170580012978577850525132870156392844609299530318335416088639080667548367716063964286135484442458937531447747893351225209951125143217454468147707418604354641959816006918641742602488046758442845371522998032143726469469134987257913372684311502894611471934219935700170503197484943695171596344923719751672073948409886126269225322291806351970898334210977210246363031517920930972947491400875364615387367609380345903914220634250198051098275752223626774400261623355854669382108899053919301503934483038072150143720705887445206320804189613210523445390182042479174813498404134805580389958532659532622966331844872300474493319444516393207071217046425379288967972933060182087858578851114366748632652154945235805858407894275996762011144190253255420985967635145014938570931354638249575931945344334987510760544198227554829196163312685999887325996661301208698199465609126979411581833282777002394624592070736217790424928467096847291915578091368700409075245307637712427258107918519132591158153430787050601771035711441582552635728753494405432753294432069140547559648901409159984681434153632889879197257577001828701177281440484839077658017446477606659653037195693157507096888741373625503946000601469037721095107468766465118386520111348412071588755539030952736068488065258684219016086279822536485235861960300198937044862041905599889371561891774656292600679962450789246238080952106266784251580414117701812196011061627174860220724204092527828523685131718857095238799392236026215822378353157945945352198296116487314365686454238176312556135477766581486079028089711589325193243500086958238125600688198965487252508240970049331904681512945569075256457783729753507379416317891561534122039182544308283259167798481596250419001882518113698600232635797906126933826068781740303471106883470271085983765518399673117204557682436194653994494359649185716745476667430253802784571023894909876281431165424007421409252035168493524093775202815900844189393850962512722736993433283424267409017652901388933283251066220276272837549446396349760933765094374503774294231349526915015138048690108255843160654873072085929017120650233330684234643437580028740810714907774022480990681076901327507926608184487804084759623127127334261505189657006706130399091468266340707770291987400210045452314084091444822914349573508316526689788676589912206496117673561893974071639359176113267095536399625393298193532758688137850691705604260620023749224916570447134651544476619204644788945201561159291955842019125493648262576621472384177451881577253798414850715355584826599283476541222196563467383978071989443476539624900505649006304666505954304759569346407795822973328666754947872532032745560947040208117601738565253103573899607151597462023226185694838930247365973710124424190971594407503542494467929720747379003681383542688689107948963739092472434541402982214651191587879119193085554407327299792183789497640209312835693327843033697997057906600240554532168176010683104707132273376258930972488481477217506138667977807462403569081630477305478005581433765771732515529382587547322610314990421213000619500157764718664091531392288377066544357566334478494552692039633674009617182614271834648518599801924330538347199642360835539662893405292782872251416144480862860462386456021863004114725686809542632399021485178762045228040780613095953715912254256244837490316348545748323379642978978721912707445648310208310425961989458256992418344836684471103754740023861153317626902754504658688734293786786666157136305453481149136474657848863103849828788565763665587284535946475954982884170905733811083485827273142779629962748430228011405066895337745359015287878808500978400663830207815034734461585037723062880528644703816291583924360043840851464303291278390475230538938811600720029739641458142770347145433423614869225371569261867387414196486345994857845905931882268774485784699886471102391423416657172253355121569130788964642348505732319745539984772535068302674494586508699238981302068909364269575835593046336692063593605548783885150719764136980952100936881203401394798851252005383014724813431069937711473834521302627158024672334214082531557463975215678316605469253633391879279945148521592915066352487799448875017245562372989305034516379802479380099563079253463336611632518868144726562328812346273769799251799101019449183255045475481149704558252023746952516579124955054278051531119324220442904013382351235694550810995800559254268663337690644152724989777150678415869114545121039668861919180187270520153736741494430444087098565319161075422941504933344094360524405146646550153750301040562652584381385938112386386275664619778499312199939972555884325538643536097844780906376653149254110614450141155711716173406673132035431292545667725536052712297411833293124503263343840682414902544278912103535504455571335075591245219987985864824469523045839288689870665021304671510165602821752588300491923284948986729573998099761992555625433657253995706311115526729212186863058389591436702229721630739000338244016938406128025620269468039064431512787805546487740720261881123014246397307921714991728975823112832853003519730273570028527080816176042324226441735586526741047896229012880246280963683823895870681484835550661727316127039031856813140378680234614600227452792823859573143725630536242063670923822570524620879307136782996818712067453014281053605646694828310981179786587402904176106297238214696846300551465439085016057100163299703691110182350044928012076927014122913968240957169798332398736159478745383655736553581953349579026644972774003655442059449338779713969030160095352102819502720708380564817392746479910462760754213657947865412685641817680334884850844210249391308207280227674952096560992004014090290237969187608720323732823973899346066636631046443852255603958849236090554206766757595743020256067566237303098346294213105180543330868788183995142199624025072554029311326461765399533841372906637830492816975052648781557315283638390734326916754439363450639714080976490619060612139358338549696590034642976774056377648348104750206944631090654416776360643469872898609246475439568502828788036228054097362140962872492067522943521330766647912810673018110724352285211444891688906174996206092759759532757143282727295950278413839669733055821660573077551202632354479307728905335590598795307687730772622680541995105423279778488863141525411597886077799283724837139978487211988004254034949790878206697788725688753027096352246283907321312620089925554573064491255034180310191246458824492939547566300205260632682322849789238999003780688101339355265448199515679471748415466010619917746028409494231269395413575539534713987530077756420240489433026693335005319503585134678858022471228172251335305582449656835237858073626171797996127382294506391008716798749152850985397709279326110528913020512606414347053693164707161913540555883092315710479608080266587424604004162238837803427802802942422892090838554421019287431154722413990161506659460030833712898755170969150115331744324003174729845345693075080567753539411784507350727767035416046376622153350223069951895893565985400300821740011910815525812700537920446212744353414293773669524872124999231171288502117010274653506953877303367815386910911142441917630771550732222214386404981208524093585804600313483722889637593864334967137188937548707865339558745039316882262372529579166925750275533424136396799429625965259882983598042126390481463907748228785620047070522941443156416563191411774278687093055591122821355161224999505562152579499882989746831440935322475933699399507653901993783058030541531999723405905447851184589778914657124111606498968742560207477637886415119748451204059104245063593560287227505553631062926863621793650616415169345076999739537105942631773693604940562045527715567873755830432414755992286878220688921651379393417217003643161974522064058914716103975145667279595480696658641957870225459008424427578742476557440790243060154192878992898231683166319069792324388699957378966289872460565509760084287925416291406600902169364823157466511463639329892117331612138500673556658671204597008661735598875368209783770228525867217072527307278545130849681782843777921191954834674773408423520303226310719923563349424764204905377838008008315563875209583931267922046977443163330675368681096105181688895261440824599178853574810687939293806058755774398500104566404813035324179807825691084218707719673371783829439883521496285230699032741050713813826188011910541848896170613708511841740502990971365539051470198143325935400993652218957419693450059639371822997888967416312619274531114306391005876581977873125083503607954345047330540539307024890862223771596086412710384325314559098699151981822829830987324893117993226768154640781995142156821431520257872109575195706185781416117509979391155783355160727866479860904645210515170127439293427413754039464389061879584167812598989382131953067667196815948382085079920642249262047242729248400724351214203893307458711707502852365757388674131887148674722023848827084145606506763313594671834792064811515612741673263260755922236457463999982021829515352950434425406978843774897148142992163323341411918306326241136649522178941113930569280176806821516842501575401973318266939744061402551623849782448350709071240032191243463606920599718387549061697240869835618021118351992376277808966336696982940124304081559115795325106742658950714529082680298185187009183113014549900444713424347970795374116667973525575581313976828352608757217571455094859774834953742450874918055522189629648079785680917540883714745465113959277576793017832496094133961958240068997319398337305197879853782123169701186303276945015391321969864414706173093959711556920260340932245708690468901086122346227711087231387137851276383011040820164968491229615623850911085326534526617592096682695639128438062556265533967029005910183789380559950376604063960438780337118355227281448914641718385874594401367276331585427431395606231620395538094375721036056089000357204851156616602630526912376566107682810441700514112270966578427401348596655710032346339565151136496752663974813960893025377572604149126351897266690686695145901858990120991316815187463112691951443743172808986510221008305604240650689858632448589889718129727777559397608704859226942033936057379003666678781672622644053261853032597616647237220331664180902215188934569607420879940391861358053796840452992119699647554447353952080935930305548316015682269692116902156232661789304795866847440736148375390001585859556439328882837041767306320843706524415955843008424483645613958922575473486661239164875152908955773571237379806648545249420016049026516135809934970196159122686047289165984297513698456012836659337529220672761590339980409885455857806777171617423800176818837740972631396159064229647689964667890929100048439090428840683726017713857161323409790868866744371914010376454840754431360416310386434056410683286620681918601149567862217730073917978196042820432716305476988149371027235704664651840238109900714191241952699121066549658138289726590314446217806409728704464716905306918610044320017155829950816914226162265437744592698403119422445546927287025775187685385524258109840741357469858661665548486770583704684407824853149101676635943082424221199516680697657964604358918936565270944440925489466857305110749985144540179874112531667563558552609191961019818478083903389812822813119160985488130033547720343384551865339902323277301164548281108041659063559420525811543695516579755968378531584269920701354163603342342534116852558141821802589636108389768371156076428521562943431989119249526754931279302647829528819947293966433581192621850600196433433328496535486718053080635414567408397516203879584843803982902901692627102624146454568110193453644815756991871362493748566327224506890353181164953073580861274007705177889099199883099483720598062453925631492969088029570032161078099499921287725500058279650518780364504993262221697889031538676323755354790124582602333896194669188677071386114734359702194636856362030746714362163980961113172672262968544522892211118113994588683108238133094190502826156793627543572388297062725296328472000857238300761485879391453266502310170032848095838349642692360197831931990578960383826139093477693365655136232294004372229330128464987892864676967464628504834379992197496781505580657928939313818146019726305551879301868315395330060176209477759411454782583388242926415336339063249530425664467896589661678057475553142541003050161985306645995516680251581602709947366634366498197810551317024612556460335540946188080693123474281987031472513739788832326952613934441866548328174808885072731223844255386431281798348865591741663075563836473169072130176749666381958932975960903841530849788025409613516100200491654632691179275875280610955139087274179934180543105942438589800085069865661858235116945766212284336483919305654452007262326402566402416040302255706734935978973762630008022899733141333377225596688092413504500193437864157513629895519897245898428503657847655425925026526249394683419490921213292664054118028407708613091163897945524491468352017877624813377045506768706755256631809301993977616533530391608372684433472437413740963411378544298863394192550180007910140332777318149219506894938555346192131633027894021677461871975967082482609047997087453686489378536244641952831483792978842746569935781419142519451744363563801789096495695189665976540311524406834968042163964896343739704334796380984369320699690487591504215774796512255031647570374539400117123226764642802538114082891499477916063150397840133196456617704952339366647661053544867742683165728780339130195231200871750165382589389377850985540901618523962100385469256667186650667626644958569999649012846249864386058322487624004479826039674792838019677116279285788576380700091315461420545006739800446604452871459491970651664049477508225446118345812112755574584386601064995586657678518079041481839403291515173880819787120043663509701688269206262353892933020181615818381701783362133560106027481213388334475725849426717765262589746644642826970165383331084947109524606363883832923846267055329598768831732713784562769386119064626576475707391491481065220881112253167579971352477922959209624946700691169306720575456410730972816429082966014503868235273601159104996730242065156687714088223055826348869310159911685599103744870508583331189377970125830758656518845939974949555192404418661826648942973350288180923853536270772184693344176635573405805413616134352031707667632997008214902894067018676210969939470985046920484340334044896720355158194396298065386039310683231981067728899260823203382161796080193884672957646861891472462264867887778906387986694553877143797528230659945658627998267901383727133249205962219557859013516321122212288456283339858150222523280530805114810447086398982415090043289612470728272223389301514937477381147707842023436260773600432847228816567516685451815984069067244094060144005651086152580568382040748030648202587364903540933060025576925189901400052972704711035308065938553393357512049388037880736687890732489929908738245490023356986006816948359243016840659015287101510217401389122390713306923332559131429640516241938696084827350216203350714126789998379255208364197680387338744189881504788628597158492882094172175586457400670303379217780367435308002914415574658214273443576089754407294974884081186292912758396944764273458307234168267555837140441697532875019501860104149445165601657256457093184302990343316846059371112597491887986745642982319812074033644981172409645821507617999725034401507239247806667661389822194207701636040700646786045965917087898578866207667784126965321601665688171199526799345208423389414343038489776017500017369627909432903356131516695453523561572698482749671619885378285613654820230285552844693904442528334508064896478351462523552136016169747751101583012914926129256268623680461879548552988116828110005494498463274558137047091619775564511480757183372430694697488314245430801150722523812106284993841352580884982336232157705213087131440363054574681145592239258922472848193527906655559496957219647507620592456651522105216487598654187137991342712605882197073992916601280349762801454720607598227262139331777322345183522335670699833657627895353250101679172835361489842586283360138506571808204987859468637269376586054161328817226646408582173746858852241107404294301628395505130304102705966267928824605596487636227464763137220126762370624506546160489826467619349567142136584267331921908446688783776276462787096830058667264237356265919297926859876986073787850654982492507667389909569733437700930891368783578434943438213455962314280021309950890809621208001852772209133445425526344339696090297360404982775192649252060942908661221390071598371558598037907189835492964761380971371763434095735368714819361301380239567804397683962667367578161810213579078593019432781514914332835171243164573042393990264685055180506854958007346363791873543192565571186751882367983686848956216634483370282723168845572827716499895604612795106394627689516065661808304000067364070642704645630934159159388035532207946166307288477546542851878186354311919585650483333579465367046942767275362246751627508520838119223275732019209791969371595135875750672484576709284405345574910285924865420120795179025694942388103967034347669346902426624218287620943961207096659870528115182677744564262576102340994551051275417092149287946925105596218717005798838346581945380692046286054322599618473642853378963873520402773724926943328760779063743374417269725608302061579255473148546961254114977935653725199871476415507199002609228599783725103857683166464495652120141247963558042505774900069959220908262561198056186243014308636378495840688523596056222174344170076015434096381283420832613295427519621012430549951982457423285121507791202472469698024362599957838521287345230232717729270370598331405388688931999255351341976147362209650466061490252635466395084997215772251058237687278140153304815165310174861057840267484904387835434920852768398876918868397559913265565593288162613770164528127006984639934280169715985672795076492314439851959251581777966521138540710389237091298028684469686057180454057136667778143585066550336951322891925588096725226391422512377634789236122358711929135400142577948399773142753759667249686782882121677660786849679631804867000281693719876483995603630499457383682180586092950481609890417484211552699691389608397204617953980638786197519946330106294399682758873498656378639396029058355663792047981322124186290262147279234269733188823615762091266980682735575725520025225581140235882155630402811960485020422198678750829182378327929791186440253700515557687760070728619409072833661258039954157376398131532640636806978341071405672581205543433738299135744612763009611931884297284422149548133356327601424223780767830387344562108699977519997735354925732661107398439878608313820226067051948743522039207747266828730566946509496569328973723330657981980408970648791701905459932242653565275148473974956788742972890558631295904486077702180882702010901915409224955451280843565595051089760521238188763410131742691417646601769980982233699115775313724237186456191644697413434583954335337212165170476415563431087330545101965551054069780469579559369822116947626499198113047133834702580679234247420491588323263269474933748274967127054292621513130345026985796174993260796235082158123380406611682779930241237374606853107253213567564805939984059407817306715711465049204048765688141451214611711151477107841646858154759254869380571824598904332001677681631967231146109623469984218230895446431740358084943922414902138620011882642387541579084440254690350691755092489640781992671688317286888121260102920080360802051694213572086802766877119809564382499660169984865027758582281420111923443043461166061181618629855452159936073604100709385339704297030486239368189262025341171254985360909279280778325060992053052793381430234292924075323054302391269172079895827020108235197722994416875930485562075710676851545977305596751102791419549998873454822137825787365067698756761927201343633927900060241519718160183627843331237063435513839152941008274035191332265525333912011025325801407500024206658494435378340264653914500336512371356960485688173489300169021058398383481438737043508849283768596720050730227313582647710206882639671172948079510493282195450027069388036039052671921384250856048003889032240291594063150611925104931316402869252566588209659033659441859620049130082447604237615773416246369369063690319850131378299201033003814409402993534035515695582633543478432662947922380481751401954581112050617382762177568610431418032455489472067305660009664475868299755768219487848339371768552092828181115718250847343593464971890013182304369976649939043789902865475667413618186073524805266501156603717058119341345476798800541290329561952387164347880501837317783794411974903081368026029505513835080660133415565864807198867044218579952949190786592295350214897066110309643968332613300200467409491333466849227615708664383822527935705779503268310729263699138462744094485180537053351989915380339821777599508566700357059575356722090210246064899823003044579867768526365984481726204020562582001154452332984519868247777150058213897713481735318126068603280092048254756877366789229885943823984888117541672158172803467327819723314214589548744555036491689248133653906567820676913710504998740339003557912132416333958221840877108000798383260263325454055561474978003424842549546265127175550102691667070061585844343443964282836810327893295623684466767325477638542985335987639587590611146720740170667654186715023139691358316140205937473948998772935956294237715682753983583267236824493103391993904342137786012044599555316477711295297350805755722598998112326984145338055792979904271849743665256428531070266265454442995796697940254119460707467689913206875663001052387301724622880489723652095965463078662315082205054165378153773295967588927534952448801033378942542766933752453741707601936848110537776442543965188383508328214056534020316655524011676954002545028678924223752127050017701373976366302712900944541957600874985275382979868965068215123750090795962267538609997272933927205383890213457669717107828516609924417907108477166837014835500480678349737168623768443577854213025197466243882585334522718968040265031084543896254271512370249788004381650844281389009485450178047403134176655095512738372957166718628299050256335093723747282180376969442333635230637344072949200698090227256204517633519254156998643986941561599055770637737492938105583654410293077883135013192496170017248473155146238531802192452105677130104108662786113558215678126850052812535488578114485509749003790421773497944770717252697907969100573478100617880060084396764491866201461031426003616198335833748284683197331138612280522146992750987949144939025339807520486439868976070503060734204227284786160489739110843549241902434805932594206556478108452726164877125890567128704547536343832121815702223752183287174856841748898553388361578036224131380422975320528415285685712160926314315512116220215387759873267171939019021817969157305672531444812982021816683351859159783358291143100374354128503035086238963803029034588505086156316655971615145058947386663793568085302668782337693458395929754710960438184998483519927545118251019041872133931722286156615387785852364740180012979191318466075089988577449058413473770770365971461351906915339019579243789133859967928760819304278426544223859517901233765091432998388383263367979007308433602070278621758994691560648110656115277115225204724561830850672177949683230609970355542998417061716502026424769461504420134392411647634503593259506568245606087015424000831910806712693151426956282855093315394541602044178078655880697688912933852773684752676201422148478387042303278495181905858040734463220559908277833513356793858969536172503966710232715799448077433060092175866605634050194277009260186208968118726039441178907702339448737090907964588098741934623990818933801421809495799552767145165948525583294503615047831364702211309121854044223249784756210369258326215587946878377099556429993904551714883840593645550715590095434733752451526228656320311328093636781435845141479188156884453700965850749716854696924951409539242484320475497639425473059063246711176296284247834810351509357512308047312601282877350422069717770853918842103492674385449956417840137388952409434376980893702782757528244666890534306033821665370463045493163335622226304431575159083307353640262998974526700074032782875181200877752615969272180057864240629091603554838813866813160572797709427623007599627498698796167607226497274921077216618252463242744437408101405940788822618140925776196347512380491188723524308338905613400936356998734884435835883732150964929063628429966479197555128744077420483120693714809985770242649915120042975831718444770308250261675369621955921960809212504555061605444608870652294993924267213363476653096388360048688328977279791958924638712868911316127803599470887905606757798851934451207786489416901147877554273064531419789392270726605913333147052143871266293309035920998766407783042144730738311601995634894531081029665803223283543380633114947501549761412297255939825482397425264869143860894517518042918256343974701314278864897914011048070368953104811898482526053397711597371377742108868384182578617675520311922398028368183617009014981831182160770702677206184178461762035434084760505553678696783417915993637432676575156427896437777525127189670769323575519330625114011136431719167925634159579445351483341539391812993704570285333642913551620517017904981577690441208772031700921893756056264390859210675429883153135895770260456901177969164166567618843558106997342455291171584981253383269540326861584258516569005223408063082041462297650190465927614704300656528687275408600435900134478167664105096098557544626217895246444473048027139895320830518841902667200973733421243455162945216813314693477242428263206268330899869983827021737702841224513509153656406773613463230894522441884633193323823548163964371530351571810369704120128480862666109488993187214791587056886828891187728594413686404415428845972022084537631358002975551727014482931211593555067691894682018601016789294098514911896719989160489654884855678127589791443486449494908389271580603373637757646905817591961300883089921926687392219876643557091849559690658213334468163390642566337202850478989979448385117040756182834448014889841514574804361903827011533309305605085986401822931699547689772893121101945533396853629528959269564755018493193606927055910380213048758125687097312862904658739351830529990643749171869996182737706688583234514525872894467780420979671876969990442443318284406175235133806563191117522070491945686416848207047901047474701449221165720809179824265530727771902439428578085538896775142592668175575829738091780074968912714528324340113791588882232412940555562378675688467723853582340307086093561430586969909456466496342901534422751343949641754560073764545682554841357009286125365032211080129432839396988171567818169777506632221797196895936109818448165699153897465653294313119172096010635826440597143076250503134931343821698079456367079195156632001469145668122405063640155910077296873533614646781716570781169055762995442662537953724957763418475342835268747365042101841454618144252520207551905397136764687544174992183320596299500563767534653654762095954257489285283524248757244916149741981183890363326312915805162560426409958288786901287358488163877091681673201415466195881066429771102229531345500278184357544962069093668237370272664836852326643949266439900526173886140040336416742160400011919476873308400669092550638475100273048335910377109318975561769752916673470618918684645738745307568344921488014976286690476009283137895845746217586413850109548464430607318086367266063011551085066397812249155778522011882041785687525942413908680729542078051217536881716369853402269975233526242370506668992038080499867824687069793654559915721413582243413080623136813914747771258995657502763991413557434377442752858103298609438094378773720449578245505257326655542236723579024318800097545201488579737301384843108995324162164662921447760910506402568030358182653206238260193306558737672382924774470478873634424785249005022534242016514564664519353190597171513741669977415563509705693801163229725560673779772202288945889592610923989010366321525409482810683995376727216066455541040625036757720458972243547560585565395452080172244998313266733766742312228398945311475161817318472605445959291109054039762272479225792565160429764060389203720579344052638919249572596211320931598758678765232819770517975824381573530089573992632594176324239011605862225771024790170659127708524394123403284081616380837486123596248986039799092221011143376633095205193753849068457787718103694292331822463012240189940771504841244696499828871243523306122534354298275524429809601036548001550206811487095208696263364150468790868010555249758492025456799516196455270821916999408674906791217587888317117946746208817260947061860408499146691300307801026321524828889777769774175159961777237715768119295215723141452840294637138423924442950818762611573296046495258043052884457214568022405129985906291612626033981847301220834440107537839805560232327650457907229209353220141442954824710771651274538509515346133660737547380884357502462008358109311972009181947523041243617991791578972187496386895381791142520996049610546109853953970927739128159788465156140612432324844241472960526552923384186001330871350479339509087685090199486132395470282752687572147506116270265485514164274781929053424428563067001792797806885744568322230467463554234299039677463093770323487758455896708901772269021977909207223159701644870223729797425485086617783832939568572810426939418591957248537820183022275363625387454278951201012720522492811191153697738878289834441451099309739206633140184492200984219802563657417856144452994850765652225882050142430635972913363267322749825740787428794885791861777000550763799187211597067442245978776402937353513242415267265079534597794254124000204801835214241311731443410922719786747366624270821632397794192712505591424288544618548961957054579928965605907273847001524464698425584703426411667347513916402062828649530957813797683747724835886711816718315460299445483079825983182176443802486209505740640888720049933483427914750864757124604409813642350285102143967414898678341800213547580604359705116807334902547393087329468309226916911306927785577095906598684050360654515603945725974113941798100059654949442054072964618428221138055941909894418044739286646108400449715276822485051284646099397110883633509049927937290434381840067134584171849996540034380494612445184999221452302066456057222889181519393184104073739941473084760536685546101482534473182274378773387583789538455452763304137164319509177058193494218441560336671800750385815838054478021641235875019819234623726862540109495736064405955793981806636929607576635206814768461029292400256932454202702755369994737589794415152306820761351212059144794753689196985714540315810570194740676158435600073687745717976097322847087473231363176928139880880008901655413785905294119406164490951310054051514500834417183537432045047882601579628627545981379461328102067126427814673591023817001209336633582335043135944255611985649451972123584694045101717563727062752914958662291960451146313308379511372647211932771389437485378840106957707123528342624798352554213660680876648648010572435594090086563375184108721914797842266457981536999887469312663965026559536845597459722317641525179673601152718995089359839354941905162796281993177258160709792173060132663932699111497971158604306455362011643021109131913398010164102792918709565058026164553572890514257513500232057543520413709549134525676387464775941724086832428752460600613035504877243922957259470157603692081054239512186813982254307100179721586287985416815178939057226510055152921939339876242236730845720608574749329439617400655157812077441251509127592523502401023028152798037130385206341402570526464213376393793776678996415287644828833124344514172544722186309173516656868193810150977800756452672313766495138900090911553450197050245818507519756223899478981142246935956865756999989695131423757113281123955168103690029326083975037652938502323985640866043970706908346125390946840451048343296486593174462012344095868483124535984978233225493832381278650937526649751541413751888136847341794391220725349425469913524528957836224722029602839346083969818785300887288008239277117073401547581581320210269566906461535703665061174308970422200701312545937571360049516747520146087219266890288786776078917066009017918629967311473362169502443397311369498244832939413430615875296609923472110639797664870469123716453282571612801058128771541800353895254599312463268824415063794979555234843778401380374644473754259832385092659471021487155087207486431020803311871626713851130953319312396043664252210254570244210931746612059283969815071989413901512047537424889548518845885796840180558652257391211268244762547837649661630479352159935110754359141708392202884502344232745393118118056087190272977294426917552825244491479623195224802154162947774256385960546572781263277006553415246123364245596945748890257187878161004770420592306538688689660598681768951976811916333592565049292209191961250358995535187601604557222966810754533893214867478029717434961878113192671780057372547993135382040643429710447101018752097246084537701252973542536413671869931953630772478429516961154421377780276561825275280114265849399833424917188055185178528313925441037873118767927307960265339606198838182422828205549124963411433838302471442101602505634846705970144350940205474074640271293058991057007111804068514379555853050243071039409579965623894760453345363632044819555699380387528149792700404220577131027276746453942016267271499588626159653962093250575473118077043745312570141483958120428561914196211319620836249174728411804346784728001521146134132508592122951273433710068307771836088233270424578882832799086542086825499885504737126512587218948038392233372689942728955850627691605765967170438614834072670698008960248605272603688554242799820566714098265492331194222849168308730966371942459944629933901224843994919395289799249478316601809488413281810687036323222721489646928624190314114068346548599726832553100363359084947374165673738343346440356451007275214413019250674272384848988530302521501578186730898352473548122951793506859022834671822472030275229788231894497975364111505462446733798855326712572292741471812374297119553039527305028693625043718913143106862548425985439699987666184367510934328311371856938209439361449190766488726109239360116592723913925252289331720596260228301569479763014722818778057003371528671966614245641071970252493213389986451845275068064454649433201207174256854547451313408679518426101718527942487316194455567849424771442077486390062313981744549162068174591104784676618277084752318424350195979184461759589560692653609840775522478050403410868391155004091502942604157495995921295338773739127409493159604264541677479536632911430511050124615083552562380472452765550938421470943011625153848764927378501071539528962970871579668350397218650920806306256165260728832157634148788529062617691655780519648174375306289900731007421995421364422251672295737839115465470875194519504163093633525307059935131994596808386538024927265303683482559938318401290993680451705737067427389826576968153461424707365310866904791377600108890468079808209275226522812038774386392259774800195596487656088896633252263149654882226172804492582472988041999182860505379703035065054555357337929303965241351946005642353596986597962380239162415772608602280058002260717531711669190208799228712126282940881127826879811559157515054272140188976508790210469028742508690959616346860355774296904298497621034353801548590472092563641950542513648061906804155619905673404377564358100662772725331762256555643379319176949295701040450210266181847564775437689102479681483992443983229394112983176431644108091914532782993402780711893649080382652537215681578812641788096067500492439409780336508384950463421701575143096967971083196554849684343590268342308833793845222002823329374005254166623760272878721080506930505530793171311955181188654364928666571644926104141890266780790327732437446954532459770071162386641487674304296813493601103070108840855768338508504876407433936805550268708755104460161749137145101248674706182942067119301758740507290225813944712583026907538308469995423251462050090508402815086569506101469090874534429562416004499310929648919382098752793182940524165774783866029553741310390337793989806674827125846347961299827228175021885893109862119626531751894231406119762943344143818258771536368810440635488978635984179967857812200831647233907223512886102201892235260789017899396480010907473582694323134551476844283962771828196073668217645518584187338181002302995522054907978046541702055533159997461624878495191581759285782936418042105112935129170338124626516572960057380916615064274729524654333111703012548200430249209076212023839391543668302306785329762005158161904515281271584076573886247800677404942016044395037537549708843134481795679455879372697031821013987107169470823839081860336297599937870890190749111639385788523412406823356696917468287528490163599935860985168161459992320192949711477831029119631021876655577069925237378211090319958478280233982009477630272383103365804602676685402527353151149854165862842447345762895039535128829355326358890589853690382492141981705930575951402773562843987493089341014607070450869917947761887016182054963494400269907927505799168322327849561295026102058353642999986331775284454551278361126501841546462572354887458347434288476899910108341420756947085497175363553220427900121360887051131559966959920079095644497679351756370787161632094681690453005432556235227333907451700757450939491917706276093848424406738551656816666002721369976822248850237495520432784444349468443010819417681873341547772967926433568883575451861436141238873037934713821107833316057767537193618771846395576948302090219432785944114269092584146930797493350694923955358854129080221946039840109481745560396103125712719285001698024058138496449217700455804054268632734336612473273516511588477014816894481230529325336292275399849781723525823712167242266851799230084379632600492578606360277996730712833740905491761856182921668040379449404909416180083898046712528535695673421208950526746617868129162416860728719038564966735952396823350407721535364652116994118968506314728423079451825065088631457873536077701206301938628309614334865470070725782915318926666943675509155783227770785736882848281957169304484534333444342077101143777499943265214605796446383295267119989543529032503092414537194165703852495482267461911011245925802740463098900513253168843615197212086181310418524563146879362977646547521506463961003008509296724105432983993622603486529625125003575407852250774837713633530645621674207382817186236042209508329301601291294663271068405290650231579875683389246952150922521213208590154878375520974578406535779896666663271927990516452255019233447213864059776106195744630519787230288066603002435681904152957851839318683034905200985549078524252881114672808721716771218553544456520078609932949343578532620876593123669546839021469421220337533159998807765125265344297528222610385788142926218200079783593219781791473145145132328739899889746970453193013627940489222272272305563425013186006972424431492907819695574811771262186326914539065388105926408523181911467114621857910191629002921757813555799953823092937750126739754812447653569879244374292699272467171928486841679335145600039041374589445417066852975870527627603290330778939049673234305312556394631943301334683293063050152983772589642805118762016210893564991262855765355917093736624706685765965648505160422366828193760931010016123202775827814820268557560363957449211231775565340675607386515257647941985043475505220568815679485557789209984046420701262486125376434794829229566288245223342371636248744905716557179845365315228779046512923703747287343281858885006150289832410212228594922283857919961668117411510174362214811366074579401181791730105286546048177651481003571948106854220792149525887326692909749708412989695879018027604876714588821798809496558796751951893536648750558352911413749038162307019034191032792504923021338485661667451764921587453398490350339305745859767753320464963860282203859884260560818744057776847551436598797640568500298090422209213550704949141786982252844000891455184128652164037580201949441619822914614381836381780074728279191300789731794140925634700402620415262814884338317997167261754280666682464850726767826274617506100170858988538211753630836739003410138330740908843261057825366657853579897017739977927720291228478008314558236686743615585902811118614540419927670213375247830306483438691954935209398280078030956938110276170962058615107101026105250845661689894690212431215648946884227700938130555436208697053924002443870045161551819365343688465480500887081067813244263160471608515725926963773259563337962193168148138822640538284694175163251969844317972921626200486567224846474095282953224378621272886658325664700445833679190947796862919824661207162624065450574635376040428927287498430558067940358647052522808096508749145077680362313001021561483577381759359444562527322544240258425938872611099722722705920947970916321102948133724307653176234909251510898594192539794265059580251704516132605383061846783910596679826348139594447827615851449486518596543452835373596031869195987517289395192924526289833554623394522182444481044788339243584616116072640896065916380312588617684735255982129949074966465297034036081800572594779096525130411036862957321992009875509113671194915044453614016510493705394042875447868769422309226714983740024390494816322662307110765670327850090323331171808137219957403301613644450018346823724850801344799239093901075918206217054333515969803522130950925338742149673833928153795509286284545929072234136495437230442648427253774936201692131626895857458795004702162257352599178276568614211738689518941028224263581363000917852040444634595504484149661416054690166006142072929643444707608764776809399791561224767831154661701878250283019010129623323271084783681259401469923908625080126790154083505817927156128735346814365637385008248735043087986133497112876790038915224399895475116985533871886220490032300865335008960598121790662263019144671054762813808394821476540219519504046199900098676968490064732344626454089896117086359984493635718759787818829655159468553420287314549588916415354451312523390222754074832444479440624097004524817825488040411944848844149255567897803758595278464316182461039895056917664716311547374891584283438828633871526076633092147566798316324889670341850125965337310862930634773974144021221064094457549197233107597627561945437375623105269422202963210434759738871849071754875607173170344624698236006038384991149233683737085341429751448021514778963373973185463925095448315846389137115693900852508613719130779878124166238405364323719939320043554650123689474634696113926333415379137797056263603590568209098527240718563121791427467713834812513016081058336552249486491410082628852385564442225152060562591383402921384529460201571475221546774391729970351511367180849305183894293617054491144314234402422475379300850306247842929551806114410538802478549945903735557359190290193995650602745502342413612869458210592549417513315328374165633528868350453665924709595068911703888361324756010986075710119884876554370340221088886230704303234043309732359477500260469367356627136549990458796176330151931714547504701461552000282925503017260073191819555676521977852107597279251107214322007785709595824229466945146585052220465206819775039932735277033122666734774707402403231113637255273632902887561577354724472809121396322478542517738516012151736242648381949514864755764802218760140921657091766950026144751826819946780408366793547668167340301431188050117528686636422733496503759843762082643502118288583791081821534344002936444747797763317327179168492089258561610936958102832270507587827030422230786211661423026031219824333429008276445094907296915028677171067504882282038835282449663709539012383082885711419436464929318130990392265912539862924746749867396363771515965815400120391142118424312945165130693854675119415014560009183303883730168292476111211633476701561449367314544477360825589408575496376416074568377493849539975744674376556151862683636906949719426634731568013901930896159238078718412925207820983811482341415406477518696781615218221359473315565118924046753054886103723266904248982156270119672799495711134771986671879257390315017299045572121943196971204374284558951782172304509587018673856624255377516188890626767983213776471347553766046449639081413245886697758412412350933914990800345474751187786861110606911501672922463197545968475744769411916877601173266651015669139133047742137071655051576597740821253802146307633323885798780269523775288244145203791364223181954845177235770074749838068165453416815183142222829350900346598715954805988265821394974903255000249289340254784738390595287762288195406531794416901171543687439885769713648118206842421438448361506353660520830335594806880710483949834110679206813092340794763939995255111470696711524799427037866328347514351547340454760488279198661527230407798706141456434080126313964223683075938999584973243032729169505715967255826472348498380817794808009469959982013462560316217561108230300572960234565160399561854084589373245177009303199345102669778165961689778441992763071584355475987205505834439666815080743537018543204525192356110957768401431379426271402922215327252768220742759020398388784316569143927835054466432316236817030634218948731491265979369958302117919853448289291663765439455776938910642176469693737738837408080101227867517391706489012353189423092223460384035523472178335862526235258876510809610490479131520056937955093032162285168498423210777535383668595481104136110708184319636972109763858084256544640689873350546495606248188984621996207270607287260332387086359857692026259320840528400101069043651310500598122299910959258017320931990449899046459353218869457778354770739944882995656361647821691433117142057230627533664849091563965078422903341591371328499400995486211422238401883386493788600658249516194323559620667380045090634602576719760382895966545136641135942932462145944412609801081347377460577943358561021375208533317109224572556330967069104693739023378763294140695502535381088570576785101549531974746534312844892355460454438458218059522150123651966609102539393528983378818329418816463444141141963150027237047552146919204797080731311827178993083809430013454897540154001505185441158726723748825948528682721532912329127969167458879411328828509001305959972566362173571113057395095690578836182186029957792719437172308693762121069938402454564683297217276705840990879713924784813251927197962348702320331178643474338890981971603940762587471159389704471512982289709393967847727105395509332676125716409098366596106576198007270395475385136084352953158042211122258326498442487696257235383561931982398395949360732151185881699752677388442054543873526144075443551525145129759705347243597204323002536891683913096288753439235051588439025365222855971978780576004595978492142986674914662844237453110166317827330385616097500520651854412353993910679006833026934794340001548351017353526761922690879490003518211153303898251197538293764578858421380832812329521898150787508716161048332200943758586704523920433195095033731620415905951388461874391330801308501471661416571494571308297520691124176798425248905535035284244787035095533748228283295028471213168440521678485322999328206853093980600481585451317473186267324694191575292805367148716061184624968864757392567497870085106205068443859212614257019355417820554365526739101767928643024195083754217313870758819231026205210198123829352195492468618474211393263764475927979134682339190872440192057585427137906417791037825956659253968005406270350429617950572834383803766680741247244628954290622963995661807536202504935919962797756604073261469721534390208185221579240285917133304899389535140545518207830727256321268604020847309749335986793373730815403002539613562142853614724350046519100656106375067721811006447162140990257405066871020586355553592112938326461788661970591422515568923087429219163932662032584058092167082343593221843947354749124921385741778779245947234788532815633239117176327476135555314998881981657052826294866408000246213386113697438991738095493215843874433967786691888672735882027640826056276762555391015873874209144179210046843429413748852020790729384815031877668375622863052219533038456986998381742907238235266620688762009460114553262797011880891831522479537209547256073380273025022233396670458385129481822006203788777571275602641685034268492688931305410951436456643141728814650836695994035041821480800312379436587593392177337178819652453030558137419748276104353043466322619843904513109219399355015326459947341557619534210721534525992076613999215696823362055620027734548133590408580053094929270654613651678080015413751135520045783532834131153151282899635683843959893277773441576122116910814586112358372080139689508810967255182444819085101530618717996610903306407169233858758853817413143777542957445126896694539423332824935900414316335597694065520710048721605749433916409182737662516204358163791509366300715519410682161479927936821815955795394574374152654219018049806191463579199774960047438278724226183246566805927196409155507497667277002880983833842555081629303545639649238192428408195815196221632479678271493469836183581504697163342409138751658548196767535168359297042395222749172114015067807762569762315781669678078735531351527932707901404528222532541069180549626536074902776893512173076182058276154989555904402911453710438232573043995195664103705358325185415580769525308710607328945205059744169342762063414416654025391081855294384645885664128118840211185636146195118625491834884721897323247569614780819647425371831715676053181305003466542820634832929752090398298113884774750498525836254291775828797584265100394912311698235599113235195702939388172634736211590394198082359845747543894168605402677731152085427091499589158889868879846017596450122119025065782092869656611276574073025972219638893640192418998199725967304408244315233574473108370458472917447961700252300302886547312755517071164151566917664215183272155486803054763824090880542799767899869086358065311565606812585253214659720956565798251446704987334769871056068595415587887933968760971033137687606715881582837609744065711485571981426984804528480650810367832768688791154248772552124373550145010989724989950098783330137613128260190923176378153109291182100023543598889446046972773328315974353819106078212764156844641127571813329090409714705671694787965674223003705741645224039541656206679988631819968438387692828574472544773783722185609993880423206422833908232769403052956305997457329155145630638920360107359962480031103799517453247927712365752878288536114785252340914819855640046102571307753492918277463930375269760950751141369541208552414320552653940572491096817861246695279512954975064759779647739538571146998326415800551305933466237122859386345094536342156767324155574508888625755654741691793635264081828752330922991897397850793071261951003523887204244571052143224198354726198356369675244439930152093082754235175448086862272175127019572934055996231654180033801865511542205611108430835099620205245117397054566617616435076315776438025740561039221971862146499021947144158001472881237073662187326558572270514650519092990918377426060667301974272081903868500506194669270611424113276467540886779441673071760141206755021482717341598236676476552326191875771944718679254278013914129691241959409402451561754558858577015405490180508095881934015603844725129125685326849602879881161670301069842800397146491690352982706262194999758789646583968775000573161189307512479779890970909264009881202361983036428436849641133707511272506947123975647612176406101837428464353747093473291945100290401741063750428085877144466672455713083610516258797303500777814057071704069574188229909443537283586967987079209048262974831986433179164409101405196028080311596421880806830250679335646815920598703401778477989178339896864124870420524283337696204628717842766115902396146979879988594415184940042356202052605193079884659368966119148619704261919308467678819093346802427839823217421175103892203668434323720974562072546780004283562746956254869189353464881766596552187589591164434522745655939238713620601325924887136862964493697485107535697197631018434628331321462704121437466116936153135265257016578167228673403934240538020631509280990343105014712821919697231348727520632953646499587109759633002157670469359358962301024756412511726409883474435270008369663072027909088913982342593410141959095259695670379216603456979178112640812261025675679612439977405216292207233708665273348705515346831938244573308306140518592245526016415032232386958542419483083561138735324641337030639921196660708565068448932357981671422418833702571394064963640856077531493514652554224296787782342990412673289089721229205363995031167307114924869609468587355885265466558606117326611696098076767961450847605490395518699475567511792738450258979373245829726561133944143111008176794026045053402722217489037566172340370655552226628798900470291498054895029789751613404842199128379233856303909721644633867844808051767379065788128019541636031033555910024514820809723155585393272684995937655660746585496456210817302854331153352746946649888288600796164380322742666016285696489851308010259494018231995827800947186146840437470891605782618016812499106741559600514689969115715084117308628694788253621681794089157654103729675535710915393370189976447628766220500180913394055204552228582132186773679368287681314561340742086536889417786620704249241366947887019088767095663051787787608000124120712574732479416278147402279419058370766623773261387340147876294750660050286564730411581969588382684920230065395765477671795458109400966407604078710649294510353513292670652145423381568933481414086010576376693342465585060671664936596141839419487429537246826322847474411349295281847891502951966366852449190590797243653920497952211073537292481747268749137133917369089560012940355459436079591521552146561389195207017618439847490261124953166353049110411206534323679908724216342717858707268874508253459514853341902546096198700593891970950678564692493248762312116958541448350155023544114675764304667205398796795986739497171872333727658537207127840608571051891100522508295216641573142003787393435501673285522281653326960552451682022434982319921803391176644951719765417659279991039644396206049905920651203043271406442466768566427723589657996523313827767738825189959246034957513357169730577332762715215953702268749440307182444497659026854113038908545386770024831032461912812830051792401424172477958484189979719738142744795772581064161557272881786370757631060222088778637442261935996505151813040259089306224712616147009555873005218581426780394807184939128297984844974679037826176718571614321246014563927415190998735088291771669766527999632558802108241589226064092792254091770340023751817429876100276382026224023376558449950217552430119035194346713889499200246840220043734747462294856959474069283126115899664989824311317652807914104955587804126230286805564314250937584473991756283680574669769696414145363701549230642701765498576116884329844680734773267256473830086831929977525799090539454395569060949544137825024478674553532104649359618856184155600473831043698568660743663497836807382554438111510349379915462068576701298373896598158926765339757017775624733980069379891105465425411713691694089525764546022561048170406296671318105340969612858041664965119288188184532816562797767915493984420747305349574943456756195049979150042101451284797227382970020304547112473854690039839141348424808927033382122624320245961701444981764105232253801846798527508005974833096446283326092147557312667873357410419220277382036734444446509363446604850179960035804917689961082963615356609221961670817563383507383025117460604923395889501444435575975843982989016888957514167442896922996757413456057662998241471242109767399728951596370177146715195968121953008716176398786818042995920156924830825820498599823538193599438109630268135738177112964769699559975817026702127794051954515580628370964200820514685044054019883700308629317990656387982844415034669146013288004017566012847749397292687333108861193263667590352885573678885937740461067905172145187323240039968466535446592134071473821078370480346338129161326705800514170070153898756609745475439086090878953198366762254863077939588483403877940332983534272523372459491751946837341761708486617413905977849909232471851407957161420950293326017227970429197374009619973746528995769512208035777921212443325600009881370483563338548072096326515658808718550951284325532113717066577118906773095641064952303423769883909679142066008804908568501319855713915807796546538885678952328970447365884417524023746160415469307672130247602650941922726181859228514494156089431665183487979492834893858827108899019559936838864774853891029391639984150794674393556816533120694336957381229929193772618416990629975254571108669215311824854354509682263638372189540567886229885444539872239611831434673313434841895008878892325097848897988015034726986601043861451328170063036217525765560370751866321162989994059067900523037552866024679331774800147924189969506374184458439059444204983259883621816580288534525987033163598457005578109655312587691002279832250342535195961977251669029823377260095457184854032198281040819496650442368550148144685927595184025945534951149922233104532403504049930349064121198691192373497597183715721855160862584365694994606961351725475145126917790652259518717208157459160267982625143731144377287090273540026149710243680630179610556035286247729127307509378508100031907857878634334903600021654727999603740921110256377933480862798361920261651976098279771110389115820401397300813746037468583502771996084181574070010436801261499597965007567251071248259254931410597945723619118004522342856388949379877870786582841456075189645094311748399870176053437760868361650245491120317589606216385527232701415201780679063084223488375246758694006034593162371594814739422759521301706473591125223203584022653557349724112331663454095114404909883677390975767374331912515560223861232860144323158488631619208028338191055320095465593136546574186730078795980075424882422647217614542483628217444291500404079822693870774108560440974225858197198099883638571217543606844100066575135979765472168416736891914243856218228589799548761536018033039139346991921675083954196175295202065797171087997934218446563537110140719797552847313146846588607809882363713062924559516524203806607036922399393146673112916050190537923412925510277534708813639746591113151964546433851419241530816735334387766541206741522976673096732290827994809746552130348402872423621103921706784396893217151080539668813048910734142267801992119492805306281663753502761953996219362293480496353167653417994410330334409196108999255163062139917639176305665647564108346589135481919293113925350854321273478712968648201437892443816234441160324184290098098934604551938000443246021207134636143556879411328328674685942073785999060633366544718326913710307965937931204385255578534618546793004397479754479884566332596682501744338998190820249355157788356422297263672166574527163985603439210448350995667547985040053305274072060613518674849810260937613601836441229916143422368554232608232349032835436033686175558563249343617672891006578957540463195187644084275239733527503647589638732068653647434637970898994539960372157495764255414526542866055546270046390457546585971372316869259028739939512905841067613822405538635205567125654906497321638882537943857279540447337504912837769360209558951410245434860943425743059223995160757696960313762034317060042830365876079924281600055141875564128827083723606281415478692028798229255073688749648830904101714832310743609481963514028822851361333423220704317782892361617836342704168556961337504522873996394352655975092874626223888513577631512624697009272983480152507237641875520663286738536396991864251084721630792693086504990633478216975616516684623630471962394644405296475100984461014870506411560109625613253302205744698758928228356183543726953576581665613810953553534651122382001004022974235344362994272625409640417946156298574550739533466330915287719013143631809190524196546226037216087261965085132533091337588127464486073568902231917714350619122451148335040626909008493954921850141370222398235994645629776509012704642095429335412422802321138335786629421811061574813509502381526417760678009089072506928426442377140809291279812930130949005162151806084528719381689553604551954718103872045185500462369987238044167991492829655994518893068361891978941769291445828252385551033110417128487379063397476003743847419065211693259226987903042583950422270064562881583573778956231774896787699063307239752609176756168631797292535223190154439701942246729310685707538812387432718680338262596653348772436827124620293195027373107093075703505959546678736940669232717422894041020487378368607249016980974546177926535193181548513527799924071727371272429215006060044502746134746669576061933427089495082143690035771761055916598788796389608631802294967696775972200038239088831260116536020538635483723898333226258957443387927640456131418233314196846547568991328654938707053060827362378613715301417869352559702810837320229733116077507797251694110905353217861335618963514091156134055322595665368530894888555569146194050425239858965345995973103744226300923444074167914985485089565283924516767109750267425444105675860616208891787467488296269585916444687317335585566868325282872094745347659229036784449629927513244567904554030153101623641975556264488378112182293956593059128502017577653698827622864067541541862239398916520043010483484517818344752827232091291348098944998496412013535095826240485475185940807600596714391053028629178428366910895700052832449149496910936043423226910311593299910722998603172523471183653451040403092591345812671837696985271977643144690285699026922576874449354034983294777799247941195541300093660261227455846735467129855459278705384824734018085392100984913851554314183626360655992317445034970770693834317104102958368925324464947616901608437522342742132417936452796118732714668521879581291958088187665803578188053042982168752825479885288252088738786822220328073128768914535248306653704246324977028939256696038777949027765323449030468728526762570395917974677111552520505630922111452848876973990006323133714752117178943727540916086627796168109235348218831326861173101939997761504943979126517618631131586159271583246993404829155686642901077133248857250803568795416995716695390128293098795228872941800358437496568920694502145598151414012328302834338073208247474412421123118484618551987512308370118079762716140830325460691925745051108313840226841613860674545344202371191424546277017279132353450932959962003950530344976731204250347437322129744686987036635960196257885737958643402966956601514076399243631421869997775479326685443881308390105391669369314737118789012883792651468700035157958716789156186142660116087337997187746335154376977902550574874247364652870168874894241369399126605826931331177889821217736213886810842516835544374530626183042242791613424859692732314604345938977627689208115350845070356414115390556307156930724199437852256505803238891496215710844023768895453144683787115593886688877754874875908850064763688942563359772334728540548921446308120555662273771605012976974155716333644730173653765016265585401071721545027115101920457739133599545414089574533942048206748827345379424454183782876629511098911145580618143559027543490460837017688937491299600732532468359231752887484941142658059993259766519577709170162065741582513947653427912703613211008275364925555633840651287556693920708835866901754451801223675061767644487886320513667086781935763057565907172082245143490706175867217131316317398318463390913119425382142112728453640480391852955606257839930793920076365600075847872522274294912335710115792992693396453421039075709126118274748842945815810748103025753596507683740570191061063018443751095629195003909844602555389270384119914895236771504172561328261505861230398518396837644861811086382891572267112474455481260181677309008320163736384777204953160681644178200392976542811658131771143322692868865019555617507373243686388810553208037361138600029987026167385407177280778169481257283302360712726553941544307822194583242188986774258441442430416383928495260422481847207416433665640133291578039097426362695746045882620799246564747656860150665074561587365158311960254555382499425347185844580106590601756163636892969419406039494814418539076868777802650059806398759086396853006820332518644050068288244435262827591329931066824655212777908429720682168201079284198018014514040623056805794227154273865568769075926457670397309889951780183033730145125311076251058739584153976252566881752489272273492215354218615484853210751736828401644254804063173958179327442474746081019359436406996237510111320202897964637482520342604475774072606018949728069499191995969564622378760124313279572336354866920079344743935170360630449314118799972006645546082683845584541978972642534847228922091313683623428915174566076453798878616330391484076514969983148442453872507210306234678340718849664929714525227899910835090351981573314653946325151359861991234303373071009286222698984644793366803274941676488683314488873478236933967300639575309297525043280274402946952521444031277892679458577488584992383180912287823223509938265593481151187974347113848777710684191516627938790421775716488481866546770843120440230988251981316801586190311192504565279563564094022538529811942698078825434871468758131805252890032670881667542079815753205966812188223018608805078604468865451398033148535690345906793325919073799192831784389860207971661769052524778188980548675724314517599800351896408767147160427785114322904084757187776659885182569815087288584368993048852539874205582975962806955372229788544922750965004615537518279621158510941249498765884955477401595978202843278655648386995253990868797180235522321113447130558792057481453216161414219849101321477379180213165437809462279538510446042864114137340641055549056132670384682943408501171971359560930531623660179109488633357647421942654037799359888667470014041819997252357107892773396973752494397724837537326636306007203895241519008175473611969106717787180217463059698472951384977845028429916170824415179978384390253320486261444991340512797123418238367291938235280536187354344822557414044948009043124157168746993370002215241719471096410350140720859634675304459152365203168728386762984841079861448566782785669874765439156911669528303587713551338860729471303364140628168619170787103993958013434570133905347745754226025169824101615969052687948003231536494574029240844630407694585564165049565935941564652256872117954682592903450001169747603211149299346164444209386883366438886654111635343469449381047362739696109436219095167045196614723967702989769394956364186319607929175131588827119253342301732624548805569380752492055923407728773272262525808160802936641531793658113161662663479626269522442246510677207433142234367366373984407747964929767616809307095451169853081588370034254247094659934284448900416327408844904503847372812356975512222081351895064789803626158889114675910657818263741903040119191461092836541765742026776809750371519632005735379462413121616454213169719960936148599240246249341547946840488294330858357947157905680560546146334698326187201391178528912292941359705789400454532104716524696329649754932226890539130616825136130828630708062766339980915283945838471568273314986227581466241471418737130563708023073201785986235828059831893465435301599546059452451228848696106838666474831363814264855968717062362001024844236235487740948490004193159694969529745828805133682234674311705472101900638118626161872954384015846677705084296820378216552798063411673290330956568376790947014080111486735735362799861007661795550993033883775064759488110654982404232483727924794868984308116712729603018908039944335178275363734482057255334410433550851821463133734128970919489216662270016958551040190418889472320630160763847184168701126977344189885322742518698334717377374685223563645100464664044001259151344275340182851833584505898888369498454182083907561027893848402835579083432896563949983884036976604495206224223363356030220942604078358767260342867787992962443195630429904416043156476685272625704455527883280567430752412429244546151330058238150117951591830990081843822424753487253527141451559455791077529929420230757091192322175905505836171820724726018135988604911353845590428762548315650085446987412775470082529681327462074522125701458360180274048764257109203750080198520312005897693768153090287815245247933980433772774841607710638585550369299943189797795343302763971462608668775637270273781171913901107805229307036601421423002600744860073024060071325631620231767864303145807647774795737176346959737827072732005368814556192957058286769904361115730175175525396720781420447700902319224717693509339901154452448801604690025522535908332802659223838427659054884738320280793401068885366317599954828665418135727690097562278860690121327462581732923139139892922292014506992809044612001206335083748305994852272420441067408767468088723006871263798709942133016886052777760287750836585032356398084867689741599515307102014053204278012953727439122663364385765749079742185210856264924131169285901394832609067527234438071602188990180624819298755972980013115441006590219012230212442390204183028727266586469863137789357159916420241561061621825486969462604224505432856138158838316096872479268282520138524279442511735598936528505461519907476449181592382573867212930651377181793324634693225865361168836438140124816843245669084112197466020659384274348401959725207511490599927369243882444747603286416117572987103831416754462391273413814199074022936747042925194488761459177092346703766411934400759009382808058069759113683715038663549378978688443981113159639035296504032034601619082286582298480480781926631478883818117530357080148768014295644873510353789968819576874243767038438890125758964449974288518796621107709296061891606291211537353372287416775377827367228633249777557279333572299401931617207189659452994659953434542843501021084570394236503703072073122830324173952186997231053655885130035586336643213062120985327539236252537298602496270132238465946101076432675497899715749207449737944201845735043684547713497835422707290839397993645158028442223061897800529257009927846327485383247713309871521064074563387830129287203407334691936410480964772815122604339663682994880763677279756278002404631159298229728141479979208793930849831118275641130956934073014681504389923386706526457957722488727286570028329199091945021561742025433435840420872961535319503587727100859081338952780202500420863067480787946284949450718782118589990364483447832384671983971593474907701242204319706117937792309423474991896198134061535643353740699661412187393632186901168234563738161936915272999244204802431856007816851671029154683421989438939973053141402835709406790712208958487985793920160369089066949750624601695464731668298395977851329179305109986918786991161137230116496189898516568152584927257403957435108680863427792757826025563309921271088705405411371025494568231498428648510726727828659125722880882789672455095921167727491542006107188268179805458704994452631371077573321037897933674326824556351920163436837042183106694217832609961683470368394788518347465974474831605854941821593151079193253946885404527398197024597806321018999751706336789896690296376198043381826741515502706637177477015391367564415475265084167321915866865344241556041512434842933527016165000531609853107746840449791737542378190884952404506042432229256659566506495977213097526020823509468182960693968303461270080244259635683960638961227688318032423092325837090173582470492089203738121023084589637174176135972741761944885032948219962564054251591183586024420639148715019674436144504244286683443913939333688628141446590994276385924831027606803536626975523725325217026771847283597040133482835644804981393915367625734613992443104141058948267409257043887533869606441734066707828777822902422339140568653762484759100974829152048217301975905361982771478950902741370571017407567427810556032401588457423054202378792671052370513015149523527853135878156518496719066579452950967252806993371589783830702890777352676367984853850318060632423916647566797056187943872216622403346995519004211570863854831970781000243563556254079230728836608433465843501292392855740897961932149409988140213684064645825226460852544430126958074090957624523506544633940134850928477774159930744039133645762515061822044969280745815871061571030270539721753638099705915179018666800324502431322526402114479727183993825398163286153735126760348835895674488598799439207527614140981710274372772590033114964662686883820928306361668583234816199947796423331363753094412598880143559693443191004082206065237400954662190489654569272733570013363561953974868075050495757525594568489316875632464729171956355672370018017836912943649736679079311949368634286919579481353199904295659648485564045499966651100505996738702673730876368438128099610304279926026317772899831768399110310145515503027977113028546091960334540254496444282406649460119645324296748112027968430313731928893320963214141441537482195106797474426905436080579070883237981254927238516492180690054800617254299628174333046270632523915360098369569084048170733675936212060558115540534503396947256195783669566010620681005407532564068703492202355032102115911843157199870474344176455809576801910413391170572322971290098313988769297838343396562953837742051835708734113975304731816226899732037440717538881853175314515774858269662638983370044643354375830294741646094772787094000537698413356480131031679562830213873163769220764941626483920236873607073746524131553508574411983107060953761822921010823031061858535662019721081203592788652225381796282256543305116890329337670513971113175814052835617616329871215037967059846494645204702960238429027091865488755847067260593278760090151934240337828443375167640646761242150835451829218180916397428606499823507031130158954346465893890582140740220784503180313632119786663545738115452979454450810976561206607892859544991280386482826846803259428181112562942952739291654025689805005814448140089210924232507967293581603606041810740020435209168876309093894859331623389424436293172653970663779285514469498830420294137034262141771071406059133940901259865711806609373199707239033963886161693979714055148541419928392559040426136202791505052114241658972845309927317877127296847378705866710608210114330236580404643729072659325841357112395884559347599511750914805588084266728248147694453754499257703751907478316072041550785500431425320925592489225574212935199734242036639423459678300443350898183377828003056774503514733320273750885721236752766301664810249845000432420644519996442529175766752282113869416924355521377033120694939510204536997445682503558236954538083922338590159903550048509173954465691865562286463917304802245505447514356075975375311548310480829578808010421828538582794316691764699272302869155274761294558904029021149870201648172381618670321939277672817398792568920400143368775886151765198785837667144165302269238450855104194555648205205610794115364538982863255099001977047949853894659771147492957997668021188280755266092789540192326206565687388707996802232550156904888844041825299378213830109545849889857930254391668996631115858592369454577463900701752788577239500224409785797151772194816616910562409734709067237848879348845480212165299167730435871043165805562151359698017660253653743674750502533237845684978664129882977562382416005273471359503245319410146860982339641941313947060749743204920305194303856568024296544790790045496757173384031267017711618764826214463119617301505132122179668920074412971937677013863248653926449004007536722921563559460646454475481454493959942692789438590999216077542266350227093219439698510502181428419979922043900890628474916670016867513859713200507136429737625029636938674890430551642569100238348195205900348545655685721104129460979878096184548650306171289053675387798063227210068152796071206770742843658100384032302026628727762942708520353730516095881892193853941834548504682471304896988901293735897791389250457971827970929277998108622162300428521263290738370795227406013849804628933402130690431893317303840444961386832340112204022873454263872374380068354581702602964822773784781653253156700853105700324638270083426070310245641407995901438709412002384321604231434714499710427922071763431639846548678695560201047962343142207546986606157793047078778735104257627640642757538285537210775321093769591834234590249356754453541248434351220386786020229689380847588796250657137434426094061396768049448746777545888690938028117707935029543220864810295206289173462227130041390066486002736198656617185761424754591712975089764139504423327943744522563301529552313409845729006661568392073905684079284153910830489828311843115569673988911179220440866133775426549627303009182156630524275041706192382670803880357315755032102410257425468548993124273612282378733757416372179509568736156855287773888789138306074247693824353261152986036687734663037689658195358580419916002220229059721563551233722673704031838815746014560801202986432027753301366807678234812998287991910583509642183119135415002360786126573533787886569512247450045088923879847976136995742579932965088754012233127561118984922070339166293286157460412617554050167438230865903914324550415740911747373421052627235201541525205326090032353469753681352265799316615968011927457333730090559134599401981920019297103111035183412770740004812799765123931854321028545259685551024563574814257467765441458877132167258329330317834647099857912193809683469775006874931172912370689224953993769958901929294850096941013377512884678446902005154010009232387428274994765560445588757564123183549451921385687247663103027944372591206915450760241906920121911949426130561785856069980004710008955957449600224796457843429982418734757774242628258172553435356833423987178315046174606981083810485520157172003138643271147036421815794771454917400199785711301711162495186311690849538116307366167330032002113736631944595217339490628473213664395033635345711905576997380629615584629930823433685023714072497093317164251166414323345873881741104556487724036933763920868632421304064883070226843510046934891490675198197034162851291547231784873245778355241791679164843767025262697215056890055266542964098216435298879411302523684528018030578624830335242143434660989114387479626937988521248217865714095964417334670376006411380381812555802790108147130506877068804278307649896126223931895870834899056499603080515590420014076939345947173558535816312004034639483632505887597959943602684914680766505160747987569701327553533321554987900991982038784679152125193548111360358909575311825582537566689767547520092707637583157124608025399926985094857387548819217883290823441228799997550829595496307188039973402285882701724918191648587116224908787734177483565197452149765415154407948972631041500966815686570628569489603692829759547265035307380269300251366917704420222688909837760126149307064034032844240999820884232293090827016184625568570739090140259900591017600666618281531948452521033550347369124397300357640039068144910663863961098948947360489728269541934871023833509721379694914770061589259695425150880330646099362791078088527843264700347975585386761580798677903281102497285912154552500890497234696461105951213456384435911276855033623416481416926293680569592024622363419546628875369380638708561038538346997448392902939070779861207607271796365420337454914438094246402370515726549357406786493195379691759196430525111188688895067544275583997591268282750663836016013721845804384269392551727449412462205385388280424576012868660360685410138702466648005426585622318047781891973798787388282165691876844051830165927669896507053420292314817756555466125318669238479725281455212150116320569065083447174754335240232661126642700445660177358264691538508999509075527593485987415125091117806532136084871050221849982258939890256325599857124526213584079989189564660377651696610518918090843145773378870727609941088961979988618159775809256726195902737606502661169097087835187323569551781504008691722497895068464380733929868709833057345850068143661668989154687728968546774775022372718640305124107886743116544947613511652227934959129011552954828324804008061286119448987087015739551176098824220064127367376441719207860083628417444786944767045870332479045152319230186205867476252415489911436553504147987760405145771701633771770519873756053537364763316011545643442360586373030013226434491486330009334049837865823183144688274631069266460743744628259458400402122942592812776359308341266585412321836322204856014237822612635816739692683978409949345548825320490434160540437597351079349056921657577224127805203308093473615405823113200154664567893344694355745726154181829585002763913081523461605340049489556713242656583545029357019335542999527587478387067199388123790735301512551132504614375250666410925588816579802502494543648862278722616640009316055040411309816858361111746691170437286446804603106257266643478409068931884734811355333348871303453471245660154308684835895058250046884215751208256775372624614965171560482744398058432042536898220282153633634502348553781451125703288811812986453355879617388031326480555365175877550718736719820482269429728798842423352890523764512128294235035449357005759653508478392975831753157247987217377891748766699544411454039533868109375950880945208788222946213729541274609378185369166588366299768806844789525233400036896308286025420049466476874071846702228143516241800064035231899544531744509488162315377144433952863413418310086941854164678179066144249209253070286169160746766503366030764982863243762411176195269322588013793958524549826253324770642537112316203368422569263532568561494281238233242611399892222630888585906516561483622898756637601693965583321599936302197040253078675403476875121736390910567159015967754903471089044917755445837266938311858367227398221835389221945380359939941094617734425855090196858956804948565531240723169982918110653469531404032250610243506687681292737830480448344900586376898642707755629097173820691280097222618612368252265477121966865210452695870216533163832942072248821990791361721028805910925592035312001292489673283789066984535014261972094503818316184636699993582914766142498918645382343517391691971526466180392057914088579061436717389850540191428049111549039173374209533614156029523379780665305788550165964366389755075696733881273738436931612730922104335870560067939723151302243459322506275692932411408821780315712055976841790946765643743831905254902088279957861473464467797514825686155790483736221663642234055517821068845121439596010847938203985795258030458626766667135871312665753171914052304498355371311591760069191891210124583181776644740033848358135177389642714110379630105559392524368370885816143611316314616728108374738228150556203018194100931390693928083231057506789681545091706161928261777849114262125681359016455549654668148135687412166581053720900963135997238183270764479981799066332734306945658470337006110025780046452514634669435095204262090869353127225535764056075562064642641554411970797822194898735278099064774088664303675062057531996266616257212366788731337077053116858030708593613476027008813903219379312521665348284873076548559572642559211647279722512412278950433753380905997490315736857387349962058500283137009319386668942262315048211517832747331132233041762492735111467954289790982181536669155405061603033577581108636658669160311539443463113411241619317537711814251906118783718734069601916055451006305666753765682004457410497257319991242601384407519706472275147786308684338963826581443080160543148332542311047744852070704167423070430937835362958459380484643068777448515672410323909349698325623782597486504354299015947432766789655337049968695286113415636957747432650332573781656564606391916207175582660807522032526789568842106152799643396202018228893426765947894331162628146738485158844887051843894611945502590815772923082235005396357935775621394105195214214327474830363795537994368510825560801469382359344639313009841840557084382473548606701041978477630370615205061251676475559445360372639013685505812311047472598634384928774231692337490155703500997044972991348425829086661236118625169531218241315847133461472839242774366937797170356870030438128577921680384880948322723502626655631281776425074216227195392502690679629131472462289088322921029532716739167958684130870351945264340688010973652111487743008917521639568557413461247195809771360677058774068215796748532627900133283492752843404282515930411134726088906415256322184291709734058311424646606568588635078950498209757378888219027076738459117978905709398694532042564958864593188573373335857445885190010863945315835482356076477232477320945695815415192837892100356214623255606738533411865713689833444703667234331513322395479558142212888155832919943161536407262558535514268022158186671372494985375868588589172452997631780022352374305070324890437020798625032093041300000709358410706910196141050403063177211352508231509922686107635383049459189510500291995634623622019330634640332092059461856467253898930255953164861858325300328383790005288764191937102235230393217342276640035784231770693158075677418878821088202119379208330093458007332832729105659825185238133481013726040629234738151812486417035506118501198673488395165020691928147930719449711625527869671615696951088670516916720131481361917469338791228479043862873308049616498513654600819082672649064387949601187847865694767370982092357509709299789077939381824932182474461534240591849424992202800154572338513079508110147312276608482865090050896698490603721939898497758144142633926093185136924678757917107016933465391855660819591643999258854068057200218024318650267101286785842563638088651904642685002339523326447534754813741367449394602350493648545414056370264186629076863766010292061508294724901827835530523259679072784572200594517275462930992928354646820195871702551943176616547005769192516970360582292720946906931093097406557787076338103167040802063415131404094047334293254281521598760246251606322971966993729123869384983469141784092416888697015875196882399074058073004107556511469181030384937609798318020471232071563356386545479479862910649089377157096266509752990273374484108355140417175509335579034162955736138929359216866063120460186053571295873812649599714650133680466091672134160438019646527586473610541663704310104649944492078894854098122112893843651087145818528006776140561522435800428200283180061713011991730077524814641815533487383259069564884704378396737236678020661266436638457572828668190942543426225561602780810942311982805209802780533488868087058306976694242436565835322129493760104760862859956966605167895038987970281440443605913712379897005220198102165652336452655059365721635421482734168129832441483409978149848883244665300911353509972552081835324295956178353922222891671614932934859109742692802384424969327529065876718003245278161602229102856526305130430586856332824049066801367035855827062474244131139607161882964630650953016950065909226260451532453705577044133023616051197546656920343343431100037770282772309376463595823984007445704513775355569628837381891857437874233721241346139760764496852275464771805209315209365096643583963292084417854330812009404277673903035030773176037309805480564982269558991757793720571616415153855203177466723008804817448945613796381279751506549073842923886297327957562659139443028566363008897947619159099448822910851242569372446325793798986588405795489143363975991825692986178596271010264976546579544316986966265879752449314329603514897506035369070114461033428706077394943050744088110427997328687538559332875256777749476801708339729403592501284114928564264917861167184002412864013057041473915408097412664239606393875016566660297710971385099592030792325427161018497521781471967685503874416546326411301664086807582139923287933762808941414216290284555412446276935018037150523712608454360469078459877622014424180841869001399511319730716735460228432544784573025626551667581448753366667436092774201926816985718399492184986330980582783366360934738367212931612966362703248152481610580881275169481167405407281863566848664278902637263208644775928518542936896086149614727486832586966298029354941006556054790826800748550157953353683073848503730877636531890692320720034839066880302394731475023711432714679075636631836427254605553255477589995677912963846413354558734816611009462719775238115626500092570905695498046965284131030137652203679076154367200109581251772822405626578100863542277308417766606002360192318660792727013356059607238463780098685643774750448586410995241888215906539471176725251376955239500034402920470425812458845018963092875313745303977712895746412611618557608152615670423319299163277011813886936986592363541426259484001809359442792762718107524719827626075500958957253296515018659606649643229782151003264753222718589534251455996639926263233636676302889117981000705404016407672208798459913410442528442771864885792592104547279635464794044404353179392018506715470733334727123518504733413602894030542316605616554065157322874351406287172680122989969944833040141418779451976462939928301635639831899076662033689923286269428736621598493058689461223910900343922934347818412830627380850921335306895419288191440965825308774865755917660513000396641238148155053928817983781678196584458899382040590378559659954079638901982926533895586431874759920456684587293948123569287532497795530545269686576168141122779686398667043407786133693278860625402458153635258857488657842404876306604680266137957969232029877234384402017846460034647336301888918422437026901007894009933350671397393217101055951147165961435687819476722788932656853202651872063642006994667745998178712747559020762229433649085141502488069631581784572580543564870822153002489995446557960776851445336217816596222535837212484595109347313374539864356059633884697996093449202388442732368020072395915538636314979129548505802711219066962299865763580017811939475486099020799410247530512472931613114420999331890495773086970727267042264449251471961573593932706218913056451425802081897533506521924878261360310215478552713016192270619288022044700278527037095772736620724292311864006573862860933613069914153185564683146629527682380763657723986824636555803364067818397209649799461373011874969373191892769045933699837233540955623485680220678308534773784016775947910247477634115883759546275592104052648475625526569327249463757183008719009972297733895919159017335286129259993439630064077243538718558644382627465424977184008194723548083859458097451684698402268899237014194631577100162024507622581476403597649570696181622304496281195283080838033767042016536395059737555395131869366303041900119703574128475986699047967781002041510753328351459249963193550340100170623340685029037948492502548391007593509951370656774526798840921332039607518726341528719665716712196465164856834694573962427022250067296989884237576718432087817045382428361895995124280745090571426782836661997323495163581581802602629416840933302204882373049262955696646807759430803658765510595493567791235639741641120897620050035613533764787752051566023491561474289164943331186175413002902460944144268027445691138378587761294450563451052456388933359009914456192777915697691395794361538944899158200069177563340819834478484336686727464824069409529337844640749174486544245034315204760505965521250177190078118467716164525353111507373225650235229576533761163088704908467720901509347872419510264601834332566538356693430248796011491364807869819264752210948605872917871882463510599147298819702893938357607506257636209757569667154348574995562892601239121766354444598491642263131653551153201155018514273163062015562767345818061386514248441389537475569999271158268260372875527961069951926162925195954876299147087346992266877106826698207415662886494136821341160395773178464248783016800431962535276201935105393828488112740182587226129375829154140846158864246369216808337208311331926115794762149797485378131822031410869349637079521475331131709530372681116833783182733402120056704296708946966165075932264004106136936183627167976668207075357854035518464503124351290282495089193373200320321390547666616364576309034048671027878590579579358832599098918840660378535452595361703138992483185521530669800289835067898676291718311817950542067631592749762408332001807244033474009696687166959584723191460792391748094691464519260990942325637508701543903553367271447624706604288973908549760154099288666275002947123972084963163504745394661264986136629937542056830605119433013367025133498793084058295544899875457394217834123508143669951555260693723198147545459460744161193127309043256503521897671642857376048117525552191553143571419112991273519214970338468571929888638157014825931675283343390370189118899539392909910082364027368986511519097809616264425123843789098054845983342328755287994465328844989442621748172861489351144435079147959615619002500024455551551916838766594532897904892035542556900907862938197521208978552238030159855532646605264938112574269132737838720944461830149365583501749070826771122702735744692999940334394214608061345354780235246534979665936215971167080964872737046392495584753351072682796076267351434405534005949919908325155771100580061514455211827878431863740461228808771014039622967886533918982769214999656808558657485846316182975046505705149986594902776104150090683438888553609207666554708503508329643439189459262882172353723665229793518972940306064209229134531322780239643368148823154154072145615270807841424901115481593367724583469508879616001676637721027189426891985293485901714946933454192285785574822162169061284935635056165233030610320416460091651856241526607806062852188512142704662324774168220594053961306150088007994873104727015782470105330260466570695683288850266415551289671276570119377492255956307110505138623857932822496197802122629056362973659167723292288336724837402042896125766695080846263809702672848381037329572917752224023230670296770740254852814030728301993686484750220412370605360727599756088268075392098222394223111786009070723580325981537061317716067963019767048358439683315876996508311685507464935155275790489022515737914301452762678029048594972707607425854973181048359528137066213267790115209561037813864996282737021324637640521864378528497723868941643871405804128614269362272994953878092226287122972685454969848816553443444075257193226798337914927484347636641394936212952138379126783508745706654104077050154641046151376512508599231788702742472657197768149153561828369249039696280422983833049198464663945366782895150559619927663704589074352559659950603053515520067509809993872894374175703327337815577366028581098497648631994266297487095572225395015243642044165091808631160177280671717982936547388590714766259545080698573723765044012915593378656169626925422786568843761742353139380075055007701162187377645326406509846860292071258115573099341775069831300868963950257091649939784943340968921256606909846142588112427730468968074913138974113608314434468985042304282523581740414395336566639348942139652540996190048778110223781744154667948195493887933345772781778859608496989748513717921644389780297971626747847213357939780617503397923928588937379003170931020641933561231738286750368928760454627038734677888958846565197885296597529878334213765786512974861437719915775827891640061175389831868705458006837473747308231593676638645860425717732406697155866457216452870922912246552845728646425935155798135654282053880037840407542168410478629597882327859883859823414085172133603091889625990365209873630891011232547476061067001271446751856507871524845190132632540242078200869267671046306094942503388962484705771257002555781570584937944047919086919303815314701669062978620287069299634035725637448923713763659119961828525170897959437962799010956945722940766071970612813825082517067462103365343320658155465777773793212328209495235044102646754075790820087305509168811524105999438042121613421573214526741440262972278500089808619406035865363323679321689972825073644940886787374071356284631296323652414850362676248814707548264266521387918021155435088792444644961854145001295548749511425937546623771504946140859750001871864997557865169606096982762310453915250871901865569155022521974302531493840297304119314493999700325075985024229129036759486629968749304163381252724330015232025211966803685586748998848248589963273092798254387893419713782088917605582968494608312126768304868376325234098654691704571734830585733715287369260002031793894184582749509405320578042823417540382243954608929806387454832468005015172015990324220855582420383418222995511715423714617393843674610677443558790125670806900033726672655970133915716760478270539282637149176607522643386070359289134964340727981583327154232735046250433203009411814864388831539821457657806179480364761821978979857029021398316335583849716384364227927498934104963577813314901550500404054770316370678947291136521012535171913972610495042465106954511867383642310514524813741373798633420789013126554509028628562236979855601059825623601970637875452522539112044022423300111607424924871601176681744176462861136016121770157594123409068961671294085378636820410077893260280104196114523382030485709171842252365492531082748522691878855770669072589215685686712215249346344551971768821466992061981484816025691291658300233801189673294521744259877485785784044330679643851126280110420188168380414703458820024606537271965055503852548371977411645716993707394529004861522778482322278122471904309521414231191769089580473651578446322473979667468115154411119166532297278843917789982559057305268665560881125216930100025328745015062281044956684473721008599989390471388644971067894863532207765931220943191635413214795874085165795896383773145220938190503990431865552669081207575668172383351903625171205506056506882641205042561889389167917965135481580411022721994966604534073362756102288189365128420706112020444034209442621032210695734930183058181332126911349228446386982106624052167890592796593110888210138519804097273910241125155220211578447818155273346478040106344881807721094798464744797004937340583681456449404191609669437579030954565111702117808157460106493546187751010736089809161570860856540759050991860921773826096985857905869859056908848604144422245183524975512867196410294605125456040659770177765262401899155334434269497415456539594117330781137318682736334858478522069944675583576020963310173832141757304502365839095374816544610028221284110835853129790493880154605528843093333536437941029736550470134992547903607614913525597740979029424270155989018169780226972477518147890485128164410995638873618285903267196608866089446034864831796564885481621348294906159179263153706898384623339804356374642483169724627084370956992292188398916551953760052779426961116280588384790056776880114749125415299219302050751949925669269571130540021669132458542585954905975209022925584890601141152034340238928531527012593682432847293884689159854814953231840625334710035680937175914469404590967999958682700516058251523565748611988491708908756039494355614552036303593638663880057285734169343902014319706114672060222546053530266750976558474584537059009021669342142804702620620436673147044269132551327469390075538124097038869840317373311398441483240551498117025391127186949470199400195045090192674166843115982354390406159177493281857814685604523169430294501159738856004687556631479182616655437253996210606910833673492842357197505332663687392414172942111222998923309441541946873152779217983720611721414032000499940049599712408004894810026797725797906470702816993010553062913279263220350970586990913424956734242964412539319803977638101304946053949977209947785014216025434730218287358856110812287105017628815736267279467584675716786183826410833485416876889895191675923045204193444444580333357344753371135867282951155564664081577469603808497598300447008025743126201290852799411003009075594157613018961352436684076828064741485974473502787527552205164507477430825175392865676456271980743539937949200687327098657754476951407685234000399778803588957540628634717205845080881892403215524751483905916919219247519503702362053503487610131144247218798504801549896539791078804618472707458246871441010868840841858963651154825038293181436340512539750363632039055441523578517582389403344871124843505393079369691701662655322568535479245194702104198609720827645262702448474240794385072294543253638244004653486622315528800062251583261673049138255250828387121213393636545341232966804632948128076087113767467809925604119667365023707867643778494879473957176980555785430983268025674161511310895038774020932988468087563492183087571862024455177121148246749185292546478058709636142911999127117629691277461652297571414817118333429138880458849669365536039669469439500773027275571783777751164198847776766538827514938794302133521096444991682858824498246894134413968807461388451491094765171212364788958996650752357975346382191978129218723572116627917611122794981330002366888365577548666345619786356660284872936359109101070894024451263171025252504785448713131422942581379030723464221954507236891375237238096072942007876510005616617952098865423972256553170967557551640270787771562791029472223127853573585550556528478291687908630953310304845567318425979339288791086736980623095728727744456651706514668931477390805493360572293092655581285011007529814748078807395788144879509765878630652949545277888908439510328891284978017997542479612922919621912187819151255053750080985580962898750478873690282768330712318276120465629302799301722797757426096912237861285022434870031526647720883914622212828021182167609425106233235850180151098347500748185244878515976595164302163535025128003788950247272325622066568065066509889835040306927917938854223334570280766719976129870348570324077191360110211263509170506288444499254915892485544637207173212155286361522319311735851885459444799302399408674445486324022549666181325888238435259076560857237993247908826153280440833414740719270526886105249976152035333844081125178937969751232381005970466740925567733175241485091778414759076801165249092971424067316602526897531071585077111281578304324512938465706400387999974486056784846634270139903540389096815614300164878036995665049733661482524425959073173591382686016414262437757765169925579069685269471699230744964967401179846484910109967566387104166321254984719706785090693349887898128816587133939822312785875167688743668075845438461782393942686029276384323384516694751802454269100439763633082498434940328179679883895894427415225015485178762715615573092989549491841551943740747363810466161781850532036399527518378120285418635402037551808533200565525220084582520325942489128345266809719952238895457476618787732999106018747384456496066640338484985238942415524715264586494624842262598992180258494964992856514539372212521832802705571925973702181752767745986686893372525009229545646818385531876093378614882330112753184860230334778872975806411061527879273846668303745885608674914797569474086088795423340507317187475730519038234481910481548852677774087967268130550034704054400546075046042565375188430882016821241764571482235502668275631795055725201445397697686664161490472228756076296156239957530845207523207565967020054900885799953350960761529645555273000511849258701099090559533286913396466879399288006218871097939042938441897397988138862183004358035402599141520821713550147163180651182331826601750866447432448571843580736964458252557545964476591773435688845393041101716562055001188175490808333413589727306130947849050786134543849287414234457668590099715280686677745942833280404115096676078959647634804714809504728565118531262596914750413983342906185462625466057095823166786001982983468089032527790464188317845762303078111261655315622331474167717055926311410611561683505482958912492586794071796199382274657443050605712016951935218045218496087877614239883514840682489454968696032994092858986764377982157233194545985779047915073030590968050248233175729950145575230431969293198904196850477517741455172846611511324331622348587459165055033366798021750866768568057576575535744737627256938212262057988060813094717520183729055418765702485584378440160492511079184746856573479980420237865276761752756228318379990876691171017509523691043933505637642002654732923604852904564374740667830296646117138307710315118131359688236027110080773529054605052040615726842333456527549059887516287277993925544239080510692066766849248699889137713071552470946281810037161296699683648408253326734592140899387828149807424344221230540537346658502115604827545559636179388679888634733244366484184322566910370211006866495281615446879345638690344500716173218044568682132004670714628834398998867105953656656617835740532383026682961264374991166434098719933432251336724889025953190773568703701329810804202797115476592572583249509256845301068408797260955743798540179630258453833918990235952082035398424624754588205722723744013776228187538471340311414701597893614764772958088877210840846126088413955793742727088325256643349618482305519920660799632213033324705811423755523199302389692955071149933247994037439487273537676493540902535030453217183497728423072704327124221801177795183441505673348194958878379022339433039455475743548796221042984882237778153594502185074353008958724611344866252362106699689505201227052708509594044250207528645833074679812048422950289521288095647330875165220906417225831633938498094070681571110214181495383918391448654840350869759806106138419550501703350138635109631848063853801077235715792128686216684557250390569764169673048282628875531537707530023341849931131561202010781899126403156758587884650890943445625611336561586584653069400727917429223408254419673973534988667165260024432669649601514031588785868142864676416183040449575954454667201032079357044619652633010114529013969944783290636218007959311208271049237880072488588177595077707266401400831729703566376480683094043932897095075630113548126783368716839144922221749432425080030738677367610604593229499774991600937928321584473718226917780546286040210077216709542600244841332882774313765555237356223897732854380583996907501477701860259879227716353683376373333473681694572861644868244513159009860160019501068450040166083267336928981518000376865950592810232948395450653781244389789085044079648645374245347636563645610359304871055097577396271981639576919995278559225099161045324341760498816926668438307366395546869240865399973658320916200976930031692646713114578594828950994317572703801771855609277028536545344629728507451991851705302355063590368451732096332472336762932252230287038422813159338547227270842126049018585862488530648062682392018335405538334688790566698582028631756287836074560285538719497030533387795657733966924172276032645899659461845079825819891211632463476711058395992023743485521825795159879688253768759501331207073848324598457547676935331168787286259904761313482811194675279821697122670989678649968581784037466867678050863691963392579741943124405134777510085768343647320377278189936590356253330328887718877491373620045879871925331736453296247154291786570378890336365275090722002452385812550410365634872142640127779365821601199398841800539556100454067210428197573137652229513370523468494428924906597222382878991915133504541093992544502531703968855454574883491047029768462947816785604407417169881618736474670684220401444906862501226784463798569001164432170245584002319107664048079769112947758823971302496990751327291665520018420182878772861940358851906524709760026626377649268882033378246288333364183850904549250664890626720275755980034905865095291382813904189503162635398289956095835644665274040030458174810168650599673681574332248829029861501663307767558760909733776992205067355280864598824209004832586064093011625979913303332737073523460736390386055219221953483199065320420997600806134211825186876525973571676787784801830862247227783930800908314724165028702242065982974718927743908264855622828160481585268398122481680927090871592802752054966817916391859483633632647320262728600486529318821047936062582398953386424903901958740094683046119789690714503739700563684756337618683994809936487807635177101180750056654632696899654532306063280488426724776419620050230365378994629747925901300780276874574908441272826787723847527216479614278942946367525539645041458017222289405867413735833004406066325633888187495288792094049837562711322571293824599673945992283296978639275466260655273705863359015641718928894187938413912811161722080517275548465017063897547665507653368192325784725402903991207152561317342037634417272699468826088108341799628785001190920566406162050382733723061785113522686021999140296454035319801350167796540951005523528883144973721355793719135812002027946154946497145064427759358551704496645318316878476424948900438371242680460321930297557903097912323445964379042372487232363139399757160742018656937158553903986676789048785483931424399273580862077239518091083831555638449871725273387333097191046350090945234669464513221331626205763416403136693027399753369331756125200327927550308953420772960097164143884111396944091831413165276666814713786550134993642973580338974179630624396144247732429915370759710952086141157971776649696531282728269826231658328640299013706291280879841556312167743184942063492950370403847199634337988154478742073634002324006456248689914809755907217090374363611638471828656852986138594648262903382202849949197451237216046037632128491376855685816162151472987796882266749681587009958366494052408498658276608629924631049349747001313081361830138153106849540833295118744914275670143463447557029347197466308246881162124054892228756242055302153481443273439906661895180594275135368009353270262956198764270033252888411370144160250449182839092851999669241710446554086162402318816332464843276818657478708121739198941094305355750556315852780039628581490002428271048109490991862256988960325418482684071115107078279733849730553863726509165942037966456139964641419344910929330660107532321429343285171080555195340091426670024854677914627862610526064501491366610916753064441432184005873333155334873874319675928785404227569786204260071812998064412644892510277112590337149232749534393990017996500612976419595996227479500454230842197267760102930424703807828990510400467710060972676828915738468247327344716876505895940231004289123004744421575267121796707854240607929752821747240043310020474407350831902383344127863356576220371822930371388269004714903766615797404027689845862661525118678223485023083476007586827312372781909894888876372371311165153381742405337586437939796172545864508064007781584690678303108696519504397127072808566535650424740434998737383029277974013953287172470036619661543171181052992623288464865327959352776707005977980742049460163632721330389175473193504971745103102341147326691723852154257953560366361344721819976064277680743430803188924248425818664453649951557287190662815506130568551223139368027536970732477832932486757619173076575021950836165968047711191281409866865169205014889978478610872195436448194569709148858128601241969966966888479592181246092628532631942665924719917074268114682140174439660201414952989482430559511969306187657649884413123096626290880609607608295865496365485109012823333975407001139090151624554190833002376894147727765320786238634011077982682282593688067886388535593828628891057108521880450056023789029099597599165172373422537106154163315981529286014505098911714357167803083743331044777685716392526118917083045099076628239080083790801280332387511369091419070060497835356908886540673205694078594916983519944236116799713820208125227026805716784623814775570904348286736185655064021092733742491923496155597586688486241629933172188511225981806509018862277276247100762422696113489502437318564348846453002477372046940598333800877342443922674338706269062577656019775580434094015299528241826884085391346056698821451409539050116482693397989671658223429149951354336277135281986731438617109796753849746126992890163781864592780531494172246140571502698389111400183009229388113594438600313897532812717226938246381890026445961996605908709321533138512804796215570281783376800230223399860114222830616382840946181220986516695317321383626843948994947222958487908886130699569612353628560318809311833137117946020460358810297941509599857666873774954863668619696239848241385087411239064059195741264482195269697001193242738020282961859411481822435215648735836970496081061751292284692864988020217864706775875812928159646339088307959488210130001508500028243305387066220933931728347205800778726175105319508481352756289424116897722943129602233508595864352277947560830457157266320930373656020944139399192736440372409225175119595523967689752049557310937844749524853810067481100161825436127436169695606368655377463757014573612947671906707274263911439820496765857693099508319187292916509738169568696300514275139337988468326805292482118449225892518955973208549908812400046832895567120643770488389591428487763515360990864599405997628472565971582966076598513716793296614437248798902573232137224450295927188712355058738672384759414679069373911259923987099189460966003224951397562982816373163037517128472896453159380383223904767262057490436933002360445015183617844180797875925095655628209090480311059606814720983199262041535245970325374245140904938696428530505534358136126515929617407645148588826030017550913970810884664673894951554935538204004119254592689632976553559441416867953968327508406394200192781077753790790450106993339920377275609648763809520150243341456118945004723505636169555720628678035058035152802223053119450462904253195373522071260771300414237963819439324730425832049538983178344908440220939361108141754221877545044761260748142583737278218536237767063470555640069827182424584826530388218402538697793737027507096857489519333571062343044510347820559377391148150252133606257932769076321875314729379481508515110962443231044140204749655920772066020876867140714958265315347428175720652864660580888496558527982937934130651380783930137414920357478062105878005241538564724202286589508955231156935694286825036940779384048912192190704774354405126955719953829876106947594247509225212979223269483500023078285508130950693823038620257282680916114980997525516049241827165628327366358377040237851934971043393787285241228436392064057295137497681666162966880286883981384070354600433598055926909944243812112536056289670078722450201089186486683016485508256427911572672298406045775673184871725183010434043124173777092986995774604676921665024467031291348458858029155432652633146510374097336396230779466152348454207876880291950589185408670474281119875909749835596479541517681138183729763423175995999957518734951856698723403468543534065073885180698752406897726811279868371391106491571551754106380674081478959180583210707539147343393823572928102963105557829753413905585484434594314182758011933131500929246339694173080585658868940901444842574789066800089660338016068886810276026705267010470707467596900234214473796988793622191093747726916039114913003003806824184973033133090317253142384334026008418507035100530699777790036316947160458180224644098822417659877178764995945047071054633085187815578601388713079391697843681911073447966371505603860539099451441743189126567346405396205934686806403499376638249085520720501361731580468444630963210986082130732586530665656059940781502440509365841612612558275518621871168027022976014384713738311215730720062398821363202990007720331655087412519453630592681368349792012812760039226667820497425604511611235605378199878663154551902420978538547330913268016862571621945332104202690812988117520130832617701119356608483054882494417545733119011444379775909307968905760492257515236079149353856736818849771345328022301851550641792277907301029349922650662493620204009071574328657041830678253594745233757467193302976617410220895054925095753688737370274505549584013053584118029116540496416590037052070203211580632375721746272945807673881190124193125722430072566178986088813796500080930737551147575874996167526275752772272708164289127923916688234421083457405394218780665001721562235042554417846950125193363602037613769630078725537522729972232155239916045934756775237892223245369088996298665728829133748210355294722333613341696447860654326813132360775563417473731037788177278702640149825183173981900000150918377328684073419781911414163819425474740802650560733995111288899993433952239946337324735029242446353849334439467201217003338938445986250080247743895079711331229214173464284099025786439546389120389108122604493169834177404860495671736393767392048504722832444976894550166164838607076974946297631844712539002757063901132142438915706025470819727783093225100473963326802320947200077727629893745326092815555385308600095987964206289525823909052538082319990604362803070224187078472001453105211962323479709429391546723353159787364644765489753463531310607294187085692135322840426409604652695985578338136393798352319003808941374886484628658311573550059723018467098086345234123090782211629036267787614124065387414889179676253735854899859965492080323947562686119104861604495098104440206906044470663624890443801224828700457357293073453570176276194791238016546540616168633067658474305775439504594282124578923434235972633949692339249119135581711301232673338776352406153428792336876741050588472308351692697408210615328772722775738247787679752836779874846379284114768888065204760599644914613545651639249431828001826261240598430620746147770033574321639104989862460573170456718821671602311396216468614975473317607391936485927544909175902848942657006806189649897233272018100685853870166327805700295929654476692704536195519970287843728001852253758591192635876395660939061847612959241802649034139583230015464132208249271885646492603672816068740194013934336042507010831139965437053706057778992459230887870927212810673843638983960832771027970289518346564539629626666166032748091418643890111640821488400642673240509280698013218354181456912572743041835855264130983737444245977978424590491973323949940396052216702994536951219320770099876143462864815436977511896491795116752569086235411259769795200505506908412032946961043405155655807273534447292364902057205173986160900799968669667665789042979329442197948130935706171342259348230800029641041903844210463616420783096707511760414124986142249271268677506555232957204994665682967614216244391761467368508473397608803356193633445510576859204147044325316795045236275226045620394206911223830613257447650658987021408009311420513715878903791794931433176467733824492155835550771850789513805849829204357961994463750159937697541822169300344300480291162080972177582577298263207343693967862189003277540653943935767680146783265775743251427190345301938494230009928242112250680301781180293742081202214452298150034779694481037379171520890944496351693716726108415152703053081578483496276773381548214818960035476790741018547398260930971403088873815350770496099221986311808276936828335837860324709669665085427951556950622264250099623645961875989900320165678455515165608479131697479875774050573481952201948417182630185712659265706691969226433623846948495754430903817539830043134032158278621889052004656508474549570725750370188759081274569917834391741531843907024794077919195203218124563175859113236398654912035318870232950158707948335985839670435907799464709927355622574578743343934458220374700522836488181511913469132348704795148851939636966112101223878851593831830816268860592445956217437443454749799978141964362059681098477000967360703294399152697549100397962318750647273149124728447028685540918568177356393122563394335646769364015233263674743786430339620858010378453945472116962721852784842172759681340541879802698702222174156911829339638350162111127620773474985821776180181834847647237110556222300164577168489903723251578618499088139516283771060206045882793622218330409412397567038786151685516522583404260882043822390674771524429176267337296261263554083397902699086983434228821508930926270452073924789215329503201356972503443786279157267094975359936952516919752428889200653861790207153100611479502158011731647365297246334760679817260394190714215149315695103479213161150583732572647441151828917365173789146481494046472671239362606746505369617406912592880089989211805237731829105387895872182782585543721107292847375349304061834101844015547482898535483200620948093390126752675513687133207248484085383762426595305788782094780541193164884941612322436237066942737146160131903370844029261661521261551539034655973680049234377063393840976325233831615315109190365984302032001417338656183773979195834187141865618913977468787010928565573668794169383921970365132353882774909354641308106818310417938087529302885536352913289883807562567075257209279669591365212791067235083400731093976337892224420958544412611332973000664926919654002070369344620735266283563506564659606377985819856033162673632965146394402329035366372364886738010273882218550773548563323239146062877504025326544463730971987839750749106074357994255120827749660245522078442492792874711829449090709206379568005422931008662409216027193370924886571153616191459461244852735778975203541660421297149445784775416563617728841655262535409908193140984700662226084133540753018002708693751120607911140018495696948054090077877050328974583213497081386922589153488376996519138062128494098929979595434625813563042928073327943038179177635070956142496049293062906978192378934662204350616123508772820432561513535317913733965859012681236742817405839770074303753281657290768072143735378860311483011809909956251490242107097344114158500058813411007478766031605210466689254948810887052419691267210827181538860677487739031433907501912863329539440583891374967168931980284504037781770531317241946360852226797335026229570598311674423931579677251587522632460639842692605588330912396793878676837422200466095116430596570178971790416670945211131769381676016457274138118488993404982831974342149407435072504833301992687192554888835407469078441841502341340499160729726349952492479851362406209541151783459091219550370722991212752730258393239835966749880496500941332442723711162335939526250367414865482522266495399152247375345864581048463206042105578416651382377042322912507492111684409683529638860010283554922421578930521005258390976958767608553769290918452340576470356693763043688854721110616826836995774317187790173763281541188386312930451312571034190252825057279059149202990958799899294301277303651880533619048677550098509892226735963041134819253469701059128656375383587478569407619550023456987443309207294836869700106577728886192509185983319658606686307418406370920411253415980527448869178870781142538986104529952544710717823076969769258905479078230674097237766328656008252100964702349017142177064853964032831863485323807080239590980539170678897245686916197428754219658091430540938801021207301995059976701517301054226463457562069928700270308552382608370212798539740628435983238660753430110617650238030260002875386612788001707271156762962767826281779494078620830194699047845960602868686269271815845996426324139073240688369202704950547870262158448295551405147068510312369191462473310556882685197471693313588469074897068944214089827888683462753551366654482568399629721567955336639278344230217425226828260798041471932877201675386465675055693312089126902851022719867894479312579115961826314650287733709733040208766135412091569520529315601168043108135541262930708984332954071156223392603743171541471924818738004524215980592768792696287501155193679588803336024047803583409393803538923628415929847658252916794466728594406207988348515561581864253098162019303424702872417162954992017428139900545323290317393537070393551982866608322715053296288104932493358907857156113301591643403808664739115136602767780352594545464531063993809492580802534036501738251290820002457149486331379985521721692799980485034364429207161320725787717223003145535361104406505730669098659782242290338078290729140396124950895086842959649997131791606894733026291163930850055136623112993433255536727671328218892127377640652199701254194566455788925414984594670241959774361995926452658654371570763486793477138919049288164586988759882733010294954278777801686772025114231229079246643752784084560863682250186412906740587217140272970849047405180931750122209165470174775062369224078215987645911888882271396089809783857310967688819778826188343583492353166988991503524124469145576745788570887528490233014417584471624152415310259200442369933178069731334587811977418187137691739176403589093703534958541084342879283487756470587548044259077050010762466227627287238328867025961565849902316093194485757127857085858295361515872912904193331602355606211951065768076111373534534589079006321343285483780399612141759013682486146439385341253249506381437922862934329852678990045141384427500338771910928308138667577748059245059072536613890450061742811400110575003740548744081781896510511409941956587471875000906605325279033807450107691885868498522015205184794275748541821599901857350393623543104653763757708748349921293295215452948166237750951683573608490065637793215283053852004822915470478808283050176733609260080561337862227791343601511390699176541063103385468961177851260817278087777604747471129378053992468646497820012455853117031519879756907673465647132714212710812970481263591678552486342259635945951136035081503513601417813295924324491770087460634659735905405573315350622288448808750269045943017455758725013543435631877508987359643966045204029874868359183386317979882143560072078833884211266134699065943156820814617299486234533624264030414847828308333199811886582205276052004789356130378144506960443091843139520796097758701500281538846746250783966257720427215472231052363839448478916476923610269901312568079627617395310134350456373919618451266983659692325378454808470439225320190515585839576719665197899515189406954517476127918429775571982236640658215026013255519226535926688588945944064116194085016732781301386888471977896439185326375073518370170757177693502516067608895145271345007441037005914425664666413600383980661248778788738457444332672697245809175846702084455035460078912998288660306770998049973647262916776982849188340711460433931412828950825199398504258146889778078354956196459172566029712458590086065397276918168618917802055399066996773330312788765839125729268821131783424020429615551106652160211488865682275398756586958679274673364112727966982747611642955473345438764552635089683731196766133155733925977540926351643351124268200530702243810421817237914465522233813101843783423377849221329488469055837027391042390451901803253372781655832919543527017630832789203443610498248495243660402667255563649872019928400372015020651577760249180839864974662579123285872825721724933343707108436563462907088108107363367267259961959273236921149911651708122918909594315605976382230645014357284979466916015219985798203074183647294243367577641651786873016717482529682297495445525932550295533694575415561678498270262491596477681308190328290025715923070585777928631894598440877178908801875178434325722242925244938679856724023065995546738177381717714962479624498610783022953242660369058837405361042032074381266304884767124528761718849090432394250806574380865001168124951440028494888893130172539927478398346717629031012315665277594884490935137140098892928832679763425854466754011963696036256089348047012945502638842392052396822209501861690609306155033349576928734404633759753968611044245871174679262414567268103285887653096152677119586947008019990966093095210835767565181790928836119949781987961006184951803933395233346967363188476526670922074508572229710016393790740147036731167369992510720291519216458175307061034546891461034038101725351498951818690999313213725182724710317628216801292172130189318317311249338757473738279780612362242984479052049715132235919873415722983292693997087493578616986182644301036056501681042145916631925543698701548248103519185614522318451614164296229095755579625467901622680564428789077096301385795467875495371383336497965322576439259509301589595810539426111043079226092007983193989814782893646297967488031174154457215382781433191066365858186156164181734687812399554761142158851052791342464133605287555032276332427810806586686526923745188490755329201443209854797129086260460303307758109418005063715721748152605787249222848712782086438827533917807058997245744072710939365084661020995901327479157603071234012191057074857410087952192227065464644193492303819287770559923574864858876609076176166794947807146896384156031812622092082681041339984094587239122940137029763797810676095113609043884214526016774218453722475517389951452656258772849528533738373178598703283948403856320972159945309707838127755646551486204893148609521191591621456397547250996923717596843383390175318838531417487106287664338788064699625110448495189319567228684663119305286919737102348430869237633779625261858639347825383850916158823085650454683085353725337475592981429830541611978377258059612663462945170270033824133251853321715786667580682966848405902167258608395559238922741484266700905591800121148556591300054358000429449150766375141034991548114640484547573899229619309956174240929311185865442505671412139752244247075198026019245357089344346256084876829078406925009913094536036069396810339044943870381895882688133815833527997314470407747519059535062404775842526180132257320611218700363787643052620178377037732026579429791822392543921758458166182221793060274941361437524447628487878976544835673714632146608365698759628242150487254170459110282057129181508844724376071004610847264422738756756683368611040614161625760011329047361256312151024312402252818567974502342024276543415934787775176947480791777121083670238145746566989279563530911431127769756222912805468664138824414343899584111040812610998855730649182184241124932086771780753930796929783507284178687312239680168232266428587437109702343090574435218129405166937119850999997275746468232879844905725120551816072643025238494641960376329879753724689784039171066764107462637970736008841071265134018250969314991837979255234384987226326036336538590543896372715600628893663810602147896208487696118389317092680401496427644960267133512828987996441386455179209357341099646512257496115219533741522588045742736571868150591179064417301888477831742883415052819097682486893680398833084341243521094348375421505950961589574917440412261943768660070138090322209688564485441214045672821458146172550800169191917364445383151263298224525194091209964616065583539690857819200706202051644361798811533637668466044276651466804662967425650609388259019765248348292372474923431176478555397969087993002616220078793119080792535484964552402777492155429567257439922314692403895479630239344617205602520550383233287258892615375294162940790335068108495934194635442249426303524535811342734355419214239504165232011160122929380891476441628878152866504000300805198049049708757963056696990875363984912111984336625755562501448687661895754952506090297402322022951362832980442928326198178029657925893197141079659449586954470932697560995795608082300521021382299730920849706001351283745174546793123960648975981937474770916781354568730130159371841776159709656127677176169271464419237024139966781716599718081894764642997292987458894677186676339077745482720166292310007203280782552449602853747837828834210989395778835969915609337901224791698569472665699714289731298434204750918337180456924479114388081876777040868810244529408268085205602169775867847366989128271155691960679493706025380318191457693964977345997633629229839204917979276847861536984094111510313530084764059138075736051667417812563393765393473692490887056681597051545827310181773859791126047784382152756070399148237486147063620915509824029536214959917948548355101799611473752345209396738872958778317399283239469110327492849205647481080936645895272843779927674566311350369255570794464292555822862234492514603841673706875033505306601812551449034907549765530165042723191842439611417875083156322194638308849217535487777336299378870494763361151998596057516215544425153824064722117377223900860554638919792085558411243665615956272156366247801572051922735666992821413691657247772484391797273105395523121233324420172496664758036411498429301236225958487369033238470705930637976598569112269589294792543179240939517082721291972364408692442885927700978839294386371591096221307799224958601981212511793305565572883635124279633430337523565328465222968243755437474348242753826706874202305090784037567706276723009995948898654814735139842955811671445487878755297251452500365354223032624767511753356624360529720172141616321656773556057342114844334710921177150450765885044874431065615203840631071581980485482786253142685690335516275940180929862745059060825295188927416713270733970992703974467506171433927496101559284434894490783387606643908999514006214860577903174324345002931654708617646209950713543585793258984369010521328893508073827905966573961682143221773833267328936062814939901254313670181424957195029461908328810974678198440690245475276315769077174694097482725690191769837814155388419216323630815112881486148588110717951555232033418221395296664162529095086481012018129825116110259943642638531410716699078636490281785809824850079914816977047268822586347463764580028901973548258179238116583337082864988052638325660904622669294687080289140398182165204160917632526806250636477611132293883637939646035278826379365555723595019419251190551687756200705048185640772630096051369158960489379553428010846163814270645428199177957472685905594633040595222879422232256908461554893419645025518323923847423996622894198866204479724380831092043777855794294952891064489897248403066194115311438337188480714575195411125830080403260722564186679206286283475031305538259981948627698537405699944590622986074035351981746112528150506957996001476621009817391487880159371236776435558032539612759628518468207565057389967631369722889695606630720098842741919322600092550230312063235389406772869777671120601045192439917031593382731596914315156683095278205043419551339858535103572178631929616598725597205035688090276786118428600270624445152974557080528245150453941912956961992047705852092881190780283427969483006329386309603207957106616527900605492707400598041790423603722973920039149818068905228866315829926686183404307606238125592210297916636052857509381734058545318699268473041841326965521834276984202493464661560976696723396488295459119814442130653341147739388839470194818622223739112898611761524377039100018121374480261260241081885125795886273724775176878101461477985888116572899063414397315721498445033661041480324771947502004060672377183286496999332064157430995123611034576012764091997948507822288521007172731880598205389784407901623010958921783656111129094554582026112978964173428250017755667486044901160902780089461114061827051127519861695888655510043462536287771899475570338577683177672969417876693722535414968270574038826209599394541839794835213883667040542242719961828843189894590083675997326842081353919515439158354186608756463096693431004125492989358446285600334448687757385159359772290597505155420385757319018538975443263192026137621533369734942958740636768542064310821503405912385559958957661090945097984536621245462183679604862383798976706813913572760848457044072698740313641456793216795532337795263311978681202056947510413592422970911448136567574920405190958118413962078105412828312681349451303966014303555831761409374314042212227403550906697532589617753409486009527229846354293648012138025300924723204641667440045352599528907223088278419918249387869149944591058464274779142879223583225677169936672679769693259732426852518795843225383513826200510125133497918201523005110669172581638619034323828650245860066747047002166476264333415585864963438060435291242630227180393106620102829730820755301265058012297408158901038921142411284080394369570140123170597557153809475780702744936460509505677036295596038131996965086904274856266090807324233947403203091868199906279467056716455398832290957246371360053898932689343109914609992891271845606555809099953747408156216944015267291157239040569241460693689032697264319046848086873081327260396048575816738460623459997356574271323742435543080445042226863502726413574109997198328020350291795450781170042670760988964697356545647337581630445786079476044632847239625509625346451482556789349916281655853008467209267785112594663825679292401511476950834139016561317184776768710293917795199158567311817447936447912605673053283431168991716219553850902975852680493122173505841616577054358826144413546454419365460438921778277617280324077543181705105396322202423959706845413338843771916345565490197408084858148188042426983460373555729029815511546163474926943342689211209935626854161919988507361661066115099449540460189059550631368522997020303231307046019458867898601966990239501986466556168958490222604860647471767786263689519940330366285930973321475751034903335126356164953295899805248890265607422621787026957410689494921652116679717400786903366909091922708747956199831030350243153659651526434669410759952322130760594581469149743637288301647927721903047980446690341281855344103997667915009970972501074823387247183241095034671303972498444799258766962074355871713591597371121313079851923036256295759113448713211730662992712296717411785921982260506879093229801864538304499421626622877726859630610452006632692781512220974279785456097654168454939233733175921735141304305021565265389841777473152397826247805169642256545563508361176133744720092080729198132121835349576958644668721658479515873789051357875413082084449429478981999354238741721876502140823457258091035251805054281839657265928055872810607341066190475301661622062084555700435499103422481700929313725184439707760883026921687137830165599707919176680161087958913909653663441341943239982757048439383391285084880672209972114825429285321501578177908670879982884865920940937558284355199308334605454888620231853301189864697746992352658218620585361021469998003003603913551624723740407928580238494667891119675352082282045404937057219818109915764339874957787178240946106526677298887424604691960799970183013338014025124268915897996112845342982436578321605610973150367665300765648154195219340413046486787413985230394701782450433690297647791427093313088432758687349920243343527905838310552446248746296313225244748117383138326534707882858559827332140661360785638978783572869967073733474414236086553064545631872431924809754143364043851971896237399323733717230625537657034256499568968295643744687070720280873072171629945104402007178899601247338063587722192148390072242921968722547379747446909100348183731106538764304343226992347475606219097655168516085262484738645255837292731762070980212622899547224045659839384458494136022229296476477650121293370458406814725027950993402313189240228717217939048384018305769738115887763437736351391573152603349166411153061140565981505593655038318115982137120421330066631556579294386856360285834822332208204457601856178330280801211827593336836377577553513964667418211567974915763892468904146292215171839940246808920271905256072067846531861624710136283132639085641023289567366575348424706689676203115824964580478215224346241430800443381491026704828041569751683171254783953462964011714745194255012582844019894034174946906317011176123292629507533656125192139081086638234412340829295219566593610094436965237867847265901662009926170882061326016093914968954197979144050724655869663203322078003945778031705520353714998834697931887131387575570918034977548425845630106713710057161709396286586928885612480841733578761014087900956797695261488031601357575939249209872504892087394278108058700924156361949643582210592906605546525114298893804438910823771383032715484527038878701817044020037554689071665490946846803688469548319791459367435373947714063894073212896972274611221607352128509819514081908359958062295099093250902738651342368937130340677530333573835126379195444956023861860379062866999248688798180690533811886353175398910888127378054106532369123497011942818179574892111641242933721466218097478472193597086327703231324463363872882721113060310050116083380077416590863626989016721158770981290179701709655783028127377040607612236318778462949925862349273425125883360948076272640434742463146476535098061620799114577217183419410391384276191694160911964164926259070218209271054703993635043070708743570096122577774068254893552256581313203417966124999830756156392554175964841961143801570295629537058898621099832172586944768382115911406797733571990873438238470998534933941126141758770487945710036509566982636947480986936438089802375079063689508634472715716604333985987995538755143247758146660077009549428138401765500524882862705302134980393253341681345956256207637277551579178830127001764532115608497672459552468771762063505501947488319287965485999069288003830957074041007663868665173965898481683136467813817918182934752471439367978282089692862868809627719619670735794590583919876118170384035236270112704784854952147054883870351455973589906480362011386741427741066906727162990523819280475479056305186954608261543973914348017583182386877661707546319287889961287142735830799240230472823107254856501840873094863250764011129325541903054580434119503572091838205274412420812698315843830960944350735579606326077866500137056739364679380886145795565431994398257072339535269351430149623416273547405150534274390419230785369652090386523001533534933988915937868910568996587569733310596907896704873044694059838671382665576115324600266840912786067554231421751723527615291038257876374088628643040220517957443933818913529802683529934583647145254858272610647037087964941035141499230044561594296833532861227128372119539457949814699833651166779022182262090958874122080602681298941336311912127406068424145553504522407158274677820693526161909524112575823821339159584300116053232911777007732367113149999187756386726065332909561518502807498961702827159114951340581651494039249362741004654028297846496333101747765653789050839720713658292615388948530242908564380320205266259422477240815891467038665029012877288238069225833023411348772577746492167239946115665384951636940840219379524308823706051733478551487697801739221320689099154068126783944630768752463438131931250527796407007640124475808237079503583489015378751323598111775819694018744728255083916908569060345861778582334448323200514541450443994107217215488545740680028668842949953245350560918946762580580767465329285092655701618053480881668247591462562263431529724350646854609150744140445520840331543130834906189622197809737043785864799836802946980758591132901203428072331355495957207285362891802207538202322924730041666475683750913961137967087065823437396765083321092788140448423575727736753613965331521703031555402752089413295917612602643912368102646064285491201780502352541506223507728701854260986559138561650458649955669103743965036536390512023295353125766912286764172559273206249146868036361024252963528621779438382677951854212282656271587884930718455127636102588323190988327157159996543300823745093158072517718346410365171397799490816409950018499536258302039530572856532426839769567321419746133433744283475351672849279671317802591695852149780973496329816104766101917028782960881891339087099637453810474556118769302990346199250336184233148479199529611403386316641289677156856998134762613606732650062835791004468953115630901206033318474224882959111157115483989444370972895965984913443429744224212221074877337318897288748268713964411513291325651146174230166434126338595491141692822178629679351680143568711709325798531531608935662425335195980045559830592789511104167139074728086368721776668298476839432632142187055056533534019468262492368041955348961511819015691840433944154859500379179253036514848012715595598956947655177347355569771358676625185242991064793472385762893325760710597084888659414565595378568948163012796364894847191264080176980114143731116105236664085544220115471745274702044590070510172214387396152195861433574514783991851934207453736390178428330271286120897745715048645606805181662605924649794401414634334423744249517534186181794821894755075077269408084764254914313979119965683396265578128749328791229595755261844936731067791673644028961851085126799824071347616314136922727279539654407326091734547364501443066594524354201241381562276373110753127341902206096974797485482403554099333195542233369019261032327628089466272741828915599339894184223485379228912907139054617919630892099174837623365414187406816105588742680563861306164569184571311229212221045830805623154232535757723569002708186563331161074469455816123334615773066639905622338614310614854915133446050714384923889565577263259869020804288817775207578826072320380130206908800261854349224484149132902336595111639103110395012415524709050545534795063130659981347580392521660874698055381855321074822410405974676561328556973294902105680938831336256161166567638809462382848372659587868983819134094976305875140428883317607034149959032597402776246185096617268815292167253371498611160275244718435687384935961336439835611763134902372080784803778656093413395987415656188010127140868273672522605848385227558830325227709932021215332871026333967998798767617365342020445010158487887612500451303474367295001291537033529934951973035249188184553475092888170023562796056139373493819640716340606918645333147996800406360056963024118002829299860473379248109980024515471798634885433452647684741259281890106288625816882922213557926500923124891950003727233000043978455938070684075653730227098106451748553912957171513350112266007461586276771064652401941404715128859521059607641711602117681482196636593949751557303391641751129822586895644023975474493622776916689181109394308977745513440478604329855869709519778829870308634251304221672678325146477537302583944987473595792709766520910260165644356125206806296416676745701411406430003934274184819315952600813351136890519152299430318985081386402235980220133954147887247637409287590290602005503773238336965484589987410723353191877410680223281562322014591066219954422706490054064319473430041561203507934248801987210268323365922961537227136312703063382321999456905259751535923814761830347422101563123385556008918872400817394034108273213577072718646571476920806906802226861805249084003447266676656420786012276865551734591357309033588461760888301340470635977419789695493585603272467829565727859767113005852111092017111121671463619246104447815472874514871048972974152088392134040583756157758122813970531233104791269993203871203091617607477987238872058472433293570843448702038550049577322157717813917552695037530786091782469549885382420450397799756048697516990940261004602201009224653969853038677905429491021297506328806478734136766099657010336574877086432337971353387709648182384247154470065173048791420265901962945216540676670336167539043959188899539710693050049384168439445246744719343910541687583244311777662277260813441428215551262226626650176669695126666012701617086919756022444406180587543078266891489134476524891632908818902215472731362703897436326559798450450964285818777488535707633954573020906383007503098429417051131263970320396387350339257274151418721503890302174168635795656902609054629964965015993381418278293828017315095578633743806331477385223112281514820300832422337471002076318820386091577342704032302998916541185399602659880385702098908306639682319604784305287107471727739423530877305657858894169149599976348660617318663335388295835042314322561933508073957723879548863375084265521542762371784596714319174527665261776027205967293995469062883496414984486661309762112317046463685996782534511702758837015136387423847669297887994257382012187274740356014120169991679939343459864644357476110063947764703949534894023635839256893721306564913412867075821718294869146631233674728770513539208796215767401820347442898715339676778997558404198659824256245673562994455747242796411535859607175130055252115461590037644991993228409894843568588319798748024846585988335827772414768789834864003268219760406073155293563780937756154305436107821616451204037027352192002639548810205304875713794321755522528620253182376387144167846441477114356460987540156209166290891687417366874407958777326322762076242885676697832422676664275443771646378124116647346753216373510838587101045424717853812633994617769271738678783047686538092627050670695440083678296809658521541667968569611377731477232430894118808355644423114204658344889895078667820438149010889337184504958381289114037325615215992741300732241894613930588229997425484902653975104048807701506410374952319693769825989105146849409589870376912762139161263065613600040025472727912516142400163776772193858695881567762630581383776659897967595191931171282129210858291747876861885261703970400221567926064619425926533610288657467331907209686745839416663767017429215795790073201025288183229491345157866000966003051945010498674771710576206855551323569908307138777488528778054400526167085963753704625511526676349352349836552527946747134505645198937114572032983544712942840856854513410034680373338244774119368021512910280583801065818519553875213230161085928531989540800801242382355681829721465032210719441577010139749261403654539492760407307369863443391908192762973568035231749815128885860525231499425072444152347772484356009722875370521436968736577168141668451961517478297438074234889502643671301296978210236222868674474842441004286281792538236670472618684357067976270515104533537836025642784576747973175399605568969161092831185556098203926959124506309305998708726828720162982692237952746828404787015847119680458244135124009820842859871312184692125602139825329052596023388028871598153607824739301522098774557809517250190327594523339150260778776944198156240856855593733192498688193013998953117174249457422155352859686668187247574589823665773395390246428002580609803951285421236798718948389462087792102187559258230658777117805050230754590653845261739792269412227446957363382189370988315264825761098135519167512447676809604328369227985099797205020883765613458565563262604669160244852540094885240216089415387053684623759638868164515877497497242657799767727641724765603216962968120932248917626371078860542206091517883526828673713751308340079155005618182441195863446826788698204332605851754318685091834594848696326391382241613433763157641432063532291953823760057900612176169441691524611339941539594058503738078100305808096543680545533375193028174190078678618921684703690120217053128514932571893076822901206605694223433479949578143198670207984158241332728342657802424060038533850879655654798786764078488497717872750508880934508010065567644306186965002587161032731201904296571035551152368685007417930841771046451622474893492181678473752193827569223193018234299036034513648156813761826660544158058037108602055543116275468527978685280087473847182895118002908896036019879625193408276942785431955576200666239505215364519769631085499862461176454009120885355231415304976820271146245319583210761236215484153100681494313315924177531568718558064251228582294573067251323175298753618076988958848194923959113381293165700863490246432533400401537458654988199396558576676313249367039713265076325858886064108428737837463938338527013277179880340742507185297015607001910903749386630939582341180877432515243012537912678839895744363246631102848924850736380790624409119884583967974533721730321310616661966692032105255235345258662125670384141758192282163675975714340101300245519529406354163569582222058259998659832952614069466923169956194760009754050203367487199764243652227303662105180363759369899528194539670884514307746677169544285255402622691663911216066621565399355025138372627890411320251844279166294943090882182968699144961254052476359743379920229976404887726143987386319108880022400316293074994122301235510540301594578476246093391046097476850779766304563904081618651327965993436618628455347042834213573295740992045055020121403750599611821968639592143279338492379142415601066087728003915038029357531252621992664740671300784829689208702623839254875606534617046000970841884333283586217650442660340490710370359080143896049369542169004440230703790266365776719445528768229194976128767795776088722674769832784636282870687568726078366163157106562492106544328512799579303431743810093839973373598963755698700961812430306393611414919474893501372512495811467768575826170825981561355483668996863385860729766867116378560630756421395289925276589811517371848172969119568782658222811362734242281915608309950658370862598260285167861801825955403761084705772311190667296608369049754972144943835050771835062893699908984271607416206051770361176455199184185528103335871239165541027704667113396247236010252363147975876744852375052726869678600763944998149113812978724162851679131471377938418051644267731966424003293297515793060405390716695168690100252893721966555553080828769579774991237646492728626999771804151314931077116513584175440995980981624018008993920551491067360794593549758090902902237090212302507044004099061119104796272256138444988736048232394598140804079954455117489630230331521108472913937825551277694612972269329535638162109495971407705662165298366141855642022454089712030924264463213184658599495760929732271706698553452646742444484023549012441448337932873605848176084841597868241209975352288229447232608382746819214029140685661941892139132957593051491846504220274430435882071546651240443794363725670439934928159410696455872193180744975896679275889872536613460163431944284226765443275830562657821918562255951949615282280050101139319325948692332961744174199613306747676758200042033971841205725700350629988219406178295842952964859735780834177784034532463447379314607919993525654224721278714107234895405445861510786621336646188649364988394710941358147137002417904921109265304265788571821304437471510253941933859928169421535533187481037161888646861208018574011668911815736332390244482111316843385776825833944612309539485145421177530071736750064337496676216860197571440889561162534040422010380001305802137415471790602915398423634470444575863010781025588629651254358493916419995514421737901578846829805604739426108719810389807450114174664307311492203066503741595510181184780896611315889930665432340687549656326310295647978850918494876753046888371722832987503079730329127836964920775713835328441107374900249585513248053669701831602215830415091398085932581502639018853762113604667977658113825905716043556071984298973935816806356581337572350456453789665343254059015777178325845543531377287577438012603593213812496615484368449993917345705546700346080308257115024382763186118837319222474317836999001968752534976373955918497419934143072779522420046609488548742256821216257838076824427986560291150392363560628462064505732746147779427385771300204368877221542394279219961856106496480818789591776974446567018571736192171996425409610091931424603777175561843791658796287946283350378838299232959927270383062867423412212850781158552912857092006138743204739472981741970666880695383227663875447398524361145906739225694876949342492592381284853670732522842999233902080646451286130095578071703646114921560197601668238805389281311621664416020372340559653122378675301368741418620969065719460202762058651520423899403111636582162921124080515403373190572136992422392657869708523130950744176411886819220520874039884318401615067288197037948073711329095735511481082923167605818057182558677041521164137412877253396182698892417865111860906464971372767449311348831368872549907349647803377692188987516818321891780895299139783209257588406397055351451050740056520805234172944040673568387140757795585313192963759332482564163394706455466069375486814158107619226784183218509230217383193124457273152637922472826770722466089667794146981917068031944654723407357629259664248479022180889277511447691608626820402546327911763974567875658110918403928501736299923737220645657650493770320913214946183678613756593200172811158329388218572688707617611461635560948937028846898108668746619466254044061028038645405859470000367551395994967440975904097193608423176422772189423371399493615844563590459626432722836561006516195830633223815490222826634179262518224035115553225064211609290239967637650390985957508651938836056226815417644545830141725502867872658337298755366886590539779758982224647855958358172256405581890976592430198818167338195672268381074772727313875884916145612226342078013438273234669083984033250095771835860038351848265900539892879194236997108011474873302382297214613112150993125072311038506168071628096174285327596113205252676079372206047470516022149398848859720555774640627220342342648662127228854727538151077429421364158852540648545302064441289216031552105718241152890617517961867432484980908152538211080747474926945129016875600120198798618952583755376656622036380494094513692929969841841335037694772607089771116856356378646080710425140579672172104427379827669466807566369154088616134334781433300612891284210616840005227478171098070339843088863714412928777011253363835598777714341461466109153063165249653878518475004347630046208236270611352844437951340010812033763995476811291131713660404854095010796374991554656049119185293282858749333539848590830774138370532836037458829695510317123097934116355915619938704218980344554703199057740445544686116303340096588252468989342129051755614505259528462299496373732336669553711117475462982401923681417348842058642163386108738689303093885414606644532214525707848486595663458099594473967752674404874843575464998329869067293483608311524166760044055973271428345022096187952092513373084652068802212920762403620081348115458828859997412046159426570270657436006208876938522466832245255968584140666944723492156748084135749286834494569237642736057761928487107064874222898444043332620917988683780502892472409695488522616071600493673083073321039945992172263877727451276595762460058849682402712631091083732613015170510816585522165316673611937814846078185397264235957772269634809084649866506734078967964901344643547692797262784377811306805804656185817569320869261816852992942035950508763590134929663535120436691939354362991859962441551135884959589241666888157475096781274551700702457810456524236557492235364955717566643126103347140557749844388593600367989129928076001877063584164491557922194989101018355742548124757241322163891087164421398602291864524337422580360302516564778492686417868840803899979098902923541463742300184807162344120590444540188350193976832426504807741007744904234060007732685945140873707442405134863183155488515625420381134716200792355785283024326280300393340686275366908468532418656654148918175417176793272874857921369145060798243267035917640268250271921162323302713269890929148658828348676589315344631855333684285884132451073988389709345360294324065184611794657023867709205089234358598092375789211181480012091123844846809668660469101389426692300260104722849586382847807330776459090977482801055778875100629541727040560430418111448280220973878712614542943671927465013816540459297551973109166615493861625280265736732985870837403736057480867060724460510337552623308968853601725082650310035174947234616373150838973531479127091456365411548410787360371588748026383331663680672008253303811618247835852735690239816988494838376565520348504835461382584912364474008481043188889426944186608474391847084973684101679686541342251766259591166972389355621340691821273349022889337999707709075172959438421760815599200679749797133723971668372476410189760757983984604591161975439194607694010282516941229576073894003890788737544126452857312195871526899362920625064572490276078730160279674825461699553263189249070977279546150577293280439238027712775523068907735051538154514196970373934133345447219796381359869761088585497251146302019686073435903868141819010236153912242191024168202989547923833892314253024062150476571935608623996543680504266188493578050201255348741646894984112002744928456530644232732660235984233588166824315133710390096864744690136536688877643495911227560048595363555757882090458641202592722665468984605105271522613949126431574047348409114985036403702237025681526358366673735135376588817727435824783091162508601259939578557372953532778134293598304779716283167851435098743540513074742050422694570053144627688058464152045040725123957687541473606323322489392088559311562711429199502842595230523290913409171787996505424273510840123921528780108354523664925611155651026475760401348231379618723638336031229635381337183995994829148683520814152371490137344772669282020530912972619803269012016979875977509560344692752823237363914123209640632208972323604119179678875274666514817604276026078576215039236499801752451481009975183585285279893353729065709349351567351893810586500304518789495286076055711081156251628972527099997488619505781405342574407499825583861500797685254048103613334829113376607487975230262095577440055170716006781046887778054397024830591053945504090397986573309349491610045761795466501546031294199675524745211278670449950901530480784551081808628225017888572231675526900244166135031100104904617556892577260523552725126127484166208860790374414459748218811492876025419278526452056304931638529312272897143402840074077663990281062925685354989376609336404154018187573421758606776469944019207980273961626476497704781571174684734088432829974061008783863399676991654520876392478393647124284491782675562598244936446736796998281583544981502814637005322017556918666079701609339686568451803144327438983870300682571831257487000177196454279705355863861074016603067161457659539001609530378306125329635128136365188657370152816631392503424156590536309606377725033363912106171731467999497267867541060459489115098562978737135557458638593649523057404280808685836071484874078387959441856428880523032905806443772791762754701784437970530309283927526768364933668697736235878397370538394115576819794864309768237351079666891279154186988637995318060237653250782578341333521784989362826368104226169042834293310634611145658826948386713326705813280494638322135481752494319508318104305410763721126990480036311456393201523193672235619875183484864624227922542079779166730961284592273850575926736377897600115307235182467604639547244127205185950432382376707534745762648264462372767088862310613482230640881111357335641443090525935845416740823074917813818880264813454403360169443330559373812591539591030337570454331455028008109632239070176214762297651424933849454424292878177227683756703477986835935175185312522100171977091711068465749844613694159062619881688336034824440233069451235483857658072993639120450601096422322110393461954824532216324100563845016099312070160098578517456104718255688273463804591460024278101827377449090799447089297098446297820489438199106771416954236052539619255126806738850468740324865046216261270335126471924989501179157290149430307877015828465397935326903669340812868285827829830041580717288490189327761745692890030505530905405035036563026952914918118454767251382841439064513453249439966029281735338183575227390086183749127845535502657595662459752311278019371794984079456977486207940451083217607345682024431622253634548790277740181956148040575969298861466762185921393309934835387237822077708599364941134497950708436721839267912796287046598571630468404632446104723302646248446867197981653084316120547470397896409490533064688896069832072317892333597673787390348061143755411845054975837689284057967108869419608659231258834133589130367097140976650967473003700711922187890862693710214639240272283009816863240682369419015142286742491177879512368869769901528047095696065988743969360143219733123551303087118551710418245478689457084214353677361368635903037401339830274462834804415234225883749756912951764470428329921436408011538148753671736705817137113393995634790374967080223800149731450168804240253991606742063050550791211032545993977488203898391536052243894641418697359228361226782300769855740485779394643131288822878736515682103754879916399153525551571043726600856791068698580150825138620345731445297100713064019963023949390703909121183401993633173560414900157772927309471278079024607886185970503796369904943234176277041063900920570496658650583892459299240678703256152390766161094883508445731005908338787576529292491255429600438401514440161145204956662314054317912259934020297254469711308359160209532644121909213344373407520929880598401089460014566818066415913341415912166492233792145837791710590641636081732523673622021323160006624652679129039810740476550993378260734964822072339669399206862507157273554858692755910614995381139475175810383163844394189775422868049100109320502128166992893169626172900232406563038648883946024460223842955303640765636771156185777017294021728911188949100129939084236715492635168330283462105531603617219078394968334004055240761256240450668871640671398168662143736284361300332441262101044958544074147137537856409518026895819192576484052833487775808581071756167436674849985276294460584490325521145673657401775847760469588530173909731234101450522037641376402283635434416080089193850028031718953559078955981812614477882244138749716365016390739413426650389916874173935768585506354497992439744486061372784706907151097043448864866264144359309667752711921130373560368654777435044390904771749808436271054975792025768377781035036027687898505834889132259349685093632216712234111636184461096960992239089345784287018003978292988598956387971665998631308016682740527234750312333201278961952688608458987376477698101162061768902645966865468049380657769723767587025764724924180975647948056111518829040639716463329752795704246814531356772911852927601961020680893861590491193264587242379398828802056630883852745786357727450866835097986979357752030566466918072128238403678328045964110366850637734328251797179934793860910085058199290152380295664246434762867428194412122688617669155669833819618869446772529119905585002724138709469951735791017409552953926927185219820132012195425786074058026281004618143201955267924745548256885914025907863833081614154731982007675311041442166220690674244829163645326275167129524096280920968475005837035026066389328778023228193679178188030987240991233355829650340364653342762214475699798635317689590262024250517733312019456052175118426099976594744241910731958473071297706594995116921737623039610792374714707999225703132412868349327377314974229679171149634467458735045653686096456741442304011968376417641503100452890173286979086863365200263031447210492143128371860684130146697136913826132806677236514643933908191954455932125620762522224450209881412166991669852546423779617093511798122279062358651910722695198610509978640874697614679023647221288026145308182396768051398245979812005540619701009355128184140564749607621162412994373937455212780945412229124146851653332467406622192883312912467922267431595713253149069397415741748218439178277857476365832747132543417302175990542289058787203666169183555308499165567031653240454498827559781255949838860905997739451348934295057127573044102484628354602976309772699431144451564437264014562653299345961649082965779620785467914792940704621325763060884158493020183568071687363189515252685105757882113750255981549821878967442083526244347318121413316644133011039813119161654638367298197909986439677713585319984641956592509629221953600825325792727060181727387305149744917208115984211987900421585376640071855384610220438343527091403402676680919064221396036283083914363354624344578158536872485809750859227937374336044204117075247074878731685465055788597799636806001995265356728842119365538666162985681951756418682406029442602900766084387358926914356815653712081578909225286320020613800120217126017134542988707192097763511238100918572808082500546754166049149491495863775435447118319880927665386981337537988793533985007885611273113903069976181845344595271115621952620709335119037092478305354278889114548178774323178461819021229979513987991764989103438390172971864341552711253050930811485788591194136357116589930066493793693041914198215100226594400533214822377678576344251624354252705830133087821396155434198502240139035584473505893434766335124277977637305595761669419197099435016400423350967483668434461685526527923697525275520693846392686655208077691071143702793853481958668494861261645801973287019714102069894110882350150492826847008068457272520946070819146421785024287611948820648445633634995645504661074775963957177001814842898837463893281515757064231775598728878398083167556127637920562978414068355678921313458695357641512468779373693711178835295060774166164864228211009903455687223656771338111669729658837828674185719242444449746785977407547920193350252317267691814863779820730051649576300553334837099595739400454672567099019178376728279151508451181692925467495716828148472842482907739003459720264458114395677296716415896906254529738864325780318129346541394445792304654425111502516636004427904495437329768394592136354769171428515216471517540902133632884387366568538991705426089513313041985834912645583148540861304228982795054260782280255888720768036993306855476074650470899755073174904628513521779060446570675326233702492676459252450250610816193579804329511730114892614851850388000551299553652978391395802124964281182921455128351886473833017172517384030063357774566972861556288197622917042160266477839590913670699180003369363219132150961788313135431031090552590451313329301544151678808526255547514821638041250802143544358038342204984188437083020734116065658072577673595842942255270252523721983345324717207971546144431722745969548680050604747964640999046579882948206168629027971299910019785055106938224448131308591696080500308461068160578449248978640071174091390964140655485744011075113773919854416513949321243479730640140044262329312918668243153111948446765276839818787487175409616131398689396564713616651128255606585403620879042482450435936305124368799112827074218389656847677731079761722188561579884973460801805853309444398059494885801413999353124889013067734017283939575400268345662103283253665762836485839408317699990559282338309856228282961216262576015908328505422099368787660201786904004138543264681739320051436098215736443930435594302256391186997066335693004154035988513612421697112627538205332855599775388596360349194021863068457435836398801231696868785452409040263832248640391546237939658789629655381725663297382762509829629287951128550725866203554180269200224685187695721532278211000693515440222121630667400362034572176023952507764649113050660539901273490562943167982681025673159472549058269904360025031808622639332356417995835265945962918396863980094562052720243911072939063597815764014270894993518720680369635814808021516480090765319264126066546170326983496978969556894868308778704937046789778602241198935009535414977623083993259781730675324116045610177509035623703624355155583367427138026730952069272012682555351636282874461958086516158229371349956809339618630500296502277988963507332702811190222235737842522502434644822231498586157690281557282181223115746670386438925758809698483092452530851473075387470788212149370777545248556451648404700769639621595091385657227651973121090337221696838202583108881058097766060597520527982729873504901911042560187637390609604850925825919637974077607691845617534963607119516326610467662319659389418421428763752207539163278423636487889933446250099261620296149750573909912070899778823882146838828841562822075140123145987640416356784302163520675137428334974086603346627152009546382016625730276972132266744621923496220140761568577817905172653860509593543775513092415373767464552439632131107225129837728895164924603495382452458925563669464785597057262452257259295542539680564433234925975682757873418309496729780910132489612706306575010119248674792951962200566267341761248283081944842763076333008546182648833657854215018698192021299986443968471809034382027186760868542026547175002360395722515023811313588650511273851382419964098622578763583749275393147887890781610103795982548375937318489694116454774836677002478261810392620875921202871532118701213608863972663824473186268978588594828464317349888245321797256122161427004656096522011724416778557169804505977705359469290499256993508734941810517514466451600428588923465645888548384908963133998122829859030752396673653956733233356869949557259330823872097215313473308918042633336498554943698455869371887834163925594083057352831796316367479256337346486370091677185603250974816719929073530234364546265087075306659050464548178628371568607389970396595110193494630409775684790859333824405496234902148789124329785623308693901475490504073933213256872807721661482369258402204178574463447793168618622586571789441879025712827849411579064531519238524284323781374465929833024605735393582737875757639294353603533162900027949103577039010853028245166378734907508069987501302674157098774169635048428567313904100595874103391487178779956631676896901141264709149832404644523761255116954707853810533048642709970013180457307520628729836259210951044852168585089456087501667031800044234738291492312731429640666114591375602995024014286487330934709928561468824119054726517974906897048704119242793810974724489795498225576544580239881161932123297334962030364152682462703404601974319654956166617942503822642126348451443832331561537992418175657517289541062893981878808414134069992359628676186627016454904090925003121310755603469103823887598740492044812657923255839814421887731401739665059229086527379144042365006564770518714228308479109472537197574875243016147067413146546429014335562348266830451304534273002806635705661123864346530574198113627347913321025026655917470517079882710801401970197230880260216306435395830960706255048036626116326675937150678091205370932235729314106041887359174653909332730430945085233124135728218433397476000539345523732921916272849695240244884477662230812127786028384930299653799032323027036507564419797273295583222153100649261303228508911577494680714382953206328173569845218098215905497305056697261380270565097468934315196778054501994195021443013678472722000898746453414564437266381117804684085523056379247094878420358865338769141426956790236903841233092703011861136289504327356152562967263384806280857590748663793738023649243697176565173322688822086580827534417613576523226294240103691063211749332418024857410347111609348710864069129925098047515067282307611066939591723002645037898803647207162972081981617260017480381287848504966555050201653100641276149823648836819935595772580434557235173405021428730103880640198235942799737174182568789066604970780419000105886148004810709371466176785630471544702697364707292043256563489011500059093575991569774947930605236443236393712515484819580385776869442866438302423262137294034158916220503662486760764716425009848944486962201924549388722742462910664741394616169136147620949946065166360517661836061999542519658001116751229353025927734947238942612682460995347611699335807467683956933336495781862292549405812533722283107598263675374366377833185824825443766287895041595864049342181431093711931430496870603406561281665710866223156031449012473153187752202761720035326240825308082458437305056260500125838843857216911468055957190484521229020885066510319560525421848474245001468812700182263564481313962368056570693832111824063007573815512246630462569664680113849862260972169651599421427288783186858147522067466016874544767291892776058478872768668834719341589443903627733848353994207959634968811282176398100314339591125733247083878587055144947644913425163031043514600838228530908574503253606014425569462821704206062121045787516546535054094755050701059363075419791998489685404653297858377308483467337524355961096173796820958897024206342439848530030932663237515590022073458686637802053694689476414038808543857871781321516500072545136026124209156050410173449887032795820497785100562407338577340915494827792622092656401027963973718970791919393593397443487648986715887907506830088611981697799331030958243585438050360118956285309211769696333658074036631013834955901242857112691038270798809738817293927817441620101077796681008859838030628443352255241244544442198461801856536091749963553675362020825047203995157737004623514492942933095305424022253012370164235844198900525315218919153093858025023493277539188063105982004563234481286333617942862784021623350029877992416355535251388173790174355194642791883554911277102577670399182850122079466373395769465279047272732414435256655780412451037980854354104727575112512200098194038148255796958461553952953915804075758219842508577995555557253055847704050191471044300579446007711954136417382004630509052145082561679503661894573359781924608875662813187115419699318837089808494878163927876691306346468102989997058975455278711546726009007848339545162956803202045797330220757528784210696781470601912707626872166447067536224474742480107422164636239948708330809171010967473494046369028612903568211332532927488299330948416284152214968717381839324192235508963829291533187724917994824720726042105926780860168614372824530138602106921593608251019761128954893600092018723152571178736659768286523868998566529652413412029819005401563737715243335596336365967763970069084298856594953217852522068230778262957389228076999425058951497564879834436032384444226996620996055849341852314881370422456066642557315190008328672956791992986352352689581162334029428981851524188959787897910443941056878322970867375803482097358907720397660932961116976364622266281601769736572885784971437973876443777732141304301879465000970277408190189823868909128856661002173236617700476616835504639054483987326974549584852104863712027438519779874768014205924897885093464007958948953399534434863863493898412965429785066984819377497237288723672015272074869457049484949197901871547335730991961189655014328292614363547690589077226507891556982372272083691382727784131814151498944639783781897536598248499110782215469794047440740210276970908598934163638488498107953499267705897886638715000328579580428739935865245649432885383223043126698418233701046299984639514152699014464055698400363827629587621826614600858690835216865924245728563603185429588584931489420097054895123573382148814909201791493877976285280532189478136236768870009598773437546443757392530556273251212402177416498318868332270810338612617056216279078031987265643100218639841781581856823029780903848276624132296304782577710741092860020429716472247205783843643276087668431535547768405056218630228388159581035969295573267299768085112175193584908535846601338831653252774377629498298799411764572544897466135885998646728634545697739085654174295882443102652977267143414595384484890425323456717760803668677051186497178181626418825961010042886088820307470921522379333818894884294324798799041618918744877830446854354124161629243888449491172899861661897817243932107029312935217130212906051030586310940990682425715770987164642094114960992640819243038480559279127051246543301764794950312121118702261513031802656295466049922544063287680485017048687016637302737438633913468163115225684160732393312203715342244260906818759858809730795400624050562665820941312394956997140546951239038366416771369843040370395780748909767806649142916959514349201506211854175245438894386466598226059304621449595626862850233355572449532130269240370660568081772600386268942602951698544551220778260676575637116780258376057506877672428542499157484935763010661209384143898888953829636955698407036986943401582324096541942406323290599878085215208988922123424865258140016785060242260859382849953934995398688688217835168512093879855133182249545756892269829480336644991792297747281552081975445864362308481706221885319918341775639224370212317092541237973265748003177260805060302430563934016632172916239257252019551883987807839672781154856115952219724318018827863095252485465038506762241368357896287006205249409474546480838667640643484368546214433352975629352934017005526322541804561780010583810332500418079482752355168147252776111783860591190483033080737824378643107048673382333301018618543465449728352222116010643223588049963181048081187686753500020426726071786969902673550859928550634174811631969707413624188396660032989395804407212727112437558289690705667731260111550346986839444111151583584167859742998234946960116196716971357076574485990160708212386107342499421377380586439714259067725284863296324617077891927495987551605036376971184295965432428642254786657076535493586779681568415195412626629013293308570324429458997341393852250952256274660262401912184805080854031319504857193070435047724046359857643952244040630556403666419234254469319762563928052981910675034136447717881797888936914936340444407331498077818375872611512169160665065456256540029137817912890448660102079183874137562743220741155998912769335552697380334852869843817409171738253952763137052445417637031874647775269199601197762251415911070917680929221748648754114582766383938340527218378386339193099267987262006423817191247659511641853134382910209682861526550139303060046870742746272950721621839493417809833660712175623063494517110370564040708793178761190003683263802527798666126212854645602117590238673216731834871228767060834230192720667445424192831718314833913797117587536497179560216336073365464093543267933398995715275041257643333669049811542805208617406167195374622487770858133072833247521643578653219079602452834728102296134987238247199542229200279800797904828915240401248208461534707985028850634767502688708021771667685269817798904784933015012831710409929377481352610948236015785734340018632700742599805995361285918480967591425647852374352861838550734123116939516806978221715708294970341025459177892529214715773797275185728267104534033585827281695599404687059395479751102060182338381302544130243383158034887578881298485481804062361202849729898600127001224772121639647131043045689927973744582061283158454161273494845527460833932177227354924165762027146373373237716434275385858703991906481625782667012251307441028190566463456048018719820138554323498152042669995752086864174162768534521157097084968234727450333595655533053771302351332333166485714287585976648228775998251897458776175198088845957486731293001818150864814146882041461446522355294571465804883269777859100275258397143324504763942191231778660042903997077961478635704011480529455446174436290962045734688103769467513325670953631319087923294554505862869972961925957806795532855251374385260601879556524930743496829898579162181513050647714938280197596029303633156099367945498263304968641524906196798950132438460607399411260078847438310885246066832333144246971754647442861371104877027312828229297276900179397627184099677254081259277348728952350307954673366430823349855745086063967242519376189729674911924840120099666090881135182709972637802207633295313382478502171814071102229416812639132499628994405255121227156042696510758330682299228606592148780775060015188783241838260232191949287983283273353558035415970938086713419504287476975000716918142744200534307820840958650645834994816269889432125357233223754492660244007386064506732804880125447593907569071628025151755653328829461765946934950244217603573717989100653202975170952471387863552216363459883552923184400508931573530790703121301050710055246065267168913787756933150346417618025137062377526466770896877123706703104883647058299799033240325462066659743724646124861572139534112207242900671368575980739621548022482874707539800323310181513977183058035570767835963593962629064684414257285933600182357394233966311369031636379848774548947557116653531190877993515271186435577224801692258509183957042234480321128978062018642245010068567268173546841712522337189425559245411847272457331196007611703735323085104682499267302557852612361159392373791878364751859032528482670715807033947780288742728284586479607568405086290923860661932209646107411965703371769865377708848086588985650317117710364108453366697871794152831623717570739385744746378450871076619077836569247327584830292028428027603778901003328397457356590103741467559824503061855592770749747532977285067993629503795824399279078249816399304647462427030952977413969449055308390665594251250354082070102443517627312290600302694153182010254782605353644983134736698829973914252487317649703802834114342988094108723720556205023578130445926854635080529030779122563075053263955692352742003572911974764232908122817139216241036734581727590479608004376708353982625535310890257698306460384419827517442847238703700175252557839489881221265599678804646874196291618265625683285084482120899680306367831577726500048115891161910312944313726682623689282169770498261766396542773483010056535224306945869217299372765817136189669088458757724937386723112269029336834355667520968013602728377729728828093417071424572855155581120446136515782543016678337131657143896455221027517173138362013548164277305740288617076475934058480433525925968088743860185125251232912684542175421288174935778141446282500509127080039060467259906648629130000685218688718849971351589782622700552895281479595850551310291011364191626456796439060142911097520556960517519600422048200116868556452757395619284456396768376276964601320606851365893732361287313604154861373042592221390792643153598889504709767787272493318815036868416732558171085528138102504651752665017513757548744486008110301353438666447311083281606987041117434534054405103771472008147363215898237564325498216685131960329548728772834094613231985396650859680179922792658624442109387172315840183680979092244609080700688524117215461713166861887501373586777835046077548543258503898585097489663708804828496830762052594590247836720775932017040881838206475225439005115408468291410195128825066188699472561547234696908421610319018196749363143220658953680875545010865175480220401387537683866735076168852303259463236723706132035907362200105341281461474069453789264215246630954443873558034140491285148755065159188252709630450182387892454131458862238836578547310099106625773915109423328307802924292455222935844154999431997402392219044174835603095397391719666728239804185770144403468361540012891517405357015875628080028055712947970848961416768157270007981208660364390307914663065401440751644459649679008864745460471129957952032015038061447247598245340173485975035714300233980670403025242524175075030104105699805721398808061158380202611189081351021697121625897416680351343624115719891326871613884234874076919999907717296162859700281096500382912802318721119372400909770069512794952654906682037972373581116130007760810534733321013154043557984663975630945079189284650656788894386864889620408268690518070409135293122998157133823289705682654130621484050269903890875633639848326704099304742346113170110960243119883424870483102379799589917643691129424986447397869791540466422726306926443169757586310353001862632736739215714783888827229655166750793225480000055993550803068811066308179190558233996527927709356944163154374896695684134023812679443347774184929100398583629565957122930908391120261925231354342836909237359444299137344307048516946175940771990713648764305230282044547370808403686201249940616466634083423436206778521358361035867798129248865068296032344961149445341567132405842235808762051727893335273734981206480160369792509946644883809249489207239673163991520544206828422207567028976659496373306526488267890983673093625436776425499155186365519460099399873050098250296180261426701786376477015705645887350403823388003545099464096349242599785143810971622171375449953701222791392393381473923769920452361138448487783715097497381753619861361516888780076447333439775636288059467576782618058663822002818625564196894646547107083604910224885733683179382294176974516262072930372238133785030811821343288217635297223760699107572302780326820810986129920064360632029562400469956751060027341089852574546972795144839758185801010493029320497054361450322449939055348983109105194874541702699257715561597226429889841411574553279279026743385171335357618802667461802202593041337209709804996769579571380317855643047282198660631716376144229545341391472750672764907174380183238905996449237857353063403416150376256354416122897834912245758252688771844661449869990474622329640428184346833596913783548007085526153863542392967063777206079877239293143588508577878145281447358575502109887443476825919624844979883193270665616650007194799440295197834162083222844020228430790540209485603598726152087508283658943342056949832200570653094248957738838763339452042268140502983524776107446859977952299426099660257782169041439555876602773788624712184463710794252520869796765574896774554986975781529080772039896839330953552535057980665190833760561803658056382846746869169698973062409657827068625235601396617229762067098462499648821561337825809103151823811236788284229784758072489282145545138774733358954576062400530644455873747191666421604310264583382831909646507144345484566299806384112274597350406484448461514488979668443506660710790427162006256713881722115916889684322530537816687254174246234463433607201531872761447883891050037493304204843003202035368294028523781747571660529141918933863578507064735180134945049961051812266740084327736403644704295998313976329539002942378074860284883479706613611558792813709490860118399497364450709443603135145976387435661126617290007310813222527384108034642606569441252423796466843599001076282780129709433536441054886720363714234045204574169575437297588011506891036709184925714305010213460887812593858802916333608881885801845449687765449321321133572525201798400153169223487634685181929612638011069503610317804004889947489047956232018897130974939066026259995206978837263078806134774081732939478751505537649713357825032862009179547961428983418129516106215014017254969334239386954190203910031721825393357461693313587010272592632530927380540285165368797757792304910102250500291669207864944778464126842135139021776666459651813542670158080520609727553877165877591881495541360740843116011046644098488358010503911908420207839327808807057577811591066559470649647913447912892833221879899912182529132417096022770620647494955746325294945521255440154594994138907315120617003631273358326092164156977662290783459188821379969774845769768210264873878671719901032703405225412882293261119164745526970978611532421311844548922490690400023391824704380033064068851247030173138493573978009878244321213957007020322751511839184155376380726698115810231124950894085285632340869259801540049149701599090384982009888116089467896678496840790811400591471157464009759494044860535392856038369101254950093557811950278672979359421749355231117791477641763356330707295967481987259748840765928586382646560316400331972810160380163160667932376059647084047694134304352055870076166881752296074093719025660788013556609200931302211302542788990155695706004568408008620071580429259298300512915805638127139326001815710390136829068205482566384741477060006998027001139466564397653809492236496858113189852043081032840706407159930837258644859875393517472558922893341107173667253590488083082811036247292297018858039212871534845117498381648526416092209646809218891960229049370696966013664474925731132728424551418641764423465974501422013474558123571889669478739026219358247383114433300946637234715251338446493591402414252355927035223658350866237446865955620913623239592736325598585798909482848280669367637808456864473153096049192820616609490915783514259909021325422954426791712861055552356971307084816209649262558501394236440114720757591475884579212888045933629398357972092081914939676373857227330350983765342641999710844052821811687690296997556128520202220371295114536349983066156878129140567805710530007884229365156846254546040279280681877291180816858188608476301864847061474868727615074253247928811820504766312620402503335762327703403568625580917473099482323686768698306050860653470655752940923550246776367623106741294737011287503220479878072432876736661612673280462205073922948446833282389610232910794828894974599056793286515259842037788834907201253243666816469045905667613380188143951504441780834186481459648098650169495401925950374480038677315514178272677002451382003590984798107104296955145771519623608194983711649236495209001812257358257982453668791701979731655705013716209100994691929281663801945709514185930044842823340291893300910558080279093772024859995283007201473217724290918703741293261657424949528761827680629369424078456415131605231827974745042656240647686373142564840386327137243313840172209336211248424680617000583527153196498123224593519914937254821850785212017708853189611407124098518985219355642038372262302978257754164853474005542668165017700018089956694362902656087723210218648025294733985988580098610436847479229120867851240726314066961360566087288946350507506826940042965883109791970064662596565035490260568759946780854416440268434024450436050320433276954879958337852006639565354915398126185776767088366000979885749533061544864368191355372188132362038213713690012198498998529069656759834070143237215360326823998107099574910872933829785856329416060649365694192820241147742400735799343258065946686452720511070430990801043145574054974004663267687745117553749564869635213565153337945942577502326538452217544937407448467119729115985845188757125269514628341976705250858257569880113848431393094928429826009020009174062792648112335842242803301602901439735969543292859834912184287435682173049284078401773359110211512909729210333920143731928758623329206676733271207546844274852835165752171914661320996825268795423324094951693583922236057759556049646552251608143276263177080831120717221165340436871393088616913079199686221227852720193279854847785018391357907543292999216012036952190013087471900742409539269291519147214737781096696708649713502024303914940020167860808873317554330823951706792511246550961073496542378442207741750606626848125904120619335414908942454115533634963326738037675109075552381482052875951306424712424517382998467043632789940912163445370544291996693817539655837230528532970434579661708624136886548947111887962703633718156301750871720333329805024364593994876732550122680472858966890430720304594652411497924130095833245630132630733563562078798820621978380488411784844208323024259419821623531332479492379102570012536861369048504489057856074162548907176232530155564422236874838315914346992321632156878628301779205379580707141601515527024437520302602567916882365341057470829197271398929216228232143236642728563538242805232540959005802031012678323762169174089128073652261627715969087416901500886396745628454174111301370096883077460476680604924597843317023425442508197251700023085039630865118377598127623964066730493771802282945610724985614126692066232401373246110270308492753716977215263821755867866966299286977404493587894757072517257836783632704481009331024494964541147015301907420282199771047647182737551678968104076340432253805608877386060896072555711861100557096674586154573927542531808882546588981987745759458180364496756224017594875365576407786506052518048747165074192673038015895629429775224364412385865948714563597834301672579006927349824467068874211333118077331426410161756010480409523886478396064705964965479387655089109959238408927331794358420850004798719311720255350119375047374850033585718860779745698263131921722407132662375354776058289250803923774267512859562411707213660922550778755124769394498785724464154074034890251641813410836767432801096782014833431524992838576432455444265197157684173464790024915485358999429841610288264323036037259042725752526318673426536237841045790108011346181646960309841205503583657239857357964942055895414696314558019007112826924825884457855678964215086651186100984153943253835565974974020847030898322461148722506393950482076246708782530507525835281872820977446186116079452232823078764609172102939657450238955550037838501625810519929046921561165818253718316505191493453441938468179551308958915997285959312726243910214149655532738313315666807097707925812108491264768861851840966133121200427950445509329938330644794861818880077481063719713265944258077335201535838512268199005780682258144056896667321610790171909868363945861000065558696704410293290652294243376242704650296281804464468456870739956655464332639493282516869297823319915869980419342920093651836007759877066767512067512122586839571073746154236126662673523614168275657617990765746958079016383892036895761869465506401751571020457920719413348411778575348999864023232232689056538607582497276992099638269529876893090981250233707585140497652152180542103955989679129574044953754191303128856776117282655655473636686507666933049934946839246465827443940849531877611420315873494985434832421169086710487824934908792914307194545873682697596283587519864667002314015330742588359311516550494777376226969439948461693875721477914386857171425189860491342331844755792818741290397190586884019054970645186498906561155499753159496064792916273292408484078205246869742513775987992364842305572665923832477667407989498552357849461078074589452830979374509938549668997709979789796042260765650224917463440685407870865939357218367739788241528662735510750698091582443220694029492371886517901379612132875833596515876696894235580220098915647120297246521510900012335755446452403248887185130466145274541530964520136179871894139810418160197481831275506348134523759001635350919505563802114613098013593326714436408510639843208761618623214086375739353824961073840199598859482931224255386278602953591854626854179807000698859510466641684511240359500089945568463869971540604594358809583216442835632027345872675825158130713828054154668367172975025723977522288576528007753387214027534875274556380827058891661420438975143129151984084083906593635722107858559617469493205957935490769209797806153777452466916277718827891693088624412305334436827584544818632286266616012812578679482226748955548167175648880411045178449451237977442977023550035568149980717370076605489094824457086884494835063666924215768872673343826490792443894631894922682820064501225644555355231131992925904057500293775160695672341293645733469425065269732355877440218897371084801638710664892246083402891859673449690290133970434669626963029215536235750209905346798383194506115057510132482364186957355718844135649966788835518758047758456582839161195777707829809621875638987523497615532234173090468922155657223215297262555705320678866281430367279265140526517916470047880873555934198072463692799784052599884828276019934347631369631273947866671110226865928209812117975016248464983604633772873935985734438806855978114507988093656803369961967223769284800428739177667801251009434539252360234944561912027255000459045211348921317482560169129678094077393070766876900901494181429151189952472752096143665519075251531953254161560373838806294422112598632267437827220479319301982603608998821011608586356956557716694753976150075526871056088819890651960765371688750764817945495873840551521084932506653072249973315711632160058014199672034020946140901368586775551397446854033716586762060653831585997067760748521272434397690301772407055814835003812892456302640178296720976565604671119889303857701947617629671101318449341248686985179368216233645020332928371681582297877099585783547358103666913380719087936603933073990819464567659657579324080488352926434944109700956583461439607207875526462249026089118395044420371995521557020677769934593347350050122875060293188962313432831147896054748422273736477576053791695349064996698971651774723305590123979926147345152956961591036226500905954800993254880530481495102040083514400877504784294701011673454074712598688282415857440126896266884448471604646161017833467338814056239543216003256435554170507996212121070380138791977416015757416779765777877796133589581724956539309486883191028195249783509042711149215221964019687117964704718987021798795639262682647649035522830215970769117000206372270740936145662060235854177952629433344897011831473153297544530111581688522615426255418524323494868479128241853244956623307507207870843541435094795968008355201698357490263971892160043616648781518020301540723300826132038185958511746143574195261092748996921860115645051338811010999407263953100259607026218080884728536055898179577345872352186223854217107836802660660561947445086498965346083675474301551695163718645757450134236277212583818937917986758416945553077265764419289985594383471969780180190348632752376824416402388110447073992586396895550527176185662659113663185657549106435619194153985700943294540255170936929436725922592047069457615734290421660938682887996110946487706969813201544756797415270961403559585552392091519683628547354634903682027800584519035156226421265507028990778462607460095130315097977222175433962543222833664746544161802401268885214020136771921416218091266997810983507873197352181026752973033292389454082558655456692214529569581461286531611011023672778944803707189330655569321820329966137492097812719854544820260903732656441051343635733320194158770578692862907489985663271349428678050210784122519360122846500178948368281228384712934249544298183263078949886148274363041943022934623014924158235710523191996710940482761337966177533057657235435127795000817752700402600397091143168750899263880677458490430722829758565358621524210934593841053674085716253076861102030454487584272660171102783973387828579354274136805252959507573723370711649225155506016985868275501651732401052549648141012545431788068441488062254528430276349292776217174893304054625770941446403172856724373645057255910137690012929397337275065417625838345886258012124832442493349005417763059773490188470466591398352951679081737839731503877613733718898825508951129589337389285224426071135070352812573492834524642143454943050568588010363539721554698808276191504606104657754915902520388350960550341514706401251408756533960943752352389325664218282872415061759293134365640200175241518588320107254846634645631103394406591643130216166800853916150976681259354266186851394534830011520862187714766854303078477203440340475891132283652233766739896538875225130365857469986964458021457936497526224353517752616518658851151009241357018651524068204598615611850434335380775657820412676320946583191434266378378796900079425832314791282155830227531403008182479229419496263916718636829117782703994429053541678568012335132122401575503922929321636352552195739948639844230202316776498259854582658761075009344530767832628967461254244384988121124039068016768308410672824063383850461361826466843254027488168857479650730088206222191855258794903305070667633051309324880310193141539861638077440490763872615797934284175272172704934124296962733972010568429734212998908090519946053813630809589138718052935621548859059769957128160464768886242624291486084369598171264856768669162344095560018248113694855476188720155301405830046858256484597398241532482325086691099012488983752526363641617843708179940238090993754065413809030137873551062320992353623806622402765452885178635791007616352671946193400811480492682165580129095397729280942584102646723480545023725384596111539225005545620849806482316171927598417228577040251811777767695045956884109254646794168638891889376839913346381506000519567880070837751493028037924739109797300513496744708651190514050425714154341099411372822065263868127347173749526638150558102105773750091916551426380219396467568846281251384392442278562615008453429935036903147033102313137290299395260038548477953186907471407426810745297202985228464771684478036454137374560603181462127124379308208351052053429517404718400080019018256368886259308977747606683428574521786890456625767803969653869847278701919457308530778890858171213455145468441184499084352445982969870931934946374905451311229824110141163396823666223280165811868437533483480354305266496986380190122452504751945917561897342070904066366626353018122814067812171692083894589741898963777592565919927179925725705005301061726813838601976891480140607806457670153627862830758662026032275368235762642121618286939123968735841343766780670063600308430477092083268071645139365854315461443972029530581728891320241213453434849866309129997701406426813718227627951717809532811040411396972625026986685964243100146670022412335767747609171899212433847851678444901355511292954097183458308587881407343373624567134682592499618032768980183311513850506681573631691808671140383396296990756498315347411749613494875428871417843155525337050104267700443970876784410859634977328622854929603254838499989235414734313449470200062374760877153091749521105158666625561009013032572436350237859582308238936908771489815968030321373978778259703617319549688734916140264186964544462625343892379158060389941026751106361047369262914354309265900477798609506394713153395776081787484094216815579406135314259360679751808100169393932063206155185163930044541184517535203081325054999426722195109398210882150594314706976835533016479236924044969216971619980136334902070759893948377094777441758486692138449187813037308358216069022146101878408822090196235914392276653050978229545018329113752099643498785573927372941652593026985241714663727839211089124459704025770759356937057767712227142594929838879038277745796392716703792579263853290244997910931358513959715184584251644168747733273736916166747209561428722449440573186476834215178973299673393188786159405269938909167652601530951168673970177247076403293472868216525888936986903127444488527401357707941236849959656188367212578637179223948344026534866575673617031273555476601723886140543456385516724871204024973190881395159941977247524949440777050579722542388371601027578073478780308270928916892063490847436688590659528851978596432660496149601889184179413832474985805393671685642341568290437770201361550041531653097890793935498320963599867529212253096370639227857296642771674886589369815954912838074220738659001222048747242877458820082051394416434953711203063159269374654327069450777429557190861488529938412336065791980604572220949860393769020313050733672787545746982186879046080818159167239761305429839504162885262229993689136388963817529083715155850423739065620320628193706686171403356464964322991027886767191204642034803145964147703053685916637401295897101472325081269440119346600006333334067798738883214723905394969538770893433742672582954850571927688309600266406259645421570858573789554713808306757377597366444182934327796284663021314628352981210409766383064732137819989638172252338889295158879163144159146732889267177130532480124001484942951920060559329419914488051015001615174794091407331794804508153898407416783525731272198322196100106883283935237607564935706712908738712794831365906726822495455999687957378569526039379639651255301559473699418356732463630881728066101365091241655846281160000169920501519493199332221217575247983951022491412970841340329499883920193458767825024316413375464067582788756832069556296813797420061507145715979796701540858295583893869716061578020681743109249786415716176653987600464035285176523152408234796930706593920936996316907330231327997141480654965478595705451341182933001036681832901025240221103012533103182753314812515775201832561336131104218931823582820144130518517720772539401856862707569599192392109748564936659515784548390668616320047290808298425146595630329886826548315034460099188658453898116528614434389023508546211239144585992924391648698076343506924860165407528675114043506890201566675277860315325338608270043781879881541488460229905332951545339664283046474890510124915273655184722083208910669948628160729186767417611263754124952462391059036864406214865420553679473970140642595781954739426332843162898336145362000961729549581271457003237472447808466466086162184810513910554210794964407733915352077637548234133682120864955863271438805284119161060393553757087767780270639558565367939565395104714027406601745483281666808899436256885033250459742319875019769799764164982628752362481167577969929015982766553698080132907877005215413677189959334617746323077402714050576207184313331606942882787535744774660503722961095244188335324616332530713111556896459041789411286607378086765802874396888705127787924677715007213582676467620625230097167253827341122388884391210514643267551716512737328588237005935287168759882565506221561719631585248086242008231776869814606254794074944121508009151423745678231450667558390564692260347113840086452879478349409232246239178718684383680248901266355464919772550043234386008016421806916678965652101831833670354391366403290475100927174954955634807464435934857496356160795399834851837740713197329572092738392859227830777401526841583904411263944333469962881177858014390835978973217311752068892191532839656697341478479543540627287658524740228801360910852784590869566202109700770679910901206122201868196192324841972092664744945720586920358570663363440409467221078394809971067746261461670060986696570018211478486897357292164525595179732439587034886530936531280994571764637952648932201376217905195779123481757775823814755768973701317524577939500687531519360717745949000919101157841500968974703771519007216835097657277606949896553213768776781809431333580927140097780026412400241715414293580396124621944562928672966614357726846032907782798701561171251386387627067740516919134813710035329983631030326528624928910573520687429454323770167929236019536930716039815505832009899331172613028575933393336571694648720263814554719152478423863110699608600097027346518943017818700966164116009044651248078910632063333927781105008186607154943260658615228418801709469656527806010823031530943732986425151366144288953541537657481479802041308710480676777225834784365174197629566174928821406136527757841699398147825323049594300057489027123725400389637840749147098736332992220613034611961001037520371565682908426783034304169342398013412761243257164039080729383746870254348065115410503155359518007442774154106291521706068236802873093970168626171634151592317209667842411995882919663293471077014274714080395833507999845302280826825742246198260013859928298498539882266484329373571873748194998331331151590248275404325356073817296028794898989679899231792720717819588286297366981376579768021789222031274034227427701599646034589068708981234233883048426619149370934883440892184885941798320292421502621664160723147027434934149585281789188948041355567723022549588036837299964120162408805685843347952132773251486106610399087456060620724783435850335878048119680572220681253176667017652669734761947814242195169820042515441944605580879895460556895208403205888587710044307786219446703373763574714385219679244957644127309684736010861451260568111250004247533652387603350382668461378022263039376949986875333731994930248541615058438017424169679280824302679637090694997635289262451264998430516926730772364293322592065705608944901614428215612673982896646152182990969624078066744341651240774683087979046472705193130540311697619267506521337829310520523337566058799140929178945735435479163999292459853651597920999791942571984572296614838443112118852749150173806727738433812324062100357386635461489357890464622433283182413672555628662468157048675142546194380353829453327878748067572549982687003496023869497765896807191948930439416965096994704907720537631681512553817878631481132552502304122161665374505607907022825021258664126512357570380830706708433099203964973010702374206970435074223895666548445102503742085273518096955331168570558136797540138988009922214471965141618249062399230500889146954944606606778875512472519280765614365694578180269309591315947502404395460318994492757212044882379314658040666689137554479870840358472740938899353466396949284824914569419256296754458619470818981148736149871916775752674391428235822461335197098175703851499902958037576777948125287843638228038360839440692269206643420510495481997393537674100705751594005289439129235847885704848385860822969639814620241476937698666856180097261436187939420650174486735053455628893681439589535536081601143949577973320149296881933239045856555883792759635490719557943314033268941534151445370401302888252408181088959808722652884221470847509504511853313743011822804199986057362586943264146454700878330044387797868411903435345814812307481984998152968913210146410638151637339098476925948035110030631672248102881668119578020918997667630963878182071246130218154523305602636122474420050678329876964521619191200835219811399589790442162580478622311749267380479025179936128824861807119637139069216246853972427632748081519974688846628162073187354278814019129423678126094453717043130363034433069197444788560863010208304262819356648553903648236453097780498555903136654424844055730326979219725536652472756017611252701260312545060966549238020347740591353797068895140558676544725930033858271611788654233377218770155931602104853944487986080365627263526364400516706944176452936085123145841735498141190257732417174513084670419678168553169317208207424223886780238694101912379572721523608100680478697672102169789051925011109624772220179579626241854306142458488822417476138062470373623843892527204988199553376876008098679157811314044468553271228640136740242215794745466463279659510161282222786902204490339412976793521356209053102669170252711335278495564955282885535325482281715827812294287628194517505805129850639068062935316499259611258641499190898284007979495881663242640767739467801733440218352870920398798994243313324083995744966813201433242373872016745221550668153154729884562958128905913976286408575897690013973957373893847113551487460550656265612595501757579267868749702045738545995751546959890801836663114818111085570156901983130741524365266352612179939689497014855896963641072440749850227000944008060104710003679280084189389570974821555427246858163403724290395904886129555333558456183219876328171107482196499385503738095164150146209629998632335800386659198282281064765553284353466982040979800115899611718921137709222100929364389477732840279321344299318097370475728548468409502824659833165365263299565456562649488176568917107039920136404264733520019796435210586007176690412768947243010127881717656807336110898594257692826634230955390089156902876678408372116139172153627290850683713786726639761323275210510998928017958407789108590687379024485472391735604023628858294333870021366773820364802992491328696753921624717752748371009979843854488075183579902195136212522386233280173051762023717802974719174052881702824641138469428733977909430083651422850189209451176633905292266478877441058654025384385522542168839177063220640487871707621478988251708237802036653110925014836480500638562013335351756428933250242089437247563365324035614841534718198528226610541762074425890715972130782783761906158546891161520988858933137893854078327071818365849934578980605661098039455806422548678669842761609402511721082832747386859286045879583424424406052766014825203182929675131311612058475656126860043595182570643986034345660896562471665962068367948045440819599037106537590228288001113475478333657186489439212210680448206320278795799725275754629920732783031128359238859523948931704079125235933337519771303224619505442650162519434233831667029469461614597965231039497045639998064646587681318323138447344868023368239805018765812304821496575097154028773745346434565480628616972236313263422534202164408552813884128145832776075687209424916127644972887021547351885517675800544232394977118789173494378709129907967475488091457060489247877779040364446826589686027914047167792173054890829430227416212489640025400570856801357959312437037593628307091383444973409994777826351246140955373024640747125426155944715115879270634854610744447260933866978320692980667989070561285114127444958292879916703436380497746691611923180299134706695045052007050358060339449054992748282507465887651630834730150257134021131535248960190184530963490946721908991140412074133802556038143728261517519815405174732457431702646139075442526628902487658086957731868149001823350377673505768109667977128237126639672303374492382914189358213209220899629117706581740332817101103408289543574073803719388923590990729332238800583647333038001790140642458431761108158531192058034066704442718340922885290070814780594729675057715681818615426200537455579954289385844266241834662270428840932134842958260152621195002019562076874228094911062630268511096791477355462238059526665765690646317310490214693776419579157936391779325504309239487006715369118486511099474267935525732240364461708273230754752539374387964068772583980624718418442711431763854971931648462390986326568173255485547006980205804013288450059688201014437919339061543189305545417707923965424997109960894128873990899630338484373552282478881486444279221721076851571112281484416336757049386623322934134912503341066347074780714254993901741543179623312294759641336581167166677159261313604823916476697891039417690775506738105533095080737236521735004321525908985752761372051097316822720578198845180954541042626862644581893766248793045436049039009708965056019454790883457455869328743701808091141187990919891055175188435971575118509210422063212464611033488956663104497140521375321781908146075663132931966425288403928709182911896220868892159940556700131713996588522075983372071167016556073531774358841237378943727049020362748743327435691254203597470073378641610055826240468566665954337117493783347116489678745310831149658833153092099330817660955599081414912531762433279123324753529162521880413270805694228706395749651051943127368999474279135086827709175393842495977262306782049686874086859135698388721963924346772092516577267456112916777870185045191484559441739911007916130792200679834947085302769056042757932788629734526530690167904970728818988131413865308352279197185508908134491402798861322268048905886071915586339629715209690942701110347827212367786605953809982255646638346628617980990101754390070357530206306500331857249726579637931703308462471296582774921444633628500607569015164260114278783282415534079463617868668367971231384371661983139114496470589139407599344534597648343347406394355675936256241536173359438232438828084958757569061712286671892909319836340266260789213565466562664746503194115764984145380032441772004962911353132360489978099656326956814621715011919847045296399201601272403852720577191731438529971410791220100664665552892312512467876914083106431861291098481068903010425623541213074743667517966902860141922170775905668729776459142255744382840406537577699486141250896790328933808527322167548382006253049320721712656960248093257516405628871428132649295050369314869665444830726761858040742017862480938778518641125044692044960453590363960226313464427003522639181904259332187378977114912645858649019351203380092058322931959102059474210938658910120028672892387454488096758751753056098345898041513773526564895492668440945571157461913184463316428276332219137245439064196533349024609542231825501068564124376801540438574871205502258933681719015079413646299275668614343105604746034425764092746284286282143851483121303727207097386156422322792654603386945334642926327547073663349570428293044120254947403160483913228986337912146150801078836942853974550441781145631833619487815288162186080372026600275689785896024681861473513424576439620432062177284729069820230614632044139982969522938704444438320294253914769596751357583935876188586039717485212510114885190537381120740446290432957700199740643065923588875015591060550020228643447202270197369745469560633923381535928963446699334941566743601119993825664154249443329877285402425996133064938740694250221912288161185422206477303687996868062576801532677343955711697862324826791161952154106995658561613977635297523535544666714630369241524881089949010264520007352185549589578359449109878166510519831784564699093679185693970480316405845922059701737167050860526513856043730567434528911140148417966072055574855834952995516504541141003936554170827042709184658816076908685237099205852542109038098590439624252760323639222562564261359408889124736589779691844437883850780537134374368971922852910283685965977639347093556892900739843013886033429479559934399180884094405100570543518921651978128507572846034338291483739921961913930774740627066616173387771555551221538137029158936225583098311556943663302002444032115339021741263369480054644151120274027223354025491824023267061842951615115532984988874915340910471164180301756303224210258917891535232037933340302615610094591289909663154583043214345801869867242942941097101524466711656422766462927555030633964969600747163701465333808702372374769718065918629315935888554815902363555541450078838800287956909531163057555836627874730150605909800220474297216609140212892059338619792094824804186757147655754868295592777355764193736749504738965942264558330492552801416091276563749766334331978106471021553508492786206064497721104375567361496446819304466313159864211905438461170264121373136193921663057700247196961043905627628530443147441294758509833506125323121524540527685742691045519102457295325823800331071841188273180582512271573476311710446992780728399159083146111584963610533677995502423226077884037285689303614700143095291205536792374447237659443114053797228532333884136772322601793362822664856634591185529585733821054177310740886851169349389650332685084596120690759024403963746069824261313515886190690890837948468374739532702064891264289531006537815129674578392271247278279037373790920552306135799643391719853564467485251710088056275795242947784001257678638869107515042683144261446657397717847009071546261353546857267585938290237977942832930617115939580852824204895153963992012340713655321882655867512361078947859756203338529791961347532130774946667745801293281631485540431203834719022646142848889937564044559970846685638525674568408193284477990196598615668549039646536218209781253091773455606625091879380005280502589178728037793024069439206574244273773071751046041213268426711224546623200709778079150286939677831080220015804608352103820546216829490852221005531863110232635333267903376208222290088964986578086032112303594339916799999196194936353565548586624139843632995941197075391079284119911869118162065397139048740373138869639736661428383545570518487402769646721332366407492413022681789506391674728291594689279177311484815764102796011537657438179775821180642477560554486502616009222137027480257890368744670229100601336866178157837367824862637179932535729756770630703026417714030856318385746373263090571010022799952023950456875946368882452914317546487236707282310881387726469016035262393324308361243218731934778132981017195395120572772585267685479106610493321282222765868614671477879633744452871865288273776942165963629276664761082358206958398758819365860141944965774992925805901413436688490826615903318717348284160106213018396686745643667466949774937038883988858653865896877057223363225066336096855526808036212075022923024191584171699706949321488171890646650300244987738038404415826766429833745119253017068414296718234101998876538617945664747217372913367457108168355332076272421813337769434253837975949983107858286399637456075356535827616502301394531048847956108202299357442982446948777349888616750227630337825006678684555029461944090573651920975243913277501135890305864034672784882827404881727028158384412929558107976879173819985477186140985677138015501553018523450070588273458731000270857608070489629467488167392678043534011089951879629425280125923774519390222789406050403509801226827271446752197594158209596505501271965180684107002790461252243095236709487219029815210032264513007821517490060996059313684802806582703298917790778122015476883114201046582061196276466132655744389002345306954969180287008603319930449375658480187742997196871082936253593542156781041787743873035272973466888340928242788460647711285387581039326891948920844039242953176489560042086166654533872274796846638873342108578625561616132147181279492082152961531744628957768456083801942059396215253370611882649967612299623832194466836215219257546200302227466019124164038705572885256976632214035591863207251615638274134718647178163983281290104225482685558779012684420501644390190758414221072236821345309575429558000110539892177615430983449298997511716408419754814168419181150319852768739402479022091050107289395302174680134333618159484894185830410645190717240390487722743416750914448211976618142109976584899026924655228686339636111782056719530274917018717819323228618068253653690313703208341827748922390268174153241017847493778897883199383346973163918087381312699238741802485305270185679190172982221591702030932270050795547325914203251395296799992126336144742554704902978726547031984319332286274480965882904034350187327053637163937008219183436222510700244241840351506524759296007854287554257499785498505997863837228285625888679874304918721309590956082363733762286027870823278490278517077458904234871195982774142977246720521472644645315997200356571767186940421349342713412687769676607242515722570468460474771966074747681509451678576777642700736434411114911068709331393602273042448810179767392398625873682040542937043826194705298245757009374874457156344193923711180310374120980297328657456382702194004552190983659745771094617025786655173688025768778721970863456854942427885282980359398307711099809684829776168771230065696665012448214088994467566096146580954839465861484031740585443094631440383585556978327436522299085444699371650841979630898191573640609759345833444878159084917911983888323172415186675345983066575175193294140713469809812991273041544230600794001624527731488063494456716316703822968118622163345986191799240985245495606833380877728943565432084672900750613590265242076813936483077154994330880000427330926245466568299023046034001657939182874963989681628534372319001082901364570256576176522473062697406529075389609755161387321899427488653012606501506009846634101781400745374911724272895549530391090590309246178467044177362537116948902181604893320168510637646796667532761789943347327261854399621215856866929552229936959381092284545306722704513099113355738057253843228161927046245183172715480322539555761657823046427078468411289004485836953917824074346726646119699130272629614641428883964159935520703398288700206853178513771302456303097583141479557987051673987786628292205786591125677504523214142490253157408243749094353751726715428265391374928147212572074326211415950669983161552622662817238230495390686497556023336935404756104595290918011371837398946071001869456893971049188858411196545217780099100852666402329643715591047755017337792114498387965840250121950614659076345248096152588782819787037444599477261851679891937732329193152875005375631894730800846275453697198577698688208545931905085055146716611235631478220284602312082584010513605646584687304421928830283848401201054422409086692856559144927221271906300250125312225861044922023966492100894335247281305201133800561684011519201079943668686739107269245787648146649131922587056764662049992337755127122912117826548834452841059969467334449195565414949004777919609418329781840256716623605803380226916017224691279643931619968303835066907853597776544658270992381851564666999871520662865550006707206148322439584893602014990598710869471639392744852184409868759946598046631522668081579187992887509168410818634194587285995729633158703334729186162197961860029592434128648812871917816817071787264756655817321793279171816360598088390979105187140002070055567959907394959837503970213233131100430576180003984683088211716525973263359771506292960600551238916116048187109598543720170986399437380249669591740101165590469458153813546320736708725362972131705019364311486485982239644498349392269405896508006428733128396435521242633647087899630053119011688907404190249454052002180547607609362702470731592524352290817688304098805632846219443841184127043266344573027568027542347719510147892798630685367825013591322487148274634329708330873715509359931924934862366972887593693484027735169145541398520262715139632955928431541178404247922121930660086717655752908991347427557462394274548809123809274940667161606150558117438475339425969621310466749885598753906879278961804146446627832821240964318063815237656936117396751488214327894327372914161204517195370233465372699986561277545354071275873217620161822225110259174557038346780836555671532563058717723472653489336556134126624289224815653266335393586762593058519824666770312012796786576197978744795259711753621490098607785494418487150581630392138144334821603855986313084357387441328788048111638922044507239352065035707237027659503743144206246448339388725748505010238906530410977150436800045265013708822122356542158166005814918169256362164308433479051760690528157297528318805241605203037463247958430598023206884747883620971383474664943596518800156950326165084138140813436675573091568312127928254744492015474278244973541970178579387176234040070238156001656854094061938227294765554273847844327355762079813884278165005299104330052403521369020469638414196512945491716178462694607101927394910489105419408471362252138489829198361165800855839235046841867256046502612463695082877574108559788865571095140882348150518124053364031002609552040302707247650118330673556468049027810688456575931618919203482568391841347661332865940892785385357947147463801532339179188395764488361545565529943710181033122090811405372590116102536112655874083781143402023068337033147317558496335502612955504318836591865698492452457747409494425505948294887428634462798915569706304341251809321996884580870371923440379609307900439299894407706569073524589039493270404242222224382245179367359116724999454890115331007235062156063583481970825961924622950565989696084341496129429444183358228977570170959653306835609666427679385893791654269960190619122065533478781796704105033341132434079754070702940262677083478136107573718665994499067225820995248265665972028435236712132010868492896221734135154852698389647622276538918989463202922472762289390382410624648691350035834334948671069898961267981688367586051934646010628136763847750482840109119050234519832538504566814779190750263816433608602643197328595143717079982372189982516799565817478756313875465777281533666570748190859801684517627877442555163817677999270406545678273554637190251648376646332105066832933221757992838884912835187575700204076166449907267648889899671691270062693117576657719092422948952161082347052363385866425057011601487922788098672860293163158427414470870060124654069431262616798673750484449903958838968975606695917906436470431339403318726405248335246008134061549515247034975689904925437771548902631994564286225177899937436352228093487905849806505713571075896117197889827799894447836944516600824594978802932471292166362513032189753154908782532988136200978094305668216515581122096440000254504577184006871916059167761926753828820637082881566045275170117098509793526449001848124897388699278644451963108931296489877808543671662485393185582899927746169411816898223522469161448181399445588784433165072148085852250527245447909679066616167852781942056152491985351026385389516584306227355985956170747011521670031720044456822617879435553642872106377040387142487958619960901089073899899019306945862348817996805703986674248629217804982658185167337327097687702133092059580660068658057085043374163314094848126159475926519161161683937275371559972181480772094316030455280769163887835405098426995920622305778047258676919855180975496593306261729489817756789396457423100514416035042543281893385362464715797042874786037300389947893842624640500457600458818412969894099026541548140730471998624528102990917365128945089384808529396001694544707100219053316133021597607527019440827882317257467259622093833260743231393194467809948489620734693101037113122824602421094253145236702190891702592726274638601665403812778768312782882659225661900380982803798206257893701772720356734772895177088544062240430547100670439058805371694807173746957162803556414954380903265227766394881700130377589146870737562576767900934375207549592752954163881357471943494465063273711037767918966424512071819682021922743288814605722909668560768812671778654220271846391599185621230769533645025571805527488775704289083953474910337544873553908795062831473107686360750330034500942660699536824590105866595813490254112480080887245327861895842600960906619881286269696946002253634308851075108267190458212976963678863488505262513072721726128588013979740963546664451307850343101670842022883116818142385965720008184394470642587003861927089841613368605673007693761531149803246334727942371266763747536563332427791125717946051213192487816492153226378957614291084326594811054836226214582873010355600338895856166790628574211349339219378124456285399289938052868126750849416107048125949330799943553924140448505486608801573591921354659142851142634945539997726931123875581182458457034927583765077803438109755980754487919561736177742368656489389602174895350322262883171031725502470717697771821598937133536921700979914420169262940209518040721883886520613320677102326778779251776068871978167366912719424202352964961376902521576751813619279234211546206729287708368983247228662681108764818801852351533552350701759816950650130197759014021543789245858886522430822174491459285717464480776787658104935867211458514011552303718157551017335785679520645279191340900968187893411848410906628230434235357187939909114473759411989178648443231847928162934368647358999505673236150549972917588477375172889947446131205632774517174010248454725646915541452191056717286598285539938725642675558237453819523970819048511812230401559251433642609336554493280625741520254729829440994188131179139760537945524658702641685050002900746499885765063654200988200030733261675733747414100761240921917658349360116362979756351852699845904131021142144173272221376622231267007461207518275083491222643970888553769838491076048560928075790803161776895881641834244241938703241783450531229759816011680136051806539404450444639412116270688627495726005576879161308884281550700011213391943256447662726713890916550792386709983296868582429966673934305895898333567555158126111803279973098870102199520386629072674043495724269077708642186720347289805339122515745036808689565931468231175740075210409356697937998277375068530650665507511246616474392824190972551396294943047973399406251590333366578158183243643556234073703759506983738801153304956585594152713945505177065435714932241103134199107904252871479442155828374705750485927454486812342616137275021276285151940558338966482899484864272331303726085859784577254265975144656035572963874973199402428353350223761059706005070346327140204765430354324982294851045306398534167297129853107318675726683377545941790223564547804287672817929225340928389820531057621053614205220210177400493421258460150880720562355128253792186661102653862576157811516852483927709194720837737643831803798980138932448562218719086405230140224866658824854118527272591611346579805689232909718030376094570176740990749438548359397786420470652646006667311443425304692503173064073344994968111085573614115586751888440492146824680260705398934855867577982684479793338145370277746199712310659366810405629118313740502517477598949219689633419199648034096874789054933464093479663892051023626191591022956693031504143666188797712423452789259211633655980267861046305215739492598555568583386455413030420615355597336944941782629596792637014947627134365968568402923404936115900708544652633191935269251385158074813196697307790988243731949245388420495114225840880917311798121243895079387261848458892278184055863222437336467582902566672917457911269087308522200558490555970246534447574849068123798699379175674763367968239553900344761438464306493175457923679536796557753222767068473985947817032708559931269309566368174663519211399038286039522508074600106238137612838636326795493857239913220947448095934485930252542516222627638003345624052193518646639504956545525778218222634165786792685353942343142078905470992287617821145064286651271474106127592280510804693458320478172440231572420320156296618783060562281661664971963349590036760369085364014507813587250963114070614475704344461142216633760518278515791668119672898078831777860119708044321014475638639543973437734004931687483472349888269836718221119459230691774451768630209344246946766559364061101970020406203970479252950019678092912064357080344050681065134771300065748044168304279604069794335937945012861134625642260153231952709288257705254556413716512488203245922163068530668686628780831363462732444463202231625049196208071927564861735518922613304539943950137568531947229681288182367873042040464723679802414691344667105052792101239781031391788384377776902425367769942708648455649080844566316719978890850906004824014259196372863474772278157226517462897815602686687759959238328367656739807844823895675483891278898291378739886014787379308765795733640002802480139697855831342347357378640763361418611288782855564213552731848614512560546627614596179707374660115559375632855121852709822252291626368246654044694600913724762054172738552056363613724555100959494048280078110090307716339529732045880962137155935791193419734844541122631954195646728822135108092698732277961197687412636617275844887838803901834770791311638764759043883751956695133777643606480620290507306247837287437698975468588638861752700986673423065602242879540194226653508863609204745313805915977144413346412696967976934534710785774619587661066053285023673391260220293719378555098130655070941469344574725477400424478677005780692008907766631973826143061226095562414471748509761142282997874732643012611757577670214876377142370346071851478757624620606939833960238442511104029507502235134271797266935563498675844527746231996402693878278507763582084199544615254693257005882841434651703590539401259519131690180960971329841628929969223804405131619642224617768082281459999473393327192741382339191781912216486747417579790356608220207386805469740165781911510296247201544415135748679930767847216232419576608758478147219010598655364808337501273077042745624787743552103604454788136283799049081456003822466740742403373747925133052501248251582173313178570069378255274330931276760775144633711304383144018206070095159448909198572037613504029496237267710625866533747197843562881999613727192269337493022925269761991281571707971135955054215763261972160575690042390310361599811304937837066166855421418018109447808982149885152778492962505153171680524257763947620784540436617014120848554263256971849361767346776074890307416070346691547860263685561662001255971332624810432666202169322742235608674534876136371870722688945889422271169988864786912140282197653265981479291365496371951272793634815665484675665032359956384160793360468921622411682982763669239803014645420362025337659457895503029794695424813868428844307651190304125114484895575779088166006794309004965507822233164910595761392488104282849732252772946469224106617967797829472821488912152620036268449680612912686556992264759474516419880711255767278060921858824056094467651820765488699394618262723977788457296787710260675903371242705142080951335348508090227432829511854865579250925727743434301103553157815337421286499235041848187234262003423696279406247699550505867185982550501783027310288487464532877539014998612703055867150283003496294945988554378745549223568843576585224241819100949291515975722897197481637351072966619245000957601930883558957674906426239943629350734295789555348663709386697737231757568496910242199922689609085438042768114258352776584836427146669865828033321417138011758416182403111415966953505790234515668195852830522185280516032249496976591231648054126963472355716668891533626494717633397880192518697602532129116046159953354529298975200630354998164605979648687124368489143483013933044699538911632174534159849936883191090915664962764340063172231358514741736914974100272969411780178978689552916587114101804847449705573628561828067960512445580246116550270407021678113738124968320748048645859284697151105342456587347183256221979384164540615081424634251704496902762788120988317671731225958561703748889854742338889556286244013234371070292771316505604108129134989269494102763620785985276555697863834655362848022226554786141760571988989867801869920050626138611881167984256971232345365503042935530441647300007660352181704116367105998436495422276468859787401770560868484076939923064578473329803417118120473197079662571317692026341787550498206986428905290078853433147709225149864089731061778700687465340654810768085935597822224423644755675446678791542459404899426075435485872190536617952056270775137626547218890282869444969434793879125661584665492885962958685046293219764489789048207049754651993018493958117268734815904224967846638923993233114054295602085513325420426394172977685583885495775440154071811611653881844401744050254842243907889617591118272852719867901402050342630565295517819019344045553685668377505555204276845117773843123780795218400066434692353687558204211762556786137467132530689448708118197445991138235856381956062592516532733786184496195808067717873973543729803745024115680322805514003154704767826992490172935606952812038148238656486083172085607956523962344081352324780033950907901418773805592636134728939033983356126874381746472681644110160172776535596128294865215323016500185948677708746536323146538739881215720450330497178485800481864611951855500389304519212201265893015922423448361263593306591456405795264105452998672046161276458796985919526878339915426846770870952288250987943895909018380084336232880781833067741629119445024995853432404776872075575942895186661438276388079822708869766155144624329207492685660491072638934148002112975315011435093856850353533292462721085957456698575799916763586721440659517582827146946960691265247834597735446259041046970413196207882382250053101693764351979324429385302262507354431356568465137844769012000119265080783367336828179238226134240516360767880361501682943955108821175356243881777764548944207570553112711959680102314027382406457679944937024419834716378948793604714073683062863712752946179658833722893786251103251175449620550474957941892959153511794193983669760445836424076844609723229369017774693201701231167396011184522839202619186662307597377731279853577645645872746872882988949877244214665095302825671748624528321519381232653347047877569827436701915789087598489790506749693091941648636657858115864777268762549361304471708836677369670384348817012592655167031590677094845701976840641410236443141287373310161217759132468239168646712188843586274022600376444278483116146618324741095093117820656266891027949160851384078023522511695546802736367595246114097487701061444560953707242544571336397163234687390755423351364879250650080826706721930613834322440249875834506351781219639972352881420525682662594687602394579266306953749309463746786715904585592632477353831026235257254908206754393038352508654755336009506290365123518523506744914182643049709732686463202538367609428251260402614553806298306522869218916490728972989501829851395109762034390687373248685479039775913743307417598444989237747975153980843836706327766036332727002885197799187617942657780962215684307343275075191422431162710485749478040537689380663814638116788562149239683252203027872810243241503034101547276431853389975448992849527950311384675701999705806632844676295491314063995509716521973123335108628476808855838882263604173362458488174448911262093473522774767460062947662764885643745988815089271624026210208702227257000225462310339641592674624052877821575977340660947842989791748175154491047138049832198767223384820686944307251944003791456194909723994030191796412746503218786216763858672699239768929576519691626470855344624967966828623914247665101204717041889528322265958202760248804363448518479360400159564684746087076499622375690753059729469853100401195010692260994248429428669667224144191735008166273325665428383308111726651171482385196719925959513451890112258199830917399897201564704888008237634230667576613843887366960181650200224079298848239616926274643726830697142726562125491218354594968160699448805588804037865053497355583719279647418538577958413918873816060084590048236388235112666008325114208098535417371348554818597865268486457621309570122723979346067907919634486011689752780460080274644910113930896333274180156948416497378664898707200806716733945204279635803721506134201013132293832175309424220541276565337343638016887436051403130152958365003274827751320159599399004286012042437275531534518631582528389294339006985491345891199545860171741295429945344561836235111325181186217570096366662050046988597489477717670236801912150126355668251663424962703697708756237672402104448721156267181729506479963026887505189560173695350198510878685609507725106694994375036724890513956743110826471609306286993353719311882918558939910005515060078830495421991983366493854613688667222951033901705898894483385626106937696064934944523316026012624162046219183375568668592282488130522253307313467637002610695252991176245762396960823232378477290640800255982712607733048827060574174359766117570254258777347837040886538445948851817674563551614816177217084889548747899139387436953158681369444170181457321762392612647418069653545990217627692502062610467357026322400355717127618715994514207692477810269643010167738405202638598884566205044766286004808693179383325770240658498220649130857276972906750792192248031169504779662506767146567624499172958982905811230487605446357624255538555759186845536955222093685256388612212888309226511620935899779440866021284586317878883806860625644466817715863783766105527061449060024574082178247619084664037343648207518606521002031921659437693454031292150151089965636685219371548299377738702855186952670918533759423914920694047937738126996322585970719261513781831580552297203605486905746302016627711964877147806626134541939281338275442273623023800842995171841157147466829069670604366186686647871849546052799337449977990948046498971139947172101871069771383538626455724733406126102045637606513050222604325779846850229470423661509634733725815064173483184225036946848624999444952497725048667739383625635425601271523232711709574631275343429894391783525628837144694215341812382373938649565319882191786992559738873483988795033128861177611554398097227911378634815378587326762541946365748877266249485269855712900959581032797131450920481685343997981394238533499976563714482059216689030859034102284174104604366713417479370839000651749305723691615509301592670538469578685916065605219360279829742379905788770685202681271491260903169338686736994557066309047204972421688055413312119017069666663295032990514960733374190110351620587756229732442964599027990730412845039589991968513941103172873613389497183189417811488818519466747384115506073574160314736822525102053693123305734517000297842678495237179350601748367921980772445983401138806767385121221667397406813974146377837958917750324468856024199389417627100431253730333370613839426425833185829897307550981957548651256937900407563721564957766692295817783475239682026024422219220248833941971001993007950332388880082147659442159287944262816308387373265011083462611241670759551953824617624602793859869068173640872679128155433931549689444187284769450021293425649375892098048967076671222841355935501718504262661029539010586452119135310044010091578602744437697810428523793378632924985378715593607624619197363486407796482774167460582490707614341246410500287244697337386781010301152480891177703650194319044634927432506270179177089732762577689400698145498679813044333576352228454433917205324361929561882083412947923326219367221993231816912727812414735995238523571499506848480294242205795141673329344953690491796870316494090311581662344509061480203133171928460019038835594774367409477190972870192379422361669045082006037918123043513278993096981377369894200530468996066342955330761634493323817119209272219570992731449015035175249464436895483851786713149418834342432684458922116646086360627942614469558772267923805679838923839758006377467813592975316073987652931404446616112261552430525425484653269002236517450811718389205802642807629153918311989949158868706284829803223536939810798802121447480164144995834300938591909551805495068890727574280073196281924924487013769934670744673964226406884842380441814030331667988089389125158332778411917494246302984595052435203959625691602910218471192978646324899518061916205543020785744384896401600424211051047211155838015135172601424260971453479477219918264939403115450354545177563120057515480178572656479518863440324381440274372409607709074428761568571837756789051875944862208543976753853617943610857578919424531197236716419637936286554618888011070688994866742222966746868991843781259097333434504660896062777693743203344376265782594405942766699720228648731845511197724781077936121916051684022931099995808624529113476714286756903816483810294270152085614815142851176250399272873794885537339575432915551147017166871762204840613403090258806693473843023247634759179905576003240919178042852539288879646198094306767188734973290115637382265618952126017002953543536231101654327732104012842864043995389405501768673275628303810352787874740724520805243990929074636176850005304568380956792547225103427190182415896807112507421745444442737941527206006001993482541657286840132049414237042587886300650299642831300105389401312774610691308022100563982380664846439485853512414347392095152238864166413818025735390984976281751027172392612095422884365614410028110154813991899948087014789134872559927129626402327038908966171681784914288482593177425317465055366714475577434629318074635692601819787039048840484873164517704177853295090666728050083736388754573397485274383750741073571148297891113255890406784567415644341425814285487863068801965888857083039110728490872530954889763534932457466583284920517053662521710078712553330026626554871983879044863673148902344953693430314910772209653374557414135989782916731529790018455590051696188156126738514167061861726612285804044056079152480231721107008199241406196645969931811481954635270655276619329504860132864778633490370152493640545138050130620099520204073554063602690304253303042686473272040939037343597745921024054067046251574566788793945334214595059161470630900383397042252107876402977239799506656960655752476409348363994242274439133630437105349427072216545851398685579315190436435553582621790980057813253874789489567451405339357217017740188210814005126323598459381629865189119004847086355707404353729600212326192378519249041558965965006832852200532932278974162263044441376399972900145914571274795119373110061659865549818782191922224479188341400136582386729973229727069832729442802266501041018077613865314576560222212192028205475088034162223232694805134044640035637040084042081814093195154458673708484302639703653270347051560060630901595192279966398973652582572141644821603829527273904407974250905971897523936906802419843096367535898246864577454192608983145180387414204704180762718169764332682875716693274262766656030002155373535429679182022003426956960212389985436008669222990796140603618380617691317855005961116345018409161990619133391227487680631520743472300243755619607934291166482015565683990120595994156748288453899426622907132016385547366584382620029372095289455962264918201132286098355397524363740297986413079193843486186443316638785923401435944023150591583171565218800002393778010910135109186785621351186278722631371910215501316788341288859359479441811464294966824141720610718694985977615563956089298643944956278615612309326398684649259566858993029066716842971951653055042261697752485611340938766226425676367958553992654047468486943587249388374894880144707283666303669687415461460699160770101300097510618037046488260346806058756354887930194787161565429588279769942648898493226834600825491799262049570388960279389561755855704861104806528160161906031960886231364149551480069751473755387589222271049859381235509427800052106798927182609285919335054253512312821325167199373370448514660200369322879835617308687414527575378214869816243118008551714410735057437926634703660400544304610808495967235503584784414855016584012536870850617693610751873795482838970131434074546666787932710140721236817680513019565275132690256457416759847870737366527877027876867866714035110095760182486191589119112094378092203161879440572846479330176976595152254685538980481730888344075896331154362022381113830616668862860201486103805516776656782960508739736044964218604715217186648259588427558616080063607073737247007195427692385476159899465622168325071159545282515776783892031841266846600990002853348103487254905366089904004114718772066944272935252910557212871436057086801567426128466988372383085906792385622539396269910936673721845499871969665758579063574387149572757177045696606690125457189625218809968728820903044659182609953271720152119876533331796086482371000570449974951557135198145737832933793786939825230706479027121815351186348892018450146559465014597728065937849688299165276278352369570879850503537476409886393996687501199360829650424397716242151842636906659973289224503249450081732799722386198671352678502702490133936663885869135701958374889623905917466001368507640526824703229321431855961685423254938442810152470560055269760291603322235345474789860050758695118536339290119319281687159295758164011211757145149553523369200982219835025755722553626509154346456362907770458287805588834984885674562027787624513256823289826003297544313510808679759209331076063204920744198158946349124740560639670427654265695822689664295879634061213506682154334842091909088565798056963665067739164795170990924141151244298772392405026096869228167770644077722685594194684643803287436871726752022902726274741388196706668532214311496930103537702868223169777799607060927979077089808814219756934168685945497350549303512248611698473382006296190993773539267166312212877117492292357365766381593189670067521726576517785933076145774929092924391495167389393166289958889733393396273563359444305059656572170201466174120833002128285098614048518028514264573022441722467646886598570962409629764342251489955563177002480678926984429073566764501432695038665621930686486460599247944850467541741671495794923958552126113788535132474619691754497792294743325525093672242589135857186879040355188284835756528558925924630390958661673217034364990460555292571212930395875530271366891948103287014579262173953543121716824160255986726519678247229752776297435349636662800439716635137543439341470951553211739748591784890224988416977226648679389859928384264059029481851511173316061394751400859401777369701191744973765109218921938349384228656133945598725366700076815111003763591937499969990894569075938481434364771947828594185513432929168765817119018680259396779334690175765301629987942055598179376159843098551798789806382112652030025088453357198920870801213812976065295316674351135090477396883116148893101687797879207746236035531655207144572352545221040134150872487495647604061903369991516649008877557857694040492417152105560307910020985617721480129283184683059393251674777608538185222788792763573202868284815662436021828377934478004516025212103649401812669830714378109271660019987684879234933571262588207207970836125807715150056864931895188984523438858466489348062600305148176414845670163719837436437547052050507890873755615440805273606850133362367389046282617833530147431127988823629522029807876096721009180273943270120054396704923054290817430846672219135674620016714765763651060061631774433455272100150525058358725985201061058934873087727064303718873806421149106427301992061258423854671010870852755771831876771227235715994512722224275363334845621777800860504928576201078565437154581697548306434869746505646937100389319310678207718342056943992919030994184534205530168012796757739450848187406891223220296691715756432264205135470014936924013712390963883240399912031847919172553202105548263948488502574581774068435309382566400823175166293570518446781906837541603810702025204612099362113110532723907548497428354816615994396833513074479241669131552896074490446137168914363079465397340172074744443401760538795978614861524928620547985042134057339521673202873464178128779473520178683063535160024953913299243564625110228694762198526781083304025703814219916106987148676658942035622039731667101482987990265448763040828857864485700518497671131570750394910334134113053989692889428860050994343911289342811736739931507513532389999098393114409036109807368244579385267958066920242685001089131465583411548837841035360238039078143440468547539782448508976914644947142241703892908469758948485335040161474896673671976897441866184223932693369022655308065258920411104765354008005555596914233378961749122754389485048212711106822600535666588080902245689583085554444756477322592888230622354687384946298941000892111860030405447564645008255101721992979174035420921806132456362273265528086251817865751451498706629209021615988865623395588306785760788903012533760853627408339089762210745983869432021070567671716223798583867820390713775495092011625949748294138157169294535002626618982456405746274168834502989284872881827497703262239902418215171057876579906804833532760134080190266818856414100856324439722439582400082109088125047632807709762415260423697417484611526440721616934821183269928960794191866976507327570855586541164581442555702181490019081977563440030988939781892952959539063831477199880896464375896139175355531946298677162441070962917764795408571310236404767192821353293510009877336588952014436035267333755437687828521777496099654132739085367912920829753268145047393596007718655582874720238469062931945110295009988528524339471833256688240461017102647397363183826591002354796509751271023725918282268614204388361798471828752983234317914770799410351422498262187664935990038378657791298159726653815387452130890783159700317773413765985747268913738727335870820405534065081617968272137338587125695323741793068239277805134188066447711642892735350927194460273357766161954248971859539620387053400544093914055830581950089647644608643459121882833168091037598047007961404487773669232262341015927162822198230432708971746810664025107631421783856145227723747087065915529858894585002048366526303951877648210476354500848266854842922179089858065464887082505546275402180191486632688179501273758514653698591723540646620441513126844145719582065638030991555788223798303698318450656960846569921246748259306284980725271997686433749059817316790659365801599849177682603744236462200498906438128555952658561103102765321527091430812375250082798797298288966036721485002256606879744990650279806328922910050085418564702398010604292286501181579322331066173534783491764899894958572321191717094056338996151355977225440994586037745008644080155951378858571272343820665839486599137660740366200197916756111556491634501102362174665378209489436576503865726866607128871976494681360016542617240377169916717619919060014554017081033307196822888670970408900661442009560350222888299163214734897775174254242116315318445597552342491612707586262900009423552323740632757494655491870131002778096062453019083346562541020204262127461318243328074062357216922114833506748675704537687522331599026837511036157431631631864676258016933083449719240883567777985904916748843349033666642141664832823521436067744161854630923299110489534525872707630695859409181741752060135871594097335453473226570349206623409117197979427988569841352393699544455554395163118704458590792221485420436118247107830559118227949848889932798013228694508884417517578020283660032525669881155082300949277303026157175311778691184396462045519858049640349345680879929071980425981708367800334542888252388382239894134479117137010568944288252414881785580827804781671742127922329036083350914618007616188183480552556529921314051279896695662834913173423581671497890396831889285891549740410004179396786063100016981444701582821152077820737122594438043983637079043514364930530113228941134142779420610664367690231690874136582413878624785883125055944484395974440516163895192273945498679221773858831107608782203386924954453384167957863711248171765932926274617143509786543555953480255129895518714941361839866510903912388223968680037658209504271432248384421062688683985571678539909803452119919970844643338930232295627606967324101519370289822725782625326341610362640297385422219629845806401550195729300744688056727364269418282399737336878765181100278671617679430015622624733118103002648430349129949526452256838711631376683279290426916854174928210150890333541559740099069159068061525845115466462585329197993286068470616957209113732534197785793861007920128041036769799610899629994110623406195497009704746530977803438467693690502619009094097457606622345121888653085261914152843903714023931411774814612624141796592138863248994076250040968304007884620119047514749904856841816257227987207894111003348391081174337299860709841902265035407946464901465154196305331605952960963241248772017859064396370064700882833932451114692364747084989286576505894714937554087952968862535418548263469609369063760813770598892142381967903106500143676504456061373449490362978638984087924612317641185243468714489001778235293027519306851922895895124207258907299395253170108965784035690101003859390829480224389115874644340217634418174671850313365613044561558015034007700092967806165423090448933232466091418899247746312481424200888003169898929727520226003002703765294407485361401592743753673227202715656812184782775507930046798718353573109033081422801018743549769560683538103867090132032423146146097433473255930020147967636142192947773677647693237814594549735861434149854203248926816112135270284043109750027885327208415085570827654416728589836615014247514471202820785476444188381941871084514672780206390453674624174175461535558961720266135085619621630220356713963583745307270665765820156267196253627059764140472721403134708601738075529380765989403863668354109084803307154183433268192889034838772362818870786386251059495099198466949828831726387260659246311507404865895462003725691221821808650980521086529815524068056834163876694958602340299498213347511612138523239268441213333907368906489499905250827176347100735573746563077339243260813132210623485343358570865599406937689105539066936728760340999098528502677915012822018241936856637756065373970371374021587414269559203380477733325551746531511965738193001855676472025705701307699375362472710881029814730887915227153453695282703709214436582521575625219930861425971069110069488211991294621285572997827760547964547699926627804063530314753098633928664527719417239996610474624418390474048702320640000055215407345627255380534341936547519083424811501627149661870561137949555183466316825034260505430185291653125528926500620846125521897012177153035562146473405430824868531475209949915999514108259179266561739442812814231882382687101657273967157761785291746696902794628998817675713605034457566822524580771279006950979872784343314118368484881859125141078791690809779023347800545351115451649886269686280921817420968625433248833606384091793597728930417981605621493252456375485946206125997767526296603393688180830835565618238605557456615145938047028836197598934975412003912218869871421870231746725926937610189753390599026429772193978821501992556501718735963061287171404381532599030277499697801304684161056259146744084607291716322529056929439744075754150780182499421400705426900266719043948254782749773633986724965967237719409731829900562873567416335080564455217937526426794522250473669042378777529139580894974817162240813761995322026406642689864175408376816769487993118786795503227716310465476231370355878954058297359524362325693254147349576130109996611234854197837640050584610946149845025206793301310399217072085903523336197320909438700656638326700565054632094591476940617807281768478855561590612719440048881203654342132314214379701941724215319621532326669007127585286853689984884478330620892354221055207490940229163209078934241407250578341934812055054844994817906355010209879965582956887268218809729430974712057398543869875487491388126463250541491831607172059992854207052878115327283071962505993575785127234893666797963301873015191948109398324703132577968105106279516726009199844751269550619098021836723980645757709806975846861657658692313950177355566385722587749693494923097241845634023834980721487624419646507717990883017805991512131481481137932271091168922275862996182778421223890912044956573315831869762025291792284974556467669742969963953422253442141963640782963661771499163038609933458196857640952626136979633886380804218172989893390962501384442953401204441357691898293070240927724868529926988523013515638000006389167961928706244638827961739982353966077464400042992202692832050704344252838646241261724407430334099052096744365204545682575142549277608127439721090134622401509680904546584047863145273489123622805291754548422326028648171053100530573553779669183048780693060757131399254659606418094430910964998289033933265678168006970967134937076655975094519556417502789677271941726765032435933694049377257214015446424049291712842546349290871806677580403724391467615550908283764956450571414205175848866601164572000739268472134176596426376203744320265453934902013075289434053953476975997745417466219630086267819322963603642475745777249920509319947104443613306198854817686341578402227217555846628974648217213101997639965821761952171457273433075758888160399253167567372512856464308021375213571479585508858819528884958140660904040719397553860910707394987382139326729030906178903857465946339526792278402496574903924947377383982237074269145693922442436865786660502309303125218767663379605984685096925097460336435760516149175514256069807697377938793154966057273962499910054997346524212138322473997919529710197433756492970655079835474954369452353778487124257007791109236467079892189526954804259934311539416437872262401423402317273246781294350265054000062681408458644799098940037401387421306899119334224626274263058476231657829760391178011112219119057670913378750113666832669972253051413856200404421802854882351017444851596608126810593068757407855868808680535316856392577673944708739618663968352232369037436363112725521537037690699037529788440950602015740448622687679057615949684149564711470534144920867991735493235417217811088715636779055520079898317650402690340955365239272731788951173156588035050954644505290312718225459849646521101674780029734780786653620983651200156161895813472544362483911104099465445250812652343096672944082702144303186841375705064931151123090869542844354245220196999802654183207168687457225065723019124126371071847967331359926392534018992280850924732964406789454739184715128997102083185892830835047805923986445373650712595406388076221270186950056344930152944373774870111036841349253699502005325299047108925687539645288895178002896974684106823404494074397969938874713113388666638960484457712589285737835152008796914571371624553415337429225597825908298563701437002708193043397962455663592149206623625032517974457714942521777425168969059405541418545330934592398172789697264100571910336545309218172623011140371494751766588832962800362385340656506593317195944871164862650616146859277755089594323213196345074578929332046755431301068308730861007078456376979253895873175212470947538646113191977811862593518281553991239753738472249263477994352631184129364045091051346649149626380407476904669178711660136861340490053433298390038088163469764175860656766613652026975939234714025643664744673883760735819219851747566987321133638212394325234680676404560906822364365224263816013636141963559799318998099182461104783937841091385750992811905889071279990382647321374307504941761528794696195975895193601228943799693762264962400754679815665992358375337508491367019702530569619381393978286201522103063573249695587471673109223748002070219098254597637129904920971569946311161014250012379594468045610801968489092467398339561393724316104869934605396614606971362488899140087782744171890332843125199279184342182421015668968186741841227508577119623627691067522564187949995802575491760154977655447729033756883008112825912847562083416988464399185005879881343299720803333229014988550097657393713134642388799137457330555645622645012214641573816773493830634726554413039480972655011116973656327465693565249903733084138887918110104796328490862109380356089504944758505202436202367259686113640327348141088568520592010246807429759611649154629427057266896268746892756119406428514781264817036276524328425695679207876528605481232432495784142325292738536526448432500620994073908913225770605244052436567972615123070440732790653925072301668251043931555754070553239887462492135461487276490348861972327558297268726928471446063313246510827902580070477689321348137343046486746889063132917730012717270881812567194201699900464954263085222870012674723175222863577034159082643498822975560115714027837391192934837605189956455358511012103822099473056746723933413586948493202921401521718558447272880637183459065208311131608768521243090459065460170063362146744808018012082378767370133013564701933651783804460462061354084246798102161335360040847658122763536349429231412905776334712306224653181013207299012825908230586662447124612243411223623298816029742967867346575814783490773012435794664391116142316471808489156780449497667252219638387131935200040658096855875763129809910668031875798899000796337875856084281882077594437631437802438415116778277616923233303648772555927217553382158749212166861987381278978716350535334447951453038707762561394588701585835218073559319090556479960146388270465354835504039548541332282401926869208112522162746765708867225306552609694736906146434650983479077932217835151206190985142805622708687109597471482938637979353863773247221473319035789360321039364583005228092616981299984450785549973997865933232376574738022142370261508142970201804734866508528145832057086145685467341428115422965591540457272769742609199108834523402709757499474325905864991781217436997467507286394056847483627065123823373170884554034290955672307264482508088988427876872666025325831716415075010474650996788169086390633751990846694336362478651913123105634528074445768533714400140643938947860006900321177456684011075167315221628901443999133982716713122743604258775587558821585763659943433374950582324529245414947342044488845676783090437290814589675337386970693442455757377623672860104405298023742956106707073638670863846805176013977036765087699729890069648667198530964369003495519169745974294615919627351336148429112200361047316541476014772119134256348433220894032800746325115550781312772000782950536695508219685424755667815371278592956794322034321931333870243155060281143556224262662735432343411496609758207933154257590925736635080853419632728445768741051959140982585480083579511763385744613146867776794977629871771715331593051764739439845074579860963131987905004328711411420661294445580504437410686302466482650814727909383113628625769770754690213945630220555802178016385451385010719443311617360385456558987017661740922103460868927764873485619551947455733702504070913933525685595722365301660934222766246640624072904396791746767628402180994203431019300894329045798369111715952770553652830058742657341283995228400100604595539672613605461764506101344808757912746923952040185441822112055161766779233846113395753973454457999376242869877445029557905486362066649536009053188861978925622734373768723180705060269453197464387527013742832415803181739279594729178273909736177151644691138454706166357248029236914261981685506429885137523304451292318310083821554468870320221336235664657103122621021497856259989649863238028284947642974372275944671824997866641679494713649775651891075213674598058507448820400117790110317836947054390014873220843358719881177827162991675906443144058867221553087927846390828431811150466536373960257244054099928779722773706772935157339967067252152163165128319209668262730263879586088088294581712631711203462270459509743560291986265252430852599625000759290134849847841384785692845695836973190173187938343638328565336354052299383349241713865233163723679124465838117146639197859404511702287599951735261219903848147470902077354259677634024890545449776095891429348164331050776403377346976329015159023467497765425871329423599171534644705050201055719820215975960743526398419314391947044150761032464662486648427504307501703725613177291660437712672980956984163640821763498450984339619081855949475585429253657465041865950427830506793617308515798099240256736588422979355264725543159774908533866771508691936091623010814778934195424491876570445860179117449997799156801911200298178600521368221460640888137707451472730222508860095742824324160846639943156084142006429426798121878795050318636652720014782185658021845434195354007241999109486399125795558832363118649038010075302863463273547610087520551241633161432852465838496082012417530927007799430199716872184740117650055167195366587600366363758318489494734166336111096072760640420987560776132527800321294873333919213916018980625252040600875737095834959930128383954526058362626660682560581691582530868110319126841707955697286980274785284565668609145296547602940520689211393254226636061264326465484884001628692165413139686969594852155146621035681036156959153126974920290780924349555129570528507819004712365248450876650337142442009126945465352213526991821899301971858408714959549300723403960926487193749540180019953479275975136748014050317477560998638505728947844407235603088121168971722774032973743154318876393081173269800614457853966145162730411774649796485473855455107552617356647901968058291598660831524252006755628576529747358921933440172581012116677912351426467330825583159304041460171269331831678285013160708663289104073573251898280100848774083758385560552692080542062817469039776949213752341692152814328528755647181571996186641131785336798853763419826978844064673383073132625009034925373475822866448108217469934390997332826518906835193491206990681729030671617639393789716892053701131824296994540406378744361698031350079320555939725521821940661977403129861252922473051851342467992280681581799614182242393291717919659273143728175067812047508218886665286790933076609875275198671646431576745098004650804088417990397063296880738630304556655444718163658570166551040644068107900077548446112171369074514620086992861051618734329123886723510998857358425870912399043458427911800528343949969700757246584964867709509014981802051444305696346704047871841439929450167969980339332257502363580159579355684067895633284732062876941835310518434687026453812610128679138735260722257871573769200938436869371000396208102827589898232132655738784999963049392131569758577165577824138344504874058460599532567691402191921187381828950773491574766386167216876917179335404122297144871514630733412842390260081243443683012757351915118868936179830492369854962892592630880467760875845560117124284511269603092720232411526946722603852477376357793369141984502244735177149437597869963365832618703552221843702510039373763842060789758970859512982350514573229810793297263715106082826978076221823854098368374663359257600804298040697149310058577688836311220461931576232976039313519097973847316628580137862147565139290470824289739610099244048688606969640181663295530635636126933544410959242201812213262395694602396805768711183884837457356156278277946332091864897959431809147557831594836884761289831136993213349033121654769251105462831557640748302555221396642943571209351283214878112975398468806100421837968488386990362193454866035692944611307001039774103829121997142928048490731061361400558555703516305070930397269191436248948078172307365548480229560169637802351448089135593672055614477725233027308402439999037428763057339980120534755121969071522720071455713782910009321273347210779040957594411892613590946869356879312296550644170632313955208010468415566975489688600666378572096409282755095089135385996521503800525867246356892156734608588219702478132696330379467005940747526794128566693657880309970719602077618943977045521602748121012432690301314831671947534629566232979599174446646423132501400731679946842820322842120076477586546456890143042073352044796202660622088774325965460685969034436177531849221430759248785596792424903188978406119709818715343594284100837535205760967892833450574126603874248023851651121662135739281678411992880191837970415313018204472584746790039663855044985376838877716086535173111483951975833238872837773666628260976844492276410645771057321205231491833464662355002727402886618202884380789276937405945805753578693504165167733328242598517550830913810764731448495683502152331850615301344106322157926884508263190573475669905969405549622112459147991565683660304862555959390161950835853638814731937688396837334545493698104964474866303288289777290364684928641931924790583722769894285245704162258221284162216285029905246556268753375390136774589198979130026379840169761296602534477308616597822616470528370780620475097565555186369309009500532428683993117153317339307223808239484967412970321094313553328166741314479078970873361988730242072982365689101118843859133307621081695409087794684495241489377760845981989061647150581989395734252580493371544236527593955334541078040585748601472902058083946661768660124396318226764131132163466486678382216930791604976816973604620520471786741543979513780399149227987950625298927763749214838202317185451676996350861017991851103261547297873805900011741533136615671101082206073349674173675636755628510319969319068859655511616692894512148406680494888727081865623776183816595462622385512081466300820961274036400923457125097675002492379063848339767368385532184258572291368859249231671212125416120131411017183775362656472678158322403509290873463985548143964163555981701200311710511682927654919961458094250411551527413244477289789783960286296430560615581888071874402351735011290520766621406929425989760111307609280948244111383802106982239718067150732978001408918743154801788272696913072245000652245484221344738111918148902974624258531930572998470074924681623456998104949566591392068789228527125792646080683254301106723851310779844381755092321472920040348200365910090105511798910612486836779416322276043205201324887877067196849482035174286525172068055601997329668467924993719457690214449566991963897414491322572088986821300475673107659381020746102821034143789028532793336733090234338980738115996371584213841523223482344282979402432827065852907677194834823776230341574394277317031041833269295184266682314664940125122732434517668303413318424216335647020165568033573387079554975460043532131606880193450967942584020110320796415191154672304641968869175881247368805166908850965524932241623627997627554481376838760581285739153674617214549310434995365562161676110624590471536522005688192943951526065394212214385425674855094308336923295420506437364651377973630615576102521390327522199721946560155958955214162805304439698706195463299529310653501351470118439056502303684020081926297943918217709601429252176950256575134484342445660563156409762011381278507104582632115182437971557017796757874654507949221187486281228714690988579052354444044665920066820431382354437294773625723747152593337036602673491972277886297814916314655184203102751048920301457239703645556483621462981924461345652523018058996534467423750252093643900776349531521026711541149647375443042629454724967098090821389997408416212197599981201209900175677328325557356410039988743509691947744058506933252386101674644884029672888870661086868394354763297343168503971737817344718422974317975961638847603672909133882644852874692354341034731817217933864362613067252135650765112967579464768353392184224261174423306308265725791828640853307884814489031908152949010370374137685011218790513506605370018802854215749312395059486890757515848766310191239810553083378400633063262751102051486305993424369666656236307406102022090077018917342044642158211670995438918437131959063897136642217203917199435566557799703724520590003581116394638910086905147160753675711634903488468357497887244641055664763982964766403757659286847561581114763704818222378658256401540013055975228718378542157177069582864477025134653205678557749285765241353304296364188494073959375950142713835209000934851816883053450489977112171417843125449412202037482262216777095917134078102844617380150559335462281975658327097050016507862964045980003827231793570541654392867384518531902900567215626304165085208153369460005442842107302421845855391897507834759422339959953162875437945027078694195732468992390523652579049255360169442315890742662441229690819338216537848377095651290425293435083504167196672245651610199257808459403044547189087255469301722649536091703632444392479758074514455975553954695311518649248069926132312544379850622513483728049908271066669839595982809110365706276800465501724808921644293722732153825437744670364056964147722198141215739976239924068647987940385402520666853933085971648668778754279705053190665510224549740606783540086799702463440157233446137102715536991512036341920275128030875366366437078749108771326702986689586572652127087532530143178983221564255485697941289528133310439350451257701455136570128464266210957765455289234030622272947973777847817976117331074361457022819442042877606612983935559573969449299123943732753260088181579971033441565649587032950217183959019289052019071785894610673153441470029708594462521128010968334336870667157280521909168426071045315325689068062697222934853563087902562254337876373910458838450406611991331585192604746910093583807697813113030891197778146768220911627083768138406847399150782054153382200446671126474564299830673490498923832507003710963447730738941546738116185822407883409718709097695960189997158649024345783035225583752416629305291496893167196529514727396343071330882000963042806616664382309998569904299405398036742146685052915161422622763992885394288309962858763965276272131382636101534908046976320305905277250126322708092957434473513890587379707056829809803923511098704372840102124964714322203709976812245030481900277439864074567858259602420101915976200695053727408498324930609178980244346404456191949248499822600060779728124772476939408685699492293953494497502335437495867844119375562681256420106224515521001063293984649878787791742353754463025976345897544617746984451424940372182052843918712088115370902035395368086370102841641556962958525647922770972150027314915765017300045040185788805639722412978425160149207523972153958267891887853577343903520489378384086000788564722605486653158784279073688653210856055523564232301999270497512002589868588172387377297632139997635701248117750037406564299670428643095594255060883365183520774250657192846175331719555199480025615024976978256779868999386269044416361429710929868885610459195033672131528610138943975371805748832208481543816081951016522848125775984590337413626996531690544795834758922519392006602632190815965488132185888899844112299435637768368241889792501320084014880435931162521131273958912438314254763560471028637171503637015099910105903061473525097647950404027605196909116654699717993627117224603287304840123684667317328067026665943497902597304789537902800701863082513102924005349284404635292483580068896956292396241454951241037302525562795801509157238692865607515269251796845331190423352129326476058720052163730753680304536434926099746412518690412235313971160916607821800053314494920246928870919620536675335661711128728002651875126970849625296791487125059952272130081929276649557024897559253634334529778363482698990795568112033883728175521782519091531216507203201186357260452729701761122017476019470255953271860725707516171438789885626347555710112659628531562230296878349318922231627976575180708308761695407658809527376499758369755623953748069748885984608960659156673491392127516874771910805909601996025786332987002276706225592326256557898514453427956114725908542640990232350347140843474135107876590274703746024015206146923678327650554714109412484790365459302237647764895738088444487448136657921408834416813669619767599324328125862323458766197481333805055122228917986211716436933022243599657611931344463083584266491676302661402631031031255745850794211000531146894163102918055798931095528305606367459249341781440991132416789860658139983286175103302771987757081202027858935937667398631726857324411399238348455070922283672116433136968452250583045273956207005684971023189124117925286958109195459337349768448424328697064049365862257128848287133733782540231688083381613593864631685574671201140386745638318127272263689575864421655117137715432226549478006233344126007160455605963079620965417558396671179600205271989390184971381011175529856125516845749236222750748570113436706261977369714118950766941994407266954044067750399963501214687096835495779507881534518620117220222603297418269310250375872482633283632386662160806841721505666877161563934466897780266569979340731328521533870309949224768846932238877332565334559789261063898699985038068735459298664560753984748100751139003081690987199240244877491019790309559756221827625471466299352952511574564532913902885430363072195556008789293745619194109841688187694880241598300480778978549059899439702325795767724331936967725100495232144036307022185438732181156505157324205649476292059388402713203268198004052413722498837157648515175649847606735289196273755767281807746424424914521291861702289186135762456613399385103325512767094592481974020999441327886901924168756238522511831972342778187131738773193632944104646854537636271578008051426792754779028394066578408708812145170105596544138517185621372436150142169614105699405665216297148815234120344825708129117007696593788153467295182054498061593742709354651781754739395505556156034823973840093171552792249316100993177508716797708185102415185630374327237584970170530471265212163510050835266392474706298702691823937601180697767456649437262924461403640160279770449126791486856686764184512345507719445424371695605292522122030155366468397070995856365632411260764877038805116826947917796765211967849627589353998075512947571854395882907788941389159422058607980390478676885731400504074361920605566725441161848218595395232018257909301544113362397472544218673542473196327311854906306224597245435734458360949957890979281935672862131237933163512215850885040158773621153016027231968732522008241507325132710199392439567994417337528259719085631474295293097658804156164224840520836446041816303768872584943992536130741766787988751828246275536288719689336491013034392488542716212059523043744709459557056434035606218335530337413738198110287160171087394440466105122191571821289380392021886838227620353009083415021727964791499700328069090420811861269841001426305689308372754313174708221019646372747289572012313590132750576998852386109170537932612286270820620946598507153409217731161866458198856397850076755386541024844601568025966143328865213179471068809062494980565079398827332172017547461433595122828594954759991646491871456594547359283971660817705262203436796835211980172479427356149359948226331126181051914366566711367296195082834491570711808080528907163297121056948493761650002100395976463863318366722635845808526617117544748280498776342230357715419613576450710636842610448259543133397290518419517429302828333255580098185476674852726258396041229910579935067262206799752310164389990001579855858862451879569969167457532936359221976909370847846856050972840030550872214820335414923460715673705431913068604871483009275223940752984292667254643791516746996923733381654964966955514763128123506578715356815462881320808951824749899096530677423071368081462289748910513437845579963660453648574739485693043567623852206573116097189431580960803438336135277275378519593930888997691837680418743204621155092693098128662987289363260562252545191100977558292485693794617944281047595127458209143491009533492391777785770221157392101152754259656112990400959185655017220154093466453865270617751772758539996288494731394807406582074837581622787177913343854272421264989393947853702139912947196487117805505753635056458412245719488138808764819907481335469975897847980402462093535985806442242852194563333487648746166761767225631066673205688558205520985635948252697028376018034427714038885822760116769636537614266332404609453301464501271724958012775284413279721402892319848627687671696921656026774433820359650427435401336613321400812721572366190599467951472455004157905025955463517328249679210984802048055074422864396906855925493064715088519601342687967828397490454975910112016169372673416017952838260854286925354001884305449746556147800406810470541329523500885648165823629985786852993477288995507128197945596292871503539938076241102916689129902625672042709914024724395639728156004709738691043605823787440050862267590804216235344844155872153665032570052984905235476172495190984014993117539472880729946613170778700128057032066417043078082289673046481327806954234940485565714263932977104641659103675734493288663099035818596825533951822955554757805271817504318253826240758339216379332765905650886098395282834657193129044225654402417709840499955010011760832180051024605875344568129662632668164471515741631653239498488934074034125389167830883022934961747711030810958526393290443041188759184322893460423785890643669289404643459556687185013755580907635076213127468776667205241520078892480701257068094717767481602466147698015423058864872289701325211695076099625434382780228980115793651614059810250653120267017080151259210520852020684461834472071541385074807600224386895391596824250813585525073853607154569306198516371476745250180469325072209801703455547561793341769490298494382186763597130018377613694386115848584461017568372199898325536142048781456691395004771739752494547145800492368762405171218508906235070956700029231679493333580307274597289842326701064371584208256391756008859280159669357281983452031676133923552581958226146119880526629401469722563895661108941092085756609232682158770725444759987437522716877719585233819066099035857501221029225882643298767345583332471782795222803329960937536748890003944872798245458831054725857772205466404242747312106363602070758571918048822995405988865834498552971747342130607644119379075011365641168237313946620898158218625098959269434457139883002232054931769033121489446789806297680744014970840821117903430356056318463559411506502515581992336460506635065455947497830254783795187041381824516839891800930810233875869307804304998432274270039271882718924449460576922314568120192338831850006391549877656575852683443388934663120950472483681446838456406622227853793265057580631199248981938472384595385023089960433912795377516388098092352218444748979167941246418793000081388667350133929182242010391772336007912134469385000858206823773328902570852430461138435399567488090686274436770186974168291199021112917761338197836196152463560079735784865048638166924872251410410806620201989954207080387201017023558697631285381683414655860194861106860562877788465810391250629312504360368938462342645047957541294329978108343005221819856213618769113820352709032743440749074254876266799812589322748694894932081551862201160192400338866466856701330668989668538310074509446766295821269426680509545472308064117066684438975188642870070516481136994497906210152166528355899221598136531926081893105169436295889108678433255329316859691724363396791101255175056406098621951191481066421782026843556880730025109044638146843163776729927919476128904013379461328014367414118336032680797501583905224796382052847176600796203733578615344445273497490144972460447148332067279295012773534566585019312776056367485367050588767282094251660246263138514608972545513875104243640909508405431326114346561031309555417776951757675036760814991319890371106361402538373291628082308840816508382236393581164519289389412081118427575287925237690640388125113418177599998521700433630428260440121000913442869013225915922205493785087366571988113536868908288722710453798268098443291259532315447452734494690162843475755715667192729854860193193841674200708774031532657784595939880639403764886676728534336920527288442633063469136337427415306275032579894120334551000462229240579547187572541652371098638591264377001928929565566442414002952170053590749041409058196709534170993211407400337742594449798412752297397625955493448548070527639000010864183406246239588447205935342618305624053959624362277967700806658648259137354386784822268079795549806262885515771377171597435543945418934878987738472498916266517801616966291945940279301975044113801740511129395873601419107873029570651099772454966842115965947462421273360926876272083814406015983865044480376508013577324375869727582479635865608536517745832677701108776499400047763600450967258290783549551291737367617728272597623562611748395174967434826346231715113319944492925334466455294829023390004037906870405116670589296044418604993096979873929002348627400505867189554803210954231439635600906947425849452716659606958371432974477547487996524710286423152875866835169360112439392917133787304643044052433544039159193660212914210267703773388336384653896191691083996181954780237528019977696513627405040555729572851499520800175239158337738748345561625620256308511158096069141845660125314516024115292018109485870528184482026983070374470157045430491388114858558919334221982088939799521729500552424432350158370507057276249168368432917963325231465581273513861925293515055778420625375402563168730260949367491373815994799700551675800694142839794621768622111353908624346887238654265717643556189720376553390399439279008650325127174612140052851960050150910421268413179458282738150396377358535131946305866875828584536672996785563882628287586625417876554285946921702784281840740163540686575841649950696090064383119337025458250540917853236762141504863110644888931162915019533901470293690283764431447890982786950821502488479138940092464393911163295734759701277429151773076366304415278657269448684059121117714766760673852297990696785641021777377591166951534316157006455089835861483608082645511943077472386526793342559785378799486916695532130339145218850591959768108715866571845251380019892142627372020890847353119340714577399759041682691350174369504927375388283485307548750907725695473515635714434523345212252918248097166971632049985222556057153960082155715169515410326170297115572884588086509357326497957475100753761988291143532747411709294580106842613709103049363800696330146701312910217840191157617112312244789644229144650460653923056961275569267291971760388776324126763635557287086169174267711087164246996197199793430279160745056541755251265021056526255473213533396403490960444726270740435252883128024401857966682907577115136840871058705194659817996294371643356203572972616199582719976356429106602645062389560207692764096805532641172893654194524347942418054816996252396804153001321014559719632643518150497210797294427511366768444739519281183304197864652299953362042971294592865140011387158033348436799805590009924626756977292230081344450691796162109888043780539978382339503145302938481553366071160072545101915301564980052303943355255910758797512120132491621777072565500067798903269907964073937651141855913682540201830958304516868215838959221705571382748978811491193967293059790739956965672273078792778257588069224477702603121218201783354961160683454788625879433593019613507996685925641366194002952023394685712604929683797538041711133234786230139436235675574554720547406139509446306987696175309667888308447695830610782289954705648399718561120972510525555871062300598246359503939877769982612423336168183604006874524932598215305035138101892001994559910957283473234795410461303101483082200955854562957361250919852943882095173785762494276240147537911075994426010402175729020826983753430593261800113738795953649696390934703210973822699978736050432818267860274341436016478337810939186872712310049690351849484968077860698409191063362307259361822856838292525206195691636004115327300437593879721348406750672565169152453436665674728466785549409045203268207750306935566454111790720105955422233296331425258184423699544013707744359828917858452213808023444529786494818548789934538849171076797427097504675821297041848895615973896624411676489809753569614290945555853636654759891129489853087053759249219840278866531084350432715477918156475024497849692370871822887577944182073810322680112532098451484894449686723403626874032487928944660003351876829380382317109528038197638913190590114402222273264102221072093143558479216343198980942167480615333601419999461249934874920438090585751801469090071119566603721458718939427318107865676890955231732814496099834875174377519844070565330227399731787321602564048848209777680583737159216911167529126203632867768187572487248556013465917192950403615175221838586784453401320991009714812817785175481613659155967954628347204851588074549295706082687067344477233555608319724304680006260733063037430355080714347675559073463469018576068926671648655415575264972240725059278178673123251315211041449222991014355012722850628752651382302495109594127883836992336236043322311912514754997409710425824207555322685899223378180205876009454773551058571554069107060698427682898282840364358408579566683795882956573367806376329628143812304277900964738123245448413728564731785528379892907426129885613573740807854334833022181842497732319645101540422518897150451967866158089672549796665276164580040461446554943075616105720301211232995443848292420044411955818134664801585819845096247868920474909741381301604943897437841734278075884948698031498210146310521607845814984216869496589670365729629980008525322123878017017199881946772913760311410989263940678562589305156032653519314229163142615405429954071069803711175054029828581983965213152864321187267001427831581770262518429449043668548175917082550855611385965169980430852466109952064205173590222564201417018293949411146189178255512394291188284919310779767851337005697696888396282650587420226439613122915625682334390584909099628058419759995268300188623052926683961374482979153357738044965520826733494845650153294909751957403431232494217125920890294572658276515968219605922139593448349392433018106370960345102410795029124428245231556102303724936930143706393832212932322217868719291627254116787911908974061720834074574601816949978582900998727900922134150466886181857410508414193462762735866775447912934841601021279566207532499229332457857182989174012277449067806299251860681398573769286329215302508686293005131153494487845713332710720212375634265554495815219957525898853585271152251605948852890941219055931426463246976791108488750485904276286316676037738863769988128857241718421746615815672485870425789695191752096042905390553792562570501804611993014951756227177261020910261643719872170458246393401420165635845625178229991330758140257644304274535375427941091278097258853165268705442070532168567640378339101332653032702603069203906496739079066934412115897584015073456238297393050228290498462281714900851373912652320387488596960467652730239099294747481300577085933675907464800501162304666883165946673958829768753013492632669768360664875824500242727123574427823522099847102815501030662623833955196830622441616340660177054729291353918888975169700470561141791981607062934549479797452869627994972979356936723735810487319200300224127498245117154995013926648015147172231567501530788289643928342485767968012735518444595508628893795899849001572163956153602002101012693283058489185028703654322495008393492292907702369008576452884821008793520801569371439510003125561552218247879952078962972607686974503715369673883208793526277444819742013107921512105583722262068029755270997722712594498523162908989886924701459230612741344068544868891283582617135644050456525790942308425887610282327003075887927534338527499096950522626275037367613602328117080274490897990079767465293864684533477753029328828754820973358683659459247047825253526878483657314829229074711888364812996797213956602759051727145403216404469974769441223043026843339030328505545246231753532042178742362317843133981848602494676640675450573436128870081923892667518635664854986809012147788393319097819901651363678248539154814826910639705743435650005637476532682316679042217925391203435595950300971649672768327959118030206337543493521521634475270799835982052635076138900237018627019665961626557217064134035073426770061706879771870273076159917857326203513398232074988106067524298672639075839583939037302093934768210415204964200355427539161681910967243340494340866767363634540585937583562401652036582771063682812741439549792660337767119256270678908748173384236947074732245973720609318267708221618158994627707335118585586101148134552604095939760811417415583227670553356586090943481680915195345231864123141795489384015521174093798173733027318601047220662309148195945378995354575515057171746374046061950084389441540986203685578816207429763299584147093273209841617147300779167564202539177581688505503278283953473879612460840097664176299995280267433610039277107751810764648248126368323999604714740511689545184342010812931068771789567328488348341560339975916824078905991133937916831403149931383504018623507470349634417658660948395491214525677930553114611759410956199447901908544577193598663081141014002714435453792724811721854449169969788883209655937290864990085544610718634452115659867130666845902525279582741183814756081960932591953886497198076242582929205700022699407004036388891820076891182090578984577147581572560041333727806853647109273820261710853629469236741322691118651094897412654772294396380077637867404155400156112946989913696050004990167185225452562834095731246681344825231559840222529149932149107419276126260993064059267818059565559888233222778154357909383355773016859337767461842559299523347414890862395263606282299911192563827112130993169250304193751043668095896978353431870333724207999725844830032613136466035635595594921519298258531026300709041231735389990446511454375014327251591540385699419068240362587490997692365603445844689202197107516691302577009536374300376671487863565914925741815798507061717995509035960132694720513703510777766126432995154178602998386235481967255285661770633177397391791969374313836712945290678760311402381651590303016843269396849996252289436044343312527098202784121492956401652470273550792124674637049983314269509461302801125283565254966689480494472791993363312351063914339233203422330730947313467556764966149188566141341960735459102473175516824278829754948684801846706166307562671008400404541959645452650619811231516802505516479194047300204581459469981387117534386635383095412122437422130487494898794453056062081703755783570310344845823018316496980352587943216709019470883652231950381333786453878121412655007320350419110143996398265491736101128448342339138498583644550225372243059647640728237085960075420273388630483790924739680131776723546779448643927914304945606641872462084796837074581263715022909314500081723993643374956647977931958975795396572241811938854838040789209114214519345936285477208632349757582138272308250985956796126062574700102214818234721185012985304858882769267403420830328618285274611756155658585409363687274551539927668915385844080836378788608025865596271905602280456589012251167816417268153337613808277024493639808911460083031110905369937867916289381535911187545425436438816963330335168245027455134088493391745776724265501007945312905513538552493768489085197519472028024774767932879820967246604789496927857941226048399166217745709306914788081958300504765839599409222169233446970024216968377019883927581615392785148828304590454046900025156544273793661541134867864847376905077233027089025711247102014447396641909356259232424650100373613788023670739351450734858796272349380215563156411812432997970138105118954165257574872862496450569588758158688234857527120694888894907777963874780588718538254399690939542458095624290792643248799757501263408970788544817209825074463424035012951171302493854378594800889232749862130049703902403682329347217002538039787050745850851193528821133209728079026320655455307001651230031114752138909391181123697385233976897235077581050727748394211888912856433544737083193346112613257970714079255599635388823091704687236058414160041529767729093216800293019868318499000728991048105462980435388375492655646936610721107642647856978967743511768211031068869223225748083107796309836800470364445895526275471539121761358684149480129764513857766764166094287182942092427354455469573513272332848645366589276365096570942539942587742416757725176177521155340684263228041729938338966565604028080731020651893428107163573662418576101960912960065819048244286828343568416842792978905350789032063872474731240122185967633637949243508109992190338889974941571818335978327699917865622679733876051977074307268974726554018725325469474616339454197566624688368385510979691887812591645793958489266927152102163137105279008997585650810036226335662680243435334889573197843854566542527277641796488440803199610650248458430009333000273381051424142842877408610628654002604728540977542841135351890832322916281336707843158684845195419577244800146608615576137751148605765648400720709423930954449265176604484651188199748679153381205204952959363827628127359776519741104465139652506465530893217699993031869422937672827138747968587587602084259186240228014657090750052077774840514357323343373460597333790765570525416254701555599785722525236829161559621098195744463094628493772820327444060231498292220992476634622180330742575613868497113358710178299236037412044382889482091788591622703720067383559984946598145006795838209205473941150060655124274709475000596098820244347481588918200748432364465416472501792223874934232519604075798883774530389101142744529004757324608608419077087228454037947682802869814819624435033355753768333576724600996823367535242883627220066128809683544006266886131663946652867249976898091388990713103903073315956550795978290017826054655799141857496571802699589510117345732409025742021244183891971940948460627945137921082559861695752685192670633801159196952788464873619257365972131320656030092116376458665314822855381966349453364539165091971571018467041255460718460337312604446078731427348834312796739124390932066668606487452885553988385867976123957926812912784550588588225996272621433373866800523756293783752441348299095500619929167095886476998943047024205042584754616607603066531606167924850927792761513145034309882898732659073186683519328873745752468081200127200790930681990511649230464231049347336957537229707635752927312069560783201991768714395422857445765494572470682667191153858960338814856551231621209919692855463645855283057138198499807361632845567205091921294523422896307230711427340749278242095780324458538220352196331594549491343307203222805514795845796733295666776758328039424196705033492973225672117057497553707742958206731992383639382132901187955761831721853471975891676485337654914482133928803323906587574366325064641479870267624007945191369439267910828482088392415398397765459888733410695144560737001180032524796801648363972651321233854293285465245668181048629677790675064120156046039023428407677279156199221795208577494404264802694631475595145782987457677844898011136910088591627013864420188616057550563414503119900475299811885645860187534589138240725264145242573981222660968617280483824062210372599963929885963659919466238216912035512937027965504990314217906961370318449905205908693523597570570154852574543287219184203896222892347582861802489264022039017035458006710043021993923166161527897183859231895035930360116568552845981857245503948099927211030098235371642650990268648452796648698668781723244531198928885457792289028408660937844281853095926770997311200104249998955149440515491477136414698376605665385185398392603214776241001931814056213043486667647062553434252600333425343428629210685871581253051208922031396893721779434381294582493560318385926996971246507023972300002383311069447076172723466127168282451444515925583205341886142147188427451893912488486239405144979281041199024097283038892608616702252199851678589316780584726242774918360324942951178599619014666010910130145258096594547601100541094155594008697282647250918338951836963385734092799693882120794134555495803497910959904138577961824672151875711747833607569286900423145699091352147492125081664411664220632748968144163581138961681127045088461921956875961320746028507760896812125794401741199406786740110332825836233243989279997047826863943665693777700048901463707502005695444766103801242137598685326412737538097146278826284310556322325763923773210818546543911482029898924241593819508694993070028811036250762700249020890309498745063652161285327001322730838351265137823798096650526693139669092426002603154697795197485210950040151162317155602268749804275699198557030646873859986061013627354402044394535684144395867326408693868536996829801221953148758099482185564988096513553872953795467917290228461761859274588959010232872437254267991063916198490267742294984393869222492820372815050452253755487981783426879682039539011564704845344635480013322930032298567805440237008124725603360582278815033209246363257291967390626159992408416983528266024312615417728027356099342254179563663515372901217526585284129979289556961173528587583240669323093399320608973342169299045876853181831268218787968628189610365810970899319398028941903160047511430458558399034453476035679390514208030392475442965159557116353938352016899476332133293065825854510464603734173186675848909174182112663989900080696269443771278871568455003681526566198658737560437295420588021458905258776148178709294134357448607767017631980937097376205260570162116452367479406042368579557625752220957295735709906566688274274168634063730194069278155584657483734521990859145001331913298926326292685866603938685221242360988855369511641399564991490486734584767297702568060730452035734874796413690117265242032867436289134694413936869018507983478351611699056012086489849648832502086198790170650600750614756687633752625091532978866164475794335476402079854228605210237416529965944900737756780754714300431380057326723696051712542852567817120034938814844264958263547224575529031441530763955871766410226051906766656620782797942111738245588950495636284314228217981257053776203514488846773729225522922890621294651049112839879129261684462242354546831671921717385832833354235608525551783855618170215948074656372915326856807632797783562038482199088903428577563861061618664869507224556222716412942294821596241337527372446392602105858339446398603110370224747334020920185324336966215725262915267634513053152123949932150855942253284196914940863544420519621137787644756336891643634181943586519984986544380300293050641640409861064227766324857098851964062061440914267322956004124351636432861762366224334101587406219066126807768787845328500128704896525539075726586847665634190623282501788351114451148182635121265349291669682650644377601284051170267181120412003802918419889622152744322188175107933939834006708667110456307945578398616226200830325666449332821434055636162289384829972767279412773101918173995533736306646496725201837672951568042732546102842670562931936284665123596984375220284231849416678438869703729045368799070854486908935474720971728491107982063144217250886916934950040629910127605914877732147561892414241698368424483864477892322647474620419033816367148957656850036633609474940451445195617124688162472767966336694828256136704904162314062556534123019144081212573647667316972023903139703362137073525263478095069786135767018944551904002957122980321639714519570703313366590396622943817476512941213228415132382911472509570033022769105626694981164268528976231131774935488558306563983983768121952118730672702658373827810677886146035972225257710175890710810314239569484290153201383796988074012260560474458742487893151389149934493367404349834631064675355968681394872507161602808946838902481859307881551004077343610508264349301954414118714765048205986336018083025351628185295764406637948358665428294430378567634841618720393638898324493390822357883497599052169688729135437406369320494048974918318086060344151748764733115102679774162411683674259880729604492321456991919094983307037054255482615345156465482125434502852871230285378725514333871694392150962171548611044193131675268669526353678342728998475632347900852985189120884265966158752289856631302011314264783140004480689559911044827372405984225932299221598801027040758425511338475074891139767744749404018268876898620887964407491066564240109411051348885656928022453064870880605642504708981352394034608245521873185517796412479002192759806735401203418755825017391995127284387122417096169365691018406195618524542006201928460528221824877416439992667236865995357485193455996972378409954018043454382582472953884632652869655500674214924461319902840495012960702619269100305020592507297228749454402209551337027362838775502762106209184427424976502335174968064460165928568497792018622605801101352772206146942246310813260385584617124600852787036369913143616653036922923272270313393379650582947378648362139450630528082038988596642323977014920546511531133427035708863144478412952508758700975313590946381132543315657336441173748707240011464386171441672442880348417948858400819009106108285176944421142044389271890152465062038978501872808067643646203484318152475214126617644758622757054259350421253586050976027804726089124732417724896233565301842706341719088677659656487974750840859650737629143724041807906978115589139596861127553978178256348233328804664443278982980690456587285237685525527899813468675234266161689078145864732479355912446452572701604946752230936490778014521659617346358604576850882326050281239009289402245611839492220372439169439993445237231151687553465064842738809934456416489087682280262536760922600452885082141180214196589930254462377783770438911428135742660778574099693408489086634048774217524460820930431200265594732214732098349671106668756482557754041580201072675177467980331662859766832167560290305967684784445860980161058793096874560893567985783421781582479649280862415000112563716889984090342937131196345706765084206560726282271447823555746372366776438045175466064590001765258458696497345319384869259697090432165730682089142209428045495926419647286434413900522815332110685839292582648639415619865871980317434388851059242098559622914724913051044991166739849226153552530861335577839904880731754675662933020324274834326767707007628783079790660242563357127579976476872740809418013624093034050709311181331326266769424042552759036029457573853800409864102539992118834413213905173991933643329738850242937685426432668384621354353156275092008806848751054159265512497758903530994908965449922384715830690320476287693749539312316456104802971063798468270164040824311751003850167470381739258410758286059306794631158882050236345847100532649105043480020717731404179724895575186284459940921196409354171242778636474827466842533911679377217454907606480473822088014079261687485851813892266958568217717568924962620702193800732567311467531380042488380578717334713434434352805062384339672581217258832942085480014908357713954654980100161678304011021479135083882215206851337255218027928677137745175411106466655964024981410232643263060429763779240994108937267173582409159921671440594239295074414900206666958492305227249322574153134078327662071677951898878895993373860791195599295626312286920993528485540630544502504272963313040813455743904535176781149870611845314724632215830909498918317598631189653326270804035329319708311697146497628647257983935328371767375508491500908006782153095670690317794165759443023654463237459918394094599909614831794223209468519880139912550948168272824769035054324633166687847006921142476233493642608962178757936986651455851292760253051029305770554009712378351472057196444632155296340667679524654596088818000280263654927998578154462848119020038146433024258495707278010807481624121330761294112232622171802955096611845184998837619295282718198184716571783728143611675455258685915107918574294433532998189704263962310623714040687972743282948585123666515685889722388817085497458253690757909707972374784981298359356507208443410529365898456952484576853246013006556970023270055225756317217466472710989224794783704182843607047774745456454323817610264003017143484644372699542848071495657801152572157524428530591866417768310530181002541335101284030142767583706080639052409108954379558520720268071041588621929729357802314555073709205328373094572430413369736710672362373845022337830611733525812563419421378552549734202796618640375705058003770391046007877266593552296035090319494674916870346089832192607417124835349720388730503263781953551388618120402203691256624214669715366341767277670689457831050023709586711245011457774838807551764095800602346499038203807853008105824303941776570668340118790517075545876687080604928085965976177683901098151290984630286289467095359003670235632458335853549269169540251063030784702575876788234520133999167389622477268708881999413633085599408791338365717802740935374287198069461404652836404816503929944169116151421259944764175270620966713105807213281104224680732885508915604245377777840537736594214967733095550839433837572721634641033632650315128593089906102121588469971599494809849487888482868925804319569206985171426556336749332589608024796351376227349616941509081296765927233156768400772571674727548864928161094865733886154852473053869607163260424337944454222424659312557037777691376358624369833237472512727850931549016851707655929961400937069274520089805774561198308562275919351141954080638058048806364893823473496916778153363923867671924129710239465621828859714274252055294031408151309638590284522497019897865448897910546220626779299754470320632244724287196102110021706609591217633840982777837425139805511497969763794382972577061974645329362565821029835578403606405470800495149086605545313044462104006994819978725557611325574788756836821300438250052612178692464720334398369022367112777281210794547644312962361939306069272085251677502257667555759718156248193236678217999983715230159802384537669459483162108935450707224736293185091649164993482859774378022238746539478945845000173283621701865606718073599943332368679980335203139370201926352961923752723859949677292548742513661129235093231265745250651752561774451839097842475835521830497111779166630663425165984574938671304627901636179219367642847693490410440792639114102210221001141893653133251460634994692114620859731244373616274736618508534325878202624882146179279371104648776919176968864821529636008020925261338755534263118103092666826933807449531267491372758240008338391140209863186919743788888954974048070673782038617784320557527309134391584870995618799242306932470344666142223513068154557950254149065200201811306921588111199655566261504902835677787901436449521587948508139338638120669324154066912491226665044147593299015027691355807142055222656383041358466438254764424610768299813662476168579234000060425319929301161919880788120185921027295495347135130854310382652585718257002048382157074640448331413225125772949539347268136714793364065568777602670564339902215755034997703608948973543355999852850729575278176870683401307251994751594125207834672195547271949218338840950471405328825859468980878928624308382816153799342592754767838266789417402176955138820821772772698018256080273995734712340942153068696243101683564058782043054857539092161741740328593385580056612846859905729744791120505061316186508757342900595943848001746869351093522278538508845864314630156146386107414629877338732602762931228588511086062904745530744795673948381078060687628162885318787013944945833575735277211016363491952336905289350590140026867028167006284212690867128183686529408913299109443869976839751765418555079477630954021230152003404910854825752915769390340574685629193134090532628263018215425129799016367984514209976888119166644085582054318305614047708338849310913833674302561503399571252426024889268770675039960655613859405649600555092768839822166837969213809483701055596619058907842191537412367483213995511206957589769293654435999169650630660545109931654484392936302468417534664619981431295355350240173904474658875774515209007995861448729424394879518335923024251081173466248195108104814504835354229801559097648422100714618495581968027141583297505737574573577012288085098258960371791095338515713923365559229837303316722191494820799948692681566186420482819887020537037574671951279846652129446136825821222352226427541408602504398931237487498733130541271508353996019258031019396780247571160637145791864532229154936854401967394566701484012617786583501024202377816281525864911244650026829179676138244598434758005614252893703414462620409406899976808012241961985610432465587311093848136746113806480109372423243845439781449884679723788888825401645601064257892232828493304514069948261415932137817985645369743009400782112886985599466690436851759094443781650152591574752471850126443387173963944645290275906620992035026458824914304793513054396682687880835459389303050780376935076171498541961983973244953295791977653908183812607347133896100376072702500293481710026904989932401409048160778558345350854237486178346613398551048750687333217302446219308933780206557445022857467667817260322525952503313219727538094449945417302543680505330830564058359854748122185663971213506149240529543371078195757102584110890934555343729428810875303378995477509519960200136742625371025824028333828253376189067675078374034680975221501550634718438904721062398399037412798337491511805952068641923170815285443958011057530540387157550687965634568317404351455713023115176682110795257471426991699019210915252015346657870813129781474060589158192981109042731744331161291588379082094768714337310657458541905731084311884423332469847910960802809570779059565742717032162993111240542279304104496243083186481405024114237254827971300192344565356715569562927415392248878524352553472399211384072717499278565640400437795892474378709624181274805768792066526786021278242069541046424529516952157269274208039072623988786233986141037034103639736558090962847299277200687942164534788245274365706146106454946656361977491117067351184460612374398213022562614407981681074507827493087181367864620049100258880067100489853221192831512107025627481344516070677942368497161750667937142175254670717918551547279835771221722821530359655589093193277894416839320803389615047480574428683978563697726047892528935947333805814673665084548848631886877168282228147181433180834158914821887073644809343894834715392465884033896546005317120601204383101211719684279875367162285608698872833040606401095753750092818329869428135833407316834612203522724303669796244095378865176830350453179049287644169843914596905577459034072174144918943692444463791404701676535741824017905422509640599748319350717572190566386543890250852314366626104824407295298465312448230763746913878482029286794845678010060585889854739110779491000021607734744179136588423351562416118433784689507041930539353568707790281022603632816419361551322012519857948212352185667796619775050494726315930301628409684860112476879526231705392042242711810284281821117836892708597560070559396422902137604268754393691990537656838689659783453932946151247233180143838014394447399791102500046299638823996589647545807650884823800900115780345411827870039993554565837824950123676569649581606642141007262514585535925467175750312575870392350727678192613352758525770412656036678481826759565649632304073473187833488817889146166022795560965935217975072051759109193968047305912202392055738329416837397279662868542355919165614875509706211321506549455999914709485036126997641889779505583026805374815527289522348807412891959980690861094893333736713028879166083532499677791822831536921415110878663385506399161981858557538270215198820937790595449728007256451654864859835720840632487051312416449727172693694730479676099609533877636011307324126147591900814422030656856362286293522473445958941907121338497061893261656934737534845377619506264472195031590916655588531575589634495672606379372573941320329639660646913011695372872570291043903535422467316086327499333316342601632316647310301347436562809867850762929339485153964956749477287744960430325476990409482839723054510042106836735640641275851206416758376827964498987733774409152722971350543834103370801141058228572688289501027284242030736709781490152716916808311978619879076814366217598382163066947002521036518764834646498591917823313407908004065762717544323191236593668314155838607129363521247960472149353593120555433785881382196019956091864638627084332289431040011564101607549029710469714559554675038836677621526118949214547680440110055767380745255216222050863488047584569680157351525240236054089526235560653480620752207262709033300503388158208419767614285762546733541984012075509021724210840575827095643710843892312817532464518889280650808220642569612721845111532558010227266091072910777698969386941884697159227025399374645391782083440215929259720954455636442936890110952128776557432662253540852944418225743278599223927607641335125777600847114487863152385824690233106186767126016834545620092403669945186614197866055649217848949222463702833453157983213917283906988054128052205387450743101513298741294723259855245033649579159928461939266284592150697505462813616965914247577637461715887181982851308899693228459627087512328299897487702832604302811272276194659009366434354537074111587786631822323898750314891266962614449137441553496653392762556007492400956845923577486962010784019301742761094506964476504694700203199950478766725321327760589577940820011399953357826636601244958601022411760570524473831038332696621438431148026272917316808065233564830649944267921254965261833733643834339341163498565562063505581045438081618181899312913560244435426534969231465351724281967129851335752345734705824238741594904376982877047022682998299206978338920937385700310946427058761377571187522247007839852149166737151467187352023002897797441268162205979971908140532342011677216222192288899418448395868272075658173477675109551349111429853809511301068415244793816066556172937878867960926808862693979194547496940249786832770668353400156876436825197872210616348445746405618686208658722968287623786072906882283075273521429867234647455639813065885581753089748817356489391121911139164098899342644186469081170029672340556957269374963624578277644599994027981852425788722317525530334635903334467678503271307516844854229754383964890188998751852704179711027306038090638423375219264127133858879175230742467042180267413245332413024330778912961613742490940023518856986536825081879047209766969844872221330029309704046728530894957142945400874969759728674237767116177451182064040318153495357568568583623899683726597707601521073456943085284695187318367336495903441265239988969617429356827446374153067558826937560148899745513463506403868534870504876323454558929002095449482823741772454210680406306126645232792311623885985479986854306705355178130984979268348643683946793938083471357538389089706915276798083347249000441224845797990898098153901881782128547404736689395091366963575037998574603249677900578482240917027963152434119236666762586650358978800330663938739479690451532205511881379327382642015664562790581461781098055842887688047310031253795612647793614856422502950022223826456094575049968954786369103940162834507302072235686028732503434823140790864394495325293018557389112688407824044573382187568803382119229943084229704300330233160064630744753785354803880835934195835908652506694388170702343397669670804398675547928622347645778366803007067311733718542264369896296488032092850318966917107746482742600919483731300550254974184606569050034071263342204372592854464232002829577284801290124961691237451859591031363159980260468172365591920740392340885418484069183543251751644010117339395170578882041027160546393921879172500916391377895109497456865169586059296169407036751099919660149697756622825273657482732426757819167120008249382576667446617278834556170729576328979172227021241542420970650919741388403168887904550882366043512069542623154484987471851467905110485282677614599469429452550800224616193020727027521416124500941252883085228838170471223869959964103773666206365770966732172897206845459320273887861756545227848896300009019662965233049233842856980942387295066280050167715367881613548678194129350522844517593870630038038915473977026369373991497041635569498321755569846554496237916329714347934572440784764057021748031274891951223113424107471405119093402076907857490356886414357194434245430176557970570082585104559983672127089105715134213146497032881991337455202206921887748967189732420773727069639675330957396130042758840271337017427544793773735540632336165271508235519439328704561798934041717326916804807136450455717488346612994031974001153721866173146656698107950557121401929925322125099596919093289213352776482718224817093199748570268233922554150506928499799901382773911571230656666169567228001662434427450380460100269638053861212809688594445732173743020879705557359633135023721389686247927320228936062575504759766332715228729151895126846237239009805354707589510628138446848827855473229173787062914821998172725546676533342631503217140504022883553481506027100396000942008065314668275252180819284584580164091503501872066930654107647542444903303291585683239986797730522895137418070711921803679788929849922834482464123757793287942177150986762087383828254140275244166246105111325724404683990716913679930950145415315034199197736967628169165237239563066534952323827310886390317616276725641045132310362705282192872734843238803753626271777437203829707365737120410146666961062116184925320656388080800258169809477847307661661932400255538944183431710430279544077019277840487981307186228935469174824047856396062394640845504805612470589945478474731165218855944782544874501525841513274558286417736638564635767513326811827346928114974648093870981523822309860258010063861757944541467275489254963675529025587697211431087485300979513177247477361929578979451060455605081450968209189323989866810965614606873222868610349265834898975469340410333435310660168555775440524698351514369816034910117492954810081656015916589413836465632192451756175550947708989475173939424490697294662108477685946373748786844600874750992653254304127769925972488367133078790745479516945634813493086800375127646845210114627337439409338051417188047841311771383438487683519715632917604561156665890047822961686425043069827127554626090967875421058354704961149805675055644264034877898200493911068901320937847922352063831764992337164997278022367614031085509401095660175726550940117369492503500895814719730575631724760366665492376070388316963891283893541077148230582159768186746752256164512490581826261967149778270421852925095112901772583524174820823977310839645947937991382134207418520111687359347557721860690599756970649506523300009357387220359028755758656046368668101480310879311599367953336182615851754303439771160108228571932870978905876854439636969108763478181228444714257646396857544462848138706577286696981989120255053292010333509906303361434799659558705718708494432206137904709744951241033335890553665072727450587423073880816048144254832644063521305834217146164052167781041774066128305936666359093311003064517426052762738912147124295569674067975369166469407831678642007883211635951099936038469286668514482943688387124788720528067201894295248936851704461598961933222260300145196531395024167037997780421768734627214170440211444356347770331188549155325286604468299226647301928114097566801355888945476244423477807766255549708523394683693773496394620784394873069317087484058721195714605931764521274365814791001550214855719217172477766507078853053030353164993943499096838710216493925261471222547432010701664061934012286478180485729978582581968506533987423868943199152433510008083224147802724176910791854693696312065476253151626022955705107375734277741680603986258221321664337627348706846987982655943955915935325780804756622602486450408333033957570921508856541105487235722247861165403689743414886568946379186177248491253913363675502167533055693193406597063862700755894602785345912496278498436743561124032038360702187353760548986499013210708845888036076174169836722407768176621659977023761233290446768797781419987514973853171321787500355687338243160599001573072906401579691954769218636574033084104968362870654447926793443550697664866395098358782845176803756316996312595695351007883742156877758874985428663254320059113177606363620418646153928744621622315040609469347712250521007627619899261734531518779692477938811032474163480680498687820777574824937944986797863936332980463829809283841334265245776278166946376138193497828843684547503975433672071736606775548779375023423547310511721380470361168440358436358861466914524109071218039732311428816905192500349066497500662560576740183199926371761032991543724422951422400951561459122162893981193585645003184535361673219847575671530107688926457445909781729538450300538316888272583071769619527545822761730537648289056532138539596448647405919312951098716715230169031412474843154331096588914389166834498858193739471449723935731029186621314869986369752062068106243809299932547802110198690002692608534475518342864346896073954485442832291617681544620877334599140030161903566607685489848597696541510229037872393940301688003969771450835800422388028999135604053285630234426621085133402181729688985917671242053229616580801353545112713673325627917995981222614087960009102592798845398535352936473942214558956287386914010096723712471045628670975285196993698297841358814825921300701485620758654341560223031325636131121605891747572497690482170826631786688234887032368101868979843404352421212071738660264712250825956747055705008185483905021685518908873202680713189726658047989896153230015668846997502409348871515382751062906615597358014222856119773536498973044805693529297646505278837516399514235210714378554363190009722337403113610701867833560174324759013067167917529332129033518374158641462085440273215929493116084593784335774048999639512905620726208949734323336910745920555862979856052741251357365177980642521137433212060156880648297259512002170901552527155990581342100625708728239801098765204566807142014140497811701471002088108061681297391994245880012763769175718836523919084838584104003562417629997707027581333404840143742776884920927356393805793787677876702267146287368048223996105957482598387267044816499992374553039766280993261242452267305207651319154334911432811500765437161675126924963875077836783971899349477329243382270320647630856281763205361028699329271383494106947157983444395453889339808026851838231287235162034468663394696653066303475737079548487273090954838450021944168065102290966568088545887188246704922340197136838223809624748339961260516547969017637342439836466722570170488756811072977913630151834419545048149118564849260469598888928151791239824347770115243356221779024289012640749959662156485886049864337250037219131749559469563015142364357977719073185831376196645887734434979116187471904363239075218526857657021842514805178077259605196959755800974478969319594163344924389247141533566994396439390099112095810799775590114700254372300842726438357266595081037303917546245647068976448947244327522422931354069885738224837174360972776382258956741300704748687141504814302002447715754422675547847399714966628898154631232000284664229127039678476246999364773357759492314241196624359227484262355946603660716528124146161019424168808339631742956886400718346839675931362322903749290722413472088466741376700476846880404119168481999172164832746160705149015614342833110959123297938049407480763019194742156322501827265083757309820692665605954773936444455370367754711092713753155756964950550873804798241495263991336265194084174990734147082267388516512233621799339754506105199892064565137677022480107224316659121461494983379147221559237940545567218374421436968975261283287876810105172253734825545616737640252420126764155012469437264566877746512104946522128085232542152965055497091497360640918016629737357713212509748706120915615596025290901369791388669354015243581007414532873730648383282389675814991550414904301801384510956120601414512694387263492064371047591233525763477195687891273038375332565685805034191739877585728599516262649731932631333664897317846300115131269264674070321951262706298700494704758387568471722988655246475975170538259637233462718180362575388216176237265928039056046224685275790229753934614198517131036429079417804469228139691540789793438651769907376858168090482925860910987407836887946816068417034931189148974498362011547555073969679448296946685454936555219833593244414984475049073913771825270463069327395778536546533328027676624413539696068177008595727633638682337094392331829301649306104112538791827635582246453550298377517685957028586079271820932730102743374984353784323632584725478165295170854677366189188044001559242209539219323536491047266295927850945668212662869153818920002845271072285643021167208552578920227662392503765166682609186955717124039229601828875457111529069892920001900649281656728018351682975802859360498648655739487821927841553909961653025691261820884429524204040382341078195654228685611592171930682625199008490377228849099072312516365157167671446321018924036511136252049244770469277365477791606036341300620249426271866720333575809268028946759777904583246896727801946926278772594065593002396751619934984515723569058441226650737797770711986137812180741333846680849276699774251996094564370781240494541720522964629855688977368718163701312142102959989866959292875752595322802610888274726492136535672680364464689575448576888425514758638722136581677641598682658581801713892850057381024870383603090577761203750828240730051366983319409244350045647968028999086881896218492694669645527223675372759352844752969155059567534310079659910238909314798305812389111263256239442117931561870109411826437749426542737316051558596134560626626746298356668598615185805181603183650837545082146673417645523993096475532837551032756655097031275615038756417536883677549847127557594912531478424784966018476667474775646189822245174946900408151693522381508942881597370733584382206788124280826464802846789985273952503306717479717295707324956540512280280732610277971156006789502329010612788861997442313235816727056949180563708444202357931431398432416827491490225554083802644861489580714592370412031445714011806292213362698491889679717258075498143952255316991546711737156075182008109580889598702184100787514627072962411447586625260402068059065015557091379067145394195761832835721644441713496681369197812292503345312108325081823485112305387818126776633057819494224693505997456122970201212720502079018155334799564613609959830825680087416939721355809781075372460974242763167144165821611940211996743703328482106492798802539898632629678699010012775317853593861211716737870127829741106724891666515575621396045925554446117670050791401159519620064077077668489143264039921883101289085514260405609045022488280612257229138082040783827839226675213214709488672548954671758729878010758443554229036422288582678224609616325427524179995919078268535104973229738866793437928482578062130021738499079201945967982866119837730366090303722925860637409571420399116149134205316715823970528245283916186486489098638902937920060472436089882809044686232222605739496374859515934756381385756429364268752470925546688299420369544148026445950872455561493803046249435178597993551015198390534952131966051447608831274874595839218613995305857389060925663367854004930996524546178897117635416167998755575957421556476794551376438516700963086368034889857846106658024444310802222074255733458059569894421534763147931959631505107709549807723177572602876409810868885645788555427951892434136194081724928647690941935520346276002951733858123630405624370758606596708712364713896622062420506096019712585951066127537980401263204750128279221873015642357740950572841269972172954046470071925722679627250596906380927426713671439294679609184334195934891249818065874532281380120578439324062529237937809823317502322982535297605478992052562259059310357429482350828086223332479093531870329184782243765689837588177186680666565523753758099588051300858136508140604013756057659667271098022687507441957996727292606562510004508473280717349582977076142906905065294634678781717418910807213368467425968336590840221677352401634785196308037602134663847653426572457378082826624645400131814299527271579568690411440227079894236771694945387489309385065800413158145939845633311627383953666540830672547313694302978236504260712206303388790147308064782334390191851706984075989989627070935444901585212738311719996882619069100450457572451673641660300428581234274560255795455428501073646471295406655655315877152833627571546620307296831087728476445227668487249589863755373329578160034591353967136398432329899503221946486102017645922280247770852076705274617385762802131449165823916871237952046896851840948154958924677859548975103355309921973726967990194915373843598934632786584467300211466236455341135655827127506173871231093674406027793883433161702961394166031621446778532563304663755509136788955534034799035008739305288697579838686382494472858614999011663349938734337397360823519478514910397412825875806239548727027753837335939699979540206255833346555398197069642059719438854999339005481347259132662105686559128855492352279376707609024799699842096949557958719858821115062434347048906557491699233464061546103977664645554253861809182882150431328820748503024008440694076619032021310183126077435193546076543943664330513096746923523511592895093632166248958631723921500606010201898704886247094238562243159713852829171263420500824078457145960241665051676038946409800684866115804267784770422051010495943434797037879169248011416371433858109344736858421345763272233723147404127050589414298044620588290692489563697937019824405470880649419867933044370974284498603148290344939403109991925269197804010959986347895195356676655243028069516766637416559641534886890646594094503389915787056452676880846833274455974475164601638237965673933589130485833200567014715552199260491088202431280684300537409767486605531030308131766570905519874320614266439043024963920191272556963052931077859162341136179396374835416095868183406594208761701629026545687012090774179876094557154245659985977750042958440882528046441843187747291505612891899152317419355045190589756678606923789166447894610068343521673534562574087487009799621160172158680791126236110261306183710552117691468363955144120612847854988131939288324542717287692421726030556047607695887564295220513426881900519504923464929603724520866784136125134816338612297565447664710367182269784654629662478198651896750875343438115699380538215539873605762647515696818527036770897582315380330850542278582715226614292530953222826324684829485362629584696885200082444792874166939251256091812094097997992682427989469490727728443548947628623328730525728526463189160820055547942658080844651878173817003719898306731838904959972969658904051510997611151411469589714998760779946099198178065420873757964589408884569662330676948071735441055254380774025211206006037374526803860772195543216408416105293873290243345795001611433184194333802052501929237824192780163786516495779750072953450478945612502065268145411669848442623642620365782012387235915208380361939825986617056676574497220989200971863566003184263254225055145221359132899108394762554790024177098463771710569939631932860926075728066149727883207389820429405831049357634910840935720780842239544091286986569511028924415964361193144991322499686739586338308181589967102676703855756322302948937181678094958701642657556802223789612519056466376073195137407794003920397333320068297760556596769987113638619577753284192320066637171400798563809808357991008585593491053636811195735037744868439654308410240450855099955542057602757011829964388748916634365139579726579022749718607669068870122803909563700269144273102907893196034730826755271404068673575289591656995530026675091985338250055748482716244262521142602110308402928891756860036876732971185433437271265087202893662972997366789859952274961371062239013771640607224058515950730025276130099764510194541068625464971355308661691576572456011248442832329990916128253899141902612094942404222446372076464149362983139692642811244484866093292665362329918159975058926756400733499783214891753771166960643342333314931965239910838590109827466591810154929774361938554270744218220891730991881529220101278576126259120012163451081835522921562834848567779663117200386488738199301532956336952934858390430576255792633648296665940766041296680640786781471520222637329566149211661203174484099838214124867808692176032586008734251444462972263247102874596813555883440007754064726536317491565283735311412657964343697141430973296714536968471597620864086301276247337241622726392633554310382282072855176679832651147550445791015781586232383522075816048530293967137528922894359757846068370296441090470194514480926133487809295292755033807016860487546255276342519932752990997605093532076071762818034883442387298705690775786949153992228462471738077841678342838340481703638238159296018524941171022585802621440081940877024510495140363671645158673829081082308492605556239307818278242059863199831356041566144236959628474033223658147110669522224559110751598697089099898405120416179661777590610575273171855369111778247380727939942814982342068573390146090510611222125605371422019874594290870974208523041664800745925307737288083321898008867880062803367099104408254808519169529256525440972159546105257608617983304897413046817450701880887437158322306803849434382750768879041970087159408553540660211275067116500111985717706455786960678874126202007146161429415327921793277811452332615901967097548296254387552240962220178826072930154131886371776361545548721811830858723703787949804986496924043589150094907673658612151299210537388893348395091426059261014943339028819428595618095441868548700104616708505244308986056625852647783791914546701739036012997931174899185065167290484495680131828605405954942015218624848955578386162509394195436542257105816451121582011221997417751798998484126349334200957700208571575481278346680911110888852751237266928860849167225662153072052400733731640138447786273209924313239064060473737689756340774042864463609270852306733715465716962728397690854336529911262342352450292338219099166260699897594351359768225482515053729016346776093533423133966633381984093907272701577011971792097902386461913466199182702818162580749429863738072426500509329342396148235708021977528438960830094769005845152611409742305928383770142324001918457628773046257007735288634437531550709563981619127051000038206841546942229064660956566232249694844421245403750842207155304943422446969270965494162638323961469002827654325305847310540472598864143938813390749340969903775459599288775152302798950498210415180668878384422934676314528308376709828572509779560940137212895411352660146329037348598739226263042012715161945610916444377443821678075100095956324366221009952172961533383006957938583002720862532981514890970795681583246769055874689225817246523476898537564427158367824597002849735002775428955071503619924575197076592623238188636289510664626316506628346790549564313493742790576639935357367687678089917084433148088513210183358712977350618196007382580387527582963435379293781196185112231614485408744332640453669535827139292274344657237771435579088454647094452945297540170544198403155680043358745279264400528903768969226782467539540261850340997174671658306301774789886933500324401935882043890633942103460694113592899040810977801404982376655410675335113009356791655330157359377730588870712389306045081356054046825781359656588641113242388998060599606806764015642521885711136704625064910349006634473404631548884390476523438584682765465846888270049802688199572931364298498481001243135469309865885151659429746303444274106091806493561536454146114545074562608992492108068757898073715169154581029894615302250710094477905937213091872929962353368785698505184905629333144590245181803828734612852567982191162652602490621914448354382658277093833728750473872096012168227442553605331396154837253273346241383304035856816404453849691288702696733530968885320667745442523839657659366625937130683832082510216659096380883763855266648887061643155166584646675600020258911052015212282530510199445655982466795470819234264708111559225212191877706493311264594771599043469459566892083431161914606213391308022169980425186984772510074071443506545395076627342010222139514496533708912010888683001758951679628695052566068795760696347403375573367678161031832850565567734759466640373473567452349513484626911471263515687090421389654299053618688880400070387129953811161280537938106456125313697525932455852340333052006251703528253814145825150175525100572763561276627512211841350261406457481637236568181501809706960716941241281693198532792886443706302518744920097899370901517464658636595332941415977637188027980303155228241820097360672177725727751145019950059701884157628643092921251169081760190080448948987513029103234134561556037188215192107456497307852427831815441440997118081109487456864222769601877935646001583153938097307621713418210721704337161446254612352125736384869763154805744982744055643660422603088497962799974054671956215243164140364807305178014850453054505874416628826571946258709251409019416939519822923928930056710896196487776316998162951328055774549891173330337212914157180381787465794523500587094537922726777614790698514497461185496748228189040409373793032395175754057775564983325052297460498010441163771334184535563775238551226624740564615429675097335846573989414572260337298513528414769620337191201853542513177592645685480760216168423251170080589427253233201154395738510813213671276712862058380488933530941971932854904591378960176226568685952390382037865051439157670977140214081664982623724952222732368978028547175216797498958414653059060790897581461508550540164420051893644369516419300360301315583195149578707132422392797294382873459371117338145831411977938868934807479546429369290697670097515892431702375759781325043508078047098268940584469619871035501124662601601261433774274302888175276137410316292687701644651934528320443962079249785621905686440150392259263711433912677960646854235825600078896678048116880677140713713437402100760231201740053336360572939498507115614873268944877050945354895968841950651949170365205367312834203170681286382731589746872383998755861682265328735084716828971060986449612920879794234294351184647303583296583128296907178551320300238029421505788444210371642417210014156488076139423897226490335575385130062080232100709896035789425447421762334639464945866269671050705268515612911397010782748534155938937787109937263299143561368615619105701592715417336555863831743029593395270567795794505648760255131953266538909061146241069239351236343022274271460738906247338808566390376888090312961852971246927129475099435669404512518796487755245269327392993495572160661228120959307762761538640500070282429704809951195215951721531775855049247715402738013932239819089010491737428204628110648879455207642119039230476845033516653043819857140241494805497783310488201658316091859387683796719873843408054331009853547405689105693618735368862130827420562753090242959220460850630313832259442947964578239446971032242396721228839631188507968326754089439013452212468764475480446337247065259647853943430041041555583229736756119548438094344198238073872423687237706353256243354234431188523272494640868123755907049073717749204422559265636920102538267923061946797483526415430887598063284627400752594539394504412524599123902536137555015171172205144329148721444720671708481233130558766677984057469090334616972871280307652759363272700437528068565684990109468875743409688921975133018441330443540995588286705205485646606255264404518441698878905733688815979351453889466997797058585703319647118017503425290317238000908744095054994894591838051656337399951782778539936124934230033716645362084045994887890348912276110989051526781155299038303706912863330210837594874405411995286459073430529764523123221583364818105864775114822570960496761791910542211647825553941666615459915446823325750269393352726557162712349048366078313570026519216555511571922050305135502388674334451168402160232492102606366095031285114331707855730331217237306839979922937507852271192399004653229422394662402653571600518173590982478615467121855517901098382198297015286299588411592165564236503112305371385278576009066743222707019559175979089774859412377579225177902147367595140665466204277114709675059628396047090628914426433817920348482874832713879747262802816933928239034182218847407749832005441692907243209765021267693800300772724360332289231797470384769625776729048920013844277327489003666205955625918432340736378240174909122227957726455795355523485511209522892117169760541138481605210539182809191133687229790760040054600368835983997018291680402758834349752885038203725579583681984289000532498726029134718730637404321692321011699287780977634212289707940744266664790569935241239415594101964254078904382633855599709072131724450213500939671097953957267299633466942899389257015598622179364994876008993263557478420644310926691136589138765848749419933989823881750099001347474685787698072064043916415031205198218861416687163821586063300397649849267758660845845494269904987376544190091255558261805686084191729955035328661635861636976023028342408012929588698102184606222623763850447625605908928846511687281691235321366761626459127043822038788702211788697636590610367269929373811222721412142653392434742880119868238731193776501742992045239997403643299065400336364556335646809923400179971943012228331442172611152254447744903741987169844081766951679355173261160010130907428186557533786761054314404817753432588672446839022397061637807411584881575085293629006947240380184891999005930723989568457971692619834688147689767644775658579639242507917413056646905598389764222818297568363915159771031258486580931418785374954569998240754210934611500024557692688041715303416536789571642051046658580946670170419650410906946862680314432706589846347725524933895326846722557070247118596800601560059438110136595063371352739044943480319564234723079839571843688888148310229785617678057516879264812365381631243522926582562082082721001517899009474542253951234219029856600475979346507710658387549928943927817443185293596277264734691222485901857711337781970746102215425941992167114144502408905399819364882083539964888622070084517207681951992642725350534785675270629801026272061919665611321937723243498660729174664910851884893831192093239505078297276899940438688108803393844178150563355582213819798991427034549919319381035536127648633653340768978834807231386054085220293607341402634343871550193355878575222949626678066536211685859229501912530729620046030904717447836447145876523927042149271420222663804981732452553444407482614383093029328500209491359718436234500960526882129156969712131492493117012858415378466683408236426464333994122347728231136534137684805653676500436678964352299641101250172188406873182312797882168830209129685915706041914462235265346541691937070744585237304261905841218442135793573511421823014243826336047630721943362523629176787947509556330233789863420546781607541762648232887417930370921536461146767203445637508037924511750689930857763283517759722594604671448198844054691132555689412821086135691401737369587354779733545309805360745056423349235393421140613551745921044621035213299231611778249223729650817186360602792028565704775021051671257729712776717675772209397337260707562278217386415176597872488972830260501743171349476798558541749745296898735881780128450743993236003761645249871342497914626945212119443563946448275201140034915737427325991152068487609093046151967402074417522790834521728088223225123086723281612616902902824684421333964956995271602919415373178100009807962102296112148672260071046749746181706102941839587045571350486286035714370743707631584628992875085434015187029095699183816303176569267072653102335013190348087726232200037586645664296346354867072137998803654199540258796806048432258720449540122377880601411321948285559997988005430966275972886535172961856550594832198586330396063730696757113945784137596907804405545904128498842700933200436413767406610574742308132331490731395908674056493539074837827261434575392438230596468131960028128660916597937893587527165054555983580363860515728010258988469256862091498608145183661937662538627150292490975205705556884599728169464339800400313142382338080631163181345382813018716686294355073829769749275085762876724424496282941843654624734297412425425631719507976453893181723994065620535939313068486859002765593832632695833884997305213642846932221151321200068870367661789488213698852775161231261456243948901050488730107336960328393449729111281062952694567149059757702129773056262410287718356068408179232602548792058237432150929899850920535428137107566387963074771348502951359272763380917179683288088630409342226696832063379008077419564567969079296448705377930647857575131447895852246006351057200749704320946905072156609634921844423650473202578463483580128540293478072417510109487832576747485107302789977867162513099638183173101746310796165993838181405867088450975357623791459899268000831994590064676429406241379103830807127463935621200882027047063717895919782847966599984351375488201274529506351322233897600833957339668742376619770651683947700083213044572371009128477250660313291888662092253927043001674506660163307983293720354828964424602881947131581011261621921453855309611159491837992971346293424019321893054659820686955578286700679777235257803933980103924116277674098423638565057788798905956139972045359251185041009750397369858731260696050596034966941606870065058929873945808969783952161995644358751823880532907064639419234720284827012605499668699072233895666343962664830533778284912511544720629440548831572927007288745202358716740798300543463367564312982259626873506261641116844169719187954029276758736432477552318001970199710371030126383333207253483413476250331644985691146627450375981707845463168949926844964635244333161303630820942800208725066771246931974833264579417450123524574387559494972786792305284317148022088728690849390213317878961363494424115735941265054066666448536704173476165157261337984743887923937188009342968739974274437440509656185713993957184289346989685995152487721024208272698575241004284175154055248552540563493219352804491274382660250056136428231238610883637064817146561255823125447423216501454829165531040635572759418808480185335814736233642505960125045503368071113624115615961870433369155250934867627681011401738166105319873322369791555410092024617997747000264634303935567582633720466012779697266728331687635517951623328495883798128072799842852950181197035306354822456913609722360985285086305864348422860653474835876724882206334288153901469959067392726829146794715237717918788070890345620074206567674442591798414625794892467318342534095644279997829324455368317277118805799545584325099662787923382691488267602690557157063096274364936086597532739217402242399317349047952874648124087845626887346461176143993533137433206168398606787412724393261618494583814129938501363457456352682099949376960710710412613036249835189650235089462171517947222672960846553758057472577968412326755774676278667476287147411361931720630964664210309335875795140269484913012960826515272688203723934529795937180548741623909008622171782100181574616728473492964715711166862388657303701235361845289638546671047965349211355233765177900076309684954086712173738043679387466137147600032173661929686602686595038896051205173867730299068820467641579233629848576597844030642338121636724880665260255263351739951678024296394570600167810961035233072285749956156016199984776713374449271916215750985186237587629753811549200155500327931157780927601524050249536881772440677170298454911235339311280375159978551028563592511191979028234951799965651368069328799147108696726391269577707922258475628548661373724569251728883770054523621855044963496007710087583965367098769522282483376813989003656826972127849465244077119726950427189420536681670066307908501859280810682403555917826327727840102896756969348740669718761213748850291633673497770625269503856805528589709807149749146339225044060596830316426504912128432206279241061237644463375360710508571554826905894449042885612745243220576137632102360746969820880371068258142902117818005973902459744025248583509707477643241376625273417666602207394835826327684658212004743000877097232566509314765192701019145833499342851656427714335201508657716737417621610704429394461021942918190200684850918667551471632006784372893762437599078022795970234599519202918735247333790474716785324685189125396446666812948068785636167890421436605522790938298144351573824243457428375307256592260638458911695880916404819943116047338970461092031888236464178109670243321851650657143442998788876111747925414479515857607122469905666403886569153786388053279250914706752451538697880791694319726636994071670851339211602570143792538138990756133736385097592079730320202692164961258471857497375755882312560424595735664038612074007235965275367882258021448915319747370320092321676915407739846198846525422855968758136817311273728179641531850738219318887904457562188927251524461676150754437389380294363945942998329790424881876572423894179831182811148934050112502622210441597763791923407137054446153673747697332531738991146597476209347790335003792774104393158079723943569089673984441965938122548876185055274005682573254470550710161826449592082465313080635085793989543925131080299444547031423002816948280841817022079154764737332158254034483174644382937719745069551182389912805763345622946286249643013538425483104910993679054290862704053491216204428678371248816317359246576140480437012135243319376030158206409927745725710802355967518719500777256517283966266788628892983646224387661756508929730483076181084624774519219237228859216017564143174071397267401567366358288532808517686286454434729822004353394959392959887405595526277404963773355349388014600007109669026177802884389323881644713731151705016792659848249497400256397531541648060841523742160702021792148459206525549355706992980348797876572656591502683717870145507654333351585829666559673656000403277924982094044644470775724225785731622093302611368066628364398834189114919010776005179921875785571026325144982416074767419778860959121870868901209754998467102171670042892811466302560173404118388000352311155493109249320037285671435399807491111297109149661156048871322059776268229503690394295700712947298345184416919844304413107777649835331419355770338928366979149256538885285262858171217294305555017449004586810821927275666612671308977168004273359624843944526218352553849184423350255255278967376463988128386951326700302857746363571482587358759605504226619575921376159880568099996904668135606231775823792802557096515093767253987048215625322214400932583079798799269906022882155572566075880598908389590457660402465057507891848310670701528926153969338007081439981214751486686288171050813725011976608611370653482510619911225706430905479200410319009486742811133745625502015264423777127560162138642668807515532351415810520993681998216280827020469224983448293303429938586940446235465278636853711064665330720591517708090466318685631353293908571559275821559802047305630193570513933521900522592342975752927488551869824752686552271936357901129080595808594000653071257613244264033057944049355077836943459092571335666973801724568658915022386777360580540385029972513653895506790902486868641667870017625815807754682848772937682746464777643152807022841724814055698948162040173971801805156308659152753122706776637480109197317098524005360983184288582157365383752093957247555497327819262756794134889388214019465942960897194194124288879453943938215226047025529409911283480155401215499764213573122242669202029702022545986314162915526167450069354918972685632430104030713432382243746694600741053318418970560757382166292765557676638504896149932829557372639127424592399651070302999399365319509012938736135046494488881099687760709481639843104588299576119544082364332889688562745562540492134033442978597394642705347518231374923246185684114604321324826397949768947534869313443290067807301606263630857573291434590173325289266393845579204558246501907308083637982393762791709525904785534011399611760346737419008026018453321255048703579819457490336284349843330230951474812139489620773057535199303052555849120002689239035805947859774027668305644068370187542461890339705178189677214527174844461108870563178502336422187762841202896483695125202608339615344571218961188592634982087028953045318364393801287100360596305182922764461165405751095607259883122859001954868249969924564868009315494087057810223020764853238153578623278431934525778870181861330595624798791261047839473150716484181752348733505025328895052490657892898134136921310573222790252166851587772619944447234132853529184975434873087633424693326605030506343792878594941260875954929262861272296463137512514493101608907881390291390363916415769989120901829075407768609337504164246503845300491092963830956282631655842484483893428370966408651720694212948413970608634628924607624455526528449122432576600230122364644277733957837845921116518945630231788213600064883890291604576221248539124878557622420904384058458458505345090671148640974951131628827843510658882139797224743988687687795418723814745902388568283305311576081483320742417734056163237014924118328938056473731173614158049327218582220777395725220187743997652275966307766479077659200734164964398840576114340481793849400490048858236116883723910257855328897756040834718580049294363331910230970196604038597592210908156398714143173706028466409806164272635276589093636824644982533754344994598690095150750762088336951913024749023664689049273661697353740984679295394860093069707920956123071986283352368822731531496046147032351378396155548216521723229213436822814275083266328310742619458270014234235717324347376608974048989157638082401567488183429663837035567738822502272602429219576290619610533753155752296455056962473246397932802523736482982065820051450243539158298416048734612065550029727691909791086812349265865668973262258313815201998166744226231229473933370564480040810609510008501298702368776289687982268579956061237166260004732078314774124219904996256677733107135951306390507653966822004405912366396860164623330563002806914968465205561920058123485566271777991438920697730254837665389133225015013627493403888704044118836888138608506345716379614289959242334693268166402901746678050895926926293196765495262683805548955536600821269287709288040952567236367422959682919612337612971645948683533177578975008465208092637800787772008048250439816789172966617490064672549069727103519330283928679636815468022078004010390694794021094402860705896199734133848922123034829601150629168442353181030918559150261581439460735767904785851840879032457498939073881316817357493411997830495479412593091264462840452492474479583271816914964669063941341666239616058936435438331201590487535577590695139592222994257309437428578928119513316373612190369079237578966386270031603330840426052939599813667257908928809917275551620645673928570689549084924174990574488580658941099203846815070364005887444830380257533727696031937347244105452811086088199765751756023465294129085889611258156740643471310687281484398069538138794817167079938675523469069747147085855614576131094435305793006005425957695436054109572574382742799500132561750094609288716822898318533243126544602382119734691224558034939533926531513609333139597960774640546320464737233511680642331142656351237347554705693208534880566971317065169951778570882724852838248607309070748085608087483012941202383993189791018411726597023750850799287347061166353873821266063320648659363972256900467815817727927097060055206005012749710935652536587819464526733889486264049715575022037636945306180986590500829674884642201184696470142921034700787048157171381810009882035959229713063953673047422070856958980805964224826401692013604160045160705449840172266012490095354868011327177785865226909592986802482311861937322405662992331085232954682439207417809686882416623314793486417854040495775233604146906511975991964200608767284560088311515430966155099253352286644574082340155916351558969398909306509825126017423890583112580876518350709084635829893723456452676615441839551753906340863583815353592945892713618821734301076498219667969829855913555965725146941590359812593197141130559975875339502649672587433682760211894205385782056053683164623074101773819819007410032921075528502549408271870301382761239923478131110477359144519762457890636324821406711292610605102893850043706737710315481329473299666711992270450239900559167387245206505971556837873676138609572575578518882279245490437268657828342542922386721460210257309894708701268842883857093582232466936023270318213569347061082096591426371131101112318649394374270331173829008382443830667712777965513812048597013342998846948525962246999750062795862744185511583098575547532470502474607871507648887497993780661292522564340080594188806036873126583494680619084398065845912730414099087249978304733332874259014761457756215494202477764533678071183795698284062268127631162506649950589264470934790776047849389331658813312632297077212920916796611528056204756690323314865780374114699525311548140942567048618840866547636888061001745889949074719338762284101156979298796336029275584167329481988378809188521471121700414561764651500857869901697437152101744854652548388632453935641709375342613766456985534063909357420501680024863824811087018444088340952085907256059029826058226857019774684997541773869775776266779253451348434523102833937221653209959691933179517187194760535950574215826018586510181807131619316445832115880893341919878646159993867210646480454310253654082583579726325803554771443822388214314215523151368979789205317419546642131774541481988956098171752079519529407288409964975361511638399272738667433977818562738200584878021509213374169341520272249968316247792333709382114316900147340852824828621219305955044897708392237936811596987810022596737988502326408235993142485942188277522051031347091464121003795729915425179259417296621610233583730407924880125801451402739121400536142934554352250401023113305081218974295988441247087108229070839349265147599572400376467771377925699486666168827966123872873002117005320576650083356038815914638337453789891236897675886063198641001762577175377665729204198003639534313225045647391261274213948825151307967565152277132817380349726097739540012897590825114444895751393451486287178410314733649271465517598369916329707105203448728101864333477885102587847353352683349090903561059082622642528516354250251883780517342695286284155477554092687526455096443866490553036572126330943677390838873340128930827145732379410428444628289713341735286218961251800034330770554776274869920711836936542332967624969516605829610825374711344688636076950629926992465693172614323883681345765072748621651493243405664717571563102210424126608640116606103047839793379423955341866329004909083462490729728615982875869404284643090321123580617679335661309352250720288266207459791966588975296131772422215971677047948823625282017935107838452804070880258003940464690553014270232674962002838298500232851644835516557931435531931986957580841981311989195254579732766171293462317289345684013789571062306459677698980850637016173184365012897428402604287830770935206395213257023208118805502027042744884993934290283985447640996170776867782132382668959911781990118177064652662156380281213033912645196647324244564063382101057838557349441721294350699343046557629095925588551337102614656394680753175597784315640729251316554774693149805561166116823012015305301673270424382638387092901425697704973171533546964686523799852186854409946091126895716417834343386513386611584459828937954030775095807644919988960000341845467563531749672705350216055365172371063509242620396177017042704236061120278456402086985133667599003320833321783488457135356219777027650445764374207164061900324356473564031908936337978131841379356058589181721834771999613230248608845491735850405965849441228648246336800459885936721873970247083367871147957491216597190934150538530015298774990274547824851651285008791535348261483252848873047790833791044408471146916509308124915542408086341336166414640909595394918966399065274154254635047384882789567704494519184475631347859469634323246330738099688504913472808676518333860938176726809325329031863150646108934595245793294577526938016706232731227909987265920509291721523966575874713963562575620768892715955405030919754705667747243563287495481709710341513956108536141090731743980255600108994775287195514249016949754772153911876430797127803435878234995003674645767976035033911437436205565208665909783835383765022660995900076220681127033680434062426047945221388527486866896112440985199988192529397549437411173229599450242993223236977515383909079483512153625985244275946303380800955306557702213206389884601325264024918804830544824010157086558527869467028037165456146390084394401415989157996180341401431261603355721246486531178810427383475363353249248898531393982848445450715380819382401838270402156684162748361885917366878264348391016785523860800740245399013470670762561887864838357111079231450545047320461618629311122683635834770904170737790121001820970805233531693875976406901526162146695527012260804399344834258104172613796514992189590182500365078987321798277122697439555124199511498085521385506323508104050214576257819292861274163308762420139748133291398155830601125048805879381480036938441526533162048408829447385073113750404444810523553364860227607122653803085855209972461230606162252152465440664551343383576010655981854376097433924144208122250524076293074456446943980248395017736907037841264595438846058865676470881809265855569160451158973969423937662413453595777758031413241973101852734504010836912903115633440544383496791076214138234071821302523999002191844159858233672517606735419578534874358302019144869374461791761377513510429410867041176756023729413434156397071569371675047463301675363553846349134145979115983274003319136331957066038871858309064321513320766632530531223222611390024193145747290236580293693195235985470621562569035617103732838248189085867281680361983646063836095230489436963351322028807028554354523114910656673559340237394181941471900699706773373018142849067155556701979187983825998534648362914314772159814958691309710778059419921567708691927896806405298550041294495107966666740722751664419950721481530831594529504387695390380967364319721676510465615962985736670051427713740009764725145209749239570071428495940795985760100437485913613137257051242866311020913270390141806939976533675167915267120158784789895004229579551213046491751269480620181322750565172129019383733692781841663635965676303418007906718620211164794871633055536112033269428148282942239426942541169930045712715722136800471238554774896321442300094041089341270046001520089033327783892385442471750620532896938756297932561130134078015751828388567586711422281680046452587221278306837418645228151146324384394632000946941421192212870334366211703187035484291925072609801972987610403504685758676610361474168589174686820850760837019318528398698783475595154371084109904356681194764618661368024300633669341799683667338262435350313332648138086785966145213968174676062617525995294845085373285860854065743895426125458854584548193175982509913011065590805193884451705690817096611737724279837373656086254610070822965285023539991815593094173692621942259899473385268379061069284335717859175957335005970164894494911372196059153737887996783889007419163014359832103446973478895726881697258773429058031266971709346143323950712670815147924317350471420786348716182646002143173911318494635337571121553837621584569691904454169251709605754704390044660918889881229231990097640255563830039751793414783852743610683387780125004246612733308951511873656695046604513992580420489639706444442913723294915383463799779642778357702446555793211376168186516933618587988011601690644150283355627480248431057727548917912447114489506784056748520425833210675108517322871730100450079635903050732771579692418994243458761028401113425069225021628518844487474519275604725175064956385493186999947849556878319945832191724072664710641322963021516713712015688712293804669132964721958544960168475074898275037427797337861706527677851494324382750808991429940637499406806271693974308342666534933210673860668002838800915488076706098575611908663204518342234422986355336873865477804204763061396472626748320774709952771181717362910144793320141456580149065570107704765260736845059621968008323393378329113777256556667979766274599316789658233439692189100759246015726401026113127383817483680023314629462376373182808530462497971771379568887246729092169665864026551105275045382913898905648660175138181742230965379274128861383073815592811411252805066186095938869093089699777842002545583293968334311633563412493779601631519770016911328491654572012189328261299108141253800986242509535767624772874693738000707242382337280557176694979325018410344307493911658240480798871622471912703505421891255445159564306876946825636739778682363524004142466184128475876630856820391977839648917877938130805791040702945305142522329851839949344740174238220429253057954380436521413838173122695101311824691861703121015450144836367985684170393959806466194234230689198633807853325757976848366008564235302459791708582716323453497596406436362282740459045262718139704580845749604759302702959272138237990139299745693769964006140227722753857816712221806375645841048464442708557031817098091798683790526646074963543055836502648338416885228497982524422096297366703965735229124469996174794252103754428209952478411805424385656372713013651226104618665422574548380566326431480343195901050878529094375481142520350920739944289131937260410258183462359133228731124994524631473685701894006155385435994403477331547587620445734065583128845223681971994859314674119397235997230609050288956395366770924533183053470218023138920924576255345486136747608801281722118647760183225206859708289824049716094497021738883584810537747152956910621807071509532083892921861096873239747017736717808794671498136146093659074428041429938378599545263285619977899291937102915782222850508622434836091934202198327137583220821979141533038357527501265387513605918115611149747336619470599119041987905041094739703639835935235000297869019701092703672767334697987374535745718873884715582318795735376579092483023086859742153851257477672304909425212028917482203991134082690410519047755981439506148144901878658224622253547234866183134430906567991341547003178581423493898478649716467407739873901180770823622940898410253832417708572717483757588579954021180145781870720344420465464306861706668967803615371476091177956866552813868102373110766798186114909322824937735008868342900349983167422799826396256939959179510425353332662722572727841446225530372185891627768770294501850501996076562371040313459924223489093445772281936233960963771645834892385576886018259138197571827731924574205997136955450502490049878870340914530998210171825189367660902903260461920926930887502624024327585185884587811803026674505026909734418351788391810714404762760175130049745522838414672327899954991140380777572989816131324597877300091269607215367884203304300085236020033992569445620906516818111018982277469284844156895670205253843979607147188928915218591167726646729866921856652257501370868595956664843037540882062225204944472424572156273129799952514421490902697892133155940310731407837680287678892647588277571037266062229291063314176050916857945083913754662750480028139674948885372829128261974359578727055297739476323904897087279057200529430770445800395482634769588484764241595769729815216682827280317786814482674617149629052777258528781767399796485417150016758762509325866232363810907775509455556159310150535199590218729720165571331189458255307831216760844293533766469277166632015161063090097955833851377113455377295510126850610465848959523116863680295375271020855102950127733979105221756395888232338750998591143825162942427621374908161095192747547900707619877800927364230429932526030417146497171903510308888899735756301975641291718117359476626618637057703678566460846785443262712963188105491132887831438653165053399825978707533190403329860505744393741752676435709908385832669667017807376980276856323164869301110517905875986011750483471276090636057542845500872659075740838527293020122629541032840636808690790910335315921747465920065418199385692980650394108925286224618377651607597382154200238032895014042230036255445193606268796812430994505505654688357144429855835387923985695687343768000316221149205745217753638221139953961647564723346507515070800314345295069150683458204143342330523231249048539327316473396883106573742564620292452734912696083121672740586863131492265389823656682119206863088908195029496682300052032841761277300437418704440286579153235530419114733426987289630177843089111071242856798445397169956605708254339607146122506954655243162044221842869415244385208099341055576220658503891464018917910562913954140055289799445035945219621299185012840813828290123790124881932652583114097044820805157284819337991112893252468763323217249259772528605383431567140380339521015293484224031961781028151428821767253999136870306615506118092785317158709313302591499826439223699152989516410488047826400977287115550736785375462253048911081123574219071214677298146609883331748254725622776549483657787465635142812271817384680048919273651257298732461602687727321193070853961918523026180535404064261403063139572651904938602021124686027219433197000998254452824699098971602367995347282282771972977798764213417114361431500657700678853956998330723890267904392558440491064427591126479990912255013377512141955255608919144914305767924848249190989242256391047264140733828885492846679155059610104879129658841562293773141999283029000183333818274103888203442695984975947806858324476641886095527235595787238666080283910400195846044849109399006506575524262193726016707898589748230976181813375667491499717570594512568757669280900839802810780583876532323088922463456522645739025707816123547212356425797970646667189464015799115343483253966603822493575941950901631076314328209266911717502501285491757733720941375584034528927765442257933037146223146474855015685267936935978300104008056130938529562679340294915233130190817223298525200315362507196118829558344962738123681294960075909922991208593316923648218932622689603838528993962127776837226070158312718382558519829207546323644970116353205543069168439435678372863527582238259784824387334732153682202838189625852489331060218744077429003034508902419759595308898954495344470557213642745349886557354500597084241398129140735269467684388799481300796415800065515137795721690182174587140458802287762770220476049386153861077775496483765976518631428998575190381146489098514135824242080123677416713906426521580868032225937710837796109473745927196088288773725210700257382156559559208726525576958994229099458719333070338065481056132965644492161452842358153208980742492285637733519389200451223652999382438867329955102084683155346851377300251996138720594811563623814214902828936859083998782221862712191617495599097903131809876763099005233397140894825227459244359452832084158950129521750227384381458789855666263387052692182376678892932039140842967618406809154797643549324677518274358388737926570918159368817849439817459530417608746884260766397417826610324630763593203962305691771963394810581065083847300617773725855387580550868114979404080946563395432319623016438726582556333575485926967704979245276862261422911490132451635667779820572011436089164313370648156089549741673184007394236997595654587106229456182124136560594386882591317507324215831404384332715265386364739049384335613100254493881998538190751818606009145281287626352278532657090255934787116685799285334733020859821997701310569921808962157435582485835212683016422843948055383729501792516339854706817911156690978313730961347541974772368466962633821472653993461099857927020404528539051291966762574367446602661289841222789175207316157015681461053110836134050880833308219349226779173627937649515529070602513928791969222766257740391715007404988754734079046820710978025897264843191034543473299901349319522357007890982000380845819178566788004547095181014148012118163901522689116002611963167613149832342090312358424615907190376292234899165992910270966809000894191958515514027909935985292714339173522421785483294261910769782026673329037341265179524748444290359651915615727427520740084799033876333063822651746491167786346717249600598371150921208733095328565895604315509867680052212730644062673427910892232266611328417146852529273585653326745809169320457459412251125717808940020202881984767515722319424995750876168622570740762829709704532767329604271627238093107539748590634338873612270013192814125671342473633370563515960898714620460201857924369115599727771174013369552885768520235559494461787602966952994817195904958063928721948569806131242502863366946458174309183298127008184370106932883637346874912393836378177765896500584205739968741935540292227816570543300766320648243142366123291296585160731986658821266234499435599255269967723808711819811288803460603450975062187683494142527073905987396972708219309258523777473314944917277994987800559779274400135935523602172367119110708247119559730712871160091236598698032783513516807242543945647786021166454221998884881373013575199735524316228321044970850783074294913222560366901451523366806486896872209384598074887030845572692521962495873020697722389678739151043841542200744128213630720330874434578918747020552210636038102518350044617234571048049830028478527806346023027287115808710875939121759478597984374237024690149671852707242599984981334941356335550580226829708849185539993034875670121486381526686936181590261580915022126941544738023178844284583309620535375098795399524728550033791883734786897739209311642724617721884311223600091168312232228044832600279973395386431761231348192830781037246423227746643668823459485774568361816184624084660998584495161094468799529315797083512104617740811590245533507489678214330901055777465498252543566407261736424724097709267011226296633649867589238143278909099835346600637350149829415656692484546572868805594727293682565419281354606038521658499707467634933620201076773990314527360944015095872848828487087404236528353455391527941855217005486016200534553246266306415084973605771899921796414168233587954435401597573358475172666980694339303312943458350386155166085023066429372682277674400444064116045862343197599850021576197371942960062828578925591492611047736900369573417179457945796332114966327422237298748524412630011540872001375992445980264383496723758921978581900915342669802566131886525537391241279166041099568689475287250398143749656949294088108642978426561007855984800415579248321937497661637560204450330032387191466516396608189550979867182936189475312777955236777526843476447820108053452135381234026888348425821868365715501420048437843816787029550973626652937005341742730335875501702750507770335681485768656973319149783487500226071420612711945849299502555243229774278838208379788356678333711537866674403278714322002191050597723989378549881596214699434953487000538070700281537833716048628247503625657083483169500939403360878004133223385562151073113782086631554416817712154651320975493318289469008314985031956629877899302201200432562385464881805353756948409358453663876292273191213723245813501985094106100994551795982874090421641007338812705094932285159554218262911428837497172491041419153418701143533115543138568201864195094713993437899041897020426160792844960934958578335335414735577124557326025847496565014215102898480011433902705264247544753693403214509501841965313936646213829655471415022221728722964040063119860155879151197609708166762661363296020982471848632284704617483759385750925191854819897598231399894032765081814904461211281899409315730133922150983217035258425129031442189035306282617367019360451748945223564725032576928611121626501875821492279971087380098343937217113205670030425401309373581011152300895212658374662145821423112807236691478231764856723133566872980798186754337534105682831669252586933665826075038289939340204293238946529740144660120759908229812020171427623357556457322481812470642928904877436377228106060049124984011070798849250004992517724213091969590178420181394339101689828577139236498110345709999422012908612563342282987910336162673214664582469474438345820158147432411738918541058386615862126224302563302705198639078742267658162872163401984933933641379561039875500878173049281210676288907613802297150253624496024256338893059164783542115854683245884226194081088917059409087537762596984171727422939122438398501254564248229589804673223391716745487848496073848315974058692928542657474382942527890645239371513851814784426381793369853677439956803842577971796247650127135654351484994637458591179302376665318583018610255389841989127634186272427945345917239023807583972790636797577710986911987660791335949484809699509637002846293597581693920914583084816467386090087689902103132644459541309850482931504044752365567539636507233109578209611241916240980126440409344445402590086231251068415302206188838415867576169759045663272695675573299312157036811805093923449809666376531100837751266070421457055825580021215989123371592230809136967326700665053203595609911226852851614694892885413650577028968969433024753429059622545584258930315940646466559538028923412028381331093426933329233124716954835700701392718536005573094733187313485029120035807500267518785822111163195760050064270379194988777984578023957776004161290653531297034781998639873871733974107862768362975246203219651224942354172355360442839812439720075781817433951980615955277595026889312879707911030674331099432614262884850934887463523290829188369020628443581320290748387932765949982110205675471424450712565982726200164927641865190973410728431270961022022257959121432485454130381050438351441487125109251572566402899352894813755891188460025842481985251568362542937619150914387476457327754866905566308723784048067805878944400755430140606778239242406908589058368003588514289411170064028490345567735724293028325202767359566819534033965072521852237557630840513186930210984306051341361480406812350069807472821769326456868669710308809748279509992033387229805023693641176950191640573005386128914126697629870390888048154814963120739568068159493107740462305283649381464955986315124828301036814877818800070936189543522238186897696285988885566116024796214259908707268424923256057851104735830691290959455583414535826767143782038707073480324762170978549284019686594641069693367736233675194531339688405217147887490973715471160514491254975190416963062005059823073183579084420172523340513121097408640669977464393279851197943361017837624178292176298700514709629453334814748880506379878216051740195641028293091813545878924332662995284534924027203706105802812181899240476496332519172078668603926209963088771194267804078263219129354296673414799970413948182846034324551802311029467316919031139269866512804269262825392434616253273084278020170685311239138788051971325799929190565713042139084170982448326017025106140759690326602387896390940802975296179963785873386579445464904996731652320182119291629288033920608577402324532749167871239936059823774222153549371742256213301988821035343565883329304661160171624586085953376029247488745127513218861985679715624139450663771159817840164849423334746371507423325071408439906597131417158556282649300037429776605549942465881921237731209712875602490358289584026823589322050574204632048330447685279929865172575115422749510440656801637158647793233174303101780426038995074797046138888034481320407131650136854782008498316119347531719208507860778647898522528446692281829573932788257738168717542924261120663133519790350246427679265077537456643933073399853200475330184033282549607844875663999439905926571493189357335118054164350147560242213258232695781836428930564524547078305024035479344861522289178806929756362798927285538909221156429810445857724354584142367890667354229839902259584405106464561079415478611687880107406841319633773681489586383606330498243677438823880040279148095316539530339912955061417960692276974779569698208762874227080283571354416007337595233405257900138033436468019557322333748770149005661155942686270908007012431868632218630673959958609000168080821059018003016271697502010379076165112763551569873942425326111111814728578111017583345642331531664581157625256036780731091187686315965821241120763968970746976241506684826980900970538114145025407557083369465419807304412497266845264930070256948339493943760124974159016393393639662147918691919015446105574283774716634421884635913190515585760361846669836469439991782582743194226762099690377404724127650958052787104950330926081291797265288788314477837538010873539983224778535597002321509439864530203954961890620136806984955621956057784995987270175160491314586245170600736542476411078579257180090905129503356745378833134014417359405994314601104884616881922301530698147252021374747529292787487434504034990933472634847634064099620745738814831966665421314950165535238918156415841968077380352366126662407601660518062606368259426107826718980915750100617925738647014291500052951767389737291743258339460527711090120871458622986812332272699751056765905587836324915434246493347791552777725200105366853048441238005287269848173440347950002593361669798868511631485362056248879312237565160147991379506058000912595459007629788470562433807063132850700338608458909135687814348231702094882162262035940897809799991037915948472514183876653701681776370864462900221096629731281323719981028022054263690901570863004486419743715801632823024150042285967945473481137438448643927685573115776531839042708875240634847127083441951984925307098804057304856510069809752585598939876464845012589003274588110396521639674405118482164256667862825015620983762211626379868898408722609048382924844147975368914204937620056979049846446628030461347174148419115399821244232640844420989282651221635156455893060786631110599061312751367714075327676935796684940704004464373187423847831354190434985923824918906285938899629105770373592339097447607388955854378738378011120155497936943650349076435560466347123313146142200680850315245803013664493351878152249135353043743566962541369251426417017107151163952907858162006001865809390486957105504135492238655261964579767304347333896706270752321950095014936709168799692930917665155959242105088418927145746263271900958204626504635589400436296216289162828153360674631160507600316317817898214165629048649562007571974899558417706052457089197589256514884195460579289564485026542788594473474004637198444300709759365828643485184437209534331583511143748258290419885103383542782490058715553199956426919827693900929640935668671305773573972677880183857779269528341118695305010944977133022700764623036251433086148541946139091292404492183130276307809171493495934525190914240427677131142268439446247339861563854739777525050352496625722204271477359101234572363280508875273320759716637811605896318838721309522534285871870917984870173510883215646860692679390529774584229025880982583996202301110305116149483867826973738068719119329071413632243612097175117454298327026814542221505989489112351685240696803631297649898233467899705697426097334912675490854003738471032555320527322103751223444932890152778581474681464649859833836092399213300905140478589849020831153488177711662567326244181095750365954826139951854322065995361254433455311096317883291685849406115861861329852263336731839094005576876152796472833498754284700279117059470196494658848136247908525941912224893981736461281478552198056942059040452396172883639207940362752281309189954435659991800907279938478000475271161667431599201376192179867510945675467485586100221939254923886946007256711243900093858881288085255696370852249013952623783467375328910367165537432697815674308976685566552771775462514382939934103149327890100676075891390577418187210267257146753167525255604206276087015306218880458988625285604437506041501120963599933680281095789669903050907822600631252872765472452108210867112234836734376419125830881018530381289820056231191734141242789576142104536884651494213702025361380614310716327060511169281031041897789959918312107000727620934648046167150777117360442184550653177222325592208200334609035959689237471622673591102310671322207849986715624755238673685160496927682220788033443280915816592784876204942926441878319599920586781346154549654656998167617648713741200991881751725209035676952960981873226612113756864417300497755838031860378111159734822190148307466987478308067288104309687713631390243371013397869096564562252381708307118963201136038321934451493572569711989331423581935066765945701152355742246075377425750262610555594506767018842784739435351578930294277673897445298988888249817151151005389485657314649929639894196301321088743067625940310042735177677275346908919379801820624654833050048234056091903419613292571943631873724439462054500587671659478165000322868058906549378759389777151180077563841187874275118268790043933241254206925011454627789752126234390926722592193217634010004838200333741426675390649352152131675911249939366512292358967024389519602012563116408578887718695905618284160054354247013535311554265922112842112718169023753273128176991004974370348010368249010002848103824076276463445481832836373297274470838906561684532486862782874643779545090737968444071985095180923768706109603730483795483138522320275359231893720710145119470056419924583618281983591448634108841132202181386900078283161012874120702652461369131731252790840402735007427895788458010806122225756613281495662758425138352291132859648299158806665649666328351361149910550954570587779893013632798701079237499053008376408462013507899335264703427185662127954817467571910621614474911766446528885673900868581694489429854109071547031351421214230125721715680015853191577514839762431934617104865483186324050509730529475381980483121094553125991668598951678521072507621452237248549432800606383696094231011513706473422077501942212838127361312607939150282413496251095587330476143572093738217214310786007704421354081867703573319309305667297400997554571150594305580900076097448479616975961930372880613312303656361732874647899789812415980901524285419925939116681262085613470446953668781669469780102354983606743527647142276247000416020709066428371992115011614012731095278010009173342790620938399903004216355550320442066281692084382617384690204372342785127272360900653899952394841995929654305733480139099980035871235874060775196274297048332804890197328212810057446304854175798502067268120732577052325806717688868715175888429016899118608482550157772095507880913827583444790472007439466552035034088047178735430993653181463139001563868215227182865473421342545657259787715627317492177099433522459374686176378417828150532074150736830336111995483066294963249479842630554099077406999487118024412725611826964749564192423162617918731537403260130598898072404238528174128657835767048886160752935248688679961094755576235447306424126661014812392272127474136108351935822102605642672472489262437613533431438310100997609072671598392145790775410365362526691414490190373691117916845506946707995023412850239419465100196754058460634910914586639006145658560258896185973908947105379817344844390285340106979526205012622015185228779166671788738559270160445470815769302321680677474604038353466949712971282109392201147854167174471571893682003158477766057746154296915171318361894117880874129030753488974381041398128431875579362476439906983198980797212572131761678596876429224585959747707880959400411059976683732166138266474978555099819791358674004048356567749970772531432969555742067857628337591536437349003615400518522937761860795963080861093135189828715171231716747966840470938205774277319781505537049198607515446873256577670520439150754532383881012292952711554077514975992776675754142549312369656632767870822783373344781561994281960983587297486774532125101652280740656751421842646217209586878315200477412054652483747183164603251708653319261782801340138282159695442088098196445618323345640767655722699376700895380237785526137233999010682380428173375397239313238381207907235244960140791507761103470502477791539650921279280382208209618774546783726747021492208476386653059303920540667624131239024768141618756516390445224580721257561229892362252094651612733055570959423062346750117633121321436981721833199690214713755035367725735501247055268569692325620820172144957327997757301240185872713348420317993664113968997508582821803972171106271005196655270221955163837049039426416758352343374179515822208626556283136481612895690162806784635890591968932602233019231714785110361130383847867561767501086002162906953256728334358669285492009169989981322852100639574215911023537537713809763122344260687354648182045096281042322316753644195753059976269118462500305717267531225188889906007820587115450632390277424491187723696119327395828124943886635824369421412328576261088113599446207434959076714970394462699766287010411823060961781006945065327587057067650315358275853300220684285422741509985550689631013487055796699090154622441913268650778126311994118712080260598865538592785724902479214073624103502122082765385969313076745313162919630701151259696913425821610135520814306739397293106715071622961851590121034853462780083973731438826116282764496482906884271567519551675076975018936138402771813251774087496910530864488786060658962905970822170663986172889420237568576846305542250338316062999584930200172739944854035057986458892758757396089407772201880207780514902309173433680325835397632917616740461986659256253095877272249498259331469818397579835913536452944800174753294648957422661773196189864654082446814851464579077428028500141718643659603849406596685084558224224609068962912730091342667385654365192754048756704587870303864910806027445878516133039605787436772976426356966121994581391809321350800258188556072074501401689527632389042842634732074955709538681913585363699469090421824247863367298609263560853442338225340514102520559856975556493536058537375111368817266289004720279914125884275866363983999039343297091878332613410917800428490955941964836853202947464079481282989186841052981043449974213532653515904322974743558932265837563753592518374186230809781627549687191481212639972739550476935008276327294536550241850255270332173058902329395140642825905387425509072390434642887437365190952086762932146225725723216657514846743735801650250832082453095721918236982061092302755817807290324294018143994342321893957362334724837565314616217876869222936918226416213894744824655192782504119681031435848596742260939884532605605646065676956505350449105170996048099073860882285290258707984798242908465843781159053133002293431979900467476386918639927060488102950802174581952855817656854421290644342714890840889643772477460141350222158808233422662938047276647467772051073942992815963817870014194393051293385977372117553405321821950658760012946144585804898659526746349926648226184462913036820023769446023250211003306446105922759977782329646097032733091241359053799882604151416657812916983684665972788612928116721879373257516054996932487865482073849024591511968378858268694537320037811167720135367034930229930924479117929127544563321559719999597225088423843253255392459970085338693551800032805645615708332072368948617204347770386479673794777698608266738394841639372570330922902086315516945550135379183129529597968932373669009995006744028820275418372487495020729954029731085771607603217014313009383157161696513140461333526414647415330829726940876349033959759269176596614555043665178685434354567719060869439271630432230545105691026744005535227400222048651377842005027328145424180855438053321638910542864058729257999303059017769185724401741140502370671928836100572148102738598353472873957909119088217643558975543329148945488420009295276203854271860676607618443090066024363334075960332757904101706744529371870789413035578669237845805193123927941354627240586102090088580969508232938446053571296061416353391069015103106949077196208963970606676066152511864967458384221169623618459292951117195504770333313508021162519592191043940495243538902259697442204440908031159676170830011454889477225150763267173032308277476944861258375821076027668239937436861200010257491154345889278420890855907467981556552568219942598759748955833438021720822681596533079811051075477744922656110567590289476335825905044508872309436147277466805939282887605602862885366157507877827065768006178461400595159585835573652778433768858457720313740730958663523749442412188407406819845024923455619776259092357457685218912746955718175589021036528330216715062894759369964474323820249675605226990450545898712375031286704181522415672531963160294760307573022365062153501019360379075151465546479022725780017250546337083620375078888521027237733176926401694875828939880613221243924340211240882335380302252725969704812883650763505076606126100381077783227126430240578751598248572991532899496607887437943913727016559144236917685829729247795178047881648204097175711168608603466890010285437639095125191688004717260135029151901758973134085828555601177385190868066778968692670575983666422332036060767777813858106373334743998250612318055615571622404842374213805718226586482819786322880914234577785925228367529256368176270890223357996012200937426277901565147974515150201961778016331673856851331457684917686753693975336377505466875706923366685731623239055958928182086949567311807844599434665443783504887167359096527258902331507771251946902433458927669819053036262097712319150563049608651188377834730168345788036468432575303704370930511042384232224631238534281804384068385520169341560783365059640318675130017970786704410011897655221766045128999363023118292647147353226270075550566972472982022159173970702466435050672378260894892999777723563941855822562818535744634916092189772868903858573240148044511633791159558262260535619351968973961727702676614646337691397897842857862722966626202017205787815240722620613080872855877630593677949618932937249868290502101779919608629506379306671679486331586837840298768927885233804023451558786600444522408785085333954756222658155804979571096229695931508705855474288289889045619619431944367534554954295529423398629181153624611769004726849914412774265073527251411309770597249025076549812877741290536130484932468996952246689524799505226167470144218826108597805931779728472430563602646099977657402907381143097870811141482827399212019267729795998334225778956824405755999949794566815540288812063653459148158885667318416631900527953899587353376479169777674943962546508184505353110838920731244344486116748738580245296079475004177648417862168618745083306671172596369104238700038611097990521430293069452160213899371365750111552723549034052195246494746016019651432499055495233201923936736638119216852440313086486122094385565789465655855306063535762585375396729728332606629131370623893227599460093833872345778133364400267963137614223427042858182098876303554488628829074162893255720630637159960621508706907645445409297433137172797669941266617781672244310498774046421234084536543629561405819532985983185731646624872880621384990168370206721523865577790628182878897548629685425560212263493602577564373459025577308207418952208812947774538036046497054342243423606179969829562989104918958221703151403372915548220835743510392392183576482731694168903410304878888813142055941000138208698108009303473038852549877534556424261066374709060566874614461131219434922075228687368289257193096596783864120729022175829430682375050296384425116176572052590952387476743255299685069199300985789689353603873050206361861894626499027331095531163052542228523631143017848662332844634737521380125506563776209514423234852559465679617080826043551297672146547552320824455422076465998401193623196299623815486833539362628934286393907400941091445410071932338538020084007098766186956977225503527522389529189664145167663094666589624828741988689965761336982653525645128817843062507456349936900745476665045393831654884692699086130176760092453853307523350011551828101256501961367535163144276483150868837338148981861800450688151486496941512222938256240057856205292339802285449356607410562075898230135964851918476331916997906343878407837284073924394035423297757428554958283173012800387708493747078478353505741623816403527391848821423594848823045789572999405889033435309427751324528310654923557646835385276871164566764853003182636049400174057384187551271405479586343629081255254417568172156830992912963644365022262006277307000878719932778612788484064423341680205757667385655571017417802412192581772357104717490873293479794520579881761990115065128615286774426818772556944980539519452021074294859954922804331794813510610557906967172227800582454215690302045874415323494424770054680227775690113986069857088651549909625397525789049467646625495423973051123919308791744588097155745170551552324654814649249275393001147739813673577077781452260351655964534492118538440302026545357756889946466178807473956829701908076457273123839747513828662129318538424629993447528930014033235188548002606652170164081723861817717976583503419908923174506441494835417798758513891698240901957039685350543967845913266280240266172288147747626955671917198827557696567433895711253507744872896589522720410961562999690739713621100858052348681975329601595265224368508453689291081084996529445737308254770199801297954654446557568157198925165530270124087920690716612883313564312479973488568107306980083867644630270047996513372087370816037027846393859916130336704513587279822296120998061283013747232292197581235834493648606139059358850909816373181215647209267922912034498585981949244014197560465244743194190974609965675259725587961466448407202652687018280464656372185229052529462562742941417170195142405302539873361541536454060262850754593832691135025546146663204021039217581262953348330189651767807419449437602653967699413584905316288527820820179849213586616964182297381643792253910629823339375824650225606498793988366928873548741419753410694494905676731980676245216513432370835352268005545874912051849695590476670124826014568994780241729495582237306850403564274691103499503611227522631212334769257653129306660254256835361242701097530569127271150219199712336564068674390898577453226298065293504764264172986505200362525203661161613965722372708767685135954169756753636972418630951357645726114863000842496807662477681548516208251570846048799764550504812166844761052870723690606974076820357221115299668777919900764374042963935235596592239270988411986760193357153107697577976388790205830657170785464040003714370047694496024305324294798497276115876711038354790391985542644804439647155552836939972313337614389428211954002897729164288706516297891873759353910138146500587332041575412623340188660168870581730903471952241929489283065846787698949803642789598658641125360166366263287217995688769506309249228508725152131505712624221119565227604097607928486235147935048534301604634205467431718557786061165909143850392379534201393677692110204631404433298482058174205974052862956085271770485467368230390948224344245056237597681558900329108217188712507457209203049389613224879234314080440618034231289988760016888449344311384717636481046023519362396622048711025327732460686396594306900170046708454502754249264541363093582288079441708016615659215143618604349559497458250486251785705721600034114598126171904125768045047710898379048733873305079194452858164990813419092092066269955663072874758506683775139427263718238725653802619526001601072189763050221612187688318658089716665114074652255079550168103402847380879638274546347583353959643303105297646739801571232804376310928387602416032070666020003024987497352659617866863606781126410359199024167856355898837828141889075699876429851491070437714465517042466002249956759226847005333360437919711610290148378402818540933912659588862828375219402494702201579716132258904962829253362934902045949953412601921062100504150875510205469682569660685845155106577873516440740845400127476760076894148458117728655687206643529745163225002447782946668158658273768543822699522848369058150629691203953424919751134228614322454611226355641892753363752496086097937761839782428862762523878502787957892921949326293555525341961004361768510900608997956413620499566151485895816653247891011985794979889715532617708739109044147990678955390404052212247318199277491135908148297116123050693117873891441609475220458312558336295877069940071321121320335919637242866547921991863691549906688969227313520964458440374776410541929548783474102902611502009935232332547700155400989734764694862246624371840447970997500017812351302570465634735248035469716276486579658968134472274665814586870589178473367151864871002678473933128475648709056372841870569154362413959854423457509950897607836210285330547057869686307433817001861099794650995094149693659923226416449415903857208151631031538633291533068084392181750961592542843519989251274243969675621121138641692851432562858504296226354308879175093011170874658034821802977445493535711994869880256538732885217280751917633236764809587493051892266257940250956908451430103717654412275662287851695375613126660383115261449204820088485358509021474703549685945084156069076731155516369929864844833664597560049205451160499980518314899157491305895300257863181001213975101747250784840337526840326399868557423519889091335556299487513197377717293947418130646239658447975670720601118883715660667016594238550948150323598969387847096557847216439328424950549020248747617215722249866702965653405502358077919667124995372428850837380881528316779037864093112189228462848820427505190051781046778115505741874299294956974018258289362196901775529534509287550997637961893835775628645035789509124540804338066306138605671522497140706773067972673630562991210357003199865471411576193291283804182921688094933321406889308644864429942569438648938912489000917616805234412423497256790812790458690322623089451270067275854924063830532235096286825545391141861834978486709021539405676879116777897614944471553053698210761355307348880482756181775281299117312978282528548347222565545275610424337347367048535663828003429382393410910776216664561803379476207856724947396051351872388729002864219246676777400626012233744705672635490001098430582863859170865334026969946017819518780305772184616060786470201476800731849633614123951111472121593664065205342081551084121640260289223105034623931694740036954097731693839946652609741062594654879906131156105918274145946521085877561512006089307039130248252399519126038210848759795060136720228154547350492110998904663220016397106977440693218264857146843804925972633741676841585047495875745162602183058850098765106556584939580352766736873169278379231337974933972744235506184510614034000403756477041266851470123078729482394158112278726613344429359657441819576124133483093043143827776272626208901786904507154215374509664278724348623000351232619911974588355273004205769954820074485070248191442824898517205730446631343705395452236515959664866437311875478670379749237806694218356038202514842143514227391195270428909414906988178931670653957939605145408081880829936418260095013565891895442464645766248004655532961268753538222583951156221388232861998456363198370942998873822861333994239670408599329153738468689300415369508905970009280866180689636611153524917677781146902297765305853781548180923953892456232001319813510683724409741438194168190295298371056951741457339614096155443277676291940865269954711165223789721455156115512265067662089541100322957442385147614900489440683761005269007959958914121577745068691396282029378589478768136710335508571358602523186617529703162240843833409781147763678883724761352425505107366269746979398234999729005878740758653101336166540583908815361270490739657844872423046962966245106821912362392831640305074751360554469604125245305089083841153657982545204511604139118563102655159361875153980916088586956070807651862185567970439038734612766062666252484369071294880988103443123989828094875120315533134801710928856686336408189804134332819490605771040620140953321653986968970780465633067177052988852966609054130775340543554306063694277824508662682501549765124383510985873124073490178511400263126123657948540771678939654199892842741863718360711741216344811034756357377561619193318897133760923485986108480506033831851399212907525685131259673914209024994072900152863424834350150390868327794617675217583211171729609546759235331352971119892611264446660238644989295541606487609970948958352145556083072291160647865205474344252267838973169751643593590716529991634716159252553080596456445455444080373651324505791045049575696738128551117144405051086673585340238833711017705843293082996108720281396332463830863009707061157570631412767476905121436146123644403958671150354235274342525714252458832870702114543548688620399320164247160023260722227994547484289944378025925714471329938164959340508399576528117703884122881622439169347545887152753540028897122671348397218265984552347677584239843106437780375332405224126545342620899572299434952750406651278755075399077446763200451771248702970988235240435500444022435315060211466008372128965284755151103460389348735222396980190251928978344745369311213103350540725762179963250703944529592794828621734419622001913592629528278371848993696783981971192811159121623276580117214086374644215338741448420973515700983448035569600997055748973971348747526652791521279802135048436886765396185055353534419709599857822560160088735129794125721012472589882402482032910975555105214053644653292551134560358919371307001128552604062897598647207518505347171036639830934890735328502873215492872831273822321435086418026111591719226193194932231062026612660146485287755250205409880750879879028299985906017352066736835946289005501401730491116498821511660049973268740830780503104398638307560202900745344051695949783697492023013448532758970526383500872871885290961278483642023683758962875678634534204841486731583474630890217284064566575013926871468086974817725966254560370347477456956957859914138075418925057010951588568588109081041514020570903608503054765418827660033335302066240086538940628649057191924111859764354935347527158437797695726390437015149892310456435929650558440148330136078491427679275822920634004072644561091917116458131493332601208956599028249945539453160421913339300908499035844195589134768622099894649408000095711702384871732265843936256090222092986941490769910448631829134239156932447053606675919907925032968530025406918429785287263307755634140819596621529051701944083621384303402423877785130971804715173259010383353778581180846803946222440119189875982007805956308322693300622306237827038216405626109764362741036194480359773193090788919151990064637055733482640223715720565704489294893581515106043023103953460597818589441814544027993774799272204602023872239954931677083258523144704084474788117674348595652844302814408860315849547552789855611178670433883563404037560910717223136339689439912810859959818918914468748525168193174557923148249183690965086903938322036017277035272348390615511908896300629401796974941326408797868582260487068182017780876685682175173956524930870593783435013851975557587506317256941818408134933087743314269405055037689790164856161487633867684388632677663461484561582206397782918979893127365037796358952676950293972899485938463360548518122281443755985522220217785102131416011502929175451743689808509815756744349684500320012484728799459679409394418921158762315312632515302371551165217359703352012712292005131120223574050264569996830790770951789824826382066296705987750217299545248148023478226999088711032614580168689588861990621726494312077748353661807549940339765362548663072560577467849992710960732559683166273884608131341743374913726603785394820592180644849188260387053920053567337181495295973989397208969233496770146641022564918846045112860965808128928173605010724770678844357134533220748467945898644113918306805699856182116659564222004317552030332252325651994363075008454581415464764194102111937118349387680978011360104063142224710220376525746768975419787626137784651262948835130704569035520624845953372076667346420274785385072342190151356430448909445788768196198501344994186749252286386839273954380256838045000353867048147111561581974732692111956764437031901781797823423613471736282224236310821316864729344811417693353565327471597265326150771220349492925112822007235947524410758065513416068168923897605416783757063267129326410730328640659896757684423186381265201720020659977151352994661586116092301681835750677609097340582177237169731475966660661181083210378830126473467249344586951577946794077225366261536956214458290540382469033649292293339285731439629929997390987387211811924035549722749530017592301304616166985409890975672397403232193204358140050511651829987231547327622304780450460842366520639256450080411477355667886182296858592945491574231504591381132596774192037142249091067962255610182595751111486114429873685311327841003444565444052388628209381926310961512844790811732652057735797247454228138094908897885324497194984743892605895272585939850080150690856983772261384995833188637731719254748786415496137047147345178014411400985320445563731372726599697216412412624798333848021801532024387178982869564883126236098357896495495517724624402803159778731511249561164212452377221532726614445218093552914589455422231224943171261839176078491729820644836584489657893881824188000828737612187480313999530183031113518834417974163943863788770680564535723206477948438630066815927485983529471070515239606297212199480393522271486924961389439684351675556531417030609422523790000394397838130657238512085641088290405647735106598259287974774119244203742687808287814797894073136932735867091840041061802366838319845012125398994675043056101827246510952503115855697113732091501599434540202111985240329304487478198416758953335041392744101780428663595342429772015911746486730921009727202687539761248921033822427806475940629576682799140493734197883556792596211922997293272140690132146714392420335776654824926131922010719677349092230099140623862381228036056246067975141752064561279113945670484742800627812473441545019180325515880217564791106220518257536316109146675404599368446118601229821821885341376832483380203285027176040210998847220746427521248388507837575515915658228445438970922198133918743996443526499075685957980493429321313398881262807555839602422504672924573129682545050477885897837056960879376457451043003116226314285255849346032424479016994954293191891366484386885208629439920583589364103374387385788903727266841862443686703443378833125319856268431449400316740193648925451942617943973323795629239003028720695252030902762726653538748217609850527975410154782434034146733910385418961927618833376878400308484347707268943104954174510222177202609999087103099834286597428454629654918312068208873106911631395048343959535717939491680901589470279153741688255070274985362908473269074256276968651906878924278236495301901664482305499435652270624226906670870143896236444576756045232814348778144861421845366342766629831864207139713808159648057340204066400743356279763764093894061750149942683922758561043316034884806694371689525371608462530903882373892783342022797817656239789803357975280127413153268225471642785892757075980198041820604997072646552420505309495700242913326960577778151924757234470545664645972451027151659548525219872649922067039860136113580929054564096793223694451217848138460478696150578971569174951923294250177327754153966403441981621487849482427487130475754365392336185909827022386531419017123131818691762933173009875407880780916175372766789849833579992687716155004428021230589653048500412395581350762509387911540676931051886138425620385504530453724668742130458628756845534443605609578037769973076724978155980305530463820300647999858285231046328131520177397023306436436967182733793549576970405167883744360510010051735694492827056722962066118496841457466232175548728684254394255061274519606234966727787985100485246806130969510644064755065682181911776339057149508013096866429953031531108527508255953786292634099248637754446655365200330432633377874914731095611065463978511802855603795300541723579615473308821339423294014464480186564377836671287436935739692425646778483508390340177126627652553511351364699648068011972456723479450605462194103235110617755212137236172938927942586915547536623269773811317202254514464070815304467336976472271356528417382115181318982577461897749368403718843278764879024715220544992603786482013682988863287962205837833890669835458152300768197870511296248143250394758181666108222876577491344473693966551504169155028771934463364624719157369957386155712306587436026103572881623867590615406024011115243208635977463386948364924867170061030260336120668102073409601171376152404936507540626364912435993800435895224220302779124796734821598738037002672163546064206259929190115537830773461895513304732593855348784463080182475568743253389804383263778962921441026909654574371622920630522463955924817160519894563969467740629715051851688201677488411922902907438450316479847379068759635186344813311704165188720562000764359286992984635638357862648300517024386424439422911381418442111285991460317906313587944174783442197671347055792005752752361240913576229592355737061396128580430290847262453048773902825142231506491859885986902287242362336498232590529905011171721391958208629744406486663054302021477244297606544539260513635284210009811343747936852516374460441529145468885342186191961684843002895030942657888031078692257405705199193599100784874259203947428825104439639296634557134210814075965631848013435022956054215883558547041905898288744771202159397458474618808041886609516554911310219191068207244243588052706688480944995685325634069478990592596082089103984809049385582586653105162383376012416948018103745789227875645950232954802488432079965212328049293677419139190291891140636850732362658981346313231286563624269225302510191199084038447558152134681620390279129814756509575718947429597530353332905699694773212078071107336761624479871841246107469086925364733680745466801979370723459317386624544855860048293984735508839515419116259146293730766604823647325303641959169389827033155669569600329768881154391335912515041530099022775134780837889488012896670915261385049589065961942352531668328958904225158136929154490324524726481131457332250136492395663573933282496641217566511111166648944163543617347932196437096725461707972267670013091017490639214827438983089249806649464926259480368352253777848874337494138609027822044670697968010087309739467755249458661520292468825098640295596090501933347219597282558949295369309027194753641372177396687406543460111431313076018830767145102998124597751769063843676133835293514890815982452961029626359340852451356588174985463349122652705123339558700761592252850769709652233881169712886044508091857563475858541276925458017127156974368821705571154085436020520483303629358097381421740755455574607813718127143583497376028259116670965088909639902784551942514485022405358341994102368285336746620598425389353007087053856475072247388044633369743722012774415346197718889029935194221142157779769910714969860459293021907502352139039306378719803772515431921488165552081075458538556904276915335727066223217081036180779434058078702980121408685213607238125895199860418726473166894777739590183100350331743135026269572510235101691288838375553449361590927283486565959363656154391933720208851417379777180974496512777045729144365760290834064674399561298991510362025417486783027633676456918513453076596830112042659237351576755582498690312583623003906454440001288611197022363057239573416990339313893647824743962040240552674648815866896863946913048325234258674946945903445186337686354990624192481717142252890700501193507277204748969022097942100654736141564313472709258411123778518972786468198394756037788885837667209257535460017578426290791065359264216884028608737845600179719892032714811933871903246888177862735813464310377359148471625711300452751355439758497439346206868651491852108915631671058398845501383691509799757022332762579122426978455250775700416584487884738157119252877770420924464812647332239388072740065113014699649123027799699846504526387918806713060750760334296060704012093214626654268019194020755773621550072284518667158862967647461827795787726525848755148596996139415948827556957352909912909254028821927111823262462596766027547448059662880300527623866976715343504988975119141894196173128079957487212507793674632655372238264488465580328343051603564597808697785608516941070823627911750239827448338885129969732141512067529657202746249094154277983597645478883808479886017833446823768232450918293114572371573627813556904038254681286059406342266586230712298636493067445996704536195064171289755953116197028900867653622210705984669779177160256058077817176306813047290055493747199277015481884264149488040719742927134874505599517897614323134481828396458937537532264602800463232090876649690635513159776336308987688340691725088858264603141283073546595297444270602619777478880781841833510207310294416605199590435648695260811453149896027516161273832236948652102420677881705479371468189285657308008326837143094967495842592185932772961263830408964554520849170987787728013037333451816440062323514638083418914080596932791845424639491188567322909517397706868312272377511571302105639293432311738086981532356336178878435879630187849118028999532961365898790987492849650976678301157594983227607342928456002572710706154575228983966669221076494510865876128723747214713620694539694959017821101879648330794063080670319090306997014440019763520771683108968024645935031852344265562929456425736254223802913793267945618226234867397755511307160284420007258297125597834481743564218574090327488564175650592182589720693019420498938580343482479219643998776295925439102267617222287187904484009936678270824731683830966990513818220852277663373648362394297155648473774716076037603167425565256467457642490892596745805512065696548189057863901701044277182812348701668701055559541197667232835293403255944527001219099202367389062747516572575010874889537712898488261365965640000088903900941816480309278514812285074626465482917475363293680795281659273398672547042159395636197838522331301472892484530821971741504605284985303611557537040080114577927498657450307212015032065555596120916220139186805730251757356279440101798515536633299730873237731256707409046015312006743593407726935119895136566057799742840967751389808926622149363093547733743550718715467303276374950232682596656736927552086505781552611576045309455162409924760653340101455384221534216822901515737654294431675868749260637674762826018380602891940920242946049766031975329073993502887138494415931380468576136931545696293500972411501716865949516359168708596898232273781200010749244513337559310950008202851476132488507431823548252655378136609214382446148769049706191908661213244497742822648791024840677643701437178118688403224526966693490985923237586150868062652083977714965697216476621274466050095825594488227779285508840287902997204643446152302973175777445805479778373939274055676458821620518427304972186436167895055737058991309632705308923185080670083169660376144818512559732168345586458360173025308875828967354927033348439385450197342412541726025413060349862013373999798324338523977997009928400648960379979872445597399246494932686046051275090413424861514537049257565551160624037791877624231837801780782433677356857155280059960121514792105451366289690299618303300021687980430549463912689320668584604799050320250964117418907733674969928657142918100145810293697968257633939408311992075322603244777993252436400332930549385346329157153255906817455120392954146575265647666201847117344417302324438355928455785934048809175284009179817220559675676483857150780932190055896579675903850838216519995080216100650745091139174223234900032463914483429545623133383101434228015861605338758315990214701600826098627526442531580762759175766161961977083032738005892338671418094612862209366068402503040978188045075190999166280820559528315926358286214122836127732513589861055811388452520174169191057839571323011238076063085849583026190120191178974439346851605497727410803969326491345048403901214493543498506583914810458750855707876265703253339325989149663555066238627240877889400767877395987821974769753788112561434332638236896061503807026615986057236480763611624704719435452733495535750825010497714098106451601247235343747100301396415795799260915242622052976112837138984499220598304099283771601924612954475044409516579150342872924454901315600093328791751544006278959770131963052634156584301320488920255791510292563951071039124713186040149133773250446170731383260039923082530104657082572635695055926452126033151046065836158836104398075309024909649112088997535630167829211439492462161753844866107476536300880906604818771347945201652199027956434814819476398211903007747727912417353342906220764061804433062386171517246818911030149909626870163302873891764519119766618278621094921131654062514034264223844582118767714666136196405184553705232082440556248776169824562973333571753333041809979070002063401435943201470293801022477848178279077098686505805112387373326983621919675176973867968930616833806797948583694101026684802667905196002340249523357196760537237321720912121250630963541807878765582471566910457862131168332116470868010436771768961980533273621334847180709886012852610632515637908217010225194068854446936923039442451810756069858009652130323415998413081104413772088216457975384185817525687769595645947487908442175637875684157732507876020126911507888724253364586149320961325475626231139008052460118592606382776926389040676051832336706094647759926991255119899099875686880458587897028891291741332543493714285583677512685962218545543473483907543246915143390320320879473795266773300339620410437632736687414952605497693037929954434922220841227985235480372816521162938242986005795662115915325427771138594631596701602465074260396809849721729646801923974160687945839833652109371846734265422127066478235931706165972790588400352909516811890756100927106829218426322842227599768820437661953911869724988627334765888138045191959209031671143815986670051860272219877241497619240063214349322747585503255473846739932175688068648712665052422374865647566399142357413109492213438182991425314482187364475084857728024893720592563917073393095167278549059254980229589864810097993828198765217592343529081856172765980909898831611524527444793842221870900709396560819220682159542195923353460275502629325115342203435007839728428166883537590578541805415957141449325579322315352008555611873062160643096110868185590453505935167931721867129730154181241628289710598263080288165380291896541909206542147276235007129222404920817422410678961828173021399396124342499164366684922325337633184240953106577551620538335309474765625833062990547763566277081096623407826736396499032531805884293130711774101255727725692781765613289890816796704163867637027927158492703183990028761105951628642723458827504189415989831221227316127498649240767645125659822198192237610599810068992126949453482420109072273406701166719050690657687415203280540242862603177208392632591752695566952990549523671327122484473738504805259470107636421889426054423342579323027722131804335793743808703425968630679058085352121300058957795175332698850095888261920505693107895911571540857565586840967249806810102430784093090533615510694224785461592738711697306901670811389125698175305312739269975924037861903454994174503279311997756106889975685671141150122248045223727409709388375973228658269726665532023955041598288803679971940266552338261880878577386969499007342796937225403002058467440075963352292954666270901162135826755607089899613459543600101642835018714112511002378518680200122433678586766566909740438790716918759384904567108275463739702120273695235965542319540059452245829961882047041336310820759228002150598688126471256873987107035046337930245957085264061898108155496282281034217051911106296113968244806471202042671666962030879843267394592659005779888358574163100529235256164690413123720431058407915853760127818198925047816163595339462745566823645259875332921890448564223990539027499642397537310171349947929201387491231514685323484288133066878019487829773844497003370873760553504618448244777157494225421428232656211521778576204382291958065200545974550746430895868727996720251213461872674868309619359249658839027823079191797417776594910991336920823416327095332369108233740653011778405730335528618895211417739707620439570376752991482220451332160885160040694156433036215937407508097308838684253591662802366033672847793902860162105524847435465432971845630479277918811904152209760251798166398318297159320511830286986417548292977377140067177471857628608363554523067110347626984959451188314594944559768080387093473640282300642394247275549682226004216455636382315282673425888414553471794307060607491988875650442842451053411817209354279806845673575558118692093708385557596466867222649126530912083144696220170952395260881325257555203235309014840208395227562384211496019782804848026007326181968788128968742485509495704953692626768634012029165250786878292238421063737432519589205684300742562763937861708304832980344739116739270197453975223890764901840985212023818444328509902291251793975942988338601678247974251249800756491528748706013765872653061051927531433943906955897149333782714057151401779121416810314021532142218541815512930476972242137869458729238216735121197443901457138713887791280707335393525074184943539825317674007868908783709723915953290053064233104680372394938189137739856591829737051959553307714431491574693089857652421693829758863070680161208017838530354574461898096519204334112232932719664756310021053383942275117619944284170285353083995965772001165878945617665590300589503902668555526605189861491176860128084419525758531431146655759569646674183458362829631374756882695134771210507735085052524887567891229458141410771980637045691673404381381467798975446148337428685662387648084669282373972167223610293347730300016828130707903010837533784181791267756390502441239344598692191907108797726549540646417700895441607818780366712678312865431234005500701218002606434555006360655999674871086975283683680364426256881016440303753998539746837305229356353828630853336381919838992131527956422256765475956231901317461439861951373722281507893859785914989764159133448773162771690388365874077145836518617217820744673643770041457215892179693573602564901999894825292827425074103190764259809281236419824670930526814308676609082867493212873348179148957230598715043027282476729671431863331537260188369825809926490799995132959831763207663285815985371270222128810225633192908926754407499400433535385314121197649857627164164321136094640628848928283962996819243532262516832711307078189063203588500809691295769289775310354509314877281613416205625144265531944244548701286011499988876023228103307030522942336745769396683116509972242513274342616989493784884229459984004815466354854125454189038066822649804073072446942257213867753751986885338979487193646814786345875321490786130394402886401736675200251031098015569620243291814590092185724881665109611560921838068583219852833665810452251324436171200519166715029125555003340416681055299709022364303820560492535205319238185352492899986602323091801081751301543070427419234426165005742456650827623621622463988860794171844587254483850981715215603709919045389773974045373436506226643701401475077596873082378845206988362700835728342892154395559426577801330835754849487300736994374775809537935902751230237740563076960595474703519113915145542003352093420836293098712463556928178086603342052844205198649601232895728363467367740279486627137452858122848144086237768291844518504318230761328595351651215349648495947193556070543355901009447570984255013812238243759820778309410301439939601674421016050952501292614486687676320125518277585074573760402957272541749559394413139205618678431136657448478777746174266807169196607257189838906716169092260382820849134746068295107831709782965186353657738727042585943305437991434067825980512796027107293427474855203393299047790950379453918842927619432206621469929885853111575333505622667804571137577022930475516490844311836462190844626777116046376988820576719255220975045607255715284595089563314973600098067423847990236410607337984014437382514928438771471461273809955640133726734783597205805604537148261344664448638462829474586330194874725693171504725763406876613100819016880763816807643274985807638955136423678872883770577363856383616514178293498584824336865079132324433394118492873491030033156784593309053204676672253336565373198385230486871340246026409299645112415089024386507339574964842688642964354028146095974690972963309256620990546111248981770128788792965104720004316984256747651505707957249571356868184169905537023922592760063186746705986177618690177672203208972023180461297334747125902820285106374639483402708300640907108965230631851833439224329800078954169950744486749634310073186987889032824551857834323647853629131352787890561418921423064447613465427945529377438469399674423655270679106950050635853651817074158514661381640504816561191433832460193077340102340668113203712430025069309142786493421491759717746238897178051074358802880270344504992351680779614096070335564161621324042287041303156088233750922689852850593373189620980850046830729681151880089030195340818355092564178293651116273710020197056914940247917962678441179746835164753592293640978228670443038276367688885821084279427242673699526371292878163948940160053028416272979909866067757578985981014300616892710886235870424242946630423207648906346116124369851989750664032167192016673975929843651007371276248028281295093450660560691904500346447389914527430392066320760108999713191084695930869260246029309111488396585332662566797063813775827062981440649484981298562463998648476850409052156055758627934231255888269888138331656835907868533071095942045646423143184698804500914879045006082130976617676449484883733886139870607251691227757437575372250574899369662733396938392741246086003786366814312956195237169823954561686309459574653287960075778860050453685371323368273767652705839060950337155912462661259502552906118579574209307738190067190288487667386372964351504527161991275242928350998124565379974722986701159120875830571796742609782534428423526121395480448248761024886949371013508854910793407953273102341834445766793231883181435470965172681588075938865404991121512384923923250362953305658216372181910131859422930385642508567651685872777363974751244173267218381594752433594530207758614209568675918332808388587301686874510768618560767532702076558836153053893910030629560982434876819048565650677087511512181140771447098621747891883131625255279928876858413187738982475422969969373846809585576540353966983349010643028670392122379054736356022021982316010486616099591431457978587052548351091034871875456946435340407700243027569636045710542240614985220783103691201466711896298650300897643679381558767469037678799905717258854950706160263398328135731175652620480876009912667227268492399911797238555680843354123555061021670685331647992758682418295008575964983015097566426966550093484946100651875696172396390454094590241161846204517438897737387937947901922955720637911354746177631261540324323137870608649215436156836830529362733654140000759844274393250858332435206335486758988166335319952068138278950923762869911752634590713325194166942188962152794033911404355143796050531063133761940779089002525751375273366011406460050266334975603141749395829773496890419817067702006482917996872349697071842266604085716375513764368912324072470957347156297985890142605223038756133521524741951124162236850285385596986797585343444505203228884439853324131857408201845062044047070810022140153286475589293500651285864784469220080311859843152119537927683318045710265628798885301276292594894019035034016169891644071278049708947514486061058742516778633540271643398201700655158239932952060890598917814245222308906520036600453777760105280060595892483569681413977784760524453633235752335419135335717970931792983488822611522953781545212861128127208542795214712043354749155930364089451930944914514962471809164377020589124222372445095789127863380750214726278968014989298525017695424445865073801130290069911629807006609183844172727221198672557369000347074949994462575343525942556495163951704716429030379983023768893940873889751534733347445654455870925159605889133744816834086112609528668388007578288407875879666119594799080107457217542142439567915449673661424568029874374429308515899273534222964396204392826676520378797815943199686112016353022028248122152414797922186154342639922704371049430982787346319022324221091806020084775901292191531809587696467920777013434980832878297316598736761621243523099362016970445319381845757263985064115553384498389485945363388976052981839028177377502291394160775625937471205747872793311031790724225470384839086097268138674458418575252692366801768187668882376487962856388181656389326470559621867742300421455465860819235680490681786312767399396198624359144662884601513969389019078710251455015686856611018017008381818802757296780969294731049215203013987166501751373072547578573802975445655994889966084148548283911110500230159583930572557645701811705673208386452743866125618650407781132314415582075806200319838079213670723036149273527240038961305894398831443537413530286538110606803691392907423033294650246717029630744007093482331398326543562715990147547235639453649798104469241558782154005878254445041559929573157256301688587557088335416339466748685992972590536202121425020314562016241909601642378831328328080709705355613167977713820637481895725157312199997452039299324271620858353170800640258298856605736395775747221408875134344129094608340278065127802009907538355313387270697697751680017424947071684130728489264494130190464594173600477645748516374615720039737467284212909293915828036705050084799841760374750710237610497294173692590018063376174913052168211658613019882789831104085272626164542763257149068818914160470866622877421517030837675726270235445105733041095246037519684592006484665037713360720462442666194371238411261914633369872476804440812510341501414229331099714079478514661026820670529822645739862406444792918544350241203796096358111208263522282769411184007955218214770020666653217762567508007370404928099616391414696034857776688136502572774605562734449080810881804278090695964181860132323504106022883282353981563928886257155098831513709707907892065929070971562632461998926442430967359612332508520486341366964710102569260771885986457317415823136687498011330556532048336885119249677279631179184177066363951957591177985040376071134458733601200789839887206466878597294392131996488033146960915504858864006903326594694473289150261290960240201647069721818999440359700322663555617302316226604741969451141817699855995911850938223429892003671561036594225194037406817696578189954135782917087651992013706074677868890426569819309471873054266762786550298123840290650081915009997852085918850678230935033059226864871377892751712629446346322803697789142993271375494183512886818805932639269569194237246740100223962907543196586532351652468242900727038195032448065825212184281190125829590088451988921222741550461655987929787179455672870766959939932547619325742712292901497264438609043130657948106117469895149488531157347316767810328124968181454342111333589449675589437845886602360960838077399375390239951969529281023377193304940890764642020261540830237952379814944724137925163084436936526247921818920669854844452204612698100813940979998164402846031800902358814742375623860296863613957735677953583280751728660735553263217555764251893834587105562485710458834877966785363237233362421434007058889968557902361025020639556310100717588175580458123930344525316943555713460885480526348401659576282261811781932276331425543873437727172340659774910448614161095579046442800466969771284837877510243965683471850059305196591951835452042900408201663508598075791616004656740083920711052534618046354146410159645868040972796483394130432793536240618183512205073755082963478970329168328630631999394124549690515371902333296782737215910162555565985874217557219899940993265883434129552044070675054262000291743684688680803653367815982685942528515133770524621230750720309153336749287996163035833752524258719423303316637323122336947221091037513502953758635835935020675061772129430996532065825380446212287913002647396864350979508672991839565124936958496552136731591952108230700646384132908620337110701529091082717827687260562121744626224783247778864065122524711462986631958057163781874445259816567568228805659617774476271400206738077266010252453006253569359923655952268611314902112632236579785185043343752682576541619614756836129234076528605132441766232455236168844414395088142057817046489029060973300545066316275103606265036342152083655512917266851748751962027333179445559502084135675976567698162768644621947484500026745535425121024970343047261650927724926368868447369320425428516119814528335597239408282293133692076425932224958463115783682236458448098995236205605100401050357059582254421924939405409298611699027708886527760621496271070033513282526416700202867618552518926371954193360359849068281280284507504986189101932533942083706417697477207561690651578356406183693355951308375800572931188530774544717223502415383435445674409502475403484626131149871283411199880475675890682700482696053436433489101002925355328699434241679822443188702248762786340773876610525583989361044842963574091260031469728332126996552641925748184592281556069108872518424099524163123366844666859016619929185758045649465498012543509709669189451632720429583828531599144240708345387160504524090340438772834518025751354203721570075768732186100541418325118912262153568551739882267326227000287097618068477110618430049318450456093402244813184390539062027900370295199843969270454490662029330297029292271531807168602120753458924628037197597222700754315208255967425567428752936933661011093438780030869911957692120378955872505258967362333868435304323833952913889682394415686228256479376717106212572698933174558328323819676347961958519650763018859580226960506293780977386926645829315177776157148056130572701782022402023147452856831572304393229818266492013271772907023294724801937118208588886588204043979124947895575578223018832827710670662695413773196871921256149363515827290019341996954998842226293149440765354598251000886808713363155953409783058214307696876300929197158615578003842235629181405542075271528760269242327055525666014338478484276167909421564139518324103281835136748996786198423900662127990552941439890281225447659825050288057526049444155865695986409089143359962608075968298652979947640594986276494184096681604562330695562681377094804142428878151927697669937640072089183739360768614021156031897180271668748720175099724287842966547301202521141837547123046169447219422377833214051907578659437761193206120134348340034970660153719154486966982018658233497632128726310737878747937038857830006544392317363907734430431864088962436139834465937981353499269547504519203941141238971805797580794176545986388683638341560134916008368603296522611549027240735951749078303167562084913918728490880176357128832609627594363625175817462125808791889470381889781468204661742001362814721304243957960034485432685989452737694970230562608790082433087629704148247801556405706288411346871270272292886013518444520521694681738847335325864327693820213165177912336265164616145645988314514462618542571629060246363907413367334550154438448284475856687606006268485016516840656987735803413357879324212784666929476853216786808091899595436585658190906158945342562864273033289137648183050681294429041797292765080393284904520967462879431624272560375039203286683559573149446976656574330184053129910357275607583604691816323095152314845437529452042001942063920349926743593157217819909136944470680990331910339258058550457334634927850653591692392864284147451079497480300046373525711661863993958483347271432129762716482521319382478512811422248733352655770097038801354005063679290455766190811401448612189640224563432485238201932797143469232220558072660132611609538154461934316200063257661547170190918118577167394776125002560227612683221406093984388805935757185309603437563795165194075661343214279646127133525724504761781187352177500382312263195878175928460031353283396053937705399131165526050477712589881042055764556009608255632092823659208789213675544991240637327590613367098482086215735370546992762911145382617319718810092519720794262930777046348980378467998883188853356212151121492181981503340653730464402611551616355451127150918553571382642344767264646831546214320049631848086035257164967147677572417835181139606140399759891262124920805341595515187865802881331455406593371321207977848793527484233228661824296184083114516199837764592701380458582239683206901595351270309799585740318696478305968875460387855572951363053847093519428310664920931435521906793158888567293278498670928393428747968914733879566928621589646407795791737741191127520018457670475896359646800181929698459293224688463586906805103155241354050082276030961325036994636648932184578678097476158100597642392342313944349600497637789688369593191337162335800289374995968392723657893273046360785955312733234719633768816605082795076472546882222022943687836003663955338634224978461363177248804026490657584445426025127515632836752954007102656003547409110511923305056512493483515674250594924946028971428351891336772073879620134037237503324815885225437975708455308344284998927033233938003101422354380889335186968534385686726014604382150214803006315373273005885556490892996089412949407926253502102915106057876658100308640924859617644726594374350404829199780387375165572834375377575191008433875937403533816116060284946998103620650589768253370427264219353137997294708238572687003423237338792607365967735774389683158190091348228083105441881982149789073497913140679354002783924737593826393096319456691022416478757229027085949998111238085131678484503986421021304810401662366854493945605657438604445817009435061600419018721440108001193082560503239581847835009060474553383800157295590451788332860239607363595153186170374689517592712181903503573344693107583112134716495082147408373130956628118678513404929976256960604076605962546089729416207858649893335759245984623019637718655519819356979134444039493944987780120239776895761362461552241615925949738649287985836629281450221718418372330341495423546358888667136017952952857164127120113821902042013550481340596355581257822999739721946344459294309258984866455815189423762623228514168883026765732243550674844795921386880988001760960969618539477102931557604585988388829358404787401535493230915164599486211432612311069220416901707642580902531172466095041512633520976812895695679670687390127447552912796155363458537908437527997106341095478382866517694456173239862880290885132116348890152461441967412418223694664311330391909494890416683155577662019010051678863596449954418674956634083983780293638297806034587597541594335644671603028081566926937917287196461646380372285883814651247028026401123153688971691186705306689895293078010767555890104063660736842013626469557975694793635976442854591160979584698130530981998782282685307171681213382072450319018071495528276748532438215814198811661136132114761794145330695540311862144823813271030685532573058180980816728907028466309433846238397225650747088798532597669807472900339435789550527531382700340562942453725728672393538080387231295532316400261461837968894568468054531825082563642553726979928613981741727739733224907812258360732448768908937238849790075893393861807901527402053320486094853358347701434937758754026772473141516824449042461901126670988755125901522017552705671014574923976039458019478255396293797716916254633844010691454922326139984026206550783234968411318059813558153685420198262903937480149571235541587026268487835375924080081617901625504804124761647771249423020138317622157074300459838683272066151139189851265743406950199656854449928113404465200635903838655777464463694655558217034381378889904540982090584286974495934174346968165331095677773267780724869349697946585543645259695781506307556070109445689379584721324734038145187306187938502797099448923857223853513417831265036344294004389589955429670773541139730054111372069002864954296789016985812648431193352965835585642172720066617518940761347672149441102110665632717193090204342616987492763727721535673975846868993049731104477489686381406965375866315172496480330930861641310929979906580447056610911572235983353403645394394535023438881363875615911220117447449885688949859641852904483480280381221897539174907838447638369313964613104933069344484579462603188807716254012994881806022837934260524012214283797059231108822309223741590874594594326492346274004567278213944326857143013768473070458158632815877897039548695542948986345532504174294519683310600656284432531384542736489696869765266385856853283015282672623072063119431743857859612407751013257705619231309306454834205995669943694808693543685925359329562096599188098138063066688302646619921185957911929607475135712799172846413051788536267330027606551131414027085745238579633340331627643435362075258784588497695194933325958751472759243999118632910128850193313318970837581705785138237588471275406112667562935895077134783386041750556611855034800897123034222375043146753190310082500866261845517365686118201056810219522761788817822336045702142852630238740474072137811429600920295174185919446030450764374539083974123854318700379978072462527681014121664209540401738007505831353467081552237119066665430322343426025566878586649290412873948092127462888548236778168340538724709369202291934064245802148701954115807998137870726901527024122388479453296473022702017255794993022312465591606819215221540172321544187961475296269504283005461471463734207954243607689444259060611101490695339119504571441676991470064897557441435906213671818596699359445005941279291951895335560203753280632745710839680095299350231613044164062372209061968544204666309405477171674360674998725095130314856413216440971712276643093286734045243189817266424413384257190315067209807452324040997020349179530939962484391507851306403670538379929317900124409551850030510657087137128984761729024501875263732649147619538847854432410185621179420394965207201810083328162330446368920019312846204037303131232765411741348909912623039415972287767131544057387808589218979546806179321167617272662947253306174326565455359558607049555759606184250839411962987446117828840232032098636290336564718828811333593747022278860200692409130119786379529435846706252384330344534788962117046897387642935995175323915427976733934830957862473152550503996160829017279174378168603234138771851413220397116179715612787728746124510447002378752976998742605756232086066540402415787824532932655458142978710078405628885541695755525802736211630296618445353375236108263527282506494729983068762678876405419954441284837036329703850686776005874975384592363402523247689018077299695989265624781874593875638750461365864233998355957771308191197614963801517326773458909647149434006108266785746109475929765433365168299243797534790620790742004564965151147109961458872242661467795300795049279806087914997350352174082319591344001314152039955932564599762697469264749149621004052869236727659985158028907350373887067479522943414858834756660513118321073890386744362655516842748148922991458578152050141239637257074513848135912165376858289995875766913571223711313788009817774167598055547184526019853891262456686619136554141310711085069711464815556168124229007966564413837884894939201985836303885527609004477888611787379624147058393166583526929325233832237228156154046368301465050953463343232123984664408688275170255438374837661384864342001101817148903757949253704884198454777281184226270042836151612356396909899473858715436148166307640940683472194580520238415486589811422687011510296880658416329351016483154750946560908368011773866030552332621442159171050804119491322201732925091121013194028338175856802616538273475978716961772398866134182863852062815691811476205311230282263801212526513485860892148647603528465673923894342613762594817722784152875784432586541550505889225816764184714032706121418270844248798244455873407060542494504918933717941586640613579243111413464164848806664270986972562222704612908031337110231180884377154224935912434533009517286308374764694528615060145971204113334344278693580574349647341437348770078234349087150986057140221963865458885403322000703770574871790281721215415441517352692701378819929252572945431705118545988517855719255233630745613494278062466879911902632366373381620771372019507612445603564604169070107068788644098289661988681698712532835739609550300103437852636790799265865356418849655984032246003725535828723673765078930696097711774451920077143366834135676837574911814828945408788670052267920855964451627764876796577174860361931273956615333586789932435890140013036867882987711021040447018739151650999086020862148906643641068772209088786893029523151930258845393215621653922125020353622060653498162772094962834713963984415828318611658180160627318514707116237141633597477608255695023028957028165450463052786904763841316236845035390878661663712091480069677781785696841763036536552891351050030309532700119412848968652030216711213052702557330065250772650684322766228768313942574942979311380934908369714531917341221609131419321625834095882733944540741932004989813655426328746255036393367758313025669761649362416747336113088826575085694339314304597873891305785379558819379161910481513572070233805817891902074160050095389618991818145720352245903940345302528817416181859147947282301852309338893750501207384187218081934563380442087632118394328194306461192461081129818158346610640811021153055305143047332170804643522540241010724979963005865491855238657161112595545283499741967842193627639581593079582772638026942099751868101756024100846821804111237268383574364561203939488344923979308512824929302565781280570317579567118525905141551850462104255275913327477708633585911011843060848086603360731095527604659103429171453804712617728357395473892562358449004712795318934225163859251610988702965017229524371331451970583409055416514237312750470539471248056102474646622794923851369533575018073281104723713339214614713017004985469248291808008573120913156921661588223897886317486620385310099721180988402072751921491055926350744127387388359106764054796224035939192712577001039410383164362183908302430597190772867703430530095982469840217879515148579924233590598457862131505754060123000556845156015716948715458758299146577553904289168617197816199041117651736684106769953195765254159931973454541738830272937465225165531985291175145713562952145305711363769478213271017824219002084728009847647452467241222550663385950764024680917517618736586717563613750591098917370939430947319171497535075998469716732194594301598110407718851340286742957554976349388467735308402078801796638664916909000984836780368005982776883970728408565101780723232721569294499617701332945158567436180263634068900894400031602212340148653690848683125038567380957460209579823930388456594301080280626852534214747601507777924429468968990283332160862203343201930667310992123118606408267325256830084197560054617316351323138717556376978781553261627497596957598992939821537004818710382840880329567752975307878171405334778213253719859684539378847632589864196452665657945441137680219035980552658990351232816836399405709581223787902782704181099796607617310752306434503420978309194747127392184986778735428520299140115205258569453802674937709439374124128808584975545939710634689847498654274218932115441327412362211192843974008565968085016647512400398372778301352175544865644874411819646182119056653714340649248639843686751980828786357882693372525084351601240321204881220698017663537587531434363355655698226758534468719841656922537671170943154907500619883397310457747366439858175221780703967145323970727317696785949351626738326509080311815134577696546375960263239514186628135853039082875796533435393670822684496786769197275259459547229237473786740757108270315843359693392703586218554240122651166300358490505132808160630980551595123691762191684532788093798320287981160320818382807779491207706575936659327380502049723415076874164556364501547984511576933122699028812092675956920425658714196806797658764851961187453575022142809667168343553335662846053871418556179302916072742655503977210727312884720744184061517353103607466446404511815758728924150406912855690674897245868311731117000115001858149746614314312414156665911216192682417400406536369206651300510548271825133748953453243496639400296384512118284542995617422973601592115349795491928901290424492567694941146536349377321109167245667021198450926491034659474271450721916898648691044161256813795259573399534560624057429274715908170695783903545769518285742892374407042432303274885284434930334952137808378473826838914734502183256590640606845475773815596696962713608524262700004922525487269989669268070533475298471687981521187923279328460123200498017201164404439294675833995031640145126674742360455102242302958073790467200555773794130485737278095754910277559091043077920936855582615601429958280398795337000298697623974791972081417965288155616629872056156132670462766233716162224288987570750088800750645443425598211315050207925035065258900081784245831996233863347043200593717843473083818142646839874363900512328419701820618017721744465546024364745997453299137116401059362163918911148227042639300963586738319790991836347589046090215188359681274692494149313378852751103428034873382696676430666329850276662594050245906355863585525270505255206770150967071157971669115835770580847012775910872339867630075945094365539997115293810273382923103240981825350959693431353281575464627968363095368506115131181100623039528480200236515390823445743442944268073521641569929978464589295691894052784909714926329427576852595842035132716278997109580505220920690069731067164527812699401604181124117617448518380271563871073164700150507763661103541243728214144591643487164044002432156011822831568897097512199342710384211568745854086667477681180205363362952535980201812105699464194669776288778315655955073269131487307666123188584354085054009353100169215515411218643376193669477786146030395167704842844792014045591143135230480457891591007041174960223530792095151237589746101674806240097213796184992644009156206850664883506079604076988479164005626639075032632720384842724615846257393208450394163901812950109989590330670644792032420284326329991936386869759884108316573811217181539443860994981672651515635852271121769180387046282210716107450832364464356238847742919936284005306511375830244758123407810114601495847211193822010631800335704978813512157752244565507496176914041694550466044919443642905047980851641813744727719730322860324694418218550523172365240968962549211630488891856299752025553010017833158852030957672793433670177775620877564642486285080395999238063744106475045669491332605359424863912653386108006446902458300962916596435060427143334482214786704298091874951974313587522572040043552797602931808108714431694057521455670380105626471557655687673360694095680082588088355190607111432445793888486097669984904744989704680306272257124790690404639510277618784909288444021766467842214423629529569742896480221372834600937907324874858651263399586500825217704914281854869850589856903383089833593910640805826216950366782194529700265399390663291255433549343437773350623736586024363418490345372656373856058222664410448527798141962896600109277897893554187906787731508778941337730981154370955139564520170696787362002606098673538199424700214779679435664659767910520522576253443551462813596062965808895359586966059566920689066886881981691517037510523757411674945436795050174886553476180469035948752251356871916759601474785140130238496005193823706356973083957843280250148545070830834198892204745660334761005898887024037530434368061891019726188226632704193150022507713320946445825691464373643342604216410200083330885128996282610410940945378408832567837287699666685600169478300286748451276246265764735433169512035830090453464516155012426560579566652394579701765174603203609166685620069603226855086134805799173796029766636937203890668078918205017467804688550961383257020317846786760305231741224605764792801587730717994856672712787576021566353849837327994590694828014546480081412024989919584313041535897254112359622110167947089854891805079435596973035248339566376998144218508669732811444572008369872990302932998607527422863974514591963414146793273663552011230787487875730321791865585914605795725870087466246600405922212814150629370964106712287734007943954511725723086387104839698104095717134371131014478317471139566539504566052380798054625979079741218417844322903646843966858689800317814590915463669968106367956002543352401026828981444517346364798759006147744867659915624792144335898518843772230074089237155763065737342819897429084015125390141418709837520713766543956416410301968369132813480160900963261628940426006438487085966739591123949800180670794841439839898287870593775390170949314744581855902634474375647019461055157096285703974240662912670981624386117480258640740277673028405982412552799969960130934984735149047467602813969880585414042875666278091022417751349809847110994847529141713949839326246980183882184728375425244839170566177665969322554271263622689941057771007725522568395664157842301406807584449442502303231963603126672927429564196842234743906208466879711781102479221732464942233793721414985318744702912598280141206255697868478370004387401867705639402598231541923482804291438113772734321626949289504961242051451309121373113101883367247089435069462613091581310579135664890230153915806143777239054459535002190554545878424664264302724913669900918873740087451267215382680175249846062773231682481745753487607788529002995560654259427843883182047175747303343652801670105130850802916655686117953560346807254596930572383717142720456977082810765840451861233269888945656981503683350740371889122369730757603240274637601542563765147669513673175045067492101429973791678226855056608332216595114159983039962586639980724389758895694321384545136337123575011476429928511582566501836581912263945125552199604082207700515535935698080272998142781084064806020761590453158663232664680459777972225236041056553696258797336318486433324757814634293500959813884036081891250937509949943998860728304330608890384921022241149942610470933097948014257408243251985270806628107045825813986467550515317077599749865738596023189735492768872826097985774826671521869344682661729673507714697091624261742271897639310638508778532333484102125965789373859455105218468897737135788211830462123284065154406540493949793897345389137400901417232949986571386287948053269333108090946957559315733674755157253869830915366870745022731706658667655086465658447134721414448982939407454947107505440697385803116403231679839365253880485272905308812640173831371839838235538293502228629219576276128092750498238118755676163231099248484664456499372111509600063433248575387958904844601053049356025501638445521450902691099027614041870856166639766186681967046201533423949896928857125078215177800570515429555038448413365123163032224566471089934403763320515527099862911476664538883272930178080310511140024407517742860352230825684644761452721836890235838201148074206030717995496099423834331593812144322544747910849390957534494801775404674691977157991491521224630100727215840840540955660602829484565987294889578025563950430309868157761404717283331637263848232350949936346801724635526548567538900933802428835377780537426872549267068125814215254961437191081098099722425746402994237859001558034675821238194544494683948515527134535231290794657530622371210304502193881964975625163168224414783145419155670154096505587441733266895649833157333103722095863621210028262641360106431954836557873171158848540422396884071297715113105618219774949305779496193544817780083392534811337046761619841019927451311883335699459180773523739116302622166595713496336452966922393766672186112010501519800715445216392941099631376702293960832867332925806415088710067742037976789276639508782647247318372035991973302013555897596698711188056164479691141667877339709643705510620144738211856823330943923733477069368960111615701728310092897896314345479828464174883906928270311686093624279807912145343879228438397722457720037863227451396175113373625904941574084010208179423491093713316625492858047742203052016860444740047438090821581566659652638334334491900710859622504223147780124087838616815522099785958976030829616348003557922389499142035641306366331533524218428138385122660543941325134168597216413412313535017393371793639387351047461541355548350716034813512986021935375099293931611156489976032366310839375118013657009721014418249481417133209416044254046333232096696969085055539606850997711849446677603255822956126830459307367993395354650150120817113856744178199846082796159849501617090473605553942257925279672485569375108211503961869591261235246221273530354917766109436906503397616255442247711461076199044258629974251485431589897663306990934045874676748951468564199752104939385438072011566072802654630685089128968325190181644375472043958217345140218406879375944737994210419146262704608343524000557181971063791843599530942642524675057347303041184255479499973859584947606437910480804217604040282872591214017724728978353277899420774041269033736122934744556517692854674086393871610743896089741786566859170034131901449562261497085143921464528004132412975820785384018011785572062000998429416223679937509349172903470017841678843988665466618585741654916297762244585326600908646113147132127706389245835282300591625532989088664075281519434044709514122164088659655029112490009422078400429730740369598943184654299520487776802202250640522996823409762105569660854326250307538020564072863785109784150424854224141686264911678008632710234430509786843851179133081478304519751661909897317535053796362138325578055219885218101956793753071765275793052275328016317185570965128911039436348363199206627899595772433812685864629386585827647755035452739315273611246513871789641117276594121910096452375828005491776320682726454754375274283200619497628490603352130133772793044058864215187601481780503331525143781408835119021142176068784984874543150101529244571162151733876579197394356599502589307755293408016606460466866394039625889744019277371404055012135595335538538144561132579097881570042113569386090128178327010527979273580018554302786508610539666356264077972536552973591267991789763315611465392821984141060545245925216653069200503255893344251724035744864923436141634739947101962073939829109924079523373675837650885283224505603279798171959898010765924369057220726452872789898660744603777149992853504366978521549188666118020081203439693517865544900782666662541487291418887962171753911670322822610804217855944581117326559758379442926880952509105451539677338058254833437140457902342550037638237459613149010708157944593229859511828503651410009652216799017724431219172633337815056872558028879772775885723361452625296122252906605142535510091454610218550793705955955055269074406298950042702870682129032376161257980208762319185165119758199517138077063309150414999035347669004183368199986387479184094156609042906293485404993204150350173855416023132510355494885989625535364701011996708748589333521640252540341532569708944790778129813463211842392202617033447291718824797175948563507031946503938893925365495215213783349056146099816721851435176288904933363324460179166591109928618733264411567582213481981795758453949613485347600643845853695797752373859546993387166388634019137218464282280387998403205571804423840797965845471189669974208529389326852108558007430814689899958384042546416404367230726353455677447810133161666594881391968766638968152708868679632338703327983524896155705723993444350920822654023354632263571435955725507111591852454476945393481522608799774159369681702115602193450463349881018789926722833358571217398707127726815535440518278733885869402329527297106253707629688187578545673454779113372273078817536795368560997898441117158833126265853315491860707582179307894425158305008684497122929375838339518768185567845799354715099008188840653336929037656810222896598805652020747823825459142378388474964293551718937338813591535610474223108668466407467366213412766765736221953874306087231204747406218317816691841757738790720161238896692899290660191967831053849447328490645337968259841445700805467100024902066764586053580474687149402995816073172640719211229496115302182872563272332675430497851531451164483649599405300214887665900597434914355571180166083477446835788905245283790303070368013773936811690298939358082121320479410482790559883306748185692342025131519494776841468811798804633984137356362360251776086280257261570726643339676042349064839728273370587543022488950179766967495570288504418072980273560491167806240170775337784509697182527624556173461037471052749134182222212937483844971547142291413363966543131986362910008428060582451393696122722167546611175737884548251860830346480085510223126589907546035391151484803431524385842533032729065255176068369870160457718993315307179841991954764147643521381309739853380606399264262528467808017377388606411067860451515877688867641271188139692704981791852022551555905202027054273414949964181467807696137406046505037826193999683114378648391453820509420966334346899437624927356203817272620274532476689733378110548871079628297911221418019373034320229387677129585069446720534769350775344117064451879967334233913949165520842617958058748383777011018854723594344310984611319062635453444080680091631031229018244302880283625914223598604604442892958128821516367665322193373504303516254182563188610263554548431316769512342424909899595155375212056724606397414164807860812637827106526948864856629327717682690362182137898107761278860031339104101517522572001624919358409180732312503256962661336912552322569715822414484342692147700801273729463825630577671834032074642714002106483923654243566431072418307619701854808732905781568260426280501898892442985502192540248110006046393315144664767633957930264301771038758336123275918509947207980129365572106939690722290109192185863337033115911656494847256030207384795962926019610644699557841355910081681914238236446853365162375747461457594327745079083525593445317966919343927731661123369913065432405129090385427584967549160266107278569778467579287260544323502428115726094738939323323193641457037992912634556893120244615971918722564450257368520849997124676460925007683567266494733180770447079975355876888261111484044788032389084659728731214129618252132712929588092880906189265275386016464854159950734776826197627403381855209780252392657751686294976070653360528064010575526291478140179875174547173031926947965354334635491024790492187802825009102524670992678010278143721018896460043492826368151757544976282875058493263873432144719707086122623384633260446105197888374887288934294486753507864692354722726217207974457775095890427467149775630018617711824005616269665900593115713925807861748220818415223581055743782503150047473949369518838493051488287251724766102097636990012125986947080790185176306231079583339010461008552098108605090502365959351721933472294869789235975520084302077504274574513702459790095184737975962348515514722052497745095847508126121943579101582854692778125030234404161316461512612818680774517283238434896642334899863801815877368701797926508837228591601908830587276066080207259379225833758951994005109923273483960354686281616164005315825927170798777144509294125596392412777174042296337763493147707806983206331374649595245941695546436737201558241065445188608691659796090706244954760087319480504612490898359802359079333599762790978406928635365723347509865635569815431624544451470693854102450245156130957303965001317870855390340607517466521572688783117983729626147480684005991059283875883766981211039210115195468874144200112040204616414804333827434873250373321003690306317530427537314416121353416436442700077639258102359868412128862041444606876239390373978389115640176174666388400030470766013325940977258263897947078828831170692542402657899435066180446490714903639797376422962514730361619820296408365801841715093708522850422931062410092053606373583911466080455351578966364175419833541313258993828162102599864561355186676493951324888213089647575471570961596842087570941025394593545278959351991751324773923525128868296005122290489500119784485765372088491921017713082827625182321153744398691314682990459252427809132506180005700890828903747628991311030714707926223520429094397769504546902566028928531205519275457690149712479057511600452180980363993763097318962287178318546000212134102628124784087936340251632200314468971971652455723028866752111823414862144195495492901802728237706175086509539075034554293389095184969444590934828499291634506286092748319781040592739771760451610153724148618534896920009724488509406388374419955151810751574116235044644959460010019793663440186677555918364090297484631058346442143890753742279621967927858585789635262214063996360321780671105820618335623568685907827373462901305351638929712634234435677974921346233837953136010423093041696377266772013822377821316518594756368416145044166461294976383496756464337836642186678875441129904558202075120441825471719702880986054350530841456238597221987726872220768177425801427952711465877537583061538309124259803051116095447960303223580031842463476819147089032240664046942102168196117440918057541627664586475791236519629046138310058835174109899509540239950576615130092429798196883212503566138877025001985858342119101934771568975183431338879973409682049430962802844693934273619625849528397029266410123038564295729389740489896010804353643247756698302861929788957677282425782872204694651307694243392241165979788324603455050143938191276538219657261512334704471969838686828763476035943760977596696017425291181357941737226153899375374112611127540795242723263838397198644938689198391599450833564132361537018325957020351056144567510541408642988404783246639431733239471667705963007863769226757610813739563758127854742251460206541794644672763655355497893962740928919210149367993375061652985139649165580460907557771696813710759400954406219058775023944781461424534291010968902794024098545446214763116287402763605985972314451128221550325835295377847769311461321826817538890388137872444518135387500447820955258936108475068549981209752219360979179778075007191023173617177123845127679617821662567327981314070792242244135995245994537012299116015295882768154517898088084311001036388874508914569707362379635888334599411287142518703201150591981288531353111877548496137365257089299396900215686074077485002269577853865451329473545682851289180527152587684312941379238228431375309207604276931028953096263017030583739854210379498786767234510428909586068843745705719465141033196778933399768274140517817006059492556274558965738797565690653222525034452644031421906457930721115102541182641923731668299911371311340059787251585695376019265507289608905809263137229589171890482927430995297314356150991651783697839268825981316004124150932769095744596258032879130589310090285213958724412508933478251902578934955044721430096710773843194317721507005955283420715039219055046476961882551832550021846644588711930003889498045549879400899595253656901555792271081918961298963826096937582459922850263284795494344130085112280476261784768166373789122239154107625162408309031753796307343193062012923040627077862364026518628030565091231224207341585610651092239576905376387774144154008844345546634025106175168698217917863505530704740743941501961661495950371373650574901064869665105045297599102085966023658961119834417324909769778466274423943961435192531392677430932294045937722949091443292975622474737515929760512286574854720975762568001497100104173717781818179940576610535840449934096792058769882348940899650780898317056376434787766410478764433113507321761052301496482149387084764299609229194812307978926227277137015398184080482222031459210660869412735393149174846927055474639138796946354490938289102049944230181201972395614545019275119674487585762078167951387341193160207822260304381112748356072380379925267344757300508815402846865799415410982946951379334211603262624792600501735153055642140220224669435555106376564818113534976014938139559931826231320367445464536013147646265402038683675418681700938139100628661942472213549592225182463738968273784307648100019670395395734438943768882367795757864465876153668337093469433286322242124946274829066023944960570719137726236046355710814063612676759116609130452586353723993773914797088234352562042760756178906951221820869090551588800585213924242663219737165416788622677116833718102915458436895207953508453696692341294215313115446183685810133579439376035961673425191334032461477003213646485000015587689052795432095284240856907136993347203135379271321056310185481624634351758606119305058808841030995973925559423822306030843603686017664262442029964767742261048434341980972163485190062810183941630120874715549637594132003548360516728519362803736439584950511195446936507631734459121270425875839505492650551488679776294475661856017814982373108849818640641765415092064627837660662112153752286879981810972225687973024885486425057406102216151418287459689897522915081697400262994202783380528779153207039894428594619413617065951315215299271631110300897536443928489268136244245669631310366882234016808822397769172391148217116883753450729887277619761160551766749863286941410525164239908163757991597303483423778091516418420229843422536736137183285900971075431926377627994806393448285573044280861577922515846529885228059087680527234986032631088825565823174937058079228590731714080096496643146783861100806967231130134273034167335757842857243648389493288491517734250157954111605706199282101914725030093240267429346694602218241842528860638257399399220009181618166794830135969982503328202536744540419586646907514142517073672225046333745115535896976347130254855966046272222209981201685332144315697839652673443578608504440400908320905106839850989718215784094947698944781090993189509467918172339381178410578590249336606339587728716786124610601755662437129215300375254994791244654389437402591793908170769019020686576209293770716047253089419505586121499478506053235534432161342893438767731184184524906244155620497095039742881408254094815175617325334613810604765268756493223029394461600163788009570107434496010216114161224014824335689722941320697500715967399649605554249503432927923816448451799294681355101762837577675530048354230174603021852282041813425479982338833913386555172733907229663751680460951214762994901570868722845457148717302358421327207876484285161423967242452883685411799316737565514312472436846751287812832377786576316431837309006000570244629092689254932578323725276417634239947562788303423098558244782498323900114059166059010566849400762249121844449369462812649748250154662850580589827971252775754768002265412743047865654134939156988336215585551578925456927741178730487315946953521116868212830069789727152995769847280172858256885803594400404865337840630207893463189583018573911718617534205877326000973070944354854857862827777265717290614048058633264918546102412536629739726868274229599438782011464520382753531654555681658542647383158987357341568871630638174037265804714755298489285727806081191404688232384771677663869683602953927343742161946628945502790336622535129190445133786371376975410790245511514530297778006345563223327131474603134236739664241183068956251700006029717125710076549994535250541757573169124866826527100048459576123157831478018686947658085470970362026713567919039228252099856094948742789848658255568190775767870269404343250713002555018321180004912624586489501656128962842421995848456849833781935339002098253146285115506647270322012627628777716637082706587563400347112198929660948734577888651787829908005986615943912471109173553126067655056660519299888732963465465323654478923582980143868469057796310538203256068724191701459252538604372662735135351380738527276395464000927488964549948782360869410563922300086399916801252344752142625617883469892364283047366894290776465240865029939832550526048419918319363437624358759695857184898560522280893674315620350929474671742408284030306876394443259896039987719715407867583864263646782953304539368601531603477660404647808686077418483739760770122172635125771762223833377050788524020782097942144523730729775871242029828889559378555999205986757069359563078683394552933769276075841557856204493559503537707186803969784564553033623079019149218116560498827072595955826142513805353898543980318222555571041206950665606305334211065766002232590184466271027214346995307168442755736508687204303519801800199183723377335532169318422245095924770769226752703095845813296581891313612692492609777025168868895199668586437756604171992885812546398621047203242497139917576479298549900676242327450613229086733594839788810519127625047788486374429641687096619682481515451205426103198620321495211865717566245004554477057756617448444720603537508427817169329597837948000138215641742624292613490611914141271836575872020101702464988460893740131420825966058181398344658720766328462083405415462751750891350613567421442980966204825125360861162636305050039179653122153643427577634872397479972697653867722582016561179145259096186805998653841364205646057378026815154123246272669921811778244434736229238253888066167033683963708466890191700402061539090953882848394079072450811382386599139155937681115468313794751823364695983354376792063809931443081506804230608936201052553708909410045007964334913425584388228950428713276240041001338587683329618771243755565229745630660260571465914109819747597715988403563216371042516642229869428614147622990672367665780242785037646506963315227465670268553491639246525098591232665341215940134611194751874623372579525169924170848456565222204657507174939731009348384123912970847746520007201351423454467734123985876699760964561214654485008605849087929093920254120067931823105058970104285685292593802574335271335395086990151430589813509513450154646534316795079371338046042639837010155558893556054363273316047228677945557166403256115369488694562040443682418145426927113327245264552586031348784377156692910115963196427315257121622096528746153126759769338672478845441722374499571302247460701146644385587253048326649194328787043178950481217911210997106121225487133760246201542833945171361477578431400624387913238549981150285094066548186367262434410359681471831744368993151588051016799448942348704002099468671354287893487661290647763853874671579600373437534525663981755750037556645421004076075604889984578307594465671477955043734925206494925810190135845069054875568491307713757485777523906891374810148512983149638310839700907725207163687511027501829593713245037298592207534238798389665903959638165955535084157403144921939873798988942508924051645073374137984953362736045904358672720009869916165529540013824535223534404551046419712870594382863990207833317396597477275331567189286634000920035203995618461072748378298426709092361896854596212773102296127590448832950163461057234314123157232471223243595924150280522697648615235664267816998726551066063185528092792466026923036260455155693862077831703229379549881886315869211034741279353722511376397578078582118990700000223001282466051472647206462382532154686587248472252596998729288182731931984166024156768080429338934526535610259338609682397748435598916305027947646958278243078525247841842659125818355894105419212187273746551290676912178040734731881885641109397107223461819978440767686394172694805294841514522439933654610941672054784536973761166203655490994989281637018873861743636718504952461116877925152972094940710167713497528436017581140403781448329315852055976110910531080039275704485343300582022830025011767025661670780460216083109845013070484021981581086147230728015368366843505818466496803063961719132054832857357243558966802782168831918179661607922935016873797739260135524977015141189118957083959543307808635334171053438858299906000366317652135248297036925920151100915136000301342547525741003524453300834865018815784116326912065132931827894777571804971092387948317350206469249280755304177855751700081642298113831787751231296395785498261110985461548884029057379204795027418667315689912969549229607282178217981690514782582864017860156703323828563336687411861451326659875472519408489368924504961855812164336080398089682293964657455820943282069574339678029871936447077732912568435542927563591110358400088697440127781797733748574025034494841678536512658982982705941602462372516847963636337054682573606342215064717074263964343948639765160744617719450378344557552187054449877754338057120987177794685158993498777358803445962461691055575184958087873664337121765866139977674679328928654871382038400919520202361608530867580667099438840515323369406146323272911822827159758288692741416935447158016458172306863630450536089954807206597109731138273162051069191417288016503224456757951921589857306751217580405843377185550323161230399262051724275436448218448723792530014804695467794162007474628243642123624551556107482451078933348482283148882984413309684940436866040327834796412425379567036886974472060707811525029374740637498767265404774825047974133985999264130443971288604212714115641238824352383372515523773564896782749354065630324724427646841536599145155243513053595476359701457911396444100058972723631180983101633883923778617853266044500797022087139024732257809280464464334953533496801051241386932176782028893350731141825266190543004159672289556624396711216917876482019335991168055448152807651095706280900490419845292602863571095458422817181047273560076147579886625331037899430269364950133369841864343365608342562603085441997890861586395073566232633310791946932423985614531973562732948954595103988970662294522756954639898751265170277052675706750537961303737842871368160287837488974485292520857568478070853659123561950598021679290843246374103827464894869150165421888093915339265287889709958574985012062266602120576514312901213327557689376159198339113290873456114292686724233191571246592799042489249534217310202708051285591809238261007268364979843442938173135337213338231352708134221923662971612695021035239916940402679181947788809281424723778751487899823549056335222799546778332577750308649237842505218953273469765653426453281227110135675283848857191295496005849183166081057912142213826802915796231344105967143454056268010782689670399527662746924261971048741510982855092754670618371633449597556853448876638926782133155529741028440597120108184916166098933520096387374183762734822594636572559477696699195064047346681076994638196528762259272368622428172432313293882302160675365288398797331794425029411550305416009460559640197446096406740884063327981788347616912716395241773604777753362414855763827236039459823421003825768700204523641919658299441443836687727760766649621901686848663421018434708110142072164191952991513365807600231266443292035877868399705918941154044779332782914673454634922683018996079279545133279763185070463444360811192387909204659123957265476408164755523660226181678805019364796479899226579097140040374134887369786782504166415119966648590882007300549783073494629782458352216372597805537540514665483499251937639583626946334246195564541030803132437115580835258088629246956738106453332749701138431088653422432025268849189002607074233276510029275250176920634944134484374242031707436553621327367728120867224188723722078115348037623825710327916236898792955851603510272745481405918550990528434101406979656207523024482077918495258192295654058448749754454239825581434687698655126065150636663709385395738736552956089759611572798656707793951593426878815376109685939380359072001074163032989929067412898264183499094462851720321162387017800606309661002102284321195847478811484413796970082986121370040157111416480378571276163621519513079326640466986154045029578005271266187640080796359444668293375944003580804056282084536364103061119793313761602485753667603899601332109747965646073640373676095790857350184583597375511824864374044420731108180633044758166909904574346577931036767050407266109764635355629729964357814925855387852766672800780504193083574202641986113159759370617045125080548381434378263021147769277215229627937508024373523768081722403756826948628359726588252689805533613615883194081095196560156763670865474677138224009151325706148179639372966126972053556991337185082810622638357192179932621367772152685632111161207262382319085940021384251745037503530227472282264637818140420321038626874473722504841819720256680150419352485273311537316661528246453197160956133389962586610856627936868258233098175816911964643533828757047069440235491077143791035951586179859768605038941447088700034237742244026715604195695875950775488361011394079466079170269369437224901757306410547333496050764039863338613544206409223599429173610968354048125747551453902821695817866869885452289745651513205177346652374019480961963696727535470807997767332014225941578397794958682732197269801342559231154583677766866510706150378235079469238255055049372543247750164359735881007133084494260424005756658818044542913712778969628064332855095317530455631840578596621923303984281776490175727452438890539152004010007259300985991958602387786320132539125814004960631097480368382078005717359532389256183878387748759742377886036594753974625609109474493585004105186879444789525441976356764137885253804003627786600825715830969911240530122278890193360345622857563234034772134698223725289647075314191943509119737716875999022417146636478690481527782624677422165571348775796306983888351888869058404743655898891080019400165914383927299070625165202778110831255935720492821103820885064741192961344422539425862848975845844633358517712606680332391802934953587740823479770594885908278031502869964053492684055088143002677784593278986875875476550778493699048801099079659713323279839339490230897668459873590947648424367409275240743983224177308957512786404111634872831955882676304974316787432773416930777682054429719118335939297175930424195311195599040744378411427848819163001466796970009174384738121945560253392273141275450780687063305706793047417643909534034154458726956189698949325251955812069446349799428785082289574679780625999377258770131790753358737330768848961484142930936113860392394974694385622980000991666348514233926560301226007920172518945193665636509796142637728111367410011776487726542407007138418381626859447359084092298074014128786086024716457428665595613612743029636183654127553200758068425161734506474276324444812149969441180679158835061062706281399863279375121512298362894060256923939548100718367511985714140753696252717078415171306719948117738330974833646515833828127225597008410061531545167349247457936259889882022527997879857603904518014716322675479131006747803796338800612968647330732909812405516511688460197511259267994291352856835961014194014077229916834612160304570805567127398031617934240751317504588979742706779910078645007203928238647395188762758807794779772851736556993888113705382791328429586384541243467089990597988591179717759293092176106358823010973225595022616828340722900622964719190707109884935965548975858627540747092972769606979709232022863839899454663662052880936876738564278221848393207554073214079917656228119954144294394309631524773915884453035313285839983632499270627237718453477343382152121002984810030585098011680080401764105368530017014817588713616163427562304109357353240884617176236327047676042323879833246773614791679711188535929118747630932633682291281659874813743296695649376823968075053521497541949129449209704028200677236286873981244502309632668314410552075432577404025386985623475176651752297007353401012493280427599998994733404813876299332331243885007646801348760814804877119567488172239501593965241010422611788357022919314098297791648944724509615220889281261324309329634488004114243167433728949755228394213923921073653163017007619657324097557473022742173946987734857225562427755758782414053288587312032831500820458575089255492619149486431929092878820930707149402867602556323798721706366628710310096216481181543293931524911184912678532375789255966068111530701691826160207319993840809548662394257392149847363176856823154734298809475852291261450236131577511238070584320343014163029451329471062267752604929478035521607895557514165361924323643774918045252978348011054919130893914280023787836205936296674566322388676796885263166884789129678097337936992626205292760770069852080551540329533728462273751306267956939705293915699557265099996210200237256994759689634302852710329026595113619677343947274568488645961830145836609398915598075291544986695153921655476240832658490671144979908783637064312805853517455903056517431705712702060181145528125643346699451602800851263262360416741654335694185972520477459723337611555082260218041607933636190601529919149917836168613750593512451715567723384781249975013884386637358696556110386843114456203207062670925892417103570112772383850260856977020553056509652004682056575033934362310931316697447253316625728270893134134041325596962272059603056791683302614171766502965180684909442940391450051954010913428780201749926717931680131717895013961614424458245410992394143448535407394212308953389398879840125933845610067827673503264704261874379715893942133511224527779990789427845690477445996307871111792953891535691741499061849034536098836771938085545505848371084633611481967986439960905147313797260235387440380859108438506754565165313405764904166323301507987073024002602522650877773909268909304629358868891130211982229695232137984451948194638397681433004047378633002857031116824423917430478463267075352720426729840999063348832478645294300232093952291754580214770343257254202811609470843007524898577082277510438371973229284441865615510689767173153791634261709757674812122773719374163331244804577086397369009160417943571320783964022259924429606645187004566091987674628797110251239694527055959575627130228049538391232046424991184745751230853228539142706665291668231569930707830151612867099260538524692457265006906501439839943765437412992151685302798169196516314815483499199976873497177208709480380674290176967242427566976308046572843536389579245174657470156365511596880046210089347445081780018358162086485896173239906670916326916688453837525806266225937095446933330664854923873565903035649750332886599601758119516586871657011314819454183786634675827765712737443682370953806662795335115012712612050780121910220128627822110744095203151715598028112226001780790294577877392876680729580605526453863292102589465586991661222107950012099262390988303474750767860603881730692063248804696613361322971470284067070800290342776599399071454174484921856013570992570407324787453449733008132254604174893973123256310799347823040877138029219663612377338147434195964052144947135484724314278744833048988636587244338397767667159968089998675828354465610067886006164550566524702550518352211674655240375969341229875349059624394677951485354949194263170017216430562486633930392921593330525889454098375567755981392433482637825569920640661812651040476431776846664103092596207026800870800431015995524540859910684366410481709051532119118459829596713799382197881373968752773803476571469851736329958168851526679698838906058538078906449387054764911318515111120558893881880164076490128405556212178268353633611080132961686181936125942303579037616547601872464276395074311429148075120056085517545299385212104621003701292922802243562952404457765915885184660850086918876791691494130900256652495408181756788144597142834242720311134405891576206408147219165590391494221145339444473360792151615507411876765280991447160709949454738028647240150786122790527408957273185019140909693151152725783812957007547500291391672860578733723576066131221525831669097066542904710922335060483406372924563783850174252340172501608088235761152391071192491682794163337728289465932430667171888328009427203506724512626278647998886647708277255742227261441940385149158478292835603721815597611857047568489641800302792220756435626012744501845483034138510767591828267796743038325842178024525687011832040327510927197997750634545329511770043642595805484102937349778672868720080317544591740796524118640323855543992073606550474202642278528846764969222498626473733638707825692813338728249588564508577081278571586785339728569697113573831309196217010288232143872785532981626134294474824619411019670983053732533451008786885721490330517875769653417100997243560924719192695446680067589644455724737914104791101044881275519889228529148772848170577956054355418616715896083498435889856788249367680705357092679743158916542701856731110489281891120237588808376488120882326406960675319141236236754137652763159122352439371207633455502995025801939587218744098001006127133047435491059054294008157709925305455093188285016563305968448823346092672599323867660243964342759993165896871264563413759177414639856778754872705204534764993982120268182639146808197506654791307182521717848942444371541114819811135023541589553232411341027744621893934764486324552329798435371021886110635506446712867093019859682715607476493215992768811197691959318459445175484718344775493031594363855785115753834028462212806158578326258085632253805470808043631602887859709152982507828642202989093021383154809989763681634621132456488339441431874749996223670204138781177241316641286233372415543588560716881911125127508763659991156803482797020505351509594806902848669515621936800065950728317674183679329591804806988097070282873817743197471319145564380383691568102151002745910616279434281409166726838430416113331212350293707613258221327858868630752505297313501488157477935882254914546196470489480334469554821093442998066726972258680389110675072889283842866057646403122661439185777158458419377944649962145485862346541706893768222170142372400322479513315222315330276333455049739914421992751157641294314169094413221484823318249140906333676067717116084957248664233230565804259443121797418641907266095117361131091406323943925812605520917431664127459472213916585503083759067591376486410236109191010551715912775453308599699392087743630309017236987775810803260667481064374350790899597686943425838026340806369588534364547100628273044359736172829960227543668897897968294038716802499886245107658953668414251702422353440300153632763677524252358927892309965477938970334384041768630921074485403909847866365500048303254171200212219604140361726892445270202406974201146764841809085316531744857679649327086040015007027673269255318409714640859703854983246748151090311224443276979847883220399710463570015659373611728580892513093119378697757333799153373123386693594078200965210251160609633748715299215252243963665744770485518584481554940694379050332444802254044760109973601647044532768017562738143544477790898440699921122787942355457075198390934186861599384669051932790715619807606163480094224599186109286653118669307923935765326205927493718640437060064312231764022172739356752853255713913245520480119619921614247033829616424094538212424227184857606805112622719930261725883202728227067283017075640780187454406444325963715256249746269749553029074982844312759008946589190744079520596073107573434883725880318134102663475847814776081561560239727568837981805593705413905705780881446052320836998543517062830076172055858281339014986301074531741987083799209778463721647921145904533397976357118999580801701848538336118680186722182541295526063205680123402027404189673567302028094971340962965481616874711034357420317175512683166481709582482995018216476265949897933653345740406368259351841502286050910208102082726172157264668666015499582464083750478471349472022137386273566244686923280973073716644112000677103031976506746760478351948526962940234471408756162384747142338654665013318127937085627152252018978225660359505256557824091364534789387974225972006286275594872593382900431539891203523923941079523300683743050549035587911531832346534229109293370505415411719103434740447825586717961991953605267876352288080952230891683295716876645099551883255252794473993857402060683176191048524934313053189373743706630393250492178205401245738705534750319073063864996451759906961107132247165603542242694843622042253704102094944899071685944256858398917469668133341037812500403204069818290933729160270919038152858930142459396571275042371107363167706203452652393792970024299507648579024923789259737869060494328569809404821408605424521145824460701640978491414816816486679416684010880395429518849246534251508122969290042686050196876097213123830585398883867895890255463250083164486802558434905330364793068302188997892130736739960816538690417674431057092294676606892592843126671747734850745471428247504410629512159420388005377467438204575530684328550559421077651893157123697827389471209443098519936289492013890669991236723051923841885144724086645300227679720962302060568675887308685309540715993693440795141815127305352881657495716742023872628879427270009567913131939231147936066433898816721592963452016849334550680980515344087623435949583380491076966154882436798239709989837234302854499856032065627709949582052471623517111796930035185509800846227120095894513951251517619318035353366019064202087606702503433885592711229767762131060976433580441384049644337437768984603536317639794067716719110039244289921728515733104726722525850066788573418558787792205820622387413444226407431764203377130452912743100635875069222637167184702789021919289838711907173205095409149592275449391930995855310688893924023022890095931819929167583820717977499517456577677760163749090544788670354852997979053772427783581955380329942432487984749597684063106846237956157995360150178821503354207492776164421982335420332153362378262960783386159776776922974104772004620421337952581074454729823396926874914147501354793625361129506173237596733863078849833483679331353563744530975355876853556721560012209471761977298819336458789814405554278062847809243788527223082601707101005506633108856688173537405728933218392347176950943743179671050342284466892242509548757460019684601819119254985603783041902664088541387068894326392045577071375055939608593146752854374353953727221159909773091386117682997209669232757098750535802961964291238740805964290969736096240442808311675072299507020423649284990002475656177165811554706045935309372475272673507581490480642608124738723552276573448703255799691753067757314846105271654108425509716503474109312922580889712530651102180058745354746792631175209919941117220641254789118935892739985654960965807790475973446675070069741244528932859445957405702449323910183406854688826008667910674253910322419939328619668215850953867835244990774704527869538095738285352893732301783365063889245080214542188069440189571654327765027966521506231082625717672946378446110431953099590507230533359132418356096532590518372100662774893194691442225191682837290993529846007658716363428392088841145582247478557946452724455310798093661289320764860969979357459412584456462459757788084614170052029005517669343483642947865137956801290314897508277482561790263808097577937364860907991196774784651261379601197158906171465991224132166980086325754084025938198425801034572122095850812666072166033221333298346970090838350178377186754051221525391393602398209206327630646484511430729761097770637202172082459147324736871144379729773140102587673664945992782646557389817425440501680381212279860761169260775280832154166088900149864813162968273161377615335975075891108162357768306759948622119052651020338010872653554701669548144095711601517881204595013924645679525785936972897624553663739329171722257658566921807561071400801464405829962198156667179957290021474669828587888306143984800858656565138304199959629379140642910725938604876691677017094229831792980806221826293401808337399999631851462875891777472536192218357260888067125037117670115990367215291051249703654737897105309835961311368963143667695029579402559438759173674460188847937948931153669849983775829934594339276989506512595225239747871567502543614939527472503541267683644428300459007495655703007487679397714213406213844238465027850828714927071962706550464152920585115724447001029997859262517606286293975399105119902923452886649578573885465399301575447074156063475896001551095529794293992719330489720811120280532021637055065260854061420349452330669050540375591331903364740810641899737769589379782428567612918484689074599486987140330224254399117027886648995660279128409953849238024422189929141490492750647048301109108258331938661197770764376931847973788025132953430915916704009753277915254214186574191151966290615298432781001525686470037192262765787401795182973155565980747220294413920840204004549099089350589205698650875475135931182828089337583471250645233146057602431265833523110995253927338763983151667624355381680588112215740227883035391960669704574362975287959917408070621361944001202621099307625748270398986440387849487821027730439146377425457604276369769321909764597299159134853085468344249719161586499707300317489618511078412549758214887632677946972115190664935739128036442045657231485713194104099725471729977760665592467740900770872285028748473439683306521615260948397387794859322512223493602106415874433166527264896569156430663671648529643970401493376709430198263578386706495665481079929346130450383205101096306832700085239882664917496948253168858764905769970977959088872431534783093945122006464685690117758145315835689775614784241582741675262983615664926016261126405071007285281380036888494454290056333159741262767507295842230488985223150449564499432952754395981751927404814490115655346307699139491383625293269246706309682460872269604284012285137756616631085265493069969781397278564697043652495009815303052395740641273256239634748890184210064929963721599638378234406887158250068194907097757021425584183239710523310586506683682632789510928977985459930222710817321586937887963925527902651195310856694239298254099411250124947894048294140741190141795067929892818681989850676660764231129335739667242451349410032268780243945050959627251344378108924123012691620135413442368041229552087574041607265254692654576251351543756164162065509126600861016129192012099204771333430530360632741031572202595967303806781393274274472333392820247352211708034239216405695952822259988275753733689567325189365483607222714886371009716726810106566897344739694755727662196626534521906825623453640805096242743742578351744330271904923757277771481653939053939685889684790870029615017463692858224518642550766414276924968948165673112251623182571630649029733607197260780614324311491735741759289961982347170357798351395344547351631047398528968478479675123434686741292286842800913930265973499501098165514482994244296226322368721048700329757219448828506070164299461210443911451142273899694150992431095767242651113180297665330595003921143981593125145035151513015653219950663595520661530020731462859514033193770808923712687342085839784513908400209301791727376507112404705427888159871444063374388445279989714348578924562469611214330428337406146443257926995432382199292819042182942519145253181357708871872494501344905009274475676088717422262617118818759054283910031528490872128239534132519364325004520746481083660355444270024257235538693919649472981996185865886638396696775943783773761992590479485311688359413079089524500024596911871419790988695905070602272759777526618778945701213626973944310779695981210884165217905518908169628100040511134781335002556729436143841599803291879771759429645988375134198092203994614882194086173120610316600359006012670886205580250360183563994074887894405750627923149886977493834640420318738940057721923915049749207517756488448829167295378677250094788588233753776780935979803742762600334089416935841780053715306407738242907475961706812636921347306008985837543739032502006049279274342461468562139461239426392236817986373891860606127368972918490181435022906458073763699114445442352334809987443160415216335772484459336418525240615626094922079714755556901202207987226885149461581016591740772120506232921647158427323859286102934061381729593139812070916290455967935367112366452227730148343148051193422733975110535598772124538806345444765968408944413020711458897019338846390492533414643057353434339195565291268655907240485115017012323246766276140381966553007077100074566433901076872605100349297806482835072084800124635081279492355898869161803350783787912289985084412894082394495195863060521562292428375451795329945736689470200442786760688277200290386545749922815646279777461450753184765864888353087161991901346303340755690122242385360394895335753072995749587803185895308679106975278992439611632304000366884179931121907597941592111979759947149930330135555622266515832623647001546536347056996817347058595379199708670459914520061002635070750033653059256002472236725004333048139610888365183955172439133864557893106883571295668278887347131662076573059756423089196135883612584167187754662942769130313807199934286933473662343977548867097755830514628358469045128153261677720277977345440483619817599867868726207851205505290293924276685921016398783133372778763764761122280239426096211342822272018627382508837570762703599899618926164973309963985155754041569528793207324792332719194400865143817849857217277996177849155889718302796645118187204308418308428227536466257683979755444455562757389238752840204611436135115032557711497242489509242082903396421009535054023561101330757141564302659364770904869126087398320324174192685897118229434761414849593755170648579326021009451086313278311846624913391701883886049254737508680236475378563962462187650320660237025728845916205469283056908915291751890604717942825211041492355456148752557720609738151571643950430799832978278621942870957859626686451138453734511586996995061294436454422325980271498694698979689404104230917196533884432691061096703491472281493694488127398441030522276973025331404846987102050863473453050797623704846888472840587687091852519723911992403546510001616916190081365327267718595157769568673804793116642373894194128494418115209682707153431736087087719351207536299807618303218315763038395488697577182949152844517039974503556324773120283253854297324731917277747914881704454937835492035607543823191601571524901863948896363685187824675189709503109981511147762772212017423306510550163638399132099926385750859585076414927036213315289560311031850897944173919714327969341255281622496828814737926464045677691792651604210037493897797965543904630023271272397800701443149491546840183592650592613939608746088008103071040638139394788271209763149546899306481259188537121231537897690488787947975367575362429133737232247026874478135806653603833490757672483655991972199088702257376295566719807171776993706854797914425301686040783617924181988792655628591997765102681984776600382255905719721475333650666914200278272915626524630970660712778350893404917476527954928674904839846835265186165795259484380583494707950261219638265107086634550395831941530573400086368795459656128141767355960156373913047069088080473195287434385591856896790731479505467382721289687297927909561045896132046508062640808094217863655137959974596615514014717538457252942988579284911179596051492527557708996668115053348654900068982095158397743529131426394395062117892355373610822739673338948946706944730893192487023750284887900196299050179224452741550643619495457125061402922757814477408292431393868519369522392328039955546449672980972643244184992126826913604077209167041336269048892532689809125503846269728684544003879667751241178177825759122991396763756824541462113205555425019121656955278716508737076788080290809595365708254876207254230321954849731094567513973010083430481599477993376687758196617935764381186635598598717802833501572424548311040293349281495777908407454022488980452396093356419023105202545873429357575514670524491143778120163229469921878254056671902031839170837573584452105721736221456183316772092472463057537643030982571168884110878607869116959691668153921989881752752221043693116925865104617439299420742283800520715342562010099407005028685683858021702844133835412804638495231858330626951450869693943177455893193916549846713193279357222839546417027025566639245268896674772400786505090118748312336371761561330007686499910157709395510941815604071731169346911985693709179846211383424353337113446469414889733869539949183249157727838058024594594528440074529774769561818675015640352008247257636959950430373799373898867659810858092703554241557067186732258771461770655020232921008454264579091844303796314929348620058590177207802190995504287770114235071116304841140396368378649132562418753332315199603977020357742776082386680526993849915766870636173482715710691314885706410561918847743161087725142152012759172817729558431819378858908417991794597730529433567124871524799657794360083860747365629007613870675418119544694058840679331939989399599863433862183087375683361010959470120472000986564080078571821207841244888043024730375721486089011002257681064653959816016112793157230180967847709683685116649157904987099279366105586909213482176815082639788640707019497267169805386389714880663579012381893285838874589063997117873054308663419206656253611837527903035872412151955734370754536732423964224246465017653133062212574532311534555236106766252125168550822084197377988470203277554343214675635318203572236648987628897145598119548219159551521179885305518837772824635192824065713381966211747490434185358840051075847023774248875898875010423806632446352688120332018007159026328356177847850281594433610217178077476830464539532941415877559963850629263555722890938779004048081193145863361763356730485231786506342244115994388753473625524148333258221576887406635716234933482923516240221207413234261004401712238503661536098440101777715405728966209171485565517299674381315323015791062886065267137641677616054701303897118601786705469922071245811380841933500721648858745577599947488983743852959058904151578402595979588786922114868915703932423095920515171546844769924781241894777251216245928405435035041956986955041707067183888332739813875550794480088003012488045027577724712559202078037404606682270827598748098872358685302696607832792179834500971399119348189488941547790519505881200368109495852251279697929412893672471028758917422661218041015483701130296413236633712710326590487575300941330694951862558343062782749771510492656088046815858306769386378867669257262930299119177833443307957442772850507107105817245779395323486210667142644387161933211930582073762750075687506314098713141547500319148941125696178678579897790486834784888246556200237471959469930533534062468150519092683605544388904287725967885827390547520022800216379549655965170382005900101501064992585657469775318980814147747968123632503729921080128811633488929954737427269011075321357268911438437438133179499683102413235551565078949751986372068158306414177643423896637628243369430627369941334149169137757041649172464345894117812432033492084093937111248457383843515336080979724874434750362504736614184312461573117567848908686549854814470162551707299303479780806688025601019347528203395635218673186508151995771628253773058127649183887359100980146605490221388842467767850411691200320545983855491387440148240017204195322236994808852968318216791843133752796609191768819454697117623169727811219861814826255921009664606335332731010598805908214041556284973695210336332988068499147509992517679908929162075122566655122813797459311511059521766793786707173573752381904332075715991347291003048468638165255876264105421425437232119363146248253509041825373926457793893451931709285780250476092552490151517709813371188017684566344410483937531836404798668846494783797117201001718286299312687912377608401858062438313834452295756067887930457476907784028430753900254193867467728374064378457688223072165849432536098467316050473823105239507217722978302789549618734920334869773945949243951142180512280124197619564331819866412385878653889146207371099231848924394926826439189145071258236264966068928845263171375170902908488998943043981534378793270860082559299081555136091124207041490741807390552041240769164178659597192485602216432185039285235965709639041980229186138871543362119724249427953091935738151653424435146133392064910856704268071688780194770383668396124569342547571457775093066816406405354062905550964034483704251548021093737228316995892656451517434289145511596667307681746218562861663310423916684768257201692972939248176070890951269477924335018982413004594277213999222560130933071686221386687563695374169286935922687944992300415792185226429108469599737109198605755025130389813092290389645320163336320631535508417279608849176966083257651655219078586824125292784069722306420540837876966978778018484207743213861798323821709376551703089514201728291929550533715882877698569239901760089064694040215930336090382568798128460509276521971762095838329245185593016377963212268151735243956476740287432225490112857341205265091533439550119101545922437200304142181883497065639942839011565011472642633413133035690760068656280816070432634816318385822832407285514820810259324615883219323854286266194759132525242580151550318458398824797316690179387437033108232337132227542890617354747465901322154991831620659375051194061441460171962805926177903897937285655753466794755116749134034702506690321561576608611529668218801419295034332065369436302118224367902025636884661557084891239214297416213185009837109103890632591860255913710927302540925323793558122477495602057482672885422880748557141280876404281371546058387846564673184668455464246076220293278523823350427937491499519896303671029017117435163048898980712988421454736475672203695415790354396345266240070531406096744489845464981981472957067566451956545057660310852996502368942359287565310753530993288809151296900048443490230753394619506405326823655627805903593317705752078725020899937742320501433117985787154859413777706772319467493772474371093590168777263068863838017133891361654791152663062297756307083964281037854399056448269665180198545416230820606227465120680700167332475060505730093080319426956532960944277677925503252292745732823074853317332691293827058172201216349307821893418945652357848392560670914407719614580109014370994070846568887140815619971746791026358856050845011030239155032419223298173558894994347135827517684261054338685963177049091323769163962083201168682592728113339706221882482290661375719286783659452987257613477435752785900543769979417450494948064077262435215344947545837989385048022277607848457859025056499644293278601978601970054404510843807080339155617945035071459689069963154394009132762389828948828991067566347752523683413519025308423564500821094268496372798511920980471872157290724073674411577880023365928532358553811123505983265674174866665805307014536241349824750590251238177011041374190837728603328105050276766462597882276561830813441839008894634348702109524039943801950136001461919758076101135416248009387783060373147674502762064373771038571017687509410692889112849600749428646751051866531877514307715448288130646700771724053153397665949843555890870952331166486245966214527149887207720564841159090157915282328197379347223846031225136025947913147489997681719286200117384496773037170952114403921616348330591039375699011376937932802722825989606103849669232033020566573527138375569586340400342318956656883958490424543935135847650406309276351561225324132231882345321478243309051202002929092254143714771862897871798382323406164739355640973059979684363094316827030118928822842069246871555329649639957960137361819819777478607929393257411841996190533043558302835032468086666906532448774913592674846941788635975518421090961644010602449244422052718493042774860227672345286456949857683062042214431710594531489661575071678510312550833236234986875375980726619406734453756021886146526185275165521485686560637377500690436147943208562171792829705677576736371656210755305719022614603337075240819393303243547746395819435864789305892849987486130100204086879989739307273011292778975664132232598817185474555017959851534859856434980699015110687941737144420101958175612973666406661056587914362104860441004786716289900995583189480623052649509072835834701277587196671697631485599393472976480641256940593183817580021694076928996648681203591994004370510156178963312348251162860907390216787404283835169009484643129007296235788858517642938654577396628936834157215840851117724356489694903762851092225454636065777224639716240442264872137898950863525519069970899569678837961042830609135120882946235650622561184390255745989159695621366364932539426423336671459471775781925122029381181979975860607148579921631736222207777870465287423856974664168683848967343874009427333012657732011364476147434161019112292268959917974236011413856933718938357089353529168742859412303462353138387096375313973217957186988653302394882802261111320350544815842473902237655818913267230780947574657352747507587171056743013752122746525440842684063185978601356771793295370852658702421538292101910427350445553064453826080009424323657063004924051292642530564675713263240954077138202234699884628139425578754382656456642785873514127365010101856652548791202297387006445816590255591892462115584812935919672581642871099359975447393588181076358585741303572830231255319147315922032100841568790309761129007314339920128237450061895200442584791593563170417883422533284590206535707062604549145319492664637441857938551493410335320263440172040998313259428409100282503090933490996465613649072406958941617641994833412386162288186431876715513941998953658418372710728021126698729693522857914358201229638750463216474918751608772059479102644075567416242815434043501872181343793299855298020547006206710949989515495845958010521215490610843687247017692532373080713214028835123369273534706468692856751799565933356907432967167691692409806541595944516376058791271621245852825693567162002953763362190155818350060532259266451681576963222694784912495458640290936228722772239357164515844382973661257642474588254721331486745213076883686163348705017889498076423737684917480404973015330299951093782388632205357357536956354819322990493036307196843377197470642509728977499148208622864006076892304815348061597169452978187720649032494045489094814809127451415406552053049162294458921255033471397834871990727886281807141071774750307703926021814143804834473952230635621626012329449917086527578523958101244397683780869237997802468440766619018793029262694783068188882670248742070502037852078282934006081631849433300543469530164508640869353876999332163700610425017803586392704747352150339676722215878978870725691776102489926393508621309821584460507438160774952273930035257230144291039362822011152476395932499205721902851533499035636245976199317450210068279962802314875660890323324868642454306903642749110272211854475669004958879482842560300509000795887081888856711971242765851943490953140885018857682483790727767359089585527477115824765109857356617138509003409545695863310910662786255663248223557150137534028320589032249224800810363020598307862755651706122369570545235905521338252877742350278169544073611228550812649745627188812731944192652539370461210459349692530414502759865164734794838403435913290471367922680629502430223464139278729441800691382049728626147361901278950313068588608638934718028558944750962094021797796332852202985977942079872169783508961765514834914472604248129553683274169774015701214042193673378833460373532453104503324444702066545574689467094180411526403356847545711994569113182514544869691554643453077559116358453956720535346516762004982201146699283598715503518792920521364767227029390266849507025889028286595651130710821146346966156817149811091529202320529279589174291897327879986477542824347209756608320211840085374721662555832101800225249928573026885897804338707471105855285087329324327935433108364090645139881043980263489490417469098896473118961587682158991118786500348576537662775283608106374790212536684830713098480751212557567110666977692487688077793861402775995007685991842115472388595291001428444297207500273412155102204250672168167020254727184245951188462402008138501587017073913969524447856053052526190791418932004954801556303870101955157903596743575119206605591503084717023302285537216225782640695544216486451954250684355481631826977667559133593158967781241175319178863984531792587189221902284069867656687379801512553310520043615164554453729026916059868577243774848669216545965463157031058686839272000506639321979302531182709209527969502333742072649758178510612534810597083418368350664468329544391747388152584305680017100313593613934670816857304139999585424410401341305221106623020616146681372047172049204405312459166468567611651578013159923193081620857732019946497668223441147762081491334867391671826270944051195117311820860172892947331613331314837992515570136074064650201573134087093152806794633058725205289340378992177996687958549553173255279622382369716317688748527236975873524957094280675579253596181676043818608313412976378379274216389000651723908258385404879689597994892054185630535839130955654520528107095692619256178137856584361663220869354637435293611361775615126756104247313073663441295535603934521378017541096525846576241421059467066722160375332395464068913009605962027966784729772734637097703686823344671216543652568374668764235853843173727286611152308661708530526591818938580352831905297993455452934506409263547954093366205415737595056901421707227393680352193595936469894551098762511750329754069144362430693619211393146190139439733076625203431266983064411058224969176094579136378276039781598397576531032485971012179755973659477830095134671192587603432734481883263648329800688099927942828391301852877756694515817490292558836495687864606029273215199135626528392260691322305572923171308505335252371269929528848440673302577643716937757785105697449009159420421704945855232819841499800244849467840575689859456644751240138793785585277562710699368687459367515244753248786313943662597708899310925506831622132632844100728483498416176868155649953543477724395890996490834204201977267831043030232049417757624503586940895736756542853620120300726384589344275938294267294249927839915065018705194412581520487778307824473936419158488099009116595543543804447533982539721231024919588805857675244738820021908143979437787857255039948293326779682068560939380202798249882083850561651297769967636271348186829472915240892148965671015820153497008444347376391999724199884112504627871787248482027466722005378283026002007754096384744227422876515781993043740085236246302454759370401052045953796304403871019492483299263151960438401200319236731421119608116097254718469207806505904961069823337885631399581058515345773431712301866430873466092986735872777089525459848656024646570413882487526792478252449542108668498794364804819086047663857923008653586254157585857811312864563831462525938541973785100470685312493468469139842768362146470465478824875300056525551420420947947536860303689543162281520872866126501675585391231509996283885240232347905646671915292606816227897828283091018359765681864275243874070972748272307374111893472229958753829986883082042145122252443597962941407214055587398372674956004158461028591042503218656747795542995911374982840368509312675832132671015885801451541885855185405189053431175643119701698136684725063982374379618304336869497286383739448737548233093220447975601740830203223049472626575450782511184513887630718447631681491956298017724215258395575063336220150507507952144990893128310094523959231919124521963964123490136242952877998657064961129885270094223538421844071363075389687945578017721638541959977250427914887671856590762325238771632178711300355004377461159213184687374568371172406314006755268563963436951655127479483000547475369964901318919311646250417474901046550526116670467924507687551267045550436730751613695557112751757086296942816259117705355778422237560631745830806230484994321163794639898277969400258592357395035330014745841518473574461939528316194379502345294643543921996805578081716763619103978245710698152450230521039275188516660914157332413593113415705664906476542777729038839376513290706619118049247385820828363071450263601834722252484442556499577939749196172107074577851764713605995468479725053957132372538090430468249471833251853177680587846998430877108333214157458446170301937574127048231238692665725559231090829554525302148946482769175205551148225988612306196363123313178645465574074798133317947178987148254587194855863494691992846878542818435686718439607637395567732702754800273485656270944634481467566440801578361289224500947053218356795829212671624810057097217022353695163364568151786075597114705893386627329481507980503380996931775727405060812475886630413542856061644881538296632191674352101150538616463611943211182425702136375698193638183109733754957417644128053691528906600457038752197790549110662878779894472435149915664216342490110299865498645291433150548268344605991050287622416477771266629805099491560484881551955171408740323237398708851742431275970065138708260353725720281791544512407504357899457223799248414369576514077726034623646196078642928418848139136236445723963318242919916390920595441818855591995292565547218490658105099071993736369236002354435035331210463175748140186737975853836460852215144928647116728769218413815136746270038118057374643916820000597058582964978337868198000414537232616841162792669390005078240203284600882461958781526374179834123575676200878229950004723231429473113818294805444008863747657369248176367536320264497954336555208438210746012213791285219075729150587339222107706325601499496039806695923760350813510863808022283536103024245572781956488721218163816853160342020212942250223580305454943622475678483627401988080861773651869418159588461382685410282217581626901933879970440425617920530821436495840678115193840840480061877270884790819010056094809386606306486873173958245384465525033321317962552587989847300081254415299494044464166555275866521816644326723328042339591023815111200604055611507058975448328266454296454112653508574940527632911100021368046274200527506735281903769736102908039495141438412349620312155646660737514577518956089286165441546297399292863072040029797662175599735058735992258238872886665071287217325182426540115123403149757040085483066551435610336581087287360949211178404475697412264103278841009568333002282562755097899865472320758663951268381087662345229644387813441774757274170658952800220659530213054106165816938740766649249598865466466510122179706928201437491584611288362187302270776992966600613133910878908082431099519824303199634151262314158257778945206650252337023053972715629292345958176159079186454608112482545770678711719735309291382380488555243585056888590405263821132442264216798141203408349966721251419046815835888069055673259668066081614987577436353350749567078749812070948556154360921384522492284910589599044469146388476206079497774186103022274371564292491999174682787858263600656658528491231539231186265723457512209491146100813282608715885979690038179190737914957240269096869260790915077756908788896065562928772573767316541428899853261188338424953705450321529383836812712926364399528306956014429099047016481678217925582642449417503916145543962076778107330891171691112559810038523741437492496413390758224823622163617275371093095348168720087554717538838483357262084472144837797411506094795489674451773705117279449573845326064934846132774102784742327027757025980325895554568407915815180073109248277591648914537187118565614267959358144734160912668545924988438100161518117036074463518891912314026637938546656174644187689818695650090339234963221041502691567678636902967952099466282102874264531134761501769372559555354768235476907613716672367792771355980392167966854928129705944471540065213390537274603735342577146403715028382873039528094514431711168800344859348323346072393769372201743299308508588220760756587532414805930157346842788609458766445686930650453983592753384229777529607942133997358320231419153098833369450724905164318847785390024313895252502350404024538547615712949450298308972379244553414259295102890455312960996204126752136610103166019396174333092553268685697208577887467087440009466679014441833169147573568291372184706175923411364718233635462598401791541578720669557017692964655159765181868599486718802026423036113564920355642727930132879106250335906355765521093470585925705101416376973710160174680002390150547374699574591588772979009141195698519883146042460958502183814884915020049187160303642442240506192701490965962650404132501858284662094340152696644310518168195332337136774202235957434857298343886717616664204596571395497184148090417960058556260175349889331182622548928418980303094287883619199482393800121017333068061566204362245059717293215193898952967530835780027050784984058973960929739112867287215317729085590395824503338868043238905647474311674079891327869599263606995202197748208247746054077677819218779985018483132810092478652285607002115831972123920527573769124164555441145902348886779829774884990956494482980875379131593701016683197608222030232017546769426087511237019336367735826453539148966792694306357744232168332323552509575492068113173435183681711388260915508304359234595373911202055704591481690763106497809027515876864066552635611035326040070720754904448051142723614033050900394460362785190381073316185061539241823967311992503923713270213092235246003085488589095363995285241748817783146348414093705170477143567698767177630660746391327676820465361701714060928537614373726417934418813714629925464135917876208692005071572690346724236024360394608135669546601406628172521924457357339264049521764941302466572089238902587270061946298873314059704072398526793750907939201016729613310979312304336002306053143769945899995925316589326689560950165795053372473441786655260178459660422138708610665946248010507230657347763012024050166956536915268198180498154384182787029626449834233810090969308912912123870475686964930407262444350530263913249613149236757245686219030097238981124382481496772875406217189138262411624924367618382180543448915029622752887133826457317779184418851447887802436663956421896426565029048929987974780751747494382145438017360849828253428088193356600274102635391569114116838199166757301092593291707483193029953521211909430475973135803008294442995283318164661758888338711467075187254556112687030899298762482404941256539621468324296934213597900464135483730154673244691059486446566827161336156736432693414961642078733010337138831720884579435285926673900829899716075083162861053088117884472303636966412402739528365882010755572743062466203537336622885057225015923192871590149868262811014303140940823064011192379081002586363678142231011059079504330460368703563095972506404409225966322306851706810961980856486745004842334253865971152608295593470982434097795489777692504695451859603523482091372233684976792179405091036303253596480779652409066517695889223613479183155835309512665128062910587296177883028889236031920916852070080891640348702936686697333675013875180226354671041086035336303190314311549429887166673092245622347054868558639770100772475296698826855404585442700868089232495796300072454827376016039769507482761153628928856709192703752883727718343019971384674814716072477527680071978731364426337750093657775855758319064781551587807378657265072840942823819382399102521242315970807482046204147838979703155801816148532732600165414159591197512938261685925395716016389472696811299045750154724415470665448083756028726866183300057692718427529348804900022499171793162037696035995283525538556755929145112914277289110384557381171969524904191922213319635736345761102948326642372978649804951845112609028573446007174897819755930336373778923193534486644713269092825779539895855672229564124151607473155286055417022428252264372408571049380642597873439745167352166277832023001729689361718991775549837763869035828591264489086309517747050037901371694888455826873059395074971093413205299167280524673908025056884628839044527477928582768561823602330359452065871089005386719715677101243584243500142972610472842447839489493678499176622971644477606383145904453688824639430254856729149415317807252714661594344389899420052368438408820429248279133384498207316578644517001245555356863282025867656351820512890547198915633206177670780193830669990331257940226361986270753047308818050282542029505247413366752560402960743291318108267469576214059841094023082169657108496445097881692465694333434887962319270045737121295733251204726296794106038584020344221057164749525417225533706300413430297262935896658824353872723566704420018568250953785178173135813262055965850146694603133718545783725627626050601977941481654637798560054171030790202370251578645615859743392849628230842016959836299004067217958405161075766545610237590197047339327657356047937409133343127198962412508513403581389278226052169488548455074362189851479239302782454032979541638448611900931877296538190373468235060019525731860829331999810408093576819210700561183904352078021566573224399356546071835770501950237673604724819220751554035348908180941255536071010972813002320158714957514525073508821308541955868659082975917654968941773878279336198733308046791976247522396255479281773137177851246984642071598574038330759791744738160325785584835988292003799365535856757006492609040354947616289314556372672182997115537507840228729233101276702635380873167906375553553675680675221188709703554232953661264016410787323897630657813687113114686471412498138981760851036761886820008625370249614981267001112464008866150758318103651856807098949833291916327939700408595711264666535549992431127675557816483323170677270813792535542927774776374893677502519743047168875919341590623181700872911731913346231770015828721619565058701725985149664979017352166965156959797275940227157900680550758736858239766245401274465453809144257317209524616878260807473203818422977199544345442641047269625509441153606233836788744219768174228562245728528218125104152328481092504022958186193365145109126319135250389588131390358149608732047856264629843364802198425176888419792188963510862528312464264519986694773638166183426112448836388797081084971160911411559534894722549167692798261965244532971415465838883652572533297503024582985389850038337423832132710740546050081456665034444671185773484694104655829439081527578868941559999918510149977127590326674922387497245939345040734314369521094126640073399103484555593610429197851747980433283847303199777020663930491930711181013911761491315520582615763804001737251143023042462776637272359739808938450969167228931104888722546174755161487180554794505898240101634207531224086293697966035347356969669751399295437721954256011636053404824718084370876616343913136831513359888949050948360333029293145116803263488057838331535234240075370950646118915944246499938253962319654316013231530130995189286566944430205789444446472120645443578790915898852739864087485759410942783220840876335949483429688815027407879679224291833135680247107074443907945875738390293231958639559042743372002150639931776096574197391745365787370169771510505027109581562815153952751227678111034662309507069701104069913385407674405880796948190037322409910911012915373693046161224688520171878974131868013883257902915978700370075108772542325495050391108771529907572031781746313400782329681516332023851952505950562664977367940824540621272224968120130816024622209181043912904135813446784509468338217446940037708224470043622797875946375040669652765959779908056027026693936547949063866157058264872414444093093045090649126827098318236116448508385946498127648715561590864905252216940554822083645642502835732889085979200536013295152341154954083962464858841533032280853725049214019513788687061204042622103799917527801545117623214824020705400520068848717384341508181441230484273342374818109632769063946814894204171684862175274055196582036287339106607988793499607518373532140389480579425927320372227448088575052133037478351700499199241557599724205060392809248111910086200902177457569833179928353256375498456832631264728208203608634927403456634210398612051013424050851469211051003496341607847243238006312720501971768434236189002818886819929683129887046048001471627352586294281121483758729365158234986763807850434672002065313937712406215620403134394017027809556586544534395687640761431212069386957160492647115793470679717113980221599658592111279956144192154080197774708926406536699508785190070419279248038408676686852472915941845141792147358783575814231041173790471212442803189583910075317042437679701878767132596210015123621854486440758070952560137921419524066126061538185363934033268568955260017959145205541022386108495438365764251058260515270917835832748732143465720039070018627349620823338385148429719723338245504293114288418291787508056648957360514229965116753381844899084784598244652871706131603961714210880747098632898251217974762328073093318202961313314130181305303481318474025105980499976604625331153088001335551843043759929141263369041175998332477444872555089948328325992700790070006949400168693426875943036570905722509789240079759588462818323130259998945973076968912374395672776051423342472059041052358146895892189483131260790911910451319540393648780043545520256508984863262858267192619019354299094821783493653711990379930652059672194184215961195862762524326010776857205226155224427797149292828344726688987542165154831406169276998066357820139008321443398558465522998724267737586560340194933796170694537752237109706674258198786219373048644743891157960790285781931176189459488538257271837499284751187161345867961112499920262915390806136038062313565092729053260100327276391804014076975877966970381807193951760500005244226916735463338835025876555019653836243499456899639396399871659755744079839349472969483755430320317145688021581683869658149590515237056244285916196466663059863402636276061787262240756121118339187912032009333872898936283886628707772419213691868625197018587745100553878932441381900027179687229489737373819840583089554946010260588089775527032454227410975889740857342475298355548755126842483474774862094635569657807818865186051518849213080201841948409728902420370939816801976881059381947495093206542245962055205124463484168119880468254031995734098187949591196585248504630535834490228062386972362947656115126968367283285615589035248297072381947197439203689382610094589137017267183162035105646112705995082264708122046305112676758615344781056402851193712790602327705117177740151859503114101262642216541210901778826418636172441035822011758414621437531372434297735372886015485188085869777630451255510423380828717834274866138871082123718567291628491124751704296312167072529970991754348192218972977204305317867778996959472946097201624550265334651174779345963105379518124608839543032671324341450257389875375256663848851832143004546400743113148818040748033098718641398395635214409542967001560309979576681321119284314780995001865251029059297141656070266684136923592664396446652621908668820051831495992495407342048941869237457169914399106822340952769060272249134843387881259157813258296410431029646063321354444853873250475600811944640081684156752917407236223159666763025164732091395470846606967512719747077083036111600906942780579363570611579352782869636923505870795838082151458197526207046705346184228339485311430257678927463789695615622144825905445500773624755243592137387576544568035725299708035215206149109831113060471391486107126062882183164401313720262346524972756187688993006390942733504551823079272201460360312077297128763535351526856854936779509862232697488804325713059437133922912715152572249037021687041472462089865190910403256027082602316777616652389646910421949455176521261616266462918171185915623839996108848901997889007115064095526946534724346108870532870292632405301816889317008784448113109618615579519656596486229243715097109303064240791819461429936195125630853108447641897687062290011022703111293957744109020364099189089108952681985269967445449726576614358397420633492431647851740560741965283379363142199724868891760517607007695371704673092866915392822248459058363181518622080729214005739782221849714228359685767065253631362782280458315950589176983964713287597763710362642053965985110642688656976792194536116290296246770134973508210262964076562291192020910866949582489833031990888771189526540585321597209788171034213133652451519882828803164276056617340415420938120043348514185123834897124932004242150458985936020562859162977671298563999091186057082192122828078629306040466211590419254295320766862733844463169864561316881152748012598422208238137310309062988584997000833375543120511038787614572029141858363592182837919103296399096840910308858977905677060242407037130344695809144182106388034548132933629672594189229588550879285696248989046484745126559629053404426792512794041095449525015308192514479151183228711869177274052749156022867226500725779270202518548829492230848370013227736202453041489377785733858808756636095021137403844220388306493367189240193325739794877024128090430351625536821253629512658617597591073237956657425297446611907767762423204292362124330828969966527102144901889780276066605042439381431645582423743668414263547233570931906579271385357555967587074040662922115723340830371489692123697455428028855140638934663006373563397398275097117680037545568530268556597865919818426355290862357047266584987208435377863006759905807165417781421676797630683974983819060179364592997461562405618617000251531756315757257815677031871279537575172134015338081532479654115206508704717872279799330985372022997488350566451085936467109801262736524233115876634708864360468229451329333943245487699619978464278954175200898042076374037562327668890864141063124351254565045416719299812001690994704373806419192518836756747838898815100125410450494764158829137654352728461109657025489876537367927097480792096086532674940236404748269566896256359050767023616619120321498366124150443817010906402425676657396032206321010625693091134659043955100107715171325227936232612928123211304676046761435403038976160987249633776384896019639026802674929027568190313425022229766564057114386753071464671497944537594880309887053196053923964035474364044459605214162977916563255875740698829075094812739601902990682409682897214780745402997803647032995291083177009080950985116720104232642419509369060775868151177811740480051198503172254097057150900726404450978716370396722040055326335605489538918401861200394827523641384512368217481359750199694601308804325060799797669509127774253012524502026908725966136061448935655635036732375213998053316454027271687129789167880941274770585950774103987708645179402486934951614852551166503244344281105747822225824741921841838391694591985330190353748976975913597393466832136405357227453576188738799633125638278505942039999746455356133507632924033223501633377234098035431031816742965864620092034961193855747926142462792215436537789379157665518911896892876805873210951720203708157670861138464967570547132099869656288707115579160575711822099669492162687689279183431694322122133776637249109269943917457833813189101349461452609218025541800459258040399508403799894130222613669073215832032994921213500116079966661406869396961578850884892678458034949321877738880458740538173250108372721614556469681491828440145217780151415190849691422017143347197151675960099774638630294973477487742936091695130140901186957337180676975333937525702171865918573188410302410819428436923649764115542333690457436862351086963069382015681573890607496798020980709905696485314195097591539058476307993715678360665698988893972988531276165383772165234793449852209634646436887342245872061623713656319661027986875851799485934905216262048030488315591664631737413717827309725015840440833946466432814095064161092430779718563541759401867350157719293755232991626960187013258744386564038548137034302503609001198334804708865605036926176987295124143187480803057764901273532115781151889831738606345574866067872896185421860585754483575915691387248612635129438351336783738157735487628169531804310183279724723850267558625436948182289001245556816399261827119607480156097191903563883758506307455934783411278395136276470930944810126995304616764702119906833495574090682016014162013306519124803244916240878218631116781254019015502775685133397451515176366303637567803868008957805090373692074375009157270371050195573879445064538391680545239851509101085936137701355728196518424352998830680448291222691766839681516961511173594494003059922773456281900495110795747854483742808451109116587687993939437353619169465394323006240867675454478507070894490942838911554684696534746965746224518172125340674437408818432075359521634916559809159060012555972018864950804137556807508495462012769570203665186947576088969273509142106399475119004859626238095952129245980222539529222010948077629381987484764288183524310628184369418130294569672288621272465682506082551379478447494365954966937733731395040030050814274822087338515931761631843815936022350647731017780743806871510370914541739094019316936617582660887731838716018719162090621816462180024908599938012046334332186324180240546354303755232480429304702408247661705423812877948780485601659569284856760982476329112212896049347978080222351112784985037763199593226373976826244368443349342202219306692183566690605318121880938583278612708941005608500923609384202387004740923377077354388189594716687527175957053240896922322794610059369784940374214231529940121135076702057124902755088386067571126859601857725625250942919139044870293829459712235937467025570784966929357360117493005598136402337668774284695550320365376465446383424338790424825467308730234397515619816990053219246274536078243118685805728844931509865341956427258465358637871775178244499856618923392894724507676806952622991095827209908334835620032624050624977295046229119539998805860813240136440209586975858651793502227057128103080970990734268682742648454551585153145666121581596798254313951665095762954204891144709771681912516891045791337510505517512523797809421809437836023107380652648809020806154858545731911188104572990416616498131572884477692765537053351346901315010084096746126819840073342035953341378394020641627957591198672067129551637047242756360199151266071887152336018400466396751232312490182571206313212422466461663416105733080511210023066097692789300178753328997771715444951007346261170396488176452362097907537711348498893890508831613637855689601734386684938344587547411275561238881585470950268107613982421578760057613124402840695191039596961096952710596707655886068487979430047866652847803109163689073752206777437081670615106341759567858951546434930807378776819160303033278663188260321968967310294970781928711325229894046568163953855335200149636294525080623030180746457064230792694079374547093748001279682608787417029729480543077876087001241432097665854827203820971352163455064606795791651010898105243191657133521222750626991484537656669753936894037601933068944173081811299187354216678103649077686086516300915550899687071935852984007546046336650957732357034479230202022968298725003014954293085108611788675644282600100930018225214323252297935594765266376867741958367142354192888066842898710379436451671188590237921000187264849900765997106225980205311643843782072544596301263047671099752331146533611910139480731034659392571727485796594498519062833162707504799678280893645135937730815692006289790646922573722459768093066091321976985786808902669810744362498696003953738322252450781300514342976228818768024703604850358240369939579879885687085436194352363500687227733431424967095109411040774975831540476038719450446515733178676076656361616044533752755332573490167926901149203288855412548585964331766106299737011343653960743861997076523223509164553364794595488698679771584421571407731596889331860097354660299203870097739021134508836641774150884504886383226345448119518834995171283532430438560816590321492987789354677602889148768872023527832788634169801740697332085742897112162957616253654958602487724900959149842243927655234928936258818789712355725878094154738110017122297828488962815551228829452653553362121186523491784265258990642002765144400294597551555775509679622257122078018886666111909690359025942754981810300704951246466157412881223155044359777025082112892374455906021544686523183881059520303856348593117757410226265388338586329266942791493157959827124713052921709536122527460149505247782613693888785450155838583690700732099856262596268560192059241461497766266826700708691671258270677405555305194802382831431700908797693416018192362898442252295290255426933620493269763558218153222137131240514015006700141714874597134746708918484935951482507682602144694749170576696033882458328194200168221774394597942574164484730885746299761468131778455362306638150803639576782738181105032625522331779637146015943672040811246468216472800107332766041528346123378855624566609454848434797541597945072065558875297394215747445753554184597465526787759670346200240893925419603131642298938571064125297619141841981101015513308553695945371064261081613725379504711068057393039445804558845562765107149131205079663893990035939952140080656321112258262506023980562403179668996864705423982262102531475144651129010669865875148462865637130202826970056098454839968225066440471979964495254353641606695616209440555472149259408153081367779951706274432613882971771176116210742761632230565513405596814010932004670648996350304953486344228473736665262187928798689183511906660217949787116747639387410021144416973831530014480090024304289461089438373021412957874679586637981762360518335303076394142475645868354791260003171967519585853266838487017201618755549718154079780399822161254926124115184104034317637353510073187625939401873550607694341736725751723760442646765942549357882381666184326988163758025688912275488346992470939715356976410829391518364404230735731277850277202937412507926256541591271578902665380062597015505455866474660180062565893306616770641773487425331272131646782362144364997024672586963199079882999195081252409333226437623596778207077777731480464888426284331613050975177725946872921307202609350977652473199191473617442241366338681690256484825604242483903685557372521651797343524924978463811360946933273450174286191588426632365337608970779823399107661613207237847751585789159102209449393524574537680184916955103504154345445023336589401738639189389007132458189193758546747648740470080424550132003465204016906297751046304027210233474621932871392523491404045377293326841308843246041816879909400914394200012825113487047791182292288822543731880540942188235569098018404349610140635862027574287708722779276843618188673194648919364448381729108201668373695144760617265145386475571767579682775894907564433483654178319749504292952848301996481130979902275373177662602535912867640170444306506557365160092975245861664914486381094080430522849401884599394182078710380232265832785180215791057877604272171876507335693775142658103647682048123932605282486641354751406120992035679066513224570660900290564719656026259338241761746816413547910183030774546985015837297395965279540646943194430493388496568775226823950213561192798739312596851587320123515064291558693980907754023670686185397127709056197308541126711754488241071423574451865397801518555082537215365906433904809186851821225078462516198374187739976292503119464089145370990444506398742064684239828555510727000482586226087282735354405807075806985245074632244364274910109108462158020411424244829574827767599365476099907088463988866124704522419981201912200156537996721698972188456876786795896108959689326264345108967862018351529025907728538417677350014933431161169595658878006914260130943668486476816254365784326381455790735117293816964168919120204891198625619363537719219984892983429382854678845660004338492328247371706582990034599866141266522480489569128018831463604042363435620245444755370489618377243379579990745173882635156575032559085862818178264282120269136111072665038888113423568925604376817701375529969480426088685698189129637960898145547994478707172722564674900224788688434598091067723725787436923235850930514417990359393221676708976966976529505765264511898256509485406886981844524798574115203940694123518886502226223126472302720869974045918953665328676910436141687608399861845847567124497182396930013632537955767275746543552164771502006679269667505851033646077737236194482109572771001095578669517677387888064202962890178160944980671868306617358375644016105161175671624782402934122303704261512271666018497459796602450556377784596977199895036124737827356618753356316624697982474368563377068285594047281933872931334980739864388525796939666589767900093711163081098435739260930796049109451815499068566087818717254097643006908714375995450020409393159523584290724282846589033249828998605583748245000133720479596171425903841150450069288213661697929112360885956669286035510605283917059859278083840597593950572634575206590504940581781734333011303491052451164867038096536163430715176312222338475405430135714535341674566803170764285810346719688402954605279275014988712879126565406336848532590465333702990065598454499288327458256240267379471924393169609093633864784582289283695317323201913057316596580311516459993178899159055321157038652158251558672160053105309350387351387866618411001560197291243370784318144064189564588847317367541693964282802996946448462491180372894096761421478507332866626592800510166025512487659836210659979989361687378056320140500435124062929938344401088884016969459476026171661234665162287866039013744370412674910826398941442829562465293510258800329138649653390708143425772907054190747861077515437529070270146874991618096914251131614288953660622295461610924941474083251636995062543539967580988181485270567203526933813604175578558949362252057832762353156257720223263324066022183661675948524021285527460866194105951265464340590419499468980626223017650827123593842769858478508799873403197321180562047024764475558153356509146941996005902355502728351733224451685702676903478816822620809475980865605385397222369022731605152977135781218729730079893206520379857376386250041699182570999303519468854350215878630360506009814814905883552073343290893203309978246134738013657985230472719960944689593554139374393755707715190784805364186445909309018674926831269614261315650951206537726527289381042425791277224778651839588154873090873171437277434979588040933799017033613936796408895451282516324543853099302319297308443370084963081845371517126158045361863793341773436475627998984632744993231880711808284740718433400283035200201552736033300664435719822218630355040822902014216433856843830196974882495444599945781331309971875468076071833375108911832584319695291593408832525810204650971576968802920302208684667913845950575991296214223753368532867616671194673350820078171173501877193482660697219373438908036107265994372227430270974813827327109788304735605433076160662706219113602890775552861834602495215228340478064031823954766044671507697496447303158293752387750725099085654623026595096362685211380691123327501150758929850325057767338541207634324334482028749983660666282978969661434339277429918256307121187724674424071820931418454993403477433046697144367697203773494716635397743328015137312292221184217273235826980525205104451110949874530422669829802522800793208050172079852404806133408130008838733553936284574847435046660001637416225365862394734642090270318250703078645869218721806973062468774587852691442564730063435478773065914715714171824335289310930554360553068777642800044606374262913791308566575952445913230199023875787378148368424963230726690951894136836180746133463522175070142941338674664860114458930513971026165033770970309130564178726067366700863553950843612389158316435231413556834849899204614111701721304383018206634927474982310289198789794638630965715631717339103695304176131526777258063704483199586623787739632318009614156801699142956134867109094735120869082491805454807006649835483408360412551435262312498985505916710776015995725115176137750240592554580646863836623699058111518907936964421224351774400987849609765504707321067657014182157524876300580508458064465161206824175974319957105267775622094351043485253797349015892646994931864738935149794236572316187620668046669912357669286885612434816133407362250934422735028838786107202037681178236250181129473527029239132601323283941231647491172104250890738382433085483910392227209995497793948518878177850443329334951771974515345864260313583648481828174314184877467348667048616865494847262479419554576244511397947541998265732025675086274685488303022120563837151437434453024316271117987044311116500147673577846431121979152982185134428186012397066486785850679831581147931019211191552101734205446132986830291399193646962057262154230895088849588438948196037511512691947357693323475932465408431224725215657250037728511379082611970515484876283322713791086409485207229652092825228542341721325747401907647292625386201906247387796104563223262678795819960554412108073916626816166753748489170847245355941365230696568203902720286408077195721999094104593530688060953606115024539576803146706291138237109745631713578734368483739605576470483464990935119362857545600920354961363209446580625186389515726139327953666550649977221493759459989516047797930207478800920507189086339280702498424509726602196804559132181858091496374225822107238192650733109901436664212949266886659347023178669449712562942504263449609189004204920423692880850153666588268671377887796876878198027231462355564522892365506061500903605305855758355080452423886221577131318538511151787943847624839459070043903008478444596803685107242624990358698753500432523337830980931693879021066181299401939490623264428575546314058187778098530797083990530778056209338449138834925509768008775834011891387906265207363268693844761299958238778847037785593528116462154795991346341345941052133020482221866873215312245212230594916306099548305527091361116408108302707633936917728168026508853397619508808403569496419124880660513930595845212564189670968413770870326981227556531195973370277326207699402653927323469308026434897338463422213896969656729811653361427103285680626866243523820694094262474549586665265639638243625343078353214680018747751158813475187039354543102626318244190072778717167810556529345995991931695681481387307832701330357179599281713017076787901736315108670723121793561993536455511834513613970944041312952800840779459471044746952676484622806289538548412675002269163395913226178838080942021423869538642929688699709677084772488857239149529611389935500815622441970707803713431932784208872357811583717898029843928075841696568024253813480135641528660803153067972837208244266056570732036193238390810459438570815148179056358897038211308726040845198433233295640157581383894995298657012583776417602357067980894570802466599861151132929458419718989834304511482530757686867972990001135622550867156846109174753607660504647747862170115714894176011791718662490881840361786030024607557197645458960593951029060841450474294981694329897172210787220230256367842313269659311650972137002753829646312229031382449050150768101135458592182914394718984705620788202339089169049575992903506023817635669040358715019171554028044170600323493184678093932299715967615445390396618758457768360041573993822691227395475089535750955994417760463487874325265434811780234921742503638295410865775731961432308601453582859813091648883849947466435753990242776301316517082836911685498241658010166068978649881074259495322160436549752203663677035998104432782536889028259645784084697416192613216466295739915961974791043013275908184283268032825427759591443580566536296231223712735013333449502494797689929726800605319904712456227787092409033986967743158446128412484072870978417012437205261170400441973126984393955207096314029623240942594184160927245874410141822262660690577044813741540893177770919189930357384896622481133615193058225989251869519827900132926254012335537655432893518135359150031501135313549303806574206791719015753768440798724233188073007499779884878993603166883569700994511227951854826473779275529963106000235677495614538976426967843006735176610256605399567600320514579488819857292574112119656039129022407711574081022457302677088650274085749229148877059482904228250725021717500268228808704124117293156900779512676774457148307320800464194406104363645849129801114833956413825900938282705094354859782907576230599250212509002705613104632654618491567250821550092219139106936679136920325170443593526354319219445035128166599288728418324950416090505642747342608845919501410649838897858358068510793643685045700423955102089264292247826741057335861691029741047382591242497528891357966324199580747314705318421915347043252623610406385540906369817366147595284288277716228796997721289867678313072239308941185693620150479833490262819182284423949311002895606112296230291337992983228674780703954797845596675933789617605518045828856005028037145164653313613253350043053539445041129995021051487781016287329839873490553105715108239965862531910089368064767682309648246629238776956501523355744959836424152196531555613170569562490163305831060909873054096348967275837883093119442264309225649517936350527749695618822946026725724747704888366566582154396479679998795703663579378517270172516694920149708985836382607304291335206426504696694142722686848977902635501040558409039717747995151089305519244580423989817808776025496991327978114281277803274956960866720943419453248358627383624128253084727131023549780811173170181622130379365104104180507208466068192703621650246905593168490085131380955026783351750154272890009096585557245866411181019304594042321466359576895512795715076378068367747543964259022183934075382271936752500086465047664596774288376969544805144761577812223972214329215366227307482187147502868462700447779783318202720835568228772838365815904074439985864071400244860879397097277368156289996358640646147346716585484307369550071693761164072942324020808478695871257224531189914088132673791273204132400469571274710908419259182508866818616141417554431666816321202367460614150216345450009200866272815986147227154432530688514726436464550231071942934180727402680376443107941032253732526277391043513614379099401729702576174085633266001406191844690417940682270441384880882933445271861172610487915077841696168055693476666530215075095630908224684759327204885428385687903349337146904476860744452138825029153422782920892129686198754286285532760887388106195808900625695895354773084319256617626845117551028273857406272848351110554400526691569630192555776318320034088671439719682301936702084807538298966138828246038348570255113544110303323670319977952769626531257038464765456749368883953022020330975498227198219213744118519693268438558815636948083677503945055958222813713166903153306468942328732949213045580363523562664382216164713609340333340750370293677505631054901642149424577813316161329832476398895670137132175652357163027415997114545240163711035420997925012741976331483201553687484503215372461586504281621463780004403523769400972440252027375716602799471680966350438559831427061105849912812242180525439714350611341548747272959886629189796243098038346451696537221945620098722719981483210407640358820669772011365153690086740970605640348111901647689472930887700115973649284496219899986128949292745838710789408194080914993328486516225367078646775887871385606716583346248332294783628369498764787272252851999946133442907234524145962866227958966673970534248835751299148916858687834367636290124718751700599226710384092396071266968861059333410199118141573848488015172987708923116053289785882781504859949470959833453464333527353376868273409579554577885394835716132478166379643676688401279380971552570788933177348452872653386219495719490392849501604561958105936122560798497687450813153524716580405060896503710744048293486739691138335503350752275045080048442331940615373728726895637071039217746627221099579092956295754736129085563160302727434723283093440601678244898355850959814830963411608635729655274484064138218837803003477301540493976964060654223431493910570206948908979342547865454201175115308562863091215510695812701300460492221669755465533400040449808362457975706474734425001877557842396956656288984121477135043650272888837942790838794147332032271777866795557284320213975491728277821809433128833712407629388917428936907248484275373340456192270211560078867659908728267371074581855718126858598360061263288347430506661795252362263122711439059407759641070836118250431756936200716299023476074478689082418694039684303254551966817889595529295537753647862429869498794026936816372734551397559961673749114457990058946387395528834952861171176315287840813310470097904341763938696391201943688655826017361260400511353290893567290026612608738402725722649138934533460175109498257657934916233345777730508953093670676182810751979906720054391843880671481803560333339012077589797185140987307586594666068479593292613573743809199304200649837240920428000711562290193671053923293997892872902245835983799755165374973223755087135361585324994064192242572171434884770039045828227715179432665976359991550277741739859842658232637142586092003957714545353383513787473821496633643357075252897602560914820722071664162987568918504367797041636423631808318942983893349822228394887491739344813668996609123152864787753214477956208430751194480445144399630700264830683332278896110309079418028846142089452266029220093669565316245735800844537558984444908360755522005653204966420152273811481719621831420886729869867879148391307893812701847647196945711564380105472407530628742545603060758541720176139430345530618115569476964759571686825729182474343723965877981011987510172478828923033045601377548415218977588274288782228912093189106890159276062894612512954290051475114379891229646450258695325277085917360543965027698239868949687499857127094167803395182649940086986181169105544355193798875554163807656728329386748748514370204015534614423428737084136720362584682602516025818436790421087331196453372443313955653481868196884246601147023320699176948890199216150357005427988196444127546030010129119627678982947623195310727575108664903855928716114517715713402136100113027820751023547050786067276347127325072957120556902287697943971883806497758790110853953413032114653585961268208815018327057994718522313707625119250199632201955380331440769265876788295586176651988138982094016458045288007106724511001899125023293812950739746379719600648780468884949105978614860663172564270740807559621344466652509778849080917587067261805449622021911945600650985021601402607900885266880226664465919872772020644139889519748800940869764687092174647315016245586452373601649220535163360153568822764608186327415715253091512736365350416691820536794740042202726771420208639917995263732473768360774313375475492744095071003081366293293818583275139268126008463966745610028041248004546419232746674311853546876254024215001341830325243792323843837188582052156441259923277497252500914025290954599040104177685408841157474438605462836293027842666045639557257008187133703247670372332915455312674304534371750097223585460243936547744642376391214728065820903643071532765601783816007987130165302343758191929609788049714390239217442729314950975727832025104207487117451825612038437749597562605022196157448142239536254905678048807902351450650834030019217779030507240771876992129790460151345847430389793660703822975298726289422210932988907465142184599211897324035892283599533069707049241491511956416612357688979587490899370986988976382717520508350953257258279929036295632674021654651337748058963294949399165685309423284843945994364634104931095332757572223572377694235703155501852494988023556166526678761367890012410108019398553321555551176843944646592176291122732868178197149159098313207764244905186664035353136550458384456026358705490038707402416469990349503233808810065422888406789268952361846562811995286897342427735632333614869871001544437120594636353839290712970701502344350686559997201360748724180301091235834982015609905889436482547265060462659812577535573380286656224487295141439730796051843969221939212664269320362711421713303245235369825565484371178042577148719740802688778318454646107236832848513215890778739930537223492376193691928021349085206329844340188769792946874341845565672541504384370602472789669443124030231321990520494428581105614162022782164446403839307404647772784249716522969504335110834448843391243516250985020562557236857689255088794031082952573117762695058912509417833651535910862631427134217797332977949924421153351129128014642571847353392930894409158270953086933089709862550034521781757478400136818998319331135031738573006605287324770332646759085492971167564556165810815949410776138302883373268342134089595660353102341170263434093352467285012350976393972014836746024704919407182626683717660548102512035192231233427047323416567049076606869014857779755628033199371030432136708725319468936021058679687647067086176537275743426887606320796395554530839549060863951187694640907077384641682496953304228503237818211259588786071918523361018346146771646641079950595294738292842157451149488646042265649986095813700137722800289302442609521227716785848147247691851030320612711386989885523057261846160775515264414753976163771412489057931064013390315950532792930708311121593107806401777351649418608492734836041193931049361837360978329179969294280620676853363017954932235168799464560145040789156337554538537251511034068793475623638319603644353834638813831440711213083929479334184821217379250579770720124630158452768646364201909176206587904774630437182600458354289281386566339156752433252603037153081469803324218382206530001238983257773262326029134555080363007007425170137026866022957346994060571775942619889532303065282949384344166967775761277115811275776645371060468889803755262029943917107605000816778466370331370710584445621336120149777981014957796806539744769785825442447730106429123032102863617886444880871566966555203005687948361968598272628252088085404606053012963871922378438030726169272471922432703822692919567440744129555360339008980036253173391363931218189557951347224650084636323220469383455617940867681344242342098989951818308222612120286794668931012512595771002919186227345946774671841468851727687241138992653651703873229473401417575672376345960035734137956861699687862651998034985078561946018247192605558787278858862859229790407551712769957837031039822780797841093027357984818362222058048100182415226007717036447979947185798557483998675913225447265969167093284261801238261077638648636286309838774009488327305502518319516976305788465257394965108208782099967706261866677507992702489483127607567728633455164456335268835279004648716023515273723320033268703155040012693647843853492195080275938340752607397977119606987805784098258562925647912239299541457336119085749574077646684420026179203874073330427298287120756910537698053864970368790231115810055089814659852094473025454955722625613849761059396182402531512214991907286566486040887570603711669921786978167648820610169218734919351377432726887164813994069967479317421227084826581278177608172249957493713385087772423701126134512239901812170442025097441987935842473956341864549219388696159726850127553517110903171615618085437568412776837616131251551607385411626537781573269521258085516481482496035118072946592828783097471144804916371918735966002383293828540635419671261101117659880762277527300189914061345229735500089327734048148841832741737970402318444219779143777386616257096909715314145772719198830713185744549425271749294878971087714386594556926444731357000095811321381219371423065248885972505457624917573231570224851428369460579696112608430212925690746471359298209443264075091638408519057231627609755343804107691053535776589148112279793765810412592348899250180846809251122284635300019454760545094685173425831726477897341537766739313415971478573777730468229857414272453158517996357937032596581863405972353169327745513002697788494501946274067055577345741109998914636823717436231672207055784922701019103737576797451888093123118125194160351209673563334512527067556335178245682337357186325449241711820905231218520728558458505987147685083034124789801624497911544185006573619887835856856222034364478937410699705092992643069932637520465418346165052336199760924194903098891817215605621096132104185244180508142676001385793517739080232965813013060517537215555088237589210401258490563424591778944072754938115726229346498378507551755674609414051422226153068587613601410657045482527947913523380864322032511839768990026235543895497158979408802440361020717136526325568440141440754497147294879956144992221174184285934794893009487164884986269401407263149549442260336440030812886414594808631326583543839969642148094065596731350459190207803885195290756891360869320834690840410207340543738420579562901336420584171717180531502143513330883671182842634674896388014291621948634714788299980459273497669906011333928909725963472502655276096360904370316505680428281818285981626493744463386190780074569714212558446872608379685563775969826264191430482526129830259379921342048472626787020833076653889581783152869470574507363380434127909092802012558355678896274225550296762002425901346747481191421045893454636336974100749085179949720407237297780701099195727314760722116558056976243371744020192863945898533294147297887770701925191544239886797313276872855630756465240652562799856600322173235506095403124941451341338312385861160679057695796737030713379493474607813734696691785383855737688746008456908342443160266096175307286722892710972791296430891026950330529732339240700529899508339147385092393322928414275771464004347744825450502839464711485342767707518611536514711316663573940886811947070214647088857393711065736898923753281534112906727553545661001592888452959378174704571770435471379044751580331586378533690228307260416070887490408120239754930964053249517776994743548301303233184884374877488516636381841821048067948556029322532326936362039407240345891934359098137682219584132676935289683246581667905982582423245552157548882798680764119983635911173533816010781423762873039284739573245128295368518744040101576772079940329908528134038954675079016619160613028710800434374356618214723160777247406753802454834867357357576152926342005745226311638904375398730566835854504157104319964334206809914016007134865265644030332022958398141575380209041913641540459802113318295012412051554785252379015879193909973162192179660185224299521101885461191254941784415880587819604869079778715784599303647442538295788271619600280769994638771905719336664281841567741424597887830692215375678088287752114939230787343168265395990864448184705432997561694506611311329424760882894519411682486156195165232222739279204890516186746660779063874551086430901965160586125128124122565358976243192283340174846540933611366751353851870242913032840592144795383897748213134846840587499529739742928978921580553315124529032245259641049829708458838004371350870534540730745869112010628153284171268106750550289859917218300720742488549141407573614713459721441855765885509658398682267740360531933573829377398287442166885504763190993608638026697585452187843333937614332404549673768436278402577046564472734467550475974837928562079981979062666036682180041244389422587205802683668861179302483858255040598507540014982473469419607788015081972349530394235069713582399215785243669460401806177745835304853285672298339746550404208464933131995276225146407907717582903906409999636950598534841755376490531341446220290289506397081015970559526760421976279580490149136916101117442337214342579442227593255446771998874120726261278126390331578643982706599946566211803411549924355853929243412060149183125031220469338209800248575472857811913130774400283660024033597940224293204069617628661785167241775894528742166985336906493617669130726069889978156645263427598199651349982522526381254034475896043744717893826857179516873196873473474522623018488909627465816781360565289304356858535618318129186977241196255373375349894978723064688900750841520103101241251818849207230352157615724640961379762902188914217653308114561001767574424727734276142210632611644242970415688906324667034890069026094257519109344650040188315724625735221342217211472752776320664145253020605793037360756868265410034168282458499128938044415411994317415763134088638029081492670740904124606977741596325183132763106562778160881929395101168286874474898751186286227858123255501877407678176991664061925853256936779187246179419183969401389177303253055555674800924474339512190242182741174884325527012554464313978504084133947366951193025377205703135641068320203585181480469287945391363404215535078116244767346960737689319386708539993473211922671775359570641854539836590596250412699879038989141753602687928347679811779409101422614686351029365859905192159938055762500512640619482300867377362924017835040364563078810097760243760934484941388286731249309567279897009954092245632427945741065736342580402923073060017376954529771061706622207703401104951546896241045771550556162870084919843035192697877110574389050556974161117942180955917848287221676961826860958175328968733988010809897959280262823089733507851759645220602144359661078964161831258385995637397659602492188029057595983932789949749693984257244919277057919230181378544801951038386331631292779852100783446974119529067124648509213943654723335731353246229975256879819824955489829695315217096282757153825197808271242650626235443032245259280879724449494035061709865290523137504503798706966854159939122068133887335246819536636970822819742207477761270945347344382040990963259384558713237950205861103512147202804217551977961663561645221303317813188837339288104625175914031433979235813592642585465725797707432774889336755476887264478091666060545079104648675174586196498651504650649737362378162424446007354836063371873425529013311115389656055663174628007896019717264728092799468778220650817923714546006457853497229718963206473582244110537237635634782897841665976188695745881226482295454190662692292517864741368731664919586496949569450575364397151680980472702317926771000608895361009765795735878832213187087284568101756330878902594693418020042313647799039100227201529726632041056133340956519707376938421919735503968223498338735724569591800565648679832667228346688395286824019650171273880429787836602026979748074811650709579903825177821040264500755015569200927581829507096621602832881662754126984743988731280220089786444051579335029652436517402159972263306078729292294583248176520722812256484407255044165135686536710521097942106170634878416858243627985864339025278278009836565659166500374622369385011411772535259991701422551171380658367656780319527146422864199271144244914274873480061635531926003941729769350470713038034849257462546495811584147840080768671981028462801476238202998425466508015524848541345654618996515517473947341782278927914129617586390887381510978162566912352919488160372492620729490311391077424366657620597355772519793885403122932883253134890183207608492365422243585171261650623998272011969612307219338026504012321669323798348763421891592105636459020826107796004466231670301661528398126946171557040165291537971447346131863531489054019549910767909604524981234817354709440693687257704145008480740507850845913895869117802159894553904441297069887727599857070607774912180880382975121375880205798334354439314424817034949069482398886534270017332139674908052460630968360721451400397517662506364622365686906673462575652477787977762973717722956645665129012087685051852254580533555895561253281210337200633147637774578395351982743614459033336099771277425541643289334696645119652559024563385120319538829828979886598828573445992441468138492439928302744032102876243537418163083887404582827031245499203555058883602615856308013222106226651871113840121698058565894732127744939037584865515051782673597462947993349808461190009945232325561328940671184347045422377376904801602818073145455581205181695571360062765822477458377836777803061940138481183395196455533254460199856202499007788891594339560462140039790451539650626313407693512428612784990462133141477120884270521298995413855977118634777559158524272377191289464196184378778567068035196890473710268875115625017405507621706099841685920603646229798801454867031442731126974067981430361748951052048933158842449024339982582541551247519688249079087802379703913316394530408648973789195792492902750281279040449267426518975808155081114150913802200972199042087692067458592666034460995701879062637165100080975538988257848783926736653907773467641540952508257312401853891967405188283252672702177571766037788133569183909789370500816945782892616069797784601562489631687964407123616319292720980389773014031883041930836128683008561748342906455650495727395868977752731757587981466461713817523494057598767875665442629589099917278797076366612078856447318154218553922764820356180274672400110386739729857185048053079710524163402777533498788097356428900572563200205749842808990070095259370696978064953730342659392755156203878337107911376280900675794287386457162594574103033236449304755641760654496122677484745463399861229598729955733114359056828823415954349689345658087709116453039200373475838582849233863978139860806322298914954224273713771263176812364350503480687773759292115184623697168044336568811821058279441703053361706815999323445163003811608843704049573059887914765083365569405807579262779550647164662947051200465443659221215506375625298065574873673572679993156019493054216385839729481503621101370509695806757316031795873339261783958436783876976284219636482090625132132422630752184302762892298962825037129118878214127206745920258093023476282085865559392741622088751678425467513271962648070956603654880952446528536979662858278611007954144246031633090544420823952162206491936761274179776570143530728213543511138301396876430242082706516055877047699486744890086795955763186113761069263819062412330810780538105645884931802419139930585839827639338507632495244263467466779023309050516240309587924806356873844243678125831648984426818626073333558085178666830691457107405033475387004996792877053171238145591630870231025730756840311351754327715467773270432311074110942817384664672698377041191682696869248921356960683458302882769165777029010949431590786592083103023824005928017992818918718944508761271262828073882523708773857073667826317939015446598634629555018966991330323213010509949189342150284965264410675881975650093867643303716053422080548763028670950043777846395464532446292313215946462565751636104967266678150073262858857263060733699188506563038840336156843378964452007278940674303623720405868824084427362031975364627453534092085324766933783675047079859471917765665587377071632473484351700140761195466184637816958101983385362936414851413591457221081321849354104445517087553651642128571589177276198242595557094712881010225508151758878899494216637655516358614806068253561228738685110043789148965135074424251184799532355615537483472668885060594937325850264852081536351068145388590673475062971731960959658013135022272137784821941406553969749113086873080882318797370415525357460986546168249449208974269407786611471322756519647718541298940782068441189406647996317333876688079691944915168382058177632278170351475860143406412041582958631383150437298293330318413590854992449710338980230886321121318840742527921267624662092038780575057445353469398093233381174137893519250965521243583720555158185509072303564842934899539391010334148609336416011124754140560315408860445726859058079714201816681500514074631359081627723466963684551711867370551182217745676578256132534208402177548550509615644250545046903995912293364997049155747262763853527713500116745696994307049832261036679810955960331791316460946566858387972251841854104295753048167377292889056048430602152588711575201623153168900954668352948918134175886350405045951673938244019595555035588332862692191162740192056413317500785053171232812758655753513720693751414650066431533630616292308256413362988096361247386252597692935535381244266254590600589403891125863200781215306343530095221269600778496177873619142663283105607567157362982104232023395662009605442030879101231224050238289292169636986264561726871000859825213614554061586582563354140671911364316207805823541822151016954006592325334172208891502368197440835046905382220816329348657811762258851468928509868403670008254098672806972053422079801474520311066589365967070065132019713299424847929602885822894577357688488324900139357018805566025907524941515307468931163893454349547440359602832356600579669687196100847732033110111470697600177468006649775644148290585233755950726483564989989210114596465751259400508717461778946453682242729627909657136876068359712324031423322434564209769360897622632256197194838421183982589941624290491436362290275397144137918157112848830533950120482730397453026260221019936634675691849519465753263462230432694238292514618501003633249124432229951209642423051592342273322980166415249023074131860988184288473020241919561496199140028286657482845399337647429259193864347385538364386287660421695231076887729023962489090614889788286490785068731318571517219454883896200638350668479434396348977636627680930120737278413348251686110993842492184056456038135250956797980817386383570477858832093081029697001926471707134840008406657672598316795093160431268411985053365225349127700860042344040965141290810738548249696531039259236966941554181741092599725967716725270682007626702785350368971404593864345831462253173591091692148807700179720271910101548518530676843167229538857040315869668226435863128801327246516757975286837394119797646562868007014957015047658373058669526397947489013061070857894840125572457807507996496835166152686321646586972888023665997373263381504780942811108385215085070838631104599634722995997043126737816977155197383342040246495324281663178103933353064712020813804097705885579227269942674693813262893800953395869780193277715688782458669717439352777063964882453824135250146632950191557377087983997414250655400022397917751050509017128257618848856748598757646655224088206052270883417834866795849846756630176263478999289560426830083208073246457937246354372425770384596234724170740725900340891419393926169983151186177066025136957971038900378936236339301574708717908344510398219878035062307941957587263073864575303347945644909934601327488684179407196196442925605855944346213890425453628103371944193039125504513888158904753342782285155141512611859600967218281251352948479925716518673619567211131849574399524238790861933207485582505681950649214621197621546580858109237244225543006025028796230984287689548647044458117987042011638336265275736052438589540125244713701444441869160795000712891359891306058099340834237613621296475643787826004136907070490108736082663799480881180427967006763795413144524660819835455025076546188803577188316736756561422596775509092650626800205440994597833579684566596156564809040423194342545549601923093942977108086847915295609177555786255868845616871704306077690596080248206133443851135492469304032632215472034137043161560830478067990425202706541544613182563642715270302466888676415353412492002680618757740538055241916069508195188364216712695345933313663226853007213820783805232536858778940965596011278786011803909762663561511117453336111950851148491474324223165427185510202669175036942758592991467265388353640832000362009055151935572834710413445144398770249000358027844591540900474292996206775245493101883408213092809200206953227268233243999752891960327165638031487804682028340950654616203809806033216363533600641552785198216007619729382077678070741366641322201008511507108844641627569111877200682008987769697727873329132523175326534913790803920666429193911959616767830838588433158498662281427423727338121533553731646112704470105722018075780673704672789594566359244037850758849448172176774672123385468404740462427262090452501452933347031145236056122470073766504102910100535515294100206059094637658601999342635030934603736863687046072607987587063909201582682851124486128317905704238793425750528114115026497832083662455108809044517837802044076340613879805818931707142860581848119978185110119124222396968994632110613481203277320305684139728898873190111349275468228571183356610739345521817280445013113174533575216079407703519595718108349751041960114856196686710102704585084766085349772970457284761178321642426897699834599167710516812745230556202667043233103385241291098839197667887574650526026895196294458251538428704280622061913536471244217067478693597269838857629579387458812289745098531678154819747050713304923891386642280560367492506190955868460140307155442520240055734006777100872494151471798601897953347700740734405331788225251550792661358433642557650017599258606614090959195540497373307766222521364982139836244177787303904194707096577830868726475844245401537399762402405392546328546003129684603673518227323021682634328948222372879779108944523416188052741658928661449216053386215667480569195355253417855021941860790372991456253099782698613152260491490428111632157768141149735466461338700193512505071622500664624843715188037571195258111937771897279924879058042084618039894114985125824788499243214179903901150106768944586711958474530871780611074852988440062285547359700901232504797863665268662653000386050175679515236696394795566854874620945981116495475263283367401741547076619482211746510722023925508176207339612658606195692831748052015845611491195106903060409433521999823629847686897694313256532786774785763615015841188503640908550701780646646156455861673131047058805736272583171060064142675005283005668677719826401915240324104374457568026063887758213862938878701472706116423552711010939881380802140418389477757108910513060834171641416208477172187774301587309407395228521219345281470229056356543612317070282177608422599812740568243259252238833363742334792798758069678376635984130296629374876831406391584242422062991838591608458637725129818266785207261727067952237001314762889627128853018959425319626575513841840148937449133878868707047003229207972577908854517816981032846307676609401475734615343100035735058212831509027513911623421651899017561155621549378778186830973027041412664033705342411032105134838330386758953349546814217264634433028352579729336139142163672582694897075970963723584090952772786458974378143036709615107706346258946883357414721213704738122372776960143456674914260585289400607958432236269928648907218933028966763158509594667877940582107626741678231142437024594985672537878747270086855854368958600343203327008381994172176364727900158549676304710792574513671520992358530954772208970117827654696033035675902014390052521675265956464414972373040190350254165074958278332420929489510842359758409009405161764038316539531233513115792411296425191523274185725549429840372379086657553341568965942926171611031218632890340572700854489732334968444434477164519650234715120387404490373928570592612115738250042759722517988884039521024928720694282918296134609766780750450153643981997325591653606971086813727999176919894473447096428776929385724499978892686565121142671350571551420113690143176313235683560414044153462008947135957800242323008389669491621448201216881779537453770627954470934158399757366575200985365233431113146308242123530620913675902193343200636507165725494657850997321960150332704413210421807307806455404315204873146636307662739918036892763960874250378256397663517975437440380296435158664157747250451384074691974723799046880564249446494555817909075196404179905753327567376570180858282984438590061780740963926416642760712736097422047009263752558344426377155620577216758540170057338467163242885155643703796621720483055422534056565592672380120094321685447709671275652611871154708951563479161364068411625875170799407159529096225242210123664219517543599030784457725742805712834259851301732082605634256394950282808042901088453743890785589570814964181580266111297549494054441970038044028003302320646833281471501193682655911289936465596827137487557726376645340745060348315703423362990111315442791196269939787327029576176802369312642470518857422784832526269804722075075122291526827786226896202654431719175102359790882425314183972256919470319835864626688303330352236706219623767137505692018230512873594399284240844734640170099168816390083262775969728856893922119779238712200980120974777414351748779141651455323389692301285382217473224752392923796495036991440538008719766121395663787994531738816421722585129315887458078872229995603291994388438401275916319618953010993327849223153159877631240702865203081060250222251525952714216166614144882466642545397577731228381807606646955036916687078619738113308858612032276846675458908474441374987397238624789193724624230734911790329084706961127706052539865420385541375803792169232439234733574447277011833653641530468564240888170073944394478110051388327682852429306500671843768788272235500549949632345373438745840916083756675428431035593467436248390419546129349432495654810203722931037220658107616654828763809643520332271693657790868496474955961266299229730395245830635455053226556931783038043156959529693182468054205255911529407102464218601494373596931548873365911176686575424829573468597672270979519022385683929462208486006757723702021224321992412271984601110923710993398665038814460184293341258736014809274025621458589378967868266632039224272960493140876911684122477867502051606161902352353421570839087208238591464760168148643129818254716631843983308574637411685005419908137604035672309652065288139089652526934155574072835347936128066114039705399774112532505255887425349282914492581932484083185127077536442464204053996084688491985211398139854897473921542206584607265082277012075014618886955395215438277778956349911111807655478196731089818411090616633692747174425774575726484117639775989715248887149816489753414161661247313233323996487332890595550948995897663346018427597538960971470057561591545006503642824324274253046376655511656698514880105132572510769200821449027142272146548868066517565867148123947674200553770033091206927918033084791100985376045790946092971883651450397931944660926484198192197364208721088066239975269311911732971772563804945059612176736062215218950308289766721456827799247808614202227368373764850478007815580688971612384664204335574012085650165649895691340643052066267672491661630594076553395976193965849294951759791979670110404245946549288147813168674459293612141719342408612568367916145627800983067665303327821856454000623577214772914368555386744795145937249309185088782568647443805078755041023324925748479209943953913828474408927164841253653307260910137249009773989496601883420371148888074953038592484125171610563376455956043198716837708166191940538337632529063868534582573505724453663143052310643180607812979547302724808966455670801671978601541725214035659016744936939969141294404982056833794743930998288688772529159935515500635661456157472961005976031213753178499250128038964156763989874858352192607254449117220283379811725063632794038132284229658736079836528843912677055070808480999460847549482597604733146781759136770917857726838200315568380943197793746946971398524638723220949795383523091201784479099482315667752759653680883823325318610626435054524174980229224280841175472872615283540377316630334873525781313689460445105625103785727503404065109623073905690113286112659556754373464811904128228801049811704527112223601236748913000518329541911407386859186425058288440252172903345270136233580553581842195312441544163318789932118644854173007429077677912779822265457804865923592187394905388651956561144696333036573766972141273043945693434583379895081549143489064064861418738416455932696670985067732510998706889939017998450442324937111056275760896458507446494972392920075746364300075270739939817813215624195981343960771327886571238512424292165554794985204409086546787093286542102785739146559649088758334982947078149853798861371540834141544012201919463474372963571095057717539247356579181242705170244315414237201704943844906662209939920373683722278117256906610672033693486423231830405721433876910017709350886594162234777609434163701441190118652527254815251873552156521262139672221477224899391262789167543551490089964510518637834459840785980178839320669888364594540899724447119815762783459914023624966328228688982906138893334761832483731667891585309060422203037190827152785987124662454043547780723789429381289595821581606619734202184138539795382003323319966139305677441563732666251203168339525743510657980532868577736383318296461651586292485408407382254063327228525533720581159321569101421013181409974757294061425671111685756646598191587432653646846993047899794480324140567207929601068997447546421446164862066775633669042142112887908384380808328009445485581116548548399421766833757721912643594378361775026605058204847584451383063207812652358543346172430066152371811836643981671485074536237707822700082687014820858163604161438723382011185969474951903889826188012066781676231822412725466224911437337978008101950483651706445282366362118898897531020455241203881284235873777648601250145156595704167768649985319748685547312388781938772531961285790800310948063677446521676219685509609794137530729661522366042833307537553187260823264631157223875141606844048937303728332351874653220409218760457528377928961182349178014344890562832610294199797079508230596099793656865523672716154001778543177964489089295405273797602857761915139116066510221534053366381476838790055021064838748142338528111450917129456151944264269274949865378109216441631052530897143197840062339181745970310755123754953622382511839614584877465786272226946008878938086060382005205817154036613804913111814340664207458504556960402888101831415363071129533144637860558812928368121022658739852400621410057595020395154949767579965696142204706180522127286846353591990539545790362864247331887554054522980926349073026651803868282633087916197428880382506954522620422472596228583547476646812166372726584286307298446606447397669166729699264246141045347548319321227041984183294572272227577860017428728440349258920496960151936951266922559593657089767603757772702599153755261439202036994964820794033545404594830262047340801403971027568575107238005738921982542318318908714641136148061735243909612605832949766615900041424071828746712267450281447281596548861696436667741033919632219005826155098689325419489236095602861517514818172365865419146750520551992976556400170021961312632679248942158922500070061575754049340510830377422211830213242121076548008613767948944458433524078564546390501925796314082415520241536838252850892406246503010208926075031295312669322829792250959697109213873750545366770977667591891741428789673456419590332897178738924089757427772852912263703844858142300330739005570769560183509687858221292129605235367987515763231154849190065563594320524967784921107798156604388092075235835834440360730730777456075245131636456119997019595585113903873596240441637009664599299895394391248847704596259176501224924051497919302811826358603667362367751136937850781011017480584792639720087443967168709504992849994081961847557765316091531427489404739182815081262448999741192191566574453723090601515796740354317550918991534059382092274943281463990316207057239920531739498612295527822438084551547816860260266171319019107189392951338830498654820968515465184465434364218249219228027312777701876764455650866458114249301128916188709159421549617546788945519202791115532940266666687888829747819329122603808787701327101606555480981757645197642243696118175636409302567726151711028533039274126421962984688426837395353414424104139334162991996083640091684396704490942490966484850000953029601757349160902172148586915637655863799489362422462766460119454777097703736712411085341619442629075853771220256671171586556444675386027249564535642552109146906178722926213820683893572857713956675995753570275522621095908952842461337979786656007866035858049419514247971552748680567758530710244078571526595872309044806093343924185839106603547748449879407640232099229600685993674616235037297179376645928027197813452092149136545135308469243351836848812942390303632663372605549164669691007743250649889191757563034006565717502385405016152335467154015872388736991381722216109202194825568270328876972945989735488076326076124628236598671825114053569525965142140827556342864364605250681829832060583599275511454793556494065083931051655234253207860469982238764754269850419432151055204524694893720274189555872200531043654794402337609541716197023609666362589820655102756933783755186253404158975526522361114305734609162847172861516980102533814841519422834986928715724374223846290313371776950204893732868225619169442990434575171380803680496067175361994112532495864013422255637009473256760755442266672981771929734099228021885013333248333102826325716026662517842542017557923028848452109192439846038094460039009348689802748581423284766428597571518595126446930529319882504601753688216159022269756179614686950286617189584253988317748563487951837728932912283259479679807843810043359237379440638499646245024293617229506445786169825582050703401161282232764469120001081335914798380762850147447292385560353302973235759994798298789473117663867652855511489947928703968416141983562615763601209335512905647062837314257211168002580982740015862629866374469757149412678372134576710078229807144474578467327850806521624270195788821571792602399645965032869272776983857484676684513872200733942721900459835523174197158822500852909599478664247653444333526168137721283765393632572713241337677525341683361399121662236236559254893745647268577856850362319558996469878487898881952665604257377655620757560611786653415190242819850809137991219161658656213400550099793275930426557125347032059745359352404166458928495761219007846178921185711656937706750269227599384543361346673077815213988303329543428024120054193489561577449170207593463429192824069388636977233842400647258347799810623287394536921372611172802759393331550796457096335840824895730083579820763164431993013890397599997200694594982060796404225062894285767334014209419288050003517143526323658650663661069804037349217553020826946325666174401371062242304582405283609330370886022187918004211303352206305266926430028296700540653216097147991108396854763415899586746111982950212446455631105743706042686706883906666704898609267856780815518944583963346868016252054407198998415565114132390549575550211934151678854387129356594270202232574862362646072492460462315464165744127413967580823844800247977740157165458321229687323224285790239772200281265171170434865865471764750372950922542496694569551314429604894012841833786224954734509171224527004989108664325662357237108274019504987263904034869133335285820461467566852270801574627141330379877610220114338412847480090328156984530923764653540336337559865944937570588278001202758739027831425370847233617726839158526090978052202215956256168422913009623862435590843283265527456627376368049803888233491247003955851663519346583403189248153453756784230984461376987602560809646942648476154068671286094300075130077948854908432487855855478692202919848378134934183173392642096413801261535964010383609649636302778715370115123250663948256003564388314197212602622000756080896526489159658266026220006375078547458857316873791419937766156269548641236529270621066058852650269784110534829713675378749732110626000905766878317656072013185649518647361906422466358588732544491060569906899695072279783920527536172474420443784440506648504128351937859670728469527370071205140282159135999669240731486334833838687424478365245590465868151160704976714714716531615427130106000265486587049700455041709154259404911411591119292333010831036879031097465425413419054130127632183187721153384402812826682910119969618434778707193017033510519827629890237980471071584139659201320341341246732080697516354703609710457310021508620027396574195501479987161511758735623189265073768013814618888282957291102090033228062232574796471511685676081260954636895562355999668831188375314209968830906026275508995222558393100666506430640927210167026756736777694404253222557225320402140573831999727145866942599027672651288272360854509579649005018933804183925163773874996907096726756092308178239131632498331077611006739292322803702452106176700431225009272180103102720619242400241710904344729771197739967239668153914198744331083502865530130222817432014225987457966467833985028628879886781380997903963994778152204955034712770124604834397349116335955669690022390750326231401943372864067259134578530915148334370949853901374802022756259059949137888785514318567166245953785133800149532244798683030944073016773754133889604954832358429671466864171301727124800169293950862558636238408998407608621076589485352106498173103499516437020613564995627229212210614390802231187310141806906847662514294675268066367794563987268751853996071616444730366412447202040578825567713624645351853922962975894367139071957131900187533850576706548142162943823672379000082002784623956386305741021608527229364994984537778976656328622568027631428066320662760924497588755855362698467298397059602236972880737161858288324941891624359498340855751739105159372810608746716892201782467814251626169237979822347084697839187409786430958450362615618848621603545762795124381321064891445568388551974645929758106648951989710766709566286895789787272700920313372282908127669536218250909299469960483054742245362503709935026961414409187144530197581990483343876083307085282947246927113868836229116136428363306907641068636549378344989422624969895143247268407398661254711127053180721026248597853486269482052583728637759237436656945301689637146052487585955206615658516191217180551774858362916779156287786596721949279305591313104699673635775218107985691375166933161456608372648769056986178805246460206305863000272973634501762194144882996707188366109933250719450002919418873049488380377291206107503146344716969475517479848173516101243657957663265842444676078364031349653408300952109234678817961556937925984476120986669871907110052711660966755378354314882454104334289130836606728403489493155086886235979654767717044055355449384730093689998979355724681475609386053916222888689924159406930812937349284130289153690851174055730623090750641473114087797757064688531489025535838936159966056929205352832151316432611254260829920571895800249499445224175040201880541547913677971635997639290129515199259986649620635817577263615178110913378021180934615375228075108091672994421165313009938032811444282968442383302266898686260785200288474354878194063088386801812265478535248406245861384194029515554232630782396567661655266627460392711856713541600611862571901180336496508960817723613553378257086204479618301543401902465906108476553464553679124424352623815642044392954740308894539343110013508409953881921689667730587331700732940428778851497230585887697546746983072111943677789970495326400147665062663794774505637237808115999546454089045815049809797480160300110209946261948808104527059764952761899569131633575230874029994878675266034172420186074661775008218696369561201726585446748679462228090383461076507923365132200862882152388722589670484134234711549022805946253548180044528365373284259876561492366527148352923765297460774195715078576221355368710522006118270500510661255412659337100463420299718844107559734087785649395972449490381786186097977235614363426486914829541707400324120832027026692461495553019275582412075255675289134047726469823782418700188623282981933508692176540153950717863001025212066629164511988317244939500182873100338585113515990483347359473222104643740256396524523166403313985553537347519223387853770591034184515350420541497995717857724509662002834022374112494400548214231119711706807931045313694666795593325807774436541972410575660481752928257117010946676429566478933529342041812167313369534126182030264904390188519827931361703916096283850913945222470526937244780284807499080514618541222196747102147345120171325593214564266862225868344099052508413400272695039094155868695923212103825199691765651686665149852030269301667299978408273258498431943617473102946045791182094659068661683391039966254355656602215255636108011389846933465819023142088088495231700035102793024029757113194556413607528266941246211059210226823741818826963040589671267721135471968159567768197979614885627286976629612705712312875615297198953130397460683696463004143302501019510546054416196536365268232464507736092937580337815961093124132295386910954410630727494630564066524761826882547788806480963331997259118832187858601490015109395909460427528218445103703417250042069922094592316006259751887097492862582802651522994541770858326382818076663542461828010375444709389191910180550109231137601569625839587323105870622600598256006945846609078945490136795029046261024006644850045345952277060669526645756802446166518730115272300549574019597154116957416087602163757307987302778578944774216325009653517220782147503871217132224471596601031427637805380154253660199704891755828544090538913721715604381742779930970667676531145430796468597882924064904645745868195083300507954661373008741428159484109320590855044288227211576039657715265876973981148759831723224174134695599232146959094854278621273656089399539507004648792888082725811784656623348193404068354168340040143939854163629572785788414414948376001723343704588849158523252424157610357198272565251338707784475794596210003348166808015644593072158903618171064687371660632583084496236481640746380912359489650532188439945846110294726188383357673971940136976166552974192136147626992444017402656579636615764830254579722417918719671048111100523191910579945713867128593859437229694827866560667191749901278128490023477795243442309837867952204717701029784680601204329699200469236058791954126391991284094778361136749736736189106145774132954428491812961331751981800815588504971609945541144566156534981954832904416561525905729463342662912638641717494935808278444734405530469153389022569116146933465376389051009791415297750696288658912092133749212847384772419857165977914607119219174612569092823883852583395842236195020618172391331291589932660306872448423590400968663664935088189017024905002390996064897579469658435278557498521806433070244719905739246095913971588877297286365016907489865520720203795129929805821974881669729969702839587041787815573129185390303679266966864733519314950233429328833413500481454764688970301319652178189068108435421813734679624992539407426835714966751574024387954437351800757907641534995649015921698486244375735194235037147083256051905541500770265050429273449996428159723210116283036550082649361956949714089882689035197436885784332984344173830906594261925033838154790642542466005552874525291116336392335587570867795127529635522940538107508799041173929204274207573612966647043434576496474981825782708974677774686530876936208712844631584776212815770809038358270922867569304277384692625265944896444939450934139629061336124688676875658440431368088715857098809273521028957530575827720919330602427942206450920967986827064791664477838411125336810069693659802238519509248546248918717450159563286048010131640219546736813487825232987623297399121710081398412678283421850777418568060967725414140423123759782966543476006715003623786783658481503807133655860599177692288382173391595840796739181031119276031992642563945244324484145083754217364023715238863228903870115119300790381573572962967705511275497882315736801687013247167773275497666110170658601046636557869307151461258215216795150851390681533347240486656835110191379819130404902611977417552936783653646921124395456799687609693457271389669580057354353682836277995081713914311475651754709035624385575488048635277645775163256649926993786839154796062026267114830591598178808911359098269704185129448842260778797661568732286586572843394471981574349449389374292180965491153078439484269328564732847274405126643033206175025084244467342288540950993620614494144155799764459397210081746204085157619899696984189470471157888573012351793391317166678418631341621069670117122662064896550179135598996449026519728402082806565562086520007144981641832058742449089242112765472997097252888991940478516787662566118182287240103432503900038666376813127519441625580676846199484172631337889472369212389403461357270208186199699705510656080788976101645149451855494392233328304540149212634392915657448150242531480570304357155834096141824094759570893102321827872152154154212427755048521754970284542506045680521595276623784958467255765629763710152284645782821348077531420016811410721262666934464572510726339289733516886447151977829602025363413186681615620958967828197281275669736171193384739321896057944870804593161783050918358339632027515051533001677527824814570836150501863523649557063731863739838677278460928595684032237838149404332641260344629761138861077489111362177015572828892803936055632655925248115327339262823022618472437664125073501884297294487251133331948775152722871966379509461750774031950312726150343360564948897996498504764856460617755857244026743928096262223938408472021543518964787276403581653453616014616479856823339365565346545265389639323054870878678575119680499894250655147970580912878534575842369842101183709627495671236591681145175310688076556617867700206938468029302387588830376395345299264614067689151012452722469998392557531194120031374753240545627342233010532849395595048028526467060288185399353187312852388348337828936220669018540105488000389115270026557746705222602027010368489227810439686632163581007701943064997216906599699819724864826909025560840026042416782795921147751964941480822939979496071260085857498874184619883581204111806157087017092352882667416673014444744891142208229074463897738809095886185163861039573903301632043449525719054550532725659915276785308110500755077951651533668541949325855614471556373375908816010830002532582142762258352304887698272386188342600759733728979074456356352543321911571726478721216811142301915897094514294044536022492230009370505703089633974511503443229673768770543518431460743479043127898168810733659562776814520226696554001793051803249562015192656094883250052876382004437250685620530804859520371016726799112675336017995473739516410260962303429949973178780583455188519435384034250150849162375821163535052632745529660654854188377507221907107453515891167706063217532328509695887794685688324653610253317961620582269961187305127674660489438090652000929889999703940001317950924265948177767893837589166050611833445940563763796393356572351331639907985048286940149901811889016424727088985319059543586194331433355474608602776025481896184237191163462584996715706886246442525321787679443288257423482259555729044146768578131526408761140328543446257401011792704224867515418948595984773939521608757618271003117356238867517652890890399522431742261235662115885288030129106102958307690948872552127039411041378823734176367340421003761183436428568776425262178966411493896111672468208747889540105289309794939588931885101477720932712419711720656468191311521338439557279913196206731905102317722496225015449049020974896368246051896908542002839060070740413573653169686847140236858266299264938982600459755687222626243894212024164395675465686421343941459372305215396210916863027954228397447159178701421422386778604852970647811648050341620736485779776374852794127044589943882675519156459349928816997804977659256764596515322098625782289519728477970116057070726658025983288977028963627882731831927225615880180733184299751935732567152731874014401723021631259509018652291845333505047788096993638376031644614858270337292748892437617512281051042214191448046384727737052387278140168998014448932894666058879590570474622172876352503441882555235191855528885822104184839649513398844712078293546833805491297220109589177193716203071065705377800225637582316040256152168290167016368517318092943972726943830968046375188189799372360480993264621351379496192039124695365779987346661741792525651154358762485724160183672050075599502385029371777439769793060848954821219436691538166849541998355920149208847121343526855978435537437481148246345606295489962518515698551182912106893342842910134448339385488936715233965563171550103991956437351290491882667421959274930666852753820988112421160802283982232037025624729284330628028213226009261941882367056852578387896723021812888730618313718987313145475728942098082987318174938881135420492764921376286649993773715313210778806913832715013062365411612505775248267612904413221876543498203748379607257055518797276659616995378332666952669450917569718415443399881885754449232940053972642124155267775914780242661446852616307698562564975704541292833325330799818075895519807942509269434103123679026247350225947986898800946897370961271401624040694467912213907763866145938538992094202665774658937127655950838299543121145823986641104017627029416332688742019937597151944786514143528818258065503909349354318115607500225804906854327040156604259895493334989084282888135783443138140415468463734062765658536050964887572997836047024647042876712117577405979222019493584650691545360979631041965161307793206925703895240069969541813414303187199630158339074026367671118037796156516521782304550137350140769015016421459898377808593951335396222832127427713965283551478331063029321033543309123543254817091157712781765933797862431708834759868894144423729935971589909170269374028093295600690439542251530582612565609136705559263246945099357808644241685917286548863025594845984698842166194496802716175674051210622640417342741224059793041866626971547123735099437663439004188457915367061434828689579553434676207141180066029500937307146034395883449101110576484527469869336094597270204759411515596543500565766734035544010547086999993495740731401278156880664473130856240489945201195664911324770435265492733657707142473975392952002338572087225521783377552554650971038903606425423127697614811024059038758636139160144616334792874547405017415299554594906258548710716848158776537126449643963843341529285638637898274147091281037263851135505919670904586028822550223497880561942662149774644909190394221617644367458966375223692029921037676852036511417893910625091736122303597610916492172017589615945171755955228497279777269919923377426126036050370111569316383486087203882631546737598342868839096874521949126763311255896368171995528663672900828922153732967712389133281805260772534228272621381742106173983930684573350742564869543093808643849082637006273176924773855275512891529772141229491195283949095898887682933419914737082337411628398002087074307643198675517364903910802901896872493488793771846056847379345881723187159667734720232679264896511039417593118549762400681839046602846804649797934396440961312024152028450910086290626204548180236431463170931166882994173632776943143695725348711623899770453507104546254140460355065346906588917386114919834692116559473837180387876893305828008205763876962349171994048231112701466110538801292147729371381738149330824166197387315819272277839396860430505062341159849469592701049639528383315456230711156143654224892233877134239619302274622407318798863896469728430223995808552549994811344074627129282249642359372547006102808191724110646291520335941913725609315694171901386042031979860958336648995812330389888722148475592852312277662603076716829634468377343643827706387976677875800679492505096608951052573538235566602109018228224613956729546418151084499816015563518508078557816421896483236367841897624439305674543959626834342716258067564513163253605768489821346020928876616287524085324392704980025079633256430491278349113725776599691059389953014319147988958661272018105950601828996984561077191544685615163821164904742286299998174119844287057627268165918405103665467714062578186624828097943533050574527756279318091245994868619591764385337134403205859484941777836754693495183004249564788987955797728420742599074204014272175507889979620690003457468823075718134456917251108773327454615882691831183022046801379643017169654496364499842624647157858783069888035357552056584547355938008040106741413638548778226253962635892157683406988957449941214404191653720983040612545140461908192316445625456796522662665899538159311637678792238607545773861899625121357536327879148965778551514549237440808783049036036630213293194500858664500734415945978504164826727687665139542048016684570268805208965981568471980930862686921250215439734908417555061778614976914074973488314404976411100208177284939902080023113380007672472095997523417436202245252985916370483756492432517747878839514641202107172611079585739250151239716288160370691690068050426654179068287859970828849635910632913753833735931293882404613075103700128405773619085959180659056344206828443672706536303697981307753928783961011048579431059580573398786885664613578332001820940166296232640620441536950845129441306688935435909324104643174464330000067561163597186655796713900598801890509974483007387599612248522035806240517430636465686361132680775201087082879416554073079175913945328961599658072816904958675179253791326029804210183031419944970139723847783428759502958357219795715039782110705736362178410427362935568401708643068118140254054608608518344507924169517819605070220101402691905307080962211211930768480792363160594759998290157319842474484347200697188552248750254319591618373390703698508464900903294733492374008726656656742270863978807538510931100951769987671854554124500701508992112885771498217226816989434609275705253704153808932726312100733825126737233242153955700746164608482685936470061858185413051283566374367503250672044014034397518049777626149198949232871550469098955286722243981003750778033843652423179370258312464078982971414864695111925313641676163732882782809895737184601006729006209698543072781597913861646494880461779418809451705292548211689265344485818953215219098473582097764772492188333161655685994413808270018116078163872859299458768678103051972026649841547797883700068699761516829497254774082887661042377897580733040018022300418563709386077000957593531192036404646866159392377495030904814460162485150979068248351811108221178538390626719296491695236019107524047111845980548483274993242658615715137360344656652292969675031941714873566876133309830484989997314006234028082154388375512694626394709200677367697307771388954270885133387629829618910508815455559935270826405901112121066385421498914942543687412299257276764628787668119839255311120855967030976894278003871530882018832651192395667440877195537207610939674757423884648073240604864673020756070664891930764833888337925381044732829873378116468328445269760163988298732653905924592787915183479473398490869053841429316185586923126629257394773173900474057829223568538633609637538747906547920606326047217866723583929629180682698788796450816793701265303352996523472665262841136397086835955366183241241858601248838969407141423267582431318587681142923500839376869450942387618489261746362007028692286602090434332679330725495040941182514020868539133567264218448359836332759162445532196043424145994092261202053004963759688649073576247173384515090959030589601514817202147083232992099556916136843547009347053128153858917623511943154586481892012855127583505072379339401489305247823189498990285295000883446281401070181988064874828467186832631641515674326345763836523688504669637516875584709500526017193686701016003952576416213601128410705088612302854589882410676066337521062746068592971425203562377050140560917678968212181492820940102385311355924142819983682072798491396189594015045643504527007259494176972478622256922897200973650801468843193235647469332208887158764537374076406158581693972587050078299772323355018586450211357385122363835843104202812047354666212233527605006561993333851631015807899233963554503592606326638270270946790666060341397578911874308288311123100337879080200459977295369262603998293451594976142814240454441833188539676424581466011383775783310651267178458906133812926193331430949420986358341951297736705883181885701508095059764696191580862013145386064353801901238047012158121242130061596919164700721887698240207324322528032768537824430606385118663396684538045781005010133719885154982641483074602189235713354549845655068198842204550855197839749358766958942407144436709034025528199152558360074663142886038285056745257084684237693124703208292882655188393825452270341655358477920100154710546501923352666777324700155016478403473813296712988104951823129397251034129492550306806629870608160059642589349363259672393091356743698395941360556364688138578720920043249588301489134285109875011342415458320581789672258818907042011630686304142224699463226180354192923524745449797863830746132695797928479680883788203618150782253182017269408332369297403970868102586953857804639821455549541506836489838099969599337298479796893027424448561665373930703868158800264791944041415460953887102722068004154590594614230401234324345275269587802147232642359574759050675596342588700452294306834931615109459080020397252733010477469851066870330817024105275319016069874985092953321249923246622018527494810518383005156733610644440859786070385806092027673560019237605320443429488188945890202909714131089463017654957922294540872992149631146483463651638924335758613631831926636397868263751878030913841269833543156441156785124839209738478435120297479969853681814383464131675832010810706949941722368298076479864175061134151197565382187023425834929779594638227902551711099270918673127914425854233576203429245872936076449770545292276804752920259966623784121357870190092592538504875460657048065966008877249047518408064726232920272726163787597299350567776588055423921606488012426494642262335034851285075346103140176019977008211042504225425421393518424109965211129007347140563658283035786710124943287215244593326250099490061791210880674491312585077125432653913574464262192230769324919034867700866303403618671140781119867750115228646195247168771335385664523903528038916291842634446483097087203885284939046404682383867363458156874161686048352073540187662727827169924552173506336245162802243199710238751898570052684129968862748098375637797027007488464792838899479607851862926130527627531235262390998853417243684685221147060975913794060638895775049115475522548319853882921508369676318054235011053020240422457351604183059962827788443901360856233563326677136289098264643534260225609005824914041900733390962526940711900350872553489964776090119018490514894388598454544396050888306007710426124621609943791428243498851278453586686062015753618449618058706466057488832469604571608461684043313600823626977839806653034836210809219800088893895515341267806483758198253163633653291680355802556684716956991052955920874890243620176751649361645613820808482051873153073385231060375634445760252649203496493804606980154154729528709989220162221398321572860517345112110107918139270735344930868956036860843048984997789079424548833997713367376134194402654292580502413612627878298214591807466348481757327934465117532641219589943055556243601755090333257340593917555342238440692492799169645921562462868305688681418106279046659140056378035758989060357802657318192208892630696799431830315355829218068177032897025999724396488639744476139693766340284218516116181022588705459614544306246018736152455606636229823888841827739635222759486535266371617603191499936734174353903486389483635743913004511038704040653773667533615673680212820478603392951666748295883679560693644372867401334766044447433217451494660373449486634266926025331125144548988903586104992923626846284735360723033289905675195829674183848294033011845968412038259950571325541592368327660563923893579643210291776600712556841937113811323594677383655170539950055980770958476247004132064219834148456982809564082739382097733669559661507993634116177690884494902263370362511305735019824106850525965422691173412620290518835352005615544091528592751312629454141024318024529384363654851815258495878182937946849298436580193187370784907355060231864971562442639694412162006486004141194842216019897557912013894979108922832151013000378098201538074134479518925525372008479806120558238511664122519856245251835618284163482020163208622983053351931058234934776651925080741851225910130340146652014443108172597383294045763570400902444551833675999261116232478859720562119368321958144356335161906167866466999365055025697133832571673320520294455996617975246883724121935568370345187644962680983011024553626091732973227711470556349442170751026380730006025472511995956341714564445142200712203532517340249520770680482052770297490108698233780837836830938719122369977298951882174665776834917513115198899637924751548940169410329260633987649560690740060267529986574062406253302205337811002536126326862152219574324127313908057830063029177273776891137062405394862110336514231328108906972608300509415266628456918652870305302989841434003651746465999850716823483354232666449024476347089629882189329202477387619678969171609482188039144200310657504868362218797746698883962814101971479768732224455183459075323923379665151844354194979319465420283127256759232750780121186626269452263663470988984269615421652296312596178725023603490934715552199201558900584136773156647005005705742954332155583969036474016677121024072079081071207607375819342145031477182855213668182353290977564045394845704437409983763372538918442489284648921460887237150251200337886208746348274084995745463701553945018580117283747172463804770002453023286193882433589583278505709372372311545928163640374510694523029275415715692336978491002760172754789954620347530393817434337374068698010448608451467779723147694631789396009233160646066142275029495496441636742815820260574073310991694239880495341645704731871569109344559967023581385682004503146866583600044757047041279772527753909433008276273275308435047128140974669815918793121230037948611218447117854570631982414703761781167488526629563043534227799392255480711397352030712038627500851984129398907290224279957344857512112290058949384462435797510774495184403367628701918419771624014961839996558950737606023112434573969460979169967694285723009589525967081030522697548661575392529730460216601320910368195657700053545584150128928280356158799508756553209809696374741192750158417255748409760748309134166145332352535325197228822463949112458533735051976834242480964165857168682097577192756747681854060912424909904407320945327348376791431988683832959493123183639880880825961270291378315613117170119789921107801221905065019031605350716386677657678859970010603544023532137732299959754802611001920139361546662808694347272309519810251510840531875694443568690265705279158485054759174382075116548869100897130981712633928557584277344984203304266363084103087418439414180587773032473493947599824228101291336119309286054098774886025061684009972631647388602876225605332461723319456839267636896721545440051449375965021028285649834105340725398616449092131215313579570628755175735243903526423589470212463934426588708793379058491118867224375784253171919817551608915514514299579648089395376475882624388884121809708196408954571918873484973077415462215840213729387392761201465762659582246716159182799084875868903270302364739689854383889691691628391846318450262687490121807463271957003779590793904000865035880609074674845416956882583466122144571193609456861230160403561462051465677683974810480289830963921746688682846868425522169611083507805502956107889915957070375160315306384070849064472366817054462514349674981308111087775584975486537981130191053459749114001634129710955010433760126901181943512031443175065163300079051861440489874413145420601500954351016490829753154719744699411510378120873952191436774093058722639408304398245549870882392649684087105375604750930827688216721901562285522324888566139324154703691428921299116726039853311010424517712638691412539689663436727886856476090557915920962203352808989375871461288193351873697113755002807167127800680518388572602693761244242708801330718214799629104897836352603459038424790083804310082482142929162059868220919882308949571861523984850270022299559869682325721168390760132790422334024162468788030158338146398375522383480127719986430847540540784489127256250695596610484434597225741224838280072349095346263411967217469251263776450151041323399548968502049587043162284529730277394845618736772526501476387358924051008137036635766993997863792619031093506914207412859416007799331055762039072959741283468919146550072595014111978541023772016043626209222203563268162594438221661354918828300773704968234255183782868580282562520005022233088624652482379064440698559687494379353932618706229151376919219995698563579011850321584391200824072086509013214537292024426239263604497622707745416027076375487415426658549201436489691350604274312293691107200997925316406482261648177159768570824615888531113645520094688443868265830786252082248979644447289550222791177650422729956108941500036728432155538261439014390580373354815513964036915050966916072711599853147345770934387730440223471247151695013935696710459603104751031003712532607866664370275909958407270412584879847377340107760363854722312738990876398556669810383617118370505416934518056819074401925256611914613360436257005678406741578879415897612212344598522884478483252274937795668344803434045603185198383492319108604529857383931442484379437124975991598791530919347503989812347666603246547705427742503673865299333654502745081970953489653457850357647486097372019461568764571280788020254714404206983393862549264233203125072946544058901979330255161401811728841310933185372836348657390827234759683201056923433876841306112961975412091101428227370465159117772007135814382210209166342136694710650895397015155278196459684002694741696321913501923740158798616718010526039950478883783247432504646384904172225047646282406084731067771912061938721587891720484936632032981417214409165800377324951503408961791098619890704819598418922973512110597286497482155335471984432028215787810999409350515806085519160964317062463099983875815557313258864506888944896002719958372360495995083742742098819561823022005020946628321992069342589536072240272808636101844583590118497369199928318341101774134473527942801423554386488435019804617065417074576608290393593973986631863972517486429791571689959480592042935106542327290804198095058317399218287679240802886782423567046115099273124131270028530360362706899317556334865694518446573877274941277071285354573967629961063299448545689418421201720756077087054430809434193114079588499943186750674242577137210551862500006871019997121660683111689661734348685212190529850858528345938381903458253127180349841654021003584084606339308434496033011514489159739093344797082896439736871473824264670891761963712031127523801891805771443601615049450137027567780433515739477564758283522414429461683671782503944784618805830267240306914777841394872388331354815385464493307971327093970553953081195657866641682845649357086229437355479626600939101930732765941009928378032195463495057129979955983913420171550014954093403520395466828368527825221575471457807379295811998167735928991879852629669172115643298914155500728747576933636193414966141693350562646664192655796319178960864968512678794895750403077782551604429941505825745560792462204910324721589637181881617587619284753201430606710602453002163769217958573898619050765506672187102022533095930289936903780283905139398412970886846474683996969219601346050259101362979751988215282952867128129767540316464158942595313734888839488646895163913006484095621485535556581900800373125406646305235555221359830358278838660573801602961641053619804208217624396324869456080196825449057468234582220697276573164838150906041300490378005263558842294904522560688059818548148872482706721499842329907893736923512960340765258626003762219848335699403799201242897797440935907769856786251717532365482021412885583962177006641344855709925102400403797982934957511085594842068511208457510106188047258627342177069305445600782354015901934814892333039221691235046343544409815787572528357004205723762020118536742354820410428584052770405038292297337308038551215559558639972841359992622646303756496722681051393674515830666957091195524080703969526150851235583154219057511866003902631376916650896542680705283894670931301528361603697998253644586610075842392199409031804139645190816529876400703068472539586042736197579381397536957681130233050501144438156978372927871081642776505705615892962102105966755500652626443085736801572650581745281217760794740178994447866806105382727721588952202308980609328705048153802850444804809968134126688418106633956099110960600750549146614091647476235612850688013012043119788546245100668828122837778308974223053412914347699818346149601730183088271745045304196531826330007921436887059201591588517968148496402290601692051384262754205251540176240936399480748656860531967584203867368084631346724270501222118349314472020305278986164025382189766481673118422565837630631930572455408538472500660562924831960381868207081322251904587120073257537740582236475412385870978908134240247993669265712370179589944242965341420184016701865694885887333292272381543568046064367320873079179064795269893204193414380396385171847460699432548278519538189815867774941573743418439881114488490228588456419645749961813436918507014112439553980543061216371377571994291822709407386267100248572680191171466666654677933460059669583865650511216440678692821737086742946390922905125012703506543102811384773543984583871527559185010075059830597674200479647536541148429808786096946161954095844178461810773361221459486284176614628224879078830511320256666758649422936252466755658144626014313510269429181611898193201893367039912435796630381556050905082423729466659489334849006561955159218779088421395585716744637413833251998593773458889600694533434608098659537162968789753060868095539382839151957630748631457033056773904946852524602443502463214361265096646692053917400531533131350435515862971822472661290751559853883509647977806062839983940461869012590036425430527545066008102315778394807636329191459501590468867965464051986876510399290406504384557093975354715837739506205581649287758055015845169453692368215123341639036889808826503326092809929802067733612584654187702153378543357448781528837467573861868819856877810625315857569147973066681235252540364334638903190349888245469842734432483760351844949330210723602732088270526282719046656527910159736914836246257340022228036567583997841086717206703261308128792722603012375446142281729265687897710949478988628352994389750979030707961256809856817043215118654093531565171035600960804476956687691616850458410984768241420277242444440821252857733341078222031709576204284175604513871163912107631555167769663307466769729670565628929750113519665457850383157291126558222832358219635698576637305985397422241997691806218659437539149229365652131976090680005435924291600684866115636995908595840749827606288455138022952256189228078835803302476139710036429645485520030862880145517570677481202767775795857451125856122019262578851786095735443251146533383322633006062823849919331903725495711660143220114839656296337395519920481811209296205205548988179842132778181705046870109203380141205731710380017634534265837834233451240113488591665592291930917223183025400816911970307452951382269715207267107068651561372712350814353305597338761348975490407077821621741355967798259837830146007212691562850058485578121133945452875490828615346506818518055688200229307059269841022897135770728665088994033270568876904461379847704272715469980020435819425026037332510638734380112447848120724673780633127399102428954302450735668548532524942178524878979644538770384762910269313482183604781244067926489229832638933291571865504072663041530355121283583800434728183196509253560286148412584024488853625268645051240673960358679122267863334419366304806300073398284330743994385940980492862889479087494331612265795710226752697218738105483513620282092233489770044280619520950022625615269713749694081488642417170041566609836125265412882003600123544857271239737666406704929668685663177527611957170289983709377497025076980563610283876811020063475436006039669059344185480790143839987473978506577670554697799215649238342451680236536505269234685456269484022993926831824645130222989347959569596165783761753279340341790638850495572803002573453767825428617467543013538201018917013360464346549783893524638358864478325301351898263641840123962401792305204056699781071610585960839694407330777970616563881983385054247354201961616686617342521264575255558505141784756409719973629736544416841480979859009691391315765446720647933039849332439950855599957080204561495024580976151879681790003772182794893031757260650183919057740158461022527670041081851012602106741263792683290131756728965959495535425689453087849815505512056279394656606657042095463964486626940186932357779165085403326258874492896993017442462804820633069112626920245560344577369988876208218812364233579396676779173508450201622895781195179798166125626081453296382264263670214009830675503308373590650271035296438655207996876932233990141889991691812494021588491261691200255479311174278816420734907437085005763814110938932696033525312929875451797502849822774953983128275365316869049517845689852598298465110014710721271378666428779838506449889173100345913709690348820453666682822418281406526321733551023536332258791092290479686508468230447163697035291960554362619895472629302496026120647820740831108505412920241266254113806787284235181163809059012758171872336984060267346902855645541791499857701611205192612294772628433357581725494684059508719890101689791082470708322960495363163589107687376388224358576143209928865591641265587379787472340162484274745746277381344022220549592850510263901859364346436037933785535814615127461312762870678884552836611134398096168163083811121192275847697631873467953017224881610293288830474180567401324912740224860933723086755739775629295574901008132672020417415396168300509390552946655272123315401486263929715226839766055491863975946085392657071235752802394930277401165758090229067044303258318824123864686607533689633076145501624794704601871933541404518332409085993026232037673743201224714247548513848515688147451431906580520006199034842186583129389559125751744300118749138143103173859660729243908785813252772774872635883069508283069575537556359863126247355687999501818476078622180760902792089718302673219356874283610485365833570801614861856576728786903079841159558645719455671773106178268923870632814827434812376066958675736982384316672105307324439202666683755589416549469717984372190029504478699407451011299689269209822644943781760467246161440643369567207255566581183273633089041833454094480184003637676354500279163590474655557520434105178263318265937312523989307086688263003420879838928062623356376170201201183859407909799605020936106822077957716945258889212178337522868444186710108350821239677310522383667313914706411517887080990635180868996480444922472178399804317726826017342225349979990030718430125389009746640965913260053295731322583333444318607877292235621133494727040440941401916455364465627846948558809348995091978471868463244867917144695922252032958124205995851082191017439934607237454114038158291270946118318745861353390537267806381824754392083113834927941043355933510718632989423926452813460516172209764864601864182604455923674242274541021295451408907713919806368084520173208509536778140450703419038305155743227777595511019779589030441254266550324833702714129476510534867846980252436931397189827703449764973961217925260215066640226083857116135771881127097903783795576385996105515987797368492076527047938657886491038781259294773213264216600855965080562613409556920852894273388428051162605931177742105085530002974868964274075635468182235488893914618299731264112789706781374972179939968193198830046486315712027838306843433381248169028776555013858844487870087697492183991145786982445449732014395331860126710414253664479853521566018914548483197258405846213041152696075088756186896792609619485519571110149119458524937239708922366044644181282864034865085235965914136424860970186599879666234674138282342856626052802461030506228581802902576596156598509891042614562400830978485022882836090703972112162533549155890609840995864252142400090420613437106143843495799918775566873075427992620186919317520123254996436155214686969790313252069202684068072347862415526388600986425108941170096041970049598575022089213981135153383702746508049682659115333696683701668391143444373528843319416186798323067568363279871859467069874382071738512375222596067158484776881257853608015862061205693945216747483175618656282140299377138342252127272323367640848203668523500026436051903415292837717536193206073455669985984392747320782480517908761675159730891474406402796346993850559585687167067091176878941730628207571034541454883242305925130891654408818164665804191228631122907447837196670584135066395545771310964646551810874795990735316521384962144179059932927951396658523040370873371761695862552544322232778832380194771740168804178234549994478806763187114392742399353717973970384028888920666912769848227323249353792713802663186081978940190958443080356115711061124876424038363099640121466078224810928547591623651627485290169453164947468117681283296042452944968224689813363159979805707101182161900098999200773205043801592094682543299947772429633576025061207895258082388026704464875437617551661026679713204197938129816059295970378338879503710508730337141856365913825550012696908007792608804953742224788398685140710854766547521962554236440242238061473883733853851858636386678518195400816079440083055180515958267744556747599688278083363370333364832210339411918111121723002978926151812921210032656802538123087232882752989225908847211079589248031098789423044079412381637304133538549590367551991423427594221931395361688418910617406857946214612225077007969477879555503063818640899792582702958557022732981001199253775253865927026004423263079385973697068820268935689538039279567189500762180886207536660010377300344994173253285137131524347584442901589741198421591422342576600669434390999200750559403194773640347887658506887079600446069045331879181173508818231254459397642576886335859377765196777593739265327839223791637391461454842707743551631728940911951775618534191918504294694112056063081067294884984996190621252951915948594043494926043776478391218265443006598524443992378267154101482050566996996832820857535644937283830222504446080588743191978980951772559491072348319391050155005429117205556603257936472927712894119621963175577459451187589876949998249395276290695849972570631441579225980591002466366837801514830662621123977900733021117228438033249771546616359846991640285335996416306082179699419948857388574384173268404520245993484767899796208598461558526947923709279287677371334356656439037283572688005790147536293751227823445274972132936054782776330784802684113319291238724036446568648233908228403536216347007044679051977456661635242118515068117209114499997070605735509741534234305184345269666300651792196553295534782453756449080237989056929135629965381342004410099328594471473702381280490916125818535994243341666445949367417336451031771755884807458633850646065689535051112673869544790204905391907226252861605672996393333844432140408634131895434440209487614004496018424655425398656994213422794798126029081065071456276312421704497677477510446814557419011890725035430898205493854957437528671535154186870145225437681481926302031333215950202514357666486919741373876273705980208399013485908985411998337063294111252688899539159161455093598084440998480649096207971221255703723544314983985632058015149153780220686648177543308303119549319558756958649463464344546145445597164009442210882055524707925401603502662307433400607350757973199143552429761846902047284161805471020585198502575369272077560965606150315254130102587015775946876430655320362839367736015627484479675937867746979155738506091736541201526672334661506200304049038184042232923162421367720132885689711406227294393771926099124947695989076718748204084835899823707001251550535687304905397839694996634074492919556745192141112848261010145876639369917532984532680554362204730067169270068202291864299082911995395090696639943676266536114293299678730699230924008238944202089272652171892309647442265358702268313407816971750724465065696056304583997197735377857090095649007640838156179335610583767239541518823007640965241789906271787514752966838222278685004525727197147636454017976423912323202379918449676950035697378458249053674958058291221653169463194414158959450157103552550108140185716835965785390783019055253166312585679608300686499713848680258507082119287789190677518565704272907690417956374181635364664382868917928515799200816822618607376769195671629077305536519033181333412015874392815228994519043996946545942570970067899635334148063751683498558296731093443172218348469944941555726648744118326665047186796415152859330610345133295935276466261352444962147223679893689101623357800822558811819529523961758909169932818075507642821966601911682950097656721208471705031563231259757315789807539458289039237911196866283682470502063662774745798068784080860758726632900158170275636640665699747301610308048517072787480555831068288772405538551959223229578385005429856660975422318810521182859633673803089625287650300797761899851565220970343822578406794152766632817718695150754384170305760804476109730628108365585670894508053830583543596416185984029549560735189227673880839157793473072373242326460960973386445049453122357207912822978135611280654902071207345042737826175693578213656870077548283184251496544198543173753054268541675090328963979166880548176104635999067830798674871878166764713940235584586654474215855288900731861170389433913862924238794269668417101519934162392002407874626934751756602469905516343200573008412273896454174120241876683206253324216266307453318852139754864754528618921485956305411113131537392323852979217867988274721060770341079306058022583340629835308453359811693133814737562941519898842047621924013204929644026528040386917748815998120873181738253666648184304526096318631133137844575872863956024642137008029685792293287900736164346175246311048737097758871024287483362387451275327268458936731542109455721656804995940731173351650915173475456155625479784912473332333173113609256400935770978231997163943401607528554798744943933193178705645838240833269548010200875572011893505946305272214633474652369001701239724937019939059591489066809623857257132335583521810591920536362339160390282101667757990464330985289533341124932104730784202917659559507824054027637668274195257949240558061418293478772258934255565063113464066894973865518269683467373775908417958188188585973102775804773528960897081046713082365767217434871935995992182707132609166727837982814414658274489784430726636956276538737505623791951850400531261881397652080460346011966479127823751841967954598357551956555890248660582721039080143307853269807760431431400254449661050011799555548928469296664694077726495132731954731508008618825474673322392793835108602305343975568553721093203911403085194075738674808959222767311066481362292947833939668138316146186498183157084239132455336264821858733520339747292255243846350042360149167044720462324290798025232127546970110021832471137710201599304917620499136795919558241856302839716613676968966563040280251513736069524606580029590372978823367536813586123513001133240542252312826173850102022680512017213295297886402746226245921247816772679613126086118837342033327609013817480034969164558310647110173093987585980792367079589144748407910584331439412142229700846330608646794795511568652268958996815088244546431130152590197755859168826083622289930535942718444387665641182113307687125714650833186506806282781853671929005231815574437883486797519545932329191030280517505498824648351623796364401178455643241018579830144948381854383568071891644764594646264863286549674014774418083345475368658005837785909817751573214792936557878327994983009178884718351597160060867595855176668019016135060182593371717362497547351643121289303674089284092908067246166033142249979432358175418289185473552675657402414854893419129954506174064977821901319525034926853331729366985581248062384767872542281287201415950274233970387233982528993319073794643019369193987079595442521158064917032485142793567462406787284182255950723013558375777962755670665660260976415259071690415114390583617104853449134718461075800947004337422813596452289340149007330635476435564625617587562612123464081186554120801778757829007898182449273690439878114895945008664149980663794033233873670940202211895271012303825673769469881566679975276377997303304414131296952244648510595769424063897937496396428840774358454982111561336776797808513322273132178135346766720884740263775727868969214256688822520840627952802555314166710573270489063154242965486538622719776572225083093166881407701008430788928081401566684245564096400775105942119284943742120933503683838527302168984052296632470172195553892066612247027118852244246025303862042282901676200631943964065974843925632930076112415473502009779901894619507570455574427252572024882700835656449155681305011469135553687455898747424395344373146194985109982733515833410064729788262417091407683584340656125449702903126478976837801014223026491652112180384301765970498051837331048399186220427623359563249962865847681589269801224811268429485294916329758522624216351604743874130894256649580602074911066461268641279924545101731452153092114561185394088454427133243481211687990670602095899940524902180642948748350870689288495131455950534409953631638990740693569663800277832485064452528298636513796733144927358054428871964047128498786674065427880123097138286140134291374492413914699728133625814149958172913295486825678474008607325882476502172882095778517814234258455705271420614435728422247733199789167636209813701332765019874251549198691919301112497874646036844139205558490642272604538780872505690564417679910511530162430134762792425754116853535714878750146210204430098547890497697880104974845834247096478452819495751174034724488086382359842735636883751654805999456307839449130969696362605160922677102637230178729793093318191347260720940413624550005620878435882405178942153131404860391760630490127028580766105381074296245340767532291653534209665205226569751884633771110153629246003828529592999453879980886729444161652785819609461162828891107630409058038563194161335107099201522478154969391755269837556796373543251753659299404583307217020855138884691661444903252509790254642377766961430198724822293404821538311999798835410126763178727352405104430150363872241177713327730852259171811530894138673824876661743726471375954166354848513112771590143613072124347004941857469355623208032055610168358091917306441839299618969326180648507407538148975466132999367266422260753867088646835323576679814126066434679029135666473814064501769364846026628754926828783020768236375783149788479454689147487191948413247604910963189390409828081170416407549010472128997023404746618101804684421207961271520013512613719978501106352059505927190790407190879172503958231776124045962582810801978603795431165606534316348342922506206682069732573210869751350980463938865291264592972325328808958355949805398103303836601912602218694340424598695961646117059392085561507670305142657223046432714848667421126799049384496640272389388010300938294238312768453599777237441212814003823927868234654641869528393076453498133836196860594867819537071449029416014588742154087476220172256714777243268188856078781140737189687069506208051214876493805500962762498052900079203858363920666006544456897889590321444591503197395375501702682053099996033302273013291375712480775767540194164627294832285228838991439785147171804675154992791999762250886612898624469076933534146326005936242084359212902008476774580750019775743609699151534985024006217046946617718207914016095698187699373817108803244454118178578771207932979442977236852103438918708402739068722194764472770807284845824962644047281767371583528825423375739074223092583746752844356730076479080618762782658933378281914738659301789844551080717584028815011977812582714049367099825716997192648613209580005790373036441998017046346138429441861905105785106669505330365554511148927099722805741099551093268952730276331124503194063355257898133476512247889144567526552781995240374104347843559263922235901583856503234663834767004560431633686110600209346725094890384427646615962064441070273537869829843225565836215537139945544248826566122419832477648800406755671292297320908524489069698363824767486174030550142608791515676511137970874337069356981298375490666136579103534479446298666046822278564634202465279383556133248993981169826521435214640436941160534893818405443655078325964704762501769519794625424279134902655786364656805670173783480074668199570108326836277803237087155472734300069677451516013143568735566666766552579735540392503249572057492812595913000903346675555785187410776284098007996481627370179496819710857614078524138158172051108836365800515390944107752232320138287391835084064914943246303863116416932423749078506590665265709817429375518105453646061498315012388466843226609857038005166079345182637514301256528694129771166017807847414365352324811874251496941394343106811685585385956148375649473904573656573940281475409852756914485361588674979512726670440145264263964752853111676924318245845040353506330353382851321035745926884650506522531315344283105334630634744929541105011739864388130449496022461230630684799191744038080816630663898010683508013526350195186088527147870595951906087186480209166667115469534401097790916585423877675511429595584669048820001671118680216401791994498806940423043034537135957184931024681158760950535886089859565983995073373054904153074090602546491334475661623881084207687945697083148845407062001944923413842591938917801355843888836070989416165343264296700103963953241341490560892386207665663397067169745307634237024334374269838239839893149286026673360553262530445857256380993420528335868496782243189152919589203570228421781931299163151380309677650953336868593459191211238790156305399696594586961727837861471831409698442070740469955575172313656964916060263311672260979344755726894587420549651019514238223826468161631883619121818759143889737525143983573988576841831982749580346976162408879401023921950977681871025834664471385222522536754655925486803825773924947819882057502169172398412316680310523247336595323062846251480160014508941843635305717962037333983592740558254403416378716464214972501228907065860682123122757298764219674742524493174327226370765419538349973469006662683999930515578644775497608293468703791706447475483193712274802739456912311314085844214708540155177235597239917852847185173554014570511135113087515120675369290342016988558907825226783979421689556149990916381035059323823430112145473184927835160439441564511596262864846384203283286245867980576766772176581291301013378169113475561653300407916389705192783614937340596835105218863867081920820228399080863341686171595454177443613983478572266613958877242527545769356121687964504129336950928902162666026189065713545189463826410176315576956947552734551794373605222435906349550475490515291451570167919726866486862590020710620703287984289039608200880854486094309595818970418749595307949915650625821748235112883857739774648344592240918173767881658429228719943865173615520630994846992634273689785102361175287532757528404094959120072419312660266956747409408288301416190242574259867825642647156868457872513516012366976706372634971307855680306391644190074983875464731822639304818805151798188643198408207405010150834235531059003830467790333021771855261640601790055446414974341483511097910281793028534273150448500452873855368365434119984766754887315343458923703272975729821749193115379689021414910244974612996208085651273829036993738838861377139296761398118183408383136781689314401011618898559598562966724095739440744445943345992016475707694647740361127664119152778953871800769130381550417831483519560714375671767269626525932712063989287101521893027765812342363923683614365903644830312075920660511287945088766312845676117946594089877829206742764218172207770885283459991818334202263413782573917239300976525011029430720504692553623705150372194315392014858143975739752282513598058261858858189431575781596017196919264098929563810421820875822277474226752179990629593241103759510996438897869537482028989352902911213088578592623811583082537093295371833447808284687624386646581196232452481129329196865972429004675710806202171569179193779283418697729913188341984001991592103197756632053975986201697684553393111714998497251780225322995761705227803574415225159564857274761228251719045061212543287440588852504579208186887926682823783954732924740574846301083802073580548653033381737968472107227283842959755902523272792322928893531451699131462570776381648933844164864220068428589214733860928826989193028747409065417982720513976648703796959897358863192784506181982355348392853504462194944374986363634820439624885327300380620398592015989003745081997127304611456490706405464659441546432893375462248027021349597067777189880518452905890324804262128421881711508511846762662010519607285689123974307387734935391712448758012636193535875729108058529274744205685745779733121873594287533229567267804013557401552720005807519355074321569206652723545052647452171338610392115971310386614032673763192940887511142622581764291377268333680451018462296538328057051149444488934733870430784931428868366230406632401149494343305131525276919470060361337504479365241182810469768793124895988791182744296099334304555545897599334611657223814392135485320627894747314850344572357205163108254707438643059511576034409436091281036353191172513520251458681760810503425445804168269384686383497447462752005103374298443337870170321407836654253631284766045865337631606761145367955119311883867572816819086074875477240026161453840931345433054789774273064833043910792975864684209695347440015377598766192797603897631851726627375557626206628086387872158390367447349436977073749585985814337100004286641730662089186219229939411796746636038357601000812791840727777700998833875073961662373667991144672290501380561341095132029297988474455800469137824751150232186519206161691611203214192124616551341248213685084102284950371012932356207940349074595066384618713329170096417588902094971394907495612845188144723851102979927868528461746525659158782434540849847202984411463418404602352461008304739982959102660332399247279810104556103875830233981111012578177448137569059055761976850623132898588296224231655096734024303489023504448749281503257737884939000511048933889448474444937011002779017701669485214922876929557483005980358237882522967286296933977498611235057194648986841860182499154649776740223396292655832947282605589434301162351565860306787589682042611218039607095162185187748740993731865935817757708395755122068987128346715898252244531322236436888786060582881282092668176607822877215376191580834668345986476313978332898064195019020261133489592863396093518464693671103224371196926961314636010498072603002783652542830250966416089553867410185557393766346653167964687614432134663059521468354749754483048924213121134283664987009411764153137285155476618036637154897444056485195072098905799243811891815016114893827505119486951493446790516069901898405438285265584636946917120835710304641896134762450201813398344688867095637791193101086869745703431503704371976227530384751840573788355821825834184676713769675400727440225185142668605114908293433899322625672553243123699946658572851379129234407864736676823382614893154535257532409712712922076995052558446127452450770641229954324685017736187813321105303128318560805827287309495817814664252021569392074549446031795654508081374516557676661704627759678461753502767832384182091605878610164799151527107900005489148770255311797405189654041963797942176682928433903704709019651879976714819364369945348415968385230304702308794817287154779251725845979737209574033774840117553178122040015052442917591452579943069897450415093554546337891628565917874190768245270529827395136228978637701340240087573958449200235453235509942172908145818922189502056032767943003744090455302418007424340748825852784840737710254850110284861212079756617507453517468750095307133528453925740096383298546454327799755701929279283136224258074920612650369173238097476208957289230654092195794711448714445476575794795146824600340014731774806963693908283934872619588377840518546023991158465312777377424446016078852500624048652031380148508423324833926992366001707272505120751016136224706716292129578534814546898853975700257734190095745160990821574699732706378452580656625656559574165932505740343316439386507057225425152531749736929885676579909565190504987396435932754130453438353343331108937223330202430423009022394222493267483384839716530803552929436882468307343323689729467716053930893902323589919155993285389290033773044597042031548281481997532981164461385675112094687910529069631657718768951137130758307301065870933577767665302773539957160161125411724802605784295291266795686936926503616317551290076572827345553545791494688335493003259994600953586281692195455713389059029897685212120479595897387400880955347236787319344972976178028612286226822214078724048709800583312442189367268029183286296658845199277664924320676628891757260433891562615685866771760548291865098942434099469026506096260394372620983051207473511983560112233865819776532367577587001871351965404131500595698718794429151752708553483482829332023828872496521798872848037057879062983824456812272447474055036994357292825957556272317066056052103609383999482809892106466201896277883043270482601824424150367563942801959617320284703011784974362184253077201407723101748940522076373082623521637272970312912971608111211572054641826031358158069631943839130293338644867673669329088733683804788146559735044187737500697651661868613809656251519272535667280122558024759390718410503304531697711618223401459346126261684871205881856355158523532061852135338787107841608652328480590533060221681297405934652096115642402566587229195587882781763919256378769684253626732407835304319766769192926828519371841738554796881596352708534810894124335260483650120186089886846009954227470640262652719519452601017975156149060607655109214528721804147730755757069045575513970507558535113754419986569404485526198534366666146656092323471720150282516178298121333911604776233889021207423821713304135782613939137385153551026231992495696476227642432358197319337604755983295316217555753571988451273197282511338942945846932790553996606797707828718793930129180972379344183502268832754559508112855294195036475324917418413961649876287507127322585349054294744153197335370869150754461349740082620100316240806704920902243095412515708507712471916213146308170404063247913880564805327818731055038260710170756458834549110645283850095515534387302016710617988073305093974108767637088485282270797077795782352357982073598437302768151956240522527841080639491427616982941088361857384766543841343236894893354379346362987326695553517909738045252017201395846696232413059408760123557362254123097664732459885950303473695224674975340061173315539103012334370575604888018817885116244060352657432903142523009829556829804135479620348713382614692462017396292801197932656115064138638544858017527548405044284323289514403531233133347071574379356421683345938191339316445973524762202067286780032503268269812023247777360395620656194331336573261860427592504751423816670420282725676620475530951092115968758073138321394966831049067155614373764373148228714863443061502851186376513720578290429192526000918831072852290663492484133413094531210244501925132891194804260791814620207445665244254075516190440286297468332575670282555597950688320003536859808665763565524295341819792381888025917047250707024214628300248900176255369221818342193626482834222205257489276200047659846398953574673651997011820199166880563695008719886313720299209662977760998462436339604701639515874728809584156785113508093163267375134928497879406839770747568900402588779075312810904988457025549404870266712011863753642012510549702263298971639548559017961663746496840464472872240778464885044073328189182568633079633680830002551205333822080851137587190797136106657375110845590940326874230107451788249767059322102189538392286131880977192944077910101124957783691124710232442899137739984936792868960257839417681420124309460076820759220798475218760236034250305648935136687707073343925325253127028137837719765547651370216872946158043831515194832153970208113465347395859283819786037335560073490292759610445719752901613406223841515629632074070595007051555320813477918318874493604507853831553558970089210207499427282309961215912654432408026261163232983088578605778163620133092158963219459844949515693620073717135989572352555757306512138681167802903982408945684922489906981929237681891272745600630467127512664203182075840442422326154645821376765414847940562260690458320120322799454863452993537285690943281527528878082005016507807493227962659318555613984718636304770664185986098299707821241667675272589012082389751245898788336606669682047133149346445539285536068898335434122035993527286260101800183951269384672587820882192194240257981983214511471367453064771398246275453413900031506298811398929515681725359125450554589700876046509510498418788167035544291674868561876618940892369943272166919007815077257879393726514890707916649270427145643300748832441050493620581215286298311543731295140717056512504408792014703994948544577460547127836935666769362828850556241197247213328165873673408518046247222121315623981868180915072299122036592195056551573564256950953149921192499093298994863745500311285962532315742827320971980817405676850354566411452423547401678138310576739800977960087418339309108593983125638678590424774640190154819710811445105699242081945632973200751915403114738395233642364031325251105283868825827614920833501938574309450716402886511154207356560004028217726687910114807164659377516142572856730407448421091842983981825600934409393679791227625708619212452211583701335767408552249896787402405546103458240728056657036412390347911778513559450918782997631744618228482038434823010948287571045592417129535477773400974796158243779654382920746755886754202436765328306463982983199936562798458656852561358716299787648670430428922312517508779756659732757877930486174326596360765457569732154855939446316275932330910732042472364536796533262215562934175480437623659441233628375105390631472145713151745446147317184055025791107727547365612376591565395443779556579971714538149888432555367482146524472623637114260241779844593515528269643075254566406340747257791397669073390502215735387915985915497649333607770227276554505195339207654787457894829211825820716982930021134979393409897217861845707864564890946977778742599636932435513052392524960755628941879071352229559457335563233936681796996576224672008747869955598923378858758786840394470774913890248311737676905106129663954611066042255684219133569046024445224740119763873481802573799771674534520378942817219783846003359859732419610465625911144774201991024732895800235287026103475863183477741141624108269827702938805285218693683464753243821980132691928478245009434581059530739300854322960643139192133154599865134376397291690010737420307838408416098358322102584198297204749088100564288909106293353705416778412000871426452056999055945654582959389157251757164944425594982653465472758386136134459366757301018977219873230193320564014690246007184256251877330741416043776985385361782409288695038650212320276364631188950718767863366159321603188067831254100635152530724718783230940925241401660680073864194688851908342956721084705934394422101961365620217268818026595937567916812922360053866316432778434365823900312562773284210399044401981527223731328092658711880298814156590425215756917508567775264508828478483825383536512827559458983083213030593090461109909257959934202729513357196020039238316036534124147722766909387475299204119426528577534588866314889221454260836592441894841465927247599543839016298239608533830188909466978609537783159491872048940733835667265527058359225571734549248781073068495132652451241047695051257192094053268704733229236924236107773444424243672869322390023316611382484666954842462092505877742275897971889959499264534150013286364707538473151941995217640078624867715863702393868415768808379515944423306810331527101247945928799400635314887893034444770573061436190013296839580445154452740883299343300968413400573466408440803858484351250998294647309159204021101728677549035957213461586578192758412341668238142225168010181752751077036320750311916704599955243612629008284854299214092693795831174755731041648597441158446516915136319479965803515539173672016797486092590626973349954090170249568249292137084700894029948257655389561854461309410200649296706374624696416755805948211343108836070292074583499882134951812347029970727687093658394150546487158719013157902072712978497833174664069499702008840735850456430173921834372670888141020631919104363516809110206005091417250156890233959278056490477836973513072523766582583453741503181403499662214955953647440825287371168761351279148143116557426277547456657821386206081393136248595985558901852247200057427222793323803151765947520214952551764836375998533946547921516918198560098420181307194328319811563486748940454195294733465574217283101375850843418944375598145421890944403531021029021130580341679535558643665850146610099027505213318813445485253296384064227079817620821350316460171471321751755971975051653778618034778503449908765644460411823413372399124537516240615252737809246274672717574372052501543961676633314649046402557781806676313120639774773954551710355793659962068928613600455115124955792688192194573837191682848149185669162157220138725347034075499576110892329524912532822011682410349821946619094381825064275818691726311952823103966260256425985343793622482935117034461805870352739017538427650579425682740136154620147263811758513537424664578876488533198816867513325099136630232092454786237192796991888820677861680120888972513209472395622483505580910788467880220370805521467207224616339045904578471436193413479999848217612767136175520787756368641662524691378827622865982640608721716031568353897426098133832827407598144407733440002189303967504093645131771422084125177854228033771497831039098822249978118226369497768818343397999239510873961302518584447794638788961731549092510515597819962479348483737895002713222561397758887831515205632196152547602960937781793334594506733499949114632846462033464283035232352060092857538354372167681511436653737686849707393694753910098445415033531200133387025537005490678946965288619098297369065861360555975001662430121794739574017466586149399593094372798349449453817708845009605310268028915697781814156981732404206416623481745032048394714612074454527151808677292775938179339934462956312997659433659156952075793531011759354148440079810555525608478123524826408228331244738164891585882997679598631981192721014449552453059928214734941037588916619571917860364631846732699144393814047794194888863268099048686705844894675368406707372348444359243162842132122696990967336921618717549049824748285385131720349276349885904443838284884307309494385302821978293928400548064693992386328867412233670870799924458583592169115972605341019320948002280534295767580718946372170764155082747905465902782854821331862310287897541779976542807626917039454025201944539979433272588412123469572784815890523947972155437784139135740125008695409637443086427049903618244244007759313619609823960942517148299415604886314288444413682348942300153876956857633601180348937493053178805751624917283421235653132768497417050824585031818097587408462098831016028388276392501008768678547206293516985336251259013484520966585673046551509136992567246357065113570956524807620148510940150430886563579016711517652786661023470098901178626027709335488431128709890778637157619642507707465634736547765392009875976856445489129657830395491973427805996652290402335210153169791895682986264889512844806810526391955009492566591662226035917146328151322816759609488093404231468483192343767376787000494740907177478599242674075561264379165131830331503115444939989495630308354694905972054919717842199435695201919688491343737855649630128590444941268789334156725667939328190970969925524417732335859057201787453782642975365625998234972231836470487762741225749613778294875782901760400927428637375241318049903525471086453134548712608628214985344867628559359742010173313319234347461541978293097079043443767589146151658784408943547238362880790398178926954597643315320392404890950051518543563672899073579561970957135534824856231795144691496844042321236047885270141559370882313814959636881643299074140098903085046428326315333562819367598487652154516277751685327598040567280246639107259018002091073437571463478374826607233790841902928607773541156716744352039498544944064800194809585942022487738447645901043887181283508332586821804012452824341458657966842175147751998005123838811330955708863446064243390345535627510685944262897935658421497529109176000968032156881962558857847768791919471660501882591479061820668050314725633322600162148254801375230924071725254836215747636848715690845045037424760140045619304945505220790835282884558544170835639403351647016031915149656901787241172082278485426093878642549315540375935407376345212312084526376683838432974938516254089615311716159420939062331226436839877648761444296834492755086073168620340691965075621594792665126207790784804967093627977270917047930156847034266797167309876574731310868001617299207170363510612994257781371726109566453907133892824911124127119624268957380348331399197222294455594035717939778157979063897841984594521159187756241703405600452249220323646804779901168222624302040905216529675883402162312741975604439007399848956988377320327820943204084105117969708694154080877185817817479165337394369901857893574628647319755109720868652804413715956477020847819925086607960638033363341370009391214107538200746393207963365885520119243964445521403277638144474860838487080057119621796563930941297530866592616966314551619398165691693179307326922758487899268837728466743319114727698250651939926849938645199459685745186741756037562672149544585508240328304142664566989322791473454095636464766230805468757952325034826211113971156239434390658012652595582913148121467644516629912132015765752689583238128525853329305356200510307937506337798743662878905745778434485220272904420305577797413615025216880176065865699233030910834289251479997700505852838436178812382010118674241411047771628723361188481465803879941716307900652548603590105253014413629497223774826537604441472945463950079494140681577569633493698396902271615285428682967278769282167560031814880984900502908383027307258187845286448666172349409434759919834210479233957386040370418212680387458974762044101186244922157481338016992185744099080632812316779638719587025205558608136382453182105818003014316516786272517580954452352820055654133712044271381000903547041152249995015589195685678783601494959204316790498871251003083046902052923353741901801922238378299543902664927306451060595071288128038542757298959359882350788959266023374878906318170284595260555003657645090955319207078600473103711615965221541332905925421999819295825000905114301788181437520957362371266815429579262060602311128074264373239872570333277960714985054157245287226551478903509858867841631390391166342875044302404114125328728090101951861892505614608826805039824140956318995134616259056002121335859517893351131565313780483080245362573717721748665762025650900593816106489485487808859870717866261227027555186491297084197457336856766836719646042748237660597252639401512084591177215602069391670137256794266202862723807356653922368198687173872450397753051108737143192058926941291347119450525410177268684788592944006240808157701648083647513512584257339514729339183788457851842006195970574059106388716341874594930494255712432301113237833974537943221600552267062348490495674328742117091997248528561752239232219461707811827218953596481033133077204850480045706641240498994123202299984285761185625708624447437200829152383029988812986957977751841630639461833510706256878860125840259816674577491061556449748366002687451425200164852067330855756638144334017723634780387237422364087090127798992268829244842311374300223195283696536517111838697671555311401299518243389460837729954811721214286399516138658688444741429113990252726864747823228796590041641914763137716131820399832489212454066772360008576430807692396432854542013425644574517069606082184621874494514359762238177770481821209680209263068016110414392618531713302454211599085912101027325644573442595145728238141528578020950986749092727893213404508606622313563069193118345112092447322244423697500519179462803934311369128337588452673583932094543105953520377943346612479541210273408488463145708695735934953113636593376045264016523505260822477217876325847184428831483357394612076789092433829740807180736599675802882270872132737089294016810383180613115462302993894329550373237738996705817418963572574159397157056084194126413339921028399494374072781541549466516567471512255176340364188483661490031467343992902138273584709567719317261005390197683503223452878754718640547955764403570702097255756445317981171210301875051969444819031674797624727587105287550667975156839219493756584945270378443020893104088316454587002346672625150346129706782400168566198944389683184216499028106290748071345249063415870112781782077318599511123236563465532454100340021297378492771288885933114752713906970478408918051897376344704338323581110144619651972423215190664387449449447150726676210237432977038712831759639150058361740965895936420304024062231557378946062658119612244654799648638712619806419357184049191931951522227112688323770573777637455458804002585333173825356572436146545972565627551103578419989388569467967348339080708721646931369854000514593955483201921898460006805542104322249138901612797025318603103380650233162239128231742151521276889680822666490369020899578390463685081833449119679219544907452927866841378833044805150203072899679995768549202313673980925744922109202554029225768514592598828360964455872291438948347725276390225406753432227258018198384432449024074602708498285826379662732757610362164529250769655889022222032704501151074190763999118215460956951098241042208068877701207778214411321057930216173039542861063585720076807247552906188479412255005112838281629704345631130739499444014697807701373266925258420375215092193312556253896905002516029056584635151594232713800146658590803277561567485240003175258862137453609516887021167445765665168131682148152868090571291478860562803590041078749224025642079645208928038318064108659503234383186264983640871421186215986763838499296122498614915151705921211303248875189005396934896463428120218146891036501876701343057080874979934065342280472582462927278737484393036492592275820360555174919037998451235273650884819183409219700081958326181113919916836158864156496874087948526548220591709565430984021160877948728463807532312331391137827020494908156765381788094869789907952138640685885791958368691192146053414521844843362607579516387392188860141896531635439637869100901206843811181771156473979956478919450342249349808392371851177835614660376707084418646338039280086703197528342121534371923510278614035092315556657728251676989057874064104901952564040593592299015281074642893490838235844387595578487549379583221105028028691819725469049491787909388711075234855224011251213066978603494940001811527018755501408417386186541038057691218752224473511344190002515325514864258969032662947146639833086475414911581106685769004444420128611219592687221334984824849828867614883646043693374173693169118976655474862312206928718678812934450665668898804435629711497277930771100959078208419857810587212500562318123218965739291208420383424984380095102452919315838698787875079629015983124646874984752917090406655098254566764990480497590126256741396816032393223110784252030666456898064175034294750545078818579414924229425960147692074660764176601840227137478881906279762038758859388791201560668854134465372819741667403236513195297716948581055448406865487000921203151041096944100161070929263705686885850047927358463683820820554892576762042536125146316248070462316446492993414433189279776516871034571129581767356469251620391996509286946958449804862008119781853161441444757832849657778812963216177710431567707417345494131044935721661491054718423209761195816232807491664028519659703907879716599008699144877672850655097499089115943458646472116174649773743680856018988841151376829819004244709433019742366512130574739203447259881299474730575255610113133477525763115770091248816800449384047099744990392086678344655202622669169774322270950433587904726170582958178017324355576946208297746790670789655965555236469697292430044566832224264802805367946646872431576647809073890702486050787388662706334768863715190220334168035094104126189809497625844254619657628064507528260538047923350379558318179455237774684454138371817875978589371339920652623006890089634136998799095821969044846984994584090026421168623650992221363355238571080286733090036709768306737388494428285443621822973540235118332360778048564764694035007528963455245287587404590985032052640402692813387721121179081390723225392159952796272288699922710588032257168114721666737687009672504199830822030764153749103348543022325911870256498045399380398091269715916973776245005486998191296238290758175048781890245247019002274189166529934081554094445492382988237501648469883015236371182277972831634320495945300836399498133287709613442550296370723348253076274280116789520988809497890936754419106574076440195988885094645588355976083395198936218350195845811645402088522059129866614686869390269807229484134030999227747222141466337232013622381960913182505516180949629190150600780819761836452558628239334530065840545758852053660416764644486781905131756495920887964356803487837248595417431352956482618832460296225452273647157084596388376507290731594943821574674525263449365253310926547564753266542842583023691269789330871229670947057805580984183987355165752747222858045373009454048658450852378780050213121763894317139430099467295940821605361824744114746985751785327404540775314616619190786250604563429155991498631922811941240891055500815612436751455581705818521237148361527263660975193547181596290324535215681211873369251656463814954746484035691463809585987367260815883019178287716439516583527627174833097341713789120733034457347405277602898305893154198285497931506466955052138587314701881876292547792181634030744168639557547408007147832272409843437122681579678477443197959199364008870615399176394279377124001694612002546204498694050738082186995013221909667470132593561573757434843681841353824007855165670223236862837172017528688725846615429002885179922449991063721028701697331621043657099259663319793878466542390334045170645826474734928658853456716675207574183032206305383916620016983765391236261357774105534562655701075506017950911473586510398666332727047227401637137591851299567000107162394390906130528009614808660246328681737334414607236253578990070602935738010305952578246889849790267392700756143753798689905651240371703134942618446963261254195455673337424966170906053531278754803779574621818284206112677224271456346970718046277839971446271439424538963979945499850649990181536181166902726080305567438372310990677027236648377613153486974979623481163936410747127282448245945405331380301497511282369402818944256132157540522211355683189098656704338439273628995017356440224141589795512757169297677428351881508424665364268682877102560411833301960330823750645712960405275724564945581491956537929407080354337545185934016473728617838218123436846526959408440700899255777534516391647134462168558668763100101994888519308656798250066885189678244597813991003041129947810504807078316069424755098060750302889368634287654759035005574160645358390847088505048177782034934003675992157769080276825708386284158837825291167531777737806950061484639499747239722585370247688003620239895735113274145503272519141413333679168723048707177350430280751168071681701261935829685266549611431552544256772829874511373018052677645277614588277557114877288037786178768086703461625457220723023199071707239962879684059045231366095759330515183486033926000410497027133052007276481594416503675701014297498065078670483503391164709039544976132445571812841107696677879803112270291327510709634745990260792381806743542839455319585398400021522967350852876606891359834443393365258871687048016774552150204872146669893284312396249252239937182795613263200089917431953863589097074551485698039874633763362007860931842004040285695374122770871761643805807520642322659439354067740606670504575628960997017662847610670139634540817962088271724008206091729012309358415617458170688113025817278268735996166224772843476542437486197477238854144173729640725044855752377016249400462356017093332279674060159346044327371174627318319804731518211863606862855113942777039651994810449978818369668070292068753916402893745333511145919086824207710967527995290265364722476677026075428575957221005327983703097701425256667676647595975666854000857512208152313051740053905419751961806148303894019558335010858181379367921433337763228433565030721752016552473861822063805840382898701682630028300508639809050571210398129411733652725577567925723792939070845752948663152268607314478741099135305702723517034573574987995830098450460260276857463371830145255430115309026965969482505416002817163671389572121826411968227235234608797066305302695533825401110359944128692484969658036267277605814190318707187522410382874065888468877787306347832175429223339011146233873787753792751045229146497764679079777863602142344430659015183136380301603975841247282460539990129026011174860757137761510040624963799464343991003426119765076700499828248910700722518551895986549652545381896593468936613188367204729648137755680762602418695576208459015497809521072758853234849450296583303128451343480560436031476602567699093004787614198658418474517239026557199801476653742648077837003479922927453859992743671368864336579544405828019891885132091318943565044777944398482731239723618358813980317303049640791274837660225177416833118003991604298882513645865250835780164065342012048957871200564386798421409023924403993336694345684409562799857451433912908586887162806096877198375631730605448535579772579498579916517936401612431312038023952874864166281786608387411849321752306825559878143844730677964305233761914297797902970737218903816343146956426745711512788451933043616658268880464012563975950357178788845701574111325440073547438845954590631054817479489318152382910545480139631329991015482856593698393461350980717282784408026170441412763835051315030871648493937519287522255979950572551510233825168186876216298290026232695437057333452425326854312478826891972513338246949466408196148886442001197631865945344807943001479028196342246085646953194139281032453201418782642013493346492336137895255081297269710481082813385239110551406379168019362386389833241780636363662915854667168093480212878290283754823452954143359000786904727956387199715314145715616142786882956465262163876163501643605257384858453673323493228402404036928664415982863860924632417180129386783027170205561201704451747913946051425973488061681922589797578464698287636484978344900265923105381016677563613786124994039685515888740725827858725701443187087951432280998263440010941669667115407284508681430184711081609057930247499336478336427181791742256008471813094401345021950654981402002160746311015605790788446561481957829810522017846337348509084746927178888475604671732511661419435602626487474235270023595405846948677714762542714206421838049457762646147626003404445295912655438830733295070972266872550084605827499155564694743692144649731676500827812785275479689155824827784719721218253785352176999954832758024921356751010999788500369845309088570050229007752554845464727641061504844814489588420454583831130849329101247764873428164323513857836343869983562722583254540042240330145661850806912622668601554683107862710844902296419789706067830387251108786614154568411884255503586802915179946157442624693772212881306460197935094815564855167231402930503602169103500941409654510810044131012657582807374978534062259345418786438553798149800854082942556637930967202770446432607465000949064949371891547386729102609480427846055646688565040518967664923295712571368018837117313988992529792082088714244306582286061108693338614275107380881035929082814092656032058191675876433942753359779088659835630692626933444625994919007581283901829160849171819981112166258303988598444956720388147155168786460147733047273408479164177688970401104572075442945834441515901063120725694198758267047122552932275668377365781087541015739161166525237793338726583198378742257767567307364292531184963266909724433593561181231750671370362599799764739196361883602106567774090086788131387101841341990941119863924608213569886106038084126388577768092852898724594543381233592269633368544023760137327387320429176704701701620642386988179562892853078608033376344333866580799053052515110333736570280141983398346007835274098128769383831613410851003659327190578094847069846745859188007845441447131932026322838847817006610810826633985787131167437598835304338436060591837558051153561284700263305510749337291252117026535908833911618041756551837530330565341809074356568272399703626243654024912104792719757028622651096233447726535889859438574225821418757282227945906870460533277323632896455082334773906148754301330433438295405700737873300978923053627011250639727927502484326902792462886101629775933492176651316024101296012573274232196322653786266255753640196654625356905343456344696002926201769685238695608071535776071568697191958800405195104604314877674833342464323294539289370510133974098478689295489061341509981427999120155019658650662911107597692379245676734554124793143943186697019301668395145154435306423386115011269344738087105339894522494860018382393908758067914490401726234754606773841224748227963162471739673390417538560507899096147199468224372710774028517921376623412971050128669225230778497548238893524674056784205759434850748999706133544137673600570600837707235301303849363121032060883929932057967616120999309785003732660026073467957727514832292406261454208271172003822002883775748048297552902116738289585103003812428217358964403639905785641401646794587718254261637180275404041502101807659788147226487354229157383830034055382389342604853940358094196617055779863251964000485411262557218691202332248193859104759069553421788591630218242086489375005014102863093346183785737342668495533166576826201021980150493653300733839899639578694578085143214871762002902077959177874422776284899084301195812010862241947572773867055866801618473319198449964611933292172816875613332424074954482754391814833152891866686906473026652698395915676425069133531197534573253912117010239275054776574115370056179917753492994935945810126734708947169859373666254703588866801661404731209130381425093050015624207313720019660884910481450868585275853165803398988631637330126648171718574216878149649150753811812129840562011874419362327606691261977876576642230875138842085948314818431088175696847202724446841128570567003845740677449294524721569380759811378762165052586617192206475390347086169762852905645079667406936062880157897185615382272655741857193148949364820628032696085578036210551056495574609472828692863211696455145911202479989852409934630387244004147094780078170726592861407545683582834776619073310755599010930089774028895564918422827193823183507813425869763275121352355688381972901224872333812025854131404933324824261252347564956394503871234251742083191012791791673338152806258809364552885591466750081853952177613574257838232307662152059286907395306742591396113651984161509475696638817347323662008903093269158358744767694106862085106294047549884558165662352600701588949874925354327234006562705591581941483174817272667577786788836455412726736884027863203921827033052548816262417170605432526667158212858965644703170715174021747204916826088372885139162548233674908987464065591353741383371427634632340199563607529783194897028631818441488276407209816729583301147262761132464873730117083994842518472246804454744463162419990556096018983344264269379265825089063925710489118270064897057879437628284413473104945543798571827044903953518290860128337833794052039321629350395882189523706284749444764439777889900216655073570375914346656916518618248581201024023008423596934584431119853086040188206222252984107547428909997138075817067198942397203208892287633964889293941130003105216279713417357468331825092477795314493318553236159731894253859324693311728707982024804655824415918151434411304006530598318828338248745838797864908393851379281736099383670371350637488398572987464963012662374049536631778890962618729796312782350210002264204572190295656072804785640841754007414196373212033912200573398198441223425610411732132712083942799035188206592950702930947145428144153643099071665887149371435690717240391132876315129137230256110120961967384620522819194622836702123200056110884988614561344633138419701316063960648721582735096665340838374643372089293855650834905815961086077628823566286776042139774569634798862421605107305059072398829366205306272118376406498671827336178659209351771264805928013726915315079436545832217229691036206304590224654859543794930037023832105476911568509126461998313062157543235273207378436668234879274450953211371766392019485053384329005402373441732162303809761421047744490809599211895556323220822064332554181592987970941442392842028274604432581416697678716696776217907825785261365539255904284971021840524950838315567938834902900203353583055617510376322685905808115683324679838752649915764776104375594352124710812330832985811294232730905941750596370866356320909915127951082087878408246857959393189727253993814999376959335449461984215378879819671849134488631966002545307836532726591753699931981558217193302568414192200154544863469082608225639480727149685155287192582261507850405705680110373451952653531768483783206731109158839083003536744080007750390670111436664066606039458008763692148128264147998379359083874934194741259973424936250370994792698833706427251427419253678913556014139355885759377276235090823289961932024313623547645204891050890863923792029856234153333757972487470954584976215212694253426281669494240916371745395886709521706187176223108919951653516052222254686207636363013990592255425549906232568164948467398523351075447127670251683301407679791595529073411882345811610257463716797987598949531510384137820836557068333719014553873183328792417427232401860819986915130437061064688753749720069041665552137355367421771894186677776950001882550903445226575805147345196144801582459129840915727274357480651401826659722705069108328115436888549554269350563086394144773154411727518596988586490830075602345692599351806603744744298246964077422994923806229971820874820757948882761807053634257067347592968061246718624408209662001834283180217497046916693953165705417942920630283848979264537416505805321353475209683728223088710060065903413954438039531793599582994760812757894624143721505429800254321169876767294237913792481063960765828345848683855878406734636969721578820252217832381309162508169000240810577690443677199782048689583504551914990548259991709176158358577087479618979030297583116461879958718306620609488874760875032528404445080590137866191053374193355557005616026929623491614908079970423900112054269677740212056788235634600061039932482987336320186394150339532450469681181573233141166095373653005620283551612902079043079624027245505225981136471042800128973294079809676529501934655181547215760000545883143063375318747770508284293803966804479540449287710568876922098145919972684047928057153990619586943880922521948184840520525464547673683047947508864892228034811513272132618596923530212893411985196028472760606277375586815720536899395852090470694164089784822826234874902745644736351850884029310012991892651896133070217777576053844119377868346077618191607216982965119594024652999267536610317882541286751167089166397592675535809906434271694283697955713063648918603131038894140735873446179335322152898714016527011500169798156083979406572998957820329196802938913551859799231969268930356977296490264213261132378525184350783799815223998709523862637200709477682376436277150203747208766862367542318207988877841032726122552225530737879146743406364551247345631956458050685071750892196316811827218051397941691968661114897172804991529442592325234310240802245951154923487011262453264874055022544573125630175499131915852990940407114719502200786385458706527672022432720288417572841329927860131887255919718259363783011650836990169467260077815025524920135988576894719681923204555506187664406093750136577145119934724298765962849873633979154474374329726768139976659385344678195388289347481128115509672496208113509866277191459337555308245094569269151558497868569750838944680355316582437523716220066875997961036190743474468137094305541244644527362217810010686215447764049808248110915370894667373112817152861522537453090007493982158068604802086662740959821556250247511129214488366990209127154324025611326173268908349914180190593808072134709979124960763506250065289625989660211194010761908956782359216716670659350087124717129917269733469354981421112013996701104632869833593793273492515344509798411084309542475787861767264702077417566987088100933581726975436439928689346400777859384543392970980183401862612092058713131103217530812749495374348454556347765318342784743210089866019932445968516500740814540630825540347457267962981661888474369903998634955166504755179278101569446142271238519970994032861008947820818936628335443805401418985906814204099553393984597087903375589696781211505582134416568922947036809430459600786845497344262446446297218897737973890190538230321308772839640210265255317139108147230716779524227815822064705265210725475735522479819243727931105429997571764091914930552879751729766909431975460583097544371071045808337775992701599701529937962958928238476805707451898641687027820515568840662157504868897927834621138125769698844310481647888419631622163960056600176322254487610091798206962576263474476800002303449521695664251887348247096013348219245789576998239910167303969702046162176981683617847898124440360852586463472087311360437415545648740036894026714817726277215846022840751227592782663195226941407370744115739518054347274202594414282897486031513744558643307401250518356924978691832088621056240701354387906775722274405093210866529458938614961399728318241224963765656206624213008837905394769097345819066402678297891102215705050143127880446695004652972221836127958932380623629110747693349481765685229547098153016441966648884066929213630229193851741158624992168135311382883870092745179500045014620248135105639977249304588164263716724792330905719109590767290745618297133951181195140831082888142405048948039084538204136036558442277762564913420456556224494608200165804220048062490271101172516013236191978755591267412530190824118912215326544018937471925779633369110616790363062252459112399895963618348984861673892300111131050688700636006044700299968869639611953601494047127556473769344039986822109299622656279098215471253077415185959439322175629157658629609179508935861101811193643221355836262300028003541272138312500807560383823905293325383377817096803722223503052545921528292359005279297486188012783677545276136581393693619082891808343474657325846847514079724336013013572222819565072735861110350757054893062980624234654050754448844933151024603830583680903981971594698577182110931231167641230160382956026632938949014260380767596956214074533940499292105643269538088556260975382772786268710751491759657311625103751495518996631915841482807786959582241716691225411165999925910905815581698151263147510283677346287813109235169237423864118398753719411773714437304710938528071357904357879467071654078117834278553829026479494186389741721417122064893151155015679550543931850282013258759869004260033406654655374801487608558398763022300608242946936201703630950605646085353810088591762435876698318534191723181546504628685223851185572903577753235031246104069748625162082501325513858026127736428706042019383783114058195237162744700609032144984037984059352969381684893665394418052831251367985089978558064815740205771032226466732361616066136910344019090303733824082048124256768543483806315192371404647285636893571940062547026737740821312064474817332480307799629692238429820409944346958161956838155248324431396943511371272573156261306694265794041970450200712081658674326541381552757980400730919741879968273074519138381556441811943782531983079272740779816883752123487200498089318285056333140810976440612775187494222880202177097903379761682528327573966528277281383088128671416660425036899256872030777464961995131109199905728206727990800789832168397673215712902147231193324063718180330149609829071740676988870594412550406288067004097743360596210778022924051945250368703145472275630261814187008652661971032545139396314199820740230735746255566412864763841689780436934562546425843814469129259620289193879197172116159351706456566899852340617722149653208348643202744342956719664806511815051175379025509398619632878689733480416274646568781082259009558875846953732156457554067138886944636807012701459520526071592288462063849945047870520564711521335790691451022746648246142780376492881284388382177988549453398028249876886095638792589556460130248877913283189595213212408570140038268279115571377802356842714681532725356096035331780478489979581727591987716626968572846667457717560965246350779087851128469340384476735329332777625563896768975147660733128057923214541505942201237320216528874918745362606982912396736283190725250292370800154229257906504821887884413025299097956963702693463507424042717728782792583475013680247066872028509105760729184198724119338735472274674005439743267292441103239083876105652383067860610317775511104253599189609957093265069298945670826110168532711712230331000336017225619817280493011595459235322588479150551970138357592499522945446706258446883447771554213975759702656810063033550673870051803226894512233659116256835435844739697718638877142650779470691137135485055846231486195747498858225698651958958367096213245672478114126815065252201171382563598954618064223945030009131463741618025626168063996804249312410823748041147661322680289240383865723092843820817761438314260325363866321077662493817521493038015798680884110519820097725162337167437419409426647404294069147755726486064579916188748376774600022040777693799222138507147086789764248662270574025266270042956274991021429092947317047043666390098908465590363443797508340189066625735778960028440003699783082024183411180131573328500823004491174549800557844065502457516855191144187433748420544346602588922213191439920057565615529568252349804186728893730589570794296202871540348435429952879255640420152926780339361766587603846217418579145261659959883689794068327125872216023355821525264142369970748095638334881807978595840850929020907245327206965101944213418600589410628302631272307832978851043549198580392638448768697155053817835996676153923554543161625035598118051265754654892700432667040309972301031500215303157844236166377515067265081126327181103956149003864455347814249592653564936376783054825000901384155539774762239778882650247089905833179779925187323194192939371288322275253604007182608291289287695337716914711873372081076957513563917006074409336256524408318055234209182959805344127094919042509276491886850143374375794419968683558298509554750116202096808709329618760091228403687485739572511634576613815969152482085367260351276434820099461978745783175591274458499824027831195598251654433260909020095946482687225486365182125277410141492284003793519303857686528636247677126609478346807690377673340705931890274466926445824679055850077248851126383912901517534376049757130721056400721925465301706778890242179574541512545191622160426461037288240888328396322973872248680244813450908186218397779558080866884640081156946650428271852784007786505064043102300103846908495469681832496024456327436821006758255740268700469091470193550773033991543408085477897143484431521581743553215608023229205891954410264225508657795275397223924249484292427547396384543200041901379705929222741435594163499695924299514399256392645961407862513056059418886766850809827325483884730790124248090455195048191454994221621796292995630990145999402436793651356199303210792031264017273366191314694758597492258249844025436146939592594362436059099140029859563836496377566595709475060541203735131535705823173939516260258698758385138904824658718442651986985706310621194478663526153040334257497391851583102447663325106278296099529787603984697612211434528858927423262152132204334333748677781934870448012029214268004041920211082778015079974594621097296878619722810616388446887466243783609470211110076449600161220504962882618899621290023484020246825553605110626308023028246140855809749845256683949540534257160586289669065422158220564746321496681465525409877160170880059691623367317540028408230135346989825037574764630826795202155335754689271671238164046835263526058749253944979670004429885639798553082534768774516922580437265027082241581056486887784699087048185723733270055887518623324972850937147547828622701172881511227116322794656421552551062845348057585517168774906916062732006934028315895497792821403368415322855607068277258543816383396422373047573948553071955084782614878886269361442608391810388565992133042283565339866393799056540037396601229240882676508877105858745061119750458618209496948824619267800371633863557057395408234048614270687191670635351064032836870974284515540843224085710196898222650929365380140582221052288388916353787908227576248333828787984800367893792830482467292321368461460059890725770574149613053938028813406684238746839481251938456701942860660376227564436324635153419282879197574897993438317621094128421335357175115848602411331528002712366097849521889932407331516350061798972946160217438876956802107844470391126827755554384581561194895633244009098538399586275186950567444510996999919215590602783155197075207166453488293365962633840813911250198969834115124991066561746428149856428242814693765394674334407369774183622609148882483487501877677254378530297314974563065850499473775726434205337850333434301819314517955601740782419829173146854547552048187993366064071254927473064790226079824698570781379328584229257086659109474063313361520056625904829981440553393804503553167739124159898709492710927316892180584003253907026018933372222450117822004007795230337037368401036216863091613552954722149073368491038979345541009251448501136983694783392425403358735652082568797780990792891860963838547440417289785598717824288262003120488529575097175360543420604507296965716567822972868918157422391552832666833311299944681444027428061353238756438548999011196210055130783103356185159862116268597208610271728677853328645938029510326475087172461591995258586016465274548018446105928493728105979135036397534314446920381246686677743991877363215073040885201829398854371171710008108259109104661635914835788665625618326644043467816152380765715317002529333704769982192241531531562119260899237177658713743172702429434128085192536213684168717568280216541516279073031746108426312619506814840488418470866124709344502721306656125190414856068353390773360797491695164783552048101872307749907348173163916123404269265876864373028464137671800914822625490060465975456660677048351952608374156531894086583326797586421369278830723254467266147867495383765371385411624984230557259241002210687741154002463178650234305652805661141170141344263193779421254459050549367579860003679746618891921237469562205548001956707664115151546507921137277270789422957315675171111073611687649489564077545883485773276720696241398954561581570955890069214949979292404422041756336619221183727806673824767602454832586760484121444969768473760597074012299595928853366163146749717676243416925453402371393225213658891505143340680180583013248088490805858201250300551072742545097614761438268993912572613706844886405683589479272665166730387728493852782329332569810713078111569734798069370815989522683987310892640247339039109819147080394684980630362999450937487754102519896869021951377470097302204199791180160776166404525545276645369706688340708302500837475036323636959631166610335842385105489086704257263539459749354587182137188539074727423542855073882446818492337764200727379829747218601084756650862658379274391765305549191949571606867525425374037362068382387472006973629343069453031733940487955754317423295822439855364412820722400927212664871502882026606878412370238017692245073401916842412492179448133976118643204061420970536082849122364670320024818844635703637759959053864958577510300163105990178376291872335402050147855597295890541679139217236526104201861222955984481715215784114192803615482174119988155700076229738134685287929621270716615665798066050261989949758034721014018644813672050122955778804544095345822158135334867012097799479319699477934131639067691698108655853017914761035220449466261313803457904330777271480397432713794330702800253786992249592372460834145575289831911375007846636852282228910543431712585991670618397604621012512303430432441765229720093774215033369351554103828778742268931955007423303759258256266768180970128350497926880146290805919190885015080776211612592621843696411707358568754582369616357875270359251194485850179636045184526972921610100795188931393145245915106513887865512917853937946425632489792721705824426934901988371669190497060217154097431153193736641759399491038173620304082186127394562283111629461664191123459398995442858556631421897343649581909279878296590775379730236196245182806278748035024576008963946129128235190247267390669214377596126748800934855376963650591309900735544661288502645805665572594204872961407112599722335466329408608847224181317551072140336913780388532226924461677732127204656391891063548079244190882110193047174210834970576790431950209249199061712272620300553677529429341261143456372292905818807395510941720008822465095956539150330208430006140225233687365940498219385993012311237500160624087628832379144992247390748614841550156819419741902256746828372226630048149693931200421603616838506693191801743346830599248369299220360842500643140340551615507076269537058768780885769763039614279144544904291930577687162853827791243988335350531675190738760824611169769385927107540201457475517969741652624552347406529764903517458896416603995050696279932225398544568153447674096120485683493384646898675265031433540265631152225999777979998278801970769747498824829568289208552637124301893141261805794104630431836700565182258786093667233873914412669531206121682935804907806558090994833386508026626632164832226191783523375801613019901891310589015142465069954399254789307831395590929091649964011418084593147858684991716485577458376112628128181739212753840793000368624267378644785032332507657338451575363174312620848932461645805120218746618671063230413228804313722080026928769177129463658654630146827496968834518780111211497082119832788599982634416393323169838747662094360636046067237828849267922968758736355930607649324117145012618474675122329077145368840518197868655378652711528226123379184849083164472371219024458479793842725593070848984800154309262182418838693674585246584977897016675796471338103976675656799162493482034986262312287960535697328505874122048526766597807441920915690693893580353320917208984177757374860812962448500826086894445825230744381356929666015745149512547756319086246629255231385203410165584167320937306238486515014246094504405185944309678031504015502465159377616793891601080830796162215135194480320655267086141261598594538024608135118244279404092778440457652022994487345079530023080327804048058259466712991600322803549884443712370603127311968750871749857958662607661434076600281675900331278388356890467696020726767523167029438847697728724369295355290705585247528818034668763905134911157719263626271736655758500974145023228370761950312732677142608748549082462921860157129351072200840737808067334778098067980532726420209982852665292317715322334038019304328322472094383798061355069443988982211233532092015686984399334860870141807559801795403534696170853680212116646164693887512152850960356157500597509854192445116907166088150224320061105850348386221217412609504037552571835643531420416162226019786810954818420991739106626643693960462016474153404336081342231045299488995890815879647809527272540122988979022550987199227781657806843845153032420709827181054456160749625340222171305888906604735388794412884150559648195431304881933990658463144359748871030071385191754475388192993092990523738882136461616839145265434965432972541989139281607477937042121866433709705184770303644097199547450061943702768358059417141559982248891903337200774994673059937406302691249692962972112859681110836972334881732031339524023895445388314135373994569961607337886650029303874099103933103850992155655800715231940361249548226358086405176315217974487727483192055332896744717562672035629608445206165517682197049660018265071786379156146623280480841171852114045494678166222839833518285244393484720182692160766931559968785844283677087045213152846219763275832871208395503760774750858584007025599979081398736505022414341416558878437315134958597528666168604865994192404926746956065240995590877672874914803314061027911888550938807434160346287810070967066050513340954485901453949205356348557358728697474857688376182724379294208693538815607700850870437974658403455453155200394896414026357002137250598154142328409312384859007548376727297804105952415494488566038623286256041969257569476916296734558397199414521126776494050528876042351790490460820484108745231754883453050998602483887506840019389717690169375087002634214974000237818870369591041252309106792916723628116475728166204870275295560409581053782477882239246054673765397537912058679702268279922433217578603995385326260395231378752663422863443967524954161567392903956831869596950133901721349572485137670334950628861983368924721401006186670750841161187577363509754628743282943751884175886326640185672368226832239742698086219982387951768064171763082219866323154276005643459329446682600868346143160089556947029475762431995664196424274987019286714794650546782663273308568083313852604471490569217647886352586765426482678388618405346260171715516120386274547519760331287091279337938052382107686525970661380654292259142251985938923010888087763969986114363814604045882213429869665890755586092426595650905688797606873890133058177460293243696851510176620879514689125305799045410786859959712912554111856328188408097322078226012744692774278524201058534090209013207399110668708143120330873795929862295102349527207049681891024662534012123725830509773918039885047097498571078679648181227293307661758735932409362687886858139188645615724949594524058971214980695339643315077649027392817737511394887584481641537223558049822781861196910605641184061174693229978850152801268559558882714653701204043286552295468174123337855558087620099422861825209115462021300194419164740038236914985079827889236651169742413999034565438992024233161043279300534729767109017438560057569218832491528722167077065184909255187475172591637130241617633149814940290418739328150465665567767355945864475863532728997394173903788109675896028464723619770003774349936613677771383214811034510673329523397807756821503217848638296116822596777815524906682485953475982493655243203139634436998201811033763428521568167307151573939910945345608240570804826422234894236776884444889160086979352739613427926901592252454422670400072239478958055207161936694160380503559661872316165445872991494463239431546356863879980337386527770019929945764997010444657269417675155414952759791675794393590642093885818430188019911221801737943894787045338221152172753455105710483794837055814316268426251354004427503609534856029652307029499122184260605153941554959876038701457695148715194613970473298000343630147297225930497636387364461584649140292804887319633788844377384499687100695877445527069446764806204001951681407774607051613488622127381299124372558818509626178099703515408599438476416917305814843365909305224834152429956026897170928000767082189799718081676516340743382954411563716658376198006121612180131297966124372579032371908791352134441177774620551313910333486576925276063430097962099680807823742660600893930593370347313646066441748272950902859462808254388411055174226062154744992252930866734012139722534438520198486096009319871306726638139173186374252110922298378819813767106026957866413802577281020434502101612140751936839511402340401094574448163894948348931381979353560846857273380353590828745395681204855709208286342434424767931847804560105150604782230072742836657799269151194027214413411111893696979086646798104006100935414811332353591771088488894981426338460944746024316958048954991915393943317637024556000505800926445316880712594471608280439850828240651011326879813632911081222870605150189171390161314789266084957708322167999297025252318533312241749189985635901956032698936078480553690424859243174706431696819916087253898781211418272735370301869143493195529985609492331419328066567314772432230194419317206305256004672882071699062186284079958435700796348631621483496715988336972495553013374510928330619309105160714153916171737034816336392813575340711587302465806576515649856013440511058460690202506649796679533126032144271373219178396388898424348672085442705278712097422102877047042625025733998193043318577274168987701203324634492630423290711621097570911198878518921929086409687194257341599994712929379154035258194524055633130862258534883721903264896548493685384839123934373247343007059903786577746206732331967119375988159795512298292362430344223991834586823280271331151098646726283376880493283077987095773109852884838270933524316579492511910848358934887425510544389036422328011748348693269136336938847897740999196248255846425285705647386005242365864521565520537945805286409943864329075507272626916325308796649832608128112980056088356873202265806662953050390173334491657810920835465871848523372262053780049964705627128832211886386951424523368189789795000756067187614049630633873647355428552445570557469095389784326684270198132313469222761516055689983241742932929796965147538774107909235198043662993315602424031482972988304845660826935021211660971803465896830706571788847576108303633755465121316102145516067130521196984349708193379433164190159579980083216219752006437141488129610165956346563873499116961273290379844847456655590552909102155249109970411687067166503628466414818881834928353901246498763687927457084834582599884630503266968323708103869991955463288424546067758269375857054607342151239905171352396150525075630209687947042460938452614958471040895010424927635854525749145588037885600355935320759963151543207887419594988007880920619186185600971569785834811428707123249903031537267981448421178476252309873200594906628621392349950153897227513655753701350717692339581104406662171645566724680679663123783769814542333944124752874879151461619331293563718685456260925316871448943999153098656857625985858919090597687264564183278806336680052897452003131904559473834059433008767552327199835114781860593433676803234269943920011030836834991778751632758419868472698968406827964826805759088126215378408533715698388927881598576242630720119772162571901780444117126216924233427264347735014225281325195735631171706325622263375911273912689348694967108993108726894417395569587840164389850659103815763202293903200190536311159704519024695007809316472962660720963296481454857411742925777857634477647363689196766627035283417225912894930321075155292945900182777812692853113795645176169117561461143235215190325742263374304192905787701965573979441636212523507380767074214953957542377265018054009702496773283086910618825247950977990720364388608319797862957299080323087322205819802510934468203267117973480894100255434463950642235577106040764814369317951723837370576375333705359695587065811860915661947427464245228767547127620266092843857965446416082086545477133307327010265539454167251941383516191526257084326956191170166499007350653432784429349503122142356475049050717830714857194730608475133497430022769457987241529202705068422841451067328113972405633396080181623876521870767681290511866247127494259536980158810974360554890416599295483284118661957660692679848181288641346104209741111997130234619791110574319371459342737245267010770157996340969210876751789709795545245065623263030608308083839187639616482662581461338411075955945384531849140241843523194722410569249163532631119891603866466118313559882401591415164225949638493475867966958784795359353032699152812402128821443744601443130340341167529584872946949084990333455803920496331749845330856664568430529642502474697016746090329882070461162397728279790086244563366030119101871787242458425747845275191172011319669503340919396439493092410879892859920237990318117982857693881383030683812784530255809127883369188635295657941592626249397036709863978470213397267449489122847428061443468319728705391282642868390948732775992226364880942830278176947150005218661723483142206194531289521413912788620254535364342232558382811336579978016152035799952278334293018269784095032457801863519133852863814160114578478536167141941008312208406851777640021010998973992003865920197744286201384421340333908029557458221669842544771323355752100705013912319247489951320827506726694083214666433819755296091393859918608129301079089507092245160357154124970046253255908226133604471827279046694424079302441410837387561586377832158894724355302439590555891564748096353895738769179586721624895492217267180495123669113166259643508622421528340410699232482198897792140648708763195239959784429320377842889785499818387167437771713078945250659345988907346208012577432752809452259903278523574276071315972432120566162610256773517641052954712915879642034724928261512543578519768893768257114172451199079354060865977534911438396500875836440781172365899618868646090325297530954993214463429298554396430917962321963065829467365939641603374526932547434936735721393003638359634049562846223241546734829272762747463880335465871717839358297243812896964633791498997243847630908010968233259310008646766866521685028463432414571579939216114788359973398855377070836643325662969291799134848335996451378240654309862149714042666591880946008276433401616171063909184227329324314382396231628425089632798308091224688266018409386849368015644023117890902066260559614850249962539838605940919475219730541186211080418344263797004019940378812873689565403335138868677150624960458609187229348468266824878182416080528710071376501837541225863071370812970506223744662369097653932586611999649817277610447189936503945232444506412202786255488101704307490287550860909074563645175153253585522272312900781991963136160842068845456281518358048622952131999784192545561322342073831808364082403834934850601064291206266290497567530859603510326949275389490873414632983542492351432323286862471121803597201494822447783535579202253430363203424639377952620686380539460094207922084516323495570217915777779520996997763337094241585059437901185233585635946601873216434616576220007344768280716067116261109229694818114578294920614541264647297083779858101280539999628829375364082155024338441358038377125188926779561127685998690866859019792119220215014031810673216615949534953717735683228101331848211678300858255898703531432944925395517177764285062025506741282061759792866600373200304644115461593334151732958950296906455738182019028024904038542155280565407516516188275111090922696604491102909341449050961671776160749114952468488926733402080815959033725533989511928063407875103059263390343836807542667813902619828238583389736899956325809890695954448051590049639719795744504754427969451822987180096084913594605975096534672024359845107538592650945221591371066130768222198316988109906147070958505721694337080037772894683658598206245568878528537259019094651636862287347080193094516459915932234948946304942957381274360414337166478556008146141008659794435100541140386393449410069059902575202505900717955668743243066907721662848251481900362038591827416061002944790159532141653491925846146300824202565089313065586273986065542191365433273358001920433065846402844737803517575803457861823549422275088991804000102114625576101838949614893222864108192049453845883555943040759979984293609612306599418919856706774850219356137669950583997060777985464351640783209903913336602587399165620893780738217081228798440613145454691621656441743121569057960371872343458733013222457997358137108665913808719093409942160950570532958378953046172446398486245363433731473506128635300545631420886310783510092712595158368011458989754515453172358487169668927189342748746237596259447990990408672128483981536046208846613301821517824950583108114523064787208375014180680424960347129221613588822668917185419036260194057717585798094426901220940118809556736865196410850216830254249387027312363671722965954584263063578014092639299654611276178720930033224502144663995846551316443426622147007896329340242288303476442971393471725169081915537557746609729942772686515561169616355381091179962747530791199824221514825717352677192612934552225132132532160577517652200556004695501089982735441189131552997890434400083206712112612300747056178256572151376611739022743227426298508510958334142574139427339202724368956949616983243211768432452642888189593734601272957492693660499471652802513302774843513711864231890199282617185432688108159444512297227733632621696480842042655092880351118367901036183777633253051987597630248718669405406506118578535596507592076034903547912633633502625556906455607199263165061340800073461532019143345408217086658355102796599316808189009962731258652737472701106852502137400443005930664243653128096499548808596867904043272864483019675492464526513497287964734550918653872751056753799984893204442910732066439869586365972488617348420352079890006646717847694925346053491730400385373415372690945464669513148229830729356667361252655481691951939177474350904586988726267960495368510385539367907514729152157229149506724323206387751300196311986407372815758509437337100918016873815947675596266737480465082040838586982287453364163952378107227706015545711466414106010436053841334882900520797865504627058590194680981713201563207896986899393882027253808586157086080868818931492660760478450264377777328678886167594746783944694948970307040575641350043940627686804430331668306904438608145185737560991857632611992385091705252624424602506632062857653145331131359931243187306249011521328012822997376387645624346262946308735275692215037176444021648275061950497107460361960234487171080438810559296383320010867838913570485158220446889066369495791016206045295080448300821389137479264290382735186431974292056607793382620759922728279320216977074850288306111761345221923451028793788398652501152178025785626338811727432974692776388519649916895404364785648320635714630961254088886641645682378278143499925636565440253142082966389161162490247860788911851144733185352421618451695776600203759550056395316268424124904816646776731248534441368204264294895423264078052372141177151851565740537814268633532718275549070426708940322660757478650936050958952414621372457104362690405013980353879126947812643581082261110187482673982330925000351413987985501018283663614450833033851438817792847719123401148230920046753676267571496351398061315497646913303788612148090940430114683990561312546272929599368385262463195688808627125433905587124011343948824288185930253454794172026859169577937074171689736191194657131358466960783322837360763492587093477359667024598857136773566169681145332934153906580277617004252222247395299373093876443613138351178085714663891808917432064752781166448627812942915837079923499956339274563779072295335388683728649852366344223115344227885597561996749093538412766735705258134471369707407187571192852355948588464030810866229954654299003551030342879939780011181340970297124462043444265422918073555582749463523038846811626339652468799240740559723288054168590382486035820298274262136464019480497197425606347520739194405060645574406565873645738639573603973824831755545392650669543638541037240072396904025444603291861944025778356145455982866186995949510667205790377332416795731608062347682034963245355863574132021177140611470866097864600993329508025552422710966664133995448011049660752630366332861956375808510475570917065038414970424921206553914746469652988752949512197051688754553804027679970775373299327223764593009877096139719904167831008337074571830465130393290740965368545778557811238248675588513073580622312258746036230513958570184322844356986237490461044374253420197720932589873708553706787235047306839173393749481498462052441874328101001092457442472954009429001372799106987790510003174794525555066903454750590151604040518714408574929785738888230949928090752237075616749533613485489437320593777647225417070741517665181255965635718375419082221828294293883619295791663470243074921957656799003217548763442358285641558412741926221081033030018957123798633123613120575648358291183440059151487069399199792181924311768533196934347779357905604410205667435945687321368893767882755901535248107462333016204732564622699774885506070119434319175097825296089527615656982966489188075673706181022755900409726867528302041243849640747805847441713209934275302456382562378819702583425369821660493142681159691649482795992800216346287086127297346120105207588588870884299225797446944356768166967155676606879888727653797924863475975264315150095152986505637460036642204186362693186819603823382443035846431305486445635748437411317148009110684669503025052430617391321409764828941318760475261226989500266176069469707241779869819284891166015608029351080824591547017871392545835768824183738173874870883931065789881846991741133336204679496469172161918760024124920860057776470926330868530031053331727937339244343613052060840935390120457827574531779954089793914144921865766439151125421538474725690723361379906015286278241384552474357783962484641214045010732217544356994218120621906722104904023260362593257681126015934661575271674224691803411563940738108148040623296114513816310060373260014052447585511024784133390229980259742282135203476397497697476836392489798499772636392616795284764557811759735866407147562104425074956964580698066262151518592372690729234041956939551749717644927410327096398376631346330844440071102100982413363386682828020371961083604066957637882215467440013453728582749281968913439573662899996086594578367266019211683244132833499296254930698731933880320142330007916010064161713170393565215657092807155037929047883640468919782594076277045454802891618073922317401935955675229739705810579478859810958739051573726568430001629419592646766456975318367481530815441666430747232207433841558086677160570967379926858796528598419740122154049117131229998125050201203405543766174556802708953038810932774472195927747578065381521004004557015091751818180566812888567795187902360776181203165108048735640810479668097662284813327972092482697075146942114655814598267331038484857972608109890971931059773659180047889809286907161179643846495005188284390931606236556162751860249154428618600679247176230728182551387242504486447126965722776963265753467954793950303600678855767748662154636081371425272967336024594714357722016699728320239195609870811449767162921090124070626330160049823691834028156480302980870092417108426400770435817709029178445989478580644573457268033238350403595051866665869906921133646037767604550208273121837711931321651549332832413146081404700584057579171474685650964743254495631079209023642993424037639390572334604322492919591046723447022571697936643042534940433803413096481061772681082094521226444979726188719329326595033412700347968807402112100113545546810111326864112013592042119862048540593311606973662632899484786896497176730912886928055051241038687344048549699609026286550435887394387458812980498006898146295482818786180017971514445021443689014406075317013625854167177297843372675552179506472132675994376641733570054288730795141034717812524451945679143763942528501583019106635980719361999311969960806872938742448169050025762007883868923314260140287942787082976771946880820592631431245586989766133638132978834452912029193409636012688498782094516377893802069220652892255967283463442912888521808032492942023984449307903231172518237102525029925230873723241107150909122929326847852052901363908718680530630441433175580727527451840025224861533770755277079484455353670153628091508660235477863485390117221963218002562133979008750275373440207659540181648185419262279909206248234555032607670290948011022435812323162225242834701364763225028475951194930493866147113852980514630270593753285928592192182359123995050402612603909361482635841893521055676332907199444903800145565473390634795967840130888884735481010283424502773996270263060962044231260422258942789213114107493182366817917313350459772424335799046265597594314313241744156342168676912584731080073909038998154834957181793451633391266233634813861679842218286521429961406756975216778487516067327637389830125995583288656784569718241725523228077241540453404389002424167495116866339472094853378597332941303094765587124925306372417328074792711886150660607111094977163762981978187428574565974971673308689291847339390582951678039832987826515049328175761977728715596495450996620470824014151333883543901671921415264491343951260648822505887904881173023302604685023300791195839636238783531639342791293801703568372044870929391442925370965985736323563307815361799947994308745306926523820799993767928600645273786657853141679621484520778102378158102660660636390876946830903375718005015899554592542220139530150732375432519936068166621713021608807199256622697228020149304080020733387176792059787683368426748799521375372722009395238916374084623824473558295408057411507917887617306041942586212136181035918736185698111773423949897685607921992096396263736021122504722585834992079856151349298000257839868342033411498859140377431445151478700442627715345723876463209043433313794003904528588604542812712768357902627078987516547925406692935412048791225799452888109688820934248564205233276017796025031951727454681847555186412113414268768398344261334077650125397043953744653114259811883340383493833515167422853593770497773335639119086319246803972249514425241879388465531161686499176096571025394200896663588778833708947837829223077736557498736670385973155328427654471295267313731196836690539203227931682965130882162882767277516416452073240922384732819399517251303834512462935949832402386621237665882023356491247961315958391943147597473400074595479527576207207432681404847020435212420762121974413690348591729509357740412055576523880330006801941741454631226094632203641494424493092444077885486458102731367144207977678299528206508658181532846112975116535761556539332316915684495010281834389028594222016354405530154210575182503733583206218863546725668786842780157784379515816330741720309857608143438498461899015586189775491228215873989649724993154295993056994606689824900956644456962190364762355227165660303719786867976106074820811273636396130956839930713459601231567505464291420136223203591023926909127500583773977257825821184791510262244854828417619318890609989662580228206780010701110734475556520959907407691368453230055932114059503402865957522895759444542706906485053211600647599768392764977900610850388967362724672776588743247197470111230954938605571912188038046957268169579435352813619196219875662518752016118702813397317592726508316822782330626230058417567229222394434283898997618337309880734245282812090093758214471598249957504633080521456449828894579069663605080198965115175323514364223471124929353946604864762147681113530437127710093450070585383447066656214305650023753863866634182251977217129400263536276082847983690445255153806060019763572894955570249380373598105771122521400327543573857687517320338260630972414126471517619354714883323663862260189502342752134949285850245710790805566850637436535115324361956637708695782321171736454008111744594145410911617791507921141078449221882881236011039266440211867695143624784126329018732906829776002755173438994444510925516805354737618516478622217856994123800336757926445270055486519548418774924103887771927928965208583722997573482513986615424175101601295622145194212896397705695081233671276258624502604973164772570609057104752365231016144098593287831114339084299624831772045215094625600881371124314438041301453057065092757414765727636052167166326934206517266621878343371008516259008665571513859049049312496985656796741834471776726134490931257374093618441188731210563449319615869319399728830241505341608631229048606725270507344197944757063043084688355652445885354578127991818993835873010991600405952120096760244318757425931788342869369478179927643878740410254701439531735467265577302233180977045627433177872561629914076484089250909340426318655763504360899817257651660358517561460430021504599951916907691343381268062560724735060224624314471059452208235053064810671670987726492252117393813550234235220142898305574327140187033738792625508270836526131718977920079383678231700107948011827445514611072110587406178976354548304973829682543000872614550318336491218133203851354994765828415043252165526811271299665432753514000921065691268448659644670519950402890590321799272450370231281834845972346083534116062810849241365433443680212045575418450306109220715225073211841280093987963992530035073244940606542697309330950145541921720712320656538248260019391950519487835044456633302545048517624832394608592555427871503585861194973780155858572505628856575986788315061100722128578543877651890302875672358790779683108096554563068136819848929309447866700243521369544631096240414062175340139525065652349505288394092574529801718684605416972697786415983038788529509350332010724421212305405161104880812002067857175877288952190297775686492709210014040240779575608652878362044901374356244910628269048952616527996780603302117850873745692828222508359556910683408425550024984317749725894156779481017806241362948311477755702656486542540837156117448137419718390210275746596447318706349426499440497903836207987397879772736793172902123980425379759270057723562720210635892462191894422191724896190134224136288497179831645428627338068147071394071000104882835911564832047261834053481342337168510988806416637962068314871493608611815088256547798085934637938408323402237223115465413780037087171493999387820053291531147328892736915681275195043163949979958742873568089563479696562380011695896414056758156208832249366908902864352572161061478889755378170878367897405343035451966487138415138151816966867384213392567589503140619267824263803897420655826901562977681430005830421221677245032483980747606963508845172706856975919125726434527606609393587268326929377090268510545903009900284024279597700852436152849942587212579858947913600995732094678916770252432960659456924131707851213543381288473946618866966406824422744911023908815940205800831835833014141835516684041830073049778091742756377671756398620328071717476630227426856513587421705265257588121099181605275049885722541304181707599373444589658427442495286544063105465219374556877367356234053495219727993006938419856104390793353397307761287720024482090842060076049236628723174343424289328216762406653460604700640809865104943744691189542810368312526161851180445772644645200984537507384402970120092610120680838793101411700833927300045123646882633784109588791443160896590777904144430400616492909799976151177430941722634647918913430433494214897215342408731397614729084122976783451587369572332711265047680057618193920963149252824537460570373278034213152688224245214951096196517170679850086565526673427104371051146208213356542460376420331989655697472594544124507976784683142742660435001368962921630049527032062112918163483378585184759810019539001172969875334679030475289486564943427988239774519140556456315485697713572519122764139094138505777473069600807388380559142776546317275553433605782852715027293074667520516203801055000630892909214373079072149485342323920203667562022223809501535742015591280786526304685998658967508747170174170106578516640405141248081942981586185282673050855697673750398354039772091011219848280664841482263011861076414075747076358010854939049023627015718113017977896692771293482601305932029927250419726570874465326519402830655532169774027431621073613916674592675554976715643051900937609203158892347482448115436652553196622223432139069738798078302319457601709169668224129800012821659396123066121969593719917003221508970844217472874764661799207466929020537149788198714695543493419841685911015820563389084386272174540773417595384323138951894678632068762872187613145557736397454157822967651459827617964397659037810725578001213770104346219064997392772091278816729654814010166529326460004284523421684415037828455512585178604872107945109222526974515955624872268891377805617250910461581742137216869493190750781470931540799650308348186914261193819815858083091451669992600880819178542608295842927771749241961488885929115162301508379676567410745973174370506705695604491733074927507451018256884425041394074640489757787692282588873160646998817846616998195472721670617644846150150091882496660522516342032209554175027734855294132202636151633373861446991177511980555255619393392964809078220409273495590316130473340933927438883556068587078298404301853485665883299141669748794914776576281626856754089954827054209367010315951791009254958013548931816409269624357654232162290097557599236356718766123165728050881948422620539401791179760014945137548112629112038234878728583128507401724601444899586949432589633780118973796810631394198679336227579162244362945235256751120924659313725716513023044699559193870368898001844790891754657380090670740736127702150817477386517370949232280086640165413188464632559141713657934168828079459405753250976385486666756962490231765584561116375064924423116010349719240320806328503329172563763948839103692944713089706917722544707184639391861445110863388179599368364178342461123591022511967777892503913579705187855562242656098331341378623896036119281475453801371296438954235686296290897775997174956563209435231403823696150039141602156989419079075674565319553961307830802489492300579436346540177353431183355343635935003011531009880968473768147854704773493629391316068772720226918727456309512848955000721659526321339249475795261758435496755610957974217306189902975662448732595682699356522657042279507358026665785490641073074779463776365398162525024875725314975153874010166901859312790290394262694286495516119100925995089240476343744508822009083948572141398517433757144545100192039899925502841888809945384200475328102172772698181095177242642643784579084728545921514612387452645335041357708476990529969524937866946274502560419554467814820299145191620926680999863525590523409440906797112367474196051987124141876210419934570058885527509199752862488267693800304691428951336000343601743466238312919422855704685711014889780684057820617957946484488187125313865833694032992929187602461149367201995308747135429515257966574370575750914560842501073505911801079429020687763432050114198645031059568618471345829205949577139189331078563994915386280912376324561604730255676937140034103578194847250983420460128865438733733631212651973446943380039496644228940186351870890742683316653989232882279672517303531812606661726885573369290978594852843869507686155840439819609561702213359545885647144719724957723412492249069421623109926815993970338893580978428812839174404617230037135708560217548436496078741505723285683178079775336124741424516074439548742733112360155369314292134113009014884029006635883221956205231207112524252807468998423684300162302700808945658711512381723732462710830805697488566337357322279126316701257663282624363623411668917852383205053660301940866649253849674025055179431198383769271557410538277916545842692381223578309753442228453614482635265173802480800484535072795186440544235611672927648665799306044302734577102379219874269346809905766070744197472640770721007174275977509629425368543522209850694084387149715121929203451553828588435948952791330830895730785529379770144887106686647071381811019720295309677616934612190489662471520959207418265851312926565786956103466133495155198550691761054225089685016018499705265727003713310011532084358451904068510352266356750743071167374731782749905626531535164932636714003312430885289975752819019081949774365582598649094417358319179790950345531350358580769227269608003662585249683952405228372440849163314299329033914726260220533345984450086025459243675523209131676054128058515819958560236343494713785312851194306208533163985154291070566297671768439109554949867647189614618569324886477057576381211195573456239701299387652865225086068186640548279136362606442232046501455648756115367425359592384225395518428682614909926607430210043132916291090031309007142334252435130903746192697112764271270150820068615411663962483018314172835986276731299578397323202422422228770281844862776747850316097143701774367911859430063313997753858452304705583964892545059932569508263511108969915403021226633337122375537277038972975001426505109708415559438040837285254286173381447165439596931895029898740931083437549277518213497898358826118597623826553976394371831128792741588178945654733451233338810930936164227309679907532614866073345065068110515800853216712399367848984047701150869789458753152369301048682175536876216905742480004879777097182118327946030465303405448476984670245273939344288717490740546708357391825583164025256355929327626409939865658724612806697102151489135017654110870364742029836579283342590568866683251183543048055295265492554383197210327192704685052032835261685281819881467380652629168687296142645812575239178475000578184490239756004317162552122131604237920894736994177662583331717361748030350975333790601329114554183947226615455269622556848544539200854658217271044012462574323121761151479770470080987349098530852378766554555700852528546416071148579195224779617963872768084955148317134190260849974156208595629057521482681733316798759321778314002561069632761295517063493208160406949863070657773223600393824668033874222419178211617314150966744766604812010987104765582412985990810571465101874195073849070724977867170076981056609129042780094122863317283101893396795901695101993545428404029493657312434113281955645404510555583248547578297307681293773068573459643690969808374525666044344726751508235907989309259452542140486890799850015652566499373622654294025705884425496842021473865594458717202745218893967950093208271745518449314572560944219390129030168512665876725279827045522928871445835810414198621675050119730389097307358885122036612820303301247843853709698640023658385833642073838749777879852517221028388503849923604990134857797960352771286379941324797606619792671276334839167244292452272104699924916712549605954724761523788932951424336675495935868527421714567090937239950379876709117154848537094955215106889452739499710470460422505150544971677464574526557870672089574237406799874582299388573724344130777553342691565881336182637812512312357195825279701818480070907886354889855114155576961921862087189469573106565340660474116583442282449021207361432509885103148819593219161087632703375233802233100285843016811244040417216643316548496977572707529285139496047034090636247908895896247247293536623355651414659392847551787724239783649780888924671467424748573110961047399543438698340385230020267198126216335247670598458156605067014358673278450010840819029600687347436929483343019437087853474748350035220970787793774562565994533196241446311398639448988871705917572504209347871041932223066869081209542225173942833568514767108695644185066126293919642115250890142828086068405770685199233884358606072974770452751091378354034425324725977512585855565852241547890586003962714629105522484315107810408788921888131149386021927975089876981900113627514860761708169872571538169172515650950318392981617051511177942982873657541417002935561220371573032009735445137549824458095979940174382907119079836652285230329580219691508358972625309560311030403866635085097745628175802665900525240804606521205373155015464420525495253244893290367613028381386510459305612724288778978921509726991873629627293818770780048750913505015484103164103070212874719072265139627893564360220331040521040333008848184715653724631904516747102026042322195446431515199576559376767856614493839625861302174862736502792487175713633505514874474620350874370571666719274744607985201966952996255242909918523820494499842644674397938233123313401167594731548491636331788164570341343830469936741688274983020681862780364337556635651699021623628091080867349604375492023658356579277355152954136180921553265552172010017299414282502577972206966471516115769926259172650588343171346635940809204966808919051686259290243959908255057770850611451814134201943818543188589293321310448272771678907820931525403107980354313752288849391793800266303310369607020556380043119478594644035502878163489316462821373927544285084492286023649773560712490067983009382672559804194864552973651692092815784922248469796853133168405240214992706098055756869724534541031680183203888594095761747709553172394666551525300132795528069644578050590722710252370891613975371240394845730626081887230581872075835788638242731961381421555923906670926147298138906960533059193539245445504379310937978280828382785061804706750587510274586209950825529707117589927691245813120444246952947083285494934958977125522212646922780862890247794673938630114990383249732170574206356602483197290696366572223689372055800025057983385909740126110580455506763750180227477717581387380366611695484842738263212012875868291320532698230681269661681037431183670801047805998818669885184766488322536000926169763541434938307682282018433423376336596607492744046999713305649429544049901501276553440067629912336272826382244973037031723677841509430286638885124192995630703028362449067704050954218421285667980611842833025321728116178095848376507540581135569976261372151176055639188759103411086085702829917800991363158957127515700261555799814892677046327812637999340802394143011699187213950086099769585707952184021052719105068488049727408769788142404988503230692665244060829494772780613609107083203923614710452068147847840977891080366770751058219987007328392586752071436474846415834672844627518419944695885840864913917559969113865372106711256319467458574474621182881342356188592724579032944370399139414707385027005356335899781736594563998102620004532134782735935975359969586516383199989887495359890341579481532628266613291733559917731920310136932471822592661294426041152938821540830317931333247336523713808445484181719010749035184490417310585834577608927326451511730996121735367614219888107696109711353829193845522004992843073076389978720368828480665062422326325623081963520163616535135724763695136525139191448746928814751577532718939902921751769439307213358631674752125173781928065594795919599021052484258445819512202145880106272066918547641677396171182195601136098281584064007958384371445186370046736871662797801994566379602434237478126917666978557743505065866890498829999928284796163879623972817546928459597434122588997936450187851843029930823138058023644993523092886298629458283722038221172857304001628096918181689565826531914825219788236619356698688995940513240481130686050822304087632953330936394258984069185292593558434994388232478798320295785866477727193930227046532895580648034288122092829462857772199448041975748132971012251993124099694371381240297273247826364604315871856610585114889065532214739448807039151990367824207605350077979397037617280899396441613747240707732357020286696718971122674439581520056079108660050684487911535841043928712837015831801102006154839067663263897512742246468542253990878352686303317759382382492707049513088649533217930678619770423642789957026070943666399525579483531264967206470458977134453777116807753695691780384968822286649949956212913071387785491261690726818732150406944311488999414391253191691255990996223408851364392145335969271234903743287328080971293424718101941828419828090522496635195001266503843769030453253871266500141205096440579006007537728126985183343103489504000872517604309918439297875652671127007628171248280519095578764721866978580689263098043327953127675673931723576460292841352152480722794799129790670675433221104809782690870914587249687779098162674494253648854483800229799934418196317552647432014201471418787862481681765835810864474524143997604640768349848991829153343196096331717487757086914316395557704131335793800189858030551382855911606805383118905276909470225632576303211885058391772797655954203565418462926472646321292271277048252837391497807876923923713568041317530041610841254127542784263787680773201526438646542270830978752202059157927933050085076889487514926808288791991693227706773024889057491519969097413167883290752149372893674743201080315424017811604696041905538700971844449081301144511492281307536016031741966845791230872306208115435502131488746502137744550176112612076545479992294008043383829934727413988989084529600924699352572662904173455820563932124170505966603447515168301245214762692137188783496773816708318482422116753695980764566127086535617872512856948589522923295516281316635408901806229795888806211639058313333895844975169620153769756276356756631182428951286458659870992753848443052924089425146681803586085453748751863127091723775297826059351995150425029342984210200280125707060817496100071250245271773305796756064870065666541663058810242224055876177735602251785846650534653437758880079768566417745061641129351421793304777317103173033443085712908848905460751029697957676821125073247485109182794541368291740687070460805313035948477941919141746121392820872827287924507521092725722485957028488412472299767336005250737695537659079667081524784463606195671837240158720443835722840589407210304650073031966844298566781872707547713530987946102542906648531821706936093074913510685294147098205722832650717919222556371739442658628260998458034925157344863827733432354290010521807781446800713133280145020070978134156135982021405927237648425195352549669937459913130735121976280565292159461437053260711031204146893899875018513499350671309028265993260551873852445268985794036489062253131577110854699644583596880292971477779140594288468579754207448392312335158424132285012527219040989905252188643479285963840285047391935059520966016731709738384503906520942575605901277059811729887199509354329610548930853116594986669662941587522500649737019459742478970355816854755865906767424676395748367061360084870674311421852627526441040970471294730146519385795093782872487108498928491029547609592178501271391119725929553977971594364852206386081882671356114431200490153241701316654483957574814559322284514785730453032956936147966831537859112324156688902384998513628506073889676506820176073759632969873718876653239249615411721013698588889441543168056565599770835006804972306752882314204140573719469772679608917264738131575894972438900111406323607317599916278126968085260187978657737753743592374132823498154781629289390597854851636291441045284848299907634171120933816881961425052251120880774482418619750728648400256654606156976967932333010519388271459017955206994953886464013226950425096734249937471572516663265520609712146818786876480824686043437767449304181594874584489098479133822627064613222971810420926686316767031984811669111274228195705891225174704315688741816413519364425833142245953196672896722380934569299976125624093217742569552659698797980014941113202256457796849647427909149497279150997710812901578626387282019290388476583998765110877733270103664225709430389160787801909499195293738821614433463794000090352686531586659157099835709160184521983464844970935020774847395459033305654744305447844071730306794862330233263885002134366275927470335936257855855229535172701038974235378123468045358652930321936016418626634227778400699549129317936705034203105141091022395928012883743181974792282810058986964880432856918562131544659008312088058708390305156767618123002861591463760410346008294825918001581129715636638702743056322621196593386158182509619560132363669968963664837893952968645741764258004595416909064657614712475975504168004653101585870143674372983266151202206445176565266418274058838742926784409413314259149474757023745875944569622634284101341285944405287209381925674285142897296736020728141392615497054812232056801647927736968914910564907550501717111289862638972448729216287129805778385993021124713102550637594869800392943340574791622437873130393270334426152980157819602142119967955672142945967575218406197086096949656452861132271136550900562954074010746968267357110256744060758842768012561116551749363254287729104175962851672765575366773458540331133302979220859007130537737225566582228131912425918457058227007462535999728883172402565660770614861857621707539263183285791975281157689720299149665770714046103995800646958018517527897691667414747278547713606862068857227336048577616437214080814800898635854280230157006031402852312753950426299744898124145764848006986418296460654113859394059756827566770337876781289000464092429897119787131087914039811476332664557917068719157494764450397631823620408257639059448212235037768499098050411154348287221478476502791747759152686054542657499668663503254473084960517310284972470703944082670131668306306438188067390248685046704383029582484934882656265252964390372499957048443471563878615457540368718925552271113033563296154585869801726953755045086710888365594880316843294548429486678735417419836890619091354450648242115278869684162402989407097361292392714989463913839221752663957040258092175868391220197598263395663751916148270955151492827449576936039698412721418813137814156839643511387954627768385608002289601065512592135560326934036719374810057590241181106754009363162441368855242030891530599567031634169461726006416534989881697677155836274327216123568702703930642690874826943769336254968854190418458673640487256717612106283924841971002379987633073089336320569854513841714831344729199935582460967720681752203968640646138815252359971538253257071699877565080233006870998478512613771282603480951280197258349208738957007033320737560660757701953675095783056555859067984336029953298861753264602411887681866512565625284474063384482233654339443207982482482247743371731240321209444880875245156405547232102525208574053262372140693006824314105352528890779545122646161131892041469665240854961394249683629946462480049833326383257400499483627081499125902435266451589814568472903321130420869613004658003816545257848709629596789635435363902654794919845772003740840521482007829271481576874246776009457188612477865753024258657012362162671133424054774763932997027782419733707008664302423642788528781958435533697616409492692456021674239374090462599538679729280535538293436711456543384972116385444940603513249493539660282344227884075213056962802864627807010420245197421767465445225703895838262575389545564638883396467821373189536003155696337593393926370447539500437528404686644721579536988494741886476885061306614621797323869380448026366806318521207233911334457156557622533229049746956529769486108758432095991330258914361200401043012514997848172874327721142230102532715523182851270862506075226373697605828408944036614095098612299662073665000975694888800282350805142352325959753576268150301118542885903303388362621028912018357127472838416191661764388928386778585618772681847713678241880612575915494443579003688472694487852323087671865498535572313123004437591056573264716959892809813172514151028679479538802810487928984206068615514500784767634240531186374316133016654911006170562910264813292430276919596593508934532278667419566211536338974249034921354855983621332571499878997385652487187920709949757265084386672282080314844642490619771480929112743226755855733629182118967322091454065778139667573946101610344366749439920889444897964095376087326578819219153683518588612960449855509533214357760055156550123713296702064084412011568326652657395944161576790195257717810893721318215936196253450624115132587017688195576531643019419064621431071336222078726171623608248269995746871885037633845242064442598462250424551599575242594069513871106531273748157080587248765630933978937906458551318248709487227209491947043923580097865291434092748600233260512878122545546439478649023042366502250343681083546927105921743592012179678061991026600510521950587731547518484901683680216871040798358281477960664735477113900344663618589711712748026259696260155470381380511027817708734177221551420082810663164499800005120023871586382003494012086188853649291312963070390494234650567601821291659470128372915065314564829451962609592247313229909800093008867390346813355759645646984842569243482053123151967634467768434341764083499694452872839958952335246451385842355235918509106291352425753402515709889798049685643798648706138867360452226528253847750443557232194367348175232605194515903842617565762387299500680505100997205405683339592086715099048234570787686807361399745149513743519430103781221140280779631270447609977949093847084527465991419699748664708447099953807231205269326582356586438069848913385209261841231251724001522905893232211413714269978572030420202970301604375400265018467518201224235143019382849677881928094739792874426549766294033509279700847122577209260600893084702220371919276839956361993769297056031758345697433634979019717105847823199329174283103957836658789699511374065462495157912512837631322331739979631172612980740665636852764426960544169374727845415611463623423893179014181377313788463173935982078797112829556390290667641316703655986135508963709477202596355734138289057520880792247973938671533226535118559945481056502957122894470186210342829280751188824557933307378772148264371764937422712215174405169078568709315222449319436805930516329790994651276205717390253102111808258788282452199104691030715233564082233689588946727019889948875360973001423368827449904367461937671167801439762279050634095962769329050436270870715049541789873240944143425506243116055052156643015836046376127000558293339952103636687727932270253751739270787867687133269577849788907078694636219316426218261478138720756820421280654637843355632230597925070707357389738220193580421991559692700862837506126472956342994199369414104849898983518882171845350329540531767463602425455177849338810609385211934643796143117440073631512787102451345800505331453268725923594567199485607789290440334559204250590394456316529560722407759738794228764467328266655476298791968596461028885363438505006296226169448989632449740800384627749174560467799119163693080553616283776801571724956350363893133942594336866785489063381144011131444641276997108967152331270138655373359814254613130755235905146298560449233948328921001195294383600545543549820524503688337660496502113351402278252664916060804156427803310571605272096450513930994999376436823947275877108517411059417143162708280612040051145509885047333958584841547182780860156019137409292631869934248109861516546080757178595378250013251065763332256384076253727147620299911927670311777961134866369710920991533775182980289505601959894888242768367652022033892779451067616535535024360860445495160448190189779045595774839516715594037771317596260148071101353003496060034572124235587608796107600300368751551754598266973590766488858812073028351339079637290933819010904079111776580548730655665580535105690655624181708186516033788140321858198050282814884944301517325118050686693377942075800027769995287927949996135561686398614968875399912969832556280333993753539831327012909673438019304560041641169957390623631384107288287141964575692397136405825281408161597361918206075356531792380168613291912359261346180883298923667841708005090234724340058905904889060060820502980701628133591837317489205677839231311050535966720584895630523104240572721674434423662946407840841174974226984679554718729275287044341064901136505971180499800425339810073685537690564802698615839101451192741250570607010953532687260351629252326952348299824272458056135292372868175353206963653967811356804084953938658716751876561532746691919700026129950120296860340284042826002963110420617875491128239759765455138537653016630029113366599388787581442041655339492971029076636388793714200987590598929130200052525578972417053576838848736025180288499577761175888436097064568419406913588703795620546843187495549842665473751689058857896421431749952696486307402980102906346075974923120016273733101903683908650300402939204563645023954945410136978973271238701629541858120435380195029400995035900050817757742061600610343100856736743652465371584342396813105710921392237364305635661460399785061131716391884815812202116281606183357820291502509636702838267050798142384230868471894286927246422898230007520149341673393916492152486267276323927271751544006443761915265802440182918588002595140613294036037359512515482766144896186375038209352660348550634037016577110698520801384846488659737574169437285865327590758276140733624377971595539446648520182084108227364014699757430670125275650713358247159588217840995508728147061235179998528410387761619162512908966073924147925366317933932891561231630703224327757847089188162056669425490716819584285931554239381145247717535545557025553678822278745154245116402119090867014739633078088662465520287497764590608162332401899500226897411871978360429127592035293902862474368782854518498813326580270096415064411963821437342233681952219157608116038519557182361801633089862847143877949770836403849714929536077622183144450316835829827415803494266885494296232096950782461235158335514203883356048264888242900172834099241822542179004525703628429746635574347903345989640932744523326382494798233690736124997297586572689679270210999375166914966854822372384792995428444568987545536653090892619321384257850422550987322934412479773919112514887612111483117205918693457595556631044456335915348051670320396252623343666744810547861341752242388587496234145693407584605325813215640801901922004831506923460999294822432783373231448740697815226263563394024659947344563865882047647718510347119884431207021415792197209528079241387250204450686348567897283762832621539906347704310155312867888589952323932201786357506498180455993794128477568221757983198871414392770472490439183505633793386373529534172333643737753801041821039278148718981226003439638570966681816823309948797321200647835152242133093481456437090190961598738526090847529076585027163146535991789067773289982526303878112475591052980994551993236804335623673423073393757425983739649833595494879840754307629105885137082622705752541675213255083834352824467121286978509040526352204193311088355469539782229758270978755088811108261993983400229837008064836487601131860308963397052377621904039372317664338960561761678808229324101814514295070815479347256974797356427578084173847653113747483123124547601743280544007040552841596743833721643675977036944630531254416404168728314323182637099321633872525967956284748783564725346368916792955045857132001325415061111440864997790700594907760330911656518647070640265575688888347478283118715405474372135409914684687406956907367671838690690080575266615953048273535648760328596612214459756669520319094758887831127570550099145985401730980389977245664766420876704870368563079876645320665634172196233592962487583335224805670516245977345635089237537765540756239081496548768624748507348006646256894555188468341617223014972786306939667813123451847868429177237890547536382040118450255774527573709962767484052847135854772106000630885203028248438818182328074555929905457896416684850139559612176840400177419515397405382455720758042916021432090732689965627241479968254506363753275917407696524716768538903620835201596944679893996085425539040765482208740841054521109012332558867344899770987518775125258601037022163245344101398165274129577758007997976058222715869861145164632724771899667301448764040257434165340680949275674145946137775451580175067701093513073633486981113791931346066601641266825407544864243263842221443714097554587866669594113575602159659116022355535621358859330897015338081844351386586515409075923252877013048687117694170184270371237598486380921209846466032270178241350811245393996620927794979409012002525553858110716053925557014821421187626426235698177268084505487259578228777383969126456449867179582623181424085091666382457873309476087420846895895621233239113878769196147433146621979932402748141267123642612981813235956744441148988839289303781715044323093262425542898205431189924508641496479831511700100546461133599399037971469972343909087656809153535838661771872312840006399150001927222673731704002226472129950587439011647560917394128367171022808248375024610419061232630537665882002146780336121002676448044889360721477165347620192568279841482495992313225865597795680803435600798229160154679359544748116222016104445033095227459187445398641116882847533566998479831221380315024916769516058889682447364371129357211597738947136164986610664744300909534467633160755717140396807703977584012138443334548090678431756217694034841235980375808614496981453219142002041318218829553523518388600372193196923120250564949320605289230923322265326382221125691147767489404349505890419991065217958033474544232725742124247507627009146652630232960408258101184329763879221118707657498550431817871392895742813901176589463527607470375493488383026775009245300727397583241963627747371015436797701093073808781894723906452730547632604747162856167177239211927250499364251960060271563611739417908579446899357781702732102805404295086180222554812302498265338960790546493674703280507230075676007789073305087293259359098675690523267667902044083196255235523383611945015906043554873711714893101512126451368953522307476484708980648590727815554327130002677741509236091823257204946666154964991299308540013783260414060247309154489880255348216502434499854224462863548886578290321652700066009423387495867684861474950326943017260578843693397719097144991339746627790163799867118431903259015429281542579531051755312143345971949312289074696857978127092743950322856242926128371250578862133483011508862261609749260744536961378154180210646047328264517253504278070666161279284884177855769864993486811557976036797684102042432910892898048119274436162616805322955442895891199016313824792988249712509661899464329605361214820845791303757059573130036474484503157477311712438336779056623353049637866975891551919318435645813926290655199403577665596617070573110043833140330155955813864604347763872955673421504476361257690565325145132187182516719289432016039726627903528259511879154533409690534113048508940515378805118098756053766751151772967688522796968723823716156117490267967909433848085064284841517163289427540084583524031637748633107475169720033005790167421759808310981432124171616364704481137125779107880343055848921831875855982811832568985087546930082265504817363705191774519193267353381007148593774466682796430989975342273097698800858722391627648137045276398512317691587740958726746982235592811951655105698012739131709231642100483015707195373167666086279446562887301926545240836664685846816818104650902987917097122062067375223424117675987231834527543593039124444995187651831588424237039308790203616902710140204553332678054308865587097557581521689411225629354648762618258049116835330652897206322800260006625119839170632292805637337022393530999098060343456013645850534416969424574040951906968299416912343811300470913234338850865483003509427928040065833549235238797126090397518427187597012590321925608538260414239062964070905510836503825778620879480468893646377735275867303823592373671097864225986666685095930102346664797435282225741109253061126968609996923668397256666267867105729444056443249249506451662190806427536695675925293422538757240857366617575080722005274482828728855251477683327460262858052116989345919598755058215777547343466964118596462249588618083769354833439245623003716436353663688815521135707471806091590657900002632169295202838948655265614729124645882484952076655383891793913713058566297149833827210355698711614945776834633071305779073554913556358362452416633954354068570798449305202348603143297561179455566496627460788266458482400398874608771702544042618778939326713846823203423560650229335112148351172752836088531759075930315828624739740442365809686553902618557600409764299853290891001911155721873714859147821991296573377071651352741166183817629627407200690164932198597639660905581839296081791890706016525276434697754404388046299330327305106858975634065275363470638323203997795122237242219727353633729414712573021000409705597751947800866897595790696421152966368881063422813445355859710332257246062371260042647015110204989960623065470543033481756860152345079894031180031863993446731839470905081993885421206153207640644486251834299443022716179954396024911324248424971887602521261169876092212642512502855507786799683995319264092740020043071994756499822713526961003399167314645451653586763128248852205694059645093204801989652124449605133844942585402433315273282017510779524421212698392896177613961481559519334176823991882742586574048190541908767613530753221209280075485225215644758020472182140845207472925349036311771907539429947995507207619993096458712669881431511857183103253643081721418476290925662323909381427955083010463732597628638590292427819708424447660392934533690525694917096177812939239293505472830712177175166365401465936470392765917805189682041379800019061701353490290452086101264777299864050527011903777183459878283604184955761961194431541080520707730590649216518616038620870885537984589518948284688895711297940602439332181337481591432244335763998188162921330568913397627633729856718936876902223139725140715254196598345585973529664952518632371063748516950382098359252038275559626762782713098524920724906651175972280534781411483200109279719238506533689273461019910634377754506386535284512053424067420371563562059174424937859978374953420166824771681832353736694484466543447625242982511784572465841520844435714864113120509539438779372768578519834849487628255477235264172765493560282131986559548464169101088641348507208758099477377542327651184577920331295497963213467268386706811477439698857133969009484717395940340796509419363728483512896507234270976560202172980319733747786395385297157348474154779855321812219168305225937489237500206038870215978108118101107974293998423655794421115554814090576527044114885289506639328753930246468503842158093964684748739571785262663193314324001117666022710956730207937202323359768331830080025022605045420615199110877931887842967671231955150770460603209602124304256680526799175695778633561225787442388106496432884356602045090680742350554264193111634856942893845245229969984773013475074947750266768795596662646154449543137939810653597398798717680293864747097798622508302566466868530136855854951980858279191673914807908390962973542185435741621266739125499862053977318267156981915472674240942193643998975421106025271284283891206588398883641407418843326791237273256160163850612204741847756774318913393956968040962566551894996052035545977227361914442344732502449780703159734829177684044011648107196433815100689731082048598661942888612728224237944828236729646550328015298108089387987512815628474013842190759779856974717171513763203098645844652174309961087515251870134806473513282823910348936269516547655126397572366047546726430427578101357235609203980374046720311294786762977248694201052174647263267698309496430415785115928629060489356507258262565586554913333244120410532800151771815464257342583302140578959041116490390981938097083537543801836744044202696177349924318842571070124727636520074906338572220423031269525311311131811850496129698120064039411660999402119231856504592501181680562793317162025188100195626314614614301440766647809911372630269773818233940535013358685805356249405329787539689574857627816859798869192130645813390208488699032999855083519758067034049205380007185476381024907103574365920071143597043184571082975111182554697848279951858942889295235491073142321196176671948206890077710685968252675239089546197738903647630330737611751916791920271485502637644610648727835167489776703738762972475380913186309951208080337540851090601627264014478388289670424855323690117117989033615804078660996017563010523302373321323598569511593245793980972114689206928375927327566328805814527196835712800402304363930111966646932648955500706630679517803816166893072486639168484416522311390064088136409031300629368817698920350988725987468985963137701767378415451813849326800073334617359335087323749903198668243004326553577143960296755890734300448902451831417054772887808131258885839370781230820571495259108304019920647813595457252693809068880967292696409349216326662915716598080305817218017861422356292848145896242429362728471639448192556075654652351759033862101142649643793867855183573683653893145829805236205004854030038400668775035500778738902944942518106566627499526968647615940374306115323887134377840195336378012483044192373591031072458500500013772954241867585284663503773620966024003025529136331617932993761991445933958281174038152304522965069833268243429560933576950528572945076888142406607644486214910554350984200170905139835247616604470652663804848953872554074077394851568211213927385872935839545104669692731232277908295385026227374094790993463748377381226488818011681197411663747981662727681692877986870850573052623276764300454531770237659404579679261894768696681290720655411665200909474924447136475413867125667696358353736541949646189206972441300552264792439081304355249029000549182718187932117401262381249676406173609452606564864371152353360451827077636569234122929970263007962015495234490724200482067016919651450801361448093473748566796674099380390007360385217573192492687858344546769047922933150385251510886987145995660692921087947801871360354828048441312617637585005905904566902824246527880754239148805680751687056401726283420225838253831192792661409669572843238550613525746767212022157809344649180743433519819815951738071542607101228566626714058170427948937894944286355594482967995965199433789004608180534090841407407114954522679588187402797643835286578187958145252030312001675354202622664017500087099428784654622777384586730596698153197582209696082907905110413742515106727610713575971035431116324896906718475598676069692723447098409483269394947261455495614716145966407227173751117767736642524874172852828659733604044063118526659875155505660730015239874777808871094709054013344812399362716730824753777674197248341525699238332920226350790114030746137793283516497239436555480099962952106008953314725390826135466670320848292801670354238060554877672025043034571908068261367535928137634655480095464154766570308469870299418359884228326575442099858792206473226666319153145809685033374292354884494469949888344157510454627769127677183865911109000332893488546195357563904805241304307190244496521990077886320009534898927774951503375839511322206146977132530607657789850700945140065516566910172723990651799544614673113698236498172905197888225516020893782203852704666494231503502076325944488661606120469989527532345170924240007930718701861982254540908148908669925656173818001939867146949408605133957447691119579960465795954136660691997463572418245997089712636313611682667634163631647777833797880874298825740780765270893738072483431230643911519072462087717453005929045094600403763652864879927675028212486272483352932615900402327592126309389622362581860712981110512813373202329774883028379708241096596489814394216485348460501844694849755193422222040862932163277610675858026252547014760394469880589554548620478583818527834969924705016414249451679052852882322819781483466579055476958017475443719016833162367903570042832078916273428591326764851462689049911557521746333029905226190987437809444555901994496775807557853428834118635253408775033282434057123656719758333587596807764288680925156647375619458725714308008963760120870170533767406943339603616259350773473375735455300161115896382252385037416818079877449055918155009302067983912968872346867519423583890123111295555574521698950228721211496559634608188575439751031962406450558728125413965507338920688684070712097787453816932240669996757347036816668987784940466605240085964757728799413604612201180302811396921371179890456845059346303596010117447961337367303598109886115717420444284352521162614349845811595526232482634032647122152653398529700664111794551412704417171756368184114084961447843227345150627217399478828607293082685013128919543546572666359039886532658275660239657828681719638091780069769811098139388029568645082772536989662370617849405926046970194064548088777004871409512697437416523101070336372583558512302834906559615839541432641991964448172962643433140898484386912935460848272171872471249615099707786384126005419364408858123142864273006963495339890780312594104135801873798108984421774058245188568993837773211725143399183758658465237417640339157117256112694425972891565642148198268537758268687163789092459488240156528543844911594667270313746323895153569550487451894269875251384532963245121234965924973407068433473129858160464886313911038967939719121643844811809182513511820402497059780037289286873629983802219330551065328846180817611239572789963129242233251447383862491352247596933960250493694974947934598309868471122977168711133430751001396088366565186060018329605912361657304952132739922270486737835267679343559247044827062446656467175216528225333948299342614444858857773042488812320662666328934978291169203534622947170761890204080939127860215401554377594648912940430279243716683340964452940582978795013218276379479192782925203951707213051123747721739079454850568027791319970220855480003853440404578926946864324800532023291238574852903773759734213012284616932525213270902622019120674834599687129310264907905292988516212216826033970416799547196733842822780211974467678756773543106949207821893928435338105534387446056532185573832746401257685530017230143133166353890504685059361495898969982229399032768793377620738990027777150542671753797906517889067893823089224366259786656176335627576552030232118887304558587148064143110486493070621112384302058327243680591493253903652437055871749807974474078006070646205090588070591172728887263243596219949102986146596304685108442700559344738928183956084171715081459755041682246166495305338333959319653057067560525088853070437821402152001097760274732092752087827947656704703367786019744105256982789978831535456775009398123322055302321884392810753474841874219520820739670821127144760960996949489579883838751564181122890661865489711763520797508480038038840732185869072843906636499892856942369416744437120039080421473147019607373278751939853939626363373905451522871950887004281654997139239556160830870116002610997326006661600949994595704664334004798685676019579188410895308188295730770482830191179354851845790300028555352301983466073400335726430422430413438195321274545324368390135671554282939687967501067809740141020967190201169104774793262288067998170461810034019004347278748133274922212784216633652095495379454434010462748237669321574192408134638673512062160482449594243252306315909100879185760928813416548485502177366698973083166277100231606489281792423854271672581259558085991136542554080641215357717202289817256486171381269456275466609115481421137029514811396705575126778527027671025414062944548842897516992178967568867681634115767079787021515719324891314819407995128398971959220730441127746353859311365622157763047402165585239158679706743443183385131569490538454096968310027317133794245522655700666863062432192680855724505935900374792775896749615432283511713027108195186250773002956391926948333898312782261033611470265203676397811054099896317398163917962425792956775233993410798440373205403607139283192553271150210682256237573135139753692188272193473489691058838128771249167313062835819055911141655358189976400161001524908820796041230639479770961042152407250848749338467864252499859474447233700440793131629272126126373202314413359714792156798235425797664937605650615076554565591901494399868538487609162920391824277149897369091382390760245350986872930227646166221086664944554723770165294105138713849272918017087808563798160877770235476165169431882976426518450942359402988444588320799187189856043701152623207176981245761860456225050810643290507971434364789687461040416119254217241533404496924968090251673732425259626567699755702194579263794306086225071277790836012817186927594539667210092621964593086436808803720864300225688423843677485063769191444237768208173341899253532522732164931625007980555839592145086575517562549545147086002646618724133640616395434319407517691647176441735920097578497445043982038517222934792664611286668428647703774497832805212929520391905732391921665841743009938551017009346544575462313313159043592868489636219035811349830518990448278671600848570952173397910003822930756759425011954986125185446447154414197301038752053992934462929309714965001251080578730800192851467745087171656548416437110873516703103107733767646676780988177891163599773921160176198660903817822755268991650623898357350472421960064123976682293533506995291130202913658897397369881513064064017791131880185724292328504680036200344255747518351639251468799635356524469722645171542413985609524126489493123999567503822895450898909501424474941981088557945623510705342678046515572624535708223612498223460912871216166842681489460357094336248001345544632714892711461090722170538544779136594076621312276888909396892528922303293581844997993307330636935459265528945519280911964331163211383438649051566835311456907839902544891303727543365684090950744209838966935005490627659686413164626860138984968676109943031061961034855076476463599390258660165389932314164284108873369812158241293323184879339912402961042171634013710015369569041182456799840099257953554266550347901010962323447481948434513637262743370987979814917026062845663164429148084645507268855890903963178148033088348582594084512222836177646992629867366537566943512670003610819116858231308206747707269443193341407683266156679272968739042380835410674799054050856990746355826758586785437992646103527499069612914619259736504535737441548238617333440705741085935827552774944933912552200255086053914499507586930908239643882823222830499559398027937833911146891385725503218586041717398909746078486786279833078340566444986398142759041943350892718534624853721817092410552308419589703664939666933415757839876321641721523904800459436049311269636886454254533728168499162715466811162701237165233347969102696582966318570660407461434974048456706795071056946680030380346629753460762570928671646844324683947248182815596136359534884676496666196546475394101334139315245833816385690083347624817838595681196638418434829941295651516718738624131882282783899351157942819428741830955389508538870245321931486233463630540437297561606688574769895731587789480134919193383666675276277204123160158560856626305397876246876444555479112896936296329772012845428739644407564610159024492075732697485272918283906085704933869228255536946554838492192080812308663578449690820125778611854091701958924911959506198150162447123426921513324670813279823549457146847255808867843833907965779126367354242124186908933730658436958169475911570233291302176758045870330893180021195177944534254517350704800297259224037825323236592938131019289562302914300245516994961897049570293050129002991462370977427369585736915998245608925151647100022180286976892158170829060674522941205838425095148508902179667572621393048441508011619382890955063834329955703178427849153846599882385997283212834958167334800739001102929619711925486029569574616390502186926684132197787398819984333641415268072186084745857776753838768860648784907026475395103578045366851229438342478882263289913542259303466339914703768753277884412332741561685252648383913908775056965458021540000691962025151625921533106972024166075389858972848251829118499252606834209271624361754345319162117597087103997800622718618525977871173234295289801620862345220503208915138368775073632033521409352669569418398311809806051818070383626096734928758447731767911411149807235182525939240596576107073880674628695308236530829686001044907255023810067096449535581587934583256226373256796665032203283132100979849591059327794076432096952546356877431232329533039372386873206545630622637424853515148162876353261124945204512445192820103616000575308368590415649210399400968769358662418918402166342096579951021482109467719472283339364689353137441670876374355128914521919692861921000635148653039951291085986602425578777094636956232675580053377081109917203449251044813928922049453321766976536383599498606329752211895514144975143076945995199145659073274403272704620722427653641927037093510013451931282173681277695036626296771806138699994367692730748413841633787575727695161158422186687463120537696985200206881920540484257060739659188959834674548515388961541151417842276559074612170509130025667896003584743200926595112643589643626120382361125317900957342977113366762718040311433190503370088917131728797030075828901959577200039729733339917914909611851799444192167207410561309325331396833076145220536744140341870746736121831341436278978388341240269526848717262947534678913847828815950943276738138344864596786398744893575926145865239306656942578438256353487671875227645347097597545467909379071324129241671071469746684947985167600514581495809017145901481705998260873075558099826890622621752679924403397553646977324495166772362108918959222743814783774068113232835387123441924228058864979633217597279879278380042902773860971816145952313675860024995675145028830913269266183999513932028718960787410125170364521481092915691444066660806256935467496293314551895245167505368704611927400559843780593494528923212412893795176044541916982394621890570003917148211331418803336160556660101141119578070465200803638833871467201459489688403920906271621412525663967607263884712217758814377692910155989211645479305853758363136011539869779811409478332752145881839146790421535833481980784195769495837676075133435154241759454036104823013064689158325440744925708702537984034713072792287887013292417452529337044747880995161288838677135809721463632239591295037013376771045791073441326951258355583564264550434200347667284015224805877507619897427150490175780051195247956056133165118107126759513428390870494567957413752760283735189853847702228651306380754202662479358878840967041302491338282588843973429581862589324565662856579309281071590097281145393289358173332190129191020251440668248631265165836181914053039752462842217243171376799848406264591014116875892483654395212659972378342074029113092240491505391621855559057131042934675609056172783576947208166715260704233071106463670251589104638327718761755264643701621107830009153107297214482694211474956104505965972916629254388387483354358566037271930423620021155480849691630559824188133539859823653033291792474904509893928363598032922204068994158919325768403718633474661017182895840787475611104407722353235762823976335764152273424895210341505033422134590460048772681472286922592489690434348339989438775319537814931701054009629954292683820147645427461249169693332640112081098517757421338545710860568123027949981045960362744510881660572548558267848799246447075872835476049709004783238078491993507533733981834135549661706950443761668617832622714747488651575143969432822635884123566491253764126413736282722750680443545765193310025435961546918037471898517600149330247706019248122525045357286063294663321628190641282657383415727731130375202166188790503443802505880253354202267957587623550765748814671955157617618928017504817207268955935719003140939912968294652999381422201765008690029123634837316419968544677637204157994400481596679157798131066099350163796401776580912531873560699206442884732467755707873422818693980256557598759676832956597613981044253761501556960099645992905430087782206970107359116685314760206725016692120962183848838926062216653581429612371770709001642373866953338579926245749201567084679912061435035707788446076759480167511280016227797935020262100543493577948689569760488747517761175561210621456001008189177398245210726938489268232443208236887810625402921506586717511027768273156362639673990768850776497568192986925146013494123843790124930609209908473728083464479123581796834998402094059947598593696647722275127924121593581503955524714392785647581643660932862673086086988887383897550106202136903248692714887037743601385101530827580633745434878049183104971109157302017865033959700702277136843091860381135688955528035349700749589578561777533022100625181201094300005281582005304313160517412727202526584775116196096483498567985764925828151537483449374838433149455926169260273748899959842272288366219605497681961461297629987573083101580020584591262218153813120720421598382988077808376966895195363508943373817404483732599521525877300073658986844091004045858333929882902177924133016207342037113510408724564114937137376470428913433276966834864661029335170272404260931236536737308957415897122674049084236894747371040973029875733675519676484225283774782939202234958362760149747874293859165574413374598437482923630800326464418343974016672040303231431577768121089701465507109685204064296110915429021589870860037385309083958083171117677488354222810085715650104150639553238857820688139309050224494022237192433476321017764151261867358789232136739271280024865562133442500838179872420022944905202400880723532516378424092329490241546175611987747527871207290829566471405940998808047157147637695822948740919836285036086322818531461591590602117067229503161588502304209573306294840110652749842112987948659739618463570949672082791846404613083663490327763944738099994115172513864552067201641031795012616315423339548668142585858680233110688515326166206963041024258234141185712673745774784278581023726565530424056534371716687373288319311878123564833986933517508335770113971358667577473431118509591255362132448684114486371099783552075631528125302648094721428881272742240266960972698638990786065608349452430456068241456524676715415679221863621127338542199171874095318617851550440097703309266023634977780033960215912954005596382937088051302381346089436303453506340656888161714197239455761876333677797193097955311037420575067946935486830105151289763119916190426024561458559153050239573677516646352878940756631768247884790637187087906457449066422186922280488020108213202957452106674157872836165256201735088958617917990751888593879280042293613112297290149714765799367746232390098398715351437271970607301559142534769579291203950925106239416108626802169838984001134529100428462183038486795755558426011591654873507305200857145914033096775759904638012920900796983878368214118270412513857636685825886068741803867431176905244546214318687986530853253202080457615225473097387163568223804277704706180066356802949951198448218776196376052858882946492750229030282010773766143532716636217631157661226364704520257473423464727631233827467691713739249855144225856953052054715009240128696659434111822579962755431671271520754806775841028611615761993529273563782314170744928130512037435536240802536310680914096050073693066281328080467242773236580940170281219012810264003705949405804288673201290695871006961235188901716059587394972096637742684715297021475878090019715731252626736971394248711973090167216517126826042551669214377579895450570172569090100516369245551915220701696799114259151808609334308628037550505378835151379224480350390612984344641822212161989524355129345219635691668637898386544171730292679030186619487146637343057828568504929510245859170779050828777112068608478397084907744004443442086108613952803706059500069327285661296037679134851619044527401535636767176515288362555154214264396024196438878693621443453800088340416486723384445745615544380115419467892683045413717721504877000027152544536039649606006042977411209041772177170584962218662102073392462894612922982534260143845030348746946701585424788714644214887642848196182079186312268014214739391154199752617810227990362992410348014930244835231543790202568896594764666220086067660021692319300385219940907819353806294481641787367467458140415613475274807581036352506892092335980055226421571552776394503658401572381525073605285778610418947917971765821632898922031562366412156435808053170776607491531178955740034608821255690701047197248875495819809794998636802908185478048857639495580579510882481531157907839064919923619159417203313190802094968208524929945499918904942515313026063452759302303132979647290197111884502419981384982251728521908197030371412746730005031328914115036143712293844861622265407519581777779246613987173581084444582973156054188194832362223436350709311671213510813523370565151094942974477185011036825209598100711490524648564642059548209297440638351230132808642409208265704096374277468008406340855678417372515801271260540528408839331837384038472941952840809829244112496822467303755823873292301073366153017884929038596263375178657081122935444332376875161839871222588337480524437982938645821809440535395968030068628082958396799826804034736877233660044195568808349079249219711168724301865852934024932509746640614106705441532530404895836422484520647984103512924520428436264334072925772090308046404346804690608138816902364469971070051948130570680867649116942314289802163354493958536049631747353330004675958738390297513293233419585909959340579469851751286575355174560628422317372636775893285776414290556829229395930834498886676937035900628552871588098758672978947862085151691266563189088067895958096398779981071000290758920593017031657626088955182137074422086016122675830204666961386978959244662868128120028270927098524460755380991539159413804347413128390751759732776315731905160056097052320937409581658605934266773348915196075371402391275854439873115208367053015865193582558120382507758319235316339317799896570337463952379494827683460939570142060709949770374646515017880185941356024206879422443587697706395147552932711636914643620397509228470042825364974861739934592159775430148401667873790309393204337703924923208959285547354922964623566217404208496651382937699816194423435881561892011105643318421090502728584066388438207266392506038186227576589112305878265450790395148502531714195131908546431724293143299577340703727282242124072200321002023857610532808156642792240195246697634764591376772005641222327637538608704250609530334310219767638876305933338233389907954987096259318005604876243952865074573931074026413400462351571252659187320993491335296420146508564626080774726190544596720379319382054313203618912934382386077105252809934455417347627394877763368315886939897585484163457935167658546659647956477665968742542495268487989425176243118744913683545773558126483540475666963526974028162994247043495651700075133751802456603937781781817539633731873056500145503861696733058265332619950249508705935027406135490500506518979378462804045807068833366648838755751813825934432356544922481726123521406226337039805027741506031812951738841518152877432959083207299422282070447193630603933223228376067588070218329149713837216360986228630832862228162969436981711119205644607247678004204786818522599695691961089613760119653532643365156392977014399641116062926125310748512667806617192237208265172876239506223563690152405855888568790630688762729467331260521105507734663563500859736976850850363970570961630355656086818193834536283953601339341510300474365472827795110897911220506515452820185116431192648373231347022643689907901942481280005848921086436818349000671226004747003656927900545436831785867216998500038163584488941933668126758456185840732662014189985253625732255146505670495980291454630358222135658406313571231768770590845941691860498451825685507355086166752782789378723741482051502720900955539360579825190511250491065320311713435874993863269848821905657622255913658825413318708835827546162841747865800784107209016755823894048735867024004381666856197874241423438403094615218760435644230963635823748227001125376522466658829909555141729406531134444491632704251222884152689674250714208828322457812901632552521256881564636567186466408118242590780144387182609897399148830303086157940287710229479315955722595364808088190473201558494994677103393335468774046672588336069556120271438518869776128636531722810087995509810746152581024248243556723908036626760161278925400477598478837187492691386477761214110920426312781319019948444688457696603132612994226991508261310664860677444636427061444446713216878244853911071944707165913483762607114587524536999874252780802138360298211726111790602885191143891699877856365216337540002453686736832191805284975556560051044794470680708889386322424710659205524185666698884940911701827259980732856511610584694655951237614090764527027689803137204735985213155933188866007710441786870493109484541452638918414348201366689541714915103197922639402593061823975110512325263214605960805112932546945020058626850908092120134502993410849009497946116317960767671340119610308603600930547672036557152735905323062829431094562715218453597191893144147618317319862838101701412236658952814981502435033075367249449629329283328287959259141402429143624527242958761038146906201562670962411270719409047475820957387085974158851932184388479547073681858377648375675794447459475197539395225764428179539864569376206637834158019282033187618789261114682641752038752322547257820163609563745189917323565011653961002690791954666791068071374984125270121045895915293574420420035107915452829428949642850307237506619032618182074745576028754852966439248222846848539817616227341980714571296147441501927980074640330202391667030332543854814181734656309202689073356155468928170545611478591464719312975195288220402865932219103359135286967874173234544784182903114846049302210261149572067795319212423052238436156157652436076499663704511695004739127343130269540792939230057547599266954727414605578455833821800309129736468668104966075119704549815860860753194324457200340107871659411345958430513220487880387888984695114418706458613748956210413864992690466243164226728247651649773737822694243176727529818428645736743581069878853492212845083161707134515875857927809206218766775782338831053898066450341642431950747567273603058375337404269184479215680393188344883074352334854516349933273212174071663257378379409313514431871043726536892295238170668760317972529249583657712531730095121200944612819953119617939500345851002340390424609907579046409302720784788827012514949542649373153804934238929445938719436066569894858126813672812328674236760378188709281811823022805871973740419323313401647222529552105461715169988399362196373209497259385485588512861059711548072528561228812157503297669888970279516362001180138890998279964608119067152135461717943016475473217585258358636058841773455615327863973137612810677308080448390217829471229078450337512472539102314824580015967688347242334070175393926122482241647326576503309009237065102562785326284025374101111626598341644829986009539403868053589428088167973693856677601358381951488427592907595432280476824842697501363974436928544098909295986784599213888567747073016191298321753984604867074213735030273520057355779456928497925234077501060280192976461559238735243729317827908637581718448039453163992306150999077250311316040049714545692670370002080547108857967213909675905453931902444913855764201469989038288093084414318035339804249244830164117869231573034393213980563088165539657335353630717918493509595956616030780174044084859157070224813784541551773574137994278690106331309306379544683761626546513453723889633323690061956394223730581373299443231439288854559503032827789943928952414905897912666209396235985405334673025671197145847622848445511409136985667215242948054036144432950262472272875062396760886406056602720828060199833347531364183475532371249162765591444234727812928579726624745795667145551323404579440443930885793891478798694218474547738333848622079137298499454845670495894634815830784410376179631776929662772812423298126619577492243945675839259323172102176425036213805297946314839203258113521261600938182000730413470170519163636305607896683929876008752626262200310999048407620628773206530904417438643533141122811392351518868845748981440257064579556800792514936190942145560021998987860728755290061186657000678316240194691698309872979816091209519084925545575408237288583632880550394177285125844562011472476655153861866131693744503402704771329158756781228884350641148524072308921120888923339578166967778512624593557261682872088616151843816224036814769933439232290615747188959665858883007810262131010213594974407326743583446527506012930575003138131280713154796960253517259651088885777430161742202051734665909915764153742176509640553876819876693329927455545421660127417176663936299687508359542942060441627838693569051282765995962633347753702480370200533971765849414552407771845490915710018766712497036387127252524318518837211781738454763403720606396354565501957990539364493167517543990422245813702948387396237042897682662177482694783417087288017375268393169622709897274671447672816711998388333671780945102290288218605345944385656025593139882043173930313032064762348758582529114453028541938127090358437930683672070782426966584511142288755555971259864683752377919000632271677597795713805161645269199902701396001895825175322537147618181388175000460038894146148502540185060384665703074711151360336142087459925166913577582118436315137222467257269888608429074316669539417348379754680257732703478119195253744411461803359871463257566952507785908346016534716546448305141911161984831754755742718887675292370033433141829731913509669343711748599368841595734009516465254482044842547258840895628937218744661855084269812110832157795262892156436943239844238661081251712971475487677839797253612368666142867967892827794420575966962890052469248696612341792339844795932746717584315468173353881693903221685154370768826048936369322117744148459483671695529629263479238557549663390856611388430665850909724868836290135601440895868328223100350818039821102319914597992492653133354245093558858141538151250003200395353673334836823708648264518671275887009479344428312655536029384153543112627560132382477376116923051907832815054452255308896001037275597162688343722201605497794813850342664998724598081969851051966523474494118854648030628574423768252449921572512520189356619629467579254609843709539724859208687866365209701334825199601345481597991000747696944473978913069005188915997810026896612817725638727958728059572222944962730242564607618016385805613758335465915704052392456165718707817274833585271848977377252747007521286062369523828534590373695824720856355727718396456140553883705935418982908211698719674900177652754048543277769166178020632930157045128700609304710699526158489850661440283281685157652878094962810690780428718873225435289893062223091078000845120603042716581843872586591612488240881213937169322264953239802463146347525450719163508624183348421189232799193728329050190353409802285693696355140335514328512007735987882939986688245269971267129013630904942002192848555218636302457245873393920802291659966760266465880380218003830368877908834769038796945650811343902859923344379155321261421995150405499035971159951833135715276830600994247457927192135483612684531803954801387666236750748690298230590969158247162576704388381024370290716383862796848461971589108610118425918474511191312758444261483760117373752133037162582267865424975259026698761735834422075635119772040834064033544039336795205007170581037976780339753078414937248750498524048969265892885507801357804417307423107234913234687854332530314131309681330319770056949439235069308446154582978230796725589936971500764393052210997771247352428543426854779219624339968290465826795300205854878463338713668747211200561549501847905769914258195014575540743591167245316654954785823124786846394644758249083815581053589261635375626947138669369900142721898471960713746889780560769274882447941492557831020456519674632816032042663093769767961898351532461584363747529376353787899296209587347409282086399062747507089039525771905711649156078414586978685807512760706868259072534908662519460662341166579830854921803996407070008793671359303330140168404881466815505786688898587086117975483389118725669080816601370894723191517657139180141789636655657690064271542038154143182970798348795057489016231769576018357490715322860196460091210289161367944495057126385806699200617922621380706423128571916252375854986915020346455438172600260482096801474899548260902553306042212542083683394948973719499764919930227041809490933807045308822347914789179661328436440507879402787078608441314371968355006567713366395236188370006053604621637246340465748785700111416762341357975906941636293627954007515111432957889457076714610074701981742284785877039247430344570019870850755767706732806319561188673038596427209924322464082608012837301644488282515498904350422122689455020773354996641428353986918630672981473675729059226858819563333032664636259537381146163183310597042517143410870925473189096125269540767502174614929414698693325802565361994670244370278379862414225795483381275047696729646823281334876239958575572649431859743444789057924745703448292708138286760250411021507885959284434218412341412446580081805822546232817088616489859322497671073596644522201835255791607358411244220651113441462715000856402046682229430119391387528904793580274603293967291871711231262210740173788453718519186882275514014290524736572894148557270024851196205940940781558878371131656290127104701594938935456875092110339726517329630298598574137091109038829336758970437859408424486347767390554034492028664640095374901703595911591314152920252322966649456236892431536619821782785810537558740881246761271846508047272006932282786974119639631466945080650736944044934886147004839932249166802504938470780638945425908301655753626919824456582999830510578058506041218847836744857480918640812240461150486661323952632439042494921690187065443446768934357965925849138601152140248280146671739538247367564973540015865714906133650894490970981253412014244605448496676341180335476939035708585942451311564097265856756637892424632161158279665701658957073828600182032005868978367245057701883982611062521262741070091575830901825429081510783503785504347366682957035521166429259219164388309651611887288314634145476756756563211156031400205728480505277907048295002793148739140306924391018358107810575037173443395666221676818098643987421371358862098935063255454352856246381192657244342397721830474686058751844749821975016361369778201946851081034698796453086290227427962357533944312590869383018681792586725045517474126605904884459451273922886223843460597130920861848262058903526180769528385781638299610311766611256399509118907560309045371640465209393770716228256902674287723948322443714254099267109996061155886744592610713672702175227409995555655772250208727171635616419724008547304771302264455185758521676299169139301506497313944939414402177608949482494252929017451969071513281147361724969609470868092108159132714289485841285571537010748823633616460333780662675541791850173569027915023973415688431318105596492133059826073794870305470564003312079369565819227557750030320985075982701107269197282737578156387573215549482184275269245140734018535109642992241621091386774729138700662146566912452278094748093141916502873430573220863696950336298770990684810737186817979368997657802977753228395784052396933624586592684492045785642972351079748369535004212740110922043650483848453452919028168884890111302921441500796571352025815950619646799464100015142715494902318667228014426538695580138632768716310129699154105819018509230565155729810268264617217471367228540163773649524167025409826801468997970091006462662140399966609440919830253092458603153824397002845229310656496314036780503905027946647516878248903515409215921636601883757549883831761993617183474231187555467819948128984461435090524915203253908555360868401341613379890546548728043281135252013250151312022537271101031784219991164351750701732613317605396853543648866409554939594056830099876335184495024515325131700419361299793856543771309173608279509458744471322337236350016485548885708985390639491461471724366336371113844000653053164937107685462326448143189458610820111176525816358697844281786359144007338952087330953570717677876994492141461351053946308464341751136555129646211279113423721963599472462774954207865247679640910213943845512998981646101807997221094006064447687761334778264184781771970552183766509545417877829787126436726841026629954543064587148789023029341786645226685875028992384775208500272136079724521412057543080704430656459366996066588754151582586668499546739609798304186995062859647771466482574636054581282197200464371846555914890620244674154289587400271886846810075756586998810064043127664631432226455501385977219207545138797636431973279409839893123392775512779377586851673420809912200366919136674495943182016641810367377356334263202433024118567876976940324896862959149200348133701422403482003634583539797918748078143778527935919923228117055083645860845177702936846631897381268585368271279300074507779720431838076743934379897782284071630429116853302814346074447693556431208218659900841627445218771353502302411822632149659614393896224577384987411853663304250102442323916785143013957525374209401122121416168325063612175879714059260489814148154624218668483474982003391617850071472672232640762872213987767775949725404034918214412836612607445570232541215671619808770810156273920214950447149335377265712725056371187582018511642383920393246086113609755869451621428873760191609285157940814553083971226695506849596494359577033371732113667885531287837427147624364805133599986862646821077295641649488214291914215995353738528700615705719633621218194739298347481685803863796641028805303403417645229693584409278032964283760433548096349090979384990410185041947941096302663199702567438398624718291804313347905348479720583248157277585834819949508609385966868619420169748573560151385966783511728971543257956063893897907540109752288384934665743286043725468897916380351019410631096061254192550740147553957366978960092427076629589678970675439407719442503169863899982245534015491979352772805148535931545178807819089323622811099162866249902804719287295092250991829291991022055054909241174581230652625361486846191962390443578196035392035295260790596472684225419480563334664118778213117265627844016178912923091260872758231825147827353176105013302909755403680852968038893719531661291764781041896028047156975298035613748318799772467394057839841931436334633238226441407720166045509953558907187988919500260101965431700827772000425898884798106983512738057152074260155644875894558514944134313854337977356052700372438719262111286380016093429676415399250582384161581934464061577146665795488400253783230337105992659848085966362057087769638572810332201395698903190171915428879362472123846416587505406188569947018643615758686648161656940993091532344428709338149457124459787709104941248627056968228176105225534497330110376229415784902459246715763797863611154323562477896768388011414177421278342746636359797003403773774756596548939436282193892223943065585599854104247220866061921604170407650025731131509980581101040929060013579202405317083375265867795607617988968313163814047213905177711474146890453284162774259162237090236012484511672393050378185077805022947798910304645975984236594613943678840085591928276188522560855387690046344831688797071917536624489377693528894088018986413496782865325516392102480433554813457543337437759613538227439824068486180170247249958228142720543471243354743922592565883259355419568050334925723455423713119371542494080400531336651973148749767116697254518905933100321455388894127848208894218180947024029744951685042826720528009220988524709967737177107121215307167430979020685416896601204839007573699719351364409289823195777920426775837335678938041545871372500786931804102412532018348076916556578000059484418479260674106021239553834471715741480415673092093137885385077279467507107919770686895183816830491024332509252327864448128485153233078762860921795540484203547612910167422568631097422432716708755426646614134880394709673555502276722537760042848070617189464666291714593827034607517748967212900128327933527732624641698903259451914780189241342044897970331549551085323035738725494056077778334406897141791223305268580914652982824290685923378091194442987302399859071403002437575302212829727398575916945883879182740004792296611343058388772612645712495696225594319606545582264030285382309801870200458642016885845903575537883103525583248755546434785225774281826416520823442619913343311669556507334077370520246977265065450387891451015182281477165792050832109838076618394495769639363249949989526311958738300101123411773915336034145194009949605555952437358291641214848634542724438636349192586964224122619216984753730504275681282851733834195742142640775341383663071153834801663383219829420929664153936864748535375568807181918887544159904516438403847508999106133337040198430718838349890090043422386201114195462396246179956412775632890837795249381223014623866735395906167319435780389816910244271082203643933051260075363974395406591445288044790995101136929021734223977635750819282208748894247323662537599597490722192923553724416396841652451315414906270958718150021095643408795719315363560074153361397792723298884519577251347681031509315219637985938430128144215190231480782579458421017308144170379574142944120515804316714420721592564262877578183653986477224867058296480217088779186213809828081353256279543577169157774495270389059531586031085269970488117316294391158467210962211772681995363679321012860528357270637428725889502505674594857519872113897518612351446836111018133379007831181587561006694239308967700637758980941644704130423561059853041246165100921523244117339673369608539746804462031674378282022290704869319967195983166418380501563023754864716613845624320537124092436651839039179083258370284977739160095545786141036786805649294487654935791607264397096651367485891834782755194237989156628907270889167171589431622716217843802946556078312699059236860922979685361895779810604037490539729188708596471288108430361898035842726019928226726943424829765712780652773569916714153758021592977421808250107006577984250595711340009865841819812611486859633593557310494552138441646405104126648561176221081276480367301080464465489894702557525779284660726779786602234440369013674633915153944946270231181610029588903118824994127994539572652383332529957553224619141517704266446806203310930297161360117454606614179865512599403783450703222703443716814309569199710096531306844787072702654976521874496089811059880402643998055852178166910450139722972755246159922503165418558674743389699250440538897357098922091519811736901299131584062841132046685279980799904942579264805506783332679072139160477080129391061413757435946063331636866932272352275612230091329312145513613675018252196428547026097970011716378376785984877348903800908699628546557252613052765989572071423009056414309916400097290933568169636556233578869636907577638223160726109471871107081958410550577464021721897609880012326537194159183141724402629260534713462250806665750960019718356485639696220469123296063511694029831489556347763035900963844862654474818799581367995399445105112766396851461555288062784454092756799861548048689749096248029681787174940491362349440983461622877338237552132606627163907417805064929546502620749919053104434206205128715223535648879689069434950913504430007848705797811541172323677716166257284943710236367167461809740311752738233427934005028174574211239708943593537950822046747042401526222542615288685828146306309864583845139261507279785071673514955439153504206838350637557237129073392554515086525622970345571151509751228890170270412767869294196579157977661954394709031526304809809937484893037794224500086399445717729546010847901583210125288375892541737296579808740444810502921215425241407272807760384638934223322579702310750572809943950632185186987567309526430136183753654616535505938348622318417478578938987192187215108660486179188472241020146953378416583053378881561539901423146276058421235548946613531414238184054544415832395273292772950716939914999999878187179539420147947330525495275947030547676010003424242561011889377304704823407423260801805836257821486916763068797338439859797819609183647415579738417725008561573261618244233561661110588702458425517741502427052865940104574928436018871710677051653262868905844489219662405214160213420800852782092915848427170927710641017265429964203270776943549907432574237424768862081046812090122917928439405445559577952443802397240832658202063219924533394712399228303736166589749029287873468000712428536055042477477220373950076706801115430521951855921933619626992232066826105189039205176631012357980332912406003743600472720693026727812142764431278149756693514811165706533829746400677579271887285158374523574050262779421201072242619277198185036553023994956852937950142263205625283998965062512025540461499451651894479012182586602814017958104791193680420688771219641266412918237824370206132026047734780338340338661583303118688229445446963758834301704262501320251229483291180565213814823575951018251438222128802204051866441109050981992777027393250215748579452404801766893670249237269623730393491892386831850684776082511515042270457107432037191338721617421890322611213675665381680733123448756958463659375613117544905248457459154684343929951967931991943848830209919455941103297791689244511227824457235774849624275233561194058428884987326642140854238048183781999075385743868287948872490903826386714350281386058736739684820208451049879122786406238486469296607724661952011324028893194083871085429859858926840628841495071977142731707438198309073148021775221090373828252718717530764509188202162457624496759649716552468186306908453798684219281021359788904932836824317516969182261274528644367489835606172270252210599824545192587834867064529506085254726351760535353022659054836370308426530329213563420216378706253311171010570376496455293743863047864813599128891000693208258501020763470774940049327075005075145057531155224301159390780309512918349728480870171192018236880745913990185903693263641105234695445189109360575597634682964609583600304323868288873597000908302370461310965227885742593663484531663821191159659265147345960922877993035412803375632080989771924691111240252941426038166613227201610750509864505578808359620098902683773335237958535778369370791621649800139778488338021612988714277995539470767112023944942836743559493079475696668565441295396203996485392956988491496982101164598024102514188982579429602481303171035921991427393202637026602225118219076255691109786935274635281939537546749383834735708374499351047513913889496837351375089313156551031821493883287161291007257969305973518425527696494355839420222995525327491961890257274226392315229514726469872600875546027689163145910843743475647930457212340869302129999253266646198544935020527806428971341594832656580701796827471736532299186807937901930843726895866638526985400712636048852850461140645237400534061056696109207002673994636896572431439148913367710717879437050998967348148944943078219331464108596113249554780508846875174276318810907587017737005481772171475162673128010809510339928616230981210120296057914093859347993060216175738729907459610484194282217217668514214183940036116312259524542842699063417147342556644223236983330042364543848569754882349638437580456303692297797247143549161920295705261358053123043436332017688462943319304234813269234956528070319385607449848212496758716826394819524553702258600974719077263750830870522403088221454566637068808019590612928466009197080936810294556835588571326782076926130559377658316745024556528148513554280494876010249539678270272099108182050503263016893302168244731422046018227101627987194242327993693130123054381246318581150361325318847786075669566755574402263625668916066146661633095181087768526221283097900550540676080004291337553435756493615472861407199037999956424555422043982713324062855274709489079089759672296612992667251652146416053312012137423840947756465117367550850790388432595138265840481414248191806425916532573768439373641271966120386907922296011070001763368944242369264437706323162026035926406984710848117916981133249302544416579072869659253119155273347157862184920842039944324235964839133164822897565626665031475625897218759622105753361244868654019192228797965051335942302684333899592222576408673500829671252618101008145631692529067639641572998727145968100325203785957696423473578248906650333081399113022447983219864439881286314333894818490015703887097098190326408071008728241266022478008061936160997382827516335844482643794462161619626980676244504743062213597379422600964974067201898494266002551656542857417368111792293853688801499013800300388467268399433756550773343456007915567235228901504116389514176958857608168832080116122525146390775737750110836128055083251129706154840008989880485295596332130929866141999181712778964418252109242519642425077475997673893330853759934931200930236768981696252139943312943354458034688867131834662393932353961776465946341992090359875955656382722893154508390508183359098595561184121042255649262906620178825044031810812650471656810055694093782844195849105774464059226070089391634511805269796141479625661070371331427162076197225372347640149551460091377002926867642677301451060480618050806693990215442035635203668694414195704237129682485635623299671607475539894458562785825567659404547962336682141011818007323092851709798098581151776724549170770561028497398775417762307402123402769331596902553291684245150183357096565759956978151894606519404103464297532876566238427450665367531113248563369085878548738406110366385632301036095390255651394372374889493939758014310956989619420703338244676621850564258672993410231393377331934899108831335501077769526161901009429054682984621874962929813564625760371962832308642187286672216929197942041904605619040659467194756591370923749428070503406968981278066555513269228814494419941659389216853774798103870874519446838361469459406903873950177777161281248449337698071152423065792342491661238240894783759341867014064750007074988155880855001949213721118093885726811637011020021209017338307046627230782413168090161771164742690832797279166851907322198667212773852790661207277617017828724362234380596247095411133810689421835062927790828681269279909165621184736924730553963617112220741822680299756674559954335518855836020751256131014388886345398097250843433237744204521639230341434406577862652621565502271779140111060035043883968914953691884265940892258921624414213212120248695069773965109791594641627563900285612645248061275744351510608373015401670040581998212607384109961910290660319200133055066499586431082885856180733204764695750431296818772464051491835838395772529042728206068185096443094530383082684408463993775852754823756424056255332450663637267343481995450477477959983229396675716852680765007249725117108818074286488887122631663341181168928785843833564301238318162906102799141741906818228342260372850434250326950753552654931775098545764759683160732534870403260725550099256914283099429887306693074942069917132666936462740595791998642530382379064620089202376511418421368670368178912421564929316390680937290563696415221858100001624959243782504470183113591209042307358915912222294230764533265500752877596258468679850386586184316025738180648079341555486151092717812690754327002425203320033535036341109863427577025104488850282881794641238658219220697250450407221305671458595065314194371582807804451375383485542954344973003101432279701081244593471539877507232228473027527492303871984013757458161573713496396147239588715124895322017399752715978516542667587777834021323560786750225260403554713817986326019697010457422858540344417605082542526994784679171330456631935312595941340777806365451353309571920110224453302952673787315382250472302138791386275202196899614991129879117685900310053603249596073614564787574175558766180255455903546359811026107607592443499347661942754855504226537657815634396767893266494496202024101765370260277768076573274569498872090791461705562148204051687123602011690923113040146042590914921392553637305770517604139244757485455966736530115985367044262759037697479829989324495735821033171273097808813429187450345067378030181059993244535695171693534326228268407889390636044134813173432107357763891498441212501094770435733273210305686942933682739607949678504457970230581773440801262579700762270536167912292249079155439906380004845909095282203585714709685335561826479573897455902290830145617080314724003933524120511522346960922295683501327783708681396739664422580336687087686712850807582562361957281575825123519100433746229322463478260244849546766974694482519180008310079006603969693385637394276873858896162435149077203083163432757238553998595690261142734839625507738538967342208933567792024876982612552566934365622426984303961554888196754200057603693254771050634957319474656531599916802312096322520005674186324081578516247505843551278616414780446785017112107766058627503503001379554509451003949247335656476880016566946465947546378985493486477408607304109927903669076112219564952326123900411635050825504182910041014567278218517145567354681639490386426305620440394481874487310402339740637553666736889858494336627404975818573446431166439108479338602630894169570290107738680940416782380991218755547088452642130823506194206161330111588004498354231585830961246827036444570998246841965860782791091395136497116417481543463947879433500142288058303611457351701942138502308768674372413411818673765359108307208939004086269630633961932558214216557913930675877036664672708564184406522660420323763636811756580236051970814872111702714079136880569593482714418402845328422090935314291627397921710545726982736549582806629441203067795855701486435867494677630466446011665426424127475565775084379342495746997066679459976232510954806928981817817819995220016908097489699297816142879800679564367746225943611122001754681912620170318984908230298058498595231938146354348464193273373969185785804494791400251542485582998005342584607783513835328326455709942676262817222886526094829181282428562311344589586994674987877299893933369115983545956646020024667975620019327063337318244444722668347969662706221853726816780100003820910463156128127731094463504533930298309144045359767221019200574144525604633850826882174647832201402261433003295747334786855296222746843742871215571291819540620944997471971795307951558754565839207116389375013778881422051641169413154750726407509993876128068099449135913004980384562303404900164806084195992535222276364623639669253790158843170217099744308273628633702756305651672396284016659886710578211766274709797586177372232215203707747494234543497770748355935373911692097159469236637747578974063883460850013346646393809684037421433380158229931585549036760181071760430800854521601467765673593107149080334252929289618644111403487134381308043097384330001257136309118269307562848165789966133090156053561770997916481350830387096803195461552261544933905636544303614760766445692444578002260803361289701931177997352216681806457851777118700833837529098429072271111039366879210365996867030350973481317754313875272480185912300610818242297107605464731565507625895798455727990465927402795249988048936941857791558845980909403286198873357780095689493617846570625003065534328947912569092063600764925368930009658162393128834934185883901311909038437952539588157311016053952687374223946811257624451677835055509474195910526752165525874207416996952234160093657342972053467388878165320516268660982852314350595514178756851175862826049330543979795610355773874114653969325023132997716087986846654020604662449533559161313605994670448216968712858946408291406167630943399294797900431573308469367973795340329829670592881542217478864093241870542985257418066616912064773413565930728934825029965697602071164135454176968519422664510322853508695221654041457524065098244084136368016546578531119710580517452803050420401124298066062749696892449808110602877786568574293778565098265366961245114728266016403557107758464817513207005914173747163821656060380012651531516597228947688225008181330429655454600628130527708180760920292266850794732969495280517682409156230430285865736596704714724976423992738365329382349231727520085588221712543766807434359810532438786454600430033215763145780006033330348400723535415016149955418682513042464429703214722377604846726613640559420574377761575823292421676550230543266657042905577349571552291949435034753870828605642096733897190594737869318988024393835125892738328993758101160358177765823844812675576904920054739318942889157121945053553947679085814124302897591467289945672014204814953890532656922493676754600368419656942557042277823497785064307392025105717677288274559556167487693741625663161275077536913829856358303001556406705864762814697154562665314562714193292583064848826991801513307360738394715867224960635334717334152957828068154614809434438187897477842906363180495627771358786037125671107325065801616185386207849967170476308994510989982031330544497320985630567535554824267648986414530892830166995602030287061307123387675649480044136992630656847119383018126020513440144552785804685042681422493767375950297084492885052620694550344985025515291723559356803013570360126998343389893562343520081811080749377813919922283406736310021838762292760969786221005359648383162647615634278801358643525901825421875221200313854652053700856377543363078658280793158041489393947191829522846270207786902663288063958035166167627223262536818456459901129644030205481520133365902561664615913601066304520881130375195114840580817535693015866420149558184917820437504507074630766278871395118413447587765258294263369584140308644055169997230664172137436432571996633702790154492029853820342823962055245713238355073140884639758666603090677335823324606212093792757380300183240390799380960759818933935284422858928532917017967225593137709568090129777323161441728811611937723761600171800854237078487765341835728115287433071562366951691626985228723442678090460165863438658975874597770201818395585333797539990180077761638492871965887304327129439562943704775952807176582629941791430267961006381531276140370541351932822657255963700763071912841899028320025872828474329282043432010948200066983369456967160276082106223057616514533080060161686659361595556000673147528169652255514679079682225106038924790628619926144687160596445317484656563316563911429878242059043460801440436347391576423169376053124442597843278762174759243925836500839956622970176852230645318426196786329467065662800051808292506921241798248326903583451216627058876933920831637429865746351493102829997987552014837614028588313720066671764218018593844216408653466484156595832038886699822463868263961517972562552678061547986981948364407775880932908502801351827824646908051719776431492715342867386030521557105779410069524817936763792910715559669522715459480726451311537553009296680910196955630940214734124023030404802505937253540136332522689002042351400217626163292735338548030188134818089266220713350491356975659035801854418793885844294657998006474693209903463417855981578081721848550968463220210388342111046262492650925190797337681955839462175723232505633140815631209057493222928927207854884519982919011641025560612937811690688354714978490211600436894320235380007730836120168244496683186509205371360077673692985570990567624217657946343828620194479289255439767683907706929221131117473724458889351140630271483499740390884652642781449966529056121976881291908611525879553460899459077413492225473622654274841833863299965381124092604279358525372603591631052395861455017274755094072461524933360076071484683736784459614309756949282269939951354623783583851554915642016710811876620251832736127096894693572952567557695309325730723010596762772780980316806451794965265296812445200438220436320056827127982959056636352449562023700244940574601836747519751916699591925250667425116789312074480240107146583528359174385837795501601573465258618238363321007479553802651419447299427534531819944281705141637028155270683251136429952180115009598395706403097294079242073737648062447707161991533298866858967276041296224778147268083634178437187623162508505084676769214010463343628498865521441177953496152524904589404132302970362614259554910803446730739089196893618968115828136964116821590963046937400526277394516211954759584484801734931754297106071984889891602737866416453759463370820501031112080735503949509974505396080523130293210427072110964306342720978705317834435674819313006772403974284694670896209907383997894647179298582984896109872202283702633153384922520064553042118102385878077263032686498578301091693939489735763780165473201508148330233033781694865465901065821795514039831969055728090277542775278418248926175032728656452198863833777865156031617434402958081969991654991458482366519210018914742109807385053665053284178490298685527320398634162622234424383540910594191103251831336592448909062429387682959548211987739714770041014374463480281906875268822857720610380565478722726067721983001182499681166253887622821806509264996457027669914336336058938953054127199037611106290200921707451188143894988094098002564822244814987327055164750239296647717987141690465964534354867400407535440479646678245077295412653381651793222601403278877411699325458144374370976140062515057339172489594453278207943825297009028807016250123690198042332871495992553957609630287599300051687981229417292373488645392696118555524366740966145939863309553701871191548925606416665620913744748330407073353540991401539007878972237398830104192307256386618112670135228748390658559759639802948848360948233131324524635918934331362433835089236422386615574746312646989126886373690294499285797045187288723910641106759571596579390634501191864311214233892048583021507927816442956894383044405652082813204119223949569339289926870857847669840314330060966157975336291065019754457069342473074662783216565720774005411942493411535834690022354439937237270410962449571255146361657807421866240072660022144372652347797887988045110448033131624350916074526611311467918147227313023130934071772270603452483002035277438080817819777326667451365482079466731627929817474885435675556100551666241898989181707009094545672807660807985281361674208584135670399576944280892417949400875110356078509112983309732902289014629081658969137469259027698394717711672564840030479291149982772520130520093667024335159756567840769619305075868431364447672934477258761294580882875649306688198744657377271243313947805070638354640110108146949221525140236213568145910401536138374977851083862679309244397009400408923994843178425791968666160684904548630242134119724613719240616475445618085206879147349174049972288589990949914474180796327686619019832117724536849829688828706855784209219838579421154361252863395624770397645825251228428693932013319962074439836415553704833003003405161506920888548374837409051247461738313524918470157014332984989940271269561905805262755269287465687742098009222622573641380139661815849147204509585867395214290385613848990614138621374620611077225021657919272261500542594985491891959000228349581246744309002565606961185789530613186406264872309364433110748179338517976269916140124584027816869434592023310802520580217943941813727371314105090772241177535356046280165296032225867830790209999093752636034259335292877884366044327743925641501534476114778747127779355557367340448836164006807110443598633905258097204404722883068935410340777121886199905820853054653688597554022473092989476221829777264882943228806229822130267857017403473025949983297364350980915073626610575688770874978041990261897698272463041175979130094541437681096350166570167883374249137614394640111720077937243439910209036643912798335218830060166949962726623241936446343349047334752035679721603534671877311430714757106521156839912920585757344689503581732713228346365707994273107206818691148968662473653124761397339969384359061042839459541834623071551734295979527424167958165997788105137792761759154099321593076305293065883482988251758771253902948595772926103590958914012399939981615030857490566256830153514420515907688780028852661056788266919448074817090062480101926871966235254748767769450212407813826929549794299572250432425146574621577181869031690362793581085336661307613851805241172823798766353370594647660874982249363332139591348690131576493996678364832432580142818246655330924234231627451881416678716275756404155688427432127981519651748007496339624565285023820802660643536585311691397590750280488146302770733668294020817442795347203399695548527795169055736879985002363127198170353985075813696178181720320827288367889769093920553149739301061045826241846391783982799031775879291464102727321098645964939971709678146286200912226653971793793575901376531158152153992144694596701105767879009145170618331227893144850262230197213502706295058254967869605234311294819714607934271738801471971905907667480083678548913903708000141903395343805698915283003260339343743702630313092832979292657122374629895332054009454783884256537455626547059084485557296982447462480763117774023053507453275408058787904416286295753906278784940304809328070250106921551599028011212653545874308949795406262847112003069313882213752160669840889055333614017881986093204560003772607972404003423639592760936039034962286177029100556502525646494214350158542332530693255745495399475600744306511201519337508765395163022665062695211243568143887685538496255476768199742725765120262622154164801975469985472946319139024586953086474456357080272069569403483209024083268576507990112344965249491681093618224018031904517346083723237406937111871010136018811760762775710178253296708221744385302480776629770318816151099523613814918780091930866383761819469625573016648646899404249044964390005469813149848152910940111102936933114962169329804360872067584009111813047464920810212360494577624209811750462141961095681777631248016680114269329772906085727094054496259869842424875988157935177537445362029059772443083247039227202979246949471391915810940162058838813528372956621187046978086936416443905667827921186902204375246367951567680718043415206154046483629918486453810992572900516645526234577034346361358228385552785071954961554953217302470261975299541352315452264621630442749555191875889551490919556431474425388689959927520649340346632175571890951734097210812472217925041007294114947481162932329650238330825974097476405858495454804419441258003838299748966156473434486827072889919814155369484610556251254871973656571009536600747752477547886931224096730455444120732705199892158308229491101853740128292242668260513744427020995107820268163820064787265471698055299631335998719275540649686862869491937815650619847327644131053799668108198445639340590124996986276775542485409589957361400084176117509787989422451528980009283906758173296494141917640777125047468144245785856196153393521229280462143564766818221114807102565755353246647186763526984794677873753128874853984174860387204506539362471889460692429930418795760394595407680187331780479194663876078006563323163021455958465615655135330093219526152612183365078665024932538699582744636239738724646107061770638317866523641712695041893240683940506799722958129720511181896463091937374641559068509671534236543993211360651689363139820409348387437043128777513906708297188970349022425075323178538865623520347649798839254730678238225434102687188160021101982315876857553558729299787424850751526324334167440003316520426606383895621940372646125340736901925199464486016982356139917490221639567753401354647342051847606674271399684715755517615968872843069083633545972306685251808062239729714604490545154082209095278130288032080357442370230740239730210537479965678436996483736288582033246162944860225358020654563144878448912634060022683689997455675979626819878410570749609183318307312476320219905742184727225775326991112729790254394933934137025135268138891804464230038100769486689144930798139838175810893725610185441962974458282681807250301887478163055645279625914378107074667539176169341567805802360064230570619156420509174186642636066667078048184604685720332588220533817113244895687682488102504442306477806444167209044074022402398066020859710030909420274738282252978952602399126159826111659599090221488357617154431418269730427708030908411280594572172277162476169719719379209220200616796382520727671083506555617837662967626409733809107870087704106406486190503373320149017102355637236851926655842174824311628427020913311103518119434604078093096166239864799420837331333162786978800003610351823393072241918537723791053052909933443991034416165187805854931734741849902629202631753639331301672638783020685617608775881857345792096433774605215304337946484522967188548210369648040435610971820442650502590126122229489550582301823638535470066875885858710064333860245309933807004295428019555990444388621926903870677310758092060724411449025650254884042555115573916912600303035977336167023799283428199951918170270586615938605638066257897457979846542447316079823588154446826936818255558110982857570170627142701383625181520224027290104998579987794148882699788458668368044448152361390361963057661962469728728535715575464541034469606979018416847260349595680575131148819852885060812327559531657725404811053173921548305314890698662729503563804504007938094503635246008081211713305419356767388959469818795541879232833340987581127061712887514204515761550977726690994535329221262052741471359070057387283133651608714334073962035926910837681519819169525961839825059593242088101385698404585860299117853616682104299340298330449950183195622862621113770846260664108772737836615167309906864516007484322728881960674093339819990536429206896851077503588399040496488717207960914768347961873981739126999508598080865069012872147554304482812268169861953214217290643388963116617262769534408008163569282849171794998203213748680230057631672206349248267392252051199582529469230478882245683162006087674882460249740294388619848546768205326407645675954633241487585729057832155596192598090703118041393365042429461120308902858938825041985874650311752302147441491598974648843590636926760654427090727156441532121600880106597638774618817252563551265553706317182932347636571911347102794232783423468118184435957340929899108937779986701381524831138677590629298759940204663426737649487198146072538860035587758172148635821341008449113115453400058859087076417852377024223967094842884283062296881262779301277007022585795108278729127525405887931148501434844546369912675950066450784788056626264800360085371310034175113463664670219124017966008672558194795667618820061678013632230969812925828592060463035976710946483071249887797953330115611039819468907762166808612800639387985310393270448069879669208141710255274709202564299693332884242748259569357134574077407025572893860669456224076362459520521994976143073807954720506789284524411868495356769721541081476915131047358706911032556748269735900516839867035632974805088008097942998843395773444154720998316336878090320032081019439284822496268331249027298696497235950395223065398636895587670033438889819233599829957859522026365974945498248938404837973229860020391154187089026853718553441926922130696040254164175070619868307564817417881505975025368112943183742274896710359976496175434474785328386302825491806169974722150872445502317910372560053076088906231046051396523505008259052103166371094315905235830743567548053056516223393934755402864643251463531437318762103508031380965191920906271929697934983818306409433564161987794357715695190379953107999365617380418783511209707487302038193838038729077484517768295073741354338058265096252789025114663519212050160970114986072403814630542378399087153305731621129833534724662465191205311340181560254096619947839573689411692420288445864279870901956370538495638503813253781639993637213426802103057368270892531829284585165574513881579498868686728242947569574458543326061957690866912289204017662480499660078271543394047722999110144068808125789002431991871508670269351070412308610813948294516079046568612099965665388938977222425265577821871339847634742123907521756982195052921267874369695616851344300292188942922625247892351086900217450712446148515291765060798442403354149800714583791748172423564471336858320708065118998929684079381324581572390623292237509762461264994701691258877775902148352715517210899338692974726750513668895959040990051652115703167276414790137756666051757551008465156757673087829702830515255171612617218520357890794325725404663721489196541857779556176234091731376253537692395443930607752644192997100735705519865204528869792272843398572759809317520852896127786210388545788736425722104225645321777470575767130273150880298429829942684733366566690709613372168718925224294349524747771227139043676119397825554724483979190225436959041912877405504507304907416665985226578956159522059109456568428254592751102338646237478741399506560093033596417618786606859258130195115991224980614655149852931767880816188912975545567880397116734008654117414140602457912577673735493810312470290714037825150718077379563645553360098528082830697596020528190505755902241718569465352726416929358315537756496065328701793157499171488086897028776609374912428106348835907898457657658212392982642723628991104871228489322093691550472799789035176865516720524319639309334718691568117134638291826856653817404460633640232996392916838293417047201728609726332431603347016018796447028420649784937867589697270162711351671247162854232467084460811344301681861631569250471139315438781488038618255216347069894928688204271586319983286396213675498157395675483851800476418801234861551649047512068510468446491700646532144122777072538930246469448319588688979849336517669803593508858337838644107492350256975745650238618851893678570091241491195858075435891007891936932685211896096752909310123589695985489896714880522399554070052142780438017212515585862497755755841740546415349181460818164693868716559877866163725941449125215278215140506023275817001537226557217476233709736801826028405132935385448234853564269176265991625198013578187452743096910018198965554037040021373984083821805574919877270401493472864495591990317463504784320877993609236337570492115319565091150080690846658668474942215729228052649273443815924029358587980144115697452256976391656930092512940178581582525803241444531302482593227772165139417906570130799305383204361232739440558366323077455510637859466019409107837336619096233808182388782956466507531427014706912211445640275328739484541342776023984235723837342920992846167782824540238907317431264309433927892787151019784621159117934028840942699670244135039220594192285323619273121056133119390062265283833497102706615774883925994433585595206256350251630517519893802961089794853069436040044534750267510992734396647887886084366068919891405851141372677282338027905092988561991281167948429522035248330832805679635881592635434012762906907125179578610789496960397149994483910096771593382473316883873243930929690245021144709785804718438922421725043433719762381633938251098260376598894650945766750023129865708962552174003980558427459092167249596492618818556649134819192124732198957073471732359349871189901622508057001906583857495435166718208595684170797742792630212814253280559351959448105263877234906874357279064320575523382945966990174423703055196148195824207353045166533312860792226361453559229322093884775241403153756516369515175220354245795622244189791166658984063920302137856108236043082317129301770345331011757385212862718878578315642061900830300568363522921395967779044836174234481431497882821218988645795286683334451878542433731750235860744051242595315910459672656782667515384074448305172715441413218237003507749347624684573220098867551072524363700229032329560405919223246958066463753569871713286919493972552900515512638613535223033750287261385423628430668741227791132480575610927619211909752120524402662580154183530665643840537465266866079659022217546382142620168464812677478901332029707645780618011274254229048233069740181742169489060028506190961104407236528123218182291310563860201578478096387730101859464688752900851448627723245598810344003051133115483028901704209448279308635720486940833217465854408162436591814389262344073930320012477111645475660218208517233633325174238390040345900510323554112296052167261586265746997034912469106528035019238029122854145337997888127370855430650830001133123502990039654789909529313310368609962890770643788236311840511980082714926546613835448691456008240269450956614495707210962696227960885281129382839029716753333332781237254935719049178689219754688095007606991255166631482534295800036268504894406579365298056807197704326174518411242041126088757461907961466169177780682578948150749343033361323577525663204015009067001653174634656053683548712459412379133452061178247713389736692031216435273753222675054375638160873388392172017114618763295218299634084509302612340272114582386058516057024218928248689143781015521870217445901448210726797147622805884770530684638080725658670333905496136807275825593923961963110063514763179372253696468551207718807206416735788845428652086878599711666966947959283922642207517060193466218277197209708348487032434295901645979121232635407459075218714863203679720023996545874376423219256886259533310341703416003663523743525465452643185032105039297555737883329195166676944403157265403774341685852847175843731694553702827812254250476921474947345609143039787915395384313020408434231543692375040305336004017181800953453120682487184877511792821541171762897126595345915675869108280486390245046064190259382452659834696886127791581312521765302389780674200607224407286377894327406504475871708446036186791809449645096816082713407468798390919503895139397712728559072149209045015877063646525302908564157046723924410472888749795397415570404640082802461651710046246472400592023198212207958956880463147698791152624830416122395215271395410186845256158302339860174188678247797420638764144928691343981363977578328488652721163762773517101960424276635902649457955886279446561188747900746951506525594949854288873325579296207126782720996275173126267782629972674715217243759646391923340584965130484277081547819876182844748062186713290769206759392854474397413205030900044392024752747768376846618471662241015833981337561699678238288191876645658747560052366260001747405060896549573703728980549098906771052173510850966879255912967194991559984355909191652369993888783663014268018001369228744344503788187467255418721340604732616702728445408261308197925383464488858059186869128698368891677080926576040862626570057281282537078487164458396312880538264999893588638827004443102793653974828186667665498504099277327495448294673976380652901820633222003665987188173690879965601724354248550948412490822630686385628120730975021798721170942462416952412839727349628784866507647976037544479121682771129778724103762776054406818653335587780089076067473349048784565168936719983415998049205141340022226257734677780183866886673144576156156459011019922329432612452235226851894378803140977434458578383922755651586990822664691149816731716254895576387751830685070353097679628515832675433585990534758112288931301029092380253996173397861736327671285148657319048373067319612156977833182848514286637292724708680471788005752098377047084371394370941837049112278350808632234535796089333373865718795327186226342924128258522219463767249754243717649950688634015093602552533651450360615506343325794272987604086088636134990586664430138133967696028827247933664815337926429490736408151458910117718712713448400362619152808396108128990662908833059634711103076095735066307127054838593263498598204217005444332394820879033280683899412640887244783845553119439449012136281260850192768912105043261837091521054733894353473965348507072063192886371894562624169893358439278778632047499259262861993412455469653986530379414527492514127547126762503306659854001061073842431117279852309849385881784722478248142148646835270456393931012543000631902499714434963458129526884683665452285888219879050725603561629990629399643314678085756054145138604725723389513378243663227507975420033639316961437968625925765990990559422270765309327951594081922515342435705470605714683236593126211962370843868204525545383973584895473773624323627122602113928744395317141944657084739876391117487248483737715794941620422441376228548841054690638766585559131338717123689696755687473985203981686286859236105541283084634737600052224751404755470231278090646635326585339239138699381125461277368591094715408284567900505270033775681977059455158066528349355801493528017249371018388794832859912100530295344867875579077398284661445158669927934978163633578832100720083236271056800698969951312394739165205314518482249794729661008718968483010674587266441693094544127458702239666683391799900484024012043983158416603651207436240319219052579823701289674480236776871280208150378570706615406063503396934292291209901967559507711230792217718900817008154431592271941369615481572012693583042225564015439609075468471135043738710257174076943106012178900916475297721054148082411244483384916978669807714448411075982935119214482029652518949699755562268678612746367712771924447891195379051896987280504990431838517567587270237986527749110193511854444985358982558525814418159154238800558586597992178034568863737899783885403761382928904128108759061495661998864633929606511861147780415212300602452293538264194385335228991372147279481383667364498467094580031717219181411557858862485971681078280351732630342208381497906714976958756499687993331662178347799342726255429838874945121872413910066108907056282990530534761833875832562566745588826702068982395394085244394063534045045849864623552260350779623877433445909296459406987239834039676805341275959029481412961494478699286268228182904888243039199637281936674465799327419925867839199907658712404052825987559225849210845334489201073406604379399519122067742851027662841875807071661818860611432321521552121443283645238694653375079805998764675814317441616146827407068118929949765978073596552863523078325461958596241538871948588220664017587203573962875410154211194604980758344843282493979920132638361128190284491014092329553284425204720013441022421079804663261082185433531029479690158187013931970333482428592328526771599411159155217928864049727176292593638422446683594967343723182083021202429291304423208649904812580808776791820393262318092721355700236865473916543297612184301626777418545673187052448077652383660312379685739586360956953377628618018788333775762955182105865177223826110803195379061536177148088707575262827089228605764398003451963613268337646405308954176325761151409885756681339125735649124664079885969361375258946255311043877987096343627908316699293892536443138611661879351317155701279610259798741261727226730472941466138503893842346229864497589189898016031511100413852059315037837059158012202092867249609664571850266602573661261150614722544791074848386438853882893719374847228575358036659983680090529233018055286808216293241780228867295907981428346989676536496372446808529993173682069565239081880296321473352538936490896469695586144337653752273485345965881834209165932655660227652666362125319318174730072187710593183964915407129469560979600973593542628726577502360191571865537277232388615622962301188212303127282785234139871178113198918741165824543040127945748692452203662541355346503542546359405963145525170364356100867159781311143631213069868266601216690528376145333998885004188423626319006932732827689553881030956873423360380911772463508429445918470599857191817959275768861096262851128481164577085562989167854674967180669556965391450556274612296368820111662618263005336589377026373314742620592837590911884376110981405773392461841813101153289125178510954575574993192671096799291284804333310791309776004586097367229573911193576709174286752453462126174731986678647293056915963231960488460938891908117353345143523129052591578607150488234621420422250018103401135573663896795724488423898858535489738195968884253664534902215295671900582318169775055421485639940290495679183170246418915423106446795135075498290147487015011151790222759409628599070010488533999667442164978895230883347057622068888519381003949974078591772919673383909192873723369040770086594187194355540967629879619340065436700426789306968297656949734528399924323405353629536157009759935696023726425872640312461913717778937273487899742391073700137531542820043750449568723368255616428002072944799347006906546923681099483357964442637930299185414246179893762839856442699198950793582073367949483785417839756085626774344284162528676167708398535851316821012821762978320963885821613567983624456318153576691402315986216655114003388419246050934619627227081157678067846744110983125001229948981976189211358903694698395507922255516591670296025597085865902415577293468809435820977676062095614559983375577381370212809937129001792169035343504800766883938895714787161763723487687541830900826019861692745341010783099175494569435432090052550945375328784217616286823542225750217291647589642884566303683905039214007300703478968353153507188900908072506914919333236917297311315592145414350919905012285890687281824155702913039505157255690931584644540033553715925608876394859104687788147125992745344285288500599466287949214039615939477453395011202154071904370291707969425503711938269579738153733786063597960345445982591413569654253959916342478016785016923615074767637718379750028408926783490999353404334829430445690252655621655208278544910090096748067397666966456949260140910528793710505625671461717886254289499840171458961739263546498189464002345262277795476214720413492895965696016486417120450400205354085907009441777338722218794498617914582710882830737821759757483084296193632573559040544651052749097203670295257612262977411774841360549338864191109866562250780073420744402936914179623507425496482668246613210338757651332048191167040634864646410105901813489973219019873673717284346808904530255547951510812926355761156978966787652789656186466294709901040809714894375795503156515587821746982178638359444055590075569770232960777800288970799948737045169862371253947352151316547740556517852913314079816990373668239515306085696253039446039455638787709198196747968793758275322779918285670958854502104959523661393089517694226530114552415877180993202231418899798515504787576548813141350271623586882217297378754153043385927929278324243399973114062141224492792801962513880034372518841680655632319885404251176633132534564344555269281512254422604019257820616827985613694460077501648906029333269976583611104123355120013754017954667549094974685629860693612863135372714432175266198336612443203012490645574454947098788366409011404537515574275379393446314290108087345459082152996599223927469934692752114477311655054389046804654779271163413855225804388899061712724271171805164668511001438685135846167679986328732054264890835997956634596137876074298654828571320621906185001203057993282566911285486415970045120205847986785991721687822518398328421137344789862462201683846170270614438472093602334089790493444785088459780984491392176617078701242352496435220563174205599588383111282366452256304188705456752316808766296217775854925631968378437666791101004453156234905202539824010869302252386901788957910686244725864402580730476663722775227227852345565549167245134366863635330937721262773344111782330540085100801485190232485820875086433574565238487678902852467389736736136705181805928861400258444525582232298656315266469045578612222827129220512792373514030104904551635679013615070578327053194341763262173947081383433855684978925216751629145772545760291724177743394900236327645183723668769138347639956749950336742540758694152342585903260615648798604264680769837528172142329598775040564903111712839937348097753324159647263723196727358655794034588182480229244671525082320411759227979611696910222190399662619599189546181546248516703834676711609575877125870947858986525338351053226051314224509069098491447744640156373902428365289173841756370053788512975668881685622914001673147783996075984767715692649955952199816963150654826318945380505210967948754570273358352180564161007305988469167008639789624092944505782944261987345667002682485205360492514132297394686846052630450343717099734147535175987907361279047323338870362176551034851903108580195331646307295230237950284868247386936772662617062308000243870898002866532631062637052828319570542356552300347321689056075807697494351921451893065898893922887931457452784979920526213555713964341334584491038773128905236244141328668591875262040104933476485416263974771954007302698084285704031630299188411807312925430778323915205247445994285223437582612922452984599002066358092161066132915793948292813243041835217556033908022402120013355187683229981165736125964457172275754045119100727131251890737078221919811277957986476288841213955338582831654779913600294106398495471873350668550987961247226688296308039200574178810707378953079828680423857768824043639634010195545874771960081861529787433354899031943281353491684868830147929112158984496592326665000175934644360862818531295973526108016150632664236135343587428303251675763549224174525095173619106854813423663403043061890020963614866875043854424106410282233131411590842295520904196805103132058590480908437453543130875016421083994903824361109317952594379153947768451336634703880301929236898315276246171171972361553497897945260126741982051941602968444930372186260133964017554094225885436308938139627486623626392327229604441548081956514193469260767845541794692729328925667770247134695563587808911192296536867485198954517493521192424629474201243196158392755301852092620388356722766979910917510703009661143257668999068480590618537071821788561389242416705541785331369443042014399349900479193269699635344261502877365535567924764300686905893491904455690021869988126140910959173695802111730313599457832013487622389206523679463657203052511683365882457524454657284727120014050805782717970975902610516534826733338532846233100778167269030730159584035833972158891914964850944336399445571319161487143059164355870586580199811023708985384120336629143689012623534415451762994885927872574255861568563914246261407642050181716862173811265240588935379855912554923819262092795442468860067729328936294212544594765147355783563229742338213093782734667394128782115393629151968098454524953840621274500418716642266117821694767384838039381491677107736496293443199378422176064509076778322249857236423945016239491716479434845661723479877175645608722202418214262489395931869093172563943895634652912035064971347598194770652567462720099684437633397504716116937173155635527693190656268966628867333076466955893493072199924408675736531809629483185313764261977612836592798197050048744172902961231377447703328045138217077317126991831522249747074239793375358575145654998333832388138718679860691895559026598908225458666445773234997335545013951922891943154728592284778297131723573475455732410385998305431806390242501132422071249964154434842306473766715125703519072333429088034544119818115694790574015440567459854512796934889281923689546842076760338148014418544119051549120209960512305108575688402844105330180467418833099129613523445899331597398524254797940047448541628826039113715388483817939668850615304464863929072154000259401106379550774258017386270511166019475957619978293705322582875020755077186242225403092843688590705888441873024687776363694813711849096349403402587021804497464161627704501169751093799992098039520112861324322458041308893480995574011679509507058495435317440226996359025672735775527566180473526031635677628545568392900289309584398618657449050932601830359434318494751329905662938162351519090907830512946952339355118762383927950736324370172002846493561724019809198886840124839166899861494985611988477598148559997091584911830747981026401372790124235536253107200115597433868232669071419698081718807426953151051325181919554853222348220051183833004557102623387690616397900804583203831511560182144616487607014606772829574997131857723825427805670494686639803509734712743992103687005606325508246371798342286219339514600979608057082307249745939522329364138024671205619739006116448777028774712762835993296929411892896956007922461295749909873786234002039330267830196185994853827456154819178576532772064687794824468687874825235029182277482556524600380386908932356162497224174110285045616857549232948331882315298619732519121562041638176609879534677518101482732268171119917004587349779029321079517746273307033474935914110311570943937225734117447295302804646019551217570984257909198806714876717160473983269889457734480361698038844631114738132742653449736202290841404580255181277162799763515442103677349332585789292143951942177285813635266090287248779394742342027067310908258337774543645509433139493416981982560690147433117393440617723051181980558949512923531001120790275493492953090157705833887894306414749628722961521967746439383772502412115362337366441101818513712582542741939941862418168064310419607715010096261443602055713691360910421156393884987167731492412096487668600534415233433377207528261099276072769003909774438251878034030337314437788926836923501046108285117455701828517903595610873207249245540406975651329790262731142899651934059419350913788322018640131836340366712636620274330285835805780847425236841178196602465141650237179878960819592102817109906056422573705708289688610667932176899966801198570411039175515582939978439833640217701562174992261310810795375598067138027871623560117669624345065051543366939021474128753793569790429960363997266893529037693210656940472069019468642985113802808655688651356338874854390721256736815573970742378897238302232735100478693873078030150795636976886806203135255671480665356773366745426303638057349493262348724546571735060591845395109870281243792655836047443703364205820704781336967915754997530470093663523406463760847357581559665338191405912477202328129902661472743868213495310819700591598203892093785261396850049269082841154011279686540540599276703171357119996198777023621909021118095167236317813514001444132183756176982819538453489085422058551684151501991197566941318309118685720638566627010164080992839144237362977966686796905491688293637818724947602821829623294012252902738565690825588938095217488292915342245578244097038894083604904012921778897660709378496984203561573809111439092123224214934210999555414864971349670915294406556887178200053882024628339703692938852350647358767580504663580030014157549727019133503429100333950511429268531011019417958931080607865470172921371327958366860956160306682822833319185664978915452266181679232267350775127675533140253362160505008374875477115778757483589160735268366833851639189241311484078484447134583446020422504696422749546348802072871348216484438886609325531247251222714967035285199021144050936818398894760308203809974150079011343351746021597936265134413946294350721394528329497463200932839153119405671219570836386837473511631689264867466743756233165268557705051481264953661495573902462020326487530688464496008833702891560722219420983288330557157660347867402098770681578976390874773510290950154545844416600383495703087815575712252948346278349665308995012117331923008033703477382093389992767618286302629237211927854735231238330461903320719954051169951636055893219222516746138937888880508530921104428647608796586055132108226857599123306184675307355918155959434674203385207194525961539740073740465878703325640949767937970551440848583746985866802508180544307519030713109696583574795707124938107879447789879716347028040767016461499087594267054845995377618476692339993282285567758117546915493290165301231124281340441217376946280955525838751728974529994512672675337656427323222413015348546678165885089162905298307246825850181429461570658814770474799252862860323378703431746646343943493852458694283067099054421493669679216068230867633306430949140894535422309926531560447252015910608855409403758627276385497806282791635034931682457528682199749139870045646217610412864775114597386734219545531713513206584220243291770413393464356608882498202054741256355918407855055332442851436509074964977077509527995860700972668001124964172668840868651923184672996753790030920720679384450185218235720832821247243983086451426603840844161137933255765553562889858095163782397162979493555415022094246956794293503491042044597710979955984350230364208668539376069217103600184824086322415927915680024524505022337247325687911066956315480749386211512360432485021617642915807103340145724668841126900552257570823131128844084441651365489153543540986251728834855989778723851457306444910916251486832412729542552557737899243522451573294854435773411721557904415202681488818542458831801471907016312450579881357595622282928440354908349169501525786445074527428046447813973275837639134551796139713252237915056808256028403933500781628333680256897733329560819254715757624999750879548210112416455508247305942159695643046260186276096477269380738965284710828942348463614477796475442310984206667884035688289768846156469600491895971851741085120794175389983469082590163970482145859490132107996779616398645951016420085096124418141762160034143031912671797718340704468566747783297912388527409403465499665723521700751172386835005783721349082871648974268604572740807387746198347772995027252091064696327453551254187970502416787188400121846125066044802974102114886130496622659125780818241875183302541534116472608888514845879277294092329994743574446411629552522300580843945575513390794635585297840046650948774110041957227823002369303119652191473091061979126875947101965905005106946058039053931210501231298053252060027673977735118716038435548917880150582575251971354022243917071496928613638751344439665382896672754433360499476982688759859778033623509501973711646210425994315833628183126934445557821295840788586561451987718681479927278995805014367790343759256856870405621623088376553433003374372823444247558102298315703916342197994309850679362327383804992658003379810262880014676587014409251823643804155372767294650930326142994387126629792250219979097758307545563377990591746467401483407077960639228275143314933951161311284151704369469213096917990335186354262941270601942260749538424165258047042922110682321778215428432693235881550538780905886785957157060426132253428173399129450733943240981420439248091394960223558140821052029067660248880533172801944177811529845302041886735832389459878795685556834809355453209446391902837636236055931353311651722709824760143610744601607266952961023290038229477424057978259617505408066817116693591880127520469723448933534684889746700641610551415507056398494198992651583609317936309091352373158672285368905127126813129976955220709742554741443587414443344669146396621724625179309115909208962167856909424638312713104109817918471555930115367549635040771793931904690411823170981631346446773789718113945255074848179531985105203634068253800418982280760494872294219516775233167845795292521430833976878400631940696557673452247314966336559541347458847314089869666282133038210062076496669692932981096103189919977423289463947076386817716217010105045395570712463869382938620647115846831823443774088861153737495427074336132744449358149783207035809696322204902628745175092768069657645685754537772128858433051724394081084349214228332527936920948164818245430409629641654833084874660211451180726710245252990441720391444831635256009599309628439383010699302106928353923606086735887010326957720389258661290714638921657367833880748601134649364923135752220573645318999131271294181208803594454321275402828350987220217078236540083467903865426416870325680272861496951809220212488616487418957032420590007198252363974858126837004837362510221223783510445119439896798483332768640280203065531805817512657084717999666225308973983928196541240288609690350888158128932290341917160304885956222784539358093367824245820341710911795485812705482280682138018898787745083831528346126739499977961191349392949692266666888598412249820871891119945981639988807093770276071126659019387892986741263747744951800058271675075262782624552926541191800711294617788171692768723865801530979935726324397803517828954260611778998890058785960869774900777270011528780509483337342195579982706211565547731452662149375787816596997730896384964808619353257631069521301440614555686282106562079506496750960084662516441492135685938662956096853821648276848667170161357435488719912043367343866422751012206676657227117439291613472377303135617728350018246458048089530949586276965278540748793133089381747298943459017580863766027641256223211547104497384081814441604417325944987680282753401849604519650251694402589397021874493347569191867481913476882526006278075043778100305439680289346096014278232680136555026066197033788749924233888165449407521503615944149668240177727396589865686005700947298842377108144174183712848640734282954766707180317825922455679664344093864841688583003540241091998443793529008357730343768952138930151016342981778114038057017116290364740181822818808869275168148514490048926966357077571456021246850066294787083547784244512191018320592703184384470478300866296257202789582007510020468411381991039304390280969377116480640056563947789233745033519204959456258725352984072861776060184425668312828827307646009040747633816773504392213856870878546094643035706927694118721110597205899029223225051549816868636294426693733559521720206323518924587637268573749412196449913148217408409865944354398379537489943618545521820683864588625324556866284804983104855895789300966573017032751319238361042727162231462842603925883610011522533688512269943860874199265099755866266526350299878219613554410492898190954008695152704139918229677439111604400443515612730956771237119348241714177134161824659189025442841813989321866863249725838847312415592652170342439713693281019576635997576100194162016708014759101084513010096353436587925241846368726563097697399184613577210005081920521108460222330310328699996492162377020711963770600991723045528522519984002657141026440697190708790628827729770553125114561708848803876253303633859220916923073567122583862185214007139717880344201787809173531546978830771415176417279167144378961872339672403320197721644814214956519704245241129525689759671524258823191645093770283503883120220774466821189770735013228033816735433237649836040932006277653130513434321312174584930107795315766287645034174088932932770789026910799805854753806478150873494883978297144254649045778811346888665217686187674133894027177331945669994705363045036903527162164158848190180179636573396528648513933869113559032835272778539279591318644854201022787262750638615987859623776555437905983359396400286045703592953159330646975864354315880006125735619264929167645330856952355024772263989258897418807072929163545124298522492990084317863365003834194180941370095722463886990525430307099064019576470689749119177579257657947940622825696190349500458260958545524501617064350628377360323340738164045601808064564425943366210556798945934890366645638361043633550108140250208097418296831916608583725587068187349321959319113059884581576702377711088416896627913300252383660690870445687361522030356774162553604112166228505777781680558334874031843568306345890162417753852420607287370293010155453620880982656631125210138347577745525378142078647837825168725904906741788439778647211521353501587312304936298525978539854337382900858329167838242506849553055136353065172211809310340743685927085756411593007540667268167308320520726038360672035544403193416789054672635621253919950785132262060837990110237768675235085063146859923233934416269751863649739110458796434521969787885136842921742616610612579993068642531691673239021222009077927789608359522071353068067858448260660399467511515725554862464038323400555558102857412114013472017925899136407300758786799594797468460866198677124102012294366005931083792794306008142369911574905444425187052008922798842504860785220828607041942691281230773104671546206255674661745933022672201304307518602560520626257476586342991926218215096033620879927670123551720818934856103846154314962311204285846610888322418315950119882882429648986263145759562545816990417747513906669119775971385074800005774462475959419900120507986448022368617433454243644463443276235469388838304111653574910706200502483012094769295732683561218497138493939915851772323614960217215001037315018445167842645036179511996339057227969451077085768305119872588103258023692945645770324779552727826813131255657085539142111674920302416696568291725993644994925941269503569701227784708520913973373593979916960243134604354722528111799044944879694410477723775093953912035440581573131482339966734590815032074966190197866002613107729317352641423670050756300325741218444183650986950620476120546476126460406708135740288747474033186014202850317399644828628233366189480497184446690488897661024824814731697076997608670795395442591448100794957314569611736372371744953409617071866102975680419822065381871634006230602055148806977447453345539310640024593042771587509863405350458374668581657393732173637605200690545644044141053490816422435908493763322509387516083600147516370772444576176049956588831152041123483032610324175724813762091125803943650244164209523244855825712917878157501526611605469008466871532720343807407963410523210212217923376090559974754582694354291237675208701900620139471728038741017624848832052449034268068642361905588124933748065968606195736049972284029056516842193738806643926175089082973326193977415058139309560435206815718474275358329686717145465982241745524256791396384301619206386482405656135487472869323611889800179090100132954433135347903443522617264798805971032013971212782075780359099119429866293032744601637647233648428603188379937829553573149311823860659669592975592701606963374132274731413302243805336072396597836234271828473124256427260396717476361611349813335392760251917074952400418508206719146820619548572652600873752489068728491545851199345470575811925409558416249236038952713397703196372082514297820304085575740740176948070383546448222568933653753437976426903141150328166201312513473285091163973308676849224549297087165229633161106998268862973267878891660685954770616922051390119045096410614100237494611778815021629031835041496192140171122896229221489335300984736513520712524133776419927121686067822141427729253012323473506346241096072018598852808003262476988033479337124166252156465795393664183601526946766088086815695130013393908689977339821867268675333792259657166543503910601245241753322794328547540215996034544418817820616091781669459277516302005688373684915083902587643950599299437986995006468722294156543566684083776049183960979970700482718860178306658309715800593168761918693529346156426799087877459070791616797145322246333207501133342318913945628625555555255937487434066281259993416327214167433735938887540453046766817801549964013933703762860314752635169843842520759831889661130441154984228020818047304871245112381497701720162674337670019039658567348171364155397472439641189038440988516964414879031851128867002414373306340935567996039728496773333867917094564710173410654803010016677112018347279681910673957677402442343241417960940337214632830457638975740721585139553426046163639573943899607547516511773666903689836305808493627745106370738942092006868082246991043620793127382583197712294116229417250571953099105759193713349891073056912520831553062329033792873799530694165891959107896114279971391152316995179456817856568503408488511585911072894459232253368083161082508888718000715296583385236880643497123275359360831332631254813699376854188635127484957932301342894753639142479023882349488381092661266914483367660624236221147008157149747795053680406570644513168769724080502756107659220597761526324797292105448752701021817228643805824987202909662396292020807359725500456201142994384184790107753300320075624000761461948732796962557639800961678756161284495993423719621180765274358211579181091554118032198768424858309837440101726122402805107932654051593657694043571061221496902908105996769965404561698877143494943813808976279786741546852709133567449071345397438679563607230696054221141177642005554174644523369007533398809098159154057385040967439844765644737120372448634861841353361458741801181403715728007901872690014704843808583653394077879525300230851119870162569325586572038479339890788460141056408562660500284285930053862956703767344831243693063756692642872320979507354697299373858547400930467579763017878658724484419499042098764302569426954439110972845985423944333092966063067798535263433077931604411336567574425817387673847228947380759955598226422327884459692879105517423610791775849317555531584636153477168356862486676984513455102707872113128106649877126948283680374082435296858975983666117037088492886468553491810635233010814481504534408882481496589778627974863470131242894063624226920589953697488653098631048476069517002682232953203112135487769303272293976023491261819598199641568170874420262204127343053475248371678164281389807497328124480961346894957731850529247071575358487831215997410489129844373544444453830234893621007123081491036800614486868372406667371049471450065368906013175689118142635382655023220746112115565607661725543614604607475862184064963087732516168192476857965564539693160231147364135952138992124330130581764499966991849529844783607610929778076234056326019947187244689206216552826008704826529696839658581617108784484932859115279817854935853966386203518241124242423318900279174118270638174104116084206519369417843956645444620496816252455712905571970614113128315521761058162097952177273025668795410445829547019449947447388534282016876685720521336561358516671236175240128896900418447653355789096683239761392968285256551985496986351392370516764857645372925244881739501017034999861375614396922238594097225338760379959111656181526657831581163187543406478050618273011703815267186603920993215787118922292919267079339604834022081868885051053362853917385194247788391925636345525141590593034107059397669932664429135725718121677842710075500611360604441031804788830141576712384097403732214344793290425092441745395512646642806105583270615580666794731447214018423098530319593206357383470859317962307803968477197593992150031396706672790181363166499250972965290667744829702786846415289396859923738156955591687274363848998896327348276664551492435657108596147684385202342283090326150402746624214766384299683676858964720858107139022255509937624896017052907396605513537139180209337137822584647617723593899982216292953482443643074029428697123211224087731167901824755852000707225304988605775329086462806043762368924963255722680635695836945694404598163372814186532712854337984026453988639341861864285851875515333304888207439366087673271236608218234383812132391654448993328360678015983202354442263824144655831751859139705115836233158147705651527080453673617727640826164229678126802523711190303223306897811608067357868431755207160589775452245009370738424021107498961970306283495499225042998908969611423591987428841009208545602112737994093399960256951432883924698862846475428362354994421256023777735248759020809163138832919095833730823998404743451715346023977261411494906526714370003339316994076462481698219967727428746841428763656865811744434852033507820837759899214232018844852707843648464054819030370856198164008982517448186990835836846539077082100729285513137254710060371598200114010084606150977735029060226346316379453332980530311659371074704680173687688418039249371254269823997296667714615062536616991717037627067757172185992539791772962212333513182676016944012124601037658902767636102978650167923817517107419603221532773714104653109783807439951583528938832366665513636877410381487587486129660849072254834178353567563571434481873491768661325834373654496707261323302659619935296201328985284715472219137373128758106239138299261092431437529559348522811576197590220688553587775430619453020276019644426091250858600793075906934541654920643111343068657531929491393181309368386380617415381043217412917826557703066273557975816524842979130982544629037496602325120253249450547209570349991060886266760586796880376564397562084956839549000121370816510154907506766889269532675165156959222132928031730561486427979668463440143069864472138155578987835831074049538488629410611465165113121803088204870729275082181223590424177644561143426778826433027277848213095408616307297903803898276268681084316977186259959227051347449622193283006776888777982970177475181578671391307289245171554876212900145723551821864828833405935388619064738538425361047458635986155265479546715687287123918173913725997514690009005966974036488991949715111487777618670975862145803164094026735266721291969709864090985790908905592743913536782259730103817165843341343893141871088470336004104776363613982675617307858586093716122659935486520747331197720605769754898619619180785158428321666707486590661316414134350952775822146121961288771340175512188665130127082650814977605337092667201194899976687527527263619283377030676174487686206470876008280036333982258177754801281724033766892409633065141072553501628104263717378265221596945272674469938921799297848243583022621700664285999429908383835059715824263110832093953631639846536854953617233869946643791139210864087089318356294961202146948030689321081947832679299874042996322375647353131767178957458003789244531512375179186974685388029620020268069417096089003382794211410218304147304434808211973747438948203945266727862965795341099294938268512876056859194816955214310603661162488175089457747419365657246622179960864268455362660644933748041853179263579031479181527045778256729552465081402008047014433143602032669186911188702982207664636586093562244267507173105751031684286196588801997039462080217153313220713694914592037534537631791236373743755196505696340079161583578988961458155348862930560797427144711919247801893341412607529412196022873227096562227499867141417301093778194593273029446059211605342350322611073591083423337399220028112026441276760586020613108874738675089348814068215094027246309040441469820097579478282389985921269264024668227013079471754027138326927888635779769422007361063870451216502333106097204853430412077331426049550892243568795227547923196904877924406167812865151216969607498933864814938680127794280982986793292425434110049455777852664027226348272224073803688195701784935497190874278824545480946318216819962103062705465346894998236842306347046685109549472760011667123682973706487355685198931055410537050670344161217886140799052796022692883714720112532225705103288580359325460917483961179787810395141288204491178642352015171924308443673864306342180011027529185149076704497085658336578176417973629792793845253810041315167016118372410795906751242228790953719077523871152002763883178008740166240558166534543863961199540298700521084827792035474501090193958893584303937489706051080525575865231678613185944762671520965843216808172729870094682037261950304463932277576234725671127084329841840648317785559641544670282406175996843030789998991099333846030347307139445412579816369021723160785107216830366714833502550210140558342223786638608614952846623901338950691737498791390022489839052675422233993433603476543100549791574368282943771792957505511233792128360459040133421459420778473458400085193135932934904089700145201174990447092567783077902549403603393448943103900735388864774345693428020422728746757033548369038150525229084257007981695898249885630060494906965081441078540615348370652367908413381117542494539005998484221984851475889210674472664425778799585631866565788894186050046692903151030142355113325712241259863221080953782922540641074477475263996628010412820559409983607008152926926231674410566165790235178433528828341947082712652156794594678585799785474430229817152320492643223312339360575036697876440780983961611786171353971047456413250633196433969289762888840468685276098042263423326106087276520768195601735185237489663990112641400420209869637510136206415335941279007626443832733272668699701108893514958919436302976456322477334024186502882614489418550027259213131979989380106696209384237172558362004422959387054274246981570678924813657564902351422906403197407562995934244569199501740263091091025943162339314522742295250654922664845892636237911795525055681838672479513416544665132799791931912107476336878721898731533400325603571716376285884789937026664900412551127969128837507710828801948584451852760628913681258565159754011869602998239333600518173416237191224631017298375084131078523936504187312827590428542553093505813575257309608207399728465130172987774388754827743123268563375866243626088377151415589788153834094768891895816192866208053254184906514472619195396358368622998975666959030317548763266354435082817077833311329719894400870082934988400937130422622328095913154863715523697287349523752752068612813204643423119487029572334868328778569385494040446850144280785740151720256391227857621602053360871482684086208575820211843068685897259026709577989465027971993086330641751355944650365092583353409125565193172933649583173656184932662578150940758996501767310503492048651180816620582634414788368418980133505816672287062986999601721094115612261352890484863457916442981490024950480131572813917265041585935411391037981728236705712183776606844821883106472215547506681994982415979414365785065805502939763557561947443031015931291866725187346388863211834008643091250053635016456075345296290127938171449167471088472048616374171447673016395101912231419830883048861387189292562301848709781756327968029565977408272686525803288770700309164124364822162520541599957034935460706376193672087725957578037682194546521179508925434265053262612107715506952987793426252907510202855715180449359323808491642248334692472810289506596226393191772656441102735237301527418318069250540248739165257499293766570245083820520892393873904087190106070197461492138468570693733763708754041094487819176689805850212403789362807658429638416431753339449532407754680729876635451315184343419514052966143137083664107882772958259860487746359982757101199552732937837735015475463369993228728735337364362437737742068315101151270728267829741750412270764885244932452531558714151897614080912532960888567446751240318442070041361913811909124498697422077712762077554591145741393448098561024522648239988983134380658307636741357378575361186149177110895226588887337599034019197397434509266756968085142423378976255750458040864516402281751372513812570844121014176874065908274295710422649168877906647913929982190825586563970225944427495495637341085074033904391589566282642182614318133928606130757490556643484255533166270055918623728142107998077748721560037357421152609956154702405077482213124744862705705461506558894133758509242720743125204099347526176359530384357988050438281356876461013673006823282502098796649636510472536228777077893629320694658730774461168502034413206346888776047957063936805905583815948759320746291537050996259579393041568850644872241464224596256794061356750641288271343815018082085385183405159511134296196950459836617923610878530823461587575113263144884210715783598017081018613506494323449866004248723754256237489086549751786471964210369025433889563060712531302680694448726068885273086566506616428792102732113558805369855810205157616645436142027875378574875181406054669016636066289825921875866199321885440315834481163948499189820300147289147997944629818970384991936255715571181527162351052137908703978111075051241479149317157995071262961551864367904383158719836816362928563621708340611379169499816638336757754666551632183630492418523363867889381255775246909521043465200476939356032166951021061573395003274106669167388121711118213088289831685962452039017620833424100445737169690729241023292927104220661280200804227061100634003333758724426415618657104899128923351891565406301979263623610800234575986923309505436980315773224691167480515255761928265469882498946544783685516737997862995576805024396481998561607733947217450932451731267179206712079787310293443878985804219839025723580036153823509253924257880445222222425300040485346421097870934217349609466009705857113142152994542792991153145498702697028150691932391293041841551196926940767960014425340181630933391603150967329367941017184557170408717689767048325690607671866111209996750654693315858082213048583948892398948318179074469223825930004480979801457491460219765952005704489548398079315974527440133323504871352027059103698837250304841566302992775178571973253582607021330979875850541619694363112794565119479000444422611469056029018592894932894313665202161780582828820538620221739002184898499806715684054435573439667915268794510481814046355097277435593569568565000063333497624169668729486998598544955148389486080876764704632747396722742985188721949775816829807637314129573323466012897104105344732547258405718044288985890317987340256307045590824527501985736696450493433476519345133115204122186387715950206643719456053806817496160434228044494293795157324532891374011018676496853932885416514274381238346337731211087218599168175278323075189816179516303675400102112221328601520317262851489191023913540238615512145303956066540278079216374860197101392133967395665813973550757370004170689269166581322167580036356301033757769026342135627375774998771946129502445929469989230835028458094179142529466723800925334371898508560984874339308027400761333082155816512105038401540505958697465785192363162610978313804677143360550515111981989763280985253598288435145206610899343326789797868531734743165835122485710887364730131294815537915473498256433785807256814331100183981634680242045401364349164693896091761030230747387600992379061836936447301241128906566074028470670456684511070730053131334325792835076880154516698720394247800917226262959301861904382977777683477977961457862943799650162070339637669191265220084953376391834963595235675983588824321749531440838595805346682458441725977941875488482026011085504244429950040997774268351069293812298288705594197966977228442730115067183675128428126192611408726304530029450944287711326665285924368986858741737739388282188950943949593948238936873517165151338555104026218021902732261534480686096728846416787555785977392172843246401477805997800446887786739877830871488152411449791376232738493795509123156322651646494561844262417236797108799389549758921488164797483475055051818967093054268347216838235175500805496513452621131683698659027386696474062500704961093442800170530330046331218831944670155576051241014629444969833149442986558284875578197418431436470483089516147739390089071281854135794541356614403447969027140849632432713197784680350839950475228195726625584994406168956363127729100680587712923662175740078693654542220816021030147871193268640919405828447737903038955674031753440802340859944763218106189193212106056708631387094062054674622619125578192431630624712858276792955721583303060369616877952972642608727772089746084686571281781496840066320020775245888024130017471611580676325256092831241935287229037812293257489132881197206782340887810534373838365601688099053676469006485317976594097782314030081136529150373443559974492161562965271411573858555707184950986612338002158304582262810558744205256172249958588039386604156191811697368852043141482140677073394773591351877995199950990029446913479379947312086571694576788742727463099681608593647551147959863801631318130241335903803730413259477705826849405145093218432400210351375901633427177755299022758875353452314102882142834745873811718719906922145939069793508380593460238641835736982677940995972885371096666411251928546949023942896601243248069219846040445485827734505921798551853726366942592615066796428857542118232576192905283771950769177094007176930831431730705696576667811202509745107144026918589352294106042243289713588323039646017420541242838669107688587578617125067936457875192107152860274773332079736086985653807208493274084179715013725966416973881913717921874778064336795591257223158770758501098459443918457630425129640476017542648842658027103742164549847315220151061770224418976054581015644865211839578683275014581118615949065611172814745332139271498363508606729291592916492177089554494462543659253265308317140537985420500711828425816675719415634915166950237715108701943630387774901596319756208089170620846235756785714323985730131722256839311902782142916666610400195976877038479098076337160233482930672630167743998029439034980473677470256786809015338944108727334087533921489480978799001905422168605186566094519861750292045133874376899100049420105741599926675678445416109569732748734990911125519941370289056947927474469390193426462870667042739641346939226187146960994888787179131656560412555007729459926712844528166321249091629172249168080735202990866419041152644774052704420407505602342102468632162521046970191059426272908308592454972125221525234097576788750167605737477505669549907039328010800391345368048735861386974747846610428658371315597524270273200642020185125349676156980056098601425671798426356908232196257772431366278729331722118178932696169485593196138532871233745996531571165447461770862609930982790216734647993106821226242478805275883655478537336951324667723740054779703353006700910872425686917546928574935869839343913375242934852029524307421094745633891450851555393246658603019021171095114704384348426634572684009457450078686989170701506544274986373246416341957413933802872569212814847806814321704185804451303242068229097452004414182782868856790285020596712358894564741052547478628299870138033038617649992123795820950989054061773557253771032727005458787300916747563049339077534970457730731143414290881223042597554740546090450714017461872892012017750589771457174398555579152770246103525773963205009384583553606504713946783196537444256743475232103947021653880710699955049852308501858178530834701965574590057552458845618521949894762244890413501268663402341164586286770641709341917860700547458768830264439869676977375507283192133836517511806812435399608177310990712143957095753895696802733211217958733428782889178680309164705261060833650183561636351248606360981323017084472517878988708170623548739645066804071286826498377827362963980693771346632812047503158299801838790250561117652392022021383345187851945577391553259538278075239664690489146159485407419771868956355287424041581796483685936946896207925565864084148245677709840748308677185235975133254679856305788256064558364525645414260283462748726194802827419454984190821849834591631280571798361024155048904534135165811926794410360961265740178055151596249262445817974941463664550113489110224314372125006962770165002370485772887790594752664697690456174141829165661038085306063393595939916230906854512777735998022500255476204854851352870163583890322426744156114552256143945994523030697071830142762060624508258673696422591355388565749947594173288044926746189712593818723216806267163119811820288915178933303035374965853338923515504837947964288721899791412424107890888830474447388824785165933645277632593608526471239033822972017492300273992909551215531314586416388315808904227024894366179507800346817186043572800072105301607548137252180655529256896915457760017668409287983245600556181000858203098196866272239691417782493993581534683459841175393523124405206003485547469405880622654421474676337913470186795263035600146960603898935303380094268091251279748039197050371520792298080131740666434268011901948069663597629007950866537541089412665223357372353953375741292240779535962037540896249159649856225156952089003280614396890274179989254874308883572496102403539720930883756173217630947451386928955494137278077941571029715764016705158276660687219731828775633552868318368289013775874578014088356975122351521627409827141134797679183999501870418569996271058523669769584134376158557493942220415064039169275537044141357831998804753077318506115347947595960747701960704889117442493966094597447074303340302459938339755986638204676934224300566225499896499507050448854471549987195794654328294227891759239664653597191246951665662681584098758780524402270410894118846848908256596188714312458515611702627325537529468254363470134881575025545358691900114274748891100073522616091861964968655045939227889213160808408221335150901155235568739850815879679591742795944558151886114838729017568899704569236514753552902591135454619068930798486362006943404117236136541789625649858309860583696834346001254160175851641381569668984237168637806845909305273505472086402707376369401672298928348753293443568056452580453497809107082995984651303880169976969568105015908503348676265920889867558442813512015418369038218551826489749761427849512699549021498678225358603321134415238699287487882155548559511693671902685664162690936349914392689274538109322425516142875871225086406995026182623423128395395154720428187585621989122542146222189628459822878683192147735393896866261707447485415337363086846090272277079228454680325239183535826357307401670345414024245934285846871181586541007795130030048261586323395628331830538586948589219374128422838131600415147198969194621746907454141140930613110607278981551975846479303594103888590817164961295760820580071558001567615311453402096628758064397807233144905932923634754119181164141041318360510434469210081955792008924990647498992929338876018514838214085596638239257152157600358738290624532368824437087984393069258475945175956562465071067128119999172566057299832535633376466132595272874774958077152911735947928910609832038967248784901062167779677969624903170610840510433194332393292491002273926517913655177794704021021685786766177253640259597161014108864378998480592687177487212340060125205786203938028808360228431937696959332262516916924830272256869550065002276019846466277759241486806056757692863823637646908489403194296960837046787924119065918071735458389770276909317949396956717266230076264653230566815892424354624110747378221324309720973307972033487666795095823849970902799920463636655556559924618482818611161763364350249079535680294403635599889479746254775731973456501042431249112107536607618664151807808974244678953492927115430609964725469834310091372207139730742277344618813573037846604962155251752211518515396444729474734849060800994895408443752122012903001109528237099652362997694667882332001741346561871071666344001607485774854084719024264282613112450508858032730347205644805315238601719955640716395246061767197231174235828436256652914353976200205058809810763265296270809309537160344048680360303113021626603778052126512480168405715231650712043942464609452258536439829645952409217061995157313849974866016973601555895554714656746119701284585342051645914457472239735915765074947393071242343544813135994461515011982860220899739699814106870835227965397264730386288316873120166863191740115852358787999049504263421270876425419858747668584226795823892175478154453440341019032742408674087514985888661802501269147768210676343780915397795476438007843422256023983843745638964923361762154214110652056345953311264471188670619687871443744346789585835316536341221322351095951534516704774068293846642626713007391048764262375622255933641088719477522648130589695543768497682515941782106674240486620855187531452896566498519661079177814225506690625514930440692491955382779692334974085224792875491688984434808238631569217182431921296074148960595099933109243385946572942189000754465705521721456074733872977107542941280163324091064138310341531391606531705095448136793866786944986334796590872814921766123556491404357435804925043428549356654266706359488808778341733447011460804899774902708940405556669676975067653615361861606236017615386439932887179287270212174751801179246506137259242476087414864869181431360806075493143563023383559641737785994213214616295788403037657980024922143645026573088455991985145557675257348825500830605731447905226242556133331751774461498986530301431942969525009442984164991773162571732407364703151567162965356576110950622440445526763345081345804087137740204704919861410881807463755570173029674119920010894526656727671586958923008780839921668943581782915363261773514869629360569874640418831582696596774057839059662168605198311118725998984609937129317812581630294634895240856146370295551295547650525869014321612610192472886063962613531398615355488257566432717638063399770751077999635961833423551253156326376394981639299984503071936760137737234592129919597345956120325669212011874940878579626531241545598320760578613638588738537648998749518053613111088178279458589732529656489938235212928802791779637756359314153243595154049957583545764670838151669176480031855090644456353987342710063537252640839376480671367153723802263244144974417563670116992997612961384398688412462989069624341319825297502770797751728148623086133674637446562854504048728109567789525213510658003409416118035019162015893149545416378117773949439945130444708997501735011621112129801735668499312094660753671525717072302527950453014147400212351990223231955226473140223006529032935400321380335805832618587581944880494710277526635691391025457766772182826509813205118435826940475039028678963401111975831003633439884213863643549182700365155165699973636020697504727505116110966890355185383802496314971402714671531522775493989329387195503657675526762915749155723758183638693930782502565771626658485704182495957148196307964297208893696512218522393541099270192275916628715819481461361944000532828351705194026800125323388258937416122436145875843370596564819856896775338934463038609604759608096428056341919738091957790131479257417515989024513942135900965323661566221823176905196428216816304360511129392021403375272857862893446049591932374556638781449186229808168058899033037759738970985631868382756697447036547019417078941616672907441789983273897132941579701469694358974894086592759864223955143413522309909058725895768964166520865180646139030719571207787655347360116691284525873440639037902911097590103725241583664821256682945784946538857449664998427955954174049017755477522042105114013105442666669961001262625490117386265385093689518818968978480390509562197061999205623731891165305114735489916032098877787673452612508250243115626714882914107795062824840907265924724683951859047747673536694322861291128693812193454770733788021450945333180384586578912491736410689438688193792751553400182655842989979407333639819320911303924892487256621041997543804948295339733470023161450527675745078304858725647672916491771763999929435345874896237842322769873288030855435303106151262633792660695698794608121822516171995843442790886563641292828865049177079802802732037904025543239761807113162496230728066544423247023560145389251990027857731117157752178022900765205714274524384757073868293572618960220780741148231784780521635325652244625793947564386389283585127080355189452375061333322675287972648107430900171262267727401164317528203882584215316530016657069356121427147258014291160552466389696835591702438717044518469333318050333705611891402402965786680736492880050773287445882674189046538493087902376316521309573291262601520337416992005826734846601374730695712780707804293347306117069618344461113971947987268660529354719813320791313840341440700808351130074527108123261514985440623619757861568341691229030098919310580706550780004741898491727146241347305914334598932371358274036538612361849875085011122092562964700171748003988392069650287089305047226025175649829155830650623045750921480914533615708477909406875195021267990094708252944942269653514310528167930608947761681856374918065699711942700802747373071265613740181628206228660191041666137032632019977949614670840684998445543664544122828120245893073040473633406891822526287405815252921273395727324041819318799084742083539520380445054934034868026543962098502716248000405557868215403283181637156968947067285723042515127075445983235396378013381619191556576124924187871337344306599047267211488684897375364871742418605756835582305915597994491381010839486109059348472454376305466933425814785024635960376629585224535076257779114285075389212740341811229708745687559363496808428719957689040286232762628896339234459229302171232071260408880065437312297110655143983653435925470741331462279839508262672843612152361109290312464456943464195035447846173994392525921715141506868387937643101166573163378439245451881397301470890533533126331348457403556419699188912504623061170931487305470291100024787855346553933353959930173929694578815476250354467083611509067189987590669923359054779458723054102785065329811413640357230637094393584399962143300706704689426610139494233473117880140281046993583870267259850350402016113954008633582998955817434082610336379044991991168546012765288891265009730019951349474155348545461103348203644660518285985863637857053898847971255274905385392515159564901702576297312289838643361957161240557784416756885277311727045733298423402586950812022279184350743614519185361581703713487932920583454501343098869052503612039544981941569169332358282562689303134735904374975050864131373179992103257305805758807139537278565094802720620706668987405459498339250525307738287477261916754890429688439737337522937091193584689683603384200866446333186416323556710993662158592209565596035195177183578468001321549030812986874010222190780683386331755040895561593456683029996410517954974326355072749275692079201958428965457003653110732311803384605002880557690630115580343783650674481146448898841113911179365317750764797822549883701222842270601479142376535511414146025920555714627765207699480840326144135415128890858997929331681581516071207072565844528440820859691405816876386643053560635650781477926417265340257492202530683111725788242476687802114350513695268944222744427568943318547591712989726563133431984367433068349267233427832805914191214393275014741568498458877381932366292079071159308662880393102453414985197912449540540747004875650518205542360183998965007318532614666291250763308646672788303566987297917271621754862301071860376367698362919165257222431376863949888427506453375611252160780810676560778780712195149521614341877425210276634495116213129186377682196832278906338992560317638790413364019282195338543704012960116967619102103770264692945667907403045226130506670733828808401171291964892517889151265599366106040870779623533713751989873790940491621822576242249341124461988838218839287307104101243920491099886505834628834819345595273670123195558292502884049841796030260439696763605343693023970231595375002390762756588491533444730827292767658238495677008019061379247487218339686126413375013837475206354230603519742470026337481175981479238332025002850077775510623140163842805352479070578150398607062902303655235563206698014804453917582304206407311813128696696809352588577084554273962062993219137668952937358813629351440746854144331211950109751303937673504853305676127011744209746376833492991636205743217817011975165542359111145250448360449511492848870036780593756468252662455477600814064406298874874329023328437218391952945585373238321338024785692211259923850820178947816538311161647449493548736281459879950738411598535470238005143205223752784761820982746487935733259902543879546825127946785128216566362193861115697061519687810297241269826984124337976656323525190996199037597733280798359274602460907448349833588758385316635322331871366616611679118905604116138555727446078414896733863170807660195002294318034636728126402876774838637233009590864312811925793560395286346312965273870508132577854910836467157383163075401734121767702465665324892874132971745910314630977662374443543968426060961799071110966215279697719543977904267772553376684921047275102163890985944447859441409961678950177176807052520031980940755193080342252456582111081944433272952591753317970097057903302408585245466925611799621948001152948603814594981002635026389958194651473137948962639089850932320400406563715841153409351347885168976876319139421822545486886085554296147076857361520253533446362167886826758303584175953266803165055116236514718590744457015549793362227962661953802237271171462941438575213105983041088529598395170929351956661711902813593757885014261320434487247984435475827095611561866090615106806951730158406415167223019830213381412325977627046836004920950845206058641696293042641801934807882246681061399250453672476029035457593565588310789732768099449938951458321262960700016823648585512762738060054787177165170544929495636962345510835044786630012961824450737018063837764978975126115816945754499224100966974425879127484237908377525184944206520506638653370786366178177316729732827258845260493819676108955342935198263214002139067112872493713129154334362843161089621106484865038229642763047639647505002791296279391591576097399396634881645087384096242931162519237600345970651904728087844703869714609275332099384198810874518093580792424031650978805306900518995361361067947367751134240135712053705048617074849946838944240871174238159253264341221949478683693463398706875990231665756236550011841175261644110057932413255421158529379846235624124620791507337056131201575276463746061221388416065134487813940938925104512018375052990105123502959956337338877722446351486389507130579325280993794635898489553400870582238336918555164088484531590316062643038327517917098574694966654757742372112826328291717612758058397866587265793143904730423646731860023246360292418923201464786155337575968929965900526372298806782696552876135273574625450742891401668755562494521744885427693433492268998790458356574718623998750641045565674340577915943975493807892507431011248275102653572635546858002918097362094171064626758180695666356554674488967528894433609101110133665146064598607190968375074900596855821086141226815582810027846228705225982031957563154746843504153816766267013887959248522195548276615343663783943275846916489907690419776944368142074336487380927174046026466547318770263857051009337278234804211987174532661636831108456139845025150809510369228695530883892473616113635107289640138851569169126128721876137860253722216567300871076153338223397647046890641220674368306119349079351109884410265620622584582584213355038294404981584358407930231781270983350532267012281047282621888467393605666872292698367829746530862667646850991332876449873196708960916521366802818227239800312590168012411283386173217694659128921298620702594148765760650472798466526329656413762870248256492532542953293992544272020696695018761077273104118428704256653234310723779287573399862047667125564043248692578245545253608438811103521452019612942821160104082807620996362511875425990274978412853799685870277399803070271404373017244084819970265326394303733498030490249666960680973775070594967770896010921631367051252236035644861298705966260035013924203122666181538151504993410623756756298140866966486971496898697517331884058730304225531329917346670877956611165098486477105742133158122513079943847651755563912956988619960405866136707534733947180798485737720584092545864670156668780817414441563003654776885124901323345084228818049058469485656951937978006898051237988689901342998850880456889805879963557474268722561568349267744580971845085951918979433902235492451459104354406291288997379015643883614764312789529951993299756561802743960941852806215257778398370389116818216866326745899050023636392228945173210513295787472914554957750178336147288304816613327910335183418085757778866707024601942394109622347792018107352934918746859604064823452764098878811677027349756171927090212773860032793750453616071058751496278155766899380519880996523451831294738154794794482079244566187154767781429985049795478786218185637850009601812845178715278696069204086916330150062203774295063530202341959245353722085408246228068450481364053692622193142453287321225570774213146203741171029276424444775266760537198228113106033416463644654115014519973374982865287686733406326820459253842778839797392921184946769709917302374257379250908725765078919880018001874637505320563138716876414646689121212050647584169966294125403605127310630251134555915534418531501165670626084183172527547640418241340853251946942287127621399770862000120511105964711874729516778411575944987245154943068788387272250793583192188936512748686035385847514442732369441017929446276832102968958316570441338814594316395202444265021931164652164180454831095313204324163040681900599747432019428122160108724031202025425062119434346845284696113173067896499633813334327123073805432989742676783110270778839851958250023106284606760394611772215898766721040431443293796867834920326250768424037201827660254315120614157966558100082067944864608512896725568841804410398264388005488578211150819380221819551770307274879556407863227159598174972118253857519082188845452010059504955484595916014307256613148081231400153122324843607480292810158697623650404159591871242734877750071340599438672717422145178736292079549986473573372262251248252529613683346245990129971599850380124780479243768244682842365609591812411642500485915977302793143530146435063313245840298113864867700507928261994351274455365808314993869114920207856074270944233653617074696443862806195811527468759642338098754076157122241758395561838993775632333575846339388408203952286984012099071462362136733335521801892086677013759488760489470733051298817551491900755700496167318731319216461953263583711353140550192100449830853275750524765284927614375660383470874289098051997490855371983082589571815692767934585266443314677701502501923334524104735044156801615463528256393616932554490032135103735764380900681970050573311928170800070987663109572735565890901319583363166929765586687406242545776735973715207353452351823627804625795528080831083362898387847502023619685809164633933312625787743831654687243487006449036982109446878023103153749015335753852065732307332800241469282509383963628990385755753447688924217272104202852245108889485010008739984085974273808290300964909256536497320843670183262831956329153210149649478694315990009374694379858315012273164005172185475253513675977841663344891342057996567839129847021288006336075831257468955091827755339172516080824323711046243231123245574470501721097105874271478617912782255889284973288543297852609376457243378411750371872010244515403534141032312473525007908973514499626394509355693395966378067993199228681449271705508087988577483011216768384490662811255083131839260268999526571951664831220614275262478862589203063213182404088887764065934412177689141203488374722021016943315763762275524568618442615331375856407349015451909480122261783432695348449367922919364914271578304422688196220107598792761924584904211258999809099705608822351085445271639688668722802990940287192507320019129038382557906811827503642216844394208115042698191457945241612419909006202555965711655534940999418079794060709839178721422768007279256678761518796658609957136274529040108967220396273170851587924529300657358886611797773576131825316409906782722330773906421384979307504403282564995151003762174918570922971115255833348461676029559122566991274276924605918648517230581155712481645800089413514088912470147375867686315473250770851497684680079229480370051813082069744148835043404343548210439483684940587255446839889917139227877546308951451783640576045403731750419071431149400482743018885474278309679362443941526785023183069386616903428921567053188791252300074355300751086875035816168221217217058404547528382158116621892085553097032774545515146697435478160552854876735799239157776397473060491764130672836592764033544772166166953223672006112082223979533860360989369659363267821346886775845543293382547960948587796858863352993105349458209874945762557612012874455590323845946608805016389445004679691417095028892203989181255929835087342097580119405258875082742199892648655263207052355177720109556184979613323665820764171941990091235199617973952438079642376935410788907237026029609933567789833423337666145294290663117203054783505078156704467966990747817556075433478685119437337214497957210862765285471047232852585158975872387789334714719398749348468346703093775688289448107908150748731822015697381946797703172431646818302377314862915404432890182155691643945048484380139933224656351123004575810241802945869540924491308958040500939428607887200570714985672093197570189574186748988107036371603280567482454495258210448301566592914797409531749875353091220265549501888595986363507252083738106807894435279584234558213485196597530973410794702526196285637182933652266247006093671946028990433902170147761345972943600647531014029419136075625154718047589831701675707147052013110840318482523844802011805680431153106721154063582942165006996756748904470970769346681443375290381760172965910237178696658972881393126662263231156793632314178827998733184324845973770548403304326858699843309144882870004360191218533364733265302348051737246199409220414157603281012471656446387480987992265843907330266685175495148746102588901370337098042201229174926179820792838313434884752898820830654909498318793161343018565643055845911819360063040057524905803582318394973117040420073350740038219616670382930069675657911662515344894607841117558124110626166291660803717936608902557016953727372908938689877787730484673686983579021622127007672211927671377319731649421526992198427396173377860328397345627934100264660812936548017472107228357178943261510154980727649651845435145851443956152646161599110879857137291161435084926839920512207821057613551614713424430513328253969415934415721380182803344021460385225614861515946847213344367115726643263461419980682496241829478893791302479995116490562604370458682749025674753143247821336771441324525632185485018267444550452017441157039639651341888638140126608359771736682594821253008602059251838779681470664760685605276258100235952153978522426819584439130398288943294629643345846954215575175284414489045277795119865510481043881545177709327598087815073789417855959139278046685043001764741329517980401541808252410161978781148122141382532187886512137812149915373611471103936605411147329853410712321647592279548686639346563215472163857877340481345312855877817443000508822606593620021960590076314345284611279400476389786761340670848688773651792867318571344744859962971157879209494271743266909548035600987148812922376460393085453772884245086656149823234204724743484413868114932206595931379561625800089276254678149112310828494838795507606934191653003604900189890813257872407732693104115114676317466262916348885433001362569095338967597190570512054573103474823692331979011958594658291233746987669304136802783382232600361900596393961256256356724241376557133871644088768256652092665803764129979914482332417847723373170887552687202933482738370793960368205379361346828967385045376977495524610306516655426080984525889143181768619452788639430199691665626173047137619549117167389681926304772821377973473594519383688959215609301130222892515571490595578771005135648200421018193471122643503967612983380746562449822241353747761912029154170578949322696188900546100265040295295623826418172177122079933843162299822798722987785107051159537725788999333131542403204895598860301988491298502551498848498240224790397672116411411632363928717892961116710480498938115011527874912086418537429537394212383378976669435444898625519178789050822185556903813197653315847598977056015469860741650346252617182233932299299923665390983662130131156627408071840279546409831717524529309170359621101083451894860158519997316785652937221207758665558727538872425458239872838193907174751167181879685459723712566749188952106741510318350344529746952868560572646308072228738851086032582949020105019067425146559235607800549563804679748734376061008007916461373015002756553968867069218562863350333696709396707843762553659712128993294970887860113807829969371282073840063965200785796811406529402155721320594139145281069648963478140941386042880770950104859562590484871250362132147945907705947606999334966304045081573484308623935798587417142589758929569463740625221862692515401000285088704706573330145884335762252576350508464251459221338152072027400223715948815992772389687353867182792668861311307500035733532892385744925198295329478683366477380047272323021524539567288891709848167023404677402564127429666935914186294296837044741108657550244323500607225792272266483367440717741896687806306222127950748613978221982028564683405969911319651341586051292465658113653407296319826087731685301997069858219070109872954919722640875172954616991501089420809332008155921855844688740923194676346876540827515938957854306943203696036377663691755833062462669773501615812519032120727072977868423535001493045350669877224893477087824098207142506504914611404032426896064874685709863949340952113082972390250987383768151134743929723414522074123847726654085994392879329878568668166001735277745567891409052588479947099350945361910674091875048503763918132946844553487947115749246777951881323941109861310080320836593760979362448203612787558074843161456647260405502586258380584922049501519332220107912550271286082330587183222704673927094960544728651013816883297021413885876408781511383594713037565897802215081268262234656153094347065966303601670007366892893468759687346239589901680725170695590845299831364894799225753018157282726179153563192429777272618548397391118972250161936042608072477034901807833562539524949061088608358596116616236886108113866070639669456455323307957864337285127249818896964018357478576506456169020134403551714372709950380371845900152434637498810981864502130082201729661922613150987752336083764407479948071016841471327637333975646416159975256057632188045760281385789993961012774370526072118457973355390300952487134659028756117075476453547333502334514687984412601362544858371465901280850806893736754171777280432974197642101073439066283707511991083935806857927486854977213711072528608441410552584450154685359022430085098621602476471846936676123179162561878664537034272686710853006270479730448436561823732772949012820012182019577885516798676908652362755944526793751205493235608608149532530948809440140170659889840328760104047034240003399583082579102018194367121449594625298731445754698283688089050877950938378402440935113656536525887959522415581777567379717310100242439679896745813373318345206807243022634753827194511702975584833912222341219744537884862082858512133691006666914971597660752217326370096390107325019045106254836968287525787525423108858342031328861688341931785010866581289655445462471675604195254686962257807332012850304961321830817134818862075362031113995782862764897820228203459614921463408459731204211177031893531647123912637758553053690056855652560344665256494148872081737983356359281793011650148880790084421278431139324444480457328071679999191901637598386582397204592781639935715790928425957839295562559131840796452789383129148478997224321958777639426777326262265730215915089855562624835041727172677684117653330195289736560088947773856067718771286158777706773620072772945395467413877182458511708800706688411387354714257435482786092949399219746824280908791659168133154330317423703329520195525391243389535526217341812189679281154846272739509336790050723163610388937788394032407780946018405023035119267586665088514535608363232326705990646578495960165756697368912550161308964339750194997035360395483935569193617558854213466019621443423075906939172245848930216849293483801645618151777417432656196024186678749514470006147206117580778383905573679210620012809312926333277504288081176412363142740835010552461832322214084676006848780555165025867670975695430866327256183251097074445246332864397551265689433918680996446494646485464735233444228799657570294102993764827116607940001213821031473278666448796846666478428020446123106008084175784484633242605952129519349408717168718556171878668861420425195923499863336082631928707892655980812657955518171066197608892719383402136488066881018734529774126274640202643051181836097093917387017311428700252374404761995605586396868092134429040530675623511919662324007150236840560191215954807834179035058970286808182205911626472581565606020411463998380866016170471617841267142982719743371526548157747088693040347693404668435774171447252382394489447380381688203069232328272228823047099490476320689784011001725861571004072406957453717352772675721359030585263231930707504268385425077323635367202619137654966053119611986930069556693218500296756411324527138666422632712869781679853042562019580348333766145885961362214612538139906816985688480968034629460114104913103166331620804460510562845778767525719708703420160823478001987103802107790092849056189253630522928251466114136611660415491694291221527932059879327738891850605323996383951946674105037154161072240071846168294376290280842305177921029298002578341998789877072966686577708234983372101215776868239169923741779293612400755243902438077917335253981356017521564051553803244277892311123240067089354403779687468400546904309132988460498025103674528968797093665046566977911404833621133846867563213708832904226053949789991177086143584807431807317135653460426886580545659224986825862111845599438426938815456007873897496299404199638763720772136589738350847392036743979628613494645749841812154846309092117182639582483552294879271709389181508604958149502925512032996229937384349395016165824155461996478768204688313159948707478040705921230326857115259430894653542419184208043181604273686079308565301819074675906707255320316259704236815769820705368708589199300847931356040472007023867795871584046833906995436619353203822431645268476770816879606272239241172835793756597693096639771245010346322330581170198893284123167699015738861781489160885727775021842039369860391471595022505902405690816327347162125682935421448826285450562533866123478696301348679106647450986529165739643072049157720447646963595772390311233915823874223681508984942274282518237432059562277273053249993382676363314321608969906198778365360681258035880805557618204231479895984377377235632014619915146320938244114619523288574376233019800581203712550600886745203579932275170307813750343094413690733742945856843094071112846111753020478426583656117809544525624088199208388030924255937156279356455342508791761425166413693976017859532944799421138076435795927463534776525196379326942723399026452096269693747533615543592912810756112630279052206430891225664272366725402652823063751449641158258792171818361975531125857338588486822710625036998804251301122434488005645331164661943782345284998580190632429396500579322485052889164741096394365110731379957384514386490886363328417273772295011257326907285188658771946238815239998208913387860601951739340336779445271258422696938321006080967417350567309107239907236121092546108498808206952359448441689470004818968740375913938507781080249064767566690790508902271569948030925023636783684350512738979499295278033874983108246885344747294115521094547533118844166146295662464658724695365023061908536494165254908012467471419905382556016829141061260474580694106052002819984309229043012577888151296120554777840064898113028674731145035727066311586446923787283250635484640918851268277817966373596708383279943286955397138721914217241708195114810869927332012345432769234529622957207135162584869966041298148634653077158512638976532527923856756237246271807117462638951425194300636815759766943364879710387376192773406506382409228291220257978369678536150981092231165455907292356516299889423341626627055467972175450349390901810908005673168401564749908185970382605352454706349981431607463103772130352678856244868224991894235106903941472579022459226784461587621048450928851182473126436409507722072604219127951352263899270318093143203778547686308523437898063966316171812945443922634752823634054351067799055867112747944161704074422951508083120294843773221575296061205587700173652824729335742687537903129823284656100269216666340482799185182610091147268144976501315003833474211757290451781864686858370105453361671750480669014989852208528132812208462150808735356357975112453015788887301588406690030196136748768633736801446392643172478707759730878526110002410902362958498157793313668339827112294105590966085327716320113062922777068236578332073387182534167121032793307323844977423410457187033991175800283085686891241119420559944985486255085610704228720727697893009213172081385430666627273666517354011011836842573952929089788269389595389938624107436202652013241338100483101202310582731018014369554816703333832825419489429525676437225641000164216139605498314068861790416729062581006788718578952467408523767578707516999359140717360834705351254392825869773378654979271327013271204843729826537608347353267268979398939246356042558285845898726507727889008083284012506400800665524095833724397675802135075782240202662941717135726305436364959238661527934267374057948906556179846358041872274727854032833886632494852431227456646311651355224295526498230413326193478757265790611791259751308773768475443217369238858450814909473386682236951518874306814537078223618937495899266815342296202614723931799262629166633851352073516446900424909958354992975880601115635625365990002841486618311124294554213506328588688661172502009705279357654858068594742146195319353249647556555862545619517914758732573008588200028050312653147825939842750407557208219400941763981430790574913897949724896475321546441603944188867636076222970930359727404766679860816475877821638378348479791092850234917615552650521811283670477506818311894627176158213801373065257889441833444155104210948157183846171136126660427098146544320993714329951748915756846977874680359291237296766468667002807155845854542942114079746694718779889338509862522134812344961382393385779903587642350528633187132367399508067342245975930968226562709884859009474736128049182157501781447086436684218574893480213979516509592117362541425255730727102226881535969249119688291045145135760613337059799569420111351583697388145788536969239903924959646006883236993072479727532225619415252744889768856192885109200589583229766199180676426131753541506965774044125561234050041987312373764309235514734977956388768292990021317043058992758823141571622199421613866153293881079840557821529138967838421298937876429007120393924149086138932652163599434672975594569698987613245223797672339085343088624330131606746859086222745314808272328648617950292083137683290148775238743048255786571735535665691197216384151772941461331078329366287369680353859377936809986424185558070510700587024235109171832840371728517538799591794007440387916252064146477032366442910808801023115509605353002370977426865866307186071146142333262503840483706653848784665360976178073230658775681669858470809744310566623147295773272699955557661798912069519043756377244608341842071010833177275917846796323256850002437064101021817258820377024053841198418744029650312432594582622936905808132055726157890853441907134729305437147331720133578257397748909015864188935610706899781968405083188386714034318441751151431051496007068212917034713786201288020455711056112461722190084501700062991250017120302106156337926559068411405389555889165528128046409241570600393199171650235095556738463169604232247641271992161811627160256436409452001628084484082518864696533127414386410370332985006987596387645824236934727162565745523099798813192085096529714159927801025112135804535602977793524804932267301058846390344409174816493746324746388855133315347894597094016777852136238584430736638821892401200977655921516512836225191273741529557835905532465383220095480942177262313118669362729745115349555441206768723462824713273654016526764666725055921459158497287395348824016093637607460271336788050423484212082659882465413367517189748714741969178731113068451980159085895929802223615296357897539168886234419536960381488243901715382993943543279196191010645343194405563564923049361244241588094293850134730390137899299193554571051786653724026856072730377676158440499837959129003296756914774517735271742521623583700172178000772512676755829225274838117671204406389876792376519845799682876827296638733023357071706657416931725223357514367320651701608154362387788889872732433264552980290797777852893558280261216406979123200568535801869271118267108425042964158640299860196024294184504196704628081234490001627133141066985047960041116080495502867524587104216414714847631154346658965106906746137424742095385006488597128389450793151422842500698872433497624925799333233354818105799886640374131820540461553051596390188917598053492083482247079553682041395290252816754891531522905428279911239854949894365102652783825861025128686449860907280656901518098150275807424749261844924451076815666628587058053982360159782987676276509996230658584179570210205804443929022341641950196343030042104697647548332029979693267104254371671903276906908206302146145421109075893594339104202956971013213360794530968311174595176566696247748832047952890105853239657922897432224284319434225842281601737893236519220856996170752460482987642017191442229478535232437356326937378672386434268011735227433631673134331519821474188014485462368867101384794572791986889881907549647362599948688080066158819683777219663847117653900836377907128600836528674779208884140760704041894293425002306748167294609025692989392283500604681090699059326351322098985317679219765228536829281135148713519355167627958141905659690113108466831482226586099330423596622111621924227326021358234004893030631919027856714850855992151509815419317989165408802875021667011617698262801842586907571965902665529257480660336132509952569856855928433409011396487092147227808068816242792251083641535240539912902570401286771916773025199305001564940580037543859191661413822628130107171828864556697712339171769389409560841770502011990185167855494416634729953318330048346960266093767353963260529116557765627035874091765981795151312764937501797582134226787098605870211723867945468873348871020954432646466800469858634945600175220307959854116570584324499073799229074567777030651505615172370786941946352922497219457322168563881531732382622395706880695479955648190421334951722340358430185650305073818697576951183581796950507379180476860027302947915929019460945812456015255625275991647658345682244090498037843862416627540446081303004094517416353043510918958360872787570708540524520039275066321088398243124468491586901933389422897338001305821888502341483410319273068468811280272068965845057890357715823271190510078484599083384862447419833800064382756783759487630028695475918645474244277326609768060144349103313177987694309015727824769589448939928854873177697150841815792612272207930810279084804453293224167565543089950266259750620357462185144702527096463740673121192795769810964280623404167071953866628083169677001123878796441673760244870560248366610420804943956498195426795706643158992345079241136175066594438181564096126007145232290324288987572204500486904091676630775368835989897061553871498464938830757754690776821191942451603275970622146614910412802152236265134656614595071979243248197759052401483971674615619910156757546457346778323711416927403424765162821961880299090311968501294311737836589479782977091644158147635810004121614161284024641916272248968035248933515560530727130805008372523523820660662336229714775980384441109478360379994998931648793069017570680152571343015600110218106668997723871616863894136594977936505889717152201091595429918100617711722236288484106439341245807620556207246441240168652948437046079871972852780929753905603722527695629084369096176371482153416158047448840621280264938348685675221018639641923027645146479214987526275282466212150137684544771579809525622462038885396288416460199542733089390420115883526783546099761140708822682812214427466145927310171438818962683174225435470906448346394821505176210292615542281114451222548456715673029115693159201938266739087162678783545812770198987336663476798569898746625802891707366828605674448722984905046668904274708816312138117804386493185924719587382853739575778675426892836412153454723795107959720433246120937653036380585476767993167341196314743118633026383464641048938906145550823273248665636993298545106681031448857875577777310026982029150120717503614965005493294721227294763222626224985682626027300543685893568521383871049228888338270104569018834485988189202986526313702227778120443654313822286101358488674419184319958865366703353563395061368455038121229399043802810022052631128136727975930360123762930031200265463446999160697444395539110500928064217815261231248315373580921829916678695892926611477409721127458552937842122712228383080910724822287717852681067306694131030215785588696762401165362389510562808839690498742703542079606295108743139239684798912861930731667901603189686502968991043872573604542540247811373296508947597162269530763773032066466419623845511658503054431925092000309292533290273723429102448656640389618109725228795415932678194882728820297481359277623586796004960089031836766279554650267168152388068173245801693685875097064510361105483912062816027688266972657903298939289160327122088888047250944172695426098715080187369984913217047938272496212704668694644844881116167188973067018001213135948106632435700132616562229239220720548646963130748296530433791408058816800582323005883041831999181679317963153769061884051212093890100473664383889943104908308358255013860852024037593816439055758682309203148353305048178062168904901879868384005589026134514570901014081404033354767250985488873685613550996306750317448466245802381610623466425191414590650868504267541867200023060187183544374369380616310083507019719399050083300161941958822449154102043830536732737024736746111011152723002009900415312417764790076746489808018713954801948054690649628997565914443715256747316688646365248660710541371799877103699486092743924723434175302481444429583796717604314200857562019783500005046826877750321823245915683270777812193348492738070242213898607500129329182819542449719355102364645877837788074344156040198961075120864877276873717521307990569966974481394917384072069779762816893471478232558351734321600609349342447066225596455682721115678602719930762258905960333699632139072288962070438275247986999137582661234157848261465621127350113073853231052523185471684173455166942112681948539542214906743957565639588601739400715827238923010677783922836446708961825223597412794598796249553055788400848036009574438061915760824810318129569487661625022959888495984964699683910223682223087784104664049447491364963356846211375031480470287393716961655096991782666594490318026685944478786661241477346392951047893305227560974926998517966751733231682938027333073736806577024358550157233106309541145363464692632148110530584774743162709422775922769580442334449171802397597710957673008927597736976732786787065264960066428107832265919960388202272683747714969596226797194506645940561648058144449031274927909536052528843229056688544345895095206592609786647491304509972944991551167763490617997848036136429215249294232541253661298545451754752335713845169537851547560324323653661139366157283958078218858823677365113476122061287305840652701242181502670354274560159962361260034087091809303882213306385197754186253320740738279799405854991687063009749795853735053261796028400450043149821180426838437553340271441002756132769288943657827071675016655782584788622839484389878535180765513831040872360069643482254309853768974133325503706026702770747033876254305443015070655432705505900222452922617192778073795367967151051996045729162110855330852645499082576314348145082674066084520944463400021565251750993409755108055287151533975500558210660803173987653015373084772009132599118662726737048205443645428309101234357459198789541174732415449652509639487123322280322179534073412478756476180555922006549347072368798037951315868111286272469442994398375528427020107045770686957044171553500770480888016335044798536300953291577259738203157650598597162614076436870835686673422950510994154246663294472176328075973423274998195758063016231733338208142621618602525368220398754148458291399195130043025081766908088500659173970373995262369344031648732334937708892522621489328101082093843882024197671876965971277963403007684609933276753582252350921185715571297259340046785356225496233816329613019920693937930898857791514269810767398573792928599049991734779963533607067717808512418480019894977241029019301237038519209344706360566508424707645437539746571501119763470238287049201140438920493431959859133448662937259153097879348341070995481683625870119033361118370862496828175041863842601713583878835771932648045817505822941070811750804412300758581235235049591276054103202079239675504781378532922044097971148027501504748480350667225777110683449386920733083099827350237733960103582948255491830253632800404834036476382167317988075869424929351424934673505995451693691049737690753000450709087060982282791241756980460369979923353895950749593450447813323364845218244605917252934894526467466970675485387638003879585723982299768961510266727153603285007668356037730782687832633016217537548132579368612116271287635601245494293997263984577548181452258097920252570628624018463950661451245800162721306254097789433562157870073019634484925252090556135681111430480948724448978690997402022479746626833939609749632943971068816284262048227982595862616933250400795757293868612420567716299925942739472742951718189643641917154206295792172071408512575589618750504329369234005251656371971470326486649167516685574460691750331178169497293682937633733038281165172174181947168777993510366531410446010582818043144827922565702664691108848628924466120453343509111783314477730799527800921033610841062573827173768291687195203740407873884014633058832698469221464108132453665254241614879890326705123984789591804232798484721059665191977361798205809015899728972937428328653832931842479960329350659915028238094478293163953841565216167032473932801817521738748475881545499594251318542992163403835979823007888297777315234411619033610782441163684892239473496054855517774927047341995250605958884436529577455256989121818764942930660913192106476569379943617068871081108573454696127058156756626187281662329893317499022263279797832564142622132650118700514462585556815391807736022033659703646049840920492087258513411151533409795445287511310384997575640022297925549817927806662361330355690351949096840495231325635204109166637229448074137262847035539357242719967878616577474733323531182899408987082215436063643985256521784147511953405121587822114428551225004430509153793318684601829196390763349861920947753882234259138335508685392135744641222145125624747814247547286907220474728570812169010257589702365995465242556810365251102189432320406582658042183540783650618117047663716760416755873518393929763043652293986213148353821896007490912327685206738791546242065317532915543735239382404786171822020226496975155743675434710801325040139982638650828711138636898062335126132833231796699994201367633489013486884846090600322212671425924498833899470013128744929627147378670375687497195219475503365830135730297059651251468231541677113604343090372192270214384943029312866434691638954031242246122854864186378679605868554401093557691626960886263531518127876683395818943972422213111851215244458938944846134133636315263341371952146267036974169314648927949923415524974683087924608929096672205900189715865700544702458401918052807407466742747384053185965048041927661392672745592694541149050398308085665865259687858497996112962660872558840001828456734970584524652300576842842127855958705169522968338980604371282824532790966544252369311947507653754843534374013153776545066872528858822793585913529645721420809441852647352710567617137852170158744233574684330260924463675205296716800902232929089140448268340790178636017952019901760172474077736120517606068039524686144111541630349182932651048888706680921985479965006254879839934361809986547602060193500499722475639344856838294452480236718796613386311566072295960831202865138380196830554349092886844110912454236318174177539861821369037269331257048921217831537301537612394740343464067074005219080249142187745840211003441508468786756583486375996689362289308528542556193836436917781746262232444376150698122140647799711983329531136737112967678627238862208902288062865884165642160952082168288643488832563494571272024261531694815374782932517617878438062028142207528895498908667838476519337963810835761878082443976812295683682738416634226780489604223680733235251302750124063904837193455923687364789349853750439755618744794960026076653918917332608459717212473668658170980051240672900437423451745826632186077757126650894295048392373346413623641757901646876651574266353440093515550188650479563797804899156691707639436570574076427676290545937981426281980587675382340153644114917567295391127009926143490947258494462291971241040493481254364193878928795270242212036747866148809717099768365023827529126924877617198941736196824520911542834003784215052354733624442490135245160129263238505763345107303665580594730119750056239728765443567412626114994944130397286667625273325079733637479556520840399431621527258403820978270296696955419704512104405483699665040636746965717062412190555214516179287244416140797880294079181436066631394444294887180963970300423969835163287415029972361278419313198801975778746166401660057772286556452535549230516362891763838964004953017197823655324010951231102298618111773628345851508402182047890016029828530182739311999885286545048724077471339793596410442622941667932310063277575774535904844878593690017327103886234473864952154947560033518905694366837440579114406190758881163166789175131424411717794782015329142188984224539666302948501916754554290345698272244323570217723781493636690402146177035927692700214368870781062263088787237816716804604608216487844584843843583908654526367008443743412352170091071798769469998990573715437465610576339065854719830732783720005182697698643341503875194066954635822994503702333965499392342548502385101679463947069457199336411646441171615964070372838814037485202653294666733272516551212946294232520880995408264674640887932217233278017624030368796757215187584704329960276178908114353947905245456114707969291417142970288595177586208454743791838864603469743348251269448959713093325351835393117043875638076555661957557031784113000782133991613451784896917749059917799052605481340869933686101659805338054471171816235871061020081648064532755211441214977220433394567451741468381218934995964764102034985761811015562706646947065223375857250649219813576189963340051485879960802983389223839217586275792452000741117097031931459603203156921920596220531651281033646178220212829509693845701023089527643646934792293076201374845333147533423128389301650318847009022118240167181511006210052692501084372983465032831230253778988910197234353311318661125102404916103729968554817927771763317174484192470865741075559636849851222668915084206720900314520620381019170326870964428535815864180502517023575594191695834162374801602181031264618101632681459098011390405784638035452214933745952955080495427275152454147391548569987967866414509178290878400061103102585046336446159045446737560899731231141685492447592143822369118900100966948434058257609765699084113373988342591398279130700153007571892823656922004680751254939023749084608170295873874104203364260581963150783288136178118575661297146444902511853135574487119539291159957419771236877137588359002881806587484489503924125639971041897296458966915217549246842206214586123405851808371770798860959484680283625741438623482411990727569329156040963446426658221077302401173522126284054082507414917471920845977933255828121411586566244271938374234185896903875444557615876231598106061116961138170794761742147354509071073323653985246250303185564362834187897452315818468260430357534810095157870255741788803098099591201754430992901092318103404082501586398684093130586104583800635373245787798193759353154308004321106709691822993219393631214234619607059899855525937439576773190721791399615092592282009936216417270756293597923831842223776367702242872366772530470281577949431173488998776288490086549643837696888205382950935700908218375888262776500495611367201601795457978068288610417407079452372597133788909944216304285339386750367157483316534851138291227453908760868334037047317683570635571821368179064455095329071341317136121343908639701718510559520065787477059238572529979137259623294921654408977099020983887451888221318155375764711029226265953847552079915684436669334252933551676653690797944383003620143521460152963218950632484620813454775547465240605107475015173391002264948763711274444630593271032146686941290437442975324093831673969433316487928909851369298451155661723574045331089065505555449726150150575666242163741875286684559460583095361307199396463823915052923377635889998649650034829348998107919864154723179411786361166085969434235440714118245344529149989514920243872631896528536549185034137149528993043134540809299411778038250671053629990077453649775454232058366988183122212435599948203698372139008243885358082508788177539529488342320979905395629178199634162981741680693840610449431340910290056939749986939425089728316743380004068700724264641580791549798800312351813484989851797535185885666254535776313747919918568331517332499274316353454778592209587635451437621418096640914449013902304312989048581486900200895896132556139330201081604926267844040978820868329099723610664574535700741753331433044798044557598778732608492271741994109033796981920002550594851362125489441904135238562031256314016305039612113478060492230385614346590617931791594755735973873817411520176167855364479945000512951456267388334818630030555253834706252129237457464312865755738817376095329967587157263258672050729475403713932870693617908708964606457403060136880422781461639370508474868962091540436446855758474465290107339574723312435226777675026648689077468934770531924012127260105228445883359362595490888947322929615424835070511803197762977487591321120262547139666626432836687012639215562571070478428693382153170366853521579688719348202214840443811484878163311348630016475566601415504388298716921744634641591563376392517046840520567820129964127428973067215286817126822023326004882168573177081766293146790504537704998814519069452521302004200434897012921767145508631455357688549778044887421048953025978602891408192703044245846041147163210189627690318623119292317101511953216764255537956788672410962440042998091231910151500636047287411048178441558156456524771965651648721819418372009286703898215637020573638035564143774814670156912804014129627331491874587239716072074032280928772044131176986622686144409464442172884331165164626384427149032597023280703697096956831162414482125336706658815680100949175712094696353030706564374057496171630424395819763214027595420615443461369770274146991352683786236058081250840232469707593262465992091288723633262728444232800139278221265002397083607922503239873189098162918191235419788478149218141750353576963043369507053791884275095554972377294407003789279622239506813316077547030939013182740050712075227694652620391572532363584590456068614627016265343077220499557300510726503505494985647051685166028738988488252241948642312649317665259422180666812849486789190699683757711715277705512043868154556868323674706724968164786810249699395787833374312282778515700821152046504116236061925140492387298345141906106066528829398561078318386248618816482786924922327057283740921818414597858995245339576147486911218606660375521540891082861488917012942117599957687167784394703011724572313012604581404231781823960481331025584617233209643746435757435190470836665998448813622977055441313889539510972417716232888374031920373736123013990482680688226401074496940840905464381480525206087958607785159725550305887164483859427314120718373287057620944711365090147057104958006930821904471160556293350365493788880786548634178219591740327626999008398137783296731178196720806748735391988279447558639757440989332530054044533473290569213339080176690277969592515896354119914484543386244060927184428601415144223064966101749607724239819272286837307048806919304829621963338345809353111258638394341222203569804637825927599503325254919124581739259148060949179084907906035874226794065060670038435605833997324811168068932101465239906776158984819236925245536112419350121737502807833839543054271218082098982548671949091041480931145875381324168962134567106827685957033189435076039754460321663290149296990386083674919642016435073421123963281944745360403913384353511304590741037485073197528321497273057646790018278751614334465040025964845627248747396275759374764076543184584773009190689741340797810650100334412262651809232356385843219165133618415423005654294190621884016616860288401159046052173298716816862381504942119613136609851919672438892810853152366047845455470567441721782096436741967084508431917475081611940153149797233472294007214037225266401009628702446369062415293598730638343005653953549458350259500022481380849003805319120223801882343783389945795816997304698835033344660605566446962875527847978714140990127276327079832818019982576354188367229215332874662738012168852772754883939787214324201239783655077335483464209508999345814930863367699604925519676071164050954257780955905935284716977951763312288470165729298885655953291244488987601301920829342335096687707367682604571888685067341036035441985866986208455336982731755396056522198251877177728097600475705712503845405994431478765717839324663984427902632255444833897898971834291859573080601701211310135639140723524973067924749262070966064641505324007326058347389554331527080952675333223536787870411466050720979662067913308697128997866285009793094887511441200826107204028827393581120011674247158816688114564290386114490619332786276855599897267892449309700150383304031490996468457433814705034603563244998081088771285506347658750592894396494231094440673173385727222101224528228879031435257177855212879371077205297888384463646613994256938541286406472844265566478639768534819412864832877037575387868505379956360386375054884551075791123625557766532875055734420271192429893314548179143084977059115264492169186040304977650524567981102825535716960706913036422779636764199226538400331793931536142120028343532699697693732118902264776616854947089199384262109411286312513121019025311736913086209904590128175189122078642348698886642914951257967302336494268573032244153572386424413984883647765097997861129730653586240559809400623807853312555869555722578274985144414227369804379267356488697195034255144080403838581364081574158793082694775480994791318167171015068696934780726885495360906591324414992997966674991234456305948846675433172072238024647877927678553995799268174539258166503040086215807017107273138857480774906302778702201583872481988942745900597574341964012486868605875273744941230030242586343581699663994276767655458324009661292785178945531765199445353692894547780735389724621727703902671509298262077511565153616834135945990458479772311437375151592929669885341461182043379746415789176016753008455681831118009047285103608776390219632675137939499376698041128219230316276023810324826074230320884708192046993331330215953920013803193569447865435574758825904662674508123688508819148175270755868299523625779851347004384607901361110943207351366847910280790722037789504138850065034714100728593796869271171668573903892476478454449525273887088091415007987087351302471648333306071272915783942281976616292248557319606593839935419154260768274672262009743483874166834982235830574450738904082781210259590350025467877503538786528424884383461126725508913830844118666997384901065134186420933341952673708031535968583029262688180882375288028639050183957655316608732710072760930967948028584320912113243814522269066403446350180415644705737346107621269587138566522316933719479661782979313251655333323731731149941019425455602305295259720932583785137667680567928342732853582638627486627615607236415140584748721332337326951720836474370310650995704948478871792170324238375113565542673987401821606857596328305194285134644398172941729762400458239609959179492754542970325569915852376693760702822978887886138086232369188523440952627749743731622092825243652786635613900109414231663928644786994595702934170881021906997268068867458182785072089937270961049260337115091140575470417370292320348041756397290130950204509867005634415161811014850989988442732550145591370086204194519735777368529588309159352203391770225090647905982646002892988954772598522494231720514909520876798637316115817545904166988237442281889150192234676403510034003716163574014939773518688210244902551836210124785576405207907798495886071491258325257422722117082674322191660501727668453612590049795668517902346553877166089511840198651132792707138970919938832954472124420695158610857460921913008237320426144138360300098630293074805666080308867705656559271168188117656358730031440771618536562550292879227100046899081226600938072723278929736199940697186961306305554644347742489583588199928998196096808389641748025207623900402617848395969913554237037283716838451575584089348864999986751946462658183348965608527390571867944661674540154213225656358657223570316798421363823025326671323857053127684805460868161798650898698031273487504571886807737773994815105169446306112962491227090899252884899173991840872189166810256857805721236638802144602910658742293575188551731477591351028375893576853927083056811162887323638004493268248081342399236934196777729822542518569528897488836009558194673098639827640636008145559196608565212393782199898436978623469754957797712696038200150865199574948821653669824780429367258880240698380976625231475492122220981267365807402292456892019698664255291638706796734711505176581139125378655140394565347779680946374172009171066384659705635812010409843087560649349425782690183094081697718378780682312614690874688050416410265988830355866808556324168325012524899516303304923645051558996105817955181233247176306545433510273595589770715104432092280185598476924858849745710160025481016376624738858498834849699775885309551211289510557294305420103488472593311085179136081553591633619529004837239552807829546506963842024160071914323012373031539036891257343427189668128010199818839184853265176806581314097885511620567669835711435854634974556394352613109942577557323632853446022396328317630276887697277116795599933217109805222976177006292088242665246857748343376755373537386922405967842823945930671436525284545830509577775318286971333883282920104341554991031011956748845091694461618747037036432070956448440791635443578274350852673294953385465227925314687188844588990399540896954724716252656422109686253513232826615499105568605263080877793876418310113496136666480301386759349691308413283236277791220257847195116003419993064449600236838139888765924733919905074110834750422329792024612374594299830515479531182300652363461289038619037949588190436931551344323317777830443183177946171578767385518320946259527352083712919465642056879538789585926633486225765768461453677689663988931608135741548086130532739178714149082533857027470327440670527814054749613004418450776677945646263103771908013326089972973539024226068698300781019452908269672472424121774645993830998215888563748706692758024127746085950870119403119830331746879962802260467169700047246044800092591854579005010083464035152120247028441773289050748559786079125074046522692563835718695340465642834614863562046199017803606093862452898267455765897927393426217961925473888828358035960803580436881935102975432920022843149428376194934470068220362842239082177899766900014490752327049227942976837316354048279748002557238338290759817084109038400605299625133898599231190961899485543431266508104501032635160357011610446723021512414899711765878300130774086018022569036923295448137954203177376591959141985188029879525802484755756155820623969493776872203365510041387105345283016221268035240483950194544734857935499494378913783030285153938842425705478900371574604652204254873386278911377053417969170318592647365760601092334366142992530428137065462636429850297058333080583555007965590969603728301571094051502996314274006635609256606854761530976003910905595018830774882558426311897306510899401174867238531723978622077443429322120199524885292525390506944643733357625151406318273681181787534331371681315006602089339911224070713462833231888737912957396610299330359884486565357768312763170883393594275406044088090440206319872774181598204771584629904150294605709803084641515818450597336658774066449997736863417399465663699417754747946373661494130681057339589528811700658894243416445641885495223138068171635201805653610961147898753078480451738321204313248926617661453338106865104124051796889728202344044966777623067491299230030306228781657963040419498671949452830251999149721088062225921538222596676462381632309810949150447365290491987802199317040260259234326127178091724264256377082372564499651043036942288435390824846850109448768660301269718941756839317648148208762961943978199759714422799388496985830036372252248413002858907251267323269831414603998975996738309455185855166968677928474371344354858787071014066280569867453521060120864875427893860205698172890853559750798332167672325034242056638211756414162197738385918307974604359066944078566930889965580617015180600206771822860488371873969719952943922779995847033169302216053347135074925248336038558327369955129039092046070770923059303807208395717986257826444683144333633623824433634510943185302314788349419324729262487152172456201948782677730195810637652862471237276584435288790752833824790860870607509604916656658930431868637152301957431300270933909916088635579688414140437833800428012332617653859034733701820344477041285414114207321147981886384722022423656358965867738037685558038109560157221968536083190180476597580984271726281039266265678905649774270739493722670119494306362112072277462697721324040610758145348227943732018432947378677304905881883415872492733554403040259063137277595509397631817628438102465652687174685295765410350954210290641899521206829608004133184329203878667784084111972531956627418812761985421891165678985025457113023225840191723814950757782392837822149757893760040398844403566482351817113877884077323807630269702771642377123787512204147292994445477687733153080920129586014987117409066806128035878031545833750985550168843242584717761333663182920758232265007309604904573312978497939155266620855161603973758911845683360191771229616723529047135976693007365109677745135016844404311882071829700221709160133162128035952535857589866182663828152707621873163958307216530803491592157085812181285405095013441696706889318578500625285491326314957701990070755882925989762445552846993235817111015651074538921357989854521562813196875781042182673171302083708515458196783005770144724616807022817475951727955163420262890772186397431476333054334811931512997632936783598380258839326738448896018430007176230827707674332556458106005184381545806222974100299479723623924607334027969465173468713663572974077837517948597264879613377143130632758715131305859473526268082509616193796990151343794755364232574227384796971511278341429085808737571196846123992422428538371977926896414483258236700913746039936063281517136189247702276552234442964331249821293100805960359941407752287424545666841133982205658622869025699879056589341520769574633548812269903250336340525532667419369653498575388286868977906765169363466920347517316852357575614459145421916994274759749625777223404282864673827365875359051042851824539691152465571021493585126186875404132494246186898135830241406858808088654446326707089627557282620196067476540731267960159745614993957615241262971891960783400210889967138625708750074069588121482244943550712317195771267994961885396783763360177331184447623934248244548234460531634314896218614365073493762146276489537020882299983043524921068185988968443829768252485438137550613090677543109299021717101276412802120156826105729423088298075113177842782649542112630247473672127529299587193376298796314741949173272891124652567325585384785172803532996401982593240707356724878506999514246581081814608216972883521334663897263357453383627088745853904899806031074531466428980296241893388767783912154711543514107348050344341070617863348960553653942971775506175308560633379329483075499187790544681801177264850576418060349480683156112087319083712142217976621322494267464489433429020570372650479968725391772454872469005131347719166383139411298512504186679779526672004964681808304260413184642025215333438787545499223019471189515947930053052913223756461963807162650981314563264941750873845943723957837251790973357307878238566665496641362815972445608921866657965315936893093340914321117244664125014512260335440921971156190525259420513213479764950806612469464334908130147025035272082222719270655420991489120625909050336302481386011512211732200414482576797683214014617881430446565933034135874841507161093813694319055607493297444429872692818721117550305369195140897662780486178234099054261709738838568396036852745301195400349319517103197248759293846517499294954313953808943452615765005429670221788903567407538411006494438418265668554469866864402907299695817581019229839818522028326721207562170466513492570312113261867954019075667739846443184617915263005486813773728978102795287247788305878509944984741044505140931609151630947604075706040367736669389661426609543672375649291816252597322505778899929594802691740120223992575249517135759332047500193933423847855275163326579740012834277041929021383551740572344670814147145171935743285945702822494424828242024251213923099532932653211261165063239115868840643563925652875688973084440712585240749440874317983786342098808893416429993208162108988910845759660896007155308005660587512005269686950261092635525895493557356284500186335958779437705314244989479265123691097619200147696550331365082687843201600382426912809050310911924232598668628621123440287027654390940292371716636461737853503820100219089050230025415138297958025741461164656039681165306686365038643472368036928881378665586677351141086439325646857693958574432275104495004892630186021262364106189549454816932384703203607444294262232729741814064776353617065978041661192435139171846181475844942639409598383035304869862528179201345315107125394555710740958796235013703747335804288240126834082774088605165217791520217778242213604767948328564459052524370546655623169135283876939359199474606459387798921880605801306536670924807862896547580427098731782006631160063650228044084693420305417788333351505402211288528208002629582785897855050643477081734323966137647068870528990400960564073864366492448749425004219904813501038666156082740493755460592584133603617379912866185315409076911036226715040724064541044172111910884169611073053739792435618153517380354962666450217465603107374650706142109454271729983041260403910896214526163709337436094706638723843625635305680483368228989138030623174483651322590117589827658502072981045346165660656857313697717321203424352090201675553463220647537828196869533376298419456381458357603814396289682943153458460128217599827102891804286497084769735671965861589452301805768902282815794998723230648489062622690480214013319527858676307189573303145951565493809388208599428688561928977754361139425718328704210239207209620507896414611866181403284040442294969256219280295698993603563418634572461757752998322361097078687362168510266651518165021785901824238171038500301538483212465566845932175929394516255518549217695149607522161806050474328144342816548734968799465071731027840137036995065126256945158383069437913943999505005899756611577081471399042532941766512379095538502076250989471127396505592557264849034458384270472100979994045923947020250895934178772201516366274817045090847962445827498660719543414364444682451975710333417913636793989924684281035144173692831238179874573580670980292144049184020532853780175016642497901826556106006360774779050405904482541135656719161341046750249877408830108583493729056808261432723366821406930163942373125343666470396101992696988229066768409078691675037743504348759014314627730328300272386756047614708267696727204306430644727080695307531773971007119829220795737572310675961047931599157889030699851874828566150992191929318378210689032231794848509796871058242423018254867312261583339779022240451828392064107281351839148293212176809445190643178925776810743775966462184487704123351410946578426246172793010392104777974082978450436448338250857197759647040545868435923403464379328338932078784626526351820716348318714529546572900520789695066214796462823890662457417562297517127765051995486992969673294734890591642144071135927924193857234714116747574425876798424702830302898213247628255586797507495045676412982913586782035493407320219114628476729082266504043329110242462769191750113657383422180844315350991784090815917058017614786111880651368792723204382443828468157412851974490994834512713335687966245415894064239585624487042593808461162950320419176677006885549036526603324600090610536394377111584871720772157860943318363528555763695724682312394782244311667513338153857084799094392483229470195105197336035423160408564897909381670154352505474180615662328753346013518847109310762489989272126330434208604055280235407271279952076300051253874564493481571235420437951463486383270797133893357020339953963610239133922942055703162244737477538948190209203953060796746251083343954691386530556709621336075749788224470688319045257868942940806630220279392458181480700702404551928431847857952742067911106085755751285867063695918588205777237519258662338058830964883292727908675176876804613676606827052406657728635826279623262909428879781589185449772807493923372072629507391854651586797223866369063392482036832169792307451393260621381089172686756977555659638198329041339396701339163252412184704663339840933774406891661438509924901045263108688146748666659608638536050039707151564369357199072968955200659641440305014788449671688345779013630855996407362343915667536129260801423782312365185512580231287595921040883404606141030214266141720571179254511946972337325734045031313803297279889256002692728206275288855852610793935017781558285574454353190085849820392705331003137532193455456191738456875383532553959491268931147506646265706449108636991641221597402943682972369876510801311071598537532093885053988737461192130767673516040692506036719745821493138228521780128705720571772341922793559865846511472223968046603176420785791307438620109497843146898208856430627831444848143106725410522245162956738452019364358643499213811135590337363338386530027994373928115044494510684691941129596116533749480470985321674869816535178251636847348225380616180599203303589885282144109359353024276898107683973421655914660003816220494227366706872838852514522627472014613601899655824009862813904902965024573546924687037906371177454281179006891065136734865266396124056205400272418502009177191031880213099820350878342905273332721510830411660636661175989735630337881564915391296797465409870391146486979175557855945524628111807254104970083305572250778254599419019640156851990769153002598913447482775096532431054967940566848205942848108264578679558599010679536827219195608796840332319347621013323880947739778380895493254952961294369065677534917283557059488481868279137383339455317983956636784262776929730627670306413161720659875992870846703786809998063240109419311123542060458190725461297153133221285265445456706807592286215642822712604516809367630961996117466586425386995251958902363119942498666701069721869273616957847584311154149061404845453236556835134748700309359264008722693123080450392366515911602047842927731813116573494213292003263621820999081344339717890319099081319231604331447401861518746491859710516034812857424418168787435616059496138861329403070972672816737909768704582603828999468459505707885924839810727028341283859477815805154720693958864005423714223707004608349075619676442649523119995369671721122227775242941394542630692263466015357121045191231153315027556496681817890142714282343770441425218518366477827936052469988244096347370619603130951168959932698365685310315953863479405944912100189344876059507995301510714660864139980395015780290841941111912954536033376708248223834511349967132043373810382972655810028593282305833791287215808786674459052207278232720861135270222004251190062681618010177274175143524408889146112741902382301718361658054265024953079910039732071094955731562099793056159734375042918625511247213267610598058906286442239963264035719022399793860026073369288359359254222414444679962154634418064414381683746696052691374202372004509465784880521450578835438285120198313777844609960742914165530180835907998668392933993593563196795859983378785128235259255761546456972597945354989182737665037832710892220037221958024492524067651251889441504096473801204307671049327066624655436569943326909642911893472856252985055734992624426181461776840401464374878199583558268779047712136584507921342489438389247916217372684093919715169197663810855225714731677646664230504066278069900031761146518199012840910184744316273774478268082543710240389365958974902214767282730628934349290893735969148630847453293711054967947436603804531086918265178525729768375166814152079933974586963838230813080615116677377573422225703445062162710014210858594307045829299827508448561754920874944386632180309101926483758321024128945051398276747389241972761064804923662521996718484966138223091927913597503234403479979693438172698607881748238895171877907692648554769607853555945799667575458595787851335794159474484261082407494487117425907753341939988802993573021620212846779535702776360689756566791233372111416277976554417364950909698170215619519531640446748990887791679916448164760043621608511023548961369727012506955257508872499642852946950544839632996771881733616112840657467863890281439656223599079836739734370907753649361647221807101962966800605569161821553827618576117800420827564087403674505022954397952065237323417345157095978190736485172693847161301922267310731662025223930682341376939513609880358488952648499057305406695244221391151254158855916936912482551400172201072733490915108508431897938171675881379350741685402087303312303775799193800134514510998465607194040531378708543473186093550996934684786707463827237564144080517312705325024141164672573423926291911369323123043095964101069302510426983791541668021930443902888019345209752479833069640869257772667521914744164865845715757844043197744398277410761232871121259453462334805598972076816521370627466277866118114035598375311038234564191663311997731409338241490886813074363814571313469743946693383672350149821502899344979409069592816083350788871717547941657977574986626854073252610072226501536960828063114645471116841339520807002826767437189624580074519723335269521143806931268868874376711210466275375341130318055985138117024825853449292106124496415865082374880042168489166532974258596190037974192961856977513141261090430294862473395829222775883274235809263590298847055382332898083279968647880339636485117914499109223318143116393071666681922995069715675472289641652992697011654565396139570406192721820782674312568318450633960949083592669890625441730013030079476238244147637662854769100384893383870170572151667512373639917542269065231176045250865959225195515140715436069032840063106524780594911417821450476001244075581905391411921941229273927887238527899215375459657348541212311703905133776482639926044312930666864554754815904440598012172709329626861974126173666718294788493492294105377593701588476093074065221696221609022628331117652269859701163645290398410208650970424416149763094205401131202930946129141219670195837323568764893554692759041088895392954564483793609878990754781793005771767150055715760201263327227718951613020047450132037834759122257239401782360803218157870294027181568343467968729743267330592386530773891303579076258343461494926866985833604822023072663207178477902171942479347320400443235121232648260592835514244096025821656117133147183096447499286400868902293866224200269063517489690698332331174895963698288392541823268447369703452746221940011218286344932876618735383497528381291468420223024793576591844571191170139652295259699494214153022789762185002575237049961225052413057300725230582478915191788311365258193184206971510498741033252826002439501567036097773986051738820599349868508225317892388567568614217974896989496501110678578265921173938962465577927470670521600971638497224434675153841471672410855341734399023371158787801233048912919020358227985388380998726176846781648247092112808043153375396248634078655820656513161323801812895506398961650341204052138676011006901039954511576292890735860568389951385344653257997023407247715367822713750121859471171204433168907078365755043435721174591832726154388080289940657433279346708813389221619668945433685624917077200005628016202996882307234162140539903146486901483360123259344208010880630454822312611969123664795719095948649878528417913130093439983953883241591197433545405679507506204023331822764003788396311564258070410189074279087459099193679077847557744589738478452408536928058626363882636180805870243718200702350150896997077464882703112098503120050728672135798862490075783616146897519385160466114755890518863464944984211984620537104178755856999617019501054834199769640191392665597607333123864903760492843303877739048748290072136416362543858442380157313588070946137594732939117914501464084793924292024322311923519251371948105841042304349874803396046519871976223989178203115034242640481232831490343146550249864514161876976580252587680791553775716156100150867126890140158467556965987216226777053054616546365719441740362906500781087084164036118264217178736026186324597566131062026743496727999114077304746959927743827402630551456782447877184630464426534353570024226389401914966776197155410388782736367077213770785901236727911684020158761826654797946781051917195993754527108228132355687367694814579688522166447884285323570370738247749357647333300286617894083128868274948356189410723257976107032293369805300011752787235198623491838889992466431231075099107416068496138914140945187293869900849581707340253618149041302658301472823206657974328659657826266685177387149974469982087298973416510475779419228431321489913035325427994471383319162345654324471154137609028024035239110111220420974259070632633803386717604719493755371079506062171458284205178874989588636419335815761288089615312508214506800882422051526853596761333590868980320567362312725573534867408822829763082742893945455657382477763431615247111353234599555702226470572668529626535044757212743225799870783331143624718610004462827041121590928449273512490720723137387905943153749125514175223163834711758499845120883405247168029056602972547415616670420175518380410145794883029008553229747362135850727649721995203044699977864752858088174930753842916554647927404465823653757320674199899813614421745770249810134855236130072986477784538733309158209991266908523876668338878256968759317223031243244002416819427034085302103138333823143764747956742486484808510286260106978168252656824543256569661793042936213651832670234132689867522706351054078603369174074184976317807815273362823145504485861468715966008593122183968992965866481235484240479198902884580332464039097989701392367000797322787945791738711135274826386995129974765042723788543523053426672416492177795312613662751015133061645821836462542496391622607979118553346217457229361338229588633798598412349801326668726911079186432637978879379706684579454553095867073892708468657795533805351673078932475091289934037187821434187449526326251155718427038925332821760195508422211374200989760974328251582864859364694094049376273162098091102822580825794688749192839117638198294126917777328685695887325844651280938488273882665159527216366497383631295653837581520351376183762261629200778775913135628378125612294072601244932815745933800258086493155422062708321620818057694060499626820535115556726588628092572817575370620040642823426308120373659147180854343211449507860223052106837467374896480858785825943284851646759279562320986747731441953523530711516803654861463784507493177047732198891672095202468914406661224833031162234660432293635393455498589751808923093375926084291776412733571442962815007563350251782828663297909678731998756361417987619936325465362455557678870843736345643126485526612411448933716150215229000372181686604622870192685968648999044191607707347485092980499973535131055769622055735995484546115368961183556907869384823298131988000173034422472981794105853366986894433556449659475700206949954326288250355594662045553230606092817554655266040786776110106894219559225352449047386817451602683802659342843208265917702244244468001863391345048821127107490278170498429446241139071928307890930595938747810547577590929332636568175416221759161144119390758117839728763830571252130864696010078966238246745548906720796187787128010280166046413901931131516029809380238597883861667020791895713265882644116650051214925641735803711773969733372909882654981030004924366714494068712499592541580064822794217085750718903245901816311940366903529923549109371449181746471146320859622717045246620430453807053932516414707549058214316549542447195130854896554923596352583783547489028632970147680238710157733428855818833822614528916423451364943823654353070600773270684290285589021287184094890913340312918270374351048053380669296742173584784955506356640720481669967818465391486270968738819653275288860655110653999221560538954150533400666136652848897234315208302494577731818807526345617658065684331173329017898232284608345819723123889976692753240643477195716761755830364756702629953704503917027028069895351415454792960854174281228042073192104702410371500893842546299287951040923317601584613456642076104796690249158439796880865791415014032303005949852240956932815668243468285465115846592447032287063466213688199269361692411689013095237068715014923505854723222221694465594826718218430441645464897615742044112157991084516096569893750583924634521276774797391913431879826864649625238324883439166312786035212574091010938280898647143622154232080781435551246163914116810810279876646578423515562643444418467532262299759748443005257057464166276362835579806332101394397235404141539799165491626109007385649829684636686056744991741514555516769050349094074076758743374788433214196423552147603894546253849648068842777667224864714294807121388757301269474410006020691819281175393293654337824268249595717150358630070570759199987747139647192366385244676270937028433846869141819126959654316537651059314910653407049922022094729038969133075701718837171224391811562851608754716661881848442429774412369555519642937359261842126985354006781716083642459972596705606126591811802472061715007174346641773143985019873611623132688091269523341694431720161603316042577979965720576586141430283917380516422048441460574118422441871707991053077096558075033146627559174265390211733130603419074869467889319362884711872370583852413087957721414478217989750642243448387857830440270892172631398493710001764835947213033793117794646638231098520201099696276662796518579276694801948909903503823168594762497067278865402797525282795358271397543574228298954169578961451726087997296555167393489471070062939206701282294482771662928671790015017561087380786449507033975297598468824754740016033436771658092170812764256200875582889721062243941614432795122438409265770866599526476598730439208903423048163969997459556493657321254759628975946071561594946657915324285825978807575849648410593856934444903138546873746175504713993794775761463515158691471077377486646764606993008006878572143599408350940113834394186057723576304495885028327080042088875893762168228882867371812009422914804859715015835893564206097974871023997959457559188043918389721454002335495188731497231865580083975189387311987072694770472197788732923903562411403031314664464193360290726331468359583675576778128933104429023844672634343173976224621797715141109397768152934329409821570920869922448150393296535340531916003287346361499974863420871791930250399177228780498125484531373493437115347547224468565033383306481578645471160222904005517771914614245005559630296505321859122127780468872751410943812646698996493223823473116138981933356754355054707210925370387646456881707536394248086079009485534189952595616657913020340961103062488903861828343782517450650314872895095289929743511911117674128191174681091743027062963925897843304942075092456314757897897269722966439456142539014384789912779189718990921447218060852183639564790905369578540313753471128411490834743042381450354063478630283463027066972388971097421334759089146959033217746787727999850760772537715109888248919929990365714459492277345674778964762353721350048765907683242786780976770847941749098847301151102837003444091504451091348260944104123385273429152665217133072205159641402116485973459889168894330582147978743653003742223188767056219810062232429706736891212664087586126190715975016721817444259244144468878672959629737893468253322766872764627968097237176222544711193444375015169579391041490086185565858899946441526853908175511901690637152780434596437145838624864677919202072149688989135796598340573060159737031975287306753125529285373999536322314342057325601841559135403808948642131434832380684833367324056913696282609511848560550741490095903355747727735134666065910797848969281206537760964719816659872500810090973640196174820163343185410574091507563808281138839676598881133078630434382454148459558006652551956098510227394879057639590280848931994085664879271717714492823449743422301589277036139367459949401221008668526233720250546750086948236356412492482807120142249901493355315796265612175369986313353120050917347570421867161626356910262103357306400118949510148424487092875346595601752726933543026813402686131273339346734685727474302841734878955765367667627751745750889443202830266992607754618315113419310645613901522101289787913272882268508422428837641329520510617398079730299176890073746022300522430522481605494916383948585645912040109965780900817948585488291391682013483153356449830503824274173041000536997149141611179281264278521627096728703370847876374288418794848645071966241503910295131251066628812088855133453822418833510906107020365135909363957421131106237109530842906929379424386634803753657250184347414741856294297548682878061029497071609486283556025443340296611613484919137533475562422497332317651746806843686846725824534277664902529048688680527736646173207195312110720933650989453687902240053693553557848929318136897352779028026990248671635274693513173978925878818146896686594638075320932179577481426658500570577180252795887735029146598952924703597929775741628904099828948105511051521111936372682039735790710878864046134729868199723724435884725197392596757898325520131514370950427733416722134954420889800290915812652446414285818931452770956550290310796339849495782977153656811028124419887268169558428759734478511636957690151319303236059722450663637850562127031858800984937382437445902820353343754469117548824571858701363585998805841222343294354101106538062164359288924865290302731694346890611710390604357941446077010653519149934302805021220475356746812981968979827912992843967182621791550019672097307839452877966940701950001546128129184189677593396734145142995939255590370470230780674246121502873416656287154936997074615570663526725060468430437872877200880894018923731786930047531798274912543323062560886496656345462883700454150321167168910262457992887952701969994647550407597483853690412996275908783441047532388028925372735011017949188298713488884963933714182956882637757000424409505255082449302319458272280632566913167434895190377633070259222883334625070843024835115243690268424194504563643776246943945605267050221797477608720455621975021488492820716355774966487726110443091879169675270245690919125183041403868279825733358911784813998131288262143989138985524329192261548415331976010616948861062781132320761153241588497225696160534583845100634942642164302338221068554110638600108201833234801158245602853845311644608248208308161001099906046973579852206659904900092429028912486003205719462849014013333907224929014696581068635091984526255990125455677701437054522589463986145184934918785485493280485865715721543061978803038579703167197139458151026882780217411065128066057607260450081007543223933469905528264333975605464358273487873962697321321033253315900919749080353671868960756358152659100499922301616399238035905601862028157252530912747232223126743740060544546718109166851375458938909052427794235290863579165503954118052191537723002906961761010938982794015335987191215930842658329098760199083673241825017508263783318214058834556481252254561424375975650666008314576930286045452589518845468809758953012217799154776028276469843870826942803709612683797558732993545615211687477050423415844041871207361572459433069021486010324184987607770047800421076781287395232380372563091926370303115446454089555057324086040176054456691678928805682167625458665237556529191494209817829338840807171998247515727952673950469679799434565344366946882690556205221848097813032888684921499750965731995170603313094958776950685395590063116198323559910649659799449263308043203254958639048389308082429342044732380844451830822099140919479772139683699196717967090275476071362443168813427062850206287610952310526326958974091836910687193158909335518031097766731675623436484726199486208749743357973486922543327433964790926007239924926193118766459780263419964772782549541573767505614448577314060601894117594216332839005681447966925375331400847598834005353605369374396071131510349831939206843664572521278880332488763903367767786048681705872003938721969183658617416196207102419759259951035597723128604440452226023318784416991510247831062647571344280945718677419964669542025080718502285453180437772009064136816805252507224099984285111800977159479361560531855548196433198473452508115989003699289912052351177074671992422010379017722443015626370529227375360308296386877683607684714259511516192462845188025889560457241046436121931642133047461643932405806204816566001506077474168185961202305729112345978048438118780335621896343337929341376362427770446439516331682100004123173647439624313832931945843224707002270759534824322654156818780462780986617132020026971806931201624625217170599659588112353933305486024446134402293616952157339670838227761947460071892847258575106485000020452416237425991131130150433836744304907300012091710641746339693307620617548566283421678230057123990256750932552041002206691765856571822795121861008344200080444160283677840899908459586281207676558012407239883997986148587895523395406603601614671451115562117271556599229247723333249086302211725490277037949626150979073755995893260922223269787983690963595944113517982054225530360285054677206306481493802555737251778685414289425258717086352832871931852564614739152386085171423048614101493379655024464194903121004860010969675466409131038281303221430331048259484954397486247607987438366033491323608998939069236873651039370421816087152487492965507949870955869601140543013334669387162986535622910103931934803920285444385335342299142356144278887616651897653090253326661876559810509989798561584149017028390537972715673174302644224622413775516458315760300557453268896281948337343642907786392486626467698543195565728976219286868405144579684447206418077549932153607640880963543167805641476113600238443655065454634558340055551087011956803477842352711057149733649032350298942245835510172339177690542793697876209115366348818109162128345562002122136284837165795904575553832338155460241524250121986059672020934300479873996183287940237245024400102258532384325921197289987968829950910045196985603723544498499012119415599091760483008085947092348360429251606719822097549648901072505507213528644484495054301426654543024259007062792301234681336356920662035179265933747562871216324889686312485879232484282017782130683598323250351680265606753011984959479534559081637186255003723918492324444765845228869349215785132159149710350375415705278122163546096511375761353328367871999730471352127108914586056914186427433683770893349892589184222661587221399296041443904628799732598761483380071680428792605643467692791310606009712754186389845499389324661504231841464717172722645857295629254962784498496793417999342099966324062861694596252602776455799729465789223308607301309827253457425370066282067045122562548131894631474172175783758639661684738857789283445494576967900757507356666947101303597400842312658169347387570494559502102715618864341299240800584379399413437024787597193191459437127977803117995450669458550582058384431445060015425309039213000410905128322346585612486403996215951136472008066269612636093303214569274141109854794619511178590080054988458933187633300973672152112549893647738742884852937221632806236115277749470768589581576003488071275669628830122670907292246820644939071255908833084233241103952695233098515710881775647876092442166404064919509963700655179580872147430507683189815925976029896863818597730335512463265997866221074094311592095719995609794588497495406161243078375807786410054033211687124481865927157277904295459436484094074658313044169709062923502012751091098110301816751914208648986765274581810949107418316286974968729159248403970407553733304743776798769713267085650366507840315599951735066949259297235589545501067112696359037615591664687085648346862397744092206123959825087701893796104418107120228094576476455241882273783856811324550765209707502158611418516680172375722682083690162102912012878983385895024912410600819950840714478341582583421362840227509892937342843137716020428025001955243155843690570137239509760715907267892757380344666294311249063546695704703089373364964429487056478660448325902185012243852907893304818943266362370848341776634604250030948776599574379713557214108349061976473564639399524835133291540554774161208139611899279307604407102410060062597428847149094503484629660940210255264098750612976697947238811498129870587180644678676399976482448631396119851408429172565084734737180918564266031835469449833519419839974068494424683089962279683661203084818322326686114598037647640178485756915822120835532430697228745722894607496040700029383160244291407960793298479247839697704959094899779877316449156009660572179462548103378462510721641054288542464382188807568987745794384115075442499016067066806260529315765728684399742506963194676342080440456614568462746261010961389227478409218469381287154635061695233493744821352784726882295381716061357712718701263730970190123180061838302067572205708222652982119480147774044132142264113836483089076458608234767113051471565587874407348397794646444806262135959703252667233997505286359193588874308015038350327019222764767196214024685910269592963611378051565775605570453492646626702338384956505830828383390642857737649001088815366750434877466876694328646748303097884413824318241458608318979760475317568684936345263297837691593009394487447150870646303707437552928856595705709722512937485703689727780364159368109676996781495993601357036348212587036475496437021538171417163133842220253292058201669504969271581543095278417157706784148875934835522959089945453911254919579351824601069747718947104959050444043317420155103713072183439277146649322254773580047717879067114290030259057183808467095003577080226277915178569699490874888665014469053059939900957438309166237839579002367483408399783288429348518790173849001043579231394174373962495675317509038598552932992936379516659219143850607160777214463619140533456404779171756800874832597981344593089410350846120212913155462433857706115097477005033721270675297339635739958352519076790053018011271705744546301517315372355953604747390938533210091068118703755563524620590986384670175012441562879943958730905947173451127362944821797438146390178929621828068764860929774548846276188492375002169354888757366085058606406205410597965983789945219017604366955920427857345809692740598249184498733797525711000330460813078888879694012065644201616808982887199055788424835187130022551653758337117165997940729659763230787334732461886173043839535106277805411448254806289470813083677465880777715243391149918957910226934601891689870507449111298559156715117815320238434704578707678062469310572132511041280584581615830114244311868221734811413860308543450834312096294086113900238379093628251819516552701812976911005588480434754836239811131075805787766347329340465050797337474284683853242276694933023507377458934554324678965573703835755493474711987836487980587234636577857180472695406378708058239068543704692732565144426061208038256828636423634012838523914240281029828637817292523936312304487124133443481020524561658948561024496623304578052522048263203575775971273147444247025053337106958653055086306948000438245067267176306759871662211970974473711904283619418631811580953337294954592871212377332884324911163540115491796807642981081635374854655529494692249647446982088397373359840450025165581855562668007580447444793616879205461149810942274452357685945114277458243961088650105614278077041201396512253584569161908629828698519067550025855472297332799557365407518037765122248411742104418949629138724352279001226403323382972318206218861344166891385787325109875753810015535971686176025729753203035108778937509337161633012747785179815927181233309533788948868383890833652937637597874124041157540274828551075013609742636942604258291384195968778054294878318876036513836680652487386741024065373632408517948435551096859563985159157384975244438917863992941501510699981170983515138881754602795968656553153743100694422676417532348124577064936456161463353534029607838740248839710867256462630300428520199327710462938149394038538499620637787927585273784071773278236358550275121747281702903797566697367375046808843002176464500686338653519069393597016198863154763376452812026498953937875516698283768052769917780886777033662126932723226367346602866318745427020444752778463156119641659541439669875952688695855654684399106467168935368221779794751924484680775282969521321069250389404714344448178244722398023784273752698752153029655878137288593418677986157136971238093998543194339140570124562699733059696996956299319230475536911143420799335292433419207613444653072736437093601610239767568013390269815712791501496621947142872979585020254603728957275568448834969843999938680259507465930756486108033862933913014307237040321281585596035231334363053433259385545404542755980174613779972466339727887702383014292780728598715552296521133135174705326806891526775285113749783866350762740833748921716039959260849572999227389629735485256160922187944753201178945692431497206320069868853518524806375534622168538357519965747334276375359793575522013548996483944004365722060774914013544449138457863073035023021962125877184266176844272857984212113763402668335737578255220322598623939348633587341550867393112090673464987092822781980392361829330197449640413686663478475811057065623876561770270976244569424802488417271677051586184098266367470822508073605269667296339368146149798602735893105737726682829127411637586926122531289524357387625754298096833252544653192783142011929913531108066369380968726914691382933335068341521647357238722166182982174707874502381081950462063877287078342679324698428114804181618961769617255199818980579601546924742841537140014033915239369382954584744799286523114152179316749049840998750790883292314104374610282424707403927167080495505840564818495787894356223720048266574130447142695801021495414913226505755614350429345440731723219836665422194592146320885060475728098102704830053520524816685494182955821393707265066669722433107671007383465191870241647029348656035486086425751485270580724144527137192789926423539845853123774448435929416038506463865190734954477085028546404759213690118814364430920862972789404929483549733978447710711739313245256332830180477478152377814164929774769802225767397589274256446718081783933853129201544864831576985691292995713390608921037070252647770575741583232468873486255250838468374132558997287501714040471480554768656848404606976157854222075577972931900920749164440851058231816288993519443800077397462966337612010555515146643710492095724176437440278184685126218657023872863326980507429040815852330060264330170969167344078032588423150172526228795666768124150400013376117181890307693674900111983977522590334961535160744281420283051292573074315973098228603621546782022004275064336037201146900720029805996756029651488753211269652949411892847761453541990787016565487531074555238157427119805464235760098754548941881281595874911958764567035477666912103640898981415118155328650115661121902241657273041827136660183253205326124424940092948543354951901438667177654994199624430582903594736802386298186682687029495253977549645783763523808689411389819355458604201463639761472203871975870667936243610321710400921331780672622406036465891997404135430727610116505835308391580968296378344062000735647512628293228982218751127162895234587650924381927447684933936846688856702790133831423618402754927967706728184068103948374576280232049303480889913052988857127949589575394091888519869308218521513835230621669792763679547300396489291802434578322095627065078785321630166420909328232539908362784928569226181953818509857454212722041870302007210537356000215723158303810868053062048160190351525775551354354174129549420546880660421350615884949020711101077949961984753425545115110226144833275073845458092470731245469111793977955458833645059853550262250466216625007293143626156993971816495692901743793215995511711134710058314790847426466417901019177684311735117316660422629882555460875255528407389109735309158922724282219634470528578514400350169229892590549801759938835243419898060669152610150588646321601879011538824559607571056410082466564631022961659742513877451696122655392797061655533615685680900240450039333750517551473675693605852973494856476206086595092483077380039114046989139088062224984386333272199982776554774024980743043802571150473934477176102060528207679988305771914548185425272799211542316620127313628018798519503878667582277360793362803014836814884719502332318822573734551452328710694777953204957542657203200914965039043858740523840062446404730731280238857411686772168252286677674604490040047636982207377907664073569262639183265436174521984610761473415502950883491811128826983669668990970565061327774843758379694471957768447566766209762642049782234242498704013715833737688979691976615817073510601795981650564642929576894143909573092006889974786925344566207930196781798377069683058354739009789669810692157057482480309825333642745623693741156680932112768704397338189026527280551012462342337131053368052070011881524301203054818242946785497421245086479971267940320297406054450505546002020505542413516193635582100206665571833074781110528955702722285660100388071672025412478488648003238677013215193109760598179385832612468350416374553799555015413315881715841224786810137559560861986682451237621719888829235357675551150992295972658920671757358010652095077860162545713463579652339010335151432027297445501922285343526923095962513429141673242621616807179892733260597078728491673586688476050817543555568141976913721044702935819634222731603884781497438876967114807036102968947556842367049674080242366858005774114065274589602530816507641505690445459003003453868358137664816957523653004823712384784462886435647246069474003975209225180186625252190595091499311555210507390795168275790469229672070432338854479578846185905415559233067250524987350809345868899426462226409598644209167027261559761399148884436108097209308770090327603577758672740544979794326126660730982293866675993978498981053348789609377357455979659182456626098528846113916863105878277569311544410197976412546731417126464299291901083463562411673284373781657809257182381746554171282256833553659214901530349715580198923160643487141483113245002438412027972972301022723614515201528423945777967224866695175050928894720898216494538107062487547817104982762959624989671883760836980067319049957515951164042927530329953609404866152094894284966866612956985661016832528845826646230852870988782032798406773976900200497773845013619097128843127309754486835019624621467233194102963359332454409280956538229207566537583958449901121817560890148393298011507836072976624022849533490903971048680096758801060535909990773948492075401683419067501838401305530597691995787754150388600744149138458039636124581207328735795114829468806101043176926997984538080630545310795136301069967608247034829704235248239018505511064290417746589275135024885199679973729386437754438649969077571962788657797769545572234873266612683354922484455363101757069065088162967032944233167619278131743350843993896433137028610958360216344948132773138981394937261495142576847394730337654595000525438221297205003639761070979772355836658589548905318555907701236493731718685597206188835545118137639975516034911612250193297410790823677349384291447018227776412982002413879323150335222380443111574267245034003565776759034762981886452571476022095402752778287538570872312770348212406481027732864670473916112054879104994123123590208418152189205230658223362116606662629975981763344840852006519349376938190925811597441751218538201378733746726867366341342107046032948275769662090431103549368605772550791427278786293127099456544710724824447693904617093165199475822943536649830574109497207127088471327585193895208785516023017339485427985980800774219385506408543070846715695093897150529836001555945828775488753571410378263849880505865246003590132193292534618249879784996465124498707862235669593240598295816226838485301539453720790366097117020993790906745546747943184631683533861106403192515700759009769439012974600150189458190718402160477049481353114635404496440739295104743688505840832302159155103380410415232971200823078247384577004780106499287020690221849581937310653137046464040193064931521472026604792447430179190034051039663285676718058669143723433823686657925613297983529550121212994579892323969115932989435249706778822966740835090620228109831150678583680283408760889746928779953192603560295969372302074925493332893757338546144805524477699861463941320327149240527734299657422029587433030691124399471172602622403246781491435605352963898891275012784150701324919639147294262936223362693902311861555671143031763823987496602831795474577299535830245679119095039953489115685154823651600039849020844771992750335192138464907644253807758118120840253399863885555002846510938732641192261058692474593225130370009913019363312936545472151237043998275816319409097266993278119355637476013740476568944634885025824889967746024104872297609154798003259862928011621361651116882647312608725012531078466787217112541827908617932542800775897432934223028857855171467181506268792835034816061127270724939338187456781961498611022372004367911229550241012352670803525367098433236995834553929251988568080738857153372339798662889427942412413898065640240299913532814489195941557525972920678324004870274466515875570805887768564946702411698931279747864143022650559960859600296048231283906989788244512084464587017509715089408422163049500738619357672738364986917732092511631979073175856935266923616097863058023300994992847647913252531328355037784387714295854856755178792383174904351294455611807415429620379523027260726673474954511377871555671780259496232564775915747243215855958478160376342667249270545264055910243218502636185051575319386588938905242581223907573479217142145142516292712755357243762957173637089280314492880634762013330842655651464926578543656028321461861982821621339251163685377778721906652327620100912611550786264983959519664251569242310761967482715963076241852272479456847504825448232129773140636517214701734607345658395124757687903153159866403282321776593896787529331786103799440077046933122359740369826977230407255218227608084351586367266126360709789189071093922640693668671130179117690032602707580209550740553227524723049250930890501344582483478998338221522281679933551914089064165243208449251989667147525452091645877284467543193983759197822986639075050634614713579128315995375145031633837531019079258083281431442574013904820192650263584770254793286916632321534202376272537046984911160613147423021104401273560472935570779044302900725439144269723683375074468521987538191967656261837799025381308849031836737847261072438584505999924307154898055954693750987510981629117677662164500717576781008329482233671290082466241377070622845470934110712365695495426270476380436512573055217201140840660227642667258506019580325058079433509487105375889666414251046158110054525328004276631081184944457990434259011137330640089580530628321126409803752630562545679531906795618343342312278131641050366471944353882903750373277775811772211230862531610793928567401814388925129387395469983406799994868735316866550378371879737525569594738103435599017648305849395524986533165402494919617590730454614242377983794762146245463593555013043427262370263977855047073410461451814813502540992017357144601951125456228669294629479859262295201962488873090448001618770033617476560007906747754252026899557259225066362082092393492800506521741584923814942848532389769433822832350133966784861736519070493424087510724095678802146367277423404174739742147230570633874202011898532274967171975320887410066217810508115057632421229807090268455461398986067377267583894852788595578234578162994148480345774036497347461886512720764611728699643791479743214550907783900426275950443608368600749005419459170296533149607949123025171137548238288692610387906500015260481571740285049984311067935397288168618416550755875251435713961853476155400693885382658658886453635457414820968006268693166406012380091607073691935919197287503527371089871305761798893388540976111165785618054745353461293143771622149274812167758153379575516820243601646212185642506050279245674764202472672220835711593120419901925052913733106504073221158331867541789659416556092348458532197141354162742574585568497657785814873995727141474629962185279741070166854287277072767320890266511858214416486386948417017248400732176266020928273263434812741165819516081609379675560579708145823328352096370292674003722340411856559937502533175837332941986808040456876819927687664217487609049250984907651105713104422640658963601581525935733796283956824623885919861739813336237064505493112170207329140415519807246054253076938730236531183326072615296848193025180655957525399593379297227096687359819317564439428495013118986604769180342194798047873287658285979235868768435241172117341243790503483515631537831609311193656141487335777373157743024167952963855853839732912830780707134582749522059116358102868180983781982327993766980965588534592751358704831839466592939753676311710977790013043281794498917438596733864652994536498071653126415153533355476996304377029410316448514837895392690797743041931956069969628292047841651128937034398090368472954266491539834885901517852102395331787890368172405486422587168241582198604458005626640346796153426096941216555789470554472302626618115531862668187314277459960478870949166300213222707183125015091237041389786688964586922940885188459799125742477474067295891379502068378023918466135371911878511151299110882227265841417061357178204889799622348028851670022119755863044320419826535883732411618529439803368565808683963018601417762763668550758271024147346337066029634945838384890553834049736098298179935334571262788134833727078971085662780752601143150534715340065770522752162527926065708671081242070084640546668258709293487660499669428789515354211665804313243381829918174861235944259666445169200951546075759258064432779432513366624347781625288626541043407876243523655631885206651722372257580508523985693649436355307389042146364346547220932498598624682646044564391002107945062230999586883111334912879059700760582258805907058260327531417668670812139092926314099707957948064778603168981448340775200032107775007850019765793371495920239106167122853888149583527556532819945248173671879507858632768212934214474110420078741183733550618270567742540942256444475532127895027949578907612367908848440636192800097366052871460130580595180324831566062857486781621840735142636221517119460103720435212027739660863775398054000103728037274497614657878604481501411625088332395853458527953703477915279718468806967275400323862949755345997005336719670458159016586532793476866377452929852885188191971111040904820174657144864824391115713428726294734223298757587541939402396898303788848883382956639697249469607633127838682289738087424583167272228805958327372588178140602470837116395608465861709650996240028956951148473254526774899615743480203947390426601371569954989394331182820590400417302950661029112261812747813442788892641832360287762690236043668839708339499375623787976474146917487314174762441508507709853566085718106182817160716408355982830046090001229678394055347835124388718418350413433651389304986462282996153173493338109932190524833594470990026876565769479249894759099070443586008947024081210160051623129841594649677627534321971443257610642609993650099421427018494086570833997925024942510320856286012107650378926026159776906871185061995621995997500826179497914781291466021138305714884824902677823893895532106626694787201193784529343945525596365945179482469623660615509649709633509080860876251421414113737747022076326428290683696897041567323470679357356372936060984479824484265887119389148621264880716415183125381876778754884008033195230077242161616709217477657385824443604486837448589454227854397740776866682266004731507577294496262392739134049811250782081864151020243181560483274847594207605457022410666181453584084202627938044719126913950311826818624053386002560075414007188479940018690325133434476613415740163289128770548739065522620070829067828358699490118396162697817623902581196485679502735401371644888009197031569558559013347933377685484783782688267116609959500006734297770378454426852637005980282140190032714260565561114746771821552177665707414463944875447401239253925413857875190973342270350361752586547406720925823519201112504497558771234725568478862816676561357644879815700349696175716708207844122099435391546255395700796128328954055711278938369261735868086391723638341630394468353949844446510694525847227268896129011847962374635037086682041228220292021169304534886488747756798082543123560087885136923276422434673217340220611506530407263359652683489758700533118639064815053953359605854425391500912127417778087733162600218359127277131161389494342716132648321212361361000018813271738267021537540538129003561339826240740983900416483184379246316289973614139134935942791481207553227474328775136098310970023065927010426539002924498161191896621636285733495948043915544115034203839198531833185194171442776488302257615811366703111295763303610513475327627166321459832960675050710515384385160640977660204014036556267829755228274516556360741814410428789989586231801541739676746779435083159299196385974878364874542808123558928639466755233892060076747968353117360736134494406276301501199887026971793393247589792108498086270997373736092928872936312030696796269481551515969900539051901355932951090726586310085850911432380334642939962190706515809779818099952223913046373297343892504681538086186700795055695212423931376272270489926624592200984753265692106850732356046020793468967415582280009053959818715275742288174824277645649978670240696993267765308725241418647395136182758933781171342044125711741899429199398349648438914579751041908826927627959689754176091614967128410193351011972354045328615998521265132855800672035699610686679588884470399353755294178400566070424788992862083283415905005394730130366521809153613660191833094802272566393717888870007730846483572924558687036946783428499576800443380596117743993517859030932223169815179214826483754518697213205743009771795116150407573165377225361990212401744315590503768483604916019781428561746777686952482875262568189206851237221990520487736858619724963049617085221671996413928236846005738292933546366265133431895083245655223477876345060174941727147230235884542176232264625280127159791388562602710987365239977375160477036562626886526105692500027910879472498284420247358360593449714172354923453847382975667950178846333429288435809778212004366021293785470813298050369522160471684714775664801022845560868017909644228284677420682466540443378531539562489691305432613126258977355452160223075364145664888670449804037948757687809727987477942773840766604092114606717743100452318147949235427502696774250412142386364825912235900835648918423857451756894386765124537651708946934133146219213913107110180431570921404864363043253014682521147701825434582843575237305872534005822337698014274871098397847226605206130149162806427270827457487032923270893032733458522472960404723114186652311639306733967240907271301370504086844593828037281747780038379512849373665629319871824532101850231089078061467916236660708755079603909758865634378125363819735923652452294628621438301467303524667723499907050173668348710404661854666868547215348535958507873219976913297156609471607866546199403558466697363554015657980660219930603657887654062728131733901468282023784086024544895170601905098203505232372937901832127132093846108952940627680664523325674360970900996606831531962412862251624957706402892428980990327474372190399346917839715477101398667036928368716698555683904146020393467773318992492586543861589798753053193048848212405866111376358267504181869212267044435702016969363118104866437716297136473834889039054885496513977602861371072520340232275736996665857444201807814570634178769489365391167454575464792235569783427719012508490953238064176340575201553875453085659948921209970534380997587113980973524496339295608985264358411243667775921278939584644291120070094580850935108757724046158317958685169170222196078497173574679141859723265381101048081961336412208080948421213096628978852417353207226334909961629588789264136240413679893963353428464138451282368691096805433164417230723908375675315917243459871655653653768816305314403439149683342094965142330405662200078434596982506782012238846366663760387887704904881654897438425968987633501431242077513880939753407400382203416480018973144681406119845317122453811968344531819124213363978567476592033796535438543702684382934170195317986670729978831553050579492973530442425982518445312508946874189230742328664519374107380243675031213463974138356758117969712842833155485762470477924481200758916374066130000180261621036745937430956378357333071372366863014270731937074711357785268664799068432483455164452459204596958785719172294425509246554436456808010728558794129415532524469922231074804253340846825807574727493421583860568051338395383579199495317116588217409191101668134415703699180982754455371025513250335697522222146797019108604913192681172732486956089742275571113832890018253787213145699493444093193881436371579237509651829464254906789148842855863752834905410744951695464150030112312504224355565593339775202967625783148023179086027175857049436811663101583339070954322743038481902764681225656855797871602027673402047391271323960943636567781520794814222499942829349150003907219578073937109002095915505160751319161274151104818459643161376789338015596067099090553440457313031281244718511981842977807320519192122975902199901972266151698461334151533260045653573689517639358172659005692758975108758686765618830602166653588664042344029874652676381842693506989938474354930731351471785371165453863513318552660118671031182901542133320501460606007736526114821265749824983489233731372995319613274916539171738553026178092171380645240548250108348838152028668317598707676184377008996474084695810764191376515018340471682295350379118116159302780156484207234631220856960070373287296389550338819064634735266714659303446801428384123782348515004460588426420161482240218515592847741032725159512408074322965975610357662147963763320371542184083091765366624689143069033742491824906318337160450276666825747789701476592944763894951378615727579885304621412721182025382055396285766683833733150529210929087376411590134490211725195365936080532015499375996104269628818925105064189305532325482914851483460599795132909536438390618311465328139984438442056402113797672214019807792019794067356620642443311667163119596042138520501502393640435175869130861493380780552837350957025165923755555865855547347120503249661582491443067961876423781564574299915264758447250581521372258469810861563102409723669383595131975163820308032971789499628136535316196018749676580003567250674008656223715931147679886283397852481480319184357453554269888620197328595784192241690438682187595884045381737804699778741517452756798578670488792112470449138590862794337846778969319561920423890429973513692008971639170545455260814565792010962239631412943775765703524527736890909401859705344235864897696419937313163083468508155486275235331946893328570468328689958924567068281436781994334267587332739443725733763701713167247674222804706843233872075797902101652517657554704883276052749344019292882659627028948869422984938970227896096250807758466816162967833201676432422555989871540084242260627960761820922598401351476927185312050738422335327739163633816775120994768285271854969589413670785139626863555272807168321995789595881851928837414075017822506292434730082486573988148136283384649832038802544502410462214522920252707904610389556668204217052784323766948149465791425663252731448242124597788731514850223323618691227836169396997460752737823458526319004224881074149512172989883280989337407561076783875413543131008559050263282105584099154538885847213188230660319386531465870828639412403895537695754454606112415772235962582062468794222782506735736232333564250815224058391275363634737715643732474426380500478076252551449017459763851035336418166562580954036848592210332604528533857485990452731790700265422537799455934074396084036527933617588448118384191247701385106714051514768491364066770882321647274813889868868866251723925324511821428749288186678202002297519837798483353284225383588350769521877160226231320612741165064725287782653993827036468375154382863136960498975582865056760966851590305782186926778271319644205785846304800015576805895094297893339639506520248200416765872053183965794263021419705465436562722515853533784286208758397076326507992253826803104718267200534908126315735752213456373389476350016995860415071268972230953669565434634992303301061778306737148069020591469820278742283532456448195020619906612823018172017303929259513170379400371592037186261258244792186370675631869036385204972774634021505872183240545551143051128500355998486561863908691824297939480428620461976194546839997990265304482802875840987114818525162058899496721958664035567872872371491286110539782427700883408187525990799663464039489026743564100668348817264903534047142784215634076155417802773942245351765561658670271697971243441718044040194553049728803691699310409669415415591823677941326366201369434909231189438279554079358130118031595649133721840998044985160054439887835479601487584434707634726952560459588472881340858954162893912721886636162874142472589187057788512981634072568470068313696307756239158515613609269049026882771745007087587038156395957020106809007784433713437494043693882645240009736453181823414270178275447811877077263345914459310358041691788404299742610010428254825131113802325042909457973286637245061479681238429509994361994599217770789441361433971119985576577975545855241882468264490819119506212646195067284688455766084766082805264118676355659756811060974748202785718230914435692556921535320775758894295953787170670439627245677443106000384502983040465406670534998974346017685317624991513833663240549212055591646327319033792264708862311173147705629779313265011734958088846925200912712723523758243448146481111096295980488377970197254996402150657045673271940851041263546402813468348028327559188611998979937553043773224663710689117071659363302432753537436401598103936517446676221647004575969334251865411143142959410948355337862024298832249508206788935904119629150628895516521973112388603410766862497294998363351032385380842910709974136899147001136409765719814642676113397662973212494373526715831578349140842128406209355301290602815371868554440074605051294545557712730871223242828360801574751385534405636422817011268853992645119338851941665464720578515801640148628918178846712296325028803545316376703718023851428848921224628802945507204892321256483179911092666635292709022260797268337925314743348759101502453209350446507105837668214774047942265568059723039094119257910861488146920653406664321078900432319106421071369918929464904222229193607384864743274890719903110229488487326226761560555632711719720184345688699308891195000633694096910451905325289718192255539366893359334765423163824187525310642737004661467371417662082036303140566169636450992899369593144268279825858119390749237055282037863060781870344250398820108114068707256032590632213371559589106150627758242272308243063081801820724073526312382722060381938742918288915802601742438994626570740114090341188321837776035253959374692664759639936142715010108965793008124089573988626988672668041692961695372416399377308263922911473220856298584661700263616829804901844804578880366293201639758323257781811574669815891679462660963132529854207468643544222346817936110416285812456884415854228525071699064875189479776413746539328771247935575642884965971424756050215183713117829998930325115831182047058200804313164478572307346911130500317878526916420800060810448064237540991590836627200879756186569496895203448421103290599188424205192584386300886522740825538072612866498747056714659172759008473137274962259853298449025804868473481954040898689130671428150886465317118612973846230524482463709797350131776620160000919581748133796370973350112132256771822660517175362425945444311787609893942970623342159856920433902351625778420032395454125878816746443795282237147280351773657076866761754442359408099190710715516272211895828770944311845752609719903032977094512341478252862283949193705638447520337944858926987148418036249060308160858783686246566058302960645583291327834328551021846052342475863343452033284815442430714868359521264460512809817299673895136913421648545007299202618478107844567666040772916231117931321003640889277260534279652884056121842021490101841535164426343093907955328509627047072319060423993630735352097276372019447116620046921209889767359649676895986146537462066661168138439079625801653148570855095651110267065431582959655047689970198621941479288928994255015510665697952367158986156807740638471063279509115306261500501847341240433359567833006896052641249613360530657498258843744206601468806079435804688955272232343429882857918115895776211197203137957943945820337292583209542539583697507830834739464676035382973931852087162677615067166583942993024619763678577872177200386933755389470419063018332156639034692101770835469463133658410020517960867802936116476161039534600638784037029835362986328843391421942210340820855681573557171517836591408623363801283565535785148398660806248743765440498511316676282732470884861167427102323608952387988429184830105903548847982191047618584355074192544299758831712227540569244964259006088253019595904844025796824942337738127088227270565972988065251158379693016483955020988101770784805333942552266133021938892884116435141222128809279640004204419660150432250986937833395133229812310672199564637924137073299127967429295673827097962094509092175149183026975117317561330799173386183557359732737354038681285734202445487163834600599474137807313112940288803668913574506959073420107239325336992921776123962294531133481409545928974275139421586571016651860875671147478851024736231759672614498454040082715524427697612365357438023872924645474189891703407916542890194441816896602768905215500438602762888138441776619813736773726676465512543361627797063210476465598712383759826554593501048306662966482645703228434692630779186094689781590146908757708146071726727769993874424073068364180506024350144194965802651908463961901159510199628339706183470952266397167158684550987002640786265895585349178251618854726790709532006173380684298476868049483322905739221709580453194088683275351623675865798731150883598779865863079088855850154831940256999222917950380175532522813634955853546094587951756584090998134289719535017789488597766487405394915603232085626425099501102153861008733472492579237274416864750220819315909826447426397660784727405561151543255919463684719753548311979126123105064085688797710787790457428778513382892385295366853666529105521698605480975614073007415421441660094602821800482948402158972963547228269205841754805012864612950044173749561736560580769746640420501303493070165206679165778243801562070953384746567492447366986254554965647043853591491902461991875664207480760758093065428807925500318550863883833187056934849323510443150470803107950537677132099120701139090912665248452491252404626289465965116981066559462652741202879759028038445923644798987416537227196072826726268851729141101665824433844041255948875590200984640127803548850747866935554100401146850225510274389888241039029959494716595360235564102422147261033802839949194565669237387143591173051818533331070937321565136675805243959931695226485837407490649410670430644599320643461429381727223556531062039702060858826091547490684733793756783978490278714431688735830262424109055108995951502045462202056512337571178301205624277088234042424842796625756375491245700066086572540572420155672294451613737225811126109423537255392311386786862850763609048702811838985794867699225953447867485639918582219640935239684618927562239244760012273034507701772001228347826595861657009592854951926502514601946022732471143095010333087256025896578715815637633141442381058224397646107480278578234541456692092074559501397811753823052562446469472555242494489850585451194412193364441412436854631267243294724944878456899191687201207391206783167807573894512452712875558970993158495505212445267025317224529585401916482236841099641680490449773979378084707370065435744176255723625627322984357218206786857415527101610683963525880643870235168778380320584233357374672519470324933415203249903055872820227472319205920037894535437981308441962381246080242415369588960409966863337803418890771412462241885229511456669428416353951156982007279067872125421962498069783890299555495530803665069074929517998255758218423645377708843851288834728058460091770691538166674645592612812732345431437564290771357591002322553250156129260878351940187657180936804029996729485735244545422272303209165359787584618642826907727884206053627946493869822188892838187232854744029090619459546917502195135424341729606708256232849273493115464522076202072255680778762372858920434396211819281318469879631883101710030487453791857720634631084384822111723006913925700157772728629443531485301009799348441009701447160839885643474715341374552252686126336578943661276447443705412487883413871104022126231593246773832585937105541266006660528016510158878021323255937954492846420729137562020154054782603960621825959918833519202380836581627684835438107795411649132490059337263126134860803643007550855768841416323165425644776320220057013560919049468071292968585647710151180727434739033041136462807670273016213735426203151816589195500536990002972114617560469498955132877325471857034570421828241031484131834334535195122908027325621077955956968296840197516658116360724225243927127327974455807010602259660940429898903415003746812916684929160992728368023100107435942092096895506452510635621946234063674873163721121820085611558861944239335665921025326549345510836680349857637329701252814857069675620714588940768602239227884886715837550936094334259933763203681734274011015389131386316168879029263902934680110191343387824765968136014803152681031474286167911750025231946249943704490581541690125643321400732893925740516074440813872604255397532207379436292481945714875245579476465569588701029716723346712638794859095610293904836329957350675823665710939243552068095752445870924182361635403349773885346750512220247112140875586482956236424188351359657149716168071331142329993196739654704919290057661158463108362559935650731736457338018576569661947415530599926315406492566868942483469847231572821240755689730375726670339102217781396072202793965916443349545518700279981732239077583585552612220671461866793812621456789524653840811730285136312112251785005655525068382130913744787947495262048209907935096462007196162322261519411249034544492649327619947357951274474272320276385558186721296486495885206774625023483363415346260358820950917400301971725668784878552485108963384631794716449892910282933304373720588118621243578449707653813072525739494096651698202018486756587168151681347109589633566716700071162800009765662967201390796237356427237234046416968797288310491396064402001163879026507141505901191735688279062649636436616411453865589437117426965895079389989722325037988250801415118958477734647328857612978949692940332781477590987031208623719919458023747962894687965074440962839778845602204360816090905027102711173080473769120801508403069842539358958695909262058463290694281363415025303996046173254110873490563473335311094386144319010177645384202860597385713543870644376584329285149976198595919991548668230311960538107036983268912436664159991926726487345505783367122966800922818944264159740949439981208338298445434342234289385324373665529564826676450660092006436746902516417872399540472089531382603908649110069689657579333520736635387984541418985791104867876772682646198343055587580636948849258508901126112048840514396391629369727413125404381034226515783730741890157971256103308091102560693312505449805065390129434157281877428903361611875294286465224764106373607650381248821257699434158218584232630536798181683157491438717087064116811516584371313177987208834291928532949750592904630610821607537226871062474168694174478461040223883287787123743437653718515031502524845474890638896417879485079598310340726470965481607641720579545730000768303881828395656029639341091341789631274594822179406616786869927808427179317201570905142858156941387803692451487202521286087241668861986663385041463168365301379119884032861397370734952392888181925952408979829958148182209602642472370999740064665240942100385628979837142092354907247346806718887656449198976597306193219198188608404740051392605076513759543247376462106339278497597488098917682939363575054505378491962017529381181052847546023672032185653980228688781441904681409358622498233775476635464508364067571860382629897211023464433869274327305349367237659383821233163221744801399032245712499712783569370188628495713266744919245143829677319271630406134300027127569956346380930241882458191442120856578046682936835944299327356166654743529547722864350143202645320442636281847229065505597815310100294740658332278930123301807038150846309900394462539816501140261046145825681520694990194231920999304695730230477278640471295211979134696559825524637244418086482666633213934580364052903856571476472891275517494907066745062136889934733378281678910681505979547112104718136080253623494008113343831644576175053729004654761676555549422433257410121449588392822819365492041064333149701286207892393943422851501672483644709187260009410227814136133768676670717059725827139161821996943289210846556431358723186974557411472707747438538007406541503120221310317646324009015388525885039315180030113895093303021380051766889908030841270006720065971216544391791979515911703347120183335079050979764482829662126791780862761480805415627462167062862949391840492358912322835588967501531441638513704042127489162543249677329207691677477537273055719654893858432451439884863870775651419114709521831713375895463550628447554465795203939202476057736197434157736430500714113509021587580136925971862487225506704730055213288191942654762843051235739793436915834322541434020255914164118877441670211707038064099985793456573770413991646211331802255653090245209633202565427941402040433926076601901778788946862805085365478929113759488995313569479116015952302068120735968860493975647751702511869715492546814472374820359880634717181941348474167585961721917608171560363775787029126888250481115506887500321600715947284545806712500249243066041829969715102312156644531663412340314053589216641610958130036936587350229506596242482660524203238175460857099432109444862318101491480651712250849851944261153457196024290643977062309955565979330535526903095940227499990981885572418306354012380735033291399090578474728859153230392220304389156469216151138536372597414130319400240548399922629538711749182099836877467765161626605479262392568000544045456158347778008026495504658495448570539593604122105010595268053749138208143471420639914565479003994091293420522783952381102632240393654390404349253498043153233562050903684272918878781956445571356380774981256073495896262631880404997798655958254385719632266251146065213859597668361903233508853167086316488088121576738193753732904273069366292664240429889506686849286197271681702843371699846781015072344704550950136555179121142231054598715353111757175306340290075492019335034800250011282628869575632681834613777580908576753977510552405861746545400932563712074369532029019315098353199846114609019422220726765556718009934383659097364555492418311979318242675408951242077354619734501108266031527202125140746447886601477656664051285355692043949004873030705653992921425967994275917874670234921885562797123353436944747011921880607825544218269114274955236859978184140184348448304135034885628071722811971732535380210396730384550653033163832831977147890023659374920253473197054381215947050293145647026737173770803715535002906469922730075416804839681698293239534622624671616024428042556211650992099263995979693513053712036593143075368524999726955151072780652289199521215057593639657546356706944185604786583185429151015811973009587031855307929839050887540770444189466944060626286057603355741118932103170736963424613387053759625584894607409563459703995484730601560644137483160823229302343604045362083327645890104471813995954578920158163499253527802381789706937007061317761867137198746916082412833055817483095581623207857362369543608442677707664416320433081838293335697379720935852922451504849128615997796940393816616104541580314439147034753288134744309125011858140600971148804880132543965105681326153169478594052681022247200921890114384047122125426382273725939875973202448897580364053348158672931399207378437618407890172783402931122054898111021490397979639316755834316109136651158942446959594439728988052801729295711428913155577303081464570207224500195833296169335324309744617041085393059147655049398216612916349162884013778875310642638020444185588132543302467658598237005195756167607554334740910062651578578674902683369439155623543277040310165290175111867042212266262836718020476160694085383259257516107469872996110922837614298876122985849132711234610601360657744505046074012629867177285563415028079354722357406462013234028072650148890484672935186328377439348169479300286800993090385326562979140373791557657108637715212650473925683567423498479141536774225898688301277012578969625617438011420445385158495864724558904144539333827977504094955555324116744293291216367048736436080345341731058866263076550895565784966075491327478503930507375213174034738934973033258818359243520974365862782937696131444983924554126069913852039332734127962162626840198538770573208938824278292917346362488849204826015069534969876743842539363898808064565292317060183671545701088445562607672984929895462011930106296269039771568629556057691837292087788902321464593557654147571656323868106858343471257447361587308647080167546040659858401870727235564759538542934557940031327193169473386320637503367920223445202268752698492853600091364415740808646103675960597566687480947642979135535745069603383324761091495811743026356960117168484912074676515712217449855425747404322553478166618145441690864992262621854412053041049877649383223584014744217608930131733553465910314369571624382278628171739617786315924084562551062648257826581548238829253731687458546565398686747306429137322043923795965069945995114715755999161788213601272267661403502214073604480995116099053244285000129717392864328783097085047236334158393491784195312337104781861221843791143444531157203311848342691139407425709250854372048294857018124437647203588756769892798277846015639762887738463466619313164167856970166781400934417181107179307519600262285147835344288587221985753500251704632650758741626347052986498568987818257272918599724751375075899854003654496014967099027649649837531069616992874742465838830480768317304361803121465633646795378063706391824336652314982228523581711234540682675030189250255145784368987740165388033662010524293769813546371918530186034102915395614805778986475759589489933761973562137227894836372544405401526331401014123551364336974593846454951037012028631932428433457769744821542386701871819287125155821738211284748599760322456027270426864574719731758197796736698048710008939198735758524531921853291766412416537298674873489550414797086200726931683585673555264183270988145279089461064910855441052951787968413924589988298979985388142497841403173981358744367766378869317426128468810874887484069573289242357476320658284112937162074903346132671425004323292691434913043906785497593568729233891154765822276542796063878576234507470510577845738960367479214608828603292383924004184166898741800301380498456562728459747856264348412218619145881652811983090074478939149185856240679624010177922484441074081683558610992029867581851264672025886509271498111028879175796121928402930657252967079402879684620010153960458425057930736920127476904231106161475249564239476429104892730482500669917923657120191311037212675614725707313084108606170369183205917293589391633412134948239275361051520789428710261748092952968000086964021043709940138609042891320248424922226921659597770955441181629611490240386574412989236194261009070551285103689938272749949337051081778800765619411960689495929350849266793562744128645674102197044747871356745889821595374477406283856924735066816161704950081651922001232102562566628898357102644618172402162968986184646428853230325886064760569553399939020129360832099801627617209957684536051039222278436156925576274206527829843763734505369072500073166802576417550695338216719049824045305584332231517318649378387595537916221880171378406885320570828759454743253812938135250315454039590212664366333164541829247472968370760318265791242660449649770063355569371330124970883009450787318956084012094273485452282420161214111652640910938345798225613989195892682099148695170082308118249278380185054483755063704956851968057820680591206516811796749732875090780115792593994018342201615239947238898958162146249629554759820419150801493752272912523594874372008929385873224181435586288198639626974704453665728408759007670960882766700160986207131741702918495997705781704372007008671801122497399986193906744715568123750126559680248588211705157393806623413542455036057619337667888164237395744862228227092525503142990346523942566740879916457039189043222809192702607150926071794115620788746370450063943055068664575450695635720171020769580547486751645557582088848831741357958123800498307028842905919687930502975266101227969004197640649754730024302355518094803354385881201562471336610562463480732788786156495011038661413510922659832280188099393149250483284294052371675960968438061897896749666616702414991904048925576428534902693609954073677907107681744943546507403624885862974318315936823263736425872407365744114662502972536570218593391512213635427216855513052320093030957634150900715055569636744476034232582770367214689634166485306519152307491680559625063200125993534167374634893500894182026402004495430594877088006571100761641190231322092112263214957818273774752424066084168944906815644313786024821896194818397494556966638157378235942391665338476071370825527206814779389215395460480118156448747600831144019575747771682297000809852376004276967829890492585977442070999732962171100455281351419756306622611841301660057810038232476597529765095437298642050449805754384648300669959474396871607018820271995857803419763753374422729389758192673108944134198834766524860545967915325171498857874705800232652130078492007406023188508154847611924023790891508043649649963274740267873216647017237877710501083509745270173034004796843703092449492611760351085032674503928221054596510922926071508166330967641924809496567216464182688463764482716950583353250160223803287646824796419571810057938401765302372066001885334574053781670031874708401316810232668229379840579686119451166132185546418128865133010225497453420642275194909076586593797836748890042950174397331301543961631670176034718985135997941022461246337405638071477947513802512373170540234225880929001784815918401479328651264278860650564332442030313017872291797854406847540553682692435175014782460088933144095643109919783644841993070647497439470242897350530483802448772680358027352087594482121272643904581587172314139749318072787496250325947276900398963373932982254199226772070140304390296985699844775353908139494918282763080101812741480226202632130054126763296498473164377055907676835107286472419993515649084375982025270741605156882077301844085374156695249259330248597677364209700852927208393976149461810512896947062518878192097152948786986429107580350298540349877214182481280667291008779603558773398949144256773255390842333943013934748068158944215180760668798316325239252599324119355107783663718726664745458099026786635847586419150019070404140171832923396763576785618854074250867340694799898683332043632879148281217064286242221210622736311880046846394475771145191343499741029021788875006686776768709987979513137277948613220989554223880230069823276488379408297694582114223563176299666990227478310010888556978723133398996904138158607977352871319424116280556487175567117294627521882356941533229283384218360111606726942922256676701821798421513138058425999689638469453679214047469992102804703503430391179700060269182566245090803633675607349883221724481935158132079385406367030753249174454757701640756795400204168299401844768115441039896758390518503009529148906206221568696928634316329568962779932152977421497785524841750611908401319141369259686193149699974932542426126524401792188571281142441641084176204063869874092365879602758286730206146580010049731913225116324682076690583086128296449020805943570908412204461388295265898392611473392586243851062336758372107886135950714614830400111855925560085128214943919111119177950897943771226593999337080417941037335496551134936761014755522199325294288018335958758991988875064051957038641831423496198656714778125307013116277828010492962790632382970294570218150515082691356926870312641009581231943199560854147710439684475982487644279342379583851491274012966106706869523020417287547834801986218413815091963130986293093744135144468817571542142364378638242968176377152769296666361145839067046545587814910294707798983018133002856539609803546145930667923905958342287594399521854859783450212621773675184066561555293394473237081702173033773504237419632280472726745028283348047333857435710421795251237755167197825491720392282702574062171957416361612177012643726251942723432586321189695849032632890082894888738891672766411100009568242499272378968028698046505270668784236402629186225240191010793654639012208652763882698891476631294491742242363011989142216708029117327779886774810957867137560040421613510190712195800314412243896675126809743149670005701230345113770329640296013534862370497825461967523888399963139964931891597914790941483691067852007738281397528493940552305024619438158368379813763563554417392396468754906148363111183771890036742672072945600723996730327396130334828282048995953044164097474613960756315311401598629590579534805389548100823843186560325937970181300921801455946356710774539054449749864752894195534449583169780474589279120615823713353468079839935801795940333750115110581772103231057520826439290124636206876722082303734925378714388771303670447600925926869152189009718217148214069373491040274432423728108437912276885143725471266510061766655178158281423766090760820890415811182398380881801207598747747219457083564055148038133591852899109991912129529132294259140782272394370697394486592069466702953569555453582882426117354387318677049098013461334276714095039926355559356154188117052579046856207579661831074502838915844427343276997375017784243502326074522651830145199883357407239994496688835999918359216243612268485169683703648122394558092327568357571258076132642720708377307315247373794637695467563481236107811441241470269306664713272734505908613845091742936395080090188307574694383568920327386832104285703534632021154783483374548208943620108680930227665530645837716010389683285355434310818321404154220973289111973393696516322310538019018774123525020509374976420528441034690125584362564066226027267845435619513684062901509319090740175819550504845589469274476492194852151153179257483156673733790485768001725392806062601019428383837787040996690259074892620891009414699934056526543089251873968934840348739564486092247474732630541062378281708063378469134440636677141157166861493769009502859079524756291806500158392434264193040703924144271932004930412919709107150188939879681637101939302203954693382441034129980590935864051055186467594920234056777024577479153274998217509786336049459635892289776036297054668834743868285839124353919158512093545310376972776094142426572915429795073744384214031746858988777433666400043690217948035038167705654468012240385782933471251444436969518905672009193544310457228348999189657758733727150959427378654327864904748535996255479512879001953437636732987040332712772261347653471518753496053285444037031968522997049296675716233930662651579214703169613053751543924788107913463421403899600906248486649680307014998102887521011258664050126778373030218093785315377825402226342256805572872103514794267742460336997093171464350544512162936779859924950024708905940056822143757208962881486021676693441957696714948649853654610807551114492855095553905097048898103622696920680260972737687334199702424693456517441674234929064186283789820580002307791512648666151098599737684504774460311676572691899172837708761549944002706711145085679047870195674959420213979138972725543426828025969760997732046074356805198319381876009082154198631680363768904431776650790284029899456043145260241256988364996571465727439917234817340730594712992755974796478641930496616865816302592871180075313541413321365628487036074994260185837522433086681280459203192357066495873867483970818678849078487062224426471864361746317734777986385894667311495421108814842271818704022125379392417591858447611219213342730204606961307389424526901596844271611946398841258061913159785567008499637517604401923160302839803830149171405295204032975188571166330462169984518885187827572840588087578081536020759765187752821129732060810882288290337804562479282146332814330838767945748708660856302452289782893747654483501934849988241805147913463240175594827036394282763599069525209408074733842586268706059955358204058376857336416848850090445710883533333236108048071319612350443710841331814025927947038283963315302583825403608771469100230129061486877028752741783140941728880586134109018733288843094505330653996492549448057619678162666944761938465082778579981908800116238428861374176722510422393728951774019831281178343797147258394152639630462364127927624629862211629203292644678524166603468099855506304117141833557048828710783368250532329800933124118184931429636532214550519440359601056343025800446563459663356329055678488375172191478259034626723775145800904461093953088120575722236980889223481603837408954615935592399208563037804986949744492814370771405764128784695309882475821333924168350486624482450444609439868128589986748452516440628462905744358437780651194393758857070640464311538009232393946507674033443986562067019952008819373273164550569880644847628967108974196470590467752552954936518205006944837596710864979856088961840559553088924433711130165394574937910536007779656028638028941530766870495523244432777262500285376065244986895323494003581009921864406524859353291485826769612756131286098771722112898546844145182446353015720041239799095826148954081585853911693966464738429645194669462658671043752917457238536627545787061146549436242015219619352146931795084200304934285869927494213268134236541869875646262841784708496296806140051503715490563767617511262288812452623625622772973137215723145996426127852683185079630084505630657343428683057167546445472720891458565390892751212635715189688123692688689893325096557911309063345499165577555483005407298960674823924088755217400044132507159492148191070776151514157795908896748986522440193446288201210929695019139978109456514465086267435279384797734447017303711661750595812161028720962590617823585808704270987375712358926705468695281506881288066681535809172763807014195168578328164128583518992714006111394100443113734434603238469146208957899231227264475599637756385286650092775484121198948652287796448836863026628091766727013683550835015252226608213688993605533171493843656609188577059644696325723069490528283192765980592432713804534268309540204845629726724380849374702419129359918796942927896960288405554079199084908007579869560599974186478641493055640973397715196178879571483728265268185669045173340509571250190544462267638520773988543273931346136962052372626582689425117336247060402934402516625472685754956142016776941728330280161429462243208410497345335701403484608800785310622931101248024752575906887561200145185534668435860641726053831684966340705617206926069458919750427871171222103790035510061488035472582931324244398203912465697233812616228281704793857637377900355128056688184461387364834538207758402096572649198695102596823963239999645512490935451750129706837166551042150343336695803700506907418735436549339658380460058352100965127704005964459327183417939341247751096559966803344241633894652707130812825285929102331491751265244921691652938671753607306993224769706965151511223028363356564703546985604358402671283116016111031946500734429350828195806231557239935997445015155049608703801889094656129863733387607919420630137294486271466070689426146400472689333952656076972966750695639624224060554540851512730860159357823310852439427813926099369963169232352123104744584071657676848389660249843617864010372834826442484187375243287299212747746950493079839784492182149695768934685607989189235312766183911865357970723852839608020463083824190382707884274431658697383967668810407463426670953944008652249284349059430805157604104110307836825133804588861396426111316171278503506960427088928828068670178606608209346480747732278929735794368771976119906758439378720911560727195546515823941392375001757789734214930493156324985886085073044645210377694611991153094855855575509847806519422258478521515850054897189459668676822972142109992748317530068204480645162296098515692952981522143136609793970701525112361345898492251789020958967990054912595720351410254791127903533742944969762464642606690202699328344773655239034301018605212055125613913970899751197678716447454934758589504070744553081259397402688776713967182897689096278777527851246569620126261987547233324823203279052600162780251795134457366446688419536980761728659029648973468750430084751920953477359360955997059361493471134152390093804372274507831680682002637571149432301301490000840319741592424805670754532088052792341337253068083509866893004686332626996164875375869551509776090294183852765075715142728598280467386288386345038125185546227621720635956673192951487139430700933436531259773767065055325114993849263455721150696697840869025583827950207797904213994327390999043398710670894500138757988127251952664811069277970314235227351167433851745890780908530582217899635590432477773023173928777127112035205208923238357960280966593500680916774577713450581827429165614120019822467273577036970264943665975665307890304209253212896362153686684092048251502359606912029958301234720728148033496548778717610668218013665624720669754871571657581699979447272938765434721125607664288766184946172570836795089898763521569370698934569341615666037249586803984601569551643275583783787614947622566962357846588102847124658821081246827455972081208841730988630595359717709582736858881847301862889224812170641080198391978606134436998049642514954375985214654333444866245139209732776241513920814340318561640780517884655847470497874517922756486623842325496644543383296932146580907646975621165326459420183062001082559645318097987757471020195574383032889866834313943472550959491592453002211426777982481974269766444668723440136213537084914321723784282471026479837269205271338011750127015746379802951990806848939531776893285842518270412219426414334806080360285667267571179786515736094096524700774653612118365115907767937673822776156933330910891143490190175975005258523535432910067532627836666210618716235661827526074226557433000463012104969148695383628409929657993267877414846130237642914919154308071798880662958644873613802903186724295651538581656604258998393330447306580473653649521925277699672001095646572249623469844621528861735686464222003205862768032647059509371116348089500685391585901134364351529893954198299540177150064402613310127743763494637183835128043935431647812410147411550071910532941975944547833456657668383158627865352715669319366304751644758880769562669956821044014943649358449837444909241961257612154746062969676732128563813708829478742332660209396415551437562276022671462453376804708749359060547905836241099180780274152699402815984809964383456960398694379793480810229476453223802066956911875975275748560593304742501087720712577810812241606752011313535612802053409490549019659872920583505243071627651169300251597405239113538378486730247767460292470564304838691305282824674073546639190197884946147835383015972036735973706875954275762291909738797312302814291126593354195045114827096102106567662450866313463319232368954031672275630098755667791158661493578794763666264145363450814311147452009534300121752465670615519115607066715639090828119792418724446511582624608689273778577041348385518984549496658701687045325880735615252797592266268560639736725376432055492680074988171118783273150581358906630975769401351696645158365058056420352788697504305843359974931932436188358472953050042081512186492625109834602000177190950223788388652002464770524037415321853799483734948805357038496176754369901433544067307817150923866599835346074155825026475989636874163060548626077360495507033092337029482720604469175446552307872785906829724118273042515789912200032294030944374692668216779821211697353972882222109208309791060605820562131407901421506486993232251868744818385636693503368587490065353198918731060212665847638831802552434651058170172853700875475759711359371434460831936053905391596229556627985235649411789338494348071828258771846825518552843011791066977819953225849522912995296672490734814941584748634848685456846292761012580630972202754477454067860471551902800642313357350981830720312746800435347657490123583700243219510489180397208656491007340774504526876757286659784370659662068280858086936759717729083605674035326272345189650940937192907129623309055518326238806382417355845322780499075692480436482397285780871417326942148849117166259679429829052260313370235683643051391633210934407205839174464796476863309377003251241841641219202916577252263026849668942294380647016795792826215704522021613615753199996345941589147413602255123138293843096783436515881061064078479914329098209376856193335969628858941782205386717236549597075064985231829956110816735083632000866702476357386568927913880333424234544573478872473140912736568122004084955861852900584267014848404098852502097606607510789691997558087185168617680235219498466291225317343496400888922332271301097150772603848821002121686826461166736389276009293194010583619690465184319867186777494097829327030496048585318542625163114261301083045545442910067853065608410732780011832684924480024947229522810441561287640026716649208901892214703752416716499174750007196664494787285522859879346254774667699761726162831088922485630603488272275000688201598851935792630493601833254225522159932978719246042834553954061409073493056161565901781369515854684960924419300509521348755325978326463235626592313697451140185055668768146307640758885375055406291399944662199919345115628905853107209992767461000187464860714878758310383528921735171044792741495596962220630114647396335801826294483886549999271902825033688761142202968803953851800097984391290351245874570207889281002698654875121683459002711513473882668769689496155742760192461502285379608746482594058763896797175828943220745711437249548879681156456617649082079622298375458846890583270087444807352268053819859611841696713719003989266178699067836360796058298112047694434681555980730153981271305178318959561888395976966516854082739196219142422122099990854982107445903751204760459633192068129692425543975024003010215560398858912888365721598051230367794773362327271236233011797574230194109614776405801287693079774435267628913280530895290595292421780767095872073886217027295565674968440719879687923009593826779352186779308497661459518057054905014790473252575847992505519587018472993254518762912523741300627035832887781265695931446645435840865059988911285116290510393722732268301496589998560221147978231302155547640159762973634723930391584313870287152266488486750284547068983210853474231452147840451095920872400447482637324614878167830309910101597224815568037134666698185287306406706311272171999906222850665063274935649519897342543802530330502698045320819854086133659541630325202369805279180409413982671549300336334552850309172175322871835479457617962121772689767912615040019276003337157012437462244516273043216702278186140966355884406196014311133064232417299506052042668906744268303619181424796992547371961898548751014925517590670690243951120096428365266119137820057225844213799450343924311626285167958078944436559218982334881903427690563007669433892057968734354577453728501105586896921127896873346391972189738004406062611506697996293892075388176726820476987065530089579613184467774420520052791031294324496152217368589577366779326146132979487972907932955835260596825841247268215418905060719992552758035891448334703805135492007437468362891945072159293333765688432407143015951059448403793262024164955812436179097290183859743268813229856070293747187514197904238680536282798623580999286788187732985996741100793140894723463600867379171330070002808627687938702373494286040602002632724772765496695135700483341927277141377453174634584972062615752946976308126622746138800523530898987396616051055161417012242288926410089284536897396720051373151494490428621450794887746524449474923112609772654619576069548358974609418675586277925205914875684317320528933377486183206532415492905985340013860853669996680380199744922214168426074423777119379644002581759784216679784674233555757399605255258764497315305366432068101494391245610950369484124528325816837073562489511516209591617615202720188167172737013247868182425970435755879214166616031732265955115336286536036504342802805862369845926887892768297105185130049697940561438102570868115763283296519546566332262306542197408741657380130289253691957278726555201484742694943167008152744119934282612495962413610918070550524860482601298494420362609156693478526382618193133397647105434683826216557310191630617118577704957861849762982522897646668917205793013177151884690222834185660121095640634637688392876274032239799597357426490642646886403992847004139849978795511345727251167827833532574757730113465862588136818369085131917332188531122763586556025153415911715741173249698027484492943472218872110153345288057893639072189817681507292923390665631551478102450921808794136080731845077218376982991901695642048973971885968179050502263207445297464413108971494276546229777026313255144509812069835387336854656278009891190922331739556322752816355697329202230199215387857873436287556224799055938766087175049947110588278509550898827349022955945758595633585341195904272871574120291668592286906921831749950605744402014051214235473861761483847709703890242104455226815957884203772623695296395442902253190696261889547180326412899996099383742426376546898905584151486904109189549548626653917064181870331295993850521159641462279359733540996175994196152454362542811821458225489901022230736335255285236289516301954159851315077481533971637094835158064256533326931673575562073197651783760250936348182715114264218304370794393848082064761553425152024148909650724677725935846379882743516813513832258236699367532922339612817815943873612129069705759167493557083328630510618703794434627453414953910721522447317439696124454283063237169109535053607128050141577740217519003854093734606587704660405553086897756159278445422447239772400643317268637376976043210271140620197865574074787247379393274599250143387785355954692775463178647438402619131301103576111423438869542276976499963445064845214849824833466107926905218963833069118771484737620338808475777803884092329765853473824728629027019337050702635603349871829643743898754763992105676457086560890959901844270572910581526314184022317073167084280221184509642933186461238324913006974953897314563743580359705587142035742628081762416708139040156454316664303466468160860203099044137945795967320449731598267213444664206028155200216565450334083566254340950379916688543395090561921596454905396753507884724148456612247125950473220745623400559756254092590956704164737908281268741969748249015185841076940662313770944141792628835456317091343763098847835526667195567227733052408000197236421125233514820767359854301409800765620024576634019257607416297539710686556718001403123489513709457598091463153549523126112277450917351189987745577367376136968764490550092598358141753356278254530336379489755664377280722871463742524632992862889252389219801661031263484007173048355937572297630851697503938166503602184944769731271533503688328199914616343702498158662039239396691911032244066965083081326350947021702972364783215710407641131885670997064776809955940540177053102147355789774750501248771332838998837102445114985254391676147967699372576192442760743422465557649872599259730820877091796868877105582194638779000166353840276851616409695517968435700644829536263736354087887679377892705024937151107737612754602182819180884312458547999974947966637690792212620758265431736028684529421944575582833315694244376182107665388314447840453139718679575537941423919654518283556182926777333423462022207163047395953254026430853374277041735033158883123734493674194540954102999098609405862348958494599305282618889675642672291274219568829814901934490940800484938837956389063729657448755464082162311381486267725681832320939055644042779038780399644000585107440169717007212873454037448385991093219009656660395232424231381413824099981216380481587151317058311074659973391117342339987916532072187910261397514965626737215194816728026430241877695814214078970771279902702109075462660723377149233784164330541494898928236676062833854261339164026099391077017227936404774704330365431275352988008238297429025883310628973225587902928676481847125040894123540788503383427880889508538259286405533485278259077277258726825750864855860184165776761159953455037162473207226084892756488091342849173744542339859225454577303460722708142221810826435025123231021966097920841018726025293663120874917402210835200244190836640474446689045118205509366903792502547109989923935758521624716051800647546362134068014912276689785605832095492501438720844980367907142866321746756306329265876329783636808065691787456800639928488448899664550698897493544428857754620642280604197683409041169191808852050021914239937793016447473303403529856219784897821340581484636268424463770136108086632857314040108524484559669847478343591350573103256652002270684809134312154984263724639158491765369230701884998676530857437995140856709339111658868735642542534069667810288657757333735247070851903924371613076624452290360751517562289924961059627619449573039221492359954064037903559509856328924373827109117450718818966526702440985945170307579886423017694468064996183048222470012452156614138533526242429901465292612788625553060425646351827814715792073080432884639375604527160393713203823845311034992177813477119732292203312583165839399785566137013704804411813296667355858042679523497602944149161986490644422352233081199623626601972515048568268362907614731941049046995351670629963136635999034768617721309312870836734074524952789771376803777931075456837973199701125662453555916820896702933277566373624893697454648643980253713574663811413367459638816701459051022967932917902577758725240865950687227769399643322449598502855543581200068049566298620843794509594219654592036732857328041754605221097211090544791180831113769118854081989620717197786653884183909941111210530885484327046619092600200042310631726071915218920643721621187859657409386071464968225038741284962427375873903092101586380967891395244848715938026611047094802829696621258479804865914808377055263326065047910170662759125142333990264639540942674010646255211934602669505592150479863784370467767024895759828988405192716027544965042808516785040394449741659944441035446753332907137681785765259167813514822051299052980961338570733296399981375338943124580705967218489288496735904281105272055335036526254960913057847344093923865878299912927106026213852323193589453260684331019894957531573546655981609383030952644835778604234823809514495159984083830286325184893163745604265970022490329031274518474173177191550902329015858315868269770890580172297773166930664767587526211933148412575701020606161506253535674238675457608162116192742197037726475401696514382674781679087258368293810818265906326687585884561565500623772145680081320332405213892501021926521796759624419882096090255804664948955694274783411269736645297409255276900619318694762652990900170499720055891620842771154963497880517176853544381973729483389717970125945460499422235446517622744892786853073705435536653568094391003661674628021097944625207577368907835282757125753573125258629681398984975906302620186946670040408335400225012853252213036170683685654235858521144421864997416750231760093574029833493806751925098967537841323818607709404495380658268042586889727075113629790931292517658450324169927945478567351001073638601109726199742233567952955062170673973562727643648261737966806287111529740474430329612200420918992616940428287148567670694924388315097757344151594767200920113073144384950276911685719938881428554470055527588193113321896992075733797241586009460271433787665819235778670754140040911996027170906654012974345486134304425338802354204467361573513196225789425736415574632965794659247017632782393583927253581665453983817097537463422789016753868060150422387563993417537271101324906016673628029454430156385050934081118753281722757661015160991984077723994117247106463069040722252067488773038651336544035116388012041003506677543419814144205074755207128990095409611447629569928523430373091945058235786134941810173345942285686405603077776421386190648352936852493981594251923245690081370192671737373589705105919151532933516353568365077113404164104380221458902414164150866513126392313485863153834405739614704641848118362499693189932130232753571101906091299817974241312634115543956260386241904873527266633451119562732739414001796441562552747890521162377930574040563358360234706486244666626894690747102186750538219400918593778588455754666243118011458418901630338888590656805966068195947439477343636835287232043471220671220029533350503717302367337064497030492641792140693834164351549066174530566592946477552158247267895780853561788687354863105998076710140418112419033173565362339862049179654867838030443327384821052675498350411965338830321734410710013071362690793528196229240373254496692246014646456106846349079685812991036600312357258038679775193752037057464380282145391618432002109827234182410751960686387716697770516718188143998149115430858538690670409609578121626234845319548819257354184493268700853600945482808724386187203007064154548635757787052429425039681770319741061643560212478844481959190969200346327509221193319371371915046299734229801292047515988817910014505959984020849764803167401843118596889434993724095821373844057428902044690622046870702778048469388271534562079304761049871012275343064231870570022998163589248271902549542085252645446977528560079904573147133049517834939597228399215558685458151501627245290528790745796717170263702617986406886039698035109591854937197155326153445671109760066832654345932301422099308787516923937176651729345720543194695180058911758183361677681888769292643486504501529075560243076070203309770818581457546968795830276831461344006119820840352119653150067560046282720170012013006891630833470201400068606649194809430572189277081814743941887489296108248380500383118286175465858939031669995747663077244241009032305247347336697210387811149398998155055533153415125856982418878166978461884359042750728957422453696213512014859888512198048033670628623357183459100127093612728067883401609511596158986338563356049758553679933778644879069610469584860649728728087840776727099349569191708483877472754733911775349666937437898537441144542348838139254563752666550621556023087445656098905327834827021191465192975749950805409106740179457544112509160018668026508636584228649370519353795783643736952091100534945450020665199695233916285826223861195848325795758824476641459384157635624813223869647406265609398697231265563890125698147532589682346325717803126232152170817771210857254323914741986122123053764959057992034040949255510789164328138075769522963648279784046937594769239329022508959510544453603373843825139683900606985312136797699730137320136162190919003803745927553263450543587484035560276956326051146897649730355409666231891355929424676073712292939501711347082207960829430530887167254669574230254220712852519159120199649118211191025277580619427840741186695197833279351534836246237579301156069344045255100594151357053148088294138551642483199688060476144992917406822964299160473378707951713571189087749855109509240886212573903093801709437003272008821472729445857465428424059691218596184027394351406083119659176567953714644832402825222283249232962339213371961916383464600681529605502252915035124348153632289469430521291674203565247671210650991442356752426464655013402411891547638922033396971603238073719581343101204270762430105641074451247239162017594638077125111281422725751103510879537378699433533589648874921678964025395206378520151214781399705373983417113397461125709665642056799362361744297430370761701725464648971454304591843401451298367579982715739771494704805952175745070595560880900691137343263809016094517025487717306008463833954714649274112703698450810627595685214356446607114220315597704356629925783439205183122558617634528863194951587530646342903455365771847028013316544889832774002223885239764726685034739825891893499096582873549559486011075920212281468637123057622487138244356565732980927279810788380593542358902150103569828922538087617776174380290229552922605175663515920398652144171471107300078851544634050478993507092117395783840313986522139304353445629510841620647532543510574956767756849675296190896478045851120301640996284138031182351027971720253569048400264833548847187253862163545386554520495810660074703291922081135449732578670826353842375610390281770857454055199912350553579840029108718007609911680292689251186689723958092197543060097665096614891070580073848892327358121441035614043249573179446616046681723357668335648712944142789635964700673255656802477262204302980420976925244767271962242306558499732690736214462559977730267768625714116099925570975114076054876052355117755680597760472739662560854229995624433176814474028235248635339769897778792484938187429200272553162537406472893413388564773929543969252424545510771779144589312393975881371379951533829793460471796770519116759798520472996845170971618727003121407487813887192466434734907839809900784275789475936887028621455814689903955784369666287698398322646206943148897138301835710667565221082058417985335477119138578123783982524011931585465179121947937941472693682341803472091191509690900452052677242287895991184968080612623302361869191172120276245839173030412617470426334513807646979862494014386327288491265440709581329488038032161329894206877088016943874553880393878971310410802761558802681791536292713190707178129194289962335310471298812257690249547321689999765952746834078973573582880932638076435275027631741594840994041387594907597623941318766418401485348104384539413223950719036624132948331581624407072072680322396064492537442572755185046503923458640172059365245460708032974903041913199166381327323253224104401944402831485796938898144749091806907888631614407563539802213291058139423118941541572260328080778753094478585636697267466996095886243135828898803930072196124651150815442053240512158333435795242341557513567789041811520961444603696602248900174203380095681260809034506966716131517748316329049623921024946531500896566806048267215110110354936946933938952570009453870864839348137997781944504008730213382707800302908087512197048444886951362180495505402650310229058294131655678330217336658572538894166885507641981472419552060964267623450382844024880541568231470210912641953894779480817734822613141109284345906141508204902397053166100614245272876944450417419752279901785563528000295006969846975687513244022602167523211175980643615454846232100749210057473004550407146892806344138326027259927697970834369604984335616188436825291799621818380864633022476850081656182765002058362652411434080820604920028357309201768761417209706112137949194226221272288731800465276219526601863063629929021406143657448372194247645230032523880893455624645456309973791316600516693490839177780415584840310167388574240997579743468605092966374615952067055084695394486381100667621019362819431932102504716072677867135816861562465525819998830216630996308477086701111207901780467647719953344170978564907306473743526864483607284954830360169266543366653049239651545605509315068775720760114040866596105235164885803179286630124595369032336935501682270661090853122978151499052022393987200213584864219929196301952273916464625170214323758529187304993189238456438405556170303495010977456557063813440113712332770403597494374253590243728892331514972659267412605520718600988040775134842860667876684845822845567583308044202200837767942654263883520588251327284977937110059986019538000078150359779069845757103997416769086999351194247273657706313758692472809647565894673278132222133209620491526427218684294150385838015924584089714354864675234183324834868515054114594104983331901032891950337809306042603477654969179132670876342778453771071790019893005646339971130932550001933516628132176345509192784520310639134040848227647689088921142334219670287090460737815557836107821351969686258295590635044474170626757490965249134921892357365969904805639611276484163442955318504215732941311600337938672838491066572009940597993134935547563726580531285727428999145747352888395507951259760514126384035104509747750638693796101294111542292501240622437337481896578077235860909239703231843683683338150196218710136900148056197945816079158513695578372207514582742532850623208379709645932783767460924378818399038215124457290851255875511604754019732128942701173351243317433740873526383228121314004173608330970549605038938169578694217766668380110555683099284283784921396548463510910810227659698198523658456836750609591155212530943287720839821096847466382369953248227894458728589929670406255418391498987016173424369304486466776029570984087369948476300134480181408469550929083127273098701281412098404523944996786224381990851659104528703993807548226721831246974415291117051482880260424088536400050066120895497934965836314812282779697080472118402806742065151715916144684018375581325962171615220862715212156881950564599934325747044716718380279630508776172495131077263399592494949203096833167871156760345625320702080507717517928182109075818732072545632757030935470242282299205635481027192881903326879441256301146002291676083740836272529792272141550627937287332782903949494666376297117862755806331183261911946057463418753784382894339185889556588555933584196848747509571393497811066820934128287047868674648336377231542444511360553981587515171578235798766256239124794196134828619653024026908325368865063494386075801131054299879803730154421843732317701670769155126280691271211737405897533137537108874565862400561717846184609727745387657089006214636040419998662612900630694451331356034703773330066290917286115358714064914939695305811406497917619784690407927416356805915927851382842891875275870943859091245723377131648222708950098783354376592069519927357802325264317043436206470604038236836114368307718733248007054807103509136863593086744644649013714372552671788546210298728103451619710221348642911983133159277776581111650857389250128874843009991244535637190244105030375761966529223028466014724238982772461750832832959598514917829786340212177062153409749662077861907852893015358189357076802673969799022882864591708400123435562011591887603132463878233669226075355219760044428260819598657312731240399756643062888722360266605655873599975548087911865582866290513564800193658679393166258875575427129035921413934524960545683711944220694775072268844836020200246877807778783747859647122972545210677838452556332001799328864630112975355948311234287011452228667142421321295117406486151717278353790144470500793816641649654500663622378379047507877870419580156111573180363733913197712950277697823610936557772708985381606399844667015141733686035436401016966939638286456500774853747000487795275336638865493171918664576876677006905960711426527755932409884428404594728514718634810484110890353196392923781799559854691728414195636815033512046456351181342924670044847009697104326524820362137147042456569760280660395986062457822137302751177274322376871394389982047843515747561981955187297033703161789415212079037551105742771947641274342259674269205686686821754893063034328661364799302779512587655881057384053038975677990886219786694978109529113427921617594287059987721657166892676823331639698080738980529897759773772869726629040255142514639677890296655702313090626116022486543007104820229725391205577706411385998309181675658486158834370448504045258154545589098865178323854753037016628035806067597405407360254725045301871944834249255067606953072466033326829005601478156959644211098792081772375882118895065045260130021988486454320300395890980657874986128828405900100424088786173283961715757416877706531134709523132823989699000043768264473626536821274459391752827482124818512620263904456230301411342346749526874867001694401244619630570618283342207369603122983892248683528183029210533516160387467438634981836388849960261910937127055697625685905555682118901408827365684256484196591217850421775657650711444078375054950682371656953994247038391511532423113645246964673216232274960636177352422699457556575249134089758821706673281712989408290214245720169844508590902143627022174606831803020132534164577238337811579773153373517756616532889979066232665411289190052950818708636223179038171350909555562216221972523667395898863760119660739911656698623456019343696190376484595380116795287937375087728127129998784767975126416592978760682426696122765145166939604036928948167301081720114886512127588809123281678541134105442713103100169979037462040394700478403924723831355712741872465952657795160677707922115544407503546057130395654163155201229660800227206431876543940360552768786599778758122560312475585219078074280780025088826039506609949123227067842966795032745313567925873576119378443436584175525211615842744826016474748829835234148674277298763963085586772245880690369509855673599598073010746933187897040873272479991654884722879704257358709961026916090290216743124494423401236623119406059047320519423480483359505357755761564593833121537952769436004747270658853485618245401505839538803857593842828822948729842806850707031273893310546358115832866850355616631203173226378293939080481045408903893988867076608793705406631586886419225645552918181570365460860185363687754332328099780082533287373381904637504980703644303051949493773438463248838825604146105857846215113626058424389918818932182086828625706327463942108101307531213862266533433836963465428897264372416294066860886636467981097565091912096071645004799362679517200376349626475788757785693028630649921057494512708325048355052238541593829610188932148370018127196214117669235197633600092992129503338320064867431968027995417458000542609781895964998927538893822897575190874227468648358008513580006524925204597759733679373936300258808370513068468949132079385003728895531901126551909718192728863721784170535362133599108055399769905966339203658929236797951119955798825859066239282416928880939601002055929882258041242955706209037190585949599347567778087900784730278237215727675017739132969727917793263382537006704964619563864908121254617331239714638399256892401318490684606346031562802005438376631198374672710919621521363826986881101135337482815535318198740289222156411560512364194050338297788775049208883445972879631074444884289668831134507507982019553838069805604780291633075895052433880250297980561135434412028066521953725376540166959503168963318667958744043697714621500308337937955411883493467908457274894766145734671406049934175439226740121967878387991869298268427022185704079824335633158715025939396954398656118323825855320561393429290667391141857990161064218849872322545749218612065475893912836462518222364189556081105682655803647214467802076668007309352191545240219803457726333375375878197272015480108505910597110298040716108945414849907088758401389615915716402020747998286103604718340279511926298004253934260669566860254304565990851893612939092988252292963738255531409714501350553871858577755873899801684349983150977518651192457413861764535608057650275092747273097416296829940517443051908404713619843251337650774101303362373305295589952373740928396709910567684342300555051449350220277068724201114923948943030908571669829392806027966660935764816156852455336479795361455288462360633429971425843706958618825180977830145443186604727287883217216347868550960334270939828086388570088820121080941995885767860038991618780810317204246801469444060856111010869891845288735570801176422694676796190569755873523572632151775293291598657188171315999563849715980987312103441278445602437478707246597993127969002003760685843958508166824514389308406132645315309309120407621816966040102403756065711226858638412666316975426679645074565122760347269445982814361824084623215210631468066676827645977764109118404502924178389133487753818447684650387485100025458353996123045580990107827461149249718540483228451251666068765131316736407644352689607423769314751871865201755311151069592301723531789023301732031423249086993903128436626752094762380136717977895888842987321941746679880668070519282864770411001705320517540557048828742926799022259067165574113384244868548412697828969711356997212664882511069866185258933346476326818150095057483153556782653957232764154767170951155401413263167214075009209662422141227861720937663964516643530150031610822829800459153489094730616886665238913479118447823853197332968104685649226857832540651144860842571429290563190901924425128849285513952996738210862310800388991189982675724716959489081521263413323090266050872674934883076562289620945567172707497981013352999698276195278211088746220595710708475825504722870174664771602743956285850029634877453877587274939630398055955789029252085242105927190345024879507197602446258741051281055965833118026092280324053009011227585233648287009623458605690286070844940568428496088957390346516616881915853264903798150125762153167077143759619205925084278176400670770230986501878590852169543293639653211380178966445918231582514654025464678820500294359331209330219093719350570550076725749361110695901263413160367646989410560463575411171158081861113126929007269085023878240227575521058559251005805031490993412911357984208493279526468892325600350996999185695223258742952575225607142579311593947848901372008959927243398268476332048861956136731649168146108046662538418681321268033815159031273521025849826479157607785880074256508188788477374885568110925737326967703661232876699132473373282847496321137486558734788601371475723542545602187621904805482597962220572518724449332127777770564663359349795436819840412050868498904366637132699351669583330482058248902885092750415358222695033317091069608605820247606861659702652610411593290852465942068884308552895443153060077852287180590521866951632864885349409525661879571901009459292025938355861626839116032711427736871705435574014229639553825890440512522573447048101851261808655880214626388345368978330659385163480908938761440939385338916685123470279005134833964065281311016753749910812047873423222397939055322127588991698882786555913321297983237824971147664425222521479563565225951870292925442913433861996028607329412120963031043803170131362582382106799252807139133484111880657438303402953621944007897737339757313073417186623012122869237047885972628425637720009796098275151674854568629031247973258902320185869101040476799419542159678553484843707142590214450405776655084732708893959919089382180708563495294132869193992819136480409307498158064366534931039626115423494628004475466246381716737717370640564105464674895873525988522970839278262498594457452468403454433264728782790104921712749547012071241077194242967346895303324686536141522200578457141160548698017574559830907423989037105390514292712462768292553481408866245822217765670144147921193148308447028187142868141726999967482870056631042241954330328573736563103202732209827289555966663915753810853161273247278624916795780925189548939028695037347523123277978186404523697675028698711216488955741695531515816353768134967195791227013668449651152678215655756884403109742894246005521307514471935371805886400788242528766674550214321157976207053758729012426826041330415823931750833097988036414837006326559258650839464223603220776338445539653912061022766126129671455509990454057369985300289902926786421565017710273693609940189085327571507102552624241353506149871791075527989899130161829639902470451424999633010478131483748147463997255109304553184925061435644159756010100517723967141456101898862758550297348628051759725958634313115915433929663665842450141400026768600438674355378769210706868987887327873130819466654651712717615461597425477156830576935266826676927141112195540739689017768345364442625427267302683777292730012220755419388998730200213038274974093586364370812142144991851264565684283675879820267268644823077556189966458700332802707321187597825417036345232726134519718636198921389989494377752086411807592194751233219175531197047119282968595107581127336783101297588021834435101681750990381724647351570505230217489333541305337416475117716641290787071367128706831209928216349478008976764570110002714349205748706515908602959309815661156643583146262619488491224435551212419244051329813745231727538640505757166317167068904622783684065237655613657797185513816784878753495860036425063717694283551656291286099633036647227678247672067668784774767236492541657193476124503094965512418164222072541342887371982314779919703901984485244220657838598369415419709448854222686720642131760802792385734789467601038450097509009231059785116247487945110015597478617444123739310330460069086481376037583807968658022977598023873202769209541516985014139011332340424542143357136143490513536381332910079578508519119553841403176595661892793166045821143827899895502569227901892915195153582116458326959322667844749038864600890540694148161917707822902697909175119268985657790826733005120266158760054581747306515844969695353603963138704228864466699747437266345268169042245750655545231412071185291811580301059430102190421146799445955635896245695858994835019388621792107767568770393006408089187197374233982396592389565534323582198914535538234079906102955679366632438963961902435307492476501610804745760508274255255055369568117421437637390137967476986926847487859953377628660689601924799277035233935879930167922882088601242193180069993426458372346989384551299285773232340048145805532534796666602605113088996165902228803905871867571791376636485686063905155679708868419796737067765808232498547136402070652295048468178471265731321737856531813362244427906962832779490826881878765175947627658927385682741584045201833852381304544387293527352822797968727598302587000469598586269612955514995600630433181720840652287705790197082693012577526270360421836057436940878639424335850495843637502282351207429969855976840429998317561821673682298785506246829403957686812060438422409291046456574100415435377603214209766972053477633021299845597574922153852110070145982992952834422929866769901637237042689306763398462053874620445766127399274653261511179677717125436071426258666020422154931187832323380822959567997392827032203638546954820709869938167563557502280630394451628075998384161403922964826737850770467510454429809464830316988110098940725678925334268057804002660201231809105657601041813111071105810294810548320894959015851403359442101895022012745774712131651119212704048192049164384517986186557013995418366820230523492346934951003518774708600083846890973703513003289346017042598489421098550498353456659511108440097311528182598068708912810521833171847248606292493902641822149822386976397607774535130052661414445009113279189364886774308299100563387821140365647147519421742718836185859475939644935938827986367624846117131636304661912290229058866622781095089611889440795983977813655692746382145052302746826614920377874647566186284676737185925306416760465859718554831882347272952122038075001253649178785778346437408389008626672272274145467644498003497297999511818899007275284829825147342582487829635159633233664260670061193030105309911711255986908518697897248405688762717883036404355443172574343301727330189969258646328086966552255950673753211662332846333150136513190244023810071374215776050362774400204823150273154137222791010620379906854579667707333976965993258944509495112660294763248654037967678996097512951429657682454191321133319338615423889191404109620650153589523584477438847296703959470525327879172660317938239552223449790183907460227868388626922293128005486199386882789531620782797541334091191925161679417427740680342179042784402011958507588613416310574693344219505326954553508831378398865088029621750049441829060192727838692133774402753040175145146473352664174865455035421601656996428661624136825236315949767059819983171318977874686419648967741982279559432184584036199592015204324677689150317442647187314299418618226366574113696558759671153333871426046285100453153271277539631467119316351181235438726882041204357545221432094280818673892098495291720053139347796867095142907822096546260855345017353185577524079831908543673419699022582047150084451510377307285048597135885938407546110460792395580490431729225550992559390851262705285905151782106582419907961149746387961696631984063012314217093007294014143573660088767458907829533852937006227684460537161754819529595837398409297594318623590106394872999572561805542512025490170949378033602839796330101300898920488309604852165668823671956946384970190878585050247108781092274693855170875693982264663848438121161590505015420115821470628013476176378283922798502749910176629843432002206302261534319019414070873396862089008132822794220107314355987810212612498833556928057406937282349193967983272011412480317062056344134933425119989727977958534794531412151499392996815621364684319562396750281479451089717121389251110272059706406972307798884292703006245327591795736076162388270748437979063516921960528730680070597878521296887095362090126996527387177693671694738789662387062640394207529959131923024325729888618055320316028018343321314958357016027276842266240508844168120107320907990890651899863116914765984735510360815564561530143001037779666288010827332558318688062554665922144718065358559303837764104727657551120117353590218878294622776208390889072117059800386975256138808175839101118895056749701550704286679408742803373183000072819847880653438379326521985197967956371549250760491218561764342605720023460455124149007629991093895461016988854747851962057282049414475761641474415220006427366018209840103687647131664336632862285326492084604655960354529528121838162937448460918183999017647606674852547378658855231068166366976524284094223127621259933094125926120813407742209278464465302044683885072995503459610352227326445840429878698371646706000768011608582198367379258661172227955771803499449779392424816806594551323043722079848161653684159220240020331554814586430405118293168289982816737543907579492017839070563979866442878283094814947711858041975409249124714082378655319664078956380188000572817264850156443260636151529725602493105371745429157939729354052629352815491935960142932451842292742116867550506276205734244832398156554775105539294217260960834063926263734369295039454460249980141793422630681849192259176627585703715919056609693917202288681215785939469568184569779742735811221991600156963322385841443266395358654375959112288092962819769509147817380087226195779717644723804378301422075016134032448511070216114175067194711638505213562623684297700034351531634663254147411938322164592468565312569141511371563517435730132550782474698598317940174965813530161981639586854647491433914989706761769261746096644346280777337762616458090737002075102841912762582481007179571983857246085489426287031163881628407220865990002694178776448305878811247225495180601655460421102902930037726184678760057367690454463544416724916899776817929882483072660909872225529885933768133150538339560838903103102028890416939240919523168901973172383653958167990033664029613117785268925216803392583342653213787973533591386321017666222546903924881131574024179039371907215860186612546761895535032836997789599626512556841473674880594021265846979412924216616605740513374289044635576854229284985463738220932473422659275576491673549899229175855662994613042233158793973487801777012462110762753677437424875804378331060826160095714785117936619544041675853994182246113837405432755314451228296125787520246700811064446723263354945988796668506185914145535917315690820222471777606689265182059077965775642814258236929235389480339535234365828085299571472421999608833895697984088849147533384185996670937525695608594950982531425293870839152186881958481214276121352100117656720694351473157130650520507094088695235931560216495380080796818654308949140524675257729760448838735567946335154106351093340081418701363403558137220335240292196001034203865424639910935603719226816006139004368239460711526139790640436306108068991408562522702019619443144486222661243539037635267949119933023093139483234036209547311783682424269379239357832372321761822886679410181725953464800732786733779024008862632623669167110347908756335483279552009620160061541974443369274755571962161481609294052839499285563306586186864064157146978779299921101411285916937836835232106873090047660246492862920065606179219795972528456928310466103618438417571838666769268904462889093036095299271428720785951449398387668802558650278409843209494907405439829546602989796301920297403915463974952168692105916239341655675245184969287239373581115981713227975549697486035251060577203421265235386054387428398291763999529483614971761777466234684777033882083484741579282828076942327295981378310516245214434314283278484580774453460064422189003158892634121587986279269203960686210180033589049122183464667321397020773462993015791939028845880679860663170931108124849831283325826794491969983254782575654668350191543680320597396272774127157533601210130626490283699478595037133054115884230824935913358081837747459606708963137473523142132731968138606273209096033147533397577542207893019413532121328417328202507461997012883297720866105632049235556388080702280160041930791656969288012271961171148350669656141949162424334796959387820681892650677794178513276600024263312809971385675065318891416278186307583208994227626805002305819496216773711406964427448078661984858762886863657331992106477517907893476779803394803873433172155519405820989462803190403067310730279129470887214526159493260497916185225918729752943060252135679284677907822129121686740731258904698984512241100497332641099570672158386792859163246370571206437675832898554404139751114195166625621709461239366942287572956646862766937870912929788562785338714691005927075220072669628623913332870853344859028520414492316818751258704372705292467141619578961552526925603635906730585098995212898749007958881740239296355086378935650937496512778814680737690366313780270199449276518807944467194714755637157289610984825879457015129929092395413628738530576484441674544809937925243722174810639173116386708672797258265655405707182356631060595765848044640539420052719860246956736437126202222702934631366894856724304299956439965637710268644169269187148321224277138510892040950348904892420129483379899731128816848212717909436731691077841729380322952644437931030364493592274186228638747338711744680377932339651595967079129087434530846435812808103254537791942399192641547249970973527871413661648021150467469890470574441852023835585398118367295294211296916315242388913846231025880980495866311249455325214243221883700421260155500980588762967303282097740959238871800296482315600852333331714696134961759675135813667609597470279000322527188206801638849055629987808298166713243918720623879772900843952759177367773008480164074824826500409584273107382358681381180820736418455714161934204030591462304437868748968854217809976409654553991695630023047885742352810053861197725191666786234946572767781282994473781731074982137831990458587585987822031752624546198814575778720693024686450616744146485347916595510643210020050488368974073386636354364310204253267773503467050129328910910627691590607232994901984528526838155990134850893250331248617507812998063388505466133719409532278165584289464537494306503543113745866258358486396044326182544881769769664946064548139158621959311968430800558589450484393881964103749422122806606562717746613865419059847896357083897624211370097704956920117478147097285866142779043848814317414877844285952676815643714861673580300293724697323163065349064435562329032719850532856010283936689224819039938123593344848125698841750400336117961354225571155007225769524922368522502890927524534093880895087736847164600245333085178856274291918382788878625534596099033117652770722662066572013472823366078455126457329027444297296501224147461245955652449617013274343389721705129965848264259190345700863851399407844963094300597772060611266211691886511016303434891436912317561176603533163347231459801314088889865308848571792888036615793649606468256883622900506814022012715065910065330561702408194126981051278729442917620364034778401702106574446757165316634171519504858352874270623960226191670323018972943044648830746447461292169720900753246413587514108430426195348913189919167612337405894096176178144265893630132915513848160624043784594897997772654379068577023517978863224810551703099954093082526320081358845124767619260800356258165779994610801942839610176990147646184832686422436128123929154240583046453311132989382080627885231876916638039903844761418793572645411445627117790269483729442120183027879197950136351000518065619751001545390249595328414280224984000399082647550431404910131169594175606637459207212056667501461218657026259602157351409240297439468844508610689455070996050854735064968783555930046721841233212177462964878382569450635763980771699603927205072235168350809099789754036554111871433431458468340922545962083882655448779847707564378935053521261761032514204710315574648245469141030182889726824892102184446705935850735318668426784837406356028269556217719064642063334293880137308071254770469585071500341224169790311052962917191869349791498695339442628472910906373380133466755729951349434467649839539695746213643260398170962977683734367433503808621169593246792281676100776417184521397845380319849714684218781972312787942712848797832113475717124249030827620140034734980190153933373847713942997838654399585293788546292750414507135979244869882979403679763829953388727753806918550857275389483557219414011438206894599776700590790854490301969447134192195366297531668137857088663571979694874161268910875556257793995156420806034732062476541070556108150184256544551608853978275266949049863993679273699280061693430362887561142519699765279667003251323032030435547290647223911617963867933806575795758116799989308548442004621423007616323361616694250016048059287760817665925926358923314110729169566474529924626995204743069918775056654776605107186759688486855856952015840114220117513516245111623392742741716304252612021685780025850910190581793657300064064025606876007726569842926960797841080794960104074385256902955356956171394965242056417347044709693794470330806728443545271395127589968196978426326288770398814987193470730003470721726119438997139483426168366910860188630599527263456393923086433113058484175634676452598251388687343073375377379661006432622021017001044779443237412521513984140301028118355167048344417404920413597403865865440095959446108293278120270208539144266833996093343780893850246730449090605798528309430913274768491443813422732584172386528589067069599357191531278908151695820383812902311736477379827926406613528892831689604047301414048632167208985654347178616161787906497913674143488824142889431219366310117828262822605478637831136952381705680012665392283142314245513282688955548033333285804947893718017868645256238952398112956881348908280766592409021525326430565100809436099228366647932498934560435866269294144606555310423980749833993553681300511362972257571719094444008142720665156213389172586372488731079862480405302317563611302339954077115127488271140387267949983921518159832042236947328929929666158581473127419027412728601382639427594700113196918997721781927298304435500746378420895101845593622816058697250423405341610098351742242626564261756461857413778387267496687507584194774276839928832499027295875050275516032720265691878735197416455809644314783517010864571160939930457846941102834814424950126137530453574722091210328842006189486166397694520535402848081080666752631702589841050309220502092139545097151882410365900357074022663407200048480677467175485769874389150935843636323847731577485901276744229448447233715468369254163554871763759016949302379685696757381906925827246055063620204173052211589941794958820925154970829721702095655938765864467938085466477757953053981314166850415763031394073638203923093833538325648203056846133997566853925719791225443837321430602875482399591790108066997673473716978041696837326623713175089940209995131819081548301688833797872323247643388323756990953169320287689995085800917631593857008386954595955010570528878398040941500506165748790434432196162826976702404041551557296029104341781752136237745754627091992229232805872589476079303925170502026044864491577991272737511060130574483864906198724262939573720057869770724301509275413723990573253911089381093561532988289640296069205876438407002556079806636843022260106507509230087920147711138456675024265885108632325564407952113443976656361005605400628648960407787761580154416909700630523714589772741631999480538597560822201711663713551108706730473607367127929218337024117107543844423601698221197382780835147511218728481391409226932889166848247820683296490236148897306652948658699434293431716349627199039129375503905444906905691542493855169089655358330279816870384798620725563429966013777190385446920552171166384051572381337713666163939179930313349267436012502246466754312596533395276319930314831694171576615837297397592828456908738241999901673863416490417361895708225447369575197882365312873309923718913722177016431992891773404157634614894165040302395729984137059462710834497720246529389396036232196821657531393658096730593365079724541153089898606419956382600212985876180527917186475359828553337397187189439728907991774021603454502284990129267410739842824995484467825394497905024066969226259473130608880854657409946068843760246972511581907095288541830706873362420164785371706580229081582160791644331790664603206250203227699411517240497697398629583931020296845226805332886605694924600693053810185762370895232028131553445812175673674196683299255208015500126982308410230512794538276795715510162510419734968056596029136584457538294521127428342939395308126654219209353894263019926184618259856673927626732592171849128515958562074176102416745455983384782459774147843618044866856011733458353009998907906177857727470401305618354532704391170577490089107862491627745115290834853378033650561300519858660326749185117190735951888079459019861342764680858619339945757680879922365197683476009136844660100340682687301129000629279101781325920893216478831271818318805994069116393490512165584331243056703631615718726856632743602109203975742756588903236015145755986201424195020478867025690472196002443926992829772564570069029663135732897402090323223883741758715152822230763137763381095510509141895204046510827638007883626922661297126181919927708827211075741990203027882029668810904031873392263136450472735028981821910271149232805598212748603116203506180054456564480790661344646189227002146799817468102043161857075370634636203429531050889794589718663176828801045880202251914449206097799496385023228207654740000972303331925351110643331721182365737745621246077913647809663232915245387163417241668842647543664656137099820097650493528190346318430167151960560478665557062535877684554630326973640229309787178194836595675857554299378588730914399551619301692607578112412907126895666704635611531657350922521892367194240483608603493656408636756532802516636254764376749502750856975917025464640247746368944361207123937896216180018692336639802451769610758383726950850777196539638500385316288995708713122919139350891534504888423377601438944010881612185276134886211711488645346771626148391653336044548948111335018393972386024840603457206906222019272116790937684694329021198017578772980982415541640763748121255631277838437453657293724038873270159141388936027860114828303706242086127818904600360778001535301736122796401036838580221158653943824045234797070987472543097415843593539294834142088430565167703138489361873521201363371906536039256495146768830953727795998822060558768746771219605962075486150264387664647663140269242035418503394359520288963258315195977679692606631332874225656290771933134594123907572945686047094076816588124640166809788624649939005187278028728842455243467435655109226682628953854648244336262962672108369489831936463247557042368804868011715577940065053002023979191133777185438630832762148272530773770257290910137136523698408768540570319128973973775957707409342700282217213474939221060567764372725116316658159164991897401196906457927503673775354946359161886291092931996921625145695361297505706000588729472965839733987686948349573740740089659187436809194804674380051640834378197252584761666592399246700212547326138666912430471903685682618460215868519233009658469507215455282495644138439381972533416336073921336029538577964661713256480777544226182891692553388891930827847258076836382864647125134390451645596290486706914632749935229921856322790746785482406958276434710077180844241437093171613071812083499702297640645533160786645828795378858845077656653575454278962943104771307324823776551895914256637236113878331418817217084747144497331597696598039442995418787373937359500117881513166420589865891743217791342458629705643041423723123917735144040751719431589054666776824466818697372536300133055781370433176470023627032938120053890375354100842534161658082731876084101479154985729814886503502323901929218475185517260889903149189323258025916166946025147558323264990870118813802518801651127329796756311554581881977996911205068006119821385522022479851496380621189726682499884922926143406186185236374009532256935506947976541103605976067642868286615331190737804123349605373340659897809624859465387549793712038216359585774982128494807985062436744371968315571901702218599125202230202646649156662250393413019974511750397533289042512408425259412633961095895922958613753633076228582798314189221497694459092922686707601828151956419533755949052966866114032512564202528784709463713326176545007222689431406799028400308366464301512154309546824322799742394667079007829843875895001617890459161561179415902053158726321916898216578261684599596106854187578252926074418807993115278070799178917433485397921696142321404751078680360819462928941676284114318563239025521099423039507133536935136837578949127281051203404462898600735969418618818457702934093919484858507839226897301145175972716923676997813184850334165747858451348679509611924863606724797742025743723187047030621283454393796730229255181354496400197718257234361270450440742731320931408491591471884228739234369055240041161857672752019404797084079327024602814940934739070080898325917336787897608489974756732537312022117454546062323527247596237610446105473046886679882953545019451818194867546143720589790168763900280634117632962449157694405103358099184907042155032667115908424801700959502920142225588150249398958675661031969233395810950646531003933749643647232391024764566086672486942181954399131282592262740536058004927411023963034895693284170200302344233896776432509840767347851366228198521202717999706140844121876153872204472906640321193696401167992776997396506174064733975096106323011681316681228683444092601249667123480075309722331337269370853309509723873769756237419039119482928845623913300686139356606038872160167287648119700030313107371537165289187483604264230888265477644917795663357676109782290234137081371496870294243671836351552435293898112800967100987663016491712331777453972558554657294366312893394451256203876188502659366305978536333294955633755521281733283456261643148638531425082690988991044959859578789377281493230338946315782510654292154802381782275050138796482434344491619074416562766191172570387576185944528904506899203042906349349094488956495492646987032562600397452484728366516398527877009166526549055117031673351212831668294027997092253810918449129398956215066022634730740640642864619063648923622256271533707680925242398489655274692419370671623587652556729573320643317288360219550925125933821002152857042052997379782422455969225113805345003447595870653629778511734179751621800417335696205190446961995005868180478876812359718065588694663176947439811708044738101376976464423856973602688909908941902965563863032079181962128738923453194822173548363752969717503289835950127745181295653248309638886487840482035290052623857613616515762538556708216505194994560113670424510241720874188336044322457194176806341317662278233895898107690937682340099719814885442774988425180170093521413965605181019495131098470218631254475716633941555688569089018572906671732874376314491022288023177957126212347568357534531587001200333609170830184210825864559045970265807860850952742537567637567129577644311300113488009221393368091987009778611768457528023467369628287781484945203512920027351976055035992090709126436010631682731879028128815715011026613657270900365012950007145887739156268403384532588545144064627288919360672196483481647829963969741800460855800098234756005713034784543316325562733693436151625170473789563337916103853739615957809216713044464498488263714114934803441695743476897538429956598160754453635808489409374981346348001134732799326029754046803243616380483481278858970612711624588092215242548528280227312646146309213521504750735566335600337662177125100347948043889151523420750636289306945459097610709508560978520365862462027445157570720091403257178122009395899078394314952644810449706022206589388399800103331847693029614944999977929858808617350755065493558782310277821002568037040089019143858550201430698632188562326967663880841699773851022104467731423840957438588569833802470272551832764680282119504536673096924928246233932512160408657356395191950245674724673718770648005257237044273308161348807388063292425163272329533077608634036952231323598285611289290061274161915959484846593721963614493014892511387358415935837633774600634190041786985765593442176931417131720038480764705754907898484627282075618840539934727609951164917768453080632103340232718181119835838049703791790109601298507117465609075307213938351799317014457821085535265621097933911985801674081286376307980949455942291124308694088130748537931719659401413856202344161252366820162177208735075056534730140683082719156407573906284193565569533563631356045041171122369191301896621958482091097852010091381761893821933962861230876415661062554167499759806017071914860576875100447684720592107741880206908739754889106082714170239216850333924165017764305118120886305126055882152651898669157425779727990902543374395790934111683123582490098761748441681077904691422799833069212940674516150850795515326859099860512988817734995913999628819739207283852178148643791100775729139269645277019588552317911066964199929528781952925327326792870019253622284156406436346111558178782160939900435326490828325268491738952734038947995804001014855795004583067657918902070492085968779449487421523095949420458472710985356467695938294681252102227202347323785324986524741977677874538554295198972603134716826608934072548756327424414637934871196066875049856754668998356914446782569939238626828006175831356191078136669197724160289299403350309300682117562067204672160735840778039552804744299419884721759176712504956945455921302433761176720450534656649727490133069277791955494839765510067177199885037895348000016299141067592417945185385435045212283180334051885561195188974866444134482770970210143095548736757691153245570543542125122619850559084442797243005590106495196486859278418270998041866973747581298198611580779493609710457594942350661563068327026701787870840433041355965776559481993520426446013673494109476872440970473071541760979103512752256643174161590926921338981227210629001765738488693919189884032740124775834546066258887672821371276156692943736428024123490685147716983607380986088576922528045840477551366812598007584095294504495798408605214717761666751180446756177834558360164018550915669682154281539901730895772045198297736773226105450857558660772838994143551478557025585235787415859625690028346854270516932994152931569648310321081812313169286579303030693789808140287130929406211862499825341499973212942273758929543062676186298354972359178296233578346618936690062915842647928972159334600578426797157144982826378475292737762455961548314063254050121770824805039038865119130488452115556643410143575503274133788400005109237778105328793331447967270995457446899963064944967467373117900863369343307941762772532104264311220608803894038646707202265958204237072933580492844248948524763186573024085215160939111177585756763005872904046175587628334075276604771291515176780078707519837565714244996384961225087102978636610124683296597129357789189626889639924416389867569317788287484534194100095870304033611226361194267415820036939123978651719382834759530264719913950819188066740747361432896218416245514096602744401715116304801985293352275482027498294968682413254463678689879200061356684447659133383083567562401002585402677806268210875705022495854142707730415962337157689371540577042494718438990379639739192172527067294826046474599590902501316551259377036572115144074747072008806934398711915300829417112070751098660496566976596271013203550749589011050619651931654475112816415102014730777255189030788416019756585298756472460535754454094743769920031478474126579623830046234240539726306556680063063935390152189321390902201504143147791888988758554169215384573630218716016080129171175973043522459757378200147924796239837592630453864562580325479372722173295885620910433112039412278400137506283389963290911437981511937357200581180190717777469540658009559516594648326789583787854628332823565219447960687584616534501765104219183236814314131242686248605596335329849342557074018749675828765687059277600546098181667325859933227619030299561645839080953730164616695033438069932098832625442493060152691252568634084131472807410414938398842058856787451238927771523875228865917273214681532661283909956132771190205566341914138167883418442895073350122773945658558876752147385336751228966098549028692498235879172020939357293118470887175084969996807054050193374541493339285360847342957465259153330890041492233530824813184187669404938830092359713632580785529496901601477936853124691098167980622583081129383544967621558674032992875599326680898860774321746555114858851441347305283775720952808362726440810567161499573135333251494060182063880472591893041895411851498062601355921029402454972618313133287251367320523357965228525585303640389892345921795611438067813522413674613485529033110742920817775052196931544874573792098395281635449586403572085636437546884076051950911691870827454218072226172250670103924212946604923637374039386304868133485875268703749343197583325938657999696234208105552798356631524008574563194850494765311911995496730977863341139603184292347940889224151585447983807112877564935471313456409377068268569570707604371369446746210762644711628298815102330756039704861806120027531303767138423818391524171899747325208890954403241252045827827681608908303994478645315435368511547784946322580390781493427240635966133745871385355273493167634632990968293506885047240927454786835124915843643840038812206690843162933852990807497934054115154234793816121884321560381041192575744382173017891553973632742868935721978902231225771118790149891207133502660543136030635341579742886268335082266433702722945255081672722205983840491600425642494490633496572544814522786379390661777780637591565306163027242344629080887605910460980380233884658018481760461030496897991073976383996035676941218202978086360113961722951213160663381541950014374178932122450498631778977601331351341530665334579912420427259778182499693510944361649415631300334633066104114794960498022786158816603216575030880010769682633700656034241392043267914627692257683950866408956875217338044862182992027274499269597429793639947949903299639794950279354114073953643840998678184170733684020766205579823548128367411733755004587133197893013755477231019786018607115874380081955572065786293082851870525024565010213954961890729390396356212828301338120237137846786968063425263434570451921574721439675766415261747857923602206183332404754017974465677167134274421900258480530673764240590821265767448142781695559081025243935782143081252645812663512942599547580967798826179165650906073502625225326448033806977612171701916880555791023103870525564348929395734198549768254843859070629342861936911010478558041462531173562725073219843535422049393097717392235776136875759091565981927685776545690185890412006194535850792194957397152864145575126550333846464059331440934783933191321249361634655951357991456971685225664604313961712601418955099497845886000638447670736949060211940833594595347297863041112685420835196090267808182455639060899659896224229927922539453655254192903514731289487976104650055202490608893641619403131540358505245538824434299019454758250696809067035083873660880434182006497479562177426643513421585769196837163890514281132722565158478120003746550601072473063681985502964214853455764771333852001394019636865909022525272471894766036999463557214317258257960848235567819746309910700767298043368357999169690033686836664981679092211686417853622304365454497791594213622986172723650295014552570355674409427436068954349883857226943283763032281447779877575896466883630091192006548926716998164440880444274484255915733667784243760263632126428477869068493643609079951083346946784568805701674713948938110976732657746723045292208922018073608748118374103450883127233876479976429255127601982780549669496523597467079893491726165468881786325926977205092198934295065079266597978558353734677239212869644616038539938056787415467353066513084696760832616330394809100041606702049742111142378583136676742900124667122846642959572687571552688159539776785126068542033186980325222804939341164655488027458790512795272293058112318730789951406293007080948976925681479973839311804226589232245448181020040259541707955132950110775241709080533517583740142813489236551727000676889028056557728099362005202401560161015636104227743415571836982602297092219138236960458036970204251604841051568655787637957598751362432542148772958062666243215113398786104739043485913399920657207048102746812872592077459418767660634804506164389219419267947715363847640352623987576447353949765206772643655937206383641051253509792647771724072576338865379283780449568590029312156757690877334362341002817630524047031709661161195559073506869563588459300214511109813438867058643080976792334129094260585557632420769266689850778854569749669743223170547587505810181332028175480473258155772697152822485716467283689559254170290575872892400865141303869476620104828892682746946728406007020040945257453593563028194251699624598054583082013461831880503073968081305495941745569205765316849197117102007697091448399225902995757098996767587748062489133751843099303189653602280502633233126116042951127208680405503999930341904083997567949331024401135875973427805912509951554768488440573790466138220776654555551300748404599558125065574732640145789382436643223133252343427243179798997415821325092906320303060814555589268087469175467477672712796088388847406668350641882421423301908845390444402758099167658032426776192740455360559084257936807576187533848024734023918973901947959347833697211751510852327141129965469968898062304584019752132344747493554102681038188024271340661045858245632084569536939029186310204764238993507377181345589874262401909379466275692100689469435498695799687282083519453441193106918404661791582705613741695989262640507502531639007694877423886288216311307529792604564933028155569197503978811508140432352450437293192197071754816590569599663729297160983092584087832741796654502099729387064952236083331771299746007795385338675094408650945707161186410260046354552621504964285631406744137921203527007216794647440445158250117196712381812656894285522186534394694294153172396354564108497383584390603408542106665360071834292572413918826365645905233680578809385409130379627368739597193928459452007612355015299058540159977919293277397433188030017682022628390787684254591709387429857802707569030694677033089519377059520618386286356981531842209029747448447686378098504540711444728171987926575675891327732530137440118412797658382332818422298636939314735545954808840940457055452686290491929837203362214532399684845190986231860971372598126200806931225148672590852071618176847054644667541033744742041464474249248977257281169828022587609651272979433694085752624696203125672003613072047106236405785887422468048713048049296712705750972329392499260912011591451411832556819678128708249055907338284456819544588883136088651721991986114496706664070895962996433559014519297645841035582482854888655359651586538003267376131398209499267278430345218703854415601011961627430000747318418398619464250990806184779713575432307525169591551306277010069383263528734828900309664322289476747194862052953662824432864910167854365429282637778873566932711731714980142272688276747827882995307998313438217039547762178784184184597445383427430808223248645693376645680539392215385540961807169074547812644510014467302556964072387004845806327041563437539508598561996489793958980714006796109127882778251469174177232917247386651656444514807917566852486515250672424225056962538265501611884517870747929473110621793893257774035599216595851567236150544551434805448067187733049306442175212349600794601354591046586132447429848029010498305278757354830839422343901583124614680809547265388933944582589607371745332196267036256082216026964039150952320241980147061020412506343635442485074451017320319150144684234917737562414819876784715519959764214885906520134428305097398969389799736231076275818476932741186600464628126331182445255908620805325895136949754068463945420055717931532706634333337226634384781352622793954997096872626738975157513097230133627419445305206728120996571202026427583972860209113176372401682086804855920601967543659501015149389116816341870909188103326663798987710871890581860752043933564644003640476087310932050251225161306910671803552667025770761241987366017379687775448277155700640045680137412068469521328662965976608171569662088735638153271666003499980132949738493963599730660104619554487657145540245502181703773862749067477020282988614533698748324948178087037595480983275967589420606354440049815576314987080280461260545761714290063012680063732966384201579095637868410582217896272424721982811857030041634312882618697304570006537880542958793134564472106593918333151864780377952050560536856584333856679217214876072108289510424311688832082423322549181927153282227513030265792667848215370480063104101322908994025387608438026452606948393472745786935966570098126621857283770627654607123999202951595647211584380981116106207111053097718170428627185522872439228925766724598965133223098901296225119664567783392896827258556993103495383517868553731203229919095835014291199112579313550698681476869714934627800076081909273637655004420140611178310956937784845468944297038149736872497171983017804712531690721381259987843315774225354170406069517094362145533891660433540360732820618931457461422341072849204856851536490797252083348701888870580427232785405266205594558202429759373928445947249880652510191445440554321034792623246636727112135501477775939349790810894434353804190303694889009312833508548187283230455991728815901304511694302109584303774780061997405577434528128679186622548535307614150748017437534792706811639601906617067904741042401988776920484528971101766099717469341454742043223157733591878941046005144898072201020901472007822413512121321651251763452198833310083019130288420885032843502634885797445130369504984272197538712901207727152690835442731417521296903461224051768946688462043128771269478248257339765214841156714965504917929774618413536864451514314095467700170505328035600141090236935460184108921743043581531447896618472711321395144139873447395348495508854322223287387927152363818582417856010177614975420994353103517466775966299222656271802651227193742560996938078740051885145269776783529502724322370048587349958854689965978223513179622042686399971938629132217266438925485429686853058383086216663863269326268302898318218780075701686062268578898042140284188905864312503682368536531379292316192633529599747206459312022056951273120113196819071903146170215313997077071063859216962412378484701252238181387188740614912985065827592271284357886968456491154968620989191094118280307307467630206737545420412967077592842762781712677131418793848876759030365283376375479640620240020265951005641262181652626191456856014352705000133311106695348073482014919547207782608367721087947580604025486956003132785563748519216559824565071323332878547208023248306058713367055959456551684001699694777565435355021534588782021539103192468793093850320303656553271216904999028882886433429080114139906831420510789896653719832214351907878355760509467354413326135534099658229320736599359923287951167579934156559982197227629905953213822862602863988162844212667656480902377792909356486034774087314112358459758982851727535418767275325072904767848653185489526309751420054243128687325189245654973539899837405795545291792148090638674460401284994481410280052337130144363330970933465380119369046723681596351106507311813453917386388102982243539027224997779217932646101837982748615255690617559191412571742474336358175151043162609631767919944934804089245311434913861157401154835457288249826449465039226671876447242256092162899524073200533464554683402417512255734504545308027250071707359930077559516026316849877194703571006365878492950431513244326014026266549885430429459474928835969972254156117034176437295715957369624583293615142764933576552062252550804048445148227786314530165800521782246551095093609159578521930716051385129964711567788853651418080405083641921617214311999486169507266069177336717853944066900372370449195560848210484806306709192025481056740114937428626445199602359023052460431821431439150763800258579979032041518045486672868414703335672473779321722865125516770622449044871584913020818756530793915796026435670071975888754515354587697091731544133660974595682255671521651286821168111309110472975632734541419213923451207174261334277826168636369778014586389147297648442457635323978117381268413973420584178800548880057546037701765278512219786183086503709085121075201611774348646765276773112285196911767561974945763816371155592465489839448799239941713160860500339662128561954985009679665373507660494081206795155010355891008337313343107191050666753648237925953148976660915756826303603045649784989445216045198684320331692187458049185956451910723264864803023166875768329941261644708342978913218300484850501821757386806409119883315151251047061781373120611810924883122067767822841170684752387806030059849161098454923762916319371262906034885192929690290701402271383635326408985416858581691374653365444254484746752298765767689384335894763117232857235105992741808752564666715725214312678721861966042770720185790218067640727023515222610338996035458103561288276855634581482820531789894146024391002823876681064670757321453233601400551963148475703709979835033479919064291772828185141205570091379718469575909023752933733828662262355374126109494921234602240737687802117258527980035145807420679755908545413002134165229595645627822949050331495579015593102308799962369550829148394532290694045645170816407088536397665743321965479774679714182746648625435417889616908918430861590943495354292708745749042910602745536507731903472406498686253423222263844862153225329675766747828306399405698996755475528933175323102441219737644633345613569933549725960738224915791238880735551322320728487653432812572924477788510151052504958028293352415976280267662578651368844151078464236257575437024960375413629786312254867413473810153144480430995309897264784731919629751946972951109555217735087351849184382248334333574430624855785558430057724002297168452140598117992156646478789808692688406390038786641709983699886590584693093362356414435435960736198742540581081277049394040729849721095192527780290745120588032771622958656125791562167571904417021699757451729663681126592658443889115941177753042083414351188864132744011793092742300077012227508942728908111576347675346730777503129983486909524526463361322236118275112802953454807184045791533517211655935786426878560752117067109401255253000288568299306896787240571893190166335851485440745204925375466413488744674352352339123538615211499050540900348233347250691203340269768296586030105513428346130144961911515711976830610627588252258464228224240367458594604500149191787132333748361077395735369967303499374757520564955861142550221539228437727185577828732963972656919547729052328290681452662285611081101917637562395267750524885466891617130714845192045745647979281318256489919198098325947287619585489436953630865282836964276893054155352753721333439282734683488820943049384785275226573990601417731967757029390299804375928935303952725733029257911726824643213115808345085528812757029265938239160381916040117543834534699156917176637368191235823379684891237870297013177400545733977865634917735376088534816545083825635058546408997494840878934025668884455438205141915996757710750562025098462629552179045500740433239934501586517459916272231411977329708131761186844433155028963696463966628098475166811640810739899611885174056934207764392900969189790239187364116278127039816132156499453269554637495288459900800020243400525374279500527922700359318088707146388000589530667199192849234369196458089350459576811233388238828749387035445582133402189844403484496451393629843418179713651323439186136357216946347036268480796258551975521672908056635320771707825452412345933617374743616806752799391497864132077542373249608388726403498930851634970934772552047513283118425415843828824134336789120550932498189002217215916155470068474325268923871539357052170390584084564788188368303083123200056061178541741796346549869849021595412463799605188763458129538538066473737498005227016752441487485471284264304908233949351380406571017347126564084883957872688927754092972087854095570893831776143197962531350903452874889579224449568862638473050985474777054347886007839792085311250918380170553948342811195842686286704413378205097655431061558130473838143458592688506944048542548976781956355639679120251907056108812649671688433873339463056598166819998187766384817823806839994471724602291151502446802968329728036295819024273584557872227785967649127290234915597233276206932451567804017415696505118901377145885195153996377548591245834113007510386737008577857984838258026122951182314557452480464887641592455041890637515472726532696219432013717110177273687165455091187347825622217505186053840584042763730416261510417264051196673890326287758333726065017753030677637387356552125929584624274006152393548517628512501667790408434531187341553616534110259907701295350731221542046680743830427951516608877776661480337283862520742520671860862654495023328687031042845726921820625343106070194211401330142053316649427080807374207819179110068112392638810946238337491210994875346244755203421368881015519528820772396432325679687173243560743057605173142863269535954085251158581646260934332650579773722742120555334695858987662003649655137180778607793052339544772642313595257461864033130954587829815562308184466389067891686744226780045766239120790526950276693125186388993716152998487167832089538840046449066727610520439684730551867722309587822213488740611089430707987983058360853048384140799026126611400799840717386351848898753986114638542410757431978740957026259065441955039861337411296793121363416054812768100763080588408629167148219063214838330096481817280480521281486115727909215592211492572111100244626292215406428640301404416333781657777986609551729336484098829540804086983958007432420239072857450626426187414666999317149073543039802891445895347549557445424730588989189954716183679591119511587764592820546880794167855899591240815386222763601289317804980150337695372411375453376704746670393903255888614746085263558097644972269016572139804729825645855636176185637571969609405816117202959414418356770997504780921225528105447262132314145576606086938242249583233770570818555766727423307771173638519745527563722995385941663839977875659922670041471318494172834234563649597509103875995635486229107799587128508323870245226569061898840860332514972831614387825564312788633479979189109792645996860548212049860350830442077900226280337458803426315510634738684989381257974193249188257948241338605417899374593874498384183128249171954556943303606274689911006768713756570756417968573229847835305383109692223067885027040546679733610541838050334481152733017525134572731862685258066379658053811566794572765685955672332366230063622030264960340992785758193191177983545790065193608309990745807542092126496397120749989142389532568352579146449555420758871498067978449678991534876672372589668887506022430963739262500704877646547695397914766965381901601308702424647610675735285691255953638241438005219394734652809792233728861965658177907824253823207072778048095840086899963993539203735934694147630994920888402944997263755068618072104166738179468126046564622921450759811237973871476442272467214369300344902558822513095179335441374781853132582718722359759984046898246415533509881902227517584794063666001634348282464107595870378946164593692511239773123129375009660475440961904571975492018534433007609856458570781994777126309023986005903960809592791278230875291385036894947799869782988609006117587562440127567358033901595077669013104579398419297528872405149947249524246409711104838778112081207279352423177114860871199232959156110255998638754318059810426233908036657419087073241762041423128105776908708692391457468491636683304033447502911239970976643491313471388445540360729135588195050498197393434463682141705317383520816661146543602858374447177840476480201465137037666314567568809675621874524451563036684721842607538632199526021826683081154016901203962448397332430177233927872191491109773194658317283895698593852745176193582197429954402841420867531873791135229088612736273721082782318750954536230437672390882112507303961931202191246236350801795303483984616887921121783288926103453174586424555615262945607616491941471368470803487203883189154428984788752817419655783146273027913046006118407830862854557536099141444427102887520138466630419103685115929793757254546860944093081620708832576551482838727949527398021671357261954324831442879771385495213694454880477349341851518741133944148155061413109668691750628593554588393131689071741502773888896424329885673941244864894318486180133607701462667190992204305028967835837692432509993286369529775400361294790882560977687175017248246055101251025161448779170642691397452522994751094811694371903780129319533253063705761107371844792775427914011245601931631086132438848536364515427347201562098780972902775228396241246973500831243518265079545905320687777495004848307351759099261439416541584609702354030926599837057034684144227258462118108066423043751788293303370455876689269114964489625842100018218250263282721286079110523633721103366413348934637472557761931965399981963325361934290502063290544912084825830954228837323060418533682474193671581848361731222251722920732329588292320596125162958037166316479706687792832070281555306693894354014158483622967490056665680178698191988017832250855759574188595863279748000338987186052525298930856791500733453665979427653019071001190344871024050239268743055330628888469764441167066548674841272983800009525888155550458381794738143438106275633379041225717685301590328256615856235530899447022556337792661002299692924682647573823246815392590417825257265762949702480649687970277977532751268134277334379053256446759232094781624652035425956278100237115211438622586680541234396918407162234437113418461593017406404449221070267995806017134857639526859154497911242097690305943821855844714338049486547301291828937936697424120726792122273443227225830805239234939762595697213887257695383469229185677409200271929860923730143669568504734053307617223724524463557149353398258554092906619339870167193112232223942332269259168376432013447965970003270070350247174547129237559791920296916710433786887308325122913429193651253433269689705010579571593543138313416970521232733832262438876421960019596291894333927519298803095188933792065924285739169517335382409675734446406155828548376081513716769729245656785370110406793129027484443495531562047249377439599740759626201668284309602665796049241384555467417708747278140657259628658976243464436320667547516442086040029183260377691859608661286131203948373642521570427214550779268347841850629681970468892342342462983262176844785521175819745419426021959339139366743632159404910569674602722260074162224429750140756378449067699486866884476412627441339465344454652884237853723242089682601159011853334310525585049918485224753445375970198171929437199354628858474972045954084140664335810184483440956123202911050594393655781913987167355997582235034500305355597433678770244452853899892456532756129834019607577546625176460429265716064672710741704540223702403055425661658866735824752368146075590700666110328799102722641264309372754893255182913048531036465767571415836462211462889703180641297236577312964290259765462307393734346279445821966514728200536421949627472510151798134849659991194617887816092612639571953560454872233823181552271651304239188312883593178420788178076809070324495984978730651621414022216373483437254308002963218668922615506360881004630820441771799516751408130676185058493178987850531348324789056268809082794523477143058892723637083880692304953333168056333135033175582186486173917834780325955958209224124199738427573108662319669693163184335519000072575888326712304184561761766941070855795143276940217536761243844495463184548049654946046877972998060161802445527360158934246790120613147758514469319311907663692110537521663081448703349044776604028131981556537553166612218745929396293962347788325015438618423244812797819526089162327494241592827205670692729839772667978298463740572322143539885595880061040690909724284912732408038477060288601958301025777518957455921492786009407944116956652442047021421109375703300634218415413848015654223353388328446250613046996703286936382651389167278722928505165072833481906709766122157447079774624639667116632641752738151979332521662686410074956670280128026625452070712652786875307795876609556224113181431821811965717693698458492131077730238070642513241020956244029770252630563132425710927960525635672258227788052755677211809049926979898739097650011008258113313999942545994825038084151771502430663320025798763207474538947994073658959178495835327725630398547338728007739499460434967253444821520609053502526461829247926270030339009361672166432736562549245733149641550568621234779014772372633758336908940687667947498164271086655749983204763172340210047288302040511947730153781993607990099072945419179751005407947787987946197424809512299156733495277389644181698412437478914618476896693626471796278429255742035119785742392203065142400145734769369150791101008364884276575620393252165314886306952002841454260149764930049242504236065059496559286297483812234347648898604450371035966998171264938077739351185602178533146216904201003913872249851200815177833672033477850270505146029870764936567455773406553778588706325661711947309308031087726550430180617934075036992269746949080435862997635440711974257348646323059471524404456372544821984723183620424354996591833051515253917971795444795017288221298070422206316698982551919838464656923640003570115234454207371183364399781814309275372540336554530688707359336386645933380248242607997771882893360843989109547294859001020543134083982052865013078710017377431998430983222188740394484069227919577582707916546863354017397172156078751433643625303206857458133109323809360283882878173270521825889505832275604119592883136716383117504779735164310356031983556166834555925023119920146599667250550292554694004593084478710143759693493668306888815110322423507549461772248796683702755764032348868391483531086640233312207476181537326028698433557540835774871956398465702302905020475503196135241606592427607031783285243652757085381844403131680073893977469867672477523643188941709635768113225391787102129090213468998138750686978931290781409052448747169462284947205004277010594661479845795816145049127758745715125562312345205248247226774239911310044303394548190934372686891873714991337185688096283752968103767095200385147565030548933831176815172973118325136741097980094855271986933550184799464437109954731244287030521236962920877006389839003278374313229524014154134880913168145594669028950468701050522665521784642861827713202255793760221971903444508739141388663185128330482532141197125549871689105128291984000884043940340839067740162559102985491956495956794673471870751439138226308214366917189490391285311134891060398067977778247874951419092074169122140567531539170665593505868789535611021339802476422210167073650049523403601528055390526749747792619562749110634267686277455955069669644045314577641055692042503144908046760228273292990504816756737254941888347978578774827791746874550242801905844255284328792010623702890903688812681689658822434081437609795986214589843767546202586489910872967340611005793939728312106374383195047330586008211960461245992609726537982240103951029596993068116687297196232400332351567438478596483709684316841616839852380453229749398789735437815598573570788176054764189365733545718512703014696528162911227371341879697064250147260874265857286764161762610093802413352745516525188696709884628509447396452916930476055520188975020777556108343075268885558374450170027278319046977902457074586114671689743931271154492234012887757677397924757993155127313522648967471811594251011388070958405452158244946005886374784529603749129505911983361313335670000565233660411855277302613609454039975645588210092966656558523906564624778953950776506587781287350253734388633759938323665362206885812754967803940073187383669313197192776553413172708285033777955078684150704417782351728307266486183212362564628628360493575399091019891257509445542795899369654766164051821607134929815219959377467387193069997605064642527525043625910123735591738262934250469420201113497386551616678271367239464968776301001279094836888885322873151940648980304924008650253699615703662212872753202536462689103067090893118044678333799581608783318915814244329335232174180166485303987463833350829338745893275801404423281149299993263721854394247375868116800501043023013242593237622319509178457118838258495210588988895735122690639172224962540451309179859388262723056171867027221452211369671760465904317140002410005843399726510999426818232501678764130425190538798664244177638520804247194008626405371432243609418223171272257503333084407445158921902294085236372684676305739824003077947559703128646534212403717365521547814819276641811536091682780169513733961172731344246336660456774419410059126106004567672006178129663746634137994906343625301468728445614543333580446642422855413041683635676838256638278402022865287534159953571995578529770333780299683283906296041292229780443864172673055815060977498199535717198587944760488327301519170820032312498549143778796998097402445166573212726025129945801992209478381838484150356859317296429793669254619088153412877888094252065585964803224403179873235190958763697725098361025087182134987111983282164809972621768440954772761780689599137871856328315545227276507303192193286237460384855921131702995015131085300112431691399193875324356728278018722402621999382944313116834680079693989570291948267199976415549611236847992275997973365742208148851774986269942935081349234400652676346011224908320769138490141283021616311904700227997667708372661977482405560791325108298845147267977202082512975163247656940200064895162763292344282960060123256146613553877746761058111382477183815742308388080240239406617119085496835182255827821173857610781457946563964412382247820050405916952425390449271424833760700942129606885336875182677929964948566034903985953146795854995879469063722798847557339730823770985813458046715497210508162569291056507989142757607209378908781629874625452164909156096377927486617782412285435377379557819956401954844196078707921538716830116435947053131507881306380877916709060819735038228294863701776627646292392879778155700364669953202657722291597727100290145346049542342494723918575501535559829329365390891928471489486064533892787244231082683456570785169192907435001854453803027371843433619372770839533888945405292394128008247700605290287454358935600662097748341611144432677498939870463897315126897175784667968974106010611896531395348927090181732189354939080195141560358857762174520949088119384805057384344448214369345310777126683724051270890562443748676863198710830258180617350688760317466617736544378486266738971508918663320592288779010874666245240122834746545869050315589486930454425928568349430552727316797422747951862270292246707121258682270089571009900687150438605024970886437377823291093798126235829782865239054068993129774837720725166918356882201995340410098117792083375278470837634327393466549126740094668810831783662431900371030811627029582881749666795604471470536039725395721130961437639569285628982973563256339677880045686229250801539873845351703176132891088214234219361500871611953682588180646109840925126263134309919927645114923107582620026138596049312292098584022912602056161238297200184019647975427951101564796760493269350489983089129905556301951290312873283055908554690517833619961658049685641912894355793033447090999847927316291917677904342969076757484066854680213032032809872566420357545302113019618735931578511701328676537023548576015829960385858209332845310575068365174713627129559756547981984370679738050440069510151626378421999227408986839536205668461573360206913729022200903244959382696786320431308822076307196731043730389618215110762945288586209961422670173801599803637353585308051233704045131801567209825893438705736295375454279937124220406837885282365945437456329359047129702361177717120691342779287786101255468481791102263749240987624262508195129859984011306749664827672473693679174934849621016418164600107958754229905231022424297000202946884947860677929269005000824742955682315375056357740698977618687432512652510450092407296818310811620707757674342770953559306439257476454833738679917553218064845848396003336613001148747565651163043190921597188765212449756340526519121768387090834893804941165956441880139389526261735408337183798479968763145055133449084731464621761332548724849294252168808760848617659212382847443710830419829501221440318092309536352689163799274761791224331116201960973948645115301358455273280361621114703112933196417563117486029197066782531196565888758116729892486428700885242531699369306256904840969898978396031756078700892563421469076138291881754575958489992193200112594262965867898145823575082447582145373279211240679521563375833284293772969726461423465615621643011223958252312945442270942330906774842328005755169810102198901360335916145493756490947663474427489133792875910384937068389853687413160108594605820906706548980369223372307975772345540435853483130641999995595312418782259421172531448232875576807936485277216452522412999497341196256268498764445616541233162941441594102378400898576741043401909537186409201039588710654101077424725678899058365858533402434325096193820254809514040232125824993907228535464810685924515970191835171229688137110586590308112522349252154177313750001838759138448717153405739790953380493369439227438878181672482829055305673415098114554647488638510381384348372526955246786260507375851932413908339737119314244551114932071713558246046039652982140056379245853047650110971615449620341693466120021833501406828652085905600159044941763408855109861296039090740055806098574211599564802358102439152309942245810740738509623543869250427331642641842803710792899780858733513318019912154695287925425826336038813297939251342847000282573493016388328214722698466482851143405037822278583595390556895165279997890043178149494875394145622856173711489833917222052854769766088280835790778508215655079953287968727390520035843577760260099995632945228729808996622632593047606479355695146047123676234443520536150415166015163451001122523300464352922939955496097231547943137625993649792802855010853761829101530832508880755500900426571334971181268106620792194796020782123552015766139221470498975745867574089425390643051043364526038793797681974207318233795347379115483848833886897966099613847531071832059381494737017119233625420892486986647641240239870230439649383460520861042182081826374493176515461103564245393139141017075247526705099225171807381887043834823568211777045910903890631646063526816582471444005531100055276242989320009362659388696193757821054147427679337939695608861014704155093442377987333934485345607002377875657332884119955808803493404128534812292975507787082606862070338051091905435109398011489550506091576169765972749594817519805946965606530377590903159066210106898198444367278177558012440709877467547684735474265808581825335393509234382605096374657500022641258716535821712290204115548430391703750122441057969409240908554942645462194670327147938427202054923128136490065001479401580932244392666312167568392503744075217861904533368969840685632105525609587320452371412366567201812792056368205644613817041989671773246595143498004586057860592080546876098360753479804809285352593660483669415516610915842003201497362471732800413052163591565215638667543644846196226852245597367882700459145427363414345777838151386124778868124186404984053263030861552330554200857081283741098709707397681664562375405897435335853351337883834934997017297354408535008003971102501911703660433898460623837274256701408297602927684687294425101976949498824912427348595298439123553989918590899040241408891062748021605176560194740946887388999014390622087010987086123537978191682189384184694854883143090633383869858115566081308288202882514621165717261255038352664636250846916465829999034594963058010415139055789102364211685418523559651395400347735570751741230325839989649589578439060683364854618560620910428365251043093551799022029382680334391210439446900038203009250144095080833272769225069912257939358440130351909288519845057525754501130001667099989543486126504735764397124294164987624099484366530288019170659493620517604746878555797047921601709304878502427683885149298290934606570113362923201790288833324646391990623953658915457746806633320296355182691586566831019320696533949378901151356252471797490823211398776917806927595129390674678349429144693474785900612178558085148156354425525105960716203791924920988522721232022587200085732850434811903651212937316727236069279378976728754197932069507249406224939348395166559712624324502034086729586192488747663659208401391102897960401708226673100217678056840868994811072203171752156689724391385761440787106266213884127226205979945857816167943278805975840648238782461862136299714595671571299728493071592916460352778322618122164281514206543974619953572343367884102135243034289144989265526246866807727555806015398153143332637291329710971083021520980139798797813150065875092107804283048891427840758834008520076752091653437038293634476358802433901284249001479124278305846757447557530825297216719809825306547766215573069604966366979768644193643644235164132036089877522909311315891864067518834087036357156013627616101658537319773520260678570259843520842374867850373493752329271026731735731687398680628651354278842441175680220381548207372060246261351988079407602531153245512986190686730297164902169681402875129683897259816725917919409689742668715532144026606769969008452083150413765871330255682112106918893751512249871723568380019798061259241065385319777684617722011220729799738042861385227492909121590489180147430957336757401381292236366554967878138022166809653862679555438226238485080718412472363372635587208013944394495907831075415843057417026814792755867331564916927247715141468347525864678783650036833061258670847778459598398122267587545695071373989710582622034616948572696424409717562144993036790423610409476827357069976606227817841353768385099631843697962777063899533711473897949896633669081143480515877940379456669060804133689566333402932728661618608148992039843612951245285679498097532337743112984778118245523165988566484852070439667879415568647104302607481022524978418468097808632169728968350541188161472347006528988451434615008971783629809200161314436050315628556420593375996947074130134881964764889434734693575490962099536832928623938514341371590536165604124363621555217151799616348176445385981148757165109905280074172168913756492227819104426241301080505181189495176758177214032344932016693254068881179589999514829365993651727054545535737322741304924609970867522613031229265144619054172346065696405648283612877032018615366089891691124077228511099014162413609679535464471673182405309124903815777085582681146110642280228698868216512596922505170133206598070848499310947148798915591136140736571953290339277143993259420925975534117656998397229190766735932375196230301665140519949761792063017061015885729686684511784150693031352469951465166722166637660065605224176286859470140772099878523231193735180107952223651936427035142809245976048316582816417010342320397209064105360812739344738216043649507237072942671094101568059510701833083602718683513175350065487757150905312594133399243462015509467522964796883809830987327550371914378686295629321029018780152269087475676545838049456691190275351274138815364850357884344744245967461889341427376685276689590578745234687597462066415515602981972318027983053732874192161880567937235977017580408301900035074392509411671151284635104722007360387574421737896120468044910362435509501408672277673183820812649890391712001179101933628424132678774670521722452121180901985782349990207513571801954580389242633841440200297804967556528635669726447712105835122138257052576934501319975669209454293770254639336458278631482175891347358926931221078561010981158081549971088339549942808077073614208269544613085321631553426515340709302887226580880787842271007904297549909468421593594911965567236436453586694231196236889062664826042910033205065013697415210923393536963034359582583549362300499846914394333877535871456393090191012733180335247809677651203846449684072082903352970144967851193732721649222296242021955671698362955995483265662545439274284052654711937459365017901282965109603468523100406658824551673945975013774884810549783117688751041802102031892319903822184249617357751965792279851298939129817237437482697813492344448265943028645374353406983313579010139050142415745814209374524068251878007576940921316141757084514771658519568415747477169182595174553999743973434622261317017434396009203165471575298973326560850399829293437809149764739994830040816058341441322596391717635392205474572292849652552754328204607618637349003073354037653638843370491823587703090326778417940080317390303867832147582980267900326946760347744901610300792564965822529790018226200703088815126101288829326306605479041004986360656325019709879343413977252972129073565939112924141711213563306243596622059302579258319615262967124728869093893858946831308449484275937890590226630202718755754427652641900912463389065807091651520270808749373361348886123030527592038462668205913993974846612160732317257165197597829546955652185965494024477094583341605616281850316397050396117617080289953350976465870584104937236724888095319963293166607155454819012084138681520509578552105327247165879057389612806751949858670796012499626227627006238434612291529364306134042576170472501008335959388929168249004815230393542115273642385394769260618184145002861665302333552858078035873012614237400647642877522861663868174857783063678742932189999284114675277037156589538601367783284836204925169538347616597741550191177686009270249429032300484560918953809221518667647561045257010019003090831501652413230874534379910109762717192054402235582425431234502383003459850958708118524967879600758380812774616442762383715075039709439604726001939592670192414700061789972235122158648346768281646299871848653388281078371523028463140058127809170589719073667912140845179655530454976912716505545653210426291464778965596784833124634906817073753791377650699568967947454819494301325811467639036173608454958646820805071620587849969892117289011557512910230381200064775274386680880183390571135134615020449558853035134861906244944410859186849826866150566582329275665944832406422781176538926964882159101746772310135966725803280739232218067738318914388950451876300107642314126929476569173114517850187435999826998786876978458133392998411689676499779403743806683889933314892141508851243752047046576909291152787966014794106316629468374339421899371979475538690693322362974877153901846485893230813345757541902587268053806897334694410540406077572857879490486663028665931887486330711194754500835994578460648653810874564083993560522819500096656797058266401458056772517357779228775615450164791818361176104412567563152714473030664068055363485213171957603192777797333017751493159313053422041004101495001978536601153430155252142991264154613804335447044208849167825442010724826264206084923649282973795290315109558822236854930366742943673300128305070791707546781729773270418158302705109290285214371853372690056057310747407149723805967840733341721494538072100940131692580651179471677845927461336255843320218061326001068575295745752208541154583850196176172369908930461531352857629523974496091827824116546137245079147232394314235894298511177768364303480517464667844531320666455150765336709845713390710592613411331164421911948797737381428840319019154766106032982488407970121810607683514801085951386851336768127643811935049273526348299726324045756271189741522893385694667786321045057569983612187193152377123940388617235986150010172369612549017534142530413222271373910224035464179167228379597731537605431593619333936661604899018289207878238598017953948283617735214511401485641001546636628116311815046409402872337099646455663164040209159994301898986290711128667817723913432168192669712596005420275518975850206008950066650947318077252257459512232069057231191555102785295819658429002399196476688113113689868695635096104851025364290925463677716769987276294759205619992879901860175226897828809822035527537668385769189507205383140333690048292471206687077562559843971428687624905811010033540649197386620153356279479370924275365347800489135786366720606261049662945383295190773690497094493163179402832603715147543482557698208841699457867555074989624843813099168548550073758879000436846167028433164591949357667309260966654003048069681491496376440015417847571719875180142909511248337012145283791417991291801343969570572479396447272443510190867815799803023561121540096486678593074545987067021222633052786983985358057829823742066522345342998847862773724563293757261111731473094668340222552937166918327517954941971834509437285458733864856833570860826787501781079404435982484066491047828496782147249500853148436281679200770687766060855807544352007826833081690565259655530494164725992310063338840310926180660417130251632175661186998613120276399505197490507715312216067049446404586502038380788927016491374464177849744760585303149122733738902554819511470337167107497907182231973034105453833939617693942690491953362505534763327531173874968386103899337786866137316247933083487500567896032551840645842339142831141450130907822454125541860095316272368132880559398204503938388219024931768866791908364267017896848358090437829411228460528931960198037453884448034465746738447726904186404810065251636775516773944370593098686658503721618120896481690816995413232781324709420136322001660372127868221963363404581328129499399104892714298641671368003541105106122585250134707014884173405686201829584439022765761820348210598514205745924282616520040084682281324153217776275196349771502301204444221228287420271308323485754188561993494818949352391301671369016468387251323260346352120188626741844861629277846044072108232383743830218574837351781466545270398674210069303593342339532413282404413728820342974952025113718041462332098542388808215792503080575670522435113196919009210393740918326099533286717137333271628564637500725891880981682378287224062791523317663093270952114873169398771801201298631902302460679681132444891077206047296412627148149368125011202830738421045833307777049748610179321782128116806806464200328250445029457945123383827722306664346725341209841561492245693242679400437682345961742074513127997657049242962594996341899020636673476484004285460783997348737995903266150853689593429450941790654075015466422791262863392458342860260095020431402422799803607411231924942716941492569888046683107837807091960860392816239742121763026324717240996969165596193616515389029726040261749671192476212917289153760453598383848815119983198719243933015094985115927289197620629451531537373758841053699778501645576432330094785475216662298417171244797460975507326346468751698027239338235664435873725042130026577514337314305765472648479490920425154823294029052212917197975771776923404954637033161925208719837524955892657362936907132272782235271833994407553987503774202284707714771575856913253644065573561012254850110954184816281482529331710492820555735604369422775882943063134950601423508347183721089069955423087251322580815709656662711211221638807526889617042863929575816062552596984566847442321664989531545917548153994259524174900962139934456843900226043749673614975527962245014505026112029204293064891865971210956884791694768454821218831619363157510503089557628576715343299237430894592859188938783176016401787028082949347176748713335711561785902653474471431759590541619523810171892890075906700435836596459973822140008475569769726278545481945606644939202848937045000423799665537013710856330900793771576660912775848218502931505556803239420505367519067407923794477288045069570119073646673255787841167030832607544978592150770809821560296631742136761211562564796627085040483102913463194717741788495320619809671564091380043786075037345921345146499024171537423245264681917899969884030844862983203140250132998134672230809778501500754899951584989372639401233934314610506071028133220296954175809908975262327801832448217745302406802063375886629031535289183198296931699411220643636517923623936953799709754647294103301617317647935672673876963501414001101717067548221627939733943922014021245377413817745861138968304447784338100055590681333319775957999984511904963646683179301365400068448588083973587113761547715590835744022535144848479335738539163458096630770967860305607309839983794399788024505315789415660283680607903262642494288545257346754393715533886964562901010785154579665784203512215355126378665357183646408469444450342746615955496932549628312675965675793074530295001149934731986194164923025678042781992822268052098012108870189176271284414550806137206756346101042906642629029156720807704454248523514323594160819206621615381927137868949277857627453798125035634891729057437239794845932805773853527957707567843323293489580518842463042185690797934572190346600601836489087373424830937842980694288533729757648130683671928020806418549613660447152002698074338202307226379118249722286455173174717367518811149591360204295314332126156314344132738971235754886497491312546558840808810256845573900863448787599566127693215038954011517548979266702976388917829837204683253146584963387739438718242276059522486161734519129585452072566660212371306782211624898175910496209789379923941260073018662259553728968753753898781374199571109551579611108077332211732177046343379523314674210708568833432722354626502796412307319984150416084836664823148614840023492429337935191269460915617236732903028786633011351353636707313871086015570732337803639421334900824213267882521036283968163200744305656543879150786467996302318334127134855292515577590393994105393670505614242701878748073474862329639496857708592312126389354172762460590090182058733849460953619502720441390958981122833434962770324228126696243615956250770919347618225351403353522182754089496336973911606299002798453072657752078590657658530019875302639934360755611314073608585576177824266095211104544940400403166964785218778534382582261823954669316609943913684215493647507440351561736938917708745335489340752018521241405126613032744828837558771621378738966318533045009196449726687843128711838298526998920526256661090560343407521307952019656329858309552183885515018747920221802470093366736107654183778655384665059561776124883456174594071816100826397445585685712137604911937986106071227540259686378129700859698336170582334623344802058246461554291376684764292036038517680876038179522978959439940079098620978172155648040779691844473195160932709486204473743066675111693410428611786561192748126014315776148585497344521019907711118887885080632295402581005472986459270559457768109482887047763948989752440360552768943159161374752814661397728177894878403792654218300736371096224243507518275156139679251578352572770208501530443527829113740416150842983252687260156157607823693309406787491307014043183944978429346656287857996528520469778896130874552226329202779511194351104051846821375104782056681807554701836160698429260520460506566671254752660890314612759206964498941563563335161116582646252505176276173949656688525686545979277866800560689085420201194511764083747727117258847563869964376676461280744710490632719285221387251623500592827350429692713143282840125909499008672278347548624722421678538305412699519586575236960979062884211387418093560823680786467433076411802680676770106326266488283405101524575844788344542407619269585306125537158042152521233821166490791545517187825514950341355769147383620329193503663000693426624554410883298858121951330958383180523755729417745542904092095488573882114287441161233064370206679127755778423783117695137022443879009087432647256994291894067423122462056644329884511732147749863975466245172648750413870063996654116023320927744722057520502767147492066467635248445714438191135547322328362484029628382573643306729486153610654809232725782566922436481488529364529168804578045212037028162949921504604780961702877723749137788008279777962563799565801860397405416446128121592644361125437363307999608095532557841417556511884939632828681178702338561517832188916022730238199008261288795830077984808717454264034207964982253077360019708870522684951233843165728041114647493573748091620976872779417196882106119299304322625141922100867966730618086586293656079906644910797360575201889731391556929987221904671878398345023562323038785321899880616857343701823074743279944438604023535940580016389958945494933025080211825982194494612057837597752293491939766317844026581845359084865153471089601163684639795488021427852844855836371916919713475021662636178588156552564314883343059434002835110215739579235925648575564329941893425684230104934059133152518082186426725158805404177658001374167986574804005055763478536617075326574346602583345467479600481468209906547341851835470353681123284290713692914238043955397490433899149214171141794658535576955947314081671861759811018019607759300814021046103620027740261383781250142044250926267204861909143280908108954456529198392466583778709812328674470738073756477673841578625949177148524784007318582895548640270167119879019757561604452945252525853208602273161507342773454730546317486660203763645888863563186015949551933942842277988821185818859877731814233834643040450901785955036748131309664909101584985343902548601232129607874408319609340522412217223055760056725552157323497704235266365252301908252929658792460401612618222715418358685352124736408782638004253247181626633516581469454961654036391497992450793085166555337190164438478115625456166448935590161960023102968442032637296652825255815095243849980633784393564202761506005677096654404761469339322231567174219980924397516111407227049086882737259702441291781739873783113255293935519327729073132112034124481501153315483873413185577976117296018181503902053406136171665611916609362869526377346830955256631884120099894392928338461631332554689038202622472907739258536607230219591629348925034049419541778927157257470476639271290408216146751914753208660373581383867591578805400400365288519888072142258446212987923994436254071774620571524392966040560448369692316629072532020738421711893918765993891440839415128282144565050059534334197479377500163815100060130505341814582218556956897308681893031059810252992959426244109674011821647630651268821604602485707336427455738701312003828916235647111645390147370258747839575941588077868658468366608518260659532537800273417778984018626849449420087785090218162509098679021028821984787288512704819356367687334144127801890528066689610195439894407840575472278672308584866866961893230905704075573311222908192828636125102909700791221184348270443141549524834110444510263603306280819058589408619396169942202653517510665263012239517811398112573219160210489253622835725834783028299017742944215258626341098295883147593920672100281744566486114885982282266720380750430133412743418871965580963598507946219692370733740484588270601518416698823702451188415061676326772218835795210056171038279141628486544770038402279742111214107379119453704027893484445608633032256362298719593043064939649507211307415182307101900202865736026170602402317659765750502728397545141314670088095333718993729056875047945513220861700006081145393793518557454395451167832925007446583177768814623554551869037284993714902304229507623810773064448316343556284304602617230982734409957968654758376151183358814685102156884221490570669208049295954283693772617930121580007737113917054782213045923750064022524822991163089356439022138304259428023405394547656926102846785160950327188226305159187335560818098748897678400623023697026972762696003591641746172459663480943457683914659423013593314864759911908907358091486368652538852455216597020515773262409480887140347752348655171548819363150834634267126575060130815078009493615864465440860342198495047739530301823358915830443459718071475762291040438070352422911316934130519079180677833398158649929582057162133476922666908457837911966580475462609407377233174184205850948293295589399935507854579987762187675943615463466361913409009545013714688477973357342049517541211536776310496349382449447748790308430749399292639482179140915842052968283632236571966668385547425380324940422970164571118570378721435060839600313820892616764854429566539429860046481301122843732250186557418666846143741089374028833648118039147845586874785791070666084509287731095316383181636124399805539541305095947293385442174206498221731131107598626177608004426862952332073972316470734667299031224521708675653348327811677665584430886345863504470777084078724367486675472822397393047780417181694350940944504404392136858163865039462126760748849946297632064825956259113251486039078674243727349539506900387845396060611776060168680168948323509923118032384647157431372972709064058340469247616880143642918060586139546318990134645398444137005775249528616689351710344295958635333319951335392914062334999082384342572586620048120484178781533069428180370001904242465781861863896511678043475101527471829092306497307643312573205405265689082308210797789898548668729807145979305998317577252691348735276462960114383670785054912140372474193049841697534512791755244121697095217470292115245346204059138600541463634848938987467615641294895047112215505853290762198286113682315171669633862501329962848237410141561116259843945131142382804319192961619148833042730574654360305128105498358880918233725606206581844732590306142298888690313976760208425186142398200974598843555818006711372252998134982487334544692140337988888652231073803131953682693330220947170370413579240352494219898468443162371718782461583960627528303541090622787243737818347727464039393079542232231008806664410306732146191856823909273416788534656859670634149965086077888078124996766817582035606189261757624834068171016323087399224854782779835131067331835403545371228041164180035925651360608430577862817199456674513651912557213214980570740725489712419702908264015299641337368539530594480675755514398459788661976975463621136917763039846340894751057266582977170071500247444470379533724253530231605867880528474331276142310278091860205914494235573435001513378182382171988557824759876402392717402569724482944314236993463380972119368233938615167080391269827779306767982117081791022920683908287864947757259549403967779072563589674726056003054595411842964225822313449976584434413065569357779318894491136857103748942091066464748860337168584766730967617969447005453820256510837246905584150567661776296720953737897351412530975145601269174105730982834113745903119148180856679485318615520968752062618970526421665478124063250602798364482823394416879436070783179192485959485105963682237084036659090750920954932691132054105318682579668134152478386252434578812729688012192674796823345138682588832799719304856472892386280415897555312747090613660289883252054415199706738077926864519244093545196816053553172090607597543334435536511716339339199186915771799185709340872803932817070119485235669961437596298987201848753997720965858106060485874863287895374257910899222176996684885963559060509704092335913162131314298314356674060380136481308101925559224901975819602734386723103324018819124268405120163734933546384728989806254860179070994190685196167325386530608976648098251979300325431963527556702142684005770153976139036771577549736613679128985527473165672784065904474988888943028323651380159212971137400803421643233087072189115282969801456269733089985118561168510021485632485986574404615972451395734640772647678008206911754652448221943236162935036744916624253150360480928014628069174175319429231818933160106481284487499973235789157009262405680168255256816736603295971234635938626081955772453059532140958318324866100418605964604153576300095172640627323840682389366283885990303324245222099246774869596892549720766572100644959342202177157406593991880425154445618981156756062718912890597222472348088401719056331948974537786658437907037091353010192138665449912894607151098984252913942704640206161884215826248441517158329535088084811836339243968059392676178621030957443897646055162131194178094983334098588232296155734564822360864124811456021145079535807772810914369316819241820285679837023714415215650649263957006689988641297069945154719753608350572909441487717487331446534151099642061426854770585458204884275333154611018505165108657951590809473812527020779236378481673577356288233187511168402897075429791500970284741466249981296483692591098067405985808196879676921437351112084385818621374700337512417896882739990411839137408680559478705545948291951880162522492032964009877342489796383038140073221704863024086122507071401491618809828968172854732253907492481873992903717817250722821543756088426872247910796930817681112250951940094038805062393928253760489258926124415921467052358470002245969310820461926669246549745780704368151555424832939190303087639428616468756999055006630358203949086822206784639102767197830214533878596854060242477491734500465976259788806427988036210306401274468133867545548942576906438762399115260491255784775721872295815648913937409963428852796550087197679338089408621165719594858082313549366522783145201663524634969240015526257216698159549561200742154365592696515462216501008949089270212176833841092548393038357415607725049432582874034944212727121262872904186683079360127846494227978557097760168143438750464878033172197295892668449598708665100186885159934098625204173509521679159701093533551591800967279973095625789668192016866047201618091332550184843683486266845733633386199102569125712791679231557836138005010754341877948920108804424332877962951852459924696016930557311949861027749796816026299245287290185548392665100702637512569944785158447760860333266764130483729705626807604112204174927249507572626988660459443623521336113862019100322853425891453644697038053087914747729007534883224776819133642368064611690972708665294079720329701154106285769301280719009829879181646397183270086153919538927285863358133876611696193926797605431101763301080060979779439254421949180736503749627944423393587973620310807799781486505291153618676303229097029443918847311009272904629732813689015456861104375923024654755571114101658559610965100057066705719684100217242013251876618894562812255616104197501216713140457384609900415984985399251939160651095583969305978512495127129549515175943732218882956422437682827351758783015847956592027567932695620008030162359317996949085967475739034056560730240599271993977445912395850396551859391055151550890557468674001518983061752029872407043767141086427406491321817783152975274311654031545122562410051124033748426679817506155001518490325808058008971722503825470145742182108227093576042768629388974378047256760314345367182618377960371943578166057986043646174900886202658145446728174822725974297393655741276013917798538367985510628594811025865788151557612162975919414793574304432864419917117202409796558321568489609497899938984027915518687388708678101844480067763053711522949194826185350250425708565520383119143143851064847648558199456057472064925139949382409626953760379908570354445280287949836643993373962388803911270980496440584256625150752796189537218467616253558069744549621178028948122492001657210219005194576645218204736637124155255636380168744770604272754578275314673270259809644245230261338269883657195087408191708052243583124447191381136999902384927492986699994076289761218847661756281001131367073908014513207680183667433348271459535877804149926096555236660258321978548444010122482541683328157303591736648797438035715231535667838446198733909036459915787860023783641300773301603650942749838494888953378504070597666228641584607372539525754114036769584615129888580119296350504462519600175270886491819309930631478639398505133922826183407487106656172224876239498541484497940409972755806787898444682530522596540208885038801976837532089749427610922414938175372523984561408466405203115458860472738316666790072463052717967513906723437195515790087757704405626337662392519929004864884616289691072394487793952731888790144428417699287047037640484488463140771932163386299668804143694941773132843252563039836207370614910095967266097904335671698537949376474753442002453012025762328981717040031503622111636938438256160695528759194420547822044538167675630066083267225683155509273677581498589234782432674365278666811701540538049680325896408480263492926925056838347338750122165894680685014653170898549878202594861807047899882993580752164120875166203548320309676713770636420830453570905232504527010137411099911101360671139758768040028345868614628973807974564609049188670260931141597828619867887587594972652804535779163660848029812422168410315470778486532289688426990290219168972273755522966641792034075013768496596844964212457155662460402726593416965224411864734694859710311292634077427662963694963909403783128723417791489237859664463256813874821227532491422574906557715831532137727202933876861393597951794845178275685461808154849271594765068032787241657388765197677178762048517170841104877507758617640755312821062585228980410278356389026145102167279891357883920948829073790939957822077918769305049576876759817500162048000030157291690180757744157456756186250867895077562467063502515396820729693676505713001078721280401776487330670804750016509101830394148363402735648731439601690984425588589422531286307416443568163573918952161228225880707195781939142560584273257390154258985995003565819228982175363410093081235753513866776119876772783661575278370162101392504481993252017414059308751884943242842245578080115502386492690289957409663618360171187361615649081309062916300844403973771675894864017179041186233457836540660069864617343564743548445282797014804820696630540007327065980821308105966831932894716112662869355199730970030754193380948897610116058123843338012690621534199067466286423380849290906995345328179144150432175739917957873921959251152315871557202923722977863505128848840569887004123166121035237483840331564992514597298065563744619057298220965611169757339436894416086947316927719429321167080295811554028167889504999112038518446946711342271048201682930987536839926372766973495681597693452895394334702849059841271602675048554126905738522518173800691639862646804427724191469872053337568271159880057004564445662120773792437854912922532245545926238486424990490120130298636522289128706799331479289449535716048603266374189406432950091194425174428943415552819630319941261932671302614166302509653915457693669714207904953711918795163374403983839362520974948288027150175173284717037354935812618176830216066602038693716319810953096709544378654606079726937351842579894339528856619519856036121659265064414766367370867535234562397330773687419436403135046762539532548102190105867782058590433244880177535629913500067882273961417164167084407409006382224686810361773255078546535863780457958631627556123510823166041609738600078387261919431432066535828404310509862678341614574380612096638266716602613526353393916469514239993338498501339486978545150042601203796507282472882323571079677505628541941450523199067249604590408397996939411577454099164287623553652283799010438166566610830049766618043745797319664130138494427122439334187803269676744014832498401738008270025837424314351154934287966788373258251949203008141468995182679867940138962258406684091123087065285992895224147688605119477265174931058409449270767085331619318941862307987505551144909830302114745412051564120913557530289712818891978366499977302122536785465431470731622718195689877204901095190336009725743633262210230438119718399747245723689936224135298778902716718555875246979338942646304976321910311184465999351411788570300318420740409947172901747436199745686516165167459910147294436101208689530298941187179671246124259174298203898028477635565892246888061015256190983940778571592231795065330828931589205331253763825802544791439834448301476129024962820949392641271766874728764011851317314171974999272492523617381904516275593912644852509294937895935775921588762749995633307675064412743136484109381754818991948715954385771282197668382384817921944423094304265714106701821298975882490052606167741600138559977049926098244898688099750245480518854283129801239833782601874414128501293436725122846885058216413250172749821190768150494615469679901187852284469437465821614138703930945327924039712820762147010917826921656147393878887536316720165370540582514544334214138899327629761534228322142349450669624491330559851002915858677346071012983190850970619873009720392557356002289086512726210298264246818632955007556979494997719339341573186960296121400698045426575079167831313654630439540315588415356420801638373081237825120989325815518638049957325140029843508474765320177341941410485885122387335272258604211504979206230809607930673877222999705738901018254567611975568756316089252339604040071265769198428571643862013766081754038457064274236513026174494184611060027710385632381393635036323058573963643949238436022376763829304575741696464067464498443570452966921742731612790165733015897859818357099878247986151915134569262105077145154507696282153439092833932284612575943123336255992075908338240331182387251862403605215755526843979532350531472674592443038423715935542288660415667617039583327885462249869152237811268557150079940094559551322074970947996173151411149236326435894787686219356118287499855544901840806767734146842926717475245971429624258366923863924039935554780688233864420193677672603140741299291468701218177709911433586255925534135597567327705112512857021532629224200559709853236135492379877664730028856175174508441203773444951003042253275187151839688366301932746489936125512443691839246860564306654704034044801021484701514568938793942981173411655238866160995442835064678758832769623269641155949295220792109119192116537461425991847854618017739255144672928987268350715927613830220042447021862564462997694441721651012245874988012466031181520462048990464292956568587077284320144423934369495255517494681882123279184230692530925203574950874767771459330502944569817233624410527967413198216998588433345953409004650080549144994069361529987278065488859866309184610316006362254993911161024239685085557354562425987513379389108674609015735666071161480645752498704219079984591954347072699491017628357409073052535460266471028693525679214028247878809983540514841491859009985351279914049966288059531098720847646398777776230378694922554098202331924323887852445968079601645391926919310296908247124215804911067029181385218244000223298523842091146764241572649326709552832024322662640126124482830229890228344830362420837652216310075370308020773307881787119202188862151004777400013629971361685181992168439332718002094110492328046109345500115171616445778761410025746947302016252229843458352404094487312402706272258042386819729328657914763223355499509129605550387232192650476837698732104803474995534224652750557878348424953917952098478221760533167537140392947233631445959951357611087649638762614663712431318483760271252247052297148934185104567619021144832339833113182000572765615864698959174302163311444759931583345833483392106319121510166668472014559519637280109368438566801083545714134091895375708535724032036927090922593841867445646470727679891499467706007284717903519055246881253959264713929273679982448557634639937145849012707371892988530095886752951362171187094997198189837927953984666287476617599583011682501894577131578572691397121572648972362036281731897838666308487484861673696972669381430293949644013612632966794062395384488618151523251641632557689433993136055497698562851637654762614606434718294548478284641982907152787568233128052081793058843301785364706899252643677076300295528478092766783634311088320377599563284840354613500314724653544112179372450420320855171345215012598232246591432281910509561457937275895387565988566355497214332550154108192591750973005342864895089286548898411660455279239262536135227483908288244356596099055865772849965719720236704965831947039300124759832771195481994296422253732384195720388638830256821237181775253485841532563422047446078337648582557349992520663254365534966368029841363096203093720825999816830099734322657187385021832487227621444639365958304857848011524438359602950026739135527655015088357545712084696183876141179295337802926090632666200099126638141987207407940875291802415987382599227307683033496209950550209767785997137442459704022282225641168173892684299522089236153690259842920992528209181350751124473032969561524217745215941307304388142569865863527607562877461667477212317743645695754086903080079297699375777652801136716475813738198606210640751241693330088173656223630567580126542967662096179505702602462234036377122993321899545487417981245207432902140707463606600868450480415284974331858603408067480592481380923180251961238948899256602437117609966966891530399711257248378544022987190884058905223411016168623635533691925176576400316456319623460320984750900525429100643572851502441045606588841008238772318496986199065085007544220739283508154956847443837604737459633142224314924738488687687987021193441470966241233590709115756612957017280889497297741850071155846334292942417377579160892679386696117241753959674319495763496040506244353033321862812564979443439755934944013367297564456894071338618351850659490181633747187172262714244093834147850713497766612237044717464160978480974249325117155723738111346758850862816331348075773792161122600645645156043299545924426687920599933992472577997051803086468628277474663980917844683531690964398229154601567966811651426200015539436350316764672560596210771131915700656228424358630370916289705520690044855164351175953666123636953542372581977855757060018799036107933929152620585408645969928858844595336410562476657591205977492436963773286302791394419873782038007514859225263620495849786038604113846250071461347704202008770026154854373877470804488431734117367327942787996979015061286941835968510806749597523484802218333568643005203130286444001151245330690513985499524766837113620737582015598953767127305800328614213165930373250268005334510818600112445607157440492994011998745681538002580893068286581509691932960278170015391657924601462386724820916507670382533563028878748872939540765586241219927192628598822462545576721413236014491213309055939682899371033407519059116486658223386002238807863268007075653120123427237961486022894973561317964267941464746655745969305898563513317282916513347233080227013371941963992599341787943090593521246392465027902531502732662527010335395624734278717822566979320842845561460939677376816690151638969295630598391968432031235060251825632629164241130238905175281472029801658689265130185898068981304583924052647647171491293706670277837111747865183261597968846050549612927569161927096384551742309989153588745298808286003286482144345586137921010105482071280484053771869006501112625788192392300914419076071482095234436211034914771586895358503932933524059639736962352260048756940942017466576190276341125460545712004965460696208467954329736210072847487171069886647879646355224634673395815810604863843253714737033480214954151080157022659259349685111096865760810310813381230980398411736575945892924899105073141565613567371947218901564836713405799895110009321285850322926540752931523321062375267364398180964098822263673762780844459264488034978352105442264895882247170944885235010588629108223528046093229832831935860369491597148217182633605715542850664416446637365770038696745598983057307030118420086754463058866572019998913323185588325911518048226225970278411819072481592444866136719743687251795213967716718286349606886071574719098627268718311558731759867689688921640584514880115487369275611113715842925703848768786531266406111725254971614391279520659474786807234306118484575869607204054531185112600786038477534341206042321367106257063402360056280463417881638348421783351655278916648132571619267130216544405214975658072519612417437181626302973474543236807692720968592309476909481730223656494005964988734462694934902912337332532456550615210402182663303012843444224717982401466340631049722669316447378382124719187377869139693599229261219998926503227343179245804345550351823843966690087646673071042047384338660354638085179957812055066994313984916535492123399855045119425568930601943810126133717172848313439135679421490710116069484457938467507592486692187718967836273090385440469364653802957892452588925943271600758278841329033463192786912823953986107328872288502254380784202386461034796010765083452843450449007861241817881025461917078150269533444468428466276805516983756276162077879533845017385932261051551643053983608330676825282496394712922051298640656023039417498552944387618943731044884132596721985590007083578970985745641924483306164305849299502293223906386047166140146964437915038839969337563689599120628484222963450326990203156836051964905545620421269155913495212258816180361561597289995458747220727478699984934965810852274958037150769917486631362150713227527597159156252727683963126319293491468569425308777007973311538184231511253194141205004569159537929078585378624057527720892343522175176213733012386514383830266278351895129690713175278139225609413083221374650677546831906929237602328267616302547380480577709545119211768980982706191272624316621860284130286686573580743332518605252496909589597770234501688595446285096568366446520102773921900990636673424884167671516499822944742729848770464025992149096633354230563811193410427024663998433907198447268226545203494090063180919568043816544521719389899197463716624108715848039737974586531830773499662064999122679699746109596280104835906039322398115985704709642687991492520279639457410787889232727074538423217210317204969917867627828406061541859840160576114756862967048067198058176843266842777534510265299290168343945735451060820220219754306369809738766561968427851619066607897384758128785389388838760283837412652628815026893355837426735333687255904378546735985996046763112938680400911437917868107335133202716834571596377190724590482808231107818674032238373548439179289160195970693621106342039221307860989387863680750670335569175751670881202444933736900423597967406009372849838451411714266785537839692914869203285881541073998302473654004731686227201188550227518860310710047728953507306346071188775677250476428672504938642167907864169314984700459874173359865966592115502279668493619865549134846102356033302787975844988698554804881733621136524940507085056322023028465331472201105909069552562961218681249119454896058340971599362548861295205406425855830815943629735817582014831793080585083140721453514676303234734116287514229462334744924061312121890833643767778003449445284783084065875955924248609956377042334375481728169255531273914609570805633446260594197396794022456948037020198634420842502762367504726166932623434946672891003167995938356363614512021729010922360714727107813380129762284722667798694213228601196891378360766086168805868624959654939624609051245775399093824071415157609408085359750335207986437349731638462810636175148518323062379090481306550216461917027338883076489263292593401364122666585328838551270121042423512024161991977009917355759296752577056310933171465304310690312117991671340255752299523109887238181754468204321944260167040733892120440786463606565540959369359153599949636275200368530037556625891564527119247899588610428421437238620306704614011281573385359839564051946927442936216137457011273935949309719220642082088733658880370084774097437285595164342685946579918218499025840488822532786543935705888240891079811281930964846567559512824068159696098778965121260833319298027308215648201022327564723607369474200583088922245237368619242036097789473290959839673513695376794651053505548803183753926591894886856867432301447177561516646941998259879172815856784028579750168791057777385007738691902314492112804581412226886150919169322645182412228245547555210512162449412791416249905006476972675302673966196577062542418740650777525188150406555859219854293151857963760948729758293617521639580431658626828221502209664366202352874012840104044942985429110631488881149643884891468680326574932286733627583514490833240236248859496190443124354507214480574225485661465550206022386171202209772017283198407650771918099464893429934736043130710322843738720128717923469973925051700123563786017670096551732626598825924178863256976746574309813093530756088621245645671854110545040451510823270132885405228640071464115300604979072447669239223995129643453678250719899796293899902561341672988734673119294287708251310066783049255418383536504200737547738233081736540673154360799410037647646675759081249447973174148757308728126564822060126701374828561512176757248074785684605352465405548394447318658902162242865546749028626093553912607706457215847107140244000303920321587945868106106631063095958031781392489853188452150029680381773522835854726082414797294177840775230352512962679757316935777542186403729818970026304994730869432236471296945920387883094780153538164610194140425696992802241391793723510429233179482014642168498143701224984648647718707351924631020017571821181527029456228469053422236478994636313637580658559708660948566223145949116882924169249638125742851753572860589409281938577265939900492500599469919922380944474330504357202879556711719168689247354530023435691216988713957334923812373935404705542244120856960333898340231849527560462015772344541803330681766115134568571958216014833979672169071575399177288882709735169160016157712458381003241174919101342824056692322708828814300641643727762905080043253988566814268585821184644954447944001929902062506167300515600582506547196786500672307070854998346883412438491404965334333694349593545932265528807194509900566994859383252010071173000169008671074139628001943367138272577417335726778104362034274129140267868929943556856607611267406611300481268342980403936052815038373972234939506387954122660389094768398319402655570022945462489004483023674578244821616219497922800526181411531676311202600644773465998449269190945339788309633411103853961865762310597099265145930180038431247933430867069219356057312782703087544846393299143351067640591740012605660846537019783390605993580849784673892311538147121710622569685755278861117044337886332058992765012929667516811919728628657838158372534924871819571787734672125796504635242418402969101576950213649681760534575242366460721844280012788563024415718683636592006497434293518710035845403304456547486944288564757155725224722700050678910258698268972010452308375113153986435648392577078968409414184722431888053739791643283070108146659790060528136092355911147150850918619091050732940051928506505186469695862434175405443439993466588047147337547318523785569593666373808047219251774738140073649192369289855703509776336426926084780358250483208336572479165060877221837424744397336830382538499660050478918851468900831521948241605730076643465678067395126942394216713558993339419432556487093953661020258283229353377537254996425322155958162334890455572325413591218036486089801717269144931954655802150662443198611004419751880351926430038772624952532524533629493936291651178871104364997747051816046798611098605554944476124175354710867054899042552147400185638122705205691547132358878718414490920665473098938612672881921938803986340051006643988614119970582390874575381313264569287326881709764350348201634032225382877796780029921573676633551003107340848977846744826332084186552424227108501961594328183077680149234975238644831779910838743624408901067199836273382758553150194271726878333006553246164474124112791969919891737971518593920728938639394007602216603487298033210603052803722387005176488054135442940157436717779648214464140714973574047124352391164712868671317904492513110554819268423097320587133258043196486638032546770353341205396970508394143242100709490795287707450745938182862574527235691811273457913470092201547278755681492537175354261257710784858078021371356338473311003004558933206847076124625930252135597065728597606402094334490208545793326413584599674507770643930527602407531423444894742972822590117348211833546844305307667473997824901592138900529359486951740107491568988807171857262261360654161291270888326632074645394548872418979718043902248501786576549700369611285570888329051238181711811143291169709921532676065646291649644458169683110601752708815555277687478033382750031653478401377340318600507834433965470944264925068712411145244475381896067122073700598009173595337682280234647634864749760194125729175578192690029645221855300487286769964405448957423532197824173663063097047494115778837260620095956337075088808162557145412330391274482822548842652496752514896414028311212206018952480233945030273428598492314776525752121759313739713993198840402555152378034862248831298573063435286707714878387412064846878613117778851039249459350664959226095526218859237754211674082131329328816014081737657324172095456363542646857243008641356902055754362061325309662059661415993229544639145239538597043554177358487947177210218214968520509408358440150811310472691841526277961781114984451483231004987310798247018546335437330561458128382169014825773464090083230855412586272652711608028213643430878500695905912028507226576222131912755257861314862263176026766239794343028029787537664295637890500051765073805039200429781871806422305842470688929004904595163277586890807850652480517938261072867964134080120174006798256377303387864068473542971843984131456053055837298932257879393435529441750540097786263727320651465096552138031753267954714511805683236857536278240064200745157177748624832948768781741099343938744172949248982040512250983336255821153992187788772659096796417336932627459042420819158575050005709358249625113408488195814473841935986201786360332609959467300288564108041063081836345962076116898021945264574358698421645869056055957068197426337312630702278806424232433111405051939959032924491700304463846721328620563803820787857594592787936665612057441331662574265116660656017440988577805230333834197497986415207094232367778638278737932943188469441283796004772105006715260913482016109956028033536402934267076040797261673821518161743997556925296091750190002877404486681723113213572250933970280835462501875757725092918809870932853967140321246663274508458501912508723025081714947771031313044180413497796581669590396941378944329659119335166267494578821966527626562404700432335385909130706986669360616715731126502338987683981803087725614992916376561347771047778343345346460859249970737228963665551452037369745090716071594473289240641597117249215622457381407713497780587432849859138466258004856715857747858491723364881882323970901150494933291835847141034283759299746429203922029795505470198843515368682027877951414183197888568754923913530053469737461436849834012168706580531732342001896825312562497682579480953048050825331913757990451053620317275215808455184403711574010385928202749791431013178426510889909829626945039872381034410654119672494615967981197125610495957674829871974252796218615964506173117116984068086569146753990581258534358980021850492539492861319093658298288901738750354275508479399643335603133835760723557002607495897143483740712523366510772181794033377721866063214004030644138291156186878537558291518122818268273471329771431661376314011601684985815608725496475739067902312498038844098930759417391941428242292677398346000001803515606507434768915184534851504817594054085826327520162773507408840897608434313985074770799370923609214042807708573537894080526354391994201774891076795436857219774960727475327188526501862273029869744881943819756732567112398612385069284954240939521503162774878456104556917867417825844301647602879897261142534069179510917552921462463836424469602499122650263134104307022998022684620398151067233983431570719114729298959050748811119548116707904195147460555530740621042142869719453607577270829078600293433954877489365432695658850466219361051074909001938499023502791222419696624736158770324154144489411140766289461131229039055661208285781519211791384102785436247810009632883457763419028306511529663178361317164307191168714091221220024775777145777834109486461030459588679711865525645839177849033429061972219455272384841106536526199563363481943160167473989390972561919860581500840201159512472243262065715965452955803691615271842508639275648983983531622045944083675302422118281092845692864838844170617015497879263132710472438119617765039254114250171049780187095109258831150637760177963488297390940008164826332556146923868582018345893183683928467258017296429975810270106757721053836647867970403463745015230447549588746919197687048485807418768887417740019609138837648564765135848483978061990438878790972480682934930099261513036800241947523857069689599357050451101026024785123006213158839932554958100677287184497474491163296809804903690584202928719472930328565648898003950104933576717661441415701074241610638025987981109030387330608028393424010393480492877755751767026073152469654449450529447260114448697935399561713708619726979495597697474490990090207128318104092436117589725373753164175842519890558432884221993152617457411660491906153410650105803402620364258921949442588188664882434737871505091759186305329345641952111681958473980116790614523655553240435516576685952178988827967297969948352399953380745023496980727551186006129222667258055132593229400351683093122823496079346825976125355829485152134699642355652929940077355623961727215383356427433885990433054558451757526117725325693198139950685559734762481135365025194890199419892193080869497516800759290977361893474019234944305590278446732945073907168676415308933333836669280747030610016167707935819185752803594374999507868476481980795907085353574437911982473625831241530725520311881087764132068772947861628762103644112987048967869828609616463366854453630909018993729023787605197290486673094520109149706028630553719238918620029426190857965913988818611933942665957213299407905190259816235750000855204141438178816403182830716822251861423893459522636414625410176289700708659811754868949863310236033735411554505940518959731010563290875665951331773141425370965386560298650218509182072314902116620700622404668211229611354478085586001484582747903689212444794438616687855733286172906808253381657336996527398304145260218755051118454044806115901471882215734802785852914894735285063779115076676583485040633293680462845339426793383400762603272791600962947176177026038650102457257515437655281563682797145810835542087552786810991265402741606127022490635791877439245266183594384872079663556071736206589009879778584321065507421216937721367124303513809101590654461737097561823457524700759674904756736063977827426251416245079973733772348011494132133269435193777290120000763041954614512165127705846508445130670775178565716047431651617621049818437877946843825493567584116380211851681557461602133494501904998095306828599329236057045805562482306714992004905067421926234589409021523898574111648100449388692307758576702859283278962601315322729559643240788377655151391953553946412207271925199614469545056401996615603329500302572116143802150340441623954504376903555626837977102418667037959059060564228410710696168283848696558490474250771108380948011989783991224126642442953596271095344267710656141985570189766645955760043044971074742583979134958186241650472343654854129666156905423232496171099585221820967663563383700926781127098187159132477949894924163020934620936723040113978652506570655859947859128566819256083732876569389408834723607166795550363788156632900822127604657357964028501909383831528748517578260446559535823109495997861872943521279710499782193015433623390864966057985880112792991922693595386418876315432986620891409522459567091614522498321786768192159219247174461066950770558943955156693808773019547882794147960136411904640187419745383350237117709199848854403225309692565447446054235208460017501216404181620243839757715905724972985549260469106760194181314604795862831736972747339393102243470903362137283430193642796780847388893125975649285954876179324031274171365615694146511994172828897081337304636899345193243013985823201455186604150853447317826648675558859874610305147641161212573678380671034079147773029463083248051697791012319378934034975544068813551205174693200217836767097324103309279504163689323904549937132478503761914353657635856269236224003194717611672419760172045689489813902731332722932160079125469297127975673947668496185192146409406235725319054910447461156897284709637250743705393585932959955675702436626935551822429122769248073209063934484955657064617855894190235990018345602059776255245631703996909683594187503477631376117124520162142889722344144444721031567072200404610165316951696780388235257321557718358492011207652103006708363653025095216577334489114629367800468837932576667556268636812544932867111801991010916457202730771140184352723441063839977966514370097271647247709475832782861546358762569522676319512941341358637585922265187585133453516091919470934333573573878579574545093277263794932011847147587566281401901001316388238421512699643426906600869925771417281524093382146657373350962849339194343456813726583255192615534687116721121956039497549939356554961414863579482614601267201140947820720023748917651405582572734944324926253046489499066938094339665366010896643271985240386179857268177746466844272924804409707444040526482754991148168212289324158061031049354829154957419070702804771148999994641821381131099205446428073184610412196910262156908135574648023839602902482177118230359190247971460422685371110491040496692440753679131397796910289878725649152275053766330150549590538349209569359081211179423050809701899686124901908212653243900116433627749707226343427371061693594407537736861372195248601072895697059966628354171871873071270747444977342653857904552156845716622658344933640504373794173944640904316547062361208397002584489563808397343859423010948735280470087523182974779498047497465012850118621047293077454656996107309053667796761177514881591758878026832067216638033526368017612302957079185573145686109906461177787050137648998976921465046927863876953830533313258055923538136169505383143650356597053666451076591284289922587563964032554161653011582006651035297641302034169748607786487609184121882454409430305003884448661702780682902557848194136800254906462102058603693973297347689521759933247746116049009674090550587988782795663120913963210018974244872538138368316489108672424845549624423350567421395917890267938864476640364633740631234057406164168307619567990344151397509918938281509165270920174108803539986345484955803771879493450533330786917503404434838066508170348522666374943085929258727824653273927768027270921358323514580512342149110067256479317293513486643184244068197053830214924928266426855814437049216307295667540845865777240678860782117291235947000434538605395548682560122112035490191532547619204648491240425764384592041729729500509784476947267515809149550677937083604093508964435272761710148215863848242276490666484357275243142778802869453598654431788318463102227914569777212235899041008773128441481694748526182708921016647894196124530223129155463222038328411328996896231171049693554714867072563601157597170635415492323498247039452508828034127372823833123859790377348680126290480759388891876485164503205734979635979115883088704410097943604920295662752217028465550921434402992725491329854683939099853133573018644431966854018530978633167238327035183447647100639249627047389458608358084107085164755906364721664343485624512339944730639098189635964225903330558372754858420500464476242313332117007163196933364464588946283035536846351430180170429799804917531966334520055706893675336110060712546047929003077224601311034186788058702443001853625733337919465911481460572288985698823580886766140411720082674814773799376551281471108613650496872839461465526325228586212459971499319871558735683730435613476555003732963297820126614170358748342181702392698017522299515042476110399184053782203075248272107272670798207598652374537741390381803839595711073790787429509687286817666151060448853727951506507915133920563197906033242180640412194318088215452735156464896744713038755039201080732094391142355775070921664840128477960428692692032446247093492785078985914350084562477548225750932593798772671692306198002867465335797785207211693526617107174913371336406108131328266134425122636258327880530158965287607623625804427823742379032098002190883605272866244555548495347454939105072440246660828028822157186905141335380912276925916636838022368500568366536744354179090186082798488699855170525190830467145378835404405691549208119879609573624529410022304342586447252519839358019994717001504580412765020442483168711059621990888982045121591476116549021860426810562460544614194656376218131106998763066320200013563257424865170124916443948797499767302352687867208684088833872114982171436070013647928950089307095648643672807463064228981603261930574984005592416385664802122902975347744902291333222926675433108090156916619258490583381707615072203002282844170426998172766915017974367637968760914490712479960638749699299233539741126503486533376415924102203099983096436048142303079929759152543635819580377159798039750033654908635649615225846366590486509887380878527759587637043791397216885342787380038384439299397637010091251080520310364555664178128128092325395583599938575609692470378178508297575870117515092610337764047203302600440762101726692888822605745338482016732094369035531882526598600763222738150396556727396264413874597273511079953369048502026164479361472569121780790135901017445345258152689919862233897430980289282008357609161071374355426738740970638875680285063379446907919311438222738536492981532810297885749559770498780142393651084696480974422901134521097761515948707942778182452089804078863378982505123771828632347362399333883290175777935448444955326708743456284954867142979555958657864936288126319186126999696084981681521917352175847765081228138214522735721943787152734073289790999082477784375237306993428452245318974313144412337430535529157722540261864661328917292216448864213772386662000808738091077832451050809335620648277645018322078994941043664275906454355649682985301270361411554959959038256092770606375309061260328081604232542664245724355737721986222051076527954811098855235294332579163729232432535144456735578083606996611222991127880640136005232348638902512296300040713745929124331319670474245673496527305023145915713462161826351608471790491816078735024754166077395573551191676872873571076045631807131965450410941788191553043163135475212060832771522978884846602796594754892253640046477660100621779378380156490837287979314350632792586478423008021342111439048436421200010962889018993035399125711173389476868473710377079260753597975059069748596853401513906000523316159755975187394272083055707712174714623118446445920899211456845830580650479462449903854118807469733122234258474625432001694260079687357444009165468142924875724000017086480278805753958682309776212293796852651877067637306723217586350791665300676437541829470790108924108962968740938087694134141459235149360723154954841849051952960338997642590923878958465640910981713319749402769374754676127011571232921340402847523227920013872329199163794988046769095702647195613095312031032115601933393343543977353734937530245911357815213808936430010548094291111557769684780569445301207722120331965537784038278812382300213428396638836904089154283266405260021322671292327006624821657896513767176237867565098268071228456583064112419828592627399530084831307854051114327955693622498345154733762158188554612029656525541112285429169134978660974214310125319440762584839042993428777168783019111807621730858240913892728041411813920479588606874383979043171882092196402485185621867956871639806598931449975381328873138730664315447922242998437571434729165531870212298470136633837258349437895633490417311628841741980425302871204280521889480846690910757171459952458561528501762050923412301448909818978784421257341419577753081946590537895292955100023649917966381061855785323611551780647576882293164720009181505449250154687313646556433524929110816268222299616968480183468898206617381404478973699472257632817694517791363440253976979013771811601343054185717902899147222038890396031532322115172371880832560725222416302131249170257769278287110441664585819574928473179782173641881821920851174043065626481351971565043622180620467332405828941464813271845141036256899248145198348649788176184686188780807007703150738247101518082763958995473767822483198439479895702430143094158453739444524150748810390118003850807411445307879520693518697198753625706752732177360763379679389751001194453127292980965236705932958290479018029060037975844813480959877964928371331830696049627311801956082107322532989045055255977113629773559014425306306821791715299373310251280421340215573085208592556617511490466950431701576594733319522958223022193949409885926349934741832007510944019709323740058306492964386449875002115583703173498165104596454625715982721621315533858208121514615047027795815962915154596669544898378805747288425950818139852098064320008261238019607005520877715274715453214680102807563521701918817117590104761179401568723608238661864589944345554356318790076390433164483745688718885977772757355778972488764208718195895198234837150317017129374255317085547193588357059905853761921882247744595907951453916622204324825899750660114121254492703531717400220568529370127413718048441875603331397033454471879200431088676900742999820011804072238678538786014184668543291657017141886439264747089538677497274212458593993264197330822626253224291030888285322927488278350667050656560031197562641182682101409071573502754932498030143329064372967078775073215916680525995542142448810785473760765730955404866605061041387925524097225378109086844683120462315616154606640943491623656991121883156673572411556282356184509492883504178397604988125116498979925268821479256851522915754933488657550969526371099298181497568293878097814067750046151679386699917995920765411968392768694244843828466996538166869628689225647287845958377323268910407342018564272060784028864831955177023629941144384561384509673484068783333672767331540384869556651969987298576840219212075931072312736161846750531180902693863239754520633290656116279740629159825453758203903970498175655649449859049051274536245094337313690494490164480548320032065283019204958675692806941376269469696362049113112599256509043859602805807283463924554674844612774576697494688827105638580470621129564506379827751157134019160125005488506324458011689927657890856523557620183357026894285598120977892965682680984168555394423645910757725413867671369865646473270945125452959752037208455015706639977807455773217605591998497475320253389948120874546891534048442508299311689680643548608909837203725160349809062979903672381531398068246832950298078862382125730141649160783200319243449645493926348335669349563168405076845521610982821826954098615425849715198578037812027963054526393454110660178954808651913627497291099882189042748978579765873429895978748797424696276833728152136653323377422245257748271797698099928912070079777450668409539117350056882180935132357466503796586548489713927159590209321056633549515337575577500488474819145530816743223239403806012650770188488219301823441640812706621768500029168060974836318306139962276515908289912546228783241161094370636283235868740658850182670118518303580296189898990910390905500309383703288031187629765414411112307150699487869928826648275381731408871200371584616482742115192591274867804176865557878940470750444853991840497656609980243022458176934431924491346707988947031904392738526634896927264575475899225466803064734780441398238199008215240033003072681394141598518354546686245377664653233744083886442435258918245300846290725382267125399282884015750505118885446032684611823276004906048181427725949311016903013520820530094141868467097220823450307432462564236088533540507250371288397992862115427111015102692560123926609924749473984655970135895968937653164541876175159898205991482437352798549817438792506216370116222816257487146687259858921908376569880418436167389999107672302095277603329771596234548449339287370362500380300724311757509868723606976126081801595442296395810575518308633072012181344363616723773064638983082187652702869965088184648560872282526831333774896889408718961245014978761953620989404759754761942862246246395324396900759967459532533106362222617125297265575810236850402860686333136989408164612187328835369306850025237232227803777068021360325552477953686030800205714478123991992627181832714592107028025429794554870420981246735626084575693979173176444372744654926791118033580529531955523606016047012670568290355344025572795233032103772934736740622382618554168739707576010841116197538413403299583082358608119535009736670758348525011836674361223417059259204716514496390278516907739430121584314016355166889428672686216730309505858676688275388475528908258074544456335292048012976532607643563140780167066775041756539538030104762572409944069655460988940347203684696951887308406323214802944880632218438097910292515489850511309962711203566029502368339443440114289444571194247382199915071411621699501429888306007635080680509585637452075840008566346470921288884243090202151125937248853043809098114998047663539630935260321248204862789290217056006736307102749141149583731622259122693459298841792264981890936150473715593416424959950660375003639607730416326859290373754500789058786975419730964324056241688856183234648600214341747048820280996373969252996215272153360435046177238608668578766546905105056454798670406198144327818959230901802156605281346854771961615377175679228449446405355098117794453405225360746482701314654216412136072494820476740865860270534063773445532652562701381496222174555763970435697583112096368344126987329446535576198558093224514672882023290966834728825777906628628141953823318972208889200144476330284556693149331162466126469382128699437863742432790144232599476925788992043324264198644953088588693683473298847274805271079579790088850779721042271873411938249398060854814006937378833808675649579640676208734963101272692071340146874521862777562948750976168067459602814576877226583769688883457020269232525774965561825997170170134208442512241953100257628763016412604653923051637145180637489886601755045326390069421329196169685825253361185098881336939647231737448601195406276894625554948165587003881467187373331514605297115882604168423027351397320039272203422823877789461042742647658579116954074092771095652501022648435510113820174732517414217961659637997064642405359484435554111405932474331474067110099909763160939886124975275475306600981348084044305947843148230596048716313849965341211755832327897501425281191630399614298447457059866008861211783757985748407711293779334066502645470305729399169096904069240824989700919064010752372732144338673921360275698966012860011152175178602780611957990944209614739018006360159407514682428445017340176207133384706329669610159698697224818030365554703706720202938392985199782380772027500582591127350625394792958901360390725608330805505108381879360380939889018284461725163136605143680288665281326675716795632620919384594352694341118167507119983074141432156958174017100610798449198875330699877018031830168324472279804901188407489786328918625380899791398528865012796755720098425569365444110784008379608475024427751202904255581612534120068349605940813376369032512166413764573515721349123098107625176574686820503255250424999802396604865947530439973817285338935618580702881593558972047381028811239992367591015621237876738865381340903444061891437594624435529375071524511830812840134066062144779850319717500976313832090822454733336920187323834662903799722097361182389587294567526424448128475213600830758047819304806661309308037917965428422138651833542758568176136378352607282051218990689738307436829984884643953890712800866167415194603563593641190975157684725350204694299415089810899898970353201986050648241747470836452321738446065712057610839623347626402415195846725956047391293720834788754158234708236758426065684771395267293152787853955572733849956180062125980628456986406953848942053707944734992389686518375764016316764979679148655456495294531790727303187718042684480793312617270454312267228706325582005307731616493697092286419248065008937692807520295536345867397128009577185812891714827018953475532852297089522821286557850753238534466271420230887471678235834382006806865590883329413175277748021892057657977791231032478408573313424623036067106411890884720254617325627558273724338235904765428146148153042621466183902166526329860099865965991666634410789097061708028718232485371218545298133243738654134791652748731107531967677659025851292988222592373302085093741134241056744864265890145250394313957365776135091123542886062692891830360522112785461433121442465384054122337918566779226769353464860964881203299663279213425294946631250189115581412835287858724818049804558194438984107270685218280533140670555193785955877658879976681729105631936880293015264977171324858231479239878718142644730039446693519061211790698672354998185197845520440798016069876121463862399232707139789819691830859289228591753665725682538429890502906385535299268538760914292547253464992912734656872392859496676819612587829314212242270379108682874892952168416524814731203723438018126351473368836573472970903937628655895923196268866334867862398804855121396912045599705188388369601488999692196887615444718230681173465768110880000636053508914493298911459098903492353792735957873557426318340862438382547209094718634773915958322257028991505415136956272500368521208190726568026803560078119701554337304471656618087159194975244822439877757329247391074143270098765612427976272074890417517463136117486029206078355786081787677950737228220742170049161100581637084574083610347975668832067738698873626732734997997076928454982613505817944458381896118737130866673958476782233838525581700272745520183694948968144462019915087278607105691336381899773163268363521047861810639519427829366188802953044005510880039403944226007988164670444336256568789799570449033653893424292956544563063411381170581606146984275840706857447540171505098702688033521926361163956948599726417032400812825760349391070755886071152899321492100582798528605653500748816837762216507524184525448475823177515630159964967187828889472761976506155659287476845932744287384858833955103358378960798147338083269596495040089070134692304825217416786923020104023902597292673163319463803104816432340953306005124721904949915904132424187358767448456303855628134801208295612638905861677365272829029578777234764611120359541053437544613766292079958908525332895359356974492015444880289868673288636385085309570992772780514023928411667230879966728148253786467705170968355546125534854879670853723763876443465922854869477029360956416231888333557080096154894827726382070972559062489197059037895328695719869175395103022066599554127413530456583386447670104503184474445871132137638550979840835289047476207722747435023588793802743517455237338277052630276395535634338621236303450571177667577907561713553463736362829771712707816009338065155055607035866124439743602885601397327643538834777132295591236891739943743380221669792646593432049339790118246419104068332436120069966766189601843419739719985975943986750698745375945735329506715815736120208229381813460034029835611811263972665827292843133778092109073346544138241797171001525122007426730500755231238821040145931520995658452853709375364518647097379304899474261407762988132003426316574931622772854405384204829030952851555632554373279970961691534377114797213586965587300756889504709694785968551262843662892120066984255521812688311236637011123114308648932843598042867503333250663004477749684563025429561852286737943480653479841863381671988331504569030561438112869381629120748048701792198988049784815339060624084231333240095487609971687122710264622655899119757107615279327057176482437070516855735105444770830095922625393133413392674982186392491747411166342399938639244044099744098017066996869339233497072544423828074781883514229867986105166368374686938091388160818274825106645586381709417282138453383794025541897245476507682046951599682237359953495797891661802905701067209253683583822345645736265634049825237034162075170041402191419781236719872917264556958931734339390869667124255952830027104293324829288990668730487280283002600842722486217070506215130187375334919608810213829729473376413219593246836601729701173490614561296739540881144564317915550754505086143316474120096697604910138476680930940957861509336351799971528647901953996763710164923630296494738669850734362079203988256751513977975286035107353471480173406904831104788399630753153451752258808493877003305848828055813477384965386040457298261727086222027058095242210470759328313245649361532851233474904743805147467414438118809573428714376242137397720642064224139993922301782211140473479447654709569181273277781596027773745609688166409419756901641658707265623829610969536062733051323667146640927146398414270732074907908288180388784926194794811120855189496731458848253579887448321295758179671790313343881959103805499002620313798719967315742084581664776124287970543467990926998600561915180969325918099795278767415934262812251021721885277392798087632410365189795403136326146553665193748551680545324141359755111870358446851240061489056320654190171432115059577838368183856908543537772175338055139696830004273528315908841991658029917853168269256004949385620135212650650942369470721282759109785387450711708537985426366720053109553934265363879119528639369681996017543207782506220033263601910403066106623024849555617159307170116029534529569487983162169092411874053553362218331511536386901321751632091366782396823298376425161097227569870302107907746889856379427049696821919742568982696575677871957565025470141312356372130874085157864190440794732250927659360742812162184200097703397331058842939451484900618938072515578988019745063670859120065338156964468269319311426517762389709863821452730446436801562234126267510079029652722986078492036876627568178398821498085940585332466642062368310500300011692818359058030179170692924900683196689641051032187329252674996882621152438703239150592550338563369703419888287202640167251983674662386984094235149018034959499542687574292732521149965200267981473237665492653934696939665765554492384592782622882521316411640997020997295771870035291492185585826183270762066598025363970432716439955466001207446641366539678685883131975035881346221782898586493523859740093861705715767263412826526620484184559397718903767004389093707142101128446629887412202531234258824204859393212077778457187886711257050284435460020565355609185366005163770444008709717311393151362141051719835596078000478213940527439863473551765068802538458147549475020211312879490288952519077064021444968687956020831435684078862163228825987379705692882740992972301949852771118318725951672800370179217106611197392230520231894233017982677383462140409580537599793937688068583766467973799108011510223275890810836756249401142476547047915699974554288469245636540543818062763810928851800751594961628808575129787449005973685297341184987883902133369088003557747543676316146398843254767859841597428096222509008462508012588515085388919243971142361117902100024914368935494222284828268524346268969165422967701877985465756029887460943940826641329471084079573974529362493227281866146927046866988546528818415150197081798126945219683307776221605054857562063652425268650891073468951798759975607855802928876377576952767921978136745344393705275164063935095846109598842431872551410447382566359625720694130189931705372885266463991368059460299354478449156468766995534664166034925727372015759224662097231225749566996681885088160473619362000635831703498769453631694102151501958313936847691412561267469504406321277173404060075743496877111541097706057611609557915188324229383679008713271148346979914724677206748514659244560228493145166003005434617868765806741815478434460012445238060247656749805321593569179322283939520238471130927550644999653955071544874722706551225010293291689335572652516706436488087933409195372185313121439515632480738406404544698399634220936289773488057374900537391018938034224247332548392108033540238368075321834731316508851951999908997480173506270671642724841186707584197184511280536512565704899018227087609496583401168234240786515895360432241385482435410011444684272814552212960010193723730976181762228772373076877821843568226074652473254581747870345156529622139762909402691304973702656798388825446184418125656287715960508941915997609554526483752392385237371199037789066702174817692601207003128455344032577288440330083015939442007062884998481147050568618240649948686892859759638498548088737156873708937612432395381630509856947317844182378525651345758413310956415266801485670343806723591807427449679104727688864030042762620426601245580293277253617878855895648268234257975055944281964495544717720615834877537084291085559014672579405969465832965960755740041140184650757584269351338598706484013433189133771000727578506698623515636577756211875429360234048103481934868847199710385420105912720080608486744893308678735230800267777691086886890141550268275173180366994761546733975106254816034775048881830822186324248963021343566725049820520234292775289586714637625440456340618848956290140196144758569273631804165315650234844804366357523077109009364983715150255146225643986075813479627608695016838870586276114913941575462191688012207891984233434909931946891092988516541016169216806480091429495989780200049246800233367284324588786924304977955677313734936047158969692299900149661923411960549259194153244982750020146056119025531987013850898170853269994621024472020661008243930127115573095885515873098770473169665955134550726173665216955328691778166751083784388493099276694465024014143760266992897130257224640332969686257941603005718371189104901644799083089953395364748971079204368094822348316508114102905726670664954147036755981058573945812808463234213885579277281128411909625324447785087243718942966641997236814577810253287261421874081972774331188328939570968694091268947513080216274255302864558573669100679405607668843733269092291366433194626095593998874747683848861869510248373397950208511610501360807349832400285535390643368725634150727963654127510576930633204611955187173730394496774500220220070204224702710347707503019872565989395759200547541570913853357265664399659933610022533512601666227916968501166236169102225191444182929040978471882820605357762458785311176253250577613381779425474832813363064015253723137336210991683966331572731018651779077331191932208423241886567208551396481414944731494667439843740779647142513767322977089232206749036617109888744670129015608350156390405081877227944574392004118993421942366818661857056427600848915768262433260017195657609109915443369416857400434308953476115089076115778226184615453643394249345045986468595943424700913809011021804920392764107104433371156262850408016859864204211294060944408334900149516593787005846110614009196718031313074762436634083849650323386725457907093774449232458937844817699464974144686332904916538048449697572313461441617904808340030415853255680149004781671314869779295341961078896872457831620447552299777460797409782730733862640696245204298876067003881377368817829819808218584053009738386526768859742618999456211091887317138628755824638655100472039083379788020271316399903633038992855569606402549840814813473511629813060214372444394464735055833628019469641713933000851829839745300732920047022284252544968787198380754170822329432625457458470170137660202416794648837111843048921866427403324791095917669501793460820676527772846072235025318146805756949294145069925910318502643859551436956675964723758335790339661102670896375206183145457952979438934845418018385917925570330070491298327960703049670159424357584077685763055362006659957287544096209287120094630650201893337841880693855457767392215342253151380840845420342927703524953205776617569516759185536922121356675096887248871500464371420575243484755002530786727213053657695259717631080293464442958512532863001748328765040902085102074086223343961803429676053878760292436502237127543252104328904194138719349765917177241655870702124497269321137959972264350448395778527371397375985333391872127390305920808550055885378291034690464072135266274277698246202234708676934899934982248107924007784648237792932636676857700141674530003736201339432602765553655300719160682757468920544883093876465714885887063513343147516169789868227284831588821957557838704381860873133874108506258043095293841976569563925272130953668898587669182047013697801260490463205697023543218880341781132996123676932649811325473355950511789920129750814756175133161910584860555010273930918373683791795007169428372103413324931830114771046108474229655930251497242278086449513100052511650666558591421731374398837902854151501507804370538831015722694336866548329345079958459884867200014478360080729296906794614811981729665258236113792094892243037304050716770012254663319418790662312561640797481127907599219594443776929109018022803900073016194819287866152729257703671811016507362230430385394977419507907439059223317052214112493509708505997392861773158269813789993039379615170764104725659252416046809357702549557745586809525279448941301140153542755824019548344123828075920132258743528641142444053490069697835773875293103635883260755035212551399704762028148619924700214419673799480671873140230246089762766566350505991622408791739638761851786804715213672205003795000487327842091274745179647423902214479310265652631681886856824357272607044846667406952048426046661128684022567328573110298903402285483466882227548129245396488579703268624665212640736761878326865671588751925057179228919943919712537133862403322849845487941997542460347362478076025049723954113899286628582960337669144302395009500089551007778862255915510555144369206105511879533570389855056609822436138056553100504084994194013288766736778098968647132707525774741387021499463710628743240477191424452848918205236404934909732166634522409219395543895285538419891477290819769420594118037021862794856802681269284911741979615222647981012516822631524574646256370330275598651496789119079315102635383117307080145046429563157139629511580723427117193513260780636323587121302493957535162868782349976708140170496101211100737624339800724524252292552357960313481965660183623361230306619286146305462932557461289299191093225072293778093139275487368848534884535220139595927772944037112038786456142873490862426727361604122846783406550578808708479844169711742382741447328540742238185933273363993037281462306234541541701396826850695982961451043903471017248762550175043739409464342784285666088993560303393365405035088819220119700792842205431066528819780305280496346080485826166312143112063097093467555228091612795202462524865957523217811336620739921522972645918387728520589402094936874825045133134173713907501452702650061753783209788653689646489088096775103562831023684895477854543641993729520300823514566654517197185656582863493329624747815795008986030080325058909625910031424856232489346460813564180710655930768902059360253997125729700265373742973550320412387294533870366002097208353219303074474471445674376828415923856285315937903500967300789403804361332828731901324491712971547614858376882421127324519969748359919485884516220680993593305007593854153533044167999846319050674029585879188721294453041548329548454952400534377524491606598978989288890955576557866239100183642011101237213892803326838119484200089026298740332430822973089337505415066994539809459084095918874373317624029499365102193586691765331241676460018380212953403617695742333043999871793204772623723106927217033110203832287720971053126700024188368770656028068841140436677374660436365065132985251693759450267826794221347289770442708479411649699885558962526681532282334655224029894835007839531947975453325600898933253117009487028587356648737243168500633522036147387179248196935602167194395533355818582496458036452025507134088044241883557804821304932228674232762246052097863192604262174302768647090565514928838536587143305593065130064869073986053670768622546433190176409318318527739161892371722636749869012296733139681046974793615076765873262525983863150483419270683814762530273246327732078029274293197817553605620477086177483628590052201783477761887761182125452591120295288695391220497244775632613568412774698477363458812959289731867581937194187444326691130702796011671861896798409062006345296686161603689780919345624888017318792486484129378701506334633664139781112136700645330140013597626734473162217495902742459952034862392717124133496335698056015526761442547280536975829923469991384564943732299896547200318991379719009743576328637846996967030361635273947340208950329416711318972388374047769293432262838330496244843794435335052582922002016691295435522625025343056930222125577998946727296945623678603794368562199362262935637477602201143628043532197440073256442891666793289900088299122234750577025074296800898760301079477895907889326860526691443979417741514486786725773735382975582944792042299905125828638742770162805436487621307505244649760892270108919229571302981788151577735166774825288010080234287606601288730188540973194777336295313073010713561955708053797421902863221031850072180409948335926171057073249492014726947031087580930883829420643767428554780158532705885089035167148478652611736299077701582496160612477101871531277205186207280672725623966994296809723655089620764004564731257992445225186789303412738425497985800076560499734234287905973169383836604270802691618037540215849941009488219183690419158441197304513754049985941631185512480153926190498996440642491427937039140566345627847359322653921860827224799137766064936987186597260122597589903539002997941855971486649554704642058962104622055179321094510243297199338236513243569061953629867529095090568662773877191799375752303870294083492639438245715195051805340241148625828990197091589005027771928807986911666246344217523950159551494433028567002466365157433655282574059401632805920777924836559654994218554353499851192661706104593389635160749706261102027627273123477484297882742749079935427132822565649367604867840223068261219317211929330934847815652705698448600847140017615807169382934337976655117762687284401036376231309780204908825207778124826957419503061507800057790887781532233245634543187728167480253283766933069261593197807158635408946105357727947737170249593879697738701868430923517557794061837503969495116716724042212454824350959090765799405247067459331612831142979703792577713346203733087316233397093271490091708866485134538786874325204377097137520818926102276437999535885501994798982804948526657160740880621699521074317790475038455626561563879206053605527547352422362763857617244224068406318281138536270996350435150903740036674292438006883334362939636937031571786609199655986728239729449868165285748342370679322398579155820970126386851732056381621488025437813110828075518022253755995880017992650392135250890634108637681560242654151005162280418064294396430860848219937667567484397691061038153069813017643438424012270220911329316608153363147444212332947000951325944607774333401752692958883278779880982839833531778672174809389842722324281594894284202923147427348753376922394734702446042299428274270590383971954076975034412933812293821135624313260464655831064500382804008792992408646912060959818392486540121308796176067476570056127485574929284143533901931129192699991277616844393421185242194065392335180063465675479108831952267511233667229477916437535421979075433793065832338077836221212927676222448829439923079479690666302303122787931161549942699280662381931867790548009570987088719419223831662004892310232030088339876751849098687792435887407615188433551122234175390241415110863424504254852921837341217440503596072247854883423485834682435268590300775906175829033301068489228917308099056582310180017836200299532357740929155016115517893337211364497843757475286276962055925700273827421911583763418426621396440694522526636120219481523745721198864126854160505831000602923052027353713588324322417805232676730372498799333661378776034417863786869516289724597714744605740701250164362214903489702597777482477866902047361225138737913990010428546138471656890496753395029441038358968236697110120597260909196359851746276060735285369236388162709463163764630043587367257264883111106706483006760063271126796812422178664881856598916856372897966357875193987461315486868056878975983683207846178086560302138666033601457984113349225906098186177258216328346699291219436704463481228220119226162613842108495731538442212301172146025225723414775641955692209057579122742996856311995670453768902298923955905955074696881036156454248946861573537371822233788889764952318061059894660284337360296235759476976871407585338013756304016932030173711345747081143444799675541408136645444550607635670488603738179069254763679965991528771747044081725316931007495299141564468152090689878695980347861611227114013733326855227400139073658551446244063822175105822753424012107181753674169455873164126323552131695864630027161410672214905409667902727461967303865574975261554437894481679111095219087576770913495965218584865302514937700778129817776003739146882909245230793622272355850616488053290523170863830104218410365606866168058168980951750432883469314660602848555292067185079972091317840110537355923473130888172805443801253407513759106255587482470057816119988432567506766797809747689898922620552453971154049541014392537332247065503484750937698668806740652410073798888338876002046340057752760404486122349961488243505824149674035180660430219220562163344653001310088899981273530154789512125868185506624805456159255718606384882084839964961568662338560845548004542717394167036030312673669813273212738029845211874367298831458195084137566133099234857620064970248038143630467819459298481058654961504817274926045914121558972392649544705266598226208921352496711722249468133730790591106096547984260833800117434399072434723130582834698806001499513813151907544253592256576780483975603589904260541768711126544178160831461814815975656183647835267574717896863791306521158327444923625418074251980067375768130547619724054320563813235006334881468475322611090377596599719975838458000162046559003428162315152003845034251439930753449129043886956603375298652920274879012229206614076013705565621007040197673195860324723577078942437954677652202825824278045721188516825890796434236288718936242682523548020972443153721195302923927809192318013328354118728819247779083451223902572471724343512871355471246037807909570092067163929808899125734056872270292342041985787354499674304515183521970155733036185428832465950992128003954894083161122122867679016246031242189523822364171236239915721744789935535718139511894355813324828561305275167152456577400027325284283085116494205150833502851932253339616512163461783090865364615772938410206015718096617898072758137806294835335342516348229334372787796932537494390658166432830573805380798714873393587760379464462605848059173827147705332739403327779519390678687285266387739580102045888052779933713310974795883677373037809701634553674188107529338852226232303742910340057927287480855340720382380024664435454790888583213933163524344888806157959973842607071960838610921726088068433431987803158474804688672201171006614395267720763425742884824380650464553866430504871793761178522124557425363590058307192249374930353556005635265368805640893676260010633641908320258479708086841702885797711760240689118479200998653105783180871036320206363168858092707197211614449073643664207758584808973028121356104648623138001246778433074724680469903688102944611419194830153041719147175096073090191502343368025025358924757459826957937294695299410181786127274615091478331999792228661427962448176279121115073532696065989597876352397279149516029273275954514190601145304376449267162139461897219433258427139406401298921630040475357835585125393366278185395303349894511305894524475764107757702250599070674654783024796420408706203910528521865160394223709471043241404698773474365180084699875212835106120164495140842869883812005052971031726437867855363156728934929258200104154811788675058009097678985621468679362743242843105557809411326890854249357269455221601222519792873481744040701969968247876050255337460349204611278178007426494250829671766180865029351593518994014013877997537739151231414580162305427329330315418300462508718789949471698603368961188189821497348816735545546863165567334899811774548921603216292114347717660481195945418513451207520004712923844192588199305387013184093320151944375360201708816998098827360147207287373184794207184680116679641601104989248267898765579998532520413094762752729691691266640219407006373018969764706064510811207805597152031056697587858236459862193795732208878296557014720062792335490056551664567538617279939618173542450945002148032448426074981731102092879168627504530120393810400091347294729172156051859965776775140795669146989355821354118067556814746139991842449404090477868963471339275164681589784468662150555071667241261539379351726748089634258293971730707775808470137702480677695247522004331881714201863232623091278804598799562726600048204643206878875196997858586377283223354138858074826090032945038077761674498738918579999971066599041301994755533024877790395718375306502945005658026690102347214008317380379703649930197234104435672141190730014587612455900217608465144773173664013993143639967270816987041487556194575961294701433027202791215095592900878364401211740781046582445608020811121307197721640438899223579299620162285256724382653031539949195970374417458290983487331766492305988827558782546301075006469539958049318334146975073733672765438448842800386225852755450206611520971797785854390874945333822361706548815055682851021603581687046296430041357299930552226230658661813768396780817253145905457412679232042520320598074302776119483635971042630487382344351953287739440446401425260296747439043562631628050335949095664026214492857681860597067225412813958754747206763092082041177364639024413526756439343736262605606665568730822492904268202011268920154360718652826558153476439856761572012739000839753313355004806332493101333320928861250363360671541460953969529768293627122751358415037923513121024955736953041719021008359276764404055686140877162393068278339425912096647577302697406440337701633725616009470600679416307462388409439270119885809615231772901101345150358133213287823506987266754984221819263323645661572025193931145704833848498241137332258893384253417000249241930931291089351128999350197055265996006032303183985238106460518722790723511396145390518126651886712907146064809607953271496921763435387100315351085511872391523466019026437514559326191031385296421628219764825031204773581271875650728386686681332536907810276890918019071416015618189410021851556263165158923272466685353690684547453694445510800817976333515968573829194084092186132315345768155542116148251028620499622226442543335009025657946206546765275980462248460169814961894050716207892083991968608291506309157617369730826297506085184350113056397424449911021378846007983762988255732271453108919585652633670272447770579033265384745832955406158181024359290032226194823846042125280178378023301407381296093131659070137492700809737396120156613303139930647129520222024026525539141173349349545449793769575889178676893558228488761991081563053014946359778500753057646627680867091590156822581950690756756401345086834647813665682951547918473305690925108926914085968778702858003027001346878902860096430358324466709903699568566501720314261629722443227200165019127917842579422103542298621154667220698996333876184212046740971911334369771786657812065276986360099362960957980142431037668266038605267179091883084613109092999419132070737755900724701280677967699226021244543199919307567569099861535562161167450663486866141329760980420750075567157809666120632733974257702607861213576907298561075538425120956324272987712360294136603292761862301074797551828760848456857889977961942338746518465376462568456236879401276936787603580193442673764175839147858588471860476225903995003675454717400033921470676908391929208198899767188648750494323682602463372906548208710646456389056093739734196491148766186279594084199454687617565690223817483572082441185779907344145744848319901196625570540599990775991240248014979249042474831533482340652056393378563767153375345566620820615663330093734705475116331439635226780026712203307367619951999508747407370442932879812334206944834098163329418140431978416877842021288831413926548550499713470116730556566460288805597522396451822486976300024757629970607176196402952872679172704758471764729373528717710528865219058811244103107793944877270113907714271446387370519787231442337515053534464336569523436809498853801529207864252887162322628374414231423632648031581180743491591533037315262326827114219422848022514828253137677940267574934986659378996841918603861053691191057343103253739318170821106305215335446505396859803245284317378308139091130792778605042964116790092057791436564275654991926009762994241409275044314929082812242033216440320671414270457454446894152069570109270065015043481038968406541471297534949086171324702208278373464222062944850327756596421449351257185172626134364789255496861429568404774476091767495668538928300997899599627938203512042537610339465161496929075840176938961114024304716600416519331706419684404053595810030895249264892756356644017893778575507085600601083143176241847684505133518054089883069652323710132185493158782129292500956230950119620077761690901884721475179825577152358607545471233276626178630661171558859124836507415257063667612128589777850310747972230882540378484892081804715330351724181678942528447241137187101898107244881568528862923800235963725653976998572837385027026113712263569865072287517681467647026804966646645925352144764282205970335663808274576378401369127871896972976400195057388798001861307235986267369409260621340426790894023912591345550971869351538805025906695607354623450229578694143933346226508830171182540872370602398609362420544546265369428439056809717837269651483534862544408954668930625801865119312319571063920185278741892612161783651595176672492749483636727437013404995586504539126570952806670755770988026866296808954436068821211842143413241976490495812645763731228544298444850792498895952616613838024492892284133941802187082757938637156225097028239220658455117686463817574289799451880773688635335847883906359847196697359529864213987489037806046727829934216877005843356075243786758332789087275784572309190653987292721774115281903583552228858481116025677675876399647683474452874634863299545407885300332400529875197967033978302672950525187665071057034531968237443884088978524007673602659330315511284974833442900938046796152598685928786501276679045125830433878369529867676068390724583622445032696705956292555354603844669669545180355134520901001504787096999147442880573297132072115312381997962547778362556286167004339422773985168137154618740430824992903445114337762795328525983933310777074012023619537253737546272607349586806554426947698010812571244807043404565713438439880699665366529247142853214903339928147467264970040291900266147695018345642039583478293557715661021098433498015820346133699907651077529602315247193191752877496050980999874628924353078338833634382488872128763466132951937035234815737782668710370775261379416340622843573245832996108400637754108743370908030325760072403434189726112429414433111651079286977702141663022930169118727801829495620786322379058466031925923797772184464102365782928362956326112945135569544342696788223656194024389567437374383733013345700482076887459126129833215813732820273954237353763242006862899316907455526814744541854492935933913454579115246468730683504923290151408393810656234913320535535164645166487948972205292579962912592116706424218911342861712979752112897792362328649201083269768315756053238167219298494833307553451494836236207369198847563048491008526983642389789009671314835688127329527737448230531624296344930147801117001893157238979687688997630035511641472099500365581027851014050389576406878974385230014892936357521384221556061134519781333066628143630194579139574335257103932572781044050824514433951652969976687670968481626795587918861481765982090993771715618830889421449055787915912870478790228270575027315228244354130156424730598204739853243524137127006201995240438115975746870300348293647496017850358773805723592773089231546115976247768758238174511211329596838141693868063639695291490010089591629262625334488788895832630038269605881608307306859601686063665590675894336348363111306364033832695070704897894678806827709358011593263038236603926292304022720206340839364136292901233753350733510906297233402371706372519323017497195057905955328728977854217939524490913489724274636006376319648254425735249618870562508344319181903508424855830716620382621051222409421775431351624600270783951821137817541554221959666056600027809792248032293822341866979166516814623403854465475405152306569592749537213513146233656439445031511853829461988334613080753984376235868320592107047787703478881068201325059088112472382804371169921644857267205338998418970693444297676774036570783579560870310160683403231986322602278112083845745887680648864750823105577063778489335855956285713189429047374940030794951822608740733653806578744573090495428159238385264143778690575524253852651316905260630762018670461653607807706634839916935980731597859034783182375906489614595286122269168996803960979811654283255789278821392892970318587436470086794303114867516237711648348220765102864562831990029332950166092367408499867879887415493664424659763240199529959247015339023695569152017134861097119706085157716414104140197658129746264184954703478931451264047711855573849878917169443458578880026867326274011851360452930069215581042507758107135969468547918616966034877507229075140078203171674601016625610596501192733432864135429888063685071637694493042055825076510753784871654619444452170054010406891646241717002135699089943720484274244410932193608403671066432076800054530660719952192787788492273962175955124875930304778842756190871647581658049674923589730692091634746807883413144098142960114491429824172249049599564792738677863305175658391249006464880857778451440336227428794467615620468840984493366488355991343528970224235431956666987745885526086296550382862701141631323334356345319175456224747572871290529538943103409108450059977933503442589337766579199032407597511710327499861271595590370424497797314827964981385188949388540979155326923683813386497293700097990310490095878680482229852038041158607436602831087657770551706272761931092434133788998973707115552283320865174329886683430412821722868400501731387905959397153369375884815052052926707690195769045205496657474071460531898423283154006281981184939768444468909989701100140550094041103957011464261597298808653812016116899747239416359396550365624248310146786949634841434262037605097375858246831697548746396959487158831218589688592430240739485046898161346310672352050330051251399225090054316937373164753923814040251057225961053574412955599810111843305670476615735183888793560360450289985649604440709168595224638879334702708455752735006833143082869140051636952026840261041892669415639653664939507985231472370589549363548375503891071410008272012338014305791793506223621698259510702818742286260492882449858744221990963673876299595615370851761413395645011906124806200775623052812684932289419296625176874045044623722663789828472422618386347157019707459889354384153527345354859353469790899918219147574090658970999793190077681978809623618707177820219520415556632557373483601389178304751653048815492103147314147147955639453525766175111301611504546427948874665943887110294491700804661564025306694363814198700983354966376178400257582104761257854116717488750487031581793971467200285821504368970192646369812604043748778696599314326359487877579413977104754257051565061670052003411741238381750493734790806614939538627004518334673487046955248709240373048618697082498266073583796919474156446257904718906296698348635634968507775913586281198203798402090513103784359643367776280712017915350976581615390211722346713947442599443956658424634299692688719576941987649886145831167384531326376952776291415976721165943315280280482985223210218248444622128246126123235073059862547457781244812670997618234291136119964797443824730144162715812862714739891994187829213307322083242866856687827797878769746594981289268255417489725323982035468900145361138110094943098763697927378151837622314975165167348662037756294567939561842875213839299524655052319677666917467265927206095494772728130319919136054234465231374250753284957795555964169365977911327326692612855976118346845004900157734140964405475001834765296110052949888141685785432596861930106763552591589378728517793459560097668749662810189576691587793119009282712788041797810430135743585834669260145087690974520553480742501862384838441384067051157343215887784116684937220536855644231720533513809240991252484729171477310370970143604616654181974127182928218666506588874705429732930414209583614519234502006270281698166472955578292679373313795990904021973114206884907228753888710951787789030583257374074219740412817220798266020384164377072250137860935628849639902640700573398521749483804447822361283960342234820169484589382548953391971603482795700165150053257021275615042992743681296746843400897299757047057932201410200868138559079222078381028975165466006553043093203951637894574070614522747814701458905154264420369338268765535767380447664480232414630985972045610813354583918219787122374711732858580766281870823648171485023465112794389670286061602090240858555838371211783123874405152936165465213415299160364643776189771628518809896094866645120173743742892929753129447071850203723771012012628518104691239275862775379574926693531671458346960078799702523146954897984358554268646096285002691846155018948814355853961779400339497364421350858415477306813198859196709064660538506379650814193883367080494103521692722318436143218583408964198664702189802101498000482924447111791954123416757434928637286962091226559646034466664637086912647491763666437482536817374992442569686788794436745272447221793753333769498189489022350107486504754878987976378989671701140149463193483610202999214948700331926416130445261184252166701232348430429026165250410892482288171168009351281518658235735025350080830852930760429706874222077830054538501576529927351683240782108014929020060980450786025212762184403391254238897066252403095085100908575796077871737946306417647543412609104517464270808665727055858418836193013543812710691685232298020743729164583868092207945298845398945742607318237312363936913948639832916329108081253204962907865028596160963643751235284200727373849101059885448440047499052747987073630976781085917229603346107113334830914451775914234863933471235886695321994661263243780512017826955598129249231725112446067675333224232701050300919016852622429262814078764863561791474213925979267441307167629979912115876108282905069445417746974314495987057146867945167579386847315983797430244638159178317946455404798504110696652198174822900739789766594797181266502813482392283930976731873197905408429097591043520405110573032161398081215282882173539110644451976523078919894410084335990302771233638937299841833244968591728416718015212527205007387147080401876629660926007296487829504566515541585994444704282913569963852846369595604560129731221696798896816625848717489398815041699840687530291079684624930953099616521235824676978950878363938006596169555933084579111974915248236235810478451163310460481843782624634616219508370954572257086690917537343999177025879821891392379002869726311071427867967353300132567417476334606856606389433551286304586106156489381639699995884926768731075943547340211503267917923411367059792303978713649262069214901400980248703884895743192679920975994711692243689377800315430411736176944973063799137876266561288199324812487954522599075534476795762786228371198003915186899322408385385851356321983453013737609888123445202544913327568928086181451954177511211892647768920738230222292406039257073112251084377463064857300215434824330429105580209958492932802733363868375600798597251147846366255379147160823040220843884149724784347074971754012995767182639003213026750131828109226638985032958915162711261158061667432304330355133450401330754262586636303856350446732678621264733229888515451603689283267180572135993199785934448799744744896588946475431540840656094690044197948184691995023259358626387847919754344382195979308488046619356946719320526386363798904843846607432357503507751937710012038054253639446365484217995654986771139164304016641096804066446798779937005753647409922669565815897257128516333997329322368566631865323534727575284129824970334740552458411984525791650953296946143027044996527480106006907707661682612071715233392662733347566552025240860350849739572237153108344119680684254402157838558154048814907366433825391748825806561748152030479343585896978193883071819531002038538554597574504480224540906771979216850681047950579697735268429567729130595611525018286167770610497410828178789867167318811420008116461369524298392144347410009150840349342704027188790009338277094069708970798159889256829895167697174261968986745177625819763025891569515355563369348318060733364986425518721007653383458145284553315204388477825166798700121136975732833272500081896039694564850504517035630665087599345178116895210265951550045789772876968384464063049050524904879883764093467955786990138681950096830834459665622113741527022103128631685446126542545309087616069428648562841566356612948571450863258695508660357094005854638909180508210965606703854444159344284107076525215085524569876715794444094652639158125600949696663323251581922693362470485463396839035615334716623028609634420206238073950177286523629511619601734388600283396215308969716168282164339027785883867880332871395259513401546311265448175273057514169380643451452237466613323586777307718277198667712766898857614996188867575071993726464993601973225358990424413846279690677645809069922713153618027973868104102697157832632380278949654571703871345856550890928574620851434900960247620672630009448950470267679363945820998820778596048879752904566366859895921316883484470646373662022801253670400994925244838765927006092787564540373646382534319245554750557704786974627204596117868364882481049906805532673285625138225224394445663334262361943056397765193120691189304498363359564349592690299956147226601531689486351711338242099886209096717997728254335794028850563141768076096416818941807435110737679425643847737345068893173919332430961915523753910186440249663942863186117317984337020687081583472749372974872820182082063744818330892586056810005525981271185810731648043186830079205558212417975939174907435458764987498343750071052392906290744630108922435500746435899890911463407996074545135625609628149654713211001881096911799434337444645193869922882164226713921989472386970065191881524732030360282509410854133674341356952546569261552193469890332055764924016050752241853504406797581170674888706668040582989340654773449172560681041353761583667057860703808574551693015617960898767714569220138802114913346170152098624674984802572292539965596737457039028202343017852451104643560426988729717513223726851260812623072907550663242546337638837873914295782957873747118629677599035935563559433610880599418415291241601168916631675366458005021851647086068867120919325409756085583067419025750162279022014873548504364736753774585385078821202973612797989225228429926867873770496463002005968063488165290422630117823479826348701303820074352202155073545196575532700112868354241157093284408219275986853249423474554342342705732937886014736675554173954939522162259075324593863686469127250776493501641805863055213264969062775059610536525564494986437804925535636012971531701934043136163875120650324653282757780319444406360120224431691270120524836073926075851001257582349259305041606169499222418767374879076981690647892598227731480527935177392350115381213052675749696832206661123483301974075399614891888406570323322501750725274426834304213871651705886591591540262359231917386124116483285502172738226221574853657546552794510111198341063697723874204329850769204989478067287482829937731762332042056024721460273981819033205702938704334182569835548924199262785308131904552937503067557424898990541374896431288169167522622462788440439730624289711995867559171032581618394996919279468943370215703810826099974748754199764005647340169307451562179753317506461384612146124511593795430912539973977803788031352709116638082617121472531583139507926571599616097877694204371129356433688445111781705476710354116240647204606534913128243461323727714148354091376083100803808670238508751332577438143499246611327453562763984377580264997759702137996972934821331211476254121311869964601089606044770068022217718137324291749430541661849107987415782021236265317642540952762418905731318185012401246305848280900623916804457194802921181886253407275050701133200373800894304379889775572946970792572855346918247962984345364149780849483245544622246745248385545793009056309674749759910060671725987509254434029076541174787836135653086779378631168835225161650089705444966066477300595840715110303042317160336034128814839817908087342519880146837988846553016624994631431696343214413483722932955664624980879336089682491985769964190169314510137967131570206847145186256905642172883518346067797215990351610145129376232210266272559831536198761808636110046927384206274113753076395564698253816095509630253085286664628615364970798867999112931590415758280607898234614949785277169688470729289415320521229437580144731581705942734137144201992740475341946884275517369887841135704332732713281376698575626809119550849478020022265012987180587637253123522041513211168932486937091496683886728367764944961160818595112493022033289003305646295566560817041997881486588433117378548797606677865510964435968980363674304035511175740277219907407614810949026535737057219621259986907659883191558189603098549889584208131463121032025621388045879472151546862686044195478256367495354627953333083881936393754419693145856158128692755184601350749078003758574758729436485757219358735041656386552887883164527496554821158484860382002824586180653042249968925504032065640297308055000650663061481546644186126008593541341118158545627154263251727815402225632077631734302137955410718563459141559346570854451468147353303777958498710918068880572898005450926245420841030688955207513959449860038188501460460194618122613643863951400934311208342994968349673207218041780678322870674340409661115232013782742871031784781599678050948460061312025845006086405566990958434028375713444091166045748053080419120708274126526845719454526239314360424603774883722588177221783039823973799153984160666219196328038123911702332720275014267409063890070460671291701802585825200039626172650158706661835519349563346284527841238170858878405872206602384273536873640464760708651213111587373876016465188404264766976533462325793937292607619280113382687216166636611091119516289519101161501104943414636970369388160245793638008627054400705425827320584454918992305868197437844749962651096689924140128081979980116393292395008185409239774152199264041636689669618802446709048369020919772782115532125707288546152388181523709741334148975751989938871185486914765562910956259807124618288090237212798460021880201588444679425006541038583304252899148735409192411505207480907742292657691500411039000683907943311258184125643152075285863948271715935859847177482015174085207777986318950477387240726205408165510423880734718952850417469337091088930267087969668771682749797607032336934271711627927290250518998201776287897018012481238556806161123735188957024673217411033108071816362866625271184808257705999368899468309277604774111855832786638600830493405548646838973783901290463536413041005541934728055683560155931500185685047316088076546573805968962527888354527181785213157260916589281519207737618211252890354300320138097233638426078302631173915108802924122402540173605994803851138507434498666306311840655600793179354860575312325783518367912168911678048249490473074682968203626715807802410567486918729317637939507659692138407860145728893474327999358824193160215255697843642319292016867188815448332554489079445694609680166434977187908792435905674855208768429722858839859987252150194225976696425468968975982724819833860265112291115299819222665811998344388059651323769477437643954688892832816539482870507411596933139367034436310933310533712142300825451967972767648471682493223421987776929451339281907697334042091426901523856632864054293537039647999924186721489519545939561756546866054552630822434603213133257151718903366659688316444693582700029325012782476407537061956605720555359361661281101031059678021324877835644816994889920301773830482892296332547461244234071740253724013380123102077888473558461999520717205974644528064631950217860962056917919800551065495009422311140456398388568747207290528192423195059291951085465544273147097374682661782227034821503153800077386503806133786702263939702997177246578065657369944303218317856609792831310992712436980680569043076783394217232290055634035012573110118618990796346313629133045341935813399091828630419474040250287033927969698600321184032743354735866933318294601441409978518992669602067290267884041569124246931786604468060518829715380653547476808603049881621838836239156903434869559730187783573155968243730464473907267943260731918867625902274508544627349116284554537426686920130918966908694436264646601811981559560327184792400483322589830506737166664522893494049014654649363111405735317951569980681188661748161369787452759455773454579013923954191770181101217443635356168970850167983297041295631214460744577229444043899441228239738331831037681462011979175572858445255106850302982980715274990838946083052764178127901481467767761867649235241488522328678602978222495832780351308333467003232049646164981986469671719689759958160281806413597456548947210123803344373752581717433753786717913979560243510835888677696993860115608304228571945811806003871355152153539334877751927571162550132493753728064615308152394724234159954085404628099160515081997189385125426607368085416647635969699178502093932513384403198312202899413212352920448820204255281804638711215831443313586664350312588611768094893540744665095147625896986016597431803430497124346371460083819043299049340685750874356211861184075756919581726680919427910929880081556127514179668038340245934048115788723178641680490126311190077030162306947746536374252885843787044419578171978872697739535286392061791633533525248635853623002799987298335972669844472471847965970824547238560145946508752404099288450108392740864750970506182529223694526717486406042799276865232879865470623602705727041030797982913689203137458934751198379521705238333954304912649461801287047644607046028040428059727235726933167046004280188305455773890082055633500717768126021110444898413440552946194999085561204440883085279429387494194901483441538191267434293769392304878359512987698563202432111835034297078338661334052406869324981505778728944887737762804935306332185785661521910830789864371029873142227544334389610442526448351515445056781818796176477378706553733553786410656586962702593339931533778879452257110398354185079935051952805923120071005681848522637669314355479191475215689400378369283366098088419850937963261768902624083395042493543911295271513982179253111723011007668384700590300264360094581222833573549035677327126797871810261566051941192031864637288594565713761921249618870558990381941066009981763494248166960370014651782742537376735746256971184637447138482609095183218694691384286143473871007196703907854165963261029555468220870526262956254822281186815597311183834976222315654391059105594184862744996662145344282250451432906374684102153039150146238946421374373663246911119856652290541003694462491204124004608982468015970776063553701113165311470662094079991789470978450222864952477715955526794572080475316151731664936845017878113230629875176849181687934189498722860493560853321166988688409558951514600999944195762100069684883141388374475416768152861619282349148040042567670905893766823342103341376089279055015045278478204591775381675092468874867230714253250721050226120755679684653195300501018758352461785996628366220963876387034618032177762937309344699183906000686457193708058913752892220431544806619192164825742642864466334711910962082686486978060349114059853651518002183961631225042415386762208303789658724500468758072045063774252259376644344424562294030808789965035435757339526925205249839845142461779691514794969064530154665401139495419300653705542125349890661278246482349441444285765422106089378324703890060905088716364574654107219457944285706890512579203400199856973362627766254337300422782593930495259643113061732630783295103305173675626797544916330347701485829153345270320435472070782071656929050799492636436124881290665981924437302895036612467954090022788395133587044930427051689911049493851175052398336232539822110946554682842496254579291533567516670662459924869125806332694635314186944971247425343346618495137706115016595502728308120345291322139118353834045462594445550965013708880309198629459484640836676595574224663933550516638242587562391611260412610767815826602497965399679228126252390320012027555665651316608683714205502711235129716032760328097964245101721823618714691257657070434519814543560834421625508114038985140189285761374819876145352092726038192924158026717854080118683570393007708144152521600005851647924885898516723564324197100387848321341575030394816472423663347211345004615518465463271101704846560559022972867529768372451330034725488841598430785585442771130989368530506590706249488566846028428935109743980081836570646692907931186247451143317275243564841535564821450756550164217307537904489808880468673291198116317695571145061728874841830427985538543481509592498088281552864658554991893370349788427977678305060546892041682118919673359914060233262890687447859748202433245392316732886041130094489936454649673819324743033123113051941146068130874610803820097858344910406699635957460590971831253633029714625548983360236490213507229520307674801252098352899076236595005361635580950702805593877950100043860527624018574339119838202729388976836972004162486749342330471775567921669920174462287220436412509744712129492977224605452917542477685420270753684325124892580949518106962365281120917751683584930291605008528191733128175486546182916849984942116999703909592549528704364396976943400532737016480292999050222127944679205814637194806311247725722313157566902699427857139703649408814531784196234047439759668574279027458675771313269092576595508089127771729282507361375712293573551248922391803371410640628776296746529442318675976653889675683345357826146623442441321311397397374079755039161670756373346150061103636295395605980890382058640496445977250679735883659525919312590218974335574427676765637303220254754471341025365381507051018716754389948626640658748195912276700802880578587018476969512535460514830469954637428956230392119231961521202690590379907929353163578299935219180509967551118420410136339734361616813820838696901377211983805058188732069027382004975166195157479873056628006719306052285406928834652813366168771054299470085267399796905352127572253000532844396498897099410099070680653177807339504188112832923551499452974168738301913208618847741483927600928707730321733575079738365349297507235855356622546882287435315759792414531046380829795401085675370994802542120292449009175954148118101798046802536413478047640020657532202558640643890171042644391075597143099626748312462977908875324305999374290475830566635166251705007476523787406147978698944756010281518065983839007103295259359723403830349942451123664578889322336758129390804130053875956605262412880362900818454749250515448499701857616650641137992101947959615185044191687892282766990788195480610402780247466264914726985836190025461832024888168821072767402263992708971093153825402463434998539023250909257451708191553996850268302436030114397340277624051436238414900201229838045912212719243252406781993269081706543151473786870886294476437246027507104140022340523923399169645202059725382949068015810305037437807823572685561323973087986131422454929185242045812164263887359545347255036529877776578286326406615056976038074160970086055113661841816970177707547206689793003678101731525212991016364071133792794585603929190743309151322157416168142997994315882782368738461485105264327377318441318526544842645570061271331960583933599959815126163393629873191632433107560861485144415268818168959365315586228593427044651927982773749979675167615257956506833742347430148064496796508237003325433670752269148219734156779177763476978235850876795590832071271437340773907460576960391358504365534230701977124093807889410310563641800495056604261625876911731926472825991819752574956352708153978619495276937766739506166017415723432443918509378143986899544415634469455880763535213600552119305619667144134990481091151973421765670764485768657689181406624203310998111797441040084571301361341103471480634638840753930394746588542190738247446578457631249506453460439150420299238016743720866098562750086322912370735496871667805283155854301382504474674644671380981221630264306737460893755700494139954675038126608027596907725482657619446737063073909583445278935044752876272987694812404083245778413790116301974947386906616670443684926789297340261344779717556649017518438613204324384116913968233670230665386871842536852289106311833491922493388868983864943250155844645142841364649270722015269398644985251580812091028151230081323170217412236126004739079182769027501902801654147065626146729173859281345174273360578490093120434519478139872756158880920437914207937995004932987570222881074984925522426111874465361268165631363335043293508431833271778948989376496994699840213898679912154152933395146630322967028591298446255204957492821706778993113456477338201842247369108642625708103835685751794252516672404174299872373500690247199022772548328033780916239082120698194311873953715914204529041297335451080179212118053612798051703353687529023199625600531630689315416598555242423339052969937121871457298084797576312958655210559240011312404814598096435070401109415956528294448421323920631823530140052364506972742803126151339663884583998177760185536246612643445156113068215264520696894744040432675211590971909025888707255895477483592084590626648574796170616113647300785155032087919363334753336198437328039451497352438953265431050883845927114478310765224269953165994703707835042321839633300052129455935102334855126195611990697794688153140386502816066437932187956456853121312931533074270318826236193324600188747135550162836926833644965463096123732485054633590673018364848082172054340762617253604319511030158485198750414318783780309741432047780642184693610029097282184854805806118536766774708993032843575277301685410391034940107604902745621068095123203900717620242944335897373177058283582415259654476902769201722463266662277584653349572945355756366640309344209250020780074443186485950801161673682058519572698130256611264286919713927837181435118359220569512878374156902491572093888140742755003992935605973325209987391325759519641975747689561251833403352788543147849459496681848777704437504024817757513986722929284000447824331959825709513258679913816909807659855604155745093918746860686613767735466996637938358790842012171226961155416487173630677263394521730791653831580894830474350368944462647892762874090487944084438898090711340497133673708696836452244397421784877984395551133013751879735308722644386300077093010671346338669851838875595590213964107047947617838681575692820633858426017285748882429809328508211309051959635947217558222818144242291205741934750850816655099366953814652268509876493203796998945161643783284774160345357902448997569778737168185626913595699222704930758424225496016555339479587434293203204456574139348115895715000472184819518124135409863351491818274212009470911543827839239280794366114647653361016409780244334104558334424287098085759901354946256926437956679497573254314151942185593421908780826403649833350197060288760208355190403284581668964103402316610325069898668657557261853217727830801440595732343154312339383290343466318509263599449616021974274333841469067424176669310400641159513791792617186493578694619278280526678561611563573747579632654684440832002637267214904704188699043032857210203587214415998449086841006233865789799788046365697384495009983826281326567132932503306344565287458200849757677467975587224857068160417931315518004437650644726170334532902751005863804689770667662228883572826167214951363690858575639511256254076692485990883067623989536041130813686139561669360565776214454274699449584379809428793646846712494465475271767419579225106440160842330846464939529514710882833298125006365535300101701367589811604881771521442623168128040898648791801773513096372544497253922802553321122744443096684643008979015871431677176786654351586060395825940763649889204405353945485103634921539372730531831493733790108898719852405454913688479493038906489860947166037441089099076971455383169797933253459816512011403391592668092872612576500001444151990579223090188560615815587240790891140148906033753639320083552827062198370130976297774059136905222866901831217211508632627890455734211725014196441497011861349014603446395697435673504053383496305230980622988933469151950947611151693304808886021751514535371412693754813202104445752451173832233976616260346839914615677413402483821959884293227024376708648160406236808646841088963692961210462563258798768726538663742866728627628851497303849758406285944577608337582467925472251971138435018631538566561157929118936436230923130062068919240352133188324676135850470432783262749821205800399455406245898706303144648952964044482089317689011662269714618800504300966775227356303318337816439414985469273861414552529693402421544317544104564343391239447919892833385622834234273514758393053132455044150349855929988045695832719858008394403636990488263654760567107858753010006599582624609667240107795501445463691358916786974161732546693014409985261945862040930151080618722227904874237365463699841182011915918543635807342374681255505907105916600959952330064222897182503891478189504076605800131425924249899661228000374977042954508393706556423109894527062373704541406381228547146720650702455788964046347094626074443637401753215695151707167321524958800621933548473390534486613428807529744724617888273290878873516246460990973144078646671279330404085888382056499206234127499039241091720698626803697553228381370085947272062671883684770921329459097176512197961513864173879729977094925418841899348922019757739079283346168750296170952176272863072381784201687287587009442903958605270154550294550678567283604333093039907100011099082897965570605645587585986575984708088394184858295614277752945158260409189042072937692791975634942818799941743496225316333950436989934579249154932698810509508855348258392297279327612376995860799638631831476465926280884360316294312859334578707808668390108793669993937587758170909083520074706123812253564100249461741533009015245967558021410952180139452240633812939846386281964052436155472537283363546085472735327910966320815336950086856566039802540608614912289251718334168699873996236650967224185322736802532879346182939800336421558320605373228888569855120404115225476042098166904006031884836524549066427506017521039609685017402554971039844893198862411058045891450962466676798911082584167845135694371496570076836092416804672292815128364400939904763787095596524273713760331652642408694868531204884820376586186392958520955737434041245474655712829354308362885645537054686499746423027184908230739738967212095065882534032003585489898520239039250804418488881564347498955288401947756827941244396527088230361215218675269348762422608349652567919900375513104190115799423164172511958431010571529753968587773114153770493024693794834430832047387029030446609034085566029234637891126641815103158572483830052693870056949897492443543045258722648578787848389530126148644403369406231648274726491883791037625850492908717636126886635627009211437393992070405786820780800656227957741012522938624940865856088597912233243681813112098226292587375826788123198331336352288620397058328444283871673956376873180719775593389577101422227374517103027335104381479980042024522440881880676189187885846441812329357547435637237903586337706267635481426851699543201408994083996080489403282024459120212488605478418324189033354826575923764482499521733337874492285724329700100473196693178282186755611473864384606983288946293135608667512386971346192877289286724497490021087863372847320020508160700877615468977306024985588038115704178682269796775715136822598495539008824084108774379769053634539237241464215868509735256103590667506843889298226149445700127782598179039096476326329726215791844421314751462945445659417919512257874828975416696482244781077945702791101329736816884181949573311122526946602243531587500143222146362026478807625224060894773549269421640276633548485634110573168585529199691604990429497248514317672245017988648245257421274512445019915485636454279952672286529906359150385317260075527246435002825389886944200170497836235338307998255519146851216806123165502184562893635668351795761836481449338350232298810729191048462705062516804851484502108577432564136001747767699845690597580359215304997792629418292414108007530573433155606461147663899632805657831814204537932911836100198872678934315027278688729808439715285927305165085061611404763581336020227046862755935251155833312774572120477864929632508588589399703349059258064844746386443580336614615696217078367211739133210835018475400160670348873196926808139234160472654190949363016573692714672297272391066433073686900628518252588234163605941756253330866619710917865059350450426089979498122716318742287739524800196579151609444443758574665752233191771650524555907942582157164232955855441036254927108888783332763310955238183540658184476827976977655992373968446314893910497637407812841529232183140569788039295024778957101458587065830930738061626059797270249102385897443749233772584141528501167280594142924433072736727652078240557409164274536727551006242367225025596498234270599722941277633886334884092016908026391887072174313416338489454222503506023111855771836386917477907301234906456689076326478169194679814213619010970436863238938490944383913269510091707300939031964002381199355845675532014199826953589382041838409575207950749035801131036003504225499070325727826439250438925596339858750756128070255273444451928135041422987047328571109690135720399366138074376862878600836756067838354182612043099756976715168566180703988135124094419365186820256818367227745924958561615807741192657025519823566684361826135813789329580262636650664003762651243100510556801019891482969474672386102370792017654986748787420584419378983448009265108857403190685466691566313413434018198765066954558670673614369512492258052144156622871678591583124051107928782121315068502113153854961682705604283021403540017242462132051627697839911750577038823646527040883333730986159094530921887751301441489161634641869264057627480680167254637285585759431230141879417715898583139226590196847143833916610845524154428919649677238789028295727285070978297401186917156696285673495891951715522442198997613060373893213221050945115333375944403056101693699918568306343902225318682438610810608536445318260000214728278947977209199115413033319063783897908442361057566301748391923769157890681313751870237973262748632088964268724111132994368836011136951299084770271193738177188499719703851510338529215948963643758875985935094213940793021309416848900352390076979270966905858024661319282473605283880744735720726903826315582092483503965344398277859518587590800656925612607934833319423742326646590366845861778919541760891317900376103011852667692567416601130973707578380643152564882829545176700768677815985243786492234004322645235673244046828936696438485500161207664431233647334442619558351193352779677593359142126635238818501933159675733902826359963241033047863418309380921293851016552689176191210875570347837007509230119429709508200427303944957330009478986757559784540733557080443244156208209455266929561296965085354472419007898695049979950478258967255032676817195370377130659959622081681957296837796232116448235683857750027131943618456183565020361197719408421277759845061417503926115421242327449673930301586912303699523422144372532962668765924322438549481178720580705093922147066988939944822921049578285290447311912089824541327646870033746578332180954274366019606504257907963672526223557934867267323061880683039530278865335974424227786090783575833871918748686093916122306608546549780501846654259136849226855819201614622706621137166422052457544788745310605695588498607819036410985818348662552073195978636456320706409390853593940379621290267289583020035231716641707353535041917687087790334560026870512246961569839311482443876400970302259328979470594640934138704063671656549921281063991999378348121369271430826356341470401234905642037698947538971495189237813793950028856363341331714946641271285580581631357996656311895612916618034305813281138952513694066819892350294404867453312400229104322268623470890541212871776309514407204113942904161486147018026963026539664588660110661912521657402565567852653887774410383531972286151834019111413862130834942845767285274070007529639134584146883791618093830067769615448114410656690498322879824232410316130128540627370547868965860331677632009346145313427002506789708160137081915332440411423524567128246302951898396646595943751995824612344629832249216723969855460109241294861931830006696004794099672599901499167466259661276568619171615636688010911850088277482267059500375939508277038271592360389503383686963844204701371107721139935950076729585027515135791096706288644294250849399957688018939085362888499256440817439602206494515792231722787710782423230131617759392956016963322025765044145376444318251168626082920725629276164406485335677939406713032887025276484243735004062467509271741977991103706816124602115513142809829667029527921926461636857982540404352160329970939258289014435077351431371797465654433223821937865385487479892647040165196995902506196208080612223259631215298438580291667196927845639835105112622485121696834511339837876497505358478294655629608423997887048945237734734729557087127596207720541361511444372464571681969284116862656842683986863948976461028218045864037221977782760855839134447168695780768878132387782490989337030079540806047373999594257794559721244039817728441725996718312697736520640252201474569148418346362417323507707926964781766923674586592343547425774538073172077968000716925693107237824824967575456598066361083052162855489624066677123413772087568044581658488495822181149566248812978495526423771792808272065589462263428540613059210716935788459645026194326241176771964561012590856023636272251490901211559848103505919848168488465782961033215783991962615189639053467517032922186342641815184395433568835695728531768896859652868982268012556314728115583577801584814754847688281586225700244124390305010720052596494844452814934156495208576497943501201063884484432518678274833626394592905438433985458786079760922555070347552186595840192891857270705174721145644396697765437672809486261181041771883691221021804497453321990997208776797173693422239520238291469447828225419016069397760254448933452128139917432327502536427993145569586434705090796382461021869816341425743298881914852815645518891035978236954610813639662584771412442803823166649269002605296245873478591016773711453875893274600066024577964563780145756159690756494763498464791403969292054288056379246405357058853292719700661857217538472972159650643559506923976114686130296786481991412977226304472589542995527704391374985090818862542992303653115520765392191508351213391417567441159049311129668418662734067217524212220733490784293407939287301482954779568407997644411162806930154951113321241532024161225307635012146269385010151415398374829832492814699976519631619202213360869315468838753180938385865445919234415918170957693066609302951457265447302654841766309706449674429159496027715436365948607342522189852264881114702410490413501103764444843362410434616680354633783629917045572630651188836967787835630022247407899534942818482775976025050731813928083876180003541304557011632933919393525487708470160419819263246705116140731766362640279954043732693208476561604404728632602303732425055717009641993217590407752815883259392576655142752520796940139265781406755671690192053196197294044882526166975382976830396840437009520810892034808656270208566340858213684204130962351432841645667526700623918396598494430336949422275617243905199791382766027470265303823715776870637903236161772617556039493354001643990469908727290898782026998271763027682575698938557131217191615041242289046288585826460851113699908595378210821116470271561749446502951567784482427901727122571371369376984383077971099574827874603141306011895170818346947816922700023024627543972973089497562273315154334243744024253669868077404394016060429361003588362618206301642883895512535176249318723467016786184464516353916269996484105817805434521794356401244447971091631793370239311586846366349068025605773611196042928447843236807362282849941453680727095013481979797530793504014171725322569549403145304466959060204770311161659328966752495762637581504925319612855439111791981342631545411827369209466519386243070528145287446739560727952833871746127759560204193259749644338379444762096800547309889967971444666915817342533059106898448225960310052138522962308632769716522193876469187660140145646987936935505308991560943698900452376123735520658954106092765942076180965667051046733357644706235835635379061362965703533368083777673787052046560437185690486668920689595377624668182810043137754056800307235884012136408097578377285265078468889963687803510855949039495346276697489297887976696727455580660392915758269521422261858470476109950704591915813785787710138637682228237796538212468003753668313332263827734998441942742999614894822330296917298722726761604936528664905585444762836644669352918835645010742439976134947790282173404167578435805173310188417162775818111556569054367063830512754004112888949774168978412735406627878063252197701072443489949874348057105576264402208913966242364791193635790461952985767333023244621094259968032656873847231408443741841566870121652913930223724904190068434564205578750517774111237085217638552306311939334759198524307278245814048241225069290977914174598338723471303597227799722800696340573550099702243177345292796578358771357294438816509143855337590620269667549855865090405645959075470601150500785909460780062214788858422145785892843489544376720874605454081629855741104489365738928162015796006514539671449031200587079342497579879401831879935846120230794745068195910832556835774618928611071816344041798479679304372779126311245143239821866240460414689590131317395885160408306540477246577118681087362084719563834086563101408398862938079502114392949767108540832565985986459626046887287037976816331530217909673784499120574645764167157910571133155696925900928581992371608825322776373848977385674891955193059114502477642991799188791752368465033230865475594235329993206274761752424046849364623535244478415871619359811842393773110247841406527812825893868653781991907434309753656048433256059461613325534251405697118156264776347836874734402877170798253221549124921559013139600910446510180871116909214367735546960058454815396527576807569110340947659266352548692045589468904631171504706862457106925133377673211148210266034465294902725605936188255980696708143213351481555161605494747170697699367877979885432745240835284706340752096777369944191538999893609584215909743246955897048026567403005519939909028245189928744917376936686559623836413080658567391890027487957301995836637556038113532486315661250734764346332514896492107803282957011495356519943078304302744223102616744567865272351676866721465351375160651181479303809292611877284395372682989575694455364959243182466879298643139376576319081494769144310527340665609306130051934518166625805559547056120872870060912206659783792499793935715984575716900790972238517135185085548619606693238053058528674238985890460445048947621770651764740287874154807760512700361520347207608065248846052853296919976519097874878984944415298782599357461354223328260329977372255343327257277975307937008511283033260831407244126573326392327802086186553039596818335927491597819878274565779023906177802205998138335082670196257397768932775974500465980211583183302248259596031703789513555775114818604720453522539617164573111308982693644171561992950990981342252077683011649505880487814156590594416260599628988801080326420350066871026156646551421430971318815762606001134274911652047954193907534378082640900342743807730591306732962645767279749596119859341437384890570674971149233024584347843187083619981412221531113331294747642224599769041032231563373346790758796657466594324422233622075287696228419885607437250332715064314804642406583188924724835798442551621966218559243150637803066298843223685089149641853864160764734435867955838369759117710386727972997604505322662539837367859624983129418056222536394512762041392030252693934261501201487338511403486873756608436933929138634042269161625914986715154836526693238635250734377432283043010296054698218178379616299190891254790189475448147473723158874377456733211389973739062245679527233511096887975021491624666006789722377621556028588354020234541593275832285167063080561227987625712174267482074676821575769985094266394038135417165455192728054607244452096378421974769391158384094958900930194397538433295092745066399132083479278521644450382729487742710497851686436821557889915821451859071029379644177687042368314265981443493714311269686154260507772378379544955162884922023272135345918136711785967720396222888123510160946218590380671886712889058193174003084941722509262158097076293810698387011163844362391383436856308892004107655077679269854973436562549260937985568699098640602580847194560870199638796101664643763823524408614926032858203588653114356004910525080227201228635151061825889266331416875195917645054279278697394070011337367236393883049357753827319240842423761320422999459293066283446002074372962573932389677910436929813374246396185221901178093651977826264318617711526737744751042982953134649776061247163105715085477179246978752699612882998328769714358181786507296935065349925107292185207058578397025408777826308740897794183194886234018036147196489786453122268574189809750958329112515803914774815377297240210369555298259948930082316198441774720052675958736062239939114606230839213019333577960306201157027533400082089941387161024111149539620566157970946157915864527594554558410971604240336752155035190769018092546533927727084099813195749354704145709892019990166503333926025254922992428448550176421344326833013865157348700312778224611647172957544490485922305207045985782551263912552268976549265274918292600148944472160581656734511455233523826707367621483278319391130006081710502262929571741913604680091676824430831625562392005205993743237128320484513330889006267740299851666041069776730444634960652515109213471485017716963847230852328867226240237068859050155873422336397783633056860895296877556653893301931949948051014994093280914595542910089258181467411066989235004236886119865948866379454410685197480463997518662672822161926998350586694761915290836033310454293588257798100062959365866531297152883068347491670216615955308023188507918785559376137424839197548958841670416084553762521092678675725370062279482102712018106328389113394629836595565550713945520474456716872038501852018942893691257015132656742979749271323036877875479729461691828017804278377988548696249103795728512967784117746072099352814157073355467440476053158402935042258153978745794130649145242952263956593716376725905252594068080553359432903753961125047487971252670183080517276204213250632002467000788325447468075982530329363933255163442617866500664095456752717865304811405712334328260118805813280845023843258220026176006050899041695108571184518268660496079105885171100957503927065980266577883180600450116727143262998058658450404706927082949351204760090691719868994997232017953763175643291577984292895959323872033760993022582703378925809637244584107641587265256334712958897526092277474465161130104263431191165776963216856518750239309110961486231738131325210656451844028939781703390211756285025350677085297040697611592572878663560879238272879628776050837295424776547795052387036467752834432462701978913642312865658778204302115184991920283253730587601113984832673721830117211288749615032452599524852591964281809470005717432543045174729052051055651252881860349300701064398493207361573282256712175266353144387317337515297672406778340998526510532509008071684385817671184312799823509134656713358658475936601284468647593191438455010429731694259609150624129437292445227425110767928031816301205101973559286497952674706594187155119769488174446507541812440182328350829474660828378689717301511248272097470213852547238044872158084798358020171321331023111266237540780122176760068860858374804489119025952622088762072069132125094898177746298176903096213236811641369264649647984996951877577783875383708950393126913174579330670837550578771540871093824730152322786894812444671780654827585736810968335113632942914398027748748251084245325707755709912688444976999851452156688121088158390126316070922007666875663154254021539203770287275919652524288730321622766741510369621578846861866103987947405981758480923573685163193439413474260703991679125833461245179163091849154480473020453365956904873833465942095305362632893309450337400845104545156495759710762294236204878081131865622526113295801042424204385264515341074018864939359713950523959446899537425509723855637091250457725146932953390394549362877528475794976730835548752901888961736016286925691016929701202976444987858148681946311892508096117147953759186602146936735223476517088270030067649093682667108487989138333060902544470950621214221274439225249855080372677168363262047594076876079260920185862576252775372763416539100936535269027181417716682570801292148471123670142076322219994157274612424178372078902208424649663823644200806904028313003041424542176126575602714220480095196807983689286480076650803439541297940136314961606162152641426932009055779994787386543882320089412156161508143572969316025591166662446274036373056736499679093398706894494673121096950750364077353750985926014211879894024525631712579334960256342187386431309145002217172817973263288192395018797442290870932805871647061234378013537309817095745226482823265607330342336878842296035352733394072520260115654765123188681049189439428271028796190245080639123115202248026212454001161289678647005706770521746833748331162926842733253802872190001991230737416715106305568272879517835842978855937800468759184375862825657942767416256524391989757442005444179900898527531376402582526190398721016183713433534497322947775386722292304104691060169300511538115492012863518245515426879616969014236955357464003936307831320168613725940344145292323547082211585760406924708309128533219572008966166932629787914250906268328839509546173440880103419007742831263124435042868739497430722364430992326075571774168942813513784941064876773521504712675664654379955857920155710856149407530514583088203178106591814038269706913407353687412858868385917943266225708125948876595650103125804822458855011355298350584159310620180157802400851681078686414096887709507415173255741205565323484541034173471856476676903480786474046560437189703292696762803806348478535263161198179839870985077144073354831725779951043235306459348891995285610508655103063328287880153530268223169146217749742342343953829859317617340419364139631125182384029528031392685691615600916499535876469033180675267770229337362282342839010859590881232524118447281872356356656616863035899654126151394073629424629090378881085614277420541221342617798241787484454733171903215222987195256348484647208139526320061661604211680785967064852494619918905565037303997532587295747946079345362684921979373452920625044974169414752430814660486175759099976949394956122916730979241076822535208337019692565107687359256376562726076293469282040647577782900759406622332987258438736773582046622981816111537553608818602965392918767696097275557665917087234399001880744845237286152105367855775060638285483286669571101756328685682741557034891510596061748290918249117916344017387125046827743673010961479583862446535173243061425378674544743975039552937070726640140168305056825332439325839055725991236489390456275922405781604693736240512292407023143821653669139780557288948267712078423193791334454734293878852264782680035227415330162692551841815679547216291501711168473771171600739272194464192387971807856819848862649126777713714671991352214461828582753613898347781882163674604459601225698320948807554793977757862711655737163569622529549153527060849091650489151483385454737083222367874199070045883043222814673880350540053255036546416239967925724991025989359747196993297006497115596188186725968113515554207111717178117529766828225104873723417089300154553700716498610743074894456245812169150388862538040201888987040446083017395263100678669254166240536869408948348416300788733300370823996388802466459189395530276241875215763744892129779359271134037978735640110520780978561512124176376150991237585525702526429594781567127956739193753416344269659142569551451200365932394177096087997245621303403395872547645017640382857962342876362570845276766195883316274712499483476567211873249707967001983109517269118476674009799707706847125502500294504636822074886221556337905325218106977044995557597114906026491987130965911819995717006852636449651015779449005021262472548412595031985639041455529064284985945729700153342475960049992262815075734999070187857640678197503147640150199676644983330282050377791991121060754648240287553567453734639055993198557167699034524789035765330654088402848667504345129923655583220780812748520885921305346864263098507290265183863456387347932419526842960958763747511188374010908355966343270978932700343233420429716110781403260952569518383031383360142938003029093030805493759917702545101316553836218137453666503061876390806490432768780628903893331840083574466969049212505632176295496956312718719767616730532103172349518988600914683238911008336055374251641808731619430479661069552922371597140032112522494155293205181966656329134142998908189123876945166566300826673824582026421898021819581770703437500903500865842485113953460552171816026893235098641409439141831227056178370463696959525111300920448649996187549861451493110142772273915661598200526761246410212008457215898316447021770515524728433958655612650980826107446776156235943656941156002528531840653810754876230023039018131992602627299410782235128188376180319677749305277928461023355924694459541282221325371247017891363713341594306960208654663600981450298012269703777359694547945013587137607650120598309774915496137755747141636186412875869766379423429543447559325699455766954070473477138216174917281279446078426213743210925120917139789899405420273340151751481483251376910528587670392101449943924894258156915620343182727985867813138346578685103384929668820653348766237711547662252879873400135979898074733301379095851557878005640141719963178065430081847011198596909354926203203776012569697836198313505366789342150534041838655154139659696670479656646016224055540577043716078245040930830836256064553041075209272802346712621907105743434043314771633014167722910350731138037483672459546823170391289709799100994862088544836361573494087675616180509767129771630207827466407924674782545383602908403317758954743155550177232764135792512174498918442164703876686437673380767426597431654350819428498590681564165009078308912230827481297971634486053504751600916899648063828969713829170322540589366953067203055579131523744667925993531450614837824219795674368260698017335537573415395713737823381446724608216091149062588325073255086552718623573415613088113676805433786154758990070514369731323108383213421301365788426551696955789184228025766507528651822307766330374989659258918215500232202483510344388950690872862065891216620072329166526941205449435522465694125850557771606913629773751008182518373743541220134840151507373832005345611467882423853093775612714129602437807290805143913762454249603603733524456797753903558623274139165331166600552774124163299729697995780398735641563954620284739422727699440729209431258020450231162415402504166119655918360265855843139095647308874566045256313807431609407606390931490741168962422245542770891047254330918460045802756131371821924413340716851626307173411289292314046785793107434275157630363324895426750656840051273118612114647283016831414793307514674114484996330437200148809423454462037569640517907656430771500076983588121888976058984113130773961284807166517086670595432103060393921893882205433767985753981041860014071018863969676350572006783203043761679617620825257885509839774265885165894696709725687845547207864946196608882559192902066491178293019210153688231009208787927935681031887787897432929613290970212846012674272004499875343122487363421007138441615182603797967160388319644635975924786423682789612174349250595148974670530052665050356064264003940593890450581255322560886950074928430668949297808205312815553050112949921078628209069107588346613735829422466334051021810256831577011845722786134950242750045531054751304659184922679854613610982482832640141920870635217326461688012421405881271822955564974924645149564042916662731980907145130799632717198384784188007429080892183960215609237592592135865898479706257445864216618513652154999353694152330514108984113500355925767345624367927224047716836137947170860064681909716462877436893572956015020005836542257223849139010655186054822328836840463789127255943438197644217366222219708384440964880394235722501135255604604356007417853993410385200428821628390025949561033145308968453057683465245544829998233840502269857311601033634301044893416877984204352550280031577044066972755822995898377910669117898515174092842462264946110611854576306822708047281416227336767889229511371206877089808518291286226026155246533170863443401047397620846529028504313076766526359504999873936196491920367625592399312803828204402604142201727967239157573440419162440133682647137730486295251859521829802225196508194939468920711431017885586686017964567256004708892160225061792662906472673970958470175337804461603746589232522061253255607108097373973986076580376771812074521223804052639345005314628085765945899591312725759946471840481708481778401127925587604687747447844146976298633046696695872913862683894611865923591620834262334543815099153912275502882457919031941272864140233592385874495634290955957277197359137533593763541505809821882302067245122121644738720968352217070484110891363331439577744533556413846312730293341993513343508833241013164286699225368375202733044790776255121231319919482218986157903780887714594359258458838839727397642334903389640961650738330177515157515214382794583671472365651546898109404062058961558528863665291758291699580917446983033712528492547873936083673020348776051509741494218813400357344989056004109013085080185086582657524331105923542515387699096975141318087229082972671810568100598201640974047974284565098314841034895514503253543151012189542098265417819262713980648205910386927150843843651888283628520374709524876566426400089689739562269086450728873972332636330269949798773936928233187607197643075902721634334236474725911956303672191532137341450327063467457146240029939343785146936665403361984964244553586015456283289048365124607487268457729921753484253108671214422231312715105074857226159614645236757685082616838896638011703144986776317179950445581185772795989801284294186750310705575819881634139475212846221997775492675643850496794297997797171745806063037635531176927761113176208405927733770445279135317554060586986025529657713489294295277926986281974849341871997670927104264047160939621530576519821147715314426460610930667490159588525657360537630308038190747740012620279895257979313784519059916009951018762812715338297760833963854135487926043246556824449442179641185466557491656418922576938271073744387103731364114759137262066865720317735825268567522799090260286567129112514509398187382314072531845925195796347539875297451125702255204568440526611310070005228300421820703151764103141207850163635126820006394232356253577833935533310536177372021391962767210402945624270092907261393119904365240606386747908401374759663663253102246804683632118797319777093791347985939062232990303216496531272194767357244358003558664866697283033294631081377910164361062023684514338007531031057631760691032768478600956283720575005715580141299694026503216855234574450478873652886468304346855920738598354822546790367276160610761014188191543611232042846499338262828446282780991170462739929854143174710278213637745490752192698314189244714255075610729629645064034918792369273535262142121999656356197831256183679868451322849594620203173646360038003049529038933955487093976226438156282771954464052404880826996279271493719131209757484085345250352700211300341907726555326249804374841407110322965278449710046582484953134769710338112230989220211372076704111748445287033874137735059712527403927114068453365190698295317802604412769336289601133388648048185290644477745051117112260924643641547708757652188945880778566925837356108212895157328746021476722489316779672820485916603789208212372556685198875634414640650901243901733665097488361967857272963982399751538523229098776964697921142515688884387721230318956236250303553425447539176419612593508771280806459077916267480980237538576596105155558998852709490711270969322426107843124606554225620685954103550834335323091377907274884553396087281560161935377783001593148031147356908441468693645652509813748569635645605054802059005303550624817975651870700376415909621077792680277141745742724485561707685692481332373404408332089974325533810936605216432883081067898677875333135919789930205566926546122487419764478488075280013911824998732980615302240540250344197040582310175489284211125942138714240593767655009266607522076238984258370787117807431534675428429075887831548353125752696838911764094662279952451237819854224548879145633445380957483073034047725567076805992810037283549428442453326472254292202745969157780521528886666223067312110468545820815383799050358993479925243791127682215235228937092256033118012042034117301176128874283104523204884288592384137748092907880653897418755346992684246102962650692980754842106997128470072775990999197120614175208290760641991101594897718546253299747134155001751803910021249241380490950450555300107874218668460726344401056437962390674996207221151752792623954891842872999438305100901059915357960148837764086528986923191470274336614002554476710538079535975156419325106914196699065924134531287030511285857214621096775458827152998643545957957558117233613153358063284037996843670651290055197881369113902370664241179222063964113215787195657780404619680073111152722120830285346944055252009934422868104895087379921058164166459124105650117024331805798415350077553492921962788059758849473710746675615011312024163699256490943654823064956059580800188638643200571743114135625631222435088437704952921496568344372507943295089303754216280669586956923389046740857595187400454597445963573563580914524490939164027754811903681251588820595086469294718764255824381324806646142205644303454656817795196767288085719301875767714180474316158677033956608836683110232646118441825094370369520093560985889223542636632285497074594492927012463085198684687563636639838871027496320724571979178698944617725417781288615513507523028286704697450244604891144388394933459767739871030569072239671214470568212899804934646374707175710009342556165848542697194828127373748957103652598924913392947050976687908118145903141130691439874892766285485076299914631120079201594954461895053963383186367594180638693965878614669038251787229954452631773210840737180184311966249289604399916712947233832049436880984636106084254853169157179361153602887270657763455334011168636436487653258452855309367577805043475460749963121277667458773383988313583383714919929857505345628596867154376734950269239770672862816535034502879018589627736368780385568132069012257640430584412731997619870689314862490590967346063481662578369584323840389932347008906905834449996473285191296930838564562628432449891000183776982082204107227209513488554724626920407353818213780380080901599863878689201949204163068357637635527527772712601208938980140585219731926522029293707924285924282951713239865443530506742936839976014802345773256913101746369268504351579043773897496015856216209557906096905374364219339222838981796208189190879489492320005230020543620292271515707267096445371878142157255982726635332572398680621565719080086836299669069348436452036917419813312166514228894024082157473119884782726485022208874450810314124367126926332769568674375094528061922555087438944385211190294848653233335482762592424904114262900852566040589363863956838022032472796908792688065564776794853332342572515037123842885878002557771316079426700957058844809112659187974625908891141820609959593889888229833319581752150876065947772564259328657030628339689385964756246008795112252766468123709739870850696769279382188948793416798981876756715607505738897949474640683790270432415219138268661328483062177446002268951011395335927989567777946933380598991977603510150758542677974318121069566464952673816776315375751195286627066026066437436161632504882180988262522487045418212635138904181188420506312360509669347457283980315985904243601550884808263461017702279516490216827571566830279113398085640498106816018554330795512892923988317351994941774601303634831624890886678314168231180815858195054135563075895799162817801955440450713297764536990824483727969417721462422342488359913434057546073811647215675206082128574124522166742081790581439869612192204027559484492311420459175919434061663329302162558697841048503575246344264330631637438998279326826939249808379394999594689926739237112767320992267278074969248834041314548729341523788728385097466669419659880118487215991774421677751027927099993336011153595750772837141579830841025372553698992365213068163057007619343474734073969121900996320553369482338355366347836382463842956783143177697057573820589130337016074523463430954383057028860886216756427537708810121605298707453872044298835856103450355543950377583684640438304010872282240378409984273044253227724278238677553117175687361744925364174700435487830950694572848923253225076001484957026703759176143238779594670633814767766865326363184777804053991876068494139590261215697563192153373947864967209310725548863118788561923831687056604542453335614127179232159330987606071693634560278921641491270063553657877907875302230580447512473980385247817841933211789445748488971035935588306399049819458756347498924213870369995136128296734896464532095579681690270562368696464908586308119884342727250618848698964456619453247098464931419724930158250493822467950564402340749516560254630602092681758345017124640044598529957881714928082338634712319757625155158214308396649565239401653629545986567027142345474970710560083014911892002757391494680160334216624836926230559821615049746488905384913334779977757240886584686004329568274067461295818590693117933101123460318033258886214685928299117764806187163980750272311654839829568598934899578140373866321446242537182003523795705636029138505758158875402224606186596420596802204644913850721478811085843875759170015799344576966177158503522250449072326869535984928137181443946135814314943200944024938351836906427072420433671529722459686925635182092845661178861409193964353530477055325865010361340403648818832665986774473861915649635874217284693007835062333016020321678507706493264474633196556381196375117151251017829075189531718980681680150376241386738684892949949757918333233037168194218266495085920874882730473042518883775685483959780392043657855029389917898212094031910519785032312807484679488533931347483975666495183535926104466022097871478919878025618493055765573920113779833572451065133962315550930479660820761206495113606285962327566354710159212643039667654456290401527991201833826366867624020567672760837859652327644831457973085542003041378142117555986308143390766832775261277331475079370622489728356508679827716235008019891856049369937155451437351126633822920678495151893354779329500541522081691231888152887309050553626200249044644605947989758264383771093660641379552700121828603673873271198795511323450778395178267556512119749897951504528004569374658883116717577246827996986879702810154861365085450995689513419416538135023320751153947644146232794595027438306604663372082543813276748257650847770660647045332359875307055428235615663743262931154847093680323656705779963734490184874546868878310365167742780210900515954412249971652233868413686711184870244877050684309081266245170956633959717492419761711365095659521990641306936093711266373689964312088296231990904562531909691581743753734881435528371406561501611613978535059602035138088939238891779266702842365297429933521772332037664402653225395524170294099937218227703551668996323279074020617280836552831984871336961293046930851058107730975888245436487964898973431685041733552727058078341189254157601374851144982163902984190166078864931251884647246102150979114593603140026505006987280103091670758998937476968134436786968495149035680096920073094661084434247066301294513661620877966065580857602630253093005072167375931986331740056341372241888093064051305536190254759810336571545319927056603221547815036654037695390653616034047806232153174144316292078062424678298036112422037764023758123864521280717470777633127244846282831948380958298772874905166145292662747800161111053304218139139267242671230435270370997108164167776477460050102582534524768257694791401995480173340994354664839568043688877224323409374725623531104589139286057797802085067818085513826064975728771208988718051919135890767516240078258207550260961619505477803939518461663369042863244035821531537145816596831268599439293117590259801035550326493628168753335611115696186858710889590509670794166477160688225853035193807856934974783149841699638117960219825941474851446399529835318017473443864787993525058131123163995889472155373516787752808625681907332659227509601563417570103595645139964008777263744152972458110007776094428374258161243567242885032738018271397686226086415381985438437080872286127330753015804621715680921873526160235951238833182074609848104439377113761849637357878686390718172686362746613979547836212747868047446940256034658050652391278052001376913805461411555138369604239862623800841530166864578480361634824195101242007121166794027033405366192878491501113866441667396250265407146800193617866003399413636179571869966638333062983795469951351690813617756882866601757559864401684702412743830252193035632433745939153410180049496193603712713033574141627953853942673576885661806560693517342743708186014761541432051950510445751703949110449738885834810321051651824344780511599984058839688427094936021908016187037642881446347398137519279704798395897535358863162447285856947250090378339132587550571068723630728950992331982317950984224726966115995923171590560201394130887443768834362892908640997820179136782820807711457398563986136343806857781876102152485370009270662517765594688313072867954188939490585845700674441513863598447452964702029197636144192093170950097035271581999168125194238037616205617636739617238934061233350015730525481980243449249877743742428920765618953772324113457048560320914844114167552473936924108233569326816471920601034871068128345269963883016169190601901993189918782711619217559013146786015833685407795248160833865100487639520887787556130602112675781253162999299044872720903466209229297096244821204451793360788155459922024624111381015313369168108474824535574384176040275507537533863965086044559958211245844960169165673842079589642763880007920520035959924861862140078203208083538922626898965294043709809001498352139815018362397461944129332764063965051525296732785083947221419589678866807347296084184932622811270304730278058089976078184730495700395327604665009660463167174877452035507694953382758260571878662490400915840502553890462544828002887388774656406550816651338808225580925004898436261557092904103166376940668774192702338443145864023467584492403080768684122620120116423561206242754584508480951072785617716848869321097558230146513468409371065279936113325452073871947811236175412774910821236465590927594269263348067792721792633693542415484219183012428558907957592925455110146080411753251868801106182557403146869103543068599014644045328022536156769448227054990120283225825304762163789948945545993849097633376344650738549538370162341309996092562148852937040740763702009262052171766242065311468931069552179418150116270300455392742948302145099879075446699163475474511335408938790730831489549712249766909068440654271460434006654288704128834972598205638480694067513245953132038580798849667084290586860253291587169939868398850315235553387441718030674771402953086822696798513978389976375965893429142925048031714290952800124524124819003991519399715188872166629357051018417992949766931377792172762417534568486331057245747775983671642292144017945213016359834956384417829922468800378240716013168783160687958178718384280812954997396822308390296199659872943676997240502237890932738771505573384056265759306002532879542899497579998390680722165653923214770648977783342443553972703628575590167159436298570551911365095603001809591880249243304971774704589625606138024867790366704723653702378554738454800367232304516816369158281136492286609916875662354775630674934013184664609160940929560851362914384171182816728988942183185861065866262681483153671132030319347754110539774232259961718059006302823142368009606316634601356208459769762562960450555011408553110122273819926078780279172800082138405551655485498908740055369974399003087081929323498046974130941384376892232066790864865375291316493190677255799777973287627759095739129296334499981930895100561640267191347111284202059103388907512868981926147513096058099197050692301459180859251542083691325938287791187727292195852685250710084584337474540082235999604052388163483964716597416136823716683397149653016121543206175468555118820958580942693564326613641933808439380726672040523848269848615020253687200993635502725380073564646030714204148827495660323042928291303814528328988359930884743081450972100290939048167364274146618397291675559270784133056707203260889820437753768348526750034097010880023109551417263327080796742334972405855630280775082675846990323649388544487932139678736842360046303958757644219954953452655453557633362199406057100946857356765679179328188954968446509629079488698195639024227388737904979614599931391187493587556556046709990240479397804832966718953212177534479974779585392275885313355920126746332433954832014702688444998095070943759284042753832799193508433101933702211736391862918681433255944353094691905781935356751922359030326293398952684423650919973047643965634335007711227333108954183693139966144906135157146393408876778174823214484191456341235313036315571688809527469323716214754021518749054121131472346939732957642211272035464973382995657532931011811167825712398294312950101567212617767274791635723716841789961829792061976591147350017188950904847108753998903383220355873852442454193478089695754538146608330179242127654670912596298815912459758299893921672393730679639936417209455063303682739178224059270699042147989953602097735845272698452948281318811350419732363192792033504285357684539227402167196068535785867623149148045857758052833837455248784161735805443404052709519930660515049220127921606655023373298029463686593275443192211803401421199376098405204273686653854651244186857257790861728601035164852359994306081302526817513652169567973394984699258966907769015868129699647293551319598658818028216744513977252544746594294596766314466318552504289863773883583351944024353360803485967680578788353799121648278295480262205216640226049939798189517919637179368176683009295054413091534570722520222965623210156300597549897257404669223603221530434233072411802076520673038930695374562420548459177569282418856787483962910180579434871615349744722665150765471892499059208433182761450689268567348946358381092296795065176047175609011542727880995373493620172373014583327270660509930639225200524958186759430201005735748402898561160929920222645480861561853504121514422339578171865854563210851407579173952934356058747460718736667532786608161691815881093792153617601447353986839695338968402753733807565137715987146237034232496935435351689613829281987150986357181349115920607466021920237109738709421874283224749947398655375630534064877145569620388051244080788243213780491249852503786783877601243435627884838959148694994592444511309714126060928134146429651131941627107042672699273949732957487388066278083262378816868413725908226707244530037539854888508108779705590853997956854912511271951636146843215752221328430855884175820602416899583790519303480459629534026843112719468011229876334690858610722324772879088140964840670306589230654839362814106780057315195155945666341559130066289378966720427990638025150577876383489814120659121070457106314363095291402850541467634109765978041257144789176594363244734194233064585957071901200898075532223729055665853772315968434026576843347616252068672961098616393971835568049922795188998484541288462587318094746061076841643198657394177948881772593934128267052352317452361406198564573718885663795993345817016840164147212826922496808611599473087307258365635062182633086840075741138523913871318610760511837223615407465415081478560229425549008331176527812827477140870890714013044993105574041084839230312157503643535826343724140121813772817239020503182776423944020692677866089393697415034258409290747344827349976825373904264452902518047608444216082405484206811585270131937369117422202166263341526725160810505654721426742339408853874741294837079273074661680460422658017824097385274414880514936573424532156184957193497242064710732924462624033314647193647581772839761961609005085304847239827412910809480995862119805534570197964881178092122651770233827794609420410823032328156426332656044856578012274628368237639155783898491862735761020183402392567043275814541668829231138468054863613693197035177486082565225630941360904228140881942127852460138781436270836807422157017465853591198819788297745585154981697532706914081711897339099805573125895053188087817457067264096409131652017208330561944046869318271046491589888050635469071377519437761826482999278123954158437265750885909972779494709900856024854653013852223790574220236835268455050300997883304142009645151644571979575514353903524890010160747751696596711420519009203206138779565748478616470936371061039146418744022593621851808617611986949895945826545257961601132590498101494661886496846681099512317193978930255539860339673666494277533313790794700053859059661648038800199266501013913780941565070503030468820226240149143126422320227681331280634638344843774750632117436012745018737693833329781032105116288153404796631662256314960342039627265785633579865360787993058129688346340448595725177928033150977258460650398362543190660865024840266711946302671442294104050603125414191061579039257259000422912668576091286197612573630741605757660547238480351656884673302980472442721982538706343027578839032733469276464984370619188393239340195461242873842135984835454851735488253381046849503194928092611244042837624511950817908495128583443484743036657754349842932915234714552045576846990293982503987784257914639588739159725544522436230035091738895760666404821381795822431899499523752554820958163912911252634475240616380287203478708079467297069914387811690495884099796008128490139461128585362621235300079071104058107113685760875703123190660334232518347749054933355053655477861159815553112379474062906949750880522551763207853607375045298993113036878181713208078372964207016043528822506809961173839421001153982495232841449715914650437973838221117336853737858764732606351924405781063044550748273955085259881273379997325155034720632245228137749133394576621591502468627558832379246131919252513011277882063054346786904872011450706264015603515314348452678911378824306629938224429378335975086977381187917720451836993647607417515588690976136790300905984399668221287535091455359758057516162298578068967257656704899586726598889541244017688894544696702664494421016763928395294030897473480399993718552635754304541655663416779608087360200327821014739171246151242428422641786064671029539387787003195840865182530777902467209642288570236168007300078459022765527305267095914230270885283757371128118083667951336418639985753015960024463337667933881892982317201381285257821300722842459498602314847957286434712839928726219209054986924977216401882716186263619159330015869083961892499933200892297722281025884079895563409603857230226522645634918505060171424383141784804290433129731543831182363023241982874468600679774665280957194829902185122955983592588326028539165837515025142415645994466186262258935349684715376576259307139682167412535010169260690311141663171860927520023576142775747777408868783766595275511983795266534480737841325275743219998912979826215000579087474569457489249609736754424343234733376981129306186040996585420477036072299888830205976280340573660294930556029995882364235026793708895463165062666181070176774579217578685034911729065564770289409741648477674671053711885377423416531959740340980960080510433344444557304276649991112572603558132522915228789867281600967904065435240475555007769829414712216941162993459014920333038329935298141690638239203075769497599595201984731595734112364108804810276538779250504587385130068459918189807424224170198353141665480828130016549148321576521958140427447496808671955465230851193662807569045952168099023323510979429366964939047955846291101055804224693425995272643529987864154274113544367306303034023165491410775157905000060015472914256872753223885158692774535264293579147222253258831155475112292973439918510864589784652230729689667017559194188274441935572214844296950126599220842355931193925328200348627671075485463257912532848943355791887562456414584683293532807110801969329895132060792823669098968072028371860703808356128368542874160345690866849861364826209385511745681470851224093501113855851821693232270768534606429451963784409332123308661179003390791984180920712354099172665292377771098290125846832860425988159883523824758770706990738013932314654558441428526804310562057685919182623335775646038987363151167285450049593163232069340690181854544320072434334855327077970628255298298875955756382607360904544163128339608289567554384051683748471068957923758057891072743732011239126215920145447630111775883095938934281961391617391594187494277567149257741417244071620698764666179644645349645053953220373320832140517747244218230703132352806780854086786772131222556329430361595971232645869066148294587570743979889952904192457571772060699432370389934552145169390519361179256709282244764348909425588634653612204746249313368755250940364790108045109980114142177048995526657784691656150646771329727738521129398923866354186485054361687468690611733439676796749568705484002376198040625962597898243870359909329697404252868622989116612080082929722450143372441146574654107380573888723244036660932316668833126654007403370145121682374105710498179419778827673517025556895886959841632977054469276277560876275046828184307156539544699756341229852161632846758257914663687761186637163517250006697292299594042498953792343419785773759932247594004697990868390920872382999234217791285482626034159461372053781665788690593987423034499761654130685501402672064037861017993558987932719121134366209730659133832145521671559193642761083236163874285157870369127672382192572794910683699620925500374603639608588697751943118522356655239290517814125043027257220117011262799384109264307217775830670770908069985877819844400668367878481820440227844065188766787721472404717542238877476371724766367464595903881523048209605343138392211959729389187208291571006383881539133000106941751612905608786579584258282477325897228023682297067204493555043809704780369666653167565774845102806323149812617073936019473470664818458532646581385237462501320844257205997884891980872033367748496109970530112550419128223869162587481687372987800387764882902837794194268539192437372315051917677456130741246694789143341024225591303138642916959043722158479425399532633152751483083689337078069090750838645740531371114827753704979700282923168468239829975754572914868874421186970428203051221327002069962928861747823320863459755814467167216263372714810479444502208270676964834328239237285660099777289730972031865069866706874736573635318225559260269383588605237826600791241364666780607840444223208762146003297495226716644181547538239578180455971822388286707903420223671942885206168158002833965492594740076356944665967876891871881565732752123503591921001517694525484383889829472129472293365157429903475296745903129462944971615397591084486514459745186689437830783435626718580123467374991786296799302186149249461653096750773688661689069651216768802762066789272816908801913656259656863749095480154372082671648752969108390238970559180813355138729410623493450114927263260039310104169956405807183859991650595347866288533595621580689083964253425452813605922209555128733986576037181132541697124408016381166292155508198791623996888333110647807309208622856382094641935010150745284462108694494731359673148142270741436354832013105278401844509722890373831727867748069042214582374557516933966004279617601068892806091006260101051572868712812501883217659174674965262993312724751727281201781304767515361935561414999918019211784663982364251278752443689300369226737357688766091916290404638992777764794666638643963841301689442576900350647275963265458664921381686950054902775165806027967182330235142919418831037221601303101679914122260556979786463182667717805247295232787031226027050539665682276648705838990805405113753705247107970641963818388126580410373219117482525607913053755511500329330398144049570820597036719326514334003796213172852055086365219196408950385727544853082998772687662482436850336938291571312599536079534070453713482387236756257954212638721956216092504191824925675309835193819703250082046100345865392391348037235795675425083184130472545847357326452512604909667544634824955328062401023591977740954285012214235121860368363926868799127830688188240312885412292209412120546663954557157955752530826219442630552853134659251534563629931328363125575683414700958430054580536226855889337407391454170724526923699302777756885338898500056159726340966346380414923698083446701096831759260011283026045010429128152495296800120702609441389876028658618828528764974805429935068889856357670491955426377032622670635871987948069543604615340741586220169157116173303923410855584830072969517191799536486006937735513095941226043387120193471848535493159477751586459147050512772128540017830107667316520535771609327978763914109335860540449635923066632471466862146353021638171800920030614698480025780225141836271019196740602928418129372268416919783217239926960027551376390613415527563762371910850533265642249031965094443715323065813449156498669232565446399492875583339789513124625517111010823013105722105235445331769515385897240591234723302722614949899168949078280934365960202511277663228436951462008968367731734197253267494939957543146966260020853644350333680672092814726328997008777425744160839107116936276089120857758590097973261409908834348039795212494970689655961124440796689239441522826123426129631000584853567142217404282970094030990943884016594772654749519031860259278418650501892380734154332655051641773567118728340026032611269273947015120425051343012748452909427964150484647290756055255128712973902243063237632163987472674962215486346124934150104939431611612698763849879562501778130716199643804489739661080946844874753518755721763782784425021897700387191142721486181603708081013978448152257290181727403494514144731234757174913519598970781243242710899879252195325641398149264701321758618417173863000195682342011727029533010807293796162774106056741724028161450091218615016544990473445191962370712641443408004594862534619534004234331374070394100408101163740986273066307914941337100961745198566773868221488499376241440885177034461519504043083097890539350296723817897648868442323426649516429691687550420412988851884853193733641636845075863136365910184395646197928279094417119772512117779610426337599423438611575064143664603471805567634346933812037502126748377251732021854463259249988262410675917670782323435149609272965178256576204571660896683253455847530301165539973633889627167211619105142112287164446493942696287885117852469431188342917996049220585115446182300870587490912508040668145859658019403913061406045997613496070123754269901669885889529007350593099465919490449178783045718646797000160419983095270769205764431360270729300957754002048290566027251823801395670787906007469791237812902981458580129956292644853037392403770193202847196686737888610714659458478595258670727942253756782183831593325010221540992949244083236287976157652454146217299330263469486427268055458666941447494195898872888187364950443517507860864544061387661833621632269635640903781035643791864315374108913416104739195284102969008683835378695662893857848582465909452169323278602523113076039287506830280170634382224274612360804105124138678789527774417057676340343409799179179613645410785500045156376631686602672885501892165346816524617477158978299316109799709034167715534584362190397739968308844694949443294967225515316349389150482683490506687094316725343771750500331877214686399401571039307947777356585268700155900386406688973667235111524135301559182679930535598531379690552573425310050179601312646114878350528234229333461915724554794241812362369996688183088804579578777352565371795178172808021967250440973114249099264989652719406675839586650121621709806102316223750139073528316773181828487512716717300700704238754320570481267770581357763630883763954889429152598750647602352046111563679988787528752816566065518877593720305402538038375811964227425948237931856894156403811568775642287337298967909008166885427027103375192000130207743612433357987718703541357474600926482279171276283650773954461721611730623614324377072609909349836697303170499371494615433480509853717154618997523199810140736554019288282433469017992697610135958359614906737131271627189678203902342886679004649646477063112239892782558379816313508169177433769897344599253347400564246149030179075877553802034762856223081699775462995684457609996199723895975388471415942301795242871966047938132488458233430141003538112355440847987192417480866074455088864412033239458275793332194013782072094685861169641157714526252376529798024426364562577293040634239720588094280224395357094308592690066502215875926441245845790191437287433775860685999288023279134192314972696776509628760375919273814967912150611165273727588846747884952542400962224747563186279486471891533797703057589457159135027622271526699530938435851373829079167705821589429763460523580482393140679302099336810937707073312377932362137021873204558764389391721032718705078576136469761146744080976623587972837628992243116393361528089347061400332715418728225254441321095984165368328857992177884253931109537751966490083022559149207310082370024048778280367702171768636656904603356128228903115317105465279424904936997782050973495139946837362194589221563974784431468898611088978942901526481851926270874996970272852978260849310390808557052215539944540616834940010502724998732517863647967154917876026255598300955742146342277868100317666823619411981156628884506509347815612967312856842094991385725012457150076803963294910966031657444537832596059243878940696274455070713011817202039488662033099526926763333559012897103243115243506989927793057775270347425706596142569407912532819272550138371511949057875979105633927643227183773561045004477467244461951940919787162548377584673746374380351282758630789404830303993785796692705648257623359214099549086293273895636525539586173445112233726502546095100346377292872235871046427059297416803117524784452168138399391177751606391906006072772470113572349959953043050856878551883409242958463187009341430102781206853799364266793432881046058255820688892529286428223612485809878875925546377764384368054973399994917452094635465081233068262886622718817464782104438301172321568682683343202841898772410408203200116445738025282254291289599684753185770286811654982797674686991111899441290124821387175718213981803511034259357266358612200374836481332168449676105025920783938509493437688482338116709700144794670441334375367351611271064537245497065342196329604995204385791325725589821020772861593587898063689862864586827157796066595841938621589893547327540200378031984807792881672765128338940961005191987808472557502827012037964263056315659880528883582524669198384126401867496893820893938906506906051854997968940654614259034158313612677796418414782606885322634017044522090928960890033118800237001162483898035045830761974344193212982907142000519716405203281426723532470772276448236906425162471034603356622991122290610407926711623948333867464173244986143510615088457968344229530302099014567663100726476984974337880021468426993809730688672800700815926033625437299738106110406329778369249624584938248222667357667112987202577935173146211066211040834262535513191610830216005144717115614838680779727476699933301918918775291141150456185515180220503676654265928902939691292206156783514930137102226913692617029800727897521907657162544585338684011477431713823241103640148334675920819053349109173670836614504583302213519073186977892085261731967067047684275193448148750755676976654351091937965762382518789301794104232473467651808369984773821388438791008931615318133829574507515194367422516865276367490288237868787477771924203075486105337640305796606779101889030542669742752703051466921356729351264800203515855298599009125920110613870901830537442448135129648634675879036365845518902492384517306542709725435514921062728380158187290833794238074359784687552555812895802972737933061197829814874460184203586195198726666762293830139784829315877537458506383397348804166536286699995072288705227593220490230803734306993901641681735400833679292020201655121570709633136946646177030225709250285167829943040048615215163541798307048694320190359803211133785758970712247441375235785728793468903275879139916802893617669730532045696959084763100004773560866856182817659620072468323655541514323761809365362741135041901628926381258296713921754133016983724610612953925139392942604967095498271769545722675584584530060019845226167173543505070098634507697025028525330512530174459688452010555693768271254822316187819984192323573958703688156357347446026256059498271493331129191696910247512695841193245726312518495960131958086787761210424214090289833961143186323108782089509535149993990747663400303548775602503614428779106058291401512021131476654173679198980248851617047429489826432405282414640859076477907270585094954787328225701262116027492371966952800587974637708237972808004291159754032878578439283554407128042106978184206560432008233500519574367361374680951497935319680221079932539299332916925128115813168891510562684210412518033996603159648491584146078196825495318948270306558301636770084530385556275620466780314584391132770023303078514660394240735391140340009265262184859034387116205165358535384099036957186670925282365753832553459763936821797162394706342671351990341611202749200039386043169732987806995488179791375384790431120398601584687554554860503051791347264423161321686697958967419630026044829546346448704669657648439413296564907953034925705687212113615260946031687274832571743138386710670411885254068812220335258889214131692614657756917093519475308373253418296334330032335593479123580507089093318007710769089447166529463325473407067294015429565337218262831444919457651583284963593491290630092121488153838197006357277018553721595968293352273949186912884568711948830509013134840211778681059226800744395434252418272182128634079701867858389874316236334620114627803987456656381751820388888390055763050432927063748927595452050989056438938529949895251265914137372144613531241227995582107539161689213783940669938975744219264348532560440634126488693724728381012786879049533722800806520641961838958182587904743494000069147333820371046485919763894108920031470735515399336476714209835809361978084381173291372301958630984294570800632384186608180373635687053815604364177424531290699517553335960344766279351564770501598708952728035277113721085839196676422644794167828550602141933147940915714966060897281182270118340083883937353144377058808625842013617691237513438183931032080119813533901867435700353106946610807232952184871185810381051661658910802637990350296471345642350954993594705872438121115438691986465630994345045119892404915689396853970873773709767866393470806530248445827152728578495134197130003774760218592786125853376173233455463914042708063316515203918679892988470379457497716946811986510867956031003479675661722403938810365401282571631482139885838828981744253947785242152386890464532620051949219602899006544057142801161366651699904715769990373583621989776209831830469965278294119805506840942338142656340477573737584915744171974058500033580090115793447714319299077538730432586917467810866815614586196441092635978926779708614389228721727284831586088632138423949856478611346888354501288458036927679081109427761461237748566407778542691174720559973499673505943955425768720089329791089472986653062851575480041648025433437202006621583197942461590063132198849088113525777756018939194218656209499967593294524100229604568820974114513973238112209526446725538150408321425196305707216582242841088219056247190290122561654612419842968671036928661736791841767065251051785734857532972543856901333685828471261801517938656817420837768598242011281607477399409388886465036698504188595083897248302293701584143784230547038534318922068882798462809864367846255905544229030831153251266028417630994569539536627152177939468698675099098042365959052975482699768657954940394992320587485582502001273471647131568706806865282657700555732507831539941007048434844506624108004781756589032930846083831808930391422466271376073449866902994021610463134970599240359184158214005380984302229678604531612460729291306952524550516660642579625321496760173609922420813581961272342024129959917246875048003829979449779397833986263239048207962792306799947796950415212616304980707263330014552645406760835642479152556664440620523990128413055903200784566706870005668018576420950211234978817962298959041878877715746536469496493391776764400406680776778836044139020881762540369108731693446268039496146401076664780591357197551609327004302096845163768793099161135359483321801933658328435263698474387635494780552101554655330862800735605176519110279871334844976955482973368159174951926109817386738422798765017377143819924722725857992461038378835836548632070676700557831318907436270443657137883829631731924770095418221243777629489487420842612191941181580244366525479205664367487034596999455157957588928551010277711078225454758565566845266051455309588002331481170125162338057837619292839344018742441839416217510902337383124682142076369035820686557513954993802363350501830759866531700336558382858289112954100991425381169747220827608959524164737675868045376088778234062000045078993639950263426933332918499816806784463183345103929093042177968770305923392124232534626532155273618365705863140887617704583775421336849420446595292399741505564621417843735451490247501684875201270381357547773985676112036419487359669862342165023554774842912976184983098749784948084850906609010389087784341640042568253725742012992213898654788846552435789539165396824117954367183892786883003272264781351287546556253875387648781515532956376826751737980144199157758940243053536914442895441582290684049446524554332404424020721890084596872430724577343684009029870727300794407367185482002493718217150856068812349613720156392289581382416407597965267943376402601969109547619102250689438298023372455193412130150111183734525421176844921409378511655059382673833042919153923017658063590401772177790630339619613009854089750703607204779779386411123699257635156311038183933566428368586186871300305640792014105517287401585806766604704958539447091988531966155196846892575172924745988451689813827843912677290725799555911594967090061628487622907144183465341684867261897939376014494943827105115361365918476913054196985100480261443442881129211310584860419726865090658690666151768402932527166484474905778850965144837414905049191544407897313874439898749266160509159021046712549275431889863143481459156470606361160929417909093039656606943966727549356775551016591165923525730535882111617637203027008977860770082405271421782107219703766182959501223693415320508342019740244906122955805817281137381333801894301647415751487465520805455995281282300820252310934200219863122700576131981031714159714195882926585338163582556870508703102560604951183146624708183449326509103839180715493912863461318083743649885386851661970968537062853981151463659773643383466199356968952744372259365721473741033048037427699177029967224983789881725141696246808659862743824605261055646580733924088632556735839475506060639663966858541214116467524803193933764424301157049256793929729184464767146839516143368907933971689086283777028804888636326555543844049245116618038628661284648760092124268426048663528932600564519417037017566386077839935601164289265195885406594198828834769434649888877792703345491094138034902018897179414975276200052277019337858063008203306565010708103060108369906844118872703029278918199111717272621058922071305981028673889458245653261833970576922107703776189336478293451191523040159787036152080899699627110414572905908112088021729382509528090165964413212133395096266140254980443445566188632375835029907882236627049964811282900334183929912365749592915524482388975543179263543265468261940013171567779245477841397865399444967795403721286027072996108737166889158186391956184374118622894475871918214467903351553299015161951816631199434514877993905936671748596804270423363295477920588494764529908077553322918432120744584577335572623180421863400400568399028250128292093304332726123757028465268234927981425709628799200892621484715057885512557368025949597116995434230088610247322190955676992402233798568227224204179681617252383784240390101200153534547116388141349180926565963821754397906686163283286675794540899020262645515628457117056297478704115455348056210477470572565948473590573221750469973121802081398844168999443643584163321471557670786542172296019894051663493842029081867391569380456313479535336330330146892888785026688218122393311537041312030873504376805052165531386519467483008798193645475041676410377187874536076741750442757174743378336473370611047749009678587666339253350463374528842595473970167842943368113229263006684883733191340777564682062167622656802486156797230983140962813074930446837805857701661663348536729104395048503108135188157298658955682035029989576062030270431832942968088854463333165144662230364299138638318478235004688914899813764176439019105779227982580353765137066638629108766598179459767269605092824000666835407998290258402906075744497471940019106275035471170200515408943693072849797649552579426538299273216401386511860146175295534410755722149784128439334259567916176125309437186126703979034712687828463331484442474889842936378169712928088050164032372194046154661565221381355656412979252265557352382631732431493258773812661881977414902789674484673605077301651020938602711136154627467638663266473744712389829248960146926706383421035291304497021713259880198700436335145716502981448154787852377996448344064668672562191507024779240460608393915510916482783270928740626709758193409694423767052137004729838867838187972412932680227286064818256115495752845951997837688928964411549578187654620976532538760568376150125858423713694750542573754247981074733114591124901640759465197642953159064468313187864047403842114942055451428393700972931415530833339453037437246335616307288142950799899863358635654680018571329842703708819267483653565705602272184816775664609770803050092637822919281956775563770736156905365464681898098590181950777284004334347751180332467275131669016078117594685329275811310065521449212089855441691374268617859559074924544312977682658681635100323093281220321623791706154114699515779940575270197118931186215546746916237531253413073529677030107114530623081886996905518971141567897018235353414062242856935648209440329826749746567852488371256589121372656270724159766293802814539317686313184285836371452486566079112103807083239473286123080221397257973829157914953442419874878554380195218218448114891596116028587042982808572751377227417501873885609619976556904458728723757645426446504368508110789136723820565317281742416613524552510943900925548708106008646212471634266557948870788074807449085245408772229293269457513235727234580244077349186140008537159821473931103258676204914937660972074649857549365497953309688158541363799997973955632825980387093661407580205721709514260425554451448234017152974273434989207455467845172341250413928418361052206853062555114821549425028659660900791400060415288908448607242785209950336818183681675722451781634964687503884798742537501745031088398483254047058760051523252912906175048122153517504388960082720101381316537772437076547492796775926846393990885418942074000362506339099848429192484072862743114484767573331799651894274087538723831764732428664333747346786496057132717488126232538353344419068327120875344941699419911299222531770924530845476379129271333159319155644176244937817075724819316490273947290225333184742612595649095552570924914895484198639293011538368557696336559724450923610160774215838542740672687018106433324840178527217414630353386934234678850047917463596765274977353849933189403412726886356518333949297818362747720561324474599866396056425464191748770401156996043299816780967611960985127940330663096997461421721095142918924663395414482195626072080366942526697456771545851777972251354607286644942463668615733888856552486534962498976047592090349419729522714894590826036334410769596196942880218534170325710310222646823388329761612709787950632044546806426137426643384633681386045892773085858230643852587092489635441668022887300979397995428804396654932682296851846734427863743551951268129775529295101904205425059186263648135581596569844206411706593076851917612816618858962865293914648413454483410915238929221297480995138872289413211521301666011710194106393418441474764128769929267656570775093761435052060336410932097172650741509323013403132314234480807585959880837379604527787538902909203012743889847263195408663541028122892042448754722404591041097601725651307402569118075708534296661756120343762221217755371452545490442736921420251577116529560990287575692042293185727400368483232463954828994797656784965484498923292777975748492322208915510184921756316483486876404621759934754381804519839304202797766569820637060379135589521046511407458187408689097326801192021396188615731787648340161160350652572098559075412054563373357500692587242595553297975273451826572994900942776612885885034675915607406608808800549875704387874994976176968241552938569798646351504242553056475191455516274958821411806086373333271814444831905582782311877515399834202940735750260358759165166681561238046003163204011980442172450352775251217499543392138336174924765297170922832841680643493016072130058754761194764273088945084032435491457551488893000559542407258138169240217217959521780723741064270236639134091512559419197931581428253900001863961207488276076873188970981282598130515800954028879463204256379494105748733138566537334439805088517802876167396438704501571507213169380902373294473805667943739020312581782162122739060561306990509155539193468973468976114331629972123592704810288086802410417374061710695092850626209978514831656984183067786232933073142381530420051433392047840086975271273427432884989049420136352470811082520555347958593311526256185784428575139989377870559557962511913889756249517779832955681493298548193111233597927622577128534018895200352804411450885959135555291469017651779553842557151520798960495969471209792647593698359363597206014440110912978544260440587426803965479480909090990944059659609808255041297417507022731272988744258188170771802414984918609335223869212978628459614440411570535885264576830625719442877933440488487903925622279230039146072888011102687043813430430979058138953074212346402724973480266982344154716188976367274126860393812544425233165281754697836734233493488896775619477485155114703854014647004870008126266229634603223608121872268642917130315749375511457549128771735819525480041082651511606150818845558805901928226991735993157867678855065081408553121736556607430335539573816727106855881901776589063758144299884418333068724811685249144034117645542171668266977833895783303504678800627964705227245677563256112472579851957673744486348197590612958444088226824806678869118988137249590035126746337288389077738840739100673682161677386692070854636198056543673449547727126619092280659107493219722264601995555387421426045454031410428811364089478306892372341190368122500413555435439978431397548718370288284622447334102498052202005132741847385177587920328944571931644613413482577767174165544670183406091221306581703562899451206817778774576442284888366663927039278462476728245960705005801207810500763439731372770071273323466347607151225291470199888290833702540571830922224873360746945466541460878654759057557326870895690320503547865933026463675536384638387202251663688544498336264089760362782441993154062259915964957023782691821396267232161515585691437335223463920262030560136623013713363257536213120882280666419847521144339770769145703941661918972281996856580656387927673267980506011782678922460221582055505154646643893624314456928594042364135801969717866224612920731323935261202743354134879819610000541622339741216970845810591436852473613533982990113190845336057414711203767779107174403074717174514334294672892391498234470818327207139245041767851920991725813368037566323366751154634644250239815942027375778819906288629707877886373220609268001853317317366741635968028204024361146266325714474664609627824961593912775512950012330394192171285269540537149377965562679223299881809721840825166921653237889467204784166434240620066307262495580605309563247686793538039703859497706174802983084668538849724258124716717071887236135114795316462385477498832042392705946757113137051096873546177042216628186359760842332279548386458557776806019569125521670419830501551842543793416609942191130480080133896760137808904561314827577786423130650099772459207652981391218234505140316992001784958515163336709025361488505953521031373520151293605308374710709614409785913632424112062694528091514138180230629979227587562268014256131361678470917800529599281014558378031367071217093076576687503380570044990182637343047725735738439268645495901230084510407110928279059046756011138683175604990222103780431911678891237539474150272718160323103179377332877375108580362915072569361313143248381951981970480672302713498480898161047537936288162963012779059105543222097791748272309497281862845378706782658346223470999138045740889039102234803901917379356509937969894693833237444484644898268327884686078383864421613228412350550596007603362702317771027421528545221953502533014803349235246007788224349918329718738039559565825948104927670541138663948955410140137289659724675699074334676799069627594600278344181783634467250956699106669470414868060961164112090460898204596592423325834443883402104077200988424938007189276976345179863132554844329409067536715540771614096226382485985356885034225611444040781037182762532357716194260889113642834248350830806839704577402974910904912633156814769363672901074457473282236996432737709261308127230838304054947114966452176650989285246049666494424277754622182933110839368961995625291371575395198600979675803586921671425049092763448873008380531673478214177298880167928922875208716700684526436807600063937943472260416237753269044226625155500418380717358704097826267289489148163799262714195093522353515901136154571387940057872146908024463583841024424878405246047523920712023048745882878317456118417025892211923075941056459132069933104961685510993713058870055532206746476218387381602760006782842944142234519299804548196632688780787580294891995548995607136962147825350966478726616291371882959652188757080651021444120460120275133804848790255047806381773651641702831823613145711113837034547893529219645507839784550118988491055191632851454388872205178753994334357390409644752767038190959085645729463808611894963811215281672244908943912855157880545465973714574625768577922681867713404783234054734027215595892755518803663514284039897873290293015276146766653193274090567732967050717456797645811618233061460679882874030388361751507420596544812044140000219281620819661053987676151719432269803787508836424158562441711249827247570056445268019124981317644099076857766883917921644646018775940603944486044011148191092773404168779754112924204754453958413969511426292425906132434346363169538815230265131163410309583071205414819157907430030368054466079991232018662843128011987695245379818604546319261510667762997478685385170442420417240406877187237336893848986550892605141430473304001298937526293514056466595260927184345918689893908021996678386563130431158828342124155307591819941996272271989485587650073827170170783860981539203968105719770014524880867436333424820908608118018852123568595587981763685714017670308957440219211024830069548345046698683023207661789468806509329728030310460484682723805519650425561743032327768030153931085356682801469014728684074292189483005079188256529659532199874930404164454119164198784169453338353932572001603820192432753397380310283694892385398434902174459910303586811089480374532513943584448263013191129280768669995767059411840566424707969638209690925115895068070198278063799606728503017789708544733209739802582297801620015300480624864986167445290127661770476227885260007818257813030871395910917484625866270947153044405598435412562609138851958832974031819988928188824308601534966072391586297576446944150921794892035105013688077222281254895312516534076085837328939722482175566825210671170448344337530754249536420548020274568680037331647409768303194928299260210380496829841746201916458556690169971471993419952997449312150354124486433919790985098020503839885121750049848780035083582951438684389791892871333326817114816415569674687741420034233203645164172892780698089529247562939367358875813618325192109581483637434361057766567409074289951046536252595545098221297838404632683245978273493428332826324070675141632277787022883165063543325920007782415090418432938366116708601750459255075702932278477112779469979998162135705066345079158778109701477999655487618587137043390871662804089611107305819957795864298731015960317436556492244867654743814564252718895484855331566744586911797116831003183617964752492164521566771265652831115677599926373757278170314910548945946846672895183503765451744480988907190582746075650472479719922301735394022533799264722075840201045462962681136110084209741956528342441833880101278187224958562634214882202560548632986909083720215796937123581399674259103407085434194602627542144930546610347661019752762252405060457936859687783852981880905176400586191232640576733117966583876859480889991271011772240940615486796328835431756800560423739819855371122773369322620923764024489415846226043415792380503262566017196686861629421923936276370219529624048424969448101773896453105275342956916527603046427262917021836888548587542140831421386277698300370513543588031098715620021797701168939648746622423536535454920245867948701076713738819451312346966192077240040576975404008517745031373726965184300876073584707726263695434307362826819682948290294157109779293294280633098856328250760309433776023450703764294932397393866361334695323839859636117059821734465900972233994427363435448321985124936296973248484752108259673515249554769427591381313147318660703124227424240831772000629972953061632150965851089950725792178356621260410051901390125656576629131503661333140241495388767771239540974411771652375855564340407129823462025581740806105481846993762525150827424676451045076005180221314223337040187828886884350295713608490429649808020928765098898426858760492481596577911739345236362699026889182394661575967336310926061070306963935107397376869291325348048858287862493190913513630856170940091929957615570804356766733333318718738960148989006036402436468899752878673172903332151690219081622482580340543955717157237963756444474239063058743603934483545790622374393485495310952720342402655240173074826797774647620686780725390965714968601047027314216702642302387026565695643959713156996403563273997488364981348716856843872551612921578690451945509313935275602325967848918060675477893482818327892437909955190475703072223963269754435037549999273272320522441257156854135607840341921380176596589817136076834176193102710144160363982151224120703266748764382248305539525920973618733412360074325336067436708799137372479725774895912414858029873006468844528010677585233631976182164430596520676291077185140693564019879884704827235928517462063926967176612387004372525695410481217247613942304198108384529367283187662886757340605090958181426568213601436434759690769127775948059119784531505399087993464466928471644435081093887819419279658348568412069619553719539073096865998297206373490047976854319300676251390556432770127071172443780370545926401048330939227638092962196563818099330481716321167116710129802509153220640279333884225128756624060387122898910225916194110090446028468453053570409489584293681452330174337101029879567983284239997490499853406820104025582061269834169439669110538708594927309827272189904922844081024554355728275771029110581317454861724311075194661354847745829366501200085351703981786082246907375239238843185891339389170921908459490315106211177412717042334223621042693301492018864786817691057909322589597564543317756599532127010254642348989525210722828134889406390421588081870461912178019677714171335029934448959377549769556629204664448267980241337625852159770672889745561443097782717814045303853732932480752920226892918760841064225427850732857370035276413421697148218362931307127763792641309035759627988910442578282725092752749373539046720541559122290467255038657429222424683245333006381915026691867405161695693943968491018431129928378141678530534644484452026975651681721176378250936388261036622181763111969531207715804748338604132531882234681309446883797156799049359092988649523713319319074897452825128787415542458330016623296471338791369634315304323527276310813750264162068757999793235056227733503179830293354121457581210101088687490802791975426528286869296397880163894305842887762629666655435314423554248288115172230564666823345750204668532919117728479545656114156623378737723700391677264618843361625575817797105358735126884217107900924005420514219017066155621507885749159829902712224241095555212394049740717306774745411914663241535797001020012051135370950195425818005273607730913447842431524752884009073914532754226334902583011698485832126443421129001134339441994038522680568745230236812583421510974093764158213792306160828119988101201341370036749644755061796550487591446752312263651332606862177888217340003004775841026780979795405283830939046685597678967477350725174376550136045802007654978101807489500219354813399880383551731416747296822422519525751946693417905268624876634323942581715125099196380098740392798189774186554456012232316796559213842020753121402746164640743129916740137222753681276626297473884002332548468665543368222660227340874332128595481342910459056710048962472203508948548429109779731863339194833813726722516143609469925006726936034307351648173923477913855146255746724950289162004328680223215377741521786179513791028807402046302601544759434981620526167345822219020153717983753392275939171528679304667299886577718000691100407584923886231689451101704837991877439644768614517836239555657177520216375504915659723785786634095935058669316022525132747298432601583153197907280542600518473343089135026879010463757654774576927039618744687479110108302399466199135115816851489391116134256252952047909772073179036844998221925422648472360803912849885682188018040169306027625800876214441948289277755377482476832809173899577523323568297539472226879751923472245868461934812743350809455012129789233149057025544723019833518687864307276575708352597785586900002106023650338920273416267154811729748321088920650174445539989867728214990201391749366642485759469220624967372137694027753511939213388991046324760587363076593848786141792300261083887422653178561919336684733819139772717909750583721831651471504110329492575990587298359441065977728337053175454956131855808640787964585243517116783562681273473871792475824616595257288877485459498394273978568618847000019676835706705684268568912677057723523836648815690665645796912998015327259254425543088336854330722536595229575067477109199651777796544037303275404247807854695056304295926712187052440918714340025533060842357284579513214552942033705833471712680167175749471848034999691017653479872852788950105843916849214004304621602679220392382792138960183138473953508695075419942094673816018323609928961515916348281408120605042800498864439967815405309746888074843609863080229098371832769202902648083945253135797014585922798928881639759780056204159918089990906981756999883215517895404990925001707558596393673251453386797093141688657815159492175917053452098921712582604297599505883834063143825047492326567794325535488846567469805988755109886961759595713086433107198547315936915848169315578636945182252580386579985812583858929521522299281650647661319520206196288177512068832385982605209655057363888979437303972319098681219611861823025707200463080569534763451092127703001908136373592045585058922440888744508335352493054161665936232816809978967698596748757784070531071803619913937077762855287041931343032333931012943849275174299422586162451690940240594082950537824113186056710741294843757244063888412890144634141005165157597183832245484115688956196351572397127362936521447714763088509707097941226306275620704048971250145616607761817049466258888150638506400608914623912895238188222142292886084037566161309185920147457177227624904704262986439378752262515323647645797597532395627649128524929546779101627724875129554360517727564872622861519362402659378274534191917040210219201371426101040917965706249412723844440743669355395360341317965325742135578109605658974051921189746132386703141465295156807753884337417071395545486687590510764851393174605606373010632499634955419974837479059654221489274863168692226688386438127021604048691825645479263304148000579604067202063702536287842791532787023213054867443113778850301406186479301852047026458250241947612839593275274682813753513298861049393915150677463772080640381853145509025869061417876203383226983812743128389051699580861599974964199987758232799981008300580523660221812166891376766863123072378982597688460283930066946157432958621728456006357473805514182708082036054366999853368624596013282560662197033356675650113481153840628273068945631267691263611170445983741531540876302316559815969162150845866722288000098321639229711123308649302998339384105807518853826183317620483478181189034703196042807406917065808624120672206418045660509193879896571083383875274816321469060798652628899302253515764495616333792351311214648680752594946978890323624781858732779867102726745639731273905107586394716408060339165445762908742953036923569543031908393590635214637897088564357724309031413000319444048959332368870751895071909539161787466346353647239107626292224669167723999086999149171186944764063766464534569611021020003323779904200836847404543672810888393247825456083117052543588703414371068350659318970287206925192810602252120331708995264715070855653995168905125646369207523474844031022290922168401931858179903762120631790112503188335483332033585591911806496126029522635547432288227726122150938842851125874972099649628811011317806997971689941437012131570295676280659923251612759351395954728712844204611694210349169192351870768262573902891852323495835023759205501579974034901889571101343241279660877499479065153310364770570468924850534075038666024657479394209390288278872049769799813464704182921553192802721032168479600981592855448864659646275763737245353098825238922954365510359514681744583614744565467231961746380509734156390657966843967610620674876230545287080974909103750415951803424727821744054219462982312842648520015551361438767956180736174355835040802418401290360822887191611977147030903336226460814288800271788406241198195070691207289680152543846363746082892755331463177726603198765074209891525462947314388525155678520103704934985486200762546240745523062744080923841531068088404786651648706072916709618799095807239007905189923990251398783960427872309284523039801396478310060160435089556714893755753094877065949940493333296907684127304844559913234573166567264259143433677685515927583884126459076401697336085585320938169728318706752312353564220220457376346833603429924646509635586405278136266002734575156424819728033982162586403639252528078794246864378269010845308060845967099974724868532529059894477184218577053813912051366238506085899406771579227347927690943805585367251209177365464030318898511840171895288154706473716164636944893417690097593767147266538748487832764776970471693007103944097818444699963668381959168353384149811471353923409763428785187951548644712689832217665094082674104144130838919641708200594489208297752538202253547351818845241121535754729735550736487623361274439623629044062891547355450852732406560358548137478641027892283241509008499303382344394333418657645933257889424955273833704847844708588863961067940282376617380232438692357579498086984851756522347665038795747877027095228175236487228852386521118995329630367683129207706764762936422462708125939035502838111277331510059629117764463532559924662917071284743208108231596861920205660936153062854675702602501631165147654533697805876567157299812486649205743161654069659526684252442108229545011990673866530140222625154197795410832664831992025177148406936686081996705390250270683087864301132443380299905592520332868123187613696167683761675300292375727046933300490359479885354658913109287010983861333344389072029968499342863001521625570848375009340790391425142745776045933061608911280923383770990297886590155517647287757142537962781222167103076552453859935338624888772250803572570908613234163356904134272144426173007964068739350877433784979230400050793885239045507106318490018753462492747219590759916844164990480410114912599685751936119879838922545758811555957526042338464457724564517315791123512570749751924259366716884198053317079373026308814406448264673151148043356817122222352531012557029094967799925507032438210242748149177775782788916855428060222670553761940276214180709916043179245775259839565502860919846699873531547848630915785123889017519336213547234106324068437974574201417616981306648074159844083295097924505192347175444055726700581086006747156639535006033884806694540462022224780406116097812725248387306691454298203884043972981406431691581189523787969891011431424568490191396624470042738157703943197544522666193880772402083528609383329029921029854023638006229151213103257519390887253706491114346823814290937028767396736423617687029574261514538255459321191752878818840253904716933107406641125072326037989185268666591699339480690572868015756648897134358345736667142163807200733608771266759728036468187335253424811808108645278493718207941173149017061856917075655635385801461110300510697711153026690522038958136928681949326208283021148183427845937641509095749308150157493042654326179399578393954599316421590191854734305097753467804836598998556772908307797961761227426463493111969850744178872408318860877359434544884345238808508357505895940735602479281396095234908388704588343853200410567351459879653589513288819540048897449451353411427558256311696631953941695159521955798533071673069128799277705818833168549184944600033065849575538087386506559008195420808830658498263780095505993010591136414621037123819665746625279829613382926074845785564991165658677542687416511495100931851164148273641874615727383657549522840713570515680629016358016250401479078905238287337232408541865652611347034025868683678166754692658092728071939566612939088395000412473024430767343449917481261890848123030762630899371974838735030427603452975220961737202131040547143411824262897621025740986386005491131738408474440878799855781341808526183775561938224350807384044604632292922815369050018443011316590464155447858539998112254737105172232579836912137931302269744321077674356736089933624219296483412449653329971252710514230024338965238348591075968906674683138424258779762289733406716872379635627896251928499412196333446557881830336207400338049943994513123121714554223433559023504114311066662593515989940067260707986493945574293211756840386129774998647287337269879771282847735666887390129407394046655623921135186052370693731943900000614917213278983858631447921161069812497010474310534704217100439414826556699554378302670941939009072915254074551809456166598009755286559078733717823467192876158263524446205765542476370555151929072111789751941884289588635846927475749642613306753407771333177588485729542502560850105370087451194976492512034705223868682110988019985876659247887185787498502267389000095204788471461726259779016680139787587298244296298795137450677005274472724281080085771863448449756629973128509373504851220738987391415466904149526500832226115639357627891132947992270209399560840851760880293461138783469530283809493021939822296116204558645177276801492228610097671938577685006264675537310541189034066868470513054257187063790103817229229487578719220596277589212697019249740697242114692205458954010684369779156965250712196217434449357721415537532054964989429985007700674404334556731990963172381818165679059542213813690197081637871212129733954972284505881702282964454722344811746972478024750299363270914589774419660512414610018182079524870713829597510631029015897532238380839392886490320187354084278344305021734107481746008326555645653315569892238997115081330873006472976215405678313641788676479630097502339934577425168042126923118874692910392282320234545610218743364426652899909684085672035018527302352087545989383729178872937999339278290119047523298272608704447834813639207280866892155347611323730586134699471864095624783466930378283170988468264401762690393567952142088869918365387761988892703591524421015301202409245516823140038362716798413321032858636324295805463594876909227754827534497114836710153365348547383656207583345637954822856764794574764202200586837182424982643570209240329780125023459130019034328401214318207706062059790828090792876940213237891178930744079818440078660847179503922036620553138466225827417367333381344603537516876549423142647857828826985183051835000267461275761868953666594478634388496656592161325836049844277343661674783210372555153032832495643476062443795629873001070851779577884657703361467934447143247001499745150094077364485921042147834635281541494189245034886672077896882849561141373594660187037217574090898345012887124031904134996716896671169847538507121038456460215128163921112331758586693243761881182065377823964840009176008480181450952258478985987228889154215659508384131946473140264217430138352573442533767237499682486348054631747984802250380952635249627842114408789700950190832320867000732405361111203332866797992635168546845560883212303705202242437543801257482939007717048196628286849593322491955547710879620269498962705369867436276912109991227106604380807954140600157922815544329802730748701657074270265557965223851844945260335750666498078617799132565061577737000680498118711527828057695889768692439083135304963834022570770543387891513642576723574160909104051364718535869699937001582667517159231518062572157320148439384678513566874317062756435028506344037598812201559741195834427060670180958304259717419046374732064154606191860932793676495976340588851931385431834681930791314747742516192231580688883146378301296795870136905581706693698980506439217748576722125336301025156952246580031523956933605325768433222811919481245324213802970537754628756820367607706637048468195587320749369785217669359610384592782458548700367297309245942726597155775982303916555182080349849955013978568150660075864884567081668933544338832086623968181679935034240654419953161359813960901283995803336815227808208510868970159051120423903243411851215891434987373409136891392593500635561208784930403563163288610783540118251550068839494017292328974018512849666325499916507981286551477922780019709339778209083143513447395623714773548082475761840229550644646434989786582180685967230229361212635229892441616775835741759668917091364249699859826826211915130940122135165645885930992918002044086204135412730460634386176123009305094552948066825779380085579054539563659427708567593898290899596968322930338721428821938049714915282303758048921975971438995627641266772899115085516892153753362357122373824336647575413918296176016054705293372332063928455220939323466999005633466281775531067239122242841123724867228089292346104704858333544417332281386814280761055599581454219068166229471952527371187958404030933473156963094746002166835246491226955794136727615625509748197882840120433554795025200219061246095963764284923536219788546107243983239198149658046803002616715451306945480150900943260237638734129957173133954655054614139027428650474970305733940005723944076121215927515006295346293467623116240047378560971449754639752102104767618220534105923813918190833694725669120168499438477369913681932027703392115144503301508656420102489183274117095050044646986506931021214747784696494104902527856544952717596010385100689429774161940332725058112587113792777593019049685560978740643469626284451890393308106582645808243250113188427407952416511994278161774323816139879184526116554700435763413000129593161464621930235569317914475339698664148113629890777327114227941704855866982156098479600100056369941282123238284323092212036858207224057452309739048999763552503883060000764186177248630797514853412237834129223515881620841212251392381843628455515896245819172832197666112661858396114201060374660353840587844387706601321542232884378076741746859140985632164192224154786069693937653826612625433516470459422686244378417817964642880855155645842545356276036888650593541748224165296662609850976334979165935114043430754543981615690207927835237283857935650021803292498796972145219118636187767104586531048531102098570963462953956258103138701884028316213027446763464285962207506581428524736894459493562019315814927177456737508262522738715555545831089502841068719385326004324953263772041387240262017933071297277421388367403004720836166646867051952389726311356707081191611597761400327239051868859869217240987905843663925800477655442216514117903947541461576046064011370628336562705155609414578362336305887884745515350313795161956905397181735813751435378342877991698139849813298013822704804193846020396511614837360360449822564452153718251628208465181946688706711176965307015644006337881541979315914124363128088683054215641413378602062846184468066232889774847649931490732843663989468911442056913175686292818936701887686357329695550234214017278227777939534724081787147885205484577585604258269052141545279829050108257761690837937166554555166233266909280284786600447812390322579412452017857492529194027716901714740667059261782415193480699969862542171146742323826769620067729223611048045219745420282463549122564520089238629961456914923796715406566284209570639660996461798192446297010719419277489215381321086620674680655928324401036670443324977363464572205733490028031557589586783136290419458322706017304048838184412018968635806001712175802813807616406895586739495209526033434009089190515494081051600388402877623125521092114918157909379126815765597488294386167196381881238118164716502332077024119560171007479290669983953602782682025020121876297055184898676602332253827687990726893810612486923575684901827558035516402178563545850118633859212816479935243883084160364077517246999306937122286797664198007649688567540315274919554940408419777524523672732028662133699890679450322922333925281063666249066231032942014827778073557182160601563999893150906950128460884813669808304664488124422573733790004772092953593377726545319482497165381247241197443081491839822899719898628573379810252955667941831390634678407764220952602850327817607277478190852781044943063055644368018316455167741495306645833641701861933096124789616745290210798215414370241030428654009424524862084900721391456499067431101678417643160124249620123429066720361313221007856857414181042443385387296487902520963499183321963884489413814318927811193471932917331936740380322715749029118878096138186970207129667630561451200571040460714265173875407634001626618835165532990324458390660531776545749173002271412969322670336310189644157623213296555100858184041389996177124336006387810390263534679233536204338081838553870931096311518975080687905454711633434550817667138788285617209777258733166824711781872259761377283017885910211383023121199697874291226140309211675265301760191053214219759180501942944378423407493151094822008376343615267942507607844095009487458904238249614149735170199102868214467635074449079310231851424771085065103552374076364759442943592006510276169226652672540211124944517547365540473708599118025611066316334832198100370816414375787192112487653517867233632600100369489939883070482722691691960228368185766408957897721459546924588066813387746446202622756689812415626201486782335313926279268491340306764842773563619577909601519406182960446178121322077797016618203833471816981590851836605760756733765363757849475308300021837215829825506820868173219513340716204939529237835089204742769791058359585091812335239458654141335898225997116152498706588145764236112151957016616008455610459255170299644555393495664562590479091755420334207593717534978387336575851704491828408800251693581238767725990092827568814918601519368799277390798911698851603965496929038866808324471255896578510478037084461066610717254436166470516973179286931753704543802256597499689669883149482418192588342234738041837052743247459657373282077053723021611985769468872505546205231182104681416077494985997851353466304302874425999621335404657131020345935839303495442341029343344802999912628614096280521964685107721964361908983675439065056028225318993662858723959457479208024070203289439275923509287647442387096831680017483871219831116287061715740882938070843952633432303847549038537332890294041414149498525571732917631288393610018520230440235287615540548221458292620484008996790207711947820533970486899220851436735086418007448031946328954504055666494497610631219423677140280996989605350179855401927681296467683208534665365268360799465548928516263115259849841071493467769847450236856573514833801538785947616975549757215271380685214511412478489122797641529679738193775712018106230851274174130664531540007207163757699962346820149951492212182024849930414069780782390079118894782353891470677174110495809068312470230408131241047897908630297604325446621738794589531617227639213109984045468511995783573253379452136220885015564906339997921012052789020860204966898157628650522162746728624917601833040548788536501481375688398702251306572283314531479831948900654667229900803697957480578333564350075863293700394210610768887655376577111159273328382329244955783710676286586695697037465402996253273700854997101867723360951400123960267535805086569361375780385382719563825341657597411478847487796529144680528220124450373094356770575512068800292253828755680164306930750241602559686103817114193253456781357476334838789211521679526241727545676869929030879745363856241452020023808482032179441222001022865702766113805684562383996403804196884806828259844452335103176762474838102166308865197347674744164256443280664489951331620566934940952195477745614709654957601993978455835237122341497452416945694349750669435736739973969331095485717318556958662158664241052543030048374507571097555645362995509879056595893785078308342580014572810133932139064604023737887348403959791871770662877498556155600168144598930790703078211925510614753990761521370593139673744219419329258571852463063901615413490196582874195796514070837765720854963973788372206164764745273856395744083254051371388225557145481525573265466540881924187417421946865748591962760858490235204836169784934771063746820409772289706284167337291075384586400035490836149246885707245200164696588274622203417680595644578124425523379369162044729325630720796713808554072311298070903374795128621418706245080300482376572203489045228815411772048767903944879427143113272739106231513653217371164081754524890064676675937213436674103007779325795329642477892452377021158706062081140288129999783870207273507194918352074573864946486437597674170212973078047184818930101405891758436699434230770688025381734350931588824609486778216837483208037614043028674448480397779842765053954398698284331560349650781208013585575601116680287542207978973770322309123206014621601545675566757999574734163793525908468304350685539450509540444223456567098226745371917695855256828245502448469908059446524659296280201834336258579410573251144360756385749280789007039552834968036732107864614358362227842571497884429986379833532942644688471212347275848406240856707886258677162450164017175156556947849866263487225640511066780951030212967669710640912985616711813392239005674577241195322200495940679575621843269405259146070342483080168374449646456585266962811503046375588460068719337506844183244928297418570830363236664843348155956417623388584292285538916274076780155947301380834456837850839116475537001183776469206901525533246074734168268016384056344022147195042194989314791095300428183183966260496391927029581654059050520257595634364697893465165424823258220599537500468526188548464082699055456914225719966451840996707691490779885198637879711062695480922487438050935296339784302490612123196635214771095680538210328150308658144946523051227521442476190942833194529824610024874103241614862700251568844604821449895942381221317029356287989038419918314579465676272205033047503822433842344428145401336809785980075977364709764531131176708729609059765028080773527643877281011180180317940605549893950812954991616998634262288737011367065709616112715066376884110078574488176780860691659729206833543287674026351231890840375287679100853176109735144245608536062944220958594144904973181216103352857548538284765338939669015110330954550576562600563274629915565811938757092584344496359587665180433833231297163122874764546852807657776537055028683308114589776108837153235406495751763952996596752563206975139870657472255043239346754890170948483190355969091312546720195646921233634651947943593212664312569198530360483152837477005987352090973661484914021589094911903705179511624234627554033962456073497135581315337674488648905119537937412881780928707169926273778873474944426418732905415295443744473359745716053752101015100291199963046653786139020024321770362970897474687434647797740117359929187147026616416377969668573229975433315521261397641760737686509946551419659143876974714911712535393503597710896154195083893913778701186754727130300735817740254971666571214888605485804388567235811157274020509816853139338749138939064384632226080777271788376819171478014652212622548551889535852002240508036217645131826988977359052692932980029891097596765464637684497390328155762361745849316939212931164959223716130853645513816988828320011205184758470283372770802897432080045619072331884728536062942205457982538203395203886298828114705171477051965678492688248190429610898033650939656011624278148983150123826868876214464720253073371527877854556661579180005370027639341764041197005349921278720711093266232651455455376044074546597435343144544200608265780338266180461552166808665659898933288307891753472715534788257937917691510510196727748607986466366631032452993142992215452813343679871619587741891394941957490924067009412976392928916000527563428139338401367063438061407225359823452872082400000273765975323797722632404666106882384057567534845284446727774839913292233849150810735470356688980707540554543042293352279801016492519700718669957896317014792132414698834294878362174379832774267677224275746616465134199983889419790287040705214133568199274518265761239900646029268859018560169191981198223838665518760821632922022839313277415541620342234928767769623425254952083791296298062605987517053471709751296661602369847052253413222720285950358636442936412411019973220415834520256431669303484267892840996092587680911695155067678529142848503413558085649992168589538588440188061394060057354815431537059923518380286194343773122156290333542501030828235352923406326217678105852189020780742221936810507097652466167820768500643706433588855853078839857711440589114257878585381496588421407643620860649031203492323264078942702316474425293027765572326775205060617192312518042674881442711129048516789803095359261600490548498039824181356862842070459765444783591072263604353315062925949301781809047677583305030995965722671615282067882603794391518391751378914617456289777208796267665411617827671332326311604097694048283397014467200450153645031534925204080135672866457142811123599272937411964108271763610147569138948954906311600011187493948200362394059207232401298716313548800294442380975995513667182042980979546254729426924588421232407167540231132329324286965641789629156119038033768424845967122534889349742150526020336868610566960542496996349292138704285005163373932767987197424535873964756765135602776725498817699077765690767261036694202710163770987175995928832726714000329729929042705456469890675299512962379163121625202950295291581919119245474569556589857562156715175402071800539060901834274983042621509948268263102809419933516007313334454537333717582652578541987873847571172702615456452368210607185286943477731021727927690487437432235787856172263563596878389147972277728765785850799817711768043814794940545472721793980725554280410449389353693221798588431206081421162408422704694307393250285808718375509534241477152592856934166153941236672705084576224368684306371628129736845774409371892993103221861320717885078662903270718608830393793230519847238434484671724512624901504774760484595052490330972553685805771598137707906641275811626906416716734973215462579607291781111801409733156026434612430665882497422003370529813724032221592587098258910397895788552946988707597640398891484685389305419817344192236035464532605486096634757366430989244985441291085978599386431213724836595737889886804590156834363615856924788578280948932724717045470621821493361964232544234665472037966851330285875420270437657293480225834078590882580823488475992511645453112706003436487531592671074110282403665604643790681646214027689221147735663301815282125188939609550565157670015842240165994004454025988015454496196795717096001518737522942276150379257906709954624228443625639528057133076935958017911174096314260215504602779053474036006120578290670941225117163507261323196807796950257309137869507108767487820620395982392895508885300425487817617133453505715790572992808314945216226218852485094014568523099971928311222217598752737481855094688599291378026016017231414306819307084885588177063883593457176699690296603056470629110223973523808205402496945852140452609670053609303930889837762485231240989360158389871827709506564070874837581832052434436077682592278089124500281022949679108931562280150509603795506857503421113216321079775057579065893101926995530479498746679696141382118810695736330440751272265720004094142943580962473885193790709188335647447274008386538391572754095333496102617464175182664452066020386362113582101074611156273100634444812521062799095868808302306207633341394031521815771910987083812588524926466382666299636791401412019521029102913297414242961603601465233557573926942692916728318981006127140654516660649452352197416017317195645737535192513384312062014711064289021628272008343183043961027794938144713977339153602328854143533930706979334474005712130472918647127311765473350612305614095188497453687720366021710707263385485222313978470765193544223952188885903624045748773181641127870466480096102525903906121983296713307769869877565862493566975063535179312440500929869634954132506612667102765858072015416848329812099000070572476370908561731419204146303752352392256571756856577869703203039365767831914589606423343467257068212218662717255588846961752249720023525239230494628402430443610889018666971505324036364744018074820173462698248527876861697042656260379559761652521222911219306361185049164303252150570341649567514005391042979078962330022862456177306605911559345803465222231468179535853608662090085206266163410214161706487613287122673641154366544148576426152904130412987981130425438214593089099135623046333747176147786792718388443154140305898905586990467549751923324683836090271150860318348372034787061137251845685934052970490928658766067936362362885065255254316350976501450285934150460864370331730057973501579719995869737905766616461098552949957046926930425067678164992899105641638829970208518201239372036300738577019616570026522182020737081843020772387022367854504140768529885965255631251280920501007978113990579456251282239066734562137203400266218912810933722433169895689537019201249072158606302081880124405362114894851073758693326447002444091935959823638236992862836791436189193656996196150142205969054892575018672069414359297292016368328114762468014180492226848188457399851655058373150561221563215549203152432914928732433115689606580113474717874320316145216402556160837642641141670390502165754992167061459887203932812390115082285392042396027421798628262929827991551955175306875964932780015630485763777073484601167124740798397960281271507554470828703618133318793169066101060287561845933965122263022735550754444928630802843235818421150725148321593141533764986180629079833610120871936708205074619083558740464658671361218042176068524903290450027383470183578229249958993984282174023945790991657389029860021957562242693920390823790878985036253759507652389702802405870770803622875382432586237323311359072433112349827504634622339384961327046039912759721885299980252043741853319703744080231857368579377567430071335027236101368752162158037007874781408369936654778002472149437435279573749525960079502475905426974139704664504281379489496721420096574433580830984807429859867393540400440660114237018763832595540499326319950958350665940935809333950039715193519448859340027404084704899519747190975932359891715070892960318203805382018266017756425120421457971334799099373597569316456535224281458407626322347047817510063788429516246817791017233717794902219984641511944115788594349448681208200316413100325838137273330313512739243914068259233015156802499326370136897790684556576604629615929058950308668873635628965574785744619164595374475565794996943124983610644899211336523237356544190607979426591721262725706392319853448281994917126483874592579522024517261721369807638453096107608245847762787678175213988036597844645076727599685008795792924457535557358811772678672863205525468425972420409470078640676329220444366990998557828976585314042482203702872262568409314413620459741762766530199302917075868551714048922028119858131350714549538883860881370356928416547881554379528187339874439825950505749282241073989986515956177556715979059449608617186025535427281988378703087061753248159452208342946795400582509618558087471659151209289711171224712626786033664359868392451755502736251424313766208650787240963716067068983364199761400217007647886310214712826703053517120645400682249971582371009355104121583064765104820738378705368873454593768954961393765437283163970594977115680975076880925098003366261183684544315182425159807386645844510063986384252541268364379957408332653966015924485864039143331566498452349293932033407448473640687049206556395684955533367965331831275571066920825695823399511246992591783659200036810893482833607416247880150319584138928890516492799423436211170526282571901987186707873780166054101460125662796120831175684123666097062818008098980569382357190437984702218343278390458670490301576290260579452258709132893729059569705058396401676015837867656869627911539045455900727728685782866594125797722585236576217239853402450959022346244262055162439927493464822343275983477080210294031038346917285637777614920386482613575216434437250864664623177844166734914449373255264989155211081534199650272425617285776554460308799053321361606276618149852643195895990429972560130737135315964382717482909031156341857781933863122220467438939492069566375479329492496408401357872667367877293449619595016968254114050390927127288260134658901108432777511249016565428967612254743360215135062968979059515788546714359850975752214587748869949101519323114326854062152894314998881199567769334550096846760651441640292038323323295440457380246587198634419245743162164234524223758486674890248800625784412874981355931663021270693338624719073698462971414033529651178846131611243123080041001982798914662585651185677817147714592102540638613211721647991547090412081264440689696178620716108631475204034881438024774923799250833207265110172871449891835560742018775400012638805173648686923556722563429976117849299742228596913896976156490155363983731383830098639164299633954199777603279692828234974420003498627900930910887987007725062245403051312793503774849565902179455663752541978786957069022692185674786973469393124907231922752062761175479613764090022759276342430275081278297376362536521288032390839728979046293025387840568777728821908388966731023676802879520492933897867699131953191481170094572887415321600147364810564103216216847128949309986458338633771997904452221682973719270466437278101532215873294118267356044708780971300824834305645231490544203912471143313196559380512249274841347173854368550199366904962366669536460797630498919797212332837754185038385157923343446252300453029473994566141504080855362905542023241024292761983100922724175882994327662276679462769190421913478447221320909993982291612939424022496033553502629186049363546451475888595739975618521569897190743040098909223083434883893530649174660840211886964725317888129818503834872109336679889729443714890212647051145752668609554011126174733854165875373365825680318109240328735818314309158572278729297735924857072568325619582743169308547643400497623535859920504513678653557489148222864493717663834715803662754419462386907473633490879394644800372874684001533132007900576046539419630725650177587227375041245502354839763250453589511587203821899335159731615746495029025991156015550373574523321487012080776647161675086103167511480957077249337638635346251776070860233585694290457309120936014239265292080722624356083946348336023574499195086174060720385501188482190956954266293178541856646576047034093001732015282328149172978586578809144613537629038347545581890048936408138587869632085975628514887031443126896680066728529380007237259847263404440836075846740423188007590852744626319128236324238148853630128751909964721556689417918751807455713687502178701540925132342866532870770294261111099058253157064625476457183007582602685603872862321125797886093801862670564473034810292138118038914353821236739534074462953407055424473056300184751882826331004834280878482451457534574074901067357440689609892487108856105335625490147790803684698809709049567187913295602650117892096745482333811069984369328345068871434856942242995706576516112100930553903066571416133800239131133999299612087379397170248262408743943877852744176621489571312336662240635355330692319310190198220616402963132088415408547274249073160403952886317521895321457415705330204329856718678798991242340389687274450002492411564028484618444416537437863657599584957983065445794340686435854229300436916193564293846770882388252159661318871476989342559784636424714442309402404847416643594025233724877334485240504696808811571472468046563576753629639920646640219389597993230289875073968391993341764475992352779739267396887880460388234780089940540397137593787682642566927176626857727142113786502433356352508159458831841504093102816542515082042896437017107730557868968511120436491886914375995074658745620469071481491329004302014361130324046530119332605623903972536796206103698176340424260044055229291545366045397507312357126960876704446046022836758473127699731418762621981710055993808047027198567807645411229484720893893922857528487556127419108289941803489757452005274187827890699791926913455271437239397407526757175331678100265932314149434853971881339988753979247327024196041725543638875612757723043419825172677753291659629391097327343378554086283370432024499099819185739870299837145322328315853341996584027947736318285877859614252833430556258200505752827272923030725430461061566887937371503251305515736394354062002529804898166576863731167914282051922956579076607777139918993096783614139574759997319475050476612539596652395120760211071807603672595191135744011901575152591019269974653851330530494030145285466183845904097520865358025732676930367021455448533294131897784523494573815842012524505681263668684621338056764576774094091099108001310549584042287112374132317914328392162415851102772911636726032053739298631541826659861473182173927390262009789521785570705459973166587667424751081313854349168474822739901985410239198049779770669600630463390492895511068315156226459343661787381235848090834851854500671646822317688725146438353763899731512376787166564230909504732858943911573263766064862690574039734028571253748786963964460198466029582710306247092764664146156181899697726360047841176863089457678615130537953638070728240042708650480476130571002970645348762947886395746129103259521217967114624155004868873476880217881130156891153967526736906518283822667947108033419907452399799342562293941927444507201408664409520711285536585660271630905098446542223733574153435906700860725809519855441084768085903893446087449764982226164481276690789208328578741903256008556356653354466093376724342901385701806088104411777099744435025066762573629835226016328644652750718978770392457139410843550014562255483908822260973558827324719552180216066496404833688738180834225664760129094402474480282290765772934904339558878567431422892431858379262707185813900789491981526127966365360831980260233172335605955272510383902990399015332067696237641486851135077474073142633472228901343531493767681806275801179574353997490080458407715160445406280707464596365850954223255895182452874644324239973342331289057742229517497797653140657521499574130123669437119010646901823173665819281099910418452945062328775600552179098377461140570632866757303393319871620835479651878227540354353159138199355230396496003799334412029770704831704398242497532894267822324135657146331581206365615259256159398701295446858566399816748679179557600716212413239663912379328731115678993946210546273497645087359227958933101605655030776487756917363295652374361215471282052186011865519017189198527043989562218359943560217876856590228989425250842734000867258105265747650235369088531516062947599994369042512020801030453179760818800891414714191490163388355061526310092547199929046366188576321762882660815105587611458194487510531509991133282382773595752894451644313974524905511881298708582927288093878114039466672038436931522431606743782045963472576196154532684364171463697574869593690512051653114232076966287293852921957461937908340252359183841906580783400628482371501975670678210648967436533168142075779953336259315355998769539020043089866108342669021270084013315298619811386677394638022955412353156353469438227567674404567312963405036795045215114551634488994032981629843054338383693278075508813873274135836740310250320012330268028138272812477466477939752813843648210312380423018814957075565467852516133874094962631841982429513741637078500269651509784892406412024518633440151557612749416540171922944054754213858531432509934791081430591732727808747983743588366338150870558614597917004876399976333992127977871310732781925473920394134420589219510708817274152473148321903801174099264421544015161439459173355773207712982228316956684972967224405291060174874796892837685827722055517691968753403997169533836603041014719331012986599678705242387861879953039118570262123752535246107258100655196055771224374708615828065766340281627454515944779446056227574301399274062431252593240089983837070811424915573540241189287850202603999982071847583106444559358060293417613079870084549344359535730551840822198507024952933483142656498074444326163144202213345386660078701481653067020812831606227911797749642587421118493622339124451546657959199232333511277883743520825616722286063136561466610807462067303907292704077180722458783790594028690110982614252804381874526090672879031235148760837514235201523725265867496781425158355944256026714022789678382867895188789459280910962808980493966505410441992524731886262479238043483259787516387737592130411905918714757324494695277929871048894806079760896516950621011763023806340834599575697399470589722854986160099315948281412570034630286054899006057758114148993861102610680300428740821297536950396382815521835605160019773049833603375997315397327334263007923592942212673152137991996302597478453876134187623123908439062084311678982682060842994006101728642185272303303588102750380645080648717283455599581721852684994629288274688335914593004130386634236423858809622107686470789762609697480182173400909323473336200223486562191782295263930181777364202053793149951104164658314809440990668683310796375303479360999302813876325002777744866031285021689801777588837425500446997826680201569016595428972994985741620480614903659838179073158233334703264191173180360533204211046706414571258453264198729474168217922332592230733758547102178449530141399817693430468666303738689233865732224243544603247846622072775668167960918389389872244199969221296007008575145854942846724655874554218967984475658389823713262340925064973765065864616527731645174190830029728202967880176379297582579515133577794714746929666248754134180860129679411423403073987450115673440857846367959631640623683141428554388350015133533122020265870119475553684565720111737513150958907687626237994718189668197945368416618982251549677959588174731975125493672295812578561503568101903149883061996490619779734636356148570650149772489072748342511875398615639746190556368137561868939014243788628853057434271490811176344072634420662189776901343265779088607481377089513236143064196763416594269803202572351799972251507764198687756973125962531113803207394181435706418306382742325283484455061980987650116700322903702674013564283230443895974681905990642686486353368721227243999701679734166391173213372270930161549828649585596035189652081060178848485316369953564910135071777495672813314668510331767747604986972382895700032702762803570530867617324496895547327651493761317969112693308950571765194908171092446761868221358552260444641489685336114352920701055175926578826111279104679597743525022320877522413753991682917404096587321465601694772302998272902544756197843072539042308099734052936143694037306242112361426409077540032344578108388395351662907552834285692260610899925689663996614730218882758449933323036460553556240928484090363854358267834237487744064571156706954093456267871495425044410473932672375131595705631580473094476837540524093633706708625539138374828817034582685502746692838377570590578708880471906904681242456543308891042029190908409653538975072124404514554078777761017745229140682237072245256455320247073344863764272483866861428596620582392289046138434716061546920949647144466733555244170926139422530302076683872811641645826521930679658671072021968323609426387171425906817896606749386582000374633997197492607625561326447872120654007538577068762615290678339650055308709549650816136853303894040431097955170620379903558027381983711179880949151892395830839886802046277726028417066899988791515771549382951949604535115607971446446759571364413883253547208842254855327682370373589720507029569662129412975045636860957493638608747582796604267805426764426601819526950455161506426816078955342083545329743160067528447204003013932026802236471969820714216931648736237469601344711221051485871924287582713487060900672757447192582479300430168927994505944359390295837987463062216481085291983408795078533778265766912098412437936554314147641802335922735545586365208418624878757750264297022385892487763468294799249363766395900869602658223673931556415175703877391051399396548399581306629394800150030599017408874141181325034666676819739522789760466084290325530481289516066924895821023983480809133165082559230777355713611125782408778101015606753399436459544428402103061879632745381347299856381992682157291687695078779564574644423562580983245584443684828879019853152223893365504350053609036340600739621604581165761589373358209852068762421875014649816420915709748485739929532358625697262305845375034806374627104388164426989555085032664731977189071177024375118459575109314600477235233378343517167513752425687417932198896826463191185453008276045693700587253317669402641989964429870245818256154894300258969256112143085842081499808209839721892834420800851650758045604429218953634469356250972539692990751515650791410545712359893080059801608985004925625462204441454021266006283352139704716563214768534246388115910174195400122165243903824081522166648142517339648913364074751474861417514647035263191486604610338303704461482689316955557604517427434130126603564090514146674044450818531010129605936234604495054966436579217633126785123660938915691555907197929695026895988739771253036988393668015936652050864067874239689844186616736932364026146990264145677634799098936686194202831540710078996305343446481140919328424990109958370479077407379770417783205851731839922265523315647326487832407745643771758501535899053830334882452616354796187456964803761987831709894225890994476154270914156328340531803681619405729146688151721517399333705018942660103037861740285271104171147437100462286825395305753003450338984614399705618858714522152955572600677157953782391990782731707020287700194179924721078421184250853453597115455897571956675958865104370329089667808825310921473870168642045073421979246343840261994277764649005819325619787397004496636388274187015262605184925617933707070294644865757824482556364737064354488540867508020731012507226440010213434593572108307417437813750535761028775339558555025799408213959108007443779594470873824909955510858887340225335945803755393678652037013245933903364559829853098560611378302097992432978911783521988749933820992282556843331423658221443709599025684962776117052193711704440644644254344253944786844024457021248119679616785153218619588728077097474402381368673815070344498573459868899083482741076080812688460609518778416685702750580949120347128983759774794195958159363668051407928624744850980868243857885460172453819190347039610181326754227395768838096766078321560930067106580902413304691788491018964262881298083532769473052701998093984627175747367831954307528138004885953414750833240261710244383455842960437274758024105212844831971314901869268313148190034913274606682512500022073588413111511077676391138966385954169503215861813100231978319556522455828088360929369164704638702264928842853649888445231007131207623168547233046291505522846809468205888623504939501466085260157969001694572252353726845989908688514840162479794930726838421790021204199092256445876992028622009817236269259248452914688130878290904929118698960708856222948554960306781863685384648654080918284802929547951464883703416194354563275134585668897482086407521385229343589278871737528923305016752406046151473335343363029922685522424221658741160044982931475995899480619676959765676207121244313505913057843802162546407160852114213591805139764519704773619528499007836191914776228021558966492566605247643442828405933128736241803482913635024264860073113084954294041624846545543010315220106671679019186077212481034310454014221353851771789486763732210004361167694959556280275811279768885593889129379655210539585889282019781605895925557306969903011494945729387619856075855535235643121484412377369236588449015957347322744151502649855795116540696249029114621255109242397347558875112116340924808337367076993986353784289001833302847796385637691776189050892018320832727188989933591918277131079568199854333938365214863694231219828385876300773637185334550694918883138222524585448316297446634015414925421012099415127598224197523636766685493964712038839260086086407993657655490527794104090742351591515746129446669503574635689263207637692797527992004949426688702945543590208342118385076847557423713023172246928353007230180313905793571649527742670188702198559734045866609257280763908144118652051874012088644977679220596248247785473712756723499260321626237837135836807898527956988120548732758658558508179346337160129671914164918990853298715089445555061303796530735376999879810923560445491899327134344103802193004751307133841681102297423573025919977073129844637847522610053514567832480449967706079101401149470075458817496791966731591050977067079706688152738352649989690364384434487886845252694219566679851592882490163333685430009124236799178962830605819451250877948924567338587113486748503848482890811030701657119594210399204969672887898150405103373437891983181398282039442812247389503445429495782513142993823913308997261982170320851429970374185979441045385233314612547011041079376302391079037973224821984249790331009451322393605894857815656904943800368382466178866500830084362343741462467505628129709370457564021693912509861273288260028821820264932828123834903529880765313842186104604536017340231221149567986415394512125860616894740979997397333487902777750489817648921233739824928115457914021722987163694077057798741881588964856874564841644918684529109636503840296245397864390447831366635390019371999707380797379628736277834582987763633524691471478966232961541426036009914207361216913875885759139150209554582453263848778236776051446047915891257699259608768418107513379340742552173382686400864587759576673762122434093008464525698892740174931720021750426662386490523345226857839103296296192560257243711848327513652258579548937255075919663780005189094892032785524893931722716469878797343425003782521292124302601232967787099989182582359596784935619987182657566892321982823772262121786348204609256104805825814377458993177220511600308318477250878672244786216584744870773291174962863346306532340072486643603169585861639298113955315648103215698114334839468970375447587813140349893135519765447033394395880860335037115921243767923614580630774448364075961475784460080268071820486691178499016207945537985902901493972070378180395229703262845215094649246153265625844052309360775304443164212943314067971802418462479151397517285942453766218934933063061221600326130458195248319373972640686183295332955927693899123611404056849002203884952412198412107547571918848934754375975534940532378142796510660758810895632784532911677055493863929600095030847933074679861348150624852010965043128302530903305911017113531183567497413875094037101613994445305821192390789832663779993451738266901462950458545083427257178080835581707629623944863217834908564954829056369176806576734218154389634362468005278989780169810534915313618021257091294587742542061820864614689986654041784963410731082060904908809526676923470124263389231233389851455358878663311383333819176715833729914564887037421041654900409485542353707870015903767412020110450280836643858970751362927501867886530459571647855324199342562226089635438271827824254024992527780997894698597923092884867902763886298282058684331033436147634464535576126346027909528214311754106183693957625494146443093784180339973084977588291165201882241289042313702769222424813284624488524231857965355371482746315736277691071097998042330259707742245561122617562410844774821850574436923609889404234402835709793293369630879600970950249566003862125504664886984363393588502703967099565478631849061989795084109208776162262133516211616828336059465355550965241534168879301586361943921354583728662082369179562353658533567054507666525344369645041939091992527094645808287431895438980101658259018111797430385444408392827723295606458229092472909497162091887613071904461409722654126871943225460066148226723834197550274801180662640600121878078954277993578059322733088821585542305200042428043885341169610732273953698505265058152629661975438920651559799218922133409121304637094216312006412324404510354860819216941104853898235653805525147159427686727147314847670011466551269124975535006500534607811563445678645294444516834464184301098018643994671678113713354150317815350175889601314708502417807629921759014506928453261948282180159264127597601932755543433080327614785469836441485706639561628779017419142512917756044252299078316765738755139858389031195867224636832048040525583400113172376557204005392651768765529445451549004204473393687290746536290725924215233724119179227472832945520493904051727453331868004511265181040860923404728824971767124132957506024096494932550134007416634527032336965849194800516512177906777758845352261318724562764378944063551695999490950885174746858912371864857988428891918548727462810063403657226927516510877657071215779193591500111295853899038006554707214915268618866356457628133258674855251991473472488899512471893277124061376090654802475673281289218033412470814133966059856121889168287255981009953645091679437537974390758808703492772777863072512537803305456969703573591116352481512953395122478957607107843622303647292040295450899814897540843680124168026536541726372715783834018146380706146263213110946652405207386559105332722946444970350767755500359025245295573333297475802634180116503423026896375364887088656939860695826229045179808476918837106061288718461821512469549393468713876999000841810747430736240847989665789397894641610679576067048344114829306439900453169867937591751106610790508724854812751680113758082418856489137693398626405264401479496667033516844393808374045329978151386340972040158379091293627083073513869618447164458738551538186159500061534199614857594669627187423421635877070906017168812636925884598560777233992703612268392628916636779938911240701374900658192836050054144038314701027675149494893168575203925999290604311779008733290823844764500908815474388650638636452168471960125540382994288920388722011345372593813365112626606957898727898460165031414266299346722778133857944341608602352777483822476925941346481227146894278092472358287341350923936420164749282322341788148422982729055244160834114079079194496593882774731816026851730200584937091594560029838678882041823490950433529444469512895927796363091752532255585793136180466071731547387643129233860599265843092057163862281721942283605977184875350065396857537733640010963551545935415362983362073045835492275110571055553793174066506567499610162189525282665261816811532329514369337047703450639692537821417504343567326325281815936600814313387005314346973925606646593617745980577522450816552484353924470143514265908107500519255270070177264474040838547457253917493818881689626479290578888239053887134956253519060931782678804859279905269683235109432512176936462650088412989316706987519912755357844413316968819936908170077196669848060656853165490911871999735614863127356724533398675408405015859804883331093994881526559829112944107853734692343655067350393384790421320245218765277207589869705003155279109872801331168148104332437239913042591654753628015103125724988773645405183290280614842547115566548381379860721792635535731860070135855269566734524598277787190321850850231785379282108493699741266024553748163880628113771234938114137547004392295149667428411691060566564378417883570182728992973272596415346086591618245604894931275614450653144380959012756744544895007463125166488036822485362712826672701808621022087568643147795615016126438781949110398664312269992420435202634025201852219325615951143008997712197384935097918140590921030266820833141939334406798379711149117801030339473933092236393008952085664436047276438644026452628122096586166243564751832063362057694737916377397421251916503267538957724550887641264200319385656451493196868473045344170243805755967256474124019014232590309869545798927549024581816490865156411097845292777466726341499473373210553750447096021799331502799524615061682732738054439496186703030939150517422792019924306989289725292370334792752277735112195463364803045505538046976348445287282885393598321031625138972252418952033751348769458503759794201546002104539875791213858977714788767235916878692065747374526097181049469923656114708036391300306334366449934224701910858602983854575079304732946889415083893297584878930746419269367093599156490202838114436287124383534306050723264407002146072892431918026635711536712554564514453887558324068655916472258707255303382145915182084671315798216941489845187718805134604303084943133826156286177577542317179280127942277588173956193487967388227534287908798084044421524387842058837667876755946211292441539382848115089532951047437055232679405058926051834372666314594733234364524520470861666669687140828373316320423055091738881521824099348732146615952229497530688194005655240347812821053854055286195060027645211054373806253714697983755179279702305854879792652448639989815587844073733810026108318588552229212114165734099330247393636659501303730038475040064965391789336976651737388947530789696881569606091227439003909507238170484941715629604940878742591794874705044933700077168564148641332620409445308311810574489105815479007886256211311660679299437565627263302365280664084148689606669052278637583620919008925725948703415602814579198483281379655286250605118941381070504138172435573139506468676169594377613023932085447310851807403537994267945530414048818038922003240756198628300535471129431001268237535514821375568719852337161573564041161967570502599588709536946564603088087971069881273541966915246240287877971067024861518288122054820967747886627922930096951118040532579979060343593192425869293888067079240004821566142499436944156487204273421742406685240078045954036004768823257037228143231297816454272945547085048520824448546296943355033815763851522253808610614885350441084237577661489402168066736867164256887425764798971001420617978074226509863897966922360106274195185001582345572884232464374511811579565615592332358521711854119606833079326324767823250404164948414919206932229985136062732777455559607940848810652941009924156101799773167841728649982128421992037781056341082080213895378921965048040277409848726650030825665585278569821807706763172898512068425136231544395607320408860300522624830369269173154524108054435116938796121393058631373988386312517071957278122111471504809604719000098073013453394406990376575792667015220611536981761557074159035076891276543414905921835705394999506672987863665728250543580204430228488259771872332047091139387263391173909956003678162491542060002688955731241002388043240892376238577185953442963949584191587524626822193868451453071604342436269994009446141135683939525585551579007745467658022932835033751571285550484945793218862400244899304585408617799394595145480116531566479834199409450209055470195258730265191821807659331044983502965904421996412722730268127253362304323977938429654111367525543422444231464687950620394435049592180822898920499519573968660269991852687015205660071664089725024614942724460564131235376546142857856480269294452889434068106152350982814933742052127995136158959161229841207014066154856272359803464449674356005871026765032088475201735817442427122830344270577626498846814354570512868428764075147222379171395672822013657490828990710200647783865704825133612373449467983968153961153537687179519756503580971899075830752376145959404948250675733285120999644140943769635666227570320990814344888395871866409745068009863274933698260374206192822114078412462839232284478479750463597296383663850541818911842273036359909262138634122581091927560138505940928055827418656031786044507351992110408028831272331893993219062404202853080204017232213910137349717953233350406305776078588076610979477105653979388310831996196355392338294160705943297913957125263400869052346728743173337092623413483510009559166749726850452381984847887361192497517163155611152024515973387715316302739135479670298593724448768712302217964607782543848826314364778618202344948278005608074035408290942470209286934509110546759745252035656544454849873550295102657341723270602348573206821644624681330483610834396457435217296262565857669046249121329002941161353125244116982559082036454211900199301018021973990635836428899559505802342894067375203373761437465081299036527042758143661348030020681253402171773234461716773026313327462523738801737331619902064116548224685929599368542996823982591819196192527666864058030966679346885643657773066887217486750119946741182736843033131113172602174800308084887775067644384316223610446749339146886923330315530163200474120996066490362406381996042705948587764650055932363174073969291290424789722296154096961885373103992030006302754324657114583201388016915858785996461261290677239988524860886548033792437118132390678299414991678544814386066863211873172028266456675978927349185094324388154440604193660287477494222652277473227250059647238690746088357935295317965147279656380937669009053026441156380476483659157514437114480092962611540082307160832453145358708071725660383748088971746909112569021282969199725130897647579761972501677622395453926992376021790997285788568241184038688309560859690529792353978329048119390236849197448757197699109834949407644900327466410553761145003473400944558074881627668560307427381734215777897139739238295594221806293347013417651353121680107966027201046494464332240870578907946163003258826569803169664831230998181920048071167455166150198536126330578347616435193912300445274587813524008802720015413960032329146105663181105451313154532228793950881474235544915258630380645743696618467372318855705193921946523775336027441541381105334720347141218230253611900851927748963269310442485423547765366693569984461251933273721609757919246721149675473735185146947056996964947259342374543263868925404950625035504724169767734963869015153166724840315319983309421384802277267749927754706443551714210528202136765250975198286773075556439055491113014644027503570080759651608799062671953285304541834242510072270925557333041228524730263555545787771194697851003240151249474515562241385736839807569804609663561579305097681522118791244626769883817104317195646825023377399362709217174710083362458666225767358788326949636167199331208225055437274599416984546148486999088473789446725048932863301365148158763457566868626019665316396113875758844430840200981645251810224704989272964691165084144725207776102600546017843324018029113959672650475802502909029033330162501350548448044620351848054668143981787336493229047342788461837660451510073284016965559573837547242444646301054436598869326253117025354056215241794269369852158413994993708542536416323250028662394291623120610543212292959698644171211308447326550154369098598706172065031385650898339560635684785995764408515651984640503099545116452911451581792519476199165774190971451583147361991112680411984623157050288018544947895300135057571071630381974358236111388686260148992138804675374288045564698344023888397953084345528845635061105377211818737807698238683944062450103639998529616021911449599159041268679884227126327448380424935969957699466426949341678544960598920716222374073220375732622862548843997708418714541774965305758591020914660928584316269926337823986286934078668224787182267890239974948716590140493783887595128347921658995130810901891518834251829407778892354981779682385395936310113853039630423979384005747944913054436219246786559827989156480713790770959960974326982013194992635313533924160125940236845268375100641002378214951451566974863541294331457160318316016605019787456388487390100797509953516037104715330953976514849759773663206382925383280647655470371416285418699886157037862612326831968307794265976500504977157478873578562489252955201603584235126823355455646435070608535905165614211632009105183885203400574677176617306940497793917008157642354359582317305042380547496025674341798004643932781531808368726867907465291012716153982864089621374863728938922667852811015124016367163531631198470940089534556467466876802044297180600489124064495674026550179559185072407802629409369495798904581636513689551538570258242818691290271597916577701696433567219282514929111741206679002703237487882989087699495605481075379498787108858363446819848841377161769468515811892550342430778301118388086201602144573685451375510882222713673670100591992370153134387725959615357158606306078366606395912426351275030150959074347411118800540136575345315784543019132410084016102956682974371275969260726986913070841515751945668735738998899031699459769433572926122047203812192219078117419026761193121908962344325118989387792573219731521902109452556975796880090909038200662951660636462521433897479864217120614572717248973826687812349323355858676566177676834167777093254774050490373551398361875871986402966403907690873831285799250001398951907853882148544178814070450823711557411906732262860690476416913864512651931443935297588840110825520105885002751824445891842921301850732324566390155695701374094454026738622436999944172520783880550080413050450990017533279340418047845535965661977025707446391181003266457310460617120647301871371463255555506216401523670656657699510537477807162592464460581420297066447512599857661961006930639647081308493051473414842651834699402267879477284026233520010534405988648981077465776017395205999999338466990420105665656707801153367193460408979867042545754459369677697802189666787844754881415267719539401132496304722522943362734884209649459414199529988237942504313320669585972207414614132744137816755026408235006896915887571480717108602080052619381179701160848476332072131799773652307769776804072761023699110248882154593679231370485532039137313930622801830418543835443619494484693022881971027351567341603396930502454174713030185579296026899423209615185447197237546570767218813222282187680895187407122472150072501140602678872578006459401856532487242127958003341051503975269768162122566348472789700026715805343890522830108567568064572539347949697522146279633099266130562239735165588152722221195801404891501238745178843747330111746104397723566694299807402345649384975314626409358744462249143125480581612561361968304233600683024830073426690016190415893989949240928080106393354156973534456645203942091724165255146000501765238877589831574755566585950281040301336798436229808088519701611167407830251617648334882257523981009291845107826770039912008326568238987080900702460112638026036088194223204316189744378790762016656715913668647579500964902400595390645234687300880649056962933112173510185508498410923794299814250295235828997738137653912045910530539741186700104059384894449897967441159293376803374750793257645392978848157777504680602257554022663367394845085823071250730452769715658152095317855063419445469927511617581463693928776163405873087925099248629778054195307164484754323534173361961926528116695689141714418727396829150154571234514484725616459414292337516911882008704722238348162436170841786473688867246781256362792944328639752552286876276953374330572705446085210237225273899201156682133547181872386001643888430188081004657224223017117144425224930216786606538320968583087047400613108693332173620586552718942106603681161526777872290418563388852285749790871579430421561944245293841083586227336603024464599468237546314584677731953509861069954644364496142588850852458881769228566686698486340748340889438071425923642574810265488979966753934656538363441401139791356130179496159739839122646713398426160227895244671970852643524700180087033492649310059213095625929888123991560034727967337330038825433575000878515526338666039642396521835951459047524718254539585005351632633501814908603654786889974289041420649086163249807604288651824005893830110128766043921803221737469805876747652156912119003814200663292464732722939550822581705777657672734195006295111267013949010772896984686613744217180603526883282367390826475275764223907406001518542597255079655985380986113456844930430964955897951597166282216487376639112459773228935258037187035229069899745482684939748511332146059277396940376717388687054019185616828541092508424520546250276200781733182013609742029053213483263583783264027241525733611278606634902038270042008498833718373442874825735001481996371392516297389160776942831426182014667672390911330890242297579798372322549492522719469689976003006250886059766292292703966219974670806634794136449377266752018360211718710330319599843398019091027449613737179835017523677944623612832642606192630353334861082122144972205062438270771269789762077388662487198171875787585134136087990492648164150059730878655575070186224325298149258920160301063478399720737407790618210141265619570646128428838599620572231483712445574399556050133494228043743340736535531005902639544646884878501296170596859878924160205719139774050760056301620705298670057879419286350600508124798499877876236471930482763220969560757761230104011837957531414707070466330957152214623180596922156315722708426871358315484057700641609121977185317930030607058986444524739287122742700150058898170055646980161880706688473281399874269643073635381479345329787493524055263611354225852887121449947982375798231999207465875198314851118912162692731269902006183159862805297167764164858837286428389032969879197536248070055686029603356933234886368526311631632792580759009823964261740190726960922395768779369266905747167205802682305053873214168410018804179825644594148356414126282895250170109974461806080124015271295642988265390460790443291752972868506908960434770544214290371572925733153010978760596378663500955679747366857622489848398606087805644336168908234324558977538492050983160268556282907794355659206186029927743351647040071546436109328291787007365449885189469747033529029968305156137808690823726874158051211015601723439400233383701459841491304864383469660189597434740958491620935813375320696918982729503112231694911944492526319616327856624060293220413465430332611009821092020090760214660706281838873920834151534769487724058353888021619762465697597048537759636080100238137504456756710026751880586910574689644687584933137985623653961509056427457858535358848745433680080130977117607631729390140108166571898058679453328891415886610670052025480806585755845086626251391798579727026151677339018575160334211559572244784531053339995750645014017394385047712507351560388555050756435147018063584948342841773876431295019480929340280541163653685720480235780950768245461602076566181905726892983958163112831923257264190494918793281489127040098757068212752986758332302228455093805067437173961159819238828670030080909842810095611076315970485126424645652948873028618340151300348837463767224663067877323426060099622275877613441068498304055477133142194831984326204403337823992010366646846409053206466747403248947964997391914471505444140729118200844134895709657275472326647669935418494496525894598651049427866903068166796625303471486251180610001470215443936126030786208621858313585968459160484104985768184706720307158060089895294941946829066618942239248011143015128973926431469052239408653271053220508432740898985540125347898343883117766532780561065300614170790668658566415336359606609156718092640363824868220713700445940799898672423635309089840845859275760308996113251018103367491869648869695839474529659416468565386400631485086853055991555554190284296937747439655663960013198650241560330346870169704431137883846238864415747920275442758985232486286163426730553236879873912499058641187752934311319890413401723979216570429274579579309362494709115416711213488463621523911011345505898466039718695591481736375245661175931301204059892717085370214270883119845938918734508543821640114946315562568594629102298927947957736604188017850628430056688577647178212368187307285812400464566470711441663004156345586070408836321036649526953784746130247951585345382403383694089012298445301166839056908197550989872399606095317700811372539538822874465199353645300167758088293072329951818268517202023570907468373013376225244450730906704411246206644588001483496295208082103890069792904790827955041613233123015607698290307020413291944867937992805113448695413050947734888885709564642809183542358959036579561927245955701911520764342540301316451672897217814359301903628566233294583076989426199634912758362501600519001794217532684249936692435547791998324615596037032585461210992232668250616616988472425223854062004601091825389357560324006054069925534653194829034651998899053279258585495625811241826660977119572777560995959934535814216022672082724332079181072564281109512136291680066278885095102380259746959529654909939409539715387350268868547976010547918438135400627114226559170236947325423006212115564219945044952404424842083560663968042304900331841153331156560541796396033028041254862380597330841025074382421231898295794212542289522178778800029684479069202295152181844268058878166282026992989532151338684575354682970374135131733772568926546193417862508955299390634467700788632911005372295689488226197518311104302982817580239977019863799608844155419943188865169730146652128022592280922654313586991423602950445480726248919934670979112113618664954859008611466306400838677960592282464315324765031385162434346560636494730694984994884325017665881974724182300767100817350488681524417090905725063273805115063765020679162211260069040021153173511152714405222453268714881409349851850577512875058497690324333766480530817844826801285021420801003644011767236387515559929130948740163787635414973673567210291610363399447309836967282972164801643796032070889234245929908471050938817087439958402625374748574109906552191746243466541525888558553931754260717906543096739033061744742491747372526073036977376520384720252114972685895190167005949235830424807276271118994971362232847492318121429988481528630893978302943744287190587943217206983157787198966539802063201028115943385785726082036563805632836401538123940593638606812281024254220302406903354245850298849189825413300266144983317026623323581881467120068758283191538269229236606336592219112990285394432600713636090299019580813761981119945000158986820103711821323425344130107154755415413572165800457659665153298470612041703607418415954826645249791642861421407450758326602311868865854647105289036080522436562511377481028255343886773456823607478112050009593126686823804808099345160211051817762701376726704429257872856545110072515431376918992624501892170816439180473306926354274125149333887472584393658108810552210992421629990397342918835998803528342434518460344244054642750869414736296945315486405673944441728413148807856731178033290242644764541767601909644736118608624354118276626514750078581666852773935563434971183344494548749114922053488022186231560186771623417521054654200931189998817112409538237200982470127840965314363567164467966913264853271319852991100804721383438424694734111740610678648485283797338223203234514132765925043603859339358861103054481649793096044055061482166531158251430846438730349610161175457144780694803716120950439507334154472979111400135242610651156297871615043791652305525533102807868619077647293947497993886619056374768383739042547288891990375525788700987970816250523946163189707377364407435728513707083813771129742152958410694436936115563606550485439859562268668884472164700254910832660894204720743144269329697186919570129604874777330363808074832619610156977497068716944020674456623930274473554354410381289575269702153853984199571371305792438474658479814131316288595485011005027548612252044093554453493676944752669962298279346578131176423017380268243138321385686665810804480368962571737621561993150068693758998587134423897422426259430549836719792693126550674556669518262721344667273619625224073178986236367986534093488062724710736418326534974082828415222108828120655646532176671477341441247902891458829636921596730982886031466443080528797175211961006813404683125049887335188561615177394538537466757893099227290770195446675467079221102657849135761969009710256429118800567597900336218066549281796975531666983686237189123555344831159508910368954247605094013289567450571054233185342514075479271831370932119245387223003826887695212432767755989839000132217365711973018948515810476649655043462500440633495431699022270333553643952971448615859653363988277799718363248170591348748376706162029038326741893446639494586264536105512269194548658306738348330372985827413075142932888345206926083009354745788699875556213024250248865323222644329471794002182038765985834856256566771282610802108240611198733046822505345230663233470452986800084820892643302862812492243081426882281673550476080676550398614233879681317466949850556603262846601846005444302082642895955052244154913673031851539811338811484427910659625322710591477663319998928394692701046497607388045919152716626645747613915062790282853811146233711615465202353435579666873797058622682172649543773376471267916209176169832755181924857078000529875426178649287919432635068312664201247711100546449121676801056897736500368853421993516564362526927729261779496988588086250544774682192398106828441408043324611872850128975980138782464564487657267964384565863227827274766345485037286076579977781702996207315467642985929050503260077085715708759381931855129983159517003428335204702547340641836068830392920261819824314385525767471157782176798972558513594825703188704341708707856139468713677967333905031539115841928290073944801458777579982335615146629196377608384608534542168032665446834999534297446047099924749351104533902225320086715951517355396588934696059466638277743538584345879564656368579181307624098740568165196890084806079924985265169847406455573524357101427907192529964435681881769512154731478678513587835717128592442526591068718552459205467492738022339363907457432231664224723789149637701117909735198581071022688250001768899891013373946852285428027684889141926513574951515334666064425466185912222409168447966965300225425116341472321527234763073075697239099977828117947976641455286927620741904415433791742007252476103212992697269207792239162636825374621450601374312474821256928509597203890549975323432077971002981122631887123472209563703920410006850080552758637864087545351478434819520803647990746233721875554107429650852270772735397629516970467990453652987795640049359738915773011673669745281892507257223322558874101643924340407545628403883892754145010970531935004877622093311572010641435725157698270449234972968582892211385004146735590642633211255117223331775540705805434679950461529886964750267185594723407014921780618337587375244967990446361484101440667403769196896637744725649858081652709364489708713106317495924253972814446402646655632327615587146705899366733096808167401741115106356793681617078417099903230827239658120517106378018761500077087284131323433694932387960856561659412934688946970945761951756454354398701175386286682014249095386012933798666757706221968746476833687380622929123717610278347840371652396607758419738909223838579396139926328275210621197487640266779962371546726131273414490524150196396149628885943478189199497017662663530901038918052485937267712532872548101668518676699917323075394503356336628581681937445795474637757002144226131381788361026403777874063227552463896194900983602555870362877585470636503520564846851247978762248717219250549562514370643055640155619120412440106955269022638181026623757304671888920163374722295253522095595695968363289349777492343660027919203787585256002331781788090886871155608477753879129250643104642348742803811796428642498173197520417982187015914463404875441541069166109937817720442092375565395999830740026055952853281224398803609535075237932285595211556295077690927135410234540734822305744378493627277828158493018611811336452014414691618538529075842033244142601967819713771158971909184175317533218428170125546664840490343787730998781304689407407016361789141730639259382405167779434379594495533706724170540044804747988382188002723705274535949622819428137459861794288429841955807519196335722923274016435985944840171808983386434215306151479820152886508977761453840195273783028925688782352404524956690122884609955935509707963071248174759290569460913724410385538807541205565172390560100203128306370443912738582166871690849605549558860887572675900046790273272930855116929225201065860826589972578828262449413748749381074457146191245082498989226836746234458160861171540952239845474385235743706004857215654650007743407830096192219095479492753936626285442370607108165656232518405257048954503010742090925487747037041473585714806141251508275752913972238823802481776789591328568077447538001396490428922328467555211124127811712785830328564851187150777224889560484849005709605968612901093812917571781134488735939531722897028015958817040381315026438294013033646623820423056270331722359172924477673879854013337810335002511476155206859134911394792056517399295438475270328815894480698562919949416521231889517691075784922286524240305184989946344087103633885275180436162293609308908985593965690744697643751466709179175853256882075525011058062513763020831342939940337629988554756722233798009256266099885639794099910500546147561951391424551480728052640481088867259819723555796410850260734464822428649274375459420265694385971559470776657574635673378851057453621114015181456287448865167363727927668744538595387441432709209230353699493719300983703102111670707789027333688222435527206661956969345031327281018626296842208016020535549337032030414695710230814933970346211343186794100055200699111799913893060999349172097830012550352469157901060755153766062070330303218993306635894995206807013531792388829925582346809094271034136699437803761935044043207690747224881522727894037283915234501619531511041770015782425945633164378633028938000677181885398641260957590039582952407217544298973928432847718769043496063321188496027914785572730076968745558897798536840258241709172627997976242314836029891360277960192614073070910996392817808731418172836540064181785079706466501373377667731813968044997942543197304469351346684452528469768166551962893115951902206822899411164037122971245841893439306320982604500183276292628579155046439403825477754574728666277133392055247410303760612381137157993575290072669784677512895803741580926752749942859653424442137506349172601944080505439371912368588887514514397519690374281033334524487685090687169218598925605114806538596798489695471096786582254223869628930966178213972469769501402595814140127938187301252415411068267315625000767418810991940963717871438610080697578831241403438639844815414688749413598180885778907060498414917507726612275431556369403185710063220619681936367026966059879446450434296442666668701200317653304536084113865390254065821805529975618236706686209717134877958466306028895170270412911874181005101804907793814792111987870666792825185219378634280354449095695758167750941719159796969276343944039150546604531433084655451949588005211307825026842382991404062446269397712200589386628384008103617914276492368514900638720051822837228251730346068324393845768724210267711027424695066834510108510479949152956959531288596231280981702470011852729462840818785402652448148835735273650358597717645219672505408285746205058514090994979465008576959184628519767965109207427308177432253587943815911814779749966855377256415239607302097967552622123807942316794321471281238117823502159385383691445778764604787952303340311994459480457966774024540773360891169435295193703014900416013753843940190114135706647795237850061810053250607727844337231314154513234667135640203401042858460731494848110680400666151626001638538496288539621215452397770186695155450417558590805286895024107585720480373906654444714880134151673994055186935635353275656804823437672521308917029216169250281193897489769669441543579433714923576926830508400606555479331770050249994926374166932664842420838593382538730665604630528183996335784796664073176975419858673573042652191461793121384403338472651112020564818717667953189359123335490469825582394429146005617757747753356521137242887170973409587070245068132922255946068372350483214454532994155825679431488047606688097689813620252309990842828147134813246714043244244890814661915750494999670150411284553915771392253983754187847515351248877903653576024025791833493893876462746115803692734177638459878969222956635321602356665812966183332536806591445288011564277417231103924492030825356183622375723606950296192721264908781632768360532610954281451576702127849181147360471136282183922101479306597965031080757601044347365233584046687737722082146414112486489939062110809800702822844874871327283792941376254964463856395000106630981721630375518666173587198223999104898680887524152466755354216749295098153162157571161777173033194672824743525737599955429596570223961180000487049521026997587965113116086617183244547410187860882800648171128817275047820077153659305869120733037484065295856951102992365258962501843469821411091300085280269051083640290158902794241816925892112404793746571962836328071403691131321135547942623954376245616189044977813987028723294793340574546521083489832304791130548874283988458106861935076274265059402612506335556076002906200708448621803086130594772707834424384926162912736699232017106994162474723506709394180559908071729887676870724102141939421322877473631442456364599376207541693053196049519438287977465738739243886837629410620216587563054969667243812714484958758467952738196748811592387557609414376938002846650776938425403713534542464609951285238058455720993793179293000250022621991219708336757571842128006686501508481006695297058306518611053605923189973626597744390738435869298342872160417964393840756148967375649038954432908024938051419485009934235446819536052222067679618296724931421180972979687562714497741861155699493732674945535927996129967493545090155553797046327337404739077692205072902696258974721155396546006140856223188633418377257030161732425401623012651439885951446007879952252732831640548968425074333732256293866438773957300345251535628004549177212343761217694602066251400078957905808973364193494288997858901911654428736180500088934530369762004819091669864411624428692792778485589669199638425028004367428241503074835964896112372202672240659984421217326241103327794004543690873558398727348954135644266191250082449634060480846176227569286375948629343491163682074605385288177566908772688430166474894205677034325378824191849600794407466019998063810073204318905174616132697080373352426928373278264418090131022278413281645380742967582705204373899389960767151741690329433480291866215345346612228483232470200716065496309153741029465643122385413393726200423681368314833004417756575017444839816712402884091528037401140743424062131812492075209417359137078173113856201243935185229698191791872947071216359491128291668511244796280218655711273063470867192785170272571552777956587157655336589395589274844185887378842049902074105267727550761987616724459744274458662115540471090821432066431093448447101540883868384563436921577780331134594797136597711530445773590873983849018283779119243088745000303935524422807480796472269449618400582345852334352003673686024256712385981268658440693114982974946727389569316442703512328788180249670626313341521264027462400044389137775907282963146166859532519737530181664565894299421554360065769870381558567609774165097239873505136498682927283344031817785048816978855006212335756790186696728708813183351905271539330449655969602439907040169057978871200801640674073577222489621672360477054279549101636804534555839088706861528721649096738237217280649656298494225427353326581855233436136254551198153635111392757694979082926437181339547689140875960638955098469568190724488992770162437369524254708114497234996377345091673026985259932580080288142319114063580781494099487845260019720146436243937119476976008252081837405561735341646572335921511590715381607890852479276000956913181879924644419166149767141944001986745376148659928283275575046262383403788977105643404643335971246435128302927811917597783966938549014748057109013059378909376493553093424454931902672370431859866758892512665736612311885166266065453059742854157089501997479468953606549952982218857581547280716318710656972440353037859884673316476784419814365626992763157835216209321667991679801611092391155576117858380051864867412270485517440878930029532219316002456389918566011210150663037357609239188299474965347306542633581057811219737037414444137944644119903551218190388591488996969403765543657636024591371490953701858049666086028943010591613118609839857552350507999997685548968055531503740872291046801935194521482727321572451300587249278426553579299647292617793535011857670193482833405276499684748586729020672016892777130704110544350332252035522314522196444642188013155030574322161726353447944955395397552707830769215541056707221955183470125616111338549430576758194719439470560234195397779526196885215403148182765496340019264042886278143177416992675215246559198439546922149308635959792773374340704614359056091997995279637781949237553875256962842454403296072485657078590307320483641721272682617387754493491801993861592111522558952592596769623306150927514963163959780683830021189185461391158328100742383558350309210290339811556932231222565038093222591405515158102718388095190508040172341620267257629531182134589407853646318678743649201092276845666554341529149684692773458056978208558453761009385017850421281906743423985493340770714294251752953765708425585304836593803673855524281443145660813674583068306827656282114367993905975440642276764573984304944121378072406142179492748799393644870177060412328037108481786251821237014584846458289074808443736411206700078966557409957695048038366597770961199177462866332545221710546762099033149474064668935758247137371220897862497152617607331330456024851974835728260746886798462923145278139103437914598320444619897669965924032080267819633045356813831458407057317889731384691598897249795221168695711088769112416118359043552068933703167062307749784584645850867947416580606950462729332711665130936171486017120069571593664866103280127531174455459506224586773249432386910682016919994885077549417630858671892695936670290685261762326058420670031761333287080987554576053494365094090831181899108232660014386672933177642236289335169872865227174572276812584965410870074938777987966778725889098446115112908331675384745578642275199348762726426435337906452047974015673868505348670315636801845260415618400487107123716518599749030470990904639272125658917694146423358843221685397539584797534129146278138471989431399216220992885445213657140165123856218189682326013205384358075282320027041291844183797981507137104122772501245584019421522784878228739742779891623876683999160342412912401005078494398448398807949473247243497832772483016942255604317054349490215154065250021148496176815524622425141090515358133240507699470031121551781816665360544027795230233718064551458821171150901553076133893842915404340168229972155028766946625265460386598532355662028900755345734370976593591856409004549687162914949285917691098954164705002541432688963266518972334198607092900346465511149144606422015299366682833539324137455380293620510439909505636638165869057741368932405550565020371058092995969734578411478770665361485595043045409474647835004752089623450937942331686465610484915389869464690888326255418140879534074257288284933652049927744942803387739983519723015710430854028695404572613670242228057533285172574923331381398816200287254052464195196280281993885254237160637657598485951905007661364699598970126931358910491125691246924392298572373671041033329470596486536920840414984498429538592227278464187647564599240081505709508783372062519999891782652918651088946923718489927085689757130460276329606902662415174266583257699270929809566118825508186798184981257061156802265510193469967093415912734854594828702949139016789237200313600717135588081288243235963386293185485642894041110844281225190682287960736803664148578126333045525589505727225860218275702979483915270796717511135119100341913663166271767881762479882229967316854241062981774580848779744296437416883410644710312052634099186086686959236284935521208532925729741146927245258100269465515042306678488958606018401988220829068057907574746047534395530590287067633211510717729959186135976911229817609137510733952640385952734130382675621855983224342487724784589008919401635599199979806255553971519966249938459241748264791091140727918631182115595161053577815182598722295146917309976477324797541892790043344498730115853515448817017130625840636116806901405060872415422808378526378575488912588074623877280851719525188353472785056671312669004482275163974234732920832454881060684734822845871468616554572196627234841458603312270263274393173066855804926091965766039252687377063417088630289078444535857778347459136441026807315330072409805600087793636900919578996760029005545075278359732466480307694594017803871489280710431232327950527393237423881211299357426615342930065847276304199533118926750532032477527831649079277414410588709545032245444951287381029078487587280242646721315558375533155555568935399490449640086195388836931820349513329041179239029329674478108397769496382056274340873296662245552236440718764992227100813830116433977340219393346684471032314447975945803932461902304618813466630763942109251813930377307111672008428463058371640861110879349020390307682908259144109139316744950944124325591395577429629724708572240122424077137852360021199139535715237042326673291654404872633828152400053893552138455852696707392853718921813239901426434880783545011164506330613776130195383781263232098811973917359497333062430289289514942772470132644848140454485993795130675514840654113255231611867717345930677057563607127952915073708082858271489666866468030719453420087898284645019815648328484509023648801585982940650623010491262602360602966353029167236123816515716754063067087899299320391742278367663875098131618305663031020061682340745130122140948982783112529327155412813755904812544379936533280941040306466228745808495384868489763239529229203346777805449236866042736806024205441941175914711296990098945866302216787571495675729982986444204320639177235717630280445122651117595013524797762224703277127538825701256332738297134495336791759844793344773996278741823939871128461012240554190887611325916033323119202010356199402095038170919200033777966154893286683922502019218777129262251636878214177692778455760470194355034161512619933425626572962534840068711142676510785916984208905740866924920314220041209192640161804116312423272665145499167806071517973826558616555438559963392920766984781717417610944146751650767901388082529456489133956476356987762708173083310185424035323484474918561656256064374290499898024937536928270839566600976230616627487634602402310000344155916193852528975789916590480110732283401839630632552711894038510547367403635646816360945485668228007966012874856622310108597307427897653051806886967732541006499903909745835093823956245984949698472956654650751635559452741057203804717508844510093623778738192588196153750763900095211538829669753023398143602490518059841193310864834274010465800927617769507484808784646401945685308821592001273148404351726237109734878335753216196744876848526740850048161713049881651471268773362380041126110564073419725107965979273892558640028446097213006789744731048898463749889607110209721231834353669305781891824274589162886058745958454720599639578553913221325871554286199023351178648596000789806369498719773618667651444618530632032030992609143454984421878106013656135740953873771655680983785853599428250602931562572587134502385152489289916230176928634262919175346982507630990135633017082152248741886244878489729920106483519084243878807099245706054881296223339549849547030655917643364025888757536151184715467595743927780745713467502224332636207701503948216254997589452798283174600130033579880445316052877815125282453053018676055551911953701616801009150618807159105566679739228747703507701962731001129618592090998407620174239126849726341761520301530854733948713019607386756627969691772236127340725427772061593224184039406386284493045669876363722435202200535596224926889315034072341857614076306968962192916362517938742985310435451694585486059256164465731567936507126637213789436370616688956998737175081684711934243289943081863382137409713898753937393561430444267197476695573172036378613227102410524167386848296302084180248303078628247892580923754830921435335748752534896569001030207963393201330708276981031635536001174300480548254273157686865118406614478091991362904611283532564823259016411252694797627332926496107106591563133999579868411561498896349466898369535514802192525532445679863580635366067159076419885181938377204313988816672623939659604830853196552684997461550426503658532620085134773712824961921247683508274691587368173655997486486838408711800043495498260711880377858814236210598245734693031783908539653015375202299981159302638113464875890897500800607488810338798922972944147810127584065556238677386056065256940817224024411252774415566324084937987770481562293794428204213218642621608962536463423683771971590228803178282861015093094684664101601885645856004740981505504703338642053399279084399961995895772013989021710172097434443708064740314939762588842763951825307479484020267774059361799030367289671561942400722402276610097855222114928747570524619234015241836073818400107735504851070903169154217156119691447057003934487648841128781257380749620208514603656368521285098910426212910013041257553447916408680912751288200481561915615156593597332256679683691938762952422742954113915305222344768328509563307531968563409210537950108384520811378610111192701340382949547280801572277402552446462938125299330411016557635809744997591321964400287115768413328282583993037037823608163717238594404506988775690976524366576412238791390342712898380168806450353729107191240208986207107444119528780238420266554671053496190237147599246852161337606182519948289575674460479304848644901967196825028601170167911004851762910444534360374311250114966032913640818785310380660145660988150118420434342486224500560902293023943486465791783401472936140543019565616380195426502465855454723491657094945802142954355605450983391633121902571746325679284156126514345372643762740785286963231026352968805640321390266862325180441180507215975885641131784946453530916796304001570769974324749611795940172132350372850991241223933477917641630962727989494930552519364611768207074340761612136925719229742053132304279663850177799762032653216023436366723957547341605156905309866810056855167014215161466991423642285262491583372465881982908488399893661408526251335048777543451244384947148093859713656331415869792717152917428019911169857031008640836133839980547947527492473032435513293040129109343774338474016623193586045179915615737514033775394204996013284557658868608605429094358540542928969768873557417749276333574098337846991189552165987571261514468208870585747390936872521290321745363675752188942616729762890600137929187206685849856436339809445811329462485791273003425735272032987948183380290362816519537825095732682427653827865919832636614216920342381679196806388997914416500938468711385518607588254359901803504238692112746627318371768891452551063744687550546995469608407928438816110567469923282726160254531903814445356497197776804462914396480372609305070583133545186078455933859584949830034675832591519131055687278929093654315479759406944007323402828505333077141805630169578581129264944882220181763031437370321078348472483056894484332753612900823995468730081866078053684309682894498626032352740122225650443941307239643778984400532810152365653711090765383489412845887380506099052576444349572436443631834441601442068992724144956285440911116376329781029156900556467879240696145524752611809740143772344809118286263141646162282479058315332467541940940359113159825827626660868873618566522687629269083760927717198986726975383800493193660793237118337290299337453866882063083049163563179214292717815104752228866558237703343608760691002214551741204687870251600152584392231778065381581104695158217050334988066873949904386151980240740712230822910848252799452174426625076402305070751478636665376790815271612203594942772250337229924146448620748684144248065977061256729860030415118472581548456405796082932391060217411789069083519386211322863310012274110620384792845869610830565324469899628957751117173477821159872811947474179727750717114547588567534259834348313133525805641860105483011346888673310087529271790556963692105435723221601109645540606432322826030139873954552878401377731775501529343422766633178337855207278089120702838075399055620260425312230484049624447609251022209272256861702175555726899845456949527167116322620686036807328784420177386208211784868691467887348645900388107079716308012037585001384208460451018207693855864568575188995869758177110682446617099070942979358223871717946616341492361350588554443140117676950119899315473605955098864676909694909897390866592265738569831641808586918058506580503960604085992329579198191047116529414069301053392965514521490376633300068146235335633860722202921172641658970331402982083140188885366288898126117747823890756530051111648442574318731080131742602130191824215402753519833139941225665360577351344350853653575531499271862719683436620987402287929576605638711839078059442137700195855389699365179085790507618080901300555701093773433696521213893108131434225358610435734986237149336959285456511755202877553091989593596437388393785916748740879529958557795174661124243663661840953521823603265519726557106090639338230063691878123042912950349401718169368377445624472103381588322443638843015091766019023879912801706448352821557412912188377981753892119586763357869896961039843761641567829850341397270584137957328740038245869371316652239530028913404462950219793051716457231843245745623010632217888977002040957888700405794427228922275846361390879373966539357488223807892595463325870899697656544755349114779161635527088383300069248678228732040665058417876846331870520764111610019799880252793040895392186655935504704156872605499721856643104628555952459076895901409568309042591826116918504379306451279631238791471437802209581620494254070280999385467183287318154473917285451265934869589651213155543942894840912426789318841824151837440375167342145565812908618274539425067288473568660401593471502031375558048516452193973025698607503640846626784991622396854300020437750974444083028950156240918366072004483754102419619190315117255486619280650566663146091222190056131696733059446801210775709085332286301361661538214092803178576376364427204120880849453682017317115186242360679372842585865005530797815268586808341747507949063671063189765027708821026857441354684721639355567001623602117015736446598718319125179930276914144606499144153425480614444104585570352049418450185724168373042237483286245412673537691274126442685914680054702421815820521397496517240195729583055584789506332805620548979115075803130626457033774864410146153001785631703147643046170756908350012831113576914650094082592616987881491512960014264950648245864490332742041250830528943540843400981525367581834167400976340977927521762749963228114282853500613074610272496185519371304521772449391649296531623565181131193542231882820749270408242266725875449522790702185416793480957935275655303687642595424760454098004155754879769348462068885530965147631974573300514594345689360071166945407986671555813084756062494116028798860679304587658009130584835454569590633261696391912072348167250456217280917257603223150796367972021772204664750893352978787435787585310353064853580662746409454476998951124799447844501790382003898233806340513539532890576123833088782306155009771173913310181154230713537099696507665073637873781545306692613642028271150920325120881487894815496258341480311018614343991376217254359656690298891332150971532710433684578475646174037096320003159080891321820434286177382678072193196073557022022782109435879422899075101110388726017061497483803433767480968491293862695535295446685632067667414207124496111923180300727262304001540972085663074935610044157321708601851478436807946398666102374744075083897406865953759872617560800933484783697958468048939061786443133847669580109201300535365543807354696312056893214478156474459953666856912428355710452625063901151210770835857688461563497620321989632862840484397104859147621420980083267591915412838973730247081107951938357851004486939979633519469414901819734433175003131160664515405381747538643743469789736828224157605185268410093800813304998180377999609174879284445438312896069117937766309481426981467770695656159839699564347869532618867474163408638319335875928644540278602614500235713181852639155836654693578572088236924111985397888016909794600830544247680249746739419162242086433868430775453964186380452172709236137895931606274400815911787329572000129125589141786337167992060722043820876569934225101392287358632572190665544428492378096854744800493200498005067435947535951802392700649821878879605708590639210175617556526807711477645444226343075990125050615868157050960488022039634885602174556701100821719958434791616171235558616125367474018853661862508443037986030323474910365791105207125419559917579811211910410295489549416594056886929497187018338326553577089181209840637266413374676241271402001326090482429532109622388343631211882839250779608097441320180120569118784419926122924714816315470868531182346941800194650732541445377679369464752864102390986852660425919494624444304902930003438432632138047981626206836521839071526510242094563780238445567989424329839253748454616352892558828015885086767718797611817400960575091347487798859288099572494713397266811089485442820135286406034666473363045968731763838657391048173781981887010700403414781199449137818340213045619756687845748012138452815191191438913637744939480384390784322404801576812929444564188483901038393349548589600053858632659646782104361529849661562948685924357307175837706159991881842498175654877409092584028292830215020564226246350242193727858459750782240404910918940610205512185069728544053007250357954379290748766501810650304783559984388190342370392198213896737927627407424751185950180844107196229166742927872330645810379380273248289728286082287237103732477783860944736373745629506133997180562237804376600721485945802748347912261349340702488261624018911473099900244491549519400234441174757274971615756064453966425000395904098772516858857338749327533269719490180358450589430063383341413076590938489454289339941258833047530752500035098542243185562706166115540128999437410418553088250642134310475995408148203054855581573247143354491024635910430176271111878635794942581503883395075578167081788660299560774932006715512053595042617035842434065324510573863330591776224864367654726027243792242759581978290576607628052731880720226722248253748233704207440181333300335431576774827010165841989772984533648975272603292713679961015117188653981438340217751217158918867167652384332972776094361906172153848505420187602213644990060258938899592083925413088542112034687627232255528556176149504650288733610768511045318452138717596970567337012250105133425293289205940647883026018594685444180623389143944025833786237607254549377364952349171363768491930837523296716454260410091878859978046355789461395398384902231347603157684509077866205819055375148073545441710191381506765624897869449358248358282775576282675072113069532579946500295601481299769982619729313195855393526527134085556569382076429358813894502350434380915890796209012000986981920673679021219734162511120673963633098967523072842420436385371229799587080531242505000962231079761792611106892777637031091732552625848123934222729161356990009529391034605386248664305609671370005357349334996415670800995375937250740984438621687539430192152613324639355672261895097988680936739517214506225003946302429519085852868410057414648063592558904610782852952761575603875588079509236747295302924166252000620369000685887207638248620225242112073774133444608842721844091597345597258064031733650847115031071765764779121710764333775280924818019144292940437109015160819045322781849568440266009795407553807732750866561084538403322564446652892726168556835083142596081544887990601734111675895257350344041784950031537704220082191695414069701855396875105456584996784069891970970785010339122441945876460802332046523527286690822638331746964717117864365484338688669020412756116774812627514981742294107541715542915153848663751864773123874418598024009470674329036029342996252426838306029531819985816874536585686327697932466728574811374241561820236364657150033399259149477474972396459785417448688139237283013831982652216228980246215315444127094884245575788111035545783849511341190703775950735263159972071898641345351204408636265539491299747360997635862614369995406630266047354306937277636575818482381150772051804375751265252604860950469554792950953455814061632194099344710004725512523795067441674233667082981969870877242705202292718756052328712840536746342572836118892017029397198055392140762060091037578230670504540566500554337582080848934923238813218730496017658760689246873710043624446464500636744959677032011380352145888084462220360748656286148992214020543655138532688512436883222832018040214380278751572523849860525658591254280164793970143272899746281847450531371061022718212463657608044547926538631992969329661002915832624622824412166108086494278832545319680435639370470394416011811683280341833736669644207108971547768933013771076221303504061870300929012976158010203808390719479835682322222461784165944353066924632125940089351114264500110521092419247838554598581253958685397500036731495557708882387651618344547840983447310725616952979715359937904519345109679099548406754166028504094102145451579025287830208951492111435739617399439369215117361861886921175109918948517879169684002774623080400652626240515714468191455081943016378078650752430889230813793832313811989779170540536631065609094542046086802956978165081204207255987174307397342292065086977912859208818368809324624478018242970000361321658057086989312259788513366431676728568061757937599385226155292536694932136347299811736708403297654930375180383892960168719805847291349143951365548380668845059430716021064511201052822127211043333133066911156402581613573118222656257642740467067321383610279687842471025034399937934763921337386928074603200035818564629727299435487447030510036439717077955938570119562219060936083025992947152926915906629384731174340851748817524538729789486836135516803653369981866791135761161944469048161276069333586346688361071013350782662135546888521748694774942090444940611482565617473069286291749455971264381036476588805285064185438030189578143127049896713605976690717112075695630193846294285754299168175809316705769535900621066268723387090841562376835827218344222416883706444273278449244279434657213434692186813392635753181841892696953997453455176940378949304511182502807414726712668581314515075570417648151688994259146188912422738213263152918992026363697009619665462686789421873053811201665364114448347018334571534525460462571504219188211225933219449443042458284529056714138653411361526174410997893368550936573669433776982861039998869987984790671458371706996915418601003782998923460551954052026452680954768184044721936951462524954058475824402005548691282167144398068754575156927017304813279730895413714484236438511706493355469073895709791101938853744653659185336969148873972102827732454237966386205655189256254324548589694761553636513244441752696356828870695548708683069995181132595735765322131122839163611024264448139668547580447846317354617952230748935468165882922847289213924418547127833741426220894745185171015813434702284617159384369018205308949723845932196604631149468513331114074308544214319597119775387343237712038373702172416948082671212496782965502541995568367842552390900339273292543159800775285555731538426079219073492348674359238344847114935637683136827021391186756835098825302943138575086860075587990339286364440358183308557314970454786583648132854803531978542308532095747417410392505873161414451657198740898241392679901325692396815072114716212527351131953339261171256560149476969547107113517241329432995189115851350176313907654144005977542404139795830353898879387066683688474694934443317709513904294998156182539835025946534626943674410618209929254756433240422164269493503518419325262151302762191466377003039403506837138085673017282684577449117803187551341631566541664987879366675859784189565503250081738088311963423748021949357998051527176439588932661827181031748329597084169710564787842741355988310160238250674198409494015706119436838382067488649962590459289277779055063183150851190105036300490141855610811835590934584288815649417569472313864095594889537334810101268351877057966780006149088095267915210651023681031074237621381945879825611734354803116964179828599093610827298477223674494048907322655972437897960842919934246458952234732396406247346775890264027619679131422855632538694396311652218398994008918493208374827556754111935766338324400088077784482065697284363685988027424482366223239679100991573054771301844019223742936404146841632410863495261699018847625290948255527147279727434478706194942748393588497744042547786464181232987520300718825057789988880643188120244911789654665271779993946132076374821591761620904593915729086920166286260910322109212460000144116467957572025107140403668338525296059097631209802733405100330097219487956524851916090097175864190499113048018808520917707845634446118293785301159733051262620358384722966869528198067599688234403942774632800387975393743123849727622812472701555148137014556930597683973631670010380101065711942427413917801649782568597134084270108727194356688993372423729404711129443579063856003846792255279294070165473087938484849678838570813324748115604150361225197084175274332758503516518789604031454234114111004551998989029351915299762793051857595274287249107274610043542940323103358038753154880804680485837062089491278393072556409851153266650507681704485706120614441364584400423406925914934821761545958972566267571148042212858529707517811515715619262496988107337651297846788068750147491368418991253863892741087291430433502539103643802987692767505094175099539603882374123834876094901480006167438467172866683423423120971403180842513620119151819701590923689621721553730301439358557314366054045670132401769213732294494810691084897660420798151470519155790611263135969044447938825988302690706532865419870074103838906674634944741657012106115797964892334438786413691586004825888920876717835194312472169749056649618829774277266229189887418279243658763492732057610131684409195604070698459176523228978954747111313953306889145143976530097136190319700290664694432817996829435350879269275807980851938337781765810293193286559234655751283141701607824051828227912423332759066354314455812014170620255851632732175247900926527624985427999750300267863553033126479515781154940063888743929877489584070118310130943519101718910677947999797434987625043144119910882239797155206928335848789930724681444092352909786539091284492007365544160699937934540036698587189821670820404999759451088548670043798345781097647652219845256250823995535068268322625138332703557048272971341819488113941909762384862629998882775857689171643687105011376400495242401372918026645023825380778226682753161761403132260165571535054653483820300006614779372507974035757429621183825406163588268499165632744927967283404580204425710965464737582409842598046066889857042327035770604451920958036793187328404796649105293207619788399918724526513432257307310919261756558200001030247686340686977492059002091638164107360985441170282724175483877663166594746403936973677622440378231690634584615538429552586226873821625548391375115165541456404531168225857749911911429175372005203823094805092802720658913950711445143294195853663830604485298333295791306435130851173947863847777004752666356042830143474928378598552906194161721762230656638902361722591330923115606216048939231827904331631889806962723823997134274797688718835891950200510074473436298628370466666499467975086640691551203305117473913610638447249494984254343568030925754872010249462507132866964417175411785993846568760806981916884539096794875276140222721333665611256879469784866986730542179012704769392772451804668410709193220412726992915257485703420652908393674633803591655501465805502794893888446345424167429633847320037027702006938797396716242918434382899333209851819933587555364746614784728691697821981275987181011380784478185970720726239129221384138306378721031694553224859879150585842134329198357388168502148343902715322026185350522081731737152335273247766979694539991569114505285511976950736906973309226566638187878600443893275603367397173144202694759402172556919819281121586366888172091176607482320266179668254676548855912253107490437728627070781407308932760088962723656365080097330956447008286812213740922086903872943423463990734255758977672643917568703052198374198884056120850124519835259503013073723547886615071944809000528667525386500543735724842016167911966387991503410632920988437041576373602441948395163404780639661094034064230276008085544164517487255396846743124309240899052869593033222123080575063847112390491866153527519369017784265904085344109309855782086165616757901223177773357113767303359608334147467869510002642248266694748127115403230134538347097855611911537982204091028451805278395446529951947402544212220625134686617989512811146191447936103598635614899379802071127447786988286591940709127507859608563314666980389581197741285257785330146494272313256526587743143388667983816319279089518859799759519131311182629262371618807688067027024437497850033827654167274298084157916674704405900690947017142474276782807808632518189318659534673726332913573279355393010728084235312459840918120015810240686078268188632905837803649030576431938803669391558820769725062538185014112955563696353677991581001913192128180833058356906676718506292062427931376127023911436334457983328066390128449585812302616217558822821081804062589852294829041476822886965503106205953312929189114565557535305893959898096588682972908947292990224658618490163884956895302037105326659371378161317160285792389615236486329528501514160545804757175620547495831348286922335126327613057655875289857815991412753954622373980489632947110839166124527718580895474644076856852999856795243203351820885167221304460338240685499806917258877916899872189015553610916835508898343601339626678838677430138194570398831492459314571171295801811465170138276036398877225652877561985925766754217524723778417200261203999830617462831692050291179898502712609966317628411834785175649329764192806249318169735316009681495782635753976345517946283938164244264112761304276866607947864076390515186996525554698417062487501977544770210882312839579676662640604367462150749957307651103840255921614865489691417976041894386603110466084296302083035438837141154308453473739957273976606450286662516537458513549982506101038990594695100134748229545089712875763999139239840360643032727107407282013200679178797338600362794243882528550529714056703190540118933652177097204650033991333050762523356610747745579846344321436127699714663505923241429786533263508410120813561235156767199215398362504269153775259221773202904118399741619575894960688065721373409770279276421613637374362239017328011680754284097921544589385285061477976521117195637757348536525678634863269946334707199149413378149718853451675680064446006879101798612370163505924926682990087354124050816414954729478913635399647435577190269435697630391004967782706654207840924157257052738754810844796228172876012751665168026183076517459829617227440554012565359823734463297418329406209408688552068705512212040933210318384709604626883875251835899294216922396432738588258385537956550372060761934613513717793730680088489477840692601964521520380247514499535794122571650483753775328468600596902113456259582873030893905066057236656854058206292123509535645847564239429278879268342393940688903316068626938856845463370720068529452706624756076323713744983447330878727678180205567026309404746709006569321864676779919738241557727693495490018769629145641306667510540662194860511559874068305840779502915029847146746879101549163688917885337546119204087220877808495101756059142426793611514828209754827674080691368953781421053976955532884244864056418694498862916096480386063930702751224612788706364049561012315701434436714812026771053869316326359417901929087990315288914123688670726164898564094689971162263264744928854203944354737611159108703188772886994116181916822228974173303371194072788340551212477520157020508651068268703582430846608140703772683600231703291550060156693202112029736617849188075720513063621897489406934431748568181346468877404891855514082130385177447068280189427181231053931398929048836531817132778088944785591357134950561270193924848919221891435969895114136516386774902477132435301496511820644710445565715862626868265479373384920596913062339145198198823782846921823365447224880732366641314882151825351839579423593515364215540386946309553388632114278915634004466993806518659621500094924176117055712609957031876692391701867580896661508957166022753851719852275067071468755771773409301672333778107156469694185541103044789148202776830135464815448532050434935077246372664194284448639003010446910249747043653426955415706505083495051372208035190544575954685695281749743852386487272240297657541189194791564784803223047496462989053759302233291604862927104085962669507891017390479874762629397153561939620093809710038159188539286628144035736240354503205158640518858919346221601923727983580565390221289974289042648348483673547931873500857335065651902637138857986310561713776838803533177279309931804519656480018739039104914677532395188242745944523854936660048127471732632754213505751284220144803471868296945663603797033667597465901359334205144462424551899933038528085188827661656355049834185305314593602466198392224158257207693177944550277689520671060892220327545737214824577992530012222242502207278613549916422167374790197177334067141639757760341688946690803967778400993565923789179403262863884033521008869635003845268940207706241975021311623408098784961825160019101053844678307274402555784688031427657214229893257055017759417184617967317441586115407790719572109766741530433991756282116009244958372539851810827018225195575824704908196297830970599564217015291235732135840528468353053537749351993286966426971821994998186623013121416800178923298837866984417047425548552082274651341888782095020350161803512753904243934869374292734638462519808565747994135379233908313376553910622113523037410285753194574822474545456341680459295238458463170911002678590244294450383431828735567185360827192263851131582679670134068965144068066152188693467962123775701160516669680635584872347437450309437613471424043280234345489423659372449793311793873557572187911753504001787624430155889173639547118699069941700048042265188604439343612725049138646386639626221227183068837323762897911144795445893087461764478126218856810348141159987778962789387876934558335264125500736657606925563012295421953368781986432379621328404203376509347188127550474944042229318900938623919246388017566649970773447898725894215837987383412429077122513769914215267546167980941695034030312001558362623598942850066616244992236302814582723262339366912589952051059662155801499076992040415966816604275333544241137850179526484269887135536861691042517270489214015499247386824164165609061233822350265141319425874938837527162609484511633287470508190417787850608658219450258940659672412037044265205350481269015847036380848609249949152378840780212461471561800813120102471782052013093255221118895867476263566180293889405014383514863716024216216064819144410826878900291435123828472345271642814161981078001686718928502954377326663686435502410147522383831641962478061788677217210581866277812641837538268748821165843787658976421688529839765666493465705088128008202065988854021974184055594444220579277136242481135217826856391246720173050668012912475666315784010953747898752808155780512805489477623909986372991357658863715356114542344465831227961208847905863589276317458308646979649428419456068332996921688420743896860363811861582982830709370331686702444051710218416041521170671614193153129697123209660266819674454346162074434537941220905755471786180481931141649628843210352773758046588777339524620160392646663174023014384349128176863163884488594658128068561265088233761689615397300064030977133969708753435064504047197093997172964551499534602283078560891837207308682140033278555451812259335166042922106464472108974484604405687471274301106290925659551468217467897729969098298217264715799304628135761468802235167420342023694865013695608359786262089031757088348970879630309968440650570519640540413986400458352315599021269062072478039728853045322721697238563565542174024185608941400508998798108083149427934425382445917797696421459339807576720005662173435660689985543436727163534760968430745324194715474229919087288435175304563595504300842640553669240515358540892180638425968518668232008659657657118052238125273690608153488071066414852338484376310320657877768546236075247534876454946183990473759887380643005742581116086193393735931047620956451285614925007598714333065123105347217622487363300711004325281519826651070299104341394997731969038618295800015137706230406170869488993914850880326900000642261548814766611236046853740780153890980391080959423248692499972456580127107782175418474559249594447364225080703660707936323868309468368430671955852646733252074302505200248551106622828827241276489433144191427019412689439588129690796392220595733060329684731631646344072308553791651289327977478828134844322483939361260540040310424499324588593197110932483954124131173209436192315437641546323402787322877937477374933889521435582126116339076076218844641484170965044640579348033502304293973279002500343477342710163432967167431789259973727727753625385949446420130101273272820853402261595866034237587861064978613609449770274885917047702367173576110451598412148907891828599170900547340446675755539714899493313825315894764224681734891300239844226191650241199791588064004360033097947019737418942203857251259054146668489971251813944571689470686636285807388401348867320730676083852449434799676986077739170693297621837022834198878086382914407606291499988774067236989732499960620770805549680844388228988907310300914639233564986387460206366173566757409169176408252912401003615332120314582717232993187581107618900753407584886362204420836605879128145831828832962114950120389300287182852199244005360634988972435665796468178277101717336234538385176105798229823049909655072066346054687999118346353268491213700178935896937796264880103028869660585438961554980943281507029036580158619562501443813712659127340257005160231871784035254096206469768342875495084572472233192868746287040668317945583215160937880866231270327056753899222612154850038471246026577044009199140780264772511091881217958943817575350080703894550700645469318636825711685502215922676775804822316876409173453424067187293377222868432192977474323850907895434573785131614539414268437940918166110970858211055047232428336494485785458195145231037665149603909981092378247829455952515163213039078778741234097214098652954489708629060872843527694362073581765087946162011188432134880111949179493781618959051123983380744508981379930995494970888918518091350149899581868461875366153043591424877602388112627568954705936480566541295701927028251942253792963895857205628686726847809168292903992032955978390082417785635669834059271139796284643207301693225409291610484153402841869740488723270391318338176905618635903238008803165830893233411275010379701961451648531337374216874412544924443481996076352809935704509279626418188562393294993467357172911455880697196542156546479057948585248706969225693200500815665877829981682154094505071786463163910382595182551056539852316956429619251605030760552968195160535697109986981243784910052208119342824773054226384636649651785134090554067309192562320064176102383356057779466447625868349129404373949387705052493581033511914310326083554084798825345190968192380559810026907102420080227353801035531187009630559981276460951301183700626945169097311748055085012321220286970588446890767213500441649628061521838996235014993005448123651818354893969377109810299672898460843300115244158325964508955633686676126968960109830485758781620056874505581132813766607158442478676199428219693228377299641853491271597773312020778272768171223012512641685574332035143075097341542914057857750846974309689843492536568223966786561107878118690164832154326894832835740077234450876572908473986847759254290296576323410757066554629052968465284836118767889426100716516100021953474857151880462361090233138884464549842551653010577829733349050578937349523033533725220381090291694926794354960436833708014178202739173286263799045772753513380192911628577330534762238350485650828156137581776606016401268975074020192620386799924408399582442419439012493090085811850295342640573867968870200665186549239139841450983557319787696905891194584179516305461597944774255369545099955243880112238981013773865218941912543954692406653831494357712940612707659312522740045371536081019986294430866193775959630353017864288721094666474226436566493651986843368800122897440779434442180173655440055571320993865395743655343171291913229241808741831821258323199148608390641473006133279794889865938063024146912829805610170072003127836613069537732593186080637984022382692286773418415392464657994827912317850847208985679690154378385557482435220383520489316375009607719498167779572868246680870207350311911179382814675928940644849810748344009979433237329604960261987776069908655848326081402242148053210920906660437113611694406976879656754047159239052316638165005636216137749334035217775758652059762264999831916688164666574138159512826101618894347636331837786324746770774791988694709044528023243966099898749286704726448879785910259636930730505276106850998408295588745809140241485094482005034922867285681406159023157801204932341345205123016000460723453206148379822252986266490302146247356354898164262108888796540845404648820947684199440700729883506573228847461364176053172006008483360167097837576568894536539629098685457276283171905868693439500186374927140237522266752060547210999080995984603253877907884042716556204293469865531469083450459907909921025591106229576633214671441671394004020651204350809430218758715864544256257502627344402604817388761502442838969112415187354879802494646668652750033248344321730409732816943770567744244713148173208746424520576356551178918113474162216385376479817964850825685604716346606850029603341162877099068936996594672768912124022987562867285120533073890436788326613325414559929080321522068178756432853442772577734051156260618187913767125374352572502059247107412038625769179784992825289886465470994324787701656637431248252018280529115395554317017075734577107683834320060510179056978688387869991183826926289917347377937289093560352766479793435196994169252146610948614896377676476027691033752483233418404186149369531861092655449953288246973336853805955885484273722700329305740452079370525234717469013349492363780336015191700739578654793820855689498224185155199424444919094183892809041250658946271031097971067977509390557937729227278139749882231381067361567383997021919315990398223975814434625663942239570503148542256152397126027188987000655303457641867320249786936543255443709734994746861727605743735713669332806272304141825070874384933055430630051807594536234713717835908677155038977311767541671170175955054724525970066325294917402486261985872438674259442735873599748822423361613622666809385781579787738387554515161373845132703799691205176867175361210746354058136420624867615762074152144951250729651106547173850490491194302712484426495411781641535744720776110353988972296472683567202131176566368518680077901192259490905674379057270495708876687457573391776871148409691881093748410113652764111678158992705689820812895695224060127306947974394094630292514736875266202426107787632786147215904368087732934323192148085285865749728255816183669106508144831882692527566010418583419199530073124079590816943337459932387299116398875039024941984139842359939263600249171978513444715170597238284945057770082339522056169793744329490883763098233271690197391047405976064678576521981943379215699890266815023159044631157598232932622230667682512015964444506108471901421855325096610231894434250359725277111224179553263754405344181450080666194596161773503808129693998659821332099908032974768788073801055164891199555425097042556381531014323220766309487242289612449395174331271273127148118624188451096288300260725952072768474150655650817845983556773706600163938836442307720133919523535174088162463030723320704788344266850380211703745497991185087402175282587104370136469414472706021593902946487548970473715632021239650315816822303898164394689095203532956590930711269333942100521691004298072824291578519188396812822780151849241685793708260361055007015287282508975848751286403443528793263698268915624546198172552516424673604883441343194298836525517231703823446523934458622119612225021023318164620797515588781312890644008853446121559919595821563259468726203150239577316866967853514598107894853017619169701023946915221972860927415737511610359345970097335751179137648088176708362615458078920860228094611463910320282520541773134087162276017274887031092041926788749776507347399991910696064758126651151847479219058593733812860667695660802149459311464895617720673027974366022212104258692646733387328887116394598107989418946544894585687728587066128784372971928815063003901631885428430911171188366567547180931984812208948195056249171837071496144733614703022912897162671830428457401288442731295569060420099118219510652796199771481823671472805023329587897163184109432803480734786901905804943043705468442095255641218764360863106073481496087736878649288459046702688850040172116725385458798000288733133095737631439538233166982915821738086674649266474410462396397235966548980663882783546193947548150576065211088663882838568641725731430313050748067315431776249163401456906232010428933952649795862413266094242774127619552899315750347729178191260929407298937939017073755208731969467444546136392896209169215566356744510861329256224109164297322057361569454604138749073368823421996342841270994208069928327668074412765093095552826453236852435065395813589963610199748830620641862867783236691121575173606988907539235795096768736504182037335392921383656827126776476608748649868387899244439650630462850417940361705251776071113170031094502548794808360655690678698068981861074483031390799191341843598594061821623852606112835286961667836014954390039259098939408035740354514601114629333535912231479726564792189900977384908400550608524174849792353488871768340905281260262349548566703782994544130495227605892694457205555261253876397448239763873343547538866665681113635273825805538453496782500939025125382848133827109251936570370408272701975370381761401003443425519090633033697438909761360707226261278798290213132644775986766793968044604180268785288082957120335264789448255161662514980170423593891490345469339831537923732886837195947963586265034285471249205820593414930112248351654444812385554169001963813040368560825597265562331679841920912390786246090185334639659714081728642478951273751076366889368796827708438810355048857133640197474775567970587479447379343478361891963535775810474238231093234574047904093993276841309835065310163408845449959577055396037363563624164570879258358628724189651844115127933392658702663217312860337639933477565745269492889761552811735986091958800986602145400070497928567901405311738669716726933367015070833082532971756655483451288598202074558232658911876157345348358763383880209630099691335537865794866548314952161273046833950136703397508073749566893980352959009162314524513934090321160946070151426187155934541592627747494329557897723861651238231727750374785445926853127435739694032337064945593332408252379695346794503125958527124505059571024312393983579799863151417390466536950866083013044357016314885299866775761803470924553642346250412903442084841343858412567555886540564024902294313354429420162778813301198411343719342294992870697295664851108455740746716073308741970751251073469137004216351119192797669492928454075154882580597093863858462035954538298730011501109703882962769307768110519110523795440877712640676136833692870369924567224445743545262305720953652881734165161331802363789089055815115566546053248738015892392365536835318019124395885634077173587498818738052375724904468100769856649484520193018272684800506521995977372140760814132642901796487498066023268391718666540256939624614618652363197862954492243793313170613043836233966881709901039308040371170840908161201709787849757818231013986296930413748940305698395884404067511945642272524042465247544768877645864146624766872078049314252188528234667278291977679870664401415463302868085865737403630838200972195147001362301857456038438262908585737878951763936993987929448956150335516806647546896972273549933838967614999261265925072643401366807917651007026533123540441904233670032577498374547699426645817523056477019918545354537637611292140959915122798264122422074053329834463735865666276774815778885377417732042866705804508478607650806933529735338709881839361029685542033481052463156695036420385101497405893983940573164654303123472422535240980303640501734058417077156175026260344609213568244373457714642350916272060956139810707469801843433336997872427075717080888238204461715656007813387002369723412340513943435166985151724352948540758219998744183729325354514569371902623183773370940809864652756452124101089132007955058833811527858766552275892659107891729787254451253164234191237566208116396317501438546512935576661339932677251798256290809533613225214548007137924050660718589279404557236743820953088047697039329509150587650290956189429164552519722671389507742220887828653577719597202343043945176792808642981513326290873020760933079392861312318886324460673718746790881247024547765607757249192767589784443134166248660045472878820907749037051418484930707613819523953951604918240109888282183603134486551792960298490598560276300855994644245555031467839766252298165434113635124780139027335185886362800401773995951415250065313937328041046649461332491056370136404480467100017364770104581016999756040175607168907920870913348823016220270530153645444754448615925607251216589871461527739063257043024363172554810784864234770769292019985502510333270792311400098669209208709405222953742144774887748603420714234355110210514300161225462303177372895770010973025879796419771293266665057319852331443036781496954033185753614484260396401416678744238625297001020086279416657267517835884427479342076333240683841234091241025885704017651724909040411138697398566394424966733253148837440876352054328919615559103426986581298193658555143788356088750399280258062894567719392531663253678180244701223360242695604931325079973238880379239035226955842269064859578074287217818628177140513857662039137875893484138346453494972847025903471568242567576882438183147104542456206101223028130765266988793653301077193513854669868473211637613045475590580445106477590497557791398661172792721652395678416133804996946141072381725989528128547815449530355207656839178175156663189811546501331554775855618355800487640970589157666128848174731352288823446014749001052025502879761268625629473815703552219416039027897693670997223419008024617787168388417450949924957735858451986975163917170253558504447258650421349525415534544741311285168711250489202287626540644211284778723245696053110715017289406863930931205704834290739177262033399151085389754551751835303535179384602221033438120073595340062454457660478706782967976491218855579511383088841598128827533048171740504907578393537808642485872193646188494344100707004366346496464090539972126141962728994031185468852619692529868331914581882653778977735860540904650221795080590560371832221274559059730176824489780986553929778356133549977554919707818222692507009184794106754794341157759026066643450708313562024285268100664053351065623849391323425655563191616329743722040032665415482075658246478873689842047411757861909538516231291983023673765908121163234653126807617102102203183773591027522052972332865678470894811428201287646095554968827932856966459591117884793445004812865562209178727157897245183014488142947864223198933378396637996500979783424194087774917249292308931449601173070636464506121964904746268594415594882416886326710355621051316022704336062488173653975985370133051202354110694914920681136613301376210176158532077776825184540142255673387727521138658218034559024653580174494585094755538348613114816358670153027503563650295816190064230049265020374601597177581883362375163020890088189001741325715560503726542635064860560757087357906578634268541536316928945084540135608125882903287888288994948956210895533907042634058212697996566853855174865065056475765641703825214242874719580257744101677576923280392657001813292111583939138868792946342790121629555446300886560583916439978368732613889021163219456932303983764308907600241147736859295268227002643975121218992244012795191673288739851799870488860234528492533413590847026167443237336446852388556315837137370751174579830514318462863744452314288648842229697090194062768223376742382732269852278122332506646969490158583154431260424661057828983931147757642728751592126260790356531821786083630162669710522374101098970597781547080314465754543552700898378677255580208696686681292512330703978042746006575529118613069546107116771839810917917424103939959720154821640839480912359787745169464959358406526971467503188601001263644122855133812372750178162442249005942816323479419836260766496663484102423209836825399386374789922197182107433687901024108857748576167041062418832566197752839645855004441142220494758601096113867702667888950460625503990033756607805171825300592632783936291668097843884027635150777597580813276297230050296012414564891368338560626897241404850383104381341549872890056011273285006338600814622062432589948807581993424769727979548855692440008499486997340686301693667883842299627630488924690938241713122387500130600493658829020026396282543498348639867406355143555354475328573874916387527339467298253192340841813659379619404726036464296310560154543182613881314611949536332602936939964671050805207763957463036582781686531821127349694770150112691093216014887683254547554437527787157451934396567589799650875697045623430298464477586094655000085623065301578975603049647535773037091866339685709906777724597661758972774785598389173928063709927256770436319560742272903717165350256215276614789013811450663429685267347068600364712884576965391042499021941339452206004648442844895370438516697169996766426828865695059234165378801553114622621030986698333766296900799586969661601395522132659095894662449361730576212185664102936242799083919841710799902752744404911339593391151489954227714809359195039006095793503273795064716935672211933060314762325556489866700205586304250511701690737941662378066662008512955705364015112792239711746320024432586219575349625263477718507316432903114392581170641605141944134639243063971180047622635592392372077031442617145357823001653429201170238949394211265801337984612774128318025304666047519210345193785886831019412939159940170285736925673965541355518064416158968370469000993972477707219875616891284674839073862929059152458824487782217310326797305555927354012024853679225604051039883811303434371534005193769905972615324927324717676501623383968364694203174420211975569375655625817075150606441864216382912456049127323453127762222961330784268121204113791014386222085647376919733242274258627622948510659993596340973437200295344032166260637698125979484858448334460794280747379490150279234872978530651986526547974386549549403513628311193090814288750773938586414363503131246188558224242184492403471605342643278309088867414282123083072387194801118522371599085105012182863438666752718670227290687255357626551978267323040435354177976049757172017066269425613308800642004960985969704300160269038794476476395436078150432981790097085940043177282751580181598255865108251470934447447987447314492505281638510602480789592975145248366281279912077317599662960126403991498867132487845412119969966539515054357842701596188551478525187883007116641541210776212737443235760659447850312179418834491028797922344578405871837427318299837592024950813699898381901493804072197851480429467080172217070620160262531183860952945166328142618899420453182605306852318304895739369323266895469347394452457801450483416324502866894195776062374570890582325234302119749943786129300763157537167366440822325195214306699484943033745442215973657083566373201121757359586218159511785987464583963008769473322350071316811768518500775320971279680215673458376763133607217705796557162900402463198398012108980814443981665611644523284910018343237230845403657882829213809051564375111912760228041046395057190512469857033358434069749210362676078560956514259509758463774166442644171973883003977606300067301559001655162876056202233366755542417065076184056656214030671083433230243287787837646700063795700166803230325799711529129637578067643138302115342959083662532416814956284969455113925136854033858094535700179676269507196042461337746891133028621968509692314427511191938465771068145552373589232486357788504915714540304980688646625563616813157528375019599962342581041048325727168430083374510491055827093487492191639647372847049328554745437275195251362898752263590349408741264692392222884090428441111938418808884978840298603752964692048663803939809049868936663649098128058916425023697538891569285226852958475824770852184745112552444524970582969936229395344096755008796189964145627890008398972143659800661700815415106899054250454860492356169215713165325140283068298459555051197911804374174802797937765695583967921927275619849059596770775472006566043609348080140527246046397575548189438152910332240432154350273853553610148050286289906167112348704889262736633091182773278775413188459261638534085873531955581236293217273471451911992329040394528566321941049774840356513113533290877707333269938070724200996097697679278604412087406065270554012502084124576081155678134352896341621036135331167018071660902380677960977016870057694638235527141888311538020898352248335059437685708718693784333862217629721468725887606443457141511171771082651868990497853790304553530700660301403446572438944143051039268375552197241578398160182102758082434320496136255252044311707493271875109634063999572765242589237564602248277622872698817164417844471274430858992877780129166144435136005679588624704674460550573301290851440124422012513917982469857109603782340029090754284111987590329437027614824338109467723630669522857285498411344708197843643386851921859936621291513313450850121259794225568975174871510447482414520069438539662263429058372504019707525192060354053207072541400961808375608456847013163984994760168623026472012751978128637325185772796368575810699770384304288600205135854502673408477251761306552094883097560525910327447607966991199747770870864379533647280320156460301818392846875876175777362619293476021837952528115966039449938487079748789200314719670752849142359058301798895506939334981852105264341020812316619224558673195130574798084488204160332238465567416240053829845345507045617075907475863918087201460412351573604634198657098257900954086432582501703663207681033987875257178027801492033210343837364067741341359236528656504024204775227289995338216558420472222280907955655101326050763497029164958990047788080571315221616087091210613361668432114713071003628129043357748032296594799207730253173316937023830252628240529056787588719652230763037137701782972436634468867850741680246510674586760154168194877779089477427827252265228776879514010544004400496853170311371906399500937354795242101535806558203007145963697788023558987658583983822028659324545851600228047144636418161649309967670231138332351441665713772407251733377978820700145334850476293718272016536055295988762448386406833899202120257358031608833281961565452869497576048357691698797254295331166458087822871266997031742087454017103907738224274014731384704930048499948063059960571125861370513661389402438797927694443640438024704790064973030734841552640842807468069399584108002020451059781352129339917190225801670871921037592765458143408325181627046084546002613304294765675325948925148475641836803887391849968040533509333816635620945881291563785513224876316833604513365176214821280986626607247167512298083571912952843351501029373053351455739993410913491074846553152092405413418267791515596306667141362934565843838134710284437055129649898456981910628810419314266645427874487916952376847667890424587417679918973534920983208628157248706936356440184070657778293716792731600020290583032285065283622539531590472090299897142355229734701751799953055443595386627955822227375721617976019543668769430729309441903237473888721935207797212819766475371890599949580917836010854000661871586539165480983570188525802137203453618056862867988757218299488471077740801208832747094399804938798281113878222198210501161096025304686836887129775112920409811591552492062914226657180286078176153213909605638671300914683494377795777892753486796497000002401276298759538226611866937650896974824280252575865922285903872620242290873092849928423319767654748944967948805338299367628674185885000623978042378315876904710159189803821104735262592200118260333284324334471721623941656682232171039422869620776317142640091982220719699068607189291261666915964694352974547192179761583212009552556331282737822002488645600064022362571923470072071864563230447177175600932543558525297260384651323188623107365793045752524031484883671505698473124223764133719567832627801498851025331462260531186803545925332242714008436130101111611370124345048671290487100531435196684872783583781081503278924630979502689957944582404069928535321017942743486344342748822981726946723709590139347643919288946265196306120563683675806669363047826337890656205016619910572246372511825856199350967213250629403019573723944708282156851963673016773096143884121447414141170720245500546485977290581202429433103305941203673594736385420246098999436014384743974656644297495429205487245522183391769153833646888006588487235539247237598062211538782562173634481425548693323484659007499436885313188502779697941966754318299933504298827157508862769478877082090832421210620879941413260304413593698157259205774006549433939148818353001497157113330678116236331076256329495761549293442514926061245537833667251129017479624116211549283122916005166149519863331393008443622021857004258879417248017307883195484199280706744385750800426696139314565048497579366638333117433558856885404831142294450886073440053130613717416202987506580179194735856804996103691518330828527748850578135073600763414395482878673957205953296188750681575256650100604252860289702260697496565775904368195669407742910157373369946097192022981811183914408838396996780145449363463538823636115158982181285714723833777024528003830155246677177288163189655335151226080411682778691386054814335689153452586841377643916158597644253661344111606892306213261151816581825706132816122902040034339527622311578715525597250895748577554447143911103898386692512424787180522926801546017157196327968737381166449943784126875979345271194460937222956058375816393047596949703181964835673895517365805048879450497501930146190495529304971889075190138889538411311396900197533303669036254740621398923114157182352102029672520357049111266434103968075698292088660020995744330044214249536926813667817511376220719988344047984191800371627121673587501690385148768019913137326083010501033396186759840347471859122027184646605676182524128485994626175539484375382981330715097245707064906498941336218118868161827634959752128845625436988985537775479623364553316316235718176534573809049643189412840103628276474564782258362689584796281357916937364710177096938003002108532786573002538768687379754191727157973238731669374635333108923076497493528451545064659492824490735751002908079829531736571831605487882123918966226683759484509088296110426148009274497034938467319178373437427872194150777384995586500003866751339492587416826439252058752795859412610291543336553470267797522414914238349186320045487830505272137221411622749860133949677696917052621075531131994657156669943830005843868604294815986854150517652774412646368505724453708331602507237237900614670660522378383118181521322413993334862004558707598382413459844757543563459914242683108123955938349139775767908316130914171565017459947397527370608951489789948331681048696565718012193014353351518670521519569938970545713724460783952743049313668353419447493671010626763780686916436887567848055459377810819918855382966617157515179877708712431124943569091212519059943519188972288810652037377138903592862316069532644425564077075423142909526992128952457622229323518613141073639347924260662025383822641065972009269811415852770778241451789876680926605138093972362213528284324835389338743975664986531738589453108811294628566715541438989424785118676560883264368675329481204835860616887495556354925991920919206081541712661807942131859706546530263440675552178950768646469755389131596886723425349357776662684061560975187408435733323501011658217451862020277374408834412544051981798326197165406681637570783787222458928881010264958709674441015919601757476313996480875642047350550608776263827023494630688823752710700393359257630014326721774099477893190122241481447728728762017977029863548000942358949641145922863560892648411934789599404549254565969292929192917139774078031511483126822595099079917946390305169902444488842631978523066598224153690803717011403838934616076513642183806510027191388581567910907346757119883141467742117260058837664823125946791979756305577696453756961786675762795445580758802688494599812097322967443093877855070381167269781144955009526974375919206898384321129602800135310759630601361054485768811440390459921460620553128048087770663236472485276187339488292001055815275050275395222753422036203930585097843388768952149820671184895095511270845071129386045551586032864603920539149390328718869938939424184292791197926346777979658895894936358171755848551131628774523725793678029754137327296524003816885746618384992422439982818445625331628074457382850595202375554133318875388161222113714899501644254422326747799287069216284358626579095901648072057047638893279345094153777423320998102415059734871416634683542468741099120344480498860188151487276153661179962760905844728872880605888972770390617504590984438586874907616066384126544152081306225103714116829507959248710198739981777671688163680277006979277031621753404992043229113161743102295057347784820211716335262750796014139560893501960327557395088446478786910952454724318013679743344067829893104661141668130346917077998886351984021141157035927755644649418079627395109751008213314779889797919635162452230517255796000528427925265644476830086187337533653582828865684327691758060274211948770440728088516872326171751801114275763170413827381933711731250118082455108365577474349059766076213369600630095508242610028655146411395644986252112765122243704617581007286264507689880753673302165043003655898123880513669916958660144850489939209460478538741938581072397528028872561610351198747646671641046642280707051989852434816111518759708488448356692137514276855106803323687047875059707717450618814359346555254393655662237262488270129676280948834575353974078537467730841876802088447666966196001790685142755736072659775314782715891205462102992233158288389655918594854789308024635449993132841932555845206454668610534076636548683302196935839197894685655344164548382986931549264247242561859232382600085572355998168669230055478377957426418076785503609882840695452848770616806504119287639236992528678969055826803052015546797849759747483241110228146535421139587026321252972245460797576271926864593964286742400765779193039192970877266944991682091036834756575344027256883501124467147475430928891048892808959161685155027617807016021892196745342467454834094525112264564936139080166023527659470086336862184843843461539300413043075219030578926961875774607870625520658534876266724662595398568310921003258602865117967019415419725460047356819464523732155787745295002632218065072352475157911338617996906466599905093564198683675484400706867539226288899634071322445953691744529731794760997018844091909817521823262894743857240174410075006589271828102065776098475485576615081386494078858561608888132302138375483229385383008295853412444106950452277168155248063066243496887086237566044384818356660416625801516518501826043209803511008054060927580615716952902287765365160547093622974798511504937162163265490430681992855352431816134415919225508524000327075402603287051459032684482978229029395222221389380161079561820029231074974788358248869865101424383472589317558772314080253204946725407341638945782126160823501864071248753630197791036285380471920667130649497122119074084482508381110166432502420370624585049856105321274896000746935870303698096912005768070480373923482702304639632617272608956150157087361952488885967966279976713868903525556854116846076259850317851440875775832693970055934812843712426367945072408996903293720853581117094355131408718962176953796985325273331632882646861285176090080105541417133106847631947391447728528940536110756720666532513229951723005203494368574561782182232826277481209724679168928463828351454001081505295445471309534801730031531584102486380355030573487206862346221321767648052552656157201284670544559743230391784115272565451387488272879478098635285477967869985506852748595655007676889094987439010920314293950493169133092983063341312124144644547282476405635412398610360387144086078541824896203165079466787719090223434737992018576292286223947960621023893333569652480719824452568643437293980979982647009310001616339353689701794527724804986506100871283323760757695720853717364778864347460322803114759332608803050495972655283372636153214789727515282996458808753985340493799740383765751704929938507148816882360357686651514232756324803298959213404056399957635149685202429372631164979349265089633856805938826887116977173516385445479298959878643447103386807102076550339624115437030892149353502449254116443122048738166734141306977756586611337572314351066698418035458248317600638147932663659667463859329188593293773200176752943674783456891162943161260498570017706000852258707573021022659089121104871602035763667816702867771117155439206372793415485133442803758463262779283269038585358641554497085451390038425535528718554104866467122634439832081459775085276755529499503485409613436732064014470801518909526705920219633228702803480857289484711700388904372814077073289207155970811591081128707821463615305092520976425355484350797244005273896590181110573138124716125241645404498813378181861018584539137456666346271014674154205272664907795624952810372471906972782658374142219390687326686305961207670596518322387854962958103998304246228321101714608912826151683790472505188598293626832226175560609959696272985589958102180208635555706765749981810157199713598704207254668486727097524407815516124599596413951285807361191543153389065247909640901111064541759756127397048084781502169148433327142471312574445555687835678821612779437054789881353649666246973250215852046366717865640540724784359793196723771177633520265449612959753670850430088429629566548800592002627630471028549296459703132319997550159000086283998783481869764792281381653843800831085988077859370956780288814100719771154329508444075542547967280178011233813498372007645436079222486988400676818810909739068476934963335340427366849844096653577573105138103952930107588570643770955491227101540283860790643913842864084506523167944829886301877939017512253486514078704466382829559286822233528115181548590025894815201309348122911637170123692929666781200958251182162752094649275019215726876054351491026832291320076518368031901334659847441408528143811674027913964165980385982719426726670723774728720083285062492139198925088249031156075287318232717829598201819779480098022672718326714145398207769876245665176469101564657216491153495442711010778706928365995540152883969707499204644416796009036058985385760675339681952882511188932855996802000491613968314739336227701607562403717972142689162568690709874031402952179093834911386829805395311144999386141571864062632805450178412154973629864594347952207966046836655954429550178061455090338207188249280330083300283510588520768054171960767498039972224244844401060612251992800256131501164608022067922375427921654478779866688112327874370213478384229415921817080979978925053217546134253966666784305651495627254629463112665974707478079697894604873988001943064705363056480951732120582919665543860274189426949080974510094690074835099255749331381841862261616272244414315977784078751467126347061102613002943402341580164540024057685590623745151442865499897814680663283612922985964106325452572897371185207611170350704138328174188262090843062209825681377685245193260816185643870221605702138659216745237408839164085358243686567312166567412868314162752697934670647931542211027021012776468998376219899686473146185653802806987623177145485882366378140255094542335908169144374516087848955948432159955772059385590393246600845834840566104188229517565389099083838254443542508836309325539159291721604879649963310565968530250023089893855704584137627523773412594228787001015619666228251694794173199168624823672172086550757985643319217747682558001827938103232678208638788936697927762914110858561845719818208861387050543964402628665011095625203939264798972229457396125898801100153571361329848074132832781037081939965232447732247109225214086307974810646805791323025031938185637358711031732355602943347294129551402671574091539055866835251368288154508308333886182878010564658164026030886755957311488175998067525436439168298010884937717670703595301437737428910975146820745112171476590910710576864228831991644528352974704647537007625954117079566673931770212490307535533705775324887473969776037266955589533292714062734753341455096805497398816450273774323459047866213443417252625253617431592614946911912471639431864874561568565221587666523852693468401142494091390893224350324416135592091973860946061046001932025756552702769069909358504796897459407576875402585107359688986006371636679241526962533764182259434956359652228863549526688374621946022191710101073399765125888787279912012347033362596228752328971938531352288220288072755170575362258582249996241066249508963653260169084585280849907224020392801570313071235472215507723218257696115424904555932688073680537334270786712859246723106882158895310227697229093636696479318688288855994760408936881091955746750776406789456089884275363417366479969446385881830435840076425426616283842898936928192504878116204507493295397158507068782986099605929125832888728531886621937016231142476447299758108069173648844064305546753540962970382908510245250829056243079725112838829087527212884448096563794131371023911989073093723944486193102947684872175791625586732605484514441674396547824921865427290308774161135589012851982282046621675347847440759477614824560228020190844493079682498260388400828553437389515071586603019061958900939204818630740185056214982901514255053717852292392303737353405363589091363324982384504036253718753133822755521809427267935552320288722204670310196561057370583849688508498184708411740733650768949542697634746495013390960722612880708938861527344878631455618940507656861221795909529236666929766742208772791582797862523861051068567765094557343260521021552972914406828055818861709301966570680250899345447494330673180399595633344612170283410364254707174058682296155376647577575431663010339288414886448142453884418536502380488352187679116952756064810765669382819602973396154339667314369598216089134757204408428157700547415481474114079241607447434131448714475952361835703906676600886379201796963941233188840520098730477298541686526513078249971259032918281606785932401869128309127022619434134061679579672761774717880535085464333513804398660787260915336977537745086763696857380941119283291423251425671979736147396823480166827533427091176019384640694833457928442445742145644460992591725540762931640081721981339668805761066771802594428473608014715755651347559021591015435542456069050080671064135337789789331750379088864396120224883981413325893148174413028921779264715465235198655969747430625355053844451601808711878635044224864158220419804298716580276285570380056126090980686549678045774453181026523883609506889731400348382848896125473953214392759494791772569754764582072407547812743855378704876679897263877169239695291977159686633880350377783506089737276108860542442296620034056769252316905304491727073054099326217437087662134425484005722638033004383941980782056454200288340401375716401035188322488690539813163323123682359009296393713286479847400592734875155932213625886616514069082243583870773577403320257315397859493537234860340326454523533070861538479114122961737309013129619879048760775916514191257917396188344241519354840737346936287127931231753899973096337586206190273064679995514521563277193576714983064501526745658015283917902526009822943498633421066453778909503357327161202523426216947696945708346728933494090229868806033296781250017623023557094576462334167527837002109650354875319889376219465180754636158388958021123647956699392621064439305675078379502951660303685977495461975291206001285239303273393202618380137475506303978520910805385547974212017974605307217838734538011908886743326330846204878824001981915324345034313293994212539427755162093956602785473459339321114826742991759560920895126674215215653409643504956664209442125672009607256023926093305821056454458897341038032099033001384052510606023585037514855412565907116910047749162377439257708183725174780253179630016508014609057884326927263678122639496945435672052275625668929962779095386488536300609022826759762085733782201778036831581981159270514721181209788569411968447928829724510997280572458426372690660578258331544031897817352398116539033741083710363426173525217479390114934865730441996597742361707329601743499811356598203235962141674228522750199621898149015636220154350392228980787169547633113304373264713065461391314257117879630649243564517888346365909978358954757972987756647296116730436580009612655329899474489379498949941489856150367867522570593288406738961977009538556816327271584257044185745658939015471811323807004231013659912664572362231211075052137277794728278728553320756255864123071806993041171711406270214858120469743676983834276657354065358235223196386774519856893339173680603360607410994076810813601938015736139869911334139516890973847860098849590343045540802624316502446826689740885833888521294990425337251659269689862271504043695142178984100393748232947296584787615568467762991283838315237800693451840899702209282321226570580268294037516695174937924326165206854608250621808010759644147515545063593977452274896724361511322021905325771904608006624310079634474534477154488909459660656139681458619848879141445592595391282800177364759415712177018982093974333888220962156168406006711207840451016588752560994294738036212246806739582966579433179961732388422709287641835720276193757473015393738864815309526548437730284803527600143350409216402750011981484537612583268962022464463013796395106999631732760234349715143437498254388547235803186399265419915887426805064661985910126774906971968758756038440314510979979655351804209175011922449831143329568173420756120429439394870072463497361444272105035823582112723389236049213518917461150038976994841236950189902946402066083560738031852839917418365341090281835963594006224640325742316362235154230322519300900711529482264640038143427714655411923778245270849817366994563628368000871761281065076073027758688691911087034200508518235711761228318196822321274131842004890001531254498611141533019888005829033369727491549246259103416934179560932025471867762219090245524479746673093029179646196151185871568525032750891450370761624957196855325079855794466535358802189130191213391439244239401917048788970219440511785335055171966390911680539045623793439427586811985993607857823073555518911235507757147288955879986630891878518818672774243916684434553811596126011943639819421583521709034680050941983741217971845951582796823912200810747657826621568733102338525190318504110259402545615367757329386177261532852758874427880891149724055264131639657120765634948729321425044396553945797254747441741812574507093581694446552856899983422147402698282394444447502069593272469453532371414507139146141538977894804627275233466425749491209756460233734024753308835570674786041173359810633515967324207620089704549448500859111893070845369457279371895496030741453394504266892251828920883763788265059134450946425016129887737142079324319101264992831480629505234400453601147219971973070528998473348649040312649391864147306104718283812962625069824157272339115683956164186348358533487573235684506120773399095130074192990830156402310136012308461280611797532704082523929780752329670589355443600046582945591100081438077588700128438490169876448317528868348340624797359612298203252980475669356971969040671057614076760138934461452924576985961777079139411351488982717256749267833039002097595436780168455504775992631435266703233152934183827133800547306098257483873769768438975942179276041392153623386801948855234484641054393000063707215953837392702563129872205465854910692852423324427416510615238445064020337478978543578996228841987597715565514343824495179267023469909531974526459316137115664120202561028092749393638830508293322152851051976883002161732584493331154755853000344959524915179193319342572574409032212902123671566721238956547745419295321572740700983082848268187934490368083759315998888951658396595913930623934377035343603191247174178916848241401083443342648348679112659036362572526939714991732521304377986598601080536659781952485895852925680462361476654877794747304605799870378558644836053570366598252785331572608989322921727450776263938534081775852922253399309882457655955281794283399212387576213776057262840357909743973583481213359366601992493623756183628119038090513040439866554020160812041424858375350332437940438062877988120387163674358715631395949626080187868215348089043013848249658432403317563151917937087914932302169534810245689249959138707625033665309362450580514219096395731976473710230788376840246534314277881001603245604514300885842065131667864740158237214858631871649235735611778561162275154865205331564907263512644369514076585861981010227946303312929747965758224273432660854449337533582448579818698895442879214434537422650512222012392902515750678513491169197732290039104788723665156023190606052209614036873172865641279140384363659884604696801680340740121067452362701862977402321608238456440250964003165913858278145050035065023022310475980349447252688115498085506103645595047226732372508505400228052876161159424010355072269141048316130006525153098775651353331756042216508823279014958837506715899716295043551606122905779490150640526591003799661458700667658252748397999884169196384197529912122427235053263304462626768977717785257299679511718987444470869453126672647747578078582051954451911087648459428955037404037869359803756136003652303413313930552485697562948755236965003424986938731802406682642202276256977820734572228577075254754418621811448881966099994524647830770218799387714620163031396781565150026477255583134038855582080011891779214280687576893429084628620253441052889998589762797705439210194843341704976519077011738618252423392697396876890208422973113421015817841617867925047330373762136720775804690372854981401148636687778980949785566367733976780337026214479042886872265138525190851974315154607140138963796783625768305528024543683020330187550461541183376713806278215730946277937481350776925892725500547287714305680379566197006169708800669906519595537717608492025499657596175826115758614432602765249324293432793750472995798659111281551914192492927153268028351617192804656716526137729556036247110704496279728705368140554525959351738466928706534253654278423898191980304375846818005992652117391256960232044652136405548094507446788173211625301809100127811497459834566844100896142760397042983258740674627026168848820621405800979842895789873817563220206243632320183053764119456963047241637863097757217268020921651358831252234227468520800277383762804078070883815794086770714402172643073964081630719470489121973426699805289425952417097199319926402735035948636679952728193350188878650403441295822983375093009168017198096496908306630165693382914795376536657376919892213680053218626212981762915371216542826112599594779189215390874214840889831976083843597885962515804252922421475764471122305562099989044179288940354683837946478913788991105284712878864901166179198353652319747079396307495418158578278630420549695777311651578120484490916676870531542044332422986446145447701878636248048871172461966536098614943651187353616831335493763353148175986193179676700347371891451320249663835496373821759872664390495590183048367736490744860933618643885896161257696171332450587542994451685636233249043902409879284605603496553524533197923898785377019520051109725478418493010159358380066291296901094095574700666127766539946997811273099773813744523174484498675778355829319297208433605579160971540064190219167951520959204765585141454983630510730076505930484247034121031908284443531065091851180961583802640052693049557363092047731155761641221173224546584169676494062565818215142236269686159806452680984121029071364705463298307619967482119435715960059677974139749043496008257548604919653185526251221664737879944891416741727081606091039985211252514923957044516239659150377355343072667136613874338266073620506394745889455209786203634687891025276139124314610016082655774109924456341196159038563791929392401253076235601410212570061112871988559445882125991509065975085070067186730217171467815053273468990778781415538378179597091266112187357020807189406131097081614889250566437825512451704454530145601827782237669723280403005291729465423317644843126933549144877521130226504487891264691829020185410452839087387529166497836948963881698153030987454484985592302741812903264869677688479670963457302940301306675586513141602443334815666408669730168940513335318153609577131981777598694435898596866935818513739298016330464598248654842946606619396940816494419746255763836052377651287176754109656537599839660960474459351449617828014471764325991322728705047710303474849928250886976990954197417647838150618065213376479299932694080090719564971238877376325905568367406018734063488159390444408680889262445994301619601855865675851999668427374360027780763426610110125418640042559330382588379642497614430887096547853657193221790267821629099899586124621954042032365130189366910829328617281919518309368159471517385964452146336917789562787453513310446766740194652320387405307400412882308648631588477722250641273116258126399696323684749699113933241240353435965606622124509219813545606636344367639486273697796909582434264427055753521941192606855226236517515336025286891235623962484437822689943582070575930636296173378058721418894238939025475859493684384430322216704444071759248795089482370482183832799549924317214779446000304653091915027096877600190510149132139977022376272394643775591509868743031014246753823012135884376759935071880269516937469059552684993518726720273521289543542127587841419775397005457107230089021522512866860552852532155421880402778851243483073864171098879146382225864323047443182405949150108852273847790425277686408135977316140243082284883690726485428021066031594458742595498518400843707121509156495414396112843687145929486467336378215157075440400023118939597389985297858586333933963041471438933606117045236977927388868895402395405690498426027912286321623217738116036317534654936093689210932718727465109359267206444022375304550592057502547698129528240144071188677169624872621182053436425550930890444347664822775685495518714273666362599714614249289458034586417214432217360308603273091695762720606949856704176161175384067472689261874100963338445372905450950083260076309933440472166727075450311286294664887457380166558561773947506451527637235362436913547111034428167751457850120693038439264671082383520897222547325607098397148047227581850995983160029326237667281546455263321783798088276159322150705319356694011139212682127914808095979583042206371927044670432968626854265223153186373537886437958211847730525279170589600837570392761297177745049330645039927482808820764594762765571822446940814094940741605359284214854576310769994614485038372759703001896634181809722740288485237087968843053081159266358878651422394876183846885026307301774355719516754652564366675212866303852359847938222909063423317814524580351891177327953640451089572741412926336070227041469481470470669274051238393859434410141766309575571313548897281835876462500915139039125534539863103211843817171325183780020872560830634096727142734787323076864447459928922312420967619125461849437149683516450724172577523068724231641694262841907683571676329071007847613229129483860168354652930443049875187883870001314833980841814042504078888639231458441925036866626394289117686354990958892388581195796727885744201735641739666371279329509824107181595699114569297559778886628886689112791131269772998188486799708452830141256960085302587239891571533726725432319990042838607889779293141055189149771440646296735985831232693681440215796555577383408660819952965237554824664121600415524961788399250274695149541979729319937843620849051168449566273970220252754424090529502698280469003734510348208170335831435331059857723054861232585119175200797861054994870489663735240778599207780029728492291490526677836999818749494287414919903702943814085120640412821288445011509010253960020405072469066176121131630164691864161348857998471115761242721133540179940846193797520543849514197714514548086796655254568107953334331548436221289096039499927399803634081276877919081959949072203933328607213941273713140556596964268132125891809250006651113245201754443419349036542930328140201968192491395359700727413925200146402228649105950162993122431201470080208144877445833092222960641191652713216448875150124864566572380951051941485799300745186578762202020771173829382392299174007056038987692900117653744325455282724202003782505216135224644382128807178838743082494450721042674347119564069362140916897097841753494494838176024257030526847498346243913657320774385574278097358463878685138038893612778970074572402754235332340826912160779772013180544078686894480360234480271875629705275026294319873044318140101163336298005440202519737007065484201160306601088450307703191629795291733097963615952764893523367554374695341113388757666356184638874138140287660024387150287549516709555216661162119483053392317053784400203469889069051662909436290380452132597640357929207322333913128270368581134044601188166772234113751873633916634626584867952637973983993691701596851551917417399532562533584364183420873570680176933772143294749194141129857625628427660365765821405901173851034707159067745219068633659428288710890235308583218876459770378172475088394383855480387402755171029588456566124364708941668295307617662425010477510725912719635578921429936208506949072295203293018343999308451155349453381786535579198515907502191087240689738085725929000188135778296955713164351738756851159460491235075309982502189143454690680934979203287494844029822470563547054821768554857622923165572036099239086125403257395345674519198779427506911328603770636902826183702633501951289513981048588250291284371354214489729814056283863708234069161927317945573543946414589704824615465371769487786788292272878664372795814376007360534067496617497402777527334300268377259527116320307608228221775137240537609787744058205938241448204759299164022232096374554049744452649160120418029555739273754394543761841184300297890844793793399953548116083170010464602686366958480575366478679308453751464620340641025800086111730718559272794473244322688441874867939927694689579720930662078357982058362581299327170484684856404434494169546801735327367514520765127753519741041930822364347119241897735629289434341798123009454491589693400709266941558453678121708759721855331644645888062668370895978447022890758594739195664288988817920953777488422787039773426780521847415995030952774857182976494655293252583518189514889195808787392909822175316561083821551651459383820720435210934529771417274819147165831703234236884905278961512132097731041558481751871695128461903366368136662474778390595626831283695048833166823433071801043627574860324906848194420284871152925892674368128363272818007522759113672264595656877251608103999213211226401255923253776865187750444385038377759413847280974151683913962041400498690028423107394505909956641029563413129887339868860900783479628621836277429554585849342938303963514417795235236453883353490114453226665414155307932801428703511719477324340344554425467894463075077665761656314058911599326735626705417859402288981831042428291139155536189083904897746138554202481735439858539689478756231507144571575479290428096040852015669517030797734052437423703555171278869407313003884211067441971023820844096540075828462974923660491280002921110583281036809264271964854583715028147287451303857350665070106312362051750540280482644911244009000125271651407198007159362308144287988334067717823392306560233303456615681351103618946591701453517908252312872432006470813938270254757900597095573336061520901756886860983185753118027791855045366488369509043265402326834879685073096484091677101231951957564018566662460200044233823193752986856546627710361675404140835976963024093025664439263665674336980252909605366966526333151003415352293474437409910077735932017539856222372242263770099669276943280363397247026239532776794621070785431836058735190433386283278571383147344002108327584953742269440545412204627038073436764627199995827655160652940770264299535488239442801075345302046038504347983466272501790655326946312884882476984936618445673404771083667288843955676121989330215061058142949612171523836975218990720320322257605110784143062540638299512795072179508417211694083271871839758557485398161017366552759784251722872712271458427732744645151538250442484885355753068184220961885480737282836645184972678499586903001305718747806626514522513170690805116517082863643407221755672747600958592543640879475917239025965208870339206235218980424939125035311792741750864018477441780110464077800436620984750517075281135059035723164063096428780427232460579365971202725583265778964958534153412018430865696998208879459234001690774477209148108863105196318497738310539001941190108429391720202371435941347496081577728805573859837328093363781745980044541591916184418500606927071754715869560422320030000915965625373216518490021286076424245891040287515005856615104888767696866989552326902680771532638149769998383140827507522028775594599376390917172223047763126337484413851720988384649412857023038532016970544421607072216516888614226078524698011049224766916274351297446965678236855442863922865612079611214588699560597097251457544569296131665606992281296150990478106673648485614377472719833384614490740797732980918153903738832382896473012494017667905175962268803302465110750132824123007219886261435008852019403221487318969796750169924894625938641600678713694369194521082244341892973656427843091582315689032837070785804277234381197888943327497201706332770411900133455153910884722430911727784483704127577021678909168624157281933567943300602846702952253091541948497791451766531488858043300183634119173369933893243690312471401549584369913744149606349778977672176105464743994169391474142511989419139510831397258407539007931621093949977601716448694728189793526535585574463152694773630776815817396794812781049407142900101789823220255115681867952360832591681110821033930650350724643508627239852131218830951051680459177231476533976014290001679873663732718307818398044350411547094889358429240074301593239786749588663626998902144792815837657096915932981150019646634561092846997153415037144621693857751735923817409594367993030410871600846687658836785584765640165239298820506349734973600320180239511277385344643321768608372555480825203973089731698316798387113694181981814943142498978133715893578683350397907132520726092474975450426724560107654384606814500871591493470128439063104809458108254729406155276575554271116992370497250201654525195442872561158850655389766219254156490154369725346767413247702971453702811115681440969667623675559760353761627054440759292214134874070348871230687810629570202250301012187238161600038918238251784176266317640318732741537453465979808228313637696934766840173482039021634114624124661968383459203194904247558235446014985737612070471971729740857149034152945933916692789793305078116554838896607107745797813242666342616489310099938992271666795129982227706960896652444875419321674018112262948220534230995502148492361118239759032969362548506053131823764032303361461849581629911863486653983241069172128990529972907699803477983523272362082395896206395653743958787516050441140410062226237564828823284130188993337557142941213263441707130570700164991733293075163132997869495570950647067338682202632068830995670839362351018318547648504173216445656253722874002568698056463668255171937858134117196633728717860496067076069254798465699123770648459009521609359559795030672863397184558700317164914917067729488591447920439932647708523673943287389848747660950445564780309775451602813520074488830523200647049528618302367949253854285543892943905936733090410533262502471407731069259983834033028977050445075613263454556256545562450245304861708748443309762401145649580544145434598728583991909435967850623160067585881812820149433011617172323268189399807201618548845530878924568646674571847523899057325582750055238634260836442255048056463281778371184105620286215620953477196409181390514462349105324858810830531894383501408384711348821607838177905576022963002117957634107551011923584954096128737132708174196220529805566616227022929310463366546293439900211027128506004383105983909333740540065157447675823791497469057861124243780018053535320654203483465926742212095044737208406941417199491549887374146368588790587407266461290251200483806571040257573732552149708752158634042702899099668422006979304528384694839545812786786027718607908443402327953161155715512016896593265044655615260319700272942947658523178867888197784860224603790031520859122163889916737988513658086705860071765811473149254145748089993699895862244380846663183346827898812311402357956945345248136083286965229797393767829448003347757644041082548202753307469879142844572633187995973106066413620710238687530652620487151183357465008024768712347633787147963146525641538406275438816837149965435869029723765330582760193207156742221129314270199080569060893201784875623352748725766340021729838559107406749403525152111620144046621650162681436040661838704619182988236054653672765197480960878950406766364642171153067070078930854621067443751651515707223231214071847126033770993539333308804820236548516032517408499142921114595872628414700643058452322054846773643104734552171248524853954930234449517431370359761793660689628645222347771483950532181442860001099427134191398218083785846322352169331467731318539147076457103370208930798917794481476380259679272997370561495949698991382260586879787976534121695601506075332151040736683952457286628966985757449250830216025019881482013463237831317949008391676853745665141121769822541806697335994545504134217226390538402971234557014694454290175166115627379027511325493626937320404387823893772379232281174865747400347930215408185193870652628634987848858110529989788842017907183329561407655895449161039262072475619576341411600088533166636661635523888700565195522869117021957148300666754925153017531083219963078234377247979153663119836543077172135059045186426549169047894574797260649213846867611817708754723776424113970471713516628760231486874139820100942234453542797794727771009319132014405434255849522765429580626422254598726418772062908919788015167641886132882041982865449238739732656039684970349166108134538469237172665444941685833317673391812777239053305377093815714658299896850764071002767728393852885375125049859720605394286371673418473019624196281876816143768076829662077659361160448775824802820431561897118833152031685834634912446768091591853765997057390875876543718808670898547342045457130805553295800115297178293720617288415157241035048901685169776102961206170272896426156132653368822543082293909936640706893287994002957668009530934827390545184536131085087605606045191494824153260320876689684120197713299329017035556488745687863460072633123722693635424657467628649861821210058137379898437317828306503833496512109680738166936879092195315459747936633456686902033051478152892906335314841879288741429612211019572540538880805132696071596491393546303130212301396632565081386270522815160979617065761398318451544405026036878963264581542474042262946708701507695022574632355702850905092650947887619137473330182226410286907150657446396216962544742712462606233032958285374828498720586253826693154440305666360455590240195672928874850260430643925741340559400926649562254039489370725129258103161085804753641781073957149013109634864411580947563415687566281061552625369257494001564256951988289045623890260779358200653106053257019875678384982739115724350455773944950633447852920562471382824071257061688157045408712506613788273832542155042348638856585959166463636235440589132725455649074288028372331239620914637447911611572215359821506196942799727180404114772860804776842973037886035988433516282763742535279650993873001725548900445641355870479036978902440281370150012586386820399782799103508201101750446867962832994089373688136642865904336386229357553185014278670574563708104191385858585327569237777699408235749700781861788585641972261943115217252034457583792898521477150637481610466649848465226256677199805218497823524492599698206976542471154269881516468761978307325558544481291914848597906500592715155070055905449065967484020986664218330250624280292051712139581977256473903153761269942653615245576772332111737635669294075275186862977288583753469727752035121884888763442277641527168729166295732103485754691644432828700054521880293695883620117080733646346164153927111873125376447793774745259233084080201221940525372054086772606955630910928553405026976496763783486301055874921810015147131162995540871266752238060015443766220931930997940300782385787156059260394463679545687681581271541451080440071434139677834762620349372116849078186236775407693073759281659895439557623867697913209912557795826696370715684299407858288630780267569814470343624362484249782246203574454013872790150838021498649554288282877400256131861216188994650947398230100190714166631143053605049665271461385104212548064839310533241857080109485361607816593626666389342975569260759458380090825064818282320969196584221003792508249802911379085646068323439499160462419351086491490083557773942540658400979996473714771095689040261847508827117117969480394407993572380038925428764088044393079449793677547473661383032300151042546872336353260847410321106154708248755621421652003075062914733365276986479726170094896648859502975383655765443288808054785054424722394866348556644476339922322246152793548687541143425315110231593219993575052661516645166017403639964997791052684360822400889859223554749908928574920317491218105307816346650715507959656105333572887990610726278028109417932405760550266200627451834104178283175452026267367607880107986000969186373830546223223984742288373733660893705581886782211321673146809631718798582840937697131671965981960673234099109271724942598121013201550849930444907628812448816448945750909984410645083822611174999566862143714660096073716323266802462340561703905949617896871809140424066364680831862522883576079977756084945742030000346403554237826226196097431235700140900572589420593746924790854419688136077162764985145078245931829709339025046300043376539964300686686772324017130468605786226720721588016720264021385753735713779850832729157354618887404936744445618776545520328784805007851489190829454795391789644017928723043085241148756475672521821046104611903671191430125759586506591353612511372443188615241840803846380227780542389464331449634392441482740403583406926554327766581985659219529196490637665478386949496896054496351294372863533326613216251873534470804790276922143913204094532914227032276818143940052964020206014097597420187182089971004206510800015714498288651272798748176099496233149419297386796717176221280147837800981188573891996899421382492824771869781933870603846189260829551618067258464793505706667105718901968119599554009483747256089693353614157203627090066160407025661045377805001497879204464258646087891994214437564055870428526600449092304281253103051840629850985316957743693818625819124363833208475459774457951970891993140110696259274189052705706705380786646211004841978902794558970760310871142141744996469660526206428429766611829949604034842929753148536872049794797958710779902618564118154414084332635162672367445896006685976838363137447451070227460043510209571325389428838705227849665196537114539749374529778858834157522522647689850506438882718678074570415501990328441506540578190355854172683609391010391495621931708176476768185924141797467871993023216107847152305048748854145501959060523722057600066688244956025870489379361995960293031746020452344870937819098760154609006247798290095579737233205105800248443362367898715969920673857635007480695780260927710041191303077291029723966076610660114367699826311391385804106523595930471854369822612621936774857194462214495787360462921376433368896016363657788104070725215174757513056405634652956722264589047147800144997382160200556440737324370147614154328081072469717783054706335292748037562138360273580644676684278115580401571000064517295822948729894592913220021350070661039067248127861753757156401611442524782609372264923572036434528486184830814617296004245773363917121477550629874869915375568529856874567348405620977316448423905159327798071548754143398517714662764416683099296223315704323363230865941529623701525884204917903531819663970991058852345252383901736110230432599300185274431450885333844060476690734792061617232207272452388803599289318176010964405106335542078208635233762344174147221513889993767938987001032163657953324293190927789482234735006003786100536973348458607173425421972147440740843564051518297285842221600246541712908949156390158096453829050750376194247085420945654430251765464294432406333804906299498590726646525515780595173491992380709372351518880060264776989272040383872072000000187972658171964810582501219066355930206293048809099626136140600973743028315899917389048213671861001714744314326229842617337179369227425835188172740579872482859081868828810773710615808697420118470299669431236647603676720524603749506619327204555458931907921974432598839279853957600696665059260810328916424051673779027341499906274177429895759534654173514625534456742426827669196742210045859991228765801597880513360379410534138995039694262827269751627013142045139214440436939145994994706710245561502381637027848526768478403433851690863553501156372718828424899911600359903037674781377006268187432630660660702699400876808770549697421378595446105798150483855479288628645855849159131582309395046787345296546930776272408817546624048725327020949114877649583253662144517172845308528121712197808116485071702162810687466743746026940165093376203747622555383955043869687688931145329728562244116977397925663541412208283067056660326492026238362828443202408447201197043075061802613394776527087727890437572315180787915876041270424064514004051969667918773064006381120101277527090269317355533396846992528760432778960399023970167573293227207827267092141834155858854982558667557297456282749762262545240892991627339520221907871290938800619695040918359229393411602007898049066575248401260698009053768347200347099162510508252665865947847548889870913419993221263786968943174636906489527002057206021885663483747885422895893213889686050275419789320728450296591399757616076453031946008736220349838865432631300164408409596687463904066051810486133457075894196227261635390385289233297377670881080037390896159968259140951806188189503287448826735337309860794997894718198335621839879430210855144305616181748102442606980887788068188975890874426205335737204341868008574807649756645266051362834071407349148039193798268329736448800984591626764138637956255901435559961334503266936131547083402202797345722105271749222602021246986791163000723122637601808329870683317398539585204286881633189919552339951133961443635994377138681228715437712865628875629618632921237676187855600222942922647867983108773580438089921963691687130742965866130295591140446814041123866476653876652694219515173243412296441630372382755470472176985435464270898695133885097609650092655914895917050950090240507985734334475645568268785435740366400597385604640131461735766228068680995194777184577596377445978922007944766501053211481732591538693694928074802732524712362507942281519530373932526433944812420689404511921834117449926991956750705364729957202586567890883765193799544085022597192733529790288694868943945634481722428379783182276118475869644613857838366103611035489668320364863746836920411609024413128008693617301031973707936700580701380688518329563088149421313134005800732625853447465476912562353560101835356399720427118643074122923862045183682078031249949253739275718216008612725464166440502347059418620581072060335165703809553746104820769760798966923514288146296305624211073421072869727208847083239467681123200590848578432821256106979159254987291341062794691952433547981888948438962747339227284452053538717756043294486968323481330924463263688470001274417946443074460025542333249204370146998834123853859599735576909281995756257282823901850915007627404274941416957274631972509346097578591895092305868136415695053708469627107157543834694563038214667431200247247540769937643097811417463667008684754978182616509166614339699270249442921582096563471172655402804406712405391370329386438139077494157669710264984998009254170982168452548782873007401404707570709628298760068227648694160383652241391631831352575912576512891573237851237762119181610399269612441416449748164864948662653191304027568836710037056166983777425272868694508862386061325197822020862270329466553379516593922247856293546875211562848560666468249028930346307214496438409726095570367625597165758688942282879825546412019330932345357409789799798645934631597969882307561233536942613346790980727935394370730672164555218321940325337337774543647932335788400764327397235765778778222525592102304654097027502872848752264935102679447659334125266187782321482453344125959278718586273998281899975186202741174655877403791920405976079105312913893352570883660107054070426953866195678051596806748860374076834572940095467767492062178889862120349981606952084806615863030356306998995124023747694936579233516493320240330778464197722932601589617505661829138399820235319514055776020941398216847225823893668234318285632868783009467337238154715650142610941102006107152595744152126545707043431597723339374876500182480525677987166142369874071164159103644752512245758456981329721426044805885481471331608147509378556215687855277496540041605787078117602316755608047008688963327352170825742799461354345179709997285131864113790169889632346057814748324722850126870234716976982325147579589450273767273767564382992887715107378259484684388794358296428383854142579694865099639730184716847252801642542041051730082054546389288910802717920051340206650847247071737930345378401697608673346331457323487725860056962292911361364915946040018757287644485358104339657529883870825685891238045054576025335060724943839326326331521030511800191409482148270970928432534782432899300808611145710972524244111847340938931101535370957653380282194738511774824796525225013179241024229308196361802210360635966098517872853680834946003386828637469851199784168648578281973052006547863559149147742344915364125965690834023904616555361508261581226739963950225540128060220080923310318845242871465036798429598777449686654651113063311580781496329665943269721275562573680656708679690562026001547113760911766644918929437901799337777779771966647683583547149498490284832419177872961883583057098560270477517935348976456168419841969242182436723924940003356014384795494624185729752455964262249615326271009241882823649641905206126027545821961001255246945449900334542749158184158143528535759757725479700703644530397934515326584884208124212910786687235477811618745028363223110414367091752909847306678512568877680441669820604611052894948728160496421347720817262584623309324112462850139233776565549201230314131155958081523187746649556848871390540357556569684664259455383416015662047852751094828271375320671987918977476759020262148870067674901380424476182148986836363388681816986437594390104034120747373940655463601359626816380598431409358969887802429949192560226623703999245440344033802187107545773957438927893947546078914623558484379131014246737573631494412533543572130475404001456341219551571919152308226049344012263111970790967670687475876441740948901388816901762989401945159705388647324430984478272583248128528438559263509810284257608805792733402684138945478240950564067242403233314651637364321138860567766745787492007783376877865564341406079146319207084671860401668515767623718505273146853542523040418107142291290200011616358603890045409861157574458699149172854215224259121282181273047749740394232185812007273388900076422248994935152742323201157540148084420465686325512822499203627798588237007015390441770613254386708646154037996932775356148589552438251296790626777511924286490796556348785729388905091396588018987147353409821342561488828003454200013481809570593000419301687595451672002228570117095200148311928270832192575571012067174747941922060795007065497134022754616798798357979989852219974848125234972715289296841936028801519247494695066656618798472698850957953610510914749230790295392472951333334273608749095754786598184214501914855869629927133259267806867116739587617801512052012371249818881203975935434029887648868022680099747913114189476113328512370913096095964489353167666944792273871643047853723551779871469770065602136807528490978191878017302946864211086328722580635311712442843191231742118009895980218076368459865669136968612861651220307924740464571601937683261106754211200393498487367882369265579291542816204576772581056288226862092224858434545975537894456244234370371070729385551968691507069303967054676352544565053887343186563576099737223834753095564794079234049812014560307353647434346025307087053272461032551053233674632216538972742101833528764984574680300573286445256118005324618090158692435163412766380029031549118322583885222758202016884206839944159499107157426363001649435505409566764627956938808866718490291692695903023340408323754342940576216547181147918445822366811245681800186301040243746677787070342675676491402912942546550195583088327462442414824329214469021668420190257980987711805864509951785357892238862743807504130028161169506960505613779167678179328617209384231742691486441034607922928396190721003246731194164329523352202206944385532512419185234384283067454843837109752284062217528031336129194036714520940662600853683362541880728929229394049808904995285894974788704628024932461812054126462928367397643032848821244950191993377821081688397590128442757537074325066234190266733534847635725670437791127105015917637359992020760293941529022410339064482076086963089157439367893186961649349526461216406029335024519655106840690502999036013266943795475735747192705565516697880175888782719513959531797722286644421908116104901252135581383119451085443354313628811847389647401440357168619007002463901796652224516274225937170865589701747222448413009300155229847626995050299841098434452570705748832020942813337491880648921760047026987321137223367477237491213909114628669603176730159212764014753505269730551120023283670358024551179746068471725866723620384771436786383475514969914723190488680366692666639111603179812792176349346568565698372494501646462756683421212497288258362473341998631261997672364093488056295427725426732297020282495718655758936248393270603748272808227223282814037584365966748226299568424820806268027093630473614016876016524191331343444857764855985376665001353126198311447700363273151592164817466996031725950034921602663074302753211983626087752100702432744820741565062933579670824478572636669599742012529925946101605109236606000121933874129050624509730432170703518751323182552595029468513679686215919980599221599574142192754830640786164645090978972089172868167558837746963153215620186860018309459827488146629760692950921354646340530395781100153685372067943731599075598902056489895556863464159858921794987988965679060105900022254095195377647915385272289168139170093191361750450893444040672201268933669312611247337703508181403005897503645950398905351585279071603320175122986728969172090693749035541008649640123837075685812392400208440927711378002425392799994124077188666491816971799997081887704780047359318789446844448014684442969688603244169215934583244707001265346767714996344548208037379462303732087752541975989255815124775644474260406375252389086646658036484878948563813448668814339325643177999313929966493735049596992503574227218970786920520687879980208599732393492541213738799792729242828712205818834725902439052410454976372511643726146200740741300621343732211754369506653457076276034236769569866472321180424781634141794215141057946053574743519976428633219727875237861642259874535967181450354741983487027374323689370061352477333165328683397957964895679691442902593027912092733566031439156280966910617036520173933797052005641386795554470320009422190958046086982951713093654854513740605368497875095816891985279308559209604585522581823284188186747291113458919650401814175023994068646898993250490795491334712966771452811392646264843221833881036692258483199404572187729978519507990846034745265823491334847263852165306588700939471105287741371457693280329305828878913276332667679431890530721618080183372522462335730360469805239915700886094250868161843742465123553609089020191572411059561898526347454230529849837644490245573444978294121566906493489640428015421332969606716030374473347857923787087993795122367500071606066844750030568900731766501371883918956019148066285820461757373636094740997345809766659593444387276977674025522569056389002439442069164207553303886388745363202387291311157747959583430311484431144758776159635741524984854204505477582054533966225678377220312578018845991933480357503902512895111351227163792895184298461336665675200828013696442485669561976074505567709115378500483190206379450522574212521657233403462223011689541938930093721152952786930532117116712277226254283266239863755644452041210366408890300922345303711826382873813925520796192818913385198010754579330531943115986856042778151888479998072309404001278372802104435669827660461567279132523018977679937933003260448763554887443276313948015279462045007203481494951322457649725607173054507540520966215731459409248616612916013486226137942976015518284088915935012767110068094459588591949301308181959738909970869901228475581252932966001125155154584829727930739242841096663204921014606684366558341169606073583988674795645065079089923393341172589436710801572020559040304850574333705573610496713654932151252777170167569601621380752959189544156124272745940513620890151503022541463982433485716975699867740040135724355847702078518576163450630397799769614857618862725783344967325175216867935673312010737679820439316921104316501367207291607861777652560863042951925727735249132506621794144129990209965847992408738683852487337764694470213395948928245311699681551423821799719049089160116157387543926000656616110509375945173873299610562598855810457258567040227797865340455070938239614511727200227121282744518099105659728420631698391387635101505262555230658141983082027577162547700126515636335435293961165700266870475106838592800271251633209315061302619248423286598720939373709734360440413636937806912630108671706670223320384818627380138003550630676546900891782822443162981342823752900579633553194156939698228793563007293302068469538119797393611530235460518362629080517397252903867591600745495377198860936210998203389817684706547419950110256558623013540369528520966090072687544630840234368312587928899498596905937002222593996765733532268459587893549025496092262950132324478504463999664645871774037295060673647162554028808652648433241992348320524406681810866940692203073677362426101368258529096370295400155692142217595584185586475453061352830601702655985647843085713167498817734638760992939368789740708642561411892516328012053351754513511272710771718698547186486108883004936069797520276429656897669667704874389907468763098042365261352374233411567866730402443462647830097293336288699539721488336593373713962153747377404692051593818874241966326966472467929657253633758266120406089413782703750526972428916762000750175974917336470959406929478221825425345475301561197924601766144223828752371636899002131540279240195512422545105989637379636281357869283738124095299684704501693574427000400005838471667404389291738315290879152182606615193727551470833911260080098843311850002579945046552197080997489416393226656468349372193955660718486240021232646773407982608299335045039457622532633357917768752809250369428745388028451221818241516952797114026558442633157934338608736055337570515456944976391725143996349531249566709045998050665831557075103498665035142032214890483583557111238874347386080470830992611372961971621459305646739620273204216472468834828611106990616785750590038131639243475015428669754428929394531585332393553169253765226970905297255188094892104015533514793385924305798758650002492263507560807824231979353916235817342434649089845027224605485239471867264411027729898403255194959287106953975497626532904657377301505588440631461892263692780130346063660778522148156337580293112749397103463631507163917531582278726795990720878259230340877091165067192124521973451210887896513002055404571890505643410427813433487081584235598226903579495194157334004544214668607703164560942837901749670449428547082183159549196247702683003885906562850203396205927959804315327502064156242521250674575593828763475742205171281325773767218554031802593298346546117217354100991351350429999444858558957914125825339820384547105350305684376094395109274072733245978610275257871800713867599007684209901387079634972744411409472366568852650417138555837821086362982733702155427635843988021885855284634349503590342009795517833577172430344713699515079060204932917390953013203832847563379396197150229057403187995284925836725311449397185673584263872212113673880794117331979649223740659173687034821428122246221943830276791161953793669978610980163335252293937541254873104311568390194016284744488973285865692540759736917832198128761780759943687368671425816618146605602996427483519614921037241491516089790605331662297215820697295868394499247469794713268491416862886309092666321281684709659112310633121792561757943986759748389531269718051923098603725801442028196024075391959952650531896355427143263933338892585191773800602000192291619086313493821406419922002719868736137897914423305330637476431349483270745312609624767534485003900876612426086109469212792667767892842141203466062879295864392970869331861321887025931245909682224332372010942227046925285782012336676088064962761084219586825476323566357822075740906363048920107349397993334454862248615411694540573468334578119320675763370946211621395709649956064058928538364255979644214407164098746026660130219945110300421247905042878443464358267646398781662132652211484099311204322033199473332086273648998066029016882745802632071430274417443005709548467420756986074201839705672700145783747869771532939143737491357988091712587914860832106381791895372906218627398541577031442204210240533873758671117740082936157586843681084318632598049786957863780439660360011029786727120213499965673637129090348192639473574259674226681973397034058439851917091280734009754663769789737235923259632599317550104972555024052810882593496871966437185738501636606720590957155342391591848262005532992506354896391912967172655026509295216903371247818916788829023588231472337515241203349916539124077744942168150936118339499363050445647670532481244610994401428879867289395281137113829529725172040670901697248244767162954162938439309277043368490676712813019488626447210602432656926610528125088793292252615541776869113175986866151403150752472109221898342610016345242963399652762171283759168157728828024412379630266772671749942501620715307861874334969685767601831280762379967755408220279888511176388083215735802909909922237129580380265929732294801889587151467384669316141716963430795255702917308192898086407898178783007595262274555585108798598689643270053960060634334490097119844184882077005456359279294529512595697657561653513420548604792331975772998565169325214878157345428778430236642606459730350111686017749778059325303850662769401881902018839498348337502912236091876620710894655239272862431669989604653291539904719464954593428435536023036161853398623522351186019128713073273886444914146439384439964849015489607344719641263952674140702102591617990080855135049970477253024742759531664858652595751923558664202204448029572863973367251774942017998041106336540298191106833212216508564561080356651173563169420206964338226613117121591390807293947154774204199433823581800164349191314500456148204769176418389783990428837059243269901410855998556983134064826861429056922583373608322073850328656210905564361297967378005874554245096971690074578651612112578660094203020661721752637489037562859551921910379854141464450808510363655225475744060325722828144172532485354679031696311711405895231773969015448238311550247563966532505752037573688133873128399595894710246970804931464856449176202709572968236030227390419820375172493208440646954171335386546804266072064459736552014780520536635945993072532664622423339187362153862423721044660627053017548743625941992890853906233101938426119313011689218070795194513985221928454674709579570389501865819330055203774634359635536839999779485122386326670773582425764622405919222087312524523193372647704667867245104700598449276449761151294836673805160829486758341674534591418756834939527688774613905080104949541580508179617701488690580054343712623206565573355578511396970835047294705868590776434697733238621612431520860148805926133958845084071011851209301044980153989172995493653513725844490211737930195675417457475805988974651454881185417422545414566475135326144915635739345966188344917011331291228944671590217942828550349843276918339079696239663566849434616956110401029821279444649770907257055595554035858500205266278210736872066013984107517222997159137956077231226586902897181663093783650904206931742096748421878798458473621312932709266072126362632148472362459229776706581264913332271351177946012999764594902069856235660006805173889703324965629809021380038427864752110735608581049893835603240357002721165790379783399312867735241627108178452319449097103817555151248087357897758886150944491078417981561223473880818854430331497342626119484129288994304503775267584315718218049973358851185883084106260446430897530023973792729754177717551213656340701338513971380140879594055549674217535196389736409177968558582277879270885011556266867075727499728994433943205701392836064498236649901004675271045874317185848276957054664477865816078681470001111112916037290128063597484595126246321778018078284590848182054785085712311167561779096403730299035482024588012062755046684901978167592322682278119639885824442213779797905517704042072041013856118419792781757145812467638125779308722915583514247114294422029483656668126648990394859558746446987870716415687332782542872870081284320509053560139492039586593918014178088612723046459979859733325970081513160482733957396328887306248911381699138889819460026232350916878265727794473148591767516593866610449392152130265715499743495281324698251836101736042468691933602480669336497988945579354008849559703850107409555072630181945589060721650954572818134037375345094225211851679611802248378795934864161815997585099425577662987982256657366901842661343790401441579051263167313351475631912956277611410681109353306868933911392879950971872567171538011114440283373751776836014379110024170882261958939660360801322300234909094783538146526969455851276737351921877683924958924324070754116797728680556620903573949814153698525369079472565876007294003291421972625744254729477717203355415657691514535270405592974920542247944224713325476835556246230918043495480345868589531504804692977787037328795459710348429666380200436214679356026429491036221119407670612590669979828429908315034086082517707796769764294769199088572105814074620626260387998412335540775169457063150935928127440475481770539469912052334155739455523729074272265951621505309450329748447577111050370282102159659491144989225155017546213202960167394340621444476195636882372167222698505689191419618439105820302569836018977500010912093880997543612896666271226435976358981115485006931399285047323125747293648325540023161114419504209035385257134902601706165477437447344433902683249906979090950069175473318616689229524041166954356527275466257529959316320620154984955019989852417565185121141153426743711727617783210716608812833114076292308226400719803625438797335042754115964614898121620024128200722168317650437525058820503787448866365646631440895495896943852349607144573381159148588841799725215946181593264616499565849276761609151938473424031128799377044330447946722470081510358577292424805876141594405976619071812736390883921530455954129139036784832966786858327319064263734311520385973816440446760268122297342809104758571391467276813265188209078978569176401876709066775952956728022232870905103805283491771883066384210311606649013269338780006172330458025237374367749128572268868692634099507183320099340362576403798395557203633500129315880022787308713208536113497801152380577383177760960160374134659552721964801618075518208303629760433882411122922864939614579201043910147790792712323484060788958963054782573826023128235724211312686637752140221021628258029346115056411931717340718155022245618794830467944451275998259267644208568928015055648995619932134884031105697863153234693504650743425969417825081472125168407349243385426838046897074120850145975960237196297807218687223314649002453740874798882403693908847475186068613069709935044374384980561689785754135517705073782542807588849736606266139750878353485515736459169957793551051694671079605227444366396893582806800496405380222953043402286004275810265277143363253308654916508743760292007096788802316480867411122982901991143887515909014512963694628517686989000458046097002836028886013926865646935671348099969260889167272994782776276764325668773644253250949739880685315928174748133269092796653897062106190264683476464955364770116820825302052899193110289030940827494343692310750777983503221284395566799274663047764864270980593405150830193141412517163891142094097969807730079655463467927001100749697342491135034478295168663359618995619157187479458583352971958867757462021626082201669069576918885876425087177253872077618579392529089249155146822383079502790320893276162464839681612971458898869315980196669728588999695921401874544506666219133943346657666564470823531167105586850522709510432443141481445335486393375187526359460448116165079614996573186437498398451769512152423358968224355914877278380557136828168114713616955563049075436444790399737283461227376346959507991758528010675368694008664862377980558067901464721251180413492357883593577492811529351224515832039535072125754417113531680314893714031952460092478491019148368621973973075466477075828629834687217027921729019606052294507011925484572713445197032935082224591365100196598733226408197345099282860594748431603725103704733348450994134438232595399603454106434803502408229910412538853360541803651292436631241377036669117878889804801203972644185512400288791722878910400656309287736608067749616446597668441123639294833937551088774988063142513876596246804860249812986718606834967091780773504744403644078221238378256868897010643913995744055794821221910836969443733407362376788544112575179646103139086167747094824229833745682360577665596819599563257746002143471010469550704560477745620499470607925121418174556636683702697710309089039465181376801031357365697016247227247664049120678507836638859130250385797431610144051809331871733303334238782998150587154309140825698769153551894478725466250656475610734449831963209828678395048016863198341174292857227834930547269777008770360439691978891050374962294673579714653221393971127854597947372511068922298824774511783631104437723611073057728705932936527981708628856788939027978234991209235031283620735323642252551452306188269303352011196034437904910281620343638871608526961528481574442900999124404147564473986002130198402884364969841164712699327521117112315465009412010937302511551943913927778869818973683086604834055612236797861791769713791643056318789015813467971403027838449706681632831309456269582162499467854816516658852815465483688681662886460703160761999817817436475145928637607468469127104383830042731718024915621415795157669211167921751083081882698193202610361198407962384580886755653468245941824211727200924354952307887951293825097600713713261599192706138359503691319359274135547117935949419496516132266320058106841927217815001316261173169770454878352203566491900402756066925874253738765829442459238205073749527221817499333975401592368011920928772130223637887558053787436018542891138207119705628626683658283579990415196789579787805646215306931212291848936742628652925312867132393875045426471745180465361854991301661413020731526280848917842694718268606186558917553019856066243518775803618145046240846898767031198235490010040750592387919838105330307636772661281464115172098423109725280188599078576783605405038242553660371758656585667395769417303319045176384091087822783161367948435300264140638241634817861587389996641965668506687332472148619982150412445289941006855946723408720577291091664095205386388034299776301897935365574386806547153374295782193317603922404094881007181386230669641169422473396796368438997707315940381061960956574773962446269259006413547827345746940225156629535901839380019089993315354312850316641181400480417893402387208540695717328352142036875725252592464606260880573682395811142821263584297523275413066186870261136819482374560917065812736941728308079408845788131087558699247281437829177075141571234839295487482141230470762700309277022778213761167216076262043832537135460905303389624028717833415312274764995052899274098318766993093881549661817775709086265121219363794446716401898483503236514402055209043661308620938297063382544075980558119946104852822605135658600470236553309632437433565585102802175137203674889828932632353747192254957994734340771161386783138979248177959510594338813571096830188525163484003247214079851347685702870035909658143182589947920368637843366635931127257052907510124137395031575833755472588099389984689951970200678936658739966599334880122438579121852345840170749425574969997635131589090790615650446307211466213966250516943686415916941959628127710827019251806781404920144576044863054717098765150789150658707613484217110781814081783863717880692400626402603550090618487747492583906482773574846151869802260019342254879681484417102136821114776346394367013028918184963814886416259764575231263558993597334021577385046763319791987266989348387543067607662140627327250126498061478563420516656196913085782466127340742350483485664067635066944984193025476321464738858604481700853980436022885091249368787154949793054132826263450082440016127564742205219850770772257903244832210221868595476531656265212631833625151261233590942584765485443253185828692313030160756943705841861474039277678066310502029524039583143705507421516584483165006991488106493189661386256280085686692249858337009080489616645081578748795438874375743220345284787479277804638064833503062982324873903567803243530408012718552094739200258454953275321131860712399966372730324232052521105619641418311555734590871815848618155936917232456846279733161421276321844257482665777749384849498848531691543483191677508290973030618767616540663917595973969314757080921243034991703972548856494700906414443788313850747773072134998971281409545977554844221745571469990510233483259344475218098303813100794524696153713004474722585783404027443678646713373241255370099291355503662679913729841566559469130664250244865525043564631249777049254082060404743499433031714964395488341328296884803962615471952844443558698049546293221908844961196789741922961745378595972828324551661276447436679953608240979962261658150370960644369274669611648849317759016567986099856559069679913599849125516655665154864153416223125576693271770504429489105557499686684676385021387851036935560018117611929804950355772960535441390003421652989760765445552189050694591734430966209623362339754479795929390035640160928175944183926079081091337511921776354547667568323979695825421661455936259250725821470511872142163748941782702797649440583873427025104606621564202462674955624170960634378746641662845334565188583855009676438424048919146835482405507445728200307348360644717542681292702359186963837787673306777775385072045111777688526188135127029633685286056274613476360283723729164122806897893341670281458480578551424186145870420222252700836113467153868379894672031667310447951624320621890363122600582926268602452844951863541105527670073126004751690771241681066498561693067032008407989929679773893008617771656767464064330738725381969061797579117074954099150964488013304996050511786952635486040468347466539458170599271791324423386827093053154803352516262216172920618344553638079978978044443346560447812555272851964728478841452297950288540616642344240945964901719613722435149758453001200059960046068282015783764441506992792015318379738799841205138063395950415507583022173547366137017283216186668223318597328194123943661399364226674264703210473663794845040407710892094789334598182573847883137308525878583650735752820322015994495342975480508571137605577844523644708992679841157503794511829037258543112655554787034144130800573981773315950280126643634352547036788630437301067380060514772240111530741887836303927441746904539365402415331599550541355524952895260013098778907395636410744384428320360824185946430899905177970555388526174424944198449416610408746169419828812488694954153987180161816700806081962302434143788001348387535920117870307077847900583451874692642537334176899746750763275165078321219472725493957842981837991339279271017193537608443431639837718484247505312596944576208729281208005957141263989819923912532786558847487582973551834753035760947508273084573201445057293754235999488050242085491052646093762152807752490567522747313111299448512223556516743831718766128508332992542034643719850750924198985586076357105760909543458226342980300196771515742682273235048020756601532725035706515305800502142786195389607058959650856509632428958951530399770974387488938478914544814283862898059315213014938007742389516255161339844291553351646031540440790667176544776047818672609104870953588180988414710501469424432625087306724091718020589994715921931963646223343846245902583501907930320552207515850730203780483680068287932764232043279309589647033859974848576695147130462331516969292507574755686177266822083777796531136405112139025917696060848834168267430151698229359471271343687299821272085562351579111984647240829266637609979473759043133380068605645327836106201690918085495443763326757787716349181883515744954217380654193570897415720212344698036716808581724326127255435672156680023529281755888150836723918698580980459704660013271135120332352355459589935948678888586022247791415132868027458453432847177402450929270464287902695297475815919388644193502638507700496731081076083305768615565522991828134043353315135277490235408225962795570180210492670526630938286081454792646602989971051979076947570234479721691138746794745670405537180142514651812224580417282569943794278650296630985658532337465479649459653301331735240024837355013952935455594003486099548420994789160999262643216859290662978817748762911439464396890468433134666177339438132850794723571620440668774160579497315297424799955942988519263804825992512051818677055670848108325731285734169085142624052974312462078163581661105436025308671167406513336324007530172281616133633870582711739916527824880199678346425627107624600662062608012194422702429156559379012308372780555130249835960990375748555831894565303315706181368591951823896052692365828821386605993472293909905704595514207306676280087997240209836890233941814557853754165343053697472027768744208650999545359788774390961624329738481320995541878969129154526484195201540644403193325463702046334299413009355099776112431492465977434540090606527397095319667176859446015226918242462135514465183282867576096866047223523157273473655553675704654654845559217396545735357232429550424007208244333313836899949866118731412855793374888319067700301386017962261790190418995204187079965609871508448356148877685536475280425047461621788833003014266538044218314787801520710939121605597801727966106661945733473448144372481922212733958626150139903760343988906175768147124653782558797835278366023557151733817607480259215160724324080253011446661942408264530153362801818142128861289074757631158607974931279024902834035992090957170034868432845841881494346933227863975632504780321424502388184799844022298583606218414203780353099852201300841794134474226144106449258627206013804886555243435314609147499267807748282838036350592202659619273407071271886267341880116623959251764051352469203265177827972394315768730733201481111615666177930642207163771658342104961319541870147177889485041223216996176686700238555259440078486150445445901028205246224136581267821060829007298894651306054531869962485122096902341193908944787446054623407061453252331920558224996407465507803114088854051868346651436379553721087816275275176145440403831515981790782987832441812493902336586231586921289424521340396768863816207419147556839048850935053492207221786353470162123766407162138014731147104827279437647171002424994567351010163699322077078030808730331425984069693068640294867178616815314746578308866884101579458921261917171342756231848947939283115105340191590071284578337218759465152417010274023549035569631362784725656150238195867823702964202744445934969010364457925197983267129901573184704740138852933299845229952781557544251813670991282201862649918206297435409660403789687474863780411442120095604275473885210060062906676146350327917218742062505071470406248368717234743750627134643031312827068351036743587936068277391502725054680936276600579947237922220824413846773024364620021560381801284450010369431448414434779395394206306854020069693722786886963969160475601953887014506402149912523650943857287423498066219693941921531721513863558314124712973572282993651912728218147126786544469197470324791102014350187468753917365540893602884836481005971329704621089315390210788187231458472042947341272721353837678743874627109350306358204564341256557648906400503577965105889903211513029472572394253807346360530067040108092766153466728779088872772884248591629457553923311530112366841477219854360885951415398883964796931095639153792757503527975261580848722178705872255334343372108794604465304994333722308101289994671518647129145780287907227537056307713084395052864397214104342599608474400789327580747715636031058989834484273311573103507089739777360441519241685340831443927116471003929161975756088878980042190220186664001587900541084874155287469832624807075035035465369155356618823975616238358232634057968211377217591786851254351105554561771287438033436754708031864517968171232105689500087151112990929127544971265656679088951679005240701509096038609886286312390453690939796813473902350703582402476199051309157826514633854674421888993667354349932906688456762559859432751288232121115003767908321942616651525335164487227559862841285393772835244235719391421968329891038345658037670485033310634634405831761327112630551120411438884928334213262985354413692791765159019207836463194879743583468697439506508528719957384437291285124394682413257693331528358178240938289812130408255719588167751712587683371044881795900869595754802524455340298150989255281841638331052653111161220613751954191781922377727345675106207462482180287395459357955487916416311307899498748335104559074785481378832087893058765372341448166099089083231994836817279734953426964999267107527136281431101533837878384439943380674652569849257039272350816367169027190898908137123367136627846395621723487850854072173736215341046891636855956175738229521259264375147830703458245559143621938335334479853104541927836784546883595360742507473709532858471035264006148623468537492109882588363901377877261083928851673228765480697307050857762708265917591152151412195594927168173220907552597070694348857401754980217199486158552007216581863928222676724186381795930515593806085738602418598751562379155925612406584397553493406520233871870230677310403303950037433241445788175149756458259927911207178044591044823593374150886695134644903940667441306900839850869194037702504901696515636113744760762296512110578079276292798415857912559403629103557621164670723747971953308874480123485948754390331677884400028924872894587625784909599636986966234165618780799066869309102837529521545046281621604617470249237864961474713316765806728117195536158617459876376780454902115286531598064619751173422292476880891467831962907819247400978026841312790357137271220555459320372447210923961220043754449994657457546996345345122440921743327203887759325985053615370573162661720399725814476837978105601350605388440091813713984393586680966266591752492498863757837626908622178759109259798603665658791022232338772698993839515204113384920769040681488186792287759471219317865930369026446618250855133903145532666581766194895861762171194779973053306847428227010154407563520020173947467972208125054373629143342571361317963144027356149478779224531553107621695421048518245797201035244445283580849665292159789037713058619755020896655137783049328637476597125582238508614833248751681551941022582427231465277094956193725886213890280850454246553211102380285953436215846756517958310736524490221350347516140909805596885502580970150495599923301865651096062826079406280043393464587183131826924842369533814171283192611764983650204574262074414462181688451518829651029501304922894702042067706027575959687294111680743294196597401193526874382200262726967706877839664705405226643479015825633741956143386117939829559869835761874413628952310560370110631779790518332501272201185847029431180363598817223349948900015730890556571210050732789746048758563135036987011126592351584025197125303534899569789234307930542322513496876257360516924848531180563650873116667463872306502703578929350696700729819420798555797561633836231616723986151061285927915225986215705052036884825768310657099738861436424307741588707004271502359374621838310679934157891743442717276643506891035236942878543551969685043406323988994945608010873443210844722955687022595165410017752394024249294983758695183491359489998213139952616699637129575242968021252898930820685083441976019379227188230940183428797142422102372697158166979758053124577886610033843731258189706054971011227930375695527654728556152791606365575050633443427879734694683622054202182465661266391364454496810220920272652418630434066592035054308926174332995392798068289882276317633168258752669763836643856669613586811874473982994358960417117872898174136400233035148071064338166289503894123165503335986863339934732346494538924189254210442502847717340214031804616612857690735413191427683828820567931291688397711839179658786061042327316095344378314942898629779549296606477286772523127258823631343414777360785439729034747127694196560176263553524167039200179839525291642940426267879939245532249929996422863319347939659453206274491368896452428852142232897282123859452474531893263801644072654131718889608230968809318827684038609541611488168691707858313950682422007483042333338567664699910661439776871351500412630139340455140006089069578641589953311733215585247207962323610439411872048800360791597769480505566097902414703974511221863876993856469734933170369508644354125389951215397730936917555720762226068006520437208689174063846563745041086879922827507122587775704028320949136642096926805400654089276401078178494394197193465448708475397053330830664796274680582686220896816335889267092088352055943700287098657291323948678722109400499481138405131050898999069596146570771728651517451008996222863473964923884290298311443944729925440381563263641137201506464989333383390695158139822923968171696916724186599884490569780015472663203302545894366334338696827862812279940209503444171627299636368978473041869620215511677829767800056353015993373194992480637128963417465014706966154013141009615775872032833594508516799922144729667214363567884129326853456979790957051841961410001862185845384159154813410322218387825978639764538022275788251914878484711922284333731946338684244091676827253491289879051085025717638294137478752709844539604425872131127627348327177956987547138548798615653015510850705066576960609036186330419109556896529402660741681910867013878083120892626237766545182375286629124905723025526083934570832540125084833831917841270674467274265410070458187477315999474805889707513248559961510537530365651262345146370549229601686951289685883664384561848072371073772827854111600646735055153929276188520433015626838607029108477450262970756578726262697453902852417345120773196422230561585504902867204196903710790041418172715175692980228685502274265647189986405855016967542123959820069322637929063833119197647501329506795924591098955713328138420955567122321827045765851513625376584896400994161027464938774922835133278611084739352917348946262480797339102935494441741421102563209803913263894716727450555897333289717295296950791552999394296835559725460879912202779806433958947014906727332852541223097552547122777949178910418362248741206332388815958843222603062467289938779500352021386649192395039604580777785878143168597561106488635357810717329967859930021704484540852985734385126806685684241882687379871627710893416924030965666146888462488184726784599826442186089625192659287991466365694715206561091769491893188246516658630730977482422854726663415401679808254624945184782124246635597710586908325526119656410913166700676042237250738881917363293275786287620550357889001003349028445508540196134392786606799747670749282850596836189452846484098737022020961026917744524807773028458848232295877863079612380185359927452200022977609512726430015022133675839857203922813976224891636509386009154553134841100957444287842668211623766610311934837808799012027049402669152224401542751707925588675642281730081165268419213378960593586134570446528578998876288256557151741942137955523147126788111389198259350380132397975557768835684199077396830130003119472676945598711639007925135228167847752810919433918074957750958437018402166588966798963813215695716284575357967051708591651258008512790229215167271228924252973696486178343983639217615506657896654313197284506081361970818029719734868056925116465746179093204078838706085784706069829854637949316871724533102982462823204279850425101797437010048206186872972476411904845452084120796464881658799201602496538326965889887964109612469825141872404635958730203358738301632643308847794788472485209977120018802171760289488436280401472275498892912006977364671585704734162064011922629613927312196783245992587778698346661391167756393768369697487071517197474855664070915382232411620291098157508837956585117152643121229262448259553539905062444857959165664139675048414622595008092668126487684679233707628923556600659112295323047658106793806217992859977263331616609086018380530364856228113650788942183559752785578850750633510393157852642281068415217122373880158768655950727450711482303293732285632208799654065532414421109818352377592745036327079621440326262540927527921456364256788095693658868293159289846680501041749833967836604591949184293558806848540526948690980542932554737581315499073196652516166078660701564476929790032730972918754036118509874158364681266093546254885400080409341739700827361928495397759136652660328784588930283122665746955103242158629438678218195163083448439154496603836617958558738179571940943016389301823090570586561543708040026537368704754022021873150777035580058996323717280536576041292325948429448816831939871278314874372160411255879315794432887118191849018241842685421902754289681757552079789617635222549275196503268322578184158989095481156388032473002513392369588624178292125694432776733966050729860907269703035161455146405438404999948175507044253148698626403538595706739977907197156290090403057997487182031623590442015962683085323915319021073679548942418062004378856165051717741110729960923323346757401259500920219775947535781045943821587877992328465691350399035253118864795051889363994828662088773293685089485527252281568765625295041061162935768886227032397261244165774176366158939661830713189360135138212214589714008589844557869842561584919229747268425093465054203427253350955132885697888394531439813772151801784586903374345901348128780002202732040619884723260049875448764002180320629904536131359218883364401792996509186633729722394080519275455599374561456056406674983252692063174513434989618575171229135362622078533668686446547778752370229235362060605017967212296390666932616924486528159870638118176986085748111993435209390616159840042771633033249331759867352771529812765962523330313321031570455730012959799082393643647283731705902321572332290066835759380050586062984969279928919304137766338792111754001280815066057856067053111921396161285338381641981202846267801075014042327459760602814036842361195711084503825843414201954968756923601256997505453864825954867600494456908546562845624134420180931882137010964971046319863743216681256708542975304170014906491306215740560084007601863991599155805641330201114330900792005985807062573878845895047493800429751135888572491610623532362242901770992433471947537161704223895776426373926420503337417816768593120228329977836829616907588122423784486750441429056174546232729745154589492418302439071849736503447102129885481361910150745292955862574831982713419386705345767625843142665988097959817310594310156944258441057058440450568380609004800624752826766410665596820894479869609858217049368433744495792947303825915740134125704780100959999057392079460969272237016906790108580510432868658956792158900203887855594581530711124833924471011594163961005564694586972808662761458811543707943569254335983075035298401250898971118919300871716742873563763610838779202926857892063401436304349553743580077335706314683527300511143961411806710399608990735843982734770276983323518894659538470335573507906625526622052415991898093631027843984219622503961593952784813567328502961245448768988958444806180873367610988222920312987598469500718252536604151295786526470291613160600446164170623490052858642795732824338878666139644884453620799173243989013735054614592892844494376115338866665853569354010594671079633979035951028754467110550112687944432705367034391577698582148159366498914759863146147662191748854867217515815755974745456450476198449286089262235889693742214794695255537184056711761456466740638901014040950713285373147520076597391775593336002141788201415819032486595491748911987719079014376223027658537390974937089579786978003957139271546152380542911007829045525403496852168934214930507631959160130037303945559201670536802211151851978580315016445372581578312045716653647168460947037171926949638596882682514757031690174652221041755913146206134013181958348575429915523491882223502590361936011869980174132610271521922148595133680519811323635399447926303049992717811376404698328075158888446635664886416842412424072280468686426673732533409338918433647822062696587830434003761125190655562429983467697935530505492571407786777417537327763516925112606938161852494410318438242521347835833507126305800183390625716819076230244490878697882114087412121943588385412670857061302384413899559844179785931311565676339608803758053750112497215369555558958400480264294774293976775444830313756823319182648255492229222207864224193407437410858736885021325216845235103894971867057907048085247022319867651762187265813034985962490427127142983540483855567910485352426955680052385747625926165338298939491671545047430388816861091903896757492009341804638849312465012861201014855994550234449865922798339848954096214795155568520594883592381367934244980913573696437927064366748965901788890533437909471425352958176657391600690948870741114451484074766083675935904876116206992322535659210094053917450811681615152366010394908181871844557889956803175610742545935854122593486238044300960138897922565412838493036763568190635482288181114426086844213650638053945306478851603118400186872793012166987507775978895925003721332598053068323265633876002101573055496587228109760244739110455684647658582419044187859537835505741138936706748762807349266604524998859029193741430676609799066940796260544603321510221641137988146263224178062306628939073581892647887791678803885907160822067984343308938278665239892108801132763617446136123692297247501148235460110239925957891937203229749334412422559868259393856302111909334654617440689571490884574470428301063533903382852751050371437882891714077565737548291272658928094631280392309931942196573527992758422933138473179415043133105875453271824074443595086548017146864755996045661444617830541948329961266684651003137953976847983727380415600173068538224909046707059549933547902913954993191915457234902667368241242776955411296048474199012188783686079295629601283991373778947248021367759194205349821130098444203693343211480504916636042066381764607396646549043602973418966736578977398095757683275801193941792768693181331499080289702260351171594161852968729027611160542643765753745459942313552200555769061418725165972801974231614456864545722160019690991713227517045091557469193453354231971631504310340834444671995413374274259565877107238343776943625659448347103491188831536824547009052058418728622608701337762182720264425254385553101051013192307583095257813747019420247456958889375029448440932598719329906740351893194441939739909816256465758670800802756622708162541013992333986192820427691942692974406864206367179011916279778350517727555486412804483850840173991327586785010060010668864031332303958906386022478530803150832107180873815102573626073287443357557574579551747161954319585736457555200508180370173519509974758633228237669600007855495523003291219649411898243430682907188327458104917351593920013984967987429443362561614909785755589800511799032242930964791054928846380041859728050644986055246416532695329943490326791658279761203626698450023444430552171829737294767634432855947388189558445556042586572883898375515306723433726890326719633033446012569028767964120054203763660402773366900110832765840525476119843392560569641001780034144179311208106785526735324575136094157312726952020016138687936500542205904258905474549595416713185770863618938786007108918480705476273127744634695772195484559492296390999681372025680778174092352628623730692245489269579199429358082335246981229643694688515038120871724907658374362484027811572074036646609148384542336907140608642106828879519477175855810929008286211099594711775967745328333448483124708086948680382564307206151802554858141474494540887188614234422596985069999243404022200643924177171536748096064736566820030237548702213361996943334202514024965811373015010439792030059473126597224767832678864061637924392468233882322657669296086626334547130080087338488954263134633047843137222646285343328390530177395655569640446940415739308040547955147481245101365232986343288693494193191781274726030878955745932012563895243441590886551921655428678461658597730470083991691901886627831658510311640729563412526944430942441941899235179117445547673637594355594692583635783481944883385558062164839982353942084891531750237472805132167477948543193331270498194097480433293790636457724897569992814826383094958805199405049604730568787803654567097234831518942979388649401299652866198624474858421010691557239110204680228723409326696786074272688159741033904039461110981456832110223794805231378489813664646604717297510132099843175373867478836104158904852571381789657071409784156597797621265310412324101328178104418061977952961327656686759452625015808905463198312438382452605672213522131753083733333055417455230673304164493602785388177066638234441368205777891588112188722443687328799303917578560901022731196993531029178782478672508681145754974965947689629238195365980303210337601885614043099157636867224038930879822926984326156077566271269202123967704547734444521155981776948557646321932500294495401170981708223478814727291263354574907046212390934557293592385309568872500835351029001895839581878963249549363569771057029845381119007144811136158345276066924314495268189464423905812080940913136576143673065257143409092643693324293156204819448907147831760896223766567083545550552240568713169911078605754755451960876997980965987074981764301893884325450670566625391296668040831801582613877112162646718672820566249789523561369753598697958698252731589075180820103484860248323592147410826399630337962667865235325217431419146223962471624792059413431077976893127801014312547813434172032347157371434562092000793966040772800643088733959775031660945542449525144142371040581492439239185002084654362763681958107209073174800102205208581318117270819468479101130082377598351853275991682955050382884087632649469072510459004362394188285628575793691820326485212809448549587089988298508113142680122605665324064839007017166887121004010621343684146874482465298385074459874471824269223485330384879516626930360100103148004497545953059979534380070093306123379352428786775402220904609746948830996226637124554279411948446644583822330535162081141455981916384949489594001142499315534629106052668729232058239411870526748266300424932460730109149879843774360811003276714498592374570170201281001858701763254606266892873452314204045794730507340530316740545050863278796891445163037629559252503877942985714659828300624908533739517239291739602776277916400224795862403988496467197449053171136979994565271921036229165274666324517888542733795753931612098405776667552610712981091587955221166027661467462177942997186532882813703231755574181218614515720747126065550644600933644064216180345532834480767203647532247846876497458975567531062759171424987909787746450993680173841909437079563981336947110348712653121337954601755030799735659128465081323284872619528828201877641671370204206639077883314605515837949977430392134256600864895444725184637340157046910842182049534082071814028556388836129830019299714463878071280214312225828409051881648760393006096344720625701126627338545842754293410420596298401011229922539201525314628375390314346435128651099483838635017937191298726347579132856740171048928864756827892552469641977244495342919991143312915323021900541488229104486808233084498845279228090574166997091477473954034919980323054952644724848198128027053694335053024425648955706395935215109780694400421086205812543540346795359597977155170392249399374236662600301829874992636899046240559692541895784939644478820232691148629805030688408890865552844640523583976588238152680793135384224349080591744925822735319337753184550984407435921685424447156729936553772694790263706656201842802362005963526068032527411946606199459437031104891314667573505353192237038608059244800426394464085734543984949924168633561498977770447812181681756825444537650278422149415881481314147666066131901553593182509736918491496326530843782056848979993388957572584543238484586402669637104395800209756174467324092253885004593862211445385990639058972812859778955862071403321179365823147908439964916215911773274989129132467852410770248340610840783891682081880487541219958370895678133507459809387764084953340104208571822344443661358911149884347655910284779626881986704054650031867295399517577989309989664452328139970315853379226586692191463572657023747262861284725346092367609060777133481752394848428215283324543154670519217501824930088205170452853907209918349285340015199594009764991913750152958045181205761140239300118346134968424290083930699736864908547051680011398191594795480205811949227611395094707299255854256978258859561158410225377620117618836099408794664829378732760294832003429695571714108373435599814742074570709901303585113601939245004767164501584393266723046524463065791938645797328481062413471637440434241021303402692189550239972795931630180674864038522389854942347083669745847483436012040726972083340743248904457639541582694802942854228103103515572395883068362932085537649782565365289479080535119885497733738095654125766642824706537391603883187269086818546021942717241653278340800435753069427085002786475427333459515812394961835855166515333377589984340703204960662008543477020470424169328629959656957416171249344600561768715717774120883554713633419783517236831344949695250895671860962832321020480688156806767162793957274631700833528271091708230909877233033164984369210404018565561000424686971598770590275277472178265116188856434183105463876434329592331396560494725625247338043400287467193364123582164550465368985705255296291768448169972571338391876744667945810639065296255617871348846766610663148067328549333365730805822300452627955006072030205425732126246597171723918662910562664705309798220947706017159699311749912832445242644053518102828183567276288553250823123332382034209155877159099114218557280997488160668805762438814238692757503450499980639484250014013097264768984561638138982438518677320258250467605910409765547811958474646488681890959064324817972321265910879337089184849562270247603684242719005254671880508639306753673490577640589613022872177220254110647947260178062022094351826411208644942315589207639604502868742874773265719085908067257495896205524515953812072303465851383013092557047547768349924616265685565543387363489728580100650433613627039936265594033669354545222660830630732150187892405797156258420568116046363830895351208313103739472412784429071715834970100965021236014595664332785978044733781389605166282173359316919749178861771394818682322364335628852380081908006587045268291551701765097197368492085045903055780402555715685777598901994113914608039485101898163460185514758082301410501090115373771614367445350304152120558060523828416106776958053843999405745009864780750976270749856369340857697671883508526032896705500079044757701095748662591164715484180154827828973865985302979253871235994047332488350539281391824629404190375411414874474829493641042859143439779125110668021479682419359120608952782029028240282831661363355007764816250744979173581085997509235799348767043827445863367800430684586882403464773388835322854287967456858329963806540471014916268447141843923030259501167883062583975065876249372831192768724860356708518308844483391298556107452545080851069115420527655549638206129372523877795058716755114103061104610991597193668692659946269790450223048389302331958626066622483306816707968975317134034439174833495988153784886171862991276203577315359193232393468879924637147325944258984476430422487461316516463983701765269719910729468068844640034055128602790453920353919060142647300010714964692188063489312568852742482336490620431185210935175872048921765006110899040225534552244625409324751259751569039206052474974366228378694168064903302131556132422515988542931081071250706904196659050515329695911162494189050713543336292526774043083162025300039001045771173094120514551925869397546676550134641713131656086080736563666395262499237160576823195556186508499689010151742013930445270352632975032734958912142774734265508301496571017450887840804736669872617661074672231415085039879264191781085881229715201613835612371966406964502453939125915403261056194494202800240468012917767224513315698007181265000417906170994626976687728150943982533220852938917223988550781078150577127277311303885521512835890859182977534617430871954013820470334082207146768490119978872960842259731666806488949464976054573376761471263440632973729359024520831489994892833721219143817952568236069829665949812078431777503667376815718071463915340385931851825467272501882872514493075823329873862095385122348469461763907329947728029427379423570349144520281161407021704270270716286659227530608952361632506828075617016337952194941571690264076581015774966525350856896869523462374766009322035137534028703804626052149673035421906834003356670626459228656814357718198906848268578352923454888332796503234847547526486631549120249993071137075036733206583989906455351580858045114270400362882429705750120880072529087268517493433243830790389633384935562544699189807918308791727134645648640373575061497749793018389880280385998200973530316536648576818506668595623589572234939377590871338761075284256488307226131981823603440833813668457751765505893503370414010263818298669391048887836974577814308107873803587193647941008736783938819384507028763183445684122954593850829237236209646860061210332873607364399697256447316196472739271301155074041522720833497656584130542401306023928286815605732665172875848988761424296220201588483753588697662037832495017065046368457391572611434218806518435883774908728389124429185128876030911396585968424799399435068778075696288137029726859118996029288876445336478847387319757598622324652258422920294037065431260449539367551511743948302365060309492743880525712644005523489228998622823908476700825632656149254134715323436562124783164217830890873223707121473145667030898723286408072005891875855611975274355176057954650638419814198662989433875712774189322766981371224966133628445199368550449625428267386808162871024794211560632506831509293002303759237866553278192922650947288639259870940930827232782355272724219605338602571431400051758751161228163528436500019433538904260542137460078201622657910909139730583350685695928312757153041109754377484256772350757686566704702355332937600035666353005428380665154097381414324658744460231851063022471795274399134625957051309221260511941170852030753321112625985740468180242223117569640412333358326027639533478521015141653485404525050162135432272574787898525031677827153418816033531255312935240957857236853617767560121139251398326714216292714357943185472305970608299933250751620797011740835498942861754690856689604714584939340121561704297854566541352979822132794540048113743871922975535411883407608856831881596464005623212851961592600124930425305141399364993256349198708718534535323650181964041963009843757112367630062835211499511603538433124064100043121998002533116773180269006937407551222669386063758928487125682838868470442566516144481604952921645380239345587217645557045652226231341177390988390611321856211592217837113901765594552577220485624438991254765297019169994983838919818592740303704998807438915290422245045496333450294197021337406419816814643514836615624392444324976000285211691915293527116457277863620286526187892791509298176794361320304229894531583470387172972618438381887989209504473245748998646710686990777574188338741689312008562585125165930698658781948338483176233702090341792379688874337080620888219761498273164024759238097633524417147669036308004143584268295516813916292647403381264359350624075111992822111245976169040647364559448313206429453665709933910034875230853286556314310454889445560941705439783169432380318866741719844967540996105989980228202273532144483158391593989485070452125019084579762098291911559053813834428477883983506108280846775405818318307450883463934157397564137221935496355563379542611050519723120213100086521882016684966503186487361646452264398864927043060473427911528985645880297195065472365577576306262587744904238899722689700882163172466759584894384571185407727849777269112527781639739822769870718917203496744717674918991928719307334711939864029714633879877309332043980824237979579539567347978017901568341038072893976199583012122383681962118486725092984108238751184922157845181840897374824268335872714483349105610531388574409436148075224116202154785471796377985145520879693847011972211463201987835741422214085901815648929416421656523351313660974597202118657002432394732525320226668576089355595621673721322935846152731220618231453120547090482766217174633156356068443676093770717266015843689038207378710068981051043720841619945945202066431183226493527080121634219081062250595097664282891603386174872117593484285932242587354697846171061520268966778301008107199935768071490155412856972390016449290791330772743539685827764913084862490795137350848862206283406567650714275439436137215937269176224369768956123436795987939632274897119668716998906410344204380588325435173172253633444013093713060182330414695970227126551911320453253395375035595236564391093095895053354189032103166680577308074344958672696120317297278079547466407523223255843883152283356872457403672313161682190691382314315807729522829280433180942725823444567685661754781344952439323958706162617814514775235599100797979820778811640158724241320948817808537599717091912350394611910627786237161255104730355107122718810203797217054553415001299715768084336953494554837879088511611169230600410320977591350603000228249321942632092496464462331677086740921329246939012164535615775737371953754064732827691995467783145968609396504631975753493606391336042731820434315484166577458587456989073767851591332416554277257809973388481905696210618229187673730848129238678466552527901253973588812884248249603941781321134437794382250796308191851431420510765028761724250901628645117399680622543679112675224897634879791296685144381797041555854930095504986221382237768543810381198590209043034711713218668702072122003738481154607748430299319923283005923191625864337026010626320759762879221862086480536656378272522008453695292945610109241983320578132627953127045638900052100129386196469261951930450761737393710399552438521081112779933984976434283015370452702943714266470860175533668583002293837940206555319241906832497658790213559390129135122731736402401051930182971863328080697694805103776233618413383772597466255060677161875310029830373021353999130623331105252220071823051463218549888201478986296560938161404776065455954404990321918881107924261928360872473952766480955828756750073751380418306452905478167963092387087779631341467911141646803094326671492201224676886884713310771923563868131372754000925381888392742328652294839082179422893041803215619845478108931203428565104074676652890421306963784697727986459200000910859034099659765215439446459268795997527428018890555590270043049280680912695494729746893708851765067012027682850072823755856681754258007970878799275823980994160663747910331612846022748117193793356687999688950065500056154634131267715303231831793748171087251398247452362087624160768448773555322539343704712162514285757429413697594836554163460427882648519231578099291507375146227664334743219962119894090780922186452768882479166214312676405432909462551095313222195247206211779358737108113655209080919346866640283440252038806726388015108224687294391819404048839127557915232014558091702486791439749833307789470454232162534467462431180064620933321328809745760892160521611236693733738553579329103489972849030884854418285637039275344682654668586844195897782222632533283893462373257560431932610909266709839567978218541691677200801874604840620122002592248284803398797763894862758071437140880817923443857380331392352292199249622808271490523715375569049936501234152551320415875575493216137339986608738734831074034975701154090156702272727129685845170579539056390724616421606748479483070918703462170502180657093747217019146091708915321332574061207038804806259257893307229630969236242282079066309165972577579988065661608479420348250716020590247572704138302286573189371111091987244125210377845315842979378082411639743111674690220758604659211532784572873339877133324627106890820368527515186304774525453528099199862043807351992647463814231938299666456886103085698053308547639303301226189988716267680288470185800899143562463884447137482803588203666325747113842469487179746358124721387822617829958196118079056141050415169291885359124903781104801770472195804488197330824514833313933907948116666463750609597302944922879643143333856363756562465549333532434941340853467155158119173671671936507108412647435842074332836833003754829429529953867177779040280043576849447935855679351413046799767071195045192387182422769062565340982916585589296053399229287286321488171321472107984975531401134991853034026019117974298467148523734680194280915299131940476866695403943027254965284643688271246452634935316119742260696950545523387710473848301655756816077991442164161624019085326613690239754389855558475129418055761775426203994259561476989181570865868667816569410326982199419478287400513089832012233273597704843981468287809042546941405692200451273355555119935468838171131381178329937328721479720671924498796707116176329530403072765339424349108516588548797822356657946962768967786425961255334727238183300265297335754083427062073136698142913226526978105722411465407164730167070829789154059914261491414939599078456833343425090686921710763774039124874029645833056101804078931061296791360494740463449211150389527344629489943112800994468471031014953082696306129705770589226275630169675421843592467090077746760656153469433655284494963833819056594191744427664028495798812426457433938282977130677526505920031382801091159087234238039592160203344140424465567438715427481816699334562144290218233386957031717693329647800459274814040526032740238610041709311295283464210858380009029662435239582982394692753683888175086357735110148181602032260307806458948181908294703098603015596744328562984835779009963540665760962713857719749261629089669291634780515143926132369715784764632448504028288036631249118474451716124835544816211844915470921002186655082681991740503320198394912394372551640721767945764306959173919068211931478023876608487984075333508004427043453329990684313991047484802824497772893994806530152568117055021210909380450372019661007850461294160533476565426893515968422260790718687896611194383424747479711955373809378827473035749015637319298181028190395619812238359456222610355611827840129446415489195232363331704026844131126003846907945123783752093975583799932195362727865279602932021636172192568090793684605355686334888006290677956356399946910001333052611866449755323599881162275573512866370823774594636631388741323673727508972151217451393018185596931265676049906065744243209363640403795300088522524699803573620950098592152145140359140765990490925142401438093584452844278555189824788826821583822501034358022083044130300460117324109140636408417765472083394289808792615078218233303086865380670107960707281578907602813941365434627850193849637853117059796613101772112632983878217375246683263399378710193898474828340829857496628897499968846475540392429925901278840602422370434690176628848613807693483400905925539211422783225981595109684220263551951039044418361836599685401273332580887122203590546104787641025865474383727297858332087771421634654227705182055353014040357378837390376723158057689758284600856723878626799468715356688914729368417519269209605843933632883819929443736533210042734799334364605445887431531515833889382135990701986362505974010480919830418986889605324598105581811151886412975829585211320869573463521065180631057687760158981421731880063255362034205271399207673900329250801718244932778979238177552043196926454097563244817869311967578998047042092969565428443484763632176186761923013938473129223840986918324581787002247826160345220555562707789843682597469522394892220264522035083658472473320367093415153524411625955230322678526673254930076227389109846033780149287023697039773471426535759215845516790195488174458976961298441241005995583117320760657616415005964140028005651212074318909985597849930218018828808231977892669829925902218686877481267736385874514049216137382023835230595639464501409380895502989336893155756830396469781225211318792395444527000673650507797155477416749895948977503415236701756268896261944421072677902049373358977333681115557677063943569201350156222911330619371058367477298675795893342299388756659821131534281104846961969936549294538908967295374809526036908254739358103020387752415516098968806992082301728832232218630263612820675435387206804194123280918599836787888305170484647276338926113857978319494210572018772924981763784331329843292378448649908350820844199707396271148281507568738932626935032209825639412156556204343305500933832341334607021052557707027768098561596967429312479668873300649785504193762795879331479961960780126582811911458528233958912442761587677749357428896665322767623053522593783450262540148604881007778296445836905121113576828158117601043583703973335806264650895829955958831546403093091319175014958535088598207360094442982972424306907689478441606672368507477665182022096670045277154924263384550754478076552971129548322890229782947891587482493640318566188516363064710195882113607732569615864053078982395716857761363856196214551204251965717931062578183860629101113189828721374913264650341573613966915967237113049300348901664529337518205028655368504298284197308947796559624205261705283729521083302625913522457802337918347731024901070850548211362331148290128447853456019064719468071461916951214998724825504068248776782507607392993530586240471565501125435349253627359079545345048907976409679524103932192432390175661406930930385194198902129584185288597126654973130808608517388432591782749096183474362600622756521204462783775059020990310010709978793432237112764913202212204793371049649904796817552279442241167593864046688369351607848321921189639911754033681077145365325488894143648993014892881650629311550240731618646068265147262597178864902786872287163370881416485819375647495340207563136575980857079064428140486072472960157460254930670828831267145164319863244995006798875356837337910127782550828294745747152770820441817462658519056802241082196425127570532206321126441865767735926357405579694022579115567755990278320762937279654252433549406892039050850214950111967656797177629107448072377521902667104864687302289286527428942155843460214803509067685112972773145434043950042046274418198386941887974675444912504770680244210310335936871067939806075100706887366095954082732594649175292693714851118643729298663457365878268193134180645464656685995151471267730949870884687391757661125211715003702063126327893964755898306274536303830733928799910374556050244158615645525538916874659417404452615892519346617269773546512294376228392867131363953727643361346162523009822227681668425998017479321710827903829647433109842413805197071073066454690161817829084406430762614697431224560828765508574828347718383768157914148656216908546880260566299888124272375146269161435403849179265566380435543814217190790172444321772176214188347400866466198378589882193653470631685975487551105196488335039663569506908160896056353721026345812412119089385587828963750830955761463349593795868974560369190014859270566979312522434336867963283897423256135176832029980713517605509145783161404518066885625698321346876954648288620640032984032666443146344396393020590006968945641795753642449221307373669929520032787784889415024487771739953581551364121821509850426411166849285375222393476238690557370658988277405130984677099842446788422150024701034906676122433639760455843698100797757567320247782544625754822224105802456433952140508523519272617798692448733504106639773227930821772823879770394563048395484129269238171401748125996493974593221127648655290576815049972299761863803594939525436151889055047363291067561889911469682258964908419680639315043062754586815637871355266061276747512695524952988070164127897208408438799454603331107821221219620664402362473298225060209667679972793328267535455929846180405468165213286254866815538829166542220465559780466266138076587234476007702714666244452199515065219976858033300759685865957953598212038941995749689169761957110659362556464680019298814141755221072890239033539836438937313280626267120836244664827725632777400316426426783351068730638128846752372497382267953527599823345546729214586078519955516719221212764169149068687542956756742886072766896543814714280968205629397737308200181794744072683307898454902441314507738137222828914048135954513541584759107635438527467536432557824499404558715181287865375196348212432757606832425850215119376903590878989672229246661845114642329477012138353977990529579721953974731876134304734843646315450785162196913042997090693379687749304212002506161054696230670213151560454764592942188323166766527781960378276551291989120225028681105880628472248756874899233463301558341313960494571714787123327609963119911211503437192585582276132167100502431847059851931310183853748552508081440131496955857763396092185696749703772999788348848964820177817096546146755278242703650490139408749514432991053713237123268744302445750491465034297799286608209978882712623093193292307666335886934310089021953736317987398964518887431498284382891014781491391876438697208191527124631419643042412561825012190233099173110155665350595740859704723721811672570377704052344937563714723272117173633607478863972293070246087651128986281490405709647514770665000582179508487510406924122746765123329685960928915880648405105005772693246955901988742216771388828936204639886121484816229373344828415747425205702975495472906676891953690533612881280436526105840238954256693340058986192244484906239083988595349370083992068900284821733981980271301601034057188967348458097315363894865001570762273759997083539113613350203717802258348603168074054795258162682795986351941714144217623544796009703089179896521557012442944498667784386725002967509478245474693510096521233100663096894082010190679697032130719098679165463592664946290542812925762451501862928082336912524392057577295159459469736996694662599190066307734217338651555697782080416209454923637359944854548288049877602939611808715973641691718479401617690188388976353648040720315369797604954519464826635661000290552753057032496088970402408420704461500461968833816215890415590641368934586481087170452278493393015517807115025608592586091024014973746816664594837994700650880296243167660470823941302335024203964348918855103078590137709685157306728905004829974463451613789537112519889885906642395944458934237750364769219922879969867275613924768852169029142931409879352941131860309431488232166052190276264266751276367236104850989072532425439591234320022159661327996602991142280210884954646973904017548721881512609316566386617666091523744765082430668447124471958589271728805461411233261660429765450697630358639093769526980102110746583069812891037075059575337931113662214477345306563187886857272293863963228109712797978209090853050978851850025393626170426816029148878170779684539625902833360536572153253228540684439672709789250532364170493772963189878863815023431483382247077507493535756669064082440195177909904708682527563017884464905922901665006907083810377421992856149570077291483319942491770535202292693334497186444619074087125856353119859549376760903376073279323083653916618884143190227018250837573516934937880561603881888844573020015725991113789593380616855333466204200768182219976288082570511290396237247628615022882441016144337717333424827389731296667499210656059916886171919046401620489968352526703508862003973763427183280811199879450404530116093811879490241000746331463001155339163968181984233688469345025972694993793930852406623694520001022443085725007988107313204428242059226226189345601731082904701382360379039133740036666041283834052629730465058534038888031928399298127391004960921944093192405773661249005142380093029779268587594856882941717906330098274656401411348278631928550409614992177601756816935365436583682462557206130645845363069042452939988407059184932227185143290056739823424744834663413694408185632058706119659304509251166196415627446244479004818114256469119690538156800165715462603515102599487955792879390332223120397567463400925870501920169633383130618902296464149282636037759622554945718357662832196109044408812769480125398674882347216075013321389733489903654317330443501225854916333681230815198419103614212692295309872174858269268412190605778288898529600380874238352689228898545308891658845011611546690612938148806029366437436258140692095001306526386768759231340041637125585499328398066464401496741812309341218321034329242431010303029849393206463928287932085640452418360932936869794223230360340629517080759616202645552052760760864293563931625651585274893182656121941706710535735388851905775043699641367061691801781122444121647426324575207236826072954751827847607363412790828557245292115239200197210448294682362439244940697225142877601873845808141043221528534941334925486523314426796037829648532485330187692641959831351007467128667645609068858475826826916885546643446824396543229183250007756074622659408050408039141762608139125196920981690005739055518557950502828475123347361547811235092461457988730632607026450365258068348893921157986682232928272162298334976927156142345552117264179276138078010368229113808834524332960727895464270298586508822759454535528146232591955217311147493616456173930315548086740001709880023940338929222713690700840698029825377605085866301906773669398837145493128084874106170934576222864952919100507085190678652782046053606549321877894387011686000526689715619943593148006849128652627888106181474948125445812797880844293147260735033179585687227677042693997789091307099011106197225761387177520722437211283094015130196942011364312747926612625278827053480304373857418572732655366009263375978979428278674208573042540052880994525269274438054899646587881176050133226117907162538504900048443284718145734890918920898459922953262847630881277255729470392901606904872252015289277243686796359306301774380251567552688347614133136540823152453796838591948403297835488997593750747133513906344646372536099585889825834836990919541589310266554872812460247594643278073193673527100713524223109765403870845393396238433053635009009829587730421460525973183672878907445991879813497438070065305789262090755466736554747743971676792097890658662598129452520130798995319571947941538881202774366235977781326940191152201349331941776010032704111490601850401541475169156321818689380531118274220739851892979730110515849269366036978593733953826183327036072594674458218922769340295944541867178090459237652000357640457974228677247707798764386650193476607547570585728057012608091180968178011310419780889380451290369807624877413593441394046913182852827419316433620320548374721943184649116083192461811462179369860117624028174991140037139665680267011383720542437303049516727510720382289490767401682501383530690797076063541457471535327047393778302245982500548162593789526754943167604063276453127473796499075205011531652950684240311341417021270732695500423872470477708335136196161647768490741027438680522892084502597304120940004901607836079949175389224446785604575910780990313689076900328313972401413709641307228801355477946300968367739653263196993080999388145671756674074342549566526705857242478398699370328220768315735657530065452828762155168786941144430389382620495933151241320168055762747141779304895802431081435644363201426456000300301361333534530987536287261537396612305444662191785124435260433326213551921587905869281527637425137994267245829513603808475849223912949795578552645163608234164786837478416670882401459120061767505585727487559293625357420792381955040957899984002678681237881019936719217759537814156878312249250742101783828241307596458085546955863695867205810436686319890307598105634111488416073858531430072184038964693831333908614284383679185991128389748629701103135664135283082251362916437262139453563222715607106952472013003597606977443647016149503943958852664992223087167207979836793766368971374629637741501712420963676195124770808825212276355773989040414774528234199975301998384086623225022361127100207978075167392584779999150746817863839575547357203414563004292123567664974488660179923218733513618445927014208326582055335307095798482626736589687235861160246969196757069260975895833923010750040870221848510293368350886045332588102770898273021117879885956758599284020252227534634295701915296556515568635952907112643826336285433114043841295547898943884865382132973967039136321618267052996591469321217379580703977564882870230622071969240731617002622970442451957840961640044050033442904958394113016607590573149349968519347073430765715087263805181893052432741264264516911268329090621223614351315182069911594192459759394630249465312868187476291220498001095533415380818008808370026783542438342834320359033883540020633946164928988660130384855817924450023646391742999383940124953720502313305403872089053605482910459806187915354542254712219672697014355056438011493169072816516857256889320047320284710728921289955242871041740244308767912538706989620016165391107840173515553875059818967615818642779376229956360585166461370449265443887729557554402269077780883925435996103532976271538105798096553020846531205825116923443437877413327611555508757899862697728125106949876024033115198612261147588928434139274240424619091768755444489652628442421895311480403030412865362452639923548790498958265475135567242859868405062369717888304751674105072536944316516738225562894139216944712575882255518477659418363213407650194894902830653146383313421541161015278924159524700567633446698174919260413973997422152234064915139706827151454021222941931013048101651406027256941777477609689624380374140800017053585352243579917181309484470376240922644451142213503247073472549149131768307226301218109635069528604286624919876102754624993399832333163801050428495332307622530462340466558106043763285472008836746037203731803871758688688691870277339385287881566127532666047321481661210762846878846367329582542036245230301836872963999076650034114012350372126954501764044306516789677310465217084399952306861580860651935584384226905671674503343415988401865697583443298999109824962158142302113141806798198397978229293205390303162790437809575075185034527636880829946263839345142198346381817687484390035478266043187198113779812143821404059009500696425644103282307861758419881924886559152248802723586485220910520423008464243246482669858063463983049145984431809636608307818518368337825316670970996282482443162485592667046249336828928027006528306069080819092635537803468159597923652298010916569403856090037803104106963708064279960462015076803005551755697559541852385391335716954221317998214638213442144660035280705923091220046573361325887626807885475978501384429328531501831995063180880081352368224509863011354104799349148646008313583182323486479924039536143200792861984456642169145861750260603269769266445730563365602436863368078298291782950594225864663721503066450342564182588152593270989034049621103299310825413278384402420135112319585469189903373915398016937761376594870970617117920298315562770300567759629458618109724849981997729292531893450370835328536815075623113603784777833925850140501089174898848241455068734919444827226545849092833702180121526139990463078046957100601305469027295275727740112801335346470695618872920298180781073673790197033774851190775441828157426057224033468644113256744203604840478412234762607003565793445538825163059318418080851362756788506299458188457917967323559421513435414392716002773054268694791990863937965542109377496115789440138856712006838787725366934853226957226495771350450575820567228287562359039311346197401796328491990232725345608827368447611269030944387982178171719602001467987321834998858198923558454108076282484592136450128554773334213361216273588243881162789032889405626646208596890957067897826309650710806828829147309283119248343292572697684533390275164397945681765507655141219957162747347319791195258853241800160627440489974804472294169023799310369698157080589796092934615830440929142644046890683239110310994853265416827516864459219688726176726301166143177434196354179149032219862743535773796604183987467134691391688854287265087788703721984282201711094473657949956774015521248103629320836408001793839547065704659653056142532108495764268924814319387090520652149371765359831726193310902449159957511486096819731858268906663462057715922534585174833447372929075488209942644441835177025662425701070671760208667357685643764487435681531535413101471443073550254929604339522669633053343339015997691475289813184830750642893073446569461905298970235522874140038091390254003567237442421788919488229616294828074623524721762308377311234353713628173067860550210121947411105976050000088673340955520892844044291228897509483617243036056087427886705817797831002635671018635557877123620276446612394188571569461825930302904259371178225904476655196341137765576286274964730191706471879875573137904588597370487569641242403276097880520322853572131064085513632339564545632632138998032753639356423197384994420259440831274389906489928432053399913607901883400866746294226288779975282932855024550912464940971636436687687877278869885474361093111247098744405509011453080451236209838738746072563415800997087226307695931479075705524357722417995834356075607492033504676464292288027835854125109857461668552812060017508380875557107630314346560583397089102150506332526836849039564837696023551388760830642786390532923354004694508677440677856488714029303255338182881627320442364703816671665094301839496361239780383019446262735909270660243000595417746733896379971566793640615487365574242329552128526081176575798501278106270767232331455440934760223745803443995440776527131410547808058830321627107485583780384086819727250359925338146419263417294900886270890804162109630898082372519056333539789447165588014255353931823118319125423291583322155998172629773843550346084155628598363470613317275027246713831820317787666730511874999675261215730694919499223947755598808730356668509276611206934411339388275431679660159684823241445540483340632140882272987067776369769580110763704969466979565165310144757130170827155218803128794094958637247942153769721552655807492922599180235973965708675691142195582849043531153847978924246957713019728084712627111517709098566954231053369332562695110506493058271357076323475896643982667553642075468829267259225076592726828915409531275286449032667556375551184683819837304977986033059374652052354245503168993355962862710779580554192942899909156514187036284608147781437037981229908785145303460387717808123943193972980977347652537152919637126383418420827459289605159413560220273620793375282748359780564044139351144771689595811247612098606230052143191152201081766640360197617067168118893357565333052786194511443721328358604009090090319318709267794658006571408996742733850923549116228559264867620240401292504223470513705529390898225461764064158150393336036809746995954106147129894080285670896663807634808441859711435730694807097128521787831498118810886242129538201240803614400372629784644174565574191403886665116785193765901023212081278634236727662208750752435411691785806942297928490689389653492399980190685624005607177997872319351894681171007689146384833718677959817407750801003100091105370614040983478747588065930000691652584115124427019798864094369443164436942371128383116994312684941429784023578162062335034599178568982293706065329660940484686152909155365770642476931146452430233065274948510768705572059785395125037683258632747785409729185101579955046222188709205342098735290965731156233928209821086810144012635900872716353227947340839156418811302869925849901084043315423675174568354072837592149515255342656624341082816814885907324682297411356971761820027747631399354264953125306984045510585909397798573610702809878820524533484444881758992242297174300580653204460033179959910225205508722063815298524066777129214887503926696920718884475327154257649044475663783859246899474526916334201928421390135086960138713373809319744853720195571553576344673233797415586614389311258773602085581797724599982585361948178613364258525501501608175124239769045305146571077292774175821442123017810385753294121947705723531877223252661381714309738714147743783972071145046499546054534920975356068856485032384091522423064083572151071994136376407361901663343739533515966768985344815231227333867691083400881519911313346928619475449009900986588754242210709327799527051706611581171478566567433307569866611873814102202565864302420839461401626168530462951962413694035316701307313415072622234211913936055744426690656732868493520181021185364664806460951254308621579103575405511387778894566975573632889672937233129696236620571931477840613709675395327870804857567841248069176919560044522595917418502568926707070215401765606530208280041276371738738205189870747254830179902102179059332251780158831662546233481152880395348568643194434574817107811316633592196574691902525231330834449840611794713652550304684806525004239295874683651034429316319843098779657043311310345193236329223769365013245308650758232742884323309871039656912036175040299840237872587844138889586753543289638964461335456298943406591155670533526364784112418582070768638990442236027132961543148690660270736394022138174004656830628804480786470201827881769322844401287556447767872840049611825459700986219616674009391777661269103178961352530896625702610080028239598385966195848276657477682259802487507374245914891956091557783803323071013786947009822663923997889561137894015058406697769219436415198558455591914116507490968878589513865524694125632662446016943152803351695587519609766565166610029083792596487475715790345815995403559295164255669864019450154499132405119043300929966068906409780612230726163197601389117631387901063570254363982172586491314943510049273405117213890169811252921248949474105047648731430940287460859806652280389306026397130254833564184665426094631245972748108162905585773286027145498360593883828361774916245952707726531267669820234954635397874549679085021002833861891255315316189877908423462797908760837308374496259447995821102948191122449006038813035845713066743768579424394129047421632942704514729291513873941352965728924940596753865753044081839120323109319154714225804238124426931206261940632680424676461486995596599419260638017240731046885331578934227360395379924374560991121719785615834861467899017468432428401091735804827122365011864319491316037649944916054067566763382819218350519421202056030858899313480507084725422923926885191643332721109551062364534000863162292606555172583704170992629421083000331372406412990470998020266471970053527737612973586732649927153131853001418489733069636726529138487173578464898106911796410323031923113809707011905093621270104496403172934002495872999400883796863077813694832906144688226072102850095397611869277251514936883369069997887516946011791120683921152928772229766741314485190546550295532530685782555033624967372458330810894480057891362744015375091261808663888354607835175087946499687200120589546025662302454155171459869747816280179171515996724162917138334746312655164364551131759989015929846294819081569140759894246700642210102405539207472072878345993790454968691305587219667369382391784818583395126509356212358817558055042324009945726985820961933950831820396923819665874932022817512900547267852368510049391873828318278854412141689306775271223740467251437709751730028401616470721723416324072794605168981248640886169999768411074636910877542472537447990026084919901682547769600049291258718101780870285815066938505294089183524991603742740505127766244497939117454934091643682617481786002023420092828001563617980060753452347386926097040446739676589807476086905894515848738596195952428479123505776600723337289985456978029884034761228437419460065044073582120774842025349397540595575457086020364428452511196280572036066572802702851404665710508414890382306250887892356811679411381177190829652831798887434535357446907217455808965415427895212961620149952044408759243869978957137961809066501844517452048648484764355188545520652821096149726892628882382451753092364009734279128939991856634663596329490927929915900138452733741622660270027199198664122755076693011145987745377494755229512402935499508101434541423002652618925544797561106131369722475487000838635329364886221615108428762737626686325573457306630782835068617091593932256211103357536677737915700920506330899191597901223739743537937551489110786951502441719056967312951257487187432195891524765120691930026609207601452329627202488879606366395880743789925288100141320466855981919651846309419483754492067330314251132082855068847493372876701385759444631706013070116324833766488833626762515205613907873001351269756197864761579175966250856471771151820643561050535374756083815388853907222999255196315906605550837042535789467441810688457560741367165911880302621469638376952327616521178114962424654110995244251436643460628113312097229816700008220864072759708917685393560009279757429580436621975178363261927792598309481473089344119311074285217657864500561178432342487393990743117199202410959694230022675144999990857967563863057589255994290709164997460048454876815655220942229311560355944089297403247523223603919467939519572279009260499654023558795598694529441726867988484374893366812282313265000062833738753233128175188729074822095056266364863448965476425275006019764272947849712162653664322410095050991419653170791086335693725321443991784540568341127162596755508744873248699983598775700338993552045777261069283686388346829949497031336171059508448646060983178630568216590005073049915820707831036150000077027036100420381738360958461397446854588448279736030890190566833518686928655966294318126448594644862285329354096416825638294301031365243145464579867118350452261205578862067858416699453803981001468307358150484182726157516783774929360656731114766745575214823401679975583347739843994071591806629372071070146060585566440141812211843451236192076308807707343613703771689863980708774793187169739578311356907016361284667946104283289136942078132578815257475123427834750222115151277574272953380965943015612247531899599605461653220276684387054592513872482539486679896666661714129980477845391662466477597820135142879946233451447130928595139362635497861455765593446342684140953665064758090440055870671108548091214935380041108464679714084146105327168132615569613433592903651079789602821040013610372079109550980934572396778741181074266444945593521898292456047796947851938905789281198552330361506364179598643861400323347274277226142955502044902993764506158968559577150751114558416848996203218318541381273349209656193205075649798207970607916703314468979984132257980002829681701495196727821080391457814262123912202585696142416546378528292942327823789382324882918753573563760461972644729017351218188537858000304297559830598925353490750652816456856519564924042375323654160153361075588967257137064411046945235624199080930763739652909224321333068567376738360006047633186075539946709896326203196468217123856251898279224868587992706199346178453325849526528238372144244819711702556513265893144847353757165147680255416267871606787181367951689110074419661546114681415486792150669984991531644106094739788085573705160072714026168770940378074804973754601100764174127230785182849327993586545355423295918204776322700725620901834195539786594800600493584700053367080160819106974444649498606320873389396891562216476531908542043833567490542130130477899472642049580398232985025660917586834602084050079158720894618665687736746300361617433807458588297210056812338156760422723960503663836875723833453962768608413724075464127150352088855215321981954004622965412529667660897144877650007507507538856236913132198432489618882091203864824667475007836075326384032552488011895366542134902069310734529208887398638120075105339838923278317198433950884019140353285546648608540929310763009074948262807572269886470143776245802399154904297733333101952483814258665862240551299305530400198659996489294692485619568171221927227199122325507548992924262722251433246025833750267483445908284242580535877915579900180795002625404994318463679237386630365908029958088034956528822874534696485415674844677588123551682846609973929791117822785483133800488501865693649203420757734040086924321660258512418545889332198332140001625552626685900583983974932234204025062744878344183503422200849168064579073423390831814626910435256328522281237941059912534323177976783485999979938106813569480318515511830146294668541397055798330635487197658884863312349728065589895243479151511011528758462551575710866470300339871279241638031629872048559012443823982079009979738965482800461949478335551088405443461512400928298810523045050813065563049189901136625564623754796499700368099068405942433171907355360374024954033337270869560820455940633956535881887975378906198086632712235643379534323907833645811388487262925064887383247514121164516603065723667845420777009668645524298022299924026265790977229558437407800528525263669413104383685698849994114859474187276871278702700887897179200704605280119981149674218293138689547974067429771513301504967604571468409172911847955149181044071540530847816969705049233712371842982109272919213308025642584677362472106507754102772138831704356664556399030890882451593613392375175100724417929745775733341972946248771124933390423525077682799567027868055645042191126324113022398898296431476776065629643195406226386355417392599857779868877834824263759087913980620567772366544383151787171176859268447397396292403080995509794940471021524490542176042121883962908744026274824482629436631160320994197292715467942841036466138368561936375664507067869549419165454981952493606137238061819992473986537542870243198929350742794243920755776182282074337748729695985688754178412053421344141553186518321426342325762594077230648954466889839612364750760605847992227548214582754433092412424474678340912429792339907106027962988968573472621081218511951692298780375708211333695990842648242645963408186321906173499919229053078961925952637786551211954452892759185938630129661651843339391187230398533479234059405369825333263948700967239726631349105368504835071764385142030537185906896529041010896635270207892061155644571668120168928600730150176581909446059427657527518572298188257516580116003135228069255328549119631856460131555120590541506584054873302952533073554098142886858839174785292767008517324072688251210496852269139811922228571326183965502260578327270416116909071508788800216018495642221036241970777183735124127243363180717033452068110501060566336450540404708576017255422844625386130783101781690984725161635249046337853463550100385439030620640359963936387055385974692528274632367531741495932441459236773944647793685330674342082534726140483903031910708709290096423993664512117204927476691355454324897486331646134156535242563379598459926382910393656538743349840745411113889430988617594004032908769162811589373296854626827121576243556755038671242040960582190092063701955943889613357271162834694458730112703327865355786033077022105338255790833438226648462843609281861306534019575719205256479479891768386720386981730537451791123290090619880450583685582537454733092832194009949640918352242841308777521896317323290366854266371158534409881536465080710348180363972626317572789627981098590294041790486672525566358130031433262544399546267747129011997987834517534402712439538038004662737101767266016711761894622417992732352569515677812098743714347937581044918610095921419014990103835753072170200256977692376827618801698346534227955685157301638406556007244048408394303091896940451757527594911320569875520789794089909771942771400992979393675552257485976998021615992785439340415811334091915024722998168929460610334971726416971238656949401394208173258153657451330688403607114279937340322671082608760512944056899760755537971564757986559459141840992877342306590250119419250926848088705665827719614028278289027958395465765805426798000178016330522078074963658446531347484793715084355491207177195299814429642196388026521700405933671839182864381029922601763747361835341848900685305777156990741439194271088806735740072125243512684199890873202233580497589743767368505966718956568335865254895563377066190381875403557390138238897514381233226257894223966465359818090828011154962193722757715592640953156607796311446623048805521187101153119468191887653985913620363911374984500353917495288160686331813055852489345948384444149144951186888700799363925509817804446757010426294512671647684767879644732078136192656931998053768888334057798724979283018110229093754476555461356186780319158489278220783848656981380889989387957270174421997793758945576560307498138383826150045441571768544233861354061084455336786932914834823645758049483098304521425657580840966106764698141099982732519901933808390290516050509134969795648753121251031136559316409484853124922056014834713365999880437594347582256623114015449962763387495583367412120412673820463300095394810776236270226767025166203098380457380925251296843401637801952582235546169840441158493105091710174145516775451497433759799080028140250108365538486578882778451027469426581180826953262970091728587304520356049165034995525173075216679214857946431030864610445532957147844225258642643779854251531892611672041502223526880674968575731223985505346192032368170834353689371492206232432536722923896342947629106684168638920756876884269628532117929746360419801893288126726956392567567385418054145723848382640002653915072687789101643139983328194389957499949885419231841581766823165797939720268271095195729218312431104229159670218644076810079637964262917469185690430410602170598531836171879553186185326550823804691073421718786830182882959448953980931100467457348204639505677059841684574025990992419519549935468876483680203184833234524853428263925825923795640121659690047197529299504597891559896737388183944621295535483404388851072459238976240220408649171627278909823667360040877300749566334110684352379750153090170713789571723612572454853706776999826726370592925247642786923406871796609326567337970349013931317366654104494713361273089145727158551527944796688841434262215018722041233228491528755977596137533686091362789040665485678107256179434856665256719220081890406609945195815202010968379284257934838646159716948674186770004711590555155774998115861658868274576971122006719908295162435341517208267502504125425429954174154738267514340829357936764036696366266825681862504625264705425061524602457844866221677770099399167288449416132622606738775929638868631403426019405256325784149990673145580344476653575101176768816526463003081366501044278465285739006393725940523274394256509842034312180615054397475648752097474078873291829776289013928231143430108551895653421042719591465675090269721705349887983012661988706774627674187119688435165745068303328032075698964435691867114298935950391208985904180131317118947977346842606382294364742808078162800343247636469945410032038753001343704041867011669137360101018364658667533351249239402788569949326593791533566594949110274268443112779761197236997621748703001469416011165613003098260235941830344218063392175056985966945396829459511190741173530001218556918331922359133506877958123335756631871317755337380996870527491203877489456853683778948916874487683741871032780978815711609255852791416848325550922699591242465302481533508710576595437616614070713095458998679728475420013979453384817465414968426830347461440765200539871315346448304026744922177159944050962864718458146902412738768520414314847424006944448132162542148892578586656872919032697465671151905390705154043229764205583714058450432983381244184821564575593669955487414961946472536602253654003574629577798811352127303978200174090095792201505666495118420663209908377420459172273666446642086383300240455171043603125876611840757500820387724895644110383691833258197604204102719663520495463821601690358148513693369813517490732660984603014629885096258276339226926955134979902693015904615699426711071868851868731231304733144873983245083409324836936651435297731230919429766394243255231083547664814786241553366661819722767477615345499220811740939062637720362443708449362323035171640411999234854113804036809728111120437214613420610568255175916740365548718952496682549800586035151500230390091059416010757445912429134275692310541390649288403614968168920272246422374693161127407841765038532575368010254204834510827363589010279827354266063738763757732489845823986334962150477767477159301417125141906402757380843542671419391552428475608234999454937833502212900197667045492468904729515690627946664586382671427883709584580602142653239036944051468055028838153691028281906321479373417057040468744088219684775281109322074130428068971359585970756573140015066619799958858580317086812286232116285820224609847990379359477687068866573241864255909043969277789456557470999055254239153128147703920715697300242511940606161144050310537617382298841591755331310463415119965723159337551529149675906415719931695220109478279515724833428642579020906885359432465974296401941213711467567206097557943463052341844758491575487764055259003908899204738591002194515422857841397308480077423507253062825367029523364615832527795405177957652447212924860397968012728179559325768022851699287598513963463914092758632354347246562029041237625331589263619709885550272166976157327371738377435207481976737734509802065080247033318386455782948652717453761985743156830512242771048591228462693841569298759287073751463111036805472611538779665390543190553041301291559539488413803359171802906867637524731409846934067249722448960637628347438341957010438752492815713924796278593461336438237085058398850143321056680388973853028146749703014090188704138055159175497025120459724161470542763750849170428421564956455030446314277090226955093215146513650665473813846579705404329697532061364525712181227027522179806088016233861213793005904627647433241406175334578617220255858295429348020259890178091922271260178393895265979078546898815961302748047982876398080096651170209067552265482193019684953708534813558073791317783853731645971331866597621115454277628267187796414463449718273221574726602802926868371597701815024637095295524019409137954729436913370040237080320980751095980604355962031284565325181543847223779393266736077275134280221896940188308833709947704806602028879406583358915514612194168531017422443554635536433803478597354607534070001213468368363709363461785433308428745501244485674594111049965682817948081376954650874921499472616091684111000454395348626809575353926510956980308710773624029580725306577813421709892286642024385264812019528019352350272438163555634662575957804563725420752721478097604174074326048930743244467195510885955951798536118603585986639082773593675579941609033442376773558936110541175973393338455962111380985623051127280750737232916205359776638088153422348415995685788376967126567369771886553165062533247428570218739069747965593348762991616225753407151244311105944340493204966284076696119580783967795564080382677632069969586008663420085102849546298455619323589464602054891782057618539412835635714038433465446712412044741707820998476369410416331120784259962665638469122219775085787569569205614463685777152535080557281910263686961793447196599598133644209751904140447048163668139008760278134962965597877104824814243855203352276261473852975455345921964308096511913014329631663630487259886295406262216300578071679408410402583237114932699605267498127556111195981388107379702498089574685319632399613382157885661364747276105256986803546228035451383296373237202239296511530341264554381739596290328317307108692804212685940597219985037668941303875210584059422289994038367289228776890053374727049315506561245932930359018452659460954114464278431624229755708981687682232280616272763137835468366691442000650762307500093728217314294108386704930213947442556539421652017774045463226913324947355082687574900900412435880513259490607217991692226132867395579838854658662843309227117588403702624036792985289737988383886725508331815861359182198885196460262912977924572210419210343138862783242181615383347802497378947470494552539823970215282020565867494384835960458074358982680438031304725644197179568917773372059950918762067105527709493622451177904538175076465780189907146851085148056473688879029850152072942513466784801223218972927204631231533210250274210138228060065603689170137839906260648162110899466771563697281479214478072102303559726113640181534917872994633769109522555286755130334179065117104469843540928576720296249010673992109620869088749711730171875764962902205202682918954965615608182775286512479622055846263119445717068200327941564332041909145585129874418886154144188496066692261783868190851650851022706218636481645990964841897808860474501162870309752356803665154301536182519054096260423018162729460137718014899724219018546783274307619093179534491561026929980222688099547228525359162760870869420257498378580898508797899758277981905328160089740890024594686086498308723373100518225926249517334692617006709121260398818919108903653956500120789891337548140867561160221453268762800592516942322631504051361550387027567706557698303691252619462919524770154555636154283435273058619472150451691617670541616931729663348792297061999186507058696265935401237728604473520344935592755631090230005299990067254583850389345179893382371954268383175205702536592392197486728771548660533870839028207808241137972659884754332717615782582272722023279309006013599060601634037762529437873868068622298539385937960223259402108617425213178466024318328537640673260606233407722639231036501045038508466443941101941216993478805689269233620096375552114516566766289878035160799681511043773170431120987112713092366515187702472161765278223437891472470260983364670482979369060187475526078966736599048732995240510046921031936028594140271593202037860625981407440501384450191771259492739221277002801583433365473302732653192949898532350145402277052426995813194259704351192217183850359863155478200713641126086141835650925940388337553055743702587814610315631501240747037733267811169986250711353552619303403170123895606552862572928728956304167096646697100311433617379522596925610449825569118504378942006171348777908293204895340083539332837339164340637454134620834089569639762612376569160811106904360708592599154711826491630490577498020991282895509313673148358078566898995021730053659443786754355716952896163517328326678663577516844602814893223057405387908958885434289346587240217360325353997252240676390319113806993377780896031314400680253918497535667738775883100528135272367272764203802894039598910400050443749823219473896356103871954629608959585946648146748420752539973730897209599675394147488874638760694778865909906397925948769221378567426789811225504657573345711329184421644300047926406052463836003256044192019172576127530573475118877066314796427079280551633309814443818998150828984865570648463056147252519938143106719804645616119461191039824421637405240123529075249308844161445358980634699200271583529254333570588254903459131463512799097362138010003114930603740053583798906027269393424044027654724189970979222448956580424238864971999117047058809623214998289969873991136839801757728580007695660040260059804212248343497626932477444154507161555540688889582429923152474418205155707623397365846788417617662816095835304792495324745727330079625749945805158499272856325104644371343726658915959419288710290087462685404444201493691729147549899038240880760797455134560702097691209673518871055121159902058976789183862559671904130435110164311488808126290869852571386532186288575102671877628400705641090064945314254977724186463703827375957004554200375770871283452405871133653608260501441731832695801792606587849962346210499046273109712515753453831072645732178074057803194507312866800371969712653644033287604861784708939003044989641369126200143131504406606258217912780649074531705781358585021639898636084335672353090126392156740904333868935274745403503519796851717743182403426757989617481046646042661257392227489013063417044574641946810165800828507979759964363368480002761435031276521231374035977696161633371854886984016515021471108887305065976700372026428662319141309773361348277736914619901170687082660394446101561290764854731006178334382244866636023083031160654374571675396578403395839516097839727313507939361264347679904148614637743479097037161410021395953877908167596451482490215944854290684877796650089370778244443007475982345161545208819697810853420576918524610002169991423557081575752644747477645956451319122403599759303726172815902977214103376641309420326488334797331524261364628640680989939416018992250018941570481309698039899131605466637253691303124470294088712973927351541689449887800057558143084978930493763631412594011034382755403297484851514952728399552204130685010494181690957127271021151923816842835337249711431296570565580492078710661566428991645414112561505166989725540969005646285768557019645214250355373383667791058405481895137129955024868829279552055912173595170731606196818918824485001118477355281598873878099673877675289621870765599202600426243790286851877913948367778128878511317857837857969607190218242010795190330832042721343814156233272396138654576740102202819265678549338473363050828030406764649447642880723031598110714971126422058948485964036094117305424383595420914648564310698460671506194431252828666178967649011855651044863937299993645714824052162348855729205374822487479893152953285550153782066918536147507454524966786760075350828775105006379008145345488326006925434562733645823155229712307905533886805843761470231281532206420538863319667490537133837499196745694739804622074899448862473292795218679053685073302020350370003781971610896796281820151404254705799348885200857043307226470652240621970408090114555815513043360154564660523322270709157053405824834927444586438555528580698073613383072298243718669913652856701881078883644518598994113170372323737066392557416642848201529529053232032764382298455289220964037253188187579106744273693495090195688247934245106936731054570938828711211895757496896639621911005443528392122776332895152124162394108471415912226714062865956887662097257561485295974153524910932549852659706532844355950002365885269859727016521284697276051930373303039026193297017056068096348193399564829952010529309078861738547229728174337023048073997350158859385032632480021503202530207696870783309907130676677587372540313965241067976242482484600599140480403237952870002322894892212272524428950566430721174402280288534614748093696431119979620786590962665956189336003850551188129902859371522582122693978615322149622072084837094496569677182214023723583691490447633924811090755373657989843980235498184469176992098849026326546740249944849461493166409645999222237590807385218293087978304405468620428830003890210627321076460902277401797507861439940745324176108689878719535473678496287353702234246458775688126880157806226037620086538026709779790909748846392337390959336935162548630600414621059639225103725741711580543243766072825062933537198755004667055870409354260161859571084476065585717348465675939608518096435589009336579079343631020583689431218559328391811011234517427537280127746037350615189958819741564691109795541486053856138312757544815948049018879194686846349971176521953839806777420912610008612845358134996249786120689356736046755998441857960072999989103526452865201303420356159279269580538062158072535717831285372462085060816988267583231998262038360603849233807201321689665863769211158051520224047603688258032338652764530397373313242003954453605755433619715998971739931962270581609875081841315488492813874138607739837664022737836527720047631172240174091945525445908520638105600358800621985765885210087968285977244407168748825300749287288774208333625727177103826167569350568060198998918666957414394993172297196680880643558277461300732382742169475827795967104318195229873855960093708941664550801241530063255696908980704408943822097514493186514205272183051853436433182348831556676248239037090128248177132375852924553394049556675033221641268102692340077073547259642483535067255623528977846123330093064339308884159066654303378133518711086309566051031198027213666707033781868033245361494069936143874537520823146635538976093625687596219689753411161328285994576860169331727600616070170743391588449711151364449033034700601191812996485017190383712282396727071832713626728770852378585068424791117674153404560246737236531672532325133666952121417198811427477319126895017639559395792733775395473700451348387513860352326997907669628545874610755083346941931189377725305007229241226317471603211212778199839719967093764174094893174393894270573894151856350927757263424152387709691855828699854279800720820368520309463364178437787422631047519841731654844257809176960494087739885840719981552822995863033657349958471034156147068519028206109703104014451046705930879686925028122477839817020137430204626584039050075249551816557152343720094770927718693292575270224456256369934962087079177437905507361196504800139730787496387965801209422575417417320723969075789253805498080605750832510913021818317091833045581569421467396045663179241298236038877471196404722488650883391830993201059922658024112754303734676236289269426619879363226791347517344387988701875616583341507996998977272128544321424096585614378988550843640981873361678865227804381794798681015022671709536118007953376732153313230954159661340546453356260970687418841313066724447721138920152229400169834017287820780575816450454887061867028475388993138428471285256015515943647248607089090053053943203995663876710035649882028277534462010003589005458780745790771741768812352852062945919237886943628174455914043355226133443355242413609570670360388133585523570596196039303778477879915899717680871925753607696127439392840946052227805347231210009675187179878492612022844280028288199272185722937272666331475833400941350332543549252367500055126159843665821908087513095543264114280788336658415840586045064675016589134976390524575219672161721066878474607535146177075910967372740131652512874983335665645805105895761940589693975494972605944343283922958850145538444933306838203172870182850977611434275797358185409252671314082731552179289761134979630965386089007107425300643685071150494175602962957037190562967305375460131658528450976538186040987045902576146553475950184266292733548699229704182401696739989212758437511151856301517948737910517279309503675110261433968026209626290420120791953526115742305576268055444977869785478461022955984065566131474752193173901635389114179920408180176926376872803535965725270467709582340150632937415237020081994873950159996056161484627681090189989143138562065465261402685942882834872585342911412864992100796219260921354600848144587461696603884362416069462130506615642153395152066569627130622778532124432627355896906704889732167102428741705537591418850568209144047101394214670407912063525027831441774661082901523860183263000186188141338841019180110367232531369384806204069156506332440757112512365711744369986835025099392161926621618777869594491660519838331232389842082799142742426014875255468976595318487795731058271691158165849438895500192619196947907152591469770160775790382821531142620311012333562481982669580848405294601046051765353196179048311926711312683672670204527757001088169128445018865039128827985344534903376421327751939746872758197445173806599532075195828037218747291687300392629879742797375280463025483379371857725440424998117409133057146693020330319088975765377147560375357541515588093730240047654734340915372209706926181744374389332860014164463771671272277756205103117091937929285808102103274333957069945821149800441314466384916799058394277648631749557456825916263056780987052436299618258364922905865984991146313900392791691777010392740011359900260032803873570638483544291890971057916778303820710671767232406019626384913563188894234521756188689187192479658593852176120514954657921007942772859128735285661515080543259572391870630549862611331499178239714241782726875043680447627489168245988190380007062886847735531346853328038667018070211586045721893026333409415775208994536867328576509816924557248377090006043703607460645251356084317788419764793491244676478063283492505953760121811058797962288156421935954732189097648518705016791703158914471582110152548579371373047403208354023989388983966947611199690924444900937526080110247217699129753586369422487987490078243140056956022153884234464704801092734146511784609009024614833779241196391160372695501919686873603029573489529811677983464012323957571311148033398298302755206158779652826438355925919021706232426657972445673655624528670681741315657682747150292683613307156651007801410858239553277208946463974007669777443732905339890960546332436787963959743893814743942594818247357332233577142466991403407241751248935235126426776608452475964971451959441389348624679596881772301464115356405908263957319638003729508493526026634509990641074621305533196042070627895717301995009408510490436858622870969133623469557839474218931712318180258523753947075763508414773207048828205025431234035686606039496486400079979806596188145977218067507814080561676634179005793897805541098380565717959191461105798156873545375356550627537145043477828131372636705065250727591655502457631999877704258648688924525305985181794569808583270037461962738255026939269876619743842692311522572947526737200383705032241950419452242720069311018430819217360444989638663979207612097117169198614656815850139198461594352324206918728057750600568705292091388457880782596086684288094370133319041386688820992908391615102532279629477853920103791127877125562526598261544893107319593087677116670291110089275357585653728650615828842863288752154706717449290975637610946514910909696865459271366961657183085897272660864377229503547389226545296058362506199033524919938134368110170923052661600347987204943120162964513307970140858988355027115372320494456334377966791116911156903411206773482671046093255257430991781547596109888626167061669021724338566822819347248584966571365732721372469849688071153856167412538743756453631976421654663617602085974194262798589008271880081037726032962343935345831877998826058017618144331299720538231510727194437947945795277015947050041281303605206693672536864421936623065794178834747283937139154461379964456757718161172270431275191974003553880699197449177018994293328394300804827699973646195967952289472656123003103703549774481503309560807783257710329281220781815973167126973703229235382154140941936976298213530237609297469169741420261783313746282517075848619165858455505823101465600239046729820061428296081973339231074228876026906374338619096546807090282488232787696192764158252054081595300808976891565076196410784005050635341647770123038167118954977142091878606180819543500046019582235594814181819284403356178630844292118865243618736940172738733714098139855424783459621829867340079886034593960675332134485066582609503466682631491957943204255737786600503175659271192536499639368538556022362646184173020444147784746760127360632348239160566982737353532883751534542267991196791697512559384210487558109572420314367727417634310728696063784439041077352830468594811908349522167958899797716107948349405073476988910073327250706915045812181846265599127082507636351400863514373134686316926254432224596441399405419464205305630386850401322032551772609153079101401821611890493770657591314245384237058855464755703455069639689296644774108009888631572517193838279010813416293788082609164146440785548082772579328746726386901199153244782830399790979726362002758424089908040331416100479320706396699406223578891015464048993587959641147297922934623132533197699817137878046198980067525956440559717591821919792180444668087711528063498975077268519759004122231360138303011186760486163436454197859675012045598777410929135775828939890595221269702189085430237080144876163480332288601705416899254615405477020982059579029808869558786308890721749790537080538056199352078069094115692042987752708010702418962020959872721383577727256957221361922917716899681810535275806120847044038753583674021464698854130245448169936120766841095725634630470793464776124182993225457894678636749450715462650998609755879973716839860638435833321371072952838488245486813937983676312778191772963446740317027474880669767472101565035358447054914230475629030334984220336577352659182375909818098765442070307719084180277975505642163567369994591127807045336586732511914910104517900153642198514166066373543581824388553075693112683782375315883631145476022594550589600228193659617061181330336564065278756089253849335892179275030072102436387013408695478276879196235305889996255378205500652560632047867317409332631252095177173590623894342030850181104321106488778097188002680900491256039078252630271535055025507196301104042525522766845513771930711514980734281094396780690744578263568524303655250315254206015799448293919432772517152673073507029666718755206177389423866428343816668360545760876837475558957433650762766745876422702739712846701130269298912656251838615691714236309404745364922658080705631262849860328178223521470996669741974179213127998476298118407862317432464864932942964548462694322925773995335463802219332927913837591684156261335960582516728284433627035603017766853839815595652356016487093644753072445745025298380340811537693630707187615913872048832673568148558746677912406882524742732120641816405695600041311774068336732398576927999350371834778104731535305828088773084390676399352097263762134066303828656439231611554731516613147239771847539211448366506421609449033867184243196822141440730862954622814552187518719311590699649479394205170161834948946433412160905607340800409714826244297612652193676883615116358821976188792368762342616895277475654782139240059278197665477795219517790297299115093205291709708891521925537950903277863396296684336186538840014539726106911871752953849855810919999250388263277549414762787526211135463490186129819620503551826475641408635348975451160905858194871515826310605068867513427540609301154644048528452373625872812739598678067773790904327494359396139610522179905765982043575996328930561045356559535525578172978123201468484546151184234150545486581511019597817200320667404079936845844396892226564781448374236679060594633316100306060640792012864563801943966373127029835751606489953659126870201074269841972479155496766754739796273207062547688012474802571200912065476617428302381264031220003634841572522477112886849123551558314448913678801788104145146120598658027007921309391542079009930333641717885236509705287698494150631855743931330996607114509689415169318696114931924231719575102334558335428681091344702727962110855795661117811435120297711174523971178367829980444843711307462231749490086534208339518969355413899236904655742401789159016254935101512347676437357571299613118268000657697040287716429269153338118029331148711719738149257416558047454917212516319195499738598171376327168920850712513418416663759802585622612447198565068675281153525184869348017424940223801284698888588561721485591258789572665995126095997136733111136074608402887196440368866817071641742541932898935866700909271470093689346310617358575145555930098195999879087043294418118202898695729534843243032887181168724125146207276449664987639175230177854088347208271504974645926676993671584051187450432497126642177428632150375906923457476701726967379575933500063325292793136139820372145648377223298643362371356899724392900723476100840403286183598662698262157650319537383893061921061246066398198566513990066573387999966176828943919497002877944760117890262473594112515659210015785835433062427765127622575008572505791863845426739171009602079932730677755614807238056791353591787572490036879426955193088057557056889108280302517744400705058484186868018923857539569496421915024715294290659887055369209636359909975850014030917563097942945533780531272347632353407076519318087640576728713231429126989143886652852726948871638193697369397691419878208837568722020505397377179452952820785946993935718135564352490013827489542231677753666880766152500105882462915323103557333819809531094785663405896768694679979705777572992193404289203460497670142657957834687809844269316177428511336875506886542576509296434356983514573398099220480899531540218935066314127842040722714756800051793870832418816517527439535590002954486395648444825499925768518551702390518069636114510970340677861331341905630676604637764966246832895997016470371923268429270532756162208668124410472610508235303644340487208513627169436707131980941344216958901986485747808294218713555529348022641101007846971070647184770839136141924345152283336637096394316792315048797938860021165475419661776323696735571591792931384931685701350676148682962686189952960804805523894585098437935109731781573743669191783667511677895229570329191971346567550238831411285773845652775693958230712936394574297457916885231634735526749371495652312563803260859923951205062785813891427884821622512099127532492372748329548457575575285981984369407212806225181776075117825301235699948292081796188294722137544945264735523196801714827496001212070972997847127764250447943640126001447480851180224555530310121143562616637234270753639220502636062041809039971879369563715055958948427903459094235776259574830054141636821648133193845680781887955669226221018539168807132879308048164719676774223126349171472164349163128175199654217841610416104348183655112621287882897061721318924423130214627921185908282367913515511330546524134168315113226573780303925395129784541260325533500782092362548055649175099470575528357264606336496194057911713796603151839549982248390272211269949355942154175943596593930396853424934969927922848775606582445944676322010289008880517181478388479076721427001677021959935765188249240453285516550370323111338495770634800748236412505214811746266122472653164459144227763750185728803402143812506293082899029738242605327651184861902187817640433943115119299379978849662497410633539741911640611373723277786919475330558672099435937094758542763169970667648241489095836149655525587495172929734640826656841393567430730881581732153046709846518883804455820434814525842445582438955736865360842377127918947184682837337944478103962251010652969646798562090727835104894471508501623083279407797777881425460358608038179140958077089401308568849653809007911297471085966047486756853112620217336720578926233799193633758318242287925340161589788350540689729155179889491988310040694111173249476881526126052593701924825411469383743137798894284037146051395364173584440945785761801345596446306818926438467108192567877414264761671576019336957971102579970616473891877301523458118567431385431032507237414084510157994408925557706928048296133315505390537997270855499015875724929672540638201876261625127040261193721119206558708526849680579301838106514259795765471113821814771593463402391036867431029116401620484517359005415410642961645695445805760181922923805030574691699309436532206832928398002334368579119659444278485353238692417487074096775656294035491979913352830927402972257126886043494436332087751111625852615765774178736577067560136057601154825266781978461881634561019482899952957507451137268504803226918177156296777054927877107097621261227509773174621262884629191503999838431650070358217827458728817920947612672763390642769368554443742579646275577726764571367622437370325178406123290767779291340760787932564123304454315177248188068405023982150243939670646950227629312812687305759202186067073528375744778216423018367137448525671646812435954512997742294834622936142116637436187732375756756735045093376671865104159483310095401164978219484400726232707948028557678203632060743911776501464966774229736920898794502382269233004896456578210369138421842423417507777436291734783616689916964250177236130336377466164264613747091695730723047129220973916453916391447321253876090600314536802157558200459114918657298584397510416408786375638250661064959706186765692550300061683012235588639107113635593464593558055359044638110994368456822096281418601122950442475109239142467434927551942683785299902469986121258082180702793101754308079972436967425584019694918987388215740493409356785946503855775947827541057093626730067446018220666117765004826036148100408912527009904028389651326890898602653236974432844091963790790654517427932925865518245749256705933664411810386254686350938028158119235349742302075237839661100986131278723211045074229417999793963327849704331312527964765059111969616914647632085210736758631670643386383935596086160306416148685819174416959214314944629730375566598042966500594313838773550458178137873960690872936685099928222337673875831569168865634831208669767788686349826793133524188542584782801086233266670437178415793704298125353599838518010888751874596107912266962189672508328623662352694119659131226398234492116432624288102540397455220649905864702619835693415266750742145622713553274261091979193078156800957958566766146863880221631531899610348342350224994137741699287674925148106348877852793313340741470274938649259856111924217844152158759883511426011566406170095838984142145836966374017795924563496022408575432538194703728512327847052449173209007391916142899469838439472173757167551256910925855665968097497006274925766231009683421448127167682814896620786582201213180540586545229343627368348355569008109645393152748689259846627281628508846560650845114134859993719530191992958604537573740823898688389336272847173012179611771458017322761655109953641847917201221006774833095248345057390770486553702636669074460820872768916889593739681326223488781401416609643019211827920936068570379204883860255235128927999833181977559793177281403112385892096890488382376976136657072280541575675643196956275497460890596976801171214359096127134324287630752765758892579365921771362397804740855081206279537833097211700831277540552284288906107380538096787078148086034341503221618067427029439133453901372404426918721684256515606527654100216116790852614311094191708248813975342876225738383853036426463154137437522634859039070719616888196932911353959417449798933902621547375790853539138910943226317734096588518168434493786448317814597192604011137878716330248295589020260303596765102376064994139063107830830149511993716256173014981548485015836056433069752632792243463519988784784296862148121899430594861221349776639100850344556861946432387400127167826081293441690697256573899340098862673592870954454039859092966240839804093983808909705745816325886581097255825630668131581273837023939638397800063772457041762373098284611845841186917852979091802865720890848441461420234400629720829068136563936789910078879049011366145740205749862040163574336557119724065970271735129956599763586640797263687172935708118584813151204714469255391418338333379497400154483485276296610907934355355263824824501124986026804955086202101255225913342236546645819218937703979908379150132757189727797287135547602421130849588207577847344537241803058199690455430342276503295915144312225201239001330067792854876506206649639937462342185491469510376155799261548552804381903986177208210318962128356641217337017612254648077002951857291182402738157420634165495283179114425210894771665620996875651253919788639574160405796943334379647509020823607943736883835115625120922019305211776746667516809233877377721682151636168878773004371329459884748422651490966253976190104240765016061883457032980872689921488686656664444861669668762679599489380948953936339161255195477697677259794000464293252612248945014406825221551349690424351335028021774680835283042272858729902683154196671300742717792755688144600405438376765820019007515973466843038644846744662483217927684182238627426339853803257657537692657350761299276306024795436265371099056250901033337875774528375145821042358461692114835021413063736167675498612192951762293984347305380414629098353380529048677813502133612141204095272188525021855123093807182347012735252390259340703439694098001592516434563814628976265816757633369841314212396565217132834598255509302784953712037813755494176239978616433787354911570325474005374701832550222045430245402703041597280136682168041329044199910543214431866891686228742947475896053713575176296931286010864686716073404938605246365070768761489711741703839408273973146150135280839010846566484972474322293105079802244145054137132033425179433373915952673945350607531681802160308114743004347307836502926194333195777715007064169284172921871128774050595979583794060826633121477616601687193539810933890969366004219294665432437683636179196303019847644847515643248440908797081022265110540886732631059571738428364534174000822125447727531022079344997052820256934642918105678231421267112920173047161913781805192952563054533354590046155728159952618974346831052118357212396809446429613226140496374745682973447929302564571621906242682407024786251441685865545293907349704385225238370378082678385706291383079715257666318910942604863556735586221455361540759512700644351071361601793084124970776603852112911342147886339461449951600485682797151764185266674980657571180508467552379616993081174163148321474056934557810499735722034530874266498323290457629840978345689459998707997624379641140918629026372515427709091426598572394153772129910504695654856827045216487905745845049848283760963060644292672092205243681433068230057813979871640000646237039813668617819729432976372747044233301003047090339765730528506005986790050459410065568170407180583463064617633523759265994503492988316894565331417276054591676283768021347513434421414282169325903032251703276683735227602250745769065104071649801153863674463264076464889864626246360924711498887634461244694824850743564424654069757941799194328392639407154403056092504681173483433808914406098387362905831435843072181053201714065245903299003906423870570523705105280469909858827555404731576230011108994959831971078852551784488329133056463643153970891184375298097238787372198878654617253327257416341895255649672542287665125043349408306635504250015333380417027974548880084776272591668183204776887663933022072910011723710774058338178613271020454302858809106881339246824271114053042550339829214376306268062104408927788783826975879658301704718721142070225667327807435444619959789666715452451863170037235568512045346858946848007741747187690102173528294417284560057277480445094344009228266269370501308809849927586391435584074840909340864521872969217493478500351075623796809398039275128778771642482255148081884971653498577406910312140915930609963348550806918541262772447929529269335646931131762528094551302024952980871094181720337262167030094422337582239861684008585472221766832302819614376885934358572836141230473465566117138210739962494826128112079278473996098949491052380733164929354962313905736945285402970523956088438298108981086095477665276297489508918944051390551608523050183476229403170557070159024306016886972356318498673537322826987575441685972198013611813079595221663929863921027300419642130379311135387612178787937239025328891616351456365847835620356733844535875168283866196939301332301189553041440008909713075257323555257574798513494681068783023880483182036791245246834329931553664677739536583073120775137964133530868072179913547616065401069348962118915387261771629762284687587884097935644173254986811939831809544587371323429233336436068692080915820061891947857071751824600671347825483025302178366792172099841171162286041254317383745220079284682763954639924486566837498267034007648418499317770008062350553807740145002877671626281920173317202223010232332716927357480042943895856492368580946764302121309125603923107539443292009731253958310469854373992341492193968959796976749456972942632538303447240560094799930342099667650524119019082721842062026293492367370473377655261909266030394448298744337302062338358619487121063626929423973658823858149897004458088042115112435616167240804700834657352740250405277155108560000065592053870666155891915748529914739978363284609081076610708491728424935204223149067159662890550998502476782907231059189113568061455165916432373572176220335288392449331953739421493688827134944085816329166213204810533595195750199771710321216454094959956202503971525102728350163843721629660002139447500509907057038127756086306032125953116772889884455764049197241312102236960861179409347766233041521373334499705194268484636887517072816286664832433115969214199185506267934545953704672160038487454987036461890926386894994728060144469117121563100735173653867205924928903158088178272215604429017811004834438989301915810190118178867236237080098239257059908548800628163040992618759938885536056746736524703126341433059455633091298194063397936193297870151382136154564509974263244679936331238028199172728497319711367743448185167348561424059906176701106508914609540035602025606692053519165497121104129227021263624277536648315730215185923570729331573914674016078842366343051746118355578785395218470514133965553979734166991209055513947922687814541945438801203397082345475348193596249366790479446548786421477963999148378868426307101106868785209626403865577990098786492103094427496219952342501618613900852439842315760567262358734350101935695417015065429687626713000558818377357996497901575496453656744789799616628373838313520582300246930011928537633168378494647581130775372302380816481799014478074485067499068797517275691973614337858406815979050949184336754782164265853648461935751418240714580679265046020826568740560613824840781953370924601417709916240618160665159051164938637046909719400538332041081348827557582036934333319819456170686776713881611896412327013751514565306735230090546690740079728607380655604541138737103022079177371217815872914249696416982804658753497322722017022428764811702999710510455690378625084062224939115812588746557903415236677630568384200225619852911487717842671643583391055843278407730184999306220223266088498561303646525160220335438808264933253832657194676379620004984192195209999538901105238714309514726980612181182340749277042327724390747787237533089346708155461203965940692870610217809457799002706655670909861052608253543275220653580954588116088034788073863442029988572664042529739518387258641140840186168356313134100605353854354680585950123253815868622580486508004354494363077329259497943667018064485924105485777119656635168046249113393845464737958742926241167222734820974655240796093653049339314693155095721895540528268545407438851470494748663305134254981156091280594545642093869214472137033221825420058122374082725888018246030378969847579163858502531265545124136871603094302111508196721210080937489137708708533418332345051347313323768366954116959252269559214087211531685609347977294753568967485722744096001482896921360630701055928053302040241839215404057941472520716758312334629434906131274888404037090285012516437843838119338915494449780803032159748599624496860148325728410250812025263158208523280156022977134481478484782463071119946549002647144023709803136358345490380851501021688558880065830364396683493385594007761111979903322314484905228135634115391359083596318500737638689964710545594725910050324441529886305945172633159061328386719138265618646644492645780402152426136341526059584007174924910504260444042730300652249417266414689420522817639748603023239973793892120229542577452868246257322373825582100597924340545023675249994828461334769684425469318260041491079882746786335272126988907972042782119484550414898759937844705143814127494247975322365470032606946121499405644258907447653806790776476175246074196204921266291652752643740079351463787031600493476150708261622588271309508889823855378561087989548346683161072332741418842567739537310316103103104342670222616226615614917698230466681833400145870497586163316115774061330105744917330915777563396672783623447526215656534503988752931017509736166426293177163502659001858092145835486036438600161786422782167181037699888983344329761019176326185997115316604833229278609237465715701683591950246687844671823097620884893149036878113412414413315453601135136022891598937086668000841661420030112811697816527399300214904595658399014462012460345345422792858174044228400529299855564040731312675009560738798553565440419809625891877860921178866409193779826274049886156783993677567606550278248284650088071753690071399106018853057694048378595665904587989354208377939987972088112223300650107098241219453203757523646412368468610963256080679408763063969766799919158347035273593284244581088068768510131729288439931093329872666963510090377105156603906251506754898518164925973362639478268730333893040402620478752576838919681192551305841393212227202850118853432864007957555986185083285659216827466181897799795331662266131206479735848540449650789412513300523776630062887482716451287848678052182454109321270599537442094051328209887364022570964353856562095128548697323511415612792760009026538880708610848652967515361423537892754398823938825429559558279485914781970953555370663656897851493166891876761671246334776538716155416539202951354554854079307057899391779749072022187800186670801040919554808340449973655604061524257328499512448564010597712002333411633457375386350584612645482949203208474118175406958732239398446352746428085572501070382846379087380688896860826208768234340434865917130544011568618220354550525356721141583233342497901073566124819000080092696067783332387472390991352180583014606983694486278969649220613317977365983471911078255220362292338742630674528582989880708807580787845884416494900556309834650633419104586234140740553389955391861010388080178268939416483073531956729056526342783991278498399395987295422828753053957803718204507580426637903490530115794549078907496890661074409298355113410714588163001186442993192049485635911871607144580045279482483271239707066669559743006047047481688111707005982678400715211245034691028291293693997998875999719243730657350947121894852874175970029834819637372724643216999831134779473673616803589897545790358741554644963614693795813408575898190825517331367040651847737499849791070776958464808123827498195801593349481209530226327202880060173084528703391936962137042276505705895755263639180524668374497903296492914800552767938392887868877741556310364402639251659329928576692339821986198937426775111468651941284881809144436797716615517985423928536532884590071311734678103311382111554107689009836887626314949612012993558813834015607168539792726383534410604677974955883849127973415339960307277679920132753878505839877320810534263865887771062199249727944969562371334767550057256641809257777470272204667026195322246468462632317217426157734664904639833822872133545359785753175268319201508665648135437934041318806658380496248641142024809389715151090747356409548197645806826402259091421252794715601563951654666965489162337828769636574577536044348538422726032945394016488040388636384408203385993596939410554078966886466316426221882527294391167430038372888205407303127340690160145371196754774166380173230109317581106248352387034598503585041940190433161757811159660711160427374948370437835629894904592889625409692257966664312512492953441916755453340440473366440082759880695506742905427988391975118583215503829385493388683772108808538119986102836074058413229943771242149104607760195470339978487565895085566547169044578740952008538974880936944956947704384914877402502398953478197933046314746139606568723041999923955363645942347527410088155684010150009136515613110398626483190985132937800755259789795956363967907462010440637679229930973500247590254298705773664660140858023284333858937694630275319582333819341973473289743186142888927137685080083411866174545550386672604202462058716219851757464780100848019259206672405907503507760316383656544706429677832702945544989195893977358273262923892409045411444943441597593524627154828464547812255165733877701288320908301929985661387262872257985547268574078125073450345262974859273088140699133404539886995023067036509858573042686616240075201892159238547054370431714942712499528227478849865698555665219471875381910346816492843055177922437674088162826997447549064924077414541684539402671876196703752091669396265407840162972293938502917823258159855310982360574998041262909990638055953691873218721594506832463824297631449663452384149588388178617854170437949534877596816784904202755920106565287908437270963677099712632780739594138644392574212052937940506074377618723346255099557259365145444046538941024426335832962116058160567705053793730404250116663564000636273592760237595894473719673832009943359307606043456141979312838465709932445031145944164888930976456779134449846896491911994699638903470141140098707227533725299326926867917185352420115759696855957078610190067424279841127839359239734733010983460525849387659270876966702144670275375689782477461269805258114761941971180437052253343783684493682321546642990620022543290063831445058236361752319969074665630769416262579730182104309241077501412861611858933110056136646742916702442858777619098201106940246209526019347123540251484121634672451972512032529254473638215326061943151869011481057325521063676348830903985172659223503196751470621035006139522141976538611409643540781142306514407205980994201142669011636833166615756010329340544849725245632206944061103200984306950778627663226707932724946944234298339809989524169215554570508251028001610627755396548638451974955736536269991229716796847989614851422429744951930385585940572856995783600834242623763360051881910233087929574034774007395649616747130750333911503934231085378649495700531240991944698010141126205863356082924581960463204374499075082802739911387901738440613272295962410753115184379367436753327971683463812840093809236209234099158816879470117114573042301114893768437295682512459166275470883272221655045938170072190678855933012586468146259473851495356031308317269918639495661542715056515219377797330902281631903984376566355634991839129234841277824036761138032090894513102004898727096625102847264584407606742909957547128371272276463773696165848710346505177237075659863130093466642695556911492562514670974427788285435453859011395101146794933548642998672055840288182595040633347131194509572069279245597215308037072112055616818887497995956807223329350537759169497662095392389460976973901022927106375770544860932364526971469852357491224926184506669539149399969863643785378423754556318179717105564277123246108227357186001119381549379778009617319055679728013133475162057106096341922761636072729152422698190031142883731792797986865316722657513657941358326951067707870180112039628156381003287521199153583681708648103762477501803719562349364490814911156643032489288497740964201372107575168065802399485240507561723651158008764444840608403186819227747369284442178499444951790727471010355940392507094447782046884507034784932011550819732680914663535196421815976402407092534306291488354348398100568063359654911932472534123327114952923061734751543606496047043130543853474144501734761700056266722288116469117273105030758824908455180949218660738471988522015362522210702601593982849312257679788778536487459000471008685621336833113803585584886753852285308393375919040243838831029336576887952059153570048188306681964247450404075293512537853092278640954470994200230825725812802746754882856019704619044203356781332355871107999585840244445008056107744882923205913214313305342177861403530183907383697043968364256441669260761422694698875296128811427253203249010303286746602666279825952254013755804653969406830074695369063273434785968837638410304760189983762270924382729364708752040608893188736678619739043235129743682685669273228955702912994196054972100400534928251114562743021838246991841379096860287088217641607887051297985059466507432786534284664428292490414823799487256331461533890139603955615751518909468565868468975400215105664127675421480747911634279481327455773392174023651705294010219622925405979460225553272513058737555003184351113743765253564825787333210975142712445169068912927968627710369832105616870444143059633109294384995444389310003238608045225837570392964264705943477333995245447057160582235114757842018186428049483406062080101385008916621907600103198548205597716642427949562441825340303332436566335191132943297141976566191359909079539119617913587753804314376525531096917721602263163142329485071971673717933880381705978113394720547560373913171952604716430934997866397945998298707676952427656306294442371890804233051369258783609604769991250552717271333138195927667868746991683001669754455786111461482591316909288825493799117894623322095378050042182665474541351861233860185711328930030966768651461418160035221964414038126588985271952270961726921343477803493006352221482298540089959604713433038051510223553990464058710538959301733894564311678302288081166316655106953479183123688976979575520717544482840988316642472927486047028528218266023607455894791500294218591391792809074871521956111050022197621783174504608048789189088409890108776223662488359735109900257636582682554706048573464969713728552791384133847801918017942135453012152142153275433816861311165337025200596762175149255050314253817988190044877734107566614440574485647595026902097804219751925394347187603013378561366407507758503634226930772049663567447821525830667735223108176028492485404524199103748224884475550840771731014270110606800382957295337432969007822820455879976382733847288468582636392966275084194799048289874911441520703443780699057840614515926386433007189814888926342697376942492637525985315986642808609289495796309206253654355770910456533856089204880078158237512397905320111810053674794857089907538896136670948111843556871803266116118798201042566315571751589992075574598164789589799271574601450080201268913026818284604177956096317911261603000078740261937714911677788856871516934366795359617692175546263478079826197174096864306157682377756300759831022181516163685014425805885774525900853579731093401360903022806141262303909186001059292729452048787277657583440814467989499129008974926095452532082762830253497841695722546221747300728612317841439022904516827886871529764303709727094025562635531333592070119192178340017767225981246562178122442083244497925373484535116894244711335727444520864640872298212969477391581922404414187271606822025001256025786152430683696708159460506168077233431108350615854859425125651969872956119100957708413415521978738431403594317589529824584830489063862480755788416212467222894300595142439226860941037031575481138143090757092807691370032673476077151603555055313375767650470217788751926941171787958559762939633423428950957504086348143336887373853999608787483197316565555878002269993700285931795584510402592835232204864223702001304093516714669088194542398097311125653808499559306465297994723150111391437384253206762991959400172520635870990206213394730931742706346842806288342084834100669264222537393122576282650007127793340150760348888006165651403878465117940140509143501434160195401120924737336877901053111921999449144610497062911917231228500164580601597356554906583966686519826152290669764019131745680383282256326668148460535178556399271956308903800094357486894731999795482316895985876294120425554678728157653834866583819697486038810008468035418911201689023015063142557422713047980943224420930749122424556500684314888110923538545850092612607883744110270796461584395200105739361444798676530168378053077657860759055935515008150579307939779197360024856431097376696713586042574935914840707593444989641516957405344720014746714931871036408573391041395909663741825285831157445770875390079245678418650361378681064153025411377436449338525010585110218232516402786800259830669972043064043813742609140728186697761798260351571720973817976854839470744935406589502689712468111874503618386453617696808035333869651379554155594397777647683131388008826351573540515450131207430326532153306835784143608669470583649241382187314105791510421663104970448085500272448117996425805469694805009706773118355701179516989345521939670664602349409552096918245819881849663877750574551705807029236973074580581988145123302197541892548475262949312069623174871099904644962548517953934063243934231675719199392646157961417673326555392119171950749734638292536239350689459762384902435179472589281900339672035725113077546012256401262632637727234662574463674577395862356438674757371215643055444644802063770909712820452735071774461380220104175800962173049535601348756962508874309563913422458514104077986702175812203903526894397411815216043103941765381416798053328988139875552567250231361832995789246742970364323344272923016855440181372320377038642913738775362465035741134858472551625753392212584451900105083165840231767102461254839036326467046209312042899254136871259750741224967123968544936503426928404011977254908872916303848645254599530242126221844401061737330793702652427378947783765264269494653800816743197539737067729897593101588368186307912266223449817370098337438004449559411161282901180562122286324325730222481451850303683617257367522638067922929769153773829229060350354798368254797448903747477157892349213973579034123979519805436677962420088928183883007666910627022949031336395419992830038087713842656029144229980873675876493886995047053711710945189210362226707835237139110212004416659921370232882579147360512705534227464210998326910063012599159558715985563788625848744389092017393570394495116899280996799028063818429839536639234200243968016830749331907760462099592321548763581244847888010649625754402599414913069422864256975149423889967111774107168373308192668411053979540106234091015249478279245378206368879907813958924461720971849390790831548476956923402786932656594705186370767131381622493580250711127380966952111466602729490023205543867199431668605927034899299485438745642069356707584055325580500579821237853822676322624730410207648000066407157014184865435131530074895434108813495959255945053119390958489425813790925304787256975432898381252929533998039558620276368355317351281266830781739312230466466579292208357338625288439751675965473461709291326561817671230351406605939717732235227113197205516284816591585344390232860480120368041598256583731806457037010794601513783350078553178568713730146359059275730744413536302675120589061342418750608343313898439230359810384051913625890084769506802722553744855178736023228663653298684625516795081028350669542284536969186058636495288705091302435027577149810562859389043021103299781491170343984044277240211307771793487602507432919963602081247187732928634132517434523348307038454838980570145775501763427347573655269325730177559435179197570343471137799877340150438254060874340436353657877823417633177471947672235905444436257896121010096856929160060062107565462387930959312284828768488194658467267265756469487316080678116335459366891567445960177025264624965140774572917295523675078159546184435408100999986398165941119907598829742606668458912286955332593746064499341072799459184134571536305627542236066283013909710434908442516199098552509472798277720835001275097540875809823499756429846727121107043026253237850155834532354573590173793813192916297574818081139830899369675471291425240124091087824466668191305970409133074459517674182849540531708579501097293007782183060097514616579188648991695967811975345374013767264187416608852117991215448367495844521338266393223274359790359182373947740163487631913479020322788627364036654896468562878042446946539921664850153625222215225888719609947301451989703024893790368541170832350159521162882356890914641480343055234052401024430460084596512591618146433561274524277058833430970587954328618496985635172001515834299660078228212594710085510425588123869485119854522138426754731940298776386635360630723571216470489677715106152444729731393690905847531857855421850641379069070475438333229244546394305088225678140416093166773066656944954738299676204774069659054547933937726998939579682927599516238191484507207058534699614591839414459258031230919482166608072136240533502092439388088794191672722412772729496187933211346147687426648062747962260854051843473379417296108178433787474950724218772045312894619460893478891741219015245951715238550210789852434946370302218357754336183148807749602874628771558319001134182288877754988146055381796076424438492097971073144023970588538623433309655483050455694404959579608156868042945917202406184964484910105701312457957541760060900143552318757245065362739411893581152928947772060918413282962959711494833712918223139600962631342126487145188845732709964839120039775094623178916985504771395984577973698991062234135458823227071329918625979501856131988140924022227297830530285253558912503377638408620902528266601562908354495629261207750580370219335075744169519455705574884375749795075741068713419834301292415701079626671549832024693636571419753600050839777455019132020967149117832269305060201924712301197922841022847257110959408684345812777005740224802223296089120527823997411373441991336840863631944540190689754848739318694923769905385993097271477786042062818991202366755338793127171050888066098936168031342690607819294379678318397695939270755608031189700535053720955210742653669753982335736759602392728612821113739580709701119581019954702806885643270088681570012811956798303342462732903162136178359997554765065626712028219810076349155976427316295547191696449805570915145546395138160935167750444372268091294419934565287574851217560493389803962419705770772790148090929765662471876302742135375236785065043885415346432509157676372357310098226705330152560105484064053904543482235366840501138593370775169424641772422851779995686308406728580799412438592292843494177629496767549756003416489531700142687913045038903975324121165892323715657086415781073297295346330789914764635930471569118826563645732190602007810531732974547772052287684160783716218271287573642545682995404388649849441977824882230928855280961333318743683847309046225838262718931027329622917481669663361661259194242921052551348503147309245740638103719128834671521424018208900029576831040624728103136551765686666650347650339925331773071502383040062095909748975218345677835889236420077519959651726783339484938346092716387016939184134002903209187286582639234369850582651743137350407475302821877008614224156524369518626200733907161938495002981759519999821213113249178081194135184789252607654823955376195366791326163017179080391032230072953737131419956107497977248507547056075755039200795238447739496114478704094566475365136883797846802311099036877281132749378877457940819747390229158578494698993943447345304002695058081055166061565254236050380605933712943632775204496546488691526802564076400712547708077742615895060284932847237439815437698262705805608108471952578268938008640399890078850784371274623657152053375132892649720837154096288086279049403331198181849167079143599865050864526031742677612919259815402572066359908219822262624646467602481242272397084606228403229518382050768132588966907826085620234274632703251338262062655466169828929112075417624045995838636723433501813522181614666212786009073581113588753122752000268382590904920866614955672880362873428381246809423903737553241536407821035138425761477870473876750663333700478050706914202815127055794602395575225970832120018936058977344700874023856612502438831814017352313742267588692096052295985454877643712456265239078236460698270735574135925017923456078292126751408165756622746585945644938026208193895809838178378873707572634602704901361361176882024861070471475004227572494369334664539206203743167539066997710391504780980147814630156527825080866053897564588909144113005638265536524649364534675221419899064015204899288115189691361701500377968389940664050878632593495827776785340808750421250088129667719351963562543510643484249905939327182204883432560306239605929288074702462770208125859655530179513398504227524500479531442483485698815149188747536878498629253331097491980065102496987550698052483476023663062360070811104552506469337761732393842474768938992356725322348005045708569412576130107536194643276871113369773463317495855015185158982573344603658185634275774087568823772606354219909872193316044420333349760764736525102258382742640052192582314312157657004085757607532966023713828209871086215696565014693383882700404333812432849683475951271954860433525862066929137420476804099186195765424146239449155191874060659537312228589771242738517857244090457089995935448172614036678489303684402542867200320534263987200151958535207949942666541333876405277663237757913967292265427057910149940613508518037340565199581683738574860385446238782705646988206206428125777817309563695164710199165382267971050166543458664637254466409373238473719012671791863069367191668773265120331032517452686517344012828959816146523607003206839709991336887915661959504237718392367353717907176392178784801926959247630497180640210963572926316187310561927986595784920599860630927852260035471481652491062298040139091905398379894640390279229977058201154839824062294381694803478623949957922286817156487353307090950340633100009090039445740359430459483382576547998170762794819199287377129488269484532801174147266737067903775707222320476745103617566176842735530083260569004376418889975527008340722991661862193040039847884275218632131234827511991854108793273878662710918925514721863544765199226924685188990268672930585223000900197318379746060956297566687310942811761817946655701184192385880399668884099825497282836243774397608481560489383436711334105876548265102982988728682988111806003015296309403786975819544171525214957736278460259897235975904135673696423446947204598690199387053265061569423458870611918410271845751496136192827279489853433800430142459142508176859646784639903337950160393998284543943832502230525212831888419547292524818944191766289106797786711347988511265195387623761181377238867484839263200403149049971662955150943080723070904878980525122952829977085547519545178692607162622958046188727655967503190012539844924549127453997075189958637970982813671206951372407500678413660668514505910390466685546597353362055813551998807676280230146241819705847975705189044300175837710323389011117425300181121162198723341260181013329944990685067545807849785739569690430493061660336252272636013445333568809448587210271556422934373498022110474819217031519047018748527197218054916794544677017406469869147187659817682876396298217450761259937002426497949148357222782467788264247908962638436670431509619753615962116009413104059924572843659214833076721353906364979947973394551450919680924075841592477750265569269599264350434003858822801494247943284525605062982255738143145433288189403899453106791006979306211562494043725639020486759203377917774993584114950591569885122565828491435244759769623308330323480331326713606671718451911816568797268653956918297902454814901390943238194015925109200426518211082770098541995059434616290890658968298743333990879615705609901752976858683138297299626710797666741279996523188378378975809618327996183157827468765988153635468961242690437479424527461734730482559914393244839640259347908927029614389966163224033293311149761603258040678184075763344505047986087401731056411566713807508460055577567136564683967627024350592399672474382180624774199454733951675039969866233035044217029713694752227236453577155230577145613445546067073787894039561061471007604732869077598019839567649885755707050784995588469407267229544141760146259484415313284594710428831467666473082304378757073704173667671929966354390916553704808442979156693009446147685273868777172231883081737967550341729174252728681886718297963380423861217518792205759262627689574161959807312860623206951355725379958529101573942328635881954607457248961144037647098653955619866549605915631036524684930486168744106065045590517860287383195375758113517812139302479588132521742568429405637503217965417179500356054942347406991756119473338185200702315525632010299399715261456005713570298225902217415117711036747949504430309880770824763405098875329930240069061574818996907449622515563780748552276348168013992885756152277774077505460101146240605041635914295754464331841401721854228407894688636206119226573218565027533178981823151438585784638064782074643967516266771525110509996955122910241919904815830148542161268233237348733955009541191014643269469024030147364427895816624669283947649704796184287825571266560224520900549007546546997196934119282626711326305272935264008247036214134456537203604934627289438671841425879619432333276500315573491125443195802612830536768062161493860644260535400664144518152503533274487029285373543732412582583538612710476274140130655024430954766534288129549877543407909934169261398059713314436944933963617883493528749309142429964591270522783493837724366875840876759805197425803493235018280196114315174894484920830818207617433923488296539417260475410948946547760635078492368642797294609957151073736834269461258608714675665870097354830124633843144590103959249343166957656464561294384175570145127654155141906725769978357884247510880609185348324228713900312582919293592396427112629604234609505881729074553482717474279673905569601767095552169727863381418853132932152629541231796812246254902909555084786650589158846996024473609720698550038289359450560973739661252984681375429704579360852702404101477413683982375680477053788922167892202924711206380736005818100526166182542373829591370534023657750981690294317792200206788078598243622480874705587031474541775176244459981282613583204883966937170414803086307638221189664586087420409949364953988654033383951938518394784646495130162423374308129411736502215847296259718375910712012390177629530470321147741576559648714098623414193298703665695004797091153240155649850448180945207361707589175069504331155260286121902859248769198990986821185061419154946200124177926621517362194871732726648062894894908681342968162919920692126618222268920925550770871860278675056897526039284775047361001664451232103511163627624219331966941623202506680626486621421604615210498957675272808779642376268190491999157206331085736083883644754075665533385023781506166931578537887044146115932214267268582726395542024986194225229640635807657735131522433577855849911631961564969347584317736202231313754739723341049841271875413569371870114096319794193889558788216565441475551222533417112348455225412961621072463846965520388103787393281233344297237035770966468407043111859809598820182831528723814836828495222668128554628458239150004524002334441001745050449925597543934492428018520830272715879259110175971771384680934932838119365375131504723789970384500038087224970887021137719276828339462898088393778515852479123919393637065481839398696251652712852471605076848560586546161106249322280170261421611980530652859547412659172351090223785144039660365945029088067158292666132531817395499188169092799622309084351046495878111177663240830502161301372744273382577561753488640013532922903239868028742439445906806272335793163370340926919031485321302478674941514624806344977688547786044522120164749255249426529415049721865734919767515151946959943605126637552961512549281716200190565522132796207593500832005109685525525238073900589391050041904233603829390879838259326307265333330148676768139903081954651835773195667871345571351381876426248557377779556530929655263108211158349702474088778102611427041154311662340662449335052190030229652687084474390721692269628111892165151931406992277614151311479640532353617973448347682989215209107398521786911984020658686001174406175773634218766566155015150847224825684852714412879874093752463906719383065524504600308754918685197164861515415214763179897783829701151563222147317720740846748106546060365427623867734674267997256307617982337088843611476871167695768133939189210128982516893180737442442287043347621278746910182065151531527788214811055378609556505135046675910099046118732635252581520537152357612666850754367417588677475928212288020133744080469523858687142632176150952202826311926155732440582918236984909625012760670579744466604944041908645637040574142755249602094128277821906506496930076870479486077362254666996472176253385637285952105161389787780622699213435562586936867169604095912411576127277440006082355411421757662765194532304938099881364464326490880021005970608450257909692163509397209859445975449283198927394066191823542878776914621946644755383546068887715708782380201635002252729208127283082549804904453506948951953301716864177434088741239354355496809872819850312987817264290999447712642723965238459188048588659629842575951908314300152403071809612624770441664228363220222549937988049635892208880003262671697107707916581464220450638892415064854772412581627112402151585109603418140838181690996274758021120967344100607368589078084182960884316138906427154920660926644245197862923614923009216476374242092443634898176542106125968386371056588245279266653618595713243631316330582622939195006746744667777486092295320331880707593487902472729847939523311576753077263053909169478594604729856207787002117269656507813223344994181449500126212029487590120940451253128951794753642422244396085151416480900396375385491675913746486449556267772408740009001793248661734708135272175940052983124072844321305551595641566067457598745522504904723581167433827337420698547663480858602100526588311866523411593070927779093656085419096115061644662569622112365067394340150373989640227078879933235158718282938072885163067155950430509397404283164988861443107322586083051223732557568948649978943923540761651575453817118962374273140275178282849587234649582890289655488603275075825757845791661527313352115343694942844025930037653248075087272586714319563619477862699545059378838240214006461085775788054933310745234931618881367044762331268069873284521582625804781323993604748371746334109423780702739814571044498819446177796561351872618025470045100427683414670687450827678161238009484844704859585516897142013609545891676565555951992636201300547743434308352181627959589399770171879010229851176880066066596819682688243252884504781674037450896753037388761885141728861122896758685442420223076233610649712828178518634573228417073553668823027464149698531944931195030045323188460306701515811459320842904025443282141471501776091777210506517671286782210565432196696475365464075844599965726512641179458116080243802129653816134741104129995488846552710988751741553185336600993576754186593172449197953686663733092157767857865388416441368656903679967287274643843939554235003026025838503895421133454711330405956993653148625943190309781513405251201250888141373898815263727555718811363700994904862978875132266086675661174977653847822218943627949674182487700458081893886813634440336405175540686668606292965834552493946250811803948587495941885168392688657588151138625181357204571516541890179413091034961383403020429040908934989230704634949098769273433154565116627485886192037133168620606312375381515294047831744266579657370083080629091283207258747160446526818458548050687107229743828370306735293875629974609472843158074787867947649065617366873596136366963864775148056175325281549946144216020421731442740702113229552588745543646547465567891341069437732008558883801746449832825980755204113878726721840790797030593971025404815827511047440808428226534184048440561582587078984543061459315155848453365096626594875116672392584173636209653705380780452168158389367385930702763100646884454578241854816813436296928632095776271650746800486160680926817218868805353632269530876777182628446904882052889634285468086510426581659911716477843458885137020040273086355685765886920927203923646887477057658051843554372572085198210691766024967240058892982474434411142578994994788689796011967907041510235511098739122848485050395741080118941922729805491532623584590994246532951994407248510191612713644719150090177205377823575637560254464745059630413661187558603869673446474094121284189950377747913108654817218596648364977834951205946783212757336326994950153528846024368983754579417147593207244945567394616227548535562051836370683699715057045845954350987571243570454191552539815511605339631975223427610590103853891584185581243505525317470452328430785451122665565837725654806445234402853841810543774432460471796419691865886560046163137064287399351427931719455336772752959815378396187393342391043519575878190403906732071585437271075067411348690683270506421406450133224264802660204250291225504798311911299077614279150957653080955460319599925673280019083151526221435204992308749888045943919691120558348377651663263687117246775956338779511588628560657350473795415052592505614788085128041003128721657956728745683606999076403773928102107129119444524515514629699903449262107061241569336267607678675858687997044187872115515417595638590814303050996979837655420245087099873370721378022791809086808404236815416598390914361411283820115915251828152085370418242579390551728783697845855976772080607376489559456141564348653868701675101485069785071517940894842987465169332863707502499327508349417766691656954608521066911843622493234974762966805368388731478377899249136906369907795458751453218718592442252248969118913089377058828226149320220839045757781317896449777191701601029741391971830456553974864860479323250149961565994280457527527006843655256182364280076559218734872571231583349465591763972680337908499177615396627766038074930968894990696588619639973551839440621267955359440337078350726363383377746897538531763986793770742885298914843935669114918812449675018110182339927755288598880497590000654453070754172117295790166671736682486438330234425903406938194481167663891386563450621048222099962502372122932007814619117955300251888571807439267149598641908511137872773272536957293074483891724369794043383855739993572338666285248671951359687268562681600753917737619105867607426921719581402210001357574502094172314174953597370469918298122249792399083363993686075464429907425630454419735904006458291188674015123218921160082650236552555898918325690364751542883111017274396827442501940553089191854499123022643128703958984339067066668966190137600924342177857165536435347710627851248739037205946004605622428690275366335805998985449908078135401869449593614985913090114499618883883048858386152767598453015502673301111213017852395929423468166147852484878081926599597853449912024308796477091515170190492938957192372352564772344686117917828967099650435109917736684921207536770345157560674551440423610475387026525431804514328098285542966107812221120582370520155605905351824470854685422770909415744716271218706074477192569880567742270680477777092867372349683738790729887776489145581123743256071278061680230414207187323235727309803877495369221179995163013664860854261775520220261386325288975588503647522162916348487661798635129762789293475762103263953320384827838106501936993784000592222521611696087087011852762538195971830646429878121467393513950407504966582866722302225043233686646313670768785647945153678147673573668501398804860985912948317512062362509965953350341179048059185943173195916228573108124040409608521983018270397284234461529679484879838134475548361629413580437259489177356469437339011614456033497453153090365768503372200707733348329755922392928359297178355327073164797618985733935153075350228513440380408026898052865783675214211592806193703477587856221249678696592625939691358807175975223541564279514369939513876032932205398790897810458906722164091554847760753179895301947550925042495771541161995418558599633491543907108593667935610198322050006139365516813327655844973574899826762326640576783252990205950488817578053715802538726518479789853226902562515120242249391879358485133007870653033416262357780224870897506168276234295957043134398369129052873471960569323541442190084165082643155762615455789941211135290964239347492507246509569367116219837838641494082631818874241207629982449726506355454218901784340814682769303949188923962782981807391143622648630353006768564032600724519081035100959211737464993931769513107080848607311712817777212632345825967390469065005173973259619199205668854783861377482493697551142745122994737637872087526255622716751243711954445972041068959846008755701313907936070055995180962148317260490877349869642120941930415048418806422023397648735420137309888673233257512670967638008465958198343662743710411139791591344388776590080205998212652446091949492206604976155176343036907329658791697342533059296305763711145626334450607681273869332193316066880415883275611673454313015026335389667079805618920603656498454460613230425645108221376188810458030549522498712223300959635621777373647970324733732799573440884587794429094046123550281915519592729590316423096622735178126676930891634785191175175438978114253868434942930813131088513168744158479129524648782607468353570075751436071773830329993879909846214964844608954579512589467544899038692874915599435024256990281007347683873359894402233041803521580725357386854310583426484558624012583510904956819555241006257661098023256318466702137904947674014383760050772681450391759805815605957999077891841083039696886849201722605959939568217016707621503598855434093794983472874078869085673898689654314307237657236253424727777639420501959189473154219742582078810910043186282935864913456368097199043140774907274067802344517261170753577775223043105170083518767195803040417581630937635009585260212536146969175637763073986568515764964857806864191822549888715867138015253898942554348757667532191604444470522976157930962445718036442577094525107776405309377700082371903793572673609867897987662038580607673823887907243016650528160711705374859311151084729812524207512371109140478045880044146116328155201553437018831879600814212702171340936911000289813798270211889443629999977359323146603836852356264889974344423951335724458502796025614691827230314559551548766502106110626522587108373845783127571830145644622336077180744316053690068077157064854020694274021980775245080165325832803218797738967827379238470034640602732266711752398727056679305913326205889578956753225442592136278876490968067796249915963726547956038744145873527856028316301360384916415813718653173435000862107276814057471265504351882134139058716536020194378944296687209866539134486722739829184500800345312256460653092981117794474544969997995867963804199227141705549851264518967796328508709431522398868327260437164183161727292937127529618116133076421876501254171469878772336267407184466472657212424934407775425034264531970224732370987400495677336716767505682692513022673377211028900137197462121564859277349406270149376717997624921595291282397804917527939334033593639331788618350261823214225910059453384841202371242835639531836116371656741681279425068620142964204095655949088285366838705567057515677780445690280923728840607838360443297187152364385871164337454537067246267093146271891005513992274664588904464291531515039302893427263123514503402564837947531238692782639242336260154417930486154068647488669899548547425648893354458533870964765428769817747675450610896028853628455393715655828306461916028509268290345588839416735079792284712314221857867288662257263997945504386152123029971446388489084199463540724495132687443613549128580253118136135455192002232438648321093498904318842440589953878502631784410751055176200563473562732489152271413806928537466348093744778678201007688645550748513806005728205168488548335649612510348784147459385748063005715037696721556314492248665681783066837365788752417048018861779883829696106507724442617877177223345790766609918793633683761521450999089525702509214845363985618074029406668774487752305613256359910394185387727498288958630830865794578002276308263205596783649184503148679403513098631374489344909187002440789858522229853352658034701999054322163951737196962587310860583157695717559941170200650374939324949662326836048023387036125583063475649115601090491068462782858423231853374711807763387216022019292047907026045569332215652975801674832852905636682353600911426567377550154483304560496639622274245850325226355820524893637740732988912691876815079893511351607434402534335688675379728232125508565550318132158905992589875099044152220851057705712106479026661725072148281793286065956955524032625450036489950581140948082237969155744623783136315970081608090576708311822839901198773764046854303985093642506677842152286229904522367154572352954753823302193458419782716438329264860223623621458201037722803372882200437478465161614832972858897515866906361992210605702090904185562151407916530236373904205671489654796827100418342888427198231493245031151161039722591553960590185426701576518914690953882139810418907965953933941787950933240174327819983573531395440437581339283544103173902977223363075357034938600401622807716809126708378347467207517454993406455961424702702792941608300729478901233293078248025655945562450119776323802176266336700483294753183580412967266719355440218592451491495780858291661589469865810192680124537207249093531659848282816182189226625903865259164982907026960476394066699015489914968440118193595950497386822700852280518348198128419122048044036120340454135173194885151046021303093908054768443979801979681323202879520947381364862606269905806215371370742875709569584624414007296623925282050300119811506695172931344631910066240580509791665747304839872177936373101559593711179461587957708536701824916520742140664643387248253948965628693293557399820309038553620715640741062885513654123035906536670903262347869551230984015582057474078982637907957607986599217926341315082714008117342398681823187091051923460633177273330260029807012974938864746010507658138925157206512983262920464160624169137588673959753844240685743123018224808240822591093943263268918221043035058730750745165091681695672372335043403595788514289123138291400397489940799963393239535062137567043566028205313712188031332867575324614435620642624180135177670303890717711810848886622049409608287908574831515619316593099502529332551062320089295696514103523817751862110067137151879345622338311690281617784412112764359656292374024746504008192762606104867742453167372651438018645335454338534783258878464232526209387371094852661578422055240535352948079390822028577643797183968865094899035787921639320237752636826744326963721220332301991284223106800234948151915789170513264088645407145544747664399869829039025965362168274601812686879401780360625451962624020390470175264407394576614289510231804250228090941275302327479655884128410729155409258502849170342109277926830613983076467790461351462656539402910534296217990444823427649746613351341039214431491813614718545354318828476892860569232598468068775995159313147962246791764000952600854543884747827147557885469578052438045146087194118960365154250089771779009660386915973910191304799584443859528094851063272447857943368596347447296517411804192999510994837866825059584641123921160823144029362301480778046928809001385330992657062196827060377989835054419553808406787760843270409569226301131860309767159367065404708341452754859091251568854913870097356203010842939797835584779069309638976452972151301669221357794366519115617578379251014054849983210369842192718282065610497930680946569368741347109566763951722558134492122044798755151438943019192616939438700778998420891428504246902211216355391218893423658373561186016310093993775213331758139354633349359015813672283355332691275640959980452076779403973563164078960717672038315623845767086265124749079427772252325941421397352812001738260241496003591142959803012219755315847915832821668924951441354009342994484024051458557774599257132854387986177459955392051470453019471628506802052676028543912701444138141024957751755745808023312435187512661059817080354673516487349594545364233314491102328480925789298277024175020881817672130492981691231835523268137107902567009244798482496985558683360383241033955026210412986746680554516076484636647831054322354235415970011969447718494609750618000443162118235695474729488791879416535501147782509090217754349913099924099015234841398861997297888390245298796817647827714259114288139783659688195816721554441773461585286915620493049295888976773055722279351991755069708811137046763936863966696326866145491568378633077642259288382627362514870229238807798760511082013205639177640445914644640789736438069361991897007658291062123666216400121924501145720441882273903023303009064781290709980712027837025250451021610372146848976241941537352717638806489627340140229254211166033304348278467219511646485671355382214012529504046657729477438224308925012436213979302755960506273176290110072601452735241985796492789443376568978563797024477258333373813112055404301086357259450786577061486326632912579186345230575382405908342481344222993501523330189948538727829639899940812992847970941111580572590619104607158254326016786833227227007535771664024848465868933913208852361287596505614888866028928152917664104353710765773928757807954149908648065033738531399197395629561076234743798946100685298979205119771811884711541133462492191294354558943697481749848856410757408951792100787951960419845722798753441488593058059381318857844614948647590258235582932574026660047797517026965604985468375690436107066391677978188052071517696136330826761083359335796268174501547622727910272231826991767481371561484110039858657409621425319715224456167664004887703179513994376377432213258602659469249898687914295632763615744323155129332096543243522905122271929465566947577195889002832349495268817732043277443707679141248325594168834948261222487142608006048925858003413498754126846529263463522137963773373702060820336497083118242555285867449386187485169969636508703933310244752145821091794409323215287657972793821620111105008808206518370424228868280149344108189807645192170390678981784415068224739084201207852304637851323785972931235402481014957087641423322219805378381827178144330180812169091846408945992170159567331719396454774307882394735858095109896122189543097900985643909860966364674973690537219314532997593900591545609057651300645943645431371837503846290450386011128782612667357996404682836937923108058890610933863231843322165642473170144661911277532615563988009430516415124822294089583822143782357096666759950097496342571455567589728238776068086587689253436994070139587654002407699695858997477546623113681188596860767267623495909714193432012246677494123901296562588214005286264839870133174674604315856308206333322142986445398467634251769353594899635421131401324449235506557833078773634330579946495677040826904863053755439011560898464865335911771213674431615927138677961704541152191527897113849507960167236302028447423468891789555267986116814319040237950243433790291388030197399227900017002335275726803717762602525100097438159259616937708709558183903009144447931887042232014428340733126972397703032358990579790369669877964110736850772075608310777629060178950845050833242970196818052371598781661730555466362068191214500988842365138746486263239900578912253161250642104936745782738302114885547149502062896413535806195387329832715643966072327461554416083460926598013807225732888926078222054848765022571512359233102625579918623199994198452371811346932047947044250400542685258596258647318291632049300509963331855872881902780682776700970115120027110054014736846420190745241176342461282021636856544472520798055579080758281922717491473738692038042488182298370984846194404515104633118847276957657033325096853176714784369253971459845073022587720825032504955503269085268516142500425507700806643953690795169055212788826050529705554484003293710841122440210155647948260167431917964284099506371926908356554414804063256980594218472997091884298054257189181989328977811167451519081936462237761241197865413002139179928428167758124227818561508765911481038395907447487863909971212485797336845190878160256128433178761619272174743184930882557733441788858828027108557697180786088460667539273478700967976097192373427017442525456103115696407681371878339421206507817631220256652126949317718582426810406661254327556322414521944718648173018401503633567478440536635326386083033318245049272214875844213309326578041501449714662247543482172030607448407441467243352244844109244423469818619430744203967810188848369055403448325399597120319725399342782931527530661115761628720261195807407441848347680119778706323516204235523310011472591665085511112399228187385746361689902817012671905177559092254821904686778462244734432550404789961242631628273458162905121987112427013475872581095872386371543873200639745711693618900141318611560838314964084235268781918480884896827156629604932350351347504112659289817240514899780306403503473749201946096568477850679584173076198013219274765036681121104566624113293633633881202478108280913672769994143465907402903151535828695045606479587262988498332672327751019340693654121705786662445824877859697539877748289645247195955620300968296345344839229587091447150387804480993575960718248214263203686717358983108069282021684645513062040992935913969530093304248835718656873463835914795585732164250381022348651282988866708346646485290240122141689938610009335704701026989956917341249796390163743746658446860846410252818527381495626475336110579750328660454253786539904321717284145717180359910534089871689341133750869542511285649426128843950116165802641090840736262435707095645297639848793934689337574061007274422320513841204028077375794823504057655022963510949817861233196674293810003538161251384351425030293003575010509660885015203809343342794087779575109118435284699652517756123941223891283313165534741681652051428155425747545495903585675765273188809232206361419889659121877759444103056488836180901494977393019824714368740514102227406713462421184996926384611516398535608529649775093474599563407861699502660998849965029606066388572199435564735989203218855879508659668548983109264961516956362115384126134812007527750344888475029327306131396873870231119864898418800481374647923368101816678191404872993849323335472269188305624303959305546757149767332334106513832076106494375345062361014517232291708020799422844036893525319207936975344852262965464107771211405204040529805088927015249637578852489406434463418074288879108835648330993996941007384439519638793822548643438632161108698045266118014534795391790461942712881895147069800669749325243882075306855872265950333586497081908532208500683292171800977980034709820652802535353121088421171562499114701646943585286339353519322925262765300076160211313324303817547259281459841147942247403128484997190081193357394949473564275388030964474915990118173075442214941435767271250125816464853000275790477407437230314996618937826965322232427009182894437970506305949592323031382708229372836387931077286154854800469098549793338047056373924553079782249902731343819038332656509103508747165058442854338081593967075682314667041197957347280395537834972206906908728892171565747852555650397973510415504755305393349091618880574633943915659808932970324309695731333032391606069890068278560690492707328128475660018579533058067213760134378474576097915239980024842221368381616809180232459715949230287726380800170806365819278906904055832965344884507709771849050830342623783620536329956694493480962591619374775780700984435618790626818963384023163076778950071955509057747522557883705931230915476497138000812680397926011871272586042301290989130688081070768770874306086688737543869156815932012779623297586610045506561777310848580722189550644423916531847752838376663269388488375739495838074658758799351759519644273963361479626831609714108522899360790882389237416701556265775513030676501758894209296038823238230299943889063815803222168586327501289515182790405950711560804181202827474058626894667890534578709684722656084672152767781049147995992347830015045245932451503505196007611922242430828664399599996022529866898316561141926009023041891347259341003427182964555197931149903573672955259475827659972549441786619817123300685203602938235481370471875806235407914497760660101424620748572257799012942599510830303735286720890534063885366863281900503136665429470470133070907588608111095697505891457765618488083509062267671690359824250488943753953348206704801495111466478342268423455829907634231863007128147178248837331964014759598149483094010887836967506480950673267484287157230579051043967554104270234334653973422893520813234046218397368415970200477618245769270755895412917359594567567015506113780880241224180472762184346058121690158190284754104535847933403614857538114370942729941091011234768679090079125242521095742218753211331112499588463945095724807491141381477865775579686922599314618681694203320904534261263374505344647677740870188182495514124681840484330146008051748267821090029717663507728470565453335509229014770742145815748016179359590838439653227199468122199626510977573398545538524812451520171705706526985695524648246816920368094033791323787890609281596533950874256214487034154742648935384707763590707475137118749100790174311125941144612618172069498038268500680917214486038744992228326588910679218153456171696665850113123177294518982526647807945602254185114138612074851201399513605551777115082876468924066978285139601417755392362011196525875195398343684009547291983306914686161759085354661129399455170499328801128252101922164377851450344704426753274909004889494928520424694623631554744422354899324251973089008954424095724800269050473717136720026393351421498574247314662625481441574834165836891119109724509920372460265093224995490226623300147664786127759432400855939896516613222552591086470217235252517344645511065716056500845575608436647897012673010438760927184922516877229718910654209850069468398858015651339066063928484301321093313000772113940811232538927561466292644765697249379512950944206324549363377983470578683894568922822528004184463049537263971185804787421565456657963834010503010909307011853458321131441288669945166840212632962286444374614421953545526748901814719679232980651666635565808069022154815870754047772158490483166970878802633493143980634624425152291867886536364214259401002054935487793939762817072169194325275329319589303102398039615830130778255210420310472959445576441880492336655346913096493337532405906822328991944079329360319325733850519530872645209074030571132622848683693862518605289936468584544441707106126327129027230600009228183382252066511110211833823739090770071930721109431352913399641781146482892959434469289243064357356888858708417915413714773341321523404177918378090524273732534577640577252119510280166052455636045529511295000923802139604621426694463308003973330679811583207165218010759356812945029607700932647823085215162543996004576176956175074515755466653855041039720177509544261867874513932676608272388746967538801371930148616698614145595371657917219444476577222488177750830448301228044376207128765314822793028335786689543202235555757045484489715357891078713456876684829791925257164549769752908148798812401478355317596607450870021775458375351875555459046686335196138324503624235084140202578021521305508633299909650526247023726893528723342176131483075068190781856991474218331346411611716609400448280380017230675972304024527315269602494152098629181895024855999652040699208465728365324701350245134731604343582679468380229062073826880104033206842082393551981840943693312602953622489390178195115090124036582804838528940673986949955533154457371964205699999244917380274732492070444423248000246238778275600489866867802246383552983603930935002290148855253777841120892061729129649422043971679588766820788007576468276009338492545318833056249505150096138974716757666281056980792772494917823899135570161021710809993003495029947998696274473133743719127952497262027151915358167847982626553537177065600522777560438229385892348549024214686372778691495090400959656926619140105772243652892410651693515377924079690726101379518444324631294903346944388420511895057421027902096113532096468976280480646305960068069320127160388872104864791040314580815571058955895007647905169190659502660006055749530475255697800459677325990227928693773424868914212226952412750686562684689628310138589432469349829528531146043281934801820814271815589789614636179471650528947045346505717091369816199851460967251621529997262523453385265223728574514869705522168575714212798234074343072143147292179374266898100199732056649409226665131800485519499527948695392175319091961331811702406380808544884733058483035387500181977236633500317285924303489119998847183232101278519147779008100339802022248300384834993881310156310757383007034280142569181160038741908210010797842384291635418825849499783159421648449156463564447147556743023193511755969108397134124044498393643954426618485880526599180403185106436732547828575236319923759901469689276798475801389665748333375595777262360702030029143557778988945882313599903216571395010078142539553797919632077461912009542120993704249986674355861825821938456251983854995565949708275429572299238322166954267425735220411883757899091555380575760181662908715137811946536521210739634116135308356741824634536166877268945150237897710392335491037935564457847874806371661894766695005685349156719363999249837129915079573294241942034331133233983093767387448842035991759142225613960009042375437909562622009057156104498472913536635188047120148817420031225567458985309756890486817264888943183425825040664747617491500354791346092786848971212654577545509912885510631424379902473293803488269891283840405565594854620368004017456436542165066088715461459535733008192919586160517883911360927801098581022441644471587076950304505976218649592997168244207806049754871497533290466377219537732363659931797269437040992205039342299921293870751182005276473240339104135246381991294987422026878667710192043448705860308509812675252579912549614835007115524834407012096658119930809671594264401342780390380155755675339042476294857448200828956379317163285708910018611435325836820216244820012653321284420031599659677604286956188781039842275908676720079771969851422494969701716409889784031012152615367026344362860168211753677747857687340105529252883496325217088483959666975411375957807815542064060618671597169400463360718272431755352421416093135102161085469739835940610264766300678117660878598616864710354637732507871703823365684956990926951041401032101081989255802042930908287002748314550901457699845114175241475673221613285323238602228586548413212396042786745516978351955691109868620177655782610066567280290186957929313057043687524036892903812465117888219609836628172450006080444078657407818135688928622486144977500451443693336983894443829478436868733043027834245736932520729563616483824187849655756786421358350561713589625053493157006915814458523150939128903038999375692216164233873865476878508026908776949365305561557757370039330710037433600534804072166087776333215070261404961802886421261544128777987270096542388931552532317656663305312809954835817089328187644609850415722603850640157985002291190013036834723724683391505946067885092904069806789927906771934939857701147047114802385134571868919751429996868760405536001828679840676882633913751223060427185687369801818394405887848947207752253108794671883864440608870579053565984334395741519160648417395585109386136846247128489810797925302527262264693171263743549318325911671802003585409208650528514161020302460004269638308631144996576023038356739559394902247397784312184827700183126057901951111971563128556899640292789180415643592372266263484003462693018006173194351120071482208663282077851960705624392290691275145253793789859447703678536069016401029087132138872826079028945479511768759332083748505670204193339819037223408343746187506834434792011964651875507434940939111641343656295042230010743163026013774034266052407914369024801973975513568219507074238065924701999390121935947944714476161121633527604609869732743321643549075773712467377171343252487145417721252033221352580705955633507472813041024366043965333275988403522947019936773757181089118627548353178292813392641050532962966829132696861803353424450213985223450220400744720009005273844607302039128022031949243093224451680348682741804583584446424907715486370025596856870690322962893811179953065281775295728307367659425536389410217853164638709735459983017865702370294667744544258570647064160623430493058200870924382553176723832966065370111754183896113966279919606152306175596582016476555117473671943210725754410177594691914948100048486136753338519537963311015048133029975085333087397246993974332050617381806320431797018439948902612705349100789436541880801750163960624616999154597100737315060536577905028125477014138661900181978228868456408607831062388270226554436981635881538061057583805145142363246882799601869335844968413308041187495546732078260720617609275044665270946304036623098061839169003840855812485323169631097373352757485978622451666435291864589658175145988040028636981777490458215559263208003186993660014028549110306255786511235612876637998901698845896831534798642341859750006852225778361453434381021324273991352376340944963967076263917979929424528570531033781747334989356470270615350859974660912609446104869698507761433308823539243168678347107499432639332057223902590859256784065654740802011523150018801575047973378277874229668623682094070599654508290927415991422302001277546162811157411264874928417279579804817774726900630260331909701936216069532566927809692188438197235177054430014530662420755986625894257398260711636075197456717954144769576566178144342662431907993538083124972169072712931121966108130452934694208410156206634101519805310862226028498684437304912588434702410076543246065843480424381831241570904410249470362313151302488714279338286101581091122971532080334150642599729224800533595133367726687726135221787376458062497607160859577177088182027066546449431593397971514957580450189076296178519406161008291623399409332611971647184828588243181739720565926530935700804529257767718530592399518483257320476261581111937961326669853580413978622187230229987875740581978647738709509052775702180676613945281894377492143836216249486093188793798365601370697455643275782080798966565220468424666110210800627539156143193655296775939864729411046527202456604193433331794713982846201625266420902861045029299134580645313025776968396712320124287720250177186114855748817626312026386344023731714116679319444350414440964036879328874971667984401486612785687184698325284404639588280828359611924357122747626105238259427084675203547030751994815379302436288909128027388149090331230328368848917313072253149846082269234101523443176616902409748481232440687485525891220322641517380145914857771407611440192105761199639222380156281683942078983083117216058887075696955600657177693510659755321221914523011393326057198261680061530542248791900202728568741850781204168215310996188347011133183012215160067461610345603547114892115717539293772735687579657278274817612714234460682195164112652623285343631083681647692202629828211738287570344336503145930477518719533522831732100427707564555146144456648087898576484214148244364288101899548487771365553948661217828062129129781879812394866858033888786112625248153760665701877444590157203827217018518895159558777652559463302684241601917907739685344665609472129124195724010865401655604376752442770101956332873779104695981472457864987870663301178509747962361421938758811234154501139716458008146883249484301207935760053619761168021509523758094029643292557923267734945015406909917763785076118990673843737355169131788196097176464801709851248589425955602529810819449224779303142669214742930507150975172618244166030203276962610055389661111116147325572392999409979084218923374216421038554091981178483421401632501093596100319653796389530325877798214042773952697132039131616427701280509809602891474655079423173129183692852919741465211598282595069281171926995718671205242545246766884550605677960973563407571619177472271993257361404732414534466627390932029040483227593810367078019195247839221232292052283168674578976200857827589932905543056576579405964488663381481945730210288230836523270382795207476506029876280947809422066351408000253672900543100415328725924425317090759645035296535321183032210229981993836881844219163714457641597296776764855995067532327180149785680461740892235764015924177500089493324745523302561898514759665730931516703655159877855192219332619389888830008111988871276080121117969429239232639035640679195850451154614260770726169230600524440051033447195828217950449927997464859277758411295214130421819624594878159380685047513388123737032137061701641047523932058251555431324085429801512067618459404411798550558470123496444429398987758297701362441641768953965872069912901001479706216167643273752935515021010866628763475448566866113414099549919072059602042604088287578416511585220928021191827437459448501306787495241413712042629883448550102057979095329654808014935430481852436251549235061459074518356804896728508280212898259219386811525655849580469266392614562564687762330040072381779872712448016210834059530433619425920518798169397844984918493486964944157117794460959204463141748595073656343248657863203621557638026308711660438582501155052657638663369491870989612134888311239031479801247904046225466782575360848617919648780973739650416663725917620743533406974677871422494639325344450115096254978191858056987449380566824985903743113799898844734871755985321541817136425044541992253792133309783884447387898226395044920165883803121606074286534586322874083113257390880257840780961534121464307603931408105970781105456293510596068824754398371786943059421318535430328475836256052427711289848057355788921974282672863978031302278849697843211738593357342176013353769659212609064626272132129805672318209862259308742508255684762714187003674017604013086533219815974876634816477742644461825031799044940610288231627761246991048031572023599984699061161724089864274336499006871778262533723583552784630375480984636406039482649990469435268099588795464096640761803829669866425948799853372596707952311531065521680504454300816338231590815050873850870063215527002092051615002970770457576286918366744209422804286627695259404704330808506629901338270892221410005598811909649872041260414117537693190432858936669115764001986299013451028873595502755514884268968284511819394398751562260655147301522542654384571548233454736263062492593057466305993406161920849433101352513997940597790050722796250491733069182119335090923256106691129557014922970629782123838491880048025162342246022799530733975463824648167598229186851186216598008973448996278875707590496249462113333046774852891147831469144539602410034138176785042452826018939127006301749046547406985911396881005759293146394425577722400924425674576413684329971847296554293237406405476795103183371109371758879848406629117907228304467634092817933382814029820304686878734351097538218102511639083546897899088852189107490623017224816164369536621793283421783044752858527533702041419839263997910526745881637058314127709414753478305603769160919378810836544449224976955524295875907743087818964379890904161463302877392700109107168320891179827434401913795562795495686900755996005739903672280920623671134360263439633120840479457771828809209346792675137913854873623162287179726334574056185969377039345549941438444156341463070279396464584135019576795841216015817113473431637987562699060036856356384117731726190058441279077546976979739094025661805625395942829993848486759499484972880129205603509945406281276367774348948707164956504953401869600263585690062030294153062311952206144046544327537321145403344725258905181089725772973332437458923902417565037078738414946030247430993207005334412828064550458374734646136951447196465656065958132658347294858201253975656082817926041464055029267388917850351226205283240443632529247510247448636127416720959561078136803059139791937385231286415102908020541308511046517650620343093143020528575342280653263427086339266429080305610668598026456194257286971258788325518774095896204051957088801532316640220399101143443415057702767155813872840645982361527582708725513761219594510775536105166563446634758617579447126447500455338682896561379355501969430951413506884539271649234792905136522322390150748148272234856846743673895678551136850714178660113099203732563430991683734334755470335896676447422319310252162313199913773424540122896756502705940980770312952319341746950393170929139428576541730811624213467108333691372482355554444455996540656973938726177322865749417809714424785981436822711837583520149140637629883690303487106289957604656961337045011800591098845478249667530799238973888747802290006729992374932335589584103585358099467210694849897066050006214191031943292529751523642308898329303069890472039840786682753693895009024027665492141547938945512780448836920393235250609086977680462330086108736246000864511597390028129626891494777604295361134147652602275771025823702705878461739443662412378430261976485667660017616874131478550590902876402069704929076041853679218244038662136666796380730607890935131354882233760545285227167866732130902464634893103130012354140814135584783193984665811556643962037318183412830035466482840263073917003244449735627668238218500226836982551159656063132641417770899646942990656215671024349606973191844467124418204721237820431638522690560408483826945377571125307169435735380714933443210083605294716544630478772916862491725235429958349720730077222507499414380505428561699963731897439472243744225771389389906817301307165821374836843511633909714903090809479720340885520342126640927959467984783042000819228910892025195424219381036832178693102946208862088965738232958616427726328146237312803411402550681887458536303811896860916980436653998264526510304184512720146609195679993072983229470412000935863342062695896477325394348379022640339601581165846890730463501744341271159042002413900382199590840380177194864371417415142726900883734205593144695488200999005502497339734849318394248834101394855227191208216404602657264422218924233042851632569446782819487328871852621416996231569143149276429421129939551294082766602216227890971777171549579310412657978317302698391532394380455268454708948951223531925891344207491336650892265030456257558445026107864544277806374641859822813125021960624031361253631839697465576019136479272009560508285414653082113756400652165175766380224383912487266629230198023730738975162924384586270636987277264373098594994660460815866047653028233569994197357705874464201177669700957522694314674994900021795775600035163266475299879285768404572261113242735214074717391651140480742292226355979523853147423681615770150716437860004462681538258323250726107061611035038402384855955870812444981230576539894151695534661988011700971040287083581078790691431310638693023988214592092225673732248475364074520687197349489988211598118926487470485289398370858024807666407090695739032449043855882976019738774709609629472511637858383059927252162088077067514970743160715714400060935799895105873173011701235968576551039188536367005954631653644442540089516444488486779902422764434710973680493966248311110117502424200816559453555805419172214642901780657327658572796835251062793403903237067684747541314935235430562713431835141989567362260622839613599053828665730288344344628135008152938849699974398129903372072845500331263429900525751457265179138156202178384518494530871292278018680585383103584823835329306632118154350555421169118782331903174111459006264299344767074683173831383163726797913529432995783252249198103655126930848808072249751047107701243933046124943332714378915425475222645656733795812608943758434068131692386167139605873705178746632415633249218668686914038813125370569930910487174945265771279693196527266579149198422525230665682752175869620206394539534814271647503052401794578554209102414518918433506707909034885076040084557943849545367073402055704630438590138088883665953950124769618525479721473710303200379658106089610881252351607023343027012852773832241017364693586994903135852214116706825222580751312908850805621308672654136841238785167876379463277592521561361104590985909258403386367322453509875184982104702839234802480009793173818874935435775264829143613340158449869708700498289787735469702646672060397538548512934033292377143406434194841514600946671175557568092909154115463558551325684804368071837428587584225982885888922471601495503760388821210070258905010350129397166197141760344795147006088608974183746004397675905959100274360795917001917648438482865589569456900786599857041449979063860718132737406890317756465796086346730171602998210752580343233104331744003187872050795173563627151190020372118963164328655402786422615257751369525387533317616575906408689278162043588484312080756126330538784836708690938217235181012773074033001867835038276235455673096087825017221207278437617405239904088680892134133134923921019486948083002764527537800497325898860939809208351692154279979733044938648634206480592032357502348662101217437852860539031896543701532313868464857121922894009419175557308457695928330318431654236944246936608879063420505080580822980178661374283636485734451709509216985382775422403215416654318923086732987826360943950706223131450668218603833389018874565896305653365071969596309389233269482520764457418509480127170182502918362974780955551262981101102032451161475348871929920386851932618025559225217313155124739640115629015974697498925538011720483264032675398414121914412995404699998216210447443794894550501676564885796299952870481815015878698180518500782646016925025358203982366462595703600162094519283630784772328212782490552939305116814607237392364172889370187595957683576086842359719286815874000660573544807135271424125960758463622685639845350097515224625463689577299674044375917449417497648281410479591935218205615104085013876204114522687212538127594389964678533992912352109033611586414432392794781170913623364070934678840704492725937858489750622138451479020220976874179368360781421954535268637977687354797884002191443010344758350840700830482144392365909952233023300533423402184964305500967313392378810812750975412381984397542776391584534380154967223762617572220007321068857429801659195510289295963167785928848169379374931377657722345804270047161800475080558799099489020107389345739538514078424206793856811391071609068062654737263149368618472773241379485462037947120338632943624753968298463299123035897801329384187863742480038028512150447989522412614028883429434432802257181355853842372720139524603734511735013048684126211302732819475702990164305520628673854128860096998609418373818792762662811541305812106463008480566339479259299516704552416857027392842506521567818192864168994235411363226288045462770477915226438140878538061190665997339811354728962996981318785878869852843823615348738466811199086531367892136555787509121021103936789711982718695335827801066323409726862970852155506813953915558427268123006326485284796895778455282778583270602875678406343349624954845076879541213910015110238982095801201558882851355959357043971382206994222535891326372285962372269754867937146644575346699600300994626835322053780524406245783795670431067172164427126840415763143163033624992858316432672485313313363686159195931167993456524263167791138075024697199232743893263860961940716101571235715952670275770027862110477716926620167600407292695169004087397856620151031765954761479443701258037509815302401377677964479505917015952660074136310379848430366988686828302498990543130854394683891680677800659488906642161587585179498968737027471638084906470309950584443755216017559591808729203690875268672485297225971332644552160113697799641874694383947199937427906528202749373940681925211578931598128184271304883445045160337614635298428669914944779075740910944398677602961685171786744143713210093586526415193362370566726382880209876850458667339111255950858239291900833856556371231773452722116604138563939563758642495097444541694140244755682292750440115396886452535133742057865260877300947664416072012149142589781545498966223450342363581524195191041561940098295263909165048112881292932995551468918054798548668793818061634279455871652839226057034655495542966678635037878850119931771129972422491176274626172728510240637420756686559076203868815728790312935306254226791194604068755733684828312486094679585816420071227133723359087850399259561721416111535751796556944301507516519980311066480426701380194805747783532230593509512474676341001248950855175391902917628481135270831803514402600016640331956285171612832708682775469792626976949924764388236074730577423751531308342452578672878953352891017968443921554400745945374314694182611532889502315429749708818654693829508899178697292109826099391590654542995774164158871537931602545688973179921090144833264333590643895669686305815171552121760041753268100023328694574401783391569703713984572360582379408936623374877238544321235794390999874794794277592152432855787012314155956907564215094675706060051002266027733363175991026808585861705923820254606989870905993674772225298991513265781839554230864391102885397763472205645369577953993381823776590191476332854992864641348902027120342738063003810181800349062959986330021158518657521846044963371185907809238800742708669759298629332693495751544248975220757661187453124295456512040978245132414697318991271334287706284087090289219068096483269976175691191843543692263230432041690698128600133989328962818046642406945142749679495253583204702085265077306516679909511542380951522018014916527835331880984440492130130005677351556128567990814732813590346095082958862645663918822081926624502268911282219629385695399629078288171814864056924883549266568191902764169406723253498232814294390314316208385657102158083891731507585485995414208091369304054376980543436142596963118177354374920343347429661310067888403366527824856846004754780950151447750011270679752803619224697808044881037267271544339388069422711272459520935582763316858826100829146184865827766167658220781976709671531005975968279325399908134476054637291884554670848274379103125961243014893830575778706374892530758272476080286301978180289582604034518811658729011098745991820923596945668647460947241151251817201380129297654520621278605771045693255204806542814468704655981315864578708391575239631294882421378752610178988747104734456236366007757603035175146998909757205660937811070261427659403869037820294685476944407068852790923057211965720475031745497953949884668658897660576506743084093673705043985914475685553383430336732551717790305649262203392139022427763847891655634057838856221214754542491030387521936528369819910132249226868985411821772750097134411980872628706522615105760401265925405397119292991603479849805216581386767313661289112374537074810540772980386046424308023067792141645469095118080339838660926421233521919755140695879128571975235435079796511460714462251440176237540005625268321953063578163045126587581987067640533667468706793868497930519914652430013679275862880431269524559893050098618018302046084682411845966672492593112175469163229580629592468089472952333661136299391085740394475132648840084057099869631262485793875703659638247162027042456020850825000236871420322585140972678216086118411702808804099437147074720064443700678017220778670116184708538811235310181448108939321711562248539637077810268433914535249188680597628582088411017181024751129289554349650125759107318293263822114891941217901280367064703715175572505163097503389732266559325451932079023348070152378645819065215002793378529186446647981908598478188795699539583057627188055411477868982273870320834545427401428737169546055955118673156945752175871202384986338350267029027267531160917509564610674423704656309928637004077879063912955235224680006134235105601583440458964080403928233765375755717940902650525709542152507653158654408886166282000998129169899262345339388232333350801493441429668829504114664516846194192827204087667411661126074863781760809369010024991218700535810533708125380287660121869835276370743721690214368888683933804944419031666297428676908196466088437609436203272087145919868423330788212809558960440834247090752882074290456825596683335819685845723086571154417384962489751704418166710319353040805826616401486792053866276563392456363226988137128886612004404420680386344584840292760088922616640854109317784577530978665557093845663692803215216955879977048284356932430457626526551816530978524948470199089551626930332170301438220506460660702699773832272776458045878905790008177120975368279212169360988198735126196418851174289085349911672795877631569568702768688745868058584005684851445565962595293702051094639450639536957079407816948553691071054360569919801477584886994740391709854205370078953643286482208491910194444579261866577358732104384768289626244552745829451744910782830305701716723001079268728012709728877449496552305782801762755438280872406233218629642313992070280787406004114141234232592338765103094108827816718197880899291601782387569627373498219161387668481984126022722127350837486236101960029730056329898061488387038597375230573956128334267584644752815164834480277813836646045601397519028838045406856761866968737694971427033507093228415481573025630778720914786641002393078284781797522671106032654631474536034998933224929015890353583497502371437864170973821105766115879441371544911586951561926865108987984535121643525690892421273536657045819266261857505443067905193988288255267437515614958586902772387714247812206712255974876792830312399240852893120461171910787664963124195096608421937676397950101234017859499886827503550824170117955524859446834301929635273624587947571238061814772436530022752695434061119594862481427282970018025597062108611841560159531412660488660269015887232857847434496258441411605328597501825942980020282889216163898049156774675518506009032906657491755626309959034799876839170917424482859871740619509281613900758242406456340689131459879928300083160707673192492702346802272262090482133637352154797047441816874523731767884794074667848684257141371303970483837895726092274634310354918419272174881842593825247150358453020618798919651704641409581128319130017051798882115546686504862397580820730613968706003597268858591537740769388750146101870712786310925468340286912788100401946118265482010092267922710904105550647338122011362037651869168074352674557145300234000380549831062789672992135591837535123499028279361345967213506686466704247882272683008785300462656110267133488196438124448978089705912306061352215633556923680216292614263720290659603329180485280665990212518630435149923888651852428211365771103974074716069656318571529169131600340131424139459934890564136768574726022443882611158934156299582616352341668845589089147638947091574732572595662213535256319899907485605182443598663940088453328430339881886784181575965761070419270355186187767659081236400205193377742386075428817520755856289610776435565097740034638854182106400283439905500445255864224885220749212571119017958068437633651764941881934306364537808752534629050518134456199552553415432140172167086879730862533260396396247991223704501510507801930990628554898228497430357364534256655895374558581732527261272259369798773934261510715071041793910241366671116367332684096590009222764863486753953577419164551624724744160554999692795368539691576187640865459008390015752151024485008330791205565386458055436864622814299804805407524432856191118033504886338919266248728924349163562765836689119793672573626326690650211507819826943499168194141242212937997661750332049132783268556585370101020418018963312461448140710347931168776759311528961801423048389638943797050210812985185568612291924595737246702407740697509775271845541400542969583485189900213178125800712516615716924149696638257111057879904769342678474932680389891221010744542111117424640135138576500143769097030069497164351023495777924819143349724251723187263301920428006229161977262369643088575014690725369776958129993562282305729276484229360770228765324754626600642286149644224850012227391324650571241797070361793332647483812781474986610252964618158851793833071450688988635579379434768537655920078217228008284254292998141778344334124021342241535942772218837598052795948938935921896787626915367613572248129971857188828414265163949119418286638214402938614250302231275790936806037068654091245494995540962378136874576982280828769653676360208359483901401964165231282282982130560952592309508526718686975255274728322085394497983881179502658040441968279181918545304415463647937247108454133638552119516087005095722534817767111021724549241147165927539336819828625644816312613010420378620740771925694925752924833951321206416141320299765678337868366868015395661820090671626404635268136313101237234513162638231236697396273605410990000711492771727467631933885291222549308939673261467831016157176146695967809070835165559925234317760339902693561988491073439738985174517999920541200655878373801384287338335962113883738244360593184271639157656970256488023109682378541193449139676532719993663053100688508886847872051901281388289573121446121893139980935036482628401208380521040395521082744713744574857696235873132208938590544019997329751784732065310301473317567094342615538041291277292202634000223600595848895009809521438919735865989694607881889433499001121053233128463913200745151030142851078509532753874400920633623799364895637659517230981233514691246185190911420021348326730909604464824708824386870356894187294304612711852407558294213266903814370346949785780737418510965273188611705050428503496379563792390522379106869006177849204449760307425690427230139322003356797681023809561658108916764684463109580950655286802401012754596346285557825585962174944524103824528745265717446521022690539562416711464251263392395984816867259896405113755347674549319568260756923318538386878486014052029455254100070045649038325501113977715019792490664345526275412272156225222808564904019047849392200988758949402365646171682797981027184918695254485139077894634087418467847660630657751645428927441765077503604684771165006757116024105319418532370672987355776808826505780160788508752375203578206339575076786564421695952924025823326693115238239072844304852523102492646595344250668240468407402462090524917647826212270670090945160642015676317818466275590926407187553851063210096614742163792465666002433785976120139927078918646006249579976857125097234298062013759856026683856466880322573928059336155511755729430341668700345655281646729170383646196993272880710359916207077917571277061773868238994827037130383660343787646196182706172106171853754801765958888080997532845765106811539796247372729758364499919368986648618955441395466926280710271799970376118341269855918624300095695287194702608213539995915050098098907694261799178426360871450091532926686102929588240672871428790661923446396147151395950849722700732999066327674700727297873593003295150892912607828682786024299268281859214796755142658345229324974809599365048913083966730423697765608792903238933340200492663175147300201857427294136722798007597692734027250918866127992007508686912062356108471537667481384990948796586144228726511251947660965936360571548191346343127208149328654504464207437590607380916405549023381452918477008204408124328935537364724308809897175824326816551589484049892799691143609146939724698965472191150797624429626964403250616983256478748511436414737283780402856459579515866254941328492094246443081607984942584573010010627812206273166848031789786757288333873604454083953185522720619145152028514824545743439156953634363220204763788936751426801683147994500504604518067717677333626535073328274212355570827617020382157029971902416279902687326274041394274371745230379490094703232006966623171002817656868068236087197364871672904421477733640555715278510495362449942057298442497688409332321635920685994426441002601721501122818059036192471240137289506082025302995404901260725409687343005393225849992681940922667236723551081154857384464098663093846467377031206169663497075922381185245372335820559945066775907941147957415138236300466172422771378864407624301300010042265971742644710106829897245524600296279962012263505827745370623092275826540284123237162437579616584730537045800046821632088810178079516685813194792288137246074045228030250084002607472447635020006954649200747271935881181375453900857002349044210868801434038036933021024834057600583116287144372830991470104539277508800403431467021120058617550696227804578269933711248036059760647276258657030153510716333852338605737052071810988200631429398758814988164974069690511506675060584115977797112001063470485997016570062009476534909503947450467462713177323038533662391206743639225930179785760808842204434867131725400670724347750210700803156911485033852091183341934169591045014278254917212328824848963998609347001699126961574933000326013906516771775158049900555121088195633855667350953213186260378375735471578047751879185671391784573825198168221916287485589578536700758364963682603991847256065533035251907045210396344418332560602033781234610096592076281177788262994964721160560562569109588163141999951023834213345754176093615271524110280706209425826981950184424758531013695651610702989343825181554447467347721858005545432318717220690414142851034386797813626195718486527128596118827476104458791766240580889394505266108067913013439968693011054581232831400382636909439200726636712604409048273361996045108588315266646636703264457934255589657918574201095139271389216003716932603032602432283116139611609597583540558014990014289891010712159487332446548992791184512702899672574053288029913479528967520057775476874988667963878842999822702690600216044582559556919328832451482421405025038925146213331300069586545876814469093345367325311077092245271196033254620287569944629964894949136924080905230512439511329728198632982685003366758766234118671896549125940758233573398359735838076319690599741853071448651867353869003722294671927213215122918727392249583057666009293923295660942295987731663278793858012629729940952245719858950942910012505743519576960282818138383701523767849086695638984551795955270583233894837455029330040855267157982259670036695857320520034548339935898778211190417388231657639078212527479717368064914482324944745804299183053234988992197803863522856772572095751622285862264130545690528744990030901662113011105464817731795268798140141963829593151955344528371514384414395595329993010751957087481400741441401813073127874296865630014726923146423792969997920855752576768982133502335358041901101107239843452280908270742126811351516320091595675541849392722164597420962710522449567413539933286523519885579850817860415504383949914613287567600347381555051529281660615707147995958685135925035218677688851239631137696279140051286142369200242952839102601221545057939656024505793721098577729407943213119286702395539143852951225800996692359222200978504437232564445402901868929931048987497070542388215059640311101445495183945567170380018430779316974499887078722320171690584107421702188268142964515290265217968185714026689437643606955830047758794138373892773505062343811625487909563462024734458875962500309255350470383924902391956373189328483727511903240060001625582051692089507799515426781612235048423537828209456243262627821595899178745737394034896752268074498570745333082949251679532754960583965339714931220640375244987086075619206407884617751911767940672355084996229887219375746585460706477677616219073938332047518191249890588419989151271277432139657851460260671817217467611055262076186322544731149542822305894678098681588787245973514773738356580779966718085279990833751073422456982624163464299095580651455544528868573698774463948619307964091080882140722643882462064120795156701708616099741982637576984444723418939423656768071263824603348887399554758607411364724737662078661583715896355165198838365654955950547553329903422799946284920687547104620762910844415562711294943989131212854648412244333726734358705713427102976906577518348335660628720014464993015981867919904243278555887196923904457971113418801817301089211115086577225836763057494453868738243941814161333176351294451011324616736933472219521461368761437816847004337723147380784713942656194422177587186037268310721567187929610129406458888791151745546154194081679808143904780152071936410722983454834649460527414201543607233969012601267489563735401894827079374353128325488720574942575001215946079145529146499085768522744919563911163653714645218137282440317577632563665211818492284767697551640736235977817405271770536400314926438321017183983669625948011690708488883110507813415324094779548647824062253924550729097345797244197879489184593240210409631270572864050326658689179999064273865453329503611396146539074573846521682811802988272675799078022538072292775538563247479869782582870890782232579582978478526471451431250450895731250640152498371254541329980511617194767141251406991308578605520446445147697737937577033269397156333514451988246008500203281761311892775948633685922697731738708104191851145963006668891041341397278759786738796903630890534162590283589382055590278201643967202888611078238123509797613988509217817032046845174119222492296044634716886873763643289465886424976403752682912954537679017201080695516405803988939355226458763440768714370342030970411055405371913476572843765341856314970279048342035260390054514759050734331145216009116441847751059311337390552464803896012124813668365182770234080858419513895936709759570917343164337435000308544501608261330045311143843708506528995945082001420308648468516525236998956677520548339685588570454294264117659235189003895040291280899443510385624423964967850067115907332496922670489504330661563547203229806342345700633286988116276716010584634823074801571416021176928072910070799349509332976715691004208492379300644656496844056027290882929296048006218863251476586322940094546835533875455014535581285155546725371880662629013669861825311312803676273047032289389504725917768995045884989152039708844822320121104123906839761222831466424600219909876622087000950269128498244076668262231758553388526601336352786302722638855240681590781685398951538878994732754474521349557979822314928364083355398025725678037853690562424035612911888198613545498409014149188487762424719150003211938202089771687064560961555133479558563499524554446393943448058441638624177228096375439080222847631080252981227387923137156881567664602163850058276214904872037734117778984641201119302487623038935421826213294022409855457381566236847756367365181980001629306067668838020535160365723930950065119555903582820187269699214477197668325852562937647565128626438772384542652201019620506627445363450275495169958187035778571097181077225048170506309819807754078811371488775339087915107662059800364739187494169088457879449952390598053196634189268752602355946523735473760986399921468783402635848500842673833974260013833912051251882768185336575224394557897866611627985366162440544971386798626350250528095227024089506497697432628963996140936660687917493423349566380717392091980594579042078681907376995729514785219034939759826862626221952095767781930685040047106929350153811742476650533788630771335528858896534873921879240662862381082950186261556742998461665393756833884219939010971948664842431414956920838212875051487323232451966577099565644813814655982816560412732544723453476373593741361130057474076297758281246960089599855623315269043752315511009008673755501094631573381406159929325042434702774804705153002064430019650856574440888395583789888381700476725897220857619354064597141087665848280932804622762752761670802622377950569496559866113277643129675210881101226839948660209382812377819460415295551701763962866179454717876422314870906818749061219518653168959788661653371464538706306545041664388571935422644869803243209644018669716772029978788277784922608270998454211272160624940614954307421487951824332019003415283060014272405623971174747530972318834436348489527102035636521431737874225973883724462926441828255009886496328944628436663446487434692689132506562591996401861381952584404842911314843759271129236176055159053026507963483414569283901818884377845301742710569042903900509424798501313453683662044825556570537215702164901912974150401556288011467223967182029689678596325125327453964958954213939075948413269578230403039428632341107362436960837842036515360157612122248971989548136362095168548847601860136755994675789384773668410067902814712420534869096414376103223963681892192330721407922134888360947648335562231081197194502676078629636485338782372725825042518326307205240328292830477237211448666098029488113961436622627264663703029383990607728611526834191951954262774294078672204924414778863040195172681565793274947415444346031603706377597161196034676549232578675329753486765224768348548258400642253497164521393219703942973448417221533805040390050620413007462378073283839658102060596946139168581036972733874041787183278204562011183476985424638426932489209746904149053685294517939644791094933759727947723783823048401936844407347413351375054540801438267872757367687099567561892710368663093136482263079411935333976575468322542474784599917806150139623295136146654568836924530254935998610100567322575161102808082023846758242418999627568966636347698184675233881296114265096784742155967119188132274056699239959808335828075223380554720916587012925457188229069992528272447524129157300327022309807158255683232020103023896961091864235377794155912988136097343423203685482908163265876451955437055063351544053828780018538425044848746040176145833262368782561389127137748716594262279146999919940258456540899156546627879292415590907005121666822373220443963227351291026072521458699769515524759754369460003992215047800811505246599728696191705702522421695013833937659670655778198140372189724595526221594828031154947335920970898238529739798288029536570763289092975610093114069185714790708967526871162733803228014189713768552098427580334571195669540798490932593154653106319887088048196212030357007518300763324638066719550119443478487825489191560911127485529385295691505865191297387640294154471918312066288732038779546491198515780559147815128233249326948398786726969033704769735952856552462473290146815833984470070831262860158698913264017993533873633091146390835979098485515962865088953731323159189791841328651101039780468455653708405039684758875831271570367414144299231634230130421096717468086603606543188929648879294277263398160469431263262294486547610781227952970811922631006012853717063060504373569547958480221279992167509316228928613934516218806024025039450049838744070127333445754934089109678456237981125957972232520576363605263378522151918716131905113901384878074301091439447089245678952965710570164179987203714109465715365763808433076254946106632848262285324789131415043958853672238519217183480411847656708875067376507778847355108104240985848720425729961092650466537323412488814515306038541249650317640972717113118347774321041335313688834712095220153739258601503758842401461876202619438554070178580974601712835928544584065794284433965724840727095809884847919131039157859159927555252062098651414461673544212533365080771248628120539473131790006480850753205004335225904711772816538788463815897262045215339000317930072497534796895520662804449084774788855595571328530483279141073852392382174591115727277302639101881538633385629113416622457867669794313179193036517068788748286968994669509759292513377842898368257213417110460257591244975094755720536001167964561879348655738943208034506770047224825888517032213962576951128911932183207656191621103971063394967272909906473684177693310186769203161087688040273361365684350793649568000916369628543037822383679051706049245363068919085184177951015834353606136072933722965031620214539797248176968440545112471783345893280330244124250441576743237156150630180542953885295785418910875845439576228648196973020149108011203569699173157927386288956608501986395237300754952000866649999477009280548867067397810850095525329413091871144755993628406040081024301963508397720413242496508003838536971305997443012184943953572919384632259321022974574868755685891027155454274878082056567874632679824296201648175573558552975867401454007032459491069847690370721841654139012269024041168952649023778139990268147797436916814306106128200315644519210702548194178597177732214678966141299176429209125601130164312691525113933718258001996292884849563842589006433556827198178352998795926423324381895772256267695775291986824825344005891748359096302195748816240476465335686794576654757636270097784190928337439773208633604812037369221563539120306022251101392396951834524555852060926254695118313813742348021554077550228442503542084254869359147579013859459597258712620624095888624585101231496370499588831533322561599992003028734195403884832354205062331007955614862385044622126237149157335056113928103500505925377023194707369324074627124650375216176744310222376677269579365783069241489756500435988071450926350137137208676051436826342748512114385479591076447729622081151199268980079463782098144989094814965435333245612903174852865985584643885831192067451458886936113035679013088762616278914172621984565582190999148130883290064957310175404934283220738547994992794635177440620910960954392666312490854789860443107733023377253465133927712304428480985791638508542036630748230176513308939178868194585791313850099210003368628664517855068698134079301436058529328381466536460265005642669158653641242748096583794635380383920541958978841525038369601998866049715508197736491624100575882556694412066758143939347781887709295591974960646416593828260757023565908408152668067060316602957159248897248635832197116241446367572853091788755599492297054125361425555793159838615780597812925088623178308786596030287604242167307771944942804365456167888459653154753227494724104036627813719953553866181963544853830458868535736614534753070978530449063619426403149562934625962570684152767551994242215244515051568780893538381017590495031841381579233995226703487872844406690323141285743299375046873708554599883123189149425256578886383968473699923020436671399331340651722081099497207180057735573207417212730871852110103706990342729699936187811358440807834310616590802776215935981539849657406506767693428822763951743050259437923883466951036466533492073270328174871339044048677685826825015936973065264617685436983150064090733572236265986474894176265970115572785906691727881869574468808742343132383250152581432110422794072804503256889770811279842883869007862558382054079549360195085323894859895922704716015285115857104340919462245141945768258298096843959728070243971909988840399161993253308873663182222404347924222374402435732687026906671559787407527475768735391958825243939013462689520527268116926274762343998800465876124852839776999516394430782779474918563018246074823365564555959944016618128012260279188803372615920321473938344885368020143168564909741369652162705803088427242291644750329578371936985819136884399732471073909625611897049880210004223215481237690696468597160557797316306462597070273227000875959180374817166648843271292896478244174205433648705240098901809406408042529995904840214665871819138877389005103056631686039995577099904521010510100392388713108503928299562829042145628020590846327247806048217881635844471896898454027323228318251972845328220176811128271022790957814842049822749055869840420839614464753335049145166332711155782412549339055732998423067083766498252330543303871004709019633671838271610876917026196956656059946536771272971068409372033043268067234952460944746349970752153390667854472634490443508219679684181529300383282080313719421636404818815864850740020619882154224615289749034291881452061974406338774878388184097201418422685377505208427155974948114905210646934128628379809299697777839209157657392334968763328059259154654255563959854837919986739856680774476844233175875152039077667317785745751217553693124949112095944395520187006270340762671107905059610402747871867944554589967769474717509788982175660057606927395249120831869583477350520954556874318469630229355988459313793429414240088241137477492423444686980233609196182570206077850480558816261314106675971305945440177942372794498446687966474764431455365498583944215563870628800586535826143794505143541163618877708964436719077500052917136359516279118518114924237318605686506582920912581867173519275812820855179658224414389644338778606275755448286962548208481651815178971649479744953209912645467246030189038272589009596055931581200742145493030817909214952011309575149133004311263338414629298049319061915658685273949104016084303568919108619367068475298036713701568184218256571980077893273339246291331374383859762477972389567616598622251715577648423188165496349866196769960194280803184217137973074417445221321608208344125787064692135157366707667931107569626779401384284430672967817031159983386534396592402363263560576419899487192704229016556831773845295662401410208689477018905259862584754718059754107855356812061901879387571696974404347562549658814559828512359082102246200307704852756905616568321332059922442124263512626421996959079999141706996710750178114575791573109776952885370030536593153995149870685171254505534103320308492958716232479668888826885682061522611730212035613154506230284155890585115291137059804753657030215637596855557407920111691171213376716335838785430805215713698868614810121545926576424878911232628890558413777534179412710757728147982639146214730740674059776027857995997323221162306814468811669559141491637232620949495473007825738945086700624897885681482345440931542522510583004404117617078997023434816008255602398560300758855191760581805347688276257300599400717138622226978954080655598989429694330805694204522238041933497143646284137492680395087657970759554377683128988841668485858548772403740118865218188578718339066346843931279973246531335045671839298804206740083476522367023690118464564013005601900724256493571484380431968637350109694733187904835519641995943510186466192993813871170420877912285417024062665860209721881102750519959510271741189443451814665745730526730213661544200854849806735531935443740407296539627776825226323490859349676734092260256192407835214603089302253050231120163585207417373742477969655943513062833651888103656269331144421270811019100656803077388283723117569810712024960876154643968832251623705893192194242457933713106947959364362195140043635793669914933850045921183784438229684589744831567563964572886799814489947861680170049904955740876965428161092017441301040280672402374167160657452202537108035162617897653303721520220958411072798448177735055320891161588876176996910947337459984191106787784553036776039955549863520825961976113141965118801497633553211198036204992748937161030901427828348966156234811728637328077949649130851821371669587266989800493979109802189700403809665172767059350080991862913964721413589864183280975454716605540935930947995261437060875694752218714144896021087424092682927082358212786325226992143151960401331848126154555917264942307818441952126574919290958706033679725982193533210440185541791872249363874709211399139911161370714939242680283766178841180289518787405349032097043737776652564704597831177701568254366584235687650460802009896969707766060354549776009910633711347942036690477451749165746141638001043256518757961648727877362246415125906993342168258084983454878537410733781368919958604908447652507685348303183256000685445735555274849499926799404540000699364974103502915975364322471175273310266028983719582444296475281997870408999443212134346816608762593093951569019445718200187240528140392874820036810031535678559864508729525118764456928143242695085836203885657870728022802451409077164595830644162167551218385758963908115407870637606230013833667296961854456316321643354336646575784137888090913589759746243948808944232784011960835481858100973284982684313625204815435512640496197624283982812424892730342303557344313652368642650076140001364913471853700954153283022433881943124872412411034025155929289555818981296698372276010013446803445223424313303214117476910162193440713976945354442462737264222628343753411756466702778321606167857715089784226633476291374253985982214593268749338094980957782826994294150030462810063404574348426348675580935898961722419640144763400298352336812063608991869464043839380923913061010021218390438462387260821155874429183884092699643026177299746769132215754501099554046030808941923695015005568588160702823011290975182129718481974495685704605275658039049579798893925851384029850589691598216999127981308870699950606585178388183875322587447110122893477451516930695900962916174380426806314574501651610422180354924945343516913006083452417616398054386755896688935118991651546318761513584665559982827446134648838932539181341113834010140683895791270427156575036642876997030328199709767622547265235429115507805906470217982185082059440885527392467054370488748157581375568874744993763957968943306045284443839864834138654602956882199465366594376192123280574679792806386204271575763400313221793406764570601704088485080703454493798423602928017591848060704024175733810191287691180948469315187439446013848223959911348160941234403281833418085078115460569276172462870029073274185480109009960372386553623986329120867034745640622006237656870429245439408436087055367909374949040187436378762642801458751755334618849991319706851531602704490970871638683442263898098293718916987753338105846261362777642281314250813776528282837629817047124806056939635930908575109251026716054529528460412234338908727354920973935790630921432108295027678643166880315766363551506601485268993776097742241073210554916865215237867574886307974051534528849150359595618084079843504095075165509058985204489242323908970746915972754662824045221241205891267421678740090628835370465580608422403596748261729027327646814511795910235782149000555136694844321292363469714583012921585912890553396665791329440928476696425698368105360919880815436828094108167124208713723502059013670478688401018154388299016620078245044526831904303917090061164567560324070462874182860755784586149318391093047965363944365948853337742354484515581992130163841845371619633638770590358848717428981357037692191891659772276001101269080599383793293901946497658918741111880004735028612355648605617432872257435168167202390183712878300055364231163114628488023754663732668757769989042001136754519116254781828532553165114282741429280705937599662554597507564355596412619712475259778573656469708355955852598319455495477560198145570533963038036847770362174865014669205598613017975260642632698343372381916418210254122363741113886638426576032457012903634294273039537587043152494487261631987431700788517919258289356613344615704850128327391267255088123798939739974650429410802657370441274540799811612037540009100135487315615347474216272627706700508476931202379529990180653844844009378660954940246741583380377509837326850780713504822952008025790864460876382372775579147717953127823448954249151281870092550827698155748202662240807422321165165180348863156459595800495823439708287364297443509097042751597398813581799025229922455934899145206402280135864101081785323501675268374786052339185508396789948220625787125592570175329584560304505345442731357037221000935244429134390909531519631755811017677275205595919385149113970439956639277399184847169917992329968989419440091004518935916234170408904886888330628964885111828653603117572728848892364091677425584897127004961913840379227051648094655748858900056506174055683675383778128360583397266198741791676648623031143033217707962130820373270963109881720641198345995555771252035515467885033564435291697138113188219370676660875149842142910526151644252727334129540149196432533088079746427174092739280974100630818063690065178399450191868083163871558200323616342704267080839028683522580346919253437619019907159282096133795637171718358794706649068431743620120674017594485571410965401922367615398464329501422219002373593863677233624441669170647589132189722193090960586466516714139452511690059934025196953723228178762779396896907378908137852406973290338348310638829376440074179679502428534210326041964222437720844349754263591243295988736076155194829938492692173159568912802684035359083863608494916242825491762222398729749204480824105832640031191275221485233897917286381813351943477599887940170402261550029955681716771635624222541620777819408856948393306705885407193571294913706605898851443273675918906063175601156201689709580302481048408932939674705650809651566613827382804865300611287388404590113157303718763957555758941329919266021248539302158830805632563402221602740852144937839025990441669936339805870543271493528730599009892900983327869297991709166604765335003471203856909312022577935941510889686054171246656162517303922566891787612107182248521511207377431057435568597848636919928088746696642386624791339347729679051756251183162772720994483243661665321703408681865723515287150354738538214464601429436800594218790518891739855379749378640517672973393621505862499783588207337876734469946462802171820805504348907015089961363172657651957463661686108286651131601725079378240908640053754583572768219946310925211864333044036884172257764895767731973594716441923242100358006626346272842736544207772620173172297974102962077813612600210668225273613652783158859887827881260867610098231978526893332382575245370888225995334905879982223396172111827598491464215498972906264331827369576510372925845938171080598398126183270692298565148012864597741114292199072579274693954282179069747489109405618672872097109278889540953214751767225113178393758244891801843182700187144401206710498844258163779218112686769468257332752965854506648188206059241815201978194275693699131757521300621239178589618659001317914520258108156217158956655433239177981205536697874360707302973675812208015660165220434765113796519353065973496433078911680633167013126043811262175454290443461460290347207644042041337344744374056102634693657161829880473787018951109389129913611478208282568894361746427824053687973651349746430797731984219132069425160716616609361441798711140193654694663989587884762487839860156070341345251315086946132970383055042272356927954596173756044261426792336498715123217729006481287339471784110958306888373028424228636494337283390143411856635283903233379947519204098514936593368382296312817124873299858894276187431846023010965259862320927420573656105398118386788667732997111423147611506475735385027435208975661128554174048962532740839818145049651097090148329462993208989461290683627737260892064283996612694449399938130905301602650611821837048154001641278714127187276566935866859282084738465477662288431479979417607117884882665025554596811605553739323702494461252449851492738464448312860841936065089051079826365425424792101106551689676436576533475945013547273454953211260603164319884990615878704323690087875916429992780934227049268403517219832315039164360394496488856755162003897313554675381116168404203895596146277122363139689583129019475136449237246411428880220809288117642231138556334952317015249207671386716262433536935296639500612638944654287669623468742010921277976273611989111154380819283556512638087650252354163620931095041535144751648751895445957699516543905952360129962511900075749805228044161741748121437756353189447807250128644180872797688006598383917237267058622161600209993929777246763311356657783645685094373826281488506351747973992848844906767976504222949354818727120356217679867862601362040049030695484519834916095971366843701955922581415622364555992136422861145545663353655097488888535839753873288724211736107230004895899771597311297188477770308472529730659701466183921434408780626678156813754201935430604637162485331511965506693610961414389039946920191949499566175727856457696285438544035135504279569244784887858449951432271372138746007595159802063445234226918538318516587106697870806608278607743913092497896910182829467758706667152471905604913630032433394976563918432494935445593557745244658057018246767984984247011595735982010683966240745442409274401272883866220080886593794571939211114338826313276647094063630230636958981678239123741630410736824668028317104152890673398406172349592992720782100537268491877644488742652178709827848902027558242845734014472971455439720469386794902610439339411195797531413816341629044765054783568404455724150281496917124011621506999472071659041678814120659325083348000034930974141116451042038216879233555066657224092894174933675579912916694046105309238470561021514150263017029829751886602501376457466404247951586660077722469219902664394488114815485541945423649272892651968888717537087832504233521505783931134233335809602551402825396605514249149429648099027399832862935056988555257616889413356813061932070916163073094381873287748525005381749992281499667592951966463830024434023765468097471733691331041411263001464737359460163020986129144158461447430227258995741831938996487582126027077320228103692499492775302123603429788573971958534839444222994316734137823677254705483678539364993477172664114661603653763382593898254255877835679607897168298480794899516624255872389513816140250690561529983875713940800205749802708594752376920748480738160143911136018523900665076410722771892195110786873136227556742071366509322486012678403267547596788926511933449895002410893496178318786748062966043228840288140096503425950230162884415856814939557932787523093180338512592642957968240940202476027334873074259376066234091160889135410098312560240616177238088782084385417303869232385682100553656402925077296380536532969012011441134907499423984959588098477660263314583203525453502590005033971035508774739329985788870083600292152539964307607083285321169120999154153249272235843675047545447332728121048614178539482437303452318641086308077488407996943747439519138086337484891146991921025024084953547071878212589138857237687243036819368867085019083846681497769186322081561845077574170548224850972606107787614180886027008444711502530208689476488725344916411542954434324629913144737660331835645455654206703271222049607966696285957820366727537714880202134766974071660861323870695554293424179818253881739150893313955464636156206654378084725682976261805800818447536501954858532311805838459641190781042962749233493181971983536128439782947954310283095340487723586464030149995121175771031447067098303925390197293313302173024733006540997397814601861489445449531833735781457822841794603932108618194415659991947055371420169180932633072181408420956822984656058626225732189069168278498785620357943452502358749353237438591507972684276380466428605357027795767714683576169991049155282892807462203243662302473730332736333634619023013479866260134970970663359884460397157696808511424004412599656830757418714209669698585923908314614918567433315284813681714561501154624839753768711237884430943153792867535296628358092310824450516601526708899533739301210892712509865458608154035673161617071315518117479212562180900190946501550687757652007439180462697105115378719957000267428518209666140747383967084325231434253073486842838722300305445391925065585146663739727232944956304642855698070842791238049535571433506885720358324686880258053797492781159380153712765858699362367167996013949174319157657584148682973373864760229730272037871815612971867835543192147696901592804838821432888227476343957102156720516402615906635421930144871365503201290350348827966144105339911744516672314314970353363746858031898511945817682251817549844946957070481459910721176439786646393354599645302144418776266220830096519516227792397452600723788744931366385542587982057299909998317198074054400341883968151022362632727968618196408762734483829018300707661998009173843488989418860916459544029551600788890189231926019256723062637140512805075407867781596759888649721065716241474900018372413872541273102090728565133983726659813640388086977317925001150209210269543461029780383393271109005394946595529134925073893870339944089892667776811968977550383244366235546921774334155846780710222294968384745222699834649931174623051839827845092504326759742133822034110402558695655177048600082602406476544898283274893848893957919218974776148059860565548864503945393377440776477463022637770769262718752331858695957085364328016876552286132456914007378011331709835955932771631186590539880413686722058009003494677441832298375399510154863504088297764831547934852629341038278067315334559361993776556924328452189140282364912990413997333858073111604666171663664631558220970306374439455598364514501421810951758103694043096060033458030383702564753317878937676072176301490491781561458787215752862625660017742768144790068051454196356967308571548245645043255232139309353546802347366275434286805637919431533477735356385166323143558883105088112935211424774145098970683753168597051684172636588981635455831141367021497896985651056950079887469465456161240508585921211005091973445391170368231832094823169868395216498652741567319494277874266353763688568246914336422106165201092968559968471627412992264083905632190028950344069301816690512571769349226822020355346157127992381973702086083167141845413960610612441553957689714546806423347610958875635774289353769346715638599654330859594144626449925607032957480926180729595028864571670309171151318898428076504594999860875456426238054073624381072667163647652182975717471160112871968971589827628706792744687736408208343643051914942430706664133776076200921619842244387391894422639636170696534096635539367597918858350387962189197925958474104930205859180995321990154742331814885125312664869812320427937819832045209786625557952238075855533585756263545147812973843606282163709265759626036652385380986922967365475735297053013924862403261286162167986881957916453539528217936389964852636170905656372033453655133250490336328791813478123606120729414673258228932606845503273818803629668672355119074643809150839195852930574585550520918234556603023305055301914326466333154557666264777458000712706114959232687298192502029790171835708782668367219179157550861205740177093520708960090226788580751120199578679723133987269930591749432088421898083675799897921983284524617802312551036050263908825725014154034554763989603116425564358878829166260299143265580753301496949676870096122698644669315852230800051737880064910525775616319290099112084826630513221551414940231437609000299023634912854981344545714306612781068609933076355911947494646013944795944686751348132011706042617924364270142081990029326905763030949231443551538604306539817418260519752337111917440688750062214981274042963100552832036324474337357167630548642418188828472626548623999641092541344635914778023665296713898303594889935047788434940319841311317166577158671655069076238251700481352972994604516394560763757614767561782141963446956616592358521374358509012460086573994210503921512471769633372068331895318228572574941587788546992965924221943511329336663688857201264309025494138663521768567212088696494536395054804874339086259660385589084198560418894546718628433422653907907405702173711953810419206110954794252079976810467217548265416493957821792351341417579916562632528173748267373036031152474683346970403143679279377672654179767884998027292878530927793464460408396717620970256914710821326233764247476015181026518659840479391630243022198798310687425466201575575800826058999354692842251321632295233291569687702838254262402387676235972544468383318079280873710347414239940883798508926490925618777315001865307841549473008483922732835900727339699376775551126084407782692470392532185443625057598287716546041800883500652805066193969294551064070551039471929397577837702427111634909404906988391571063757674805750258621526745242463752396788565369047007911756945912867095119064004677993176855787921054652240888837360521992526668523483496427323341716954434307063422632262926517884072951827440013761537859298569301785667826402854944136931327026072108469450665671128104511490560748018475778899470972309117571707944882792828975451207706762676749788209563566408570979549155669741209616974239085160381575422842812926119787643815700729517748733032975830982446686085777792922719379998755014894750936923647637877416168937165935291321543598670214924872222643823718788200012853765984683510108393528628439919916343026907203116400911504887681519343566735623294566931612219251316951518987966222631188312357714233032305076793312985758039175149064736288561871000249883074355399902725486817222433489667181678197491859796152750267718781055999050584458682796004488072556149478853248469372476961033479665909081191953895542264727368840214289916940179883823635627913273544196790672012848462700851902988537880377472727725838246576033096447375346918534122642830532113947606153197807537739233290351157428842956628583432563488489501785202986031757916605100364544837448719639431279222289198519429711073197126735438104964949779808193452582582280776094358896605662845277240341632123003188117891424019771647018760670808676752199206531176345902022454077281013765987281847072716034629827579469017433895132992065783733738808159809465365445948803930990450648081108751167127665064390776270969221087497882262829939322262041400743414343616584956587736567610131621080474791977260911987655085439072131964868877433250650695401604970656219826128214920873090683617621859443716200950780071263055464823023568607966765251076689431426149903308028707679799488813479988887092408716300500449698547432417865574146836715804281295883015312000864512838750899231132504551970269622099265131323244440549627206861183786980414785728623006601632570471405260603338386613601731254437002624859249858278850001093986048935045341117986759063416055810127972938595309557812150039517081664841603410686986585283281299232230558815858180295092439788332941508201236428278011325284046750526180771616397492968413206098135286322376688296647520024275717179009087103254582130787638377476687883434108752767751954151811947391839992770515476774100924344315455841523706775464506518452815013774165075109813293068251163136357761911083037146866777617789309923183080337366624643692727271620965588557632649705947472738914627415558478651004691030673874866123667537074714586649661854745455114552936308647869049236234764301110056000340710670585814983842567227613201936307616158699452001692357206081865234782023603767395090442952268887358339642756803287681999117457802722467058969226046344326368700955336604601681347765440209600023313251017028593609926728921018650334107540437088302530136432572480779675040519410207854610648801721602697859184289492202973786574951224241414026775128235336631148655323249071161061669677539016404177040281383595929468150667976875120704423929517172253606341809108486321678210709477275466469387224649954528634090126963452058799886616948130152214225210554080588529988527010500741471586884365849704260977574616845662890253724925062119856373204285684714072493529432195907196870140388810734989536891781411689905237205924549740677091494801719035055181827297135389898038623382417316326539249926310447767734420622657283262676069501925477135009106312538205777728573700946407843102978022352777428061349006660457854708838988830056453101851771872583164830105480324234413296508019150225178880695080760369760981934054873909947445325693119290133626826945492866759700578741987360746881760328468540058622636263921988381059282741736369732598958385561332339422925870007098305012034039053686181807517825643607461297245598498655073247449592367249583715326781300507355345910044692366809483889548376965463870178831964611424106782616174259982594069946246204617098637267023033371068555380305790931792937866761406588240527323445109232035230848938477783520147597117929874681855968606762597625327469098907227396843747176780699028604160224095454860711159550586373206598982091230292959787863905331047295562138116071095970253937467531092983180092188564970016396904327343160483004933673546655511319054203027687074322750729928806723727000424933739906412690407229756007587982594879022207743493260720843725213277905249729486485212054939536342901736889418681793480541346609520012365270125766180495808325881144575491819087590347803126504066517463242676857920914005411104283624691073569716614073092062590502065728532136226727636145952423358926386820323986323422837576468037772244689048196083530020040582599623099968032808072584928495837041407022294822472538077084352255027371907976744629399755104636517052862177221861409055982111926257762940412128291325577812335883326643832790895094018834108265958583222421971037182840533041138672254340335275603793441536601548061279663661825082505459138680088559258050989593529692434304475348984562675999135253888854279876615046931914919845954378517520005189016894710241430383777682189947274654333864819587196646110366216056636008953121403688276713731811529335082755793364456094217569300328383149766497290066041293879236962128354749102898846840127471634819091532053419802068762985403035506170606118674760490708383403575152452526362519600045442378265228344655622062254652908921807046798498476668756641653322566910961736161021800772673035568360406859322770091743918862303877283335098744423942448460372256922000502667680723443900444075818209699367827545478628700314590931545486171162385666005869338658145413142767732754374166794132314753132300771495778900655301285402620897862953636653087138810742578144078303225237986601130711037747967841026842244164604722597950187107360505494368340158047492683764018322613199857923527782715448491637576808800525951516032621542916679078713615108530321349126073929654156134666151662036613313361838768722340692565189841385330046238714694497116151180340242496139738212210839607579716764714972247136944059487693593875050183412643233038112860575736003050926943253172716497888040216345714527856887522578163361670463703041861750261278516175166749472889746758002910673607828339520283268420800256608299660757922611302404633466335320077301163760400330554278039268279800670593169172455234068137961697176172785344957504100317299059082548059260311352247619175904988323164059719325894019404751590423678591964350129446178309961691243367396458854565566489849814735778332725762190670352711083370086764657803284866078841578652667672285750651262620402843304649872509481337052699486078464388019905227930451460121844222195693038264312034275295348324721963090825268993563767930671960616839856741880207860503565635909537131012101902368412560873688619745579189006999981408348830826673048707235236890029223489566323095536736608213799558647966348312989190291216151523000839820308615360386602055894316370082414540330375075046509889326017350605485021578581024951052205090405609091413256081125613972076573258959468940121837985036873325194644865006151797501676572329234772249731447931185161028488255847130321790073316045447550186609773994787116912153661565077530201689548761266928496697838599009588680098326262531408106230504474215539237666170717968995450624041507913645472905531201393214227864351360564730631774965822136323605522349372167952519330335608576952251176427737595318918927442550644384556421927428457056008084121173676631528428453652591204599790141629553773749398423702514374637816320221433097538610928226958039823454657925684147409012698350771580603207279384447621898688655617688814098740801638367499976239319445636287657667057590813084449520148119496866441190789449830848767116113224004135732443594995209784972895292503856647631902361969319822757028361403742357395700272726546700805076685407553579969201753123907647938061224726976278724887899017541120387991389803497408322563254177707936771885609162547926220107695113254228937823455956291541275457190748819565208395664803071879126439714764702226713638210771365084878018562408527725609498385397071398234783846130724119301041719957616586214025118398247803719560780082515388105703468412767534182139868310140920845693965050817913906670506719961265336571230197433691029730558068472757449581083742265225969820625582767316385106519432577748488999000842708561876900930248675432804759521297840321052640371523964972681645468410354435422384250753060071534408054352233448985676390638704284780444453737108069805460877654412251807203046393760579202514885500625434323304090480739774227192558516616233873575071092497515615290947688987811922918374894540016933580855216778075691703880599863694143067013197920590247214103372048636597882024043098843168299408473319707153516707079294861803609597690434741942389587219678668676909912066448946333164682275674119830851782189940749162975157597820678160805490863528544198129310311757286901175865421026069680866756143028530487504861599650433920356071308941426059074238952377371500391287124047779428538806284772718896996159021459025396191663864318764404653656570526006792325291363831183851154302678149203842641402270184328319270686620527143262757930308494303757403583049512351145156370035065453040202103766228851959129658958888066025671143353571535155204312055148909382801994090649187281480855018824037074496796637848378796249586871314148387744238560624748842464043559064928041420519392398921213722332439270682439209682509738836170263766404564100475565489250769688339402116101449518508574867771390619469323588345668678529814498012882691957260300690927575724975891298369373509938119087897271027315200080089690650692879764361160083341409403707273840359833575221749543826843589401993307640306903729206612549322812695830213183344242790998482653225071865544906994044052603180735670371989113368264421721975354975919375544477368767403206915082880108440295119652041533829279177514633076248614353575340000328073806484102870953175246527700044503412558329329607563758869546425478819975873314780906645772749993401501768859802191227313620758998813056391355814880305718563524484285628788147643135982939251887256140688156559345969649695938067032218067478584364653432382430233438686363270891599208576200627770951300636627873528284542727897928340625638215058089501731470324492333347326470464485884166157075446621453504039101787911613843027113784922357310302064030302963283221839166022753910132750445323381717817346080639957310604996924745895382347058987714534962568060631139022513123598970665950632462324647452773652712754980675870410600127845874364020683264552621628912390138324063194153780316290155599693532736903015022614949270680128482781366757594068741255647310723476345444997699579038477088030116847239281706094127778715259932555734642433028156090167841097386312349817419701661050982704416562760897270842114964607927988371945579424294063760204355316172289366034441736873039747982338797742663641623985038651703552560470612088870685206689842442493349687024681698490602787896489017187986140678776916929678168980616021841097883740783283534534011268942257080193462488167645022029661909303829773732104340910670790056069567563197201981020180312874051672809935040989102086119952882239898648383676641360584208694939594548671359383933605162189303299977218861628613862095036509372391164900306507956162904100851506460277032726592877727792953735742460951024355284442997174397640615834096049573867437980914520061818059132331546471076739387567070859326891095042386821235375269319713292632985738779999217803124149827195372264194589455380193319278342222477061551397155002348604668332176720227860095025509583559443540613293947554067643615627982095202069845884041859487537860236533683052898628513551764738752137509268665132066209529991312911435024576586126686981879430134232160696274048357372536451766008407767528273841123278674025351229296046717004515415701430655184231840468102429901590295968140256835021070334395677230723744605382727563017520906228894562133153498974484004270727215011223290052070263264186702232722332223172108018968203498630600948166533846238217701744907435647562717075235746505804151431848782139581710275438829993329624315532929136013334169206369873510975417307891302678269029817532201111703496167174415663303603229205455063942069953544671539423633369096534916127924269694052843489416082532120349999819387205848367837541894521426246207272859311405769369394745443297561816583568484464880054756043083246938493936321478179857300778190905079383248169112195377653530089141725181422891853423281978877905033334904801928087200718985362908325648359934412026916366195114757323555092081002829360178200845837159702055925290618703815551983401088440904308229632418713007486931012219844871497782416052257998704669624583130291501671197484556516181835894804178437953982578409198843128870906697680004589852679763690672056122518327627011471817732464364224846455920575058539456799557536077373836746248270225262381511154857144544859154308923029812549035098213199198977281263948176709058559939095432354465160749043460602314103811579870474669003096881276468228210254485523409580737771424511240522816043386922164620294622692248608397904271234465903729182592061847862354785156101887629315538814333257590945611164725792191939918828657929865055293224282280130078044819815232206557860931692723051240577872770319468261441066130076057390088660616424155769032683320404059368461167787334879789731807271872143000910973456178736360419301164357256105312727604823972504605487295236836429079525489749531928899243949165009699493864359376040822701427441027891266266459912253471008764884307616391343619888244930022969131750438402033029499119214921299173536234481649613820624185398238624545967690838440935532708615668643894044215718073100178184046113938203426415697809348160470318494228564108611910361955130252396342612687997744105150407816126554058584901485858933296707838676705299578348856897902573826719687349246489831976479981916500011622654955313322353053885841428951521755881208042863464375733457963926564474057090188098755827941645472589206917445226749570949340543222713220513487604151880615052143465210780417924786518241004585053233628597353779562178533344817909414306444451417425276416521927979389153922317389662384451391259522086577316799343298038933312252626530320688491445358400625199156868653268948084758456016462870381690177730197825582510423031237902080273448592186147992182416443753993998885646227304088799212196616125567996737224077706330588930009959321207966004457605113324299474114728266942325671228047836610487866086119166487142504121485859687573207301373696631495564630410776682296391317372565488598060847390014177881801392488274554725080644636843534808749974635885119023419368495396801957612904661152055821321609391527319069845307522303525015705465259080623804705231752649503299261298375799915126173244326092640936114969448493492855549527987614393771647879288762391499691997628629268589247662352636122978443568618139162245059269997316947089633778560062800628520430542156765267275113698289517476625364407782010888645602595057090653072327380864239747181582823285609621980718261404264771467493584482448382148811615424702538820419148731544581117129544651723669575710795688361159926599255879190645663770885527899273173036383429483261263062093157321303445252174886075061119619592834569197104038874490866904305255579448698519136892278531983374741601219449184581245854939532412694563746074167252307204388314760916215170879158993329140940430128240397159181587618981789130205976044825493940854872337669826138444464424079166307897751525588233516574794799154399110866544440500268208433112595270392428887661959014173672293505615636756902841725277699945060542155782922276370895907473763661949031899964202197201462193510065443370835563006891855012082577737400928105100035181346963668814909635603653078811283503455018906649868226488733581565832976353878943977264253431314510628617977792868546595600466434636351333172582734210251741401312680473142156588225429412037361153591489179824542774145078627336032556164668362897289645788652662955483155924166966025708301489023278267291704247592644976116697874033205140996306057574690489069280632056852283782280715579410602135161494288546444233526265979434992127980353897655697918411870438457929203277328899693577161384555591466447625107978808813520101797883257171367423777702457921085217232071763722767444207877286960781354768469903876560780527436192726395095046181573395832429750351430668790026477240832045766270373499599745849398233414281893325388216754364567182770740994066305656000945082274886193302482564152767976576191666549700045061935011231926336899698790904855356234520112859852515310234235281700874775313891932016850890979107903559104839501957455151049453729166173002949110515742185016691806485637952492421926849555052743054356988459705448466830877728510242777847018353967320683065456684305441047304934815804597378480345037427142867403544492870037207858952892642822854252823439838328567315191348759373177367876930014412315259732917429477746312846936159808930036432085409863661931147943047581278503431382022806685534745698681821291913044775414540040797660091967634041375180656236105734889545885901086609818071693634615157568699477025087966337125959180000747800350704408812432752561049032528369607561420736556485611013877378278054070270819387912840485443626406707385715386736155688984442832335097382675653793507431727397928739704962482741660675776993071296646256695618593518145875724638512843651931925711397470704722005430863947585752252069897638935185404402067455746280296818067724842250662175522850992104559577436367509941300017867412299295640138520617490388055190154153732050791811580288006422032919419169396011345162138268222143538430057655770427910002263541282743777407621637760605965421633732216987595075604782535084879005581091221334428897289798749804067190274332000903329623925766855468078066668348976195989469918742890154271522390069258889044242883672681137387755373277501412263855893670468174901140741711575992529655072318117284771742301673124200074601162869614410601462155247424037091712713162140962159680276071979010893042850460355200469901748565551670087522544407734766721622547442902717062672608576244988273885299988596250131617887027760161343986897326287712700238607208808012975936786345781351913894413733535451311903354805626622929311848013025284363716403912317303151187237023810051094626574722356558125372827224599706003076847160906672008133988518667763503132716973812777952466691756787119704413362878155141043220087763392154015800101924650926447402209201712896878590884991143656244384500912342507832742923543219240440686240274904451012923104586386204135995882706243014982433791428983804166689776721065733396504701976505899058731404697432101645907251863308254565724598658570558944855012727829973839995069549773328795973930708538255538098414708491981138902119122699403047920503340476457630960128114250942362252900155795256381581325514737506900230337529944456964316650748798366628587591943692878643957413153987072857753518908698929985273815977931521527652350982197010954920805031195735273085071440852909977805155232117866627347045042195808484366925042996963922646395995381206259939407149668763957473285833507174990416331449215116752611245237355481594842682298806037733151256291350259104795750564421749529716184252284440251117254106995944859148049364424304308244291436030141410221202870307955502996491757771557021482940371051754464986684737308727139856833957203263609190200164745734358646509887892962037877289471875086216777962854547301278895221093465623543869731840599413154248150269584318984312571313889148976550108710078206101587171535123107955971858193551971793870970546115145977259491754828524997594824188058271502090926029908243404522313621998358543472507155894455099697311361169639698567408407699051888754199903381950006346203269110010938047862490784717640045585372879067443139894503931074969360727121822209391452266827510771337872017052606175440306142222500958968258127410015195846505425687728161711298813616899673057061689874207308674340380403468439690830915390385071030863102275806585091766215833233507940991734149145899975690458683803059916008309503496156316791324061086831225909488009931539307049747474759127435726008762889954926957581677689932938943662357538701256179255604589483387059242326350972080472939000012694361239803847380508963775746355430096404172594770750715373443664495681306892240027243707252188307456088755528536778308507783592382922295331062009408203884995469782954279678572966459737956531948254177560439587133703579781516387451457155814216315791694398904406030333535270992087850365225897882561970974494541343518056009004315740913527435870286737921827109092432178524483960836681673289874026850379069984828876273058352308425408000639028166791761448208883474057390216818780031781930645320318522629590747455143153507573490891717336789337347343388489260436440808944035640029745384863500263587203380911932114599227881590587825849926630926777810121169365490726011717546154310782011312946625832739939422526262705575151894560376398566291854128676051880189793619065956781506408919096109257599116930121163355627301442572437484012754909581218612306988279099308190301138841819305081997145221413822193693534796597967290426439492484243692322254054994015380102708399144633178145259100071620980028849025085592504867531069846179040923101549640309933278324111140101961511130307615584500813459353515542016501551068568732954394376367653638611859219324850553297881921742292332087847086421959009261803003474588221627622719697877751865681471205287506303392233836041496577147495646793676186187155458139973332811787712294085180753321064583416703738776598470681737511524537509419107086418500748367283579358784449212954425602676036276715966062009048703173548148524200364652252015738965025590506346557894377080882243451388352089260960232783574196859092297778023315083166946016332309991118267678472664011384830412425807040183032595554173797030408304378021553170441437438548316839517119098574545276551167617199999484220269461445598185394289192754152971954043779955077703595703438284117005420087227051220482799794573895650523873823350901862430052342711076484374586847016666582843265700754140606588865575473471002769728664017767137716443007332186212218113812030852114706285479655206080947345051849619986902311296414417830084507378209207661133948057562072335889679683304118965671885993517340464251221282477854788321055316049974993419713188049161271854845041197555346377417905597098460767458870972502943504705318261319602720487418323398060861545582953423700290972313429924765240108115968714620706897649827817378082878205772148708765339818370300366040446009572140273574150219246528347586449929025022928601587027916266973833514934078637386901460721751972842715925534087963159092891569018634742098128283904130951315373652550375734262368955749117332859794720993802133779586785851105189145151976740927890863360118510137343453141926539156637916275997312565115791957797466718382149079573488162584499887456857680061938242843358514560687071371820226282178564291998080105847615964411300691308232084140164754125474730442000440136822935944737677819926384728235516388231760701404182200585923543610340575159106462303425801025766648192648274629396705304043039393000206840397662942923793010649426710209398006729763810780481673434284173905497804864305265931429448478642829976486619775113935304999926594057283904062598201828428114130222785343785448601110993664701129044752843993762348760577757707580408828624563192821689798052313659593824285443568382254763674901983098266260472005375787910329415992572418543553548509418533670600837174425608926404240850564205423447334808670246024868006076405645092728716106033499440537830305098128273262141371290056328758561412980110000400023279261997212123974336059777836609022605920517726141504551637246460316892786489437286628158380061585178499878537780895793318519351348380228794654152818152535746959763269995866862942291162136900265174041826279303651426580895985700901952374045191792953871596075747402551937541271627695912140050905745190842657540592960273794356872279586707280851692381491013709827391358101889730295298670839781541702316051742138185249445466388482623699665666896773275794010348801640823756175355509215005285737852672997867856402426099152996224289978216069805325743733443658329557529387569419486271396427584216303210170129483572634170256074754495025754138861614936673934716197988929341295479670549202052151028397963067402165540401130267669547506807899656305992773458722573542045672359570832209942088689420242228183128837096614961575473448223120734725933966413027943018236337335674988712453427968702072974665361570212328370039428537662647996516271459863986717662939017703308354866438991670671000138623252160059947109298598132366234919760612887420139562551841013091380556567031692069639705081904435581870021743782089055956264352365102432803104240955824058212700044734273999798853478237965723877126305810695750770104649962117447398293215060095205673899159230370333973963228088374318505062300795378993028513689154236656037350927905114656527286093569382704010415538848698294089993155308276047503625137800200822573356159785689052593534686212364070272072334611714130656027140647960617122361539236201358999615238188888932593560378552742810363830706511140361575551040405781127305620514864670643036069927259830167120416965013530780334984457251529386809968531739897144912135459587335370363569121642229512986266587388638748458626725592815758759488959291543179532201504578912436533977056521058985211163988107189459529217538673537938330076746789529325816406637803176387493282116615415387170030288433147703975879208286572747775663994102130687165433936036321235373715279283580196720792057084161500239680085922922714551278931662826349903201638661604079896999294414320555846732132529974118355769352505529483333687917720943555763581354113175949479191012708621874331730394807688614089881210907246449178923526016725343055762569758661966789108666795519540115153768598927591898910064250561445857838011619227282854462311922260847982936522798622875328032815522580825704648772999789717729575390520751355583408099720573840019967525214928179871369092865543330831271999368626334451083819298616432038510529908089276438558220014622968871150799851615599672081140723113489977381313749626118755526410209717086369170954296408715112802732358702397693386629254155032434345583729286720696635944311136009265137518140832263062178307777010029385628438863990901893561177825401879053913007049928105984065034177242625401743952785000497188645200890328514727780937149994889306631146049747112029738769495224530516226830567875221801503528922110205048721867025657644695630965715830489216416339843913676870513272009538301821691105750431079851875378724082556814601396213643885268842176287183982455803105699187245590088305399559144069758930508893907269273969371258993558082321972073454218111161492226775721070589049535211450503082615696368090062229205808288201567696482179516886632700387392374089026295464814342105670286297175105016994384627429108525566168879325237381612378711331126680766231571802033352065955149923472999457805096843047810133351269307695590914975059514668435537163460042224924020397859409018590925390953572639258375081416996466233133945790729628816096237132500085631462865448710724899327291346845876281612552962504291825122390695763971634873809148802198618481014127720103520119302268446156265673358687323004034579280475782685305154771491223935309602031404273452767123854058785582105270758899049770046513774594919235554799996617717459832334832375536112547642949003201875935265511345417557763730346889027185576802623126069016936095992040803834778803944899579262443176393758760970452079227790732427795538243681355089276110979670859015918458549977616301088639381084178118496075820343839946567604042111472455826416041454676634485893335286511178148103876997167769224431515499690097421017787620622223524762784110549877978131736962677867716894588861102464740839590976543896609861956580019397001011121015831404685461315261578840167705829228778014098512124063848521752661029635613646026886397643531160946976152853134146458644480503004664683252180027029616925069406389798852767436487559727169829922911085174500626785196455193513232270902270527379884678174194941525797523793046558311677848057191708731347232685658873669108276603190971157841068670859158136724492511165484278181093059046489766570101713432576489724653825101221320062498048049690602369357580349145504239478240867827791507487936616064453524369872765412591182443491651800878829150270263153614708030027446351277234551478645266016014714886995315154832380626207983312726224799681753166855877949185665264887289550165642048411576847654251308425098891788174468398779448946041534127796619636889203376096960908151261179033262243573393399442373390372405184176049102214990192620109708219534815075446908580264891581079984496960586391143989333749563135657929235933572146477797333325550852262163935442766446201028872142889428625039295288873809363807735467641837098777895365935032961088579969278509926945167027288848446864882956529823577899048922255803503930333702301775480145515414977992035381072924482469914353595106810327474488667070062177070449475731370176408255814812092479574734477531814789541108780715401173667597844121064613576641311281521696991062096786029991189790292863071198476986253634639178630858851503835905009436752885057187028290069619688733195203715721762361222137131068634585016234841118889113369574536082528854677749056983991314021128610466592786984569936233558648372896887374038816289046423976120558087791653269849212679671992590693857034563935962751408130676465965007214905777502692315746948258706070194257105894853028304713862894789926865696332701681122629339874206727010963625662115389906300612861195954118772029994727899092513296553459427038820477644317791058336303617215137668272678731674305784539308492325931578709902982078358878593435137934178198435365432683992355009463324150276643647804188635684382067729845585945814028294626792423264692294321404332551302926739714374758691038055566229921837101906756056624772501653853297944110513602533090404974847539386022902629064876182672072607514700260661567174606642310220174082052014811749715511327344017182935914869179370176652962653204671514511830379870790755009544790226445923607555010525461254030300113104576391582140358368272920490394399456243645077717011722673419279718826834001383496540241793505278943766647897592922510862010995082912948307117496877811033520897350008025145947698778078259571972373671875864038239484503904303432873790459204668162312638719575064443830374801300690471191430855018564635564426461842372553488851819513063638839118414939749118948015247557307954306007626624242337319537271546386832109009863541732966700697896755161626686979213257419885851941594404828117651223533196385006291638438934772170896751972569013213093098720273689192498490180588313948243117290665653427697433471094038234334852824188103604760590805043614060822532071019809348766570297501530970257498858415156977322363911368689595120535119796258321841371545634884586914855947967870465221566409972019219977234655581112199878288184626218214707947947001268008813090449494095949818049250959718915101067424856627456811599334959487012264185907581473904494408352282076431192690153247140711652171253035633297022712072616193089002641912050596255624655110174834808159482630474681134157387502404740202544393291307230991300275268815794349492261250742381807956269470527477399557322079094912897548497357382603316290890009953640182100952074889564621785463909910035593738439711472212108735147482345639844393111388564015482805112568048007890869747274928384728637500758601469361862648587005308086837461861140618935154010855874449323401806900536561239504721315440065652734698737893511546629984730920956789837003224490326839186288207698648072247813042378878691491243051874715018264904110960646559361829757994394881940660039669413585279482780594875775842998207115382353412400475195170459728480502086889685807341231559825432875582453184372979065133897132897768192722913092222891663974102001717776947507377799144534691030682900688996212446226801107238016818305945243052873737543485408511489859398312879831129362260237356183776887558879474234212600134764936978233341943878173306258473650351734129664758159289032267706951812908835077840663254181433056842917980750810323655940220973404335747659952262373863687022766694780193357434304636522721306119303061754688207131523124523119298152470467548829424533244375730916096593629530399478739763095762879410863096035319967506311729286671029525081792030481067926697628376775002284540752640250184778951323409190338234488026362543583396091618205895753215253843756674376425214083865982050761563504184401203607117367248431652796271632268926607267396458527084891464457079783637677896393842503903245397978069798918252256598525211794551539440616463758758084702660150166823220005112920528394464919239804712648790003266004097736545769096967822000403626961580170096223157494377871459361966874255859407032662176057261949054288972877161510823856558596531209077345514294517185442992209905566022865285089711604832039293252817044620738832342521509312763684640743740666132967337695316555471121791521260608711890908623492396033327947080356544861147489196273781964639137280546396937293369014826663123200661249729317322545149503139914143681477138074494494483432717849801106004141409226112208464289703483970137566035545522501041661134762767367280417597862418340169310286446184442231274783535489131664586462515471219447654806266203021603655619199634183288550635771385345753084839940276769793945339598886908374399653279806436441585819273385593345498841056097687421891167839983610151846070765705515987319906392593137948144246389189687005044145828018610972640987501278119537373290481397694201283853124486832701545970517429603031281655568350700292353211918010209902078044288434702994015561999174702227011105846317914319530324102267953667908922750644713602485462629853783597729952937914763047663296182072734086190418201541198202553172501580304361288354299750373450858200260281777730255612033556227552682885222138362951261583193448039483035989032571972085296728303640919878987508841440188321171972702739515769838385134213675939036396226104235151157444415216221272221141844638554971918319985032801255788469616123205338566723603390436678596653696210573980050172913660891833010109927701168264041797203793695081303205191417152584490670502731619606343123203310894364842300849671801130655110546390986866590148117082393531850449925842389188925866343253547541623509774023075908063685919234880532122641769863848639845381411450183418240602748240680379230964772519436941134139855730710998736254429979659227841649579302009348697257076535633579859484657316991553811174877205243393403320375908146129374500165027132086828970513632406173217166268689253977094076820462975145031093506613162042832029751163279588533204617061337522151824338641055479535043175662605990873245527661634797289609014485757415114011955399640181053190050685403300937699739480177300311596421262125050990924834146491488974262581910153567073493558496229246038740566869732653672626145585814486952696092233557344284483798353737930070176083008487538689972568421846461907357328637347926307517609513165465760576074851019157343344053576572129845988546175424093103064070822396375314317297764119427019125661190144705612697126582209032027933764254333610752620518603297997780590366250881259777195708237476827847234651857777647576000092501147964838963109605366770676694152940649018225343956163722212083499889880738454080505011480538470858966720089455963406485938219940766209614653514782506686812818166049334968487693097843775660676449779731001818024781943000611279672289302419276893315610797401774471758800325635372167206379029431045396931778749000928120842587490367765011947987960710028433894298938911589968121965480207897505984105074004556182321661548252913206505351352114121604214217641393623694661922484169379543162855845660104914212864117742419569842555103759250175283547517917426969446478730430937500365024535657884602192493275615240404924636614291226474796647808883086578327005218754038404043924306166270742546549782271998013041141966646057760880324996326212880096410319930080169875640578841390571678998072414729981964355749650823686235532095618746233208900558791687121912043499143417247733426576860290836626150105940496959029918289066295129907450294576976584120280854403798803759989859532946032858984840341156812203335493035911041244505672980441838835511518943291069979988938074004459080678336555217602528813327132636169093506205960194282911999048544004780508703716805051591716572363549353088981818563052283808169255639288926131703065957040266481374654746074466596179213963302576710563047392365000206480360571038907267931092726997086136451547794392271894833421788126120901610927153782574992996207229537074446611204218684739228423659191070715948018107727488307505491808585219080481216070888885846822451578116695856183655911521383404745687939622081990284732328655598537673948415080300906186032133997114147041111607192377412569771990525037821257529090196731780172106127348141951658391617702615645673973273454198967150041487222624575037329519197844739512345227257878233688646653987721228988876304758091255591493784392058307823446854241595111680853715182353168558753387905828158821875307993940073332575623764567769367413838771812061741669265469816743174452859357553059188737935944526531422933583632171190876490543433661099956032384148007825740658561966992317581203968962747573758502295015196090723771063343491488802682188890938584757702908951526377509866677060255022690842728391463741962888141322548019323437113717681781520211288112188290365387467307697505288226071687155046172209149093867436486208423313316905069000340525076448018894310562828040345511720934436062275942573785647823595132358596727205823340721428307458707436543072306417067439736889731961365966894703425367439895891203407335103704511454391474735277233513169521941058941085714757308140637308539858094217732555861667245696162983296136908482802646679052908568154744538680125858932310621251573406713352864664553707331118380320606651246924078055368558977379357993986906207432398027824178819225506197002122465802665050653941759468600746768967528107675177699541107808048078934943116443825801345625645793046259428573812691006241293537523832019625812600744833783866487262410904054710148449581963656193017084076959239475832720910514732837957313708260176236977270271898141371300355151257640886660242798873542415962747624192482460810833256823314945538099357507297762451057978492925609303976278711913771746550556759842410541282430276326405066263199616783106467304264049629173352660163187852479725011678521427853604211626933336519617997623960533578900093713118024689165522650830812398697303042139778261635937788285734223505621219384148302551511801622020145623243082779842373017823290341296878881855624363918996492958844133050705255853383524643988482402453770730142494321307662630979451557273738693161434060143593278732860556925980345475512405305192132916126411860777356256134535160748362416901999208458799521669408276174790888723163776905870345861349470216583678611928917543262769464537458113710442062019461466757980208383540495595888357848531346204367488064245237782248796518263867516450386513646079578170247808958403920613298857608494606397545872631972025207072473128086491727963366970236264842689764668878748830713844902624399492804415003470499196911879389967503316633556254362561003347134490685057731448315533019389983938494604042375275766002935453994155496689498671015837439841456511443712571743945085325295543287502482617842011906025737480177163452520055247253192932719040492875233044708642240874635809866892980120112010976421091130214117273536149934704643583801399158222285404191963778895578751359154776780153755588277401895502839777673368301203462882231355183714972159438383489978365504829696565593777264308557963224940341317840565077059071273233976214265976089690354210593196697460835585711672527380966857495695067453241602609507171755409143231789300391725516245538060914654652352024422543158192469202690488461352603449602886039731788890446705476505046668971151328751059436432294924230093493296050071961939668412097213987038432842046372281174772226876625175009891912898918679833374392370157634356811292546412624952185467922155293128682876258943699836187266317203717501390925074507930744085464395972140920886711622374048430144496419632690989795735511875741726473176519827187153589840438268816785739109176983059800523415784918197963091017663675653661686145531864274955735665020131957702877499052303940266021877926909463180647309467054224651845789222635499394882624552555107622318821348036463457550453310398065557445677133950404868137650455466099507530759287964673815250796452736303198159514208510455305193131834823838098513406301540926547387639270283548761818432873958776171141772451853913788185985576205521725192218629388099625632303833606269887533559965529612352609459943738321541087134789597177913164759144235617735466805193086286320454292827453714321701257140672037125357058598290780046750291140128950051195560993434536055442850509687619429910628932967922662185779048361997314455369682728541063407997663301189494198877867185844254099465699062669953563896061098528898915558057821193928120290231404292032208603565402509840532392784968852499029017916814007563814148459277107435304778331427057592444312837240183933062322221578091958225774613793997965470311851208231967137158970973104393229329344703899006939493693271850246068001558751618349179847326655852186234384540908348092530571837715308202872649695281477057243690005481676046418479596777699839915534853749911951345310746437040464792124398628936097428300787516072145847650924610565962441816044589128420395351363043104211984407276068382286254128791937225617530232728508160386918100402069199565514777661765513928313156394733389350506435014542581922765881620427210239347687722710190689602607852616575034370028218894473346389892657528834617195326815712823243253930420417749402824252601138943149896741584568402748530296756937009372533238134672372195910232954803533469983414607697137867962898068329458229776907920319402963172158872906224220562272275027936554367362396155497265737235131716263519161286486411370096402188015073419505139152279767723427865093927832667819128812909102705679143573922285203569367240472396302303744013568213030757230061394945583579215148237238827013450426622736245234219803334332328194020117175536386834216486281685946779103257636359343360524883745002828119763890858672934417459481495275844026653069330356644691053610411680940588191586797902942459761732846672566107433607506256168524600572288565006001691435177120557883207421945479941260194375123762911049739873092268300479618277395087708139982131688396668031285008032829968876171267098207465703658491071573104372527876642219960371217966109581730679654058056111561972955229290261675584093052575370860730512812985425104082835165375819687543173856196106126368718207190828938481273134247879796613758405986349229203507832127635584412237343958788794978741961660547450304749198991470213367849106536039809807010025441615794358553077604918188279878414072559886697434581320605254840261338603197243216076551423439637030540429035885941639028307339352625203062492711728535901714017616971894639632421255510377826197651684984762355743457982748716672501920510060832395213883322957436836802770698932678855823277084764058662611708809717812628673187358773673693842852347340890207646886571786105486658075027753098238163297516572638383754440668710532312083664737752583910705143643081856011115103143580569938542454300212021849006564432500792117458637053304522170136877969387325368039596938737791104640039559628937853556608436211031199221890408082603603508486687670878282917152804941567612310359461112975192276067573946422457733027414122315231863218557524154217331991203185692745831030999434194492497989685663124929369126826587517162120827677835662658874373302195648070536997456254141353560557545699344263473791630065615482078835712579605876805986137920066407774896790458745824876231345292364868109481677362140097665027838298966406205049026858913736631269767743982036009800169273875487054252369246513770767064139198278597974154157695312138161907163581117340231187362635825653434993917114469922889927718663313658658706900095755587835730247052823108195872747691104568595135184228397536054822865431565475347327166997981289913528730825886996489255551963223575819876843933524859072759232723566132647808270394059224181435104257530839301748577848037417777656904888909201479618548558022493931351895321525361319087306278254220726129659430724758153205454976473206258840846653202826790722700237726144901792128727196473262581127655188480981268119470272281620401130881269533279310817159868103598834298984416440689085783958329260615396198261960373667213522783794407437669607297428608843919693984828525048971771043633807266525907206838169378060848366044078216638069401636381575315433870980153327514945893993663585809275040675213753990250922413463836266058151998439815185968253592795750538060827083350216048249715435174682109355038125561721048844195696063511241802221612047547443794452268185599194706018306644366871217632597452031399248717316647006318262614968524523303487822939264438176206001356816650211989306749052678068657204039256221411863418390616732113529907550140149584926199899165011303177751470196629680111124803239106324732055078865605220465016590147333594349549089978034340619398441416373827862928266292030966917943631143396807265530251006318393851627939271415405483685050735576707488704297970353056450897855184988748819142381018884966180807209767138804081898057066287116952504483015709232676068023818064990691920983304670795646355315121266738489322259758772115668487760320719764448837712151409511030376277025924652078444516671848068807995885080233644911737587357636650215756671478235192260698767760344415010422532179617990271660663540901689966669385658694129201525831466347223581400942181987665636249531701453773263697177557103484318739685240818056595639457253427482580591700846808501731755630923003899283937547277630302242146524738397955339535015879401111666113173937038504009218780779290370954151772231717758492329319368637581742173521357574808608032699618753928057636622689459046256553731065417326732755324151814583847956034062512652795299138157046881229351160497997558488184887584116129997173462639759124209178990467807299474537478322839125925545534742247311642766268664989927090833931704770716811736642508913452657942017674075285875071164452356026780741300929854873694142495391513806806229345270752102082062888672987750520450527077796903044251414177327798785113286465887304073936513915989885466153284334580508786402462572715983669653777003301936795281391569008942537573564272173824000602764265940687581677826213862440114235686495241912552215530715719832597560411286485718423063741281111873603223233251951455019099951571343876198853517352466764843179987092912450595215359618918943898613415753097664187461431138969798817219160777418009303394566873266720759736476478588130191108566228737517620732690484948254811349622287486445134859074402665666200398532624132385213237205204042863962071509597333522312551091261276292741597866545562030408407176940524919396126156783295232318525856031061937015234127453777533568106664918336855276984218075394614298256425395427651601797247659058977514758616558379902307951262228130794762203478414466922057643193771605812425704454811022760548172642746762976234513836607889755100653885457696360325022736890674498113188872617544761895244791792876935999890052351771871382279669807506820483343620135142269675264609992830409301261618399481638661401120095832983161535817371988799896943689335469155232422250812192265069518381475628332506287017127043311121069164545144156985129337058976820513657043174612787936295384112149298571790975321558480131369280022764010733388003481972852154964326594244595356289943443496576730215007026210443988770620886122746623676463166761999139016025781009886229174919384791889242584008605589693385834728780351393645252298027541708705598890317107354510635413325960471009833091057905833487237717189264593206232811375387967427301090562898259244908959185201829021976316637921193049494360338084864914192092189587406639052498837610172005763834032567527681318267145485915116619252139225492829778105876684276921939496890388752673697657014338468853679688959374990536343564675258978221645384108633763932391357317465387789625119718021843448551040622013214843698130395073683794665885253228757794598283352559966483761350255200407348673517698496712896260214154938771163882223106051776651848535582623364141530017005380048384279017224559132803939613833972203616732159307717284149214812678119378623833085330405436577252075937474342847955860132119357992323538083115671366489939988584480371659967146540034748828758021416293246107610075697870371849578011252858205278665390791763360916499686724182145267277086342087211429305902432458927525378224283901820655205135823460114510621640050319487545592496705072581707596904975469342142984955315176689160857514177737935894518890610469827989178198771629982665905251030975067758412252273603876821712876722218092432159656228524431441250723062908909989852702185509819121925110647590643222063986197949368461153180588848916580966345899344205828745548337831631886146106351040684173394024523313556841460626987317485994193834312588695219771643519954059427749980676080022271033279825557445603911451064225738714125775552294711380417192999790515004166586932117962016625561563954670760720855028752962671682285931696644643773471600195357472189677163130006181162752767658006199815233742089420758725196838789216218418861868012954516037131924553743170993485413463355411547345713729480225204511020844913927065336621157042006435397698500810377481870613937824518904586541281815298966099259352887734545944816299849852381798982081421983454597720634899176041880538496130886124563543142481240172637558020036029424127922206754640089630693626582302570490273527932129699459876060017180887149139952171850401868947223758755234976037436666943073196417014178487433206136607782500993923174370532243899941899490036511246612284454512408128524441259133084072560896778182284987993006162511717764606201547638290486832237595315809061055397529590907504068667939311911687351592341231389309864522682795496891803853372550165225891449527528323237630694394069578474575688149712624269998037272193556223426053439904416153566735464567749548125849538842888538267124164706132865288950477135010608879495813780492235535282818365610326445980198010098154863370412029220691675895225614593555763609804512501820177780352507335480853005577494835762115370608484900912851359114145915050759592273151978509886906176836086552874223535972025037640072634936826070268293891565425177836810340323629703924425651413882449968503913351639103323776401612146999060089463996170009294558249949752183347318292906902946621033922868139551901796758105685742893310443487931188308036044172806021972456339064078187013509556394246891884004059807084310999654412628343632910852614945598392106413736690429373793142989629322444503922256787389153055223298504206307854677548554476499532136259758435121897680196211935435221766425767423721020842117493355248737752291286254022711753380113728638951373782684317350943781477897954967265914776156283925401467423435462154140945809079256168178792453763088547273087053286943737398607621417629023413606364392524129841255491009077582432322608024434278619436022932958848373707632664158565524032333673657375332844208769061674965259575517693458364891725522269996275730075907187611071234000365122496096951208167157736329804198326529396987150695776588611286825601963603237884356518553776816790209547997300055993196995771460788457096254612322286492693033414087741987500601377530648152491589296522967872802218791240502015582079852671591005856669052980749075046892244433369803780248036393992759155124978777961357551356928487243669478182292400557220830718567005106648096848776979801336937967846326854490828378759345687913072677303334402972058600011081885331438319886308151569366907833041761718873600931812993214371528606483019681727715110726704397734669263606982218916050243230943274795108630667105714703233382320551664055680751201616637088467276252470459903413855165907662149582620120892777082652557379262739265597785724142247755811222581066990219754967969583624937102717674606549414697892926020966619998520388919499350542180043308219177977447828600863919841656866724109973242805810244179300675350743431831978823074047591825686188504325692057154155423753607814685966383822432744634923842311187233800387463974840051542319035917270757736176502982482468833655941355053255388581272281933298762563736008582562486363324186076995096940760910139316186227591064406517026436101660424862806549585750874386982447647608353720098984718163661505887506244981397338562539488479392428360771907654770967046016152028160519891937548390698880834016200380349396960882172161861312958332945879588057850793749145469836195619214080892717302885164912954762370059059013499206737964375792215212496512386287759751680360883770294361852277480404422365537246755822143507161257680880302135042696436261374916994853394917227709201966285679231779734392351815042859036680519913494067247120951008337466968923242411575527357183807343214884340396735645344942635757796138431652708087442144757101189744967296354829543277511895987705383951486061606224441844246231583104508061328796708304754255345176424011554039539588651133256567138162169121570373859544000056724331305422706451244928850385041920184139058696886843173067651768741529015488279781010161044419513490790707192983859767580603006205360285754877086295304246722429646783677600245759715992204135421765828200130219976647520463419153987567804182195929234212514763598900370907021647141033569225753462360146478563386549449024964029484143189657594136295741928080488088711288069982458034980486295621239127669307248786233922068375389290101561743289653520097820630015996004346136018974146714289529112994085265217440845013291453707478272598855115248738110600882457241311858344711966490858966169401149075758560349584403098089448660404154370460270548336537471970602849849106498632386178213229378194900225807039420829967879563603937613265102001917600030420373927052005331777418787706252225637910316474914720727605373989289389559494624873833767227765399437549058866681501767072219110531347885160352552956990064572592873514262844124846354205533909721659830767387697582152363357640451680437742868559554440706503402246217010302632828583257083511241679881755912868362473493492323612623484682796227512952258113553751834084144743979798333306957404490473842901796702156405908433776336479659573210975240586098653349131566145453297701836559120240287095831003004602624841878476016265540324179071217220518253009804752097825319431208782108622001028920282988160306008048724272310761888932789931980790095018995893212926379644848886271771909796353716848526667959590294957510678955063569330671133122593015772423788915677442686718445727044058854494171815138652437488418861511316099677737771210106632325026050817806663544132706182748028725914211817630846119586800277401100615268452431369145873210123674157850640565518650266193074516990922024735358280367754780799402840275001861001123907280818723459883290425900336265430954265961177614810149790102967466924889447746772381540988119585501754340562466392618135476313149753188317575159114388016745636906634177380981110158672027711979261452079516962556866739494960403580112182873908141197055054295477887081938158164405766479674291853714257706512449813749948361711713001799419359098058290825515248494919059349711017345844468333085245746410086253202205381551784847104984643168343047615765288120861138449396500714761217404198745759320461139233456671893650386444826301010333996780457523450303715345869734070883660741268847864958170645818035334185052826420117052302221907658412082063141341261301155730160445937161195009110952612341411151845843117741249044342017416603394968739000909418308245928514047600341495949738468751606895530187454554312568234406007797965197437331544838651790773303110173791452843513987377713662942229801028726077463314026394482007763392182175296990782617785136994267880146886859399622943500261685427958076187594754811310016515386890324913066223574796400947652504231250753142978668844595538824518946328646584624089420214655670405078073705414037433606636928914104933200387883889048285587603036141917918405964098693273711365852537841697071862198197708721234427511429691142669727523661675926101098372906935476388505090779664003680555418534773725330500288220547666396346841961301920417194295609316147388421338928014298960062014144444608388898540110679292362749688919224083378664823301669790766939152610367240021355430537200931047416110676897055060737455193081602193428019030242734394734658072216781066840028389746041146665021917551991748438048167278760238087056540990055335797404350628853243159511578971193128509741693720452085407163108988434710032228488864320968065777751763973620859596557365002970280731105472597394267565822665512861916469011310397514400652896991221135322471364966847795417234548556177269191980908146473918452963953911769935917957133292929842635120108540168310544954190306952197259447108408687828186787315271885254948191564063430189698123873786810407580660281320923887273314214109774196921162861144450973513440268638125020580144531503497137943910569900980131206059092178034303709184771342151853771652066614954870530034654515012407552489660723919524123874068426367314143452987121534986923313053962040080030180541451415188621610772496576395391951882192696236997989250817218619394359473778739516017394646103166396659345502430833380507881327757286404817818137559843931729967371311043975630257100100835846775538075451775558928501649895806998654199890802080207689111628458586460438508065730791074737205662319317281354264203193789595522554954469227480651667016793085916791241735613313010322302762123698225692386656852023888559896281188844918315982255385367095635596969197624486253703951848626763905239616298678584414243213904811847099521807404816201192601744345376472735887875045575936624091023991330423358899701886772667893904698473167461919105887719182531090899664928425118177196060603759013996358685243297288509429814027972752249154753236628610216447531273373686591509177019124031075166755937632565359240159110772922986612200870836677130957882121253083188692562846751818287531280462484245158839435913064241020008578334608488738632072463735495893484029230038410127593318291110757462623001022088524745417429018736133818646941257230581238420127131620751665363676022906405638635046335813700693083131625258644070782796615371934796174077527244072946926697470881372494813948130200466023462625152286905209322298361584963683363015884614997974653819274869193605438616844895239087363607672397583411524719941109816008923789324477371505235941639172735009890037604805944578164507735875054152071729430648914252645977669211373786444166588695375754473562916804058695326140599063418095914503587270230992116613404365415375148616153125445929122865964661456630532030898484624169736131223698669054276036781570907698107425318723263881174788340948180251607756595640813036551720753268135587550418838793010251818476972407736723175155268096444661959147639990467415323860458216196936995310547544720928200660940294202147222135633680024200449053358708245627074525693428905540096808243717345614489814399880255930098681231011214627907356950685761376720804068250999144270200990477685772361619849703634188991772032316714140278964552399928431271050729154385825119862163722495204011550559698617773766999254500491493100721332278271193238064876905142584252725036157793047677468976704812374761781380498522257734377285579191825268521069038935881207827150543508154116177463047171312441132249004058244406551710177385461993880012608555491963847898815166751571057492531743809575281678474828555093401433780819894565573334440656971019027110457375657481648293843075073414807703223282652244810010189608601978685537268675333686849018492368132924515871665297132556419324483478714306766649289476107025721409894446961628816814192426173488948682407174300658537765940251721882983845534343256955541222622863469353521759440753663239005106681311135048785165772054162774469675452430939106924696869936301905688586178925142714052297311686736683895179876168972888234738197615350394624742532896371450021816909300686820575288461589824409263692900117073873504273930284673603596480552835554619282869599218681607903602290942959482846554010662770855187844850008350116087515947897334116235674612192785030572875824398051067706816535393876927906050754941208847287447219201110965861682179660354551029162932877951584290332770982121685699858942786528885345105521231512629518134415170709324785842744277202943342653714982011873711663418749364594242230795453903616118764770205548566619056859344794069644628585289590429170706398685483226633453935305345433186642978696235911786403025798110329719295156644536865495537334760854021473406942190834823542085362104878076228622027986788431093973294603470705020188696304622647883382523949027534867985399340364817459805168143425631771950626119627299346277873784709237333521379205710565609239270070757350266541271067673193326968487435378111634748400204096557033459455072955782363799259998324747125011718531135773006501939235931967317304494475879656527953085881172055718519983892328726036755487826883222687529234147339199682081125130085359524014169823564962376880320383655195284682122734814309352664150206133304842239476247154294206560595786980122895461019602664933545320969130271526371781743549436840428300030187950845831036637279509270404894324301525732150383736252811589758266903013123847629968245594944410185961424630563815697813766573455630013268183111408560520268639543389735717877661507561784548988305114961189915940420447526548155034092771769426657073080111116205017745382927247645116809782475428592841623883015398307904024619819429173878865389798229540106388335845553208168460384220959524580889174081217192564535072217817751809079632640901763639081250695282959841526593440497143270389889791644493582537742656304347880824843850274697739586810662883601586410293296093583412862649670454794703742091186139315489123695880870115375783424784397547975227802826135776501325320386825894871032236898203693117433063290586121895997644355933863440240318874865348561040589007703584402253458773961122020262371274149260821439936455277270603790909705879803680575159530048800906362500063141886826768637441887661372587912373033488725916110335226743405945324691547855525683205828321060060534383648146429315570327922345275999383889937775749659990238963040312062139205060465649104885851390592881213312173133668149015032129894138420169138885303607802089344607757960026072385279997300213276810021015105456093889382938544932345151861574990496843368654160542437586426876294667613394557389420393148655368577685301472745321835505699928248653563533701341149352729942015968759147881978336249896833914541218134507550703493214149267234560667907966879708063055062958327249364635538371164002178790774573638543963367855629994886752800305341457270124005432665261898784381866707702050227035313435848082118850654106197283163868694442976166617979299758746023322811945748053892560002171678519383168123341815256838293262782109741752736343928996386036460272817088689200291069319567515960998837308748143693902067975839223985540788238956860826754124343107872881113695533229707087102635457854729717552234455991226963507113855101906291412946026376065039275462911006212179240168264405613821184008118445867385659738874165292265946470286569695678107372286945382817500476581316309911457896227314302078511586937875396253576465554377654047802582332582687671788573458557682685292523124120522812058843594866743903204392997296487792781474349303218298778791794372250524126705620669055521326623248369582027446007588302356266818328483820423950362143414962483657531299078903639687169963520680262996192135682170281007981652694903142650776893206590589950531602872373021021328496729948709377576564100705089683850182599531071831601016951624963241825250760330904176025479803834048787928695711043181487512385091275937637388078420070297297942851362314953112550559782981444080684171982629759106894600006939809026825109797647369193174675972881681633569508402570843399829163577426485369654478864435464265192618788335998145756098723436813606013433989411923505703763510570023601320237339945699633137592511963493300891717566049268571647163303402576960864774220658541066411287295955259988115664411138702157566043649046995955853603942444714398264219694281174507308415384913793179823445095302765144191934125357590160982470335329797794095177710142762305054925718376039630408605031886914526355598079511401284493518997389690270160200978826619295059223339226734310203227045544234214392934766151575915867180980774423822676641178548838219905249116520838257513807778539586699688521151842395899467439814116906051655345078292460576438749866146768856827577781473671998278885813730553668954395561246123067765172376840810952670675345285324931764047351255077977753002236846913267372253250127779102955725403487081211082990891014493057439843731635768941545368067125417239401875696506218813876189207429145123198177729266803934620947211318897729102020708490988422125855714223878838271355356562818972315202107271605559474178032871387234634622039002036383815932633952338617540574532777954137580600266674371929701867165691258066558196523733858693481807489225035990045976033651357782725355090982922775273194547527280372422319052919503119277265721626101474501285780653589637770154640887820411170114970807639554925632632716119085624553639406781026485802134047121480239863885518992628772241336742311370632300392538878961985792062314497039861659761844592295725738577650781320462697577616787516918284176133807510974753954261196848330027506403007951098748400687119314228524214958789484721362081669837531052921646844135169002116574621801635325282439865131172935051046293372923613470231918279172668474006292925676197647023595536957584985285319358370858450165412772968291591733319503149611310681456677268709451209100511312527529612947661480324266128944931585887037646911896898629526121431928050929545009633179532079793027839451569605343279887646912988136561052758898460281573396471805088405479183159546781283285349983353243526426034041553894164087336858120736925554371555433550828571654441621951818356594674012751362651141776510739275380238404676167506427323799539529092640238600633171055586280327809973636672693399386833040150320153793984297877988533171925113856751791292602209425535970288624440868927564874171250801339474610880091155500010702067783746850170905603373778244775533328624992986371597260203306795078518740288212030372411421381192637892031324083153186344747771874040274047963905480675403148390247763625142573865852389159817392047997447849669207836781083103994694079853808978122721282354356006912476329085847883414495380160757246879719379129025855810530705523692833163398226305964677913746707160570304018382796958203550325152361089611416750337741474962013646515956847596491578758002165806455260878815083713801109316162200524955041040904356209559156783714341494514406447724933035495168667407679217819516591135727360855299879203963316064695927144585449533013506967529524230080469421060577965748816262602212739077303748917447777678234342592491782592955012819672882192766921311814562230635838804166958085344363916823177146565743955034223147696898683883211365444951931979782877649935785887388380788863546104502409028460683404332785481395125570033368330781696732075518587966771769426851829130872897986503938615803172765819529740453646203473649538117692433380253038933377547433869046583646377633058138315004565036952470941512250312517403341958471508510055522885102229685376924782057043527486221317085970395481871901887845797044178198824113948020375063286283289361314251496592903659893254666200762747084064145949093187024419801702802818298072109565948351340488878948077405932980200770551878761601644957391720153732646650071763193080477185322840966682324477893278010793040601190030310678871263763168810671260320261334111527836494384451150798213204854609456127506969535004734628828156049411814282387753458538908989310871707834935157178918520214737736315612331999922541814156149368565073069362187082280725353051305649370656303120565568083475043858237178454053789103092468985624063265600132657886737977115053401781480157226451106718312007873655169330502975591037249877756248313075795853997726840738032320378841448478909579866617381510134889587527657918679384151294746053396079013251032960261706733145263883155921098420307785284931063284871019737598497324999441823481431068831789063771445800016347467333690336067764538398740271851483112803121342611468794788830356851679494360787134607733225229240361202596385139396741434673281266216402743855448724000735620035631112203101116366560824410516597249269246761106751839150138605298197918097722766806723253905004106113608179857062921403643576927009405266955634348547115461518007291327358595997215635591775764309023079619526900941156694316825079068065981115284989247756555388141550993148689541561355772802936400673927025874585419526956649660626472162058533780634911245796461109189789435280151165074282164816173369165607986755626222445523949638178235321677054773702988896084707019037860945827183621360135432992790515262657481198983086042454259306889123015411512131165980859790887728936055332573771149451077531151189802198275423259983369329260565671323977279093658631019346617076076616963829508010755387964487250844014049837358531766563469829208493356311110366833679930848027794676522747478280311912347768380596257995581855853880393481181886573857329611262008080644646371006946217188789106102416782624505415606499561565538104702016996334846703576142037624094111484293471954649209320105263757444598959875695966298147556722202872263810175965814382328148871874195175554655312004628846287097163514214282461620315619228032471963905852079803840063674073407012974380710480274154863257624533808409831266294826475285832931076501459832989368631513298290197316601722051850427392090620768795677652225966149038945690299674243340877864594767087680662457411517746483286510830495794190108297958732395649371153751090728538284447506251026519439536885373490369796196679159890266730180643080900444187933498445965079740289372957155297323186991884138614171952582484523473080023263672045741351728197308966834140891550004854096838645342556812659186117482562584397426380654497261029942066074257997924794059482248149486137568269189291697154836177086442393228104835318261789832925643708844671476211607508348087558112270681977242538272972716417785414845180927749459512485365538556716915996633332433988032239671788250752643974711675527923451226777722627800580480674251908798508101654648996662203444062392726693535037081435780103874055295901204467245586347377578912558908303810675526892069526716096957365818626627835278699721763515856323134915778700079145470627883440051874365807865090017583892925178396032199876301121338226683954432064269391662205527397151036188830138762402326088770735033404231757710779051610176297207849331201510700187442734039471522944024133016006065905235485921777131601014615228686340997210568651230977022154338578255820306548284137420724316034321323344260993061279344112519763445177884128557096696357779035831914452217765538179383090475337259642146503886109616833061892767870893211921937840492623020548000846805299910410336307176017759296600038099163316607737594506868392940185885670980080164754822443712152565738811784058173870454201475725738207089472590367536591074958005338154609534025033162344591193272943855670436397850434349204561312657148946615483177292675323253302419127627201333774737004854755654402962774165836111193804156459647780823775362399199622144975242672138261755076633103200158454885750619172737133695958351142003280651102847869426360163879553771800551914888761001433521496455611053229008781664484753125229241290689258767907254975108246374647932746481813393327245578306045158680758491217348365897826721478928483661178986832377172340999256546762528482612553194906373068228113734667760604118920089391167031347269725890987606482963453988848749732803790464400936373249894948504330366739539031546122462649803951912472597187320172245488400439161120276750770636086710237722496788150368387039885685274053338622800365791146560748466656293922267424880749470688274018930558822438850010178894087895610313811204251910448290804006128311089190882888144722145830828939850248251790570264660937918316208691235809638988039717292582478497313693026196207559764096270917842523966233037276916817411631220485024789969089243096094551315065822022312440157293641938160713855183669860030205578835205743770150601988745946595006546796566673917427177967663458290279292904720977179971940965487050022493145172447996947886361722816546916845858487110410357825413211545751535442433196772095060257544141245889915566078922167209151464776891084821049801860872211055635676478015668164205925056936142182447733010058979105273072767358692006623292973093039216943476762696000865179024311447864668249895466381445927450824222281300733355951838792731098141280154297682902417275024849878660928185042559605814889685700570918352925308477228938026446451775680101501709060179525906255997479753420213797607561379882080888469582530081810885527677488224820446568845313040376013423574263020660519136745257086131694446475551928791658318227459231912228782937205052767362120905332345909030633374598467900875846954890091808252028856408562497558826222831733739577149906284564592530816184436355984137642104904771939183403229268248590627154653874450760678045651623092990362612584153562362225684668683714356253111124757272095789799975253761627866855376109816993675641729518369597415677814350493118968942892152063822249406931949416945452844151711127111577530435988895746964082792139096355171166789783794245089865636246034701744479962513965620972351915241015212985930608354583164318921016544689760027130005729523764102220551828525924353187099838025258778505628221700358842307582087221130078356557923454761591129060222845756090216318011497141488459105075296934306777663775494291584281316370870524295597695738532811262119731433075043852183365836245145398727480654384825898641755134069888110681897720102780315351714651577338657984129872881923430596655305730396012152615187618543923701654665544749956359014796805435410558200116515891732993644708959402056480163946963314763008267296669622734383957696569289975551504496896029023673651684729331618009867271479453079540553282703258051592071748898219591177785822898591872572600293221464233139676420459452815365507185700501147802117631084720314762336956742934151227224890750182448423212239581810554367185890052777959656543323394076798897784665811987002931476064112275852688137230133604136353487850142932942092505400503973960908805370959648735834372228437095299790352501005767114067032315123211909787911427475248456541484757066808519544955195199510825153881344556803819121149856857695151510961515644227700624547111254295746026143889039026718758420371904545191533123967127264026245132981441858648048360168898555828102318698641903101819991986455903096530171878059556439565391125449535083906206357730382705537340276676094744850402563114989720993882793446600235143177888024423141521953709230204821095110723964734400171084939895615202518936943591233839471297312306039420430617543433989950806274678392300398786788890186534068915687435893449352006491959356827980327235651496950195855758466049581192686044988511454068242105899909262046523419841961248388546831292021820561094841092956199372255169589617771387285071691866445683530308548309622889965185273931028503235135786120887174196484930622980706174937300716557697209907847539029617299670726845019464684909611054941398459383451993831649771581031455187680270447203673419311045623473504991212278897988956018930913730531670170411767664773487264846852436289087780618578003001804741169202987111931298700961113983127344713001414744980794873246498671339592883223852643342832984927154708214334602736294013997160443939523470900961962958860853598052006956394460242584470931655818964034807831460530650252687482270788078269286335318947665839760795758276693096856908922426929485779808637576962147781979663062850854039313647175271423825469891085249217561416715206252680875041727014842631482783976859257482688368845646908170928836449712553474337099086202768394228214529026828282896478439433216070652842582885439314644947299185327966992795662981709124516953541813256296700669640585376363448490810209830097212949761860878554425785743597000294228633057751502852346972885427004974517269936813933072193172000767910326748666056039094358728314224664552809568191126756160038586411285527133302759418737893176369331315272930583254711719110990078703232541572621961627919636271858251270899810964965668105080940863281828814500764996478616595724137112174624197973209132995772429817651988521854250885273469295397591418744510879794015756699181216885193671766170463784667084765262973753731455460036238079464565784518798395001667557067460018881401171916074000042519661206068664955864059272965772239766746452674405816781059711192989644068235385828957870361588889149249191665390842840555243686977382889788863059177249327449112418376573703133821418862712749533096007225321074451271475932256543670732486021668355174040878578326429285817475105984052529126987846539920687360917242872204776485654206291275472597956795376277242323002324344916394908338727587470269353888509603698635012878803270514267715737897432554421306465638878801917383288913063080061947890397448139102738801771405841568902034140504020798004167908508179416375316481804092439492764871316132350561258073329038016755246478222862730816490415843364023043698406521960186126986518981874579416935064363276053329348587653380161041556560810146393167937449230758778207293712236661272593206895627038798342040183099633558945370249983913925283785850470342879909284664378319978105740860524952298234243369600461982431647185324148187079400297137598321961870863265212287447350560922642801094109800237358101245008057704788007988236638930031419231987606518762944703931730480567510519188920443541020115341745298800391908442091335104130462632454388102395571265318840733411035863332799290319705363515003569934316217286728666721558967204396550870398825323931510163957211994440374674640605815536588505339487699319591555170565147379924584721082485863709539295615627342339041151697270129413054223980444690939090618355878790908448720009570818302177681013162225370344315493876964061984861492502711835859217101907863931988627193936805827601594011850402241506381051522606516601148739582716925743751840464896927679674896282346521767472176578027449575849832155769013105549260749287255552270515684473673109771529801845935574585671948287247761874791181255821866251928552432408363464309598074381605838263196568661566597256908015028131336775746748596000372097504751544202694220650728941716808631990288665429000775188609886601752662806188029215707820232003848589899619897355553435285088961002362906781786486535299518259753853373201129285741020334107173328359410717690717755155660279820578289997451426390333143258687478966995627352199522997515392159690117781163985786727762048948213125200092479897532679235673464352589999501330164433111460932961109435324194462287102039044902979007343693569356446513323720273901052746233524438714848151097708724155117436578052747653831346565044113639187113299478998450337740071304089680267081332676575462502106786842686818555884295717392011296099900448802164686356520784875226864317198067372022465010825948249083712580340062273912647620478243121691524793154789373322761947150681553487998754511641632455173058013047761585399513565897606815283373363129284358161443836982831128730101885316028568080131510542928819069372492280106600280802344554534645399715202856814557753614040090082864759500706787936310022520509585649548079941861286697594817792634091880160245166743459172444189496116583722138831069286961966961769645681423914085303102196561365036458262977853094473703608498784500201748571344099242679558300949786436617550501428721790588073105549578231496705431865405949937930691012852021233496887258050968285985220394858931093570460828295914861744493929949263510987885857619061267923279733987015727140980425483756144546110021561856961996725676458554813336817780877001777408756138795870872073300408718941889112200212621333357047783391354755809212457819491559260283813405411175515991073221467771853732210737095547050085809481594615030912661900622423552217039415654341436582937900939002518081739165344793741085183785254278480368834710190466795767306907455025223132976855683310187432235420043043217910646102202689299568616680438352309627360466103760828844647593324956827846079327051823120299078266733691671732350252736676772022940747958616362710095210554720212501839197170583641817867992235745584205475143705488076744594979372124915266315601577446976935638724885500438245240942815914005141106805831632965351537353328423834509894419624249862705491899053171272037709527563931670747923263857890771513935777178789255593951605030300403506422402774875224795350118847854968053406924194850731063574429283206175533951021784640191707936064982199522426798282136201731725016714413221624947150833660144921006163596578072087977829296714956660908546921609665063456704106005194553709610518793137807986190523983313854801086079778938031318793974900627697578699727430953567029293889014650240425082539071282942949134959260682124921619395732372575495870875614787678132412327948847408161092753461838684009998071617313642129136782779554996861241620385785494192892368264069281048299387448727442700399384731903660021505997516806934328470625346979636540283644467224501621778577372924548653201571491688313544398887456739192447819320469391093413185094908883067235443522248295710250482517228558715280283519730321393595955213764155855285272688842446712000130121221685985625502428288098660327140080807159791818265147734585837142355324517514839078675116673186189494872954973443679592561983208125265910174255860330902918310365347482697509972737071699115036513687829839640142082276824708583938300393729433985275792762204795011071272699430252936029326213219554576074947194868972023277471947726878562368951277281123098592567851947075986755886020602710708388743681437851680633653785998182784320911959291904042844972906814667108726159132004769139921774057844786903286459908338001481515422336545730394075846216186538198362477034165690760711930944832977592700848282065710475961753587727732970876893561680227628224161818814325702854383448920329225753138753393055247568141540765900783893391944573311666696536069670446038040764240376191033931548508864154954625673457936298995573481404343864787309651465896527353247229671200042766893202925849138918621559438774108395920144931934998991347497840096419911303124794829486223279485272774560391663499546404197153827690548450602008549300038784568199874726550618984596704484626612270817924275094524921137118195894554291520056542095530499517100249414289015082507830153963116363324943863917864645817203079543925433163973675735271855159670679504365229541916383317633213492175385841589319220832015181082086759313538245611817754198727041677983751331214790453111798695157509811036479034743576197400705531527711567993905757404711095758293896505076971108691516867049730668477198499030911384407733532136019403111885261594306619566729119991208539055167537776840935867430609449037769879903617148719692115893641824258615068077968514190717372235964482583372363664811197189499656529653378506373908230234571825079349323455784833120824783372108226613704284867068026917224289700546072760196281810098180985843294725212322207914789594839661228367922386013906852815013190446142287487314987309239252502476970425023630951138923522186496028619081063832040283708575803687140701647547600484558710700113503691292766165288518082610753438583663385330584613017114601285431324194804892723395751883335073890424717845402620253192647705534539942004705963251934333476308164392385063686095791778529248409578220325930470106001638473730319935197299970344131552997203371464892351003817308847831972157323758317243799959083764406749705346743619121142956598712131039677217323878341950475057191630618678019070308609464618942213750948101887700323454296554726172413182122333208404778387335862203161740554398487964223591825382310580978158089413976021631451764328787513968973475924373534512351271596597017621735680667768466789270178215239231288689219161141129826971706242815310836429158091867013413107243231327190349287252944149586228196438782639221501506135697660870937361137929619114600663782395571449928920758555500596319376172333452108497974133293054177516303237062354353543658413416794888477674863185395674639313342261000169926449816514109596862169207136784154028499684365120942961371126586613800184072832215268169281831017382302112332487623952367816154977897062820635423475967695160143665547017343607934193361201790918061981105263364067541963824058766937834235354948457224491168506629099346765384887734405769629016146069609055427051383660327513041453077463140142367032616010981967610277406159339310200194770860064271873900891542624066957556311932320574191036035539820667491355317662424464276201136413706342222460267572585633628040548484001026291637958518953001166528177566094424109116226343652670625157734417026277214661233241724625696458419332798811146278114931363830510766438141791508185285045143495575633703069702628255095172718976733032291406279390104424629281597791912350224004606222971955510674297925927659930499945537794727672685699527859039569449822260478474881833631594569776167167003411732745602162042487710784145054009335333770937899295589807667329925553878975375539268888601994925899110980719905217980172737027361197366787290090421769883074160545895142247789035703969302176143188585822132934883033454620862337968138100840868816977067329896224572723444092672667835407990373439184745752875965711547262040292230726995005311147795667160947814321826379871707222401151505904112271050956509074002486502231888265031396525163789255419420523834500176635366016429070103389125052764402200577041862008876525261821304736253452299632503783329515843805487350598047577923606522131097064315655635529368465045700845290179041320669108201275473431190235886734718576427995778888733394950199733352371373126223458692224367201087155921550746911873710107830301382404420559069774242827205034816156749482810067636837113700521630177360583269111414502587022294496521543703496531025031020445394962399762608216603837061831504571660163308525735862883812730657549198052607400753772150050086678110337337233787688566561997886646466104133653045498779140050577742380162525510065061590065036153597224258248119119437593112654807896050787538734403530868215700051827678866029182160570911245046325259021340283788309978636032485941888429760299205270488537140754618456310275796880414967276920902988606451402257164423979299729346180057752006314310700721532673673342972190676078776437615047534275102706164945626912315633795159143444208800386685556311571958187554107736618176699454897653667420949991962263476645783983420058548456414481939640003975685895971900187910466660606936717271966768604165751489727091762626739935180953872955535981290553183575647709709029362015262807861290951212797136377732489065477579490547758226385161833418066513362751936134026539950838854917868508436014923662389224878213764436654685590384716404258220798720002097952985659515634199175734857983043486753571387366382138359250425236152455751345412985360947749792378736441498383338820439123839173610389171316826478059499690760819340998594672141736959424290387667002349161682543320135199299596995620600762609721818677624471790451506475987137729190384212255148947695720213394188321367306764603708779866789969637436490976729511888282804904909254250495962767814130924474037937235662679390028490612092755109820582889281831590415910467490887025926489622345860150366651282802199714584159850719728216338567024994121024516543138996224694339387692324174613923379224748834111991984587560878624316521028280787860858666103819541163697214341366913764347820919086529698154061397049963950730497310017108041153030476590090359671292638877421971374007379213066879960172986761534930563594399598385571356614986855568303611954429759914146998760782952502149367586109676014190044037291122274663130800297325338259307529869021724343037453641490148663876580243938017768842289402124318420869309292406225167557461216680914215393827070021244862426564842500791270532226819813874128412901295841345803547249718053939723001118799830529031684206167815337226760545750546675943769320969808788677604916939003931026024645619214987154523732513002017980211738623201772142586796278803385342068442436080158489496364223868698743336125568984550043564141614234877593801511860172790768979555902595970359289150293842731116468358491501898420383451262137348141935318373202985279264319031205358108036309276031967981418900849934313492244640707295627291774442203850705514767769464153475733797443519159780946173872531430773784271012806996240579826146587335300054711881208215195240221817804608223426026468881286274887346923315332834362486186061474725414353936065592786397031545939311274043105435893885702850365771149103811039199408408217449697018148043026587594619905025216817032450239526618483394294383214494146374792210500171282948533727427356055929398785076628638486091452548672451056579973785862748891500372604021826242463108225864762960762365063242611033985981725559162142974103251178502306243093802868761669995856386489984168699479952278988883871097656090562561964136172033505663212228867488354683423916206564558724378926629144221702461183248553720375579619086766920440402312735560868230870056914118127167575700483181224336548397422550161900709679307580532624825390966745769579944195937240612362263657849043218649030188000896691254329768953278582732360962401345741666380102527285771160540181641608228895085651262918815465533211260647942129760242605839474821398385995553945559808225970725604801336272168908019481552412168958685310019732951046238365878609149540896749555627048698129203279799646070279387615406727469017261034481518820060453388852992356664223766136481362061894331499622388770069470151432252416268678424864481939088305238302347892060530097929809768050334841055711125227672260448530845228129827120819619144885268535524321355423120321220804650838597953111745077077029874260459163923896418433433281781458966811198161753137657925177183732198405848043897392395620375166922159918504939551235802356701353249341972863345801057807494278010066773298298834786418775757889969160568901208891994629667141369735928796845710265781802925378598084103971890106687108621116691163042345955351494037727134997312849580582799858589603845885053311722102069801688119430061798694063059093400457002038664312862385838084933108590717472236022828027132322260549570244336761358240938690008736441022516029325177500330820470986806811384658072525509108652075009792159942805326414741154851269764014265295167176650245704897111788096088756519999229735639624147021762653808880861847283784151584413112025837785981082153631445609578385959575900547589061248182709799570955165754026354124521908319338941983198793288013034566932276006249806916751336726397633633074615844151448679823031982536218486861361067881690705455023754844571810226268235144310052051178629900980516759973315811589535037850936922213073513325906858790552532933891815467964281381482962676642995381338932540535836331479342666628458486593387493826730813940908825241499377915119552441148184380272004790016118715986425417400403418895144257521200337032291420610663232422339818597289998445100813443313844350756951636125460112992976849529752557304546282410491160186301740566447039877351007379107221320148472354858691878521683115809475034318279599858764001047817636613579452852302133789824539698077562361195833337030153127990141657012956869490237526852706498090029925257254825115596307744800973207139424474309292671774478789783596712941801920630363788917834584776374167671998456336949006966003555471851171344937529938059843876367453913532693325205040819398293561343616321419840420032333075802602441472474021399159774248401237889513257036442966246072605651654813383567867143628660142321480322231160998314304003234997718149122311424341471982575336864238559754244212455858665434961510032693288943101894227010013261396610167519097392405025516819246291684327000812790350946888937220699125614307032031560752314497150241594809256498187704340461925931848963411670585206525094030046139915529362017561697773951061085591248005712031602305273753845865311552788258278403337475796635468843372162380735756943283806752568205569931592522038382658282685265840906123030019208522193993718175507129903755173254435643497162163784011952063875472052084401160398527100522157573900053582996471683053755442846056471816655228588936901386321551413901315655011444656888946148024592959733295394829477031308323814195235014520180131008866561476491191065127955611984751961474951960739538804000562770055029853053862090816117266792621006463239118549318919802455579586195355861250097663813502060321797263918034359463499571847509571477574380919628231872090824903216387729781839897797759720714942618661348622827572931727703446919876380308257341198612822434161715861942308842186921856376575330024905503522657397800311033733609087907565662623244310766069903512676161159045128618286484832210280714491391944619826721683263209478234579547829000646174001806577114527327912642847806453540479213962640079556932614707336054696241290295760225752992454772755299111872328292471069587401962445452439742441914777331258887210990910838373382458014732410836111716022372786010224623273612676523091998615720614038151439230857044582484417503159266612625220743895767040931300613814819856125506475026418130538051795747330059142785797758426946308188005571401640339007804202156651063961588252539163403486614416740706659010254679357744847369458978868342774769952235106526525826121013286290051644217841525873889101204345210779256949258142228027177006713746850681350077081596296684349445821224125060715001830895390668542268356471486147413325783723966706154538432547570608709397034516387929156770760862370493749721543808156005319713056161588145646965149978428147766170713181735608136154080237790884144658479541994253631565448353955091938743231474681817587956482808945636571067145968750268706450640580090221074643822452679730284102359536519084068639919564853908347421588780829933604553410962214499973618689434734638529823683154523011301267592934329539104201904472166505716859130832476862620362146441631137985215709506733062175427135904461968327497969656484427209480121233302960918127626382833307519049724914077823444147861883899904380546375659338278214741789693776966960174686108706663849126154203383905739477966310244037339509612690472244084822349460162895738067360333225880182878997680169703018885136101368547017694145167889726708408241802238871096382570586529810217794886468525015854783463929684199056612164171400002854642120646481206153428907711121307171768786611308274478602126487279001827374352606513397240307863633650812212370907851487444281449144405340119788706693414637503297258162709897983608155029769391267469712650074248204766351119909494656774472328233581673423665318685713516458676342510220669722661158448098440126218074338297723889701881754952938181204309441497149001506872793893275938207656172306458696222119935235639366776079014922532322975984082378146051880730330959142952121811328910260973103584848081166835912489093602054208679668948151629633835374014598509344807269108093786676539644194858456504588421236999971553133144137495729064746526753339188228551198316029333239745870422863018525798309783616080570642392289284189094716020829720185359612399787797310225342449226148044803006500097855275247914844509191658877512579444446043270677993710371827273267276387161732566810898238324205188505883770035267890898351304555830897457307051507028628348404895638441252775969888751727736474779336633232185365875464113381850823672873702500007500613487392220323424109707308123290933076267574251874369673619907216598612579972863077165323421760295696517134795396530705769956515623104734549497797395273852508009334301632590351141487524690014037338539567987368928800046860544335832838934266801204116544859528050201400032346989056604861475194053100294157828932636150491711487148989677567868594502391523570295591180666974698955622526709588409292949843427088953393194136290462319044208676250700855885927812101963623966830983756740989766019698618442326974237438332877322380500782625631807308370291089886919188464108536900246124615463357597513330099002238427650080155740107232947743989091387658968041884989540846030017258709814426716681429830656508228233517745486513637388314718338124894323125060808617136196333553976695271480918918945732833951253523777729294568631558766776649557132675593927585587237559612576255496000696455975509300844107722382843667243258698131141657141370626772586501977831984106512442366222873703699346424746046240467888170134314733969542204841237464593538963523433312815744405246580915713823875637837220289571733857692846356097018263864536711750028563207372471100995453976440615941215069447359484564878541613230420500558440872974136992877247969079246814656117815260883024656275818334141795510027752271954831256759138911350658972019582645226789867222154044697815286154610455029968146213619845018612964849349734872087463014778523322361953310572217983121426289785651154631309722875288216485155793081426488378941300759192316418502629468265850271818716072291417683177053634418001969035524389199257529327283629766440704152911747903735560087914324361196398535209612593675562887638211010207861826565895050306995845804690430401830711011715943231592670388750247906569776323599947818673735059671422597313514662618107099298430319902254389342272438596456656061900807478360505112574079212567145049361864649891199294892501473046432950124170554509738065684919554019395265413111601462291159280480127276311608264590301513670214174867148415668829928786997812293645057293163300365011786137199615735563142207805081410127987255904768631433588623468495352109017203361703201737323433716732504500805770963404470212847924767434294641153161858878381499480778856981106485956105303763698203932537357815172530708260973819228702099347164361989280096913757943661672402313182762248261415275499171307442289424771730497203506779920346025893753438562368500930996420582362976804263145131850140037092764354089536163777472833741694774166705424332001201512317833483139912663856060911760643011204726168401276796804635225909519520028252243801611864494776579505577929000476962908596413872949956830498697456583880063507982669891826479235222950906112932704159223887874930943254591435725021613682385118349423136469857218788521256881406235486669318866788538706643400337549578745066268386197869095717898851164934147067407649146944411031227759398499129739452665376431499312202683056740003040510476977128868471588343300600916464160645702730687447807482281659816761694228612049562360643346142979166278969459871683205302973221428742175060180058224368648071097028705036404290830459617593072582906527283393406823907525242699538035495941326878871996704612821559219412604824958851899554627432444565933394081481455437294798769897812809477228104681737859771586367198206168048732588244286628315984863602243843703107816109161658111719772723980559286450624986806741588845119641863790577043978458134182211510090705301115892117745379570496524146316673870615523674104440795868904026044048656397096370442868114269995128866621338283538927486117699853970309585856240292216261176842838806467971962124423001694191019195640946115296021486080651111954063380717637724343181108072063079851974334158607552897897593476668481335485792948292659276535753729518582693270000197643627395379802754715253621937633845964939512076733034235769138323973068130845802409829596264360274352996347323804755311284939385435183374921339643802444173312267570438639668725255519459224308279240787407338327121796774231241023344442170108674971304208711327377758233865147267010396882036386105705175360753097116512060184135870652621295559898533277527085259599392642234269551026605550557040329244231339681890618901943135716077262230289931068021036644207646203410040350137721020549145707593880607689276193057095464168081909636195341138162932870126211433369100395052893742489784138183237197009048351088892737545171558497360073810544485042990192337503051845682291527544516407554166677503938669980123282499963501571586853714851940610034296635011276497383156120012211264206438552293756497837728733729149881029481892576516603204383331395035152301343487519512545715095126170903931124095083909417055663998861758898267679982555788814212542238404783241772888400572676724547384324101132891162020925642489847664479490815011298531549283078044517085019193868547660247674544655371207738346944371486023844474702937774897248284916016766057395632035015547217165574789127676877815452986470428614275350478524559932708873685128168103324921542631703209252846403445265133159494789157122703217448992165315283499825121019346235072859526022000676718788498916960058016819352039621903649820382692944529070901730989116275720663045613921475114071134994160327358744325120946466373115960338954500368533009819721097097850011798183758386394489276356837795735216880486506572680993263686481941058263129660990183220818034427353722846925912227596972128367365222490888268602487950023713948768879488878291322993846634984460584784559900191225555884085728549132728072962799589089669139700743035166134222577485951978069742328671791243005715701166821901982233153526632128152266801661623157756873239281733990847173795252229534211815587974868931415014529347845716344627513003273876076146675681002294872820249223978428453877604606368179033327144520558734508054121341000260854619720525658652600948665169547314724223094061166254004597201011015341678300066350090194105401812166563612258610232234017451696600681981677257442265176731198365269708278992906669754351219356754795078857451437049681687162338287520918496651041111584316385715797191611327349001856794663873054448451403576818576901860000052612104152340580138391722239505538508622864820529981147547687963652431060256902057521619486211727213032285040591087735641119468083019928111822257258601906842965755020335893092159956111903024321998202349933384234254636195442889460327958927657953187957021839519880363606849305051508658121523987959694445465458154975683534731512530495613164055699211983652984994895437164179898284341155465610413219514775579194052748419907070036816588661000933420238504485610763125739056298416339069678195640570183684165452649902531556832142867371386850944272811364238928525943540362365273777214185778607221786614487626933892957860062747921219082184947523455237827505456968425869570530576201692824323777849377265911819323623741214022216134918475938422480191927814557699053188080366507367708087271883451834029685040713900255348934950535947913425056148932422025335875966467157372932224296547963552120153014868288069294901471313611579799958652090749769110944789244379783982979532787676710098598001901558954855868628163933953547516017230357776592707351141932199247967451866128700313317011437036186224020147015731445896399362349132015641322080003946793643620607590962607687559110982342572190042658123022699039677587783050775088550588029347028877326627924223082503373020240003166275512196624598158115344346038826165139721752457548280156787949622896067271427803321421918931632698498832654076653596620110228464900549667077198147101768089548200277625758587470078532555275959022657721318343227719108481095665299397887330338768428967620642463458621323910879374624868787743840524562999107147820226195424545380624464500261640175159136984940834686994805695920425594656313917460200191369309748692107195395324902519714305779589697893360059659012956322877164416251110480425475341381670108359159452743170778165612177097315405406133464089071829532774555710760232076755194652242565748700416810729687182244720538247254889917467212557895326542429684721047767126642056306348505058966941610847617484201661147884991600721172352829665439532708243914181374679665524638059175775311504551144639601110784274980985462295805984028005741796082841133392335063742393598546996297879404791879011238877059026516339238637328726156205136744468644144938647604961727564205460843068753482004824195769458505541751526033542961031043029930099377521905674493718364582781302255463705710642091936942591524611070424526711114189363366729271947793242846443818571276974221742318914165669406008042512301575789578558624197034632140100028742963612019593069360436570634941413285640122256106935521823686378129802932758075682161105017432513417064993943759907193324646340991646932400439878864727868136519439947882610680190114346086578511168360220544030574836449316307138944191468141088873555914376103177812339417571557748566287719886917319253986955621715516726292547636095485344807778678552737948591061148406848211708687879777302133028570630239447807555321416975454624094993381957454173668572512855163224880570839139854897445621899812933525350700773090073993287408753690934982527523789268101552509571847397115289343508432919533344828944473490311195809634362839904168356733732315817473328857793743587645636179133958481771994852009567322456822643338511491369633153286122721601749742025806639842921409411620194225801055642737074657079733722518817507075021110183906465222252582742078877960584317608779023549192448139032091182334597359997027021773864683739239064622285065928942227933031290511044706272158713136673583296066056142820139331330202895482978728302929831280950226661203879068461477542454214982593170344012046430706562648386965226613904458015688304145105728682453265169294615883090766324790485183037727771817570379730664340602494687385586792042385732598631049545847683905702380424462581671789555676003774007927423759492614325520908935791469655241130772087044344831475205145733944770903239725519401264934807010844138167281340054055636022066618006990059968219792291135852299591259420761277973423632249186640371385740326774320937423735043781461631252593768513773962240024586105913606646011610152064552634657260343685449154699380556409817312076751532971978453975956755331794059461318885616217222231938139245328501715570045562154391933941738643790925997837689435839273347790970084267407985669901024769285457220251812994980365770037683935161869310084044461567981492187046389253911384586183459292460922591380850676537539939488063053400202266991477891298097720556988466965037867706270881871634008152472482311933741105537718186142614299933115193754170127102566540545916543155935282835441720284559600386488009536933578416747615581298548353236989948893678299447655311832327527039453076407072387093936644313854400377754731419456154424284412877500640536041887779998170865596497518800927686688129717779988393068929843469188767886224145852950541657370299624639114567667475545966203437172114521138859522795666457348405033521857185176728510028435283639327106739658105599732591650340224655984243603708711476387479460719504955646948822111078764391335522359296139312665487244391372699167796936348148105817087367691746028801768483043938758289059149182650654916964432526691727901588794323689968494869144044322624300091905159666687642699337477404556292917963037993893220631145667045435804555821113936197721690569713348541776384811099880468973030228734657668317307152923755549811392485276189096405466920724210325037207333151735165128907038155218185041449877587389934907757894585043607004764916559366596492383221500409069414129171888539597540539219726489052280265910712555943073897912356747356603859505590298067493745674657771164336139744243379808256008413149239015480914104302905723788662899270485868931713241629979132628143868097648166620968379883472538386018607517482863298743716840705436489044443251327433282819232406493018630297064908291779291368927231932646701039764650012863918764329432469186109904675294973666411465801397452187647339392330491299429645292694068056603309455814498629822318364436610361542983047721715616017568001722116384353674884319336731631839232862410060076533817122450403107941647201450326145708333674290026225188811751688291823177633302644744138177523222168075969793894653766623444718576203757829914689969461768656718015209967653232963175545362561714601309402018828335154167414196865169542352739190015220856218508373963032478071986151018305812633529229334419623199369422568941958465080626291243218465906741276614228128498624697058341861021530268583850730171420152479265477427823844782046176287040882217606189612806262311898758839523678564037623470817479630736388633550196786195845689706111182011964513852054682422187001939333683354091973271643774437969981368666414145357912384186969436772464133113549453335211504991048557154103738542094243516160737103998356541616062295947573598478663581145431865513745941419502395364375165193570186063896278033511799703305078910612569982814002587561688103304062907751323300325732922993866731608782047550703104184530280715091845056935485474483607543207894947232282075921155581673416987763845016255046957232943310315188474067534596300267815425985558687815184019235463258113019337760593109895233060758177879302154637818841949750594731567440988566237811082484984042083294463091812918359771692513988315608149131273872833016249049377227614530740070709418260992878127787551293123258100723855989286669264013400665737779883703702829207235396676275481634660480761213854550780861314012899274789641829064269482255072992458521094057114470157230198446976621220335509066904312037405757917715569448685275751817334990113936619938411759860573980195054958494338887954264540513453935203765380800304350189334411800619559396072562236907828120235389319925949342054693177318365793845772103682904004702565441458865728788074214261082805753060894911085911827172241949553854580289477349159962591772586041580489563024584187875324081471504906880281195195365923794872993274130376746478114252785713205929157923782739504909483965340372757239915883403060367620414054678985643965043380203171245917839543885213720328263983331548890474442948064334591144542638439099390027314564683278147477959297504970244949577378318945085744681435460038369799587055676758960873642711921470067914513238586159037949242811103601700248746330586039359177168099956064452938381700052090505474647364194303104868216688929268275651400895057039822280206804529033564179739643706078420888484853617527072686733502315237454794220380603094523055973257507613586475090711211386430712067834754618843226524541669878711982385271100881265022795535193642894020270310698152388098365795807671908655236608295439073639621459232582841271692059793580293253174274230527811196395223188448923798178651952834956263000642555223501278018736409948779252005700484076227716441467245413327004514170751349663809865467091813240142556721185315656837951256233368664896646567237094047676073465813038246708530632583231269254905038257047321591205521623355533597584832157823526828023827897174174777019481249584994568148170687596008019085260394870614330729050699049701690775656506497983932420635525257021014941675039014554762406913190523575390955557993573670153192379340567730188535639432623585076914952434326526835850458363686032647945224588038879766210674082550572237148271824817283046333850100625183137422332154422018443940788290068898744556048453430556277668078807587469454689517656512095272777828746863383703963779598637780713263766596789380965618501221060212365862739521012899588909280696100340966056815043094341372940244279532285333333839153653204434912096471962382461240631386779492176566120781771996212052223516920330727095841524997658854038744480342808819864141342746384366991264165300178285330873952486608653160120752983332772682391119023215471799318542345447721234014630872403004135184393488574098211946310732044120985450350256368869745790451103452920801230450819446021413286038266024512276681387484848705027543191721486006620023295042478424517761153250305448205136547161846174049755807647293817610055410237078061109249943805725728115976041774032070492063311821623635925133816813495558537388733620691839581845396860625833848310034647509984346658540339688769342569098581154575318131945816046138505862957673921360186826400406627197135140262381586511873388135372468820060114156888520249404489815637536175314832246897366690173755931629296897160768477992685286597684768557110134814234914283352794122606255874327643757492337491165968264631983416993309502357049634260090780255019837901288218455461024831839610644870750389265432018483911805462207313534091113949549081074393521182067117516587419715666916868105948234493487145005521612171688767145890729487869197478168313921857093145486790017465289035394293834585281423401106542450607919602813842815208614492883349934406441493658481290836456081258677972508242154084944432281321532752524863197162578207851283210592328516362166427934307099318763791662562054924926550647254845128694316126489621253232232331897386855751480686254753588799736402261241863893041305164313040082347142492826486082577829385075440274424093833209647265189677968076325740033945303766962155097110729765619747352382971824840189718738413391312260850983039932135013756295835268474645453257984005336698687024674197045304532200886010145151271235916884833752023503844792331000385716315809665325297190431107052655780600042451103706031515443161356837574303826858462230202786968394323321388656619713050512146665536532942454887080409514486018874363438094727007715241434975109866984418526511162864215774265288725591786821479542224603655278671530632401090844248502875962611617757004486867518951997718838291363021491761961267660317936231005578758855519570240768702072663257070150185081487068837237686747720552564154754380240998638115205453844820760772837945789891555526267305044433154072999249176696659298804355035996502267037781128570078980098563935342507639590093538169404270869465741979915853335226800306805588220437081019086941837316417914775760635013394897014636345897966712195480911910902205468470576830230226232834683774699201033996533438927595735948257933625069827758749579068200079617019381421628226879565120376898402128307349411299616854599963078273487707005832553532119873920117334621257323922897933654576900516358216804746515988527468113337322966701440341564242932140104642036548330132102155460093243215226387153606755248777048567130672749678402624672753401425669720835244537618235961817526428829722966074327850047340216410701432511330136756667720174904974775776646679417091602110590210645370653153884599001161372132063333361228986489693904645135250204709211182739015864198725290871148908157101061576235400887720726345315439042873782657053341066021825025419732230961662739512448540148859950529784207023204019285392938187497635668840499987654190696266584752428522044151080189320666402671821572593483605081023693277590454574890857134613276320674583502859871750816804612876100536853800173461820095740857636480198180131861565453587357396968835802115857274846172226586995084327648826058364805381604426877997939707977470228803814936831977569751968405723252824119495203933291682051146636357480702312292026280236463628540386836156252849587761657610205242477832439142373169464276184958893340887351869145824123686125238666715262226161139210901679441807886052178302635437044544704141127588485581938444260011981486787475765387410354330464312470471943339865773536589605569689155208454654268061906104401992340906282174886697152293433730299543699729890196532180196177213933774531577607799773553928135865539713672424874727373754648714355800653909456331206035488864822972802010247495272671089529466257921273248663922773141568347689970111527093386759639658142091883251089573148738202513380354327410621772048484232450650373817916719372172470190802280043387970650757871235643996213069953594997711227982146621974220838926793116755693544534816489091380415063655674323808829517692278157197521133642241224743282283576362082347072223913151349751962193607643542934989427527706112553928608663256264557648555333701433889639308336553462513725053052355753965059215100748364390284332075190477829175789776700358160390646209058268727965554740508333846857480542420165451346522107744478294981256373270680075250069800604393871771842599968066704162601388786880908290701438168321819913228851303467385024781262319084544562898537872480812722669033140930061504423709402759736824696248375744863230175498509807841894588873656558430350035780405484830821611604481005657806146704115252381063689756790362502709421289727819859492012006464935713110848151160218953520614273169572972137967369359387545612647829747554015607855210873038595676070097659912080135765060036418182958578662628295369218843454569102198722787674919977766020171919241141067448422675638075129902306043006157345605201179027054137185241286496458583199878921956933353642544086451962756304976924666311064705689411520113992961881114628141364495621076773488471391963699857785080749379871982193323396746147384657445015750927416557903123695416883655201718600069802962549193460954728867727106764747947305198990633453743643534676670114938607362904982177805989010029274759598876172079596031839833304060648260883814066241381710815694235762251071673425161397613930236683344834098358608049909845576604637102099735606069638094399365559558281145112909116155504307055404029028861269592156451910276406451250360294850550694118712942790227217680358246352543198852422775483001346161814907091130093683821803557590193928981198526267368582972203299693292788353091825737706672436439846734269813067063329811552388094845339310019301435334669619210240456986899442641816503836661074601216999494050629120032011278141941139889378985886715119359982772379950460995878301884353371793822521629665414787824377364416592787750151567165349384967351634815669327960013255155292701080344214546532103377453610737023365301521604274643005226947121125435896125482403670888899709634306895841825607314803675686517959078554283272953645977186231743289464306786656580003043070980344879931377010270208921613091422693749781670714535181398676504907627663892100357321451452470435353183160814345780024403488579862550475655302297328039141964106636954903701924198660501158785642930051623511050429418099737656179962618943375793636353119517633098385839063373230992498703870850899490958552089445152131757600126753810533860509416823340607538416642094807593718596858882240709543832129413209402175030880751553569061738093721747502810529918440841902362371431715831990834905689576136197942473074938483969180667516599767909724456024717832757514031358774422723078346189196736841582708095662936859000190791259215680999944977527789889944449468563458868862547013973626567009365676088637193300209754326592837989587394010305418222810298634976580474315707915123746035649024706826392447234189377908396281884075011079348311735679400433851700763944895368917837978320511954221767115501498279760531912082350456795517051794314731888685353533073863617624393593767560901412341600733133164479982698683518296990583940076854701407007149536625569195905341875736215795702141786348508707824372651816652543261440578289028923188337933318648297817664299707363312581961004409716278097354187712130788156963660312783177039825608959980938827185052457246231112016382084392567641523060653624953384082670905015495981774476533800501231589963714191348721854839642955555811784181109904609900729378304395899053317096853976059319993385615907770360469998257512528816164372575857588776549960170128488987004952932236309980841145671533662413369880317673031791867654178620683432259403865098162826488053980354086675285576765508495640551283864204621589305254205653254657513091672472271883259197075900868367542985362351983510535921580565939620122088435244135358362819221905572280231374157002861723394683620461284562034928420108413412590210273749421608278878843424195471439024774752430064620965289703266833483829097538357248093013947432337631519192598208755564216371525876257518168561531955698275825439165286319911725730680011254375684671087382100605234215390648643554707087793807075109156822633800471368181484591121566339403449481777215419866565979558533378104290080593579187931613584826212185805078134547768983109041213659196835000513452681929553149039505978446442876681448769313698398045688262327219627560808727885777356803811615817244944438914507169878182688493952900436660882439578275466759131548375691643198924513943037163437625054416105231791965057181564749994837951549297965478651824028657087283079621189374442818642704475023282460211294294877069499073680429382515138313954467041510516894260882398899157375513706621684597334307430983424419733267557892136373720856333378359098663595755056144856109408045646577873927289098834934511826011176118281433340004710645938962086292309783633175655873459941103116990342890524764640398040471891720444693535489030312106986095015811622950073733226631821132550744792349907533131042300435291741209708473668833905788852832925250907122927060842952195878843073339184083356062525041302763558461215499632295451553410745017405115848253407241040360292274543332145339424232165094603677121274717952086062834316175842854021598099166555930565012557048777326909386902531043387587336713278871051205177941613003095811076936505937618248781846962265681592573857962148019215549226456198328638044282682971655429086611129449293299408308994951920065202863873366150475380017291133646482912921441628144702561516390158024338455772222828767937171743856711740565520655590506687039313790129815408768122693509054859932278092324579138582682878295451038917708300260377684823640840229985482541296540115583365498170214744953140821031864981917490471974245554653335809295246168577492302149189535033172593304019580349890458765186001944235703738768159605898217964010339497754117533456320932061174134622029261568717601209717454896213353293398145260989544627278487407782925778208135459712296597979204186627113775980667741773868286625433015909443595218521370096458761088550588629823408601552615291856363831522507951633231608930303410229395948394596321934152767734804894587114910798898783577974403884770798980831131607550303130023705193700155362087051562370806498470933801134520538380058827713857235553345727281199198842491873023412310975360901507748544344824713423990203990165653815111651926772714963042824803378818614395087968551794675912819896515455642192518505316016409669305924273555285328754625431451199093879666842190192055240202884161532251307911542820944410730985731273767816971257460857692950016415243571166315982160675572476902377710782156559216575962348385290601922849652645916032080343049221401298462082161222613223204879750231993123324128508835732852367715137040293241332260488296304565042520087053948657574442012432844317494726609784483675379992477200800948797934115888301694023669262329088247275309843869337999468650776389119194391225985276184632870545622793945353119674050072278099482919950258564596571036732494310262116046221247756208060781022070039547734066463412561342276848493446323147558747923024833285242105913926298710814231984950725394495244396859428084232964824006047844685366420207661902260190508207484166849666239942375067627240417333776158485531113711687433775517551491531224328464493591883041233194628169928395253514012221076869483507852566390697136562315631298873739885750449954488656527029143174958259885784830967310953560463438362098273927096485566954681682914821548558151054438345154808331309802306330341336783108489420820114352111039814006444987090341081057154763519764625255080734764215679362093982528047024539115675675522903832561420903916895836733018818435124333458148627592839248084573304454270378117437753386993408657737135003961363725530873924782127035056439009899990335116165025866244728871047790637552944368555259669553356671581509474155436521794932081738190482579394472230764863009464043811745932977360275058115115754593674056586555466833972218975948523123840877179635556793169225384177810834308281471579265711311701880613773853770999118759707703138777000493047334023289872483556115327509785325669580638249201013244583120615304268560848928403617652198657862322529546004899725056895308162945435316905095386361084921164590211518799516032331387666194761228806680082901021818743901050223186599094098932263949159513651805069128886084287929913213734294981964834037365040415832040102778693454251847264394393214610871834781635527509867910023397213490965347499837289601028263192155461555162077071369372837810117886030586511557523466920538247168150004583465506539644015039299689134836900737059876720058187653927501962324195737849606497008381003243542770310711456992083056162090048251605011445931159408127246554952660360400136801863555094264606047039745935095118279010433240459462901932684220850225683904228702355806520512006771428362927333134516279090011990232778980709489111495161680844357929115466484898057745476877021341243470562096269466016075812435345755337680231524450161432450589021969153638156626824320634223002282178819557541633166725964908191536542952987406176349330993109609191786155475532142620861558331681958071118462910838418974161347878785917907701764226841051737893297941366772609785625637646691492537563894115457319745383094526282756924476448524787001346931848451932727826912166566376638091874045156647743821131867993119413825249841440578530852192506183653843728452426438758752106858841294919706798967500587648467871124495764969869573095392549255250222434419650115004945468215664432248143777294832838794703716765594689307723639362076759120334301937502392244667723559282978509277723731720816480581288005476874787647018768539547533676832584317913843622741374677777304766247322673252621663682070605274763040055523746638399429826100829132978983939030614277109331555894564998292618313989881389407221593558696528053295788521826892913906490561931884317120740244131777770020005574694481619306198561034262681277814080319568887021460589138012383529895898561680118449174407334912538624305626657446499155236471254582159373759891000202214604502844911878931248286442603041051101269461862033926737961216521274861488260336945624686987101087387690527006582713563701451242943859237949892687961867436966511498407836599017095696438682936327510551937935111679571784967904910488968935681521403235594367392838580286692268485420967966180481318735854165031275491365207422571210262847910810517845026887890322311560694165226397427817070563160130139149259837144999537714792600188522812494024628164586903113887560680669786450345576642763672890867090377879992494988965196886171669557368675395115034797529951059711300964646263896740864988850327429384499682897555684498830850713374047426470573293714157163083067967292784473951569185641617392199631084990275965739175142921007394502347920677667044117199198961796184698793501857900967983327435080726220663621137669784647463065658926071248991526394958373584823106363226744663348261510344168550161603369236366903762072662960706056639213058443906651618710587158262066285402118349805601741133100911597551120712482231561735043722560507132119762347865488033997915518052215581782758776883159823785557104279874156087747109853650797781723059968999015917070486292531345238559627156224664796182042974791253315194855009476044604358114622297507036077906813060817304663913254290391964939409840379777509396790008978296571364431221649994895548780036743407349365808039682630647277220416046452749109176959068444070269657375786705148358963705857141411472837525437616380577513100468742270625410585138279610255964676339118691200953977534735414773345472826348708017204130117836659636855960994640914349532146753941214823702709299506413624894236598154877634065050571096913479005052052807767832262364285526733263870220621627526456478504634303844689269778502881084302834654739118655231849440228388045547480269076139209513619056306401570940652723156657475942018330073924026992258941501035857708253669420407203517347230671639158549292086209507154272064724033044160232031240743414302096392548030534835443961188726760598016777992349665248726191255914980444824516121359471687350090190123845892867213263527695291888737398122309599919766358903678740233174967525068518349840597256402613785572369500501100635400794108592579323686684129568520867499265193419389401747293061346425967798934234217430404289716733869136288524761790989433236356329405619615223055247695742826774286362450730214102329694091297903996958920753715381536309363605539699029442781529666342397326394854043170439690494215963973071619018999986760324092414594873006144501689592524701312904202854515734203461110920425540306213131430893587301712019466710231903582278502029182141101169054396105375094670884091503449351765624859787126517392880851551848458213593111989540394750599490052412145444044582897352724681504920220400819307010976972856372536906496474666886011714386605227870680813204906217379661383784989953078369417796892293265355729030344274512046843126861663303419280450814382890893567464943833697585343808646552645729717905609702384242750608503098182825678907880934435880291152292867835277535361441424403324460214810991091556602835686125874181541450845233803806416017452533499364244176120416340702591407888393037288674502055162091196092653678467982805115676852480842153512139564750060678311587746673065076801909799606932786942845701645408555230600254312531565526890222430364127164362252249043912066035394241273425915459331547930798101175462933440859364857029506424319239831866305516766499692931387612975139641253553744231654115231752778075736698885487686544235930318606510975398809904905912317745446730186552793225896432549116615483308152452856712733097010946687241301691576328447524828719414166636484118480702644889614947723471963627841553901583838199681551609640050751475743196968157442221944810389124344322108173858938038439105036463359471227254241299422796171850996131719574536355917307675730164145717088289453730151233002259674865810719243664861680521436125076956801501135638194066612325047458053642876021032070273990808439656315373043140085735388422016429078424426753442890534130505823340341128072868306556445835327470914338954211247815118744642247225930939119341574678252521463451761115542511531794061989700597397809500236515517408121854883599711334028215748604077837046130771492257324518780474057734459488424014812610169567129851013284462312880353322689076956580259410150583851064189075648966855010970925407354485392884963038741420781984095241532428117883752261175940555477315100965983467974568023721144031999572234113307735012354647802267113580816685607000019718172957318874277844882326092898220689899634004162085692744793430444852470620859913343415480528177657798825718267821624644681828535108029241531017996907545820814741862971219637588784315443044643025288948616002028701151054794071213291269284437712794297468341648011768330756282116977495326295119311302505198038764449260436618698041244626055782567258304113452834056757086591766336462075087525214624166685744258863447420171742093976707189294217632435043775656755868565231141564257423743498155658753711296041655021770555633685669479556893753359673187924957515539893145453753496019546195959653989156191014537897500998216305452826276564802718120250712838138852368711409949428360785625692961744237639405402724170572371676342381770529703780913059362911152686864404012709651246347278771575319786592724588641583411530655090932712678276594116928600551835227939483242295760226226948432126776142050135247621351837509971755130633940805028219655296670262084562244644359460062684885080363382046234939711982958713601275184556171464658661834475539655008070200123883357289448604734029700967951218344668389503048237585594747272484871474327736246626878610966930901756968575707697110150816332730628830112547808654136298374746752416797587849528230050538386411149565630938180891518357808417701807719026292481566996665334540719391127053364473376625954678214164235825510598101662688126847701610146095392739653142166374363988076642813764343546779762352452580811534749385086834990713099034760725827266215389609851792296086998404109247183368615806935998304893677075188911566224144669217090535060874720010463428216911110600525078738850635668169877068051819795954191172560575699399359809190310184778704329865177636742408412148184125929344843611379016249020099655914766542793374610598080373208150737291654912516023322680308725588795974622496113787348490603725706249817153371287025354741284423593682667646737753565709994067855516120450704623694151752577842733000449914052299459802941015043526362141473211022932983267904011358156867107496216507137455090398603547297530042242718364228783094301931564107943505751695691715696504324075686174738471279372047584351704238056046220934665761615771384019041350709338277608947285461539390843039237366429689270279770053927410958803692085316483861265675565387301746839739918088314953513515975465299946120474525880292595438370353649344142651737721594617874834530372018559953391075350671047125559240663366625522603215973909346782802038284444292200718922940481657504533584441648960118609874740397648270084986480066497799659849110091886911193349445214656382782907713166799502696632538867528955971464717236292802905754031341447360939727112260565400487824778105541574446562572117929458837192407451395460455223239960994756911777691159704607694549979637600390773304563090088072663794806802716309006618691355193438101672509844284543396774022703997884169966675577259773154526536766971717154347219203722506638494312832302458635136550972573417118564907100959421662274163041317532565310500033476501804905008291914312460187125122084211352566492888314433257546707881934946462360972981107934652704356400169955349693280175377550086992461942496657723962089521533689299795655273416901527535601112032178842354967889621720999413145471439320461809402645838755577170533452577989638620385440017855088630660444698828689273671671843777388382662270241464444749853538068074072371001049844084787147236110877800033433144302506488293556622829352676956334395576160298995387544410749920574480904157353970430127845602214283255781761185122200188073757380768041061562514325976831560864356219296237815737397375687387484522117809979564838080123170018354037487051146630171180020180287523648577078171005368243794604021977779222003431113994151400217529833910117288872533027038901649939513517712580080147987444757524503356683266710032644876785644010217784952871066242309994629989665998883215535429541312170864335361174030828823508638341168596402783737230500049816151872689930258349638038945370370856501816136201506267184943951761148112788448700746750095349491206921635952181236289937052879293349817160313485300307726369006247554417839107608975868254369939137828927649021206074130191595515071031064094594121355084654088242497971890106437748891595125903998439625146316204149712950203451387358857943912481301790387535094714306518591779088037120138727628571458639290381430105082093503779782797961529850089135963032772104314545178909483537353510381622809750926094814435858084014650854805420071930946660317335167894849130744390137592486527754465149977230753378384325533746339564839009401857613002677574394148155529365200818445588491823585860420077196776677793143757969374208964800699555919478159611430589777019853040025265412620867909722704522909838835028853609994171736212937688258834619122282928494791785082575395638689188980231333401624088529723061116960363003547033399668562204178411328219495438822585988410917947067096598615066552541873983797225427923782587767876926914122138500644476795271102468614584585659844983701131933969082844971153508406472907112824196059517134840968947347358008914318908839915596430384842049359084236812352558009831817776093717588761555284239985851322395522286385211780413894876284069720051162704274256390778450333804898437239770747466996327307596681187350355681231732302323998364869568712177669908263648004842689833398318452559632702285921634694058353971638701866473706811808492190164264526703080647682250166858141433787261211533176055469479645197740357776874877365181727295417772600990988997861735067592890550231911486183964201110681906478135553231819683548641416196370463277571926089105903772748069679248846069886323234637651253796968211903002398023460961480461875173577660384361336723783456544429709760034721567494381080964069258510480637200065836883716166098180344824459525710770598348066684573462637680908764619555676633091205656913354995796763693374865040645164667204032647362994874058764339517065894483414551970301013713644908037593115081889536202650333852453601131884755102570977422982918038483947943537517039167683887609273538343359018234350767801234097497074025635751597456170042066990272242010243730197143474549795672722998464007765496929646532270827294212147501806832779515411490416586643232698938937958925239376042536289794862302694472472625412620312663483707930935795635450976731962980471621055694832147683655439938907628699646172326692722482334106606833055336741384835612413224360877369386245919512999221400717214275880329348239722820974365150591286149041907647190062785325490982933486856910048227844832278450324142359731330498776825394879299846817148629280901632825592457143322085351539131514918232394471910068405999496919840136020376833050020684574267435310895258142549259091470462975141263735288981746517911819955464146671262990370983134961437171149239684491987686299146726581817590090761483274830340293567644217523423791447300817897410743543105927410003434813200566133985314063183751768864649311623269771976495912802344614724499042406705541294820345232252614503937015634180656219705974224970923144135149731664222055086944951602258248396303855946044277416773624614145991234089937637554227445188113918996680463954879646792912794804408435146377848558400639663844402370867224365663968510585746965236274636871320970055518381470266954998697318770249642596088629723359013517933030269949685397919707317299972148831317965202837853798562665985311575526781822763691523616337954743342798397538463049193030468696117254430702277422088314354160958232896169017157346213306452268960155451732383501209913378190471383981050857187491267673670636604339048139784091713045435734829830815053121485603569815618578650343455666269761804778839362029274025223843193215867301032259357280904475550444152797377383548449413947134501328417797969733754153526104398330959995586159211838012535474903342122652341695172155022298105409985227789111212986913522487165907146499026644162902134870390328765455199943479379900455886764587628385487186679792770674380894586715597911458128307398732471098832630827863400011640217465080470009788658395040090539833993150471556582525720778446786519472801765827199160231049416819580409616337951924705827601337306141907320304217168235644218056730392150425974325618147136094387566814133815327587009716777306259483307129711524717682174904740754166435062375259903356517081830320053937167707086241556024786538065279524101302669918345664653672597255430463900665721870100869771847059269686883034150811260072056533553601004900755680195082283330460298376491798752142255801608655608969554553386575764940908518541770217794754283550726397903422552066456365378518889274828418051257968480452724547464298882761028887461346065282407190714540978165455928115304063874769066926797305217806497232288744792417472134244653304328309790941174052832316475683422254174840812802147919333523509490505330681978174329802784884125781466573124810225483741108703853185890034643821585409909986492786762165355286911082169617687391648858608219784319837529019146032325036883053235642706259601495057176430049344507090630702744128398660626370366256613304702691854342191952852691150312841350095455208306272692710481151016192627247012734573909987292406896410296277198184338519899018124588247248440106221031353119743027040893350470991709850257600332479197963098322047685618627404287923357670454281920894924156349292840472691070896210159438642935430566459658910850298637345144729760063330306153654206623715473067417345083388472683530602930830352264094345094224346441672075420202517752161938256449677744741802518367072782401605403084798712939201146640540821643112245955805670418717124279161801190668142642774237102898201820382651444587991475324703080145776993861518785095802456219475787068761607440067443087049105994170032988686595597655753641779012663605161615739240484419267690954728145140295594027719111056327641446630542645496715893824376438968961575340892605495813751598762144146495039576249849138918061615288294451822648324794127985407024438559045373520536574698444663230950983596914896252450291354407461448147443744409270386449297704647463329518637109025490113852632906505400374504720300337197292244820764937253762034304747256776325064563317528843356418013367625493288880371311409923884959630067849331535063890986326236447287279177375359387058469446021118469617383406286449628134001747236387849027077288527589007992499336123591884834669065640850529513033215398912696985311078378717516591367583260299650428249854265755938503356425387176011133629200239839351054282689017450193336105601747063031723990573789882484044133491759523382188158257378133973984985146618722052987252385835822449898323115832738671969198982589502092000599836454489728799353540346393893742448653097805702016425648817304890096475479004644309810589020099968757188223577403722510009708141598850247934695298244552902670049013528503985364696476643556911538280236535930697451688968996328694301276399435546226941526321178146824394630738781662314076239782443099422442215451604858910589437221314448194364609745144209978962539769397959877441364076051269011715576630626180345914628962393331296577299588187323176892485515708586711296871022913660870417032910746941369654573386074647906984655135364634631613499773390722246309992153286550174487104301363567964483086683165215824882671337204919456455695778363968370704291410400684782343418268370574278109740893298781287720452107460844867977323079395115403409171832350050193650518048536007462876187179678246170617646322870343159130542491015561908318006034239056390221153377450834761067821877614372510943629714602936954408002020170840834024011830646470933265647245543746384204563405261993778089609559241934182020658931468886806426886917812695079716011171362002425214005128019401077229219554272109113070299776712878338877774780440323775259822204686894806484893263775632919471877488178151358605470570202041388754918891972062137136590639756701308997983548615381116342802496426242028073072935756735322126957219487162991764973075967675225456373707325670726337327277878622558551368797124218145699809214320779121236966433254287518825173933930728862389807211345512199135146848646693727832974627193134521218192258526715191820739310818922878165309469879271474154886471257901743568421438772605996901057731420867301966855399820198375444341800748868747172884286222409344727943278984031267136098822319376423518718752023748872534239621544403684699370334481486734315860918104188586501944137407523703925708696916198453406971333240939053491197458387897165405930855333246402247312290078234703360891309198421753546163980184371551687749310980653393011074364038240651351260562557937505892788688373880913304091343146013509318278766746306920614305313466114744076148947758567317186197475994051111443880750979547899749424038773221991485335412415621773040965569074492360714491827096873022034049188112839503567088611303185679932327150230239504765544951031987718342567925104997275098604631959515835445950697775343791101390007595492412630148962435111835637029037595072550390442127355513357813975471276384681891537220739660062046636883984946092122585064581788507683687788671736514794207133676834493856594022199310600746007203633661159802587069695526562012129909656752267155183229138598163232322781631362382930394447037880695294436942997086034795451361661409565112005269080510808803543456988318988612708944268541306060000130924461907979813602599106420825209123706575318667410133054903898971548201623745966419077766137945084056506411393049700649267016154006967418306080818267293724881803697970383767231694345647662607027014288084992113818423960566152637474129296925900877257710474460075165202089399775491889008699396422740061582452708900397288072730099681753336403590585826728161214230739101273199452120583869659562436294654458770849593825204784106422933166479580303168679312699138894143000344663408747823226223274828938425888424551108967853547071320691663857441696556405845609682386787441561392521574161465512935307681482944935339939477483606473331224341398777396154078266948885248360230230282017140668640323311285803340739177914217080108658470156664328548228591604848507798251620591815027458018166863034701724403398238343681621303499946460334818583716337455554578069317614250174630076591794850914206068819841072130131390755071006634819615215486329588548703586432096372391934647544976086949800421000269761085939596844612208947826218678276216568699416755141219356669456817672504055460457222446330228255370146247071165618240534047378527801661526092882438042887778707066000008446380428444378490037484249722282268694714693167010801208583603596024075655465591995912005780228769288608712764034215178490006049489882471797310646542654184803559940228733816633364891106252019790536177657793849770916000640397116493794777941197819497086653044452473277391249685850108972885004086754554122319103906733186073251478496633849127361019919231768570645546763894394667317473104716235352954343139628767989562056095949737295411422709184715806772836448090914952594199469794638408393939945835316796269494491798950874737576254822667242421819824695397323133607052814718584379662949213183285905465954368573862468927035321371297496530616899044948959240684376516147513723322393887837905492825152304571295119668839342351538519044847737732951888631804651615421672539064183670300206004646106431233632783759993359651401295558372408763288229859837380439821254000470828122694241037568040470204816292696960552955562699975512176478258445941632704620243723708933250364222842309513557302361783466263289410594594061299776825822573400127266378831334203710277187167062056868783454738977114618651939108181301845920863561561682409931959120675202130836955070440488592440091214925086841243008400596014382464618345603903714207445557940975466104035404180696160941472857858003130443968555965327979665164486320035138792766570956771961004667220853717257635682919069596500203717873043442462122212187304858150263870124029336414520440260497880730841650315743758217950589501797381869658961092263286230235106598729178674931486645328419542557056773201756075279856660675717224022554291936148057698067005494896603244404288551191984568634702420145687029952336788451178638521466244459551420497492777775258471283373290230902139227942959671523416692149674344861699941538357746472734024275859386739192664192088489091785320032030556206202160852262367500974918458798568654124415763427572292946039558296211097870991301920020190881759487226337526110909787282436708045207188917408628643045923063892934110337493911973364605204432742482591237331608763062061486024926958698779742267175086210138239173799156937851828957144214995506708513794556504130985994183952301182038945473890166202480380425495846535730822069957276769114017378353956366846353010258546644461620024985736708717927331309980323299039230904691863302287257696042498330446051308025734379190067103045963069469003506025577389580032718375045596732931582956768838953103674576473175358939893710163646703976939246226050485559356155121110228322451942124938423865800168750472967555296167833699827733469324260553083137445106711645729270304037099221398195773885920156328299834700518421313582060591535131863197862747139613726906785337916642789162035319130753814460140664815959972525214811371266441109782744222253677576322962496412380415186151308200468266061146852045527447897509893462796374327390096323760156212792905803278194519034585279735715045882971431521723842400291551218500832628759584866351506808209805325247365758011279292919207695047254468567334818174320273157080344806002512620361473594380950935784090244736806705560622338508415474725442118444036448999947952284977201457891929600304909133436058889017425936962696155729606078010887047705179684607627155850158543059927566083797950024301271754735740260719800251296508025793006535251308703537627430874254447075518495708810536212167035798378256966895359507477422073707193470597355351924291610774445241282404524954586994682422564546201674055565548811988333912519977130666861514239898628571958542277159468563667832249121426412488188069860450691910936843882556386902832136796805769525143526652452446437538681690667031303887193882122889937983561385923772279227427326153895196132451355454124003252919586801737951780256224073933859144268217604759353824500561914214613782533437352449030469899560150322351845786219358039625805590464122340041946094955043539913822796883560649975189337654382091560352341838397713640894861218879787305977568919312779958588318894451923704290620731947557866189510210288276205558524768787349630205208393557469477521519387996165097052498877245200250516717296285310414503789108005860192709824338633274834434626784358200009351965381659573386838571441049401643760973759115487240380557009580890042393791762946797291363708297207095573605138104808242661826343260551178661781153948839823038984308235912030013150528529296948038857078977835654827201245690451120758296428557273375037708417509822070013317295506807165790321147611383167170056095624067323578799295013673766950930859586682772692892315493530835954834450552979457943116715254511610953552020576126654281778163207160703259667554462058191377867777382743765534053337537144040701793659026076351902945901795592996361521088676455628041791488992952993545906198032496250881464065389801210304922391305723115534794674450261676664677653827151079629151608883421531213367194762882659644127847218671470508495798463429422268539364216318624023908428692230597322908257060057382179072537567133913257372463383981518178301062685159362758047618332931767028987664043383118188411721193904852107429320441201525438955079230735703171198115661379139765909670382277202275792162052744538231671979891829777595066262067535034073206531842636290961284724004067051723811289596087703174145260772211404442464699231640791195471137167155931498917800274015043475329888209330063337202787753747125852945302799922046510010969810630264544479755878105673617979671865752505857276163956514328536486246779173546556603743154184211470745616445410904911276037441743057314765936159526894345156198164925384278295961491597074455965256860664349557115540290975686850413032679971338111887315046332240936442197969557594048953029491594633218005341159261516811341611860983765330727551454835446278544629447502123275271473848643519233348955686768541068839523561177666645101238774885954581661922335408127054478519459034711358575105237868385358171922544828964214413738776334284108828730459658614122231787051636954413999538462120864824680323610518607969290159350426810136827146584337474364178020331796997029089667725024724274483116982641557411396713729485934202218187678604892471326156287634591985315215380426388132057741485606628136429917981629941558874171245617259772505571909069056709508633639889755060234777389278468776043552510484598246938748528452507757409667072694898878272730404132275905751202781859128000342985553081732116614910399564881868612965345039052120910249449954823621198574227557060670652681649884917740431721032228347134852116715566962025982382039649100195190344655658980459317795022969194852474673628375378533771771371919491728146523209310267624723993662040824547538203322329463949100908646276138232083273177281971358496371707181171163526702228221666801583558635310149383935310780352204209182906203297820651978603173136770889499135830102707402368537359943827559997236982361711530409680696276565867740213471775874732722284510307305437515405714503560268613584773933036257419142659259702139876094202898867322988833271218784725120601710859816078409943301308833502394023750519324910021146441900460873820975071649312566627654277599016975756279683698649163584970288019607405663312657692309828618752650226999219316709386118679819675183442271000681697950194071187244328466068193113253009750723021595078545163264489939256290395225592366495472927562843157713283905482425752951726225068098865321527171961231492023356407785210406844344410794270830169704769209751005848820257565390442830973095251630925504219034234376852598590695038678358958729293436669876162079777371003096572186454836125022959605982813864793329319427645894534494904207807339586136805078208835773516871801466894427578827580578157275039374694798945293916141332763185359751663278893560881156480819799743256397472776031212987557608878934355438496070577634305720989545587753646941756298117625100484134959629681139783147232361514267593131039397044353416363458717612349560837439465480610632119608549074937078350871316786712430102616622015063849943795314229125863998495255984211855481524055637500642771430197521604466926795138288740690324199221852353766783783672150133346358264492373990876666695023574991284183135465880209359605291232266375693780454269836341583653431299166775053558467761929456558212536074127030093391384297721466686581542340514627255522336574102238609057705280178232123975835634241351384181670778486822426288912029682493172063153672323355934049670011477320117223118221142899968868695646123950634010312407649401243076257293897429474209157498800419579122563666509347378288070309238043550504260163981031104905321118030477186666314535018912560919577588413578665526783205174097558002790119432337340554430056345217864087894987129054360520711259857688959865415870050530386565293328373817276228178672671156401899320772284841067506510696139606406023586529939868133005017137117252732250573563058723612805030350363241541239508913625458976526200307815447890417459579535547744789853664616088568210957861364602295853739348012217262241052209999207919372660597662865472322138040468752083578839154266765136402647922779611572996278428052817607978324120944353081249937918660519017856317047614968572209945099891585454734113266480070696381254477331652427886082872888654214878275741215248383911511700647396739495103530849055415102153828406234919334469028335999255554404308758542950912954833718007702803010509245796502483498112164323090601340061579536277755549729868200619497284993364657065045516105822883849570294684465596010189440933169844223158294709421865647900266545433222198263232551890384991960275921301882714749301118676659735985429990630170289722621528967604009048560158491508904484276003510402003508038548347143512734581735995546184391202523557229174712829458641547445905217689779287005574524904897883455633823284074933953637269253539599285113273607265243375885522164447301779664893966552384120876381448668538729968799126403822110871606428105351063463093777335114940724072088908900406838625271403724880597484596603443489351698014274054619883332995433429279300134596519870541511450580454791508557710526560733742836220195024293550024836697179794703539362209996486290000809772569579481392286542886873880929301327883225115943604959966634608167088018152720486432957539494592708163948558687276713182080517113475315943776150287591699149133234034941134359948275479585385657844177850584895054902365962263473635004952992076903465407704721638976981371483196550704416653545974827361526178478471787221524165862810686437850569389771698741175625928793539819353907467786641253404335821954955987153751797064484131417389847671378811445491266378980961638183915801501199560817839562187921470936048196834361715017419150365901653793162298083811995981329550689109368830578482881473175197184346058191898389874338131066695151029554347771428979018769821580361139462955290532072635044003710403251873236280087124324202063591816963814595945325668506307391129064676224047661858265363917801978527257318581689316226403277314531123997251163194910954581627699615508268015796949234602865669807974669749070701410726908182718406866782626563350971349754010352187089324966870630554100754261031810465111564526229307969341204133440715952513500100447888681579663112129795237504293462231199331186287921739799116088950400613674550078095408378520522770764544620384935157696109526655171864667697148927677015277453430236879028468420705864256462882371910219119861418698214101294354752957391006494675704087445277886968363085885211216330705323668765537783803581654411251671090394470455154329807328793210473182613784111188496158246884623382357305364363300671624037600040845902865666109748300787686660046821611591525199744738840338337127537376898772204166290715817561599121399147888047614334552268309579437280878047482318171621101150660475881638083150707542350091493213508884646082234159818237122181474892661751732537319187456393557030591827485150369778461749164075830834818145212847699732729887147173618034632600953268290200056437999502552893050393299129161110991907853726938615984456450525366358420718978906593966161447623067197570013571601258622044051265554421747070207821886042507241575105984226345615221965921961259432118270108787966374375144993617043236987230759779615686325165334933340641928595579029157121465019349679635000746321843060371445424534674286797822945787488278581741574265690264082937484132072713664693046428662031323129397145448115343854412341695105444210460081767375721063606390021330372115065097044513862851153996790393745566329466890546660760891355338969176155982147506582815034170557808726350181456101249603183882645674170891434999236596137660802857652447472110993447558416141829473594002792511319147938753097020567999496429507967982703619516503035655027965763183920337581787177643543034866034930042440237708390149684976459878703740993014256851551925736206557918444793237301247159735773688990506987504652912785861641652444305274392767725832592065607992230076439922180829431116186254900554862594647548402779552112348232333672047403022571747318564966728820289599432081175298715675343800544527416507077039491621647568622768403521025726548036916084804139581221731095883612285613727851298479967080575501965224089540821429489533711948917019403387708614096203983392214502905073907543834986347503974911700356276161165091061478407398377406104993426158652384346318272984104089307456378525873592449980748060927174764857880702785577571872392269069965451959502351304942039836614185061270107372561789259166808945550803166349026912951699440495370922620341312693435822535624489145567099142022325317491528309736867848986354942415538716979156654715187612711188455877716478408410418068373054234131284380372975883154438668783493227168937547600839434662317806579633439389174174293153583956897685618769011999510463400529370544197324260587014891070251528802553226213758924250779059446990633355262964242165074595196428604142051261206773788869144527781635284175874945478819608032624683559593599586882699172384233402398045719121820020745085365087701538675802757677104219170077604928091447390490344806996645421123744141725764336279919009928602814518067759935531124071534410607295298096094574190617082659672184800465574944783354410392490407862950136686976202981789866923036726047437424437020143710089514491138321641965642102947631117609965783713843075602399884697147935461160598649390433813704465613213274715099810894330066035233415343391924003012339991948073555518666722974664055712383109494092808413418945837522022734508437343300097282249249472637605180963069358353034880087977878122149308321965388358933779950510562998517291587752195910768440617986815748363713464121927600587246150518527248510559329968701984961887503125665476772821829383504917526835822800544944073220897501687181387461484887594526505613167572110356911392715424286284399389944762873480622348747659039132034742472408397779156186267615764016217192772800212796112720824469516820918037211020918952666272336987132776984556498900658175232138917615528130336618438683557716406112884696563425633375329093752173701263215417272645629432291314738136357552961254214023248193756056827154925296667063437485122966474574073150583710866590978402957847654190838203759461941741265688241245765582091741567191232010127237234462867739015490344517691699853507233932462230718349554242212615609261586788018548622751679720867039042429952168241036516256655309783872212942105427055145571474827232144339536674356401550124622588054153594890049466050106982818810688966625491732589000177305707482631866599194761342042573206180704111806040547538518327821996828699829181765898906088819097676671839731913172302946936643397141472968714538425232808082509569921372086042472072824591434672193688125444488011348067832133499032908654616839788204117286468778201378515790404584796212000317137656790030976706613526529056242139371959279700067028828411110464833763839099971507561881614063713802573573280093756892351210605869306521217629350969787975194244922147683057501330186563124929626569008397135035851651468192764570593804959610077329200572860712387171367704153443883885521881687904010661577396192447586096599640760286184491404352396726770148966613128345669721406337243100618906195859332872738390062894086600196442924246453234180953128927690180666695600740339913469709114582330273358653116867314484092838067101530342126921201397108500289736555291439309856353701566168464133120645336317638905445157372518093539493181473766594831697949505284429258163464549737889516018395700687767936875409163970399008702735720952589972387617522252119992280915214270644206237327309206492071064790124112353967391380631033902166122248612848091738283080377975748851311810512259963265763846853593889156034981928564740521711235770424544489470142382719180153281771189948902383185614438602243553020469834784910438407656210023047023278937868937749478896850049221105120856126768540724745079473605787289575534391559798184270028157705529576489038582773369850496977832217006540263996323742784397709504311334698611347064436748896248752453558528622455421362673685980114406303831466511625126135528343206549675249783147228193192592784639393367881604303716568641787077229830848509090018675813071114619432708051035996530387955869238103469216502279734279641032809806370711797382705643162335676073454660162876732024036814199234715966578340520357004461791581312471304958274525414244872191683166901897582671639920150303148832710477099234823751343707458068372944023453770411978173820662368470769694505111954892553007349576036848934944122974385877446683979443978478804605504450017298956715930335036403919206095149388626476315474382965724106418761202480146299586965544660134434641525806190012483896133868359329520480707011346113550755653655285781016665970295158166117516395652708532950516239316010951040065998056485607250757774361429881093630851093378108196488040929170391861975655465872126393961418242067004492234286451355674086473809675249082653984961689563508561124427369068774046826700656038680394518691437725009716062983917827848589228784042603562831311300357501944568213749523139579129096864970628024275366711600541845447020756036327906521006671881701937104953934558509754955259074246909727833017053031799880786136070059739705066305928512799531912239427348526037034206144393635483268557459083711577374045134302607668089233117625828172653842080876949925178019340301294397374744749628883178631939364729505323352157904688204733175446143140358507232915303085427851158316074728622729918111731555402286474396143710035689563303597186182684090353632915682514695004229968115500871166805772090699756113067310529795864831554009954418022785263548964575261990942972428274941670153640727238182067762341437373984554816719495589829740124698765282737162443194742419084825289411625451232778738217177787761930023007406761055517177575202721183159445223901056799805876800828592103976209508267427993724504577163002152980641757930539937668597107894576304240601803875617785064615704554512575876603614766473243120489824118881755535277776720361602231882394252968082997548709540995675093651042158029989806865729975583390382084417857510959493138994555161494488638085486717310248975343537072712049807663102999798786600079248795998681433743803568247554005732821942909348232452927982247538346197485341134245771073142696227648966861228354044729154690996283065483446256468785742319465519911805415472681931005719605206139645505769035871761965530792348480239591695731924076878221812653221069039838865690853590315313303456563285627312040683226616693160145319671929409075484091158980977186705179907565600961541374641372805246022752063032683107211861500773006469920765788433755379609664099289431372067154946485732538550096508944509906289354605055761593202659988335901232820943529041313126531782357541299391575997131158321704227259766052853519214659119990431940832080350048965304454331083757181851381806777743351326846002722033135564671474040783444667640220782921109116582607157011192019789592446127836589297575602865129724328233630721663452889632201465267491676318793917306786646038010088298951106038490085498545637034577272387168281126613846791885187726905679304089469493913920018932607824183019801181649460042817718178357340775239115590779238491196637379038601025480026999878259887183967245393738389547028518290782780423234529517569540057807768883355025995192408174969363634489036320924566217981714263950259504986339669743073661387795805620974842496533413981085309964056928800690260572305572762476015170444453126034290178753720430819534268235528808320044242269532707140638677304157668772098773912068555764035696827763479524000141994789055775919173234226954242481671818680996633097364513036955049579216344148348647103702574604464916026375281739671201710258052840088830169032540342162171953941188722144992240666756302737043050743968405799708351414277057335663722399911046280514557696821047740074752823314416508276842051897826162862845358848957097741431504728450296374772402038888014533845024862700723266631493744041981062086794839040503779961948809900470218402379474547557528101307549027609834769066047000429916864038654472969902419062904915818538845992979634151360171278268717833166358455658587134977786948070913693994701685722378537240746272453963255766041792404515602575664405392700336121826038436991833291173436809813171008667098912669541675518381223143019657717318855877718352541413530969892834199926285773936615867788413454999753533420503642661466305827535872155792429129653458138359094403060656577419671154754799263477375869592285046978531721001512474238642292794882421002007577206169180503965595796531696626768981343210033481581588305681124147470517341847076182314858017393519161674108225524973260993671166426959781847475513394112501980289710055773320463254370193873900025621482397101171709936412343112689325422734510428421561168630315042437173642730160387442267398216027547228874692434108978053842397928263492298403787988857896183933429915584616559393025445357608109171428945996081380500656036630502122184537805923540239930399762014828496332272555268452911744870370566493758619373248533832934213977167628683055414229477502016853559626005541912520926849343131323615405653613599410398735357797900995333973295700637728857662351761449573154759311472399289079463353607436026993429469868706265594196079714487427902772844727449223967531396972015726247729187485565792551426320286879580952023484746480097254393682238791285422384056286860032263653176713917500059291598816942805816245793374378688661596376457051155808286056820888876090624404623830873296825775505211083673672571305068250202649497358581938455361069302614614626097509366609764112752037702922828726840504365197856463002460326387874476335022229332804029152846177734584180095528082738686731481839630503434752296777681959366044233738841554354840880507016765592835533588261975980128955335204611661338107989806173647412125036441551499468186967756653224809134695592754043688765972833125344198847869922003657389866694868705694753471892063265685335642996469823580344825585455025713679435800940042607444470205000476741276741948723857930409299274469121261272526032431250444217877467289289261615681431329286218038256117016787163930758802079468957939850620434407564909265250316583242011539635225832759355012023460644190348952369393241555185105759852199189316748546002259311941517353736302002748661586771475298088643358597410230235054493107616738742376872066898246792785546310105322517984474678844541222722829907543271185344115073790987798785769322178905703108605007448242120677207002853093245055815946620970282706000362924525400935442841548434325925788543102395288165894467729985602019581345241377212932157472363404742382348164222972344105099577025384860703033668399652447076614218800242500464651732803563789888956946942405131417717112414357227380849513683484993403380829245816915380573430980349007721639664088720103607468239591900388762476260878220484132401679956012764101771843422876202516022077770041882154119298766685312975484288240361306419511844460980427962424832744136796825959579928005271935733240070808404618981893350501375991398397282759052704989008030311406114145509522243058599660189693379753233141138096938556471252162488604370215895496268808471538915336953813142868085107260449785478239011272386647600500162865897791814522223239956530766130837322112053840061432274741122929094857582062487077031049109441593280374944848435817142874880234940052270896232640678067064194358970410158814516647602354369647270707058447744806133731442498054498687879840837140175363933086848926252735953526729290621155441343071274243390582769158287443878662875408966480352055798479758133567160266985076540193587604650949823208649265445657099924249037312329300571751098413459882122498191023209899390239848287572765304407227815201485770825771853462332404051372816317883938998126435655996956397780450091513020675979637211542631376979981463244224615828547296692482924645461868845761982111476806286877943203519268866173171091326020855651673120144649368398861007118776300872755210455591338214598410101279889398932209526097401219854206417432555444867644355618374104135199230391232469072835513930774061440114795288851875816378048734195712655530137906638076169575224019300163448007967254269239134617189468919240271152709834816365519085914018187955092923021707162971431252711022600735134345312332889879035872913562232115060297179288119968802607108344827322027368231164677291337819299609469911812107286557056918020408374644851390799259163261229603450436744616047892719822150775200833766181731043037334244708685141341987469209156812499818260521318043754753692974759170474929499482222048553412017125452395521920400628879533276033736260192212359886951142791951346732966345727037456268241536999859618825756909084618906073831334094430139163383541629468086200058954176948984575204239819699950977135358683592735919400947034724919135474351972895289755729873105980454157241651520882599433375396638510112260907117409779033808103175662998772634206520219011003661312207729888108768129278906500915620273792614900488889560499640502194125922299112891817567885569075463306722518480298197090494394919285513005506537477074094355054066284293861223099702876292835026672737379521597341991108505199323509980599503592662677528494091825290214361116034745907515297753298670917944576149434450239692416547839602928822884250226327580971488323295969208110324823248230337881826931633186207527637040998805138682163304371631974667609188962889484933299787236460586161536692886497583482946280236946240224128584522753757312003846399181801096170753457103472062721677427989218987565421779134782412784080396531601220356052742966087438961209188552724324424861033461645297682051773016772346703194379240224744029363840778499621077914796701850671338079137725366565488809256925843955314154880165040528133279814950611764607675420767676474987496302883089693885932068797487377034140530361884730736087441140787526381272177729499562895139077848764008475173547083466547472608102850549699124956487289815435429913429068908093682777260184682786135761307941956837144247305170212368896982114506518196598525543147377348222582762632047386174898269050771110290220532838711881483135816570296713333626123110261136713027138958266467185419106255529498997359290730123485444417085911057261988806914797304265005527731433276227588163754322462714169175874137396192882461761046523510179208025934033400155659269351921472648091241912862241177892176411714906639901165627856505628929009673387364529760846395174900923508225712861802347888724780850490344819904854283442476698976718256789805411327445182452837107992178027765569430205901254335053062203796124520928301752767379420932838230458687522314344768625967339500760349677780363903841553358620653339860988687707419589330907516471300320643766888083947202808617025739872131505852789691659919246113525598115563503362445087108156349875894035209458499561765801830490081545046970872514578856510020657226823894146782776119490820080933924348553307724774472809575888392166320804397533107329455310750274413290484522667343689452496823962547867587448157947887654664618917644908651140299951178970168337683184862425300552569919339336246519426975488449755813610808026212554682783678423280757235051458077632127003858826418875099059338092755970351350343845361103916582915513758882813311672496785108965873898822719790162744579788768242415608439537251029299878975084269557195148153063450039638106402407118502294577181548663633756098523015541252221895139940894587610435556709136707493499487273787739437905694865061060923194776533259398242566762593609970509267308221415495000084283697558191571905693614875834034827406743865443885737802492894451273712478463080265181949035879459952204063446853401920046363390423386825479045500277675937065859897361659884363329771432757199774134681827454790288038252561142364812143415058545040641411513910553001501050717800658782442655676849378013883372922876372211535836152510822939327977094964479110468880874753758552274734224231946769408265602872235186790698403077622507046223945062233651069338512203440619397061726120170479133057189489256358222580318930918591566703697911234707088242555255233555842189816103248748523393602642216258334738159366602447209379123370436007382219425662056555324852312446393137596624322387108328870231412289384943696115300823763307186972636348730108152320432587124114276937659962074917163088238246930566615851795796976045380988682971380488333477607157973464041659926791287399644501681688155397539685542118317234028052547500095027116584373524195010736595581242740382363915267151841309880465274161530271831469457910990869190570607628974037790782748016505830664401311940516411872305967134646700125366274591448351535535104470399279254408171193320938415547259000332277897929053628263766460151013750786393966780846535743611417804594647746247378348911519876764620433636489420264267195914991446376522117314928054824425210530659308456871867966001809674683042209080007427452056910128818302944901910077327614055964195363412725465873864023562233183840426810190443821752469097793385892615325049817020543988109892804890373883097781664144466128943326687242895432157975209703938416194468491225081508287602676394843809361733520344577957935645323680097930233889930043257634834556052844851192430586238073739571799232517390140867860267066080470953180494393951208188859611026442372832171764744800541287996806068270512952895169375412186327848931394244262575177101078139226098030245968482665959909916735146333399240410382352651557276455623581978290309333224235733748994340428943415835038654209193545972611778430235449052733524757006117344410013990185801021375969691061562138511830529224613457126490827087443246614438853059992506176529826538470126607433377044317604556496800599142316922498376381152626058024247900483856166255399669326388129632107004486062448032946254264191051166139193771745407737260873060727666546368311011524644191236073518741194247924783343140170016844285026906041583400527233405843435631381922352905924433875266874529720249499358214027805929855104435007397299583300927970275927118839730264301082724812988100249869847382775086111011846669486229760608310408085769262288905443546782445273989901814199909865283110971937573967733174711151225744512209190513418096666198772461366483033197707999484651383369140445251205744477684156488419304384640498464994378619161080019505998206223919075516077090779629615552358738426286093057334121018570074610607175554876648828884285297148665952403929590893621837396567815192558588592072870226314116041808517882165422364471356990683818640892664106432638103037127555032456641344162318973172488636618720299816739651876439565656910594410129719696865878238268417527418003802951047435007325830540023231978384783472273823592300607838854815273804530993641204365603777556283788616673893644650972429206292236434188401730928105486424572302896443846291896192586866856077261058797021200890906093057973788702882218591719865726694981032583567172349009699817530577949461254979607906617574107028453437516222994737660230906280524467184196872592072154716140934124823107074492336501115822012459446769519280842477308592773184523819198139449063171708564577381533253360720740394508304425676305989552483891724783941091707884783537209812753258516197631604980116720246031905687850394347174558181894651296989883633348430106623555131817484383887660998822029155341941819482699554448207832907640201631042536961599171358816205801934218649293704558237416808919782681706861996604869104788110342465449006051907975429330664383486638910678979472942063079038874878841048900552401495099977030426903467423786626881607205693578573225443006658359033219181410305021816458895844469409050598134652137807960228276804729838847602009672035518622944268864262522096660332407959009942850164847807659617803163147298377796736785766440315468219197800813213709372730715844155416093782659205614464559364470475956360106288475837504382984236055497695514300705120129988328540672979503604642254966778529820591250725172767333400924905385269160221182664262849991370849477312518869308606102214905679001135296356349201408689820087756298126407525591929185613998489494968953748250537505013278614532386970185676506889270978055411736353520168739065858847522934119861522833733465640291041563892554136931543439342517405274303541899544250483798803514925734579303435279774580050216661976104640155693991419831968635111679008934122245870776718501926940079241375981972080101907046817182564722455481189682408067314588699936772907389326155541303222958464788516491641539919440777122481205089987580738637190402101385802431837563420496859055217899736229914010867370496350933090510770106202088113618008135643563471011005568105428104070033205391470248422272000817285753169202638159266376110887217037634027568022524916778298959837428984534479102213373643380709099734536287128857964414947583628902789326759040405266512107335594707517870528660996848889174910441904307717259437466109915008710223092255047812696874443771973146865377552737126557752223642862631436732280819289591825233276037632361874240391863511403994098854483616440999694151330032171960782823369524145575069303080823857315242736968219403084996886360814852976103772063983063621539562215559841502015965126513626783602635510067708519115247308634554430045364780276929908570566805314335734516433295062944705926638893636735353237367488782813322025460981663248647602376704305311256041003797992625927866469239813105328363852583734923686815620138798781799075257271328160424865401877209515811696064281423067327923944611382563918257959072088108002002892094564862045288717988268163774436870566209783056308417354020638239664548174991837887231752825491775945843008891098265916962238268357606753634270944255751130578533779653082923628458784436036172607596465526234075645513700184947771961813167578294575177920660823730249216287738365114470621018562913509503138663556308800207022451001312992391604687396191668909990575387576607187511644462599117905232128647485094453068686019217659461644715645270760153812223674983123165685510390679352679254596023269156686111690250083074970827280518035862045124891581090059117283346897561124868995830060474276971489379033740140209164037118176770854948966782302094126985330654510499089510182327165705995317037215484369553923294534902079861521001556534578736657008065937278476622463348302975201352803325549618159512242511093540933091418611615035642388644986503760822314464581138633581632812970028296272830490395523173420170655063704730260659518548823027700217975615701426414018622055820922647696422856581952866956454828569338845719875060425403116732692223264271708021495248800977590955253145627047213544816475937875112140699942236934888699084948406093776012935018742718711277939334657052147212002251304655069548794717882427771729136120943673581144469944957895986278568002294908277609582543142067466216195741296854466992059580945561277479739545086381863350535537991609768848703460781015963900921524410464440420521291864276400305901402096890534986035743845493026450454476959188819799295055718042723955603708159282984517498634372728516497004231441087488155975731995576356777823720817824695294960160853097823385993528525788046344893173954416354091015904371391063152362770015742793920943640641461987151873149236344610321931595122684359779082301586812759734537343485923570131608895569168001426758369130023226663722415427562641564439205823087449189653215233315193618912241869245066242362300015274888038765604606666480706162967107462447362714860793489374760876965320216334435109244087012332225843772598219258529887644962326054875491806122818088609207757135258912662966451076729530687258929207465848998317965024697394689193377429822606926078899731458015222699895632363431396970168246477439635383597248177250862653343548847688762833709355808793115555606255767804385938391368302660906012287391787892884018744347481057255956281965531065102559309486102550434861723599099432318792969917616174900225731154148560630838065213139496016734337632634403529511531490920426652459160695921356344144395991253052396799133757164775107487438258422243181067952858809663075299490727911516576547076886395148075216911432861125590716229359362517523307639196431687292225568178452655978922291799959664615020104811159717140199877263854702426920924869316125389540799715870203935971130008556220025455955569818863038510171330366567752856297868645215513464953486389584632558836166947324269741454229078159901686151282172829917586882370557034123437538433629165524617878997415003815830553753939734067624943028493168212648184406442363978608892051637612357885204071941410674961162632989204478352027646463427670519338111588019734580106343893634900341183260129526142765095862735589426079404227732645132894520851726200371235453206517060970707557328631322962804914953513061015615065995240010463113670421651053189845531120394005724008027452718485118902281724143807382664879316680415593134269766131638357068069221098637960710743387559108126882155463763070372555955710861418741163304451405638350362369697038719498159551530909327785002005254921106621187159351739035790690941907323079120855861092511615416624754513803789191283571369055062001436500853013505073329753998202516254264992811806361202880591685571126686902890160927984859066392946414770214600322230933565438095187686506092192034381693259875897120993963058036449077720656468170942636739938501192771027244791777289583302926551283018741398781272413539954329322937084908798871112317906159824756065028904802137620046318394935069759330476119012036964747775885090892877028895565361096755553780534500945964148111433312792616305399616573271628930357585816560846678063294416624629252550457045841621209278967993022626967539183778949109213973410430610789207957346017366632183264175208013429358663183636719738277633428673794474693953400568643281072120269406073894200682883763097315074497363056288851686717285197694928521774406952740923411356258198728855978663112825076270222010643327888845405440536945654305979551581967309277638090476721526804690113420716673667184586392445390076410219778719375442439034356474551255656245050228016177151981903523261548393155594374651358747709471232399741677836573682221941746898090624663639816471058343875517872342439076636180097825681288618063069176621919226786505319429973571632495070987117463790873151118720169108126482542349098598397765486583442870181813213172076587565093386882140740734756661100095944944242141371622711614269633714201482833084658335274067766873047427146490792397362633731802849475141733430687620667972763472028305791237450096322226452096509796179732376100866028411513062621010239884124244184783955372234493356300985607564699065162725516605946918729329881730140126324786229210347416821571558930009450588600378209346339368672795242838420401006457290244674780621447987223081465759798423814318415595906636740819481348986453209166664304596750302165216495787234517496439194022566926181549672975834495109293599656044671553438967130769082338558357774786302364300567248366896703918690323465285438112001703063649310411016498202121631948716277220421813334535948878548137548372910175696970310799672650222013911922568371651942193613229407174221000805812580028703772341417583669453521913547657566072061556606530484060782423884649227857575158295282041079184002621522434776668902954539651042812416355274646220197485158327005104554520664149684402141325535849402204661874273276396090887910923575285482467345327149499690625983091065627674154746053583658702681291753012030114341804670851056385831182386868600976373179296731039469796892620348753356896032611148533472330159450587373840374620069368010575042797810661412724745744577521693180411738349640628116923792628895050153626227827896495746214256786496801392934697628634082253069437523971579238823618258135209155767466479491255848274365804769332662560169790908447489482679346661147112480396382453019879199051108844868166449860991812986803276895035456314752729419675650064897891540694553132209831944680807919178475764106492566764132827838784323181563256249116932792664177878168709476836946739047914385942872082181696528509620177782561609919382272007331450609737359001372662252889797064295086236575560134458581505281632805157298399470720345860493092027668721947434838867888470867916794588796353309681767097918923913490773794447879924611714198642094764440598050191323104453644073693166763507321002388803770688933366290747123035025929244961799340773582265509580481673714093029492928295382037347212528600832533994057910640691999352688723268811517897486663316660904258129270587199267524458121094285994530575291725009168288285176050479679041668222801156119872309263572868844927828299297407834344980771979743292141781784853565618135102388497612664218226551793587402135577671737272470519148484592124744477173372252637255240886006068520617798783095184860091250409243055435443179356513921764287858697160160991243323555744707026881925811597465745589586216525657215525650796694570263235734169869101233539534544635732825456596872439711137328334281220089845197311402765980248200520846798662229859998808219026843880014264064671673869756932358211110597233140432096994775475402996894920665868270502773188972301650130343811049022278440565848044608147767932690457934466861141608384130048580745279769980146355198877463647326472335012074912265945427726805878121754645393162562840515505534663717023460402501781855288160192807494609863055282295043595823325121886097023385094835129392577807221499744734061729220651523503667492358808376443632321620359876776630243790363925128072032261839235043617939580071425038102144905093839993663233449893102699270315860136299861112048537920679353032977481434332426550696940717498156992110493424034997030370639236497265809520179541869793923853011954947112985776067371378205921040587939157014407836094992153396684436803981365786202291217317030794617933425134148487037153511060587122389866665413876275446707316157871826249513230304172297185990639920482124947032738388378862883362442778390226589841578676819897122624017680512969340496453752188823149051807227695589875787546565936311687876248735281294067391341568338544309149700591914331796177355684589010920349013819232855951514988253705810416753736625979193208106418453942460206468102215280121071826799464420416151054233186788152843703128857208596383042371196592615267049937916132224516744193530793798124801569765177405089370849029985860219031705051259279617897025953328288624377484396939511659089861909569061214995767370181525621220988896492103936093322196623961679086751351725792487717223395049161178543857668422674115466799341578223339418977503784832426332019188288930104583355886431137751202216489151117481119671374037669856794308773822729114716887102032394928625004526501184493179866743376168198514913688641595300566532106448661311121070493682911720419662811065284183256108009589868532142807957797547354866962783439718850127303815555395341914939798958704548703193855782863371386712372148496716560240900517572089222008340217943829011868588911546031338154556969193831432151233321042256422563064150650123060005757193218283108754704393034431322451828968931096998893003496772182062266665316891604188976794775468216102498310770574069462587671146238769380572400826610185895005882922747195437923289498780197524771179369503768926767575860909193756680167643620917164754680641243215060557356915897282375032399565136068977694697136961688280431574916101510766134730344338287526430988148769705101332144840175032924267695940650457218957154012747037628724959617720979799275734362555695681142257441142614205205498755650870687389475606318947959358608916115349096639999993504259255635923787096244682500907872591498963393402085255893689608536708160176029275043798905255009364111942179658608511287577445658887182545267026183069540569843430532838037361680529164245574598844836386530836642726432463401392937147050856118369754560680896370554764406228121235511318587574554458679526029442765998762340084797053573468586820969969930411572439551338182646918383070723571154372925090996847439195607934036585009078305887256695311550203060492441051772504184889152287786333816836982728015058474746142583007112546407011972166246779419853153127204671166311149866148819199315349259549418371238414429011502706728711419554716167346819958673605718459950068503208521996651001594572969454327351620998893739853556416120482814428226033823192656353381651868480426046984040394041280215441187293438391428449605140041777612233301349937807927121348790421684907759820513085627453706461285958470716103516477143196013254153372974571396429996154697889154008321326146461656686317404172560528273239957044494406742031957371997497571672956994822582985716485854208291941476745110412029168715749046995671634924617546954132173077124611012238933424971935242903719363928337784457352337549020416379080488316590090475456304724444540745861378895391456486191002404026018532731298945253408063673024617997816683418852621093857980804181500364704006554754837830611052513994375346887518324005755173919888867294935650097226831969961999553263323691751260179924622796858360647080529528889192966171096958971044842438422778310659136063077186647337348274521954242948194462925912882994887845871039927908724176987271840415247370734362920195321237067788449240892174517199372105177765167495290174500682568493504272490942854488799604337997713777758161266847838518729639885691233468170238420467085594543495636600118796652559045213020307617744635883455532466444411049255635710871791569286102992860619676958921672439695455340530420743913653816787886600551857458800961997616661113779491280559155395147335277100005738193752168311819461978505324582143814478613475641655857441336570922275732951099675607232370588312626717655390367054801561484910564597544089962377179628208620420465783543650527410254003693504402889534678955363009869019762465830168458166550396317748397398140298415022874604853179458251656981917480839978305163781448235910111686892094759705425304187617650194418634699209569459966796680116605593141506390356437405959012030473424786338895365989103981260828082964106206552291839431374218554172110216079977702083860527404173121788817769723330716117154658948997819069703136094363340892175165039467827829557813584430525542356621185532245961507252996419780150128445242962573104280467038901228939989913722603808682922346315409554287594616318857419847152421545194012692661074219935283727584538377098769527935200471576350736045653743550270534188832544546793166042888710321933617487198050210319951275660879078511279627150756599594521439860287344290250401736703490128667038327870798852365881210992286249744193489788817092154296226207711544335086544991822773536840049111836060975614776459156142822247134566543973680084874074834413348156387879447632422387234517057012568800872460930826699716322418198140106727251224213216313188935087716872031196397118786536400911083432611181812316081770978715578311843179307057843258082347682064532209643880714218387602920367059405736900415510677374811213841449609951535270538409332145990310116214188157567506595974764449273052947577712954700160541823501882076114273787630666510546286679367172380759985256365825971395235449840301525903691740504618584412266036108630716461744215503622295984239238835437578416455820365271339293597030794568815946502252662422798614955343687285926398003020577371258327250411778989358492711168804717545921405963166035421044104439697498121818308531913575642981797120957268612439505695365704081742572462947221062278417506661860045900840260503501850359806597148933376966156732147488604929547057936678458401214059079644459851856138974677162690539305505727140570384299337508536779969304590407435070437029033363251516093767634504696756368521053134353552497720550212071723098374728078268073991469458983264423362990620592567212351541480390036631017490535335678906082161495475709082852776917274501131891160700163556684313101930312562148240498125246355749551104341185439854372521206067289364654983316311132890455516746185050402397740938134914294597998899359100748779126784597640053148580569530513266329388061353887082207447589447318729560844735185701002583406592820525405382083494650810709724743949011617105774499308892428136748930426246446798529849678998182735150854920690056911876641842865316021337392399428526664476033025619029018375375852025951059493240861875178317853433843952651486420988390014777634045906858936273084710495275495340459505854146004211354190234482343805117969888107663221085086003240161314516380917133140064507936587936265427155097870529648491393438061513528956216646641417479682611470674254026934051581742713507200734084907397603735489447387543960000836198602332504933664612150334311957438877466243968381790163557774802170027148841657106032658537846652106865523272547278566727088357578523397514100335856460526083248857697060980521766696443371426926364707372603501155424680683716571859938148257945673455573850419469155463224487471063893300842780857827454704690618527077418829997857002243627777623499019983665440364293028336997235348545320732627391073260868857846008387858436104979667681676901036497223027679695709217680532751000561502577878707845032154663993124286089945638616187875490738603176024004664137035211434811915076584237356948064636422553234320666000697909225194228625646133403281233510545803184683265584672684305963538650812022814746095513789311024188461688156972995033063853383691212830755103949861421033422913950217923828676435373552232459063625870941130773206511743426138528870207767557254119367211193365277444362366479593611360948670205925282720481313345092557507261701335297481591995373777315456323054347064839185136959203017787369497715111167897044231917096549703707001200239321417234196077535622088412298492569177090210099192088360823389406981011224987270959197519784150017295254723220367746565331729385482855649255010492051407197897785405241826952109345316782034434385684144469617254428132060111171180101268229580494148365778950300775300767167636026723588898032441202262393462411702665337477237709171583333670221831736492749713186944580153195591147960291122366869200382908689935311969233210349094837814073024801855401395040309233100940310215660880276285949689256134086959259516283157591816449529370988832598637306022626926969883723063480992712362571935443423277129652379800977503099460621296154375869264006430634199768395729122074385753719935237151264843238826033414505862374137602616408812547377219539738454205779363776668155413746585980271157434317810935536886964143135432387509316934896653417617093896557950755517452792134776299931523009464433489880103044258196678298650707529384080994921249958582405126858160704257757124611961201860475841712025653636917837200589826400172275849189658314861529703005777580644814185640915344654243723856279220328139171126661268333063264913546949883934636553687896778334677162027180292916819731085767746984252366509667266928702728779334927112549504247209447325785244014562308945547548184961490914641089137231122303665545683407096678282434452105459374920588865236995700377207862771042979940198502710973274762274181992957395667778788996650067767880085181947760224094857507733202381682729847943641326231589292539192333960396026636918704434283287608663997441501075793197430396722304306256277827469021542294866094531450691143872835192724394974421882910198188934302679496979624564597953319884711670975761598142406741177724978177714483039316090365270307659338873359581876302466266423029429866270422813516188650807376349568247554537296836292002583903032096312178877014237110690486843585016913594414738970292791481760982415213969304372846224324362724668653111231295473080943774492632471074171074743486963180173092924655315235505884184812702619911602663498122933270642860334546163938812516084131773173763893677246271663875922948492410323204910971636888834627292343659241828891320302342346279292461369747380962796739965090775917077970482627173043703530780620722803661989895761125338041999726974694604826951716143147429664121521149421038242531561051217599500381343927676223800390816576313590495755826447332047762224260867046364041268971622615060661184314120805996450571275039517903194668098154003859590147681253456228952563292194617794017471227332505462188400836450197168538297590760501390458979767554261753793815457553310934553272582960314254577033170927717652976778552643320397437643373799566723685769724481437295855933816939985731398641513393958835552169982614692201658127086548397751770849116094707348669264515742231454790248240352595575989650582636359088308619862871520129346169935147313974777252137968998468042258397910704633936881801588771536209050514406150639344435127733096627757333478427265421079729224460600138758202979004894372918148278093590059077256137965086492842491713373150221940080113296671697770984865325354371588292465027070973532157418995643535400638308359028780457915886074349320214388653940925355375891307961965575596188027614525778393446894614263568511994236031824184847099277327377305273872148923595094360482364095884494479478725959153583116889978134725802318375021439704902358796839876158277064744001065171589315306476269963883467355385644083144743072679282652571756840845519399848928720560717460209887041177099416963769803299464349780777629528523692148612157578728582556965529927789882881656321590641945498937884603804386639324546362982865949727993745839102134444260483277498755444558780809768666974258391689676775531468629042393300731291207036212116699686489990745850493124004061938511824720871260171254359130952950195378887196088709196631302154084611042260033389691561579027627868010831683030417650086229443978880973723212522406765058153160191983317434755926081165686268479437288696619105049367618173571397665055465336766441575084246472999219169305075021337684807550259536123905893338453212390043080639179149656345161871330800707871963070341496876254495746659469107923318541676338584777184171577682325077877127014079504106762636172576663214624707400946079715608550773035743617435802057004983553823254883538345238414381277669473740794810991221035554645967054758650981883498704433484896118837666279619649818242686288878211897735583268799432702861368578714550605899224468664873075504750866094381627527231965964936089440188562347038695008066638532185308585359183980960937201606988590605793375923583423113211885773507284484347929195041535626644337803816951243553203729279956443729637138567132744552780285050013790374900856864033938971566952339309882984446089850958557557234812593605190118389120104752440191038687744688302906003186767458787897821746908305730368410986073030880413513276497618845936900919046391958377047978741011749786199048458239690982961194339916181398607187000034068147241823279452915436414833973510568414678482082438043009785606547277062175631725852447053976029879447364617142397581719374459745568919381198802961599696012187853424012887948262536632746578054725439137457523057683147855112245173701191922518635409863780250946911695277697134100208104075169194236436415070023990376102716017557016585754290154702503272081161334011263715859405614199232752128234470499237922414253450156136530547114779406533906854564901059077631047677833494426691144501322028265787097385645667533739828299510719294920503916376506634532931106706212262553165388703007720293698657418329566818530273390676019689758803139038297617005774913179116248721273370365997387233130470141352313530347670739126388367440104037535491477042230841890408815368971786546413567127232192677746440187247184039265510238971933409257687616909699507754173587834676067914352000971618428843218505705854895582286452909757762656137607457687250328982266176103660183751800617193376972481473565122336614472876989569490133552772585433005423155370851248908975490131967434636166208076724135674560027988866512988458377653921848012318580542856310027246340227576571256237788642618128022284344837762104297618612127160016875996916646775938879904281041414324246974610160705352748649438646977126963108708099686806704904695659946816011497392807531048260679310722293659875374472905111030501069355846090411637535527767856094843366821498181335716823676793090019458190529403122344365439947258331739120041544517447045645815985910333582137925921487565463431743613032966249401907317121179308604868989382146662905434196259911565144471850247034552385045528818426051209982876510833512107193848225202575906440945154475911837939657467381295866780668623879659248902107179584413246322640077061218697380172866186449241562733712639692795875296683846295968410728962448964215468665521128444666157111213209884922955075493575139040846513964387515502583290581650520678106293225795978375591898084725515310589430644682286907605018422105168319586224791689883800501657190719985097853351584075099525713087090507964045317758913190710241951894715414454123573564296528680196650256535988829008651904448511566656190396959253749615598370186459286720727291783257442478330295758963428391129976382988935428052267594733338601208190031166257629119097133697371377451383365568051335353928842080241461021841300646789941470511184309962381119473694982601060124946146481429755746077344447483158285198394794287761387159559013434062678551236395090982772195348925881874231781931478032552315140874371121408270093526458834536467285431918572091354211811795129404532272253713469787806629657246733218630139656408022750725872736554767952407482356442783916461401220417297174037899800931002072532407226617985972962644472888605322619816539555573926352076598346929406893583892687061667894052787548854037818526378854527723295546968018764456621773466683754052383999163354674607365170251125803515363436826556468904753801576740436834439459384976893168638300845821375812405235155634890520052059707519070890316660326788534764953507996707036404696132739721479150677327090705500910911689760218701355135094579577172258212338254916044629387584169368944060151207494164041874088122627862933534097576720870953726248967876794595299982042174192452391171823179357740282175690957774695449469470228103135476029561846156276523631040748893617232899473935085949730226174126251738451975962337935510212388023946192821239170558571200435659683760895388321234828632493925077399540274761757071988890982422675636804783523751688756103840380069702119375835312232411704897769946943415023260422039689943349240475071772658083581538022029617374992846644672538343224964692086414298072873359903381911076857487594948085175905524356860385501782337918602930919862450695092280448247321035932395585350306352242825254149385292062353884550203126755314981991723991471904622430137879115383846784582111662796351860390412465748982206093808559984203582613944654807839301307496316226288287848321333041898675137491808973269436958980060816785281690570366119473613144166957581154627080106361429767614637764815455698427797947141289036994980256423909747531419938128530402755227254769544260741100442393008976241180456840655363610987259040878508303702492543280740995932247786633653697966302334252269292650099148938195168290263219992946601353916314174666079675516848201679463692521449793051774663357122172786077389204203644665900693511274858031450158743988360185776058060322674804586147317609073921994438779290699305032145756722199522743987118517298006859033746390066907310587238277567187462096960267189506712033071578642875520598482508922819123706652688475224416105014159810510711427447782005995506223493875359162987864785114451062407251073408232818019923563742022555703043237763102101015132577714086579458541389692913260834218576265942464623779231675071797320457391836750497162574330111652369950343367269179959217156634483582720133563359196703008831328936175987831813177065752670345202895217181959566610190617163411414162194267853115046671557829175277538256013597451891319462228850726239124539257859964127011139139661792835220552447934394159050243127074145444698498918776096302824080229006273088422699566646975372847403976223943025233797837744479206731129756488806242321964532935550535738571397588416679779922693657501544838779003901022759868815844665398333227998004489555983055714289157245614175590176733367652710345199493702737664787104574990118886312768267824137722981028549838218059629506859896656814228449301452655629137515796905267184392988759265686445711311434383021735626304035742130203764931414592922797303624133986211612696159794736400129754594605157299582849658629927367014827550616863200803480916660317155509169607091559211297640897613787933498538648539666064985422664297399775747882259344197325281429186123364696435672339410598968014762117682664111859096981566234188758908442403274375532938983582279868389787014215770885705578182166202606637478239056171413048165601447100735257695228071241685481400933983065529950263324219372019231777820517229096162857304425022074681430163664974788046406134235844911991033593155860100201723561537149686430278947948668974969407659869562089967648196845053060337163677855466658995008114496281507767082674560535002524343506182197119868234718457359203359201722811086746400311435911825214543393833740063363369777027503452459156871707262934496605170273765787097599619192484233799602409983699657743709680854316064698546343061721923706724422455259124486878168210509025915224512858836341090499302991808631071515807751174578972817285725906112342601867391772440217684679239816372278688336020191388315839703390938886729639494921759866709597853167562198466946479675528367220255592110434004947440962824091891331442035132492607946143976835901552466063965093456540734736441700792590824335552849251442151871674851829235903280848126024690635248071525077288308935982679951103378376676107794855974713335884113587480272384839811436782845791430502383678085859768345652957688074067282336981571953229578925494068312297947429553205704083270901088355267905748229883246432283013792906466515730273650883929849247041929981918393673782312187004687494730983685194158893597551601224597491601575075691206359263461695724119942392312021767422401547953392733073196940228847274877938358573836740858337794942640708445869992239080388837578531661671392159584551517667107611466516295870700028963276953265921152110865776473213362407592789434670490488542788127422228349173444632604962483347413242900199448545080203632864397533943199097220885216829238771354356100398322611868166157294659132937312577146692693315925025157127121796368577045186436156347570017024828368706437432179852178155256575065568050129465482220328836155240994058779478956777877867911677058677041493413699223867172081641818381224282156034759003541680714841597645213827423180321050964494037479654025687415770640606587261281141280626607809253896285457461869849547254368666648242238769395221836856893821788750628522544808711829441092728443317806841362789144464007339554498471686003284370624048154155508179497044135972898750664606185177875214902465295947407032097839508817820146819643732940111454386830317657362105472590149263480758131439750279636564575933298171762428664115280867401301742013671748808913573419668195408406493286939354213443924329972612392901261538589746350950782915824320995817730805710017786216324767234677443788637131494532836590336961805060468763526146939184384058852711465838282988768965442342910501532829163956453070387416314593264582376134145043540086302257551831853903062996137868450937419653580928771427675832800366313397976929406019525573287667648565884213214835028911114241448573865314168929889523149578737986920246953513530179363381989293310381129138212627741928871324677521525121986033158830396760030851672147018320672138001326833651968142844092130033432451579584564806706918882408306525234850421394864803143347923504236739851327533264863815181166553187513183684960921296339928029748264353498500749223339437937849696023421978650800648468907782695149170026149419037004365179756516698908481253180526941815014750040473204395865929640199774022533740585855486546019108599594063927680584787601838951282572940335484246515551895852515491156675226309588082335178772746576450933402240850225103659419788227520810043845365055146889859204233570864891267373888584633569142330319247177357962989878820555995133614470726334227275393797236052935240535524889220724907457770984882066548150799902110386190626401350160133709797798957889823026269897199905387211775735825343700470891631655805363050100340667278623535040446676689287606867151026920392490382397846056543780971144253905494583976235689483320620350227469209355860164862694048159388480423353266238869651485220010802837734219447889684657592207079815190900720544806534782223585217147025440858221507170162900404612058111844619522748463883832116906104171536524858999176871071406310051035534560594310260965277642039359477746170332259579467927647608689865973790425955512591541154453946172337691947956765822853027745577433278884533731848052673264778864406052338485525404254247215179693414972040409034759064450232629158941016765686814909311528181883713392572653543810318715995212505171353148333419348785664083040615244866044341805504936441099757457960566568370555471892631661202668439909152017429422729315048832083293040401004337739104919011534206352961320303536068700588288891772449401231451559773466069043947064471281999804913015530870308741384296176904560431647538637076116919809375273759279783897937248296284267559863774846936550816467870155160172093990136874570060709617090053801039509023442014880298875333273467397106004568496616038964386540487018184965215852500978445221304302127473948248237257806170444640947958590065567413066701215129524266786203655126569646425248702604507986192206635949088799424176723367314558474276018988422558357878256838955301667124699901396742510319345918349699324106756898618450828939599178015654736395327928736001364703494492563406043586511038481010524911812912110784105189468868890530783358804677380552063630607936294449544251148370082278593249511464933495309748329923780513184720350116745139622494000723286004395012902469903720516384386218480398086988967144007255204909103749573039083264026940741061519150350400174411632131680207022459066104804490416417973824844781141995437344187073319719180935128002474650852361153121621177002562172510637802802122416562026568502001532255478082787741546511483586629571011187626105380867837621121886336787004240439976865757649038037714808715075609547835981093285662839558994243804565386156745285575192873989354900345441091627362954072502564365977214818847215191163679318536488086561319423641493183011739310856345487702263692638574013866288384695935887361121932008547203982565188288622418913836007516015081951839923669824555961354294329202199282517113540183724837981238238223668600499196212143263694498787624551699802007069278386695710235382999973902821290242259610310366947655701530228877390606886326230149919629988613509211091846732500861381929662641201160075880109630279240035441783825390174497664510346436230143044399825923687988587181340364776818105001013723651116363391172706307947503182114343653431942107219613023038891349690698808638170399177154794414329078565551705024038951778357530519560685020283408416693029048422794934696336040548270181210799664461647834570033760882549259409407293585901395351507526141741338117309573305113601979843651810204019057489402369953958400279675905553601008891951953951363734857180446710868896348808233404221957103999845558240653456749018665149352216000548526491277907264272359475486237037197384458914826052224201104456949859088342899103207129828084530383697684835579714889081902955283858644367445255791116371322884489233040282568240080268589305354896816687617635767952908142324372952828177923341936018809908338316834853167580288215957594099904717598173311476256565289769280974462150948653470995162691128822099158349557623750937516867356676862138856171904723708344953005635199516035692884568257237201229176619049202946810825880402029932861561887504468959716669743120370150914990526643634909899367016894770857101752957444559505986904287028706001025713624674633767085621061744790541007923439143328714790925599820029082764466587772699685095419175941388494096879760442652862053515708600707253464060141216507555606169079572268495061402811155025273943783646475688356130097997176641870444077694822114613092682639716342529893642782907991398984592311541559195079790496463320240879275664132955404238196483185795560531050533935096360413194961694246679294009956806289998710618573232824366424670526792134340569244688415582473838638110984842726067550699958797363355690888382834487112251137038074008446430461295370459290864291363892879736324011777470165403095751082032945599869151630485751070792207515996855340593103841761443862219348437499257601471094756740781824169255420282715396476704906721986386162818498961270721869648306940323783368041215299540170654626903287108571266961709536600970562721730987358256833187212677355108129420843995280962356647312976829646774697242910976198417134753157634268932258975711605034047284050633855963771543188816391219047257620254412939523081714651324973830806354186968246939885072024186721737644055847159387146199346315178096737177914404075005514692813101393371179633427008404930650376790296091812958326168310920063011624710902147601701821803217098982672679499501725065387191756948168432415753924128518903387852169969860334680264353799144130824932941176554542256220263822439866430260413754819598665152980851873717928738239796712912714535312058501547777214249760054149760315651452689254512588282070614941241412200181292197847098012646645902347429851354908691225881117691683818638323791813641302169763712922113587525865749808661745282848092096202140334181336032454523829285905344398935087779640630392252804751298892595840172866166705600479763072552425710922284761769060984346523433547850504800375106988575759404683690413746641718836511748303428484798802053004484623585734998884674517231668600293180042612610026059656550628655075523479811710314806192302168293340739973686031141375576839764672885770479092925806771451567479423457163023128180295079077677045900200092424896837733083826283438033954648391691757240660036299195518406280324812903435712969126808274012764738675210643912566340638510688706988154014842321289815676197585628297190660010253699857820720412875339796234111435747394891221330601284554537174906398719684779077649201764932915198511673872743674659430802511068750369830190037346411471997169751806489585949803522558586189920045801104311432559050240632072754385433772596080200077169986051229520085714874934897173121226376129427663667446633445710928658291681222865481858719768161213381503068869275351463085407215234425266257596872540206884113677476922057635937549215723342429465986883094351203329415576250724265408921617388566085586215854218215256793765455609611577188429949783740853276724525432689983556461281775939705111178851073132052437796243782190034046147386727621733125652215725644846919089046788381552745879989448310594111477323331788991968289411168175795819295532468579544346147078855839392961791278259824320608424094044638104047082987222705244353998900737337913970978027337487043658769754150472494518341361657102448051560161226103327945963540018622264207279557944633970840533411109536804848441610220651990479318462574328014095557497934151181822179090803221164949534258129687129659681283468454675699458229470419325098334033031416358353187868817268211648904783696585202633061950278809619823611532299212312040253253918974221410253588410982792628881570627611696667636355734444835436438839159057925840278216338165116710498948260811817022812172567471588887839118484766736018081436172380207723851266734641655217231209276465132968427415436159729305525432567861815339777646736657237081209824965471599602314097161292798612731833405529775058214662476495168285699276766793707601544109754797906387243446535334075618525378121279307818426726428776650460142445061747456501212130015665257646997807991980477316622060907406086283961123354416079052961738677312776499652189578027944598037789132002934923893412130272306693659158186459095081290307716783305574559858198221405442035811795852078290830052106532005382646614044831588447067628410782808697552794188211012976349713649674977187607872542472841294512324566034412760654268984006636291581780223985332235749215755620274131533945180328670878135438663672893214735252373490977704259204499387380445739361742646014347760597773732153700712533931705855863426278623494195132141450219681309604721974912226987166614699564098653366177018726581165861334150001007624988867959231609814210242004052054163856315220770210463945296205052092249969121787957548416349066829339508776459171901234264134146953985215576719093033374497737466279769555699640887775677310772824916501216766649388473918796871573242611737964054282046529843950384474374363155570831101813829925023773744434951112179372342936137023670196422601443921160183697273300084069877727661305459421688328075468922947515987311252866967649698119504768369757008629923327163755552234297599880151496611653939615816387721740785674700564038483804118543904369117143613297823390406717975274518915265854239735368122401684883740152615268215873102660549540997826385172301289878812955541488031887976634984430234107953461900764726069612062372307975176330983365315397081439947063578356420097699198752206350852997298026232120367160096630601249996583815770039564122999124233336002188592081737637747097692108886145485428487023155858468613118591322543728820755374945848655686939061030101626869960055108436479966745448165579612188447084340570686104790470158011270801975721010765363891258616259964320368278884365429044570712854402175370084632314706230203217125455891089010986060853552841298012658826691258963870655501624458001414838887397250852878141113369762295351498821375185480061120571348820390450346620471774744371954896906154359185709587946016416223852849784429143624968682080160609698638004401868953258581789164533268811844257721746351102828192667773227556258862586754467413181193824587111976193958316609691488830629978286510644305472107544476631877828342590749442245300393147999466917686650451244147253303672456727084891085117359697555400446708812485611849933592205154029174109538001219381929986547116107100446612950069867232381043957400073263569262525589797852187378356398193798428153750981921066511527751266894920900711198243094067418545717287573318333711204726452445367729042056638045773621680223209077217484919585988533903731608853470994900950450485770730544301402148259136744583370711847940259508172222950194536414957047395593172674781744906583433802485168488356076598205293519359023297768181169903981375906483410723097566164522149235101240779023873439797978729012896957011280847375479133472828312160627222313567139760412176595581175823801279588319459642126696331214915895136210592010301505139819335715125394327251624089461613177969244187104920227901300717740548023393386039572356516790446787957672009872705518373128181233459233334965128424539208456915080071944822702637344476924260257527241733458921918535434458372517967382836217314161760757638557815130426660788762367036224536592556942840826415061676381932029967138219886339049234174166356935254654664389204131915676254949111585516301221459109712201435463138577988615573667125501619437178857341107812926833295167220549797046876106382610598097472075204492867627414530888948360870365314931649133364600118338204437926871016938828067112290511073952285275792805959366175223582820283200254585127638596650678580928751216668077820131465785940595737060734418043757460921793901469110772948854663407773125387312059065957217215299828203449997916686730009992447532948080053302720802429027252350667990808783317341347715469390343963194548409114231717740933232265560976291092850180065650143026480615012987596290217941025519385158222541084888793107870536408353019209792349239135996382902502390354289154365996179517817128458830320043319106500821148841130588383921819859877102544408895436981226928260474168720978520264194978309371472926825690836801306657819405683759073588820774933745874406997273774565645709161390523980159467869207002647515217834307556164734202532150691528210467514239101574502399091301066830120578711131639781010522453541596977065412122740336848581896581960934792313284233017307486384386925862949900297026013367703759857003866824636695610065373639573830598342992564597139530113427074356958358432380575357158973302625541574576078937163087063124992684219584865410790938953522746858535987165885164948330368097488124110703843783653607723691106562015888444900805578654435934660910532074796206277970430489469376403038158481041272193398142834451192897995245586339928179927874410115976661273267084101072282145267087095024682066924196930535177268324661617188622149644070791640697972305418411026933579092328095152542146699427213947228967103956760386623453541104760004517319131330600005544278596202267035757568580667423723321784293054559519329925442158224874970593977393879309174218043562494889230818118700510129801268275078128329061405039244257032287656174533278341199812405237240114564287429011990953272850625572860614183240099175462167386012398370823447727936557251750444045983956772175252983162463074559175645779915207528634926381433741730143371312463549078486377393280151683595817715175238987938612042693869549303612177335987385184786975887564429047601970199922377140632178337703530266490495970827681026788673501638328038304370640100481742622377588671532047117803636308567775389254695451062382646615626730273365240326715970507480580782591870883159783756852157203514215862695484263497377500805967052970032839042317976918995959172043956426868431346173805241111098168238225203807620118754327815286897719452190226803774362869154387125058826084802654880349709427832070580657579091951634859799276821081164445167915236091784783716733627718212529599538452979550078247355448965905253798542652916121578456826471044925946268250470596844176186873920740282509848190056191474510767191987215781679368931162920407793320372125612846354834788261181566145993681801558294581223013790336718354182170112903947313887910877749143583671170751999059371149464294295961910995187296821585542821294513380474375781311606236536966442369274748046194744327926713327479144590775658120364586458190983450118230474719869430695933053840217782304567324780442628093412713638768450746738951114607558263770224258998751431885518401530286765767701856987344068191436154011971857216427406910516829562841453012593899663876056998240593667176888083474308606111722987456639189289156597540481280684352840639315997093539309140530231152426697521383910786356179055575314860987474331144468750071457649553032072028168063413133142041868436945386204015270093746133001570313718334890644492587926643501404873476823700155589972502612301076915187102745345012814739258636135075794504302764294260204688564256271767981144520202657295903678633863426337986725693653543036977939290626645832057471438891649509192999255882705691350455612933829849132115293102294552728011978466868055851918436333207243274442124874226697716515650027377940003596840365363462028453167635978533317902914649296630626191429410288666469999857155174545971970950788379687328514727512573778217575006153898660173677816377102674914974277592803872389478128204274945336892536348856196407619118600182833159194038392140577001496571965093228526647678576446029545718157726066668317789937345659134536947528444884596769340860796572315634621278854332427843311118124542216925717098607036453556927529168608611583505668252429312440779913405199140954774635681319916637617913410771405975515477765799095191952596548608554627745562697208115836778416279716496053534200509408935683161788493909955333498124274951057008706168061042877431475876748111901467554412509570363387757201031916874879103675734212341161531596429999324789120454808539782843121569927313656975228260975356149957574423700767036221081806233821716255170176276044894389800828138290620989501866739443368371626267626679648759433786815042850682986083524380676825575208366728235095785434772868528098626333526698251318092990662597842773171149250252028101179989768131466923415961437242137630666845238146020952166280353977259128422028492840902634798609351892991920268290673982967934790445819492256595977630552127062137771876597018603429723397910086644513057743252049948174691577027568686272465211713404890889466468151104975641279612025335034204346564191034976528141651934504915394968986698542981454537173031635097026041174588347821822996933444584672033430833066641799896048882595012659067383981605368560901791906551891234818042184840655073614144653320069702638115752638695662406169695764883540267178829701662223848489256994136604294737773822240054429797697599610829280614169764448635168767623104788760675730512388387188583639201999322645934777410929032734941004683394855369467445481518623645032125101710985516350444284403253583881974965422221131253196515169653945070938886330825062899508590699747046625754058194486496526442977586209798460777527013606360653597005645485208128141683200272728318243472472531243755298830264738967173004940430677061465783367352754230146461534169878993924561799231401209633373086179740453799806229653963209693756860300631438787233019224837708956009934470201562791809996132484186271812556446556789648323372336843571800464602008552328690151866888292235825047166369450869250451570184521122415840547133172570914206353043554182025660975695972591827578526287243367616584629903054979474564750298595260283996132426737886804881820483601547758373768514952318800451233221674585450130123894012890821756397398449316598909118992281504140692663767295683881493366021771178779721820740163353060213783518078500288621427680315144093756573216695674909276529248966916788529677951072764961795604523436753391028023929436362537190499701086418571892640741450476977698329055297049502147149408161834681129957957690458692407870214937618631683020959854354717574318227660082940092780049466967785617754586908715760147792665853772943001675501613985291536598744036104748032358865975834803305142718946493778679928109465812336706421654257606333043929793767462593847119966839967600326762335218842737188446089714235724091730165972242931625349325947938544468382030308467942860951816011454845408373963355706924429649005966655785529905588945684782126891301580151456863979143463716643595826593069416342749736207350630038526236815227539347613814936957822893416927267686007322115882640478258936141402151184258765337754701642710127179743973291002094681665567778001419506627142932543493994739352541136127170804346065660452138121060207879081003978700876083395115777845480947967942783347348970576234192625490875463672260191651766395541866329806733687977976308840798060196906150536868802588630937154082685294942655154639026400588618444768599057582002978727803110970457382076330424079376329571659199986713063098281158663095833177308321226508984698170119642913324351670751614752244596848911039142716923644928467959031578618404884096513131181657017563712188199635507981548909641049777844228531531167736560550115449829682260601878827316724211457592208731987297268135219040094044799733776719763800472415081087041713774246217502274637402198681674562754016615169515837286223964562057538212588932005024943330815439721159858301789447995421328774004510003620116291255326994878829862011604149442769703531790874230591755269740435230488724211008048665094808213303757222098975581497033978842243047797877067988407795059696085806401998190321854804905552242373650233490972568782642792834131599182663059093700604091451059521720136679062791669699627568643177484562127427976826720447469686610903911133532057694655527308980780564653944329324314970119282569558304424127901904276698907421785788642571706793343505349800810529623530420050021272153323670672169831024471923738330421326308651922723901273187949996248090422425104506597444701754537850013255127356043041426374823072308652115748271351190174652760227627477738232708310107876196286420759809141311796573364772507152450894781626977682106492800854678974250373059450823041218050174597814711733077587161271523504155125110807245844306507675446084461679935572491509735865806269356474659323914046354823785650570617749831983663439714963601824550471766451744096808474601312597339387956020042039965686919860180516855360679937534234910415399624682401252857608468042932102013865819857349609206525111904573459892283638931160126751024831503959827218124606720700683706886616505649574015022707744290949685592620175284307906169524167902606450945867876666368927115224304648552890023960931695915529702749928253337282685833047510007828278650204078497467003765897131805874572846194103913096685834795059825522112944288277417599499987374118481270119509488311336482563545261874581497905973123601597804623453838067607435073785049177809139984028234579572650310619815242389924573975139462776984097383891130883875227576010989180517850503726586668060836904336476138704938423574524159699801721577005186397862926132838627489100906629842021654619273094454405067700125597955084456399093165530533521429988184641942185443481346371223776678542720825842318174321468402592518081426965508620370236320943177071638606546429549226611501229171989994378854731154602754680544643541737426538731890774182228453804199273623134996812420369761655025193633192962677862344569995488275407006099514543766147138884815467644798277066149551287418694742357369174919367913075016644071694301286597020612796960518613220234312736608087725811260605729942903973081860535843073846280003445133887336627209287674223275657374970972363112332277458157301197500144738770821627661927531324090283189315377220789499008190121885987902202340390999585558637873348970854311660965851983455934723094624616718519497145092760228661157358202312453849884271450660415563448949676069809090370681259578483973661392497780165016194384161016536119180918005677072394479265789151252404344882583165333211817749738328840955214626150510366845950471063663766156521110159238969047289741213616083017340662184463035830424356286345679565123074025756687131886193428132007656065714250922254996209150629429918443585143227996574783806304662006604391727482621117949749297574980049698542167054072759402361579754506189520369552587981946397089680956546744322146575355514823121766587676385440165347480049371243127580785850172728224041601507655872842001015119049879426947785314441758775832218999217281204385332890611304492517333461695700543778622741795819650016730424963386839102565279963121634523317779465869333057761898202361115667961611610085002063018909375870459009194252047461936542183702846277952776498895968836734755415596312435682819054127585097646749296584830557906906228608058303634580251347571277485438938483849900346435535663814564086010030655208902288791426445547939137452839074532231405176785134256722119197543065926724789547261339482118016677254465295725564205388958207126979296180871290050488917429319926023253471555319658878506641019476231703857346249294723324643127276126704375425060490301914194665279829347611908677345784780032821320635634613223318647547468102276196449109645048262518983624661842497813097710032632742855857628463585501320868276850376784342858074029760973825068658154155764493373641689725557062416015321670711897637784357791386275177010760292203565806464625896472480938127209722662820018266855931762521873539127527641668253417865924360964823797937473184907957841963056256593420922026558162847792916956155292532709578957727579863402518892329791125812749238136588365178346604184480118370395916839645502398928648097822985501031078472199639357283043139992417397781782167310201592190738126801242962335688462344207465232111935537332261228392590457529589858987201255774895044034572873476414201273724825924582020764592365112380374280301750806509541999417055256035579346851039282876207755604091820428411899130984865939782249406222168849320298025235635542003297197435326851390509945354585207839078964899125795607916602847146852782358857340316170500165693407164051223626872583632322507896453077284626367524547901891149012017924614294572347646750723276826166249308810929222314700316584782545526076883357231321788845133723017079408240528854153021510038896904235564422077075053277982149861460603935449402772272900256028829109270199291790695232606656280236650452607688162637734838261969371271208199414488283363353127217220290620516156894116592029445525242045880938797218143290475564500046567720465992849197337110246164770683193254708736572336682250644426417593403642996094275373793236892215693997304142822327960163681496147963027005130135420741735689377423431490779446006674914142322783962686474229351298955689888518598574082373263285547271255007179808437095480996037313201519878705639800067139927537049398876047631195119369947688062763733000402052692208863004356487531765935266685424031307634355732647733692385751163687406923303741747185063840544094491868165687140497953496356445497971425381016430555810238388835814457698852694556207304157302159347811719374145829654933060124541901920758603343524638240067956560821618413411350187412970973283394647354399848113212852864892930588472408424565707469547498487448473633608728875869726439549382303505279465159745154720167113895222532923116224832442405436469808843601072407722429857196717002733577334196804165298587948174479205757480986470441597682546177667703222132101172974102266677569970756116599939487142239562029826185140650521451135829634050053309379926806378248432107297926329577254787442295005125936279328925238311865186923229713938150480532683893350854181728312573715310740645741203238501964716365619443492299096416404975132971945475724248563560306613255706426193974858431720006897278187519746105353437709295149050598971401397652897865972751930304925676919140361632325665086083343652413615376856642056055581602078200190289181448316403352337111442221367828886862176467037975959047555837043588421038549061545727113407326801718083171580699846765071909044596215699663587960620286854107674027098294022119892879495548728815978319626095537498039476722219778783101960816278215068408950302191082412844933723270634231568353756807864998272757173040769749722800070416638897764766491486682013625971309493875982915234727929804181667287343760664870041133440455140788549995259369895219924308067355486631290092641294121845310738794264335825252142354773262227270781330923090246418439865484034097353191611827149246324149630023484152828666486214360740389986204795671875322028286227033847381009712226117072143232305714876598526678125150626993425430619800766026715243675590925385167428417527057025397837606775676596548249002821468670087294375829197035344149781777544359172955644964234597986512201626408490845912794570974525662412670259361655816645097350597848438359270863042689291579905210275502514336729317515751515962482219947337114834450242236484187034066235841574789379252719938436729599121851185703675536331313441831805792103638442643259626746260324861208025849369632698597462345110127020123719612265769924167695755984334745864469358836294229861514826063749181623760189534879046307154726308858392171487390494504051098253677844061952223887577463578971004562901403903420363326634920247764692906319178858337826916964336780945671112136190893767879969095305235779267657360237407877493710217220071121329944725326113306772407694543738726349126739484401760743808355336650859724732085767338637162614682531232723855911288695830554933089930262795826655120172555459189778412336587209790247376976908305284160134010540263021231993362035290418047338564552446744933883783726722272046185011039307126157862391716597906595856640964043903899464997863416535532346660544264782386102953011966847626829824841819639915913801414604397788211807501754295827662555712180353003849214493087357820093586884859423918461030631239285771086075847869065909150317475460312495956294963296565206919754843703369759944413274645167411984797288391273279041473955310197683278905545808204395899722320847399452054268740452798085458754304764044536703054650375098219337533951677459528654162164367169508826030204214011547192756316420370234814076514855794081296280571401331612866873663596243207083386553214922559062601360344220291008371793157185773865596406577810218069274057556118591785531561391065401595866172218131619586504994890759826663355284102459465865181075136735527838293668147861801181225956075347452751670085770276551187647807222562946923948201581071668363795506722934750165655459138577174670367564423742053492676982013994890418019236370743633986151823646496934591184958815063080442566700659330196452692079881176520757984509704909889826321870959399572210015832490353807874352225209885742525885533185346479959347860593159690654902937137871786382299716752124751120563403645160411666065957333267787029406208800221575228314253440982230986461066671707487912582830515778291539400725324458608956524330824731149386105372449228668797293764735714960567955781212990225156928060380252352933080457895462646505994780279294445839504221582341604337179946779101163721668057567917176527847424946024404667093974663693600870097161110744430489194624097971122006345616906421994769502130186052319770187801557877424915893451067679588079285331171742963213906766318511121891699230807245811000442516433703050183016554942603040522370827926721841310006632671857342799648992218929676897816938859422221022806642235258720758084410319511985045849512514249465241276624652712591554878772845713217488732948357812075894289327092871571907972377897544446973678681629645027492214500662992713819877719897425544437549656633029502427743327750313282745328453835063515418291906873390701517625860470611397725194740945350448752304442020339585588369358309016089382131662568813304517078487031651479846339977024159813618928215665736722577642651172783524181606676474668091381719679282316694264786540147384596602837832348881510494445304096242292621383614354829165213841155325375955844885651103589663352263076364999233023748334131298503472290844596515479747025019345003726347937378648309249697963546874478774201504851240378961197608946721652909474373451486765312716843568514107007345751600989579945757884313785108331066111433854338791803791376209768904881451659685969276518843789426209157219365095274077920888575602573689805858569644089880570493058631332091576864162639807444494616678408560261277343890771766834925826642393784173335261715231423974138132713758395610143707954462621296463825269224163521433542082674241582613569912180838531065277954344063660106428202055602927994823850479590094893212008159411513215477772266376300681044396412867506830305956171857624270939798330575820198046333220117989755958047732795829391714212118550676309143157026708825664408663327204477310570667697813968202623002018931981199426822408528276433068625666322960229755629260023718632895749987791762476863875218580209418123197955738097153727300643186122273052276661453069692757090786614380608958945659346051032973858664877283265105457554810112794937191108166434201764156799168885940663872148108770508004198206386467933455578114868965398891696330055777549702033607345925587059691611773904563708418817485447247072632890357792735962743082477734972794022799156479297261222102711983502734855812775311263738880783390196058217864046061681449993842770320009014839310663033962429376366972299962368168604499890229963416589634034851116310471445838636402483899181564082093126931064755672283327506257968038205506361560551364202417770582659779727086051094056073051585266909823927293460318752423054074585361099700884656480414572262253721546136502894253931113680008944968865530635108822068387072093535053191246662370388668103250385627749088582832095018444314719296285188824802217517499489737396302663436934904996014041514301855469614668083937631287398486028326053653452227322430383915803363431428011045629849955930974466203434408091142026545141721783855256748885106984793275375674834486118380278005657461151665636027776836550778834833671664646216264226133408486721075415622860874242223438119073260026960440732321799182760232325128915103395475887430499074691772530878183978553790535052699013115479202343395037924877103534796265046588564383196776010436058188522252440943607092968263986151140266050009946476928337051872393735439797534399600203737236747820902239759594447714844446174571163129121519594181540226308694419404566948544108980809791752270614204789335208407818305458634897725409368736872890258530050438984914076082292082128615287845648963045364597860032255961201158480400359718171522477463949649402027672953068159359245254663610697227177709117454535043751997641781361404472521880371082393026709308577995233267267513980989330906942785874110018060204349203399598510362066592350675593111559617926371232725037780591304820192512624898090011869305438568617942838967364981155937263200570833589386212911351652125013935026475000107325005636682905100217288907052538708583675532587644904350575267559560703607001433974128381158119600490539966626058079485871372484653419770224451220338763579921421869647965520289543898529596614316125300994195327501970167190557199424409753154473334639369311683705627294916716437797364670039011569625270705696455549438026666888362550717254094769990872398408649028179967178525538695406421302475629250187139846998796200990636022033386154305207000101769860937420299745754568253776772291788306879534216012253172635990153608973137627674889102692245892568611264354319900835855004167735951322127598668320759341493624296050199639677762460063694833043874141898109625267321680233978891961568286562276884930852841288734176872251835571546009085360508225643257914600882191989040160248778009318568071268126755434582950106934733649163615838212312987452531727557024405087555989980273570714942791439721408725675676528091319430858931412775145999087051548113488222991802348319359462978876494873412922735151309493385320432269659835376477335898215125414702842665492232729137079363852325781722117513142535290757203259570455980554589088956827764498399013939549459587424232884687986298505205517740657956554416347097063812868517514814351775356717707010096963091671799006649674845582248955984969728369440436282667188053576465082075678717023901161778388620571652482228562583956122271106990174610248325661586634606686507830330522316931098482944713499279883161553149989552650918248073197743335419208840853786320929835870242149172678267513889124286450275507231876337026049475520862222008489197839823658295130498445156084939616804986753864207999471283637601591652102633148321482039196697475015267030712319736924751256117210310362651408033470967142244096620044871958984527174560905440510878047926025065612032935122494785502824109456277600224265641422125450947983740039939645281999924990028771536053520291863142500430642263167548148482758497765911324272375696239952707312784356513003257377606610216273694444346164771596195705442327429817757651925190584488664335208139192004100852239957335630287734269687019236349396230988575615197481078542611614995056354383154330036698494921971100368638945084069285662623816293531760944300251454109812593839140735496163182381502252354281863713247320432970533473756075902311759402090685427062328159102166968915546750947971723858037850336720022254337048898722665155745636266545047007956315068629203634157515603183519803609502982337809908353360871336077494419800327252913952669319369765419655611233707818659351620342210799056565545244979157859123702049281780344421921469198995109646042597097267591171210200243805791480620377806231390077782317817220460264881128705589098639203994262577352378878396680993839429844142900273356626386949057147136091932953766635444288804090266325486993246652819375323529475530920354341753464114160618537641557145131670552413981510180729080328025896277068108724852834848141414715255117885185603576673068308421489592589553888514960237796094907127421536607561348972310974390296085540517477334480290733796960201914544791147781217997280093270325682435917292683743949080726382562149300093879019850072418120226564321963242221000025441833244445318838543881457883777428641714334466658033075681114708612100152753920400573362690886468944286151199373329029192568095887433910253549048882081955256282221087594815333685062842553648070044101198596034272008736594215663789100687326044086740260516865036683444382487462999731105498781549238818777078954164474325893272185546194472452483032065218669928787661427883111856596243863662349367052106700738545274416305259019912350169095099315853174053997536857796494425011859500000345309794639805882427058395160418049461627033623223459267227455078258469952261682842942532687624457863498426428241066996856872006797422984280999195483219373702124075221719832076853268799758097447370835290247565423136961503718467526371344987407054922085339012114790077113260949607379228880310991421646651622903952473748007316229374621893842854459355220538393823191971720170299393396393656271463972055687093759198402798294013437043166037235325562152555928596127567685656538152030590113083890289498988688793891419738541449820214072576417237903132881596492900264234770216027476396679251361213949453236990072522400351242909611513596496677090543004981800632545433563028076535275237020562601721242304949325628415543038307407936082312344577101160207617646330783146125530182076039830494436841974780075748317199463576009465852237061806015373297634648531516148616003436560605829802552314730123293122199832133263063972942772439809452006489734540669146965416985400424403953476332817269506937641126950857593501512978980934519431990147102358515592948554235583444806436425507200303780492776276112070637637378213205584925211251034303550583419575873954996785514682233561915025706470961003427912320582708121831382447751712319114532267225648444776513479935361011144953186086198966806134463580164497902494919806195618693658111006152687530344731938158122190061624149608842744968557065786567961253421163212980752567337427390044886435453126038137017279511145696926023020195347255298859539069849794028951636902871939077664625895151817497843837504844875752769596311727314926130340790939159717426013007389155646314734090580306472093885420808112987802777056721802260622912379449497343211585170470596535489026990373266349072784022401795625245627150790205399931882325221006093493442492873626395017384008007147112438769676453397564142343744375629479634759563142235472085227740659298019314068257129622259378215300264585587178570001203763257125659108369798505548904060072110541616292810129133656374271423413383033955675302506394895526456778216402022102175486741614602363479567313281895791214094392770022878543129101405566014303650055092468425128399140900410482106121997522624389970233595531696963873751983974908348353085559739382345636621416327211753296513618396277165861165430246057295543153648890384453187413295910049767374207529607917424473089918484524342218845256254266382321703259187787495083182590453967233851187423867756981559691986881202584259640890697597572136950119073240878485198894395617557196462784643232193471656312150120312312990876769868906520920773058165583288233573485892580191751407255233398995171308390138457210357084688449117786075180155522435423211318213893066607058966589883915455076579810206358759519560131916357891345442233058678164780926543561134604837624829195637146094996057605264383627391921029428989187433937616987779928443927542048972563048583616417178692676814109166957028837417382409505817913897489412535397312184752705990736132572559173756385781595201705830842860749261647895987058050335140627231575234527377350695027092955022663179679790146595575452550738151679195945149361092739473764082402103761474686502151052024986013191247942649278770222221576313920287896441596474268766693964605374460602613280629304169311579839293749697450077995098058309301085350721815976895807494844921632486955430420687667843459659922561260490260424089550410291722621281169511320840438081618359368599413986253854698722299238008649876511294317215316631081523871963106356844478022724655489781480651361311995263102475020441591714820689680323475903455493612440423725082178394449352148364448278657481959518177886726186949408483224712164189972487040684964158951982994686764315791864894594630552784593557909635961760807340133453873500854102169499340055872516286306933813994339359459552908800371524566586947001553708820021743587571117282611438029017900173823888319687117869736008968572613858569092004432297691781442251394607715243411112734971521727013266190772871094648661792400084191237728824688063616074737573604638266202825439541857177512812913890714814649407551178984925464233042038256387651707219740609275408349842461009381206938520529879868040529957892787858429510580681282768920542686257422823448518000411538115572216257331681703503098217518418895930076889139097350169903137001440217167799969411476313165034893159773454544164873491283436307089088815987865931730865402751926607867260608971345858556639920312278214422670844921312724365786507613576373380972842669216260074750492098111731410196758700426598388194386442206690410990571315184289797941906055282734472747673594471759504444266709616629534506234109700912920868917361605745487279476275215387479896651860024223271391794258359077126354569054362724673993958678008287566263443978121308513131812863283762798800959278275892641757727881098616849655223591568148029961261421276200209673851813826831852285778396710047858956300260027008519701542510843109541739357456450512050299737806933898286891538376229741316752513651716851964525717081912919042945999767488319669191713243107319700357899736037604457882857058014437683332621182945001419469771955522166576856716935990336875208232327026148649182298384167096341237607468244717900618657409321922015126573483136294279953057134407893977279087658066458157651739884404575087368346685256192203183484381661565924167948778214489862205994506752224896387092150515567912292488895571338494823783680474884384653357404191054855183180831609693144916740866137402348117929772344849564475282488233286665392820227815148531417858197313568385595925208209236925658083469285877961945657223585071684590288222036575070233271953165308481910921962095512678108549527864019123275235477235581546989831505187877812382984285746673366694701874986056231377814417528591484215101133626896814293351405471375951553057606984046652951049875717074114577796000041026258242068104213568147734064181828386252375920936426196861468552680159290827496902663071250934811495204778727829135797402507598963697547035091190237076975060107261012038357834370628787689510440150770395473088398913847461809063437022244533114845708852415513175000198755525016947986417347554854213804160795935580619236557032982708268699155143272351161505562842786721328714924225525276499795706061089995429987860796062109092395021374580248656330975767064043338939377146103982262471486313597047674054579179426126044419308785256475737695672527233421524538347960543364879871092791159401109351837684749574247650133258140223102958123333109854454844538384653960204175919699121199932300463618783796473312115810412112725587260947810461975692415391275521731771736166024292770547777139169159748853101408987876369887165317833363401072640312422655665407872739934783486197582609069205435825245499352423010960115140412878214726425648330142303160160952633317393735337451271789350936454051272676030436250422908715926704613280499397107034009912626028324192466571362947980935951794485305076610481552229088262169499935474831232165164708220306913421664381473832768441850052441723949297198917699705142352835547277835275434363660286701841810436509428203109098741502466979976106629051057667562923528952500023016526755745373148536457714982196933499631063444577946352269144473250104086505500833835572039496481715971844308302605219953969014988057078123619148370258899452697665570487000996157260342093284678084122654581778260280999002391029096959628766947556285794205537255135868235477465901723585026204634943616851125233950590542735438222437307071041552009911604253759658414614878855356554275283953393605089474542396025676968562945152794322049778499639502179861960535687267090993152947517687353146523624387675909770916134046181937819702169497649601517753257610403028476915004533488140370979819440090915470552571542374674243902189151215779763785846444083979764363903608731810989912175507561551404359960284661861335162926832662081555150961478860015812139956756469671897996246662516893863964592737100274599968745298101875611516642651224092575258802978791681173534644752391297856838137618726700577355442041017631959555428057887885511079048624499531982527883529371808343258566479167833364823549843458636081049815239457525264302192165512057623349859721791883475295770033949783922388179539366953370837682787931942129676064795533363229225064595190016610092684352530793639590601029758837499446500514655789711507380462692996383677155348318870430602735857640163577346625471487176672427362853409581823571579325483801391589969450267849910009049415374798889503102225891343476999516589089845664447399162845101844629469651039082096304391255498696982735801566309406864849841911208089435793143550182348392131045521849058098156362827352354087398074171732064659830515747360019361798718740759138937392813572779525884700650938387842850347383929628697434464547040834474097205824241255913850948464217975132685859307256715407838355597263762417614252718421493987899735277861370730093672708613205526936493296005276216360064157872086711441974865065278075763466699353138694667001116528948400762967038527642794363102806929322748786640451434836563968086938395522011978217735861359783069702758246626380450703443232494663369805003220935596690217315521481910411889745139048704443901665027589681738389058909495459511814262685660377957911150032432802723426484581212778277676622263678990732260818970049759444080486905928831887846345140274036867839065067153844951232631935763442549849946159087533496876623205578661053175961999571043159585615121309726196759551509507396053772714072100299526680302372195601632288952699924424438828435106819538824604434934875615824469386614040893570219374358893037544294140244377874308097601336739899153115247833542479259245549100086712360991741107330601721293514170861358405119070081209154269590322813241309324948534700307130844405175212108542369300098670017307766536026081415508186554473814414672792205914225170794191535782198209395274972992962319057580368292270439831094633191932969035100315719953024282169539992430835318494811738293615466474182634175439225318564578915975349318401121550311549414563992625109305939118896331246510813053020326495728719870077071490120462801974268069266405761849765024128188507388967698479072848503742450343222750801098701662957093453882958058253454014859117056026548981635301299260260208498272550970459290584846253370121845319863850580124850027815555370496084267619554336393647021481329711316325937328394407143501840284107034547270714276525080980769625244729337943444991576302396024526152530730975719173662502448581869662527648793772178460463477983138148043567637921213767554174756511378828184197210082151776489747907752690219512913180706125161028743228757892645189883869400957152965548857739902417953937390678324501850603841273369475931669970724288387935328107689948628557790849996742034010779053377566867493912275184871441742239806559318824731513047573081727873316329794648026421574496449494159681624307278185362781380817341115739211088205820794064188683944248792860637565760868032613090271773268236394090082348432437138545004423964681039255257274708867342218350367582644052151795186657484185944927746685578572020575872873063294801074794024795011955791914392550034516951697458298615783563144131525303428080757688829951566427113255717146770389156186883037442582776760738708317533452431545821286225121538881666117774030478971361092154754777236990904790929791827804763475931317300370340929882483035454739463320956649434779187521883624752588772037830346925536779744928319780331632598736724563344778257970403186013259199887182274045448348126572901703284343354845811064656469788454338135328968698609143900218380881578233417693139840714731173767691819470589080688858293383406512824346936167164380101722355107339785384758532966173569108256236791840840645245049498010893741144771961350088135417802901289697598167324296424298949925822156024079691698503169065457142749187439400664039366474237197449340414637212041233938900342255061612785152689280349632893205001730735810264907390760610805092795550214069530894256774601043309049329272126626265436099686047538669861249884065084392122175813618957853496879206950326053698595622255212528971267471156150134921944317538278636600909076855845053903326592737875189892284613568829735531231619011911551808257476484581847597610270495972909088803821801252220436083221153469993715099577356358319017100842520126693815430615658569511756042816846429689867549925169193526076239257460676453545868392679523275781163102274175859553056688502895903330203559514961996424456115891587918474755139744561765761014283508629761737547744572584150550152770972658865402399796114914362919711985739754239236803558118282942453843639651122634084609996520598074186329641105039500574465965105146399321203982427561369886546783998715527830858282890921557716601248972584562523433349224481246881644575942405385530953546183539786868471622355663434613934771081836217840454115601662745655328806309959456400044645388745428521366238770884679535269233464065539415657219702234323884391552292053411061173508413754678427393646494635648078052871565555398357974674324143119060796244888254337688544424013835005910021844890589989879362753907074453286462212295828239651263032418078326325728477689551590761743275184103057342590529403364225329794829696274244752610067688316788583000042093348856902389239068242064350787778124915784633074084112087441111703363890689659969663901622051378793339062584999271885458540827298655485340895872861296300006617337285404566160482454567925678845785729669525046398601888751205122429679217629811435797612807004075356455803434632177295191436934179588979993023433003591185474998006841430345494208394837147532785077666988998278107259252759616201835341160188501930427078594794635597639458302278438369015590102843994946982706507354134180234634450516186489001666959993748722111933315002762066826385835048627805844573275927772134554123927270671337289326518153658841394871191526145184911341586197913273598844336827326010891552996828641438338097011696842249318605371464235179031197556697275199251605403175058594301440270360515847751727707943121416189029891671369915120169236612057225355732587062455256403359100389490243029885652190535154580641802824983790255906344888127888035563359161273917001839539529987253371270673246695998821866416826751850336782018623820008842751106429515584391642473489349297621101250045670239840335839598567673339223630686429097175157466802227720285835570531673471175968132197965522577700509775576335956397556925615674354254763895477716641568223388911510824980014372385390534562565499754691107698740168061101799016829265419408456881868780345186864723531557657099195616956909532877359770741184354515635967369440909566361876863952677609120860984406479318039788936949325808647664762676088044773722629634630823324467866690102692612559524569419505114380681827154354180560632456105874246927893787325424979772643128929894694378608560915735813606515601429860541010272254987139861645018008532527107559058803415399197128086654350655558614747943089881993500438805263549405976837004128534990136642808499903483118881876156011360423899509943407894189526495754587462702771791553980259954410248588412116242802212995327551235662616147679183017451415238347047066599313011158964856609342763107086184073857690972163382119354645339065609886674269274384823464536523044862837842066998193974045596956619808284999711758935540802156183873532697686250855460915189679849511231546068386339251668675521785763073665376230896347263504060550686811461424015021427146810982648320269008763155581806802949749624678104001376711753759568746847979233001567934461878752725090180193062483128076900182833421352245648575691012329999345079381093334936331945175993577340726602329561346945577852493631939344349265314631757477048611506803185833031547749668849643150462454176950969998522219056002341842843650725937741814171101234164154716498573044920527424749344045283968732953292105604281482035262378999973472304695859656168596163497265050863109620708211320589520914589850285437385518323025566235132575196470096110998187700669288990758602894034735417452234708755356591517227317623545654284361013551165358272493209400035689389097125825700946192982020796261530656601872128909696063427192894087923750590069680671212567931291448469674869962541104973203523093095598103131422294667436602189958505745385266057598712104848854620130354617514592127418443532281224126253812967572382732098369370312969960985733252468691750692806060318827133608467795603510626931080061600450779554715460934300819968515998512442756510343629714738232841615214609003357741004641092612665724534690262316889387323142784980792086222042540514105744606562025736379236769260429805209128323931036116238310340088311140570255084107011879608843133104242886021108040386513125852155495358709049580567784602410743730461195366000444101585053517155409579350544796477776657478822258713138160377752070476871283832286717087141499199934629027332726713275603048496984039158038473722825306514618384027887063756520878396249491055436104019594353706046830113009484848197010053529296262253458890706017595815434015374377405288517123370934194476024799062591669417389878566864460186612910001757489342435934913164482451139943519057741427392664667544497372889767626999701466081768836288314518237522555518491052273387979642680115332043822387221460431294516060064204464529731540071828321159975497263784105900309548457288830721440046668230193689969088163703732028816756829274944227944114042615426782132714222319571646774919224388659836271174598183982852096864608554623877688717426673077449396047648358787299124098288251063314979871533143710226457639670856839046586819918665704612606237770183826014265171552672421432929439799247265772118233796206647089967681835902031406299284851959853731061086415575159136756597799983598351199853870645400750137482586980162692774752901297630457158973601666348507638877585792101803806656823506061168672207160198179360744930658300807373084480311768651463263743283901235094831183942403802629880594567852977010446927580708709311398925262082983477025952851993272034132440672849839554406253890532207339360660145819920639672210286735332790906596836316666308950541229082770041033193468810909915970961330692886922673150407890057065141945855093630678168550727137457486205964986963208534376459571680921811552829325048551633124941103076136135413150567712116451165855868730688217763407830738958688798194154461377511812827284724546534943948930414544954341010030805433092920308900312723950175736249733007007311679288529415630539529422414217790162276549366939853410193634946848178279467490208379808858134545153394816682766572976297560708391683145188257959645774296635530383666186241427720536874641952751898288759495124357922129056322484960606552394655476160008118429152078335418031903393617054997283807012284863309281974188208329617186395274753468816021613476153567428627938330529957955580543003785053692533955888005442056524258493866387386100042659187997584276489125009083746226047576806801960115682261145824416272207850083291086143080910921761212605840388590672981807633272166923518046732354572368435864490630228436426648992661320352415059642447988978212480897106972733826819630619225642402567835202949248693723999489090568145113069012833666259248351768678274495577239576784865489195413698681716173647050343169633241794523333190318569363839178151812372620188094134542451111515707844544105384610631427997381508563661655798212539353542227293694953275784958290806954538524995074286485613695125797138053329696984114359045491343415680233097792222399273014340709031466103607813460741382431946344325674642883295431100718193540931877197434799140266085589200474933687248227976724733890052125640744517089347452204521289529152947867871469843738200315724187142394408007740359595672931072351989992253760782373734667186009777366236212576051118757854803839666396616352601552305022519587488750581479611554085845807827824685083611400965398552471709405008345291794763558563978811137883846138721951851315393787415157138478266903628005491591514816538824381358860703586400311891146299101089218392612625607063841657726108742949472093236171295739688889308195152675409180380239754543350100778744349450919016626433065857665457692468433139718495873972918833501129170223811104053312619957143124939724561340330065684263584128708093401588770625424743968919552828642789573877118855058975362559116976121750098489945641484115382194660867883055197113202368756838907977209869637495275355138607924343724657174808111279739115911406236830398787561489481079942654789126471719694968759140215155964764468190370347020324485745817147071071874677295583586906469292599043293788283857602278892681892980096717446927446149286820153404793848022531382614165557941831356127402692470400097670794837844168284099686169369105173111526184229033898284543175975972093345355126269205278878147893960198719981441389969750993250825294562600925739545500943688350567255983749680778448520491402613416159343989759514760931479177019012294051771672094948584124773302448709114660380564525636046568770643751048959342035839033135467960323998109933299467788816544295483945994108531202615609272453687443773431142984704138885471098762056726073412615886910013164469986818425278436289645030245013311131097043158128285866992186435440124562889675057868074044729160236194099242055651065156655798756886636193391397050381631328199404820263003400114046056635373075842939011123307653678273781961510134656413660104862695487810710284467953623772586025756463150636641330651492251774284283076780175853418644401039491077147882829960027738345063320502088045029806903952511127740270023349693531684079621668744193278661347929077566308251940178874567571550253679922404284387279610842061183262914507635852372601017525465617437398110724085161289116147159861780222961088981640398132890405080141503950086718023200786923210385492224952233925846020423215370477000490927228671333869999815788126555336401764591747619153325076123106511712704185590365604142067527035772785970522812408545133944084536596217181487850365337808014036169004225742356327417641697115878509983704528095569040022228514631788904505326704880918388359714370788071593456509237706006601528187703875006858049057524205078929427607656461647280251718569568819954391018945083111970045974499470835577666452857779955719462834099163896463868266034136184087451613881027758958718029062968690906453625220016563074289537246623935485910850476682370258628791989385649099039955968170536299541813942524215169516100945993369019086343158976815708736154210848172534826269300848159903685488235334752424340347353041977189959608833338137642972888512299545540415072660403314631041834825546388449157919136422327695167853350447724279627352428432983057519603959483591758188305817126796584157737073835892903837644238461519320224005274412667509217526986948141301969379721716535763567351501861277577941687326411521780636335527105791916574097417303253342642994998501054996345007389412636125215345525341667344673450292568947197032142897467305524188124652192397498024682374669367501042454996646942886559856577553244551188975066002062410574993850588101797948255076849993317223345975674257005481556937223959770746238033739036751728978229692036465409193236415889380436722317791028847229216475556058191899970624656546966350691114192501272084285328979582850882426922767946613303845607816851500987200456363759878564290509678616831175201674936050535164807112822214689999065854216376867194804251101851491005417130327882314783732757627663004625549128453337906983424941904905125169925471165019087176149895629658729581064459209142874665515010585152335054353394522070052107559234779487196883607349288063683598870361429095859938251368957620956011060773794299462406135123469985440906303028543042399715818259609841659590625977029344734140961802969367765551579117645574392307632564594153148313187273497024768218692560596402549628396791508543311230149602668816012632053595677037045107639375504391464294787769017228677052422407777545623848236229201698189370639550130903078515299790375988619384136147842362601619237204602264457400972252536437057027654821106622196489129587530507657393721178609024017095450726990438157362109100282666445025264661421925976385458450626433490007256281502770055158405875652704216667110315146546068822158532308304697926667821509669703224028483615478641179844960368625492668119688834992985145581662018913790751998229929532137210571561389256175013737602428739178849013800298374287756494529769294403066092931635892268410221651093082768647325596294978863431272621469353999295177940980899985929863515785904521072642849846466823512461695821148908453659406325319163550331565198760915916539394117463585252912369848696843374395543179085750841975617931752117638587874271870300432570283872483053484930710597393696092275987762075455644038319180028490841496678445462112315731056234817651339713315517205639159541556775545091146444204749516319188005495844692544698183347030736715830590987025349545616565878147470724841673386686844570554768839996910299643075959116294757099555610131174105338100586288013856535127359121697954849433239133804144743061626516807812461595609186638967813151816773394947711616372233382852852265937254191188581705227147914087239525479560957685045953234760464239924526674423700198612454926339740996877274913472606921328012144936388040801900349095128634129077339657478373582585393333885828175274067592499528486337466515320362426440532223982495774094161849855370937131431562670483043899520417421354487694735487003130579562072308946243011942542287590263733815880507848184263121516883152861967868766679004599726249211103712668245441089480101595114946084599328502996444486067334485819566618495823665227998982649877832612154509082762280144082583013529957538038927552218104696233881614638777186122821873519677053740335349303668142875724361300221430225940927154095454466360508856284529696232760005177125712678743791467016313003996920248844078414839042453148428710794002412952122092720321224736899514751025134630621317540395498064011247202240101620614438662399236910812318704999832971946695914410436113286778427221917103850220935143393724605957256462799746638876815045766098469544047997636792819331246601573921496047866293645361808542639902523061630630827005864436853581867960875492860653976602827511871965412468340508110198102337043541213319211216522013724144453452887872249751349612806734627922968424888494801698032137884309492025114411066084651599261136913200394273356883565474431424223060419454292199135714538230720866759962307347917197868834035850102331683716640725894047258152653368757856416634821370089862197153825671534608150652603821745376678957218545918041897258919525893710922137968847047853606691956737322457109345969093372781714135002006432481446093009117083056024159224887476827367961853203926979054686169510987377459218277609254272260570387997372600659092315097382367477885590547946464021560441892801854350272542595247117787206183273780924732100783869881587070795058435598846907662421246212406573749398727762850907256073792803520987145391336418321623828282147564686921591314059086184367180571503485187287215382041099383954011345202580566657707627193154291473194016987178890651405664013021639670719109125452275049727439137310824432891055530276255581745756729595743551403117850433966114885947322284711601655429607086283477382189076031660103331261806863356269992478626656190348255444345049184340169911673072052525056966765112265116013209312622802067745876458956863588925291610138490412334460823052199710649254764069795752990536607937457330395865045769012155337138042292471542619236106664860196574753672003975303007664937555534013011413523460281782300449490612895363950003396247481525978046380687687698904993289424794298686190991567917413416940774749820043317872174058281282764937461336119575601026983741070231461032506498571576262685213941329520072834057956411104333964674268708155402298224266526967954036030499761595671436638992167625393645266705224373336393257673636575999734807119971042356151644727818585186465540416798845378615629318581838327770168403918144876199727079231124284767737032339524364620290916581968646064338026758825837574464166983562435945838107258570392125123630707807595492110843512862877094910316130292430239216130396551691404811512234975865595038710227952145347397651976215758754720980829798539843000693319027461361326390009897360448203539446809024307704492192240724858441453139664464328785558413786867363880473944856896050806771441783941636269342317426154649242001037263026245463995078318427725374759555254153777048261821292465629076935923343125181089163422003306719248171143042925519876598176128358282505984305205895244001349118651298791674595065109903051918218967897210830003720770304562914240258863951689942401238529181485637846743573703139341453221438924289309331024456456040425826331527178245144097316520988160560914189599916097332637507023142828370312825764617825520319281926029026118621303321495778301641495079937411894970860902653972924584031277429415181661841802063330131164671206320188280248834396278472636052107811603009416894517542345568189881263531153482454007493994665291035573845069453255428213598229299591274492084502510514166623393630474042015336299107218719571241896720811840210609820129955143922947517736595961409016421195104197870166225388104919633553677693094614821334678932079011008725741713054234794290349822542663907497486871067135557718119963304365357978067777942236769958584824559757259888476176751744111643237340473462315804556350991664378363087401673481732328735678248285828972688264223092627732290424021723768568575777099164273036587502252418343335345094651112289847572993735391450566559836742596133215119529956764018964933566718834602654184810752284303723346566162187860708867950508688019207183356807568656143478438662323834678222879251532517275396866140622439874861462894147163203062415243155838550788724644081260868820119110328504507782023820710958015821480306284973195379178561951092640240981977581269514771602215364944323446052109935168294368678296549321965776768616036111933908793379965219536140640211998639512995203814009729120712955091736915784608405137685280037416015783619562179328304565612024407765980860112185027577762405032199646303357648802644465188930764588447091073738718377772624507632805966585317409223097793430067593502485778009310600059777297619419884360062635079943045641723044092622143356458501553154234059539867450516482557680950833671898155731455688232599685837584599615500804193524760158972703167645171090010818491044813427060125858068041948388119454315361169677667092238499850069042166414852341158889461844417054111229596857721294916106693008916541282428787990924350994563870407308347930374040038785172587307346979533019459605357154995382794429958393466583426089327843916871323535581281129098099666511729616748359765825962403493468692267244845706897141205725024359845066856328503465474291575910100246664818761649892612280229640172138875874339951583110079599272673782160263609568368614208904404216592343918878128148768403415891532062329721529273971376773760848427449974989992420116931107930936669547456607818075261849029449380943614659913879287428768586088088622448962549437142464086556819905460562238794741970873354651361880359470657164884736781043266207376914412605055765033018760322396671705037974259025616490792950700882082108309207427447906159407840418854227809774242449790174037131667220852533517975927801535079049555867592083651457467167269470611053970386092125076258067073610720537511549281187266241211303392390541995973270520972598719447467348811397614391211195623636949012676781872665030765161302396659785931015459905998615663027471909296170548294609011319280900528825897326512168007820785360238590489525788363150071726775427500537563643708469784193198751351334584168102665118351886885125687670835842465897341518104013265358409883064168506968056731480913538824098239152780590237005144934160150007402248190784628470128422850092370965432119847701450776559310014321991690979607069877938544031012552927772751678809301598150348488333368474390664172290753028643950090050589896479797244988030474842721774003710793136621986828164066616156641418258085712124185659563488799205233356986150118129614068433111360036527762231343042324204891031606608572998687645214690294672775081936369406677199387846673545819513851477041309895792187213553116379904484210914373545524563167995889506134878755134115065983343799893075115031953209262704630681570715491860806970886483257215735198831211854032407313825918325512483384326231157251290624847343527685945773253131954751438702774324889556892299504880822640229035012905049907157482004652081445415999116311154799033872229954970601161641183984800803700321054218464248131484994093745043577744267573265807177717342189417607120908013080913419240300777057467010100547939584481976707407028467417103004051338541576429681687700340244123715960806383658506196747010587371972658464332820767052713657059473753887988594831698939403709942909818067029108395607571694328540914513925922066389494222203785486345527162851811187012525252799577765414898275220628108093479732402490363176762659842121430746774737506117532553614053437544250373330401066757411982081607228164214569229623135349301456256454652003103405725309635797490603420626184835685652097074433853185779811712003801149402811243290208258251184985092532690076371375531813121115277187942990400905134656689546010578433816400320491389547676479702926527343779501527309669908634471657544484821420457038770939208775230749808304011399931926458792466501491060218138157815440444077443715738009710839984098218260896535165703595174729747147862798887233147716528234832539279888236624161525090103150691420921054200418089075483033344851072197521735633677637143343018975920705040331420811054122368233454096768121148428197849457199744956218068635918275146983516053452323552403974606051192925244952969320455345736365917748955165017333859963369207126719671189119111275304067575276621088207027790780169444942481796585496997743846758382876713996189226433095298171275787836832536039547533816968166826327396384523506205845064239757766195967091543895891350097980504644687083899708765204559280160199135225729103244256688903751051408028994178646438497679009417559577870354948905588689164097652107644449851625920761422155542081744281841946950629373667788877999382036712296836572232318458933123956922602333546489051229590505820322761948391749547366904430530141750570663695823954719389606263078479556827366176903871132977782188525888414550707387279961168979686857406738256400203288965165688117600876282302954208452958236424821732287399728550280936924079997726472780361410229859012173418859210211887241612643470603219073389200067895586076650378435749506238247855025560883432725772170425631293716055031260472538601861907572014504701154059520866658465046200740338482984393062340574449220390443556974965003986599488020700590329121426124999529432119042619881307523022070616163752596271571192176842833076821792616336947613924566851040044506922931790158512380274552858614888961834530639009205808399186197688374420754862907442207475197324657551256606495960458085658410377772437352893418088649739022995567338041894720924270155320214002653498799947036359407823649005293530032332535573188362838898823824931602979774066481267060276683138187738931833114227035357226663106955720454756539978529035111641800254535649699117524258907040335090971218580197733064357418056556337052833170135245731443296619152248982233269805014997899314058164871515479300729310726673632171410709152397836514128813293390191215413132447340235002345443555851272443364977526345799587921712907473386222350112654079096121823840712183414060306549716527412563614053812300421319342871904036530212336061793016208389949967921694975088471458681624645399489116628424322857200453872522674773637545258821686554609581655748579184688914145665201282701047000353597495279345361687096458317105962060018654226884527821617279506632799286386865811053014795555379239403871529722825450241086059942450257202380933480115770983056675238620906355259467661080329178425010707170841117636801904095035494726972020013802911707048245925454229049551504050481046274150177365698665454941599441339953329168043133794324020176766576761360086608116494891519407919320324260964774840149678882517399300245345555264958265210279627157718158666254522147531751346770783950115913477096343954883628013431175946565104239060085406129578393282106490267611217746090604439124628699640632165452778195907374365941550641670650397896476641803336950637296286621826862429683193548342687950132789769691750003702117162396056754406722628686588186404194453817800344418108860115278457001071171929844495647365267579263221222676543186939388329505887270909849942615673587255713342191610638318931019602856760466945322864204805778610742193492480765619858045344918030212499951810407432597130688861168592292326139722496764475586035368842410882806505755976008940796554245144603820297332621527164426470995228467027382330708824965215451363358951737983730621544738555857413398571678620584104108259699205535345245342649122735680798424007624879617865832370527350642992155168794317585793387480030483660124919183454530053069826832630236959609481349925732267793054708468123379808079263415624209303217466088485927318170383292953586648907066669613080974501527260078140446271061983443452269434029521742385903367077345019228298783138051695616682183180116864126161901193816128976207120837735899251642922331873672155124759837419041329152163364886188388831981837685029776281806157458434172623715570014294185524589777421050210315271132294252863775960180818014122264710950504930901671977580049247886207846042830309281021903369678716005376377201284372294756247668412874814718895549952312129856460290909444015172735342680050687125285474233123614311056966607929575583338376666505726283791516766966770559570743040357142557873685541853011108221657618268409536177551673441937551063967292681795273487224993151263136308969964206906532015421932893009108398825285611502612279873049126403985645642871817578253266106692339136006824049337396742161877070397801045356252269471146313401119072974236098188125095163899015056979792433702141721318709678879987970719064870345869190693880358484138956250664446304201835975016417291765889069648160897265876532114494664321496728083245646224374690369562285953191732006169380508210000384657728929364434626559749286611028611693478004226725702472588303487545317737585964238785810963884059645338042009712699469699900315233958135411609474613549283262622629117081646445074722767383821386212765384044637100492815596674069050091245440381484900113293285315105121370267020414597984442215795004904732968725143148226656266513870679985203155634652835090825357427153304345497765389115726949239885438343329485075043308307644919294431866986445961554450922639031205459661673749927697901529190422803003754384698186296537792067947259485922019978390810378315852985508269928550032646677533403298228882179491988897952287796986885077230427950341504772171720964823488549243413919703059865698282683619288161344597907712287805076569151814718222039116206721685141266759544123609020523968927308095185107992238190255438467228479174118944520947398932916410425634334900930848359961774650212750391887839897215225280661041566407615322785663361657401765533410115243025588406145436552409875150579476513366849248640863905490794597647742039962450016288745195816303004921485993130826920222801065287993185491584887180064676080522772288687765915149728064926016934939332392683671428502194160906376952457810991483541622885943022659875395843366977885307930244538814262535051750244523599837153352270762884912160093358052910033513949709220016972044811200958017456838655178677073040770701676528016911432530182755626433179316215320451550997700586028719675196384307135651592629822360367425361605823894547564448663123626548802719790518372437771532796102307743933662870729262314318860152087879837390024293656023713904261943114185975011376230705181835536176264817188264781224168648554045414420784688707930448602811056590283021049852038792198193876053841405297836049572637156927444919371551601153141180566010605721608177766646292910130412953129182999044859027298957016067157025795345108314663058536339759686558114980430792078090309372032479974938443909364932222193529023512172560552540270805739426354558700813609825541299746968744773684532905041327945110445027375067328333225663215681746031252499535983591413702712657452949132838612305004433240220718146585661677433901329394791949798066606599765497912925668728211005939453941190792716536316865278252845980844414712440232382898178700858592664235352507925084143771178620797102311520704036405205064775173137081167405602210672377394294195699427553096893437278398913593604970031507577799350535953351137490820887417314177953091166171354768612785088793773308449336328402442415738583444163549930661634430785213469422994715561620314800002720604469036392348278618335383328040041475354314736504072065670310337424296003484827656625229475077104618510570690649536444048227118356414595840917398347092367198942242882439658228245750519110779986364709712231851615602751994500871938442574544461205477935801503399330920263164031912221815548511199378941058944107592219205634579378636858170354906041995552052047756552971498609009657495563745770319953869064687810826822541360826477358664608279126413316303680972320888190545956134132686682548531468561140632166755800824273917293187111305789724674698996130178604202596536003906198088574691332839396946218097726556707631527575420848290587808078783207459319632543993137803755765426355365765039074266797773523547248953532237066009795845192717091164088583905801431551713495951196089612949266477666443463808214916628185357767115894115771977687030373091200793145754191970191558810343847237635472213766392332310428483207218616970529129694853265704659992059772815453287450446102278142827136895334897438788883179904299633021863116912638792117075131964781621814490384417569624418987917698818564394699521342469093234823735298126478835606417986248124777932395694082931236361230181841751222197374975703632721516153699278222343848265634356244443809255475397052731830610063949827470428985610088380730173755216233012477082735632929668605788395712102041188086027826051793222374296959140472597116259748546882963632721317432157131481689932896646530536218154930366798477046702258444850517051605287524970769045200434696408037442842286759178601978762844028648032113485159929685539288122024565812856366841452901007789779172942559177831203455167974702910840114835282114581157029532565396655628626099330445181398617944532446287430496630741393833607843275752468913501395786145564784685276835083537609980258122927878322446132894660020004351381255997463035872279335744779529013992147860534087916982646139056742851751092946343695531457002035549299272027262245069757365665759682552847914623200407300157872352366972092753369738675747515174096461602078256086695179555897548877826661477435587566181771041533344651012072318142992324911685270096337021760412250286158262698903583381076801080174502400951091922276362959157847641711521076284827477360334682644860939828026533335617521758649331311423711352596773219214056775868553245307644056203792119756482546211857315210935709162714818240635244447432747889309230610842392509223006548133605277092920213084938995228508988182120056236796423015423225415291240861978952459103120307601033834164434697278742581091501479726516457967731997979967024204519594709693712726926879278298550348165651166620814030383279513111473269868646206943106468487214717501488105390817135399161200832299307719516096167461368971672372470406977780526861788091354335947504459251443580952535851725579099655764668675012960330718609073274170226503976497636124913209303107504558128740309261255430902257398811272408628918400552621902587618719240947287128834774995058032620031135598328541552614223836471719042752238979473444465891706575820946039006573507464862921631023053372179394195078808927891421312276570791213752435017435685395219318512471499042468414100551732777953141381299203666073818692647706903348370296666899383489628950545982418817513621430681811930185910084029859725992344389590464473268438202956508451691607279518471287241050367549300634255626323269607937626933625870467820472910886636994782608084587273552396872500217418060597257938724725817998173363550680712790217918248693043879888610107697632687955418281229326408157281762156310263670424164799719318337147888964908278372840256606222903578213034627262221643376825053370002014983235257406063554269404960975124568491576261431662715616117823551571855215341871516186961556130431843751040894837562480600225267535491264648687157478120628572933153206274677641236632720279044709308866941927888923770725901342557787285732141190891829991708743522347020029906412671139727417329720255212072740701609579640776018716940964538624173504460434247315049762832559147939938695789422688176734797282275321412250219767113762476813436952678161611115138877270304714692813827322697840508123255691428613860241941955614062172590773353825898480490420240419749838022633940787265527681295525032820933337325305916138520597045767264608628881761942223522282136669116266513536498436315993045334732226768717916516480275922070131472081098581047603419440252543068789873804966941451427922688538564801841387609510381223775130908374405258709482640653419971274647085409608987440872872122682255816500559560960284518239965455924489177917900852088874188373938363396219528535977396726879567127293348900052872705178635144345083467235477802218537155195481402720148773029823966764347433192748360687492699018605473966208563711308351698722083124124537411134409605067417969067644866220260602570216061416402360660157420037913426752646223530710641088798011102394597490266571608556024592535742275083466382434793038941102587908710679564686473791364960982481540018036613661754473345097814283509009160762168194602512396732523577794886926801605881004788183471297566666453932119551971741982958529570866165805032400237914371680066080367646348018354031857670033758953467139180041228204735127014440308358353284085865987346425324335505255973338335841269160687998483593967095509875110892465615721259791417643893146470074285695028976267672223877293348944035835852126767355229982836752054986669271990212383651097645884827635210473751957789902781174928620198604359961612108176586668197371875394262734641638165531638828232551988216043546871701585222804713496909486950486729131177331226544961220948954568201466994057050628948745017235150310191124757024937694309846275517857733679585206305843448506895844212373032629870322799018584368704880104015916633967015973911860441451006842043330712060273161843755463103538586505793929031577232869051158854105502442247042001354278836109967852415388276575136602233115973822654073049680635279328943986238922531436753766388070516719636127048932898822813882846510958764230994724642271739021981308682972692423975328611146723538292912497035978122015657728377253974961022448736669448802416904427713278224284247110729580346004838016312277603619563246074270023297121496827207704093288803381988690975785046324093491344321627025789580700441640538061787231269338311599300354922112057819680303180516766932019879203615093194226863537273422816388170850525400136599579039796530636547310283647464860368147827856363884859370047078163613008686842792428433535468222185776845869954125912857704382429082760356777445966442068329033102030412698002443009771452959188056296638372679389583682758677127218398635664235086833028541030601610488993516227788155644511078926823259656539111884800043022516703796748864687078266206347606343190926683008503853845792731118699867754169156319027352866587589829643680926832921726701486960217836423332818026510848936061488169874135310912258864164437616874225253433164543907730777944462710338526492874128487847891907008488979954894231128496609838534470244690588444957470638775609712958840705278417430932998278786555552134313642189720453891341465987384590552719775364484675693994721382564321548144690101515506014978505836720573387527483680104303163144649155630708264142641894640577532630538063299685901004633542461174113889951359584253199171475516420971849929946087295846699153530498556291521821792333678815351458576581747212704678465356678378213311117520920342522281609561041976275124934808123561120585116467559028373684663694231102991636389434814935712811856872166813780769877587256634570195855075655248824573421012564864296751541088357154412068088777972791633598205065695667789128372922966373961084025353045380178825891178134024773175425863546486286988501230419261171568421032071657011309294964793187932468047799765718829545016745772906810831262405146683118701254007758192596187432834553479431020945240246257324444715366784377950031566952499654716138010503943577491719058629670512778492652351801895488262271767770591868828277226056551063361243975047971350587870388974722874097218058368235177896634752908645674418597866145494937725864743339460390128738669068390405063673382236013814257548050609215990096948578307868452501730007488147005970018899909193696671615868983483028291304226738420248288306260348733065349344594070234172134608937757853129132630036701298449933901884221262260589034241511777961012733651971283392659621275179389838379774947783328681764704063684684479887182169799124462374504630669289269460444685574367899396578429028130740889993815852168197362431475838261559995890078616874981967305724165378481058637139320746151674530365924831652154761792345968634343378487105856981523572271642404734527884519288052636608485648600779816877853638062390940982377144728574994768485089450933728603280173619947173171820062607803313957456542725251833752719243824789548825501323957248667231810627153093685870629289074669993311693761916333151402268832715596891187348984833751222650495227045817760009728571679750243750416109373468733407411100737636032917982817151889517840810485837204019352530548227794462995698454219365192337668901400517056035454142066863849016685229522643804463451748654475480303600622985213342566139509900425997328496911759769301116797374827393993255893848594429185149805269958081821396879966507868440529354438292040868197062067378841535801602889134819581686125449903777006069646307543162581595668652382096970089868535294163697646844428757730575462532286383081037245210223914964423242840946182306340735211960269059115768910621215587303418648022897233685153794843311431105459875629218291855932668897216675982129714970065507674454725614350280207283512168512359695255755716639195646804357894878836605387650443585559067939610747148727697502283789644637476267249304331650443740639398778649764141071941929544876966456437707793209082343172415290894480780875384631777858273373574185782286469926909932756603389381146476454096544101474963756396634460645428814995529322746268409862238352466631048411003905656573537206278054413478417139851909154194868155171844832878168878229608214535503777554066201378085056513546729821183518874468352316897556049663104732361316846814796915732288958798088389999746961791349314760682420104608484757441276046404057977869386438847940826984297251912620531141218970220335119453286031535779262961378218503193900257235545298285281919659507170875102630580899662314249410882914400329533121130388075496811235810460025201036228532776189860406152064805160074720955274230050033304409904323037505149872491761662816282250512405467963694908045774890855224148467388998567429470276270166072561240511226415181803006939166799857779225411292367450375446418372348562061745343915604892961143139681671211737345055438497398231012740944905771757389892129244611984657125964830856646495176470051045425836147511034214414201492429900119635187347658963647699819806380404579680307596714696624769778120167251379813053439689605628554503315752612283989117214717724310857741646359529603148400741308283693648886845649650310548830873568470664090100153739110005109761723023706530081114756383584320364104944634094444950151660667571690232539281217154742938525676719894898377120703218339188371831366896834334299306938770670312113660273659117726703605756743075883813361003935328865649825734570352538314423631018494525508392666778974996843340294733397478221966716919228033034720951381681370006278419035202381723609448976751328049985961358575667319981748177785451236701338419252288019905980098850576491432939304624088659114473390356461302038889759804205421680021555761165151800972441714389322890086858290531099375291645939387674475444729925303429839078489928496274973952135504354455808229155861404379437271989122719102740670852122035675151592815404014551605874242957723830077324515438559202941597036925649676573532153772104913884026567860243467326220428767733521844493610059534270333515690969564174729224728714875150931461680673193798715294994077530352905051650218742247410159223083726856664100607095408950464398193665193918641172589799687053926479677999906788448475882142109178974029463451023522820367428436289356044656095137853709191599525537353106428150555063386341182643815256055283705736263183590024430099250666065206747087097647949767048807482432856752574496378655357669249386549939185911701968325769272677028906440261311988592654157488221932131971103901318783931344535351797436560207543124350267642543595205130998537422274356213350343053741902536899418189281932686426674542828885020223422995534855340569235180410705376802322876722039545026894147389700207650340549784416460571954658727826715172243869930250655269267200675933078006619895385256707018885419309458202466790274861824052184402682853576315735145385782812723466328843322287689016580988225069805649660863244278789177324564358045283183324762195940182787052009426217080063315198303256721802415481010531021876102390791272366408707954411829547140666123192841634565915794868550759701674223671123567081072200302826372914550899800439896390692839540342127434311759403450180186950539017031428849362018011381682813947882167018492044160409843455794869389230479492276366819379247632481618982809781718603364014498087971121228393282039184232026195523773314132117013701290645801795082949897674147785801427409355454415144245610367638396156512225791129393951898577304700260230772081681313168503615252015078109308600613912451431909449621054556924900149815122594220574715478789100632845029532717084693180494478995629907786796446283587447527662440572750066814291192817222083398369901386021662286903450032433266471591814275239065301342017819471888907928362140716871595943643615914656582890970101432104094439327757450152293935290350730923080298134320383895194651769947906967623556196570566172592262677150533641321451693523354459271778538285995329861544301628739226314318037397325352188908054768182540325685761255416833218228771335711931072246764669432918488600576654155729412681881922326286825375837578257889460948738820123682793062024520175527454898123745823597058811707740266985336979916655462687025649418702273757997022314598420521590305393045979341949181973727038935432524115451677809686105361961837536172816136482379654488891961001047124528074567885488189277148163059750225886543187126010874655849940415039131338534545556927798376814988531101314697135881330825167177784384125140512533400744506970519380460993435554733068779939655960968474762538283785000162708870469834283431701436233191516594347226989696994788837667612944127331140702023496591528320927695288218284936987032121870808829961034973268539256662785766753662660971389882112388003459495125957411640486526682612837639842902241235567640866398353486902495338018259097370945364488702091166197846576484129656493166115738172297438563845975386925321987654028443455018670993261289396173086590704750213941276457608351783280990708994010507210490515153388759991027226877092628836142410201744207094659478844680917900584026408079961478727377296967894150787716192832832603250979093344994166292220207474772821355894077729598217702953823119082453344147562747105740056439281281079059407651357597149395845620511772195971872711099147073525729786163960117465924872078306692644510656531873696327146337985946938561280520707812687549415896976328603201402521919304942944859748874191568295164959947974140334526195255085887615699856300543577830957770341612796734226697342755938107987093447386862857734232366824769918302745519457927007142879088365651780059872970180586392717671579166093592721700192676263240668341642690298171648103754475531037934206188666042098585204010089717541691094986164592549377534586483040885742698066097283376214136315359722583601902128693827531297219325546700192938959723841357826623590046334021910183835554814460491596395150630088705629913960542940123440247975069272130195114633932097971616019562967552885642703251815692263566803456900821754095296079723238113221525660887564022692570899931602523710165122162651762315202565776259239291270195340760014617275532361461975267892727936227657031036925216666376527062060552483486470028076448052625681437384005050719784395941121387259434163063219627267935503297527031688231882122035556440734578246211748010000088214479386095178512312417669795046347625497357832425786443173945975083663341977695832132442890751724960054847108222576264383808840126427950117502447537177214485488076841453565365841484993663605744633952179059617617852533450609015036959098267398622611691252047184556901113782887050625967690820414150361813725796795030980720173984553019231113417725541145103445733730453491599109613717996785267642255645318285688124757102449141086669553547863665069540163907502451206087785174590309715707301970111709156335951998857637649903611257334802015906722996006880321297885816853022116847820484761268068523095645355027680485389726788432401937081416762802244462491481040741777341689033513311009529697075067304667894981658234227923463042615424041636240224431838220523588011464782809157616458524693660840722089952077245645227301941181382593848784352360162022061836301505756380551197590638246195629242981408279767173563706065725519011876383151808683303964191359771770986331994750353707764489250735621196461216332691480896035453755480994401419164106817890968381187731018683938460213633691822203321280157335064779948673788440226719386750222379005863146775589537817941009163012860475790420183373110098024116647623000010872115076450716780785993136365695741994498157362585726069576870806306309962187363742072939321826456690140430270785726560322402598109492796280877937302955712012353168357149395936411732677710203554411303084051828790543988900472427282382937421023247746273893684874162979498448338262478676009209158481910945471228731742276710484961446581397438707926957908968892084955773085077832894670591273226639965940017908172819976600271665996940250349655218184193684723638882520557482886315875024608587570727044640710100496580687498629806051962080886654181786902457427687644470751291881974875662963471109561495571909713344676135030066217573282345963909934908245440442424598818960613467571617234227837001133482379611946458423173783064843896965564261729368635920492736807380644986605699778452459692939099344810868729810443288609630199088995204525637287329118270284039218878667903717957448149734154381326806163767352814087679837386578588126265749732841141156003549990994526711354133589601892187763912644251156456430643805845068782812012743479281397832822553428044763884816942225938804618714717363362152661305783547294940206978759654421042570235411296715552128134936461475247299121971343351246409470742508284702346834002829668105920041892821908986995281222198446902782043446482538785300378028867933768688920914515626397065042037564110417843612724758349237715246656645056078218350991383844513385301448103840304257368314838128495518021354516205756232502859607483202314953642378726143471979034229762408778862958578280814408393051135111955078009895713032065923349915842014981298996119987780245904796427492048175046821372090269151225414748422034348619809065524585440840965047849673457415634275035290400466598770728297808078782769505122926097599962741355909233002127200154869783262488712541026597009000729516597692723176222352602472919425915719966601131930961256284401988997743292216942866863376752558304364991866938189903698697436887003151019513797429149830807116434981066760271694165027517325965998435743211254377929377097507297457723534067870545330145860219706213695762678742454444251244952540127730449173450491756420806549827969752818945365260485555022019611988258128012425388294401363344379118285957571348628213152219122194337025554324527771026682438856527785301106957752585614946235230354875721279437476259782418997042259523277196515916789205392941584767648910611057354346990851053050677261132525178296224681409106261512073519233635500028670861511830297624761575733358853334062923830228497936932183764755746721150510298946944859966638122830087739494781575367250317939030525127223554339349142774529215832815017044993815208572047589153850459138523429826014123487059269378842317603249547585936915014377589859020438404248360867112050784947694612476723934541965002234874127140702852434541722463024989130415819712138583050074155287641797474240907974343269963361297094855638895293545710966939060858478246838548870127645052912902061221113126742219526993695941193410787974062662116099997388394261991893713546217280562577730996596735795376941402894683910091337780806635872963944316642780494574930821234615398453505855616549482723639278077963589061884738806956068925070853335779582978087292438988679046093320835403667921368384751114528132445694819282565666121870843246168502998435277241002181516023885736648917371182361972269195335526182162793769008542213369112243637071841823672254475198657269245247090272247147238832294172901860414143201411280645423449647217592693452241614490974957692716786059680078305008981007576261129963865941997115424897954423890013668460339882216090197842556141906894868769522470955502077251491353331270190185837681155346419877868208237618353934283458730864656220839886859210353299487277912743936998458788042407748983469728721050743004709876323766454517717795884864336069323036518557307935256724619819710939892491193034867611961570829214057319153527860194200035201159107000970129848738495251831558568542669395032087449943287996447580562971826264330509213153135137754845129110773873964088187581547354352068678438532831035865693061011438869023134629293443117337696371236690441777765243529682567750653756878307379964906795027536596551048893621928350130521969653716219662136589712998261808941084524932061621551042741744466557831482478102560059595676416021202579242517375372996619457571941661771704241755334803004232437001273356963029085858559299920887675007268049679372565621404991676063790052377486593104375768381691745260160088040963833172747879499709732366357845715520765786837708666650544876287900000956736019783935530654011955145840796520292621604435634040457247676516288962853685980013206807514253398929134943986884257058319918109896582194096935258652063080757071043575438650789533662738480645017137692800129706008266158458917260277420512278739965349128741953957175352814944962665164325260915561541407471760028439709489900630650940374118992187496325951959820023912624275540059637030591823602022035255265919444127284468184824396263518802357862421726185976502745399879903622618995353053648775864737742280091013518263152369751504634481530122518758953593760070459212030611783157263973174264511447766687736727353937689354360472413590963847022362013925065304532001981884955012512367509726752357272461503072895146892891664118224869590023246672105437475046442626300273215806132123099006940842956978767275337625649370315726571745770798030380850378418898636163593277963740870737701905076147562834913653172097360873371543318818427899314211375556471332450854115744804567271970347436664551342486383878795405613792282667856120641884409496824654723655191750148597302800826945079071639690348891987573007466100009784205446128407760425437609863456116623695084256789999753104964977431516485231635521603109661524538032104074732813492657039772508668356391745605081995479148451777734287841731954930952437268174690842577450362943269519833388317765506316691803527800361236315860886648367875433788583345463227052478641126554697846422593737192079020425959747975303248513110437976696964380166746638335805650388113590519924199861554340894230623247374157140809438691147261279211840189635604398845165639655345623995581449853488549599413943463240457352093968035017129990807752763553925351261960003407890287415057023368568417525886267566246096075116068906392461697476347098902416356882081062943517964149818050929955467430929464802687397844976688704253282326430907413943459779740707572717526071930759363073246736098820456729149174932338377415434093710423347538925639984651972256527771981277417644150859585991214002085888005412318364854378702923636545157726077736037743877436766049672300830102854072073453147299102494393242661800633220069865092917099452478282755742633471293345379885583398242357900541225853020361921324307925286798358428777940023731963368099263472283593642360587579846353307816453397409221404416655344934321943535515117374011479175275225707198034931966268735134273264002736236274712819503479542350560740640924549753319214390679188233317124184850271263717314534745567693098875211556165718070522928934223521660096253896965361033290966110294931889510964956005932276992612955756720166785962668944271440604307246393946481153916813135771988630167595914755357206060900590499632484113896693375947796155074349683243144064832269021767360143455128162271130700720115634958810665250010967237327759191482231811263057653692519626586303399977983708565562168633291261717411879939181839033574158524080611267068281931998328228332582734165487643096108798888960603306480758138428686880370541686649490610753895604286901700314886452710014159108000912205305162942862322334941439803317131900561612468851515142183426895469443862952710607899015921084111394067413136877965456542770687396951438787328801232367951577241253132144736189935254750526564681248174486339738560288235392937790115504387345818592398131456680342920462623111244310257850294245727966740380796251925411132947904335901633556322282269792015068154575484624836502542023036025408114895640437398764027365981072414257761984116603569595740789315145628444777106503364527875452390449226828030946073302704343339376752507272223794952084506949962692771290304236920900116162218758375231858614705553649986533117407339417483702938918886798109208641567517376687741613412819744329993555454834632280517047490421056775583823285790480406808626317467290885278560569590021704277151261980353778958827614483040979987400587315964737377418213286620118924892899225279288561629588784480197683356549416039476516728063491070123832514168153333794205632212156176705086422446216590824624024585694033305112639860768716148237354406953166864002463263197571434883900978719752099555646671009784996174331178607280266558375834057431986492180878037637941918146135425879434000302174670535363763518877243779567785290785369052412507828720251132300767375590918318929334879879666305993789524545022019177726098177952944833208625354741561379916359134601302166174201830228938284920133491284994120331004138963771608649222761316808735103135766913426881614404704473670955729129054761660410724813800410752691931110750881795722303001664006816518227407568694349691952789324309859673532379323016494766217625808475525540187477220052162717832387702242229925642502340874265929671805059496449171703258401312700680479166565598269420672876483327819702762163513423471273350950427496012082775016449936247878876739683290879435023548181825325220249891650381354204831101924389865964004467716117633131051121162296495230380642775846567726805995749800949441964293318677292062833179736351553416289926663613710084977059456094652293981498458726340559117617843095973375117527260221377573137465231577249686114684170565364297213591625862851487318280007740247825373725497476625249279632181801530970193201415853586256981451351601571167952479064124471756811882924138345399189708081388599927911500183798655190667239500841481873863935308514576643385560052651057399402362577938665997901476430762583233629091257551492462655485530540772982567892574054032547932585564141051431094106029961178619097898133461975603726546475502032200186478263870899644874119305458358808167169971811419548906314737691487024072689687281942754550690024629562787887010799233876406525776257987845539134665484042152986743359747600033664954593907944547823570198222744807719849552207416233724434012658196498205295225099526594373100090573956478257335152285937281693992147212236222023060544972286211422131404225082602380339578784440534195630937810901473485479132938322152611434286664714644488700299523527570964898690245803823482125881951441396504808761072776811538231330241574146553376666939751144531870953187509673095264922971760151601378458332087837721704125769539494077753549275573917997174482087810223488390041233722403121212829385012690416399908723481084055024732813350573081676110933956744352925799238234547280367634549167373330112349614945695118014874362400365671929975488842746025929224720724783154497150098784064334808824094060520698950617135676838676861380449090487592673648183675389563787907075058776615381528099772475326959216945149523077997867708395851290901877048952404030849739142940212245423658534647796117569583429506886056524553848834434052401576895896400707363069817906319998769316739637903838753866519477516567606489891579920178258425537491239305835053398512911974978607984687228183224043143028960549412123919146483548245582688291758529032860217277102866224348980559974888446220311137308304643965245422167855712736178848200919749732649756042748344374984620923274962181592526163930886405336154554623903413849591063576180395038327540470106162251599275837881047446612265115011959760914808255877563064934462347347795145683585444762063192490064058927303973946028981177475610913912364535751041263624043176516146384853987695466830428514043017789672762976376064853246739946289447077590375882153252621331215984008077896571107151771468395707508408281561695985224277538518052489291942163954219452849570448701174913382956711887941685464877469201104302444466185394869771757710423422541067446968659938508884747683391427054107189231382705136118863037719284822617203359849368776865898297528998066867561638221733107092927096606960674590439510453505770476708712940272082896125743294319347485549979890439280216469664236019165698916520304049756831955602621777606299636590980743643074520732666411582529097637779280317836624684955395819896831405506029216481480462368071816392004756886104436404155974220848756413620165036539936632277948833751252192382372435818137579911335627381933845270831793072626238067962459663192359553804154732833044840584215580783471134032017993873934779607315247497376405406976788981998150867209384818378162452347246639347980739666457495036964824221199732801608575015551776621072827198097840973177549354095378980535884698411950965230396070170691388555202410606541166446654948835533611201580000076521046573967173750305803580985079288213947953062937924054113873682070689094024245914396193310244677140099643851795277495726919259187999649598774999713220142458592293709336503182093657226464286686077404563466315923377062958505303350975048694077145453896327237051228214302094611558195016128032839010733085224278032988692509104528636652934638476358851345008619944462057183607263669655549477228239805446522639285915019804998538557524970349165303577041675374394561693085700222842846334536289934298202956043400028270974321338879840183566241775814023631312173257580298354003994246551167712987182133396133522496590277182425091001553970539565726817617655972482727524150112844557258936249679978606683055363821611414470802803293292218264522611704114889371241651452541957941388978865595522597503522005704526830493019704449637452283286739073901061450241336398995991094712130380052680473512633266108290650226276520476355523466867424723799487215172061361827843365324349657220222972689616464962268720443613917992788192397763816826049058209903504552276078367890211821872726495375627205714726654665370624858531999809957629376962989032469881870530894231555842051406541234800028214882934654214422350025646384104771166210002496437940448867391759080111902327750046904119757327508144893203352628246605926620848472487986785432881296424559198926728991963894816132517306504547958875936197626105946077403109266017294255803684080257809915975376952475141340109528731577106429450218476963921982202169113829868401889232743033247207706491756737299042414158315855014789167318108902372593256932555888977035463590295801783197111021015175824092589803945274507152129037758326157214863777270638113743085615520576382346075971070360872035018133685297335044095628598410645196009075330307618859805071212562550684204381198899452996958963306599846596081144654770425718534156409820994572892824827195333349100240908163123727451498893356981390625967939393808114760726389206352051770144362883773053360908052827249365946132975954648268831306382140213838867241434987414888027461244671430569751246616506162037119947294151717528577801301192638859148195355616553236080087194244052389379539364179378061831904778420024941893543121898884147901156634935570533435401893116852294527263150141548304110590231166532843579796758349567317167574798699102831265578229285091945412485729511088158390257750970774168500707530634533884872595968237625170607889824152687633178233920405246295508676855677690508228116694779001315092828642661873381373389872710939207613812771412228976413109075922635991105747523525572614874245386831941891657899142607979011664252568084641242906557011989070977108435835789004667291647310182973003211847820680455690047960710341188461641021931724676542712312558077908079294484452991665901147985047019920805048404573031503875194783668502419484190128992597667974155766487308619824405478581416032313021903031684090738658397254614780024551699471560141004032751212090693357990390484519326439738099346396325394580173440050104499605868946812522002453871093774677355952756411491050779756627329361506487918121445248829314094520945826505011950307415652557701760900677401319499722352815194113035191014383225363378633683832165497692340036991083776167080843890007747302238166547407658935586101281136652396098652697168588938160531694399921441673263487205216897312821326551258573176271382303032343895382540908086130006615132871896835589420075805841183067285108262027733191623937133490035926273316495119108090036646489587278559019710796043508859013461320388147816737552562298401823837945445620331840357457530131431812823015874461925011890648886597698407655943375135131641419329518382110145100474191964389411402999906685836366313646368803326365918119704758456965408888346939946012272873490365177547665244144602654762083508827271223302143885157244037558365352846513942925740518321694724937486571971876459384882414039917249612873372448443466842409643865241133690589301803065764557941250909378841721170831901874207512423416220597890074778326187516427675535013272003667925544441651471117093363795415008007769436022607611229502233967815338656639255241369957433039015638186429568586927984205354198033522143269905382380427270701722537899566272668531461619367471706560590926386273928949920125908673063779838576870356975996834705522861708038489446194770879289405434645775559330874217126861668708154486995576252149326156079748114855554197789413236676448362492778367240108261148303149830969703086847732543804411332775879396180110398280615927688018562973585517296862290260188480446561171707679140123286909140367057393287477544669699835325849453577610529068772203461470912025127792936242644318430975648038867492677186829393752970651438478102834288324509073935276265025476358903626388511777806104612639032464441359692929984534332118692617148582108315113845533458451273500415007381654601447275611048198082589742628144804457661834578613170311432195217191288013912925310056668113049826587350759206438203021724887540057908155874490732941815153043247398974528262063839435554941873279353160078651128728615163419542300196289691494939601460566763066382277998637716480025093506253674946331012338835199916922472201862217874663156383453120638351551210724595154938962357316647356718120658673197676988611276514965415110396208864354958226917997547284980022043564990207020235029074036623739581136287327201506018122538547735319919320407077271832416946722021885916545127173720564202109616008818136417722807217475741900030515216517013310997986145994576610299062202477003087574645214047850899466874816895126541409528607557202115066644906581231812233699462989808509474218759670933914128522184679704129608433087391826857476843428974778231363799742155109649880163550726082070887489714306142422687815429338785786484412986860104767475947359695432803997831985902200593481156893773959000330435787536635873465219958225210174631959686646332171863989189529159466977156833712378273299169983494862555016548467608994718182549593120844637767601743983032299750842155272257176764954348362744642257400089778506695231848478120336819500081756779093457532428996296489008850673023528773993870764600472445723540972713094988564137731730840084924637647465690268118207447562805876570011503681943365208163396715615871462434511038281310588745192780164459560740982490280706616622035322087285920307740468698759616525442877302092618909660215019719932939282401933910297710521698394687726388838392192835674155020382175980253972643884644579219503796767881804121303404723091493872249928902287772742258950152880241541415238459688874637992342460061744860700517535285229364484616025454946716312603784955451127818549513807861106663497278040792693108051474524214906127013265301361574786511821618914642831583895417159595852364266513465563255026680214996634315454251738388766821446770146907248290578677091630463950896197633117878510315621631693365539206507657767577308589389174929852554383270406158088090907135288053244195439189558560340978770109828732051675068898042485727776371913995154973290762370690682148649378976970174428554523204975239876688653755809211449370562239953911392880228426568795271391898729074402555237632725682508672603016344418818979835743360456222870708067062831755944014743447663337841523751494180514273714710719149742826401695977659673702921847954313190600435291037953757888483362172158535971871761403098178637837439576715207219766167595512108654724785490957533609835873832376333210971645093960110943538238578788179662384083466087026305226287913591411687890087443208117238400020581946934177738607311061071175117278969635493235422491438705017453899049269131688147063038355354773532893281085134193128441936747620489061701606791758908565954265363120903926123323736226160080692068767548238083368771655829290844559454474100682738641146240186855820093008240700583281017393508329606147009733556488419760042565089879860437205338133981833736884617862349258893924702562559320318058844504933601612207850628409125403025719136086675466553946248184536450852311322030525076901676875615927579151551470939325708850809675863570659819627749732016877984468413219597476082339893656912320179519690918328109082080359975406581667285079328891916416902332230964925811081163526453589434893959684516243981195563517594328716586428940639064480013811184405044093813186854490786346021983457326699942233322134996994564482766136394087277683573131338082072966451620702728083481003217062343963988324105879880216746169050332826048291456492996222366255936833842373445573091672641689683793123907037275243816173952692456893531224420932915214644968216029015012770326222465596752231177507796075289377147267624174958902052881492781286129331746428030275778741422305211641096727406459720125777945227735051545742249849544121791499624118376352094780915781377518917310894410146790824240049583969524367062349802076719657100163981701686328118876445134501793542331292176680791113192856574212582279594325444486157132210563765326853035204466716163097254948399652949834188735026551367473573239538506318153912890891688878507102423319957414570173534607027001960488697843196436647848344483540038501448244008045478507831956987529306486598689785217984785014011253315369031671239724988382519523009636987410620353270431257763428090595762411036981927509801122440087139510235318469024944801103821367049615843619174595779262380705673684790024841911745218913371902125202034301698418294308012508048227745004059175379446510491259758915774720718121465908878234990023322132809432520704842036364968809730916491953754587888320975744771139201669279322613800267276671757742136839973925131034849788315932153556861930251409754280452140485168002822198990399788862285758892816981476397925007054595031938319067353606234016629366136548276220465706655520417851900534077345455922154879336111041029052949164221366104741571987824505540876460939686811851849961459893826474348252073756487593268686138879518812742565614382113382426850682604115715968154054970148621496096403612898922773520064671820361600407941175562442066167062408390847020038022227337036951074680764353149317961204626325674720520504355663909174123779304869626770587682826369889975209192287578614618057837749970328584274874663019980490895181277836967286157996286299050313748236125100894474025076333129805928630881804753022049439628897428701057980347376919487091313539410036104297885268961580800825788748510065528358158697488386635958868765180929677696048231290936732254005534061660822123160181705183295400979286614572162897176653858490696128782094916971452438344675716617548408690732790932932872727653604298181606690693231964871036608407324621141177309684560097178423800447821722889271988035910684875970799478418184594050091440722583635385766790577097050908098143173073176771557701852352962316186607524442827047593992744257372744622169984238143738138925212607946474300613556321978299168788559133747117524486192254213607615481887336716781809714242631896251587186154664395381314552311696576250937147751577412306130153843797888702944445809893141926584869747855227073506546215666227647477020521493753281226454429201351154873060262882014060737077721673582961090360767472116514444920732140324041478237338705792889447490139498412539965978138452359321545229468055968842468423966898857697393144321201701279966224141918386200809964030358997888384862476503744501900061371783029965502207952174431813698327818619381978797892907674639831154122086409220942462581706766718683654723428527484221254284793904865107276390183592176741826610064490287775203451094522306615345761585192695559783483714231733596165955823392876453381921098596182925890101049207365247001143628155456203019619694978619298811090589718099322264284261361174605063763781085804370241344437978214065772570558516561907164173018220244478499399266557796502670711408599344699998452242688684899349494669653269734918663601078190563138200476276278912658302066235924973153654853457108708733505297397671750700681465571142730638275613310294087818069915941502251637026404325861287217774132154727390979377467441451225207950628549762062665364748521022385721887941940112652972459020101567785260872177607501441929221744748471393036956980181341366407962600047121190129039568533781209639323113824589374775247765281961429053741101247831777665823021111144287747099110103294533620029613824789319013890245096395984866283826843680925064124036733649459775252173525251204937414221923309531242648109751300249013845626395270073317486405571881217749017815948627676724622199029219315768875513382136796478568896804092506665500358394023530669046550150535229224769374341458611857777866525120912863409391922651287409430810729703876377292866072545757745373552390235053085439585797737670658359260954424867034369606248050201455731810419560072484110170948970442714280054942357769143608752643614532992791967920285599808674170172782752781546753012779413463066079960432409527922616031947224466416282036425054130520424122986375502910311023029533963186203419531722871582431152240378324890340776047559891223010838851504675933267975287245139502602657553882411110763732945929996148747321780245083487894192431075483898869266777938032312337436195242465455213569786281419396383839683118767933588592694615526964071601429277254111176520434716476036971184195623241617849893827725706065546544039332718710972218339153938395108388395977783670808121658625443508905783246001355649129691775574844358065787080135790450996995722544733148876218246494412475313064231794647231743216760612859297997318593782186145515723901655369245030144804581682436551610530169135141550772334821293647501728643619882688432932471369307805953224632581665996553222625344506854283445389331367760296309777795174036549006855712785087349303469079625342125031792276177396053556457887683316461076952129147763730128177046486048776238056505072594979153181972961183569265286255939816051437999869563776813622596122251804211643910802748863895514901131265219268146258604294657598723109522118979230442329710212537173257588974794226041561773498036350080239624444889974622848102544527270639327611381209633401916753064282268812814561657637675407204530436120771699091369857812927300822994543906254590887984174286564786018770130179183185854392103629781808054335908899553559747357991164753761341661214282412687865404760927833880934272182736589639757088130904470461925626664828696110034674903299917295495694143293929984034819251459486214570742869975531242488128201306292517959873249240098413792520671533983280079686788155272389862986892604485743701716019011690216940630398535405341145581343519669399645259636060752039834108290533003462063373054621643414994099097778030414675960138772714105734237999590059171767895150722995259401376378063640926895747877929600045351513358677855843796121905483561118727088707294885860363958531586593942533684149827878269504362739136072438556204072973978670495508413229752248511542102827826092421634075317553545909528886702845488269835168791990516101486785404995592640946871461050716263574781480983068142649324429831345105886456266322577231302958491485577883935660702331957360262869985950876231174551006421065513412508309947606920785098316446499780062467257346625346332375404122699013921821576869283853463919972386079012984921477695243616939055989335018130495685954680497895345852077081788117624649597801048828146516303252197212827439819037566144899858187723657025824820302647273781758758230657209277658456065536714658419334388246973642121469894716029394073127799987789180259596492500000278098520794359733634213406398548262502501838846748498326467213686556549654022242650755373261232094099178081988665892646962901152660042547339370761521242331337285754501775216571975854877490772802782043435208303793373438694511837495719875287702055405620755813518580446035427408768402833649254951676710196691901988431978665905683333901921510396982002791089731756935645255571470430961422250832460673768314864285608097419805093322423847032209866573102200710113417371406159677098076343827511122471832864655422301393364282971914278419785010704363383076919768164265338990708402858659923836747727112257259487675694065986856115309279187276650875161779525448011696702292450688108140449306936733699555468159757733590058407163717421602883407813823080011281717180451552697482547557035058583050697863852208191624331352158529160073176948794253476522213625460322304987433369901588457289304868227513549170118214180587580947747699792174090104682408513447242922508426360517046101421070218161472906379640912770235756472770304624304545143033452202180431878569884817377128560680168749597588152615351221441417476983244577848456794950503649316007606571117082650580782667051471914430916747937842560861550102947778822474075039343632546822869025264985574641001144049667026072029819722807438035191325185792579784830276704985089750198398148177131555039583297290270447583339997959176149025356577982984922306242634057975331715857477035930326550212535613919864760333161984212083611610639248034552608205270863623408867358281481698820830812187431984043234304170424115155439475641630376295783390203269513904045746930253307044925985467685842265696189556791421077434582275731645239916671157771091028522376347651961807793526388096936206442550305491367766926274779425308875454482398797011427166186165880169228101155998493285775278900196070149136286239729473059238392656382900867651588989071061105825196547949318422338918510252970209963491805613773152281604158792697304934402441053407280898930329963874282970502554704963635159369579614247855604764522408928498622362340485459430953463333544391407923665921888926476034202578906109255615082498265466914177077525024863148772323079779081808345223639310010551312250676833784955778874795174611118141575891553953249905877283191598755087855696820474295526347114496327185399644264675743932322984567196009961296439953520623462578853002021960419198699268580147566272550246382866673790094191578212524907198255163617931644561566095737503529970607664235514935344857126035384478480683046655224744480727485606224142494664369958727223702780695941075615009748737864679759215961669223629917608184192292477815974003912104108531520082334872051457054768425473213067758854707968568884619696449794942454288670276708225031617232250745971739604997688363409933098057265346884317564888504620298911805091210389704563813844898388267908807676629190074088108969470477272050666862160962288306211813161064281955617161892974342368748974417023314044668896507019510243997996010631898053514731247972315512546721232954821446141986982267008527824766678554408375322624128392766696431656300717046057638193334891526091534132040098664536513611458441050472647129108085867169443808506183297412468879135156313178542081160410838702343786537109770614783338623421564823231244179779962446823391615903359988493625321263370816267683308502382374159323484333755894975752237735798739456666785004969159666984473677591154220823644083009733319739841619091644607800115215875472703182047437444476458698060708473165162978638410069293801918901600941280138746161247031731174599279750038980575073694042761084166309714240387721603301529995552176315119462648878227903186587527673212681447555398951737493206601999148264341505518277331739346348723883909976540198132117953362129106679860017202344850750182741637289388110451566355583970214231627154635661705878074304040997455400095776666738581672321584281495139913177069737984086528588680183979915349946551674604838891848918607004974516615236212969701637910164844978880486267812422952340189344958010047022867738537003016092359291060687587360040557264896898876382316129337720155319405973159323159383429022046403773315532979288867787875932718174802425809410215450415393386285168658518836037938912492704809256231512472335967820349348743138050115364563168050798680788807018308682752390609504706739329032851413415563302234172803155195149898976327481262066693577568411494837740567703750231590089234272865706710601351128343977698748307563376252235492279729160979096648344474470901221985438315459354230698825720063749150158457219783519852282978946480501336248496427944858750626774058405158498779967317684987917236086985058909074065951135485935882970795956694089803301839503582699093707269098935903063199645660771806797738553345644744086465051332128749170844824563048198616842782078721830697507910313567170249046188924125169657173906774316240442664007280656296493144548348486157802740150840467339431850874714101168978833639575178107446513320797337650813752557860477177114538177126350422189702521903958716884925371782439472478407907260175808404785659203215685129620272736233943221962763096351831107473037291726767583708571040233628460238251036608411779446796699242689985412396675809524579605669480588156858094924405640405789395836525253740436910722483815414630740097703063537678836625244946138601838047988490944210091579774154994178085001544748232300958653114337649741088245949653960996156858621764552889943624340111747473338126111730020706722258974423530055857777220149152090403098968846282196476495380814121400306956370278984516358386051622307254347104549398144028790088622811012916197414016499042488523176060762522828475334973050454622468836623130981210376346433933375000092731807060478536887309185427211789957792848537850918889895593287918777733522786741344790460558783373832288971710058871869114804021226427576882998591073353449880227866880199916015547849791274918759018072572607130396880563396303067424462423600813951311082997838173759392137387287062774204057512416067833017412050665418775354449734332283080113125545832703178980998116820612218409309024203484711390960805151455025165027840694821937660192402386871149911553018521714951869423888065444185726456983230923550070423526170922127086692393678295441755313364026663961546177228831559806269339065610053828897616432800517655002910394760121482301133283019974453787394769008747294455235238197022431988575771575143815140837120058799473405791080419320548254361113373284728593134308173553926037349336505728352395094812902306932856487397064477337890285045511708953774890306860404246277098176780988983658122688404754886452936583099120199707538383303290113308961166590444877265088917805762238714022982939428100612405771971390926590592324565348802599732531266961980742401045122592829746415098964272349094112084493634247665062023419510190218822520633722224913050040679562275826399610096860578991567187454026407396971295659205012282403306435498681840012886012586143099089739981057792558922692231832391217864284665906506145131845662005004729195759048293764508334736723749249206539210472688935632853866747496261640947783021130673850623655268497574799612166533965437603435191190607687845072117718174475714877080731232873350825437367302830886167241424709752643866693522293335742469474840205954577365361437322304288499985257947350199671359456364661357205141457233912425438507317591958592355089984658907751116045374632029297565296376433001801323464145537203692161425209442092676148423117926783021936728722439039802186771526663132641503657917223806124234141924598479283189432434845354700876033585808480678358189827341006753075118462590666408528490461793566598281876439706194370340580186479269403493465861723668350442983269960756407848521622527882730964583338683456980205953950926488047355069258482749586230092542792052668049583589591071329502162270469404062352319383883103781885253777778449883929484510554556644714856270736409212237003368072229453844964505633697572308735962660836735941972181396300936346635894374791153699393352000690244559428198073696530401177442456799304918060471671354905700930628845860940319959531337386104187292237860810927282132620668091151968930198967736902244791672692735082362748075184720521015778796297907715065293720584343803458725391501769642058281177503886305752072841368174935072644443324330322198862913950136089209801500177161295967099421012532037620739988154641410169507000221746646708814316995006851449146470265459436581125918398595484065838180771181096873955437836685531426905264347218615894398243561552644707203469423895735488605116066617386131770062979238714583885139067115567642742252457593585920000655733466408201761323915276004555430780696397104360477371681681704292093274774920309315697430662968657397591677877161973036362067436211143393789658545361516678959153786269620778738485678797263029872048361260758768800712263330340391286504344859154382466982977095823920711805898488057457271256948555543813517619368471009905345794760361637050587812991965191577676485398944650648233820729226562267398192110053079325451891896924480528885614232953231618690069178034290441924831455571758687080923540311306304393586901428022904194053412219443136262666300289122303695440411450668056239277981480542117569951905571347092664998799128508997728215516672048270083295843039067503421139728144779361463144765522118262870962487590153455875590870750434596522410208094651723231037621449646805909145436367161896977930097161064839527633381337284546498733649675763417508877290383777142696398989615800860244275072242447985379069684475199660967822385969110196071753075359721734428807265005071076243154816303076671381537613166497210109686905853327902954249607423859466270619002427091827326227025400303515463476346467878634035539459098461509059149322351710660649000837541226266277021348616268307383526225490661857565772119412738649707551252902366798960393539073406621527276598351801574752639074692217243990458880495991470304299501353307472164615006294076146392875034222260328662051812626191967625879727683481497971701624742719561773982513364717081611739698601606347931086353215730536830114540581230449165392410081947746287713591911464039437770681880012627840590276684560037192036009057408166418554127931565037116281080549997268503463603297600951276241845435717847648232644920817883785214548866357916622905882604494113116948343532766973661769971929333887413543826625449632392435246361914697084369773298217667757340303656827870028310631923647129975180399331046753508206087566449073375670223276698825852421581230620420442037509820583643621752464903596002629050928043330416349108305283880264315585326987111230172940867786614696895611828303007717449190925530265024205814720070847911085885208502919651119817557206747498954229134859717369877366323894459179232343171236431615995837589971477063108245839807058081908762407204261160954291830975260355244460546272464323034327461070906569636376764365247357771220555282771626988603577995963267230204455642613387324637931434336598978098217109541782426200025410732900352759180121913339117753112852232490743047067065692817719743791761499045738438071320965519520297613054601664692322697974286729148002378782063322460448337166932031247646689243956728950399390330222859038748796742329076217821662934801828749306945434394592509874539708614652025251352067073084158220175144293972658537418701671598799022814270217964384673015908413219544517256964059225273642124647640253059902094767665122765643651670608442731808338315631394705469795320400694807792533488094178520842030527538965842337892301101338334285267080708890321023400785490714244688802002307318888851015907302886813516644454435192178162296486775842378595898451709501419598076314471088314990139120817541108551565678412831942128232560613551041671885553953134287552576925886675612000065900909696107818190761782763449547831114679478440167891531901469102034029326090317039352702831888211886448319675697678335561273133674315655687145801848774889938882865903128808208662009677323427478624507992213793726786284493387178846569886700845839981400480853837339371331040649153551143506462335683573735945582851861116630923636591082578172495135735953555393469754541724842668626748056805859471794295596521788686268004479926825042521287444982548687845445267161055354435611597135690352751352587222752516250079540049942590404272317649455031741334068969409159989667387381527511468145845850806106729754195686381655085838177731397265073914381915932046209187895013244692201068649784588566916204753750634198214023908656143799577394610933194946098707440753205569427863426029449409899664354839755188855089290843383238339559282070772076309647054495436909667466142919388696606971400056023979722703970325138848368520863569302540689463950620355569171385618908313182646932493325744056153146993913275620816648678112701858670974536107572495289117815020026460100147624027407215521646558882712837006658135036207881044155357275874860686210076597467247945253192486908239187160032821976364260276269408347191641661099051435064082710407913819745658974815837713463886924789927252032249221940478571537175713937723704565612718409620705480351689715860489741321951061810592088191433377589674561367560436250786094761416770170189012067076280284850283481620951901028458953671916247592446805960888394580717847752396942849487577486299917422240393348869039674907609598327917850012269337816394077935745765444959752993664834426350748725422716639189996201747329662418793056355953417649884006451738346470436963330941760416654571381728749289991402129892183107437758890066238399844214808958663037454243281137834016006560804811235740162437543576411622809984569200183359436523777498841931976936171417177234148465987871005177932243916903342800982031929843950951720806011251709105061574091190381877354570898567557722267724112711473559665905858965850656045301794237557153605261372714228277805512640416410118212349655757207431784874397486928596782499674071667359081319493360880730985854996341494941164549346258928720830487654167175445757964223698627211606836738107066287006800567026031648065909228853226810160523432284985269611586859720240459528462063028358065604684462766400446303937518928079286136174988597536021528751098265477216375960480803325289210835970286268084221525126129216398221635951664005351341828832008211372792172370864882673694334590987062642053826807990287057211419063566872751319407237663861709131877114617971028612955789358360974889555074673950807701780051577229931844433430139956949729042151531878489815790729183624288833172544863733988393465495006881580445118797565227526701647049552658270718983383116396121453005625124208080391498616283348837540837503773474903989266276950379712076014662191667293115422051929093147541339065617040190028902721365756928864213376908655056524153217568914800187829882002419416712253194559020245227060979514346789617632557943101335798742378718546107644433298203663276293306997694658294098877570890398663891350421725017722274333762863958077288131641349588622188550634764402291842205186229307295967468358180232501308642505413093856774285716150263090812750551559900360684407462567466175366473462359586681351021976005011940814686240852451247552800354026198751486148888737444899376156696469128118210524218770558125367659834795735845058018717908539911277510959502030643642828818713933022529408379861021260235480185614879483803155861659256233274686275665288671922824322336320801493236709176606499770787142909750084407977812581080245251342638816382586703470963908925006023484388716945320588240970143480956395659949027597400829740830591199627727028681853592489948657930561375400591432906469980132162444824278161912576389247641486294597913918550905581627653790610752859577634655689576566111414804487171532910450869426690094376271036616712154790893367849452010555149552131440866440315712615777383185784049072702240858654209675587028391413369493804746109656884355855847385139363882154588465060403848908646378888551187321139296916143298055455532773682264969108989514094413952589869526482667449738113044038885451569607382571752280463858420520410106165573627468942180403142258359694356000524586281400070922766271153933953738282613078825432836187302985912890919606761349216134470099624638116066014399572202477390360961467579396305370721761556927846892737886129558605796325677753609605955497455421396663108649034929586066966863392985697106894568104147845123838239045467589267795664280109352399750976648796472192957686687341079638719165215094034452324637935275876494358183846229498425871130737053589511099517002698786335196411188035738108549549900489803663986261676916522113282687886410354502090189789692588054459903701848107424484706701296006705259989434591468951637325236618054759856615524901694199964603757417218850739981523305901028071413412852795127029861030901624335069716974461322976701736576916226873914629255547034302874835663340846194505293862972785027068034467533865297904265197723566307948790845626714379100464751344659213213075232799188009031790397602950540381859172333026127491647551717630793614479128108526437214190343832429905098531463225766011884356462031362242985036961716491451459931039799600997629049977665376082434810962268309206178353204521436813678761467083028157538127377953969376963198232979888766055153473550254418923554397437051929211027320855811661205998629682808663218485299262072997554660158686759910790778789094602011379475695185604577000099299528811581315634377631940816871720744969053324840786044196287652625206289843690917409872012854629596404524871500041372045551423926780605447706373748147234687383054452675708374485107410014492317315735261518245756607627350403098044507781860383463557030563472080863021938306015803846322893511072882030802816080971109133164456893440896859559038924520836419932699632534767135493679038600959701526368609738608500340679679359598300570972422328677003978843898530709942138650959719198604100807529968526048667100558375886569032052543071986266173446452998039663802839969377168245061780325555755667541977990664464906317634846370314319889492159320378532362432056544717932142728905461908136273559716382059173392369302002804291956005851300943646986011053588960779545687635828958733211872307229441671167522777831471437136008976407935318917560757488002343263216455184368600194935831434218461380742714758957246856768980863708369052817897142728917720177592836000288624302646223336134542135952056399097222752029970188090103837750106297580615444130275380171190563724312796446987524882559800174201345223935312324369368635217014487506460838727243836547811499673979485026551240151058758025899248085643503665348249368202545118191085203085099661016197904861356009737809312720777695967954748407510412670961441197184542886979869949194745515181263049852480239339017635027087053530328816481418419724356882947495147805340423388183527737791468153347606346246952225551323010955280834362098562066954434113443628810912566475865279208443598004104286002596795419615815536376561229800437555485816839229996644743436829408650186780465910040132998269786188286514253800926330893047128603876660870195173340060149844655003235708715200951350167995321805529499921034759572329717543234095627415426281391089539726073724239561696277596585112181066519419975379250788333721401363090546743247291119501727381588550715806371128417526286155505476938080137303090970130134259009630464005057498137342623559626924552628201995083107974384487676082403197575937686190161971353604998367451582761709092384099493399793199433372440306703908474047986657306748046685953698031010758844514115272554521896313407556530677246733887058570902731454680641833008685284665109131405883021641999898334684251743304701630259395904593871693352451709751898284907629818614235790841693912216175802285525375601488714234667447910266950745473759698338357061969242882959546183786196344348241595807474400197050510183284621771117673990431184151609996080149948310285197703236252275235808596687967375571864777873630593103995744632407241855370116572018025359049700711691465685886135848525121942092149396323257002679413806154137930477304359714786823739880190650996404964411875556818711255845144083918540890474442755631737642235669008935759539177906982980619587749165565498767890361653852082423965459634763370210877412356068279831424470604988012154369185632858212796489050239210182170648885378438845817082510492842745524602763101913699588135003182577524867414581027474969016024645464510155649211298877768151557455123125432961890557795197418451731382099149446439498025189173317735088407288902571795937583241886575846968492431225833707974855380520767491547016371085796518478550265649649997409096664998973473568956856803184884469559588682331986498652255719339455432929377828621865912819308830393925133636367086322788548140581516551722750626670661240799263082257926651300946071057464959064488085138729828301797744190830181525068363630441496928084006442018226827855201384802740075770872552021914883020330543073655987499377351829992135346281747708910037783178510375281460430629785304918843326685589623452396737898271501689581872082379630334532065885305253233536219017460985109700646978271535288618054142707053732691468659617722140419769114728317521702446424306795793833495927400547046884847892804042548726629920542064555353592212411012442834860126214182837523876414944398371581515009731505570124571621054490017495149777899696983490381996580125760373624042357204316508430448104439401296442502237201180442378856540901092475871119175789380253179201842933863775801510825733643455842643004140103069015940430684915358568984433054794716921181787898634248009834135018518430077798033311328360103232316000833264802717860592259689602744865853118946860011355318981988688100937840059651298581645728598650409921056078965255511784519555407232039971791070659068864454415291971883715339187173015799621197162059108010997163776049105485745028360299482089167599574311502248827703942113779034027947753262283789869764940759293069062850941369374575422881696213250422305464253394485232566844868766110598883052867428739632880019082839466979098960794829921591847752889431479563362259423818147356439163700251692095722053329426888003643116604834016191562524193069771144074792166926077609257161390472640726990456522756884467809032958150034403066974955694574038073654667091664716150092596373085140621434676939894157766284560109055507518383962724809021841998136118192513521666325288901825152231234134698721022923843714291022659909491813219166279349369956647250416011444392138731766618575679379530484218141812544587331758270809937384138646493838596991554484936875953042345390239845187425977011123622343272058403000668556746027598547173280583026901933433662603289145239495270079111026689686221913837604657060027542695830633928520954430408168754582800454547866357580825662221799006805765515711295943511522978779542776317383828813813336240106434925650425286403937157269863778553261884519508097950894005536462746776553301527170729490973073755213372895854660244199532789753250824440670513144284815478852097742288601464744560260981809803340067804916579750237389794467713301480957759309001863345341798073646491206787361945535955785300892487154507802143769554806294722422651273284675368326975301837712290349080676684703281245701281589976559595724641315805861893502218330416402148987556796058792304945797847976204197740954391860964325003799354586337499259891397477238068056945116348574269711824129459518654267758033047201272906923815599785389655542844904582262164752384692834572541988468651678323381684446425455759190207817675132652551493176134525776591125207561581412529508817127629074085007962351856919207121606302876884209371356619725329339764451719977622128405855686782592965474453717807684289810897652069754593722632613261674689935357911218709004113263960727106085863251460652832882250848376132132355761662088259146605124601021384625629152677636872899754963626229597015181584762680035841176834751918363812612277474598914039651135390724392379158127029545361063816592074517483341515293000909161252662850195127162432901486492053762709866221262675681009527950619488472836762966574764211312982224414872664711517429300025937740184924670777861398190446075138325712940849650624367758288848640080983548690087122160850626428041107161476328815560103267913037500453877495337728313748859705523786496674588643968964723828034175483203968221014146739312680315322783843416678521048117368328092221029880926825819074880763159164015776375320635962012761749067682871403181722912271864960642225772363142611690118464310446843291317202887347924542856128477797149036560411484645112165278671396458637359539299092408084978278830744733668896172692188872016683436531933018468074407330963291361114389196268800735449294931376652679494449190175014215702539801222929728746626898308742621827177522625749396306244320795494043403317900287594349489908389823283159032182857699238053203395656230112911052811629907230851088642579661533665113352171953427164139793472231516497113652505389925997852351834423599178028910114756738340822452542604425432502239196405703473425789986633420563380432557983186386457337885007755594785690213126052483031693822884873799980967483193448190883215389914925844871714234987773653360074624951884914713085753741461484762959195357652707688464188718323478631823927696863837283633143283509296768534734843847324830821382454260045759680044895491437909635170084398048965959581891793399036458107550735002129323764885463115251247614717729945277908298778409184888663987083474995432354171266938618137410269147759403018581423142344678175800688366439293490547243660507772498188852800912860764851279912384186856804606983618863852352986035436227129401871729113716933759794850184565199732661674240267160375910847864033080929858386466592086239530132620691906162389271105413075520512091869278886419869513295123756271156751837810267042891728913582066365023694237417536312152670646456269695084473353061849543846582580151771647640088652084309159320375395155151373510919225144285851894930303974743605611697011371246732320226944596868525873358377786254755213090836399710677233705193421503825937968669260940250642145496512537164276844800904149821182665393482708084965627057460306523006670295162078706040590462089019940322780211721266716560726597876005985406391634403974841315476806360478441816639768919556303012499392103045568248641186486643580088839796817686337133810713798098290566100590262028355957666108973517315256241220601546010211300933362118786826942960522199947021242319062835213718437192075507526985770615963273147367046928413213648499256574627920578536153666575263362226654891219583938599900651252720298790422936540095780984333106760063231615791767470774182552392692295066442610840086478930715572108241230110508059420035194410355233196335026219848736564012387494328600142736557182352256389808356928802349193821064339255645053458641017586117055538587223253760372169350727903655023062740095293073714220141439910281538006129635033897556415390540754661096750916797739654407660244528726375162803557211858629455549501397775564379578859991792335793412106385493236207875287266466299411600493108153563311413138827232303215970410432835201696395497710122708202456626450519991646519520753674341456357157083576600727669057082775798384374311815382445401194330247540610920247444572379763894848328178419671002697642570111969731090018693876473530014774989376313038982514824207382793126629702515091079754535141300143372009268160791036121940642169912618827199225389844684942248690715357552375155459858393739179608008513821631828658150190631256938485833547907532234634250404162621809068784648963312662696868192728541947335777071166000544550555665744987337820155966923512329720755098314865462986645360519469525141224452491070282784626092976246605086538178435695072247542803514325334661473963088406848015625670810650399781970590940971829274023026694796022525719505192072812817230809865145804057996828090942692629656691326432995589968011004381117839535176393548072505048386751116544206366406593433763226202935425647741076742806171344742526906122684790899311811360098896875931793220651289122086721020857432888883011069637242936831418070192761824404684378997427244677203718493722993336008738210182481173858559226484641551178646162078034321623904830702009949208316823870575797988101826626159617564320168058051195273718729751002929455917501419391004872130714484393969970011640320899488317137832950734580043258511429892298885599441817531505937141542638804228759462939003168783147975538173406910387036349153501106245707213538279408337482150708913200898846691089843812963568154637316623384841284514271783455585203852701954248611046172993271257509736434545594477816903255664585740974489069215706129900294772527195414661228985312911449895203632441710263994308193401065246549773498280011780031911792915760303486452576051528061550846347976009569008510745464540075879251580691499097615006555428672574252757936734392330959801444715487322724949952668608385085706332066517541000046053450160771103455642819865350438996067367637017122977158643653180758700454239823102551605826841202983560989664249153207857864134366057501270107187565805397246979260179653096048616909848340746649463856765201663508480201812467653419088292595150399895997430631473448963062629400426198032205657709400168280641990420135955010962309934180639100637032456270915048895893893652953757108658498834479441833594342231386251066801642448526277598502037093284580562071197735255705355872864690585928964824246974531608944873884296950783613330065616622568003355456243152315877663789132019666070910129859394183042317858644003343825541179916758240299675585739260246810681658389641389599787857122153600609599270567504521868549983996197094952837766363034853948122932866426535030733785395796731675148089534464769911013656823818243304829999337714301940271417890219920988022111813070024060269883027535379137046456216013999194396508477920035044262349293991966794973267591872782657662371757793602169594694890787177152975215115574486169524508534772701559645523737767179600826210507899162226482466778316890127915993902455680365068793605486878409881591469168473213485300217262929654060536259256609204743540992232169215747858011918034196648556071085556236367484556012378550898552418884905839770168212872680386956529977954187220500058155042006110469733799030946872930262406007484572144542268109596939637443280539745463409576602820261254309046159310448165971671218233817125329407289689527438276346323399990738312911852731352234794592497669606317882093258607178461884516114722354943051473733229963672982111120931622271406213381750882291687387468056143604109330447798826869880855914016219745850812830491110409807117769940146532156740627300481958362805000118867115167275997877336003298416675184771063790511689827676721225735900685533940326943820291873969371856641722220155931503605634928739918755380643495432187973657477864846418411309739616118091677765293589797782528364318548947756545625144381816419763294726326571094121895992643489641443845439267589386553370600873425229415454129463049610106912806096585762145100500552214313878916643234153392693267200741450635970215347540207108719875469046551788999287090578262449845967587602652522853385098959346692325950024158160665436033964315047765301380634046004846675284254371733643955998116129550212592015608966549923511783671620968080919370691197517132168444167242279094484243344541577557451588754139771015836422265731203818525024920912338770376001169677329920535653884892847558614202393486672972067452103045953395771649908531261698034395925906816192565157424723154755871969619363199511451548670878424060692932759827677162820606556325324261572558344269201287401762774414195211186783029778779959764577636013394697795383326291194635327300832999171825960551204276938453673773938349464375233617431791748668823997906416922181371291254506592406918743499111260526741435760414948737867059636094594725449193335858305683913342799225461840418529451489666394095037112103547618270306981845447605807504730233874384457870684201298354315615147028035513379201291000716735514892148976981931734761098988232857394630357370969349458215169240821204790967556398212318302417385234891649606562266504223477536136504644754024983743598612386234122348481157637953420361908861520233199495923420287416974655071252053232663977517577500018241033555667513314273019980737578313601736011371374663916237905442373402566361748318373038516014608694288587261841804274543491148476169667275833602918697177677468965482147346346916614559206908242378155342731546963043022737860387148158064906743456628171381387744761531332019859254398921520875989938275978702235010926376676853999340694464409829991886806246679668056523278298265227404196721814688348535213672281682786614142512141707995285578611635053109288654073701766288685983958444545887861334576615092699384661735126042414108470434898141222187115541200492313914407885151282281651628202085613578751048531192147332167878731341252920270694065343472251483085317342399983512899306715528678755145272314351900845960903502002162415264847965080430357871167724586953539013936003588402804800212433391828882770614514490215177149673600811839180742800397669818873033527757881809900272314891033677671381093757917923574246396686882203749248807573007998900617868465818918130160102318629280808769041694892297313979610233257833798946607779289830716736912121043050367427861917099957473644594035147554777047487098257554465194712473840132798177113993527755959413198521724802419319707931377189016833594357028652937575835804911515837412088586238458158350646316273914473261969104449093709612860836147336178850645872003471539725621224276011435982401333504789075232480879640991293545081369553551285176033337747593785840524321857544530317013594702113520092968412261949658598905862186246625383839413802122404765939020582918863192309891872654224213943364724121054171123803890721311646047446505564195449794053478088966508370767507262590007889256564059751533294981023011311815648819666186438609492441516285795922012310816825954190111525415736219662803747735657027301043782798037139836294628843453998258159562890721137690406897849211805006751677009853003824835544827172544286257423590256979426413230860392975643855070175438017600751109066465399996862317596395145237544567527130975182581220109714291750041608944595079829086840835078958421258433893568383360578404944876779903566116148173644951357923131716668874834583960651234320567403857273508729302995060519890648172335989498327673014339864033523155246461405162094957560056430023915767690103565077705843488816421245015839384017498106760070769039010844855200223008273653932718485355167708687066505581012869512936507151210955453584246891315712114624625948166654817717328373216121679530377362887679303530858049239439349271825774463295222131117819129594893923497472870437762954641917202352689487139822845011170352875729804941088063120128506342125496622737802287699646758854196482612998445749845826916215586528894318360525213005582205974955505012554184372668375887324254498720742188181318297666501162048553903561546155831181009058788498644989074796325042295482245273337509565727861275586287962478472459428059544888383067836686343869381203334517870056182981916984820768940812812557779664318616506457767315749936314212978636403562772071938512677099732350501933345717632277558940531536885138876599739258470103397081721353713674532551353181705276176875754656230559253383621809789095198160475914727759269417995527142473126767263911822576788302253780342279276982642104019507251782260658937027299031946468379071795024236403134456600545804958031953398883870291488116524733100322359480920619557525094712933151560865939902791484932156899292043681641543421415469414229791780585219405752121661094017504938670266831992761545872116325912058397172911797618318685319293884135459588434697138682850901107918272955181936462169477769810047320399306062180155970566732800400634060358511423383914752221254665670466730829736327887411828418918051374273534945357468384390051681700622535117431540915167413260929645973727727709722677241247217386860911469906049565215096583905524214710062527392303551997132230887890957151370226677352564533247230827965472155009008345086190008590345218435192334541653662778963353177272317826706808478000564432094702053062907757586934095065250755828289555729300181840840132191577773721278177553520988138718924782513091326347478111196543364921788673764039129215917046339678963727047467137755490786735051620557042543939107247526747406726325554858173897837558729358155529621767664739385614161574988011169317913289878578775037487388748561270196173465725692642779263400890031979407357523667112037582522277048765275401062503888426311398536482724341223387695170305897046499767133432870986921276696287713616628196501821079835890633403591776878017845969547482049858932341467184117663465686718181799548336177706188069105767149101171390820269911715889359130957640359909350228378616812583094370038653924381943545956717078804656230483602047358996857830044669189042915223229588998994659318544881492962280498210099761459480232662316733901617385389766147191898917918833610784075885461579608500659778065716539056886797154831299926806981527052175645307062006429761999575837002501327899899576090103445731520115516678881811499940960841097188618448469136297019793234334676449505179864995685787695321612951873650529558050064090595247607027847202696278557563479896824480761129990282055324926745978332930806205938059183526906921429061555485480161793503248117351372955730563677915869789172500125618115978819910704374023352671151895915690848264573250787332019834994630417459016480542771593050418015883120203766829160271816195365638672563179082187061573470288865733884522429357732474271348278354091406734289650645882194370835346280770244086857191357467029674855107066082291064809465049053763688989643217805729285631653152247060155012118266727698436433370459815945110759835639752192204125839536251924611903193320956722916527033339966749457859452738118786498259120200672681296261921007881942510913105537081864875008538795287918402199718747086097513124548915742529681901608210328100231938502780793746451100053961331097664538692655754337445463762192524725366433023394414943408450015461879544704290792494076103697337847509829695269867408188988561488096286141790916842521735005100854645946459345924990669953373135241039840543646827099026643749928541652142361256786581163701634434243805884704519991501691370252170806793131910622291011147454686113985822632116926027535897287100484410224195116648253795305387593290956235882537924946960132209674005049138718655773397960259091421072992123471271752444169574527740673660599062345227323200216632627595709820924153866295930902133591034080510698043500959625627401422922230615209821724794270877652835592685396102488875774243594120967318453964353190917779696949599574335652830572415025061678790045782849000757876605660519830792542344347389483569199474411572452807294278013300920883974740564660085315250560175263413613663530771148167753697797436279677517769668858060987761424214716411352156845134971118012859990529758783850098293331188827288327174407739457439099486654419018851004332787738268159920391479010111330141269811865363838354511541636098782236522136953789963729342645695262192361608885388322501778340770592039688566875960701873427215182111270088759176625066159968468353536866272098604095854783754912528175960541635951524427160044878512008107066630403497511827638696522000864697201806451196427622574108391135456281795043730556215684339593285015578592310820218128476103975466700591677409398479143671500720725819566239032230023403157940763433846869374839929289871107204712904823152192864406326707440186952733151830187804269160730835900732511245037223142037386029317804434658143565807271833660452989365145697866667634716730815544907274090476842062164404811459034752372158019329282862477172175339102210961148932383278770571164603328189057945510104390472272667276730264144464130621838720398252774872835036605470316232361281328266537605888979732940971304817814380859832736360385304736360646267859788175090397870952005424074494844099591273596443803226537686298337855366429368827904789287496325631456459267892710347665118948828097481770122424257300454171177582464562465865268232697636955274804533558378207707083970836242608626713395103355664534670185144403360256762302858484119485117517004238949135189837101465744792048282325595624643520326162405939993774385132965558209620465062068182559019312669022857183371212991181399532574336812883027474058612357713618534126571899545018044924645079977219040194468044717246876026070898694124338594535028151949348516645219336823475108980093004847091012730306449506076920391855970419903736812316901469056545584321570861663355632932870614555301334422854687789547598526070649694129880218511587670694977117086422575459001712615138471256630448337721378784539855044380731780643568190820660972326117354522944712909755418842109418882449475808196894730930056484011574906414137160032295395117465226940875947673609267131972196845508124616410275361161213915195094148241116691522770174111473043561298867145774376422159288311994228431342663751831634097163766358253114645850766918569582986935317175365108065840354243272425650084522548300047981899895642576399575918497566065694895253548882670916652275889745298989619347071066687611547638096568875524027567836595852291811031257432438335568465760862136185590641875150607514992514817137898999247457917021381122467606927530373280360989454870919519810227566271660627577457556434972397255187566994106058009505610075285092830182433912932072707118898130680845090416317688501878426909960319948271830306638193392236017749844225381648615173378672104473951226135527780261508588661327689931440139305867232719740583283122788056105566287813649104128615485147582043617550973233757847309891720902851016277269787534788893702305290026197632722444559203367453726177737761768517573387999070193213562824890113188309483781883407517294659249221444321766819841936578318869749399652057148903915281770439149727816568386387120708085970504166368586936632017018896394195795295331631122471786015989723810921993120496973322851986823038294382325005774272590933694280457102115097107829768732513713993871827181442794619300204108954980760502039031307893668671389267971770529603309416270216552955449165974622086390242384085628167791384665304795629545375515956078612569851303254721863405517487653821555718957572525446412670177428508074787150698903411116099228112581586376871145305826257401483386942272973051284197643700942228866806410483156127470774569869852903684461795397232964655612837770781226079758489788836896835883200127781894333103262590957040661592056196075715888480714555473235489990542169918336868122219677680804694705303738557834010187788859874106005783354348325281670284725548429160765943349192228124380908366867407333960531935675414922124787195627753947124013193811146097241306905669097491279026607868228344469219831641583612356695225708474613385059048147974847038800889612259289522422511827890773437587078988727439427538145206399650502460606340476581082635568926855952660525110745673340351745212844279360466985526111508467485993578938885853791719509204577922204865421334206127971811360906702490649410987728780206920305425395372933873798891500037222444924878308491749830915231639751736198589801274549378813557630709813761922060348114875436970854423318848579446404556777303219648867169761231863725520774148277189756854977405786036979008550602960654791464609254192853374334202698148511833912441019248229336943875212267165889385507967934144249690842101045070474890500920938548384691383948218881841533420842330751157118505680709626084962042920582657963093903953379841655602091217029910589327842514133076544870063758616146065348917356323289338252116365106310920453288766970373070487068350396692852141834006564592031012106684523524161838628693401026848670147998456469130404689640037427459989936886782684657440458197087347554740913233419480000282386363707355975070835431637415070415220828453539093623216682711775223146364315696582335891725223224224389078406103648745480329554604760355747722964206086428359377326337687021662336031352641328148160969858094783551574007501695246882307852155675516912949176072063718432467676133721095670942718549034944590298091168197276280178667707113035928437766383833069970851865695560525203018357436428006296479614301345102944656446917617696282964241919801100658696987801246681166973048821148819908298814751772902303164114727491185649679676445922345841871508728935235325912092626580245645891531960837913894026100670027710876617157561101390845008437900215925233633730318035549128006183209587301987236738663026345545773958532589339074438066567608357794379853711763965477838643156624255310891504247360804972551675169539394477255802793944622512038993054403257816766084427723201008795982093705380804162671827756675487010428808035941945787624189516184241770070058789380316211562249497322950637296325579614086162695872681501741060593384154530539320581293310538677351108441480510215542689140010336472518391570552003598744507604341939071340164581629018362308487310980192156313021323798444024727954944268117345972319654436517337579614131456312405127836684473870224458201818313963303245600651725683006540655690150631179167821379408342200870372110437336013811390593732290981690322242296204087587115434646502335703788879367361434713651197920868163117055981084957821482070014652826979921023566129274868720879338156513781084688247175339240727413268158740246110148624208690249956418404776626129612192458249445089272973927083537200847107661511852065575496121357403495304431725933750357636713422776941178101635762883238711438176596471113822278422243509971304082158533065703062536582850378313148858304990383283159829023262500369330200257893081235573712763282227571228976693891441243781382586549653532108560471393903527898072061708537876015590593844904392968108241432858113315089706742329016012244653171616372083969421708027235832514487492313468825123316814100023934686636299316253139556801137739556716035796945596996530695595136005921713568367117816127922024016210267652713345656554583068803242963919223272457242008633460354428302679350187873689730768484895150194004225955700929322182308531056859378874012194871483084587978106931047771196513221260667330059694453696900454939204575702423752424917935351517159537556180112433915742355817295714346083111604570530806594952688154766646510957079909515062601395436026792091088066927863104953231540255897455279155574328706162526045092530332763349449077573822709239156903195168951165388598917703476398443452679931620401016596090024513684347154947670528515766782660262663164911355194452020299704667438997839708073424171764890852606667278990380563941216758213882353153917898467811013765326264333801797169678981345789399637135221792057362007058947446208708336775538850510234619012019522714247175959947515729878910132732605771502240511588542714552418171301458794338685404430452351007009050484984133367142602716001922263965957298975309388393306588570876147866231560589892505224806085794670922393624670752032655880047235055618542011936813205776922663407619022263894356418965274276596367652964333803222201568366929495606475112582756875394476588009018430540848546498460274718893886061985555321593360660382924466107161696888141906198590323668836050642379658472005101624339322801389811981487045854972883058336233408867163548494418091327658438455770340081299100567250258520463519285638445996271356845914076624804571496369892976411803178171903488101475311179262905973874727201424268214637427021236210709963683029632715387513847987451757102138538782887305070160537427532345332295155649870893605106268098146566417381821779673255250895808373226892140707792706118362844294288213116750879270352424191643185437037647419838489042151250500450299377621473805400490421589333944930513079405206343579965885827250505164430703889340019850917795086423931452597233286213700807891134914236863194836411988400921768334521301610301061053900029246259783223792256845357983288745487987490588721714791984728285395877495953514178410493794869064082444208554994242738376258695894692087082457808799789448937353108007226227629930391422422672762218994557628776552640669185955645073952426854077184172935864877405953768089818919318187300972751256342848054293838131173410924838145857116537242373240611341855384305400406892349541528891741283473341117366989655933597746100722708635545541403653255694161474177118862514401109837568353897129864840771455037534580815219510499784484491690602856863144317391526218685370889196467356720418649404250512672131195761651031295459019999318470255278657156625090717759559508995628524159017807849395821083261156336528504579413784962819694549677273146364215535309855828949385213404092042753344727198315436173525802331273518815649116015775643250233867929457341705455308593117249446638121990755642870377171187328062834987980376717964179384615682145218007126267393799974608562893503938644742036244405295188621032433483800733775418555221799213213210772788644728935329628724509525548999454734206186030249906799841999477484218360483480145957462518962824906215962447251885110420732276663811837053367929532501077384454441345386811730895106207313209814364186117767013479364766234449495706901821518008922167182876857034588063013629534289226917038193934971307417430917803981329347194074676514829257353256090644653900844400088285952625109183366395888326197777422653250720271217581542189842480497216779846564158622239958859938235906166836127758939686893017474022218805385212792726462130845692543540504615214124745450959944583634381145551450693781061645692081381260590915140050476221156047915428922695217283949458861764817557866107599116697686282512286693918763612294103536354240454699291892636064055654306818739590677319101985981791368024442720680556200929929108112920194395718364831347603466961487887664084426159789690399630197064408761445097732841444392629338259923880747163877661254722707419875082307401860664748542225378585956107083791234813352865231556370146790467027098366282082203026491663228034357340561362991727326104346699251778777828842354946709354876411618026394652512415864236602986850782456304881199155255159322337532537777669920928778518511173651033460663010354942046534260030496485441087320387703773463550945824259063788447881730246735864550261546194801606109211423913763652138569868183374436064452151403218921665850633967459985813713743147384808671086578389412339666425253237026078119161776736135076307332101138010602452737027889419832596777705109666499082260431042971548487167506477597032260297887675790936913136776532716174557877064569399790841114293867931892116320486050260416926787613629490670942072026529397629748478336480626030465066402443902291639505659808008284583185252324733724581147329509624237046750869796520900465751682811821239135595156751305344558981313850287552289793067367106322029478872598034921901458214048141778101422001149603717515280134328345347152205006859000134082537812904309560485971481952658468358068132132360626608874591838848787074983998255899724561144393194695332783920469212089389223604062268778156485457160077104424757198825050537713635298125137511156016514449573525437994668957346334055444047422198848306286835776836046579367066385749032548929033885220435923494633798818790343372166217422266824828925103658420422008069784184588823512004852750407628482126996458563350795433151706589049696915974991260564315460864079673162316873766556045778166945869447352963517374370490277262457815039605283331844474887145717095166785535949645157251973251949741912516276085080075547084349356830247831690111822270995048317264202552784277254411054576786468642166608504509333783968885581820714500938943139097555800169837220348043599450740567219657673936495718680683819376754616095843129291399137058549245880880717985551914135399750147670075245132805480941331370597370253701600278356542995403381391805960104591034488532668399263341961193623967171729139999037476274821576084948660895821306790015666878645133856522084710556965288516435650949465347162135988968797058159373671116510942152855907030910535889405601317228655105976267144580921420935336642722960894749558367922679512974904831221683779276028585898222931396063741742747087064345235118730652746226884497723929566098282068466754523666616207614683396732271398127974527417530265812440083086916349790455521783834234933703406454116157596942597776995578924127143305419951228919519989975280892520041603669363831614437206954743347352308786795680077897954725613734943053092420948145877832628845990497667279431160415714720386866052921818937495450567833232602621185378429795423662118403741910256282714621748908822937611729193467150005360869261166274089571169833481557569394022418689562238128515404092514955718695237605474714197186574244903936609868288301533942863291691011031089935130269946251766481647243046037538244581015186403878766652346264206229076477451599374836387877783536143902108962965534563145441900459693526762163797695639859382935838186706107435022750583107658640986739892395773781703162995869496995497822124331216563388474278778087034089338060257516772128084107257970505074489340969896949412257644259313981568024982868718778673821762004424444649427747420212846137059957696279587652282429634402853559174703902207713306144182765282798044152225931252104129547144833918913579394890443440145412001625646963387688085779810923146759475477663556562204316606595503149518949326061341201523370415048805187655415202316692836180369244782378972045517480043076728858566536965900723259025764867089707650537438886767701290705536512302413908561482533561841529790907629173210417930114491402913702639739122405491166269277584850389950001002898713328478498025490234052662271886036379689844402939516405268251235046243643219244996292489772420668814374333962194068613649443965392346701710299616062653675522586039110006664958412665756426682848882502862464998027045751175687219323591034084132603001410199063507962593263132419225832359494668144841369279417684678008888868747694630622015459208473865819270359321454644027551376824964292467992584322101085755889563931563933770089274736173189446429402749417400153917612800720617276866610557296413292157841383205271449588064410838245911329075657584611245533160162196009618607637484607188610840919317060587879651613856993724749829835708205406685954104750711872301448644875371916441751718297718177215862585413526105267964156906581167877281770498772911963512770192132880311002228593680063106207729241487844650831882169038505058791140681686324782100269868446214527755691149396291969814765340937872083615608064265915124535547604934310255591324314806633283147209238541621053415423797350203601303184672729401059935148994896041065469138251498205265683881476751499710650029841004684800682783408531155369156749901925834203688112980504671143323153944066903131681794167002109846289619251657379584001688471240955875484374789196699872299746976222331451120065814547879487751889878640181525038358259328591212868502481517106508286923395642843345700797572912869635065094142930582397052256183376199131876326510091815565004241257312076009571553739048776489357936395397477774692766659117121649516527149983523897882978040576686315841135968709812004218261111349200601582485095176264460904324046072243641885066829600069915184080046056831108800650244042169005631455590535161983823321219672300939781170283809626560046628353677747525471449894969469755024411860327151366933914986238882552134046187457657036250414899249900529301770773166432340289631077394390580106809169362132989490470741223615052548596165178587665548474995883162147152631620441217494018642893831489973552119388240497708525548511097531038153254973678285183112133452917455350026006518178487426355958653640632726785112517709598490959449395257175899568804878873085659333994889101624461877850966987758494102667678551684271573977869793817623296196555704211339594344744368715407052365992506454155302738436858266304681160590975879855674172947955292390238078037864263070007652436028856288987909345428938285006569307828281278455767393014506335119287614076072962754487550535868102293844920494025971418929948299042892732450476275832632677957921480483552168836865395660321674150072617688197859184935014548658268979242698791149133879111613379143468156115699872607030525049445275276999846160902943075883599956843818470016275165007090684181567196815124343384866365643804467228050928045823737705647834769665118038427811827019410772393115261845452272768538495198783476591156614056720626447960111258670734451179396705774736257950850618978108291328950435706156277552121858242889728297158980373120303083376028477652744205468736905182332149829705051458669362341105754436340971623480441339512641768053878306110009251072426319355748667136785035035049553458111789789651351229747733713825709645722357385867620595122163086050079256615104021267555555286534702880177686122161721565991794551406423255642712776005898307561228854412296187739709747346633095441889520013504964375048428794884517979647181724533855927831539893089050257734028255069141638518566834688695644308860360082813848256377143617575571439821771845637545700836973783548539702075404712092258388538662630988981144879729723791408760461214303404632136167548063418470074176143144653939439746430960507328938637497767510824753305182225925970806017347816403862466981243549069338069566070594235763514968305530913979572133138541084247929536622503040590420594371577343082960799915010782410586497570875400127228615179612726518364225821805445711783923631701927823364562642526921302923165636969058266805770220460942760095948934185087549895055436637163331487838168181739724601683261855193172572537266816192148197676882422307653772803563990380167034380898134281131974820488159525471855807763007091446851366920616212876484091402632655533819741039054187854898793088645003199292691363131255645095049371870528600089618564039012007873367976839588796083029034762717709279982624766672427262472014533062816268500632619879488753166540039544615031710996100669885979918488019318310804635527527568917510371817413987453566661687599471783070837449698832652274215663484459709354002042973304522013165298547832188300720326289486307199112443013207180575824036154444085446711926427035238021414787202392537262669367781450223705902968039019211343032341281271960183017997107319858845756540517137383293935166959888827810812846592181879956576046103228785620131839232352359777104914010829665738797245538469304432931834432395992778966383310504606443145667422168162678685234454674379018566219786233642187266663373554529884917920900898677158351993167017877852749362628294163729438315011619521847378353693711485951413733729762860882608751840024589721748516718046219563527646635869720331964206779209894372492486054592484619212101858364689548928194914865174916468313718938525304197062092070300231452540134490722344751471273743133110817716361590307538756716378182580634883182338496019479379214662182473768268531069169844576021654905526165378905594736736136229430107341570029523086438635097516473011562043334543957182478480658540887733931029865375984452537839910967760096345376907000270008848232821939062129904403893156294287608451412814336022194286808175779595863039533452708941926419795817484182994043556280420522275620986896726539317687363826702172988447005368703079820012275812691413554309132082624803150661658625095396656532817322393685804994628284893005756607625556973406139223141412160415660087579619344428231619781564718300976885557877033487502767226621598854634302530467587120742222131392421040463314274521509620998062376461429372270550891124018623075272862923545226972361155987136542576956992225718501657601060903731311723665470288327120240139846735273993724059394706594453921329828419319650123496505252684411000939102321177014128325331552744982799871236352481040079553402045112731686382364163346718767691984074509322884637165208443789429905024235843212308422904420079819567200870304975096080208271207210659199017526621163713215228100394199428924518382589435727092735688881691382500351334018550677412613875631151492683485155673369613931299066371416743498691594261247317851329708327314816187997062195184175587972579768869577363795529127322972453898528213758107624720001240767224844607255090191218559609945245911984261205825346942173952623344979142798050363758709724343650679677744750869375746300801614502387774305647346870267376617140935112647432804777099303270790326148495285688259113832950316808610731899700105043670721158117708169554923948996405606568004807994536387860485084079278558814292374487600668608874105437710348634993735176022021314725824694162357211110577059643738312584140170927587530576561334430699185825232233414411517834246697073673847326781405712880494440493009193848099729886450586759110694414677964192907439104525848264346592721555246064138465370643564253362229270821887538617400882988971943423806239887551003946737662666853764147072552772651879977916340149362162111874584160007512728310905442255733753125231356918907423398109883062451951979593715420448324305305801754690204243175876457613503766995843641452024608695111115929866225002347940716527157885022328767324602481721220233110514201371984998545687004368008116134560737621724671112292685744703062482686481364028995386791118194891731703777444398062543584736211606925305865306736190219708149787242274991275337140051222402369601524045640607456131293294006567618702936801955153876247622430614463535888862066660458160347944699703212600822476450961514118213151808430204901413105390073823510505236559296668588588891284132032649864220139397896799723340232930561050910672305719933827316482423406322909256531464823773716614994538785975866289285963387674966600167552597770090430936461506096180641663929289148790762898600459863748378769122957518917526903098592005532523435315187810518685164879328919577306036502053668580063519242090193068900805408317445811236252660999082327026238221426514892544330916291289026747339426915231838070455032579194609080163028178792304103935757725441175514170449825956469445094519863508434030397269800024344766767344751136135730267955873342282659566491078899268920127495436634658576416842283441242371868140759388160346212872217967785249975069096966747040056165947731459333570221857118217314365778145850289567772968398710835719526168150313982396663511676213878958332306505024415684103466951504928389836538348513874090834974760162684554602242017798390733731054920644329022014432992176282453752087780487081142072449368651139026981728532993591267749192099534613534058121418456450680313125240265713910943692590604586500635569108193891508457808400498255015101732065505363809310743943522099613364720808243805934908609042313347922927970174953525896542926281261771113135178450803484176437015015616795032774226686200932123332537088865402091275790174786204436100630530480906468942443191590218929764091497924965265401808231070023123853041436614810000966774934660488628867969280102021716952408264039572152829219768566013815740180638954588269641018207586570251433790073386483707549118102184994196298228075522154110490171918185069872917262959059256401101501369372168180004103431725896287835586222313162763203041856729138039809889158253190982277377612925877429929344717199234409704394815533335479506001892724639546947725285566880951051114820623893296123681973824976371567526895293275669384605603687292855182892130893736615989854048048934359322062018025601775841057218207580307590482312985874899982366576941711885640593857558527553774030736734095204982590261246054155248996688983972573904081542386421231178220070855496195847642355576374397723962208335879270050790164937525418971724644609838839068308286309268847744746299783561821436798255768025564526441623157374619931968766761851960129692919829878702270898577288780831287870466297320733128360130227062655579845641738435056006597916676238197056831197020884865260840379674062226663962466112420296484827419311287384342368582687999594373625481769891334145449671801098328451849716252328729992708184064224732340791673255276068576442532858492374936671659463712364829899683429486263252519491940729332220883455922427525834607061004147218901151818016562582888060789716894444063331919589494584965359716237540434919405825320639270571200499876495661051711248125302132415345641065370286736317225835897173629783032981405652317383472610545332933512681281485154933036859817273430840188253395520614919104295136388987118304178343677580987175582373278787237760043686692063435395056243930181039456994559515341118985642615461377811321393669430468978665904281580936792636231502761865866437256574766564360528829127520769593613788993117853080323181966130528111655762768442559782964619048447297918577005221134180795038162437325149199146166364397601350640143246692102325866926942804676970145992936411553694089239857191732255733277708138030983213098679318705660475031803316683048475236651419299149621898493061929246954229514869100713417861872633794482066365654002583905573097281546482156195150561118878177454564242054555347623053068706205048991306383555944434669876818197362508577810306943134608376456150552397771585811333747007845435304700907380489683290292486041902157744909788857311452423287190432171042029522727783947756760422407315759477813170998428484069705580373184702942546154788227235211533445451516202393591797485952778191201716839912294036158955266728200153175367546110758486360684705059208588338259715038409714101544082220361009063172985332647292734605911896007148435624407965535209414988036247936439551906602044795727146289784897394681439598982368899213875453839585493233835161136625718047342200677048087208765268731239556095618940346431757870870548325394153546323461085130762860618926101692453050595209246745519814574538351857620050257503499829134801030138609590023900048810409995188264680023437891949001906671712529570808391971554347685039917871881934276782953593431974019069992581255764104302709566516153246810811418476737925251438124221874730572471294572158277024035340532226948739622307981461039583146160691155735548201690733642874585933972584745167862759432016421587582089270978584271007584915896758115417043328640844475252528292613646313499761120592814798285497871709491117172175966670366278897985591827585312689554022181880020544921238127817102076828447407111854551815170694255869541503589990092473369110116203955081018355320095655170335988761973860006840977709725457090565723165767649251024245834339841566581469671889713864946265340044011067177362581091558331729434602485985659537768815730725286241604963944199983019463280983123320245538097871897926199281464573343831026719624631388944243686716406522168686967260708309348110189540834505489389239568547925985143255141479186318444912770564596089020062327531288274423414853809371972801262700350006902259620072320149742620535256374356819272260754789191999496760720956342727441454776575352444229874409682348741973586803980315812196276442356111206656383965098204875465170151144774696801010702184503103087964588153341447976885126176388737803699510847684236784359216005798646627482067781241393387210720294227172426687786674957664663204238362020210225719937411327514196540292870447039195575761130772882655101809529417319180998353899176856411716192651531015589245755448539631926679654265897763907018326864231668192402702278481782104188258604689411495945081464877021725850350947357814718259820453562961897109214352661815320040508487137934803719382947609482153111320363410949711184082765595359371804558430140330243827397677347741364149880876722730955991528023145902284947069099874714115195671795568291955044300647840174321115722689322846196910134840738447604351866190904508919516308352780867208165976739600908463086273610374663075425222507663255601919310403637776470243460780820110254983290247723680380035240956585372075049996901917059604850170586560973368591028556675800051478773171729565475893099336818218665315734120452313161753503824515294512354728932429746678729013978295215273229970071271742244676299133798431669518532603322973245037725210777068882583840985304629845886587644178527249714736851044923850550387017118784909255651262810237704179832816506630794946191753008427536513749400420598416816369317068454976929437917220016346404284368471536352194647495924643048216175529164015701601294171537413188802914490051059066694499890379761986707493740326977934189585827077121815091221966528667177374971614862901055091379229412926517378885814181531559034911106463566387306565170445603457665691065646875962952002445810271293338944349827110525288279317220621891023512728392032701606089515938309823031237025912839896849195679870578749177547574104455648193799323414927716238332595142202928239055460065142203126214199215700554863104599319239574539971944521478972441360552722338581399672333263917963469034372712499315051827285217231805411511315039483824362374681607274098480630255654783125896711847841443977297616323730761369331113424514101132007496783919011831512412486129324750413540431925347354048247414510938183237889261757510792335591052959443146205943155461818646286128535363013072366337290788944727661204926948749035138150208881880216846038889897469429370264062793367675577857596617438240539453905673187796054091249088140556849857281210520553395082804156348640231388775793996409373382149231698379268173999310197680239909674008800550007267685454654881672519840629832478554940535704727170304313387185956565408361982793622824747604950503432137217397734259588125427533859329023854211029089053096316460020936770351899988872744361114006113803997159198479323401668451141763282562583460320995565585137661660662800580214034084886379110497956884334101361922043188284260035981819678186359345569561236027844837424156794105531795206314781365809640901468933872135689143020296653109119856316908387598346172493288560940677644781803952035314447477155233292293163716043493526948214001365151619623353376423236929794903991259916337256636280123853810958396326320476089543385815787186691010987785168283366913108266536030308123163510631437301470073652325093888958999222493416561482397550080751246149358451397972389663936229773428384687109630119793713821062640658837078151453108720784402700866907842137786869744661418904182196106561692638674439034137013737764587940588917381207860504622249927513506889941582162047232013457975699468056488602343066485234358992075110052309081253061061941911747428981464998838086307010513054500003910513418449274555205139270193527481906186453856314755115267769238464173623762110782174669102124083206285532307348809908796094170017975692531259519934087179612612921099944200300211956001969046086967645557827743134212272312939369894364778175699262256633185111827715369516961638683696420271017765383871151115077519679621364956627603422032418199609508170189540893478466799440942090400041779210894456853809005817510877558977239291374806313378539152007612471277882176383783839415705303315513661857273056257483984971148516137869010374171460010849910558884644937295578494502437210982359066086212714226751847703765742035734792964622262762986408762806943569172550593707701917415551993427208104732836764442809525858051787005545040439431951635481735547906666258398055042172317599310313248680035162011200748606277046960700410003026391676941205528596786556549962963987401599105621631433365111875870924415093314537105234306799760365560856422240631297505825006720639945492194269935196267716079006065939520441370287442007851406912801428571653457865491467831885382136928196569085075404509633004966479603869045677318740610757856319125807468726134275433035233096893688177821751909797119907415052455403168463212031434331303999988771839523453185915442449817590576800997968512806871207562195083422499005379039968502343890004270368655738725583806775405492679835834336305753923591579604455887209674365829965708219307273274550806197967404818439193745617379806940154033260346873455974930715852581873396592385444342994096923644274865079863472116756551720586742887031310673309089912812279178094404174791690825645699780772531694867383515524839327851801413431249633842649879143838940198935982350490527509132977591553757590624419368898404298231172210074109536270387337176341515408895262797997311351207260392600910068644954031557812699683208218978731028152652361126059424820220635289782281818805936764538763763789967405050509612849163140505481197597499471543119456741806880321023557246341140528950505071076911251761638881734142030866153508484950333549356207848666375145498591419802368774140339150773861785160744486916967732448242084860056965765482877103366553916801815520115888370020217487371072735187746285160863609650449367968802936892609847760230520868483395742679193083153528733675791432066313747092406844421580867178412346447503219996884583778575902569388873825596146806601508747421761065782127493477507635304937120355584305710055155800249051884343690199650835950860226758129341375970423812018732573284066252194617620115767304199679875458966430200590297157363407315624151425723973488493139471975487940708427444104215433873433454590037465613921627384332323278815355410575784594224649761205095694392527181248159904991571281868903052385562520018330358621842228632394332881444497836851196489439780876940119594314113591661392397727381266082084727654681955696989027119897949180125103057986159073157999404624204042735598782498568660609163906420865967164602911852253996743066223091015409381718482504527468434234750172749948389466860671562165636044728571334018969043326211355900486618863825524944833213853150622604307000206545112903375101380378378767765019247056403670848155355601587020175799644069797572240406115879283858966956057323224018210759250495260186677876073528798734526980228089028062860706201054562238059733023564926599172998395810433057419875823338541985440575967300125102165338745497788066077431026654907675065192293444414281479110240015490824085669819146422968315401895675245129695519700319090455852960786404217068089537706554955927563818698979485137033814736051447969448772770114895786845506167783169259009911531906725195920618920559175730705489629502164146161650478096109935125130073702451453908506656719437303096039934939430833976970933476227313742775060303888411448396613007657964818460442696926198465373469097353972963705440915080017053797405058177714999971885795523807165127094269298851485211904513951002283951923512761376896125895772814334735237151701017368556841157336370747749885254483549963931281219175044672768817690306993744874154298543017828271765108685883764257833735650572982726791553345531719244443799613922226308076610745180755013937444284924905005143008468731804605523449209604212409257787995027235683400030681336789811367421674470484175595218063341757168194602555724179249969923059795844791715000375512863849410532510229690337352487359410674676121559291928403750951652549722562055848589234571272722079634790065670470588872474621289810596225268725664919231686005747537384475124415261631747958652883941683767348944890686597937623521972253327126211042032880735195504931717163047637292963661154723874135312780515447218925334998111745233406967654188506420556126889308197045077058505735578504177849437680598094467955601322341934594076575656668737662786050433305024662475877052712963897826360260855179079544632632347659794243542222994142984543432803460962213797475792167314559483720816336411446310672192795583401407146047949938734752095113816392144005456895917877525213808370216320004318309266683494921614317816697585657056134667990484765048995379137914844171332542609829047887188929718160417384515069687443030156986694708353169397231371073270466077389035840217563297377334591761102772695809971382142246794709454683520514005641945321304806379105182609035349522694800837584030525035721495562582478910546870152076900316045912778545949205195888016990926715213027237136105961624861582906069168055806611850441539174574578009463333680057226912501197569685494849295982546072192663409221109177415351355043833500482656237498836519591466136487555046699602050305528997023943227990081260221811343085181425015289251029687419957242283562785616388301050797703121054423750748020001495139948265221923920530691532719248055106533794486666383708673372565743342229591739952201370820464207951896461184842590973003551680158723373990350988109492622143905474811756555070650394780019587471025826013992198068865293616995005865329556971028043672298890701395852259519801667644544537623980702012334849068654526762128730602760230783604216847072331057803687394891858678878504484691437511360649888917193974389039889457101795266368754675949700073270658739757663284740259349560883333428709361586501124182179148389645460304249294154888115282477491285853987142015431140009706963025579158586605372114359573747495850928461032145790066395963699268139343165326893306950238244993922419655943802785520351717503558953678004610682315479687423900982276605389918643919097308261213949884087954975893421433394817757468905471664750250994023997483396342062540763415605026813993727293172675429769224348585299399440760946667804974193051064200255786117504483258345131796001535229599933408831934592454511956831393707852399160301821159594429132978484499911902340803050142391112472316101499561958392699856136044975425280848051097673172885825514008763450984703104069484192823437757269557694647368001905665856901285590267180729908552952032505524034893325408823543277982251701481598972882737123269533572862600238404899309703662100383031035852993155728675292734393507565699195541728749479747681193358779974154244408655055601264321995058700612234225665307198925119809245833700848222144104655222248734501289877111499982358144383940952540604962038312855156900351268700994809657550554882502362487910098536391734095136293138628981177493824896475708199342681184419505738537209669141703218903067448731988189945444415886814679230812145332689119270468434612046422756354535434592335569041191346959099498166650591013110343851221701213587958426785052483151059907507964329837538137957190800920027589787283624640497686336508969287443958593795042483561552734949074609509903391601890248193514498929860551228968882845726595304695418432750240824257058691088171739883790406045158340932277343414482404869840584419384439398077742742598845573278369188236451535512078398889009617843735222701341943198184157342956327792460222678432136067964894028874070037219917056382614746027063621210663617026580570320433737642339696989452860923142128388340037851674963518728242053357222970149120656063419381916416077532422767066023474475309446499688181278775488245162036091505023186780491305676814161183263642982361554783949250846907341963251763064798015414365094089259526442956247784081816942808463323694561195356752329178179451800356935474700077403424006206299215572618765537043820107455102328822565178807876537026173329431022536205413248194541633474815824947697882850613506032039163743436151686132228376968630952986792887205156333550072554171160020113029872860843269595816720190070869065500927917596567182516334807270418528097682729594385150227142828655459776774376882100553900610802481992796089306556129015172497650336436684789868856525854287323912494114093833911864209355643345524250394448688951085352105486019724574727918578193067325615846648894307909813301278355294464285030157853023371636074999595927047854340944641579572377030851610864455521864496200533650641067892288330569213169405645121066322758605189330743768107432235608234582174941409647658041375376419793723717884060045403965467595828845378507462567163201727589179648385398390738912595537363382091243190057891817410718381507978988165643382612423709418019552444629005759093429736678491592625299618292914930317423540440212215357421168967766975100307094756595024518270749957678457583074936782913279272868846943296948275876567815879815877533954886405021499648696672669179859656789253304378388197085675573032899141970966698556902534959347723957776304766350516923960934769056393088147050673672250641889430121830970791934180396083430372833681308038617494722392092294345251748633463557651772994855090870057711577542704977848913393554883172671236646429138286945202242107029902313079665407999295740905411634499062719940897356835115867224073365938990374476546773281085508689662205427010836364066046411254231336994955195294758951335476981445469248566665285731756037357033458109925563213017776933446521343224522912587963632906440124020914169879699939441708201780086809999902635320755198108017535385245609925854643092175563300168293979221753948652849528102223751995502947913555119361893202498718896575096913429332161833719251924357268829261685151729477658847177662968003038868424672273651461091270124889595649113011093506687755305450686892892716780974173352045177325054198015005737724723089392144500909127641854231573351063507290092091019650349274845089430801017294421938960857278758567700722301139727858337230061401589861552240735717664517763000978267569763983029014245971837748200930904753536902386828884967475841043228144775440531369047380163441335427421220516635245531186971733437169618062090878949610956974840968722886204002548060998889342684184412060947712635112711901061541249867669221535571452162361474507139367786289326321376904966853750613348986334536236099047251383728320208593554506510941672380500998450026392844732268404309948855357571397594937491573976634984806913402861758916965481274144562514579376326574797850113717996987083373891471815315076195583549086864873119715450631745511682485963217490831759733887358554653646373974415592157673792257685348934487867357207812778803351680415633580942598123317977521297093493900932393050293034654106511570321963277071403656341613672970638766187077331226985680464596115558803757037924732349471632454010315771476539007247350519816765961392481484775428406688481422245709943469019029230212052835863060446184273934452541649220732983540809745456746655070789841753232197318756241798009107501088473995696902500141547110776360708243666814578072141568973166868263169735593153683028805360684218807836462708135443755887813034282667727643019410200595544635125561008446564683985214963010395392471879643543214675583328540346634656625092869184441038297090427543404681786625036521488178172709028857382758338726745560373804240933580725920662785788375233210336853425905496819221212806103477153332127793108275544846246598569387729297084681956892486050297990094852604494231975630410133304043675113036644817520969943094214193888408074631538520418578289582775153544817003264472345657409453041725332242956808350603425091674925091456145875407895264054915126345332606462857523041771881182914395288679327355250357893774544642929282542514876599083183743728424392315653729371100762873421761316669318554706521251181894792610515094577374128519487601475288051715965283793291970479850988258644320482850688251630717472465867181316410975758268418700460378360439653372328545706397821124092258948439413115064155024449270896974265285908129422957261841687370349158367195885045622301570011377139175132135701759003656940382130578948068979714926343430358579510638445982423542765364808218452159312354931631228562377497972089808121626952559275210411744273331093211657140412075366787997847168107454431833249588589391578429444544872825787954690403257569550333981698026131766941471144675697184949579958246525620709106406998558848638685719438922797578742687394429607300928245672731651691414576042800033917657410086197350461336373567270502189035423938226547147621328676643465316835812984759237813521942016505102321267471190452104396043625755466317528130143362146286866550035821125382765102553383897075779918535143665211731139842301609693288923308288547967912480834272089869880766334902649357153482769473037804333451904850263453743530939849293554741472706242772997941780926670193728355455112184367359023354885957325908045838865166712255100248443246192083813008841717649710295392513948958087410067692735663169178786860664480032736749827596274382081420397429013036810960217593893014936989483919191471245172750650289595517642578601657364969659580218828360807805903265203902085332706840858554556713335313838132052077529069224805443630628479493367916021217147230354680189474487180703491159937666862113991691680137975044375786722262022865517008373766956896000701668692303466968441046748924064924434874382063679513985355174459650417584630475892391832603966554824829852624500303075068239934113649284667730464961293435917766920020628030640804878858266998707443293124340351149802579084082860939286237562330690934242729319605325249489891194859858674847888559559693749210954861322090034308391286349621727100963298968148885511538149497887096776740124069476193843915873693067175621996582756242062395764580562111189721759630449690571210664485037749257473787139894239542888547280398681466060469882078203322242930797358250396113354298249198259985642933488426314151285330036761323379054646423692093113056981742006614521966817472952892511295728344811615633090019662057660774701305862510535650237631517200668605744014451038198331578764130827189995891777512009203012426739726760507645446748732845922346310719642817750130869235078711293496894178476213366612600812772738154131140049255246797695427522138020730387648276440222668673478495490326899008875368391330852235369247443192684816944514927905814442419027396344608362464479102182338410232526742403327199719113082096180667140810565725884495396172883091811823087399270199368434357287050978153565795215217082529119276749149111593893869785229977764352235674679104627422157903155992414444124927356858824435242605652152289077047249690372517447125382892327327499642276513180162582965636287199919620782488177381485562448335079422503231856341349780138959844888515533731878488456960931914706045417712787629010902473947603626578920376182914870587184688524224396498791765217941700404083072094672132350841581234964223664529816971371871323904237145186677096071715525673796832490374671604150785516562604382369569742432579300862935658156433906422469512081535632576152110836173893050401077157417055632797113837510491713298207418512803988177125131013230176871206391426327694499536371644672501424696467431303192467312307565260181607696873726484233176481604381162518173817997613935980786265480132858728656567180092361303647865699646143149159092290160458190422327947469107400128342645531503999465849780482466680936306854115712233995580533701555611086168688938272460743800604161232713109473801335161390478724519957147344911077138008673611308956123888059105896672906076857082897180229315531135249119325886059994588142193355611597489970082071942280358883926479023295697181041771810989884560249294917875538734822685341223607940591600455568436590461380515289953693394680682913886690002303517344093648322982695858793422346886183006472339305258308894755599453363430144384384075916572684478302596035975962148833261003664370137549463663999443310169602264397392363552466482650283518767105520760886255106359902888802915931786644280219854920006297066365600630348941779004542828185326957102963046810740277042728982038723955532150628713827541879093616501410160396031037111767258378693473017714979566996948174382471027915709565997897324716550016524806141003935381665919396946026236164355588811398576837915200890491607524936058878721651708104184451614640178871976731730206543579409049666066800330500671458682550966943051799143436986151669001851959919051571999960156258374526941345797200271636948585722599629703896408884012768277227257309250721692131442832422440213461749013226600244463116500432827742021343865739144251500816839958827766220079507854862812490121615623781738510532701688722140213791276916014984971967131328029588182980522784042007081683039636168592535334293205304946529110514432545910319662467883497353120491932809357627337518053381742958763669118867338983057259752807749564082546090806198018592597209779068353104190385803507590985304244537582598686960543351769008302611637025514420252229873511975953701308557394248198354398526281561885961558412463236722120167713473616282789328417703528561550540966810227985766950865255388332321526860783657801366847378280545128878680539699908589223565056907426386114896101698693517972287347803752786531571844421026968074948212504933872982673473880519303054013564288504890874171546334514354544207053761299256091730877572081134621692039615123739605053065503651676158419712048263132634435065267511388770904450364239642992042181965593769735991030437112885901479770431688797419854777163896166462268937906136014326515096626593540396632375935425844395104202442146547557349876928767426613582392976104701686116717390207124262263378342424959516960836154439667494445564758489551309684197673969812683074031162806020375301958584964073298636729102145841286657348605671054603004914817928402360745954515651400698175159675561634547699856596566604228694862738362519411312852817866815455750877633513583677492577542094064321492219944339348317484284960805123517911630538351228448447999911617924748306968481730088505140964136314875693963101596336672379938247308800415315490071876895251644617933323082611087242244644807972154919385483159970558108336957554022093836293852430481044223469876215180130482856337204936603433205252682418701263992664050220577880531678415079935119864865631289773294480719670902395266117203623923542178783820368213308034631111703453513158601409642777361230693411528594537583342708434652891871095236428568354254168393588194377787927172235472861288079650106946924507883029434731477574586133850202595460030746996116727868289506619512667083450173728164694560683175842627506902553142061429577589924295898155487412581544073395785689597836780145302611357774425714167859209095017585441456194240713139514113297517701213140800376363350422885964786087936315110125395749273344527029487543228305871956879012545668084141530728859261917092259412254194813722499876934217460811807355473754884087896565321385157673852223059682832811606544548412200722210059318512419995842348260025317084183554185573498086262283513083025970990332504732438036591984232515272838965376899938538342284236876296565587802723660042606552293189051985554442706435091256432649152693975000091108630216305450257530619685745326158055909335083020990253518309082354921784078536450764486190784458806025013486965417297151747439672110413053817543584423414878606060592288301616797602453612210448697223154013327488199580219129957069902823308090720781568349606984824109488053372775428654070268514327849893100893708088602465788427882378625763146614807551738672522835675823723255027422193858496007225618694508376200407348303342425834059607467643084925132714296292628146720866038510176529399076555678183972972810999127318654832846800722431604672642857069291375454307477256785259278401205758972556226803790449354890807286767096221183819168984632148038237140402965102020838587366881950901964922785456854401911029842075813547337286832894903339727837889514902068433197493479129462850986171321575586493106001960374517584794295236807328162669541041917042996096954404781798445351717145027551440392476413467121428087588700253056761131838689206694659728641132862890308951383669310045829730467520695323530790244813636597062519088843913904477970332291050735851852484734393294759767358713202014625892006848615466091929563937125941462426638822972163034911917481764579165494725505654218645595666415795170972058606789562140021493819538509308937458045215336637994329294959028377642982681655948537677508884756185481125803269857605161299473074201548984650321009176509297773391535872438977026131132078941943864323784630127167773768684916249791344914565995822182129277665201958983671150045146516391350894041566934679261952742838232579402511365334942508420797422542897030065676179460874011899849754632655642959159120686801497939932940943671895667731634871551281711801442708854506794271963559231060557757619218974124183531210057726452906017626702458512702088266356459176683446306923883999440775471240594319557302241122639360056600276167740573758882519297585478391247105806573895229074833032422813820445272926831665429693633928619565497338408132743855510375248593139232777281744911890116196512141895407726099065166452050570397397287484920115331362154549496062361099306911153612885804999746051085465187442555397240729474933902994537020743812799975771812157815085672809082449792769157340919147066471171420142367047915103787193931131037621495195492194974469564385625668676354072619790699017043657483037240438513680501336173534476963549850794222422820841705655675019409566203351315871936942170152493049942693507070586566251868453225079955959884515282944736354107890469805274309737314907174148759676988557964212124969931519110690615154748826908464579930159235785722650335150983854617161356068478063323657099126495243417228442994533692517454201872804510467757394919624006665736619347071315488649665770271378018825295309164858370892240705345610792859921163437034609426376424750203482143676536561742791093521993480739576308109039929083598223932041783045471588234215405665168942168674574802290339817657903821717902814119135977541110362258813400596047010318505404611729307612437833683445893448141442845731889868592128577727232708503689406072220277988327093699274070141942781278266462181910296381065625446693510306123396566948348168556378093325006571335341388150046713383048250159511896047749325696293134129591274242544528249305830913013052492656453221018197311913337114045092521606083308954233157787360830127363796390313665833630700669711270147785156287704435997620922455371261655440107708271182406322655559730119840576817659809639201319149966518999369542550503961978707459947896573536128734147121337050945740590600176325455371606566150687212732908450489499033108941302823674921214855176410043880547426520158485170851113872243173803595612186599687536456402801579090470620853317987331115634647643145189639133172123881607157636845831580011829543542193843275728941499185919880044279353729319304513690837039921193324064124134715043506092906801899131538821321868314454001056777379898280394516924806672678011826887474434489546916809888244712036174781658925213718399505986373876800417559041231294908801066630336906063990220790206228052862277844956942300934749018235154634018422842228769651705740052667432754682896041992939264539626973951005973705128958298145704822515388696776325966687629256857810986307002146213746839849565851205861839741953342608518901760342113475037346582862942200169111229632920530596802788744899043802164484234928380490305225769017933117181764994430018931109055828844892874932443463442666765567009460445179292955691597044149837416227114010174559149781499188354834201156517756775586599808901079000163486275965190956565017436615257185000138085590790608314978370012655734422074219273702882616768874225284939534589505910630353007460183360937741522536938624627510788987635007108856062551389972486743188595111158188556715540396786802765692965450874210676998718000462591036460640061301374661195172727694052241561940046496921687552660666157695367300834630258004124536552296000077587941124008842482372507477381612008085258392505836020899078451614149294403233948664816981029569190385586650670249775829325665378163994331809960294767164786086636945737360028424592406767791404035461979144618121913229760760234480667050494538260381229469548948049428359271825095442414781580399237166551935324818439966540349046338291098997289508611178915856778703612285012600351833451831250073872741505920196256610174457452852012113292715944557934504406172976085653926921519072179502279387377284420256800785831334871149846898958985426561998685806139178947550193212692845988940133821358106131485663972770342801933875361595518451903927022257173345809838859175854592962066853120815387573345080789307700770363505668362681299809382879006381338632976407573066644125250371073914420165398615504136477380556116263437809693933004468889710493675911043935057426489553116325833719425241547489559384653377805011893848654509579740778202854712051349353701061737217677840185163191556657569190392277269977805035355163942411702047900771796716854614593507649348807354364694065785734670658774167123304497431287647023445648420903719726957729822155224404550870256999715114400486928398812875725883913673609302405219030433997559864442195491826374340441239196602053358689823647744276828630015605999557742256382737213701102705887961011724011531237361045347337086023129375756393402673018713288019068916939348705932053916262458731237750488991051820871094800528636519644201655335464041928707214576922373458470891472468530375014611755999937010210018839405975741102935394371180567501903834655260973893749177770175477865847331157146030514568816297832406954155882010763575453305790813779039410777430975121000437800614517916435981542125639338786548349181668778385116192194054603374934600652622977617339010352182593200902768866035516263249278837449870055590407612195951326560928580280467223029812920570348650205914153072009007427332167419282531273168779697638665399190437608689209840074851166254736777723843661181098896578155902178510640476529639723050571587993944130630147785538357157035382259658666669575554659036401063422802029407849160289464404972153267104577246936546972153009556975613189126844368381479104788811404675301991718399376015323938331457505286958547059350577009765239977920897386207197181651854721249959524068463231208318544997121844158435440384923720966866660126714072595116869953425559983018364563585860799877715037179893243380206418538615212134654764694928110196121118459859283051431744272965585031247280732623085793790723789712013419181897577589902395893782731113272340691156952643266935812132671768560914043767324626895964543954041800428799857599148636592395105377025081408445497921335251987627754563599485166618072694863909769348847273435775969167572669896453151888984915567079218341665199171306533019214930690368251767063084334437738223617024084047653849220455629240667481210961233511152547057976152627777990719230763786270458698811030111719741305738145516002021945467481038887649124122145842981002392272477760085915306491969335853232718873283713462969564351045876569141490733669121194744055987209343810868202148233507679831906491068531182220403971657388898772232245560840916062568009364797807345188309062819689725556276592939403883457886911925973903579638514296647491759221438502103576694289052091153499896022754234676085744207188013839973111608376256913476391121121323336515117309823528798489611674411473909566371758709196326651262845504696650630155686314366660252521532511634528581051026914698988506994573818158514698061701137735642323220751102407958120084305468755160848008994792176859579074463676220118694348716103645094960647593419847659148510088600750592600722334193785431994855693511476123729808957115896580345149506877445955947862016392377207517602204705270694007500987736159671724422535638133218659662264657464935713202048358920526123264416021090675088209451271912193086990074064196627911804639965136135985643977783318969507244548293934457788608333275164467360389173322896756186887811460219300420229191636408758801523215256972015536318590080652195732968836459573218411337817335465136020662948889484711272530947977150906429615287465815910315190076867078102454074641602987192958305214421541148359487398114861003607487220409984525742028956682804888288812246421207188984815966458248757189282756840180182527935752463714862536106200554179711704153337473504008931222168181897070442485427444947988904328144491278355421607752988430404571109572651495205390923237657051674388085711274753457493485922809123588634765360189233032759320259450137854998565718685320372791688407106130139527344556446509552729040412734532710302099179547985809119394862147818736790586338032646035676374272720963958632005186423449655477398491876031565644901774808899741264814304961417919145177192018805391891808749054093719230124632968824289635728948069492205325455979370129214399732310057989402982097287727157766055471785643222007220298337612874653973457462501237733511663286119273096879224524828862101793940816677737976060420921561447510713426899308676522607592742211628614603408021605959993022823213328893195622742651290791361800502546095534822404470421014236620970200337425737212877182415046860044343406855096831491586119885572263892807303947859559118942733727450428604815274678340830524676688802345514847629239318488798583345544831666617605613861503734986446180975671264599689088499385872390932300017019253608385998249961275003112583673016958299541851190395629431830794695885083998192147968623139789825112415983728213634018459967515043889819927883810762299900718294197795617865724103518541892838844603831788650026591860139165888768592948965969559864027685397667981991608922986266190564848500457520407110330429137066530049393565348165660838026210453117033537258265334106193753613406047461316903069006040920422052731244647222473561317575326022957170254843348484201921480382101395307030346819121298965073776651850144489380172967424521036140216675583054249448027927791829623690521758370922338856330476880056563611100328729349380603431716969721324798399097570170563410542445913179974940472833523120308278713000132029650166902011976781857030200535911651463881138807587899880973707910992451579348139755359235013904392018948651063247506514349643255678758809684550708348411920015703896154780486546613954606734513466030900473797606456208083440101598509019726466525848258873299452615130013310424878187241899904491964708012540614672213591206661585427370156611680113899615043838153028018340260681209850922879757081008842376886069294672960682103937317865727695913354184367553836692332220697420644685331992617180578884923892459607901564252940344676559723726200803274859772041565651143323941491971201514171189348315101229530584401075495865626131220455447473119336220379299945814068051569357938455247955910270904353533384464935301745191187410238938010769033735877017166074443907091034645701207276356772010480509987767737417116130956327931223463781966589137835428052363322885506790869552443664240951384687681106383151545866537953363409675540543116356896151635252947164061312841200080063653979748530099206933217983675068638663245157338247439140259657572664569942091596370948974859344670913338177215223926959124816754100247984153905063787146544752784127827833887040230467501985875851322100725161726952399065205668361816492526011996721327107453833514304200722321842861548558526511261524323526717189273062863110136128313354889408056245362356824029555322692209507899987531532866639832989847493876722647161145697675764221840955796110957674466154261503843454617966183100216940052449316582275973605305750773907868731056110802432532941627209262352418543718363993714363878312185569878154801732359134911536120359768450347846703407486963849631934371865263815836081507689159509782668723467524738546079302246149444273803071807132161781345625521648806183436367485951566016833332434577735652260940371785469410962046149721879285033331368382357909153851980604106890516661331110246080936048080139220497375528983362723963823040288020429077838385430531963900286591865928380036382245175417112175257071053379799935456782326062245980297451868300265962897701659197732391427405462883390195070466754832884335431363456777212158900409271698562846619638297243198197947059238344912554809325327778998511571513243592264008939831392211921174693010268617801959456609993888736453055314459409689612934340658889335451973160458321252795753570547547425070630086946523506919192023865970096029896442861964889574333107590241453001343953694092325740719922226262352912649891570676668257314918359668060335684061411530608584606585355176440416538974253238006821984866916627306341112935569494979542674189014261326150257443966792745873556278652267657855170185155995995500282867292446332294534816827637242892524006343383284711059785070814097182298660610147511986892412179447352597659454436356690331300959025708372941271062617351085527102210062351502782697765233131000041248343350220461480326680365214614027471971311610895682301462828821791426981960554797768606438933606750544446764707220710589409766117195700393846469791009099303919800396627113378982363493038562373547808366535068571680392106696930622858682507924850600989391001814135323414195226741148632128470775544615169957898652781488444197703692263010219117385086090223364056911568800902983077704230509546283951463641056852757546189209343698895799428533923722539539861050056533388712004580762609913086885828087465876577982258312832600758215420485474665892752402801325591185156180482386760759712061924452707888846397229118218478168312281711170529658668603813827269094111731428294702454494260455447729340707066021641100959302790018225000997884326558593378566426227891019736320454553149271713352933166362939093077873720507207317656683131118455943235928187473544247712322476111945275197021096637923299846768666879397827625032415432078153531951505549582416510930749333416091272663302017924610738676430676947731055557399742627810428206654068009745572615903390193288261525238677677432082220626548849557650890999218488545978378108253690855151340966098541317231416600015656697797918442274945888741991632512679844849399282564461019396917816334248458841779140164348483763542943606092488813776991336055711054032281440956407244011586695043716997568345549896261203674827491601982289673054021393757693478644396116857109623284201133507801307735057789802971128353298425903549112097764110661357513419255323025658219158651739910930623017569775739796117095642207511981009667826159421701633639476819780515685869273824097273234713348183406642249499593617292701083070198303093201594720220659025886376261395435510006970109296736056898300730870682496799642488410591333772475173988583857177928896047830830784483616310001684211067496534380492782421112965288841909239976252566342464092198366172865333253090438658866843455711403781940561597049853590126663527254814222635373618952243680321906734051093163215127984071659985032198630292175197120804626454795882213565549151464099671904592393343334820121616207359522668656674968968105056080285331250256830819787697143829929803491279926249892193235600360795504923768967442096141767526856015201520626873540067374511212723477080662790499427206501438907064647992767087396633759447331189773528424369423546884078123576173141425941426456300358311570704816495123460890070697789769182850220813976291941445531567354446614392615040772936831313832866820274554572347963940053881342333404278774836527614132577302410552617430500124941657405169280258435437553519469164738202204286461285574526571825760328249018820039694959988668762653194552941214059265795744366884490595482149030111199908296816888282985534081098534917568094554839499561597964495378609105890080699121990745854462197004410070806222788801101825902493230414385400606905730601587165712005433074321679516893995312065162274282255145318766196578000459831924770262625655164456606520851146562339522518356123317301766227003471252341766155763482630537150999263459504164433033665096264784293422892839849534713955087334177270485035823503343633667543662960344751090220289177504493943289485791061344585055484026195278706425563136430499044575051185647821097780083780134370823808617724785489275340292559695485925126922549841062922153348449128033463704384949358580045980410598010250043761977254237181243575627313348762067690989364339967725507143547161835495815134614302743448960623616930364207919741327970491137692359022430661785333961847300805226089891465496739870605504606326452224520281242892464239578922459692962609703380831625686317441138356032180758307362675790067858303033119943253034399139268391674246676735464240321514862043506027784235865245655047319755648791188123848982943161853145577808252395408876975114042907562524257238702281449607074569966719853577254503199506510053967877131053359851176082848515954830111088083516783060039896165962225229802670800431423028749666667054524380785332798712729625415614370292001080114006100250040716604042892217220807813574210291499143099773964932282042106309120630567743515128266943687357777463567452708419682527901514757950425382224463845988716225213653005554592964827184036881526034893604410325751048300736428843822658252155545950779030410172751657158354543605329062335638623802762788790063815096191074562082211963022448246549144067394637198175109744993232541358250607522831264063072998215689650007986024931622333817859298604019222142313887825904294328138567746212814613046392538965050035633560335105086684077035896900948244418925901829462952493772896208939842530108680007003730157262776098370295970767742134438308094165346181066890513788962804303790714680635470444440651578729962569495332977586095021824888814760319220192779833233482874948913393139260443495739749071488555179709902344714692503636989702406037552666278405274369393371052918467896393559154267886993685993645714711287411210895322353923401112486611735358065223541515426402286922907049682083678959413025918154963020000544524664115293084570786547298670614066283665049079739914304461963950485229338003481961097332433223256067080895741248407782554099472160421575529342139911236396588448943141325980218959545255426758485108256872365767326065871391356366914356484826860068057888774159563173938633468970110500157293341312467227905195248774644457933217366415692316073930242119479680662368005882119379953417856440126159421673208637812268768715792445758013008939296412046039605231349989129519005764098809578331136757481450834306576087510006336737531547543935704069436999649773471111186489817089526126133830283989069280002423210150032188249467655977996440720229303895730925898125923654530041472209714691968118783111256786141373475946232828783954874806397918893388034482433460118792668037458985310768248875437008569895814189091017743583332297423553645579344620994936613405189734751582248630375229322399139177121706099723309839538216021235212929988511615887261045775877013012046576750300748604983638111156712280745698886094501004190412971258314030228626547135504678309954120907186286819957992584470126867109175887547484109415422596999005589218453653176096931357396225576110650283482314053951556306554207751510943592951880762474261492861025811206053298932988548449961647329914203044550906055192477182322887973766719518310791345468102540319327616915220053948944123060518305742305961820174954622773225551576062819928016297953689545411750665683777818572440121298778953009382387645030815355562610282748113989189351072308657769837525231431676411744423994355717293102870435285358156899608528415876399673739398618288451759376455580064337611646784286264044478625774708382386676898505804844590072012786009755114688909960688859979269784116570603631066688453767368581631692416496925154050743588522923533491954725252096067251689036055143207526105087015948135531858035065326647301405614465468525399724874915180485991673202019387399011016610127438882196214195223962806585039354548488871240592751520854021918191231357751278729893356644189651151697019603978608317211139028875014375722850806763478125582157690285034194034010229648035852489094156912968954794178253986485891408708254581956889903709534896781154044618601506242377671558259984807997765760975248515195750205901996613952800581995414414764217719062957760176567339193134016148430684399189118501268705875091964260050436714524750763366960330477327248790039498613942071964662561755820453034321867939441705925892034266205630841571628081822084714126979898045416733201380384867668765869012092864867050855003535762563429171525113949962273120720652378752679320407033458578647114015551407141432043826664390234442161117131550520052133923770564530581744543113952181983731722418679194454895596053289909067384830399789308247869140214410056198440171424151397143132172342369661487437415645370228467983799173582314567486795617473738694260748433188999327631826884140897896320649699483226770621485074567871115158937869116185659583872155288937463820191523457297042986335934692560352154501771682850869294186301984738224126307856311757365109038319774868265137117730006830616141330388981983799128892334221168981355182261799587695369928567256069475973950904577141795623596442348596550880609238097625463709562299508764566026935092950364733644967701828527509183186255284114089672638078645993525988902403520326306665730826141779718951871773685313905976948532160891182709669515569444690922963232036581048494889959595584119016327255613637936797667317498297886412004372360734131079490268243624255156228842352923687772765964409775399104317373531778520057859810372343224344425956341520451860231316394020770668677020241099778980842133457935133832163469533731612957490865775557780170814663738598327289334445330105845551934797341077232299908654959723608937590247422334456337275436906019999306863507358141684902855728491568003872832937153528804564683112831367566428124046782876675282183904079512374096158266872538542966773777151102674255058397091562381810882703272930995569614392154750161781327414959874220139067615432891388493857271691731191790756464565869808900847473781574155295433210482050368895847423135107618648581483614817965858954001601831183207000537994634469964168855458162822749521965893646195107723064631109077541380992767839679594911258502534013624813899057007667525491261502072987412797770160061413522006922333295054725774090687344164316871363585237627688523345157256349869007417131282335403055784084425299491235985517678267680023518004007955469584888806398333129100953850394341117003395929060810870624804199632436453248528394137707097727090578507869896078160765638723397259459258479066380514225784098750037902547570918264216705437071623208341088071071281599875239782092205219125239545968474955996976662419098370083523953978926973717555398114224142560914177064077129013377135960169192665024982363583257465933280856483472294462449197587285075656050686912308699948946960205530193678806028595726870525532848218937743808231373416813061773180020517759252699249317279214661743558657359503184777912838092280034174679525577574586640089402645426110106170158673244869515773915912523716916408444496500501595112760688838989191260598949518157515781912768555803383137406414347784280497549072667079688638730687690830487779450469364010357894399560131580724059799022066521172933355633514735454065537273938280260695003596240892826458589444653730532659468038298592533103355345423101612594344782095486855175530345342898511310182610683478885898582907859071266548290885464269193335756863780594320932242913254608598570256037440624395204542898448209735742648507676770911851757445257498368993052963777370253129958001254338628610959290936872870666100009844669814354884658393595894836241044290176904511041668467962571731865614963631438761443721388537939671557367316750758620628896127070482558701746081301074937859803053061267081466960664055776930568911408816797523266242101264712980896169599492740562188753707076983814586646279281629838698565215574758184112499548209625578331894724266946192504989242101038472005147774287482199157418375544988476191205893806903985745854179407209420196694843435023319947372386492088935794013284532856575005882297678283854730802450357743192106476213542858751474097748713167225169780860607442263597881496561637555912633208886295312419153095506597335996910021171301404141043967758780234735180629102348674509792334768064350823909541590465947488714234630882337866290428721402316830497172248723637188910864086884670177590856511854829508211844225906210011471269957729556377677902467514102783802456401027924076572835903343827530545855329619959120872790920162241358458328631802272020104021403179068024235479404502932230690718456073743500880434118362533579170957186288947747688007268880453246095230838058963750714366959873609352202242220289418936941376375654238017453656735073438924634549803014311996382361838779902582443666586188116305931536283633512038287909849461335325442512168527772333770435236044434107298537641029358677332931951892335882397102028969126459570236309489128129633175324294172142110990582318433528635936626093335306192487339063795238492477115805732943687034876244229380550688629366641876864994692395478192893389625637577428577085694728047320128139513539783813932873692030793739568928757965734330251862367009811864908860621883953378339856872199616392931134488393613843327643609720437728995993652448494807961885236307637251300184111592516993385674716055552460033389844339930321155208034188585285424954400908752969908349695342169130345967330409074671088953841789565987387708007296164994043742769897521286680922693857851274659334247345438016638233802402097301946153015958064481373133499392507174424878524001299776450072725192214297809831611650542456555468609772147131988172665150518385610743365338179469473474765306634703979171608424213693407033864020607601456708702642855114447386698691734244111944353088665470814950573133209501935781182066663869269721655792827421338250426778186385998614867174302489484790751729182761849397457974101062845785127004458175732863788161191601645911837365301374413566084903857820936192826761668618280879594690207353592277322612746683952671180914058063265070160176147798083534263215993186983157047072131320919501775458487197349232910486300188580577183643160220410555198242519837773206955933159063770078962778229098713033165586942357830902082138359573442256459302121019903572265926167972440719074633307153517917103152595355936836555305054919040093782017455487517180670529260418943098215500715312663432319463796221780466084230064403019352697128231922144555820246070920173024363503659310814367955859756266509563561612837228737572067184633068585390492513006422280852775022231209688720151644745850253441462041532656655250072262522208104006868859176276347323387880705551424139151433147989355507679872631621920701015841968043392621316375896246431659247175491755931981666871648783712398312111524433704188273600224931328571778048271181147124204434091204279772316303559677662971058954166624413305980971447307069351019569014204347530130395588135376945888377679392965227217667046811655957777946203535861942909968633690393892794965256518417565896873883705331194876063310561553858275606043125122865796812901613907548164155060974754220545689222250395019972331207922736098513831565030291498200624284362475339057029646223432186767459943120512875640557265037756802092268969897644911359894817201268889957853271040608068195588022397638230382779747822990113048671173350393619123765204836570029124144219978986898599927389943375191684847142494828050593402293157177311612226603019306786010327162144700378779181574416203575724688336984245490054364075662798965338093597779100075472873722979203113060454204274410226411322592113476004579544848868347154835872758499447910633420027925785760279896022980214549988610894800504442830696632463469678956049746982592278011932057018652406032411859785647645293986633950335113407630769558132091721873716927318822903579654933583385588082834166225604750530392727750838781838565738783553076963780018622189092332243957213972398797860220150276466820710042708902779313726295391899460406845011761890468169464348386512545538106286752441731806585973862419016771141820305345425876797891251027719958560056586375370777521909367324761799588193241775063349449051540380306726335063442126213356482088689334993839257847106206949935112905642588523212030902110171952123900031360172903496316032694114170418084563920911392136258716523408902155369181504614499017572782584472607960755463609070629403548506569953470001672438162031038358433342598001496129335017775832316134458177179520070553692256019067904975405483281934868804845499546902395067321741773819656915479767274928198340137251799989144658542773152117937830066977944285001211050821617860280310778908404600168097611755944871366574979567904472331285988236252092668100937151766856671534964511842514339081688383593997453133162402633349343403533318033905418547804412560167016689612889334444725647022067080740968702084439604636827555179457261266579383911516888887478231104924618211141474242748032309969964194098665077918009345612056542675303414488758619776910322664834892835539738892893270437947364854673189092690071915994308422051588461363355003510664703394715467540828352191848499457538327156903653851981236879942797608690472159642775161488239759017773605758251125835442387403038866002094085690392175077774286032903948413812652168451874416988428642018965152355839513526405261574311664595788649729186885774437245132756108095944718891639010955518687004009923235969267584336519820391996021989748097547584516110454837997496979854469146765220892646828763796659026832993959039354029088783481395189814901046289453287301137833564279532853591412400612916482088919112931635428583053200580733962324077860400779926331964610963938437328340220795985833348442631553162019994820451444976063674507669905388570454220031595011228631722256059166917231423706433477563169461949372952867532347721972767743915405069929320634480730363040294091552538818424785550993616003159442055499927619138219379302625616430913158593765224040672206237027715523358836507493722867663131949822382952798929086375557075080137462341330971054511528731028967918865143795634714222828740057751363885717525927416993893884760955117728159346370176186517004452684536124539984599779604597766477852217638239771542903477075850437947989216913189130563908889420270673969435866611122092768954301640109001146468135988080649467807555540235488083207918942528461344962333235672394454651276864687041698025779539326898164016364867984399027357603177454938318963151657921823827971911936490022191978834502222015266721427416407001686940759671795342225821676872583215002918280892875925840732086933160919139309689515368033046706263545036910067221730009170121984252447740565474751496970510540617250530206736637644906670617363784450077859063920446558875002353133179293183358060077489505632651597166494186591913688736557882570214463565604709261868226553543562915858570298870074669539862456232932018200267248668126299432892211511159930006649389592375366477814560118586507290722344408524134375611053797998573714523010983216639930110271135395476319970807730261455450204702243590544240321187259140565635357165502965943402908987503625312084906093348094995005270494612859871259270660893363602351043923505822545387596710117584592288627722064945119181986310771340764501171840613692467426293449709188146019333130841450979953282517371067071059464141775893110419823660355847792081867794785492540111177175734751487112997612117840725755068511472130196412727691753977350250844124711985257915015534354207153524364407596626046781327390477411928170803011893314013233222281932634302781997255131684531595963945206706746615627498203114257977541939423760474252661012301373441075064119899257433004608587001762332071117218721124528568533581651588871762590518077479902689667470782121544632539061346556646972865578199195796781655898443365382916352376613112897191175285482385530272005394695490318753451774882552614661975450447239166098324395422198145002637990684612980002113112843315669506454942240402911158700007340839279751444912046217762009883198515714934689389135761788114952728703622162809476302016068400681227937928199922530066880478407748358520267620630540278609033334918705286038671742526167591579370443403494665942313258960686103062017319743968155900722701669859787957932652696098495191816549743790131542764479256010316459629832557177176558254228324699633332695389517026221924385411217697339138815810311360295464148271598746092422138412678156864729708120156986082382987044568340589245549806732607691120945509221353668729698110064629793255320415338156449004589370713485015716068314442074464582984385800045693195132182679060036658499206898325433355176490056234851358015064290710487314887913449234163404301610692127356185283314547652031132579123675620344635909586540106242382248418878091338121074487385554820997832639637273704711508107214245154618883273122282180871118926462584077837101142777520455021431150449826293207799552646275543675382577054169470253512776374934033632134687381145790436541257491911695333495913334156779836949062761076140602400395960681418837710589307045255153549433281869278644139553410830745298374018952597087036057642990863660875185604894462651148431112001198926504550295037802494196178880752695565336398578935206205062060291746831002143933181856598551242642811947710075176628089928014736832955815887078167558475839524994113377594995946012289645179984269052800027186308021950729566767772102048967860326238751009059854167566709127319701140615075378122930218522457008639444766225420247419539311492949572297527813302020344699281999142930772608053962792316433153759223997911180451763933054179176084525191187631991780559773832734494302597703493423710821428139859406890568844550396819246852533942480788659078649756027711889588581100355346517965545646160308311957802559006498880980220983729379613782373323806630637768598703663394259522503462482016800317814133714491824121581909455536666107412508884819137589170426385672603249439916180570417181584668670748775275529784197371252033696018715363850314037914654169374484061388048268178868142839111909462045645449215135366761743403519439679775253764684770462218223254353361899977132015544972593019029328699203267755178925408066273361703816396766275818989887283862021479482146457887371772325678669683248615375792343613156763426610809962860676003237719034797588093160446315084740777384027370241650455739177993415272713382406558083538622943488930175034432695225283950015779621749932652334414799242044620369596514688191504195932636988507751271354831681027394081730153980499997988768282067694791938039571229819940349106535187208331346121120740654897079519665980175973843016048157272052460845435094829124877241105148770621083053970459628280424117576863357422746031295764295044071484576927058470948165949245480931685939164198112426968018507389857518959720195620794144271897441844317739429050580535020597284834962861394514855133864618910363940411712645934151366388697529504524258887346380417603249280442021259790755630343665312474566074911769943580245380163627298989818799916365042772804700831685960973053702343338757933641545172178626745031608850007836588519703423464365925528098853219309602245885658011706009282056166945479516555491384785836522587412894155547629720989678624478035879276601758484313358275586539635712145552797232191579019160864426795381030605021113030486521931216021117776741635949725333878796287456030917091397416128180992560430232587103626725204965822148305871450809853164989485884302706273790940823322902492520225645696420820022105610479739774742633477024907573012216309851056598231091176293286702510613052095495138973323604447318534011673570469648821915448346669009231996779535352530290392657244519432361739893900753418232180199292649656139870682616985304515323837736054823123523613596573634165070463894310109991033768810675933962153032042841255819534870199879427273707369837766539082749800913419019428899580918746802712635575147693488555500245497783884595574492994329374515010976890836658315632126463014646404430391529510495376195388738424784632142000400785327460503930625314039669373595833582741055336345655172955412465751169064339315617294278883586125628762081482017931903924022929828242470682315546422788173425165486092223033299760757879254493094526420740853027470182681178378413952920126825705331157384783176791004234899133125062794397833993391695496401468974005256502795664415118465777275892611383990576688798621698210502794444564203868434198850153611273236779614906419969574777965127243431907651255712490601264921910579064028423449107515826180742671082728456148044084923898102127845683521213685539855380606017119570558727871140311252235536320732491830032555154933548964833630783423297155614652210251176053024704809238015705826060646178011455128045930746704197766059206244285609055175966621625714349210093297094923898071739754201317780928091940180852852749135731790748805734026124349955765055457539342084877516397248523217544851197031307176395041202220687380076468304549618441296542049969854698849764295263583721994272628165148916298456114542533463992566608893570662832886896579314486794212335740399266562654669329595152261200672505403072104097655061266228009826011214116437969548754468104442783313814109129242369283443130849855251716438620465222097287149103323261259810176505810936500343100901825043282307607934801736334753326993023161195936339218988188698563548571146153035955691286710815945650928387714276881280830447534600983085968339375475113799465455905900131360823899310892352838293191874250849744197407896933173603536549312893976439253724914999451018610334622445164951089475980930549764330317445350174900443644941577170022974321197338312003385382952556932893395032090972665164394684033997799786867204354562538892758628739025495648403529895656886752689128528330343021138546421644710491300339685008367950095926968335226310357228426304862399739484454127830413726499434185162038722930411015811342800517323048557612711475845554410441890080740696924607735212684864540844224151927679478638013923360948790031511585190045538924901096282703803545458262388427554408062458083739158054129772795296002281393681604057779571914659485754424684888151144560058387480750921908607657080737456616247280132886724804933033812991541847071114692043821005008721547193136077374582605043294340403098363052646325484132170964968805896859493672656798459417930818300852012791944592572948535905965605745010364317860928476418772188718330918164295957672123227700007059683083256224971670003778494359137875814398466331588424899330458455829830636388110749850462995712959075801718984383697515187650477212279979977010273939474628984371245739605794392705232544202507612751723024731419244340995822398639139571263420048941245921771735625814207238662223784875351360670325628132826710939757273456490407351340226629145471789835444316773015449112528609184476503448645200244018468542067474391805514208550237057053207964576573417025509361179702676089504225204936668354313599331778842550438614050650825963770606833581080136441998838097831755159840575661537369876086949599748017844516235685167967445012763928167838001727353056785325793782332350943214196523914991408191276585080838350465363792847364756823044080542878036925432069815185402098138131352397390641447889606212839860782664156994878230185846938094916922863610165515387992593832168328904320497201802819809487415186293707320804140344653437616934282085165190458192416941275280799408663950515087362469211259380202217794612323039433045955812292061016292607647709943821030262731337230155276906000301155190940900215553550763621222813304203385846777044956083122587375724933180269881760076403462519181721544106641681720170884606756400480847595918696134828568933148780574136146760952784453047297365267990545826152537954789054500111918453060362587694896673861583566142576936354958063872430247877940947429368812635133558899662748847568938896742032052812245487729027480062191022109352454813366000362846157646496973967077262812529804071281148149017816672908083311169668191951399116635398214326628909653859052368451505855082145740549230568591634150457704943318481086907222202968959800363577426555433815844225063791607701281186105306720385121822557925716356704909915683684685588626753871472794036225364337855003084494200384953142237031525079160244010707177612378048444638611233331398107312944027756900610454884756141765950836988532463951714533547796599556749880901754050234869280772524229214747953477412827531304176555560932279033787521761915420229222673646786607211783987689701970383613768604991666225558733417290198598208668677249373205048885014405764044409654231543448523449468495436170867639250421176169471742205546013391832344699347581569086363628498304871679802636445565386389493213783623397597218498203063960550607058881421624299624761331602874177231985209420925052811075582595807387999612732413253561179785034018627731402122885479976035277338473741365514615103504641784794609326654584637122037343776532282293595875995857609922515815072078698615178720725071519596409277353300663260429297479186057539517875281536695936851675670762012003000442283603517633914186491205050392378067113058903180150701401990729913006496171998436214148913351445548804610724862029526377576901829761564767148281842166168087871038543027107826249662535982419294698729853710805924303630204821116111487210371425385534479670501560115284695852006145292003934878526400561663492327903306885931949451644337499218074687643140376968492456469617688785525606688997782431657359742116079633938017767771616216496006941716626071820272518795482470659498178451159750497889113277353288747258541955227260976347585452684031205340039621710016583399974837432700094915990998417234152018086945730181527086740727186891130050811847065930256834977145782408980653446406686472113265893966134117357494541233335069113133249781444346414236570102613061678570986063475276394853110222033261666998111058679932761815152263105758591843462432932938063898667362500910390202074254507384118778268000143680747538475619099945352969044526743096235081063869986052904107537136448864648436085904339810549696298337268598499685832108603556881161665579980942973316433900637942872099718753803897586183629471534603518168560180945439712711351027946935371577836533676836128993467602320274296742183582619618175397860336407633529049416084200406783175684793825594885443999315106318947803908567606895482490962629063152702699572759992344066152125529923465260702485953363065557971882042397578139254960416449157195380791740475615658508175919533934756629493059164567861700070282130144824895771482485197421177076792595289299209717079906128946117545897060345992859624622849418669845158737354696057226352236319631489457068567983721443012368489803617467123758512669813598937237735301119890308325896412572929121430057491925258401055960680505339579299743385044950655813502148799716564743089139959886135343869758417670739154652904257368063158545473765267995864482349143867762771258867064894941296598408859593632816290060058908910479120780944528735978718958268387742309427596621166792684781352459352489632162020433815642127382806213130100047078502440679294768058664407766179588675813710856894940992262192975072709897998723551536993849190121164634477454278810966161828299248731630411125667773383927552342744035309199254736771410168594009111890340683140835691525927343404049775799878360813360502421942262184892708029740033950619135793390797264040192910164688190897157180395387668807030986928087741913851105053113193137978972076444973858147729777889153598346556962197080040597690047818877163745003478353305042154071733440258363283105486424741495243471682164336121288717546062390831739285214958307443711949226561338830100542537373198145451503475538164403596519555778914634371562912954792628487822501062045608273184383652748639156756688753041254436056871424572911584769054674142507072735507643221028251664996412604260968332084008092479160294624788919287809407533295836090939992131070868147160552925268696233157698441474778224243198620025542491255007211634475217734836935958392110956791153157552465792154177234607542164783265789183085164858114788741997744205628507689815409421453589587121553631200949692004340621759580048719023128110545625151729837967433222581030864176607034024916291878699946826728828804961349131313678395678898041526205346916446186419726149235792399094979176846983858214908135414782266519608737320712804220450074974442755573007405166582575143056663451147906221940810251139276380392097057017862940405931352503174836911109958294706142273325095925233927401943161356175409341075569846540740784505860243222128247322213355791330851356725696306778603143328746238673946062011618945148183623779437286053162234714872268869006138751434550983988370878680250940141187891926730222937591089180816842876006632561902942705727939104189012611666335567629913107277228231242259711425063183767365222151155077170892708026808892781374955627311507540270224065623726513598052324105754983274015854396362679889320106906605508133571253816740899253601041569388755492470372379874987494759209174425193395660926238550935796066624801930078295933480107764645895894006762379653740641514385617236796240009753081700736659512800242383558700385912885488077908430727921975455984975530533609923369891506289682644987936884782622545185942170141168778422098682654895051773575892737174622451974715204817592207225267316300453461125519204963960987248944709103177927276424621174333601820299402017257357945300127719072022994733799041849409477920849847412564966354218929146106643999189915812647535074527209062224503690518878878873836983070799820795348561406627432802476370727610820351211647654083138775669223434721616510251804238223580256858676294642063759198312236279599144552371204870262611423062054825013824925610344328611157640934120243173578013434846235139299765513638936691531665044143236450206953772766146907487374629917403476196591934745166322085263877511804404802691416255055898472120839458366453462252011466994703106613875155403316099593844907803877494676841746490580227488330844124420930188262101590150850329725361733911644078838560039180562695478856441552261516155057381106183497668832136036459309158291184199110876280267882594807346214305867647946936986199464624598654085964527723876467497397034045803140438588410809763306343660988202614949854624120038800700286134221608596279272217362941629319556837148495503980031248446791622268328991583169358849732622789777225381615243824980732294016819373009205219901743909037999103170398277422009412505781353243926544459311546255816466864131202678284791034941127106825306309435040856008127409373545214934234134885200880294739646938692440399631122046602730087965751025087754721672252788330235248019782181029081341632558944520536193672698402737521372116193373465099774294500049106937508665020255264226672421645078965666658769986555722017491771385046317871812999103404914608369373007447070037109139955176016124616141864217990503918234089777619704574612289466848775122076857487965505902416470549872251950686181487425392976586172437740843810200665147999685120193026753009772856143261222573835246558803210061782732918360489742539943776440057571423228847822395731104982937252100746511915401188591695819571208175190035935097383107129314459854566705517929353945206928363301960771395003524631679203344618845971761580049591175207493991671760414597509439635419682845239420064895799836374096262904520217883659673700718818356144942002611003756615249901041596384337684092243690896307797197673007184269424389005055864171507576952758900175061108265832775890909282723118702094837500150825481347874804607236215311298063186071193856954057744647648699460488316736727728490464954738463500180818137122954162129068358304473111977518079104418731229503693145306424744703700406110760726643099069325716011913933346288469957609040506459456909978859833083451150336667743401685244499283741896708816745399168375156366068298345847457900054121094953714470340893443980262275411592319403746427171652617948600683013499650538974003523746032480264167330751287419466028949605567063354075656128893670316376754671463939395275116005418440668507103760689898546278826873133010197296225789782914354403242950751618651890863158634673073346908679667379365229277811630345726304904453080734416872170392200278734363352367659077464255478514403116119575179401924341977899950953081897746388051291979818348018343838659261722420995593522677408587461904183413619244945063622672912304847464352238602979404278417772158838972766428554529883369920033903595571027986446085012758906921131341478797321034548380657975777461281256614187020719340939563631032531578918571136565380950365128091242821088717839477215413355293171467364465150134336575597383622018422828434852941260914576856257685473039244036756980315455052291160313074991738509648026632219169391999088254434282374948830050945140734881790293453486042248680292007949486799921023284416229651402646858701492366433652522317112271351628580350170770676034175784094574455342399605969216088916849371663817225271794497986683508401871464589893369777975582386108641699269689252430714596176136032532053470609411301608597984452132763828950256086858496679960400250528903475815978977759665104967719246195241652161971028414859324391738707240080632657548440872281064095206481641721293130990405474555359217241537658800555211960936769447000121066601768980034852523551842060681489848779668994058955930121193363970410483458285671496468888136381914551378406806052952667247306144758862837131986702412912209616267343386635968394229781965281780486119280132073562604539085516616657267919027827408991777857677704560094180506408757573045576134077555667024361003583711485111855167095104153906568608661930842849597494902594482298290603836662353935022441561346606658125437369402058832986424779320546852204451898491835909734840440345057035888726985149302870854239798382022549141511031397506122681867302873044915648742969870452913719956350993194104574446877528303464113444261537260086548743980569962349150081302987271220360901586009195321650170653236158366454381867879641309436095650737936881633780595917444929594239113503511231705011090303240884287509478412802508357107865032278074832804523734346979167511771997137101771929966433693125211901475372403294165020341634443992730713341838037851987356125305491333955560660820853763276160268584059961671384467043268152271254971215928991389408297161019279493753603486713829856032120637009590920148341785799480957974782668285035267344835255902746024246065141729525276634544138954632155748482255549270447953368651828930252743143170216043555682891520385255835450295595089279540224682080965960333047418947582423899035746064444475123533105646502887573940557398455536637326969694965596595580798959564110600161018735361784344923622478042616182974478373302657210676442033292082302616798781581494521469532702866925386076528620705333366942107766952376441081455504460220725337923941617153341431479492191488546194009795922496348447869926438836512561239397729556893759309931648076740149291568571010777472526767591644736880224914278257061709661010388014271896422862995052683350967452201051265844477884221451845343120283192442839444954342506754148768087954912450358794118982051300903017332074298075522885426681102618068653988376402241986487012856277204099886105165259809885380366679862678444321701047488378661000597423160432856936758940285240659488441600250598619093406014144096525443078181625913881244094947621205355215330833929215905640650733520988510679575262529606403702691262939161416370414700201406607206046123332436838938502100550517454484008326840632068412268506004411794494018610537068433661845181573537724586329717064116996334233927277838376722606627417051821600475861595621614733900827621021039982797899239183874836185069818972784730756782215406440435571626646024020542030447296214947420369149578029128603171755300757245063069556877706686408482089088798854291261375464683060806138389742152187545854334270949643874422030353465198776890728735642690683619524215047709927618437993120874473553525674072952421241668300746672336918124286258388205296934083544378685520639364409895192684608390207178608152664556155867607138389820982014385402740490718987879456664549808379686617274144013812631839044910385797670507502093632104504812413907864898793768468590492728299717694106598277648755019755157548212188070207032853702139081179524765154813012122413920058915225109970954696862672058610230230923186169855617414764369678272220238484142722453505687820042893615499556841381082208355232846812951959274396572974703625014539829768519547541350173888946939773129720468930224106038996106704216301907684762709251350446989454050918866725855571796186613527890994169239966827933987369630806562873777953073756105750085103689867031040269167503805222612899756593983680798470147481732230156374670047909342503041190898136152206834865310944196406791381589570946915726138173271974294408738985973754406034531647907919606442951562721753159978733617989508480684892038292154122791379575443482778153797555521683934227812841337206775642060944111592608434851901243159837227336825544571264744788457438130094957772390084183318840360234428070988494691444486390934471803393600263768336789495770378080785433450189578952526122115650425150300738763678167964442419523737831737251520117353318451129338708105160619477990291971004260382458288900232195113698445029869615433400186508275729303232895748713249386041884916842834511531467301163022418812032465075723913349444389059233735020399779823324280747911918828925115156769371638327062336293576705881408700598702281960551025486719963006591992804336545399259696510864817176726360889386662585764226548099361838115940841252785702837746647892641283830426810081791375376970890402228156192713499997618814488389404277409902177267654188699725676375769403198052027423587704436349338574916426056183642988298580452415398919358332715666710118077975297709668758779393623032405563886314543536518200504293958746031372669349702607939051814068446363429906733892825338230932314115551756436692069372744699919032745057583589202396016066757571203141633563810536860234203282387636890742251973525717329412694754265758104224060429315518700887834986199558561420307664205329094093262021537659636464213327629272905696390291378050232472108123311796413284405520293775860668222963624291161634146005911489440436921474691365425817930862358767127875977126138192153782829797243558766838315977053568102340530296099545116803404399634283392776677711221811672747823265557396816532290876011133353572099806645612420181080558398479788088087433798392048492592693345794050213800853080863502535786395246769361536190731575503907901101852761325816245859498430712387806180508852209610710645867302667114069444107108073047540946936703235217271597690852988314439203643296804833791118564659860497423981026229826785981423109273665497325625539734179223649181019637198177805491614303233582446549951339892818759082248733567739867713563586988305463232782860181587385947497578245103571009931330488646425439259325855263252237661586432572772029611413481420597288519322911302509282866751740688582723832058385755461318175358969877576145015786619236406089153854375590271841246048099955849628090513635312939807932044358540937554030023055015063965173041396054835674738291392895953079091735138591183840469089363984230031476603927190392110845567217345669382147611419123219185992674345223181070833006838294287175532261310375473002921067068500614041158946307382396037174527100213094408101231981349728345171726975574124729426983816577169831401940307010237564286046733862216545836360961448097662962894256572177267122113593443635605640442266851700963122237673779366707089399806965754799617396778111301403513939543642105252776849883895288106876220884949305453356636152682687687077263393685050966215834294300692814999252308390147533308199431410530824852626171806772636403857590829769959966650632911985258648108163461812389074405824678438144284438348929043448834431220165264904640946529560495000877457041326610259388930267960763345455913993927114916030578039212066743264583443402602254467440213274000640499408775774873292843274528347357681959155631433940107893549023580761791217406730287546556245128502912331717209432042757330668867271055937253939220951217259185568911891838060705402596566133521837133617149406019738414606130609615747962604759299592221507582851975410139101342436865561317685210503983452057639608481260809508631408781122188020298047590942365313756497350917173568693661583527933458988488527819505946466255243271489205610981456233774579818483229905895751497528409148156280076472164895392985218203121303354895242485212188363473018108232823062604525346045977631382402113610047124359947975417142132986421592493774596861105000115509093663449741483210555154608066957439933803853859675415202920294966793643323270661796325518237946785699677947417551371579905619413423568522185794284024344150451409272175924348369769858213042090281069745327093443214946189823790247400905644862910919798229764014685226011580675086005812570842423215495118813190316560271993295153198292091723878952002496250432522509756265798214164367336123493929445606385263642688600221592494034476926693797681244874419024978230134275876600189532972900828543607048708605514731737105030961847500604643440556007080046912628370059517632328033255102434797810657120305511744599440773136391585095331762241371259579530253007798865989628834684319645169566027905235659692571336360509529747093168093196161984500885875183588510538625517437975641841779062450948995546175094036383871015911419897739499635212479636627718458683241413499781933529859538082323312955086729015131993729936546049164509157921453341448510365233508782669687466105189222975617092071053827057434760085844967809800658754017454805077873733854315782527910743197053222020033703773033357378670840528172138847762909876356130799350965067935114177029677356672912292729528904787683919473555375216634376561579272578018812748392708810322461829059195859035401294070662804680976112790353420292180439282687096679885436802421946285832779529540667045655636343116212475814729175736955312501581357820750548800732705696464008319446335128232765784470279146204363160772372395811162304884907728413354830039083153997748284670185114236009854358184285448701189229915858485627155560033469963205154142388454502955033814669545233485115285091115222909255430398530288115571003917863250612901963669340916014403448673028059664158449143111530900694025729544084147079002561300667262226175510333861318128628458074230108396087938022051726381381288946989685794053009620186137341836472981198370383833180566378131279118308684466444006362855552134998993881390908621083426177755592089960157547169469257394815613961674808000578099645582998025430820497686373093192284851026485195241820822471289435090666564904133597928276166029344001604420892077103990910207834072935369718761931854345460503336915255307790968732449841086861803242783630489537705847978019520290514424225300268209085258152399419543691578757047717648070548421321387214123906804064073084109755331788881013271655517036233671315379825732249667388348249264845218813301781567068144575455877858324454466882852972017768927425794530090657720744377192871942451945925807311822423658264207202128299858519189304440789335005910932899649865979113615838993341958627188533551628240628948376368760823324514578167966178251829851189991871772162188936541581933807158564869661924321341399418905354893590936397225865071505295823074653666365387678548698432578098856569270688315188773692880458915818057709457665619433472700296867809666298771664855954098468394675176555963682278684487201706339930763355620091956347638299495353259081889771808758378476881208194976898809183652280874323160248466117121932282633829491442844384936638062345867672288645845589356459298815703475560861211829593944306968771478942432574879969031009899726244379530808515465218131171853578622051018253609174518754103005076040054729336905710895534706372917432085066902093074087229023361384466219503801289769114016005601149221973485941845185364737854594133280649953562415712584827710111911716106010713671985619431796887919188475186161006558487340232963779473526979108165014815105337053320435526925757108761080070245902797379803237219388112298852094474185184023261721197827505909247422437798960247269178349414776949327442438282906835931956911816254533316589818981018830396874245785085471911212806398484891451570272841984846208675105705007090428182624067454064741692646110053494651730672228026697403486365637784369118129203260474502148339057337710414676226470074773304730378448950489510553250390829550755075592160198893716753193917531328396195857042282254525167300277104009834255273029124867069186995850651798746660255034056959606538655170714459370545606686158718994034395913487704343458984599445907842052231002110615295020365254849128169603851791641006509798670462835083799708509361644184468314733116906220531567458576411567040779637060571754912543257759980650808016649944265188128442519974050382728821339563374297803962577948205161496903052763567150022737945021706799176880199206683403401116575022680902239703715829480868153447711079584957403951081158949197441232617380735242951536862012514923085339047651059459075554346351380141332028576709161905896398284575379975294363771110905432570291772070252780299223036817449419559382236033582231245323045107539258143449881935173777530621594655986172661118195719949054757959148953903237501695061534967965291549346649081568726528149361389605587164145464532313172234418338770036195326500576911737778002113950746767587958408645893378807969435160135263872460244401505221820175364681403760337260520275643070040711853228035176323301285314108672314620632410443374528598688510005637646412842543102157210811765434524077539365828670175012776566616289643019426469900131651468235737424791920090257498980493691662979486971430782629402516660781050771589770751757226164521322959934115450635534425178156424591282086560962286346167958836688832725528081786301800911637097065326880891768333016430187688381169939619875813700957378529867979102831865527652152065029741743160135613619131369764224579294498236770586886248593136190202697252766654795146307853585318423114016867203455729963490328857890742286388047469592393510654620981343285500034496325263370103392712052233176553113565243404150936039311599651671350057396887826799201232344054044922684488835690622170730119768165000817736417601044988613197727875231208615880653796432923781615056172150512702175836377002962901189851182561159018937861362319730025948108230538727610712480154240864327605494878243409323885601633239303409526981825561451429172631990314938685606161109433980065156732827805706029177152345072778954383528720409130001319721840608616840781112226257260512452341816666610205295114299977173892550911246244623346267600004476103685500456353401176360055571399933912258331486584957080153021465698880112033495477987771914521412998941154080521884605442227963960022212024832153070089548507175608219943177730860368504922419217283013503831252669920566657799790470595507216967017780041113074247737435699143225832237676012606764917717319071666106160384620748407723181891711619633441021626139122263399070998397471941013886568010645330886375457044446527605332119170903091876539083255263270574736782133713081117990011987140809771156094113735089849905349587883255925799730534725842108619259921349097542128270109265725822500613310268116411249956159467324087076521626388193409900071475326554583607222851866798013612483823501651465116618509432432996360040645487512280902191109440747034423587079996053814870916798867023183873184616446083270455738028017977210233946107661355505673000799677434328828702388012848198795711978415221967875563774377166253173855998726158546817933710405949535141259062104261425852013875531619322321044024902898735456931391827830349158522203151420298998788496381476577905151997912879150162501445512943590165243033673918780148608914503220783676354407644318526277725539493638326370093824637954326037537983754121141690577660685642910640510983232959166779484830560477976092909432559191672529963532931809611381179885579946758257371292109242990638112036768561754186193255210222504737130645711669659536625393223994603152999851243576655451105553378292223438278728679126054369662170845571683640027545215325542286347019293209564341009831986049840786356719917222049072416423295082583770318145399232009743830519686052389975685567583839874617142405678061025270250242313346179479529535807296247245236746825763768754055204051356753249566166942205923223302927668830471820816179157437351863794183080965629077447387387336568003885602366683333145104875989302951830906035839291326556047251853376263647795240918960692533947779110151448053983329213568458546157759584398053010347009440187869527125813493244671849512146672620209406098057353567281588970624211807299782391716917801593589971024169959731846280149999159485858879570548008566807515895064045408483282373973431071980572136579124299451329281810632310724188755334431900028887206911957569473286789718353286047534677800739825803884648925904544954277390173743270973606776659942034053016304682053654920919531954699670479033647827525951011369677480174682695444340374914590880799687783626337544655305979244319617672743892267513240046414397856680297956762376912414731983968572576263097085184843688020121770937362494800435589625097526614738480248681658843690877756060209552008542960688578014865756650535529203803946241143271448645914204914742541191383776345805702862813721004184407572428436634093496375304849516181049200027855424794550442178291653778955532234312586575043416843416052490439288046348541562365617229696062297891099167413621931781257570917919349855088645802629112021044342511696080597767789939591327843867323022767867170109723849606410610208352890368065267469190916970328521662108224139163888172561047749439946855900232277077531463322614961441012644287663844940296437297947086622027953326288150291752219497865863878688179981328378257384040582899902726952667770961567960894647005859760864603712215075898207762157328116738596262778756283377702975819797671595705150788745490612977261017670433436209315680431057357794620900440074613675148602985276636239975422900484102803727837978423544273778991515794828829684240129261943593202759583611230809333420068646303579361466004986119201295693109181638804250651150922411947702714070907079373870473855671761707618575685249783641916377731025526073754645209486040357837074814057136900756503369083006522663264354017037968368348108611011072392890362085313159435910826933394172402215771007597375980433769044435493152232583282527812536028436638570239704461107514006386017510890519868587109845671302058780082993468512199974563896381184924492224918363881088951063705154702540542074723299556856077393620006287287972339270471421316560107562167104553849807215354134906213319783576395140662732265346997052624211116807292669114939012878081434462403714578890618663549448519811608801025374753937587181440278217094587183408365234281350150325113938643788075261139344249221457111052174436432215505094363842704234555067053846789707871875113238981886157123894084070033177587862264132095987581988202327924393592382189808344923182682995231416796899311328301764775729312479053901790899722141177067424451680545764010110334979461223381017357284248847759201212562693277873482209081561264526847958547479034324006523716592876861855629217240413711071689690862035784195309586043116841111469599460337223724696225772166283219242025802300320496137722592585494210500215779693875268840928604283312118832768459010051540020009497858709486532012940282187212991060371822866903748241634866628567626628828323308021988673190059656978177643082902954996550341739329261098768267202869332660186462728508458966994206042061196665866142764320665696607160090564616147010024120936208870061767449435389954212615985998589343012021200534770466636847172999271001126537955211909463797995088316680403164586588969460573167078934524589588989593783057780761839168702414351987771258145137219521570011238773630354790331107249793518738862796226856268802614709343156681814311841658732965680925718093744169487118418229391444620955071351144469351428760878530665388919705870488019265619909597668187943929885360608909665182017223990986815541482132308740448577688226096388061043863903221886755047825923920156869180783278086552541194290047894993718500642754761130086344161193791677684177178557366035508506066716728479538230771880020953595557563980132192030070503294715768434012010059597665819427591543344583190473673905908013844199962330485644058841910491703658906022253953835075845177257986943290201120757000510526483803149326184426009316851111420619053716257812196717225896076604816501308565801917051432577548194788240073006204756733012718499420724989386512810323687710410304336355177917179059423346584863223586831780992225826277574297002822765342535508035178058357943054227924483040847821152224582433833938690991604374123083969394699016710203650607199335286719577491726537331847693765645523445341361683341112753572536889429051149421026370320803204111537433030252445991071839032180601087399254983035240167890826444870720777613691442606736393005074275407584001543701669527108709966137312337331007939115728310889116396970977282803748719415196645426256727317200179086051756742619412643721074117549940226232689492447423185666546735294923474984959473671887791132569937073706152232330852871620570415088041407182410227487509722417654852566240920275392654911065863526402799880251403095874025335825524332281064697349318539076100754129588316198123706530631993645176037892288131801895612999477244476253325418922349084838006938188567878269016267628764143319164759301775448620818110462408055464141160208498212288247298957624967341255608583516784537795931386181626211926351395125767372750885877632232181959370467736419765442461719003864472191344499870192918260475952580660403040934259702090008106678888579407569750869204773203638795088921659879479253098267310742415455024825466755695046346642288417173272042656819459780122656298604832493713018498484715252944251950086792443600247364958795041027617796622073551262269822937255690514266781159935493696106904852158721361982622661709521644510869317444982012230510760770286182635838943914056617798418025477122011642760293202091037538798312738673930861188598360827012810078551057389160869654149986337226933997309271740875545417025613237072648308031577546012440932691487772492609596395415780831486094506826961281485285523020271003275058684464554102808788246916583301815954505126975391673428343605874009820947945839695597923416871282934695326089850363643433326267681954010056532006132498655060854449086170374906031321641174453732216577680010547501878217871267772053880085975729460340785384157846251944304796802586827800922934552995834651239878973586049378578957271217102210379287143259377996524246769798468147707681889420359255163026091603288365356733392472407064106148267313941608892676049288942975118665992356639476114814236865623995095250629326459232480230361044249028172066602248629102601585432491454828847929164695284034256273750838163505794402455248523171220750463527826598364253073924824623880366518148633056832053295453525976961052219056514676691962805634987061834340200893887005693448759291997506027312160324959048232218568198111768152827968994237001900222262176872723360248265700816729441434743911245433628875370640211201536893046923459542889180945486998986620916919484472908273130347522144818495609895301905830334038245060515506686455683225702382184951023012881432897449505635748868309270135398049022398149734330304809815750285252373092394932409108862510674989793506312976635740613177324333306935022222797980542772611162995117807659143202602353163041639728437220012505130606114111481363952723681036492799425697593932288279001018810636779891546639539535249703872727181714499505942330643533504746832193746271464633173715619993162081996914316077147525586537603395066443361496368537508239279890558491283609089160496648140674757402144130939496167694837562269063740576174981366780672427215992935285942105799428858826151511218431960474565367502227479755487649115659964430133880703094307848774602619677914072533239033410114332843929358291257769887728586137043466474595421558734604530323850225014127670311057089874265704583984530974358282483328076271216327524974907664018435978757227100543995141686839315608733149825416107584070028522963264022056126813802365292921104393398792258919331131037716168612570340280055884505066304878574976965074108119692745670919718512759896307504867599665893765768758960127917434493390645045085891725924181810115529349256734803319328991101240593884727120771593416810797473485677882179956902342326385910581270774627503635031842563376931011666298127991034251157412153669487840478351661331926481746121340175940481539070542031108260927132031327465437677214227831745001972443270982949711853194378595338033931013482045704632860964832479108013056495045252433297815871401530667413306116545110632511700834746005406100361182659570578104816434656015994480458911790481438773432202959141300007373036227398382341983807010535622639397620777189071527327799798767990407965434633781060685852329104833844903692734602776979132516257959145725467108071437538640390674677750792555144612176634706605753640983635826101888124396467243877851384665974162807115297371276046411946841689021992909996750102608120191378007665917333472702598709512642265460590784391163451869084895925756659526019680802099113924058909601078550099068479160727895254235202524430592681844143722434054741754501648172842024037707872460628053938245621680873118177220847219761214411370072257764314204600614726446404365681996058010185142926970419904430674894264930384380121209500501657984093683037445434954789661353437090023669936080561360539571666329392917458755221301419386681705199886424582506035026565357253760357564995854954458940079352949395559865967456715118818315448072871712656939603635396457063251031247252290469578589012742476188695724404268608001040060996146778237799567247366677789264462871674423790038448417757441756294365510143533257770271249834221898309718585430775927321080742620422644883570790693788130787980918651594324005607245523264116276295344785620463426607634287852299546394917625354166415678839110419942558882526464532698364026623807377373260000938916566108323936255082880352076233014849120363386089865394272388251918538838510741739908261039751722052855748882833595903427932213821235567506815120175235501329388123087903573850200628500031392942624014636222258238924491999360580364655488295843031542714805243218361606604490622255595072259529736211609266589632188669703351657384790962314414915558104489694625132713811578077151951370027543434001585372416135794380009449615692462166359352820633985921517730050869117667040682999129874273993446030346647947550607816178053170641073769448501867487277240012467570306552152047504077207183134949476704291945616090854264281526515000488721117502805108293146957252572414035785136865335697019992839307655302398538133153747642598322232264294850857462571678672566729990599841385231689105411689030192218780734842009032619789406178838935687655169274388253894802649066655910046938870283329065825296214524863547851198790517149341178676591632018867363746125347118076086129665506681995901365626541194278569010905868041092082978628002296800073916483192403864946410759345378640988584521623633655928387803736849235059178440974935863436209685767974533845454713832852486441554765644019805879964635487465409511010536967366984541816313855666699881817527837804312146745979928687655780146364905885439104744974005836434389385305139677275439131026587372881160303218777199935148785576988689295803417525051380154104812846975284499392570133749244085096543091926641179964724002530748595793028748601861887365006130353793076140467937930188509987639495285294153902593664972266890830376712743988819618235407093689569654166269655119399868826565409659929389739312714916081879041113291385185965571853608177135520579757726797014606830234429155458233909959419486596437104188838147914382168528863384250213725440902295842196670255852638915125884137852740143611627685847789780481675322614071861625817622669776545614937310220289268862457166101935439740270470012643709156054996187333896582940657216810911261357611526932012754784409233528109074868466076062172015525007681701164555767164715777634482085699787433150851541661435932196268490564819711559378223097516722431240306991995248046764535488690626503194389299668304056181709634390498429733707190061882023650508242491157477931958767411497150321312022208932360218574539281234556655954078952869215156989928771143927868349628164788844044739291723534519491618499627010808512530991466923144128803092055068871526554510925095649604460973414209741368378302620308900166918852807526924903751913583694513376321592322705231001548291854456054858877871142757174922502296880231981457303959504233147810431350386078643488857845581963401358229305961268934211971468596946576775949076923208452749716022304145128643620901575545159764185961066958592032068939999335474307929174937604210277784300112746544168295314829510251022908470507314110113283257310871971181342356307861909197176386259760414596206865303549444587171043795580653954447409359266434034918628018979253551164990978972464571075704986798127280754839535746778565927560192003337750701177237655403593707415931221174514102723978394278168218315674767049430067617676511760904402391121531328754616016385018507582466752403997829760752185184172726781119899580361682383477475215527024777743026894928961225428370490762142125900656207189148262987344575864423140722485968066314534443316910746135615925305160364729849016129196849565060969693031247539898379009694153357443985260298120528269812261331691451957486467881480081055677728232867591559649254444768035552276719549192927631303855432839832265387759121744851250161384949899840112152654453462596049329607823323334994848175079263519287210151745071783523686178705031083061486083329933928810582075787599812140513191193373305845194408102667282415775634704655553007127449624919011827574489893202159452127953544753473059880480661627707598006826585539779373842619796598851519002000774907565181853318183754595154209262099299870716188500907882050499825536284675007366270592117094565159008115466771028339625729115517501859291169417329485807365314609936175599969793217422586903938804514905131728826630029134914047469582763465307806755664145541228250251628932061668340467132120070413448754886595218774214601065457136783401549417286320982013063578607545074115964985145698129422534484249767481373192022338735998160502803060491228928425045729211887594157962324230591405683493867926390195081215567289346382297221437041538233247665110314786139887964351326625552652733734049840970623517894494631488552489788516549797412728898208871218583733037012080969604266459654240506268031510844607744953475932951625401033983159523024492327489188180626100832291339262384166850879749466845592579131133167905862971928049815347027904418023718803215706161193870849424529223865652463997640259057328328035245862993165411914965333461912473303501471851269686968976695805066818157095211781474463236870296401150496353674461018102318326007420838566885296045909925173081664318538943593707055790918443717949958416305537156698852962815664100373632432811232838141781592290701991845425515385592649702586365842557375927392188171554491159279554093179532407648370474855355696247684907282195372427800054132984909279148393886872296062577096591332024046564707475482865602292166394609882350510009498189412312873358898268761859091386464922756230324110215013269832276369680469138538437819942824055018135081426034592881039383520042275207345741526240350167791484653390454730776825554533427440646624295739346004276098089537037987700461729665388540952781640982243846367827152814298389888518663965962961415558817195275225546766194721677439322055665007489219986646544637214171709120242567933339934610690501347188155427145461267207093039618726458722375753104801712336336351446805435225411153166319190577350052280025881979429971149075925251882820160099648215163069120468278765812833311005756617725606589328505320724804428249217159325006898162264052214549872727302157635685747074647670661571385677786237640752372871433183371932939499431528886842844460592544176423256550008791213011929586301512774825258493649931898040576508139695229266562514971909164037103485584086434670726914774763638826203505788623906460300558804532071207333048299413993489000213504131072457209476861720612705578610586665667101783626558341750854480092365709656444149286834394463853858763359429106160438684279354934087852490946318979158389398095611743543505455976777164337697510414019139281662977325777840092735347295082518678806872245758704320317267031879823810280408943045430066868460567389969133790906065609103873976661869119281785764583167193922723644649996725785775861658230588692563910966515547313788284565870305510171776199137809238359128058663144480802304715110990422630440453471270998971682763021139016190187516065373244527368640617638098653210747742416650250489758386674883382911906975776015965463208627740091691567784356944688201375617957209231555854909054593350896792551523410659709311215755314648664807741105399332841237993918475410054049415141384871040308422105557329348572318933518100797781158690052706259330363445801531914432375700608008600937840880312129311916255142521001978726260575661130400661237789363776167438925406721037280891212162072386693775933585663269268382373123458346878874855307976878094624906233174355844531637484683321611659325435546449647973113809732241534413446924698073109859670622927391665986956064493143405523907490780493049826513801613689176942347980113883605405354381624784991353122154468084046633155486847632083922021933724312760943933062317183328618851087759117290292912847320112107059439418204253675873560124964036942377874463022524328607639349457861935117671870056256929104360138828293765288194804712878573928727710292715494129183578083401094976983743097411276396224842724000470947138360259804408984820828543815834265255415694451454445843357915149324548994878027305850935129132548030437186283318408529019451261056259064652906150932138122078310443517312414541398111868959633501298097796704958796624163970109742346570770666407597277148041410198970044401885523025485979489439961147521043294678271760112205104370769725636776609743471872535973401148655929033008482118220244820572330142351195576718722978463667277144550300299853985763067938799096929105035282004648962410390882965113268525748768720672613199831070851576963581710151953754626710986366064418580034532614677434335429059820457933200126044451398469965054646066249225105245361890356138040262547204600167183780225577353118534214417368274377435980878683931735146701765812401160043452553854784046529888171321054266278322966817481779559113336769985325692452579891795866531160637156638336791650808076667355226891373634853120543586223847646131512345991842675206632269913465611675645568350505888806791714616914477622782387229140930667864812720154255745269123519948588319895345710001951837790623224792561888352167502814827816593846667880761545818583064698363621619937601030743827412867280373829154623011638029293063240788271589964757005484821861586934796085142689582841172294438076528760155925289276187441973684387279208259912435030339330530897163930150613016537634575199076194795013964265148079006423586357555550827727626185208324718754250516758916134487089204648397901252853911503006635088239600798516027011052763307680475778710473015971341015902752041170939595324876631731133851453337364788739260795955426360883440669465368216515857320460239427542695385102963707478187114357724004044659493572941413241249007609854116106180570176024738269742529337639298932411096491884979112229158657371818610738699703857790218129306833995478539358003355474704273294080844201769429887297998172893962017740735311822788263373258658349366550017078505596066998121819283662579131471971259644251105138364169817530738840656735918115522402567786131030825929970836065306704453621791965500620470525982024030098528704957827606737557243049555221119153345384195545263999753927759571459254100159765358146600450892359481695640795872974946916694082033599884918245887232155296670556470273714612598520621476252467817493203883953265414722282230026572499175658694947017754255210450214660347744896802102290425210670469596696365866133653392417600578224041846942453942629996265031029551036085213965790172242374037461976764605558940570046390034317413983163118326336678698915434254278149908209460166419340510477789573166355477668753065405387645157223301385493328266598056937448205565411219777677933121366331253522925872633899583530249995888776746150361048917037349912129545188049695867155646896250294107744864471377989471951020236789333395950573028683972028458402004293177229960403141384338590995484015967185245107605602008207611174600207959894670108895611576353592064840244402889439963318011668390192520585280547754730301230973209058787316573080934386844336568749428926127731676069605064405656775314917940464560256201885344020095791109189668192953434383796110654032588416505522541519872534851219434820691818419955190159475988145145966438490161729848251495411228472869468423475354450252303835066271618177823726669370620981094550662339635305764140074572911234353740752992002192796370165427982025052959459359508411557531174839515014873066297381110543197838463368624813254133836007625931425434498526813274489322191227776549717736051907458677011369661016729619339277432626398296718536505215160471947146171927826701535336111141845215090428557909607266897096708712920802527950004375862736930383953030683605909070394439376841818859204242324617831184339735102228973870866944052738065936265098187566371021188062146663533980797218440041672976234467250274838466202421686021658316153053550335859165606226585663737830820685898077900493602723909292142626391289087309869462149251070841171957868973973227275965881826546099232209241617306528848731402970396724331181913876917296843181124419183742416082701028800191393392663234417874217834641865221865421793246840660388564995246144257412591034970857925478221743381336340311177509280621193366110545622096085739035359913467929435569002587198214602630267488992100719460363673360255797498262632551725188451789628445622896696595056016914616196774332494030875162214462298283956270763921679125348889040019761104180803851201757240581914310702362436670018348130568628327978544833847434020403084923560961916323636077203265471577990633650523400948969932928324869053382280987992357757015183753783291636409263300441336776064253711616777475745591634385855290924457981103267079812450941198567157193215283695482689997661014093591151625659442487017760876381037374215301420310929226303801578767610526371631658462009563183663736102017741198988699279658181792720731356903130601301124169371981111803582452251950566402074189719023745392275467841268541594389868150998221103101749433372966347898268854430554987679201690991519046086266974976403769375604677979721839472346868522992630578287553368378504584734071331050375823093868483035209758012458898083880257541511051718103057370607942288525831661880903404118372439220676616101250652190592443230179305710793169399654185881013651790758131651514528486519162138782049568802815821994624006436633610063862888279231260882460539774274738697603969609665112205946404285189723951043743290714225445306811373970443914568347754860964853959633812219449465232861384665025197872369525009948033160661215287380334830499737265315892125386767512933049771500410579214011696422607113305182604072091551101544689099041769881125184909799840103929591637762165160711774061263970700672882338471428113450392938672787393085254805450636833930486046806924939507075054649978352964536955098481474070117710931745991616206457565735426239220292211643461186459597141763050484670990545111998992520685324274574325554011752234672494125127885166356193400933022142712115841048012416735209268162779388470626236406524537625442802696334011549797052674922234873825784353112815655026378413405012601358235990957020950828927263049062724981959184949004208897005940545582602461093385970621125124305010556956573196561438269508761250651489081618954484348395109148905855152299107176537888410473648589642816719634047955847238601446202000758286291214107206266421529974146288663369598283023148498817304231952703921552131612970596978369141375196334741535562992939686987345186802326337057295338093829201346348247744596915706140092571987940896144881459208379731107269176136720515270329557640939345459671343269005273566124227940362792227423889616875874354135697944960170691631759681548851703086591706108712594879909105265506814966374248769953588810020322214289639865182836503612423847316972354702432620520792645258153783531239225956626132153232954952050666035898165789302960769733965355003509686675426664137539768336664067569696210436821475509547981800487549559870289275005828524142329802369963566921772337344086080477465862199733777394100145036350641865652244157220740967149703419211149124922709314944398857874047898825136541838207586486551197927158069387888149753931809557769768360926536131956314182716880666788026563493769053520660111285330212608136384869987168135716096320631939569593699714590222054464245719251210404089216423467785079261771105059246129559807608840120519897613531838292584491620623441364603391935342149708687583357144446741469501439930238097600324323964706276028523050281544112761117050985468938783143366752033937655053170238044431816604021375534366810956537605584612376285403211646902031171719920785050263902340218857597415550827660009627589372525143554233908363069266759300174757376723134576193903485490890777710098249628605224491259482474409392305120937887842282551164869785204412725755120366494568894187198583877172183425813202384395865108008275126325284821172147683336867637485323754942227733480164845195974319531988470627613753542587391465852191832939929828344004078126785549813319791896855691138446815470675425758607157536147229266901281012054009183760153234939706085055762804834787326132101093029396618658545316696924899483103393361909936853044951883805667234873803124385980215104846455643123066516496452809690147789889114476450237590718916799089018700711037360255749931763523121770509745424949547179325236849568091085920927683774238867228459132472601042933635692999136359691876640943469335077609341980437335935985183240211170087833738758944336793889496153656671884785991773631497360951478403771548576954958066782844912606352731129717905132537331163772568836836609122600211511978140081428875211192257448699113134509700218255995854901472350794151671230302582270636559715750363314086156019714158979970187591371940179530594146208672852945022268794480637502075810409324049131363489309425133485381583024458503226882858815055437012102906373415772620836265970637900404544301726399944763233448299391842809806521203328705346171508629029764374455624755531496891890059248811124532500644124465527673316512506000058411576783192004915461585399790054232940992238537942803944571113128480453486139948481392443030162490873524878851732527586822291619608244708024846743697519062056604306742723101338228445637981729101384188341667820884314896534989803787471971458386362660355876061574262030162539861748789669506367498771209469653677246135772138864201941720836678339515000044640232042543787107531063574883041945237901023527509198161192980119234631919427727035169903703829759177329359583479471626560548493238988136121933397300840137241978745899020541788064005520060432092831763546254715023469322739563126466595875463686714324821124689174286775594110356442136324164564893624781163935048595477979107473494040292572612214164197873521726546565762293099326847498301015480616358130938744185173536992009151114678341898006888804256770608325449646017113311481130448305868368668984203328329997422742024882761734998239932054943067217061236867826436961840045379027359384233552003679550589769579640033347252807433939039756294203096223013467385796676828486647225649675581211348676767258909699369222298626383555382624756697325477423122150141321895333055862288158238336449248293122569633874293397171558245536270293455227762743997693822865692506770786002223302479317652344656282660763281606317159828243658141633973723696418255209998532932867767704892333137463659169989530659958513664242725189152790585436282401283635877469953526632763424493745274423654932161526260145182323585783179622414371200175393629431967212761927347717991938425262037503032929476190414002062011515364443541785966926586424928090077129215803764800410512028686353845178184358834352226758036320869401531347016569064453679204234890115676443625435482783409315527266822387700437702081298446778074118301686084272081903868895115079867110858211957197820946663794647781427241371644103341834248467013312314795158116123753633009462968339547187102995917947563089935309775310710725927181813735072885521393297574076454282080238727030699784401544659470844563193952667893231548347466078357872365946458596542727734630988117621027414206626736955681219761253170154475107945777084441998036454845684578132106481899734635178248563706782476135708242318740007760359906862434785533880752507405412517504712127032436417407490843763274940311383414678080225692838896841980193336701814057751706152821367811603868238745479921841882656132573089978748128713678240306704337261381508744815507055456089447810857273548164851094540263738699707173718875765162364107445449175743975199296077007107867625084808225830757164097346618848914614205804200389081553493167037404161208276572606422567167289436088134425514899856433857014175054163029947480198599669908086156385866958602956708099313546414649747333748319229971767478555465487596231048697250970558429348580630024908055072250484378373296159697452265849464195742363728026790072682506531598273883328967250202154007839571333775283745991613200159834204492270468247754351396895928365123220429267240386807576933011670738480333455135556407251045930962360437343636964183284149247514039164958619439745771119760622928707439743275226817230490363747812156298637758124396951298753798595566173461548388889043288621647999523224943135265945574698679397525901140927742859049853136946947865827454287464924062403510522603292335375707283661484976456911050361502261258616308093929054332782939390450427022673210854258356546117113278116864981651948508063100335479377634800628725333241171624907000656682870545960144949398099038474719298339510249102945605561168960839671003048846512914737843553674957419653601351949006943379389839032128243514363911977446377174706190350313468712005806989194637695474863936053429898258794730628109637824634162092049558839023642623377212962164976285461621056221823001073278616516592996828134487873635720002315534637916441604352006524558723637566163015781871922952721037673500664701092626406083696039330118489021475405096608599311239070812551986765452852693448862670199728031722555134756228342877545378167095726818845025742385809397728059563551767310177525766291839578687169363882957877039513000987280651867637159630690142281793796813043737176657737594945310639874766393637564147010466979185846588654602666554503446420437379546101783577117725007544818420290462909466206403629276253783717519139091764658539166034718798796277886128118475993175592294459390447464827623503868640413989498842182952713156159238726971881307088651128419584188997440150050241182680285274399598263902806971427159753239305099785219886115008776488842711162877847141453526631716917754216871214849772305133595373992474084029759698498751583328816069092013297227046577210146561439751479393945966242377812550238828263287901613986581030166745931859281656174390006710240072121589836757581419301256171676809684501382749490148483458590715664437143055434124570203212007101986252298801616038650008343984797800039964193136767683408787503160853220465916594739880099947511056286298942985587856462107738044010478701689587708323013381674873864267617143223637370170258902765962662448438057303353492539447462795969967596245559795944790050987704665869572220232804998566269069288673949330048375350801397610472064104597215629338919217411441122163611318790580646636929080281806673094731502914266801936237705219353599479969695397427447691235082365713865335849775108774953503813689241584725860074088315284008539741137086278752947177512862037859739887956134169158444424156174519856519239333741993999321985800170534052937173201813432760784467575889930194759662566010787016677500569238607169812453665104246016521343256726543540711211507155757839897222670069080243455276776264993313664187723433362623343108935192198480557209437254118766647369931207332144242384152188235004159530588096302452830271278084917467632533081749835616911422825040269464951344997636073208774556152234493876668207455576374194264458779444339066847366762415119360708258156194008357854833323917119451384879710177299240970372278493236294170129944112908062433913729988466678221701707433926224830681814709165772810839643270881044503338019671421327858355948347090317419854836722813447342065531313636057695889796394441362163487437643921411954060959538189236988722020201690599758226321703888496749239051417892031410529447689457937671032517899001596673745861796512748489938403485439889793162418431229522996544153753808951585195144886712315798386234012715077449835230348515811693274313485387071546783510461730557691275731084078047752559910699019695940966515210257935072897483335502231467821549051268679725722632852994325526888175333506518847156087833822781181882604753873822499440059407705940564435213789472118837019080513341496002131023113774222453607387713042614513297233152347881597070976804969687476900562395176759733431651133860541108743597106902992201682399599683671058216594567786660438339604104313830109373908982911068563245613221544700107532716710775892626277160868477609754015989385903864043056932297089210499273040684864222389523320282247308571494105751306092109852116731097733394524181283053483870472296675577920149764938504750818546902184403032245729630732836499572009688447424986014325042984561613112889680803970679867537619507945589058221180489140692323591764826115969792414549365185662340312545378997836274563991594699679498737290136742612837522694222603515974355000321484627803625225127992573030929388392492841950790262695972036724635628035923580031631582614894101944586457715136712787183514649568881428093846514555048074624943869231387442625727289994900984322026597487797295984662195992314153527217585836973490119756205404686170044778844872104788243983071608518002806555569419360799856773269855932836278719052614262353167472547295608467048142597083651903898987006514517550333880796841526337582622972708901985384872304152876172378129781430503773466924978966784472265635487105450061312746622928284721541424338791431081867738529173905976022252471750345275589066683205535897928126982590516023193769835709946632621514670829074827713378833101529113847561440477453233590078075843681651948792003810921426338475028207682797981210067744325535883011275683592441075274470795960699603102016119994212393964497549750739963502650742525053596986612471005048778514006616443866888474312372874351031041637765051395246217240415587800067530198218431367420460047874113211645879958872154341125516985059703555748105239780090787119190995810930628820553599692084783411042943455739918685728936991925642427928942050210629532909856240568510265589170876125490690344938266814665786572658166769297976539822649143571001792303094879899358774612627724084177590070858268234205570835597564134474115079565748635851139032118963866736735200641566669763699615739838176429293379209263709957331250083392261590226565645017427285049366690502670251369229970305514555802407306137968965257649804874951645109727876476622902421442394740372582882559656943702161115979118037411614937401074803296528466249798634542773727133168199340351661792324763454718393009784017554381326491146204537554602542204270486104546618070215666659930536683503919191299324954198823557794713416996232034535955660064683333633126848479767997754465267226440335528104599705474512672428441137950741020238764714007641707112386804702770593385731042560419053944994221456796749790165097094156629167268683822613515296590120321088805535351756908635739732097331982548711627191915306247436954587603958595404851564884646664186549865584878963360319277304557371334942777589449747711101961138550421427442544346411485281259493488048378134753656570424954385810311757308668054900812140377210934625424128121774212135630975222021090148904753898716493148549269697390584683349823656223262483256752704999041518704438211959915111911850542690322983567800440990459780693104266244509301803935320287277891016658500407402709918787266608268881246010799002609665262045409722006320660659305565807959922217863892972780673056632927537604223736690008371925699159145028995638442749494528165657010617467180204127013212742648313201877527400885940159915543734026647817507546465645626545036716452227975243535327663108421987241816334729091797122246895638924695935437646713173848980726616648247971970536677307690183825580829637950981667026166983664204401594427332878545308456909692681602065177199362410713500974442798346600773877731165263558037018555922094376054913197280138983602680644897948152279003689663614315492891859296519194676314262643700686440791304047668805099683952681725765453696095212450707124863057432344033051069474705354910795371576114331946167694892469085772610781936925227075457044098461549386976663661930664473420004683806740425377919129332402308179632720454445861557950866200809395749068135817973986147792983051023022092907501819148623935359141187539490779388473851139628540927675186134157924620994228582338458442694752230730335938930277285918999695109263399826205860752970435571583950852964297864438447601102825975725858625045530165036830790956219168236334449072035011729929618823995093129811321280547042174257791060223365972978064051347102349374404626769466538555404775574183467280160762434708288653054788440995134997054662986733772458688331886644983691532311696020218221908271659008365207359856323101858586112714581823651780497122525021752865218153281226953452995977202971421456008746400163826818194605039066662448693971640038251919010590985106671845408136456127786907994656825329671449268986053377054289531025916326495831957300583046133493537972060157892288190781938619162732488664364584700287330756079774697658493055278862755973825206859323303143314048845136619682150848134489429733528605282353739101040960903191197493039063783039745497698173922743162444306786896505299432416400174834192560970202117710440034835755252400691933896099067020353237446643232322693159529977148049669336927124707766983100718854151850394064843444107237482018699122019186919258205855771508567286318099493230156802289231673723705469966926655265836811756128415058947385977340823323788106712498557966093610363792636341940778716739560975322830108260884236213473018253824747911071060567102371359231664847869284377133578793042740640536797725300870219844024573309131023923320909815293289591013968957567974338564597934472764045206406066118918344177816812227453412541888323636025525710806637656545944698938817969897087091219863307781014623511691393529561286362687732635579851491634351853257432165586937139830854759941022600690648558439833068062674542707797114051505848521115345980529200162144714895964994136471520717798891978662914880531807542206207398348041299909280888010882509968390885833450300315299676908991415429928430189370910742025703213285453432528406859413355997765436985505698134432810822585771054155170373917209220933519979174121490387294358914149859084529000005093647295006096353960446107344237438287336090497747668256015603649169503232965378526237390470057542407805176582216951764287510213236077584914938927425581924029011886605125772839694550822997366716007877231226579271633459279197995431678005215545805827517375012698856690346423536109232601064171249267270810135747115336705110362564997237395857610698776365558847345870611097729539153664137096914999091707854083173356707708221793253053331201389771552946040678260238429953219618840069609367825695551968936251570420169006568210704996625958764522693432601905181998893380377323258738054358920159573562517018737057313173266816305877830837360253106052847077110517354178149564935127661786148004958734419608137733440263051345207868859763073430543779084468638009800813890421988988104957710596919194939712537682466856094035559519722604946304591180162315224198272524593497462929227363219564040574610371533217211617782390235890800865337839514628634921858616170780123911496802768059445834387702666950060270781194897899271365906621462343412549027952788181505460053253716098465833922403171392045757190934148756169124101166663952574076548315791012472408415491452066265596025735036542491718417106049056647992470689182412470213627069527486240239325078540454835938943225733670842559332424447268193601756047306750680719217282176122822052009522936575172384076465076748358516250415341840182948711074334048280793761864307140741406862802015339868885134240174225746222093116255726468382948842344384981657763604362571984887518996547342578422064234879000231169317947130523284482975996072106500019616782396467525161266463346575324466238200960630681594805910875888454130154541278360702371376200017286547185906103156481792408064730246339690488453722174132608893342155147909111327761927256986607743529427103914840021263222232339543119258053409302708907697212449069014550743072515366312202274603857836361928111119221617627225484626406880634519371588809020323687325024358129154486044308179315999783717562244121253430949426777619032590477680488562872034072926895350114283460982503270063507209402760416011564887299334675175485163046709805782847971389955969786844189102939755803106072130592399501527214187356247235720779163518578256929155675257228255292978905269942931013673081264866644822930792047004586605767392243883411890645816993437766961257948708722908599501312708062197196533255629904134025397337774749769495263373621901795561875303479486713507365847439081932789090053903249008446984851327632695458861340105077727669921398159553241385001641109195695971137570946496175070507860517162606620869674919873648880084346523686081023539092157445811626565947290096570239941007479238505461516312788756927863432415791531450041584366936385666299700582492881194534797027501481019051203783328138390443553834556537104776765098899196198437414504965716851669349358699158843758081791381424433329190430888417174877298659861750877152865962286712714577312429906575662534383426420237025525239036985044977455305000229294480018779948848329256830517538267585853264385960465283095503351449830221258520760037155839140392415361409942244211700783030129619347596016171093966132307639912600278980944916366878539798140440964828605211096452261683134581298275505416838968161889913797112007216503583266824937993593672704192046419370977579326442981115709683943857712075770464183263964886641284841053364715459649716407389909503489067949848794325695338658711305814222430444317829357604198152749416233434674879684316279689748793525942571868445957903803165049268999160127330147740791656045986415945678126914027989072782022456648596470701887245957072045470081005082960503849106248710365402161858211927117349361410152557045988699727395478693521364531841201288486100003610969314470935527415006499399917327597887225001199346188738115350287135690695989763655288008688639837568811953704511094215603529499903168864951551220726967293947842355302624922594338298476267252917709135632775173753699143268020116605069257483534121736700369310880744896337386316495668711979783358892988815730607320021498916324615079430803914220497513159763053890064774725055026619687762171005083495474122372996801527792137024856128887014538884220251735122321930277962042382110861621570991651241203501620417544446511685459015331629313949373662351430295083117435219964721358690257787269955454877695644347067150553915057935709127010675410465991722427828638796987178138375833675275578408405182266565039639073321148443464043686695814401572449270394154341376862570901413881016620730254291939784184988291593000640685323476692140647995423884881950366593333138576792361762388605769111283918558774149131888978480117668727422395267376782953537558239942396248439783893514692338648839780579754227159619807054701926186006634059822652643302124570749797418393777630939958497694200123101922799283746257771766796683441057250690543268725525294960809621964746388639233323248471035626903979678159340693442011203679531754634048446855513248188437994805288579222989864072804453543287134565313485478583588608416870316975801642788032786756589271021731449391012527318142497072453868428546366076772391040906640876915380193506256128896142966912780021570814837075194316404282763655028731880253954924225681810828544536139892368254005402441170147987905053428514583936717750697777513196426595873383452652099740235019748092272836159539207346872256754870106564834515557564548597464580957353156818308552477480752706329290283434326229983593081918933901839989051771523004764910039887810608164796630250291618160042726156508019499580859475094895011297733430998032584608704767452838871604976116394164462943843971593771815022747847581069208643664731324790021383848140219105184098796391633856051750834301173480478559430482767919613470890235196893719035673898419474655858006492020594066666166682810747584629637975425100147058112922561607124483081933641907295068606604488264726809572528711596735189059714635885685039683090173109366134362719938278403294438501344402177263001140163978201867915530669841255903704939579070349404507575190257623980051906610654510405355122030527976885383925888358935348292671125844572664468972751922182119650567890483102678103170617289953385067119977630681371361971906453560777891363388386072094056121793385234866368834969833326697454565895751517746504625088680521733025997829211739311709712120345126465182977786017697270745687202122607757807215529195097248602944051691276225127736871311976753785213453924244728096024490964209526757361451608082843522844411509454154251326244702502686139366214710474460373456104614212199267195648991178768809553287168318591574336870118353633894862308647232967377397647258063073914156475994739724806029770906471901165862497037431236723192458125842325830048288968663309177233131294912885711189581541491567264950786542442915640425916961168670247109490174841746090806013420897031203840691124677852781285179074559032098103830092529634399186611482124582945714425667320402200278681229726024962896742105494684719179837865596634578213602186650768841865323063458464885795236908810369776305417449143785997302438456098540157810749000961345201521379970612332724386987511593145653188714472434610953473854983523614779530636215375505704843550094262868148131615755925413879329210126228155943857888737560291685733646758702712772251626586737018190729935164771636701016765186244480886579906029669264170720456743569839502064646427461798756600199573437139935531619550883965423387184429162572178051588788702725378770814521014760397186142963280406639167300837158286633329008934767324424914942990725593599849194631026468850087648247095302620445128216653193268296093050487411112426273896932325971800046754190263946142956883863044267822646998403633411131938458504613277753583575271201309427041660051291525660982878555226398819311816252141119043238443999818634446779973639623224031722540303734902409278623374354197830960459757119598066382960642226248191811922750291100410223753992325254686596980328335160255773038905090160042453317323143193168825494510759729863237768436849500318628368545846856362288518630662995801854141363359887176913659884501571831244131534078166981732655445149948043528967086377686322981198601849823138108864668510534349247539842457107133463584932060173932651670049927828739897645588702678133116375494337453036022275983483343033662855736612284558327282369262979370050097696709569663148165551530021429065154339448235003184305651147991388331330507928107672589591594065947827384115732691734685480845266197581357631061380667841130110061378148325723627753264260225425213355679644658184206790783120092031239662452702873142481192296603299956217323865713608233378111435957368618545976097456611899005215574458787017889977066751502186899826211083180573859663710426833535444839636625237513427275181713185756608080013428018653818528916155619798786646038249457447830243196389140158405242196046445420435149944660323409695027016349155331102834902069009926804136213126113481673031078919583300313017630115603204262912709504860890715708805602345424144540112931049683173554105020464522900871319437107719871241198386510463190500459547257505946887136530817819823764653604198087908546184698440290132515957397946248897774625733177056223825858787987129950701161900494773509419471180493165107210871256219408769156344587580445602417415428977123956200160533164164783298248478810711738175501766783340700928069335786200890892492015324078692532387403041093902915889507285015355581000744317185560886712605026763804339357948526806004098890627375136572092536081177067545337626306461685614547471983107603856854077257027781850905812410310058578316779860273371725419111094026183159570950445898449619789481570570554118695318487824226264320385563256038590240917269834176825107254995748915267821560098185487171070086029850940308659513219493779576192809813537660633074693133523384753056702973448480472909556814530179816780052686097412792864206502438566574066454765234000852362818446132474891500980980880655271202769208263070497911979147376363856913251092862212713064370134756632037382626442516326856898485191091550819954139307459612596420913692295511877938046524004277338702673213089507381692691025767575536733564537432514249909225310433071440654568122952962924268412152003213925633240205288344544075274856778367021353912529223687537125336731724902807388469368766590399405694108657068230718346079083034194178733553837325609534177225564849647324908034026365180352448080798414162791378612728580960299403487651294344324994967290010366242474603616927301219110920889332403674802120194549981365844118115440989334568831923221468205809988191993817137870604440170431217413371111707120430485840746091941770703877749856321033588010263462022317670043203579218952305285530081001619176914939867692970073954370210967736542819703345969034418176943077101006104740001690289907856698067831273356607851734451735274803189660940548620706908400496301801711749332552725107184207469571834085886580215212533740081126757821605491537743078261963731432830752560446495048930099250294275282091414239370303148117637315088082564159999891493934374473247526198857777279306092919820176048058366540982952784182401558739686616192648988361510645651793537706947045994822294104684870688816759891148675371011943492947900850430812092166282147356308503530602129252876763530738600580495579200686116886258600850000243885601602230096831945382877774121307472036036896873174442269350919456195185974146847059625130634459314030920816369695593212639059249162693571161569525765070652884609671611413226476812686407199230901771571580102128627714821434322279465858096391146677200558851358865419088711557899009635503127864903661016180450140666364638435712998624012345260067745921831113051779484223112255892975808084394103505999740706569825266622597114275387867509565393395478237941370127227193740977403445583800437092362947981619735105891074216040993430610548816252621976271165566626872100142840857684753081715711843922023653743468590170678062208478837641487187645000033295072931717472432245102096998202617615131429026506273957847479840961774595858071847070838975955215079561824281078775150548555387583381406758042676370425260568734131061527418475311327661232732945172320533400837867591086877068464134621819145656006394479556471167400990143167359158890656244748496642878373927820143358852305435860552713435213882421486290726204554678552136475847941656645834227049623768116871287223686135953840377413938789656242911713215552368269974188134780261939073769376937419373592204802332154122472867690111870450373915236044598727921131759452798353726458543687521388465438636672327976125990971966081863857168326438000236373701530064887131100503893742737100176213337027429802634672238543454032777716441723618499344559644517458082513635337645252105699656219271891203564418572427750089016414071980275681421429042495821525933702270869047188276688201698098640411089996865232788055383232832679579198171640496346157223432052604042089405329729092180359213832750630219067143251917854396106050062183571308374272232065031211411672933628462883020309456826834977689992490305157687420792612491364140862073256611430261064005515349566604280872409374022399207173163567606473783198769690845579954579331025097670355892713420935725292878451291275210141481235125099448880981292243152788411435261674257173918501200235940861954503827940816711873539991095213834101034921492222462211546251178270788091559065211108282828087834090895663803302869651376817076476768423194220102854654775505968386362889860921667905223838711760383028993899842991583274590147346440205148638131681520577804970277026292896193266494917121903293614980078061239293226574215194891058662937233181702815274509381990445156067818837537751905080006578337342999930056567727217972627109506796857156403917908796547978201954807794924508689847337153599114042669753871337198516661341393012262250195734410316239356026890883330118435518995825089128675887109769363990793304141441909298212420608025315459334678582176617085378518822256127262476153889038009492284463781568953819045126200660332786600946029675030306351623611480926237759565390958794228537853757238167557941117458188960440061390802476250046277331422937950057082150271017739205168239949346253527248639807151007324917211909785259014361302311357818869189474418751975423660071575191933162907861172517762402084123030121596578329201588941622037863712326687448442847023485820430796017774231191513755683896943414473578014365220771715715620007000424569517253351206172100155266629844001746945646359907302146096779569406624932295728707413426854726526942854834178085639042529564551358611766476549653733989035363942028872389277188443565029968972284485951847498511316610272575823699083135558065996856000988427188512769348403687327714936709954359987127165031331540035111315764359815299476822224789713177252308219077676765069450919762647226675297445881487475647775068800233484327147558656119841024911882473832037422314916427259766687108444527114977096309127250982635007403638538935464579269832007576704765521288087675140591779459544759628326275226909181341843854965670404716425956333130686461581109920449155745602322962633413059326704502403722175645033548795621835516119114742253826712906923961733384430495954614929651487006433354494828706570835079201822476320336324099660761765303089041893174996143536119484474615647463629137796060661467618998202797732474822154769591976596074531287524398891491328318491571593619190310167988238324888087410858944623563317209212066825715921600511112350121644814482118077906626107425880930927029626374421902287836735732263921431186900258542403192846445404330819042707408274913082625654463713603891289406713101208083165539956006232027619073522613510245243304301914317982213633297498747833253951637374153470339761487509870845497385940615526975006714064702011404157753884577055578333990750530265357222972638678952873951256390568384084360881002991081271530987837039645735731434329701116112305352302764207976969087196008433090050234322360030860058929158518519720954295459588882705926588581525380116262372416033988757178127095260545658298064124220850888696592501798567928282681550524127188927279054806208071833681827321059987537286782577302189198000323210711515275044473573161324847466036684253869906430108070161965161996877974847366983198394620631199966763783826929162663045317446041220078172881408407281457634581251360048024010391134593661018808159598927550980805118005704951261951408201174806062913705806896757200923422539028026634419356568392081106080936796094257478268441314313665795619020824173274902174708103707169293092248857047565146095450222622986243452377536721601399832656795242717351263851088171979960532521506520879249002266448216764120526799018363840439501635701683741741963458200731265631201401106338206463457080602780063804115280789345231212264885915988809145485554274372539261582780713557326822032165759878096668424495033359090835958710057981674717559570935580277449784698867186444508795633859881758308515548522007646213348722745914797568259203501235773934570114166111569351256032657244103000193012621675767828693912242084833528985602558280043130389692264129951315300485279987605468951962708767762903592818119320473940827714262415828878003108466062966089776302387769578793059296033678517718543079187777378463013425144866083354314229517748912137393795692975532666932614255296390037015274190220689355966082450249470024172427171950849081470856377908836590935764734559497318121002910731169734018060684337775481861251278280713163775063179862026597927588779800359486410076248582193489414874504136236984510231760970729436028368287229665457165130285001078523608600282510496096215871547780853522792564867208456733836206184399858884519037761424783614790085021813595994824063462879987518629779509035300191492294517513030491119380750315061798237078970996928725940315601757388925305866820218466226543674958050686567962417859818755216590219193964195974933060562560282017224506714799014450194389392182143297327927308026367510841528177709450780306988523156714271610892516978511383040175905105918584618977204513040319015372024814970552927990738299589648113294979572657972966264153576098443868741715070794191998864561548793251140002334247086150778872808078346973258371109655860021376677381888460651411444421588995029830046047776159512131854733183229193052103213364430523741130870068718094644073156481995093468123929466249586442473962464564359888317561901489260798242416232486031408293903629999705003261390137922475992860725408204634398873161514406849842551730065986174380019894063342601681854809229653031590478891405896843434904141211165966945831270701464936555088635982938997964882786189382374594670507395955839207786043807401471476067023095956403414668451732390815391732193987040809572791422783322946214449166386264185411998029224507637516615422846282623162686996742308788223536444017319627918123852716966064766031311294868001541149204023206168618084407821758645019288204987910209537756038826006466739922125017228845019345500565048472713598051583441804416725137798226820526704367131565176037315864553920002239704472788196998422359985170897724989072423655548616368481007550323104641934061529802623968403740671758541627351968598401822741017394472263165435198345727443632620527620867638599955286325827407182378193199482244182696255527753277907075332808913748407926744573525144669905272252364062229003338949062262660364791909671145804019533596224488365860692066414216662242378421286555200901826141250244960983540843269743347595092223677081274891906554777930599951295642453157523702219026004920852225550530628084247291229855694937187224776687174420186028786265826510127873249659286650724004500733453157431955311245516842691450379601139817108714808259866507109757859257754358822361991631742400492758457574775580143596888324199526067238670623397286635248913020553498466188057435131365791986285544156653907770292287761033534016014072299470346595868701752191677416819683285451211252334713568501131524470455036421915260395277002168791912222390654784831497858612890526013353277113491849214020284992508758813309675801220474898825998675643005276617643055239923230091004613324732331900416520608110515921072866894261958119779730792732494253758597460221660755964626562028419811906056077413450493648562825138873660172683432146489439003026189544636784823429751539483492298278447247389563427636594518081205176449274687919682515510717496491610397372649336236595463658414376715293103564504518403228806582945178373737179857643845478546522752964147628766506141402741220471031896262295842001094530974814072209330342053117298255028073973521297818661019886582301410715685027913806745255038106965842712093304346581422821028215238592516205700416487823968914656674658010233544733770418758471020977858208179876795064583437499572259548121300101442529669061677404662531362474474716591401841800726093052527967914782852464429060744901108692628613881514228070110981966147976740589112002301613420989587873285883563223923947100089941831175452367200428739761464671368084058193256630654648458926047293574075150203069378300634573044956180136156141399043128685530179974963248139055112013310804229276047017883117586331285552626691343330638956416677529296238231954248091209674292596606803933523886549353924431601024277391924913646855767797910030438264584361654336053900043560374008535484276811456566779084069136298217011281150642533120372373515086793848889201139712383259354587617880922045619091226611498277303338064980367462308801139022274228402748530813508745473159002336076504102132658297140209707723268130826331918141114847822250122643586930150886617719254185192633073237191907505262930475948213650903172394317430651248145096503612023384204281513549939523620342942329237358346465332157989321718933682488356048519528466220274206171476638312729570971809414919135131805991832973883014164847965225360072042306522714834825630587182372109651997495137058008442897108987213870724628541762458525788627506773365835039573928801159570744013732295439937067960688113942204113545269841607114116246080688074239370280370579569433978585057697400028537643539487255889531927590769128060975639218024215809185503437599089550560587773553144732199075453853040428763357103216018184178210435942602802121476241336749952430612811414436871515257744065061058920656233508368262263595891024845060326015093698061048649122527380320083391760592878473392077703368442570563086449269966035024481952942508260093816353837930435672080103699876670581109365619642999123851159572041492137973954124520245343897761452520158970970235560622287439363428636959935214523486537555010501771414982565029626629002666401543966764544541178772077899082889060172695786976082269524972605692375963608954701818134713560692235923565448288601243117451066272196947177223448269447720933195355079547168187102170447124073397336182892675373811143999570257235607975658836548635460861031605026907802684617038492037329873649685441539275874093869989209277105319100823654191219333958114896764588229691653058611090256386438820877361882431379860259547161914713106044410427639024997307193531720301765499306603456550233504303876490713063376628475773626599771791856951889645779749612409875265820318114029442811999208500795095516743057377322778061481258016855746794029516502036555238610665082725714760597576446449518150091242000683317535389424628897453098301020640495084248972967779880257720338398436877625764443221628608982200877616554018709351945972866394092933665019487663136395297782884643621031327497955151313196311237922898040126286450701924887684064958360651791136369401860948434153692934329193849662655796237077514753830799461006359326140940180462911893216706621651018954195265077264826419510028086517401882269407665829663495852271397783726327958127399367430748502353620240526610126405994846017969312098186903343673110027639017161071144932283671602230764312477973870557595630026306649704584249834276776707495760491161554322781663987114452669291016694818190751464726735089327694139322846985025301161660842045427817424365365313437253860645534056815711497540962005608549019928954410595816190502929525665647341440481859081057946610264665484160872295321732086671118855397543425854475827785268671086677264513612163817210529371130987118175626097752466038363092291510705878400146039749141965484684716049841371316371463196347380923595585627200859005288496980189313398283495085261192665450978365869255357741895182369269823362983304098389432505018217905157941834158066634480668457037447159196544765748915007752126885493548942634402823444803114252422913381041632086858940778329503290369398464680681338420995915049051232165885916248798992385935017707459152199891424874245834948633846409861577366155986211626891774456540396713790643282269305528811640341448923115149725117829302170592878991081548793171466291010491284188429579357245318102603206901161278172209828832103465030006175388078222238697641855659722422911871850183159631908213578861011679507852000514923961297073467461912143289209900309257674992888549348138725274132619905917257170621312380094837618059833178108761271405434112474678331630857094443479938592449311407683227713657466129567429624869012758559022197069836494056272997311408117155428475879484628270995981290217941035398217045663387982258156112752898368838357902799164659434541285351789022574791498917876562703042371380345603800849103734565778635894032144995506829385741359339212843917127013963494630289489105943387112998570160864697036309475723673323222967758187181149310308490602102086124979454168833244814649846779535609925747908427241743069648378624172918650834903512664553369018527767962018784519943313474328070957636961750925483114125660450376318388422129523305903499863560338355472693804689550270945008958844041227686323572157540516186225136518609532673787196351104343772762298707214290713809408338877221715903705570103322738158468222523414524638817882624751438918411473128389101733660166111908514265615331851396691318503908364801857134299412732770919421906974661237748798425015277892945833063282644380015939381186021779093679929579156592116362337372081587716744213548454483786445367423836480688079396555734986054117996575907372131121640406287703732347167022560294806052131920543580927365328624102574890607299963872776663958158577368529437134449324258996754838373277188720010199459008270402554436482418445670461903152287901828701145472131594283030039650342087129201226973370262280730268648572133483968219320610238317832748592027899877172120661589915835384975639255305579962044282290610744375434749908393049721930858123576593194261792611192961811127534979735587499171306691334942796614881381428829527480889898855250921487709145831799909275487566088067261953242534709289344259794836453765025530015054465657526082290211330196566957663740376765293741100036633891641475662184401268387472726857905412136234968952716063649203835550913472869563379398852279049684497267345420150099983437517177240092591285620260373691422851839315049431550803640351299402405767448433506011546011433081560417643655468752001884654408510000662867128734314088324681110085413821320706061148139019985458966971059924351197705474087379599047948138906544723738648774942300000264104152890348996706370990088751426108700833963919784928525928688894827715412411385026735138560666097386880424221433497821676650667023823407748453035149185158308868285543175762590566484712423511206807669247008601702789266157408944194367417729534724599001584155100606685643716451827753567763148484520339402588629211748087172779166662729322274634540876864428622120314846883510669031877599009606944484870254892038977992901151551656200107335534534175456254118218114785041192895826626296267536821385965892886872119827517901657371875118322183344822540907199278925349015145752592967429460075670309542284821337412355709866491557654376637887253131485288358039939713174445459211334680710400941468564723458717635549327982842958766102145630020794257752095106356739771496541133907289510994592601225711198586409007768472339480414485192766440552817097303068057079702267317240143144225427020867432048433799710312285267498748678573305685154775892843314200803406558041381429426903649070662712400136588098767592923919178768068036671425158551768234337694555953555620905668962018689890926308930718201259499812407402674270110878434864785067286141573934939529295829140782177712871753378768595071332650328501811064687407113459278671162569627508274931353043787446827214757724965093801401905506145036619904956594308744672374385621344291795668249809236733299689973676966207261919158629560322455243695542394969964860543173450849587164996428910179696305390565582002349112740352082115200150348445011476268479860881370435210223458736248014652177096679269893145996662690449213923191908074597970087170016227303940198681925147709537220365450557036439861303183699115242214277690303446789753866485489410004873918127475257484242315973426846697801659712841194510185132574763363685241907671373473015062833746241691687260671271544657567066528818197973938063714105371781563417876713436832748167884293551305280769508206372333155019129478635779556436953989638670383994235540455271766386914412784250586352799922814476577200270030340328963664838843496355393365965506966825482865669036879650603544747142414466717925705226192487497499152761143721848467854074696542122666730723668606658729263573572436427438751154586298959951792517954843674603157887860067071274431464724714957309065413395055763330047438645275482475401753881850728582875400579566283720000312132382664787120873161980391824448489623917080005990925401102549549601683994065553444952439768960146038378783141447883755133568622859638405895853643608978408383789959904020837347294250453754514970907884660055231169694859655288575104244613547402467027252435046546316407178114221248543477178727506230742297910107194704893721654054801442737640953474682597899580847614009953260915781847481374264743736368742478280764414323345428562673172429322005209584350640895707700545196007148638029750831024335949194368021798699675783777250129860218019542491012723412767238952479552937830084438222361075944625535766443925136061016788129090613913442268412604678754313162226507792149994442181226805562948816239120695121889873303000461259112883960210281607248248046933990766169753716534394149594873268421258314799115365753040994891611282043650514060208187583342881583895143463473563699273840135133421115311430237586961461730169060708562010458369026103191058386456292805084363402761948517933665733615451783770031392063912574609924382136020549585656803329291844612079497434624920646891544817465311179198974911598164579347518119624941954623888494863241482168617825716213490531552978275224255277672737814586119864213656907303080767371064815247365826307802559739751370466967276564823305084996145821221276191399276789850941106208897228061047222798142412128806982751826597121884211716496099273298333708620197528252553824270283597714259618170368416918493768691833118085428927543677882602396699405867136570190538192509941891788524414455359571929667017686461337210287286542190231651683993379113762541764394942090491935751892155098001653887427713210992017976849631659260449495171761494237000239153604940998695911412195976260156494698200009560520725971688407483317673322983716914748584608529980976347640561499790992726425701550205692334460730465075393225777369225805076245214875584462240059412389267311300092249463388014004508450027385422075431804654368101704449653156104759815116296420981251525513074319201899283113829273813894669054764053856793436815893919921301510907132653492413879933194955927873426407585865900985559075202501239647170793190704023076083563021692101473054545346581633620241120588067121472140248073671844807292934105797349399171274712500931715519474183322694026078757297425573401928695870664358662611511648343963156655057267423928374737434466361360399742335376968119195944604717169360044471515698056510697774598158811338525762254544456547762052629157500662058278711718378481818248693907066559337205304349453721424989468344360786994577942116831803270624278510245220916798891625133393875951843693659881645565912060225512700757106465868185551973668822636783031286457878573238485430537668755021549054736376851369649329642862749627509104750412437835581275003467158116254584106241579933374074471623223475034012710145262904605190212789421100366047266153380669021603141025468391436563932239151227865536337416070517970332036635133377388144179131724110788569232414332304095335542695400633558597243462828879479672103146688938438091250851523630205631218857003410343528258534319412910128021042954146098775950354917019408323798314605124279458200195607839310631278454224589435018869662644118200672489652140611214285108580465676314041981728679891947822980965286603769890666407961280723305952411820635032245411427480630262725991259181714342978515469602001273474307487794448574995320509622144563965434435807768817541772019320518926081014017000133727619754351750714436894184162421147333873788139372899943433290121487117294659459865974384999300988427669494466011532360566110986771307480695916378837625237589185249629368905352279617589814703457754607516843737951119320655619834274152319694827721315856217909441185475696683944448751875189163527372400807203887122116098096413533572107991055060655008294701550253857200095770381165018230966078134036822394240021345093918076973238264482710508058606591258125115646870505357215089313616824664096844085692557779373955238917011749951405177286947185417944054937324404108090031198952895222624487654536193662240456914314651835569879451855457747238972689030392325047820931854339616756888171273659494417362221813522764944413744491675881145821282398228166086634437735971802572709994529064723009973002898438428755048698194960085927040827351621141492102780671581560163710377866134140954851659835548164165577518075366155608914220556109388548017254924306482016543196883365740406909246183473678235553220008051556824411256660266260771661287116460461928004887739459514994469841793394758862245968609541250019730283096897708956321779796870755262740472902755404457335796596639951947959172939924268214468962152621434880040669700932072791512480347620593633987402138862860043027166373811512144806718617833381214032262848844303626547797592164813086840011911280273369895345433094941098522586892410405501558889771988304866006867825321815701330520956311134748390320677680959434938683116736623842606741015913402790100060197252070684530228312243779543622198964667241507486058038750402595544043053022468703875186228127051300209830235921439464674098169402767447797861021022481401340072778318383664514178600718008010527874309483069538741613370087857220509340116441947983820810273047810446393947125933875391906078928331892138214051276384028725884238256687816213061348342728115058239818220176008856024926624154237673043771041241549979996637458964026514776457417760251107158129865434467723675223026241494370795956338321904375331580679947119489526619504587347159491502132419435392761418470543483643661104575335405548074403344924395050428571597305804600897173295632213710581472285159800125354585257978222446601788233802097600434555262420087533816254889876594063446308068716683870927175188180471391909851108038798169928009222162995189605156838940048244556874839849020248642719364760785615053716588837783133859406928019524533572752472716280710943342022770857271377324448835225807733270687417346522215595267005213092388439988149066161430130816154371531774230308257116634243660207101209145269210025026974392998094705617408831188961256334653035972457538225230786426453574005713911161738465935237534689736099124302849771071025188168384135911526687217913548690403970478560466136637496384655439969720416254710233537430186408914967737404189084839383684353780389311122051283739051067099427125707685195424882294862612433112815994798436486809418424922636994259003372592965469075348432249330259649401650077030429764227149677351886083925538901396597446077876893789572096807566437955610288817125691943947126668589464540935613304176917497984075525456107308778314782049949875240617329016901765329846434758077110880712213000585053801761279135412883234476834801778828951845637497061678107147980656755896446468186286586842592430937502252221862004241368909174661234939790539563068561914639314089023306341291672112315607583007958287354844599655830358156552824802403101352725564982533635424564022834734439437214296395612570848804187153713887636914519297766038151325995599362134822869389290461087438406398535360161489374411830818175771304710029066496065368178996108682813762942640866391751673089967321456908709761068454379466366929452924623404537054155005903999856815936862035408123551505512858263267424550506014099234209324427596606746392950173862328911574207192521730169104649170001229734055089527128281915476199610294128929108208895208568197405469721687284569990916264522118416181252075204903645711836965271076318839634973147363793232633937831106640787860879435624538947681998319616146080260825961948453219752885870163820458081287956535488209214219849814235083685828449949211794302399411013287129131215029169525489067119032096543172051137460749223977258018346315042066663325332337536885006520304607198890400117276690209944573084216390901205422831176948804330272413478266215840069224648678181167856786512444871132990291859109840962958916277830479114696914597831884778349899667522290234467125993605358976327697078268174432595923492512177374902748308015791231159422277163800595087161349687583500976435789530336896555447885861504321556489719407798967437709136459429732194759151368810375185050628579741628570225691265214845615084987307372652608899081333335738784043446733832163415516957629943659554201398934111536994157386135875017553124814018208003739851799847235867482808442333998374265706228438933963224908064559885997964041497335194037412240974632117772527844648853533650837756496859344420552397166705191232216633369842717627462434510203836021524282389800504229551811553551841837469357928880166120258505754360899327136884158723153888405423642252140154097010931631225667945009932776375209410451402731109732629318721004966605028670711388869715428078551708123598637802950109962702100328433532199725240949850040393560764761242617898479526689522096006157989734341981961260313358936923577650090082933982784492524179090803627123581037286689726512068105776791213557241391482743585014153892628614833197120519910559317126368833421396666701289278820242004070575463791938314700751273859771454493392495570774497884771226192615207916063759278657272979191074767432304435514733889123472829426112154563101674875401045639051768698754849534956024466025380772411352339329614174630887736929953718561542378499832037019159605352977988381715140039088962751551288670884173585550074305908447687088671816027357072289669620930774560034344761026103256904563072911727114246669096182839834585203629192427302800113387653028564574933464181052647716004059166542684960887134099056680249790865356202277538710580837229153127536331900539427697667450358185689322732561144341157394807404010145582123396619838359546745058846012643661839312066871456743027952366715370015964817662184009331057781934528355419419554019797697303201827765818944751229311004232935183700694354170843291142287677240459333033580632795619173001808437276953051156847931784146382181858346521575298943837129797908856621585598363714122521596290484879549274483370386019313702655023199576714185342812504535114035459026094966878122384950244648713582865885807120876955700024470800352417009095042802362164888715830742195704874758214288584295497495768965971937505909721568938988085111564386560777139185356439022606490453784184848400709127295634416061125964168214459226621775103486480422892027281762992635122574814374551252101592477020532171733542888228784445975836847096041076902968323475520444874431196489456806922287714861589987017888286210026486730915875471304792184238951134538967420298297588325560227020909947924381945600718799965269259711441305995724504738319263022604906408190761818174768975646229847219139318746729435925659350966319112204504496983600378185202743489982539501531826601047560233540259643002810847158636780911323571138265041268272604370611485757415734415478701837691498814946854117018426662862894519556161527099336276733693055130303849700275685279672191285565697930751828856228541002397889723191628566051496407013856048284613746347531759259381950304532123185449403693087677384327162345173634377642719584413608861429333643112337528340949120338139027499655329295555660057599461594704098066806033182364307712535814920066264587924343405888215006210913061014886724027969398124072881872427510010867413113939802188366457770601585264167370364968408819761667520310332029369924039004432198673739668327128012411920554836083480621446291453635372091800430704250449801991463556022760007615037570258134134328910555837968179605650047289595507659584044532788272952816960404986731584303997654093894100378703352350773798367540640070216095154710427013944333259710220365662336600788644748323412990214549555018987631823918606841411884288037988655497206093803810231346734116264280911136616695417085803130859553993071514422161103873462082086006135793346140504843765577159546478695069423680773329979089905487458708411878154507197235953206618812597053534625887004043928648080342110338521497996034872800916765886098321267029812406725058269786068593727159755392818170135902702789599397197604081694705400082813002985287448736214515946857110932093851970279422763031129365639740697616997751023556256904678633659116424824067048147867720106004771267087025183109320362938301125968300229435694913045549252485328923022828736236671521586389094013751821038920456048778486463510447084885979491843388783170281686445996803196795915182819285174814558037568878101211260540933409739106869029390998763016598738257579516032935547420669541979427752282930219296139512499099818857483273961789666509040854580760313581803343587214493559110665648420303829995597720648750664816333308435197494164856508464102353043383737482321630060739924753296919852160147822859569965288520452897717713561408850909791185372989264296168171787178911951604277092493397320445844256777011287723726994244109812123559971978082131530399217891184278426828976075397530157259761010976664699140876559350293191152621260877671358558054377956107065437931444694612494189173469951341109698138560242239042492172769976730056425192974890433125287994457416327709503691382672541823537509416823923738797067414403474030882468747893934242565049223448987986827718785696370762112487794804041257495985632207848439637812539051615471646893929699499532391678350119659227392234076320365558168723123861542826618759774963027336069522127305414158118856492116482457635292765704413098453429650872708341258887481049219805861367424135623071086959679573626591951655730488594485122756299801919061629357474834442722636821096687956425974440736203785424706691009080379280769375161928064820618279594161222367168973147330512466509678219677517639972407868362573160029034454714711654471894073823126402235928593965902735573331820649055167110298890669228791507754169040171270362841807548385522197376425843382575574597239053983877306522069267156454272294493169824222371052477332696681914647068200162009386208933097130931652783748758304549443622573865922079731676155673951993635211762623191418313963195902880415536110484810512684105479574482367588190041632724264363514917476166475414299068946804200904075886305405742193227214930317667609815163250711796365850659002936087605657993381383630612240624487734717365669515133226755670057906135914405366738860747854724825321377392404303739204084043374627691230899670403921425943518513156913887725705225116503101585651398373103990090329190022548792731369889905371467455376324257345678978813601641703581676811578146338830686048206084009918135759362944129963587370731332927022495773570768951698413462181179959201916071897227244211332601769917942760567284771260389177951240772615227761005882952366331270034310326226842996435547682095836688621969644876245427748796440916611905384094587476969641638765237262332391071345643653768290963824648996900878941754452806287767674126582453233807968823089424563210245910734245193731108326702337343696202896706546227493151490315789514293303965326811669453627519017551661716240088049926232354179431233613777386651470001070926790132366717019106961635657935160885853968929115628733381552858716237698788024657787123683234205049549965692028437754834108191449041536791269490367133203539022160098966223662487865235625561289656107411381403363967044632732575067314260908291630907035406192866640210992416037619905160527837694955989755582945636463169752308072457398083595162007116455273434835782433485001610359557532037426951338080304900086291037976744469590643659961305793899681938928111620941219401721846901831189637542011429040875167190785406272899001078105357325518440008472529826198138007054746204719916794089518374336147715624373407375791964193070118972234797095504903904643118732125014214148571751831657274085059657672409620922664277296014138654701162363209620202102817490410472047862839316192020717219511406432591706519958867501432260108636248862889531146810981785040725693073428585156583830153212151019980952369608594968210190459813701895419876085680860774670282411738869696576566491457924649777761577188079646835925886322171103145633918519642580763778087328795851728942365337835011086170365873757863526456181815599712119653064911705789346390746595668555864799053671398842450442534593182309653008690689862171448719979453025764570961428726626415476932676571200881359853750478203380673367304115519777381052097383957428907865371935106387827912139574367234817178001998174136275766006308894365163633736715957773050357842910636156512153086334053777958245845475244631540227917582119539376896995868081726340356566260206580980239846392387682317029755720210617754090122278663056523619731846934399900022745541792711617905966335642959479472108620447873822448070950450631166397740905674367624352124942398008625150209442292300693172040160661112506863540833370179693978824162075077363368686025580051764137875860601603009449628502972354621136021316656165723714975065954509340641613225124773445366009036485202284642321009255269033178083410717631327093747490504786343444041406377347275965968238323960876838879158716689393803623470332155075120481289453564753566059532979832208931943076854882211418914181203599733551740802601692255439754675200015118027040633056851369553552083702409532708788495322613681032053032168288765059579604020957554507368898661863089056399406349654362231908097010054442416679356903347771997159100763127531138006444254664300448619661006414471719720450989664899862121954299705758429605447972077390348734804442959442341183065705264974476174869245623303143836086126314304342438174407076769082520315703279597651332724099021521379708268137821004911957840323328226850876035142550521254076993489107830055771727685610468840394403043385866107881065936881856687732606425827897199584871015878076195595834646071658226595423460524356208995080297889438655816784485275237699412887528380282951568243301525261212860142120419728273501213894090200647656061273891664024221454635511676790245580455246143168365112176034372196711561992211301121048407825602350431136960503989985385538701986007277600204414565836322588671085631431507688635447743882300583660146225959188074570694595161816817824797922880421484683497097929641211195088455818739253879144868767409535238094451202913895129972414772553642700840004344562229583700891226096363130457788125888807151730166164289524952943753741201005063529143159610735107451948258431981002614620109766809048005838314677308378249649023473036695860544979154332680408417400642920911869639136630575449440462179486123200157012345647534027049950796303438590879741488601503492479505391853084391749479055885811568038011225551370765591806699392844851610467528629906772821362628723053692164454201517525508532266040358079281495077845822966431019689389526421558817297851879954848700459065915339058397277355229917839976936137223169665744838099082093600606907916387927467831320872842946430976551573068869013404388998727319246036048863778467304509691079381863590094382895276634535386354802789474686093917882229466968655996244420551581211638672901755370335379151736483991053059932303234746912240111676089060411430704860505349904050607279517005312574356224539346804649935673441681183005049596037709033221424820208287802643047843293393705155574112015690045255048898971063423705756827701713898664837800985978469108679676398332943465934007870715917470570907730232981848681512240775764452465888167874077665454685717300717301440691049416300325538570307055137544632217064831221096321436955363311159370638443792686824126133465923602484708842411193295769337779199436422644565269799136346065785759658736345225686798055864640676203415331320194202574197268849524681511920701555619666143249677220771883053464732759830600013512060386744911291154478009307924979044726370867902154764767982158621175619190363682412910386812392109596666523636071876091272836960256834750206512365950394839897725996707079928598429447443981688833642898076849487045500240458691532279282175653956262142712476359651740786347853626506096491493303162495759696456497471056827337981006632220872883717932024397541254666648670462672883561393604504270623048775889642629079419575873865932900506758584430296313230418811269441990121448592202386159443365315880005089033224646423326707997100474694413206489390503826922071214982152370316313150949069432482193701711136790452652848885811950609230881463043356891977692914259431092462134814531081795175829640027629894630544061146304014515723657311972448200513943171645108663506229322879493543603196393705341861974798237513003396794524095006184410575873277819237813659102815406645583034590208619649314815275311614667576593148675757423674323487928073700731710514112777590484074102255198883084661924365276773568606517519834377915256971137580836928937329612500810192692871068739210127549234774917073728030009591124058813297809103354266572792075805749215486014293645525361066082788631252168028422969388238571234927915758931295896931090899682672410505289537120961109433831618939625400282063851991696277251777677633341846838031380380202706455672221406140730208027678808153038858012365185296514987480092274659789043135852106277840605841904839568078873819174929461312657263906290936537920024618291450817550602039642653651124462624346510411507479670358123090196858823191298359495971218868845198194028114212926076326686048913513909024425912743621410873086168856743823055415111243302945631928042484691374846090212445639375282671781106790359811132388089502827801323639007843875069025528098210995989371884032337640389417674416471675044426578070613643644218139366496720814227438309401172736554657021370726917778179561993350290765933830444155988823458341374825874058599769987552731519557074075289356518924713933113014548592528054416046432525242050254542497183459499281890130997711577686596156247917234957707808252365413394135054342834604440075773927585744969783490199840995890989856434514356667845021441811339045732022309628487961770906589946628735966984551093835526573920598578156908512547855285573307361460133119119410377500272351323321590274255921400439009251093106372550817619173443947549570514159456402246717544424898116540387879472038717371070265126523284146263410251586008158526368845364173464971686626034373230344781003924553428760795364625980549743136587818333026872123463056971159930128411416969480307649386758845850131295078974067017357283499341189970066227222154573732080512399284423171635572226388926105673968520528499235737414860473883636821910003466977328542065023867754064351708346838732981124892821155504592590138970783521866407353670245173968980127721771699153733073015888199418847453405113710014134788991512558473049346608515446273065118531259772967884246419342655666014574153666361555316123012740615184869939476888501466713448240294561552326562524184044041303342197448202845231614366323897586479676150433194933257141791057271983510004583155226918876574483418669508529389317589404732771985986913949011140748410588052811665871860615605996214310588594769055393253252181607691000183741696182644702733827252016470955578970194476945273106463695821771711856810619566331090513486662963587170256348679582851447456232448956370274384836306933876947862587392172463525318759273886443791772967773291878168220038080488282500652362820669275134955373565586591671896550552477794108783755386167204094572284977295756788287964046440601881527430197010006865014789575280988542108718361670652771048555485525562809930954573934384719896987212399847009558961719675590916912252269758002660611833253098252595536453367330055488828929496676888579620093220984385913103213190286941857740570697745139074231918225937154062723878253727535071977708853395639024615718720003841474906181211788900135006024350748459673902765842029516031288942894017926695864996757717874698373613849031313836826315166941620347343693685939612965624903336617004530919297333887164802351255100687023487857363585772349486587616261775775208728723445996148514141334857205056599749259333716223618861993914750795983303960244234768221155038021921767752918550035231939578779085853764987774569538872618183083233806423689243269326383689023379486814532444064566383186583062460582771708457186430677314007065975869958449164414007848609029860656713964531709523454743736947972496324048878132241551065218230751870771260740020711402122323817626100666831866448177476805749895151162111484333302693897733531432019737436770316707666926060290124046398740589551614271872902128185517658033219054810038211106909580251950765005270648730258187178235896115205997930132841735939500992344818598311361985811264437713025539629393770426574295119553769456010932067802358149405703876223851603099449784855662582598199223940735592872629866023340175306955177626533687258215994249058988548064416696794916485094993596385483643935246409548722804283163057112797153673321811536906436096233935621870885731639119483829001572268369649379839462231083486854807355454623435423071622129745680827739890257464855620679619139952464128126413678735062831123506364869705598164566536450625169428455836108142292588424264151750559820888639763550200916860944404076553942762074078168783034122285418657567321232158292566638119107756642645828449021086064395720249374159393734325659714619394828712778243361712575867233179994700359606140394478017086469074589266536954702837261410570935934923012486745658529735696995021326077607512113752962357020495362065704396717030057324890231375966357235079096348502165194469357049569732497137962296395738400909892731115310605879286917372954803863635939836746604456178529795280626489199980996748540739428030976573753203201674442036517241372224352077035706221913157045721005236998009497604679395779164679704016675438358249709910720548839686208313612859015799555421459266052456268813407454694531939625799312185026344700033030515777077986015982437408539824096679509919288557054757881693293534294135899310849653879180772637162940880086923899988950440431990562310026731656005416279466627091292675820433344707362769791274700437447490592895472713233728032852970435258989795249842688167983218544319889410557332981392960835637321088328739135617192713315136547024544856108296186356838063516353285461688485436480107442964351680257225635497884712968064857349959160740834053537291602409343549761751638673946628449330873661554384033101327609999123387290385864418761043949490069353516875600108503575401918940242101136599526069539999969937617496289663264751873302733344227361935528200868808150524940992082248260494179377878407237961818247860818563845498638846261430967082873486313932146403978603676753498006641320225714589912303794694269403999046929258398728557154922517080295245232835036007077060073363320493509161718475783930925344161556219785294709497897443021182713314269534213524170442744509836032936336308062750114409707655595084550789935226682299652753868680054331818755191660600231916389025678056926888577178908756663124688662477477024999882436496006278747922026651895254986976298014676840530451423058345153654750471216535520103760998646802375294992992012340388662646774775269516079254837766821129715049092192164092725071238195379516017571384935781446541918317510792063561972169264664818363352145472568961435422918122477958431564418258592689088666782973819961620934802516490601043885026063500347157596234164310310455382735200284394486985035121585835901563817662708927293038692817711493693320272284967838779312735743483975789005313525761526473817412735020295997006175638653814985773550184798212360663551117511170785854785350120224137556526847389408741906484678879759186990490589694056921939074868049705943991099340460401273862768757232867521115239341670698714999034420869707166207449344583494443434547367870354686428940307305901779093118230652346568962045505086024966955007931341117287700635435631295603847228794996362363891601459115425649536457277360803482149207829710636853232021164357302279238269207751486094677146457107334942973999442231011422042733347318595047181564070993867630787534897838367094035679459730074184098684835220622221052970202127160778939044717891141956291241023640539390739380425687366867032171845400926607864961291101769248028025684175990003078426940880642571337856062102561915579100844383220938250246389659637780926783439247785474869084309863952182643042922208229840878711405194568406075810380347098477187713931845875043063922600768158116324828481358905680564915607821722006534044421956966682879807794839076100635580016315283970848612889445701665180059978975088829102035397932332470627579733165636291347495456097354270374613499567628374504809810677080015042664251591301729898860397438176119493665410818514871595522628468817223280040027759044535092730071472963549560239182661965426717380137895961357685783282006671273272536611195366036397326232893560344299482506060442474428769469185617946198296340996448893982846442293120165088848900349843956533402618662673943063333927988772682757503023404230582877671628241252986998422533861862215721985185950975555764158667016478495646007437316275299891670719630360457962017416999958028107161931260778698940872855120102413459439706252420946799869685994331885152467777695137396725292167054140501355922658083507878523402718440647937193874817891009399818090654788705573424743818382063182289011662909998885737117174244086767845181154674114650813489153588115370075696285483449065847031227624781316044016251348370300555284095336050024555962773660123855674766923348016550714479203781705702013095918638463086952287313009233226372592731126223789407144830394325188345815084712356829297876103595128154415821091153105874076338596587303185078810451060752917353676861068413048325540154647496685627705300994547961228415765017440520633715609478643280270191276471306883264234817564204500200881678281673572847715163803058016168462362936767364986574822454550046648785329271153986714423994160500514714774708498790604796994900845896800666582591812468191937334389508201638076852247433757300325448619627966015850445027092477524596820631019792453705464047797773863936312101913220305496277028859724293079358421913834673516178175316546295012536269723076964631343852247762594123838970092038593491351274528394532278694528706132235512230418701825375504767338143911245922373021605437887719551616156687811116852448673486661003479180678971058230958511587416211189192317184992802913833538145410101532795582801139831149238397197180457628102781097337724804079211598569522752578877977241667074743366649931080358068668508758836422378393077772740381770353072129617675213636648494643232774031306589603668373058485552059507861164316778914241722592175914936374971813537323295870698796457619674745957772937069760697312427404197344113330677944688993017732278091025369167032088100059695594857843717953929529604262309906205511144950934015373559240866511135533394893455195376198373866040990428570329557525264957866050075198348679844015642250716392224751285172817669471330609287763142718648000720643267296761982966182904576635164421486586044418557675977893538276220589881914936640449186947326973183379351034290397864007208292646051980640815835825384526291742868334354228167315360850772168223870565562249675107890430759252258541311753549258538044653158950690033481234583978271507106846110899215928242907000029943135930832468894088070756705571641278186514397636638581254116718689415364769490292197030769219609233366085916862441086257617534592030195700438907001818706245593563602157881850536474148000543132549452053513362518422084617549516161857842962033506466721840836485465515732652440907743584580394641391120765276380671366140431616412039714438963145387150849766492126487136972814790515974688611074159435810087424444080349601389430106425054184251806922417836306439484337691872503858443244785514753316706484616775610777234810337287347105465019618270815487134872562121459043762101630167113613162577721575077693026252746139368850491745103288220477860663048012988214697241183927046597141478273589540498892409137073636009948714326415979269832441619395318924976535473240642894957229250255117756310333863865941176218060076900796698351645154515117473665290709443998921567231368866422265301299834368291407437811757144639246685338846696629537946372651455449023500439310544479203333297399347013497449805080485136152440702302429406564699367265916603943108188001905246869216447836779161746730164176247480318789775389813661624763183431906349934087329565651966007825979186952188417272223455856156068748552452438629060006546432403865264024544966235844957714992036271858924076950376891404238710301616418261867624285167653570228902852858652074181055985365129434002198889846889383158526145874091840710286836678149335462789116380073780857733669904451880317068355733982280001437545630045740204668541281357518011671107996291786536502682484029024479106287167595395956448498234501822718469639121201063771404342612055260091405126839657736022585676450751415605355949839974637698591891584961280633704855810702312453995512864165902954146052686089225745963534055194144495166751881567202775770343224880531642399642052932784755987903819356977560743026751821525846377159668850825391662862408103664979967978452814835367486030500807151979769575234912140099795383695074801072649190763056184351495963627401039617029445010425408570237726347179607244267061274022971730927361855829090022397330134291175789341974635961378874878010330012708294668926397108081435359443103549996920066808526520387115198473752495619714155976923169296527338695072263871847374299986640165102382438905509341792497745500823505208587137388633997014064121931027134726482462262226076253998709942004706250913999562966855794429310506126607199240964981729093118187820697729250209854256130362639132935893466031575930014735921037420104306975849726738813210618010542441864365249513867826596360685333761063695394204499719393909828447316413709885304739067458321890371354872014316425288608574995430350118064455690706332290079609936445004868830474346807221910139482287794500391598134695782141044953457521361074879068476132335416207148850616458073103364099109055496174293229484208654389252197831780109688347093917257024373144560596691528329745177553523426816963641838002723945509382023909887280248711946287301920939265686635011871501736676155181263551570085246233918544899299299106881267385174702725011888850275664703975224636875186102206405966857575910781616793024385855609046607854214580061686170662700580815971181567521588550034054846400945932845286975445404738861955405411685240087485834487658898229786760620779054281940734317029286666439796460166989313140061732780117532126942031713515767262668478442019943248028288300348309163455563162062483974544219610915673287869041825599051978362821114330147849333235966811360214294122597133025205692072769062651677453226406909703651144987890979034217480504690160418511658796120111132991542926178126072454267680958444437325036846462976445216476357888824615822707606870423189196047884396330579984537293620644659765673004691246474522458590345961097950821599206605248288482636290829107240827965498900480976229035100480915355748604099088913504753744849039189629747521218050920524339834938986290548123415193702096422868773284282103533132118937352043022171338056151701705105630742018910828151816216747128898427133590574685463376117995703716963717296958497792901983330402802201217787044357394447456774322122438042889957284700877754225856819760277890286204056467577202789682101163236077566578450397563210274004427357435313236073721902638466840719206590262020287817395098025929154255648294515741964140273730233299942313293313439206538014749754193520556644400098238498881521214872643002108169640592486812830152172004133442447667954745872030796267486617751359302143712915988849006372911737099482207358922433668100177554264056260845844753654167489678048655437731838764827402867862256338189325828318942397010528818055178286576913791505232031522040804328480421744443909161181500466990939446644963972866922429214936955928942326605454641785002093105341124356942011768029324857789255699110749064306709352869923169516529902870981338213394604003475985461894717794840320634803627278981209579351011843387235656107047276711269987709899071532844227252564569423062139218473512306881137045514291124018393730018108693537492404245139958225173487576748696495498523936589607154175374006875699416831534589850099282221725379852744295313158491608427118813072253045719062011947109797286862748525467144525804270816167715825244218791565694416291170739139813011161453608623398019874647488382569796679200312618745685605079625262625524394040317460357875109335954292664176133442031202845876010653220232001787925247224517927656971291032385278289522593889552584604866554173559189798296655657002933568413245952357823181559745238031089603393587884168971684678737482925115041044604030043770684037660313096751167054185864731422414966073618205618798837692218162221212106871093450213102325392392351255368616727165930269058168544248571167576128754304037516025212236273233765738687325954840836245364270013725096214709683497877417626126497395133624698416094062766806934482927329075099876005811178956872221503497338631334945300940994043728380588103241404199337444339457483901722800422189789995078710081942044009992363156745119990420898061806116080895343460007543260188188797849700583107742726067720915416645579748434524834653788950750145559378195176577125215046698123442763221092460992834952707508858358284899122711753739171138902508580399851811904245455300507367698802672448360460109902796519303760370924087179921125823470935339403354746370436282217379143243987638174377278451172252745933144717082635542714121047145857471180288600641896649811353736980154120444580803407237416038529157274988432186703562547245576683182624046650353972054067087390883492607444982674844574893396875074040014249298125091284831040552607068378982873767682010318563529653295273662953460486241285456277459878638744497150126892623872841008839252638006454808039447910725231726201047063021490510960134582204294819608806637775409011908060421707679685807489988558153844225196478901501994702934973741063063428016085811019540557295142898115593750466728343509863752291336672414269265529811525386351010100079165804282199958962367113293065163381886555501742717398017512141328053181974626739133959856376042938928478284710245392193859127778467978273611745142565111001342661733662520081067507134060821859205985117585872191428065850530031403989578914055908204043041490572463546707704034979782887244337225539090924614640991225339675666269925574879433882349987403770148455993031142917502386721348344315866193352981076421557374102089171844760080937005376853986469809588218407292063730053897157165000160818171409117048236270620904284868550343892662030549082449080895818939478159067677401343783633064149621023989107997489100330067022003568039820359588559978235916486157793881618265253351663481768687069136110521218465047036628034995979603241443823983045647702474883144918130316941568564372153871398493421645944795192736292964116502905664944177042439050903003040012711071501590147357298863900063405255013870381964701406691788444821281507908443855133662148929502210106434514902632076195577491702132832397202526167836104186513240947142530232324913155877279444288452385968543277478162992067683499947810747684173530004461816973345680098717446740499612670559289690151190174206376348570542863696952170489263505520098023434212920445962009490790147546201895300088990525861705509915279899718654871530869660292211819756286462685121693357557175740603928443130844300402009404587080943552883679146847470492818676148989626040467955390419939648569965601899475263960452628583833135978354876188116828650628274390416761518107922654746637664964859819990586807719409386408388066677312708584543437029659756240179661508256915170378410674158935308633742265419920331453306993797694945368193569188571415628676480996997535277916834700003111373881554930805796527048665704890830018739065035268533664746239690738991489259150126773533153787867078049212987246665655830129676318854462344591947616626603762694717995677253888657182847664592446615582642678669884338384117339867719823254923230620624222594321763330269932460991702114482510763916457930045000772457811964528896052533639261473642404083491057008016678108872949364517062530699481179907616024847645186945249455049766347314961278295588196236646013513525046036131407497339995420725187373459771402565780569824001595722459425740279575232327077617203624637393603708249233197292641456487722930166899176740874235085246565644356741319722390478216289069771080894907210322257979806755929975118558298712380677896969666079707773864417507963170017372836136760223126801149484658946532073581055574035823182172318671452373758968221248706744954718468862415538306773558608791117293772194869837211769666041206880447961129290622330606858997750393602205131290906922502709841481213782654675357818501840703607680372058323087382469429085510294506168500837625637319623181192905507564250513400288131111965486557155546759801839123183524498893344700491766845324317103055543094529107343159360288406346623682984103973027148675468094737168002112679242544681461761428335415397114966514029562613537956132880311204268250274557279820819268944997298852775955464765881033836191694360604512843117412961759191980606690477187682216902936277852848167703918312699743713625566459641168371320042905465171754542254308755331291277002113383268291809713414363385058704040659112142763214639505870170143003925117090297280374101974920642598777680206244146413278429619197673431955333721349668602131310413822857638296276147101404674111177141968416741060924707096098423730093856795485960068168279500869224171955778880401986789455135894321659091648808574433175827169073503232940608114187057209054132707247832842064571223341397665860466616933669943725887685711344402680347390018021845363384652309976790346157561156331229530762825106607408128235841896186716262776997476458892246716499460363352500611442885732436200281794063897836841017993692003525027749649953462175169822693745694483098502914857631328712066186893501236629105186929063560953954389145931279508161348870059162135767424939817168072864496280108029125632384564146807383434055345234828640871038971278303455664524859423764710445463075591364091430822688680620027333677875354211682883984789511522891487153195144794921027830094588982360573996819882276678276274682554998996584926722561228964999097253831598374459646135937285060562012316377426136196997399874531909276755670053329408874024893476345030015758260772144479712011857055909203471466166789053327395275027213150699721887777864683243953836564540311666512183899233126661784762598909409981522238509202207834720532202555948923685876080182685659073089970268456209938992775662707869433943563236444622982123289472876466916324128269604891777898998088857028001804747770547316904661032587887078617423586926157357713848408650245340770314003824733320674103417408162655779176529079282963695286080283542142080060216857794987801372111926063462628560334382580166737484873949316041824799684452516117046088431393690990293494551702527127162880081102583197544891063279543857981833601882214139585218851562094248319920426529443244490536504526275490087340097992633331375566808802749159915389071048119519326860868089311625455886993109932391081856451163612555681072159097761574807417703875914414572101053806214755841194849779496786523192490893825614175384872029324924715445402249550852410409440643269180123883727165730503065575802529799181851413131966731237321641257037582028179118314085112734159976078744329681141026755156599089410784746769166497850247243923043238040954613669406294725262501765247079169839755167254993743305627134883876613524934887493912721208967097138267505972180840006273876239864933253456789742828743067103418893118749620203144013457483887985733744071035845265587584700229422867679115415846973079943193512462288939824576343202006206138914946295672673879880598021587131733556222841940069525161986136901639914807095987028400642379759697648219891288655718621106427901249691345387544310590264822791619941603394181567044135544178853041274719871808647522252296907378565119519256265172532346133725981442817110754649943195875353719984845523050281187977332330854622543445058546409511045001307232981027646834080340114651843580208302508362175430894695033874536390307280625598464332077732950765491506221406504205180853953254276399883132274777068153019888037652774959875418879710834674239063312164353855281841595849983852652195021616326481301954894389705685707607196464632416186131987535772267745251473132266610225995059722159088716957707573836138590943912077641716659968634429039126727803559507442271216736995100411595570955556355307593039780211918135453658516646534795349678601971432534065759585614658974292311390899512260413698509291967960039271794380195651456513581246531997589128775578537798212409416372412982863816090201244280104462220504923412008700694831344147943676110540916437595756216036592747884322025169022394917210564156045384467647672553185542713082057026284519221196494831115233994250296356367852878359600969865467780577862446077860958021922179946898541341980816245208412220899041103201187094792263832871509284285793928806675638445157352759728670185810765954994905406632394678809854391740829461596102374995094529226322502152100050130788645067762070006334304544600661950793687086694571421116197868079725182482381106932192935170990071050655148414929727043012469457437490983604166965844258923347723538698283753557758612078852048038104959633694991545265927252113825523967492017132094634350440886036252933129918453301623316845248569180349782729863279848688050559891205476326589489976901357812503814025208355337685485674435536010821017060413500014512265756654548058898141780427923056904271840144693265027336263045531455511236807952837007801360580231340093870429443084626847944466098122001923453010934080060824958787175576397314976928702118690895524063209499021398713806653161049006255458600482596564292928102570244204532746739658241216058956116689228150540614872103499893603129069533630700611359406222224745904203410102701568004112125329406290033453116217056418820724480828776231232417527058933142210630670301256855771031086083417326669289192880776688966741399877522456282200567150959552366424643455561213099986325419345789687416622644121011650787861100025068510353800981947543088332952012475793279934806246342443132944987587156514822831957307462561010210444965502611545894525930323075611770190235849666479429412222285175738187886198547706398476273983048430770638052399965917233590028850323973008717891176586175516780981751744508917612592116120404967529177907889851216910330472710995513171875404739618591835488380973356503847052727663494168602213183287621573705134310558786970662853861892596979139452610876850432802021076568870288284191569106406855029498896628437301110619476752767823422650495741638554394365923917066306888636673589240499976844626647604541348426080108565882504220803305052493884188746297912821169755299811228516143330464153288347518966033050268858312044538742160280260198293316461869345792580491281435767199263422053331540940895225978387350712540583846815632172168487593268824256817226970746424807447412391876969324838680049580111585155173836456293467701188214542082596895490451506014651159679301015894601708362005071701882842888123173830666113029521448282406407897786668729139297534076313419637655356988004818420157712620200827906545546017000205594320590876578498023397237520543683599715240888381024560531601744609753706882541551172014358280647645162810435645467500305754498686514130958225238547541736713783719306688001430474812261657318309167319479955122262794323981871725234235008877211544996183915124111307693881832153679012244752043379359954781889991808738220481390349866667075892107496288258680662770355690689031596545312982764888830964163621984401253204899766879273053536598126843592701131315525132619965397751383090134794579191748806534461943444674321328002398279191997014243560316824705945531356820164883204636895127813082058298587489396526359174709891955232765038023441713060626636757110073134004467032794820810365110060393496382548286005901495030960024681190987825533358371063748463959925219615020085069713824125328356325340892733157539977365025253346553482011780435734748774608937662687223756624324473406086348246400296041643116413764483446214850300186121741341206150623976708512892324933293712769177778976361601250938496321113256658008955380271040095490001848856740279866679396978878502422068379810655451746875153909047372347993911630379435430084224269136170705699456953300117939827601406147296361788193570927732567528228747837905475932871480900878950611314839039722047415530214399786390408807270917105208193962317369815147024467724326294745552643717952417365084292320538963134478888912108381199077329864393096461939061546620049012577663067754977821355018513764335506306544588026843619695291136206220491312546302067750051200220733557662077937981479456922354573459463242051364232191211825286881775363426757557202002197678328829856485378443486850873307386184163132969284364130798422214821770957018602072981146972908995861014666288518467508653822915236812164454811404110665015972006698349303631018775719970373063099988763988403511909893884689836114143957931333905685655378117554635201806932857525029489193345689694272580023046828324818794462100655784805909138997331708328401620688960450576823796877107786501297011316088127345962131652790294169210498660476583236029005254229881506494951633034712026122739559239666929696813457620007926843728788499440782862899560803813349799047870268787188228850380995835225355659716984454637679838399627711521664559423789911690394854598920395524854304096996810471922272832338617155968868012210368891889196491399549000558054614080478256443630716153297458692496600645374286972482720600348154106712486429147890627269930886973784195363301450181763607732065445533967778949889689124124321784665327421870389422445457509071114094474422353326035783505494010319206119559956717974822883429388093384350850510830710024460416932270452035358087712493131091854630202637190275360992219491438443024107863533880995265486140414838844665388035041223785510375346946875952676447625910402816749698034097785649323028632550511956498506820519085033133381027315182064829837414380377448026440162282453025457832106090567628780973766234042831699470125529992379641288266323577152907076696422044487853343249341296985298824972993250168430623244664951625923998975044064169238993696284284053980381135916349448281864456791416755238907269993129765508906346467529341884357478988575558124208761387590943332437161757905167546841544935473317381017365099103680613701348230854591715774146366519364082219651089825318339897133920353638380893315167791762314352108421749737808103084186377018874070510838621744058951210816531210090341213255412408782561855988179324298714168855886711933447956766213025117620348768564016017273484238548728210002774750407017631467352049401214544490880665579222301921230740486106112987721367496038414093912827072910136813198934253208072850490818353083494587303891706522411275908867317857181699079473090555466413086804316445361540544428283236749111113390196626793493051071680489680671257435486092720232379359939093818448676423318933153651315635444562458760577824257513631222310117411545753021514011811522362716488457633110867322994876118476354675529457307622610858224431271171013341568491231148335151359564131234809313748132243371332189922575711298362464674616695298104207839873253500404275664358180352482381406958409001897134821012175344157922942483188053106670234636669589032339031359523442602617242110177300227179563226094451076911922784080471095186083102437702600366205256811250811179703856285770288386237397830798896041850131857386074521141220487034355110756341916602761684929925727112845406671510117815885555871235016063301552607201474965072974914743966838578761787011419903639077553330998182687749160097987782011367288852124959106444659835015899982823383950274727692859196463181145948348418583498800141223135885708684909311203370520143212282827397506123433581250533964703791394225359198042622783667983518509805976375167648283848676730535904805701552173892426562161278143770576120070277516946371207678492939363163079505758465340696003742062665760518348288111654214208819312343438998484203618243091183294929535575579039245862497344952572206560862281221771101335388130697812587859953563176178452691054608617919815416362682540762947225636680826243057940591687689367073700382353851578495921909225120231875085585214965465013103710835878183054945522666037471231924866592703135308740315953263079630433329897730125972255737514381237087591839877889225728040628689149292353785184840061163201244935971781368886218279601423243397702346998266295838439256184780879843863648279136197164344608345179386318605766708844309785308337176436852174957595395585416052346201995105663366717154840676296331399436540638397116638659558350834205281230622298812255155653357175817126850928785481054577206255942493058886611644619082333826578026048660630271047057873593900549941427562296594077835273674682394601681478054528118450099755099129033299808602365880707605403718943534726514885451421959977461723942440079161650944884677129348877678252817538104253256398712340841189572603508578181873308790709805802638851811962804366466362600544825951531633521927014754492067742022853706490980590460375484978866333215009792819526196512058778398749725899922798186391871335525777207610409610628810556159603243757623844598573289631015452542585466891101685803308982636195961056124706069520398869335988717332808400070550588694297817279675559550536523397528433306713778719810784084289553180997588744083655531902728420707383957067477523867821102789437623563339873053770937658847899309138945082365853558361286511100780681022436393038510259156377705450346947122000063918353814695547092363931577110312161865452428632330324456462350443910004496337182257220718003089105928155658015656704253117987129568461531891971162390837351726184368310420946831117720566156638790568167698044064649230341615640807072421650763509586228803360134302510253358323867135375171087117427185197738027972649592579438996321673426542588837245531926006941086774386022012813630570978519714628619556573538058770530825361262713322306853115250691867043522824631794124150523884977351811548082919324673342345387532831186789695572067314402148350733710495462721527854764330253579773697768863252231366239330455940128490501961906421837753085928894184672820160377289645483588298601914735465245196257526067216493643754522359351228335657741681327245548377316935131209902584212721591084550223955624560050258280880643543361292885775075210474602785537003222407346186334503916110197861510793289554339628786908906245476710077053985245689480607640980429196499289466311000659040590708331102524620506867410778944228704561635999621614781497427784645184527299233910185335897131490694892383878515899316208574057283986312197931684186527436450494295032672362804666572714381506836328245694512503972303838859978008284734248484086875596882060515738182043692413941114802636721154829834346859482200579334992091464100411333829459647418172777938178429450302766023005814142905143662528027820000660799839291430054730998251444326407469202049199724317337511669760800584959803638862029258524179214994548429567185573693175211791706670866691358479396136734099450920935207285977532221058605393314355323016356787154432096892962260025415219471859187282064313936731362268888065932535924545111129319214007448326056495409035872790769680691083544252966892899114445161169499454084374272650806495290409806161803280619618942894133139190343202907773303906237519998278587904251315120485134352879668453598082266022421975448298826675629113790323354632959804468507209156545314381627350050573647542452614758847424098510845400066331207742964658381167294892052491333080223914769615212287498946448510302680275852374075946698233100151744764684029453258538370385645552496455206855816647481620470989045470446560397266331692542664842858205259255527759752129763714407984416830789739614055297629277931971216725881445001910910868566744424270077888154885494830421388880736611926316130387317737155607509723003010007650410701740718486975127901663766207276516084652208876157626665363500741422989406534873092138600563044057559313132950661195114853631048292695045482794312325465893823082149260909074250436013981073718631425917892445134358779707672437963713082375945901741949894742663529935093877842477081187097893037181043508080538912776342828241641664674918233825551204618300000324093467034593389416655995499845531137220212022437930049322366787575884696083484468033170371188538578461254482402916586322600604630711696681052061306134875456153966785974649155730296878732919020536071306931623090289598866130267697977266463858423982910166162526307203365056512129643412101938854856201743025290748360845764199878246590724972622471743782177597518038262513214242765866226118755194929480027630428052949332059545874983375464225001762271868883127338654744013560209349674762306499748384898126756743757990529967636140026106435373223001792280288141458730789049842981907932388795712730227449577743553236329640377177369109924664282009531298257454398266509096046229386749253400290344401700312807891748210788432978248484534323755637499700383413604550001503449041918503511493708449076303838757446670896030765499315249436369868940138915403313198213756414407395476103978475191105692633878689038903336812282702814511261096831054795730367971952601233165664464878081134612801626650328467751060885571891350387556008898313619273043433428688592750836428381984017821742643165333787119554195902758641965240583792102197798704521662146023023408709391352366246225221576015059391974010251630596508860867462598381661885726751460236873397716371072379604192140573259495099087969734965742898931234154415052582596672109360486529112887755100792845105317496701432592572240249523296745794610634065127233945462723883456685905783386467350280486344461852447017664332907798572028565538690091406425085042960034032751616520762501727037664122105148358498101970590004182573668693215716557436360983717868584999275671710049472212633074989302678779168503347599884903572812407622967045300141136823891608098105704414228840177417681231540371511754924734501927543067265091845882500001909615996094231272822791843994620811683135148853166809233911545584197205736398628350891472967721737713409585293431069581384129262960149657633570727196775472117335580527467609830881215952539903273757996562229088459299128533315432781462263575488973603775516007196822129705113661337609241222932142188772518638260621682625907120750225829211470272608916531353197850465792938103702761258034655434529956036695214160682458707063512191638195815519695431709125266837245534957028207123323278702217472794106720042873615580354309468024599089437836544487426978108214609618133722493700888621613402295835229531120529239995694340894254836818078552333399583149801978317338690251810755632205676211599887550926214667187522621175704512601064953179667998479132618736240991681730024194805452191494146944122578923492945917701322354790660247626541516603659233509669343691863531690094498532174419401521818631983631980035037517189468795784750827578881531742560116579587954592149046252064391098331884469517122630328138181479493471716598401113312777229777938106211086668315988162026377262481049571800925012562536405677591213490564219713475324684208070010577444042869060019629993593344796104959100669222078314230485810510786213210181876042556849210741836782729801221056295985249823030665319428747057642172207672456277840977621809570063619486355675361431581440956148002539099685361525808131441021796828231014879389466894087514587032148265095833194708563751987976086695481104649805884927700935732964046983226709749882917606436784268606266690133386397824517047622528289419044974333206243496125193271575880498430177110641251553075867365893660826973185271844236287701982441459442650939753914779568012317329607780887301850291693950013437055327320340448395495257056896413516904874676518752380607049342720199193608119554117973396582529514045379580656085050294787831904399497392196304425604316712701015965806033720115446420887051201311069531852014002561378178664930917734950987617107993456872432136501997366600233160389688572401411123816802281753390093364834425682137822132976251084185115098274284405675561265927136295609331649159414491650336139836220036206046345008887666851239374331410765593013940432883640342895231988521413772182421912963534516518871880587223279169393467986394280369286944900634632123391841800174923226510918628800751598362934184370031228522416245484365850457062759375399483028379168076862449537045371814742698320155297634772780318292687650469069185261227146342235701029040504478823141858289896665669004353854408107491326993034472956839226690717267155372901953098151516054086751180672492765018863503885638598767533940354851121447496810685305801227758992598135444503835648381438626005089348910400520923161005796113348351695856199633755508418412226772045766499123653456690160919413922105938794464158571924795879880477870914954740202537489125959489469344235460382960703259209214844249343761872656854961053334194417633710326028618501248606599516926266035200788620742647738163146463608868165394955185083892564117751163756382143108079072455381419805689772276131845251824551499999583943155658879472245058636763779432986125786273430255854560654908483351264615361930821931228589848887611074842859120466977400857786770105170984619074003329561438879839481694185636767183908271737004823743753001929956422815398737717221989238645366707040241317366366059626192401741636340248113249272060490013195312679028566188595129505625631810975215699643859173128531358701941328794862174916649008260097057870380066768716107024382275510873279118460760203403070886754509174772766739256390978774772776901623485032510646906450235446281447287964944045687964685324932124894284564073772431547136647472654234237229682347164017266570839828637803502131581972500667148590470097951043913603632130256175909992957997215276545734389907591100875267626021288383525762432864191056988552077028817167984625456742682140313230491659501163099824130476289972326309592690990525382930277316564257455449863732387488250545320537936678322965979041525608439138023621168854605973443271653279710841831821759248578245990555514087337268320846218847700283410121004606944819971296704171238776692917550960061505502064848191415669071479385835140459498576342331875233678778986905371272075510226940224187425728978773332101140714768630106112543327508892254854055185636046689789325523455059315458845807253920696768523927656970154512902661462216054698338919478285639947855471140357268086635774207981775188326657183102208608261606171405941437751893515162691752832302945772445310963903452048880086105881700129160501417667816285642938192726859771992852794156673893867883395884638499585247288950982248206178967382425121726669041216139245872034947565962193957258030259845908539452753980990399815926802224202500861206502324193382249970732636315770220047742467176225400563064859917065817895494735645762477962028412603004390910798982920273419705081147923316214556397506424565182211874005659787932088800697305414569729392202016164225207621933314661281093852416683766460950315192427990578371433076271053965079365738519711313144024150063568566024411000479165429717467063264753595498593063851186806543435369437538948954611499101041224432133441629777539056103167628518879286768015517556376387436125316334732015768882873594611794822091570268905030652183545270893740225887766615524977660302037528117232434869792330743854648190772821853269554756472796829286664894695174066315344858706246569567977680411346692865739239739074560355422792807041198812333649583237711341015166847587771635959350363731941211654956708843139589296889685122325705019217143917101791771231561763111546958507198211853513744662349112445330184932007553783787420967741705693564042827604940290444913394203652364510408931096115670770133145030929665030361807576460605140023838566359865138024936649352075078506499417559959122114456750197558637051345119570903340716965013955313919783821620500959727685922832769374531960297359937099445279554416476639411240390939186810789081850207672962010779700679069144323770103394631723307620915821003933954745002780126603165090326349806228831386278517983514515010134578045323195083497785580677609372681950912683414788205961414883568933366659618652103305283654193885052298551346737488980617427055447291643411545999472928555128286545458313759431892494952515923316267975558070186823811294142838972308906334133405858188201326825863182349924501216296443473451397185596791595683967878172170908797056540290089001990529762223159171471970778518971592115397735456331753290895263361201308572169222053937981167282950421571541665268887238751882672871173032472954762247836777693471296752351659910291098168558414396026622690786331452896600484937138582049695755156080999871826481655670845158405728447764194512683842530676565976126464965873910413173928881608617786495000859148466487012972203402679606676599139685053607281432086082537316749892090946562509074734479451337024043078373746940511679089907753641723727996252455742690931231380384062163195615272095804132906104249936570791534015238910981092777055273382434613063104537944392288417516816699287018134366293320335253236962519696329690516107004751677488613888728210736785240424900091450007212947362913821996920400909270878839889700534715379282126339081287950096475460950963470148818337932819768226234902083096344363850429966037486564049193818385495687686810041721042507347624456826316949637733557522032905796467248114687401848497253114498991332772937208572863606808149391251392355768731461987042847194328891633139355722972178952360347658464931764844552591792992940639300622824901476691845725867223947328238139778725611993046758584463104474238956233620173278814546648143567189976236982626069005084344037335620574868202498991573251107697234335598210360080844841768528575104052871782336235806372059966764069913888480665084277140215693205161734515900356052931407487086937224311314394577333694471759010758332094907400721560242885005775629350810793921005829510397005187441498270037066896158846188747307619119486682652917027973732378725933469109411918164969057500656952721627221562872834648181993416370626489700637982632048518376217316030539740510608039331475561788716945657929231551364761633692230336627491613301203408480656175647603635340064341336626299985958008172333068209101937770388141235935966244654274463301557526913338570012836652981694877255823200596997239381537467118891793070040160722788997351891567793500806757672560146183099705195929992109213317798872826338284539047388662227635065225046442791750542577844694658347592318377784677558105989844767801622193445671670420045059850634568844778872460429877978200663998676806832305235739567797818419943312844677575728911414060990647606604734844695449124267843080586814056580072702847926004001759230144037218177795185968761391778211533098128546001342969315567084098428378451314639092846108969064549380433154054276282191425479710184977778270057872405920841701470671684929375309859273723292869093555567793556559115815122600843914148202148114502658231558460849976770993983856446907569095823025743378638393702375741976622702223287528909205753741888510104956211285358845814192707337323154673078071148844303485754440464930694493995031048063840216037177247709129819026021757828439585620481042716761073445108156575877710753563854766176287460452233543627212539110396222958553277672839238990683521382632704324831180733289164301954910490680837866986807898397494974751954342415817009472213766961788032978983846417479806028251535510990672862511395164373681459556518609265907618210624288323349261215390133627111078036505407776175889960635314250251343870887298518876605156634789530531712971887246907802031366394192095869082637874540832799455213094644194683557191724458171993323645276045862758099573283098082240546838288968443582045682746888297820760567457241756962268733941174345098396245011686954450461628116454180295103692427167216171345482060329592289906012077531043252852634370716258456427149628464884487203384178621125026287375594954240457552351125118235504014635862097540056025570683674505618903304187031346680276595682369906508069742144038886844003349973274846194829687541551927492385193074207339029272250246401768731110766058106012619104652540981328726547581773545192840710925305263815515346727001777765413656127665650714205622045013172133144276739540220135507261736186942812579472166513289618751916505371588505968845113046924601180686527279790734922361230965812476197130395214316448771890254455595559434235370488425216719820490339560760039578980687783447612412484015304252066213326251493745833352631246246213478610422380324197440966589504338001465252502482354327456311588259336706165082874320551123003831292262425832963017189768851553084437009335490012566801622958872303048858131693613356411332818856504373686303649932133965545259983743988274985330040337851925382698842319722645132867704771597395743749148942476292648889056819837248094317987253052141315455824104069652577562156674110028944668060772797300520336322628320518089883427743169599615565240702073380628924949929838538060534582709862300448205087055740735438833534401363679779219948518428837423615815424157205958668689187909230083961547582354913320508096025329098559018793144902743455368933624167174400815918298383294104034637257774021464724314769142678919065233042895299941856977225860441147687805821297265376819397953779890670472527727489696420984307669215494759212206002121075101836363178366227868640634847270735127740774946386897115404501520230672647788093885091485948252137825570425726298179322288040402757692801370236977639577696463338288725389678131395933918554594770928861185175321598023553657014427287391236613955138524986078623853795626114678834438051469930642024633905369388251259011665331875113198203860196252752669628870559221377195033835431330151561838824708771630565415566891723440463615251046543883163744788510627371521551099312975162774633621661484650904798448308960142757972836546782747501004527565418229086947785481518474460403014928885982705372367311049487456597016624027484110417482381195355022950146881472075801907468639334004538177546418055560926748935664970248453222633640164910975547759080066412374225512163885702800554552552268871384983050104440509326924180461548913940624718225907225239709994690169222777071382780403216756098940695762372422547354891057484650252672570980015496451938702233299683407799856474455021433725921450615038485840412871465978962821473389113769741267162152604207787303650055135088756393036771257490725522304417852142082100586991526585388381359169025645701515979175872387532833319185265484214847030282954698681143866619598027082121578260784595844716716283863888997982655934945669947487576243579053452168007859626946096638411683092535702535083774022267838380207883011608597112000908324906570121041654637271076496897754002827794913549428191296821866538449587353749655404543408258452749387140498671120329924659610840403478888186680109615557077489376118491438722873898430231067712924386581245921239984668963446238179907940602180915153617974903771468741626022252503970800949429462608749052365149132595369674652214077761687361218038419592898009043125658149579351425254795064012144721388594432372730051969265638114298511262391879499863956171036839153222049174158442509649836228315042148328277758225501349311730366926234889888167085079329380365243096828902304406257918928479561384396738045174881017662336587802823477022508620129863310693093506471214144777918113018705515575731168273438387577948757058799497647351085642185644507755757952521145656145606694225858114496818702333791136330365499484114020036800544052149847403650271541083376386834043619437211389028429118026105440898173024295067962112545522559810434249755000848797884112717423132376662376236575575673462109249337634868328547887307468863690055484269473701277913753965482443189636089645307097170636635683619258632031451041768173449042317712096569552013769239141648687026805408070362315156639862169771240629306667076045724864662555067860448130106168954020574349374227114898962003228562727179506199289642111564199287267664166791286383948248752837729853744451083006695814514348569866689190542196195010832016663338156788708927318519989548964929419619928385431746191806699075878541331579780420251739696214480294940611553048989407878753955696515578260465123361072402120049898298431039160381545049894422288802569898619896108486400651979394070062596817702235937710371953820064416003541817511875811766246502796121330097115770040240166592240303064671845920326996793243918978015593976785832501294192089392456976359008061635153930621458470119795389138801653363764609437345938427748253510321839065217215000248202792842151690486291078530748097784731879472842934689315533925550252413448845068754222596110013021677212557001568219460306621147978606899201536118694551100588761347929690577637132488156318470492187142102575971554050946738783943511344126115934450694376588596481523987575431763688482838238130175166458241073321281681943565992388008697354163430346869977343932679062179151409428257723410861611616200657123435467748131695581895852368692046991223331788471169204467121507141180247021220122663026522668173784090549905761644154016869934955755910425510433003759462310415650391702969232106477205815939379026724250305004251662081017124857819327840649931406188326680240020306633512642411566707827903662238264954740432680133222007639642179841625538115683008614242082815760397595005744879638949115849485223051731854414109472074652086234342156823071857569529456240851976781670426508682221809580536620921515197719126918115071860658279161565155542195357401985443132350191441422291324709191325521601164381328839744520316589273656746933843040493334972098655766855821108686565731316481325548261563264808496832437211888754990804287722709727898240564103920541252475220523577239090606416382940301816026875327060418640457172005387174087486132557072787866152955528975344027162409269204434941420153552340227932521180479959109304380092419212633556345718416441377921874875628848502257736906445188827228495002296308428587969442159543935703837469292426413449970290413074460736593363792650653917678676683184907470106800649109420087816727170528455611135730663238219659659298456099841681866744181083394973871844442000671942480337951877300266065273744883538368393681404932523947266613755667286988512772301755208709224222875994302545317506046921276366396692653058921386654070534488211114781169886167779833295579568561690905921091996581075288706747390404160155649682581912493884496884285424498103347493849928553421750727756447531280065793763814684329190720154557292778099429479879187382880638681596373885462388598120321105258051344884716446519330292185477189133960227638724560851819363624308700600214940273080570100093457378915748956968328628231597648617647161335381522015078275356771061545516827934583926767567322803094553991773798738995194034589636209366223105992614368736208785639820440972786345498471217832304650439301670828111743679246610452489829843954388650118268513327437973859363927188905495007575872045269923261671613801386764712077602050813538545985214205342317519037650675386293022179545199779402505853526762797572184329908084502763095904137928706256079229682729189224556814333835206792778674533714639912540345685087761977760150630662589458858612898960252137742486750222367489549731551208616559668422004039077192618130506274173232572805328537746405906056560661141199161452531302752251551237882500244867854740897713566774285734683610874842694926845313700454533294884259062060640388661558918014562549978636546891079293603267087337302107969587259638140053693308531991273271445366190967810844158671062602825236677899089481812343273052573849627069786435956550986852402980250376999640237196628417513454414410428925755902590025949233820104280883850730724862256280404571283087745736247506389490458614382677088078877288266865296184372875628258655558166579349843093554973225657795823848378101897054323465597333641690916272419959149741268653736435010145628031247752266750910226522290300243672979223179159600272011001753126815938053829932666883192947365729702399364583177661362496273602855858852880230814193886358934128286811884466989235350698221042034068488724170361539810910343304685216219274137305865767705312937533113094343681631561998104033999420740353482646854190660252602458791244341299397192485280273776070646836929959644246042428757236030352170815185865778467629302696393679066235560894950587705794720094941636004106913836824946171516991345835376274674753965539577232648317897860649527495464198879881176568108733505256673525955380840835278831283276809307662665725627811567212046130651985847767083978893859501430188139619111344373600690287464809369738712632267222654334419536918410351717423920675402911222998677655983173400364624521670061497083033813133578952117930127885140764184415591287421681909258035746163330367648432478265677109591664927727595337306760442568184948969966069526155169596779083647836025278871171852021603535999876463419478444233287420504398706346040844480652076883287419387395564652592708694297651656327940029502344427515496939722917793767358586401416894001967708785769125202714193619942050590912198288081766938297650952418308104950633767168029045231343862796504956094110717834413718871327105585265317926931887407819492435426448520075402499665999131249781027738233457539977056049520102397229026540709889137721828326841847133404490923053754239784581895355928957506556987243237024096346536419959564826321789859624072307546245314702955344414783859019035011504270277330251063225511297724007339709706794617382430174500567720123360645233124109816052730346179499817550260279222087659537262018425858830625105761459377745757122920256585940879097872947179229345822958966592016697247920840910017272324648613423543828255157966330189474437051489092422400613007521124838926447328175004035630006507579657443675079641345604993004321538918559242681919584750841040085936872395198171449197176710145402602860455439999504207394452590734040349946571722383295683532363079712447541918496551483256927473265374340879443858438218876485011328036658550660005882524372897734484091912307649233822873112001568575148339460496751910546064761047018102441092820811027277488048779915449463158640490072106153415180234547507535685952990150019761149453802445238550007848431535207956399051383641944024702328803018820414443858045319462434819825912650203301173336368485083492394172948336791071313944608257242718401943525832306626980649691399544024831767371379188141384754932187117517234762195171934457337470272880895344670354738638286565269854198361181289012102738940184706613012492487782778723734737192000068099023821209994210747378153656912342857158100993765238338810617713296243028501214814621572867895754984705236796168931477326242705843901524352452072260149048796970669761939100429703955866902993929331050468143572315665145917539759594862022796845911657939972042637294194945688623827599751980307307574571831701410149147945562548342340948787861415744055693297269002403505739806633372535315969665929745170899439550581352228963954351137267508410441824460373564160908827316652118287899283123893973549541419789134202904711814740626889434917678090258241462621640376575296195182901789162752244911801342856111134903669581865678410922961503906378377793901946595214547422103655783688921476719901857464638609533783948379443551345883556598058593579895313313447972606787134247643892780293417106018190638463136941872931486967136934539620849567284239772625119027711493288697233800184422579310847045667071598949357577703591795496419748096984412028091394225216387568475145296252334596805687270408946738739187916181325698725440939982583243973041578040282522483549324222019692877174503157259953364554662819911517791510848304926916199441006577909560870112078662392416841450331508151423203209253929676986217343650501493142059122014004409972122476147304614315036730769635385563533844622458381018390242191399691937005834815992677528706705786490721719665991662693293207009234020573652413121051922866253054012571163687682226473126925747031881354668307080205459861642827781406279327455671575981028343001778755984563689832879882406349947380242406088473897006000618466936693712860368777076267338035610318442653004611728772329736680794930250301285887864898545429221915401363549713515284928205208714982681697148023719996558429156472334055544095056544962192247237696020755180001068165892586826160556168348531457099508668934389376840692741424580646496570181377266976291235862338558578433108207519756497546226823999229443076371623504421876698361625907919631163646489467011466488859842165680997923989155864183509004405721354063771131196646248367186284043965989313860372816143513922248676627931450733569061574494724278891602889158597058879466970742635405963829675997939047415668052131034814741872798124986045113213546117324970103632422203686268458936658560384096534046153818224121410322045002593779475758398536533284241328002766498333237151094020934319571329584932381000686730831086031389980407554565231437938947397456241756521604298472235422812274847730679843793342266686519683531688776164339349538622696067912907457592815919406585574221491086612302078136924983307396675198599449589848098698430816105934282546820915413598739313858353898809196849856209960048037143279551671562907045462569881429092454084336991441929051951979530882858188349692404842178486422437810257508578136397853644682356381153861225133730223215495602388246486201251948146147690787234236520444221762017755401579706449914848630947951307666742507836911265395828481149355999389641707708809745239536776034637469780571970158942948433754290261383411684334502548337113528756450340514233285108932408507807889098097684402476674505777449199090353126526780167052004593381281473860948310356081707057597138829160988400501459659530322844896441319435044902832202106766686606762220669821371427659027935215377239874821559394235133622047908951061476552397223956039645909470250093875081352671216404797249565846770014287161624336032666268713842957210765237041344291577028998498493508096492141293841744287147273881717364453882634927064719006228348130088764575307875675572665456495137974590724233320928540361975155284957225593971269733524780511143297986851960700523975974509444217344201712563802183603666745922886538901198275121301571805853462494453066080428929243234951048633965404321419012450577294556492635113788503297285136183892292908299554315272070304948074556498415194643432216006672116847481404462502587346287284536154372412981183675729577931074633212948315571659404087026090433743710099700300344151361956787961139707601895326741969670231218105288587827231960193290221866284399099050578211095345520907117278481032671961679339278999119078727782886048717839924710279063581704465331351258741338262495219977320013931021972529714882106622989987844522885815782724093892856549002890790839341465769209857397400145770033350417362852655181678404891566970690060434265471045767500635073361978629820686295100229633390089694272182550419338986262183120399216649500253379067432942637432835551748302491515190927810454888648049160848842867483341813428879611124880964404074763046209850881192737528512308805106831131757250393846217833128934861583714952171628925922372995235024319781435007921086234679911830790339139572604637034652545172333587177135388296629658025598813044634526896818439104517564124977576634599534297329459859263387941353761742475757005999001532375169730723475934489793471203425831018808974626216703019389833090971660112285010062212770704453118058121935365900690747558246456895810524504217067421472178322952303292396766927210482796199079728147823083366417004654224576700694244921120011699703944992157801147484675895242247853371501509347142323655066903211385077449305572906281735925976391407333018402742389196631506952489309586813283934564157132940918060786301373452122843960909626186372922280919217924194868547569482532663677140770933283278500218830079533007204790012236556884085358664817120847348645461759418247103385952541118345581377552482731193144259928017890407932190860263287127121115116590029828103720236453056677594662249074726483946951259126698815214248612327049782521202249297613905694853256713482792562978411891060819243239243887071763957203380385487159905597834264112876609522662245865849587644209975903369934969886427420759617944744795294731505927128729647358971473390153810930031542861369735166984465182280588026437802810957278763090652335940844419361449019862105442904074819805051861579146718901262762625954015852911028616663694501687953724885272996772378852381894217945717754805308904087766597824693183484594249209033572105830534546094010824761822111548121631842986595801671451655373606123008381143054640229634651625717723180467284980154316898705444624111791836999447460304867402366341241256274159643982425591698603766447043479056314950254194785223403751267674664904503573560315939060996387903267870323270352616685566042433073045055734898454134085810384054770548233687290429379917633286807617104616048909011259842691524589592002595601623504201692523758546890606360051116178307989158167339928111927450599864584165483778456385508986279824842454279717286873725553907150411694016557985819639818467500410931818056328716378204369081739049357406231905172655646612622050129608153624108906961019567884476951946544938501387658781663145258873917949687073821971847066219463983613028602571277923075588649809509397285195700832096386912388304297340322573057594108070496317180008483716153477550654311822120329587870569788411598096161749569224933070873622953926811301123339660672243253172338437886383975267658715641354362622372866424441717010678458122248138896638551077339592248284453209682232336615206040869497249980009301622599914563886789716062103619338179820798279690000273143306625695437208354965877357957920663090889524341448996659094274983821932801099962947531947380287484673857647520022529893450027967337631461951372926159217876369721023859937407596544161363924567195383900208305827822648618876870186818716237594270997855177865271185090829773918880010219794624379672689119947355007643633986413505719444917914148363305804640149806348961782593279852238386043439091697212025960704410980679548225321095703301015365257429498276616203910819277668743437369644170254203438224721381844632044835049888658969168827405950031437539082242546714672472965401305509224387649211783047767068266076592258868055715812543839632784644637265844105479074430601095549259667580109851485462056444432263722897054450956103901789311462854334886585354919338639225766138679854364448272017471041626736397174396644259921478778715285852563114648896953679988740680996047220869124622117624598969123760658451645716615360156894763850199179717321008178094322261232881156606740813338098278209439001149504260172247449622976968240540226970118596550391829528589866413731304647955254073840924930801022920887703815874811249300892204907506051358712067675176088858095558649206789557887805462823453913164844963562233664233566647815939561938201790775415092413657365224235555205267766225853629053996417605922415731603371137329658890427703289212115867433420515561837333240994625518981090886588705088845676910888414054340029395473006839117150506167190681193481708677780089126050365047890753162914782763606288498423098173043639102608569163201972601377873856349758112376578761354197036322344100888928508981371211714681584524235667370681217984735302339862264251085932732885544884213379501937665939711646454720338633069798581888762836809428424354209670444524776421679349081866569550275712745351702028108813378436299984030976175367827664495205053076818898130574020311793071966226220416989976525135444740317919784503995218294606388899381037009539377692860843016074639025291048163536213239978336332336062282288081689633584174244078856876611435797325497403610151876480769400595873975151387328805225997196893814385298070816558467490245325438237745146861393701594731102083599555928700538641683571403753046846545855412411118780445941369726298448360664291908003157144888534462597378459701719587355351710473369193262135552096551419797765183788978218662116626750718959604113115439541857893340235715503352686588828047706490579861554740147405152059467657581115121462797085235077571874352126601879978627529845531690862446305852078241143127818310146523358910245046088524835275907550315519764009233119169698599691035342501535913080270993542882245759791184032830150536747618749063242930748590064877493500093239695254086574977439829842241755275384408055425657803978001269069031749625093475135185943512589725610030270524785615269510378114953053379416798907812889543409489938245383083022256610387839591902470888859166715379111661498163281222791192351430704290000404889147621366580687960688481238108421341280967352858194713936490380340982555954691865405668672114731595496826606646262875187541323070595314482071688339653913379841142235894918972517226881620385446169142024940365186290041700237990481942004722079326101059925874527643674426815295159121283324480016467473807215782006594379695357135951175002304648206427713555630566114189773598711666351229821239723324085760485240927848772317016720558281736557281266372226259335928828311221865924024697085828181935708526044075586263630974209627911528748427477024901317832589059270930855941469411441068593141371761051658352848371849060134129931442200851626615775767972127325209440919074634399558060826886817010221994969749158150937764167470513986018479280474477717789966250783567134407317203584015837047334285049216316147854004048926564050079278504576122487341625607936414859242878893785155858770471113358434986380043534674821794644883262539634404496442809723838167677809004498706361058944338586843473443059693112842479802371356152436711810916949370953009106936741452265271829830069984169349587885699539512886388946940728698890319113233539242867784579859421033407375414552287078391541714770529249523783356799317965481036945500682029013663830987620331015346179433359444284532512452077724999968022519438055293044844293648175986331268118300964371984111257212407488978124149683041036507213520930859660456790858136800534397555486986956745021126826554517424603000099252255992398819518186350468511466704827888474960718603404208010297699276403315442814347827797775690543378312922995556217910905095037937445717903507939154907190988341526644896116779685432154250132378067100986036027173396676361923714825964987482268491512298174197174415850917600591061368239826169127671722057272886062762058731705155640035604230848505035733229112236859190450789495051559518962513197993600465414035029945347731815810579817511263703138060608398324408165437880166547481219357926382297001416625884662236147795767020851746376955434489325155737398343218609218843060075125793802317926892310346430174804405857384577429572875205931833258384919532828905250868086297458872134161103287971970741679015177364491693224800841428084758710658071691442162025076059200725496823899381141825057296096735690943923619178216421881709089449290148158205809456498788485982277186581689145386941289938833409451562884217359769264193622679504884703244928916114849284322396684593508516924948151787646687446669196766930880689473203074798738389749618869124703415190053366332581704090195145552945054111401054462435381559657993014632032270947021609862705922763383400552149648938996554453734287117318593124071088504299498170444913294122226052525731625210885972528794839109699755373640475896185838078926054645855954315167324741457107705485500552447061792075173612924963254748463444097099655239383020838238185111915678092952036839153560078536940503265462497422996423633800908869040216950164537184401205463437870048375217147695328816588039563036997447127234768672455109128313361193889322224791756256586862925790844012241013307129383218037520666984567296978131379040618488502046636655303245742770209890269593707362477825253757766705614180074859130523653341073671588270067807795123573591067033823694622689291977668944407492188992979301634802039566271116794064324867262876099064730812585291197203811126587392707707523239269967379049253263563490897559883399666014224254933657696397103384393415397544009183931439332684499727066207083896691508363153850064818912756708273490184530330381909491678811844153011317901979275526468787379953378931847061435508454572143565885910345258357560135478425546958287905659202674340471212589285364130954193864966199621684510166430020777163328722381271669274740543837339677296709133099461724833912037293006725390161572980340394685295329232283933113149456108343238016087393445292713965738591999571588055289079740813034368397357270242083037000875264152496957622322891824288657587924909652001949593486071322221455859447416930317080388637126688216086302185062582317396428808450976723121966441458672773892200353302526762013602273949951942096094400774449983030900012505076261737657382161817877521585161357868426974485918222015615588100879134144839247195014406951546382278805492563269703103639572573993800789214303637405555603863719283657893999766924897497765879036260328683940799650879906967380527970335106837599929295252759912274581413314883296207892737869785124883868397347423338882685377064359273826413831257920594464907256873113492126805777365114473169469701744711270250296076968106718443769242578727146450342491425606548312019810668149567254426388239407903165624793733755883163066919470678364440219981596790119761794989248385905335638362315538391369711673989881938455382257657915167718414267776327107805975187492526564175690611281555399590805689018538713406248588866519571897199000599351284296680943664058274395902293759454468262281536796687419753406857229097656764605060752215879058329972822522420794102874259575194385503561223185350600322432631483343977423003499588981878616829166997606790048684353458660773343987592047486562710075452921799470234656612657536918809132482136920830893478004588888917646886575392365610688036096479182347725406524357945357830702537241579868934623979367207280787478145241188348742418365195738484668242110271020258813134655897740927251747479058346898521616224362023350358442368957296641858212885169312056413029896292002341642641697869207108809682333026672310151752933984425133402045391617532488731339356027133801593929645802994457161439582662913583621284428966486598393248067070329412431610673540474090231532792749863334629909323797046068163317564097415575962573663212741591131651757912120151737778912954196431936860856826722787410860347532231887284500472671528412643795211018899902087912548929118064805104843331422704438624001355459628707615140031337177847621430689639132992351455287416181359345002879692271509886539059697933852625744843602086104768545498637553818692563425760527396797004113173067297252338681664358303475185909198773231540649790902750446830750468707298723792104485611516237498077077591491490890444486847387794960325387909917207730874158371714786430694823501919867372749420702154961191354632127800323303731583984164615655595964418460698709589241688716349474167696639508335262219868715747886198796832117056202273391189831144314696073813603051344564376236620095962051176685205321758559513002165056786609609300827176960280206570800035726251820961894343311067150614223533269113572971924740606666510514427623386434723240375096667199672650167455081211697498296241455155623408462011992076276085062960281553741232923941673754433654953165635553703639411689773024702847579195817969128804552775250823584964028040384284841420523159441077635225381371874893812930741406171274804426595639846773351544192541575324517167400250875652679624333357635547294360205025427104420396521945915079855987600408522511181468897174208520537864451081864391764040553927306136563835231849361305498351923670595817011965636950091027483956746229318231582020469581137140022549675441587070232366253244795886656373364888319780993435012351626932459444961292215154885616059633272115795822472511525411152916012133874502203741982499139745980764344208967340581200730982793930079922633518394075668463336417700445748711837656496605264543469745289828926739565579700254010620220961427721489317184969283228615290044566746681041200095001718197547628279826752440824735198443529370342176359548196138020211190110217266143307992990022548269599984769996095690614919203069127323157889584302919041303993147275543404326567045756336743531708664549115877971612261953726621222974634393040628036406946555494830615873569635430818209833237646580875720951794158695181135877912399467642113087538964198917353505413644900069592929265352992360777073050087936699561177853824432192701662021220253082304270328390114789554414219878073461649170203390859289076360336112506359022967893808067060272440390550831890669812437348322881581937517240327651832705433230855275675418708391748860715701304221713785267636046082978625460469228078455504997281348817806672114834257597715336688835374649099170974141852769895972196226687985451267637036497109883789513766038049691446463315895170076701561626979895065377121612961399464317166438620980866007071733883116885681813026070527436245565457238746344982283003602115584306490189175682520864949074677006297489918357900093002729408035307449811751644640950838636435077822921993077061723524318923608310917642696638472363940586008733010482786425667596138927747974611154994016775552256421902060879366384257100544927002052186861470472976399014134849553676510482080468803719156169213017129206133178261023992648192663281018683455959545145005357406055693074028548611919896453575051223849511934202675286887626655152141667139743848387253356111712975009030100702083909968865118102094042765906997418509342318882548644213347179293870445565979147547220134984664811890099842483895407634337987632773964863834592796530965748947799831776417305915262339271375758443900743822162601034268620782161935549590477806070054831461002118057828718580327648374511382975019935714349104127912002469138512372358284440877821736222617982089078508548161813570293245463203784537400965556213829269414818003030761296062089416971742943358781217068471518052730482220960839239744458685062755014900802098299577646460134420499801993500371060341876682771289293821534266472946113829708626272045970581512433455036245413580637870874011124256744801699655618916006538114802001795845497321837656278273873620399280114992512708375428896414653394880279976646103441449668591004792697416054267223539542349445465500792901105400666902230294904105516822067145571328172088980782050915046982768772465008812455970064743111888654944669622977242790903576226321722485317587340265317508959292937870119390131570793729654611252603220150776123925695767938966782289631417360172057467351990365463222215955230915465213375799427260103032828341595459148339445607412441213375830042522222452648452234008291596860751849767154967053998284906739530673199596938769298425126970346013728728933923769873566947521483950254044800977899200094661918253203330190398371653243607331241142864017085125440565536262906481599636741400467059933400483561608502194948556903596649122957857704476724653998923440170508895185942787180393296509724547013092612186656361194532758807496072622980805515440497410861144877709159327618295213683446824106954955617309625964263488553703003394751910934262294260805585401238260255425149914153834719190167720377626816527381638529427654691172865379977689607226116091210413411093186629207808176170863815676141024159134957980437242664388461418309538310356353826146764472551480599539177756315856929112032070999326679090399230698595049552364264969813044025583340346527658852393163163873648522433755686062092016411680930140453047217752982914724952214270440461422929591285790944601315769035364269146594006116608191253081707062553408965384426052347729344085909038630832096043377584348133585727165024484455554851856334550441000214535026825733248284539399139983511999002041594970789515511559175643084652371306590227988170295584834787137655568981753229442666273289926486359772772882436241114241111663191971398639542496535058701401218328556823646592170750115687666043387356828210067178428428322905543174049192010452779636624629884528542536503226506670514994785582833920483623188304217362764409507170732139823071363683728597540936328903708405809525567547539507599872323268800371909941150737176276781626291609572267979390982386495723356757160028316571087225457622372393860881083542001508500331433704208345426910309983223183305036503815373185433390416500685407815845043274502473974956112937907446199537127813192294323937755876749626232976828252793832719954715891988688624185905435834506686041853712173811625393765903157367976281807083614991083332875455944303230939770022224383910761463841604002466141705649014446028082075711264465085534912763410435106097834309884803516481654218051768797080157978642064034242195339000477073374484106924864823284704075653765190937669707484437729501550207294701208594019698417953429211366350118700031533363160628220597169310926856679166611725565289510806545337496466092392628977654695712383085224838422239359923445395337528466411881277481021159513977589896870698625151032418781008668057324143801541537263709362503125809789996664654141567212417587332680669213430209969089465336220185301049159073354428886624620206378596178452443151313080977460859446450211491394302592754264456760435374722342536057349117250402425307644063592302969097588784040111737048900341451498033519036806905825212142061352024929906971680082214394017382954811476333674510881725847087740767594275849867869297973388893202271525260788115909881267073458396239220955496818441499282834617896773090696097866611982231270402029689427282745514231466571600006791637600398683341694141922330958360707326225705991825712910342490627892268399210348934697758010143724629670213669795478772833664280987012416503906204166391436405496059464533189287237600840124015138636337073892044064033022507729750665808598583370140051138261742333312597168395053747937500721124383541267118017952901017646485143740839057357541338617774099702919578254628446038912352191130211632014948581315587526990744909894089238350123320993793396454704677264363182612554608860864803053203448394624667494079993063016080902678998037976246819724732715407004309052614636565561888466495402424890257523051443761169716153478118406224614740022487580594712528756432853417811446974324753139122121578302383381356497113376816733152786775612929472783817998468045198296405018345489754023569534601198128798269001630969693950050253275442511252943015768193467101646625104117633373791633466876319575325189691470294928053006132454733180479233583143722917621709142078534320882960825260612903428879819820845740762254233451548798690151561101822966808521532966712825895768591500292491606042120796201528733605835982879578236774235590477911676604896347817062648279668464376906035467470392230091270186623305430021227553687959907351703186871161382503291681519809585157123150996236979113816406695056507280883961829024847771475085406910389156899139256674004104464914117612556407007156649437768990764635915287876927210954813582066971143388958065558603986318187746098300224483994304320150366470425709678864189585069493865334107265347616945896207056290593858290835228739590014058323689547297776055036426476175704686812112438971830125619880914939554115961904943450452376978725475863279259471540420262941636147062102859648281174296868534408875820028732434881169626421933589807452012819611569945450934800090813752440347171554126435571152361314232771679431443544356321823605456026906528507468768244668921286543763773943272056444115392430689302740934714263554055969129092385774783406237309094044830853288014891551118074828576167579621377039861587792228390246665600489337961313274074042547020142683766701290920752049019041729337147558547126186154854357633039271741328857379023466261113280089449748101405608614141419173645694892191608889903612316608054570608646807567389470909211288366560253687280435304844276714157181038638890369103106078264763040371116242925023058726310809105909117690249399167033401425045614583268808909505322755104781501503937512379583633428299031135881161393255036647039228337427395135111886449717544021844269622421465934277093991733391381219052729022434762940864664760422607479814880631984849638963257422721606728010712112811278918053957835633111632004820764743842585776230029868559673383629410569276270057847131213425420643012418278352849394660736705137507073353272356467313813003253440520628367841316496532383738580520762874385081877567570988695704954704779701720098116873850091211287923690297546684223381074026089002933553919970053718220404335954970079233636856149338087898187923620929320041548366093677557686172624856478826083893039373789490811124399167416208497279407413690864031866395955299852340807578268624220654826336922555078417206772521722407613862448227925861451169225311165770077503607917157413557461848218000088005779290157148166188307369765666163329605716399652371778350722468031980576784347802547810796276930609048120830583842271243825835842954585336713450690093353731526852993366423170237004300561830561389926110376355780473469995770266973717311279623980612061939166843518777643339034050541800564668214068103151275247200247929264681338690023367109008434429262391908047259697508088115542282883341081084378076421409690181124968846567181173806637657875085821612131740407176853213601727282330701483137508170287754024118921419144823194205035118791047598439153856667866229003195009734481471141840831324801846866049635088296311736138408369247708271328100104264583475440690116905886481208550640590936495437241769141253861614243982191693733123288535345137683208094961824962792371051541057288462008178020556083171124577260621639380166563072052633057507043649849133036806247776345001325989748479290283360949285848464615075121112052730487601351853598526631773082083773268083235502326490274477315610800775264878437549809975047307858167634916434165289414521363559119746177378754012512141682587224966214743841061711461220858378124805639355264957856210584565451085250527841890354563016409468186013008922650341991065487726646725068671414531467368055555901170283828371610351080073765561740074374806906659676422381335715939529620345500990520737955335199233309504896873273490595233008785125626011562982993342187574727716216663513607395142905813329297676162913030095511562355120734831516770059769948549531416537872167721732245251779110767279088216508333555928325263456467282408331078720674315995137800731586673562448734033626757943649186642943955937179513758279958140626752437673364901889994330446002946429055308078332137771273875988035431350931220033491045994751080579998271759378220300567781623083811515435674537398766121988463836618367837812321772038300777537607469114041936642570123497071488632335875979410250598206777348618796404897376236583118957676587761540324170909469238941413860757987181191669178278494289691028770775171470938472854457900227081764673881038561152030179706569168030555093136468297518976721972814339105335102488673212130253691397664913605062700562863986480460449339927470972280355791029392003116356723650975821881916187123793500097212176470875349808620971122639253875327214997677582218870566520564729384924524532944896679240859685788975852617834341121027010035219035155595784765600862054450411318964400448569851747064642238169761097799310380036516426564310106072116317701210876487315802401605717584700128312298219020782198527288238574424889082455816588162829420566098225083963153831410008072990573114595225427295906274069136056719888376567870180339923167281779322716938892601658485952770791259935361156995391342115067143333841139666080608370094080345795370258320092626121926464876828725299972115888138526936186400908939484849389203953455928379291689314778054298801326199289004034631866251871393893585851037426463521946855769313655761999568967066913851736072703662931043059484836301519054416276412950016524509664216548950232754971045624844042733936710923294406514938138500677993269942689921893317007064738950004323780215914216881025141329500502885195783375091333739964006206157038203070130617891052514302157949532360729458011944177602219233816272889936611017288781343771697875646578651092760668463110443366392540043386211119817877863494040745090126223651414294928948786927423135632030903439742412103072640087086712071061868422413857728979661829078022752089951722711598686872468580722474650509227813891173683290752735576152531642073670920555144566720320732001331386767468685170003002105984993156232709216570632613387052703344995368836868180526948637783451414512238681010907950381715842631661563273485127913758121533106646208006447982039865551044945716616599591858292934299112605795892246921038527081629824034693331414217361394593833026119552703996128025527400266699035042366140654416767109787721201170476307488486184087560803836855990286241640740109255595634387026004908724467324980378684065044929924756499455438345295353219306102053548028333107655854259205274221200883958353332250626249140219176711766386574925418903589383449442945806079943579600670845761297291714635432035342651028613824044516219075793223136820276989425495562563915860834051713661856608627265766480471772602458985859503482262725981714840616593962100266842394989882974515474743342262385033680123827840427270174456748194295414452213709304682161867419704994856668679120953348173070624742058719486857838220739614247797842297100020325390747269749516057517688976288588735974832363164191577651448720993641705409575397182280904076922894549050827601104273568601010629584941862845181130140832059633608169446691836874605616465594123114012894423632443743261958986599503148184559512118403199305963867796397468550248398921066920151990143177568294899051251564696542833728892830505326596013799038157782551296935704100093532881239926970104455273223056721311854315890922882734667016037435522805139158663149810642287844651809604611982405536742979785400830618991356450941048685623235774007983927275121901242973733206723312836925459292413951689534675245811400963294678482239511454179413471708216587296787869852602137092022828793276822618128113057392689586702138452061961370013420587964172654806684696016263049414303829794069543338031986301815532535425189011708279191667142355309055510841779145719046356369388859691434637227146841234718732512966133157307916754253078393494773435625950073661053055928006594961091931406902821042534144831549357443280796627946222546181197634807331941798988027851144292096780802999795087716434191951499764897984492633021662196746394318954122341327426877246064047406394761376299329333691649130880874012719389081029062448639598936765151122535943389420875309583350204992983966983381339395589202929191357786652059047372199834846786470271754713914390463223367044813363066822182090335623625528954678400646052502036013495689679713305414805433527682280983500656166051943149918214180032177627010230522490998874991001086844526639766793797895667023698440147784307138714661461982405326223618932366261425274561496888805445941857455238712275943307444453657452077916729046147624702559387105975273625967906234376331740565250959613785606590002340444759618623489634345098236524120392757969910528343384464917133507395268663390577003548006958435299610470768082316718899750452341400927781070915347565716949524792447184906068751013345996305180039681422625839274625010026793675140028800815005829625657865831719214597995692235850782190798543103829305208280604462429552914833249398695706854982898082640913151585859428649129164028637004496715173874387841339091477956375054713792531283265841603318580493240612418670782815261946452016508073237541834544957708952908565301521999581325032407338940310575832909870838088745463218853330922181241581751421047656689532544845082848805458075341169828354298297544046864526993790614104992212178851891633138268292390684925347179124928169136954363330748458984895502912078411907094463733768010971749346013919398070558391433874042324741022051780207053362369082542574437088563575690436420957504117772874361348830389720379413116274012842936061735874832789513546811762994761663391013688633473992083475317759197980518836865229060277009215909530288355963574240288126804019612643354180281276883112909235816869369123024597409308312155214109533857902815536184000209441055566647443624663086052470111623962114719000816862539040074537302903237917355771530433925707371369279250455466427290585671461619704308928940163061414626450459488463826173261134078284006588659926789405398194251888295812145408614710808063042201524813703600350504134464806449173336930066601589829633355941534670343972541444949912830038405644679044612542114344989410171710684576814036504254634092814357788954711718846906095826002183327314352927133250143926757906839906994030485586511772133169322020061363363414159959446612042591147762418950793492793521610689695166824254068600353211356636470641609642996192780547735428281810836780996082211120658508592392558380347608105187848029131494529416938280646008543646359994599211727403072431757566640626529657342137276050896083341128281853764290865369103464450607820406246746720092102835878487651384627199185268452230974955190788089806819966198068198590944702186282370665654315801329000705435392010911687316678926792744037922708094099545007825926615888057190883684568809550088234615509894979862363121691682328290098106918306622165619294683711823677523507176818469361916403726600178009215851332862742541483595954261434172853562553578230191287052405227002937465024603503640696247237220925633243871915930520484772879690630262083611510284825415347207421789085108665098718646643632752784323845236675348529993661247888615495121000791532692164819826197186635250563052577821529440419975686517716771614271717964574043251828412878863237012088046702539837477118960017540256286032806519667248688087703922518705007709432390581375688217034323954348887756868191634336852923334548906796097934278110514504785990156586994111247435054343349115110318866654599331180486380258906678301464791645105788674892314732610186145591085979403940185407390008473754032447150521623252168138544437971057770209225855199062085620585164636292068245363120366561477708066549050012379876694405613546025353184939721516735853100654697873878136042887307919059120699589854757572270629818884664806658305703713518927016417019784014670091500267283368137791998180317720929479296304025941792252192373562111457350834083840486484646748816225561456388165939606025774388298741352068418028585204204535530504582168011678575955733277206176254979098297465917429808635572082249880428371303912863378389148235685805373786232841037562348133730843966456457243234687700367431520594340719634041598325939797594966730694298782182484344717555274089209725589378142034587040560321594089814686964946801170011698834902178412895439647644846855883251926021629420715656809324930697441614589503776220529967057558106536676704686142655846627192222217700030033989505346704455795547848109118439144113667743016877570349214312359701832260656302675993858095316376224530834633815189191764094351308551777376191018295106870778338392783246400054032444417270606868057684045466214803056917116533017224494545825062776660396399217826358858508598930800565850991814244846714314820365317079566487374922173616504153768924202233084180024348406362342871917230173232061149739392491396046147922643251013135677417307316105399493304303497805622321678401919551590893980793809977757819058838475578141405351958456190337675690388957493152514304417435955488924976958940971590906448912683487060568544074856686515916279514791914652646411539856179134718764622208438815569915211857863505038346973676420065186581761209521440665656212884115773580442218718868300000614234855557240272918403391788026407433048801533757548953650373078601526375088395830354498092106507574505141010354980212467679530797768152583524138877658169591010932690244185984613045359049970228413050850127136286713688324509508700918851654965963529463136936923677091508503802193160139650762441039084654833830333034541365066795514467270282173381747659711997533792527332573828841825635265324612617130709050221935055472409366538937161068974328348565237207821031249689685300321117736575431238679836731218761083421692862722452133967423741552393804372248015762892313512897212295082515036288174492072606282025091300303683779054626300156143769402434102594232921177131676933097171257841984784608673069103922566065218956740305783757439941637415773233707492318525975148507471662717925260178475809096488199777200643053254752304028033441979384695751257118719017717636628511969583537461191258865559017836776516254032696436801164109004187250612072627755608902812910854366006154093493260913535029660310545529335695927529751032608021379275217775248093531170124974473364547179899616039184256251430676094769893171110215263179167255428905159596455877260320780624077375653177652789985999543368676439758262698947929717877732671867249808089574834321904873686518373301197011572221322349068947300097776962361254600717634003390580651428881126914267851886687510132272719578521427224052464974115126624272440000933930696764869873448116714381847507561700566907270276191678525671787384081359684790573390037999019627094404130009616071896810758700180828825079784072440291106445524206020515849144287012144969719460136149862890225841539272586574310048887152247520639273973926305757896043554297173197032984107359330766872287411337130805600882206087656758155868711378806847625186308788074111153694770727668160019473635997061489730504220699226594418095709337751238358429999025154916322802785458841219080907018650610483604083252880832669662174240974231651353401217414674190156790855759980276893319432019020342745557902124039692792786886035828441509646727546268471641409602681418418054504123368195800682422542171753263967416690567275291301802797247347078095291559917561105785096555381153316896305385101961615499997078113272437126078542543025368513232924443819210469119947805358369463208584358607678555506082583609238622090407213390932500771913936097298822868156433543673164490526200589737425366790527728594900815318667605626014819129290097498137419669765680078303823072180296567636274987549584225684722539323530008631502588848350732129561457732676120230266732373893423591287914353149107076697200559259666042385363875089751084363046103635811913895062264326085266081293982877380229877759588702393958781061999039702589247589121666781386684735137167563162176146705098876887696236431975109247982439693224968541708147597213550011264354057211308600861589674410533769136088081482855644299959440879213211962918953122243811540520839222038820937069170281660862386674211155275405979897764545860133391904617940472109453918926016207886663426839141080912565343705363605742159341827563293479852575330826435230169886433416973059581981083772936984467641273093261527081389928543608627219109313695081667058167689080710536344834182009198966879220924940984716136823768717426640208971187659726540345014169044005254799398390193577375744104514470682401453664032107253133201020603629945293507159591912791631739256784535996172916715941411273016708664517418597595269010087301703853323381048852726115107484440208310649920470727991829046019018698124264882787093567874976088710737121191311973982753353992982019242785164595861247128295248426879303573423627502938923130697870362136906075134344697061331983951304735883910667011077371650258094831310674367975671875441630872149197995181248223370959974234333102656491163346773903774519137550271035659057743632944461100893287704051099694454689979841849995561058066783394688413368821615249923115779453492907625275406463415401402534599169151482494559147024115571305439222181586813055546889638877962093335726638043678418465156038274927837476669738118922240280581835085294088602129535044224377332566206538125337421768886222119418636803151922319779577721124327134804424079476780452752015011090837216596784404303759767406090508108717383900070417019604081841076049510470208873260629424922322900268484164558528569134644009684803631523969607266231422123942181646708755731129823191007724324236209183366202456660330117240169807605008849138641506446172657992028108887542624969937815900607944587163458833955635984927577514874169341837262311340918430797631757597554452180242465776315628244568263300245607945386155655783110462459524145500217924947079175936523392737442969002209825592444685512867047907361271366748434539544698703611760473887917948452961837342324076553567166743468436615817931735997971730594661746561674607264126241461648383752736771107411161599147692090053905688415698856933006336268227688285024930466906999034288736277324193173565387475532604555170109834272971787680751674320853091374675506262234221981309645262964016300758638502976738286328954051812438973391426339824517757255417824497024108225512281207758442575468238165761384700865492020697740390211048334800657044427385318411754453807982530586269393123539207950116037635314787087890522335577885072348900387705173627812161427471294674661007863945553131617486608197123071235950772182146404603729432664355412299569345068933100374332868556213480150838615106012250799583130997275836986527907926013560703378119428411742431824598164916457150863545534931397236936318080731606063505141093254455203052598964997983674469896478780421317246805943689012378363513493334684158056993072514647657764790861524992936378086258823793451406247435503232484490958228884457662039479497245968336401540459929306359149883394647036395369817701211731808243303450268355677706867230345344945907873044078464949875337988537326649514915368490181406305070325925657427615152280038383655518798197445395886509200835758641144854118595702823775784809145236361741620336534265397408110457903562663816141603709854101902475904803931520748534989531047530749806502031340693454651865526960896085829558168608692103206875905615377067932366029801774953560192938539931252071913032103391982486848166007983555523868685076105743954926497614862400693587781301366323806601832478540080196538533472938774795236966136272548223465827281722344292155571101993591999615506668925871106948002640522852897034070766506828030961319709356971446988386411457482674458774185320873639410674085945138613818276708290590513536031937626380059076575207123742229498681855607684639430415895369482911220787977474669576988191231022440109182485240496401014575801038695477249075577263339333162995129589003140144613681329028607931614092908670452358726874313440412524010674420498754596210669359480642359038661392837070170855002497928309176034307346602887325207841682143831711701886906043822411717471249200804065703144390331413875271627596429391015039745599226963012178349032475223402669794748707281198135649269811397347797820562052198635098474169390490387667842739079782246217937703912781275929194430313208571338742366043603292286718090128757147235776169574270181785994373383914384889231400536432728323282994154831839936525759927497918872474512578184723716165500488281047016720335436581222078699233301087824829664151507189363616954591209533295095897206152416551809574285694806122922333850503327813021988806821738237687178140896018756953975790992130148384415225708344936927022147851885518856994099477382736758200972708363189021538325576220554917042320487547257819359542200506509070662905927838021661493730469633623796500889714351190599970480917167549035156859232537121206391580756499978891372860923360298774689594504428215660512025830258795927192366567020585438144105741109910460102084782528409355163264237983510423843786882442017209917554238078079749659420320368817714540088804183533195421019612007241295128401792169851812739658878458411604409809567474377525013973713429479888845519681374924196438455232704848456507520685638023204312797131860154578657988880680357764115022563425164606397985410720341785335010670380323177303881180035001544252418551661775426376864536195087486215894949118964587579825982665875986471239264985904598471732740185593663667152013133231254479200705366778997992007646689560336010133791134109262361705346005330152317947683921123338544587919241167209588625947168218621956079058382583133428329012727659028503950936174769711654233704593474786048057590156596776709587246365031436744179386007715287741746913613641790328582287233027942003619766193563374079232020600174825891854066145151933700563206347271291746834496979836582472823666441868034308152680933562581506928715445695577689629808082826333917968729329547428388801027168619737935835467220151432109088633697316113416739638263652140095887944433272071660902327891265984372114428546160354475426459541709969579784546406555404269647881063665100269732046659207779098166274857078923620945369881803618179289788693801156353102592416189269152385450485697375655471470319627401280663321356924676815704649292968993772825545493962234390275544559350397466435389912525732040921400338801075681045359619321838253216291790147720073006862937436420785646949129697795635448212493427644122362172829215539324867963930824111629201145314166802071209612258321475806276039588690459376138258981650548458097724752400059552385150052631376888018895518807702209766309478820009778583504621824661519943629207503444481502772399898758700462951576549016444434606724774013107397504831409604113254333714371845198071977833476700047654562649968924203746591655566227133915187391976893666638707396827560338286990007102743687120276173372876635454328886384283929363078492497881441676076928333475591724087443437011106436037476465452035448237347883714293765278974461644393038625920297721012707530347338119068024988504920053757862770647460020500218690625013256553436830527854749395423348018480389495711055247664869480866769090125484318119442952208648093913621038188511621291545951907379696867921838949346365935961004464049513769089578498922636655645549381680267204992208932272456094499277870253810254972585781282952276463415921354831261956080730000814731271899729030401088722284441389142100646464467185446073093343306040014908845719524029187453759017688227614217704862403790155255053056947691256578079251624516557772385399473102446299274835898240826726097208161736278932869610017753101805303435030650907310581394985578702402354111898698527902999985170613217569558149474302714866124304645762041612891042737967465128868555283471628590120342974651454725926064086168370711093433181992610879484212283208295088318379006041147775018624261557846174119632806642355137688392400036018550585526420412203242825844233997008054798617203585200828192633183100103364877072134332660830001586147713712342108319197474484425255997081935528097335567835852520888293142331571696660286485060270122491671703275950185319494127943096601219753218653940631927516999119885235869014228343646429528712616174400210107576503787710016964437406761675000661580153846766449495794454902417364245910874917253382037164619040340191422048875064498469134324485218460226771099572840651180378767043670969610474969343019641851665501476797790758313293493868895195062684866182595824526234228721722430027985086751597188283598298639420075617372875929872043151891425903660940495642013610082835380592201208087400926672086423827995339160940294380034207371362635103398382728136732301670598385675812334118748303709397022914517560674679090805641634797506823219519902693850146992443623510174906694803207141027235374270017815847233160784061445050833099954736674603155913358899266431081192215404946515038614823234136035972364322412000327375942736749181571150357186054539641420252734699854094722192657843352572783579115855439248189763403195316601631782405392581956876144698765477930760507746870675944145825580711754423627157943693616884793075318732014244672310817303641195327279962736729484013958064612845389229780256458978084927520476814574737283756000659059657015296440525257792165928440030910595785169365993681824003413780786635227382323368621898399070052415371712539051397871350716672876987688540038110240137612390367066014932041270910434733015253860879565065616967740768414384513526100953136712667562991145257420746255618187848733646837164249266316934499230407766239259023556032037116382966707364483366493244070980093504537224893752039439762925107099550756910707886439928822374167156955517333645768465135657931739003489045456782249498272515414206546888476375036237904620757151704089490947353486305093958076187959348348717150384387137683441040085340178710903519846909402769604217811196442041634113770899153836959251130018939463811740853743668658704764791798889544880080677602260285439370809291698239449871507852186617455384248495571028587800125767407266946958178932746250790988938853400242202570133463100612839651989602385583306268143981971955523058209246776067909097547730820652141326932705058264584003439119978212866086811380797328003034434157185305851575202549389803558038193872714170300856146167430747425330657310100695865102654561437375788250250991480027983673086314863942996040747635477615671670117767760129827742665187854251357531568340627042801043144938139009876076800101392267287218741012622115053489220163693702953686109411603341594728761733661190877440652069271989876054867998788494880247688363005904950913384996883489344887842107136733404888220500887038534144373247299380317647816126509282578705093417650081126025881129836285290237275323282417043335978018170894665728845446996707599661385797705973322991557211277219198014852693179533157621775580451619597953755777874306979012460426093915148311769904128987179867897593438131989128411669495886495439437355944537465725546944989733578219279675714630982395434384165449724190944358685986693549286287981653504328605937781709606444558416839604096079068304810930713836131955378995607401621379961962773495403943563521570865161978379385677180069409864211917813797873378517433971734808922308596279973633589154508675625704246238538890390974888786152870497189946613067386859327795949410897413968355557552261676582236193134005068352617679554103702088115798723066991607443569360102337206041028409327717828628617130797896022786984378391902640297393104000608342725132820286989193816007352320954816954782527239411466953605023964175797863871780336229938565342383520653316470352830152579321841847918878563361452876359260222094986550532679942708939077890762971441190446242109447810360177813050626296245793579387955181872059181069838801142004812478274205462958712853919927091348913886425320144099434382218126774289014053334913247205606112184721327777719120648849611269729473181621213007427498807816729530508267963729454762108396906028935459117630791488969395071256736885195980880899769031076629795107097858349521387264644935463618421112011481846841602496206634771656749032806966751265457952131113963913689021998182999858125848212881047251666530526852040207461753683760294577791500538140437214064780714752147077137656802823674722044333405458970740273725046080121406132721414117295503434538888920441279081315091663545493254089700353689930746068258334633807755334647947860744357846890651173425802054614764298155575012416203796851687035504159936406264006332376167970991930778755962937961274962498140550581110138411428764941170686564835751983325550683121756290356760132722254132307568157694586087921062006488557872826805955277800722992809759938356058891114994813450187217865826198507676315148547436489895948011606175246601449554174436451317145268318798493378374049152417860142271807180268182354843582758922963264330294706636967434208307230440839145207457113952228607716259431709629311589191352697199461083536974054738019007133043252654473058320810104606101086021149728678917271817247206632020989312822126644925038705066859359113831875118141559493022522984524536471278272322501629057123110654930396986056987072070272085634653498387475656843710003161540132128958151042161220159695305754737086469013900489412929143574554022832682870720591844238769367996838411444838784086896023705227416935805982278089790304814542396193538466714553219125619328028360865893827335891142556551892024019664958543512358091609831643797239594515410674047071467216243942079182418213754580353920774902491176965972638302407848016401050718710667919566982996909393534473004655348047546523616986425099039219699215687071226863182276011902857742289215828275639676829320938680771990899017363473847404723027964926560343558534394685229344573548134694717605062908604181143907246785359504926713159140936511997262095306092024867779668606936332979268530194775421408378785355713315672040644917462643310821382881521620423349887127568696469819143888921234771902297169485124379967142469158777288807248122435730291875788195178822167574025653936316880480154371457816603944074280417151446802806700665848601105548427196547002444282817201571096900067571038149785067770370672757837780105272849375116290275977434546340946097625185561715667152795099150380528536968285056388519429463263181440003294792463461712028420900615479837762653398117893710564232508320141701677551307307179268423498637198654826453483095021949258417310935069273254663559893943838143211843527574232150859406411479283311100913923718172286309566138482501678643168390436659731718444180946342475132616929676501932207244095961001919200274471650277097410299525596967519156299168818023425717222538908746228696702939848030127358167166086758453774957363875530007693638846402839877181240090567220647978819178316424711991262890890050589334781759122753869395461579011834447384737821856511781597033242489477403578052131074041932290021225496525111752865554058286421032343499267537836270216910509237128069763588659266991659866546874851958726060525097703608607908358476548047844154685597535659701182918530492205477830301145765741316910014378539264456423922109709567372770096948727210535265639147615891401538915753764778764238635998089286492486567445167451162262735986412282692501999330600431170828930856841357816821752020847436676347687404573058430400703347264841017935940669540355471040865707627491788511280766829362019212732237815481673274319685588464359795764250919208831114411374778316554592095006906094838351863181979624151574128955190320864739262116763997254945380597761602387485569476473627799346181077680373752769797207190872803786424529326316771458378161109163066162769320458985354434802720563153800747573506951610068184652751727341023455470927182358285001069955802789336747728844950990257265867291888037205369284881288763566687930287871638463220623146293666864095207578989998980009570832207016923333147198405748183989437966356318079779149619553804526964588015039991470029284320240878843440438547580632511360867285139525908581000322460721346153046424463423752625264269825752009178546073035886619439512237501352961292127642937765129532652026932027801466492433999562372682721417411193104786736164476674658282238102372378606252630288985344809302287914306514217316122171142405048188630123510127882067636400095905098015932344914950355532596094794420095506827929070688938472327564544847239185580127722663661927330964612832957025576825304320516517356485156667077745030663605889091201722658324310101783218847250613445599269913330344929515603425856467746681248458406332520172372941475333618004951532547664257189007189258385304613432813018310339576226211203297779692256846004352048256250180645215871565109910884270762031908507519692312795181094256953394432270796271278208854271422013731324167122932871436250200971245265582257466544296605407578059865406907450058117403715746846349464367685873333939144666538210918136583612340042837011208647225005430184144942590523430051858587720520491365491101450325245117293744430080624723633582170561434428342350382647649001229860814688389418762170254306568514458052026864011698550013260543529148481292149285577129896525458578762269588136433888276111440176079934988028127562999381845575415751024456013686369292418046845892761340158673229838546097240233195635051398525788580694327935928848209300203802158830842816812432141382565214575916763198035557937473138204152135856592606232010325949886994619704956790376447519015641456181171491962767564182293450784289280101746064371179646961839328151824920118527352416721218319552838236482757677449953873318175167479375510348627208040090615873983452887836377251760389491845612415501093072503182508843830909732588028027031782502037371644828129335540395237585149672345719330474433892470287117144241495577989448983762406227079246918566381451381877986452123547103232475890297262536243354447265360855181682954618625284975799373807539255490738423273313180875308295177925424706628492701661352988225014215380833841253359944282654925861601861646082659473440273540357260171316042447660098165410215014588658309750187668426802418879571956774729547291156164572961119764795888909594560698442136227057814677862876890857567582943270259894537470998140484752931474415350386744843070647175485089537114606209429238883195393689295995349444772581803141757198055887409485845219312876447660895909314310483290219870198324591802070147892255996817527997924879578097397445760610738192151213401347989892852645011128007097678477342706015802433453556333458352792750717898003645626191460239260370370065197131735859240526177495132148740535631850309206761201533640414194707996826296913357958394162682604465926323782889735635256412245104992372301727118248641396374846840550025984662102846024836682761758628202503400483294708577110432411396956357839424663431801446377264322951335342363792112109164716990370115852704497220226051543429365143288379915319420311524638845324696986116515512770017629553572703842407147524443632771212400527079450874497542764409112548482978986993089672414456873635229241434332447314222932066305799913695919141293572180018541349855031294328193085231820718196586266819483712777621855406647857055590103796812762489035152197914418787422434433258385853396814057494356659713032844001635235499408286873583076434383410156103874639386091064369702545231460086224786033243358054243384549902592906287420510338610162408632072172494399666637152141811160457850273369711906090744190698741038637390925746724263380733012559189271705341377397308107180499448793223531193464506290659285375365763099363945025899734958821331293720784521265179889702908964486929549473007420179589753392012726060159069015484241527577466064020134563961364511556875215256476248421671092628971636374614642219830553178558973129443886654906304643621835927404589221318931566215961503625966651528279559448725014103320068863664837869712815718802593390048763930033939312343877106276267097976668458610794214658913399951755947240866106728179796110782005311287772012280525338458489549842116094103274379380941889665202956685867094573966394032235358184450878378371042314880291254741575541345602367528924584981943757541617972256022035929110713474810055613974024075306460622568803796595095337802543295422267598506992651763446086004889852192619842830346510934969344887239707649241815437568854394591907172487773549272955459635709890986147063714300032995821599950983229286134927611957792180042602537188122014549616823577593712052823762581783960934245808342859532755186370377788216259742727926491160195119207046631834463510152578979559751953564337136410127129973016692151850052660519705745553392769774365538404851510560719420509274413242678000100334038810727524191608554277283060793416665644412165961767848195616950848193994262935788475149132978891965016329620639612749970818775092420125934503834566343032248873044281906473656127599530134108986495472017493213540725893758198660066680967468596611172780434965861924347246221340055163355449758800300932817068596629954202269246287197884416699025332349168132214549367964417184548345026472292255255844745255465635383188535956168822928284075345359459040679202770112045611832828301860706681430416121695970281127668858125405237200605050702977373907358456534779140048968556256926129598070891255467977617747600640290053444952706006815505607078654609838076426639358131351825088678747095281603870750700790049717066812640371523895560419706820296549061916779861517646592345090535762116910663503200251310466053013125519311037723110540588064483226840173416736322861682600750480860947840588111954662570059633577357436364121765619315439980613835482554918158441067967399742827333318256051322060697160703479698280828713339891838109167304097342500404631167152149806668739021636852642475653935515788307383859707086295289512827804588102403326480589335005840655613523264403733015857572475859068624725195100449644662741963965670181147018555879701496643884753005970273713672757147556064559798769673983705645006018095897300080186489636882405321420497628018860262498661864946367909963855485640547096126234223481036280317806681736484259968400420064530554770928817158224723859861484097577842096584531056557652003428916924230017921742053327974854555276958377185583158612328529144910690840875243033022408766620019187563259211049883270871216662345533338521211161983867727557067904454803416888902815726162988208663558351604216290832697620948478262817958835797055994063799924979953365484991489490643217149439464032877802679423306922454156681690449747813874824411519170583056314321721714742670850848853353482895061291652540673261887963066348725853402798780082702484243492049161939266468164060463239833866537339241503027641472528189336950936133799989732933286773416064881390566706405610175872259302714911562477457047509765296606249885201274401422959948615622293308445413542854146580657806974014954166301258963954699944045403889815145682941423051576808600927101510654491607008104299821931456318147633171651227894061571380506925898629574704555481747459778878590620249807714487055851895663333441717214354197136978610046417693298999287787961979503762201676274172417534564012078523306586051844441515832620119748892001945342291611049475839132441046519487619081429401345250793280234617548605659558648656508394921597413958319907468054952424334616665801264725677438095626864910471454296109436072775734199991781124365072935161340072710097921515191885257758177032190902090647016942013950210926070987628239663830633194750395487959721152621374026584422879860109668122820359070096737290812430818609238304767893130582748369295716541079137030323103283526332579445845004936958026298563818032446230271404578662179240659907283132674938965348948516237580635490319629035203256571335477777801467700051166771099039941506554518220928200225719375991909987191634480666031618699689922435398196311821931557046854348692979985483659543117643948995612962385812865069342058878661568841066322897807935251832471827264890299018698682378950521240655170059171007063830263143629088381849877181124010865619707751389925142690198059364383544384892889231413859931286481096535526537771577720793294093279297406116491633862900158384006600234246458363526648273787470755101606125419504140228887327647301909285363403000994235740594039530966731376474373968727733085469002249054761873235187988264735276834329399620388038065813360969510759603877068542914736003160588397071012878673768062096344968511825760638089257804042906827913946232201298000532364162210643452708259831363185124708019995019249504910381464447314248436047102587669632074340581719558214264951254932805488857039256042802949344524260314827368100814527555786260676516287038878175956691667095009745950923263127476081476924259192121627164521930963294745182858029566634021210523198353440954119204740678025748901475660532500397827961019164026163138626424139123819695893447043976571656150548971646835865108243593206180815019035429019153417436084013640800791879189188938901308029843849259597760918018613641931188272939742193873148626457459776576645302023676142172167105533259082178850263194773404069488881414441116955039357920402945859356188683404520249598354719208537235114766001272351443982708753788588857508271992699657471863850639035344820468924499780887494768100487947457286825083157694267808936646701443774378028359236848086187746163130104198682986499630580684997695312775968430028004379333763363182619072458304193335987946722775652624269930766972288510227451011969081804676021772668488494878667972003286898089271231963251808108380297714061933532244326560253260392763828763753301864003521446355406714191882244797337428167677245543050135682971142582725151187366628614218713793451220162711772381478052397731367218357815692135335357135148631746356040359091361038689631243053543149544373493566834754343185853247848556442951241084597887299753873260114026427695501198515030623993034195015750601365483788720838270930754832312407717809295713126838460867600742433016276979984221689480318802823119501112198761161411071281507490717641052525335087959128955562040029123108920170572324223177805975862187765707504245246168667430465805158436150061946036253338896034938879740499764090007595075199825800457961604981022258640272384217800884071382722210598223266229673352418818913611177884185519528829498763825155266908934178456345972259647911117763100138326537521905592832513724526838720688992283106559840659495266887029829910794247508508883570437237317565251728785037922346693562519477642365492719436159614083381564347246995496889926999293928779536493363093540434520141643257246229126104558862435685048857666138275421144387561303694813636521529998171937610610115881572860005849127722283952296296788500800810675286501741645717567606528227917712927068453984869776677346997054514347158433479297160836393083625463214664027759978016397096708662150491641249551005864610602130497361539536359174472305901385076274238651731138351781145514493385540758922204747916159017258501217569962462931680117014651591213512844044543378295204900852093323992872913076299573197951414348817977910887989425055782432899057030669490190811562928252010203124896799857604983120793594077563788246586438172582220364736967855856863390249435129300636045174251298655192612739255510968653142666799091337107249332889940755106365249866226618436857465490700228288778549727208471321790495832733478190305590912720033771131917875339648857843069668140073533536964376713429937970450730434639885930764707837958676409688784519678042091629251222764503611027302493427192355794123956561836957593455406558150383888324411511451931739931807111497014027173572641563978333365491965994805984605768391543245261871110935593396367351332323064393703084430384181593783322842867325161719885064407113262681382684448359796409053924227880237696419579972958433031596175154693629124133632091630281003150823496912349600403657809655788383298967654605921764013841092403747960464245103115320274690720628042257345381299885862788902159136797962234292306698515544628611346183106277067486841825290806424772846261872917713404122609223776902153949779405972263490282918467648172481695907307102883081739382264958246956400294065295987931801414470116495756849991979510541411211021781742144110490327062694735134290874311593161420896888004475641939249733810865365577581642865724558811890824977715371987366437723826753850953798417172410550516637611083931295064077280393515303223624590671009869373070591467841429452439552100233730069247338236071997935074750139740547546883114635083858977389543333721939093007483160182578420669426912560486765261912572923941395586968289449642309478534517400144903198990795997704618073183517300893025317866134639340777925807779706884994932085906510881513031027800812606338907230530383923064294312639419986626980974277705270521009673784760474907210654529177957340885825325954553476457611905312563986497063786907974415758518172375830387009272225390840165470662861424996147079344751069839709378239137874444244156796215903293878896931171199699647798810992784788884332277426689154454382134667969293550347025838476620195445874733176255317237718132872095384532872757881334508750945918210441529466478321538340100780733965318314297628819924367791483811092833992130689163157197029007187888087058346411067538138227978504186904238346120161236218430658299756982397736642289079163725341473857779760953479244222272266045062828093068195286873702989791027500580420403605560115584868519646594045752670507208790098643010834252555404692725384986003489598002416253357362613413542496360218656302027182119875729092546923090380871211521322705856488426210289021797347961219833970735735232522007435846354391890918715542545833154687512649537235058206326980020462141433932689834625233668300787831509779946136877657420090208831245138316159197498446965230756380115066196051866412752609410160346099569939611719590074001614772497635709821813839918395169048533567965385116591373250020103113955504401405108605815190210464103956517546888480257232605866486819104297523139964523853244558966158911036522221841440657955091539730819897223004153546224609798460671564855404372474581067613102898402996963030927029275539595942562133036700716761892334962976451324797845528042267899797727647532877248260601839670557862687608449651071289366421354959951705087722424926023748206429276495543195041917223084614785397368231615099762793298551433639036193643712800361213426841845228211654789439561944468286182543233717475469456354906826693431411877239582249760440875172336132030467528769336524261020886357286569318762850385936482025803356324675581798932581149030245239672272637637334491403229138039024763663617502063426636816962574427074766245226011966257534025979342374920406421810732767903353488029668836663838497825886483752634262766662888116920769316445148572780112937713439772743610817979457938959001161900592482401456942547697376912641112260692108760708455611553193115197998233959613768103259080889165936156139242086682997123018010269105587259657756393082010589344205457856379521154993448968211700809905671252051541418803883779076932353851976288858716676492892003447450468137086845930221857221357821610223301340786020325676953959861650296687327901736013473950300038976599058565840178237516206387240805836354087614771937988765578167673011947620332559441351627539989030796619324623687676655370922384873287045852361024183967591870128745961256753879329931610105716848957096194124651129529848731325629617565350239406441080311912722692602103080408474724941674898580643401755732789258763757261562644916675985588852742927728223617713244292181733806676528099884864225447284407396280490009406796694423062171221226230024894995090473670768954321756714091167699304264309645568530664936312017712694871899222393682266772266186514597140666582928024205566176421475833967066857230091497490850808803134094771370702444304042403321112611841959000797638646093901343748521570240712546800518274465719827538467164023284003035661095017303088465229087101625663925437992496011540903690169736250098310348934723796109690308443090619181055002536349473875164710742758128743692425700680287164252523370732839221345194155783502367853503737692461546196217252218236427646003037458012375842795751609556152032461096501892537562642353166491229837812248173133044509605851524347716821639613010600122037892781518945852148140651316015261621979381514052777373140972634030078497765514545259777716726386236124408054905422859470922379551270808005476350638384977878509163459365739851778668907426688204193866644561632726302786254434274066761574484748107502904478165301451719580430151805249416340393810051104368186085421309653950295240374347132493462018016591461821010869188108739951331734743122963372542132491015846436320996297859916148350931208266382201341900989603550649243987844491411494295002761751987521155097043726672738477667186597930304357190275268413355944461715913182882819782110427718528198461206549748398997625533083500912814885763042018378948819126338462304668078222554853680828768401744909652465946000775066054088428275806373458423615737109434481356467591575235669847569202746429453839978820718565704896175022766656802827378717376912459248722813982484302523118081394154180309155552438748941223306813539902180229852053061201664015446199303468933733867521917375537231374329807613235640477144272336091031124902698736313151301122939187434753321641015155165975390169840827414671394501053279392202634833394767234940079687745478737655333779779625054206664573058671278699740827425554492043826043960655641921752717552400338141696635398326902348389464721528435692675316902394186086387544069736562044460592771990876098120575723887288388004988171089552356744299578676426218923128971687839349007089195671814188216974754083147465885972212890649706417732097690657020304805792927582756063586841936144952345056738945310953407058090360549185912362966927660191068908334998966577513756507545075025111023259679247500743225727183900098583757788293774038073576124714329192039130277538765520458252258539733570274295548512808780612824979926667117428211704077643180051359232557132383279144752131388481071258469670985625916023406485007909118118905834787267402905643686734472267457707960942070188770352463105601447954555191498786148321483503933261707060131109273053412390645816870820896462522998149212092826744740500366209717215899129222226433708395438901222241261935564027010452825164623334526270805988841696083644405692121964676753570721035751154911928450597587300689791761907555880736304207392269633812807004673914856666066221589135156365524001203284838691887285961583558159304956532464609304219517286566396445692926660075035372239296501845701612410375118911393903510630874619332788634195009564677524564284393100344325247667120074326796794795000231793177200164753121575567454631295803928057124532600281314080094945437129660859337814561246991901530854554134965577152023475685356765573520821240584764010415433522018866709656829039888358696586283340182979072270473648885228199222628741644372507490128893604036137517952731759810633301761424286849158321087550543224010189979314231891769872311412784878542250591545058809562579571926752249218110311926001789985305740446030322695837908491039726455360509553449658952116835118273258940941872221881545222520774744733551263809190169446901277569295987724061983310283325574896265860458215503363431678944709300370640351687259241725385716299931731894430212702891717949284444670417765885946949152506414951086997237866569298398645119960306467350727441872028684079288888811519891844288943302496105634013449001366762398863309613687880283296229811178644852107873358106424988114173887255613266556901240889385321213397899326360380767758958270650906267995243700350562361081576189841101035677424694909407097761598630877567029484219005080320973366195739570605627175585434779256303732370975988136248431687533889414953158551873982221566996431353063443546651908648303492607362970469169130003870728401056009970105406555851230041946294721584218263087234697314172289893492088676025255082963855367406814561453365900438485162042026870068420169965438111254770844543645923056450237798581048245624208676896724615302135255979338693688939898777871241889007863394756881465911917555371623327437854862452442850463916330902995390397026451604549822079730356817476718638231382898066171103609170584617099183658138635573838933106891610751181749198675177012618414261863355451868626434523348726319599528514079300151534771604706137293791685610768725582723469160358883093797353719916286705716446194354352121002800312676153461328712654691895158507034901858091956699925637874317301069145373616736859241833759894948168010332394442794151410981464227862003219087655225188676264160906805930889894130150343028908060297157758463304358631686379214922587729342714034401569585602252851102186919758079546840618030500929045148749053233989813613979846089169100383461637094853306301504364634684060149519302196375455407086903177868465910042850360571071126872740506128045488194874303374386377305295219555251826308778563054184133642683347228355470383770055326123107724324252340669486900529416951919499475086181096701739649212908491379077342613877545798349024504304258108449677592191516215494171982028918927371326110297699867036565294286733858906853752064318091033279567925866852793021761907276565916340200782555256253711873159592679891107018676576727004225872392600503323605978147151807033246949215073689074863876669948342431184546669867218584080069866645108982506259265769135805624521250977130660676454872487910245709275102345726730331127296095866853780882623949462283259380044512617673250772570261994641927142899912872756870948483254729889816732095353867664487631016990795289905090012226373770833564509365385756805339873123881516458939822640364330448149793007686560764636879666047194476921694250756568278974481827936319994414290674715523327374973642887856125283191787429159718017909244324408429640026660352666000633506324998164517299685759056744647981122039665595787534774354379816828132547282769379141443053125961002442029760352198423719129196918764864478128201714500147750770218883785529062713740494483833175417153820098057299707845302205731740606260880702854764867103169288433538479153734742670016531558165884541803451889846129567571626657124690621979118184768741322617426008267848162394063428159557842059355666468933967334829550420260357737805741494472550756888856573585745530700062740847890143574727034382173196224512984002903389398216707885880686645376411150595963237599445594180568636097593559735878553469162014176333885537282580859642549723258100852412903688864158423378910531815735707872769474372981307269194046521266518705213402337007843174653512711749676643541498716731556355925012626320042417968568841263407340733164328830008672749088435218622595950240029719153683203395969267115645840275856163305589108885490443260180274278072904492182305034991467020572825059636012549284309070604420798164850088150259604900171523992384576820305198547622661365761362818885255028012392655220720689934021030441178710737968942597661206718422600498672961736659969070600331100224615298980406106277032473187000776086146862577688006028317665939007680535239272354043820352310664037338947698397772636357224064212039683918097314462623349863969401203253672814545295513927532803688113372675949601701413792007580050369597286029852812106406626317499954527811045326511585099870435130280457086598109626304562168628064457404634770993295586923370750000527760010898491031449455498016123790437584700605140070130200071016885001657570187081780957229859382851154147507403774847274989968361390998728952607753140337695947394494674575662786805532757564410690853311236995140356955204805057719664625130486468668452692718026557461617835710507236698418676301754538434386279789870689328420759541842676958321430303935241255475677635130848173969377794706374268781495906845359593166013388422874209256612787389578835005872650274766347647761838990823233363646603844770209124438281786441457830549945664434450329166686801718462391544193241803467205376473173647092219672684627708066371067611653443210281261387425469531877000147591388504711695906342794377520685846623226037755057332409655171426758846067108068803151023487683239040719584331217498649562037424202416550636775179652809630354568315014068301541257768183944355830064475396459023047044809212385337435926690761399770450554791898444098019665465997353722631516618525601366858573916831709096972420615006023319351944205006815229146998925559320256401367060382095986325799806061720464345224208715862376645051468163373581906404249757861163617228270207887622220094135085528143566837614904831488525827405500176632383662787084691066670930098514889940095860110706473499685624283446726805116600694598783909413286041204496587355865869897187554332682517998927178085059581126936278694514311706760512723031130987580867628965180734268528113712872095757920036952692819817087551907943388595108122342268436198120865038164855825570716961329008002389273802885777897915250691969254194320854712128219498885002992266218217693538840423941023935830964853778764280789378897099094207714982870464434634186879943482717356521728440855191422559513934551014141405068553811514183648066823715136919094307379520355597958340234219921578523973713165017284585698494192510847739402733665630579690285632732872488773706814493100660467112439767895232437072359376690990030656863677137449006323220912229391942495218712342439308895723734122555752397684019635314760328910662400408610875100806627200402333119481284484222833393377773635392894824449531335078199359984432073954860275098302845045147218315759350843384468600226283280773106692004953009667959086713310649525573762227989823958675551554701188803685645169260517497412215437958020053624472270420612415651610775536777418166303626526385709352142564721525599063222432850098467919454748886020272983433871779902131311033195963113783094034753152002916994337046339431712342941271187947054588948798163578877985940855905192499051131347781630766715843242983234197526579933684324885908138394697202127744238558196166011208148183739856419437284400943960772510280020614798714071193474289659095917702538885850052364896504785438237012249576634286314088387784893899389596518882753099201790337357637081387154431707729506442788088919965524727467017610237247503718146596538788408851883896511675192931905479709765035868299428374519115066567197686688270866294513527336993979078409163207847389662422173921430132513668311087811655417197711111798052596371077168029205338968628546516824787186551465359223863918777737314455898708733782743175760940376525243341057688177679963717735630185707536565867678079965437398765607063326338617155729876093571635250276427593429692733068233405983702180872355587589102518835095713346309180080354569318865141052817060171432802853725046543748817368221558442979830773193264738002215505718937367699421267697523285414867375550861771212159284832402271337277946593534027844558332187779973764002936109517218428706418402222722624751323864343923212470375357036336450612937179508831756776536340444020268096937874845043741037360954779447900935784025128974096229343033646526832319289948494469603138104513099747134231448505313759969377879194632724015519838119459920031692730290856248504149842998018451058944012606682117903335929216809678150381720248686667472255524303536775402453538553945149865856788525105990769765075964905561310114720326990223788969180497174052470010892322446354693665475918511258002694188830672377124219417877797498201442763912804121862611266022418954580564179897267033601652326017236182270821100985330163524752307209295967114878766552578404630201596486070521934077986600818715231236646443877914035656234490082060910999134168610053217972734620469103939428371461298928435600848290946678000516250441141444173781986182068263755966926905465892410900279359342348363507144204225262019793127003311428875355720235211409078937908095129540134320953689743365171841677131301432400843353797363663311892922270419003313496344944659493805528042105843269735732685055527709982913418188665204076168859383311508333489165852137190156823900685776814898480511241964936706277582891517792179906984034706213809778228353361985068857471747959860944580929212766440312080361138324339226754726845588033187296946897740039760387037368707041560978373689885727846334677078482594900589528445627298684024229778490051807242406937733642658773385349844063816295323695344270351055013245543148665767945846702888767377298379473311531511091942503166612710703594750120332936864352710818631604605708566134219877043134230762318964690495503687706603977246297973769743717079268259380775233536130790406945604510652983117901477726564312143037284911466100846796711995271898489117176429209528110338103695097900245427647724707158938760648145633147873148577218009996468652314693172267246874343103707496641897902941382614712389980568879342664797965502356046797269805716604503986900262141373809525131168265422811452678853443736497817021925809401643136701757432286939390231532702720757142804298047726975025647546103400195944825202796463508587679693778116232017489131590322990008699640043660715703874755286695534727838027004513205221413907139529734885950676283512592752162490262049315595633204258837830423092804968048412907307105304174407522287823094039638310622341590851753076919831091606868589277305059102708628958814847522488575972141270891814374620668093260680385725779709049221229838466905939749299536061095029699359198430056420071503289550533478224919034398313435840822830697133999161027881733556606961872139220784980270387654076679995161398685412488030851832679960514791582828242331639370871678596091929335847846725856880997393530779240735422735425518355165371985977901081854571780424539056695467556595373812071196864679594765917714930175490483417573199746916297229464973629805587600454248359862907463515255497124982078283681506910019859725191561165361435299456830436683343952004151047384044356998333711765050025236956372861354944030622090164582224066376368246843601708112579213149084538504790802968224175397015894957859958678693499392419012798018671392662943661592947944536359652017799126387579639160312034600240329563590618419490898513375906878429741662291099206396154052196934539712113589481387901948193005960149350894190627198562662313765087522376629756496739215606310870706655721748096715536237786678437131615794966297669879898876823670992620644354310907942179785535526127151552112461916778181872571695999251987120946389182191059416580173156812411882609350438827236283311364917129016255570147769672667959652548471923723110283644745489198127248004806291317888546643928230235460559819746183252044712711476119739905436730616383130083252620333550976260035755306223510777384636700150570258020936871905206761994575628648346185214959442738917015388941808343689874243460675538920615759700977173668000165721229714312471326637155893159409112113196601591525381203160953563774002208851720262211022847197665676018727649394473108343650981846346794038137533480587941685355483053220785174927434081923969109465285600896577078413839686444760632802423682910312288881353082572063668006067448482141124509992698627226035004306989692025304464764348002892599949326446924102546936573265750091359806858600607752254043267383524729860528383589883182358885091583116674955583937032601002078868526663524828127548056149223309136956065347937901649824851289492525574899551429963482847998018977434237225850122465554499240901502813283002433592080954701584702523096213959017735611401114345705759212305768053100401888848392146052730886881366256004359020164187547412882390971694383949077992355363244162532630739115768060370877822699693236593190634660620274783069334450570820856133789600316040129602257591677495689445426568200606954586455971700074031038792233270905502661802790940927718141688143050824736670215954251872933733100772153371225018730645187792253903883764549711591780269568283305123155605240469741925759510121723652462168248839316903933658144514392952249392286981419151869678499953855518935476166248827720369335091344075894959490831943309107417880929135251837613212179310353875997360199966323114987384966138144717294417636357495490904666029321974931693238701790869486304904469769312613686451058293064757744237032158539119477541795697707078086905054549545200569597298429046872372116549792748869364255670091972204654118097421137906154402913315288934506736403133489182335449614159930008426461435955877124659815910480663940364266390617327843930181328560208660067515267348575173500078448826822389723558625170568046557781331415504051110105008980376220016245666802692306578263756180824592669407859085522260426567581841054549718419074833536204725711953744109226910253912421940887490922901545987393758006096697576565656410197771667374254114267201229275665968471351557194662650711137290363697820743575370064844014583310535209238834109490026338347768929070179867002691429274970612764951515940165015922886575014201567469664973290511383156627912937144404526523405649855607414211207154942848237415174534792270150657906105509278983937761396751007685049343406493159749269519766975245928173410352138243753032806675452209092023078660345350978615225283013413246403047106409318096659914358756817329477261930258839379642660341888255227573152085907493228090897159417320917954427865997845847338396580926776086148719622632827021100721286626036947798104017084034859265689048662592406198817645231284477057380882295327807461303822966401139865353701751903211619004774944994300086488151298203125959941686428314623298619245948151555670281964020880714424065843946230491698587306204532347685320636223073365980419642416867329913004151989114293592958057134310585950793258534809699170288636569046062172253196977282670146361871255076102805146118008159865439648450621727425488336611179075698464704481490975964617471330255495277904060760205404088837320822077975214051387882507903769632660367090251306677939659148482517840989742862102303858898955479582388549424991558054680886880059384337689559474824029277170809843482849226664467411106717417032887952326113197689007064327820166437061493344869813704580123647934505698695228996366778647731444925698403786342367272197605097649193983360264274855977384063985373929926524396739531894817630440133021407729257281450243799992050162334915436709728550434460658881263534303896271548769221081107615733258297597495955001967068828774952893452104931432554384290098127042277800171479412616657812443294971672226415795886287773627748401926485380250728810024144709597597410113702697715026620049261770824657995591195111943908014791118055201469914791961418138868542413530480685946197723707766879887728915322882407149283476805288360445763797181007826634720871595363143598784457058684550532371810286949514912247715972697206984808177159993416769808314274823683896712969015620659759238664903578870696317648388716660780641479563411314264519140535555312151146992500714218974638771271989234300372313634627835501747575285943348897810218441889473608354285127554791012285309503042093067999944321555139320720346871602827634439492590433617190294220442006622853593906026345641435928618537473201985041129982228170729476027923421503338845720597055197895635716751970112955497002221731526574670489851895273358537983004235678646838851775768089450236076054004630425900855036667053002401534405562720499484613679439027738315068603416298293724214346107700465932441796169282246760780313802924012690835469045415443697957988605467399997661098439059473621051263744443339773539379257577393734874541196144112722880201325353722306868087455895887533567269291287336619569889188818472226236349313726871360814151269537877727660146349593680147534265036356860209589274915367036575673647872124266871957138437396677450460888155259318812322251476392736243684940595373547618022111336085183483573633744036130404598378023311223758541331397523424317166636664031414584393177741384965793871779476506386929970527218057103417146625271181597324533850863605505471774182422176746806279874515337057093860630742311620405388661589021223138992523461428937200129290003179304077493132358158940323980294294659907669278303279319493152816601994696594367076347325911864978459998072531880697075312993047674640422908581825190980671619066262002188730182396863681669196039110732315972302880471696810647572530754914874313255145373858070151833289464598156375352709913635422382427243604123030944045643998833163411386240510387483561740714097217318931139999714262846423454389655764892038284420472951828198903273585902971661617680767230754930652510503864119789918548584216267640698145614510440630366168225835773739169334933212662273538154670261940778152339267135623191508792016864352453330433337872430242130093857621111314221222474118693663907885900745782046386396374380236665605509525954103651856422427217439124962968676797090497586126132953988380718829432208347469155713003432693784990456250540521330744481895749038373980435519893988535749499130991790648943755008340519729225440649838221726455345590239204847406082092558222780333526902996558778273082137982908220454546908821879158543991165265669806797758528568966535870394370704009078461601372587454704068506826857547687475129970193352028709021455577738331473486411673756944460396474529252580718902801379878426708499698255745447173810963074602185220263889781647149176875110747634358200469841079845908919617743230005565195725197979411440402579650978159721851060804837611290395495823535450856733977104522151466041617045666008741049690752079164202561666459859243369875798525210088804691831375450151663665418930162334794687472343861425354376116450700438873498068919756476058884272247655890444347539117555328089977266406858481203070069217525224469454161133031355250795207623574625413797942227545568419566951213243113647706651670242703518805674113085785425820870354198699170223700198023979141239318622336298135923920993557370987324421839099760554407457653410970499185138265946458148479354032833745852766952016622295635361023398661121991579222477339484023659901069164250218795421534414377745877348585317856596211215183503388189681921103689592568272155232528958582401882045696492769752459758859135030618866085970482068710658654149908786031568312318995975015800211965094812034999183700553006702650746076202715199702631917016621638178530975126761534655552729976245427488345297599675131427265325608251001376778603258656168034548698306155969990026108678432304042264310035620727992634871439480400622704928968779180517161655948080549283291523763385948720678128696021143780444495813107544424913678057031169999706986637856464563862861418850056063558768007773026611276881248904962889444518478964273445596127657780720206317527076866725973662962364922853629746783754062638397855151130320085135433861206312563285476739822556421880708687485161038277963693268393493769211381868285890284372383854471762867403353428392058038095804468325096249790705521650092958610035836882410797302831154652720841840034828872151640708866607646999612881078528435619413545521124814445735077767551081318087147790866612255312637316614048358121677801122409293105710973084669755806939936640863549821884638985153530431102472384339390984881020560513608892162051543868838788591096994773992104720442612846960623549410896400216413482234510774973383947972155067873923103250970257005582409798703959096202264570308838355141882813173583066742647780014280536330931920352625583966313586414417975190524619534015784079517587684395316004365696676267462058776031832831930142804565240533870645143503600637124632216241345485441878468757350198906876817062643673940048360902799101887337463352578668856688703253762973320462147562634861015764959040655254598247085933854078104234236761762883957324409701221876237869076499765815588311050266010544105325043738101529606372442846794416451634914747576748760951485681573519933151417552516341662346698715720489617322185968962216469577771565632880897985011751414633946363933736904252206992372936836100583490993026873318232938177815903799856419846387684281984724309217939502101099476010133436491033217602663392795422038510259866716201805720402725271748303894569685519254730130768384874721854870404506469649821854460800794611813712945821885505873487371066114340953845416620786654849344843664486560620021070375583415069269174581271737901850926241669691673843549239221328899923998093964421702245160407608865183674855644951074112164033699286320991963201753619237111515455436885345919971125681577348921344922069981876068879480529489941668778323817306300681570260658606967483383806156824932665101795229105247859116774185576818128148784127593598536124118967433082082171735612802296894383973448911356005521507777254014287102478922270750642886971357523057226008477084542897843710572583477011215391801840931223498772049062601380430841921187537492924145235022651345056634519049557435491453289913890846607354252278089067406970600617353473607593414909217640986527037171291698428032802567371667420421183160869433539778402402713842833436579234646585389418655896173027082284678692682093481275462218707040357755589068689814154679720687509394230903660393146070258639347492524284959299374949786236609506267398033732589009974824307196376463400986391617596022500587586389455739687823028849925611682318824259519286091105888870641486736594237323705541666731392695757490082445702715288241219084375267182665649615480324526193976879750154828700466764167146685815801809509093861166694154658183215215213759658461153199615279666414528606372866439662357889342418306475153903338483824465433169660446013137498470067783720920734828782526622898104117174540027100338389975895233894833914797671846013775045298639700213019090841853451646204390545626602053094953860733344177282040737588216310208214093998149580188914250471811215456808185209385113644362113075140861703723076511726848667204032500804737561594659696943042716492301217346191992623072490914903127905450539474096721767968219966509921881733081418520189202228897295396807599194838136415527667383502902054585804451580985261896547070417821304552605155478101731333138591162314200536914068811844989965115162500636122834394825400896686946202545623035417520387422498351317313173494967952388643081764157370280706925866561217928357177840377048752322060385496056687272202565764525675617621007624474797003049731653414518083516339584416995569491844014874812730771928810782451635459417684560672968862486184955953379417112014003293888956273402099665006077209821194582009545660135660607283150615915613358145232799157999348699287064200736480959237451679617535362324937328260609860113007150949570435211819426474801405412942620877831754478768522526497492076776828942242235256505905890794104855818585433576162762425528268193667466353384218576812650134608108792972915526071582236513373806042110648010877120189560189363137857502739990857991192842023530815501525535904945974673323427113626404557420389250349343490976034591759581014688911699680668767329419185306783210022942045685551325310877401425144455872670774784617305568203330751692209427816585320162710700439199101071642844364374489561318963188291870489127111179341077419344852170389706968760185041496545368364355348478343625424919955556442988552702690789591909461665966099312058891665637027623862388948772064968108158056161472525500135472732588535117025908415441722956127194488217919882745285153547535671720440513507009659585137578738892340036350894934178426042435561181026833338302005032625957559352391548393474999829330330555350190663219936658208801011772197659348892543849899640449006598418849424396214591196775536780720357541944869518494724170352346309129041874935712684598800232330311750463304755606566719775371048407711481516674843661606874601409916588040591619072675611798672321509757581539816601284168774729276737526298509210138419501656551630621643337742716345701592462412966302439503288119526262650403955354785391384799098113648920479724618627373310461760243721807570309142904785908324838483895099078985238520149230590877875828784685557461424861146524498871166214945645559896722240613290470400444303766649778039840009141999458673292825112664706881617033624380127440726252831481567587164861367114412042585369354553262840495777100310706578607313201489380765513721232343869199834738189642167829357680942863832953908702889207952821546060432803447428559765783864020957417528103020821447228596869458338662798018817044809183843111594333847920210467050013772335350687786959566344993724826251841932838150420570632861104219825572335522969979837432607828915980599286569848816546300020712167539640314421351332809449014237337477952386131595972987118161021346261006673850820595111831627177817630376463043013662652658284557286367964455596618895926948619753723355726980631003669837584535570273956878477060242691618952899985798704188480583897747460601463354363320769454823704003594196181751848907482014358898159574534112639622527241532545621544148929329596179469264444209148633413461600190399251581984832312842291519395319680991528570004595262433859792456106599153009614414270832926535752357062693220024807592357516097382171167715480955656365638810485968919576432098382467005541961795550497096336919888785802713224347800399052989440247696664816455636619427178692224343431101635322812714498221955674800400302368040837017127993369076150741028343132449460154115848293968179501921061416554487316416207848945186168010133260959610500361006857150512236183704069045840042288624386560242027359324593503789432239222077279450714109391074760206901392884747693059011696415746453921405562831020971737700076880607086008320268530092751041801534745760551438504164819274375321033561499929404441963128096357042683597673390288901708734089500420298844249242605932552850597145043187516248260177080993144931917405728329566566283432259540466660779541114170342362986117683365986169799047407564028870504856397400666949291077425327680464293900667567569599888327189740285863790121235097901304100087644274178194970900498368547004547810709650173261004876332260461054178016468487411515199142333378668631537495560601864295202053922933884795678874674954142983489756700845835571105961501930971077958938149978691830966381316786808661024330050058424671854694717765744149480205496601424264880246052543585698370494666734088277656007890985971753845015654739846345099909191856884251114359643338950552732010698540041354177756518373692037344406085082266802497145852874395047696513399138731054068549633916026686604254541105236768800512662836927094688224950630009065389530938326205952914738171911131471905187834687428494286966813208952640835023751005680251789093078181184982218001925778214047113914618417312439554574944199215732918963264364872044601540222748769535895353240208320047026453054333300603262609569443131800748769904340533967222367032027760306081882312301369974719854379298529041939569862560324477541134909958633745371356033202115765195724515099284752717530293879312214037609728514325407065270271649609584604722922624998693409919241919153572341690195961948797823951929838987204320917960080046228830292101889155701645484991192475627416931340900798610016518430874205482659692198531258730038934265286514983614099733296227418934943110569040626027586959326456474066443134337849364213246541440670028096948821550000086415771299737923578813694559078239828003603303687806510785099466963775937111251928919592851577799535403870780651799053072984970988218146430135132473620703656352661446400775328685235267707517016839371657032326573919955872995329138898052515392903201978812924032660387105708809959285253594762862716625259218123256662561598069552011254063235873222027508830300762531115746764386432431983530091243738403388144463963842504188957098155510607569458719904925368148729248358493915720844615865296837005705555235002561559199803489119597554540490222281900608901519838873390274269156489281048062426923531499276848294488940064110018876294922669221066836060259645722973759098135088531127994421780056411387795787800628162288550705497249503884731193889622167407972557737644087915721378976750180104768053174206164183433818519347689021631454564911764490534001925178230274860469187673838300388725000813791987138811844466698004485077101685118101513117224522056709765535951059262592442499594871461418283455682357118902828545586434406772975991315785394093331690101584282957557214775526063107357800990310098095597514277101036980321807644823115154786463461257580231616130333350338749953812006053989039874576824616615932791633195229057050562170904609024663065485906447656439758259091336386911461924139972604327944894958598288741310532584558714304250443210177810436350237211937552319249502119855596347916912677211631257519194380429807427214544351836367666298536040433092683766074791064607052913684955950494891389125378003521026849928288130588260464858854544133818401025374386850463886723244467308836645773844135077600375052206213727212756470441785041617639590184764676057884910545429418656318018333203074065668139989200069999131719934499395416603697637857515865377362847021260283478489692882891054374300459792890527773233059219734164442418405960124088244534978193459044443050320670414255396727806760080572541426909266394518828850457946760833593470798535937420321939720495845791584276959472753241317328043580054022692712380106683446368143656023344206921800168069330201864408234829961998782477872024228791512672911244794877816141974524400164545786170711327833732830600378100847709522032533766230950428852330643103499662071338768613990920242718107636807350638183590563958472553817546008708592464406495991800897972077356629405309427505988982508099003927352784046523754842254126961732821821965708669883973962684459977634881908593896119945216082541882597616716371163205253880467454650584343077653789111575172541979679374844509466705614060154097164154231685737325617833356239950386165479949809155113709524054384228761970708131051818780849755027213623364100234712622917697457345720678436099869073502233004009347812967246252148417093692111237327423606687917051022930232963893562778775283729316146599627148931944394201861619059288681902610736386423945166587812557017991378841726009540386167025415149788423497517065054554375935837173873893445260672247844594107206883623473450468602702597821607210611732784463055654252786578752655064047013670124375950841738769068532829785253116729111557058330367011286175144162346529995386947267385398211417244663667494494161144725184356405851831064823009498302743479919418801462731617319349475421613890753552244499346730116890596574987593553911120638503848939597723515573266575152598960792709842837673455142426207432159660993841894410343364663353948467127959163474167385577870599476312939715099027336135622550694098273919035082727872545231061027514744581575718640580547185315494053604329065526915548693749081742496885285313636007458743934817525322881336717820891530995061010309402672599098080156635055367252980949992325720547778236024956109899359744571992080938780577118278395749528049077981863487435150774791548451954501670901290364221745002855523225163902473326938163778669343301757586216762303664313941728154902450934476545750595640798632905461785001744991498413207730805744821998770653902522828331986920769896773737416013776037275605506174061286406652988741282305286906437754172726815916036723418229475124596975833114762515113278498050339631159848445566921648227521014009315820971998474695110795310463920255254223668749321307248554545194948334985873658450451164306381729762972853572111442042617456322384088272684890147910077833993375700847840560696231777628541691625787171449670165769578670147524637314134558859815245970899655293635356442470682958884350219401049752008284678841851397036427049131668364585033861538961172100573436504692929356155567424219819105787885778677007967980090927861117907869140195533476059035173724585181166320210087427440472947605112974432319188643887970048147702792893940289253368324826342471200749661074768652867112161737031156798060368858613793166482657334368209112133699516649043499412613649318243714726186739013475256025951571537857278553577151539330168543741189215664276457698602719874174621024141675715705796868195041349804342242831350623433566818595359751770227733885511168003622894766577561146715242481213508630903704321246634914465600169570677824352454067248650370142251676044840275300838290315271285380229974660366120935364202123097851678975075724279275426990860757470316073147820237423630250225305250099354688869028176465109255583466916517118802883355829646336684698250944422971429824225542130835803611971965327241752936176436699991548518597768295236102190524208738007781227652920905483118587616033896203957955893699819514721279351270848450636991410078808329229799099370552741769445641283956169178997677463140566636322543506044647851745114679209510867651580346432259243331599661814270069860816351986676205614582625003329619585189313229768003518720574260850810485611292443282921033733949061146778915907557921438372390560171088139680434276879058066883603696105697639690704038621544737861219290447787459044069544207467097059611674846745726728863830889877760403807223012754818167165518900831122723956659884645094383577656543536763919689613120577462379889812180308139542594625234487512049779042341431345434926339641381065611612913216203484455623861245793408272178456684233897782918752483022188561408862312816816542292926642216488586364776000740136318869777899921687472325517818295208014010952460965867605502765358890724561953870843777003859566319099814706663373853319971266385487059660544155330015513537466372499507527463838529364575382322013374968729040545434793232585194842577063972521868806472741673049893421361558796372300902361115161104317219891327107686978406463703633736266463307701210422349942159540469315581520564209020119064547869048299970259413636555462454000954699445451843327872019595242747192110224138245684603719899115868841440277554370768664291356808868003840740862888771584857494071441131780765886325408147377918684466041320449717250645558337807307892777132635657976474332429304412732625115877892222356584669220916765803536098021648029351561256996173025063377193118340680806409797894549139342749067844920993537952255839684933147671378673271511533630587154170972305824083095400125051692480520596161243920569780454162317042645856227478446585376363279532472413477940923782932359691677648217047664234795830842767327654317604779434425350880503365983609648771687740657377032685695516900837179276724711824972709377195556978226374719875545113719588854729041936126641730400736377342578855592257668567139071529958466032334390810841618320896775427154950824203468922011804420504578080934352371524827784666629352923450334695551300741410431072575389434520277541018231934510590344993049747869957100902289226524240147748567630134104026039823861282594057235896512563867446125867957904144400542009102907880020093999925631245939265178899193083834662451772221794706566579533424973342638486447441121082271838110360769121265311202995651010727154511571654169925626840074906861868117692345093119127983095554590310799033230559177266729104224172604884746930053119587631831055727825012939651581591660657459965190900496999431091518841813192397125301077339454489879860795390137088382324050197358964637668450329543049422454312830621792493852326799505525667503524068461789946135971483250898095779212879994159003932650616335179795121351750920888969238938770421182417490841650301296688243422338727539936336340037796165795578170145213053885015963025947305595617586865398070986820220136602495625530714244635001725967165243608860684330545227766216805676023584393147564802919727672777908398844909276276331241194732374820214573813434847776336794405365188363966321457037153079907518470119579840368623609576070019742794807485134047669615862843176299890045306565494903132503796331028197564817222390117488383725863822892835235336644985645746331488412850759115579987633224775830423097882553941854909713198146930315907877105070111680460144825330825838880936240066143010929833502792148986689261734046319722490160707123577876210700391235060094436342274285831739389451241982137239848486273757691206798628879025864284267450261380321018418679602416094391226172245713793506598357724225721262569964798695880143963561702631164674336439433443369391761220600164298075106705221106187229658996501223471886873175866793209811248026474857645965473644051578463477568478608132631063451631389104201311526896378040959896886193777056960005528403721022628057662099530775179132183825820467353575027552530944401207944313628072897702923572742328808124873819645797468104849548955321744173151976170383819201652689389830966317531936729781928887707716076126951835432000199217737043945220949624777025319839506563829187547892808820337433909700431128435072179590745929994383273163359837402805061034141115111311344765152463851867687115740093221322491454831215940102327494380164820069388409175578128936579172152432209274310394846387729985980461472169515136922580965235885048054817132916692789680430779886117856356467421634716977026304455321683653385377169688549672359382200740554490434160530720651020802873481301057397816586217830569167214738882244879378999989077842830193284766324711233820062416457086203866435031945314850443116727407399914458884828265314768448451257580122345563780628051932776598483979889924802410667658578031329170718761222971575433858158681169831002463861871259374636814461145906105493297191824660063532936138391495573529563800294217042491588417000992508402376531706236251970404421966051018400411585155361049300786716595673382402895060752850326413045031784509842143938868305816791506919740160392728220329233758725858258732313495446333833832770883840104293976898952910242467748596535662199517552369697154004649272763688196878913008490225832960242498675624444466394585756329830296322755910647606844948418948871626763853531251761160236537632508250761047296908997545385054954928893660165162514691575589161635915330648238619637341569150595990322706362938634312783093684496998453420831811344784242413319280676645983676320574413206064527916048393260095174888764003434738432681267130888722503093054510421028273216073564790332847864360309386941063261621580530420552257577029908057952864190227774056400700829697357382866841043478140050403275607852551965964200532858423380660336405475031732645036897935340370293325680160883791213750606595036495503792883738550613624432903438342539599645886552620217034300599628388256720232080399420866608042116740320585301392737685525527029631715940642798700086626135375578385660694412061687458406624757137039736785971416216559275888224248018953246580068757518220733273569213967062006598637222484802523552464543063280748430670195237579971312702492431193039244908186014432394666402393536813335600960945386832176139886582920752083846940485945856993168473787307481178791573515112184529256344338991126344460271450682223554002632569301045117660873123514479343265587305441467726356923499081274565498980058870783731403327491551202499030539597623473803629154873736731992087384291378195999706563236883093851401260713954351871791663475884535712816174522730541824940486141091013671460399245906124831533048199013978302773366284858190227331948116447359047218967370882335608721577204806435696070436506760819280030044389639016404706021362100532944770770181431105264696797620062968468279526767100007161379716711977170324278606785098519245222609098978043935792234090792866002168056610301998475651843004262307854956433623975383422791264219856368819187055615638528108827480268229562506360124805078135682649610790011059786534157110002386094095375704741277616688791118200459361366801325099950500583305155470960827551058217795499885009503175900453403532208623219970927384171386887360364652571000034490773279986868984429092920993198016937187376412728623537300402620642370212816307520703368358716881222357219890198580158776270940651701789009646998383988295171359472808333224802154370885257561049203494177252854776370453190387274918798702971342731017830257364308395635948703089400420196604876840761067418204847049830046465329474012169612872050298016858767548238594819603537964524096619162463487912756924382867764944040959967785264806759029583598995934669260430955332732205630302245866130218261329542074483897299407863482093500024918741367318165355054154081590851245592213288103475122961886980313994096571317434236342479655228849704994155803508970276662389516480616652220283139405219411126451295739576608234182704977827100730527041124500514858602729999860091109321531792656867204829124616983793028438651422772075392906763399460369279154234569258730033938597961080906223070853310771087302079055406124203045368549758693412653443449308741283149687946636277969303459179591022499591366287169543482374257637700086741996779663526894410506811647171694897236211287611267672734453663648440614276325962962438790337987397555214557549304954384665486557944690936439052844307223585174503734284875347292264483203362640872814601897727018819490892119261499140712193395439840377216464939461685861078889030739911993585833332795419928118858288050929473842547101463577879121322823738932790881042246355477423990939334489834576327747514933067519256225442163157138739047348956628544326210380003142244579372831254848638389047422043300541480861774917137070435381276345076196767444648463381760901285306633812593708706437754251014461764441246757697648958752288556942538602443921325090786121382883157265677956290380199996132403399182163520846414424307540712387684938364203097892933765964117749828988055226320842236611290554161480593024524420112854253202418733128979410097397648684937821031157684886122112573418339341548243279245546873535259734857404553957913973667455793721447348250774012750226466807185705358482623920988453953356941023240907867390043115344063895640903699242625050025350226280286403809193051251458677730737010874059079098132135764055167502797784547571654027899055992305191642886806288275784676172112894004123994128193073879935799931537865940200507261777034643048722634376670575761851534876634736693876341177619407064884071242949343376305767463178684768952733027268320626741902227412260326079075024692508725816344759081861071461876092189724573981194009856281272646303559668177356524538464047845003144915393725073983285469357335501718560004642390952619015070378899143930192786602479295140695244881409496013248112365033295975342100724690849223111696478688980613177917584790343376585423421695405106664614360460692102056368304211365869685020368322711378919358630629127625993552197673080201102157936865969783518225881915700170301105419791870276722375890737460943479450206789579153452771627895982885287329842426553864187673146530272521900581382577445038682252568191744368171326566509183945758579803422357788339934838420325290080662732353066063305849690319390493450468103684113050435841036770420792555093665744991234800412035992334204442066138630562569734855894976189843410550422776979854361775889988097034079164805512755500000233805483192912312010668088990690430748081269312909921419746652233891209058232172484833559227393515691807538648362642718619916436272397504831198742056963892998573802919067110518384972352530605212227363072889950820280784693270850678322935400051026987304594837520490793695206832208054663755046397200448400342410910282379276226781718967722219450073497898318566398651674827057391528760299403565745904118308318828288369689560002617624783433229498560743997536854910546572671309990827837374717016741993135905419582943161125526497576502833811244448790317585851871822973774167295756181187718188021035257705413656163403649087771365512387419326445375480384396004819592307469998325910872606332874661689363517776021949553271215725394666892715547374924419795564191015142260727007896412519789673402928975972098859087012280660166435297838299514218649854143263438335084900030523187195695897334616945302704903324628235575843236739982083839255898775884410776901968748460982626069479556203681207011931672539567590924875149746793341569378427661064612885648295380023665085378964203504389887550663103545370951713687576778144133291223520749612966465610185159347144228759353344821056978217978937424102826388578056470676642111581133419583870850657845756664283709217642513864344729273129555868556851360453423653998430132911560334722650021896789184401868102650152329267182123442740678319618403542962712745145341031438557222691622240521601163219978745487256985352968927803054607151534774765237516783964576554861323107429813605272446329381930307438566875790021720391191373675731621807963312378100345843179307604750072255223279666927476840804385098429600139105846611045337208607241967542168217617371284731761644752955273381187797032011599882848516596610430986834628088833325462893504779889786747166088395254874730604626639585239266492668794885804205065370654090194938865700617145306850486858141124919917954075770905997957481368551907750751381200728103070311764299482962929021212606171407181671209101983305510584606747845919172246013233625758834600273732976211646352123744318071108521396800229098839587738460890277962971384692103545714176332193965614601235028129462897123333169566362359934304286542294627670553633861367927365703316780947111129437469051003770870293626105214869346253178976826500093401571235785332429118637058066204902756571152728882796816333477448757630373594139860526276438019034260932757420802674619275376532943671178315744077683857540515623026566268039750404909094959718499800060670091811843961102469613211110758423438427254772411636629443849881271221963594583102364126682377034678043778401503919093050259776528052429750910465319850702107343726215234270172463293513322344472564950569741023796395996019939255867242071566236614045711015707073005675128669157110676868416990088856426456592330922468429501479313129325026294482488872557409897234566284890750287142133680081658544852492253670889077180133743669355936745292776723329566094567436709867544565627494578793862003844218165035572335494000218404866633948949313281793231623201164857954992867089635675431472943038272910544064462329162124769739498985842699001214754221881948424517174005013966584991663710689252983633181773488274807067019241853439192416294514703265861603653947745822220712200575120311425368607728033928369853668045371467782226990022724652836977133156559507057501779166542233755154771602521223221259843622378057376655409589306925794915683496471332888286423599598847859461695652693873268182555008485421690371894111235025176471878051916550714861682952322012660627545512716659182036476616002020758993821442875976212709270642702124007956845491368254474319537352395949060359408110800994215697041722622571793337409670191808553896546308517261576143729869701505679449825582259347961427482199385166463494344439106158457680388425345356737090118654291878571032176793636135211407876681197035024949966781788827586295646396875869292976285931605209423666914090714985542378426245246783841686841328348994663556434612003100699917163860738714112299018398989136636725478805785218781479217982116987092397121480730806883260680167569371296078651130124546509266465135525924892100617197414566331113291676144593229777640275083848553075293800783197794908424356964569651814199045903576096843807409155891369975539793737382543762021329590769285281705441276824547922465416437394509423443760933894489200147977784866920336420489485955021149518671255555951957551124773682557028904402852950820250358433209664617512856451469451645387919542950603074626388073942208919814033205468758709692609973452866965815224309200804739561852065611264555794588953792691445250134971372964500262822918999519406643567765065392446187140006620550478893551227550133321090227255217776992503995232759760952718791213770799803444833977021450927698160145935571008853656110302128539340384105187103834908821825412310612130529051670271460402031931528190769764128762393663852115036397512375527319639230120901940108973585332736834995350630925273943477386431919958128290695320578648356417447459834466833863105843076928610676100823498985769340782740837433614072959095483001356375902946224683772995495312928420768899726097140905993806817117890582919203117393225436043798949820442196158496689670235384499661691523699453242145932055802579761311093586206316806771648045861058224718910355954892932327539077449473266811547588441727341603607245693502376836073937156640382625099370155694333479322722022337266890048779362700842268134370644436066895971677634220870763541561952063664686917486115623591700885562788797270698951621261494964790506198372455731794577091492461346145296027641728701596090200951908522281130511624903202433470022402628780876149459833082751618750779142772636666720362285902459371440609741958344644046543097279527443458040038590286889240127734061768696973735902253444473576063617632895661971855167656747317660007746171762309850626740884643178570693068080785488857825973467276446969406977464892124329357959258905413086295508061277327410270425080336121572847126909597982987852470230286380361812958978403900583686475709340357439869013747188344826541373141637161378852265074499845601934912940008153112266193003303261218735572538525027246862024774272149115749187720637556618946254204453735541130301396493506238206515110573745936673923683506621918834304755496641911232939818295479444977812117581797730197390856141788669918895024720930936199874108171477896957310326921579857467912027273972048599029047849726028248543927098955424240911953413888751013155164004919883621655510345736381668429068326613443801293707474382110533824786159650900596629418686157146473493013293456278122076441735519075622206529919515145021887034843876806762702786290338251164042645683096541984360172274391104171659297575151090458270437055195048017108513175876681953360590140101628365766362067129280932879797401312975553204797989879872408860516136374097533841666813885915890553130232797257883187510872956582910427142788314121183442263723647992827834472193832391209096415255521331025882238956179757016651505504311888112541145065392345770383635718598670211023698589452275876746523881464540392499659856537280964069622149353394313301859084427339832089030391369332882334170252593576157391412765776461008653040095831854822850360771207704562546517422697750640403590503702201748853228836721487242467912096992133064980342315304918311139362245078475141775174786717799793691622638470466905236448027958053917975200547253097366305948033160139045233699968366485465621054919483019186952063890589341970465273455375137941672489913576036203337170316744235683971034551696979628524685637255771853609183702876468172208787473284298471571592499472574556743365030269068272061784483024324166686422797449314372881558014863267101918592100865671043151671918877099662805620049979782624615712947271289688933621074657924898955896878846754998932231491676847568048121912469155207910334795351620302754739002157262044472002024781249744814625671545432116277418545965981880045779456253952862116915668151540119626226631326865025092398613658451833245074365164133444561424874161317762617924542193066189630435662394137484287420675072643345103485163672565836687835785900404267858218220441963158495373281410308173340451041135732924550458392921001447778629551368406970160330440244437571311684880840522718058323992415973440465289312019953794782603750781354791987478087111887516467369071222203573686830730403375498947683521507032978305304434778348655919170168516131401105300247392588710193150508801894283456248860384565006686396594332342613293883156082904628302030832071266738809088912485091179329802262090987995224059701703148146234903287701122381351905186642561285390693386033260427857343470928095809762770237684309645643890748177957954521781735466933437868436906553570982064030783629144761555305807132646433233004389329347435381424186822434215845533958322528041674528984325254672421343030915537163917320545615687925363733541678548501204247410948755944711128857004499229595506229712713111860422112372031851485179524956520489800587482781354172148140529451352500046160948797018688967088987121841886681933406781707616811405937963439093975184006980576042221496516911540144890745761252528766194944682542196482656720337810271461427854828474318340375821313711702304209212827860057007169396737810731727175434346300652765551622365905563566165248906047446871335282300703425206899590772922273748905821622241736826905948380410617972845869093123663515347283079503560874593040927560767496727829427326982378909712871962380010596385088887062803068007562078956120657750389393203268840853962085527957170375950342122392223807894483982762233708317302679547590434566250864253975094962942694252917742528971318230674268047245606929678585087861992867733998181793542239385496463070564952280633095023419859521084378121994908456437935820992102026518173059708157468397369955720416868732068452912875017794851452078533978234052524914622583538303835576248516066571828812156961930252472665703087253322469048280140495513968993463782574361421463999565788860728065766508550390888537209820970519714605863056210267190735879678134077569626657620782862256891408326513013827776146797186577279092251039818276241174044567579697590607299726251301269142315735171883374244226494856340722343598959129286682471078457411533356080296270076843792196697490963903986500878782845442758723836637181285145497368252189532282818016597112419600108574738672358183872828721551458245367336417743197957203095650706674928734712198131225906217742839491583490742229959834643388859876347963247997083577389499008971599909127917655541776487946350938000943398346443014351760927966299989667639354073903234270353330136505169635794104820934206500727818904752046700966280040624308127052481995807813371797323560532821929878374156860311071746966190842234406631651010764140034952302427054810506848777744151442919046622467686457657779061377000740938760172844765625865005431317694828570278680667341087780631269434462222987502766551950945253511886866756910474928940236112053760310787462312340919244156915519201601845126438064696093550487287669621756378467278845734620372646506147458839174608647243487793588143618113302978528752578964404079930845563925524960871069933802300471119145019333739980377077810595799085498493716060157303031262794098905173248978615036279166996492356988504694074099857977026862508929999840890798918604985736549937472642166936189384371680171359760128431571134146172341661338360524654721017564801036722435516538468424011337957690163014541488409878113599932874093737737646199971353153676375555162958554078444263081846304603392684153920886793554331410935829582512141169947779290163095061955101733140194976969643690816431341301715030419562384053210556932448755255061884921009198375198617988949149360671587762603185209474758560678226038763402167962433211195244725225668581389418837192410489811877854259284672027895501443880752410695442816969503863320019421628793956406186835179887899471624527461510869139237730902736233273053996527011464030609126110765651209630336182928174237324813863760083508513183398087058788154242767482812320765771557588403034258741757447610290927098534292016512653904471623368595429089895924388048821934204162611982655653410944939086041513231573507719965283449939381638813274126689714401099672539176675748473249261716599978525198197651174722476899865530583850594620956595377548694708292095476220150445717079572799598403861310659774420185995666078658581491874826713058052831684622527631626129254428022601342174323136093684283512932654833342468646031187114135728087428666267682803619783163349899416024823471700012896248757968030322122497936755913824393203593673564085844483652596366694920277612462442153937164859199769532058396972487966817079335044259421755847648375222099099668149184298528452698162673746469840979711510739803553602619506415968952693126700560723144701724379572720338654057263715267478380418606194704735281871925169053150555532174593112682165015823079228213766930596596475462386032276467151317651317634205980991102370473274177683909423074196959813227853673615632617115949574764946402077957133515995528022372416509155116030866986963676062274641363761827164957211074293849268173304030371718576127884864429820331362198069297971453213066614186048599450543141332700502857312887656476237084317577243726433437983317167264286515800705389702984209870356751764638065279759682386862112246291032544663047358817115307601856312857150723654462931901277300470769834691092157123573888918232213457869340408081097092151401064655611441628495289080056590044829725246051699931650602536846206535345768553552989613419546665714601665949261537449999442985992958348026312460689473356634782816873498213583025156406148478204581781005434061224446953702614448689559322536919955191831376318075402389798972438189094966105596141774127270046607159760601163434713085064232637252694149078507894637543481350970781671704351019065829693271147812311867213400565852786114098083275344615732227704162935708162368666720540636893983046582060788857689773481094168363280712545224276942500836969834219556337362869095216618584589474678733023589118432755545889383593736272542752523227772011630695722183860099081613888039285344289804065261274461236045001512988691509621377930737410294307305992130647745737669243802917170520355387538140670711545902746732494551680341578680802703822212124315994309793743137058019019081505340695212207760364429052512698741805202137581945144028321868678713756970706681377996085077826061550001768064833519440518414781227033039375907461928467201043847854910456352398735638409776825162012005091066962788577703879153867720939232762768971298330548468529704016839900306350687496482312783710993670010493565480385028991167250252763244089274912418129312748570394306263141283027881589000157840024280356744459867612151068051834526939200521142814530640981838652176518502604631629393026188706809316380263360045573579594607854587635631960290722025355764870069594929111396271038335010649804470281070632183533296149964312665215192598387322175999482970499278640371658611693777347241175855552920293999318238441110286662311456763644010905026141864559155300215521722365690594417457803986915157500431024184236923477938520104305796453508867179776322095722553382772491413882407956280263999470460272300768325120482516629095662304804906880023510145594326945844533140541225539202556212989159557450103893515824900184960381497059459049361959103483376551490760120397072950906511910027299320999366290322878810580723526228672247796567331118008547723189892015120539763264004331252022083298994268481703484921309492878483321045069247670520123239996685812067537919641976882295393959057368966239909847752470617377787911459446237385278896828859035415277478180139426069066393833422656372469051543495692591289935528681796495038311248545999099571894735165023463113548775240899631255519665310238661943555482470036653092685729113049344713583301461769121046776424963167603705276593136692751127159037819631501290171058840315870251579116644524738796791604009862793252293989036459513777183989525475245507561856845155597324132488399536054653341324394522645295923975269287997119733922082468271667486493537036998728235764169884988240584792410646207229484761964159276715069512801334621708728239547805514151959709529089924214450679954395754220593711144663620164641628816580570837423638572212825300477168735945629574183042597221697788661857198802878425636095787112038187999692200698260420770165396553489085826948284503261854644744649434420263680332460264541744060106954236375250626998097445055449093971482708246809183064816127701394554409438762127059258625473274435035114456768002813028218110440630957611182382580836700892911898480481818349993624365693062013187494003667380398570880823984947789664659212537198925580640318078913794280418965096356719183566808989447960861091847136132895557570510997718983219146197148618095857547001778320073363087150982673105810934032843283128990935315264734562960992921136075976821983347868808569181805609107588348360203367211207288532190760479793236248723928818385329323667170279384568270857109173374173078155366261814816585343266892154641115328264847268003025655639178961538900073165104019744057881123645589548906600295373900534904262915280047643983594517134810437192268416315487403775409806308571788434812787604886470489531288298833798793249873198769652672600951799221813218261965862268689866694383157458567820780957422237750784085321060723729810607146426792839520536324369834133009057868085334053273363429218186754144843116416986342499000483045013125469954248464231424615290296477059823522571050547614707018057505621884239773468323707862518216407411773136145976856699324371617897636842718844547934450347196800722948178623902963738441876020179003999048025633260798458356954900663225317809967446502064894525373079646221753704968724827970250668484418787608033185533651976796891900816751250914022016234184622983696142948739132780312542983714019962901069573875649760578500044587019552552008839791575859644209448289641185057624823284349508303840240885921688783481591070956972612135885827626649203582424926164698356415485425917877880425285202565124818456340067001650853466271190605511032349845820428812381263403965099914863639375521514914394822946817704593608899182329821594068894253338406169426547833845248405800362587303321172356806361112708300208968880777622722217462372116646535379732710573091860649199188151073401827977012446358168614913628613682410609520593542282193290679722591782816921910330431548118235900655096831577870772170943994421129216776887503779960231216156809575314024814420909560369990181301382874478630424530356448154251061479187791298347922238488789930707902433220751570740933168607322008799479400985095808377922803373485913796352844925529086864809332679773936243359638658720392249714371817076304272188448051090064140261366529593230956256450801918825587518775346983895570208332237254491111732967064731259863623778335989463274208327275381770239203155225840734278986102251122061548896048589593221173643823040291384330812209713436653669633273321647969927480652451823346752361844597337242067679480322112567324157383158624835137668952407757264770183810148265751456005099061086743731154754403842605084839022540138767794001895442857828274889636468878979924500972192023076652967540336087634246402333444090760753364726926087637190656695308698670102668497601230249694847599722415514599478654435233913299713903955153144070741895476848979342295698569159457538461426779569792204656767131502348880309669220232304608811377183740668109337053491025323681236571297925626215011396054741946792647806817096164655272249644847437470514049635237584445496303742581745082974682791802943508382957750040233627036893991875256320036179631627386174457484378264928454795565208540892188746121598044459769614836208146383609599540846818258326652513854703699940554245903323515995477886355900091900986036099559994639937302067272986357671361851658991091706855462174827980348235316108097144772306364298698889055695847766355934327815179309697509599490951243490348629774234611131765895574450123636263947470876126452072897492043588893817028783652217572918345187165648379114275574209324644942265697507316851201392281806242781934426384939333912866817766082796861499647048723745013840428441018599374395886190282817129805725130207864340747244107246293066184793542956925552156950461240810836384257301878687825972610047969969821235338643199827103862299163863937228219882376900556675347614445676779562380249979939335136966489396587733833941844703031344434777657947194589780575488584065989433870149161357395162296328675561044587481330507234425283321833655151523022580939193414438915285564491687359325065891695865947101148943733461859641352144355181539698865795137324671074243335771604270568380794582304385324567590398443518614190536617079229352165202352819185757917598248963797076678895752581698092579615419802892838432872233185088546007476266570194006684593361152977231101151926431987507523147314260639255096735423093267484461775053738167650927751420211593931105922269920013665055049834126297385821591239688937104861318597887732731600872657948830654429226368385502732219898723781947877765046834510660164714670040398553304024842896000746519294491800851733139469537411560842711226789448875302321656611002776209618742718710466130947108262229587923630133799539305036761066727538344739881518979892665340435212198597997924716831431987293066402120873680602237047892653098074254365284487863095524402143577561477737802108984561107141081712921435676898183669328176687930122159541502394126473283688619584863439757382110805477796826688330299226698463122240311654448619904340263388531334753955894587637474433832054210197452204377442564008213700361937198656085657576472442150303139966929890174976146159273433579184474805375390366174846195894843069757210108821389863333784798484824258929071462265753453590693676102184524863201515879896400320017453196060907018981590305744423113856898734506083331410707568243475701920045787920476335052165564706088190243278683684092502125501194611055971855885670923673275114425427815947327950147177698944644533750233132292061034496640590887887053929919586447396468334557203712817432916051639170465079254117625029853872417535172892715409648830384474813855122897054959463323641444787041344818848353259099453188705461449256938284582992552061671086373047049475908441767437291729201070057625616470848508120436444297467915321541525450903372670404112313981506234811165679426215103814088661234640583736525751214954097081373327845308429837767007195794433135278795344109489760323084618011979125944045462658042156128715371228773670739211011287647967908702204052982133226830435499817469279296059664271445646556490450297548905711899805323563010837848995811267698734482519858929560694665182294100187039560410039377346613986544777478342615506978203215657405444952530213629166641393818002135667420975504520844960974097203243836982433186245602427459491981051082613209628650149972345959382751991898448463413935061100144453948022939982085773006810309523099065153040787573641465160394782970864170507190298654321824452064061259147988721698339264677581449463159638108627409047138405072546053152546434448454343293893934169582462618703043774056673261016918651984269509427912246085723540598095831821414011403381678845833812709947146221106643280364430085416474732612665086065441078417524382402841589608041369509807134174088671456173159769312251135580598387613263497376569439042647765785847503355545361387255704639669799411934642448673264522275621415244649528394231760549018227780191476667804111680764450771389970241148073339790206453077287414659860977967508529041535916765189578433632274453264249573112538792485717949140186251708528381492104837156787811620421021257884313381517595715674921467838852669354658652247902556415591848585975372063143636764354911393942944106751091255705180029960684666211276999065176924762002647490636159474588310068623741245515575699407959409410072917872921547569388742532297395297739436640234724441926723893088457709546038031022283498386896463979102402987763227974659791646957311058526653582081764577110716132314768375813306503964186553126459707960617890008002269821027937113975620366951090701420990760281768099817125138326297392504983451606169979523733092161899372322190748760375739573227467782808648029525170151869092790759728185019422664118061401886514701813317552653193011097322458070256258866961318967790747693611861073799881617624915965235500285749341013692585334356715985231433241385133300724074603204581945198034002676188835394526731746620974640210446780218631051319226488704491158172409797908199728894341865197307023036250798230813817929281466176299067305088336098734430847118629510637853507230392237146549389968296481495963383691364542417695454864653720343414040490013401493681801419562159928785624480316755193041970309117645393779195929615881382931249952262161868652600252601835332497022709469757464584499243877799335477312995821405251749753557299049918270275169553502387024879731228604932337916304741759339340087842546516682167717093852728765611239247314672700436227094374552964481119860001206698204112338324004785101297515466350000951784641311844102965258821737293152046315579797109027040529914298645967142460120115995639022575188867907063981939774689868309263248663811425056758780500981937423540949646816387079000161450575644188680764467958416851626946049120275161334240058844236013311266207663072706310889615777193068447807867993786130492087790636800171849373070557031970173279497222523087397040693046080603443235100351526739788758025559683661559667078535190402158607749465866504239081231017228232740245454366425550838427633407013234976186369712216807321609956329737290568603660524054964550800766082852046088016701543053491953458315355249956382647267418568441797058301630849692377637401544047430959392592309589302992211292300272637367890115946022312887819322545505219007416549141678863176552289019494159544625009861770858162590614864947416471166634640716106911262910174679349586679661815954485097805568636005969134917080531154756158713421111677137939297915099765329882348231595225395623869060135036894445180719312243020708958555721408862347405281491632048392079019296853105401888924186788196855974993675454137864137199640592966816879964723231498093041224785766565653983987160857282954722806919815114328664983316131153205734502356156890672091658977992818034113914069953543046432032745062053676885618424974139409970342516103155882735414167607518753799670491523362106897437686855325094145699947617542422662461561493184015496121645554577546305770748510147892986540603604724619677687415062089363245928819729410465071082298156750749728611455655453275872724149426645829586727543987502874961099128456724657361203911722819311355588065169963389582302777915134855813164525378035018370266743593532295925063897146380145795417127502025540802727772069744283918002332432383859701977974602666381244807380024755895601672417803339895802299675631719124651342471414290091677351421407814313233129706157548064238744758494410728301684742039756086576053296423751252873458028030840650002352954811296081952133047734054755623665257564452117657272932275182614929869020755698712654789470568706194604146792553413520988968861292033845172533973994984300681762681579296298844135714477243642915251675288527278127066016170107302675777004063131823703825941560867656917482731604054989753874880001053606504812638502730066660741549875364245631828908539292176571169717802375891044609400973594095386699878505837653370449430568834308845871994438475240538305804761160505792863224015480127052314605910836472454504918526534165172989117052251081671613766237825983133295382750668194081513159285784816538691510100967410437241905713314309463425218586112454412521454404823722835653759459395268368165624087710777702359644141993967261689154450656047788683051817520362748388194771250695147193143498252642128846945073337531025227731127746395420244133717867220529337012554754403446800210152890429646570535450390208851104645520716127118524422482023636116268460006772882108605239648657673952214508126976197410522736792609904573139306568516755155449164162646835372728502523909052644092094678007481359393044085951829011171259187238908361881254597250519085965399690202549934861821593780461221512348562322181748766705454877033207643513640910900729371364349363009891311780859828297749995845351762865826565667494156706711870045858504714966853231081085410894223014520820337752733494786786755022367061672166554556139438249153975863625899874465229380625577679455086416208002292482188419745726485753456390855295985671118077327405782186513244011778412836977667779937576375739150281452822814226674644827137586712434511730851391685212402064541303913589044720182857442438336697910598911196843557790268727150730868349966449126036054861973752667955356481149929310591465885578017938449585189339471600970898499049565634112832504012390314489809094443842521603864299406396901288452897054681898244476933117910654763186552763885271085381216108850317807738546967168603568691309595227643853128561300572241760638220156299271978227377403725041581331856291227407180791032531558118503535683910893681432943397008484310567019052387296567450902231802903569070365204176041831470000903707329108290054925454175575537166337981155988074288314173912489758993581556761172199179836825685102597504911177509734924966951223170846313286217885428002809772917243327275182267260712794411056686041797978643119741548651586009885000429095984555107763374981629699990742781529692793953895529660378270415653184555851935531697742359125180575451043900403509617476200788340939303910959418048096020567156916835116052701491204408583052584399059111354359474038633100727129434189266697232446047846322986533512319942351852028134925151027516166251080533187989853732966364244187205435855293987195923406162307691606256385573521042544954208502436322522012636433056748603400588571009120703378206221900871410408743804062642971756007803407877331568164598485092674934847102557529679973786781194591313522849652872843947352002033238959184033297751800558867070200641346115677709543348896204955089071450725386455201284060112393240191983947255333181565076243323234916608413308814951051887266486045999368662168695799392124245083381313222011526723143668426477242857921785012653663041091965027600996573426102713912956333616741269947309540313556596980189475857882238007919799575891253425366255900065679425131589766372822354169996676922594244445488696907352104777276685440668044763166376050057855255962389524251824695814866782868904697061547409976245574925333439397019445788190140244563783470836751542626171154250874851193250795746994070651015568976481082808017330678054777478438225820541589036890260040556201949232664003670146292439093211734754848730212713543989539999157250216277894983513191404032997061970833446497890414103648604233153105803496918146139483192793036479004099311615034289162469020882867995822383254709099675899165706588225594024952600737107499625142736712010747197478993480158160287775406050362839470824083254212441161460948084145497977916007279105984698347317330209559955693116303402937647074553223943227906687157912978395108470393460526927601785095820061368708068020239055517976782809587293225072711390853617083960427595483862915875432760866357878164210526886757900524492363387102845362150389608770381713299010966915277805411327455129304967170199579241056915349479187536981237337778038310844934753853188086077889978812373499859492162794280814104866410416271960752509205232981184306060842075764395319966801739241712465961381613547474434390251364543115100987403389355386396945572681794768538195896141131956869290363337894548387400556637618593173473035491680919823257629364965428313464327133363595699886047668414745657795268964838603388453147117887488355776725627766662067912455060772249299316249422820928606540232272041128198700478863881853431628483883189976557949653080458385830816752780824753264897184641631413937618049243225702973733255123831623150560184475753296263148146345214289151316131409541390094270073059214188835673516934362498292963338511334119391738190947315728745323303328093759157329852128714820706543049908831641074841063319965017196564332915154603536557181232936522934201414336129961546013262218345585145153086623165779358578171051484671362622837500934796286676371432123271474804666163420779277621405916252582731499905638272158696158070539965011416522771335767400034541254785989489827843787652273196728813101880271119074526407656238410685441195930528931209492866427954123712052497369429620670704674477994733106690522115821482669492443607683832545610827741488178295693909959586068945885971312754524889544068408162045978422134152766101748726825744724251133519152478031840265938140859338544590799321688855772142915297562827471206725055503826186662900493319508540888246159361624918234283526698558891554408342166387331134057167129183290552061352495362783130231076552174562423116711757897612224811906218461273786657324668266947234498563883872948481475066910868339252640327376114670478563470235917426787443282943064074407820396887502860114998267321992851872950479916187582484438160456028770326671218608212074486797842053076204436532296543841498769554421941439575431396848425236769188466474962903460053299779331621290475910481973220513391087944476848969310000669264887835357148984234454723814511772303396503823974474424927243590116794679991264101918998588659909082046500786853855028205057409593835623554027293785658080699458582644245814304800309691721740096219851291153792269153747398303877082473829825839489064986945920562680971973204662657763991683487898981653895940774172018350240865401197837169446171723718829466687594632200383860097723782133595390217805924060464149231148302157346811803612124782062646218657102211328044885778499600622565455977877993627268684624427602396813216854443748604071803615954177744636844774285817926422445418332029517386491118582037691438740864477701990119749155861562713632385965547034047868233848512411796535133058064188146181711784637756636905053604594215263653577494457174295285637587332326085996565184288970807198362870668490702421103981583788938289158812900753306851177866901306931269889712813600184946869390705939225442782589124359755469692925396175451514646891401497505733119542671328357035779476753886929427386273400598916433298612396677276251008284206128387421540207888258427413833265359562574544444883663711614176929118514756115284912299223789005698952111239488612185971927849475985229914538252539528440903936549552584406456386009586753369908454480648247891128345977729087182575415102688379822137138157166263905619403625296632179301125511003165732804745695975921045433207546864491995370868203105603403472288181546160399599457176526854292373213355723562998590450872522407926524459813502218436347798936739393005347222327410617484162231162027412813124831721414759704578812669457643723952108426747333182988998118959896711153595530976070890018081364969535739900910557997759982886570021757378582856629352293424097924609551766900232034462248204921390705891466104356387243268256814071671326901325941155160226781791344804536045300559109676371633850779133389385160997906050452611277298813064579717286947327424068460751574460471643935759517326620760644535656343602233075163744799748146685539347100354060003124400432201974705501236177029847310808339971603310500191568166532349323372675477967297742087738587001401000294553285874904164751202753605330685217156213573669049867712343732616988658555090681171134384120852652970488049116476762159030207859941096188016427776430573698162209839163484897522534340909620987927633420340359390051763361089687016781100103311662905600691037346994652383243510278123943203576674854267188998412136723581969295792209055960040319200951942292945625483478119888777936508317130973496082523977958796722392612144036195376335155020176362010771785177002283089004106441617856292225869741423815544093243064993317917996204165040988868811162530803277301465564827087680919860845536815274419345681396139192457269020054666858539428821073804472457492852620661444316418342884762801237494927857150629799387934275247830386722631510549385466632855988691136932634914105775951316429949501823467205720072116085128452310060345905880110802005283229416890383322281967971415490383102125640298313116750130301541874571868201317399897318658744474522093138949961405969105122949524505700834882655946535738864032897778782122468524511709443038794201230218991265331787114109271079882964655099232961769256360993281185553856805424959646008653988748526712518771699066750928781213847519436143770736461909108618405830030250984442457266336843856218123607517028581779623706978054669550198923076029850558733919881746515798281985023517207157280262484522011507719707807932818940841282239036651199470958918764501425301726918651552855413508446302185749796045610856071031668611803526110085968720677525397609576380980152080795292332261916333233200131646503586487033715808204357380282357778188914970323089238557023078583599177113954318998954392221254301388568278104612766681717371812388532583839243813604241837252674286061273772917789395286002587549129115349631119658008377516291905146541242113249443356186255012660339592490780014811980301234216934631787656165366008774696819853065494563633971347971806811717283432840094474792651352206687108811384235199645528034263077407461409804473291382205696472846524830438151818205807082767179915659321404814002290177006015558581890575224430051596441222742359368204237167836203124552928199327748268456482034440877800337471733723720763913614113770995749312750132265442953157767378606829679999189686139305197698455344438091975881399587212362178976149319962360689201759191940902853280750208133579207724236182529152100383666831032814586180296661088263529048845292868919243661314340041941619281433377475809368200799308394333689459069617018709889995704853026227513068424008717718527888205880907891778530072683081579093178729130608917907656704876416445360784221112636771509201532585525894627024807944524728312987935712344631862608880094467249481548493921829947540326930674138377207176129411510631257241159491789539191358256822354484212525285556916153656304839069061192007976482146743633081290499217097687654786273482640497996182545163177617001673270791843756616640745397151029914258873624413067593005766443577953007733316467957476212969379261151337892219138376321057777936942302838992954751677060780273488672257499658988018624803847850915219813800004423025026798529754513661767015830647166665468909383710161752857693605440274732906450995649042597414984464223427130773261635330394894438323566052389910596946460539013331485747629957205270514686420184466855018553181807566508422586880708909381457961423648142749438663568798530556123338858061792322296732752540634958913764088785468781104575248174350924646324147990244117799821656792973675708080476818466425725239136309807251558991365831084259896536128047732274712337678064230720730199079190686734101092463949888100497879139700556471120014503100642916251972908659745435702350903477440459210138488598716561049953221886287471733863184781718754665041589952996030406636318559283932371194455673341102301607586917990525167737442507344437597938814270624842978576036267598616560223542684838813862313889039500515098655816111072070441955811902551154182423500520513261456185736563969500693810652087896373765079673037254092739827644785716059498714477784317418149648124633194753631057986582866189165466000745646586380475676588791879197321746151680397097461156873018177169461465511568417768828126674289503153973044350208912794376032721736505400499336475696622013717554303278020995807227705416457637197738892101342895319430856773985661392697383790135895052930291775783291537269048646977689026791653644519167557225546187263912414895734646576935004427580509222571082068229822763964430916979174788166750951887815259982307910853130074027966507222695652405483041506038887613164889583947920793873176953266128990834746678219773851534606586906332331088175903733041531448046742748205219278495792798595662051843780434538856684308982724115373723244603192490850454854865323067109518409747834303906733884263128779251127773795327760786994573166931326567394917236905749058232617657528758532926121854421581533677665331084268886039059305705091356664091485242474343249686705774199304959735611352288406854361058140106066708709755041205366030165883112067523867795156289460185343085884333744039365800293253385231732286858741316981411301389785892877120664200015752416464763114007689857722812698530710015594274064208948400529814994542929617030513651268255313385899934052396023138246961648503815288138975112851321569763786893127255448966413124043430709887198847210653471287551230637387177521356772913225701149807933235091842180534238148146885214297160580277892536428843734714763224233205642060896930413003550139060318355606293391594306910040416774173067942777157422300991936215461572241123551723068853038116426841704391449980424806682267534055580599281656753200027265465607018821998091820336992673502336720390359022378058262532986996766003389854301251710983159995585309648272921826386586433144668019363088860446419059826861543427787342332896320621104965512962822336343125032989606326579568253132639149899677785430145812149780103483607963449330371238896425374157824376691153536242084777980975871040027103055025385651822713735109145971607278434989304870319323017703569149861416017787946714970117371337721555657756045301224184657967890237076960106752367113217294295681325702996491613969776310347592440396762669975911880754267485518066869725311140190816700834739356349221378609080299458797629580283360913611696984452919009068354263935957959764256494527749527776667390533380530566062590806778321621447312285719512121366461886697353836926870637272874417158565440257276722780695589233873040358551839925382947185902247953793757558926681887752572705892252045901913764637534956661124026713346073333248902165470871932805416998039866881900998741791907483821096526721681979959002383118267640767768712776877434490504811337461902813886479543401373007789169106087591169916374906737103662318492608387983790239248624368054071926356087124852164270423106460352821184897759634049856181068428507087066049883253547533759478264805596659525511857840083802188133163108531472736609179412840015166531922194356007654989283494791074380877286284027670739325995051388877033847187862584482917318066064379638921430067191718153677998267468271760330812739947753781721985282097603581920034885701099105722835843078277564461665335257522017840914097174216202684609481495174874739997734292608058840148175167965610220339313404392719656746645839417087326000019047460548001219775516181569106428012587248966024413551548409519647545819165098507536892957243880803698156775222183991723579082199277601534041971176424571992139886382449730410704369323194154190422438847400004088193055189431632206559351605749587165198790513528290067109708584020629316177654437960801426240498624016031947145812856505395703371824576933513821283207574790955411920448815871909108068699345985473086926879291174672069266559597905027536079253719884122269457610674327705532232480133770190096137593481560632164232415791875204124530099949541166398329870629562665401544051153156496706362068908342778483546594604161447436268619878137805939698642652098065071240470708786545111873835489443388656232971193189569423278985146995923208625193155442037953362529669546033576140725600609538777733539248709525883766684652567840382034126585203568972392363696136458480298804719564471320258964464674923362255257685343104430385419697347706447111294430227636728184914479251545715611154241188503464681358617236977401196810589237948460948964877511750055302774051664998317229305108966500408600426722114599966886140206104414230296840329707682926904686535455087901434242802031598536218472043134851896259808943814577060858636715500130339017173438581955543198270056978575215476286455298104751980621526730864162295433171412716903904889671542522630601791407139066641612685572156113303677883888461655604398592901949361793029471743544405482516143733156872400401648409143535667518858135629268272549601745254600081591164328850850134244526035312063737703176828545343359259130829141539492489826824685679664964683620159936230154305044636868571049655125768204690229145062336687825474417669792787284091964417931525203397256346198383109772785862566067365905189261608766098849491297802389246157235537376629183808255248778280547611315187838940962606261576997482660620321162817446594802049764876900057822498390441650491387486237955983859218936708194848234781127772788357110143898887335687559584651225545506671503485314870918811793836030327967747206338011757965450524381607107062559154184949251155594414822337263935532031413235740628892796161549842948140884929222823197975072942573360674623778187734173356427843784994581623630059913301866949211823639557491367069830737926807943449667744782276817551130826725967463956730742545335759013246221382915516521438111809932241208752298061814970268369444801996635749731141666832256075998913476614424495325670160734169235606822035481332693024739528150182097608830085390792446731501980375392268139402406064117122644777981881929168881653962776202955080149266474798718626188821306239200437806513112653292241177598422174265966566188539828184402569881411280654416751040504833162261551464525407491751236929039423755187734990814114080164644995501888693051103962395237453106001400886594395379923992798639801562764872590154139949898998349928899780871863365694565152542810875561278329173510647808457578903172764588438818981587358241683541088792675327708004908115799161438993586025376269603861933483549389442610687705622303236342901904957279113303846601675126443757492047328884215061246497381464588397179367097028680339366825952780208935685006459171414168130220220765982075593948955772209457171620096573264594752386674472233505776449395933125959040372133262681977645349655731734536264292305276371259016326959511398018719209322434717971347853826289604263014821025408093917215421619012993481455677092906316617551168972125385528307472280642214584926095151288620341307156841010465683151276560869809034296198602779351955085859101206108782330341146938272074545790014689828222849197890474682241419060625778311298076934831419988362531175751956316137572805713913826277993278201597367097267566708264634655520341181740029306112755286880032659272251766730956427816020305481522444897301598946756375566914158009061586187456258294437809277071218156751265170130379317261702897419800451741427208526536914230118793322836449830981401724131052933201326682782981252492283550944217611103045322573927061416135413754610653317396209508207841220904831089108869494357382780874480292875951296998574605160393681003640269134078572079086145022733032882503195020601988495613479567539850836509646195188781345336189213917170993705058758495932532508097921299405235814973990332271765012729720021697777346321138658827210594777366169351254766601114004505224335196284564308210640395797652116053184981613891039470619697580479506556792236487174391207002059589354098357414491667140425785201368316309244698436838417825028179710166270430241060521840465547551084311881400667692016756217208699448854859071145561814931699456544296771042405042179699422185697725542484779284755040128525662069703957967021500867971672388837916589746400845386983049264791666795791305583523956057570693236471098126211094572330929977644760069799550389576834906013247149987309869968683674646670563405413499532758403202640053160018358839016627936369150029451871297014198696158190202804196052260626391137962155943356462783609573504478858541450774144127927415022882730368447870578428483119777775397991221409139331827560480432785594072742323040882146087821546972861068428090991688595025491577739571665391300831196249513406991942510138348600068179238296007587109107627876319299908514771346980430771756573958549167824544188464488167355173525339294933522948709285964159817223659511210215673053695218569347488528183063276921443649475629822054621071284286517730436982453913600479678287297877529122105274204473470984316331034723743384350179981935698892595198788068667380745885367788352998384073552176378740777377575554359344655548693065873377475134871791768455941330283410182053892884217943310148580087553882692115916735644807638467795088001595993122225334299354251224522315840527952682631344978804622687344575600850267881971807011046816098328647677991203763076736517423252825332870488284976715111523194299802430128585896143415510600007368265550826474065756803772101549550348909436710684317622264622468463687836740547024718290355342778807639367818302644629823800892249111691203324827753775376327954523290300912622764670554902672481943386486279831661863599472541777171196362200737448181137356440374990303005232565136952153869263166062819712916989449646109463228560108104358952372299787203534638474793552768739053326560187666543415314102845938979042154048483729054679023725488425964942327782257534573355773268827458660584902838029329788928725968005939161751450032988574387773337242390935266510408112409378534987832642843891517040453502857949914416203828309886496537035106288247628898858617613150834648568639952382886594737717966942060466512250759558340624082692401219364963379023314468009066231186118496161923206661324798552287138987250165996474049960838593434645448504031641045049787987199803968052718564861343438481851378405314426149150187307471893118988897253230359251643165376744236188286006429359156502969620576624652780318245797391296343962863885831677486580113384248902299383343560636288956143734979946702924694912128520845652178800134082950042648814790685242872229102801603567200353259483354542750163193886328231845933719898648435027476486362291923723053685996173524687753412019803734961877133669595658741708333339619495593328794826245481001714533609474107341621649363913675186241881675462737108473690553698257723537612437156044458178951718194602907291800929542038988286183969649480735230182247727727793368485413421319639746333488546089843013883662948668166974320686020731783883454931933095146590349931743892478040837121863957952148168290233681645715522728044166509259302655187884154758505519555688674513994681995617687971486636830221993044526738388350950700943003696911030532943107488646837612764107570402162076233473810738105177017366129729139328740168627347434489199956112223777578949925269382989786839031095132927483546689945118281750669947146487280385445785556226670325832412574624353868381467107490182131695373644557480734644504579459857043364816346676129766400593636533699691514976155703022950778241144136357276810069986153907846259595823452480208176267787984633563080061656344617971209113347199960949502222871951028499561257611670116401103524115618585678799491388677514306087665059503874855310292223156286239330605972558423206475697762544339233183408881067733081120718150002834480287339649346339081633000817031359509486675535013552139412469010846319162355140848494041447319559238987943800577142258051268988592498383767712488450637891818921962367106662616166793153489966903763396485544424077106045140542631194421526176866745787846547361102859650918109738886736430576742623903941872627046719615338234892990874893882328785264286483357095355404656777702226520171955521307372216991635400083721068853183381479748175111786574942835272800222159826393138366541211102351659321100445613055378108769694825051645622138968360635514159248202063650794260190905439735292276040369749949614512646537219884672409424491570403840874695089959537204368734855270559077073860931098801451448063407329416307852909067346165069698018544464314679307318091756454560279687702052805284357905608840079882194479389144072140912099996454486918272383293202138485943407879036392400636195984957225373170462234370299548958445436935144085002927797774167373658783755939346245525684520613507981859124540145582273451226270968112107882835787220617899754352980177500233391828869655808472623480546660258664361629638071160102658507796984095169499021441825188207117298559410122060085084637518213020649881780285234243415487794208361105062934091186602581434377489833367553070690299078566913854778439660727271619460644648168948956784742639630686970813555290776079643494385436785009896868188599982747055263550878631062947047213433423585945715289131898285273063368498358624415397242719798059372159546372299296402752071819991517241502433890574082256932449008454961093156886653394066022252107791006424026088164809733280262024124488064626401134932887105421603269771265090769122275150056088904173138549570615968414070205029207232525084001673154215752000688591259800915211074378043797939547629236320345439728090606852920771339129266460754882644460724430366358910833772460519589647465081291901318688344189683184870723209175212225977974659523000040784010885736595523594356693976122198237504582560350063740532233849289896061410249812593870350955659493348239199156172601337855207092575413506160271494672943110644343703371592166528763942205575476951940195754330827847044753127158996417606726168203014741693066136911256938316180858978171052751187617359541708884802980833330040521570366373499286576705184197674509636148115694811797826365041203249240654360609875265016117398231328059948205291951333643643916413574033870909342465553987508242583884901057074696550302065190960268836761623620696573016910616209009344879668043745067846371208743424926245047231772184004879138157227654075197894992447719457436296309958813960222610673158033641399096049120621655145807268729576499932401940285665699031097315478717270453616164560603381777415539851618678374475750284792816745862549708722604644625795744396365448833078551652719195349336887062994459511396040989702924832333724057419100284139996898991348692806895687783921658468271940506271134706327366969355338747024550471676840093874595993073159356706885656586601169812653035899488172307437291487984101349681309574321890938110607821499325976886192256972249092142583928068759456345358913355449665733428541447154222919756757486755457008952416889348252942588923198361468535374152557399236325528861374215557990657851667850661178614302070201256542862185426436767712154922999270942251009391362946999483092936792896676119233055699389530311410677611982216653068387562284734196070165291538375390923142882318369209797221232021924565239787774876013719297963320875567153400271586367469753840480768230686357645546570654132302169589615567919603851301995088494807175879011687416076680031504780273350961210415077519798770551349749181464149333153340972936214491860880178578367417892927193253652118839467777479318004998310740957261479753176260908329173663402698438071096207790750764421611898528232840788143652141523813764339908105519086281143640277983751939208345170078901576919439197224238941042659630953396155856595817926732389967211994196526722339390382288082034421540624141859705578219667249737819391417547365495616114918867538060922466175292730685533561637342116613433326629320177384696176219226436230258386110007181153990447000264932253485144034148938409114255810859044790348998701865912517982621591255769694350592869377690234829267538748812348078065819772217030021148876058784938357066914290741995032793359491868988449880903943096776727389849298297378323117145742567371445783771609948007070595486818776721262429831054982342614193356848016352507920120053762518736742390769116931281785832605919165112183425857743270867089879492439248181689353359831461871882186475525417000474804010752202329942741893839222451378218192220227288731364391204893516142819039782121297980973402887597068549790574967216537974847182751474974013505319346852907242300759885518247999470793613111026008411687394025058757494552465899544414337660610803898132100798558460500618871815099632355873605798740026346673048697646323910301664056004746862819493303404621683694470259697348397045458584042297527626428954133623122887585266018970785676302031620441341897713846088493149759400022261615387314411440129777076780119681187634438920724955672116428302028769642206544376079945628027743413074540274170296017447179828130147791960437564621524993597914636735729850203129583621343603430804723764431957254052222707180214384227659513738576455555997481293740734774095927079578972510425681108638796605651712963644297128982181507029342267458858010263790455374444227877213592459203264759101052830886367793911238676736956111994291270018046203823871592981819855684352174878223579101786895989817724739476214592706453877545536406818083309108491614413748651961104181581520547845151919801336430947877156779280986758700845420893747026889153072378419615123304180854405813595306403206067786590009895968913962442265388564975828521636951386673030538325328648254766974619829990928739742588816816419938591027106049283550340097755753201998644815751340592229371380963560564172164310880512025866140333786779269734762076437675652954449741168422013188821284375351751910943892033285193513200555330763935588387334560307278994580819874997254140245699864551504985350268783417608281807691967493033578449357027607203513494553135980556799882420766178360764001238354142105371686450012293202725150131862111714294104833794672422931327161715674033053576958688610200194946674242125187087521711078480733417455841539732640781944270654557630770728954917310286757603441872424346783903563299730447359219172309720912713762573240963056776005984432748757284150500199035170699870878069552056148924624232910138552559603772751365688670336090466185402596683420850959455873300392123409275100989881201103258763198929350005149960672610104906992156904216149043382935678958855970565828694888749750294625223136875390397616546042862713793078143822660387916304157344308572715117599983253407891704956763513617112841708577279931532734807109924728435231742124982958696201038302879631812639544879180593233133683632713428644975232945321684517563560798646118981798059863511220478306313989608684112285886454539444742304220530794728410342262704269914549983118663149421505084875229429021255742357278448469315145368469399839214196864489352017374678153376990657470085034162513114264533022269505567861705259792231330721215467369342027621235965826203577360746357479073091358972904985613272700434906838753096762401185252155870474953275605569356210234599447762758171029590207334880948968588546641593925215285084019635920261099661700116647283816858178022348312060900073109877125720841039688670173589840744642012019109063766458847351928146915473539707194535760053419860270416248017288306146217025093539625908564433314550342854745860434205817113368994909942543053240763535650754321096691810806246859209432189886455376761551389687165227785135002521415668325424421912189724258594894146786617770580016004169490602537391783281843426074108828610966851467196018465578026653445931505631671474152568325657929120580375180153631498829835976302326554275206953867175810155096876346176003745106724107067029061291568550795495943353087491887338141977543361803827822187728289386420361826706428687424218794270486778110869961513903695993101759559848748981661339755274265806624988211398592960107770304046850703941510594788990724775245691141986973286384689741627975331279700067935787121395946059740264945534247770451283233080471063874600641776536799132091735345286756011778919343290837678954727379021824489297494269306065775436779233665005160672458818547296514895550082861826483555142890901365379934486854996198325436792405439970419337780870157251801858810869066661066363041559676212938886575733610068279232158906381111022647277411180138119123010893730322706557358100263273514489165381698428843531604924716916842346267586090179996530813937962790294104790414491413677788424509290406399622255817707110561231984973275884930617866639267742638523927347034194172786771285386420152751102964230145819892310928692095871316537030599133836013334780363211982797178680460555441442748186331955615006207625258324570998357326067092087382763903187070034086304005545471842022575364391452092492164988569806872128894471831759067729142754003095436964196447878899083203560599485360733662555495938821939591738470566859168922762751367182884888964302066085175805205309819342650044672250698898293006116166844304341368323673492459164766842739591472029796381134335823260876610703877456594681994309887771040987469905275443320179527840106022193893083779690003686325905800394557965856955460375641180740910513756441250802068254424372181164167100082682443665676596842856589133626189312901299958527317784725558249730982707670647924675456030793890733149350910347127452406029608949028279484345639418929170706395643074838215483767151048116377247598414572757587949545718144716401666106850347768429950991732375647499041136568169976015610879154004531673060441823970526600291952636308623674791073219918945282808885782630108578147367727875647560338239575754167638112998011473265571035237579180485256563757807059702311683476785097987195447540757713062906453400652815191009270707089142256447332113365247157000970619356614389295191479826261934792986095702290231900808728000606344744918831262927211634456723178017796219887808454066371263353413317858634126464629208908159221505413283926605309119533000055545783289630590114762573706690220241205635330872439617045413261402175480112947705444676195221789215624626386966147439444644146983004645265313703451920188215837803794776104522146625529174660166484860015207507816133286585266113936275328562711580709660106576079608318772079236270336964723613742349148972428108057363397384516610627436022940604689399212848943049406998340930891587436774749190145516071829038772623298483504180545513010196101874289258186907591525149518142464176760235759523649478043777094591715747675439847327611083334751426170180274724053290064016184137776887466694499277253703166762203556625380947284717411973287579067322471641582196795281887911400155090451953878063174303659132163598370465573313200723601807004571831537596126779870316333438511651693068730450209191981911815197646401600687191464537069011353734911001063712778162200713694555774279864583799890741890330480543651472808767726072035446530566384757376477862806109166892883493357138427370644991566964478648731853615210484096490531504949099536432546455535167085606667287263546250107820834068972824559052626306514753054037757057206224242252430436824079012280699760329383858429760395734831199806721121759372679299474810555881155998233090770839330097300261302332103827388428391500262634959248224015234825544259896491521156242540009486389001016082852025405237513263699311954044860969133917037026223467618898191937903481807448683500030002991715819323021016078812914840823991902569043433315957539567932819305452493149402866488778612595875201136871525014372404140844188470822308080493757795725451888859805972911994829473868161564723324948816614101759136270850341449140373974832211100727651387568341902328829197603969302068455228677939909717684317335384764816427093378193868173198715408078458778099533335715350891474376759305228302681455200414851118041612511208877706103636670981081628256650103262158135647007230396135797302121677919690452550459378712073667601684192692991774958512434940341956927590824420681485512311006535801147573250915928402622220464770295026879882320743656201030408147570348008475369837398873217841156021745469411438290147745813956396281018025903383830867764598471695122696428473742226506452744674501012873273712563927586208065741332615356840416087076116468964221491505034930258078138130332346071311672967529158183055496911200136561571443594004050948813954562022858410061133880784496217292702976878983548421997530256466037593602039767243057372481275541328596328428647074690446207501805605783334600791277334213890320950817632851650888804139523103829115727219476010647009155035935503784318062370296549290488673718231592756734817643149295140395119020427538668798107088235341719691375261880909041312368483801695922076182301835168390768443272070856921149924451320681289581482895089126999431310964381651210310694178095446351331512273977707225176721674369103995741573585661589052056088348780517824792160680541777726792317676045537130953458929171613475097089554149640423162404627511645938784436681482790180973872392925551679242466293141961904039765526388386526009484190360209572335255838331328709452292261436500695578169848427169390239476017886544105305074935887636245248200359090658754913428966642719858861635947720533062167389172028426170110913240575677828251934602398152919604069127651843925256847127445921147148365647736962519185864016523408289080796207257604820089459402566103761957479411490539819829594493462327940326953624490419344378208180792290243162179905508051427017511543531388978265322522741311132858300912104411211424107829667234445834631448001212019045566358062093047240711220797262460736256912050668099198045254530431349448932580417828944764876769082313254372527204163089545768167786167935465157388755930601131857904514775366717408213478665619510936676416924694039726631580361585983669512726337884342884827589794704851112918307442471726192846708483447834207388875754875350616614874338536146765756790680924459016633671659223445899239876567637899218420572254384009096646558715901373733913277901898909902705652943252998905036567212951374224118728448463274018785068704038386815039652101788673640388968396760825653747304965860726007599284727201988602206588516625452584952628098080238282261598040835938305526318008556632898390063079745697780430743949532071055071802787991175212913702422707989547299805780364157099606797371329046911564057655263673669236903808995549125477325993765033539134051215379719712469515820565766497141755606203629151729168878981729555472318692316622143134636493609157315280730192401967981729506490058605350657359701116442998778863291021525634867745722352762033641380172347154830648418483513337992720790259815061060963204723262082916885322156254253097465791836090249504763172974708167686710509363747263530866380467866702283696747874978663997200859586489376862702848227570361146672652904102730930350139206697577635107900988918506692697536408450887482473004381093069926637643314633290949055241063864309938050291474871030402849080952244182241739515062469329977985584713143068518016308454743857268277822906694072486288802146608501245666217226196896336029920705244947240554136539998373768071062111157038261802122788354188891513164485298153791181727256076551337403908757326042618223764134714697455133506861485462921478957366506409282504262106570966627586634814861922820080135140117898388280007915764869838410102417744608304621621446681737390031403724712233063320352707360235265829103032138984636689614030995059735490052226243445376544543704060933162659470834344754625512083652007642098517176646455805112708155067925791707370631798590059593779134074365000160327217674856649208405200742077286364680542657541258659001536948778680121573025211450653274114383956318371619986999884970423526057248302556222477064451860740987994626870949005780274008264777747217240443375431118083169574217010609576404453541241552112439059915607938460551707086116649368153130381307957777104387082315022276313761158035549827500157390420222841488689736815649683374811655023248802063352768707182725713834832113509011060715381246124993478704601734196209435233476825909089157247470598700115383234290438017820858144617353937149495309711237518164819250564441469706563206180753926017751850505496004647649775573990097717318514408465781787412151175967470134572604007496528134165152956959304899042258308783537077890084321160916378659694102034232786975887642925833711397588067757676483474424322278225243811332542729704414687643274802889034026006722095562231357646398386112688078138448117373906910062798031750122644272853138621653724515262366583306311666097995681528592745449194992446443800557303615033210050189253560791996721169626292800451315381286573589343644144211251909931643145459683483398535222292592124696442624428814733935886307096256136343409400745828271238543527108540562449087494183860230673636245941091982950086404734030384917848122568426264174102407092430345204750634871263371179467943830893506850822766892923230812003531678649194172905052393507154036448420443165255841161736572843994156399759423163001352209385762616865872838071182266590717159412002911613021908740786863884357509559050596073126219083002985838551184451283515328541800288709251490041729396371075419650154493537925171715702103419374539118893293495700828411252184316264646150893019006405325535202749392744527389686100333462032416224402955183817049943751887526554098326509021302700452038652690604153072027514192494014478175367073840605799300530917777741781985531309128386355213169156507507885402106184912936500982760718027882912052909813156557223319613101551316910932399514731064637158997590899437162365545704217829944884816038611833119428158851862878225585811171468413828742455396901733156167154011773559197853655233575451299946493289038710213543953186071387185062119254810714642760801683421768848690550127835226906378321470322266427572698588646698343161412564986646440860344037375250424459648058861657075696627888249055967652619753476974540680600434693903025674403592722262164104229575708391273600005812657448920025801835815858533046214894122344496688569712216613570302712507213183207804179088715848772158720065990317471855486048107234719177235473214549399047795317162516157244109783949374081517603954732198705050683889488555107045867415305732944493256120861843592471590257929765438318662625315019784217857492410928724316020247644412449931603684898191770032192634656183946922262217513033589110314769371520423580929557746059369392415120818796067330229285864512288914269126255351007260032560836161882516821829999560868491509336505625375991820287603904992449049791545072648540997734391774187713192918525056393214069660481051347575065932534820676066699423452962922682113727613254740679910338101632084969320677846960713591603140322168522445691588184810798449921543542295203689998538914770989486404367988697654955631147310683342421404741390671567674975355284559325334544207833132500166761253090266086993474768296023207166365300209882742295517958671922194793975133860307063197405914316318377067273658370251226602165493623983211064204672745314780638427062519008850300562073345740378402549131983232280317125578926441819716139400786104263326545003151982035358731999950918997170205701620250706773660304005394156239787901300834894436383158625042179079180782137214895040852721473235621455097998666388215630756206646135947078299026760876857746536984017988604402187776067143349937054937331897171196450120791483702374802809396716168698124827576158171923006062400539267903918588478481572282546805538195458847283962900631549421705910815436989709513319481872195798496591068931337309215768253495781818444399021872467484161453735861588119628364441382997631432273448281223474038090582404625753199091946525934276125043823268860340199249824746052637456740992383935144335707160934588749543166889071446479878970327517194508743235043662172330605900734632686784417703411639197093556551089523603274122754764535984602114009208593570909427960863264871587288788242395320717513096263971167510412143399860831418621787875279011130529714922363555661380106718354777307369665293750595085208812320209361273157257259658478370780798318052929759860348948365422663975156553859401771679042825834595847757645904568144041492575460498232671839198758481154778172765125392001169805609950828739053657836828836501558563404266677784579412043639156383100054047098449230871684905340056223066965406921765519005671908620723976303965991500003869656537275102745763061584556303903828264743339428189150375639939259260687265049427999418161257685165918594610977916015656294375485467304454051895358004483798901376531461551831546747588615462771116241001404423456598516731882904890655152232247471556345738678751116274345663400292033509991593548837442177093792196373667497434727804161334206099982204962242346195541074545460568453301703917344974538792401733081079548036046421360647431466838086815066474872027486608833257808283878938711286363070601343086611192315442709724834572874805314389478839034922836178245967868493024905513696933955080476867488940787022112097916524883796214962114729829356006541391490244451440387835335735341009847820421558805481842337066642937663934917338029003698419785843382130646307772829724582077498571622028927881560518929586261982687767133325298464250733441299107640794471515263566838539556170518158203135194897892954830377515659423761532926353161686016497322629315638003603497612931427311446498199786039547365277974935271708415805409464424872952046518313796621568292492893488219920931742337801170334582446061756104344414354020001983397568299836446624702383273768869454515665098839217481460944213416246725065597631004814758277125792560220561583605434134015218626184335593592062751479896523195690251695892099237870722567950787602184010864764173354981060527556781421772489915469265474533258413933790971295061005606689527961706573860814304389502758046074802105224554794916130126567184319979250256072017689310519947635814385636677079717906516769128117552876464379620803232066839818788643505020388237768458601015701841470350433888082893863913229897919728513383931935772884627432490423785543380275655067453753667754157264944433247276210498774492735759055572679794791161810767046296314600878917296794162893175600374612779928068767354886738119537977455299026720332105945076844518242991117000251965906840505283529426149754659558995877013860123273406615310339745099130677756386630615246086821833164599332199753474238732079439168221537782478572108448799193351668663551359264184483024913422914515648412146458866564332174903449944268444857831557950405309836133952188624367935907720738864546519631937550500401259131993065559960031898607127627634746851274444215151669479611302131584181874259740763296730303917353055806789750285221567420433571484824083784673767233990958100649468106576281932480935764039257089087611784217433615988301606437615323381715739102669055177226826667949342038539300254667707080755383053290388962707417478537771659980431974149065253140945620379545709180527405630991929649657780987090756466323200519608868700687726650207565367739986729537776046610640805779070723035681189945514771038529895686610418920193157162964038050831455596326974288777708873129759500990118991923937316164093520452944990649738372455821043762396300734113256013645364840983343932186305219882388000193674056574263130320875344850119448238769942244908265436071450997286680547655114272449539425006540344431198616862898032258224103274166301755491979922642787149643632416628160575714405838038869841746288605573945644285067476625825893659009688433272154810490120024298397470561868032454072727645594388414857106498111695865643261305950494926371208976847168577802256737562735383279852467090985235066072976585570117903898813230105971567524740545587471423187752870432364156081519453422543832197162126552992316415604705937970105753358096619724415650258518965739968273603815963630741506809253164784475454410940347810137107530988891033539413684173637218699779838622420291155712104645468895686528060477147535597444209945428779196514584663731105496579005970773079509578114713423673070052511877786513620004091926689440944930161602625598939437904004775791370325856808610589120269872156332837827271449803559460163793037281526743775059248285902846465855194483284969157335561329473127983197847689714956524833477152916651761014168408384600737161692846369644197052497981530970583904793489666965439490084526904457844221179318810347716926188834451520652287876103834726291248921546797922893094275277978732599154724659710910405571830960372879508340586517128759707716057370532248640017973971334490954744314072343295138956667526454629974847117495174235976847057499242611686454451537995310591049914074906765166382710751573485152968785037236849174952079762813643284773560722427748055098542664519894134839759473915914336358839115077666300295328226036690599070416707752940804660879600645244584100157902254368833831717308817571517773579473130557198781786432726751432650217549645518436394981510255164525668942990247960836101596811357645610354857173872218201507484895551136144612875284281851736561619154776412667940205412198133650763450965073476440127973458467828548128601705031911034256658281189162647043095824641398935345005731983323788561753572528129261396657374600746281671887700860812764003945561087181775016045585443661485202899138685621671787464257548797986292664201359114243877292140018042444918181273607813803753034397916855891402679928901311422535486478829921019598768179423853513279998135100773623742348096069739346219750216114684710216675905833725537974075093227665662366746406353450284071288091863398715839356136196379698581682089518573942098109623095975064964709720905683844446342408329299889686488293739867509990271143176810996321540419656714950436012932411843003659843836326162788836993781965190423155224323509016195072113141213475512956696086558516959275309645703019590501826662360894967898841423099422258044702050114812416889583520237020865368494892021964876380300652985776994212824503390054349607597509342945643799176882369075454093205668262792177466497607299396236722220380140515411385382112775983565263730621970533645657652851694266638681095589008230021634426119681797251616537070596343540318868826706003883742982284084445158843366450696565520884715097025438325765307304651229818468230245124377587800022893747055170065222506840275796590310841577507653482159141484450371136002630481665921119267531670150717654260460415226241173487557210330115732375970608549148132062456520020161252396164740410995411622305999580436059630773759247670049776125831405613587298880317374975568391122381716021867013196270478455505392002483376321221581371300766599300461012897491497779269065656174003948549339985153587436414752146914596929588330252995574720993724293023536997320195800710870772217637544985040437730487859946314115901259330146809196582845763466156868102935079028624733828689880250606591025817598850462541532164431634316502164545663736063169612219567831179800515077825474124045564704385108345675854093645381623521784182553631064252963734881904090273881006980524475583004342799300108680472206783600253119855557244384199593329720129353117054694774600066714680869139929737642564608503521644597925181404088486330878031299311055671433689882342482487347539512034296368333311733419992512536074941690941581719585398518615590792733403406943041361078343257096970062179321606634061838248603052843685116286002773188389159296667378332026958885568573086122742119348746943122492254598895825651832150012370190318481005382425190364505580693470794727471999427095649982473909631577854534230170215045289327735467345210261924881468414220679963334824376153393092437833879988767590532958434722825068562098641903348909287244165829654419328929899716934374927795412281798358530568671339582003050303327137335605903334255122714276843774917744064722340773487558391168044887261063261753245414828867476397226750320451436356165627230787938012929121423866702999713379338197129247320701096998240123792112380752696367788914959643913965379841510427321474832580575642415857306050173609893527597183381084177046508794964860093416429282106579866155248114925421147909454255202862325573905125358669711354529457121389319533895196733589165445117037735912510478286074033738496324073596436970608396225007011612310595127613102728077090111286516252191309704668660227221929782037293314612309513614841206621748235289571148474698791558664870248957582797440551551498788838639131077366026618986211944717274525767123971457248749584314225993623287327144693488856096385045966668869657803494001867100903473673047691826006094867127169720816624810045592690241877200038458906832925895046111921939770485326833101187804204029038420665954913188341585419115418972402540735752350589161229081397095153421415478609839093102602277764025722029033590151782041252655581809265803722847750321284382103107213922957864324661216607448682008076698078300562546212706988055377433534532845581897393949380208859867391087833648951050307167594298866731670658423089059786014246777312895324037638241705148753353694445015474425497472640498544877843751372977682949366360187892753794483987667571277789844362827525237970319211357527905229582563619485028940815709361363877526024784956540395923077522367672328937296160355330692876027545108392603693799531051419551152208039693458436221863825917195355397045324895370486745268500818781291138250714250125239993677961105408004005184288475981669767110359307395048792033965298115238226479231658540411993475243753269188900690398514809599830318095033947793523143688768215943787879691201174063368379591342290623176819348330683789000612628961565468661777342423953374465146856221824189541819170097358282310056196489464352827641001759305494186402322259106346961612635371994735786687927352602195441847553210334321344289629276698179149417691310298138359672209190801524322188419371723849852915859527405295244754848507833124902967822935483899276771905226180478786772554316344604808281390239655344394382599526361196241598217055428004803073750900202712724740610340476057489964469495211762389066728367504784992756937599200212976616741982579616961869956114293604561125362990312754464744467447531183946222404685370415903766756434130023861141789008791287410496488577540347061746508138101372716226648816764395209634178065596193265539868724382399957445979264476912263491607831220966207519262069282078755379163727037445463708531851603611351259725626021879976384851290968698977411647789876193571793392077923970231395541558646568776470194502650494804448076849909883915337818431221559462944815839531891050050534049877316928765171165540396751783793669080103396204366279340890907600364815417361032482791728626053465072490213798362043010945241984518311674956315112295617462749764777584725314782084109691093200803135344384998521497670495293299959642173386038041337550008821472678877290045233762958103553727988544791138508259030717715775376526474365217952788023484683178130873814650530562703839859873323293151227923091280194444293576104631799973726026344717798834485547594255204426650779556833586688557336987912409426894708773526208032363508227816017533296581853331271853241698947069110696641958192495027972194582817365996332709861978448326793442352627397123825575552434075974879038009308110322991307574766394522247330027071112394723913180930214361515060435753829875702751965097698703878016453472256527986758293912682548545754546472826934630049878813620642933851651480262028688972878888396642879905270377659491221225731128506131057416040681577293781789334963787131354761287922253952768438544377901286651069076973056290465001290364169046127632033780722106777951125552554290687182875220182478887598674976568451888144131605051234853357552403530780501849088666073849129562753197870706699165123710197249552873963565290055963310850473814371879634511840766735822894184478285241156019638015947529473145297743480231750430357959865104605789044334062242946812401395310190574407045947260698246532027230515508927526695085233019181793859845686408238566999952783857019718816406883088521317030066364080586361278239986228927223558619632657217584203769231507848062927280154477862584479937940049587598204156531612444420824772171301510786043926817366185460480833556598030893638095661592401861305543303929511103659359986192912897067923379268258423340860320153650153127473755487063455158530348275492927443972547942625994972416626678107557806928418368321584258753475899248318870678556277317006694169298648183632085680146354192718124734865623782841850620928936237629727792027027136795932118030687004270064603704131165497053956371021866987230276774230930611292979959675613824645314988894982262623962140878701082086113509083843604234557511996930649560299805740285011520650961333287836641909591845144373571678534274152503696138337065423733973083472680391417872256333951603423923859114862067470212954331555681842448581717435719380645149905855503325071932994237356509964125047512794692419274568166055618615820914612199060483172247895321041105104309276245538551095063869196095671062228689023257775043010322703248743170534572474554747551342923231855766147424889857487526354953148825477366623166035600522260335344783784097849075375552040203040257994310990077869932790219365289994156247215533911168343766294159982892638990128906064723693054319561099469920115947262599568832282322822933585551059235141981596872865400258856859561283952346395384425061343009225583961863646317478942722147610904755282047486745341545478715887596261711999227954906795349606589522712239922100828986813982259025094295416092627815387956478358632771791411947032750005205873743076153354762658437627296050103951011479908042406713522100131931028806454438994812992947597667455158077956784493855251054605351278868956835847366179203887061226638276204755006634979145245432702704863071141636989640930882367507126032438428187578416733897331569300800667973471185531330440931844611176454014134118766315637247039526105961559194788971961244177206952339946701487950110672268182289289043017477087342428096998328641698691596809994476199209671982737288486979321883046303608377192290953969089156753545134474931194237300034627527672184046323770404878074279014925844116305338598443970971281046574857869369014092249874619552379842030714219517872656858029252476962060177661696009558118213691428858319124371351302933911440608687264821530994620922207651339422262003929088674167348421073583293085912196766399273108997452400098970877816678563087096840085365716945288867045178194467493415382637935652666166578389984779497005992950773215171299737261439012719359729120846210352717676263348231653636859237810142038030119787528804650689946441157889422738383113304957294579035946371641108197499348766473897081129905841314457374377404961671391403482576097465483232023404165161390018888516286874413455052648853983442895956067306092696039685961468183402783904153273237889265701334320884559340900693710711375303157336640928692517989397150987590353125288910737661753531850864996571578730145176844371434196390345645134038322764422463583360034589183439255744680359056533899827275720769267672902612392457782279039087246637080567759648317778247684331761414443952450092423549733224091554050217800583227685414632328118186005391238241596197289448680893576242696039231680298222332854213837205890127681824355078672332424637528066255727971848818187331921320650400501205459288488561912513197961957162528283419223038651882449472719136822742718375993402022335395012677624869132550359799057173973448298833350701041173934622535005366272110199049415812211770057352713640175002751846715955132859033019741673505441979395975740401208132111407571481981148984615364233478358023234041282200828481695955169850933679727592365488448812316473319075025712841708619426751648851317825139947031753105042741956284561346992518510604941994640389841286466842363965769741521980301017642782483694971332699012842536269848109315274936879402406716921984334929272801256037580288854018070442796593345926782911470527225744595803571247321878898566673662156173850980181822944507630183679815494066035472321583021793848311774452863433122486741489853650032766326470208842546318596872212754340774490475781787678761603903110504038110677206964867533871953605392856240490661726998308307944537264367487201242634899419448594033641603978322939041836449831464587732068787132736888231519419326187666956743258780395327733101272073323185066726666202993327783049473823804480493015971470764592328402129720908215240399812686657274525464973908777703283065447932032780620527095501624293162042305985701357524395672538930122897460154880265223565473992058808047427662591458855732285110338189491973533559149022021756325679293699095107769219415773749474903003497151726379930858151178993801725422983827893266318888799759413210833061137566737791984741207872897801111054992304699686095794294270206855949060583199646241240352574117875741729830876319492026899982896569247131055619485804845811218444356658179943281182822208261294310876404747785061264640750562754713286968392937012767817761824298269933075510882112523939566244795377937108448002909876311367056787135321088516618979453668700179530728769927630838564988891669052282958659733441520695036208424974682192060087386970551388179305104708713016608953351164055535666072245481376198620657794011109201733568733160395999355497660005427543061884664595344667430447468115343614697334116220401479718108373320208626135029980389835996814526704677480822722054542870918874965041003954423901195647981608222323687782417319957822475032661312569336626747144226484697919794582211515263509179728458860213754915629262221091374684948555182943407760367023699410854614670248704569193295830444973189247206874475747799491501894735603910082035803505787407929735805739822640022193798183301079145244159020383606393572819458885793735059370435544920661874626648396313096138437144253969511620744798429167816962896152749328795783350048089247178433068543729353353961659169253481993147832178677818544417753823687941093050432918483579536071900780023560760085708654548628628988596899324414779006891774865970790329902724463289504255811432176514553976429539511612691430374077763110483535074540027704463301627627206477097476835476277350698766183218918393106622891772773591150106362093365682553180736271182088489663826381472054908557235713302475816050517159118453341154205465832222886475226937751412595369489839706282783656507639658412817610593470334073173331668530985863099303378572965202595456830551398452272254700784629610414613692859847142008668384156782243363478922470934104347321297471781330306627455809713043072679890776654822531789560199146526522836481558480612545403167438885505047704192797895498353654057047057283945044574446091692103394088356100321773785846234585973657746247760851087483315077925342316920302012391534120973211372901709422849942244359400170930496158884843422758469178641118992653577998645842299838548257765075881701070348398126958588323870845993512177253711571804856845497990604853213490344818757890105770130281774086397374360967663994281439376969919960840199083846962273457317952372701180203509621448080645070809960221503408905266404442560160854183511545697935773969456023255673225878182419033042311228482312266195840349009276820219606705175878629164606504605606815681183655337057010256892157122021193999963605164046734876154979649053842112359547855547869397089967648632165824355306628408754198238222548730438245812722944822453082575619763970229944839853817366945042066990709332882006211651830761042720869064903946467190042700965544593511757363637580889806087316918349173671922816312881062765818882368389463563679996749516180967524657887220664872338392339657318424046524293501490023246933240325191427282134028867761233331489412794860113228337170019884375976021841330356602107463139457201109293541870894033724910838389470022528190721805446083818430931080596528273575143575319356785608329046277087120069297546853657330155277333962082974506094619558087115815243161856757810835810517601411075856244930741354702649977733392306062247989873888388593655944042112788285387694174739950757412879815634583474777729484789090245025334604345176722284663856682585098902087829882464881788756214619163325924519372787411161288474624818105855547711515163849304097710247946257689478000190490598582680531982834784962926614244539975955778316253843723144078875377112380865084761522776921844434407019678678948801411266109558586696598335442540342325784506721659480862304082583899590670328494686683869437417861343422329239690303390983977646707903571855153757065607228965015695452558659576381832707747901231327207045647180151558118499853489719800946530981755667100702777498594171468658473494105110760101689334388321408110674729948108604935554239328221120899536564528654901581264825585540805743625651695276450176720241499074574460271817984189283218557472895100463431207949688785011432541855305570098982077355787308448909977495576095410126213627315709320028768945524100364843081835040397065992458252068905847536948575085801417123039870597792288968469813194504363221737424455175630933701690135606162798101464534221433213736999914382157351174923112349832254341546273008255674918191774551114776550498094350279589710226945214678378352964096547121076899537890437753458964664133843202045684565796958442565073346539971453761449359280901903911468814243223970050036768352598741247690214503025567502090163088655886482855870121723991919363123393145968131920045502049420393416331358013769250158469201753479966236204046745154787233108166123107196981535870372158957615684474326351999333668916130316130451851108163772427034804990305118665090148987115156345874978839323182283994391094356081816306385832976506954298868603795892180161275038510850934472980831907477092065220958389432159423724207058321779560429167736119244806665723284972624466450765262529050198259795618637341356347157343322552545668569946018477391081222888560679600973718405166452700183759011019695434490336388086363211855089307621161769829930899594243255287595112688179033654402166597926012094132008302280873458750390614744422212247577218785462576660475849964202332125693222857615803413503959829566177925009213461157625283081822166782212039387456804021519012597237843537554893034829492402988784351022967624682325631142926162689683789799941965136072492999115538309137920858914063658171984568263066935860143913036760139188333398896424361722472275119123755574727526298527492751414215713046587768241105828291320541869764915640937509583068246569714953776375047735393047261049991486085125300058338894709194015174001012832460256775021474580052169944208375931095509806865576620954815755198371506283118491491313576241859089467453182161283461653294936985532646394484686996433588445569099205707353936773383732905356817546305084583507090366975124126310238554718326265132043506513013232198409256881435631198429043091829294133436776230846511303104998563346785660953946922939458196981846210903279857122800153805144362772656134016776449881477215243766593124295976647480778742336722811819891370811538120144073197107918144873100000516939758221815893348190591565568941504054734151571400908678849259489399652584364590944412006866991639882101774372194215947466308496667450978174129928713376889789094685586765329918751647416307201195676172508811813687000794581668861086901772594038108074063435542192601624962137719768198597619981895043053605458609286495885335799317295473739761128817172149253258131861526867684888489883789038194319551752126683444150312438118035477153777227222720297701232044864371144921830447145817785789344614856849857000152241208098670664837295188053343374498290193660968972388419731972238634215388022062033089165153059716513835580464842885486246669335609955927229110807625016656080436427983428461970056825229134613729511158457580525576069324329838098385722883966004001053666605560687597434009636164752231721092563582607574046408745904191342842796295992079263459302140234608105520737017079979174838455959862378430256061776682698500062832201566057987298424754314077263591365254413565522055785429597646412226334658187017326005557819258109143278136324480982239795740197383561336862578713786187238722281188076113556832867995310102915309945146686197818451664581886964724361800943019048670342757978591124569389840068507139641287691106305510548153953800984768767795643063378646681211804192811669307610474620726154822375736395681643367523588185837136976827839798028223979878417681535128908949123778199653208278043008881117344027133152692534645346542215360867671075839408210293481921442806104779145196206428250216638695853215598582400783596355685433460149728431203593750112609169656575093804874875353628157755468436942053775343557879854983765724585843428710594670113885148422924991785235497292698866876196506266709220294774914168505081643034152802112788737632533597820792144445525716644194146112417826760472532841399816091568931694683521717653280008010416487536753771218526542701859213472304402503464727926907055601083861748838537636059496389512167536037676471949775304396334673356139021187748919427377522673343639635377467280520306450824929452801371461249874521228772935574322594655289002991775210236834744263832274053651192046614095273933282544949957168794805638566994128717775215619929335628827214212774541565633680778769616725706618536953515045857619328117740607271182693144118242718149627638903144134649994943317694381368420416442294066617422323312263912325532129398252446054862383840797413140359574725735353490049992712511868434099678259186622530415165076097729641970777837621033183310274357715993204380160810320232803490822648907359641934362559063300999366802610519016792616849022197784284308753805734623651648638706367678093148154309316113134103212810894952173122533973760189098854055247044780179317581665823561754086764109737143552700147754654038700977700871177276624212202180281365820353056401124250076150425505631137802977886527449981932189208507736297709381191882759558978329829283731299343708886680975765453133644117484383815671102948201860816561915748934163108308544951804895817052649503925822558591161865402968693249932819384393089895624388882652710172772126225486553895772959928605411587351984991400039233884915349031195233143288185740649952532196375203892224901550956298354900718491789577041821762857921022370312484155118498920695038930408622051631237331702596470285106688533701618807273417157294942853311510327267197686996316142906349811213407165031833625693289618452971842478873815695222407411943740235424108338477477939895654701629257403892527895900197040750396985668717944817708818176039234408117545235739803051561803158140209429752075589226711059031704668508829046320676682358155956389549655208803554077865712014330433684396407081676968711704947934538299550763734015484001980270893262397196471701447889908021593601516823430190983459464242720062009922405887217287037254441658219606710510278734554637485625858903404591374790515905858850893922765420274477993119796709651804687640902957055536025733492104185631108407889703138164519440867217359907331919022250344426934005054871136758379796858670524105415073494519782037762835070349903007905548577088342976015173385963566573864309231380436951228526677800138012797122943065886489485104604754237344528011016158231815149576473467015591895667817443644613799589699650256028037412770423628501635275537764082077632659046422666540143239567312536912390264397746861337656459113496437446100380932233368477516584388585296536344669048837358647557084700860111486670157176909125116230248826793505956458824540115622515510368497461109437638846945153143512502161114226024285219246635155541895812821661501517884201633362050604726982737652394241631936797422717739902410932117145263678467623589747173001428008485046537370889990162730786264588043771341778135290407425079124880603837843134606458302961436211329955291119619801155296661323661289128132358248514565396669743454956944073610165417791737026464197199017002537457640481072325666934805933517891533253691510220388685097552271183389419764193437345927505738058752842337161452307804432196042433375751722191004169534753551903321429909222001724606953780722873001646849671561742820924632008108968612842399125975651047763187725332252363238755631235768829882646668317487778917032981699761763906330825948421639421577818588391102653082184734419113704100974021663512855437398336121969146116712251034204686355548310057625116676935495874479062474289156552978764829544807503128844476341726678458006900145648205226967775184894307247555470025117446488303891336578317395988866341995701254717423431542278453600940451427268002096444786594179885253879179277467495981747667192757433719695734340515615060379667663695303145841068815974981918775242681788024089721686721817633596654162337251459641268971234272258247564112072629859332546146960254765000831748460272872499803655302580659055663319463492210412906139981645846149991046572249421235515626834375135413216343178612524200697297957956270702656997042467985671998797665680159901499900189867732752611412682196651262495965229610228196604030896277563417956911354245751005976688459473131088535806464393277454746127053021764077044665522242572206593274397557603941933516454012545959445290544246287667420816911727875092225328398615168630663038057132119622333266582213320902973100973209667423726874592743815004193616342858528528591396936598451071535257435803764692222803698350628463660437757918433480226201558332986815186356458490247410261746341447026531610742245010007408745269244264082165109927958727804708141474933311699031143289327042388620804835712708433534032315418173292471388266943123139799959125229603833463860808949725114577769503650238692951469852613319324171203446336249360189362818470111811463276063009945480063681075509534532406111062300034858512485650228645822037516863748376509445767538920712801900766507518667123984197028153671354984167651624610951808627618949220749910934689171451418521561848596815784504519192538041524800330287068278155368023982575031082096213046628910538915700286622487919695444216245492125664893332963424485268362945286235242671090125887805799355830527065938955417138311546332643712029827716052269003753173900527863340722179728482522184283891013857835736972704365375975789910300654532578330083808320674274921313917583153853060982032950801966617122121101691229707243359112149158790469780400154943494938034722154381609891250837570603698408723428765671466157027034213551194555565673433278520777922086807933203022255421110070004288344670907646807172275721670028244985010083760048641938236342411809748002063015522925299178396821931475254953464436964632858614748082417560393537518393109086703151613340939691308591184382999274861890049462856601059497214814570106906029674450537839748601494743786463169239551215998706102610167586024141653059025850736268454589832405624449660081838470838731134223313900290433950169368481075291703157404322797827082802651360791066625685072292590844769732252085880812699865686346971962578935598072239345179518920792571177646896346014941432596276216605859774678038681749239982581207780422319100634515709669141013512648238237347081300341605138977306520310469260593905192123600159159988371904099099658545163609876020645587201795425139306698349725895910690417818368606252442303919617136096255578748910542035896269471495808716496898236257515753431382410174201276286838423932933343940586448065202402209892456783164685943269616013120544546651816577002400335821594761890738761565833287246240715343316874465917967206975894782361769410888562866099306766435634281316740539891930286906190763470357966533629323368295807039098891516332972522924063101992939445468768116829443542005168416598514421856485726008954511181666445353751842879942648058939388656985365296408231137929079517386257362685053978786850852851937676777579455100698441421714053006128555731523222385586581203513748127861511065609120451020118096859845414014213928865668446122513246083700145046419321399192816969922966434979545666854510763144650332610428392336860905727530394400087636519343558670822489855007842720868954613798122106649017710357418119359559174377312707888003818848040015953190575168827303780080597753515213220004772390867262957919038625793009760597123867840679748309603755624715858224800567042878703106129005504885959459134854094307847847620182184524332275745256661889628310865272471268538767478740259679594541044436686955273734095054870593586694458037221790743802902979013570150025397126401035143478623426128428237429004711616798126106587284781366604305450163809093035944597998326566583419103501413940872998033123975431172507034595152686691014787304999350112801243627831133628758418871849027797863581632330839852001217320418984351125366271228406967575570619515681195448831589239938530287128236781830727959766048105052793512507503277281652306167508582366329617285811860354722227747845601520222096059309958246649399183622009255001783295517145014400336715416483412568849968858779346187483432783947342486492646487610854698776717134856116382204573204872743355420095775357684390500080763619885185525956233982813621081833839452324043409334237450149949511333188585355455725494411620221596175836901614011439634800259309470408622261977133491622015208609565857640836835497038168998934512483141156343396420559914428141986019126751135801323987992419214244505372343531851479556425899104534615263733112925738205892258852150461001856483022449701501143031974211265768842222579930181987298379272813024195813926018861694105390567401525493729522220618659842806649859569321113580075539545614392594860460750258054191293224320635452325416513320771872500398284172773259193478275705687238930629661364224338995889582464550308143947416299771800760043588781911388355849206685626093748493186341392022942336622337924409982190581950578416071937446011807677485263133229811963428394383646775728387958414430083853700732167506034147474177768153623053263098236851811149238982968492019453669943769173116565100525083475536677947890423493795029848342388943265365723349805563916763188514632966717384344428365292620481581114741956246188105180191747000604866364577196114124896841600966811060759409543061499966089538285029922571893401924059256079824520908305481701986502782368359082614158086670458585399569261513098392300074081530777528855474402983697425435851114507238489870442326189549502854105218964385646250555555407095794511647320524561336434474883406475103053793104463652909269755115115478189243910957631378109319496363061524318490291168293857933111599556192571002861984188267246025388020118836241843856415044502622533887958955940963640611896670799400610858204466388386233913353898580085661725413032422611531076221426831815535202467450502824018801416344743580458336960291620954315803061528624208360902295730864216997664700086033974408642729295377255987754753303688847261750023705840998890927653996259456545641156821797239320013426551525414788547430484268752738403954647302527607498508455795054663213660565568177568365924338291426977401440677159260191116383973897200560795915439138667110245246982189874825692439305886999816208874521343862647290018019650010798799651178018264327140187011969314162974615934757642301542331103038293898933777302828759167965623571077018798241405538916395133014752238376500367303941415913625175330984763189644257606285551383191968263430137772617719005753008371075366640686626189875941397955227709073245741164590269711356194898792400182987402173203471636970067869335670481727325146865410057082726574597304688795119414249528684424500967525201884261306367223382451854973262350354783213576716774695203801120794867593702982790822555661310832223835853276417167686455495954611399728711040530427206121523020286290771407569252658049923999097256522908265473921256792247974064060014045761459181556815819878913539158084203730489908237660733501097313133508510776585053048786917940485027978210259882409909347587600483289779761551467141809535569644352355203363215786902154713032950063659106348221647539360740092218388190489714343546615355955797344059004836062013470885046614573098302972569732760745684290654426220670137585456189248760666459878722829670858488772887902774617507134473985156725694829962746528759105294297695623079273348739625253221465334507235129315697428483442086701783288786027805228662649473820927859341066682503945219396094781326276776608176134499549308876873502666180482416654925617935017873930650229406458516463919586114471597878956089730467630180863699004782202369591655534948577961518188577419527770506337091746932123287305594720672526979610713604006024700617385654495419058889011842334130751383382635045570070176733338551877082421824307023256578587964266769179406901474185679267203571692338202225767698415157160613293769343449413817493407176628474908558463428284829724124526071490606429470456661579972386392119153956751603325306226772939262167780657329283676088708614024481071504832762754668106478834272315599481268502859855698647299746688533015686571955202623951958058575926478076829464496832953614161004351499081240260065158773812595781276626138385605396164602440887413592302985321571802127028149518979934502150935765586826450910031643418986934747522835465567182871932054015745853644652343666545885436354041948378962823123148820509765080299414882354915045780203553572004913180541994074163410981195629785753505125636971207065808802255978315832312053026753826296931938080392057611835691532878275275407072921534684714254428800051117469367035574388048932158925165653595057491514610835576023007885453615951987809827436215461262820399061106290037245548495957700218632595870033476249169928994541155797338303471706171602679438541385634549968236598109726421022218297051431437101518466719144560700285327359012414876694422389782769285156129946595533069676157064246021073105221815487802766591924568868911828914523107925031633036908339007392570730954876866547436732653194575954550711758162490747294577454299706613451112115443700065805622688578396608718091219786707718529349688320161231366928959874559549020710056301635279319508485336004784430484086641702701342852071789178083850946689170909824326335964877150921545800768016780045114367120853529558194479710882952558003540947544254942555238395471423524757468028529225805615626935610228856306697567703848702166566900164687191324083680241631357691496659856374953823791756239576011236906065801915693385317985382736508072176076265817954752389997939647896020099933458574954777776284008841229752091737234627630844661824730212825765377167247061911302853005626794184083211297546502037297801133973555422807624237644470865229581067336364127950186053119839901695840367637499649837329359889023287028365217052110256967612796977175280279016446374204938178558887580453025201036042053940436238262251125152865338832761239289322750803591824424169534054201493397915989850366591790641572206765655341506032726525742768839407475842176392517657183914396317571306353025682342968477851735616970830819415170915603419260012455805422877858658759814376984210136649561314580918884513457397704205250354048609634534226251824807374429151701877062679271634109182195650540416371836016715327853568227119289755001140814001151942020252196829938166146796317970287885696601201305397691639968546029821084065955966152357350676406168516180512522987178701822471250674249618519609681308164417081834026889468038237652427231137751668380615285206324774247531051048815499806291493365485994887037466517502376826654654802226582374033287177219373687172472902764554169299121231890752613526727382865610375236441747388074815551360443987165740114106347218423918926762460272911427250451498451713978130146058460183075655249467161916288469316707471267760887420929337992075709669774950406057965160617396499778673803784442712064433090832573147416741139271463077963469617104505045369767337724599947028705079324078311616998498717007593171407002280338235604336787708691677833060448210391757351529058028975633258420196006340041660705231614920116844269719740958405688759152378591229362316983811095259176346060435194075994628410817169465123804139129106722731575491723923455623142226625132094772834090710767596395140389870283682930635220778622607551679974469112561443273691390278528831400403963273011200038288765598514133315984707256974611989308000403214894181718524086064079424530163272329614250001204621735649744378397722256998598739594122047234554282676730539432764916941512670259529845395573177278366346671339739319545574138671097370491776789420876646860982341840656139764854359189757811634357065619308425436654229737645740582171299004006839357470535663427756428124899401241283524806203501664632349840711415313732407809548803113119426601526257236347302189341574487199217529589806015114726730275593675529672517002613349885643363264847028980548744643907819303441032350862612230796816322232630387708040793407895124728251155062809037041588032835073363166188374492745747463936085020733116642513092114946004434821724914230138170142874135805538739379632761896320265389947435519055424335558967818431391939537440197723132888952678544325928576976086248084778517266575757294414902252720361902732370948837643687843343570296646665170662758391403458300331214290511091915536017652430015245233710376307238619896155768127132286012426826674507528020943881395611578548589588426883947637199554860552842797537448577723588877365588485612277513754034819038042876400962929993166002934533697138010383116019295968633663003159915808283600541225839714271410281672456330015817042189126349951314271980212869368850064586377430119210313016101729923460889411239474015769539010480519164515763218557744481761675576891272804212012588111037541581531163038939956368380656514063487583563533818506807153814144964464219354410408437452488740043916149132649421382689122401173938769624783116994497471485989324462854468313856843781764668838011887742611497058245882119506756883219851527788933071837413976082895374188691262857076670275008268913307013229030605990302377707016048829490362665777070375796865658297594806493624721203627071523743289161120373501441474572367531869991126505899469153456237391705713815884279601601683317618786958321480588216871254660039866374093072784189325529661238761126118083327779322388679298750397109703300333074458502452446945191093676977959276280210596180198263161318828809466137422388315277373597959200990445111276185414673581343236498319863086892567516207233837791470831275351580344185880153812968959146080889336179005525844916932846880061472360669834420261389357368644171130947760239452480793698744443873990986897389599743891250804459947305579676044568652473938449977622409726102762443568803436295111620320920699887294188245445374726713531962303551688017583472327929072611146196298375246605366076078058229446342084852854836480473419071962350776314640279044363489032849602980661094987985147541749871820001390484441482617745106328716590012106642554858947967861091178174886199616757494712670101223360683654724871150889140817457262207441963695376843171098963648353804493161480918480120996081232390806755770502490809012088181951447183344603882927224647181462268783525748370701776826090652688389412523851850651162982263646130062636697176053949536663867918412180330524533785985526617509494073652118137727043502137332216990529950824528485051728186983993504247248651329705900282374640986476754905085733126379368150534796397964018819683351434615891320911852343245747727627158462789618883123729490174264816953212447282531121615191787979707040964632239662501965028481103963687522410971557934706528533713575694701678489371736102668355535761285845861208044467495586142718960957853425035223968644133492885663742204184413557647197676503587521494581588851578835944315446513462176265645540842857862460282943182087172441853134787484911006656224375343122211122960308837998141303698855517974615010294304068454740811076018377342431362159910781571354596623180046418487224362367393390001345385864414661770335874124182633505783131067091951420914898021698178100414005292562851164354441379863547030236466103444437279462744888230278025960841271067344799391705432666461040839050931751122304980999359310380316867509604246259260920810206479241517913897881864566130555989087699583894819093882604515574763052839254939974115376635594391176181881943671876829103386347352730038830843577972144477399057958321007295335259588017098584957617466019851145020968244270779700018333058259207713360851893505501961462250578967659935195632194389578070914502030560583884015566412483330724216712756057397751161814257424364154007049304164735011051056620156549272576293320205281158716246869506204351362277144920640002410226205690281965279063837556984684622827213159710484095514041130020947100360762017376185683297015359211701687376731155585482968943610278837628269579706959900296367427343554505035046086259733280531671622151257188383738486974166905389331326083045829942474238263901070258814130279169289342746244288253855558197687519893069936035942698383077339901375314196592515355193038873159012752626638622534840595577521130129889281381223829773151202190198474043242508143091155992870455853380160331929878173420047313940980127817593081880590011990671822663494331396249872073395004491407831469404230314754559928678020126184520785645680399769145687478099775114843846479871803721255234682799222116235926518913620937840482658975690218511531155845668231046406979997554066920758303452409996128970694389150169887081053671896550290885585513725828536640786177504616963909002134813290232057652583346148201968980606148913294800312037377072332891647546142039319311185144211048564495252765957379536021146374229141715247144561830679935611622548348053105393783380521717055055425849888683069294928055437271742233894202184511353286787666913499609611059806275994056378699442873923449619916205370400641555106359540697823491140415826751535335002311645103723837497849160994654809411174299774568772437471852301021268465512253985437916142107899187499916942840162648965789804510534442240779660805281340812451899731994883224447947621434364368723971029648824868329994546392668529059588125400266357695851707576762297696391356679267306815538227038220968547964297632339654690300971917418410245524524363381848870512915571842899451845180383509213585655007552833789069558470787682689933920633946414977980719300130748159433596700922704267197479253009797164293488508232613745892311531675602367724533319297927142020361312891195868181678014731007554487102881211876823923673503812960346237710628131727637599173228821065525562091291545907802915088589009108759252297787910918932552561699802147879409181583979573985845886937923147939376626312494417196512161189595789452242731330192108946577985081674100486570344911688589329222659997628835981154788093443520187083880565654410617920645961882745190693323377271309614094610657151461254523057486788000523994805869558311659858910122780520880289961244097740047675453266187375980124290478337144656712903356651295043749894845274170421554860402057855623301431497156669218550077539565150763613803620370386210025748990483895088336935501956408662320357663461996926018211115305461953867615494764073795862355728004072750045390807274636035308866356514752045312381810413461762958359007800459915256972685905419771214931262010615177332594121885211290811053233038566305770094767208521283991410300422684885321688517775396426653925276237841264169619106748484602787895917365516924127783630416620267383404841677422364790092767276434790336219298587922974939652764938975106207667086719387326669723470585793734191451703742610362418138636517779020811020683439945150521263943737145386843757190549176613438069823193485702303977159992937075351935393230202814419526458383307233704580724950808840991710797013770550962222766495433011504186180390267695062931771613206852808273063294632754561757331294935774945203743427107360529024027787235979102228479420378825121419310231983224545912266193579350949933908823811050744808663097886287096321232058110230816504581066989886231156872565320019756419737194026345832196894467223809098286454035564339053689384874254978841189263127543752890997139835141856600260000826756610733492140475139090245480653096834616770204584745956723808468793525126261747488021728880718642738532291134415690144906689682046711464920384031280801118564747029563288351324841914061736349904657219187695456000581728084883490502030138984244370233535191832131576375033675546497299708658584846009573015923302483723177726681302230681040196541381125959676851874156924522067701445142701667330715096253699698778337800688947703156127160914031054262231688352766721330199796783751089313859468446793356656368796075310682053976232943593405593533213956296221996372672001193670701898273612901263054280997261166561598450626482861914255080154972222075697772925999225323368716871410838958443528320938551709024470868063995560625248108233219377581877165308955943757880649074468254213603972875153680119547409110668801237657205922619723956628315968043579910301887449508694847361930818741790671790118074882107361946596268936560572275432820385822918097068140861109791810870975075619993572784624302307379374735221208192428955193738498291577005111004769988199362501907632596560268815905285215007325766507082665104439049542020666428857027662711813900051796585816617685431663414334002704523731723105900627772837389767870471625881552097131304473801406858301748339991345203949094512352057199704412058594133534196163233344111532608708926825514637510837112995197746654229054195409274242656921751133927512447672601500327446026454870334030218942786131111989258513733803344084355384639785896783205695862153296181908781179186396511531588406781911098057517167618379433706378437204657132729949919923709124826962930710896858317431355165438119107000575750599512653180766199232337824985774674900852410839212707971402876290338519677739195998550396331129017638416990030017355275594083601390958433593431295818623062226034111207382511360176213323657647820099343080873417364581522997633823174225710468247900034761390679151109293626809626470530615684088937108842946504310688204253818572518838949560719421594352630955442470584256783176520576442950188277738859873335674975149278309737234844598033534316413125968851887082787021256284610269972510324864027472285117709114726460289458667316068359282070590358644638012290881505782060256354045840655031816655720610364727979180021364576537677913349432465290927032839847723159368454887831896237045810014081069485163948917744187809325920439211160483321136262244534728092270353061208465749046477719712124348801223050870789537221454218068756677727043090070306980135556242139904349378061429128053781443158701640643402560870864132776229269083313671417200784127771006249330163984374919357196909121701319821115949078587959628342448342145869793027735163426903025977203417972582919609755633026080796149883254415974378644721684036131909003598451698258088597228051718941112491107916315185505277573251517811267896388517636897341845173324486845918853550794216875330092778154809160892079434841391660199942529040354176942040890135185809619039644924434915755729381682939986572677293310748177692520532705862992273269441944816620124554495550422450281295249875561636865208230316702994306667485908562751820107327083903701428378215561528926702001127160744349221685222663142432463681697785213224822115675184734598062623088396707567886805869176268759017801151996109420609222186104994028621677625561109211856348855539108911804892010420752567161028165303946778219993023667692730959734540085337304474866908816514252113600962499520021279265611447388596943478561433210310396226221359051201496497002489010358178689150068698848496370217153857902109300685188958476801026913682996334048514637722703096450481831405610474364163374318239470973233970302416059238056864756500046658775062526002694626063539513428997908606629060435438230140332221162767403209211873114194913800507958126512436143069410531026616731813661338078275771326773440916847289279385315396286329359328390822279652980584981296515018877552653853124052657644974725078929214759379470424456046826988163394704964670984358814614204016373640639554598617401947253612189902009975984438573111804644033136231508615516654072148688749724768844471943480029485650085183420283786291212606166846545758555812607019904692634257485083084057500942424910444381766125394278796494078650019407137656132008306402446678107171289515216509005438460426311032370493963832618546306223771912080072301839842471602219329812638773239843923217070907552151168317958632213835626629500617232833900350045424111891496492170752591718283052428323206069703784782965386694329796185409838050077528912559641671616448725700681627067563609235948929415118459764688821646960748481858603401661115443752347726840540080107044716053633082155340669345210737666002455544802721270039881054287138988544187813124238366493755066830820847778328730539134742206669728059228368779063539712464654170326559186641751657795497303964322765970594668401665671723122485189130272923520750390817926604383774850180848928769338905543582568971917678791627284176023228795321224283482238353901008818250575694002788302659384431613374787031167473526904695301874367099749538218837894310650286295808280740527981947531059148741155683836689105141043808025622439356880948659324520071873306000493196259990999961053380641936914003557703745697375090432883413416927379674738374520259132670067557793325575449214738244396932519190600734345700130849848439184459118783260901231841115294697067731740898855272853600325992574996861788247312413787424938935790422885702155141331408134717458893433286761296509390732274452864579096894583742653605365850921570372669429607449641667910527550084916085523572005359251710645069667399413343552750910471024252421221939617142241029329129691697377012697618141597956108538746080424632450266125892178405759036046368860026933968951598865517882134150488099197815803888951762108823411117474982182178410615982137199036305201485681962560180547830768122960822458537964364428258794279689631476038596315410474246620680734150300375688652957402951900484544283261925469028874588168202669905992458375814363929418453698571074668153319634491045120833887299423003632927472181179651879974398245281497127965948597368497730111694699053699138735889960981327273138303704402018767111009617092243958644474058378701454221014628195994112742131375006902913336645603438755249670406399225060877831159124113766889755571720107302067160235796748329445045453601876637560954880104602285509412881821975925468273513953328790052596313281971176172940709570759224145915430460901476472546668494454705039242592539071434172916156304080355171304903326997350854740150755890260764404230160603180559849077076300266200038189508060644482294926451430909592681691094154790772647637289600653336716091423093198909472605192376759594811008271447530825766335272371696938380461518500344936525003070186144265039220379658435050515932500852403280135385691325738398623773337190602078496115760977637883363754138106157259507741830837580841632187860983136907660266840423873284536404031833818956128905626247761003090037204779807059067317952194812367092751999389028809095212580332066284851206407077683847592051316585959882206726162786757757644590517868805644191263457371766809012877244792758899305167617017308878297168199081900860242716628621835010777841025145122590685785921525354999882732699457853814581740357086663339605947898340443921905987421688153738070097514192639953229651592613059537565900015563769849357126367893367578807944815765020811401841503018409378004331517199251894276848927219665848895012469709291715720210325818987626490655338075561013450509990665782655308451982288954085285756137870343388747103369500462659331482686685073237873253398478463874082185089566954104810583316655807388983670566628252896251997439016798955811108919615955260022224933746956068171724310406293832853043370340599513831614197971929544136403143246552922829834281910039289548847271296781149482110175634159523555840180198030614258271074228676646652347243075184775080935177777412975915819183160512714788257636037747260725576561139178307794137738499689082687881323159512414160797640058997772451704775671224366233496964055955514899650493808696588212790254856270130538354992506419041445155036131480145995205528450508184976389475298189141228636016211838272296014921205888399219593599201906645109262497185901646960939505044869301387037709004151801024475785776558583379796147267637517609768120389664719427963521628599026961298553719810870973098977356001880692480167098795574298376611213267138815971443518714619980391138313911454159752429562829412311956757087370947695599637513858774173143097700547993606227402958935658588986776499881501621658857422601723537699836963465215604609162883756794943141208727035535017785452757063408182327528794594001486377072046280778138240267231279657332101116625990438387125053589800385766174022063386056660355196482966884736383651033498603791193114270072551359754157019741203722517654228220014227144146918150678397044973653468032441956585620176992923079993447908681425597948209822155903275490805372856500156071964141401279802660943848651148466625014829321578689765663641007897166829336553764468360002499170423534277118562707842230359285433383685011667041674359612113023241978002698803668003565689547507498107978304159562043447524304564626233997519739340649989115125156536072464871132243590732157803912860022487904459787784726006938998070229737727102161427584803391055967127929091744110449103685872787629174473276255477894563818088661336925417633826924311035870793183706691955842625614254613318727038353453870578150071192752877295040454092052226563031404304243095601142225630402145512460764032394639137068569604982914579300944496755939806778375122515774207321570045470403669933030746492411106265027993432453506937313848876165363210964676711312732460148074435234497644049546698086052442440724826070553542054008452993203981626250974611714800670557002268365718987569621624920365383047556685463202737440520149974185080033012845208232249041448553231453989018376775998527941942133017733697905700428063794942052962511195266447651410268565887328936999709356385340893435966855011195417652979888193027182567246162501907663296137532005608758650072653211193650635868997214188117981414321923599307638849640500622336203806093531570480507896527451517583003447600288776563262546202899680322651254122503576276907131261675844478699564456652661776293590771191544088487073037504508913812203666232555389996632679902570184870695796818452223371867620943059564081260891097552599973335182010046096900336584958145389915190120899591917075386217762369956714730490757401444781448270390263579112029730540921129473002345352299436586615074411608029004381813842365736426435362861736739521381528671705634355642634955763068972940915517048357872163861716259181788945971156587693213929945432393993152772824095779848589882704155364475919116339837132955798605511115771426611640917056499261744892887597349393823768970564901986183632161095862175138534991406761221396244502418585334268133927818226796568109550713301496977322577122822190917791678218588590314464747845631451242677116614002209735266559502451862047364789990436290097258873735201131070999976825648826134128042647683550958954680344543342695829822631417868149770177488796572632804060501367552481958562834913488664180212042720891213988279485461789013362704358816018503733094009330431230278466549039010846259752465365155843573886795044148881049580746620175968327068415345001475057098583584967157041228626387795098209826647967193936245088065870387780199182164262391172913161629407836065611014908368806960574586223906727444559358241976206457491801291602525668338139590277624158183858694424282971426318743322427038487178964060309886503862435687868357174463628551907108428902953915764863155289597480647578811569079060415842198237973849629129666431116233975651139394836028135777885638334559538937882849627849395063096609097734111666985645551283011546393191691507042334618950420070444457327758152969836874278560527919471178905724180592863668363051946453906667823080891065041267312996201309963231201879337081899099123018133464159149826714786916462525623042147819224615057456006107136879924901525402554519728491186948029331104915704906915714443951709210011597555748696152937798347916685300923555667907560322382833874633150863920567972663818855316789284803366312211195790280521227408838523416947899916751738088554174523572796044295595623208072334344501812599948643874658782514265433543142755162142808539485193100736957032754710146113614977878859810211222597186230434943621237233400243727783685030355396903028243807361918261564657873243660281267416686962859101567683894570464761005022704118141329275074843137504847687390994977281077186211259146443593886501841084334353258876793850412037999256744527149834276492239308001682944455636548076911850264294443603909001168393001228710013485979161365434806456861688811366565472766824038502165196380376971964295978155152229996335406270748892768816129721897701531668753272400854458721478077353908605798014363657721685541570626825853099744591631874706016815653804138970595154208098112470071431872022767149858579974124050789316981643664852400836763338855164004852838800143778818947511812605150972886725574451688602708996375432505658007675015562884160839563036476356373808531663985574754599124884351975529943119636353442641737995129891092530950953754617994117664877051201111411151742018005480810002521484702791065384706782173499325504369711707561753675069802750706704446401279323672683384212145849452896677297039339870702173723907656812611711128221699942806523410061706284117795392068348412215681944602108466437285080308811390723672524573473453410920304636471299257628801515979541372961712581249017865786561289172616306172175909768029475099636526913473779527398703145287940935591098160603777311231130056835718937815183138349258878474469159497859937391232636210941735164273505601799787233192744756910785840808972663855463190317251821752282508586176595520096529232059918431696637310659064503122364699060750548435744180550163318975058220338003864654729697477515279925670840251986072045721170647932603324981804063898717181145132299751663486172042551842332237552992716932211725003383049202845519648121241918644678499524969514757282786985251211137715920363111714585007740418259400282112914737296623596576413903758158636337058188515291321189626345072148986597718761833319124905166991212398204267179736957250353135263377127505358227749893306106366594623594545502014656540483376966423967512394387045156479439884869242617869784414177332930078328087697755163237888891991363431115817864999549427587821445835298628301058331134259420335198683641288123489410706108859039193381659207015601902195013036179183378977063623045924192514217927778411690875136562436076176880803279212277038956322473727430115401576706095839156775592855371242462434821510667806459803715473606618546734038733525729017035636274241813288764626415145835272339040553924738936129647568955315897188185325558516364795923688739905459156183062653561718834853525798694267061868433500020402662125404745536951223327510788744745666923386646267430156783619120927920006850599204312394628052706330511495789954452146726497688250503079960468702482115081919135520805209869119127625137686060937832706326696619620809591279336911287008529764943774521842019113983464165387961320184115979106111051334853564864104055274498000889251225250277507447075494591608268782126700458844886140426771529397265658823003032407902570216490275997783467061212116860371199058415673484529669133138610241687815651789404474475271228519452313559878515084269284389334508922455197644307361819043600848603247062793557630902433550215383307275923770975443392949142224279765287224129381179385407254301538967783064858863958778026408703083881104152525987830855830353942216050465145019475987899253550619979983369075261259916262713433067607235483306952075897705465657746961238850464528227258762481552333223468513602369413742582492277784597995257420516537991416225689008129642064966563257025383695241766427607360200917191615680329251502769320833018885329872686054753874620457357370072487401170620918426394997798900329225011175424779984156161657181629758692368090063083020671655299923005976430504691747823347252896264234983984847663377660761662178030003093097959691787610355391545781542333458827584737383944720876107416856623782716287807379496606565127904472037809053462912963403095621444114247275012463117915194936785920855503462246873973965551853044421291088011554148111738600859210722510641021942518896343525404902761601596786443657566883966773450926243175178683163927648659907671095620404075769212926601013673584807604715002484004635635991058712393401804028156598345981849706674205584062714927651965648702385832913205326138145621139687014309493751330956588387793935222622753495869922039388844607945263055065435701150191460374801221323582408148862124200902296135031378396614744122338358990110169323535948518191550552280086825548952240603284192912571028798222144781048496786367647532448763004936642275198569119718287932246868813798658870196860512674058488568408024565994136946463372514972525564264167784875698259389450309197204946042525266752684782302656228870752196571627704153521228203448843960623793128488624317721252767427147364949069697218551090590842338999267570022953114615062472727169804288875218089952955226470171906933229753164558651186750803067063269025805100412517688854958897064797349959423238278135790642781643473775528985759506262076258140886248355535476028528883287444709131229397883293610646639607260296422142271329304647907047244749872270060694888011798040445912916074758864666465471780483394270937931789325314148825981537368851365111066173135405246789819820618346849013199822141663937934676419070789828019055924735062970041943634269832466384951215783791406114820226786128420091008808680453298973436457219991578989563075800689869449550319557867990055243839382388705810310769753908581202782813175638379573863054237864477425226089661307279248745055580194896818665156429837514514093789063728428509485186595329924423617030039123104963416210399320630982945131427903708719605397247357942054884587556628290610763605267180013367852041272849730451824197142501157487404811083072030761729564891906879569600822675827366075393510969909954256125389360327752481484047876801954404498889754424917126463730183885392056808684158414236144476397900913315919480742806819561273828025820568386279617553347585415032526233590758185125970641244351720837331598798919401369803062159803274889685837828279361437932497464300889214159904196174593654804973011964286840093381794664017397850291388124251225724673884756306583107368726405243442123477024883681018981499089460536360479903183176880450840867173696026421814079742026398785745066524027774969090406353754079580323407254705706699909077691168213315573007286029136507704162827026559453594218790210701068584137336401502793625110546519537998713689130607550138769890721563322140855955407361231844287185618766876890575878704675916420431116214403944213335611213722915831368564302491883455743986782555979317895754531936066189062375673350724797340925904431870464353244304654157444814498805821828881400292243249805247696054679845685398165430091585361226875850270828495282100518319870774353207408281896001093561399064455534413891360222775679098277618177623547080867716841545254106498454544359145825960226125649865652241152288318221265083084894543849377974977254822814599444824717441867338676447515927453259403175646738132295728730373708327205707238826652260092890785766449614918332123832463335252546969632082460524390855151126972198517906100535268514664945246308659117992153094043417367229791914078760530329585744309121197295666681558528635494546445805378372746633284959341462328245382916524148834654915450089133005615061117697928151859981218264280868004149030807079107942067786226948660310592189599877932961074179789913415920766967774396003604788247394951688307207630888344865793719970413266545076996469038888644910037530847804174323727619303762771724747183574015538156707659596373960942219949824419947725496842504507968531657057755507758270176370509714491631290311842486541313851369042516010215632592044690519637937905672451908817026694708419741646667618340329311230533919359118846779775757547846087349417550543602696361214294311436224738859985615118627190344093855163085843225678339422273382245521484277919019917201909363591976589487895727129642319468073176942313983993657339584862234269704761678985819949559250999637147565529020926456417163183594968077195461738957438976248261702776756488451218340205173583917768371439547969648307465408572845086220579439281266277773543430069495367895848942429951643854377291663520988914632561385500921581826492896682728500912366572512574666447016507392700439489043139560828302649392002407349157771892094080883394938937887436221022870676077194459391979461751791989318931283587859701410710017878744381321098647301709280116687601194874007233556286201110867276889742901580036217687053966079595738920307520285845974103451472914661975107945909047516838519359290855867658994648289798588321526455392605760480117797761911550460316076224038997475435760979471762827138426912400789495859745070556520022558738159366537487433742642920267163915821069679196251402476754006480642136714170596220883830919967708848475812167658025312554218367681699763759430761164683682681361450111996363498155879966972482626455736354868342387883270563003229869654019083218537708858454646411386224192335175498237921796474779728271855028223436063003843754080004183959387821020367257698217903601416430879556739990691850310693444990155385960220746085998542443647773890052882914074480640203415333423317320158115404893805985710860476124579688401376855611501584277313860728825207464965944231344682310970345261071273572761396328373470809011669841511788025337905667194378650975886261787600914400462312007637967146539811452909637399863839220006998303219739397331391645883671211102628555794412525721150353259304200001047826110260243740114737347218290303338164159891243196525085981664393083937764379193959285122786784237116274837724568694692711560600155646533892656121298274782643430446537358499285893645609395623592446936720632051855775870764562529344161464931854228568576897980308001474301180531656098875643878813644453410315313452759811524051990459217314529335897837909525027744062832710263326138847756416562511154183845217361984632989580085388720706231487542590386949665881971673975670841232764142280301067982530205137349970573511590151710403619826372360596986673969221077766974127892546320783973567984102330160770276624310728236105086268596634149435149823481430166043379254456623910915224491270502924713109553688150526358368360912732381501115195067467877291420833755027457699499464992205474346422037569631727950479271714957682296560385082936525528863756254568548343194591914886337698331451359932836682077268317179173389422079225021573872021987040546941348494765391003570637949603635605770385730253208642829605390197196122695546455543474644294003962925028557382097086869418635569448863812740036396057889642774963197976668041688417788344462036151714303419202552644217149415351088503378302972979951921007168555768211075058337089052795347310815653320896641400325629446798157425688203507561616222370197066666006321073564721153853441474652519234635123874534472794997588974962920565016303927239472939247592446262167712629163096602552403645991634708462119683634478054291540898268626406947512671702785920731681924560635050632379799731471026242214845753308533552213860356866364767045430202680147941481194452105175389504544706909919954111898238304449871846604136854048846205291241207379096308682199329063991883838658518935357416346605615732021363161627165875280936355925264249624564054519638173655146101701381864415977739330037285810265676261624434410196619355798552006805579229640614977807696482859295429468567769847699189812385880659650222453844051223116208545814107553128591426982320100035912636467812272907300338263581260274302594613815117422647032743451590497404078925841836825611918223147478026261235751183615264679912587949508002096879847957692401873551162978219801098871786291717700409752696398090069274135168239304900286634753799876057926400242911478090319231148615424842867225150984094380013898008582019036599413595345397666610864762388124057977715614937268503654493782361428555389406829236839141760053774926324125544978463132442866566132323604162338703205044552845851785395645117204767251673061460746845878198719271475218382161756480087328130184575781743160116786379277000243761383573490392752033453090082643245347600363411067605137696136181827828606519215097924191040114689329391028532905999606168256584074190112666651976521410304337283457684444468055672179338048797005744371766780081812553063103576624781370317716873442316893227670930226153531679325876846542126021161990855260334432388042138674119734918362715092144697351970126772586895508128000445207546913864207444417089732621121343048382111739353437072055569120112455976927717235597776360286202398878133676942432608418712039614092384917593098086738833782685529211722285896708854497712325819351766986841386617643443927406296765638601924028985592726361595695490432177156464012754046012883569974819023253220082657567001713760754431161958517025046325615691568884480926078013563806810346857823930243518235434406598510089340212092448321852456813655279911247128300562083291403247240647016450463013715946580921023518495643737906576482090090274490532319397949145422742096849916855613012530009039007442349538422261950900015855575352647311661011611287626813252575383326793906205635659733142128099216445838321758402054350748853568327400846560624904851236547411036488373502194350610738197121568739764046316014947561082574751922000820661963875550364177883368348780460119142721828735700708008889473782559492654139409083807693577916560553644555043042177888202430302661939227337614303065385834688528212797207510219913849768118082887578109047583646985096470458810819304344906087799382653266972531681653093852676736680783253558389956533010530025501676345152964906903965414925550435337158628863731776867160330331988236964254307492306074131052268708923404091421980035497600870219184761264813188341938542500919165671765440396241877488493754681353921977844496511285705994643725471337637257451439903932619886365166025187389877415611687505851787634028128614888659620484549160735774144946399288999461969247732794624930841056552025495325299816330638923811643062937261188867911214316579537270615496353708184640079795911853650330082178689227258022213149244274639576587480169373761950189035287175483068466494351867803835035809339066584384810197632613033209754202227847784677755819005064756364022084768603575300089204184503114776205487738895057271941493878506938050667822145476771926142109215617622302769725044179963116559419479538601346156438412709694069959785337439772520648059728198602623988358249562435689672894281905569962598702521375805743523997608374389735140366245026417681988125438864036156820640731628013962509046641134695872254679856203255179061120890992370972044568223057493975890455632259736919016287743009551054275283881926394729829437592454469323755229376868332204533424448932041090612206484415508604254156132424665104012599207410371559216159611928313913079173997826055052467513387462127189985933639156967445000374333744702822488851703957330131827318029472185189901464528923260306493206237645449375487832687292853286360765331653294971073116287037522809388718426137684715531670232377763871722139390142508158358813455365980042500225030926248218963018797223959364423239366698225911029889657625171984072641374423563774071730888437353250837117551551825380159688823679836363376284556478001001513063899759329258711734706743308434201832448958532400487570319347717837793359346472148106767277608935656546712112906861391387537670097873128203010568500599081241437551831328806790209604274340041778509298097213394373523064822828028027649692179223206463673379163024663181798969308959093863525853975648018180056420665103221300944748899786296644754698808406188849204788250937469111925884153371566346037212865130444725643647357526684457293914813036368356437717853195963917552037136274792681013959323751294525901366372275827528109084097341910291128035247053358035772570066325609130144470783428941854118111237283291842690533196765567881447867199987664033947167525270238674291016745108734740357124837651791779229137137013972365618492932743099270307169283126853144232098610193019710185594086568937902261474007832409030801475584697621400847954007049723141125549745530706778783847722927626375209512957273409832831945213869223729846889113346089501367580646101291064546934966245088750561364323923496277080710182129712403438284692520426467089174732138541856451884363502817004125088326579023018121710147855960055138676516087703614489087091597043572458380644060118697341365927946576830303198025519164693741695160157781620887305268887672070975366566859185649985704650006010203568061410117887650809847654479763904477056329191765835142051057414906002098637358954140931566635611062151324285500825811268931383366177123490850536967649575072496806771055146577367535204463588008015104036035675946665877920813011113376993597007282449782825435459477016252515317648954085473423659855659215022983609301549689754379357938873231459223447186959493716390677789619637855158546774857860713961578451351833048273908289322016868407665059014669045796218261975810460682539506208972305217438023133501909350014078249932050228926277023085200793341638899282137346188807800070924060360688282336207170433047708041918668866377277391320439083933885976972116847701855963598816779406390385388370033974963175105663102556788780696399450943216092771964553047592898470977325277795520484025417634688985829354802000972948324647293283472140086898235178529266053153605988703210808830775160256357577694622421146165735355271150902698778203472251595155960904921947119952685430155975384452474286882356225100307176443891494393432000786936317146938037901388739982871139633302783889804379158075120725454530416051324689093672375106927790250719489098843456595140277598278406504838123552659094458927023128445547564667691204188505600448491865030935834505292714753804998242867137862370702735957374518956784908938682253467982120687048244376594606916009797970176494599437241396425678993331079441119306222231892058492114698422407158825355672839882153406294972231242757030227942160061572660663098984540352042965639907372464051521551718002649102748979855594849437117910654557595362533966895828632786785316739040632011936895394751527970195893789206660084870832033233548251113928079650956160684120910176331649055045405816581910892943665334819910404955209226956245108229918249533875447207479505192574605916834025816088008231803660544214032390570026116188157086830234117007385971116091312670570852740027603190934359606959249263033488568558188169338390081844838995923163475456002424852233140868336860506294044155020196382224741378959315734258454398267825811331628488776373186532223632724223356190919039648515335185809962704097755792561049899065054386418804328380029219641441792299602409278875045264164327121225936392617896891496897938584502171666875009130995700965296663469677626819662035860896929976322667776125281428043573696328949507407312507654329045405715501915509432443000094307124984446097666217136791189864298272911882763742408989958553908579471549365845569536511523569916568778420769361508689421425900067973294269317802333743015841529513773885281871456419942090640554479459687148447605916795110910605986832142395193613392163990283352172859525821406333208396872300345597486002109745649294032624496774981600254385173682464404413713846212878282725462817821067133464716795015101178532941166052777643598602824602674097529255363486346551294873026163826144316681982066447315217682578750129960239590049131172075359470441557140225278185223841817015305142853361299619104465175590377043765290488091093202747202668502111097600790568505087848902453838030649983738291944279332576527061872763082236597584498145252272309967926718141120342561914950703679032133710855234171089503875895586452992845330310289770591538011996812793625509580237334335174652109606260410708945994977390605059315815766937787490092441081052756410098213343954789796667997957614994352445669388262743169074384296952340711168282765459364080983788288891892406628250713585942526092853266018913063241254378894883343985363218622153675875986417659587111565516766596559367426325326382245005468088029659979375855203543847021981014335416189838329133835426034848969943713398168592987971769865021822129056991005835992706966081390011109576557480480711045108480368218224920633513637624259276695675117386524745697570909643918354291078511103042657886235317836814741389891044497835475951848404198692111436914181867458942309741933574218467052725802535570527796872278243732913750815649658517467848571624338642992623933834494235031511349209637717859711421746354418251619950208909077204534915175869963987578739174521624411030737453614403822805617026897979478746885773366942101085007919446765742338913280904804909046364663299493996048268623296619568518099937283535487438144378135808700512501090653844869336961885474378394140932837007776172071213000141963376525499606871579124028766128846063691214379535783231708790796630881042728633994606022319574269031267620612944816346173990499078784386239021699980033980403089832990648114871037387285367648331637944820091445330666851322299890989711109194539731720604466648041607055256335927826170139391724152354150964259844978232785936393052386336818087853923334201328102037281458202673094041812987546043608765486450712680582562966931543803211865574513801385437366859349835065981063915935598726573912636143694032475655549006948281475233426185815074649868700714022549109753554470022828278650599267596240049349585738418501758955792018712642549774618557318959682757404988814991809185777579291615605382411509306352706305630645158148730782588305161722295276670668830299612202973606428368577610466611053949289806890492901992585334940169872611109977657280602973453538678912313456442196212240470073048224360989090712943007483351667542576024506627063638802094900816981254046181053334252928163055932796127528515281905456741660600788421932015106086098029932767985125096078883527702710012171134476273605294764406254909137482404276310189758876872526262937767191273581571679830756639363868955550653632217113665166892331137186811924523038293888314350987846841194958132408585458358252056018081037515111292805025085795350472235538994537929834230467733279400593542111212677335780542177248934668427955377833516456306232824081645145102495232165838661733300314118916844970524772944058373168712456269575565727588170658885508085467108576460530634675762881349593803402496592932396507881021924977446289056387174629555446935610303767036475994491910535246558256196030416800937990797172527381351621242737648087037882268426472009532624824258823449749265218609111776204822416610340039125743550740527695936015828528303186362261710784242565266602180597696370666870164652982624981084976668244756024072743365277320161910806266729768752436917494606540951545741233917165535114398781565796923382425431521788451394067536703872667124333709639513994352621320046165006645761138507739761782615632216609978443289597773369856480393346833740131863078512307660296432448008191014230395073296739464679235092213723158772651512303065650365074265860559800766672187412234053177100079710671447757855083329252567177754002162126246033234383500608251405229910987347278202726296410183011703344243457040817459812483360662726227184593958678164388654405255053820815582750894724404729732520596206125595120637409505369897256827391327160017472508766439202222031195326446205803899328196794751552300587263750238735844749440689507648661630782301813392313938336226758288939989866092623852318489488967770066753119881178774024011037627589931434517846606998500161920905452484974779177610301723139615859360911791411418775077903757512638877283177280581557060796663196034356451150043644869074858969897812101661705043640011457535506311174002112923742867315610201600531393099410016047371487749157284826651689663759363641086374356629889669120604518624808438750339230985505650384515203557140908948919107394270161512640998784176339650832525904792166717280236833500940456122090404064673636050560378494997616790862526891939966606160143710959933959387271374603423074479763628411712989067536291464355137585845858477088533189714034982353047975098308859907874790724986206235048306336974431200929381244371713121411177909826835149554067398620450817051846552616555365227276540564772341328440892221369899099107957830845601145812989142934028173983210842283240220754067959382874194228646362162953318485392636256245751449404096189223886453042313019768445188252486359943990280509908533497320199360805749558767760140257129591147789259901328111862167357533081468322585869039478799117180258613851651690539870192294087609373597690653236521050947037205628021343989103640888529364764510129739952566418452175237088916443054598157735787950683005673076912259912475126301673253264447791715012635854663090784508673063469916083759331377397389733370303995371504512702231230934955568883552576398909388710680235160831940895754014992197888684561444368167755041760526660072171139450143344533656329719418488464114835065176333792722395082376289974764990567013676832858430628171440872372408050192957087806959493624669224516399961074352017977795746256392529106997635530277758018895686576127814049948047851422903598154012010942201019371934150030190677924454632534361062718605031782853846824955206513828598145416830689208861868781905623047941270097924357600092613457393535050596572487065638375107160086611218219219198783872167092407074865936684482025256268349000372333397204672433905438268381078942330984902409300924814324566488327054298637326610414408180580022943950313305075912775311248482188487213625146963805224203728668118288999650099173929019370426737880799301834451035742953082490494719005885077034642748295749248558344500402787229117914973268552632709933522241883999332293548559197635712764675307613466702465834973987961813144989815626265694839636548260511466156046606245170970988701734489237906865377107790492605611522551062819071465106191191855963180403572479664620067934365859350867507315577636695641691102191667838357171920023132728888583906764341658508980170895592543047467399076797597910605856843092062613995096855934436059553017855657511155869077062931839127477492171777091587245431365980787530808390173826117359388142337362922340506437136542773366165570059734244092523780472757479195575659885123159345717271697485195088442793655834208155258360129863426622808827476999189221905861388599198194470066491403958967010363594222276310648167979576157417631369099517799434139132091350242362961618427764076249381134445582908721238095910300147264283503984796585984999693257221695626853141742825851573690615280197546904428216119269464671166667248949447905830886775124232245667747637395118928042721839227941940288843290429265983267593307172672341923725829002840478312690325297086694336820742700086521792386889954946797219278893681973865476160076424000071401581968694862326429862185993159847562204210527487225892706719844007991267094903902510427831887076996062967755555528913605893180888790146725396003158386654420009257509676102482552821866017734132373454830179125593829923680087321813239602078483654137600312202888012622666899800706639691711514689969933128489294236314082312131020140472929948695281884675990190589060614531708485630078508350179552442067317673113171055774683804134628360259288107941529220436480773142136857117479553785745909384953244725585927248307682490282114327184250746541589701517113300638982721726220264233502497884953924109154733029806619203777353639094646336351097567597207851096348671503862025823307755638605107531572073319957199905251061868084906120609157478880971194910656686129557531274787723042482235794225140025756880149160107140224921405020221741416952748797631178089475312992030449429247385504743834256024853882649364457264492575381771060328415707098553589728942378631880500194279399987917955431035736589502984184420346332893459446973953479889332785180420343026923394694825679370467603922336683164987602582177421995460896910594625202252102433011856748143792209485970916985309272931771265974503076835591700564887977773656242993896325542123989010647235851582627178858405581506760531251861296499188976390631902057735272140537068193440462337385627097823335919924475052793205873816385923489551035829596796005155101195677510257063887664635694475637090053386379457322191799306026549540121831730006896444912442315366143072966861521448887421781131102818256056484248875884849251585320086395481102115997184785994071308902212556395543075171590914329117165022608563318628955081489479243375698763898144514215670805230210355678947447619442889469044831681843510009389841824267226248543074932741904402121385576587605021262413571295357025530594494018437542176245943661891596920106816214511928680132317540010872599514357261178068510958066705257293115997834387186120617022957830357757735375776776002544529133859608475165383282433625858201451014983082423908147709390624549228256131210820081222488734241018043553512012955741618857954435496429602551868048400637585257297010295623250273277340003738447596236159160180617717737473607920655102000836090702498245387978430922424499224651528800882706497122172226760781321493513726878383995648328301002911640379553362386917364630232097638234732642364031173510079588124741163784773977873079348295342541643104788919585517728884264600035622247272057172104059864473020228129851722174311037921472036538396268050171503068011089922487149677542996983358042097655090284617015403633477008104741743152885332267773123451286469228844372041770835475575892517627780484896766275021660322401082646351714739421788399078245355646664290089246471613482568079824562246681808198598770946062646393397495268309151941861489935349723458180402302668802763945601001340180210914420129297753527268549889686039205153052248270021715252037832565983299099603294700825221092296084298481539570542715749353822848649644598684929429184506183267701530937426097278828386042211048515845199685188348602826056574924547503703593254272511133276810692329626305332592089292741700733483298363284532350262735533593407678954022819856490001693086679703054140134722012529141869485273659730128206695797827799770705491640244475042988035408188139418387029222301063911651492961514046993970727445132749275847689395771345620447107720766181551823806729556516919255743902105099900125845582202655148932852965737901325714476484965125137023785786507705307954595467271067693261522921409199091060379684781328986495216568207663046296958002246869074342747357473277091501849940808089286302604290992386592977503839244118506119028941443632243290340014137754381439196084392642041914626470440428003282230515894841492265044840100134192448816302264983799941124344663817313246450763373726451378076345166516565358019088389203278376969199547167235579430385692087240119854663410784462973636586631377835323330744920925642615048448675975002466068168821079579447721925963254898807690893589139242052471018761657298487000684360534899894045758884641652483716655552162209410849939991893400005662897666880654462362640889068381212643883672544382642863242515083669681284395527835901935351029045145066325839625439256296517017945585384424188925373873909908213270142069677623227820847929198531257655470326720405946086120543050806183739489489505659152499492946724258266021937338519430719162936462019016087056570312316294191142072134628877481846412714940263430945324212166433632564018089159605394492840781093520401977181482480580109141714337264692923243075798509307755270712196276250487551834482891478840271479923766496479192282505165115263948688602200441928615959936243962096126049109009396178702019429229241666871680017421006299126434132052882706666851722147009412299803255925221247168533237346760468793043033331203239048131519627616830528858781000762848478069557441346714474371613588931817576640880853387649023979678720974679027389659928059300510506091330952495929600776699414925570601497798462583718260358783681463134090749713294856596579791076062086727521943588601587468570753621025351645356177337616192696993488650646430656588212047585353761221318007149673055002588663393838447496949131899558302727280044558882262430105804515965987798934836600520287100081487985492819218037233935409795361249325138884506311793836159056497035244825096366501259641605577270471155582676543500610672596096425852321021310429179812783560873646724475669647274447541603525702415827037061821330345819144943260852704070933985808179813095333873340152017505238344297673948965779452543673493465273775305673794203815286513575122645215084094845762810320893888227713785467649660860758008230695824214534268306348062584552024207161866811314250054286513043779386685522041464359128623407933570633966618797012005674224349488546177819792116305884659900826847745550501961304712067303239947177141230321168315393614534756835595021129316323606124888854952011404806567343823298463503598020897791300329057496064718719933163815969329839049240019547575268606664711131458703598346757650028827457798663575434335931437388967204099606581056856490388313518459922764019818794075232788068279773292112099441818608743062971993089581373451644435357825657573249586163708248840267646645249946841591276594023853714674746790880881862968270353337535590780297931178320016602688105642175141200325339382689078231869896079582601391307909349372671236320163729020284726581780755328009609434359357040297925030394631709498437303402827432659881781314112242112007011596356012746177082733372921341184480695348612355190485914311835609559212605232254143193989115499645780256031772121060265634279588107102278722300999923720862123100629993486882589461936193194363958065140363916311167516745728771982865423862913638155335587399259112468776930991164244506767843814946453271636156737326205049468490587209560700121877444255330697322892161790385314701552525589053101325150709436570275274508371614228680217107263471526798779552474428594407743551552917272521277695451491286422168301193249904337775761139256329565695673616734782621575761792522471543542573075704072061970136282867357951583699818071558122075347664248567326213072882076837092872243755562319655705728939637545694563594704765252376242667081964836412940500627049370330477628759231914055963944695322415350958960773064734218777363843765274705463218565287070569623188067139419891420437087581522188844862671627522846264734710443817386596061803389720003859400759748204690379301766342924366030127166929498862099195499430439681884888004447501418289106110772104586716912226537271587151997096949253068063457531458486132405045959592800368572046398616975364763447772531233223458226772991789296192035842416265938240220382357097121298278843037755231474125238615382881633300519692918142759365898469408155998797712573529514280307031346080628986327846345608725905627750526712871610877771700516599012629408081729232701267304103998126478378668157268010502114957114086471153439940278782999230148060894530975314707182201503035783875839185923355384626303595853797524204831566317315664454403604163533085097633761360218331462880827921966413951080133443807852097226855312477069941110945186270114583538550286162963329956551899462882966266026808884893397898736654134277368033083148895302416830494500338872665825254666358692487554069844080821657150200309187805306786079750667262875638202758621160834356746996382018095240271794015178222010488847504029744216182220409630053338726995186622926729275499377243445687403033163269998403653364990611333567484484682715744581672642707947014348790643478452283298046391028117184629303887745644876186109855815406384690449571218675653967640782460028572071150018030083712059235276999048428554243766776913991984262285856990898766522741123710029859563994716490340037517116859027629695803829175467894117011163421618463778729435863489992406825386200917319854240066891128579977846830262095669680792445650001220119514911235635811435524697735457931167055903951557204465007791038111269852520159559003401700581931229302280373339761453086275898085014222588165981379171595265746246252149820182135632563679313260073158365662896342160010507624192862573222331275969863316254414413892245195357209048672590042148081318399053282995487856287777025501491028800870941329176464381940137213220182454522947041173340999284841153026891940030129340697299561574412323098373761407215491654171103481497486621786805364949463693426270396972453171649445602718611559517944252138055343535886005368742914200521085950552220065925191369467600799892475785163361633148513694182324014195883089668390749721418684847295193166208223570869997235298865346990916358218243649062070762223830161834713446030614824597192779842674081802800064411212397638742324076249886724439470050930155656205305946779270845551603400545518193195903003771643873365132617755585095112087886328189112840374779011626895994983106804674433787013927606506162649454390420837631066024676527349145578522774331166688202797890194116285621347949159505828513527987662503583543279450845643489617170107922824372606469603682521455929188707941806149546744101873212284839813044095116424194566695229228727608858265079744492473514162855222235652027282360068278492723785923521580522103774433651440249160584456869516763141661385581765183864517999694237629574606390941114541545635186503601835219061307026357359076807984934813081100180137665141622477906144476400580938975202708505874172602894148793347486456942667778704057721120037926802815008352735318012038762230480114595807893883663806447753626740553569432466032482558269859561473707215434620289810435905116326635521461484812280444006307826067002141370009834323604802439843548784273710300543081369696662655270537613293516085418483370967887773256586516040600043597251892908262623368591019540927967317675246477840534272485144805739673149679804875742207152130622140562001099762499953169799283149011061169293920410541858352595512861906484950570610133957334370825746020094310786291309351587102363104374733792156599032213612989826106487142924556090707057541022690540890907566211786591175313019444194325741187961896804344878864230852018437632896787853189523952925039475962621494713494211740152402946658240070317887464622437942195447855755193445651184915571745594485526034276661517255430375641354835183442191558982977005743627068937589373310016147494956238081169461912670448290019435640255125346362318742905979328350713316506571126494820936430307930391767807633314444213809334687545328160724905430331794755408312331411573021860493104558219983473548159362532031739018035674067643071667083055766895687107752755452971496212990620956553504115756657917663485280801041945876253575335934903170588633467797145179609749764840338160874588030479756870608305209892032584506338570975501314265927729811264476523037701973030626015744966948257802803768859664304657936873229598698329395498092089742981316386460116577159488235999991242976762588600510453950508098938081908820269766356348481809249146471150823603745469096565557806276032510532052804540885203714642824739609826270607970048116634688349168465551973059910742251344392548617109578400178193343343929783733083522681124770111647322899565190070274209549959955241680925834787049611953616555026326756693194387448556985546535721685935646501032818960905270001725686720077773515819038202624140994202193339142388359910494923794837650628363474759653672619187616592982508948658140521798069210094149674411399708920942361742582224728473510987877138775281194911071289161745460992519898488165093651784071201749679716011473505624174472730411161240098821976927340753723635189899504839875680050967707870486562851524683060585057091504676888321958855672054296598000898963750503203245880741435296561896566825396430908075886555574833834397248715237446757523580175005711027186062072063718488572692824854499512954257643169207532040882855406268287403891598249555101577947296044247317108617072579276488129378093336141590817380033627174793806946045298472846216345297652487386716177160443931723278553977903653003437184147412322898482867089601719609371315638609503533126656585018680162806753809449677132345146074712320540828864576374215839779521616984542890314589653355152175570250771076398286175437377213345846556677800359318235380212451369496880581935395822539054954632769251403446233568138718577464535252034350154165570222945265473309911478468277373076775481847784428710966259874050715549710421160369721148658733168795066092991299725261771234645133227629933937518275740349164924264409952410737659317504607141294795444357770886452623376724467123017737751399560946357151859103505113682985074247249803437200916317081706610081370975959779587457727523092989467275029228419635499893218620346901144407085769203139968069224495652710885795835786958942022982289851308774809695659637123157974854219732204447198233439788316907493389974161572438750905657213291278822170996163056937021674625271468522094508482224690106476997849990498651286448850419151157484397555712764216012606292342527438613321426896709538470514706159623143722400493597044430328829142307086984477202717410366938752259279190409265961703438151884787214033809392433114389411427992095422723385279239768940278215478647446357421634568806777792573991680073180036684666877864663884333563909876964782677333425586394804123610869876629703495549244308738622564482355587900793288267216227270720126171605312266455926604843264491612778314188502441139536721241198183705702131227059904339410658131529243238558503513509724422989303111919629954543813338895452727331400261133347403460295511610424999543202828168993300543508809056601602081522925306828621107736874966105580315915476239330584953282023888379157083073673303683549995488876937512910450314003102904159567705081005555242423654301244791235495012876278894555423465475907661405033387744915298203081624224472229118314105542177502255570271448591516095355598404198564384062851658692983665959598560776417353344956975342437346714803106783364151344853782251830906933294968731418095900974677451188211554306078886609012385492194998379597989534625562072960005496396603203387069109000274934432782815960328675808460273048376854394363215585723727484637230859339878110407231678020782015083049784593485763443907285606463040558272727687330686015922795391581335139262518656197476611135240441495579735226717781126017970344005163054126842744964843215386888101698845775484781128686525908833979233846217002337170439561060109958447005988970470979622550277521958141853787602578070705687907769294499750359011360536628453019615869697072042405160077852782799484528373988788417527716432493106095873054427078028246144874542259339635870144190994805855229221923038928877894881436834071240792581053407233831091412838825323233488944869060052662283973122454467535868284892783217730676478005535534127606765696590737886607741663432186587953130570416453184635116275393607648117712464486940294268080860621186681909345117661392874890564715273160281813822306507685659917790038525140424556017526527754727706014667905013077869171642325685020437119267713889839289740395412261402165580217909160959307615882539708487112585018801928265052745738783076175987435679054020013808785707280456680015586545450911549403750619889310350986958332870399834635337755638854747258720174896462881876128585540724328259611207727682706579483411188911294690174634282648465430493862849193131080117575332484973192760593692522919346567684701471004777932246753387779740706589251348684621222326590715713139845598627619847061774137165086118291487054916079357526211892894648187505726131005935564021685850937357616565029999347336706799540736287042681799829369095965023441215983241335664142065861579590097036932916601931986757327562440901321655671092403957742814300733034549635206342854139132884605939745926953705340093260108528285549551567551261498776194826470392584457843326561149279202668320557970807785497901981062245485189473871861274932764264063277283345950130983986515208781121184879801378062677664017407628965920118150657750613937815241697933633177065745277916559410744683623562160541414424127793085959763970568528220633578598817199616395876985501281871774317713325822449108855204055201413851510526085373040339831698698543627590518568862712713830139541963532364118642297203168167772228691648417804671988122576720121433251288576316278691920361291521119566301936382198705158256321410324185168379299793790067969030897421714715615461782317027952212610436486009104889651578425705059586517903975987124203972652905407669726738691004442866026969906767539287090023971773246064204502485047904436366172501121770597463099776168492108307801268998105883341521299120011764176811859155133642596932681620704424156172707949516513041895961751824163282194936234412607771494859444137939174157990119969763114938942456322115128873002038942370615663505613500676513736788279114072256938698625548572425635985211463823479017166600876562370529734434580549830955445224030698070122493600782908622314440946669646192016476474354131190463268995732925361733781463021379444727091615257054378387616052230821385757846292533251579974382442282563678368588858016670787608833112553545790275789808838586301360656920475596030251454995472284678321473814937175700132747940921238957069068474408865347411261417682501044302682289005863185308747287963916585580263619852669475381343400840474924900061668023426396204197337780763635828456693234672695992461520880812615045444760698190924002445107021108122229363745639319652147830788899958926393390668070148498580266748112447416372935021658278649634163576179108633083319486401319912674452745380167537693896135576083565261536937400725552219855483895848290049802189364737455754946164857262846189116963231521205241541013955796141047809149203243578741081874962118980758093828211077319688185300170417350164927069391091931957354779674675555849241480781413503732169838291439014974012140709994775830727112328006547470960424927463848290379789894276265736983414300100813096078001143746555083761985203923626906693966138015465173098617416857409162469044356347034747082033043118414952985164390048491789895709106367048336723148441722600776336400627550568929290521367260808145323840794770056592572288086456530138324077269394150016002459693807552334896768163822851276951850459679747872211207405986645141208818085755609673720945103186295640608542848263396314887134486519826056744191790602432933858321196619159941567655211735445594823392961966898226764293848995774364953678381209561944706255640070373266478580585961536525361528184157660738486047148166965570189532645262622713313985477755810491483037801145012233316828748506125561765804063507606972988625420427071599908837472667240142411020239648623127777240949215539490276219174034006151427098739558238275549599600187655507105789665254178310148502455220237699016057146600814693462200476211713330145177311845959110918784696407738437899806952389141717611188169199858434214207420051490095125282865622312971073900773965993664781663910931167264502225894671106922944448720465101467070478684556430464651308169000452466708579885584590523771768377986698639322631105802779060620710419077493240719204396093538299269693569594270418244667367084742065760728580684030950309877172703985526633349244212261173180396135749774481351077771027079541096340803107276426701122431298917086737209465175697616812410778406580296685933356821839673324068913231728744383415866525225210343374005088213566384906931647014304760600973278869889245881227378919824159841964502432943986091346155770041382449534855567851232827089455168024387904356383277407765247326522948072190479006470953230386873548532634563080299460572401242047430537623023779778999276403196450796261168856913799807011831552445154290184078303431314366926849638746406443457387578235866781627596591859430964743764512408300906548918707380616027670254448716665258854353467963367079521704274950441491232150976400356008779395628860706060836997087017826998377781657464624998966738998169773790997001204123576893939394664598809103663383160152436994976634897869272584471189045062776746367445328438650825614036313404062339505489133069021768965412370530367969509968557374537755385069547696160653465903179493968113354715589849177110738139388626312144507293450037499762032885396726794014281939756649538397339894482872241254668880337289242829029889848250105971904024688091775216224875938955903651735993987578864221618063281615852087546576050258767433807428454856642460163838070943038087164372594197094616917861945832943520118829560783448161025370233045822256788590148731947903759781130352116293039459154316749141816844256609511779245157878330726166778163088683048719170412549190753277930894234605654045510096239424844225919944451350256482409679308670125249557526604605684045477408922545972006378776668898440793007516419359360111502707577750999154232680736104716554201393702685056549040840811787184284311084144818214482738697015938108462581144685596913837578061998268620280530393691242094110964417534927353915199927417538455939339980832528030425078986924289620486774305144154247042408941086035873599917729645394594641465063789666599864068607029262015517120086829064787518006198419902511109515494048922142592465024253855951173455246263406943300089778700314437384213414356070976707798126496258505116833566441775172722065783742209947500026065830233146927329455081363010239460519465426063824448381431834476101287257200907480298159917870588491087590136768466404918586435182293589819113185696949392053039408909876082570588987272688478070033656789796543715668688082720462572535453840553983919112673206514897295593572401479370641587190288591020933785310062919730707815378195425334877209502132261048008009706709201445272471340281906646279019389376578202941657712873927783185697539345516311775536548896405699870651911034290057548675209565513419120853580337636740196552246491183204350138360195794672704034563589622409560420135248807240943382435778445455895989008471294460555965320369807277312149762298400020135183508676060206984927063123141423897517992478029438455813703252267295737760135212880613749229710657936805841902996010094025958814387305244034668287337857699526916107794426879198040552031991687496966510191939903295645794889177336823621620647443382178862149531381298972987207459997990702950469007188980736463144039216001410347391696782637106657530225922988598573185270751927334488315671062026469741344661682671972734615545442970027622162014305793924351718982623678377854127324989251091492159167254733750666797734903386702585855435181194865508054962176128321970455384328218637168821610730812028217449442139978811461132643571154995284206430656798646424261325881156695223630713834135242263213479383309648943675563846942865506506013687723649344202404634374581694426370619346113408499017595226176022546228458273122854650424931220348781255343968195358532454691474272282527275109839523510871668310458547942941255292989184271387584575076914062168670302401416327519158699401723503011335187963959957428082099199632034568218538269400110137422118849314248550142222779235590023278156288709056133607954600022773899517555144589618092773945375815885445946051021240148540525898198846206216669634798739496430909202423655137297485697242457961429325041397188284995507632156182787112260139055725212400549431808254324997638260416920408633670529180739871083797970019951138216937644723064236246059065078501110784489126403950260631791175415898450717701798054261159989551838186624798236025141557035298133566722781235199959658307981753790745032073038953893964118044815645638736673937305505472463514154985246351523848112862802584449987114237271294249493335959855958634344225325324374526363688568212547417728619124224352505675108289333005274975634835431576940898109945667629448763717180624238309486451995766179917978857486607352897478454616266915850834827670421144592539749643287504819492863389233068424445351497405180422798578640569970046826883640351490508245883706564983600812136118154113919977761974109248096015916493715855027215822669166633767542194635253161879059721787970496816382892145003467239785416968112216609479760182604076526796431549798617216781175299895468157786499092489132447070502837874613575675693818897042653781831420417541789209276988931844912814691305792532431502712334842987908178645393933950545698033282529529448335592668447860450255909148479658766405214658539798407720978897013573029665981593842769911476789636065241451343268605294521162398756314397227863106127559460484662965159961552292486105494054057133470134268487575446306887661385027076312114214804056604776324245337239496195319744163067636557869477303704937862575125248996696022950314917059735700367897801904134731859830913489566087364963114292517658499084318261867797780427405878603275909911911956162323258679927106385764482886130922026466580111093671649294367907902167079046631865891673091841555176506317148444325293066824303791733539329717712881259501975839316638570929850234289793118971750455314813044107195836673917365299695448337038222242906019438141098937793468798357798865654705332080760359538100534840303363799586786674807013581457429803884476864509239873231734480765586476749769094601994294897599826270448280408133949079563389829246770681625474693489509341924846383869945828462097191201190832206359662002142169984899822243313633823091011736664479241067077004014831360338560854907306719174414537921357926405142925757650016532301638601098840316337467420591080810870166021727197556554619638453039791038634972350059715769760228865941359537911034508797048200073661682057532473166221364156193395367715242839618928072212611224865688378943518585128041681190455001231248010917813994834170471123846215768348021517753179330031104230233714600731277041558194495442310645065595048477634629556988717710404043965624866834917120624490746018580407222424041251508918801147326620872737632330560794805257586277039410706963733084423458532900043774666363872663966591360758161916088933372112362041751864992659825327441082566655411978340276858484444179671293631868392733517521172082436722054066156686817847043722516622899137504750778922996008332123931373271725992984519402618661075182770416227684074665331668999655037393444128466134624288575019703892426660042937331699802300878931247886369183181848401766015911243313263059968315909748706763472667661071816394411217618638471539342124799687721969905644099869232024100865525034086370210368875943400327494458266782186320339883654568767020563765140296096474095081227945690254411783140842100778175354953764556021182644974409863283413607055790998172367306698884004174856329262593772844458415584272130514671739143502345061998423414378486031940897483770774049413229879343179853063286914620942344148029705852512153655334107902390507361345923947903911510263030375071170001786153638945163553113024139400028158322499739518348461453871584204971999992139334561836225280685048363345078477338110407853345056911327032100087837034303416251879682780131977345443124355083104189047369806633443148625080209581235622412348116246467911308761266161745482042421246661769848155060802980607960966852570999273106362822536958784363142604974540711128745980466116474908666437705411137327363693002572981212639545867302127933686752034429558396779562978087519690803343507511195403996267981583258563945441087845124166133784685369350055634939915909620335511324029961899855079129914666269515270295182473023862935926060859709714790170472956224497008973115856992383431788680182691956927828016126585667497715532516000326335037043661494570428596033765613206241295497188937572454662409136673124835739894391444588803206643316008136379789647027594018721764724031388261250472846001764215479256382631620634145484991630399311254330790105521752374384689360475619325887649125012065529887143430018362554996536147448455790507276905973682801091706574889474585428148538784845607985378664494860366713494251358163257881486497111630557711420013625304724491356335537496314198913340638234792824414316916191836801579661349276713380845305454665171270527709701465658486724353016344060900880562730049175048073262371969873244578064449104755686511618824796484957775502171325020603426047577219613612861928996773041756080316265653893623836939449497103619546258273374031872914277861385342293182622717912591966707072186444497833753526861811072960046148989478393746147862642931336084106192976531959901218961817301160897658949704129505748635720868731366710444440131440420667081500710855732845815934855074760968105321328075980758477950569147106131546826025531492435232376707195946182928726107643410763819961619774025201075371611464748966360549103098495053957262897110991449867820032394713198464864032569811685660027381549517140855392166898194548514138018449081823970635350737220679098729854038420177740508203226205612778610460535034771677958451062583723152772422456769968616067197489090710175392062198468383599505559753231350343560854310022920078744719300068428477695732564311745711156636160500613832527241443315225141812694049139998412605953888713649926577030094937784316922270576138788377533501576484012352416634935065224210937781167273112653754169053545028700901925916983132767836452244775394289710718756572113967664046558646449366478266650148138208663527991913319316271226626784909436699937900117690238118873390846918821349365577393756337642981720039764942405577956895215382838123295681103268796782652531441241959037577231551838568903889120185804200351156181026321873000063820690528516640098985430120028222717996519576438913385054558363060394758173698748732611456381822652793841684164583442193734601970194581297498520421330913301108869217318262538283122071427485329819647413842764303623638808153042786353891420420074185628362279352903847966920854646232964338882612824511019027524210648034137957689805301152579573567895950746453355185878797831146869090750950256714518457332110183131101047148421190450946749486315907046848521845393771765695522044028251466970270462493894519682210356484353582701231175977763747080798543290963421721910424096766840671352208043310413478174406803685651867991676503395322868539470898532184151194720852673699919461990834647748498714308881584943519466228756053657148668017808740020889011296135773092538247429923469229283590917134458879265435784377031634716115671511370274029516510327877400813566118921279173783305471785467493967836700194768346073270677873802769982566856260275307440418438888064694828766688661619983624534839265957373645556298013542841043873923836873415860288198826271967880359387366072761497804063330869648217393660292274225569709101679825706471619643401184886133061152018424378167884359407392743083265222036363829068823959307487491294241877609798612537360925195381313400563500401636128493275566932397505663473664829752373541893029839860609225680638022154135653446224521202341077569928592616157609629384705638785750858714929088764398409714401189364887529215473866217824303395617995340721694029307219779483997758630164367930726979743649596133127238885410673242470290142693460646834979144356419579760282297280537462687639959090508282207423642315619515214191199626674133875334478385351802411338187457470304076684989149152132431523824275742960455415852324786339474144074831765834432173941452948240666456475470568263811851147284859022670348281527028732339653012602045681506814235702169859221448398662075996119682209416504983178711889262429914845076150446648327704280369809561431375064218180502236561414974043824344653386006887841647505862721312983656778267891055895324106879379863002291881718049208937996919528701526776847101548708172844930355439342976170895998805309911081301090932894123201489182297319118188237513811814677796434399444174025178731174811878182434001039511411163813765862102186377937791585724531606972972993802771894841457894458042554920246705615380147611312888507945252676523969721744136127355723602817705277504877732023572637498347481667905910849524431208278644895291940712174856404029513347397087481582247840654828641080065275070507085975674162001658484155447030260345864191984963203133230618431520259680687075435960624590905738316678924152127433975383096754417409228166889240640216380845190073788843571739556392249124188351707720378607040797593700693636148300769461432172101647384750138383556794064416209313781918440614369601787498317941510857234523733596049909473325976183380686115095302253166480084118865630120063612547903950380820347900644023178275295297759865124675004100914971790939950599079642499516334267726274505639748477073505882954813746006078398975402682005507295369509957010089492419090089889092753744853952391786886855580846698842073703560243639554208145151716691504384076962989650627027875847747355699674853021390836863986071806081939365556041981187218805293886824701083257027257364067148457982706839921801828654116857247032888230261358129741282790373245069407033784330404752639156703114636202950936984046558146708693590260301852208386860078793926401410271534966789828101002704048752191926971553266939060151818735989792986044217299872958757120068248477708252612526251285750435924744144684895404180216934565572217462283238987337701978609623953419861638617863655600797179903816203184249256294705085623624960890065213022787882469482549014764525635926391212393416585154546378264836525200503309250849007082845026324897867125860148784492606988718385541112675399864338721732517248975299099161588242350967928107332037652719333773304803634608900063043184526435834745633740815160831733248757141482878940606570960244845160067589312399127115678848301772522401554952209721178761952866725001456292116668209857200562313028647468291524974892638743573894628267406774222927224205921426136514710408841612591263153814432938507584728350963708601897225839819796577706860218207176765797957180425352532781712627543709115140734247523611003950896305604974638978703433747944393084653805528269328755110038672456705377486336037091053683185004738086968638235458906359451953872230878134601991997872550858743995245621323094409145985272546768947471041745563847947347731637453952468945066731634515051500773118021341521005304687741914331158506788106315388109228398516341283421453061157718693455608518651555394520093838079251175543786903642730245089529856759672492008218119340391204625128019137802160780470896216306561232854544701502003289027255315453236538877502961566845532809873218605443599011214728960950876497241393416056005904957475792537945300019064238882424637397323495390869164693378868305981042073980211683991061433542348659045095772989184972167192651926364754993766648413095909066405078991738376686098835484245211520435278468231055767743469958041703942894725802672790303067294805159426390825802921207256276966045423976770473047952410162484630259094068067180773757132401044971155509083049285924412535639495784599838516337663315447758870652781679034953486047752629310783897726079018999861896445365974332196611388392597943181285776465939705140078330482377589122525175300291708620653401428224364231782717546318081709404155681054693962860833549620484758780754452161008018084358365262377248489094002468456493704656951928393142694474813346358869113046425404314835530467692399360829088452076964726641299099212495422373546043101475442454986556219655510917008068121946409943781391408131970050242651979301241017470870130406258720323475268515070415570778725281035011011058466284365175980295956772692833232013282122109307722459541115135072046975366051441042445919948598956203579482769580747988570985299091702426884407510766397832890633558176459107727555542152704079610787055610829503381889272957906261159735748912995970258126233703938535367149629121792901105793828280023864954677566897582022033154777801875133348939036089972306125407618820055123677436635278782213724134775778227927757307043440305118830034454053817245456535998907145900742336424701392288730553010301335195821476434371458861811594096006263505105644216521584990620806549483513635516330573344726296823171798143392897325378255330145850470331055209363025612741147418949165432322182130391590641703514936158675665535493468393489274917874352626597619848083600300598679791638607003346857538240393547520948644586802694256945615928144425048313664159352090060744294639140540622612970743856135632740257123297400753372103729172993581515406994285698314655676470927462789281560429629816436049980986505663518581301444761652882071924507794677335047311040215657144692185795060228449873164759370089822643469653436287752587637465418213255224176199005597521666073056676187954466040936004315626626078509858372565656451948344461668415798704925627609731302164805028903463752682763599923939326360681556770443195769992046198478123405981126558640288421244100399205876594425764619611457680045900309437667490019585822948700037899905321223271129240429604736290430518839480470309018811693086311021709074483498102959460433785398894577901489062639920057461301580408384665796945736357785353842436226750343206460373301396416077862562146808068866179314737090651871044688599035790647915523345833813423823136470292628264265584859654811852074745858042466251633170935742334418306963281145481292734284467861497059607607867113876900089893150357309640437456155039632151104650771189298083967110214812186497172163161304900657381301426530215256375112218315887088578512379139924450805971649142447832957351008858308641715862785464552240712412262439389917940963452799951683915422839813805380625455519121508404054195520862917328152396523597066102366324933898444183612701236628674843069268368535998003962702418712827156435718973342179775987693087296903141491936532645549707529074704888901802077842805141337236089977619080335771966005112613317622658132513943685556760496516346033421704586879778800756625667500256883295125135973986058733708867110872350945858728465602972179441247687195271664309068701447015126713666764536864606817695300046035091302807999401853824792774722012394934046713558026803923356222285646182681836112987054591279909564237379743978062091208308286237730445272617359001787736386900860375288165484369200300329554749581310314462870473712964052479618064178645152506495909713926845564433783275298673788657244185038036491654735666373393931838430373713744800310370145416008814894887340672274437266001493366893187667973270881917235142627076768380361914472401437762143426705645361913149092528126685963465934438003958823087934750935895074136206388426166000980020693398216470317996034800734932076702118357893171610352199218824323432128339477954821809716734415861268842577953019688350570553595404251297919031706096946676170399899017991597596035067070629985309644953856360927871426344843516567002169177841556908790860745286176464144641770432300866762182040004244701186882250494754016623267681335170767250318802800715699376923076186803500597790672177254669692520526274693942712314539511983788171330853839005335650019892530384793990300892982721110235275797941830008244403371107232139434386382315433477611847651735956414395378903515891812212211788599256636169844431262262109996691262818462522761652817443188782074839638941672294695368214307714881402202861095721493767175317235833080985164507112545432424305514942734054968344659455680688949186711840164056683698952338360578378056489025498866833987794091806041038021181979566376468273403100339381646617874662288663102201049966514725172381144313106150865133411786106802372315380249360286058513163534527213109342089073035595441752031808021649237764525813601312402087373101364342336069113006476754551463964824244783827706461688611861751008435824274524243440831358303249447185999958069607203001385775774145030616878007370192387715260179292427308644612261573113472162206207325682382443985961076729023876996797071327666258048613221893832783609200522864824065352043760811326103003549487393688079491709492527970000439867490181472552001872700614497471201324412564842195322816196685725731390120083341392717694272276990163342904284172438848714418098482385516260585542714974019957305255581935973205567236493619664085397548805780740438759823166535270184317343201216653665818148531748805917097478301657829485478117321815921084314969568893428728293309216336978154608903187949100173099637039538626544154987659392209372521016557716115437380545494449255886188671701966038754524505449696133978399824772483849250707637613930425313329150301085468459056196142839612707238610938727931895077667802190814628854605872703753245771096664712028672996864125253237181399011153566167279565276308674188647499988232382715102050349256431104323934116098120496691483377859012259276370753777548379356915998087414828426024074371382490388619219517952100632606963409728226258186417378919458134620060859597858595220198478973868859161735700466876688786056677116776784263868216204622269786376099375934792482958791085267756464112386489338123916880894547042040585789366031540512405557863668656115500556484533262559568414848687993767981436446502915169111408761785042282433290032118527953063321202023720861943413722626928490213688212457089771860907700019582464281421655243325571159609471976815084182508349248480965185819251405792081564982273938200272726429187167876798302841593762252585131206917559048252666033348859464585094909512503757115951553368842664126648087952397498814805485392837863854441961170174568950472157240829363338158683397097857565575696885711071833244688676388825369666386124691625756631730230814513734508394841030867654066737693787417808834438757165335024362015405542035955304924734818513959862169052106260087573911093500856586402722843500518141396253119134255334892590286591493160538152923706976460386522925233291906080013870790774432401082542588277828641036393828600024672611258794325408262078894792747078974943117890158870202785822619205220565233674529887867137341456776547191916811208893494264905424013079178905646715599839886365412824570889446845718403541561100023151978352586433386626372829724259628599134345048260786027616528747876611254935899367729430907838706340926075404730497604076354451732154899973466140844782812961999290497071260820048094136351727230442464837074507920864024281470848676331247880985675127367707958900339858209493712055992746944299778595356538713762630068037605697294170243037364973765603759317071931800087185975807996992942496679166061503964736745757501171607380511259145691756869215163913594390014336645296944477593655857421795341984941058624450204832899895936639643147116072761292771180685300356171495549176270383851693161766429347218770333784609118538260657580833380788522835881482154035107897210737261083304732285384020499504783319802196721668061184284638669487388749738867029490336253236772822356078543944388385319795494846194827929845318792551338486622026060597833907751391311019021525057135280876707204230232051312782097837344519866948789798176877477905036606449833934564298247596371665093603079978786175190631174207632455020875138244183211450113612733584913285742950857442293342453080001643994207334890933570727726608127667987436001552994155820087656489688212242702821242996031259106743405914183810029877833171311242232612528559353014141904498017522141460694901824760477287215875697781144967100566108780134571961350898207886320386533670232054999200831908962295148051660946551051962732936000064598973257574750120181273418989360802648810342248216134904697106889583273219684569713211591047263774392912423918622818677323215034923700366752849575193740959768538336852110700241125892155084094291369284390943393287541164380656554440230027776183997980494463160347898012657713416406538142600461063688919532624344466355510810335212189598572683520122590024829832777328254905008866462687016556845785253600826027478831573028878526115362652272313186843255490554880507367314183415400167150360359068424806782286637790181129856947803171206921928379837887557203078853095088221865041189939476582496936395821090787134649597683751270737603077588829198192319200663735914975663173031721514783331175129863362529693511609829031286705697783975731598872261345855540517334215084519969406362395751966974347982409776574036695511797303444748428810146963381018556525937772057501823944996302575905707714992316437395264061388243795488475481878705545321800492284347181367123628280751763380446995328430481471086709725753908324327001204160981972362320132262956677422232155990729951895890118608687464804445597020812857178888681170106565242701921281327352538058193443468865329391463912848718289592460353581737573508891624208871158133232811508450659459150871476627545445280033795532574314281749211687287701488340848232105391596738686539244112553618690327634228351844406886379827509415605359201346473982186983346323620345258157515546504800378173872201512782396866725434786357206403267801862298388720779500657926194756371440856892978496504044654917080727677226765677573228157172703185076669005744991102059028506145888260156050049525871743202475599670133538583753588472703506670453109612013087043657947009543381542736622638091261667063829280256543259512134650935780160444209260883344251609841627191527550971232752479925925453043022898608727496600766286956988576027813146391790190414684902198213922434636359274533950435303961443840570523994326097960391419827357260587217987222784274165236303573171708155477796955271803518871480899832054194974218797269321248073092147867907447983961772699033582041771656279502054618912845587143244225284378755969723561918892519013785837558927984452428089394717472345782545265364566429291357541740239579237334675427888636796576075431338298504698141460549186240845032795094567258037213390425219947129278062262849671934706862950736565392137006150231849307096873563045297937901986943302912135268432899133794409344942002576587096243819437884134765676511209477370479608013577529961019819987506218841932207340804096590554493292385606767429483624425238118312043255401294750444969524742162110663152520581100959237355802756012457818874444866782426253446824367667709906059340556361512378748764217168875581000729628643155674422133364800134677721973809736931617061820738743461714931747115782673883833481596501382733732560193089884904498346166987098288797803248684421483820004304566581534418844453170354396442802429233706198960334540238458075399118518595523838281040557257074471846765653130299247597939717374767870780387706239004795420198632313270068955526245461885768277019696654718404919413921774339248190186598066023301389671663742702149687759691704306698028690072727761306178036307268288530981994838906818782055782281273301816577601906553180856652996411849052545680495240077527998907660474190921033576738974929001544849508364538561246262510066188580877694678119689623920162160377277888908477387906492624105567506745546255121521802104666912059422546639662137810928782561157339117552741508068167242021257654503907686572229660143769443773285746141389545996401885585638575560998655674914533785131139780234800265080934770513341843143191147127461085875917877282347430014605307071190300485530478843970678065008643146309570192833125052024647080233884078415930543753288157457536480691742075549343816019918092617814583762736124025849382114393616175355576552026286628350358345825909720015058823512865675471443196819885089401826660598218889925780288701135109783427520976400886894888041787300481987386423231469815209755964182818645740986975460733289416622318618001513904389617508107007794170960727432897223693499940840269091683656772878750005603869289644766166891054512866315816304836810837839883680771589328817135671035428720938099724234033083631300369699493020414511469994054493576495498623952150973396518179892520915278276322255848891735980678319878678280750298943327368821298121065320828000376690062593100363452925666538624750860727926010173371609436221009047795290775259939619099142167416040638178690689678151186727337366613264331452496203248505498798491339536921875417440617868122787250931413993222595322797316410342317424718187417846141395676954634966288152829307496791132400180237126710944587882327207302379434958957720957044797816037815905909399272035765308976242289859518082567280673491606528800909936133341506500650044275309340382081402872442355821454521519801632927471414061617809974486234411506187640393538466944086544384529423669379609899138560152309859944282838505873070359616630289277350788906386704593926866910517704484618533532651090363765144115932789210545716442038312834372876558851924667490753283660417330382771013461543472816128966355307715304119214816562302012280849080213742171573735165698191142947726394363815907798794610235553604966454836160609363789683820111503240673703206469190808068524181041614391005613113417717041207000538963792678453677090340900355242783350233702558391001745976828766759218813318755568311138837286517053710533303564699874549582652500965329608646879148852290275602246130965732082378736970257881271322724051842752011074594906951590213879576872430044392803924840572674281752289669146157161070639196602141298665151341449529182574323259192537804604412195930799670241196632214329301849554983187380812089979465783475192790638235523421806035377993262760387537079751671558184705054138513774802295101698034992727100845259099534091593772181757916053986853815875363234133816486577161960704779398936162373970341192700141756105071828184647216196852933482349261384828874852508325675346069082320078606106408285814045221675216387107386997901275774146660430276494790310916875272337064381593256882109886674043144330768841926759168627416085849612815738403155914851461307908273505967626431549062068948163879656507690940309621215060519618217186124270702219290720036476287367945811247233179472594832224618524384223232963339572172165944973355777328904891370622303839358248984080089652441324897864281334574454269496485759360925890035194199566898265595163622521015932038974993563605822932917177430713729997844628945596110645960108627350156028199087981224527338297919998112195780263230439261502986439633497684332769397156227490971703084072141060545243728650592794525765504777274213972750213576793911542718180642230874224851626670669489776903232413847907372403746258519368171110910861578321265935201457434493946597423798463611161660455683187732145615391264333254942866906464391759353257448639715861019468707656387349928444546110419372381315787071790795100216158962023491484810862801499952653318286712379182891263036357959214378121535854535435273175356043235630762545432276072635033527352000560494865527658882196543157501423693740958177566204869001321037644661281801790436686161411915851894859911257325363424021200084519156099136339556242908451334019319643253301313393827144050127769310533649730623966861509554633938807421853407533265676836034985938591902633961475175377404906341942372702300909900575348714323436644659838075970024219464346734065168154613368920065026459200945069727753197426255294017757105354873116823462343513797715439370398998867692586103042769825104051078980239444168244202203073278963355901528702882137488940063521382197656919666549040227273835913269286777757363581645471604836812078205883331899388129059977382929003868332734525676811345899340387504978989121040669356258590852559325226218619757569630487787079545988227298999212055365298993460256173416512284926234229046404723047445118092497576486776999724563006861546421404825149222211656670283928669525076067290659907477890825592866065122028055352180925013378084134830205501638596759503939785150183338006885142999293053382885425565011628167225116652981663759426589988399339428160530628814964154545130940062661521190146468696573315408252911603192398465954109445012350641772544922271017190692414771256876105465644758585499863176518820709808123509868357343951143912756183871224486840458733309527099807498208245231734358395789147582763130323917006239686211579879707251092273481487648877815822938011907990926491153613603445285559195099417566612699705627443702078704616923929552079939612518755399817282712463667944786190692130094572057541448852829636463567233702381266159507559354933419085629208764912758375520234221789461919464600099411475353527198981326521894197683066697536016108891132138089094015992895573272054184575409658913130286338727667260116013309658488638093315433172021880392635438202987992905170190551479051842737523647214799508978701458187465320426279157656571941343995740194349714827489861978758449992530121527459365235378471811319652360635893777428977278064018401049052358974141413475534228303754344894759068512973500684540080128193873218176736730948441261446965235885592969147257991019683091675881079347123784033814831982444409649200633705278192826817494763491741617196439296534616767979912550957390262752308395992431499869632278150645256922399127947829355392163826139284779312597678806415061457818203850639557770611212140522646124666258794350931404404950418627197991104364823105962075327212519871970066915741345533360772253508197702934925065898841180790456688420987783046309772688710139925427635457107165050961978044687624292998365928326409691522907633117547556581425271021927539934720913876192315821421733115414642240027954177502784743839545033762279674828958895902990314236050362552433541398761107229652815938229739942237900150389379970005960984395603649765470968286380982472593895356370086289080999690328612417490217909545745462410406240033639679841244425986136434964236410514734442177060823485670902931418455844787757549195571354359854551913761969809104438251308684160485120093497933279619310055898657975493160472027386579043995762101560616570622239541058296868988132167721698519645955879353605849661342971845336371552222003173425203875941278082779067182511813799136687616306830334780913197317183658024569843195536253014324157858378193228150334474201063360734369524286994363106150313701518167087041286261251081948877025218464767131321013578479540418877962232395581802951591795706289263682728030891578528190897177559355790341033930412115529220860369114663792589542234217516707739065319705670355336905258362956162700377003006332746196824445173926805070306655802482155368922234517260397614101039307355858522670122412940436636435249472089797176126471921295686456049975801045815236772539141115683308404525853398855583923253537917896683167384708160281711245410393535245295198178867941719383547410855682474139701042946810054086328316582221128043044057003477069743714269152911499956958331344883247591214451216612265749796631855600092749826554537967330341085272718284554147883592742389916565266434303718534608866139410320015554608511782862616552796490770392658949931045777812722467355594126945271173888827612003790666875783937629692610988338406700318629929599144394229329272976568509796503751024401777714770707800868771815012857331019507461338253680764850002304157204059729819136937889208925024359608210401584235170633218448377102827021600482629340426037958448797894313884081527294074085666060408656661229672841948328178398232000862984963136782874769170137992401263914069780377600702725380816229961439622161853993848588941520195413248125829774240058201484564855729723031839620055934690008136316508077174962885217077650517449399467561222581550274945783231769626624235211753534834262955512266509188499907736811138863046206465921189420992635876359569860485184268552032165283487741654432701170680524065288367368134386229025049986767287614515748106445676253459265968271807691939138959657142175413720971717512489262337047663153415800410648387001647505458548170599030823496684992142081690217792686706435175444670765038134987276432474914803156358223416373240451759514697773551419422806037996511818365229076411785861644216577669446267373554011715408644340692199684203384935599606169183041532916480676531088354033832054573126601974706947479699623423327014637127897778738926105558798370475773485470959617334809592930040202091245246353641785046227264135141857237974146104266357468872923877403173455624875533136488827758170151886426486463223685439402934656494221387642825178811011161855212887029764440676879750109396350776035076840231176060414428788392795362757881604184278752182667202313081280969391077205268765302784063529276126169724377979719020116305619107631984471182831199219101182257421517794690704445631046370749096845266351293013047313168938558569056889381282574037200679033897429904806808851591727841751705059604227906175009821137464006923125406691099009936699401018747979792663336897638115260556941276827180382913712687850145827864021172745475166827290155355320827091768656985033223906933052451239694591732394607594230923406208657337089288624435176210650633166646780662672734257460768413142995512753156467095579749689093249676190685341138810140598901992383973790454808256111073789025165699271260520514224770750411196966722327664692833767668734629603141265398505454183146196675141466054203795565072835666345288259185062208231658829174476584275194649146875692475995695778698304855837205504033807017161900316590097009637564145303294653803217372602188472781750520485152856356037130790638864245960026163426991699347153734116186665930627319227879218144583603207540816459199620273025682465877116646474071438186121451479095456400168246422077406221772746505912490461600166903949880923672433665573731693773848293222283246675724110377506224500292438524569112081924646905535764246141731868920121938290697562841516320549225194197889324132324476162750234627312130290517579592456085143129056613950086484516875192299035627104371283571434799890262732180874406735119589761592101091972408065766559113892081901821749988894350881282620288834139542441827515635976429010005541235710979167575240861983989077988645153508540570206740924394005825948657932728375867667725405488984789729815122915188781477253089197616713954831124853163841614722825385200766722018329529889513111617169052982800975947556333360596102482343657352826822921569138674837944252073502157145192391067007305902247524475026303272430795855496976168141474131704272792345450889632258516217857620391006150293979616660516807603265244199905020305652102744381752385732354729742306060703502765798501106759543262764910848432732464034953283098135095294709327734073636031871737861785106129208452683358890365918084525143281680395382018610078684706528448726155044814788220083781392746288397922025758906539993966060748173346341408886463891125168929337386105670820006743942139268515514651376505090133329696985559583497148043703445711221249774083221961386591168459390477023587598406295310260598990832496200015715930940613638417626362900139795010950417301152259245565850182024583324206243042871894354270965951214473086805465977671665264773417613093538964497199362665878448953133069829852201954043801300901834313934670436266404186395777068454564797565464217076665283594361511118048914095167456611160600864538150072665954647827569016642799142565236060712538249225902415015222025297572662287458912379173030757012371309062584882180549978145310783989080212668965469824648958854299559680647233749142329793846351602637552577201093765418811393392429733348946041855400135881554742294888899248845789829685806924114783453473743672923765546062350197529816383846604102832818816277404024865684522167829126032677487908983059719112700977005615914756697783698353541247510334914921040194729248137162413030853265772618908237502276813563625312016155650027422505428373075290075212207290496446920770306621842654830067981391371850954915038025704301988443480736462950223846588863465059934512059523091729860319195241152520604967895274645158126213317672309718014692205582564673504441530215465206746916988053519732611941678999568505171906590475628954452603449603146576562016825698204949957568891256967253165173184794710965057731343600222322966781201846865539756557779349562534837861338122233681866931672504528820599598399813872400418678365538728025778668371985364378171837943463206094686616027314252045049250735703467639936901130764121656794994628543237347270498730082388876747906504003248632658375100432138054492919482484159278615288140485312017179388880157192811911602436371378543147713852155880470816554864102009389012198877208523886882189263869178629350715333426185836060667396619127035553101012412808129012871888005004985713040438425822364504925557545091434974785996858877575726672513849781744131593291769731971106027086381401251071781400797186959565519501938008651924255626609498094432058015441116589442115833798826895878263152763613427392485554565570065872132133837501361993471507150623256309418234805130810255825224321955459964756441266906855309935634960189353522802712986770344281242624788630600872638821212856831550073376686097840323724286776592402136973240651234167009417261044882550023477910214576757412941043527353120779074244245462409675359704775065188621429608118289426717908555047341948459805529975016947193966030361551695213176789753758303521233733105166367251983940312156153539778318814605335839380740880241019316482373155753247093583558398847548455332928256009188368825860807708168728973956929021783471691206367263803727866048084390263113154943373378733551906633498040249505936746062823988589538828080876913896912603905431348457262547290391986947363150534102072220163685594101694954994289720345614268148179560253084472764216154140211806003365875009486083411308028131761640798462911678311816511151384569839559833493851403608401605944494281439524088963647149455431036279855767079967573021200928793728405520604322100778781085850736217986046938656674574750341854667049474995190060817014693878067743140656015944023927259170848225011848277466235611357975316710558994703323448810663683082949703336589367672417490520747585963492857936659010523260780681997659694165450970007193565005474374242295267567796832871077354514605148093114015237511280869133755773664288949271981552504255039243840023989929301957486551468313071790147146560731608109986132665401840256578253570002320284714721197240635117240650743748466554152554610965059942727863269430970717881867831701406293551457413382891135685020415975228861794021971188783936811482642453745236325567633255765152997037177646397869541692937328228366491632143014662065894250295826871580726603878065522267524490226180368206308495902424160673530078812870315214343310297482389579997250945874687620247710998844419304275466877463190605220684031392016910687184352772769718422960971013016646160859854441634053181159469298700902926776353285231566488094458367251658539487136389418833443371268827623366247965851360029634846490695097795474994958080895452289393565587421237205980048294016532342334592841052118184978304810986766283570293162056191378754018403235343897011443275200087950940207608427355181205322446331218237496316784792571586124605623158585959364760537433701187111689149582511458754344466123605095727582788805433436780241953672811291408145940112325337602432388609217588058351411276264523809714420171008661981038318038067020289016964924618395023260651007245101557502841603961712667118786117465084974668298485633437556889262107295673628874231702440337921835542651232652087511260368511371514317924162069732378794768354386253256867873168252554299093545297493365640651394466646055392910272282118836594241358506953319706685053674047994634490186604850043164882785853815837697469585534060622596499330108012023868980139171893353165429623057000724492992077030213364518068409393774642583088431641248934969565163498708734515821329882128504818790820867414641406980407747191994224701543267123663861179645416765986031733536731556880042693483604435634972203063251265026762273038942572317159224418608638226833916026516646335584613613837784143469335259276402060638519431790402362627299911601588667538289891911749688193900832383120152705419406983398905990470695416058221483257590762219321482739069658608687647419625325909458101066014412949168154533282896533283943994642065711568765337793658798794889763537205746371846101326278080076415444772459379639938366621791631912572357055562481822627181580088238316091794267874362099220371558602437370766770889180657416271165427673748219453287273343082088690220784523559894505259508246751981559722403182300408931371083372373858243120606496584339605990115911117357004197184022273275657819555506705288037236552442224888937554169282156148528841539471665232755217331001510036206483636624048456455688663833944130443301441791112679131787413033038750938513998796073864095405864861895494622181249285700264279769906543017105718307049265611010262765465952935980093523632895082968936417652153949711259945718867037727623940848105436499840015984581306239709843275064606954489898093472643716350826849676728260112109666251314326290779162766584253263056165134302093151499844818389115641324229056201308042712796099819985209174916035394001459517885738916951121771356467867937751716262626749748078809791463126655124136787369399849426029040447466851314402322167464054689052104417713535455368114204001178584068652261625481889331951760375193195803747269363351522683424168279723946126666213527838757846751102611952099296518960287670565543160876578869560442708390298448213560444213762115189385105118188267138829687095673108518277874647464062980612760078245105421458194155691674660503059916565156858132278965505865499859012842353042685725163920441182650565752250885047751469584511491188220857949356614125506141351476723521397821208885874720424477367783265743891658582475630476904856237742807205728850972806011497206248355173014054712388007358916553995842476995556790968176920837709145588057482955921581057390263031427745455263853107559995493597542426962573362927864048289129375653958099059563122223037077996386076310860354015192697879257002361470427092028961799654727244373188412090560553157862569609948785655536422087675034681834095280033614495012771108479685797803017475737270922474476189292322915659686984584496232121260812704651213948557346610901364514393748784145724997858029604409087074991693837362237750429605820097159798990968416837539036363096439048033607914376328798536153642364672928819939833093559004010767387738741672813887576118565962867841978788812549922792721836308386038009220005277912963562693298693106454315365209663136190484899650780920650937073369385352076384658211402940783550247167434458129347979048211613824839252035017416359250157941327186069709430903211502327825972748308663827254845866062288483088061614291544421272915156750106820807107913926709771801254558521320117026621018940130767380827301322892223582419921204341072903511507138799615804333563228873918082332469419165573349686645397480473019308066524353142340848122421906293702058644594570074606043443242150904987218225302898830449695709395576848754646846100600265622016124609873675423794877850292796242707412282531507483870829017590346808706826323264874299116661442620846144276202291413733398303344402528665519634609161135171589500799243299590222355944555109125230553166045140707806528948387119381381401922738941089869967465400710949356690032582771564522913956099763780758765656434203624738611106433647449117562191196603911941431113998137630291312370078048433651805286925068531255900748320553960967932771171532322595506097966420065724796163892745889756763724570463966869348249710578965271740187564589475293092401724644982957738192711010365586483872448551309489013549069039907084318986215248682418542224222660506281246695201811158239294142514213788972396277889243569779810527348923513162058650857973929270282449468818701771170096434415727138864673566761645952786298783165017170020695351748265737553668084147390730607351686462574394106561064800599191918055095955334132625908374786167685556668691636587522724832790698694130314450487148840084395273828080220952716097678187540607542014967403689224349973826451065442462483043588860482896681436150060723839351167741973879981757769238439020883597129069507055331088070779018978810879614962958921645747770007450489256786503136587673199925043619135372865752815109109146439033959443970965073066790893858815339350749112182813307428669207464746367298916123880427541987133244998714630439955502853841644420513147370116803259252882820398178117165553040205612865786927120304325747259002186907404492448490194170042367175019425979061471368028944411202460938944692299394439055934842943451790156191427453107270855264076129825528366604371061470059977135761753006595472965859298512319932820806095284423475966186328443079493122476808131058626396833677311527514552573577506853942592443605720805887500152256466161830740636960059737916503650568500189478209928440316215595120110007236337426429958398899662766470226673018055054676379375815671701803744287060143647930741417193763045997275556320172053485482983594815855236369444718966824152523265117418252516591011674221223889883028414912271667759363193870466277632942467267063734086018808805528100850799858059220846783947626181774474451619661285900401907682964837503120499118232433988416213334566920435523671986100533491556252736547350012466584210453302427929185803060019228598217099993961908623240396749578455741776527815775446421315518236281826199621490833689103927817265817720523223853940312733048553664837326015365088298692655699330661226443367291883368101098391097977048240110573884350119551461112539192829855014884244049496193802298445580122454936323613237724915668655198455440696501798030709216431087040841933834536647743503758687328453967238747659138934151426302013150925513091869023546898371080875596514286300002093464342814768969394837728428134604819770297053611211306441881891344807498742369072800703044467612227473945966463960021172550543697735717628118282399070848648084027760118276962333639078298376702956307181108404481894046620276912182800913165882143702026059055875255087102059668551994760970713638595714500519923238602094537636029783891360987865155826875181227191286458852252622173142881230286816982808005208595233579167109882151716113867363127342036606624515443185718484291849400903471411585248638346950388273685048928062352915544121221358859785723038822599911251166873547273093438841571781861709676373878138574904642820135863605965057105102199891431463686035143549770914005987763722507778452147660822316688402941398266929466060025139114368908000224085744233875293264506017255943647423597478088831963930021977012096216244131376377818116231591789973245297248517306295916889985208810134107021893878429523059067336778954069852339146819530388007411689684399594970789137091552700350880805428872222805225038851164475258702708012022075074650485750086462837537111668429949961057077760220387348625647979939559436797913114001691777488738460940156256475472082049351630147028730017324415390631120173335718444444004391012429054748260039187566384323573009542450043150707450786935634738779046773784655132664406185266859252001767580089018244075085587574325526439747852460073032331743045703769568808815143230995760273621180061919135537330251355165508797939396763970597178350893960821608027436041946638834466899023376716020737712767626378644606565252793292654046283746115898318691727002144876870075793129582634780925329060896863165871075822275612339410517141391669042470575666047681193806730485267783573563217293327866060808402232354294156204899957565455773532288060040579188317441042067649966038236648348373002508359581941743003148982110066799360823526301047512555171105274937048973869261803406698384924817805786964276290358884639177657533865767853719742073382366738032076200848604148895826955886742072457316780575494363342833696626895149333646538294813442987463512035439863595954713175371760421326471689211816087867980147061297129339842376535344507289237512570647694756624722177563402231985814850349117212373843705744529058830681646823001402273339640009800536280338221879724670507314972741221529824145591540928614357121895361017997027882539894891569225977998725207880154187592741104500591510770690726277711829674658140477932570629228211441781820363145978495715063048361454481537606150332929771841838113976813591557966106268646377481104399132435531928496538718827396129382551919082543635579888719576712075969949126933742995516686340018329427970704376548907503810438550162739029089956878777712795478527703801308458486116846926656160480712719084625740208112137563247678461101055754804898243660299217632974920467160784882962027101054107391803137365232086916627472707348057219508192645641013233588206839318811655379708438396998016895394203819158370613528291502774434108538248947703660231813525044990082459715337433069725127309060368945766201050294031324234563744020035037537486331465604147452651905821248172483016095444902631759140232630973404814295772588841697554939367675548234158051981272235622465344359246696626698875762300838396792076484525921330556678924616357319947199692817354524600357739454454378845968144395897782079918539015027293191308151155734822127721175663742134854568948148750267447153585674189813771738563864652546500380765329154520283053773886265523366091978622004241951043843466291829108661697468159691441026690493677578420812227547121256691520965123596864931025944829868616719644842782510587390008172273380648391570645423386140635146238019386393314545619820798448093873644118360673574273167125594442057251549308429487110044952262782326911685823456404545192041749985446536964972991968225669923234524041970799771287404405598548976286100603194110066723913086593216970545473675254286682376046223205708227016516106637133280187798760108266710744678502696616707111361197277672063870516342499559792238365296331081249918850169091717351215604834887958534440029674217253226951177225122390002941346529271824338385930434293041610862132839669782812850124400151937480513928166221884034922752733015706016137480772442613493835717300496833583101883972662008690384220981702975294911680077289730494132876148770492259346659852790549981832326770477735773833780293575907509227760060932312047266122687567036287055452448250440468087672199665092300281004580930721796083336454455829770202994403782158098367655611661731958380791204750243667701648672797282708748163928255329654182124274379410678674666385032027895445100724343970329027883762707876437288895699094217451631712326611116678226831692213173035108390194054003761570655499976087849932298664443320862531576915109587814845241136821198828836339942814100830704266428095846489078115795134367019907039167101052005716449859678855444533774841643084688887877203698792772473383893442408650186132233561444024481233947463813404807528154652610621166351440236861216080811017569070706750082722078811049725865471568270135563604686655016879546655970367129748557787069841057381277112732202586453552504016245258910473220382860189164130023227993853892970118925821864703396734990393117180686332748053448392573100213259694473055895119958527795347769433662553817362134332510355018318490805952486896112157525011695497579035351403356238068538893423834663556748090687598430700853422790248368378727720784770688844412741588126497158414987205109764275224001625656408092059154881440977062944838745117367141546259514274220007493534701940472091059531141369330948228810932618971220896238914025652241001630783222075362126350257320920323702190035567413841952235532894818388359971928297027837325292522828725141892769992298323809199732395151357967165467230530085928526692770868745454829345044868482812337429634557338390316811508652541375417491483914259613361378580536195381654301871361716493295068977828618393655149261043714447326408188187688973883345216443000715413600116383278859613852793457905730380386333803567872294060356041877586451502555902269916154455384203362364208178577874136592890805094433419164799480663471087239345914125543239830516628968259051675023525692117762571613768183190552803649424214617949204545736029126120499757916753082538309231790947804458289246305466688791474114968536236490342037426893873723076693677220593349974383887176863500780979895606805540291715729664806597104586983376391968091946448239813745018295692203090049102387794617026168041241003213473264633367007279733281592773384778907265592441760519301196211154053654015522994763039888294518511868866916136062434030885826517889763829471036592753605124842321874991158974537764674180893636819494843475717471719396879930013012564363816790095219553329063278944758609119086946162060896153087006489931304366438004401337814711784337002406850036879056780589778672715819472851280951834404289847161007426170034325823072286109855356978075706220420202530342822196159095861335434669539092817288378703087846327167143927523824633395657645528502546821088484651796907786284657171105514465889085116186517756009233214369483238055092721304907918406731279659506823194216568557832205540461898401587568605751088174674803589530569197397140882593022024093514115001466387414978351413351764040293161612496722514957934931020440474546574005479328374520607840110364806556307490567854276485107259727293269313737664170022788497983741794394907532707132804322412576087250421115013186147525967455717967748183443533918602668270023593237285430447989392504697528543677937602677936237882910655450338792342210812979066458782025064633175776340454488211108106175656358696433475462113004699290756122463497819710684455249543046185523937139477400731348264195911579373625426444182716525319553629631446391194993590448180567469577668046668174956222296070063265933690780777844726044930437411120935331437905849473057991932410153382621595842805895157211350886472725134598680846856199908590595217166223265710951679062067769312069848702801504436823240961845475771128206994501245666100881409578701637785629887013859617820168322879000656743745290496357583588738137859835851354536394000467151111129167024546072549172600097411593893354887110757657274244723244751511889799508623998634010583283453292526160032532429256745884833408241765574657894385891136465352547460131651909283544220386275107733034335418521057264004740214969657828759706760656510492571466945241555526010483151891178845390140524419471089914260160268801544546527333988481332314515362700782606473183652051996104762280357981612668527957268418334557739671219961966769460110248556769246227983583820625586295329866936292134218967715662955684255500755542723574059059237277298595425487652273088584476481574243254780109402785432665990186867491454352071783171728462074836492575252344167494047693770332790437919854668814649327724561498140568934956073186543597746962468183564716551707075501215435882598110958864619922398205850667891102212266953493357312164442882435907238129319994141174447638805555146899686624735393799980433183387126590733291100605169221408681595259692346676582594828022799324226014918145636916307382728931388682531815993814623847756241418555447791062607323676629481561704392105177958899832200485590097849117576866220920028474367557066343863576343238549689955111532408407614675701925878076535831271105371274421168492383147774256426393434653982187690464246117882085118361094713651918192023098169702685518643073783339764506888056574829719006089479277419595056284234283507309650101489085104603229022869480841302583895149580456213983204564618118898547518582967145005893614008480500576419826114315359786496623035002800444619321741299926275638788958653912228983429065939613567001543515962776405033910577645556946195423163616749282211783209031088850482656489919358598577287997412177930615475765644574970405601775963753022799203936367043317415559588096092236190866613729688162742018917909559905272181941722200334728602106078870722760700626670552052677812511427872570734544514965345466163757727109856513537198160039979892864682069410709496916476850028213184130525287709955296809416382834001978511068566197427352393339062748923427892661189203066290513714946598536966800650085562115362628298490442276368551144915625178455121367479262494178264653095613425939094609805708588180615845184733433093807468315095144873510822526186995828195843188159449713215931660265598346697490990292155407932737317280268534404698713426199045746469358807379841334579192484446534969918174663073496225511476333218167966241707014732140326379118479060886276193268997777137558841919497293580608159866970755067576290993415432729694065349225094179922632035103123762415894155419947163206973616416104552610918628927708793692827125671611959156470371861263551654285925306301521037459766133599974497705479582346156900410637610235883876592094070212494666012006482087376352870105336323766733126729466698812558030332507444181495053054652154970159766881305370814112715657454469569380625999797833712450708380744953048884572032641809984894318920547665040264578661783667869197729195176874672329882097181453710665686328412099425098560399783017145981850493439809342779477029664727501998863379881678054941218608197119682142431309143263276737288820787991576103520968474596604959496688124169392808056812210385500234814926893840174050257965572189984404332440185113397300513168956669386742900605283810117167667361558174363065463406363979052360971704565396258156245504256268181575490180840998315530890300138973410709325550170925939025129320303667007125593437024011542880259739146402529954709164500425398367599712173094555455638157786145561682295221404006612954690625405266980159121893102153614869910082834567511467153334660328980969264820642574478932721409563365562206550860896465987305707167136606719759764469113465840889546415537678654043686772962100193411987388372434230673526710705812904475865531462517744050189013590274737313965674786956526589477619554885824011402628122335938030520840557634029598741381318105689130348537612974934948477892169268174187462278344708115085192859294574450449431908755620497843517263385437883945491833815966388999308702572211418127911927011577215882237823143684748586159085158471360527001511050696017490425484915020621306220651855256726023261885018416540296609008951063866259811971366163949666897648922459508165040176677058183353478592363692278933433410156246734780681038934271305223884688191298001028690722856208704943163843445847702225363329030196811713019303845085793661024450417781274251333312676915506241329518810099954511849137812932667967916189173008177734126275032781700798053125508593102421671968152806389883405802293566330798542816198131036284921008822421279123712885129659210691307185488864664499226181715655659728609807178808962906611365740446420126146954344704004348404762186971372717480550533162472723172658304201433212764512053714061288660829862167926003087853189724400936726314014057730869555841316282369828769165565248515543292759221973856715686111642421193535242513347309129173636800666867102729734967669725401876271250721356613636692252803268777012302831789458318832418235423285766325652147016772023875943738260638663557311506345869123388056858362351218894923923806756312692262396191925447738060678236907401836651692458480882103254224192514962739080924957813909411599426556414159500729691641345241292650889006281417814168114804414705866721568422522147973447204181259189181424436759693914911691109307145598674219820034833623867526193907519589865652827933303575804852271066389710184513724078302051422702028680498845115630118229674702932061496541608059113209150362195731786150771734296738091733076002628176258100611533584073444004535895173743617862605382454060448106446873712826761139806011078596645344815145111691747551560915240939318649312242224830746767373924885183040273148023212350141363715590230520205154951992560340160552044497967450906313253952916996488852581668282021308911975364834467892139827775237810499774036918531141958189006566959856067838537350254427197174621823575876741899815764250004235431100688331116301445295636781549593319443998072671232375762290411714724201830421326466034217434147854825127550610325357483944243428960952174378734385259478955939564767127539842629772421941867166855583122605977422318389895943683219375893333204260582948915176693684886395374320227565046546261053734223834220702737667004167059728733909293978293057128916451058693295013522608142341348577929726780979688931318555045343390997158140814423490971174474869842200925132210132304845689141710095141462401943590044939141535710158982915299290063058548057659976899378684686273530016216020974297853394240757332768018677494517299722371947410194613211001798275000435649696771228172255927922235463431837577766814757874348188495569941473372889677542428598511369140398737190494511832623472414531952594973262614418243085578493637340810531880109125150546301316602569533280230454038323099216432820753178464392372888880130054586571302781367991424512913346275246791420767359560596116857762824097898411142455006058962440834674088080525815629586499226592197043501247341681924429675054225186604630197908614163687906277876950339213329449189329931876182820468166751212212741452820335476240495382686073404663957133810532128957272801152616199610335663436749723011112971341708240149108098416542421577931105272202009514121923006007341916218373629132890299373667203950011382159905323930875120991721813188640082012284441525070356807462422653770496975041087773982006093982404246793232807681004054146317559693136664558251637774832641210132473374858273183608902889649784415719860916597185530169118643134813935283984838567560539992328464243442423038867152029935968747625531085667201100922789973921804516728289758406627949172998176147175325281514026621767511619697952855945068217081059996661581499948076141002709940215247778672417070118948274305878442022254349867455694569762872039313815803867283442605804055459056146273221470123627817545180671604037940443970136248704199001398539492698483078862582572165616177926381777432772939998357136794485986583834224268155552642182012509832631709936766789746011133410655011650254408433076048903839498045756094123528578791129658319499071704504689425401642281430299653348846370954117931694681564317207594928473474104871559349111436006101311208430031507613326527288286475795039341659034356122496780768952074625407797510243408743998731641861564482037299338069039865834647819439500323527339971641652080432967046016702180556572280111971496296848517735029596951928875879463388529560553257484868593270570433843590345176540544833952309006670316017411199450265704155267682066695444839541246278516051033876991496301357443822684279314706881262366241052537781428907637249181858196321009548672718003479844457998230685075082302732866677369803733962170127829690982355567967947719676138965899810856192118392605985416717582356045352123052382783067553676505217367630742772519753774727195904349862960232832330062904976986900465661176459013282659760950311137736510485495232703372685807409593479246590568180464871116216221226115345652078365321313342286397164184016874204717520253874216596137972159852166885582442271546228026513910702940808927042011784254160062660672722890722647817595312195978966373380945305882206186242386141289322471944554922752243045541065472928990419084576963098439858296933635206428170255106922124897520363148934952217846755799286307348123957040441106567436783733373346641864572032449312065599116834044184372178465927253163170477525112373031360715299281634382214382873486753377328972641958525359709997178234923192371463972397920782212141226061550338123343172177077323650098692554079197970076481294799666997952227147022685963680633225147659994035391052360741904916106237624150332809880738678389405230152010994653846554533292686981762301721717646278987196230930173368420582015373795043447038286895902570736395757218302559697317654179796004922253203725836979379232341509481848186209327458011407733801550759217255226911990066040398531574662232482820647096686104544290027901248972178915226250193018681259015795582388954746995198576421315694824999589399345792796599246977542381569605505324185185937565590175752923640532350787239034074919424957011306612719541515352620673046670139195861289641952085398841985760336662418832357329616469814127749835330140737623390358818670656153145764554981175405185434600744999136602017740133509169096757245774734787217350741586490886760070896982097631149139990991176913262812366578783376693394214818532381390808269194868283454467016738260018061810317768322440663121387758840564641736075558317247094771375244251044987814883386986391906627382639275119151175224429279376941051676871220218335404107314601986567291334987164328211394519874384080930334281589811269938604658765233642268851242434867099002423881685308218907003732023016155037133064310110690863783141267650737898570326733988905440154612367785824115975118234826253118438042008558756015494716277984231277996278157947038608638378578072351887315460457186359026359703166161141873065051785402662943818961136304596724863416362632799121941520148958682445600153481758067214364245626238254395866150575836401938386481487225429165410645517288041487724170224747444224075596075876985476730588953346611313361430313742012579768156062555040920669192819079433524281586026778206808517579330808538417082566511689397937088976961495462152503526789470611142200839556337569072753468904898044197387871145721089834724797642898365944563349262584138514111383560341924546678001569961755049736978147056035942595631943623944097355963743702332819492871714819320234304586897763522311837576276204801488635061671870837516101118805644591022550858522985531059482504044975682572647973542921658525237459939144521799615816673297076442414160325702575487792590482291276082628614489042096476386374297345399448218043944795006530788738538557981905122945023003091056245700456644723762021594071157229350539552380564148157526289907179969908565308795880224178478782256231020181342040173628489748068531361019176132912263184254671344581913247485546504453408828169447394797419258411711446969802126949281690570970635741209919226376113501740076794256345216509835810564538742989496657367103198072886008238356470921749583237270015555025190880169166762384331769870342575293700928992367805961653291673414330220234149557385674879990039318560243998760065385040555570033658736308987083878949647339648208394713409128051414255338642421495724213845616789588532427426701327107011198265736163219750007222164308804669217267460810436333286102272452555452211979328841988041171499182050536912977165892538998191130109020940243646407418196011566175607534357611837763652391027166468856962120612856192218281020384327383102819130451326114574300109207198586837356538986510116824318517028422843151477773767678218538230487296247219083074191718134784149013401980598479797591847925471532681919512317245465397306427302621220794740314085977123507245048512178792507907953423262378389166166436557563956202364260025692722433856109866739552192847655472613910840536173273417509703154777974691817658329686425465234561364446649308529884998735224677282184223611383076736867229293254069069446527758553943638037538324624611914658150689445235550488238203645628931614020944385345883360001925059844818763137127848458085620212451078739577504030504552818936342429865048668852672626208445581915403691526379056592456374104435901182169987852812453729750962782921127221746899054879264607535686125596768459277925113655417770928983791558648367805570668438066045697365872830406615584291568297322617447666330956084977849008370884656497441864534483893286678390058740684658049274671088259227860523958979000801476895853974614133567448886741834563107024050474146439243168813035712402066725582594898978910670472208895834217524535672704558502826468297228691135082551761496064816417875530620617068557444550576619194637243981055993322403563832713177877213864718281053777865970561412840168728570844139025421325821024858138585253314411914644770350501439668482627021192109497514895268762446399870295276245534055093609259235031639479948130370580005277538856045904337249973637272050974978411898565161963062424139839316466272375538946315239925133820263335250165513613661922050659135521056349067030622149856985144148703152060864921810301668517046432251358875522955745162060754385312299261154060870261446399536825574323729797888542535082673793905872439321771769054101601774351662085889069876616493372783907479494507759992540320765626431348129271361051002567569447402799594097493975173829744908246340053844646756745970015316837544064711799686743201693380313619991083024048198849690336504530623050943367614983423047499606262727431115154065373302544709875401672184274773951889255711804493798963391953976168053997644048810834034343535381662756831768342907229353733109222836653198800533568669836642157245277631288117165280560655170545824019607406457484105919977715552953106069041886058592499521732578613352903950675382644742140203922994765005117107652914166732303064424204884168015116724464360414227858366978570002633307742807640480747089267309808982448119530248265908678278744170423009633458687648662699183959799103828358864927026960859944785712620603936653682097496934763258303004158493043236565342047862302174941881427813426372519257109879086440935801245879920932440957814399011342248110450129212084763713233315882639703078032813293127851594521444051334908701190075689186181849112243425158870252715445403483087838109612164032788461694596253483538119919337408904748799764893119858373636377058383270421871814891635259943254988475710038511482538703563627636478030696461129042703667387330364239382268966941923389170203034536423354629637798444442286681573203661883552872106949401073180249451587755493313338346885268288188582726096908958682492327962784240101039911064873386499259158041436510588061856658307301422909711922306793237392761599494874549504791571801483578802951701719902741019151561904451571247502220972168072060590171471517028319380339015388872080664670471917158119577539932117287639322207559527355219196293349165947366870501571217443161895011065370585393304936881337709764678540642182581429185338091303852250318074867571978998077377885363849960145684075242155295369662461868655458879103295845080171885426039243252019571254384603012186708074990027173729466364799421578831427275312857138095921245881605960935979927510081623193040458170501590742925075842909888176884971007313095673135157432215020566757584309482862853513836983753555427971603672609546642087578795353183592347550407602141654223452167451558544235329591213414753820594785504033843572948421416266432701326257994793234011286373700438189567556351653302637339336496454518151611707087888390763046575730593283564186791123929374963982878549289023974996842027676057953960648360360990642943472266363542256708268418529085487143462832972633758975568831124633519270596514457586159403419969800869113423293858939766593893704784173095510515143804099684523824511790727452512737495169203081085192374342622567037638498093672826179534999006129104640781360815720762532752383500319984710798546459722778410534945808457507316484495162202401850698085379726410522582866383179907802196301485610685427114917017811465763545372206839752410403491806300939001027518692645837453972442139514717729889241859850323308808218624476198246084773442490544638549785614175681140684595483691155418624270427785445968232810466119671258481460718632231947310718189805460708850897348405324138013140314681193694048681918535505571299612032734701529492470141349510523994710738623646009280910554546478161736591810928074174236462685296482157483730226844438107821017162100783249735395676193549893865895915204887994375492117320406456113759259151590660613519711536220199623267147695975324498618719338251596130834964096888256788407881510264375230039915369119965332702926300907334271364862030126418751534742635507344630722310248593038377469043809077171872103292628767633197972160083928858306159679867989708552038596891282983665794108010335747394338870744966919164009123913903766789046873798663049021761196889950969744857647458522806750550190330213125582641352026130533808376695274411473237388619069308326587238101620918161838053798238114235029069164062683491426933026847407517750303964507827023849624246374960982706933502010891217183697310018139504839738184600955064319369773917467200671222461130212619651863151352441724353765550941540226781174649840382496009203306200813636113438501336792221406426283254245030361891107048253338326360895174432057672274094170623098725261289853456597638555091111310015448509958804028734172330781190879453240323015782157690582353768843084644082267341987516790134466182186525763603553620039137176034664519327920822298069647453505796057126209247076684076285518799950240138200928460401764589202839074201953202310764751085597657997623162882879391700706602165480551521246243888988004350955532018679352913803303168341264776150939755578765028715158984310018202322755049938213407608284848896983813607957805922946959487398943417804438189473203201843822154717143635722478866585983232227651908759453311688255902275284133017602658935927169357293717541264805155721211455072679526409166489821333141229340725467892995293392567366230467033230787939216899663951396192359967972980916661383880363678497386525452956074342187098372525844054285713823160877765510387504169272500541248732246762487809459699990987628757546661905713181170747342837819090458094646162667286343231256507532766759542084196005370737680228890173023664464533941469450801104214773345159863397715286193347370002402397454525327972446846894557842427185484992580041076081201230922680859808935194679297345188286098504297678511737706692983324079839523338512660744639524238488507306427936493407985114098443534320422066664720908730970710157365733187312725648105732867021602220362785196575207066762039592016006199963700035322242301673868770308870818993034700427634764824942883784597720206866858728049932030725767964262221775288201091038477416846495268734388435081674162001941802856258452639960637451259853372215164355113857421671838487198944918491962169947511635695084667273995783793152342615112812168771475502613450851119398706747991785579650341016823174406038357116046184519477236927730025545552671916025075121009470763852111453598488809431728741248841816616888345299905709541179425647425074689689940921053690749152489563750030770059912191203085804786917452125549750701121318646917281682957608472288629371042448066509916848176920676954883537281392524784749970030344213249531475556813163147408285068313886908867711102045592726250071521121700963136228219893813101777813483593874377403647441006271283949391016808197748451580705227617496645204599291369868709535366341667435633069361755884617881503189014647965769867606674401086084937285938169191039425718194743490704547052684220269708964165193799450270274701658874137312134924776923350865568762055614721222666434423091096636650931262274801494070192113343859812504778665526135742015525030123061845310470777969718065952976813300347919981387811601158661007134105933729299676238293885723461482372780338165140443223560579631189074530471368726497060412363697049257859229156048906367663964234223910693977142862571629395025845323199304236724875961383637173167546042010917509936912688489480883505738804424745256324918768010586044620442119461259698798546215383926054401947165496225498882466902733438442700059771787411503602658732053853603607468933150360674694007187772544124779090076846127087924098700882460869478046513072516531526736810102811948920598124419164774028449874435274766697410310232939209803577030015003402973221840103553879971067817016215573053766642530005254878944951560192370546901737211556818730474706860319625270811250811246222196566372486162518361315250744481623625557813495020740083817467900669303284255805734643996722769347903652995053430629169500891670657244118086126833108381607213157293851020306654899000300336917070884013138383065667059983508274054640735661594343092353653511759102934988281023231094936567941914612359281597865321007350184268028026257811124973187069941242868018638835012174785070554704622687603626548990238520957094667146525180133067381863201507559224669664045969969033581104997213956432296550892274797244232154403681893098298973326745491026610877324744475337951436471692872103848231991619157604138871427922723593227901514953780938816391390326927023496927410158846751539947033267507596973074690651605895776309990965256533079839463211132506585466133168693749346387408194715993649864822157017871341294644625743577325792847559282032608171745769776726692096668480851851853910411506504379714248742355731882945252020482059170369372476411468323528692373244669245560527420221340220026120073027657469217603544552268423958031400071936341586651685817522378791446537189818684558868615612346647721965279957568814678873462469359611246540285977931686598780843086422591267551419240984274665667860432265760197059558617836987641758400504535631181562673708445324657988724559593333486927593999233264428531228891920574067967989810494280584303817337771930766813371027193773808003299218900106487253515734185842615023202415374114522885811146829596819588641736638510133605599085002330675849191867817416988749264408833308757818003372783447327651177865949710984484922644992881069001116104757501746469932980298860037538884095095520846170886219659392211963062859063076775840753551526036408096440136427130441808539599635008028626869398359308780631540345469292595638375473437627457110051727919388943947490440322262349926371580678703437081951845856078403883797327633711939295397343111291032645173848132961577518994473843628828703428484737575834440591246279666790124225431038634127182217112047356835275833682134033752451327951072925674469955074748424937921912193696529816111403016735140709201404188172445212884638009341794866787878543521649355760301367029957300518440178793630629487893033491984960567109100531965449727277260667355312840737364086826615531827260909791325302368757589496710288630133701097585967899787165203313237907542519634890143140063419280085610554803482450123131173463488297752707172881106481582651648002233623102730816657270004028531212259628339559695730540282766927182985332578519098911935787905291532093369560811040444684151866840943104855100088177976890503892854198126825912743624355825523879511922988538906385621192427384478985676034387545785380748367746640584430606329281864797500137113695977310837783745566288940469959467864014033651776238077326252377295000005759176771179409115389721919140146078641830458933754072129491496687929458787992284927808368566980174987505243357883355234979384121578716788691640513420882393227337416131311905635163567236442673724749638923334451345993505880072492572071789230307641331573416618307064572965119320701692868001034921630687380700342523484419290900863402908605328933710160857609810205773488665957875641743827436828508556427381864965773697709430081621285425492611103247045901303428610791986809011190102537051864865295184927274138151838166270449113954119704336813295435963886278220669881261553645026250515450454264408984776175702280683082240175309884783321889415959894893980878303522634734289377963073090400117913424620921126403719703543858380822304654863229322622645117950691604838848741911198632101183713354831260518457075344211036571073649339252959710510511053568707863054759560092190115865394341119449914383602904257772866071071775082901674598105430952810225602076742542370319087634321568398580914797736916014276793860648568092212938570961373914333792897801956713734845378170431615620212392434930251354332632558239042647697467031161433465570249577191296621735947135012897447405275393110456278258796764529735063167624999038473857345552505095115137211406480301042361285018076079292769853379852898957453809577546077665484564185782008755026014629296528731680342075688878249223320726501117369625208437431523789987474227039163943833089556346592136246358749851765644815317009043298633734389950740413185334861597363689451431602525999746140954828699982680279794422168531150491310734719409194666999688459407431970045381182514869647098216348485388061590231085547457906010258497032968622229722926348625388053391344000592402305877099376469081492178892022425176411510279752753811349370519715879400496855102339904053635162024852711599191803562914702861062238621106877479446022299418713378875021872036641548265903878268833627578558673791391838839502179033137472609171821092565371085506732770901215538411260476909126707182156540091666461909055547092789189910085391756325041093503083731903351182913266925433857463795444287604777974533303008912720028027804218191390017238027411800326634159543488162022987317388939609857667615493020280951040768487321348516446846417091514164181975407418909185838596590464674541017122734404251081923835924759523404475191649889502618992851869349622216700641166901690689735595662251543907403434244776323589411971296520173993746936814476332371865129826228500164228471229231702432829670407177957954379555908522102008710005926167939327603828136566669114900634559213146769538165977567992276511231611600725742424770751885500316857757845292886933131837811703881759608582886714546962092139667157148434700644244125727053943509788260577116334909444008603296092388294426050851555998982563294900299045859066726474239449065693497636605443665803328149217578590619331704825678753537956884534735527279731773960904643209600340291262158381114688854470703504709454969669396541918196628708089473836507053375309442654286850679279775618345633876892019885318992411913997208936011828150140977172288916697671664870943167045707989135938781196172093204120584658964122646452006371221246802119862978510880594070821291165291473691841304818055056689008824713709539485517698041614588566493571234226578714890687859928850549588213777276535034637849131542906128667455877963232825708141545096600534240966592838088445582979993134941269910593948437330507249735107849543224606888983050406811251716620647051531299182020993069087406675571809587827093744912938520901987893565998004758535070366339827294378547103478094121960152434704981249546444479347714408938640086186182005738843069810081989999310309649232597678153905411288320965325268047719845102855352701638875147336959659209659340797583271897872822931605708239927524753864289898267640290161208875765154086898115000816295990657929163486788172047022204467548761330553891651834620142220300818787915431987044126118497391854781865569956704636610658051637051489373229069930670450894989355392934699957769912588107283975199689874963228179205019588189178938937797411210804681243713452880183681391517696257029675239610934840910173536214435942243148694411400477106277981186639410430348107477864487393957513341911867457681176043694601827308636805943737229518071679371844300860740307818648044113001472431143820986604369034509395878399379885316660297023264018559593307111789634919214492880442083668322139288331814781295270070869120562603124225586316986320752459462374228570864669461757469532218659257443869596614456074963410764465568164178227083628646070299261371180111418621995097637138198280417140600063860957619744266218511097195707562802079504599539071231073470818562600494006192067633620440094871624792280790843434622663745295620560160150212476462426301988852088061266644969598824282559292671922621695249635149699576017629383165197908863024195537175109420678060351344137497811181031525174558632710117983512960788497318173595548745695849559992343603165870025885361255097187368446680189509772100215543050373961974987834279910944835894152540122860309228613290445256851780176099782228772113734238834689243424782000267605851479980864491640253282800021887540107301920662959614842750432276542289956281823616549090285810319877266557122389953593390908235460463442247383863827901555465448640723610608118701692966955129462867236518495236104482067850882219987014894261758772208337144490646367742426574653780216823314451224445485106557845363060933448227323901646165708988944863482382392640670238912199093870893818152686300655221478908251336199638813060395491525976229996129827358753375784655892774619887553159881800114540200540381148313315312753453559784055288491122651712289166693244164027860257134877857775434789424390768858501997171986472096588370323421857054753793504439115945879619312834186787835136978976756869876276855829546563342679278044620849020570425293613344923810548807352313080708610154592744532276430641662553856202241979445377813819248761123253824962151772845094637669898056434342497063888989428095741614675326950726756874338867043625427564049984071961464096031932700898592484049983043828170410737341579958570462709585582433904715411712331315412880249402389566209881220217326135304027382347247084009096882905140877606771485734658083821245014748994633661497640179446190592158066282996106293725435163317518150587971352775051253637760917481883626722913565271995072011368794357099976959575572966450223875954607606609611533764758883869971864156123334327766678484461395411295312396519449771585004666114409987822147654025662513413319940042886339251946907593123583675745432622234476848824942970308434334910923144487829519043417323059648665424084976541669669478543189166562932779965490057048293080409058821561443106403619095971514537915629559364754786954261811534043939101529691818779893703424718541577794059449060094939037872210009468969610418424500538256249018091209467452420076762502382728400060204712166910707330281892791253391977142118816871899241797576858869547333663421637962921414193196216776989372238979012115343601033789482453323657342938777549007307114696556212280850012855906763398960563123253047445686802192294580100177743829138521211267218773379057787562557989941830258860475889076020483825809775094272840830159106229251732175356443865048351966152953159313820310417072202092930938216057001299782712756809241448843323627410242235293095447051214549957268068594770638862976166922311512007907564102768908517816485205823147286934405701172725075983256844334161264112009524015358607101634117456922352928646812000116813288702245704972985001172768340795458665461320462496880141233390728750467627176644472145680066817546416770155857034071408952709882538147401586083986431253558312187637370396758243210501736672518841568853576495368355375333367574439535320913611774180105636652618795989691983206473136749530781372239838441053283643466358146991462491699068984171619988037757425853179971676317341608812622218796749721413131124923628131615760207797029251467177051342229455016664126672336219944245233525590254252406663499719341159321312049842395926228953023922356370739673761997393268519995909017758931426484628440943565897478840944219424920923405203000539832448449864527137655155691812262252097905444178840146300759401506491912368520451095293381687380514768161010287817475935736313786338940924740229157498035632709998626301805895474798020617702864333176973068321249331635805825092711652495015121827956175303287770496526568791564492881581741372280295691564017733030245208741694688701791408984662006267471370906547086775509411999847697826335719457513741768166326276062412722684286894483442097143872166027563076031862730905316975438938975350773619689414657094606657582992742246009634609529794935465568946274223805236764490245903771724578214196104489870753485217169913750989911412468621255384891718537944576830659238832252491101945129671548264294211987772417454560332508046341065853130021714936815372422005627560207221935078532186352993355534436358762046987193937642053387193096865362000327056953671344517254095176900265856473938268021870902504386727943245521560016806102787842631810281084240178134573467891701849830290517045348434217628251375899484811731240048790709122598777819294606037338906665491393673964714789253163159198031499045773066560509308920015904020269299515631933342180997822317600973968938149628663730583513449490956395278133398152461111057896411591656360262794113807990891459116852199247039700424660281661308651918810178520499680745880452886663067765808472996841941725080624471933244466663556733268131860089704618612949333485557102805906450659316017373754411767643839269541045490721146939314673791385190687586112106034359059752162820076138236475599456534840333641310471907473135667767471182642460229308644652057672571722125230129269978619702024042324160356314028521748538938675323247648086532032944464776520144713470171040402084138917485891664603451677082669692659075276883615747091044102461400424710195898592469445534728537312155352085206923919913358645509128408135820845898586715404303386006963774958488555346267340351429329270092076678749470747151590779634736378293371656782026389338488351780429596047071598070879570588509775401504891479228400893880109696225459030471681850421308293589632932373516320124167132685776772182255015569722491657811374720195588145258063366059588715851784972737061559335508836010399543212298898691675695610486298085930128977442544507756333114906381235786417066227078677585001153081507874482154858347842422184681169494638631374312965017539696930674523674637058980354802107413383458972804402724849566838092414829995259300191726493106991375589679345783495139468558651102807238485794308536736120733556056568683374510329424196480346318467294868176545103779174462465190648602098709687393799208430266342875214943272131612092888042498615264511364085273720424954827365189680155484235451607754977930859841183607658079562675148395375708282656634518651795824398725641286277780659300114567925448722686596697415616297276148633019374370154066467021799853676266333074182448460175572042595581575938344162324490760731821901152256693743748588881093981780350779439460142273897550024506633881053805906805546896341897890756294351030137008002656076623341929377159575477926831260906193443609806146518333148577254370418703518848743130713193022473167370171279694472065570935121110725866620985060643061026787909086520926136883140047058420210458717556853122992348687739460820683678058455798446411763103807412612994247572544809453580989779759148168287134149245048196772753169435710994880595390876474678625428360070610258704192144000781431755869776956996693086003109146733108019108878617457398959468603789554322363564216249528851046651674166509546667577302894105702341823730792553260677915649627789770917209966893096823494442899569933499643013332699166584729543264009616743875525663088779165835822504443048784171120415738644482460063558071561225612833441519751279349536098085904460158592540396923444386633598786666728009358159587551625838809223457637370356336510239293179869830577785673441726954189841049452983547973550899502597809725373753532106800547623380916777064180206065859744657203175392682258521288482022598376163680861834793335660032186777315818881625109253077791134057926907039830627162395744360763622755211773377585931300274732826788081756242910624816139756030576198622521480688156757093415915789309412967643633274298387171971406431223123581864523722546901931992423363295780541828750252399972646060915387123821330970847944760158381738435525727895521472647441553046781741481290979427122042584209350086737390719260665564169124054550520529941482159967658004111921001778955449912739587847730439639649037778606118598097884220013304990976753533931385639687806383707004031566259922047193101710960865614018259099734173925010555699622132991079704514278156841467507551655317522767775669824662764936753014075054344487154850474652171012571574923867722202180272781268410851314853963247898155553624266600454558754392782278605756350439879840853636151272714797720950050761657130708649828249539318131588312088321327271246504077417163258544403134762606172567909040927281337358111309880732537329695692022336596269581323523300218321417817228794198977271936421039570806798676115697840209550961802385814977678303663261913906159059135333129524097171902313598556287360818591115998472528135718039417201412023954997350913841648451633031269506601290788034778071111833035560151548968669581391707804978745835596031630965061043506672335979552881106552606777400234005075212326397854755181503824476294292619262186819406457516289406893360324100810022265332907726033899289127591953894558623708398059962493797032498270704113094646586223204240706771766425091080657126759220207200373514675916648855884440002583905777714183102759449105466518136478158245790348631729286505755651178512320394219809314516374553757734767546906921322643893122200704138748234135673783043935725376772681170990198379063348083941762030051113608772319585574090351172518583540693778658944134136408486934063803382236297440500245206358105047083103375140260810662955798452285838749539064080502357431747186779614051414686529012095687099543371067717526402698172839242714125202689593491453977753906524047667729963192483210629737299534248067733141942153126097054356985647025167734616856392227595484234313427693352719316401452891460431882207359830607211605737694681100061726525753745786649090286696614151465131287065342908533400143590397028392240986826132784380627830496809862799213227991692086544395338682626458008233061113626357721452265663260922253109915278551030285623134350176382087695517202410087188882332854781166970069417587143889191048137210771170926473991750892785958321780808603822401248980063924910458208138655815052657425105377260563933280272075941946687076119625706494777634658404240741998389922501698983566509848789329877528840491108317441988019346678279692063582090681000538224893956650765759104270882250520470636804797617266692922335368971658021711655972451556229145486041581210308270267778224385324446010761012708497943884433463788820855412473211389805111937255080284044991645893549185510043683392506256377904087869550713111962805785312910391801522932749525769884253461680551343679419646891360734780672409941823435434854121891249728938712211273415631232549202364243980343173576147974469763719816980075289537183369347263482618967840183117926031267617326951482581126971129496470435988396835827673097427270483372356184925291187340760374651185514179098229432735483830339647034486910705206571431413603476972718218006474417765379131774582560430505258908318767138009022288339000058606140289312224592441240175721417903536284380508301495516287146102222501921719388469374656043563809982632831541982852678168242315597140121359547225689439855289272972948828043509196695926210538639260998029898353576463551962176689264448425400695735755002016887639156342168282289068019170153986201418248471436513080310445771101092968217497666186790750068280066583195877988573771156660268027499942521873746712265523724855909758481835324086721060314489606223630314314944068720808558032378519922869049962124211750980391288993395078762094570569910689631578906192866819683852340071479323270912714362496804358440713147100706843405512251370542314543089509030171101246258790279022415533950133544879535790709131744509989244173012228357215907285387718437513248312640236563527241377286319452653362753809860571956478641707336510428995577356169172470253366367437691370957134492524191392564439745960013427942052058827447177973680857794022791658578424034173229358870456018750824081793692283680173938416282674222627179462589678749190081984989908471840137829766857876534956626583541123644944234205804420698995753654942455703882851583048162819514524259857642190882032719627340487311986528038730766202016481494138597444323924499873193521606545014387626687041429622763448283786661277806794989854666608104929366132501054418879253367545090398330043839467099895527263019180943436804190948145166988192341958370989593960103814003348240660093299781810760131787932938992401851814236402979976039780116825183360977530955403714685674363648644588571403291051355563563142330595662000346555192929988130570439904548123746921671443602656440294493661023691461524850610401559496611585063498129318846432191969982725369765628433936449144144602155793746314194472492968565750525870142284783250274882954545872117970751231790081106868461214055533785787015922965206191876046803813873945479568628468894877649355982463146339988868107237331884152123351444921246857322970716980293197660686974987949691049462753898128934894557831201320164176022128921334547750018410062712490709924395300073154318044935994133371924158377559523441626948560059521720686115479145446876496609300045468219716758687769234060050185478191670733394242178140916566639112041440483885212539754263429654305535872265154913976376559101416873396146744916379929102809487440631002859197182665680664824269689400701928827770721973592308267580337468551453649724813276930741385005787475999075676761822714412315614498387649617409657356820642520322482156353398459669520270961998105190604139873332158480822468619306129969940353547549938640738464889276033531966893220266534864984551436374655743780255777199871570962124566260936471037956593260611825145753456655656761925465400917633945591231136347504505740833120026610403408945800514973268893938188783352117057849115672734619922546604777468288144743727075873359015960618039637745529247811182432825723353833245781482794321746050377669765639839482438183986804332727837591332934857022530534491781972231323361387365463381135796031004494625413072468248645821008457960526867941190443507247762270793795353710578542645386698224648389880134180628006076337492302817391145740664143937119932190622820205466414299841780230252347470187766387647604785166261964041073357201904216460822208673311596128819324131766609820990328647066775210244866578145735144387041257050853101562698363496142216009375838213471942072613751772279720807559020946808892224409927510784574706165187781786975033951102867435115723850986908427272576009968100801755859346183979177333037925674472133530085251916227461551965320919932836336419694584181719690971990379810298858580986370599909857454487415907760623825894780113730123188705698294970762087514790840128151555804061246139698584718245048105586154027180318777614244238277496616656787231577439485516802184359859370690775009239556693268816636275994712990183478955568535362177489420271784229331360742944436140528591871324935879391966089448160242846284917623414108056339252343498036666753452439986971061235578000623979747918474226251230755110519035129537545048219815056202659192520368592558077414203336899796024367443487254297352452764804590751784724630157192487554333011844528166551998191996141588238421273213258209893700939439852399066837456222956496635033307146503212360269365091453766097337520663574052968254121809306729262528152386013779817650041254862069122038980360200569581100607643475719358941246106375390194794518615447776101364815698851322426507847424912354093898389748537093670157114631720332987774315452128736923848257303546335308536187038765918680460492395159089243184117973928950268042709625886525588857676104403101077209950229075073505868439629944364206642453463922104878967382943632362819026280651113228899147398012765900682656116690068912670603853218316639008899448936769470046677569431879355312796050648265756783015015554557525490830326016943585680612061230641991691550152765910001603858614418016446199322450410466081652682682160822200722031011594904809545200514813420970218473609925333351125970596583535134339897698510237445326202358947433713468376167135875043325478911676144832377793125580105950240160995777466884493923472094525606966236115216337176305473605974835220702609436339409797672686734586792252889955292754103057720807371663377013220191496979801328702870942270216537865871853200556064411777499127652810777974226573326628445852458526421561459488752266947220043129511755968241030176668101021287160500819412402693188844779324651953672390681607202081921159572775634280651104771375156937515641046481547195772843112907413841011333958765718439837506741096919314559235129267685913414472158098904402930696749900912912565443151765542979598945938854951693739903244551091822455498031451602491839307631677805806303517491122612586444645282635125494085238682502053489652071050371625617501632347076284097744972672839274347728619748037793136248070434744400117437864761511291418205281190000817501932695054156486225732164732589000842333550939414181080054604127002232404864106862105519769198383492731484411215593791821452862012400036520926854397099645728816180445136616300211735994008542368892571174573361779987772442523412900581933690298324495399020304320212866067336807142780985205404414741325766264678454811475422609310050355486074941457162335625168298505169527433866373770204164540278493814755628519049143476495076565227928799931447004662901945380345879579649536741584474166341120363560834818276983335854813939472093671778162785534133271941725606168245848043013184789850671298895379580219548441523127192487688777492319375470773409141659450772256571364499324530169481654160880027978342081341801928890632567036983545247063114584796334544405798823631844903257562071084785820021915502790445680679000240157924591712094274963346847320589998704018727665875003042817293695137662453491434881475986263254340518750721756335452558594048075184469913661088112193711094563049921385469143374032519598914928755379423896463998331550965836680239336333287878455576402809327452602970942403127010863282158038172287345234682103048329654356511179303453487752996019160417659402685807898907930718302332994991750105159087826733164430548728102772676232503406838890447396098901251283903801215747084798388575227449008892140588090821118721633368035014444253359173400872445450713438812402498435679057488385522636931054022534681887875068549067422821343316721237675658003920424194717077196317760384213587903207716813931673994045750635938784439013386595870999222769204216018911764873141791194702209024015616364721250096336860629776596497501681345901876316111849872216350819069477685559284307376789542942230715740579844635191320030341445937238911474466184823903110529823112707699397093000462192709318590711294855032805834678854171311497570693128118191645015315810491199839308920745700892595782720500103018295001566941362656793155836776201842233598097099578034918010372353535555322349105063910560494184131828890461282656234256440382598886139239721644206584741915929412534360457724223311143555997911501579804854948983904885133074306315195654917975383512322755991188661485046201758263839433679661978728600879200330998133264554959254975443321139041302078670597411916690241475312615045490929866324189427456822208344112736911863144089911923922550850940707022749131212217459891256804102286272720399319245995724309669281257194960372162913979016379027947682664552890730420905657393530663836108360639240708920191359792806938089279481513637592480999326802912871186425799380444867597470494240699361707847289444460035519397441192016344224759827065182067099741577959966844201094293722743731375264983909697081198743551667392471106589982723888859108638750885999139450307910098772647891555982960412259932622788518605369872651699316793221887763872911561239857325867158914637170347359171866121755872067635847305683547146459041457962632378903240402180975554592331087839788044268611949913156024172653393175576956767447149201308040518503319451345235475482743717068400551751941384386970512143190037445667742259406696190777984372054851702920070726306540008437927350850727813106524784247205045791267742189968206083478422711321689381127368939758023474317239362523333952715957735743756641175012425563576576951389554073177182290407891251357823996017003223130185511755687083396564867693412280935242601552526860359657407010846370525831590593274235871511555854092270520150929041436178816423373936927828068051303806053457084448782438303849090410364338748531208076766621687674466147736805213183328041109426719837837908760720197815788301067960510894543108021332793686188890082173497085463269342993329854227415532021315025595649464577490578650935311976080310497099601425621565709081322407178307794676912940552828633864322453206300742621289354003571286333506714798373810403564735830908298210805930009376773008833732018420297878925484489853721241803023090777574531297396527217129868468606719375100598143141911934911662047753402754447371100906265780189954188569078519636504819868647641461722939971788228907154261446246050475698903575406472244732958532626817683899533387995395650944850495304445338391290396095884246122596162400900268314047782413417825895511566026753301818476712635195315457919531885505997067452102166630307277872374698675121514156659811621148406160123464465851932813101511842973954849171208328183556615665202764492451513315974917206730496670058664445484531259976855157702169568636268823343335659590423637454749262886643490833038465696726898138826709012738733121735160708963209238876373874879667494335100675263477659862572754705721321137698161685368219903494162961341577179919841610004819915643363615279013481272808352196100082078559477078723950621777037897458782058304221298254118720864395451191313785415266332576174257319280301083429754072291933279539336134279315907714949678602791393205772814787169869218490845540269733220030022330132855951185858714973432334026965626805124418693444013425840600560756860836012100018669902910247123410621515936841505522166926645887039929306303333421853311836511756366412507232204025453775149331211806110285685584343233169755826138654276944995695627425967213714501056341623932091817478174665548399673763638443174125277690904264533112654406883312527211963221865078063804408713492427995972780824037571788910894995467240720371426810722346275847865166249867145275201426124833984383695868919456507818782740629423461003944549069213888310260309541475245821021742875179676500712352531787389863072377731797117658858217748042010045567851237272726496683177425512302011357667048324559296459090708719060313724988873585714533593831562084690828661819691645801390312521417726112443017020005353165186473290431011395864670766614821520615253443766375231410870426952387667835996579766773059112378255020370956506350106007973905454622850529558843083875000031462722449167077075412283970551437627383749415485224057311068248281136353332338783503792671530237834370288032243987951143564354558436973406885026082034244203696609638036645373085662202025004212090435929770616008856925723325345504903237257210086488865615184342019161405440181518733739552579214665485877155166163147618502291558333004104422121329188714453724723218811227347276372687987928361422031849421942573085351569984513477997301368772508383639384045625293675491718256604884401776568145594620501320588178457282855737109335849759506345406040369466212250224883677840321117708839281616360857438192179605047421344370762915068714495752048586999657050901989294426864798155930110338719051086962633585789166651113076397161064485406473020637879633781662610798620616167486697281455993003016008470703226853409433758811342835233936016644483132144551625580431823028761853789352822186864117229138224769740404158927960581093956431964477544286848774955294005759964816272766681442801624555755083680964162747855447464985762985747318187262584409165727027009506219357581125414189834710315471223027073050438025878733946535988464334427543652294996582049519863761723359587690884585778024220562170915518832645061994228541295476643181279674303171595134234546654531885473522992254198715292665743145723834919956958482408752010502777006607653879406261103320509032636308635818247037196886230083871737009172869735831826872863859917017338670580710904625632425346017007401200746747759039470251437829550760008574257598744739735031886818913015323695057907418085698628594332782760693830259679919730280218701415748168950401632660871116366789306378041785743861726128671003264778715168002869093454897031263902884411515996584057486128601892927678462882927002700204259722805771922736412985264645113270825626333757216386320327542840273041144039092624028206801108014792091942990204129496652724021815485879466916719065070727559900544385054192041962535686209858416389811014250580065815712710491174790029630954985984245856879241369770639242115613937005998238962668042746594566517313617575049740940937426391008379625586987531488361098303025835768349981757372412627748422877709497803789219747255794855044018013918290068881022048793547014395066233092356796990666043888777867366718331935014380026862285886323045124675050719067730042627209037871829478298437921170776455406103424311607955770036755273602979973321567457549474185424565049697949335456841269700513667794320858986117743780183547951334818846236634539683440330233066673903813072873162165839989428323201443298210093113445696798370721535560666030023233735406391038406862052850449774296266469677072123791469928406403563491398720288166685763847208192041677308139137582739577552579859538143332551734664577153204508935616758777749068951990213919711819633099113594921903004272210206857177264653443385398062168122107087372807758129310106012734599631299638984313910607751249898135433148502492085120228701364562370182774421082673842631093382061635392742215226774497622546655711880088674752284111824881916613077916044354664060739683638109696802563348590601733287233653337132523949183698992510544913191709205340927881573148358262560241090195902963070223693325255089566635006249481924264322490026378446002959949240850386821630658010826599636377333051452009811664080211650604866342047796049582471090842512601654560742413911915911752936534504737441530195494248523979198394433882069750756671969581252859127417249986879797267878460781937904545107283088622450070642080225869894969873896705750069569058633491632151755585485615750593518708951315215639887414903912235625389965964365673480069433579144616761067075476723921663430747019012414259092021522103504952892310299441547973037813305008794558352881844025074501664425977293552674399349195322075717186969301605030478798424388203762557714447622410175474185544265280436418488031706162207838467803533231961929360626350812980838321895425465161130842379728085066527336969601590338071181987632279151729652647411483665650635359917557317901806370935765907640214106245886824563783931370291830183513000451160830684778818717641378750162561056956066059566966439969894449833608185884209519031288690195370034067407080108028634465077899974261057147112871157958690745565230827684709623908387956319228273859972187030062063843058310280957064945940944717127656213096673765960823222252525976432562534211191130553151954115399630756273949105605614293991991720713262398079231146195986602958297571707408696074408275116497186189271539933111602958017843955242160469685582946443207792795486777398170562524250183776281842044512102556486527514979652277372267210432628876191159982870901541451911960095210916556847136429285192683004478724622061148878558270163426416377041059804958124576427071002988351108460395534173156175751207115808984121961408688727663008584372332073598640693961667534233010163635321824271357744753477282811736079957960398863519298249058480848390650382039223230229551516816463742168822883254348594838260097372030952575633495546616023605559405503371855001010971176606369622227874844150378870734425490673235323299826332829560944369383654310471237979249494393089028128192728997659950709808359187613589591284315566935024761630256914063111493279643267283123740565517736396466866607360099465522807767316102654286331681816908114028106372695191342647662284060487622832035484950677182056721297916620467881712010352184793363769388954242250086157016730993843360781363509065852462561363835534566196098669398813471133061908800828401910492041701321608590561785309620497636047228178911962453052658667520646523514631608383843123285042506149533610022139903514663230538013937495274092818365005750687379739625275003676785895757628757689418435538876167221730466610486978106894222294664690603834950355943219677287053405852646775714291634226610031208102395692648302546827492888251939882756467130231180868728829430266314835166725892737763673222882104896590434927025298877883538748795732233004831725646312406800867955902535615371806579882297325231482729394509244631260700661216460739151254267882505579228614900320910548900193911907626922315481695185055346353524855031646913996414853652587105084333220722998534894092823085025366031619315107899240489375646041500283592446655329683111359352949685283439495820338043252271393281583549987972820241672134269104980115107437125619601978106859413419068270567072617220809741960719797459088443774358367644898436162774216769322707400613269434001216666589731489140008168843634170972116550284104551334722212331975876907222238724203936318525530476877110722738105328108689136988227507551397728168723698088886719743702597611343994666269220027050086338819409398189722186019524707275851146348542200194249940697420670650250675373329301209910184656979754160409368400130669410482144402837540913297433215835125594332433793146776215742347295352439642837304030497980075192643923519645718897030939688910686510962389455388000279086782316328436354857741372485576119210675797710935516984659258295382472411180370004196329214000011098651597509189241293761301189577370001648424028133522974055985826205667466197426183406035482452562413527439726933352784849981126180654917144483990587212866399336932165230544972811163300541474053050363413827852971883407231696710778525281680751361757452275710460767165740874613132277327236675957561278322144962301832293218829347103010715786463979385357178831217140522272325486395867752768030684950270268455176917243652870097469362651115365464642625107179959826926487773349984147607024279515272744056622171839964218104456352816923820004352511404352534538654149082138809923857014558295366550054263486989822640034018250990136827946894567582366190997158112063633615835018331001131986156869032770979324964768437688272398680358300454868589364251229732013967346493875441313606315295837672691285156410863242552348334408077845902386433062157015058593085597616471510415107074281383134970713031162280363470846133707560188405888340927920136800292579860220169569949150478844124556650373040994150041551130469222186049390336238192756481647451751491239691635206968255361653135056455360431776048114654511562746720389989087684634247294208164463529191800492809109168695774655572446315461861772465280370755460392170744176763191418677848234716165704291833668671885926290734871550569365278174788954779701747182493723666665432681042416511887616177624246012677041741869869510888120692162520419197047842835008782393738007149832960246692256784177889128142667642357159050971478114792054028049451598903334069985669850226913583544444372010146442242552317987471622170822538117304787089671808565368712373637976899568882806018980737881639523769618794066080627909561661829703390892449541759347597695428147526584975211998905294025493110545628748540238799497462993869709567286039690900527964161937800453150378416729279265220868734872467179268467027413003303731189141846404990314890068002611508101625383560606930739902903338350770795211807941559166273858009675285947985411232872043912642909559126888804173540992001947320403625222636012640219848324811087277883094121943934790190586372801676747264232047201274002560486213237731925058380341338386065819684088999200224024146707618819263797994322775498406263499027169104689046509072161732689050705486799932271517886426517909495781599675451246613966278578724509713507054269232557880456902940346876844336878618483825995234089152138723273302123371077403596395809470472123000535462428942353250864076822817916253477912786792421521442301692769503082540958789408853995568141629808249542032554509490748321945358418377441647943668182710850525987410700764814764256733272980841026311848893342886522626383227995415946108041535566470282976188535806942239685415126314863476200983137303991678000511280430765453151531456431604095544271498765818069864282031681476755478291250934993237027181200596924021684172800581406824889748611518670230719348486076052647939083198619321139871304337060751224167847103000183455438852105799676368284762491113282708950798542093975529982401174001611852126195281494406704004049528332402089804508369578956591495672662163133562817055576723903653525163563645737364887854285285043798764009691440470685066825694384836895608143947511967932293829446554236106565113052395325705209596615712628347687101306895909563202174404223247467377648980049159830529861017186970201520546621370153076906851794262606749873155436854240513585119479993456818326966224976178582835969939349254382113668917439990185386287112949889149584296912273884003657089639071022801895388114423251456590244847814097769681858704877123702277446829551280407980932522349371005368615880158788561809982843374224421433240798232133527031373425054809022545889789931149250628576703459213143429666268668349704087522386879666546972287147530602032668058860785282382807387332724791454929550242083773950114444437055023738966579342041308131557547413641060537798584328564848549797795420208508419091414690964718422086226721658974906486806967695261719222011276728743047920594469613901978046160386045654060162881598095457886906904725479091510530157324076410113510742812741489882145392453657199457288250800449665480730344625176848760148443748133204621097808700670956002093117108402990145849350990252644100208503679061695058121703763605417170953815048995834406105781813180924235130651147939037963514058047158706098846068930865921908640666055240338223499757753023756313074429226449651832679418023148633340066171072187139817084614155831983867449532232564039006452426140217496437922674287050467855382125180249745233178485875051212870967953982797082566625200883824274518787926277239359534603089835679948148937427996031279960672661225905333520810724552147284107404350834545460084111524120934181401130675067389344061785678499739722289525961766929601939689106210946144289847007534447267520149246030340223353100255177122918089998389952877515995351734071579793179574855930492338390128093894466172970569340594987442051175781284211802318974341511434168133657843314485772230794103255933631529149195873258177559309778876198523059786746019554883925151849857300374664552317489203206369932720534966977613761468676942029153298352501082000350024210263778018480111040472489376992707250140097083864854141536492616959838627125454407159671313086479397659370389840866462005825287232813083338349460952005169205026445636397164572373273762544126810700057946874668345020663404687360867801071692773908545881985121543981752357228559058560054308396574250398014899437057487431704580489893989108375864822414544461937687622417853985301714968826864183370675997343460801830115513829566794343462320198088955814381238066960546033593020179929914635430362115071740681983955443318762547881297136699032569445290146288833110354570280495022640017658518076908920656590737671544608552743832221620742381132346382858122270181207112314080829454005174137907365105082543137486664271981801478408344017299766460831155579360996219324588197330924450894554607514635729658722146218523355258247274714566093333109330891549518888519194702916077555079728973404584314109518525315553297377094204386339768985341525610255760305348431219468603572345576108734253097115254686259008632642776542082925471735442333734091410608995917764943895409796657540157066597712099362136576447075115488999751756885475260613204481941257672483666060875470883841482959279248519196695732231761091069314363247221540077841455021827976159433405228168449999335631710960522407914638126001147778611930165737091117309873644192481237949015049615995589533308135276614102886218773933745810077488812554134224581199168082295065600867478578836151929140131764299996108826136178954770323518194502956190731570947682062168534000199683580348272961254479034973216221207096424607818195572546241279703232603975409826261994449349264925986766051262512097075523498274605651157406938265187643901413464660745813230805084274391288989438726896122733933469481110464589212716853896580093227300134318660397373434967084150852524577782982651117396578719861345457656597632576178732966301816979121123058935960544755734144380509388305457954247344769505837727734290277771399124636121706268574307186964596750923117451248534141227872952671057396574987836006550269019357959924019153539656489291862737065016291579462952582493131486289619823897469376567641246069039294984791400828610298046235323734362648470237976095948876606570071793900141133067303035149853187464690708807168856862662514965920477944377519383325349807552586027007504377427005481862509041457789337934950778173859035445802467878240950120225380153721174434859039789177624502803525941131587588303109558423585172620303059053494567251779600201469285955649411032610081545192443824664712668043678404549294421874082740141813135758832629086463186217854685660977567225979512939510309793082373541115748537076007161082232511943768406133561609348773487346305059409039885445820907832845488675735441385037094389277681439983394581873740000970039126911164329799840511803417860864339105577745313147099057405181703820585600894327105686982203763122112906007230840240788041865946435037276582450426768345840973978846403069982402729579610748811245314184601054048306493391377856429126039520588584488223236090671283257248605081900162303213757020299100011022043666943175497368967111999099092761513988872227688886806437387758436429419783803417765382144828757890120941453856185701624624592036698949115203483339258503099530235035164351959241642420957412982211945520424412156628388002866013605677893946278823153519148343048091826856110841515397701167131401128004323699228170698802861680368176756904976309031073500985397642797891650859566844848332426596182602945814101852739825339846718223497649084500286250924900692833858426221786359301529969465367174586413086700001456599097764131842012003777758944546369022433073244614206988770144933409406351174795694849336169025824596813354471172658967817768986467616953210724641733078958620314125871471857165826417006749595143921639997739027784725389629302668645642607810326142970756941294532583591487682916857831589493022968205168855598763817425428712848934849024682991918894740487567293799265639868568041213986582354923158130933172270116529994092730411215449384128401239561264878899707746705671758189242215617826961153073156519837797342200992534554960898868337222447554102730489813124755213625847483912500019943321977059643310173637206894559274083854970081865522587359168042619444895067312064215865306294851248958482491945455249263670801418084215254297797217719627300097894177147194502140215102774922144233680843144573924364704926853748389485148853313017364137475208392130434356999336817585969868843361371636671923974186209752574469545145804240063383217985342505251439703301169227372648507342028552075482908872524895701413163027361997721663785676667966949002339150076666510598518039973733528241677380172715982446401494793445648914219718241674001537256266990640676465859721650450910270552851116088863781427103420716688569360698158851379604403233926597501671855002646130027545782346545966966679810343262055257599431146597109961591786587555206234636516714265886525454931420670040823889164749160989053189577087936569550956029390383647701532928076069523386582312165260977876734354762451749182265612578704997446626869693081947821716422773740957042831401238764136666480550403940143552573832486784891696082085561195383294743307600445556814263324275750627141259411357072329348177939130661035354140512035352445628659055907563262226386400385761959903139124107090295926719507833216905668071657892330228303315601393857070195050377927492314888731569862872488263565487175846570257636540271987190089000289048903773927467910716436470509396934122247204056188357864201868539453923251381012499837492637784339446233764316183132558298085574689201880340313399786226258058960494448668003481848915527927322245399842068756629353203901247303046302416850746748431342379966374980784137605142537298319679032871311386483493427731384803738229115470568364987316862554543687903416136807080063731282307310895956275829786027122526738793016608840549692174897071626086170050076308590136243420756078549056702205658937574329985410834214665564190079315560220551646870708533835625511773208305983880625868284401469059050257594964206952745860283587521324862513252715481986478214675491107804426281127062539703633195145752310054675022842997982917820941760292425171557702691345823446615185060856165774282231114622379749305800169613419674740216893633096076637277981408677505410189490927539280924467150810472740527179136619625806280100339433249211288890753205243700234311142013535233861587184679656285599727904833602358362568430105155447698642306419089141458063074448763852866008104038183469906092851433025553417478237353847223176712375856437181746159668946059218333264807366839562589130333186483154752984501303467867156306051939919502136509326133397803429535254711996006567291494419913685659329730645847004669582465849825122680195318460683337565267408534359436107510144869600254593236395411531915930907790493944958193223848353744098965389877870182671889568050551271520385687372925794563353348467499486177290855989274390160073579377231667702776838102021683086915272734569772029934888878125917428766332067569285899401497351329202871467279683262027876869124941320176396957589158967482259862391784939156973564758749133113758252501366883037053823774094278156560605431367527951711864703381743638014591717269102041024331445672180656377532507349430718038761932533799610485654783013360718650908050750980389222650923124101861170416858311536699245156107148629086777012801451551032231169188910025441711740583944273798146366636780020863561652208120969561842904587299919040094340968532397959305045154709719036227377635035388627671098569274936708640081144795170346546789404635614534556596571133959058400582751410383586691417828839119679594694713729849677649843405032561152763195176547226511995816769043824805405169303890648539571445982954289221506329780609374160633260801000617244014567692999797437787593974833395871406736109768854638005109686620860596216883717028641712030594577517762419304969842780204058202229098259693090053477586276758905764311221342574534029249202741629519108690517570251372971098716006144120167849216056602824180392535043036535878186486914495639697238100994826262212048592212195888120445038765928906036671986178070465556669314343649355084368189857078748988807186186263421507505442901927276625435195982594927614210089754183540754188757881324037593707385468806313007798844856212721565246458482208756150983343686693897968610782698025531905868624820413705314056513247393080898432117926178557164470855155308310831319159651394720118612958254887909021733777817324714682776268227915974870558427278972047522398374838354757944816027752697551685555223642933968043085168934706181805115943858926731738721843759209055600622408964455972160126310625698611886472670904969975223260556435680935530872569478831697245557323167310170853403416741246250976708961708041186149356340774746318881964858753268045102285504804513801395949793011585736642369443548691408718065886771294406358307927396714088538014274752121406709593549777470314808195719537220507787985513337381170307879303686747362694558207326975062284650772336961591807915399884279831235741457386392772956821186268752762650254939047403183827261922021559558470998290868486551526676022138132604178453767163514565766185802075329915562760163063924113395291194723801485331991051631321447818854487377939399812560662570018303008661555514739971332539055810984200546805280687827800878040239398474780022990801414548268170965152208170825119696750890609386392924580565205772223149122697247968730504352731270462686999774881188400542815996257151649334195779267777239592312633143044126154972726313817028124407360438199249615423520879279100553162136504185537729739132549097771229314594580734523194238341436751322186664032779724414967891692553963112716999199280611460536623597515544124737078654991528422860697251603639468340171440363483041273433092122371546360875969605554542025774693898654089281741583088810399898336560362945297133529665807586832986941381626540515026980321419243128633534060521304185316464622107474205367634534717073004027642863858459118129619973001560076745433737150365576355720196276136534334000851420179548628656616837459529495849048438764913894252253653461759731827996035159101159460136000796940161798258265375502882081707944810249659133158806476051342535487447023346475891247786277362770313151116293601309139991540059023714807655625468329815375561425244393538104450862985948267964703270924133068814761466928636921670082455945995726982837297786534914757319542938965959135990845347832691633752296525620811121610775135761286875189171937263797621502683418840012527800588033662338771377087456926484924467629087511850452136071187768298595799335186330494433373392133860273905348195440050187240701101441301775042308462867977568529340455524372808312005465670413157070058980186179729097273444331894877198105338793342282559754672855649239859206589434849311164853835662694393028221141836079957334268145071073110439514997210138033238589335755341203966299902269678323686438068175449539615269485836206495137885957685835216181775179117309852748198341060984947099176118385678494804711445743506618056669612318050252613652616012392286867425322661333028876072077142119737486430761391033120589168636869972056830312850696323597323634475497393529464970244965854665967212865210293169232782544062027123804700880134041266937524112324564699704276209837306020843221045799051908820198757003383191373213025416800686541503466452083312182793319223478015277602206122201716965914771851838643110507730952775185272556721773676024311703265086108398039799702561867799614722894440119060821610626020134218315357901196797201036435428133109620002013860288982600666687730070174039244690789651664699338324305385355449137041584735561151089802507951191250023729605320871087913097008563234400106728479277324938656664887732887656305159933804675540116210861288562247491276171380322355108571677244553512910414624121965457559834675402914926354508592795089637464624134006672295166992339971871710424603253305064413649633973301114573304494506680448510489890253601330322301077106683728657564709068172600466317311874629865551407485685700484755924501425587676303201593116729712277799369686849614296939202493304035020967080939358985495227744585979915333486155028766687498677061077632502400053570059967959665988134303550422091485933990853648123913351470442965931003212596018614283702430324482220678292663623808000897516711012251236771121641859545508396512863503395513991437111568440058873076217262372800496479931036797183513693607055313087124340160878501700459257033206952290549286089195584049677778885774690586030733424349057551994143724518573644594911461988455035895233610045419161619021346713853929836200284676271996708630726812219499343637557537170784407498619974031966638407443379525239432187893395891355383086572760545878578047342186568795996863806841730497600505243642274771279250345766196418782271862863354535898248424392066249306302570256801281204967019784459416269013234676521703154196193076042504677747859143408672290473986438336339951248498707308795980677695652404814720186540702606152568900625967224690997982178027736573501530640310305409426029827853074859482847664312588412227127405650355261257638783560383627760656072713970542096549157833557529412530057657505512753273609506675939734787964829313074957467237545935098612759989131893357625953663049192451878644603709174710715525990346126536839278474595753400925014510071198579625221097521869231526247783986381726570713313222837439158530387870421279219774587068211263763887752584058473871648182635107857676008163709668919186746537238947926303709242058074036351800872298981015415667593623907631783494927236605192195830862910315469000338217397217175075252300903027153161157130857967570965050112239522810347574712514382461417645657730001931345002309563013872855690172918124530065682882183682109877602258526395931143405219378467251821422158085082371271460684161000353116221767967617693198827151417877473107421367739313214812887804631434534782113177502349640761669876398915533373236206253388284418327567447595648509580422655830373377880227284922361752945682676739163465351400837054094943727742901656131888364629079368169287094999731606479033407229434637948745300462561526545118976984749011648298654229444981847112515405259771938641581051570944779464126129094499564693083623205686224974132571415675597838010637907176947814644915243200466578062126445353298537795985480281006945890542119088962328399835167756240923093655102627183142267425786980346828684230487107301352661493730897884387652070581563077380966974922986289269433141057200626843401664065795094041196121028180838697897121015768250468408921819732126413920142871313903562027888927075306334880608601607297320041199999779780507959940384900854880998259603116452748734766931541573704778427305783225660356728650650051096750398351968467340437153500856419171108296746824646272452850806343444128434615206130774103792705290861706756283373107375128037745947246482662392492159737046329843149580468277418906922848136404025837681339121885715014917042619991210069269381100576008753767556699996995138900651012559796274034829651364291514991953611574070597058924934774670671085565328681195565592640775645403910599138156670795816792838926070013368684229198061585276873993150111013443717246256437391173291038291030194280428105430378213411828346987400335097156391232772536470810666018154675640723205648821656693049616358904174583714216146060521842639889334820164022791312346455197959296650262331438801298516539643708920539595502036912808201290213849239359008351546381179293475646586639430130193430519879162015565490704006598337118672603082324380660756656619733076938839697269024005582133205023300236444727847177937331400947117509609781152397928228348044270821859708078538766968018921004293259503709947363771126955061753705843897752809703740014292893726969675375691038345577849747885838570272305177860980099216060884846464476999141503641117464899894080774534023849626339785332652587690047871224717742031653228599435284892761176719122826700500452898334570665020442996384548004105654413411630806214000613151261785538620275851571123165622840842209651230836221163039049917716144639123175282129806703717570405185541482781934892925687872535654081439944367283681721515142654560006629948539178410916759707929300663195454581752540664905388173145404964217177483054514345372091138627477489212929479168621578673332014318724542882000474295155473845606743074269042199248587588738327590910428547355456260179520231613528245210429225681150462568431853953330503051981422377303671822216127251671053650018402647730472938654649959150809448139468946051780774647894595254935541215868136721577585644157036950592279899483242337427898285502319491917154971422732088146688863578118796686540954446442815411057858653848938575244881155776228632220951045983558222504060144448857358636157130226086392787504084231651982631425476309115392490964610178717750173382947798034774144665066367159526179244754867009082021194924602014179654324824584934771756599804671676724144402569482391698708016240851152030907470959426810359862458961267791716226290028126215012589787303306697542407565074091849630907598592739121817046051454332828166244724791149369993935771681398336530681829721795105409118851619779512731702934244243059852601656377484113614203607529681869998821636393206778250743335797166270314293837326045464810750693459416380913125817031449097246504588725671999018608565604994266011398991455547115229887263060404335943369957265812483022975051587053460677683602579970367580673903834391248600471916422699946990943260240313518124325686743148000882749371032869845371438530449812902218907586058457407810752438701752537039842547060791991091844427265448101489833351695886279818517342220871172525084105902420403483537505741272890145099347684219823655167924648808443945183826331439584314595696880465833584182532337566118141449673496648050264121533082485992954360027595926834305568401628784252604935594913740128617245068331390694031470413669356691773750555151746548411319415227984295141749523556657893142794855789470192378383487918085851819895921673242799223862387432271796574258231868531731353391642558530282021946258242134011187022818821856956522973462902867820399753029911538513208369731615814227551476638662809398021785465614689821048980785711087298654972407546907069012466082099235081312844485608342192477149254378159175130540715802274583785760758209806489446177102075197845348811792744392455570058759630082989917337643133466063786112346952236328328422699439343072874672825281314150924302470878749578996511742654336703350426138390117713111257308780820374427993241218957697826615778224734376294552809915732321447279415199905675132697000395312615340691557699333588493490835184314295439591925081513656046443813785835712062942072583321700753090271509827573597391964637555847527900899019632675297503865480027901667990931053259088419674873562793047917867733709262026729263123566458611552026059367289047510301624399216804404863450051774074052680401658977320595058998917919569406548657115711129649433336071388821106589486456204104671122723411515246374524723636891337147412617314931238889951534181580858917318850583974816736670753812791900152284614586784453925247933157223553608914689733110126236286213476759583840495092813665407451428407234355762674703817886805289166306428092662032956342494865872039081419256667904392102301835006303398367241218494643735773308141284032877561167898498266330237565778457597538870205980278967730027891991858734295254062346857709588024858128430949290993186811624393189134778053447340964693334698832628331252266661508397367637814037077782503537806617517460268253892556687668586910146115444170423006955791380722832051266283006190182047094543426418689013922044286853554293208378377884213803795032672366062785897809092194916308401593416429491577825907993221055259561847385271795238448449996559176976241672854649121129602301914605740493718502359025485206131018342754040730551121619997856344705826512361150526972533066582652309880577291356510860006053509907145689751303212080886653243722739252271622168539571596893617838379902274392584479670361377769288276739851576767503326616723588131228774041516578449165939556937411370561640530192840583888561968686591896583121162034100832645403780853994802869000620386131667561296083281779347339103095383955405851812450510554041981782725130231312121945640515452342076663934409014722642364592610664850364914391327973234272600212683640528717056526038497103860070312137572117004116796558439344581921017542610520487903654205390193265272623096108501725044015508971847995045276597075773342514917863559484565107185668277051475380855494564142628217198890441909895193616852008779074594234057708141745027360198173410449890354140458167758020372067775474810368638734013858113229316431304037774354057007563287660735790576595945172369679970192040184219985871958625310249575418200304533555570116611640817034160691235923852729020502724579756984940244840589888335261897610544236501839817166905062399738399169823889028103269103988904837531128393700570731513262849211674371683277017976152203826025062868678102182878632545736559519697563399687187257367680360816215184585794832174698805070756502875513875455054166802448762853717463130717654879942400687506873280778275471320962235752658541214467996291873556857118133745914959548881563578460440994618272924422455666103094112443238925786719863788765718818230341992210578097592063578473610076141485222974971829308390779928625980568777624094378243863572130991764182605295917967125590145229825774150164226910313005782021940840674248845733856572197744050407907644076733456116615536966751395230243668480545604444217772008944817374033223077004892843318337676413300851995758165741961532543999935359888188952206470110455922180830071583616085737843704269836216694727315458452799509195532080636305316046045952533677713476306515923902791899454957692913638981124796802386133314062848037030578749815485038756931077442553392289023481477119783870069166656605784093409630215054633767340206802560788410455356924654505263766657194894661612780270357201298883930712784618183424015602979342415829889608932715974091588619145615857141411122286612190360098962701840845162955178668987167538043038238187257717605515662998130825611811488200711215603747403945757946146797675705525764585215951008035056250104882022923250686863970342336839895706086898351089051255612287431318867048299539292890451159925061984884729996318508055399285505741347121926240988870967969778481781274646672884722754687619309884879488721910092058331854505130758164331272399918978105407196177492430028258369797743450827012647193790163847235323941663809988089544253065009688177356433120718936555023069827572384762169575625716583206599028946354383975138404307399000691846278774498142913586700409850612169340701491691065124166339349319270822981966179626976582958513888438221048225052888997834934467034256882457392553837823647485988675369369721850047588425948946229756050854735143727100804263141473842692927054530356945295824053665110749295685754958618836664596779943701922914075359089238076390239983392919479222764393748386735562159689884551098543248865589076643519800607910802584417107725727439547619427482420004075878550383924038040835452280483950743487285824058725264598399881477641267393230233136382242007703507410395891906124896786947061162169988560892991853507228333169703788298488694210494443592321334237554321504566590086279746476342787751963893869327504303042875452893972100295579408865617596485467640526947771704122253979552385755477685534369431824227926563797506653772131455871302584418328562844595489698654195413740524827109825578220555624060462390078914216525071948951968943638552475630243658746046020974096092579500626439634732835645230229415795263533840410951629525620075357837345060829720060838490586076571467611352722535478662214031692963933654110146234623190144905049375906706617623283208597123147671969413458540716794802968584738223323813336011453754266604389759289486413752331677806039429127555675036031440957818333905004168024536102557566094334637483057475382316142829931560927303118850789892250334946129323000376445768865393489287009867790949736973310372509382052839381016581600007287734199078860375632868248146447359829512668652127131500072736655564080483762037221824219411502420104231235470010757180452313197657320418305549500191960451216957147403101969904671054723733488875737046100828802837321447518754142411008917584160206851652121526367312537334767292701088871368294598643050486519811769639393880720620079478106705327143849252497330001256175779579906811265339722743689410943748662126140446078797796098760680049170842823356148873967912578139987702250018233362184693019787216956628531323691854528114891629698586792839159156448752904263529041630644905448038822273066139659003113757999519089464166019134862793169473484037338328917215077928779479836933766249925649315226313091859797871920614733222790219725807419742890560749452999667380702847286273653300700529825716486308498845313553024242385898215106240954982943430265873035461489927714949839391752973593527868543937915384389434644746359752605311115908935002982895214885749964843746488085153283958136424995599723759467756364181690141560983758481532049555559050043490475063333735757773075824994929842829109916009049008901946550692284283583612612367427967128174261486217393470926324023423108461382696269417531443150721107083690284645178039544309138284833702318962907736796689122753246661744185169395377305711304001144242741260370117391501373536392638989583539639048840718124219056131025726304109342564709192231230849629536023869885808998163704241093452466999920076179174125986401633981265845222380324004353871566735025728253671812812771035933450025176710644104925405685322646993208287382084212478847859628369642582029884621346601897479463901512221563458147925378022255166855516249500859510319167536942348287569539183622119351624627495472920390416809589523442656351920528353820980086154740559780986216027776577094392007867910825850703486865797588437758529814839398827652863463443683163843442793941139196598174545001251293832757911123805543886735048869536693828973056246228330376733997441576946910284537486292239885324649304399679527242301985692465937163497148136398744344641037508984166801316182679969673709497316717309639115890175668413423919336809476232074933651866205561853329556538216577408970741365448727182724909194020262253381592369089877876111486682475622087723994675931811060958037822828626651054236160386608367390812711117590765860000830087294111031233037933060475407422566516910266537447026012886500577659055351017885687599359004848102229776510563253615704696019554089067318677549473081126813755436814887991898847390060150365552776211513630746247329440460962468905864112952413949152950357292459659285408362358443880240115619092552253464763103717854785298295103545253474972485306059152957773680373096833925404509487285987933525566640966359495554078709538919457166689030916219103025984107559363388637857878110289668777429046557153924288411569821134715536525577090402434004176521137227325022727905329353755678348392753651225691933892255861399082777580010480068381849861198174697240970627229622023581633297382541872717589457739630038775368419883702961636441270971690188763300104661475459465534958327942536003762309531583501239253805873580257922592039120993053238449798076436936573801107820953641744217743877724752979209320803848094346904087003290743767015629453966141064889842873024664058548405822995664255663298117084869627352308875000758809956706789172848302856072233776307273491330806214026465249543471084049661405497356535912502234448686113484555430982137448504408161356271178595258854126218054275550497741083461294887212556151893858882336485509849501129482576658462682918912855921930198114636682216399485061091696779997787764221304156795245447349383765630331015580813144418036124796712672864350389577747489082032433916520192462390566979490469525200648441554835093640767413019839572896787100984165174553248439307404497071594073520281757744065530669110130819205442672221263551368268248122152348271876667749852830182009703767006226805942787528770552158294200023188605115963299902584332348783250860215916546192803789440157729606345384156858518738299024394293266180231946633250040731665225879578576314491647979510544378856123585458833238054717719686656236215478495256304603616713960181483666730503089222138829021152621560781542298183989427339605402548669940274090966034685869180830261447473868340630437113600401545287724510635971358826020320225474555638500332842264795516665363095530366650987595572984625333412740101703168944897359455889087924648137969137293729874051986497426092130206669450902005462603641741540095124440365623154366041667632255134476998202058000823477524522222138380414182634426564230095349599922914931099609184451208258633861673618767342783138128458013917344670473284170768445064427828520193159931446076050463169501413762117005462562115704109531948089888515258008828342436320684513018302747102670338388396194829548762743108071726250217306194998823248790177337280905907240498079163636090901882300139896221556442136657215916344652672386040079719769632788475571406886861776278710098781276924681119116317381088252800578300358044551581272114034965147213036944196948138587529998537130531511665436605632960251237472037664536446754730945337746634681231355151055373478431571994534205607527131133267970240004171150668290176169034489302051727832981075948270321073379093507376891459761860950734264488355027075043988527522705927200299029362702071532556924196552568125752958290361936450413599160615794923779810585547712249324847400573615333603216037337534924750796654471048489228294340050713698153862911450678318613503558392184706910455327501095382865997557577011190900174130027788985386057834325201988536332563619496516621098044317998815910502232615416453372240311394622435136257595433621757831826333587742331084490785032044891838531584439737609962975471640592876764481613753863935313296739154954546394077701666036619508446577320573353230069440595765816445451013348822999287904630060621007442365036791203937030824857843807273816902180980599085939555586758112530359455949858739684175176660874777466280093742412079496895820308980272791890166071349364770604181159608092889504035335923669900941673588686381940812177104889678138205806879438195169052611879723362240445872821821188216273121124357996063784717990888554479075220852621398622285499341303009655031048200242646176553133187028316801775120460491168713370195089681864263634485452651285499502885630203914052632511050715136430971099958172165771986240782083306613528052287114696160965454334639302993639399509278675264749545491197095932196828599938029422658899679756028676799817963492176738326506463253249070732182983219750334227114730724548289595717131116282686655695976278798073701836753573503169013585830009995144969800880954640204767856923937017745280315236719299196287225038400021550337311148322705374161311847790944058415449855538180316114369908278829194307314819682583456837772607560396420749995778427941251390143847321894584141305306493552161874884559809060885224550241402632772556318746210798256507470676429286247507297888875838859420109926784485392590023959558522729477542101645058543180960596337367728732719405831280451291585714738592938653594126385155960974917460426649432954269923522805209792110232240740053147024873852256446926511851917262837829888387789148501318112354897953916153089451119886147638801362351340943871157024049435727798036596022930667365871328990075989575561323231150790908127679023177060372792266178680543414452842410823234041703185830643516159293887879011110292973367976123450616623810936567411092180224463359275182750810994924273558674687033153196049554598159806365265702020269133652159912354246667682336833243753147115785692178344040212764691614189756295753583873084238895067046966637104757251938260852617217454533577094735833285242804278095902565054182914646274799854918141254649497871566819999784734110829817273447391519670520917504884878407370378069538953724886755675455720860789440736545550871361709165514029573025474063425090708111716028189639673582250482823721398912858988376613098484986679399785239313708724268651422983069243077107063092166580032544156378112032043733348438519462211894123930955388162061605909211853429196683300342896059718069820780009402460888750942695199702699372873169974368652337148888644554092470336110669472742336679529400273658264978376538211207176487890606427834068330880496024130533381086564858398612696868398553944736083244888748511977311685448901844960305894680643477587608070025794297587024918056686286146521707116686069661894033815689134721818790149498318510281138084372318896058799918077553244656712143950088086633852956412315671087298192176944695593857823613594332678781114704016355056911612161317859147053680508321597887060745619528008342270358827313043277517238076220176073030426434077275986552308864697672774200884225796866928884061071311166422790870951001855226052739860824011309487416304624227924238462750562461900926328867800202663440807569126297541049186386118329791848319874171743046689145673123577276013622213595475784029757447737844039409071322396020012012315802345826385207642715911751137126842618146660880464964113814253286566651437240417871045128344460242727556995642470021768173555110634349876131221294484523571188351018870707465614099269027667476742071857138629391530772294715216587584913026368150098035279563647608347282364828182745171026624648335326849137524182355423854749514514317258461496110764090163983429153442362204301412664898998433475036825504262049193240119379563290752187984678836984860684910391912967706113302306885828459429050950135698412531939445684092360288375740626589124383352171372011847651893544136084294671208872114313219522228567432038118381021954656695084221680634300786341577848125351161118893987786144955180621771902153241524676826991579461857817320894943750948822880410280556607729377378779309502448031969739455925639716141210974987977911809727840400646569806001272571516901902360003866721017327443302892881453039419794034948109297606071198337548345015455766707738922345822136238273532361101178578584858158134369909364293833476447732295177411585603218009479115078608823843778649470562520746698780281975067025925034092511233219817091933410589471767463237997691255692859063786743602143700045287080199158684156912896669713640034480162057745592768698545739055945299971846763070990340043912320680377350566500859372224430790441302237867268636473363088267371384822464873415966089340408219883534052214645956059191686676195359197223507908772743790396132756639859563410473145998051196697563902044675237715853997484677358329219888090561663625856213936526092362728226084143535854359169842247235014661612495286680027507154968957042161703238253528646078762353861412759395007465037248841349420149211597654709260708392052162456372315961520288329824016066045237149051510888171603565613528560029118727242737740771083203902930161778841746320651272629530936173634541934570069021291518724893882361685845581726981591265767228375473727448564963747211498510191706534353977487216969678855128778706554377564454986414366494866551217977834287065849750583497730468807460664090674995126014369531922808668464078538917725944035506131777229022508133489214131205714883401644563723952098859885843604691202916160804631107930554689788064621138543210492999445989646687107943045613748644480689321385107538752116492852568592793641135370361073182678229200770414724536795832283293602175808358672198112222751896081751218867133670517492588251515624889208260820777279385252962519529776713912882004363911345534965129384962353364858380393398547290525601442454920008125629739126345974842836463957799075347035854905091236252403116360702967479208905719415766563566502010734217297571784460964724607598656773208495567847021504923689333465539632833651793041874684884841954926530229977216919360141494623946001849280803127749266497927893129868189241110986398495173446876144341401375256329808736132177113793846957810759017005479373921910727130313193492807944270094869304234956573859932199088345688716876232813749438824120735408859776766696716542598878486755046925723304707239838416913610013723499102544840318164323240750830729142565196089436099687092545645318999973706317875599794887587234583746117187279806197918315034278595271895098766924630965467891559111553056668852050061646654304195973634319152037330289513275439291269914857947504710165656888370609766374018225860953289343330964808183631286247173765416135466664203797955512070525708201270161658759661013209694910592958367827460712095648116015691089783376051113782683486419365190940517585930112396773542766048197670451358871521050106746557615367192814030999472194471656530610428308197174303711060755660560519654664888648599809543995349749708481445518632273025582466619755914276211370249193170764492636081960293104242242156433737266382509536399216718179535945963197417654722895270881671119762606383351718835832154027712678667004599226677998460787382947887427346989484626995266206441985765314482773295867882781791577310303810286926505695562166290835679916533844636312547296237776843404954961406681477417257113138521574020766203835706654098881049974343466906363445988511655111932578634776961249473803317059720688324508003487836343288741589436539393532809086657138621453849119752904826607435727603847174459781059190555342608328125655131143510302805588976329185602283703048942352975113761786938389303231107091338203877907858816273135426588037618807560402443998141713510200879084442076707572061745456612453303269411229473133894626471689049810479369281948966559964456897314103339448282789821900841262465774708560007815620259330364144385992302285860517245453189771460051328894891182203617823128722233700032757587383679092714211943202471095861686708043615611429289887435577303502911769038068758151537650074675289997268430758517104453765147396194866476228340532041462126060466540744012178156000834636772061413372853370277916012395026951881094663970591270705005583439138609826866117709480915196772592579347575982390756346708360846798346312101494097054250089098871366694598717057074038464374324955131350742298493520542732942837366085777735160177090496720884608832669850860481506616413239776626113050456651627718275033951858115713788833072200626072572330324700113783414597476196249633693157889040040042918737555024636445366641762853788224710016213022579721322834396289474312202731477120206380325823411907355909875653951804540690410176780752456425700799150024997870907788851254666676482115270222403083594779731353320196394138739823771118622893696433716703385923515623588715039559521024596146551957859273078307324374338172121218906350791911675995657303634005482891638427533719114376898402240465986028704479056226076754229603597821303364231627869266187639892286889906472290702666566121555241083033831995461732805562938389508321427924518247887827510255639315284921822360278461293768341010391266972277444954469845734670413390961974583551477652346607808538260515390897879183734049468765117722631410932623036831087143781812971270060648723288262887875614971563479119628504786127055115232158427683715615999470553344397535564335598311940267231852462300287452451085933911215601104661119994625595441611530532742257656894439710272458343422405499450557117013281017961786464476592073351997332497898788680773753417718230047722809363945579388928698550247599975877463879431171981702136193717278990703697951682784014108101433228158863035785606186091245172657980322055421908486599412450896302964975873047613336452367151714655464553952109642763889694649037238316442392602789074742423514709816965136535090431573319664402683393307346451488343721971806418073607020127502083669345447172834586842163421997466265435031025673813047175514648007833462396999784661403218584627215571537415367109204502094900164216234259278650598956776405804644251128720020843891199333544207234414559338026385612394198627503223639800271422345335717786008444060170576115005955681468355411797097498794659493458079264247430685459870570261185275475191065451236161845297016235354817060856057271052927620123425348119462254247007713997813578406324121976059530919100863098437809447625330202463628791731992800531195881953999044499657307293118499231373037686991408618193099761150554258333499394578407205953946364493251170954472856813666312867232850416941346189066976327965333451256929368275680877638099365898610727133428366876489931650512508694374967905341325943335384574179528848412962530486723707773537051947944654800845384715656152720017296713406317791985654789265142561289162750995692370155400850762539253086873721896881201823278220283234864803314379880649632053827229784234840678157778870285937801312155049498240549819835597291805718094060966234261952578398378992329102448599011833653406429638096810070595145263877007826755402782009593252137658975015241010794924804811970905880863947336971603361384389644859889363773049361169284533072845615720845263869318118146659175612090802967429100607461716871621708072720066509348719223829655097815267338043894887683103616710748884994077984916057138176559120071749031764832537035286648889867756047880625736006863131423298099734338258471968753151365760627507143416828558600278369299968867741718910698984089749392633342649402594717991503818734561726819394372261761155683070136278063571106066169089779176908608416768823043604918749514701839102416613611874203668594899005755419067478760751477153382264082177714587417039117640046638033377473539074709964979162191451456717115448601616793745439258227591908657157819468357815865206453761614753390041856365291520083930461478057210809546107604978065890446332123741012793748665614294992500832776578267195452933347630718418166892430029949712157583624598990107635812451597536355544422818883738136618009127956470732828582428152122941645098751064108517499067514773993334127750395341030126507308017792330020883765781097486377317248601806343471992642685403740644667558957790894041747533215433037792944467066457301897664632521201799297340504371089953289754569664358265514115265715203929498355283687508486307839550979435484311633264409914322776282604672009240090565227521844675582090830915960571405182714778225507068417649418974546052662046582679538706064085583057563773144157676715778098412394330556631066226163967489317031008556397210023249338770229283651137354229082103658213368753991208123008995443932801889024418855324965871234689116915243165839579146299075564014614650754577897151418890880203422230117927285313619340106877867174142355133034600534639439641837084797432038026708241580721758466153369499817652450766623975968134104363433207437945281850230363072071377688303862196401292291883298590542438752387189652096728389359561407936547008849917436021051092836991214173270861995684975096385208095910505810199731897332168845819839849221914325137399663422673708144988201181118838185916036395601178549908390893463278763571021695650301527457627974690435281652905978809543774210942522747362501328646962923384997817464466949729130385501024696997703490740979014172497869178063469676418084541254982512115732998308953677259675659200597121929252052637977670817325046447134378570053773534781372304862490656568876799030404453803871231847078699113166366736689332382693318339515688556197310391779384360270724582143222425842116127270488686923376217195447087463313726392352449055057568552860811566431464400669404582382746617314330283178285080430876266813839828173920157453563370093114564133414426699640886851001762490771216919403841616424809293951109328765360040305112537480794540504921606754621721757878696533261822727725921944775199600557895046836205414971082727157947852551527872154548333187370235165010545609052745294592462568158057165466211558771559071154399602711779164188861480004428843536427936178117764795555622716796861253942364029431769957698557411908731262482600218294549572720852833448030235681789457695700365263192891923469852949723031348621502644236750264808526106374602872335564841072213216590140298705740018880906483161733981838519239382837861396364694160778413009802824861170850624680020789620418762061503038380879786758742814435103846346699742185581187857332972750847123402745845190671880115989421949465775632115813646970764293529373856052895921157629972294073309431486835598997307465620091456991820910351617431627150285995339811807621038501834238707108991066341603939258625782913198148920863915389459510660719380540401191417807046104502279274409453333119168345849961258174352145432829582582023475590066203192341719352226703493887944918063023432869780746628368456205968375144183189961419508405861103390007845144474873117482723853535047601488617163452462637239658247894146401007471498093498785223313787127739023904172593870900693710787883479470129344254238920534591687620985975866671631347350735247197919242559342077641317187983501357645462366321613552032594363571290132597847930793162560034730273387105723247735558427714121750233085766459838977395641118194395227593252520960438906421595581161727374509277541267092998017193758378472794554849248178505529136052752611867926709233249161252212679084192401450946334677403812439966529994444831266242615554955166451008797302497293929552058114747034596685713911383444678144321749454572697817927038436419068534767491987335580589405352270822815534579559110584860695613110773839826178592981849574909165919106472426431804030221771468183820899408219430855800545819829488055814875562364571536675831095362222361052984403045301232392970864558198490701721733096497206823506364690645165933592994744710586939064558537542530898981494645786455155487918507008370061365265103288153813333568578365508631460412211254268935246504379102651905131158434163320907115751341208061138431715193620122981352037336506796640671491506899037685605495512354296672038839864067123640297862338796316154847061930717459304405083925260127486646137447591805122545356834923317215090423838326039813101441505947390942558280371254839814507434914091900417788922534167836908278953094922432526307563044001089437228341596921635525879604307700120700307588680580584176608308022909553122739520485309361719984432805346861129580568691920456419118434199212719956581265666739102028028836290446985941150573866194748813900802767515404604343022681437586937676281517895996879888547521945411767505842227837531204508245891327885705877716104980599600175343581218001372085280697219802582974382859440620111065858530646353438658872670355597589605987621624056510712947226786689489851051513515388347474501958212081088464138256533529765589119851969668958408295283296575077797825160370914101979783545196795295175743801078572586170677805557941629324575305066097127712840110282045156950094836303974776477803772190638126108900443917311491722414656272821777678158413495364117518873728328679333610683611020484191503293317542254419464388469172504018227051059836615817514566237635029185311111469556568561370789446848975316590703103963542617753587487972874590766046747485866785425519281640929354773462220327136786728625493696632918709879719831094167341282626919576835463169417494457017815832830097500560583183338976565360231492436965019137375782109178194226725020980839741427693212169953031744757009107076977988707235130251956375099723160287692270423308336052215803106786109484800847229758752699765219856838779101309955665016570559740417315279012201250494416639614623155414763679513388159352111391038054792268107435069286152276569805654344243299827382847025367380458832168291000719992114395751852424706773401869235301383317665291879201475783131813095031595401621896476755516418181486996802201161736864476668930467433909402575774848271079196871541109912434514253388805685085671800855111276686806588965235545647124946690738390193631638772351899294264446309690409428608496981636473189975649955263737268911550982910018495209495260185065118040378804220008684949155606050154671951024894099681497131419123079781978066082883263755081697527880198756181814210928135026450028011948661077939693150123133310053711651843217286529431508161516931893043170380405099105755307141636380115334768262672639972206860489383077878020890603300829618506474707820718634488775076217590914187157455335960216136240746466017121153676395500225992732849787105112541388384524828935464809430363744384970917476593707781717337817478047896802381968475359987967671390929224460638158699598320308669605654322643955956024170486768337446671036171341696783030393478380449640597337604196439991108971903204879875438028456344508238318163960964959869666200413685926981465469863516741536854421896529037182964393314927645275469996154121066411488090254335459571562604112934960756250488984726243619388699339033272872553292249302596777592683642545471853715533286476337234903570600663482538088212424898334265816254032343963510711987632440053235101648104093589631210129725664693702480832541354312634496844365891179870450676132788755472716780478515772869892615481049524699330371121718360983284787256432295297357435242140264263306318965876899408982218164591924144938771688568239549020284572050972763830780959871498737123317053143969176678663379482027816599476413237304175487117555820640770914432776824722127673075126585968203407377348376442567307637297042840346433228511622074460782512582844433396183927041585262233726020322428143040312476370380132155890058010501720408249240132604083303490573517758785465177324389553794295314461422014785315114539257657654794523309752062664774124604892852865119660889706601026710702613258345583465505840103864053114512396996435942391607281409354329921284411448772444134843707860970196444217903724300988459772843995401825323669297270495558355419106300434342701145689779123445338440460807173878331840680846098099335778897485911286797748559092577262924486348927503892859303991863723742342159088876520349546616567010702107459203181547503892735873688138992759577885746942823064403518078502165434775933646216310826020264562509248944219307998875701720789427818089558550462072193918707862790131267327655947399188236830325568687654361689861983449688455508930393813179129540745244470164880505096029717338592780154655290503174507229956444082625292970769679986493837172087438514989285404500823415104320048327190377960053290790011616931787263948156737790211662948545490560562059869898413765360399664396813906750780082773870685742854105849692729018879344084150052714422334920192120592709495055204619844681650273199534251915598733359441947176270231863295693654904307568051839973095400666009527143717197723706953261941551848433634275822134598531476779128828748233840063823618135426224977179251728437051669415692351060232079664093997103056780715365506268673906567358292103361737497642274342651000416204075345714233522651308094928317588426149374762880250221577394553928276282841053075325064238267358140193795223347178164353097234513963445308911060552557944390178103609845739693859708380863219479354589005506601918898601555993873972721680192966474537028559799524859047153224665741832329382090807345812417302388806413896898222397049591956500462888495397490381951069402596671511031766469409768413488938915151632633067000104246520173719144781613187791186635936574204966105087961099769100814319713979187712954684537686971602583954345270951398034153321664276270262600005495147583109507370156309736458802727414598693536716986959588758059616461274855891342235114332803485413805120467295325607315434381384279528370550942953220728159744623833559215840610109709978492109446079311385361543925784154350762186548881468776079307728086901450527871860104807239956677252194516424979892838129382327121778476866206969225651343682180338303366803592905401426467319326691387688206043853816224294027125173860510375865202502162856487527757900959427196012743125988571927938509327504311417211829149030191878731039220902656390478219389886809149586065712300170029390109764739077740824823909166748484740944825871627789807845661324432225563801271665671173135079515242431964352691587105064285508535702758712898781930948496265986738075832326722026329226017351832108990523523813654263505132872665041265982646942157434506507374709438232482786525079451285623253518659425837857613858239878869819479571527171701117203983061731155600605888251153543299681413745307072101724975458497192543704216795878809077789910891804046413389141976270135686784927913443619113887776604322086316238058432923218190566897154960360816837338885358862352408608781144701766335459593999776280119126194227664070323975904933944919472215083622909233431847891161091043674549946425394580919705747304421919901495682442739795357741898502351547139995373646926876446572474576039267787223152950032102305743114528866233820233358844762399452760450351460943262167306422756411242891626346030812204864646352121624467074884776456615786627362897730067541798323889323790597380422445600620072986148202887017598836009523439789201623077106866089301697103188867510179535800899927689177606509058094997371941611890256580503285725245920693038625026025698395759161425630852839112622840512889421451217652740847523249947292798942738435210520824210157529666508358153086242749654712593625909710673334120878637995707425380922892385153989496339516645774600545982166774867464408727418177175104963322648732709888112471288892047634644831354875906132838105947789618364138144262232352403621972754106255191666980796502413992926946668369752454133204790066529703401575525433135827826339312690878879673328405354366571152733446089619676359325096918646785293567041946762934655002345218556885372646095481725255063607722520760646449001744146611469554292788741094634364832769548942312900831380391402486503026512616918926746313126163692013782463187350288961901842168379831484910676172820673957490511670560528480236222755244772498176017593062786354758014180945344494604602249102396224852555543127547473438789274757509621564607285854465862427267486098293055144997589163625115344193723359133647047874976870213045642609771393751326739113264557817201322414304074586869132508961917350548392474004279560705138211189758083891205383577002989060189876772132799311303542679188918871413350281095171146295851493156460787529463534085799070542897859350787284728573669723579208428257404273274149236287342731549169104544994224660288468306741354720889883932691685099877101647964232686355590984525218910680306044154690505677679307197457852020109889289374684744577255126544696688767485744820806721390775118478530691196392502057374359706789254493460367352747185686397530662110603010777953482235100453551156803245586372257229035076463964338151871534643352948347618671180658143020872001510322799268937063254723866252767214927690239927516497669440454754570659837451659624066382079491278476976332146965511724951544493978975337687864253065940312291234886882803648918242900487686868598186770616258333618754372363002242499125008998667577361441825170588270425484583350313049429714646528865971356546708649824343193278027491399666052650591225239431646465989966705191865779586592952487156379257817439483196619827704648722630438004406470931262441725543216964420629381083853654772813678831504403221941685584240197192614465440618100178459800885444808385206335827333846455599353431652601688380114713044870183408993671658752809334294245783496608655039468350897299768911573748012712843030371340517577680155836934812489138713036020145215663182145454169604600258760655384243921807557256684733575397128245596654471307128730888911450188513637390854752321285468144789077177674195845453875566226156339110705235453700119768331278353186771990540177163381315778257315874966620097580728856957549723176464781718237513505890094100384100603108205635514756487149761936339096344832061633040057233137697739585873317449083657771671856365462155920680292431378740613920549430585832346744028027945045293164453579148626419096877722416339329471508298796089760452073830554171660712240956352294298814068904213353499707409645659632708286499201888913674653679603179450604507527242289858077649242151584945557907441480761567507217773108675258337574283060009441048056008365066302654301769594189346034290147948009608826948649143985730528271599250606096199237583282451904915389208426305816186667754223790848870232139979616343589925602660773264441570907848353916098190227138073913728610890901594492262885362402485783155411454601795685893479715361660889305351821619662970141782684921060427395928421163219217338315778687033757070995740972118373878224312739033405720160526824835209823537290083299484058111796598823716750260191096929661345603296488730537111869773898041266541619112081678568214542677731110822776165660735333499889584220489455440282051417058385375457791186104189108468571301040410489600015684754205461923444301170723987041471111150036946347385218167687710985684176011850412448409445847890393515640278408873664901678698749000058254711431838308370728491008427458153821581916990131299294963844201861015456810671451400516969355974259569595613805989347436790724400959094907435293385250458030512902493962949303877578311833753214789816065252426620590049529430290503814720702258503972332668964659732810344082862975247452263617204062317855690127990740102092083944804409796508540882410260667699947379421475135362538532699658970060001932120013330419147108534219713096760302801749024986386256766396123523745570072284961639513744973820191230928656663855395246435147489050373698428915998578705886120576537475390747593270667534196226482628876293024965340497899796440931418623743539165407008449219906278120580967470136239734643856949533272738441770173960299454141806445455707406294449443315661862170183913881192847747110201417724732781485634636071900537229299554120196256300159493440751182632255901695178478034802754427600894426458917557803029716924675389266059671650857506245439226211132566992575240494995314374168798014200125134586725274047408377589560706360610522844480629264184647358650114318196909761607908110222462024563590899005511424282684371698426698028264978606163096258808638374630012646619574073709223199846707930529846293214109505634071522261858280350721047984401312385962040903125972582873286386085101634373000729648995166384807424995400153281306721023002527004315562398577898225932742177267960471352561329094598058982299141174824838149619419574601654075649930773487647748704425168718047250620088264044049432988097205371793278702844565194018956065561510019144835813974972069721114201260920405634292481043484877509463316675254185530214034142348594396465899640449582093714512473815901352674467870665969053776440416063868538220398270711635586984272769151542646131600387320683368681000901823944614647213104834655940064315953531815583536369544744361698404425638599603968894412348514889353571329057805995211179159332508870319553614750266913843395479876396170556885051628268069928323320939832844586388063458159533839977717065009076359658093694647602749420932851432518694581961011546665816476422447315633640938617750376977442301612233024260793603134916349797463479712618717992728648956047138319858565752739533835486653629615604124636298507609370301763389564567399565381189374202123524368706367301398764937587572655637206222711069039183013675029170940944743463286129081447811786772842075365718092478172202624617644653564050115424529412644273225873490774511337304908171950642366645470163725606372768119476727317799837868370447050508701741594257691025671659809467782444844999987281032729278454651024215047178430886014657737559614316132868714280421564378566934721258330263805580784338579659791158785608749822239037507882681788466266572290634928587460390857100936824932184115712377575983539289463790374437586246486746712092979500400257812521735227141781299297879505101380521281847107533488899524057008072519315184486288974707007019063597266726461747699284813086069076295137868346363092329077101077746372675500195255251293407488252590756677601420031836883597331988894352879358402190720143294472729058830362394844347442908355309973363206360682538882356899250895341859822615412300655112535666969463416338057383248725751742764672729222838268136484506295186060814390546545762306818232794216655993773849371707214321555851530013333982929045923765520184823100337960730444212988556858862859473906181319387780497859764547022170568987208607627750378032046423058825847217348521465399627099853522933694314111146207012237680375810039983616815264160062445225269312493494834819140875217500661662580571726237518439957062101858235861055544195362304605755233386812850820002241281632131532977164758353664126040257075437068985491798095785561016290525918472012537544845167664275118931534240926110549224139829555520436163781608154081854274455283930650330048583505778052095956753819450593276948465844468861300984704686031241929379245014581679545589082162813592107418915398663369079590285988861296395253143480477297719659746658485257456866373265310315918461665151510973128281875774028935596897786587354397897137136192635604925262149312693568686995602919723583195482025648677025911377152555170923912723813029681748942002648390868962461051709967981048083797883575090392225167187807045322086095089503268936222495554637591020451750110942088375794035489158677768496512360665605914108606021919154922552426878374395622060531370163755998320941120925825693898738017905528122818747361505635909462969011917923336137693016866140484073422684033630586181856062458430842156499635831857881786036330365359874256342002591120758208096444387391725338748352501234868555436140492098556175330977637638524869043157919768684779340465925051428235822348800372051580372121089631241627863290573944803965220022641475888474005508995715220105420194856957675531339607266643227582543986445196985598962742813005943478510444126587821148560462330458331057168134296584657673307630705665136060429807099603694617103781319419274158619053876339911846424728439850253007450053751941913111271265864032984225389186748902168459126225645134715004845369551844889379854083661860543819845356589723151866016321949747306772598558352767136750536692069888049435833764829678593447735925947906407208698770441157422780844607943797802714970231494612625328322725069160715363942632985566873598657264530377727558506787045858052978580363226245889657848346431562865254561566817472631419309762708815879788869598719387379043341271932832659172529741627246188631196351804875760922396710849540906511990398925380056366992556313706047759234124242586624942934964094450102721922401152192957135511452873018967667105137973735333166156638383657030867317458653575364813779241216262600197307355700512593589497913926158641188775681404555316991525484660291359912415392644793214006730706117237861318054397793408251963085256745949002970654929620016572308852469518742578207873933844475753244549084334965353329164018867144750342166734316009949016194099146131442374431310385062676537859474637045351223418243830404634977869114365175716706045259883714397282680526967211416060823241558582478579750613257798470158986546495043422578097294453614140896583255488507924397612976495965605207385485336645652046650333120864750864752947313841325380706442828473502833728227704556110055934691137479849953695779461142240872426137971575273499999295920613609218031454030922940221220736837945057874040648336286755504868329328357857298554528710299354006875082920257930924218914232168230161020192850516107589171703605936508868604588554228538592445221808859714270830836208373745074305733912180699048937412998539722030541022619732081101909640609091628906026671426217202446646334871076562208690929890001482925011870569316374047147865536834889784095319709100079609550157368338255431483894230361554469395324897252733254125826007530364372433808039472136499322710341049765259916957982481873084164538560330111726466929986256307431988583362185690931919245558278420182244755089100710934953296895668153752923857461481090617655102013238334638892401237921025838446934533101654066622391982364268001983191878964303344909424633823914059838697339091256453612159058847457006486059602552452774458235132237067811705193334398608216760538491251408017583957475987939502517220774630086330572855636039703981617642041609363604978281932399222856300737258067783190756198791893666241494297948058550725801095129569707605677815892438224139054449627597546169918996858173727748502970039999990617624589496675869739797351070764976400493972407410691193994804544502553510115617366881225499843985976556872612361513795016870045109985799189369476986306693845191739999656450403575988660861361403647857918466351961850804684952671706811370454961037793384549676562080401370228526256792058391956344301250483778537963838677822273535398399753751272875121343676372283543454006876509746570004862831554250221356699743622211875382470991319740531091003326638395789837349293144811555848150054509551632460266385882688741777193568013359883142581260077417395743294151224514996960145522566323453666554448780777579752237575788426374930026466512127581692025033894298702650134105002630150557029565848402741930628768115265629782568907955194776428713667377510931342582913777030477797743933551542730017712957693182380302851122808063158398594793271080108223244883530607751503138770358005311798392250282271216279568697409214769529109947396143382255597141416275805765208410416847283825044333663550879536400990969384632377827417211428969183566673161126794316874770723388354815729505034947926312238162023838000821130165968468658046329884961638270007056769517510032338920610746275988876951689659083224520229715692909574978973266801643804404155655886781793581863480824444536408148448435184687590268083113772213855746546107050624693204577890678613785027035805015947720065524854411837554706836334973837448034219527452561811887586357511144052791082989189356829270490672153260838097739104789052337654035270393601845531820257346851861456506881362628180510250469795001975940822144459969533671379517978811932681452226446007929264306987058883203917942639637047845209909322047852276459928518419286849546646478659752771681237967555965288917332742416951710941620777900701958573941836431103561091504795345010017770882916346498758859685939880083900011425178504787831307866202015017657106077488105967090146803286389784564814611632856980945024689070509619015059249402245383587842660434675055531934009384972706646073201652656380707508950086108289125412466505989882811347618460822771601185783758521323096721658062659510254122172101345205684120759107915098639718734196846218788881014924719667742953309895864942373573158481099320127277858043549934526280701973058216811479103145927612976726591337937770898052356976587145922010359120997127173884579114003314784677832207920007444702549110988308344549966808427611569913651165968253669148263475861537581963438294456059633216803745448992388827839758512896528218843675122767422891499142229930429061106572353051622746034618465570100367828003015887076725172916078068496925985815044013843001719769651561438371262551900202390740601347685555987994258494335186758673542323195746683340459759634464974699775281891061614742031251575028429508467350141606553111717495003666999207372490181105185395500076297471815685564001012804937501566856357419889862239771305065257357353333033067689870877401134027562465952043615530106698327243540550139297653699024188866166288593438108659567721118880396414791307408334272752698666624630652355290367441612142031092932977553061708888530044346399266547668720406977143739565566709063419969705861121297264810289982161771107451626221602126657939595949745859485723478601101555756103436888691629819473865237753453350893680405401907191532341408285629230274461173495129491538865208085372733840283384600771482218648390845735705569702541623821707864813956593193338119438534384484854315719929950412278202283586721260493294909188200172513180396289461553968564860207000180782471073010151282921917095919167466464295671232309292529687323741446735514160528690272152220752576315235627757178345229843178566589546900017473494412669230694832674329322539152654818560969684952376191494806293945510315509530955282368429711226560466317628068953966647424415198552059493303315373571334039751502936418328287214029431275602505123884465257063859379139158714936693422731246975693182707519023578355338756751984224248440728936900655100214812499530589639835033676562372464858140023758133239347124745923514023493568210562214126614627464058378687167150758062371591655300916480038695231566175573869591550808855207629806188706201630641026854758038179059845247885071809417490041977481540575746817153483891307805305504494544293999161979114007756741361768992078595134976905531505859821344784255895366616643644220470967328354897586756487426670707736183795465063319803079007923889359653168607570247075892178730723235269034216093286716020174794532750049129918241261315449694469888954756767225970299826497913725220101077506484359961720141217790286053914306846802880118312065000583006097830879057786015487776673740109588647044233434075442748830787292003561309513202097715312346672967618485690479817321340581192460506050587020840673507384737224128686681033871823416787086178631904590492746279496941139404144076689902297777663077369485370880580624494145129817919937970099823315921523202669215694474412591452483499506143272735989900191910355249252630009916364966795031336965918882059349717255296894434278992149131854088809172735160271834532004783960838350841056252573218334017299453474189304734153792310792804567322847917552584116398337830272605684327597055989865486545868439622381428411669704898833165384604139032255662970111655635294592075103062968059035965627562205647876297377327062427043505361055384163202236927951494680248800260724193180467553877818292008721354171228003957998929456104808863069444644998160829183694925245277117760566178747441528671161905239133919506958157622334398735011972168147405372330364770851369239237430458046002906133189267745276486128585786888633002529974395085158050571107193528048006838040831537156290673155653401560485688771427885536039471501758309344667342823266248427454781521575637786520796836294627990282975097028850229625982378990473418295599812164908314962127469559307271316001683223432944286987398624447364396000701852557078273761551243908995426716818082811296992061240955793618878793443610592695880435580333923791614778232928526510947776984480175466675079923880528618689936064445132216664143501685735295664149857295382078953637983896013539116036979344014538975071579458755582676535228836936414495337006103318133429837497384294911302428373429695216312220017430546683236779932159982210050915460480308110637449872335870228246486617536321810193512289521654820686785829071762904807897673740627542900865494550222815892862386609006484003509993659364127256036834188837983101028483991822234187525603577761521740692002681688665658591153772042386078837642295593154922457523473178152118219830852381854128469713125809123496760291244892134320643731929455875643101531508694404649696656757271772040190198023483916275870618779503717517419188784637527457709659788720078256247863785042669674156650749103664224934766579366761010595428038116610580147234118915080734384225296497068582410167157093221991132900539894736890161160112627990925544692632865644419484448229225111599170045922216784142007133316554127653015974536715026617476810640270795040745044032174546640322063713998616975007488446426086430081770895386045356404468155553174044157885480011502525188329678360916053322445346904292908140158098318364939027693998621579919058018626929888244218802635424816026394869994164365239593351860466443863522675272618392146283260527232270966590663585723298376030391345418667878410269776278871012317480822711454128681845470434638880195626020104282715126409915417318923751518312281274664360816696827164282511160375968894337496435626925599282701481011289805720424960631594627815479792629363798850454167497364441921743859788739497525422292057353147239051431983062052236635807494563204133293390798349436412309842145990419947627007850462876014097139702614211591736178797434988337919209731558098912075362144164397433473747357263987757155106557316164577380947693972364663518684424791472238090126707125884075954667571523736385944901008598429728725103221895454308221661767197822763335290746222643250619101249608267381259611868018481504948727030823334545307664067172980346466945671391514100194543351564049911558491866896654728102255947773643630687031819573632392036965905833848311068849037669321861378689307281346708903033293761029119159608216613094590238051862217590441830218493471697464455942027197710553776536500920335891367114509498953842671383710392637126994360880244784011543897616030551742102052189801352221782688850511692255014678414473195116142935141550175161480338709418841794491764868493499815433302471147187502747299563644376719644033310019311835019917398508629884755437739669151139972330438680610680630822176121540723935610089698717504445411834704618946580308626991777205819438498638576898405791612201571243844619047216348932224792699448807854917275268356846771018522508743723866326276076373805284986594890172625911974153801972002057251553649813819217004495490420400266506057708766743584911177290747761097861996851457711668341946319779285449709572875102373976826176374208803171653215122808072305222702584258280864826458264881735875640600365862311499537428510169645904588252991890443219554759280305240763574355323179807002335989401291950016106955198149781774901909578326168625684195265173669985410488296573001147572163039449603307152203003888900285733220043844878731459569995496180747744576761148382839652223578450506883623327265331990477888657906932698678863464177803901264417230373117389407237209095498482325133459718352635848209929542259095592803847777911820516810647562795587296073220907146518591032346753811924417820694436021566447118709727705746592896111110942483843194290304401746867192889776370070634168859107984554579631044807992217012816386194499540724446180682541499975583458769007984349525390439206323585747066123347898580970905961630243689547281005824673690787088406860630603243779169612646025045246696717464206423677902597694111467313491962879855899099361547627437396856131142732699046329776531875168907249131306928979914364601239622682899635214026833837321387608896163566013776441914174329353087764305657659943548853106032768617179302658090162391099309262554520952661900302239149625582888408313816577476184749491617117766229534851830582900325031654501813218233423568695644906857399195201468288510646153285647143759881893108912044420655490515374415844930189248172082519525986929303462733451642995259389944012933212870611599640505122716517954247097488673766965631658388889775983952958227855661556059940547652965129092452278362593770642678045856108655636713582964378748867282052993037650953198927319798101150093186416779045077209098780755659972729003653737732003515381437677801951075389575741795589586070483599984105875717127513160739708197528887087656437530900240205435825304139824395050788450814892406035268608401373969985837147620157860253427188674280344231001962298594558855691116585187684185309298666349603758995320938688049069482709330301910599558187215654966029608192373905516011842747537834437748687170611068863794040135180009925026809838353065313535635838866847834272632814114684410927127835268077513916353034179152342566801130930150809540347915430670038423771741243144092206648741844481217919316253281920409609393991191231703796233995603022602163039299208409460162378107682452307176184990608863942008831049392030307979580665122826471435658677789336911044151715108366523789735010895044362019036196355149304059715445486520440468570965551174781362852994023275584480622192581608671317853407173894281231982378492086534370243192934321518114170336768671632673444821521543732442701595865491322681198155515162325654187644243254468276860695498613814012407575268865792827935966080486445629992903367034610567145036825816447791670278811496264235300573619099780299507729211856316998787083732256327267947800207041099604392809286220282658262380888326496170187935457017605990803248861597598292628845007033051424014134623658296411281475771099811501104764517922933233901073748231227909407263075178756759932330771013325757417582527935312634948478437823907103756091337413515159957558516976428375698015150269927479478023635580262078965445137910812689206686222804336091462778727912650497417975006877555132791322006186317202722716627548310685554381326908185460350998391774788751580041860788014564615763099117927641377467479815504094433872520854512436870625559095700474174106090450590701399803300378036243132644962190623837186155728788392567379351873335684848880977895719865607423040987131333723434638701384019191393139909994916001904876913985627464036160608615003775051332359263382719387718858342231976159980068225913619895017153084367153885892225758888163323261083021404337203319443263816959054753719363435998598870321876427744020767826790013008012475511285920007120613591279348835361353760448056368882751188005407703082895690969259000315901478972369960818182680833028479336280215337669627219271819606681633095809518619487049119465571776157195485204414435965067851767169463690572098453946431075729830026327980423801727232924579390700334290577474002119392436883439144474566354878030195237483005298038840698327568876909318476139528082277534266335063119971400012549319497889818330783564955127172517531813586408411150863655141605396697243221828350225263922342423810550010823968137049433988333768904635730689897309981747170114621259924624576832271593052955219653878144897103750066407068647447299009882835951583231224171130523400699878874227615163898661781882261799309850425053102607976884310655173488619228955054038587808509603907830088905039129909142023066982215923728897410697312437129446067115700788185473509025288936391914956805987499611325822462636146646991833201139705369015907087122658248177349226680585056831848044273891742684406156303034521814207575706659589869601599838709674899005260391069717543336164702060319672218905865656689099822263424614422868618342202540399111300542060160450570402640164857389274901166892866576836159491846079888330025411789472780373123292066259672582034960550009455303976873602981624306072701133691042977696956726733781629483568391112053813233788687162426945908980849390176507693718667419920956937264988666189414981790105485524519666949725572471224999424048323067992283047631368827830072967342790692731838613742817115520375060099332465982999941851123257177137252223853915572745393293890603531241788798720331066841067698773334485962032828637831764325878562876729756930372996680985525233986558625256208193892291747624960871985794205201688917598262665718920112939432671950492647384434312299658427879630881299236252933188665196716218478756054787119136258671836838731744750698586018330794663703821307212120645385809106122537995979483298489216500835280190752379786160132004163445490351583671349718558586204492224935604963917571334690034204835218538428542545846811014557382019848157262858725512721449704459953741789063963271911704882658817665721833402243304754968224528697883868515503673397847134567940640006971177180607080280030490932591856029193967944966852100336354762986057797850500051272575899628783594560577443739732087626232760768089934962664518359246366713299586480007383562529806027516364825170829563082056065023728841098497896329517383566867726775676992142262743610543879923787987642469912221360588001488394769579001704055556038579106583757693545010385215634703008178429820247585341869868066619017775095466012049911423333931890602679347505737319233235784909695575086878347769418464499334970996889127408856049671634766426236170792782335558919769110896680685656638316652036428368427652425060620331149715530121163890280367926506483586461343389999368804078225194783305812920004622350967524143890936188391471613459497604707064420682177986679603021887929784442664333167243113469705118999292778955210969978480251252389504411561096675511919654730773366976308548726403258655951270593141410547925044598394407398956663318199328815265163181006198607431249191033747670184811389355104664416731209995400067166333988605314693335280788350584458747968474671973864788595148700251525671026108304712649237661175850761243951653911672233178422122571963415655541495853538310432016461546256330273293755176027297228837978018401618946286815957250217714783519997849543748797547477803748088956850664797687909540086717819956788061345008977710289096826007170380393979519193725885163308783912005489665269318852061114630321693050370941774781509188345092006790640606578093527183580493224163211875872914822346235299784578598486502932038498425108050619709517076176560742819532263487289220285796023602037802957806787660471750375674064799174675510060905574550372775631702313180879558172899619979211430006839398389641809013585842859999670659258656905510839917169338900493899934305815785216093204953921298885856357138266897360342822745979700798327894899287772940044246108251715114034236634413248835801751641702116944727335821953007582672208363531280719793216730780756096238473785363669385343471697356782176347821310740400217644006767703746795418564624819785170695526215781375077517144767078489753381491184716058015602797780812439257234243441900607910061349133712274182152549485420805079722657842314568065592968638657278703125122190154264745221647160053729260741573531235058709057443699168361641924062338506631572749867048063801287586354880062759185242732228428420493000257772035664416317712051105431150370070647587551156709116078004211032964132407802362814991485898088496235959377508825026421333930766387524556231472002730460096647581489897672585565817775344455516787964371413439714816650555286062597305132756252543072937240395245318953404705816160921381384359796531113841276608395648098894395570608914790642852154940051504098988474320014560920611321917855570810393478919037972050516717856528291903599384739773862528580629344875537767166324021912307123785196822970537159970748443840713797647880703574217692079402988078767421106812284815416657001957545242872034710891930976245603631095188930221322183586096283156208207414209853944910941056436777209662371451128601274130543382108578157975455622424965528535410334228751008798183877664784493612648225785501577272279588380483301172935799600439431776827404854095850649953313359067088926415307947560533368925729979677452892783553610982658436101199413397422133709579382910536450300815654455705580492260861765433643383391808603272825582186481108292533564107237374294343150156626857247146075266388539278514350404211624635507844455378359170616023341162691695851745568393764903324033205079149677923043392281308070187912507000723674923104188825364100910155757947363246288089630341144235115026668676435312831870219308039869068728592966169195232838497535941754236139057279364837452442288245425863299725391712181286607501049710687764193186215214820848357124261760330720589800958894144278105247432990618646133822143390010491950427118846542430116262196436331122988788134708372193398123300971259308483859307221571478066688526561421337562853007740286037468657935759018456970142669004007727340942218127017054432566555720367801574634180247860459868703664288981771483674396301119384522191661900005216653298722937273857460117712999212383241789165684866343969336008373626088132794849507563009728121752743072932990022662851077092837587204237348575548706124762224862351392378956139837154789579013384403766527026773438551169808564199386713665571769878660148569528918133586659194092012587746929695478349358387717116794194108049970216633982825972569006712025959490871108046367937708515039015116114854267452035385363623856824235711597669774845217175890626340164459399167227186314427674678709192019489077225596497013158499491264850791904060083829094109904198404406973467443398254014100564426811246275010321207224100153147869413384746698369528404394454070134467106927871778285212784815765821071628318708394246089756563258271595124721164655508574895339633286862145893362283227972474151081050893954544097851231507677481460255645180195587204235501629080385693349565881735533485268118193839139823196609171790168582397468109313800235978971420100013871575732491310272453371589025034488489892742051755914565317815721400311222056014401955122335468175720295468957868141951431925270004059075883631198208605522779739669316879390796791390939304868017263507425440907059497604422196471191384858546908115629732361062209918612282727176893811856645400826621108478627832821607284550251868835065588500426187676128078998269764226686737169817757209289590482372803532834197445406723041918137187797020466581120265479326597939886026828589702417467246085085844952553715893016839424683051421245789729621070058977894068238563712941769089394346453907537506687334180622877436297785661188531290127809376264092759919915234340984182462244618631957595771011953232747041710931726284834899585019783098351251316755873332620236015447273327433032943939967834909033054385822816932194211504182570625484917024896108371778917497908346896276837681546413462799213121471927168184032743005715154312722242638599062064218477335447806109852656686432196117989342641520424923591118629275312166581800153184119673063318024889840503431780131911139239081121551875237204867974274650108469576458139476367661590784725839101891558149249586291340621734244837191331537933588789939632555413324537869396342002609563587790732128525172363169214674812737351904499274351871695937862183076118922454059505196811423413887974661580882727618387898185129611600153466723528603634149538834436761492826685797233921478746136088407082687758030203799962521668164981392655309591587843884411177177151804583356250312226184395173307619879209551162254709333692911674524257677674159578284906296931696380830043494449041968379020803527790690824903521415603510784631758236869463089611499983832233987162201429756200063763513729019907913321120430148633550538849141570390300673725431824057005978536039407958127051385173473934433325736227068834881394441854843250299897765906585868442951074143485512889130692956003545344938109302640287725943549871323717770014830001555240034384788388755823888685408373926709522597204312788542851754454863339965075702695410177978611708831815264193575788355762668534444870842299180113663803042832731341245667907089733682166659417045669277176889139076610850750586771194680407133886605252572537222322530923072782370606065502214033429618759112262751560821909498219692272796314190049965627979684387104293758290282553510721516297520489889592338840352880752937067156274658083584464917546754377381880661046869847247495619394898773261271946396578653382617071451704758277364476150693967655644241947890574969962756183477902580887732453004835342424042314725444466062189729460744312862899739714344724629413981974649376818817983820697757556518411916733689520539236324734024915062417372148519513927022884573530102796158434930995347626157953707379472813878095243804882565457845167877170904938460972218812222598400522995107651516168460253888700927693627817930898149391389606341182794418647272239149291215960278919755839978075565514465551803787698573330373463854625833961875558637972822651337390185903685991468776850211499034890617065111409229951109584327343239903493298070105483806602401899897668629657487687261158167698072245009142080407993417535061266099241781721762602860216606377099049962415217163724691944771088811564567221556286980951770397743476393705861423681224228091857303668441861184307893092214331631276996193200063773792146348530469522676351435978665048600010695579841837957977236204220038981932180780186420365160045355481004586273837979588955259806302786623412098331942549223899489548115079173081298914021305712761473539168835782246189847636250092436302964611067095122446560730704025595712732678134331568424780913682134022610172484371948027388380128911747807838586070273291697362711841264804890492231067367138524219527337903161606983129130584322003021473211328173823473025849422575243015729089628800140678316854574092040424819875209492124038162052127244066869620269115077127278674702606621618565161132605505759824356513524243559740392888729857309207159482865046525148105003008463513370372017466696110447639352038115971162495118587500586720206639843722481477991016645526444336173500595125274119331448485722044224990713775369838573307597341751458768780708657254562123738793876148139772298225531041328569523989431439246438936047864437287254949452715924786045885300461613403532217116915901281633319213010726301543473155331211560404362906752625133910159387075705426277507368527315662151893726746732698097229827621660227909054525093132211941563429224390898936726524347134010549708377101497458582211690565385550177314530171662615299749239265119703542795441685761193785581727915365354699691356402853133073286535932758731450637803810817352703597393411464410433726818894301838734962869240851156482654961643315825839175684409990728821681007686931029336483856058095490227801156250922485878229423285499935377176144561406659635523062206451511576529566573374337840565638738116214729055520772911097623089108825453586388467875940461907643604281369979102375073683900006570363077608659708140421155009004748015444371652417275957246112210526169895095199189721630809439241600193456372893434414431711821806529159494146396924984286897662067971792978005051052657065550477605310352838195387451603630290269945355735846686894043246826044235308420911570482602589195798003563097629892453602812150574562180374952794763259284188798676002940059986385140969038131948570259955110783979314077919125072760856160686569905669805193182736732589702653795162151663708233686785336858830163512191427887788328064118783652140255032624254724099281238177029504592146861397727040631005796958938657103534258504368507540247374428387229558589076626747910367448547003497346045279281608889967830554959668104387528056495012257066761287884462325593403228048349575124369550043532563008138657802011871473359677326091703561881981643229459748225959398928105719596193160542443897036172916397421305010884851142565385011643707535077779942887656146914270432726965174747286349486273040686208647005712265702434614309631471263260538821291066731908541744402592663694067340793093223699726187835798190515315261253521259717652480883436122695199285277835361540037701654603895940145123981388903750708139013594133090109373548978226309353430945469629696798283098595815578066845818141197414938017127131400282996517075325073740638952798983996960946470028204623864593417237125940583719984902863185683098023070109226721330732222595661383131042239164722320099971374037568835426788061710947380808653564106846309684887508199359931507433900178200169527470160510839577909707599427113642474442645519976386849637092753350733213512942613974188147990025508977018250362898955812668758610874243059083231869396668781096649332693362381843678517816341130337662890111721464261197057216958419967973540229633151707416139157780252199388661275343087474006101464599003471014103592226284541118884403033123463380350428227083932319452486137456370887268432857691776847262369413291473487788772966704264239929784711108261184359356624290410445036041675627696207701377712115764889940753363262156791134601532442822941999790147284358478980810808341013515133553632588496447323039293507074854353321317994036620039620358718008400109148844857433734791550206512916857684916746810742115940346915566744911454985194774635514426295690190676986986827531152412642758439344075651039437665381730629860182846067951418069751996657763867198417333814120564056590892659686029601150167334515575893134521446842163123434225293540409786792233613845575616029681349733595313721106333797996136608873851764409324863742348985642196393571284126198771770458676182969400148513639914015001295954944519708123201196297272686481124355916883337904966615186356502732775742664637696357951808384693398712925586981269670177006176703361235647341660015563900105067619699614455232762982556613703623686393129747776825836086494021759180040119497455678068981300624279772742428425782282007947163367880351703562085959378295231916804081316454585648832806653965165673851816608534869658640368199543786287435099974547097663224742956014927825906140580925244050142281454016009632181678309302692219559452050344428849156627512029472455922634245797578137207759776571776876542829329140397162149487809795763916498712110694549074585297200107950596079264696802682099548013332425129961455302359104206168856495484452477956527983798243185602902170566317475971350360279505279304692232660736629385853550949920384001465350912402934106761587170505713260465333291342972841029217475328224891787353416711583849099448438966988669853489413681111136490624908673445190139626011321417994069083540143109986958266178992355718509638778763116893857536931281516051855000975684098710477330542102837645264004550501587136617680697223978634850789105599086017435830179157416652646011448473782482662742350063231754303312534669939868942704356122624238785012505607938351023387434789742596669427194265512447607713148517772284319023971370966409025460468005320257143038468367955057684281545482096335388864374449142426208694700271738752886344816460668915624879264886763375747733493198863387635585476327573113621224557818052483998002135013205024806522830076381251660792661025668828700957477120868569215963881351222608012961503751729897869569157166160789380607739755049917076702237169812361868767796710168194976772490122393577842104765583808187875293400582912410857019471754147137995433593609500601926393061873900398285495356404065906875003271710544093514843073066773199998530136554566521535983699863055719992151511051358552254140128019575056561882324528681888784663933236782568641579199805117596679604100956562854694861786219409855264616931224877070721341105287998759719271855550599857717363838562757809872410404177477432151582368183703742622438520949965974361826810373407758144074465192282904220017004380521532491888664109674099957489835426882330633864789588845192844686995794667923897911244792246159375436390660198960443966422911956761228378949983959631258957093017372843163179360814915636960992288828763123020828389475549609106549344791324069325438613343994604843751394947958678183461560731955107844539579642303004316818615672588939730295994185580202758341497748767804490607979552358004598920833425078276017811887565712787012032707503611588475193672937654954480242260546230511988534468686265698301030645428158294806734437085746325189339820445778293211667117816230771540794800094225959169494409573695874422132810619536991775744507764964994245491999588034137589855418533578650867900214684199768846068614942923403483445236904282437154897079301399738636076960034400242235825957603092756347412795009252017536335026360065706783503384023519287580317190176297522815017019536969149708023968196930383897968616455769192083065380224853948132246328568099419837362250705753372219452858542284055588202625621488461018676293164689063662822303248386789845386700335117728804049070723954016743146358810377324093974428730851526437050369795572134348218924567015745859778178474749068481870388639307223597355942886322948684178883116797699360210692544817202322039360802276508586109086049907389945200042152282793080823456732537155302567668800068314414477161717964668526929215983173213718533521034887711560414815231788183447123304794785444467544235104214957105772300720393564045585791063624019308123090989014955502463549983640656991690087174937374455239265200798951140382438569664138846763350630235124503146662715445556649455265014223882861478442273105751469154327801536040549636869217990024640568803261698609125239117867803743076767904282030892450334472663209206944356209806397465210443404236513970052545111774242665928336949816740459909882970460536980555869857863761315221310550389575365838979673205679608322766931840297262624248156736315112971905925760396365298981366893782640787640102027130091159520166339711253507135986361248996329148410185818192759049802558823711958200719286486213905726749779248974954358296975029441878555171497751567462840850759143952905588169562984580328569675991505622138102076068259938430819047949888643591456765628086607199171708626602083014143637387504704685960190876391869719847349577079601657765725879410291225429579532918558784173245642306821215564229000503080171799412224854907861376461320192798269924185265792271362881138908037617673958154240017996378392769609776167937149411429345382796322559569428130818417481800801194359836065400756226702449353467439965600679613168391564525444817260548586119279749077473207569681222053083904169785505964018414249794325554732815643691290645799709790074555730044232543068403305780140222272460394157592097428506200513668634376355286195699752647803213399945343878589292378440736559145634290459682094055496619479409108947949749172682359664514904161475909915081158308952126108059884974644753355067288648343352651373285162084349313941036328154910376150420905000545049941370270613424416913586768760459198415290581329709267503126738949275946784829374448374231752915340893910546931687331932804065406514358549337907797063132512734006530535967892836084414725471761772570190018589096911866426446559081388606443937728320153009434494499096214720050698810913634375648081769055218456766271459792029935771946316645702756676257074091885128810937335666893339158025965211755772289292405496506689834113888815084414975602807102796868221209735421928491120792133997322790679859514396815853710400807721845008051196442273930674261562293794293792232847646682753581150621417952434747015271414657820253673943186399117003512523717688080236618908545371154642092215878980314475127577360352740854830704120437092924756865283959787509229819820234645289421722182180849736374975893085053153109989100382242624616571329790281551652248933341751064735808844426051356851512953316020483832865026849038715089954326943757287286706238909942320383697461964523154068786378883336037812796776935991750712513627966081109649879257277449241903797284562357674909235434416515680053719737113730659172010103966398721928710486884964875759724597716855369686282162178853914081584741294426622391083558949699705584263066228143831115656470453743883093652125787527887138135866253363902029611434152107221328395579488618652775549768221839170301663396367730510634681066074738949851922842566805244114561013234117798218857931613941739051898988900213821972803703953392426812381148319138438720266539595501422506812700431975799134856196979816253675478338587243471025040484877981978186922350025316924592053415711481720121828497661776149969842375538721411352907004136953880320488463168376125440980545438580948085451017622365257593149796873014741115199522648904631937805132332660336115977912904873311916395529341682970550778625191562518337854379134721192026822635728255559936223747999334523981926819543549939406917846115255777700417507000288646549421265366431297821042279239356895298230955265975001132026970078768009346106128788708087408275354261775505584996742288848018778417550034659668730212466001735646093436653369788191632174298598621797853096337400238240871770615392586968500577026782672520858709697643579951796108554187742720368783232488532064359484172425187969657213779518235472643250477690361834976165993192397044489959696461699734098687087622610090167589209715790562473350927405879002958682992865586970572388556346600957237029889681491025929497213886472306453188824107865602301402910738519872774260290945730884022880807965820765469750623606294848902019709958306481949560217453083589917173058870335728195339057788049898431822931671777412841833264374711640316633257245186330832400848636333281722688939790700668468595549966059918718725756174170395551838915372207462831520290391055390609446947602657883186266672280967964293802271451028167341978118064589332172445095684639536950386927605860856620326871278565367055425095704635768828432973997945901979308412225587686668505805355856347960405133744874000794758092195495571248013594527266170074473581257870726217399771748208586070816760143485618137445422512639929509983093169576490892628773875305512581297105864637606681747473863342880551226244435421961103696461872602749760680181220510851215877324457343218882020958612968642379527436681786985048404246900595845567193208732156861374467886673097678026509187655258980109888868975853775781019759063262369297040078161226606328267325790918133838741895417226184864060142197096963829846523728960967009655802148062757489655539014645007098796867157579311185696995830280620845428195646736386444542862754466511065385564411063413789772822309788264695284672331769489598705064708450714342529233668484944235566066730514980740243685596861986640492535313274111658735351753517628201243136560886218002222287967858236532190062564746851453492851057140275427461485569623940935628387859616854473159255859296579886345191234615334202626011001477426898021751570586561626789726566300143061192331671304998660371766655363078365533889485489627481293843053208172929076833675972515262934319275432141824104060246295993870353688445732195749627349946754479870799993842693645784174855384713494763674972263675052260922864753756756095616599384779662824691860913975271323006275004850172890484549700775287248798638275072419369913390817853094578600895679156764027827092667667241253989975978179492233370028282362421235502935196081016711978386707884623693591365829723703076567763314452088841381293339056993450513493958527591214551120714516661765488984951745137703559744349534123972681481367580484622223697088579034797493704132965120698427018438885770796009389274005318360317314944788219348899825215400866919051650427675744417857159829351480268610019979092266209676952503138620886977196487657497514256827214929744656915702584594294273406784604265290344245555194136327645393500731827384456697284498269677618911743779586459767441142884468810612051358240912043587610305343365551941457809312690573841232749922663624220876644594892328355169227740386607778293774978897473458062773260328536044874256016902902173021309332592311455341798265820372496939216859380680244314267437897199685483746226018042829823291798929522609087971847096539678881445243786228045727671263469676008384066553134078091875489320492167490439220522419736435367262901710552928336462174906535261364912612857691468141070492893560197567103506295747948969817603290301733544909075080963989471267280848006128281369975245308626091001961423606693334786352079664075665788804438635328962448827915868279389241625501531408978599374264274334541250627205747114721528057698058341097224394941004137298087344990648091570707648951000511515463093222943668933340572196894582488559610452763514887314378800092922612886511116067872064381554076221678531267791197398003971557952819064162505342757293284753925336451776116790587470470356570164533018126261401121670785000354007393837103852601146202012645681280170741396313141742192916792982929097800339969593305905739310160979238859717163002251265461726544531797629500461027660879450871476832635570378810639426231767497485631717860854495051417601405506677991651028841396366941839419474515073342195437623009052294811095671651079053564479208766534956445187577274140709248987336737169687995374768029986523092954059135118010577558237134761174908702288106360929357220588129533475508882545653604657414725279431111492002332590616407779803610192969436170171365566335505266530042508350599097201889171164357986997537451154928921250835487903762861664978038111049376907427590027186173567791727321389002770222516681714440478129376871182547856464768353935887565249127528337353696172602273800122223733771650402795120999196626784238646221485004232260114242315704309074464113510897038691120983916146904030645518946043879361617579872260979832724261000540060395743428697208761968565981864969481398468533407484022246298319662337646326156425677626350343579631091324064480219274845010879417334166602057484157075216075279043468060248882510977531835680821547399561163302057477367859266073063514597389192429835246796096100748619697955257288862085050788690872269775972953762582422555349576304557948818740016245087452487642990637952603085327302801472402930317491484247876074810458536142864688052460324909549441028992524667360760401702552681211982160073087028546119346630733990237636180626038949524490918657400240683000702819612459696683626291719598505588600023965755894020931047996890095980869236266300328964103439334677375016645795695300458762892057078954631561057686001455988683763165392437268867388959487515972643282670923540477985337532178700378620616827019325813812640466130623967468592196382370427425606788665146665083354497387978525309338683068724240598438848529931173417182979549387793928994434658069821180749026547398769526587082080644120371890771128353023683971111629036082272862764125501289901475788487623273288182297788307729581417575386408002511985000149668924888356094578098697266609302805397636926756612519862361409289740538614203982819353180027086522085722755504530692538948184608182888599417404386250395354870732338441525354889186456677826873301244778633330231748673088019471788107493849457332793079545730360686207296585094541617278323858938442666791475891292012850395042260384148155754264763150855716547409044414772975743553386225000279444934471322175318817844122975195474133643457936617075283601299662083537016015126380290384460911005992951788223664035677755104449880893674406712695864088757133708353039513818085777340575024212648764388889213432530126028510518460671918351411808176487327342512781231094214461447323919293288025938488619235154485939957129721992004844560979001106710762453819720908613094439622506308033157498009988079922423409563341602834021427316222682674212692568838464243195963791470197145552934767618694294759346147833195558785820000063798287902156968050008661482152269543470270349606585532968041757254004548634126597587963409361436583458869694204332496957520089598844548942661585959993768575875879866394567437764437744248390468609808540642856142085264399966894595757402243755620854134445139451959334866715921694071886052347422820757862198300092614407124075874323833212301638502033706402463121122701338901097678660965771531849394358731152733211617137934510752523604396736775837840783963548099973728317790368994102271582766977227249169435555510590173347123615627004203535643829849195634954617273661311290873885477149749990885789685272123592998986092477042168813244234464214454157815895703929248257616267506561207732331943499884930930783665358525686448374585713060978516806602646013504375100743897663433222717969636394082905295093625487871292509749562089368975422412562538015041168904558390668228288958770422600525623009055140261489647217185533551977831372739793872611097118826784610686373325680189915181802982362022158316280016573717446210480732334867235715408935747383882214045665608152247204334735537046082415487003810987631677908874364649124543485548715486779681141962759354695051957968426698062182536859031132155775692693018355105968096447735592266820166583440616083826052835860095847720878508280390044683612586324818499482694667032597547755957632138525999572887697293289088357448610083974097278984827169433325244358053710785847067734631141285472172676959527221390973727979124288021128684106451786770050656464837827175304289322421697005999151926983305679742956091207512559302608915777000973261592942929529403313739918729715119822464480982482249737315552385953875851187054127194153986816202453236365522026496754023860764586535740865250938127810980485647838106744482388157134758692040803370604635326594759156516644116062839667416630697663101703605033503576250140827477256104509625869711699036705883852833961020626758303066332539392093661246290785927420426856577063922798221843938101217054419308071107943456913976780790777354559760859211640274341456140364131390891743196918713744656055492490122350884317762144994437573972646542257025026235956610197200173791930904539830238399023650856113344739531824835080089877608002290482805891026234391007602096358674435606157243495661282315814245340438592390696635880218960247247598734141341327800559224042567244341903379848072603400256809293140698851087745435046737058232338665197678784662570366069876161651162745102785556362012663087713524908583231045399093952386972857248513485477462978491431732951597624029235583106765338866288113880082687351689424435221250044190886572915372479737689691216299657033875819570308404080006291407474522125674966557888747596815382517643480475807366426475962789144850107724721429130223256537026317419134184935594022057070061062322005655641230445336140325350115559638120446806979998396249066005320192530677035865181017819124696174949757430485023877746968588659652745168799684505685676445358674047736130252916176466781152598913631956231637480538414701696659091411377195563307009719232203608305193642901045186829007898421996357965851928719984903939171396075128316925624382319242323224682902965831733685180634900388442737850858182433757968344899501459742608372041797981017982974773991398997093912173751908801504161742928934165489440867902620851926450753757258647500106438060457673217147271887449289987960869113974465218608880818489856056685183735054649681432302718777622866421986631622146983468093150017668042699212410912619430281357817007371032369007250319387301321421359924482882991296986377958116541174845257794218750331358606620567112767481020871959794734162975174613755223142307520165101428199124509744679525021788187682867314791962649106669301577534516221964389714947127219737726305041341630054804365206231148330523590620425070531669822817883959310528115456683857228816046643286229787930288520412545299022735996814751253393471392278881797005337302320413611791325853072929297626084678930625726325735842017731203290274184732101985265094934180116084962665963992990281877985786011810890857843896640509330292192389460866776150421009121245399804044374959718683451827790729936519918536801586211879896599565172922792774232567675953011248516690281090439391731817074169363221999131808823837523685690541994158328949681576253085685471841900691848084948740724215642522297089609313084919016562892328269648433734346240826228335062124527334273496594204442051085693011968480180851947635943280027828946144749283256664550544760717891195922281965056469167616979190109372298844796337842212606426565663547167186987374694848870691236578845592682495512083401901555696624037596118106654122855682739519206724257793880939503856648010541438543900553577346269016320292363809910765786429329755044623417756962516188721800160162764811425680653617451037441202899154464049545058070071097460254244661118084127270397940338889358098429603151659597958611494285268492088547960083112401403542641075392559357263097247077843992842996317502268069487385932522849526980879673024385221000630184395564037562468980099431934147915853455826817373264653529434294870584477974844869282740726978138248525448757877207512917342793595970819900036805637571403353412639952568270613444075027285999390981749568541177368223671194557662233031939347791062832032257924851592928530120386395831146030592226959761644551661164589347850977891480852299974872135837549075514969736050662878359812586662883528999120983222783112125528957976550728030825712653717244291173344438116098425469588780969011431201895066384515241895610378258711542960701070256365349062313600589319515820715056121250617702461064039623365059603511832398756729481419562128745365701622235687524193788046017951645460965112369522288174602511609711019332718353472984649954295844770448996989655574719712828288864372012057392244383570415526573391191338319931869795231989537625571449006630917383155286735964212256326828986813955324250877784118151477605833270338128792067365539491247532334521591765328801298605618041448247752472559120300157149619692483644215874754320735893763642951796408864169823204056794931728401380732650991857648937744943888453675499349441954501270277459198111764560736898300365288357698011682566777942193544507071913483938371476285945454500860564526526532228182838917022535253511774852499516692906989665114842121442092554667983078069673691495580584847010263832307515950287353984424438398982051423347709687343919374342502609410698414899724860231121509308229554028246453428721200579402198853627775542012816062217061545424134256171986245845579071211600679545877467632594668790342894267457990636103062254515739672776449669597395482796741432726666378731747245814046632991985835907774121100384185157363006063738484920698936911994615100122537552701588847032252669334963742796433429965933609334998645810924834696745577263503540794930452352438265336130101118284257924086828814504632688758507555115561329115853542804479714631815084501719940584694702993794343159337789388179847460179798387534547081611459468014850464944320866616398512948654640904416889713328254442240546056429479328320453116668698222112904972632325862251159687820743538970310501708092443975858752540424786765425369969857514657532811999291990196673321740319217263988511183453105483513381927318633452785077502256157183566239272862492419690999784367477950420046755418356474861820382915056695220464889854575484642246657741289990646975049830490186624868885212369737756286518668750189598486978138613726326440740682289314266440004153633754654842021656999159600095294337693237522333531991561550931955824387187641571155047872709128504486837355902685931986993394393945437122159006881737389853479994431398816996100994692830676527957489747439984004093584591543465687913537776385772028322673194723143482538851492493777528111622833039637810244556150243494900725869512452771895129238878868143855412867770592093684242163550539237190741546832799219753800590648780555026046190475004865699251453674778598574341367305775525131800241156326764873890792976481526187591940579164913654278879164179417858477083279675864561571796377854642695580709667402513883244578788101138205113216080892836151230844782175532098740722235670927300117202463172191108990980737670359375632627485693665267535765921496601161343765273384109848017082002239731955273333247511757111382742796631132066240893973568423305029719431702628929553522349504540136320250897497456625295219230805356648796322289116800855286042958598575708263784502763527753135982873844684790284686981318551636901060483332333454105772263651059300828332835026729385691109900073967172930075492939581452776802138314985378033573564447070090405570333820328506748676627188768198061249201979906847784564642900290261156811189669884620701560302969767940370592094686525003134340061525824956131994280302536971539510601436931989751002289786813323383268425550199573061207079488985092793570088104570267257299500689251938167483619556192146968233410923564292307144261817487614917153503293578880777462047595401232309203267240640893419943164782874660984548326608905375883168314812409804861017998956500339924098756176211332785417156752190919285652945256311559979474775001259168575341674044651445934691978682031573742883153939058149788724507457650496529600570342342111215822981220672362991404449762194867324059839420333023050706151500588054126687649103003694115506991093470389670131066217724748884944656881800527110136113680231138767766078483512679203594310861789320196610760110569355269073949718896697490253062656291229070892205236247116140921452388551484591974970551055256234745855789949571323074676484127932785597931586984719449295182520138973914495057922859891082490272524102301610394671223342909728097163356388593468409100744438320894604762649429279348194519495296380526405334076476543152626418064926793636442775935046159461959419511163087116366588646335532229955733641635231605306015416331963768599041570367241978936510947719312718011429302925553311795964501503490164716756534853219323624960079418797988987162821527593063625296689404401992926047506919272574877264861648041131281081991750931179836513859700563286690035768701769882466488407818041101783343920945113485855529336998044127935744483095166981388795165513258197042878959605970871510165454983210481243814955317350462821781229045037728553964638713899186161274325598559747835897233637307670758431175387378900965629891913420814602220923593093406076577436876938551981116949230994160349202884699456061925832074442138767293031460989061207012243916222699760969707733003452916080476715978020202583535475598322185909692576345020626090241652127684383130363313910320147022431401055532992906763667661536114102774520300962248262297283122232192580438433901326493426516380997860397388355533106509635524323551369195552846177455844507735296980440768195151428609354268687889281548084829408899168853043688829041445201659733844351221904013676218976542008985096721601876801688641255770632382001133928985292577985486725469317335467362962479201241887743894924729721963762270398040105970778735442535641288971111779277646504305183008939539019286612095655241419940744628302312048775071008035142079582400934262949528071622501309204862607086249497059143124002635243650783647865018462856243419877741007301707714826617650756491622501707716809694202764709664046455319190238540559462772561126148753438174047921768802631091237246443333701998040628687528261728481856949468703452008853816936668104613483118463478588733923448390427523708053248724895306810432268365591534154736418692990719422110738184273458373687696393304032566632953969219975376854490569701268406964866298317013189771635845285954306502454099101370932038371277831886004269782993164319035369894307316113651315814981050656227125433869740447392413311343933773286773173439487177546594939006284545301614971845430400273823955527254232318774732431650022142846027615826827834509453523182859648547874836606551447203305604875373719484782168909569627131395339817532973018930252672593146608653287249508056347266476147198744698561128168152466698944118773748581551515997168754484577107164774147043648931711062661203658475574826635349254491322292376449817970599281334535299006295400218856787714537114636495550039289572796930370812415363452765494336369593100998548712087625717297934954620050543864482929439799670071719589990196523502742345368441125641284338573539142909716891991402457841042253669869204154616576606254834169567854039575906037857911525057230554586399012300517754029236020501732712945099783456984062062143914870533026153421860884747803042417137224296760443664363278550228506432001532290542837066200385829909162373803714071182850645711500911236003074146712467793129661341216544328328973825121180213250542971570760907262066076194767531132642660132020646998949425429941327292053379374097841198892635886117502046332347993682347882627009833271206984071057657081153534158045109468244952623416886063734774380600707018377025031963977889797169184658467650754501249678746520163343471359075465261093328015869326833791173637133403905317789181819725634732161478349328603545931073360875526107610324357434153216082544576976561078806509759076230206515636090016735984559903552419929879816622020296524342354217117472075124275515045066470906371237193946570483584129071033598952893057291079831352316514694815077064720127125673319150332614132378040041274915472024720082818536714155759968674401039077581259449946131778926253610346155758349189509334324867695991042879013329704869404027738355433340120070970976683794752667836422858510188933758459695149236793885285889951975788236598131859143696514486876158054505148971682769461471494804125379727425654948588538308227531717294112761945907598060582514196348331186266499116500019261394976647152980195753017218556104059938524376309223521802847349575418765874154041119613391320132578861713723782108004390090042119678200467939437308114470866051805834216049892090266168701758154412983881787500579140431314470063301103548785770562683991337524446252812101228645718357673954555585551034722602939102358416587530461444557267694615001913828763578275869372654669225545981778048040114858000087737005615951259549347248566935302134154462258203354432884799119700640501084381316920087835574130547589559044528007906701487259368577071944425162548135375866186723564444157977041866419244675116383530297505187664586190589261788456145592951969366040534721674308404910440783987977242208110180869579835290142811831539342390723641764942250136004289747609672118505538206389041088410916740678553705990553154077965223005876903564876597906454902284876665885727030854866716234394896506497682275375280871373652679156740130919510016697717274852197995857036677436453563203294027649226555128809604879848552534724070633391195532307980651339278608736850137687113651658960604498120011242481544025618536965455877094362757337944700361231789903114816026630453161785583373021037851442495788394567235782838790912752056813137653564138773164468927504847931930129905641969444909427607588854473846951510585446537622832123924003999725364413832751505953021878271472499301441375197449750680665487367814037067978114068559684514265696857463804600729064863245715920437844914273481403089709699060299890612800069049690307743363991448901350605476741159454244501000423877069222596811065005133092178321599285615821803798461420395563126375532788822423671167557057225652208206340496435618360633248629075592907173513421449416425215314384050198551439884256524937022021082164773759147678663213525130389850832522849665100414045426677736326033063768531332285302660039128902504536908489061039974400488978449829828944919431678654845019185134209245442705090983108730785323224443377293350529906569815219149369478123596764609089658976629663116940439994744052173648693225865346775598885197319987228174307952100883970670546502658158574056878258428182190537897186962615478558806672528790926960695746940170982345867882905104127511889684540642220175313573789183710561763443310080433908488693235407765031326574916698558771751956227374825173755131911913847187107386228973658239219817184121600801836197350987870238663344188639653626255446210796343869570324988997837473544435642967189702725792261835287782188171229201855013509029665227649120224581599871231274803339453917738721966335307297015518688042111393210969751370821213647623834657606136567155092694289878783686373986365643110996274511055464003287310630199040970202244944894048220003734552189968975428395944424043554182853003190784828246817320399879142842182386236934607522709116101793720434802252358552377276113452362368007585446475251800378507027663416088193731965345446660839054170862404246878690729320233456616760132808593430861680153469448660847149727366312020799966535238860350923581791593416178399461880204846651276281986447790913688976192213726011315378613325630347738734003141010478259497019106472149667487926140062791252325120793215636378558220950108480482411013178044902645598235616295850863647174727038183305003236488644591644392194195865522787291009204159030970901525010385214834814714631393971448001143342780252679807031759060358975568569817678984737133230458206561168652157044554731109083720439774734935999187716800017561868665736934166976545954934449862968379746200986297274809345336714546882624808541607540430774656502879411504555462763356399155120470576900884328588227599972543726033411519684527675920636521407663725325032552301994861368148118310965182200857732651147010008677196569826957982529571469787851446147840988250809663814346341415879347474728873655204333092725949948155760166530464814985158977897128414144714055126181830190502957631108790773704043644810061032021619973807730248528940850955815527923775784787930305246514119813429088850997980335774615544852289789396763126305640217559148338535266503197057616130575100668416747949626704067361435198440169587710396984972753138023454573607054402280128828998356829348365113248517441596988823597004596995831884290722809321216758377101618475454859234598667042573009727809209501602195531523531685487362682852539314428885975955835818045112732857444155736580621176702294162311142757983014353769894955362303855117061887642978916409982060344978283467486183052596071955498111928869447059328260298660185582881503425663786960092776235039394984742809506190240320357305966389183996970695599202113925003924474135704547223329656659166628249175233547823962094475876864991595931438970880737286248425706600116024401355678049272086337147034915777941183416754623385223350528212090454662144610623624603349624073516395912276921557048605521635558960515036071553045144320651639484992556706683980137532086678005382881033127725106236701719306809928288023662292664191653958501050546885293105145817202645077822609891948643855804355689935689809068564603898830352833905446056398015505162863592398030779815277870766429110893851084246466790507352521663733443246600585471513113558593310461712842773815490696513053025895902342434173750378675561892835037637319004115811081320606105219167108001556341924387658863982403356809098967175998125502096866596465443951885658204181491408002373620932209585700041384606264139578333558210117043964743257911896477593101261050064363740263987993913335674826360782506835694804808750750417283776314262713341501042541403917120527453483226218950110792904978284320563484723827304303727241518988671570698435464550726888869743958598918563825604658465360862421685223579636656174057093762572484418986944085597065779048037650231463865370881263405682307771903972592709756293211933556173461105029653140121097137731524029193550286526626694129403379344873484568718747224719804318744479418998193828568157407408820718621448212311565679683670727081452959642566717786140028433258618541628268047151052304131692548712680124138491818040629684846382022954125310873755671461164339420727962768737792460418538458861911294473402826769892795631814238752026911855799314200562046744887745995548503923322720668963529221001590606426025363248807075516251989801047196717948508201529563864238581658587519019911021113345582858160150070625843952725970118612918660225893678639497493855641895244883630844657374307841815227688674166456568377963361062072018008584738506351569555456923547588400400913712851932576331336775189463607194181959971180714124390532288349829295873709177834054870914171601236120485804727394253564013428529571639321492177650654337185055685338861518346503944698726312933894799137964032596596985386778861409083768288093095856217309122237623312993473273662433453846922469343226669211372371123572045034721898998129856685950752816443425233623972404749833145349923907494184327463415063454847394066465201541323369646287205201966132641582056579519810370805368591687266285533952983236083932599960656017846495426827915524412254482969874005055058955752112769249619561379977746832196971589930721904947279128633274715986124313516037884480164841606209194375071528935196913238227438121825528529826999885356158870564557388947752405381615359721233827984770985674821278083489435607889152509402398812048893783964955835625466634010556289686797052818723958728327853808758919154694286300958439580290322599395537365327068332209277888212675961068473997164379798619584790991679823600848759051621914121679916144316128364548825710403893834433703631682129798817530328896624927377444665616416206345645040321593886654800578168398095014893584989845388172103357683295912665414538240774136013316924360748011927913144964309245270748728095489057645312134055708464218504703639249812541489953111397871144284638560950760887929445795458310286771189182224072312421498731822512040379749560778570761989820576584594791685992598244627165663853926663356983339973678023169723244647548184149835562965681972863175621122759534472531321592863565607989132103006951342304139718056163353429240242173775564702642909832015467123890600779417285340636886956406975773618370505266417268726143343119069697583835456050049054283893868711909189716119757650048080544309686012343626014760853036063151273462583895838316212554831355525536837310504946286588869043505316414369979584878936239967327306658868878020225966947908079985182786148476353367920375703168684019719105032292501636677286829572600014514581574340168909017832129699639147682610613945524248269397719026553777672008073621065204769148933045475358618817325402808823029757729772694991771866382390995626364539248087992126230646377961648950180795232304454694960475620243175356586127769470603973558205635007449173262474997096692521559192050722837693746042738185096067107036281218347443367310124290040970044725240412413327851077568539205290537067796147951153192966778822440927146238137728087090430941141279510733606360611234922359163206659051902539359504736632065391137737936928934983042919918936356063688221595363772345172573312680790418404800231140424549114258110108734854969593138297362583740870908515650540858283039456693417377246294385435373143054770025305538146669387449239875460975746792581055698203681481966771952493670934537532546955180976384984549634708180641128759063750823893262398355124823417665668929470346220525598043428430132607357807080234402197176939273664357799937414413009862967870626423960688057342940418362142903033092798524279085912132768560954909175030917756645557496200728118770689632295879476410763276541595502468615266344384464413945839986695127931409817705266589896489312774126985747698024401887116483602519316643444276274242279747784610430443328103609544660860357422908136206301700382563076326241691653038055128915773956494326222682466212749941877574660294982284546700360342143065461479015091695959354969175640258671836700812904728836661007231298239229134138055130999485946136916674939614875364679388573772421464200172646589106059082680091657657400886065157956617292727034429212749154944185646986320475096766395965164504397850073999017650694950552621901946797512358131413979676379186206772408781819727178175977980953249679530944095569422243715539403928977863508093538609491396444111321133399642621741623461553043885238888789032540603339598850612092086409436206689385099188495330709036389285188995270649359683852887240625455237789647668764296216920660602691288629206368403908841351575787756854590639639872047054678453680497387654209227662523267364113263968680790870090827415409633918864136912705310362977989264471135457888474891804987997219726037247106129759777060018818968513742021827427538732429116142607218299697011271202308077037909763307301529618343391068063600927611796510800996580676093055569049588923166875659119113472679574684154617375481258715512433379466943257104266309911574217122303251126246547553761618443046889464325201286413314480553961758262657912248626831175125177030310402699201285302643506834124249629355962491007960360523545477378603110687348094667587527958998263004748650863595180828871728948707493375961247727571879763100708237600226457940531731250987302484627567445206531764945676196281612860444755969085292681117509638975734333678748739729316674634660139234622304884399122772377425957023468882832401774362579902192372639625135998151659925322920789328714188729954592746505728752043164393223453996413744099316610943473604678998627641702644506507035051660366152424571659271369267293623750803640416186510805739246806886619625132931509912389063409318833411147166540485052609372719777027657673810498278347401624156080032967286133186524486447849411663274804917414850987286987774491855945280355873645175675531901963240440241770524022371142714498470457804573604631255921238269747604338607270365053858719903103015237769403872726876048060177707515305570100256438764755805448818409197315348402097375601979923871674434468076548410672625142673475119014053871384185077951932981203248973107482649055999951712982357376313288522615395558317711259531025039521308499135975936092444924221050866618658253038378404225153334988736088834341528550108875553743307795769185034384621004918694184194248584270564334493000709326830996137636207650560521407858448079181834274959484196066999118471648930628482389695330358701211806406794197253400505372247623569003020480807778948403612200938984369945725707185791029326892833871068362177861929955206365011503790483913282601697483598975919409861725083862182229388325598437375377257801807342298346965401509723993199946962757048242118094434830427021906025530079299491059239117061494902121986638622373613444282690959233952865084328717314000333236061537347186728167682983649791143381122260681234034989523674828020412162819782209460280063359383034023144837900479757347167808419899681284923042919842943279647163315062475462754970451455354995689317742396428026514495809966863165774538810414259882934094548140066555817322918329991292377536218982826379944267587955760852730533636370515527255770798383427583699419676315654178865491158760552943189664949285474425054388489867635770549258717521677577074433160793151602723632810333341689517796638819488705975076346872648691303269836523699825516439718755032384592962161456401227243384095804431845835803869530889348199911491175151159022610079300283655363650950742765313797290621179219200623788682940819310426005220390601431741034392744876991399575993957470762510315602427737649691616104243596986279271149530894548170368081064881797071863011275542433831390109458753667038388568609113425542443099040237321307161422849379594377510782308528034114431609688117802292088719571448933377972202388706062603429863467714620019194323098545134810570927885224331901028123357169071734087851759374483221880551352326616159916726085807445720502378045202012864751567242189941171077475781463036389124342763063270378602355053845814315268892577335545347806261727142594117365144843448731316328924522621468786164761263978541855681897530803262443504921626141880819989343940396612642401981293030975249197295399669158206420619343748864580186041887252040668273422011934468116344962328295437471634499928675718987335352487492598150194330894157986114320355731480090742678163809272575540185468704440783791404470510600507870846196293043885314970469145788989799047482492652635076169838639624300227294996016652624750962765088561631722208216143376496160412870496685887582927305485114410686792283673240720708547493493879106653721292953513024635111371172834173618076945382926213596134774525303581583869445365153406758553191733902686331990130095359214239675701990583149247348980948337540602530295671381009540844018025579811069165140122574837077712523373074315396957011386471316489307165848311780968120604632745486047801223218881802134688850937439718652212666356621850940271730016798696227241281701758556042589591651172643383144654888102717732245968555715584419857542061847739225177170894574442534002670636916099130903236622948638753700608900258206397556142231347700475160564890292367427300456052727994496494974728304153878630812315830771013795093964680953586534144407772005802838867446357127901444545660453108677535299903133516617226662888030153546177047375583940878286129060740529624279498722439194302698121431827620201324154216345484309633415068332841582836689216516991359009015432243337701116712431004923454975396746043119195258710711891335460970405991942758172653232215732716213932678844952711701949343840435200601941461011366622660211416082631526300308004520034107679640389579238963555423957735005864166974082550392805912383214193090526849266305416402983815012384411831772153298154445460373848424933554962801945898427461904941132960085227839348083821863296147948427828016509297419181954928224295753904745255908215545076531243880071891908202328997293673865525451692030095771584442490787846330728281886902971973457734588056716922005396965831919135560705247035588220650925667835423590396770623755210252051724879493520514112982809955625642212064728286330240323286323535147839225090226884567968468351992562211558564970669977802902448792443049715943008194874561010103179334517490957486627686377166447689584720167735439467518755139916670158159205845118079809353863068050572728504599179261728954624012352028540473478502255413811826799308274124776639139212538869386030623731895650278743648731006958179389255428649457385701998726866157341746156786622306071721616008301931062992406211915547155429081575722372747790615236082231085183427529342497568940287147312766141367461952204659952542278970709407830396381737510002464195508515491414742140328975541400713870286601792935306923380557564600843026165844104283472343160322843565753805697624856307144824019923920633328000811698682524375649333407247720125284968079926145539409884733729121862314318431480450374417930327985708468436409375487549219636045101686611288653894522028556328194377823136219932346031077564004058117471273769883786630126201015054043784822019205489688146654378042169161920341389728863083918818970043926199198032262241011566944634517808917713449847868544819896431903420717004216869281362976163379887274929372049696318557408567989194744098799424894807704227204567193995904438583433934583368589677946601147345089847548318919253556733321270722933092664960316674327410444314559501969034662631284682138627124491687245064810162740331567639728282108820422749669949781903117872721583786995102707934672107677210309260450330681665211700116696569085554432911354696723834740109428948121209184577603478745108437157434789241411710073868618951954991361294619075481646607506464724389662486742882737533634303377012586541548717518896065403021180537449161392802514409561208132252596815362501707215166756060024730117264154632833170518552950624115001830727723043229010810887091593102994411693819429997895020740553611430742233146462493829359569752086303944095452848661516507320977183576902914055885608023068225408092170612616464349987280172580555118983939705598795330356409973247301584713354568782970918498735297289332769477082231599375370377653303990276401241980933954456786599384527477612489747259404807699431389710660515472184403191402423879542089371313174456098968715082088522619620652320539371093440648699398513414054694859183492299407176903204031328787180196434473755695740465141686359604849879517697203152825959916453416424750212014047753729582878628480757838696122106568081244060018966300641991000884719322466700471989810261706277155995911063087155363887853730277178602415075515595250062994449015644398885942408008864755869246136117481953438663843089954974571182810266224520526790063952251873182122840096210513225658280456028644169089179451668251127171248079861189761683297171501690451896973793618718833852065668990352236000763926131804676985798881356336648828551120355339386567867940501476439070755228921433809764113099758073483512546381549065040396109277821234950123717050820144849334118779499986786048138287173409195369869678194800241214423524313294392880437455145227808194030024598498451115103575821256934855412488660404059707497529138813845353273397453983562469878360001408658769025068623295093005508631391509506662336264978278938881312535647750872401070483602835965655719659155113822637577698208068317607654783027308891087779362005764473871188361628018336322678486410579713506269246258672345359632859650143138931085691353720066766821596551279445189571072228447145271945395495337155387651956766062762015236806379680100688186033898348547419163407766616061650969306900466999776181083254963304418130751477258137181763239162033837161610146947457868242083236978131180258832645347612557055159028086169044863128571976915640542105545408384213298665753204835445098338817223540990926405541822940286546535867626304097429250900711530398129483625409948418022110845645221039269773825592111373438881487571136667510784164789107347448466127721363421984845446618633627880079607736223194362711995556144900119801070097351179876523328823821465229789102013501854495815061328412623533443072078194481311740437548338037879336561149293640230360661521302816173375866781523439395210169943448688626460650690983615873762123694479400843590858456514802805598347441524494887306647030282908612782923545854015508860357976690927217227973331612781389646813866253631801852600966931376833762719775661796935772207268147080543741547304080440513022173271011578257874251127619276347961241069941210137207829959029161662941019550512927021071807546452332553695666835699235030558088270914222547014894117756017090143415816533190628423660437467038795673199166054486837480913473862309977441777910296392597651477102637882768670533495699975464873369476884559114981048336720336502282131893523693216046687172840755938875875025360368459408116814042544199513818273002937815209015659980695685104287747364528677599029434587433233379906596286514196366437277639798223603972475224197161495192979460676906460008442529762829467390108670973130405030845417145754508355696952499024448279429513141108490729049815217996027820143362537377507214167422814729271754693609174800338250744140520502765223641074066152404875907208376158026350206382413546518689066334984579650212567537413091232407115343015768819890752384573263722798240381799818082104808517137280016364734224450992960985779069467260795424996234971997795857376183012383326379526195353402885481820534843351893451076254468718031473552043264573750539490198970307446054836012686733461867174097113601843605764749627126233755894910230122501718512408932843872466961347701927004623656168201427219686166011637715129403103390613721550467560944217099634855450140720749771227905376916530097328306599199500360272090375916339863098508803324080072451058542537247943634506879606252954530501528375077781119530621202477688911550648599548565604718436136307872339022199129373146414664801832180590237059626438798694529242622548034291271430331640875489329061209879980793906732036871602813945352975345282349344885100770229804432170929260838644893788547384656750303651539567704183024096923139027123627083358074972826968425468524186294117863417253325647699349339072469886408840361680892462819599519870397809550060913616964072799979678124374472965415986439028992099423031484175249132806061112744890566605228007671609350186646783239895888654757946092210858804001587739836391870297396347956887276475671484863492641390581102158764480066003002511526188337469181815738417490966727296705379359723877292015871829896435963503841625608830305536693355924771693832751355648100368461062363885877582952614696377445888986132946328765320173289851391001539395080642036965471756438166956205956739388706148990285235879259180548165205032675001877686603864250131361017690346776499887024194802065955675119574924704130134051702309680480191826818220716062872095337526742107574879320744181852087877205374483122511429271045790400284433097179104296208444865205896937266819802127148130109788768140706473561916724777093551014469004091124161848434035060830210655929222935839376364802420214302277180620842837855974084468464402958528351694129797310240100504510018265394853572669667994759454602819348637596519686835874720591116881819652416157072832202273947164052943266772888898164558871919729824142299917908611271013159710300923528319913048892599614196275637199487698244178578913864685813138302357327344670963419245915705937107347740553833244255145467431423440000933302879661018817910182922465199699741802816062968398693608108676462161667848818389841374646903351421208564250215137437313689966820369409371874523921697747046663485359515783557611311158263647869586401888076199058116509488883074322579347005017949441461861918754778684616966118195326944887641229108919927739383844930800964475819123239722254051817973090826731954074987818914007460868996668088223316963476603291671901663802976073969479493433679071485274339887434840151518294354291087543064046233308754646721159036356870077669841866060596803517698362227105415720948350913438851034134561098563748157116760716989704997827958265082501547700336002417576823726702882961861297457564046432395153655062080876403838009499161758312719096322668807588531561139319854206944821344564835657766798538827416705744462857642414376404405112073902395355935355339942072625607995059009506295860292890271109620437928376144876800748353044873296745393170715099949268916198378015510453409970297729438550126066106662084196587032797326152172641576197097005456156626271778054088277974150031619376647417656354891493424965800752039847901470567865282852146178242724480681239481881681882577260052416856350115517354460236620632084251832894018371827208127861877869579881462786570703239236532038396061632516798514400458735590026888224250597146000559893279758420425601925047844640470960291226985032787969499532407412527784052327095258231337975306845300020040597529059665841027362757517399697325130491204030714060569425115260964078757299572598720404587717021181365127885732623374064962366500662858292754822061509543581065290444041707337920920419141390721919349719042697296459464232504630316525668630545999561642995363474231580855404962447245915475206765836364558899361677897420082380263728314637897426433745754497734046361778596253316832815657539284771591211080577883629808849814693862697659619286556447184592485254488401834472227687981845822301520751158109672302899552586742094965308575496818462120023761669699951441234566567419121803452353354619592341352702857992318395573785380053081824769998806335525449431417008584767021176571024230243404148127675446292729487430733059149855810687087422616357452198516512021577773924738335684859337550938398040824409575872687328266017359308941189493082120721074563080483418533783876589510511043496811844512403449716210892016742403387234840686152327856080564388065528294264554041262799618812907606076241123723188669989811451160691604074220244831616597706891745249054327675254891324908470813113266302378315425743213244342211915978925824292891911435710040415026208295368469007146000468723743155062141788625110095498004957159436929891569533289223903714024439490443915230251867443990328871602782313053227729850291132950469798056479453192963147524013075191078601108226811125696387730236807405286693644012176764994249469627242235475142398387329372373371405098188458349941537572603492738491108045084368993709887173141954723180944760518704771140110686326105786559163574321143924087182192916338064300990553142322127127847359306754633220019574097941777853833331897873165034724715620485716213192261861715983970762827970606337723809885491888054565998295549432161627004121224834062966299134047730404213945519858905962545808348603349397096224632034393417782042530366747657381392518818162371936508733313660407532053480235802218879583899354958955693984059825346251398864969683730144232798576862457787055146292137561933476878722330936084621880811916188578221039211216646563939216569191320950872596527010691535706919318476514123142599422722151410119776266779280302150978365515728069053233960181044618888970612704865852161419546808090986217336311383320900055975712547468110337183826346665889326742356586087626103911600076771585016938103127042494708626767773886172138658309453869497572038592664651347238096779284990954819350130615818948935826682724962762033059806628089845364072408881348770375023950156314333158436686653157232347234849797230152641325404846816186132394187145560300095567519858710516395258795317214552262297041145400876410648926807260955563102252424250203949915547083215502341059771063775702055653489735769099240457823838133507180065773283331207290668998097658378649871787786623063973380367930099809307501872730953245249275275762943651248805498337929771392879752595716767359763085104263421778083365626452968340964400034014924929816335696726946560969943666397340467635437480828204956868130804051276591162006229189939600911730487267361620093485327184108378578326801175053546092141037617165097867160148383250049093136707525354971150219109199829568712590993058361088329608111922045596545505394563860029458419132989742667873415123821354851418187333982079052147198057347329854111372935126548658832629648187242761309602806878335737625084593787543264414426498886653408687172691736084300443640421354724095834466437033188301735535040477767502402006275272156673221173526160546378498577952199839622964667704089029818424961333854491179930038358006345577047256131700079564716759799661929664937036570471251052175628665065292614469653725612387901596599625668568049769192122810983282001634385085500926888628108573883355872401776753785217475872515154122313037844564167670829725825766428928348082253649984751711602781553202472249555406951617713335249264519797323872421607115017329044374508482004321225529487016450369689646400966433821881179184357410366727189863342687026987596168619320862113176692861780466304683896894992193120762408836759940781595208887856673373607788690948015888481787933908973065173986173873111342375018689848740266676364878224900765447960930513235115474403058500501575739474970103926431584168985182640173504547197215035779339404169435911114665869339314055649638318479476251713860193305927974305159531024460614753005300917317515838778219029720909792228114176152488079511566593474868856423114135083811250379017325448929531760730835411262112755394555841643986952456792630294731488744206951005223903918009811907458061180634188080262757193145921241708704569114606396587199609603491383635629221438869787840755884586630377254446111139789056686655176488588649261083860231331690480712477702384559310823197216614510931736180348279534520819237892698361174122026748905959924388263061086304421696156896904513066666571398997998203169917973973368205395215850913448138327926547200054833157398433315353984333905045360716620949422261362808650133813436187179110978442059343255042434446683113662568419974401697502317628011529151302584842707903016350126336934714739278718475701838504159787484317932520149899343084318988442220698543337532443865969417895119231860837994358012469928360560317614158248915205326968118219830841938672433932352131899554598397358074372275461100512512497351374816380970538001008619093212169669260254496884300117545297688017354919577178514128751355346466119220631824971286906351502782848890544158038263427651333215876389955970738460235282365311045752414097875724871471945277609674155913928514099545406092276988472786284453128356602162240441635142624599135896608571188473355023186983743315280513611530599945906236073254903020597353784573983137185816440084421273380322885400850947579721250876171819467260455371909929796925068874354713721612225766069289587704523948012942648555458084423624179777534036771191394573552602561938726575593910974535425848293275042392543134361506616602069720203372686838650234684230584416539855763562449501400997416835434829109559943956579969857461833422802022120389797877238793682222787245482698677195897434531482929970825896504915399961786529768329602894712011910106265126852987370933973356853922209118621675625193603076322550553863831172001805493374515224090454419178706116468950453875564412903798090918484208416917504856260570763036790209195306119965780627898673823006226736787247416980940543369513706759229771669114452786976108600838951786934876227819399014662908253408587912379120771270653676575503779640676910743456904879775579754393994961444173415856401348517145020225856731968378741560111108882861174630531149921691634460667102013152806588049473965253285529325716403984582326254158345728612359581753816610066295285645748857225055505784425151746291591519054130673334325470090240478474123884116900667803212454525113331647813949217136686489762941849532104160257736090928582122495606498599113299504847184101111767261373877026224955385612779345145058613592098819860023145707902180427955113144541457414376764584847425298749768551449790099530641382853747668984418425498840564057130242125384492941031118383226286848001514491190342956068833167160692428082420273927655122768030458896215620022354325548247286680922041255844122224948129351417590318392659799265430792850612497903501711968118194430780865939328138908725359596052517423281952873922147691906153872054797722973450943481618358325966419885055053439411711545273288414842921997462028432605196972333561246714631468904499128132422732941863405133794143914242430691604725284296712509511248829487643186527709085693518688640403107685311435348187637477820399123565710448817569626688211952118554140757809868964925367430906520748783392453895850376417742333780609747653184357401883800803352675040741482154552437151272992754113406026041774092927843910676073748631681210048363074658381119795007684634668101167612896347882444668373881713098816954628165316475904427967095105568831783171372488442192792529474877239158548785520773266653677201033528029282616613577237864900214441613593667117373752140418833052244534781119506138856045256544316216912912482245762641321310848732268529680199838855694039337497045355813884507277446648051434986131812555753841174800647814473256800158921664677735920512461473478236861793162319862301561135307062575371741501726720108223002293306130435172117532207319995585084292377955720195118943090365183148825462651239058522781644150318977901348426579527456501347373383963050093313393244043423108246774467386420023394612117343505260229350499042956296241810742296355247480482910980166365302214020357518805446736395592715408651457926963507265265760702282046277012820446966954631530731434122150589308649638610343178558563516191051177402473237453687479678316479890593665499039176460806597985102830829624899588707320750973800969515490895297673361136139487359648417367409403771342394040271471102596665546696672813871691548414736888392197269560016481600088729069123539912396783501028458923600643501737175041916196800527743790105891239755136258511079091305771616461642200374281720280603879905152266412507513901768679176250986234290098590056455830803703245253018837413489402761943018664150679339336573327990911959475395541068924830521882298141618553691021437039956626906581292444312152219011200259192152769186296827726046354232049978925988836255586824041794157992794870056679442847469807181039355058373452259950045982082825196344455197529190245016629570133121304124936285617159311362108326370775433303238535789369749601048475568878372505735499484690297498412646238849781640817175097951823587752814080449938803763189926063414712586363193147191480962641154464583584770873753627553327090179364269885233156907370183623442246881949100778747042397778138586218180303083269053853702874875929263520283147089881946143685176074384891753167015203435222423039300567947271881557063385400069406660377467404214374032583996882517429303341355392706404404940940045522739761084923107350342054507606262965994521036877731767583356850609786474681667640702815246165852321741799121529300660818841166236342235928076672297975535664906143752965652004087963721367813499277654310959688798070812831057609964987700335364854890528847181543484258671311858038747421219985520326516036201922036600550732303033875424670443468492939118372075027280841690465021239266267201472845351404427975489636608763390926326259897570875028041509826307543918362485683698102070769001118975268423334539381047590352517713207365064991855710738086932246293409379787805549221944856490146032514199621023529263838259662720330566333175724513430558821523868769188021092569106767741232143658199258442682254597767561772539813924744025511539985494013090633344482606116939254073606968766428984763356257078700809905424621840353003503956324802205716155835303515688657094604537227635419766139343229837931475081243333256583648584470094260488112636881343562308974557460214345180496661277505106299340970041890111211662737818026647930300128224418790664416461393805292237661468481748391010655140247030598954564537978992032067726238674988962575979414578677914188964762038014940260260970173114881138184304301588006108076932873861524756793539554289211475766542955122082623794306024905146061664349140883516997858419944078012046428181742847150431792011561959147621851893072713325813202859865304013337063680169858236277602502368723632973295539776762773221039304296749873722163900610535405267040321261127341973894396257309403027392626517723569724600259865733821050928370261248818929613728194702442091790384479120669435172993806765381063469770551841164179774937559145833120106543919835095816699882970486955342310166551437713164867494531551081528746563595330069894519271662248567010355711303250738409851163231125659032814560018516101494376667420363485046767082653825751359306831795451026826434540327048090138320483178557371783825511030748932669497042081158860786652151365408900874457147902232432284905606475471640876778692086058921143673699489981898334502286658253484545095305301277703151071038526125431797963476242230462112203226050419337922317110122252462315360173806279909710447269032065213170651081827059804529976451274999509882525392684881611126580216193769682733255036030620390200362757717813422585589974776945686847537664170279384554871020540891005149920683686992701442114542996939786500870651138549539247097260155103753549994981762848358843923816215495392241776527346362719696575150795298729622778485778973948702564430295883833101421137043106345550188103635085019819051063946509740558501177467790704593894336739942477950660815237516496874306472769446372982636133245102646931956136729444719095462378456626873946138513672278993447442187163935171168013302849942334063549041333562405252068826224280920790404400140903897207651577487132242318777823431906956836450437223692318123096533882813279313544759802192773023405192448796697039013275804577215943233471496334825955459114099983178195316917386363486969333327691871035160243184934753599165184450609607763628252265966324896147461468470762247148650221815538082643391579370171323728747574483570613040143041282049750692670233003647933364997614772911654704552920271797689903596990187742894100231524965168892751763188392700785724146235239781331426309670366574841199880935440201619165358920682664769480061093279280104939229538613794489885704945725259203921395356759003893338743406076281086672393004469521408575829678120764137736694986968646230255960915546494533070630048519076742993459698979077004491763271609822450260059970931351946217237886430708228095149859675622284999373776002717385798251519258444044587345751561777623930676479599001600537457657933705228099726639544121838569544559046685255041521171546853170120997984523029251252143606693056902751981199718439165637250538867005810312606791568248492661599488533138300883953326706503149626630038492836488129572249080292741580697426077171412662295435072871954871252409723270334494812604784122585421940543309594409492378597683332571475483507774064661364708813727428251568635849150568374378988826199897933579105976536879011262073180981888184060913016204030972658747091448164308992521784583238868502231305434365997784500677595604807772610233701399530127411298136900968730864000489287811017736355669088229023843358472953149573665586693951748883874533379614892799959124035305013245792696109492534663298202780281129748230168585327226367150049351476805858362645769822292350154914010800609050404857274561999479405641064160630979432146142613456677320443491345801832871638810620781803685869908136689852725243440453175577427189062061251018467028744380143904046914435156227497471491368614908249196767842723797199610388947848553402732699404951247903725475649468017810996827574726593559452404409936311219355272990404888275728393070128538302200916106066588638441115681013124488767550733301652100539025149041806062048650414462479152814096063075229966638711241875123280432856428894291708763119861573354846136317493285161338780127280513127160806550443521479529404647703865071842577203547316393636463240350928344789200121507442300199705125081486577997814835964799118871426738091965701703093446143797654181498598153790678195880046581584898004921586883322022667767441560012676922409704966469168768779253200092464037801185660444264745056773301124727816982321322293214882548776068502350858164180064798595381706202564531545805594943211741268065261367472656687333099308907703344373892612899013075607850554500926042715904535152862634021996862693459011285568657615961303561191705089754688074434484451310477407721527070401440445557088628716346768723933289933070887620982339535272706863764636792835927031092725736921154639834085619275810835274937307630055864166390350425985256154318051596070696683434163508485392946834554198371830050179823703119614190332469141395035592422633721959761061778766127518504248691730897578025462898692708400366321221525171886391347760417399615077039113335532644164397509129098977080177666502012561481434240511970095591249463886152148060563240718788109546078927490028467896067688671971687616689025938982209831615832910399258480980186719543973610246752240303449729979897582409902205468760698396958940957112041356219915948458498447476632800293614398524321752202263084151816699284265091475396038612155352521468099350293044597284908267849216137624841346691960151090210547340413339605534840398587055053092566551540954104858012927446508670085952648683986765252772227564622141752516321880852877259025620641023864628442243381011852088668145406366751255309971159166835938297848565656168738431802598291706941873180243984737055401300134483279123165100316392603142263540739757809842412321314002081938141469142931376618488188080708623046835647942311331724724950296775642625575889202727303449483979313663168874385547420215327604724879598151631860357995028432788594033585651667042030562642714259347369387146834211265001929151717470861392151057103483745413256361342029824216988545134308437943509763860921511112364150282013739526546050593844329930540673817129362393319157396141640304986931071329832095136470356261535718385267680556095121321145547496727592839538137401444527177691513712056297730230504813567030548606012216010845770256075503862319338700992502633762480848570982719134477385207889698836111499675137808920652915016734707559193794374299815498291446689467438654069809473867707605956613240795095341747652156969033798824063274652014053965915468695260659024447887450959749672994283273744003914292456986352936648491796029781998767049745313503297592723950175100571398324150650302420349750581588200589826102813132145412219162340083082527959614220053718673766102277536374485806022326627785860697992182206823876411667211553389331560462730654269959076834773803789195315772293571196688934956909137844098902649336033562567230625646946301091629417043434832322833625662447789369985222663770803836398244759868351505010774756975336160370870082068751341942334103162316531064931824196818082372541594241017266544107941606248137986008574674966938707336329335321982375462972732255974495747390273653376299590271259965935632445640291569699251844143678727687373062572930802869625955022421965113213502273602314214318883688907430433023564425259850618687563951271413995587680311178389947924182767423750813746545744607138473132397841708587221036357737110434886356686555950372014811590010734048865666247518529192726198559232208570683674068540389917205856973635100708611411130268938441253174429736811008598851638371980173202310143517050521638756646932619509619525276314090575721574502325805282499418365402709876105018330508262071809148590501146212389977825892078356549784686263031883238355561931536755245753998601926979366541699172530910845572881217993052233772410745011004525675248646327732203079733432995563701247211014860784931065941740554503774184670051954203100049715256969376128823174306214505801198573871367969558556199111097580818752090087102707335766016917459650752012261177296397511110638559799918728322580079403470039172465039751692498961377178549542444465172230890089413972204043377945953422785147399232531223655084287276524093503311111227289048125358489764113954449350387754718638182051745832666968899686888126231638707113963579107555555092944165351792275123944636451003927942573407847613185938249466944137127222365623669244010298855298673725839366173480631636124050511907422761129962427423389252933241900580762119769401473038931204495748579852724508001319569446498624976347161192774166405610985183324320914308084235020797690740663849646824323422410239046782325640921525220986780556389282066349411422467852503495723251412024203690405810502642250774024826575751803302389574840496962383015702662401079342681711722517819697324483863239988016834304497344327955429039109044998344781359303391837288978725630365928487256734136838880876764334672782654458602388650945331783056880377923143123936719989336138683308163351931558517353633689040557957273901500108042747862075858773295636029368953788133115298108952883657109209376293836903898927344834318483684265980053931396946907061044118004706221031930905409224973309194505204832349757777430711442223278457115304690387551547797994741083370313884730736310818582496757878191248310084287948701666057084278839840715399278406384652204261180092462954418265249863593860311031066069710476388892119679660636840179868859470391688657949026709277467317576167077141183984876621105400963974350271132214257773879346673404568205471518285069429507895554398668835713503106482307799454885236433158165070490662437531161092088711158942892024609792586941774377817259389491140318721523737462735543406994181191167307574204206203785490025870788812368428134312589468879084291935763859492705009411395851936103028520071061171153689628279346849071735400450841990379344494188714755058890244234437709849542829180628662230258769505482269364099699787691688122195367932538160003182161927538459590223224170639947882344732117103549463863237650649066576397472738845787583361902628863508468314098914342672803951497974296135981841683622800761339719734117118064774363639777153416705623096301463331089713080100385259455198725733694157519006326550340912850564260358450749534699873535150406659023080935427493889897262095002777348159555088359955466921487287136588019095920313381768702682797160466556082375468277278738264235370772040670987856876479992456737795755312386782147380142614298680172419752514789965811078017485731606930386855948200361381241854426768246700146486018569509128501955855537044164929162163163024983949461886093479359842698858283397194196404920612939584418789389800877000815074249788069797618980180462208436920704966414143030823402372503769288967538505306638516644998425154445562961032143583333992042331408203986251675894155677440283160052842781418768312463489996452234880058363878301420783301967555039047016215737516425841499234091196389790424273585065998731694012451427503028581246019516489016704936610356118583767936507659058386450322315558299931930115324999107230953059824816340780721768077608338269921109807872333637343622610839960887272061913986892294501030278173352315106310998973866184021101264012994110846449229417323522552894538947684938915073917031108967169519852367671352414746512904395767859190099274891029657371251601129808050615178638012562327872375896786932503034732174790530472826063777067121955411898950421686281668427937706294205585851502103285258644454599782213713973149074393690479027059518558685475733862749984995485186981222430501518577820509132855871763459386635814786620327150494176004322225135615174048956287705660301387759040147545148923235102777737680096734244996807184385298083319218856821767404396723350307732912927526780284823790229906854079547095287828908143415260288064981070975174433513908159530299528487119915694574112959768188099805068406341358549770852451869689970706664264080137489776423521500106141972858960024868968645668275624335555932478112560702139115806899848987328896865541521396619368209036762723062326719579271351553779186763655801327637227296199271654928540522676940215667637367799898396449364273825721880074808673741120415188099284737962920234607970741017659046204267905257179615781206520162248243689666571130014401321407482712519459659241267610512611118055702010338868856458436743889815915453578727890595128233271653690457432975590715416247828623711118481912983768689372889999746440547494105489660052505133744561185478850110316968668739846783486772696311526303255962577237050918083359724917917351404525192072277391655606113965812151620324416062101258622924503775586157372948882271866990644907187002222059793080770608085903631981690172608950457926141145643128710902532252044988714801059189661174038985021059765234097640028771333474563779501924502821636433341533804999117910218688329250590167864567456982942156733379582930319091516757075912222911834155771311296377986953321056889563131621527705950550459533720064857076985900552424357031398135980912025426257905663020426042887452412059729610156337226097180866336503752479766155887864344652481040257499618837605853903620044155451811835234517567319425540621518091704880917833172312233743037907857606822919382099622138101848967302349228139055475904058198457733885097894326326170815773783893972659222682141651993785338555406398661608438930538197795451006261043278815239263713561972361456173507677839504193832094863200776728685967046327989748914788590521029520911034832184458365708946748383247616501043060380652347483175379605595972250218402963490650333301459129907060220412953087509456535159199398048145468987988475079577933861779076272411812385934743303011269803976386073381234250597662529282821825487641573116924306014034236062860694928124901873485970341630526482344084634998239853094487380335974394008851472191896253510000960631219751082405399236801404148437421680443718788847444285939056972226183722033087469545014863920932867360596864254560583178142507628907935781269398038267548323234714034131039653107456428872786047168731676941949033679509913502659455442722942508834741884415642807750470968775656809666407671245390249045433866342315063144276911009181797054994556005689276101085895596647450175744871914462636635525525229226714162654467783670280482754353557640643947964892762416876950215597402133175539858985599207303787656994237621402663894636708370327163818109001261030910397112578249902495498539281878097032579259937743139634063210811961670457740120238557614096915020412863846814810682672259710475897828621639241684659772534736847276303663491381140800134241391678868922687874864710837071030038586756112466782380846582136969746400949206725755774760889248773717669863238986614982646626032649129012696877674881272394290121181809208728711445758906756158742449195399543006919221016234343197705559874933234345853933534378695933423562346069881412119698740403207773554624825006627078515220005709930538244364451107018545265466552243561001027157564851525365461103402703711163607027080560794693514801006537392949014783806123016436042842439119415136976231299282149573812976443032912690291504403882383136023569381111626882895830742901761633958765747344127658130648014513964020404519982728794354230338489145807035627485724572987096425557787556969082496527569912968973660251059343474075569634464155508966920439906990557853819229952789807949768290386998426725394479524055845983427236885284506405924740951747426238633576358225989752016049404132469298578539868412600674014291717190073553193851213274209943208115894749713813999017129592203002899850972736773447973110383950419856577602071427880356356297023004973724445719918331331052578111252524247726547612658221812534546647535285807736533600735988656157971577357486526037071322863719408665822970660621803068528153924496034425013786996957384184261278394363110221223590309965071239682368239200307660891422702785135743653748803063370770299920015046639003103332446232366577385130555152517187207810259395953542572918855796956336237661577844118239163290415201941243391688296841992105904557577723294456326492157838784704110502139379577384059638156191342451423735513094960174830074475528141171683905630879616251782238868945378116593342894707143927597671624845612231196630479104301367919043614432355358767907312796674199332098775445552813062911147011987313248475961809613635634767900066360308875460656108865105789737598568844007548115855766609566465604857061514913607759893528377160777567151466546592709805716599697237725609640415658908343679498146465996914613720012652181799969028786571351377651871363203656607973052959354475789996889100280463616074718287913226794233018229769429971637748695860406059653940251172055116332249055433227648453704556001457928515302667297717367220510138524087010968050744766000643210626953606100747056455762440236510430991004644960417302436680481836965062899771518392721890889152054005784425912617832382942662129134201931205795337310408426672076968402167913825550355442096111224933000432728033623294761682652568893190891627490164475770816509923390030661561211969354742641190066827232612350389600823548676296278657933003744685845442325808371818207383297437292847862139543538259536620644880399383315817063110037462095076882894775691758079915087929101347874316918113542998344160611532557373150338830977985266896995172053696938736105237723470046410188592376373062359479782517293296902965005465913634346966565376497543145677197095494582114720114364595259186565049088422188529661323261824707346541302339107380934217841431018928558432279659876458523604565625482881535340234539740591575448707147092880675934145325414796142100804400672298820021164210252383725106924720191351669209116714062094752027435262137815709642063812223362391811695162235830440387879693101937079378254104725146451301673784594864368138914535891472941706945888834031259770587596498520707321095126507260774883687560860908389116656883854373693421775907340951842302868264672333021654006240142949416242171330037160249280927657446802099191258959046010054483232614645704650210814060010116099244853552697479907287122808554505016598447979263105282612006545878585977996255516606825005663055735774887885283272423733933511059292647017210752524806324413744644280812043559145730144686688036187485589112679038211745296680541207363220656347452563778941431630207099805742075875091695434609443109997306533612912050008958996375788522071842945187522607867890570348187077452116995549298975598158226289229127972460520880318586756605598225587940827855102013956492154205862292766899120836718980196672860344537416659401368933174382231020559370135389688546829715477786827975000629475643316168462056446454239284317647405269399647411008567441433500080438820993719754297154536072036379344352085184334441226518323629485943102913302189065131322093263302178032242203398435676268854109473798217970738900570530788431767512931969125779254254252060338263968166762983690838187759833892180525892852917935330868020908249609870432827463309190886269286163584316794427061826551413065150136257525436778436445521301979437383013582180033672120749749395677981512269116904963542376732091722285506915117187001206438846607681293810130775372940554575188595940828092682758076121632242867884095468695544572929895159435953859971341014772109461471941268671967231463425950336195471554671243037533185591391948604496605410148119714895384296185542308478904826826895112370073869908103454037442848163089966116563748457605478384957987729886302228540246881121657603745189667177529013382276425398317005118416775063093262778168325648615391571284514619432287382288514783186106858841268352291166481738111634812189730510815328859013613804034509883544770674061939151753413345527285688445184358713851816507564612684778819831478161023904229187769510510208700288268032576025827999654436361790422084855142721108648977476042971904941409514250650605345413598079522207418931867405656833440493385912070153182189080156872121133478490916487297996269169954295219936280356526611617103379702978359070784655574799988605101652390073000746742536840206803730173886066352234357712735637584033640299294432714118108248057728993692951130305108472013120264791857066281891813517920391129446902243589068814021243615586500984294151095787053846231663331587145946326462029976878335389311608489247328235561737255943439944346077127635192522307168178863595747006840473416143959315071509380051612505693795852755200791067622227095242223841655413248359304421124009803269802388130834333079230256970397185031347594723385147148325975917735711832012016624455060792985357057881388688952699767619360076806404071989604043880069057574000506044374037989123403330751385673945454168756672730390762436234386394220513948934095200104789110868663072868581397257533184013175168853811240127409323352519640575328477550950934051043310766990619201746565329086136509563398214293200306786390971439045797822182541644759880638569607582150581961525257481301233628331037756222428233152711406325095896626009547374502433894686069722491501034082546856010015529932368869429511565170204592348427955275972545727924664382192585238655020604565006813342013984692976313669188475567390727239826955822734502167606522935919015495383633981907285397925778152547847808595289387184537534547719806642292417517100962594908620536081989687209181932712925263472560327779339129481126965976916850011735758467801070054839550020461544635241848601806145692500730813289304794475207634052253581795132344771088418091859624201659199132716589993590693563761284543238077777016488113861327041883530481065385487266536714018521219539077641149960801116838515031755995831304028762600224474827833064586776850271633018015839620331216586102795917607457569487029184477525571869352261359336580236769271749541717247934453413577213099826303642846156641108938827860598074818468135187589676652996328729369813394240372955715987407372438284000015931026637403614205742425638855676286419717640344953913890006566346214261711753862930873997278548141526602089485861472856535920530879224559564139510349135055592583696259210219670506393914595570175297892103643571713611341457742277145327505676356786384182438981250876028653871061765260502615552232157719704231393081780013792447866615027256022393927777485417476079229647570050598238866204239517084453819535100800933211979420253871458396175528254324645307847483900673354542544967769975479130775944941130813152708463983744585475555496729386030372008670713510396317655300278466440492610243065789718764249997389423640772578020324705551685607042230072304933177723780452217767138212198696932630175995416065190217050448214456501763903969766612565130203938153005030650326272562823882359785720689109043308242241291293831105990714837153495969956153178344334946418409237954064554735329197930140847940428257407936443876757746879242935043095214796450518658862424075824875516981957059972076614245922519066988594371229056103950413567591227886804826009072562467996580217450161146106894854559805477485190579940500649184487370930745760266403261016285960087457417736031457985099919501127547353521883518550325497535805773194636889333416310829281849546752936978800382951396257975946532242535543201265166459536967234195890743945154992235156578776798148147503841293841740494026414134631980265681980933146453509129907014726961461962344048678601090968771046231056392014940221015445996499255490665548581125376923682628068425208360768553201177591681051162423292322006514307390948735442003765401003831472984979270518172094317309624730537069401514843559212332695489313830347292172508154802969734399851224623906831102619020852091287995611355358128272270870481946615488773605304763029828222995633959212467763241325078684831713020690947556333366628080793918034688089700862835182195962049654156017516880963681650939330070062023106089719038702014145954182152239396201148098572528019644243116086911761818108014929141663498562963881409307718343326691039178955732719483126647044687664310911558952187805311415913550177089029051393574946573211819750217483055882710299816678459371428631924316592110749963816943418408506030845288329533921578492456373083795260514505659202301192994285492819604018332772063049787741175232026052074688373779067805260832308340016265310009698315731012432392090417419849735645366644649201847060388414308256213705823724818982132103480970940925804512853586457590019665568171127894738589600053169990334409497685196394696653344700583690455098698626365923578228398737917177821417407266695776709055887433644530182764244431532495609560972701835622495323944096871216872634701508283175314330091586735146182556870719015014968870098399308373965938248554677760966430287179739334339496553596867146098173376642484956033049552996893447373327886071139545666978305502441827631019942086682776729490789446416176023446628459084692194939276379052346273976809083011370095160339204277350338324150539946093094718707132417861616619603285840626709050836827514095057785013304151160009966626031176206692633283639950726355688476754659535605568271432284970991977273000721878337717749633879010855003240640998498169991927134551843875222203414094804867290115267781490317316863451604088685921645740712128680576807943862296582711923335505073947889201538511136195177584640537075541113218196070114783189402149693415140425079267045337769619900303687790083033661510674129983720674200816385255582228000476396962616444950375299838524719046981101396172265451782661413671060185823384847527643218518477211664511512653739222752485603639955274864463032048673733401264797041958881271599092678766084831803212863787745992218907090522885956149343796437536044261966011252723734276306596631502358168436626162436661401456950999134315047192389277751418807165291416114412509989977459737078539582515482640100376035919701100870121474579245234127391080481156203635354312689881549831216019469079771307855074582742887517813685304460967895967430300113033565775130072081031610540301268595371277528904502501317125876810539455801383646208141056955128380723500868288829371203905417155238791267500011543989828808596315110417713651690703755908584477042026775429083239212147934230410187126613964028241510994952170661772342521471151049635731172241308267587678882356036830636990133597765841276439518185404743325530020243962617312352445140295869314913372408768739291927279627329356842635505720996284344693427417408787636265085837818172247887951964273489274744834935520520127862550973814179838082650297291400190917136116702809085621088432944903674461803493965429409818543063541139432156060353680054603336962746170565895643829205600000438275821370394946093954364527959184835048887424686221275579895331041867799368059072359020586269673569357401306984138066218752181103503404353093208633799639845980405468548015557868529521702555174633376145836214687637896337441574569799482243353938584612512493387487990431417688796514419608415697686979706538088024204728286230311674112098458359772094247914551097504466499945052062477421898745781735483885843071527834334461103958731363406448130483796597607005461626898532465198479954334212945578897683743754708054832864901676237847172025240107356986781341626961668274548797904905160021225909586439103914083108813903746494305951018803589745205645714302800195454209071950382438211164049430327429092341447166056224824041641682590893845662465895347707849654197523594804559654092863199119154831770145361819237959438033875253928083116492811924332288160867994189037574302064178495658866842496686591425613723476172044397990804199059533588693974671287116453345536801445225076043983760002011501933473728068967201251352495598919884166230895740595104934786236203227546271444465354782568900187114486933821234626810727106015325428523528165068886596909158046656753279487819126303777813750335014961288513267257394894723055053948247310056619267869176448591293396825696488942493872109659624972234328393580699508155520422472606601729207372431078909580102308723614367734877453557393797266433078985837395796022542637217470042356848848328880587981437249268580805988876420168839889897918272715692230013308407401352741430730497645424378199942946381930692870592614501705239787309634429146949745914833509664748626088692477926355811264180759427445138484712835166968632255153315897560994536726714449919372019207034897522109960639150189677531928590769232701710203770350330629619904839054354201595952358598244421805707670337301139672236311025229476223650485853400009774105972067254204367504874070502642074115340633369561737946248034986741363520152600823857198845344915501620409638977989948423141394001500238290946599371217645118539354161776698945637466972965081561730923088917966044869579504465632112959172038100648422365778851361955593641275637349453149055562121826081413636207954621365470346566388203043226430899717160399746009833337826972834678613957565162930179607174204167331053233778056486658211703092899495693072947333815073213664489799703600915522676930625342416848587088496609083008624905736131392475255116657535240235534289216222798948291159414270644080700184194718048081089197048502279915878532694280333804199137893270697973824717033681880979019941368762073476457372092392398760493409174834435225097239072313017584197232526336122707271939851761247778120534786207649065095248072852311189126289764336664993304600903519619447250398912570132948565572293967328779505651725503151141936983626806749388622187031556419887936722470360994221337194901754862412774163304941393278757864031750977575255971948474721061571631382808988757104723166468816456796162914527693146850561087963888045962052352472758559306777573858772287711288652554447054541130355100390611256925210722026702872973528854058202346462841784373554290324983238757622634694040173011881198868954823739673820408986058444376437434975986352856889897768567985474606933940190965245798333524103114481032330970308988269132002515497302975536156794213148827956930730132692862984673012158735703679594875488394426395570932366381026032373020947464322220931536791910679957563734522068016391985244718298048234719135197706377395425511052055260855551328906037228871167564802416255176548438468093598203212801684697152133234207310897273350703944955994942920734149162433185774670341787157244696186585728696668245886529914137335589267880310625769923234323676897285977767680495674456876425713694750473785650747653947090451195513017033363461369222225181139405687323875591907996577392247497586891754449859684002644679402448856988592591416827647575900034293222430128263263109153735957637790201228148897054584820137748848891007119281144842595810513708081078950373112922283168584910016669039456399145927375578276965559185504094258629969708507951640632024187300169569881114996073336632242282117429209576854087378075176068823413364966745581690065940954358970429375850950583038139199807371122138020423639763675455025382546944238539882915547440075407388246684625192104758395487446147888492841609582299820907870259660660397971235747815354689547210435710847946804450942596247788908605803091729767721977110130776051153363974650785532136387747668786507052326645404768401057299012181696903258569954731707357311498544505176161519704718594883075904859345085019036089950434103181257793227243716257807106112069403908425452088766771979239703155481985206329030960320427106994766075712672491404337483276526505618205233125007117370568700467964518574798819692885119809198384512865746937205564878670748020178887598929393549211856411501484644053497906658230776026477807528639971710264082993468830731256687495856226429514136917569129662223079636389056429008215095475161479338906992622834284684453126081297624883445677706093162067122211955178080315327967803586221225352758199607082550740536791934129053442766512030671849797731304777153302739232445813054004944744694810573830111661262044859599319973140724626768010230457043366609982376467714942595869096897023118260782109757038897944465685043655707228184040781922012329746917564032689401481489173458810488520068942955046804207342409085025413909026135198677323837161196083360992544427363926755766310048406365083256209578160618067565345257811765111645097556610201114621401188546198918018905487115879426066128989144712896754605392820704936657925837171952526169206323253220048737492025345556299122293847014469694296202081958141208560216506871279555577006399044656068481952206231301288091248079195894434066410502326966613671364678378302263265758641242584832400192113616279641576535453528199503628862444226935376104184378397406347112812251739678483415434681107827847602624821405163152312029943278616397579657211418881093461003018699157135870850618378075339691362021729597533617587130284190014358123203890698595110189951077753742620584712132864395721358999653746494407334037367294267695525850150153114186668897772972055034030716295139279930737214795674217558689779754544875939651489291167714228409147312485020464244997435472636534567099888248668824333774969656528703459991212656165753671062532098303806237422258300161184223370648854857057349631768844373490512969418170174648076020609916430744990982486641351077380993596788792121810860462526130560765260208800840531820123835681307951016827746981594213446364555372946439932539092246182065517367775104647366129607806033939526912041793648247987639497992687657541375372212655758510184231634073362875724231805213112693256703276273888274445870932680230912493532695866292458091555697910999284360072121701302625725901329921465832785275215111470420474015720399245375669937445095825789704073724907658263237063454829280893167187805211269313317469410661534357540466747362175536048001840435120660878568175622269853737263441608642976420136574325462764963400828928586903684651820538422109725189864390093334078970780580921037809424354469375467415809534834660025123940679397715926022389683740779562625453487764402718973588237644210452392062083122682575787792872317293160691731936975141105023827948046300570783681409841267129290532877641139146539299759955549006409627322494510921742424663598451865618589577148734279324963546799182729618870121248243778136744378309236503001271524059207443958115125800991124100877287911801932406148803594428782631406493908136106067959830887042403023647886513998827449053860167810908659917923276817620581541680640612587715964753576824453129522680279207181199702337385308666935826831106433684676848618808510591295317546861663137832773531772283594359923544996314912964436485681019153487541652113778740095880956297435378691447247472295178414648246544736453460248608758342487664035870583329090928231966968566644677411076073073261270974725034933201723890437273861618860703296230091352560732814282390038502069827538005450917234753820063950903488534122391333996320858530323134736872681537987252020236390774721127286548523491727468674077188375545915776586601792539894545281733552977443263743551241235690490392259797817210823206786384829226566659681611036552124061260247104963865991575746212187937152692835155567669674831798944817750824510164467720828502069668559094475796951561167076417742779221900886215545718357028499827634646007109843803704498805367055555006455041610635600647858184471360952195341313412180249075220274226202913133266330031125790021041205234127782613904888886903458764282265473614392282605381430336810047714567082017019810242559936549427028281409313118691070080172372497672656178588532741561514965451489120920261608070122783516260791446108238320879786141912750544200368700899722299541951865879083606149298034443550656085606827336677954057340801965016162008704756805822650199761149246792710500894274593548513399724187292371959801315500299379282724006998283324514089878844290715614126832914026127924542747077610796410618865176162800425602211765425792586007339695922930821988226850969131198306074574336589632737813004989182594017034400091055668591376257914453164541041201835589243991624491621674536543263439174385559156620187594502718220370124876525796717223737882185573649848762996707383164460801997824713225860358254043423526026820011460967779280390867448322491664885113711100869917660703104323598044563894832746885345777613172571768385067268223012779059864383408869511487265347883488523372871356904314930434860673067486669085969947064409411562720070953782839294400800176233518029737492767606751623052530703156914654800268447500663722283465303799621502330717412351109196202672369687653452788417981224638337781113268861900054600710564097515473125225887832141364523972656112432400931953065400339353797829451830122127252251696970600354564863065821303985824284891281129913224476167536224033540717682543657872443578511187283277108317493796227229048055873952723717985586751708797499082906646443995781809698760463905542473399450637501399851712803089594613230794960078381993674639178336340532595062327069840118385265158160010154964876920050202127204983471229715107187864297010133135514430788812101435386665690015833921623424568303248082584508393842714938300226403447703855247346888996741396304466976665728035229102786180639631187846744300019494548683941625121034291223410235233603746569287301449960043414654819270263418421843926985117942027597104374469020460250903774063566556572349388052310526286273676750383164172908956416333230059262300655205010119097370219775289812838295824832089631974949327717783478848942418512787857289201101805817173925580162400260468870000964762558612398475156132733796085725763093166935851684023167008831749071695681639973728191675806844821080420996329493577917764589236778783506996587805684262162093978835488734756192493020990675793427545819723014055119754375902941756090239432938871836401734429257535022139189711236487991669595572750702763117363540836453317891711755510998807987914724606423602518085363717330832199327297282690794866617970380327252417536898900732232112069001064318961593270201589700757562993607102952952263897014907370213163567808495998815323046340310748618408412699671558822284304160321387641074123603562723136218197289399106968274862087118127648287133593973904333975159021890774989253338860356673670778838037375193746345695046616093536015055365046270608075923797792990497752505601191909672989179997687556691728232138868566958683381028009158112524209098103675830634754737102957721234226886162460201173591949058648359343101846195507858328873900401743697624502686599607211111387038193994494240008210055024671684412256083527521504726044882017174613466394306202440624235599854441471335212216257852431113474863883801746714851414845334538616469385121942018050975874094976274965104950471039134967486877874822283696290796831392133139616525784084013334511084893585415244416034427674703475413835601297649275874372181117248501459674889552325222527069410371687342962440133437943705598555617068150947869966388918089877952299849233071093110699562261449629114079072314189948292110418716568237681948586746310081034778013269298997155144511689980860507391142165860733021352193537663785569289596719116769620287453182432384936410337869930315834453154785820371308489047769617716883067200413026740607150069162800106071979937424171844626057718063079525167007625706437396415744631540334344186609004093606432723654945263512076523565037984542521416788434579648375624213373309597455131992934906734954490232454291470092832754357610920397800167958032384904175010012207632477509381639717029495214022323946763810410445931235149342158775665790367599447693290976023426343547267110699997872667812591072204135185254500441634583748023073316953992018516593733270896868644928921246871950817247287314591518395907120043475772044836515903298456622281778595047899336183079395724037096084143107010409870615785022883992128721630857005633399714708008821935321804426366630773177116667367484761680541800274150632971055493028280381442410605971485580354012549944243078933205707572083011249232080506486336453588773373913438033396520153225378798545295217367914241355646445441941151419602194566507258471589407925927919367824175659514925313230409005909551362978696607874872395473512913709323555193667516717151916522053854335829677658608775838558786491769476676513244150305831101683387408482372200424377841647814284346442796937101992384243946742200621218995683312666539317069197596313099370553051669142055249824533724886133265638873618756240926265967984922001820506615037781669514572714141726180799660029672132227051918979876957575451684665296112526425270879557145650904795515214243555491466160445116974333257774877974376046210341630545370175461598394057934827761847380454137384466309807569273275546554855494246675928070475103201502228412018898853829527690210601582212579459535818187355870196876161203892118009379770504936049490774217282402243069439115611246606943579469807659213994459670965904483887206989385746449486200850520918185357625517935696469921604431976587571099817111515229351628151034237297065807757421161167043389675703578628269993223962026375066060045644251463175984590896885492977216131060711920577691567107706630858418874663277407741089426968847321441050260017207960137578588832603804831026665478950144238564292060097473028605495462641696417655499539992256103195364335184378680844359843506881290547408546572132514287520274100714042695011075723088403834266926898738787080928609806482923967939429466423130074468323536096006298587169906787600401302292979146589711920855209014860173926640069179426846116230164080198759543207114929117286695209054293646575102652791806753950783198855074545142696662873434545438072851759242293728721265571019990873427118961032257182524942689373763877755888816233560646546612079081492282942692218828811570583862362207887087504655926041708667614712386984030532117114449648818139902929661738044231947607788648731379875868616183934849289228867654978866959401105342618280755066325957284140886787296508439877167376160791406760630716190570163857460275512129826531438410871814241236405363734740845095628168663490207036159200060930482618292718909951491629656445315559080902277264763510385300350417665562490009331236003925738923351185210845816908884835628445241025148863708807351350759903206528719953956547599533618940446215434657393709286869064539861443997587263861092685858733414152907594989659062620537824932451202959046300730461681128012645728936417130828846737045837793358341311692115769752840272747492993118201007479870874446832174070528611864081340077225892287002695059997605406153969198491214150791177411012531933060127188223941922458100173061983840047868172988235375751456451723678211579140603177789943249889855799606587419088864222270177276924456042226679377756026326407084067967913216733126597409076528391795578619530647594207445547608558378846426075225165831249819166717575561878293623772349367324188223576227463806779153986184514461533969868744784465445108345149049712628591270349458502020828018274663585166151252866700354316761791862000156600928061485606181158989750868057308407092617892509077553669749215086865810247430683639016580724352228631402917523467463746734579575528753531476599799088555224335615432617837025890366355083820858402396826410494887534593707978041116119046638098450475460332637389181760160927336641117098684455000381971985662721068994726900884784237366076415677942829263735630924238137215115585071815138248453649455752441739547779934002024690987470716455957261642640855497005210460046709052095964736826077083922507973248034218324296375280136896773651662102241177617341546272810849691570399037207495762795896333006771732683897547193945364875167903807970164838036837201846981810141288475781254055641366302662878935878956829059718524241240815875198132260687776689221281281610245897446353233828616467749618685008257464110266634484875583945579416435285210435732521928095415558263897766454793605293460227744073850747070623596564620956505536128203855797780988112457255254459478782656824562464685701363390448902451424942744482410532488542177076361488544010230679991127826589986040419586036144779029417114069701249059583644359753470091229743410665821540583043556189654202292635327152900271851748964523513579595156660085581922323463686124721864456361502197040058488887152859876893749147639893292267846655050308014259907897545596330577056779294553986267698985907014587174393573453739361147032961485783238532554495741368283719506594957234259963526272819609012717452373821040234009824155457197800504859592896059761845974093701748377105672164967615594806658730236591489326026585122476264293527797607242692834923131475394475881183720378049623166892718142003495114329212304835044085064900830800142431847844573302142377200245198842975728209024820089603568522350742846709579318565733142892088197796183189287118427432859663189443292661916221045418885899117215859062447126785784325702385142175308719411978774586327380888823901253388729519973287408451287703151167720644162118073722706096980458703666585577320691666086844989061433323815632821022762319398854224372644799987048812301972279310477652223139733677044092833830515563896406701015577218574253935766611569420837074760970476109176007062217903769134653421560096899057524558622924419334113539876296487483232066237270406670032133531790943462067204978990718023417513358464454037509403629255660526726412001299001095094656856626565915004516996312398553021496778428654972047418694924267308680185345873034437213972116484192954145408012734233421831000020763973013227676939353039942258297747495816891109679174549325766633417857219017491605048103305466243495401586208815537470893702763140465624596320410769054314546598460066713885377564933177180174124340992782509348156738507229842091965583346266093604441748671590232411050097239231841618648381634497724926883689289171355324279894939544116416703904900863797347571117531177423691770690406400234745854198349827926176724134690275349116096918786257601535708475226345293376999857165727999917059322336039773546037557860857538267718563001551186891872578021441402164215010986623702433878221670964227787629869292925769620199684906958432702550829939029232166387039575749852868214478999607799650887664807048460792663618125854007755599877563725750411314364660089916784583221006867482613297291528930509622740500769903118044480237946777812263880060655965831536350735563059864875967787742320046086927326980522119083526313885455714882193857491202849937257169340384216270305194854359981294789522608308986276090167895974653441956486176557481181851457499892802888635149578032426215716840102631635044720966558095178881205393870254333595946248366403293009879508119157173861465904462882810453445562620497698811328315296796402456954443562700781941637578195189421938364886183500131182791078832199189713573516962726464184636045847003537738551237687750619759168160691839451552618122573331790759368764337248167287997419013927240253946022143806430907856711091566509455806749735981566666139822241268797236559484704310480402929115783428379522521258256917290220622644608493192887111579792193493100042501718549349955537694075296073280309233288260121715870376573704882571620435226438093331930104538579062209439682649505986806168796371634102482643216483896107880621408375031650201636122518368859740396494652125637476440360509640512783376288908069797540946010861105508550926656324833442451849049237601908278153321206801203265510551996903172111428999977691624780000872487797314660231653264494243495131197631121962385927863188575179317648770244309082895215558884624602389503417637114773039868867791085573477365940865317830901001081964160321264696113719710248591415898436481369924990793949235118382221388750258138352012582772532594735556193958021360349371775533180319296870549610079053578310137083909255964385237985014589242739735307411725933250222326984410485076505166296115442313403959409414896548486677735315442664194667389386688566515427971334286749270706773000703675126705986338173723991051419638601869486710582471191175909848109758278916271740525100963915940459562078472604739047649595807618526291472692387335534794102808801119803222408514887770560718763530035005239678060668290328961256129640024787164386040752515216056620143501813437004495188509153027680910379998221165165053598764188865256599614927143990954262246793094481539958250879375198870240773587205647243747628072959159415657240415029898867329931797693373220039308304656018721858158931283536035729338516891714101010468528067221804880106605345482664563834775762046945266484862659493704659286935795523331228695374192832935499500500252828609640431357622354017014516156236930034881249148702765718736136863148368720081420734695828753335177801819621939182745294509425301183201494839946291104220539788955746546950997407839504208713725505538987530610950008672837066018149998836408255568072532698916287659142518927849014222984253241921368050797528246206612358160207126285677006873146769837482809971360320565058581102582923847722400309753015605163935412157410207853216794866156455235501810679374470532767365078508955494562491851659628367603248473345604986711325332244616434639080295662674311739937190839801745283989685818203092428308704463357021192190616180486623910271506677030105130265646219307894211273939254241212968056290903941039107606647044184225479045412094454160261632015863287983743154668723284255316217162956034919268043635035304015137876289693787945902056159756687456631805871133283168450026693453394519984758499444505531423059382919335306702352709565145078576284488223781802947298259262952864032009661049512705250056758935830273679781728753701509345954550889046098789990491473775000751876164143928017009757826702601252665802608561879712063630840396217577300253048538404732313195524366208033536158553267419256211645481260360357651396635991930815260863067744379721567507041387203400939025933288494238348764581568688371523054198858136721370851047814182924516850167937565900875068608528585854911408021265836861628506311734987357543367842076652233811158831293744089140957652132216309293099053418245865801609688023527808109482193579024917881206895223265587248348763296103754314548506984197355976666520643618428980484644146990765284805767221096193453139345180599148418266570752416095121975545288448901502816055527938695915802655100736004439446174249198358312999876704568792228120430076947981199004137967501514686021895533775495921054108782899695477456937087622238845498733528474695322419747258835640639669425798271435692336519330852935242714825562865796718745114858621262775271459422103277591351825613085581874733536783501579536656935967031154539459128287911133602946519064037036845099155858970960905274093062830018115939838425161412791625652900843095423432201359903993419439349196718588972937818552571094829307763125985911597357018038863277371469302327051164447992987145520672306254174629967738071603392780197860103987793792276161904402167164465826240149466847645901032989891623949473973476037787150908760549720175584676722648844244200072065904977018628054684390434109951957942011879267789285058350533699706578473534708141959437283269800701506223535086046528660885484710749671235513845210886024619421042564897480391531302842393292341736329098221082728175118782355607290779794682592437825133896898654367004761079305788354641711141037465937757613100120530775090663921491588606509368020154308788962424801966783468098797756504111826799978229610078179812191968315663130830239318014293697394852414164404799020065712213571415442366063703201412190033343385765464333202882009651409821230621907394738812245201853579561052621116849605613128559147057870739772345607283633433729782690654345132854869119370340792378466072113167035197714348353041364203571936703651132207789629042723115091150864996831925528224946555653318669109874475544254334627013781324586813613387542748408898536746227706112640966728586500158362511675567987529976223459257964770842063400397850588456887537703853804848318586907392257184565310600370573499308535714177192034148084375397095702795804709763955411743046393994469460671938137652532441527522288172505172289803156770112431714980071465725411760171484005207095259639069814190541471438326092045487161271059161292338484780242872530205512752470317323258247568442078015056301606762212281205171451290004000493055617828511943372206346138850099184119566670755602521779412776392439436838007248541340604894072906703065945390683559856657758920640181676148561563390580946575601085443543996102477311140675765505329680769695235751154102179510457855173132838070936665765020383541752276367568318001947508099466495778867369094418115176158344045730283374313986447952955722139882915110060641286365024916576730535644844344560518089200951894064002108809592166651442819948067209141506074720950333646570237873528565867821064048161407973168170763559234490223621015944372497335840911698568799283821495893542454965940686785614558790478061062020321482097692249113771385793367872312203933835801866017709058670642576106812592597533586875710749411782597991698956530873755615859909857035451283233671492398007097769805304380427749894047043313903109112823221447824729932706644120710129750298705248534388664397992728779127319514652736498958717834744190773006065471378006133005700427984250251537700598508111474963501385828717999191671266431903360257373074447531518681015437571452463201461784757112732434941669472256799215589689484719805398257379801558379020527629481128852242585153677191345721825914779176363696647106100081081403889203095528141229990367990270494906614398535028486327172453083597744012028577165231169583240496168563592053058564205591695278966418238324283014880325351248777700720484279973166010280304884907565717190320637032040383827412734411886677127236419741954983408737796945771462036343654156508936616541654360588756562241924520007281262700156386476309946772632450976201196475151448164010970420334104159362926241381657384270483044833688563500262546587017573222587099617388304554106240750763960260766788321992686464856312958760843397285583104134486177048452600072875983513755522467728880566787011005945682561002854274797189541597416419320202775412583494999607451498531184865735137109649766950062934861331593796265049166694431776372262175495113203616860569382664571367259627194964144809848227463095875411802107593179085396122803806803936945238340477331726108842108111224199132242150480092534786742989740069382084569206139804806343527717476966614225187519931134730560440942645709262879324391347948040223944622752192707364235448869162836321822569653878823624844438786155002924105365290467475315911167898863855524992855583624674688847864772370800372497064790007422283410929916253143481481557263529856095222342979094589323582236679017043270363989433552837770596909389689258578438818558047975412129596359495455093542646224318208886416088608616040094458039431276474006780520981056989470657598763740141681266674047389567713417391762867567603017142006038739423673462949972272930174208562647458548980575491280105507757971084031055768518559578111106749735149752162793798718322107368769977778896838259047519326641520457910274448356954463214012293981045708669031683082352015256466735745151476577012986475397671688258157415806482079161075526375278119709736901298384436687670833596155317314870233679013422636508054172142830213132648928256830141710061668714720968202668326651572813638823461180764001158099662320098984021353710207671127532581054867023089486976599760203056064314492457288369577603589944995402856655290074489969124854633952480076810002822659766669922557811793866209049955999833416154309065926200102846249356370607032550717866884088695315879462538576453017031530700894546380934154916592507136600010239055175756252060843661982996553614899647363091939274785428254254987879265035194270232040813610221309282918055174730679634833997717128610194030541180959291661143840072816571246046638001333182450846086099295722013759402397964381899575404453297342335118307976897107281094859372383932632034649509083387144275920931721710247175606521182010859943162478401662650278769907512254143250471934000604489700842402881427187838209099837941708506342770577666597959214747110470494459121352232294933026552782376954048475459850137741525790029160887283802878185377738435535341449733306939891542101829829495171775634298416340556301082574193719674373701752854910615374624804159040452455525378344084516822950259563743449868169795489833974301239032108316687423711323617880813059480564646594963358057252959271486807310979649078787752643517109311837819285979263598486589801202772743092222085021920244729018588386646174643240255072651866294547389889310366566669424141615682569117125265579691563179700583979350895885632628016045982376103547261238475739391456908256873719673666319709146666946432159768097291120935839097299379405015976432486952289609829780909334526318847249240775301766878845543692305135062163750423421601502769381382181274949751114299391839986372680317009060728003632005047500721836811387842394786050447761503249697340094338323782250518299103221431992560109338489872844786782758656841575520382687784158205278774905889526384071441315212816169713365924975212592380498461887880170848993033395361547261956827889540254923444508328011613410566550796157168529548727781528989709340000572486623743474161089623619721935414961105182767311018589901917209237155476346419761877077416036329549498637989973443328780748062545412104362392566394758957244064820335195324953797532779568027630833648406283511333969482305378058866234397790551822412116731262117270369584004814925865356045906035799471266387461837949117016961112948057247212304685624170397395403328576092067649991987464550413551404853621368198223232658779731830889430450094776654223030978474540065980020178009079397099516980179812012786009433982009012781703634058381819076151859537712212318473244255378182359099084756579351258589129585476480138179015364977422008379481617518553962807081033631089109643045163692470826374422888622240570903663661975010266348070711247508774076869277015356966569179791142460366017221983387639545285319588829446828790951389279703981689284096297844372240683792411188010435428573638465620682651438963776974285210821451151077364352192613175581138005295352961626273777462469487707707735433681599407163388401803567202295003406770603048146809878942884303975411123812814317426759442401440704697161887733133902429250276955345381517286087471550188865445825580597023848137857970960507569368961854999876655280343226829520337698596211764262840228683292539397319930103123092464457105128079389337501756408723040543955225532557178959906224651848229022435709795200312116467289304113030522713618553909529062094872399945680057409310728775159665983389693835358900598502287701726122882472970395381556751606050827014408711890225912688550670078243999890469756168904606092496592417588169753159741440890585286335052455022214094058017929523905818691963033654882345460680492552735804394632449709251864666756417853307500047446655023135261534320385977168948037950966679983168727740370255766492049103729281003997676426566301973856672218168433748428856362918019004452670485243120367570723302562232997702135420160080753709884658999813608027233371420863192113293058495481968649499796365962210077097548296994468081165026254063376711080694422985031191332758540960646097947403427391005809893561563212469795557541624040670769242810693951341536854937620553957553219334268855111499283542132189953788504366426873490002394023020071903805350716058258052412499897030589756970406288739930534831611719245737574425145868140820036213808435590222780081203368819390828871413637714012940190945119995064897976350749498405257266393941772757854537077446086097512229316895834361896947978168547094600215645140409921841081136342681120228636080042033004233576780631425533502231871815336274980421738904048548001206325791565319457001268049708542729455956008190313910385723838300385036245517241211691140302980215698611355788594720835628236608893159343993614418179085417803114338031470906158065941109012282058151069667873074690983107721994019680467557801178861542789225420528908567301668339247163516873775395556572401989918113481279060326220540086886972337836969152452455554934284657429834422401716288275162746567180571639269229169773611196536086569575669276487494498235028900302717925287081923324059096370694522222553233599428106064791484182381227827114738984481468635803631384606179187045450543721862569265831138987541326936565194475487207932839973210520043556334123378563258091263512476475125158701207449938058608765302047600080705009233879741345996133782270145953152049204747201161708082621148596555849711223673709966678591672449671060914894361249962111107681009804408899547828490246349846803560689471205597786068355763000553161627498274799093724085016425047807486060866273221080983858293750939553401840863322199440287995844776918089259852147957985675564686407919151249820740865469973116443609261095206652071108575590623409777363546490702651121850097413950244466297151327408295958494761665442748694971374196380562737773819210016346181195290302692209950810617049172655556457626878860527903120819355682886799409057281673609831616799149368711940010169530947635965221825438035119012661739123899218304104265889702984215682508914422066997706359039924202994056408549082425947847660402339987796141468773172615210068943242334254706774262827224144506388632299234236033960064987972804553347852583454693568768731025028557648240793827062884572506762617384517121116585621159754830953170138164596241188331155331599955874042217322903336434380437038341336419413857790241483634636364069454132379605328929502525986237761587767881721904502823165271866536610663475405380853516936275883150275567272059452385965060731843156942825481230840281497823561787795219185347616374704874817351407702326884047865054295866442650187837277146878415791014138242882125918801849001674333002235017339165100586627365116645670251821738129733575151078995988979143191385690479161118969658585668340784719866503449442155382143165316267116430933194693648350835476245050269640234930296237546513811684626797256997632549331530850366814999306413881306875849111424708694985264340779169054929574291759769513730003273445711580019107435806272683639500431688352968891277206095720089642026735383163219471154341358053335762050738288337122850930671464155309014891476492711376603880722879566389560573945510033161333578140893275635245153723275275398092456742434623655489821201616259449444044974369052210795751726926428268724201800246911001279729011513448671755109827739086181284831146325198880552289849089451621699856173018435605426136819817050097960157901220489149112258668945339487599237564502480549725202357419114865493307695887034339422252172361214099082618029183643492107063146630438372904155028555386925205682055158109192287600498746799812146395230834439557440507996737403262015821140444538462009308275131083477230535910106014000780938829576730174355243010217393850573796031430775489055987238742646624720178181955500992747370189329790419379151108490086937801358140505605324622867547367662450194655662938883314597810684118034685847502895049697629427063295367494654811038213708787718534852106849055758211715580025767055933137353039067456688226549948409327175281159511616459477364309884208342224383961211923670362560170265946214107992643948085264141160912502603371025668233740051709581377494137235601952427572164633690037754045299753367307525129932471907623024871948520711176968586560158191222567669899588997626386546355596087182113704273650576350783352479909049989569330334732167850368705101196339578059391331014590773697831426706957736511037133924152367191683022206361415951242909117094358835077825453993837803735714503997539027330142352307847169321236591334749046684681596221155163462307207164024776681641144527493800583022872870073621596422613426851373762569299476984118836914998621005777352391749251128033906261255152543692146520810646501142513619667125731221481179613016101032755312297055603429707338245197759003779081405950242053382072258630795749344285099968862510394217362116901626290328999604438838262910446421019601398606653021449705577070639302716155469709417833697982701441318574980512891348345867255895778419586622666060118586572874634417004957093852252710098604908886494559157693065407927944303855231639639200427223089425046565070627784401283125744967493897089439845284636639117307215247274426776414634414245592677789296662642684318997083722415759573825470507040853987196838910265295263984945226068024372825413197277180024628002719216873228835427735828533439269045499671261325802474763623085365736530436767657507578191216319238365414163606880427107656459858873834975936693464648316881629378087361160093674472261132693077291418783529862907286493683198766438821341550980970580717677066343576732146165890411571669408608860649116907981336338822660305661524026147008170001049041628662087296146340955461303435541615407978769942859662052317295300252661253985600095211025787348640234203642247655992989058615098891190315636840517386157884409411769787144011216560667040316908511462427795031436763695877999702086567933425186018742789760691860240108626968938111095868351007894090226997090828017264668325582720296058084215982643925680899199309730734272785551805898953539930930694525597779075607008923063726235284686742614795849759578988278100990695876706997059605282428703196098881080552788109560402998301209958421354548640275866483669696702396094220688851033291854968751636909095658145135928818655755969834284917010712634333282555589267162212579489599399106757646691312981026966480255677433377178732371969798718917420557145016328738837964568263080271807689034761741476817762969166274672295295343244315068677448145458776762910144757580009655817689525774212211026058630750188029968686389550986624291488946623095679407135045767930692991699405605403703038681013581315836233216793638702427515857227101699827802222571210964330095726725701270349822658261721311970795763663700466795923935595010104983652981358919054648065862790349873282573554084626086698055803885895575447748702941970355911189515504639249389370710289310826969699809149234769583780675165424258911515697656031810885601907469627526624328432324833757992710806692168911351911176905680260078799219058322597368676048638260868434280857349123737941927288423530808127227264334801477901593032724114884063478125798835738373952736705864138443086697249864543666909058065825483413038257920131002712169750782376189450296921638895748357004795699713354542419228383535891322520772889725809923705555329777087977031891384502409561359552864285595748804547449747619167107713598987366549082773359220612071410619971092162353206086833719323296962469203383589744304971397052929465162765325583541575041442689633690257296509131524321413348802834675958395684349699445814397992412866868271892162539446494272083945822969618070858729203156799370735106817889377605486913220405052717571371388620580685636640638322843669016870141684676205976380054285677158561323906036874711187456814581198472928203063952202726576915258452260138105515934130938198701320708128692250776576052409807124862467191619701955805435258837266250123639935595831050431161414053031887953246147124330392024832717204282766225847338931632990119426138578372664693035307793103718454160252376683303881298414042939204916652196007667568296903335353508948011249729571461180628328568174782768324241217617434702514829868618265403648058907085657339913919626716322260496090536406408425693392571034145129831898407303766339883934772288666222078076019110080831892887223580325424495680634259789424687807488442008741820734491176661151545208952621195313955356000551069913803197018903038260125979800563421328526682154225536627410345167494308604039023965753919123896271734001841756063122636515860858213660999627275564827764094514617977917240056186926126435143238147486167948837026530851094604488472161665673192759844089827805018885211923926058303979605134422943628074589956794907333284401866918395298417275907793433384807544771705881958450399535305249295874566104825582137558343533369617248161336561483051422378694996860776443539123384690591699972630235887297794995729317741414862985017199780511029645819889406956408013205113685710568249017754474151395362474712111675804654188931579308872694934516256582140593578930677220132328855911023946720317560463225157298134365247286238725115809081931876226869669447653018225883003964293360347789199224906767351727444709381027950336394754965723882467936586318317541165034842258104545858295506480585833949909619584029118957271364767231991684322737490173143634014668072534802918603912577873831996905285217851512805589556105017955537498104730585514881361063501798226503530985079526015056438094324256899919856996486522202850482464373700511188707367895513421638096016727040404908713566798800635508501009093773997437438988881418076524594070550760576403289923870851541784004156149334441141395575986030385724589231352776142829318570407036911232671251724602503618690372653158541035430742294560243485739358242284792405696298204568679600956368902512235328636485730848617484004388990800110183429338075341433142098553405810863531691411850830450550894677848102399790995739412299248018807701437871432025785880364955084547053334572050885634138538873843714705010074567836148843814468281001282311229391114218501402083804152418227577248583880019604070620848519299010655396010903509181700363232483210279987884498876041639229495678812009140037053937104814467106542332345096740078562104896045496144214105454281948599340077093909762827192465052184917240305907034002164411423062595498222316672039883198213332752386477633753564338041781447760702104533327608431727394456462267031670931548418283238566933629180062601441414398413279437064139435347574239984820043904710520878396751701603339535511698376262742690797334208754598059352589682256847728467053198446516693565438659957152968102419294252069422766044427689084447457975891804738176655464731815337626304539397371516091419002753774318130844510324720951607867981411124267548299372047972714151405169214866800730225180606388064610130606265660157153791889595686699025471259553706670432597988143732065436741253571745352804459772696822412489972448145134304690928435770170465792452890114347368926951252724368319360777703740539599973936852130459165051966436995058028339065669376646338320406582517980280151427814835938393513071345529486933190039499630586119754528061077686525946849897102883137045835587211563087228971614566188921107006453778880405641645449655025659388338890604203416406855544210225857822636436745760387020954895755725717291774471151438893505736579423689286286109576452238523137818148357646878111338256206497724315738619939645796906330493953881879590106069711810033105727743905974907616402823524089286279034524266315852585925790504486769816018564730616270472758567579300331880804477981818018164542258304345630472924542205424091222313634451534107689475169108241483125667632162085560035077560138002050147696998526958557014397495134065638001917898212779091839390960014179090373713850383564970039076936144444881574356902569830015017310973253685717275704431617978265961816275863610987724656445788679769662255460918278745421725396297344693624488759876026178834477589871461318397331148625002958984763972455905528562453956439719874777104655855760694374256622663880055576926281478953420721480931305431038460857852387131713426894686549351758107414576519273248458333077268266330886103913658185565800610877592906318360985562597801867940648221986624082838934051972815267189681642243916079781999449516510826456069461275607355700277172978716861903005268062991108792426412931604457646480864544833839659568669552830969191842643213397924006407661426597469953268871079679615026993699252555886698202839515931318883250146002333649291398333491987207401915568389868328828292977535801006166150740609423405987284410957287388599659708060644264949477285753008013957111265845407554797564479749510848548471258526772199857128180347388024401243959394319906772949004954521281609722410611701219175592745895919538338640036390381346823700739827405290548632642152904882692267903175136523357741228235329584549385419912453845986310666648130669821479284274047771529321835698384245006708991717005699369217173695365090142764619846647398853790916312733503192093074275638356438343047265506630720319560585844642767485003711483074343549827812372811941846656736100207433886076770166156220946402243046854228813498176323396403506882279463744805219714071740017220088469022792717868746933143906680401501490226084478349577114822559894658941212335283971602714300230596036484794982704120481213979892273808909534563027266722864601657564429530901248891878114286193694028980210422156192158249374291199279240340579055592784109847342483191163074968004965826826905380739528282311900187753548752440802996897189203563821111640975754129748923199084645296723075835368088349156482473601952740652172891371010981084413521606356346449792192235475888835938644825178017931542372854980035759496575543948437120608212582030921201079462949964534196142149677644557982950394486947476012935592023960617587115584312446882089023440553778270825097274675891535887532990372156599499777686276235321935759598727152694637675801819043692511032276338598254484757269879690057449483067263825078345574054009438152042973754048410489612815814486646409399030164450366552766355388565214793214260882889989211519296293361105848008186195834254444452911856418259783106083032556759227460592670703295716282129803599143443732680904417151427904902958984595630509369997133478885374646731490118514348229590419542625630306562327445095727193490299224932988375769362841332297182271097136899509186177586606572104334061672129948510503004824450277372245178870846967231812487867571705587219927212108082716090629400099173657817727050775143980108534746617286024192559414197311364543323945415056977751584290743274297440532692726894877278914119633763237139024383585599513909356623281968627367680193194277328459933860576864470775964800946113945455188978783244141237867563204667855310919826245516763064633671592962060260673985403267817465072719140919158704916675650208167002956641431109560201888448285520028323534421207131470228022886045593708588832480624955153336427316453717080928147979912605055391389070756722855867083247259835728405881248043966016296733526991866378330359170629070201409563635232726774929340950433330739487532289238413829458920586847779778918420208692417161717799674014021074213803291517208126011390577845062395422743587713472352626448248672984030352465791277918162604280530951174951880782573455475214433580884251238182153008035110160423069582585756337055631577991286180375792585442551457436251444530891087452328019807819921873653129305471500420471207369878152955298030232672290675980750050010374591714471005090675653207886724787172130870752267392841135039208562127628079836339522761204039150094191385321082982925569861279685163325798331790069953062767373390696936487165519311813645089957461157110699728496480198581017407108523800112628432870919362645446462213621317265584342236258900759164744927853175894452353250309794194279482630974573167612205758425563311512206761527568293232362022635397024149699119963917922141808666033526845279013191963025043464181477769708088781870183349619347379538529995171589149148689445885861374386833128062552798432904627672938561806458529346101031908403899671972352865830397450214445663980122153861104738010773557159328268418912195961118874370977969803178358345220011470841592557166598291503942454459444354265892795088166030762739686423020390989283998034632118594397044568647419619869078874476530166267509358812748927210838760299883548566414655545369704314169738761848315030774825104266217698406241792307022099079815685564199153816443435816169057797574107989035052962091063706145221620475137133005022075080263494921249557334163739342715410653081994613117317106922657377156757208504937465925423702708987492641525441591513839795695990287625299651233032112561967782140579731481061804481234740958712858559027272708817351680126961281500231118787580505609992590508047746225903039949162267668426568294777398514989445698402278199709479200278598935557047587335239486531937172416530553061421766611945457843288445196835842763117231574246084091583457057898350814680320527100094813008881247709961535728667876258796013836670097910955286462703986749507491165148416122431372400491509090497307287023084700436408935731677298410626983867500576708620394765264807418193944561752214992727342888025060239755893254063631849777580014188088933733221605172118384010596834860008494780330563146232831238270408927523758775340010269679774976231883098905140591651344068666822855404270745776304307172866634958833087006530384795692168456053513154528516644376475088255961157298419051920094806788229009716768983616486989119614686415028923615707036000378083097146792583300582969775871236162016012696320225741621405538531710466481932564366813559446589264698900534629328158074375408648359393789201819909043501866861503441124706396129425826051113414193588597923846477464842541373453981041494870289353561953706367503732414370707846726709607874818146050920282407541703566266673120565518007080370249743987919966804021434765880258605837203467046031217258213949722376055920046713577595062814204053201527649685069965941244527873574560201705208639137317533629754143601597769451308970849643774800409734733867935381621783449976978321411020764529674723252522290009451027949893282639717285093653739231633778654732950577669322796187093987498478217644915037441705141795484959820048590376709096095178149304883254922601970028866881021961662919900172800871766363552153894901862058863864968118910292206835413445063134645064761924875945545737003392443105826754599557859257728942329641589793582774513575424815246979909884791312510649368488376781411647263536052739964570898074167372232115492253627037952336721802846691695083502410734177373870063745446790323941860057002639191315303592877672594499897421394406534806224350052473491010178971627816940260483486935515431000558160832587443717501309295876834186929138126647384890490200210092965041169469217575532223412361907292778801610279771386514136430128344717328911686172381617269988277172982015611969592046082758680541320585279125783037398477631947949363651981208524273178739272294349314810884095812240466330471265288709602752661315458634738451028306901343486771469673347646934714714825900280126832038589607388392014572790937706036110559198523546885386311168463540254694155300114399136940451514771830224312900540564899306058209164266716069679862449338906647320324009805396089877776092742885649108660166235199471664571970811193129060686544136547381116935095193278848203401660056441487230482248244736564457939966756732439150651136179073364710663219811689457501299295873324254764663517842341816378711800769897700009930851497289292348965088023487675218530953603795088226202901066110598066957447102474137942299150800334466634865305796236295808824395600834500226804467889067625264733465291085306625348640435382749262808213126883649968545073053842444122630941301040711650407979548210192063292958334380999899738998851083168866098869028114764747738079142669853839073686624268881620587814117472949440820236394198692060353917745368065132331501037708877811274215384976833634720468405437498474694558653496085033012839640179575608987642676564911010718595241198592806301871759838576898718253815566521805701020526396440249228713691550339525555145681153779904239648806226188987057021788684181400285107901507825208233883001374461604255618188010711887985907140877206766647085076503585798621913846537037457586105450500293241854579095433203865192377553731997628451481986537394512115631621327071240882043576108396242780080561206391434007084648294054390254110525343511288997968058790540886227679569894706861251648964751604592362760523926185886452560612081097435661477946755824969490613952154050474714850022585842515512649654476076682909062718192787692006961684235578606956478583433323922211184117087187356084754390091441951317640678440116666615264476914990836755528957261065172881690117147089850472424725376773755009156762900062037436538259312841016937438283967733523875200420717815598820149868538467664254638592300873232014526140643694305851336219130929324238650494842828264301192229649390389146601268690557013607392324049612432039594466565040570988244449933127297445701378855525460370290981615638305522841998356307393416941420240238368716191406617944087792800932424307676941344265790358216389484172942977515001081131830934917202469102238749664763020668444516241594024515456060682535264563095631646719866398082719855335734746070820726860530564220908701271843838300202397090531382001842411071871372932593298472928158317232141682370988050026031408408347481397823164392508155897754850226283792212958472359569007424512305999551837340393630493964160969144003853260456391648916272220413006486218265308760276507492143729679735170809732302478942431385924777411955394620045403506441387216681352201566647073385091541581102022585764089116122109708931705902224726349541986388038813079333460995634572830777484463171520355326030634735869914965270524362681065794498497746722016532353201135119243758197055033899983415863833283029229986199672067101439118292257618237904282159690585812011726727765174980938815136666720665539332089537315131922404995307132414312842973143911628750461409521410728956631579595626979609847968509081668440070325256025869209078417326405300528916184004467617569192882910074038862033277599697247265473185880841884954333899158552783984826106037300816252231177148243402598004756572583005085855688240359121370770406313734494744961127943702900152662625541202283306855361699644606040315915507073935945335889332197812795136762520078692393054992554090816111644183338924626469662993576114461143170990724699132410149692679461500967286991014459255246610349920315563381208274862953966748211727343418061541596090862258877663238965165192464106653821209588105510013302857086539902294546334056640538622258471201839965350810802380841915282007832775460400149142922846496826380905062544715458808506421482053848533772105931628832492840727823487471219075738224506642260950248499253472281051828256221534531913755074910941509151558605438835901745705576975709262155326283501449658208117114963448340587613902825642453157514861371299225023968807489167313779965027442263808443258671604481153067743458808701998221585377506878316963289639270732655697557603322782100376534256596113474435659400378421082203557158096945808121947369668536486729768548104382175894915659138151403621301480545614170879235772696592601532765143781994790582094681172313960863761189025161178512895170517681927022591387527255449347456453130922691945352494215581850294155960082298548570546415560757060479223374344806697644437827108517393817419741697713565582767051441855626627542817344930134431013629454389130067119377002143727296356866385284681840459604929528712479286008768850304043845642004029716600086083986735436510639872547754488145184434432514049507149070027753418788504690309242275530020502185321241178506110084910588132926252498046566142433129615703850668024458145059237983823035705115801420673757864079552126339309079187360139036400204935799038842116907804161566677306071704043108683236851329567668631247240760262893791800012145756634361463042077411648581425082852214825364717340970074303757013639375403333376590698866432541491118270142415440007226066913980654710357890283976707018287255822257852566387175308991387291295705062642824038682485780230173960166631195956264931766910040268146742957068371500388681101774970411568439831947010730910604789380132830027693540987038925840995847983680551972693103269012059642931651909623363626895454316964902452595155768294833830564037424319586594731730104765937888760155228396835570561087581441419696319864920980378663815373754066322557220120944580151561897770028953233110349354884643906238165690286232648598707447608346599112444483320017140742258874780326390558233815660391679079911554767127798875326566512883647744713367410023622435659074208726901006214279925201772508645287275043030204055418080916321161028943529641251294111196610185032331653863354571072314396963649229996031699691077190282267974392108993735740171595189884821448451930425486883132611713718434770669715827614476167373703658602644197062551597728570206354731829820528867454650965980478634808524933691418658605257844645714363421516150647210085429803218599923764588428213405373753300860570766972753094841718838522165719797454773270725206504605244056212183589215031179853486704304064904625591831562890494472448663517688564740517399807836596584137986674553833614675272861156460319438573161865637775122283002356825568993927893604932878011685152798095615448208600533092199523503707012738120362121359668963901596115912921366355993488827380832293625460295057817794976361040172539211321620321848278107393727580701635265753049080322644060551050754862918891919949056229461912783511584316498916113066246317581519041212191516109018244103919284646956941658385346135700076375739263508189026781980951558252735273013840000672713573362121095706182443291744806101608840780022478337895797928664210350540302029719933992470412453666762151966184065937947164208074614538975618468452100541950018992451152156984285203753220266751422144165976859296338018716337616204642733825198076788184942872099909548890626788361290793750458599093875527168689664174174873855276027434103251132973979471905117682772916469460806598617220652604236246012201511415615323832937855973396609794777065186473469333602343086172894553490481032671974111080988013382278677917808215303067471381681588804544711891066824127085725778369250188072058901949306525388910133184915824896556988821123287350754448149201819847396994067283515690596734575455245740664270756854484090287719916548613483713999430167927005166673044768476669548374235412259508368324517297929095384145725242540926435321662486650758335021893243352357328726808872882686741315753145867743823183264434731268077225838465382487938819393383063809926471765752289525615994773197481289465012028447882968652322278569884862938776168256034486115922284288097417536143575261274238809819090207772461540456971758264335726401889036894071898510843563793682097245572742144387829247844251405001751034971425834530174591214596539932245609011726302591699946181292273539566677203201816223105725211873502894531887802629200320514040239797307030111902431869512279880908272169533347965926342918248310935595971285993970600038483648001311163169175950751537960224004501532392809825830681209296046011980055823359232973629635580340401928013270501511429399345490319624303176186810654765707693826537153251290111655883986720055283760648373753411345876403168876527310711157033054708243461411774828767070822622719928026159529303112711410962790766703461894871456448306891465467909214673013577879290578721015472702941920664631380580565845376401374465681871244881383871650018005460834290003146091285106407663693174444751155076396987169286874030251346728082455286877785619830279688510265012628863304252763193082002236541530106689479988471126215435973891069038548340488012792118168125265559697942368015322427728598589622033539808942731648396573137094437157593325833811769500601963492895932742423549153159115638164016921666252473495390965084503908252935400353261654215998727328069681943890691517216569363632578213932800653986702973078958130549514173572739261346760631419831297265905850058403153414519585781259096342713352862773655821007186539063851076740728107463893373223954359841293660844709508311166437787717370015717923232961181628342564919316738985238190310060798784395837232242281119181871753370703525750814379343415700402362798563600989874644069487638180276663661574051401864985481382775804548582800464473129558725506658340221554393521682655583594483256758359413796799887513270968387638490252149312287140673698839233687021862060916467689259721778223035300310107712246508157184695873263211194414082958592387967839896170236887329148354491686285252699013337932620046714466217358170265748665269108298208195387748224691463551333194051477739220315465551385534600505594328339875011993702625992105130034689361496373760295022758798615309903004133435909840913219955018842204660733036304041537984706537298145273754601619846012757314540489009926669350957305818934669180648159608731696124494210810041544713333714633135337397615915904797530842283108728439397196663735087827650415142433327955865976466255298037168620663478195459190265726513301300816972861825171617938941692968527897029744748157185310818914146887448288270405954776673569456660091687832179885560767352425330750575392192805160421317297333781036306109598843888779435744803848945026365031868849368297080394832756910299437132377291552126620988813452758154222623612063950400676828501057293640735858964564605560508605380453254549792341224847764195840995215310162229824182776103742434694390579084579609731426441476229002663522710640599395244024354347291264576642258765038905377227800025088681768454319312006540986816918631571766642562047984505246538887056306236586238809426525291213135085588888591364223568551288657670897569990460942471533255643589237959489932651570329515979326919274961399434246662261626457597918259194848538549717718627037966693451323544343237805947245727270411052950570619394449504682537698197539916284260274238027403206174295417632995193570645765317127482847865140815604909414686980950469565697046026249892119408197444587811811080238814159566660453052230620875698180202244186339974632106222947827968634182811029974947225739042473307014514181226480290950786180756730904654678485997573447697801371321992035663744159052011378671950378607236423846092542504962054718549504628494509024239736236220130726413324717606821432021641100463933411145176890619948182046203049293788794928608577491436692571944941032056035798889322391582820772975914374604457927417722428025383926814615349711133103780354451897695236975689445968045479599368887603011569330638188728559307367042084704690313506257632866063283602197383195701577043758507646551935317931341395258830065179893892104928074236658073075082388002433579822171885756106504235863842131219066004410051477074266887175359348498238698119717184372366893372785840113099835572272864249827425621385426628163390461240433499142066002533101409718195467133880405343147096376869538666360502268276801582849367513414529734507571124470318210341826632569358982436544619613981011404643292483821837426004162032987118680428845258182371841794637754648393168134217670442506161792929256006453042088180975586478206846293447276953861147984501181405343075438127813478727226311182616422468129752657477484872122134525657333839683299607773911848708464226528692780995479678668812381165889639350163950739599374356835663332252563634323635745258104864257296662783313282344118843200886965532847521859690862891611409489921016848686860782100944813531801282115320494788552280116770964525599015744846097310666311710347386801426580302696589161699510973474461459197186240569540163437980208350365578892616466724930062545276433326943108700167676869320019360628459470071466120971660207407193513726435186222991403015935279253143377600475636024869389372309782402630364349710890840038178934009474130171247023306532668582408972644174015501024435153830150936776038879111097198941908942791976631019398526835394436604815670928074974502687851593997498410783395691108504514395507169484447909496757064241430339730565935520395111987142265788405356423666490326171356488953408340749646410527753097343204600828697199130569785433937650118699008582412812601311274181098346030043964117296742591349591899475749875782485174572004421599158986091306500932168105382897544106593819408313716499130956572051490122848033999076341978458952075893885741252746657267671131550152745015208042734801917136528770505399928371017280759545141289578393885908169109182842107357886543205761264065368135502545529828983347662526444187972163880291035178459974190047183076674732239716080039468034672808453491930319034431141765509621038321048841398527741809829085828311182115064455868797133707493356044852218967318038813704164443123286695160470794210210967661952771448837895765238580429382282040744385316634901318049831040005315583053721323972241470515724717965341541055719414005102190590760879229596963707687786460463901913007292788799559195731100569692822411203608927043490043651489136462725260490119257099316873778661452492251806142617543567216357421639985257707499309532303918752323544841648517379623002399289135885647853628684831158955134613805652841436906231773942095790258911633591945889358479339826532379707254504588297476985061967394771141663452499318273560579754613980309208514633188517283113143066211162024680637293405072697950628026980690744703307951406028742922833607550297312656972822992396287080474610978013745796844996121450802108940254888579669304812201290635120695884839011951250952909662696332113378001996663807752633217970115954456077960054483939458683467967033891312082256831386814033749042063008429284270339375110637369680039026927978457949204576297107869161118687129761326951720712550358926957522507993667492227268741978569769600537780343313135259265641878034093414239416409707798753685294515663179448221688328479044985400739981292175090126935452142970386460103103889148620648043326424120493541959088173753748494260929354351558927141282526391887735823337564334358907554610717005620357553926658305039201470425623332266493895018273991163472538052143539241434601233649570322904064468197774578754588678761973183806044056108484638671809254678703677343032248712556944793658203945208756888172877201759277919366517789786303109858698926543199726614272530196136537190918606269878577521355614294931731120976946373346329909290232864489597195010378822381566678969719828549331283921264816503452075900119248534171366891757538886427203477315949149611604066507553523170075644786076107296294730478046811393891557055581147978203839104738668446589246012837967222194608783128606641174366306133394069310266432864347848397857183899782986823256750519034813273505966500521664172223938687061202887220838346861075344806856442796520748605080990382795185294579113429834980735522044327896466578549187195066972456594558002881104451877331871844039314379698079644280764783511448182801839663577932953246814820378886785047407051289186927168364377931985114344479886182082767426392940822071903973738298886116160775224992378394822693705381606359774265760484118995930455168393928479133707342695218578768143108818287219308809467900018303264844055888582073834642554211249041351614499926751452224194970682051135749638345859095725209110947411045881048632086456608699622390040312471813046115494751387648823697129418114798171236387696298177030610904737018818016514805605562154242897134514634298308696530516693649160588163949446752059144037224183829648232267309364699552576720696561788418262489626355963671017988714508710712702678333961956317584661910643284350503627510227363930704799870498053031337430068892864644737973949657310712166475051300047676072310693918425294851342292248947962581155088040535331418259499854176222863663736216741429862137145083743199176261195652219618309623752836268833582851114863021454931650118843066366948447621521071272463784041868201949747289544609777755274400913943863974018301167769885510787063375847689522251386974172157218921143448166181487233015413936021870801286231153780424184346218519757616860636777584827683086725642986889441800629544542553220689191216531439700691688696402789524144891005344919911893941898944292338606820139842637915923853375493130141582877924391575398749675107513238340737614467952546070111958936158525476976221080771899808712019408429897550278377035879024733589152201842049927832555491566188819967985032200363119473946864443566850027670262203412255828022233666711942023041647878441619401947226156893439918169139058769181142137211525118845687111331001891327787444531728076149657323895701153509480631303773919563202538307846698841728968246939259249456553329381974714597390887870952820296735402036138285414885609723647588039688743648913312587231634783786143199818297013390671663525686651456562329185555740948996393512091175237538020513231531517384057873760216226045834167137375059928380587365840515859446832599491305502165466876643826931165289874526481409945625860766296207288226802511022754420553801083661897337044235035466600676582201613341785219859163834736633627848664845390248867011802289373158364996721964647503642641106440859888466963323584345140538360794393936480439932111233171569161673296757457518435445513368182469472686310885554618345430257175309095949446496217062467878436547776328607052196556706279818394126908766189161478246905995153855720143900154449951519218324015481405459022833302130102315237806967519639076876089086299483791373266742799936910353879041547738758660504143345176761730663133073025384568474067483245913384620123818525834848267860946479089253370471672501962720656966355867845698227664098942628147313247519632509869760577767828320201169851690047933735781381323215312438238436150580174249910518940125994936984259782298605500227974272435163526509223147169699497360870549352236723092986969922747241102677720165794478183139526805168923114080893623694954671215693331579201881291731572241736764275744972425676519000000655929798189385018039732841064594884133425957967026652383694128052585595429763706279817399264342497028545676450311487109654743925845921586990154428005306771329793023459603507482784928675829908305263039041538749496727077393634279058964364590532276685562354083141453767374065228598659766619271299393730828924650128244750204091358814284621147654116882815716332110138641275183847922077043379373752308172583182826329147214251319929038065058681787954912714088864685315008145910348260885269345092241337618220649576731373076511667789281442638420752196517467464687613712613309691058093706724981531522985745310384057827683858542263093045658464547659576919703106738758734824322739202476443956002141050380517653675146449357608835696993501393528464793173935461280555832582357693890116046795756452434321428929399982073707225769564308634614833160956582166122876434909636218107527279160873070737139663355671724744350675106257826819549527904931844376925742984971265373083532222426167054024998238955394918241324566183068809654320989507054898314525695017059853332966717813184455117221030166667281537150259223618871056758766661453987891124430543633100323831216869583291336451589039244486825967590945889987669081576305197044116435910653380446018720262231577028629875470084010064903929695984136968369109144419485519185945992596933029312000815659556163705154557076349001194657016838400878215156974866734537073744406630705045127035185923111556429191615505082320151944405167534143781578719966620120436080356874780380994501534811603556053354670860636443571865501189950466049245016652240274214655160197121643854874736998563587151950372713692652543019003270019473536554250079547913497220724407263876128173646637955703023160442698653066842231459682295787987318626573090894065878173924146947209831054302337124890188350601015398802427999073552565262699604065133783376473128878432603936942844103599789243188477266123490472204491646264175389449540100150970386432380724245390225084620608879537524565149113254462002581663380314342531160654479460514765725282041479393575138245850547202496591036922022471607365001260292496441507928763940728950231782020908217227687647956032831138676714405410813236855860272966781715287405492952924945307768913625007255076546337908529394515156986895164293584344784510505752755249647782097669878230520299265200620884955941144490922365314424137215571211789179281076308148701571706439335179130617639342451690200996488617015556673603034366008025120091801356769365285540222227636635244757125329322536754746430380811338324722919030767303841921027034094919009509864813313150635856207598114407681141069094008817291511175906647224500589471841881778088447157374682395565815888322645421625547712189835780453181091561906111831580718986960855943879799754620105684410468999935951168297263201659828931389922896107680155644157613033213919832633258119459355652081048204494187091875937827991866671440225271288224090856446251987330807452559192803474915018566384146146086270700641300128362228821806124573508509200512609691887983589725631396696506973257377829111861747127399670580722857749929845549153183073878503789434248684483438544608484994516643428393892216047464154346629515439662667431628589849636948964049991262154916689524704451060021604921793810787267415174479751544040426303159216019164862285926315609960529279269073694562190033166120987108572239747388263532231764759660444346648787782198795023555343467605799619789758261241961687641793410288624640810389647944398739907034299029350985604216593647493702982772275462434947329248648313490505662464397231447843117723616165773444465234999556739162144538134592021817641049454265275591013191756825382745829869517083294135497706196876298747263362231707574659738421833238487459528232077545089651232033048563847821445676650573023096782923637226944209988942549920391925909265984280616452232924265410565686135822847196563017537004670276247658653621322338644862570495369653193021659598911772739988931654701978182489678413545322668100328405014427956080338540008759929290813213014484538120074928187330593346159652700391439037871757324045125432487112561428567637373429271760644999638251579212574085289609299468993218853405338678917993220215553793773618923185779855734775412081931003280436714303574168309111430548738323264230425508253565555663705949548837814197677596279000013473155402354761391363112860648281594443133710330249832840595084067307692766241796490704103425285824353237154189511687503713203479324772455665401834113484556715048492542438875149715392530393177739200155896904640936599718346353214350888839366403753033599047040416811098133986535666076394484212718867740836345881522710890968745251194012600005078058673348963281253252781756299689742468224492751169590065113084905075021681146369823786010034305355158223550748499345913325695005331320595402169070221219143842640473397802960399377979829420381629148783638303580222994761313674871911034720112264023763437202344812942908806382475928033816151907943928501651667139416943452683525153690278444368724555784881177543408383475114254911082101586567506648210874028179204519066726950768115144979772769136752060939333660584193107855905659368777096092172496202974323599739646651070957444445901711110571261124675180914878166180682896742328310208298188536486400127178888209927314142278893076576467760500937292350053140585522936864589486043560511292481575920120858351631674396110440411671991084923125985794701690333982615708479420434298430941551825914217036656486753377164707659503351865332047253302383902197447007911996163915229268350546182971531142022313133238154913754268012281097765303683436842577309130194291037116544823590334032016102562439319577964796196183972416416196713693050946414757900604066400225692224304094964335473770597646292041445628951666856893516022822424020864175837260012583221431476626073808133213570821147727669774728091331819536855750441307580400352997014698785679020325927220107767055955874340899972990156713310626472019991820956859437769563844667643383748442533142049637675834196208246632490700476339983502424745963128727599017428788459223465944725990950049393350972781730501073143433289170530942344609867968325384839285645044463165284346959726266628949452433723542175993349783871898155630121288973999923056781022707320442143581814392683823517291683932181162312585761371721522539049214336377192829711489200779669605744753239767701338761503706808509813356308777928992051105715742269003734439967770297960818014347004408680472164870364415717045228067418368622417974537611116727521823325234281093241537474951947501190485399434821313566449021688451944261971544965431679179236362194194212429959246604998274436296721377536076596641166470095800123197275588561656515128521162763901169059691818011263740158377588420242372062636511158261268376968980132130437451570474687853209028478513141008989589443364338763996758311711663593684646980614579729945131947946490545457606702820239242149092865460649863159937941600310643109439047751013659293024601386782631843352416180792452020079412019643056306171658842191773014031545696700456502277520977227890657183334166636426738239256965360636090316175307588676314039610294935253877057457930864177745249633311530652801592465558389834315653410750815156574143461602729110800354917249599042534129160859673335783573454703807475951948909136201897764188095414049234237732849825130116345391810004408875262477582716999391901622191868783479412111740746880951245100985192156711830107612892040993866959563298136061007737518780751241887475058785567272761219899518029668998349644534118882774415470112982378580750255502976634735116137745782307344714900388262036231802450509139412105684702178574818812733494939642204192325943963839185863094540652286796664576016553722741351234583873141287022757900432868723935173175664471521393833741486102922463614996206889486481885236590532315981721508855607407689124850258153662455534480068766213073477816522231646828396024290798660630107636254725562005979792262922337027729633559443402872295823486710747410102970668237343115687802457435040480194257581994705563013591239982856927562325875786261318025618833999621891874923481363841487463963705483157632650551593710077419635865320680080569402865116055628225387181241861987308967396990845751079666270132812852650081406268178934822215096607639915381763210787148412409834810735011832728850283220430703244190097661639625340709838930287002198205568862849676905724203831667954848818025821776617890243052754896508574595732374906339388938618912973746699610686455535303496045776224457116961828464197816353720420636192338103321151841781060917473921927001667293373693599233108019979113375950989909063881444319932189061743308378143976385134774239201124677494768867671181918435469725630799834520183825436242231614033255927033250551736687268612010320024290878029033654263280160340549132781687688214180414222826787907227515710112057267059960737144579367772075549856294941661619175108404436384489737082046206435355267382413924251830412989319944281720501922262027450127931780083543819205843910694879088527672268155967113393295970529455838018236344209972448295752593024968620199327136428122407472045607006747663614184506113831296795245909680938702924741497668273500193394149026163403868008140379796251917385824600118963846085341886621010570645412566330462168237126280297690308602115987115399923992637322686603870716782364705513831580336066230138599099200268563412020659319014349398033935366112257957580224658739279180718126936425351581326896568035977958353697320078907092636372757983317751566766181639646974628637580575144609075121263839442553174294006725775509214340635041407596411084351667053126848807104902972049469511875918288296727128513277192012217196731300966784062111455707915352766171410185527350310873007792870784903915032797213700259020391031643129158923740099024493929985116941859021485938358189025393734701417746110471021552767052106310076499978147311272339261495941620662404892699666764189346657067564744894035679308849663696424721790303977997639514287360622123528503062545968114121424838677884004471155254228447554136048083343422957487922077319186577832820966315063532745187698909964555519740454823615969956031656769109098175642014544535057132919004325589645376802721653886361658309418265539117323373437280096688323340883686260528380788119721657177812096135983639192200851115320635988592982097163368936422931372169397717691149215410729708239237477340271060206574230028905040867769806549283318687693206594185762277121186808753451535055086191941596456046240192015454684804464525640173294396289628327196098826329619312533705190533606924899240925090374461507027058191755358063094458971478647862734856350831251361499328841486512174169112399215134461682705399118064819919181208660748628227295613613771962144171930432000947540412327981305269000834916553980910782564417217806249100109439405401755506138401601090148113830584768163411110596337899992867851018861372704435919580035108299081174832841613956680395976825082080410763063807626720049990795569427001946351285311626019077593788206157285994229678452246568719264694005805905288931130840449027850151950107587842162346906379432482038061146592506730069994882030834200288524098182142634172785189431252179820393502966124628754714093606320221417889616343128638289207228911110013242841323203534862223245815585135863190777958810503486498033096093266337544739770724780015071762519258090068928275388500625181941336197916569469003868633428023648100277906301849458656353945351966748296564674326058893146826224471645758318871556695930677816952953011712008933887496132559790252598290482575590381341999620502541225180293216562131843700773338780769236598795227646274393058131183528545520660623210542389892627106751960772591964071915506303147376761742088617455356576309651597205994637672967815229868427265178500501180743308655414931346947132746826681211922015795792010406908660176441254665535188793707071081351609751725206774223672540571396096214035128692851834214878235658012197718211172029680196440975443822386831858076139205753919814324613791564461589992989520295933458600575850490171680917285612841503584105410498540733557359134751153575505769987301628893592848448727752329422316707326321651236645444817638091784415931477824189945015660940483201027426911436200573497130456544887362127561222335841479518072383367167863945908106477204059082701864799605682073996587193249626165327603001722577480294328083839683427368595976998036739311468477675212575476663248223269640384464976195549720459813287066660527160861445581840571536659040321119027103353862233131777078272688208879890377611189727686511629368604539945190487193457196071493391510811095208638060501178271034351868247253306129095952709114086434901982366045535062283791650735065349128295785492953738126403536920879220766058336344761595632540940191209543893676183240593883208571433161694348177178178143587712687331499729579929491857536896195911026561750479668090282675022049746423455113543545811295937096388661667988003204341222202324807827907692932578495449141367505502024431560986202476175123757274903915033070039347493031790295154053615932864824764743589706600050496534399872622137367597752869985603697624068650277608401620197255443274527834567709172024309785935072271546305886281998251518513326177818720645221092080002533154738111366352478747352836024826172923938269510252994283060922323919571199282756434556791749963972719017093697413338643504537539682760234489453513852544096736257811237373549997905157602401288849273512105190919394954017445192900625535374412346325631363684773200709421047215110301459197554146575612540851221955839150044503896330014929325505682568908510759398143099618094277054204027938492953363711610779077463943284151750395496427094815452648519845592901188170734234802522041614372213843524849862968497599405387304575845732317345116562624147979927486976565585344890751028843851109277343380048220220809487862364412849817007466493308246805424230202458538981017989649035483053862747092452301172159394799225925737700172472288562888420864503538006866501371655858585620988860770532032886194792945049868265383836979492650771702769668610783550819848372371665793690638817801298899780115040963358118062377187874274496084448971665511457687112961484884584854618183543042872134456879043648161486628552815517513134634413632506864735616715531907472340147830680621071830272059183987765719233100990150016902251414685280136630862502747327825308887685569389216950942445576155932898225607337087992494219440520910401025229557211282495010247693054066684485397573420117815132962347002678331133384505041679439426629934251108433342408269850208003072089444697565448928947728564831937220997431869348191053771806848975131276919296194450925794247439109224190527598735121069840559793258076447809415849605925071935364662649174650518948809640702818127598222627427689440645723414459681675943797541632071121806131437505783875205714321891960969461075995172480739085313660686585255703576239996745984244831154481803777674996642775585464804813154689020246582974038962834648672441967312658056108516270890719062533314977866461605214585424178597458295274302934894041526078207105583069684062472890345205852190521583889665914859162095941094935699901031578171249450545745591625818839562984883791665217367473513169616490835817708645795999808242509232077296309557021536756750727086218430896690042553221199180382410573947943579527254287932352120129636222470089913691204644675723475163455003692849322626335633450119946562958550097652823858944924390625528246472142596339579143955508996806440555201183787475235848196179183331833770302054503952570994795605744921770361534187255352294467329095170875950406071959430095011507152670700396917105256360076197397424579866095653612572601154563216782710796694329952131866443177002719456431586902897780472645983548067191108289350159772625399313987286888278187006674560517947204246534180961009070067842691651719851687238081825186125073976981553150415528122558928611083569458159463537625584921799082888859419920199471762342520833813359974307844915596661842599456835254283350057695091916574201542745850415218882405130882514045474526478007372955992688507371584290359372246377191420226054691920703886657351632566775472729508836056073405477237991727392069233690334770529799600685934064504404511515308880974890279703707467427935195759827660522396948841151402321719214785395953406489681921318930646959242340110906396478983084196550360577015548723982529066806446103042137719525454145298604798872092878144564506110069585916144993232823212453950713365353681380599268948301736441582714938803907424135595343347653806167640491684098025346329237622587493265594270372289233020277199697569840787441776004030382895438687357967482584954921472253913547973423115464687890428828093928702128690837173865637546755292917732630570495602475016672868855205934033476308339504964314901229924096925310362394891865133656759459181373208755067106428739750469360550783325640999073480499204347822341694975171372553937755238544052642893955504236844775548405671034284639093482653703987758432633422944845867755845824986919657821229697997998778647091934676943339052311085064368045622706934916914792410599085873341929631845844734155152396192062863889635891315146499687497713701481675298357826986858064600284070570628373912643265015490862726556727606475210934776568244891704071247503741480776799358342662855795462497232155726638350524609526201982459010392304975187556506762192276824594530569380199401090568532399445399526157597193517165838682895276892789696908167026292034639596132891007028875563582820671732960627523412098898132204726891138375537032289679154448705701603380012104268292112326426075833096144950083643075230329725389957917850757295708543417228839875031513809130870442393404043116578227905529829528973608422976802820864340292451636235999876339977411731833660634382582332059257693531655417531915056706415406874295680247943765843879725596054617002668036461243488550685908346248089283557446954283534601949649188511262697722746914025501916454484205196976387321173700735331287355040723836970778987902725487747570809370226546295600244115185878864024741995184110928657792512953061180425198728408428970567226157493162044151756614674809700551917996413792259094184974244311670203705349912156637568822010652142656368163330746591959030653403984679621734115853881115379144985226570696544481530642983780901142884830969774130194884124847965709916777228122116833718903263482313438481654336437218875585107192002993269641630633756846193054850494836128545683875871217103890939352676682878202625405024127994154256320321242310968105305928263830184067383651701761292337164211755126698779512620921218115696779916112769920680010884532437327231706285613880329316329410421157135318363822678080494518302292141209068348518837511090515400453725988106797101015274448323677097022394300782084860663615791064367372391415336772228900164199132194814800089848398294276866438127920398301683767882580368392575418424228536086268357622389237528182355144510074427297713177341179568675611715490403401591974393817806075139534685392720908054069382559541532499137754114193862182195816142637962692934585983873268672734773096186610493671964452672765356953240329616337233182644211547227321993765292614339835743350770150133258008456497948433934655105480176815668731729878114089124733838282498843146225272372173130038027188481749654156718149062751852639033632194609056345971388734411344976755083405952211926396502700403479616385924194603481030221942025375300875492632831241483801161158032155356679656206592418322607854016766812261354644659281573726990178444556646649646435910573330362534261857202564789908305608618815197299014611238502876721590298636010466703453265696702459023890455718636261908450315689873507507710852620706170314231069390529141970440818510060587468616322561892925673810966247717618559140325779518222734818688705498111790996832269641575132093890986466878837919883972303240435978441150521611077491784518336022745133164407210481591697722509573550454966793846296653087455671318745852705945186368467552232693112681382721714170747461140266566584172395188785033079307008014197308618978002976262105601121905293154485271279939856349091989439977351953842859525114365513434873338195209612884475552822080834995322792325444363422244061368935440861142900238176527413108635279759742665965401486707110803727963360899895372004358911057018987136724514176995293933255954550001685748891930222312241075646448816748435218645202464477640611573639938530228205228423496069829151475495811695674944821555157151257478953387313617212027460822223389895924004031101357852375344301969402008360911444692330659424202659169489817260786178323243304944888229162911106436951901336529810744476625386460737252189844548913746632144698719885818639824746089442097360343142209779549863373933342461642605513265325478224227235480228891778024551109785883204679853934052043427662642010790608080092138814074880684303204218117493619074988009755208210779952761825126126405938812720068978359514991844436050521447063874857777275144527285625497166958178283911678786208791620462744701940422305996841415282384319810809488252967279606466000363546261638827697313802380283670080463957042352265265337986357001557735320412150221661187274743632541169326265332536886748705914291238429905093027215308924409844312431387205883808802062855836038598890099618246610686258553046015217122190725331621491415873771910718716736798756464969104057207553709333385016863744053301113954275762196249210282192985088312041890630512842841807027225066048068399882254463170515877680093812730511543562065922265017258061318195834297182558249417518360569622346384350374846727586423000757434836484413584261577328547551628255284112802059404978908511222623140224107100020281340256820047545926442880480098928388948465109887409984059921559608696466371736022217502473380674051813125425526076244437404984982250609005994003651457182391179394017556115167464262840372842522496377267628665010910769807770958418605506649083462032896832828210096474057338672329577614972308222884087166598898136331200183411111029963919407939172596938664003484201484140615859240609616943934790216976357242797601028663143177835513243961704385798483474149814431212878526571794292855405351023959720065838917128513089635615948475388435305380771823167488556954339860970221059883273235259481143048803883068969414975956380320123612536552243274459722061031275790131287064126933735912573487378684265049264060365490230382029748906089225639557845232772960000190408346043666817323695910594969998343777414914034462093419066602460423272158762966485269355379421577997663862177017220548943051020658397494708272148064377230140725788407350890077644761571455319264839973547347202305832303556389716182236508993758219762933336495380119729605936920462187478796144149745534319888862559406391180769285182162477087754344779775731765666140325754577046440081424458217991160576425445147791477801629476065865732378154895341377978185062337526925435106920016482361580098342752319492245786982755812450610927539918417268953719607521779031847546668768783659180911560337967345937886972525169425538572381380693996139174281413035885215596061707019258605827654609394050556485087527724776038666981906233672087080221087285710489791814005695709662573348716215612054260629139586381207310838119050310050888687194209228428524921185781937268905991378506982482312238066055235065348835147022814205432530282296796700987287774586238078493396377953058833286219503161679814396744750442064577914721062621507369185930943003174983095338079300625288688433998366053250024479018482703979738993395038887452720179972328385404307569113592856433917367737118790210561203824426346295107566301247571911653746354962816501825197549006818301152348337709251192277699131676733593411093159222695051287707541282657899443137993686976050310277034741329838363267617726838135514814882090130421289588854257532069308913113928872392877868054045823663193427656365809153904232522704217157242865399760992246082207687155801715769340535188673619522187530125071811359550320639032900412209013296218643834958296433079016385244155482158158278415778268110954634623795219459790037644647292919786534379422537064088264058788584764820836288504347649076929638222603094786930939881796582206700994309865681957886938048927393656650570670670029726522225601612364676995814970395665940381765734367558180127513710246936408539818883827619980022520302024998119184839658466918062877227665718067231563094717816964224052829719037208374368132652960523432588548496272823736820790042665495483173842152846956869813007817561330116057967444024923472539078108502102739274136139088410828933666036100211307086324403102085021797840555999217201252215144350531936019006496581418900146371635226556072487454399472551240760049961102132961861979730480352637771020068044898306609126157728280724210491509104478594387814236024660957733567895038685955052251479109724313247536583562405203580621807787549976969057296040380468769825464545474651308752491514332734834968011498493311305265003588582837266251469174847584220477291588269473932492297526500254945154139674251511133703616540938554510278925386373312193974739825186983590886567830313895006642488987514560775124443444843765610286544512732473140298719185088352485406543656631535184687338779523940976843019193346281915102039124229495281240772937011811859722826274727347875022668511237237698487207477556899137903155370448974090656648334629247984912423232631710809781330367395226498478053289679751102921409543176317083377238314534076447521820149457442184776248443387543956371650885112002501046523276863754518429019403627864339456974028767470574376967787361108574643639148036302917755301805812263235273889991198431198625570873746867364564165436723673800854536486412904804373807787798389134872661765783535112468025151019865321699086757941339319563370576894175350049515856131045532312753375767673996135079588768228437660783601491398932813358131145065946164820463606798336964335078818283334051676259818286476070496764200724619085307152428586632330708888883890479462236862456046930621752261608886948739411660865993752215667279892996926409221082954549114024600262813051180332330976425047694599149563943680340741588427741920433129091813986617942061274774737030228393136651756249228882272874320282645349413526650132167030209149761344816540704450612696871023891888112557150735884696988575789045910990644005980513615842773194476063327717573383665776328007859351944552677006486001272111092788836985317730522287989510994114777004032212999446085329206404349461812774850062160015175929143273372171168211277797100236917206670995661899916961022956758710725984234535788889255226352487794951136947156345344608597863380395765490768027675456356157377962552570685442473808674518118540331180393082748032347898805648245114011120838292094249234201303396945637846630317925390681594931973127382816974030686670607360048216226806491858540008598296258716802356289708218018014416751338533897165861484004618101289763448956277759609642583964173528832189886679493037246531559667884567827643779389647482715328110791255572141781054228990515546085681512537994563755642707438612479483038697070072232439191431643287567400750373517209392585806349876841615179626426529191993730930366646560992718500674962131161295626529416181030738741979192102034566407751299469144276997822487863293270178165431849159601524590828994515540029722167317973491079981634745330528214093651095749169204736946028217149424786175010135285903630384726619032519261844714705068200542054514850909979754397585051679505284245381368339158195927911988776805806055230653828645290358404827080006855386339063267017498102570570789770774374215692660045800313621902248911904753822278358271082038556591773372990080065319087786957170958172795258086903701379401808504401214689764604321319608954942809206725103806657292655803647194465969922001817095309306982717700102140861255604977498646160147225586451757915516336758608565880060285782797652626921111604282691346679926731006553851978536689451241159984108479653936765205678182601373558740021473999635762006170731936729824760325200997451227128132291441695777388195805979989283376038320777661603673791057527582546042123961043988970406678322565762276054783015644241549405146210405702207878389908711534648857291624944226787018515751325568476588124124633512481806875363920622782209420166894388323563751230480549558693184489293790270278403434860684501634444018787706353470298776451061905119747133857507053894861668592560846827233432793292515717875426590854004336396366726461410628490440851405341349718635936971192624293731910658327051722187007240681835402649080942818814200697795577686906439246002706168661702382840672718450900396695112938359063135176718798866807206625047755612390015589940237148319374743966043957396219183667370089917503019220112367729111332245068016928684550943878433786041249779358264477675584334579923565520962244033563680064743195828342330458621237076586015480836664251238651825675060477303082657067740870240436361006647773278372203998083617186112263567128830236881653100371248125732403070698011128218906818206014805712584575721396512071366444705520219141932465543451481706876132142762916304646937740890883751985830231981141092189827413404958617207450897136242143481154906229057517047158501102966342811131585468543943185445458564475669120815965526140332703134905699512614264362843994228608415097972820643200580348608408411675413490119249430773161231959087320255981913386262460526167184548587405529001312888702687005692222836135087434378232601787070620655786558153265640812296854916585787557531339897778998546735793109804042876826091804300244429924273902296400730629189369392168029275272331285826548260073937113432486150620625984521483863343781844987665079542605426423678885869371998841741770211219747868945234509507185767686457462326997968655595326693103286485921717684512797905670558499508052532559205537594345528049506658783944677108941672646038026038602531233584461178667062053354338455069581903652332079777992402214760204930022184618677504716334452538874876840703256910612066484124439529292583436691456533573815636388802403649002222913372585439160083486731853390726240468131073535911464101306527363982479584936852672995936404539527705042251885197457439853435092403528438037588796465814591699539941829887462687468800228445252865212918310247476939296438322692054212156745851990688799055496688050891760723955690078165919612674091015577305666816771458099354931997488970080736786564472016839446492620431299719298007438235664538067120813160649190790064300485140000684233815333593012307030660785792210572832257089200485119484199608785485112004793125316066948872790834763796120691833688388343709150489922940909439966462832610036746428881985120880926562746490742533474436680903473627656310746861760656592214581797799689927280960600674727642104889974197172086411119508521345933364850370524088860015707785047313460986639610099441158942028912001130847010530171314451025950530161293203293825139817220454573545327904031605845467147788963435174835645393136236578936902734574491365444846754140474911763467985320233708263942909166528889747752493532029728539113059558018666872978339770009936495614544152625835578951064484303074008861587775366199898869474692069346000289281736503404151937352819416930943947449540475451771658870751759598588548695757272564685123171412980322288198619570354836198382740813254924621714350160257608638341256819324669288119569723327169722150257724825884940687813682030027544686238733947415543193581145783879387666950895410337584463282105603570134556566284744273364789349662313954108436771310275037350233184660643291312703441676606346416778978174910937114890015367320419593358843356741608346041541227826932364209373433902893057904861505240858144000366037014120611027807124510086251513073579151434298761734261665157982663211447675728586334311034241123690922521853611921884892750817926463515637053279668124116357081195415447119003182086210501033463533169518539897360722212502828048406339027230228447648908182674065240922528708114889795745723851010140745956653013007232538169598992724437615639713336431695747836870223997797208977323467143979633842721033518130654875646149705223943550950369245722594634895752060997244436864094633781712532842807300502519726010766687280173990121774819585515475411755891921008054678629822632743466488857778591137716605055584091129397033357555997714809871582485128794027872071689172879789238042473825327412587163448592799209012086596491133363187004037217291608066613507730602798808354086563805731759445302729610079429014271229796235657994585013801729062772954758619659097166282729285099990985070816099807990723680478003811000077018518304363679220782787840831095533323018804933225841844615330631098969693359136294030405022071789299160883613339661632793022845473440657631250806516101930061508978160635634488834114626473321750194637261922650740396591400687282375076342323133412775877304262800367637697673661342106579268615512349214758386168178362964053142224923779114009173270012156547858143255633031924166399331258434091253418639447607089230034094901841604356200759054748305911033277088283573790896405041352355349246945614703577004771280943051561958925711554207753676030045980136233629693371380505401853580484732018274598824950213352089089116950036648371314276039074437539261884511207450603408588667688458891168145085745567886192210585730813954409599774625447724156693125582923966855319076942332121129086930287477692531122977487053614678526317034134152050053512980148473117832725417814923150730364129034106568185377135845902390778993981640326756677036919536221525845827656312313911949959270610772764010028262464410171019758752645828665467747164796691910007383538320886656488721086368653860684195464523987858218427011908737165101166131220141898263645081344106238950163374180180911000684531614332845864158830968844994529790830044871546182422971517411842772657982607568360874460786975635234974530277493716569637751915422375004367254082688137329681266802057982273127226417656525611788916314019631133456455179996472112693624443462386226498509153044917105161051072887359399661677897072441855467814609063560427612025275422621419579708941775387303943698257146783651221233780160070522872408866783785198562307311520628813807628323327254128943393242141233172473275956026584754786376521669076303175947124600604254590969672062783183396823538443561683067557267425563122773073634096520038304445070940622422077626805434416704931399977571683051580232737815973900798964327363352326977413259547693086060512836894825066020338440404764064933350864112164035980172154395743160547259123609099965855800791916739164950142319389173322007384375573470817459394519400756755185975540785325227502112443995438525995704460414152183809610096549911659400336373851235720067011468071148038165081519356829469435421315243282520963084837477860783778729857622308511172921603444965193545530166111966806559972599117772141285111907032031345842885612024016519158659694066669589182047681853997600768524036750326962247984421748443418026110862082957986796154820958910377436884228980400119429418968093002130702726698609270805769417694519131541083331842258156015026300418576497057997940474496328645676225706361659551444709722496362074741402722949988315505218487203395041671354195071041668385686911685045389381944842226784123648384049182393594497611544077157630277597173778647396469449746535418068134852754733775783250310516808220818421119418138711398329985494456510487517987408114843239645741562623598027445995682233715151424017583338772127176653584340822571433644141115428644857940499295841080458798217099376347023708969772040003442597104047737900420068242770503973425739158295404710442668827549865123264346915770519566340399263462227369543584578230003662014097981975644054233679866976127576331867138302131054318876019794938903829200601265565995363827643446791277905266870375683510854451083611574404223493939420702582281359720070836933713278681483779191697468341888542309135290237841091660139585211668483074418537419180597542477811878873255711661063671058209910639203189250578492221323057866246177499902601213718268643480149905521028102499385323995775674030977631122596096276886013083171182665607357470572338300017923148671002376222844339378135629530544671790046148454394689681001284343254923451761273698041299481957266611876908235260426118727116309062475264274672697594631043457600341391052767988842201547675222175379689776463614271046545715876411504832379391334196230888187156382208229643550538796232345365370575771736888181311689676069914069251678109138957625610308093962834171057025245248580996392718390819431900451331416014693253981669989190749574040512891453056590966833304437944722749144730280049585580267340747380510597739631853056128288702553183228017069831765274465087867904883701203614323125864339431554170668023147040114104402092022485618939807559804324461574877287729784380582724921529497641545021720083546868520227258067114705032968636486169719435135086730062983215009599472518775198372851610317689188729563416609541781224447385167082765717071034670516513707160728867872863836283200387884003476055675411091904219130741755703054287591522769268197197671257490617494197444142738799007623813193189850906164477648639816583668020130276154248330489725106527772265673587210479600150783992224699575817905948067437215277406445347425842480164437910219740833130148952658168312321649443681074627538305446911045392671206847783517830231163532018910600319121864647369844971226512824401596093846635799425816696061399901352369456750001529138255455055025688109720398312794601531459048248005181177809063993478661028718841412445376937107166628031931623898134402719685336946287049978431754894497847242412122559107974673930847734307604620763962765181574967412945781538046539575357816659735654320860426585456640052039562318777303451711607729137262968781134624678839046005956956792533420374195898684643353151296974787261570265547689203089675874920372372832754813917245742804779399364090302399964879422833033728682311161875650537693161293090833272051910874291070401436491223173125175642112207296296316126921843662888539491948982710663750840312887228725952617943407845850998192105823741064958543134745368996573975919775052264888540703717989088144013925098021159255403407624572249938272706530854746159392990298236751035970140555216252619854909155288744963058230104304955228428639035681500147764629213165736799647961179978104385999822745330358441750224704880606985416898549115369053877467000425450671526035609681058666374752534101645061480536044775709603982427038920748132082108356772093508048179374937056838130945087190883337198291852896882030225014909236941701833706807678451578105788732745717991194013201135806058970103601403504412317922650604077522306909847350712908165580590845450467328872502978297410950502671255249295529286108365079960705094589186000901645825957624901437633922716534490137469394010135122140114349915288955725293944658426851128338093002614051507277321454425114160871686701900018929112684976326306164490177528732683219029448205905131531317604279892509149544120833498019940187264336934109720410990060035015438230412085156607875180339264587588713093364953357976165711939761012672805934507150317422982636330276925842849350511831454930420020833619264032149606268495346572035608082808304496890729347852799410618423549858102455273263835181079902114575728789067178879845049763317979416290441738060482270798585283273136689124467150741500565494906150867985905076121499311924571720289535371253209135248548084514716267572797243980561627824288152639299803325388161222275956572400519169321979990102167925586771547308926117838405910799951179104696402048275072971222775765172220945264673980939214048342800166863343819044626023028685819636593958163184109218636353860023335724601397644962102115343377195510783067708062159204170261580463913279372569603136441758161165468905326815382458780703298408245202026337314244638379204840293510210023582562827795396654932528622990588732358072938871667449513167234360775832892800432231987308465329450689693615629084093517769236025554615038075689788211836986623881311905951544652619899256797094381647268927492587177884903648302025663309469745401523251716434206000646505597098647352684363942010047264760164457718110860484586786179510671040062385007841827612769556842511271785366512762468263359088854722433364611556577013881798794803051224368413093897757077054656355542331143641444071768521447052243996047526260360358241436425470405024854504721182185930140959071723678186571445028895467575113141181011113778209756670680127542813902787118250501455843891149281758404642354134550610160218264717816966209016758628629994597383834304126365725357099550211942144606548347057496909458633204414016049199055008030213898837207211417986550527948299906432389095689852497367386792109517416132374342733920272404014803797663214666803052989722850033011388006598234752036525177807047898873628009602556305252733708499803673244599794102746159337255077903070592546151051821052361723012160971760667294822365157345863705205478154422258567705906769410808388680436997777647251427387243343340285272825862797606327084712336139349608423724933298597721776578342056028506435938880314560761592602675412019455750315816479693562751846066388326645547237113886311960156289446170419280330232775409302580584625545074541310613751894017784063664110741419544565053817603130153657267276325304268501156100475816666838095492780838144426165742562783313833827439159943029984066796756377254251010864314204669953337714537361623529768030947497669043153169102325993327664122009321069827116573993265874205241341454426335961246149853913045682310157261479138629137216927801989818764222605986191959744360258538296278855188624447468215566472257540286255501402895829799499122753692291093684059679296341330301356179618516296643564177919263503198144060537594549822501586241454036882180005968337720400010737634835668649933479815643435933062963900691016079358704644765958620913957256141215893174080098117867425641551936773884905595763832672839683943097105173947484345484311601217474963876551606934419921803826944633340328612937773781773074155415739099564104085368874502803216399762158272342321722571375484643792383325869527608110782876772139447236112139992036775608361929697490050116022600577795873600685124524371230695530142342490611689193748902163925642686902289817771336330126035345829617732428101398751460886388987896383409353745663258871791466207643714950679704145341507234794778470017913747582524244674338267049514167965648485139387391382515476661332674847902491738859260021080256058042166359485924846993850444704118419468748760650349076740514804303148375638350475147902266006165389766166621698792680875443789637599909608775779965136293121796717354116080051338095318379601723238806535335555895935740480449879757726837069882255241117392657074993466123451431408815030714416116404586457111952313138910020807715321571588811616567474316574596393111348850251927012576459606680847828344691250300451339761351537530649234703093580013051584744089531539645486663901519931955107199756424591910651488496498940995351686290788132651884388402594563818504892330846042829294408468418878970090188925024137751390018472997683265102908393728765721736019863713312146441759014979915856108115903817365335485879503460456525453236954306258571557400623340160000295791277812273311429064990697691103109321696932858336482443683451711901771557260950202938145200815245363055259703447023271103586120141568555355255004175400443539307867311818219555061988542102233838629893298229564267060738472386204859032122018835675285631939433977549400410898591997492968765589119619444097045695271844115987863377005764377105569535614606236377791066102567987219465111662001431317107432605750144486266401163231250836183636090274176456088689159568596673701758940386275915353391488975302718074952804530405990681677502953134210675624000862933529132323582122509813209833485047179830210283489261232526073651219284426962335653130990224020127338440313997643147658893975725751170124407205829775959526080131070096955841980677749069374621535213432090882171523962115880393036061584668502888846103178661033047748431759615117259905893805186886685666209082080593688361212351673147337004267410138067094691175765349190732440581721842561568958102774520245212647217486130196327337019029770522656027130942089055998381915518269272817284617862723006205305788986707493649893895681822498472687912855611357187243060310588535218762062456521409310071608751660681495963861897046414863689577916350214664032222746870234292574593091254618011908895991977397610737949015544449955251710510395474796313120537036970002437318613038182144944596448847287182593213756857376772836076984618679641315102335412366973278312634624848671497326701930394829895998906939211129141183304978414199616021870686967962272287921250119050263073605370463842671803820684726067770083853601261471379578297795944409396318798802049684189437295123592271742092289835027300433103131298318347591193150884494286559853484695224563851921827611148671897825223510538225842713366785826835142522478120295510991844163915994537663180459677906500696606258324422603481874808420161479769120982465459073541825197412002877406985180569653261397590929381844060271591867542393478484247087598676065393473376545975862552780110767817410245036352285545424666582687517795718686598382394504359176664351653299353532748730190761804879855598622239198494147584055228677920747507607189319620151712699808630250442802125547355994530764955492814425276869019320940802817951209734678805549450686853177546123524921153241941176583233992786142503589320990948977305654143692284467414571585859691315328965343989981904806785066920952419065727989683057374757392131185628991465915139605682907817870759035915143453342247101684269659951120796218602667143163202624777299414927074581499561703641020731915667246353160662451918279792229631384084887750050812327589337254852955874511668976734451721230190227944449222348046538241004589120591735986074579915173925339229524298748632266592837848000730113850828419136981991834149044381317576914393656095003707711973183658502276722355161614915556652232954104149847988080406841149069436667313128285845497087849367668367357129774499261638651748300131054272371190007042567304416915387656519508065241071220915195039533041907224621709192844207231570834978444194977955020285584002679102261154378943249855120924446539421748337846242387877225057065889961152656465009908381202948461032766871649798236427648617374139427973636954813919179340950000815408178583737842621319021207621652860530838696434345823351803901570399536952206538539983113336477544720446887241292904068671648115031809879879311112578276774273361906387684936069281050088540722329533915758897737399544921736292486390977700577510024661746106698131518845145130749472311846352003045575277500754673528343878024412242503389866158171943377948752920467476827351837274598764863802258094491354959698598692884517546186880019051729659821249920995365069384580916828711181584135058159586721222658891970379253724636149840047557219557910369192313835029623001018105062314155319186450244995228159372565420975308592640820284009804551983104166059104373970680193584216305225411181974685416464577963527200467650488992278360314105476374859876876243851577046876893169876337625298413398194329380698841501334763182919580738214706893249409754002625902260565532221021146306717639109204058749826964956275804483020257830037396994009914440676281356201021442955289678711039687234801277472584314523381000649005442955821150530444314392458579806910588871758234921895630791677286560532948858725080716725105905146736358562405303914640969993213279533108119563065300872800430968736453781819014997369912199569912777822164093654432399009239304960438778566258587604856805285654363514636014978068941060623625846778929684111225656652106215108972332437428492323167040079378699841664718873100138063006255832289984760029654556303015365857276512537727702045948589086206696366769601243690059918219470841953511516500086973789919959672261584725483503840090716608995766329460992203017293805748314060743112327441486224831413402687112773895132458700465820027779911913871978990518585954910609651328533311440876012203946420334332561572249921699687434990689323902934529674797678020180684163702822162691201412560655785783046172366155804900702822659247060903478087983049123623470744637828019292307658175280025145059995615821590154462513417167153929274863893607972425898644543112971277246127296327312227292737080278273115687536186103928117563412441923645029625982938360188136385546856914392213272005404571467551363592075370291523138503517320749728779780678575825700784472769724166171053622240936641303108827695080547444735349500577401969078833117373891300995509403902412966874713872891633488886875019402974466786799403888626123539070235491416862470502911392598951393037551409751785410757110874091707728921864183005756823790823894191083025060701711009122770319122005692514929770241731272758102761777882016297889901138297924398329628412489664046365860339521189766916883022928022955197547394779348752091393355787043116197796148160320815858763314696810696127595113423447260525390704852163466835654621721693072276174468215775718711305655661190337709672407029957195268512112263476121472567656222966372056336193922046420931545431554694078557408130302915805632932143558924898073698213899007703490774508670812655828020624683348276534831089960933314208815749811143248967128781574926408443046489784117860267970662029750997715721117322569219545140377982342271728184148887324005367253722874068988666296509970883204135288651685831187247688006066811225975475037924925476897269558006453135575142462598960841661361688386752814572215427589841782734393940008843945694390534312648738772060648003227872955865656745120998209230428633542581793655379238166307353479777391639218105164952276934737703549625842013152422325022128079471901334412014716626060951340672483740394788368894324350015275034782347542853237705518453399447394630856107396088488376589709954736146885869585781051541284304342666731075184934653851552967436409704226089080579142430040810818928978468815052298042979254683777725425914309725543399574444367157173802728167612363718886147843383832876678919529745328913242039036110473741515963001285363405494536195984784987224647855618010561452421906489894805027138989471651119153754724794692309378240445762769319852375327484664192145089974620228799143103219688287457650756776278437492995953354024301179363220486502860924554768889172447449465377427985123552213457261457126197213004675641415734107062392157648870140647416424132147053726985935301273470970618684385099240365731979677491014268138247081700069376295598088579920728553595173973521679580080757809147745281731095129981966511868533311615957960458970147017374465873980901250662293127762199399837846100967184005401661977309016458200617706722984417946479137945296113275110440978517368981272007959111373815483753202150440601077784821583076979204438439141212651335890333752141111423996410808330101445655117815990161342881436679673404362100988925875570299706872054665453833587550657042270996265698276523683377020944329081780411137527456139585449873698123623418605921035654533909932585680478538054987872681263718909516534020769113783148916696532406010959946335151017904654194726892964844116931313278336456352818722425779966506723695790729532853877823083824727071595296813356314934846968082125513956754303933407422854772643148804845832577721679711652955784101367649711455572527584758172172262919991219844474080723894014779080312331922329104231375339367654068682597810693963788543326014742485496444566865526442128166167481853724281590275636212612396365254752066034981461443440067470284550421835643302112321804015922644817744954373361442952759656076519638408463878531264762430861358139041080933829873212486962806385514024054534460705583569247479371185394062700459611659703139154919227463111494467021115011091980338903234548266646409301693844575738260161791420608392491403552287408022364219326025619345384352774877659563165181014983053124643416651144625784738536654566571174138663006455204356750726957403425000371599142325610419746388047596753635025515219780359335427673072046023330043979766742995049584453146585559796016245887821036830396905354377861962620280298408638034138630692263243305717718796879970400212844010783185678410222203402573204946740277238977771223881613988195181202263576461563810594707026577454631211672590217288571241570759408927684792543912443132494916499128040568452510111914898349458093711828077131897980793108153947987119674530167606405100276233471303974878396635329451682012119339431518810714198463147599266045609425161275437217441010816383592815419999898234669655039490882222258583079467786053770959142979181798583482935995343376149035827740769183488391236780694791812988607149903364435381270178037822783996564249609878741041109532884617521855614053966770038824672271321366826286229813519385826577669107799509139363038992604666783938846100309400404666994232258513942236624862858637887665884820954595647242519575720028653518816328869277208900026358009244937039006521118375398199652009481676423460570793713696280184064306270293726978686450034516150678582019838276023534874130423249177703584919912142797381352984425027270284935980982307868753105563402613791629294414710314732674308481271647799592009585874513584620929479704984766194612392614494409968176937894216011955932504852071063831000448390293937919758166759208586310741614002367267923133651466384196823156247416202901360469153900928135576242369886469861867058425125147997361701297577530560303739670997292824788657323114088951072230406775011649990666403094812392663835248065752047364455292426104840596241158327194384171904535158418624716009986861171770592863888602729498477531589213459149621244080867115273948622839237982365446781239729387416281257099647414518536703138613293189179936780522958141037064660251809429599809362887318600608061999950482844752068656704195063788386022820690276199748041110516821647489092468672257482659813253423515393312817043999010744450497904978280093218776027122587543020715014694706404973932505046680325500036764792717023958942389894527069963838026115554008176015931566350276633067557696722480114009602782254098518800578157539436780235313910560974106717798795605035750051803405031156917702536249173342801847012052034787730041195653457936426076378753715614668067237781811721526657338527352420738353011405905034464898385247706944492043220967737688943434068851042422383429260506479238291979030633391942124368126259035605130089531361767478933314266112394544994288588988813241278451492789181885792755658619166731773959716519477530198213585727508414958756445561153659110652732978302520470291972507073800284852952502030512567564401453409749583135088581051132161694998536426149243396108646007168610433195152256543698455768787158049596137283088270742304498259730142592615633128360365209449198468689030157498321471412508359708702633184140886051071281975687781461726186364161001772085823058142411477046533218798438861404047657113464079680939266257159762021324577189122679556033901472357407334664072307586362102416200344027888429624696226173042108504007203782411012326698349750048503648283411890474224236391283253689705411553843330636492813541413085435756704886726109384104808623118537363424737955372966216487690210005161088529679979638151886684087963510029318471225885909366668811239107361303803152773888073033713548912643731638412530757281937156842848018290943119237535523722061809899323403066509098830586423544305874728718070350914376479513212972800898883799392126568409524731775665176195265419745489611381262754547717295132083622015955503195426725189162003194113896425583537223932501836316563458665918184990899130859807529089789788125939210968478840827052105230276596366698894809751708133846593052906366894323062865042716978526876955856803914068010492030121132019021074879138561036596193848361826764425597424404771954749420317664219859158573343720377752871098270329171917449619126429031090403962259339089914635693834507413736361790166300413893100448621160534330925706808004783099200094344706414031104110378790081724742420687532742778476718636612823895214074617872920994611813505003006595568401052522227586302840888308499035187281339353113103133087078226251364027537740282477017144376102443937062864678827798342947297941671699264989491263730798820548525716037735047986935527708071721488285299889708140493422482348521665111510414903397672038465956329841907254403592909031033986003367867707778877438881716487063113702470961120644759081944218855494565995269527604585763271547499905469974032025790392840905797646333106051459247694264669756300272256685355985003375716537219193215257144459923248336347798369971292123819066819029611018244812919209288987293007851993917669854464607773849441901149622815222746345110380604402487596368541173951001186225197910812129730733330559110967682995359871197796817249441006637144257764232600709833519625068182305139935279263500599286388645466856913777503672249329175596683701965827498296401857902353011947544048935415627914720504888570925723499267833952845726466244401683021153328983457245938886982909906002169083478826561197198531543596272242888347365071740518976758731366227947073077809901677459056813661522074157986638662614674637561191205872284768855787513083612094551051054855609840493370365362282945265413216676719099874912267870362306857455155335725074609546378612790738418388892328079933867083171088920226927102578503292993200059366988894883950992700104542361284683160206422426909208302313308097218657054533843413152708156645846982232418168176561334556134641007922715413654485582569313899587909758027579512869903730334015030425314002105230399408040457606111704164277308399677145150872189457791168991245632654571311338594852705057830861067316992722058033841298006025986079348588571126056174123397671314508361415526825801004559873435736331620799080880111949658948864568034114876222175156054788599953795426555582380044412442775192298052061486000832354186703163014659605597618275102133448800157582570825641650995604997013552819106329007784649044672295176256431853975274900467376330968930539298253515475880449134250769094606786711773701722414027832485155820670231534684576395134239610969902414244760719922270614992708619276346169754497540700775561965825045859728017524228698699520595404771329109892135153750941138895067480902645410679205913301210641917507817453239720407708380076213179480926621385752084751592932893661087818513788959708696049456507471128705896686953081765016328683712458305836159804548138955196387633143880517019925775952311031844476100192897877010705162578788004013157736790158942012069771794568086183195280776000988096460867052865061132743737642634732047983704440804523025968872161557247142659722608615732495193700550140809773171913371874105359731930071180331587281440695971608855472083363493390270568891069333712059763378029001249890010861816559915797429370946396172110428032954708000514251422618264160029870931917647339010286628972089268227139079155843192517564959856900716956915309600362380030538145787311392904572337692650965088237010185620192464676679268288472373603933696211694455561862595150952555285763090857277394429311405277069969641048295102845641512606131569794062392161979779034978328517727831116099490561921612206008706859788530436823427463493885941715911868071255201240772351026947575663765822704018552920033226540986841780207895553264451375411392935770009456298331590159380665276190039397937538699595328198895429663025219799937355287287536841265801282506176400520328357628265891168832419063491034681316868983971080174402873398677758697514581304661503832242255898940311265169007455296171847410942520310118295992816634060686257948580704399890539114985936999330776132875862975109005170082694599992714907466185567174335116052418324479919660027278338887465161489428180300098216797455728958388063055385774059213588204785642024224958043352271558966870052592574907663860334656735768679885998659924325632288703624351938215821956344835617032710485665409975858904132458917729695464775452279822298143873717587043118168441875748636746394414653504976722373247689433169645178456093922295149688538191000273282899355302322168239947122670394194065675659449033871747369277070488290279369986974558141713275223087696878725686436885340828673226074812430669108315120510462262059339961756519052014350924623892023030119706421268355930851619673866366755325125713925577438706782784071089875202241135626498745579376841015420232357393672510119577459277257354132458586425518353508068770950978935843782305395231864833604172654317327727209113312829458343502750200558786343453348400920730335693042250769813531289902147136705971911831116563739955843857860817048777524976402960572149167950375254037171440683644311672889921095506691721596784049359114297352894261704260137567306083925656907651036044353324221819371063816677843948390076710580082495262460948606406143355747923764253998413584691858697929789687531468414759629033888380379527500163022486620279925968119249775424384505222457846442826446804084198004607411866749197283953664710117618232615118468039127398852639309573561817139191146144410493518448018914869667735958788172800972226274861347361601501242928848074706014269685378558641278958242163336462786981357373827441701477211284442610392378782056781526577334997115918187578762563292568491242038150504431837984637693258133625746167071456457774062132828755914944581261304320263995282013834579425130899745267713510261244349823124228384095240873360575411347063107824957579277057787202870559354030550364829029104208864096149419233302381003165439123285875504365328331985786501062609645607989995081451464293401788663871777939343616657773697567456766879425968845787325655443977203998853176490446072327323508970255564041848775911190049050322859761479504075468332318846130764939567472240146410954260926341955930335151903989361188639171946688613951058105554848167513920252806709957085475546501537147322711712019371162479485241390980626244465221149033462632852229515829589123998128098898886792707654937942364412479803914485172075565714184628371467506149590778539393503681032283592315870789639497250676828381498820023641606958132131578592172964726475231780448057699528904898243941295292230340823220774539177812056293064998305177372907340503269934079600884759291663001587796798168942320525433164606238467183429826222148849034431313168094515943192811964344515064581918807432757219906980254902097085630708489953664734979178311137586565128575289621962984862427340105125724494633793132965853869460549490098419929227624545187524493895579660072722089178767266941891792243905558688953691728946496102639665708642158617996705730920040510180942322907522796691175573589516754674860357129158715664946394373398048677582112555612961416162782160336430430433901477205191620541691655243688402790513738113624468917433590459631334715116165563233822056708761466808433603703358095231002547894675214803915451550604069652012099508339025264531584247319071112716759211637313114229483343051166915101881120666951404631341722763570063059346106611341502946195469277131079198967369190332868350972893776800164096418302998656332831024864803905318699809950461510007436664201716165921756058949591687406723911451082322715458271419335090412452045457846179400107601081410837277545630427038006825042995488263706976946152118274500182084851346831030537006838901365637322202938911110881893377430997977670452912866744665585292556661646433388275424869745613617444322628619788018054805766048368316633177622097391659603986068601319711556754649217395936827734295931613446600644711757313497638200929401867899779886130091302425845747257020587698444697488131597903929596927541121105568892588796200229986820130951095460952178686269850801249240053060374017738430017217162434046030741840367156987674392382537357414539233658500941109366069730634301190571446125696534807214843760151725229122226026171388771630272935842950169683672501798286341107251081072510386000611113298931329566466661044694299698252826532941427415393826558836212308604751096481355819865589839751283293080647924583047777534399766731602488474849982966276446692477829845859360977169469893748382697375865843187618127538228146439248321496701382333478094725606835284794772182201637194856102273809100947647172806897295582957666423426573832636786187112119794794019058014391397370178254877404260839967899621599592148773430546933142276340295392843839679962810266752452548759874153775486003211320383949946266092065006868629320358787430224459516703174157206364506027703466419045589911473552937360812995450021073877002450678999632371939480193209507090231479107603024412619368801259162539694581030161146640399687517211529488082794597019098838316592463889035141752873168104166937694104872339163136132178974240047236777967802185736927833012031294880601793483598541775835405371812995756514584660334453797495784740919716532835205201024940364209210327889997318140513243219938498025997908651906051010447712822808572558398287937567301940549993664235692470856118071219814948235746143917986445889760872537762232957661639400766060813035398440421156659203056643675136087303548632865376893336943376758408724034693495606829544171833754073114957461902191800809102179765216803853573552018413763836450245986783941577700520003333838550771957197345442537659975015392133694778357362832053980094253593551494404422375312325572772494094888314949461172646464310677642658251107641385005686220777352639378433404854792112993676776460238803937319554140051681092652740676648201076892600361175454489870946980069267130824413694193058222543016830995714611493150723372477287755971119060564540895304692694224967534436463470431102377657458995148994200717228893241942170589105084752437487238952651750537840243057446269481987938429947759725393207180745913924041001407478925816321556806388663632004235019922270240273481291407166262277336173553299670212813947845700304455569486181344079448956866297935727007447669868496458979371443415468035016363933764878481004743883339760203648622028456485080297764688556742007356097309343838741217703649116457150854211952163270573268263025959285364273746101000331098596483223955883329588907158051761966374404358831395360732112497473122256987942245684244773049480312940292330243156756472522692259059227252180380360043267377546228682038126051380384678892837163747274374329656247303468228648951358144182366092750030258109497487822060480833050339310156340938463328227823425698150675321582014710931226724072827272285922728390126605952906755482121477864914035071856115924382717727138222289346698525991411900197587376898440855040481548990783185405449130998474666339805914749024524417478651282094529308101544443910095895267364789043588241252746272721676650294131805332408145578427147998506637294301707809991979326559690291975321398331867005866908477410191643575016374013820075758294023269103663109022251921254118667877084947474924307285571649039556997326636337283356424988838217843680213992342890473534240125506713309925000954779947396124972577802179789134471351927158785787305928471790571071721810188327531276883688240313198367053232916997706372448203210477098108283403545559740214796273163870665552237766749391294257144037714441536269987550639218050290433431569142224653151594925709722685038214508431454171014595234122821646155681565041422754822745330005066907676053753993940873897860075262962411548256789134205859078781207130424065055325121398073249758058969371516738366962112592776686842506258731139148533698402114716084829853168463320552133480884320081618770881477418207679171116943711547324782112520834621029909074645879734562591996048776428077823692919676519422135356048818757611259886392201655891825950168561188910535786674751656519303358497858561891368809075591324950241486669371837283562319368046605796282800005711846570963317276800611090467793087879924472710153766224656606939961637500299846254775052417145365486536868927507978203043854349286694338199641788419101388965537675764967721509210908243507820321603321230550240699115252620616313544181847217727632375225121114620244192900100432500041605309334153457597139276017313331162641562224317135368417572415461782450408191333121677091427827555814610791167873998282131862435498501818665132471143423980775971637980045933490353620080548191676525897684299452340808949513355143240967403606931538390571772544936575688465744396409304846635203682353396571843982855254622499069536637617696467108265313048469130451777824686408552072408218780610055693460667884142370973246243185844563555798246780968713835292815828528306838359775109770951275235800787397977841341267374463024329958827708798514521936148193136315037569911418293980694152129119688652196156886324531897872669435654782884560924314474323136411489451868463838672775311234699352550745830839013445429670647274625877718483799869203139796100664074192228224396910298923340059233406814456686354304151475622007396662016488037824477778039871651311231734253945245677411980003945119775520726433131397680545678263970317936153240393121277000141431853406010928519424389822657547561078564861724215084987903285821765221907646128987257976096446531337288208018162176603982509823660343329793591092153500294862407090459972214937244376991866348642024950744189998385417005098351154145316586882915180430833331198899026252710006052309555417910239759097074491873755488748616038205782052237590030699394284084311397768191713966070650551399898827861231799465860581291084959903543298743625649256217261918568066106900969636575062575431386236142690918434580913351000916450474494518825601596196586547684892115202963443148056543161868608569119700891257897580592162374287604416406946253259345743447525561810197060657470134207750100906445568459501251100777514301211273011075524196114164194182678993531600957797133523666594169606282931463516322855711532207906116509554040035578421244681313259706364150765267316760730443508077960709623030299295179429012331934179684675866053832401935987370975964756148778089854656092401112467869713173215731278417329778774032729654068987252515124876655241453044454851956374451439963103236861422733060029813345918064414669412920855317354631912544604656226663621001323474362867926978945952860777584143064478063096291566994609019462921043906946746881886528703785517071694865071654560712363098300303909745890717031430191474358717129952824648842475738224470185250498830691800692244319801579721266226110553703272372128990054312748652413402069034370791914940415446058091263233094018008262966091599574162395447681380589998586535025186967851898296593685117573002509916985001457951143071278783255037330122971711096041407300113018220715150382569373922730381620229129460211960481732460971398939189522974586564052844073764898392639088405603149709387420316605106528372146270254521175412584648779346248280790889000126178363299801721855757889039985096583495789673143215224589709322385093887718834934443702561367433366417126890774466397215917352032926595348644173890963893511080245840058821122058271971318627386516686238240128916482319436899449520016726100855426885526609469032926572831029318112048473191804402885362313833070167089000955409503160645595469366401339193418972950776442414967240687032689813019949384243433426646859649186978995544196286474532941658031052100630265843888084323542711261022324465135502419837749561502719450773796120209026732115757680367228097641098840784113631171524137663069750435100101263233213683027950193830112650839403092243146817470570331787237753855278567336029696029812808968535313271677483655443550595520971375198207946737378942393715999643103092897644964504045334852511324142948554261082633677469560568989586258232646346028187931688488746570549471042455494142613742566030149724911399577584929571180003000231617908612547964917293680056044177634284845903120531769208454859532674044563040894929418255685279142924048830514822276540164400576396658208206444160966506516038604215763660965621788294185527401023236544484103715336829228884464428767098647597896955528457864080478578445370763237648716438125901769678075716795755819208911716756900183242544603458209980200141045766156268712077973439509762890550278779277931013771116606417510084462012007665460965529675843242639845446977331386892323035065249478056594800942072317877139898685415633362108460611773496187165773788628074041683583161333943884588569493062417331547045268579318881254074864195552244080829019827659211872338948097684353522908792792609495131360384607639584352890219568387194578521499321309439454874899235939718464193163364076045884448461267277815530728644988722835441585502780767536573227241094409211395526512911103537852209792173244917340889340275923340995405614655545772672129363361608834357464269194784914027215193361507983579384776916682055777159644848574561295151371847297475079053985887958661582036351876747665368583915510504456605690512551493099438723199140528639851609631570852676105242847687492181072420724598200160327012197524442229070070657071318668694177858859417586057580266805384032941286790616940684907703925836923826297028259813524948183850566252644955611265360309192455940257860899858036333914593896055640831892525602734411725918717075580519137867565317139647722345919606886805404282546424523328875949394728335764527818182610310465294440979438780061434541717477536460940524887303052021091355557446969222192746344107357726955194651889546855378089162329659832340872727566435724609964369221797680643184037454533422422274035926683579389788024632779548516212056447902378023337262150731798071147229079386144549502355452384201231452324585775364308211030575229283186047880242611740680510451454039879978584451295613282858770074071549640103602753175822374048069179807116566112099613809021442424374970981115556321656859277895745495593213658404032936440729528519366736397228776045888121480730578167345781393471351168379262687070266249576162812844157781097217983492789698850410522840266506487542593559758980140926534774373111992840342909767900638694590892252121315420751144665723868368401335872170734806228250052104530855908765118163889797362938471302538785280356585749097007624182156399762732308983390931272900846775267435214528233807850948144610241209570213739573750205251701552556130506025753929578347920304589278618862334864043514761351781761206275500604119516881394124025757375529957253261296179972251539034919186843338315609652628035506564151092458071483787651590560950994536142868151007567270034133221724694094561033942717442261276470803833655707199240343482434202197373785174635978837741240105670730844682331227257078251787743262441390529587659478550268784758320299655214681707073552075291994895692523720087671572304644842099701875336023181571818055047769914536399033812429068089817846934141929765216837119356562030318280043120474581158734584132228063975712224650189664879996851677109121810047834449788732319279627300169483083716295720129058387435522603098975076200860348330426973229721959129419629704140088441189362750322502542481097159911144908939694755448752584175451702212026229589837952496333012249071681637175467010850718079574079709759393694796379327945213795505348388907828828045834405977973555101120362500717183340894788709727020085493558960759329581621169253002860623809805140833682486482949512556464625094303718446171073779281825732538818113994609039555144397868300084487393658542218856415742361460955844064742284645487726028940956063004881108839461035256687138710533742530364731218952269969300604341421483983491584285328130534654954620685626130954632907585244680459502765029054127150791408314878387297930931204850046594976698600874504257800326741395998692049667677519714057315399592856408517006960540391171105116102417246598079760020474209307451531991496253149475747754489371124038836391970978051282697201489936995410173986880117863844687192395893024219541537533578192099461351223936163722365900925581089277184757288615194998481613202029280610212137032257421126820023401607791209767512155316775118401329832145016770479393509085022695196390953304371761523600623545465907555425486167919687863004545655146516112871168695953610269733348838870926120674305373162944980813063907682403182301366536784047015258544389740985618611248076067601648692119794632849714053957268918124785473500910470307247608902398551483336725176917354225449964867087854978951374782028294135286893698182962605520585318583263691955346907857979837373031723285714074497262897627767814154930918472132798826313078574760358334742155356302147401398080148467297423241280440591959471756166736287801858770029540672110105453143623392597720729513430886929973057319703956531449250945901009345605704543701612671112805420595075750274698418410361378501143456391731246271335585085114522350321715622809046976054355552519589368888891867882884714044363069086921717912031668062190571193363237474096874866935244820125886362277269219477943944334566418656135588218800379597147382541387176932105554502178473417406151679948584602814667243261055093674722066903132284261409404422584600087380854261185563184320540836036772304567800001475179378398686793260385945564857261599154679025806284075461787701269609252750105585472236483209995991887274525505392332470071845376869258146737540677061977348549857369636497048101273993140204531678297486176876950383922908191263227346242448010994873852240567006161587958854666110970152837853542552052561954327872349169857314977062642552445857257404003339610003388376306708302295869823913817287700726594396300046610123233630624284709374723729687693430222759249001932029499318068890417255448614396713025812379608297837390865947977115776033814537028730398993859509334205498634866944177585207652757092179073195408508497115971990424758588326589087877640748176442917589157079608867031348940937850617470851653392606185559064019441639432338361669570933665926736799045696165781600883692847025115927505103066352926130137755477929605956924342025875053253262207164874761762200391232002544108509431960941847129514062320479153201673303689146978403996498118677026697575019010263883055671795873941979530417042318038074706825045297885696862605044947299448586765253692919227053026861791805470215602363291510788292928433028727627250975823613942208127226108345913681258429444639525974042116753801286451675917442817006967540703071613405320969498057634949681360430721718450720868754493928825748054418760344481353195288473202048048152761363030997943090413295202498904494984486469873834144371072749534101911793339533558015220416441807334740778121875955323000552121195558132773950346860105519155398443156860208354037012341979109542868409184821647390373330210447159383310577246534427558059266658029806550292859423962402048907506327968744184769698227584645767361179633116985202886039827256023941996886688728599534509686324160864112078574249929887772221582226823310234548818009547308673856744884179360677001690756514690016736300638656001528012025292422492387194801064894725468434649519581931972658602432589571343296123882896403692156574628831167610171208036535347345897865961631807674900801537202520175200922846025316016846757644760575766682599612006622967751771365133357529511852562144393898994968943337865788563868879747824625560859287486732212871481067082682902999336243873448398564702342226699066606115771949246195731755339031250697854155751312293633596562972775378408486026372543060501869068899984807991015138862076750689288799394419445161345212776787227386654549959474988210998675915282938562793926582098040104156983178130668908365927296516178079381213716423610941425690120455582444569744979327996614935343716809089595573595976335390204746747080777934373801252426151029504255817494157983558929594771618938691047674665904027739570396757970201384517284481773553540559725799619965340039953361891437141747890751238326004848760916647419295992785453247927342140153509994383592394740353229421140163828110348421641738843325424806312396725599510040407580975551082543298418595015147350004313052842848312351749198677810504496427097454898991792150629136699627440451299179061372156419304245312600707507829269197267093836919924490423976724331974417267595947231646379314719148796421014971036142369507183313110848417662683267282266358014414042949544711493642849041555931306908048309514206671614986216529526576698048251547079472097571498465974050692499969055993663782791532556249325283577700040209465151483307115161868105006936923077492183931250356330938287801733135481562777854511781580201388439946487931114106063904266580923639986610142485471684437607523389779755365880808669742634542515402140086465097303921800833439697303237817455684618462594386191190627267350722800912431739693566536060687914466928311449056624763103198697752944788422053007418142131893419553423235242750751271263491065358398416460045820299392304711120439778560887143647809434844999351377213950460508819477074532141016519073152245895824105414481102651022317139812124774531087883474052520297297442257034994952514284528356946448993739857290645032207108231942069229114512941478503185227972277013396869337069360249364031457544198942755780134221067077503307446970857529782916338700046627464796386754789570807706122544468963173116523393851476980906423895771558621960415698977486774100435805630162836804780453758944891443228380544120189794195882028039209871337565475068163017401658554356032557895846099545222694468664259922678905830023302760571276584472484646101076322366503345570106100193365569271768396133220344691337139113525022381389563124837812652770416700223339544914326752511995545659471318173949918050947335899633915975903895287614176256605633800750840409965123212360914975306991683341140660323064627142203503504519888175125493203295402531449936485526268528084931500859075857429823045412235493782042239830879844209698776986895609282299326408980610160007388084914283689007809501871343799121017666083582084417069457907502880519522070419451580432745850067294954123431068500102468405163775653211228264889151536631510346916982140101257822112640517454384094188835916683788784986009258986557481153801174709898714825591351800858966234115759938161208309938780973430655372517210426349988872513066694594637811178831257041575568838107364656989991202209376096426487798480151448825488376802513846527902807502805423348977436904622024054382801535601568327971584280246611854273989511060637081631058322152387579626126770308141082321692615085585778584441131398459479092915766284051466859269379355321098863364771835299875861432336934684218399709429874195263339643390864755405005610103652324914166383241422736657026007497536875499053577171885158792380416120177300903060197328599036459214238462754964036143807970890301240796492515850471853388754101657465853829165298427133061268945184268720071364197480888912951377961779407986587020316418182368933080716591096438456685080841711279781883089523984854459323312499513675988007450196403961289922358745683492201559533412243141662017528631506879480895566282511026280804207135676003390506060537500313618172586598438635171897805470288523995617551440550906818149765577139372451091253708734261725240154961635133252413988186827949092492802291486342606777716199677202394217534072831722408625157373349208852051801749727829733863442263074870165467978567677134467210765517521798081373076590335237272562447318276305903859080421005523482039502845599481992742239835316243825672649041127575103717621027071319637219825498213832965010524327964289976799056466138044758431774205041908084330044920218015034358134411090734318443397152116971446435865896571957096449860505941751425922255115724946630592207940634504977170352156186785728750383589751163908957267030450875103595478025385731697040541392295981832749850679652978416787061520079825248484697682371721455393140182350248930039628324761105370569142393481732460579091066632196705704462918041284585175048467554233724183124633830908992227447625359633651886190954842857678256131078048642185775208004804475490437736245997952637075737603181619097005194678666577597405044677458562622336557526630928456418957459191538583446466144986873670721083022330210418297520859258233058662277844658489909451205180115705475269010473138910033298911833624562658721339329842671289097937099266441919087756239802929770815591496666123799783406034906068867206981570846187149398901461884139366498503151862785905501048208866023219732208866682702043635324731153445983867869129132984454831925889260401187294837129512666222915631219218914762462771346711959370665299933576494286354701381990634964087238983461437191146626186730244181855679581471858794020335358846695740830365326436635179595294562252071114095979591145393453964384149102639502880184506739608803392846960856508511776736062067562683528314991558191189331272548584529484668648514510327899406000286206289900809177794657579873070513655665479405184676529422822782085323539952045642602360323421811628186033204605526286406510850618985390138182715628686358349405111249374152259513582946648990528253486632497206279042144901519377098773325397205747517651541290949364858807653737481827179255044630996024791258713651425689053314268912874110534291683021497440196886675327956307306696198433936498461566211344765005062777222818524776949273655032431738427190516193093216152955750722606072686991786186462249011264434256440689845260177146196386561054251451732904539287178691451951352362287069977322561876489667180893535130714124604620660254580801567298070345391339417646065901094753853403096312992324026935461823099506756602088345176366795734734671718401285056497375997748477384432080592152633540217717947560532382571728756974510413407326482666563755048669689221939125248733396165249522275238810824209906785705294845251224444907069692764952763014503743665449533956670859396487028715554458469610959574586969733748783871349415444218353630353831972366326330774748333124734809632225844527347400402884877065659014220649473323094869997710154635809123154750655230991125154976480409973066911028250194166892023642425687392995489456429682195719128677738370481996318327378360728547029051851006469830940538475072175351153641077238659563917948005865852984477500098387604878576705395193074922356262783613795273878994615913169785065828338867120647186531951673145962120831318022430118920348235214109256997345896019882328221106501644703349317151060019152434084567870210681414715499858647564967804304100096443182191111847700470734094242831848464000434395173133419450527793106662365594210441269037776750071377892396479034769961094053185741497632233280957084382446303216225956715929408655233919724432620710642835667464395564193427140817712799365973930802028637015787741634813022179480197404876517409499098869556065227860855464915707070718688586204603745725136906258316644184251138805326927894505305511385879562989042403827222752284162658091760023363985294168819991806091953330452624200536180498909513044979756860397852608944043757806780238797812659527802802608688231818274643048902073873166143761370713262818279807374187956867210892766158726374059992839317267105211248974877859911476473369605959973155172009256595510119807060652351140181006027127898559795359099224472844088002775905675740193766735473037866545275551816089279874950912295476270134578823575329102548661370772143420598399777863973328865411892398309092142942673124536118845186612584191675180547033394185547718227993105329330867104884564969686827266463977016498410996986623143364136762206263029134986754608681361424264732910156231260333161177698469160588247047763466352447333667793549846919267612906904997675272071792353303438939078139088965164773583596381197112382055573732990801457544183784696934262515633073305040432717391712093744762234694887073640251131304573605024168834282503100162319150062162663428576759072499669666930356843640001004616698983067877267374177426412186443959392946299238586073870018089247787147316678729096589839615070960272496634981217200016266153371951215498990954101297303487747370147548150659639127802182589357928540269892519501438776964260657559572093012272240302277461361596798004853866798044915860743975587636757989907006450563578599867588356139624216926958580596283319632039893311192177253537519456560120949693355483302588067516417121508849392744543523898408014784884707215799082435787412655856590059204010104631415521359687180534614619690765683831962894409866550692024918619244779941934618084803448573058144784286829409844727927843518591334810125635346902686455090228070839258460652064335522666246124643671699992820623005070060721447285681542163891729610332338292233685624983190506224509334985014237679564093818770114259836557923048408603566986506028979732502257730103570458245773498130869778894859308641121257489645247135717287350291525465947273996750484295732341097534660968721698672160239585020317959366602007653555512935760059088032296490077450274600836643407959907191393634570248801838836032129096116572091224372800969884447700633486765045971052000386363608823242048386684455269473077588725383699810853435225475929842336724306989711324281858814646488711927119832376828879396219954506585945788344199486969524493871118771354051577758956175421419094623450485562068627467742111014857333096091090858551220458384629446658501393447021346804913703947224090400481110804340903260738784925430559665860560455778967287012076843226968410555492518744478190365094825951961631571632815298569981438656696354791935979202002187460476918315694931702802121942742124396871887855701511846725163392080681265127461814471737495186911949821463185289534841205935268417504491592060780546156161578131627397524683732648210552746695009964452448478491446003467757429613208920241077202430420864548009275827078912019440242054573060140412325760747245252648850070986480652172767209670293586737955708015984564009171986334405284834089559719614301451767605843611251634196972071394386337264605486957801602697176393430259006630045248970958462650808711214557394422875696729682662149437515707034014846983482248646750108294318378084517683102971519031815513754976776369586857932920212776541567131094871225924372462569957399987929450846489408594783370241758784149653468166042562747033492432944343496315286088257927595827744149528450756289654145397988502396638972707941764970969114682546914406954984262562090026016132515919432846340372123238329077588331325265983595573740361032894073031850733057012061353992907513882774442786408845789096621521726727016945501793601672883909934153046982375729234034857945017899803035106425825080155853353173882888836088038327163528956966561707897283967038547705028934180520890560960333779215974711783414940534183021790677795766242608705872562625963321040873121069443744359013745715457441812189232134960786826211967111764736888196280095714564033401946722958380638140481235433137333582814201955151770195230166394763097268888069977161129224673100727784202908368709206979988201086964708071804241437073738290316244922430321656942754310188636909544080642581623735089558633890594149223192239259716453278206813118668352766658680741216050587200209788788686219607070385380901905361246791596976523805336755755677238347129263201791784411336974536942719868152633643300562917778082765702785099671678608961629435326735986983978780716929505500552074664673399764633098370897394629644490564716989644389467728773007388054827409542608222258301660247118123134637647665784952165518964559671231809701211483988716986805596695813305135760710540812968763365106088052065902339594942550935704937119640712618425101480075947098695261115820073196149018093122827640639615782723256499603897022080666868876210976923979370514683339092967825496120625963639500416002834947718338098634645807226156305033172289079405324532753652243013610044943646602185501171385522962305407429579741070183819260119391998330378231447791514075651709781272796739115413938587786328834395934146392937520561310313526931697025989663382845165467485752218749510930581138501481785147157322373869531789464654639308587447576617339856351526221165353148144871201494180305973577263598545358884339963789345116945251261652533834238927938243636614564810515019908087587390431579430942385211656067527725261784376393836223058677366328926382503306819791496865523555893505942063733419173988067160904815479673995123211038182143326983624053121577322471388704313525897757012484640705646996450647036299666704843651084009486471275644357760413245787426219975510079203983885855960399720198235070483852186901991253710664746343426376203165451450674646013178555186395036929145422908646363459706288447632929581756040994050021790480517551408183585880991562306676721190728796910023354894352444941985933586655650980947698109511935350051018867540450227536657907461035670751329411416766291811365215837979330249399073351264646119185295796888854050787954567494356553756653398269080301599159059369519276142127001350237076315747098095679195252765583936958208879556986938099472387907010313176762163020392936614305289815849668902982006227932376315542771043127171121291907169071447860019725075402326387981844013411343529737233448347165613180881816548675410122070056830766699844043812050152827928276542188733965566430981444816290688956837263620223772549934189032609301525616493153580849547432418691974549365920753777378593766206738710033845545606835682343356045132917317508090076921375340282318692682690772573462029337047404023631828944104689167659653245393869097532515331436731393596533206592261182653779630918196118809510037156830861434339506507475660570450869162971008710360677766667159830907609055755593823325268178494561824413282811728387779456176919219505839200667860107282478971631897387112537810910978709691137421962005037507627308953792916895361733742376870050137871973929144281417281794643658641014821901345545024050860203083274018615303380946515904358422178373314344052460193298385873565225267965940871003072231025941297101101008471187597542323591859495571646939128355517174793367894853132913711992670709634262958796666526214205459492469526954634426172816883375146323687841576479462466788118594988530652880851223407421474635579982362177048340793360211754461571051683111794586252637230714596794561128445299473281403448780505219649931928796137552627736308735095716196740621174875105207303850875442469952818651657320490967406073438031818873899045051110226860146966305579925102234170728643399540888113047857046471892876865446892382673062915233724713388311586234802919100399767395901875693902140904184385956423484411239760679550704738728047356282588149474505481041550815522594383914907624918160321123732524634386573128098696826384464017238325605784999740681766796082952167301834332553230559613557774129630695026813950552383771624477492579028504511060603628285244320160201942984319852662618880154199518955197323334745935016354239633179656324391029264923034873656818575290678941045164561775079897859283501634476430766165223855260379405911962113085073827389954874584791361209230469352675692560949284577491543096352838999890296715560922457642423394629938617936417132527988314481840330549168383210513870575795156559570999143968937025354318944410683772386790261086590787404471573635102051629253229272658105242487439833777318073115189931831118751380706567905905915387299948739436748463794650958932696537189676112077081506817636683018414807045449565727986459427448677178961732378059950974587776226200307989165922582856537612831013193817564242575037181677164552977626260940028611369542199760165228482905938475960560845808477124000179513557933501455467008279906176075081697610790994318676239480152762887639865910479430113161130589398000832184825208787104215707510653458976389081802687086935598463054476853784538805499192634580219877778660433711718282072894490205019341447442078316860559580566278117687195866926369212459460499495361044408891206621883364574431800357405802965024267294886854066472946740473154031014138653569144090238698201558118596382243940743920402525198751136680615745503732461344493750091533424388176514141282526361515983487604999696312199281494800260060795125109783662404899655043302405353285278665754944728446278730080917980688099856810659165934958465948257882553059391261768355445554071189128891588848271469417868509571101377233443172721371846439795768853281073680452048997012654762543800968319117364805133947770775714582918976046331832087546367397661421211265703040235990387137289393258251547952612979643940492793005661440046331817347090431271597814019557723113167795756596539871860986668672248571550084028829344760463896075790481343129253172704542968376489078249567316796865994058063593041464847183901000245128438510548239923887535135078035942468632479398762733443900164131196690509755964192441921864141767138826428666086622545509802232671430632938502622566912199547783005757904457453445154507847236725283637778380155659052885995473282878445752916119654621603816768935629448080873171568346842087972207981878642176115593442201096185760256077637824287326058385931754372614109791724213889331883030732260776597368106891110536176345233914539637837215757187330278383705562695866277819131955779184596877217802681777344971931754236450717302401471920136539483959309049237588784716926652918677664604722912668318179686601721828835146690910809392017765999057314953400325918836194471032162131706069424792743565066002703204195415569714208261414632993989643471986731175689184509613699153008227232093544299275813147545342599164328727762311519726674056191490689088786463798997951014436186456763186763237155265824780405968329334542212036613891108334690435081287496978847117923932210136847352983490037542036366499419550903452359575976495247014378945242729637960264852785607638935924245078415548212774038567281194935231816647261106613776697462872954454403711844206240123434112617472147957718717304559544274031234989844471513613415057540964596123934316505706318208927112387677097463073118773533374512026962016211467573833759048406527539800158374468051220071316251966870740605022507777989162172696116297540004530660108952265762238535643993409683975993917407288309173119239219809352343920699112131553492879795334576907859100789046626903816124315275985948267045611645378743506014561977001341002007601256041910379564875284055522385962592031751422694894642459950693702386959243841793972868353208891145304041054779531882135938859452495151308015334785010631124298138749408148452055600542201854614575784283173562081546165660302932740643218542068530886636970058545323086598439530133857448361578822529792277650638031596212628146664865353461987557320664692610267965962243035789492655851699188893762773560996334261375785479606655992147151413443972036719016814967928756542908091481104377492611639159128273536216680894337178743111001616894626039332065456326035028525126895130563894787358675790583428860276886679039294993488181682790720861068017279928130379877096455564535106937119186158441781881036430073130134546289271437608338625433875927362416166151193555915270554911279546242153336720139261365657575768026045227145024795374052888881021425689210916113807948511185085347438096397821203819364113347243599479382989049383775637376018991030310154306846752048857648236910628974482138700669078654653659555956693612572818729910010793715536813183357022928605962243340151155226718369479583949933450402918028141357566769247021272998764424696705553873952176496793225508059759016251144147959389055769506497022195545268598703454033499519991445838035589174733674351695915112803666732266563281999901947645815278373590711911153930416768890763501642905395335518005385456444620739097718108143428475229546751319142954353296917506290252044720324608365489101547072176165482858111985310704816966443095834079076896963947486480885900948760815017582908494846437737035285888375160145831755315978295766763838123054737514902605329183088326905831342966632926889772035822908268113951149228219940648803179821854907916264542385822108501413725214081390658942809478633358545887178425857012765193762199591721668758481102601518287958832362429919092791667944042507089700902178642574939022340132679254669461024236821605053308993030313792503642250621726779984950557656764062636864909309574374192336591547269359847845488316398302484102279975247064136014853452657697809743023995972978751605728590945109027723122238701651125307785031103603261073528451010490959401808929468973864722622883832775204394795321999761111987350215246112857311850392840259858805514171849590082501327304504816961404083077681257000420118109108258855658996351761294386192844065663936153475500412790513876562938241804750395445743216240438347798388860814600719413597046987117366103055415712985005453993572491750146902860079003018172941501695447388596681451190331439819577507854062399364831310511421720122489105168520771607677409573656013087621899907353086220909348498336959155857184419866066340989872655370708155080312385394737338808500145414701255817990661302929547014638483733241667976311245570421228013722514668335153370353545199564433265904422044366545160318412680618266966223830132316325313276312222298058148327943350211313397395898019593449913764112781677762641852314747500254595312039268712739996356618699607216124653200115843872647393263834776519000661349907812572414708419600786706121614468426173969961490207300877381013613691782227316749452445744539210034769315180924499760783958681341604168379464464486182891211970406663641914377934705759738717300051214822751268885116896179762875030798930676734618622755796673170511316565611239146006337945500716625965359332104426761581014266069062411891596949901945858998980208401344514512922174403792526093327901487446184465566804159429373907008956763733761610989669043593326537798643633109870475224194907226353212472498985670974165211028968952718184521993347476635111136452206790499391968208686907744638144373625610259092391875678448019919361088675253897285647333252356165171217428154528704696653982418136111464715747270921247645337467130221497014130515295018328703330917901572632334463063220610366525309312816966964143303534788872554824122741000291175794722684980165145601345202272943308528051448332219694570645455825065825476595557810566440118155198741995235906240725952567212930082964830920853305509470294958880900740805068881474231203332697744036986058632016395665181158170018092399674516785076475963857446782744643559973818750230204400254545558517925066830278268692827497886536730530104662551360450534224718165355286538354227512515515813888708414482641902955164421806594290986714909502617992961979672636444050786038153965374178301522727132735057993558300708425634506465875566393356977419451827423757685432376086871186360492129757879862925759374853091760577491568096556959250255319636458949944733530361047418661991529719392142922478365947394427173523164698769199338799173946674309346753624448227288543393128916608058185100130576736138031574411802197873287057936637485146458315001382361697599001363899541160347777805234281626500098087788902966925369584858751530602651706637835811710218660184607938037190203740981754052821949140497272178547552506145065467245898959598243767907179663104548025311591106827848605661734016971459418373427412639216605961072584958621787063144910195476674079003106840674652561855844616909281504519572499160424392412130655817463113527978443219817016103142030469650480325047509290355198104930026792740839957776333562658921404801008075104486327766781654678374105614271720782173504671095424994176441661948745884070841131676182681777725009230340144794306201029055896145841155213281239369907514024020199632096772504885007052392091729362804712765258557119158035090614125194721769446858536661455804934500554185470896250542275866124750547477498293510144369745592765001008744634446290562953260318318808795443050057765507013896110394402470222223042744426532578217491737769252999243549102133983248073649696170093370073059292264756859199470241508200843411381609206868340490702281400622913494534797574770338372974283780460846431425656244405572922584152587671923401641946034581328234174931394124760745740565354819150462388201387701608612861039813467892602583637171440364818935752199582250675201516130441142163519482607132650575911064830163662149554571029436203789422370985649374230273698403395364114567910424746585105059508265055538565062311680159174127210311420448711051098322280179629308711367540626785132168760465146530279959378101953436375940489286617518843261223586768534205066152488281373078879926515520131434987697417822524303906877520868486889402453639208576851635267042384941759929448948489363647450238455819476892291535736638116948642414973625638477735283928444033325985910662232008573504723779813299938254870340926872789685024922739598544723793405532217135140387692306551406549589776520175163121195343925049815450843609325794354955549976445235192017569545871075260336196163230736391238028515450014254657356576509714868979258403885995011709959077895251751277101796191626159965573472054541557640121652618262335864274844188453027604868454146402254056923944562571294983154588314417949237749107906671687211235616316413425530956897372405795935323149833070987287745652466217412853147896692217676676078629041254859897336849906500272199629068205072806228918017545278283396194536108965130063799932389239582762793380053653074043534747778511843665512617433966461862532699866031573130688380103117271894805921278039061361417855666351340485999606736127934700886006211946803500782342308587973112413336195424552845987253805017008977844704346501139047996314800075087082236805990697105825795472206302424551157127509392367503865308090174183133585979325477761124866312341048049550498655915227678710315598429007764880912691793277377966131272156129123220953206943237663100433825348481472777842543698421031435130363792172590865880127857622104951047308015953329999257157747351303708676188795703377324632060647767640761505165190636721684982104455375006714512474912477197268620172677117348769422261130184292149615804099296688743407092092435455666278021017327396923996717268355885630529167645682854469271218306011226629412902110233407072782023551220619408509738772083958917427018775285567029198728990614771947357789433326313475444528719080295220392300199922737039940743117906053654379229786081210428842400903985211707698040101612741334106739119417001264660715575419445598980530864284362949493999149578225040780596240935361209617621240902250748130868172667567500417016276174964675540649162246626302101651918163676984996898710203719406914808504907743622709054487237307385927918978753611837358308023896054505266524357057174883372848209632048201385916355559146642041792167434486196475022752050888678474312815450591470540562934659366665766565848420561979932802346023289706934505165369779813470600498827354659640324302126415184299903131705966358850375292590847496735496776533630944737034961142401868470720743787278626214550363188503989015171472028334847610328445901135052986488287310593285045391612597679763182541609856153083724992389512348659439433361710869847717150608034455449355870526504043324435192389023845092664190205909325214032390875508844453953425006800175538061506004379250677421274440026983864812269596683118859600201057869838708243614321785420866536583098059860991985182975666319407466824515145155241037209041964564927991750252327587563433433536813467424065566178305979925414006954200351624119495059759266256021314851838192470616166441014639140596216489407800261948453105641872165570543371722605295721992463705524387431376799130575388006119672790678298088682565667905921137645133264682868823032094507814460168952140754826342496204265678128071787323327915176857991983266369670903369809209366347301214027445414992066193198041416619716384351058964746132217472954033546333317584444124059701650959408993592953693257363511608525039269116921687380618799855849157624796679318856279670581086671543462832412473406932366585699803407375824527421176732009076133600266876803732054464188499799055292478238419348224549501790913561943779683187510889084206204973462483365646750599180448605462279946153419029420839656409757020335811162441065701363337428224563060068673142153663224588411448270583914684999701540719198695007131242014316756539290167400464475989883639892371800796528951943580619203243245625948748669574318444381160805076752070839163901764226133388654929699186160605993939906407556903810895258491834228762713049625461924925750825474836479719746535446083017648429833981722987969323327895818400375711405284106813401627174364882641345486399627103878756862285202762544549878200317431306422416477576160981851997923888565439624280499896860396883703671281424914908366783646831488428870172953232812604397500645282034053314885270396803764740264482765692586953853215785957856477219323007201850854853081602064590537697992612495141040107257539828428596192638320227842805942412389317295048324883998440058903542804069035727034416662553228584350188790669890962362938274697126840848986318577454594114108827778418591954236078332457736594128877829779581029329944928483625215150841133439498551712215969801205044462371733667897183550581283967314945647184030902564602084450604109640365158419207315420369013060492476923435243727110789149077039321237230914742232594555985428411660092493473788271672257810036013062355044981849831793514865839153777268488296115893546598145193793500041928050010570608227682443714882996254815069831341608352673002030853338918826072012728684299975110725736922115533954311399171241942961086868761922845038564928032565867311806491969603063552686854015968424814554688494322543036168505888127247309408806778482617196987627115710569592552488408881454828131468851839936695825423282421555418228523375486063108010978977700995214610003712659101028413420096179519668796627328151976160595401766327676846499859789043298575192817198458880824882018934562225378556785999889092740265698840533156267304851721039473060038000512184746896175329902393457307542256453551012061044071757498711055500558564468672649328095249349850191175463595442515559641390480348093623761925781300531126667968392721379577830927310266814282257725926926603459030844644479273639431604768757668763597843223084168187630128172170843102649028137071173021798870375106044644169189919080376664379192443302069803763846833301928784924328041284913608805954175345722859248968463368612054747495806465748200423827347949399651945690390294452712803085414215788568550623541096493141400814122297878783802885661250077249272276974043103703556331877550958986540403531547414122667074556142659165287584459910334320619498355153914355204117541789956666795261872609651468803987583315989552711789189946257240396367854238075945311126765686499086200245691054008040429211510472516956852965329475384525575549641447885513669474140460342776824955081016448296267881417941952758052029267538959095024150211574611630040870466562131149185846580992442021061902292114096358608285130552445634691803938727500520375955341550932341960224313671959394111681529469135096377725645631967529535255229302435130387461161339363402783509014025891956247381750025548375172517541588869754053307688298170111772881443176063626640483047977422253869672494029989108549519915978536093783815065636559609434921196350250611700623035786235528818521281161805477205247890122129644095022567112937998493532369653474779319092701791771493514724189836468727960482535662865603997648886728767713010765646417816102668258169185940620244961723531419791164600127493780272031512808701399875184134924074931187118615588591283599801009933733889397694926881471295590951789971739437527291506656155962683379510877031508856210240960761837969062579472385209396484345105985714034341007040510637942472008600726082302143777300145443592481337192591617647694995187404362124798136806496795628657064082408588258705089040207868619734378593579290472984090244412207041297149306203056976101166810657630239029870959838564908784955021543878613983446221387234237569777892200638754339340163770535114965160997160876689830547873907509866523891275893630486694327522859798135036244523721831467257036497285257522681958530624177866271334540029812531992714088800759854544947916601584274330519444015736726093882335136753315124041441888027930758119762179699301667176178683462779987343275865581853627194752291673973277954979369173513363391077566009756294465021324447187787315125836005263136463028309077473817090095748442855278267933807881009133774659104661002668077775738416277922490566439675113895389012044519205569767795339980738521883921573626412872129288872635694925799764834854271248145418052489546163964107637877426118869818290603733749377571085717578389663530263747912926824705099573098092382095369811387969815475554445627313505920631060027850784505311166156638431898728672532206998397479397832220230937351421400185658700325480012183185346656959162482773840107259007072497894645266590097587880718261867169295087781802636469302092013656612872048850809560361461653897882967979541502898274969376945252358342918651596683476105251366616029706121724504389640783542055093878599042060564385979593291964378286036872515171320942377477497946294702148349112596372301867394076264643293861811134686849496850254257829590347048549232927529748459086140399793032724174348130034361443932601017350601527514676811707637602782411179114696173558589635005761406309451612966470440201971449840850093736811211703022219797066070752682164632912175749428199422343346197118839602919238823206039470729746438655935640753066822388424712308783126867891923882917227062290006902369965612963993305478355579633152790300498232001969276656370586757441070969962293225794185897278147243097518677134104653892335528418454409801039217490698107440243455476687587736307705651992536220955193633526172758392012107183326481003114474719864647668923268606920844281897721551352909632743639700895838564594791917870368781935386176033360422320448814816547960411838259778596689041652764312269247068197323542117131980456731606924707054934829255245737724347800036267402510973489441597419612013081760276997051057919255053492252721909210648762176853961321998600209607706846613803220286973375659848700047383864133739929184213574597814194289668061260807433292295124562780184183112546638738116138898579198552583501277780983889280158898378434130579163137051742337380091775203997083330328716235271640169097676864445757353011544722228502159340148259149761536452420700847955878450473877899272760146261180528147039793430950373361070501529440783888567382560963937305923389138285216713829475920293660923042228026088320854621541596218752353592398943408788741877812740862610308587687702300358779155357938803671095819027442117067425477233777123475226924772274830609897402154518240485421865807913592318968717388152359788332836190026454078256345453186149492151140641575231212688655079225785989916984360191746556277789265443357698130253145146962089310421144318281802415085643418639745991835268160316802113180589777477961549774813264075328816844377072059722269914859923367233698308110783543361023114911620521424402968744523891658846368076106065901690614219777567010791997881485836453595909939788454538158464961269705720601901006560981876955476793543974562834407009183571824203323407198734692042026761903252588746034452104424131967511054141663130098483040401501121847680644583031185154859412521785876482947011952082490614690257997073142304534473313997725007431748624902205178508390050367269339638778646858269846016473381490457449098200558544772162468308131075663070234253578905667001452494490242714898977573314839219263612660188250437963924610473393688482485727772293798697682890277151345840314088662233652096823417833798614980790675391125784415174171640043830374016576891083521668933492237708841294145481510912218241282066337795563587240016135764092069363559967579039768042436240924420795736315731269665656599464483822345224269645911580350580773121360495997058975907829224570589714333918239149048993125740010554853609674705094556154125575539442986050910512522505341591177905157478177361209258680004481769496841156788207690767340649970108270185773601676999956881967912229450464507128042983002573589478523347385614449404355691731433033051924570400339448805921949949741847281416156386555186427534879465945699154195495744409970786819988710733350362905386994439792102336502588629514936626855180557811051224504410195152621267873705691113718691333203916779369641774448299603901302871212736864249915408918241263862376372956123799541058552791301172779396791453029376273222991142586573739442873482104907493360072631717937026410170430397145343273033313992631222986345217501279961175543460727576294831954883793173342492656788330185253456372055345489245547512381987121065395955572858157916805738376454921736302098132349509515711484793606375945189750681653554334986181693388385965209231120830285972954108540110021744244854157648579699171954667821934483864070755147990135005107646724502353910537106972687704944840437290893204897067947439692204711110970950953506431855550811608737205080356855857554932023511236609155893093957694757936991259034227068657972291738501702474907312703555083396503824487955444531195667844425577652081600566051914108158008205739402703615113892752568626758039833134000442851894540813484375337854084169398876209317413199483778057534687241868639868031649290556184881938219671751859209749692109051455830273776571180591142646070583130173642676847211487792956793794748012245324296921253223444387245641046662256176606974206638519599878081986076616121540266506761682916834005515629368402444905392656557935584480497588123629463577829803935417113552064331799761925101106175566869417492251782492742623635195218279070402737203502468851830587629167231734610864267466640402209794199467916620764341831035270098234577178465234898719371413405270703696137705888390846662111510403962365585449489339373547800163796549696158053549285676342030929728420242538479022500349944907971804653940104612905089143945623082119313354511509003078494791347478698832921191748532739977258117318599007672375336178825798215309481780693368810613251770026701257134750799562936308710453651416222585044831166248560399411257182724969177356186219275706035799093178015799550542167987655650226406310569596841117000345098787062650743890589537476303205225546755095320131347467204400860911959819855373759014612904033133748545148034828536237638245855566538408381294895184515807462994692502607402435731044512273314618159431047639603243578996014585147604017515236875248953408356781701530913474069679120253269109175298065289071195986181414983547954810735037907335562043625627834487736099509740082632440441549304766785991945446482960871540812544080280388302232532124464036272143698242260505213607566209908436942722764821400276237772163363811719287555411547910986040248797039923903764411185539254363244974736347313895288203943083258165510031072647055784313640035465102883071825163473790285841482266351482057552322737302988280866940601180915719627072072300815592489223024713347921288938981501985610940545343755722872698612938563042938718155473791649303408377976062201826653906427159947586554119914566815271796013102455846945181499887226096047100818716825868462325911896692288007923885378871766013554649935528252042353938383372587974352685394706526310520409944659906911129235837766957596387074895850040154136143218253998676835479074449916271427914934431267745733795111331472476074713110264308388086828097495829069597242421869388763918800254143899329652711334541855296996440944397682949224062970794711349737546780189351527351477408714645922839993738401967855608786458567842701815946171662389101880828253418963963606084472834007117790173600428208245565603004484937717229419335170205971146683020796996148591937543250483632772605972850229296695308337554927366432001699572155871714381672475746320576474338309506404567136342640663489092617036007542222167887722299022029773721461687015309392177880653492691928159754003895349798882997669263217669920908016313985594974817299294260243892098158660896027667922145303793590716324288764112033752531268457899943082770094307305950351441752290557724024640089591056084689260653321442244094823378857094745940605862028896078868631010741388245419388702996523726211699387940462841777757194871699620425155288716729521032081440396747997915620616078056358752239611241393805570857363738753999478513981980082740364014142333326506258837510282365282920093901611660523666023184379840883560530094017119503982391102088801966351762215626745324473319354706010019130831607856905026181019732172489295383228919176379269843903975077279087655034039636220065202905271381312774818955132710321698125933580006835672368665304132258600152520864301822976507609962900124330476176417392327410544273317003236910685068596832494191680296191135150425927673033981043153491386549833837864053805949176717048776018698691781073584051965595769317142409127279922123942437325247472422700919685893692043815217131555384165611336290476259892065822290155837259250812410135916022167307482140575627922748615819318645823992305700150592498714970938143669927180508280038715374456433130579400444617506770223637346783737777561539565929647371897710525550168086749718131649804384452501092600157190335596366493495604525720965642356978889832021184849995943707517912923429934165021953503658753977182393481003625360117400133055658324373418898227408894670647965039948114087638707326319826218881543009517837808650450241234673110182327913089093027543740894222801453193681326686462553786146356152813563137289085268438039150103081429825924478557119315394826297271271978014846954756858068340806677810893347474059156266890827726995167831085337532911602177157867862383467193771212236153428875722139451073189764056660815700843342987761920304915056974355067299952667014813353237484241352551255020943930670776886167242497084990362586074318739857883874244206883685655061849349077556694020918275108216801875542755239102769210880754927214189240777216201147038631768525612028051529809631949202155254117958964113286627493651112896850654849640181037211143238381679122832872720552061825875149377306723513416548765383589589445178318698572665811250506764994345000707926117858292368938121504208946729546235676811971821034631094008905134358337209609248614944374397976824493737246370073383200515474932461325666589885072505270974055984586948080753114281184402206328355264264820475791060636179350176328171105304792333420736539880853316012438824131999663093156592497134174261375598099880212656646982920255682573687740975405353039524940622885149859015808624335712975679279129323485077069751920719203660299377668434116662237987001985656500155028277057740946923505095605302418432076955928566210037905949534015218071876914567328511934246168847568395704579462972436349180008121993039440145831367881690616310896971853234234149998455173463749334413409359336239864812515734470566685569570869379362658494455571208185525202259031879105353282700981332444495764632021917317289729211269973226676140672882964244077835164236065235706295165466648341939939687564112222510460879229782224317172246184870905968709092084093217004624843095490785016796125595097482145242487691068881032367449321153654712802065202008388338883683622005843591848217430232094930595183524174152854163712633685468388014585854771940430288408194412256002033048930159986534855896534183293805925655799821159618912102939348420595279458540495402940846068667185789576909920741527516894527335468876990933857786737485289476029254708235558013743869342893733101537756864475508563885624359076367487241068451675425012894445200369574584703567761668598169557056308361218264825843407586652283176893555840753146285929825300723690626979669481576284896457507236410449734830858639979457553464419362035761198172664722285625814937419648904648211143652511430097074537488113124426695330466818509035939105608408526884175293740010752275247899572478396433648824035803748893713197801698650916480384957112012130433008793605347959907381501857567123615597408685705629124251925443185706254831368563652434113365574940649274931936715052514910167547764257237561676120480895957714329936999470819031886267304922802345558714384168536668857914599430536482380316801163991486994986833276615341123794010607978078669894416810962423745675128114904767604638316111555310963204947417318229530696385311299497806967374695892867604406435885070096452686715370160352572680715966215806480532500700217469208868772411193852998917596375116079123342038989180161013911433068285064367301191103840947188376521042151945776640148921460856096793546174995017611907764538566970200480251598020226992295677505525401043349486730612703798269655156431488546771247640089763203987081199667868911618742803575881679483199840162878816783654534972329888403372307432255140740997939099261207257422539402275869342244636167976171611173564059974766792487237978824001573380529101167133305910326391418873669693077721447028197221015346298540174716951086715770011517099559024210317962491651439409557989895999111389574680791917888953117543669543674300097131589244375714023771149857798419897204304786797506035746518375907414281985659374399793532681294224358101901039550096005759727494848003968542929099010849046774459804210063239236872832238723189247032038421063847367723014600045814967499409031725071005452947588005018307312542153416301041787813401197549845679197983689431369548602503839328200055572777602325015289163363869413350744062586866288810512921340581950032060884985628253570947470157859059601032622912248819710475627912991263640613873017841848082798108265021683831549484198845046144179137738329829649622324701561489089651323765248245819982988504729609657286566633643377543907039859269078173609272379106725700637534463546810255556264602093068448938433336691427387179515867956807813942873718788912025794966200057823310656774495222056491800019998517648905291101877247668916616112221425472540898246769481339410168320928781629866468315416570394437170204460525690840978142936004015148637379857487694409543708286714084672545686478983550880116299332350199398921092639463176249642139571352634700123784677413747925723778029553845597629708510141894283551712128174598523582695206051042964603651676093404360188367963900629300387156923854870344972357260812955130401393415941594156697923134759662218060925782819212004403199735958669892998789911636264096346669789004968398803308792869248253401746952213514576654181630391670335642741451357936211557607772488413409819120192575980232055323065082747186749951168456663398785513213367903883232614071021598141267249799968683443295588607646267645636973821704255440459848761229590962147808776654422866692283391456660918257659085005730816707582334453711615857627364854377724889767717934148683718486431213713562889429982722285444302631782402134952148378889375838405451601445944219665836434754726463232968794187320210366533270688845547373693186698925742370442306083279471608589598910751517270823800783997931876107215193460785204001110208695557574414299049911672763628634975045351893582169247578292263669033081713698369978802724285734405110088407564824357930332032933325340172316256047880227542040498765095337569605846505476308222779840871512055167473704339729159884656129049068107400208657236805261530895594560610987335978938423227602694867657710659472230074960784213283719680244580373817607513806039596584004153299448310774595144590128471817423524032137569356213902210953952554882246677534417373525608823984746307807341385381376841079150579907448690991486355316764219450586709634103050913334625374862379155887448344229327488550513340004676055235921697320460755580057997132227518559474875767487680467100392207254617282910331640030698850763210610749690630121559729178321494361027293833369285893410094081037871127420453844595053383928265826865855033328278341822094881187711307567828630574064135994590353715478777553875697535693822103555202704605322502122165920266608790389140273738426253034634142269548763368864256790610259485843163118241731874910841711785411168928120601892259386375959842430294502960349199890277679823385987288985628863520989936268725000153060449994234103433084265222046341425865170340229971036328548082906505528613938485704253159293382424017126759614817391473510870693171964233232009121993867405330484225008509815493977120065180954814300165847334985562766446584416857221403296949690875858436544454447374632102085874772812783550019834382753291501227360745906574320884171514230019129372289472779530930494680283381090887244647369120971895946887239493298319471553443080960581553254901912484542730958248148612435992574982815385068953875355076066715764966701323131738538084233692570445178902390329918334227870760515737120420527283891917254493037161240106677373503639499302545360272337191984383467419246861832351938066904947468308929601197749458861569506382801674777546710235135974761906772277468305555689714861272094798796760677791851261993146599168462781613510221114598431963163568832831398742529661565689571912891090521458977231606003616698309740699074070241050292013397000435889133896134679162963713600385091986277072931732470317913707981356476437272283821049683684645973702815798814260803822834854633232049311232891468670752825518477724751611537537350780039698083949693130057373590850031274421876374962552700790852942176692805636370558048606069944497506021397813529338790089592647292729115459509001683620301614175697059527527589577618585672370824991078668450528430803451971832784045157408102409926176429744621228720049120020094255058328715785805675551790707896563762032879251252633752916006886638490740743293149727237783134069469863783835122898851904201909834737226233914531313272129924586635093674469209011460866671066519230412627212556956883525129351106973986477096557853227354978597713403956338185811323646873455849999135851367060951438301569530423682538757017723821703591448588561944863331059052614186855801154742655735585447147597597329667747622494491396959416899283401436347156699701664644564250197707302822005732165095905718182536707670891188350291437754576318874673921571014275516622894281281345580511627685715359536800419179185338507639708223019524836814691940795866630059714150921878644495581581120009727830975913407751486926014257592558410878053149237361032249650166696379440275241754431696717063463667497699232601888906899520876950553030277756936809733787205685244100161787487710908230794827831767164390142807163284707390311637614813090635942763762332991533366019478294567697073123924225313627095022476687360187752030536953290246778630203782151184607567008448519977260338929615553815848350450975582845326798816056583620215652020051581505707870934834132550862399339425420517362977322631524489660308382968896662684308134219673175953981917751522968969243540103344930657379430116480048095665805976125348190216509804608989805737622584470922503477648247908852941880968491151469686455228175440942759926931929594504594390134272938969522972886060609147508825919518540140098378471213304294201608873302485745818182115034885317852510967392336507495021784589643717396538559968849590726749624609640410530650272016805995600587650568465396077602764332816068387408818894864675065174337495518494079066311767258516420235957703714602878647944461946610329608999713879554752376955170115134720521492589715611491590341886445257511749676035287473162187396573255889217045410126633396716611056601120592807299970876508147489653135520312084783476534689061231726636636852459420859502505718205289603663335850244651082570418473583845844872965372686124981522225913861595017836396512737478595973883886081335365034462464282313161413812326945165271441786107451113019011114685610352604742747223575585270014928038339071005614240344371735469776181734758106340988520745217031251564360929183444029228729582457716331638473427819151564126930621950122074663959982203104758388533216347215696346643301553690619091651080252870313863050259694789272215912124792591110342383841358829247765330259884283100965777059094561220340226842784410741860757184604466528360446847263059830971527725245065329412072176582889722825586651583035840887930660516701424100413608844799833995716963669540989564785310975026062083841460787545552686587615205705792508554503213477369656225891456264971667604492197552454152279584956402631201121228970179060998006940978784427199852984199501006512873089546152064448835160311476733327943566434103794474968434655189826706961660504922930170531613853794520448857716859741313502872700688497599221783517640666350422362555942294140547450142173244315198991900244065351540440217515244188364118745664048593101874200880717822969424798684770263658231335654254227873960561919012422261986557193835760260811833659487605398561804009524254122314011894901640566493266187219880027414543191646037730704923681026974176661934799755655701193785336546030340291495607752710557057026872567055039439611767803881082953540286430144244197639449932749191967507689649087437518978372487141517447327070425788194917327357267452825714633473305530866113832971780720053921080711983074875732108018990003755931095234753313099590370412417654838456256315481745494247030051181597558037305656456203710341508560340636034286198704391710076115364195969204800020847210650989308879346649310389763798025713562373864681636370305595295821710828461074749663212141452359754804694076616689223353425778917716149649363041166919959930905203363162419762166890303824142142811519650051636809984064862361511259560816217662616258899339047475908619597942987843281645441440628951212233038003532890696939368266058483371284745882291328468150708660260500803872387358283722496400886003050918736450078238510071587674966600541193982289294013149315135020922702735347607407651763326179370942223935386998076221274967604906364725894272225718444494612424714322383088201792822472463834876970127357807986802086135675498506211628384692115094070721129755271449277265902215439680397150961247719870445800602417647385466895490743479304070689690442936474604106258563323494635054678276378127565812685982745952838976288486611183010039825599776812238372119876699889468900594009508650476244453936193960803860732210738632237707668813432239235714439174990402392003660312819376898207325559310966912430526068705994983291584529693162800643249091823530247157679629168871302056683224786021677333542752237827019217471484284583387295950582773029522921371701866198239686954424786771210781177885021244241676728708879074007215484002049905221988556746900505889212368268499897419713793591342912545367761624605395750927429233969777930560017926156243195202435096596921571017591506318694898915849414926388314234892729519106391347913929321870974189553824177277540613867098740561956918621703031307845380233537797869934419989738749615234635485498753331113023024830877933718310313207878918212940481872571229449490940314291752587801519790040844829561195704396658968594920587315711491060231410765982332842744732152903880518943991721043708648019453495870386918541320154438707752846844103853760863216118205625206752783117225345607729298760723696362117189706506146527367866251951836110827722263876359185723141958305336826607318978096756034203574538156765957271733610417932884103636930226213630916639612077306750116039348130918187735251219790889211572348411909944715110393275927236346327988793479014069176041747564126681131245508954566665636848794868629632460136559859220118921042304777951309878618910032620795283841704584649186682555641917372078248647465116006153670826703314620959463073348507487257402980029370697758511965846511968663639431626145893021122194471283054871288797273242491440795142679498123041568559242753676694403982615720229245054425128108417083662168117153383528589583438904360399003679841613484555021222279073319249087556262063967591411045758133711420374224344651152463306479231467747748997083944581636913525077036395040318404182473326129067938506494335217579258789445349751282713819664146907668379831588846374971092449981777448592805319861299454156216551567304182587248097973918835282043466606153366690844004975401479639884920331136726691937800722105776530265195910188724373753562377314074105100839417036945908107808815897048012986435538958679116346527415175969034181557619822924578539720278586304924019166793436893701336185754556793921630991990123406021409686869902600088386305353356355757177261742275368605594586955894668347365445674399598782629500547841371445692478583453644471635817987157806138782882877878424293303402091962793374778625024237667891038106871245409888458785351931399367768509272917576643616524256468263808206198897096323176470379225457139447547954587552450987474776618343969415377770485228922495191318945726130207266598353286228582988427508399207412851386928373638266571337450756512286782451750525868902119918877927210716069294303050844386443480090755022064313086723121017721727321577412744511776868710855389865257726659624310870188282688458317235463560202708987227757824164200322320678644030612190764035042847853263378041547353349091777735264637642808823444598669933909708461175707576858394836819370869117311238382796532273612485396976529144199518447152388902318750118479589573012947833417375420357459535446056238588263981779715663693754138440669652067827068008954963408165934943449734555020249053923939566301865781239033007776799883178514819252970953796227716585816069405866850701949227160112778880306916009686027154168203835937066286094675973222374147230464403954332316180094201686965671661561412218980696551167306368548285290101649236025001996413431469678570855014003010161308261967261875219179685174733138005283415519793446913559172502451387345786529884838855218860176979875733377740933908540313289679026167150221036446031969392553703404554755653892319849641206474597369909066287272540707182362512610325401411587021531556565902638441929004988392083939243645653687818990886409318861933030466417933260052936730116135003673695710702562970320086113448143987988123221021454624829627236997186225398408775521473625457509459850711499259175769687828282682269773834161197119774783655396906388184269673148799387886878666814533726991730844109109449497481807894444513231467142727780813475885874939003204216968851048782685480050099196301454181544043578477316295873334274051907649067081143120261817941040804853515929972852416110678332908657326606667509364110824723174417097995455667233939213724526647063185140524722339444437817661861613541631107235494138267177241752704388783094125931243424181328184248041796000699073686443756143240216820661434619408829868918870874519138476805954191110421760308116159294758908011182505988584602217814083340291088834687115853462905188127358012034641796795649429698703090384101194850227432346479753595984141446574745267677940490320179202153797713405055831407541369057810440329143154281601627052268554628608452244707785309285042253658898499780733345069390716966738995248084170215236572955830212395101776587068894919916103320177914282074993282747931532950631152169595644818888115594626991014124867998439303416255593171628276173293869929619593013599771000071960277809623066810252925396598455124715264330530662819214364852282897563476881771688747878756114302304503737438526318168326244142260673672519061766497634840673158368208747511280541488821564920428564528964434847810409666968319558163047579665514493041466568247466451407323564427825496194363982103212170083851923646735758673461794031851131272005893542302515203553058234961039372151929160096094779544779513104469613705348852273370733288073090497818163658875354418678517165968213242781970508126344553398104530096543151177732736362976891707977070421883945900262250595278650800454033984241520708425383698954440813506609712770648086193543972755433233526265133953528286574420998038244481230643226801467013684546246809380519683180862066274129321620651824762282694258199152503397318949842834524937687128576518723249515068176743097607617087253520952538025728795120218876149671404543583901291380407728154959946083072094627321428900892416089533384735454284188905281366037952708906688389372415604323752755396774583872990399798427159306413184270172612003163843714001759432497927168102858448891747341129804465592566077978298743579665660338140303287758623352889261084623880842876249141209746896427363650974763385026321777076946909596229862663352122668985558805234038442976874635743996572066952089155687464752654725751557177688938072082384645614100159825392484063926386909107023554618724349401472280071348249018568552687620072025215442469529715504781912566134618313638423197560443652179023491295989792750759239509698665447068560688718224747335364810148532094216130030990957971417063018261058672432356892533139444620889204348627051357564460967950214791808598964235753366675396481110774513296472898543997613503216349923233350860144457663630066532302735714180088751690758770389837670725869378681177666798105462148297285738670289534945173286506910542346014300405983758982640876444296396211158189268948783295991806520482613058765088864011705822935355526574413546028092690280602090843496018412038576032752366043015682709321525869054027652102218839283558989163503376643261630899535005698918093462058562962438018127886119128362394452155586392692179359118910447618489842932550794229872113556402820386930901551184476207942090465661895525730447855421074300129521868369869020878537565707192020129280064816347923423585124559249950854736598868090542460437228344593095896645964930538414460222787913575373305842295832924951820736912484052506586662008447711360408269783096657041614412243866299093650584286851204949469052364766348971197442864026491187286889849678781535325828495826317409908035206458276313332264463695307156537751028022426609117182056939463328842056084259018444570074179640563332610565163617463039918518940478204910176546386138892233535060429788489611842752330395714503590009867150261559693742010813602541570932572975015676059737381383948166839735266595367332031719881389810699620830454382282803528858104099571933006816002043347759496715379741323137740162255423345352699268762598828393531063276936349657599731745477358254339996709154212030889892874922481009929246051971970716410888844842975674100223377685208247600676592422761410408003942112986897781311232368509960970113645265087007164994910164352575303318447169850621213322453655298418633309469744455302539618345532823377575802382390068994615073180300658031899518441076495325078244182139952054782904240855734838130746935155081290729803405282401876469266530941501009391815004376229928624130977088050212047870906312042886542612131098615945230893117334187868028229985617974984746481194958341111954924768644508966754841205220597799285133448862977168778653233705174493707909754711806557578272319004235695629308647735684670180829649001420371833616098810525112519686368545391104949080501785692660601104421327690037307064042155793403581546993133689195115661867907913689284133367632392365968551800720535525383423743475096863499412310427892139856071859956106259882442843519912163550088217681792294088539814309056104392055298326110061587498148919453775257559526265484722226392777902278152996063316913678291650878603330306253666713677483114609638613791544240556591380461918770001538826568517185542234119965088954231130126407528888133101097970170912886486713514422626483755111437584845208552423848117910498063113132168239418864627598350002977570184558842924497114385527910593440594981863847894670980875060263467779584307279183514359979976175064770244304443553458607042164768043660699841679543924746850036956983261324722277643435049514980942460425348056280614710954218531954520293903569583723158751206525900542543335728951138378655246888785410421623601956390603521478906908784841058902512524123167089607278656481587184364191716041702256341295043368765640675378704356374088885836379158965787612707351382920177958029890495442475850791641387217678964134781160715872972517959505177541447601481016121472636716171936929981252846467602282164792928311113202104767350600463360714450286406660219123334600811255085102126690429517945060383521021950237990883185746486944097116264656663155075603323808377990066074767529527559640586719515806300010695327028269526414333080731000199327058465654421124937155766585229520453503175966272400805391300159826028163914313632030538967155160832336737111558101790234247173577097476988563490176818049371404508975065814654084620525019503724100532829957709008402511369950043359267115414220814387615389718946102814946326419501179890569532374281649490418363828505792292960446438268974533687134113284535451075106131374767358663737174762020739161241793853626007590027620654886131274333664910847023147917414863091036558318644681915197295756068925310197696377371078456820047775506973184192376870947180258506508478122670087876614071151116718019815061140463441923693868017025446939742850924856585519519453553698457332154420422472918492274832807473976333129035319325794585681948982405747001530747627406246765040482688235977815040226616794173094098757401865404432803570422874902598542573568752791572323715417833850796157270186285259152419503700491883825496826932742030595045276160446814230681856317567835202382838883178157017722926360633311556445298415426392415053863405402487729793003074847363405521131975627626444272183049784280683070464608312681694284990886831589895632714358332923608180894107241999770952152714870594188309284278465199155519961625959172242871922375819318592234874171865913821601623899377224725776555829574618583727631692451741059980870644585638512164672032947357766968475329893706315164429457201669675420394854450546847430645991204153327951573416569208449334959471248447322188257056499939992819811932645774808979869575596865063047743798192858136174431300835148140058335531955898934089608595990827286573683943857352883623583331894982626861041548710772660761986343354013707387954205498786219588878792642247471773388427370510898774727329985629323501191542346844467981739398873573562073479211368247718026940501735057489876604416590974107199155394135919589435603798559775510796686080280038841389643689521599619461239590917082987682891590577404059592297401287599803532695998898380824010096015069441525779463069865070695825483151949736898683827008804085660693846345096864835018768244194328372761060430686187516849681402094258774331714900527334721646233000819743639193835260177050389409802086777677047986649631663967257735177513712707225582848662272058537911852973257251365787112525937623090456344826280337993157692572417260853085729599308570616827455759771826098602047994126852269197622849466175025250135643162435677397322458172888160280647719714516626923603783875591428778564988370833816551386171855971870832660315276854404358642145177682972416336028734914236568146485899017011104985386144764738679141879562201446463368311232170226313587850427261762656223922443376021041570875461300840763888919493097931381331781564004595362139997306175241175122536457989086686149528687234380287016851681948609512942399605417777648550526129433219569040924650133423772596757204528336898202915570261869854974013311729465015192050122323568119654053580294813388479459215574855602751856551439363144967998356415066147438446447840225350406419332159792180741857830698033042735145943125739377480941928728551454387464302601121363871445131857171577601107284053680783002847813017854764393871053937385256601277695134886379076217665946550578445740729323328724485016353002522360045026921746240780002302409997661019251528108713718473426327764346763094387114197023869597739492162269619945151015988797890621514608964494109279893306582312010012343080502118925169915215853665877834818762391531899066138259624740506395651055655107054737006051979900362881943655295019217072087690927049284293995322748015896528457735333951050661870475733814221783259451566815807221080778182836520942854677691286875037203586339201152928186524635452877749603990788751078480052211882837587656500580896447806298277424632011123992212088195311455691410857330788944304676902581755830194692506801527082918375396508509412544640383529687491847485155644896387147107037234702518009305611983619468292141145428703557315056292522897693343480721543422915789265202747440893099745183003808202047094744176062160127108367030271204378250245164979912766614600623203172376915547259505027514170385725004595762537246702661889580416870306399361931048290805924431019379133054996654958793085639065468770232975881708336919487598602481824749935388437539857249476396850675775394307116856963631695493093172065324491481695083115675638248385157951345366172337475862597867540850461766446504349160544523973080000986016389632913800613573776905418648285076423501829689604109398641223397986041890484403862021255961405954970589841465532215990440363272142017998366865430934469275262884082778521447781405399486038826769357517347114579978426274823516623718613385026954291927642848409387936634477668702649388599545110868209886618381462449589366502040853716823579666974221871066620766434870230637480685991014191432633633363002267671951457833383026369968184712707208294340041172914120516459508104065672987853675840745267686020947799846927140846974108604422987813516423295100284207382722736713183726167586263828650670932081245116604495476487498755094125361837835467023167063719142690182118862438289369405934626359931199455344343571783982601079576570004944998669083945958710866038893075214806142087238209043420214462786241914651104120505343925531083478532934873786374130688245261262098178009403946733064760669903775011629399643184310442479717409018066323925829102647381671677531364061964507165245191873648202796283746216038627743967958870405074326214852976983944977927567485955446179257466000658487828224239152769639419491073551593110500952212568891017756359036022824866192135874094957530538041107515584643444768942783879079442886588198911863357971664639057489428968172679358920727365097357364180417429609411061219563890088396610522421396486631319503247395676448532143150203982273381314038091770571386411264423729915750228487197285081786186340861201440776338096177644482217868701514859993810680484048989538181465186056550413382661562218260176816676989462017868534334461339790403608005152009324294723956281140616280973985087432825359038773377532109048794118149825477861428350724448091455513213691893669253979858972739497493389407837365011615416825171447129542795969736765036498057997889077460238187490737834975641271415295246318257143592114586802742020504258187054929753867869888283315024485512857466021094843984288601581071636183160204478834447159970254358462494194345332691537069669621632589911266555895186738192805727601461366128811797280045084196661343478903880997652208863803088349863703831703483079633784812159485494421482322499232841257452271236438092166837238064887722043434672295603062908555627924758580987675662001065927307438989706954349497415708559955946913162653135050747390832385202932468529750875429481037027449821139005898240244328497389419029897082616755057484471017142975108037456888181088112276066328645992528975546325093122816741161584654367003256277520813856078890552492496488038378796787712786382106135920785750196484295069014108174960313289713041963774861860311346787482056548725033605788812929091411010269594082231563281892191514233129726728321220551739097974925709649012668444803358449624583325879691954760663443906255224679345845080772762348584823064066290394827262876218043946065991650642840700345788483381652942581481010308990238010071933691606634797385395859421696921111600652816014130049428820916766103967233784458929035603512119212815032906496340939556145733324251584033006507077067642997296704900724695443510363638493010451240796536385834927335437816821535069048009360876042551907414017512383591472367928711930658961256028658207761238270284131923256060640819902260692009453506742634690001987830119548945784090248287345135023915203266574297121229248807373568806417119132922566021578638010735496242310418762815496453032541862157793031523334391146721338153632598764430282924217756069339013685221974039866261678510990838759420484327277796382952516560727789136917562806017556715746430025943789666467767793693012855952203660537582301530961321731813585426359437385031406294789100143754923909150307327662435613207852302257431943632139935564993948103048841238556563245966881680456087902068005925999682060949848396607107985946108194648532358991909505841884587555113744716668559660876947565308785403631214549915496008685443731720853605831563672429015478319878140246345901866367340811458344120081691189065608103815086280827415980237120702081816421623058734374058255237342465261149383246248916023535881443712067624471338104302823167043524033697348858660680489223715903059519990308360104359973178157233187605022075450981463528168411911850338753308871588623679272324562107420649225838473100910780745124335141975963587088995185828953409642958827264861566199420600248390969131528412682763294176018585390759479777809887467332538523718611322516866647379667482323533085395300403137598557414408390796413500483358026323240480934394834786337741122578242083595791791470913176835522064120941067367888028600154055734310407078947287392740044842034990512262726951616376224356383349211023385372135674258348920623336284238022327929397312464250970844093804787029853981602728563245397864506595004135950826517015956682551454291134210372858566629782205557366077820866319878229818847182319586094089735651319286676271049712015005510643361841126508985827943181708637255089622696274800122127335503981078809025655809159672529760187953833979268327866476620295379078826507195812239065957963209986446745930439913795418738140855365883956808080011590962774215508127312194201707961337719514509891605859740502200284148781368123351321672722629729783729921549066810216552587882275241621915049751383325492176519417906238418824411574674286792478664302117011431539255818384531672614627541453611717572345113929911161788015084084112344414789934437337569760419679306657828909240326884545477079760726731932013751691344348612320651484191071092637555003124049150379377353051800726402572699853381647015449544101344918166706549232339475703494201931189852590972061155333238671190463159722570551507732652409664572605254941330444077098822062127198766894652636961777303414967762043087647622909803871730015977994651197669528514026485488850410812619602707449377553597272472525437823303172917402459510222718926203314076887285338476395354207822177946480497443517545210948065384534464179368919331579027396906453335436911032710786599230243762980518415403782811003760749714643040214459138458689593400822061593828941549003819103106232158296325934770306679250716788822239877783397077782941825674531042413044929855074528577287486216391882942981962434712179937848773825289265159373629212477479062948730841285537154030827394556739781257297479252296327515129700678385822319166338936286049347524845493376500335960782212660131398271919668542057635924265022882614315006514252747985375597484941605043080531769289972292255385576727870466482419092879913565583475860967516234600671093482965045640148371845857487526186466082101108262285630335245346038035889479956035570283843829817794658775323519713968428875652985408539357004388825540875059828017051776569672254637072044838192201355640166923324830693107739419128240240969351092997251063241102128368222787384487345890236721409594233075725518631610111093239867557636813596661882332998331578559869269344930864748742315303163323169702850780413137052712851695072812541677310470862094752346486652612868072475409971031283056884700783072550254652235287366452850405383790046415709912340801405073223373396739407224905841424868942323362046347616095390746667908206227896889164575399713754112566168126093447122475775607752427317977890886486680934129799059668639116228501921925284802339561622530961978416787961302505292551057167683637934312207425164169125286401972235440644755183987707470367444549949871720055647601706747551407183147421536720702512655915636286811247298170854638798971152113965284644152565127607047264132620364358671838601740807838743841543089747903804150031038991547395085416103710878065801732619365668993823787743247915470749287189317652278127267960355413954605823373842679112689977980274422320558564889154676065240833688803449076220857673842714878256698282875147460194170056979455781898458972583971152274268035029422491994151896542510386525110463953814118801619371707117320536188792606413217902439070395311481838336983900451634876204416602105133215122783812746962774912898477695636559553698809041190431366744301195276495662722138607809841387353991397681701089095036501289714330882890341287229175926894792777299532724949858796798396985317429735240366557212516953172451706036205773708654046109551818290482691475286437726337034455570241665175804600085676180270024144150139053851702493374563098395653446221812606975457435574938110574307871094272715347783361873734675204330911012785076798881951347333608881825603663087178088320345145285872758920995791968253538823377157896356780614656826334720093605623116248666855067703195548329853663237316332650094908047365130105224934905100966063023132549597019903700886495160947588756360038642401218606376780288955371412468300388663526694406284599686886815940436817519955862719245812442443718538255801862459245602034825361165292979581922527391270260894761955838185017452944328683791878344259101802813070087523466895862175494946751570821814974729148263395722078907468607837858796201402167783717819140955869731968936694886159705618902418402577384956046260821606637228021233441626775539444536091687330330888114200851215046998249672534221329282005388803253223715798933184485418723960744133195332216793454391978177572697020837962063448311441872931793184850808959163726930164086498570444131631997398505358943185493456924372182318602910128553677257313290552678019132165835162836412536745055101049287757226502222599348505785578636650015870592976982130921397595924748279396399480115262253407315301755850251159042543927585088676722343828826685519291884306296151992203094461990823706663246206034374765005298382097114722637166310756526910183352397037835054282532543822458441651430445381044050163679709674564629346462440378291154519864797082291910502028431256954934001247225221500639071908613286679962598912184784531784754394576493596115806495532318841292067801196012333684113612407788625072415187608317533223867441202478248895208178792562826651429500823757429886802328678757059007827074567362611148618836545435339804823455386370812571019049677117263369292300713989742477283293010831508903334094278100481915694518240053914337309152747871653409859721518077816125764823604008974049438628186279781219433954608074156056340530793422165603926655516855491338227043907723069038765913429330526585034044383130614502741034895152104288262117328929525510212692029010523928526005101393323869615863265579461320484434606540895188706254312477849934762668666381605264535540858234539362646091729727285339278890315367399829731291440106175980225156186600891218191685050782249991536008651264864067702806797716205266042060368659624340570411977265694413845431558423497851171428446574579395604563584747826199751597090789958608393968396231002064271302310995467853203719405293606885353753844043552449687109989221162208755535480116555740227877437373315327323420431980637284515242270206551223545028894024984830414171179123504642316650144173486989950446675697139962415317978700018236942332647173196664682513398542497893684674499001538668901605869090323043592248787121872069920202626436428154659892392650577340168924196793260010322503887416268403948099213569166973200193366357216329976707687826496283560082349029567305306033716323642811337507828556037497637610137745849989643677278155137515607263245198175113254767942362154046716723168684014039581757110309688903194709114475430010404145891932309576257806332957397111877586776429610729151159101619284572756314436143107302021168849601440686675589884082506281644083165158753820967878787105502333401724303330035226616609067787500031531478168109150621837901188273679814976440574120772544718694166077361721482174421519589459680637779045613794694327891260873334318281555968856454772300416664501516266017710145233965730274052607488549348182986937759875654433355544633463799868331680571908820525832073451602399661487133091854095559647135872226453734644574786626713547928656224505359122576005209522470397616793555054675252424301056164163688148353908529990239958897672767708344824572500597098740303731530519463402904870924905107749051486211183238971816572112451090410394439981480366566126688352588223686299654981450716405643678222689820215251194191823508415440342376394789129237740108207452584746616533194385496741403320814565743867197342089056880059262754759132096213488939070124984019410894751654406778665042632596405800993234795967970276809479322173467899661210310261871849426949832911226827540429279691519819278685231951689350007342472107127130128025443758244743427080587134667468142632996460723622132969635213694130361071938363051148822271889349348947887135413529959610136001024097161571593619423630502827909471514414978272708825908426855388704246959684927911716702562092810979226518203051930400196035384051352792175550577271051308564469765406571390228588820993194368846794286983173342158961222492406501625657909947360845263797674127266191555221884129328607406307472670678450904372344773133164853567992734187028187143376183985957778035961872847295377932084555901908866875269437166094965726177179107303662749533332937043606982244713001828746487929131063381979734009393179218114031272018358748950871306040890161543982721562344009583961413310430315056387220222940611863668068378263843902996923887501851255065062873601248652178096051656170029280525082083697146700657726685399027290234685196305778794707267880407522741194489389471750938336074783476973976923552161249829992459759951767719281013625691696622845100633238693690689202794446763888892088116756459942559813502834733791053718495027269522644056639292493094212895060005640093354316459624579080821774878390370751365775227375604284835570868830717007298613986355698878134269125044179766411013222962165455025538664357764021609601741972547933525032213636963039607127540693299206192276187833765629615248891582599815401434439833810120102581162932975939307928482316790182603227920951414000144729559424068477126603243469450985376374478900042822625390855879076566410650892115351955402802562569070642809555029167786678421338734698390149787504805885527809339127503143545831951077035706867693987966770951849572341629053368874271928461162777028217356567169227743375624409893238361308120687623381529058710609517771753413434174816152975193175756311745135946055935190587148606243335523511645826085539451816596877905614442239947066501193316162148336341586535632508839488684110894108786623885751681990277484368130230296514170267000819071537396709887147336237268432667350260307741336339556604951638338484116156075979745158202690829977672649174573391415883623373373377795582321799161912265931428135885673903745023691540477032607378034075666697442932149661786237652589560632348712371922972380043357157349442327424910411342325339556898128939824019563713810915191501380994248733485451041056588522515716012438034488466198838169861266384655283231322164421307699784604080049056295834524925433685395617927550809335634255227020917321270124324157772785404631580621140904347756450210032056731573687609441540711747594748543354073046883062510002528196655477907194729047781809039427467536854367376612880799277727372646825920844397884720054729284607371506396725995514605950796345090216249798508071187596000057814036773585898091231264442448247888349679592452687177175438948586559830745820221265754597986252090693319801226164648073207331480676246531193800510908469468375419463726739970034041864898906622429486943130425383354421003390901569535515485894375488396922872420883213959124152502146306279635436313853174841424100462454733142030312217465573212015767831585623810254366336618110317131688942551760721656367252419339793905833081903729656904351810459116097274136114429882624325270615805639376177138164307761912562065264853099204494568898352286304777257956504456749008736085591283095805162757813696819635883371199968938842588152279312614878448631822111026225596179432532330455321811748908812132387700593813801408242172356996487011143538035610736392277159847598111582095169048242997411581046053280277907308166376541235448243816470890041121230556712611546427744942585935583547899107015182667585445737059175700058289280487947753786963158460657796285235764819554807533667268277760254400317949905450394090534552190110589001891980561635547062038483746872146408121685007709925540149869029595661315056093064230400163583403407849633479539545357254472333818268300951815739413131326182222447063479494580235466842630713681975309688219454182824448906846992213434116380407649259392647522191324990279507083696598720960494642027299175616891061428251742270689152763805435597608394593311732201486214107695988669109875726087887413330036758454151032018540351458248953455850226564222144956493158047458006773432838180233642633840388793650249655436258343550957301716003680260725616270172967856855786205766212830151305344866823351659269397450538603572341026413266525752713225242116814912471461532402455342398296875361375298846582397384015857769610469307852879264419893884597713308225936998384324212523088116348216215074441852773710523861421508960365870507329931740197995065127662362408793455038181289826057115613685552432881840696072437435108098073374730146067506974132315174157867571287958373182756968249910014210419890571331344522851452299251757142374676704753708554109821147597695314365120315799654649026873596525266513089541184462534413153421888166785389558481673186160240496124597794096480553660660512016175773704677652575520270467267067458330098734009016375422781908387661003171167023564173481758897295918072246973507168715502085929091745566285615354915307270625752208392180156438137743399162571997462908359487340706723255457503221473622434983050364605772401179089817419047103751769393601597646799101669585775531013030203729948028238359682643906324161616513018733827695950655982524880676837346483749809308425715260470222979005042803624661757379100767532059321354151122068695314734918332361158367092275198032932184695490053302916774711349167397161836699940685593346591271957405298076562927032973242310136523722163966094696872252993620975984692323424472976692745680557551678697589850412505215199672741246900173336816279798593751795639491639174630647809518357422754629387288453268140436806911931773331186751869519870743959546803345487388419096255761155477016354256052227864001966548955768642073562567650721632613797717015277705474050293680408656719855957853213730853469145465821083068574735991921052011693127355915275477923753750947931289876359841504467822709073954480340239856016717509931883411158770392699073661570872413929277319912676804494947170798180684636182747611800019072550083416368324314378153995787357902361448876588890005751442536410242289646265855074907773929540393518647868725588496067926559214381852286577729215988470777433696401442264621601308754442275421450561598142136211271490263312895499900621941563836271582804913022875909075041462668664962920324819167247601534610147788919269561869635858219306076324765420547000740403700478910730650450751722210690092246523154830929170597914382882246430010441123395973804328898382898192182942017163139950556974348881143786221277287115275717431072427276101616301288833903664910262978297989750921760300495669185197616646952881530517896249551173710446902846444958543648839030975195233752771218208042118908211672223450991785305903447597639781472806719118157806703374699519346774411786771134461669898027092397075039173340986684716416316974771579042905797847803012656419602538604667167840623363873608468798311103996858243391671964993291293881037068630961302408173713843586170438065650107249599333927283232188447983851974747839303284102546063461621062798199566882144693708754256690983217263972273619409066142619309953692754036624845512332734704806185424993418137958891507650866854440692882945166103825354203310335301204919980036142484203061341399837481285549172918534107062951907640848800183522971580340201637270459234325880769585364748040844267229629059256737559301568481563571778989438052843112283061808430609964348836212795020302748577242310969711579340206773496749947667181619791241487349113156827280512797504486088901730510880871448412391015358834380208967502412176386392940837615449770630264660600623513340490881287488623294815272356757505217885341425687752853423125795844018286739578730569655204221474475573665667468284933984977061248835452406268001244932675624767994177747891586737901983009842132694155968961425759811928866288340554126737264222252259076627260452637092157581190479744398463766388844168156237903661982688868197258121620788971680901624892506005303984089253778749863283597204102912981003380571414863709916776802450353390219732632619760930276509546846152520320552459559015483794662757769612840183360458871617676678315329587256577104250555055885974786405011145675139539344936562164886886942366024918364174089660393028468504898684666056220257163453892711700382806254486782971640530173614568360491495667613097493637534443055525887504901720904821387822442907006910218341814060718281803438520776027636264664560497747059166131447165599110579968513344971300517850055201590689644844108112597679424043114919466157898311941151167707568896474715359708519732624638146026581667173302323575806725971436264585462970909154881538556833435265947359140418632610240486585437646014599576780481054459139910842529154775054967345019522887717610934479451224424721546449970586435425323128295926127134509646706424599702091997243178855634154377730856049023812000947763935341838064486020339200443031980002321386683474774065417134286131899599481292545704439472115508213596361399458984218012334248721322098691315391636819496815368600506066535701549540331949511240249825911249260525532002031281882951609611056387056220697650055281831161436642681726161650186042259645124577656089982834306748724778394588974996612476197760658844141728360977391769792536227284314677988371133787380939808464453047445816635785096320864146520744731657854134446039827147338720844980011924087835040421689236140716666530314261217282785885566500460970469716552293254644110804492332031479508298703744111143783096193685384450409426428612514440560216909863896334400827400543339471138789834922270605773530514771163091468321299995510949736211680987051106522677441351190878643536204471550553883966949176779790432304017592171830872616724656511845393602206411883751906251194403446997472340177101583421084200771051513312762206112439505192034030948175821020676574972218646508587733322726611978366142495277396548752066702963826900428696066455608402618717438759751120555095264899727035727321401348745327333429199396854182639249581976275659777985440354485543556914775607225924257157031930133577787207534991732118925073237009048572817358848688666958054414155281207650945494666282937931847613334642758387165056172786930273619165488119789012283199430547116429937956458057442843162018745969894032680853015558264345570291763891195148582622961889321209112828073984577993604684414043651013121272193860554427213812388878079155500579375390378070633446585555465535105913416256592994726152656203066696469864830930455139622366812304204023082544629043624272194700742881609482906427157457714777096057019189204483906685900677807452773030709374962858838439759010485931111951300683978330815194408034660143420749354580169346661119164283657081409174570083083487456522737591933087253345753901537600717733448124599267718506885399677454980933143888338919183031646600736492052867005412021056351561026218909173438246382005134030312009966720568115502334444347964375619900124669707315684892582021078218615375383389679419083515450335496266051946612873750878359489880146475550429177238223116672496491332229994474268429577963504936485373637186146297707184617263236772687570165082511642548942658240630890519403443631597877118694016896451524116547319226958787867362004346987292418690417229957812994234651500438055585958622019378162741463724798806333002962817001674926982240314114718527024807405773212847306199520935161863294386052319019015116024318853539462183389677268074311890507890010038272168371954841366960683249598903351346780065147176129970563539925909509107314691907364340458514543067644594136413939287790062263351048361763189518317789679851776939035795505271017659088024798318234299231258091716102960288469141812038377892959071036216078030628151359736430307334224091134098402339800416001726605030703196464972531047252662950484218260264938136288715317724347329347933615107244348333496732637547626250938483571352748683028477441922553143998015510836004271478183000232099189904587743413395915131383786161094123971482580221877146086574024287531807539477532021205428508969157842822913080836085029177694654849510032770768534602542585360610950787875471291766171590081664078034249020752668225242447158932184384352960949463899879335709502560221285675429245694344772357702673451068781296123955230964276041288009430434852138841296123303686731815078294821519374165860825505491011847465903103943877758178231569161022487767441881991541841329824046228945525722547524924628477594472216281045669437599950351418705329359178566651429045595743481277303443398572582092808513872967585808785093589414000178170397825396419013967659247103402438879230023337443632576424403172674550700919375058601946377855308951085787601226920543460372404242665188272496716384491439149928745689638367833158414971121976617756718952376023207717043671547128418362676872431197889043788904832947130887902746945191886431377929268711378890875024639602975242922797574719105677132860831756731278578823466528145799146855975960255352111740180296720772556543341037610127273008359397395829190215776167694344712845767870406039128552723874636827010478870119507233517020991812616228569106864631260897532990347978348147846268532901181866415063671682654587190643296830417557410951172811895831180756813836915012050070551702733717724857955271590768346902185224742037521516900918155210914974241352828750034846068527837702988132962696998591590470077513333357426998300689765081134881015612887097030306478651676613228630315677475051903462635140763551651547097749313317209741896360880985508872379069996758381470481338668970621591268452407075876837498777909404404078388791936010776598857484094845589492802169415203898798964209542086862132475093285698106456151422228071604377437315410219917471430358170521647679730756469009694179824847693435281481971541404622765892414143099659692109230788332726256831377259167136113031411072512239091816578016835057743552139928591272775584503482092693715687372412714749004380681277934766753199424446739902411919953988716489020865816353663342361142855736558567954988770488104632432148563134960784991800067065508237911998329890910763863549625615225119034773075237375655344443949932944978889905960220469014015710686495561508440788607968307741895100427786959548289361193044804049906915788462653266824058044033492190587063831904357726932609706912689272164899517721620607807509925700107787508818463689922735072453710459305381953367019020517742065754055659941524247467216180794167341717644513241504446459329849341992914957478730258440646883709673337819131657801807920194314751791117746542577734150512441174931575882392661886796485856887076646235069289553475682618578651976361190892481208670443125429060668298485216604157966179234516437997225370720163954065417904654495065533487661379443044131440052066996232332191241934472968870791233747330174645159342979887022795170004899921940946475309207023664004162660083546059231639159051497106627889888120391815223020250659652564191567805227951022861506994064546531968025425962376579952844064899837504490233145055688354834557296235340036263241321124091156778155890247186201980467555272309429397306523060185676499735873844969429417922299354414935734185243324666031010611242139973342533418983375641200164728460430672085876869753147959756014266290776843788398661900526226765655237976080554957623037711038647376171857575946453886441216578178757038866204422210797891453730843230225989207371414696367565561956212336765327054971399064033588140220383513113136389564923263317236279495962187984705833546443098288985050289401612360632293462688874798184100669995253149712365460197302088953789682348846048613433335996293057041801228910404210548666675524639238155653752327538171384163525665763640605854791785310897905018266037707858390916361488659427240917958197472496247555558263108048660981280119280726120966398331752605281087865955755252097496939957320238953656736583243029239634274864101615416012161822661914535500727221000465403688105409026055886391733399272289282475881791469235560152501042607837727880857283803315213654195070066243301809216642094090275672119954169688051961949557923945757825455260836021090402549824669818713970998940358075003947956238349980085848075451078887355323452310150464252879644194328282390612360210009926046580364684417298648050442938070620050027681196882945325631422707638618614851650251665252702332390167836504630752441060903497994647038886741522651615616194229500744268033992710148981213560071704549530543400148496418288534087973745424342714255102313790342861364712952120367129193264741200369492740008789328337536650624756496458355703716001444894359185024058978410376701579948756125503450496718724634145135347880974323693117789551082155059627784326129841885818408461696820017246472138417736534013791977606172427703626315591195072947266130161861959604698814406896537203153523776177680826347611876776592768726050920056754905766728220442394442420313010504700608074949210906978618880169064767644415627578952798550048336747440998427873951259551397041262045189353616281522513809347320545777932492304167151115508845596798010949233564824069699294264421665802430677036423361619090413537867739471544894635013988834653167459559802735951182660778736811361521809053172298991107845465097782286613895292338338265255546298102321238187693836420493442334593403805453204677363416522994521699062470129429168493360957520287634171952095400576359410098928596271697830940537823028961443268499635959472878120729052629633402343189445914586028888278598201110513023804310184659621859045268717795965568853161570145047132054518614063369069599126299322861830702855004969567433575731625353908941372754791462838922365946219656838409508330661543741924364623250569993645736703198078128933299552845478024242353508644791269513409998746217272012430462655103318199114188994059780798745055432615087809062930275242454613479805204734557715401533246704399645799596026661451070295999404301211195171683217697869568165096270960325523191878665982295455984274187253986646227999327185886766933212628860688705854591277477308890218727383356045724878325744675268723040106424048303910031056642339662258277947455957635106850530970873529688555767902815538917651334375612962304513186703492797240007663860894266480255977217897092287902217947116203470208914393146985846262555044545900484747680299438758374049732344940281636399519280484210390825845574361812118055371532308999175659646245780336403906946094962372704565802582717656998919455391801080486804482364688660124153916448842769450477608347732174906197935909105988587878355745206916358218574593292599468519880162627928408881478588091240546387913121362487167107045797627943783290306052852410402715337781128809402665988896282835724119881061715904116807095595153362978963144534616175973431290818692794658278683828015334091783196953888384283177895500033941550507602822950701814517558131096684961046999048335855470115198570508871089868485116079694508778892949989779231789634923943279833413132405753358631282204090300173190217491888920338767720790974353479689280141158608173407691155380087005463395290317996327789145244588325206485958410143847113786111436166754434374892441210483034569888289451946991809054773182621862190780960087912276006876008730868408904011665367151612175752869043772978017173298911218255297915226414976123881364833716370979563998100437501242706877772821272755510224824766251164660308810000568275033817786668366634209648652646150461652799729605201981908655373947166543932321170248125521141920759765823448824491060374040988344195455259201714479364353322814618336577582823720052953385713087332921564178609666685285711345555691570768247842243342812825330172866339589529106953216452113614930787673415147112015419196338509852074071471770788727635751108482826220824075644987511159103160302669892563534852233968586658210292739584854246646217287812688739395584051304389192367845491157116250929686566151695693355290484860491874456932473330357132458372668382066774967994860142818620426445394250273420639360823523144052725176623188093267879931571261798189118012165561466756440550747759986310786594832284876775219723715595564288227238627628174561659805849952370548509301114340401906318454294932680398421561895922578299326068863756955822251445421370496641975045523460951526479476399921059188548027707979725280121645684630457193820152706493780100880555371662616565768211358548204512058253217621728496677494495739422876833421199693056218995529836721668263869360660055909607082525036090274490127237136627662636813382423479787118523468704355223305449550313586069601651045073517404694400822866911747151310827186122856756681847222403757319273862090439861089184301124842365281013424501541039258804545461009443600535459309366944834061658908719781476664322232001268922937310961474604005236761917836083086095426167370374209926771809022601134666040513633479330706661561700486274372879751020362577924902350801225720323080248116868247325851372181740225807832371426934763482795448273850578064469826166598263093151695027440898789232446851383008747075189237421297729736776032366167211652685392184218681992111075293172008193462495008391334881685496252525977451600107713908487677129383429486407626731788142921782537210791859543110936647670594667241816300359016707170631080083975156460334480198544809212707499460676774927996513046892548330161578444424375425303996233831033464636372269561296496337832872769005402000812762362548924916621609115819096657444905305243449524003013716747506765092928120549449255856251252780332125489508086583257109761585587300003840510230740894222378124918157110588365202260628703190377004333959380122221144545868369369013131645199135923764249089322570564200880149594653527933462011495958017119638924341000640288801551658128785009543786407041515792303253820153555331463163108867777882551391856292810514043544925243914806248398626986597600488288269316355917982443319393079477565697552827595534569014047362412690783726534332594792659619907588338392871962838443337638684782510082589281838786647610920567571886087210040516952166302959026682335314239875623278742524046445156799264624487351625730332529093821941736310364986818528547286930515951815018012772088980961997629562185404861523521787959601677152471511352379941020353791621061807490301496708223129105369473711879120792230679883212075240240601294285275177674038629319906375921639314265907196618067413136265653411379739127987941196793017724223789570566717759689637363291222566651762558107843044104498382161760259893924264016487149649969346137973863042219902405874370871027190580190695950799023123640195989664705052895502526226068833522665461613370009589026459356977516865784135308399623755401684734777075352579637841605257682622788469112073284217427759231361996578919756030572914556803485955631044827505476915776216863050378633122497388207358489379036541572503488723525185250715135176191191901543242622766623341898657454760450334368342163287896376827799211920897517067032791818545677413979315527307159451896527328020051114941578649298274335433792283693922530556612155600177840575202600715918973207357557122997481046455523792203828329600802731834607502059546846547341356292533389538376848037019328483333432263678806473595867775820998652082715327171755363201323642741092921722790660387562024330258424201170790740189676242522245959363826582538149032892595296321521794799244276343340585187725737927733721184678483429666150635970019312652973300146923359685106588746900050961786977813130141571787035677522470402259166846560695348734288732756836707702239456671192005888240672276587010270347786854815523122653850163742634000496714805150165074200931434347959832827855411164509543498820304704078187567638167661895902240055292311021612424115902333674458728485896893611936981064795355719870390366811792397257122705491419300522220796778114024556053545812332895776566002784480622628438351582396309238182400843339376002499734852334742254642646189472367390493104361887043200184487225039864328230174112516342227643326612021831410368787989472169079746905915535865677814438629931282985593962301733835704578443800479092159474345061876126264269349576504653481292515034237588974902099891591041862506025677777205535420853898323476539964298421257138890918546327697163207602370754723961114905795754286717915226337548858053579903311924461850843467636548158770561996841945140800382876890612301869155887729192713566567837911790553801888669767756124670043675297735301746209597986078739792180311559846750793188426433336900824666116866049280512057669885195634139183648134777292486377303458487704422677405835799801272717519907571346210191781087304941728568104933141780447771070728494840415866589660580407069054169896138474551807168325747505561078756025954222521516892127032317639129346789142593840347708266352876848239211973910162014300360386361224709357422190652340756290864503903975619912322873280777803475665423750143503489540826534047882248755113732776280457407858658086797539850353831822116890982271342386117910658937061551103733450521585512050928568492587815585551257955668378391632557452487270790373709348723285405216836021827496882631733757415500099661917463617689641860895382611219134041403744866789159593211971094690163905108416005668835319865206223480368714236185848299998753068007569449392065832819322481255045074568279544171255951697379501598066298771547357448097493658001166915257284860079887713520066061251368151402956761440090416466966587964478426865186604000775174512676218511234442742887843685909499533592075556130275549033732872274002213776048616533811860899704967711753013683495865087191178230824091351675677484042888651904982988738465028746976082358671608841926102028756732698708590878541899597822408496414864723442200792860875692869023005630230213859014875042371175045840474757535162959885942692524790226800779405289021759930566349866229409296126252071561608787116046858409105171207490978726161944937430294764775757529969511857994285222807485090342915853750364470944641182825692505044067558057156488206798089060418618531148522341272627953622344096767110572854018640615381938364893589550581844704403718146092990900352812006999958326321648435744117104979609594642176703563165250177921425799108123329421990759353703182799405701582934912207709177810394029979563623255932853462118445948579815034998081915391224086617996127384266003149769159211655134968142188933122698761833251266214019326286975408055353711205172688280499265323375403575929498408058107679635156630500776095340103937763950589970433876851675134913770415370116619533001088554573246334933505774805114264571241809827167674091695746706027673126662076930048382325233800521945432301137662592180908777936009164119448568748368822743490238314106824088205411037353404619428771276865050251089559540106320284762953360613676821744409066491671666677018782570816776680166130349930202831854411843887487346735003298913989953683162028428504077672257962489207794212154873142257569515454951521641585296974978955703736611062085673016015373261369896479340414841983151293450310352635952016850346830975785617060706800659778403841279934208766807132759115567345121659016289877839054404311777544309994376396419567861245122914010358319768878583239713036409192956701532142480937398930574306476130879780765532462026314398457181111768039583771740253532795847821745049068206016510783029260467887980149907478974685257413256326763806216018345631718670127320003694911724957823636415199556402115663387336013637944433915755360389050480110432896871141995446676030449197015469971497516745612011155837732471652953196627343828995327670241842170259324583026560628250985488516190268681768128744232617461283064090081370788101747823800658785823418668191475915300054644552736653699851505854770677949142567271531300232085836850532444093531501239866208177613061847470703165842627033000209865801338405900493080059950063636429113921185140593800549597428085516409524764232336701615190576394461189456088300720961046297390685747364097434672898880207488918838077991971013136876469364349447974568054135275407505017738450348582707877830636555786527131567894922108284174573070543268552374967154866232395781333842766643873074062180283757597795648246962008201897148849985068816745770016308537564591453828596000442480621197280118438830310397481394814771677034499569398844296544906952969471497950956707784355560230876436040852363785987192449606760638909945420609939683952023487171162109249225835151888211929183302083901216817781305547599903395385576807233764227349642047751954910363197473738757434527260624569718476488640889014038046537053832464767856668624869505658512399061522529561295989133554833817425174774908232099291357462499299303236264888443688980658235629185572235926313480588602889353099238218154972636298982405609935688296691649826294922451861736156634845113756890599177062156411023713063355928391585645052511732448146634522697016955574541060109746066456124177158061942252010070821446224289983556318469360780005568653277775423745382890219463242249740228921582297608840815462487111039355204379533172036753244895103441800802460396798188105065628017779845106305758600974521589907215512647906655788852699812460921914971735956597012594635268538813642752696393082680223986998995219590819839977278646258611110200893666974220770969825713536182486110840023786308562308206891232957528188214814870239957720428441999624290639075458790505679879583147803327306669019667531408119848528074644900174584455069639182441469787417930445071620263281889725988265141334301465297773036470422570548470004567161062837745106918524639410073202528274578907663722934066463712444319289521530025399904490641789397528805461068470694752167868376119063912079834618012357026929252175115268969277682802564883497264783140521435267116238084361961592710200021748152558470089409121569550395481391947764607740347275541556066387336971392427461996803891193464559229316849188827129682368369798813893811914260243576599078732194281940789869626763616824133958989949376795859535990690842607873607604129411836406630182465396476421419031405080965267598896730138535384629659879689606662977335508119425481706779569269983880368451800831190691488705135473039520004928654522803646736385297718769321938677355861963216055869685432321933299659811158128464610888306737397837240249548657744260015263702084221138267293173039543675936964050912788636656683313204697360618216045104749091240051116764261495564162925088469988547788862233996431413587167840430344492953153978004066744595159583355042030596594867965066232420548486679745021088202044954267198983703469976184709652217267934176068339273474635904582231310448860284130846069119403525429088322686149397875447711121718376189978712013524517991832649485622763689600535973389654145013894483588806238175411385648003301390060757128395045559630262614299979474160591060061243883366936088096315363158779182781273445662337857273654917875314302832281362275566471830979867697890763789004245859584068231601495928975638501074589850013611347415054492436128062070058345109330920444539854430627749806880337309312032046217309213507432364397566264040871137905197367756429513786722452364464015306996426006743228348459515829090310096983650365632494110628496809008655862164832368457925835960108469472990579924025583976423785989049240869901208588453852978109693217988394121830395022461483489036481834672501191709378382662916216517243282175608074661591528358112257578061750292797389789317508290118261307040171212673098593704558006057600039014241410068869655467856461557747599545784562897344531505618621757079091962047069071903679230380811166565175040035700462883417340243151144804983130153968004815893417615616374703053037915189180402569797789391767334857778994522654961767855118499063879747986158191907993462082316831073298009782486583301610947346190705568714524369787079786990186780891984580758833803139658836212845635707866671689595603380278356219410096474376151367553243577037116684892598013524011742919390172731585675031204477349791346495564623773781311159906665792409095341509438998336005123834060415313977290173161888319074417916975625912432238974933320649129760088119016738575472893929619924476228709613538291873484308535981788058007578252924640418426598874279646018452316781085107085282309195916564305551422122150553709794498856044620410890891422340239200303874551325094124194458223603019166712419715465840927867591766377810797710740418768568987369380627535438271362104115824457894083414136901340201582568172244596817592203599420252246696530380099218394521158826054078662830579344704153077475010978462687970974167902601021274680752724859320872142491939736284197000738333208298633053391450681277840552496871348765278271265268683061388495692689622621533712917936800282070255254599712572389985914441951426045813178464285766058131811573736455721691456609481115132959335695149720385648647438764444618152782932954988759189057892685009399876539123233948895621217291624557246811133282722904443528654920493772356984965774081026931133323217967400146343701247750574094272851058730979193455614663097799532611985177960201090173765833219556594409861570427667475294689858990407507201988246773438776423278613537534215824578181691033246695160586078126382151990752711884420711232415911078486176351571567565319019379386015700804876842986538803463576314313581183122928104610906377088626596401803465880421484664395190874606848091434655063269789896111225220391118170132045105037986640822890301471702680130901529319243995836727605200395652560383415059526335113652575025166440107923368376151660815034167893305119312399273442117487915186501636476267898924121499260347730983661700228731181731687779259128269466506361757433435029142037399447874639323650244993008128665712925993188173090958177275033099508043364570761876185690633762186897152764907222781572711592527349114818457526469003992733202782620641257021493350723334896547452935574946817999876065420839091605040864397410400944816648615729637205138523025294618017682002735279398300838505557740920308923334354525055139592111887456484241377660926237830802268925167475698494734299797099131949179416891546213563643179695297464042045766716831636216884820542211756466567092018133173997656811392747311120744702527581211285069822715299679401136643664167905155165546556172455429919462892938250655037170085709816200156358005826276679357441246960235263889639485622613284534059766963432736025795752315687856671512184064977157180559154889430994166001866947340586730712477281626610083414343551737068288476403059432078697284253981842051360053576736257206081584357817151669421634169592070497302995833051264422373037851654414217179532511032527592780055464725486652978757074176489481989350890550924648616300686542160572589615796929672368555238249409816670725241201560087679876580151872524980019143780429839991455369308179610970858271873967264447247741224399399487273981145837671862905325823535720717730976618815911297657762229815555820574486233165804479118864241828193773598931890313227930857387534410446398234638901796571653293366095244757112048403235620719147467916691671173353171811068557784677548397902788458087464340066108929407092782295117137872178829364663576176884087631423572137256567081002151476624009874032381723842213491780483762412148669437041058532797450775632247065649396887585256751686772978849742704015711185879004838000100211744985387374452984884740427961079397902382606783463356827923285549864432975903027916077343100546830151929322031193715149616925605308757857877638966317284427325912439105371356374396288194884107376253882309919373366114192268422394526617930498819935840163455892318618902102183413973834791031637763889157078006728756665850759394138806432966659197323804989738255761524895618801936088281644912912446707348520375325101875755865504643311054757716513465343916883462701004206963978008508564585908177081223768238879989723788213437806779061274530258256245262924355485094326537048402034209808553704945064267504141794224165346492985982698058806277660585521441441103663497682993751455233439294919087722988246435266664513466417226062856367528990643564791628480519064394476805816334377790108469555288396474421277912350246781495187137556839357668624619873307966479358768643288099980884543896209561538884049970605714403638171353517271941284916242767822234429182373476447259774910156518803852549416530815662582263223379859661542051167348230196551956176433370241883799671947800523705384665811133631703170183295014480783563695307804530287846260981149095105988133588301057544637012385001927661794183700690209779329444814051452511170251189596585331473100692859245596927861762804200473584741607405830082678571640814843797126816322035296662161472359866151528148884049655389105483138479756794256352656029532147700804419307064676877066392314498955674039058055071642329402506255514759594099365023818457653666453888686794037742203903085964391843689445579408688101535276166870508177040728671515585665889855780411270574446280521610870219762988429720148616205201553432439766867773812726681572437053539345743239251644200039399029395586648326262909622616656484410117688712320116499862482411586556128136055686448645411286466255119086699982712669912636921884002682354556110755318114459019069485140302632909355606646106826182574077919641143163069916026179740818999960584643641105305809498839661792183699210219942770274924794929948102677542919450829469913964424384384691671527898240091103850922692676384449317401456582574751693420712845790225995131058021155782266468313169493437366695236752752745246937064534270261156029932190441820022785347774267422684227976524413427427562365460464548376301974733668494350233299687982158970629643756281003479665558132833620175179890597864868792863849914218000153152325452114212825590482556098431110757994609441838052766091811684558501399007128846549363748031745369599791176670838063467033577090759035184888235188772354528894648608135974252742443145261500248383813502736942869959596986490463490371405515752205865070463710826486257855877761151107511495276384560440741430966299866293155994004884310521792848950270984014156487130824494663646955626024941851383577354990910063798671885564973973823184463559376097645443700509749257200815496894115394619333800839755519982526601333692853252424448780215955808388030671851817976577446983232365715242888308748402845303946603526874592919922984917386122312596511731618181750735595784151582694088055073259361580364440937777556823911244304977876609482656612387259941649752924690103735088756717297004308965278013967341716860573061963638516106034592178424439838977522672149677197809657114506308231807238190542120432426614907547254509871291647265371799829620583909257900514219843185317238933771195160893247214635912397762199866451763110275297629966960959843431446984678217972292581613445855957008536237002635628443834490825164539928646976942872352907678570891109571783351332444618056506501880906244017823370561239355690183233514084340693168901081971106729538432901434654874310190067573336925924316158121938355801862492494939063136114353384302274882728643698791482412096125501751417834329705718046927335899818158044611111463725506770627456243943727115562254973276874255975855793103578745170039062649736953244978655770579498794871820107946009700289355004050151699618131277974361828432340930583409414722841782241620641120821718946770240056670553198449060488379665015556800373725096851773243404612298590535817120353603378404938070260118575794798111451287348542666116574758337368606207848673571213743860510458682576563445610562694238402379903489785379836773896493100494363720925341545291933783119456478455715664343689960045578524275973305470272548820446264732975779848141276196739349819725223993918362224794576431195988782782920687665927706007932900764598024735685098205649748418169492796286356947528970199413797825887428461758264425453393574572477461574027028457748563336552465420066336024580640370690903587420327150754298392749125662926778817126246791896028606138472938280195665676927301762860488994932317272123279042625957627275684841620855332970280632674606368037905324022133735765522970236637579876490727349063435395116657008233628876900604757623515410911258066637659960516026643062396098938102706655289741033947355628608881339757248073618104034789633583891963707636436218481208003563379876973008701184434143502541001616950754524568267771619650250255007728637908637333415621775061711914707366540558767946673114823615981126072546924427939460712414910852028928437621819845296340942758039789397237496756556211380816766992340547468375066144789955232489655560978120812843039277561614385724391754189290540963305357647357193250836942124767699404003112196325413066989057098333272185119585540007738907035926703169608036839310717512373365624426916261720819610880869129952869465168270805210696118643866020838983754459586748444853774972989009320068092636293323683833920349075080399002728398969472255998500202244612964946838705395111197890415624207297570047866787960417675468866732831497762154234798265424539447059215360789320363895250630757828480359410758433818307479802841949685823745695953282317241566899941042127600743847985858871683209922358108267364432415607960654549741731548779315104261587407809889342220526451780892240655070745646833106192856893633394841114862154093712962568798065822244378476867632087323327190717955610395273002980501975242534423247402082121972170777070041425630916856056030237976957930725338861200948792360309344179532202177701015182379420362077395323058650387489849500101469992696628116723175764078148591522812807410402017390588084329371436229246189296382215674648255799896083575685325829190599345128094082090888549429443777893360677919147270333024179042628497147391400345738657290720104672867417697511495225067279253532948358779878221459793072575788140740106955406921152299352097914929393880648531106648380180140154752539121020601838467335901500368407319242837292914581995164175971765563711991051068444604805781494284957366987575585698873761592016190852959582883081831694468334323953492250934061244549583540139498452131382695747831956999844045175165049784842524774393613027583483810713336539222256186605929705495962348109531925968908878968799353385809635387726063560992464586445697958970094509555160375841594553609504301763303865917190436031283202182434057265809800068675591862605539717418659651679403514227301594449822015556516838725734982240291726434760488168337823180570073242903781101432604225517888584086447119653634913672629614938708050039895924985077121862178125860099459424585131995442278780587822807675976101852723420686155909489540371785492397849080724674551501049928588193823408015228465619353280780218744369621016154765643390053918691119025509092332355037479003237938324413006181841981260821428104259332201492841035442278949318807266977741166673158965050936879953551221060528285783781431549139577148142358572714736234548124547429048519870727300566103654368396126464133800731010820143753828595638031898808162751455439298429571296010834172898250480941458954558512375805991814812049358924129220661231941253217762571905728349196022713190477381313331308516714283165893483954445962168970526259973734847473511875738667828477850974658001222246696393204853552631485096993738593369916811850797583906868957167621879206779333314307341798531592538186969354353797666207739667880231063881439950052508915365372487443910971381769071835105861486369840711065967413036176000496450936604201385360984518370374111327173300856453417241095528321931267795697195835444869456872078917957233969060553495499911053300054101140756808021844522386440342014569423626219540096973227364040080298828140895826205512414314478656412903489848980530728355671865107168924314161591860211029232178770316285629527058626115434449717806412893366620773069186717972424803331793238986792992212914155753424614340334483522249512390507955581623718413527709133842332820990941665414057070844292574633681666700439510638231267306343725757560356701610086540982610870023308394077710716742188372728006739573856468425878753939856603023678323282085011949042601438918399580909578025390544449954861148741866889565779625117905410526121204884447494287863291182165618977671928473695946382697595522252576698162438457724298065613743235920147971139331670282923818318810115451155508723525660896660624850469672528931819176406011094986997979742754000119114831303903392990426403068664350588906064678876890563864379429550459105377143802022903773786653293423504493356126411897411486674198810410077465774223475109537085810481821034726065834013923805436398577503581793491180641663156305041464461793634436196526405281380599492469865809849074917142036797550874315166564236096272717892758251210484020363396996132379382239775638803966474985851441345052231698174501162517483393640970362408095670798539175949997536156586387780499466834650844168983350318451126924556359925309023307663909242148322152008547615488880753128939377509540291309131034410557719110651227519024677309766817515164445358162780559524258791863135805537728874593983261590109260105326996667743765215902354685223680217827466592239410381459568876829187997547885642029986274291028751284807632445319526624724375389886074757210805303660143148574762798884470200934663238276429126859936583287204830819379094096337959300859933888944763437025027987415925897287616752689442561345193093881243034685737677278576692765651115148004421011180247116341711277933558206181590976069370462890955577969169881986268208763464089613596331198559024234234965563742829268991229536477401202898862330740208925786210267334784645282005653381386034663297653149559418760404317313062719757555374831923608072892382933842153229455751319957217646959472555886266536394235766211692333187485593577201201844997371488227207227915493106793794969303626422276987363630820706548639380505482434332014964484489448057902210566455042848534805699676689947485910238737182050969874436556991230054768086745501238940004666869693692194198732459206939075254704238277831774054163863419950924374353920260544296364357125105078292497875080021146970263807597589315420078237819981270168982121180342409771527635461682429004292375131264941869865381025217250703517821413459844633370351218900652875126637790741646004612709203899445267763848330650764408129166002600157089503878123980609034589337185642662932064148365040788101611163817148006289220874122345944471773945545009334199587769640523205139386263953811252655647721284602814482134729178712817710287893396320899416031358050508471828662305831766411248780230382582552008724092985451048134980100127756259141716390919990555676030674347715077092174742274104918378691631418999196507426147699480026749304328169783797673388459358749470849216512338207512991532642058747246738299580482930876218726709553613004570758213234342643134525454321386805991734632716526097563860624173696082186182881300623507590184635977489388953232569687617396664134789867695930132802804404299508731107745581623768565017388332719074291906094418268517952121919190507493201765382656874529043826337736552494746319360426105598831325230928896913892121956541628407561117473885835924737344946533956678759483935868886864939151162877927115714437065203564669539623787680971152692350449020211635942600220674944764898356648567672786090505482874228097547236946731136221978041704977100412922267795333663493082327701371783770938317279317943990455471898836196446413012509402940022905566249730821570405329976583970036280561609948469675509893039589524978465003558568813005911942962888064199139194497853134136064819801073109122899152956194707974645156469455294217452123542313145177271512772029548591515838571803908521810324091005836584361042602807697774531364463650114957327026855594508946397236454664652266319059170639571824682867505167151321844830695838644472722418304459028114265219393818804443956767699464287903907846839220268546305436411400447918493149387787192745419494177707433547095909145347948889379563549190653998255375892257658007276797544150065704104313792667800561835141490193160574906069788620070930664316644255902579023356764567627206339289808933240099094361081347867369301281791424912100685286265753718581978475319294878969479314060497167494868942951247154145236275805504464635619608699347422552233695893763965770856997052655736573466097130981245419158355164425433894215536212539385784724434328486290411537242386649252168044665770907584945815938244048710727495667823549524350715423334084010716888751660334181238969068740938526278520729051933807510395974658960271988735577185919146758807741336445299754278186405488891830983669773550131079253746655563235551465881810317182290878670511373276758787651809555436044060381170251762391559702404695662191187053334039305006733628070497595870429467543917258666702579513427459551952460612991716628448828506582701164345804212642679966886618446574786360850713586129678318596273235535233976774362643839562446140403537100997806250805639413007374763395237387378451523020530517570217787216706372369603157701355499308551203307517111045645011876213010466828065254617559019290888708735609723587412143362491332209334823001829057540824307488697785157892304958012431445483457401532769176074628117708383898353809673211250048833069090155996657003449911242327464138266443047817196006171188243174616700626791372657292518563111726991788877138473038914427987891563630500975555202689660117337815838370030789061101644522126725370498146728138652687900551247896442029990884728816056206225045770329279543534177735984687481034431773656433508058749595425693865654964635093461672915737578198550691206994023883132136537365292603847363709640988591495074085261684788999579950271060854127628729194651281242664867837269137736510230881649937507363925936784093844554445894381063666564400507001870522395865918673711382380283550715732465679822052166652239650710220889707631835509569237223117899932607690874681059391306604474757243671384074039853218783774763193698005585583811831426387885253991106362657960332149099592890289396395387272294497789401708648101143519771736437456409072835740060305271383080259390530998372265413127750984559226968421676301612027769725978160868125080202885906126595110936456062309580664327093801062207185637858180742452542811231677136721862371637801969196945959625090664116521509463072084348117779417613407986490392978402406114976839898169454524528362779799321362206745900336330658403268531940136856060252322704011116514268759918220797859565684649221080617282160787629843892357820070282279123566033745988183382172440221357314825820803723413039541438032585969956538663968514831508778467638697757861923123978735538176818948390093542054276904380355220609422354628759569937665604789299161996806849805068840446429128209431755586778842434700742619030187197848438092122529612715829057520234490187472356060488680413220534149916362077428542524348251226789679397958792782843453651658562102588584702600068847404981577856212109034078336101482122963731929804519286216115941339394416563139896849123231600304229295281383274642438524139515044475572218758826587089836205589914404622430432436487810605807339644174751113702523163798206593024358803256462191973708226726756821881574993202423431262432247789339861961101351849434838849632412109407492635691735464696172473390802057904457088251936666055412082599293230515223197888274759777761630583182683889111422555536448418746211735549446947969726099831510872772851557795108374347711269049152102225283184855123251419653801013386285900155984922793833992763925947104409077653348457630898824089379534919764850146477823547109542127217569474368395260498140632054428309087935697499755356873272155326497916844717296140649341142510900032414787946210478917094965607103079931118744384997579879528808692451472599702525762479792818518608988776825492075414359361612511194655348395972487980939574077685034639898469011574749618181254146334192410960978712550981941939988655135705376801500792197801179361455623064551821525709583234503202077955297000489705653313825175200814111965007063450282244884659952093647211910029061647971513311427411353762419148508453338529969756816020266248293152994652246736244163103217382147553308973382766772187674829422921358890092409525546958605903092929851025995833686598559550917599872221054891164814562744255764987025201220681035365777144438972108619748579579995130876289229015441032230135363940500100272498307296410643514636957014270188965009353151933242238888761837826197380769040657120033032715196311677621263724579317822963926508232863825694210649532105206036611650335980430928540337090504481521877810082515216671618279086821917748153230861520689486981204455358620918559875612157309252949185475517547711642436843482841041605915329245463273810297500598577535998874528959878948600825110058915148679382001492843038569387436623264620620997497187113775340002975478175707105724031372775898900493458388938930663930009136963393749234957688658531508953009751435054327467215088012514682063988358125862339385382921196985557427296646512556902505770124822867827966273026018386971627072225750234444386181401213221774774958037624540378771184873580651149040396218664342678577664430140486796233686973929396457931276814654626001282074512960070992693918147738874484968863407031974637301721234577689285748689955992406916478848145308911361541426550422499764591863920128420875259345854389963815609872871606369947391964757854602396426781393932967384082719191851780934637570650518085738147539782514707123259636900728307769748193998567474196762811268663535289570336124553226700406204536690563263843040633906119807462696935717815332879715901716366656489955481907033155810271794945237038267434517494087471214820655807736729264510928029757409358223452574591518408748156655292737647516608229528738176402288781817983481410734012262118437960155006762918777910198315886837622771755511869956180274040072081361226067250853720306604714853774948789577104374915822085825790238279186441302830635588606874305926343216323317412134188616387920002341786673851993939203621054133341110506489660269854095658533537821997256763044716162377182446634429066876259297584253707665016572457904438382935836840172898502434627714616019544976778058989174261668203207756605767938467226846683104666789144598143688442756024686824823004793944318358994046096879867076490960053517403761068297238218827869827834479098302447439221351062814160758042610475166775403941751058295036418950266902861136869971367560482777792390386918907018429866135616456037393482426165519520537413233833519335833787788576812646324312042831961559504607688718048153616941341669629804857180369286294922949559243332324509745941441662270664582670681003066408789370124934090286132153943390905793868264858472750217389021994962983153022691365341658269970020297668684949473252081724097977196215264087947997379024140272784092936554676070181719477403534961856991730174854083500581549177225634428856115742443680451795465119464475748111854267879017086674749518118303922471659079700330823117063936939073749125829300509586551804390851409627374012556493232746836594437007307799839262141904441829700213757246197951339424045569951587127795633046696005786198424484031704427566134775901274331002986068302188935002964568941042704697508551588081437240005732517239120696142300708667880546115629086524216790733719036062685210741373251580234600040172139800013321296299148229862561648328491063164744199590718515690283893864843168534770386480934336671236631191649877383877934477809995085888668271440010709586891736774342880600241979003184803745140335449462177759394947397158276769000278324443325319778769857837953426729750979990422595308241246629679889895619975285582297632328357958605850820500353931315054184009078297109890697369037893559555900940141956422515389169512587549150102168839909499712915590149127212446635182402347764268834196997038733531404869680721043576423564843930765914341491748692177602469796009729084528607382346757509148533775010098133705048347627094859259613744096285863664708763111724716851015364655411916702865943298428346374372569467487241010621771422181440841050561348625337243417511108696409232206035188653670860344245870748219662015508319162068886313689270935043270197971733068776842537891553762214057181849539891177038016833377537005699599975603166177094649761272039140714091744043726860103431932746049965217347189480768014069946653921102469694135110521159318181558488949076374264592859823049869017507272463396404982605280887917456102549719368767736899270453732159829035233227836756109224420626920593058025302138584772656150053970658412521664293690761948801829626470230012812841191339981028265050733141428149228538438359348166402130291889439704506267102506238495550219605111435112154328376885807132172765744843525837818812665327574153301640886440270650000301796964704763383503140192484015933287003536542680769208142296659224914944043928904982310859227859795603988080262869813182801337661661895018437635656096368119668786736222954179133178789844967364456818801031677052566340287582876067678829034397520097889407238800860177843217791670284337026891147417026806484026077525507409030302211713000192440131158972935622209484432253245691809539819135660079271329390623678552998922761899427971851463266567560100346301262014904624795310875328467909143767518376624279466554765619618567482625762312969774044932763179300172262968506449693383277055970176082027442057881630988700566363124231787391312525725639854574841514269564019487202713062334062744922566981557588683368735968937326699854510506790190309797339530987429079779153115138976693883273757941579087407619738230479488960087339796129736300604124219841839292226596853908278284175231746764303465670140436755212573499191237696369645303446675705769096644903069776970336506010178839122897395329738161071389068976002043555294220572508079121314467840483342376148253217345654163862979926404041073537824333982378199117000827067857868852226162633584947862266534540252489549443382535270800881586996077455100036414076567709829493365223347203961706168773706297340796675044376037104878898055259547407635129420287135624049860027115624459055868421246227969971571945392366942761787116934752813205675631084266722571245195905730290287377328066406195893425309973945094298764937920686862354500117627093724930740664506066212189113573638894312434516821890889294677931832024124246017642575432459653979737763811018132032541328884664468818561699359054860314461645325715936672866247042853814842347875171517277407271747308697375452690789860900943201412869131637733285130225824236689233866615896549690841829012561758529161731372025137284311843563129090548798992806097905078106061801210875909021578427597787700284956094158470234622684184295562038989125434045388587712118932127478968154203277863443711807661681740095819643321597486880612205017134287667407925847870425608668213583722327038166629342685666356056627902620099416955747628678311852065775082031954415082952670136529717662868947104218356611953303195063689885583004006635428690942281546356673235095203111601642732032914874632324683536685902515838906953702474452612989949000046977750710957625585007340317310322255365911909109087793797130501506473689948289123441088079755695611379908725132134629705590990393937532062874629323337623245509474055062738470257150369794019397430580048947185122507794044559811682686433450275599793419549782750729642490748274838634856077089908162899980360950241181863857009829000543359776387059371802794521344800766720226647474038994882765757541802845192340824210108780698653832484949856014420824617671977989987926882744075327790400492023537179642661291600198503618839922488072033566888766794737160782733780128438834114699530995852696081975945675528062274828412859494746815585878751056649115178606628852402215964740892917275933385169406033358076481691240916986225230361771825927630390774382286948614957082326010067071035411300625498046868609799457604678779946797244173390780832175849447258885393019420448537111908492645358601144758621282607316057466286316320074469094594958251512518767292109883525010381099742204048091322200837371900707717975815396945483032089367323646895125521908736937188628509962650353587722243258027773458163370599761460360411836552524547277856451825548511402302157263818384254947807034554591435402883708350199186988419446801326999652711054949028071830507604294267865656072805129030372490136262702905443376786582080514352607454076822930500592752793323833852470464889817841981071382429581581782995375747841828951880461783627180010208093616385235374000996140267892585130122555696145355894598403802084503137928944940893917069837272149820199898380681720754431971997961846593204027994719705530067580032039778125922931123111231681546998669877621811527626307276113530303541192871752288096759695101799747296416633052997941066662124353659286412305069068011361054172737417905513476506721782898949830317951406902077585399575098809007537936118925537814997275208970823951073893730225356494930077406416590086928858321123788144736902679274734058648433187290260764614321512187921995559650409352624952342445235228623862980302866173970348483887611942420266592231892936343989582090040696287192213528545123050650805045486499678062510510275467561208852037448755610124807657717684221117584501956906555399816961828422500764098751399845323918250982046310604688948653249232845080744476825210937342614766140908206113945703212735857205067321717007303054330702383864218894064260620014055631736253996122812005922352385358231035491580936074873945069854215337611234804868280741080584604017362658599835125724406078653198802671919325347923461525096911118592871887776351608288781507471251401891877387566368582133968807126406110408826071317023674867462671151971700302451800988605215472340417024370727770751182692668429660140964214314862655062340897727814286965883197497744733337188409776768402806227213041796443800890398751731934522930999007899277337478723436406899877918455246285312802691322108249208973569424000274894432534190969215863545214516525117945705474684731309709594593653613031328263473948191806417231710202185947144240623398513126381881801117883825298319554756107062688195966340800264232420487375810134704393782703644204681322869669266759431362162126727506530849801516497897020209368781502690025881609247011288102209976677249199694110351417503369835121358713942138038425991627814885188078334693472670417958376908993939286251026861744229822383811047922475994156047689732799579520843746261450533306957994343351366168554986342250229877536534096724170674726564132811834683888054109239726296120857523894292825819504597435423715131163421494751308792400041578103731069977878596638349965329788722770515087524861412912460382587043850425538631488407261226975586669493976725514866693759541898752509053673696345482422896216516067820556922980616083464980593047124068270677733422713485020595002637563285529077865040589028437611066060873562952322496510928833572540479730305589205797952722230370978801247274707725131096132898895124248760900934680831807855269815168311004411949497063877405323094171456270299217115235892600044884383912548796564641258396471159682777116936305113960170797500597689093436586427470646657839889333198595490621694308946345119532015147318710551309849911573612361350257583811658722928925571136933513221597334536977458619763315535187433484203115446930522822673423169638093344112402095194458404478142193118970056235080765736202379179252798889935112052207772276841664165394797610010190089208273718135071138724903715747429209889666878280669901914911367657935488799768647140438947360002620106026948467036600946860541792575257096769147582129699527525362109351552425256854118137416218975897637541172790341545463060377323680337551967833259721587051742357863874844778259251495452105071386053122889819929386697227281193559268319715440322167181795818676584993723452510067797200127637796607876879787474850821184060196084472733776490233242223546622205312286709742208786080451123828811988881184248894967104366321676880294756702350234103907610839250651001433574207963071371150041980170472834310634506786627584326189910016641437474556478010430811607980532045078378851255140818892094042030014723990429952620266040880037454718599113637640054116909221401148727047868273166201806948611146638402081229660982278886576100561079450111281159595778536244836556689576135707701669377620389136918137120444628336864310108118927294790556743032636799695870615027999555313855325054013617790923491710365600348147930338135587955409774468606517628411792967992688391218327885365268725036182041552360141966522458897881247340399469760270237253796142424592373035164010613639223802129621919498382250364370323245959392424409156066670797235421520636663328942116109061870748688544986386050503954911755081018157086275616415048371369715645577020068485722151109473537324376128297487424233315124903319524610028384265898454538821425062284436154921322959816733946010709898653967715459660401380108129054727553621371639026978607876270218315299449481503731352441552612961662803888692077906092543217939938723013804935351209123410329117813676280167243536537726936062227347182604696455908082756958552760218567674083171017198491619860983133333465775064202056802990505465219730974630081289459001061391948390935502620992526261025975544864975570272855051941331147479732206942315574324974548601323284545504831764607940797428288664329865925860326435132870433279427678870870985537852767040224633809846960961641293816020200738157841912327659586144072283053350342796521311855286675446133599868858796141559039104821995778639940283929468432992010777780345685054632867167560139836845806780856353939594834210035105665106380521886618379443830966808120306091083161457647267712473367820136308555567855107995598257835716677838059027250082998955713321029728461397922445047044696673692664933609311529249555913526046103888967151861370997173730126677488506456681628240443976862321397576073259334952590483799885080331530156893285010037250575761955299471385644174552723888521590821817677050559860581965461737597015435871865157621980500706998922781689224326456490042420741298072849409149793754678630390413271779307317079455205149231053476855015839203397058931850897090603806729369513305029152069842353439080659336083219063140389643483936637028506472999555806636654478771024729982529072094726504481196280909003097943402150573946851138931289573414153935662260304795753807850893174938096913519591117766538835520010833788134748642528311050393319333833849760868303916709632914315057653581923681284133009749238832530468347566950809204732378949252367010521446050238263665183235460306779541273240699189865890161540458295793177109723965024114055728824478402790584698714490577618645318201529565960872381660765922520020534484780242552404835282651051946436002233891625408175507496428413918027867459239655725015517239036428339161392551672828082305259537226681538018816135625437791955613453655860802218549716806690425616052416289132329965717475951559047587480965473701379202522477812644297420028663235194287795264507395612814343960036742895544971521915441108946557269037271559122130785494545009897830611367733160732482343160104571717912753495977147157296587634962516695445155773856239022442825404754370221041511482012606610290281258490948874156046861534890908966661034876988331230467742761010302767461811789519643612262955283148788772753947476813526445942519926590515725268310960769432375913781306321938624700659067627713753704890176305644836530645846395686512428077926255464786430091769489753453187600199367085244557724849380999900203331655912518047978805340203409610586184643037605631654538574794061430738835840350576309635052067015632186346104758075928692325597178469721832608649019269429244781916941857491111426732641039568168126797984469261342860239952110253649080211366628414275816790296835638785139507088037879488472041408187671962922190213182455995817400300462464174428075194609125274950593963230474436270428522194222309054687877007271703908116685628861072944645789984460902857036987126871200658581825715010233645591457046859780594452912083357797936758397662362639865826167238600115129328738615286140260723853027974903433472241525204757450068178968638186609125133571220221755390602388305405456543997191195886969585150322455945335970348268791907882837960255685478110109936420689045348637698178171142642583519796790111657246771512297723295124124653276884126326420093790381854862884429458875384819396677948144823425655205875869778547413588267650357650614805561050409786431158561718836420423347047459872741124542034298686556861609025657790753445981663149678239899312788602087860698734764352471076098301076609822906919425840826158331527504226641583454651816851261271217864176242387952971568020626151360432802370259029586183068477816756155564934136639869665592064213325450151572867183750718175297737902955506322671617163221115984006922272418325835283151837933920434740832247713431805209461728797873920693490913183094274566881641776208666756337776258456432386758439815695818211754310922385836085446014446953230425093375455319241802921545058693242852249814737936454205518916830007817571459918240554367991228706515380359033076744718335677939744469780203626556775742418582334037910422442037464868716877331949898552708605067661357286202364709081709111672314601725110799542053656181827520761789512439511641661880133529346627113799396617801442192028162178444580885424494691661997531723012846860226568146328116865427259508469598850599414467573693998689320736834123873193548365739566673114241312492312759846394056204425704299477308076241428173729151368906526129246207341345437071389975669685494771262082964266327933690861932549008131353562011186312014328156424731163009453719911355418669968215121239331385221644518612510600960918221867698624046334252024504976772501861595889894727922841256344346951036068031008894613469689378408896812406279907371190431689760091175201294000897455571974068787220604247951296009378322180753956718052452043227313673000374571031763284486059484555474405737021377415813486590456589180714644667420656467151120094940774782548395602038263029657763828125734569184985035753809041681083037719865357299358742367493463646583326062493605010409838278803934625370226640038625439752979712090274509423671297084178713413437192840680851746769264452741550295044147048357821000856166760976491706993287260751090088675898494090438058851455249562070230469568144756805812158067886503881576561056135862894867780364588177359199527426712654741951494793361648921039175749793221660484498167972423322252159223706428720162570126543665895577850645560358232335275251002969795872276044423377153656708097755047592352541626044493643028451347050863230888709976520110265037560339215499498851593478696896416287075042612742787356457613953970004264570324558406190162300766790145281560199734639593477748819561419311706079506451384444511601285197430411428187486413126255812129489772495647578262357912158792757609342707269800586333710783937451586742261239942913281080501305206565376699311396828060882485268607824291045607947802072954095375799408477266078639040304517517433570367632311930807809685482113509209308646672791207706634284805155126311748299914218354960488538024468488480242889748477838756437245986115133881891038818969668760919795637939854706252385356050815521573745829454635048444985099153133627919341204598774990896826846551162653888194388305347091474723257066659001404556461617808405245038547067571480819142046095742976129972398677298903567139832033650188907597657252798581536398524252906993118478630833364424516564952897270552650402984024637241186441948851379966255008509624976105601724226394908067030440510964266917131207240784781861982147239684413285952518986899376028261640231864808601530618946808260915977094772091574328657334654327993710956594092937908305244285589270885610810050099704672745017210384725298517584207108103508352897725024438086011654637290830857764023097834855653775507426715995860238371115333325277567811094460395226413504994274441836478108725339970230127987214024951616204050265688874368402461702258444884483284046428124928637551846964076725013098693567041884974551519020946423123180876825963900910955548258649614281130667841081653626489092328595405697532262274315661096042997443963256347209500087391356209376926149067428022656678086811407448461829008210235489196298183228683238704167861765465600572393910300369691102187098549376194914374992952850649982323863417502745092658184132706061165603386950144364652243161846660171461873738907732548439306191733260076229214476936882448702574527712760881877838698946169929704550480605280296228157052456999446695826196304852163503187017687757128617824655946224829241046843377604100348613732116357198697799567868616349124264138878126894081118987758072020855382827881960003005713366517143114197575138904826176167965695898811844496163649056908828476256872741357049156227724368735585146253480496237522690661560654785938233297211518020448849921308954795081517016676143723977593002515025723594686734965514816530202244378228927905591807538057338621740051269262514607391046757636338647083061964575880287922155377287790886570486336079519022984816402232564372604267989427089290368673472173860976007590707619070669575596313205193127571849748450160909503605024457354081306691670932218942621419146497348843026432785599560888976753480135247209021244488162792649512933505773574903034205463749166158820111224516242265780827941367712938143514563712230748751462744620879854176452067589103620679500502489883228781649945846008533569422485185643188944585460876885060039789832076674438239934716401926967392762697385505725694492602470291680150426166373015146665713079064612577315176455353294830705268909024933180712459994343932370744651555304885563058744302153323377462343417919993897634367697560420462277962669402401413250507317892601693018030947807530631490522066496782990821935995968586065651525588043987616032053363533253756604697469828756533883683128487218457760882539311905616810957671697049100558355620817093478904250294949575203840016570958626291781631074138686179053824091740761076676577903384343726413987418996018230786621677331783026299009020339672317978399840462794026301486194958873777293894066491541802638723309453458194364034793872814572273741821082874046886325655734056701661249325920151616922564951266313708662698320943087263052877076726983016409034518696585754506848820733458895926778533957707756412834912620845606470420075389003408679340558359869704165806837174280161949555248724563600307841720285275502978643470621347899415873546033325047087095992853290486029011269552897401011635724291319746040125170144593131567925515464181771340337400078883859496870958713867573924348506016033303171234153395546870822265846743972517071949204905269443657175910727338928129972508503904274178992356220470658329887270938769143170110183784387241014100782445622487631562105161496536075823860049401666889065988731925116596723638120002111490651036931898630074924174127583394003462943037776758012955021919249588505705582413372194339318594734402392201506425591220685006908277546278736725316802389352395256504114179613450781370363233440994767276206035795965512311157748679977798373790987019577775570975985749317671575595094644141810182087336654639787498960744662944700295293365270606831679645090292044489142820318035611234193998803995078787994852997301504895105440984907276131562232280822024745617141898091939846585538402813933514136654161654343673185096370789543791339717872983555968075984267223521769551983822575634195010778676879584399186701987020179761125217391235637801752617419835823378209534610969121104406057574482226917844509911534366599588094440571225241699230287035703746726318125824438359369595206656509087723179054829300394067561976628097065290306820348249458384395012120400639187413879923584611825040993726767753790457656716227955796722957278974840064907450440355376353457224257194531983001060561835305684051990536245515096225177120866049354061365940621135101422747851701331395432913258804433488626846576758180458656877828570363365864895401958993610252669823111162391038855318431717745124237713437699028574548950295269389859943360089465427321245417793619898940718961889170294851032302200897781187257619343028270604222514689831565740886016970481867729465347322123046389307526927157029053258175330910805920377897527712231096796723141226549557461240636181955132899555170579435336538551649450891861790507530874935691868491812719785897900256678319355423353202677444669047411020785359690568292210900859873280964758670541417127139144770384005876629281886160240423023531902423223017299297537178678730163247289705992905195739712349127652717971490027473157158850139126052522747119566777970781072504020185306035838351332002983781742097889862178608395590001793384886595157726922559236484213190571503794867340355512396094108037028342240499345776200764057380848265937117139542396566168319850538271434016504552602526746377528022029834901007943014368254575109750995664654664120386202639918833721071737024394218738614432898917580604768835006954298811470440681829052850968170842329257086424191544938385172286913250734375494849424480365029391794502284060003099348619556891383783311935866829066231251649908498416718263636199328792883513766672237063345779812568731101158958643202748698516045075070338425547053128798697941536432306958994250342939212593598407609700289283592952796972970418943185957484874874887164384121872496536243289829302041299388898776529243268442560921643690388136243448322258331508863723994815620781104508002085186790062567145315238873321552575136361105288272530897110494014219698967202884822837654906562469471236739456492333219165474397493845808760309786678455798130063995777617139647609789441031437008780764970633741144339400295832121894299998852325585782167583784721797753721509571322782466050401422952028514255335855863747974316405238529520378935760284462562049520411746521368651131590629876843973732375764961390364563870923489505378978378816950751164101636127582859967907621707247694323273631358777337929496770508055554292347365715709741966384382108613607406509562066070065599363375559245230163354858881460084650547496536157342736868014606322805705114634688983444895814623797657425248947790056222732615944490413938043199387362754985229112158837103121992050885689691460163055933980518706118329426212529818046808987200443698422937531473618641615741967954140407019715572715398675107355270197068566327945090131725621798791500622666310457986606947897303025697569034463639771026825170789414426329954249627892193291567442681337821738006671772120664156586398004801378559959233914136502021994875551716543231201360939898473362133498789605677273991229888917491775807881415276199136248471362005382874842248911148501439194430903591938225589533062538318357829163979024627306258961453476163624147024398770563091639173918734380221507134521591993120893109519148769974862582543905936409380459862265092624412835096572131081645643430837816309042418040907858868898816307522756184850083061344638578464320854133749799440979249457243074287543287888244621016400005559212921372635139891865996046030140793823366340024208234872574251891076016541902786781040906407647724870497628958355674263517241709817434136213665575965960038692743676818152955036119439368304485201951424639214179747953469645121955108675823646517790089902257567617646571602232828942191483026767371982613809656252219894881711469079947239490445312314589028890342579758583975513871558253946532846515324006386485207913666873895462693088068586301847735321210000055363164176570601366769484602525524054332709587215901918923406957205833593448092443892347889679901886152095410689245958492281237171587864332396762413535899808768580814923735188616484590663571967893250656049438337241710247039584866532310585996994022561743844236796671152199753074779620820640110481734754492428239179109482778319812174489656568006507236430213410903286389460835472547956541618288354463730274017537869171506265846467195799682641090473219375610075363718603352023134309810968269506155932626380159898514560496997262123739168459301416222511095730640561443307297376405611967561281083646214993687334853485259758923091103085129508294865510537735493082925315127812702106742080625855858042286598670735689593993482995126269268920199366829200368606141034667941534979657123034535076836704726846610639930083827368628981861060492238259944045711985558182155447352674780256005059411413022375770558558216225827918871020973704492578937406056895830846464727364064967350598858900275254134227977005925658079863963471377389908340587446078023396470624767700451848813432327080078174100258920988633484709887499329019227777241807086161003311757497014051359443883519659774840655027539435065592436297786090871878722575358544122695974655751937823418224265744521122196257481747768159336896050700164657886760917591493803006001151878773840511110121610078877365101029670363050365629655498017686867114193087596715140618952962613497688406667957318404050239260401826933516422809028562104552901258101021902726153218782532514805014250595150216477901200666044127110701585378690868403178073099932151957066278254005056992654756968188645696885581829023013771857852036714666276442741867262027755647679963055472851245351449443229310050205391420403492426744706707291116700714173352452127589373302184276728385841993012650824692213185495920807824180904879492412126111679447635414283143485812127339586596859371293143854519842139646428619910942130446844396815968053569781469283334352935281422527530932371189037355660489836832841777838670704562183018077983212224304087429792158712605427648269837976208588980822536947559127456717429732185639966542185704556981321014225221975762751940373863549960816975323241760238000549076157613148268290682234620244195260229443138733606658775922366922120075808102474684727986872395081555513958142333673711813446037579488178493970174015124675995293370769514974641482623021936688880459867937398765953625957201836078777315071488878317839587871642018381937362084716773100775419278601167774993010971367650893818646268418475216727072338121696365223713479312029396647822750363880340169175916229662188177904485455483298761005673535352293468715276494575071880496862635577670669992714033828515398145319121374207038157153061239595446708328405083498273959342293883336043465365402619706820219400097876036253558320724262733418826297464878914388415334047238926992220439909420386975686196910476355138118553280381464886950974018552411309997638817544796344840199199603449759981142211271367785133274634733493873192264752945955996521599158985993538494808705130287035087058942136715101607255479836314158849551205792478376261454383983500814999482794057091809707863801839915975195767276046262527999752260361521193322198841817799190392092028488673035895284371065953716815278054612914158088720795373516316140205779203736073589546439952271691729414176499399226501503715525824389912893091714700061636216995872946434576453635257800922797228519195995438421491880988437667752497878502034988994002413040176192810098338592060180660552064924906797111863268118707057581903570117258760924753509302831874110660106950165677518927829691368642088663899855757505870192938152464489552564128220239529376703158161607996342131814991940817988268298751844138226952306566570521490114401972005642696778787178512075026345802168984503968878288468455984153192198618809314956305010352899020326900342651085991829853059276919152695935044563235830116092320540551200451102929466177561502115472124954411602852751506673879665138430127497486333258838617292633101963072047849771333141494877931174147947774802640583830588987914281909581072048739429945954487219314966207896103078856495385890733389986886308411966490099598299656425807269564889344945709930770274897721307389253421773513241017427692202246151845315835452130541060640905109323386537342273841061767230931155012793446738347677628963622336506226365116143137871651117433609637332357241270865719892605669922123784587803197871873495785794653198878309137015658201220812851705264980033281035746585741529001777336801147801373304295285603509934136758874194554649126770510368454881596753102095719467006502505507300946536294132684569363247606830849351406178720471000281057028153326636903242136695280812139223339672408832930019471131836987135961471432778124712339347874015854689748428160142658919711919247072682018996504695466241684787252895916711831253674869560026666754466881937176452071278969101716396145420727775602598803822991512648714832898924379476138386905461030465442710949747223803751851292136474267303587583325990638247779429486063995026942346996427150335259823622109755862791694661019999916725741449080341197963402060578708163427837286947362157010122915136434029595313178549197095534796525829905471589363680158658986934484688098157147853607966347949536677390177683158442699134015421378572875455462607227060591140583978311079065544943699731745904410163877338719560689326044596767437411462224021199980778290042455350673957067752280770647931555663094864266897206701188850034666516900152411280704394572048524384329518757941927966901919034721238595764494126272670349488561418821930695411834639585259305161059187672708347015995972619566484074078236395005891851780701498423670084782741469263528731542992457296738760638505456075638404757547781108809567226518290959431915157476507628773670544415023407020200756411665745350305912975044068882728465060722346551208650966395590859852945687796351344584724801587420978437722762295274697816670836321047000950827993759386491195630880158361422832353054870275793064142233623185377417729442360181887734891760480319865801790785657503466426896389235142407273703485892575514635727361735765863522830225097822568678081152487816763579540779170279473760958643440438579283705229248374474981304534401888202807775292959581300015600759688190321092672669987984619276250241909701203859821562761128837325782760420133818151507606755311907499014318336781269440708530509515198378510321930985233656044142031381935793187705026849386071402122042779719705209004127427096190109734803678599918573102995960691537649630149547069103970279066490156244644967685020710126866181469702187150324222402773192128518824098586914046180376564195837777885869121097317783232707054968473257773762900938867158961890567190196084624287210931573814635306329122641491719726763370699667186183657162749538264445410053407127664085826932018755364570970993653380112523744494127046544247713828367202975663212329854378490561440971172499691113808640457741469018161672276794430977251042123934521042761451881612338246140555177126297628126512506226055042578769256216512142599273657497394094692818626598466616467273873291104660157066668355771832752940908158014063228287617946116177069978838383318033089303134222100422807376030978372036479502819657367117199875236603291187691677451546986805202254347166808497030802752283363365722647482833766620672975337366705079998964089698783706938084680078601010151516988694108198478323595272448343938727909421107587367000617001923578082070849399410887820336807052924285122633208941982578926650294282464052990238315610052694516294940783011923161246656910255885710295933442771134107209536697491187402128189014794379250377473818747295134940434427317372425472421095260645003341661945588916623404414588633157146840057870432636434537905960282940151155710357551320270242415921413513426378797574729227990086347600156579400520539399797908946826748628102991211810344211952878133092475084477611507215292160676334163816512660177689607162490343840460063120660776210842798351274271708149823939671545795088970182541664392464144905921322826673564849860255284878301125182171025882751365914282425717673467005168951023315351754442944155252608468559665112610346286658510585693829634743119092995528625679229455446418955866991783155975463555700391419721429646714290674382964426852961593693063135554680255038006886642917491963488938732711199707000959884878727763342219373780751155615119736648972316885026902436213256741436511663580503326455814090235944011869131346825185177283381671519211386095591411278114385323026061969588255602015558757753506008700428264041450686467090899163142884215949500381406618347372493130146635377246225311020105728721638016583474870834440095869723823528280798423149286965860323062770368992777374486855646009647148013776863924263406000104043011624062358431095388214074667514716624658065167753085660878874958206743620181627249019100518260412022927857052681741415994093244252224486917329196552165022531678167345855339316751542681321274666284815025694312528874310152088588875725991823857731897003436153238712721896529759924965293418759314071252035764619955798427238078926823663534011774197784287464613136998708416153595548994704896720442885075261328732278273522124340504799134893906661065748520517437642791463517151511322032120360024514522994603612007992794697816222621856718699906822047860439329655597546278504173085710070483700406070634107031526489046877058717865834635575100142953525661307479857210595746849816560971060515993653249943222236694044346624003677849905517084392213008780104944954874253403620033057477165266057103177734701970267456683316636111098066331982528908691423776100454508397968527761256032464640384981846000880379137088460108043473916878305037568813385201288384473086733871761312209067838204540877846397966205492755362382574089870695113509675129512490969478464877920416770848429379015505288651054023470788515749637769547305678959118211216001989469663382691386713859412874365149385909709048711411546320480912648667279281464101116087468106834538199063240405288273676845399276012802330396147249772293736680707545349169930775924395089993095911009616592594419689084136173985489154800045212419160254227940157362425696369625374203672330879178422603192135146901318849739808860685498519896452805277376471731904094840244669326129870944680216081414596940520375653691235973391772218418953483625309381391834796916797288230158058854631784418692516064203817864491013059745399131217771849818711248890652353906350157083649366308937579389518425632148326279852125809785937969020887504887226440507873272683073486854418095886125657611137619305270964851217139095504340732331574579221696342151387586221677805148849141714492434488824035166559822997020253348171087028168698373257161921431825306300418017024419204062300487230466786338564450207172559808144524235528455388876190693643426498879371305599982575831525217488850319066022152952535766285649768141015253979030760809444167890013921105332222499839732276154535240744453024876963759011260551193331295564927738918816995256809814690836774849766712691033265919055432536468068450775335641652682233542081473083013813110738083034846606246620688931235771624704184627494812548127755238673426695881250500890339772421068999879503338480940384777812010503827357517184765977080343730689272027494490211220557330630294913933691112901891115976119722386335447754629496873094525931307309603099189904058001196941865883398593196321107131769530724245275897227554730126125038509914180227872798732493910950952237860682430630915479991624462369258164030417616010678207821541599563585978561044663408881111534148078898216857110399961283805101008386131378404552517556824994834627988165585491768476704805866612594692721857180335360379600499201901334577270563666276332467432548651705564411126807554208927869532836734429422432518377153205797910542906048282277709083216428881720289933013981062812352299717774755126645772754579926704430813815181785310936797572677463402971582743439624356320069244154734099406442020257370187197671424360273211647169921711149315205359907192838213708900974781289466268939087024919693436746356237787318214595223522919430112830447771546326095630168207042588559724773723675771824959032731050888632012776815046478566133560804156436051150530935001675877526995478535847685531628182479973276323312503451915080814524151582414996836702257009937274858537285831500273601348136042639011912905652215777768996319505242829139147573957024431922480845390025967678110425281258884697528231700434595565890568707860528152077845657332198274652268703034259539440218604180313250809397910161007214025570280642834019182189676059900171679145629932402372669444703056542069201760716844874074744633038579196887709090887543430795217533704722783534208233841921853299424382382876140914023638953153809272560068540971263965966823793253672846241661704781281050390828818190195787139212186382349477067256785434362872586075968027542538729730160018812606604985743029279798447425444613924360448603547752699497690708544219602350571408397897424556366094138035882158480426646438865800055495701067079577621733821204553983923224034883102690687511828328516624161999784445499838975571910239046479536836246403468539918457226532346259230828351457604978351785927144225779422462484412827147873525234019560216275938511448283070574892235667910208719669831831170232392836530061425966481469458872885854507736169697159162312947964990353516689197472132481834568807486175186751422588504556597386224532062159441391412158490479120629655628472827217840760478624114876972319598469310358907184349891794283235168910932208616957128872634736602222550355941214504449415276994189127159586448088144067676979520380437257858186867526531043569833874005545167087157300393979389146834038534378351785565142507278213184022846990089619996546622081438686499374029370622196160392545297268245434673473380789200291715763619701590243339854132285627456059154881867851996852317201315703999482378470344242804743633959186372467874659590181617699129063242141637096867690603178067774414919583698943279674700539150109223513248310576001996497452250535514922285800854537919868887880534416018916886466867617079356813171494529779966895671218370127005108920807672314719817202232452619795254431148462480132942400121546077995588395928437534052840474555151330615538369666717544280689087349354859453411089918291964488293111910811731903497840164985448594636019507092914504691710738818099169275591180406624132047461830653711693444803626911397937696606964976485350650960760299611685368398775703673878303921618960400646476171879843241139466906637339659659900804856648413973115870285127416351395422167036516652500958076329869607482093309162023881848690949889086427269040783543450101216945229832381077182327262450514792162346792677271091592962842752644646930720018150942692214351667646903386973739330951336497467392772169207749690726632232067614923622634064449304973632520584548709143220613824956501014715941426811920805644759624359104593311304880836915816155219405733655459325713656794982992404112884403439937090999561791259076400666966656003107003965224674967122725274187151330208867616004487717813072875895550184551763558601132845745300473861395408739318475425448542986632333471135809532680195753649660515463978575209162505269318521003280687498993587313886802255483793266331560403763849610881712821014722371380093834740355029296765647185537874746363911233396114094393445474285421401524174913135662802042732458170190699127204835537523421869641518857711338334822604012077153096354949758569448838665560237241158823303971333174183983623392084527789816588132434188418757235855259654203575415120053633311128292219279262891539579793698701074217846004550187363875027310310300867969332232515225469076394992385328203686233225973262563709588226411200892639416571336197952729328953889478665117208782502430237646865646576530628509459548029417331634397716666435236052538188609717736995159599113558907544102340187517973594028616893792531258950065491483958586697690122174103453511688986525837362008278935236442294488177696935725932719729196198975228366807322167088009347804889248511808656250479256453444858321587114428576524182981211159656582940139198500880512126075831233868405851147520733007918000532970314611422939852619968264305046188494958393943816291716318493403503987339868847266563755605392269859281125674146460395369633871124009432605741199547984615507310715474851647206498651996555168876378879272016085087902717809381966919210883330023916941449788863952579761457939586035783557735752894565545927503028109626933974152884709071235323759833715671853223247555439363714558858083044591799490870609085619098073471700151878400687179664972078963007163761433290390597668458043475334594625170472554378384335171689377199683682494433295084461566723039799872107523271757200175590939211743377657429295584290169860681131319311494268949075053457857915490323519588171976499254192805828059918704334973428204694687965967473138183506395341201133122937265291478712954403668686991375380867725664972668852654621439053395944672713246031704597107494811590699184826350750883412578146890647709937160983990604574991562921239724490169076120391022774615267929481550080848255463563985302245154910505355753944519257395686158146240257565844499315815352698266211067706325843742154428925151067766978124871729148030922973756588806140893068724344369447413182594147676632028770383942878016112565357094915918243826784729647586609802682296462328737083165943071658036156031551690260273456281712474962391889305292247434377053902354715952766842659107246754412412046880853286796654855988300494919147293179334723751713921520962178717092946337098755270894549891634242040843291468616543448064899570896176538563826224447079170950542405093501600362929086903534450919841137387507706967379974777547110804087366763929160573381200867089579516135369384041342542635226291696800164234903078093733639986226722687250456991374542343047067748778955264684562514255824475496116613195731307442759017872072533105842439791599015429684893424382181067159864675662574038304642157236175742447449438903905895163376681360483861659636721751431317130716463245561638530220924358312749881689255344168809309489245048039923252593187270910749362956672409788470670989290639456529651599098395271308114919886068236388071758661228648428145030513278476992097278789927053351795957768992848781568216579857577274925787173251392862407919637106160407231896796114201041452258434207018279366067075199245112935315223586994856898127267038381824438651328827487620514286775827253382981303382358003808657125647573514043138634419250543511658809134424317740312375390386506494798261228457640776297174132783449026111239436145101996624768835580051878172820766435467064629110592924120992543379459281518814948755947639646356730656547008456497355753160854017941159835593511717508159116703714130750086880562392981149485683524693054705357999997379117324028045995735632876212573498996716280556372098770737179690223822948450093075389876877382418327046066341050415465155016300781499795573311932850591039342044684261042046405468693003358927103445467231585217277582673513240296319031540514950149099243920989101940547513075871660479975813210185637537483985642879813690119994182035236159848792208431023162966513040216520212001536897128439718200142205919889551550579879875676017323703066159152493618804149493607931286566965632888592921612752818747141480223729507836414683308340210360837075156988125580384132402255711988285791648208579614520189564572902832621637188510225690541715687462299572548219023588673584022269136899888070390673818317395822676141798093824657273726544496799487672512022242608606853422088147547360567626049244715652488490629354840462686440728605114601733687196899112478289493539498853843140271333620807771620166391026744697077250228556934788698313075486115480422525397688680978608073018246898511841987138516962631063722257762978613039096759253657989525072865700539504001215131193987508495374440707094721241055713050426811079060537811711286208950575156490833096973128886554071131620640357922142197568971578360984333564125429926875281337334762741278809346554708054536792641980191557961128707784749667214623613913573810341875178214835240205545164427395494988142335612952764435920477168184874590661856920872215926200035008061281498484974130673482466910978417781380931467165559456518897435514649499581823765269462596761435225542524448022977533493177451151737933179653992384770451105628089195718345477487307339799854738226841143185216759778735366152457318544593338043015338715274952897740209392075067591322319610385255512038039649035057983805331976068327538092009768709188696115413564571681660908888025166456202953732055387106007448927640884393617714329309449868946913901394251431597773572907127999446366026990670252351278817735416734589013936464889926279304225450798253881050289270594058295106540146738329758330060608358963671269469464859491011882798457063491259232678952624419961545653058975254945842792290385004151407776616639838818463389191754109907582113057956305672348893110434201191629380869196598100703914012216944406620469666133615777980429865418285843913743924321661691541591351382653050832838707712236401593330072662739807873780189876707095327771590397354414380158717548923564720536753469531749853931321959882626324887228996597177709037296006048085059656339596367208755441503519181080008062995393655327367467685420387710940028142892105629015126757191304468133815082897173401095398308782568155392484393599635949838363273071255826158326873134762357562305853109816779959593752941914591102925911165590886561981346559478664021452067599142471690145171802521742721967039295636905969568284585462198934959630664364780960565572593505558447487460514813951679477212099802967005207981073897431271782669496113903403869950806298239572257808659095285676185184625693504618857139821594610645918231635085586415005344390779823445404594020867183787325577656518722909571508240084005090320469903698319467783976253800122770985118821370012294045321383962273779395339174029549310758829687514215453333117380540261943353941826987645448977462591101665585623146214453841793114077233592157706494625993771541232008066918378106959105890654268140422670560828213761731801273567965859003761906917654610154958050362122811886396832307327225059982893314834007435872016987666566838625370286418901732406808126845724592559441650607321811132353897762594616774044714082575798810242973521045747836772248738674495677433141262629473575343376692167636667063344277106738590664707733584714417968199709780169713182616662333484072577722243266389955588104243305226050589351727207814270109175789444916597400596778497535670507819795343859761682365210624046457143341601956199717620617448010416840620201786791754279805216515950827410415409071061773916464942549076191207606408750599657132437871608110019657306177288420899524113797396939919888370115675440488390550464421218706603667022226885167685629579208577394606363515924383075867515662304758408648527442160896470961594168121523829586186473476027497929726082241699760203432618331551618123466182613259471890942184817448916220881970321223141120020068034065713634320548589724031273748810673032085451580972125782526955721888309265480535697136686394955139598309965434029295573120155937340277054819759851962354544184392685247028659028023659652917148864477813813885822746162777994966627143431753353886328564241982744538134830950191659674982826607293741181691237238927418315635859882676566528544304851855440916194422187740551558029505111048431308261154590041014766256673741085280802300110379189291257744818780430975458682954517903342382127385858273685162077359012782665423130635129037842391822346554889712683832121564910460133486746501664704537175736438251415506370692488529335467819605009795583505212484160838614124208965440323454403754967723425219483231791966459347682795457991473807061243777939918226064094054357600017084386898143463875674441757135594558880639102473118546267308355093711276808877254899599353451506164175108510429323254136557248256442600324727128705959543374899455133924604241098095803500544925485181263339861575247822547443576956589258234792615433350410458069978867483041408393730740117474381595976974104905264055745634273439892046156090732259475920324307237921009306725724604175110616121184317627820016743913599952698351398459229012222597492107184475633803789820500262726096004731758704953451093646502684010727937390872647576828858425984917342485699353800951386009204419965816641947392445499900603741332396439404179900411951799387272671904552203315672982561768374020216456256949430220387935165361009037975300614786158026358261832584191666470473095244737569053278506688712262230630817381036722984186314126502919629845336974397578838035061885311359378514225535371348504528871529146268512663200726373623170081672465144987950284548486335909135968171226977647620557811627867618360533674081940933384262118591027291778427160710121592544513149090429823497195826734549992164863557081056263438714528842963029497804773598956860717916294071443748026458413308214602449837014788380517608018417278660075735735236661078023833767106225688500486085625337121344304225988451914130607983099782800168488396730752968710130565840363300822789609341223505710384887071657772529453387319662372422130128303457510649991991482674779664321145798794242469041103424690350091308250599742639579245365426837508263878053925599341783157091157669596522137533222804367122571217598228045321866623005871263274757170238161390608209666493017371959020992409730153411895851069792011302687749343932412504881567409672045949386383487017339571973068991761749639837252255633512036943764423622336404740198860987526203050702245172584894278112518409759197567421889373281848667107444663735811916404878915592661255719072158221638206565847153522736576117997852600747461147334126057430053510333431918728037802349706856383408896249384700750163459923965240112065162482534863682003502705391928214398516859683299062378908485984498097665746498487141673331439480800181594168107245901489066449928988628918058796865878989845815558917555386502602505314046445098404542319748347262151523948479343186740840978768185005048004897908499009712593116925731002688807850759366815218545842055339107545938461316494022120798128175061013690710678392648378603317176981788903433191812366481561558253958474592776435604013797950853243629293879104814034189244133704233663130922679292247553756587948582280223339015481834999573273034253095867725739407067893809057033863415213595205872934016639586951371981843426363234420673170174956126609232714989000144042352524139632161147225669616206984154549700293489863283614969804130694325303687221819017657757523235131723124958337416589272528201501665968992057904568017321735212140278708504571825705909710888311512869536630648499445627444182182118537421401000937308157260816311275749903301080086375310247958122127914063173572463306918947984964724556106594953458575289679927885931310704430228567067513225692479345143771329317031392976543375992574337639941997241878582589542484553560307575878314030612143168513141657633900153696355996920629779072461167496788850579040148236120516450310194027194525345584685090191578821682360726309839895213028556316052498320712464848150106046566847302631492139483802322548925999080539071552125979042524448708559319021622027946701447809361265752492911734613459208070371726947684897308235504133490656796879614324145487822772450424720936035021837651180603745483780384030785439718935106444264400120133749457841447729206206432547638484305425331724472355626005160328815172665891384482811886043372150091510048314300948724216276834654225362091319395036177662900711486459471412093836152987493605021417004446484321016068483249220126132623613559508756210318991869217855610868096823439918187120015886597210295314327458506610902406498459890123748659749225433892845659495751071124526755944058928350851020643126680111290370946244449978031405014881033560169668544989927957041375561255369850178300909862302782357999772511944200442398727612797548305301630576106223854808548702836202757672145661305709411124080095363979633671040483595915215672209085009728479064086820382779207621923519375154251695321751328374048291419394732482087019306713233904304354482220691103359506741863257474963926519987064040137306041385759000273904513639090785793746100159821011522633808269672265522376856087497539340200875780237592118637125887322276181457721278334406200181573702496777305305436922101305943198378242477341653518173406285133732616723617504450226725554740889412622740500643922823060894517624489330374915142982657002530653538441706850296587354550576056444968478232488245873600682440631786460656442729806499684929647030479345421115446385407617906971907983815296496078360888497892501932634048495928848142143581178018877228575780492778555572592524780253478102275004093226621085201621492023569885585653780932582326997541138881864476080288379775080188373629322748818301272346506923462554796627704777864309069608787266566987793282246465192586043157846178996599985082592081915640769050422683247085068561465576992049914846010971446450377742409244380436989626325909291231767915719748375657467641491658025496070331922556427995418810387977963439707283102319147798755013041771982897908567073088374468951475895016930687677416257197509246149026110764804154116926063966264702473128205575063909843171405950246299674848199296171557223370111015239595231407578067991997085906306864236902456202202063550650182850233783561531713290556723859871776369956195411363255681278908323766446255392450397891171275191082857319823323863778735189213174221278603678997633818748728087640301730963241714160997356125652016967517227643125266136712579540620371550147460339819296043775483733965684057526934356708026818594414511168488295193590552782571996444359628212494936855615698777331157061691562429796682832443088882603545580895157869390646558653554211910854690574076444051581819420281555067578773108932940377715908209464598547261209579763102926592088046729608603368195045626273271787889187805419123776329751977094638010915048399068858739755143942764875377582709914059324627211848105013776631187419134666218807495352066526975704850292780318003417247653282735225623492333556824733112327561832995647938618475138246362372157106182576285616956991556267068403365961350809458182243408828804883951920126169249936297834781447384732239862491085454586034165930096314551544089149018506558466478972879770732320343263240802424000975580522226509009422582760637083647430229114129503563322893896750736386751519729932942609113726834381591694502617393799284641770066242183542546619186543452522039118942151261592451906233881506822719973992724117927605855732644506786034714353516188716915530645131364088814507915273772675694611568015476789440553442978712492673265158646213562966748482427856170310393685195925906454427898700020357739666669002563140502974808325387582517685855354844526494330814119738610049808567807207051773940650452707020655428005523013371477462974665392394982657467551636927393719623720854396461555871609148842968167629361569396160280788466198873644845076885368301186465488363889320439886414057807269189107601003787834701804927377585501134680533742865668520010906242925490612214152514240391073383505631112620161660292553452935961254764571019529550952304707495332103044166158046989376577430392325962787812692537284701604408344380928262746188857076964129849851389434250146766772226570402035971125449513213797682225788101837183334000315525597119977759860473288843059614582810040137868152111479360055515522261885827689852032910965377072956912098695860602413971702312390679857045924030040058905755640550341572447708294183217513115062364713895728055603605244999187354606454323865377228156037395801273159458927897541035270165923790460069393029367380847953586673931884104737122046028608082246790934743574255742932582844264365784795286368357516379997295934427778698776656977423537951753690769983480632294993954205269000015084528897539234611510889877059961974406496402975631009944334247514537471338284320231612823608368753717855432259435299522100656321142994246710023633365087055443071612971241743149573697059010000814877324708349422605310177059426834500951303896399273697614741311939078356894788707881612075992689977925914874737137904636268529289087858391876682425282296695047924481347350823412536488113149822802870738714092058757096207464575568806226157807184103671053632690483370911597811446426191721574381957957755718947036597506159114374297644981050577828198862668809028018704036557696909107308465555602535057360093437733266743930648740542312407716034049815209389996713708165519365852440458638415425509586412734879318870257825261304284294804154080549143435092762579368455715781235343458742659726560346931029495456918820263080227852771421061746491779939371810090851210848549265349468525189483726765446247492718721277356369093561620683074101333586447541298204884359559363295097924460354703137551133352359660671996620085892359221545670745428430331121019093773751702831840071844970857612959393986728781663523730926695386126853876328588413441662342799248485974923185835709905656715651304093909385169783488173467125137123226452180174532268670626991547308903963283272526482173669345008461002914848640170996984323907877997819857161878780263374892928098367273173529752988658330197050336874775346236445696076182023763569082884286883489873702344255511413854846078856645066035275630346164159977148964371263582627644487485985461156588216130435295689977627073776101527649163915118487252301295206430104639673269309710991635392918988650306822232922569083815967137197109933526499153986684777268512578857176124071397074011212166363899985943335922209809201176752546174259736072111155797991582357230832970454582720127613370031097366034130025029006952642377782625300349312469796146386371490175788446065518700822118211438035687543856127804267704497059527409325424195370988402663170774910195283761087354731328745571975552927893616354880381320948706336083926873576215409129294486860647551698595242473086823671242279422969839070382254494497594386334196256070153215809768713772577363103100563214815965783916122616245601518237386254033852818004683182017292004796253256789304172427485762178544751057330255080506187398076718844382475146768279427418852976036359319783314420661412127231181319981063590626874011025404714857320829757516433572973207589144781768300246084562002477127936246639699190646778357049674191294574707158301136702301493881269693501641474208362549592531576830827748699101274493192407562591540917335637934672499847617661903169744428449188791845090208611918918949685351122222379897127059203304419619211074048169290495610062407486371059765448383349860139893343857798755148314622483654488831870977775290785242333170395475480130119114052078863004982924079205289047675582364472618260993704537874175937165834581226923871910355287276501777396599065027793967284262166038185653049136392924540842787032137627607676485575426056002216565327777042160803692823734561622028700275113901592623107038835387679210385596125210236509000384756900620451444237653874948840001445665631126796492457105017187123600612522993887294123397564488406068685299450189150373168747760738800359188785671236537474340326295305385357159407448264405120273175466011449147699390079895544162488471421860736970725090733902643032703436041502077511979834302542840002002093673647075624048147407719526473278540625141678680510164439206622132074233142587734608634583352159180821778730820075203222859215829757784184012593488776881013127898563021651620501640426231506388997715587846460191299500369550225445227995494355055146374359163240686483519222035177699564320589291686005868418685455534119970874789304072645294523895266946896110723959185719067698048566953569369551609826077091908728436600151374397643275579740304368654226784427615001223300805354763742963600019362968186340533447574752186294369162449374321299441811704587471048977147561355683712749654969937993059552323815638315547289090944041586165021301410037295302474487150707189280481036302877906976263862428195693500866380775095379735769542717286372333087636525435994837986081694644659983307043159730348417676929937920029995926580927476327561102086961912032937602434116065923121868862935691048230090712555073464142199564660881315264298048539465783994203757141659375473778457156445258243150695377031634019693212658116856453281911524367643790700206716971615026281872765772125750011740632468197728562481475269853790577950391283091294272084741668633612685339952454803238313796950170998872245898797772010629274467477403400497184567728339864080653213021606341058844801503301072369303686459413135848619041625394877196862435659328228968091104474424958031928859216745840889640541075794302980683086232003355433370774689231821634581666000960027360577849371192095234346459992977875172204951052417681909261982131165735970730623814292780887079566933942916984693978029364147071997256648020208219909802683065644173686352751242772660760955963991972835412376055990943495964403056908895594536240733135283994597541571200326110365371173838048176546302494862754497577096986185851686771855179510468842145641019972789679640897816135443592626883088291735327680760272232873948473036328691304498451430638718159616046380038816815435539564545838870947124008281234691830409485699232675747314418673601267837722381975468640891691960297234784228786931116116393015265728165905496269829865771483671019992051472623813896974409833741393985031807161020491865190550766130662311878226876359986132721015337356392566669293046741862880970362234108895308046632259728764972722497024979512409522455436552475038537643347689039784836160657320098461195082065255370139213705975711025940900011928108263669246378852432479176077371722302909056432107401590212828087212361948010518270179215568722269620764651190661425005852111571627998759469345341372870761118021542054780271490880076340549973421671615622584430924736115621974717123542150541117975604172107029631237164106545838116575740547348174121599588693069208877772504930082868826336413321652852067541930793523074255403877585344625115907849548482516814669780552141460736819667936338297983217736679093846128091180631081039666351726171160979305863042722918554808916400079850729523066507618340747170416923964498729443894192496243756833250817929802646344824384302256426384390360030691326505756598745468083230615238969516243708098314939439770517661190920680749418258877172025683208330629690182215088467179290923489621772871424791977213594332712040856319964005412745220992051913438325391211662545085519425599736136397948515183108951234298177691620766919366133541722142491068674944366942109638879081148878489085574151448066077834668562482563200679161856803067473886233368038040891513703276241638177201954650939800776988690274188847799291651000150977729848410647972220485869410450113395296395823793601144431202068061933852870757572057956353464412143189605888520855355855498854814268373003268808812401033156892713658783734835359046369117269963712423288670138334687102181334070135878026447799537289215411074711837736660942541791633821117179381451013441169929728306220767505079171454724490794199147998172363509588735246622840026059740567937003254581548508277858215627337598160531455636332156565105132830480180162524699059069661023831294314922177752568847936149049139115931709142112860010533404645148670215280214948731042519912007729671864821573909901594478875277251960669323492647550819567726473886296030973116907225742743913133155265360698220892363887511027497951553283819044564572564960983142788841593235304656006788348661877093074337199318374581190571209637529379843391631192075239826619981768292155823766857124442664258599737327309510964616925418651456807690056528976175503606077550239976402393809331255221196996152614919193962896149253245732036350910514934947474836050104498036336813397804562634722428417797234294175123370992000062948920488645053560841798867631995238570066337273429832115478066920982951322475281080806250175279360506166645202507696317993066298487666385430010643535635026631732780921255977923028740185728044961735081001382499219424345960076145889307381527213140065499876418547040495280499560540451243426595235059581846091780248226622733757805547603479980268401450033852551240768475272259838864474424771600646738213704533760704414051295119223905623449897894794874673349340892997006768117209400802823066688688951160712284974325839105769262875917118733588102359859098308992246161689355176569222598890422843476543064842957296050942085120502661649466230687911053852119182350837515080260965610377755943220329914085549629877954461326042394802999252400526180132400598262428560199388081588086917719289867945855731219404606551433498796959348589786668702430589654095272501874375718728602346207804407346124148259577874606855579769726142388239267744238766497721608323933191238518609956748129849401833104659488874504102528393295843554636511060117901639980180612224862254888657008397100648744746329226300017612173167873548354804034551334392798361046410427163985471987356846148833943394666770931777993214798986698015576330968101180618377691159944882493509257227185677007402581057297681998072821584322186188285791539498997549130156038933526107945567760362736874064497895091854215830036831135871899226686847240841530348906895496446048414010435751527239799500188150523506348057713835420018523994634612229273596804787823461980731211282894502932466020139564586173561829155088315424007477108592528587894930560877021686418139611431138521489785810096343835552175082583817409093730846453846723883382663734399211913991595225941682108580223404958331667820298413129126512936623330926542183409450148217689459463773351393472551691625615371106134346524856922416745463509592994519152348197562075495670368336214819364029393670054539534228124802546903800633142951778738771251184926536089943236023836192110114152969964278945245682694175426351771606577093578817281927227619324922314125862600281858470012772175431521218901364537731988367891290327953551319355075869239882715651512571210135039348716721666140140837710607815320965201946262344519617586573245958129607100901066490221982561800671946776258729412103110819901932654508399489929294513836500258997148297497668890096832327153245857777251105689442084403798157493346087594298261131654421016504684776918878238090461527477545340393561174854202350859042075251283642870759494416692952845458249300097031954683469176564338362979794499647959434294090557835793851212909517243731029375732856963434850629828847080104012357563356605378352841239974966112582393526902149990213767831061200423066092687749268417778383290128484372586575997475186084227399739494397377813674879519770898360950783104657677643811867654975742629584740239407621125739240207316970538915741587837730741166879006889131674726633284397519998859795513947845493478763314506119502927757951741768078214434684807426175248446243019870380733149267002051263910800059364713485765229933904354322454734003164741491020588845883788647032258682534020538989478722506307908021354609872581851845819702698307098756061979807439203192354217492298610275086256637398209764643265024610078081709259403562722988340733230631960471879370210115818053865889539990210102970824841358654598307697036460222818543462568468601862747704260583746273671514024754105763783402375407948125988975868657496735013724034297487429593131329117341893386383034700628466433730411430213184572897810262767061017777782670163631963611307524898005449573114357355021632912951236692613265170646434014637039809263421682498765070145776379013955134889075791209986012581045610251422922660711605150212670560046914091791765660887797156995317408824958493007611899288506128035747772870764291137125493860243503056725758539236102059825729614953711749108571673619797694059636288178251642411956545828189070698227939690380919843918374583797204598136587698259800480302958955960623364124612942911705058055321674239248068809890846728012165746612452106062355313480237186604348375649600838393840529794613165973609584201499719445659126118001115820408476895037407476915765805983735996364950536341041278901548568624680271935008234611705331940217788898006457565258623439306306315805863027617297266558766327263627409166280458672860257966144358378549970753727856137759815050433207537321104653836143682282098295609038282250631282702983233363938520678851526511409930491917542709518569343794244266658504088810911916548875588787812985699439034993956219049552293801567105021266246646688910672222705258357580098224797943692620179572246829082342200076237656354275746438010895339485654929126442948823499234707966780708972619286236694581393651325173371013508895399487465901832485291853831330462277653946485825169562791199174450977311647662539981854274763701674392602480685849913694491712703785981497845236489119931204467437098455502259978990306330781626553484022119946914754992017712346055903992770099122473131956163910308146225516971492141816555931995805212369147610492996574896809877383202148467615991068879774986375106007145237884438116770378487850877831169953510185977780049296977422561522583613066069888163045055151278692544422889654274808489393283989470787053015865260410384631135821706052680991316648061108333526894297969037636217473641278904502588232244262952337667625877845180022842019516628969225169753029478334638918372536144553755413551502200312747495971685129620016170895362159607233264346104450300526081452044730354293072843231030478994562493275162836202827970554397237621317479945369271469788193214894231109995475251894085848755000489431316890202795653185924695995479846113537401770244985421382712565448152793171326764290462665252196633833070485594937437356476051478311541109700604549809130542102521937940864342304346911336462802061503810398559929680451630045021719482449770145882236972186332852385247453205687150656177598216141271540300175545558299959596049445399652196729509912527973834913779191054478741069716681326506223121462449375723452242759143963893218113485976640098378912408746061226565107961519799569801172706853030013619613034933751677759049932126185690134267019486142649812726857509358474281315431601827027648238291100431937038206366436534450720934974787430666114063457223927637296344548991401146343027946332191402420509543259171515549996099842001605272722237184377758681904689090733755476877238533031864763842869547083942499528342573844514385207995881451168556116009378828850607157974027694888109649140291412044866788730752306973114711605970242986311916436114507610109247347530914412570019588639153553628305638161164680547231735992075642939845729194639574031229966546431239954958567258582701578293013955231953383775709956618885045669744271098523238460952542670640103831990467683723446362834838423898786581698872726170828352081692343453226340752079558179085793072993416072043769309416327751606879260240155787244275961188105460147892763512205603321682339425013116199040304875831530133151010882679504868798497568237852095154999543771253540856726298585380273410904927152726395679867855452739627711548863684260680934907365372673316969785330328781725709504567822351307077285324679153591486567765677014114300086720009337930943251194359492967417642399058712653582172769024523520256191659308502493426185251073133336460189278596803992036144329010167562048003931509182571294206709086438806183864016618332255278885912371460576441570381135153394897857627760720448219241189953118750749039042465820036519392386386964254276789029748926816224259947022742441440460877823677121505225740976537950532275165854510082074842512252225764020192900338568718889075334669552328188949013626335282329257252165936457255336282993090460913359412461980299759074368512734676593932564617294472798070740458749357802915736681319135646896875802058930855134785374006565863119990285206988314275373973549765640005504032182033661157855360351314985985014359649756536534859415369590877745177282825372873289005278966313131120658994674081814918153206132131939183384511022385314869535117454567617011646641898048532271236462629045966083350230909493939094409855497388357670052233139420104834990061782804740026442863010515372621283077929694825316428984952833997846162558200529930860599838152185545212540621253133303850467515376682794608443927013850696912766468196465231499399982439065114490068729253624330317717479154041366754324691426388693832396548711587296281398756651024569931320467356715395163041242170903505809983299221664360394445844204230651157279853762354878556379845066484218471189138587872092042638804977538739473400714236753347034010157893911317591447432579928848536582905452429817388581382241996068002392552229831724628693393689051568454874474422549731808061297693586119644153221653952577790403463688039561360604415724517191915557913315557496332313196853247177682872763140957969599971541113657300700490512910688671076247106590878922874947851996869228172119327646734011745856101176708282205942156334848279287777066739011278323101505684386828377313184172378392955137212619734587125094491852426141019827369325515967142511088681787691626375838681905786890159930724988059932999144259112916746625800414721982717207477710590112236439884095600604593861921106781671227574335861515026815154086233706844589621607733424635432925988364332303753357330145883520645861694972819773411197679472147245086559992655578901963260546027977887872761571258414722284067886669007136442930775003228791425996166952490816102913269208734652060400405866597427089696503451084310663637274274875613728805406340688758207210017289991481720172867724598870155129281216315541912136186104115136346898263215789265765700831677327117316453686747076596833357982645568437650273743274152244384400532817403413782010931536521771961937854848439302805354873786414428697110821591244793393390645086983256325804703206727024764340890179233153888592080494381722563642541199310467265452387780880774336149868511524252384104736096810685501192470618816290477077204419659826435707993001107813584892805820097938932312509814349458017088386573989674922245617999690717530949541811036350502222260995671471128509617102592717963658937610282554284840317393842825046205962841125365129284995949993122638674347059839446319614523392540177449665928053607783363689881005941348332854609225483294962216833205797967032868890978631332906577061194203539183278796736509414038118359025879636116267818731247949998444481584377285098793086459375318774343575969547221554334702295496370681498950422876794419189889678199785604632660513458948974691937314380988351006287757489570614078697409010842836459475541987804131877097783623464154415615061713439088500064267326736541894587527279083161731758305356570127569459455435519858634855557504843893728400770961066595340408023006984661149874544859160639215846118198010744824026860337019987395421754034793392880826871593488765916681003988393087944246090049243527292618421982354193322664712079690802073494354103586095888815894821620675649249950106601097201430448532022469917194892486668590484519542816775871541064259324893661702895973284993890365894836817569339579445025948395599615553816015671015708465463723729711528608702187039332682803061504579144132896689857250195619397511583447908813884597000341813127144098930326610182840506808485323487098973269632039909657177691867951844825606476681944587069217783879538239844509035611695835653865854700537923372232855568540316276134217389568613719944726955951381508858337230744140239649208777878166987162822573151043955678340319093752229310127813490112278184984433524262353661227224182624360221479866969762380032033779972697439693454245392948514327567457922185621879579669376385783040561878180661652760748468475016821513274884111540913086278447971885786063834140861462830620087272025745263619269459739515014822742255450081283828989528223431677198767912344990829876436594062924901684909773131965805600513713320784111243026718770078923555991227358712954965129225970448730583314768572270226076239298087035838557058422238806509113711325432414957041847145166666867560733493578663966523424397303874446233254147700599312110053266000907236420083066945528384670549536174507320679333883154235997881473553952894927275641395004580834624609024653866862189816494150798740068882107573113024955147076470180103187753220768806932905218870540808973211369625527513456106073676242693334475986248447055353364774912360461879822160715745412769434051035089782933363424569825865849042086606462489646051807990007321483758603086936592220764998215462380277531565465057606466049502311460735451595688372810986735174999001763371454812089676472267752543104136525639476080481180595066493983777482883403317960124298494859856819978709572267133603817915942483533627701668970706021353363593873632441508546689271411030164261886430447055502498116632867357236722583541454237511721262009129217676729226097578101874213851227906456432191346655001993759294049342600950843116169683425160286257435332768145772123759036315171981114039885825252974917182340657478552987789623376829953696459785672266885750735408537978740222493230716453821936071901623325598827614325871571268224646184710314147414476980885979970407129873941453455593815961054713389548350870818304406827625196327518177892690343487801027872992029097986143830580692537424512702587283175904721109166106953263485797111534000871829054211690435056143911698267143862159785222358516991741748268287513301820068610708288816237412419823147707825239697662688665913690636324901672944274092341822641334237958843996124900075619670277548121562253784478905239493149487811617764221685252978200651456494079744431082129208125427442004782866221423765184204464968582451171999889708064808875614471847832629132724418961228754916922350377584042946146348270607736643034467572128866100033552283138856430472451954201417585899132690915872166465111681743163479426707373756121565492681378274541390046345879544579906961985374807648689703069522983079907113765697103125540836279369847826451161426003735457352449073838733696482907730881856175409038079533272577851139610778471434510693616965845280147199222341948637436508663892342332103878139072317455688792999029703714803840531262704959202549415753685952752895623201298600665002423451395397348537636905547596484034293989947615338282888465807008932858839168624577607667845429470330583447240353527364841144966753486886870298870594728171985909508997479894895071252488297222872591311586646970193695115751242844437953523772212813587499402628811619871673569516549589508419368176538282565620129334358819485421748466733830835899597083217750054427203192537714645699792154258475837158474431337241295690049009811153267851543637086637840610670783375023331884902193639651829758734739008136083813563755351497621023081414969936031086788178534845876249866257010676161605423886509538649075958675533401185656248420336726411564711497382446554336092537826855962048766394231712854992593578405486360419459023790736625181602150566798019082765239253901548438938685822518218090570638972011727299067547209021919009129221003652379440852796587163349358395350828661188406381845655577108501889177566336970755097038825502910458467325413154323150215656436607501918858996064719132035080680227408764065317384747978862872144449306239136472743240804553742797806946032813525845359206255971421454795118886865269361713683299703011713842923075953290454456969819598556732067594424096933479753714173789054616580921873757401986054090420059803803875112278292521578576880243294797279640341393044929045263105068898538061750591416410830158860784837772233494004062693099381618904934339311953625925670368490466706006455587605732321552034698874532654924451606311482463420825641573910680002580674800618326941662267238933988652116614691229878893865775065642625878878758078365695662534291699013553652542969199699141730074367072675024311759538355961207591212521877199599347852183036256226988625704087284646339342482920590651362212298825503108926554361721715379315901247543295938884192734384293808050139934910370357742449422907437526199975134012405876193235308867463817361739421687450518756409194768445777506165642857528795995954442298564296212326187535720185735021455365654878209459169509150545072555980596233765103856586934240383749157337777198819535652759339243150866371348588485630210743315024087356894276233159864566219791591798283286059980394199775878418958552216695311462508365094029842509854485862023822176186861234695829801501412429794455702983148531390569182622580569567357016439409700627625708961256183333360116089836038006025942539035900055782245195717680076408620734760010321955597775610052071879365685078738530993730958274854286829405255337739499151035726440239758116134412703753986370573730445051593456982696272825959194627952352049198749557551097610382334080329487379658208890769374979992377366377031825554692684617738173306345745953996417681914583884959619724216881064567916208273109219107676683346987797835936878683236948531630262511800932936429666971105584681901591766060089777005715842206949760923423318226912739005549425193907756915353021021486581133448989232772055234453476871675701657803311590602493597839501805534750691001464974772303095874492859214979582511356617556447083973972834779045298911329157042321360685774442049338678091209215718604080273887585860637038460751408999803026844182028110410461324970749718346348299122513103212578551328952718503276980699466475866112824607763987161101557684086269818220738817187544811495154292177003136131403076457372517956579611886873676391501038768350771375277407986356462493012716483943977042374747658613730823645992169727832060072362646734950378648024241486222726680122725041050086016182101402589349135012200461549650221885119058609908105621583059476432560306031688280178713102256449227776422096963279049245495306793645336364292632825343136835791333819954342907842007918078706780506362881635211774849835179039878565444296756275279579258173215227817571509495899006001429337101091987737356261705460737788454515097097048230526087322741530456295660409206179967370492302343132208493422931784362611715546012100556302264807675479773803090202077886271668570857473892330696320100616690535485957419441711705080922685169305390013286939382879666287413279354052406020213296729830831864143528209535798086146114002547744177535408948052939416991875646338577517511969763771103654625744334371106435064111835760333801070289332783961386199784307370079720940620683843782403137035640650575485805109173430203361452419238265050565173365851527203783463140219749944342675973753872234987918656795394954072431260237131521217220080183029094767248027361741045075493244858505337762052567916754413833372814037984040046885058810279091616916610955166450070711370762540994885200351806091852312566446802590357032558643723605380952718187598683062969232343868455423359103390736701010522282736711678179842960086556351855533113682717555397556152558220206779886105096196955384066310425730016186832474800630523145382158854695312622636333885223281623162777189848867377402513782531085471064225798215984720705746252533816677827439832043355780178913952708002722498982844858354427730439929259344800132801075084079430479822580275670668254264325049778630254800180000042467500602594205184412469054443189647858124340213386112384948922266393171586180077213896342389317277790161776060344521891042902892306257852665190269976902941662502607135722861001536722227088697829397835443238883471873902219919935111866063208165589474013464988902305985203722493259673920189560612775218792648588242053732812041048082843445518658564667341708853728794066513611636709315384838641301195920280754790301903515704238447579086900446642772899648933187201547250125689103104726570962895418346652702710086723883563700735325300593152428313976555314194602273015602237589057583624943889634724132680110300416742959572180674787049393257935707695178766861951938646108686800562176073240368138137162336534977127788030360311748853451471724539524319947826539290520993995925510259307466423548680262462989892301452048926965053027089014456453911070385568986733719460276825094876701925129585398601327466747633473123057729462713222695132565380154216914144700232053057583368122220787325378924472831233572000369299551297858438901482096709300555565378004813853948877180422391564098273096447280665736873473900728837713975554126497625906884581462920213070156331840058777365204529775007621115862354815003709561915056670291925811574946960236077278768493546374876258770582217259904662861730297104662109456461776023233803167851574862385972290181077771328020118593178140741574980447172935547366761756150466537294663774736025795087433894421653692574207819178968564845986178112695346135825893762535620666802196760809282750426558318697885986055519000979708045822478906923065885802548045699045996470996603921088810635655849354049366124811660832199884426624144766193352197305343009501756772209673630017549991691987304463711677144304745492034650462142013298171480969818487804367321965691736361799390737634679372685855742721841880265197347387078700746315527035719951771699960619092444446820576362588209125906526382966872108782182078280238490427678514232419070240489179324007465557911302472853626223664384203626203893227930001481689875676726461249939690523886735817424187767059145974801916906714621555789221867967557880145248583732809667556283492297282593071736148083227762437146583727042256681035336994622651568560378327544258378543327250463637354130966885387016542013286310589593241048603396743092159953971427507870318072797149212232529900732095666800289841942085856724325991236199075902124112297889237308942449226420959216187612989970334343978677717861855754283112144832193715310258290376458842826034206708503621706564319735487902213270094994185994957329648495019305812313044055632543606761237927284210671855940989077760878499885834034969502036861064122668677935856297471772193614120954224903289026643923043734724710489811440916333445580645888988525582743682058495578003348408340271113653289944187358215684694690882625385554945209897300732830783410743789492687812973612557935357337521815752676617876317459364619301121856382905413884638517889310167286694512027452489397765832531912699774248311806425193901568591803599784566277954631042120761834317201870043166077855868632042436616275389465912561261846697008743720320468626635708695125541994389273130375824314899798322041391201189795984787922763416641160045049823279885180257666411703714568640069735433977492414765004875481012099372263356345130655068520909893299466845182574503199631695601240972977846641779089173872929423236556705112289590902348053744832253071088700182702102191637672159634900463815353274030935105743909741768476850364152863332901289984973374567694520051639712425689462002684830463274134474505307547051102439187974017254972066497334786255473737394971416314588175403698731300957572329821296958854763218849309446525256993726355179643903563225033806886122472107866820194958286897699554121494397867377457005335018321871978138342545737407201072941033651884644362459905787080019359139895072099537542857556810608106149083168208806777695559626087669055234059218975184168716032704512232168591591200569491892877466955331942878037612904420912799153348573946394115765574466310442485962454633237306032947736505758237454562454760785720625087095670469031205943804560013557308549561117763125060315011317344613865414381658734103574916787439437914892777544261294348130877992002804993725269450661661203830443283284260190368506558642089048703673415642840066914351538944085035598431723795187602373512339213561513849546448697265606051111738213765374992334592660712197320598533974954372443027733929310172835055030356951041238249864776054616228769459100311962514302405580308911221244591378647236974983674806088496141990917390100189499420220146903734925287513786389193860696102864263670331113603878810151240970701506946425952138583487925124145610687440133187541763421380449850378708091235190169026400869259839424109433526144432499392230642043871512602680366146139509543224835669515550014126759444507465926817222107419571302289349090826296643940605365278339341374564672115491547218105723232351519222379795259527357370410944582421296692204244640639961449847707176602699220232203859565680225191833769789438016414613505333289789116583478782407843544832161270590801064266756333801296385871272787526029351934350571104207982341327558049630681176090645601238449154691871379799924051203278433049183944750828500744214484158155436486289145841659558102804527992961979500732775459939509472770000053638310787162258377306030445937557689177538551965161956402178307572036074781814394837074790113420701689882518480987381732397363272717841011068137595073722330333667804178780431493803743716201515048716232837841062653278882830937105993006272106877476577049260453621364469507221280377849221228653341591004721818230238561545376536981147109120633387657588398434801469336348987604091047970721995495932298982585644528962376214096264088289233288518944981112384477460442723182259959356153395581404486192873144836564475702634244940089128480616910527659703466097990645975038665010789592620407384109498270180261998474387645742080082490421885923099126407602893075705468164469500439334817160423298497836890588854494198195771195611864083876500931116529920785323200509995348405130039440543254815789657803386910139702346463113755756109698714109023311630852611019800722222902737746179284721560866725933681632458362489607362768940253156748087465862243753848347765955748807230979979110208136976952382637095685632431284923058717482950614859064800789471258554511688193556911645677630187119573378327836964915639225020845947735617696555640393646210429733984106159314907884537649064566189842796162109498838672150301224136353152989584866405198270163505394910365576813434421221059023427282274470941996585450501206969297500947417259405549122843410516930059737738931369407802870667165900066784508301822689890165616860487102169605075561375983412841042742296181151892068458777681913377488601906932654721504148883473202462098074956603242820652344040345516151211446429508179763025020484955868749390728686410048053442455570169341401378728389850852056081317045493161293542090669045142213388751283557379693872875265605523611404673219716996159081858762250470576940354773743295872038433601103864391854087403930008819914175456349120023531150649414476990482502423079676302057199987550487549293794415515026152643945186663447883619286295135126368927972228911193950492153768729592975662178620018446546008543710680697378192773009795709865134161975509923131321662512712080128627938813313233519536481230741381333262573072250939029859402047917514559571855882173858663666730463174850783599346768993651490429834062524962656609716741205601874897840734497004997511757976574262030018531317559160866178152420783269264407363657735213734528761732065437838036137641163165889201632484741691337483457263489343167540502760880647384356362660192733700524722882193733294446978951299882744004860972768809164614302603875865384867074640964067864961602597708583937110895845401296272031049908820724526595663065870029268451144488977882908553244037287488268147976280041289991214166969850298390080149920918788664209576411936374912405095679863458711144040260452569111366081750461119933910151268570009021935753611392160391436872951803287522674337312362767317816131744434846951802944339826743512713299895419712684129142361010828412049953979233658567179678404963815006199705703410756670385418506729047550631763281602331350707573969692450961790780525865112961060703650374216231881609839220606434928617613529031151088162617845328326186588886472563197256722722111184257692795402360975405064854465332407731352020302317933604932584123784509677780059338961996542679761820118158787065551540060208688120456246532161403573615482947799016899788343776117801696120944254979755897346198226608589203791787477134104856016483070040247747169089943306943538549453738369372309241656902902587651428233820254612898670655416883594539406784844320922995490516956741534411332471327470685586552925399661920957338083609982432263613037173776286997170541839119347263251181395364964120538490457760600186136865971610321742223652116914041970951807784428893140828113919517047205502988307230605397357938455651514956255480520653830438857072123844697867821701661003824812067813698641254563445169012991590196287030058590181021108129495040577765333895048472365441900624607077266990869979222694020385774775784875458335921342770940445456464813099542235430256767604628796088792439762946316668394136723102944677447928651837637024646517826510548289801282994428386687502276843576575520897218599633561314210498717532948972048493523554351055522811626335110534968931167354225303874040516605513812359530010015673276007165807282754209378163390819796584310183000136464616930237836604349680339332806088085385371058292447595281795782277429593300097291032856565117340154305626377457487795438434327808711595074363309184633559332415146535165889342400009798246680275154355308875193546939083442671985708102254482477160150188204950819887583135966858495487389570684512638042167754034189405463837582818967543351627075402718750974743548398214055145556544359592866900297303480302443906983193341118672427308860992889559938488733912789067198035205351279653797155151267106088127476696457721023183952992232201064843149498661745971342762877919048176741289571456389135188336862724660473438279324891471300711818769652100581602014482390818391351289890323402316180228490028237331578904204045012778893747601521027940984405121112974390020127391189368925959332236783181715484683804387837090313812394505601936950986736437497195935751706687432893739601631199835740113960326998833160351202602138294641006942854788106898094468083251147828291970400903868317318233546823067004979561291329928779398812170501748064455091991262074194092156331433345638542471640409164580796826380798207688858517779925407732593012999024076631360144967345989537093493449370720463484314066894691358840245686283913740246275574360077535412007149971075216510545620333001234358464158934226201595735445806338855465336161062366458173892125012182164565819922302091768704349894322023239298974673685355667151881721664640724854464373771214928549550292299408304657459282613553724360159065114156467592226869739238137363568574780556872605723795102058999689915622822607161068381004087642237237764633391420061899207046620424904424699315097375001821477688467912802694367450405345462515785879610694250328738505578132345980012655554310148698984389110018599734201622237719188063387023221252675682054371967670755474892696774599448095502970370665637252130726677983111057309291978514495132813914300302183755972384605074606041521184475342579383722901928000332897879826955802182760501846074886668893921109399770320492740656189156961891370639532326034584593925575611285762983240077879295004965789899351681608833970386715560060778630594955218481080664451906480658704450983757749330873903558706223694557578504731401128761648157540721318445593731125331266048929166000794839774636628307507886914702225401661557376471451948229081491815885132349082795053244894736239721636693158446297462768219670062246406540758057178946841726032131705160836676518879696912526922061649080394527038295016809102528632882787401344257433113360541143523899472993803475310495730955512155590417923367609150340168790590444422770198597256485231159188252017546379584625392283841532146600950882879404045486657692068568043918851318569435601816457440139564289603078029667561623923246757119838866512110009306422159739524185886834367651606700341141350290551365571697660336648725861468641083525768355323327800324928048943995894751698916554989206227311441465450613541993061061349354986750123376182423143199068512554143217211130230157427714293585327446617913035800361971156617056720312540586053403481024992129313262981580038251944395443630526141491344937855348487457174114577580586009945978934951166786587219055893097860899112716007906524026567872390125993976173708451950205801241261826207115936029380807186540018131706805752326115268837664858629701518296887758282951963002565725086494125164898837589385113160511417991800828412764787713587763097259486945727562305474488970857158895230576542261833774232881855368232813808259448733683458211421422915476070900421626675841495484026160891730188162599986988064782074990303677664527686573016909805144503742676822624668910347197731400863308990824916597105069575038655159087814821265769188053791214393204494239035261933552415464258626305045047917481322457052470812789692668675624311609674702371354019437076690319325650050907043393332070618318123790533605726286787858784678973600210841996870958424854103582222663156640963149836264769663304232721384047655183533643481979647420940492297984087490434928624926935983289085627378639892978602827342117673096590503277331491119491361046881877432429588576854683436713823026068197015199012497230831953623108807029298265103828390299554892241576130365396280114693430901078156660161997935205911915010949094045901975863217878620871697885225332126019187056750516725525660428907672948378732378828517133689759118147042192831073862405048383859261112069785523127652857777984615291513458172772326640846069215948227533423515658225784817154461929736896818201094310679311312727652076643707421252854781635974937591431689681174521058751208970727457912691487539741108063589735512084666767937731519225204292540961708151656434889372968828458569357161514031304523366618855703695972103153817555833857488429671943473865416065036109012345406151646463321422157059562583937748656815262258397210413211834745438559156038066382915623849054404712812536915907185466318608224970307456674353735262803132543806401316277766346689502235824608389026022960021541714021091126270122568852746318928114020597223896637076565681687255559458965919634293037488776308273941839484699440142182203955995693939292896988552759959543476072717050166525600929719034947337529819347015628663820118166870978748756041807714162533615263186520646947600770012756894739506723154362503463743692665843394978210201361360037108995160618348081669782249102534959173220055060098432248772701464888829043313471540772262311779345006432039071257215244107464455644687248098094198013440804331007169293143829344044673900141338384620230865611365492884965567992191920873255191464375682247541704449572071546330258855115011844523153086697131741375103947175294929793130509840462370593476180825503229215598827859648367212861042589407297814056983649460838586801540662683744088868836974434090618567937168180715586337308305206138003315746871862893831564765533799422581857241132284309820477984628517853038427155121600852080525902300804953636159737207704639617435139953431640149240617493988878572491889570983367126923147998745727075727527282312435861562244523155400099056836579273993757797178357609238441873512003912477774921678502931405308462357938490817340039846200781063780970160694990354719483580351079389135819452267503469093314415055376476836344311989713532772426247306343209882112699043932753842293416079565373406665919437106405276284194530812475874291873139366699728813164510582945273853472790803758001675811363254868661821057497445812499179683233532020441234850592549133355993950281247666716589668558758447648238366260735892805231960443448913598534021372981069908597031043186477113902603400963993888399104397470320306546913649232759242262320468021610644728440992952180042525459944723532709113498797793640904590869220066304961016899348104676836473965283806675596395040781364630606093408648558098974301608977638633342873391371147514749513111502400065329998633089722474781712112688310334101226537474760605480637219239509740088131344870379685725205581801903066788993002439133495265890926366931010680950656024830311262797608112289467636395609638880709540255049925660682221138060896790141699986691847596873208913992404269988955351970497537756608979226254539711535744411833436240140212040784857631921937097753024583779432023441088431841089807975445523168613966395012103472696664851495553922544205640995903054335145310486485178540176364160410425836947438359326112888514360635185260397661235486369665386179675775007254341425710640999674272936336397923979068078042010777547320050753582683400525563952528736643905063405609428863097645968893908522311714480074488126851240106069350971591501314776758440038982216299400615682240820969997825859733617771301621065212894242511500136425831392635628702503839805356537815981317319653302760896927563501852576436599944385624316089596334991216821142646747928558786164456641085724895725403471802117010626976933769379662376299994225004791992712364674553303659768776788841888080016810759133971897978750210520525910254392045806872192910144688401491847188858277789640484753275390069734884525740290305679793325306451005713920745391459256818071288007394636165013167683754190664254389514052522290840398958555807378290884216440736260419000656746599700837426275701548984071198150058488895735898490859887226127872042417111354621594353495348587999296287105641676696552177181390528136942559114322887836211638496881059604475202942719901259528346814761437177980938290432908998516696006898779193337911095944783467835893130598690807902008236569348043998599557842911184802696210197049188372093086847667583632852910715984508259050671867538511258842884306714400473037398771873828807682324171342730811099628679363535755316137307606956071090558130997173525828138164089618097600517613688091382845666570902466007568804876427600901211241648087103128892656205039071672998019583552731608875337207750764109234018656544367493034503381757861795457434887141404208762826341885394943775965458982344483875615069814852356668794801276499205264809813896962986346092472138412259396597461663081344782250953784279780009820400928118908225667614512777317217715771744502062118212315780994632962455044477332736659194547944812048838796256279815071134444731593836832839490578359020775650130962445039748348956821866871670468285796384317363280104495365082065646504922471641637001261385090690428465970967777793786296970335352498931844825985759703348777951380403869589162001845963801028439730332702206745108694319195083955857568641164137293401780460581022129971021145712062750347552318009140847720083657072807007300203551339312558632807355078681963206077751798984687516098135810138775607547698417508458509344577560929538537788160783416389714346680430289034499461032135872967099103111040811672610133192503382063242509684326776016387263122340920155482580088406160878070534612058248210943411519929821191900376668542502816957138766052579156183403815547257764875477119527025747173517826577943609411196425350939445404153987027307813457033249995439007071428521233102769026771828041962360530340839780330255332219804946028223876582788525669833912004690730225176067887663414810987296780988222077841227566568865112746736229358840655812035082857726209593806283244305459586248348740936788271420465011795051062794913582375232067313804008963735999231328188791786148864474496474573041336246538799216507239095211895514453199772767255153112873261305318971551514813007113684439286830996823850498752947892394408148018981662054561986649611904411699497473286100838935148484988774930865203614611033545562371631045760466655057392808698797500193542426688086140212643945302438890546044450648456037270788954093587252239126636812796895046811596771862597191262107522172149024681173035953430731489157077587950306830653012825059777138593291386831042912189198216961640010180924409646092506909712855871295024140371969459636116149229018126001603377349908562103032180232219213662044517291976438519345798878366032581148564209835475946504292441892068253974325846313285279175588712732768335712435252145107533855970262527794361450738054567220375081956153334823158368473543563236643448519061808795943327657200546981072973988140944643211490967019317515346941091957230236704028969066516104298774688193249507608960305254508904066531377843697167896142884072161265968707699579124930277499986538313082178805609069623117526168743451144108337042362892830989011643161264933623558025614949235614815994573836506690432099509017481521977769633922436207895654569357157732754902662867855469165451368936097970164841415276490633217386817795633304123685687936348113458644009996639246216175029329437105375777204660383287906603287321685477404032665245075854668845746999261570979403731793060394547742944813204773379684398584724298546046403497764959194598282441528303651296627830759535028704262192809704607341083415923826529889957763704822281755679740020390291854859659157605175699950124234914783747194217006407639199726709312754948898618508928436523122754733466615504018169775493744296464991797506086414526598297912541851282403298800468076514525322494713078043343560358390761544943084123552968476619439488763728040943008344960887960976496785719677205950001895458701620447576992794281190140613025589678134234438405392684342190565199722174500783654141488990769282816353815876049467913188031690200980701144545106509760098872458844935634705231172115453343717351491760060364039664415411403851866736535552352502798873930852818060683879479668527511257627598439634411542140331338955628615731310945720117721074033305037556299192346836929994671700155989241621191271781131827272804585349450736392148273840303671264045155504840854627057941218398789506172043946092063684965127370647147984632520425905604239471795394281493205017628870081293505921281543984040271249796491096693863736484165405329307801766494964642108127397565398740843724322429862278428699768780624132790821780156274221883842219616437260668726220269197781357142537532485536810740483468950650946422585302763323028327185814655781183368484295949843314075790963509511670003887089422722278842320705914727264986677996723676563414123518206714495039797581231568307148966496206406048592900933670981575233562634558212348243632475131467567835790261787742585215349547867112145908720075051837136965679142719941426425447571946257845541134218499432016761893470177483139660797469234268694000495210015801543004933783260928858632219812744043372317744899057950905304255061144455537784629331638096171601828485261520630148971619287451130947082688543035096918303394049183724980811746852700994748836532835992556418187570666733884843149446047124931577376188675126903876133482895766751104006711314385432561664760385584275220315210388384610934615607402232446727941051824154505870411792294435964559147747678005458933724323634171139267888767437915603479480285203060803020389336224502720520216849958157777439934794338733398836566921998123978732146116392198958213168199017005462287483834142401101757100894687222698988601211553856981061538265575667402858802870465444443997371338376157306398933405918517124359121731471824601729932592555986118345158207813630754355682174465888140021615651880717844614098311508286302124297542481234252120047448172022686398276715983218547330623102473924492251232909716678197636502127414909774247835257962866579784802406276189243863593369900943531834241474550641568182116215635122972693445577649197087356683110441670806979282036596466775297910484858602299967710518324392012393340075179286990296083332431949920687688726647246275022478419591820331164602009793194848876677555138200847261437244838248983167987049886580024603689154262855390680712237029073038849546505041147434345204373184847095221313251897071380037519331577379058244423254481424532938780782582331615988545733166650158864657307496464596437978788528780005227116943414431026593093577924167776547858641150548553678064223023209509056899783960194232444534938194149347089443161781077923083933475736731909665911038511257596356472520701513012989437444181087975679487736138549616176295551401401510225207028485578048511292888589731237325287267881449650197583501810288420478675082954253145137249092786390115151602906634680503433520538848189251570753763238331019238200683911561940630861358687446648757505154694751436592692454893273014712777196037140551414711816377385315099067136362901121016858535433933894548922364434910288825125263226759175644457435289177012420070508755415498275898506915375185707993534345491278278764896890267224802872478001682918080461232277399925004652396950302252224159949686458958531234145519698895163294932449933338777604205360658871821562150814646071837366697853061714442506091030775790955321975309318662820154325000137594856860436428658222910469589935443869858660303231404540952511815635226607939227205821464491559189195429545130311881861409366831854235280737080985011649333023264735507262164760418409639195138635649751399153046476154870620006052108395407071123505420245082309073551879854385462120198502165247979179027701408407667724056796184571002475662884392068490198321432622116185189725402004657928494602967129054008572690428798430896889113263705925228418131428058489162667967791004208015577545869464481371631340905865213728469281995802261633680459054996673044115588493716808968372189909341371874635733648611351560012068397267528520504153945274019672115950031806367386721562836015421798668364775197789791888825154720084797361949348860834326048786070549035102901342975463518744913430968370220505597665924683831931766203871485695191282809428455363484626073125426338007713840488741073331674494935140627954098513991253560260168267289223731357655683242463076746502209820540073117756341461692503001629772573707233512805503814869774027730049154257909988046041642545150288339040358516188439024108631919956202810482956910183793523015613110488966484632113762604648371854292749219724509500526839954268858395566737695136670050553753459453461368841932714261369034572700073935044580316328488983992612763643813102651143815753306182632052623090002716293654245782419748672207076347796031159379320404855933080162883370110664582801530073205755191493048217704795278409321471010718854634315226376419075978594126492326874583861621774910334335946613812324774375531072881270801650290602056956002234944243785676709487356362062650620612374699483498358314564611556969107901180575548066746504117921037199255839338244508657660062483521562549649869521354421675138442362126470167302508470051616591148224169512769034457580538677860994027624073396470887301502998611691870475113413722059569907996915064772769357921173262352058986831919717433262727715214648719408280309235257357031980424524322888421903513325279033118595019045100236428814097085540643307163505613024708523257102108553611611111855566256198920109411483460845291380360682830844734307257048061286258991207178304281427566068603041538085699086543568634605096962826510747754402900951955912006742015712873952677204372963730944932188792576096260387374953410005711717877609397089162776923950811396084478307481983291569560041466464414294272406775885147896257032975351899895229088828196175925356458251809061079376058294945825456047660887357406536470324060817732959333737711893262476841351661334472086914582406774531357801905394811857818264027149751471605599834726222222448098933858957835416400317687675083040486884498841001902335847287419839347325988811265027778036027632557064711364215572685748593866842077689283492666170077455704453102588158241830052364684422494649690877248826697667129213597534585974241008944222133432847209131964506699750357207253545319468780880276533252267653955355812396994070973083664196924190638890194778263752671054818688674193428269168026458337981112284301964421168612555063048081800987217697355329214700349809853358010345648238256234074944691089887764429597913715361847535611740886410442498563485410939577928777821968755011473191769299154556860909286550288645719253287832536587005238022979608667583283809844097627919588907534903029306261342322416012489214802510189251734822653927832431429427346544299647692664171399635420324482244057174011898814907986635969698042700054189934606531573545871893621243612799293150400542417423983168970393711634693870968470855571297629440343850738165617484321983267187641702072546418565725923249744592863304074095141965032922279354773103781516263282568358831259303427809331875078978531282574133239990352916468321326479732776015142140832517519633333916844402728264674410269435408009728142923496139652125996558413664662332486866146042054976724946757461634729084070867062649270680639131848951608231251774086234792147316863018513778526833830328634438830156117925869589508549367623625453687981176459618931810785171310826069360029301068747412987721360021279534150448351467875500979490596284907049201566917633268877972551947255869764382837694034789730626106204474225249455207146046773082272012243992390403369133753382889718284338322225782658400365752916756274772713108751751559946611334903292504935599152134767632265921603408474022283180119549451131515938547546749288033253581405095908440753048857320933423731803121886702708240845766717786829194054393251701065126750683948182999739912210874678903309828122580762292512807882554647019878322876673844192752511405482469074158716471112565321840762759326583035267875335664139121152520035262038733922166224383641761630852648129861475925465293338337893393880090713147344122679941770917086919971441655704906408251242256770801697485256632586949705470614460997578234662497385573822359755616705848316603213112165857363926669848848427401429982008165585979526281783215327209667418948368188161263125125949872463031823262598121616267155580965730141195506762102019092024644613708143267296287357893529866274987290934927367394711939974121073929874375556871908256110637935341711025238659565645801014528434764770780564107963295864972859226487263218481821934726962918547089995240957186509549657996489152025132312507904895587861752600020550442773601345205945752375884821253089260491196937016389088836506317972066232548427074937474957393559841737001558017764270034471602937114413353515069678295213842338705980487741711797175048770636344307394435620974696750010294365844313876968140313399539511678157118083206107539726749631673633127747589885313363499144824977270845868121922958908481281622114588040554536298806424382776094361690202169641046058148556114943365624379645859849665061249015925283784621162911194711560464991413613297808574297526672135811073894014575315318733102420178218602476221249798579740774003127117859770613395636638518206334958235813915980827069416284481389058359349619045522361907768395671586214828177152080003233851734106396074437591083323362241955876541839614765377695957912580394940577834695370032085798627885299916390170299726787885376275544078643994052888746159217882804090786926355871235005429657645528728253519534537584099908520821778260700553808420120659573296095793266753941340547285246955041950268735074673312767332134944927276355350986741710517072133559431571840334827510261521040862708150596754428767469998079301915164373830868329524018275426905255934602847971658677356008321860376739796847406668293669085640791249192660196441459756728447509127618247164315969101692570313708769950439246995517723490664678343493836642785679184850717743888780722795340471893223019989437474579654879219749763333818854730116331357024293933838725476728383936430424808303383314396963596248569376131011475054134456614392587453020288804202100717397872319837865825546834055782149424833410428207362141376243591865741927538077397603587967413150161581505695448479103753337509625098924474393103738917436920350543552299762801281437547212335302115008662451648230119473732521087794688301412917584193012152556805259284112548607557184571761369991508927527146473728258629885053761306581969729025596584861281010922708826053648385326818865497830272320012456110292847989434061701339469597194627091032011107737908220939583366232624717110804508530614267564202573569852143950566920838435150625960755477515650421340294091638713556906680936726885027521696963029639427265386784399928054639606164618630692866447909632392587497415009862474890035632123614280660448011742982499819642980338853147625516668824522317830809305376995236776410369808383649734468028302346334496395577965713560841378578297661392299895329302091746185937225866477564619362480404528909901430262110857227226779616115950853383997102755749762761300546222346051047656318618209087405476192602399250965475447777994427007722250206017285927847632286493364432508297692449827571680676119209738761746179170457320546700723000234433286294976538818046312376258236863867009082455037159166880884064282924810938709614717818728367370498755805860982466931136922101883731634607507807276279102696060506283550835632750160944241483027259766860241626673003280367801978135383898307388387044033841433991662655977305581460313478202945892711383739573914476730891116414963577578532811033599059160171572243125719802268570222315642487787520462500769229191483500365015378061904919476562111472634844906738392553257980301592071606767754369787132550504387147030909495825097345899463672811769756966898885770681023174322140115552693687873062387732111844372687389473669753569185174958838235345460981171274551979998990278986996552172664107903036184386556124835102196269173582252794031912628369020264639130231172723902256016434437389110668690163538559167065629698154920160799900627390731337988349380219753177294716156382195982271587063125320847404850418376543705436781710748088703565658383264181502570092223296535704886342594235385633243490076404254933790548815828599934099569192922482253078156550129825967178815587517289880245159381402797831531887406413495054964969119191293560017537685060725877602285528018574978718983913967363590091152917218564631996741929055546561268031398607769260889795667702455972477368236297998734323671293091676415432012992257553229809190219266695225677235022499478406393921307278443764690170006525041505837951330071783775637799742397088125529259370755229379828806403497146979046321366836371603138460952512781648349085166078945120413987623725630924582837942773028698802602285721449217574758728557508169161161662652486320522506432426678736347104560407386660675054371044269878545413327513172147256156303628726693420994481944561791324307225027282216901870412811658102082920220123972139344810633223573981921100159528438315156756126692812895661579836889268953517375256002196237598987348862827234440483660699707866145655385087235253150814126855756754840677869510709532862060658841143669522112858395316821571513315130427963755330624763108709861674391595818816441014382355728714612414064190321460927763808527102469303875926285039590085504149804136101090991223567669063309201193121725585919921966690822418710062614279324734126299597599122055622842669941843546236209273910461494012029362639388788340101719744662169689643328719995143582253206706589022655010448429002835264351329764291839511371692653683430628506400465318850699139489833026952468140970954524942625392411232731699189248667172112346363039048989563654817624371510100101691217047936747118500306797816153734925664598758201498762552018819682016900867708305103618610657916837477141081871003143075389770802127127710267712835207002972452795801384687054068405216848512901133667723502775957086959784781210387439938707185964059886006415248259345338163094394302152784210937608220695831135564199289826018325214969779300910665088272512181623851752080048291771721153054846225927838513377870886186707919491819152420641013156595960900389174271209445294764007992664783363431225403211026565925771860976781318607440096837629467981542922167566607232131023963601655641320673610251706107615244271011439132322999371132771268769187165321691012452822966387706071525458539627518791804199295656382503374743444895232838242616413323649633427709080578742791046210863090092388169524488572458723208261283110698582218040845093088801334674776109047701552715598754770162605093641679142570434049561685618158909148781449137930435044943967099439563026970765675438195014569387018535900266174913480067826001788920217033269546820926598318629799472720067035842707598492429263595347741653306783683029812838577654048217942706411787702207841272014898176984974848914868942485850157883972010739313666980510432377087079848345586005314085378871178539384753930058244260969586316734250034044087384168292868067618187723143494541734570491154418861849947944214397618937835162857836134509973302198359549703439646350970812788671881856580011305800434339496199651846704417756523800363396440445671955159146708449507993833930241631790495155334898750612778416301972478764172314348907840138864096997810551961355157121667182908610146991806327730975377561849205261568783641614775109439679423389455242022830286160612845289083882266283504226526208247537070177017294072480947150114419311415446194948047521149915803313883957332303091080977135335308406183329068589197166582879953416891934094390369982452438007282311903658410723606981484488788457762858455667369138680651248512045680488390803208554364848628302182884329130389994822071607016398635627818964706411309029191808152393352617867812514068142243014165555907834320943158711014681753454207921429484342178489991923726410228823635964660060869972102422240808531808402464124253379359278559269029908416248621109874553857772429739826921032361572304122827908135460730186154548607280248278253607765511298605437110354662376521693896077757899431755438100252023922285340243134246953223713036826670774445813920442075825321910712081209880696203936661025411613267135150641377769667833706776516434961089012172134866455352384843121585263907704770826761690677621320701950414878899858041399831555661775583713971273887554767182808743085321082182829758835605023050626087603557811292275424536030888668911383487941827286637106904316889830253224316674150050972939993456495267181823693059619734536333259093016517189642717789150725505055115449503030679204958722742195258924635235476751033284114754923098121922731905085966573262637363857322649657209949195305685541081385083759363404570395658150619430937204202612419123190305605045361693536798530795248381548253651265683930905208385832717758419579624743507793971652185240460858031939253651358833158093065253851252625699318310637984325120017658164461903794233433583701982034667659712965406294263316044163265021779581746730111570270916254582805369961109746991779979761509483888757422004623303183509414707490743094006107971401780221363212917617868572437906401927959508711239034499165746021420073753776785468189995575556927934496251122792337764975041044904911869990803792235529511759819980285358539056438303603113804115199817285494249259200528913475002963979481328160468554816818613338620364610294108186834199640825158995954401392953075687390025329931099831023703964651343934876596583709849683733176715124167692007935665707262588479447881588592054180732973875541909772912712286354143264214406334661634847772748668615967360218802703104079689163891872675860288575645725620717241561114344894330888288543873230507727689052925561879168662895376785025177322800956149373504735457416244962021566900968510724114743675873305893605601357613422381567561230251074161470542579164314939367751044878139154923184932163333715339323145988757704318545081818163694860205775619771461418374074243181934685639438279901792969189053481699416594807129567238262224719852780320252765154194983510000310589780688159382962692825558718425988234155333320543812586150404834187363598976553243146150786046813679564791218739081137181991971289552574424264385249670775000577407064550262917961195648083285486957099264612813287253101414005146692874774374116970724412956871494489103314972938520233395614274758757611529232739452605057569811948567319379980482029667645532071066571128915127448382031758306343548688692570009435320136708596084191596239415260968281343634335808973775482567623130858401209853054116928347506868657771268700024615316263785379566623527765992162796820331276317876695644635324823507046742547942009104417569136965083056639516147756287794500084882393121933496639459413334305838962085368704425671698025149819790931055074320413328321533357229737640389485674696469007446856925902743362914431749067537538358774104006416366711528313580880377227664784491939102614016890978339966531406390785191837144793840781003286142471246257758797915118367495797635763095658201710392484835992614542010661934982407284375352515123614829596585884149799087663206144826633145363378907586199921834464695211100390155729499009305487990064452523484220258867116346456961133192038885609535801045967775933391418084052950551088892569539326573311111875523648494503539851926204623377779613867680867131665330736300136853863313411966831037376926203206008038508344236146632267439892975636948108549313057715110490040496756691779421600044407460543038307927254577134148014923308308164223599423748780300099897967817294708468014362009093270944374763732310236558914807121689066856522289138355507922355249513016791906504709762250349922930166867014319616547310139998726376174774417969815359262459540498476229736235226210942610749884589763111844672183775833811208343403995285200010909902825522002975191640241362209830897250227070600706487808627218113740124131813195166634260819325581292640023487176606219115633739118100166966981404197130359771620514967834423229129735662584005334094868240202676155105300536377986116321788413722513622247300089668319192378045441116843519535281545377280757391386339946598027052158550130182546933529925699237093029136246829345418695258327625426198404930535191535222600151432957003869039277046178015039428264070009487833739700670124296008854045408370049530170365871163628269396170722265622274577106793774780436544041385920476345825947172582492728775606250155170807417185017619407609735969819455116323611639337485201236334260149650896893702571142314534899272169080234678539979578771001953752230152957715185937355857835036570442830026789751795773526114639190605842320163614767336474126542660186241779674515124988959537305831957768300493466746618269922054342593687433250558265328359834348861346332966256552156887003165371494595810534534814071169906610207287763888220974649303651877385003480473618710416633307228986365613840495379056735822906558667110068976950083237348897614308028402052509609342443086313115967532684602432210531611294969744576326742121060939062354238789738127554611950450162673795335618703939454767387403564579326380900671352364211809756601457324629083374666332074522392331888152078030997633833253260456181734404647973079505330292011776266786173334045798757780231172774704527979671476720963504534337133658861429321876592825153549206925289110357121890135391462979629537150950425720709687712484791653787559406454464362556106081680883117038949618396270139202991794356772879898135070012307553756298699817991919744824492118756151868310972620777059325281062275210948896434694409888635266334145907143112740696827205425274971271909976091610655698962784529052575469036173906822463813214147631660845911137149304597988450287209238085808815299605925748169985378737362360756109230373536477908777293759408284597557362299101578118138120916120297058225487219674623335195272408625811670065603408207762496003429899080733463931206189262757698239061733068885235432266232350135743410905925541463620762512896917940643670292207536924023499365668790982983204448111858263491451999193347418816521910650581503988785099729308361354709084778826146277215924285676871009233112389382412094382484477566425992936755450118923757701668156288765930458082433721496338936566197260405874529546167867869036858455838292155465942804594990760084499869468834675322764515552836764741222811264727601584548061420563965847939552451461144785719282843873265966684796899060225153105137993617090689159098905040817273903024843833022894356299795559502685577769008391447573229606672161197861167815447973290419574552036908750893466725770565821633589483103062331662173881775872120720143661501210744298775930487889057153192883730445542904527839623525302155041502544558525757519950430787317177972996969812674795311988175974774037907320625180492095423493312774043718156160858038644523965041936272958914732592512804787331841218943275151659932309259403366752643249737556782216307422808293029770649914201195795559964200206206841553384802217776889543756942909866824181570199784425676708855013846994560644857897718218865972651791536313448439321388559706814582603449779743732872951020450256820909103880483224110076114186574334210549556883160097949414210659229500599657208657719631759177695197386069464717283911075245471299514917980577691159467043873487173696916695671370765844092286691445488252882140758972064391635638696154115066583513755470291140736293913244670365374099670895095682380463574520551105490620293962973691039578589727514674383158363534105134633259455738224232955012110405916960961425719309313890270197533778795612654372197045493075547209352963409303496971908191020224680479429260559284569843615769878311847650902535908591761882649227107040425824854998736099425303589223824074757567482106173604274339173821568600383295831096403236485888471004834659037610494275952681884570499980982241999063039690136895400097686219837676392599182018600080770949767689134607385908793719410165524341804007576302827718922265120983691277430540553934403958014703683488088750530580814172572350764643087683342161768913249540843259012109845610327166199524110729536343932755530553783519820743007661049823471716800970556157950130157679000590266279942071326405365473866247225482452171024446656704662825338281227962169797787850812924696210894245613968316645069258481764372975616357641207860637223887610414386901258750015493060504057525303788241777629563468171555473310841051039404521836675293411543786360005161968480470925958757976104459630188815373784712704818027909265603671136746305421608221026082161018917662577260944869813375681773045506712083330639138839695714076100865052282986936175381915389564865273153687516329336356074126123680153399673468507658917625300695311004924794488011482117640758032291307289133530779298323350922988035258730834014508500865493240116694714010495599591322856742605160159312848738868836111716814447827539723560083426849518999664757845478476810674738501950526280930697584125359536725622847799199756309373062407918043117756942937648161576146710370933182554914800037980598574557613114918581007406949130297331612983868408855412574112793651350561634827282145826872417623057266321269155235673016146566476383877807428996606572748668929139213749187248940425017299226406019961818770308339244801084795759188702140856346121341941454505665745847354766057223125565561709205068950862494148022071657433219820395067388026498568996251547829414526442917739773154241369596516250494770287639566474838400738527913256841881131691793742186880171318547824933489716689112749400230267494629947767041919011131031225784541024031461634535264406499496856699967968579005626567167346074963225910833623521172728847730245795132613773237237148703797186999949555032302664245538141112221460994887290826643479673467991840332286759927656088747639120481616088609845982473147946172087468059832992405538491093916767254774206147002207060828152229554333608990665745605193319877933323512126975224368144293093054017267356578451166815764976258653223766270019370896538054479375468217450946542952458420613069679801620476894215814568561120110442727744646415418264289018905146802402140497489990822945479204415718210516740146034528357279604028532069390755339787935866239888515188371528558846038314751028439288154312809384885780482739037447194203232684102360994858776635514541179009790167932441667071988392621707275414649406669450007749430617008207248875775552071586463540470019968651262402435955134724667570273462594044655535690103729489722321834198280218878149214085920390452526973525847973519486329986204339278303274068402618726760110992967191676588499982932455462421562465966087027504306355489267440745968608977762594557721592857427360119249276937056131716108152892502207971590157594710003910152638602775763986138190280484929621682601291691851630926731014689997536460541092783747545028906125234096648668469758640622634066875083421832281637831207769360300364461473170848347401226269534808939513920098990345893602058601679385894910992127206938677694212976631972322714188459311165241334860088873608734150288122167709267370937162522177245756781116016215079382661379810840323215690775147871432943939915879752670188684587019154711984458940235460834417746669573734169372573287729633072318529323087196771404053624276421721960017188515163527518534099469802099634572155626650978729052738478511100580896751612244076855470185571863064152693009675284890204443808409728071331749005064307869477827601089818188932319684449711864166811909396237711720621134728136328316636244326886216123883270980654424749778209895829158313337698901875750632265288828382149163683823912539571655480193873199938728144848875820069414286693704569090588220576623840611791203179804532112643286736188955423581100588254780109384596144483928521292297431857733869051779196140978746376785801242940001872891327398770236004632021036988869422500494166443368021544567404960086682811517083025625003182365136025165139299803790155845253413586358133557167520982458742158784575280189788632457258468695966907562973152447763033166904195187983657559669318299787646903633187330876444022558841309599076559452410839357132210610106572587326255931166915497499747308857278109083367904896400664758595035574759170357176060647448193511443253848593095231706778132614339434499248567135123055170857932477174840559876836989965464305011373619051115405168707004134824079859783438827316950047590831538991274110821310754301870596377989628041210569645553990997402771137318479038471967289281940242193516109371416156983391037677761374027930555054370551380207047654616439714899868446641863135959741688131337295145424061321919308447312792302026580538751921485135675235058900070020735493013153031212636187485151489618281231690588368766525001560149946526824190259067184774990260719282864157782217591257107511918902518541708908267862610915033995038631893415333415236192716934737623703065006068600588941242700664298415467431839777642097156956266776401228596349928868390529192795536827239027188684783586786014700627198345785045279869629430183715386813430391972258406590422074660817881985429197951449710084907545521106411571388156286225974031406196680327788856272137442191578852903693905550762138004884555923490018534096199204610478952884679668235030616662026367886563239551269615271739557461725760846960736363959457233979268079350343224309056132490816021025631762112807256290436193600662162860940150974988276960832263494250122684886356936159434475518817806501521544310771084006316432327322115926667422554214310871380892172715926615330067429643933751280456180321529505092776293494621425059104827346656246542527642207318679973108209723812442443267666262965219204994188979979327206506614605983989570013382711905971726573261586637051472454141030211425889184464006320486438428662591426960281438208141580750200439958241086814260577974004117508642691879149843957939639694763812228103951355339039214264847546340381161395844652403438660467966866569762231575341223658306227528276957901064615552326424214055397486984078955638830467068057247328067537254243143054315340919884297466803935979443973623335198768835003431575181482086766646228828033163799184332555317392232301895572683883724961375058206126546949611158002436713994602073038103714230113985983065412052667432928312155646011712207448938509173701483527178943138267529145421646769565385724408088507315275141208317295156547840895205066278093812864157875228778034128877903443438040680982410803772818663284653376600042157552823484218910355774893501492533887856845985118741357081741514540266714755799374244952216877004978152304577283625634274121760003281645407277477912249730967157538147544104791728371632325066423419767052043269247070307692541443563407171785516690952172109851364315224516192866052581552461103984035398969013849271660677981158966536094924529213017230822824183301782401312242938467212778470232661836087660951719237215845874822747238771618752990062052830474582343328341185820480535576800313703745132316921018119941182625171321820773930485509454787739280047960152417615096969887033737918306388350040249112651404618300184842925763050942746156801408012056039921312710567160966805930458660377823400020532587155710434447406262699067971278717265574797437403944221593164155274994249050070747331710767548068943164717836837122429034502978811094463776119932934206774147551526967023592772463558993669633791939413536185727344455056006390312489992750806661268385348435029706327745329638231177988940376207834502976110671839127652639477453502376766397940502981710136618634501513796580854556349250267479607706808334850065329638156845705996415292167882171775377810491598528476337623873444525506442409284124325022924550148037042537348680109316575421798741618794786088164843504733131645214563712791171979252181890136160921621546144291388512608983184133617048071760756372821729613624127519189127675147839520826507327229926653937609787800979527977133574933937625580089123514792794327350743412457852956204403787910825641953380938781072751330403617270909387226186494377468391301722185950687383126857628295355189474121571639830997998882074918305419361442106046175614060635782588636134080982543371337171348526675317747728313513411628562302270091367895149856848981347795826753247238568502692318434755602673381096476614975526701274184294118802057270496231425718099653163987698206102006905877289301041237830811337046971446613984749368755561611159569153097213820488332087218788255712202722480830312415386395342330595806483888356416166762301222121709293306354764071506715280068686117937686043517558531418765820133659674936735803101438857635229864884757384554719406341384672981948596319461280259128619512977687560396031331018075183643226446213421346204963437584781441711841973502641636036300834191108402539105081950348545328776444713879190340288309947703026552631693770981058122242771002119360856613088866127321629064645595251022041357429237741880759607934673296325397827068762897687132602600302547027966625933118239686033586117877779878051183957227576364149745430254156739183081337763097365260107939333300268429873849063229952189349691589873694966827099208048701362090280279239027854685557162477949331761235479493357563285270463752442117657460122128385672443275734793667951170424509082637961688324363681581012330035614360471393403294550697793801467289203720018418371072325970524474470190703288662729517405652323230366148414516741052381251158047318967221909216894021680330534762988542345331499053782296560390246737637753170378814942311143884846496365646242780287785922314165558353218507230719072678396522834096921167807000136463637362778510462493040335609940018331108945133025686795418901385068789512476489658642671812166071106697809315211502781868258838852895842426025144161728905827477047879915964404423402989389002743031856738652149271362433664410286677156921997122732956483304169625440391010697636496853679992574397400218040294137965082611556216281793555471455681775416552867299106927663129315732237823953992501689530699914826999738181545066357572801138759630928530694266420514991762885268217433377627245015907903607103227350951290398633900019024984410848828093398579606808910383621265879966251613551826144236819639148881979472269972501475809696029681190266138354802111539291480799990568153315287247201824498923346556448337086348801130979303310919220761995236874724444295358950156689539604836360427387765451356683731459217915004276086005014722370378145682671672653146175001500340620427279176484417989344020710976290642116890209169865916167686614551069895360347630187458593799723706937227135791242201823710331825863885937930081010954408481345357323454336804957613690721144719619116147421492762594532882138772958524801756851055001137217430361578338604661979606840619057355754236760745821545232464027693256308235705240477776238085738086815980437665265805139244612009098976078849100365955460708187551704294973151449130981586297191680190012047206407746688927464461085062907994698287279592024461486265048757590996766022146829549069579825967657661517913794266769558152048707079584263318294849341154129093294669338375863527702274019188230837403520167870305610576266294406451889786923551719191413204117239567999091871071919887269165193112109658595330785732022217665518068234050686244509649776986201398347870850088111214054090468144879412247015844329146006705703704769408353878203544139428746545462032270576771019033449845817412434480846972123246238089378742075867073287231220975299177174819519601265240249966011181842118729377477242775448770161806464383599447042824339105322848066551416359574725563692747369590922986280623549387727583099997414448910760034813563203282198175178769215103738992144364233298126341319630908572743713420001023495017572082652646609243859810216023751554045979193066370318999099815499050951236731937266637829891932335885187683428553008309056701872991896906261349534437354857817903635531720392048203851888088307872170857581768726562891261991217582370740028244812822331689071841823778900480754008984270890743666115613579624708739257551079549717404495535850927756238420027498415328803018217136172703789758194326936644674183608152547007810650197985044654372848819404153456741020036379826848236881836878600276646913747198690344841220840839493035933744368602240659647758627921130478878979910301265052901374986182167189482086630624070120012045919034314387136889390689162917772403682364562921139291280715579284180736955816398190863477378978596627409234279483519123873408114896346571482628093589505189410604778220072089419452208707227032937714160105420954380526014007244864300991255489200212673081142731659495913687760565034502855612303459134890417663619853428057954109531428881409704002964226111116468800572635497507311154096581307064794857789988086999693824967258235522965473035749369939949444301774557776714060883577339886988065067435805347796120417413758944347976318063543258271871690240630713211934571117774108684959837479588697402707141536701013159540027559815996730730492673756083009523603767827011277391583452465730017757696679715016811621591384493290126015422699770153674185814965652878301496542098412899027529437055179589848168520337511167940963055967370473480030166172905798905400213047434624956690655550741356070507275132316608539112251043834316533527873965000944203267998964530370851473519378348200916412358555896203374495557983867199404754800262349371407227184446593515221560567865162365668036967646962983649835739631911295343576511145525143185367891008139496781694259056837053754108680044168962839849287994827521268393135514824530377652979416869663835052841389829338553539650287992404296953211944784255723053721803363349101070602917136778667218413783101906723840494570002954426019894862986594532174752833784307925449823941784213806705014530109708262363424031117670445066187462965088145182206677332086926920016112055991487067014013414075748973961360386818285995430563901689450793713934473589282910110007331398584467101341818470284903299726264702397359489669358480546995906404644184430709677048363185010146012427026448088059699720129741187361446322120108206666679018749510591656436923527967396560386517279352249892120847554104963430955151597103544764967720479020810040634133366198183370126087025285601346231303020132047369646917773009922305728888259039810762910674187634379483531493531504176008277349354749066840855033246128438187468207186047337027103922740098756186144144857005776186160182841703065238323001652671424255392175368966927259061555811823241715074832365768638328779962345071986595331027114839362302413801303398618263045130623344576190222804803118527525845099470494393404755480729565983679929014248405224709189262828629301887802593449220309228209828914918323393785201472008647848440874681018040163030192242396781650833035477766823646895698919753434746033300534637422461925322605692193080300088691855620031403023322189496733696352440297826445163534483021739226749784877791176829286663406069479379581168988383884085261400494461971395676288491604813190486018210771106198506665797485079470578110330322531392683392573510917077948792967814423201523563010663216644778235560489614219523391200353414395464038131095775161504719419852408105513526481706779299594663855633382487081903557706694046907013542956625061627069466527726453286473760996925991293722642158359904013981848081032692893439397750142958862935806009681025514804918170063264225687715950459028991570622029108616886922473129777584742756040974813971615871438123649917257615768745424320127771713837800747004572775731874001297834999253700977756033071625768472140060244105387330526019503063313282531956377476588949640590328950429382648562942047868760548956211979545477972259904074416766798634667110823938137391390438381094874251642903259673727969465503702465403389671536010778809544225233962469042821717825091300005349701680260632530453886377876468177455326666231925015447742728898755494713440002317987053638235138316050395021542169745347710518817995086922292019917103124916076239452857535845733675913117349128753673493313995006335261095563890120956492227688574477196252368271047066242141195153836187483379963730413588804384654833127879743159454475521843705374704865046172971842589589742332655444133235955960572120721683615642323410233088048354076737996186429438008606048316853720330262736306239470617373507665561248376308109831668957922610224518220346479079355166600301243809942772509123707199069402887963386818286916537659173960779867057153356028705417284142885195409394547582448616092185057446634889668343788754842515793126545201787858870548954097500344390197533183042163057293868122628884199077848471922692167364681838741991063970221058621165587024634017792499280615897816703274893336655478600145461018637655834808481774815585876274055547754628182480983905336649532578425801144104053974812155117699410091514302771272933524940737227576604479455041635565723624127180574044741449141802834584356435163986749346476340958658023643990117477243525169629300346990997353799976189978964307073329113093917297063150152709336087361479530583525433034906427376987453295724379728200662828645250937871563792182153137184958675080040528136090024218276103289157409890100171767199106303823389804716692521125570070421197652984830358470596547968424770284680681112338798058632050169049452403764531968847954224342568513937101735270469843208476008979237665259922941082507879772508543047863974856245965393616512573348378887977370685071559703273800978322983287572423229229708855103758361424156322765289196309542441502155459096739223585660427874087978277037091123553745679818669613229070004079552588320408073868090704935632909707354614774100472444405418313823688278784717123338139344468387689697972170454895504072384701091529635840318996147813255968226606257615062882065775056210475109797781505997355814665276341855792036624639722015940870393244664902929858893343498220088059065279177773889808735655253289336120699430519282790670736345700461923459331704061019740356879833026473608636697484916839272465376206817825874365986997902794838604122196020477089071565462977782091860510315883759173507191938150571417015625844358496101876656390028941099020194294299573671596667898499558301686090520861815389974565883318642609896424056349105252840766101555083394987535957537972403713527148263003983574048354651297473388029515665798272121028184650752044143218021350368057262865912389954208106568897163045782982454956368025657641267869836227545924385993483042927616214008182081610791336443699912920607085394237652145261468382403570570272655637650038301430231707399184997814032631039425885511402316080021259123869806134794591559817141690894672455320931103185416954038547147074805965529516210950086514505725882304651486653212288220580629408786267304248036436066038849723529994985911366265708627856276500922677999731769357096101103542125747499634199810492486889738612106572542766846019592353067498505524569390840435268740689545844398040420009127428673071739352697077945726241751928342084892505273444866956187787595019898261824729011454283914898527364695720583517514717703758685211318010479282651969697350337610694345008674041416105927901509120440222651080784866735933843232796992850543607660451324358775030402654083502151055265945758847729353620496240778336959810586870110730890832709633046682883441682661801744424087719593231933251218237183332272036621213125136327497464303996783320671533831565861019773991925208989200432426578199332268111527151600834651216015873151532954905264005925343572356859165448644217403494678781838251374597252643930806661686032328648279651140835354675229118960471661531823781171220197957974936178094381437829397166956788499582755993177738299819301761395875701596432270156400498079938338531129183736581889908874583726974322952794249060227959967102624375592792766826368179215134816719188797077283389015702996661594069365817737696124305174265216953610000857822180239516271464223670511193902820035856707814858673858644738926850910853286592650917580116075456809760791199672062951939272233023930868298685470481737858038768692842324095262215427675587626889488925486004165867022270984695638248330182276153341338033028622137083235909640295811564398291692185221677490690238500226372055590357654953758253007569985605213237095263899088264110964501852746863284483625863435295410370070717222570788708483719534981231543538038955777103064463244434066297719112090346459758230941172464860300500873891467045667118373632730778974691367897048399692337163527680280630706096520103115518498638608531396752601755435462213263060820702424466010422769703179606270460944534218454581050636817955039358722336577134745784894870567950501197474966030719747465115441583483766087504216796257219367021112147733689425316625088659191444570007858059819808085666544669521788745171910883871368922323025155488494515412869357248782496310390013837284359838904996748848411119075778498077927158040109264676989026720667915068739663262049206477676382401328828009429923048414446472449768197647154731451650649533170547595879716970417187423132681839692877221830729917757418992331783793410883690408947110459773752739827081243083707336410761084115231324027986889621601024455766577854910884958550340015997766198946081941982538615514928039029075258939843159725600496287342645611884604358120538794356792543180188446463085751435878936216321469248359616854626907980111651196093615221340249837965581374121008194302000800144463052072555609945958706858837782981387611192997720919063331882907352384019712518065507933361259606160488140268802581544061659575514752980493263515649747352803500416863793602286315513815184621764684656822297567961484648281587512690086916773885547856476758062269369600312980080078776687515709793047983959160154341176567506592577914063200610837560361075529441581919248903257013069836353704878645943596373252035106703815522827569422491243703737330325289714914982183078617220135959912054577649873534623038302617423482629168560193603629122210907535826914937539773882877577251879990322481418136499269876706814850162327020860324855767240930180745193090692793007408430324273267695263210754763623391829350882375278890839127437835566261584761251947097926821634353826646071925303056784807558275185185581712946829892708892087576065496414839965555541011808300291333822578638133023405609647789211643981857259953419470383639111217699742167957633383056247549718305780536038931854589236526694254818554334982670137055820133815444781503717436901556974533568232878355705046515444221440252528252160910543753928469780257933828714363745768204669090409276452170996343442838392374919880377216490591161805451712042843382007298458394957193407622929846717276369067943904394045512752797495015676982934687572899334018921146032603198838656862594195067558146169881321146382330368427433538363275067912498850494642632181345759003446110209602712083761690312883015478905648855938025540688615675064728653871155874799959973691434955483574286049679175335238300177978239938350981189587883241964139919545523241997871052490743670483091394364847230080385858009647646496449065255050743841967932986630275822785831603063447602050133272949720571379783588144219493352049621414177076631996786860264785509293793546450276743800023301822456186318052378844193946528688271093378004405487268697170182253812895335759756766606521818508307668422326669641776959925371835024765006940195935969284801686651665017169111122758163807024745237635215124590062922906520676634011959390950364687434192078933095248474116930392641788831731293196648813869719699063530560049341757822645299093160526571819877206766385017171950297973646281644204589525295069770331845249062134154708917686848124521260147997434719638807418264057578170632456956155091182883059191482518868224849966473091699639381083966746104920236417757532100061201599643077958595790822745278193913535796440445559005666042541887973572596174467669361991245762584622780907772511480571698917220923359705224153729287666778051339922247674916116506839343278015810127519829352301806588991368065715233481136423989553747167562123196462370731219749746239780878997559432529114866018830962051959447941874251124349197107981191643430009017826481851938444813581607440187127506817675421164024321000149598451422426855972101920597495700955078872879728204874582257063466421468831089514143702125502696155107055502254937863236084685681349953924176946064660727535112321024507150916329101146737570549859680411268446632162182517736675120653763113321157063834649433490425601469922474492517805414439711579246827271545917245160480787260715900185490501978185693560392751461701117714856249629954998070408331547565462022661515448202114754813539716755619196730582834552076417377203420173265323752097710636002633759011503469020445693908769497012219898937125888818933438154444039645588791772396547591826243815282567495624415007340683226086946103632403283922532084441722823097503732250845530378607339959469666944560961848478426970239733920157284108498553374083270842219960872526106230745239558739143241860734987986134784050422882797178041740000700990046405331102155985004389296952752085898316489635329039854533105085415568460044293119154313229494732150033386563786704220988686358239475083137117480360741191081287823644104173530819121260996607417054961654362437076497033009405616336378033841442396922982691501555425216837806134354130765664342657229622691162671872492037281242818749412552271392177485547524512157578044665921837853287336815299904581716833916113540943799938317313182583986611357949738187317694430639077258786147938023362304889340703600046118009686489738117557011226414548547274112345558063317080077881831163308976330883542272070629362493159765608478094086688094727132355733510063644798653770550437083258680465504831373023610677250292712587961074370269589590374582874261787787227222812891058030405535883750690702332744688217652732325542731776585196727508594863172994747308873860207742127105323740750643803040311476760760245471381946020855828852363555465840819322672791356402200323098943579231065589046834224457579797230774661683137722274596808646132829509043561376246893027568402345134734005267279682979958444498268894184309271649437775430928676077297690118786561035134688810666595335183642366636747921863916477576584155938023112064935334999810251503694402292841703429419412844312495876901075235752116168371075668553446004890480417541186350555330377629618020870895891587019988344247407316080265842792746046357452705706047862406741257048883824179929626107887175987812370149851185435695455338941154219564234203182196549369499964830367581567559734889287281286916539585822769172392236049923004364094424551834044705708072178191039602342408718721993905929856660682322798440790360423734827401536308453417830035211971961806369409305249377403183396117075972750352422716398923557791025739676359084001002627505949226431278012324179939432494255349493958572043812765717720105375429715600112728728842757513837690269752036901419276338955181019294294398612132241929312342151614668904542836615178619078416454081560794434900774598970180922001118851065715791657657108690361456502915898384050974085360333466039890334698272144081011620842046866834628275031314119955964235878491822629318085975251874375446968619424344802380813533770946331758515999168686766331952883076354235237653650254893789410129931289485976569028409629375914196055503985032406636322941934852515299349530882942885849109998503581371406437429545610104479163509062961727655095266831577818548814843589156687654006392687111428382748040343361124366181110542100484755383575318792856048808522445290590236238107188636072723793473295107578716801742496787401244922990965547430956759072511571874921277100749543112919362075717737269301382197124312832211165769280678168050818753161873008240760508501343447872671936592411603581106711003817542579030788451864161122478136197559752551346416336846997953521373197550476841089791142699680281918618308961008323954208494036307351914254081960912939391213342154371895833556019094234139148808732484099507688017719875947907212796630200135453276447269287655353935907274879117383628271937881044134268254210346451456848870164868251855327428323779120168964515625242886158005142843330042254032429507869890919057913834528455332908210989262043890783268787421707377804498950727995310702116331730327461182194702548600292380564101677380136996002817435982134648889769956644973331516151792759160691598575920586086363765633327337016209023624149465874491722797438671073095456816364680630311330046986563210877860455005587709221981931653488202523229960420519036210664938669941143443495224738854358691475606929013013807636306614933505413081615673051838652143167677453968659958435894871355160278306979235186614827346248616611177695551725792046374542104629815318892832069429582118429740021922665352354924708301053862674589932011485451456955741122512086282634686801003875078258456951902072996135177125565045166872307996167055476371884592554203733074010184265749347158280989380873642093690728881338861335374006111024555681006062342955816863890756968680717289295113992653565304981843780605335074880838534662500377615111174609504092134276014199429605026027393439794478957095024375154492667107186502982610043676314592025157552029896001775358001723455582115133714263900778912176146900238573078958098615563258705625678952906878788194243215478074440910404290343427760511001426467000390898958104583851029562373393164736943876555927745945540949055685732189656527838977798120125353325036357940269824897749876158051109936746650274585942098339928341380657785503508958463899961595551026865812224225201031096696454048733528641306056338957650123640374785903304567139635232346439413562755463866696292076370460512914095861609451878526376579805137611280490671160621575123393485105285197398266477538439537913186525610204216615242327795898455661629998164844288896397966686171896061927604639917588977971899228923449039126064796354586568431763392995627952569180494175928594664871612587041858002551452633530895041625331451189253267397876533849492526185407450497250094317739052939375050290838792635068420775842432143088282894469569260658737286379302619851876710745677421309139387245008170492989959363338129151375089208445445734285712871828825370521388352392124988442041004271143561674225107984429792731482771219352547379369125452630925086688847564052071432892289837335924143518982890153339519790314652300782893087190199766270568809094907790015344212806853687924015340460723250460531121232093721109935596753989278941803997257585729636748061775011452145898133556782396381743693856553124240897056731086251048298504245730924140193894126918748832683641869980243987221299772071717388368266023944448924287157009920848501207901738914787874761339074396017018416746741615302052659749386726207797087796696682106691064725258204404286839252743102954856453720539799004836703936919280557163871211335794811962673474765953331836983585966116119464725502541245674007166909113496762126508211009577853495843645622730118366011297401021052521170582730146155731366730808657682844966841399753346958775574120278841557766000323200754200455201616237533310288525836962598608883231307681506362183047130257311698760335881498643933716728644478742699223004708368496043867128293904487590987395940586938120770567391630192863319411982883617762438722809590011760895432305188119951344968081021200615410210034555526299016025126244281198712345087588995669093212596487772633472965699135612338410490229336556787086321742781174560045600602380479109579724472477589700216631244879748794496475762819281333830882058763697654227928384432482528192447693397371705840418164630618854426168747013798915688385995958397395652359026220839598014670016765725852756716093892524533063417188138703432217049673330016038825523274627737378032448757883407752190540457809177716569981261922617955586560590150931659073413212352253992333425071731102885084953338233195974138308949067856225742318675306567670638101456493334544505846438860890191566026191767669884332288717259468706156505665149633235320830653008148419598493258269656374765783141756088342091101023618801180650768208345550819257616848046736088173030204317343091507221345355906857513215162781950686616589364634358814618047325963694590922422531563344392912405321452666713330554619901198094263339571412446714969609840343804562865397513062907813827986128543984267675240925410290828722184753204363132493882197462344278228295463353063944689431519167503865404656524580667182266818208862896876145702998873389801317206297849330479454942808083638469990360140671748727844655049844324429897546695925586339155393281323907779818686839214083361700731745606458799441692503967444343833632008027003999480661923377060238313146675374093504005008767033809447187163501797668687505475705110846202841217076026397061024597932980266834621702224720587340711884373266459113450566846183348503220309294512294437610200768443496769132982707938244709150240810016715453984251211763200858962225293347401472755012789669746069000620079417775743737455685850570709524773551320676072025038548851368322165124058857648057163867289307766145346596904420413520614744411471702258229046359175255530347749689929748572373340758557666961868626215038234207896417582110480705169982589273584964055912969044946898695171582753917431038900885948881966072841849835439375175130351778101019706248912025804534112349407248834840470718660211567104276916079070224252953485361381857504021347125116256014689899105055396681527600146713105481398345166641189220659281896953355725606591761727333161598566321783349943149619656140285153711599501493062341253351828127782188128949650797266575354018785324358242098351541669322338041009519090770223452424401480789067968613396874528837219216300586934078693267538391509374417769437741565374660914329547797965522521246142117234584707610705149950879789046904334372476499684767346661608808756684004242105456255789047879218150963600121309776101961637684580779324303548944192693244886660877230936995389971829147977664227394528714971972617528282779090706773889330511154734471318366284504187667079140373859405768917117628008198405430931257356768242500739072048653611178471191146094744219989176513370190745259135442164880948751087054149424672756538904089991660924104928983850661729845798804160656990437023171482309600874731183733970574591396428578353279320981386592268592287298426510683903079474790293290812516394249639104041951949231528363732277753506971574539004205472522636291264301023319445590989404750792610453684447311394764894829431612331590234865785510295295812356069978130634732986391524544185485363956922326288516956679479421189857955157065261984018353482669243751040041581597423291878867500599449889917936425949955016831977952914522301649868044187292172033111969043009825288748608283415031763557490137019579695732904252446038215314431699331262181562078465575658463811035636207164850911738472966660087137423916800420469684332135826127685816659634336733917345617826098801655626798279289249169269275609363373288307577404725119555256231059333455519476127779819512869337972089556384660558095883923751620056695571017543385191080506754709505912699954050143215428268226352774250070067361851768706594817031246296096931074544779277260540867768516127818295543489551306223796491366263266057253948372551521302646779105155759752805971178963300133406180443354189520583813202706674556857874513656351671357878890617763535292796459905639005667640979905178389425603681455347772191869595642945359172636502282521097418063451906145811336429460223697213833660063987614433134372917973900482571868984802862631621331188287705304022322881174432499940917111517881959250353765247229664067199747714360470950652435645587342637560146115600238227746353027551858805602843233642875503267010020296478777283670434451401853247175507320301511253569795658151123802921413936169540375927414119972432083811492183132454782192000798621865105921557410511007331778826723681235201725333612077740331067719982360572908355955184573476027154770847061018383941077768609941942818301076438121739932011739856960862068220000950138306643898927270075332172004327253222172374360922331101112857936702451224278545524344847333620048024630248590190646630013696561635804930665205944914311976179287887687034575512830614295250747655868372762160491742925981860167339928544072438676147897263189656601514471138358854050992500087850452021568611724544974604124986089415079741800376633903698411156201534186079543781174398930383379214865012366519787009932042319590771120604115800672162650869755005273248748634896869721145687649166068114272663273134540684508627434000713448362365761757456204975923276494695142655172642162886036077084216437315056209721430211113017929951601091535205451830508515645837147774357402452400628809965254721741665962200479613188830692405321500393738158977517683137565410887715697726153876732706386256461844138945955063278625995800641101835604391781702630417369127437480276078896182871741748700080506442941618287190732117147530981182658885446083773650219618419750670300377068358153562928337890467290533925177384586578753749039299432790656595972124495563921008629785556024742104289826294928450817856476485764935405048535334620607359851958296752876692064813410436752702051282164575807877139940976088345808537736998746833574036324953644567218497228796720000917957130335153633114490242081758913382082550464936987226731386309832428796541946959645649650846021729317807168672241132126325575150826954287800809601269556930308842474874639206228871757771893387038189405749580969121364212402417278309410238008003034982070618368318792801963367371952270377364344300691639449472280428330632359337462982581679481480689782280100341766602349970491755771746213368926180486214176635030231294983428209979647016378879699267739923457144084643350170230155034970826321654400878869515552917973717816224785187118192382583211729305554880495499497286979198136026701112316345648167649696373261737731524297575818607752781604188634790174260775639308400064324432583944914660576714430526283958027319964745121090624488186621689132816853392714877677601325090087931995761303666614355871437782494583041415167381328073414752695640478451457414006826289194240655819877257405376191568365269217910081692742122051163931260749696660110007109696646660331880872991514638253764389660498078215378119030768244803480474745119842758012591870735314075423575231648014713725369570209114487478136568311804567429819485210593920894224140769364037217914590998552662515668657962647523673142650857025546718579494560305309840093307950434846371271291686031512370626034590439774344148500180851663729900065966522162205393007495521908783660980178996816387043820156956147987776256553516586137074798437044375725562336883573138417763311023863695198768614855282725911228711937129811605686102802625885708943582205468333819035255725794463331849254455251142585461046529624435387759214626464132419773179320632056663394816288915118948129003818408722733149779080147333381367591545525583960147271956564961060167034433945714822045008285249874409312569266886065917309841542847493627751188606211253186818701205759679196147673819570720492091503446814948129036323663678737142112617714048631192919657227665467114665405597130618963096627050753252377680571807835693033818800396289399869602840921781758799867955177704171650332828953840488501043816300669394645266808681657457871962181402962376043474339291507671319572484959222361499935983791522625326326707441136949102293662686984269931415931137347034854362083931502855377508298514489220852906404154805780138767635835170952850293796753440134025534746557741590976752458258362728031223650697885012067009077861940979503852727124661065113312970146313064947421754264774585539282686297875222924988112546198846604561069495934961378542130300127164839877435298460639500588339620775108953621349337430015382233261577091445232285995100299666609177585823923791036074833880466897437624789643839765538451188174939692701094627255864860040408088824783781466292829483917182422012386317693311654806701843793242001107239578730544906219011151470415285557837268618905859818674217643262692146860759516715250840807491380390492339757742102126417547897532224106438511191217485199881657204704763476646628539247810954899864751270999143191659993639374359611016958014379894984407095804116577214633387831261077633986397819853574404569224976677696438101281952114452069809232713298844908718927240711563776501224199951619129083243585091773344784183937880376282285271124079945248518562581167949533266323813349276952918078735860778946975699070509726692915548202794667880791687766806783930696542404078098905531336548436091422283983347745283419842271957819307384980725095090517584467331389874137785218933183345777613528491968594675952993198662377455768560436493662942032498890177910602962217017715086320082403740679772236785747097180240834330253796675133248491675588947074956097907795238838121949264911203549493454608394852560686483556321184244568500015131680033263219593025526788187746307311184706518320155096320170319170101840517356851155825423807590491292790332089995997060160120673088641606638346524430108758602219275981440649181954229848006948561265385698535225413918033019375646700845262299269765616327224128518459385247804386776904584926336873390227659646947840943198519663322936487536304282990163183380500744842291379433937159345447840171589621039575089126217734557525774421164316846031102727961478920030647587334811835931708442170669120711499586214385781447862192864972383254708892481851239881003748940817272567893987687931433333749126786121175875679063629151497450394230990911998042406003872522122943491060814850144487957422377993461067477308799563296898024545235108650877397016267177060843811845662318539244959041183775103350254037295631398155063434892412341225641241359442439503739687286370817712227999534225212279032522351902763074664995703679784707267337606905688390922489311455066623217051660355114908791230274228649786937729822390827115768461520333200776213575929928265136624148292693517730387098027875873843176237626428060743914649621782136875043138767178513258563884146684217940992355935825414226192217491674621398555625999351804680854556994875944426187458112367814727602568234448632295558080838350646005556414032804077401816026590784906142459734824144332058426083549248070885075009244190326288419976005451621834600934741437380062895303634826959103906329791489707186268089849609287760700244939991318923462201595913437650305078389259588091041357851632491239261336058907486385400308274714655474709391683423787660948105361955199735346787451572841389683021911673606174275941825760025217320761860564955203489224578543350153467521403674961109686994115269296960187083807165614763600390461600035588916902918618371747656316264027616128647599806227978651741984578997755868664865928339664489806510677235538967413163016922695304537774695696489939834745005532104899657633247726203855131444867098744313160749224784112401994562719270684858296531124296812294861854010537967041914670082178850730149784224433708212082114529251333492765809415351572132098518097464820949881343884468953504261126107262009724599477604657696606485613013366739619523610834578559671033205571088772420548021213177705072146440857984633800549333246232042603944577383070996270019349378527929614026333418333078223414662481160638342047729981463046771372563473460979510337527248455083090193576227951925060232753184837234185012157745713587057445098866794257544549323582979968739078539411277190842156551266508502063811791735879147943712421349711148320636964324387223922884393797395222039698841589902843405129208202572913188589530900643190395077842956033138527479383691156877369904931989479862656539524414110533324561464175636192271832100373657184680527216308025275051481665372459322914050850933251214833634827550222278976824898336053753571757347535633289785337311234646342816415882858869353406455280691655633636762277187975275730181313593165857054446282382463509426540808746780682892665371458526790635862329907810128790583144397163407535088905610612050661435608419262897804680293026956826546648361176593047191486558849551731830413183690157230703353166945001108895542912065115325896516370806919922619615164289303816351225294813495822356842875375898272439281262317663189019850645235150815061320268620318850116682920527478962169868739067092883791517230225710779645442744631440421322989546796152599224801517089151111004872318204013253450268090825623078596553843587459401410230813773903789804967516800143524641041978319455143098292666889287905293251141098120515613474906831990118366558290605230663073741901592423483929425798963796842830623493973217250527983422120823313678824870602685535734845107234585404878654987809761354704302323977866280795633868880972186827496884654365915924555427304422394001492679900506926108252549124650012256363928931034342470582710868724738496574843372653522624137853413205479646752999493779892036262710159816469730324911722759067810475842182080332543112862680191052398630759950862474242482197579287324555549656628797342435449261684531360615045678387075265375821126121152840845782505171732523361321720817012458459426832534472328036310837688146564990036779045146812692387397750581670890580851719329754238548737914361772731165910583389287120567839359947064748473418362943734891004545735048611258559040631368284778720177538674479506709738780397664477652464986999890299513877970242235046815575380105550016287865242179576581678108441253389322471920243779303723956256078001412782369097067758337435944413501427767957186340252796988097726835890318636251232240500513850372507511883842895524713092646950809087118608619992935500846082309419182693840229437073398432841901842954542573884928491598126470120260701029894367531055317985322405336909760125013535552590823055381519680702394189654710386390776259273648407124675004768214903950392723599336968060910803062612214109548915223273217250079761793883812813142771313702064340412829460461867669922694647665902491040256016325671566376944155947748988529935221559617551252777575098814904482909248544166130481214864492993693894830617409893638485485557702257880314835451558752170594336563191972112682755488799414944951182200436238153828355452483693682085017512575274728958461656460053282243901422106812344745465211884299917361510932075150352411570272941537362519847515287413776489870228361600068763911577784681471442106059601721859777167949725512652443986056244394239013885839798344050127149084756587795894150342830608236704306545100481807379924114428450066494138998194137031105512960097882230026461604449393264214891036259151676564472899414723522200080448102936732075108392704960957057002802733586309971024150085976444783523692867353885652735112576835652528651764791317551051626067229582474036998240460758079868130838544624080190599375695120539583545830001735956641075076821235181653736514379263771709575406340066155676531712778251177876203985944977466823520875809730199272715753631019799974339681053317707992374419600159180229358492354177070945931833322662427102133230788049211020009077556291705881988195974708822174180133611283833648544652962352614910340246347457929054482749151426388547953554990876968826398141031788248791790861659763425392307556416943296843491227498273802221039031325222652209126502078805108807379585324096447914100620065611840623757282001005422236639931933120509134629524100838905305650868979270645906416153936497701368556917182355066357754677094948217798436887921351214985861862739131311237865959202916150173895582152740626543967545519401249909654561519236972730789524453343284871738062784126348019142811620414288656418653437946052910708986163102603624222783533682758399807322255628825149771702968052872679714212036470898835899067334410829732828602649096530508719735341637218797949475613229292637191895166594702355706029082673760183396279520306793066067140616341522011206265960359161497478787934984974729134200198381438707297653382494596215901841193035727597039899174476926850975933957605416353434881471673976582051581159907526586303715128536892365926010425277339100061202935694760470215260710181450183846912990510029858632219611504205292784026695036039953236260364728443158577997799911793430194285371606936052891457146664330753762084631741729681804460520603044917761977535722934136172402403653263521515383255076796010338092526147632941580915756032322391970149596592411698622779990904977592120507257000705898665434716915293601970129123376866261084626888552183122289982148487667839520230598528724434831370389116205901457827044473891339331043718000151547629913678560505968931699609769213371945006469323389994993975150118172439033596581467428226440757182525730299449509011429073289582524628003091188623331548750832213012974874825443703333387188679617903947756743507894857347470055604544120625505728698174688148472985687748392454470587704264445486843268790376758811947223547180095704196901317053731565579279210589942236428810547072279682111013736497731884377171415751223851458323023026218036339896759089508113362075141892883721981794013368988779917954738576601977474857297139559540695207427384087359329566997360380763983969697034372850984221352622000656698177967094668032048620667843227048263280088885980498628969820272573580977770373845108550440268597003828525439249499359805164417744013297360986982209682649333085434571385779519753668471432833136143823747328975601359434580510094038127426308442626411484227235063540744863998417790758328986861161098004558118676932042081194941835741455810891204684691139032065997985826794045612138782549606514993686011855425004008786827549847346778441990919684988730925888462377795496963656596820794864673538827069382420008345262972907553742802760685997573090092784521525966698892520336956308669297096197564588290207110473828802741094557244190582191096635754417968445321041166472825783097940603240262015586104725359032938252342129575465769879598379571099967794746442269698184390053469970145646445205861247533985199937204750110684599352752668796561935689937240982987076295488627728175361801054863305754925442616853386227726996264084292764919996516279702861050080831033054574522271013498651695992073236536615441536241442567858940706987988200479784019467564744578804703138801568406614114556548629234634602726311409839356482184628817676451951945269779574692996286903535965703663262063582144178997214905831616901600269139082551263979862367736853553643844172651665794098251328305531373199644281509584630654468815001407660209662803679675138222727565148250635738752822164790471060136197146621259350027033439204577560559536375031317640337001992443356662574629230353378126913744586217207953065748015621446281268235345936406380176526491088175811936192181100639757962345111246004449356004834905341542834147680411853396432226435693489144812703245287886952941640131249249730713783479229791641713952403819512913946958214767889828587698984555583926920610604748730379024477765640384946822942075738390865268076266194737853936847262690346983300199081033395209144150755794662100922489093226530847302771851940814502246882576075888117462311720013861108175101603287512100124230979288269549145332983981156501781579029972228218184365829702390000452125822861211409985518118472672196264401361896384875149660935231236734436935164230717314176668126582912115221853719905676520658297877232842668413080045368103343622878061406010450606825762285748163190626513659550604283031745517886152972340736821110716742220434084111003451743800919860516599036867134361284164884941628899101618653471224030785143733025583419519205860019822230324506449422344002535162419565020123594967779782561047346807531387481795897965339027571115123460757901915266610827237143936416993954222138743965847413641887873950338962327015204086130978938167940225517065923175027719617087857608466328274564142248740699339292971123850195561453184142024201210072565846619341620325866337709015341658214893036683937174636863094258521483851152209902990387324872810275074196973396443355725631463070756557206236171649708943003130368388332608646006091626264531404223792440019224612966198547335520927414177555156295914253559565671887902785940267236659057960493618417860591829405088098912382052736327211225224307185337679152939803870801011068155366198058199803953752836538187517391921962757920683403910886138316092815290321901427111529045825076054361652343077702024989641368615728713097689253411474302643966778864816096553253546197177684871496029179529950714394946463827935023726691338215651657724482332032243786588973200764757372755793151105913226056657913791720560211612695335135652797845123148932290588706201596752488951976957144931084501903949101838942604642339835252037254659721232392753729687932144958888814658702951087465161125130385797224479325486326774256517461997665898270481021616630389599132787771346251291831879489581806406763575234798479160090981985640201840159670908552376555948905021847292410511078790345272273908146339236504425428960536454849621982448012694059476164300693661102261327226938597193266174828613688156106188101005306758141745593320819578732329248618899773857862881145848614933965223757098863388795720699293506228621113987068146880452244644594863905214833738656275316537968397485523867991355221715498497418194996777225132481166905701505910735085793184047300611113867730608422515905229615368083062129098787476844346941939192363914304114608080677904016726463991092426591385474669738828637737003124430632677466797963804656067710514129486867040320584841586402076741250408418655426499797520798688421212406260148906824757488492624945160751653959091832067879011885671089408738774054040252525469865929384797884010064855053121373335117440432584496157387809865958327791900071960727079560508892201213854903236680568562041180938500065928108939279764623273533174513724604390247760085202065378219739370317803048066941264286037921829956972727184173678363041771191451745481107968293505379148587176593508368696298619296618283933417464304001049944773873715211990832938684765995275509458762512775130800045445749257591020868111191582290365411403926133770469383793615905941802470711861800710643793281673610811536013001831763389436963921933511179936486040882809323968144530109016268408953342991669695218728289201593046207813083925130100910465928216988426680846066920061211231448821873895928479241495577151186647481448661580274067622287056590895097558218805560800307893547042819533447475806111052626637192898921783161275798265638646678824774749249847006625621451350917205785655925830419318358439643036173285410880902017700653633426948142232279901402896338342506583242721744999142678139624552195859887291564125870288213330076434173033431677590357879167149378684930157913748940914895696328841766083946908077222235663572589792698882648947563898585578523041756843539885877338717288992666233223431468543840576037766482603369298138288688366960835438307056906493406839885758436061273990865953835322383639721251368640588210037968124732532526554650107222256007276754135595038105973873744303555373535324484472135717596026594665408623246391292923925619266409076289890186215179418019863915240345464452095881118566515470340320720719361170904531833756315180191978209439907559544659498228839434339310131261086157427164007918655273077290618429292027219649613856023973919503373198760016995992895509459578631240624485689397481002234006406505281815227562253143461969137046467761964077270511555462064691109602924617490651072734806068949598770367378263230380553376764598502942179238155441495997746882069744056667661116242697123726318866784140480323926395758945398779292626259881481656949690758597500959449659675116954351008164990054307718752011543962698364098035551033611583019514517383401558502209203687119736284558316428006346831358039834381984743734822314692644051620573919797601910627771305857984773223817355321165488578645671647632059525736262993149727805875269072735751552841713540091961026571578922333302428547124520375376098447026146472599416559099049974806886383928921379093723105082494192212303726642595057802037041921108589250873851164023893509074447237168265328640622879222731434374218670488772492470950682788170981249936476053907927851719712522470013711689083675003356697130909874606844604318652928389866369668470442245517721779947103680136922103861608859024747061522290499451623617498554047973721874395147165655378043460096438527482093592659288126909942509512101014503308174833021399664223062962319848486405268818867994725782910599507403883272721262578294875118358387945131081687289459104542483521744943005693841583405308659648985583233366424681236565212979139189980052621330509230056041925186662162894461785969395817317470145919498770890529107311199392119207660679582330212991125428849274729236091861606176166987018639393327456278575793672515565917568061610370428236310611888444005041440091926155650499338262203625128992693464676385742805802024792394031864260195553553574337543085997448111937977491208270063499022908350866008243909729938657374757034866913415378127966410850671472057342785851155833895562155481089287618383633747730591476939402990011931161031971449279648108487990494825286258064045495738866692668327743798526835860770518198702844043661239014577121392221220875632646994579491701852670356348454530397375138171567783855456408696696131122823283666608055431780375730661998793793523984321553315110177270490145146280587784982151168228620800109227850626802828878630881548609642916945519169171421166644235379538520756821994970039061898947308845868059360533910010283777990319210298799117775191909572819364543490252527920140413705579858829646457661068401117220816157342352190309652666978858801081785868446585772898934722608440786751965736267712793639501207243190914451578707279913300185584848062630777042613521570381390051875442133274232390067407484249822054977068685918041616655582793148920873021790115341354091963374526635974263004049615972171766887126120015889675389801564027753664910708985797327474874071287220175374052536688515361931153920985406917531772538945398938566228939469823844766421661380627982084279984538957096373476807869882249999519085904453489600663135250881535541751449700910019726536602813603688041786091766704973068870742815732870385588524424621943890938909757491171995962603869612086750379711470137893173021738828132584482045873168225808708380517033554026442585964538228265207118889279357522798889224561189382551708395984002510251053514862711044658014776577960696363364325358509124254054761945042359342539241777732771366622376936956021085955803664879591422596750615627453042862069258759973715307507917630575430519206273755108554414686254674873566716921122235667463941697910284974635326264374783343405343702491301089453160793784833902871246614311794944704937936065962928124413131616858795672714832587576069959642917912681732332080040418763967640689387225879768873152188842268241089855582977309073789449740200400566727469345980282604321479294864211164656946181890604710359853754781451277616874431319943882168462759246248226496654709857297187694599856092487635719307274628142121071725314945648469029593582095855897039071223996265190999433273149646588664170231599483590689516652275442464319941844494070923183656070610507305201451010545455955413316451385335302592891424134714801439781967041074383720453630908944655132081940661908785482203626020478101425389026365034375532660570423610564677566706462417794550202938218336261610976319392876655363106718626625476350856745248237950263008097976684846021654766923371521840101823284165522183440522123092017317253715133237035061155663870638657816383572369970929418480030890082156631277976262113314321500966036952460243504613755631055111863005161127957098780840759335909261777330795457564714095974594682496158108304109024326561797335671767187528042058875245254506620668971952116070999994946783398665263441739623944319472138221923878540456922182990747595057511271847753982044658354849273703574269394274298945593424244002426816626372507203003556188455205758071341026821561931308242464102288437126451412439217384978688336427562103070321927673220864587257963425489259490179065595516026472042808054538017878644539504338822507860289934170514026647475582385857023711096904401236393198130805952116298978739100108098623899126578240750362871756390290853511062885621265767524026868090276061907186808445836474089562256373097694886254166952605167404090664872924822491090039208256729247662907162510779424001186845543835848200255517182688124659941650658662324304685884862135074335493173423561851440005513139272618704407359104903447962339188701038447550403091621435922135164865618095816622222451841944435664255578223413024309700357580013542146792457519463794055666577758600026825315660988633118901417348762508174225178755110848814105419912956820580673504161649922698122193675847303609477814558173321076540292132358325140733590449225536444590568754581585851073678454615369131315876283485299330960230197023247600972364991328132594831858905474882666427623713440129561129224198392712950807321287459532715826346531883784251448948239478768236017102933084517648743828715153116823712149947684248757042773497409239968324632476548631710829448378786668131896459154036641622561677911058539156463885991412916097568596506067214792052011058043698905705377813440886756590323996128868136732877527439116931932874142882540090921328412355672062279370522507756979292106496421260214582093965296138651279278515502921496355495653620300945985935624964586916555122842257934853751738040665878145990270790902499995275478034765377253516486270865968648555045445681510005267182495270751470210099893680159516915334270173013558580024685739219905072507021835503391995582646307837679340210554879727956066608055077568712071818008101613828287993400110556927675115480264433600429867523811302039357265394546553235135672449954719726120333296326599264752463940227616249778073763916348347619189460873675850754967635573840603455605531408735757670827290269142469429694249186694891584829782449339256277693333324807016257949759182846568193896440848226334497123435530049233758703674107147904370170583880803346556632390471848979466939055500204419576954582867513261724315248446360123823047841100144893126241934773139365782998566462890764755837746562971531473210065336566484524214160383437353091706653210142708232185904309950914926398032024335348197337725072888031814124138566103016727999280481116284331318842418636964309724612739705819605631872692620258480640973249883778869285151096443945975708912894340434357907660817675036294677334155053711024250596072146673118444396384425595595019765720949641775658443962889254897451626104624294776135497632759351378725504882274086782776725014734259517784662406208194275540148235353082868754953967916425961680992411547855886820026726723284434932483218997648099312104761970058191519679979173622484613763953587107324493974326051814536631135306634957200419133731141437244397706591285319895992442660317473843829049577608697177386915281070335162613406343875672178373501040387970271384370057271233009358840134441975127618585821826072856213636218300784584745961647236603232273423292102365730476857300576401024087414467789478383648134496947979365509878302928471333179861902371269160097878182021314894442264182884526073578250201657341045578442869709623375098559127807539906059042114869117359205024088326328858317780758174124504299733256534234213031257139358288749354148789733969477319729479401311458207943189167268886564063035487853182899586662562293518015804158321727089287244590603988736274316825016799012580733177109708783375582981343938591898785433157602740655442038992395776993108311495376201432394081660265644934949971112988736572158659067768056005422320241850161024536286079535482828498043863668354723216180161011020599797350473261660053743705749484553466668612403438367170126036316508927214802636766204624137721666985867659285103531023504437889535540474515311375594654265455744388345534938519756138373610199286146239108505003301252734497968042548642139530516354570158701134270670901121118524302996759588322108814121764249712839142798586343123674616437609509020847435414896849111485843059742513196777433255279046849124257392776289627625661289581170447845216433452821923146341564232531749819441623543795343019864927360119283515056241366326907794335351537141519081292525036180924477147788700417768060261343348996258467955129705978245129944730333774404949606628077963268233048805276563480602960857900750854780590505432263974020929024926745361336252494982581932505207009900002849749182347488070620519284240671347862085225352125872763075661183023161551398493889609677819779256477149167386326827943132574949375325461969712693840987750284863244127213346393667075677837769879846338438261732665972087441507885077491136535203410620124201350218058704264134628502874880718850497031799792921823404973182681841072110950263010145981468505234892988922717205291900569646896397745062526001672853023942791880541587628621209321874493840088302526653313195417092719752288353679337661312230376861035480789222786742462963806500341038856384866715268307403983816444169185207243919162413361328547530122870439189132424027580832450943977508443507121187483356720001821304858197910565785777591370747919362163269614812584376854071619547831267406320262422671227384933562993569459542442040339350653095523333137479285105041604479479269413011902895739978101975915953428314895353456691314632193713183059013515911719082217600616351356764970814496214567227464302698338002854154831669027470782209076628280825305281695072997962270607639206886140353756926853005031377640534480134725510812479189918357320564327229349926989592122918722834156107866783544771156161431116712899226934215395920538966171513477988374641132246234627167720915315687892011534998436023138505462418249969542840797675599094285875404454916085303993259859135306990326046569688394677972708460739885657017062588016896891881839106579252189197609068948955844787406470860184374290404114231643194828651074775937663979367802431613491176700336043731936988213239874984280262998463460771616349357963380608749013532685223981241214940202592658233815458861867908728968634878311124240900051673067477026753365028587763040245597787184681826916806566370034669066903513379394920394601751835373137135980143213031538875702047893876115083730855307157430071300124745036700713919486937965874783889058300155925984234087240605925925917688560841472173575382039286172694659942440368367238708307575609702183403109946920634326495787733854888170159395358724222840838077039355222553660606140162351333129145259367331488936195267432785034960160516009075175072126492634096643323801306610572792225205569139057706818679172945437262113826579868785615347972023711749535757237309313997750482651754465590357038352556563386440746912638795465519294410518426296264472334797676151901933153835971692850702260717027315155371221507058627511041652227017154207344128029341277608543951881622766035462430038090047066216623045536358663264589424596296417818916109997137794273080294067264738556648798784138143885371371712811671981461383439305060647148287486462639108415720541586369740916894357164704702021236079302865829040514398702275077392890034328970572585918196353181134181140306270444742457013618265330740992859031178756598680397442579823738389270204643020479647029950018844923688078557250638810036799126043095895382283733927476609391976623194526771559475107346835162704079501681336952870908694394237078585029952554522540775035204010992340336315412543464897884006550317323301440464967550558965360264487431451869466071072771906423864889220140704963412073649385947519456038173304279276000170675419262228013466535931951971243320604274910874747275665533690087008741234418764573223075007517975864982110869605128124406811277860775004210351003283864899237578747212885699322879629446860620915934966627383372915327979086866865611031060675129894150167802144089840146744058918495666561079635306244315030535491630772731065673161467953894677482233254937384532763824212128638802442431465879073718748368522166525921765994459783500448718258198205585792787820552284533278618549102169207319863146602777473115169445566198416133922813055557693293669689290564684940838379330260856981528339137471509319359220751415516833309423420396404850107488177629112719830087258564255964998493258090190899713051161948709080790078998926751682641266974585477018445396401963177594797214186984281392198641803305138559220269348670795334493421879294987733103193577694052512620357681556454789609437891092751196825184807494482971837269835914061138288316751409061340029505150257812627274339002577878628415882872359830094935845759191419909174106230441317064764416109942011199315373783361820486994886354033270231747015215914526581659692151210987506434449593044305389381972405453790200974100570533731959005905485896614669495637164457702558530804351504786631602215648107046268727673793450026924885119358013886589880900248166565492027595526433134527736880128756725418299470264592031908631703600819386054285107592265294850394413475071001404305080880044990484968494676301792116037020199330001211448122693281247521338247087537188801488544812620785359253261185387202720313406805890994001508091193499449454725684706532900327951709513439310871637748933857563124320308353065033861195964316813426431556278814478187567420650018247714420021097954114100957912741020663609743812880196663583452706627939221027594977893856401580519458350681555029014563779895682327038564686512303955877802320382085898473480350728079833522465418363578961956026287966830800468244257784659964559048803056252434692358573037903641874337639227019325348048268768575998025396911129121464754265262427828240328446054376385913619374191611391713040540288113268664361671138263334917586511882926738664508960055901708373729498953503930968552625723302155868659402164217082599138274457555332738715405699113788039715567360698814822477946694647164712154537236710361785295696382841657283054152563098121166282927719917412002152197599737300473140964355905678445907233250213906935780361031579916845295030080831158821570396303949624361419601284446450361224372651634440827170391577253473084208024436748040387642909880939970858928754041063094191990711462887330053554498797993802789184762396344629032947587904494081360371056062800270525384984625559467812825138322583982690705905155074290492766525006505884944247763589970928106189650623878889311644419864624020935376032895139230455369015660463401454921874368946436646355403884596808207357794537869955583074442688326506159138369789479713829015746177745231481998524488145730711670425103560362773644327771852244875738688501180960075491978017708071037399815231493479175261041436995544692139399220674789095932104819145609841074824260438713135112156483987701750011436705411663439945436200428142887960304193806526582546121770348512509153334738159251277757306208660601050265728722413617703578412971022795464095932323761658090719260345065533357882009284897860070968678387418060676943781197171296177672904204288462545394893483523715808892967080020298459347820950426511239641177565775030168330818563980875571277149313646878682860504050942589784892447628011177372093486580010901299137891766777413530477313089005490951415563581102749196610811447537173155368160889395076847632929687865971724445242929429613292680000460135991274605147659438664311504889974890935126623666242773782169058585934813062848542673558689077821051444449447527164129328570467304600370028299322429638368740815347199320979106842814194922405241512392296964850167171749508936761944702476616406704857350379313356822231433286854889871984285766589215506562329240869203963329938369275162992761728305890357493395927191466740408262216991588554747093269675238779674250199900734969346141524481686582938447206681895939333996197747628043159916097869248745883849671386978453458458125326811263357293567345813851401794261172364991011770824109400059400091875924609143662001373075040520498373587796718441528914858196338346848076105732706246290108511103539553570131613843349308795124267243603058169435502829188259743059556108914573034235154496727365015199027601386549146167495121846394354149221048287890620389240135715361273553699182741111935209556120938155016968114959094336090610688329337115238290732258284359745284094734947619191666606002553300570075638535163160392312843657754347884778497992996312506512198210727003413780420891279451909644298715661286316296795173735802608947836152642139575718079930349269936420148074622037414792978365803281160190527831054270762785888767075162720224703081254369843868420345153521958925310462019952894962649612367856622453002958732137581497316622983844500950198924669702587020904130496794074170337791089205171262406360644274257214912888378157964639982614840445871998722236491452795021040285876805242775945808775515694743840170182226300567148425947883583161647732274324481616795057980081646877528569472932674841721258330243876924640248616726703244956955123906056288536161429324371116565495941635008197373125085936944047036476256683016032573538776706444453924892225826333247710026032514202989931308471542025258184175807601900364577032735726883407294794284128304254400154495599503344082231915882922823152410485594563517273038378959855043236627577745612136116549643194968737941406588761758547749269129934778925107952938514607303675270374126357320130146084139975135872661447390743116144856554909355893624590443857381805862655935233241563941672238883838787842395679049114107369038336757653501624767852905111722121575469583854553154740577833405691248014106737764115094166799087804873397217726250540856462988452536007800733552389678426777786687515332912035570367027982569414897349201545929117928527353025995070335398196710218067727421479541404498602468635176318699961766664050396100503070005136244427253922779012531128239854438089749292943649017814568212023495409606492399623571951658722453716822468121913812271908280909193235581141080254884664383988243839662391501970352705931640365373680730943758711564950418838515792901395199519241899195415736857105488237520908474436215894360726497821760215192296195486661284869610511492649237114138035754602862455759050956868928789388817801745673284278873199855364432603529208457237185836473154513077622298036800631754960130684478216620811450903789607393450450416092166295227053713954434067769891013447983684639766315164778261087483367241741817475197036431314435024756793885222946351715601137690486945194785917184615816435636880352831472006871553400625247647515835205792775427915370419770223045920666649573656266371875658239666072843369697707668548850547701146473515756388082676437991804124340557466252893311312396971096520095621641104281716406855769478843350679124799283422918794425194546959056562541471487747854311506245060368802371148458756851355555641399294007885238832206706281884513464961494030106604416658118382180478718649820094688002310412839932178193895291357561105535701075305820332830349561059452828364529347407996175705215426362214687053552370094745197246613828508847587272568404560863430268886174189335358847693960547566625108180179009712978579947651868948241547813233407275415905911948642348165244856109106713498653382882492161787174297495334127368002652120173733537878434299966227053053584654213126661077178648854772772350922769982874098884140277956315834021623804455481894774698333377085214031420920127363094124645178946268742469695528397674786357707602631862892704531315054988483170275262104632916932016876773738821202465969786890175384758444464276535136410847454030806742744495317274353351798457353858310520292784629450399799797904861961056654537411989837829826971629605354907512377203006491654629654704675907238843889796772561854391141896246471765354348111777209984023104353145209049591986764922696843741568126685136718185688539032302132999129439638763599718404483672921265561485586121447735641913999091800662586375432754276386799960494672532377449570057830518457912198829701510151412956415624182435850887908212385294355092312380251202224679456993728898245406726832219037675820723228596001594917721888456649412940673257111341919178357281759783384824561367209799821392792576399264603229859869402066050126665600366430606452138246906133954837687525594870258781730431943458156293837562588174392651281402652315497738990417465203248093954793181093391734135647961615346518674556689373538845865609613535721661724013489836201704390819045883541454810457943829496713685530540500178056422803952683617508466859858672929203536697856399900498956844369174124728781670027411540810779530052771304632913178831190970825148204985058987053706267332771551578848398538958709796735215527403477515791477556689169240010736153784117190425907638466100593787230471023172088273822722697554093577328812921682932850352854263456457198824653408317062068800970765906481681686117952843503594251254926392535716622012987852685503251981913969679663133121397937640949423507655900027996482510537421738550741023442026674985090883337852377199018948771019728648392823992357708428565098808863301727212486136861180585210776265688745498728245751209216614038930117020850004590440553598154016986242258183091423263990088286378327932879339618335169919491098220039797636444987605322790237981078841020269051179628917116459415235744137618418161781596162067216248095601458740173911529728352953842383810950634797276497483452860105965985000930156820968380452866208205530363270745371143647795509451091123031843728021474019270945837216651565902262786675043447657828706299422156918653186758067662967366977356975514029888674547678345842099847377899995783133955550301030391127629749128562705515712020116764898805530877899896542488906416592775923854154016506590885958299194525694116603373978349262646724314001612597798102148605288089584686724038902858887051610062577955300203621713951753022349659995250755212894200698924552666532351091114494154526521871343579869953777539213202969198871270668639449129106979992060353952176648074394318367155321789495132528232218827050140391535425705501754587818912616205448547218994321127607371083243629014863277875621405484307196777042566045552478359592641206571283560262821806928165961801896591671147379542277457514622347290516426964882255577229478413609039647626377281638475781422612490573997369136627268869427020710474038248890752694237138012885655035342891477069549549366832261970206280682473414266104996134190781835948940714703158695622077620155125084374284824733830017611646174346261396228176397218023910179535064268884197425742473485467984451939903282057565252104639543292616505235652206264894632995843764149422046156500805931992465504882222098821739311445031363000443045228199619115747763210289138264845714255049555723395228904341632598077046850694846236217715798138660454892512186087207125943257073622785564216209723836527679878975746984769530714036068910275870385168617347162435652292745037073422064629262370113154445353698256322529658351606723099876022419558008820885844061870646510193040161092729676383550595575250234231399439360888764487154648914466093304165216846355141294647425191816394193621163085707715612885056049667829988116587300733997735126017123161110064035674442145709966139565350763054057831248592368422808062604843384232515701421531139682846071257782823213583906085132380109255758100493416676050419774088722535025396922181054838695895415782846136057614545216308681209601579667603971526355379393307538887659907357509146719396535640286029724374418967058607798481985042584647948176953541216298320710149787645016592241785621326716712620152333631161987480525128527664958520229510107470892977456363181235596712488427435906881467778384188376633114188372550149103595512243000638217537804496563568869803217700818812934927636980161635063450802861935458669438326150432538607282177447035718944998010161425239927924438054521595049416727303537744510822884161249689347175716033697472757339079160273919530410139565652106185453682017101972298687848323731078595351788379917269194671866602136142532430149818550997173819370061135110862616963552393873461046605642481307210053232653682436712082974772144082354593422437886971004265636073626081333593402173984336785327904575907459456251500310906635847149308599174716751354526870380958169097528634209832335803203391417810840972519682836644822884077409109443946242473813161575330188188697463622967921764238160007114032478163726048197048932464369419704748076225607952774431529688131454643877832650863135429830978885785521033855308531147534668539425000876761689082099265657992559189343189616510913636153428721650316459609475701325651275557752942359809769557498235201807911931554743155717795534921320893259832330716208330933429002626888239876284336288062956440077656498439620673735628132006265614134924924487325755180283608295947077834546717266054677359185939684215922739457062934735280158266860134725708186538353534642851477924348305741757364818807228791700761407629626344373204084290513144375590652354941195970955669844763527107071501285497519322187573284403258499343643962802523895452128588022407883793143539714814593443954822510151712781992215237768184894217590932210240204555635227627300338753633889698761523696967293735878239421095919343193920055508770996768300339554131796263432966106747794336098469428834235053965375482918689262100743768136272874377349825143041587110291787561800074914464572130167049709797559309837754109478441832886083878115281911288782958230872639091830832880840692898006896677471993077789384644333150571912061809696833724626578643656591990257084938408332075039943751051583814889026641417240974301771672624732382324680257042465873769161385896259808661689509919357793609493940684142486491870018492737789764797678785917942142623754849401865691129081491950179526564676733347431306082482487359325526517116225424923917190979058408011648042651076698659140441828291188238293010369880206887981322434039146873713700205424206079043755777268527212805730328333433657008608253869925308896114186917996311521100042368150425017882975007418045020412780699987986093461627617880266975021780806005167376601327396823986320835589530360537322022867925620256060273145792898964087940429748593894884152605905729372077104405999476239816632460393081895914375876727814101185024320826685214391474060411034053381233222325294774385796636396676595108003455161980372663945885411049935887867129557995770149560063470090594774361191021563748544011930742985209462264385952404653033666747636659691668402605814516273176921199264491849526955973689401800116820225483652469511398744309299161519456960063487567073034417857275429427593577603326891485345149489967709934567018806924732929282786643049240244048143540376769639875562389368708547248674088418870313520950704344769832318583416493498313451674554560583707242959089344721955755024205924046222262607801896236756388781870259711063269410786760936547892074541254314576110065027939501645791669272338843766881250484317998263114696285448302178637004946421162002547355626354440788508648637764886280128752487955252390000712527873843737100758021451243648389822167331698782914996917242950255146667440861241643304621622711593927953133796696885640757299392492357825287491550445412835088622550559949949192004217759214903996874773395483455457810827145252560474798809523939418325499635294500918323853765597216062064607384857305527378298773231434575024065252377371740625265146873614109686604414485365653274091784732853951839053961666085120908999824532037664907388551864724553529721984148317761700468542101255292522088385363629221853316566261625426078332952604945413060022691269169282435881339035726362854073255699315046808247256778544546739356397081096437198398811416209822670236247380761236695535774396518544933911704715242008841158574466541658235046712922884064700252358504178999881287402475350404468392371607724529128964934680761222289469982513076491261010862457324752069816926165514108581623173946318462277443431537415844742640024797914114388942559563783073441709593415032285243708088207949367481127523348369569789351280366183137312986404002194633799856809923229505691253181157909743606360818828517895988818814986804711252666407910984629335718678899627404784003689975395586488785139295754424643977939527759963640221087482140956915077574829707667108545203982455095421308863079694763349296704731213729069132326915339463698415111765609105964691272325183394439273231113587134425641318749716796050019299731937201341491411969728250052663731843730338122283368720108768858061644583976247239189903850972674709589385312603424214881020348436409350290697695454735533360382167754045146046022912648952675138043806195755572723936410464566607322200351772120302522986463755792792381173050196973471036949898173236395677883263377442415529935267606589135230663907572256096412470694246246000341889540717503749660886278911450786161820926641594168128854914265295023043917130129996920432176516068819144632249267228575278496935094021970514149570182670952865333520976092607063908777407107534382484756977490141157869617617270208607898719604339826160718761858731895913663355444069563930464867485603127046265584451108418037298500379289000024652413251250574958619375400274228485104345529573826162733510960644429958909101811378033026423636941407541707546786388680090473012675056436736871647679312211619508417819267956196701994621462921740106833833158495468614712106523754796790049714744406314789798464631963968951326362472722910428741992522958503575909785673753359807499282101663192045546203422493826092639345886128189789344845261244862651577195724420011746181455416540836908649419239229415840007079513105096008713691308299871251330255751608174448639229809407621783147954685760249923976069634924007325040449376169540397747760564274717401236144275520059950423169325786267283549302510114324187151584393901736438642338545740228311538225514856884016651857045766795255492669116181953271311643395991114778881227225829997237944312153317778797354016417616849597494449437347029985775228406649536501835695310995185513022641542128531054068616596527135033300076439310086334840472593218557146434516577597220477464745957582797692310368462220477470565912672878186055679588267178803403859008131052945314718481682189695757464374270315853660037889012106019397001327098062467059177847082994935088295688665134069327346818349078106825027850428060790178136022480541177272447056793307543902530570915035865551876347607759816544960856055344331632880049054299314841501002101761884435070697995810703485683400920132915180489724983238827335659823314530709639459256732761821842683214692204228256414638120881901911300705683846930254811574862917459976843872497364268240301072895280756532614600579063819917852144206614619703025366673899464472562421739781631859429334587845133406189886689146806391987680225496872930313126283722811722724278577306876956645040658517384586977600721710542822535373645232297323541095856292745762113094164849737893709840102547849439009944546017712074483650721278329082627944483470681233497269329166243939616502721141024999510708120905430673752419797022137720271862392608046579170798475600831496097538344415704916946807655427813185768204493064617644451458157866006560488853704000734403321766945124094385921197790891417198568960854004391395718953879959333739061864796693289097864211680957078602307759007194376241876457349669989324714532868581034449207424214723950416569292548813526991088262985136895285425582821778551552811371391137024555542528302637782678374166481961392230672091692603660250607379960748696456639985981684901630108423517670133741550738563735061443143467671990725611922937310581598433469044408152676713106085410419676406997883816579655300124965600606051115577319773158862193586703375587527791275553720897618229344309621470101690596738502938764975312042219845534479789549512156664456597042064893318424137068570631536739508539051832592274332333868899859878825613537446448400581824093548529601859195841767164910246439929299140985448265358390683569733695978226606574983300188223950434025771704378859623278041713324244307049127441827867958000151651065765884589554133053075985285273915281361807363038659239027032343605241901008586238584014958105515362988823875143049593823955972990261748724620578510332327129549150192777834619588083787013282065590389022578025445436168437831070162057084419938358152050116456981120636726245850509506124336472791669496502904315959740050878437874446007161036553861970003105137305386036428166751796672179947891455268992925062112621846423858542128527493161821146955217306129649329295342000304154918779775068089039719568153301662170385491859789199126527258839594630544275253357571258018386509719573437830649096280233471870611864036671311795982750663373268883138831315335123276173023189451352731722266894310207970743955739702855544023430669382634505457667119793802013173331747007622734753280993451354642916577530182073902850792933477983709469389185682008988980277172638564222564102653004040354021038536707153123496536483034577070937951869766647430456143833372250280524298126759732893919566757025682988367822526025547027502127844969739864336993590977300555014251087111559994590719443169112740560231033327587187290769851409839008942638695954107677810933597164934940894287520973089058389030345175083225190161867968770858362677959297326587360237438816411179316364636024417303736629731812737290754858116912790039637496227560370023422547906542882348541348514088023008413175152338096695284375227200145854948071707048907313130888615763442718645285221505573246772463475229021719064753498653466364434209231649021412643474010653541218750970347597513923778427182427571239789739770542924567934692850116003042506119228516082504786399425359387125795162320545731586285337433673170407056651520530925931552979672583380807735709271984849833477741058794645829254085947741338615205064271505641378724953739300420221048165741163101082078679153490777058639255579979816000896039881767979280375446847229155719636318563221626392413892557730867900729620594180964061279913011366198469730718535151805571827835378058134943365756796632644795430949558874659579698566007000997315573088341485077194038614047881633821146930375274837282528695698738500725718923282924108434579124339062923567325887350401700121945301139459384383959857653798248974375635029044090509179539401468619271147419829208518987380853233075315176464196544040181100725089873808045383581530880789722897198387889010314756181033350342223886177663588705428598643612184946023510832254103159851300903655668348864736509101471538606444682939857553920435069194712997705442078825030599216596017322228456859247370392061454845922967034959625033297055783644055954144546430601872097286111305684660845612900879942686757342042340997432025669184026938517836691141520482422118398657161138596908534234824168687399950865135366426966465716768547797922947200580152650932556971248553589854560582116253678125415448901559550955276172357044423231894318140727669460501594555603220094591278003788907195088000380683982624603134240722606786697119228481876334214784350143272058419653393858649524412872122986761297511924455281412518787859916277288213002911324888754057200978837850992579212797327008421157910652836812040896030517676903618943007778345072471209396293414756951200477034278830239234615083359978003281394683543819216518415467521046991547696780549630831520169611603661930659873543192011491697825653278016229793780810334768504940557582799088077119524784095562607759531410060219725748230804483730935877608196404373372352498824705608565698851766626213497535668566007076854548966382868049454311584692344048337748428127061805272248701333460753627259133400989842225328119344722017891596709833679733789131984519951328507923590110571002727648935746758768635764351320209226786268442300189764696242804171842129066169941981013938598056250829353251972493822125412406772070228625135971786854924538332064949901710783889651260215474471806120680113604281367744800218431291081720370283250514686840411940376286136671115721176967591801544405166096904971484110323603683326228851309025321949590082612928541363666025471034700865217477727249655110217250139373104022145733150580010591021624117930654262738689308415912316196690647930993020949176482701488800061851156337733443178789850591407641683596891831703214662619253118804592858240962153445612028001421810646968034728900324545852696889969122324346451328330588327639105286647047175182534029639934743230614837054531288910767774693081127457830306273656363452681198625012762562959109063133177224685571245161102276746267548222658879145117755331746798641768533803648943161832194217429049652248058965192306900006527875672276175055552132323092371024005810087270943680896936839477992529284061140323638867731265572650191708732606622750431781742878424909641822763229038490396332032719030101895566410743182185559325376393661754260866592670662305733286788168109366540622828780205267896049545630985328023072722726081718530951860274190445035048506293182140512082737417056221307122729149464597764913909155696144938159954504938795858235887562781210659517738201546662306205374237040325277624879179401782123598209914193474451227590369447627810136284826967016041714541351992403323837457909726621043581592052552839299113242146494533727870120877600996785541703994555910910446071159139113355363986723216543025741151421429771575020545502627775686290742489415907720174882622509356887442840169260001021513425782741728193453529622338252863005250281728212162394268877042599972068791824900907192880951210303511734519193760180942629514405419541037587640725729002149094615598529116505678221054458397680495846559792683266285321433399239939419211176775078470226074557786720242589950460329206501153666971458681044085995326892034861310616162111837115333035747439810626291903062880136171375421819261825030736431687454378028883217349184843785780942934672148166416472677936974347391812680720047121721588230437406982131051480196706619532462683426247078474093502139951625092300058547125374597418351387918041528129766815522875079089351216150354559913988749863838734553852305978215457377868706305376460055085411362237215755353983231153046212943843507193297629113690304422684641081538857703384859673144872735659167300657079594471612406676420526698297577064226911925457538913829955395435542693453721692276260861476617548166372975074096270249163827784868523109961589496176040697443868903301457132410234793479035433657276924054696256290294354603089466994357053464753799301456783742057062659459460565131215257114967551809986362448595053713194423772626575877702190132773120651840475455335185844409001941142720520927804601047820952696746867785664914229636910958746261276036368690766220437910943441825317870596458165976482624330079251410716090584250017403549080899952689504385114492001364356303726915690171271266099307146923124511083411379914697949012889120327269849905765283893676655545044992947001050543426988075631744949705511369351258812544906220729972848223677010304200027509524355149652150240858778391454227022450100755265795311361570181941460059365671912967837778251086468795261952650407306940820294382445539374781444809398105933022516475594392203970963096081405672965834046361977195158320260022992394394382624521654749363184501294137590990451075734709681705393195525720592044240500729138890929720017774959725021425221247586359720439884909024397986216148597047355320043607460050121897648567343961405098678736876780044852764199124742990147121950566173965131347877535944581626800829430548022771537057850911016101326893339251028367289143133334949742362100916384302600294876699282621234581640941091889252490077796987151335816199948402076481818317700548776809943369319412814157054450893556273830018688838352036224196782074091685076379516500477720365440936531307753063539457735695811620127456503524838888593775274390359801463193842099231129607100428562661801991002101381115269015950102181971058952514628554371091027668675919452755165813908104757088592863982583862551143012154491058437371619582505342962356103554795645672549158889307492179684108271955617582065679264254971553087454958880671011224199748823356400244290330791217717829733724510271852780030990532423438841205882201213149387469827074218608231470798963725676441607304780654051664947439651293384392080997821933920647459877017337399223519215960219465925546494735561233535566511718560437574659778851400010533692016451703353136728410600414287828258880173371689173678044367917607499061763847976818234784595156161510239288692483183677672861625772938706627432001071925784504058470782925768630349516329568654464560992774410598606435844464522461978803162975345022398507847152240836601265073814592153266136536289735048292788903976836043210077193617019892494233907086002793063693634075003602617660936301762485172136714212598759550883702366616266951463241158490640749829747371160134933468648435582865911718494832081842492620331999585629688439480509512407542067880244343605104729590827223222673835645621389538873827513975187627539005350113526525711848428937521570213598580129197084560073853197039035041166085975021723166900426236404349663158920382416577177175875179942123086622400024884102359906194809238847162910252960162305763364701164647913674938269413105893011467317202553888089368273407191854945669509789817438553136585370301688611546529878368785687366296661753582695387480304760623744189095785739334515802609312413495893464899953720619274496095251068297381026059634293552556454837873969775551749729364180289472088293992647365474210766523398910149906112435599520906339272041212394988845478850658334599061058778073417412686250467758706492395791148495746830845728459281507364005618268528448306055832107341784260419161705168614680842571728999571473756989922172736776924269901433320269891343869793160897876568839326605132926752725796946913220256436851820824433228357280050689058108412315806715402423569617638606569673848669413835755827701786699471570455470591839335125084616337615952860133728185841496561817134800025352854270350032269051586633478420156330444770846523570119503307442450763383125763381011541323967502411679527452766893056575425142461373187158963449619483098377685534657548707283756163625589658516007166853679868412260046439348418719021126284974533513477498859389846235168939886467817909811823492637874838973617331469297820791324968145247993727190112871351451486570626999219911190511871341063766237401824082362852298362976496918817205605952308732771343030432823306299998867870732296452196673738584409391099266532850984548435519270621662420991566430967594411613513397552416121609415350932727037352525775342022535718568450483202013977579649641521900326258836786633033973099312631774850731099325652812500615901321418290545097240225673049361573463951759844473600637074844440363710664994290956697388713137815337697843617798844357991246924708518000637021059654901871314135292346130036243148653440824949578908398154698000956193809220375785754121963920449258098879118347295228776230272418136494484689715792981350746448629974259780126688524328714945542171197167311508779301640406076845265728208843116194401118328733879549029991920651475023452186817907476102163441980213048523282024646904197170185767704751735245772745368243957564841698454770956106214259022397987007606853592518279513251480682401603697903113392638396025753030505521318896370460203053005655015831224890211547331667502676962197349068721599732558656725106196259617115724124960293226818625858610852071806515753393845125335137986162348775667543023789089967157195091021453184641252963937898474934484166536802416426638804864218734653370422453934593454804348460734754261291603304127876141369683876601701411619884700067454134490933857607515490271691060371211904237847865486144022989547202568778723017450323572184628308710009991235660029672069361909781623868628297026602266453013159996420013318579290924549147166752068971483775290380722768078295050621583600345093854318872463081700293387539726342848419301295526146162622533257373748757013718194351794953979603650310555897154677571344853548116994457660208611007026727722715379775305283481663508054437699138014576780526694925651482245944321018198605128046484932943262246866206271896455046739161874920774477088058113355739251172276275377537233188297626467878677241296472654444805926957519606632889394314630599663151231857013131574686064041607593661919773063344547237947881563954768845923947248293367915732779200811105431035786565422313840361713306825098947049999057136188904668168037596905889081419767248024507277582643657053523652354858914724433353635437198806952636901120332891620308570160526493541652131019240333356233391860216591443779341851190921571075217195191767844636819996257759792564106378600852737951455404396415136681533039115500201746993978148388235118244985283606018525814573597304387039655784948478553111557972319631092908580641070419792054453220746109518594446935953676250065161134575513763936714216924318413691550208245784872975916104988444366182637738286153381557692500625328764295068599829312629704008918990918095382753104694206833758212999168676846853429595517229342213877136364615038224207902364611065261254652958160454733490460101662913846845199156939405770210998403742209378868142211395364819229030610006644264463649833949064024426506128659921217141625471544170090995102505692081210684220871029699879215126990938663868660423711514745508878689596540532868844809238483389324145490678550676155676728879991743884935088098999760698164726786649343005923324704020617065230318956015994834634419114635831406280192098100409069954261145912597307685893979383769174684629538337815240144971609289863284304070691689701672422150804990641176760326732878320072142981457677402549208077202318714175672328103861364920908515135893275773205130911968893406770933233357242950038342461270093205602693446453799889259479202167870519885117314217820211249654157545275131527858266804522629950155880170788054545425855060287550885149549783875053796333538278172293875137019165782978807738841214130261585668383954998634818149124569956747711330287238785290866740890458898585603540993618411708107858155925626845363565920406856539966693436432229474696782225053012963656558559017074186669782465975285822054781255639435209401841426116574761910277637410494239323559874018543893713430450233067381814332669838637855919095356673058956355430854788953080388043493313928124147490047597741103992266553340169908608435470502159973501002009243851052178324797964924978504647609042451837535461901910316287316661982982561155185058722806215394329131941013503065376371227539895376316478728683065102806804885290269778775635922068725870015880538292992100543911031003285304243553745443097598163937897633222305354408894263177512584608661127891787911207895993979260894197097053971961142274234910808919537029748141517024226255902283654639515150044947478309030984053177923035582053741663109727972238217783559148428061886048110217746309426177586593068980757747055204556519947185487265861069310274469185096098287637891789851812176827111330172998925250489959906233832105122801829249423857275758131906552784908291274454516562752075861671926657124821916349719822609515756929056044331990435475617616491541964511653891911905931969888341595267306187366663627653197769715481414990204840188423228384384337163752627011045256636548064899149299147747514059706851744415427027959221898730530564698646318540272169824983612507667680336603642395489499754388249365137357995168959809727774339148956711530869336444559235829920422503736006941222767339868783211312065270917678042310897166931252617906218562637283490689306334837603035491489398809341492342320856094373814819160950019609341362029656620949754231131188377805253326375136919408955887080677851005779389372122191378774457475142528696216020707969869990056494662700173681394932561779484889432569865209692316469179395208558506837579267143271574806457959480738406215250076122648204878636613527389004712372008760217074728568764364828722366013157394893553306391984707272591016801677292981232090568470242068885765805596611862509644323601598006076271706885531786677531584074553648715128130500429819058038419248113116172380211154879360306386409986958635270895101301999964349315418045659109619441439997827351861232550548969394191919597632506512469712783270870356509578220202785860415743409706667164590346394239966924618235357842537525965575271693333843176469274520748339928440636478898790942893878210773312324960156209790003818638687511402529674883171181524837361344870994954187250484356438299838620033584013935332181032897035565968329572271127723162717518215512340004451390371282187108726624439558800359493128679672877476603539127518416625886918887727743940938437777177666420572201160400355488829195518986413555530311272552389295373244039334069415964671151285729087874880462769911439721531464008523970743761506068230630557415924204285259919774970379290505321707423272845769155605820177846066555103617675927034942813616428165035593678542592507339471088361168394363990757536517573681115574038321041116192087155414582852773981261271636660055723975158241829199792692576465243877759024969088625159958860440833910554420624991251787263331904124481515253075492389000611289505418623878287786646133895778302201700996660173911441399752678268935597649002307303844844192989714211214895186246152984989013882948612453614067171857312444856242675452804243091708896656299634437077730146444165853432217556808335411830208230138656457580677892112896112984462422559201377433696836815832574032015725920996370897130859515619524141663683542158554670638049633545525892295856269459498156491883451744646005737296344053318811961442816330549303987445906609198656929304646532483972941218113812805932016774224823288308552315771935386303212075605102553300962259414025053166659151032987158691970985473825158856847593780889857654714847616756694861954757582640861059031486858745754409799578563265308827402617058054791377933924124574089792446160681069586793587570949286334688378590895074731404125458429735109377429131455979672444877130680526145334826612756837565210276123037546267878995830112472663197801616929763499816068191972700418934968935734052628649587055520839699437996572191454747877415433024616300799508109335079937999541268175120245296013111244575465692130401317390102364002549472989241439381787857424585833185864103318128701341961301126443442924438807441806615966398090000172585933499805970646957701510093713474071236725690929174076623349498804293357388032278758021573122197199038917139333074580830926354195080970979556935333188481145578342165441987594022309474210506284810112066532288402180215145858846803436144662734787309327553714185235271674973881292781608725364886504439718009243271911699206860078510522677897432662066125766285541494603792694560721097133476538198145276315038363302452244341766511587515004632949994681860960960007489250557668377874823992107904925330980508167135869880883470334299318660116966227226698613108809949240024908289869860710247130142025040126830832569230980722435196693498259600499007385002665078376403403340119302558655148181786717950137859436282039439280061896679736599952152788613581771105481209931590024931477849932530463173763337835778863982719363758458699561609059830918918031128982861870888931443758675863971923574612188940952204688506840941592904485252809364362383200430459011660298907033308828873721711026285224145083657538621063472501341218879388743623453088128475148294020327118905014845399894993691521538265311610341003958765790707692921908951304100385836592548648365093352107742958731577749070141641566609508043298350450723287522170764825530346768716623157503856408519416237384206660439856278934301446523964088663689813039276766694946558586431483326514138050171574419187960949697628734779892801843394749348371157093888437862948765004876318308027384071119230362007597940205312668850268860384225228741330608388708958965663230563625105947169300462859718440200479601954150641328267967365106602980790767584314692246032762337420651480583879841779945919943686274670324685383173497943206449466651274925502265575876550996475253625874893533550027519287992886923319716314958842582964223185178622200974298160715149872321147345026990619141121670805492088086637350335709096764180486033508075794021444170944509152764978292626077795573093163958368243231822845809617366178355106772179697963200372819780731079906308884351167788666660365965903402189715177276542976491628909766760800587410750040611505963324674557350630646834989696500778372767634244167812508236322812974113939356973025610393137114709894979296654234644510908113855618182885111318248068504668430960131587557248905520522166208364925175313272024747870683595512296124391102447227806937264483371728053524207560923472408135397946788697738324368131170876596883943348306394756496422472643001041601770830700343458018508664817703043687122564251049292167053600844960830647581171423784648382716824884356237404383261248894830495429672751459098058584863936623821755945540029913107865101378525576988229856996107931473321658905350923958376020679617242050355656813611416350999871670736955401495752839489517566130168991326994863925162626367556552774565719650992243360212482181802434922234557042599956254183885891600511598882793879729335965499302725244375394740727911356589075004686050082327629093602608106608657396324206087246828460164893631608965933113131780301598961159110943630145201811003255676455917526744803870790685303343124806091024247634443075738092257558310883673176678964554098167570765917510035908060323695289481295097407201123029096663637761408393705882248140122102062934491134713193472045645077753295646620647334803698029115982796586518848750964101293719330109460704332159769180672277559870472150310889972308636766071763045546987149776240605498964904666800602870962732967669042070611855313575938892851007963244329124130469242123942570722884774300083613596539771993138018039913613121577081389154543382500195909555792577431812953581344262179475230083005567383874201619532221775104867367402478911091894704899131686002288730552164810528352979523790794510981074519063258503676264947932968084701869572543800707017947316632415860265294186499934609724177466745253965696537443404503536266814579634480819911197712867591691713089194030168258908492013526172952004453640605736933609965586749854448587567343115895625370466576138986936548182820024206697547206875185947379425642235903684153494107665096161647088579563734715399049315536968035801920298614735304140473535230896535184265213824524042549875708048773994303466011039810147522793025217767733707853079061271658127838030626256350602020323192922840434450726118655280189414812978282790924278307234759611499158265557764968920034382085616443953349106020332033103140914618218975086752271676336961657058193574217103825918490753783347015678691275904696368116154250151586113961862346875780477763933968424017981002414481420193620602077907649233389142522203567319225078580237569846971050557742318710483308721517277185890899769226979585719718981825523171659812388708956930083016034983976552593605580535016226934915621843174861312471001357504498758364103388495961767392286405313615750726508908840072383404736947790932945712028745034062168428913970090521717704674056583324399080112102632508773595359327820525214501637421680574866679095335683058879893588715892281598487045932661950814780997373232076179799233113473684663764303323070545309505188426449700440220159733893902663818049635868246130135813822685750100064405654546710002350079968752169434305587901782304205634118806918738343483183142073647102184376655367296098472643533597688723138988760011291904099024100549572666451113859560002534822279213220031157586828272794672735562370841664270116267260865970130638173817749156870825068278197720442851577668182644994823061875279675490732280082480756091426671869934037745384919145273546038830617227539595961276574513287812044923940166570833539969998751621238583516915926300703471712165384413385889363187205652102183116479369881205130733211697330193532944695371541911106668822066630959101231616260371163543827125978729108831415304830381122227516800466969842051031929646827445303516514482062840917280445639848009010900654037634460569385182168343479485352723409384993619711034120180299372728021231381251650202520229435837399421661997350361225399573508739258921761311093701166675179295798788804181122614957064543541127276026393272565819637480949871048948243941304337238412549744391118648116279652394751073286815696712361700759892789770526340138898486740759535757591511337559860927682940639682698251397666166277240123465900003016426233749611553980531998271170001369848882928118944027454246828597698623758923574298527170466660824645647525450143686294301638114936951591205858526079964382455092721170631434932069837243511078948268141151373711085026532608851283095234435885490662663321624787347318558626228901517272578998284523708660068895727572879530147944934331306511750159551421793159728174517109182927262013979468384208028666951608573828182535619620664069282555980298934051135113878694320786572406461418048516262520953978747418469399188369746152649495574593756647153252300501860101318805170629027948692183386943256487588200487709182559705669566501322241101286854658463826869772845675201470265792132581322455603582485460851220146637719088953562616240059042323952371255893110408732593492046976928156968859981101330839560534918664294617541725021501516096575823790629335628545672641236660530913506581918277032536886257740921817122931376259846076221299431416242204680665867804083467862058233304185321775165967315892062913185945118183045564425285267719729014850967739883035034755910421875641978485932972072991507345860487379719637374416636802420636123101789633913834040530482638370934084622997359926461767593465890497572435509875695860663966044968936413545988258942650036007930505416105392681237346911483898975248677831410185155482882445253532108450534814010708165401676590339566330175913705820339101791311789172763762349788519043882101067809445768666226250944710790318729780699997839129003745892832961570933182920859225997895566700295663305713020192514459882805561747596553208883288274103540423504597249124014722523729089557957864368599977426797866103705355013739798779658988758960872557402417121397866672089747248164311307477519480366841816738850806586064406786479160637259319268561417654212928216368806900347718893867261903886369777957589142721085627888985686672871141015170699398580777320677860930446152615294957560648823278450998851083382079589300523809648914573066276353919661193250543182624322072028151867825284437477814200749991039849877325169546095598252961803630894907055296052869052491414590030454824640302573137969940265036919715237163526162722403772390814991091984355421454714016333284507103868742402459239460042542038841844237211029353120241447540502110004315252955282129195539254250892404223069434040402812131982101352495613701060643726553500420107564140918545034017816367567713947168922882690574325421121809076480720238761007617420561540059405913192799471908402611579199527794703326213520213462966961722282703743548154274444239740223790840972185359181046270833245052161415732425202490131110328392716153487309381939481074530554815276849988103851005916937795778572144863915197797921525226827030673694540722022247081156696615795493525576844708627318787473145137957000921958120332166587783012792404380936160431893843613225715352703014039590527260215260976151708670985044069876898564427451679191234788789615374230498697551752783709915129679159797089334257117228964601246640901778987757207835698661889196087247532988371771832161468755561581732643752501023549927374407834874385606899963881032519311901631309602094975280979130625065764025022517453836622260123935237055040753898835956845554412887579614611509318043892988342357797651612157827247714060576520430802541550838824813077542731394994842758934793826878382188773793314813500064299888439287831980351144694210348935616673874379226412563734439634599237457563055757022651943634502744509550544865027225483233585328292024722711880466046808632258910472971160976394998423577810563472630850189230301839222525949687941041367573133169396392480787878588468782738282832903298437549985942416444653430961517404407112591969521959123467827238759315813209217799856164826225027908753308901511338379760807778634764436384192002842208431512820786254588606403047643818890120122670980571107716380986800742322072139133895057944930282169336667966942024424261512912210875878901466650387298984404337408517538270003754754683304009744304517747199526767639735034257619137026186410922990858225956575800662082464635200343932467613180679917259559797267705360422277238798379194072090112483054938863355683196408207691210603858596831107443399841003239142993395009691429129820116798887145297367098219590474403598238427477331782017449379180520061579788231425391933051169539200133336330460897944825532459973584837708474027150490176029129836396893990939053191934384044634978227887546006271884361107965268279174056613941104582076336780615620654333505200915865676140703001179450696385081408992922234406111779228643949376705122130352922741852562292883991437998192847254793300787179067467174452521276334619767834031229467648839124925412900372654961590956746904764683328756173687841108202513690451119229879748241460071203176918546098382500294701180251286139672189636659494425056791496523043655138277530334085081277936331467289383143561997857550428827802550082635857179784240169807455909145253804228695055634521809228253490164437982034269866688506857556476273273350562214137642086763900252012980296354509145473436459534636361821795946118849720374700030184552811458016288002797681224235473132597008920237336693769253490784249613443148098509052406969919182268793061939594768961197283452804197755010660757051760406029171876723427047283804723676168116664676057869411743218258054397994504849235124993215277470964767682125437123209739161695038481938202766715075452770829575685894124800912309858639803872476673365335069513234706321413022446916955058007376429294641544816522531329862846654521538391726406119164437184666960197682961585881385825843024144695112841357745536765948296352645041160762760075507810432568163173082521131192024850510099799694040081711672012156243787611064954845535803359133465586174645563229208443955647376467984932735925891701888783572670653733389789147428894370388299379503582722359715580200686767702032738528702784118361679687627736573160794515782530722627561418344465843223813214247330375166726873808791739052413090577797359770983037536440500508293863529082389463064774348094737050671455245071699500710375216744775268435341250843879782492363162019436508592259339409881122144149120459164255567016981870860756559691289930246385633826067076024084503356968033474636071362493034224844093233117606427462737429845292698737823109503995961222096134143906925148556940411618345926622876233723420766383864696177941614883351540962074137625825110458687885167284740114857850198170830755546337196817827716584293793579196470243217577518003379843134900943566644134380007831691176042180542926838858749907813885144995758930742431726927455894178988974055244100163737922099576114531343869686648726362075716651904065203058343324986873776031673779602192458008033834697981522242182426457850825768421937428268546596628849240881327409558839833024179703385972438648118088809335303593562819113074483342930861611476863161953925405743491013099629106479335275855959354808553550280632940332339748438429365931016585718538937104277240565943959298912324750790805016321731305775664650118765830240394534459494864338881654870321638820940785217424346796461395723506916983717889936038929419293062640807759908862860002746923330098743592137930991838240592149294772130687468666357340097531410288432693521308983425240939022207063466790321716113781468491435980013014190680755679974682307606852265118864722704618862607911819862030216298343424394929054436946912967189975336250899408394894857030966090755499209007037945625094984519687569600581367246609373817191018742401046393593565659901812378171256070428010951408970106588727413856664072299796182766818806654864758921302210279810284843643279433943958364912680345641436148020680904691384601482417361945883114350233689262924090444897162322027135096478923319407676068105622918130281098731767185859474745361073498611622307574438982819400035255145013342881316620522828228450184415596370481743824555548614896424196696310248329125265833594228140562248283611821183329058771999785219971087305774828392714990628417953837570008005764770560005932958697443963498016056081373699322434966484311366130898477348719761438236274866427542294753404027116268630236806202813815014237165602966991013151024816000296386962338025223054587635187790443027703731994736750172945935870718009572505664601171373697771619353068990582850854880534065000203537173649795351043636968628543762177807969860293080485623655345354502077929952588798052105358230702877821060400252801405097586684680746549247238762784078102730793863233534708230579100725863502873748216972512302396362666284909095942053710873451481256377654265566220818225715127397749859596080829121011011906146739446469919183278809482490287296162549650222534365049031974668320997289175768023408870310254395955549771240576953821368407492815125742500890914815854390481739663539346823789121145538985026903186327413132493643162811305904258506615279261680239918408882883152965968366083259187665437737029650586859121310961802112476517431985852934023008851377810426776253598467687783048632673850731999902731528955530880452561924659995638257924174255418207030190801206066777534512203730019020003435994961460265846126524929537727569747438319438339763368040787300408684944340076920457592473710132182291080439803008742168787684555131779696622853991697613898194419003448365284711770663243086995620815077453972418028223492678867774727549069401175622882004094728034502093778097712478232944023939690368778236475813544454182141451343468623522088862872960647659339884654758270673294470005965562784330300123734754771359472697925922352039031954513930163138105153400127657103553121002128354910241618771186524974594851362613512834092799911175097105189968286290480768579673015711906024380906739048271684064653907878676919645155639609773176238152481171488232724609371269941809849994443405466772719590798743860596092396556930232294406297748660872054917691506456607307479892680126966423419053716688725936482312166840917486609429425186370602126881326702707697792907602739121655822221123181686437236702222790528299997285728546078891974363367216353066291733906081831339629331520630741848508428836223262369756398628182466578065921536194737177777161251651257842430387075452797546181118017383560003739746508891547622659647830219346217604712754677961615838073364152612603605655366654037278096308974287283330474234573624970020699389639681002690880085074064921215672936502276604178645256650199477329916365625740746175966735080601534220878205040148755053994269480213473700787644844074919926813073894418227695343616849943597442182381627863510515031802224951611116614717596528436870762355275100503937671961002291448396178157547414628657405784096034106631394554597262042337567002108078348756635772949988890807163912900278694461417981714852855239434437874694847633330718403740235564770603586233366541305236483148267680605359939245580722298481857255048649779906647748441390137530453809144327982404577834552388605018470772994172240002841703594069488338461406679596230859491482802183175231509882056768077051062844079170276533574326652485149120466646001281339347531452605064029462605656275033395437001570708768002866479757287045165034436415069330905801118431706050465156938353905629649026812978895700586171280839103045787086860089285277780936184453897476862591455316853168553386795636347442630775551314200306280852155035034525751771399660400176184266314267436622133786080217194661884674271384649276213266347492606989664814457988878259366800456479139858235225125911947201265198988804950442421554321474580016262046632750257257370173949588885806974060481818824176852160467673801789994781166460177575394630427487134180676366211307217664634600417254668246535226512570384524272969914777981324351252790674437426504824747736236431799617990602898822538077084778780850948281666575557496272596234417855918759905114367389520181085447983455334693443773757141252896247174226539618958549917523993439620751685655710531022621772232752702778097834819433498150429324686618294328694836501395603584040035944087535028861004223909110295288862858673448416876085665311907426059967378993245613753629340336056814704718844535032346763831074140737297877779995948575731253281407822665249092426907388663217648009594086325031779353254741564628531321163933898487245327880184946524725301058179962909458244290072365246909137374788933228348738355369563621070549919988699009124414740839225258760605106071357795454474400463719871030194690965939913596335547618445925187148217291238388333423862215906034251895680226846980262954198912179056716742250996517762068800125580637981515902406640077985661123214302307291176125242474801132840430979121593385542496528395094369908026809630437368257026537784741067339916384627228154587014856873071835718132119067582911470642589672232742304632912369973004857069551126147045085661510397939412623376669466191165867916403011412602742953515288121016726309667108565488571744669590764643119350003404955789985415186511074501402868744244388827061880895260653028508845271606132004286380815134915973108567964402775318904057408362257989123352956185679228145826119883633456404167376858338717827725446552515221085550878071600518510435505806154177785522540993183807253453922486570774789855591831746101582323798046229881954181891039639798867860186989947163897465647801307935495427947556085337617935343224889020181121785784404334948805027022917921900130398005109380762131581395068584077597999827535093100591592898740517549464624555348854741082685307823914929879707934066625011915298329778470858346129604977479945911988863064573360204705320728499479000991181536039178181001815931512514191410372236097586674805912768922544462378478547882976184690289710765498509629041555798218532348203916368821909732496087526712528024210151040028904449684023272104833130956257258972620060480235943074009775068163731285633997506765758611118547464199822458000386295269082189916243501103657973340400513183963688038325879581523029593899455548392930637796570443601160378465840070910817475629861122947036724475282285231008930224045082993655513202431656345514518806864311162106538028105600714522500085485828414976775488510379264035111364228700693885384499013474986187252530683946079195259509700490008533906041852993524067455753335610674011085746062017702190385575925242280182621662993725606036369752876654442003773518462920901508769114702210179098087916734181317189458645538268908805376770768653404461757256333736673228024214406524809212960860834411202518991695503881759183130222957068576775543467306729328561049902202102884367705763158196310475472299220857543812146367480104160125647149231321143514213829339828598553613014690831488369680935792384228694988158275770266245379423304089059717031631776075453420946335496734511832482305163039208233412527388090619560652793640852821741738084072604461024402366480516719216866651262989330390348881727952010985293924132080912112537172964434028477376075669545639500926112469861598128388047405420507908087793330466799815595516768767943823073175467947728581557165864912533539452326069726618001070228180461162603958205956828745921018304926199561796518511444199587996541611800599553120189774659338735026484940973853057599786931911402667979789515734740837563262847903331543815880978370923926977379464622326362976543101056496406954666710372082869601370604520265579309459982163919337116750692907575118581371806901042701348104958078926385830609927117500738811914034174160186136363016583989247863635292950548931256595391294036364814466968955940247718151862641739799056710492382443367817780687389089818642973956615141726496309663148782331447027442693502799685331289276163059885682556176522872667018731856157079366450193639496289048351605532831179347474245341838669154430421081433918159594999012280006282259183342982002086984763038969708732124391427764956619038316704892133762106677975938886298610829522356041941581133820459602927265186365802578931799396772147948058244359657376075529118609246369274122884675422907713575896356337561476994671570520157374944269976652988093052871624460498476077926972298406028466596497552696543008018841449131199920391388331533393854306170357381374578256816711292651628537668137034810222981690886569948378547759670710843727313249020959620038620248273374302213731221853853437025659924402065137958089256362526362226188694468496048852659826681839021515756293095580704290694213306331740836159092282994570312505718529958024782898094947812502874363336465384121598205520745016964886522331845329694143704554911801964710079542854954418126448962112826279359467416009587840974690682064834427149469181293973112785418535584799408422585566380175550909374012178661915334346448844122686584871359787236459174568040836705141023163716325776210527046286705277361762871805818701667177367597059361676319964197023774378413540139379780484712330616076948337197551171746096191256202503205228162523511191001383212235080026935369926833548180587568227740319511552940055703721167252426462507253462794044084204364061286947069994306458306312528790245572857879100942867443967042588619014394935561748205418654682401981940101675845412756008429861496858224122810525012745617756224598446703954648947920289661996410272575841825336442824194645626830506459669343570406662577950165546273477002540268987946887299223677028599370766491360471767944657359174741706838875326188343765984670184539089588828918490605619490897241400216293550236829739531570510556236162263068200518267747214265122122796006796072206647779140633005458414064838736908426216065550013186294619775437991428715561812246135300028480253903986630528730024462072959507932455759185102066852817154785000168350240665438385006351383055824129505231480583814577607368316763251313112787361357056441295447817192628480160307874397810604781126473345352146815579776380050803170527764188599239971103938329591643097838004420422265285032431500312027414561783437367589381817635355979311954080733441133400305694958556934035734969768125554202386382244386495518490315133761734046891489331031164851785394706937635825943828186059405334793829844741322670911879071326191037449931355936265053291468551578688607286701929459172527771723271119812306309052629681106068981511416830315562251994376292562781707914042133707125859852617646231651722120685889789464525478936163638214616611761212517308142059305525979716540175425250911571703133879589672671325791566357289203710744685971456678430015831739772602916516456044112493290078792996925892752522209947947597983694202500889966022322929764431627731815685886730763647915408853970599959300433923098506766753803148955393367412558335847898884477411334589206583064604350083136414872187469168622278786562820205384631850721083295904774640520100813638179527465685442570388665206985778797597113458430862044745975195955533161548467923938554140331457048689771158686676968960046767093794621664287983473628930863482090059967944517561574180023547896207381841916671992200223579077815555969480909531003488059583547509866587577135516663846328793412089420173454105498622197007786298380078418374277581435123339833235114249263295060330960094614609336347492618129131365034702618137462031877218289594108607961251464203818427156756111871578814104404545631022998750255245317073374396041032804376495877275445118399466032597793260852603177656119689258784424596958497197534831003258873584544569690532393523021458041159241172777000945496067318764950996813722390871829373787233318734524455099407341091522714949317361350828816996166820679333770191463201699485104098246030391552482985035181608009389063207117619184116306337397943188119801722479316756688381322596626501895713332725849548566378978080067656851813183130968404254302465676530766618589054847211393511734999952627680751547796596817161312535868469557987277923725664436310037520459937691065859399671441212438653385240268457511760627192837453617091971778523931581741358899638560408814640045951332842664866917419767468972072194173480337434761903288244092009105629854792726718665360624625748288466126863996085454686445479918403121788814401787303673270759386889082455714269247594855278125272091295682842747584458103040525221683322224120303341159305920594417499899711535030746086059531138202961475117774408783718943116514904862618826740551748801601973218946869016347429569804254965450652874588074070671859264302711974544747254435716462454158924654191796939997026023252249840494272887415652015256112185726326089053036299595688877532033336235708847060591409604435446374088315237126789916054090231849929674885533213678310802243736741389142558630848535212596043170225304920134142594242109806119568520030753228427722593599816178972812984450469492361627613127566083847643873613636777985005483444633109055749855296616782923388034468211126175525135184467107110483438425328449656262704495663190628378591661804482360575128623150651017156916763943312127484790769348888965208434808630352742299834754823679885671888231161345502525486018222500116147789950706605860070494312099588079438500479194467166856960538026754441359814469386875819840428131520960669879259945781047185089961971199180980971528395813023874572289571580304542222881754818537146974144565394373566212724236764981192998763598682815296802405025540621913948622455750856325214779293777393653702450169975779226881329724322373108037163079318585187562867090185439558567405604414968638003377625379739698511552543583980817457507797719092430124634026089844066818988748815175930583068272275213105555891408055866576372030188836217978428732411524249550845011094268528065125463618916951807559373567755093690083746025809574650901423898667915891672672376340153332375879837284504462527900796120144886953508955607388030698671509571647494700974856175737333352635112538368497288439806910674986350346100567925110693742882289114680113418812707529121302953901094241635651364375968053817434833186965440559795143083426562517407556627126965008607680778161302682869328503405662316279585271614429366848555780806805451958237003169347548844401493920725724135144753584396143218544849558468649837199709002562960355527375696540085904104148071143229995657672421349763675875963213783889086303303209143970491671609604717734314098276012071141216995718778470600297531947258780114957791220659400125151983781879730986094632947392077691064689692570999025856583608547164075500648753236833743723876652338337736707416727610466615653145408732998839648435622976200624593996172469600197289287032782647814960826593578213117324797231889731414600654803096004854143438376345644518718349271508603712980559937524607611421249841691312862527375536142606533019476020657819969919158048709304275877151956694114916355479546133075981526825528590876275709024461786131477877714679599878920865586379658534432126065386025220956657427895473323503516869871983136441878194883159120387122876991963916822388660774533232914134272720411668713681569634678179405462798836507487959642648094928687479133384506659696307912688532842557966709526603423405048615700543399306989421350029048378788561690254454836197624027588086702155273592693099842809253620039732743196361559198991742125641032712825918500922263319961498316176629254268305334354906252593719257329010207262688127522105598951264825268092208725723471677178331485251493411955614665318891702897884387770161003183845001120828885562846699124079229166707907479722093036644791785570126003195442041727108113575751056853181470385814789469666788147434354211074642906252123697962793341440750692791900450060898545944137622038291259637315667433814265934358644137348017518074608591630529020964649635003413776274165543070330915114051277783815172809912057456846754286681921192155577983678329960054941351346697344692526334388789879262505718497045739209384938741073830679234385323416094446132898303704168731440463834248218339324035122278090382591003947629730875049056524027755066802481643979071100110924892576991465319919581889114999703322144947019647244255009296784959226635636653130585890011762253906466838312014110348829339347222545428897673517604718011495739191783005190692019414467206928261876898212535638611130874703428450358584385891918180051237313698122616022716699776292201646279954208966741254756409073154326582740360088227734830912577544513296423281713246042424507815559552037669664051447833988325453777556245471883160921176523208602915465281471092221364553678547718254230924438694796326633969597508060608721957496576827725683422493847582723164984653071991105808113525398991997137602352869554596044665528989224909143257522398307728149088625860563073435958216816282008940672213919080397766317435263790424766443559365242294819451432137208700411604681270138784410266129788664119054295656646827876977729788539398298282943182672760868910089270807882309660894487357173256217732072958082013579180313537019080758793983112519534884564458223697901336728353078906226672573558092398033349985270146631251596066313053947762698087875901172053114829659462912509629028736330573147426636626909407848129486946893362882950385170939581669862674638993817980123751129871233334155285607208337633756693963122100665822606566551894194894919321484725100368840052044335161172058361208940830572451472577834349333241641294357126912996819478660779942700038756930851127218670013705058137550647793656159865847846705359477725812497098227243191667736084281893105403480460542740642347851793277783980513746872670026549459374510739139305653832177714911252273870285021771677541009013411092663397836224244480794695263753622688551964976117234062142511482097355482115391759395569911126366950414119887710719572843704475035360240187755759384895074575462745629844027677724838515200932871317628244347895859092867833448034653313082356239138275951191657845550457289736712280699619249503768950939458320837529727263137419578075103362748352599463840470024757511532934535212068386019866613259423180864024453365023802515154122728483470447075825612094516573888022658643058095689849889298435581446268664438166373058416416805725726023174615083716239350548018128899830000526967997927312313423193532258497385413519640121309660279781375584854037452283139052861792348659968227095877992463535682818575542040190684331042768218522879625315535290636446357127905694113603969214432994422394746266512309651796355396620407661371720424498292991068332061485688994948607387869434218495382119654789021368791702315472050987085159800825776404709207342494394707008286544339518039530195734726822277751784663327502635801365438556651280700625229674757369745566121614653118776622380749885222166921611539505629987579677211549690130380528757731710592133253963838579483901353702768415982908385672051092177940756898572643263997921507861381842286558153310475187179587324139172461130252141827099912092354292553703599784504487495573464057315640990262549090980887205100760772555352610593663862640251505190285002345219603700015303704169969107533843418217674404248990320447192810494452084791240285291861376369251516708964868550020996150739536590077442452431343019961182559521730747312609822805721869954250318369948557721622364315562134475133983106798009435167807642394705509816044900443362360433429282406971692416686413906219494682378019244816744977960585442751803132456781194242490624113983975065525668123801211300679396470263447645296023494765576704179449168014300234818694204411584303332173814439832307532461600557858461650934271736598914601469108977071924281872874227863424179336294876529080161823932206237654628641208796196199363537550092284383241691002404618848985662031703512856382354246879742788099242430069740314021889501472349416301707862594004761333212168284990145626504928178376239551067482829388631470804942725212197353638325436751737738442980647956389600925595970061208494473739133376374090880314265241024783847701632327320855465702586985454778595639810339824697289816346148597292751059606414207469395579958129678631327476106329829652645122820414278153934068475192246932563739284982837779778911933456394538556172099892736166888911237990909985904591664626424232913425732391361283706663864164684169673019132286361705911040907237498151076439986968643591231646009716794537574538670354209649536173267453178410522272084575102367138570744790808025865005384723239728644783897866220874927744793154222660027258298096745507747953254641854138210742933771211410376816697579981720692055684235992820900931461070464770711073871974576821348751737495069942815713072861857126345325018688186752949506094714504086259216731051577780292376794042091733514414200359113951828029425853475877786137231278530851038243348251503682046346340054615662246342302034927337920320330588563972823422778111793758262483189372631680866135349017441310700252344538710929936311167279715995029007153940055076273016566232787984815585692907916826066776105850813845343993179310139792694913655396818339248282141394429298287139062033612541275480622728876422406971984823281925214564468866678906316817296063571769639754794608863089890313286529876934474384621748269732878815004104457851170548826877790416451869852955173308790841816480027474604400601126970377769634706079672093903712769289050635048020371122698062438611787898411652020495804952292982233046173514734740507308286923640531651207586866420495169450153782456799503552388059489037879148803214919250698449898217943571062237747497879571554873375246929153640121253670358280023090683957180709645815835291200955834193744354402946904728189400527588671766032155803452574710265690589789379158061138041495565114197441209135271282819637761460920135120132573025189351497641494695171939872175597464266569510398668051181938062326545102317969659617289079413787458251806321429387790852608055139768705815233871710721723394323139700242423562281549339561672274357148622084531841499226131018267270138098361031438151845656632176458669800215817024585881699472421639082977366633153433231221514681986016209257337459164902102821002005996351754805208307710158799841260022155908900182831698257764857440533774794501090205268002201383508835093556409069940363389292671777623529830231382160145087381510948803007101343837666595801430631997050535329961478100642854059979495372162966287823110873290855030560424160708940860876947346910640466918797735116518497489054796861544557809673708176802653108752794221722145759601730634388313580959575806589615772314018424409790222459818005325796352335858387706680017341240638848273664128387574090481303014270851241305730325949042757727743955438372093222570282142633410963089961321254180165980132078795717459057560581745645942997968024782488907647307683279453569404726297146611263843247462044644005394823511351188379344455127008844594230361810216053249086132781568846115857116578744939533682666424218794772308103625093481048872124423081341306477448146431471299591013919762539660205011869674750532587588513307526794008053358988003744772938439059534881013737464663877199690150307017088445419490467848122942365318790782911992187217859793127470318854417593780078242607690922495370894094744604877260539454256158634719962595116860686537189296162231955911073747132679452168727016742310742022550163164587516468175608622521126667566161944145946195630682612137372974187244330379156531484520479734963835949161680960943896801523227328190560541140091716658337849147586351123019265510313919679474541530867694636061830319160329186168628775303515674079602321692567655357905765094240534208531792702923167227385868426670268770607317758050848952084642594780966263297326915612830837893211470588575663348261579689114715030327922407064222437858169109776821639517690319212931223199327298435318093158455662806956185011262504486073394819216012392344713357167578986025126064645725169040836002531132339017515112725046607048304274732888077639589902420983168535597731977572830387964247735944589362338495505875789500804826145805701943878687232738129288550650673030148248612102388875082466736361692000417083206571366302696731617030862449068502058245993542243051616002476556396779647536868432248385357782291304695692309970126401018885622810504696342068706247488884108209709591009432935085251556096860604099724986442185102763940768910847385842660761870176721042949459299910970551414372648172793926971336387891645146070720108097502310450323781156052908341372517183626313496544678049417848447212940730656871899156609979861909016415975832782144506041503859447742440074519032066998213707904213485524640190018369893896940163338498724389803997776424316474156375052257325047166056595075345073180572718892168235105674142600588383134269966375958435952759930059982115611311974180371380312407213470014176143163386203463129489112452917785708455323513622794209768157144190016875281292024180949848919232784121861332381339406771427787869229051515831891482120504419568593710046295649080391929310542204650210947808306337141319230367214240192770817974150375092448995853871425722715098692579959369619024816869261598893304549812363596625839855983464688610027152983394725928151747894814417357394889779513908989569015720905057009831223748691837761999258031228913769373474334391151523130171094794298806274686718033327146648248507531249774334803976488476065454593005420936511780495798806426612083798010521772089976530096890725451256936398917191619121411896496508955867396238162132439119849274411254884876171483048959142160926791212334762891588735323215357792349451762605340821199577869164938489856812975143876996444435160661986471785411109393390800477512120254368690686498413356741235655759300992295223299091552398659518590519049986866405097022207746493540147416066871722113505218768815963467254444803796210732630843381242398997883691248954770257016215026328874904103826090943594040241825883443328711158078590785959218050328558778148894232979852556421820507129574571699475032447313527524805690909089259085961523374572374444767345579191612702843639588957128721361527040202681113295288366393289388665481242580665420483446905125564420134910874209582245654859707379238673866779093711309269942027655960794024691604323783893750172148087501441813419238950614310149668229403479711894774194070944501871191808435175585226594951725419935426720378402720031664643772197122277621973010817352483963910402444233772940828628590599601266901225839927762797457782479837535096924567308405900732930495052254383518850107122577659594458471858449173307056692153367818625710991450076229166737065134086271693164069336489437522801304544991515498566812562924651013745230796264199428614509293897217360180109627361227978635953520679280630341119347515560114878150652274288262514502542690866950743364930716816930234486037586722166111820545390095701005043459938166376322804590478522366541074703344598040892490443195625891533267774399801003729048088733397475471030639199094878467616704467204493410958599867362080538594996332889453687317798515900497413506632917497326962894338766632877698738134215884554379462261097203994921603326981236481573570129794758249063457069291146596303682851222373117370732538631624170221087985266708219280953737610740726298269011686279417715456465080194711882014961248178851692020962892370624779912595084649059347925243151717150676619604962802543146810334818714007223086915459803871946768456942094290273740584151964744179635712813257022216777404530931050945207520764633793650102368841583190667522549233466747213976898986883683558392461960928049266429203870322044297677593566861428429864254533768049518224397079876119278671400021661230143597455837514267227926987527420184103342400320400597185055520094532934558974695391122135988301724228563028922101664409685745136855088512311396712182341386798997651121482980829816658251884170574696040307476677084740796590292339252292370310189924947084685195034781842314628689400651847251859114663409729149636669638205523648484506990958244731205181568492415628268833554975914503319051453077661218099663322030386565651898505791443461864166953862855965059946618700177052457085759544269990177297625887256427148261683025842659724762153156260278510508014966149167150115197727238591784164250477418760314660099060425162444683528399654003854164945086821702639151750719863702479129479167891253711787399086997473863494416255089829703367641742047921094154369948649449391379008359210765320585221640590289885819376527733296604487711798184507668949675311696242030201505761566534109080899978396584675323894691953402959288947963147755395770775313883145128745681219366151453928763346047322058140080578577276969966713828196515376516301517464740968240331836753790165895350115787847242676200817539589658214636350124643000342431154959133985483335425283163974566825117351268656940562935315458018950849087711351093875593745847402495110871734101110926184025198844296835321048138854983666210824082111394345125695649281945146032386440051479140851287003611532433089227490606413314486228510563900828906363916041108678251385665207650163979488080041024886251566336577253255585526788630214856416764917386418683925960058697052103021671382926212761085731483168536392206623226452471802021684817296591105741329726154597713935297368042092287589577794299516328094345638047896945122311225419103780261959596446710912432146480556437938016294913425563762204010673640633997259046107782941472650676131138705554589745995991359946988411952626886140241178245914836339136665251711575824836471662693009919674265290187010641054502530047750034311632481900243145017793751047837933897179678877348195095575602602174289168598908152423063533999845245701741634819563473922581454363176981288518349864896516066400271426684939738285601135407578352217172356337295645738366268156597722933361064832502855059922191608339544563774498714359012856981721525098422597588460174100496751294633464841539491342675173874810777238504440870923298039557993969943391137291911230290767558270460133276244206860606173326520736523891117343935370954155355945592922401854300199099464569157610776909049980785029342299943150782602853167348695271234784612678352685271185149879621504347042668790238755647757203645821851030096610656304290301632166459495384367864029990173013942922455442641278938539475166252461837686211867286821153504081613239871414913675979902065496093964309805056784031774042353305405864671782569691216104704156324957193474840321314477374521048866542160044181364381257088269586369669950910856030006394884309136522118825019909904422187341373323518668151663837517958243934222896380694197584315952067010314833946323499816033360576259370568250450602338413956128956069736025528658649556118466977757323258491850054729717105108111306833146106879445476855409867304300640137081572698665558063263280287279807911660908294685105903833338024005073246395915426017777173031154916852507887874864276515534478566911676242938647543769698638424584427434157014294366911072263851674533915276849337174796845657188295256481837670963282624688717585591022452009621097841130054922355795278592511537411828182800187667944331308393427250177157710518868239498208951572246872432491983549239193132008625917264115520372104168185925138737947961934685307631549972554584602928311196883764035406470840529999989722487407489342869004293615695865601078735137192253482284466212585384703276645763031174685936121988213947369646116136235215399434595396353523218870390381246944899230006608813134749193948909245554325233224596897690520233670096141670899204105051065780193577085755914986108917710966424119030646617037433226197249595537941801350302395730360990468686326008794646530506737652440713140395729063993853307072600419478988435312785000255773451014826863560283409014620905463356765603192535350385944188884281260696288437183401487202266244863972639792838187684686499396005255040928800594578298951058179917164076139415072108585375362890520439350395319975060505241583956519948818280687164804144923167336377190674399420890660795923092704073453909494963460774426378191701939089256447608011783780378982973023059308443381337730710187235362042882655891615329282220678173855841107487601667620928587059501587503425007655520631479120122323397205651337044476272559598857997283550128954746894232542492681162415372939342972780588916681077780825692700026050060002228843006711710601681669935984172838622541456929638970529118980195819722926536659272602307953345640380004373343565779148498096518756234361391017516891800248984294027834670885174856297805368255314893726084122058411029458014786744169739431390181385527315243877755556325880578614904871366505523369295195741129159387120871837413555898488301558478125569940032896484695211027231286115079579787186529836227075105508369354851974232075283595072905125746951869942315991092073656248578742307316267243894842565955570314340164992826892423795262480534713474356532313227689366699559213982042765594403954662938129260360046547025363790374980437938809727321448044873896857366016763682505292971170616653703067414351715885615181012097573580249489477801718558745895137542849515235060563659377176040376883701441960992758503030105974650828333635492990229870093786069200679010102313952688517001195587954599626535550503460761798728718157628354304791645915639143586970761018120792500917126647453039689464490651375521117617939158284239862310390572621089171152132058937995749275670631051973257162747729359199985818882369878826511560914548629928130894931421474406345887200576361405004308410843210044703511654097638320965359776222369888285975518048448224881821485334156999565450840793004702792574993842827393177861521908212353242587637786787966649848795398462345075078512664599981771469895374776583557291205174061584548961060280060936607301647019263083984506575281035710020255050323185997426477343608627226476260870128876822556508142944767611447861401233868623802404132098569967035970186415576281180867361551477614156271655085021190508202865751304034444664187923942782645001897483875487957760600601255865430004080134208941019473059599222532225024636327733378618718784234622589126274952963723667074243156591739838327974712570078822520069462614674584703853865597846003625572258051309501355428536949639324338922271318034719114115939025804091610907686157978738065228304160002165281071284526695720876661836099685246702820595208901870494549218209544657274212227718679648408604038983796801134030443908600656115734935400454164476156194707006456550842774189725331750828299892653876902749013470380212020387011007022654007360362384262252721583310726983065484586929316756486937610874209954748293946019404482055278814258355237313776522688592087876012060602070199911233499589725473057851091205363291908941533467814478096564610341406124667433596251520899993769040026572020731552693992895151016895743357271783560440382480319492755617637385598022592211803209688236005556384822689109449837078161512982216686799599485939452683170589992146857521272483916475715584245730377344870525683636598760889070339340237627302863475590932544150186916041989122445552374383873842435707812014976223404621797802131577099890826332375262896560767453062939121244694214576023460278131587447203590687758156070225620346203539294670784844132394393874565154591456121035106754604399202669738188021246270689698566923331713380766768506967997062652713720990410401050688670732912302359185476796910361528723581742445456283719234958512411483123241416085771208909732333493048235841330928521049539078024127875935373035493617937094035357304228502990155136840623352029068688990129047700242711551233794059945935506921725586867184579803488948690335752998253556450189509892174715653736147653149157313128259334812023463024644010225239674982399779904130308123619104035241404826817059697821350365586864609092404646057568307395327710970531509903691202346748207179963000950861334896612854374665870869074816790225346884491648031305520857030253703735661882059079342832340404449979228732446218307367802051641528415336668649871867661811153679096580095637549056034125731777636791625204022138184103430485365948045247241265300988599557684825872194900582575147951412883765129816478104504673032746204357103174175799410338065878994934300261505765246927089738727431098105231741300961628262704173112512096499627911851431185923947476961182329895313250847786753626410204014111915610566843465005811614689520185471933796399493510343640616807993977478868984053817707478815822809743513183456059108099596357430945597330772207009297027034696237009055822802518079900191648605029330551833281552758646251435161896145437425266366867092778642400367894751513334017165046430414216975885107697538808727906127387558545733302161270674025112557050667406514263974724984679890204046521388507226102121760654218328212370471310537991233322932479532133778028922216530700707861828039318594122137894349588912385778715191128528653751364227338523563030358972874818806294608721631751276326049179029569881825321601799771699525918499578836205194655981252764675351517812099959130220884627013349557874235583164387589915607381978220977468637937718438953652560493921094796278235848471434159085609778685506914613668482879348983728920918690650721774849798598534855224924148676788616193922614668068115478635422521716218330290494603402663017279657340685519481735781907153438493644266575937963855776055864463509799770609468333771288628395966313437691095614586140966332579599669233605580720178252186755148351983194326563533914929993706878814617763110575764945555761391662854337736568317035659233840991824952793488589114820758994519884171210386343986089534726838400266652918775851186595481109427892937517183273340202035579518868501955705625720062563767515485944616258049744856800275799127568964214712905512961027938096790741632120471799079204376568836129303270929994179614718292846798244535359843543514123950867690807339679062406414471052792828146771670317228466177714852678793143353245152045684865616723665537973964925028787923609189266654576014820055753313105430288285014402983023668672480205888229390290226940610620757070370243854825475026324887256686277293761224001930633971071595481264163409861116198588466235610863428152637583176491821530731217379025325483578106948328897307707997021177585880860748925441002714006360250998463955826245996223539391895161072109369601419955404240104605449196893204102960623320563636694301912054921196402442910422034477962725842055493406865694374821500312317077291655130564203049983898417784726332274331882247159550159255331002054373512742791165428918126405655054077011358308302309194435105288350474941737635394796915287227527477109343292330023278568930301431220395851804473837095005710536062887876846434134688980557072778029009218437699597599419350640620807794901018318404917035080019325187888625743961501348859883956104924375832504440503046228799317036896631968683515083523588849856293823372553725867250438809352413590636368762017170931900273695099805612774558420218816444785444602612923459213292519499433371833642293103264113089787053356543812934655745708987290829668586749227818613057546814625215569998062567670345717555350922678081051898497741422834315697334751363818827560485780338903945060961768570536806190933880296639582212488380781622156770897086446754256246633460717010536521898172600701611660987764685396285173004534950560077216516078637084230547157981112472731670904036754308512459814866866538021714484961440528371147696699261065032945102561909096931479233818474233657951912753504910713094474930351231709335090417495882026885225179001580379013158475539300724348073204117331643527321873250256505837076925540774109182071625280610983394642019872572758509699437478882105430198804816496906073906646399384936657619656191417057234575563273053818997603907289165407443607759013330187214874044168460440538800877719051933206601654818569434620476710839358157888825615443582352121134063503416008076644295529386276837435192362175277537892108956480637627584934405934843239830189534430124253680018086920899002072805445426800694205947476535371455790417900582464279977711786592754211543020706682341074984077708668340117740742020928649642197153698682677475437409210598030763817989518235840722738023837266506316830221293488643558406733765709825155340680356622488400419572741949418805678963904298007572142674967610881732599250941261405297856766724114694498815651568686609790181196254924168619659718299213262245536208938294943856547806033604380324495218495080331444886063713967372172466797619931662151873197282731738168166575525946122694874285089249260164714879989584448018437587025404597860932111101516851260507456056376242737404779057818777083198392242931622903341558157495728978911410808995079830712143410466704855511062840344865229366044268971054591887610661824105222420865649313440790738444354777068455078786938895528845778560065544308830386441915404774297068595125430681728695492682359122944544681715770113228422568299708130412234077955427519763394302201375359997654362056468396041646320358793494491165169491298985327411453061587533464944009986137893404717229715970455345768386048635971193554596207744903561239006433805887450237672565823240841032868840861480141057575151234407212114808996048646113398070769060403318254910151862583961815333054334796253730506116415603390551402610155791209888909417259595617832081282743413474071429983940428606404143538467961972325379095687403590854713806294175911626318688264433104454026115441173240962812886422257896021204288421235690084663840587957831970636007032578850088134494743555124468157770344972100064588506467372524944543957388869547205526635242198488216727227643491842934921473172194959294162105614777135296567002369574980095497380769799386468762802044657540998826594190393457398264224145885960877178149908170605873292069116604515785947555380275465530119637019086988655136469386545654083592382787787737579654916697016283266099582166616672383294744974158024667430124875019032324102846897170270427724973162975922062488474002452234236715152583470617108681622529171313150635452293584108436863887267795887870507413867057288221773734916365443715224026444793103446664880024021661629408852499358677964386852933505684451763902087972020444791358783005615548906115162773545349448963107414871510132956917001180977690844714697637878510800569930426930930920252440467848150092147146653147939023987174120047321359643878103706560590313083650113967271478435364786676459793241468278565381227386391898217612858360755212671112312957488914408759927731414170719304982722166448363107658037326749482857105177557476003123661344438931413917510072274634932840391302999875553069072017121797975837885305964890062095821848889301650215943649731489169470514561047219721155153235703279497665970170201641406819263883120087377410095370984606059036530119818808246996221358381090959136017352749538055656614735578189285038883638765295609598205462248540559077327149113447252081602287000475419979952050446715956007736730722225417205724337971134268882780599180465384994642861544640361706206602178691028100014999751920509087152954026793223363254776651397769650699241875691090051985041243682997096166607684640100163390685321648722798331814919475029675028764593758561350751904775548217891338923980845907722691892983091897428022815327370459861110938137892824042414717041516596399884944608337016913299288874655630862009445325305114781947779595229393442413203925843182038624727940781235059655862364330521503931691751212331854868529533472091385892543036554149189853386341349490334974454744173375208736243221008098626588522450201238815473668199107025781705758384835724975589300310426337912766073159597166412884012762468341729695149842128872763807956162212369264314708469035616890882556913397547919647825034580474804083647882046231855929312753407925901995000170320735826346802238785749085556647121712262215038261951884883617457092302863372633830786196512348222680073411892868622141299816902494922225135621698250957008851705823198125682564769489017975700140378802481343009483741362437477702183481026798328463805234173644970333831590002029545149861470463980529127739132870527439449936857360741575433817676726482944519765510340666611818457222185977316035571235213459662985926086488067453726186737424501456187337868040549647655797545297286284050343328993930777079341462716435309309460338740343994336347860653297325468710265460631707339799995008172491564205014370259157778687828269526561705774707635993524770397939063656905681963932255910492370672718630837686586755284688201729674054385156661269636991400887478122785011626264390231909480317593550330045314122117548744814697836693138968883253403303592778885643219005053818395240278578920021622861139709131218559368784283579368954891600445485818700961666000236456347593080650115942265605939855050645013635226798526169530075539645309307204946343479181624110112212299591640863274706117139139390335550142434784938881836658932333989209741483169102120111755055913109342619205036481995249362906331119340924765386277930434687364208332901205523678859978250371564883489535011054233865200558095920287357222834014864290477339146577968875801397744327301391165027297309143151518008363654922226677305506870477575315475195804717048604005719511497803527574995796233073334496231050220291155526950708199733641671775806055656237258348448742365923389790500099951178943508832796149470107328227492147344870353318354774841511489365757919722156768029886349446422465152103904863429739268931304043309785500017151509582250397180328725357976753195714393084639214018813226236836592571671074433770709249605860282668618107418979823043099772958131578411778022588398163428144958688087790731252789101213592529633736410328975787223026947941531993165976388166400583184001771170480257867280903555000671020245153797489607225540699446041062663582222321358364134142145059799489665437251101169317880968922562951764140483863488445745212278783432641494508733377990641340272463917473696343041824394764597319900367626078042858145898343897773490188673796744416910804534932088658846030988368708379138559049397162163246475008108213735224800225213011244767872131661271583580456885542193051923114650689157577148474513524562311352043079540042082056681761217156281241170153090292301319609102566011050944131113997818625814896967805688968789279140252901934809988679080116215127529798568988046942447757592641087223228243829950924893737611196472586421636179341241433750687863359964257079176800450063113196865790519506695533870794846394731884895498397546827101695149597192862427662567013612975816857604290033081982477681641399948434410636811020996951562074913878139662198574818379045950066453630972336067244716309635120364941153725486840119346871506666000217987144574803231857336404175498349457891814220863871186271613668104719008056874892267515134904849122520023918485954476489603870299224031975922826067503898513856792770436068363027353500779351493140298267452524294324853844868007548971221260957265102645054047262154914054701259306509026769865892564279130520311043772358132458366918369509930472889189912855639038335486699519315230487214381248604376416180080358067240345836188095207249900910031608454258866796531090275265534290902998654372736251750720552712190303187586195973106918411655726946876312967306620637818939441896648443637153518367102028093634638363867076722196271463624713241163409686001730858272533041036504177776540804506439378282119296247920919642290124458114605117247609899117176186101445114216366497092816546123781785378214680967208784873843716210654879555603241484152014717697936829465152994178991990808824346295374192913032955054081502645712321182025107922645565559757804859202580273758099184546332274205121930158799461966968035195265828132469997031312621418075971146043789074630342254376305934718323211086386171918556790197850270456430754249080869939153761767846749975525816981311984949785959312089008307401205254982585300727905756524070247861160700741662115041521249780572280743672943749571742003977652170280571249544286894278734570977336541809026102778674697606663794018032870655755048627656031445210846406835181523119943846781751903967255316420806338712296977289091425264402888913562973826499398346529485182279718408645771106187468033801635319878308385277002294868341599051727525890424017936981804099181783094530226907406012160872130179053266972299276291483655294756310416482193465944686136476508573069821248348281220992751759790064470083955562691732203754989346682550316057711930327766620359733428165398416914895314856737569491617408916589222553774966038379934969214570209732820154481963829603731297456141933228952006088208882312575924408381390128742309492162700374027637593431653166776110831460678794066539912077939252370072313249432716032454269300270848123505907287812319849921090736405276374762901581310022469458382004927775561264460730438703458128253450122341170386049243774742380705108789683224844597214496671844206901578434609521073574375115893564753531600031487622860654250283953545915959120533073473878317523446062726830483879499422955755398479593532772406431024148682795880878387907942324801543484013284597154342368668787845155443922123602530954302650756716554617403015472309701680794038379612528605467969715861576091809559845496658800185785034171585532373185069138399683331890058353974082731823084348114984341590446546259527583125045167084248337914386846169161291512871248378610962152791193380006909958561179372390858806038377165070834903991136854666649052375968725658512942441237926027573129065452666092562410457288106308496308534163240231335217950899254395017169822071137079712758672408242429106173691443713868025269315959380517057782366954496169930137389556360193391022767449023913171491480550879219251045118857473065982147855753061290936688176870469622454810701178956046857322858337900887034336092194181419113261148216287491134751596404336265704309329906414133690522486382685061589391850901589751647652806851886320827668939297970709681328531756646279795938384791854617085276800254981200508863048975953733780500456724792728952762384850299910224180154520329692642753391029536065534914195518487089977302480531481669168649211532619091841989910622087884715849974175410802053645507410090558151607446074898313700859885714235017273867796972094021328026462549607904679610822274567706834914277199398500939083865198878442779180206050245507010409415010012453872028201987932323284275484854884118881993862122876742362790304334843259113489648762575866003730943925533285085633812586885535026755609214494859124970572563296869572851204091860051925027606902154109984696852203227493091430240170428337008719593075969273445253229231867925086686664064348428461300447505519841332334466683798990103006810928947780025389058832984271235644171114786764018264295168577988829041129336403455398793315025733016067361028069034873399422820724056943239924377652742549636769245305121787639199042923793050853652186375437522780586431634762817635346549055710895444030033971998627973988036800274193054279013033393165708294372571711401391126748346202366122282207435796409135674916846407549110003183587030501547667096975103035153951699359507251435001380704373861918992443313931317800955632287436270312882055167115716433789395954391127157759629148987264264709893452599837049507580781898769127912648049303607183484941238385701607410302710215039403050346464358695596481617483551586537812964817544887059127869084626155576237202495772998532317953040672674997031214268930514056915146052649536286691874062045547871219358449414192553744494165477805295761588965923582223287446595675999046797577259339207741027762047633794878999042906264622536793875866028292426337276918347243739492152053089761060482391048954548386385334751995870694064918083072867352918899390532837868987194080287535211064561987484319590887076333084070061145284584615583229435779031816990020052150194673968799867931975849164954252055589285745063942400796252904225269142077961757493500067379719837890891654017847948970340660504351239724520140554075061965985904573447259529440869784381519457084064726023649465340251722189733374963280320065538712724043782857840829012035431392922101358742895067373381546321570171154475851934273383133256557327384643267788245376149421147412358416166357265417150181416414487842934898037644394686118191523388058413063721822030066751239023317013695697109275423397119873219493095123352269774525585786399730042658984579749580227244530508783703928352522334318679271812593980017967453591856676447530911617154689441501784066269331627096616102621235594353186066230619908026687342507951383457438478351613561830267293489796184941352040987920206306465806880028491493946333719312890246752302826512826477739348140099391296554730524356399860249759500597347831320112902537249034651473298181847702749826591206312687893778699061397508776989675707539009191216072760804780158834562566074528495625159941115758274414083085287917618450412580989334961461548115163774543202108746360258677956758199941386352408437445036356741300478818184394811220150497043434305903843373925513660767380044800966368446504034018745337229495359683310259407101087709567167824117916025814312777128738144046162745583955434695123813120884954078888626660248443103986187510394354393583947786150351100431624612006550400859593041231380921296521113804934919411490850901322729601346209533087832704463863263166457609728563928319076889415054787442481888021843444521744083266145247369105405817461892773718823936287466972926700088957162269494277842934231422343446070851767013958839069674556483640117502882483386032061674512067790296797832227175857655419942966428248078502444451579233751678677848114113509966832014926228570923920832644655151550105274868281374620917381878229024602563056400905020159633753958510894293951535199302275244420260383085337981534302901611578447354642888219359548601041772211841212691567684747824888015227627362254541673764277285656589513509812347967963527421441076926401334403581682871076348463454968749622479469884100596290942511136485545103432312767652943976533334597067900610998615540693877159774786690054619818913044485266106352810597159983412188230152458421313198235782555383151626342371739892564319229295679371362416519802712825634248023607990449033667963941075148417855113218263283425424662955133672846058969779101700585306810234979145213339166366327903277024899242401106300543796382030988927038331227513414531658931628126695707033814989502166900856067030124524926835415508597116948921686183431970879983724654270591435570451174073895709579411193831759188775711049553291303816099346475513026686140535080579548795035187361628426910216901475047253729028376240406849149359827072616830102372447976602651186948854546224635631513979865044519635223319341204107720834033424199623557759612525476112485740108269201777917488949424935251037008444194258547694599896545333125411302922337220817270239091601473050642554943004875690807392732427907502410371222068755895915373487619067251058414068152644094321773700922596082376350870686421394344043111089769784723945065050837156693120602354416771947557581373988106015763779289010360314712532462148197031862122961945189780847100270734139579673684774023867535837551015482128047308402526943047289426991975812985033018900156786957579462193717908339197255201754121538958476711494937747903774421156186381403381107970113271476973198724345821434767022781466210634950205173807384144528009389857560811967374815405244530871222053083802943300563337838992746883388907085314729657010870298593949608798596637844175747080672637986757741193248249908182657433392620490536504278640041411998019240503659187561070353671475496903611576231219673086679666574150311238317115720818293431410911965590839721475272548089436637239697711788100745090028497628978519673942577082134406636203486299707132314567318730276461484511165422028221948269834444253808640411895168499781941815594783277810343499553638956630530016896992896064931374933733749902072396709314451416973661381297669209639507637320590260088675808387302440298389260262795468490127528868620312293838175608642317837896212539956514432729047545108834896739425083612892892805929827450083796340323200316515776999664788816394254127496879875512853474028700019526559972042805030052022791310710882351243301485588049515974428197057405529370261258932401129312394044531517340089748022881920882329708630508916678214094045990957079338321862538208960493975458860701928669610063581387036082796572358953469351362946175016597326057800931649692795163374997781914238593186719494584791379321154047958606280183066538547646235171265363580788632827024345468808784402021765863234659732137882550171457092758516559038715452818248799135970818419423675339740819591443471170389957464304996846065212673036483150292679921580501053510870226767689900876452197452086927081703980060211497061298608001872665444208239643328484761458360919545887280441167093629437044271713500821500885370489090684523835027187336059986622298766914621759237402962572699065481298052443714483877031537242430258073066143506001470708272783944702170929934259865113250055123870234690907139194059347829744781436203346625078510074234765928143601132889697114243365430660350817828115886871145196263649632030850177613359748327232851893460964381079829129583932165658567469699460923614683877771136400078162583664185092766514881504533314655527710076629218800476839631612073014513720214760856044246228921104208798814600670967506274752327492189836363944127973316044030488253533919059782571061962073604637119205065023852221172748543574595821623124624784947378130021619448468411940004983661255872548903695504279542230424912144746772335185800121118724053443830667651902214902981173407006740537963740423945197705699173805729955182573839413122518823657193006369271568076228526422636012286550943680291208956890244937418481865535044233164591448537572705542828927765460636735079778271949037138545014423301706499289062179180277291847496802026755646979664174816907618161575221481514656171900089029992559693996070425461771796849208166247249541245530203133239471672817678035461803381205143082133422667315595720028636457602702885286470947225911511619128032986065087926060115117137714487840069026693792113475062294085866318028768992660032196924889729360492888433087944177142776871810268035969383489949280910501304584799742258100802658707629286546012964421976294309090827447084466704635815937653788883773476444857997985031085834684994657415111497758740629451370480986535126225139470848789010270324548671901615661768646972602735988926575698319882726763080530542027176832986943609779757845982698572718292773300359816454304688709621390164889181294159837942227677273769326251172670501261732327359205107201333819190336756708873923793207216926953507028582482124291192166562921050236899703065157230317989628135969824655288730261944803179390987205931718370229483729556806602130218582412282713679147967317533829912886498340829188157831293522367096397578764423958308843689117828846538396332196316214517253885060762736474047011050110906331834404734823249753545989163347584429164930860487584034994729068216319324193286026468622860533054687491775638922336691194774482205641489313762390816701027108605842598510692100116013502206091661790332799766707283198559647704816304827089004419162211037491182464000146945077093119010027096911038696725731043919392883499326750272548802089680056964370684900093954992047807926347772808409138749886676422505309752020938262355543350568937840031142420155769386504199827938966088937309256359352612694107842596774948946850387056872786510014447632554025970815916422850680545611202438953584477581648340745952927999794166025039236441661965207474690332500468731229218141206293879368864730491509069052510951960506338233405149143541542064399733892153088299701919607770625566551174206343824565052977391059972592993492293624127424350116392802425095546149603236647296650795800770072960855713335721016318493254058596523660383549526627209538056201760100181976343679039753433141387526186102568514334976358240460375263439977295800917985457026971887292330440083788433411653108686396619043046281571127200000681165204457704243338609430184093794385533060338545301181336780137068300646195280852090909267284724109071918742356604272602430088028104226205546915752221929111314049323032736426556477636617939137449732433627336479086823386720218733949298414735062857744242566996865983224784660927055852723391179668912205465288052691825214775377037733980496577490000742799618438006021416807684729780968345973529299368960516976484176552360475411376043720898767876550603078614629969712197217574279562231429573187704662192013743637183625663683512602446627969310789629797233143688164283679712346438572478469848008140624899856005443828870208484053106528526453713787174455054061154785655598792598800543262624229685798611589617237347844260642965081468060936503716250491585616945602857600464406600533487286032050696700721446419885399657585990427365658888399433887190841983258664705202029151175806996747121076812381884860697258803102210516725120706632476123475221062293485117874567702954628871019725397625320074863582156340830487065947703727737981870607815942207758633243905098479530355476540482794888095516018091257850843763980747111410531692008693074367999502557073148682371795226496254972749253727147444871695384791539687002832552135672332085389617609761861993036381081352522812257710222183270412518822462694383914839006888630452109508692773419339879990915178402683760689806415060228304936704208021397952852052289722197004209479131427453653502772327887493684624979505710386485808247750329974748299858801596868155074684719537808695202731572866684861663645646183619839039589030731278257050580479862629093859531926700599883711317978042546723564938236915806498800247337500316710329487142663184150207266397567662444897203705888644529422374386689036474887970696152539723201020274928845850010677593149331070258176349872138721309398386068747555822892687576294779428463967113197537209115771376750953402643117917892567991881205908509340196028753442016055469749362763877361284170635463718192962439045288312873598800144805733471092357455179680650828269592100154885702032901220910165992069242120730118456481395385064237606756536320212965054360842492335908707417297206538387263021852187788478249108000366835159116847566610037324135436019604929796121437886916539530413592768199577485846349595264755784434709236491060982585324302324738606189059128366829360240213085264437668614029220057326616658193466030686991285866407216171442125161754974993870126585476902689257304718609132726355109685323463241341252258106748984533601238872107729334750252849762691403063978073404115579630775587640137139615598976333804998975746265762441770277577794193814030275340732985215831289436073137124503239138634233376094484693799707538550557253886057674632779466954858245455377209612538389312641755802240422632545571947231578249523020287469750593988234695815451036522014514176606445684568752425256081613987980035833368866554148472366027392710683830828367898914921632334357956862133211888563803749713659325476330812515095219078486605267191857659977764066721635530331285529048035865801116450862247001479168567437314169452734433546175055954392269823805227134007619235226093736145842187142631748725168881768408401864175900030323354430638810066523998005222181196961766533232414924695206695483616718848644644934221428747184054764958378281256416206621790764634043295737964441903139314507194044378770627160337828692430345479227860550836890611990511845711435523523640300832364970997905088523065441930612615391861846901357169199501350995176033597091686766385433879577116454544556607724717307095252275796693161519138423053843714696623868059802164363115382276497273004141969162619717759221209602425951430943975488841257855661995450853762539935558195061251338203111948977132795662978256641607926510831292220915927671670319221022279092207960111064003598181945474925814733575633065646318565649874568943965072456861294785752275546109347250051761042649989634071894443670471992324395505094987888423433084501929685712451377440843359855093151577708762112854323024232768259298225144269925337321450628869699300731701147133841569330175180302181110771971154157222417129075837136776447580804748128381590386172127422222464266641064449822429418201824603355950376738623602449315438990888254096168445713371799754535893976624873188723030483098096845894336424139244657041295051794179171960522866074985337518399874183680132481167696180037901329868507011191554617642921360478392596090340217703479543895661725588907100680925109226067694860493708539355264430641071214545097992316000770834007746022598642376873870522405881956375429818289295825115321747696541591910725563007629403695426558546526477178977077052374985017533762922419223769180743723234503327795164095119581168842695415450103049193614829077299588401789708191604074932678712417603868933826666120817615071477049424397079449963664156247721968720119581646951279727978946611126409513626607593624027099707207962027826584117060075369653634697469991124873721121257514720876087220345163040823309253948075109403951146064477251000957271014591413153123012740571760084060460665143650087404535006200380738538080871939591733806811224913479566859875715451538797326624181170248162458617572634525338285028917917988526828362318354905203377727579735667755356282498211427363109229352313173396929156012988715413534493899591420285939871569769225403175810608823033611034127030474260536134792531176083360609461570358094009679523197931134354298291029633464244843611135046526344921560562733784462814453136390710823106419870853925162561539404438411808156326004729217547443190224790113735432458065938022256153077280447256395886438447468067777117788756175097609826548980561108361557684764496982508526812962512496012425786448586916254755898918080144870519324537077084006959502893881066605520817266112162148455589432318474791769316983531087074149075694608915372350388475537594036202165955398168126777755923453906551806744125783396651454960982529418705147059593509761680443876251492175137913250555614167841551744320781442378990306315082357179608561089862917937008816557125885739212057250003887949640180194176256841054812384300748750455279059575019399216191521532688869049494327489798384986819291282957683923141415045088243447313469696004004681945278114764263942647383424075545438476729980034436233882662049856211761462325547007729037903030253926153135563280845996986923584114420257849325604829479532974127846529309553661368896266278349225954047667960363454434052633237536116341987681578978276176534472981007803375468579427227908634023715965531845533032024537829604275557705977773164858319108182667407254596328873927513608964442896235529832334968559976402590907540254228090812843043771152067489384680960678374572237575740774445448517174797216437448191126469934801949627621176377560912759099067500927493373007883446985191150014457896132158444676868085757653600474377461278979535991898443123884953467864050051888874540508418184984379524671865666260483305477406319423839887540840089428635294835974370721801084598382496764421829495330194296748371829689180860323590649299658372267733544030031615659857890388577067041426107391579817219963236518118046180636637536531461174873652170350486881935198138279427214867694513056707118066777143463098617803579517156440549410397406769761899772332185010768034022754922135806319326569814427686703266907340893441516031120811948846470676418402713660467796133895792976957647576778474019731841421025082765299357959073932093631998441026149563145484934530435416991083189739329390217491771531300048945291237588213323977845278112023058376621055222236263787948969126129047378461040208632012870744407084382186106435528679419734628508099798485663914326754720082275240533134650630587018630982194369956899901881084187735330999719655780271312499811797307038824689353704831404853889026777355427673008256960818072178005271138639944877374502156551263398454535601471644362073361268223576827027789483668193902925779089779239997226544553974304167474283027674951467419987391292261470428389189679754877781068270084686242816122266855541288525066685891080340205978454997618426735245867945511381118023543786147055199646948837915333748188722473250519667388435291966234797100808272998523585016603656779337664381933774217273600211847331180113181906988139033077947551454341334622042359514634718292106097867426474739372045524909331288708461234682976051541213654004944481959098578789440384886113276606399218252102947812077236149288266315000359542671772565881973513214843048097079797335013906956735923551424124664157095779306473768414217379935889485646776218853046334049677224994750226693796956357609388191865283615861678638333208081885264096044004456202062631651507454368644701053110441322986609345929671719118178211541594667738284381437213220159802771740495614038470766226754431723318967054355590915998906030572731480003542393349661730093606729668234988877039609562594075800701738624235123502317903510687356043472957278107520749411251607691757974747517686114634759051028591168924511320563036814459899454009779715070065810179003539623174817118448884007020295891410509487361586335821970035285638949167657046081813095977987481955055964122008986125424886528362878446454816660857146899349040819455189535520665640217993646363504823506367384592300212745572868703482884074893074798338513318810487723075732872112607495968739380803459781971340532489128367301826687280683576405613987487810655143900783528635554901120586059179146377751593811010676896822211748713079038748077120138899532933927990606223081949829918998656190885833671790187357388697233829387532712840470813892139431856904602007078729238198556047164165293964124073674735723113928862299452418908177836470742513531446690506572851522655109241143398340142848312158913521104045993643566957441196082529134013403559254657309211642810028897605467049412975727374790113158057234148693205762686597500399918075523472854929997042359596519445012507461561940867642648287130785069762896702543281460795642966449490813907904085806423260012588844749289212543233835704293841822825229161349562938484044074464193684026180180710912338738795058430435293512884978859424208884749829330749156723655150606855710601224611583139326072765292177233206150979614066788991164367913638392465302812065841039624630145441411358174011554472484272259452896841538628262780545525010781061912328318058699841509932835192617596900473269485932137924474948506383360372213923434967545136556742161154179227331344044890106749857760677268984380134644438202582323396847282574557649369545270890416559420625990424229209880763634151710935077516358344838724189132682516709807827810202452769250108719210273887248284397693624722418352201458432435733773201685258350552627027990234093287576279009334654284429810117450588252013790813342430966968650806867215582463268917112083052313195747923422905557962328714290472388206133297988668782751103454094089437271369660566210677562979255743118751498824248091635623411216589634963508283977587962871738424288969106650988052575289773264904941013668867366226318210712907276058663835835968950131161913090910949024323210874941861928705238704962708388387643345448443398916461658778005941401150726440969080084800325602973057596940207981596617620770863729830519211637238184323207434902408444376018023620616827486918836503028157658041471193030540855898296097164873008056461194056958026867630461044328294019160735731579769315590875821864126230899724871796988161915522329599646565937396667004893797462780160588588002820511376693296203658165193921085131140823555518936804203425928397362155894236029235510217111576148894174762937916825506287678880635294321341261213303730677674968613615946604931638931880526548616194969127437828983709266372689721943449028443842663329842369244598911593746270554396734409042675041182409662156216226045034186473813620394135110211243326420124636934098277796380128943156279302871293058562580359906929264584099984808514855829960337773994725924554027899940199423066611629833238890623285233807668225454665971292321534457836558157310299311015292135296446158822725352926204880553238039534419312166070318415417041180345538572569637608754471289348649295689391922993699661818448744251539287136388486142264722383855255171946840669761237785744670938184063483653790227911839952064397227015679667341804580630637425531790831451492128761558407382770491338390722743896026364648034443066539393282677624477660148917333223225150759890614906689351517136283618104685479560608067821406482105433740893739310094031102306150286058739032796272683806460686255216224204138110037359609372340445336106546000029537807168721216834447336495779126005055605251026650843758104907959920821590404394597014072382533202573906764541431055204498573430772547289342705928436705416922399392798524989024881141583872673913901972429440753414634599059697142314854560847725023709185691607007573762645244240781336073159736433773136557302084103800450367040082130177910665985286149640917516175861630288383201423386250574926716811396087639348747867048341606926067522673050226294095195094655267411997907853948496278360397534733750938124367318930052863577352861077669597652466659861046136063687633449968197272578479332937548723043875804272158689098732201625179649481617001566213576539316246858792591028047837044738847664116476173645115672609939363626685494699121684611969718019027126388472722436082736979025949606771488966452904722665512546706747954757974090960992819585189161582748542722354781978855777706239860705106932128780229133396734490137123840728600081179050920667629347153910312397481892981827067599018900944073582837068513697762622427509856988705242427204232456399885463023292829513394982950416678119097995188443038945722670863853155310740866476741331390717006349578162322825317442392137531724259067529588352071678256579283269377284513050743006111723349209169215747109983017799520515575383802070889678318384672556560926316945005257492645480310209848142846666138057173525776368301963588850784443070832709355785311239425994813234003629521529418656697795393283970159634894191219728285539017361271285315138984799642909807264336356521828362326817145701672008736022532844144377450292802956580080467765625786713918461795741520737818162139041905150105280713895085667563095554197180454505210716627517546340322050474839063512911274744001268676826465821212205993546176234453528544973554077579913109228915660049274090316720092662057962987405373197338693721477728164020524443583657127735968098912813855747451427171605542115961702453392185766269918152456018722941895774427388846186419622230740515861597652441247404251525244891669882935235278504690523817241271840527815110153113427236676857481962045559379376143136632404468578325393393250011711369885410469477226778369757552597786850398490510922969582616521373976547610579614214673464815220349821095744148802789737419426665490924468923182141520085404269122954632428955506892761833595521960555820667804604773019358522096991556307204400804689178428544032160175599869042973014646817483884258082341203042720311682930081758293109628312854557644656348795484950468233476789841557723202832477736797448615315995390587033559319097247187441224742744491875026589272994346133012955200661974928172189155384335008750219187909501492611777957529521796792838994520973469341399759250477722010311733517388459093232097938033920891080178791908363941237552027159965557771802208535949070352637469419031383188064817688639831290592111980712848331785837927117490181004025007962534557807272250760866000614554032713798125838931783451040489221007703061413516397882376757061010059343513161958520866992162499299807745616977572421690787828549449961965915747942701674676461797194346131051476548778851477226501300837897366900812093741122829414406803587517935334166528133287222964424946551876573185082715003147556443537541198186919501983343320112509755916803844961848190777137796310566760277185015951216865739470958898793273372339009483528566758918898766266635830492045705267722105495584999543957649878449376718796569753083346139281608632908615516102582203313272274485976760886440649437483906928563166801915358941927446265677970217091817716344035389017132449995252289315542410388164080683928995818929510060362102959516406425384151441886754612751387911715683700661742816280690435934734389502754703378242660916456808556047724691029676111874592389132853412047526952506098336045893197438737701686363429619957937131117557680263482872687953618009166912529420108408169533980025145994523482284841157917094902349491202911001064150647535335674959683651469006033249050581890076102227777665480537221032203785498945304556640699556586486034260288507187219840085934472052540483710153486350393053937206502375143748237460235799021626273674780892501568970880070389481420922088595355782338245883533586760212980429565849892603846906104734632007208973983680651650107167188975857974330026336964691953721772721216551126338942778670573088306829105216982535754143967286906690587018933964568058949285763486600957285142301640078622000424976990312589920843077111424230323248140162821765734299568944832808628645230597559031393997571802672907543666750220685327248722739414392615112650162811610442419058630186847188825924929823421230894583882787259018278054052581379652369428002525077233697306618905107366820707286840413348674374733767735845901874920989646678887875777667883003699811463281339140144298871920878871580109832626820647495005702524864019708729398518855664124350089177929420640998568083218357054950687596692375956871415939834058601086716893739581085223462675274170085247823893503320306062452214460033627453612347769534221995115923195201836605647073021191019568026234151453167178382475905169856143626875792050217193947644679846580931654210597714723025964820854677748980502756120420153676905305124728767991302358035449024020440248142525550911701205344210297529648973241152967280487123093676152014617880094591515909278669087322170166197400762025867524922815372634099247690660511884992043551568883118055516205840882556558506876555504118822366126760334849104602606346416851000932745716242599664514713601580039714050142049948940320779191803348345270233426776176378204507371437395986966325051962930145964954801447664596384949723349468482680113617568702567847458053477069254544855774602407005218444253249499549611086037722989430952047443381344423042302073460317991329832128026745223850914447399362450631498218201739371284160927948813692796684327213788048590850769296597731899324909731064754119832085730155099680319985655423840849562195834025477009613621789676741082623273564049229634246724329912432522802405740686572476535641149000207256457086450883296012431832235533641668766289238293821793625956046082005961096769796156893934617568347412571769956780076360747470643938780315680001859114302057437576637333420169442318578737703758897802684205542998880027043119124212273856808294245655736253940724342530964525727835655582464374108658958822705169238373068295455973002343618809272816409589085539335785341132634266546799448707978740801151013944250475026175010916376108527570372695297086930476418387115054579646665796697671506077629425057861309927279533213284173400949952302754353258578215089185038575983520655763395661441018910846397702555393124550428552329329806747575995326543815743826258531409123699804277621851090563842515185410088399367690210009539157620739312258711702486975004277229300995009746335696068580125225110805721881910988922575908402365266437382018981095468958536067317694959560185961598318853003559333592904714073696099127106314185500453967809150005086498487165858200046260935095122019676540504241423627318531360985620738171710762679376660013725469480334976490359840337392281735508846978233695010148369618133653225059264851390436558028325781137424586356642106045860320471329669076185110585913876161284975103573079303804684826565102529824907687819468893363846573181384815175606052002999669066806663713934588920182232098819625560210973351636565484900339923387102210926146850186475454694797151535712160896469297763017853678142202249805297741364758098961294176943237967909844329976211560344943745155020228952700301968941199137024398495692206841819895277176868679665356154086717679916716068197058650254791415841312326515925879559850815130588813130805717592638547986620314304838458377721142735584471113087859228732649828730144240018041051863695927449122611917799049798660348845097553056202763724321499912404750666585794286159405880142833414133097326121288249196072655127008580867277523058382215469248581056261554214667503796259308947465717512553651775505998051019555479968546281712085807734194485063244099374845177654656824967953154387028989943657137333576570090871913596537250792667436908109213360893815943377458571322305076296653404976440953683296915767227090352601626460664473314248635220401643646392214260242913948506643107992093448938180573434322462157641598471022732933850014101192066310060235563149299702674005851856146178279520650603495063516200107631206516748176954724922627902889744879750435319519866591582507429498678348207565407571633647081967346407610545272028654666553076000353772173291217022582433950233735128880282065634225201955369400829735194986081860194524782189720186204011083716178421420211308752520214174264895204441526538775982626169784783842135070849075099441489837245300436956095844042260169089222506747340520211866551047774768091214253644135049651752518295745436323707624240901452068257874143175286671240453621171448312379680493622002129092420405374423773428562739237022105046915016248172904973552910613836878805316096306962012965367465015345842865824070348195561958198858917423913173954179489836447609302544390520609459513666553856747826998018000463905525551218194633413609533555070772099101234309071355867859044632691132642000389559547319177163422999137244705244400885006126647041091159428318634687908796849227125309464255206841702211504782788422488433201103399781102894377368342660564778355323972738367083856472683913846448224479432199651335134720142145071112199316513100757559282215210042789573525953546585531118609420433778815327661285170917838808573467367704949384626009184451568128258639298472259747749989284506977928352719662665283081044893612707929697367174161128281107329208473685103857315160528443670620747169432162570984378565238289498605541380911414075089508430300641340831547105455067232348249580791154917383670985826020433809853640925914923810323042586365095883239590137642351942720604533478968920950100376535849855091280051106994542392479212501500495297763977480804722977621685850502451824107905674081411606249360731423872136164377715783134854053828794707168754765338775706699001247596946574250440893276177908397543046555244110417062779273101371247789565178161776597828783985662863256989046407969289591729031834781433556909197032807639531954551261521808642217021955281040796885243319120216591458842997232732899204979177528675355432200857080520066573136390806677161302708734554087095077503719105383580055631004401038245478681940775106831607802808158046779539433309752335566491342379666438280897201943012457066279024031782034113782737396562664494369661013143545331930793040452296609243187332519862616511294532433611287785945573499253224036260904978282841675744228128183031285036712470082545166104084971221241480316228271218182870732354190971892965031548414275627651181688518250611305204276611603038742639465825072814597334237581887725031554435118342858184145086877394093232276365122307712245349786612959669082298668712113577635300231149701974274186460761151588379960100669743925243540880651270483505857190051592690891163249920890512487029485065215299459926220534585948709727864409864881502689091997584676189824643928723635935533409354945313042239313995493969667674497594153616610339645978018549640358955638896702482229800753243189398466749802177971389066018507073828684329600979143067344661976722403116657839678007417820056134857947767785041496135100849022791313304410596886560390529280187081031068594517571411269656120292352051953260907404459694138271308155082638661681768541666328695411374182114943742111083908513005237079822196447616085054380603760507828863391325478133615189022178705894747546259379992973372289626495764945169798973262269972843051909805116956276681373314479650229317409917060783084532797633526699918733442901282078396990887943393299002140907549756441853634999906411943144028370482164474680401865599195242200526514851086423723396820271035350513617326393318755306041412301413806780418073682616877601342601332418371789407691728032837812677860549762056235900261638751090814319715575173770594177716011530264235242088193828734977852126973817466585015009474895274508651401954631758195048933827234100721138688708393433934688409711703467702394444491830286134521768006102206135345919993275795815275661822502621885080009175757547456095439648647368891736480731378878024534471770194429658249725522179946591669552167337762539515365518901578626299475704795507310206200959481091757975393658600201175918604419698367692440760433327400484399068695394756820459676956497107642307792925236699224705318974456847851764639907011960084549792014115623954253799181576226438261993878771989676614662563385222628531813138113458727588233711387465571047548877170162983244507344074003105050612833208471009704399593818018820457267754716898034017751608068899732795053676578396808224348928690752887297287238212874584099134093286642577229538157075729401666875094566199006447793109926715794383945032737559965440397061208183178701740826837732811820223967768467172003520216734307664600968796445642148064469261791252194835035234958145205093005554855859189277494015934277267898900141721592345922268786563269063847944044142712037098737156538547777349533914647475744393043375069336449226833025508852503052755709756280352852145895601085999359257339007108382430818094871569067578048265168404407682466007135878287755581009222766163007429616403596559116234480739323450782510668924325792073262729306555868691485188475919224583641433783658507232934022288792348427712712754890997452701171494788277539415702403775631550214512879399482952941103029394653057234984873245529866882219621569953701288648818681301848315531949883837680974959257140667662994745604348143007408508875305990202130404970890447740700479177928942714588131609101697354234665960917372078545664093321904950645705865642136926942651431313141231320402722684103973044177590210634240371227943252627526857049148219681939207113411660022563795096716199401721598818519613248582212733775539384284904166925370572382268336756305457507855743421443003017875513533753083545040923291763978533752014768060623700319574831237926657745993282161079932687309126364967790116925107762999336338066653418592415485135611691973986353076630373271935415138018610527567719406460578203497148851310432934812131392308995532702474822044522531035495622610336382640169828813729131106146355400039185008824065434040725074304816131232578976407102557811931843923151805551613094462764683527196409727862535634659692700464175449833827313277446544619355345845871990031733720734383738241896355967918760123949370189781086988482663001507189479299140432230879519025606389761256284570773345800385978824423021501932681498639289334338467936230659339479439533887670961245642847424112322082451753595026741921887807647533981491134977913820641039887163140588053919060998186778228732859990553598150062106406555597674424116878437895224755038127292332710516479985622430812797462115217867010207604855315643146695584781377302383625194439371488242814891741240766247694282605552494411828018592926748087878948873333691928966395473178925055083967819113223428478782601708989838713737732285758468258264386177391002699257255529931496525352722783066668240304618430627321876494833787371633012040502581850200282888373120300700198105655875042611126870907323597121738402252715011687710062070606155877763335432535717767906560990806768275874284952298555158291398702984139447438205901173737716446378097444068944377657429822855261233817383624642168657116059559209726167044007677735618355217854820007511961843946560231514651128036221475192751137168223837686309580863366652312809591640548272249947846145754667863877335681524535542971061970535268093759768953717422546586776491424591896797520776662112364472218199720939710097110830532014642389659212871178120842267545536620226016319168569365075388626088729884072267306217613862456735831448346948553098809119184221999192294841987306948505142105483006311337945966303728753343599754523617055174949915167528705162017858061809584995457200935159222856210015407808182541428603354837148489973196648651106803562489786939765161328422108225004228675872711417033889953129962719459167262371335788267830697708374382859219448373206806312012094407125480428272058609807540633273465454344233544693202444922921172913643410521157605139061272277412790172745213205911148449436315162440826071867166185006724494300208860603771593213862863155625510139520515720853542294503448028688068643812893830968508519088521958240785195167790298512064114700865691507286266172201521877024996934610426935866873946509918226368302548551637601134100195926731592376749319720342092831222522630760010951386719020611051755190435044054262615641048297177222763008655635434983081116226044591279743542425721980944522695341222568980492028356866560210043013628750447947278788027694190877531388391958077592629426751344146214006776588077932927843727175106301957549322978908699342048655089238788128430048853788169366211898177712371091965222619810939006884463455582958514342653843809113341156431019871680706615286786708524378404611200820233531618632951697443393059171320430463600041925173871621978846453034176684934451250220408319360714743928271173203647356690120877939317643832580957987190377970384961088355983205920223029464891693744195125190154971660287682961260362006454203077437121823649270389413943416448031425916266940437933870271706940367222141723885750497300941391952482543428145934142437726209224011117368808230577197905761555812180216619897927477896942800021194331668299269650214382979624592117371890173008780293169540933725493463464750604758315616898588038210415440474329622844031344269034326813514894596855631707596612578175329253653468204655976168166507235503606130505069621911361459536030112765566726828284845212725247931762206104935100849640329227143605449627092290653041420153898194688805493088841657214592671662708942491165037335098583680938945196367479446889781190988496545218531155864916801939371775720075922071903640620098537129224586332256327282524105508561298011934792215520213559948691456127493792432349341038855776656122515911896930366302999551388266357339854514404083117549737485710047199320462894459448700636451753645816950649145722447001186468092975089045042607732955709741506721026652104934439223775882360284031446017561300465125502593799809795200110970442258853522038319779450076191049810643053756343917865661665229839616820523033412872244767049817282948016313983601154490764108581859445835941425205145800851826454624137469523758755422376644223074376860070622096303349218820980714140655053527388700807422098610677392968508006665522620136618624828485039022645299426668915381465183036690708918314349048464951487386233365244841455677272879171993216248410125888014418543390904397670814873387942853047444392967901345081864243207757863946478385087294781141074717913520200812502406558110498140315789151831873700638455880646592145076328716234420407870207649234098839702116674184363009693469021043582383066179706845246826552805214149363449094007463763946864489919155876538945159220837220778351941132101970891352445850906873713486749476034835355200927410871758480648223348541791053701914346837247960965671360710569469676751795846205334276009395238311921821112268908285135484651562370567948539597724115475496430684587377949338083693181708663902824345587565076748599250896504265248765314826305489427487076925501620288657925305668409838182597456015564640963559779293463172693861101022990490908418401077982121844235673233302873286877266977718407388432837907996806233860849140779179966010106193359766572235272165416426355242073055936829235219277108495465166676818771400712407218981681204242474082968678466160112472000560360796471426607665861578966141561033461584441526395084791954345464608626058838485784095762571581116876639297819800082489775035583501753963650445463645535530955601744687386536287326149127171359889127855858162551505292497335780084781714854075158497684197817061055466984090728512871089503263562874263703523449757334260692954772025185758751059206069349298450381562610231773782423243472590028446676095525808189428051265449740794860225664550280321132338176916530504840818741007549160658976747379185890229928374204257871389118309575186381381092052938622636290879739342632246787301137674578329183103875643585412174572015602258958805644851181474887563198901284523905656309589239670253935459751798386528033765658860150560218744714598738499870748796802419853752703617083838391686047223782517826650446623355252751768783840709682032768241785213097124788662107218614439429304866401681637803162635354817478119395178320368685592384117487717950561108232983442392508970239007034220132324327581161532369182896062053849404252811651062623281230140439659747928515368282999716248322218657748107256091174934845094937653127249279055019737152010342053418147340040027330875326253070453110255037870189202715002564788090549753638284285766431859989429577462221060750362991482279814123742873489251626506307259199023116131530606387887899135931461493880552403786801349355206918450260439412834384712718959504489055030679733476357214910746730544576929509005889004190557131624467527016962768194349602155909338655880685784744265572283531992838856862655515914039228780178524253245630919494005624702150049242352104134051097088578346299052304144856645575945987983837312692269705626164266684156818324058653948241339316349777998389990408836361723285250023598718523125732277941712817073843054486435470311752749370475891473631423808497262746877762638745161011776502799288846666273648956593324565567297464345304956487496116743457707618772663104640842539605042834128459180786768430234043725475306172279645547025277884065196387039899380319216766946575023991731794783612308507185870946265585570668622820368733326531447981474623234849618988783181709558022047118547008797831631926633472872229230397224604300224703768517806510131738647837204159539331662193803837637313616112069098485286602611671205208041925913165239682233148521773043529723128690230540614770258322366111487570606512690926771905667842101535555481268477298567068458108354892091785619621337997316539134255710507684795512093969263525032494030098279610283501951912519396679678085034795904928887930650374589988529278591525235750839828816065676806005249465288004290504147195396683434745229420858432478789570598063659663268765715152741120639471877483205038806737833540406125648533782586152915317111403273051621674285032134094767252736019360946050254316337014533761748738055211177339942684646830861890738022990243871059586271341276204264027911330428756645495941274464828457838526214953353921143132411602161383457073943425136181333899712345244011544971309982598325796856551261000176183033657396512317096770166456856931798685672173645287651928666040865638300503944322911090824826315106194738481557112444152867271400052717230002455678916527241689610064145531915773283480219147900128640573147772844433147260581358515479706500696116049924412554661886921702047393654453457073050477698773866198934859907145581635166358392515317882458004723048353412640159804427329930851284256713697942968257237471553145719517557950319186513652824723652006535506834073051547049493544357141760546579258595220088948687365137766868752221780530046762664571062652337764061693401351485333423338317147303148512773640587110837263128825563435579150923201437755630299667980168969846461375892086643665046012870670233186435563590862432185008955493190733137125529777302909883549798948669803516226044849393190969222078182848089089343073270277433524484692200580491108141265503278207797971783063352812204017949196991599120344882637772045450604988588895264555009479732153872448997718497783948793447975181830316997460695500345370554366654134325544419076991707072411904054819235903228619069012527272342078092686923224206081377578925220863128085273877207349689079194802491570561751294747602988536593571606453096894533604153174621351466986255814729096649851590594122835670864734083010109796065800151047794860252383519941654063974424883080513160921492892313527223458198152170489090427080850706944828943745727257573604178272612820895047631756189687022021876797147439823283582215856869959906250411665786430736441516282795837995785015348613986813141772685828191104500052878171523323664308119221158688969431297628345397403188262902953058199611754368781280770196627187685892613923106734234522466495591524475572336957323282365620243950051068459856987150988124826849797207122646001694085260500491410055588636613607177320240049317945254050926259515580213974601633579409940098499772163505251305534315779172598472271941863929186569000125875608562506764486911004253086016061977889388750989825929947177914944192158147252777049266180930735228190608049134137005317625245775655240216836461603300752697350946963720262207844954944427553982541336071055941951848008043247820181030849694543798221322990672592781756012991295071828959390896479283019855347081502229979421183543877885311663414402963603654254322853556122427498359580365027537064323012085620222080823709286970387328696798621227922355102395249854348127996006239199838001469259156305888917246772162600104754350169785931924846975681889818608147075750682164845450892672395708883465905925016374659721994379903334884188845762965487990394778607074665213650056056191943380737653263855852929474216664567044351003114368077810222770048070486658308494657581970831290611030523053972139874917888218105741644159176855750036368938671679898133303544648986944639140687492907965113475125055004093526202093695443733936163990938317427388308956556140849156355049927635605671891090698569085633351719284229643794885463886340405089547597795278649130927818561261085948952806804382637521871712801837978071924557082750518926119100734977143036834633211279939820469026558244544550955411853712602255831507047698163352012541412049118367041036463685617320946461455265410314445511020831960999757943692580898339302509309833440190262228766213612191127863150784922191706690761361680610627265041834329049304956375344433538779473259988465157731905400197419548871109168265817405248769702732620399298972898071982920811082938592960745031976228827543927778624480630178833770619659546116749826334293134238144580004279402379467387286589094032356466215655771067383284804888599728647570168814806443767432928222090253001441828889851992256022572505082247421584045734243964718723489809349327813952397546353535006091546044830717237223297329247537884712108287761720843112754258456670405643597405522053007256733139559729495405544025114946348625614223706165672664244487621623216496173331309764223712525390290305339129238659473587355839516496590793736295944877251164387493290203992145389113831561969634618702528349966821959714227857214182082604910713010220781381888769955936078130221641947460099205473651632056736844842646149204627516814432389194253628055956451379184144448273671353386280742109212027334576622842442694583433356132901416353993031521659702690962155435667695358775789535401325508981109784349853998510897875380213482602698521280064204181009672563080357253761681580498122862438222789192848225853408367211956303587945131989373832112446227802101062246089246749940401029509646268830964068213861595931108525028430376607533952619158955349991802766268922241612561350755260966657993840483568094458087070149800650530268331569462722689314570712895233397867406205230074567398618178996129261998788525852648333619503481698762433772405924093972698709975761641804775567189616984106715293499684725145570618016247085839911920031523970409267665453669324306894858013012646251976949476767684885774262745021500529479879033667621653929091754539813673824848842192104348379429554266497916423290030174610837772947113864964270678917826142763385611434769899001645836241115546781145045122080928183723112997662051469315764526725004147031760306661560790435974587887661195268156208414829564759883037758512955565242328833033205254963338899239315370439170006143902797428835539318951162845757409868035949969767689027614462844751334790758401535046656630566371325276445654586119931145539936308075136111332850211442212060025116623162915545730946959846597551107404364655335904668368477409216971377277638214538449447884084452525155659291113913597417985536710066210213970530762226603619595765991180427763526590772862847959383672329281070580580183619600618470430168796148285767765615354903347917148217230667188339931514767674497313024541710330268278217280314785873701415743356396812404920966884997864247834310029380414946023128247851189068142598859001238196553890519148491069165078664929102299091754988666717308567619858260764920354941318090023411545963034784713472527216220981897368984932532562329176814037507358874259398952888822848435143511403770844106690089642272323095037427568646924282458146849059796232753581520359031736832209829028818893358872452994672633105044519452392418213424100817504134608533030608766913660791690233218977483289028365883466598274762548416652558474671044094950484101842647693754422151112426864675243452921322205719999585514120763042992013528362286839798080467220147633987218718695416999518819068979425788837072593922255134303272090346114292897919069594183862375089193872436897465625373585361597277010833669769027451115215488654702110278862093304721053355407962956407802769113871669948206758311162316754441638725750784223019226982970733497755381610795526264852417546520240462647699620253553120230120097686462571140839642203961677127046867305491403265523089715037999806660119792181659643008113741656985799158279038729298032611648241177060730397625115213416799533988029015328799054802637370010698976058998304968578507308935661346111510381654215849976271206756624017837658421167809282357896595988530163920768407181738197456167174384695730364096657137133756467379585925353373952666071431331021683919618029791953872035830682692488250390966431317480077733472404443266250082698335545523679570423943820494110623562294652421562211431240753997232414254318796364025920421145912546808344705997848431050590142769807857996117563277541895168560967922324954482124288152278088948472127915360421301531857443642259350490160345797879575250490304970748762663643178752843419501914357807407028363564637426099496555750634151777316218013276998871726048303960640171131036432602796267863262253453918900918480550516498871979644057572631590568955164336513371180186710654912117706017070496987879285116341573483428648123148525175504812715033265747776588531001671995150217850534440582414840725232805414466462100948829494838422531859925163267172903008941556563568382373379106784774194010071342737997753142548129962976009509513311500820390576367168178286176406663587737966082934624131968080158097058610392807381248693308127108187866829267104562543958157637469322700084581672980801936376166085536299068307598651672333040791534324992694609769096751759636515951692153203842051901069714453295995487885073898384234543166331906581572897215240057854240837845135730570993776272718268188402131729854459317614191050447100324046151150056883963525863370922077769741583297818058094229511496908602427459817825144087876848065361396085451830723422581286692529857110580110121337909114146740143741970722691553396459661641002363787240012441932161407869017697551775856093337505011575426851938436306574060501306861462874630700852317249916825156103509383980141898436231579645104012575877834171572110235037298300353400804965373189330586134751320500575070628414519016747640545393130201055246124517499795038629318397647949309403482661725648467422272076069234460936522869535706063400794262016044068829364152729891020489279792636969257880963395488920133750080661192560454996929112120284002010181674525456758230670277345828442497529978259616161332084404088827210373239602171494701227104758889935153384548821838857250805357763503777840308371918883532268674652316372002233369764716963231595343337567194250488450818686466553622358454335085658127709340861700718385641500625023473888568444607626752111047106095444088970567074550588400426179393629769819353919527463456802206763936626628497577434099551227911160071126027073212869671489295810984490992428217041536349871378377235361203668871882559488351312006177570658283906619376887313559157368531595580086186779361237837754085936060524600908686228597914113326039480393679329718843607122557690677048821459032097863788853725224493548368490258640405441289148586431826042230250590380772246206591315103760884017298110372013437914085102438895636873969686380357531192473123194012939962228976172767568900487699522654873612982728873349594318638759607474465250808656545197773208519154718824803562581803685652539671603787497220194672951272108215474133212031967938599811196087112189907615539483057745389962147692776792777787281021154127164865327832287529982740838465805130585198965324780369703321962366355870104048242246993918017101736213681153256642883968372435468044412841441702028445361589086502914375120876771764694804526330270010568370455943970893101808198040154453652478303238034191155129349446256360644548830539626657864123380512118142673428104743704553477060095835323226475556490065463732339787050614133899542284132330824120374927137236907452059932400453176936653313146656551529400245527596385721542429789411339895758200486095567544751898198409852427228562253688797241891948722044589629108788102746128360198217570146538020198414031426851699537479669155777081962293402293540140980871511308751506809778935161363130323785213468928058701072205477782779782119698572500411423137330200041157636224834524798030120431303778625449015207424351834579735272102509265965015379892361585307168502023847637308621877817027025979281546500251722268807935493870059894402592395596728213075446010814183960460966394089070025287884072732048322587950189832301618836797436432259785839774483242452792333280817235740719194603989609390926110344792760471551964347693994287726243941338306111433521651915625902431361244640652670185444521866809884555487074838635852486536878954191145072318577887250449175053194006887016236090088575552115566695798693217961382988088345220642309968391741076832251473780399309167368086938500191752143626643798083983446834642164921202945927418729970918718127224993566661730603595885213531144373907199305080474698297885659322703344011736374837123308210269007783922816840487035547596311197831890897994707332102044885918961509309815998580433060914211786002040387601998393028300660306180196370831966484373246821518724379013855134062473902207059385519006312992271226448341529351635659161353197690189097640321705909362149196908886708041721707902027032546897997788266137085832437505277019139817944853085194915188304218579657879279397102463336647005769572421253985338820127811754746254963694859844852163049680194736123975361702693273921302955135449007079297382753310476539613639934177872681743248213630025680286697222993287267411115788627697037691840463716968375740795499676237524954587159883533718238624724478971303569159134381588840389497901252472919316164379834605085456075602866689009736730610496717653906420028000708497853963999726216325206831659973764493665570205371608120995447969488911046705575967919059282856510932093897879336580704916332613409305394977479021086904071101712613681954388274882002088208107071466885946620657646358539729425793092416501056118776924069979248307470221965209766158662095105991316351221970594212516012530801558785480195772281323384065151978757526900830049118867265133756922835851056887422641880276928859047951577175257529929414030105877553375235825212000561094839972699193427431206003066877645368978412136980106749021049154427401372983432034705313895133557477414041919564513636348577295502275037697858978165410805413577872214978051999178519902965868361655884432066722830462762808741272780801306501220621494170669904037768437932421339276642932411744671466514517386978751556522394307593157293610539138995010715013708681057292348610916829245806631063383489161577680773448151821699794502328856891963185662480705723504950915300361593437334688131941177380245933909823810708404465066676793142948192426273277936132473791897096365256274837740590892578138647659816785742720157612409845382627991839093613951690570530690083921070726827675095294318906616948592364649745520971615518444628715790240243220178472147775972424431445864007051708806064343472213438551822550133821264511602353919171790701534714946986802236335986899156729663423995926135225135501604648524454407058362410014211509123222551294265925408723824655243273852894979993103698655384576943089091294041472141951406537834921100152586497426078282247079717140115463015358685678370615691448190442891392978373675341575919889883796802866493000170631572914684593549578516010676851740605808273497033536458496873120458682260283708280318227289030453425001720300920381333848303341067187418590691047209530888143029764703759918116747930785547297887772267175005412116019761779201464522160240715367427430406200630051244579360030534207235665756500066467257713543126249942779049130429330869224098265211252465428634654665559545007044534183255966674878530320150396339978628469184767472900023683218385705281536203847795183712726437283790996507245579530134275607234922005864004046549499096196805926512423835736627610050825393379592108258898260785938746118668826712526081339905537353469223862587053948049481000914608434412258139629620749860699234702787761656302436250507315196519284787228847730850809542809081155727535361119895354252920850986454723468915748812316256426741825211371106560038441019230044355871635072605264110330474422298494623730662825531726433991981079311268925194494499618376865781267093420347035792898635572128017953883139818615010124623416858452463101107179749120171915061819990505863332372739216669129071870200393647734042798469343324925593631538212143922751347695353955005866398110567480166441898624270471343378507863826154978769122123077746753068814635589203221869590272703408713701948336882441309838441727169387241705997129235369374598311301790403149174549983494051715093547097740936655151618408935715467688086295905146182799812779448613184774747319102886891510551865934059243578057412528079950138232219144951882596264027536147655027155243538786809636039788414734258575857374836402703549453040157562132780329066207292920458304648837791099861366699403375515922931188267467077083896874313998429560127556122133897581717879419757157436090629411738122293578366356807253407705436581321973801592433226280552685070633048885536434436224685926921503590048238582002609004791779026049322201971361374067754924234140366316702875087303822439173759177359845838970869481831090533657403026797939872828986228026252812118312795756336320917763617562145624745202686262876154466215304588087551186961985543229732670633199747566168310841716176601607912935716296506733255821997731574271455596615368767299690698521531382197993332245515576856054209035727726252036626863086321450820151234383436494788938457694448265649984678156248962003450984353596261939309210023918615501483434655464779365595064834232975263946008880604174359979919205113182302488619891663146455196081831699541829672883236906581613978435345700750074212887419787353011741262359747240586086649691974687921809741163166600050713021604922348949397828577398819207850206940811068645450686031111116731623031011158289003485514093516234789459435500203491698994835341472058332257523024769806830739183327852748113343742847206158224470899127390314265449196769209916394469303035980006115253991402955417310245518771115330376584900113353142204251065407996588799806823885290427863053610390189754170778662726972193600308201264789411048866346007059180147073633893540770568746764185986307379985350370347242592453371385443970545259264467378708787378484356475822374176795188334544550242755600499226777313080996030831689282504668262981443298678682621521413734206675004212130366767983288864632278238834506125802771856302836577498878975555092870956313766997130655449030712038605020903179134815302112993964272693506572824659339107737536493743312545072916967957961054132610118492941493287945777362170906356061874104108719698441371275020623607336879882065711235902982242949429584416102236700349193188731425405640875760019069133476095074615399916790935520628804503080528862396362225212429798175246783954535107915239819148255538787705237787530497489218996501011491591615631198898671976325899637063814275126640635895763595391828908884232437321367251340000253845373480876463693110963048499271850179822730084980727479696182051676806400730431107456367726742207870252606303570819493478161685665663316806918218844334060002754072249045066188679583382758747139965454588457579664096624685558465541799275187255945158755351730286729242135473706027376498985489626101240166114338621059539433365009034680514518654232987609879001420041488232397530657470243818727534227629925118373564606214716773863826414671535937520490653633154039493366492954346473914535259512837976434741139332793415005628336345517239997888872863435041221247394463929866334435240246251052004926499895589128394854990605358637352156196130057137580053555785938882143222372879029527927092095553653203979562382011654087260388097882841734927569864015392204163234360110815532182906769063747312124514072041615587377436210662357022274760348602273775767524536892065215227270819803127527489930888202466592733682086022671495552159239222386133611314200112125188571065315199473469394780973614060315218536783326884201908440975698965483626741195317873668703036648831885249013079419793607362421758082733483564298820656063765964717261196670922411393192733554612245099533062279796737300289748573646751732897936370673913922843228244363972602185022574964276427067519477857717788282271392169874052569573801145721875865730274068072837481968513848240889213735640628270604515239834894627132757990930285650157044452935097859385514830595993037254733140140202911199151235230672305201588479343240140826927225307006187867577995895960450407740677101159440181373484836559383436514799684894182931405893296307442870553860998098284089225088122270012969594780030773479237539354807794105170641435821160216008342814779858037706217792030859404631815952734548823875780530265446144785677626705250783431266486708995897525791629659508337072787197651697624544410495738017090829967342183722418582995087648796103570560193163393474178294550077966203426964770056007559878417844919831446215843129423130715308088111498811329828866573187191015113877116820686838324919508459592731263645308744923073497423867864426356450079453248135140003740817882505254101732702105984509813319239519927751747150684526723614739212839147983651006011077480734426721842560232114217786341783932842538100113624998961131026888934323620399258745461053211260943410759941767917388558357209785854485142154951034634156363095461845913594748396830896770526205932650600692674051203318281367707880221013527994667581786369299595838154810465031034761682108192246495094802289261244483307267198589465897870158618879915790472782981180172304225836282797968640564157693530628853034790496931156231671234534723555393181919829953847671159751353895261809148902810757111740838367771416868205185052056677811608773990781788884761853277906119098306299051497763185868017333251804916846777511243753835532732436149726716458497251911964019507125740574580292639887696991060567579889706889398464282139563046362143601604173710123035580842987551035369572419227098886513947155815462918461074420773102267706534317707308063133163021187740561817776996878742711977579067356738860399534571990100521369242985288757970314093412770338099702766177153872021218249798012354028322900156824128761731928681643742444230507619679000593214254615767100684868870753987687345733382304508393574375297582444016770331806260171574256758451931897698202250724368459951879770671505951251411805462185957333558310810903749838489655099774210911616757673960023916975236245008460863633713521933192086601011881285422105894278833576808153333435261530013058118970274380667089019403657705849690249903781518867024515063656009189440771286753901751798503981625175212318210539379721081332720002921648007250905716873765354768176627046694672856187281886980201295127911574767000630822370041923340178268446934595479068103509969042313838892530393807003169926579654872988778144515204381253598194395060962722462666006410302987104250894548445721851112750134768991408435812159062614226682151043114456475160582933541478313379136120195563463916829295757885349403848289764284729126933146802155527093259124948481556640390953384083503138964909555488764782776740261598930806250845112672696897443091123071942800928461089212122680356205611427860419254335487862564367631345033099397317028645596833038100306312264440573374195935057191246319287818406344429770766525837471000854089529184663163244882863113848959418411304245533552673809445415778409740043276212011427626412010095277618096242336661661635760640046836334444085234809209763640825140106270285557474068746229666824037708052220378044687477566016035244097563904412229557792841768992181335432124643667166270552676333884850255188419750798920197526611113919050242268749281883384644975788965079348635085879150823912160103473114380774075627796237521669118307261108084935254331417143349810676409585190427952871566391470594818501492014597272866167043605078275083840952767030211174855997123574772342130202089795775369909087271723022257046659579995301219455777946335495114478373445978264712337405169892777831806451765276118975984951897656696511899752203390874886765521484054939460676382340640479936069055995432808098419631774471827806784109687930719710605639880709887648923635712955316395877940657728086560368155830683668882184374146926535331395788038895676112621695556388112181583932988477248874598837420920359649726544788992777515725428743502156404391188809876905123199697875223980788372582617909254762885969732084360214209004066404662475216480292521647966688014785553368747282722995919201169279055757541770641481556799432186413252587354552252039678404057427259501703470149675476456554651936951307709742359057088826480684583140212754576522263380376479162037478242057614568278363842695021027880720557392007279627121087863024415211953235377429683383121625350341261521429097585761218268398985970208700984254777708411434261669936430670985765437073803641614010898052736860112127298870092432891216150054798828213227741877345026745342099603618742380169804643643382585990888999482065918838974934082100571881389606848567741611664963034458887366483092212520265167478790535714265440255558524678552479339481191710826398085663643532843615980145953970247451793815528708065233484773395633364754268288017626131493717057493162013301402913791085310398879000200576944376023225311960569905421262055039829731978903875433479742635257709874922258190517415640968000359867790536065286045118820722606558029136255472222934048850650613470884908978973137819040481524387586994725601999463240133404001940229942483491480813338812619507289936964642514741994143265205824861728218627574954254414744296118519360996269163331248948592169781221271147125321011400508276214614661814076223680513374823657721814253072112225154850420470472871153287145078142651753668509026698394627368695748274429842052809440514563147690004854582992082897348974915219677279676489981871019681454495362706316575889139570067889404493167773051844293096738677325239719642678397680713744040845057975284408563341213718130323392696774962862400075410938086349701588478972132823399328690461246036796351807376196020245063889342746553066889592725568682451316231631406040861825970291463904256158819573863044141181602397736280166965881387801800146336049133777133574944349689413924079229051551293028987798741383701698403020271295447991659029025779933176400769238133655493480349983254036827546698841584603392862834960357547477727366204466457968705689902828930775204429357329410493839131719839717980034860904276221772030986669052192345525592309555448303239297677580202317908954611362827994753027477822070597218178854745393626579422187741280572937540536748988955294275019365807701263049113772401260828686971424485850223380778534274422325970189974794931747403265234909290474076234282855448717260062219353672951340062905326254203125384275896815350033495665858460533486288507802812871037347124600840714222783558214278180524740011522709800863381304669218158521540736059093419877114818560997003247563407347353812501008927211292392325831294594655611259764852751009437245932756725323801990184808108731851631895007310503580823697246176436318269909439475857895489978320354114252302321856141436847680517672202952109109313436696675794250165149905120831030826213883042774706683734910243429651617311696160096259571999512792696189619923128775603618648405799047412430463008388315035633744343921259214080998982023124228094949030513335480324886607581106565469614310422904695397082015644790202194701261287631821432818568574190788939614878109537504302573856172845634349718333960047400392953526441453521137483412127606143747170437831380745254637764077322097661238532494504795007041907347144712768245344098576634005109673385084065904956744211907681779499130622244227067679830428905725557708593777077396903694495100023392595798053393585898310817916403881469756084081896458700874071506880760559047277666406970293617540911530147906265124342665813437541601254576521749370763298776373038362591685354077746449217789732496493274591343301286927853940260849058224772737939929522396585357531806410071824287998734934433603803750417953229188083249736590455775047241952406447123638591840459441695376017754502524753178682188662857433466443613653647723821425905505233238241153427365508269982904781490107248783286562097960903433952172953271101869062141342777379976274078703383449507301541737530748405297014336277375618156267375128453271161143049821360333835184038467743578941173190896204924601290681639007910563047999315638267521977373376798254077565837552903172732352995399295236056005052004498020829580442402100112914473795525848739760734741509437650504814696336812043621716724514733348320991054018131615252745544553003947099518537617663151068635062408173255701304140604241638876330761732385242927361122549082107837890484513643636539259727282120494826185796197378013639000277180868197357381109078051022682822994549165407919014019162080730458354738882558675593789503252446850972266607069017744586607515276214683450687709692727148171916663194448224848232926659649762467168459139022871151909847894458204066655980118378208955441535368172087273400816306020699878398508207259881125541034563646069530338081891253485306140182101666450561133673960742381499244363704117614058714652292782008651012126748994730249700993258296073349923015442885189707753783434225521312883404888233199293272786344693415612774477031770498002477415519961859951971850431273746381304539620676500339917806074412953962450272936163149410256225347199239700432814512900777531409913774903153786820794868635414868600191294919501873848042697820637702322363661426937682993392142286305248841278508474107596087923298328706436592100490290431413494472360230247295596345979646415443904286305513954644841959505379476625644359739291971355073801690028622282646099098917669025177263242031708531923791725249997596856557433107162919668389412493453726782202326451172959463989451953787151889619651781268879332341306036227482905268828328390160235626390812226911499761883412725460800386521660387911081604830787216814916638622636404573016538516126106144184321207407279470407948427100757550796707611826515006660898245047453712909146167437280587749977282253281856068895744338022384174187412581119754894382052249869188924265469009756914179449960435983037209561135624997286944056254473722021431241471173984007277840686760455189493091009671764454976023491199770973053467622877140933364719768040313817950574485423336746678840853334299868440253530967754349506290710499506356071105660441106371969536897124101491890755065370430876568805675584839057252373091198784329719315861614536019525342490932473915243202808104825083567313399803613274513417210087206739530798800405968642769345608570289883764613656557462282421587935737478638731890469082054037578407264637415501863728172361071101454625147658831766836398759147374985865386407932856303244454164696005638586102023534359120327121121637998521350409435220858778456765884430290920587697139676294789442022600174852717545742265640274346019316505931661463740433461617176390844219273628961580670497335756787738866101522611908354746971109357743812796225450586355065582567432897285614949859098954202941671561526203069532281028122563211932604217965507576224993038773920789970307764952276808106492978390009646038032380589818637533178607107674732638932876237704691383601720945793268945310762904542049653293488620450716648081518624116886016001198701102132878963065141167525504442560090332965334382705419481562551427273286024033648970370231464041794887933109405675439319766351947658211217807019230647181254487710847110604111020809315843763096633502734000039754780943968026276949893865269968576351845747169056311938196195103253088909204593059881307550317725930764905127736751774387424522696082882349096618421870126352164482976184307036028710788009689799762256665159984668243809636540693849911605931185984916006313402427478049590357125758119134919211952031987530151539993453636455540638134495570861229351379990160496703748948631808780755733670921630495794403068343637311898007228699435166175616902267411185300775691022162804237875549624840583059310558656407973892681269105271343953928718314971701794126006835769650368971764126917018998601222165434335227171658665554104022861689791254489447358217740451042590958306913311644798693571836095539649038405066018109424841631928091505497129713030261878880854717077106512155001092764919025545333858231618091322083465928982679455708046350198739605847152765034127953065023641467595740178518431236394352543837318719951229229041124042210414240575000704256582793410067953746455655186782171738587209306120095053984122045269475365870318892367255635143535755933234211225328585838332965119134345222176510575242349175491448205964014811942142281360998844731175747970724242287508214831187237043459921024830986038979074320428651631484357809030549309922785714114022573862818221003141828893044173336582473198623811855512756007937723971053478550919557026173977574274058163798174265896792516683889637684957249083514648578916727956353779392253425586147052997577873885186339491245729162510073519383906222337958891391918165883446237366035651757926502558231362352484697985217273901791280250168524007988159488973210371664748613622084303156854819499000076437086867765113058702756555341073004553279603790718533628163017970061796962474997617562561915388075887395133314298142790193343722855111918248080981288045571496432230082570265273985325412199918122335421471245621760290155961550010275825153459317868803747953689384171568344193019891810650384178093067313158909512044678803639367686138703866841774826019089173267871401514900789852000044563576814408300391408717911476878845828258027847926483310701861273487260387060572743542190062710519941549418985646430367766570101895160439476016066635251410409197562121355498736455283030519227410648808243317313470935285886453887195857620608735883807926523678695704715436427835629742170055681323633722712034449906625553348886477852708711976682215288795391819572279592451670875680954445538739450395441068998612116664720890369539223593738124573772837648765199130593856751987172932610026694868847497629561855151652999783518564397540217948893440754192067752253470961924528403999614756565773447669298618909409596230512294816788961241689022904750881814408069076849654066594095218013319663054367139475888259761582550256006065499228596556138505953771823928394448697503040747624245242253041780420458383045815295753622451188912593488011673968960634284389493302023006220615602547749958244054687637574574448645836673322363352321810445064808583917907509280243939632700388646224391385853195158770797913464050645072306716265091154240896397862197646997729254258341687546570894094806560045263463788294070286244589528999810884411479858786920499300978378897043570033012967307980305852097104777560876927842371330662867248639066488927285045999305449079743767717463274652841505612971627852559822366071005445504192010902579715730802275487481795613640025296069684687729450100973389866655273977353696844256093353799104808044477147836350532981167021769401326800187515617232506898297177939948408176527147449942825375824789573536871379002363266537306159712666834549279057381626600391730694866291156060849108720542683989360507264898891903967624633362505338260327476707502835976420743909826206864032267441883210062407587367281703779714431468133687824639502611663362366436148253350438184226903830201290431008950157610827501736926504927037629566809978464192764504381943486288326573562333736439018752898838357575452234294223346086995309734810078116290067895439517799812005671728073432190453185503731583234067321091703705741369236195944868458299886852246653495067242848495118757866293031795591800734645888742930152943717805036224457497257915415923854254851188306706225587876412528506302949365384370141897488024632083981216461968761941958447321395106110684521629366439110828380947953104005996312465087801040425541339075069186426799458681003350426029506753690114417256907669752106814053248483056692062795713573217750404619235988044938490618489086082405707510127482155772238302548413007169441298593146571030025882282348184930495268147948663874141859252939440516505894058157882005239667222475737246782252084057378951479062401521756125613798394147952929933073677659685054781978563993341077853435206445476759028679454993297285095387290564151243810863453655643944176781569567549582749573031476023306752247305587574055026006329524411092156379743092491498562022027117923285064231342093361548000186200358561534216215780006997185156487579201379553041202055578225517773216473172019654823713755522519538824529821628250069796984368191801096179870612564175613142333037757532051234737585416942613491794296008391482260745346223845082748884708084056066609113621943136878348357011892268141357624890073231639043982853450115128912829688866127882996594174393100936403430302281750510086360367440910847181689844316224887111431610019220149375809978579375895108538563852446793313265677341440874590859973919559005691112602556248101157409774937440322720944538801786613999729943553204759200645282205019604380168282640454328179322290480857738173514242348203332345266110626052946339988848285480390584570639191319889940468618547041257610046525796157463173764753980880838208442023093304369829511996771998207131393613098125055128090140308263104439485040063253677782507530484186984380461659115542665421674180687503114167354763084730550928850040696214405256754364557649618891331813565419108100606867822251139161634515768096126619886617446877404598094332341109622615244565055515131147217333712800192996550145999937549462697414919785645883561175036655439411739990432403667882862432943268143373642056139986509074045204448108353333304253224058463087034073418042679969528918661881687756073647911504574324724755179143326634123850952392029430605634627410051698263526498587350144180583799753257496788597556422835388544581191742763085062756332502206681118926603600830238543325135104688288205851822253069517642159833526148326789161114699079216293621657702246587807632651115435991141385842441694214545402849142902380839025803529781335499278147700195446521762770804774056756004572439471278101363900454161863490091157535799665077372850934863698229032239669253075529149934733118707814313448563355438696414670189246069941910033056827784164668148635064605909062170198855286263201918180342535327595578335958756381849874342855868454221065321290533662599754306248848148590318952519405699526897265614283973869123951865773282989516027888055093702315522626856245833726650231542219773118104354832000805486385657376003165438587572544652653074009718521499415570757480698147977502035748817882719783370288638141839643426422865430414571735011716999021926186567702340575423448105634329074858252251434203008934606406873728861382506446463744446285821763468748741724582838782216318334316852613058342632147320337235713529794009177175372775192596024887923897059969950058006913397584005792946162055673155602622802352628620296918826954346455089502247108357196864671441486713191806596676669679504171240324504933154417914664675415503436580631489771620921331883964604976883688497651669456578448732214975482748247447148106085523536692731811258927510933450503186131380463899694648640499335059230810637670786935592723620321182252571381748725988902063328800234986138743972540520864326039083183440963127381333788985115229802888662610189656546424289100143015732343581503407066085043784331804130927577989913999366422382348666146798223661150031277917200257598590299237378686355376052605357925788291192140847691920372269000070545158569013924790724185594551593178187613011974340324885717881825730473768061854337864381333524422544821140978442817240448946427614401047883862593482149515920491285406301750988008995432885040640832685207380245308520806142700473413274771977489832111691471101144308960480592422214975301288791715099856848674216500387076905814194171290904919659681812143476774566761630604873088600495121521097595647962948104256207403693523112806624956001346044621663281646657804714705536373705516312674522856236942057634726850029681131089026991684241281189284227487067523989326798979343126645056842854726100169890184356539145780772756181292538952776110355063639518027622056620441718027672366602958508186815364147570565165657436484924336037078956045052090892269108558709527251643291412770729201188290570698040418405021994596335184294893761484230105440656974239084155658580737896509384001731740162446143029559668185447190758705620573067961540082812721445529102543639332543563679838178813100239771018301611242655291279954479361978074984828612864258116387321591175817750506093565403324092994677342982236014154673213806662088029233883131794454121280388381013623462225750603447098613434960956225446014963817161278078718431711032043356856821498216300250098921783220440904008021525969810150526052419721118734729072614018129513096894453599114772097369607574572961249471185210503576003936165687961703697024413504200515058758368195223046492660781760300312600933720335309238772050687695889439916044838101201782432707231586401818529773174167999952690361076707757481790301446593581929237700665453378236419828342219922213294097098302540422238137963757740862744528168189610782918515213368794937609556234373105151478611375475855158092061580312127907401439536757325571217089557730766204411450418976376743719240470948938275361915788385852151795020471108127278359404029633831019822700720374843417388245252381156657602892951351384054599868231467102488638977064869788423416225533823683923080563179681451262471427391386461087004907633882106781084343375042385379150707316153141807143644998029064864957785758516117143439428239225099433783426618602123969803820431739469445397164113021676537513667985781957718726402216305674890146340390024468923287257144070903570481370173990912971094564528887949573074129727996964691584471774155718310224391074100184608641635277956758866813317398322854646688941619772172538984229077122126460131123686765325215394527999653994274621886048540056503423259918198622624499150594376729210215752568539569188005120407819820940783536697907073887767015407982593773524900774189046254177999968055012859037662941457547303452523356393033993474982490068780505472207702428547805327902740090973715049580776509575408843074005870760149511533061718357884470109008090380718288759406655256092251832466607880646812735255615271372982234736096522827733734503677801078646275749054619483274284791608629023848831901390472256029058298879123817785776260206675085346002549692479000154800908328515919128395404934470198434969330988317438064908841186553141099267995633395501425135806224277110118250225410050547957754623454280031070429128511185654842362535627047419602945214570653074722863831655029960784484092994963134884765370692661818322876042061176800083633563311203842654108174600475331929423127228382643018595134809814644064569983758109912212795487122590284603778235962801951003349612594981616527508503800182973886480667412519496456065199254096632283372488059512373037732028231922047744181239414493180503035141363588746561017296608594860535188491662474319386226745292278680350922865050048852240104433585570296717783546536926648754884546811423702976060101135982224586383156753559322747433345797438753573140868863256435395063258741998640500278946467700831041676500335176538742212674492237487006463115858252077562523303831371913973918811433706019359680906666152449138889570994665996173898459942602017872442015818305322639993876590846652677179202477186080143287455096726247193605925339915476189838837147373776112723604611952257445672512454684520367651275184947325698515069119665967933824246042045628407782751189103378473854597208627397769382470522632701224720822490410140870147726102629798374667954553418396466439643132710132130133217376824257864967374984023327865005935458371351572024364983739796453237353099273201932190306154403092088548186412597637009699685312042155833081498446896535184062977237995744381862576506585488466043309261371072538163933829873369439298756668797681474213856957595897915558509576574904038509067003703703641223534292172576429440357093167472094061829290401726324137714930322964763128835103300557899345995852829582879166040143732005412003025668361374905289122192476063017955882441512607850964572729318122109650427292001145832394045894579729221239392406370423005027580808013876266367384970120501139008209927065906022483211774326854175329404316174728141755270486059042398458574310818445600050962458307911123293409179467697464155832607835904842135120066911924313685548849228468068328424769989932704783936073852267610276980995826805555422594762081179979215375403937678825429427403877325931159731507474972841253329520758739061849016161386879178802001824992113071549328468910961846008610477466978275876518959438195648390126833578122490692409352395762816151099032718224880188096936914681238774014337382213868385107996219049938134755723106404941881488059932436926554027554265234396361753974772076124345885747276154510020932583687460914361114706039809883680912432902162003786595587445015155104199765375760596271781803667308917762390956310344557972227989214855405084862175322130087245925861728008921355433187167219461072667638453174346391521217246589574773347008422541109090499734583805908880420284834342800794284837583939384574684557926213671400861008057793887273349624328480444915084652456697514519873817745222794436600536381516967356171626979399630067013389420508505533128869680304238057795864436712425377592192957017654078792844152853927310439708463441823461166206380119907775078572971041432239900890131592286091564547121358229436675636781226020449173200253039442309220583420825124781024168509236863324274754273666565387828183542381124564058084138192858285952124700910426784165535870911830600377319528608006117411560096923271158146731141411960818356857645134412508322820061994287913542849153312551209271125353344021710417161550662768422103933681048201689716927561217396704469997152570902751284598256648108251301056341452071337221499425195692257164620599260117942508401680725994899828195247263960236180791071502923098360650527493379853306933157375476798060983388499245315136841531439246392338072521255112617041651413827774394671963119619467267761052159142049808103369340500681092213371208376853024662623740436603249801591446764809914505140825321239126464838219329626942848471718822179026447104576205801571599916490967250059569040260121090168684853926742944437889713230291939153457492612674701481469981849622848770365196263624373800513549074152575860121826525239028480633683420206208824053868583490225683046417293546795844642835509082639077075201617390910560984773331423759863609707919954248504475570758220679166747091186171874058721135758220371448220003952338459923932810524708614038949102047882986813003929004923796847146974465523072244632300766499232853500534191511614048649343887830266266623665715417976882379101597444795421283672846168202076599057157860668670451639592283135603549750410004924066626982108737472479842928915682806216243879985023902727846602460592399103315642121501646030795026098861409139689760067724588636885957872456971936092364958090994973907643651235748681107989189289022833803915047405435649711140126499827846411011185449383720307867137835657947215622312883407443510192618530781617622034036694950813370637228060920778829543558935173451246147555626175680868399687959954179881037682548350362326982389905046751801474936485921803969641907650409836937222325224389355261852926089796002942549156868901575422004769395268601714171762837175141021555921495214288040415714728271956947388833934091587748302205553694362906159089684614059195310671720015189670809182895306339116007014595928482434124876670746321306803208922491334953162048948501189505120460042220606572880123130450213657482265380789471481432709376840882138583732820661507015696470684145229852773785517522912650347888996600810831494064819068538003991000950015377519495002490890982671516600469180606776147285736519669040663997080513117934605906536832267549040494775774846101207174566868907580464980338467906080109444817473574241040107100454729092669550279470553184771876531491880418804460679016747008739915371301038435002942854658382830948725668571227090432800770196203662911528250067121210321350257459781728272809302098951794673697115234604215201550607740344346403445291567346465646954175298063981665470833399648847346547027032017467238990965101848036902896005563157365666493533409432558973689323606771010726952646315477926779403592117183481593308920717904482436588379946781067811358724278918752297093663957103794191228023860940253299179257643998712241514845698000135586741629480399311907182971854463492929833841019855252229385842286222071396594345787190296368779717387899224006022734091072877951077850234381921578292856958433390909954338772370588119601541368119666589304582778119473112953374989478269909208070599155499998569187188692475320095363762893611944142474211127425897276649225343890309660293311486165623868024177626835761919218650918787725932686964723409573687716450744656508094425440648234606399129394825655361772082223954508553111646173267482045590766586813575033173980350121659783760023360391006003155618492646363310916153549015845545861840232931049023211810158309512650801143728620773318938776709605740630680514829379428544532680451029984905879920129412093243221757861278170870831281821012997999292515698100880196708409383568786079059584448509196136287982381170090098808456905010985674588046606348982187808568414389075854111990681388809424710537480012659460161180581168350183949523021150705252253037177787971626469628922331058768061203561187051325397105611667689944238433150780311810482206352031267655458432059738549008874286772794589367082741712531525929389350546900829264358720441031367193125161350900032644066615036168167281056809328700042970775164688912908801836049868578009014993612164099714009152474162915220683687318710378725777746367992632180304290741874927224153644363664969348168985278196839689475994323246186064954532088161727784778320454402374946095584523122774542624982813292130147683014025656817638483655204393049830947435918430849473728392689801302253487846604829783447568461773459783499177344095769753634033320025935595099846242847807174194035698897548604863197738070666603175499355531016088464190873483965732294143846896659237899074854161127757323812670594389394352347074371079039351215456913106542464719247743370708578936169366396914941571651605275458742738833019132003278827357256642248649847959898831300978935488338924126255090474893627767426285343513441681754027054433575587654343377555745552642807490865165011910212102214617867354442836279165075817158181964809501529610114232436413951778578469518000443850844725302335458010933068411020125994424807240989031785925264459696011153296534465798763575196713411577759568604843728178014956341433379037365871229989658046686033721698743407740939922625729946070149405386802817786354767898660335783275762157830840472680879287592425595212198645305072271356027241253315586872310609045596869094174824887231465676692968145746394732107785575711909737850286836358759624272701628489377139888636903282226077238632019296140454746752411603766945408122709488030728051732120694625215896926058387115464229812172415848350462476433493628018870747323737393678666193338394528211361149383784195165437519167452790101104256515256849573803045380788441797327535674921087505307346100079709742439510139270253197296097375098268523146283471169252148597296841585631590210032510418173179388047216992891381304157880961210664008405490664264840327338414503755870547079655869625549015186007370169848760254999467031809958853108031480901069864560750554701745929731237972667526581842016249350516531166930436831485963747490835974634801196152067798125211290039393112669881610282196386955829310438068594305318491786609449930977672079390814854231893781438271955956647743288370159070784851870314488479239179418068877105932988536993446483306602732171210348383810582781162752063659234067443660607031171421340743943496712310611292328198097467184287852421673726721415619156320920977076402165248761445216444657602954992004469330230322552330707159475650219145911550752539040895550287616557623015769457255873222064387689071081935509754716459990435224443155919199623637008141813494702413917774161103534145010124487377115734468214543428836032844756219862463741888059997968424377441787006225385774814987379754829182178643218826199073594428488003377613187511195474261759850945993901234478321284962158592456623211192807303122982302280541891030063174901040631300999803253765718376398690573733993579034875737242144702249066726465739478379461668179208548923848268900371178711651263374593262374396231657190081341217106730725205545271642672948590241445021546890238648667950247480734973595046055041735741005950095419580270179031676510348786858357723446143898226521061232474807995117092839762353849834805301766647972409420965301577257869592291755017362375006663553155652753436914019124985562621161577476065725414364965564917322301639980493716653200102761011225845671215315291713989271164830894145982361648742688934834161783926585720740045087015968642561393483125070769573549356834763157942162755625264597032041770324418154395055425492764455085565453709757528609916226720949162765520565398223565271753193395167058797550912311040562973257033637737834252921175032070056234323463321546878385215305237467677486497671951113937346657722816491445522897697497074706869263706278841124341426326347897350439896907360912885800166805244174510665447956422563952276498407097647834455325893760940890756376110882532745074020992049641320640023492526992619364158503082563504571230535407617426552585482215612265862725734675467825650796531339665617613071030412928105919190353585185461831714339405660556634806347706766434801937826249188636765610812606736046777655664970269981545518387381603944729627496118516120782227860500733221818012360719138625953971240557173546646986873942586395911482797646286192584734148392427230597186583183945484554383822738653366458034783976188220601269905832392441948657903288175390334997896360330744107975247252566761967077194242943225328512185778079924307192753684916669592043814442924644195044945490259042384587485268942969956547732717945776107724494892477649829568532315044681249181787394746115557373905420431353930963606607996718975967476511417029979659511753276407882436792958836246903218212436726219760229378620991515805050225531762623396247573062833673530134626109739961277229656908369551287291982091512894126221495567944051351463924094747160535636678337124898696912324735361369513565063623780983164830600734682894607050958014466491310390550239663096059887605427468684231771718293375905387350685733767744786836548736842117356450118914976667088623650855966033191278138713379311953864963910920932865247659995546768025754262545278504067663564333393169752604313810702200485111597979098464885760620206916822672561225597822653508922175946347687462223271075216596121816498510879238661346891316322724457549129862790531682808188290644762701742244066774763994704498353830318167922325059044112177593863188108382782510806199637268288355401711607226342386330147423924778988158960095565014690101641514822990209179566619238003449824142755304554853946223288235362219034458359484566757657213711440631983753182209211318108967188502244217676701773073389623391774734658181735243524726061043126446841530783293128883134151473690608453952804389074386425449725065695207205562515279872034990221010207698059859367184067370695183280165270298800227716408273232943187738288025627336371512937447769960587830153404395790093636054079896328968339923905787975191355750817400255458935600364266867529229916601532045986480109223520903096768380705942716645903827357094961437323572585371171696575361321931089843412710621691286649788364615103798515554393975192224171198270854201097405742286824077368699596586489422939591572299973952108375765158739069503436135986219193642753775282903053703847223167582473825000789021788426470413119132774070925586184878494491304473826717380626958846174945012192604171841566102527105117434463788387207628297476173810116782757165937197313825840511827966769336709921605780133188186223044503979853978037285928557703890901887951221599626226420725892226034052851592789361079217144480597317118522627218856168405809957387139002083239174108690815167844501148219650323087967939048980096485071763898276226079539974537625783965491079625493006239689567103617466690468546704950222549190607907703535576588103265361881081616710165679063699320308930638990487763663867883647348119328818412528190575756024761373314939382173752336868335539396731228512928487985127232165580084116328070382887919207566833516825312890354016664269494081098121102658069779525460985878348288117852128478085390734182252074247865929935725473812017750651134600876866137185863772701836667954254308538728630369717937932057868428401158833983112904880305210259656251422497645290651263299727949680789043121472562343144993948921271267941090525658051550722697337490059516816668309266638409862032637273793195903969462167828893585113581041887040295940839754763324521926596909905235221480951481694012918794721861157793519509330991344698087177761602498115414662579139783850877788102185348873195418095125302165973227304800893125149066793414160769862731631889126504409032286874356686165963000647360705266493056017125557497291339221077657875875104246540437390079422842130830863475630204626909209212163981208419892221254918035277891761008450711093676139827945882324603919627411759365866140365584271257309935449325059552837455515292902907499462675160413994573962858188813954344634382528964972055127178142319390817363147437145764009964206495662928681255553317154872218588693658841161290206073529270687677869209066309163690241624000217877241513250563093587367945231330864628973174712189055081220369605736348799942897738337935313744276483744880078060173039309972393346035371872376046936399365279096689036477151236528971926450636578780303841527793636332961252659662764175046738285455532901225608487465910340909791744363649266246598151218947176576648893034413445082124641378629518000097839351175350223277478680784291394429999072050111501537501365976084917369160751873135110396297803929753865059255344173155132066875894720264313627887408275794558561633583495549639053776853673837253978337538710394252185534141763367629432994211198823119272462441185559048010807093829375927191093373221066570946264790611182616987837412022950952472393280517081390004043828290232181865641006798211069295344413210763815795784947541212936892177508403643844810536195967410776026401802055958352270641336359070954164402892308051625084888189780734322112013688400647848653779203674617639584814911084048603613155273314917423502986981982499208063258704244248629403534698996015032352008359039109578984848442781121232647323400881438944133090755877240936810635679620148424595337185510662817397096370774115166799242978985156405441772461516809453554687717004122907776455373565370611931295784999531154336211759360996514604257649896178061592208883031759311116912488697490910194688421940580760157564055874982636620675034367049186846375209418329048870794877296799931352265935427935492263664032385896831370410419095860627189066818284965576631477920931193213013041240033307598620286099378822959055517501648993295190106030670279744875990338656899649010745640523473122707286812478533597722057558460634566182126356076304771215946381935701913113035697905632372276609784172579966816825321681274093633538894596644794906270969658237276081713230732167156117467190374387148122820478454066665632045742017748523595367336935913316645706258738525450906700895377048819195198879531316986209747645404987961301771425118622923265133530379666101646964356894727174663615018059352076556220568973866091687869394955619386521695198763552562986833373775182599539018231414553188855072351406864785001574153181688844078864259093998138220219809405029917748808597949007137402400125133164988462702606181589249353274034863372556438051984017426546228176840977506501218547304303955927173172951017341494016153097013563092395826141593195859171486912465378290537823389633883234122728801298084028498583030447782544734087180788984794518832840044406675901686316485127162325688270163241335032264024246478434328493626388077298218399887430181548281069793332188384950158292596113422208398368658275230894420063722953072843904503864681726070137185676073154412624525834969297549285342809615741124376956922510589641097391519504141550304506345699266252956774593185413351475861428904465068698977413413239893161022078252555082681579647666793992202684698128524408894633002764816955123090839979931957642999974253044762690084501775183059153229193754124904782340782490712485120752326254936500638639729589742745738989942518166193288632681869791507129125535823040035610630079917287134694596457612746676215617853180458769315284193872745750890587845777451975306879795740783361955577722797880633424477378481702239088324309048995639343317854791856681077008006867288288450539226365519921732157539151394268276798477182548704010061647068353034382755714395128779737104611974455042318308738128085442919718036490435085806011917309570486669305564953029847175946380391137231755053187839554181753754257716097467593265708988278272427145376210913944866586132200588120754283094207651475382310327635940172802896526827586775410264598012762818791343741415104941409470256510560363907232521783294841744520825278267382079817773766778543459138987759262541318298078482750241001457991691494969186826626212030559636320460709586945060427063900112354467196647495241630325000075381396164417502865285296129825672448704305035770868379365716163550441470558190687788246840500769096938597321283712042095885995318926847123582818950008496143412029927121447819682412494868459280287096723470699059105826889827499124284660599907651885477766573659675519141439643944371613328105869709744904269487858288380013106721091967410103312384284086669067282980349486153826527547892899804651863665155236849964224882007506853329089061611975510090121352375944180859826823870198665570868112522982158006231683232186212158897217088924134282418167444912767444047795934151320524162525204010446518541109842347907657482671104683231302098522069889288725390787725657214610852813746718970923327826787657726457776490239166784994038427592082838455686063516889155744017113890415521600054084630554515748148492645651152191078056232047579217208631600431632485096979827925992016976580463319741191875089127547952657960712427523847289525391399048822839399627171379586880230274728371971688308017808515014816595839449218537094741935884471308995831732966210328425305352098016049611977588857778228427136049197153111660567358904816172135362911416982434271075359639511619307607469896457471063474407922498181869761676188124226738946686846874569556178121198249766767416594804922996941341996019067444605517295133577695718478577150350799351307292825313932345201710409756650486184174240824835780908183048152635562414128273306677791767601116940069725950424694986154553115566092457943455052128317926327966851219071770801490495894990616371942506095993329680239598205435878107264560892227286451189258609293905177722968449108516568022980660463016785366849321708770247678056965942082947153502781906457607302127775041167556106803236835232855544841332715398045022316133184915963089721765062555756714211395693963900206036553256774684995626933072915296554555519274920943096716931961945524439729189997817341410255199276963873758530008713914233377742602211037261602712993123812404232636309842557269131989184067846075850581979178341062938993077436135845252988725023126927174699511498502172317992956751776641219437352526818447855117597750395758893352857208331964937905555057143468428509355035849831228376001204891161984528913502072648694858576375042072405489815880499298780008618571078107494789711264086138723039217141118769652399198681707849209044606766829603203896585855495046728565644265662026309252252847117097748107967562887391525824927012548970872438227575533575998675773114820515499484117309936648962698565483973710309937454818541641024893603549867017263176770326109797649663943363458323252231808950917180577555723103183932143255433531169651371257529428643390148028671257172957727373279773841310979721521860935005602871587773207549519162466029494597186490251412703184212175562235807983717126038080433644622686714780660795160113654286624822953904357154309713317305871818419775248016077079898530622297819273390929839430104602946676224821635629491213282647104108513662163464636012192744866158691669224873435455156244639119539037293965178965363713276629355981258643803108513869514184167088461398437191732547960923288943411260393850384853581608624030093144612652234220919242555421254268074294322782100762781510950384947511589751804184640490851099097053115359397187348154263282831205964674406400714950144784578146012896287207717277974511538312169976620178655537411610521726413570896002105658239851222042029749654387679381754371375415428424528560815601881717800910143826952749393677281293017189176345260450160209634316401824558905791678384812838980112260741498552222750074724192941179550281775706582975033389615464073739041149071154510960585084036542656295053848476709243480524383349811902939383307187968574062136685687860828681832727605537999107757921941761850141957073082336329325797794260530641710747783459045936096036535629851814317961660124552420621267728866114929830538528275083128006443630760804346580079568682612164024913357880279317741181838735701421553109064599149162599455443823022790723405331144933561787092376566783318855594679474466096060112704202002320473348060327237187253076721990495282835795082074665658068953071229486991038833131461297251959721978787676467445034127274461453592590431203206982159902869799569450847606154261043116340854153536739987591718744497228927002869647144411708439465404765857904418730793399956194360520442465857312203542715479905208474911288872779060395533320350680908899703699444908613375557152813184135507351550530647127479144139858669410268940161086087951201022659348358905173270455142815060680208419265090301023063535212988103870677871060422662726668238326331789994411839257000926151569752624449403053908929942036881183406977154614835574926611266260464784094810345260322318884167603192225643017127575499480195320855921472383368291384415050056608997918008047754269843805980506688378765504797377009975384685948965384231501850558553849910905362377189984774809267977962252398109055922380734308287288503282396177122559560526779315160633537982037155436207067448035572500407178611507980369790966922235280548557109014497140024243380417432761492863351034375300592585784225331291620371034546513894271070067734943878936829478490293633719690457587571593858828718024299451914550713335968262175755772495323587030253802644906231177776620846978962457233345455605563554588880954402701354476938820744246703143155480483987453649241829150678553545205374361222198115699688942593544530429200302494511960632702535045133676209662707956405911841167998205661608981464869221841104599073766771409570886861950027973037132262624697725195802012316425934758601291246305592812430948798788146284177354080484394007767986384236774836816896334592486224874070839003472446830003962380709903294407021615500692730906431447370672406995547596694624205474269658784261158681182471968918787889460582221531811534391416012694282550500790380820967994362741030124871695013996288389657588063533929964812557744400632457983931035391224722863351075483784099526303969573742146362495341521139345340219831788082784341811710156279879548743862071793276004270657253202121998884138301448817260351065216843187917075041905071980699260307304779503030752970879672242216538133502403207987522927016861575557820287329769858277790885348764706282192815176389932189944581871973774867624818875040436747785430853711078057791940298993278629543226531739486844338684217910515009791665228200036472438029918360147058149482647379498959063457199489892425003511549398651862238743372950965781096942036156981763541075645793157437567579204396301657738865559966147411181006856028657878738575007615573431148183468936241504432586575706249112067066400225810677519205938433522467457630028690675493577098818302784806334052845606044806689724184347676268661148362115684481950964753479004951135085507178697432502765594957758401905073523043012880726513372862883220063002117858426862542500197184756213905906623046845061672700284864734508253244026759283549401959520958660619706558007445804059988692036137128989880269670972888233526655445372755650114230588240409308589120174279153167584188497064359870538206147020340616675820810225554134081000479452519070388662308642086547265317183737818913394539450449464203833665024217995170480072370805575933138909571475080787449771480811231624560412680485961191776563344286723936906193702985348226704018840756721192129372605329563538797436446410745305013819667583461623928413516720753272248077896959595998996280730687758662391676988837283333819271275625068041361844727912605859789328054649420887035393393661751741883835762974011998797210050403382414006815901844668831571161638136421581356830310431658342145320879134496853883622394016275780766752347418139593723482154019943983120007812430518367361941666082487979606684453055961259155612092221052948959248329521641696387171338138609934453089974713513956245425847187999540894335726452841365300517977706449110387576395573136338362822850978935692342321780783590833125135263585128346598244590995682211513772796223881263716285962823123485145740687094121930128687995500025266286023471521384743736799218556305870414670305708482527769800489628917445529062375742053977651895665146297658742133474049972258298215285311814860435283618253068565653212610762090829829743416635096476790698410528366351566224133168236873787155210510922792926633146260611333398483391345158773775152915257755056241875755651402830562301151940439632467999404304683531366989790085529453223425414662137636828187684782686188095933173197491489626257468012312390186184394203033547621178179617260834153859667135285296192467017840181685141112705401822045578399363825787247351666612280506731322394756923698615940804691778931728789391670662522288028309303983014032999910075350745229373909918205502920634634593230875300963070232036341712438842835783929879086942692124083443219801114660911049785567106898337328840329140788505585638442101318956639114801130599622952197369389209945700146411280602881881083201133313086054784647733635944891942067931459189557651427460581163212625812207570858839538804033537357850623964715228116621363472693806569552791469526048767690712989633367586793849612885912800477561156470341187974694928235373455427037267775649840133567358549012756515666681608294277203632314458242602903481642991669281185806205853065714985311649857263993153311208893954567662911499036716875156778816775027781271540510696322289804849418617668179631945857422392607623128928881587027848066984700077272621315867710753153039052473918578604680604316820719617411221551220691756963234091292677947449856775774514997239630714341715974905711871406917787160929922795161624662882844036125331494264333165542851840389774525522750202624150545556337498698045205654524344492089963735715403349529122407236881570361027281191700426256164102895021642940565307028351003584539482907500529179444372425457668041218307075479828895603186835397907387925907865658984873644919881319410901936179977785479336225096526229531639518852506074484864006314142743312820729950512810858598004384347423259359724854310897293363733478968842544608357936893088243366622624193279207857111265844108597778431901878041363766983868125377013260825850270757908799692437375782398725890912297274304052594779339716092693010729815726022192486598953162462348010169865057901830298826065208403947239968482020440073310185347525328232345374736786640002890197419247320916138951992801381848003289726874519541680142399293580378773941478011139412888504422688893010829389498063147660018493334752518690083654851782892280982805258629854388598015462905030280452079453297263044994433475762981365495759203837071484297053946572969072912595467161928659868974733773841672894489441991178318713807874652029984889926149597055779688589387461660871658427018045013813248700384243940649425514800913357207748879673834340319970527842248565673389237186193512771505651721550656231436048004370878560573112029618943512187766625320837455088507434551685986729266950760804415670157491381104780214225027856142358584676784533795559680462734928398607679277168351098180843519991424767157181512281884023588219125445145625085317932152388786382063040410829341308698618951655617712649683742545895680848490301353998140747541776921110463763708260888030929731851883510496523413606504757276817225314439599967046210382744765880547776491024548783074873550885870423059122831674616347064074436652491250975757792536813155276006019189543964524886204517211239281508563728102264305492338921960972603942112884252823803897122475660602022832813856517756103867637708188607686552293111961459698911409368651786579070588104904223145463973543298805606083821082670705248461470346342272251527302385716184215073288057238558637871077831868345710302262750479311212799599705149971333396250940060254829387376834766681722470291399146177841776631823362682243801857889180262552127786202156189673327461378723045032876831450483454454862975793597750052980114794547172587651974106897251776303711517680345922453251643659881202499486462864490502572522083512153170243567853517705889987664175799678290310127036613772427845457242545510177099242627399871982626458245182097574576938264291610880166884993952270895859850627961544644753501702351116520534201200587724289945696666464089716857722935590260796970340267371270678293942281445653250662610967127690358507949763837235151869747034444901034878400841962205282224067882647951170777332304617307440368270166145216357309188859866752338995629317074441391174921820352462415513856354476088586306220253046229082928503778940197902606571035879804613449646827009390936506151626198329360836217255447443520132374505816617658031706950036460779723329650747200066684896701564483047766374581135006900586575621533373337733806546576858786119935382690382286004920645700821020160449409784669713026495486093300680247217286308844281790989068816996051573198864942594197380971191497097854386550097749826123701393291106165023618021394741635566022263922272148460691611387549731398312563614868357758490450428209064548413382959077035857447452351266019434613078046868979077352601994204324448445722826176001714855415091600441113687536741847509356850781902567704191782936033342815783536227746385101731959353567334372636303637972999030085190830419163776412812041356670193391467618644764897062643067193254300272340835002181227782082163486288550672527403725993244847919546209369251949347683237724457259715341057874697845681594083103581056947810734041203729260842897246391336334229337105853372108383073264800367443471886525837409484544287249730388892935583150738195622036411882203966090567249869127617306811981126392729799946711946066034694935045009833541533623824880420314650096736612976193534821510785339588648927633007740556969291560013003659204323597968255814401181157780602813183311458096092246084687394372341235423849552377483220980449357169002016826219470068301542830884721712142846033193228778232648004013906778009480057907455064424503247278818152402911738362336527709758444922209355242098453972860427534910308008955521358939164312433642250141916134417217626563654236610216944420124367436076324774245056981693959951937005745085803218416872829632170145553330211943729887564388515079755164887600644241647917173151523301262138307229919167408379013632347966102668110688953424009656114479990414132947692398338046761364090547364151158495088747014155650376403698088910228005251329953756245266647637506800795679283611953566294635640164253195938249144966621838687544024362922065115496802265923469717603784841203886366317717689998933074943140417818727144004366256502827221926453671729843183405588871734593539767010536323009502020671297989791306139837181771284252698088301476665428070115544727880482266210902280998817011877290149967994971070108685717916327245667322961537917415266336376497756555502365931196692937984020719485282499349645979319499907779138688721293803317156582834522887363458865196776915025016621645136835176012357859243591962718023118237224983128345225985198123768027713278040480317297862156912323214023807507043537008814701645926030568765806735333664033440653426991188176704058853108669108874575456845515589179908235285181204977011964801968008592324643794416579570741302677690754681906180958650953127299638200143780951924347021993372700732930765341418988100498050354316556028187818179976477315604499726803307465840994285637134838745614594259845101992947200783287316075390187655241203470443991365211218446007639012706872954786821906546961476325610705002475570831561143542135082675322578609174116362509689551455278336090440470193066416866555470189386877747127482404205717546682656091536433047167839258187527079516707189621430541782557087919718550608468896192919778508372694965447629415240497882586870673428715040495907807589148808856855076927805393141711381844132818084846110777919402362364462450108396092652016849737247872176687785344003765013531917555764606104951083191637139276153048266941540708482460200449327948210901484225315801281826326009551316664040509769386012324250177913415470523142362763539902995264720858110889698688738342791071831957522269082319149926548016563848322348134468124821906285695880225911957226530447283361500419717530492942529987656146164147790824040913698527152338658034744202921735398215799738513036698256263415229629712109425679744517667767771358529356643461650480867729393529594980812803015473623108234149576824907090786564980405738897288794166177187022406618820367862630167669967707167857989686609500150188357689311074747983140742427519864315914073767969368540757121713845371211060789557165420295990927233998477470226589332725947512528558694291531407888896556192034138605691094954264890808182995524056864570343130091850835575758124160547759835176366772408367290737163040396667093282497985066502434435325752038776447006151447442108642139686640217451290629550173620942453126060511431210063090575694181972209998237770890916944623398418406518620458276964902962562401266539043709885968164037779328510082559625131892655057121312071034864428417144157956128769658128462054811918627235892590965399570630258787303584505936177016153162191978480370581805503389659683252348430254853440482664090503217281994425259033661063489378177260649124401046997934650328961204483518489367043654724949489414155382771579739863209691929224307045496351951291236868911345318843150661142376986506008309789662680460676814138379543935454018212697869433995573175610646129366648610374147808102933440806939708827359155967497109103979615562807349667557023761615466054916194609002898004945383380097286853745595958740602132739052099568884705028647846515366921635662208237874211228316357030777487137945424580562846295322429179042067468994342861961647908862125370136624209055335103244722956743068578380707755313817055715988385682463087247122512446829374050732658829150290778276491378350826705257515077555167486835965706652592491949736064371330805400167506846544889966783093661467205980688934922167777979762167723567184757092120312650316926466208117323759402165464747431170021745103345296970866580252544720960466706350450738198606168470662173295318147348143259223953155126343129875969823390696021522786882951620196635710954310470469956158813975074223631663613697024071824581846641578590756228393670983438703796137178070384619704659757154931126795653708837337022392615071993045747213372707585059229905756807551127007441763328603484490450645613693184107580001729066614943538904996178243525979017070443291975831828276212345020339293217150759397429393465883314156132340757916041527704437340483337988865151272840693178905327548099804395245468456962322604671595599665513631389111102740197237855595903925880746970926858854282282506260832987942755209134403101152193009360444240638854867602604619925966024488615849023232570108319690980672656850543504631276265291052142493890967537862404098434636252220599610996760423317867466543385616109467303085108135589029915266779665739682729834709521479097445932348640526455800513487990306529530210547596704298561000510897682744363392968153491098979123485012915295719811943112498218595865165937464001129060013150842916602991884142948175562204692643533959513707347531863152143177416769181536652086777722138711146877026932526077254478115013866656309663486641541848538660595052292007232729783410554150793752003113247274184062119658622604693288463433950765293884655664839107158764437487990856012987641705283598989320885091303760115738814013431903341819739379236325257731262522099136390235773429206817094317165280330416937393151395819230831366730825159997970157885846908395667726667172769432468824471714039076595413803867904135464054164993975697722831793539348575088472368752723060421686555656323508972015224214957163033658331222258015019404672566892145296122231918538505720046907002049543198627424423097732600082759296359589121025084511034366507509027651350249740687746122061033626337452964952574589294741692556840743169795365063607335002175576907807316979488900963429496617835475595667856963133980351664707691220687528975611928152054438641919397198671359388609929006953407703159699433328789437668458315866294196139554281634558046900337106813353515270555796367312602121182392715965528999506671783761219573597921943131894937530031804815133766994956858487915468781379885255589230033844276535647195925072604840254225318585403008085645968431412067663196877865841299667658566722850994396986140351626393653477088043235883756858548751161234466365864607026087750596108398530674316597384373333621751918552019257911622593252032344120435494264731019661879092175206602780354882513209318485333886124515651867201958484381771239282185017789982596231637244234137504041976759737048803219208834263611238955558347188924026567124736138543577271439308515340094538053421329537687502735658904482155821498263651845097655334490806514637213842633211840300537652452357417057420219991041775909757443114613268595978155266542418708630332365088371895552710792811141535345645624552238135349479601412987639297664201283136516532357067658641182303951585496513303477620466419362946054351361860011547741345070652306607277497936583921209665299512599353602326427429100271492850075208908264778013200812527415351938267388914849465485777261269021834900169223145144268569743397242973467835945214639387619287687751117749002067836390809048474906324881841204308883771200790807005255692088317628583589955768066328202945532145323538780976779858290746812780673737099127123755924111189240417956166601276992000261699169675218926352036914359302285488802088961058260080410024256296277014943686720889792248299514065659019324884715956330700724916334395556636199235969957654963153353040271774902683374342685046514008986855805129063747416847880671294185527271847765631245181945839068429489975518312590278123247343383448009080266277090032009655033051918727895853248250689610556218892103934407252258248168998236265657485389678915704130529981243403832435938558819773067363761347677761754776719975862957963632506210114133743130962062629232576068081870669449821066393045129747480510208418139322016436507964799349833754808813395443240230340747818356874738788493911488495781027786227093371976533752340438485830097906443950457832159565981232028283497108081597960585662739491179012638824432363823175132405919098623594382086624785975984407596621657935987346336951421352301401937690622250826279309024673878433867636933928281520858085267105420160553054119752483173781646653850695510570424465148313864045644940319533113605279900721894521220754453309606863711323889564277704047886394831877584641082833860383100310308511065144288339291802338029737354801998518783691891814311740092180696965301317137910886444987192622788239019029119292259839850806284158279862522816753943483887812978663153910558597368982419340338613690601708131381387814850489803929329105748567436610998062044997932441494359223946473644971727341108206878837863510586048018680526171401784696694910886195838912601561430984648521719917700186633303724992003048841473965339840805931897317010927209918052932448687692361929124059642510162307276950402111056816036435940505716851010151442863697002796000136563529086468903483635392621622755761315331518752831172967244294955837907240467616433278091075124109052885520120833043837616706315965178288323439102176896848575664995609804770213010653969686060492992938145156925186098471433541744845587601640865802539491177136725457656442229067043917046620713094770584869593470638093933069025806186912553518699518150467914162413084055301644628691727838168114752268787240617733943298133393396251555351943086120392671482613908230950393419427303539029937638190745136312785471747386517103023000537574234961082114069744008942113725736184526148289936530663251869602816759209921454421393184302965889860066817273123322651765148827779688488007097626554495884305208199715140457087584353358973883789479883501891067256965327433489749117880914290082692296950970740656721128825319868449545147639470898770634270957407581197491192496153747841889247982133363894428568950983624218446147757210669453536532914570495291150767499882695573049441210793765409200026847161079513167396888845865043503765462979882798883519680707346033130252213979578312725231378047755641593607410440095736594773533313064952460293193217487669833980896639813088696462539642222670415797974498689793421550919694219200866659299493147780211690953378853607331870069296499032466771474519226042884721801434801829134368139639969646308306276311497530072936663856130296241411753239039884712746346385926060762107557672884121278323870027509831744748590769356036431795507234954724841441799761815243511239035957770593591836960158672194925069848798375946355171446095782099773135875362019899898297195826791506087746252190577031421610539593243978160850258083980022154126443234977886296178905215059072135074281618192689346082293179712010324411700807798567768228569994270877116882307538899680228831416579463341793438012760739078860246665133743458460609022610761941851752790017359498778421238982034084941678217036288012737656475530862754869129463166351597214233900489869410805664722282168197640540432774924418863515991860986286645200850516696481624304265099148283467199350580386198418926041571932491863824864878858477711756872810057180426973515052130694125556501124500716700521152655891868010945734203904864243620357331718213882054973867877404893052158067272398125925474343472640880069817496497342078975721946688902638646192084427340372981743133203798986823135102225466516638289161001925932771908968021479425513011959110254822729495202615893452045508276178234883763043772947897285414550800797672520595403012601196437585082889361498709639422373766387608783062229933835918547268892847499104441144558394832685657590251901591605965251843305658983421395884570619138755318157933817674841355965930075543836445554658327590355867243304430377016532581954168397618488058926071476347960841995472173212533355146087567880345878048760570596990237970907491719850589677616050385147697566100140721485292435157797461649936842241547955948963381742761313827721290988850204061337532223024833168611690293738491097929076070484703739499832281861353091474453142361414108589401350704703352691907426235313170211640780592270599977696646488332214106959195563089510377854770095151764819161944642541309483809152496819855577252534651230724074905933950039909041324697665708379672251826071277072743407777215307394088578825213614939585097888403614654908388124711040270118118475296681805286581713180584622715677369622854221040213183325630040616260434018016850963903301198852661355352508029147466575139998311472007856778270735877623042552190447193392227665882905449564210717637554931850198143572749672941763006028589225895580690905186216379318702415425948131915641774656192128872304943738372725593787624864779104885628954776521618890632721889420782281709825364274196228472347197688637395902507034513611610838919371348508368022821915095317338471870508764442794833906593025550490247413138544928933579017465179419963783188408035931974700697044128314479570107748905987344493594856268792476040485885355810613059981366855895754959040940486038048264339163695446008644007781897283045470865942891252108847698455063217267335615665823668211823798453693388179135919747167666386971263237643701416039441938188305086582197262997187633375693980325085502835250288918819592788297205422335628593449915782910861657648655891653903458488749145854478745849055484681683495665590436168401576556102764509961973239163049566409079522680742025895016719109379233353567588945363930577679419245934046021838546039005303292859502214464464498281465903653668927144453331930858460248342737438529654520540634728857655589350938430435481943827786705364358587789797274108336026792757686010554042259226182935827972628867033250496767413775002872124285826532615350505277578885820915302766899874263882023751958496486114354421956930375760907740248940627773025048032761886310349441940807583088361148621814956372858573171674148350549895644899445141526420682100937755087010590913545624268084503673415891975635575857786730876439662627061470689421452182917593445255939472393777377977103029972844408528067703459495426478515950691754404815349195719826353024077269415607364079234232224560529971437829650604724059148538569628664645108129198577371246133776572036723409495970135668249883315716828505075678978878458116461309490832123575422280103903168270886666926818696575504504301798473765876230459282357532636839238584047199308172320225566209403103407158637005708241111995936496581895825162006705048015547172754968679985077311521947070360094570305385403310489412772692908867701502715842340847493823070500840402045901292651417401456638329190967692199446379174827421283921177859317411753103618941926167159688929274153825160690967743594912595455926831835577407075415407161798128000393249219280967492430116159896198211532051225375315553418495672268911755396025413426729419296530884865672332925844337180778190530683539743328755651899874998382961453645133167559102031338721099357023865203186174443455680895849400115599586297016717726249807051540168657269223649255998389880780985361374046358665618967376080818358279609461210658546876816201350986300386463250759810101134558003631509973179264715605334884562302330670247304178217733318391448765843698319696383234059798452449931234538326130674332994840894146346452424561261887345695882627035499568964429783038843945290040851471404095547453902701879194774726236866968582299515559293179289800633872527548766259406846373389346682679827864444256936854567212394867095955244104970781727036642509190967631596341788417930092712028015585852391408897031147173818483029341196939242845138020865029311860140476568035222464960996729658435731637978877441002560202435823050209845486942813098297913459864328620482701613068161807531986303033399194299153944121088003306847185289103667624886958791144005016018442952399307360555491982483293149148948524245884731336565651681870595109546745242259713232973838752294276721329418246630212824749116927546386024038447174805106808168400685776342357611497530576041016665187615878833655675582421339464910063299670748594123201217249897715518020946064219916534326481637176152239083948829814875107881254639777297582518699397901397543141515782471048465263916993798123767992803190002263219912313499282912218864957629491054961670488516589885307236638069554733074146935345467345389051487199248147373120674449230643821723427445383257672252864678290859074494883604267655201474613752566632713826961726805226413834554891055729401695469147684913485435432917387662906345013994053609774067586648130379341779008854970953689754187656629014305602217757028454679812702968276822787304497331848505667460613017165151638894981350135518219560943933532791502478777781709996290097966992176318697818798502604569732591436068343001624380247095981304645460682463371902782096475295096081905060763340725668374772770064741793542531161191580435646139543402416770259887363358742432687707260970362353818097762561508245760784849854388809464364709552978023286131942614881999088541032214479193655591309379926844666205981232677031827919301557784240735535431098563129775511393112287673092073550681859867541757826367726262348015805820768234349860201052182022589741091070727032587309616485321301831314016713788432855760469723010318136278726425089730326411539159862962422689854915026522747221515655186537388350022654893194972682552060811370020703533975754564432693115489363920699855133652457652389635417282716655139429795167801575401066253347730100414320960438422357047921304105178605581594500024994775177190919665478464567046826764921169297193067166827606456455621732643868274569260878962531571702512213198354433131265961045408048613860475966302467583412362914671337440698521974662812401621340328807383383221951091426321955321358416686156661494553994587522334387898778101580171119838976557846762669043781395202077559336648900886402117473906306125067709857354558816457895734600666226804062261978782201258292181260863969517333734645010962946508125548910818478720957386084775505039690700800329708387680754045235900767089338680149051177530080660525348932005735685544025611156200430398881318122120614298987336286597518736004748551889198718939156934782270357874986959628036108080326350234882927384108759744531232289334609985625395692961955019121192327891917468134523267322647161923574546923319253467682158699690841715825872125647127879314290670405145098324716713736608057548240850682928544502366229549155941168675050130861361366703385749787410578410647098446234156793724372090260275325569590863379483054493613045349190057481681029929328874476529868075132043374759041541985937009415975633526919484520312421882667161628318785668348619070990520644232118456435151595924606403724915952757701755237308911905918539578573632434894448908421970217397612734332288019800592381376338909563089921443432693895981819266705318850044036162397348632748793498723319055197429305496347828132057742139039600650569631723585777632815675654547834333725156559269077030887908849087733529727144191817603878102458595143507867866452346706529645794416247831203148197670073620655966106624209645673580260856501718383597892638034119853264539987956196262256108193525585388884148087228205703992796594958613189676777842540558012680671477605370748072470664496284966599805825215937101667948981603199527177830422378287972536146968952434981604709619195934390823419077564229073624106413754048885273383847686037574167187416987882680216975351740516703491020982586880915386266886565919318877938703053050322780926751035029419769629992768355168316201569147241805915810491138817642084415025039936711444022394588675105650205126394563898594362533352410657363359433963009845189850954568157020487242290916072011444279279063130311090046375687966905561885481114728726071549976235982190423100825071625222357495136718057595762212627051487859902870420940728576143532915997270186209354849692528401085044882035899361000155835501466575187249017867468457930590772383762257837064461828832964102257130380226516915320302049553769739924123465290686976413119120677443990587246984267052565832347090234496247973110420502511712346217124555213313981252112785263020140463537473564143390305961239835313305424079941142013079314868532347537057073875819432118784700452954007912660619516216038894283352051946736939001003983599900768134969336412903201781085482094199051803809890172745955090891046493583887049073712541129326836788414554774116415691287485592453097311058862989325254690707149609605754637330761676629818598626700480536474368142804837868259768570138277773901292062242703258586229160064423638148370242543888587277487529004426983169945105029100652213101882785209844029045234142685559417851052642457649017529499051408665075025948346955354753984973720058940406092789030565994911247090457239607043809613588192476776126451485190483618922020350350821688897777792897797532349782934114874329901757898098668152133051155348221872576155706403058365621954499205535428385537948660426081580594326570426622891732673566277589812446442276462527610953956371645649243436775592653771741011443720184318867185790461245314221928135143591584649602496442128964872267495574293832729740552107065147377665803515536606367137327092140090465583777376674989265484228671880898155668493786387494785769329742080635901392551558863762922000144355469570600409616244302359693951022312922790583711767441249822871819726273021670468137211028291542663121960320990113739203682533760459314250707332254325699696283003968497425819683820196326949343539660351502611806130319504161806346920689286419574064742912644357211802833495994187437175221673659558476261713172443220871041916957108792643057565676256728938670652096734317826550394305409635279237146855738911546499752330495482203465742584922805868409004094345155829474899655780437883411492734728887237123963247901396228949081989222307379264977979750185493442941297179826867011843499792923685350385394125390001496212406867216736582609630029488048874394744742991278630593704472832891761946911958928928725741985179318638982416906712672392652349106554532071296349147048468832090907742999956276237766365734247786190811051638984825165228168760380808401552018138023340370691718326432553420526924410734609154757021578560665850280505091321435091046845709989397583905712767793233290364093633453380738911858142813304244000036397208980571675301342903577849138333130516189154641186066549339038912130092374555145346734851967387233382519387217528995208053189419362248026207261519513654585138092952508246115451293351009073464930477102607616891762561867866795902864879517372550852851143640927871544155840426298596379940537880280011600680482238917946055623285534867673675677548530918258548489581640321777862291833968185337567790087004337242140863348597444784078268194778461962537249921639277323708459232385566927444732634894451934022546010700189600620097063553621522338951458399585272787354396607642274008907117995519486247686157463536033522793024477660143694816239080326881249900968056328989463531837834423446832296364768479504061335484232474212614091718743037736309886503547265575508622263535474146135432592625139618277806286126998642774907162540352704335273237093111471597900891804167195039048392710872193246120980418940124709918791212497690551439754911039388940643921823698770137215203900816635194642811084369832500249995174371872885533730673458552427227886869753581257181225746414675908876559591142918409129463724778410676385931060728028957536568893761960361233486380580400085008005441379054777008515287710398072777614425856782295031301029696552724516324120045786094050344293765944005563015264841357823491926676955058676754509059038317902035700972386165458559334258791024270770365500298448879183550018042837173376457438472164047090166995286440245529405922475109928880278664386958806926688514022175091214013396939638611538543378109393540332945191715561408568843916700244732718487942524667968543563046654969322138006957752836028530712368695522800945416147686918276671195007062288759613754285419960663492911820792996395796437302814888053383595639686213105554046975219377006311550734892315997780965687904353385719818724725191897700380877146274570067984829596036767970324770365241893821942662505686750855567451629322456206127931967724002262603125390233975291985838097491070389424372710793268788974389062084497671347663609013904930941667471464154137009529968133464514171308259127927281329456763886263086823234377824290755115689914212805249776391069230755631865835787627424531587729958240132636159444585607905125197657640197643356421313439843250504312374938372061915647204474083910014637760172886938095079282084965173778721333528742815597802029493445376066872316328649319000545066424116136078910511338787219182933481280559183452494816911369197078380103809810432639769578481184312739308273213431293987949699910731618419886482774413413743236731807777812692139752348040434484553677781401652120703826524404614683040469116556033203204164788130333605279784215146159985207880559522810857350653083600150008389974795117775955962915917141276013693521038713235210464165385290260768696451947749877995089194809636413626873420677092014117901263964915190423950087857533456067081478047450479260557695444030257614128478641706697599823730205519283573665217030936350626682711804926575841072747333208166319621094586586173100618014163370847756363795377637719520677478531048387238408393631137224486021121724442091175548630522315738993671402329870591696509576083079567400664606470189922892976800910801107438322991987703272943735844283891277213764964824172635636072137587295646589409367722473256593598014766236496142340742487568188325854395215692849087794202241500746437807905358885584402583531482337070019855017100200203980213900403067989203545824655303543619320272646262984079689163989451929604874924637863527732999642466423687725185808241951388725196128373510245419998362642751371472378163250761784484686658128111030989159234717756535993455627712354978690222382681749015924153781290377888559347914947826361893904051602571153001229391618430791333567296731402268824477411163389160297988939359771906594416536532293594732535434889907004673479553793125596271916343375001576481211875737716492524860389603580893247976520587900529900490277113877555977621371097594885293360887317283528991640241017706357629775356460884474740904343287493255944620990273232194314665609407752786627625628501671297926485434716192297794463793497493783790087698128956266702071975278933712580093680565129808320253889493407315362651826481823669347979317810654340813099218475749925846189188182866890831997109613327782483555904896409661133845877569333236691268472219057088196641098022036080925774744186196657403345634498117418863808067916487973385095955180714883591951286874833736967234516430690524888173402645721894030042054129484999561188681085570101103994116513783920132502485368648079282454562643677894761488594288741170296153208151434117833766803618707226619524950733636586431816080502953160473074452971419753814520350554104242808964051593591513914897902981541687019051528059373868988019380615922441070127077320642726372115439487515448464291319476321392649071872451549214186314410885227842246062444243052672888077383226498316302838495927859365634072311328609045583737013053890867360747757347555500080335977998419262343711856339872373437018611276647719614137399925385384909408433105863284069765763627209022738572920355054085690337062410072911641643699897983922494203108964624497380573463352380765893214195699058404874637007639904064418495204379874843992452195776139234538637301324120639829485844001967390039456005336046662479937894084977296083938170568837619231659830840652665295359692448096980783204512192437445703513199898126012562158771001969326499591165347265368772230821769381880673565083452541492018678353432108831135275970537521901732795996752416002993415776180766516492042444150694510742641492362639425374464047012496723455438873903202699878790655344805335291250162706349499114028500118228898781477676978707181437032347771519707955289434043592664375440446999702110132347612072752375049981111130222259637887862911584629689194736787036147569501884776123870367637622243564687130034238277098041045643310989061844489959846350254763247991777837274731618967917815290237551152003610561486912437287216860294776928579923102397441187229510582627712559147498807598468991679235919932887081717272470410684489649758552515290595860919079472395372638837017567445863596798694716925954549045519293380228580485236998734747201279256452395941576764253265910681823299763736477685084566395318500169650641071019697233602544442783754418326716722177252935520037344653453792155158270490950863356764591659780595980292406448950712200520122033041467818748716948692415225510827595829414223860626220819022828720765411330810282503578722917589569229316235759330842366794896911878447981156286083128838256194951936946914847149271226192171451127113222805576549336792468019173198448623776379622607222874262916716089418803967932781634110730738443088166968680632291731131062687026293205154596685361147730431141851212588230885085781755973361491881111611287044285023616271664015008061555890427489397593125869942927318391035682483714135159162674157945191665286021091937259562705804326908722549874231800049969757093621152612181508108538686370301299936976737697469068230803062896183851523518501116714456244890923282209414734421992029440228265579087041537575738065309888478450783521789504788394837137036119994065261459301879896696202940259587158533119727770232227180220443285996354012997017658011372974151792172509560064224335064182857484248020157935544748346369050755906738946071197780022106655018777855903585700248906506046488347759290157271913480285371579422742472999057118767465580606320673694590971855193985874917597186954200686651378064306684553836044659148645244979454730762175344475125400269334043344446895697563701918116221878012801469236578210365089127703514108266908500446861958985948256749774217202397216809840780269219573815857692371327857218166672489435037153482498168412560005756295807683121241656736922301547601669829957264115828829996448513812689220218854431438527753953245471479639012503933853610869891220530711656743357002037762231933560993797135015489854556485148259369663679855162112159193987394646265800693909445376972283094803541736069381889210903368083471593116120679617695046927344975359862669970171679407797089801612972857785055483915228156996896712178669783361355516335875701030668859671883311556464994078488359656529950131370093491470433502172606237109022401149025167320189132274186894494156001316869591777409460265399078146478644787116851298790955949245876041371432264010124971459395397718843329723665654672039139239869560432812727898136314185715543276597962842698275407958363329551679710262313324303286936221804365044392079035554458693025767776720912661407801078276694860658889001922720495985534554716078919863512037021073737023722253457155468179635283545000482567523987263658442647181089863495623846115747468740393499043710382864267771229192190366481180090416830961151993427216592698989817131734390805622353786376964234608320156522548105783517040629203110128092705439777102588060447946129268922324280302644015105311038363574008550677286025256589857435322989764505500929518971413344286340951853791621821258250170982038562694163892083857987510925592222768660713150689680157260894023679267727156662839066310552341474914325911645244532294493082705847143225337954807173036853566208914895060571903839146756404693855078867409444302379103578865497640970467323165340065749108604248762664141220301823583404432966240311624301257115802370285546772322414038926443679611323599039802779267454947400539595789884981551589186327177247959701042967694521164419753654675058585084146348736067235604736180085945639086756817279773404927827678499052490967957222232716299388382324598777858285256447554996222196309403778367861968255329665602254835041195559291917808734910095567214499826595585671639377344354875530009831322050159491016996536157564721388836125604206233331437278520944261507093060063818528525642272117100815131621800128114143118995857639014621018226079347409872722659873176461302914729315045520674161363316978062520749521997257542281686246474461041326696340356080062467467963724362067910307849339339771880251005414461835751730153524948210163915882181333626401242036087236791014339610749284687202822829365736964883887355565898201043954220146218626948977889130025792003783947850381585359105085649370113731566732124252207286902735655006406283129127824646588925162945789171927863722115133107862815394212727366070084270184828162267280208132731336181000249906784606721620529464722591448702316331128838061801344632943614938213544369832481566736545235726345196989463927192976514708564969736420604276025781550883972880589639243958322123034311087901088905239790203380404660905456363779906944949390411473618690806900041071449957554445717048255795120616818014718328167770505422966504344490393338137823447275200771160836634517810720228992000076315172024462044029130002774102863855680669837788848929673330775809392292720744526840015987294925735880455768484464947478838350914215744020125068457765733588577508540513772056213375511562547128323500071021593125029638469728624561324545671528546467839844039531939159039634921309270677782650008273625011961005491895040139422371167907744902574739603509308960486410258740728302394346815079062507285756478930793965008567215627212513098783325111608759082446345761181486360134777243595378002445094039159616640143976922097965211825828688376721144370121277509604648313590735021678615461585845730916094924528100023619156808797495161618639490603014361921627834844078650531152338300005696416380461121590962580249105753104273735863673742400064198499350196799193556747315567294786368816693642211820508106379178316942596987146344714722966119711786799428507005974573392983990953754007509589058033964065306075282391298344336302500490451237132726129201732713590499474982628250087296175409652056782580165943514432723787135328149259490036093027253908779834842689181239477467484131995275253601955687281170038889561806827235128627197331963408402490638332915583824108123601281270546821622831759236657646048814469121795566087337279987651458789759957077334915816064829870783467675103983260395048240816967932619262303865432683982756488276834554308399775781596503463266901810528612037643115377440563830838359947951314222254356082998358803014348606965786992983675499447701756916152141799497961261674508401612863967210167368613343773532885283144664118936880510958694264519344583669329606106070210301502332836949332505575401343454467896114296337258498262585322717697351980630987194825631277157624575315150731823712246080855231089592516779913929838361173764579057548262268102591079907433553261102501355257237308925308890065688817111611408122455536375534993219664456669942250167996838864033039899655483439052038795870492066665340679877656182752924818719675108863058619463496661124242563485385755627837443195256830721259577758664873405979406212095783455296695982237781718222821556220098094482475884534951727115210345592044490682040059271939523615263602881406090369692160022200806017491206110341139310846999891975996067775552878650996291488341929639851879240484224016105590839625394403195112978347608920423515642198549198369665500786748722372752285893146890104957984596613359195585708026460112898817680189532344465876117489862913676660043498173697282347938912178847535104941063645767316047192871904038228275223568051249121696868592715245354601142129497825568481089999896586775226018611983777941881460924070628838433051818854783906677370088850115764292455262429964068572350130163656709377537194103001375455602169704285798248694966152594039083606178728944713399071196449273054828560299248766996297193474492064798997599889088867847009885856982878117139833094502347911957123999647497086154416283505489782003741335488792390705980487189568612833929907082189058912910676796436287708395009199520333983049854238105479331777772178049812040217575466029533164387519058111526459845123624489812206106046201878483151955278829562687312490750414695920009779995504690287720755070409550001976481397230604625144109411978767485005899379622674135154743032543587190057740143416709411838472264456016532082610053873565459124302196151091057412981247795449584885616893092705747174443256259325887536644419362377086752894304093763954805970002109862770814836501047480416884974469752709393736584519807178911412238797698856626655447465580615670975065463061352701520286393643674209468657401613402683377859332948751268226274621074396642685688377425177215337576831453248899387200917354282072928730747414603404684014891268865746666103613761856608320554671700081817296197500726104045425382930920814906319178111372280280747877929956495567455555288084627466144038311583349614945085830071624012718657197347629021979576027787972349796497243186792204036432253302027528240736679132880480731824176162525981026686311121821590647870783086515384996986353132010053364488470546898928838256595670693743002659899117193604375076068652234514489421500746939475168622554254493695010446322832183048779323048955370798704532254443049078907713783868885849797667548933425987153304455786298064244966191809538973657908651252703041304319785952458671196039727454578518394682085403499735569870722415554063870311226039159112025156419055547753793990867534718043647458736427496517573147410216692229067044388342288809855602664726029418989498077028384730273879339861033648821942032550819915190246596281768346729784688586384310351644482064141221784816810071139092109362200551167384698283335975911775573281843117933339923517468458527995340958283014157069028805530660758392704832537073971018332443685991060221564697929925606140472555375481241731803882280028225652496878199417512854643349182544647805005714282052753286555465785822904375726831746609263141833678977060005772978989292592970349727091427246135646076797382525160600998235654489513264535748402419717000475512212416288128331483889498274842378101980845520589088758735008985539152324947229027992507016871025127944177163823775800086353488677308182361721550959391375259197511169961892348875826065045663092769420839837551396323204063137384683263235242818155835806319925870602084710288531944685199982243432854430502391324588406258400332548864710228929373132275622999610912232444841651081306704889244233889387779328405604461697159390142405860574458910376974906895565657269834285352588588151394730600327595091924448689009531932777395997783661702377619238087578491854323683273768164633686125123828632574993206069665472544382942016935973565490586068807640867542400196856405655626678790792534563178928703290275009131077256898444022692910567406630511692202751118791638396436607462137480294051263296841668187479642167900257791627687651474014057235065757398982223973240227518625639377338897513741343015265910905492197331524417005519232324385346568232299941111061796958525514924980709735476277573540760118952891866934647314387346974271060335401872342170871046682759974155496985613936906909109852102383454629651600836624042588936898995333004023655969871380675743862872750318403109371024752118819441949685837357945764366240114844059000315555195565559804302414851048536415025540961451952089350873040338928710161334901741767101026943234867115520325389707266859767244412307659847643123037078292596792046308225266475265273937774070490354200673508369681049940050456302219226823283183773688505415432328775236978159679900746616167368280563823594956955785358863068235275279409884394330807311180904471584712982635001006454473258119686099015972847385239164991209834802770408470210667353883187283103887509198983645036732619637431876539159025786036699489499388684575718045439120928754970561924842570553891566789760079948423006209322403714840512606046076167010829176212610165570663763820520962054570971290387391284745883097336398380365439861241928827655051050059556608340805436026433011468742609756082762393523391341316903662590492126575629045961963844723733618010353197948139696699026588751473029695277627057089307174778852929023882205001855959374995716164243580475789113487426865495014284112135174498752164665904342350833453881608000900753982628920365108160357505478627576471457603124991101075407729349240474923367457601739605518578401919965013812189642149818353452150786272659398597608947386132098573170851991790789994964400800366346706836895458337545220672588964401217790536792468964644639655757656587624764156151068444930730268812796636730441210645078687715894054088508168842126330657053792381798360161077625335168362486238192415544823828169114926774880017969637553929571976024821120283945778605309222364409806086642053462724697794259943869248671990964621626162093583300323899905207233291671840020410117614236934309082566512263021224893442214569009969227865050370649012217683842117543322476918490134661520016004354974044957469468791006743494035005841863515044175882723332804923196023972632483020872646409205452331182338536573751238130849085675364432948680644584200977313704834736569596778850641612948260636618590709081831826593042244559959711448419366628644775392794047407243501027718911997231782155749455944094569414545810569871092744404656395017432073909022843728580720323179676509326204956673915019519436090185068472159436632677448089114566788880961209972550038117142352495896682912378377580388394890639437359490160296542036856954314925229209785344970327280772028143400058840779379976343543123804964033681907051600858368183990957389972001226547314828019236491355001234947817465765700061656636514039370855806465299488185974633398494683087732618439825715243041301408919209795114012917925945938624857259957341226981983168815318365411920931062229236957304079673924704441706261799814617167118302876315937897340653239051066018866446643402527786155255598360374317551896719090136804609173301879885542365300922176803916043139948353485620738590329246204015372154489366571271284451714077440184168307685232755181926557460855756709937814239172120595636384760016047398133110453671035982497786449976282420752711717532421513771436452837183263259333833644477264276634454399011620669808484309190148079717938455055850776204413708962078520201152352656218346671952399733091072381174042492272297137501992133554483964030524988256202870021121786985546033234754135916972315750506752255206594613147244994130426359509047884526747549249385429210695942032114966593295134889890099388314707107872100406571756488898327837823444198543524103926149405625095830895831359943324464485675821626316492552971946461180725256173995042601486485881851178227428385396125184730860648696955883419170573260545755093471123551952113335472446188749559123479915029110671674011819548687275930719114688509833064250740030612756888464110273414095305291208011738591664691938479315997557210392446747042276271192973070636770277345451147029052998557132078614159703009986837624493967033958454548421085193193252673088038938540002391720869939065681556472852019371565956240205463223742872230716183387642074924230913261399764930275936187613763347277045128460974514134419742699473992735521064333819406913531747104958857613303872663537684952727797987586602816865660550397799777831854193137633559483030401096192518848853963052561954876950719807561778653264047649381662682694105835343713587932256074205544751064018611566261169215705593464799190522384718710672437395975645884324300107971130057010798171964311141766780451983838943714232099277422617900234623769341739271839299879484465632081878748384147689094740308433039880203741308138729411005952866703515686380905203733807970124740300064877691220649822248318429912309806485938112088243301976339601764708289893679988157354757183868844830527783132916185142048924304488075848045357015379959869961497686713987071839963808888785240981081476397497202542658563478686416136741347138666145213396530804863787827548786058744032459977257684847844653802592008256689638680780485621945992087922673834221211609939674901189269325517439690426012696510938526100930518789085695988644755231730302566499322661908638695663014498288327451866584455121462830889839352280969750084449692329231715491112845575513223143934955832877073085935348840876879775494549668250729193327811892005980518477209751570918488739977238850711353941061506279136915926795394101979107164050385022378026332628378426324918382642743457621218517652101794922009040752287061737208953805509286863605352538651700982369894882818426161591963323251634352823875350396827373732635610806956946564336070209004810843453945269250819225389468526204074598968054405542402868945081630092272260668693780417315087924341133108267727656875421239685729507195659331022785385573056701347800987233785605725494959932373790830785337887671513809262910643815799841365988793305526679579401667726609706784057514780967504235222106375110159834287811776301438949988774702916171942444600829828570739361729512516417445063564621242009850238048072856952881310550611754445955664097308294593369442444802200025502306748950930982368055404276621900313561993891096785894543253326287660277453281182905918229782783490063425003192720213776996126074756934802574083573396043993675419223824584007974376450503973397686325942074332771642648213343128601793731162139616590839963927033309413785614759278227517532421659067123568055627736704585514654133617692069195545511091461657589011138022621190679700125825124232924373811199485505569995981782115216596537651401363493029847715687726709384000721795827535912853691249294740537267244938458202355954867525673775804583319237855939843816854209351913948511842467512324811615259527192683599578331022980350989287637479218490717830231470335466875044581215419359209323331974147803674050118642787138996005022884021182933495918624847018537142129686570333461922974380181239825416430671812602252847913306067504732779484600037992335002823525314479221669286599536366220788582393147400255460887543531504143488878753818557649333694606887370859415716631388081542862745117215628373083057273490522570831970783442510884187714157922221143608174792952637453040732127176285214395099655529757791927042078347803039366971070899010293921214050260727946116955712386870221188581953096000681762060843420538756157662729773381155916771234655669278626137055447492302347613167886452379905656383024304140569871558591463601034840889623973724205424593433491047205819225316240850915123283565215601856032381384934622243193551488754444778134313111122386391512362151210414179292377600346060583763723799396236417806481472474464499879100906746211627946216451937402049528455035148166201483822035842496009238853886904601324558582679825808412558688610133558159159484925470420592435656413519516947150666079835763983526187964150838508478845136087700996060132357172854045130412461051777617335094080544968145183069273387281413473548716074626773676743873184335051345284614597710631395741180595939430060770044602720453734559365064742614516757588885402968165062451850436326251469957934364353621740910795953099036265488738508161110710917377365840544143630627829043378179461323662873190549111721978679049267438550713679818581281504630911930901456806725565843875602850344070449896079872547934448897777706217685158929765973177875824057172389690801100506267739238227912753136783711481319423216533713604323649670384755440171146752880204127836675719208066109851687457019529291505882125741443128500458905735058758759258958213696988915416280121253809096934335628589009624038434583870494488429568422924760707903403222095848761905987134196287962893646175660998308044798457178136006202440649988178197179200695198905766930210982442244463938075855632241122027605188476669605787701742508731886519614664555905971776342550144574828121500755784776363472703663946780241996278131849670304430999516517098788826251319611788013268380744772960623591254280691381128923864091652529156061578119034500845439051380999803370300086987139277107689433087500498976559019514830039024990582338234344217565671227268377317278197605923922456885609431474149692015377352482333687605841457879363145725706446479053274553522724603719703103997955647624093123501072202757760079465019070418410229330639794777760292114340636269941600656576047177263042819143766616972406209683506820971210870843571407757704511665766568899243879446592904873577029335618419053438374792896153578259538837968113620395833191019909723398534920429864068052048084922260791020130073835350288891933668325017390421000387995702630022880303320868345612703208987009339061644175036233763101687650318367981560865148016611581910067831577634562242725257775983893346992861874360727189869834320561122179319096942162693071398046662861785000874447057857864155791447365207083948981695529427014153931602254621644824490182781261515801114050528430438141470987064259631828071235771737747330611605930106952015465806845080362118275566324119550407742305765633831740031866434875301150094257005810245766858049765228821348170225448888918831972365905275711728063247763700003193179675173254070942259652768057927692079632775151635249857368972932344477841751286147016675301762220865732530937367456015781360580014464772561711856207340925391900758600665691698015199264772326252039790912926807465590234888457773322302496754650008146359067350410831408596302303925297575282199032051921407374089161290858604975641323467400747359275520684738803139305691791811000799765543261895471388573817008800527170205497424357913765035047391936388971219548727635913383256756576510568825758021268361968354096377909205154946878044456645894340151829758806625147668504621877120218771606963347937765685054993248967117983293086736500604513098308464303978593290762339169471733008397909342930217720708999764207584854622025626163530788582839869717642453880719343827851777941795014824721910042524299546943105032735400944540014451508716722809438314132435277319378086990445073844900119204451877286342862363095253396581540511642475211598273642245693414446123345103484483382775389954641321528735011984413184735840953597300678350481766407114177303368618542054645733572685565839209490190235715976056510684244642668732658294499243945243130469474197776800995800901604730670848354844396994698260431441007611753316339675316214777872249045416545701110791148150294425702027800429621734318748859491718003192935447631632188294321525441211736691307313382531283877925960839256246793853940521887396330399184196607321333292143535608153072652102814809173796423892041440282313945979829095300823160610541152909320909699257308824262792432836767348797180782433725831638859163398951489551769138179825536715706074759035702911528177718334784036333789774679031438571881240628799227613283447178323571461883912068869007172303640672157818533519001753337582739071520958761789746427403181665555440421899669345634509182556248044621798474913955986111942447397561209529271903458568696776222939544283741615944228462222969306534981947442503797441209515545404970661976189128203966260619107911885834906654484804719531044060771308309399904167944876595588889639769121985737311270555403113741864021442180824709182644321480271887944803027951635681714403183038159088833766142103486466758636548880387640155996310800185869665578786398542303643561240124101711462167402782167364441753038107267633160221950303287027198716746331850250735350385608438523044049363367778388946104310202144446983493310122008081646642861888250127415523738334501088771891503828945242574725419152784183747797910888914762662583082305619155089716529929441048152471258559659110159636176589961603189031830690824265936422920859960584099853417095562736696158637401163938449142300760738009491806643799784952121601860157228409494362579109951666674893878095931648702316902342530767421781281075786041378409294968255168951496114279844777164185582309173859675062659004978832258938370153269267469753703510401047204616828364532208824649604371908367960647476198805571646366540419001968097525590243833081241379481041288067425362259466472840497454459778658216562268491988306875011346967801390052235880546442227139420772428078263635961319823739180992927112172458194162575048025143702399826214948709010921877627338188687160058537598903928189559929905563613353218350232500311619704130160786014959842129421041273685583246580222276443503224378231537288135576824988558841028799511474477974259757035699425985123791594013329439077099976912413775390060757576464121299987456073876557166056984638392524252450797437608479163562735949956645488822589277403255922613913551294046646247402914471539177154688220982023857896098396380900339179522026199438920637633000041611602291602597013969631853763477448820750745190280381429025797113255931144899692081484468282380423232156594492673781141768761259923120666256917969410242587004569928324810629223426716535626112126052814902727335665727773688764749120688659820350495786767140686798672056821174867925215421134444115233011168751047072254006807419989717993847836769746290942276398852071910165730787783324302998723695743098112344202142283955551474361897530811895898529643638657620346621805445045820278138246066894176170315850816711482263477735481007439160138518859033976554144843160322968371150178988121397269302868012327066515187308746972919907052923402930624554315127202926348668164109464441548640294950869292445498990826427214911961127842915185021812264161664252034846965720571884238693949948782056446824401883607788378503751956820364161412661980823396759545899963427537898365551967639725444947178837419936260858619042689482050261503208632460901790412500936576882535058574559045808524348841992589973275765798193064374845087665872061612771198227603516031411254138884033997360553588558546346077773691015703892006430841760779850024092373095866967989077072627054774242221423010449492122133635477285416997822323582506178223528936253662492257874113393548382265230529023392769522861970368788278386183673285773834785763476380222287758900364446678633129387268991667708618428470034627995041778130491952428240424369834511305767220182887946156341812371823951328612564124408263002437641130259327191491192597846730311056745807212821093072561989216116135973091454890348954011628408424347473374866914186484942706326915677512099976039440130740743988490250283695980033888918946610157853189608322749545393045427277880814572015342677342190054185956627489127957627104849769624704343695257179633135428504234499022715079504324609158176590742720079025115370639327236748176045862166763263033851202752135036243022227623068781601982116591835989490072835191005581785676673497085297195259570221988693849570938193805097715375183016437914862199073325856500264060257503766693859109893900157951568076918055260055999060067135457109408213922498141759100828924863319270721049925695217098531479198335072659266475157349215840217419258201861611079215069301420125052560077780777644676631986883452639416753319512523726601656502705170257400986188877082933203317380006465158632216934525585670074824440566719920826321760072177709408985579901402262144241714980069820130288605147852144923535027013574619839249096039023174539216596502440973458064367914288447049692022558849364744676255550013171976023388999095688091748991790446657662743176551405328300153725808533692721866892519817284469973904477906363529323839504792187034390627057382818516942780496897102534221946691430035448193572993992627136939151836223538662735474852538398205192795730566683470902212093515829812197065968099809747732785463635338047769863771332346261207359690671106342173101902761131042525051454314984339248140529737051479839556037128079939566591906017377857314330228299433141337148862379039625705563205642751524718078080858445486085127702360583368525390565214614776855719085389733844875286820351443232378981983549526209298481781560634968625391136831497912966400379007124517761729655364837712348068794230728531471008200120733999646219726474106945488473131276236192405659040187638151606424108340568863058800144949825720655426037471311798611023707613782058068614312451146772623709678122929522324658422304743558661401811608157647410633641870278820183982324736140021509832538745536525550743194432040623164776163958043006621939542606411025595084427839834253288526685969215330053794262422406937383582383481455078494807907682811936126006210628435611694206024808896010450107190645777476604488954437049738510289268311914362138361103940706441038136407988840472352015898705545264996561965155773811578080152158113475891440492229233540538162577677759269870678922028503924762973627608538722748292589209828716896594967665361343730507215774618443690582425305692088632537848105335612256689268874153541214842026692468333987485391770656238310035168437955847255896706929714816464843056779929058879266475390368991437133771264089555581447239826769902552883577736050573549714365037351434699962989128745939963016135256388951748220411057167377042195636191285036054228829229840270174581006227947920099858515995302471110899571388679403082204555378034405919374301032739494835873355971030322209318214737428482128968409563969089120371361246457900599576284731634403010353378436304922074014035486270421680931381834914147231876690410963991652246927922204372572042697919324131257993687247211081546326438128005358232612764523737704950032098131967203475740031001492540626933009732902547447022688385546329240438593289659092227164960439641602916583592662208151999225874922412417400634853825451844067809690908662754933174987527935971831327160259946733231049373351301660157416978768153372485056939492589417414525820393520412815428470345750186772370434516438147772113068403546723363272840481751624654517779076967759156709225381358651807371821561482671015823741865404476446201649657717554791347615077446370387716472398022210701700012069702750503240533106882404394651051962767008164709645749725441035693580515325224698429792964833631140661660846480504307928675905928311910065068150718132280105199611936434132356746958463234727122589108325322810796218084269791052924323784264921104904914364647834175525045300015100809299111786064883116675492388153452565897331429765074281439826051658327362781467425814039399717080415308522393226859154800072179928285452632920877272678177993027187741633682551753469017767448160001049984441784181022859628137536481908717247441683147844974370267339992804846480780484650337740131663908695387373571233049277512858786045744709086839940417024760398195663266224566777284367971011512803024511010606294804259593562189483389913344349293705622502853779660253262541067184200440964573996110107587874631972368964836728920437860108440849684374144304442083846184983779414039672013391167562338594247132358326707671464301955485853292580886580194389192208011749945111981279634579381672134128275987644815328786190588016808992963378392928028477605790127837581110437425181975063387985608442713806119497258367758214516033203010477150152145108708579619185739440361831617657639416451808631368292523204225068246734362995918297988292122193944081678553284113955419685598846951901920502273224013555432604485248230363117582497282060629813472331467887257284373374684428488688675815099043478895294037140224469198381061874041192166612584988130667886398278177836766367075496293738386147806671834441848090939417241054465398007369473429809593885751924597783141540338148946397631498886538403121348603796753008267551819939216816186662783009889576686551441289882312856340698745365777865956568427195137288910175735584403776682052500213616356059326524566596003846472448559925937882125355213800430922029032246643419965566997847731249811961436235710298461027937214429704517927118894509154824564275937385879825920374610602691510449841004202655293849906321541441489483418650253968262995326042691533663103869307472129124317725583409012610210590350838091529073840101442294319689270504610332716819902519632362398521607127313260910858673734496045151425448818989403890588728209400521864534201851029880899660282654700034348222349443128554074525203181863849522551158123368485361760181661983687563123023834762793858676741464076611922621004372825883261019736079632667374720906119510600398893113207077943726197581301163229824228301316880811864450415663498473290413498646595151294505970653854849552314151994028351515525628279961263306185822661704468817986833405675692888680412607854221072360657625821732158062650591389450316247023766882779308576458343071464098041971383877647395145021508752787635799665533172694791454533480735677535706399423819713189307319618682815073819145315092078720454113795842902721703583414242645983662768251351961052567824527281590915880957006322027201945510439312561352517558931384682518290060977175485847513841163172531353638032758717668736232623895539124661285351372273548779929233666628795564386204841342310919295504691175961530347070375267005853679471351665322869370225006461606826792754180550495413417425864690597183459165009123233432817248587122885175618527386874831892919111151410259366036167547829931295636965376143943917261377379981876189614260970641420624810830837837910262146030129657311650765299651749630416888324082107634185031658618714744847219240036617624547548542756766758591394820035050348863457275932300799178228747369319895826172139352405193334801874376673338651677480317893300894316595308123041725626638075840489939393434023314664662758972482814664501862428485272855791276568305775960560887037917399369710670640419278543306108754593344364918639259038577046451565887450447439291864516535124715669233704576548092973356485356381415638459349788105815144766516554061168159305383661080833205387237177111565043857927883784030218512830107090981833558774277725068731789974974837964950161820750453796273642456217348657759103791198387108298665173622304557397676060523969197005765472399924629460551869899933848907918015010995413019035225414872027174340423795834191028359429925410071043171317995204455504790073227323357819086335418148033056790601462603899785121294688063635345416470463919327845631879005060291875677184365133480067610210673748918367343992865387582532301886308721709046134011871667638001798169201450292217305050520046972343731376103524962731274773103558277465286575189779376205737236921071044983110625827389242174733789853405767160640218715601347440951888057819830232338598053666641379959177545004984154773081525028870313214486223365896283131679700526235990839461591547699763690160337583227123244931342200339255976382588070038302297503638275773197942157077151055037865937521290369639188291941349801047223044642459222805073475252583792867135756278388840382024310778634522915912789946560850202210852202008191660611775991863409685730008473542967015114504002922606073388302518330099299670730439325766452733203990564456395113561731243817941630824260969971415448254867812759346246699566178167256293036848464683894826067829853081308004835815423949190255277969179000792482874060815347421192843852616055431628220928621542234759009391476599977388180045619982775049488055497645197200686002864692639324857361039427087155526450696835956674111419777627003062934120166060149406006269541801468140105454819149707650283883842625553123501628321893596581296408834548266129161787832806274188080742502725331645479808332364597990776652573969232800515964755420657345396431634728775211592849311231812298267909916185894876616291946167655470845164849054563023440136578750013259604367111249206366802025598439786080629365364906601948346343869951492741932560038157662159697261406125079065312414287374355218829889449573699647765403731290151783789370480525008592932686793814327256048641017849952602098538497524260141375538012466021569986809427527867559080052402807505899303963792349721766973351493702775192821214240846106920626045873917404162097922189040875577671972401590159465714665653917023127992142889931941077795801887644942565346462293174880724262316407162488348336779634269421567253599530602164457846083422491608264581738588150508844624172985302380705414319388954273919979490233392759034342475714305916969377047652824152293398684233717959908790466215861144390675060679900617264257740959798265111380701665043632641663512929915997735202089128122138877307562581785988615556694558586969555050483102971884728103964087407894505626331897570183507658628645063833282521053902892450368119065100039220764676369300598156416740691767718804741642909337035530563265626641228030705858355716594944005988649841615349741950196774983695323839055587021559281987793826400759690972125676600089188195068320334615027968644210791061092789793198860787756537747854674472561587779107700983332138470028952948700650030262017759351016918522132341038282484383074594288396666484713726291474158382244018953840484901001856960400466011014609140605578751106932090997680104148186754350355382551279634418272554664215520976825815351986203215054191765927632851293374674432365541175929748365812784723416628819953121490736078193890385569239052552785513280611908217024123869334312880948927092944346704112572655591346344804744533650871503796008710700926124190182150480166195991188535914006779789486872023675137876024012123594549502015363796236712763924036647236080363764708599404202039020263089876284682615554675243624692687420747024443913760233069122766431768865668075856221800247989637587860428407401259278922826563121004944807424320957134490069162192631630947115998148260533249998712543210238022009117906892954118262899574443247604970547358192852677258267364431883483526635996884903533967849691889854343214707806917980902448657852232169655036765888433064134706478591977222734028236695665667451940699860902030128213882697755096384105360894851617809548940336141534320923750943067443808716308161008674878424308146933204900311551856614306004569851203318550066701192470193967410663314180736153955964746154410268591677426177812500673101508646265375231704249628921570968935448546745309285122054476164718925272178239487909920232981704942058793213986982707298829884960136165279160120082627259576381867409612837400852327478751563170525992096090052128094625011138790421648859888187298897616072723872619035959795510281812799558386114251468335493068896842596827399040890108137748161158165669907495174079114155206292462879937896829876010486378332184457289886878910548278627511251939367304812072114016525703122306671755483396298903681427469979362727248046188129148124306506924164541424773331799969962614851757281811293686880602585819577054291148174435906123140108997688416993633129488535282596999599734981956292555976297315390390974599225552872650141828309915672491448277358985656949661242529466805228554396423284315260720723935087697994710036315028305759109369407141490777219468169764664669088122756633375289808358841018685927122460740819704096540214990576271274376636814258665043784756408921163512867802747336740193783317119538791344486435698910979543915195993675714368249643535098879766383253449085381035654006135287290871934553101509501417427229067532039503811779182985933897641727553975138434565191072624329657937751596202084031201725026471713933827491477471029365577054360859714384440908425178096229565839537540169665417502701894785418377192779224896505860919394105565392181966681598254602863727795087739014492790256184371601064367627354186204876040039360332824066368393971682526155329426496867839065311193900838181736406376080119919701474868224789958666785003254628114788157289158006176107772357551708613544269017235833150130313924954520616116192219506517789904856658946412495483785897903150128159572580789012121863796021268924428581331129272363715663109764664077428152162173727309183154377663773809377045071744669452183028621676472990454095460325238039820283148239253947818245188672278498898653810003049578816457529897356314407854329909893025836962020529400983261385748275009827452307664711418460933794659074626990117894048485434056556185680177038856214421152163504921286626829684413113349107930751841896666319490979160863444075518114454709436114185629563251923808833955991595428498306310190341853395242066102091169066928638338807990384089472584213751438079348806359965118443583441760422647417668569720993218782965678209668988893615293939116743648726067321852361987430907142477222126849313117840068855643967933094545036820395900980009646218614306684063495108483810872878695806575016067969061852746422246661136422018866150546186528510925354574803026265447421776047374465359705440032626801497032892241337216275263287216503172003701915031674797056502519582107679660615901465518515702327908942402564161147922398267247356805824212498186598913766080212332682858671202246400792469379079624764399285879888588938225727221269710497790281611356025241766722361010915543637504976696047012788320316575418792974195893986696520019370843119560750860819648671408653778790789078021940207199624550587709645165571345770185008405283000939328495805864256404501292661468115131672079345698329473689701432929554576518224400135306259503853722414056446496780404962083922132988934916700225236114572664926506848089037495229651796913799736321223999222748972530472951138185938587172186045670494020979148557500333695664113060602830496120671662930592339697475881858868684212623800160096737223800957394125009706846211327499837944401920578466242526429767399316491665997597917336475497267996674374909814058297300625555144919673922099945837486083422811434820210565407749369428672621866413943185560276654870714717382050087082778053812959507485966324865349803759576778185565351035159009340377660161290487586531915038020681648662378977932711709722888050848370613494295714206194382638209542019351012651012391503861151025717375596616045378625440730068000295750968318438516443788620375006250952486955343817532018954488434806676291400890764995405873997619834398267425702214037223148451973477459042690835985346926253279698943953014574454703736109679016723846059009937323229846349778665285944344091029541356314616178725245422937915445167687083173928837688259089713942206020146254780959369408347198638579261783843357358795439311175429656851036770285647176045751813652005464196614173807414226261362602216697800142176143371521853320013930522254255049841536570851943742014680238859862654588055158302364126530827124656805809973517894111364515773954231064006050994620181326681353041183586954325905724675087748621540460193835925922569964794601810997200736620336126828744853262760107337819638365947665586996704625904881704408163324781024513949730475468678701219464892464774622300661128983145247731726561282858496391930785409837845233598129964622658246900313847263315756929074319410814677257535914845909522167290844203876724954114554070479241142430733705639541853430017298226184073226121759609127631714899462068348882892552979015146167477242936943178487829483843102172597371770818281410309643668132042864418280458078371124485341202693802024695064228362682660238867789544421017085835541478285618171798616993713722274925277494348775163782394833371795925129413763231317688535308484067614552368194931743659686120729302922595757586108004016121866241439765056668673092611621875156166610558600360336157937499557711780640494722095414713779388084812963901529218867441973576488297572132344380577754544409459863673770215201038654336216439717161099232575558865935067586541553613129961107572530204045901181550993007474185020305350306091961814194915426862738130735530321988880425853546010959545559626299691121227232408673087503525469469437947239519041304634503558892184137765620724488150384205977063191014457884291879283295893127495529983040038023966753555588531141211709049898010158057144917995286338800537565861331740379619037941632273657892177292403632684933082598223531762182874021943416812328793669316667977553124702962185973898474759049106786935866347430290691009647957735359202880068330880615389997704520794416695740452360653188515109942768933609059571687427799220507655482245490327678203513272342949099704566399529858285840912826495678084007685678500366029343676465391992374280840166380906955350229927422096122679245680798827943415846617583337937871811167367349056296190756664767382299256155859310716122460516340459464589589068066842066353650531160837449386911388424442774332682554208225008591757822042434961695407740121956799709179578462653287413543516828572513719618903872746019234913195539805224286952778532692128156331169971278846931412414663614316827621320864129876431113981685814603070007045262178862876640209001266438473056110769026997931177961103011268761288614752724336181197708132862849456951924931142882293070124057078488687582601772573565623556135828760176529313290521563612287877611829746304212326309431702744604034790303463169426561834752349405076215077385373910268774275150133953535014200534679806437934055446993669117833854283889598918473181722170354809911772546844161327541544550981388646559530683032609649987503282415229445073907016175743638691126756484465737057517328418423453797445622570908463282601723907163719066009522671093359563031817420189569839036980064349562224921364571803936739753451296173470515844871016432177363936737705618467759871967536267767431916672556843403941108157066973480546302039368609830274999618269321698139598823319029793717873275030058322579285297465815755259777289287213705481547972645841022149623869041067170214602450664846318705784010351881205440893775523301310937541048444657816048325363152395087946621852214512523757764940417921313984984116545556820142092237957233912610297102086612091123652139741961245727448232222319414813863867459339564379019925327867908888776452443803942126568457718282153075186926030620338229772285081510708975508002230314694979195502751480160637015442708714377596078593435000386409772705149132071388180914774028393596114457042400963842488784732058740105264875190461970087044958937616789805156408609156630135579460008642114766806342117040538934010429778702207521260998209206545625542399862930300527894533765377493402174429181583150142795379055029525664799503275312651278226081521029841138474427476221476582772802997323871923666658831753672718615702078963789173087496930630108021935225427630972174444322373591728965212877613693128492034263894252977450895603390086793716952696997506174684324446611434755005709640089995983285161918071720454987021453280277720188796323429162821327370317937885621099462978202540442818289424541215254636356464701848696087275082463833365105191701975768198389154603214935166980328343073612278574624267253663923547434325092769724645357924689944712677468241043285565330404208086869747554878818397772708269413596813680675866722890666127156550747283192024089665060053604032397689879742455743851626420925537001777575330031179188644951240950322959821578900437336656887176547697332705040121757166748390632015057071939509256846614709989405546876661501011994803104696054544949061843907783974758972396450907685934404322744486539876952198608319626332972806575528227089912107522476823756029990722895581875455809159660799290113756999159322518423476331929353567483146851312201902513154251074461821544390547658357293753581148929433724288975907545454958554027680881563117242273496715360573747786827442163096472650956564026090471949381892313524515183853960632807570058911716872379391473921538431063806831843449748323861900410034551743952616288297951536694546913174874321023357713945859468092031133002513544947091299240518972281054320472219268892779449029083246663051639593657256934239577490353616917056399250752014624443523024961304513690661068942957228996398736119647734267083602173327492857096903427986926860852566158357144150453542675969691892890099771624502666755956804137322776187381340062444420686461480226369396717468546807072226641264607666333054758335677468117166711074797340610603771883063936632941436298206651266451276419302808143123483582577855102452293557953143052190427258605283996977615541037666913955009205792104986933339288006264005145958101511664529440894272792566324418367803671889461469908244098726488535292561492267793411242848325959855909841789459272360277557816861974424868190824957699966321485565602947449169655140696380910888524460757851777639563470821928618944594182594096740369618610131107566124239702776654762322879739570845460565640931250813931570870225598917627654264628724353744056904481676352700128368117555290075497838717526673511856685869095540597245357463050094427375174424868217230098776880006507166018842278286513052086582311786490725270380041376161042450591727790912773152380911502260948667896395123608894232401485256698050579192221944608018032325939740990318129054466731643261335316970634721442103115069648737861151622517372028623758023067656554344139967907003459648648844303259782029065524098290262082935124275253704069919315591080682766344589844950956133772659347388490992178248682597510519758896295102707680508824225931549716107880127128889219007905230905155415059590618781714117972550378233583527586863499532907739977871723563983496472497804573405689023185137181674647014089454690357499310151256072430808780461072161558641383446151598048543147974069297483698957585757539169740560247269979175538205669659100247985856995550152528475267131693297094493978267578048431713592021965641240043571561455787956118686594128039897056442107491884073717325238741552745156956965147667553801777921211451763879160368180049219060222767473480323179789264247305863908060803340687925641069521623271342041559233336412431881426301013514875513416258249114094066712831762614013081329800306933020772772146075426853973230088970302078891310578211419708429915648751322678658888291603659363089201890865083512168350992678959693065609743761402810515161010679071374105433679972824528299439779319751887135825549614863083954064775407085642574860518704793225704765112174457437348492921477686271796982789838504914119595706951159948652263707313153573543707559212338490110728889541301576037622548620391069290373763549744482680186059652129157949102657669903233641184071999587125357050026219516023436082246014757422552052843139443260698500803896986073309330398636020482757345390219882960191806823644394918342729319482961325391208711369657207528809831262664345971788040783702965758448173216074890859334562552497839523348214920861211820161984126137421422325023559396810349833632661746939136480246735722400215970242234588733237864042732131963769570397131660689533346500596272403054694685237056339159549982444585419914849855955864881047752602016081404073790064333870883379795568602486279646875321536059428812187247740821828772675678520609407891266182104899824287504621355898750065333605378022583564321428581982326772463602672691593218362611873491103510669823229418387188157694480818724282812809090267986378637794001235934680031729932599712226584512273889337475336075472900239997058537965006022146113390691326507365238773970426837068342124327215870195619215197825914923527085398972505067190555461771037703533470057896209978335991565811700479392475275084075193980305756010366657742606782751917387533573730996463030634904774410941492944589756423894095704340486285588001219528138554489858813625001125837549139443763092718314128415064954800839005023553112504923692729692908971655650564216927701513015215591911816117967304545369979169745182422512684754274891241923803770610973129634839744672032606944177651504587207022129813165155743017636104483032768513752847040822964049697295321246218259891392582653491850963600896306386106434506182747232904372633232806368371350761117525369141453014678495272191197365028629744656319381057663378347081025568633595756726716653948265774584427831979818452754241112139132901209923892691659733359669059672940961781265673505032743249489829058630760768554097931798564330276037667906001656625262149679561677688848870931844979369245868559737421229124425378156619251050066425690355328560171010643848500181605129727562072356716835578690717865060260789361433516881109705790347780754410141426653735132017492371783178638983110365376328613440379286119035309175837666056635618015968658561213872999156620431534448287391275394810901820281408826226999466053018959428701865012448183957429922040703822161255005346567806066335233739847945725853916493816010501585957659234975292322609842369474516087691385542396592620500178425353486225340530418908942921413538898767229937300551373415906633654002015103130805942202395298934878436299853503667664698305302282119517184358499998902108266628899080609427672068925593660488650164896430244783319189253506008011591398585377192036610449546296956368033648469991224018223201722643823781954166822079533567707425677870089366063421322100804902933537364438863326440373595921502151472591642238078756737243094024333876465898134842399076279950597487459910203443313923399818498178451562028944056935703552989931013171815884299630596831371808475076490157136742650497491183776676388398019533716191648039820446433016142928778385680081731536064455941401612841343825493968044334426372808865670270128215102897638494950002104793421220421615920802024707892969803889164828740558312024498182605300044265862684867811269774841632085194179119107833347710257836825132804821921134170107529034073543120214158010052513955623693482005490151733406657749377432722049046275346139771249645528441777640319209472728650335892826033286907501158052291077725783290591822544988926724873791798152218223711016576118668629624456814772183400807044919019197789728413466982864936887635748488096912078048027370027435373244598512885368386848374991820938366487816861035783512356458552517162449510107254254437842957556425926650027052813222706000529714174329616076580521019305196907444163025381836726295773919400357808965939970764538968306863928581871355021110648580144355012238543272817414703568684258410921440504382333405731916593278026427730953343496980700584815842345954080592261201215405278407257545788745249100960845507676795416337563022448098504644123179776009319358433771183451339603250884243272755109631655542340072664006497328471324644318890364142815075269893683054189748797648042429358847550115775392070616955512226578658161950739846065026963620975596538636488079286251985990983094530739766179540019738587787004522185369315663602256704744427907298842355295405512299356381916591893215850327488052252025060116562700396470016045026488981629027930050063424028722677111004312778204364438998032238697781577837998900460883734805987442100599997146461870094624615055136877971190695300873878636321616563825030477456502593569499972676916860266035266457470906200775523665851477569692285424368378655322891404810629602792880094484901026782219875876920069755616519374848625245406938605641569069596170653978833678454654291579933956988992413481681511838614153753649127967731296028081776142302005926373479453571131863451004553718113262386521515887806849186133507966548788862335507974186483435793544342959128419575708064078933935316122729335605031953189328049035129287633392252199759575969087768086180358027085951490713617413846945140875817322673718598963502518106819504055864744221460026434262024331594184132136034436352583931650245318973123803636720422627950464495874213666813908457986404239540552995225040776287521445199508976476086523725919352191231381727001419857848156233022492159368773932969749846640765899910999875580104563303575411647897680818809118830106515424400325791777363383605611113491797672751085297468114804227055477149215703236092314670160705563142901835689017540667994843549331425856046469069451002056710619606479948720647093815062942531801353277391628459907982398136719275844564148525602246037481437026510721764329374775364961952185610621315108068041303302922183272977671483760736374576101915621653008740129625507212296803632937642647924418487342488066903367433980834034307919273684982029235557405029744886397129091781430515820681839175059335459927206429262530334521536699164886476592533296374510346891204653900438680594473822017582410516921694782873284877388722764444491017218449610748570973648852303086316462900970604147452472801570279642590916331558792557991255043623668611844858344688530530768605659551293764793022733019290558960587390741688552789241578492961976181318804226752167357320129803343812874835011428319071247532100258561132608727148991339152092591313274776666906705804658118056285187360728656429695205088066003686541059705850177668245031573503525206087429681648723270969548687364868801949261380201588934700347795090349949614202666169355557996629427361038308266873404943030584668104336795818591153414846241886390901947969163596493435634386306623931002035968831174958789716651279481854604683559105199269239655300676862640171696721013453226390522591641074362704801351994044941931492186678165547650628627286203896533311743664881136058411121358661837185087558346832225976459104840369169405872894820865849537650918855406927779376383252104661180026524163510213682438411307496132321274353724573817200002731418110299757407537936242838500914895890822447154698854267004335689337587426428338023119922334237325200512953044699531163777950914648374259491228045302589712973889843437130501136110264274579382976784519351316902309349403297965782640385157380272003055960490953815658582005471013669754392016310559018616515873470396638833792489223869421890311030866236002073197888322504784121287153897633235019181520165759397723487780543536943592794460413350503198440272336834821063554887805556858403520574588178438296027294115091609542594519794279985091642957746977420258313577191252066137229993126875421758952600639846256839150495980146869030413711141040892397318603627880262813385649268318616714638543643672629483176178563364999804960942428056964368442376108248876954849561877013712089557717852327544714761886110741682308839257398304176208625450804726532301372628918895334282559360956526415305881158013324028373986488686068713971447397752494150160884812984130874345742239881176708588959141202626314669284297154959884366390530434899906546874601310884800708159337904560880641261105320478528604987136969331739635687688002526343578636166495925384897080702670249822914784386383173017910265594411686481558013204441106445067889813816157410828082408024551944686971490561630484639006179349561050202612316044167766029984510424169404979315466038961645107820573201409498945586322473862373783728811005564119580158929766838338788680342345113114730203545840527443190185261740040430124239732474092994064755467104804113483913718640387273194943957710844968630339209357984086503152041865170632255585984363778203738853405776164030920240142009962881425393546881866754394164134926142246623065194004998645202913395735775358550587254012733734704319477006563184525886784284640727485410341464958464443555675980469942462307873262468144712133413362842365324408994463449709203248397907741699469978907489428502862363507273492719768862373601293766500126353163859452657241770111538556619474183503318366363510266216791477411628109120038691427180919042957204652983912541141561503057284654608574441894376169727955404822421947516564397254493478322576918963573121689148186682284322549657880963630627056416791025927858338156561096604269808106433229148227586773968405948659775649381290943429137958101620330188041054636095613008885618465825983149531255187108679487152984560953757348693830106009022342362923982430176457288402874383510893940654290887452827906507649350015509235786594504907759448697193551555573243504444302048779296692951551994836287378003188793044970170465678950814945169969744822442833603146368818837547646139401901799052941043055383853144715892300276741628765590328886034441304294505910405784807150983498965129946232186626254011977015180687665423867997641078846699413276895408779427372212312504423731106540095910607192573518138646092122915310086514618978218658454797935259524375581582253903063544626888693382214126093169619131387350552904610286439411161114803902635149765904334848759430240522057177924844136042319260380604579223911829681304116260287088317204896463803700610840851227436300099047010245010754188197277630832477177133997116493209969917935810197225969239581440966057925025272246437271415803322086677902233486465099776101783648414317040644592222415723438644188523261965875976569646300335058020541983153256406169553309674444317190472730445247520562194774904985797929359223046550802409337751827161673025904556124854983505317588337899007840842383583524029256577734023882010960220575745528457914514311161472560993801779534699471684841162917120637135582110903961577335624930145836091473893398341907106490978452833194198552540653326722311397977420400385316729686370733526910259372447171495447416482854810741343928396902198925066693875256631695246591736843150855206447197176740769711164287180151335697704523144134779474349644568880639665605823248212901469795323981803274345874510114686005774454005780479291847258464979177001460991962627485052972363067699588894008192436345663876054702219420570728260126695160653323534169116186767219234380521792619770109008014768141866357325012308255445666870640753491836649782686579249655604066491543775897893290801971517674803616016580047671344709964476946772196366845726301745543419339785357200628381731597264967145011543902978059553994481247498596663636295063195484298907768473474897235336080653684942516240853645334843080792136151824529049851827497371932873357991211697679678638698675952186080886557427170533813836623161709664869856793488885384354929099558213107133909561795548668656937609853978255903233222279028067441586199048363245246958053290225260621394848781465951909406180213101351500986002256096913292762437802039179536641084836505599178442732670769703037354020102225534654447851222489221743071213543355580233649289182014819172695513269858207512119355124764695116761399922749786768789239879015055217638242110365364431788259684100410662425065778875320029755619357424173462927178417376677583924492501646989967688158384210431936608253623695836307699527793181374307672394816609346152321140652417874290220415173495117636740993552914168482793741632428479080460461717943101451276038356487597945017791790242552002918165936025059340241462899334071797415405102751329724806574179867712872034916936508119788609634578066988976460306269895191899040508133519276146524459666495618400886290789822575120279474529926306610143258856312501070862141472612505495998852183477537404655585859724511053841012440863253119381433747582215453502893778568138436365298935630823963413974098158181685488051154673738371248111603154688074198817280630023068452512474896903347791125815517505898073623416618202422446142574039357448701529801354843688597050845893334807254983021545369181458755097001217250739298331000876678973934740603307621374303013092863453681533783959536125552132061269334771700289476670907928685316493708633055491689884729456129152312002209176608555192311032082494607500953548703916066927877550562100911283892375166381538265734387250760258655615987891466632557500927950492212847493137635646295334088626497450233417126770850891856486471448934151599823489751087133398667227338316126448415228328913076646339816496698055526122901986171504952480520130605694390657407197773943744633573625818758534321152600506605947752207295643308554313787864516240146688266632303937326903873935851238798640462537314004505949845457427150518376312967889163962699070102444822405739205068671525170726667824465373154726940903293683810235420831499519812504566837959603280227890963261177409525168331960419699486993792368469005736833932357740413921118320463825770014492017563347775891486248604330180528655421394085382771789990345122453843117197438960767061331662603247303559583327211634676316414872058008836726571444267396465682534470976845988351807434326765766802286904193585560980604062277313679482820049984079920078161679682170100665839611734684924005677762367020936053136410362447445668829913393620176757066824617303018983364797688525271241849364724608998441269822638610521866704838729781954504045333219216800632805642431184867418683422070504950844106230648510903746055416110815000215599901946899810836221026528135163027041013322485982687212900464255114984816193558203309806383594686679718504797207821780015942036730241985650460604720986010044218775647042795046429095140802524527118533455175382165900393762083573587145728146337946833734777891199988105076397746632302962478615625692709752744590058310771612600162483844478943128327303377678227291965394025993784678188839786606414909906766018759722648765832838157476525977030622162360690026257248900701433270515941498852846691855209902337714105059518329356759448484857959167650042745572125348834478016839572106441994020529176089663785012691555367195622471834110318466741779282279182498706243209259457844376809884961253027204248720193352519685483883687240203203205527543389605626505129386128613474498205010775041894569946160412513046420915490664328455786373169969436998489961177412914086507758605765818866525570223362042725088111126099935657338026230674765193285523902823042401784738298661018084636024129820546485619019332164273314597645294742816311754596406561779190101250645148840596018236926879965320697693558140367261078524709172675767355532486791333078113648911026552742371927020834180411624449095352368024644982592085889407903809671978777499855791817429301776415865229060010601049865008819100794849762918423485120150106746413358957429939390048950827227963774561202984596439485658238971195614281110814955002403013229061606614916765964674264191856253632424739632997754105792376552729217395292272260126716214894928154858589606896647503152998646911542182821219081409063787773932633911290301219694988947215905155709034865739434859912783751031911851618813955023586173222172113041153207601940116725449453221871979396879508361531767377113680308896258866532065452458514439458642278541134917691081136965547499106113496799238320387586262558798456242838309507129736888701418420574516719970869898871051150459919310601391511670024982394871498707289291643311041740227990940948778489878469442182514408887898111472283844226234912447223504501493480116441661870353862349133693217998415153195178726765244002629054140506135035211828994297098225240108942255896994737889025687927079992805708493139984587668261102320378135128049174837638607274821044677495690892345032399517459901723264005392880423512344403100990152251000040289393634925798559284692283491742356965845988553349523074534935774528317322058531082056092785186473661227314188018863118025333945725953039771147995576051510636442157661915872992693338207077470119120250867355156303009017966237412037999326853280495856876170081361579751972748580352721114344726701405658520428605407234923995457378031130992895813105421234878666694809939042711940796302842315099063249978699080185042955871990190971550635398245288040313478311922489800054143013688031866667633253288293120946457859354389615794569683449203224277749610920793682436758517686385321484919338022719421490052440891177696474527781770725903300986226498189909901752107249858583032416695545889630514419089508296713915339738785814109593893640211057482237657339170119853269698019666816991475007444279092528368593046807921521412636170900621351164803325194454347020851808232064820689467710821283295267351150669471414023410400804265109430983518090703997091329554461699037384796864746553251765274486018223518960303619724091281709870358740630745885169493444824125182797532132121329621333755430514088956998863102352863960573201429868125722769562266716767879281792916974004196985886873942272515789809236680690102111791996881093306106072436065815056815996786961410167521506207302180496586337119782484379462585012868693178103335503470604195986934674057053068071853703759832088900603415427555754306491717183440453340667311444364412580953082025319142553198918960298334569472469505117086685652022918798531918271394050210670056960607470551693699236961623785417663578756693842269634309535906333705161953510168678941709402175631264830589832159403610461531027568174816715660506938191511928015835333728114504973032534309761017516769211729671292601651746124494185380821359997365423706841725138845329843581883827345329035752028055306669500569472335908060903086191677415904191515210799557098791556656484621763126063906082058985261206716871735721249602543019219676406668987314105357543519635699947524620012091056357011651241629127210671805267222519370766178349594320436919941140394048243472832865341772744993185955552181064864407478397346821278629028519642821297128918274747761533748660968850730271684664823042589847826500776505688032562668980664833541788857223709979913598540142424707812969516209086033014761018214697761969267611779374469238903936648248362493434488603925371915117209062438131615772244273116260695867010966627319555095298378250410381723294595060208104518804727486556878076784971623088486546463193168352301098642437407375280410486321390122465004660921020365264002738620121748019462542990206109244885520221079937593690696747921108301505253244310010989732197558432217860503032431670557672507096955448822984066251901642099275204222654505810631926910597220777178294708064203538759313115324373929924517143860880961429223582123406402880579948308561274800451752949721839621688456730042287547441682076772340188647355436869353631820045807872719301271030756794656966796945763714160589968689708302102291757904678842240342781175342177002879820385471019433778850946234778256722888802615979141704285951738449156631642299314321592821511704718992411757221364836044542054566506528417460095226988569056171828386728502257015216284460721095193759043291619246748234187196105376002542885848029843120105806667976374587151259930672786606020031440047196582974040252372906568216727114064792112506299068964390175464430288421877144313318381275137794139972374870107242177110541111592368274869850056953825753426531416913929417013057164947867708951215179531357669354876762474394728445167058913948425027117154276634958117925330533175007101269302326639160803114036523099613110673790749408440523501287029949562035926553856577963682108325529957060397900339575249013217904970340375171740907786454102424442318012314674571898463174877830972401094590268053162240249855314631124840844340587019022477186762207775599273088656517851486283985212200851242685127975181506221459292733033241392456243045172457439579263473677907991808433875458412590547028471644320875924218336808621530246506936954423783433818302856395357743959437080565528790722086371931203133503475407208358096174909617890585750653298198150250473765047169814802337588307718162094568156663741296524179082418177828730514177585964898810683757630424798051483938663485327451615817800225726095709485537824118889455625624477176653123832016169794876919048625694824533780510549389159873090738203341091015787936816885407641543053608232434239726692566553692983832746096056079159511807337311332616717981227450714227883487285018529196451147184274745367623288640225395644775456174611240391618723676823361157401178715712917824915069035363341450232441517510988932071162897245505350466358902555521526503305859178092386173516025652649749407839641434724792226500090218665416291500195842287610511661018614029674992794686029639769345990940871435357728394525282970588465912933043453704082485986099028353788856110588212741902806248835715392037137497428447928943386939598071798106990044491801552869934314544855884835863684496860920763507551917683479989426210499575297621336818488098772135591708959367415293249107475399727701450804794296311442514328952031014783706959905036405918216079699504182034293999633162764663667788372379414362333923001507544201427506797868613426531203023458384241522558415142872546276030110387706842414711739264801488861688616900567530022789962942073739512915919647330166164234124978171259371579009740326734119654346921382954906031387444869883902184165630417380212257327184567340049228592431383315630773100727368174042134215456314967199543182117398090509405296755780450741806309334184539425137039579897991244905664423894075185124307620401921517980500354862672982699395801514648552966184953414756308799597769896946898297333042948862431397192162407099621623906286347582822471182121515024377089490374070419219991092000977074867589642382896233587270018579068385995436889797023597339032662514698346490172176561700917326735246804244229053674336175818359610224438852116239412721741622702280638538123644522672709156696609603260961541031041873602388827191347683128405340401522215358175992698522013983872810232020122733296657335573022224718504374523188056835979304938729188632231419166350044225904223576885989236950898910465767715404326532003372760268671867702535967919057373321458605186434200295412849778484252692853208246761912534733336035819495342717918448554201233893123076748986638532667268845331152267144128880897858261849764633164264903324280920309413824312411359190852622164084183361442945294730049867230327071439193149622543109937773252809372906324947295759484052591511273098474704592549489340297022049440103583901930190141736948875540987217278534199557801199867307459045963788957010667712255945191825970547056869176772302307352695055679709992770162067960736472792522918107653137061444061485846729735692487698885934493703336389613560097594262970221052777682651334984936529547862709934418804305208341967461009919262472333710280630526250397063403075401669981398977210024294259234251551959862100801080074630173107211096023423253002757418282447440821138061380424561920023570125942971554159682029792264549448361133151013600387985319751331301327221244070872551191294288913198752024745362351046402738680668622802460265837647256486001482639168094682909048202654091387284997268181096537566045428403057168553240690379547502775215908672589132612827332183400424573350193362331269721164796411372631831646097099169130050621978951910505921830755760599987102542624696408429347433817177720937779389222266847916714452783182453035637383940430246927999173206875413655610443490383281319019665022148606888506415449381282833332701416083462990368279628907059408986557026037438551547605651916854662354671597535512579479853861212105003203774757427002248842368407426303976648693180473692176702122420152920216368064718277846776786877663223928420198971191188463395360601530599399257943946899172278086989263408786903525632733903677302114747497861808326478341324752914229444188371294015627052354106825332100744209360406843010782650516963388598786750729566424351917783265613622028732232709735837909970006354837076473449999458967213802894314766508114039132110465550545382239910440975775027151299690582206710899305012299411531183426302734598903202556517491604805362020594394297153915363314163483100596493663831250550555144310748812926029430096421713330488722371792239405455998568030107937414309730008861539398481593985193282204480108177340587681333806332660389964150597146836508973480179281823931343201946126671366747303390195073034691672647674510685143091155642399035624364988470923260393935170699185889553423708729445997967484550779794945754069902041967302082795430045762765020982763675339094715809332544798345831855669380355214985050459065557952838172351647873406210472484253301504318351780262112426053860122411073472085422003569624074350255415605944605378320109103221662366421632617442132048385617735235528767478134072882180675105734417472480991921533321447884106601552171241685997250304442275823471803225260228783384243138560539194028216105374874174108788572516101679303775316500487280274022164002385345619119436785331705617217725461283893135013742721651916686320795841023896083869197505124720131744296608767259432604202197755580857452356495523427347083726085001357531632949620126108627683615221545477418295812023715101393456866704510923964758770002169752672785179406656992531227326315080354053186773382663986667165765647213654379128853882847361470856402560309163358050641761581060477537308749109583195270221783271568455304285759891397737895919107143897195650416910136297343844222932705347080702667375272704674006623511093781071642576865632366072288103172113253671238265500728371094949910366559818527509512615665810615770414037152387105070903967659438501530301693477630664913637555385435259547007502062341084374881348608594861789623644669866556119681531693369018292099528289216133220891615829269061648943661064592551458310121543396221671745805598911659846289082655803150014504299284044577164929624626472308781688240670985469931128355985456358320122955810971255427274478654768852275547483593663090900286448263722356527144859712418599987093840765516100219364612014718246946549004286239393175474830437635800022429702587737643651205017390945984783661053485367666215807352666831849010295937762617717619790979662252415994436587625924750558304308456223783214703059093881206933872265291974976128236728999761955007168396802618875708276201270283861585464980299474317445789179159404433413689513580788171783659670321367257764046886162603180892954360764516262047012046280060554816026284106027107684733285593250625022865513808006140012216811602100559317778502151438851405432903242747080063683281564724376295382766958097772751713867674006189965453658769380372487691850980494795979583512322503930233253991608062344064523139065151762998042739468631023978062974116055144284573986261138420549879034879511784219260649934226459278878250831597993636171349871117473718274489884282235971325700577236926719351611516182247039778761930077987841932629604452856299126018963301870934355709000536184025668461691719896476700251482128950459031335277500748684143524605257798424737769048690964017791004835822071008203740451155660666387350255562581796228556512837669983366535598741755387638947469725967464538618126125502291795016211375983052825911528471808862498128291785444014510314619071666387853431686378948042488265806567182983726920521485620250596679713281669423466495743089621726786392257188325134082553823997677454578537880933033599150453331381437980862479153401239891067416717125145281801740778854060577249348419393322997272941909875361888079178768015473689922119117945592947552001188031528830237452484427401259406743583433803906941976044733945064014913076626611512418742992725268479015489335527375730948242620576915673341791722840814192507756384765177299348925573349820371034430587043061552472331965719319553714954227006957769865584426190534141552278351009760619619013123036884159671018031600803835639386719342500217649216390150374678493899857135559109444487663982716642433591249263739939795038544681215923634319393586582889128492790113111023049390534513819267704895267584489071622766265154175422415099034409311400344532196478809899322901236445925112465776696863527846959371616107270061422594557700934235362681327037726522167242484767333462857353861994882108333738477663606448940871340620172897864640725726421650728080152473316441251672260256449195418277296324223537369225987709974485135936398255684439271406931166238746318646626535769506868583735430191188985180274981249880264147178495983066075563475543545174109725026705655472054661034990889802985834303018595005148968024488698521229285741335954640460965749504270892934877512323056680181764157740812159558037687598268923103462904300439895263447450649069782351203045909972453230719925658085484905579977948021131540365189927260797171915511703748332965087185881646628880209192219753639924659722674118655232146261642013439412645157152736465492859060624495687001891717439258249076354902264543872520266781307833994189765994131043276181348285514418665179235281904227148648563060161903986923811916100532786482813393328050652759095677725811227382095144411121440021491136625390368524191321265570899110905978917022831499935210034847418182481416880371728663054759636445480842642573479989040282087009056767284376843899562232674983997048786562490351745042979341706173882959607239163019068420033174927144660814172973967065771308250313348142135342087589606806238518032768643845879129727440743851791911969031421037387441910560436325021268682775777300792848356338898575552048093201540223039325103260819879722639448998586188481237624677740443687709106131043955633201365480461200485248858047353690381137746203229968274281983963959877630113468820215848605870461426826674420507107968256538968496303849990849567769462328400661775703736602967921759159890694980836069646628281558033532907633529902058832512299043194393649292414117126643795587340631495163055728074315317553231506058591350019629411404798989753210923026957539656877850020570287836387597840855172941136880934517888206616063969252383149620264576933878651752346254008866032804944983656543673125286541463800318871800196847480837822579114038976847863757439961345466987196298251059100652396493542255127873029720370032835047164882854468982805273163090033748547591418619523937102553791823447883587982290592630825468698691660254826168716072972659593350469595425447484518773695859511140177727604687069603727503531785715820206181546590739411386447918532224040659901613380678016929982242526065150117193554904965716744754361371319512434052056645552581921735349010461020127509108834143640323824207662917464167422878419967877030567686395472469231928102150664407304615134683409336544802035007642451729821337561519555155716156442355495632571467675983091678951605257659247008178241079095170246685972592473405786379280663462429858151632040976865535937305372132363131313787309406698715890684645696385125618255789746794767014276833505992211243989396585243293591489816483603013824564720474008925108825280540283502845090393325371123871957976056609193759868151810703446621882020560539967005081519766211573493647545653365392375953838155157933977228743696494240351909001305297154188237609860543018142910199876281180746630528404181993952715230620896696280122382718734228243484146738383380551770333282836739567747953903677745945510634384842141604270027823345711780681108916391176909621838309927501075075218943313987882776631235896847963670477035982210039550682104802628874963389167426881849829684926944557496171354798799159747898224246748813522597769583227342605101490170955273060948362177503012697036946256402769447492282621999501260324359004000263835214935193353382643494511225641788397546012202392270478752375478497037026238381534631512213425493955440479857631722319732351560966954671513506201462882684280820255674478456039340865506962936040725877470574748867348595925146375919118269728911962362720438979671554018496931649676314866370380639630875627930887855988971170251640630875778764138402321697441540242466968202697116477598099223145894255886003193769533677133055768807258252901225257600095583611599367264748916593666529757023706615497157687576731134080298531782594982975676096994578874283110640464808795016866109379037566738906712724425651534364575694008239132318466654474468276346737961449083145327485373910409429597031101755527815928490762660158692040573200980145647737746235625989306371903549479021283178878695394211502185439436299020286447325610095073706454470438355313348461638651528645850034423499436209773525735818469315917567181877476293580971186732115712043990472531617666331246106064551514125142831169727979123832997935869179112041357122791468227176727574034870031495600229606701613519906804861398700750664221115659902594815395147151435180428877597697029461982246144211228331800050752109984435595466315267915163309274915415997252548102126613769768702034065144164390863364403264818567736296130433544809327605856198640400195429921387471965940798980512808186481950295389088248036286693598148169397627310264059485865489096805075614241115495410717219254240318471518831360044468617461946937188328675199502986289270905912684222412433779215761671649917008756861573101805186202955232857623727716735885570201028305684009436269387639394343311355209126477538724720364779271746688697720584393615023280795115251729527971141087441840019659174785034668229718473739658393455789960066732295919137363255521280947995537906363681822035193226822898458489110293794097025053772364675570740948848909188789438311234905823026315320432085750856201653309886193979955215848278188156290028356205378904583404015920341541127363706595548281303190106450207747866938360720542189902961980308940618498923368881629256086579850980258270117592580540469880614051600503270091191991479062447266164242200460314047358591856671260874160980532045830802792205390159724934599917270444176758870195041300552136310398102963938127988484710435810537658940837229247166297097461124734955293299319379091664725122237082897251588821206737646658921440415056222436010299270213588389856622283792224822646490026771641112418784215663489448415372603917423351414621893883104207330202706405460405452236657701791790745325091946024390199842781332075451331222274465314270120328851258671567232133305571884368419544603956662597790835081612665454672260324784491982754981539035415778376461631976817424406591318895450912012280039473942707606952029875111504729307172685830161746021095283980914884502255802209229343134955546909488166497350365417038345752936300600373343769853463524186528977601030785236249474257356391255268119973228542940990304931435317126684703231336165745334192590270310490264719844374048029141070633264179656304069307799624166910701196847379393120244934241884435713265635907243995071553554261269892475006933609892710594851312180451187424089727218286046250365693195372678377531705737931176700003267895437074020280243341968472473718234376563897914638870293777992316035482302538190820155207221687106122142634174532004364443790451441757871315997991135526374875326359729846401139542745619842239579017163556466178304292842777914351612999893378472626255633382819640380047105397582435403370857119874322218025246984160709734658605111100370280579838423303881150077203763489282837062549624291491687687751733990987691851542382532530356394374199103242840392401526340891312339369140797577198930258945065852212523049518899876401738584476057242388974773268626931227412695341103054823229060517660351936900419972933170950747697281753368081780902515921028553020612198345099521096478173522617400739738497009973114360596835222100563756172278067280778929126442273192476997436027130218701633704921851949860635736661765097523479982392567827028796780289698024804801190347136080845148817432099553104327179266905847277703115960695454138450317160736111426001627819575079279034820765700900398716654949290480384201493288056238798489609926286009351797279411189873216746790140247729352399634269672822027704021146979815127343501081674764702705264848327705014329924728905192703895796901871021157370691871526524029340801143352081882420100085629263533125378901566842855088263489591981151432110453508134883728945854447161384198669195023029166892646671050611969337341727422733442597906148735373760245920674322691345367919135771939750311658115485743743275782613263025651061497497684780839459006953307628491976375638133222047250503376043025543411008965451580501533730489190220751081055859934720423870110578275365110079887105918235558374993753255960354908334891349045213576972908876347667953626650959886635346944770898417329243065312485814707963768817439159388042909734149341022283679182850576426858053106039542550134997999774332809124810040710918597515012227334094021614915297534837022572810796611303862265772768862675778045922797766055847818243280241388518995660063113379662705417940787957350034638379462864966543732718280934002366383315154381257034972993402846681189430732434428239753726380366629449101779840704880892531372813239173039766850524299333424698156504165076102894241823541618854188772795249821247252957146707849298385017681154895972728791268023053074443888710825675030185885986583706237604914274628280438824460142406924831008733438479896463141655679790284923022945318468544701178647137750891494812789459906847031353241463041963675132833543240401719667446054526758260807633181501252399059635220871976216283050215034958753485473699739484708774324955964120997602537314070132425310085492463944494014240562351196316640877302002710955873609189382339132071596882428088637355841713223372888760132762902705391299334218595525623967764198261387621543750750104493238342661926138884750264422043451910367473508038665488833840175100576571076362925050965530967328025021909366532265368740233234972061755529453200815823319922193991358831810243975051548173511850958414716933244741058031607745513632739977656166790539387832784637130775741033197889065299116481426390195617363725501232605809113944393513368886968973949962474910013533641138760326826474822863675636960943502191006164123207117707302012541247272384582401613066201777563585221514670385416647521086968214565165027514797607287817629150941196830313251772945605955651837145229660509516689168376549071161028631905735117902356402945564938147147846015054195396982041596096166621658266933258341894505295708906171767128137849692135231237177072361982411278155420313102070465155578292067028159462151490433095109085997028901564749394546097215792832395345682384165993898134208225835748205604737589451132705496285268120914177338418679797968101756913278140937819531385973871249616015265094486666820113344214481328460648585957013447354264159656150610419287784993023049689998288103002053218493372800724152041504175308188969637009839579066118463484902705530547475385275640235286044382304288901212319679331080524129566971668080221329684267313928777991068315770074943707874250118552267284998295150665475844080114242667292126764056095385703831270519963198738159277893875005585389109321158231190549966902484904979343325003993943395074164968584862115620003486579135466899117107926422607839292403509482089446120483451665280994246679854248773581967532431917011167084989891023289640444408811928429941271531983628923473571199217324659931813016868096195030373846751110114469546511567163134717127114949462966168697315252785742970497315493007747516447521443406928818087056384158714358863508806360272788340199072146043572555170868051559397455521592578474896439433334467528457806640520851202108209537600003613370498651204753359022153898790702671848113533051492105957861922958789382668365953537179159233375509653416759196895647993388731849784237500860144129183033701091770230230168218403570083867571187065897784430152589979403756032963482299781052487180118351084206928481307802951907357028786398001131714184212306910384218691915984666219467353035295448018664713779788471932361925276140045873756934727221836429192986099854724733102584332822055950932452317579227775657312525344948698910544792981945213998669010379603539808556402290104478753781713470842798562687005880231365656565519211946975416737194797012993731778213204460562278540809814251855253454229948365833964941070268980015734158672881569390711243103859279876664206683625293960325608376684067767127140880576051554613343327392152394957533867720688044125341217907269945065706725844279949195509963356139106218740709318702403133373896589190670664459850623197335985058583466641880980256545378238487781855099626508622033086012806530172786321475931698962494928402917459979511461951049894729178090503091016484609158775579878346748310544577014545486642230009818613592727272930226665623873579764300391961760539925505870839519992174540860036882247710562128037126402202220334169508887386549729069120432049241736390561096015517485205349997331348941994478547432526379138865130051507493517983867920477618190369774539856279530206397104455883822534423574194273995039973121657842203251556580677038591366363410054724591849842847288927749553523180080082268753346990392351991262472660097327825080480694682622160837081062544092140022408079018168222462233241483706789707941986501635803241129865423438219478864216708560643742561208998047575109699802491240061143877378746033552206781782443270042149839818231623719068796126540982385297095558789234532888163624664987538799492342476735996567070777268408266098730764362746465552898412042609519806864884957181786301678773672537158985291193253999733405127354542043241586912466272012015704971109900171613189208259686850122150812404446565814874510404585911649999391149893831983349218523983934770031661080770976912488174969617780871011090703238092468224278294757207606784952639893775783851369467254629889923490233905677714504369931928073929428922364529761220175536273664921959194273745944654988589318829768889389987554630777121365181314028596614935806563775345119179034754846541980193193524746680492248141217431454266136131672739314411113261137524153464137110059420675535147863087542835250336239071829292165268679544534102670962918083279124470863306051524431171637121602970231535463656922937065469291703401303472732513295144718880902069121769997933839889393465648087271983104567304205502221103594720526922215867462694133511151819491694327724746935070642016334639787671289583392484051233408972861199788640509879402940317694779096507314766211799607876263000385121119178707176710668383488522279800950777589255674611880073537997581104866007527768768957915299638386814219805719145208041106761296570165455039309510828178433424957985652054354522733625423055366860838912938896361622183841039924962338308829962039231503828027513199434458938303584807100348356358638545126071084215764917959707078324715254124419860640262239376757372400073739218965190307574696119107051337373423858089555263933479662324081819114084095354379131581374198299612388883147889111405786894395880013618968223230670609235566688023080328191096134384512222267428825393836078600381117012748901122192199917519085200016504493526554047954177672176301277226862389634511416121435109725956165831269926258930119820012655932312853950535244410026132525506024549812432345058751987615743265425634664059062134286836189491147509029583113300324308245867718554731220467318019716567944577473124292450154114033959080258652128661374174030314488621443164716609360291638511911763935360261130244811552014399628125633653823083459099916242432826646792586948927986903467105223784865320727668186054471014621492291619344005652912048599799046349658134098699746874879378064565860350394275545120652403883550846367713346907181225457386662649316628245097691537837432785507893760313962793800405567358656636769944613858139408431450932138390692017997922201914093886233919562786755037114697708012725643101592397326975871112937052090153185778923639663348414967621044453739512485178023807491966685393891583361064878749226061542787253625215737220271137567050410568600530446034510539613245425400474220519518085116947444768998779041189012936329122509456968999496070034889325251880914040879628796969614505527147165510660273572454184064005694165506824949699325102669751753837762718922512364799235115014132089997075698252153727952271119484303114431539176395229931721025928672371503240170392287667257223096458184380284420378341475656384089400820037118357608490536756736855885197147717434779932091002593464725506442649071712141549741051898418264921862740257261512861566243254953605757925530327803895245966157483491755835630706065994236752646680206048404407064900697730140850900758300487601750436077824426031865482865494842322462918192615670301884407159233610912167935994112938200255538411900679096918063654608134550137830561199688254940249534002137353120818717856307777488390750775315599569578966144994224826277382028216925680041999330604739248074288917170902923673796955631989149565334928733204754945429734259866852421162670010110908905502041631455364294465184893816691495736682272816593411241337211289899325043470387177200690511194873618907832401633135373887074830284292796159435115869290868125469039427885349605893391278202867959887202956064175977334336450324234453122874196886942372673263277202431114333940339632895226366140042629730644980737165656273413836930904046071595788496932764154892193813455576010828211028173145997628310305290816503181457798132219579818121335329941208251086931187827764352487907169279777745981219559119470745243709434964114945575956560958169259437385486140876181347057844486767912544990205334988982050234830673405925670250916700075306302953566736845041965079539405722255262043100947232083079189105708526985098373787322989304065082222798987875544904994757377902734456821421784256175874053389532158921861419088097325460624075336620500182322108044409461837236669242484869741710554048501037817288892623014918450622943977052365624375988828959093888143327104958310478556497256294620232650376049344791644072339751665326843493255224954488338940203002942685091804706924018133662255498590926445810560756373775386718195229786634733689028079996370871441302840765928765202553831681435496900929987744895724800369747606083171441212293068753695660346711113834940337675200426815455620491433940974135865951741751590958574705894363980040667391897938706870440960527630718244909807023121134296188721056804245177852637471565839464928308047305362634480718222202976604009704470125412199794629802999818759317484847056442637676194448345951281099369481284293913563828566968242380604873707517552475461657350664932145142589936254548992605280076050587636444241947859742493905526157966721892212372850380249475919034602662369469480478140745603402792662641375790072942838389605835613223971571003552892626405045052593581716509915669527444441797123927880456446075413218380028427007574396206748734135313215802097855866561636937558264828755916674464702699765611364106741161373862216214493107171132660781756523134362306093891957459183606340200002803607651167915635435083626111530908350949326021168177416289006096397512069647304083610609302335211968885738397794844537152269025577256811884487798337263473080414010619137777842558701742825996619263595333507998093001382212034637536854321832074335493913094654123229915803249337297993825594003950246364399272532696818189382623938172357066719735365852374178016952029791850489703924267966152231961818705791414407553607031248480257519356911864444608612085978258318514376673813084334342117045802870778220573978481567370532231878083013664653593361438028002775525561045396099603101376418935497977405265160119963285661821164371770522888196807465407969785192898457868331949383628417564497781421884463158657739967464047381252903608660200655151691358728703876313874632092570999974374627745239664543130388079682816926875012916167517411853329464278607503837391347928298270944084061679920162198730678301508472465355729284624872951807990715792513749240135545206155677386203781931288577580127186944580892583908485131933683742854971528600154170200709823041338732704537826335867162135384878535897873799445084420657209000482498890349949924073097100824178812091048653632001262289285471732998011695175583046221923854844916031949843892460173040456923548490362502269584684216692998010006337081086053430024101366322647314944739086182398742259308755532152309249117855433945638644170222225790076240435615612525507841047527265711938904399206705271692455296860872429828068136309760914815795282812445829088325557846345113485696363845114676090237031265992235039576370740798851879969530558907375270108121505264920846693495927994438865989360728342558183735842243581929937963685267549987379319701357333138775730967339581144854861090787553068037619671347477905960927109740179065451001891711798493134676529268226590114737390343841640501354555396164646801194335071750234287563389049186438941772782340005715065051252031596679071924230849225606275086464316819398765506159887091828962074541321414015646905266080122534491022248916974199393502849543373932140393014978491879060075678094734183989525043893062579311304987183837092655363507003568029602769304863456428516224479935437300446199875265237240061933928884289305032977105869851846815321241424272353048123919221799042717697545144941932695977398488308026486524716564408248776069985760808127061182847173438562639506185619185721809909504960540183179204951976908757115492701110202537248197700093959891510373830128715637537924741537456064744593628871799246601106708247102585453751716137046827651653083015298764237974814643749189645412431533172121738065655145187875332867070168077881309697729432548891043226300219592554403914368553770237525064222548754079007933048899316664234491976353954152367727594960798611241468620350430569253302886932546887847713344344782403107954778388275997564323584912031536260379534552667939507980279229381072385089365410832321433525049312925323296205485968774588119123861109828590760246392701193461362312677553275447102911044280066649123421880637207877818215348977876350234838493303837474251698221820643659470426592521727750574851192637048580139347827425251670770188743835658155155285584450140770076484680145954366005588132660813774344025214510323784696315236529060131839088259616596129021280430355667368184089504957941147538874792518897786558498130202972844096437040963572015971813181807332324627822246625147763329917773536084352355576327905927455135582487039849865781388832013103099957524144415873152691188282509131784097498809263664761324400041898778175946430921476547148481216967100177341762392671328732269771567348669272680814228468718622914265023552926445012948546791879783307522662251089985359892645086308529445417105146954020930465701232708971097065947990458868415116517954052439340589073184905174905842512309757061043500749106910032407675086705338881186105029699582671435468901147849962669640526517123668937776124395033019874574422291592724015476751677270728844170404745871636281197155249423089739957027720504805309039404613492209382708632567475382980601928773016039493948108522089950608570738060976259124354235651155007206559884065389675229767630094009419045292612361334761811727796463077075678253570819849166980269224427357595759791920360352881592107605972805869445240973359012119801785712549849848172860600082685439339259715724944686950565033668722042641593373033165315671962590249209500582467581457910074191111955567422518479937248066160543324891972964888552664441250190281337980029411300486015825081025306243421077010543181514594835136641237414742954518763766679936012335031830879757829064969799111726570616686262628909802130575326909075407601221666075265301121444748215574619771382292533376576993358734444004131773011405282808644594253687627480448928906155757582868149836250562268576392017296280119335935769718839190607064909574799046932683636705208875366168664203398888720520071120173696925536941636133089794173028054320341538383570990851887203147617782195904980904942349519916016720484791299643889573285950591366740376076202792131078805429441254425750743210774407519850077076165452700055495924242453366498087006233044337377012791756659166333449952186798815768586310873449282884323805033825455685910473033572834162456172081968799376775178995711242228765085792670939484704570702414307739225881638589894659540749611495455067515133586213715096812643908202700690389844790393159380262637599745425076067111775933599200743043885197358903856386994919129913268397844893864847423513712526938390440955940070573404635560388946366605102725491021038874915167958816416339509633408130057322405026213175944279380528224174301091537094231376117619733367051660436084068296687954348350138597185169187832344340047856434322087543282372391414849022808982997578958648495997635867431079285322468251832936604357177056228404389569302666175122215305488367735405855115818767143217398744635503114683698168870446460818015081878127433474208638500729032655258062599140117749453217732443675096867722352474141473759883386148890417772031191389580239123872320212230610025359132748141855221356015353097826120364471446277507474205663577905074558708640102381232457710994907845381444397636502764231220676881693137884448807719726311831311515934712659384484404568120894854607612306336077331864033235304526909280854294972552751497896261042457148031397694520053951609510587215571282385826182190652354893971740749697701684097642262322018893615607986858564241992480220056151335322158128949788813697456116985740618909415727657150591925534657540631551938752042773381392856055455762315376193563737114347404928787541174535751506086085204390519920388464801945546739908383703951311053501344502460526464191000880739288928923161893284673682266016801927719785484046702501690073934937141146032920313586707691842261223253744345147636580389177619426569757805024411807045402424018131309145661222222119258849853214581710912525539567803444371596514159940369570884412750008084192023491121973351921652513004728375429524420508649809138983939244913385461979859081041701940138327811185103627819686513206630489281748650735884496172462968666522233471505575183358462235507974876406407578748258169010670365989854215927299758175143730986230772695191131983935286541758331356128360957064359083285729359846359756657745620175802489287631390795445031987251370868241019120128453543041934165186450344724721837024392694968586401671769333075590146336530430027983938760646821488117705482464325219822933962995463096815342977847771710297626191775651120131077857544025985605015943215677835181683978315731762150994560454280902987078337575382195560502677314633659936110085693669971554949533898082529416877939075046255074636645345072733640028944799742956872720047215865906557100603747650871502907025111574928751126470869330917995545866444210681670004707927148810603915928629418327642393267258455901993214716357808344643514028459854915845979818667842840589942364164439582402596544386260359594275600115315460289310649079067208384535739456621697334025127006377479680678753602443233938320216733182119213952498501411149490524225994334157549252474562050990539984673790427510369001421546850904776089814221638503880938982929495405622121328713084199587714882403183112736831830939985401025668126461654221545247695501929046696887186330856923734974880248345254406125584691392103953588807272292163482338520221125993552831883689002831075444802082158426259813853454428099417429996639452733871457944354097935161511334410703397662206388901072379845759403455005332404828840323982893852217896668737263073652289743056955344399896711014287411399959319716421547898202595030316513632440291863318654824017569031930055200844271157862119796386462076716511790162941148655506841553404667643788338019462236677888895903537309860123955056156871404625858262993846122693598805197774836773566033709382636220043400437971969558475163212136815915987586274435419333957945136831106848679934464676328999684879585952144136692421644369116055441278137589317364096784070220232244893028289601930432324468703077228785461804471998243863822611365748973002594528229293016382020294659876726660260311912269225966942588510041239994507311064640580645000483458844431487646046565609675190096045321515330411279665263272841577296551817125356411587346126983129155816358102661032644430275564116784060891264098952714221218503415636832205763656608651881094421393965980949694961937677246578563231098685478687264784153395041916227424040137586859013487225580828441426506130106753828642519579011810313344463260597759658671669786389267070927095007921730805614660101813794715276068199780340747632004553279652002260402470146340865859294142243694924862544181581802512463532242487755608782362861863255746283553319885336201783204768341899960505686830016525605873974050189620070804960888674470699923206403857330765409942643122608122257991496449493207577887150517998029864902716504389075970743372680946076727996245052944741745657736495414672721856679279793143671153097113734236038323872314990877804273801704889580622100477547575103700467941171629349044206945773468748933415740782671522940422040527824401463355193557016513690447016149816367867551827146672803661300117562861442086814460474150611998338551683917366980692762206228251340407625329995899517670771282435245842683090072408656010664718172070498773999673762955153491443458883155147027641675268286673561843168781201107769755622409597368282078414502510907329161042903462443828261569932318134776018116497313922263389716425350680895696973335118701110564287893597712817388597435771277081225968085357929781866755597297421294597117395284199578394923820663867128492176905351498604806829582892742089377931854259759553852054462785857036988262431149535858386565826452157619027051440682777951410330985661425149570554093397476488829878696265132271245396278086943168083008030058865938717630011983217785346930600281389933231702119452291933950848023087401907333799635076402678149581128294693121589505530741622255240397189008694937161829090121842472749230285058709019172547284703643629491193666264944806206409653239792099126493857049255091179118640443912487231125955833118704083200928748064945876875710772607584292366241409447487390426527486927119582659747613663086878451948614821050972468428110228850690818229832886969552205672658446497646763750227748574965235185448583871558825444213376146391838962236493570040142097040439541656180011092243026071518505436478791501142943697943684057768752189616772829889342640732855083785548157292848272345106749998289656390087919224811284428420579582096154370067159676217093812867339740569715852436355630904325716951539653254613621169581190880679984832431583211119983121517052514968033952098571371043971462906396945235656775827568269134666765381689158182307139080179663229017468991001255226830035428230370209509575155899381555794602086137030652038211572426211739702353652320994772693429952238966310805109097252929172416335491509054838399629931649022598860581458307240026280881021976914257473269682640927448574545552227280217241438624742770398858150784293096473860474632318573122454232364480228754311534188895385835468162170879710456984466079914275404557510918237287327195013239931460788847764511292733537961930142204189925404195144347209034420192322230343286922741343372477796129347866847793099120003553445647011898767511406939094660220570336540249874031472080868002508494328466575334331400566277944645393885959836556564684444335065232358331746101955370151043548480437317244358636747213891395840890485879637688802496718436697471488094971809721397648699061994376662799013441628244347405975578562820336123627418551314071693078195371769065879725550486662617042759096076089720483919541908565913132777240659555439076441799933410840636953828685814581447490453533373357725931535312955052663396969578431504776464920672546411789645703660891862960805298269417576159578070849925160334922478404624166782372547804185608593693330485568040383959086800573082283675787431187213709721090724768046277560175195148420373663880320987591622802066434422282661378933730873066307899600586431643185023566063132423634048095155283888884840551485152559527759473860677143383639306355843447980430409074134609691663068350243654857150604566696814873459609404735669324148432811729312849486572500232457858092921677908864394493182871314715188736393586068793767005310786403067937740242572222167582254133532749047066293164245290771074371763357160975670216339332514197419952065728238301826180339255524324760657136249956090016507261950886294495323213069810316292634874380285026888930283178750132727695260441542649046969908716831639031383557504285783378313124977296946660207691004793535565493606779223956449621262619950633272763701613417086932688887084021403562189381837952749493532096838483848206037964682202051595082539200909396915713993633595847981666912623382974723013900057035561348967279795023245900994647480707028098278114540555197673774906532263585040318227495373919145768503631354533393502735811302501766525754924571583039884666588823903254166364233012472685796069164453096731848280275825307646214604278491772432644626059795222944541781705238081784552939247159063536305581057046717255024964228667340470091714939349009183485695979724642617052512950509895617176742755003924054221637313826215860946094417601699145615848511585497972408384813591301359815695112749598220260980675274424290394615316799583686770143532080279861081578191790273721592059802616410525358303945406479936418287845501307347614324352825085957498075622826338115689869293444299234580343639634617733714576437279890467409806591036941760607359859651021101888930197348155150845983292340254209565991906653030077556580634433698585761702662141756739003723416614475522200171436364250099348612994199112409352419696049977586572226162745935226119337983254773109035022261078272601346520839622705679661612894919477669600217933854039549237191773768364681074341581658100912735778707111279006747368790695525294883235047495740722638640310419106324570947460154742490034370391258420037990109359411831770664763757183201325613082586718238065522700693953432260206105250672741560833346324729260590960193603610532366288131121642162070487886551596058784020183375732295945898317946080113355771346277511553030913991206968872134597620195381194092534455485536619007122231023806476849588660320040975692782984428465591297310559472853990070428478656761431333882775147199951115116117157877934185417104168387885201279356527707235047544753950976561857247832719156755857060096766802147633193472783347610657559940134099124727173649777857328735453581392271333967239383359205720822938281678099478720968523319190678357851797861393358078428682747169585184380074467488101283737273987029989587164319252795067790470402672018211224692674145552268204931377300510565200181990955116438362297992471444100279037615982972307394448463612445301170710945426379296776629110557935511047500310287394085923098251183830030419346103482863333619980980343112075817349325017254222431029440561360696276066601359924859177126483266682309379330267960983980520487422676521288819201807788845681608089219413201497255711860795702535457681367429018595697753765141288955615400996912635717941123771411836167578203806560029359606871239350855202955574825138101162263708429216240778682495116359074234015458700787277532706230814432568744094594338347137275292580692919139874236771277854671430636731846325657084850510303437022243673673164624111505871787571579151494278444823533657432132174980911730257575294071318679058387178936676875019756346687860731053044262330738602357412861199162557277877728385746966254440999031149740226784389998431912156977270012171758059518693540893981322436688909241094092187791518154454788102618925944861505805630838284233006635072517513147393982062125881398591924000133530496660124417793161595664400645808013567484629161954113359215673215669476263049589851505227386895243600038386864841343467642943689723115593145584220714215622677191817508124847135538675085695296091427782651544963587532693852647739890253567395735319347726498799585388909005348206438241206360496369490489700208120538299939696390344703239889393522952663166164735200963147531277412158546242443321831517223716445235052068116285168456858899536166944652392524254134840243221144559960612395871946776017376943020541552325385587132891530063640596051109915741764697365471844639836742594607621736175645788851697677191564300226764387093707251057479519510966411860942295445337846379298250204609244459010526166135187422728458184576297610743250218001505334921281615172562150602984575603923510888015927332983802432121991923715968288040747580891284506257901036323660860419137494826697803609459790611616908669658714755375406503863510277372755232597698393732662459616380274725909464006721089776897954655496605952056618884054152688650992092367824038970977273995034955320999284944966585681959426385472291983961390290925402331028087768049727634880240447352231854305116857062943774892599640543074166052827206157808021406663242277762558091464955513008144314792140718345364892093768831810743683637123650726169798057560141918203472846807015348290618532054210762844804054980661175794100736656049923221008417070628481986862234391118317108161229617276861433880349603202218741993739633857898034387982909011772203757076135288751508041452800312060250966563953075446667223372824157579869260407387657655018347136087621865297310026077826742619157918343061381169711523752855917459784114713051781785580627918096260922306132948846541297589245122339547968433367746372936287376237435511837945557860625329659017300777427271739707801842838692470946543402079451399541274871047972358044838134672434808353629650426706418583919083015147784371967639822463025019765648530755120357744398035486098431749663107485576330546949575840820437856882797196489708973730803894906719990057310115736540264406139059171123820976315931641731347116401014953328429251645300232561236482387945419635012487140236184690735814759007402981453739393119114898630971181869662598649500586269188040869563925602171840785458406878882257230502422094173964729615599250342590079359989289712104884236450153845556747083949737869221437341143740301665063274296436062353542382876408363720245714802059307367775547780247995523773385949469585582004280542358075817161384207526980226396317940363254924581338334667108626687067290170259426899113068467846980241345895731131558655273010499312079839134608912754131096830337653823088333482756412273280164644730866402838756013723483532120332074418030168346584923031410327923634037497090268649469115380739060592113343081326930922735764051568856477963169248848779792998591789210636736426546708850786696760270574299937812229321681414227580788563790583588312632906223716048842196712918767354716800377110610502937762107615964439487493253769091040430647308124863288038632767960992796276958185112410051334876874531070495760117973561609587226019889390933645183567719942453288170342163911705569935212487394186925560776867377065086936038844002804956740364309705063561740941124377763107231768146314706277613563106111991809992169356642107109565113620124539742236690747124856575986754745227629937341058554137279582856279194336555158270923082313029488781206899665691904471187900412678062385313835584763560450335247322633485881889513824242259772884353901157851130965856527909426896764596333602735107994467123405964667259177773162911173255524500774686188107948371605758169771775734221718585895476287013884084930190278342197615161624415105821794653564983090751798015526018943999223708511727849898793892697398855037377463988767586438064684360866671005036093590710388670905952923545776555593030062839719714425106198465997998588705343790306524697258064181675747577937961276867971243402944487830219039984698732301860535061637878815977821260527194033390771904743277053405175286776607914258059371294402893868520838197275598256277115369581119383795353771861067410885453857829906373671245062015623543980264796959031987743525892290403506570068249207347718733288048733945750292479572516040150782577973794232579981071570490708728560830413254830521087290654459431683111241854556868791420046063327491078698426846956659497323833803639175293427349500435900623008366549354640412853284810241514692977988157630497353384771342407356474528092401670210507661660552182586591129912876857523484267251007779500891401328242839987441829639731937043341154301666903849975005964316036543132351254146405420776913322251333733841374856004220159151266333746812846949673079967306278869503439111253147940843184069689222464218932673024937429560191257033775741954492895833151482017279567123935329025824985154821381081482437228921083465586678835934276483313369824301478861500592402573838363829612687266399893161013912609221409937660456255264043077728606424318021503597065502098373418790441670369810608943771347817869504705221784820099669273749624096513107432235447866770205895553871780644193363580041382568459391243067344033238227454050202843428924144877222376355007259612429525521155207714393542627831632155215630349218867229563934634834573442986783587631933066162471058603278241840966992954155268176986755306122120288930564322376667198917341684679595324655874730705308512689098979944099769264489276727474154442855253121844276202927691008558672264873581867475456368607061885667403762370620009274390858696773554234354670111310634966075421155002958452579102280007738410980284447389873922816369858035104084658868564642452734297368864856777527708459249132367017955257188777544052041298108234510276658286023622536122376450354304306777690750189595565717783575254904476936340978772771382189345140837076846137442768847285251955782321766321009247849102511407855441138199875231177808268627098699089406896008450581752831206353632464370933965065917347613478496974408219785411851423709263716757240469894168185918753824230935812093102266752380223669057079521249113597428612368785501071032817922794452025288065592096460091215032507471823433114801427757006710661588970891327450815010756268123650668467940484474326515222784670555075316352586505205677265941428815538205642311834947517953419451399633026608372076904681929672959749192315380760376340555303145228977429801211228287120739060536285372208044877482183258399206437167229047186890527714343953301237268597267404367618040339915997220663808881914757985903785221585499123530883118171297794868275010355078442360890308721690397019787888663579905329843137427530007377327380521451648983503173739776899640693338264338004624367156597130045302136940153076505052924901548966260234650366923853158623089823290362058726203666807288564382370815865263600568020104607482481710501359891307554102721998586437963786176737465529431405239314025810836778689640631818799347531720789930711272832162706970302231326476769024370044279078533945932280972915246029318600359074468560444471868684956894178631041933010322007280698157404661764272876710306357518099908871552085634941365095015943024754703071214639609632242999825278665686920132298250848816857090972250621520063224048315821419481118510663032736575978310083714526369054680993572903144438200110459200308047165882199219895426900098805764507904744767720117177249037468909175551134812529973481878179620039103454934737778322628371434099317342466962034509154679151009096695490189519909596474435636494649118384325249716990325629044113721203030060621348822750154112269681155215070832279636148803886113259578005183022684128670196738537165309356146113801554221386494748604240157727567772136495894348155034318726370672043774455390438753488393530260286408548797693236900294559327317737138291289604546055048941137276044680914397673616922208948528128561632102535684380755464935861987039347250069165033955718828504673369583420369129058847265414526186046169924454020059210840149829216782491005644164867792891144908669382921043071898145932139791086136702029121372398749998593071390526639058585165465928260161002584311762061370495872307337957176100664747261895251598547065237473717396080172011353825904606530173822314427219021353366124504914964729847718501966700683975397479128225564185438535098810106748666024864862429248170142402015654666859926096494911932564465758305195706518591309127592632743516715784068992852297372213317235080989027318371362219050349894192743907579258040218216366843270754667164463860859236228563770277542138148360371954369664629677298838475778792206528743960043974446893714230911450360612142072679863497101601570496636376745541665124316654094586089765005295812253520260636045337692780157231439080171790427572351108175588721413414278414254205305759700889759694597724777236244732268647767229808968907049072285190622024764414205099741929722445159250163968949437762257032460530668752755630888518651207341949638932750762202239323647030199486946520887239907211753177502055530980329204398620919064392289086955385251623837383922761893783043957934441859891016902053196124364386550420062535932111006115962677552622890362628988895041016612201994342185484765782727205662038105702463497001125138727802473133758694562039168908086831680032701181123447310430848784522165885985748443603620138335275736690311990006100248979995099062536919897177135854235748078792602151846948848244925844034340247496255681264737212546671939432450759353116103419314622196123693634897947941705247993701317192157936777084353512161850511872136156385130305434030892650975082806178710537038259178061137259201957695419032091026807228909082420786161436881420209118672730308994564685876325048566876125836144478204764166064496473740361239685090418341630788244465048361428494533867302942572779772035438500970646792316898506813791661500260115543726967061504634215954781611969894811298797532466897603574264234112436480676250812930329617311387386807807741598177005035448882058754775277128316743142288477317527132804338692306120233004436618789309288849055393068484461031977050045530914617723564957435750103186279388888176997429035501970697684348980482795060818825423571837282654511062325421174757633592790965895687246766989891575456856294159431203254319508228749877573087943690065851508000539587934461396529989241192635255867442416340660216518604955307415046619076026811129569177620940736402685178844551957858826334233280517650170432089352850187499854432800042868227970284694986285649306251499363722215348154113065292320226339193156526253085924648487095603734404554706192689097708081426781170764098753692764786450445989127333209195544516053244729770553496738156638096883137334156922598287412866287383236659942846289197950161036657003234210366161705866916680744739812445775291311770493193305395680699900406254839264073352370543650275791246610800039422696746212467276044840530699624824514845982308373019023874488299319005039465052184722035529652437902686067460845981802859169145929478058124448902866330893272197708004099664289718270825962053411547766366905105786361239806981374959774931814087607474331981751396463096996037681532217430227383258664552562885518752208541076331993987235358895889870544631714826644202196024826955517628953406118713069699728129549232519530751959758536226193385196082811452916167829468067765087225190668389495883254899269537165219340543597180361608353587574707209091385706279247692653009036915671469685312122382568220436170354719689888176654093313191499761941822599597145627625318274787939610988479993625288913727741337144761113845512073497321824071881033834639644865049397530627167860619744018055436147676060234207701580783629842596354724371282494913184592477962948393551304290410292166731714774477686332396105609896835961925585104197944184720991368958180788224813653743449677661428188424923062334901075806035999595780045287635117929497246142206475800852980275234697329647579624545205772800634198819295273154555814708335009349647617266775470786780414546287505588128489236456031641606809781357298696454310790271875702443763178388449340207639730976219075159129074636803484042366253149491726082831085728736462378444110027185547805561490708925529081392642974552548157140002304980312205293812850902647375092351032130407962521156344635806888318560853435717869151287351492122092746793910622686304027346069095526224744969510025117667486833310446952536196102673535916499868770246113109139170993975359465723185159714295592100326078870071433451237297574096372153216253397546874735625391846174536847944206441505696182662524306150875062728848841214887664711568847390362925469137791418739885450765875926827312798641139510987085708763747089406901715373955168160610542105876204171237380771671907480906011539656915589840822155880886231554257196109866012425998118193002368341655478837559730961574252041743241665668429008823209650064464723770271574465078954930498451452982744376422780330387689084971113762271285739449859554453669104868112038866765805629965733953818014511948511280110636312391650442176228273859068629724806611827307068846045091483391137849122875654802539488839500133259663010696126511479449222024434380809064107103844401912059622477650247599793381940411695710923945593093078897354702391408683816864445027596053982563587554623506106317198953554935992953678081175239705103975461142552055288024786866008991779200492776446558454147358321159591026279968661137617149965758486854982650531386327906620209878098660660253445690986047377497617137014872943122632261034081497380675682316627324815824225006467733263837342797779124597414378868269010877849556199610488214672265861996312440545332853852072536825037228116642086311218379719573394361024639699376614743639566169706782831736915917531784065543160064274964230972538274165451961263125837375962395165912810164002695796105438843906815993425568986619504865238065589121865932939126808369347389166525682985260102042260976900375530424611159054363406888946950873829560080596388723815980819690165678946155234813348847828103391161219288566050512943370125176132729709990738121786870217031412470271597943242634435022070260015560337063044691770695995020951707621054651819294526053604809442429597645844896223289757148293713463748131491860130520948334225204291398393173081215848857831119505271407980738144226349327877145484925361770360689859290259332448918936541234075543539704179573529899046083775381275267850010934053078530000288408793508507531431514442373654909526964645377464184649623690146858580009856053594807016991433809529141775875697106215348298644060875751214568277030422302035330395831376697255626377716553191964380584826861203135150170050024736186377317649938335955257098684599922796087333523466476766397491405009491333795381477190998113625741832233131631460852216593530335472189814572310475090098842851252722825955872852178773245396406073558329924549002107620134432706625027253004270707874292091934837400237427170316966410945492010783072334166908265046961285969239079200580731436087092195105312599769941427701565547926282765789168686614827522954954694785571191018203775387081986874162498429830195608036207134935722444625012761291604259102854556965542012814773549747515202012547853194585555499444135751519290068560600172246992389882740742231929781241579824420802403660731411606976748244149312503339348823696025176573649691524274555702194093965433437119055961978328477258176204474310167288397646977246687823727590463888419790865580874422171370203719069228666037638149357756171013783099809454295734888016222844035486681680468682010847212667781459400544708623552220740911589673627219545796502884546065437742393400890873615428316701512755221635916901965183829795321264071100181006065580616222412355080066470836020518644539294568190304371034525814022879471660910206988425988232018825658318482467101125469118925738186063836258254169829196913712281077173879431182324938639545043485767025849561487540127425265158607367133177974664642095274891907278819703089324888206187712049705740237638491873881019816455502217921155216617915173656171536154631668313293773218705250880556655889968202462306081354032314461585936239512616367961016178742365527119390751157926798778980273856488053529033475066034623143364308865030719977969562034684720092728015209164173756210966993279102192806914555954548261607261113740972494267960391356939487222713640562150797304368375832583650512924314203743163798623787581554327608475222374157861995019509126246943002576872470244856393127253040650646273220912869627173886216681843186308343007869266076544944480738528742362767317325833972554894120442758640451850911829997187271078097025158966492612525841366353500924609962238795289370783598914869357393546339929562720887468747314143562878188954115988973511476828646323370634865874682070429868737598210824611687321163188443905893654309878847616426266530446521963997677449618504027695072289910205804295166353300855271117885066348424723694812759575633972372083851774100506790238936349215083192562258726998574528976669170823394337749249849662057847657590006478981913734170524674304887452444115914233751953663858046506811825055310086616667131457409444463795419542858514504249167784405987265933811361671025613725862734517483269671616950537859453767234395909038712934056289970961694488849058902085290191896995307067524349398738452890795628746627010855815564786472921485351378686552346006417188752949637213156512035021178620265137248656227227956567338097197306977211802923410321301978776432871602486071671096876639514056381010209821901968947363994366811519774114097056700818052658215791195307069096814399955319926412069889084681451581017406932960267545672028481220629186572278680742391593998265046381004821257169044334062168269228698629394282616215900705270664065212461621138545051940036518876206318810618690451958100385208860712548917141800077214878778392794717816742561873944051954603138119131577258032214423671877908963291815090284000696134700847485938744667362912816825042185021319871392366902359896873223995034485046290807817920656370817810700692024191811971697185542280877753396035291259521907969193309771742569805526794991076994203147085819415846556572829929017303408748154855951891653412936358608760479825421426473215220417215594357325941408639592469031602691363338552558751326383888291594158747814398622935299564657084165097807354052352717369917076503494771257663896821140248929241765905638480150681003562115956816121155184408879238588040717875408633842287845815588493015406314110082695841840739722215464582210238668682724198274705508820099262648576870415366916836074402907406412637116822362686160975661762006010183567519440301868393130423142636068102269413167169094493048411750049915272299740665439010525837556911030811715435141272586969859977111944062752261945162941139219696588070447140452584361165904673683986688710863696749855603929298980912085277698452898550975862844297342756421105938549818293095137298736076657300217902325815896100710315599974146972631149101384072026534721661342157664833090180066527325881722838314980868024201626785229795116804928974874668918248103065841365238789692410701045765083040915691093653447399925649865471178731810812445942405055423273131912904260202021834273776442579512378295701425756025321806382244082772338831785573983746065359243320676797422222903897346354358843340336000157703421296609839301043814635358589366866988992221389990910349737165291689267986330578061552911990682776981293223956835301191234246176385673914397012373922211643251312800904005852902117584362727406990470001052377585060259883504314220643278983086745826648326421877980048628242966933138496884989355547383878931328485257257165502990679593066085451783015796994477979424608012505422690186900943679890398082042826121852881552864666116261388922995997666753054178056863175835034109630956264324762319860207120361762559199204110022995456210534879885714353543376252108770696461210786506079497755112471211107161970921925287858631600077122366417500479840203726065273380460678940943736364655348650451656112596210284192418124564247197917679373299646856915062746686407653835933736024865429291609828185725182190037190411562834663621997282493287886907921721972333445172873436868460858733210629239881877763993847124330114717964432099780441881090249039077785270140415889004847848785094742845124902569452962523158893170491676585039359047692200237162587297628458864235530097511697088548955803741040526677702788149571199530795087834798329880656328966553550028040560317294956391540893557862020820115081175423512493698785945967231901542872810892644502152425520450184222329365804741775104688786340341618276884923219043422220133310039290598903313765470777921223121491689852494908960992097588058917775198142385833190109184138283114728918923852773966048441876089397511934364861554876743898170326852643352869310528691584592171241681419556423656682404478646804111438990975235973894718184170163698260632746598117177998869589174994983230589896988869981733154145526675592296835514399229742664467268331534206095670658035309217800176464211726479523163089883024592381425644456738631486099156317459507113345646092433605593276545840523308134331789327140747242403681799333625207882630941337692344529197360479444387128522509314052447149733510937488174470442497484755056196925652693832715324748918205405312022672336027253479382587761242814431585525444913589271443304272173852851440788524381189100391564421738054186254134848820270424172388827846040905970921607999364944916595240088691348452300437120623789973995231234725787389799963042309842358847431164766142389890614839913618229805577503971810045622398678022737907530373076689541616368318414894284865095463967573110194724391494280926562319674514764026305420257838756237052609307858200864876116459057594174078958993450158653147767066722753514669136440712281735961110211868483233771976061430899308437310249219725681283570724008874543885349522296784335512675440400788479094772797357876468805170768900906476864625288562428091419438228763840121278398713321951839352255787362837725322791663718357219732885510540557203329738668957034945687182691750428338457909178567346172110386108264074545878712397257180548573375794615576966784398494744484829421245536911787990025461350904515136538894220291657219225153421170593694391633829842573472575296581946779950617287634543076041070753547538279100731446755013676093418028418647188461605485029740124707583755154353045108356089085522039952749351084223465187710219042779380606814515182291709145825717099787281658244207506708365108578999807938278309541446461113439950320193909551172687796154909381846783972359058024117395420523168759555578834763921257130993894048693398909797337260666438104976403845924499209699999204172386341253873593296551295040176360204390461290794468494118758963437208955231609972878672108480729273575571068069345150577726109744026039562463557262348786640138723021661574219431658146921186806077592477091730848610057990447091922528312339891099445485674613832752428373711308946037423088800814469353358455142967231862798596409756611490104207581078212334416950866498905017533408152914131919538352399356785418681772226648811325634701046271829244987708188815655944988516409864063365836710768371804886968567422147371893886305464197093547774302447675909703267045847884528547909820270390594010716329964967074420515379791957417059254675832070299590033471560395358942793157442189763618939190615534592674089065290549211278488754235103264978198757855039798321536406911593096249648877351896234430959324032292303002435851773012768608934548525928891561178522563608950663202957247434768498007117422131940369554116956909742605563516066894690086505585805240320006460620260206825796211147269063343526875747545489263450596685273497365931637583957477371201136349084038760900739602261109390784620298046568250342324665774179374095409687810676320850242635949067541491024830122934453539792602042041536806492999043142440969760393119473914124618033764990447503740392014484280968833919366591473891387027014341314448003607513507261267203114704513743140704839784010726067729649996383165313769326944831551686886853387783404383937662904197989340911876516610251982487045072465760832927956420651906267782678390150993082878600126199158876107715324892387005844996505457289984479905095714381835641139647312818585333697232264364220710992951127014034476688691606354669543256183192481185269501788573482771693641839890568760607683250029246652453258917821289857842910837440213246974645604800035375068625198471654016774137714690722194150420586631550692650280620414093692084079772215139714424917306663357824506731952224439831272414257312773397879351162303295334038008199337673538816088882152309764428194928755454580180559686077989861201972023514332907439042379109197532578069008870985840873201536582015998914359630024901987281464193194233130867596682360491073489662434419453561593430712269199072870245244189988213350565862451299011847078350733005438457924131675798599055514016863972193878993841471823815402690975998057364513199712683927917089427307717310955369654674928024770637724061211715170404369382902667443820199014562296980634370477719206465910117409352508251685890200362976567085500008205987809062630964904207278501840775231774704020438381074303638082092910316975990846278304084508400344582925531377952252744681071942855635125458460204290603283174107809602969429167963628919344774593609262979956886617500906794059467651679474385024878099319490485207705807057124040470103946030831039842436492558955432266946520073634003579793041952278172929073739443305722179145404126514603830544777048855968066544527852164833619863641335037662796865701064565716428075656626552765170192486948004669152254014036652064741302311635096677640994793889100716379906111835963654986659705747113345322953706608433610355796081071759588434590647383079718362172840983577258412799198049387316326676287206999046164650747932281695244287318084104629594552041432831759481910540756643000011595881978851318895471291418847742716918564207582855481298434961501346619305844283726209412772971209372006727252941716209672543240570401323532952167965719133998997283815446429088376623613753820154654143799646184206219598842451997021980421391113450451651095258075940117938034011357309810318006992622435625760280388299188420844849594849588285736284154710058353089893676397161613492981543722966588355807624303254936313563964425160576713188234365891755745350437421818164470055001083240353023527913337933643532652528272614167201588635600122980122194059899540157595216587678116917192814478746979911657238329496625129847203635990998108270318958843518335407604406612344484110507520516453154006315401191519405843440447659243019593686959813933183512113996595071675349080048084347591603227306590490080516044564193533527200329334908419805157269324937464359522438271240395997075369043625186623224060673607342918367278155861898067825309132183129693299172764182614236791433959755408945509037867205816784267480563568298358717956300218366271565657981715800086763128796118834858141109032447919695035407373141436170034304692824494321038506224739897031308204764076341983917788714438169092804459510764153808785525243798962417269162781157051529849693569766156684265119532119106919258256228427817640789790340960697835387244106520567316704313715377840224401956606776625853595234049282996387941063568710823820068109303739221663480133707595812914873003675431816424059845790815939982450400076785031897182182859639217881019722780213181853578013484350559121430861094111802374578090109897954573838694305054150288581687053778961999118911500519877388136707642100098956297054250706681250811050485602594820538883898286773074214720147248443294268619495830387316258031007936894496771808025373752544695411736864030151779356796600204562573880354377560533742054178483137417659809105393044349768685291148568215397586884163199904520252260975488851489475356260686141666025153948385293163558219507894875959789274162394907769901879744447297676980819144345712729103200802865608327504659423577172624894461439572967342736565620858924446023610515087611534499985517538905558959851110066168682526266250022572168388837946809098358395336581360625705667541249374387923507056224190854376966038961914991849737672299542030159500678618762069342055134497936218341101657747580801915590295087464376956940337407502139933120752427664267579283707625663029963618218728794041366834838206062909680075815287008811326247003089047462581042235261505345810959017518915629923073573117369624517262693828825330975082293672346716165025213759078711115608465002505046794315658711302939444964043848585300185631891864563544847003762612744973941065983845453235422391987845031408316226718197243444706345983788201368855016479240366422861555400745695552722233464973543168950591820106078658427195339715397067905598800324846254358164251859580023066133848907724615604177865186991689797814346311132131976003919521109839629656498815102969777991283495727288630221594084276964697321834883185950717083928696228037777462025529648496720619807386268425015824501858261622852536875628891200606025866572829112826138649949627995544812663725159132447672355920493090472118510505750210825319149527421166526514735614507509525705035307470587367770097792079232187887225048725572036075371655140841273093663241651958804411082289438534610450021621658331989191426296842936730915696943446957951142606248869478388537449362677556977337069166542509293132802286845499169957303505786712202867002008894490631217230022234396252511884520440176972950497174280960679204219993001835786135972108862056260911728125838813049677364212569236879909312766194882442813284085637105170729311452601509203074806249917941746379838497680502664791547178566952136932019983770465719565496277391750522751654892477471116651216265631523836123433163369717678948565385528177715804337937505661427701739729962892983862417914530688646978332825164916385765413069419083784766148942319445240766648495235348269416124418810273272301870051933488075845326783337858630143612244448740069378378908894879777866822433123180364481302637589376165894455691466167721833124471578478640979474495218255972784168509966220201544948804325245301984402115342776314638469499567797826488246872165069009555779756523107372907074211038405005036592396592474067647704814072411392969728454129973358463272997271679890260263387330732402581780224717149800110121216138768318816477675952041573219812478648834952390868455511768047928947273324271682141934502587160009999143907570923081028462184751047049401234336795271086729065034151253192287492716586933051681915288807616828288419643383278104357896238409560785533713714204347099042781462366082272007541269952469725062781277968607319396754809896639047698633410540862361950098514035788081206386541787444532534329496772625392503485764685402971793540105060739021426234480636855614339122649026582101664366961167412543236108361018696980635420521978624292090644863606227212612016651170653065705174755907899053642513414626228186047885313741749669472024360906405786752526897681575345916381314180518874912087041123217185177383304661315141425133563822752022870606347281489618580051128354004619606409215812956197099920482892775507903614303939855384773044243174880072368939981040133976427346214932260730645785069676301769348746635618461277706113471103031243015310782264305308922712265639655576260491614332518361342217835850055761026382859893913664502291870830857456311075595376675824115670125877829146679850608395976652732094308999669919107889805976865387848366484322150565287399469144669811120793846607072938087179213893407785535363365094524000889148732859955761511750561092463997609085590706257756005271048935991427769035824610490862605386043205614844679401097892649817625967289424103820715125325930008175714484303638708109826983411615168033200308496833428253591304430872588835243929742089238614832720202479706892080017385314095859182831336204351643413224545037352420452271223150160718103161190174606407114318791726363903430747531803714123581859105891833167603172821753028455713007521249452627030326628728719344167657598175615623770895053715706736437668704709965448555103334939966168144163033071630531979693532689878391672206973011452937186542668390810824467929454996056006951082492165929715365399957983158281896044240863715451382560728728883863724293546833710127800767317215910601079293294921162723948213646259576861410467239191966178670503540569092783813029385661792353945850641969815162905821314638034743559739542853835515220849019771281585503105033879012331574597278462766424808139233398514401239491155750800210550650262877153196422059755000650701806441085627460588787046673926061906619030368879910392235494905922786592459196606808310096341781320292387617037515263912542366681885009050266034721594409072926318972295694856942483018509705911713381979474272503050114601979702730133162767523068041401646306828868396131051157008702687847363271943410415892402384535581489058779775567382015848434766068664705019487506949421605671031431862415296015864155275902424507180886807290341769395601180977119517702324512300431634116137326769847697686308578407425224790183524517869983984453775233134999262280938870206644726828874223674678217627071941241420606535727025271688207173678022509161401768381555999388008418903841934285619658747546885857959671574995200159980214595699940192377619931753376742170942277544912539244627670730176115899207557376984475110520035290529324384583534470997161210595335643010206014016463546853998161289956643223780759516027302625607210096103904061908964112733163364148469267657987786571975904951712673832907894831901517615954303439006493513060856173963652681078821150635746836814300952606467008819961262786672868484791152473338882817767372803274733277029594130440672357083419599509224331011100612376760428601119637471807960691075244029797861618123161457503565919656369150872141505771211389264860683008202656904180788577639347418877930359703187759480372049203081182834430879439337157505053309093882523873993760742261236127806972429016890905988086212262200912071505155074864259430204484389231494499851959069854940106745244478737598957590138988472103842149623573734916851104835621318180907394266844458081917671488951570628030753725206413443608275126428163603672047980914525438854463455067162330596571912326719206266673411954015555662599512827954010413281044089534102396399992780794507101886212428827172709131684780025699280668690068022115358242571686169215615843133619470174870406209366258267513275609024513701547310539236497495840901292193817993282193710476486928419776166326173718576634260465182247296351107571767115622720127565998809203799354587592460306645933054035067267065410875864110010755379558093848581665721155750653682141242381241181757157925019741540255374193076295579857473237277050666740164266045272012495110238374090599580735739687446928111520025635889327954770027754402229248756126437366901493867270440254889984165858472134630885682318819249993869476293330573874916505015351697581564757416436658691663313287477104592944535235775104313836023833633338045191528370982397168142455612887060796618099245683251251666427907399772162558309456743610741567041441389326508182694767430851244688484128485226592742252185611564714044214632306516520922727863824091490834810917550662921497465268164710526979677371137836544503364486093196009317650185898540594461225894163046994615173334395671521515219607194458768860061723489362138724953876246365837649775851828027411336690424487226050236184135248678199782168958311239349905039727773229299719152895935448541903538210701799008686777232388923941006463578409643017135221148929731666431512078216502390855640488572759631519727306784533504022429829351915840017503327359708142485174653343767989733098657406705279113811603120594529679423278795548081356171934245626423253848930131098175868243267086437405496426227436691341094731037043660607826629248709196020797852272978143574210970868273336966863936587701684419246928820074797885389106317137945455136779647956076815375825044932993427702094880251261963128142634764348068205346156922463162091801215255601356348391743351326307925967740947481996256655679731099806657608229206775801975847599925758970641013952411915759044531995572807621866271370244528652363266880037647466038784962272519118114193971323910363037483967853816945249565752685445094980306820194894806971853578116170963426288746396158015407451951133886897696194677506098558647833317079243753462661683899042491282037667980877578957519089484712110529089390922255556559178871687035472241865074814201897997125076120436354449430578057970214321765816576849107898253918269641654564531153446582324582282970417975412978311790000905379752509394366989670367196644211504011583195065381974255514202430701232672948734226224699752984985413444981360842186715036324457178617633779067479789916499582571927735991166936701938196798370815668261688915144319755400298364491569616980303335507726405500726399092206448055345589906670367414694765982645626319790493144015435203626638071306377624511731684196241460619541583221003992150663151806055409354838515955693590270581200294817167275738896278600294872035060969255693915204705308390556387732123173133458100190663210172479243527163818817052076201545122839274261188766418777954170438648523810266227195486567771860819314144191549995195963596834341223438351261810857187997466775334956874632167479463206948740118894738046499207669051685421853380931280048618929718138589044450209329985628678393257536106959490925359892682701236470135079688165067492137800813219216333316512203350465747668585960926520692841487874018142230547421583723017066349938866445851372904500228370123087982903552789259101127892475417861208579935151408130053964035104474654059273967892194966291771407477557720323911587479870965922954457044401021724585077333129465765582174671779167174001420079379455708826625644923358337756947536983862690494299256692901473175090050832494670226619920856936289736860672004523128629934804932753983088189578043216439097426401769810250428849435973957426427443401353933813710969060399667159278389392207616412352550055636564097436753924758523348622081293893500864286524928782219685699219958856342488411952812438160164688306806143942023663684792266069594183379516270922622580625147537144560613181274036903015435855960223535376959352898649608867035598693520198227054042338051386783210017276139027593188366759006207220279004190956895016234581185270340907683837169023456704447402558795310544373458912505588806798029811416959304332262801649444847914188840274028744551979930215555330794156526218648045475491137979866220797018017310280863353083037416919699658323194382909359341650997487494231571721960614432986427803624869280189130142556284575836733084770542188283183418105329991387381565872115229242233663302265816616815985976521485393198200055927011103642585082822546803546443693243080271396453598616951273120486940538471614350580609529233596350323462199844154610902516361500857533686937709750581548717700997747823216619700973964782434352819016268731306626616261335894437403117007906764800767975496461132229686288272499542008485322422225974599103453728781459784390150366577435701062462698911067351148201976739303267633403704171186973712680968200267710658350256985731379208172075062163169451794441760693561001525032297948729382678018626198661577156777695421010823773443195567552643144162364440826915980442086263826607929490323607679723719989306876413317472441143630245341294728881722891554339061566517450194675048390018123194681213546609317923292117549543268182290329258212466602887300969767327172429829248819251747241423589532084709980658463174337149179980967534189998468919581880637584497524890755499681420599821428999407482001261839386810161200970425075677370942890103742838450331536527146489526320518267612581866809302247651717206477027005765226449667356470030213488187380324258348272350914248533081148361407810163142270467241657102586883835108741849292273935528003509571906385066306026447600936043008373972161968898306249413166092175797916319189011009778816813571714004173309316194771411923369108649460393690412025931604732468098843387001600204587225485777321176319465467594701548296426058472145375277636134121641613982899102835510132659762036944149855036383786402473908968680805625300423546361681192875266276902656384444180815733980268485728692928947571583678642901171794558198276890458955259842295972086837224810659230700857780812806385512203895527400524565858079928455934951720864061088493784115206869959806297194353989924062075196517850715501490341630800028063656883137083205583190473370912162526034395336596962970518400447000597924360629572372775963669320184899562945496652434026952916399752734246640058168595592591305610133290652486196760999530627398750254528028913283436789437222944209752391461535328968968193399195814720746778877868444793871050604370259722456193844517990383492266303874977760707971567380970927754793352030025782670525123988903684790689574969467130105074809442108298776139597759114035694769060666504665320370052203202688041426850767189336242305028550760915939390699440256450871519408029837199743756620634553993259444636753676493454995895926396337829316830443945305350213639557392388592514116556415224125089268711451486946316803978776936513922756933887997965162831477434061923652109324364832634101987465123914594552233434241771693146002914577026071851061231536136911393879387419092558150316104573080166930900844704071199003734030032852843957058190541558242578904533103834454967423577175500883473720878125855704653935942063642743922036485290853795595507334682594203482565398248196262088467779349924620550729576831972930064339105250425013711690119039427386487315896961075093085834477294638169418776233954523875584721061317792588923242089300873899827190663742050287048651273208673570158253914764635575316287840319066265050728420289372537555946892277789264636806073742220237547137464837928421877263291984642644194711199429106533359691495054534544375315383825457323370084858091114558171656601564611601022982195082326756021913101583940318553237196295616456810236483095882586952298365035391654709765297583179929114247692514986603607368508607616897565318968059450106671414528615110100343254834345651840155891806959978117301578483686969101721521400412243387476868292010326990171362756957414643251658401090049225949062854432831970684388821257858268170424047116949668948946821752497606356846011960663046822903524244940691633501735206230832933001250868869554690395647229184470519416027894133719707509610247934908098263710890650359592093341185785548612962034234426647480980353055832439413545694961013022718172200303281585262951906451962463339985320658866043784988017081266558249389915966201684229138391371308381011239798537500576822149979917957125386968147254868296654279362680928652574983295547588216700286696136458048550776996595730308052550913200979532903824010860109821553986767634521722427234024141616120840963224627867225455066006608821449740890120864744475257173236688043460336312198676922220055130286250219801761991823374147673587397163594266411039912904612618957466276072202942248703738660166106256684107358135149481564688532988252325832834726247880939485102114863059564796049726492842968928154811396922422497474208852389542824390955174822966021627231778984744316092370323863771026976474560019651756268803715382560699523731924230923468717323578060832848585016728769216301542386530573204155556803998344564960801757125379019252180721710084553491950486802886314053995085800359294065394428669838958723185737780739917315535945544685147267617410316641335582143388313599421168101487042379566407212460657845037658519037551630585641024495916579016425064427593525425762313520388282630291666046781766199244711686316816408619128575198838025928097104715250719836743489400698163917963434174443257031877962350851856250886106342095076000729351725332910014429522280427476870421597367749054488821506436602863018495492602002777862998209944948157766768328438598468728077521182204429182170655600059989227990399399572111968375988560942086953518224947846494794363607424360705133370374013253490696398901018546567185114024709562317181655554850688889493378980000063827907205655044682951148293107488104293392380069903158898672029157324415155183966252445749473152354624678619294819545123981145383539267796302942129592411063057198743936558363991555721620661674490559834483911357792723865445496301666207430704481852289852619925417268016795448763251547699512054316794889052797409657368802743906985387254689869110698211638239079532840000962115586426893930574574656283582322135924604200800470329481527801385645930563003705339539966283764102543900054564154296547001752484466103696470063507434685927034433803023508087708097889133156052609382597529069727295166549197834519256013727158847717986410314013700574506208300728836031617966621916351959800317187633072979040452290547037470595816947246723773271735281033277230799561819258764342838788443380701792935743876356900416007547398299163513760955740234260117856658683900919875642138769684383247319006653993964559778004182588291456146569652765015000183123738618096162429370360552657519010545532493840798154688021295140313038068505013475398940117051209289537493115638446104080413214350301326994788869966208916899188523891985133217058668153541507474181356774094334525786875630275347891967442597939119807407080998920485391001884635627838620701343766965512642768854821214789354104130306849493667141608426861241933395966801587241670340089242361363448003509320354292252663920885006851286087637639276899028648240193718477226842903004797720613567866700969098857156539346155465942684888589952289390853906995674422748795380197351437941308520427239571032752770848814888105798814640098459711261667997700161818881700039252909914161679194245301138160841782595387959829758312590865532499686126516616559459790457626197516319132708657165447155246465269674053230478063838293007187172058280086896345149488159680081422658293572846071790611787642858456359935336616804857795214903047788831400429454769146073193302608923183050165374462401988704551830536984636362422435436905847493091343332185163134991900036576372080705887965018435762729508186096791813452328661381290607221826192917663573824280284777584913128849947944145569677105413346705908957623368743520642971644198768311673415515001972625501477097745585137401618927422740028798844026400784030875265751184216646201971594041359114719408970797011049224505209717177689889717064079943716784025126065080192980135151893458649608777371271431602716810967869976139455268207671182213743824063554412725124588766961501155629585129984796456360289605230045891535233347359633003314080634396346321456868927602078051657798191607239326868932456009352058248391332514679793210006476410364731409564460805744301754954530557269194464107944946871936369792904883093476262029637721069308362519259666075429075317360527323367556718942051856319302943411550585240935942404388300520496514150520510942442635233569378102361367549817086855915905700323797277589832162137415448952967349676070572011941972468086416212113377220268348050218998232798097789688703319909561837212188592818059323242343031660541674162718975398440246480179250719370853027511748590855198989418496881582526261362885563297538466084967277023526006705463045321881179817895305931068777658561208343967452191987273364779197100822073698914832824408451915875805740160607819909660732976827942970903687613508278366612755924110258286647920435002008114791211816656358085786299034250044221135284201391503641666017689145825646937374332953116962793637327919588604914299172018921140499856377679913796094078808309487658887335235616236227191632240905927097736060821802276816851828366683515998501683269479280816798643717482968549677556879155430189352911251539131816900525813513493338824589856167919103958231344588535682137117536404514419916468875752231662125823936404155907390292479001577222026352530042479030082219846358254670885380301541393056686934291768004737441707244549552501408279138998144079181190499881731762390399390664089206555226650567498349051671813521774793272527437168165546141822743586883987751936354670483446646604906295042159539177845471942559216002577450087000792962008922786513831067102562175642724362701057055823912526696950340431147778338500049119409947624549013983420960829313024571329369647985793097207282027102455527233046088617121081343903108032385159667651146336322619358203226590997013555678712759334799723337741256946043918593903831983651425231553149899805897736577224511421820257083648947529771526807220929501794039823126131910736653314553032049645496333958527691713615520771889645954052075323782696303004350495420512177564371941144388885508215701606946684862607525483619881138115465982491005861786879042305387930671160121240917099687069913938426882038747173647311297736707151387757578136391458102812096809450121219114593477554542842844617500101501204218634429967472304458212362848143890399742934459962639966874626921244167332894263871695038372520345618280365374736657711376600791821080463852727834417540101166676625971575912936519022983909752431338422023161084903112524941939165782655929756124264031824134164462509853349391899187945311216356931820419862786776272690240235648814935439777452681741883761004833980778108211525267316993688007965456187357149074917521088302646801823166779550814493874709321059617723897570245293375042961633143752736161666869360349604562770234029855107084781194607612334139563831073140291960937324827043520303617751547054974503989506286906324850826328684313619577215854088758094060055427069541006869266514145915337674531068069977155486955690080111826251124839009496132292128402958182470701464326992975864795620154882660535101786032091708459529406450408116496297947110590897391310647230843943295163494484066915985530638020450340763966796031963076316276850361435189659958996896858110127206102049116274643347399470093238149541763809971236468038978183375089116990549370345553927421381019816310092961410894047751625358519129228730878313053833438152301059308297083823909165955370919015198559578616206041383705346032645055183875526303681416158265594781305376273696642117703194979302318656326949173677075233899399080072963731168031296650292364213074317791073376777624967447565689220542188948597677220646623257240346243005544769180599711311613930761194940319819567047947087482080277400840843481347871104784915266563409603560966280510830863984489903943033159608990584807116509444292149676705428619818142696235260941651133429331096706716930071096739684613310571891775842920394218521340759581837204163684676253995698723235764205393663522094520303961968048962591152029577466771943764660606266936358938750682225957311311884758516150928213626659997088622609857154436062011832930604492413603727535063190493108864429889399780784019761299894873545845890907380154711999673193389972680565018316215857560927278890005589904596490840684869635638788472408834583725665701774887810373627320390100861568410184732643141127287328329365415044604094920080633784726960296697162862987300608332943723212916117921862221646071985410581964309083760828394441356687722847033770814678937228778649888780994074546700657380097066488164604683725752523296264137896040130244931626015898652391728745076735772019312874883199264809062862234594382209955238511112845942171942408062407329400096804437859273478849340401476759396834663781438178271287665370493300339729301935837946308567413076683092603968895319953943748389589656301131512180179388400945950752299527105119656596283381512716935567504563680256064129895319622932296489161960806594607245205187546764654191483348259688901401122854873185242647755863538259297851762045680340565818969274868482105202638817724794233894904692276146997489066062318668317749408914929167258332073959675516880081966826704381766345520496251019845843117118111933901464586155706415060712777184930546237658558726543417340551108545922512999784034329675029536572613606313512645953108547534612138810705026997750692187825981939428037139560628985529858007623697798434121534084793408773561443799201792226519252487848014291098067418268124548965885863878163344195797603018149168771226907939462225420734236951259671176559603319857147888975777354044772881176195986610341960609856387469328086434598165182509232181262181302345896264925464362061040068457261443620276650356744835165993608789065243690917923037376038721997040252993005675310443759406832772147280861024884963417256480123581910114255840776209135354650434691442481696728863060518871848395905923900754070946310805830737172605694159921806732857243029096728453081853758016503790978203725831405285142936436405944768413784880331096030690938794079685935027160590395625961136575582075898614265463927806271204790052323182047637164660568038053238931792334702041704821907422869997552841138229265383150867246710560955249783555615333808456124079009277662498961932097738856404111764587488240865393741991972988707332354113161581343227480134694580794076074076502863658099572150765696830389303298396676046193700065361496061988316911089973133226709326589243957002628087457784130431490849117903902688775875470251080899284547921122678215731232619443139038520824318795055036083588541381589185021210758853566691223125057188195341103127521896394682083406733015358429705321603419865968329185952329946804076693636073095068439512197882271922539586618354703113401959670519094386153036029716176423933760897067148133501569440268976372010844974807219689450148405453439728659038361105100464576209285894505695543016653617748968019739446906696618779776124351422002734033799607669903779180027427423355009510753481633809281374517135749998631079356042161360143145254008049521787698397819790232873379761605455685723438884303675412170207505398058372973652245486745759084198994462704371644442794260569023117095305612522319769450431966344449406654535005574066539251986455223269448213804121340883114001911222417573731887182320678275621531914413464001816463956492238734468516664752933043377225044139627243489526031276860510748384360173761574458563539181273717927016196760734438303574653826628093228050396134541838082818463396720327375855304194139233036651437509140330115570740695455722845063342080293804663617790432595374191847604309877727481363354442048281459939202806525383376063999978482191734090933402127855023157071117799011801965606859387156824981029664531918836065214935952926340580576828120968469500062974608044432432860052735557056689070711378325021050511136631213775505879676551940437173502917447068944306433746561040911104725104116288238352847234579698389088496243187144259838710283101200173989216414098033077211798283801331829153573765893022095676839074622709143715533825774031798278367091445488292114133362385440348124750870657152326741844375981956556006061833457576956519507718940344163616685171966383661678905512784096444746675234837065534355420645682808015596282517108973167375866500149671469770354398812375426443496427881049482728888529421887628555274555752496503500263767559429128640985200588449072045190193313121124874695878819199510152097034435865782105674697614387620291200035140806326753782299288998663817752396907341277368353070864094254280431184397114787270948936716126431256373839736418214482883122860408444522372447934578974213156678554643755956654779773025424221404481795085938359207342468705102010683681302288843537352404549874251250185999141596206347594959695259010225877401420816004198081669335949317891594398817599745635221561136141537609390481747327666191582325726938134537537118420999291939961826548602528100999475872364947387332295117350792494242636719057788666302254081340928138200030901418996157242446747794515669697031046414498738707474933781459993041648245660802517639669268481213380960324246571196419522844429697984460896433538231399106435756151779232995487320859524612933570723361969508678395684328085217390625227781527623354586470536362242407666159900077342253547252605077258653963107824790147556413381880492253856554881541310571904483589775187183382048617331466740262220405974212488019951150921852739048428830832206088731631154075865797374207023456460964042459039182382237127974094239180367270247476497010020882505704235460174106661558430904919912003183695393439182072291312076580054606579964522679977383003819555935570731133833793610022494273632279400190022569411205174483342567698780576989438353638514702424456242681395240642874320880263658116523222556487214021122596708085581256247230083475674293080048089412657842740934468807963549164016994133611201788228189531974569909840893382530036075039878970081388437919410996029062587927387165011854648225008942453759054831500253980408025061128834650000973991119653668956207284328269109598777714427936881588623937629144630592690582643799764636224327737178056923261718657706729234917671768467057078010818855977827082097185113800209950771007019791459253583491535365999489173666685373955026192558921512879436761737730870723896885051299890836733062135598548650906990916454043540541142833998875462727922006942415657785111550821990359771009838706318880040971552038521395536026954868543229802556053045121226895732632303542005973424064550378855097549591330931618736674471731238435879125785916950016449186981169964144532533140280492135597280570598277445504568796158445959639872345215030055633104999636935996346472651804753506225935323835595908683659332510381443490885731624227007061479051839382318925424642925681773404406965384734177900824397844942947005008046760766744772922767562811661358679493137921708037839788288944380296573376168804328806987656556669326335372425507715610959956048917615890234758843772182829672269675188394477069792129035218789067406927419617346998904615507689280239872056498996320255515373440420769393026356255010186116791024726903280063976182731852199499077900858224915325564565497874734848182204223973949690627461573369343191745474073828202718336903687946275800284840184709273103777190152462201528088173569024951746775112228044772793490178136463870723815649027715779216514373004908412661590385477903193612314995074067545893750901747339905515225931697795268903992140254155168731371083277411197619622250861319450572572268484094374049974654086924303584040218907740922267968110214727225417432736334041718289154788160362280188208662808724425645316695778411627982056770887579388470970024650491311808000781291643624105386906206678137090531922636468607855986486700683537814074601111215110606162512717320429370128005382485616255151551422607239271042870366244690899891596484848242044960343586421371037441986440509232797665267504265458363080580599287460018600699523515586226162316878119391092157059423128381975474054955248884069672658359403410645198138809661562339379406779386803688788062353826039001474037890617971636575257050681224445455086522438763183048785393893247698001342166887852577846251666259033356777347006530954620657646812538385627383394820113453670791230049433251636574056933171879052526760913175030855435589892968519583577888707207423574569312628076291530873767572934697820209819098197754059608222168202890973974067391586267236092599014410639216200015049754755985000884766642485209737459730559000364677734146292923388460520308713263746079416034988747572416490742039620047193902763012645634006056804788322795305783481818092133777844258457197907750387279423573929013328146341751798308874951046064059220513150263044553202753225013855491406801009088982528733876335141099677457963242716448576473068012779428415918552553904402797756685230364329868414220978564101402601191162976768238596692819004522478827299901902795671373037213985765310579852216105719556518396393386529503685493572110690786656827486409123495017379066643482524948666422305196216006948312235750766360695985100744100932104977047599258811068534880710265590359320622770240140050814793993104360216074383785737794540961562787531464264654432717059482856433682671025083962164392891686776400864726770686369700051531543837631252147317450544233146013478039889342727753554065120838325848112267585508694303317797353495614069123895633156780015936453605990784104858818748620578031743211270410973260392119597178924918302941216588604954646860771798487251703873119723075084524658344040441151675250483408404568757538648071681133729655181601173585555568472194619280160898946764219597036171164000714179212786238440798021989382429238426346185550966302131505894610617499577732382788361801593688215280941252436772428005471621045448001614768030528816394192160592242285531612233909868519302900016115409035281906299541073197612586579337611602698278883953302430371984616139352892744610989632839861610214948173816277750003489175131919220702659119595680525819067689951360237735943905277200831494185820539926861758723072153893004962435510952230123308622128866284253926349677724779469508190179913528281413994156598558855048916041473295089199083123795432544948736998881514327822550917300168374651116413415432358906986751930170399377776188465181207664603111563860431850568814239022207265085762206717719902313531609198662841888248356846006123446252934718277173821706796520736386243325241506598742917265550158300906298612913868535978072338473283512484088074506590913638471122038748078047782298471978951544820650169920377162807729203799662967753509725084916901663882641136690656722288152538860500948173014287706286144146844909657589625357682775822836731183578045284300990646131774472774678676009331279783847510177603572304602113679855414828469075652159891331697492560176247848477149142084572748802203749379371820654594092550645659784374126670471460831791385332788370108834939609871468538674972883228878458343838617536558195170356982119913389285430849921743511359971974820936362950797367282692205325222850332326865995854000849410793363993814479948956041665860478770387933719485629867649702334451015501377167992179981057801978394412531795470178058683032562241002388012736967281917550781358211020623120671305855686029861674952394902611168536111149318939065034464857125845068214126592561258454086052567509155973550175735456082753854465022253888043593460408968210153970776422973274321937358036115602791951376081536802378011272858091878424779224535019575061255035577257593016091602219861901012230423412579680837494136061963944048379166497076810177814041432811877069508561895766769908233981829846215798079515483397728968273521816670953433556729670091977411841224063949463211259339402143614997819883649934608731599382746345823430486269823932785109181187608739517317091901795835256765846600518656400556253223145482051113031460079313513482161245136585012633497454588071275718860143692100038111388414014453479747250550177316360292338767469914309088235483897596356941233040621836289795727938257761567119627858644637823367379156195756907915440735595040858566403014292863790618028565517401466715462269481247600156029992430856212943700389485460543977805994166373935309109717491167321757458815084484598878385713347012107224072036810032618752428374017211046278893417395572383887006201873105305944344147741503901767629465845837120921462535321394421640946725156675298645376372754861436631255460351165218856861988808128822697932451390186842747996808328586542677411959481252434370962872283231140221674769594303259448782472869728970252507355395725402457472185718717862099222588888523926926146791921220078131391003283663618563037486027286407416025519696837183903013093626108406791807191411407257098602054102492312698387807196014207730073971904977318308363971900342638513779212106743819613230291947552563293895240602343640782909295679520123539386281310797459964752700580783521699857482591179687990804312823506323438351978039710099443046892785388780047584886995125152132474555209423189449655852748865417211138557747352473096371225909298102782704251319145632283110297275922043461274433057308157365381343006532398099676094005078708013532248526718258171582818336146066012313998191031895767415698243929182843258172407019298492768100806292940837297990515219515507340339723267901689697399647063149125581743735713612622628157623565133269384810696587087977125295339359435461743829210177922243277346082745702666423146876956405123987798774687836575544409259577389794906386715040934222084554739741109399111145068055740282221844912857764256249182798681352157648583771240369437482589457354050218979642293225960396155679524095986336853968402503238867056308021852529395526769168114057409753057234784181703835886137763178453329708496451805115178941597827768395587365253786912533055615324089373290805603267514339968650050207393862702796638489950914402206981632792814047309178177548240324434936298720576220004989074913730410338998557149674182940119550400652240800451028312076151131708551884320917477740898681182100237927572616911828448469947140355538641862080651561210935796046109994419811810161231379454592865619412602932891381663860785192199142748989418223783732434913688525742271811712706425035366063929070207032974317264542057397188352895175641520591188561201032008782492333226683921058553911191692497494030661674001198992326550430784877080465352347409902514542619054757992796656694178327664137965190829570695778360940866838799701909127474447809238929945388675803240119097324918416793401758757075608277434280349539118118499116267598736785693571859721346186147973106958937079233299261958571678002304512298579514558384347945007334924858772487991528062963566584325165008179922085130303125676108835710490171465055068677643237174994613015074043238360844991988709896946280269186615664835747599657620218807554243790790214450463375889523709371660080310752402079901012608573938040752896896056352172506811927346805437050531002838426719343247325444682449770392609729033201250152895453476421344917223354672421051772181764025372093283902972111140066803448316503636579557974614026094523517637229720370364860799179603384241237118062214567091429574814132801932336057606334834526157570054244577905877823554554656279568687513247497151927872165616504885729758133895026914584959451543318158293361558680171457036726210517107530685027899154594517130511500386008414008792139975162624215981919644243463942037052813042576741552445017164669005850701369182237614690707616959020403689811773631012529289857479834842473965293484168690767793002107990613578975063262031565828972375437373285320780715559993007572076627065121946277755451438084374274789155877936802626654692143691165170450286289979515931839491550578549727015705518662181410122146547815873233496391206879601238679765371306715511337294805212210410343207430391469446686013093255988020990066757515266628376918475595941456954634376079887304099934978757115880069315886444245475660674157916660467605055991634460663817131085327958840839656770990605443655748423163796060740338180166243692831408489660461224565330181361382513154289815984265585325319509835373096295519030451209831510106317984416163343531440089140217657136644843078883282871888897121327785773485862758978174214338667962630402833581929230786778560687912411904151278567313944607257852886640189176017506359718161261205341492639404235034940515636175659698155303807114659562454314794685115033179432359631123211757892683752398612252337136306654717560070903812773139745343127547983274769156550974483852186659047384321212047418188287826334116542562282319646507162909203774908432661312636036521461842863978246450962546241950153902023429100826247227003770542616884554353093016008416068751654361417699512199957349356308982419372834539905062526331336769484640095676583851815054575373132049236014855261114000877816894391080717970296798973396614367510014991269137306547369379290754743576919939405231345310678262304344618452837275182205416588232199883849158157399669829608087499930639948139153706274723692541688319760019983272005284271096159298130451155617058306352171784426289270726425175074644712159192977797751148191749984578138505396058201442477002438349067299830402294224710182381657796752105892233631007180208710086212590191836016905014690671133935487869960629948510019829745502366951967150952368340373649352261555893603291598867833685590213449738999779104286734038601710757364707447528966252332209724373331863501039542215528686280218477026453185790703013851604291942220856195904567006724959031623216856247008539324644328023553517629133595454676603319109319508606282353541699289065607946952927895802413674214678012505218412457561269072338498851905258865792766742840348326801512745606288489456617696167138960805269133893215460432532793266469794841632976090384166986518243537984585670664024165090446714969980738301934808856293847707362993469609164846289114415422697716037479886246322393297521239593553758595221549254172208538542847361862035313212629772960868744117244221924757036412470279791125589273629637374287737091202165979551448438697475018314921071577883121434417020413553763106271858523527715008291044341360430918194805602354342243321716795400814300681710704354604579173942134205761114945858019940267159093124549381325369592074353735313646238026197053489579695365742524044544122956624016560791372534835829644696884405511534943128137357825720102894443084965366100616456584408068813738110094134166838234147136998857579530016459434610319281281108536727110739731495586859396261155157075686833816619790999771591964455896705767304656901992959144001812638426315278178929845874134992655548316302881462655734127024695732418275536879486274013208010414836018823803372269951477209674789456248902583352187797889778673523397400164201596236113605585444911313982664434018600992020013294772017344745003274528780988753521885157646019769810141709399486347096502038420656817843162040458880378825885840979575373697659301369559234169793285363729250609619910318255714157735461195262548393431271031162749101337098268349498284465970462642803758945771958591983582353076130453172089929643660010730772200687819031304074814345904883280274274697070004325956839449189643807131838319050539701298483855023017122031183256309652964899183758991436013139450083295627927902596270707157177217166039481131460865933475160621012704776580148982831359836337569263917106978107838573522917343122784491701400201236296695406465447365604323977858549482025099067172325911913534750453626642517476801142453103809586132827562768747737285194965042203203168879444117291879738284861589488228902091859206360599797982325529080600336568469186121009760286773244799524660185164737928661725584675406187618853166141701049135287133770207885686668264583374730431934621379068398720552972479687049254577131189076727468736626709979381970021979410896589580610564719143452336957165761972209512264117310660717211557168654897329108394997301204830427474129200607117866122932787071278304590315119706426232582828542223848540391999793208199641599472540597430078643213778368374290351636985304595046344568214314780536658753850425758895073436161954127767492011847238462248657775760819345242613689500370812488269605539014542194976124673270134143541075783046351327207977838066578015137532516015636228241253003761673403016759281916689125691690936576781803266551659296942170415722125346954661975187108976630853606423461870028267463118280536811427975128585760559911068879179015471567184039790601440924912294404918493795864892122539311969496877151091352557409862063072465901363975447104971870428088561277969252684818125077696300484854789394292814775532767130385605517634124476142270311817003100528165882166890479436142252343599602066205339602313664699535608175915262518050164299443045037887952043976038023336059697083959092978614622902990038139824237184097365067858796499841066203343475416792805207412202593473561542298189583652897760289573218263742738206567224491259775113752180963289479783865497255341897754598734135465879361825585477436544382873708799352385142465472777810544056240464493020138333635080089552905322044368267474972750105638646229870454117108691966712256879302131358052991155609104686551089501770151448295018327498667082979878705898314196516000993900787215608050941187670290858874412080368490053385465726383173262155190387556310216313209534544525729876308420234371748395598887471396340861596776262494347540126731697559561834001157564095314064257106326110628398172222759681194935156542322601077779299080999650260251156236679010977245740906370756240947551647985524474635689278466757334351463945780192689933731410113285164839082446936785266007503397132296988254781401873933864023268767254172442378415727826202629121074960379803688461033437524449017644507038317671517254334672059832039674160554159363978181093327722973682963273970042068382242170476287341468891572130249638129821600835094137955038527345667100208081205027373725477907973545147642134840182085415319446053180799074669132660825689504038135655497629158636083406283105320520490874835935582295097657184227624505667416838886580349973080399397544495847761571900001734945439934063882885672572369424140419801620630577178634453057327282195634172935639206084256000486866906139562753878417393509791683925453428025230373107865008384980245591570236774277718367125000983835422206934504991706363139633311527782787671211500162165963360641293378763017848088819457426878398617325447858287924343992428969466881009057190238220603576961360192722309209423172821748793264065563864681101511498623934676878530857401755919966088769016317179692514483109457062564669923624230911366323559826224454417393778267054304963958573183795299448802622643078600628487820864690537260628639977713766539209764001595248745948167637667167345534847726000461616260967716047096668337536265746437685337157572961908209175733058243773413216187255622189323032997619454816318369465973277765752166156846292242982310063340484261996682945353935012790308106545727405580615455568496101731900118844913356272555461475031159138702566652072998132885934931170767460875127117289008237960707901743999330740583229002013173191353201112979943738509675645651503785831108598463811745210597815891651379617416241010189669294429396603795263549206069028250305357901457573201041213276626137177015280843534355284057499874152503946363100914595228846987105799716160774652113755958375080975148178040651920884238250137186057580200483239061489894980988367443031379949721420606147823588393293527567021279078206353638772999443803798199375192955680371617839270476308012316672127753199490769904739410080676154375068755254049910513672195933730212358235423233716586106884137281913095169977764778918221111408325342935088041895622649852857764157408032269987560051470877115851958397519666200185896586454193774296718373362863467375759300413288191071513708568258744071710341448793642621854004311840161574400058887662909377300677735698020907402894005727579280695581502615965291939079078159551169743429613807151446831253023366480270063712729049593845436263393970492384843529074002104512786125800788497372228569480552074701921428811774407935616636152163001382245420565228829125920596774318809870860258111925942712670130132324063884762584090529223421033060849495498387993152116571373027138839744313361633250072391777825414282124024565670535639015160226722819847207433533329459404900541134696632448926975798115259557259540185007913634802695587734712302456795324477538784073552062025900439202531600878430921716075432791557461728894525923779646932619048365478033925175628790888473567415154018020709508110588773195514227150046031206669247351958070657401658474772953327260372349113307830725782061068744898800899538049650423268427545372531702625074486115182756421025351732997748995101599956294056478635224700052480879213496111019725458130185519801389437095988983480774640142356007435095397438208971577023259895396104276395583757972893932677136882050243977130218707634715452114541637759889485913759009123677660508086283978994373774337301934206852825982493276922828253805575231195290630737206793592198166274521900073290474097631501884832789574875582381024352991003869696807556467800574006032410081225690805627682725895882771683395426285793384818607810834587395504180541651785024628649643983052761157727579114135208114526311453419851473813232881501844066921068058878605119705765854952250810936403447549820529571173439415693233706227680788440271774610183130904365715839158765213452886603687167365266709833775034112186292294522542868924680805775475502537057078933475823713255725815341934574804235704045847858374272279218554765756946166682252853303969321340428789067494271170526655418142239881928301177740276861668491180742577150072837822554703830184492694533948888874045665665129600010389406238479385191028003235451265952577435587752978479941620732955960013533818059372694671857348784671257518506583347893149289822799212344173044007988781495009551508896317676776948909195773039796783603679361109090547026300647784913497664074474636259130783139840176946104593474810774816869551467587306420420474294373915252053976241297321649877669532591799005059354647027406914511780933447259333512355466480520670026197154591438378331388942224403595068404896034547321182537351736195185331252463695651636326272293985317540697397728297375136291752692670265701210140407823367969257386193364614817949736194295820016326800675118361242325339105934882241666604014864049023211981751159808388881709788405671752364307999571434442552171457335788543166521207054903150979273010156121448545552181540934725219444399418342444550570607910039895949769251739082674726431631885276197215942707762407579653250267576097469437580305581981697277773031603655818161721241905571324347952274395810777283731268076831444604984610536950104886639819194860988682970336718497526322998145384312440867010799113429742848437089129292660866912009102484421263654652719154705902943926354868909945378986633514095104035633949553565472560580715469472558116883035872043159974244080150473562085941971399342889661619593939693900062149240639759458239239575456147858984960621129945750931167036899926965965749032524266533611245707747740161523937652011093699092100506211745429057768383949003259934122875888306174182101869631327280924686727112142312604999496460335423011328240925055660124274122135699507729220061524827403241974749252478392085004945979988117444713569609389051859603783555604288942010280969719017813415366093746833328053820325214609575635506240966308992900832152791411677436330712260795304814398006185081958573981195772814289725963133353582527849913069634532258752628157613094606928602295191321629070874952594213113995355437576390420090024080643190053559809754526584112003398548082931979346594729146381255609996977768156757573483961284793615795557377051084900794319946796488889892949516432761007377858972420560420516208152630042358613277553081267316974920729179403907901434823214400966824192095883315782838413023547796468604471409510889508194735208358178973476289813180779787771287039281883054848814445015607594857373694770173812903182307513968377741477212219030601972728169150830079790642654818700216037883006857571102916413002576406491980140153298379198704880971574348077623466697579062645129505583318999658549111358878182012796921751733737098238606128440282845348097827913976082578525631382316894382377934306003512529796995675055678395765122584939703602915846922743776917321687212629181466917319811456032832664362711856144083423582658913190927113794314011489376363905092826996600066820785005060975270846090920234903760367005995703909650632489749035888768542988337274308297964558439939838197205164295094782890722576518778454769939853085367670089446253192668639419429889458944607257393158339473628868181882101328238224970787611210513884758850107755600333778650063858612757595888129461770847450282037369991927359277049147815514965003963254779182071790648171620014686009150208509391997406522161291266614822023091973616008869787678288448564272157027105226328378587156314650928778680894526616133654973375218356881796272012043685978313528247611188727539417307377696204843254000073656888150892347751365045564214662123907170127109217634217357981861659424804416006044661443940213126969509537401377655969092631917875323650759133847426898014236504995063608871903178713374843545866821090172181686994481439136587882427757518262709478599323309257086438800095758673293553408713026325373341713231181572240046586794485563769809268045022330126846516079610985862053637053103041249181411546765122920434227500438564349030411007671616982160346586536955328555003905311337138847403450856008476657426956057807140866004157051612339331791489490277098787622590033364302950593124756698989087280128280135525024397291526491988530402110855160953103944782441505670775690849185609489296628863725789022832627329327604367139931019084641106700912442817430843295609274831853048807455638097043778010244692258122897641674313091566059492956941944625272780473497191404150018154554483941932112770450423923166095213422140337099550059355433975657754035760372399968480523221001283730086241207628056094157608286136701686976056248357003491876908636227561970462613524145751276632655555539905611552794736582812779383998374161671088557886847178723305641039819142262711276303513046387498381353877507564838093981130111236225449997466890360048358615196201008588424269104672468497978494868062486482595878593218416228779831436322739139610956421945452033827521625338365405261680548278592532310482421088653750080576558201629587277158084441048188015598470002381004546922217568198964867947437550784112692045085457862991971818723002969102102003023404198302715041286453647394153794946010148475363292248148219922602021421701467283834429313879326156760442739407825898191889706836679468414982144608509140934013937956331104950776060606332030132511564656242306068174174938502275573176021707502055067362864350903413811325427805278033047046187165255248320223757093441372279411777893726801997940444198011235248960955429483981374796097985923544215164253356369572488578886374354367961175788631149647943131450040508159660543776585670111825193659821884948577897047709473184411286515904302244002393553360039835929414592780951801950937078795041182180406555379125279721831823091273367210988552654823599043946520628623410480292838293395857050839237018409270984146002554327710981792110845669547085282210769090215164127873567508645774751794061481363547354617787994471137044788792206775575535587232224630520083909828081761540417849454855487422982887019737124808308072172739642112183224510280078343351054016362816240453921589307368138599421354588380060233928120971494738601380119869269808565369100090750524464333191939147776125188599366112345678268102392495820632255518987195089311729594134827878320669720460539017389563125025862143956641873429601930084974765786119446493627663598053683620148029039332234262278500382601444808510450490235530245088371620423951732332145577750189801353485996284623438613531247050853594457398050820410851546268131582773137508076474635175368374689478297294214875270341932193775569148246094311187200969921645800036767080004858891476224776474872007582365039380842191092393794913892420073451882084908130319668952552970312649996911688444885798985938039310273049826299812344083978478044851626619087204647557269934432387140329892338961611924582688814746969284060797241946183812384520411048677303004997907292576379863858013683938063053662097147996956506289581434933883527571786985757646788139362387849631602595526458201598282767952992596328072826877738996258992681729681885181412513965469790566944397681303891762827947606342772103470453718245513575924655533198475184765025402848371089003733641273158390466061146402887547638374037979236761686387641034062427301503868354586920964597595512103413868892145474374159916595539532148182984055769717564016883530280117091831476345082225158972664969235263018558696031697611615240818504279559399000550822252582338705154970442787173396813986890946948052658565143751044818717174972350132708370004847428071227165631739565111997894380056138182235574021260484291784003277470774282967074254920577351744909946997018355731260952967597656606544522825568481230303629354448001434221973988728317970858409340498817522145342634048069582759078861457525928782621027570377506339339269368284459967698060353336061434703773374090796464655243398117051287126710294939183044034454658260512351791457227672405086426005549642239769660497892556497409028522984010396015565645830853914396946650099366938911671654626072864217625172584653599263172899966079901616520953826175932533666782314212079191497840397151477202312976589745837276879434146440280719182539465245435980153770343932860766154266305350211865467073424745779468446240204015887180965164374019356435752353953826345226623501948045375228042315611628331299126029354983952892370786727143546224050848505058607617412895350700441562774637780106893835170664261782735242060943382537901598876387158862427809892980211873256333832786876594907160320873691593503320000020419058280398798841769018344361628154335408796507310215404406802660238568031713107023997700671718508623012768676222581391891746380864173043716842318054400448405611089048022538621631116930093285494742842780393119659273173746518303263345242807536896268949297664901397386650493377520918162542579297618006703244144662664599780610925175613922981288557790858422954301093849049062916354716165958697883776009630958758037440527959371518542849700441345342845280241959034455156460338416498774897567307922571473056932000517509932543167487738139562081206336228936347338042990196769508283800129195821103112826903456978226455263679236712975884964746693653680746004956296503260799230736847959693384999139806078617851530270318114475245428840105776261915042759637613865683912795054884692729139608021684767724430040066355093969591017658935150398984977933458864182413606676045686869706183400423792797908765558166562634530841769149130584572419561877323346925823841174643994067232960199941956230167503394156834855228079738028948201336761157141881176068607169870255963429141847540476478129913087261412134038346436584624743822664546051397018583843306794404979531361526125825792778916862629022120848651960939865512902976333763574519701318445528005547196198880228844659439993784996635706111529857806187448140587495119153728427582275161640267485998441151923128364780622121790238222127176000142539542941074336806139102440733082360816064208196557585673099252598659174186881123426579599774146493143250347069517957885547717370884570878573608841530867052300083414206098287403595274491826337284586659349432943834039462368647057482702319400678221843328500296958180402085481777080917302852680121654694736479382091210760428331194342580467129504883161824791240298533271058465657238340105145425167763488352429662552585583535223082658574681569813862559003346538693518633614536876728123492956762328791533374373017741463895350900858462749796795669907059047684913267906550735972596955983245096308147486934303039886943349954025107928471712794289638837957194731336431766518072860690387055769259113262334660700362856417199812530411649935067997463721876690172387823024530866337771617630945421475104837763668322863696398826487862836579488585554310333533123607800820610658443166477823672004409125801118451297288537054623313386277032156095675457210468320728611795618464365160396942823720220916039422209479967810344580416155037669782348425896637227267867663830886537698679217711420097439452238313131089275059932516687819051587089385849698960521324579101462366527806297458876798129389108679926233737626401144217356908299692826642736232657767239832259539738048763969180422600744538347001068201479256354785331432609217888690173643560977093943143748547744708512403504480081615866242469312298464198398946079908465723860414050431238810828633705310928715057390205238736976841197832307006952037490664791408263089604816856886904268159598412234819936502169052819831280490744870971957758195139435631747579437716621832749583598670265075999317227409652047275054088853289303460455215895711847429920209405002083476480809368843117718366721161264758953505340139372373758230538204098805393615670171640824753269034598727108877361878502160798256200496406043827660362036259959407905966947877003963872058833810416305702582850737692928185628563305702835039432372168508697750584604478544380022848924140057917414484080920540333991029531620699419652883851208875746279699559831225332571558008617447253279157092446450188073923495520417229965602674020540599114179778712159438989183003707592201823215975895006226704411671356217866217895364092460534357761965498248939638043842982718928640707872544288555964309812857586652546664218474672453313906857927644106204176831471692146844965046610720043005583299614007983808552972342727714121593355154454294280357745197642088038005752973341879787669785266084580673521710833924390504526890787268439632215174843433831419337691456820127353960838178385730071107368814917860204778190276766203212156648926162644389027726218699223497708226881240282468214686232637216274947093170869655645431706138911341608716270852124774260101763141408050994695933534902076984446777695755917034358081779885238169195010979901710918870574014178645685133952028484431927368766963411579998556848352257905668405354076134840365828975285451859386145324196967374150538583332092223812419649880885010727801224680635878620464981451680368362325003350379937990371338615001052067527163212111174541655654969912549748843659529977058588931789395715866424216851541068929931836666821070517955402442836133725841018989115997702270401463737957236155332368751500464915589199021757451866413540111204136405418488430132085194062047053852628791908681583806367689359572621155989991583738181087065687778653843098400932536654817507736877499603125624820902168473837138063384378821783178637562587778594407795369916501608084700934578759877554058163043528157124033969888993101163555830856635995179756312368872016912583010104018311904852376655864918461106629116747417061273305569965423429580636235837983089214475329034544615310610400545378816643170403539676246912602741583943156611540078240086526752890549337098240097144121640691234337448561659308142304124779110956773760501272328765578433598061441383088150445387542703011868542835273434010875251005246502535330528121229563156577346411252868161531810923954273061228484176197245491978353619937847319133760957534121378351616433406983639088265092174228591506688659502499477089681676925998893074177425185593285008451293586564656266962451327416438333894155238977766911314370180272893624928890455553724487001158949900418169818234264518408873268995887862390380471618587061380546653715605498207844176564881369670187071487656455077408702102769552157435246091140696680093377627541948088837654722136262977932157156322368650956411060582281274390567909753299703114713622958669848574986088183879561150089834472796186275862456737273702101995616045536454670947319322618934830845273660663683511107437937842850999705853287330891673975881316716527962994905283918178592410435642280448852099228602506201077737530532201990665192599443017708184218056226338127892951337993676363118727493683930467391988247008180667252662240259733533714343366218527321368035479060750895383382468097320334509119622135561195422919392794791283104858424628014312061783166475066152492780717027702511463966428818945292990712079931480291514491843067795594021476424413064199072789249382679247608356090719735764509176984595882277496808903934077325112120192845877470047454488444970748708478074796889314497056912194021313475459604091867130071188569864643830505635449731785404454212090410311921469988237079992276935561960722569518122714381606434170816149378620686080130801597830098882327526242874716590625589326718303344850406710616753723607317517807547442786795913366588872756170294152027442757795785783865875528199830012609045946860274921979104341559627968640544046000275724459750363420461661679371313376827492592306635841319999267601165072489885218352442180171508874032558196976855953254769630727969292270540146331014573812161135876238868771896955637699982876904295629137663680641965736948891850215977784620348593048258628727134708506440282071776582484291078468035188224133455937107979781431094754618968843413661507394586299240775616674359222773255805121290199766360541260580453905411297721225708837786892742458914167446013068685658321413511063823854165312814948384169680205282708901964464991310598169256849136185555545566006744534025203726905104336251764007025393474744034868236540065416421216959539911824102203063866023628720431966914981006810639032159492173526235154184325600500947213759225037011188832976826895732742439761596835647630523014504755583013806782446845666828815012123269498515348994754188905551053898636005023929389889357851271232191308478059500970345427913201414349666776272942633491942133186512192365825894034367979251425073806430027967451333023485221393214147971523799855967957806847658309306501388179125283625309809790427935586102095138009857962932577304341626733945841468446471659188992698835819128641518743492775568518318071735195737105089471993015642889241166047043765908725454527158211221924183093427568145210706302374086700779263571339785381431580401189346842383225607817646642149868518777679550791210484340027413649101173934562665648357778729715454653461535838132547317551387269429625622392013243291077118260711834172218181534743038368316339043649669017656908851975321476008267610141717755222064191003260869395194148749853349033558760401439724145813017047810963513683460853968363297311204100839225411366128313559308637290633926866311242285301670892949591557793384760565141548255304732583341658530339115174185079311060434007037449426660528177978419781514030108322019240938350830413910561939584178585379148176614891271583283392875561580514681835652241776301708784420218305465933576964696372081280968969362248683360321248423681736524902593724758722836678913230892833679468933678274255137733389330824974686360425522699680025942531126841614617296108846772156669090325279036594116542893494506027001889520120331670354502899771036257961898517451009660512989587632556594419664015141350986339158821795603600070017706870204669444561999729587527264126436262177348266146559618108700613973666677885641664511846453997421896065676766971348460334863227687779281273800047393832597099263892996423976672838840406066148699095872602742392327533826003978435762432477691989290266496500122749732548744800961157926873570335909152418429647925840802828696358515440069397872468308422272491981844493741054951092833004563892380126558267136210317635226681663612547237963012863761854485927024202565787712677087313284369561565257576000053479110239733344308213497349116529188681217594811094431826490513924688038753159312032412052780109978650631397413835714540192634839743715135539444812737941874752324064418987546584320980511883495940025514003312364633144462839224375948560626826904607131813513309183938775019761026197522698019139164679029178499671051726134765806009731022554105046452484232262584768934258036295517591322297208353777157886665397492694573121187616063293010682178403992731094046666731823074277149259102561003851429040773161066681678846064680640234672441682610249861871833201045300612846944506139263081503771531099392627582820336897059856283805337265670069384924529912225028380585821466700007817108210842135683864915861918727872057639700297336434482647162059489760868200014940741108574844440665455033357213707505192483070262202939292328031827503720869420397254856270246215154740173588359579478253441900258042587661599992799580461081049514156973965047029095861049728396897454149120140243190531091482189849035417348061700279250907485427072679082721338578038604006617039759530937905244542778684898589532203589930046149414182959902451524251456683118032385451221348926789057388617285078800694476951532310075352875198823144063079089635070201657368771252277743047434292802512209918491732406622179329908972422836312890989735364555790100137896380464295807562560787559161469326507452266842620066699742148278241058025758576793624844075783732046593970356784138379896408811214470015519326982807013132705745461079212649439649336014625375025132897825734062856292999814451385876725334705128499192033753063291029159485219022742866727931948618425088684300590010601449339536424924721874336088800538836329839323252995470647340440186964690879003067997307376580177656411101733328637088587664004516630587480227352171387100871714263663972528375276710232374064732874263648955198840438876022228833335452835325994265124209847377645498401940853261705018751793176095289469097128906489135604658627084823812796942180998647372215063857984561813873971360571406106670498572746515372253980240976366609330017648404710806609623961714316989616311602706023854145739617558298951943733807936198100771859888570195920844928164155546095383917722356037940395107625157199943940267289518179111844763704855495432442646582804928266248301572445972905129721015175342125744679927159773405285041890610975441620796756036290697424967123145160415258635907109364312858548970069698453673487746006622397940041522649304428753712784854592160667181775747263220744372898013671352397286288446287855050649203210948102581453871816854307262240637416218185651770948377595312253216843952998310431957428579665999956924779015697123156574693776152351319142002234545747672222325474626916193202783954481877663975593061118318996152336079091587404679071601190872560766462621106120835581953710026945630709053194095756442981438806284767795769086988708370904198470465000346403940430615820030755004243133530029691020716604910862988477844471308873576647573105040766394328070641338781127327247478577307592707552335498824517557622534338014802138977815866859955979955951665238539108285510947910296417618054841514567751308002941599422588489911042432909321354298025883855433073852474407395280323279731430911587975264206988482513736590638759534086317126522308919620327451817932139378384973044807817438489205935087294798871109544934179929518276923596670075939487168112357866095334754352610598538411257463564197249300572190920923009625141882269996139509759499037868511614326850775558684453321244636552835044742646090148345819852725167871485990485287893568246314025416931957293108290775410955177872366234870540039443274393345662097382555981860786587237562360994849568494048548697054387304387508828603577207598302122127654011487370082346307263229067747447701294597937003256747347417051113251013497400709093464645220330107810414760907224799319395480083601458404621081180019806941299107801738559318932009365251700807023085422057430380075262538592320506451287702789352332959418095371030715655717048337963760891808763069658408396234529316442849121879653656281584157373906402443712504284461449918141042989816665337055171591162067929891084798575311587951341416615608687552578105773185105628436460412730055033789926265979118705182602119305462155346695165601819807466655437994559302423430100795740674436410821000258139264100826627142553168619538019945258459798345462881700360393374247945765453095453609437774698279944160812264904111046473187981148589729680564702489042945867262699054689027699757394965862958147984870752562132582978197804395071417994518338208080659329514038706789598296766211416939863075149652311643514546714756992754446240498260593735196211958153452749555365557865153761121459749323647873051557512688749668050471512174537315473981599340620638268869007290023236668039199331510978884043871686335593922753100818596146969274656140038786618611474203937490090347670781617278589660950417544949106546295626824277952160147204778025873789320154344831694396269788731019658061447705021912931841161640090043901934248318753507403845924269991723437791455908803138107443709348869746670480547744733323379039708166192948151114199633359822163388235479431544127914261541266850772938531641912359334087551920138084567162894899443502056020586388332174326904711096549466666711808363599521855481583041303328644496844738255956378810574302630352973936565825881695583628477867807039247438372013026371007583638074232251048945653212663933669231651402937205683273492134864284507903765712080047503813041147111312653609565505366866927630760055724018317664318718955233472005971936424241081995915047883202527615245475977230167523893891962214940851734214954433838271579139196948474164368767792345360405303900919272086597521120829986138227078595200324720924781418569639810468065685159722455237385732965822609949816248046403548316116803772169920624111855196053878986010902723607902911407428635513626115628856053669456725476628885227930476676640924597716044983339508638647136549982837330581460228356075172924759618078664290595917960626556111650982979939423598341908043883907670150098449791846872231291146545433270473847970519730845906741731962115331929240517974938053413911047558185818727710250624939894394615072187117634503785394330194575034143547070623086046659152991113509954212620909483311642913091551424031064110690454832374771376628415204439382117725427801489636283596967000546498423791310015611817469982663722940015737571408586838717892220246685676383554365750926759845747276301963365365835830594730196608303491621259298429627629667903208341164988555348822499003831122653539780691001619852989404532227214500552762199311527915021488969336102828147767767010241512750305603951653282469898770675381828542290605950234851958913618357016941760171558135196664035543076092958901311756488126728091971186768566258553092507670221316376143534501859820804208680350728812961231271742180883652726705419886585784176047791568243264598446988133937632738867076483549340010785216506881753624341814776986419016683831014866565173990025178283438694528869500443310156779196266015319956071088765809961131295000089441536319977215124213521508328338648161038899856852628711023901190015564046281070173389607795325192204446960279475511501536931202764045709071846744924419913855793764961722411939130348196255453089871899528506018511654496943209123499512553430081537700992313067323967124842572097450622379849902881710168954593159414718094591356184670372297961074348635952375433384147291636839171870108630794659797291492121542587904169524453760387861070360724828231368242987621003947942297474933578074857404422839244838392733792830899415727396970137921608296225298657889602626492404372206944543409471484054586099494721290946942949896149808184383916451877364581277287639826559278956175369412005739027288742099501979619659118337608806574793238364042269421900456311904699177794863960350359669984993576200391440459581775495830917977113967749805760926894762341128907466443768274024870644238893087680487831561157155076159220504898583364014883476553189929385769310312837058330561865451938119027466272491670849061630582648818280896660885705587529697425316547849599866420624869265419309775628938469472159237078034762373506375288286422575879109907608732341568432922175900728104372412683050455958838658702268196567701402898214395199116551234094095956199072045247455516955809425824603807011815709932464806942783195483496959633704912295506922387019914806176859568210499252173189824198337385102255191672797784446870705151916242713760663116439193017346744836676075983027453598608597204857975138847722910110189139595236202605649093654858635215810085101142492281518370263930175767573371689173363720879677355253040291763012592016796573515436538216562390727365176581841019178667834304893202450869431737040013561577644185450364297806065657862661586549281975255000537120728548655202392021767419158271081992434567926719517720589972640218021131600465622560715313196661871262070851884275400666417757210964027712240511319520760058653457756608881909354400584745596411032674234518674431830208919530373166948711561102203876698163595932002469872088237904790518056663878109560516542863046069963806664519421873920340747607007353090115558807915962309714317700294824424560796723074367282340812705882998713225344222225398669964513942383561482063847512661562138707129434951777541763213350407192408404439069893535603019133018549833524513872614524990524826862963648936014653219718499836606969795334855709972587280055078906985865022837157701630451236439080763877782380950998451990372357747168121946496315706795981476073040262024381837353495171584939152031938700998467013343973255563702132728351996679540298776556766632312350093989627873635971471873938792088235042754506009483072894343057852357404174534919594330039098782960990666355546914309295012880772122916356220579025315171417416928857091658884209272835162039342115626433457423569114954086813239243730907884464181163087391751703644928204178566073467293013746513543053673725135258354226706489130689268650547340839139199904830657877196261302930797301948114341182619745376724923048624157928488319701786266540941314901673670674690805876490952341158533172085252559103053595906455724959559096030909954936694637234375093689692456390499116423542620613509494456786707390802328133215206700587739078466163233383823319443024801330014532697931499965643339072276885939295751705191441620349777431843541288334390548378485474058564049056169885464146689005084257855913777438314407400085847834438470330110368400219796815669151608477122597637561108202735202567391661898146119280210062079068039720066606898865358589034175534018670837429331919058551738645146334706059545013565418670927929653247557438979698581719786394842563885115137981020007856465192932015191952451492996264335678574571713177980071776340191382319135711010881455859079403298666371446674033424151285586764205824326494186033327896198122617667104584873757300351946571468177785949240170322624007919789781042943111462101866718419334598641681585817257933198932146615287024993259444520228735420738281694938508122202021445396659915892776360080567626951494831833849449015302917414341348601932994760186819733804975051774887311816907629159289914727459105931373615468362675412362383854199443537420673554086712317350688917519584573181252541937683829717281269850470092069783759164530000388165630323196093956491894961806135901329289137824555802499971539229481407602260756641062727242759110082279085538540988765066674326137912784445522453057962400433481326054170801394616717752285300471608678274512611363385669137040084909879481382792076681606766538571728913967602271886912028714142993650967017969837953480664469185257648042084471361833268955725749127948586057837193492890596574002767717582723630095134503322165441719066488708077577684935905355943187042993471249157645200838923309204575652716620043122810488561331142275463531109186090636800015014761511058810505370308343613933156386242911410190680719472040776074650569296041359621085286019902926701522913070206940125329733924665579516969345447731720472349171106661299797290154846421851027892522688328654747326845285528277531426083251198463063070914786460261339656282066862131121084759324809794039319859023673823531836911544164036606183624061290931100544489276967933942104821478968580331123852122018786658632009956679596502074290154943444101227323434640824051875821874456151698471253591721283618338368233641500476142614533921544762740949513215355954066610926708250507883059883993639068994987648021485737588344561352734048706333755121469734787796735106061375319701429033168643125212283463862820822706239195938742338835190560435371946985571630536032477130978922086978637423889374237580226145009753185468386413805456759361083417127644371985126655546465663841198235516714701161869495728218688624429190843530013808807314160870074010637097346828224542440110866267056394198073884970094798200274951242263490689534997616089338066165012902173516290981967031965954610785748745642169878813762700618799922079212976888661446532372152639808363502580844104458150452849173920236256716182228347926832082043421833285132271628844368906501951108332882439757481585884019022620126442377264998710549576165610739586816018133924123196391112492095327016640396675812884064975413167817465540283898774951102083782966085994876409232178578710399386843383920834574374920144938994158928929624956490670380053454771503441287339589511024842951987869321217337356043479347881869572455970151745600213956672974960628796490665966056701167455833285215622645088305500252040980853293018202444741255912367473172339529709219106114201038947626169338372059490376999912825584488541031870207361623578688605196788775638354887855328008116958761819581555657821556105318232142909747184751194321733358429959578516389111158436294113641368231999344603343205220906500662545324312456034429369102557754563431164338215689475131387318509852216667830287300236513183373651856635478796411130308769940001831411069764030504577509896944025490631648665493860529180877685709034396277681774103802036416284244995568321399694866661093094460638620052427985966262585191333447942794543573428554091269121088220637768395472894327585095654245756881072902360401668099131167190479534358480027650496506042538831103889849379794751225743445935665079788393044479760039565636475116738969426251413510635834243251368064708512948157709411315837351725872608673378562907379604851717787741970258506296054476588095233301727893770181233436552516432209623667970451453613061443882088168805120159253114584608944368584998388717683511814467673342361591358236704518291055489082877955701224171196963764125163283409843949266320864319287322541759577896206729071986024292069287002624365348785715786703183789135324470435698238695711419424473794051086092351328283838298467254236019487056739252265348448969133154557167042269222846496074704976459132934258556797996758190500842952737072623050659774334876725255593445854169511171969424043015385476416740752519725109524443065741790728018767797270566143390316331847779017097034703572136456397921176206120114923234364050022936620502858558073293992565936819073498566980142740582300120577451817750941678804701799114114017136767863146727314595218335360081259027416784513160711157679419782229329802143425894800902024411604269760398978960462238349561089930594943999394850113793230257483929537175426164325505365131630046144683722496298713721374307461276601248974667157810119690372876109990065920026122695039176689111653237685448836713404013395846319495802118333474819834415636893278008853310635453439065422763092924797828402509699558603618660256699026441482625717057080474188036771099048195349144041256323090992704121719260166545005938549690185750234252387530895230730620097343133681346521162283156541171918354317835313225565882265375028160216835023627770882591774395039720582639172669360378542543893375696822987786143904855093865169909110140321743791179630757956674840031418916595864600271090045614147620329099382384436502255515656208139408905144375814471638644634141263291038129884943039813137040283308952391226784241558114146202100708586627949079409905685631941244692744214895798694444415581619592387113700559296407010137243877334499180666580626363324277853605485872900579168211067637980962627987825763231398456751156276867554580905784738338861327426761903185653600004598301817480519456181176597748439199139330306112790104626282023298878918935277358493247667091332929006673107010533789607791976183869734619291703213195962371780381999987959046682055054071111881086301669229178258326588206533622689882655635544818222310671362035186111554991242638458204082345516745868746990231764299429284040031811371207513288707769439921605559592062484826030345200428586248460374165173078743870027017883059457795973981998477243649748123489160898111956693674312148057342573034347427126379477600529982974374704172263185872408185307888866665214587096578012587213345870330943085922044733746511000417396863371835333948799071180844493805339692038918762275263801807696279457742271108285864826410833306078079505576741824793315270727267780329509635849968585428241835850696980964051615414137242178595484531961097418645589482066403728260962321798970316627413706922998958468893689011686956290807089383263755536217776582371844171728770817353921814369151593453953807853323302170892837412300850159374183993725265920269397849933767441550488252364048955612925725737392287504924889659642443121638941944067300910029923016209072890705653644597579722693098037912319714401049230023655727985742638885968362983712776778295960266445591563534089577103582832823755737882966155971984906456391857094014070749766215982354527236561199638519904214010029894755711991144493222164940189574514344685868857758162349299808579002523992770474145850028863969231330041185215789228210332257747312497577151011639728448469305546848658021762980181840764932805561214503664518135492018293123531448005099405631594313299581133661031690324253820419679501623219794186084476633933649943383071125067377530052077179712369525479344380443538439152408258838250287047270065219657111929018871758236353409305244565452652796139525016801475273045538760742471853755840070092395666594838571003349222502827985059482544495335808159282186717633241209024742237003900575298095986682994522654808182427952417185935083087675804031751872626993160215922930715093792170370611123652071841881572744737212971454306257023019554305523215763113526049999416600173153348809425905664995086455176622705112354067620745924980012684502069807639692606836903829087326377901135028094780407584986624513602805042214399536103062800927363026869315972422548454920624635388650511861045945820806642567090592219052016638200789005149461440354728445537562183674614109560281221220820264343489532112634381374818495766085650503380946533686577945768665307903590128834902428574183015367192539371370614110948123188414033459851291369005034477082558177467872925121833594799065641457997768629727398194440056481633040567836269991553465733825275291691098685973386427605180389203718145916715239762252699463490634497701641674872762361123706974270273717048429080919100841691976405888469729619720011699718489347665009107514080876124321814909096762532224304856759738406208295298520197520562595910293952002763790893973867504190510884739907157232450451294622069418580094098818752342575504503737023464232261261561013688301159976642431435782371352105784608420002955944630328254322123770462684622724739770693225956227078668662922276955184987490771073561010911541415289225208907806918776488612096887924605587911473380215494665452447370364131659641040627925574384073976884405650406709304378549230643242650411841352934903301094989209516494378687289027293179736665844621763268640407879067251835715532952435637852610422720178364169681786848032241278534324624349985424635331625869311692443632169800663670100384437385485797777595428735973293116713989218188663560585461698652294504679469131940363679480048799601005251850765730216107538841868661451844057595524859450639879758300130184280769185552374079985473508067315662019313459458309728362442092168391392588247727076113143955378448519672279552728510805323408835350461707869653304270442878140909546055881700158233148720654309017130879507988747092815504056892202355859028728796783029486356916657881050124750522239954250322110435190180920485373368911146475044798942845205812157856135492212066046660460700634022780314240600087121463634868889106835188189207130741094872213081330621411703845358173053925585435918155321798202816900922304195321045615225015589648870154911319379039087377025815685635846223206747480025393614617141989245069729289774935174842929460025537953259021166595934429198505888270987667907570974220001396871089218169269170306664388976567938498045209453466848631154853206117191681002363546600240825535152601821905286233246033417462271355009850396741381203883543773140619322289745280074606673074350383120761457454442521705052064487459372993720979015308542806686290997492569184493543041707649287488394025975291118390553651371882619749406810887239718440562382486306654696958936984926271941916879912901288815058909612036690418561421010422754745699671094743181081725680451084135933186792199688463056462770497515876431839632793983507461250981077824048881950446312135820344541074579224665250122104460743412701053329431296569004140828719324791276402877775755669108292647209438965069655878445420238453581053327285970199541092015131363847843768635860442760266189602463974914702004139615868191466593875615637037985220661201307864288169398276382388917617701798609327320593243589059587046303152853756299415878256029339118151664746173296733634537460739533172312176766543432333919222416262029985905737788920920650591024547333225760548194316191411249703279838440555760755467120853872384638874461189493391917455552705163562789632281036251613495316758639655750863510363764058144913752918018899340659474026804560733505255492129169342877302999549284519543761952699295969975189500417158113218145715822876188965751296428033682363088514854337500171645821688237965608836896984452544477824410842955264211868710876457496013482399511010184919614036741388593101576915076591913069287592684611691024699287681186424523389844354312169375563813329075629892681388130662726242060517199385882008522591778298157688715512225374730146889970789374225265898698737820106209906643641021666178325462773951852370495135072939775704571742354356474460762793903506773737370587557741503862030796808130025753307271248229187697650691664327792215233199048557941150074431408293129332514335613957869693531753232609886068762617912807731611843129495830611798960088590486221322738079642994138325090739282848073766780467679909411600294553966151329394639395599492388163828555829838160960691839306639278714143432417393395546010447611287197534717823196226105997168084146624602643752542973176299986407887800257893513044733120001576746406407524557660640430954090531188366886453938912751020686058684966048682177957083911783076548756439121861713617900166757743626666723560884644904947100502613878559109113128563741343456255316146087485263633616740630263144349071222822276797705546849493597799491972835475921931660118620700221250034384429953336962498904178924754274567775290590934125448409268863004107491636877898114887529997090684953138073284692048800197391799778740788574052733349923907870602128393919157532657016172360403491009196479706978497937516161277017500992624350455976771556866509841063874710390933242501190683005306162179286213351451106352744311295644990879066517114954794713435368818465827719799675856598286608121888590457837800186534228405283255266320628097216669498361502296197375903721777823282256839722266797321192804672577549084421253091789071483062233384693304439789234040538104908912022796979005791437948183159390152444176544868342713376403130922227811057029311399112426123063123592992750889663704442311573876407584940965644083012893572747978424110142682854790701474057171051354551396959828672338201619971719218152312759846367171826314511918734618148714677966963454950267730639161504438528269407343465235853776368019390614301656368129542110301352110911305732637957902189925029125744809130919555652473696544633605366852052063146175254656973068928955260405247191054136180186654413244121564512149523504735284800962357705915276316420600497278068667609292716019648985824257654334261516960571420303006207341114258391511815219275288562622173400340160872798104414107842747328288928037668559690693617096502176623955272481629690675459986186003107531642224999891686930635111937504784416510636684149387650085466743051654514907652379926822550475064353358444979596130969515950080231654167045938831577038224905669322398924583790877085242254909347776047107010920471127301030936820403075500016411811003935549388971176041741519964845799406264624194144834212711714544796615822190658536980477473353832893491479370237230595929592487575237323260549369835498415690528488735797106380461378725863331181197497475256090485558676494759180527261915205193568473806783984138463811851952015731020634546113517278659372758253551382842165406425563263019873102608472334448711664520423298525552542903275913794157742819103068953273116032215164709203974099972925428312226453632681667764296791130679203953163540086340455339654441667631478550882067987162714590304092642231299105523250170640063057659472001953269752802724520956730066203949487535136636520055105420760251571377008169398811177760504531912697082471082653678376912363626335963681195440103204467177180573131220092766858518860281240878731284436745685561670796451465228243476121983758345498104973590522091472544025259206865974081539353894579515919514869499922598505677918968376012914663125209342296060120008256519357001985184440847039546632401093432072100749908741990449887767926909881660420210270582134954819247483739952227095680042113715112049801331807504635409791239623880056664639974808404128745001482460996263907123662902747449925924460144240694241842511762204964662263050253417691077574847635764556864261995155876114956836038630538155568133314775999369971741975964221131306507270716048474323660029267172415983058754581764360318286822253664592774999357819235130290368461138422728059223011452511064616796962041012816813830402063624511938558377603550016243008599399233385876789533597908557709675103465033333943122052560850706472555660718513416983992545822546049108119927802678973991712676751491968685931969192466715194237582232626513062023427638204517910368110400505085173665981887091294745785161475528408723040268110655096509688236230155534680796410278525763241922705129063555883834913178071770544600581510671637478496334096963499600246728754626133055469168711159990101208176916870388980522395345697173555840986749196705526699096887318989356612059223017083064100185285367061643886582178026910790726346472786758700667817592922332254890741761384630458476217020364631501497076832391689018259120597331668966265146779970294668895926386722216424259933326635167956925784240702402245767317880162077518485788557265933762914530604109888039325263094453566088189565099539890107900716791999127129871569438381030376842106588646621653797846423590535144619142015681469205438064088198836102601960254416812809816254800439151602197293267370943974619169621577778946563945768861894941633646434841027105206243141276428321798888090953371267381092519056230588337133417281160828265714754016282461250030772415962099782236343129899467410063675355485015076992101721887821635878038982670848340895762521419850888725198227850748067239747713841229104235975280880182480752148337593236884448194129441887708432799703520751049980746485245886878541495724583224176536782824995536810421756242650221433374738666203393705987334130781698150710238848541165655673376531770118957137520890071434039653442306450271653204570463106042544170879911204322073296398724863365733484636520846386451424665788388572128332918301269718566594829450761459528247410109852035751181763447699383969397214039642031839167997817248653474120530226916084874371623827152393435288317349615402272870235656369144958177236137253992043425977422791175812175532078403466132695148618038747767749558644779656688669450730887688608970970607103576152475434083504393521928071323479407282837363077452091948177679259698250970232707766966518238758845639598025968001413781733803450486503737181424963491896818484632170822669824862061910151455169894927842382550644142984733703002904217232567587343624570747458627200331326175580740348640266378908234459064779541590322602925903076965404863792812721538822753586113600960850426715974003251019431664348418749045977410252936173880707485985396083205728635486274241379418883834309316820911798470310490647179886889830123642543504028938356358791811131875475258813685741646412978586679781606836143949903245025337284085266208389995986449909111255849866425406260833509701084100105410885728361851583908129135480733807644892709317037417370364032164949205941833385742380278371539606625076947172959257325404905051294654375620290936808380408967843486780954054345574129162949983166860938455325443868173547597706975302707976372387315858495551159840091989457030451953247244750535908366486635851580548152738451021945896666158877777127652185806882195331599847656524646897111161736933882987248638591020517671007827514327728213914085443035582877136279814420050290154117463015922307068113762098519525436016811614766574881545413265808028613431009899110875679431985935003789659420507125587630263053279115983651791743022765439966599983556779760722119225909136774879970594765455209886203455220840269267958645862931042084405584748842390598486702604270577197311000097915990763191480675624591522359911570108332905655564982268861925362166940850719319967515541646268509430044305881795486294541728458296035299977568982704709842158184008760020996922176701710546745656846933684559575389514072953511975134510773828131600897760466367384291643690985696151721277325419836270582350549995842956680546787231969835969873460714084070226106468131374234403538571920431833949721832862880229627322814897008015897248795402936170179764952449192747823503710564712465398291959635945627829065613877628552824596413004637108177903681578109500253611572433648261583397707080666496178331313235557954799338547359807335111080222358023722256535854699875266548253988716212342448232682475526170464417266627269378356322926851659234183296676064469084307795975569140441938587488192171003566172140939600799841924213379351426544598247129022344041726048596788121732390428947013381976845030575175525374679855159496442584811934231891581182059563559521179515768417978961788773873254736726441183677322410989867821595900156182199696743338042416142662007902772480024010354959850950034105200281307051605717675362455314573130765204141795191872232468664652165195310729671963930332816601839711757477460678917521386975931650601126982981363913275493113314586658222216955289937257200826867475678575034333176305412330220311150028529762646628153784801553034255341509463551883112717565456520416260938199595028376883824158186223922195385741919794382135269537898139221699882267395858470163022757856211026445233754274655020491776022762700490348861540452736367920522119343935959881629644425610532421235590109030301590558784307934945664959281531083968967164849970259129642658593419345386441503734070117158882149168706005748925185701961615858457360635674382062724273845471893297593589200846436400507918568891581563720265393868028046879672730134641990261025243686143223324776160330877381348370128024944910579036543480463732860434432478098974134397239426413740663342132149146042296160272390852208884018139871391744912317767555577118354159050184381984051197021982892305994911557686265338255371624315304400532194809118117043426092370213626692863590492883166347189211127115231810975710374525158901061907494478328872073246831620712558628034539480414959483928670143942982363659166409879141538282131849410324113597585938530790856732453534297020471033633782245439744852482171635091579513690573881843243334883650451974105041708927170085332346852993459003406443534956329059493718488595792030124107063478486355069841593670054181559319043847259089003376879512585325133466003291351668813420830459297238010040300645971356850413670819574706864911428370023191795366190505098370281893811087971952720394291990553274489388410837903984803726513931301894000175266495695610164173237801740929815417192691242378403825297094203820005520783784074542984560442858316517943659631079840697871234527237809328897783590307179143960471055906027098744572076926438212277556713069044419684313445330419744086295491639508333554334584380131828033481540743783536595798817925092065270087772973144509568942163937274512804390197539799163478247729180128311318337890222537930275614683150925467275032731082513113832651256529923440386341272285887884912687540794126924755210591939334894424740543769791023227399201225277245450112125966716898034546269439992681575017782911840185453504894695682952610313689478244905224621129007255532239029097560911867285707282609645131228796639839910841922579132186359987013123000731372527807406759199616035226707547446358153920364684954306612035845586456387861320478619709722680874046093534504016939532896632911433925612359633139175817311878600088229522956791290274619293469728370980825321846242459725366794144527470310527192807979479188170700750946144341894005413473073018702404650900036497662155010268312930376824542151220471352290710727391790635985259771436062524256651424008222445999428416772123113791391750706810455997420659669183555601985478922939600849755387226531287218659719738688723254398477274798233020480844504551860105965571579954416647362800958308645042198590344133631739239314491607595763963810733588630541226704245620221659181538768663232944215817735803937028848009973507996980120481742706622327790728272365441117651713760911713077846267367821489316170095051282338816121960270934361504132815232933506791163869545124245351448173838958495511761499142783037226136623373610528805505221122619589859979557404175238249067639270666357515558729167799522343417948007031396952748110186549426122613391786815849606061709778546359844900083305870415608615254646404022824887183165443258583675780542175089121157201675636625970177789881959081150902283347205610474453050679495900623171031802421261784899315756355145278228916265918121079064216095323374923673711617778968641102488694118929581268881225943103316551541955754588190146530606790689518537745645914324759447430943399422815012845294989020929296437020057814769792676718469840506935319406246502750442293020130450723153187585689881426698724235195494025204482054490796415766188520073758871189492989008852720760118230134421268820661089294651783932360295349538995196577546223440640465508751827720800776009362234805367221903552098715014915256703799265695480507750363315052658195376311418986581602717458544798488360315567920595847171945555201510707116927821401752229906300127809860480943979094124147969341191346925260657115733050955528059053072370556887258947521834165590880062381007631562534260632819104844264686622572924981251580000601524670347155195623628751268990663338247151403875468146983161698981142248410930638352699455870610901690654494613102702967409032761320417919337004543738002873446789369565719017094098133869243108175842068150078088050638358834025518497583789389578139864577219689571817097071262944772668552358490926234683717281346487079424274865978855306413387662470753609191039097650768279863448429709416936627564354119145283582966822012510342786549787421582822902332990998956803120245949178492136806695476354464227003990639615968191928108809061419785705085803072154290947469205712739128449682354705819464376509558712730527402258152520319692612127012708244317933618662205727646407456629889363371275451921130180675538691737793568364491495993811456536675610794540841793492399024002379580385976499821271882578963449785563155760643273594117343245062959405144625145146333719365763674123991005318756453614909214689887425961226712394267898796778155873593986766315815098769185093241118446213949414156479221423094390271512313941077233475887368301155901284267808498253221891329830310739382771745450418289263832061939431525579919378406522259180733786831368301309054138723825641170211954014424106403446145291839757146385383332364273354031284724950976997237207460332518213291696638153204893512408998342578903951630376252011506341933963529196208815435676972465886694555127997739578781953152779442546780697181218661261282232712706077261180022403263239784650808566772322531786950889979599030443000692623521960029400941483944926535798373084386827642655231706273655797475598719625838246945575714200840113598792767240120930824752342495855368319915580001079963841862092891106252696120888066131977901735391349509432503939730753407334169582660100980273168421003940161801761667524073071716149118192126588767073197668209601788602345499062348920093677604882788509232665347775265762874245001573026313447403917703047926026299972007333151384209803930078331240278828882606343352372665930033884490638002302288902462130155111711214597522100322053478369015290773393197444720281332342147537522860658058781674637489193293100991012455936215454142712064929693468738826194920132706307630321077017828330924010711000878711292764202303025760840997595163820309316759516654469733279150219397452956688352060130271788068415947741341975853128314511325694881072969585474033492844018210650177108758650880511139043157047919100128318709418919306871090602210119116990847380865877737841600822214002737531568286718618303528690519734754658466471677418179770783929029411189937602132048337338581933914248731721184140550271024137105547710905414497582541312444408669787723663411581125724976117129674198654863201336037348239822273082105874722526916566400466192986454094845078151717135850145715579808910244581464197932346180235471005777761027149918974994217698671176094505609385503579854934450129370814145685453178869523347576870518357246517827287318257858616280724179199646791194367850843675087972064492971597994737345163024568571862030688312858021770423289543140108845477103305193049901533669960405094602373356270153457431973446239603473681790678658490663613005876654041417021034175085380361418728472720386461825646970170612555136701557004030660415436293730925126998936737172883539034458521166754633984677325797871224274682650210963434048209266708022600652273203081516843887620968924815988308745677520636851780146828020013513120315794940821288050873279196668904898228819017439767251727963006413774851835608765003077543702408573574081605206988499494013318467687106365751863682585557261230615341935642286863151087984697212508655384039984354324862326454337147704803562580655695684078149975822911217251274647295215817638809753792964130046545651614935631207680217593515834761544526535731741435729512807956430101011970410102145015877593401798698521561851163016861840137303031349179974271833868044487621905411917332375874337515016794261751120198155409804499320574744925789974444575095682028315246528065136771288890173852311851586370756556620076556292008012920978508943475327190659292431278436690647220066887202113709546312414465156350286481947395419590029399144197855807234050930636941566614836778562110944908366360067891412097962025571551951367106217504229653857303731453690508567342608537985357739894181260838506363436716320675535061488287928595013543832276391618069547019472285782152351124528794460427999431403288811069053539025841741826397248791813042965626193978666200449231069352390054595256314125041951117091583457151095428834649380974898241336654449303141881835756039784878810351125751332615562818188745285324455703706083440548854210846122657914263535150572019332356132694068805530926622499003503532829842476439168072755633013253066679496533991828457064474875707996933249067854099722414206609106864104729882230320644915719018493985805704090892030000483857651384020513171165525969402063849053956123749364670502457812504402100975369699909624392236586907997425727322646414101187613617748079713986968113943872340313584627673767506334623327009557768784904486661055166077569983274814251297713556209303756514423108486050044202063971542455756720453955142825472336935092895673659006946488157639525898066363615290526249254357180622860736612622311242949656607592629715492462686227068905703903133946778035865815792229458240432801581907111165036383653412412763874748450624855083763124787855963563959208772536160983769232071196059610730104087260826525491135481948242480375256412269418194043007938201718158218410985807237612562244621628795368911721571910048851066306037159315391198513665214694859820394446516694571427310981336310791495603759030508513660853240011222769991158925213441737347853000887235290632189716045316873277603714383955950308510614297069641071279046626333959313691798941154637999433303695622918892340660389958463743939212813630504965594079099185842118042248049020351811181185468743791498616477635632132416083167654815513741465265013299496956968235471904940843834942036229832546320862305936348789620526181618799240904362911526440328262113877661463765621630420737747099679837548161480273273106543960021600212979223917606625097839205019562797860215427877751002148043536753879758054657387895904474898859146775218105159615452547006673630588708115504179587169702439393864952149427518352169816299380263889464038933701937989073611762366043598476172322752132995343567253741373333785496154843089282055237804946279156148801876934147327025776215523194055736466493793965676589842047433364481296497597256826740754850934594334377533537698492277780397928272239017334915103002614221406384404528100670647104976427451800813262808363016268511163166364598588103222351132212876161588327844172070106027961557678346161913764329450118274662202790672238408647665613391999674161472533226977020836589656822041720993388846595809586843840092037239605879153328133494020106992643042115968496923508353539698018291393278064503643019921100516714713761566454797046066570768677635131681364666842813751268630527979849076639134488610907467095004448302640748322504859453171936041544777517728467623992970898019911876984855644212544989101519839313099089569545892760587874388254642087107697497876509802405154055280579369681543184671963245240532793623693619843339614162396299556309515788176440043702425934881699988832540395798324211083729683252230292674110501831336073680827243262875753565464131152183017790487299525911794800171792745642147336247353162534185080180943091915843788319223678862496729690227285060236654543682152724762592578569015689687043334881616750822352208260890223009223858423210265109293363378920683545582552881935380811219657784040936233312738177305319028705572949057953232278178720062705824747322205912090461760421809986261198659699471275698410067829780691740391371816896337861197771158390861936504684645618330715806914732492398029786828563245463459678033586685533438100459920833588030169799979707297149659999058635106092116186211297295150801026641944338216627921295037706617488915508035072393697863839459753757220720535183810434175511897279870633731480817586449822776170576043542190562263455315334025201025131614784384175310866288405193572639905200465538170344865769537202248253957994939258188888204283032934399092511348347794206464866234450066591009846584285303313604003104168909332043772652572673134773952783421474730907623097080131536945062464070723265328109403159343311412761988958078023796990492684747947695182748753121831182776289439391316360114858837978619607042654098358540579414979904203109192073790338155725658500625767959686822798427953359807500365436196479843668625622025939319032093805829780762617037284645401704774316826577157164871365367432438437769220427015328800702018903645229424165259721566004167214025812814859717096193020584496868742396091816267981958540257732793259406962752543633675718038944003183037433845223815569055915899501162514273525822726805291517862347317982948541331156241791382840779436336504733862845507474303150056921899876569404808060269962270522518954352356372945270579418185487394463082042922392576491421925478533001354555871090520511286661264901600197366096266650536533953608283362729178130453179882630121216411558667444154376620501521600988940625630718112173648638029319900584733138965653466531489685453156070770659884358194958300146602226615567785004805350807374031504775114951085326663434607339132541807021978804767243654036462740859787615355577051332210197086744754428012783868062057430437009324002799116927687098658206881614105276502922226712526043009531078474382242991671645788484164697883687482427861500452759518406988997689560902313015843135848009284581587835067127442026830194828641070943292636889022413689092157393517644819654088249761079544795766049877013323087553528384867210883154278073923335634736228662024635513785964292852148329341209937144515622733093837103639531340528665369294217931616103877214063038643306881831874919845193102067943568907583908519733417706010210401506779145376989077252439893199580350318238320535588761741522925731822547989781506351522208659110614203153434073373067283665080923811516353159920812561741958933862996465313060489283894704716953077552292502131376402380812623295652861069583161807364847969677153532839678941229321257758568980687164407909533478094409066357520705674211694937667905932698391385125892630788792195206704570333965647485223559387054734463810746916556640642229380103569171897196078662294613120938704173602087438623729359409520089032018362063395174900623336388690841415357504290097678915958363620402515264336854484344189947719337961636712261537773676729492483263658487654977356037686237510453627774628834781179953745392850445158540994515649648209818318410052871019177768044674326224510588557089062305335432318164333120445730158320167425328235288435426751091564721875484866049707469706435559202886086005290398438186201576795847334735317443532580722154706133334975797014381313963837302635636170508310435551321665233970896663936180802871889053015113270149583946338121051186835326693155977080066506514369896180108627047798788407833786021667588382995276899131178045140499799181530867941212553294767920169357166387906342679227099697087238967576144744158759955259360349629500959218875068672479016748193599993470355687730320563763635812888748814215386645427799636851168813680521321265520825751202539007996676815956183409893274927161927360821520896777527474004542513935478261755192568134409993718163884367423699373732277525698945485974162404768275143350998303387231723087521382824056078028684647961416784677378648052743537683382099264909320029503680156896203985956248501088110970374100566223599887085932336528620880827729596715306057316028131352615962777117260961578373569033496109247363254068357782782568569244042838078628388400593892403819002324705501392026153609274593290144662200433310444171289969739443743739390346542347464274536778830339219024340985108407816737135839754533034574220200331557530195473143285268818581722875832404409215522681366845139680892635611795313575162595094990034558753385026763445970187757063436342977046012857066879416186192012978976098326669501206644872078505800084784407074527103423274953097998481847768854782487352333372079957875603145463092857308214511725638510280263374923023486297162478870722311978522750678903162670972840819872284640494763784809576109807029221399547856229895499515772311473547227810563744795261767884606794831963461032714400362405520651173096262958628645021271393057604793842825588958146869431382976675374540091368647217596853872161742518239339905010620160047096040438000417330601893433642056175593183897873767705024831159563335447420990597672729303384347366322645749822279006598065676758734743911804911280426816397684998169035093774412937661776310755643736840688179838200609326290116910172517913816298694675558055891461722965721074495985008091169245567157076017007668147997733267552511362878498931733057042445451318783174654229161024174604552796756295223407494018371360199937313391968976954771094321371631025673394725391708856792079815001259158823129515338260067226938559559659750844125612884840716895046482354600836655447910579166898133833148851890912135838290816592870529074735278276158810807556629503329383886444221447629996491935130610270142800735326928935502461392289718083903123278240154938908407897563546277298407225400179716842778321094319642018853962896018686035224547070905010366796856500968908050349629355476072546221272843765912753917552686231432100579088140487558112397641862493371379700861112725285009577944927656962347070328201140354410508210069115105117290080849550510211636991723174168621181478434180417820532801924907106292788388887333377980666738574290450337401752216716128263086851339238530015629626788459086379759737459025925846928276686934513621690518548932810268315010213108985429289690991304479227845164486215697122480641082428661962859776100384994729134080872743633268158531419455304350220160354787653220306003306972717096941435948236973071154603570764487275628965978151598625653740003058222598378854435132256215016074085157786955900686327606969290462070807478973473074381947336461972270986226781061494009661547036421666846476791024622025252967724617911077333831231365442570522899315799017519483617772513626279096788183981416920281291572110573806307038108622305844184146811778612164033157655760963044759962054616272133882754980974462437963955530918701348219763225081109300726843525251743364347714468879254004539738875461650988259785248398196331368635142728702998122247500996666849067243436176432929147285077499575307398220257935085825011204450160548095243962473402348028610443306225577681060779072210289919677199688207137446709057362469695255941030663673481264234509879637331187554212473295865286207737103327875020564651408479383535598708322293389934844646283015130509458217544717266757625400300060877364792642655516006787214722024217086305984640982443705202514428199206420658743732063899846985707289379706296797027967368633494403974969765164755976691228756928372606777357560483166197786546852754829767061383030869837634722872068883636764481903148205996658175369568063569987774273116166713321142155498140758488632766513789059155041391807933801826654613989699514697198540565839714548017580373857049616525296898165896620471906028654727407700205362625175617552323232267372028554849458600709092690347621878299839151306665571439400787850348189958179720646328223543062408065233755053470808012422586045044468128726797121722066928392224497463308397698901208282799685435638491945728734311860419714143900843248103270283990657455916713369039173704916416353412091425731979260602924119881229881403945220943745786763784185697365251918872220661830862458703303408410752038318105686138547764615946434237828508850264048703527036535651766025899312725638679186295782327610143201468661683967132881127189874481918799286766782632698355146368223640108862217093015545651445444802775037731056753472661529400580821818785855586089009504597042226974348616610201525392854001113984216310106344220435107977095643360323364702413536838074941563501947544907926044042690285128680924877520916691811694019872435401130134253502664223753140036950128634361820332823100645269644188944550232372913769799456305252846946442321259697030258157014658612914674559982239574676706767796867895693666120951310526016275845783259892827854691378633203038813836632743364570976997055891933132416419837260560399027737852741395658400680822685325839113907367274921763082806336602721601783043403016109530663421929294334926104616776085625347962710208810154739267102977272648967209765285521438570371121108021662413084556388928072955330245122629033310309631621731420510207514228108031373740449138853918033285600796859175566577467122140663596859836172833807320814947642673903185386086705902886950991313654051973888993920883328159802987812779363507670308160587078976106753043149800740366898356183362245191247843676118292404884099381191265782748427024683456723537383100192201883586483836035355989353445074946156574800101820562192549909179779346189913309302813628532887670889604630850758219079938916319403823932021780060915415826328417801920515526659312056994955512238868624037413703136297765838457554362857074345632488757569011641034800854256963555235110499018907007069458685522316271407585762576864769576335056393900870450246174289996265740560024324773704913306188200714182957710142575055921723439901726464891419930781093952256708414645721572268842987158211136308255393903049513272487197265105555280519755236238959304303301520380519334389703916521471028077229123956928919336951290080723049615835925645352089063481225370155002207293872730083763540299398144346799209480393642378650560254819780607000798039260026598486944178541797339604750410007967636642512812357890958504434637800002119542271443296238585231660638933837090484481126945702501767380393926526746252713712087782423372489100336456153811192198465498034695674149856723757538622513425153355014459442234708406696618230405495229962016215501489012215022226958990997349228128210536588839878147345815377007823809260469132660243441753129817848284913787012889678916651441588655382572044636776432695394553167678620545270031116089102828584846217044220875157042001445875331776492851891120363409095803716044505639604525192719913232269035371136588746547827491550712442698428138593898659864200563514898202841454395647166761896601125126641034814326618106469483822083644138207688488420683113534854517284836046475255475159461931682179390284413457553550621505498810189769448992870648174632906036579321767528262999710030210609647406123069710977524644169345477966758585909243750008743662882958430827746456217649369880895396779264780210551579593293044337643810130338132101151540726188363792985783588477030475218310973414096104111534285267946138080094382366553660787460824712752094630827304460323374819661499602501088865465364468479346083347616249428535657375999212907326255880534539341473044444480192104382079755484948965110607076805262838105112003798319897959146815755898303935290482458989990124324236814066466198530251294725144452401666197086002101667922806372823098707288378450249990449346013775849028230414152247901764978447441932527135642378819440411513408734685776956678904113107980203788654694927677585076417390446572782966791153182754215124025890872468667929847239433280616671460122590652108692818174687504831740807663624977289364506966229096407161373930616436560977762591782743808737186284700303236694695324566652166131336772446379324726350119993196562048351309966065637948663429912438816691670972757158296343015748429405964918010589906330546735734611459616563310731571244809520110960050898170664127709149940142940705069724220177814876550161631949221944420510059915574952856328996553145000389349517097250998023440421588197027117904982501900074254302115531105480637536207712351551651078693972617099012350247914696072328895295021191309144145438068679031521613286763011944196750498961361895434651979649544683823545117852152043420156164239516369437420914709232519711668868717790068122332795527038912999471463924431766188114868805133140337118999854023629285475610035898219039254556413209064254573194193973126658491590975934536644379862821946828451013173675801972128858912837960231939036449411943513516490535213666015350530030028872788446820627154044002405750001512993279810956919846382639578860733317523706435073212701425189526198798244495936217594757360003681034920747640520121384099270844757421908807321802537337316333847672159862653127155021564416232273049362644335219762651693189531494907378679713532677219849432899494093556637125660974790417992014015889637330351278010903133682151673543206360146393019959189039537451202236960747126911809994506491489392522898998480834402049599066218837588889750026730539102183063732631551676428360387497033060293357691672486725845909409365152543958382277860808740799381240169529871401419579496238602341338395505066273426305904028279331410919128702861573203493013908869227323804768091017578201497452213731008711665877784364496922569522860726561708820807958853027025379172904133773784249009710406868589602720004325016814714114152650417500201111200956264519597685767635908200561945119137200801268464408210289709808287895131746688933820532476198145256704494136427895028931420840094222591352909607205351040211716479896141647381096432233022894962044482080298712905472419103772998860922419098046254749685352956851140752381670259006044906387275113111183806903949275051256782351784178802210820711630384662016326433948859561914272683303487417246986086754790959277649053873223593621419200796629341877981187171297238748964035249101028684883534668973310102663817856907519727041252635530693388726453093193936535247297000881936624101141863947323168569647112193371102582479880974681170158097838092672939015893754142646955741016941164764267255741892250197232074661992150868417849519819770199667591890895285457973884797101053081025554367559142244986019477611786997909851889180681505794192739727314001657136472294062847125080371236198168008449495685537399478045598410807915503820714496127971221661946074670309204271836222176917344010588412795269762799173726986429889016648221228851741037626992435416352640734790386901765399158877488143070040487973449230129070162123459872830072309471742562564935841133094723613934660258251843062995562229792429026492308609494307839920866851659780931827534905609207373842091650096765610645372387359688121289387458388544714865623311833900934286890006184593315014523036630982230921611490592442262514607077114871853601698990239604251322195193598122257027934138924663651046289062478228156675911459136385278407022128332609818283385256654362461429249578760629874765593035010899489743388216764324939240376825356623722773164576591155877275158261498165009371175260641976894641780613589477096052818047251354601273831098757719771779358386823508781036647245617696588706184197165240174742815643156122073748123021429382021237593929875257302438487212493637364999366353665025804361659478964577085179020096555604707600565160892414800803235296960562569614085103614253848358366787046083736713629497658586475157643655476001559338047487471847641098374513495980832738500268628170235024607433421621236162816001110143121162755221497792745470895806329514645638738147947499755327499900919312834539069843247540244204158543635550406403731249756531454115857051203452580457205489911974431072624980283523722681466464203801396154100186252232856816585482767753066316708889677436173504880945994070912019454979603196137793827212689986295232812491204115501249418807341323716494603601557764240878844706120353485715012518466617444626810667756296677672051740588936589109231468166898483703444855381871550211861188646109593648078557728864663611185559403760926671151984824367720757802223288292859589399158520446049758002857764223213499789818598707217572833006609724246011467262485314661201150253893172477626472248516650537525900511205879917160637320338841848214060609165184103810235323620169771135779096037549631452553979215697486144061739692059714572101320785050632517698254075796244159164727750706722951089060750464960928464602819895289960359887347598297849359039971505857028983375463881910423622398135242881972583781094546800016525937939113906049336320324113468467298624247647918154672342635911082363066001094642870794727613386550123088592856394900271152575334079399204133009979789602418536686728729887993210068771506712516901224641933693906533988640020873189673208300645437522703757898737579863497789287488972707244253491530240015981428215823576154892218143230319271877593016351206735651144220393740597516053163548056397609887530059909730198884103735969640857165905925124377882208286924050139738999707885850052665203701835242753241106203855404554934588547181236332937693340047946553187973966191495311836459334379298576171520894829176152613410834461428487473585600587662830640935560355699037437031986040393371141793910204382860877135752105339416815624477297286384665939052279850558362706433796431623551578830658625039780611853977469752555297520790152006123665321646090471864110719837779068133028801251971807299050072139721064792671499115621048235911952667905983474201305532074447040780983364697622218545902456362453540768055968495846159353298521959135295363637557789569540928542034550695160420340953079029444745329789706109188929054098353319604097077683634002187868096964166060601251895396244673403597171469307464720446408977553686422931085389311380388451380891910090989844705149335259678020094580102086926084096034023679043183520913545348706537788503428700394614998637279536195013523801494911971773880345856328120349122989485409035483004846838839522368054910297794002023556024858072520313939028396538451280592051515992596348947207420594841311352750191346550349423674407040018065721779747217325832326698552953955085820782758441599318134499143163300955037805352380234470118446146495583600322038322884749865962759591060889269712748886541901116892067084694679276688633883852594967524577347426738547799299651671199261182784813685711054202863530597042667722553102575396018090172010732858349218916073497036424273908265922925685413386335867208138808965759906914558411097078204833598822414740305372614063639290662459373093166770546610015360063337964469440843810009547172935544777027848365439234771648275807461989279575097950485208170987865256983043363703848240657108532973781663595106481128740123112390245556523962907694655766306129668406886211570894441003007033561815469788081436954421346677469854194440076432091615642408967545932418881872576462824471366785666897700240859622264946025055536611258727644345261972880006289791080823191547490830316389503431551072571498785078451179758236909251344139256336166134808046296308776908205950770222219251661806773245233404633510172832150670840634939331998523919946470161622282030846291014387681766908018029065815269428150532674179852030961691895513301731259208119519297073204346351934678008018388154841821485165138405872528903979170446751705798965953564293670370423129241281165669327055602330958029518769890522294798525311514044467654222324698253178604121723990755771968163681531051165707334723156202836647502973431630319424762927336356595214140470011157504386248712792989061234340716108368998794961073923710861339913496365503348476523382367016321118694294196409635464268059881183764320678567529962401466611811494671040516807557118707047141930534186491485523161817042554534994242275714293696823421486524467229243340868863591116590670925073085063491492814422246741343829908693677817181466770541677670584390318470032511531667747452254871304168848677801970484168078902406837402686874667210944128313216800568402551850372890742842758423706526479101087355549025702973005068239924581684852708559218040388257314009675719237911235537280568147092035258533340562214398396602151985931878238212831416165956200839090861439683990483812048819438041013768582461355221417786293419269710284594612914750997126415027165873870721061064520557431420132006868903293708261383991457453493648594487780496829397988664908973884951797852652232632111007953058335586922746187353769290332394335293341997639145244486103548790800027418150516527872967732876216791184334206459342758355616964683098317393847370491863819530942413675878162480526446211323006781316159447487331479085810682127441345426638635862648184276038532865507560758843447808483776575673963461006930762672443313917091493600453391689768814378097386449852815190103021824896310509274906463984301231037498448600741930851679080378425365044502313121673070962501373060453086910649285643842519400643770146830962716834570727202228837580419683925444968132412669202124784207634525937008723946474731524934410331947628250527518672504350484753598624803901382558421956861120204445717411556780709261463339547692685807349259581567308116877211139728840068566398085953223221375631845342880842133894656469521196336885577765279170496067224858947607868672399171496342168098716225885570790857576241098194745158485631076642882898047051410218290978243582909937088853770787829646227718260521332450635627135154732831178137530279945038411406647406806901072314014380888234373889929899742407947740944332420060884549248950202249226667745714367418598087790003706367188836562796328053116452871450228408976996115687479810179469713515602539113824990187455864702847641161660687863452752094403506734555506288356991111626826979668152014181373235121403014201122423359089205315292558807392792861110691909056473478751295421954915256019969944552387273849715500205711748634712572054750402124799839737684931412510348509872925712061573586906283151274456802466885879416155952730670581483437088898400234793855888810110655355335435776683595336598475997188594542415880803555535995194618697831045036723526119567269268933890319282593577072642540646111170303323971138928555641043723803270072201662272989073828993242937632249346453601998085335685884397959385765757029121288904196012824403738844960429982288906745507982683111409570290521295024071773715580947533440161279859904468697311115384781489627852169089008876725402376423200484049720332785339183785645152943243525493288256379347367423811297016319725124886949677465027210986626436580379605387472805796916744184269345119367617183270373533780243323422335422009953713741805154408397316422795097849912966214837992580068735335401988979879514961738816762754533884251536967910462150709704705636808261181207506069850210631857610859481949817871527509536089426409326920549276964184878058961151729520009011581220107796486635821902519357789841340495946517489415333537751141699204820700021773495008746207445125370249243958701285983411450044591822293512830363004948900881730409270990210951858717623897159808578220302910238806751372503653355965783179020261289959909758333280412039147414101320145495239892733209185212119608711085160952541595278487929394138176838757844546330323811121550130679568277740287668330220498857512340787802562045439165442196930173714621382201689905474204657196712049009891618814698011753280303821953150351942941040743069018755694318965270149931194103875413361614921175515889820103229140251113262945419304857677217191622973375970954924474175363177339839688300132600638333574828036112526619454676912473470762742320695542460155294012574562860810945210019016336351519350328736661364897396704063790645610410360925714957624623750419383186282009562439027364634161561389387083447928621830002741671832886252972656620423741395891706670213484994059386214156371918030845901313545976202443060324166109627896050500887631965453996667415328675455145920941094625443767111662104984761449560453234086647001781932633473289879399987225907724204670707079282297478071100237078243494155048162983083394492975765829608496901262479574343220368758611001473766955230146080543447602714052438081203008662552493246972806517696834836981279720836771060041931172198017735674801634147146854707142739721931632363425083793232448794611256281227442780035847400388640208755404822288618255959743743738017959827930628741219169301670776613975203025197482231831012614825854699955040308705377693605198293714793027529992053688596247027125472963053346167514385318340592542168120030559233963185315671591611845969300954684310722490951433627182348544557786377062992215938948809425227863302610053905264053674208744908472059654441891122604514588452507221889554338983804292471890935204011271468214900751811446131038287459365841920942495937717487784956621719551079639358605987725347927576588498822926746543107966112762500569599697591874935727274509139429722894025253509356388624359501130527454281782433006050698639199421386121009465837048243915581479167878789473847226368532025227135223024771485870915766841154087857444975191695232805611212019929314137111889177732075726196889582340086333824490642988341327368756163230771203741517854092873825613164272672518041062174923409293449137783304245904966356910864996316652651232155699243386539172290808341262412784203615853144634590884462376837491512943449465448588170010490935028342152227852393770745073175997163300849413991373089101230984706322970779361313639037471908310744708591268852873952762734232631187120931517808096958644298066249052926384737448005751159888831769155779940548337528968461983812442774031033347992457726680296184524936009238107448792668083574521471510336516199056159897023824865957555633281464080225897839602273456709865747809382962496410242602408523199773602143325779544762109379281760533448072109658593242181099412458893888920048214498545074024349443759390561265492683924294779111109359304921104361688450023713351245779880874268647283507282409516589881673546442208029285936188504279978820546069931589256211532244967765650025141662736383275157914262350460027340181581383388167760575595239816053819942741488295704724611105945461995579596523777660109989403022061322024612263903647737449575453639473381396972819641842833174639245135571611214991999718145995051021779512311584721076658861569693554690264043403904939648639743306439794749133550496885652883093745234496470430457877734837470949370620135688490558596827450659894388612900852694969350387815885589596857581097211035989490517613534758804896953396563360761621274799536986397602852352375534770501814336125568117269061893948982370446467122920930103364242099461703792451012132759356283130080677763036065646725254969598631979940747174028809232356771957815878068947824214552872862399328928105796642872165509042068237272596421474430406631612619270792662100331081813461085060699224476316485214361872411679323691186652798810490585810138806397767257554163286716551892113488200277666496179560135635867466825395878081337374412795458569498188711956988458137457831312832131422376406673199601285635716065341283894184960294181495064793929801665852332582980940039873118125558050368932298786388898661832629024561355690779286484542968496582268100681140896484627472480870181591988450781520637348686518033892033690389601712619325937119455388512784720851527970158334588328161374520801507715237932305109682180181028665119807134347680672717558562674393312281548972387889458330792981694721409456906453521104876179388496895295473805001603673235737686632279370678194468632230545611013680390488176861797571673909648850574538710652487868173169082487139396051444715492176003924826464668189676499940166397726619381142366746953859101036891208252192904728065573627010521651893542827304948652843630419529450181970946824707198656148466960864394546771183031662330751909875020516810364585829468990672228928964282980889974614194499622202500785966783304980072968249140413309104587522205882113228510481583291830175477388078942624096072697525487432625930788969631218891412249061084824931836554773046356152809299918404514493864264055554750513373011933481074236669281500098744589979111108903286349377208168746747059392034011020305055016147980901558146088081635818126624285417275822658621439931688983098748206090110782248255763948117059839576437489954707809293809473560461515083235101923095395133012918466736839449397778081370874514453173972453939811709603988237877956498004566189839362838376490271791368505481715725187116712954408689712346371488254814833734001388248788268216019234110236957721822616628646460198133351207707084840943627500569503112622941710083867985896970533982550046897343011267293283484425470431172038237003278066210827174898227138899681900761822285708950672025013581741835892779469248642669520061962026763853722885521798912459936796604431785652725539531230534024415284011170267370492199562367487905806308769382284192320616898411457382672227690828282764034370996457591887240361479107296576280107731827815884188007020386507729686870563988712377550197894286317439637523387466049345043746839380776523790401489678084877665231531767841705048344844971268130667523721450089801282411547009631485133833222314832497302882276008542186841953874636221145267713121013839607649172416307306406449768606286062976169216574938695637436403261541236793438915840666920644774393111465015127181112247529211151940698602253909187131424623568927345115454409294415026888661430224767334219083612997623752586330886900169619174995012597738210401567509903840078535888739445518070112096966125971895664871014308452860666917589848402084502333483641723660916607233055313434864360612336737516825498209673723700167624612204695058334687062731309800549878670804557682554406679675031859632809371478897909123809777324964935327294252604105919643822580237207722209334817513481613063805021838583992154623525057966416660203132135338464572060940492984275746606380962984585373985245430091414097524006737779067423671886325180336109313053032733343256243866063380339095098945776449113926383157721305541477047297778577197611848074358557895024360205926313501979079378019925201428811027566562212930344735739650060574689192945344713958941192048470800233379388394006890436995761113858491928564476513912229514073522110586826845687181723469122432305309117969133835565403293646390051052096197448884971227006691659793816158670927295881893525683001504956379131043182200007001561931831514933644214445124273513941728460733980511574577950398559722679167095329366080871576824654439555852541293113818406153108473965476390318146518880619083207930946203861376199101090694209293469633129869279470217164117743040436839588876596124949338869070002051384116808901037384902521294251045253988720126324474357375012612104120224036355204593133597874409283271594277990536637672528929017365343696050940963721171345941903994029992201969543632148018967835575311554104253030666701346379840548059747900715916022281735443047449213355025215442207231284412091522870848487768760698811969569030509351724646911121590822811031943770331195437202816594542223448724092377709982639118672867129004503317829627955879539208130971816769166483324999684488700410985762329060583775434899924753536339860691718525080392058313156226155279334132975742389900212619406794637577959217567147826629474356691628139595792492850645926630279920891422784356123435995417687611230788390001440705896625078906375723843907687416802289908066775987255050436820548643806632316286930042848426657751951539387275902174073061041017112966592064538976102179067263087405102253075167969537443808709608780384328853882311549479037082480603913836971018267334365242605974883336621474260206175836106668803141091014094843541073483603647050213735455496230527160383031947814052761522499865941278634947316035197173896302653005405736912466896422765053836214523590585892012324066261372867337648322695597027190543031318105271398486697498107505734084605876024496644888544776969959590587168906066176976194292983714970538435055361961235166036298743670187853853393821923903467351131985776930928011357649172509454705997482636678651053754724060931529346682357856962359238216360165361151358377523906851751836180443843741585930346298446435454584058187810510467505157756929028431375341852864655670940546970368411055779069929804311695584763488869401713287456611186269721651757461821273953029485795956686904009121256492124299741197582681503462769220084003650420457703455390667764866591591636888673140705845869676477734919380478593820760224876007158277977769485683385892879616046028812467139033660705184062094759017838826174402118369376262239736939876012643067048202207622737726920835579703426508054363308356254555237014897396617781790441470576706691885683680213596831566696156412137859513172388176778525858980638994726073444408936574577433063930257625547701901812480146657614040132397797850384807483210299438507951336132242186458578098134000252714329534874085855489084676052125408548537320579160066552264177924069291804459312292691866921760194136272919799203811140696455503296127785541334327503513149996174868423268781231824705431519694807705555993997006907862248695310685198914657196094354236019767046618852927570373793574808111696526239714939753040630131674623129902126818464801335596300338831575929109052855710447271372410148622090723690825167282961039167624162337173684056754573848583847091908201522336464960701673006953489242172515960511737509578877711710565509363909185716899132089526911204612982131021852733533765726819659993560107664922958856989544812054522607413204135597534162518961338834698580977869966768892196629014459477956020026381599307383630908534852983810516851567106231684286476961227490129806709478169787444355998212384125904218966790600620395322287110225418040147704235348077429805922017435616081980833897367013015489145005438421756440177503040782353353078797334553832727414160939865132042543009928887253439655626153723870894327788892978656119183858978046749149737894253324023562288570974508989283438519038610787901385639479656051567526410882507022342773671577799139378204844599077384071073037710739777034247132770784167408502206671493831884031065909322175524289311203814355543159298749107286618190030517455267490262990455865273027101260456913732040834318322705638633952108045620361395369915190707799344884209338016528676901853301492441458828707015160338438634764921694856673794849690935602624059350509102948081274914433412983034889400206321136211734469538261399387807342238807852131042482810538103171585059715844713325381503671292183681767691905458474799400009649264741472721791231821953588710127045925857043345138620093923813459751092292200854078636784563530659366008066689920527870794268458107234050459183131823537131903710881652503347771843252435499533527118728963451169071395782796303826457977973360496990659952557028142763330677978933571668722775554912881563947271349008282032235502280983084518597673208013102922898743039564011058903428473198193830829622308176694491063100681486968125294837014050898068244783560874199152995919867400275126890355243805937580319759481230197797963393881248522709546000825544874113075249495104803724964277970846503789374789684820406404709308272367143468860612194649352278553026690887707576643710987355944365660363180547454495301698280464825284896826959462476175317138147923494551603991587102518540868939920506218429396656277736376522095577963223767872517362036692581478233390518759641736752771851637537959245369418058268688982665959581863902874741415034858396618636024780725170233833024966516728359431262362751992024826792143192734998707861895562227744530428689095495228487317132995931689727902110884225046798127187507249636726131686436107154211384262238880115000375209485607127427551198876746159679224812606134464474081126224361897714366134327783120320208218940155452091410020949487624114419278289352056478047606510565728287488442677184019304697778671894956530705676395929403276751866184649795622848737415388609937255505938065174963736770486288424776572299469708408243991847875399492996467240120898672032177063277645668485111129935342622082132797182166737033594349831003997070832040356882309095179249023662782387548208180413410337292312149221522646648984472646252355415860436430324530947404023436284432270048540874623397286311884191675366411625381552465551320665577871127238381331065740584323787031481799547016592909417988733487026886549358620169396198797850818741171190537034298662645521475907066907733316021814944008098440598409101383177420963484827136199190896718404673428101323033877687862118497605735731019220970848377365279603855665164459196544537007684061559656234861464855801126746518474929086888162081481519506847366471833751116357947017652798052512188399224609894449164415892986974106545631426543226727606591210345109096445065872088137585529483923219560899241826522412882259948915874160191285576831940174844109675784856914864377856514203183945912210659667937096856182661132282258603317066531920388100182949866257128507318484640228658364472366800854740814177538526680169609871663533918549937897270490973451915229775695922056152937050826389126060448662921226822011554870313201989563347101549262885004468719248183604993664796493025436600863722162786784685665494374684896853134867438061884564946380786583885614405085451289327686064061967921050767551286140821110513880499397895730410862008449632098625902823751914066268428002753018822745785846023453549249375657899699316082962548836220542314428154003503901745173589135747710407221614626737511399740252671068173920378292777218472631925688611558022762598450874651695481399143992911087290263041874951876022168523119864447579904481888349655806665614856154441887192549685215546504033440500026248851720813053299467717930206727902577517183910010998990131729871394042730126282610879900684430919843211288407122644627067727033066061163946535366618163038543457977159113877560263315865381576531533757720859861605589821279440471674008763547751660072391481505531900220598809959090808331106511492674765428207318806711205141775451682003264462936286107400260844143287607569081951826663761065049222125345218407860566199851206073140580619689631857945822007289145490667712619231532436206218153577878593439180714630975453074365566801717701815778793510575902823898200153682279667147635891223838065261428561377991706085732625500904580326749056542736218586972220823761186918674539120772220114750252568450757833902016247250967426268353141578342604991031118250281088628445283712696886119560465870613521141460417305601555833338328857056771655300724949777297776432878996781131967499066908548081082767107867963512277982113242703663815212639365602943214234890315167981029340379096131956906296822074816266921800739065719963198218645231314511009977170033502581261868426570061920545682042946662631312498017350618963769834496261445295122508134850115975142845492092360430117490641978924548287864569398444194545866821299749276645033091908106911186383122639953471661769034987326929354152049862500451802647556934846760889952026080758902052136087090193759376966367462307932618338516974169435584408358748546279108928008360092223495318285239824763231809719455637833885884726051348185235773902384927771659898181595287528499107275180365966964258315301666309638921982207552469983039727111454891498715433564674523689489002600231158667478211372273885046569196118816852918964942824118176040813271587682505523929722537510261920664005647886657384790828043523723211354519959557632360319273570940988614212914600391907096803908157380558962057965319806131288807587651905562138136957954986591438640053226594178880213685434061246834290211452496174025160729354759444785243911005727493223192763900399256350552940381116987051921871725085847670300400148857059528665746040519174331737089757500813796159175775476752697710987872171404690619649726755390274021046191071879807224874864756859432422903273884147566963723951285705653470650475981099604214118241242375753835472197921168320978259137932808346983423638189272121674343785217482752946982083965869978350944114378677174300876740439018880350909419948350831812147239250929473357425534807141504944313561930248427650495182572918584453989086097163047032743997462769733080235407961714413841162122187861509842481065309247043230195705615103921436664862055446472516316882466620982691793117697801344108850954576499379299067661655327254922897206964870357295290248060105407007421949669516215632862524479899160105950693756797914675422573145062655457021868659609158073096332251548944725171542115333375080225049701829551581884434383095329163535994247419409931732688454972526696470859555437719147270624113840260837622173163391496461820816104284849631762217567607992646505358596383661086932479221825770996960013851835866799363273441947819405630814003020429888996532385127548716681989606356608579154321722005878481959853947252976550922314367569801435967647532339991942557216760878777708191821294501849787659275090766066521165916235981499840094037419580781062243526580070639120322024537145993291078457649887346416237766635479811335216869532820104616598054213920754149962136833709019883749197710265177293120818790072886610397037798892052164851897006080213184547666721775239755849332139842539154826886742829891240874476952285661624948544959449385254948927933235908265373143048356873344088800543429879833425897676647046799626931856329449912832408008035163906821355340614369516396025496910467840125774034327373710889340499253698247906350080359539190925008327879149554956847143816861128572060529257981155823170062894174281405432920503944585606028766085548496711305734553999848476088505503475214039625523708855200128102892605750256865884461027339992071835612754272061429491590204614174164936802329410435988114704920472875156998712907836384240116522976188849507036391183954398364075900483814999004468795512487783719562325085987175805722928045617872282145543605137000395132162140389221996761310025252361587327525548736746650219759140707549228815999511326773180825455437153256671868156400502742272174956570670385737549996888594435493657198894916726997247506788409714719803624554250727522706023103950652322644696539374184460249345512114861358118844466272887882045626835519771290713825036522631630333020871008875645877497141881682067537553022613924418922501501274504156061316605405321249328967146425678970572627250188112192121773520335286244579645510881062839682156612408193340771093258310667388607027377025859103400435815169562911676478484773734176364637860210327910713104507141609439879838247844784152733690558038176720050014192981792283019796221740244841711366494191966861878166797393082352270740709450868179200781580244670897142416586405175957661719866745314884784783008193103147528369806788383562876177053733640893431997962552598787839085310400773812765638297464202758853811150910106615731710171116721896569896898526837906015934390818531720022999382753058245601451231820467740495216396689034356117331803769627695761585870624363151872097830015500003645257047589550874695019721845478507343058468991518437550602755515994863165127069209119319420247308205065237308054908752147765145355770074410368602407001159744131510720012296928691979104786105220426960881639900792839546592686131904218796887918893811057815346121872158258263098956604694423093396081708649060864311375297042874424967341206885386889122187924635873571185554681621372441162038122243989955705738909376962999267729492423836303825169293446302164200930127994424143635281849840383292393544462587488140859166588096390469604412391817118689743957171519841801128909056641354095218986798705594764907828134894859504949979384474399341481011981089125755789916012839153590753318522384671462031008574702210291838460805654275848122618703407791859238862777144845388682252994962110967438028296404664392106097733286455360679578180159940879733166915849507960510230003795040393367833355675679478364182580271444139352656417997572854423447657367568727156323651629124357290111388369722849031378324945309394460039150540222005704381321534879198809076877758725739806684120437535727951773558965918235912441408164121002006977389598231171053034950570674124550040956824669865662470433747004382822766509848379339058442937301501200062504419040514556425105506318010229136513937061111233947323156111304945055650775918396272336773394273892769500316804912527900037223142988532772431538159637386629675889542331952810617754784872864678775019001250930508171796227056698002852455364511377569899132021633506841579890646911472324697928595376091281147384998712882812144698608692103777078736765722131546337998596295829348696131932371647293052271852929272001953174213683785377754752111573088852302377854171586662847293278693625059863822528262354260980212841921751566924227728276272798919529164806726839273632138298529570376322909048254248604635785694434161177950494570566257910708331219284536136081236210459315124856427430887345403321141079157566847435122738232867456448510539738216178118624870865823051410143475159445725511632486724115676605559670122539376963139572955000740004354590186712283146283319428622112251010613687689742468646466745285152091533431595115286829428132672143932495605024951901944458067452427076247129369770939764198488153255147690425663837632390857781279019373472778639050210492761408575359196186763332699023513775968220159466140788230490068489343768189375522807202713958935466173500873945610481272327618145011661800881154927246808080719041738257393463336212813381764905863419740684320135526357208321474840486554955401899104159891889262098548433482350792124937370061511069319142761243606718686480532506158830738460201504804948342664608709228124435114189944861152331702711101126372653367950534884609055021516056709429492467761415700893094827045741241912557403458674669942381286919383478850187092132521053508126167755910199013582278935208943797722793368956109290459816695852332723436076215428722659777891898957088259265155497053334299784054075578575362335710413738607815024711991363870290222341414931352976526960616331996951286998027609336354515804549196912331972505104129189405341596005049569046283781686720763246730610725740417810841890451965768579907071747792098384428963997416409077087944585174186683805447758331622023348930315420253111737369389651764957240358652894983556317512151419857979572534224067053834853734439767469895220685648831229748178094485129157401983148090226474514041565880375901298455669363482435927415237162815016992798639960703342255031912205326185559758905671887870732681903117350366907784928942555077093531165925631119786094518410104960682291668717802430814011230017062100162749266561734266061542451456701081534494677964705284336613550084758128480763348301549327159223498212087030095740015998098662901984016413989771687930881431199011096983610550108455106600701687974196981532592306000936662553819530883351569924852653690687109337572007027633198653721125979860912785562245420021671524926406412761667958633855250336219551382920520591359013883471653090772677955158924097469187191128373691542536437892582615707010397740986118716759701807848050305084198381696398027183405135530275643227412414126823493016607579248215871283586505180817847151491545525377539514992847961357920631316650208895285310531778877641645407994882752626093790484225054221804693796744399247841208897895939322214283743495490100528047881285642568558090030323050079893694585896890395188060793012140714621517164595754281605238571166479125159247049724890982527433683866841105062499753514215342591749214387669582935552430920962387540286717924984019289506530817367194281250646197166868894765056661443339189610180828768735267991967612312656778743242045337855199002374038574582543630768054566593672435833022152814093346640363234224850304221893138612596348702888432214323795226677659563565762109878512339440852780292471847814304521349462509281963530356056827565271480126491999092010707986963749543552797426986585227858959658787090487624471144433455735407310518594287754227148978983168920684834016936677275776120957584627690067879692636397565874532279856160191345393171232358277448959542908610824638505372264414327479151885279639185274786625476009831173472975656788726585080763590755147813873753859400343125243125684185170832857869349145197361197577266875382942241559003745813214172646123712913951497393033859039915904075953611693667249093196618916029309881679929991111653320197929734590474676711532695632330150485016149292912109114359947438067298701932969438849968536072580433206492670817190958684134314335592166561304752198300344949214962216990355051366425626124276738960068999131300811547674296651802436567117394226605731455437122779420059424875024566947998562000382473801154208680923787361139849848491638180611511936651219399176958535619679173349178433723044445341296815658646267360172991108140384851426669796575896460038422653792807303928468080020258810015671414881684111594293713908621323731913662906206963370345110876544570535911481354393625962731743966589769127557005732463053910798460781512393918677255713874043765799964494293513173592119682705025356884054100487601177971965869880562770087405249139034351482261689831712102361478979408144485768243021474653122458838011985930401425930670734988365250961203442713073809702943017237042533904522347274360141088726772350654250099453540853541344517010970446688945401118094302354582899992028427938386704831075173622537188932975193354622020948651224181428445721791888235308236398369383607743837402629421534069910803362226072259656256243124250543104368497974684334103371421980309868480793080787365612005181749640165670982557453723387970509401460591270066514044065886724372872593650552527705140659100906399833345354988159288065738918998825130646854515738485894567794379903038949014093190506782336974853770778564136768732236478655782471966625631013258730985957071553990282117386696355595313144970175683277956172563597672834312432239964103139504231191652516581079518750370350701876306871794183052474568820002955068307993646627199563611188206767397092891798942581971695992088771633701803389013664033436159436721278406002807109789515144206625911582092387317586713410907230258469832210252305520436754703988711796699951741601509311879906743447061786159808718053726597557935323415641780250443392186146190184415455836718131191468145221318083848201253997612953482231852104692837747845143897214721590010675557978074220176026049032274343249006402814381942079775438823895938250345239915130133163433383473357410351982672862163433364319825154035674864682928655043367823949313135523307674466509552495831516467299301849248861765234652101262671356149509599201528673601529355899850747328629251942602592889128790064824553270210886695787837044903180513899484372599434508951648626324097930975151839573927763951613872527839785389941750994182335140423122682163869796591924598384128966608771135202947076270811678859594234536327957350549394264130409069155542474826349384930928787353929681330542108615815614758696591727471619675303634361334606220391169023617444798891706865180915626023810127664175499420694701647818126840981666474336058064953799577143868905348402436570749819358468178287572938489421966311188016898413551162100662416194970676073832235633554276574031816339746005347944512377994826052687135468030137284845650320818575217299971674851120783768333772809199905777209854355870738361237935611911860766226883078053370669045303931064326157476306088299078313775732128184700642470435792111724039418095886169784877152888976653185378421024019857683240010685750672307314286057000025107069941417206638944787223085882813267948416171928061425408828534362130596769395328574786564513681858768908583939744592195961200499397539366977929036550121800038317217364211358137294639066279885662390316666892195195737641352110023311085891036505985282147530017482361066539235722190883041481947025301183682438627839049401972551515938516169054115916980704607544743851874335195874650627563539176878517017101357375838490223427634435880227089961648238793809801514504596116348031462844390026257304890938628552204628749145605780932378645727461087841984423076233368242884060655896329092275614901413384010410656543282455817368601589539498591020088726354788393210014329397958867119255773961917533942616682877516744636344263297310723241016233841518897366847464176312977114112432924009719328396377824708943818169807421016519431282052656996334537156140187076568779562853747135557034350545407159947797263202404963464451893922612706793633757746744582781410079033311869194693727757009094446031180542354230255391635321934556843408916514015144257168810460783677491464208106915816702473872863287054987787224321211261137247318890935003393284712300788440788479529022563857601767693631440265242962166938264343347960607273181904444098456122186040219670538758241385900853624300308965363990177887053853663767218436834607888104341598051390941787368535618660446937409247561715658382618004824261667148198272743113987904757902497360688712405592763158463852300732458528285757599944552804282718149519650777336791617945028226523962739107654251752874032200518872838716645109052135920459715152883072005198539614787573261301504307105201606035559752748058308352911496406927116874443026066225362115309590724840024065513590698282253260581034320462794319495774534825315387709685176533039106266143228029258597869456588252351518940831286760366441404345393026223818094194268119225397243813283454336077521287107059527233581962363108735066554379520422929742996055766318094063313412277674688777944501308256503433956109355186227986188965939400204725150158098067352761961177514966545996522797348357318187075690309970990123948072460364756160151223597762028430321816101526657730799676940156743053397731047549079830285410220090342666672285657193668961334936584483741019674476213139169450683408597791435083094149910090629489453565634799848948103720360984510499777129694996294191163217376365777425540350068190229854815169142779226858888581217873227286684811763526774093691339085425502808618987384670970045250618427727891533711131940477646817363310778299240659399723597454608785143289516606356567791168650327772345641989290468565432861806431922661795044860310776694630500136804727779810478909636775263930663115078052422688240625907730861152701498734440333081299706786907720966817032991905855327053150235826048973931784311386142466794266388273687876235936633824607821113176008884649451624217399349103657926852442283227590386193817531572108963424534253014993009486922684939321723967272227716823316791617781281859708239466186561393307324266712895438828991421441177534861549222774214734924052400282879693386025103214374082292908027007231591397003041479957341155095178268983598911757296215080158070161232018639078446003945515799153482190675830543387395910225254294129613696469118908080564564214292900682359727452013945765351997620045042428670795852685390157341573674011149066010432712443853679860174934792739693492725578548180441174618281083137484262425844931293568324221091134427489216616975631498924359672038606892628672039859175888232843101607764825401993000992118871120331985999220318834475267921861693287506178977045332343946370725426923653384748201550102581037833261718565144348199904902612696608692348643743543294740512869573213351160536912503718800354209915801742974473329601587566163673752229445477741584822168304123787370062689607413850173669441772944821371554763667427348494456211236866245082470853902010903981927265575350307274611313968261692439039388720773595705165640172410438750637380587821893320593988582073664112397353189592340747896936241146881420816994800188332259561529773644243685361352171400013351929390583986138780832199485234479269528001151645729362608678687701675585299943321740082658279994347148969157158577491811426149741371275047975940043171786774837261740060970837037610870401054814293140856992454500570933751042921374401474957165508815881767914479179399355780365116503685556597349304298726612782176396494495456640891660553024549168392882194511324375842346510382516779108151466062714575385682358106204207381883743542202597446301720400530855450426087217558294725044516670056784486351812602670578520215497443787068875772829685847424130229490780774511744583185729278600298135635984738805989236066215370140366177100361055885128633276945947829310295294369392703430109708403523420254804313051846994232160643244660683723303612676951043973617677356033668041300396087719405205815806136703320791044439979580665018314010717029832636178086176811437195219258276745648526401767168865536165771843180070077235508698403098230145999018352321387574465306086182084451566974879181915244483089976030167829816251406742600142245195052730781791057658458042142694902635622818337682591635047585630723311866291324301706118987631840617090699450983726939633308697061585442747341194260195000315013654427970006018626033184724651362918857291944942542169527621443694985818325553867426201065184945468081516232719299855947849219485142637016704660677330086703933036368750835362055761446317279589508558819110307613428466273486857514476220457692763972874524732123858251856168808290181760117982781259151334078096926408407446398392485709374897171549072935533932501228324087732863626013746849522756508553924506031344841827494304294362191239052044679780864850162132008740505435584365665311163077325081362536185653992629373350902061041306850108749824325494522745303719214580267071115410833639717649806982126827281934208044884761008462769546796991832063939570870687719882096240942346094147360306718467471923815582769490348629288947832574607037847336014486878155028896245898759610075904729383600430205011158402194236153555889241820413151430867483212562187854657364462335139804098436090574126336419220203445578859674481156509747508258561495215244027536504031926859223959979785094868851423375333823712236566978261835075555122184483555633017515714724218444973105279866204224724201947499962490071463049472331360492565564486635657747393821078180579461093156891925188931562301159419824680651849036270076331346383402669870006983065555691585813450708329430708298583223011523677305470579845626991927130661268985009069954055406430771731579548945190910825046984899668979823495975519326808974137069799624190537188331860498609715565124100668618937207696441590683291435077257772171882958678820881894999494234556063916225128333464468852902380843736509293909186817882676948271968402532489877748671965911369226847869929186693885613518390457414616736224557458814487029877744977441633692175300048454349145877919875193449728418929208838745643652310009190458698077986182098241859322761268640407270197729246751378813619846963523067067304998059564391034104043539005859421123322709328941317926988914466099496848183794322017455144769120490357229651784589454325262256990434951510142951682295652821689831568602588560465819768797883986641779642759923718517325820962638112288211079211163904415272479329492110570824534728013661064315741512473021762117345474312792396897239107744530767789681184945145870973533188443365637874120323112484054122766393098368286359468117127940317100281894531318563030307067337708458588246682997601341080157667364273126990196574971893728370695030535471325044506137945832630421243059077341464962882801254393084875029952304530201280211010972272691493404744265010606501727069417244382424167658338774251578934180277854125257001119005624356043317861393385387352054280959168702973819238067319268472353211122357009739809884834473292664940662985452043584243491563019465549275907333651798702955540357262639670792110499641870464687551106548781174407804032183956581672679827639909814537043706050948647057858310998671495985855629015511922380736742521346752384225343610437110978387620608676012022480029844311471397142362640522528552804321254912515524300316404621772868635236140747794125416831823248118938429076524415656254734464684389627162018265430597987024111197373114968372324216485326319984173025897182501314283940707857772689497048679575033590586980182467323444890026074898252070920620462389887411508348272985043131374063242670553096423995586948286606746137383703624592201019626562345173885890631961790476483943756722595957718748954872918182139117726868847640513180839519867271101078463448106838075928950469505661159347838565480754726278201590743307205440703903737076067187298507906666467330403149919608849296911350998700446179630077029974234703640428880086525903189894784620867213823622149103329200628906554445973466215854467483258427275741354343537711917699610494079506924718488421018699432728190993499297789138563627804484645672462200121087743022681812575668099179844375359938889289505946307278643242237732524333499087288743256135011886994223673473771680569009601352975995556506988254891496264726868775317877488019486358517363516267453179341949003046201937969022888961939346632480101866338283253606801054391008639650584850224767979440750028406885319332529054376825469057406055481895090777167000913780252098289274846281526580675474147403780639910727010385307024744420828062906003566462494172809844575542533551295914322819590071059603187374801514578774723149123575289533174295857752079304610362671781816143158183200578502269075724526450578049835606315846332441579129541738491390702276049357707062454310619725495332601894777610118257846387946220753971981586433541595515085624902187246057782786209209786156211449973248309051376772235219369664140190340979352656457580685071411066814130482314786084650250503324433064716864237595488067507031045977988568211324833774781600588996058525404402607524728132243066903340648321989206620633122944744409458861115544403259068686287234730589872499963124413290520799890287253003570655803229015065253078330192866633087642951848769144362171670317891054703973658676892994881298312643300419674679210803285693908541336578537420465975806425647217059139678802079271106025943089025083283065020010690134346341704159622360574048922388578613605501184396027033900420891334230734463054739620662585134398738073836356849608980383716545465577026112405107938675521168135291719695157144461111764604327577948958442316742485904477424556828190495282393841208211794941298744560895824852533437196331607269697065027172617434647660992874530309302390143424882497015772099663344093660146882867521710083244310138900611783945966633040900667244580516605110123810184797924848398594814042309656978972173673528090088321378982486409710224972007860468873853982802884061091818994051262112549245392803294545331055180219145174849830800910140077350659212626102372821440282176148890722149193731528380489377300616877741667857001017524384905024982967590561252209853885667794102487429667396876528186490441562756174281445093070975658081278152883448949220827382909077741819592640464681947863829353849389069877175017311439422272956346492133556221196680643431412293537334439170923464014196389747291942089910086998773167558619073917534201911757151152976045971851248374330046859580934735746670659934648125837660836011023496600757909117495171842954882718919855004136552087363204497886663893403136378457422102733985278388721614034892533057197595166877781947754791969999300272126547506535649930186943702118485151502242386320259555838688344398198259521726946717178490375032191900853421831505013331870961968747635821413587273418532530638766073417908922308749068641948845477793199313421653495500162460491870239405674176731430020280574918482276771023535849288987378580014868513576123491315857465112639972871812676236645978252851104694928088093248076519706506679837759957554903279100137718517839339973362655884507378335406808239112098606423737269896201370396641802905904706974021529351387694503889657973580461367090969671927904875032156264194390869756882512281458162445223561284033062107712630412392726129205705304865489986389471071415573344975000033310971018021131029643474217747142447201625887118452927677389288049419437189974770906651635271457937727786724294453393934691211167374598933961066768776398194438630318939553353975290362714937448387855255495284942015165033258555260866635171985494749259517199929456126794051785648077141422936823834373583543986527796742423965629836907881579841621305018586839641413043632300680407243167944612102570172260320299506778821504917488365539927102480163730513468209961585311296139466896078852614562303716583301106260685040006401191982743471722858157754991128440509159034888831080182408775494383291109911077582430655831664374810396544022831773258813630910710457612732834158388659683933123133241874548024487558174370604314906810215760476004512565881469780453593081103733671840776484945915212833609407017382149605454726290126375215614646247456377536400077768251180503875034980309169415451475015539255948033715802444125753653019828899627193486460543307610221726367673854908661342208106075997431804165744447728306067167659902115409098816175156655476135692601604456251947195108140967933849117556945785331975713236988309670824935415700212405772544018135650731768697183957602940384398316473700275940713392764677116811086259143558599326386556228932616985090410231316949094793662652306726851319623516601177502015692185013423189560620024963564760754147212216806257364179388920580054321376618179478696714861436748888892741970367345499189772345789876177901558297795484444642297492989341026969936128305018062030538815371695054368424568576082373393060464854883328633004424888686262732846858680642778661530992601874591630910294679184552391501867207477648417924903184146602829823083389423063767144859246170213728567493937692839178312244069072253278037898731151501614929556262900909378932631461693188302888153608255390647344011750715273799790900269383935031900583188195640574777808104973434615794252471199930972502025801518923011555125681494757371096633405409671597624501836751854019167620053300565497593419267266188670078028009571169943598767668321826125651193242397288882587052071949909049550543368291498971074507592732253820310655201568055583074650304727529813860103540453220904601463190421734062518196847101255870897763521696135136737524061927590177011343765448298590427910841296037282076192604568997114455177901388316336438904193980679214252091660398971844965923088223672085556988620528902242833706304115374777018339602264912251043514168828467935136289058050577245228996621401586286397625497731304307410811645294357875027075741305087666110774082864965573293387016056981610924617834081077092655662220091429882866499648255808852942687775699334541750545278645337231544900528067643753264774704469616352685516817436715239838842054965923618472044907205444380319033245758715273787956249660130898345013163790596739785493817327072090403795319378999735578520363238231082774517881761463274192402045744897216128425966323296691115770841745757768241327023166078197702559938416469178142722606024664358160697505669171922859568215296220583281100262362657265513510601293120567103522692732634193111642331509705013789782398351770879981953523489151612639079543500331964244062134805249474090110610968370868305489641571513237277224386746362633556647002576084360028497760588171089399429846357769857992627221999900178521251549803233647228175147027337199654766030071892510079494939008686688270339295631155162273540655537452526406179119749184565068456030098474345628352924077101659375846068769445213125841982017939275779942769327900615495149498361996282498887837092658730883673005590125380631385659831772156890527622449783809153412347454727677604010128443691883260025997852716400170790700431841329154147818145414361520876925642095000615972736037990803829599838628331643470078820788437524011868921636061724946065896700041417274728865613894306469082178622774376165911108866946539716426738403523358590368538111276810690585669188699290023823324841550894528422921884178296711051820449836815873670555266187161147681986334431788834276855020727228851648199674758018427143193918418495875146151212563874883557856637888610012587607884119065288843306698611733115273449210535841840154566953304489439548407249139027626836368693552156957663319043421079721735819066702728307957188667245231432597625481120973997161995189712028699215532152992616655168700005302011725999019820741056493039410255574780003644246622922351830629762975249325324079901699328306755206190408660472152669746463794711023994832004501848563968580827535394665332278923072494823487580793609543145363592190866963753368204826331042218798711480281878627379167147966000740297329628656601637647004579287963778076550209525328231234175441267582360266667974018509866804409664396184622693235609916576030538679690574707317564958162020734001017156240697480940134560910271564247233520053853155740316056572983364379319050210010052071608386081992407549269934963520063825977109278871137024634546044427865945517579461605844014732035666868556816676524636965082432105395435440024212308053858156772291690412999526298952690287305552004607854550913095883970777827480154912750097480602320238642271809627851703799904759799981768748804140552258054278065335721780600224123150259941197199924375208153947213174148410208248661487410877238097218075753833585817708011437343268490243415948081368902620479041399550067770054845308787136385178338648930723286684614605123430513108817852594239130101591864387782490187260841804979512899506931536850993831666695629787529845233750011397103754097937000931605793169838305762024717628937139050922546905152911984699394800573822208293931178658648899404224014195046013171869538323689973045735986649359124183521568075757238230511975979648556248224741431687656381761433178093702650393991324724473323942946414865942065589480947271909690722850775386731172931871059831798299963866951460579005919779053506918304170369113864110950780259242455226051539787416971801574877876774177132473217257229065475392560793285033752510672868212822907296318420558523947106623402243732399638600336435325327475875117839037862341068493137307790230495806004583625113942734650671411996273477821278167120392752385400028605275238319242570325493143154312670318739577972201532691625136222422782141879971583572720930293768699484612297527430930779849660227797437234615749606640934458198107980936163406283741435965717229369522314242680240518069560068521298016287766094200853477498714044190955063678478282613111704166473309009386210620407855936858878466849633841133124586245165961440434864589513885168678344631739595987768537686619936649690326086474403473607631623007479151270429024581676011874442296144955915869627707745777362492604172220978660323705076862449813416335500025380627656099642058270538323982738887298035810071697793597307743792953812966834195761505851195037954259155710154954230636583752580103842609082809013090451648257109612683547563391951901312207504290977605070514107886116524431299764744656573424106858856347151660380347559307239214913586598745560083377731324148993631791727441911958498452306683970934859013440613613764073695082208249055046675788084027251434801617187709222790908090230940163133626198861654180474326022927590936907298874879841703125343641261074066068627820440506537707542985506502593618804600475095542925230668128131297867041783086511430345063325426913453753943366115075765537330927677707698694009657019503834026911233189688515871274746899674320350104553475572916247397989326258475490259423768552919758349353495756418072159955923792329648833851467210317453092288974012814170801113363980433277970298272346434980541033997955352806880680480534826311419192890803953327868176791346820306601577550765872488994842434111872929472696557759406156311093388853990855430681710410749368472606073374209656121669294842271007506068120694692326282071073549531837241508945656182872700701344483500972126612539161777284072078564472476759859972418283160610053063148943304764747451604527945653655355567690823044872668070187672727972543240910563113384728956875906084847933151328946654180077073218013885915707516399756993008088222073523670516008314097274868751146397830091684003558094767686655862420966141492263674157942545440240136536869649538623215682177823241375302686723188955409070828489453699507706706026495767761311017076274349019116945071174658820325863769524273467200729124846615394786243741879193469147170679146344257052173223516765802844247620942752447440152310575132268798583901131698220529365096471219864779601234680582727364800656772204707369264557563722929444710333207734708757218520109018320070649922861009579620013016349498304846894451234428604466902337855362126580879040310373123394304467776957863637306550704676889376468113883844199364793938370923177000016508197991755588496926268290343395978280661951324214524631115910353728660270164358292608289180437007260794607992492047206567546540748061589533318533180821821584403885064450415213073306252023309441111657456847915429762689371739205696608865713034850236982099675621651146869451168804717536866746230832404433323789731452770552705614389797257498547742830189769356538033912452600993298617831404997312809931859945177103880395209633905233339255237351602005132475980268745438731350674778911909837967950216023395936373042559786136685914842574639461243331066434335412129446458754808283637251453275216648254693388010127119175533995004082094320547585120202923696130886909503212613493931975576194732267990986307134835889850092676171616769810961528184765626269070078911451160905336740967042440451248011624536758249364724735347456328989409865862398662442055300930560143507034280483141635689521366676118790096056254040002519377966756967279687178744899888598831933745510260776968354816938612857738371573834513918312033118438508626538833798424732333734761040452303752744298359323986346160779683454759775511866186356905727987092111821281535874742653755861445635761495933232525210026527032581569202922819576736805973832494352503454267233509957011909632966763948390839473861059316041234105868733536294155303639311180911556513028661257804642707785883176000691373360196034905250074224441922626497204607135209441683018872877441522393390789312419230081380391758841346994447999909698928651097736502306791200034348921385050425921394800510816278558058441102886651501647681627306245235031490539755949370617608928316031973674299797975831976640352160575703048506391647857773395951523765834418853431710174417690552055726115923713143703751191446575387374625293226635692086806569963192145117217533352670098379780022574435769339477204733920221869746769996029772032227696393491695356641436277461582348801720436211930982384993757442450781486214847835083846917023937032571225339397124519826005647813033580705733118282880021783088641443070508951723935681488263043595206786666758879451202869020710307869220767734956049852631438686559029221475455203528699643764134573874073516260234712482155496919686868711387691076025931979389861938709334581095111616771815853921812411717643335055484143897629671493625629459459195281589833995744170842169785865749882533300672286962881906771868419780414515678435475262356443501261067639226049745145245188886574570597166292449967046117180657564047280758952044179488659418395208595438292461417983756871353485154828399992638281668994399409036227839374805009242709077720705109143925716317898033435476741949651888279945423158025173669860318148732155587133940548080687842671848459351299825525482456336574923085682531094189292263378605787652430011333309799465098511369986408547945062942515663942318813866661114640828829609319413287978959863913799028505333156354443595709098397202558739053321259961587925950500127341276841254967113891764011717513645268010972779252797095781046795222919117487228941972956402977574981121013645022204253861909178767533124691212060152770763019425804546541560200374711709012950172480846522931839263240767416334191803032477797928047702879027288325828845344343092265155881755179420219725552078025849325954108436271237300923297623264509292644676611980693084981594401952353083097258337679703661273809881180793743394159911021076732065242555705978438878567112230349264182407585885324416481665151892502052128573787664205097349501007293644521405412004665549103427578271156455028595233326569519754478250276106161096780081380820748040043925649085570070650799758427762845683459829570601153232638152403242007200423303748238407744241946157761034658593612140433172526808576404850978820993936043806388489388559513686505275605374409581454188506757445006449009900668351053891906027114269300029997772575491704994191784971981560832622817501471636296043619942914868389675912842742361231915574387236543442250487458737023000024765879439914343545366981327812974624132297027217346656447335309111494777195549476655208819344321613658164419933137344765208008563105359625982053570226595930067462486141470428456759941235699482938440333693513274214518410450749695796954367199975660782005510157759698912957304246824758934107026284742473530132017099673089573009810405819434777715706671633145162236156372726279318163593526948563459462267937353708987889078929791617311989903156245252974827090499006535194314687531636370055501428417702596777009075176373827450220482180518647090816669005577206463270618576287228832298820313162898267131496945289370082832353240077280857355562089115842023624763874974841848343715459734900882001073223891849812506080702487639801400174998888166419651805670777821533504376436131323759457596953422622297075906885959593156070216734600144063552766611477160098111524782678766990051368085200323368809833832097460055689366304684513625519361521655448550727914911358414288503099591059182031773600421502707346625368373735953069403554114060208183614207613685504757814732218697356239413728721644617493831593471772663336557027882794763484373737349737614956809525357412886158333651112346048133810931595894775216976254771075857671539667237243035611070949618323775819303268739554893075055810371588892633348181117396502199325050585697812999811775478734928878741643198541400009903830672550903359720717957121779676605098569985604265967122598140489857128166972388140556976981658712159480452343051771433401310963054051009210231533029433461095170098234907147484564125592408765368778161803157478554838047562339803357721699755189903832783657199246590305712772293407303394350523377054130183532473379364419175536529681991770861870655893515150228822239009086223236450268752188468940171238418391567097785171501981524579434215324944800883385113214737860038687767875058974504776162799525124572851063116177564243005332716576158265753930083791508133897230081408706889793176151187017948203209078730351665596697255157164503295940611867015308526423342483102510091693387628133267874754027018472984089835079695990793460037415881128107328234604931296302723775258152749211371500003018301781987168031942951456855873811214000214490939778951090907721700458428129292342165854938074394364538788742865032294457091528455608080596079062033728117303281525030641697078373734533200395529569897342457029767550105417033899805557061209496259941364064458187036306390003969656257420579220016611148314387388919505238511122110029601498281084692670470963402904905177145995471482053398194605165681447560873424327423991495491263559834022436056542431554029810126448008637498816553016181247472262972211881363950164604948539613357644061969446890951490749295742668768838819029218331892513648143808530683208796566699781478355192178476997601129988431060952298618527465695154493886793774352427011235735662840331995292714870853133056858669803528013253194034974398620023744668461690870669637473791461013158938955894024346925887235464239605806654750033884490740428365573968343344331785679210046150045826308421506096064190959281198240462948088787218438208300434761537242498436417317468527622652304382759464807973293468608909596400593153660291078099724065459640681609054391942871686807503644102618756765700683229185832290119731193957379659422912967745611847454681656350034221636917060757024875543531841963930988939958536144064303676984745893126767391771036644818619234720433283097835413825421079802082163663055907734954497165649461928534702899478498410347159538422001516225903362322832982074409264062404296770637437318216673497747268695331922073915734905584073344195719875058529296843234877880308991100908028867768708735087142473159191721180093862542163299709686116910956828120566000972550264069496943786482383627022729929360535748914054407522064094898365813890065081848050442192913351976708619070524715818993654673400929063668015649610418562345100272411333488062046971634558872597316601232488770625728039614794804028270345599238881065091697143017253495070761803563081212227213636353425611954378687948277856348633815091363480229339452350146561359851589126643879284823317468821594863952687949416359157984708011824488081721838021394979207435410695817331880619114104931120231481696816211583364742343420466693831184954805760660588663158842346506906004824930098743748348579098156453156137763016006053195344309474442793052893061215938643979518478372757803052754392446992399348947899618749783434331363952699283922616958946166474833803370304983887612473245119570396662748935897973030407948392673115550504172936275708949643277627169413715567820435345468962359134429463669823179854538734413307344584289545218172432305579444961120469440364591690717438501146194724248501558889071977608616384538984337093081796963192635601004029751561724746867246838244532917671304972874361346139581672045725203206436085967394809155471011675560079539372475900280172625163490129815062270102181195589335299372640650766811422245706588458234672913903654440240198990162699839313080963662658962314511720409287962733895137028475470699869375714150824847780681423022320750005922686783102708021295435678520316841639872644530416932117088541948733006504422709166889737477239458131431232051092936533972782464028646383811240317507001641568532729435840919079647024154947660663124360124691264884450303461719336979216003476638034857825096591759526534573361407334994302487188112908100823199133873434626988264462502971018370340379647764183366399105991914178248134642455698155252959724169835198195885264633509461229413722881286470196195546442778845394282301483171784130043944805233273600024866407643842317957899524489667905575990399565258011798469334352535705179835340498145692115931881240998690950022776038193274083796303153926894662200536829022797719676162894999864688213761374431941502600586493821379748449768914659568610977513788292477102494811300543609887570094183610990396651835622736642278280803663444179375518940904861854183923076640709434909527376151180665297741334310710379864162377836559837801181431876305407373220669276110785615827199434400518598775407535153866276879852028262521873410057133688827538121027172193957949100135839439228838355573818080383986852083455025413800237338228232959334404763862484955004586201645788314693673073305825902865893538141135119320603867910861614345505426960183448133259472867828910492158406424496158022278628200897326391849587366300314609615382754929696960789247302044058387821138086039084885295101552928855575153488261836154458533039834989930661580922250579828432763462364131013106361698424723516199384283650376030942553259524654644841655729755373325202052343374970293912196022482153306995653142517462916148762314849476339214310840533275369764165093748743445042707393573250735287070396420325092947617058720473493395579598602640374977805295433224288610542375066876009967054018083751222627505818972532965769833248425168142258792620480198904973225598799422040524828563903421040361058588913112567640706007250707940563183860037002768147935461350793481226979846689605739273290890452818049561707587011875849501320914029878657840010437628928281732631209307273742497574542985857584064299987268041162427109951976572828383992187701658659569586841075004394484081590526222497264744284888466919164703554488719951510311898665912905969792360102653556844329610748631630078548307646456113728269433003000197594232213358452885577516024769189863516634791541253578120282262884043560056081448773129910060035382308169275156676554434034980410615374972855596570766072164851047629119964980334637893207383694580074609697386889891677048532204175060868024398880372959819365836865138364269994321442383797864449349436595054494734882097168569616845753238937625900533423225478111402601462205826783473530337872370271537137165154114005705183025151087682928643134971193099181745184531753350626712135127783784452328793098626563778688133968457377070280427222559240438411290964378865787645281221581530615375515907559633323202307281966402171544415892604793931477775777121034253832851410525963537297965959803492745825844581229129732061594387182977071252631863882163430055381252793206543048921425292814101377330293188569036439106894850217669710160433967885712700426172602995520824507509521951612749389356555905381194048503163294219586157145099406509583127420810048119862852671037735996677061440864782322152249712656016238452414340824124712230118624790071521956396442317907279480153175890884562943961736520780154178907274937224596940675793535973275601239118400062050963627354238847808196765148425525756702323898027869823077437709174038816310480973759578366714352466255150740655185946743957713750883695766437513829541245577244327055597516952073314225675385874802282891156742438810469908968552324518845643500020889157797529994712726664386244141857221046616071194798092990043373656563324932864047591805437178036724374362658722947718146914253975954939984235441273101109745063823713040241294842932350198419780423710105921688717210373382212319606072358686422360968324755869863922889117624882216931182764309222762722537175124486545363420318667802930962899652332445229679148988400692237844395527956251817133280850864762789321025795363275096441666126052374642080337681112662211028074492368907130393570671301276115007938946392993609802129331449078058641173935176093717613427895077806275215924096520828930410481620761713534373542945612630512390872743401758774495856092897670817960117777668778835526237250214773819291259587059111474414282779830441734525483615739289184957422866384872944280733442951597421266729912459153800359666660206047619604722486927873726354939769960280016010559650414103587013608231523880674248738997225082856196463933590266257299829556638402735311919292895749452854051702934910358732192673061904491105058805406410323795549675894958080063995996196167525625018530857302596034165545987180018205659082082958760781811249549815266148017821011184755147831710061938578873939706892086762755986696614765566782638707228525928320071000890224354053470152858249407105681961572182537505344182047132891300022489522060860227522887170742115133192020118393143139494862909142452608753570953928823142210608582752979266705938618580229224165974773375903091071247015236068641487753397286486450282327708301003263098934874170287314894594550578499905638705087193214764146594497024844601491825699454623678770276572738430709499742794896947571154378963242068325159210620114707620795634517779819696618833261537959985397506376576693981903128428236525770549167271926847077138097978518010263917150662194898705221357112293628944945696664440819961262632571073526132443689720159745777891982066906443261577334684734498447928081529851067044844110499936407398258405869711254050125430500677215041803627033406169057551087206925487014174685849906616964350534088917968876830053864921655142902318996718969758762893801824133309195668968975091674314832933265864980024372674983735635159012071415131114672463143062228622962521203055717169039497770461111586026532489866894396971541240249392857333351392183721501811891571358465311998320287667908476109094798276075492175592152098566340336110521444000044438945169524540031752727342589228487568043310280706935421502096334056970594687899553818152962678022153511986112056229169266009502064949688688965673143748205099726915578546288475833669502783357983994013621216749062856616044438204047939356326406762692606420352633943065980417319800092457256975908695915681786600528105008867658990833430843455430359184016936279523553142413838864070428405944102714538559712994183039409914108255273876654000764464883108476608988183841893800877482812906408341246740519909776802002564576557642757651850325818925743147300477867152681678863848466621827217673624396628465949026963848426426245927336694568796382755887706628747987559790987757704983255172430049586391385302365764152085122720061972280952483485271003402001487778798658403252271172361567926753514936527846973198984484023345770809202508604534666422611078989162977464846653661476564927026758622960535616534824119600339809545420935737615692263041172990374202174747326541102305391078333292348415160773032763289697483192368482188486232876814009739920205399229341951398480532746200684001594850851276706010206914205576698001229928204216896935134484233168728556566573924781294671525833143507144584497832837288030612591683882308366114824638770180274590696990605249431648735374773699941775066656469648804191584355996021740411243485009578934815581027621786293663253196184698978965861806404614112378697638632602484739244747011613730969610322843685248039126668405995982340853820106963166305306019415920081269763860486060905734760010731042070669148991783614364757560831122362893327036227956477110877622919079181379153684402267613065776409429230775266400508268143536581593603394992814596835689931612887747480724530153110538377253098208340187250347838179733064310555477011650394909192398791199657435553807344835692688309928186543823733267933677610942334180362127188614416668636894290655895971354263256229138560395010119854626175236049105146834088327144985144276625715861113177027720651477589618621328406699050436520127626932871184201389188143134379338058029703962087774454580036920268498840188919646593865724863750799032166920588842101726970937497528128963016991306844861703591085670580671920957364669954183290853913750862433614087365608736179477819679926873105535822474457585405543731307867397111905875288041202409181572560326057144644576293088673143052247127595988702601468128159248514155627701203879172335529979403893695140396541079083966933664182146726213642582351770355116065369183466147309176209990744420853518875361950903343330863401195851123241659421299116041772865759726001981934650263715142216310931046007213514001124802556367374915438784765378811393158802368391466260551382753410647120629875238928921353838285581203639182233186056970092879038977589187298626290031601452202575893750663409556242104847833780003898355198615686056448747194015579864036616459444448226199896035510590947949940103204122610168678546085555590956988815412130750343494414273934308491821978366373493497466302850815074582944815196563742149932671131542683665197219546180775475059208303424660468457233531745421292556774374683871585760463438156183790437415953650106583080124402834711979800422281520072626980779689882115861363565323459642856404361787713806272969016078141591120591266229298733321500730332397064701724037821155833136802236625728410324521222605332547184956350720295572455675594491050987048682420913518398708410378942518900771791647979101708708888307654759345407512095765013587681653569948415024764383264926426537370184756208282549628443188628067418180784304036110847909680232340594944996492464450876328899358836354476589478397114627958914209615313426381854761587409340115611532198479464193460981863702867094462967926310825373649441972784702376055740734485751641308906663240639325815967721178947243611615891519843740742374457925851182452658219570626590728830188550840721010192009125615313949095068262913838014226867524728471576640618056750879057214120748350872037421665332009688369952545369481166249130168428018054976307906295172342316778327723430955622895466328170826784360685351625234384363910000126451206239826749658650989738350173472368005828420379091365320038967867811161171280238713732481600539236539795214208641819981984064260782748647369436184823336171335160240801955672506307286196295875912953558218635652744836757922753261064438330012817355164369443941799228167721663063443437163133342026164301329122228562895831485663237552690091738216210963742660594920373008240540082940754628451651561547127442898991266118819764677018680826347529242490262852944462454348404462785269352651779832150449301082840925136948144711091930253597013346466149693980427532011370909565305855998933617387083181867818732374396657398895827421155579868556026557271835588914218438545358772642651587748392950678859849590752026494097503987839205447196952190805828958376560786412034601770930596381726102306462720711740630841564901430780998061611717052842353961790229922987181933004852881923971491022946590383723905093529128486015002555873027592254634289372227727737033422572468090396117199097952329021955598362157160200824066029208931885380479082485607835833254832709515614671160459854749390941867796906123618979846848698287852554456942003335973224802385955583546481681997086224125173059892289939390093110492494070296726367345990008982580368927495656851438933734997417139625751810232329041443819345825166846512578744693107101034082219187165622399385762062807288835161155708322294549575066838444601633142158179537867641605689421658446171659306551403097866443487222016361419631422663165987799361854550058948039438559400251187549156284459520923227287106825588609692885079470588222563893809777323800639453783343348100437888267846519962258450989410946145834717947842420877931046988295205042486400548526717583664664630578936797991175243919209396378727066947120255782211672480344703683146139573382318015847396800310831786852573756072057196828747300452832266432543343110945335109241176543644874398017842580427329561601789008549806300901017872811421844439300998706411084899940603184300726195561703251929507973888519453479450608326760875490964072470646938712422576634819674586751931464402044879645823055684119441933443513347666994844316282587947182926901985459111687417095021779592034837008999507880403002595473219916960315200169449866112889364624460510962337506905090953581727851827503446536691382141808674938344088105005140169632347816709843299760151622446653155567283122303641921235749937736739674792081683994770886998196779066977636782728557710096361743587314016705549679156357949757457700139647780790704592107558723177488273071955272329094936689118464733557827130912296064133407332454407489250332878971149463838486129655017527166652337707540487137097032825418574047172102868646894948869343876164878727083874395910198958222415055689300202167548765477884066737091493814029723936468310072573137208869144171482571908386704018127809775890845309770464964096026469284135177908851038158713679230269572720985502872051370676479718242260169396944299350469180702171496856312507875415157204208792569592081282396789323360877005107436421790452124587447258924207263688962995970351798694740938825732918050192369342645777473606288351836130202181685822932463870687396660168117770451865329667871994518332080354741835283697444246064270863283994397107832881803429520669438384328512245964220445843979448426559908243539632554893211802114373177999199001452400745954663365622397158900938726795939878707015506228133759160192446527292334155006775743923694217045256362099975098124721364975522670542110572162985540341451449729299383442159727444442318047869298640544543875012933087346819769672890906995009885006347179857653761288764809397225270328460043204225944902411064800927910104704287299884906610417952706089028551078574550161744289051458140487856324247786905379720524796701414337916445376150115026253542839456239552544005541435534727242751220789958790046723430420637263315913709886618617351014951962992212587400454127037323754387388884203906629304262436543289473457552400599439683068008481659270942153743628712320273011842481382953463144217912934577398676002426045396581727770345682129518522004808313580161081774497021315647476241137112723526763661167817523120390419440252918131508269727618974599451660055601253709717978620555619536219614012846090341351822647977422782140362112234213732598866910955768902160130693120792110753580393693342449161573339683068807268633834700203543172800391750517369482608281225168962339322417849085885359534841609627428083514581840401316509622231114605567259643218253487740821632537540179692796310127034895138844985186081349948553720216298801143055932702882031545650853743724473196763194051575907511069615009851347935949510170266867384959326308311204103379691061283976611640900116275583725267208149792741996137456446355973078347988109360207890732693701742379183720223340325237445446153827417896935031981864209891913055879814768303138962914567864339113840154054599114403014070282604765748431762610113983649400951583381877784067935329587787784942514302867990838365376734678112273135844439828834887651693018685569212228044167840341590393029033336803492352998744480648953840482904159884381519344670598505114632043827645632940944916984587091533418180403838151226474458562609946603391484359993847513216168353847368450305960232282478229494046381748639215069715521190912111633118347344226995185071809018267231922256373646457862693160551554935072602062982773778362914460359489887042544684743784915351684752580204323527990499347918836217975867481232593984022115932864708299529200994218241847309772272053007902472076180776341789997490426986371665313367588383557398679635473536505520533830563926132080943685693012633923204924920539805978420767984048691638159836979686860095216185051015837205608172995432418498784861925225457368908627332510552774599176325756808895449305700608639352655967360966668460551582819528710099964427410046050605186995071260295993573878639920560366833805165200284414458878992782562447653789706536595775356169020066189602921393865177887300214320714709296103202497020217583988770423906509453826438069603745017793909827108064922244299638365565400405617797201706954987244778316005318390796367511638669095907811138765243862242126327948917154320293360019392169975173988920879379050437870877836290867507368810996244949965235728214806940311739663996556884974580313923430337796859806875639977918645827341676771492780237210327533791810357806427548131109471503341766802386621365298693663547609455384003849850054596771502171283458403287656719926477178764738761770497359846947006236810123819703835089887896642166083746845505910103820554174816999962523481295544698029796008383102987444302162758207487928858920643725671856353262030271488870506180710065930813762446384587820457047680897785665213424161196070795371156639256645055096800339476595840059887822952501046111977628139161341274561917638840320415779187713903729192849904454905625829618741263337500439541627059905636456264616955246423351862157972896407277185537527451240187943811193088043837521923817281443565726823526782248750279691045506501448669515215454514718798531135151374027538201220980679434314712351091674320117208906697451651975512870486759059293926590566530475507987328313903348613508280439868529486989648636145867584221302788863958703686771942235016299267919944175683558358919921901382780582600993629250540809688595397143616638812034123412212494262854960956953800390574076931456560160592312507576939956713854765233240227054784688981953252793866158647776785752877592947690429672478201549572388448246648277104088615884413418012838586051520867655022134583119683525191773361402861528036690290706966754887731391507166735823784183657737507088878356618893922347095699718552455726671062851991136889755557254332486187869798490933450936929115217454569577713057906970818895494851813477620068221833172034762964663201825457344077910337552422492719847512363693753019164197504464666755696903292962667937084246391047997683594496783440554063990717499865893344769248694818439652197891495890490754772762118533256449216474792431883951697650627028185559698451195139060040544015044210841084546080051130942307488695952754547683951355192596160037182653169045232785987420297380040357613065796304310801114966726717374435516774680090127953072583395566057295743302019300406029814685582724271490860421589596606170471750702527007261346664140377699947428397220642534169651830617132367771864642002282901136907137144495275548186393660845969998517792171671277483586652244497760673086163819140604805201525907682031400984241628944415087172734678593018062518905913079416474956777693680427789484101572710169288246959796070597172148993218452299863790727658999654208937127326001507591791194098329444022239114061125014345267897484130961471828743889188012773833550215899867455285264009001955674997168153731317713287495601225658313979672605131049516889693386108789363892713266627083139041436554919726193003184398085418906861202054178503118255680480017469500866403892670218310880514139739400988156714410909011316355722595034448844764958397031871006283863054241645842156837864382703235421542112197492214405823086968582088807812802698101061919448790601925772871460701015748310490518490340548973689664941402696820438277241841863779792800445145765290754159990677384569122711454785939278067270276545532062477965276268101162646226177814901436274394631362471471225841851439440010162367187607717624853276891365814270009958980000280168084162827609181916394089612624843524815713661981820112610173841413841966302509702822642473158662026601883727477450955860084803578248923455722398763244063114489647166126009448167725184778597899497474084514040333534225285309369596130318665776046165933549316756992717910640483302007562631249975263421253993931351237805294708224379026558328470922968438407934154343352511750222236670433358018186017274490559466389102763569848591151438552351333363948807521314761645863570384651858745220793005838735355890698269542774317895308180472447034897329097790392253119883197607080428327975236849587166104522277855537157818318338145583082502249862737244927926396393447305774315743714113329533087960515508620369834063295800652742093717875933454342327606820005614796477042588043529170300373321592246720202886551509865173092333893256885760795787294800889423975774237081051585213228264871568489596074088641055868061945482966431264524901762758011197300135495286795904243667023058870526131093110323585399392360461407048100994703619074198275564452361921567056832273012440519737581952138906716030510353222860719317335505738100229786105266390364440533218216774948805527191339880113279009327013587314459417869130141730342839299599500658734867775386975569745022502096657037950195454072480904110497616010386720685770595759603530212647331225535019183228438995532981640297081839342546188413315835367463978831689950749726763518715725469885207099026555163375933684661683420474796471880241260635681345080106216076862131628698703735778109248217655285076376376890055913940155968516880473672086395628887195997446974627615733319154691256093059467329001262713384389854465552653762660804241540390826804299153492321624833641816150109914321305563080398493379727583863830815603629539835872587122521909047252972084370379026449476846082786986818060942979867722644987482765398814132849529582031435925658421719951355565228959109478185047669310385566056165650859366484003213818894567052227130481471497672518471184230649176509879381707522036520502650101907778627869865324269660592837609716628811561829100096167170122968910415493184897090246888253469088230235712129072011496862389160292459699892430489430499194623278164336176641434172843571134987150206974721349848298204274240077169738737286059826867456891664310544934041394709745280696293396208713916568078948193271521293489689302663989274060222694461505495707591627840861127671062908247963943702297167173147739877015335550038307373661909890439095585593402880177204098454997703711762502314120492279487068781114196419564964312637989578808501594631014987050358858860793526723046324403042526238355605117349134316890788370202903404224573876704444441376279160514524274802872795706752003900820993010860615522407565354475465377001796314291354074447332158134856303780115286076457251349298238380848023911229569725599645324852397363567178193191373368363985364832678205835092492831856359369762278094129359728540492420748652012158966926199497506955526120838130874307677429743830964433344763378491268492025622291408268250117271782759713317272547148104492707510472133781705003466414828268707619114400898347134868634344835086049765168820703086172497610534519664265631375719974674241436545562579299420926396155399297500168816367103351358466342033655204265687750657057386953034678019826592232946918217514220412804306938143862349599720196088579675428610461845222525773295496746609850969906914611777018155587084975443369597183973514257746513774999011758895545135255931887313181204275160663511739111891459476091124699403906919603726981897748787985165113063538713268768645800550337553209799166937603449351501971827513513880380310656401868699674538622276244997329926703441807085313812978521287709806715778724004479202692014331469086359639777005051503937108792703595577032465974407653614954733120650544930199058774487080330757562887899993938310711825094765504764837441880210588337552631020975620367839430025920984448922622227265576365696921700814421137053664350904732201492398007813647776841623320101291346765931060212556296777420915681223738562566499853459419585399992262061939125972465500694732658796867882414386315276145474182948440596819325135848114871335448426225210085749427900770876841995995539615954650592433800755232806903381850493339415832610846552378229421763345254796642983830074529164834961219336639284073738332106156145030958807407233738357976681100333038953168741074187980120977122443986843134741183366654954284861018096786485060680019446797447705464439800208628027940200358870376704361536909951259526250259255116788909788660608109938922839008251867946433301314060255947274304007174277646394834882528734495334434649139207776008881338138827483884919781424511488580629910279826534082961286618310761903206601989102055055280645927253342148092443024556796673609962542733584340462215927479577749410755704983103209726155523734436386536848009771420858510149434413930726244254755389666786917043852572985425991972498354503445138394831226512481601634250464290148875001312531116693671620859504636121691103082444654558108551568212081279985429638825858192587248435869680398007338070625790959259191886404873691722677116761071799812553722009758866020992778559869040454563498762636696464745079362354246261292796406479706525109158894327740058685357326758144595712872957220593739760201460117467134249304234373738950503795139998264108080866217712020209020555118296119431838737363255389043963420604681433306080820727605289480931306749301801622459532539682541595980547652909428020577895222668276569940017389978866755278971159088233198269876936211005854442015436008883270912403434767230017064293527554141156061346766863748722015736364259647183390691738751365633217084952775117125949506013261835030763562444581881904700113643550310232251510516120921012423333833778204091149753604304029295402694828340859935632736179394876713388946825325500223510889192133874365520920516549212142155400749155732086436062987694359330871562692137617132352568681325870444590797377927422472263048492426114614753183090722143612675507790513040649588116934735503198973528105248206586972463212336080226780213976809393826499389788720319468241673635236752319006358511201844274635159280706661392412532426546761193930049380488763164382351785500567377681530087137769866478548142768318380748600460026992081675576450395936163265747108732866239384060328745905067803923699995914926132738578696626157729764062444628782794896746776915577845281364582275136524600154516880199958596779495277118145781622363553152068663057318412689387975898258858780909193384727706581577066906912354102861487556786184263429743465530914985736443133886309567129953145978948519000715103151534351633367481589255846101127997357131196508728139329535466232879092935997096949349629779576530906833301696378810688522351498135914912709661984220594214816872692344294909235057310296394066278084611249629026268452579383312612288551430936334379725695371538508236841605394082180229555991365249790179992426722544070968544159961046747024765421081548364627316448603523030628654220139928513563459879380356032275746119636445758979026415620074492224217119797311791661577621804993060290285923707491353578385750145782140595284847819115684687764681510603243032461122642804632081632747714343518461491915612418424975821963457082153106899294363382401091784886215000672773091162334069899972259609061079718894538293036247262240193002189421493900247853086360997514485567463456844204149258302918652239545415580055315429453062324139880984172859142945338744499400504235081761464719464935700682780488829559518130718128738165659166602254990444714577747106899795526758798478142944311121912740704138215855769270809266102912008872679075449705998672857170509183078080000086774124296584965524558703651340501148925973962537198700173215651190878610841419625199061258465710521431486137903790110732417222398503577157017605710989329817838067754036726054862511952051201265771722201558743205875700554671620715987552413519374295126108128384682391025242887935568164075428693134417754945087987280289782184081257390671554791187135266806489241471200128654093158281659664115323498207675532787111918906567093239445756893767892424826954681891077306638754278514103124803157466364387195249950941006173216426221008942620567743435028432835658437353426916256401076930536044093143647768259726881549824306728053896979128369361819844614554405954432628426420684269366909959768047757157847304330121481900283577181055675597820295242487263752101579902925260700058172735347459738104680770899683705200586287090256342297090463661047440370270966059390600756110538168184197324700130123686233253909837492904628138808701592429615515335261234507181783580974093808151146021309414621908479685108141685951389667046958089251896344783182392038731232134761481150069847226298526879724356223445086025654097387444083492830307397384836498553003666782699842547381047578913421990392029945149679560159239785544459925398372382546213636451261103650941751838951663041055150744155499922750738700275921693787608766608916226221477656533941334766853569501999770083852142503190785577642026120642428447355893385727450104403179144440409179489903364784856935200388308355134767812898900038696625126173483280367860629463345665117553864682317179527964772936120103360306370899330993511221181488954134556792501666236352798710983956345259078870409378919913666857538429300434307718625705697110856936105487654464734546055425986101745546850915206624239310355908853173928936018629375689409805701729927554411846492366599968151542141249395286054919671756090343426618944310844445102521577015441147977755704011187211088788252507280668638458488516832853982449213200510175490855609113755455898497103435531590099426006435588750930399165745382006007349419078654127251988364328171858878181380523306386625858295045659331576619174253265941826843817675740601154842914022864384517773773909187402188581823516359206440135741602961363625527454142017152966339011959316192481468103445913534103599901235206660879937518373696159148644273859432974587976099581377774065519214934963880984110794719396467368590830402550904934692528072334177961774483112797349400249182785393546834538995464917778498458842873801440984959247859169122745256763252662273883756810157605438541724653185708249299781276265665850730831873610479910138821862620550002739138339131352863991157110553166463431595529182314735504936630126089354399832609643937241597789214017219010348150836846100930061957955192933802503631356618505797010224783039878416135730776365564214783165628699590339002007908954832181899401715164558400058014233506174070296826933396793469522861533104246740182416370128848716426359405549129845458394039219654721963190798100062507123941932233654655078531207093354316660916399004059366280258278476519343187501479277205016479073089256383810614597825380557543941956867620193974428781322619304100859573449941697370564250225216214227562652483114687932260830882991567001001739636958857586879696319174171241919568286407348549526687047663373381892745221232716729976499564986810824342852767817975217521249671261016785467614345623250028161495670014945814773959322267845030813275454147789506358344805612956568217767519656332474074105407492648585539251410209685714326444948249190044802224852178574145014286243369807166105524848104334757482267723865146248484175036472808930835548308567812764727633340633804224866374057120001294643748728575799903798204702750692688156277105018131704266610652870852389889181362950287008425774802689286300667720094010972438038415257495435481015510043269482291281294746531601272498559723709991544450808857321831927443036612211554256647871436953553317126358113155987869700640916764211350785095167524468420704978496231693101182412448093435558190647444164109348748680562173029614966012267972254236792509386046012555996334751769251185724772237224846048643401022848709817448698955407912852688762131953510436523379754324168015512447276883476799906647957935796983033083597934406477323742403419056252013483942901372002389837338181890471242111475805514865624275601000327392888538565849772363393785200727283837755973594536712874809533713881529573018805588681955790030915333076687365017647600895355218298074870782310507147105144701706862637346901528246591421247744021431631338256596384697183976845370995808112381322613982381915872794868075326120924635924933023918227489937299970480397428311609702626311817203996471201155311025403528431772799118808828964776882102747158755632503372907368383691239427087219456722515179284885734920015584069276682826004847994554165636390187781709431639794540744739347956065897137166919278363186531573609228908489755337352393390189219870365994699700243975455340400561287855835285781197204764607680614791524741813461606502236256824077438064342587671464711772003037738684829616685705201844170962079009118649466416902685682114924542521603345224879182358846857718255729643772347194318338550682660362763039782877101656605864577558623142878510779350375513071108615201037565213614437673538403341428458023483464563429969428256648657122371066225280372166634456420041728946549473369395947951383530298903332752090349210922280915305768597357391506668597917301391405135633945051258085754155464548873751487957409817353756991673102689790806209122299884556811887577354520258195661468565918377792050870967005502704257408864134709207161040986224052675600022389141150841929523056435223289713015969591604236271202795873570625890769011497780695941770768075990532386187437301713747605090828416447923102254436474993808445064588352243526955284068845903682790403846925313467001697119950391029580488578941974233567551702394942675386467048243270893495822442069498547988031238985702080519417751698303455586161792110611046908878652475565511434071627276463294520546055624185763839161934301773717095989614911062652916809195028669209427089255443525816663873320339786576995750947750171866308196783637281790301582299682498895754712472337545166513810175822258127576426955936625669551826709778551492801117137437499479867348313941252649907225820453095536087377960876902062036352456680233514909174513492368418520019908236678019282168474813127005135892825366683955909758685266902671426544621807372407823696071083088622912970658414766105902821160595831796031926660282919334859950117452529201384423179872074070747497821192883219814745724014015950960476215143910556963847177561035237451286259102771433542314239835133770691720739784442807935884789132488045698756839028279763848405345675995273392941258547367042541356310074448121302549821739664571104643889441752449532500635927313478468634895109729634502742198621751636385331094438907974329316816004483416164414962187466222234082171598540609534067308629006735333061311824235525172826558972849355851764849959151090059393383150924549812396758088161496465199229529097055246246576697852618176788411623218901961316513258221407705006525108398448850892034977087050805175697635022702978813043650708165249759033069815116220794814908706941460024879066511930851366331392269532668722055231569813145736554082340412061933853663419788561140580312215444460093745698443937307927655154183059028997235637043909627269293352572155495510712524566781592702227286022203940255154806864276803752658775095791383653257559350159918557433546282467860940257594429819965786674655941767276463179855558707010137050607244345047772499603214172118409024729685553800986849385634033724039110576599671531280832874751157104755939182897304085447552812596601375524583700851016664010103492144738091979950223934431590576516282985372324022836109329877584247662735189958343862990578200743184362028554250575513024993780670653196276296390082605254292939831259397643091769961736087030816890499953325011263311682293270735262220056511409340185949502278766341146399065993003169279069502655372078821444203418827834527770815792906302584673912471930924033753647507494843530010026928846660402809830557329013552235694701278883552688696121613717603235822061572426922025970618039226882496929144314386087039925491396416400712972837868575201029386390951762006065279029463650957507920395708503893891549070217056620386534533161072596228345404109628426238874685882743950446622131156285919870617820900282896659145766976921749648047487561027956428709312384700427297194402204277085836034524798638868539859524473560733334739758623440882596525040307897710146982654369102607452438096542588505188638762628159537569618106558528112117911853769217017957989136278494038587185412791185118845484170036941052237354734467259572777344297373371144862036559729768389529636383596723761862492487672883759983338012240433479501131690630161822995567297856253275423611870089009760499202117975111518226691677606893804834128253380086275772455811011255690368465012299707983231821015350604394911108300930508889577738792060452164591913142336315271860459926325228542357827651024658674925484122127595949687018915506638834982273052028540396826454604968629215476631775270850050511901685222498614722302065535271109718229286069841861258949686135938698859033564864015059385220733819308642577931931013069224753333182030767273645236406934954478579279519835330784947012504895035151038571314687539881506082364885227765382348673490912421648799090590325996948287811295020536183798913091729616955243500932548250180493075585535242665418159110457497712054016825806855608605270245367616416905432963458892398228732460402176643499606942118667135745512139048734388838682257932266584218817605186785995594959537684598521943054009854708974107862426550622311667763399993631626494609749866285409711885000555216212617629801353758735569226145358785490066418192725438150339879225832401887619470988896575876356410073077305578809057580986233629623956545550111117244553039940422885946855497535657207701662274557091357514141813867687545369779072304848610320055765209707715259217216637420113895667940103142318014429781097967529897725857361721260959252900092009604568258139535791200858486179966689744076385005964167681022683604355540947756835489268942974797077095061428649591033648698356181156138324289654096336360753817146478045287234038989615504035833507172471207349141068162183200384198817435310322500565387075306419504192877311333525995406017500372736294455983622238848624378175112410277129971011232272266534888224693432319067893549031746098679310988173741005559422368912016187468590429330953018259842670576930402813947018285207083330639274969959815023397044716666973732011892940897168039208296995269142423092431371744560020835355752133080501166710174936337789991008551006010384722816010727509610336231411610534714722759759404583594211735154736410184875161914821968188430484703026537671903850638033675058799625196060851343617185927140676238694087317109873191870641755775318402093127294477305495957408759517048574426986350214905759592579172259356637284526679705419596711773529499810753785478709342370429594052536517593479518476896174720485804327781408623455780334710886081473408346951493695638973792237563494427865804945994920272562610091385208649881292907697854711955596943852626504354160700412797114303432190641605680620385818865822936230400533920824000193224473852805840767274929719477544399874879094346332412957165120032526911659931752506271241979898739680765947620547937217037271397561798307368824731538449995423440974184208160113750835245683401371259551432144079540874392144311064912533584466978604158802721559640241163983001598502532564224066530638276928843838684774765368800408388885198558451524392893144680964493625355833345744150799994255563661454563631631984634494699690111289481731539158063334105821825576989628842063180156621490895577769838921311179117093650499600854656460258026330719917550158709716524723014629187392924234082499887501630889506583827581634247985897261251220132658440747597188814545098420361388752730982437665018523922309997726527197746272722989017706651159269536025238413599665353809780979433670508771805310251124127591020042852965649411546748014950701206554527173647614440997065162659670355667908291094755615234661433061114018839380829402620885644536439006889941876663877159337279706582730024339354934207032094914897935461004667312986805974623479553351643191817634943563986044180093702323209904476020765294449446412113699839080064336046262109371615347929442102998655447073744085124574438499066974090866587369967534820024173557090788080554681608714989116255399134794987624422729654155339011958354202400833133529209636060055510439187370701361001652745768864031755247327035978704112883960553765065620026176817106367040779511934315153783748669940840684244723457089939377409730877989592575452094926584178633374719759726139162639054489146352591195538936993791509594767534390426040370289839153013753860361307394027439860768668355510198982574399650245270385299095589239718026390201083659798014595930976965750050080987038294396800723239183813657384637216475187957702666231535418221552466741788935188187606333628942885452639979004452695157776717156578350480441835550965519078379149163012822421108711766071869338083548677360303197751900008357802405470893388136863139915016836849333913310838538107040305441549710438396580622362749400286789586068475627771488883432417626722894441349219201445489027142457879682658036965623315793754359054238500289704172068639833389948741314111973097719951132415642040400707683602859849434991865250516893158057943810208711539762263213263000460501969118486526500964275248113330507978944626203063388259357430345822961258884922248385208907621620005980183566541217395249467686891423631146468006344224283831703554999792955951513123907364925180200003585794375111667181141404970593251699291430742912449871921675277651067373285497957736012142265391983729972540605028954669743085191901420374982364307393130963112718287615574415282190719988740770109496845606260475623713003547591542864091935915727076366716388171088193257386579047442380974943773776749527436002908782575209340201550367646633629913053380046958570915045489914739710749652997574823591359479084975934959914416382095717434350973292458880294202129137974190163588743181932871712018219410684264912372978987145895405062414881952324693531751353874627057660813451281109706624910662798440867941254259141116571696650645869564580912682315758516348990828667994997307202523385195171500645751621198198203411171294372987669081403640266030510058966186359491115325252413056994134875810148387468925536343829698763183264431317538179830321483118212961219974067833472336835778931247885998427719135278337953237442668340400452040310932090973494297773713867350649009717082015802543078443869037939769004746036957355539755918298703280292696345187254022935462643713245648926881101827637673561113188601428441635067275474384082677804901051282205671560415024508466719164319455469653559122885888967311428818010820707866912377449699050305699508016423457699176832620286083370604052275056982706414701973075180209505605385696406749432729177372358146572973581313679495848285747195498794731015118253575974056666596204341312780106953912192854791745311811868826581425928959679453312326536204240748758176758841357649239136230445684695402710232943706475081380020739224171312588182574090564397298927079240654540555682542196724576077771907269471368519676338092144954671903096933151097109963599692774136229025098989654193604071044948499462973039943974750761733678009387268690752241867030283870526520461150254206614368429399168978853332463701434967663815872626530706591562762589535481437279678371993384873415747197966232336907520214932551002363109109123220428813655868377874972606792802552616268975948683556180700511955086693052120244859073870313985753811990617160685762602087143188285139204151782357484610188189208048197554975182563473390073846274611160962224977634034615305970715184023474830201775069316736395958845293585952631768883185112147017605236082589936229258377008800044144756456659239644527941419582794915014952946539957724522173296947395241668631428599761860977824314598709094161614745236122265030264611749123722712769525054174434654727645126006813503623854670641622655378171737094446035845567417842446264830503950672991449989568391465277262037033851706714097978263334426594283627865257333167507694733451839990872544555264679737087585396008394698232888897713879693264522000897661593911667283582657398340600880556413169089230183010134556493293959737716808884005843106007055771565869299993942123227777139778197494038218152725542724907810631927115577349131350840399675369855145109160550429152697298117286602596104573204929847365531862264611063089723231031533944780279328341623085414022256142767938998905803090908960738887115128036850022833560336157895164893420667004875156935950141845008781159629389848553900892291037144069840376760546312184273659986113495913856675141826906904705129901894843577283198047667226331938822892968116742025752712290570561724466502590736037221870961179091348453195967094233884815569916243259396041303713829448890217797993120315617485336570432744603291712184991487492508302994110718810187271921871960196021386175568576607463047452603976962810440223669138599762454120718159210251968845602333638305069807625269714509243757622431971576010102271198554616026489067657027958263805618423922420663546488392164348142462479704388294106305927581001775192810673702836684696315089574031814123904957112963278312419043961898998368015569481384303501996700016535140094557331769782509675566641606045742586093395794051337900228762198120233256001180725270603999638455383957574061461186561052782331240437786833381221809512385545827921452824870782116765094039753829041890936053469379304270942874472724451759839337239715812883178945414509145836685519053456593687770859657023814544688464623302741814419792274339300947621153202699757564199309419461364521379649211130108305451258427208344685912785823234376228069366115058911344688745211873023235416165336785263427079157157674771338502938990861766469580408540465382038627367170958820392363971999439998728724381563370961340845419751525888447471231787479044059139659636557726162888328271157379121688357284646676308001063950684809507334205964219150835528509274694138521207579864996953419321774733861338120197426676597981968927067413901742214010308224001450610909334750929131765791507371966233145550631694387676547369389655465180291586955592224627605753500744904541965991142103729466362673531606273781532645378591455625858866894428971849667058544166825664282097541466442324917461106576320206699954547814711963370057032557021869876135584615553822522381467934286845344663447511637427152506787184312031910422329318979276901554383213318528032015416171803739828142426797066519387296601989645683917306081098604572231839317810998870014817454440183430748063905501661116463351697750793363876848971556208975696270756281504227458863486488702545365997017323617554090149548308409035377306416649730882359217350052834032500530405848569521006376072909676672933021896663829475893813116297365888548861879110498753901798450289822480517562977179910592718099675002685249076227398927850482801726297334503935464614400737401700051950349327377808413759435099553269302790746313482465376493775470740524970245328055221530900994371952967901186478131890851347977976667870571194810402407050564903499344187265570091719386596526156297654535465812118103153868887279816053305883178068234102360879056757542056940650855490646462010341956535265327321102084249473354944989139883002792804517566884348031174990328120360243709842893423974149009155843921284504191702226834636618317376808143807650998402901406343881506880075022473821881194444790223603786252622248422170971024463218961716412160325675255128638009362164203476775322965610432157759952059144394264872398939438705552537322628295806200984061913030748595552904972859765755308111861613277116904635818933822061780002373638489961535484407784426173179957277456960515462025005321740574962542341677475340252456960182183967221736108379903941828232620846160941953998136971211338828581740011675961897417622467082509700821071335938428386631143267752601688888277936104676229683217700034817720753119570339168165233071009660365727286544017967261486317807327323112703252309586690279104396684439662662224275596955181143355171573925294119902182586989297653055317284063415179886994153264257272235055735857595447463032619135622879388040123455976000404774887573527602017670941573513599602349350009802064903337636532863482799336662019273665699405130408589037806699062968934194705042510583401797211587322755584261859261523474290672732404338579757959303650200447320613705915758072087547187852804014933286692448550048314510878086013106406899795961352159683251484950555094860683877934219500137083939903849558893943191726976451305541707118819834046620129921275096728768202665197616457963053578664270840566784888695615337512756272712913554799055509285940261394056098532953021317240254501592133941181034570729426163890337194878389416839569645525387886318312079263140605087847300297482996686528109882439818883389570269088593122324377604424576165329497000934980981319240568983638719539053831703441902938508349217259263059235741860158562055264104111078136179320948272052879660575671952722651911939611029602298171491410378780399336369297482138814622207519929486273738467119271157878277168363774990430761841434199735499147058250474778915399887902200227168424920698422650908587557522961264523371011810494550475237087640687781482859614693036677404202321591298647369112428579442338970368970542132227763847110801611511601116914579825354949305462869486425013916324491415617732372229838261792260836550657565173138706256525506681116406055602702072875167956329061099125377270067447818743487344165798525208615160711965726175941298312568278630281165869328095198659283318515448588924619470944671233285532877023823769176183207410680711665036115063490818640062997944815489501924191924548957153597142116403566501583772222969033143553723442131288275923344972762664943533523124386078532558649862966061541464027124608062324647789809194722231212208980534443677121287217095487785465305985932834178897367979302402910819483398105023193450374648946780113382811789238443074246907016558688060462629469532300263978978005302355580276908145786663554721255386699680176776647291652551646257467643790667757012724193708295874591899992150810258784813274552798472923654051605173083945598043095531666406902451324644519486585438758058819069244541545526485328505157051059884051574950922160755409866243750750976075050666556754570370051141094220289306571293716676583956838276184637409187997977794015546151798395874074224754602389921354682941994000969035063300542280942459027211458634801756729328559398603165245200154554386986166920382320017722007429526625568190511887769667356106374232349476877319828829003671710439650475568166328476107328922310435484749311183782670842681931445631582083297870167011510495387637807868702168740729166691680691612498021640384850493227847938423863521795642960387683168732141575601668293304900116315470735543363140799798257364181234836295474829991001187526479097444789908699838757061116049094721179842121282942049953341265243030736098167016138131342437987761734898797247014494008237144860813264879115730008973281938637632361002582462510726881749358970393184144220918576178583489578281907090869882661012220930106450688618013614312669764008371096807812620168984224436350273488971762455543987609504203515231054327095949105494935604718968416801840635468150643614311234219876016274671367802749270753183150912733022881095283949294664975384189626130168920468459710217673763339900148424784853775084705079179989018874811224459660340285870717301134421648389012067171855362083152687246272314548529467315722278521188094007150188595059530147013526816599370594234085764737861028173983996721436515686608630127142675072775175825526279807950633230178969340230010547833200913698565326233619762939962898141376239440456179996963595290688286265287060954750107294747400581091291571208801438622646768219472177901240192844560355245933516403487283281726964562512273491449929625394836424182930047362599028854547769353209045582569572622926946091649568057882488119152803160452740995075136068500060217454814539424151346337001109705942911092433419350553023222609008150283455296592931300635860983138104854157561590724061279033653476308393837197876572880454286521115518356461296005756515731231150072388199946712771028978285947311195119830386827089297547513971784008652711044719124021846645902911046123672933552107542206960664968668738014007241969339512058066723156596620323565409768478721963106938682416214555187849806840533292170639021172178556101214216530928891607240882608409507885266328768072719042378903051622644441489769062654642028417844674313367019084496954719652361921973127847227332357309497646209589457349004392258717292783631162027471968951374679390913203482449058583055256506142074206674726142819210728005483917163149490125014537056590899564822945913837341044769139513748248840523065942425430630207718319892996760226846154706749493994828786782453459967130915273381150755911586813858958020876694481064498378231518245532363424274479377293497302668483096644993196431344877121981115147870842082901789994198684621287982134920524836365868272130995714680819468332419279617508608494863999063515228142064239475959795340464087162187849895339665324281641807426862320417311191083463611494117563270015260311920203900086276331384839277657873797546112741351756430968895829977864017584886985318894284322546231283252949993151195525858465091602611535877943416609380374439412353769806938767458484274117024597271265935153289651803140789772104740048739410337913939829970219321341117745841047031534781292948146015829778461201942904676468913897849558847732548974336210880677209400037761374631404474149062746295177286347192188102166271545338052478689818732684550743242897664644489609829388974972877046410446416372078710297191710249284523047256530981123778438119337271184820539188567143863804712535562876195643904326123768972560595781942208949809095357124896293480721455709343299167418711089218852121934565345184876698910355435788242661376886944760021855886576685385816727000296549263527363723711333245831517789250414607241139559874376147520244159475498764799368416541447536783073194710666582586629896770021381235361170685946751215234703553908899382015961113124561153506077913421143689563786450948690254898594612628221580169716231391474915828745131595109771281657527453640582961878358653148820071195950859042502434306986220021883348718994284073852873249704989198279380214109264350506678963202775030359177727707445790557587651420395444219439564423627404515631283685383127915449349816858959014795789361094087084388171413909438389966586524330985601052096948847544289254697056639706773492723700410137371141262297510799804248842806795866801488858756955516142413029252711810573846349285482302783322175489153305912433482301768723962790999122806046133705896033092167406420381780311341768432520265978923439702228640721955463096990339094371482169655888749713338968613400673394546853860865038313380394340025234246418941881355556156056895084650869742104508580076542238549174057275322105683913625327235131688520917008713931589608169758753440691801917882072189392450208545016704450844581371671414610434418092954802798082668133983740021270247942712454322926810468888584745661263753680061819521895003276962763466755110880707999428327539087736083986163557890519478080206623855894851452435949239079424505995665347116116202898062098230645454402586512421233410652257351186677254153100641960034016764558590350635811942842761688597449444728448088512136118024739741373286411968812541822175755671900549801382912796551771446989956836058358546105728060748191238152296823144043133848767924604838255055834181193963264119120779012696272587398182526305888086171662496161230494860212438533103302295118092086161284822934963608864081241623466085156097786048154600326680524430043348655068927222088666843745891075905255516127663623947887964382178622647399246762237817450645394913619086501339879308388544324102992226866902511467269651552296800925180403625244094745121811042729163967330944049028368771184670275986208580417905974192981799232384663407684390640059715855751696854909709595967616574738202932774102610863255297203583781581144390275584082357186422525333403246381377283312060690658357126753517450465266853273149960768433820983079847970470559861351530479458311782525312924656933662932735694547969871624269641329941227451396889703936773355579222417970672181936450664521972646663316923577127431213727272118485720526050893141851652606712800052704470120781735917237238593782260522162154189762130108124568971542207999636547911980894390014662269739507968003059137812995567387115347049070312950059980266573842805572817361223806343663201129347560561652446502098025684519461167107690576740007943177951284188129854899050155350732789000103877742754576093578863724003867704854907059534428233007355189160850422728947227934651807671895693885701341443279952153300399958435602832054090429036223594346093305115328872124577870525511318476614408698353079302134274774617078524213952784437915310809651995184152166636934917726782489234110895692527769917262620179861027046689529200999702265791788439401731901596029637633475708221413023643396334209174659045963448684890792328057900869149041257271845191906555501605915636209746943681211995384963030268449841432718298249220715913295833964791477433103416621298679552700771309226371522721313736149478578452732324477273986868880581294724159223579879212144003998130686372263048803838283405574882434689428821644823130130954132820938499818833411738504130604882422349290687687251733349639108187320124391461359622469218766529873088075585198741552674186128190214219838705131538325151682293209303257825551376016514208174479979443689489159095787683601895628427323030443339806007857594061878212517991296774823626248526576796317955258822651483220562325492753339353016701389728612889484577517708911015477980512874038547263595611545602487434834838020736381973723678540642820064476757444518843348826675162147932723627441621576411623913060112500961731685221741318931398295548549403878822620885638011983633546251558824921323747817220536768065701065855790186164358517712923115015082181894488413179877370657930740964946305511728994907128172744497578992073319930484034317314312403047077978438771638270223807678561635842340430847703983359696820456484680093497763846449021000871838536006399562584549087097072870691400959798614905692077155557568109415712594515898704965772639801045736181362560770926422194517801872150310976018135851803264212876155875235519657249557549006614928533024323400650100234400099286711470173889660380335095222593498862101079519711644951884333510349307698822981012189080869096650811491889284267085140114562308041187636743802619585688917026383135973096359540291663023011485711649548637710460015856899049903453290124625358615430651699314160992728353522536551078335111532590587604871580673351371436028057598401259697702977820178804263825706911602126548638370033722889788935773324805682335677854846467880842631403695680022688125781357171283547840757087902101696525590022473044746304727141590373403405600755048495851511810327170206700368946648812861624277550169134327654636508943693690229509317178260364209656597175209106686939721968925329821494773170985142268147925519551461513645042499056240746517578523643999603242731842624771989039622454654947313638159633874461545356248860226220289107983190736042388511390144204317344482478154181369924215394830381529965395436651658096669295293684821228793354202015108776301491383852182860685033946031354021423311675379484532839191596689128800771086993830223581518820423829697591798614642974059467116772366014930051076938126079543974169384371368245646163361810885508738397499762942455482053279482880530259247998265351721706209748610285120191242894781914296720069180380502408623984459945037422432214034610540482218279041344514460040423664304936284440292773833511119330770297699355546228664403230753903816194137442460452404890444668033796596405651945528589111895616208080932435530274961859912410284671628071440470187094539671623489426855909713918537989247788141091461147293386779162407098523492584396133290979883268956171780557412612457224763814316607110704436431120710065055343241782655776914273829523357867386672873552302357098603556447672424135110574524400414376704465947876560144146118201086409289124701429959766170265269127737183657841343535422057154126616092014575482614734555394682371506482222724505026012871438454749952468522162512417554994672450244580649989864299313730497760470901253452655067597751661062555461256662682543049970894585881975516413547205415224381727111268119094019205295139660167697137446284953350152040189934627249404461210870314348445424209998498791846356827268784987175609352411255534135485199493989213722785377857970008547556639552681147314350126229807839867119122632708315674168110951205300672344576219402777691279481992118883163542887308017099950259220258319672871522603798437896456916394006427477951486569553795968326145077386832779115621879028509777401535404922322714580605703103642782174998533014236503691263586301409398860400880340983211486896316537261264551100203833110784439666793998756297665864548100201643727314935525241083287406521588715480411136233439443492709386836544487966895260046840844723688868286892265686621429011763205510835460630834255726952274515064199958113668192137282987586051956528705416935941601903495571616361653234883669064150173088369168132622786605619207208461857146994298792694699488644492433142098550634452652438079572693937698893260164842387907675916893462091477905699160446248351050494980321905162754726467167562733171829993908857473556473647293617729824124464060368465367429143120054142792336772598547388819831168605843841700891401926073020733053202257324614157421847352760334275990801376605754988285857350584457277599149195866240083462493787810165862486709913818772763572861001095489361246052721206983375226546549521412243895246072990265458571917478253297065770070106523230192717822593499736481692248625115002415639149703400048942425375701926484705209213458827554318011771698356813105131504345108513007562149862325596571798031214237271635806981709264157121707558405049234596593125755112563190090168793754230093922730467584182390402051442988853027910792784489645230121906706303781972640968199381813533867706259462201798209523975134491566291866633891037321761669530612651324503995663072027597191291269053797855115999436777166342160469930578307495661918555819022108320556736472621467670463344749794633641756711249654844580235486600641503893054516233111612306920099570436094207276149743992096052037907767001520043893129514556379987241418293525350846125414935561986305112380343446640310275104181942245596448752436171430618530487849421163214268615774784283798765695067267152991310166604402241190779342524875071542846666988948247371877326764390442449949595565762385307399105940002588662304941870709593170457468681834911329545424795884535883772416356960103055414499823461390166315445947591680831391762210312405552487070279514235528897201837876478867261233755732163306546550570630980249029628025967969702008374367224784505024039638073916033553287749330993037245104301705578852094488748185704538621755414958384767470426618889454504216887280243282014968240487505351340217245154260902642828386863207255468486339988970211692858693210677124842812202837398593743712874648231866577163048354801074809434678084057372547491239123820562636508630105298459463106573942545784826915513953785303920543965850521727413943535384708077846356620588331872017132474943059513434010798186080581072053483677139358681861514650233973650341868482138421432647631618139966983581914701847675709283923272540305617829645562491274108516864157219892619848762834276588021028077787456328886809884063623059884665140599151843255424543335610059223116679770357109690311683226136207812455432688400142717442511994140725225865483639682768049743148520559693998841140903360698750264593178135772844912056261013544644147079862190720856831932407560274901056578749219993617807570931627312565695279694213023307485074022115216713663892793138336267619481390477253361075919044541762367293375129795750296947870506055469956447251081875317116709014180958143008826749031553160230370073505184863756735260905616979784807953802668504042673537009502452148033585352187193173434758080821164228608225618461623888632834425102034460992526075125206264658828820487083281805785378644267032803406177077450103724043115660097708536781669165155592308601186721533024904235847533271252860429511218967956811081843228248046283634762504780737843424592477600939246111845695736065946034945983487162701093729219688366294574989746771415073655763149064580217291750538238620989801466904162065917132147089620181809065120256641888026765981743528838274418862094200336491637128275272107131510759873511505219132768644269829352806851801565719535991323733118751138651916263030777331842957162424633580614166603320137441039525935634207980618624762768699788997137087533515239261710357601826493997010198421028836803537584468871664890431030211527389182185277745122381736947216453525931473551765550751703481147757882535124538106023031635618867235141513769914574727943709513833688551115019056281930543776434468066851070292584287697520801987847733426385332306717215658060018556665580974091209464058728528656711867386602302993312622977111823329953668861667335654125786485601406767533012089832107894965609358767615538508100113790151666461042269996610269800634967303918645103688351119707692533077283182614472622427823680526871019401162914847872650627090693198177706624069973971309426190486636009883518339204470212992560918900345779753849311570810346408090535306209688057023498880654528296936168298682814230428688541813588472622014641468785301204067880984684458053862923446914676520639418726700487220501333081684852135934054790022329944804602941283826640013373908577370395739476686823286272329030569937651672012807526108155049734624018391412877535482547873944935091671045331593842828753387899797719596310580928550342648401092622327448979334381520831990967974221552211208256396896238866856184034592981283367094292674834978575348617586391344730984507930048286774970998717157764767004213017643897550856906678630335049879245581712249815492347512639284238496861339895119690612432674869909523192546426859678589338083767027294237320009785052567487580659327239126450223528647774803632873548795362093669383757085878523522953457971707108569113103687670473122933064346100613067456767674996920595057716115473558709135649979366940658655529211346243192504423421438358237994593098933258290971984982711565469756117423449279230700014063718409851173931145770094695877184863312724593988839846300113792930517895586806696676520238214767408243430493539628812170725288205724659097424178566453650213255511132486808627356315283901311672492498632006273647171155413755169809637472085096155998881105909207037400598883431770284622725533959345148572530465200928945274374056313733841405609385951724158205183428882500565772106866261324456517987741385009615900326261535579563307474631182939916188028585013723790381854807428552092153591453438730643183015193280852387798099117013861304921529268618042101929213127190129605148929259735810042312202527335852186109336489338889980029209125056425821330521160492374947423052464189165690497895908854536187241204812775891664867951020671760168046997039271983368750672330282048337059162621623147566384964060335168767781397423636962628416337734823087470758093260220971027909772568048460414536232066497774266405719682755515076247843416648911913038477323875950122997523351374881707221797650677914368190981879352539655849884391161633050391429910719725354608045702918317731498935221264446093369802793377503333276909440696391243761906558551910111522182441337309288901101163626154187639149590990149443793858107338814535345658069547169723784530975425081935912273074512025251860813972376566861457673224731066507019804525230772955353266211678257810073824805711209379082009577934196540756890553947082666655848727484748237458557420984913256852448296767567004613261087453217615524912430259705966259303215932324724894806677372087388612303123966704717115760169309777226966985606318868388890342463777048838296810848835146438295790056416162202518859288405890999695938569039109705371477304863829923048414609958408009572235309414894223820631374505658031995247145977053383046189898271828936725707852774373183009766390975926716871120612237511341535357772868787050985524199466737063979050077151503354990212459788398931209815696632696866975987623824348328969915141083011491420072939169748407539457803308002926044720534722585049780576194830268844120256286735054279439452904428531068727399180630386687717466253202351446157512885462139933456080711211691140427534632229754204360389051113650448201919477119284717763610139458354562184414803541997431137322011685935661201132680241784956751990273668904256343308897216962331734204679915495048914234677107677705137755498556424148110584703710901830600481250052352894488968008084384228443070544572277324509950973534817391751587831242039027366974288192778593896955365424439372982019843672782380825729175266928395504816222688321077202919265726388880622892596554137781026366451028464994168922580273726822495672151950356314105043428995946723379534658631932532258676215407756592312874751609812211407863666476635312899751585232650187079486518361513852601499708461752805975196632354063818373370066129589075160209676918295161637818269495872924002387274159964134367968255763928617447155519547723496353973610931545949780146479586920855137634885166612510717041660122686392400636115445819481244977427312991329328708859246138445811004142268851030662652236083574174601348109629129707220487735152769039696891285710855539862749232255685399437008791314999826968093127883995733314319092495474084921678197249369517916004389602320996301234473953213651906768884388887934457102098496094722623443054145769196732805890864404721238165323069026625953643120517579967535317325121368549163086652936350496665197063611925980734364720825617956421688176207574075248019976246183179237873835115129045356099884562142895370105001737014896271426611873049104495779008873446279787104752729876717610252170451631883825368383922238778076881567514130839872802491367744342402041630706248257254796906651931259036787629891026339170215443657260322060616710578597236638163917902007578143901991241822235073599025623884745282830370990571268465024482734292477161787231019966805567479916720692425533440179775167427748461706700730718475854628214323815969785342161987131402919896851341616391857075851080790032867965278845211885387369122732487416573788536719659235250264652713575912781375033334176641263315019444526420268390823662608679878746218861177176396844022670538532374406411752785320447677935345132778485530212530282570092578337753858378240660098210329856840554609924143550382213384429922754367886359330126162827741903509701893215288406371563930338695333269075511414488257409551204507930660843169672125451561722869364295547292882536399698775013833569144003671894480039135301556594705058667835064264553964662735551517274485453750429191396351781985013139859957931074424785592497026160990386221857731080128751497213216894976515329573934231885501039985649794750356786435753270102382231380448180152950229057822899900026193812306701096547471414515958779101666483399998565817895091580559649676220076458719016642550864232179062924791999784226039999432844991213918952017309898132604580025100311503983720221175176123284239561977333274532456882464877835545062560077058552636043027555716086740278675321926825472117360937727220550519500833353572641953521491161497393986411728021004281407750611112276924700072790934417321599572798637925619837884586554411292196542607030824600745761333134302581928599852987102726503569267779913760696205874499109725802936744748673321797796424758974277869145479897106212349819944240476285901519513822136744280467223130721044691192752314593108501933195480699830681448430011365810228894339283108086161350203540314596751512986664212291236476689012823576328489167674045596418006389453981929898700981453056103388717439589765652114718209620123146814938752718061183317653595468026960776800562871835019394944489643073158384278079967955269866407150039367773558415492981353106930935207345655019183999873390188045532648189338582896503153127635074731589011994832415460655281557563283068839328253370511976143259638637027861664349564584391390755895687726324157061872494158682772972945180397965238280944004064597281424804045178865077108552538897955665236006011406465715160934953523494422958118367473142748818424930251676247157370811458548011009284060099785242629768542639721077972079888914455097980782600780965625068936278427426836788692367539935104404517511761290815434170791085978998993627856722558151933445356010242951531424753111104792526658877045061130421306416946866530596050305843504951041958810775054511033517806429092704947799932123442239688055997234773683607980026766003526823507410923378646106171694034832935580988250538125376120841704147634680367472520486475039032521284819682439058317792361132984354287310635829882591455494307565502216027941050495995869834085851646814619652708637239236931262669695257652060302938494645155659322677558059466976257220833339703717986842781575466487178757790403176620714189413535793607340532386602655070266578312823308717013938964244909352406082787498165183535963553229365812044504755921717806224035124518352857295803699003090604155649702128832299802535166849084354027297677016005425007171766328009005438933365089011620204890257534665193867344590311165639022816850933532335103793771719968056292413281374793735132522273104981518064401306113192902759002071877974062432661901552947163057042824582044342372035773443703676472994297355232545652909742964457307022886232569288872450112773675291155983456728963020720995327822697132425756991265563323329869685687018710865745356993839875978315101737857055204850081424280403676081993232391856665034450486978803144098635905038364858780413591064693093626500857851208932126350649693447702727609113677914347015048289647294283390792866471935353217372326052402593103868255842700452401235990838800769755596221497854298951592860703385514925167675512462880429365687894705550549851964309464452952235237445424209466925822592952912133071014282300843478408816250549801121298438633183797724603532049500982821996161722426750386129812125161349735536623957831652416390394077018081088191798206352958813156513040560729319247477799491826705936205613926171346802387657770574700215445528600872924125077706146284970326597102494401580691093392630515539044043136505584127131700920444313016827510276567218202870993561800379277602503640282401227662749153774304233426729608910087560713179302232529352696657078665155701560134465887438810628616053312301095402074275196046430930479553754487217286049753946121864791026976044123625243762484181650282943372000000730101393250722180594696604537186438645338652196596706365029262400855720073489086871797879084007320652232056617049134932472945021088535302252134487725286526065270811824810489272806663714959117053041588143202867251016080007129662448604689969077352747148479711620448550869057970121099017606586249722914712453903569509791168123086681114952134234041042663665316772804677023567944486597496745641340588165103978717765103620751724414363920295922453421113424133094558175990555172071808138340785383810261755544984443084118364479164890835607900372339866970060852535954262521177804758407837940153906909458316873529560823106424334602354815227784875309113504446106521656932147585542561370738245459260027352013535147502069749608614300676598301921787343107770075125144845673570088453799076055973934132190244183142561946160298070859643002021737618640060372622239711773290773020119278491073270640632250429812202040842996357517598265364207082582801809871024457704102319673238296120899597965490881763460582583251737596073928301410746971726159213062306402063649597657167608549091170837747201348440992442934409724832465192172278744292553153417794579795038862815453380561536329474336449413304134980580981413180714258150244239203865651862678272859000074118474794995912731803835290497803876496638738879497997990281304497512398298233740697792454415227003534912502562870540357700506811092126303909571246661998901401562706474325291766310941741698567386494862858286541429991453667925111305314618319426526427501743949587629778184480616706593597818814635307164376976350699543515113917095945575258274053927594141887112696593471874850619568565951467478090476343091246942082733250256431722665984943715418363095260709878762310466598469212241918568958171435319850405447801636948618276303261912057624829594170005637999985641279067231736287185798251528275178134533472650788611488855594320129547284598574760989000072665860294809768317350012667769932804674136746693652058239012824583289438473649284565540374049996300810982240355259154014263514606532120634715861301824221862383006384026338513063558126773071794743645753933238286480182929900594250561155907853380272788828414161917155948479729625788543858909115904329961005662603234712386608698594228097838230576782531927715694652659933411488904582382959054026018481482973324114808566734522970350158384834787414016013133337016770400852970180195305340257095546206781224042618400342253896430362222744092708802881840881202970010901993908299133453655144889037132270510270519713529898024868355121042760659716483579371555343129502210364506777947041815874728672182809998555339604510265423974202251038124748332331382269069500663955014212479458515122913359987933014930031814393521156854513420293941045710505471454305774229592778873644495163395340978725296556171977716458302563292918973599314116718532960905745391284321676350718400290348044562188417351525771284998706248053174474586173879801077801314500968583863520807282210966123949160539510389675107044039454604672740377217043517223846687552511017246888067309518125214695816914262650703929313054559006821917626587498309396967934917989600054730149970386252457993285264456727340544914913407646925156509252575102928460409743488297625395462741841390821487304785874340743756416766890612079985463696931283205231709804070134721942986796931400353039544717524754790061886070440889499233076248398565068594189132406734471616129923482276229494879956313142790219609005889222879860893345703372734629082343390041553073402584251195011768413618209437735755168838449348987538144473861748673245546935414745891847070702214942630724673643796648206403236499550483770082104445557171496788938379614652802350392157075590833507305163463301697571748539975263734457026466582625823939735382886288316049382547247640191296766784022041591553411395759515809561440892044342806240536156137663491390938163134356395720866599805402595098447814282126227701545576089072448337831246447103819507459146646206108180045091270387301640281799143106752846852588747726462252862518871151789022719883607648228762543033850055905645523428090187874443800237778965948739443368108851313142984366093250291379747529036056270087864339346198233892238073924495894440464787171169673837758668866563599654952073220586151554893012349355716116245342433125593077674257909931495960291865583937526074332067227638431897330754305777504739989074701181988127023246277557243132216441742328013667946980210277670409100542345984251895936463827979446689432162035435735984655373395699735088929991382474945378939630376346010317511297700964079116601659098988788996936685070449866242708483527207955616738251122477480422411131678081883182852747430128138106203617693166999222901498067969650698677844801569850757013173225079122305507986943595003661500075189776172785656810439767717976327388514936727637032417619967755619810340626153848982295896522639540777948796702102682574588344887733151804279672403693609254079868866313358858044516914016959563875963692630687673610502938843744373423953871266110432557423799347968829020201200978484267780676407349638028828630967038628050325268548603178488565087127617248605415675286654424855021631312559769072965438803250109050155007314643171402136567434948702456874396131954550195419594994783663938135215549963390534567256440407428853578593858086469236546633857417092338212396921826498783778386230208274119814487039842192254800269684415943885734415430410301827189909746817024018193623617349395288394613413974049956742525877749814981336570586672135025059184921191689867672870792697014905947638015294479884149757124266913642670891281695455680908737844937068652388917571926003497337857224151098640937986065037252460182457443969112740397562900897409247145848696905743211152341855539478477834756486974080029819962983857607985519522772237405930712242683968588443758068303548602643112077528905212064933988190570921213906536732699131322649873158783937553410674703490346416692690421265310627872395411340067666793618230886623950022186589912053895228509822365793187707121887163899745542739185736021919068971469837071558617601122598682091541812290387700627605100809388384149935348985304395160684134641547148614564166386494990102585626760026881950614110243817157399680574636115262557437083636076721634214928180895086555290102329021263183183681409738132710801497304571504099139642537613297032696115561277712209759245984022033592622261875930708426330990483942226820154676201154950679540157319617105568847956962685914886471781579356341457128379547006552827103568082772768611179014864386010681574990387713506641985267572007663180489707561568165648375837357018032262367733903876265823214267819901459795854057831797444808317439241154636137021988830774529911662069815329721661845090680011690598780722454129039888271693790956553309839377614588123129947836949219070976362613004738231922940385048097801973176266803743476551567838251886763443971102742522413798591029330770602161515576590588419042064818878178396993752410956189018224577911779388889386577383702253660943645175686767465024256438884091170669504934729551489757541077855545965452118470345884014228209495667255665067996477307034681343664382351570410147349720936370687415370641914018776390356891272678446713767900542050716629487836715473526437876913848522882753414773380130974562220370834905131797920773950564183962696507492519610322093055376571102644831596873006021925615414973987059091979865221668163394244671765953717369198418242707022438783358280454650775294012999842615246196245004238917299129744257677592426295825701526637964978025047367596225540214243184883627386265150023186577969205640604045323979368872408399587326820727319906566475468161222933131220892720986588853017062808273383995120244916904940435408531172168712514169188915626037308581838895487257191338188894509238923566158991460923573746034371236805337191336020073561300648299281987448173653987690421750401147110974777901024718931152782261456132645970387691064771133973589255997491943128699509670407025298270896259415254982307981850862597318679012960995897130785281170828319979521228218189287038346450638653190127209954997462828873580251661954858586626047719437382576366615567268110861235584042851257865555355747786041299247596901493525727366182564963808008385886012617441915994412425620559216944965534548592800238681094315777407805708844084461828635601706892589454185090951004638909039728002624368088567247561010965782743570063170856431382794191143165286250550237368662615885156298098658058208057384571509415927091248951029699862917234806979500926080390330048167779062801959879955502638375517471404834797823577748089554423786949121270795141918467340845002012479628408968567338820698254742766074913484115129355372028463341188026839756381588551658473761020121751435335028101633592507402463083851896002028816778718532520707152954156843680117252082275972242466951842737041243223030320909286117791412502511928245773965222302147510442691739405484527456732206994885358744548994480570137537099345837033946146904207944915596803864652057843942320181451438999606713262734968481420516710705628779293036646058432782110981300234849277957095732715435460887523902533452889827686571106091585675421110954732315715183594316188210099054555895038788537618826910829959088538832499876072177337435106570129792751043661641194249934240705637112560496160966081780212264117628862343903874599792452760776516336540852487846797910566974656703875980881145810580273700329208358600433168928771631303242770395197540314378805555064643368797528031782253451029268430297900936508355975170334092029689290545380674665942988015492800836603808281734761714037256246512011832148900742726801482111817479888533768739473113760652122808327004236455351250746513302450577049980548519349737301855050651432802283938028222328880828582399306886321705642276834669850737986010313516383973476777566307848964139063960794623361185186048997285949570197886123848605824518977413001723835515600648149442297268195238833735401047759089837475032032173511023857291814055085114160612333535092359150386603617055277214300624734593150979737214591686161008970798152772551332187259415168747784756608926593457650475658237234706002321396996602364496162470468030639208245011928644846137122600096841483333118565970931691753759013310474777081413335328135060374037991330603684793255076592214238815712827493122707312761180582300890942450664739780530140606424354796219533789627802985885339516077836299932477960856153580220665450016255778993777995089672312501754417341655867613349932392828251803952585309908375106912479961855023759581965164761992460433104423182273528240985963928454248401669026796425696246735228107291247339812385445192588876418651514875831368901276454650570388553746447351209781572628783327206657049522191101607672509981245689130533098326730436485725420510912649814549497332117877229855908646204182321153314415150661491489207701996450795907859966343556351900675938856448530345429647390527878683009220928099704047957547046230907015866097223648477702092263730208830922925090478143884457634709313369105079775990165502559334553812443972158771782399163295067266878097391766096917526384011240857809934710696595806018572340505142214301292491456775887390381996775105272656613252733045827180819464987975268467304654087043798726858656312814303042477368497812303053029419299016491411252774472922994859434398357869580355488060704319042681314493472224106703360252693424611561318531520281871726506935063463523842335877793624761371107606213378361067819694479472178792342624508405709121631903791098167460629761249224523897518112979176110500952191751614127895896621507115934211810301304799476558060929313200598667040125010508177059464793897182128655118350564732615633679804813834014576250873015626587978531988438037335145669505471208167808963785398054553563601171557605997375611023823162389566327258146535846723557857231594957359939315388267674730579867186230993013039275921235788256180214253362483211092399644210798795731450229143870371559895709792226172751442615290460242967477796402558758919857043328811638780106820271488816899481026203804621702603842432504240824682058372349712773890323984110455027797135068693044034407790255483542788107313278740264200756154372566091336959961432159629067967226901304685186559416022968265398165989708269160088466527275454590149864877434397325887119609443128423527956378053497391293898032580263005143028250395296824327874254268675267316974070633494762944879200034128264780695477285732167392516448056240741287185531931182896834029032680925055783634696052843294931921673173929306635330231509645159863541227548815670855772304407809754069879496319608871004309900436044279938189630064442862714934378972937006700468768208313026040659361405976766311093185012392669109876932934038163449865024634370481966196824759176279314939965935471563823529808946751887738604357580769166514622804164798655692964885746545789884756220579103801122382216447234625605075846476254899333912143723601641101424230747620111739028567873684855582963297390572084924607442008848448594588507375159546063642107925381131917430392797582320084977945764030831964015457305512461647823112538023678209239216177761352755394216091762006726355504792798378473030619137871487207477400186690610485296526572602424483005371188875198748720273390505490478686462561019694100897192745092886506630380199530627412012899432899746312708874726614422731564164976319071126321514345027084047718108066524855110257848119931253790549082127888167626191983625799247438117211576943190195487811573884170517125495136582088194256919858173660440573859853630951656778530020213698048230845161116226948647257007139593454605862806461000883567928911528488377153464771792422636297583338615282729926567412389912704276760884620730611037136915888354073044902743047857739909715686820470865980283223442286421922004507648296203646789352490566895192635331559615140536072217705286319490651989377382591116636649100318731684283925364569990089662077268559887245081352299341586202270436882694058006615112831245038170818905290936064195662407139637173136712486702866740984681307836649467474024918318529661315577638616095234318189491111686774353881890766637766651911422150446510700989004113744017702832582992210252733603462119273764831944468834601863520269270582536090039764757923112633336291852970458586885585037711487080614677974891165208292667502821845539607578593318564178225928493090617624669400950600975784284818847852956590515232213919714209387551593650357997883590059462004467052086435443477457747597677300133885257454144821482728423864384125206546528040307778848302582493009680523791501030187959698342575762143733460199721925904284376856546864242787442284088655471258496841858564526278742339235082830483202150347305151144316755223766346422378313838022283107208023560595607434102558541647241603100718462427255838728324514229383808117527211040321887898575187535826266824374005167039530020006190271257312350108104778807239131174300947173229772417730416133922387740066286890559141760165997893538336790692403419392963436230233667919171612331299623757025289577447418391211455025617138503845929934619043624015485398919574056463209517951250058649344849099094175026478230690123566153517125239623435945469440949079621619938577383549361661932338409487620832715076942114205302084783699369229667963572625999977862362286577815393193687168755939104574158070497709098950502377868674785309247634560723733659646062940079511433675967714815266990047212072909807254986030736103525865345642694159522292562871807103620609794445576283731207479139950918557110975170421905264219376227416301276922444654263246050202252458712577343640254077475582710647086156633331542629517463637543839415218289916538384922627122772372092431223773669178079241275703358002968995228702460473926671521300894640785300118987635500059131013075555907675673689766854361392100678506134425316362082567296656057726745250768740446344972133786370236867801586459758883232833029960292041658694771665674655692088119349165558175236505826956453047081375061901289675045142531613767130008193662551886632827918659651051158048907010226895840323872677943120890176945939352833415330385222714860189758077938516555902200553914713444725106875758742504757575156636224233842523135085064662793015091798138162544680890764927365321165960238935954770818035136566260728964722275634301514456317410129093390625360145173889657446176882100041458266920173579296879461610324184297029619867177030486180771061611222693362883781215915061082214904554282673259862995884452220066224695981630440881429769850590057855511477608846727157964787324279620124584186017754095651494469644441867571669027764919896826546066771136586679375233323253759780059574065095987872634193443120930055946554954039193807063942226948476739493792022240401255955178969750842743702038849849809825626956221231008023044880708141314351675644432585759426210417279790598822514446182638662063593998585348080201124370615001311218760314498375862161789510034251190110129530924510129081078971107061579257201091954291616503966016237437477342068453177545615615371464610355892567742417475389063517285498809203849588028674832796674077997523545549810762194342209386958206176768731054360083270433899698746031579949398662199610140069821391713168087287101623688254890607955981982887941475574131170493284222390738258898018680166689521576571790160186892747455091787620517457595891678853267085990031133689666645478929372251322539428139903971004866716280312851780903146508458401254402439682782656005340394350823681229611419602185374955291835777643378810393370159289548040907052133922141408415400179610111895438171656668547613020754026797183947431597065760887640343323760574918026284333768509881669728389110295747406055914033943141002975744134900767374371140101442884867196590142285275458163106530801394724632885677466141887496243482011716230538240512377165466355317278760433829593734604665610593761489626282177129998670686443876628129109928795815622011089045759204612268553906435780925318848104861240056843648589753484809567272200031984247718718346684169613620482730353248729506083734700558253820950114985675190003547327150899056422748878524384648632284250939365015290242658102331190674137649774918449725652880360357006658547278542642391028622217516190396823435823427336981771745877884743617215467854212733973382646808753999640312051397758721814847011732557647300431601420312495804140144590054906938403143954832789366614308546349504932474601971144629689635163963363802838825595168826038437226880022132308907545669603561783786981232113539186375394088720506142539231418102334008436173771473518679225938250679489378522772683100975182190706332336675235000186432597124760009983345150437697825497204432747457573744455517923653548576931840127622386883070789759153475981177472883715631151975847243311101589152157736243934422058145608568368759975602614009079532046678005663084549381023086077200871728144152859499765002014414538173998983566107111943867376212120746736199796775727279758861254609454296706524895769080065476451702310058299962698613990827721728488332307329493607928322227076391530113521290107121588139967640467697756229413874637354115044822835353189782774436970778161966811457371949256953834082481418637101464374296781734251183938401744509840925261514201676389640099127079427218081973574495179385681695055192771281138660863188122357297337763958298306539256460100749004985047036559244652452836455692548321606806835323482631905124114614614897733281292332649041877949510814204775790560147475472119339413857580192867576311101729373054594593803592102080678056812933791350949280198803045264327311680016283645607498849671690242160114147337910579269828215503236666830301690106118562872018685297609981618988136058808223828007527134396950056854421948832827413639156364122199452014319990590410780173350255173573876504320915077339791725659941662839996551121648310754879013624937397699304320408589105493641266851919055537989040032452653454995306982197751631783656484771046403002284184440624494871592468803542620155736210460231820097647387724346901046109887266253332795385527749674972092779749842328865032469839851740668035309896007773725111649574157621168672261450828561278662345920620315841911135412176145769134963106847618571557330115195751279269969935797082918442477962395553841231503327204003576963005308727450625769403533199816310329279672740283447768870381755614459947883661435514654696473128568993399550533318345972843980664813460297636957724432124798968489970182868952166089882460033408052720351833948482676374046203424659648636047242785902077794177447832774734332673783163019233257333976435992715083817991082628167064244795749458489234062289904890333292455398129495208708788892962955333288058077218358025283371484142138621964024906605067147672790746471625210080779628889077307803282119455433614356735121028207778865549938269431799716971602199395016394413040037020638167468301722268803401357065605045163853927553732713016292250638170400718174520969508290605221578460389134841431677869429164552071036756153552880100270084429008307610740559035181193621992003732488864077149838991861594742293751472007753194316412473721940558835572795992855949089999469053109548982347611377598207321941897520174452171704384584571447861077423113775154600549677447451511711020627723233685697627492622419669139357341168279859043679382139013443891612647486230730467242207305577574442103113066517221664412361826231032194433371800204484498216067751458239713555909334107908309014812476705230328973249034543398119070681362489420325111862064442770538166554582057322738683760867593757078694984011216239972803972731147143196034481065545219568215613667429705264268231674728112919025679970645369781270156318736134299120774921272319504083722530152338340085534168879846265866051781897305960968004748479220124181097160542996574442061831222807198044862442343834957440351449388893670528631748492739164510971916871593415052014864021717538033460721671294066701593105431198012006018657403022337032512901156648019745477103350011349507736549145826082947692548567397460799459523394952373439552878969504322776171198055973804174866038949837103995058254142518188658069607415457620348593605231649951110972819803278010484791487962405616104017425905853163751126504378409962495894831216120828779740986315892415926578655226005650734353381189233289112573511846752336484400787830919430231254417383504598162157704165232449660537523605761169829622923221717158994470153107365719527875980503039933245174204828670447604684648605643775774764235040661418549532886504311405516672351325681937470108424195515100912595509242974762431078580200698145144979141519168351029128659306504578584606684281769426306882861545532284011067455952835563590614029280669253424746357108057092929796039817005344750441135217828484077352077583325862200384356801136419286005593420799354404789286698354921196666875405125440743126741998918318753089959961443993693323283322055357936746733577151670519611045269309573530551746131459863214889602838429128394149311166468899274373609115502351683110785872469739347972735061414883194118176980391039187118673241967310398636925530496988851663652377503247885515167621484876445314882958807725926196957340629802984111370514993222509586054050521666437152306640797845985412591786128408118672186051301063287784817274645241079190562224255828027937199268355704319735416576626190835351193283207092752146159116919170046656486525677066417509994802106969972738878082096978989697982689759425694930659811258461068511668509064455653348922670852531982540471985621548428341588201125628930392332088553488963942766276778025682625328928351256298738793050857648594287856921216008865282008942796084010276624850443306439497172861875642986586579453522322919952819734051003850665457606103817723708389513102353011849775017909604642215867592604107233827051114989209926367914284458003837867076132275774097080340762843794464690982153310378871371038072231344397057436509388249725242818709913215564711880704037080724268460223297514503147208433678246014839898951531488567058685950019015459620725947782217618099639218028982327031731584580022339430014257522756280778656564883686627827960234486044899592391135783628037456494070563111652849867318746726475439089972475820293634173339591984821195353082059006579030832925727719796249476233412132616654487520271076557639573108979018264999728801772072289623943101580552874191882068693722433481463685599617028298719314831283260940793262843235468888171204681396203655660344499342485323390325449460774157958822322292478451310643619296488737889572918367439442574581576698347786341040959468374206735368852653730390855227520522962083634606111415153000681176588261543960738603720837419606667796083068094953511047021995622521637080815031308578702512868060235185180430533734631339638978001096280719186123088805670219766200970288874338680028128515970220911700705219271172997058094584591529415148993221323522439567353027149601259299320462638444218213726385405524244817041078993957327451951246558846373629749484875665613464006442567332353748461225243415942600701695322665381231960849560643150768683243703581226211209552402813086031284672478840732208240398014905760704593743496284094376134805535447515327439329893613152157345842235633130278944980011863551656521276938649235820868476722815412884081269150552582249700069518316518517975114726593456528580985848516459329344613192043338982493287149925111885380396514859039391277000761360214454846795916768356739295822709946914284926836152686409930455374973571680808929043299467400072817618726202614886231944708311477798471042045971784536617122732396704275484901596171167201502479877923855959053487203758135709394550530898775864883544032577189615503040513685497692246248118011330927346676735863164437599371936567139302932838533581968766223993290588049128947527999839090670406099389529462142997913911359819357318129160216649123053023002739698986794590983256404216843237135405700453076823226198624621544990083274569224251744769224077547831412785630085324402537953583128691040335108170829306285816794333595159165547474567791267705101544570399481152410021375605602737927700945023777830133995698628950231179400627044111009805813116736007719747823410003692022535315133955426871578775174540249446899436602694847435976045265716119868254030478122936516621213584132536137421498444671773599777648108305894641109540522319171853510466167749700382638113168627375883341412914441518544215952781615950896222150119408663914034681577290154526539264443965746325939783495367890337781675442786221321839176736454484749956209008896804789232840042253606628152458937683145302580709918775981043276747554670067713252385035580142393758073033594393508392220655881167509381697575180992767485416881627284937933385452940162598017818168278890014768038757647503957542565649985705977157041262851844367616152706555689817677822582090490306830350585230869773891390334132403892161254344621719230171184491297699685141516549611866476365416810654302554309938416040657134583701431215535060561335014325274009862369670199862008285466157815507760574948614411499743319338512195897112929106384325140988245293306414419077174207635129289958333071962192047563235391483838945119411608833406292639452020399214995629221851663132921716334383522826736472204670515552142199914967031260969002557650948789336496467350257800736813298193887865750043698220482142640195254558826232742639480106796104764870111838703006220839089269859156631139734680499780373187836526214982797917381130151984225982385889457553958316146217953971417605551303737864682728402590677391749716585724426840763235875538659370997771689520141070385845871912155253618024909784403100527908682697477795890271950031207566828142662999148511271851571921078797131831748498147408860952716923319888700265689779735481521041347682277087733629534363779199528619941605975486886972516823024137806129385074878135853584809936503023417598674507545588701446926913671777600290201372016688327321615695955935733730015851908212470934158637335399998009800921388670549867327691361562107456552424980020621417915226099965464780348191170170874974561541470475803299665781360638704648911261889999708826972864208178138460152464701663052806984840670742223246254451977834698078435328840559325340485066723728708026822344071416950301451626323033987146730563858153821328361539224569572686811061212395070489825030655994099307216286979427054699174977483539541237372518232178406789494644334176850176591702855762636296828534666041181098528311484965793702556048672814395013302437908696665503104715399561222704266431616129298832566919560436276555123500870006123634258175720155152663967585541314805785770603322652072723433604811703392894782198064993050288605266791167277427933194921703303068934614594664217666296415749897231105279979889655996320987536302980298034498822859036284473535072285422463767361485503683816065096054563321664606102341780872822814677525639204304801925940451413782596310827657927418979080002674246351559491153012928805237624175361098415116722361790042260116766764384859585925938560465784419330056344072627397554870569959892033269585590392060488811664110493382084009023632439958522504065901432167044808331594685395441543062126395269483283811143238711473279438509587637365678747567911926073481810185914638570013215352308256650740328189374033817972963877344425252237382154477113288235807293421970678694325382269803959861600623847966756657860087292477615095723396442730248067038313275903634282880645988078580600044283459261906162033991768514237605022933305240261577333564290622887877534230752044398683329631619328385739626932301845106339363336571537516341639091236696983679545406711213372408998554794592419381146797028472224730064089746680978417935331251347011768799483999700923596635246442304724513268889447552253605301127953909050083816819499267915546980892376189429969583825349853787672601217177247498513846996025500242871603255220871530962593991869183043032969787210253873616157706592029669495695388620848816351724035541926961505904026515436853962790941210725757604294037544777013588172394378401806361907483667089174039828876029258353715872986092755221866637458787619803185647891652367314695995455778878479952375519265261300791935960185540109920539818679945339205413541760626386957221800897590963967208877244968653437100707134525881892755331206109100910204709593860048996980867540638956482082497876290996471761639763231439324011690803187382699106345049214687918313948372819135353813036115220960016686602233868202532699341484279598199570056974410837255837131248192966666813862910915244836602624484281979124983210556418402680919170197169388339532750628364224391180910256335417000729839316237660884483101394850465928831068059828127423308803833035489180722334564119326479186324978784820847621370808913248858020637157424580093222252662871636829757237640865307176504252157065950793861988188858268767356877607355578979138500552977275581766362997262512969450268149938563481166891916242040608998748272371656899101059158927367238650072188359876667054294865542697238647368360974866190330604590484893810187189989434346151835033539684088123772944179708057332814138629382844550872984221850650993490446452978451985102436456280796483417323024542455304638178785517210867126769654447826134136985066228635924484921338146723072013628229490419915557914018323670895917737011980463444667161253429975407871981323071294183556528972744076791447920808170757052013624948138598533891724529348936074636537857735873181795179781043067211293172879409403220551537802791670934727200961736274542230905279734741715337096148742466656557344299209862218968290194025797876708600300650188808478928494948611313145903915504484662083326550849589214290509128957245126050142897251168260678440215383084789364867109753862332788925812683575695242607394761628565024682013055132392026709338451177994892514126486470293800258589824222829884779600050210583385230658069588037297005012560489447121442656706196976843527187267862987130289061230174597159234943043852081871282649143325075502322463561153982855367810735691322502614910451008796780566569194538605084976682565364546513938592814453990635998142157472203890551157307367854173924945048049095723292466861171464956014666971951440419993284098219549159116815358081707568911945445634413793972774650641010453407448035179781384309633408366011969137506322788258530945967090346817703106289343720015421399599832617654699358000764895333025435747188440213795418397037701855830294904993702913335586547726144658303453153548834464639030513194072940397247388638296089272286070563068930508683445548024986790127066636429047714006619008372565048003986034646969602330174467901873274453957875454511159125692551172728583309028598962672781721616343415080481129820258758144222655292431550193764306358580473543114497279416743156488691845591379494352280074479414301315762291628073771201915437381107183849117569785736290508817093557835968264721203046703052603122158586040890549869846561507573910169946952093829129503724665457585192461134122767219389813481077622652907431298990164180015467005916386691259326818723842816961921347183311795690955218885815724681896349045654628272661555346241900986640667616480184241148605640482620204597960923303425840627267694813646415536914544451466979753977703589298083021858558776072113021980465136650910813864326798642283712547066416050216045824389065595344414183733400000236135817262653395672343272927147195144545544263335689898806698701363687963607029622914459262146091943278925975958709225245168480172463250543209875004205399389985274398553865863267796785643435535076611500716444615714355036720425963661345487094605033773662599748538031591055525752402704251750398734781223826421421944847132404960333521535754713325392012292021748767755434326218715354915317666404699791201546539976347724465382414248353115518341385873859623865672137500524834360053938956621034197953587413906813941828541988337838831854736456920133744921647816489583821028679959319599687775779919837072127706871280985177090789846120726188259992684889851013583649024897533339310156153520523137743260721390174551206864702113244468265974226212228044527047964331844507279175030710539212738725897944244072914410100742761358037087308622823709135256644301814983726084477195778170743927973592320168682925253609512119760798916730293991779174176136511422711039947116809621482274193662304378351541444593341213460173713976601020797241185813903695572044344354629508114540851795669636015786417509502958260394521471349742120699581461694870199402159437184376412967136506106618510147519921123371348129674016889442222698578345970614064638394190356006974357694546291973671881676242019569549565547660641838537858132787612988920903287676399269966948789099897507860875748891276537714465469907462836562936327725939200909855351912620005032365191539100272510878157930661697697010962062050243279383240183412330485095430638934697178599183921939184026722263881877834712925432440337057211190852236699701794867635249861250046135131784453417407554230989292211752389245015004698882103864213324272837814142048305875846658469533301157209473380702742113429255932714948888275039435944808952733789808625204370660971568268899404244826437938325922689613606129581059974944564043091964484007166128772128264134239360245118579946668823921292290216640171993624748610543531165859441614101708680860027552289508152754645258001277940720734399525375516069571447596155598529892300266693551867112513340338136642737073983577953363509541339572170969611788886782504722886422041698811762567735214304230291713805245240915096408932144283562622626452612432742502905898132991036249011310733016728925365695620078214762438770788671241186571049854319002036826581258927075763556569156045871248121495456227457857699995926005636875117736537982721619558201464355108986185950171970118262469845919987613028184934965100267814743051669877215752682256441356828977918561104361754643593820524424244622474329565224950850769275670866849509691742760660624141718454440664952926550520931908255286555204082897650452578638044874443086063584752824818172532448862676708646978279795214156652905086621964021246023390710627794011808121433744779026187874513659719956419893133321564115728237312804763005075898267940894033467167874663594595535457603547408900285679942062447877379269105773744876906787043084979441766750170351501494373632191200978406175017603403518240336591453369591583601261704940194298701498465429910178729147629807010213852344873746554810084178029577952816877067801859754924691136256713690820174880820546876655613807801490462857800601905011240069675959751558117940007009074284863072048244327670824733655573418227022399915493319952808568368135717217259235323398318581333779545426621615853268182555712915881577248267899472178289348999099696726214697000495613184011955278782415224469647518988603525050681997772610877544259221884902371887598270327621037732044192273602177318125403134512177950299567555619975923447966904630063250311957268659036971988792570295196379387678954512798154863219714615450038934842986425286547412455614703148179237235719335727026452074744416386919760585222335348477142869854553034842593907686744032673959523145995211128865728094354300693830481180689200765096131256859501896389414195322770820521556817769382969684477241772318758498083446486589998587525684520779312864947610337053274188658565256162616937704893253369486434967460608878187898674728376037182602393685962175231476669485438237669746041411286880034255948233332713805767301543917620676777582157464488717028584302587758583572668555017830768742303014279606838133425477166023606331986673428771871658865088282085341714124209574156896541887285067315680158672587974198512014004257611199013597437270334307693183458108891503152916301269329602617381612637580817028151367879180302173456071837488044116062699894528011409051769507095342763640589957890838775804021019968166749824034544174070890226120047655927102804773648068008729224613185315268960625496248172299642573954995907839949960036941602607633226303885426401507813601407655996281001719500265623660226652713029759667650007597194267776352173901405303362446651224860033419261754177609895077859410270532695162821495933840943605813993972533027824315767271376224346598499874260312174347904279520894910693435774842398322109167408923625079453325584536171654625144868694485876750178530131576241591778294283250060444748044126709361688172174341480108750019480002341301203691850756130358716491512487137136456643426780586740319776343682727190008725414090752973247988914225992378424015690188160829236468075950790274202057739638366949534681620438951469354569009106092096633679413826157340269241160250146189218886559176023673595871508871017282861404217327712058410001463208794547765268620561458661031240623021957955085343082398979201969346442370071964481100580989231957302765492880692507528237758515321686032266510276065024305092169876907683068344342207974311207293258572360547529325370793734569707396249251918585181477488804139718899921111893622676855166803242721137502553681556666864422941514341444350529648707386965957216790732821951844121258863529539368745109213797466955731319829022868882331138764884895200650930643080756579143766883847036679350339518198949067268474243278852690601039619601883547034646991444728415314690159238122635728322211104303325021074752077408100026849463209300740264396579810737032620770004960666912045895009417790343138778938595112702623831063170947037146955725397912248088584903986074103878817198906435721334396050601536914013734959998647540397608723074375906264783732903850791772319353377509795057612489214015349499312435321924162859138666700567879455537242597473148772706355052661159061247551616388278228581480186234604081447747863042879159170424105686737928165404089993337884464437230708280071153177957581607294726988600582296820363004350336432042035350888890439870443773270248634312811508944629567894266149259863926031514379619637636779159100217099423043637228675807144574654826258778385045214700308689643370922874068594512229635631776001131101661936791940654103383045445474785128781412488956242467869994078863433887144584116125346720008326384790964852017246103415825293914824084230745666085640917932515428139414773104328650808121343448120661319083068419941651160701163326368222142082940466038675324957665310630904434713024664409206460478021802054046902923129722615239343048871751428408534315573694824901031182823961912961062558819935766111739693827743170769703100742986060423917819554315071203224211712739512874248917885978310645692315897097030820014011137347368750426543279866748727184469931530775088125964944085246297055572149145697160482140850441826311468474921573608119161102627051027235969401650534922227886425814787739894057962254165506615569588583132536888912520858500461969329743761451896015786552404513409154620809049630121305431507593505994632306579155857554468130948753703184907058063279119737140472676850483365213403593389972380410814454423675940997246762771520995689854517525167090928899913222362013756383246091469039699443623157853769625279801947545182856541597001935875084953363636465662081563986465433652947291810138413021563540867372321789923746400322445229365254427067158078581554459276380399888496893429037422601999920823714819017681048951522327039222408102775353601240049937905687738044560293121364887128931980910918643762741873865691938027853424576583220868660282250482892412141937040528265825843760726213992151286834407433833883365598323689946946032518864439965172396159612269470117631077928756928427784777430451564186279459188030742400837440099841812652853458768122217927701229710846808352254060270725277954108767397210731308653485853519742064198953399115524357589991859137901243127964668252945563889732637586498499073159209427488729261499360026542266111767639244863336679524119626057372392028649224724959737347344618961120474483378279478658757409862563300476749505979336264040908287159732305529952732643154383835700171415382435089327113409388626808604404122701103063477888218076645605126904674033714296784361764545176683828489615465351502152913528403775119370228526314965019531408896053598338454286180184989067971830998833695300517228877479770877117666684657775571457898395354552182582018881976892258113726947040556205116925738372149413653031207658329439977212661599497142248004577026529734037476389712921491954361262925994586444941494194468957335583947055722453542475112878371220266339533459471929336725428717731708726714294742357288022178525702608325213131502843355597128433990784793269692507579091078028997757766115930745799113476773004946706773525837348410220608285014452353828591391759027854600479661008494275442288860023673497108234132640299464815529375134255125557667534760027139366770090981943372652511685516049824008489471187765258734100609335026702013738382643968203707263222265898390282844435581087958015398264640535285811446188477438503861963759637193467973314847130399251082372348367220699520778828890671704266492468990490803487193507679948297601684084056943210817150396201960097546475613441799231610078564089880494304355194005931154645630552329887028064274066734102877505742166611635210901591112429099534540345483961284774524489125641737887338461992377980574006291044139854217403464821021013509519260713337995892662788558264351120167581183180939390867000169372483622143696508998277044236524206771946302740860130925802826836706217849587541560115103055452745102577490539878329391103044229884645430482777116617885741818825030697133224486064924236559097809205712794133140061317855313724598657887237922545376835920268522623240157995646511102437971402094949750116700174755254118708506301823139277861117794800947790958508927290531241186227361236740991456454572172325647970523300730412146708052470754474632830763544051662987901397685568507618659714967523154548087761562786454823045777373893161541833207123964393491700478217156179339086250770288361963125890657809068023447866230790906033107144418055798057587573436489224805695384381757473133129913028008436414107476392009834030868592512875181559279126954965217289185529255463137517868328975405609962073850725741205329169865357795329718031941966060135546169924710594547209308748350072498848478295148890499071724286472919964520568052694003781908419620096878320352987548236897896569373326738616621946739092265804719215380394920274662248976723857542373746987525048081832063500718148486947972632381139102881780708814676535964662139854884727546696092354735667415790211920703457715096154783993495077733437367022019815720080908450666502117286130516200610760730362542387191302563477931889718008753214679628685745753740406515835043107536080438714808021154805715215868986584868410943038296036197364308166511248025961694285919467257298734329469878276538688780745870593953205444743715601672458782308109097372978003259296814756112419780968695009565785369854425987814121245225417365166229360774014985095544077929226266310244513599175664425737200953084072974195544740015305746295361391710556618443399801065251727402449018406211244017007151187710245973039351715711575167210177606967084661170857695184460843923187364987990545596355316831888471589587400355501123273880606366656678588837875000023747253534859543727925247096893008575670102972183204306787913521520048692354450823452272618442238547508863562087178088784918126411303460359850369723510053664718858650690394384231092297626617983173249269360450827872287435324138937197597768892482819379753987256267548551460952142051574263954063958903158912364831736441999659000070350092042298759674290844533901930553861643565148192760449556304744893699830140395951623060225062191433416561772178151068530389493456243966432928906987239409551986390315397077175969246714257707791556924403205218976524324745561654588353873419439795399732346170460191440026066844521136043443256738569188484978674338660609241760545026493422209034924599475685078445206190259863402627845372358150454365623082076271543674852425525138720453910871718293076385721353100334418895879811081413703504851329165797328412741904774662594821277407504940856703512647918756492793819244860136401162613144621171872888039033815916340231627218547081692279729157259337217675401158836022510930725740416059979111444256754306156632392340920078342951921657318125211377751026291715699667453948342042269303917300638882502535799913244338907446543437130513715447988591053822421718869038479455893006690552016339604112338527164991302766165309765725930549337466771328621973354385629703373342534830092104531524349043443098491801488142733246913608529270610193831078461895612313132630859816258606076723293228083746196940039049633165608844763304202109072358332915043924296555546085812092339447735455861968250478513335998682630637899219327539535128819585244882908342897015980672388639285685446882453147677789446985903362397321212233726758877625080459652182211542430200500711374866890793892583046714588976218095077122852524568006568115143007039567333181721851450814551612717700845741724663257363022644580750618436431540803195257470826369695895265597377591348652442263223212768742380614384478994979339796305928287710045154066647220863320271027366254872639691721855920916997030166029562948120433619027474499919129231371749262139365507072832575750508896340412858661962164864834432258363949198785148530855486890531805354657307865319250037711211045693285571468477991654060930480140434789171403453584280100420776714919259693964642343886546848174063315620901245659844884392286929782679184578023002657939962652182201064400672363702551404831000152659777268458449055440816444218770668294680853042590558788301361230808786280439372536857350446010869951452763417931736314024423084486281364904889296348176103521884874453674274989481362891042684785900299408900072845808953818324292766287335913956064943667219191534563026670343688303986636264524179415864044099911865535182471186584470993032523354775652790651397723531387606745456471707736706476291692641149413334429332987553134008924170810912080937100359180767525916745379663921621619060114839768905566504974142046647580318661492541955416302557089125830381097845797814774084057417609152020296684379202289037290995538967254081868456534752974466728195206736757746039953086466992620163171096770845115466839101969354103334365361868421487078939973473429909244037821046311093795037350026729265248432655410516857865979059012707060492254592160051170636141006962348277517594999165601222620635501072587264991603458072046710265109634269986631894141066498693064447731991170725835142708545399452009376464932195914437480145856969942688597534074815773076957984575261591393321205607936694471223912864322298365981533326985531600962378799985502929401599222821964473330655210220242767155203572668191127117528301249736884844533841818769471895590684632472563973826280421574849346840595660981295447286902869454301550066100500855453418344430534689056549551923904214349186935551934371575924297005770148571654539365699416179366383997942675187718954753067864076780163473375693744176089673511467251474048107485121629052754380327853226292878415461553808836602754237597614910405729597326870059724813429308391753735749173415938678640504224792414371378956069435965064963610647919316204068596365812900155223288578525717373405258738340861610948590404984608380273578608744644036258025481470549990445371044017101047779335280641263343322299372637958221873760894698886784614868450658231712904911302122124813960351774165917490372158047242317014830842777801379718835980606465202104048035235919826372889901354636717771023122411483355338959893676667545982174637758691520325681702388408783579899999245900064862736315640535867596982846105533410108689426189762499469624104201321973991678043610736735124380239556915197697137816275471335370063700351455358177215854838647834831244190750323482861534807021609061996020874424610046329641187308282578340026881800947911286231813795582484265110871657940509054054409019020823040266651558454309953430929456674807891960826678084832778430515584366184444896611522188099359235928001962470974966458840476642761773015064167235429169038981525318374371164842272714234626847431187972776297404291424560643519433996938140365804154362540964570303598159628354891161365915334886103529939666173412197282361739115180632585367790527897731892186533592696119552604638263496551526834656204115879398145342572273224560510861257514248522734482718563265406549731601904741737214912902710034737991778700942134569136996510324211994104338832347857476379884640856303941767776955339913213156002492745024486094726843675179374350851650590674138680363541653489183384040496229428131106671594185289613441757382430152834327313030185675693725776557007700599491308078649022317832257427693340479844299873564945295983994910597558272300215887730770518092090609655126845695842700298242139808928658890332026647428516827071149425616838336749531155014509017464596323300545404453344655296951896326439071076497561044514259128961532308674775687939003813952568542595384627801092616800539568720810441709171243560356442242357108345463006821499251034116745076753449149099424374751430542294794101444224090230108616926963674110740829841351847588394163499763261250356292709412964467992665012564240028145534137685001991494659471154360418147775564128768965414209435906105297384938350316797824450961568406143173711714975579450212240231173564350962342946258073162837492855881538371609874123065182344364040777029988778113045546685012784741627091017823992440408621775303979952105001006090252026666987122715888570799998020920101051053896556961079599521950913207634408474043214654846014071053822874785199896829579133143839540461769287955403730989215797935247947466687692367303341050067482130753485693154038894912255672369393667622006904221620339614967628426365412908789396814179993569623110697952645188413519776170510611504954796467555863084157615915232834746245893490146654759836890050291583939493737391038173302313257488397916071857330238758104595268136313379073259425648679268044459950651942293513969386252083313209862578510784388234763989351548122055831998327765601177866901556133973761279123829277021091885172548084865108016682563556847779137517348818778292141317238137052373420367589202341578190836985674811774378232832956096336698282554096068440295456064192863891787305975265721985619931011129945233398729302175221959922533427440493234982279058804832474704361882017538280435914744983564312375492767404061532400418814632574215950462139419491883930187141995916516320101740850186832123822292110424510468394170469832463042327697109992364247295298669157631005884325789309062508511423526013390625522061666206473722453245141429456441185138506516799116208418598525970020784887258340142733870381219924539291431090011083505793970093506123790165956093422038863304301549001148981710447695274666874716468753581405917007659264692026166030655829459815601387387465472174628311874434974043049951586494289427220051348278016297038537474189296685407324623638235333642078099010949916413658999485039219333280322121237944161143480531484573540905848995443902406637507176252225270233176694154778350006445225677600687237255371159556780109661551888748413601834124944253635766612073188770880144044327471069003841800028984222322639569574245861262073574383069658541049748163839747456675937380248417277036997929628229979511547781570105421064638619064644160271074134297821248983592288111298154544775896972643067949592224446929749693053264197534730412809103877129935161304370567352943543669763802504384538027206976676902518917670102371802345438474038077223187922471241002447707676136259214974613704512242572612901188762827674048896072164705524589716229057577494298472888082976435761565939837329559711269776985139132116313986108120667493127934127687937850204928831868083660152253149878672325051908389857666064509365724782397833344887320914290796717267087528234224224437284960646692092114133107811042925535667257458488242049303257839774359277888726691425631402049899424919593495590471742733927371860936692235791275907928611664841616374419551743241813700279401435620100628328657740922430960119835030132005115122517443145323289347114001197377202287198916520716096210014113545357761512501990487588280716115874247350036241375512615610667734151728465791937533963907916110503551298820628819600842416844830517821551315397479565141976178853413976420992683370484032015821759001830606159588939105421013485027269612373830843227031971328928209804361221395325293090742026221075792362180310358634194108920293005269000301858719499346099717653916807952660350383011778554206193654417888581802422983816657789267421796415182472011063709306305870848578304856756960341870382882392471794508578996527118809688956940356441271856388606657106920534204431887970945337303868210776132047570327855180958177741991794929281858697148711380981671478565035399844478444426458846267115090743476817291039987708608155313018048046703130258188810268967786810654359793387428634201819848292049746112442290267536660664439404869338666564696084021346623573853982905046453615949941921275029617794641274796397584995235622004905226961354875546474399690262693141821281346003544630002338277109025097975383543610851465343155446011558586871483824841703015228482338688444544095392408478608319610167002855514662016171809930677536620737480660489165960532771860102670526747722557981115557246639729901379998787113709312418515388999421585895885895576488906067614742737653786923374159571591749756153975448861954775888573581182203809393078242773606744577375891741076599574435813455014776337109906730025634400400631919439552084858731189905971439801594844688021180163644269625500164613224744124299145354157294490238880786360616774284133811209439732645687685763109911241028555491646390381132800756600485215184867455093536492317440311832351089465391670435235933633080582435478990624230325400531787745353721047323009607681871991866742000776074568599365140525125154447900325799812401492432563050560686316968672414794097249750537433941468603983288411791596651336022724418728710604779793277514885901674541415835416925500927214289022114729127620522065015269790255281067106954374848290656797287833893702751136729975427308028891280167376410061394145363047445630461281693220792148619096030517160299496132317879680126803362218619467566630239082022484253067924887683053144902183300598018820719575162255040412709536814048968514135935795589834180782354660708844936667514561834488596900377933951242728940323481042653156378564960718628005260410972054087924670444096933709678199769340453578173136278133161251896265721064323558722820431137248953995239908217750288943297710046673641263742631787337792109823468414362817888587909382320860031802385059183849064585271399546169495678433132735429368192986662185546972255019815121901051125565546918581421899366311791779906401728546806140380602511012975083571575600620229476622139649727324208057525791337918838514086595255487887900199688610292180688431205655042166897270026716225018942610085982317352883085602970423079190318914298460083686172000853132425466488527860654389496070859663970974919626602036744316413372343310873346523344909630704312998101043563532110640707444419081204826853869715096815701416667361551191615394464380628562114920218352206463945406497154285694800065698507714361718684030160716988559456357281606428461407008128794313700502743722405296334764717210068284961472824754873457270589956114604844196465785007648758668193702424899277072890619181880205626226267004546450929222094953173255786878055167870570093865230859838268204940302329543549687573525447157112825125689361150581788385544594044427206851651072422045307106598849318330482021372527011866252188281683798278239009616714015786303839101470950298548149224500025362916072372920568876749546704383700487103954282995955859164248819453057973838812784047402207154359468384796798884867126079506574498385580962012561772094279774836661267904512357942340610791495697067251738104372541639559818317079699982147480297085801782178696989860741905077892791678485447672709020312542985410189516445396734522275065422439608098907048918937848864480203376803701403653368136240594068513097499405361225341824872740991335832944357814847800161602997483986503171030633219064956267498641263137797039215869185727279349268894474759165032050683915657071373531853284494728396529372028612306241756774230094752390109668478304303125196731436000577065667190157645416431401386064547880027393543726610957207165292897367482922251966063657677298537817717049804162485413154992661132689012622973794944086121562202087434826334040617740613589247344116331420114763325811145027952750168141017419707587448761507152233899906839097927341231507056161140231117721936253348115296454271647482964898570363392335801425332748839771218595892456000531325721111836563935446182733974051892154273183334289212103920786441710708719860701014513204472978119245110979307545657314579920976610658373352551257488775591215905217178438725563876710625464690032090397774030525169963615459092943508716243008941126691220152531419421275858582420258958910808162527958132465344411271723011893864226678473442277323495545279156747493380077265292002790321601236805288494996978353091890614796309823783231921261912748289046392339230026991037323907991156568960482957565605715468619934995829006398777244363906300809753712656986757655652304347141794891817043241777910553396573524567007954209621798810693436423970403711131674004136118718534663486912699461150095800001769360441070597803729218829163282640007696795355317051692816044603362806525811810316413827702430231111715392068474568273378325252011424658462865285191624606426577841859073394838773072719819854186000368994649310938036795202773211159147224062172736336415742364396354312623485452851124339698136350799173305393506790458813553377377275414202503224419040763972701425983493658990711879445574375139255068270309310523917364387733595425783308778807129869041903882614860178111324383514465452367664332162124700688661668242642502419796029627269942040918526768239428831346953456925158500025734149776852168842305881744904398521294494423046223693385233965506192531817798166070081971377795457486362580616968243044387916476217877707790713987914138569538664550887387506337700222863440259133410949251799410494345109174359649048530003311105606479201550094131521426878181984829147822138158653831593808302512237351305728860574028252455212925667471780400961116802287989462828358309649755806031293032639382635209749430780582507011518097039285238359478009724384092095175691229397097624520218383398479242392482191899441312861054908708540432309198981712961940454977894728803172130259796227659701925954787909827629722679153825704304931793821029470014397916559887087405114167605400037658113279929366699200521608703489814439220224423404097459657172476111826279627818612805785566655918899886915565404330135460385015064710961507680885184153738508518967358213220595800466945362524104042262900213318929700310832084304795791137593155266641272452871945984104416324567869786939249242070116208027025279710845939124414324540473076156293491334591016806989625779750121235299958320271134317514699464437004496061378799727797485219292838247324715995547461975119182905974610608966570904564322432688097284641575362430516973088765751244786284480848884732739378449574665043252502499972322347560437537476359420120902718453946501656860785378189794937743051694878269700584277165591750904680617908092181694369635965377283458797622465903180850259438868849561252322770677168100841998867969762513183404441291967068353231687186131013535784065063423892232728060503304677112252197306768385390300621355505115215296879990080879168642446081277948940278769538400081609163657597224082486444881962127384463700140273962885470708980297086723341151179345476583977530048217786625105526747449081355943401914020369956745727931624624838773131433603268347976462876491309884496400882196013232969093673524745078815396718787781164032780286781181441937563050496190449727358235407832169952293946165302303164570371057296505702026837657563381001991226263262539291212792866740948045106503218378173242123106570031777006977658084897253949374130834554322754811879922100830396325313047631530979608995635661923454712029249840571357867623376817056540680116691560486418532785584838794647103535547147854769199447665553332523747811062393721290178512272795028175723036636369833703678983328709014820021786454060763370258236767221458584138184875512901863838919707925432221846920532179863977001326761567513783330885631010140508288416615714328998951754209656930545666177330031428249642490844722254365704897302718880999181730414396283944720899095917674435373363621362848308322969348641481666793256816095058224658210294096325442296071638518904289182301558509370663486603773068537277835920440487756391488179787363138449590694835106941714759884883672446770970047666889315355549346690018202485977214419687310285002970095715219383391360132729082981131613097515618583692171824179146708751817249512946618775904610969917922974374719802894895550478295436178024468138084661244910970494879551812190035427379758557634609277432257516154717326775366651439059708584227046944557915458711435195047312273595424291245462160219577289221205200897114271534524902441831159445996134793629634926391064949152904934153010611860072855437858717405275563607057156895184014442365451460001609975099887231678985881616826290556382144046177118107265968302065535297687168147579061952701941557821245175090134393336305517219341427728493239138861907295924143347822663420695549380378812852871597514272565768424240336074007195661861276455038167905045851072338775105861053286973706831078910894277888688242616464308846530244040587783343700210408625110075358910385682678227007787668335540973064034377088031949660829355869688585251296096062536158806226182456050608149640091028142421303079070911986868239432253781117771669818244121338745190111593885612716612839727270825252693388103706005477218354661875629393949094938989707930515158252964300511753383608554729835748368926788805579185266779952387262708157347324804707130370581671296837488339365508612359000902426011514422807612433851517091087978656916565554355529154561332150822179638261689794810339052335972871736423121393587441190532969790494743313352443474572011027784988049238247628905405081154088753843319910872752186955905511967165563082413106912076725903609718838103854184213428721367028082134870437743950276147330659633120637829184834084195378119027810428385396988489279212922203705289484525680793301538690754694892911395636627626489727368428866645953342785327657934021186823954573736440809593863711853444067348535320355510060220377444236007198307598308969759407518500770397936958461796880520601366356984210540600667227940153640846229671691317218738537395824106251688409015588079292861742386857792760871106844063775699253590985179214335602514289753956292522456563725792115295274086006439529940568575158990030192009058666853748015184105633813161896695720918635423847360030391059274302298223444875308472595713900035670330912477054958473757357552965072837040085096793092265323834486859088672480803896099125296700355536476432189953814545216362605473942726624293529642656728897031105000726875976688107755316458848303480556007597912486211481734610632091534803722605464603287130361835427857784440366130635882854609661168097945534479347272417602773966903008634162532696638508401399931051672294348688208736494132428723894107724656116818283367596577981152349421856635790477916012405634552875366384317493942679099087012096389793931243178337175023325402874534089357944306692197738555388136912923257793681479830311579367043080281186143072834527530168565010559343771305848073048575686306435455794819566490510207091181850477027663533819285043280082841243863993740642132658399231695664719796264512875164834889436966091502171750701643383474406924746165947872287599528470569836370793235602326231701805278124314101162540732879929506141441620599678811724691634674803570909098666628120269417433260195096830962214994446190526193134511279300919911467881848353779339120330074413961659229447397323979824010287833443223740209908726482964614211653193411211152230118955001547110180921668653472519417035939682167240750864565552815884494721621927389809032427021175856468658775576609327040827888450885263217565155982305906488455730719129098903892763015536043208203867315906964528221579890993138053207827060992803362535163992027919538451342981362505748055322016651198429645319428270774608675430232443854863924477301779974280434531638086482958138793412839807116156093006541363531632342880812403488276313347805673001687079856092144054517854240565802667173020956853288776126337570106519441933726861541089159789185083309002813605285723984594245292624774160713162474162502702682516094878446568370285650059425625152637983004011303779609171476334674987056603271117514539637661642994653825020813240204376085849472089938132433772163510797964236086590205913429068755446908960282316102142565782680756915313828919161096532831245241367899468515160025074427932430692406766620666069519988008756188677045602620440250963498030915163611983733662941769762549035442985888627685370489184352579636056881863198700209516425538244001560300064173192178679440439376733407188717378528322683996985950330371967047827652356979449268272861071410809564995850679640658276405040547568195697316473920327381815890822169466714904778304187755992845531511548856598087752102034893445127552615593020347124392901048288937378744071599281077978245440998226066688670803142692339314805890995773440497329908785390256676550070908377156277739360928026058852113909188416478433058274521478547550842881683295866505562426197752272733785528946265544714786102055739971610476111251497917873146063347653008780894522233085480782769660405579518410731710995910666102676200328906594381622011116068527084631731492807128091163813676364305626673631531771714563469682691596588522572799721546166527852027715059793847773164699058493582069895938819174834887887313980541840691888397275275505643252863597485989649214751342252442542529119502782204811692295733646289566011866817284816610207913643697712305526353752623554803762104794345665649424249021647504494619494609563324418753172355484722597811785376139379988719349054958903292719135977600826153537939568613337462507274294524642836200151837055612408724192574704200471582080220595441697149558184462593646031798802475959033200566371205798305971820485231901365041045524144418545722524925372818431841386222330670694526925350370674283918558119756014422027766842705062753015441725153672863611642484077381276343798136589793413145721224261232742748400785210982017931656627866227726322830439959598270257548191019484861741141074605041954296145715310459634725167496443314968513440910542761378290272359920353377814366640206369139559094321653212043722805452451832171493812004912865113568851580834962708311122415799518373254490990550704395020104771344569742244120144987524701650412975229888773352677899087200809806309804073831857215262263973234813679943741449249208244194402239471379581453609033635867565225402858197807454621889877262411124729191440198423433225015932590271940698443225532341934385868323184140166206819944081792883262311207968187298818244784449710949416041307739604138932246916364942883343191488551918488275744463168796217410675817725286768508423641248666225621243280987677128729674048524205819276505014542717020196939053158566328758249650356303696437746247033422050560561356360548938802388149019260582360093859253721230292238939057841774792206548137793326612444461935169855817198246485466229726742541179935774048641793280713267790159058178695249028069166632442270232260569396009798459221870665024823376845760467180975783690259583003158257375518756444423219036114642533789173274368463359156057797872081794335644227541146125569080453783749552316829578669312154339092267312181320666894900282602642249314504889019539067348196636073270055413612403180710476701562981207890787642019162029478726266949667551906246101981292176561865170404237871695782180581234731026181766516106787310521698488692749176754273967760058191094540054637577082075215924802901566575578383149918517370974953692637976433969315730030124197668390779753528697049040552850204237924442051437168802793805984034762617913495755130797880716816731588985028041643817149369727443038115964400888604802073215917812396351455610212324559445030351495800483380704164732093900390043063764378750079342482042704235563151242535874613835657209393190551100249949326051539013917698835639071821277566711492505291148668489703342537176630865699181092510600647831452483857753617709552074565864853896417103206092136418537073667356024163196291584680502014027179528107875332858839198012836149771617588835965005623901424730419134505537809211816201612077237000694850705370242182961501616762614365202177273154225172475753914144419231453862920670012721998508485153476936773935100395559589828317807393805635712607297741762825485759411533382235858425289369097948240811493109160897177605078428947627573000047577654140569625775849526510940668140103255257633717795302641076797475455566001921946977957411901261008993413530248730659810608287740061577253596694212132332413710675861820158039760372556079921358086062783043448468750748837491828459333812416718121666753679904723056225560059390884486048697013163595073463186407942694083817162415884788735375029836393574302209092902639128325030297295890769123780775941989022046785602546912489575567394854255532795309597255219198932937503601333520391383742916319435809032160418333488759050753854916245651451825486221334887251413834305719698262031773812619336177116833342236062950104114724446575343749200533742602457351991735485516656811393776971313272103691116327217116604464694820148384616261505406414458802624212616915587033336435268897155542204130872420479344705103970994814279006725451388698632863973578241045945528278985047502023699158364490619855178306198200264795506180571579632388505871208653395502674570228117988440828597194633130641929617312931944518207548361302635323265035705640817756532572298023087896846239299060763691421781797003958336054439679375671597526125027828581898353408224009303748764559267166919846392776640651563425710114711420760557076426311126292651759713660048439384867170372029219327267698483366352663752019669326598152643922718576969519919998708331701726938319192016219435865609474347068108260336914848594768029752464515936453345110306824410966425371193216500968220076364581191460249978773392339069701349869750611823356126809093186993862305526969081466920325062426429501718886698613432740098934698110746177604267868876268617639607030058813981384056692090833011397477814637376350855856976433904357217223922908436595401462743288477303956462262963419488482063419860324867813613565316470588511729918699820493854607098642541676402725427238657681178673684035542075172578259697974707618748195827279802896115373315060032776333471826463956431801121966423709321874618244637324454763910687583400046819606339758707327494174420142918018608267386636301258903557220880850884717132491809275956175331279026779738460702136820548408706725141796861561184015302807347462462194533282676358922424022010933168482255916093232840085260756943938608187004181462663090334118894172732495210803560555067600507018674513922837329453407319957015153653696351078178122359033648780070510531420829071325087156098119708997614835104923157396130227350375754785086145644525993439901581255998184810855545945010348896819121790156932696805893120827563987748920046668029967349419108327650333556215160688601025085218737597624505293509764634148384170490393682859049499521498058924476265291156005218243821608474355193056963092595121208685948402455464894830326174254522075594151348753401124659650326276232050290108784112777287918782465172342147567665761101699233901768016163164409902227200255399081140667939559130228034126494600489597550148022164059848224299973175950223663328775954677350049029281214847386519724923765077293164116429454312543789593372054181641693301201974948288252843349557079451991663262383545734420899039703380198284543908585682364644347560131347760863432570386005731620339740538441338886443369483730271861350811464802135464937357240343417847165981465764159898325787218143155995168417870987828443020278597116715299662741306502343693819571382827658876490184858367045666893664338726804267765052004120777752549103490960054021286491819610457008849038004676523199586992142461800046707928605815956384723675628423918324882703104040188210797165717597888516723140672767269166122334289867003478992133309351173492402991778181483480068061014305670450393834304288927391878440182143037527082560017881296489388009986868313311137000555887528459121027738355632378560387540038583356673885229963995445808586177202111207971667530568872998847377169817024699109975023711478841322075914169951041874105410434313668907005517911860232391945600319475592111377475906745661825525890224088977117056445419120248908664537387402546729252926856282175899239414686456690758970025060371698714916772035083751422878929390967224045897731555683937227584408493307868916819914596568636355116105562793323309967528960707800708015107576596675908841311012726588218472946968925526155157603865203560597929866201258258287406858816487041143534746934328947242109792721654491355189611973687998579783500163854751286830673967400353877026562236423883516931975141190005722772073320552666852909119519545294355164365898216754195273549739830902808176211893850817254271233499189859032929702525156980949684416938605164468638463900741654448896989238494343490785224537777778498477905357670177211511537214559056644415255419326281796634947417225928361624860630969878827557574951891927594322262805874151011687640851611272318837581916345396612160843883766647303991477372826171373981907647209102971647654793454292310934626291667013421216187655834649505656231723024937535749515062383328331231046638828837353288406308663627088446042385730457778625055253038851007415409381148231067625787242014411384877767558043328879759369489668174071716044637413889719683279666756247389898260530492686329849309998482051426275472792844427557781411022498078582870572816935800611538835083508835340415882014765095875511490587188620985849752043850970280697158342983965152889361303725964070444064396139313864223651139619705200199723718564735497366440819908240094837358504913653982957474004666724173037015381210901688545775370986066809565824131197452839536644004105121232105262380260910975770286161235964131270707584672871765263665876889375738937204758630979200844520988054689288766412677889043715487523113557856522445833289213225766835578537586058783548413458890078028487090061206691904925264559961825504591754539571867079218855559713676975476110994431417412639044273978412258011400780335402567901112552473212861557878782009321975611679600495170149521635538982654391120627858856933147503632980426292475130766029942187049221965494106714342370056443106243113553593589052586390709604575959243180884810169986462663574364149434019915435196484646672844142279222103927875473475897160719396380545600275714642036940636903614474593560500469366721819749194045004932815818390321680047191348110942780460794718380253182640469726609026317468531396428958684714146238795731759819422313218015806848459839621062704504032000293675298383992126221165992964029750080656705927791789466853556247586357665077339386054955429319654669987131879783795889698556795496954528487069161907080050270716266059955386132016339801456865990829685431862623074212125335210052682097654159078655867233078865711491628157303519384017696186679717706448663827782403895107008829653190824438812027875558242352338475362199641892345307948138858878484704400467348617483461419406540602605255212446308723371950658852058735131708843337706093754005844948226102609237042044530781802923715569473282010241589321617445852852750739993198094279482364361751322917103419812521963112632453841883151603552759868676871319647597389308595888085512253271303169413432539684879454495155986120872595651809699008781377538270878882316709399873520982949642305196113360172796199259071492638919119121962850154021951974694448137702031935848875398348177067876293465168789028138064369674454797391397774644277217703398404759286523630588965709956591425961380783703236409291685663812927785281559062878125170976823958921038981575728188061545972960055100451759281946109621826949568940090674539898942027909213021056586031810063960949003955723537516320995162825970470022620454380061074112113722690063279219394096479656009310106161450211726259563002465521563863662974919154840999664358409981384033085423003225660855260728366839612060156575162436765856351883042179702897385623627597061642225978677059420597029033430693033712102770174203149242202117668969055072546718965554158806916292724686324324575647162561909432475648591562779715067707546740320878162710049005387099378436298028552310331766953303081102327670457665728749839047539203256420963813836203934267575557724736048713515519722337144759809456135020223374992604604501304346039260923693190514367754924738294398771475035219497021604312950319048252264227818446612090051664330105281524652630635689210564398858370807718123484941188668339551860493097338823627049490524740049100988030442580410314740789809157569471646814526248778272548529553890266031576069146118640469944779723021461158060086578419732753338880495175609108811326994844952298632434986494146165202674234131193478916739672335734492711219263196202038451481743037378159454259645911974578679625972038886499237622774025980487057311454331402700033840361084673763755807391776240886557008486277954853921976454392822804114969256093946492815974513235024986103042911583668415371894765218984206432961467264170482508930863354150770589848101623478099766988244425357051935330525826318758670553790679352041636988818322224027504843895556634131281748673866115127070594522564410903665148879256647251218044086475933028258544440738701560700759197142959606018036963038680620706131678249282282838345312945529164336726629937733467718686304353941399770441329957085054272254090818052855056195132298347860442546924612178489012713112094731738838458161082836142451554660133758127213211187604538673787272614487228179737351747068330961666398718237601836566357844588205851855639806697694551724543641816266958718030089742045644600255897747575910880815621464308785598538826544196084423770545427814128751706566129317232195010148744044181192257399170724589316567350017383512602611742086348340427320828229914683211031044634481907745557743137701919321995270852991074912009545254578714616524758388610033598025706623840318764630597964414377228160730514974847475391539387363496713565688164107731290828273861003165929437265615393432732239688030097539346595729678416893037204728746631842405812448250834507366763284731031865365242332419556953565291893553338397725476455326262076989568314011315686131138593558353032341508719222645834774436878371886817895618308168354890799343118944926805375818157798425312646047918626234723528806218498011758868391552373437139238454947975767285063400589827137341387995603675172584115291333981306040292033247852411888375938393733604140781311149437400223704977075905491025557408286218484286790847585889336392562611628351451951721354245937173827249978733373782804017619676295853283741310090256572283599501550268476350440852297348613015810383029084315647574780320826713651086395179736921602554103426992735242375016573290173814228837493513562388463049722684153379254892995465211713131574812162599309118512013220667415534792923638522583136433427614829604770400316010385132131203725831943542113326601327287537298951555344976830731918914024752681086032963477760833014421843229863462531295486845792268693939221848791260396080649428465999852486038399404055732671739648209166753274080548762624298448206240456249267231953973713966364117528046099930905260707818543400869372569494418171240396701320781728786220707991237553316352281455967700028938878063884792129992737587597283028954458976045595686424146535119806170069308789750097461778867362503832519847355461517502692450587556352284282827678324402194678815889549479090929929808367411328334761436249461589639022207758289765658418361768834962595057952343337286872873680644321510160771306213573535246788373165347107077495322700946066119737088033495130121266984377824846778934455599240949010132061116886115357058178766042501587503973234162271245454223505575857785595393863768947858567013251058521137729992426402561238994158208395174240577004704658650765686455209419129272392508309808964391752430450397854760600377088636596925284039706578015295829257251389569920440986800859895720225499441195146494974773186758003142673605599508461692604957269656035133984238204873186471411861007181116700261985955525356818403478840914674335442968030097309877427768217769407469584983752339229445049773051288346600678881072184686780689244356281164607482933515223374711281080222043611487480876167870911534865637984539641364997019064290159051827321213188693341859726282735027003104868566200709247699144085250106696231592712553243569525955442487082517472080561634021104596216272231895799940833711517523530019308926496297945561985394151715615510073344921446652692397764406735591349956003793083785299727825552109892735439545425517650082324794445994795828836915939055226398611318477866984151689281260776257393815735399356118616395004396815694007646552038469211824837523070402756060875525807324551815797312063439743299014835772399092347025675488483699769470474934973262551467669640705316798456546432988846316241516274764889579375558271751542691976275891799344427305425431813510708108731172582012547196273032122740548665587884853715177912230903370042187213342283373901444694117702050991464848544960739533233798942730488826445354077889916066249626321006957775393240257066458813695105659751877280810344760326763189878549869291742869631879033349061456020698259778956224299460069616909366052020783837715673027124278260503460139329516491520552620344954942142494366601249897197959622147923396720010292947296616522076909903047084690376893900985563243205024351145174008769057157157316569080012396153456910608998368778804802391093955876819296623098381557564205709369766693595757427965008037190873607182258893305239745200069172419151300391447605335607790033461144618446422075170463369763013914254363491871088845786439647951727484153744182754568247754357474826856623556998689689257579487247937269376592219281442598706918445214018050875585180442652049979396717304095532579046760726574894849237759237400723963041645134838201892544928498894922445427501324294044500168247573712118091310221025983456466435333929917096282439802092816749601230361197363365655319043697041794703907549002198674346006003342489791614063962706643844295321387105392265266645771907284227989937664751738488787746086582254039696114658428179469639254263442914249409762113846491378734462679239478251536946992098477720552906104185057796118076439162780676181140231489981577335942018123784161685601318369161536668735334751977650537864779932470404856390058400303189741242799596802482704073198488043884616563393681986638717712611570910083110500314875626875977665221960105323207025067229177496127151684885050658789344243998294346470068076260275791072747861030337839985206272680179415241423087741793980965537846525938148105980966159236531154152834597966407437966260210958904460806102771471883444578589614971587327976700813367809398945329016071329769812677965396286425628160228310366629044285657482438388542441484575754020106815844101435071275901731060651942053552423936109966696663067783277360999346490984401844705840378474424502522617823652800648217120853195652977366046247775673676849939244578400658085841319353856109362026898536985836204292485600022975539261123016613280714259066016977247417538018800675752180815013874193992356357799971801418310543171702707014519213993515966979002535086733519466921481711634916717950125302395966681167568465359360304185725883016634896844893002711247761449871243103471924160920292120718266990343137505678981786126615385788479349116112426118001740320697732935932745759890644276250566034739812169464630212412179834819556120633406193663491244265829207807129109792560381075487304417161122372927832642830914686755010572325186065881459458453993172690542796952661292424512057369630904220737421679661610202949510578803533236728344656083015732854372681825005677756827915835591336028219384971601724739527042152152684823218633409693080226757155355735712268247291705623971818338198982463652779918376386891752533398167930851852575810829457299479788804934795174149847072362813747040263404223812517159874770790256248838929389325299027388697429041214967281364931874927151516112624596019849951786516401677428820873977647161208060131969814939804595138169590996382463611229273519976848032543645823778325488194025666656751923616109868225834400328959738883072170523054798590281021141793600672453989489646900173720548201558120198630029707683919238718433630691962921004751784396339171973025923273687215914409019796718051185672571370213736923928026279463315829395504165647616008295205838008382036973168389262728377539279547961472750131992580362631513755324161101056499257662536486082522808542559953729575607683782516171303243811710728849256696358876813370338804500065897916405007431288399743404737344466603223270118204307004138059110239819235381931568214653913188397794309884325442463951689615095967617858853300657333758340082131341683098419767677393587235560544404798104949635606163226445470824919833414322527724828710909557996045301909528081660804185060733807617760590813930466735577285065224798911172452087400615889072687340653349984577102052552710064392397231925672962386801118384641355055798627249025097996174348439482946562133593955006557808034439498133483739414154460786121835966210039882213200846873704461256891430787379245886701625556071857691650114557719661807051407763781750251930520178573028312750085771090073523166515847595519286548318375294212053950034422722349256375470160067643641280260598140414769068254605332117877625324883946127236665210656477627155244533720821101352059145764608071068373142484789980691071103033174473594905227023747640687953781846961666655444355567473639228896763265902550367634751105275922442532722553706497601542852924216173599061721071156421981010537127375549099306770096980383410904457201784953580958191063147175027592556100425051609071330995890467572490865657060524071102332072501233690017720361579974956611622872833482045046168844460832287411910810772885242289135616338650991440693785013092137555049948049850989139177551182146140863061102882572668951248749367907205858408978725654028088197522849565091113244764221223667617002635483386911934653948229566075257856771165234828144355360316954952664748110785905225585265225381225301303760611562120862302737385034453442535556273471328616428861828518578460049446131509194769477813535214325435578780406820778939336115295479900974967209482066797180540169327305035565522374623610618153816097940385553942608597500814733323308739546185462120996345380887366949411193954602339709142714396278862393731259752109030656477139367054907594912293749856239508525148936472107647294436495012340241795473362831438526669454765260123592806904826987066897764723683343986087900192050851832216172416786991711495990428944333478735169323969300491125392323896619365806454194528591231623638826346422411222152671444879301694318298560204609775201869589806499892258120869370188943539669561054654070602237585824338273986437586357611394939017875969847807878231634573652406362445943126003896360772155627387940771337866107632681582095299648795921113507957946461282061339444784220749871656303775644600376735368613347351903472809576498141603314235688171922883007211348649927206389936361448711333162257387092783159578230368049143048283831088487961447410384358212671761209004705021838892686492648564960380575587277838354418264213676421056413460640772981414211773290174645721804555628982806264533821025927596288463082613478137785037940012863256872551834946567776978471474265568672598697404622389184513652918306308765390383949878381113398747105092755782634984765537900020078255436000364003860336088433636236149315392110927251524075135261875793589034449941861163466601520110229760402827519877927409205514651315705138243528889916638078141282466029142918671691979727294524380292520756171730203086038683666742864931015900208329525013154246428451014872542537845468763528693405094334761602394460986668965581826354196864434637252390682281334693161763535377760745380287109917825339220937069644377854615067249086098208450723742682499948452613188087893992228381804000008909631022096726030066568025610441200731017256434128163104845222074147492865347009067168710983247219542907360003079412968337387685871116275895710660724718901036226286298662531901385244415652779844650350524690386706273592094645444065062094152439114591554428697629599458460939189342512900301420904768501308808532873416890736600562182352067047443671618024946257919425083735184029863173552210502835830496751551013240426483968275505184338810628180382764598138168221967779079739148822434835154462246509871196499401278837832525398778252420423674940367899460027662040240216544170189377000251419647645084982309949234826412666687147660766639680044865459619342932666500417198466334009572211205942111505689560562872262535525773313188757429500861558683004015190441753414800590822048281083185654225738329136196472016725556578250925136373099224937753596309248579051872263129882358121745324865334773692230310035256300343887839392013347007283284184872123411799201374597586505745435444636900198132991821604443981633329681291337025280367444767912668765011582602635647225202163138888162870249426580699815690991401861861204782558907301203797390880565265310888724198637677811965499460458528335778660981563923422710490182594904401753383283626317122200443751532576991125778485048696573098352516561122032793337471899564801212213729438984458692148844109682926980640230046467473247123930272594409370329873844277455604396311636276619317736632317811112304695279753629912343183644335230549545187888660119762663607011491796597462262671635511595689229968922077760902994933686949403521554663772114239519881091604745059493949581960803925352107749129156636130716830614752018780568847000684617871685086032946368822258154510135997164372059545195524758147363203238565278887130611599156382593968325219189130834891144411130283089308852809557486194806534136063568625075301892063945040547057018831728024371850255073620924147363052215157084736563384409746601674400618304175531866444958617463315179057499300995837170237274572378803666057607001957351662094936904114847575875485840807199075131437176974021870984469167754968614748692502993025715349223311058181842580844459511296594834806998937507558193733042252745797318391961612284637780575531381996159576300384774877739853074151201127596526869647805906354244228813379222123939429684608248041997495975508633490700522896741962975665420974732204438257169027377978539429204759973012342678462383609778310986969807521792331842774992761398358682175176051968028590259393115749335239412730828906311123825797947872211100705694245458726820455742485665991442897411893960229309167277406307456745230078938322637862501245740120382984126563629811709947478629545019204225944416683145467275593711171463170824455980190740094909960577417706381158948978494862340050706281020172916503681911334746835861497117926912275420680959823775976487830048300205827845065937455396983349507658812380991466466230576591417631419813966737034483046928921356100955467244908237151181730176336823255189259064218493660539306460856360612846485803347964034676371841965124306173617385860509992772393025883487483642487762977003465507000253861761501673690858369344158174781053777927300958670771592719473559498019814455805691090123288640168197073521051845626474916936801811833487806961099002662853869243454825273816607837218942920968712352547785318089956383474074592981328456167315122254840743650870689669819914810556374122949733352261041194622196041165993430930156027889004047811501417812064800017416371630993896319399951932709597079409670797167973558433596762162658301907953671830319009671387503345098323266999741590045490869770146070871665127608554852906566385367248001165119469524005848293118742101936829616799078627134984586750493300173128873096442554010791218051332256111809845252047955704507603316978513894954719549350502304737161159098191830339919614122862422875032781913567422473543478903245267394327357084282584201239008929020334126362488595339682747817857856152850278929597836744824949123373288753340117150328293317942689311746038992552626121386421303372699124388410547837906712375089523444132372415981801780114494155415656032050355507183884169782996075033631782955201700539727255195567685445510221515878840923846563410023676393729634109968003097199521449445335131614980992592957169493947538502479955483581255651560278748742211138360076924920638083171613753667161502104916477038706190327474579009807474824582922699919448397509858417742313286698320222063302750347310821059545317278483753377233127113360080414600858615412653191342749345512526323748770013151414511824049496740879368617366995586161327609721496504136248124399924831691830795434798092388084080213131167781235867613345431162741190995455746825005289111287196649843233972169475283277240086666633272392925024584150850550241014346541601898042682708300543637246755956025235995985357894432159249886817596818008031538229425143176747938157419750987752702759617158434206087577737102008070215247196181458317128520073002981367145526582133306816154895303245166079875282760137579656930932691343225627935024901508160849072810567709727050376435182840237060460341048828876063505891032400969977625671718471327403790090747228723166486240472533781306382290023027839646510940475071005940219124956457701507478071784434401618280630698968596109580834895807521143384053567662153395809425934790300828248513699226901808664137845378824922978535960865844553908594587567262791194771540400726800281114067752047612569496557338342191619927721023162578273188990376240457965870411625941507255909556861493778587576587949811858657963725562601114875623053466458185646326838509617549865435834082210486140874706639498640405047949509110151538273047487038472897099146476025443819773501709760971047300769701017355810205223487916496927659300149991981118921550089352259660899899305693841555902634489585246858751876069917131885616952281696467845992284146099260561123493472752950262614993228518780204570730013972680472209942053371320890922800796782107436470217580387457949949599965723072042847678213615788246777055471173401741703360035927497197982659348247944678668718921588737282954819566826265348061438906358533949201743074023938176854222609922673267923809195301464022325276616104901568143822918685980620040568968252477929217904183541475018387082969021008856937120947579150918686835261009246776105176752675086703304767565306188612959899922410723640596264172788333517177673437105071410632865255320007302298699078301606839417884917331485124001507884541887588983134545942961822786732261867868990044680852433686883735255843953620332516956975522385055253838102033930402182578631773471936268563920311573373196896350306133738781968728892356903348465308597295219037732106773895468038005162117692848359251270058439601867173633096463733650069588032631691700241249138347963200171263883273374879156675431282898345183049045923737967078042982178731061713969432473457140995327205563377514654535501011747722501830024782922416995426645702526560336862362670143001740510268482229745502788677537922874038618932148465588047140962506608410831973018346733174230509759188056336031897089556991939154600724583055290827451128916418574295674684566778851735759696883050333488807526006723525938878445506330543151664707974490566390773092602061569995251212695101575054287162697594785892593331802764239145437073323870220926477047558684950280080362178827575776596999091915524165838686310000508244511907363718267870695896452988328902782850263078686484507761315210161348902738745024725072430993437835994292228195064790349686052541752127183220050728986626981764335694600465602739082603760403843954920387628470488769066416970868556818347105132636221584220398177378582519899766906928696943793208532299598457381718522274923179307103970672339930412176025333780908112470300960615321825070620527363153303629418012082099342825441232824930123534834496013247290869341178708159424555629788395037823796244132213750454983360286256671309721141438505416834312094053754540875194921038862372213649075442682378534852032714646416526067861147934928494167453405155142447635622521063712710297908287367928800181044671759334416430187558516533961887746804323353669572055087019445902988157275697981842656373678557373022958307534070170654918814182373105010261555624326444174268453127896949279526692315520326305460389794116918532276695006826537952834279935671468051828948241457489534545994347545036204079173874205767221857951766433160216308045550079192399187349704590400109316335450385246924068114927431413798140556411467909245397238774295676941945525588375264493220416775338966287192511440991771580333732055618834436913083935205804939657631329520294554859279964476281064187018365138179691953387170892673929949483344940065820697313182276986189778047243702415581017273255596528105424490597505663175614050607730934572268744364278544732985627634943582226858849631377297564108645401712800153046540186624961997017067757318088784046562328981760519895887584572120436728319065964536615441228419172665908138568703542950442245333039258141985702254346042454009681719949862792502592703332838489978663582318749250189419176118105949811892004171152274135182928820507585562601995060694478817054501118129785068430113226657316440299739895915512147376350832508118095245645336098249017359876587707750986197539903953765636230431732493128578698651998516072189432749480307722729056362955757043285562409349040977965934906168654289792165399518138781619832135548573323134419384300918124840400044586217258704379093983748181339508809890530433357136396480550756289645906178980936390744097592148132626710559572050859664723663523194040454613523831203366102085131690942220320565297267473021444085879604407376209512041922882734963376362572997097704349738665132277801420641840393632644801067436282168214680212432337332694116847576067027351625039581129310387999251684853329223639615323267508345786406926410655941071734436928834018785818175898383364656781377857677008028971932696212877976029500700994920704132339062310367533349034873012491498090204214275859945212486823356225614935672076517009794108231671709425572071964054351483059034757547997396258965630913820245833967891624999801050612872179223520872796527241370510382099192574986072042200462800897700070669066523930964186885719155941363648361001512370650477649683846628423161043496979134499411046666054784569395842024363018950871108294712383801152736403503978973857642097308470796724828929272665711780353319777931351366259550227719910431860366985544066795678625884671063703291439472660478341646943783624877175833056189525420679151300835039361369141452511719776425241423604739114530695638039547466693862779997226596618511262325125591572583355878507907099801303752923031298850366896938368320009829792273428247126974347954129812779763365606381852498602879677774887336600490699117536303148569623445984644785953834680747400625250120933333849586577504408548243222151088459161781719719904832500369283039355451452564677262058973787423200846985608869111077647477282514495404438443849269742437125619696567051225862420088369542652723486299603869548986711775421754237451451675537364437269389562429260524093795937207198354888020723338246659667936937236474577747446257282555020541521757942402011376499300554719875845978245362286433677365057834146314267277288874797377472114303435080689786897724388752505372870038189353949081235365967410409227191970418920792723612663578540231468875640967753883513834900835605157299216756800052371664375856921706425156721512077377614517495484411286706139319550331465819387483066481433352099363419262116326726585718140909012562573412035729903278891495754920398003630919740482022571461813530125548975028538040279703179130970609565776835624610057805055265783001081778916045163752569457125818749430002995866456083250962739833796360760185782857230956161883642753580829786391512011576804891306325040519227207800894980664774957725942691699324081102232216997393319306996770587631098711798510842207397757863530967954873542270150515704034202612582238582777383012303176966580678175428154593023104361558797231262558659531298955020312612687508997674255838225371905760187928665150243937183120798969631766275336712947892756019684369733315531956348643512172657235898193337958831277852391443324558781301757453966758924245006951849744192173317267682240559399999070536782735564891268435021841975167657826132891435699582786600794990764307065825214170188706084626783127103852536896030595978735714828267063962629661960556231612723638443373271775432348946374216322874238128803797254044256336162151953444870421130690465722408080387923768616065424924999987020862715283770494604839594182399439891555857436788696318672535502963799894114983279048049483625271765568660561888907431857482586040166516539255274840681727691478246069084956551569087956258934942975420876061637110708986790819876077005755540494810361192885185239443137238703718912576982050017883268552741761983670976210465420800578512060633421189556088045443075551747430284557296544714500368072397868202102757182092205431643543347742714719402560487777847482799289727521311749968712918419551825303136551481389589684390862285471551652548203350281434293414300576423017587714304589204217868717332678835540204776087101301552159930785271058196803628987907392753984179131175656066275838276550930873880160421052654157647279980253100535880388671787261573939806745376116617429650273841680936095116177795295764586421846796968537143131754442641436086542210836048536932461215612948751693059152783830749348450071603168447530091605321662312644896017517677852503446305714158825211904994012525059832550369219660409206077297160885738772144244704071693420744821703737280966686439550807229651577007884422516027756975817062571143021863758633534670287235021915754452078070743923624983085016044018165537842009778162761118140566505946952821832787297071551832692062029080050933679369265064201026327357294019269698732135696781548433009343193674818009001191199018449311606502653223229846201100372222140104640440851685253586697984715268224559395772583835555697504251360496150216717422018309650726460644128030768134791428538572285397367153766010583595542605064419270261621479350462286898565378477417379067830508399633023272187203544559511639649518513272114610266133346894657293300056934209902660022318467230297118740541532316962392396241730803126184949557632425556910410168220458118353095453457628883578552136030089814977520310368934442061106700030433341080452841271039916427402250466311199304982322084342899863957582559299505324409020678394376516455644228723321476233658983567428792630214968662643314767567818197343328299888277698897176258471312074545690976251030204431894865147154915456553230500270114951971519803761967086770549945363402573464810849016532062674194688355829999535968713818370362626240469243311609865809620459558243032253312459763303828726798896980866735733264745195475385070341817577010971133019407992297883384092777012968517890696469536974149921516945569711462332246546834983385299990427304624820568362129180535217708770202662223397340304750801428449718986349606037265460072862143812004616966657455989779619599410871057490900063478848874135110481074578141826688819575792849377193963525367167551886509412795632623972993697904211178129316571100754184735434027291014004330166467194393441910797669683753108621877407867296062231196306153956094236516000740693170122551139799480049847494685793250203920855780151714813543907520159896108547995247142765370731446287816904384335272039042567852915777709004776967941894482311461829397615698134562876033858705906925000503650464688811884743728674086663627818189117434940777877486378610516020512468067532314267962105982226760035359119506522501315845767910345130079939168826150685700661495531179521985489772639489000583003799926234439486165445750413480331688388513223885552641788150709632977421360702387753072059206249923267365300971707169513588689036795686587842633141600023465930395076771993124255569957617320297789458313479148700349795948995656212384575792294799547917714239681212959087612285908260583858582158317745630472264417314088896938121050872241484097442618664357211148465580517878170892222592482031738679294347208448379160601496580404646396332655429845088346782388278651154530786597044907403191833792563290690259184811373627910838150974118010884300695901709462121956278965855570690690842159135905822949245133047335919269821077455501079518588164288402352514916771667416735290566555551659860898297161200011527089036918124028363269078564279698615242359439254362963816498670846323916590200393829714467376104289865801087171101587044515560881714617233827466666457007138395618300671323847067834798594046620527168620575055727251657950658724636391137570392418041505602763677405024851762994111567221695041901085244501823090045655619937071895976351250361121506830500862709729338162800277429952988833076316479283061097235064269587783123999006274584153738631814015948147885375789365395691598936461234655650580305939985722530791776561247605630712864579113508587592658545726329375938849402665763942486423496439805467041379522999126006022492567788870927368529259863760831077126826727201249822802619278380251529478905532476640546750605549000344696336452105394785573640874468268445107145665231157346951558247329314558201571329408609315702176664095010185490563742257846499841992308444533613610663569172077744648258016609175866442791444535190258482734683937330797328192269105047936410465178302234763568880678730835885394525813616698153580582526170913603046097666832029884192176624326451005381446322321209528804000738891682721621045140082995642731322824304082378674793622720875734374285463560647685792869260054165446923639322932582285898468804208612425517388174687776006429919167421410380471378439883675042173173267830035071600009722976573031152129285797567910991980857388724955509317270548890260484119486407427323159996221964165615849790802353494353601357610794622854700572492946770877867207515083462331978167036283533826084732543897350204932880952611665137416089679851411039829731417341441127310746207615579233373080263178145807804046387282327934518455417479900372073821388470385523604225783064641216747267488414052128300097841732271250974465552184077493643583793512173408137436386914705637589920642501644843254429005802032463749835961739803912917446007882937224959944479059657927191360511992413180687837332247561194719939293830497169201989095030911273985693017215481195171865936032451164140670466035476029638425678655862907065743053389142259556913557769287492760604697279893347033817663708362472843134791733065925835269478564244209969471877498236804623666658668057287668962307606507542143819187475184612259699032177289072550813239825663172525763815380303749009937049062954813458887173647151697478319602786029149846691596572620819772700235042157475806828107736993559121983673105246792920804885441121745488831355598461370137550745136152064012176550161938134154894435173821928825133751403761428711672144746378530666812921631395875783250688275338677125722278614821767657668997540933956950711945034330049317077575861412610080938410252825008560460619525107441185055992335308732380018866662021969909077760638192166374977238061109431064765927321097575085935737885688302819088251583172501955593720858265285868243763816199745946096474682033809003260719633531094848865902578263192646981248845495072903012636190760317687588815308118352244757934901215313498091954049252144924800986614260179561341585782269711880236199535990312457972463851094071349918142049786980105000878648799228317733552647926246294180649853494000269014412064876800556801112646562811376424339431288542880581226439727485301927925412599255687870450457960545937843656084296667710825077165393031053654932847851765330163055726981281813547367315406254065763344108194155634350959412674592833995009953148295132989594829699076534539274238455350000776343466733263677704395638681509449475696313012602171137736687732720759986492267509321331832602380946520557917224130219055965914467739980341039785337552097721730475190861508451849453064266952706920202679658868335889813802401457904551466682029297803310437551196551719284147790073329402212354663600211659355346951441790637551852504892164023271995697405648629188664516578808735518322715760492495006013833855404589448722999819387946870920658969617123848331374614854415251712481647247829885807751686378345377204019832593718938294189641766872836916581227451474385091364743320588304493034654698135877304027374089709681510923295794656853164376692425989406080979199653943007694999336595694177395794960223697504430277413516437805639137536015561291357406727817712044402588361289334989119930852607374242755131739706560261901663509420796964289835870448588672394855258305071892093023559469911344525361447131572375199186731166443907081346838498768475192211706493936580942831714249385056266060474746508742708391561935349770019395784533285436814692025778854666642728537308189891217247531378469850862004085735143548669222924464325007831429740650417014195438524712803582493202414022519363859051885364922274322522176946098700201000182750477741134914159116537575579443398782346083743729895741749983051192330460634904952521302920904896055218362035425069659315743161375779968160021044500766357443482711788244942200327103626508432641080845653028066091623479839731972434520344188900869688131658190740320891423483232785670774638854792675169162990928788080448756086326883946244628875113288879279148851490475021663140826399270989608295528776766761304314102538659383023989694614645331782905117191812509925427140993909050874213304952708868333116627852893276944729514059912670358471950499963768158208012934157622664576296829192118228585242175589893358313583776062133327361059571769835068747899108641105027812913448075978267886159634096937622792832544844475610015536623680996547146439622093730088915152944907761834228850399324079441287960284168040641906470443141141273146387017593675501505119599402146602898053631413256497928124822155787120847379201550522121275823397304862173156929186673373936375035066081359314329177393512938546799162448465051249645949471436748811026849206743114277297509966870548475757847401011520616559885717333092031719136320552112305142303845078108794679435975016259750241433743165762609063956431612578635008688775267656042372855243943074016021862254498872816359398887701337853116288780962904315728767767447561894794157710041499516739210687360145191555018155293080244120349178686015819447973805837772704083674643987844103868595850458899276153878121843755473803519773441199185609797559630984375050106258146232508702382812215587396757308594549966783114884412684486284293014924651510738662083391877621379735221898578915082362589487881296676787493362532247491253628025366243675258239171358043761847605138393989214690999432082905311463218249454145032385327907573744838159683900252796569541652012053222363102558123061392836379448820301342174433882538001872955386832596527111263020105551449530757005680861723287891837453519263266944668643892150439451749597618569535430419221891982376480920095763952129411422476256505170423900859921474244300712690890716319529997169106613449549410964068755030802970493800434526949315258936826593267778960621460548633115511505221846668113876269758298663448172728304101970397537845355685285854318235492144899490479798770253033028494251318675036370427193040052423352026757143799828533857886900573081558054197505772138727526852851754416068967704042320802144916468564750624569912104472450021537010094213276170552511206087157098844836544606199988629128823613783136618906204415964497564641502447131881326614061771134003293228708650516350982700239118868525133004523633785392062939168924876592156354530829246172505125371408729292962981246567391951719373393995041784821574953988325650246175234575889385813759813310809475809176878926632586365547424310843207173010895179095462885959220665533560703627363267426442265928853889657681768155973499212165836840107912578969623751975656781476814669629457384211103319088056086248147872792574967032367143668917747027419110807155020559417029845308757063488128586665824217072790091920719260525493526568027950594349350693750074103493043432198001487321418075002938959787486567583921711577755931515551759055572567482452343405279161796777105582252642980772316316094793837890464260313156427044572412284311658468135098455568448588936621267895394805100113334386851485739423416072453203214327621290603182275623211592448672844944428062491148825565408433078720499184840945121871191090516666979854264607700119896086221237773432593012719607133231730790058192308147131804275631706304677248809413704163399701062571811114895493517584281381065924700317458422530788951884922224532676336621119926588412609408970190602067561981903829552146151399985195868081311129925341844604942413649240654804016213154258682109671574985935569239870626814449476902103971840240003491431667111021763567568937508656958303987188737244431331624886359193172189667814468236520028448002978214473438729200221941063648548058342607662308937443408381287499416495713261057304543396923866414426152496776383755763044429838092992334035777896090151709068817834215459922525813497157644069693476053137342750648161404272438503862917475372828273909737161469452463126596735429385695143948106037211338700916219314793224796450027852104953024145657808949533601149986686612740914704223982507089142769437479513644430429422057932199861039988561573885701587607449899365455130274231749357632655272580215895044352258644990504640276629634265438652871986437465144713295152188145371608125443787449596645874478762956126278288347648289955206028230204783291820979488143523013339319050633210641177591730798427415563502457904972543246901046589206375555902589561948077309016662657234841893702080846553572564104698277674829276946269318412154847285989977506839854343368764298661168505176320149460658457446049972804258991847524880566177528503768708763985951684929630468286184775864993874885120563954609670824563956490197048384780611618872293017485172922094589409366837494060022790524448321250950721860158902129979426150550032557790834327073330322273290025525019458816813382787828145051850007563413839344152037312302581943577971910917640364853464952905046486237192117771694083140175257559322175385871823217554022602695236036534279465102764973968415630281779615249332525794872556041076415805500550113340871797920671223225607712034605074748094713517054693797759233138387980425147628696249997308060585021367648601401785228467724552902592403280424692039696681932282966077227870891683020670688202223011901045687850527161785255512574123504273800421845027912552449475182389810745388672865941158443368187521728513671096227941718519619772838940915142949102045927558742548758423485273312503154295969441022563135027227627724890108217253859255402010460471846622486910679514047242388086749703840713708851652996064405809095794125624808727205137353591522634614704511945338840802912743272218633159619067745253945524430136318698070181318941619536552953693274061758468364106449785898729910744086442451340895437798368086008821366792312421596987520016920860503930537443499851786966416337591821620736435316597213109640004051893467241477990501497038930692773560906125706968758971802766445750276672605807771701059231201346638468624155908839937887111785777518623857466841950367351847334338615648480561779609359340045908044073605167708819424676448208916298429653395100633260455347530715741328161786418363872667525641956909527065292988536478355120734676824950736111991110108542721083555350624890098366774523723097590582880527407961525230189326450831603714243582897559529319561853538744196877649406652433132368867956123012219656678811594137348648966128478085683760154079475576366742191484727226747531186911403859277512361422679260145439176031519215607629577049424534115560504130580088377950612657289922797014458703711980732392875876044045678685637099866377666209708130842998937099819347555258667346511152994807112767637929702644100625843127448027171440827043781940573254253561522478377090822664757393142304608508554747739980368952287549755733981411923509593260520116545417644689646435984536625774896015253507705394845927044149425016196616423320419469807532619048624169049952518832566115697356271081916922048406255157378884116894302514046450121792958021401244985127097964255806661913697574129965581793236896110430737543716196591533590375475403940323499579924490560316838503788315027972952236758057464379957865864666734710675415066429928818794175899920681493182237551991562150728144088336194590045584695516779905429582989169474904499336236395153037658254164134713329853685025884963251043220803320358911777319968456099478891133492267683931495236696986185542778716271400779806780122961388126810630150922816380267668647463870779406749889234872965344783688552416722298699880823279567038786522991418452423394076672485358598656847273554364360397716170271400739158549321372321745122385002691439512427023385889604054678541748670614001279660429767053425879979746106306935095459884270692639542830082440588458213858488132402994738174225126521976847273988345412712104891586710751809745516762434475129583598413192777999111863901555521187788010154118396105091861542689242565788716055818296953249203460242816164440594650745319641305443777854434070487557169280749915646411276625613992024989131252613177840378059791518641520245931479125562698745132779869166449101766629069935637442331685942023248317937981376471481068610456449992152902686563121752259452692499587254891212279067617070229762535049639521330816862836674117021554661533622259369590525162332554774515284351396287918813778833246405426355545642977293498126657694606441234503314497675323158703845286483393714791157546823291159344273594662536168387290118816326021318631321737648130649000209761690648890071618951460340271678492384592254365175086271861150741495242261324089492678456102203979180325601467998425615943667257312013146301448710489046752129432587795202863680190409744610716867116658898108008275257583962129386964553423101084354667462981804446226996036106356450546279350347849408155491849849217313071880174375436289184938909049620068857238723839384908067117790988725855877253064840545249170373645407824053094249469995769892397753152433166613068539301706589630520083228591374519428255399833795761093514245927652790716752503098051098274249367941934474682204838681552435950055889111194721460008245340401331375809998950391899148855102250400799362847327013930719353000097833513726444993958558019486508780121737171221312170019569732350753030807816161004428917147671952326438898696656248688489134146777487256673793419809740414194787363154079033858508377656023087700583626492287607360494488633850197826776826611109168600382229963664910138666499323243621481991163162395599981622523318848295575598069629028343687898943159225271857132941984639741680929499553965026429684372110486052804121228089210207245854643215083378678220316901322844761736388101918856422869946784992477585033281091448850802617943749221439795001465276450907367257658730540433876331278364783819983498290979085542381990440793081293631528060181642653373241197139610243763464152102243260419572638552756821373805391606658779297824999570495198663974444049152831970501702878900826189788725021027216237007796038732145139242376414168205891360839683364275277848912565007410824732896340793978334260387800465509169313396052177462603111872469942913728696363271490069487056836129116174279568330486895952361269292359808091505450135002170685137899735713888492708414779949717560064053583928347998690261626699526536629688542812389114862316724661224018934627610075912427183370427494635893939477691849899148961095878722144471734543682401355928277133260630691211095178861196376569943741912597847666861433768060956387973781947061215512972631132717109114450516928542393075790023912182305044613780596852200969881469599897232775341567339646203707939465640987325421471486146393514791278543152790083070967733313404979257415708529109999689089892114124862445444865228936989939553467539033119491750445623536589490318129910928866505053891058954596428459521114491527966368524043095426993742960215737198501637772194371519702723510999925498895029431342941156001801564283166648011229605699715107921453514795277374885454234429265235767251810151258063413887739048807947390388535385318364582424004321367955140541863350034210183004858996729287700884193636815388745996308171665317031558670477058756379402477460208848483943018789151573679621337084633423469815624704094205824268290725604633093559299326900875646018421357116101732733636314373480319645490182180814000504725715085326650578468525627261108327427345085103239866869350532598177204379945577955625741799956148828788778017583424746697317485230844646394720224807226600219594208344312216966130295797634174779863394714070120625800620340792022806445529871639983209185406359905321473925375047985149026990750282615505817308395101013278510863940026064401273027775723747566273158737513135774612942510643261703525293843888379013413647372537892910361514608461630464231051196336569887965296385424668467599212864757074779221672358618891082192476934165859213271915115717715796815579719680815250721648976643203361496613972060832819810524436641525862678207641621914339702781023713743278419866484372690565046853942917247541108445626761472713165479615587681826838945903258075214523978900236270464376759345146092736864526870246798735227942438987558652290076303530821629496725039086907119432575587368393629170367570628493789143582149000051169127279992936627460119183911421217077925178760023387190180149650798634660573033975062200614709380109093856469770969353309106540317591340421143770199141068222202374055269685943956141422137488271105970455114534858778367419691981425641902296904670955205450653949053803058288236382450328155115394119259981935383288609790336960149541276432631591525419450574841677485859138426643093105753659884680283433249960489572225676296820937289470881257442847432379290611788923080810061692462066652748016086266490394508491181662962355274133313502238590961172586747370384035208457239063566648432274596271192957817725103065565368084210790104139016207149605415342872148409315580982923127665187818064363511107200462393596993874338592435636736357074203326159926174520752033327382639636078663233769261485292014709701469523439964010518800444893846228443556115318334053468870324308887364543287337641473248691521952298309159917794652242487331137662935335958408877403145875222210011936939022320446489430482637956595938660683809267236282540140324758931261579968074857513741363933170530672214314920148018775743862748117914128918012604393288702816773136891734299471046701751183792478000596544027538566413542381884629960479585786782381937167493069020247711605062368199623547953069167321745019938059190840491159285314325955919440490636856958467866947278360028911399694761478408603263836198159645760529454823720540039670983501752808214266524520947519810173927071194893226951072611493306730897619172048226132876482060158967795679240200471021764841165090061091499624786069204818285726404081425710470823381274533622568483236695590106574356209915763412746262617017341976420447448415855418110642683507966805297416457648906921819886474347725275315853580978009562839643758962095190570245631648679657650866655944631348508281411063771119759371682596982339060544686412899950782481106725222304520822826000882031112740443884520515638471117749158000449958206757483352476199774184466340150276134106368375113383045168010513926423589840304560987096489474007340768409482427681418452165899772264744169429094627493249434116959011124774820889451228906143877697089690510118303558750900188450604041628149932399539904869029913054787528180462791611584012913300003114381740496063001785633226962593469401740714586744648414471936734202272594106104345004033839454324357242892249583950103956202999742460159836957669992848433787219085183180625412893460454029831905784838736707842707461454834824871667158664141955681701477374648764072475834433006787239251193711694055245786942675842776952110174100265054413912519874297363577379991656711690238177792316085530772012312313143739084758743476646239425868644195055012661106140131429042638426540452992249580596807675152075793561439523493253405250193033356073318307826207050068149009612733288473484596350206300728878527609604307202032937912070148389260488831085715836296157912022606303846751951780239197707470442154410414466827018775330496606498811660574526713757789180893846111469178969211924615807615915485195920654502949432331723882977851064411796191009921699594763858734568080935596562013712225899428737915149983964059429502311364753771239130160446774189769627528679278201639185366323222875052720107843098187360794093155967217091349945502266089102843149862517943765533414166581916792168224026369217459704710337569843096749135916156317139801098858928654140152272636529435806239635284497043174803809776314192377621701933591247988876450808872955379744998971110829168327888570790010927129808459256921988305347379623779507945694310509553754653596325125398553106122203156533598099151018035417598550895842236547835439038430429707200802064292845159451295771150583440314061771084018279374083539801757399969693199129266334663947993386760604654788805274435428472613265689002591662427401454360876259554429106528821612124335296191953910346704381185792991107758268429250255498070545784960720157721189377400452463025507302569874338508906530676471891287262723734879042526966989784011016034849931497588948001234937479391101806493356062744128567462214966219205438247334153590719016745667332756085871047874502659701453531446988996474522784398061300775147765489461088098580088235688595454735690242627460603829171290270184294887674167144448523449164827540161860925274358744361272729169555542634121404625410378734669223052564292026143489309910534071193559723884729918604725838502657776307327306520183429048134205042786970364495179949562803040721110814744517804780023004562422057498768375875347417532868096486616698017886189623613074013838079735218165714497174722499875753154222178905193544947999893038193616389390543276766485605324046954223585241602813551415944063098733837627102465442742735329386821252974037304565749355540676966021802978733321596215293444821305071380221444887190281651832670765426338073233879778045287623012753489592445071904948241759090151909801980864031939078587270768644701301973360394855898440812420931096886814819299789150049778609754645043670714868629311360505649051174388470040158103710550179902684375557652398128416789596721714834347067558557539068117159752533211619942434081249070770122809909561563988884778861570551135345377677104226504728291274604499580912567992255784512602134044274298194176009969559068430818445971457631513094656736047471249500128136592538442799658079252803704960728981551479217968184977026509888172070542986002598112847160145732812745060455998470993633735798830800484283266511892523478237425086851685040937084922723852143103878813752695970194633335340426573473191344244795842529345382494242424962184426805754439261218441513769893459063828333850499871700479080880977627713912036298091759627014491288764705784209176194876298651355848381386298029735470629421473883545324586358395593362532261339330243896157722742689379635383961853747124579139251513683287553257031460679389684740318395450004167894589309204857590603544320367171581388285479825544065591089616476356808068903457892408215695777912755242662071620687014600324850028888736077883572004403982441833972411770516212340689541819592036350228934010241403894028040781034108377627211610928589801613969599193184307539265737283762688276077362392866177069130838767423167243774859558579936860609309308234797230936601627158089872597420223661952813803043214525317916612347651217445116112928179158085633858198507618757945009164023690677933461424497397307056596926551712426256685003499993648631143321294789629308634347761294954664084627991402161434155656523147192019881381361455761417610236576909616097510240382176623894777511659098347033287695310134414326262109830361798039518798891793047625959982095563468762208202406891268723283725234944449022694366264930251510291174811730098002104238016076148097554519031875980240385777373568111622792981559337747940899599168679393511472798506849595585736765120076209578989673148656715814928965351206281924105793637977404297621939595497351017325984449649169686502813301203141075262208737336175495260350593562660775252351946212224276549624693340719012144149222122812681086935426176719208023811288659811321055752538735774212647652845978062045998460703145403175994180960361897594308575856054374238344838384791517263187540217004784418029681404327675376179739244089671837905704562085905847646828734610947715027956684858340914567516323248495002121621460131306896115846225125309317304505930657690525158321245423535447709326477452392818652785368704956244662524277803416868288474175175675951083149653252285981837989232962677994883586739051258166560686126247307675710785501606469121435125081151198225773777795359092368513599310517443925892994413595337329875512901155609159936583265637651275809349276759729473290577811630646175372526614193922781629398091129679582332413255101886370565679946589755854788557331392816529543849510820823057111828686773129421118418730471799377253164975382187248099867076361106955730314034027926474817274592218775087722812984710320441596550156788862156800042031483072583838851465926501182404313192191257345010998924455935290690382648974781675599083552824629581245501842663830827677483461242502139305806694669379008548795985314862351834535446584043227503447834420478964384534715710284348292949203198133606564910572416357446273313516121491122788726294679085037249298726324700247601688198617649614555967053102213941551526602400752546949385850583850202142361944188744269006892719936413737383766064697784903540819463055638553730608939007553468123930035059700762979438269338428147913541427584635243716496375383139610266650173753543313317387522189923963243920431226421432827853104801321692413449572347030895242054317397741995009656226777945400437257645258910201622639353459490496137193098222651215194445379097923698786159242426324532377953103767681360177618312019939022065540254835733097486702688896271328508943537907089421231518529122888740994527628905836846262477452752714706240393791621475138670984172131133904285726309538741712792237850778611805974588808756009983656266442274137774543636366186218504896511896824081581586278540414233566614763389313241353301019747395244669683419076963859602243183856969064456794574472534366343992757875968386545342843968587739142214375356144533401954194814362539050911420282612722407221666727866798160716733439754093849432579465144963369528628538078820143360732972216313033848379080399879687961036416168641144366726580144717349347888131042236050908495291228554101227587384397768804512335935853517963802651118614605198025179182569270641971837578157534249024765099362127152955388516576516194598371512379852681778286865788118710100657242707841228005926767773986477973103318053861586389847976310727097641511565386936820741854653164955431497847373917077972192802087316229896345820237950373882233992010907303331979233241089829434156081636573576492921740517307816778281948714321746503982633401532629081106104033214662130042130998656687853676070808417880737264970587114061272620368685446626321535093257819446868969874619163353747120711696577000362039662174260555328282596838182310319812620673813967954106287743855214032317504931034742235695198755692429377966465309706544066097119719464456268832892758401084077723443195189603032050867340862257616118596425041073786729810930194901835804716522915006221097612154274075079104247914666409887439038379714440404799556565443265190706605562455388470633449375490832518532510235330066173309285112292902335624150759542899953725447115595567604416236069627991135814099647987266588483904024411073888084522772547424632324838124609721658214536381399337832045100970002453326460567470054647215766935500108180218654696300432970764761395631549366287677826735182595973571224178987544867354793201754667457681949763803582064526952231652415514098832955831433130473031581453725999669538956037901827758437954868630670927177144321283123223681251306241205253214878767838978105577088323775880477902050172851041790267142566563498663076573176338166407158177004020286398507894502326078749374113454452898197605142647771657413162969458561635552865396906484740034498754960550155337401511333416723473155947723156580955742926375628109714334089976389337634835616765681781833640839440486071067120527042061130175771911015437743165319013146583615476014978250629336807782709073203283658900153964191543835222835562730224945974959050987239793177350214897944570132817913081191883581447582500911713103438672662753030808728513347646818470152574737722911858670907168639803366987285838491357799269846987125316667705753069747052541074727289386776203194361990266017215707391110376843528875115647159143651029294381982062400037673414196876621718167036044968661053501049077009519124905265094164079540000780391880485868889998704780785091025343956195288766434893971911105710772825621767055775414202169140785076703070606399730356967692941437431091344055107935154951475608139765648461414875461611378003559953319150005646364441427911538389278123357066545249775200354929872590387069453369446384429917734671108163446158261242079061312814690677439964729741887395422628833151851627461505608898040014173468656980610011255752686743309124944542074873425235112377265090136640805825720318401700287918347383177826890329998219113461730262280074905287972824699390415801133930112766770805135510448055898678340839832508670241108876330299841914737455602862789806357530633685045628284053746905126650153064951358654621548815995843880315875947286256219917560389972004014879605144356425377816730333037447410159671464518488416396259108921439123628201466928544882396560405032276010242553488747510656720640850142425716661665433102913164112625117673069374367816309739115251414825153858614254980089843311441621705669347667692354601260148567817287637072566213974824759988478547061602020020902269295592262075738167982461732868204180115612757084625967794348386484843323600963166041565316810562555914646683393177936543321336341379691990927597101367539741002555978002272192886362298657698798318535557341444729737170037241628504858160566783673841453220532130921885525712610699921762487447603440406305216710738688161094283858959230341607381784891711328581040558929403495377818213676420686452613891264473409922479671922604948878966493311823928774572233832886050053645413457941574903285904399848876665741331989007653041965250780540251293210670762426195792496807080412172468088904400245938410015214995242061825379719097669296107546214188294977167660808971963790933392033773551266838488610315907178998159122511454872082493120158771341572710599101518412140706804101913273831584531822430354849308666440141690725787302226834194403308782722828379073549375053799255829502734407846787492964267534625498295043625768709883949674241536792782441124809874982051681217582043111543351757496850800100712202153810483416392038894005389733785108317153269898512203799423942339677403878612124404290974029139109238956404855574875945376705975375172630713438442948120198085564319650653266302626244973661883931739650988837737108859458532762940442582920979929091454378250529269472761763233644708846730024388589201882632586599343702673666832369643503040242003959742746183428731091275403092347437308378361121576522420032312509228679889131472835658922413690816763297136682735647274079289745018215550080414529105673713527891761048723872276650065507265237224131243488527060126304345254377729099566433762955183644000275365408183579910984215337144591639709520249367863636368740449493823955882998661329948724719070788020529418609081998142132579728867679607745999250746677208253961374214825700949863011665494732270677787034063585839799203059744162416429894785023735536154827225107419408877037510867850800675365115561871540763986327514227133923224342453265950951877815999213461024342167797693298141737861292756860549253037053039845846250489730504571681520722828540931469301802506692246821503575514359819427141230351840865782112780671344171638729963512229352130652920178968867096002746990550507253282506243121693594004352128519410454964577789793858014031612728864139382443451855023398102378972839320706420887511518617195577234353713499260377156363313563087426240102702495280734975691519848621087786955581397020068746620820086180087078128214480108021750486515467966703354350353248431404393919654624903652224891205946794387833615413668145984983770492645579882628766490785944444389029055582181710314129973892008715812119124923238979506109724111208469916103792875643568942146934376736418519990230762394041849799722660041544969820328025602133158542813665683216750157535773713507465101627391188186532200060473330745391774636273918371270433327868194565739740487293578544407456373979386707034492424191062416715524912717148632653278033046465838797674817858748511422063458104508532086334800861006703774121187810115433393933042239095166282601760828465675494130925709528667416166484893347758325517288040168043042574346816839267257786870272854249295460788095588549964225806894043616552595972410489805253131414593690137062113516095316120029783611202197113480664580879852974791105968675000192171814317277058392843877404287528354809174678092113639636751210242587044768889936626456393773276615043860509450139727721911243747139890446844307074288432147907480275777629215967514037889290945773952371806697922859805892843302440383969067527918896307081545414719413103056916236908982151441499851289049979083594458149039542547381120164151980139000759748417815797645113670564871034535406613089501858851863393199807132120733776757604840841840724503149370640358649871801992713195008656924003102184897839672607975386997064270955886726147459242424897158905411441054693265382339898495938546322669587850995937256446523953831393608747386554775330160196243375656277357724079854475056176121173253903834457302959666125550625249502102477378654821755574502712049828758734663059253291474955859022117569392662862691724748216509859483943642684598501637950835012825137490992898301685161044408651536509346885828053818842534469764093478122227301436949006315896741423818454677439958927527560332828977909934867946354328209662048486792467895845236233023545033933106127992378314875006607095573094979672298546608176997670977849187433952338725579097080598938504978035027977344967005452727502715654671469344895788641934961686328447938130706524979586498182035919876424701218756818090705587500334640751784146576887487282821171051833129872677310192517416625421479114548547244746805950191768577818635476606226092520494554663957498202117707144634503531278353709970126625311395387540757809236357061382235665963670022201480078416614706867876926978505410128160847446144909179478255401726619266235860060502143359155225613742398139008642252700456909604698513814580879553752339056582497330331295821475625596007980718859896834435879240716502068886932981502496611782391553789689620070071513204872156774546359723325855916729569565994200165003791003539218623456280299145544890012659404173318293928299910792619913340415471770768919315720375544242411033660755113047725854404636883240151115022726534902478793822925809998354612119948410544160615500474016326696979247816755456441141043609000831016607313939791018661319661654800312595419192605362820037107360953526639450947692654794751888739172908446936784451327780894639639967261839994278754826380482272105155158465808651469424272160121090108661691044929355233037786007455972032596233616907878222341729483274746685579956695087390452964633963417090075354702213061752251938347435405563630408996243073118137243083805218921555007212025759923099556886326422386662022070231943132998326463481639368990962351386753815834433659886915233051302312124559942664449674252029287487582375974674470550002386716272049613336369654673795021107058582577858332887627822383057442931714234397348537235066549481845707718304674163249645624979472688137346646319869629256036624824673433351025953220088157470639128819674568518646973191463904814737930561775543185204568850329314150352262898115839224287053686140531243835455230817838860172810952460895150841027171114597431083498061252884914188900230601549181862619259280701739120904451876322148767997206241850009509473003076815717427089127175623856817818683407049191669038184801167175730494976233732118448137926990560794147962317639940242816827230944984274481160248378225502626304458962331910741125425052538896084594667801944186199360866144381587027966611539730984869412350275829324887351134485570590796908415702712272342141664146279295654829185296907734214938610313642435867869162620708119642844207910216762347313319939631441249150960772851642861514570533318366703653314872448259165136676082030505291011520843116820573902737654284284831754015893564321861036671257880829377994759767432126135084598696161923958434447836681970547294200218407513243332923994720343820240831439833007001346044227135207639001735080621885313944542146463401770889314265683185274727138463602393674504287179146378980185895879481312601878068088943572191836472489348289039100884715603174251456881835248360387907431587406209256699974298711721129811431515444883002399664660438048871836813448656400911960391119599509884910666480187703880079180674347599488755814812453021495379545746924150252808327338755490514461534324437335090457348107264926693300445085405847462066493329002774056213051699785731796474401354409678036043585102386801332855990310618388925928348416641222272182742481634309567965591532616273205830387330450224379620874479124891160291845656578424528835414048093436079632249897662076934387120426279409100020721888173136724321841651495678507391198703947139146283477608630913163210362329668936256923735285911500503834333770882164173076208395765461928459684129398296684985364766419848475164402746164194125447222673265517491526324591691479018782003236043430724372272726970557576360121672155336801645910532535163126165082313455634183922513138219653764632673254838426510545421469605107836453921756672673985226384617273306152178357122481524725341192595748056283426382514433518029855813788918047314112655339909193312367934234818196743658580953428925884913730248452140632080126017374423211654066823731478896611273635219666022663960686275157096533195269389820913981226045937991456310820251645359600894158922205837413567018897796684480496283805282191084072885376370773576185805244122394064039699674650573727505720254835889128718885754754172839101317047257517256668612468795855119502050276782230299190288377126642082380096176732452276589465869644210677032586455447907052957728957418977484599160894904769763534809035098292064385255383723461987014826584784280770658993144206756609386209025976237857726620256738391767017469232493076277204526563992490978085375497693119829704090577207376638487875781981382337285588819995516008986096496134650372575824632379520003994114636946570598941615844047214241156442119478462746879597922420565973718667838486280142189820285433170050749360487647702358098731273536124795083285980133708907804801679396625720665118206239987549672770137381229269209612168507692990483462436260038713245420502184147441414356963150403216494772328014890325236753343982989896460283833103594833530646825290832084032789878723808444569631551100732989337265042009977090090953518973929027469775367208640399805618122833223560808911698574076803989852400931019714640201485425786524649809294986459259340201174013154255406005420239385389979717400866680709050054003673528348274599265066669440378279264653002607201315216820908900239916832500825765357281191692569470675160875202056311169885891894834723732381832442709704814122764943797680075335209139114967951224420695898663075143502368734657246663885754516962873778364985778135362363493757351087612983878303218796917461495780558845390988004309386496738075707075842654488420668033625131713642968825145331593412489152093073004085509980314189187257475433872881197199256512678356697464438118707405266703207642343470256237500947162617954803016804268265739250907752619257795122154218542898120734249804846871391399886322610574882842372250162194005673098938717098602449976158930099592079469908095562647515864899068760074806086647755214557597230001077505782905470116302885772861909427930128166091459496413377982168441388360511433827222196039591804537344334781785262596621229707080805744976566864855805523720072974792403560129331244055771747847847288337648948335177916235069570591476313958682908728481111635289356565751845244984389487568174197548225371373535031882475068258291419350586307038697733468955720662901849866965282434325392450708363792540149049063487380869350070258026900501785536928774318236090854849644373205078982589579485582894935134646671741072784571766364464993374776312260400954118174953288639383283011273879741638468831029034404366340633344338303617560961993985796765037697862590254539390627042646131199124401403401460195276851056591196187764798159492561034185153743072018580373218454759169832914928941164044009997722561913727349565455821255964447986520506017763377195402193415245928709446860173196712323622454148197635688441510032540848978392489439057951190865627365776905311174942804832977944973681332861447260922113763672627100581031491587599786375833034222148538833202536183738715215943076885959758518740363469905632989878740358030232434287515384627699120566707995644647086151173995378961636582415779361505095485724390030021143916501407412381929499537599209539776210426211092195254797040807473693066438152809463512475836592526726429977022363701916867283202514336683861774467087397919173642481130696893102553724606829665840894208221193173266695327719068573236926566845912861270361754158556960296723797308939475378476314849345950228838038978002307545780798120390675086656340263915267168862045902089570348017312043770694981825632391564459634606666483584438963547539352949395931584636994342149165038449828715987782603643329508748842826076089259175587386761428529940890277513265324442932809864776081971749576382143708373011154146104509311078585797441530325075777891767517851729237143426739111930820652979412082246648529434284396803075953768852881715594864367912386948600601057671685554733560253857692850070850029561405493345342811626952442677995675052006662605262276784669503386895272317207052626747191012781917288480175373068221509899755346692974297284634149006709410544771178910612494768556977546922924310801685891747377668049766389548909581596642765213262324133083419689490005388304823396728026545275541619783537510940675486606676132980275134597357104554541915599520876399748258897698271608863179196966065648938613700308777813690258273605676901974284944548852839899881034803495076876438748180363060340326467463588298005328409003913188589732047791938114086523886304043861226802271569644794636292753600939360334733779210589018062506699981753725190316606466470922686567480218137911613291581300731758672620437375473285475917232258602039587664556918046255367730668317379385254693125399395221559254516597572059503822982020171806549308170238729252440490340770304529504816345302458889569735851308239153022271455628103130775697653427188864143193243738216974609437911657045830579222745502868391195166231272639022563679805585675280085479911276066333097970627523910899045112416764963958499618238733949830809420356820998019760325117958274528675907563721882654911072960196603714013560699901690251323956386337173033396551977742423167805111104279206026478060601915311837452669692859245190820789738793646616638508502904334377560696037350393300416408315085075610053104955454840325810458166867990618071803456989264567923085101493392197528997865696757038270117000471279478373818462145159608024850529325131139286059494436976097985180529821549637836999141512113897388399178789342488850056237562274205177355622494456987524249536927204995519455469443621352256535167884792125218459827367314077747592002332365196356207370933470930872391845781373004635769571143498314028777561014229732586436528418372488568537676381879757777605260181224775413993596866846363858528784349753948290674087177774310467671730926285931506853262830961923984981454154109903662210442893187654363481374346351245892511646298097149858206908330791209188434841797808856417847882986467192189948360086922676809487959919115626994304093800918963523957435270056076861859473565251214045193491704401357773272077138680618186703178961082359015683819853075226931664843356879188456527066554245289851070106701089620124495019184859354417675262682725794866607298512802232834632519057161363620886936424534768733396257437867729447481294231827685182565472046692203810235977296561024718788105527990269459469654363859744147896599430683493253393581235830092270523273858776284057362225277996185892746644023443145404291245188757685283672195700917255372434721925151980250198769458907843745132963194666112321573058241767618064300992098095266235374796120077678926817175894716929631891183596984639581180915486990701810439941024158434391342896957957514843292075639323171344651164162993675735488903733524975981949945488117988242999606539958541672773575010940955821264954630075792701144732527088464922615285872408470307306272440756846995009712507534210475241035850424453004911037163133216648235147838774815744378064236886338218630434948002899559616472469510943929545623713422368107769748922032459243714282167851287768619803840217189277200434578241487855155196286352541712182488196717802520366082283225820612189335613495271038014333939321595422090171901837581051998264904236981393620113316757142533041646118838324118596697913384665748645149452203503761030431090213679693539691384789685149730641680077682666645938403450916494421615054144500671669444741007566503865865162919972101165889599887182282330372980839716791877130321026601483013585337903576028652355751772895295163748110150971928510905055709989136994007482813615863197161333476759768237264738620542471746923857936429402535513406666045176177727635526177224747664920099357821316696966305702342341645467078853248478443599590914803666197540208679264252267512855193735105418753907894926572636371983618534116884305939268651386460274114641382479623720807078437437561393150355496937845899721322719675271885350837715503362393952868993286278437767196432157395241696900473714671155544677769127530241951404882390788029654135047441241089812407966060244115545867553483215551243302371833529995576513360049902705656090749215055660410711335733875385261209042639236241900155633088724148625944708382769588604268800701192685044694791463970429311125315479440311681882911092563635763979806648786897737076754002324902928681810466141966079453598692943120000410563195291604498842853780355190962972161669067223440242743473970992458449695024147344138176631862915158204691682831792403316889136065938697702499307865124920883707511604933511205021278561062963633928032796186608049565008155940132985374287692770575296481735120578250131605038228697585416398485662668909617566949454038293451719369087718759232892181602328985455647262270239444849668260010678242332201179403160955329267422194807381771342295235252880057931289921192382641986706741752631748251591872274394282841757624984078241122479424602410612295938966069908164202675944430803648333505614373893951557308199475184791173216306479574050705678080706821074190908656814202647418257316911980948480148780959504711308298334924225733028760962987083427488792912625535270655945631664269909252529641334910312956122606795351158789494977293138130599003728577727486825906640399564438239096748826635923382783731233754281569856709681870522059905732288700751208976181737585632353502097357993968262189365464225053453402248794398323247929704147101575353437751211854973413762852013934685543271388925521046538724405909637645862341753861929022218898391033387211340625333987891919945416536464468908925082067375447401128316569262608059218342719031768325663662822176810509614254571656235171898529480613161474794115307122493458919334394947018208702837369473501450243564349620367138449418149126341678185979905581434600083132809060893332743640198989091801662668242390714491797202063029478713466982854297560583926118101444951352477354790064223357944477948204536236928068061957041030479481521648352801902743417971491200937904285635332476471283928890200942377174951671036357895033524389584233027297635630382788089493144359956446987497240881453143182331190367787728675320514722136565944540283391750190163312504978718491679715561588370360951743613541812251508813985981975065423721673099982967548616514818323072804537332655010937965975219065398256775583720404568072784897533181651799110190733174099027400847843233645323603659883182999090413872718971624224916707541251777918085344336157572768563526031228259028050747076178858450206251942605252121195424382251183592292665270835515924639008272033610832902464805468132841203403999756202926489787530751476155890723455891787469845526195879125863098198022113653860731988741255920816285781856135126800475029299196015533044055216592077570989576926204359711295076811479915773895394111042283321969102632005832089520590059042347298113213120399096624566991465684463355310685355800674659893161288165872342558049487825645062083621643784706352693360348731362952693351650808415743753017205346067956739989340722829832394914140941931690413174386662779998085284499685761694068359195111835862477324133505793005371310290704339440598378586369042000102578576991425158124451098831190137749040908448624568162426795292220016760710233202066962993332098301812504062500852177614543599582035398959119502610915434875349953405602072053262595627584495029546402991711441630368205456065814098748166700369928263936772936872508093862228977593073927568903383818265063388173270103212846399283990321002296390954530111159676784676072800760480844731112662719560842406594334732014977026494936088170326191625895275384610735398981317222161179456120411077294412727287731843309928016163575659970678737277604413762525252877409622873348621757873770353253316786085770417580406664016039619400922063299246556069047042214004280455376032314361216770109617286684004430670792249856888814449877727041198799061408849391408742797160347677267029992006107811342706091485963387535904297495258759300759843433068847943941530283697397757300647500365177304650082585852035283888903077449057561016060370136668789878601017508692510808812380291145563391407611331150998976732493126451861738537705379403495884868148940746948793364521607138185427001399987383636772465932132137747838399091897915339726566917653364134614714142706974942025880793395820228216406840073863581196898834731333512754831248051493497808238412019322943324430501962192447304254422099068471410870315128725977691327761631955684907074395775214789831397942744554328834880382634975358939705123324337983270733553850739622808109947179124738515094721745086155954924056948418297162095051732500371043112318855390573386954533915593533630673142012153508440514317477062056625174125867026493915465851625137948627228318718474279918620731842605114342643073836861564417070987847104621489306691795923953899158452192489434998674559108670692964861906273544450736560085755778763646549775279752375130964490623697906816020871879614089211076929520106536586658610913843640375714867578922132731263478113452385730740652447919106894845592734093635155558882695642780156520106886694238853171731958493061359928525918912217960648636419089205396116871853019462346851050965928719288812698628710101527800748833016103288376303759659018065360924786531881709330154619751235729640809044998336558257575964627424901433088559235319283007535604210156436702218770565625804498812122898017946009195732737696916303497339333831122998890203447286062216759624048807128161110471593937956492487666318422216949567334216992490374997336441647987645732296340817542006892247989308995723425984901994876918158608068789985600915103492408131305494492067973163740174301475145436421403305972394787506453780348129700532478579904076148184450266862260123922264435455637881955185594390614521514532165638444535778725562899332270404582006799634589357690031331692939151388059887760271083864688068572028081376633987790538756991301498501992471480483808204867741005273166558413186701189483263488786939810036685701648298339248527175735960066612867954845972078263678996077504328127721682887138261432474813918474493522046676445276170801013443719136613181818144318995887671709004075612037444053924351011458876118847097307246871977330760228682242151932315341361795180648393713170652240086674453175164483783556087817978604249724103868563879546132800126273596239288293000914217613773526303530482891667287636817166636837486360327307650297481146424678716249532178466802746506925072699841675858568996751032914421722599670795937155951233236610693151730563698753304538402151901497515775986944557040528847912169299707006538394779202284479113864943707784312771267928553527821734525834455153871981210277674727222486370884216873587536241594674002569006579759553865360712887922992712677883327948742177338563828068732265453197703012193905478958016712244004036908833879871184026223699871630057966337316327493851658449701416116278681161615929102484367436583893956494578209928120277056468808775070304963411298334932786685080021019430766350803441140008267557266637068555863125485046116654512045315580771350491706337334275668138772848600254333030174610679565788966407627977051759116097965400101588580330094509119141024905349634166509207444693746337075267375963617386519483523387723509363275376849380725106822896761927782522187847438334316799396635651129965442862136248757148138694018407715495323128142172972699579026858018388202556258810596150141505112413621538303450304359453235151997402410512659448964302147539285841138804834584603576675366682183337515562666468962139491460284432638885713702660540696925812583161549399824123489334726230467158605924745059101650588745962894480118520371881571414258294307058403011783882258820918744977880609802535924080125945568330021126919569439945835373962795527975562902052673823865621359900138778067347911609558334649557933514907194777324067576514577933122929368540787036251473886179964754838457211899716761289952664414163865465825593648056737159582347855150216262238845725268268823196208935461326072306911993608190441821902280022451975335895168966915962598187422905332552149472048093826078464627435008426835289929029607204913290383042555739728418719621046020889061485643827980900234674676051258486515194848235284203544861531378318599261127115223082515940448871124330323415298083260671788438460628931036103678724667158279565439523232689188165499202204695206238646741659496920706552084588893821846440192674527981626056853224564522602108384969516988286758430772270277118936264426248056619059283866470353310022195267229868692896049265122655121088107704914716918119498069017920385835073048183591329952704701459141033648652217831266707738759650078062192279711673017306105769606752296685219930667809851859027951094532550371456241950395414117620662363592661480679052123063713594087664527072865077684765505566719399887473740014192034507131039126462409896654514910001532453501158011056089303293732006967025702955069479822688273950505441549677504599944986801684026530773891516537122622985448065471135727138506433498687800310496833229322399209935075159547559946951938166186360820248439101656600391544430672260236801997655665708350511081406634190905337338460585390473940099101396927515874488944642621024230758084056674476995340770936092205795124224417618761926829875221375242969040552055102489812610122914082837181060350742023987858691167688537833039512568457397526627863647335773695406891618042018686048787050725518822167938106763198022997124229032122797289905058866623525688350533796871377195240254850460180130044379839284706491986143478737294896485852354448984084531323501001642615355701618881460632129713745538369379934436981749498830500545782704286806353451031694772654087114108574079129259548623083169635950203872820940426734606668063690209221769980550597419394637290992944188993180915565410226935395154022613580432891463086013884001538472967485065497708712740846237380207758752178455005030952832462389448950634390733143730319919498928412844671391629045788908353716174184241676384197859127297243379886963858235425371580426645652757917075570830303336121468809704865479435324130837085509646049425237758815699790590747154435466919966225719726997638880269712430139212909138295373924450372284656615098485197586439772497495063430487171259677291925109899741432684764789824080497100434228382746360906954902417890287605191110170086068277926570894325445472436350432178887412726700500559990004980546817190023582012884761802423653655640419472962024823331110437373684991232807243262241281129395113009882021852385523641829600751840460478864493499475154933397288117984058722378981848861247192570113920931756175080308544822917612370101517994050161396669344455229389465829346847453360296203815682442061452688113453296441167335339181525486221335621609870596595591505412338267956368622873962221557834428250794120857805115350514216724713383004022831810614746863607099824196862330327817173677823702803422386421860405124184120102001971770391874637435954927657850273480498067378789911672028540484364689810442338061007777677009596299331337275016844242591457845770375051009157629432887993168139848622014202424619762255327434956717656992819840174025119735595339916561421090704392236986702463135667446898264904363475370237118561277653831941646149379685130634069690988799950683896832771631828286013894894937248365421641819304757652440259329223616711015258915695451146914548768629449670496508450149845156813476001857050585477025128297764639140996593697496006769956130389732086066827144748704939461567454163249841115454944176883066464948087250849655673103976509713689950331721628571602122370878379671524088242684036452120234676090446584249800633505781112302416767567585253840850377054243615749789772072431266993146683338123585191070336835649466059769351650376138162092206119180416711658431492053144136388154075108868507867217254739462700914292210183748103079253732127433141072481008994203298104695204768092073284811401948105523115433765711087497194653194721407784785486293331160398383781190251769269442486136320355545311205647088821723157599577556550508855985429291939876318705489903114244779666416759907505658311999158588883755700762526467795264994707595962816996443041220236990784726872545557735314942174683278883285887456459025304904693026666129764913962990393136856601001975887246469657698080683970731630390169727316541574258411340902578661790984546335413268256419674939163309783501115667216749094916070256692516966341954822169738222710736893889619488814561661005825980323043702947068244153834493302024105898111465172396433806087383357499745420646697827239700419479620310127818973776975782840215750373615341502561233494746901728781807479120475326089964748732432165808210525234656099211067716012246949513859965131518723915727759940804362541863920164282457181152939568221421091908647276898399395762636158132485170256195691773516400445269426628350479112574918631014003281616345313145986083961910825272213953600223185802430914252929074333178697223390594299619703728968064337502245409829014541951497192604204494809916920323432637510002729036532038802512576949481102947506261702811341649873355543078046860557937287449872662036612120540405099566443421179846863640906762950230341840764948655130795993966482642577887134213858051569294262547133653280159306256059934201138277298947784512134408269977712874412586965785756172753842761256735241475897855956903148050122611164924040537390911174716367819978668720366110234384934761140154417238436695569778216990151265930949903111298721861541588503636808250466945605395934169512662834609058641999189298604868847735067296815511552541599229284783659074025419000611704695273361187421766205307686685186022328743338086692676632573046009800593502232438990625795508271384310829103227242221114517817370019870305954038175393986399070764008999835223052097584235597564614993704583632632303793628665554210851850547111817487886304308551658099821011307401248508262651332465603140418227458958772818499197761360459462415391092634686471136335176876611543915935776210104140992995175556090563149017479379392533759522741013948330776244652664793831863538866643403791030177013064780145508715663169679483084549567266148658486509662250484700822435202743631893336881023900961794506620017299601594538572292010847740894654396582224627303282197208542595020993921166047069933765514876692378676984848738278489563608201756685346702469514156750715350286492268246156488184230519797873599737915605562234170627839423443974177297262276724021636358735883206503521561393443901422693693701477348024111729687437818076789205368961121085648749628515007334929775244201694196410372797146083978048789094282072046894166098240386496516134627176070055595417058189102435420910656821273792873644748940349094119390584193208901892014121725758489155328045200423345185639714983135854986559731058817044547909564178812440223860817569602911275553311993735358054400029087193173787304060972635903857612013849756161642622828181266762025613074732629621582980614422377638612889386745684563547778744991746823432849000785806464685588788995187726930718632395371747514201453095108759078794724136715705051046510361724920587177547561370010774442000534503131409103008087393300818632990745274186683128637676885396904353619750193448789926254866902200114644863720137920422524841073988294410998303047890148241734476094006206934809006381982742233233651199670532130812902738723046787080580717700183530041839770735927099050822129103518083556545180036851490666762630467890707725528618575021756055749837503200508163937346764539753326500663127586768660962408805930094526655733349731873806756841026849147885151960702794420211028344603972311283445185720076078015758779788076670172292216779946361709860082147428462294673408605066450835202183521646315052048805839201269367832366043803280284276302277858804238318860432517922219526654512823370194174822719711223753678674571832638192972941781165912186219464384166182465178909325042557907436227602532580982465671214455904843355981315296511969050871659920764483617402329497394507852838072501348516212956335046208757975213323477423497277626724412850610175010407742416643216536747027229178363896330600607357181378029883509606061694569883384859348084384037476890361135460134161963750464112866936022341877546904977871369717232314721175215251664163191150021701064185995285100839980643610828046393047794908462961770801910315486409759699997560723066505247807687244722834167377974258535349861869703450492765040296797256313706124385066779639435381466873260371370006586403418817329087978592297555478389301805238748541404153625903192579956193785756031658706503897089311491321590853169444458887664268066294999985018997124321164415599999899305230309405569546016680473638557297705694442333486980320072691353202370048749189840985499315644860621910678526393471473406951376213042975726843762718951167040232339819908639331224274798856472857225637639229273998662868019717956967943551978021817042948873007782244260000702294954599791674137995168404381578547524503873271543324147025354661567289764504804209895121674791569175455986470614286135430580606680464931440174574558970826607828454298869807239581343197481852946814867575211439512502712862688690876239565117848527535787094560723574277310710742635344381963828068531303266862559002284021917703450071379472689547444328952661437095098388072154050754070473604734694970948152134558164323880501754043213025870332567542389564273033512734011845897314909316579099598449722668997131823786786400474587689656675226680093436100883095105478425316409911375333554669796754344074116825215925610342704712075094670266955284292575097465525731445193905368540222951404535319715161401196557840826137882819178993374673930566208590916949901777972778991249463931737021394252563669484729186349658106908735569832370752296797213929372551965164192465520870563610908304713570165823956554265123860824596560816541428507305683337893711702531801763244282878847080056445083825953804193588175147390652497112152545042366219040178191132459207219203047147732579169808745159001949857797556730579614929781206863151012547362240299009347758578487500059082806989377473469474398390752546048140607662522226058614151826030933623936522022919008446332258678632437726227004728966787527184443425306213874229312352268718248198856866266255908342272013094222759894800225216699658100513897515636924031995928839256050665939193169111375295648434045204958849682414755089190693027740613796835736472421807500746287029587016321289918971950157412320593338098296920780519963498606381276349201469818390435133786974242160719399514467716359611464826524101688902718889177323032137996131700679107427817742815953227527411684832863519910319880608806782421308261236951461669294560626721533140920617745384259855886610664496871777121450058085076503428192859786093978186623326158993003176644701592452269919043330789744885216598659838382168062401747836646822802610143767319857642391299103378292629319372276548398952286102782216653126962343879480570910168390175291147843116415705179179370381291595822583009846478402371277761379124147986715551636109853988501555478502011372180789512934213841615750385612193556989759238254896339579594510081082270991905051584254602285008157197348367943267663578208445757145592947023235950931723050905481408988144358001946392153463067583205457383970951021925005079326901723733102217066068864085621197448220476413574061047008466346210537555343624752810438844588839493958500373687305133412486846683664949156052766338734975544217292200468136816717905263517586179797320478767274505545228667330823473553371588840402663632674713422520653580050608281603938706939865396363895032592540481834075075252343207447013801721363322279839350818324628716853156585794367097992672320002185077180267680317017223768323457319157000201958207010456559662123691764059076041529359929376802653423263722839666577228934958140406718891365409497763754883880875173137183519419923113669898130622022448164482091711581797853046539977125681218453122656660317053646103324817240945075547304153215204115242259312897823544371183134121777268447079286726709052963082088146710029710740320876356508396908488285745883391819404788822349551934604496513949972672924312939199655035294974726397205654958487944575449020477637616401236581316975992412892032980480091263701002643843093936781833675322543742509934535717777415640506776238493661703447453857445064773583008827688728160568230001501578262735563823992017672203724301150615265042284051471690890819491533486561930696187223775315247655816664306183221158470346357876024457994905696331237763362110869026934038097499068447302733537750388976173702500541355088626658152117219433536390774180851818582070345620978557113051087073783448211677198755203795012320057925712675774194227792986089591928744341855085446162165911626984995690842682214884568054698824187158721985431014675677271534661627524740780033467580685046368312249459584134937842730873927574139304474705106379843133749690482979245532283764623903475820480013025751990193934928710613737229821347496058079329595759975931596048897932059034253441261829950525859923841385526769115705046747175780246851935197914039638640231904318892440214986639848087823372672474973605484056987398231813446013057141185055224540623366128109851986612830749696611386245526069000504720013439742274009274550584230719912457459525779670759679951707259365042340851113737304882353454494199770928872236143010162245296683343035208908193257271438682242208401345540840306214423101392438196127989242486297240684419288098866105561729107831750970654150783264572922945583031041335871410389064236298976691848765922476144149488912451257302348204688995289683571586829868782139688563407968481170344376107390155940072125354329631794975126807517725097522431319625232372884289086355577165761412109492112868910512389872173814747967716759856473366600104137838518771743905254472836843261870829527835581296910925130906019504210853464695215066085898438071701530076590415065604280571133370590476982124202617221876871409592188079364980211309225640675340054967336413524504534270322150628805232171527043014986133851700298215287620693140402769069076618254058399429172896955277355344811297321720884941878585283519792122089139613485638698851275440789716857104281530016793098051587009817290814286465169180541309209676927705755089353135690327615314188933524658751992371860877567094618757066519290759608565511854466263302135344218185637251899737544382748750245267912608914582177921871576492630670436306536838971521615593024285112166870746235440736161336926592763520046317945865607595653796365462577006553762972138325329604836273773894719874157809520854960710141692325845558463424157817426064112794819047950140188291844770251824053270464911034108726777753674386161352087852597877648465389070600382459029908787306029385024890254989439226616673386793477493318493004951811735116015077142098228787362849856322700712422041807993039914121204945508464273540225583767546611710877614042005829447492046133658904352412511604547095268822424069857861974962601502227075455976430329924865233211171251934688167811191463221839583944324294475326050163035822514515844066481233055544288203289453398519902867120135721395892322562114743143943172694263878505015530329920516619015609344509925589588694832835424759301117830466393142670920429982721466638361643457781022493228546516006921324599755619987111130838021192862148504550669480857427929693642087327187768011610129278121358057220769732669266168261139998377087961032781073577228622025610735726745580854424653556886827487588585549026592931517056018506768276732500677477074942547741071742376746006628944360855314746904967814904011905888243312674944649068798457845551098423467272084147444167599501132597373361690131551171012257087380550313794598381928042949728658251631598063871206837001303350576821643419224177401559410669908763491878187838705463828339755927392048640023805743263625157410827746328928442930366673876609147816355133213066034434946976932451948127022833144573405525483199367850707455895188057293666268916933862394534240984588953117594640164104676313964839021501635640278088425458276414788530985407554621274393992908007243310323141053040758298942021977054029784650952294372169899498193574086834614238154219129508489841852773095094856194536111078811175118341589137853848297419342578829236452743887572345416752955522783136594356659339207176570287022590584747387554298121463496456731277428712297379727746127019592008537947854776449094303235244478343481737243324733890379742557235337740368807434326951920033316894722187153909238654827757962754873871254548939202014232784288833315446939846971539584792282214613305137807911316967630276033466293941125212180265196388752042235390805266956717613626784468131726856234788258144194581757896137715199059479724619590091012157825373374543828750393471287230350001028845646356527144029303166821240311480267143102135291123931935158400998143386903061061894048421561566227886883414502291316750274042889226970919472729691096415858869117178259239331009411885084106604491496219948532692195820125822662650679786804312689246683259795021963644658456052612270371094460213237991160925470314343822456175434519364952136921331462720583771726169486665754942667674772856855687270298678241896412680031928227608113930732261764725461684692764989560529902702303855790689487689939256441176666543816499852061587296819097688806887091647713824494522906093485109394703672467940032467977029037797734928330837563913763067329907198285755975696461040045682506334793526311821239477389916875772705175217879661095627280946421018205339901363238421101654984967999723781175230943007464643771613272675328554944938841739090080033728158436553244580411350798208288634972835206751882985170521514421145093658090553579139092665458473472789061974539657982109817833873909682641634208254774346822517935322568168641365310625280814037988528461914655338877872065056196351788137552363072291213427945735185025791719480208756695222976894263226963567379884844311090687362021249076078773126334244167908485943443616516592441728820469938279810413730166812583533814318594251152283338694770865028744248409021540178698581700419675297997650977996680863613200710078971139346979839836773717734616309458009426189964421590918272639736399753559441833560102148217511910433487870212975045987933863325299789288579580062192834812754506914805535110677252463718664172118032272789506228179141579712399399187301390441412261588251295232011114124486596879782636200680991457978024135539195264670922031024550161811605240298318560535613494473668149537692099575941064193921997471881883768611080519344104712943161213650667651225763984148750842017665271615978886037523552843562365902676666700173516496873711055708739333082350524828225440249732192308001384704574764431302021980550646130717602269851276488602188031245915955911238578746831982751879966219266589634697245003277249214462048719512078545192415185912604613741852367210026089546388694684010647162632544857991439982060610653273420739687117659856090114708034354689297818127543633454506124759598162581848053625066413743294765888258904994136001375608338844341252313027694229038905871634572850866619968300823836826546254470761566216009045750094645067948197721501391792074310965211059198190579261609340377972058741969598020697942413208759138744204136148365442763810741699852057492806271629260560451672511189164418137665381163873750303091345789158141696570378423392889329166868180487088300065861669179027172633280683821245692453515105349195230108772143108759730253154767525825324996900319946538377069776495468964689589235886130922767057851495895258889204198630646324759172404443424441209228510599373087365310514328641275471552144925442099061413544997154839846046970679063740006443632995822456039961373734835109587176262508102687986503824811611364055231868290933082205898495607215953314363309108843511456322732425684660929772738325419189557195341870647054868729810050508142522482821218205343954944082004012508271413055816093748994454028341649162930323050196626321114739178096093265444130730092378973583817462023264745024863679071005071154452899315625079989521952629074305061753499456433673818488551714661578966413072360350600580996204919718349088334640682747034928889530062253409380845864811012604250015864688257844908954457673300054992329337106998443414319826022519367173176061631051660077818845911281950859459397068164119526654320429301935287453536465110347821193672599171868060576299849333635728283816335741472280541342338030780687784079833181344715497850377974033236171470733904575873374464562937559557594533668272339224961355902186644679375390117030345814343294946251136580398477445242209555347519321402092249085056226143514186111770457403327660917246833142393219586610371015068036819612755251572286834609228696832966702262764623680695428774563180443110004870000982134740395284165817647502325649913996554460420440287201807352672956459132652085584169150417056049046648662815024691960260306266353594847373120410400332068260418592087630565536015428331034909673464134968132056657012664531497962461165193012004361318829164526178207179410879653488079589453813265832166042032255546346343387060517872429503858060250769786632011705367774588347499715695519876484477605541258922563863084302597973871056373580926452170207718535962447390081343511312941393764340318267266595488155113030949789871093267042350880769972987918617152671326499236467979806297115878584333718272081123145029257728254254153442061049115644175174600658771186033778957339304046689824582916239885697157640924724072942722873246383146134567127091329495727618742012254841936453151085176404732846662709484740844309177017481035407070172158824418580292139187729509759000917450834818004716799435555136857247596307307440159280220029908716273583841513127303809677274881540004304137002991016774791077002082031947667801510090161082855072974653689254376906428268102106195027068642305267185188561626033362647757162636957944389756164632871446649427983396092653049882724044103332246256438674253121549437337284527877921330060716330076765529947259373919303032051683401402128181609902490174923782518126132384162275282377294809000010942393031233686597184367691729584060508529624210037682205354992761441596789340078494894229440416870659479560202578215169823696153882127854823356550104164235942965031670326058473506348266014666649767385724157059380758630954759514999837172810936715582330543308462169980710695514173880460664892892197506899724099681991653466124439448860491522211726563531500559587297103399615885053905849089590853939007608676668174422738022381115136758056385327755346784519327215047043700346048275923974015126483075097070270947690077693614644523534595715500342394550149759634891433880984361606442758318192204839991888159807197194932982673315230125478384378152360295880197234049199751855537818287672403114388198175372361467590763201685340248891938809908080013866517912920485900864328573858392703681970459773545979849859598015273838342060759234289378471623601056110671785893054010797167291014332945381615268502334603415832264989014973634521308915761930631371877158081565620673078238151385432142891336208107534130414400082052758688836539274621409325800570116108464772095288700536068384023585148958352038521553453550156415102138799361104279337052077281257017930898100692570814332810775689340494401868279544549063296384835168577929542980910354829682603938792382499819793468080974525406264967870676942541078629430632747760960383495865914124709897658522539863446085423401726592533530343415229981668880161994717575982376125834683736359083613600416442300282244096554146467690014231123105660435455666983312264687736867968998301501274383958361944968359950010043886974900132966142848432909731242032838882831138596414786393399158264593800079828425307062509119497652726461609995939321418292169109042658605492428701609197442358710110625077646008734307923171806497715525508431927784740965975778953214902516682302902865688635455694652925557276670182875851757100415300598261193377535549108311707211477743214878735789297685723480108700169439414625750664413364668237825706459536749805360948949179489599809090432853649920943697908132694421675205594749105241411233041668635011228513984334320312126916300645369590433679106651590132773370644931462143303177255867211667558121503195057833757883308774721680674187074598272718926975062235637545996436227386149009066079858513352541831390544114907964822243261366038047499603234733396991927146476586986370763043832065351332869293407423688732091586772353623031029524042553997971582702104962122916957279684833321278983579526733426654858224352986493012617955804256002581449055095413755753490430166749487560200260286158599455837521906152231338576248689914130105829848894095486406910757848882394286072888077617660872387127173862757924878730515230740805006981747182009039026936948980114341024295389495905403053577600526376316490138059179332265751436221639132313907032597445038515962904230646554975468995605825929705588026387786958649095907307325084603301923541932334775834328167452534541530713462167274282810018742122972691687124801272757889095071454784380421129111167845941026159039729768608246922965235752821598084753951420155288689216734572905896759225880560534476316730615036615430184830899781435866124018160242386896895207488796290280369571232114351700799208393026980016536484258844991279171293320817555224314847988647782501691955184926681871420804131810518209777786010741704067035377805860209435327184669316993723910992425752773037099573036920440488064020056200657208468755127730414902221530739004418179709620475664278192678627143831867649398444657472064245511438655441661894329653273781590310193717706778544693732797697768171545811049746661235046073890012691357759182550421220896154485898513525514373781418016539240452624026013239043937905207602763615577147735303361521049114182270403758861922651885963482757690195157853324361674954410468400126242971585783912178500484027606368935538776455164801734966672764011595633556602286459104489846066449020252864502592446379591931254643104420923605962141527378661843683929272321301764745831876941014372887013543303801140012913441320929284095445900200810165384847394007376817208768226748747700368599940875356995758642253884081779331545548118477587439932936762287892870624113564139070541203819755126995800549979327804983653904845133627220234759925591006629694186000259604634502103877927815515398224191395268055908565342052745916726463594224937996782347277600924585425742097300925791738686463474626506163031449771127001450216590496910789048184965178285579339518292058620324553199537240343644968947437740548999411449340381320156561073312755781981959920811913219172885299553487486739629831921575101708951447755672513241026242959537905897191112656291431776246501136219307237939338537970753579862238675700592773513199292144121045075837147187302635817625717297293207216001891312680659281237931773028856526363611900729787711779320506259740249919199443710281144790654974272643693197151047524253246669342384454889223953362406376983033544539658495245004666001635867957651673698002723489689765790567126763296262997263003475685458684044776680731317098295409496609313365647922685335457889881183478439663980008831172329591842344635686409400004926762421827986816499522475523708185877166984153913946959009074173895712541475910018760925806563126863346087714883269825882076935539864905012352673746523229004871432009919110836736464668230152446574451758791028372508549904305106605828795622458457416611220033282532907815334483725553112822613888670858706445785246385082497512506044061786568565513397279418252527915755357483616102755348566945173279914602325229146080972588119896211871695996688741344437947004909832728738343289563176896965688451444994930706067332610067062679272614747536136837455437283063647027727091241833602614414217437200370960627647503581531318769084434253493913802588202563125378366915302838768682336414237183251160844840942855111558054082100161243154215406352165123717000762446210786176756213870470283527596819358162038016958149186867893765203485774555207799082291555354476588415558730999487141924557404819724597897914328723861285006007321271122103123829433252684828928009345376736261731607774306358015745506039554623509600703289097122613393816937208441989621639159634778279200552123756632437401967569907955273336318067474837883150951840815578313132708809147350137429632042242135981624520013928142286494605503890736424609165717418391251453854076400970227755580961927348817209632980740045011691310515149746499739499926748235620192049874934877219200145882712006824777984299568141156285008818382037520995415788108345382244208499295955868405205536129955176714807028230026976991231399376425150613617137343341127587426335758414135745274885057011133125303223854981516263488928884803060964605380316633444052094091885235784755933634505156115056794015288206151308340748367364596566578267412071372885267697607845183912035246033182602470439008918032977445020159551335667774212961999793662726172585455262659272834630359194899785637609741686232139667377804707313414645899206179624655731197508907107626714032301972633542095208045335173106638211725153734818971065408369947803562263478365193320434805038277509039641369957709715910614740271294025663184423976956493391417401433136449544658674973959518443319377715860795373574662058270315186670585430886761725878773749495651242038511485490724713752887300316071048274091666413039074435517163508496186632176349195405550471879316833034887236701063550462198719138492758489868906221958261359160442458283041761953255103270233896651290858226754400749406332397109698774958982887522114379743974644865400519815330765936234732147372273714723116119331556307247278919027733472542724083845623416673038748299062084770663040707968576258320900183201054901012174331375021100383162729295151604210727018641698660599510562011066328025838872667423427547264927050754250527026581851443374251765527334694193323523163962713151263871451708188167853993761780592937264431135542676488497041299462381051205882516885070169544757814377398187524841358229725853806135229265399540168705452871325692886530276673991254556264987030655393787603297998017014191983147369584675580409870004763746578631383983788628202081106868795489858297698077152456748223167366289370658364349310156435859839409562123614831232753988724270643356944876822374992999485403323523716811402467420451780777516132649766118568200257018116340482949770926656899976561824335682560026189027754319868183965005240734047683390272237841984321774701717705175852134225523586112926524160495203792358259111250015292889446817879309124988605891966558581077798986459722395895402983479013738272746343719548742361440445593198652008632357886350619873850558885308905443577568143192471451073014643039828904490013016131832066334568455717061244126740714131964397838988315851354727622882307996578176616161314638499158731138022441021985805571378039607309016668639367556365888697197456063447611376987259800974639286465574947527818474922663284895983982812626362004842103346038894076713778951904145198721050085219330499776725131399727742245485286049062443513801660369146704126696590769734927474361576602467190547469830775415488378970590469640067679405804702038780772681802881542081557786536339021724811608588194590661468666777240646235897776257128831583524966292733787773957424102146530996390502373634553759290798963287686042317432494745537608117040884747715050602549834799103358533347987618189799430324448013389312500184706151783001706406160112924243657538465316270892655185240505858009090375097844136678849269757437875277013767328159477719945489540138921008016893123252255147150099902863079661122576696145342941818158300410771791186968532820683184961405399254376354022007836031925864528887834859045149135180192318683918979876491100879408045821304277998451888218729880754083126170679307273725104112192725246011627003606176111279573418207320328184996284848074906721586571895532235756444908575364321027265240278814333078140547320305599826412151452098635865199555031821216695244513891941655996367724377490389954187212626187122186919146481010602211789383895659736074500268605946794074908281187330307057436219204249279439671646357236994834868185243627253216113948414495645783848755943725188307021387502119321983178642800022592468321465194286276672934455791483374980062014825808649071436379895859170698632263233655338402254852012850507080922402989156876179931437276822530277528132311542469257536556929333484927273293372910350424170934602295655674807792216222551606487152259047565191874712203662653844793209946553540673134007951165702160738017345331637550536985800471588145976671325030836170830277913794618043350485023753294185261890824139480090305010974131401775059732247382025198317623081582180611526680629683739097990491827462337247365427995248864812300983969751141740083570241997028912468332139001083444367837733696174762183032990117202568008964125558941119148306597142125620517494491793774523196113854606398172470677254202162438676852582412335824248428421090018553173237768393545855864498257740304652160735506784255222834935660468981774556936573004742098878224063189675789452545824909282627886611375223509874852371002805613158491942073644549373271810823627794880773860656594505293311871941395905779645887859247035555543515917402952872251171541998656189354743076599257187651273887214497978930993889414281497072285296900005599944407003614571835761033075199493598866085182426207217516222070809228595571159247411873625982997538293296343883888307195033749537696801990986410111708717502385942830138389520175188163422137514741691989591890128864627264686114213461354544840315772826646739875439016212941753561883739352612570346206509735755990008371012765891160975290737862084836356337450854404530993777844581309554580871546350551500092253885807990846035913268240710631268676997361855424629148910384317913715217044246929618884574073545112843083851272284540893881039854073323660244098478138210672648920269283241319695823003702133507902922829303033095207835938104692210565453928600589479087893813232881431996136894472626263921567254746655787714936037393177371385356643674432158287720567399151335609104195854031341377746316365652519276673187394448522067364863815774665650484098790583825918816811599955767411514762124953924681722764632383280118200651449156700874268063372024310289571959356129011895143388991811365823184558734300359231443664958987996245667353019081721504473659915764258970357892061726033954771944430543962314395949991117103951273527560512268848113084650771536282425792652020054559686162139175664658198999941566731825742349368117564632097409452828747400113272590919300141640664635484090541466485346786037320092906888074887434401523581647653482148125632325262047776274055704656555309377809375517951024841079870252506423747948017458736228217646023955625884153719743173571343281163731580880274966018263373495474326851813489509419050962152759125272833592650068482961852757104548916505621228308599752338397191576814397912072129020093728180051395558523152190328421762836475625290295241484112301163321374112335507713769252983282548474393514259639987153450475974596576471047003345126129321122928277854262970517736306455275769796505823397483093952939130276263332667885917923650617157283384738365347758106012838576333225801101823558387859853753874770776938057747575249432463590636753429544556172664140370384537700496989769995619698807086822905882691787126740427202003519049552216719892156464178393520330144180973309726217210961065852011641993442720398877688607879046308634893602109146266364839338479713096557054761300616296427117904542667400011802480767049742429902100386165713517139427749671248588003353014243869822335611864153016077305681163099324571944058545851888576820485918670233125024051939072510862911145079057920166978483103242757653171924911870508112060442626563335233557115380598620268652745358387525457712595574890008765501425475767521602907545671386568626377153321242387952356099193883465331920615474471595613220658666085750902017404217484099519634915223697003686305039835792896246827660894127892950237562782169786285009952281481267865424563295948752685902986595877952730513282873303297175635552368489803628035257080242566232487575427139511286580145757134198533110981290471711902125213705432977156320811128616370163960156926188906168899749932854719599259386808378948384486081181489578598880773653885136007838028257275228078696098360687062358822344024203180998090635223273744035779548124303468288107367969299886149880035827318215329668645329714732328584888674888246035640613784943313303451879698360509866536025393156737178257496882178906967434403086753563851296930039853592909933059873692130080673701065965054372300843324437313800262496540076679556166874936252926619987435534129464252931438176292332354725502404229039490643695575044335875565236108040612098708973828219252828898788160232017086185119124442236423513132754521663137610200055323086485925672476852990641346396648844540883222035889519519356760649560593704121124649547366646396021772466018732812726987893005505153980734527863627704296088709010385667201378128943592817313537252910010334098115889781968565364711984967222117165438137166851342635501934813854214602848765823749564970169799373631105114062401856023609097998668436093273935170630972383863433939996194083573499121507714736095369889381974482499970939492466087054204467350803222313236056290327970920013849438974606025285881969414668201938924856524886326812866924548764707607426614582364218317121424466579922184095162884925981477964329446411579064789251420779994253225355881189375807635933933568839813914881822278549710510281339212824709867988218454643698261786771619858585961898223092628619074452154195228416394080062674861926745018901287221126494617316071816284260516495647705071675196105584653660616003496033132627794275512861863472287147051864081049565854428585846615692508951952844925460285815361713180448484730347420536242916650345501514411986707604470202144929610153768207662075827327039584254313356595029616622962630967327419066204835043551601674471495527755734344176371205860589691926363969873855702064110203367003920224700811270067041838658991882295761343016850605135555428350925974333461228353999711010394013417161051529807386643563939427189391259820135225188173014742373142214739460080877191348826540878972332376421897104145448386739083338914494923592571427417456150053408595689800044422010149949922011874477854412289711195132427474875090757959492627736729716011777219948087257342430070379919438955261459078739275853996412116502313325214452435364193220150207144635307455111220895303050256761924295766872655844899989967199091321346596737906755984143043240408206367321063362320601146033823356903733780312058865390791567432438087563953421823786309287233094078767128704351302888810431600664531759321976667688252623896313540712638660045380205252096036074130167603163796636497968998023947339993323638866396961510033389199453476044139690276813175778354036599527888763937007536304488151371891160106865203386989788943665638660310037468306914959987005482956737928410639367212562010402012786540091577336744426988752490129726131438042124165383841022835141901688395715777790249039990722278471627011926495960804647641289268587657043492379444343083944082612433406249724532337700627762215530958617743212232651573544554551380435057451726190769512187954619840315325067391470926800113670074434626827826173265196314061853850553742209325159734782719195994018489872253509472546836116450568542179068932805494152643678082489698958248602742408010737010354284264556835678858060720837133140466530926684434529231549691360146911822462158927664283797239327597761048050145853209947533935934985939960742974383372712844097894742624395686626523203795245764042250166700127363998800085011484342416562816290090699717817165244243632326521770467325110060693336249368579128961407158150064182565121158155234766651742121524526165451780344512820452023565408229746788186410263145991824607145455367516532204092602608236467803294908196457897935686889920460378290700256896280446331626058947057759466752816179592162216159378141432057019018939268518040137531573921113570442454364884128459890581500267894530878394311226639023592454660540129285302655904708343849044393384959807635699112177263546823877787384236239496621629535431208099619012632227994725303908482885074183899919350763617042431238037650272517083931320979471035103925361196036187441617476002010982814068576150174054962492184233433175928227188678975436171416052656053096023046679052262946142132745393317298367523208201057088808111736647766423259939689022010900624965803799744179633611786380993255686625800800069992870494978094238312579635986805145066979023142181398269646577975714437146987909918639152751021502745725500374463584325622641250325317182863893493369335763834343682436495300887233050951539730746906156767779053534217033360745760198035460593477307781182585780489378140907256266119711475112846822995389815091116107967809788266536648416253722285790453495313392556510586666834022358985284931348852470822676295727276447518806604386516318592490758932289484742198321165987111838053104638367247417046474940897855941027555868812793439855550226507238589234361513640946179318669521730232129375788862447634032182277024488303046799093511699334397596054858211806746262183009127161664240456702880705832159748357677738249583455689735329086642296980278049412243680564957695056963603365062809848566900411991729461981054179406681936170136715921746872857279102821099748192876698730030144991763943962490329231474424263710519361906451824638857775526466115913693941895053339380953667500978935828680630076723465356686434523324837789529064030697648784203850633385055634379038640128534912177817578008122478610694608228388256887025903897371384402573974331059464097468547763571668724841473313374714851284362635146523144579955574719047697501783235376056959417048375072963140420094977686918960865211254207042540651968894815206864296507809313810081939710110620363420954229034623704079576281575559092776197843100962999559723101880196659674567472136918104253039741471940919843518471416788418444615231946499121896358529042386081654439578417735028587457695525400356995292810498917504245979796054390705488064595146390083521671718297094803047481971209908794406130329709422073647911214015805244664181556461866622487827598710968855348090374305932577689596747725372232461342088791803757754614656694004219845526553586290320935566591848826764772404493934837068560905068466297746952712678478449450664967535421741393543464681267387684413997805258034643046756037579931811598462466977044950929840402590178400373835928065447983216458049672354347791636963983591061307445478247209746131940701142289122852658954040167004388700416801665502029788658742168506801268023739392598294276085832822316325060096714731086449362015276096363543765725365548409619055457890876027116962783657364393685780752605959469470035116555444285119716077479130270779882500021875609878430329400814905740157500585331494997938031537693334804365698342090870828109875703908431841840038851871262628195081403230533145338746763538976086539260803400670288367866347790249027095850754347575850772372019908174762698943587223262211407305596022986140327924543080724858103465594941968843286341488100389317972631316601590216796717852356293937709783125023563416019653721450237693918542689668628795556922282069505957433716052273072187614363967819284114299140184621619314803001608065898239465879367450011060306470605619457929897216744922516725132105923220798264166866741404991439705777286077103249842760359629298221421037788513814374557203393951357684510581106604280492440576316798915717257861346581766754794314207061498157010292514871971798095426700117566436768503277785731794114332428888343269170642558362194303195515808051993776876339425238686632228105681395770839397426663163057474119529422753997029624945321882664358198212606852834280539780792207451516462394523643174048531315686725531720596670867715096533432506472498679770704628032202504131427064111042994797647849123238500770207125743514667425024729677700420436681477237364577515973425460216070347878356815627795767606496287582066336468196941679924064281869801360728102711642470779914734932791096339514785177566986281381344443850389652342375533050906452479163297644533729908395018430235343522867779608832188896279407524930368951445251877466119152076851042442492100164314548160931049347755692033543509280059048800730488132769914913716214597881034538267495857694779457407877198944577733770952127702948168103213354927255780848092515766700055774415970140324537354884971095169780739653967780017900548552462576179725788136905218904951107091987409189805576581395392851023251205623373636560653694795178569954805478758066012233965788560444143961698827004400565363246618931521317263527205559427119098068816615880990345679171768887207111805860483602494611272600220023915598304836966611384400586462859394277505255568378987450668817098653761385761338169414838833589656310077177712221581768463698205500186863808207088773613816964234754633160679974827016200368773936507315706449073546137207740080588942489557509671585573338642049724945247693196851726082979989731868706573491773819324036179449360353616888183124232217209963650280095556763385221681363602617160991990963657509585871411153112531205766294963008720621939254992576185905519421036943851114275507855748031387186935435592195260511672757473521013308596646776266777399416483350439353493408393927479752345582037181909827486093816653692944048814320918837372839762001886174444892706047647695839767125263244332962553638860069274715745973728768615666029596035935072930648502315928123492538430412766074383720827860398183290623716263065768496334708597622239063464868534999588315498808933768756238713579971063959137844260819316629255614931241678561732384240869438482028326881758146674172233009418007307970621802314307863302479067202994803660029851187185387052696424527026787669970751072984391626022582379574603040268579106463360786857558645167513911990538881401742777649244204352391349703277888058506718704886115089570387678125928693226846372427427454257294709331941928091806342333800415660597364533876354874576727278014004943433673609249341988335832623388424933160641496535653240473226356592690668513296997338929203332758828589624589265874301056110638586406123406458703257952003550133155763989861619919986234117662417446085318564975580346729786487292725498891598806415142511078358493259673142530838004096540894202173178415574987928337361086424749607009538942273607579204946451887732027953774767703303675468482533726030588171431617553989867693551591419242932527570267188105652593319289847548996053348469689162210663281564075671712059112324513596519360271001717154690082412990332911826531479068030940216274820730483286842943719231577384598384263686466580903587975325174411939263245172274534217580577148415702291643678362998816940021628784019143279021057288318179245275489525798300382908198715153840475678450497382751824307220487986042627368868222777969776904081244348668861157886138476712429779596105845551272455127994566232872218629687250266768640346199766168287050575320082028402632560627345189529829353626484549289785437152976992673249387653446106530319144676121745588501276095633141053205581284571172291417690972348620757314127755728512128425273774987986554645555923575338352413028761629672234093815001852378805285375749485959026230797339634287670097418104958800776886324336082637433344586843420652259259047156220164332691012379311525815225548044752566687358587516470825783674779692774396325089943967223061944985705058437114293712557901863228964540004624920601485000102004622698150328240786182179044969840243381852156272272066985615259544259824942045461158996300194502383911096420190953093930759165716269144931419462970812794281267024852115009946314535635721299548595542272799110022543599158405279406330851696848955480078191446559640249883798865891403242912666217062834331099995785132239990311329964769651306223878786737052256596798813755871814634333548881646221249122412390695756577386196127377320396451709651921591291026846846107297622082939239088345817448810880577024325520039220360627157218305899085457390079278969774170731389100446971490791727544865858541103664789592961729270064062135232619293765171195994641274086774704789951774142814651993263750493471882063623797783999554325562715576111273754480351481249768791031495943046729421663892142981612782113947879338758263526126525014286643812627218832536546096322403915057651179751053876445171748703271489394487695386765320399900248036618301809382506682689944306200535286999351355524445125419611906204102277281207849066131630911992973818938536184127721616189862355280756132047684189641073216743212239871881550530013234167774965122547776761313827707407136078006835149266100115695762598464344845684761813621861548878726101428271909867718232825359449310957192968716191644388177512373878132837444743908630703917174797475798566863816292746975356651027392013252916808235172309417998849479109707640805076787440452063891083389161421838484142084423035763152708314484215806706070197985473255114325889468116472245129892897847991552512989327931915200501156572746896691069268105135677732036542171669716722641277565584925229375088355337999189636783678740980348822629844131438974808357348429060377069045314440025857429617459149063682115646298721204644016426798738226632082799471371396791326509160352488664018038803692072678147215158173170619781866150921018425411820875262465685985366211226048144756143115750488638219325763015357462221970217033213382575368651480428409997950001980271485032523278472507206677804885539107547997020417712260407963922840617183505360294810992230776316034336284803222807794559573408105418776259270784838215788494618952326210871469534881008788268130084947381943711246365620642826606191612166932636505849749455532387071178259899070560108125676235512525043324171935327378968706782345634865682109968299368790678918427034695241827946868583348561568199996724808609784597501846855601577590129588938888364995178140141078897104720471540166797131763421570152571142615487387981880812573130370174762233766405726655774307589153454805592215298474047763017853441329025719653968339016294485354099208068778653048653448163057580180830450828527517248075206603745712522839329416856632303918442767219825495967412545146026018990285774376910009005965134390065541639626888895219242810769688238503458563298954697701713058768233803856171056316184812691459277518696553422847183221038529715885208210660972966740138493968189933428578741353273295627567921931013463567665086068278064455150004850410266796828576895183279757290352918833284403767705791578141387816047782723586988339189341671152957414138419088860136386083038938627577445210291745453495674675320208637097279045592840656124278050887163078360698727962382016240737304629487500751335485387052098692078666109328228223146089307468418649105164694942914712179710522711022931351075187227602157240284501957804921968503792176996054443241789293433469300183856292082786411835030312617589975627987278665332904029302960070866538088815413870327039539146908870080368489614958745564668215337029620662388717090952736469087826598904722998466441678693410396268180027197677931879489429415966976501170730005500776790669138550856844956496671266046242824710403688335198552509364313749606385553118337744826841800117505251906921790828902196525635803637364850062818610785771625922553209460111064501529555656766221376384814538307109853880243042248975382986354295140562556509002169436021025499207630438983859923735912791822220667262234983368499854443531313226107282395251868748485235872009810545409163419598712966733572465082819196554562880487119824446265915436659914535019399981077639611052039451198807293307912423395323002844440146452342762389513740774272706778372777326121456579714525104906246156092924416012321113081347512508151413385773941804022453887829711927820952906981490981032274814276242322271547493845022242316060401162671888619012102882065721075788978581470943994382670962580593912686267881981619309510624626874347714034577974282700468399902277229423932036903037061257703201244596608129611350066304692334342002361514783004058143203891810953831266845007706990064412881873493619896414103517070923921432875734581693230028614541185803257276706330495121865791173161609989798795352566618948037549915967170099124640255187230137450688346317780900846334827468042415177753574073333709817424586559399343197327845807728563230775750770983753274798015235173230957740064224972569034183674922603623610478742524903076300303974380892704074265748973931354109124466112276893183202010472375885320621102810208553659369144989975907629729471448416965638733938442819790887308444903122381290594545726156389024856946410602887142349147151851412844706593054953389755818944750573500486632244701831982766909540409737207282734450082024662418860549046245035218745604981942481739507885104090846362070573585282576491039020222284246253652763264650512631206304133848806779485120381388097987608271036757619155734750118347270006947664710420805683955974363790687113395136216979939992427365551251934884781312462609713086950989814568747972463255686225985842571014997781142486179839819629347984465685224333113195257311606417701527269774900839547279832691395540181039260589922600557283996173974493387901273667503521075794663130931207572714114885391460501826988921552705976019541086729445461349727253095146299168734339787041400851519115312038506472842331890699015991081994064260881424368476702297616048466914517937632927538725649407110890668851307571761290273345901602523816451060707486948683067674378443765246278367033174587487375662109962803360715467295953435416725582108427643585218077611289986043730918831129221312918255365421746028937260828421224334748553444057015045496845567275472657700408985084469094558714947856349894709968507902909924545530022650504056041259606404232931743733809033957424996487270294714924759580736811136593680046258037474194094873113263622817854832156156352866848933185533841826513499197380581252812126882695001292042253393910950341400280902936756105470252414280119287763123423818668050122538031758077193985944152394983123898708997157658849429287475883789415110125750951361176201815673743728281004169609708979725488808913302008690149077859673482103237902542097728698497016043265318681182798878194275128833816465423264528990408174304673984664006346904762533084867582645621689735019354999772476495679517935242033063257419928919125420647715597783942522368922182363890503423250240702280509166181914774058530027254781177004514408731046729779023855600855622135452936343032795425120901370112569636555833363323931740276279858815073031008816306569350117714073926892898226762859770500781931219649116073261758122648871683986603657951373457218870630728669850411368101637725279823446199879410172161190026842110004351202597071400672340575432371915666876901447639875843879711067117785902816306336916264965466396756619725348528499837934946709367030821263847422690816038395880090921965125474579716553902730054835435239978275357007185242584363420425454296864930964199739764489716053779875127736339715154542441299894631867811857073838428809928464602879349005288276480425780960421247979712391829264608773851118089430075489164990115609810754731857933543389919512444142127040120713062490338485564883543870172001811002471079050946117203443625827151068002375556376385984655523846562839223282713465671639152181265989428760833838195184304046259085831165322437987278489684570772199910509031267659290633619803538313407604857119429641953699574344006678781892468081197184624693517313251731090612029805848054085792190986079247070915586277119621825585294127402307064951496445963627911873073464403092048303703213468705569402406823083663605001516971705913484963652274395896456608307125682650374733339215827517530394462597360175351726147118254602178466134542076189073657265766484298985076434290465662366503460051643971392254974567624745546423355171432473583716877394819095877391755266165034209701330297216874189346269085232539611828419528752280027110377296409780494155315292430529739256946954974765265217586032061265793267965530039871308538745747833881589511668121615251908633635093441397756646098540079760253229358254884015764805193449085870355141317206940129390800202138786638683394327273408709099855406269971424378329805469203092113311342277254258382153981190668387091859427358043282824133353141876264513266907019998208852452178027993493291242008965871323109145060739932017589462626749603588036991537879204082231103158652284767199930189486969143750438341127029036869110539646237292124524857825583514016503768041317383014526872530265032792941301989490103984564496806241695917142336050543842735496974251604832070558144082404145750281864624896911195159731379996372899379699582997525892913322588566090352852271163164934697900510479436575247850988864200029934450150417219072063661287872406525201459243723299374947703360194866734306589749848353321904421880497823842249839767340647085152213039996480150055269789580981371874530312037307062595622824906932808435684713489779839426466738647051351418019634775886159732781851210428415257424360334085913026902478038034603629908670713474925964530506900972166922830218204361067761954480968922997508834470698550799867649728598073241817578204252592525009415082839509099637414536130011791114241683016384491088977694761905987235859524520617253764882995500363019365921646703219876833188492347441772284573111509837788601836572503354237058165005246533219124318107617713946596990672814609941215976035544574490387853199819509150829582964990543418795435826457052646618237329943119094249956840721211748763848110207566455907874018622698193836162823765762918207728191770154018978796426086662601350968339679793516484185631214159243531228134399781611522300335428243050353962894716242998603637162820796017057758972092098823978706334965918414342537687235644983930659785733347823793784181025383400827486958733385145401511279302013655273776744455113943521421386941448890372807178883088047401905492257744511586418181100436409336897719448925485847498748145986451042252486892354443450514509390058285667284632117656852601152161515191665244461633191382028059541044529767169876633578945144065969527809514317421173201177357704333155418226861648341611132200939331194618507067534251183036642634277997357785703817104526221526230839565656149263500915216251698066759884204124406589762783433237273328243338650712278889650185416965021218342203934641028535870996197181118678051160485333045785362680674472540972208166108016051330154555803824700124214634961398907641726084281167176550466394787309969217666685798367734281226762059128021146406607582712084040342144587465175517569210196925923408397790918320806606728155202218680638040261279843811131771529887706088945503469882660854527150749611722306563330874733072339057582904885173385049284816865928938700435743082297385469357123167245393437926506705997293306746231023755978628739068505664442524613464428852541416561432713955498522868685389969323529264494387678121659893569034970279209968749217849710249778253778948715060015239598265368554230356019637261951432595936322160951408226034981014443057735948890668469724849099259766737302300338651076534074981466467709155875261665361758813367616757928882233023391870603178440477099370191435958614692993411138528241893072726319046357085284236164474164537836859438678066740094759058759969918447089101547790371123236999680765295395700495733359007816092398011127991101289072002018812783304232234433324929203801862017716059847563445767787446407911504118345525241109067912820412241978684502831614721757822246293629427363654827088929431389486260218301949328695878255949442745713245056084056434323759559573892966167078031880510662614077171629959607283246114341378486641515920883669329456666272481539174895596009067136060389040192540748249669465500929690369801377166922176518405908662329248054651045690964795901625031132115256305961872762664808537646352405689783564674207919880072962601386478471702075860448040027847827496856933527992613203017163536802472503139164760994179858436262922952606330415435717080673329331550313643584693941252678080638943516352437081286505747595299731640861592801620650910113710079480581861345632852253667894464820637942340212895276473890712235858048835503347796270252350740780773057878969171840753367903782399774178512563126050809258888097516576907371159025856041647964366124982600462388818788187397127036583163969275507657554067332578391299809561598482697225031954508768958736750795356600908187644565332576657002335308019529728223159880085429390561646540299408479381469712266247679300952887839577422121343875861623767295866309036663770477790612264500462060492154468443574541343523358785231900788553222017465401062398438613093462411073030496437604823830206960023806308227035377304723800245441786108311458989966872429735689807403144943394496983919046948322232429586409313685151835991261477797476649622124813394616573831733713983882883732229570310172345084248425259829411158823066597935717966499186047473611612413388825192351915744397664322175953061658814363611944184956224490963450804085009777387212341762349021678993852192657813395680167743343349515821003885395512346311958580285498832599541615440518834046734001440205974024612512296432157709690558427973222808988611366722458515658178362308446186955257173778035817672858535398058845759314531732489990690429439620251190762119535483426919050459750653850666957864322288604000339620625158853365400611396660608332802944406325956909650840407735771878812802334589079216950137909961666213642268989792663424325459132070222458095256236827518814641695797748142213741548079125809083818193242115594889886338773980440770515455443987892204439309486738974683022334724987603778009179621264743271816117452966562597756077405183902119438293381624522694068959025012601052855179474315534888316036999956081304372995720928645897697726424454965868117806229421084787584872705901581873405616071896963373934391274470054382409496957106726733247503933379319720728967451109587625306920699619361804736891489377146182363889706966537245836126655314549038675900583106223216340595349611241220478456889324829057500088865878327725064886838312741514663858436354660244065563764615617807897139810671987033773425256975419128622312062306404260852630758262956080782623683536723959086084389336692892516223905033603948224803245696204317359573702720964445506420541122143134430393547851853305377532792534587839422119266514870729652166201591785061414588664360072725290141684023103336090993263375086250841322558934439098137160281765045729931652546597742913062640731976163858164366089865948619750033234439506981318996013588656155912926926272076914351724168194152725635639612125751675738744728101304632809612001476613868586870124444965567544095696273938555963443056416782924301225052587320829832998684685499690904642882921857319051858349998239700679678676064105039436211857561774523823969739329480700012309590802618533620088288432576145766477237974126648428675519069430577141983232230471072570711060743226908133936258722683115314751059357828161179687937607489685050703327709207474133180269759210697106332383164738803187065280332516740431185444403021500867359732541924830612761774611633932480147842058852105583069300920537005406133712067196903591849750915300062571686944399545250961401139831015162377462550817459229038950173962755914646526335643295824197100197296918728763132870394528285521668904519414572056817240316698214582733584990191762519823894045803568342084188176816193473076908743016149425414678223300458052036599809839343494686847158366090046954146510144565797785208243150758393422398685569592483935479226224280529152682866662022573446885701907944155431474375493920277327185113978312389854442243555137964509773804188300394744383479848901779555767729337571631298126481680448170997355968412668343700841157635154705931431245800726909680024584930496349944095845409093584624712272557230656638715447408085150339788658075052250361782382676940918111958637985522460134886870404292428168854747294374711699051262908438988198368898620818006138622748573140261107262640345358643352901337409711044538075595936825800347456598402687820092941050847537265663933251566399243204172128434470529221587403947967137720670928245511096947312485237369164816335004549162965112163551407068063644936141327270915246978556338363522286452059375492201218842571229161963649031654064084686597792562769648366927235991357740459954971886872986494320694725960799376758851666621032706976794153825092010813858265688402018862526254328588877978946403609992792235014110244568238233928759306441243193586952674539528130671470042230612468377732802133097349991868561975954980248736428296131663582400479932174511962694529143880362954853350105313910684993737423096520066348605895796425858285194999085567587126510719112978681680064732697512602652445100178740510848400855675324492022777588046108153897912774029821652698106014181590939787753332706416859679242796532533387176359949612374463006631193395663505576489061304869944494135602369043493759420033328993034300147837693787721278880978930880902831558432163510443533247584537978544325776530272268487799986400594850314504180139462559345491965789171728778596059193660557217051849397061705229835659541577553000339980635275337179965186846963991658363056292368241958211527814491174165350548093465804433959381860190577341496748625534177226561767605548266797386108588704287880828479970657343820332346272605209120800212295187892922445292551314561599781058471858368445575943896952488891684047630549126195612715611763180480491516983460135033432103787410469755095544066264135573375460159965215987568440928250307489471500717968845592653528107676701283847604575497684649312157766927265650715469157944143207072280607560034117660436312875154599089064502342470795881504538337715574680394215481266983684260715221139719440770755608951800363816542630932040820407281123949109905977195147176342547516845373999626648138247946119567630688027613111017754919353990312047840630442526044224922108702958763814734579039577983280873737266473665728385671339418664693422009124322250957539680367860807598302485582472108704748870143810884898755105820869673043577067818295130307919584131562409127286323770603763249871996923123250587186909517053974966538708166373067796817446598166374568374996200377031585719434435963042761429182608635697795563312025203408479829042785482353778165599864353687518351442324500675390611367707528731112999810536800545918380587636260003978594674040062068472026443098229730828004855610452241681932078292059899633993000380132081240970116210992499768232226840747708139412038362633882005267369525291077124808381239368048623170597768743441987739737599113064977085860627191178959136159919742735574283712132452462425562621950561841221110038053190327164571724559975108008569644064367831805377746545119437425867111447447085207065090586434668304136187696668817774852216064849473562107093302680919227314277606870954862527739552905980372082164627231182842252194363583260950982394744880603104461803119833721840992138363230070654415685384838995962807973438897522930026535459810121565889198986690198378071988195235429907823651787008818636286784080923028431967594266175303441603056770448149414187836634744011191098592299207789203916430802346121620521062084217118490823632647397392226103834378472480972070567232511206229546010386001129134589600386241404295103262388169136594299762680274129500393442786727462028042180887458341435877246919771867540071483654031462478107431107454827325585957129058660545947259870656570808362824535678897658026135685542626916530531647682022580190866099322170711861054469883315391873201531539635553871998553482697665462559269708885640447365126233279498823383118062589028281111450363696949957497572249997762949253984266123705114032626071843640075772587676660320655429718798642104086741464948749710023538012173489335752983157669042719847564692920115210458746931943401084672362677917910750830777567886526082065438972127676388172498473931279226478189296309206307629882293432838894650768767121447701012824833024124711775232191586798433987604271801862285909547795459375537626017181381461370014675093244348793248750044715125340549773933693077453675092823988966534519852053606652980736879511499083100654889744196805550311273692999588941671850720791417611660489103429943133201330566104512199679713202664727011905382507367923915316510565030235702573423366501228432716894070628405886215608753230882717722257921908206761770841850270647163216967971779573800051121804537181897069778668284766525703556677222691845869324009022661866519399962800901694429153488597573808855623688741286986243929728990215193347918257107575219848584891939663214222732292905532845881469704538510193581826281142676481894875487534855812858887714108848808247787271040482073945773093455459152329428818481982825719309519929373968009932337244751059559259723420817715717580872886675139884923994762724950713783662362669923699163192257798582397509624728126712440994172604706825050004670078530538616910282579493687674406401632247327831579911096705603577470937866495825130931251690728892926430561502989726238422667890473323621723956236328892569405840762693131331720268444870910879584793476950259998942707752739124465909046042708337802056588474095754410106309612196089135544207512438375193384399248223105865193317168204349950945905100781267803254570339189067781934609425971986203484152093967156544787677234076860022106474956572472614278057347207928221190343027350178043750246777537942988658792035127827942429910020410082116140263365988708122389090193381100222879717860463643604545660696952235080444249543528999639479435542768266051984592403933391627269846711608046221613653568387740216116332274873620671444736231912556186096152583433103809478918736361349742159271799509995593854427041500984418468493189983104638276289700929322877362525500728249752730832549611844697449703341351711143347463719452252951581863572180190264499096472227596246573434138773084181805750940750409094767109865917199536212090941224805233681049364284695795188656856220457149006084961041157270824120236514772731717139334536453862600329883104461194477921244137194583208634040187069879411399963520749505276875618362988816520920904633017391753610504294369741686002762306458392543416787626369124292551983470624400626964929642967936098822939514916346024542529354987254551340274205055627607477269918220009425600140004640818891165109030721601432662446709180785975603382023778369313159178832603949697180204641848936771309422973969446534204917535049971178160466113541119714753091505694029958359510610544956431792237886894652693841721042945910334737829058430705083676337690321978181458911871368133255289859782364705289439564940435889841198643074227863434821693267608118002807472643280399674499670243615545681721837749026346620220611879972511631919269354152225323660070087163434446698179361036232844086875748390225853706548972189280116685415253721898830999319595433333907045031576655761465399539609321256890820068409323140868174327878318118782649178417490942464941275726232633747286337144726397958821530105883330304932644612325921567805514059789454133542862838387890624965972147752892453775074152267572492274671926178596937143505059996445401029541443837024438113524249644176203097909894205866438804272582058151023439845912041907533130444753143796115428156834015432289914183307583938329391854108328704354238672177061444677159151506160287463803513419853974204270804351938559689553742525761104650759787470762498186663310381773047674730999222788460855803371346514585079941287158175731004347879752033386922125601841728459099993075501661434058141166002570867886726190830658262372163794453063404307189421304872927745527331345523785419869819935044807864468377276745912253319553519678236563144118762172069199102598855342591201430403079923231043994548309747646051579324110552493723447727614084028829699203182850248732627362507820015850592630384015515848552664566144635231736664951380683298936470244383424056131983417022696841399547384731959610173589692193933914796161634177868081705404553002270379238420906469209432784827924201354158621396737586891334480736535297294942341541323617860500115591491947748510750701498426582610559532459570401255428521242933785429051120628980447673153222154605147919427334498630056227396282222569142410610817973393178459607106240660169474055179392296083231663007788900479675288126932855496631933561249704244048007302068152148785939877458490552475572108852829193700177791023290358931556575378319006873565399597957166338197510958553924881955793522956921310126479568321175536641965684809916760213332219901576556274213287192203432978146521405493758601890951035402322603298846652311859693011223586253636368151930140950468823956519762959497974882497701656448896002009544685601454485217387778007186454906843944109949540568821957066562424468959472378452646783578556985059653933189643944089019196151945176342151241679027452416672651317843901385175673182978151823741643549785000932233546109319170749318525079363248557846650819983910168320950091978955896427648449008535249067540827327446373001147893867763675016777845982095233936855902333379089819361708168760541486660223359289651611599932249507912962692929001350454016853837965846335963191875311068256647666678981240621928877198268531439271436084414070493528934479106654538734289120854507086049136462284171686061996692320199626113559251379622836911240264223812525261883497602008976677556403589286362573931861699974471499635655152041071355819573863433271205159580935595103908328537245483098625449678262083252968926965818340752251095529160434019581727618763937155921622552474511358395988620194403475069268544679501341718161591694143235661023009197348342639866376263149821499786825267351611604436087331486873877122328322441780588669523572000102267553125720757831399168322706214367250531884150081578337473925976159409467917825751513419227427892424874309452192673855620636536324542349122855659625143527964754905609654856817650036818716539632769313857479546734122738411603046278198449477895737099571733057382234586000692372256202755348582740654967628388771076060412352168039063487883422675369894121187007665068293241581283306996681955356214440762513792143395032739412230031892828955059280411366579987210226933682226421842608615191393610869595309467568843000986063567094853714773617953744576693151805824650594726605550662407364346006738317986929818901932807452708573842441075260486416702379087141806886298854676739863063606322564651141905803531635287229016019656753732708697220364279332831259524712726359887819421919434974166815248477526099447774606711454976154046722031489325091732232556565500568747267151196311220083685437704492124341689999081193083650023493796509439215841827646068177681332125462926092836767695077006087505681538404970379191500490299021707277480999928585198886118874057113051298376407115138522827790741710694444103342591974147082955691513033852686727288283200236923291412820898057904661759818737094634879560320928290948227454214425858757753404750585050936702916870049096151817324336993091498092371648815838067889997227719565176370648424489070530209288270832371173432319536823482954583033890290278324495721031262334240497227814472822423940294315571674181128938675259506324617488862015635027921432232865466718227845709913466349556737639431400311909433328844981500337035383403214910052354232429482077690365749990917659484714412934183811597346172466868668109290599821759611232604025829814469231383496409695935106738633559222028758278343335196196570875473724555523423936924322123096598655128330769017953641881489672143184820656710231516089449117256126088835686821498593511164179493372748251712349811382291748027889764224767116704814283603596516224013412727884603949019917334385761294060861013672538780435455902759851479863328184157329204385466459708078221307114967376415575606470799702645028720242118512490765461893690640708864655389732612522766782584264160240593550748656483140081854210765437140059395792199819591235426062153268171401332956892493566835977204421222607000240663235368362485509072601982229590248988173460464998255054906224695528524796315300772822582094914687373466345934913059712698536389339696102544054662698612137485103319832704386781472875643960554874077049839761495459902057284851151515918611192568618976052819994892415275204122191484389387193878144640180294092739606761906349975264667835507570946785290632571329038750789960398355366558736889642589578102016399887789732539144873748145868285763776236642436559896913745904720125117502880959744330428555211565605113398783195245941536057644944574339078178146873464859540971116421447876870722598803368684160208490999103687277182355916241673599307658345865794487216503779204640332295257805288460958838179046892298572587793875956273528404133323490305946092373089166106916897816849167512339694965114233716061621957556261292298916701929230635329215777681055208600164929589102242628211966538750852772665903090198456485168131846506226788817058309717131258031255861440692501266905490735680500617750357687544595833823687207993460422378249584499614717483606910294002005644076334032988510496392843113933723627700000528568027049528910842378175302499677711113615037244220684879476147448340951679336676919457552584417181822013533362058539987267194713411820455626736113991750015447027573706538646718056762853994524600506924997786440206700834830700585938387398311001835099458694451108995743006952593298727544498578591189160336082170322406362472914224852426666423686923438537782620128870359507824233304740516760502775092302137613599385636005349539550020958660177682932345300254543655928773357473402414703777176197210397737807339939111592933240975387336896821896730790547026969443994749414311207709547893932069708413370047333764170929291202999394757525051872492420931591718121721968710025753462574239543524164418531685517991102690129963595014257371635394715376850542147178930252590964843572778609430736454150535125404021909146606202637950026710664457561165150712420444553579518582935255382651198179580025301530421826514483747692363806582729939843954307621954268763649557227511184474346099924553995845271303848615212876171335206646705768181858431186346276205908682624285427931680063606661517790702455553252840179791431365808180770045581513769357062583763826138891983470516086653891495563255604764471054908809605245835829706575183502152405701391321325106654764182334285857197282904166778023976838395508990441404632358128962896002481285457897422596622487895822500544017282634475694695669673489685155345156241469241254377139212951798819872832204672331550975520283035329574396797149945614753021988934866237620166354854253164838677377865612227124392796048555364143738207122395906067749755638641573893556138092349707025117600985925282260757878215089614869261293492473411564201847811772916685845046989196257182145947590772021179724695581111186197425337319848203766596652658131153602060896362174480290506611776039426959006755387209949524678658670515166060834497343437459412262463087509604695275009630202422309741390884970929361982448061350679079897359859411276783979901330344114314070060102841587594738514374782126105831121609921918182988212069197575473211949967430567003119459981863563768935220290106236608090766198162961944286240389494999807953190609470980017888420583272356865141259053637320757968779269146435487818146766021293962287115451752673374076191993255493319415798914065447365851282057470156157956000472515789143733556581392127571480932252193423327961461651634062847137760757440650316857621714681058995668514924254832107799656448154575568213092927275918576632963802339918548742658134808763913959508365336083746883854928954095990860322798569005277472377089818575658741186917532163236411797483790133884051082316849535979477652755120203993376757723495582196052034977534090600437373436904452567629561462033767654601694184021920005411618584204753143808140652559702403387772453376773141486092084429862225917915850550850013387191765606966079039020538315654172484668553429930434373991295173181214165890066609079789108429135838960287462022826980396650852658036213481981640046716337942523366468411524397077806369526789710055381161162318231430735439025485701336683052370465373742614784898454279548417608753499634694231073829899196180495363204012710911057884101753724920026337725856985310487181750128537300389282163727815274824926540804201033992527777949718989840824026108600364875411168227404695150374217532438580939648890647616722102691481678464533200644585929051247209849825558020638383739477598770813598979399616299834482425935625122457143013188463126870224123794739663628165797981025936811653103501741510701620219816226841803853455434138105287481067041827847207780708161252748637029030985191973770549497791383015441083616290560068726025762447142180059719936469172964684830361701629816912599208901267016489165363199076473098723819969820072152893064446541109127887201873563638311321484755664048901899165937782768571687949603447588662344083175703137231565285312082705959708814223490683097001771035605202531742112408261496085913766400148224021458033609634729879287297141033459032073110850160709318946013997767978795422327825828923484945851122356484595576903313128027201423130533409658859703086990514125727592956302474146926968198817538793717990585533259979701341720484434709052364245213871853628647976582733148186178375186061159097647791872840540278960604705697547239370286063099318054982350303813548673430101043257688552497405233193065886368322845561284628209249857844844052289832417880390517914084776625466564446901888276114173464087612672222033386883031897122494407671679828344962090871795149219986307943451482275406067481836740273934579554480327047568547491831080135657319198293745384903723680850914388997750291745691285576745547583467895620139869867445214598469360630055885999318656517040013068632951354545885283848846621100788311159143860450171457767010947504145964899258500452637989148327122631600277736709235608779453052601433819894748425740102034874394430916919482527340423953573589401940116750661189844285025347114194567778301613165274128625347964505658444636491934568819950013633728246384736615345395915510398362020588822587540644035033778921832072725014462649711954491888572855518404463167615758084764555810071747657824305005101522352536682633554966875013949664810803626917492040976613312104843464489554357349269841403053525483436321413184816162034668611169246151520572835335822478602254408277894661207171516436266008275755718106170721650681649030150387056874956056471771922738486785735882039549731327639851966415191460895043254353482941992618697541261604595288996795872522977254687882221820589133991937198994292589607770049807989435356262274237049597230866437254628530054325908828631046847367735689562482490589676045760588419810808703254047005455424905167133595293594758050225627619398722901169564091508428792119783617695352003183034988657294398279975614590437918499190786071822978422467619991863349826462021526582173310396298226050396455486204132690933678823110340103604257821584510721651411684526743013608127472548742538622539429206651544569831034035048499283552586434259889969028959998653469593902482809811045786672413776833559169023565023624153799217928022015360027832494363094848438805611480259921031273486536743084382440109344377463119765130212099479224393717271706282590172514153865248572442472834875787981540580643991901916329294453385111118616872489425001769712432246971324654234205964986895102263116402448855483946630969168356004978917583864805408099623788516498919543909952590128121679359732908634344373283853836789917410917875209287476076905783066753862305368884739048748974925532883091232778703311110196810125021259627836806745134597005281982003140659490146060004337073320844817053400128616973430425540665858923671408287001874748042962242431692935849249925963604079107417248428417702871468333397678654152392118126705204093695338058706349034505365218717697487711049413280998173788071713201570789248886822217493833937534084042998106429378928081289837943773383456658579008472215283604567996111879196352757939928112426303994459098905007915077967653096513898271561914406802117475572114378953392168669780640373253320216097434295771957564681993784949839188241935945326104093705745383018480905695995176900707141796815949206954207256525152175401295667402594354544761671779768212699460076808399058098963623320000186152981139162058146104471944750584670702735847027518126532605673305143011719178758866229759357119965709614733945119514567125645631140066223095700990511852228896611280376647318802124906042931933348877202129523091018430945001607663922943304397473813542753635310595418145088927178896974524424449935412742073416178249834316124762146625798753435888506645155732691377355786886297347312963397381559264922411413547845638494707669983022402444876650433461947390920627885380990042246038233354819288348245145182700680510925271528599943443079138046274302394492843835050714102716056528663147546471162714043017024420160124403684449349976594168702374472062062008876806428398660200195321673733454321273792656938122611551405252018138442759897775391290200039171649021706112689481914249946179832609927396069276925942825860914662986159219903399339383640650588010718173714267892768721700234912769988775490116549482964097309130077948176260311575849130108893205101165215731776079470137990972795093086897855792076871941874453707974179886455896328761122369061953622932916258097316772325515633012311808480468758973275271425222970576300871362806502445645731642212299471559125917705620965011431754614850613956271841008981508675149565594189806585768373403124534487402149338101308901841265797448392057017151517815717486138284243555503184124513234648949608027221611865226674799652329449427363873665571853039094568733971364118309036977707488990037008418235486984444810654445262584993617988234254689425153850158161459435085002402608479133632075754493083832448808639740268673528744580125327579224048855129394916840749638829556772562842732364175669283472853359995063601022821335474040331006950225162258684537753863755769561435532451152297747754885319910440289769596076200238461765381766715724853796439640659090176073399060604539052653917645915123516750569706702086474069616468709285219688746730428332514054382737511311913991329241103148324826423438575298077778758134319578820654306837450268354523225158666260472399316718325075852633349447662386832473938235454647282705724369083020105285635921495862548953189503984945193927473860705356088324908846681300397020900638916137170173163143247408362343981581836915289498290761157773445904783000036051821822387597637851852396970419804034778100463376121420528065261417356639937283490159440987634179422287037653712709572630668416634859789291066777765655186459192878282811966051252428028912333465634596170412457087471566370690431300559620298257081893346428754213359017609993488040003755163964983320676360407429142609430545167741984076526997100354499973296662438480807121568498683566586915347107430710782126678188907042348832051029801532246708680239984206883905189991426360750549717854406178867322829725677936774486847217678155288672062767739577105968439086264332598445667797330122872026653287839649802500564339003575661357705245934600759867545823326088738124055565009443613144687618974685414136937815555407822269847243506548433526775474329447141828843780508395712673256352510723280546529195702531557446165691618701212788897857635214982062036702613816789560051880587325548148138951905584337092224210420634175911295027631322674166038508119001774676080387088799145705574651736532935941342206470665500242481185857042681187763727408139868870782535627592954773072633859205142543615639211349954830337286260167775259237960559879999597418873772078502267311272471348187110065562213194994952237485164704219415034450037004007071635552854954318399172594696290383886880898759111666161256160632600595813644510057454060127613415775983504340608910860029687693826030941598571803105356853495037582097845887137214009229170748603051376376704030981285836182896299858673968372704592216080678958296271698960663465269910846280553283587451939521616072216985162231721286039261602620146610979030678903514727545857601714210416636342048420014183336343589278501186241733780599450668427935973975153737184800522239504924186326677630882421302459076814794799043919288338221720265766626983097019135396043824056980763775040405666198471407018136340999660582774473497882841749016678807175147976743101508749553991223430697104804458879409865679289424114529835822405040761192980183103880294059225758347302269878935700320243040299507839176456608285526118868334215119417025525530684388763222579879169559245334736869577053675045585077588832879248975128008696320313609343196357644552946041779168758610082463535381889294758911861544604886104268837451467675377503159372177478174648813860190754871415792818760997518406597942872437074324444454320036307099753901745583039721631771850367362015574717933666341380642613132019406942037730986216772021847066555735726315412708934416791414731163861005741517703005220961591911389250816797522613559658929391702878454193456177768534689932079450832218439787675741508028562447433409636069554267545908020403180491228409466469851681936240383812812223844486159504426764266653472018370697753115423302925840870766277966613479678941472973248049811596608493208913948618986888859286372842315278526957782267946956367492648923657412792101757292587065472813739443518356885438413566003865659981950833020373275498640509241813748017407868608900627927846946432938754853740650044930548261469142928116611719529871804808902591247630237929130544698100026520855511125059812752863442045333868863475257615744814689554591136715082202893613439891940694926203573645500002231903730951757515329122840047235313194186172151804269366687771088089429765901767714723807499213908082235610607882913142779150639110833118426569908246689811651765915697353055196448654362518979417338125346221495382598441229982237649610476407966163065198143580943433642193567986851463606550721143023053324051909697711655818651279120760324953712527429624577268527528791212350809444306784868853161951935596554493417963172530277428126082764348766764779704279007994278735703294399042115088107036902897091650763089097894495663722579207833072713803784704990903456310405026542344340996472395899956265749522225854881348208211778139318754171919261651293246777392254102993767042686542269081284677014169822465182936106569739773781104054200900566258424857774068545519735435790293904653795160301900910698677675758877439759450535924749268973981290195710754065300611805657887845139096496803315157378924631122588040278924271441521852998542469132044479092566587680589841581827221692165809675238616244762191025889855516944140071867129468435951046665462429674797458710121193476668801973280460145451011473311183164248166325747922326768617149946263396328989084527896498361305991746680122291837086084656870849181418574617644402020696843783502432709592291886674457163422769000093939817208567016792469666023060903793910412515029578549681691775605147672662077431104044468089650635313314467704232916394282913766694292085704034531370426059604190381094551297384344364014912915422767784840584615984634889931971134040784750799578067232649792338497427813895792433180270118983345008138606507885784562259571394816031457187811724824990468412474330357301601800295944008249945613022179130240434864955601540607652290267683522454012958875776726729328266066671281497825060988850283616421590981261437295629652112717423201877803951097057887787188107017109361614864103063740737429238742918048806844421865653427856492883265171823453553336197849162269243911705333103733210828455407578510888731063761134239789221209821689247558131278850932924895813365408389636237026198571250433776625443697824018190276009454031939463326654409898923612001100414242831857675008192557134997464882683951358366015811867774880035254258067372066303785627538894277326196808060838636261942825221888399638852062414565343065041863609386520451160588639104145633162727317960468986286287899346655167947658467812812753631986236071874094979789475725120609842298326280444813054756291804001810377218944665378221112679657568886046576903517424982649303402563777383006330383175887878723990086136485793740210770973858016753302964707144968289047310836096693579911297911438182802912074564374125486873053695631793278769958884179903400464120185842264790708009745364696468826463496810707107462673509603008220166388185477934088600625845215984581163999903362154602204228698820402370020941895009212142151765141125389067133650019141048600261466192429082480227060292017174227204186237205945200480325207447714122009110652691521193354975658605679304119324820894346161047418280470660546598988466753758560658860127874701396326066806066176671944912873964168265425915143317886559904932385825862352287207029146981937664394100719249472541676575072417475071853669974912961493339274947305399377594428794117723892853683874382096500154712249200216319290732387545601592683977266999754450134441540900582928685497987171170406024770778690515032989916104710714850384558282097966725592166926767375823858999740282576804113868212594333985428741690877302575486867539786959539407885667448528194795470818391983355080281771932200214133554569407426277888447622673856456717482069891362000117383660338943408858255622581838495657712746412304822508098858394257034761791999243583481269122511560899935801290701823877931866970196297132474051728100056105089279284722272415880096340814999350344261556606567674515428703174641252904451795593065144820834709308707287833193972652694494059365316578122443755045777965247227278183051426061688964357712013182793050349523690231821146720526938043938705788625993190772424652880275352320608559684527101196375963263504060784676496296713643003230139319835209956249620715536936999620504821980093937093194189380518528670334909239695996450946490150915655235421807837227430271897726623198125267082407136141976758267548289929571062974821749260637999670730281234511767037586798943558283864371737706480574606723868832301222333094276632065716939664577057151623867638793380739167380665750960215483141942137931191918958575775613415237137039645375200181494258671028547882304906965515455150593442953942058261025807248931157350565464222245633431324335153467944403538390388443769401923964935606439692047889511229773131072024836554577179963527194835015554263214075771079824869107754914771388909369035608885418698068224170731748988211564739773923644863716712791547640913906631676541553840375139868874068636131870297952633227186640525781167928997947352574754712571436300491087812457935561750191967413389461895411526893031493844911324543088006211880713353775942656192516798700067321755312208606530503114417397369954518066246661626681269730665302959175907646730743116730175841134133436408323125425866444389236545616947394526538328232037318499910868317743388560623896321907153618149197023334345781315468503078049681084784733234820357991082239809647124708816997030676476943215090239975020603965610355542178062371214576171835162508362208816281612265480320255688202316516292558538971446037971744740843384064930913317839470983252156559569760433216133426046866726412776422493408110815374711954723238647315318531587496198411001230799523602834260509560374403882994966245436221241360598181461389928690221338847396217695619790693876193717880894290879568222886423964887310388574991291214398442534019974604252454013689921380241790330163317840709480188301944569175546719290441801800092678159641269199859610092234204811486797405317071529764314348103290603477415332639213374023568569657211276722417527729476859687069283361426260137534055638053310046053405279258336587927410990185693259470434164464235464608223518255601774981183594154744147654347156829749582168515119228794593784858307923929784189905492138098796747714045268546440945142553913336000717689037852747463269133810900241282196620581680357088740590644964285014506637451188452299783450124540653796078124284835394854522384799015030523377237151106407785779096688335377449994681621700054527607964781416628751601260289268648722982573081774491366835923992587242369499449224498905878660768812222697692703608335047360996507697394486500115900779448707748827642205976259634376096251625092134917769497230630382563288588710320102893005603616440459791438656347851997904007612063042651764974892535243360157124758100134690043634615799429712766555269526116321992175313139622293360306241874279037121036401147909076322515578886817102749271729783666951310652050345955780436288819337691389861254849664478793099678144158377810827198375859897926547586685325457402664540460549485790611796513529466606296769212423394466332771017535129314950067980801038121004107200339291052389153015555552482015665555843314741605946671128992815194443345529786097222257880022150335128262953677070636580939949281910487515923428594933304677788186655317233269427425157033773840045356315594697914248572266124833192133358407829102078874408764467956319085536757775545081383295644189943188485148382934526172920964115837829086642630879853283999284438920277976097571021840713294678788468488168255546652502458835552644673326446901426888653549264442615680068584843218816039969114890367426893703414365249087276194638774517772240232346248445443560892741352867254458650041274236309080303131793875323525190762551028093552236760073847422088353465781764894947878897282523180204899246182075408394175373736316685153043403148878031294613070154980526896431807760159554661371405630869708347809446783958922799369979939704800578391775651078935623657013683178465911723260710703888762788996940300339362298858221980347213065426459593298747533509254440491993911300255032827059836658114296638939351765420690414852666114135869647560376765735473495487538475654177943484864382420718824505305278470982151684201923520233420632340111449100102433343302535469891400305884873046229043733719373239685626895241558857312766412344118785204038587466557479722783765357550850955214971289539180711872128320789177743374304033690128632687476178698230446288620186497147063573364096183503636053413075497169508980137797738665369619483430395295385112535104143534650962825813075781598346104323150297756624826966774852187105784839694336941322944202558177188904464733179926441994241900786300741175885928604746621781191536379077096562915391170369275808546447380190634567361558049448313790860945563276346780820777166016986269220612932111322625773511825517336642941421399991621886472647220739278995167089660926836960356759506570251150519145978674961220358554117865689053273871127996272932789048186630441591688249982476734173617685148745098502601759109161148111013034676282257861980454613609698325723482057556127275232901673568085902938467920688917838134211690279736904859762383616532988539078367146925066104173676177822592720590202821649667120905133423803906125717280343168993256608457884214194347362227755652433884900813958342656289416389980139928242267450536054172999668037298878831026181842660667077719504105944188818539233622171582756274920357394966498399141973734349270149620771507086275342833542721581767452042547781978761417647410416496939907859337844779665273398553149845598892315064982306440175078367151756205886369144093929750295118689776618337589991839148733297622665108061070963609020015406455562206299544388050854490739735531387579791034067502446303652111114223490081187369445753407208167076771060693696659077827680136793601532298581703908608969388845029918206494636651435916937154850047542662336253741988099865299358949524295267725156325570997685803183492652164372566955322359227335923008816391517661156001992866759859201871172404782592974783905531510164424877288334808779954673620255878105542753319901411730909993363009130708410420128264399916600417127823670457442136334720066203998765713857609155644929243050162000869861409098308965840331209155133299647778005103500144158350788578482998214166734085436907308569551360053590929934270992998555475841773550638310855301568219460136566929531286795611156564817134395096826568515102797140044058774094271299583753397946772360672342366837179688470820388479103327140917939779255934769165734375855468266772844839151542545076345384186458687672129696022116734444577625397972211113862826294026361488639343021757511881626352017226841763174166052779686944116809267408420200495542164955304423853040724115943419613543500740180597188222677613499069321573152808015056378312611981511946774281784367609274556932815184707376065821108861199678651618735165701524629995291893025797057125395683245453966779181198653077961752095917049154654853703424649142587521750317786218966413689464385582427998860252951494668259228082522288487494554605392570369880405755978450291880248249626984815150698520147992518632679751634961244424700073772910147934537003205654156362494925369717102599612962068151305106847296075458755096862436133952988775688813825776478987830359301599900096972864265668887219192851606981725486057226840957633258783740270738025888643155012671432612849009128231088493192210929600260200350166536289166401506145382792994240971560808290946138487712822363453501758253096334387629204390468997246535582944710672347735748176967188501916640532078198607578859045277419534875966551145024874374726809665574468589542748953892479886722697613580346053336132894884758001133058715941772632971353782947926508840843519448479680556033831710379551535839924225827415816015517724050087074588372014311170083527668782663718504111191687439495930260250332375514448341226187531517369658276733448163154431892745505827385788271806769719933394340002676990345561297964211922340641149045774945693226088073699937103910640052333199118575462193267361809031747482027847334707761651606961620008190397341749173800666076171692145192703629003418207451764370145446933176816135343925665590659699421169876608549064316734432192635708998075740267083372174930435483979287068419135612017435245834512308834027051881674009591823565322029578521553140382171493652986382575388775649563081888381739581844842377859066580997720370883041150759221814240358808389997049691409377664825503930276594187824793958910286532560890231649753358094258479395601977469728372007997206691157511944101554236375796821705901498854594645916835656789074099396170849210907758852172303769452131878777969944735053167570031451758800232422774252591597001082289639928484810460727703597301847155364419266656716738789551900665025050707624643985604967199632947784378385585394188181090047896958849641299262496902589604322447123216693679561351593603746226494045742270739302021417922210489200950359857704645246683012077088688740618210712277031741168406057802166230094668204659999082917413409336981882015799463853312706236646378481822156491416424993112350304942310520112864597449132800003147815451343508497417100550034808072203007460027211243039390045342742913798977346467188760118285088992554062285174259586947913226484476659426759338340321529896149283607159318912301224943550678674209165729397046323270753094625149446996021982393941545302024339871450358497018918061358643541490644595671990390477900611793991945587063287673523205020018230129061740834385948553922793371862874378931485632165983915131247636256073102893447233846599908548578432388798528919992814208390072383165150252429456270889327986234437721694692522692421786674800238155331852560437910892964982367028849856572293718448899590683640387749603760059064059824886095212834192129989095071920559207564996419853265322846349891651608629753763258098371226065402316714241386769144203289877165812467278408066762431645215290210537568580655307578691623154623306961261392818777378990683448117705811364763128440299339578690824695641509244116218174482192805274831948676098844619336632347307915005233183754664758452352896285213689076367633134658733440450557441090050683456331301252022932989817540897266041110691846446412404580768797487094093172151604718481620545269534742957685328371548232971060656315816876035227444158706462384264125536783223201623009173179879916380133809251410582727514163441492453820556631990782347327045259126288350362815368327727645548269959585296734424643095565937130636128618055853049288941311010917650245185933481289245781381209552308031416041916702981756354622721079845535708282498938629338738129601572684517836746861978042078269721965721928067578780762821294621365474614897994562306777969527506049496244355168971901247414968529988586863335948428824622920774824030246615476481687498679854352846408141615530990642282974927874989649071212751029897295261455143500762786562684604344312986248652309018827576826424281880202985967195334429001707060172291354239781090086547089429168936753874688839247678912995846863235634152555990889469157628736732043336708700021078797055269876667107852274722692017471348633962233374559045647065145167955470073393250836876134438340404633046630410269274467420796421976540959068020627200844628947903406036286594162641842540258352705333815070251949149038209264804210517759138526286116276176192273684690755786118922800365857800880213313589002309924961077410439137198098135821248068437010623684390151339259876523066891644096939939360456289477211275766010064237851209314164519307443435991629513119969388445446749712914455259748473798609294821548535958230474450662110136297805841551788249151091419572350197219651708825575834320412711525070770242190540069014626831351803583947828056281532027146566112569165788094644313834896771505987454328954679857396084335744956993006074566787003308907206318267061280474334264998595000025627274286561574604291433792522915317376935835427432010429061524898199067651344070427589215404003977308089290222301199546970460654608101235773147556874695331094778678802538604656675753551853982220605544522185164066360097792367029024840481378728390044684067977068981602084774976584031860254506363350828492394508080049228516799990133589302004296456713934000328439226406195488686682017651825253585137318079803658013660663511389779955500116826823247722947419570670106362733259512616397345766268037548404776458471758653370940397617910832025398910500946804376932043937065265285858363530563188767119400911804849445667039827542241205056855097208664856634892592321577303949065368143549292348891818443684473179711169978380512164247565338481110020923398900957220703943812323305352649626685484005874043369912428569232888486223077913808596771746502823316845403658566051107932760506522586134635480335847541689599351170348974537633792463802175825384228369285424004465764093816397483117314391177221178640009563964304561100587529722977907543957179315133280350282844156115258489492190408020497083230996715238336644098486876918167393278636491591921092813434029988409969807252809306059853422124672500075946989574239383496555911416934560444028418480636063444533251166137142715652217911267188653985788402544750003930431064545173293900656164916492535967010401894488445108047505309443445723296625999611380738698255457509105264105884074745658649104129448151607738205815901515530832613748685348361837382868921937467690406505961143577918927626283766164748273371790945339775451944794174003145324778017232310122473482276778473222484601773221393243709104789116594822424719438750751056868974450178602882286290850628910192590770519464963926863660746184277595740500233233297759150305190239241503084118530355509192734490429925329563626621001132482606943607047900393028128999120095093502557413772385415257464326510414952458259120715291987195017790210910944474048000532344390389628262041837314830691554491674172126570213798076661563557737283324083204805704306699420714952415483269645874511111656258455000363866219925075538487079810838367998777975185981923359082952830321248035769093545474615683528272402429920726740067609296397807653986513493542502595894387925406730790414155553228702324755017154770042088538362922939915677644687913922839251205901435493616816607328941939667171737928201991828764280266899196606130056896308976336282377813361202560536325639901493726690526800248367193045968404756188750937069201480513917033842274070113298044606048720576281988209514833649403691858456795869513830552181598410876353115024550233887059672721836672573980652768294377563911732869974749426197894068150192316789020290254989167945827254386660232761475329957945570578305257941471349108008411649127835361111262868167875775494662449467393188676540370985996206544774165544232227159323379010458913349335950966718322067672584185719804223540795601290060586859461052026116052875063086979215630108740938564077679375748426930547438390238972632550279756797031815105102923014122443674243112861214653006608696997280150385603388960230144240807971974024587178607197621425089525000708538231623489213352833502648002077752666575293267063116186132712982159706518957009969176220019492106629746547130276552761518347835016606704019358392947259532324601687258096256838624511416530307162007050834898667717572034229528572514903872664092324544291743359904382428937555573926654363779498553135534307204870086027320676603622652196966408197466066295672506152764157842350009387020864284600731408664804584442349512124228592489052006836978513872654048474376626318632078345571573773526188528014195328620638151015397190386017823347922966300530073750377952116353329172804450406103457472719788775732402210310147319146963751211104508853834164263052391255185003560066146855949608905883071467568527125855480677292136221230254060523000396865328923188404671290876954294705594100594858370063273649183009190943307855665476380903182854917425882750790664996657036114523586987013380918429784802769008657064430392483804279075846115152722451338072942835662553330020603121454929218667447209887736916036137613754653015990355847983276051170686619804681481381780101525309124720626234344406058984406422728871158322813286399864004587066496501990827000993183994900079615055629066140641178759022318752087904661959240140201364179379801654133268929886396560109255796797907993182788900630465708016395367802667758089325734630912720153366932050471226937457955679336865696065331429304088597475871050875925802849404866494445987353303448364996596678697037474987417925373980616241530932002318498167715232324112398527403116088704031137489101872566141563681513522827427024048876920297371702019354696279482116015314990114601084126058736521482423233328032689966051561051673606095523972293167426259778966465506305424230023814187760624353560398751249290741137451618324561656489098161263691477520666457669223765688422558105151282324210770166830457565572618505755996740937430990594977318100710225652757299223665032114459103869260316106860049924213753237049452307534256258096229607707767984298683663711735433138223786902263944018771760713224950022193777924028930726695895794863330336426026828560564346558941133446179557118575056589943293750060194608071824914760332300650693697224789022677373973436861418006525902081867961916394192143095470866262019934036272071466276816902681232286347036449180275992068345753646640497767136841907457639289454507611066099338851513562347207144070795047433080471490441891411577400003880290482950038138993355710643643143767627107025985806352946239860191933936662971840211278222848695805292237404544633935408644093896267985175760339431340882497738058599466725068166526046589158629469979039409329616000339602268227647232364643356552101345014037425265851736999226840088550839476036594281963753329957245028814934918313624711189638704559982313803262370452059024520611250387796753113642677221629255457197899090048678313792089311830043095492145285998265986806124916561745349307693438192295139657923279119060292995496139645619008920831591705366182554025865633981248267548574130298495694155625317600556156938833519979138659563750077845791210981268676075406515132381940261317327297033525633431361225659557207763131678540583732547913645115303585581446734464690251348030481057490164343002571977947146785867190211033198968501165560042115485048067314296710838088644352924469330208071715259011446058859459764836068031066411648475958168882664747555622321189864102679546008190790594082339679029268110709027683226694857821447851388210794484057114022927461876226654069671538827840744698878297283019538324622198514175917594617936482505867220851299791058009996860555110096732621254223278316273004570601619797285863246760942262091776668626847252840623246375875210650488933138048859072550725742460891760695934302112080415930644842825426825018245222824048858714145844015998510882004588248611216121792404103616033804552148126675092983483716631308242617739802126250686406428994252093272572806567515868529558451783945902771219282629087358876032341172735981637665283908402403110599614571193564720479903769242540635263907830449404329958212520214029481321818711873902223689063897366364261703091402320564688415538375953925872283693433517146839871618868119066308623660578535004950381836379749973502599091005565651075599591270341561820370918232191236965428899691370751602928429951493677364180175462034821780632109405870953849875586697314456264721944345742962191625010732911138854639452855837464685957587134851808862967129057077848232966927346881361612937586291201052407311004917652426834522220553881251822321790184650147856811808875527752275786811526775261963589180085841340490512334376824849589842690712907227871473851636807431464128489357066829134782969073717550264749034284633313440532343243463171329668319908117863406580672459491645820375837610809322717020012636558170363076581025552557582294075315607417672021864059295592597704552038486209182850032541855152698065809100568826370113144217152546714557175885695278933428283271056454663129461496849677688223541103418607225203557356491441341190341053131055271249459419788286605907416938795352755781383120792070682618856887143219935933073082531962288096844828683633835241466948459804480401916611116279896920989670221627869904301609385092259989599473178210657924333881862703296435414096406649206070908387788260791271745110293116925306025730127360857889162859091096637934994869521368981535077937299640130379314036323765307537792718584974921277459547138374871686980328390967399463132344330997895758066395062515008807763465139303369102143154710768015471325475128159846015359715846968871052207278817650377037844617529626823567547772383922111311292909539941660673746200947385708904437246824503765308999471839276473793218868796395986996366369188754121904768055283715472586492588731181275105331328266858078215424640489174342278868149064552929863105844802839998356572479833762395557158254464400264786132621176777845301092794595852959068156244241267699122358279209108051819774880717411293272214748200735459547461867762014167056370256239491895007061306721196626428534150594638360408849973355920261511271402751062423986967989760070460682139970922839790239218280281445179482500415179213722712468918620513633424894134899433111072560122010323986094451221600709641939451906862021272719710096714443498384066141119351431529842061883020844621417315196871370077522413148697936979897242704891877909809286145859182281134871411941871368353345227188727475313180310587631504080663673333049966047093444756394032398167307093715723508616052854082456237238949398582953832799606633212657581057711507445493721437176172044525596817859265987914921280423902556076509383238324689654274363341880433459391422154720834199789497086837041759685329352212760697090929580972888983709489234801588620847869394758298871597238002016496327985640832540632710020200988692996679005653920863569750486052825789094415193027568602241085918236109732307644567004294128657969185505748741163922683902967803878901012982285200054342294044605125070779965109152464226342581749483208729012011599505490089322663266684025428163755246148056226422091795274276420245613890271812554481651610447428290756622662694115522150077829236750311865062971640303874097052999003331657547313602172655369607179335384510541687980416267211529858593961215619272253273692730268404302821478356775973462756636530043315875238481382533034804087375386682683600723081465567968231026347140766283473607448574398538695195610331002554278132022320346794623592952002733236640509127149703796303288344246571901860319665863122455099524701060179587636822933379485329588220284452389029402500292329634529867560996902184350408812963091814110042972865265611645709223339993062302291732981060698879108069305619766109568927564399274599653680089312861835266269660054877462547711843940044953043304274455703639961863196306515216441283123438397757423136007599981005018734542213927303121543626695508926101190273594772638602120607532220864450203140088006573244312986714035344545307406522975869890046363717468907820958460752697491291741968526495717247370439534798960527427087004649927422567914008127840301528183383476794147454844824564526020125399043189023649043776026861913370944188931903836204169345265699453677956277277587824225154943471609351401096606325925451767831475736135990606716576823115893591213466376971199754010126852380248850498319785143906341134279628776300186874618143672055684912565477854815727604058147920622619275378346742960548168166508190595950254679161637033800399627912189457948004975322459908833031641681202291967903749757846909986807811951603698858052521170211274111364219498836856825255522825318367991766127901171818642468603956599747294051444957686187031774817995642474353698104476024258503682261795247319694809931474989082830567219579368606181705603035891571936324354391930355739145334290170136410530827117754418621641905578691530379050164030006754219957505023511807111997901156255134266459996595274471679036141113434604186738427613567795006952801510002802359911454150560760464445541993423403699101011852207011810213431741232585905497489348163138461981050511717577160285857949188226245529011317668548972216461315541404319676005137080914335741559047099220638669066239144119282900104933246505735504132521930962836583787026855279363671572734456965762724536033308068151413813224236098944392837517592157319091412906951259643531825941167295233023209766207899628765298019390210699074297030868164623575343171050840918224168804951573776641782611982119783069777411758243584261025207247737772988864909530982086564520328467157118398016842313493273525388097596778506135832084871099873614893422519950011011399485511636548083209092833044021244243521827299216239464595170462611693112789184102761757553331491021170442344028680686907871507944476206505072681061521760452899671200075981356140433017474298628907922553404865631481019241686739910296262867851886939044206402935365865986809755304319817672950249759917085551316097587881512025556905365653789626978332922714316143044638664872473844177963769580927294810361192852309362129742792010946747995112136678006521888116003994121425070276807915311328436014653387922486834149586072179221725481525515423309276997943503830733329293495053571299525740454697131671948301850420402471105651223293104575627874207036282125876789522603804909946003518191067734807515978706838662643970635249399345168079391220334271817806588497398358505201584903037015139642124671852522961725275987135630755378759669485911891721934166201305662600170334328220346261381971992443855359323897531968867607657804046091532579773842285236735947763415371390300787013913037108437641339101413319924062408215605944439388393116659803305854112828384649179684181983924298706678759871483106315339608943991038464679762551835862136401056889139957858736425927937123150479655416886840443048273913194744941687429170314699257836815643017180965913564225771805675978807751935859095693371953362142475981047524468496545352957536556821926849578678358181242060354372140811132773766098001527910516836450227920190067805203452843221308759877046990686834783616906993883532637250919302183019515736592280420421015707570825205209022842119970368119152895024940429369490414153311089728036685237571604463639264151627273197036030947303531065073033030280654217396704197517913202913436229544775191099264820352921200796080941181676180179013781626136854727474673259933482240996944538582636192243758117781946930515725611021498654336686188945576897666229933705679919022428176481798315055599887831778910757328755520331528872519074084868971905580822022365070644478429782013274201336758973420075314961997755662353236402765917843821344721775031513016695305802555537261571696318850916122333273550672970950213553412109549237503665048866835117535009063970926969109441101941128722081020573414597078376541800660337049330539186762564939119643042409662248385278258378855140766717532462913820157754977627161042473161138148611439857767111257269951343119118415102959770157466524907873483812363026166478475302659257652553366440102567467413098972929383244552327540765103207854439246619895193482942329471008413284646706785187707705827432302639282913690121850360455560372261863531306277112769986300825731241498919464634386236403375268986377250139425873435135774330486065722945760222391190740397493008399853819534352199427678061481498899187919312327115063078969277255998748568515872129176717735116893372923658592482399762980382974738397230100202471587848112239234185770525221864103739125112815235789851451077543190184346959778810068602499548271657900543550974008454283431449621651473450686053027196249599479253709367126861783937658653459379930288746954338817326334234537550054775583279228458189429943153635005078889031993705652415699939263084065155504056556682035726808950923356190508788302799145435947950792735486954596902782405210524539444829278758303911962499838198816340099165751011171125809791878820762882818164298040577847257471199786665837325741980272112367771163100019315570826003453718966205801630150788577890606456933028747034292588744772173269471979828428526169936130789000504199123330665609140635954388140892081786263194258815723766225484876020839604782627247492885154507862950599865138198402838060321829457439903202330341039834748003885194368248579716770426121224143216268726267721506515994815218858699199313312885341886789856798293924334425958991989914810107113171406843355178928487634163410004695955390664384359981291971295573338188416155946952794297829188548959952326127157863954239200925500873739924292497971200825373928040950360359719495362810827539387878444266934383884956583813759060237445870118883101912098476177881844188306677066116454293361014275635995696011068098930423880193616139946105905990911027471127927747209508601434934387248503511428455786428965454427511035813826693593601065165581140877699327453344939775324939057880153069587955976182527368754648768274127816521760795555306761788800025745622493882699143827485568143301687805835789285526501636265047532510921483473251224687286849633202315451726849471264598728024607713676532683852966119920443862015854859398278478277609643459444769266399607085352636580113048021311435215872069622992579482514706010034642949819403011355641490959532038881085056706785225419066028638558786448446113368134492316839104026096880187789329635497021927666223901830931375064778021122833058695087553876395683089723431956045541776719258586751673431231585767999259519819484367125590330674116088825445012771026167477445890479399507800185227778958472309035899919369171420971501673241102692811986587230897871035624872629851427104145371866735815912916099320217351672138758624289162923608566314387554987623123127969924645803054993768987413397665951389609368870417102228293831117817101506075218829286419325276878230402454742403470422125599901479193607859402831361302766816035390607328345552179802019186977317757763734142250631380366824980174752262677554315043121483595405723573035235351477763906256096126391579224687422694835275630629513720957319970772026480633534529392353707760765836847017148359088303859938516024169367673125954145271201815343168182175854988995335481677878071966460922630416603593610317918464931837417145380963069124755217194203592086583594504262642427993645052845344215195199597076537867410025006345462078976812512384627788557828161465077595304312253347274479778282823952673909240056020443991620319388240515052000700838210387617477362074416458188614900743969921023610339574537179104897889128016224195334500268706984428989364550323935042956653641460563799516762305522826318335014921387245500892519643477407620824865431570163934889519123266229232775528092683558667884920722978418556728933893461779825674507463412042509556771241516730889519853740152184731701616437399383668914334095713390179424787596165389485325733852386899007751616157653673023187938850614519230608682436590903898937638564001319811842486145488406352516570692941048212361211982388327485597134909717867671153164415328107692860397687908685608529555144244732541074216139926728771982240789057735123407289090417996465645154538434579721885779817266115158075149594789385609373532617864966087269062597837732314620905292467292628069736527317679549128077293719508948897457520220217979454769789771972977993351666760751510957182019077785687402921832885226433623125647772276277598027890122156295950170841994182525499292243638182305434203238333617702448086167901654939542893068949304788553941427282050667704592523714386288093571459492100973315460344908790115532152109572051759597677491953194386557035157440286075556792004209752556832799726646883190033026576394247129092349423028120536394438229904955072772810852722644780313199188828032415216897135150635392343060321630426045468051301376428390000860620051019834645424660791830580166265913350034990631549537265905715079702291393006994721458433273495271511051832047647429866517959650599387564761477667235657735182441923710547245096868234758133789775485865103945096420374744141792664514084100891921748105702221244504149799948088865793445650967634212653042119344726679946393001765734000299283429248257864247421452123765975517765657392727467345114673197925222409404192825714239282082294482462359422151626986271703927212696709047071236508035818486893392707367432656549682489755837635478197104843333222185668006714849400312428113305892174305241792754176231897680249532657166190630655364889662458499032987823752017952775207613448686945476284844137183841950844592595315274351192543488582051875136639355051361075925668362719279800620502229870144293333436551501699202963375622125165052121736135008241821550991948333772087803469665856245767219164563183224868067478622142694672052705609144142814875000013465995941047041244272488368360489576371442629800163804281296154770293628717573001981991918966020356213429065540887947058530123636698140944668119788713469938331868105525066707949003046100608343088015792758152127754039113413684054119031653391037417066162676939024253646246036256453783849995458845645251495795673008747569905070946559078768621084797956286809189572242229229621636330499869175974884431960676751783364424114330198865504376156830796481896932978222382016770794553819932386475836256775643743008121915195436543013157466222954258075638145174462893473123595999468878360048822720428265120976532224327774790135159500735244219156614971643910189199790693432563301819412051289462028067085189299239735157659452349700435343676295538007719035265950325128263015604436801116799986550904053390277834109940273430007733638291200363828446958418859386478074773469366620665317403977987250091667176159091315673610085701264970720894598924424371782589962514648032442170250711472845668172192234037869269172571172212351710000788740327691755370678223598717593323318173403130386741681303897766806824003164679512842166517887156757899280294720990829694134830252622085191663001403796506638947817973792031865881867426304201596163217136545345673665743166604088245682940220843415136976412383938193647325320103393907561946068276843794955537582055173523204044695310239801691266889236801569944429375461328888193872776528936102064558029095645658232981914221115026858046857856756650243903590116131163060217814785229778972356772033806206602272528903968562218108353836004915526524968648570110524374068192768723974365142465280919635454196978562123682055895175653521584848154287642466408919738183450544800791471952206348006847461810631704320091981355421895113761010617664986731993362314717684871694366829193398724268257905336798882295027919934699013278284867706292373175304923665722505630858776686296451388591383572332770680415804079785991132820471327071347898768625187415384097706203997617430873716216594528386077893995765762769075810373553218701965414398832194024417194380108934165584490871375887616356341978441464745177044062942991375129655245807701453650230795846157885598687518695200729664212396230496132845870908087337378358644984426297533928953007560743271460842442224669345270715431018546965176101092149305812999919731575582190771151837839493604084885602702573438397036402722232928939320035796705742267031908638345088583203217006415494310118330929808940621217345440839417048029382909476674599565668918696683322609998114641798979163573685293861085525535658109107430347655718717704480753070372680751311153957398722796221706599295427487102404732189002363361031495857837749981416636969923746009522963391502905480813493781039698736615156738957390058570551700830788233544127221833367691671091066409497707279843596790314926049892487603737202939021738743780094699639588079260160718734594138336413071560602851166759480903285847594500408817253114896891337213217248112430642447214777017746107639927759618556451216828334430709118469031139549421580792892779393677866109036307859455495361306660407411772894621617879203053068374071007936271965495147191080021325101158633060884358412208864259399937708895222474873915664785840337414909950401248660871882782405368409641533770216577442977029230804768732194005714959637370798115635502867490018404437367099254549839265377707998061606395228981609525666285754863017591025781523381311693568682391678201942219679977329957840066847952434170206888324222317688799618534332857893399425085131461436631479540464712149257729356455093994535121850274766158871349378899295685885617297001919311546772223870512332660601785357796195353472169253973316956785467331592569560947856721342881781639291376643701604722478037275846254859878473691778728055893652782313182302498326851188878489682393641358510975886555224641420383980366495071923340242999856413643962604443149527704050542509921256952203900186102082401317389246576700242826007494792916007608743728523885971777086401618193036596456197715871174016744457949691257670567934875660738924843624890830936335519272998609219141906802896852228122984689273368060815314926863004692917150812036648191018180118113879243933969512400422076918942197052389664491794254096017919299082185427400459502770575188970244052072079856290477783613775973087032673392930513013906062566220500719135837912935865090360812970127460118274438853643210843393548085927599786978025030449448280333393002546772888082878914195461143726883383484553629750174157620320976166013769810455280795779674520508292463838959618389836574028486122060860848940599287641708840255097169638327615912954853250126131010890687020332728405715033652633733365069066997601972323561600560162009686887161537251697461186200929543619912668676824133741204612009490120074461545396635436306230812804128002745138088276829755748094728052028150952963856102410924244508364279588348570809805571658353359178375794401572440403590570049219701907119059200101449527421302082521775576932351613379424283990374451991364984810519171175906309039119382685368137006215197915491132652025970390814668110204702849729543832348649410494218981955423717200005678552721092452817652106606178778012889266782714935490485292348808214593897998827648849064571713295728008519710471815320386997970031989436678875266977857134720918795592793289130741525984801131771672973665913137296202517646559144181973334427162146483526750016617009055704765043393978429317052274810381183637584664027943080841251567166876418862288921366952927260587881852689690732042095724995531844309031550702939335583547881013188860382651730897277948820794842173913968172520671357890253904157886659076034296776444014429402770392000001009115037267742549454234156537268694985283011546250323933895665537695351701207346029155420452431006325884331795236605605890552112373129905242043650433517265375528406898205750573715267207969138654032974424569947789096215287692904077248848666581237043043806284688578728538773504366426723966108121430454206341904270771987372539954840982851156920073040835226153383618663332730650892462910866851135836463901159392540558585233936360495852183391701503218245571129415308445826334226678992415578802613325832975810069015627616696006734037219125409181185886453791228658851136107020508678859275347236632624947643338058869837062054034860890191828002698426756359652292399150808962391540925062244799525827388625482948673093992061634584442836965515943254542720720219337392060713714583839356828961248918050503560831854131897361037834385860053833640397663065405074175533504105512668205937565676974083295962987018226023287785876105981735409889862938553759140335436718625144307630625467578667977641648096118365342601012821210099207836424482921094943833608930849193824563154537377323861911577794190248344291318366229858275335678637314948362614376508382219064739568091273078971514601736393463526892452535437404041882151040042758845514294999839362227253303605851844975774557898674242621969871007603082280706444432767151613504285830732094035840060083145445419631070157125047146085029105801149675590451611167303782675205116292567938295718019614971347195054309356110472963433776865465400199161747678597655548202395845412325188709831081439772269740974234498372047545293348264323940740290226181317182959676521670575177208567220050129252305603538077499671024270006027717043086126631202193196046375057732889068638024353369528901607403499603001217443616447941327127263252887060589707395256530105000095848419638490901125544796385807342768718583959042691902516464807955082826759419892027323300494235611007878360713092897857718651281804470230502742396315489966677994067890556556266070753509312123885173565785300838211086832455104845065625230197793539431472573220360645719703600641871906243773647924325113485740333075474868924056638338966414446703477784136489103924271093963784337864966346720216111248889001580212460594392754282751166345465406213685267165181255578228473515482528051185752204533950041268529117259846249011124468000331386646967798223509791272815693521751551818746869448181001034221275444712695434146360865232797439317076319929149776191940914052413302838670682948688796833668738441960168738421715797198130342877932962946620917660615142890497487920223334473270377311211608293410122398301048316639423308990551758564134274601068345270372271095443137568474832664208504233885016404227922139294570329317841303612043386475927681824911095666990374597673696292291129671651477816333618938660687921326296394384037172468894355625991422804825561040540881269441788755575787818759425524146033179031828944677212834544541468417041799957416596120977129020467170654120372489486454842179173962924457272632466709575639403147828796618225112626556625753379611572088226924670740537067966822538885625982845353701196317578777636496823736289165378407115619875334842551527254340250789006752304582618895392394038667954981593932306463082696077847644071692744376108227476199835272159692376398032055071229073237800861225090273828394013115503912325754855990626757568254995457356367031690379336675442277280377121214812450577679869204193294813376063632323549960597353699725883183119181227063214974540535962945217933285299042757393441195738827230716526429611684958309489799209809411618486222827958967719912781028135929539668232893190776107246684136118436064815072943083697780907986003488210652034744660043553003147650598237383959869770722667662958241737478012882737502081039164555941878725050076107576386666035677752381558081595288178089079207516495838596730833143803072767240477968636945811668633853588762253004823171926620874419379557550241202661745867646556507619220624304168545688773886207533328290433367216921940104675787058723147178913320914092474022657112844640768213172189741893927400740862564430884195994259137701438899381925042954451162038727349374714760893181414364767244979112240659945619792755032469869351269134343660964133717005325352968307082393219965702577936691208643745403350268400187392031232709438145856070284105972941088116469708687064480007559729342405588468561964486622729628528179501880593514008638248534774210012739440401086479055095534515069682786088640961970365547051453740088492983082728600414609538707988151098142752947480395545144894141842930462546690767730203322367942121426269341610630155265530191638918118492208355538431409187592121066959668541938279905563345225407293572790324478582265487778641181838080091345494070793927127701877391703910006204890002273545651713554666160091704043600535984927866782243043943636815250781861932616590708407370753310545974772460569557001070799923136326586100159722951323391805563364463864481314043115959126520068191660960050700054369102921011584738324154159635036073213264556321323544735161485025474359403731918725248827467354887736267479330327118686794610104501025730678022568530865203869351004679097313577283332135107046270812014228224630288766517930603664664547184648220955797316462317300179329794229697654580646236848659246254298570896907785054558398701346922705316162189341542076282063158460092936811794667637677153359411333449644420122565036753487081967332538754422445565701319023111001874253420468487331669034526242022579006172489697434648391725930782334768945316488360294629679143005552891867912706045930982981332609841616110552862091715684089467753907794384017295084028013784559148206228548276768140943767114923757640268551193995153625377811142076439591531439415401204504684078731930570082007414969325665126448552510456113765658728321614702864481094079670617444565789412217109182705640800715493138244516972596521205322272922220696447670920162734090047018584005020313581731641576081697971695688114811547967563565982863144515852775534263382432498538310188487407689270328615849747365098784558026843675389333864632016078847767721942391826800497367927691471514436406117232775189290505427966046937445070971135637998956672231590702737666307449491383019910427639199674043846322297198100666636164725905418911565526240740959668347736071838848111384916801136650183402395224483523336325506532293053819273829819216909140336828098387193864274987781551203028392784185776820122918646511847015259888887329462057108959418140055804801845554532964523744912069896162231155556547836754256850236897349448220379027178656459357304142375693791078300977878522772196193367420571380993340433934733930338771145814248388416305523171491659518212540967857218430278880114919635269064916931452587797263644367634838781786820284048817211095670768150336443323665286748512827816813564520556057774705029307581954342593609393515629942636878804069511347876691715130512756210978363060764037001749378331586952693335978594936481890805499149659783960708893928759916984575697511536257975185105716057946433898478690885525664505720841767192797161430561557827242661585701264545519599288674988890044374463805056904651759849096324673647792434894961220068142021150054105502678740319439880456009115095638950765572094167275759322949650946385203124172592501540520919215668523995936346763507881537310067344358084923896445756847591590476174905892731761098195664761731141389145836742715557320307779996025224930106035485633245128503523518016908166940514128296938862294471023999499684378130754190116273006132239296977998647973848613938070313166390328561306701034330015366612817483481437581970843353417989872829918029432445096197043174303875204012946435660122519791445068728399177077427450146068742159063307777841348871875378416395426656990807885583695400763000359927734268704809237168741622256792937195630650654537505985024419158179384633781101757050012371941898806257809649416489845016291417789789339118221184247552940140279076579865137746012056261648685543079484224508678940355408188531027789231468029190489002367599170552923925072501938457395943690490603566853496243662540600451026532196962723513823611887677464540187347997589888473687462827504198629300793653432945446886769222800658463064248241340130904639923029763685882635485243133704750559664396318102068143895742506690101956585941894830569075419368864810202641239431182160796621574216899268200224123245508153605189664004513382595292086581701618099658658721379253444159656482912044304407634117890310569935028940076895863747702413254876836580507950277271184948653278125385837056775870326697216029363976485339156278909754313546654804220042984401577096146294874910422408365541879713045390078012098159710147653441751394260180006348024936892590193153840960999575589519372859809094575915160863137995311867079857700476536269481196990506031612899462552710487418788044127715202499807462526502657757558033222510406735189749749588633283745271846672773394320256058539481486083355262775256269733019010545585838743828020035432882175212481674388652007271418673171593381398218410294623274943562706379568074093699204291621450924459942697573606787419904065634827414217872820535776031534454010106603607112542678975749752181832757093393188765209995192835226672052096332574353480847023163541303601171365393975568585277812392883545012608024970177330113986326572918250216195582672978914510190959784268753430070287440582348577377786859450953350128557159217221900122436842108543655744786275905500192974533434793686112984536827201668376898213249789174470377940939988050461088777918442289792917890453851235019167900860946409056261820349876825899651257333061596295798444020756422811685551667500466023065517838815173272516089703848960090000296114506925394591005261426597465370366408743753907231213438953993900479403006648516797108701243965091820206345511061721326843523781584519854463113083432155709346726923156455333549640225033361617754856385222514390234267741468631891963242073965805910313095539879703126172331444792319783416001969680389442274412025200157678135177311936386871999745794920896028124620878470528919076650826111723904392455532109751532680589257184602277444735577204753624463434901078996419513901804354801689187179731008494316155544178230308435223682322781336573018064420705422351445648980868404999305500460083364616982125646154720289963881390319546956088853455588275908162760305201338432902538707172345990395026726833166201292885499746040592344111712522510170110868994903043646792944795753352794211167379814539240513356415589747761326094244837091009346213634278316241501342920239998655951112034131443019981540653103322430261498505387750743167447732432868483773045984598517836493797360027446970871562289459269050354153975253841156185138965414046171810402290822956086612532921348479405778508345489862717263124794940747387800863437989275497604081842681294020058245110322167897858240547594312247303402393619789999825796253746529687097962208867452752085173315990879156043134426820558748949894442946540001116875719223275867648802461664803074573518502378324112967747784457488063436594630601932278923227387605523536551440201401400207797620485331522161240322048203525328831969172345553727127359947405113779373326241217429675005371402275352907666626504667366710115668841420354091437716457845326100867358829249937409794100087088796715629548000653551374630224941538230933185461655977928636281546072195276145459707541692472604931346033376057581673258474119474804440327769031710093691350463734368510640904500830528913444966912113208653255851624044565595424013681388834802976184154577439565268094944620091593119553374326536664852936385650393252607957031229667315274881878216753683411494318690390387342847777753330440862030167860066986184217975475161534338482843859429677832041107617226414302010816270278535963519594784319886607029470321368291662757678003330186878981519861675595103874055849619040684260992845533761944391614887838262842710972944504453968286341866858676896015473777021936279890881921671714302345551068276158943677724780622123810144503624012565445830687318695922712439071090264195292482595030898646607693095750811839890258486529687835697665177418786797993917513011630669282455450065534562793490259635479598788965902021175105688533409502802338235414750244504540308766334104717957251820937442522536591628871436492929739797441666218036961300283954510771793754885103573965688651529905835257821198445407962671541053109590176771082336717593459216207409513039559087569662335972367631423926664782674665847716083880602377827745751353499909692340325897964519764439101533801212955903743302844078043417011513886771909618015851492863132966511181111486555656263154029685226167026943520274955327904508161087292305579549914608620131112442547628877227377172326032808113802960204665169195978701585309257713500615542500125562062986586593024715924156340293847097610459708252100679747026815697584381808916848734982318550658364464424382536589098483687407010926110953569869733116836790073992640871443487730416831411182093178396927007721377796777533132453657441316857083672809589433944141163719139681159756145469040689810493907196483047307410811712143947378676482648373906397206999282062062443326703860127743692244502561632167024565378837409380929968340779571126833279943243086685112841920518111586207659359152163669608811853121979774712901078087542466450486674727719005802331627265256458419594793368081777790641508825310692254854134466922907469498362246441332619493455832141338401412900329174158215607121091792959004172950507931599898173721965574811873541363587178005754167751332953760978674389687160632535916995528888230096400377377352612518416438759619389404410315028403893827423829255204929646300087744526763775524714148961058968748682792942635777334827460320621437872067427636334382696530003804109808611678815006331742952343245959784492284765505132611891904894969236888983902977108990480470372809051926307185670418260070245909490521221025517454429258164029722654960823612746923990062001784623195528239677159986239603845081696565153015138610689540899924712748243150364242229849636233344129075563882688416737853508444825406719238627915561724196170101251752876178696364860647813782008420767984704425382380560921322217238554022963198513380960342468807899162571862890520463249985288945208263264603729299872155577737186525433820325265488093248494887905270216745205074178270980834783793493718195125286449755141133881369933743152264960183568077973333141967699902867052303015385569181530642384523320708636017696008248966824581090305471469059941390979651927275328792152713677379481304214336992369780447657389846872837132238184871868896788627168990830047592508274713861496289440480992253956452635384794024293998736497908615230332116974437976649827388471349255877392518460469372670144759341418655190211524835710484024292997553460755910086177189972950606141664195355351994152308605064610001834932634121813681579895034099492562955882009373763999743536343669404265576809203547301827516692787398516370078129719274839953488902933648375094112883384443855786015522146640761215870445072044694687427647480152226739510072528659459293168060436029645943910116095425234864737705886320652563900681409656589919299788265494593090073119330789984874596519500193196007777502611447471225782417771816249592026858625691077843654719413459408351185510495754554701049227838882040431383181098928044535655735160162507727140454117791874113889655621333659278708400464435872413265724281016372627850931581086895212574380822195727406347509927709778600436326579596758853945396549318087310130325069611481913095449632545087530802099472647881686856590273407916770303486777602737452553190080500321232640321737455537005281186287811247068862424596355472285211562120324000474876551827052455503359508639891648053922072846300716111756659432246774676770978983636927186963357101822824225502265933536942890485145623953479313275749847397197789193022517739466914355371400060273576171920072106374636748348550570457771914439913247791780114102522772934412012249891095702682734427638035998820047397581737606824921938736680880148169958967713749247482583224612563693160120975951974750177151418551379424212476607983650690098593754092822485532975320966992701084730470260644282672395417026356284481382277132086995801213902848772836674841511210558571537046635540200208536779540324178749423667576096188449608580200119700058713500804602544200371068679316379333709749603432757043962841214395643668303145063419783257054440444016893301067029999349462231377780454021147755685698562355427351383712064486823184407830587247412553983495407898651971474635658542395028348786485338216943605596268424597542431681385338656654141806700069953673039785675614724959425324411227304039042925766050514607319246824880901852046368679091511601262728286668464256177376388167398447436447836130854101131873820974660548484023043901226223484645454400483771317819482091752241371754030619553379217046143697391692425999014021323158949559581010748643927353030721939641412659073200315961032297787886312880089400801886019737312874321440875395863370809101632125086690864516201415308873398799266811591112204482000756414173446080795050175874846658011752104776937774378793401347040897936544239674293425604343923419280470891270978545780298459369290283948352290936268726235584414941308667721854190736289490260791011945448831932736202036451070576962608182068661042429957756132517267092181328749832539070951159361455791200682994520726685971153660555166803642934637254047342404182997506994619021682489955918052961926248225520526885760801103548025595121193553233388138571200469782078463083229158788843771704272584737563915373952976544283416212711385769126195002411589219493835147597676662211503667353054694732144588658014882378282173796259202531859193552658469495245308764516864495900974234850449561421145652419521549286010290052008238114485022526059430694295366482137771054563727225686088652922189610161067767578896544958134875509360309143793252411284338310061414305055742608008729215302092161339312905943193764466743425988966879282854080929386990795960996241684540758672481113250947752258740768369232093423925037939706588850055263526270330321241589635326521149145477441375087539105140429295114234539883018313539807344471787076804936192132738337703298123317459206736196495707559923697202126964663815184779271963646324684458486658987786523578101342034450082952185121087858869973007567827133660612650422930294914969403205971022128062970297160157745621906651011979533784291191501849135457333502813543593560673745810265762609208797343406061897768872252737074823032049950443692015724328678575021041782401079080256013183350384981269926380196992272637976237663449550840555077804356288423271369270383040420081870958371673918289367783943169852861077207060784020127855346473367395326816307083880624827824785390446497724540473008194542957881409895335382467180125470575819085283872716699330272445187449702745912130575894185631812351895886065968087310980002443236913089182208059444965378828297267434466899004648541334963753530835135020643104900350470772616637934009639694957770917688248556521905581823178010082529694832265732222119715313410994642395265292961915504030991022702474219727955438714272665125401138431007935714661149151421707629068117760851336035408288215392411439833630930993264636753343662117638458835640063776071055994503546737476433600722538061771398398661387259742315030529318565395807919170920754506618405220611401955415766272257659353934826899519356762265357513777919481792138308739349808356560418399708746861740361622766274205353342748636918750491870295916264954196512441473793243725446632526377688848099800085442272304327552854365541975897939973020747321224912398427332977525186436560989698936395442844539650022509291979140419185049041184405670638745537967069469403519880107648535346205583791284718167246981818703638616123035543504554728540999024134177268008984447421226390297573432741785124948306699542417182517182940199053334642150706138446248478889402518868549131435329566861916338188841613658323300155971834125863610189829588742022894137146726331522045238663233986087587915251851878741756272567650653332307582056183978615793039196590702208403927054622492439151464841536996787803591613799768234527155446505999311686261750167825661189564841520510433743901570775632775682247258410776924228774318877407272032979428241524046292428618352831037006609890825154101916189513046648587937869085383621778111496127378407155646579868419633060084433131730684958378891801864340886628688732212983175387440138756165838147230535888957255223010845526132002179136541435311681784394629111096342431201904765948161180765719328505292233213284996859409318328371540655277258981256672181748202126638282172048041472155395191714469987576489875065187130780746449987397363284070235228919672935776937512891218904324035266514551500484574093844309015394354473234650430981354986263644120777074554114090999358519792878239052591943687389739092000419391322442552224855787928975199213710672875933620991884802789137419067831177796963610641854780015410657988827869102691451019005257626620333182664400400727007066532160738790231323280966627167969037600261149876175708022026541946357066276995588065248063553670312297487504162753094928234125029593016497597606429458616822447260519452109999482268715245132171243639744813239441905614642109421416489827117609874547306459040621283301038227635119132908266184697625640261371631732182412741200500489875514499446241446018178943917044055438076766100542451196616150630475985781158024467934600921138597492971738570682141149902514886063120412035328861447278096658849689333094733685505126810383833348541878034008218182167228071771450253312548629486643273787701720415510953385625052409199075114140909153036818348630583542412830229780004751930948225584869329113578550061297647076871046237046264048803168524399882840069866412451337781312228776678033089698269119942752986852586059000795585779542851896789288626243370414325657187258999051650525529750400682886727802558316787778730060729689954121758126771635012975446794595299102962481049958248631853812711027964382774461967487445885338216096136109187809430996918591326290076540279618180123528916314432018233070299440072773510863258421653642452470036599320121293425085948555934514776404034825114959898993070571719932318855570664387262471434855190652423158515899738592638603613936820129519958965288132121114136312906732781879695620234135191280864168149023936861869738111246725291614479161869373345689160784640966504614646448960530757342306812032682661223583971931484045919471636941042950686847539314339831728456134428138979853334580467241831624548863958187033314055453608944604166863046156373545533057194087396736198395374612319634057349476096478281249253153614567570170403855460092743251849088554487690653698569504531099522388059405706691594807587052116607316185358739728904184349207960883511411036934288003845810495236524664767983776928424978599016859613259402854231168984672519898640949256442363985519040615965056312453436960938879539212390751766441842584768150907740920401830043902559029537759085729668068905985880074787672772783638931725404285379971951967781568163711895042587066539725868279502756386326687047767029498512223146059414620409993600286205207163221265742677221782775006514847368385113404347952681790623146454260336265556095632151811600074643868383629458892921500861163170134353407341168464665861536058528502443988241103361990173232356462585274720737198906940702861406756293819483124315482860927128513347683265652437504132992663582039848516762147323290031050058543901959290131152338163283509928751499959320674978175701092292189317144697391239615356102037445628354869015133511374170497822906020046804878747624493335669669363742818473347239992201957464401278412637804846713051634663020738883544113609109292326492733023482701542008582658732619237954661867913313723272903378950201532404013496086286743650461061359710134709400951683409872388999461520322603513492007147989365284808527125366096450483264352135030443041590471205000230198133269153121744509780146524815424239075989267845930701429108040539976628805567027334706257948942830278171887558226540152912809772403850989121771781713360185224308404322026459555540302081970931710062489449144664160168012862386805579809102185653051836620978660373347819132237198518062769141471981670829465452831307341590997386079867777300346475725499809880456531281148074413752831474550554297219201079914813191070596280707163446788755102895584397605834260927262087025558693545533896188524643911029353866627771541130736704184067987198577825263737074651251758399574085569897118267714666963805054059646999683285778490415425216798128224066188567606811831370270422372306455928788388664372516163296093663818314232476202622367370629353569455377700243813822406910003073491577161154234963383642088432304562457374742222032464682566925800260306947490589024437027819734511889092163440740216501790404636934768138581213922941542660715135115908430144565423076607190422407071630459447213289327231297008523857466869138828521161507466770900302062491045507571026901778325369976372284324470447582501122103349034159531038567994901726803702140803516915938023849337767223617470181511444576156547654105851675352868277837389022078591994599962870475319155383899924389683193552793628483921828339463971129851551934084510967105156308865121593447895887549469867841479193857833939111143796415618348632804880871465818572015717959551777048310720903997780413324934096686277568187303373550561680109842606736812416746202786981195895932918779288145267330461779321483671886911786768843652013289977222595506404485125088568596520554513381137884668397416399975065765040333146877990500378442999178788510699633547296408606861246320675753884176551540390589989471170229584067649952826550265130502830618568239371278745523368308929374345878361243475485378020426049029237058097695044536866491780202465398116126946127951837503070978467274477980630372115776880826974977909754526884604607335646093290157964425410080498205214025924554048595908456208339885522077900965299813853545703786708665386587811502734455810596325844805379601040470230870465297568289000610828268820097319197980155620876271633294509735869453327602555012707313281438428960348245715102590544570418383145773541357040723286170379048350340071111565833443315371852876386792384411260335157082614518988693777551988790617743713373958726711003302900808994425488047214670126715534441477337118486763559897740451633773733588362889583944986150642794782688435039673626818425159644443957956011191498285133179661141087696503733646174434074036707851068449346569310167847344655251675476090071321861429583465996095316698548763012944585850472782342237713959432536201253740452982279484519678545361011230135818120435051735676016019298312206726872793408573758157642403613423702518440462527501871405448021592044880090594237898894284428423198798503041897318940803820791139284373257463818707553953087211487165648923491151583485467179317663778386475849696451011852023505280803944602792857307799730742820785274049947270469319138838671720303843658509774444770031178133101783139573794257525889805113132181531709383938584718130397927157763282612270835405865374434207612049290960941456474982828490891422142077090733415660473132948294868939370570219387581169041774434531799622803280426328657251089258801907661905460725449123827717767749581038625536691238494842937133108693892837662265426978066362053040936625938019880389499828550319423548397029773542094699854807655865376874286849048782684180820687420118733205867525824122143478697781149737257397801136971829433758283396922209278868884458289758380490835877246734223605065762083965031915941228704042715892865437290126231021224374126684157433554803780359113741815941470537089853922426866287152876603782288086529624189080105103642873034400986846213859865563257010231157183864747803813745695813346071725966375271980566750187033175029586454623586768832090615425701347691755348403946150206738379078175238114710132976748225307924470335510414646849915513592928680411772692303350603173281841192066824202296868311062922810458727778854811677729754352695314206593389209374669366168251228200429327927032505497040954920516915432492346448689678926152903912445547978060202061938673856806881663634604087650109339712018980233572529227719337850678743116323749096900411300371548965781826007133115018523143891638827573749863319151318770620707028494725748532405537667010663229144715305528942926722262124627028313854195366762953217775546622047083374927762273954378196938132269501241532363991386181702802378574502636449920753919686697406992107158393499497550889611973304312629749683394954131889714248032923322968638845087235085035141232209377007873725529649402209823933090032482115729142688352603748120012906746362404016010850446891640961654273540675794665959176567793484800488226761352066652902291477051804136628080516303909904509242132824837320767045118118737464920703293815068799171979097306409934242874757379002799657428476308700626179362267014528169375053705870010942669285131535259499202501361455072241687021983856740698920960558561354059896119570952284092022638845052797880930796573834963258329924103322224166672405225181418971645438151214635300777621502813594323900306217234966253969054046993814685242401849726559278641876438851764029319187888110251096824814921441703573438719703451343542036489568423252136865959868355366498401724052864340551731098564379971669870112624822472153115535763166514488364596805596531120744585915806016359619118643225081352853585414017494598459420206731034210935892395305637630691247912835810981876205225391803113882928825256865416561214224019417826684350154630611243916526107234925922112880603167135071865942687339517641406024381733265476874275442589862712337128434323464785021601715556760412673010066320779670071792282156297181628144556881293014038516360682100795702996052404191604100075184867898433550770800213045371329080001289077169529286093423331114906942267202582609066278290309101644675885165003860454914086119867120315253414819970275303739109732605924366518148769108820498545426567454076567613455701240176100378254027287476101815205827896737435927611684259249282618868933652832317266842095483928425136608498038126541501488182339171073410693528521053493776742998178511871250642170284019047174711041401458528042557598939273845304612189901326789398216562004261394242915964133986543745393303843490608284761581202637118880469509218600701604821757104686614140892670416991976462857697690498487172392312839767409406382651413907886076967780484055368553770904326782262624943969204657494064129420397635429351237083330022730453771667369187176357279645471661753728328884780526282607833213982570757684469756200111027928468519755621242712332859426571977177348095960295934567564772988670137178681154175649554099367550918497775663164632959183577443419421967245977071999559223676091293995246529205199201324611178893725371860346567786453905322525136226077069602614971365975230938969924370722301225114112214034895675036041286387641186641368238399782286105261667050177118544098281006255450545671953123927647639994128021115124908784552500113358381018864923936807541992988249214964744310185600919273879098755732437252488491801269551268792408466091984491233694445026352795140751909218594086930435460910481685566397379803516519001260747968906408999175884608828316128267890083231972007573494236855116303620632217870819016995560962605390261940785283475121024733950061487707148984019159670263440132996651833429789334651592225246495809730223528502131724126757960953178525143116441263812945501553659903046300128643788459197039015080139449378597376737991195721896435969473516997570514695864486667779521805653774475214168357195212348302547468539726464627081117653966386817209570103704634042900143874469386871860260039369648605939391348816213528644112318731815862380010172181609662447444658053347947028508092794743855057329153848117494628279074102495700718124774946044555332573006467602846451877625425065448458950326151712959511020175660351332258591946196759350087572341280457042428775817893269483719141312380973357571831890032371111963660546696976498435999334733933651702475432762288061468066607422169508344440580513696369884814747391502073543683258781007794845219351786515795937564011032559441660446168111048237054110644220434683028572326978728269348921798959194868807796709508024817892868399615653623825517297312275914680903199004965416877039488836977730478470718983737360172407006231237083605589025919538713404734770558670479489527238457592320251038817102014562845142625463575879116058262397721699046868813959762769784681410643460072592197462867979533547180700429164560924455532058184233627316662681699549136879702239995374041768397383890181995648968662836061426919632641090908466771676092381197584747667390378385992732551684826294471310190944301337855810987699696236675618709929220469926618303678384094954410606892220607714493235660601792988997754197146532719889278853786996886405791076284651808967558811814859714628890545189231864076716428671945379015924827328949069012050773941529231344527544819310897553329533680411675913905627567763914694383362303677161539818365335640192435778808069681382282253556693838088944828864074835705705207455865569873034374281871009331909381286242873890449399759985973914808263340582925069687776297156815015233626343260541991293720701031490062575214058927505182672866986747491423906463093281306757221765284859165645005520319273329811679146729414453970902939062193091788713128052783363308190417282770121848268123089946077331952884283818079234790773756643697927028340801500665239661424574152240723361545547081089438169351189506071482443640625864010189613425347996620611930445294372640938390809589133173052483536370624493497468428145947057329456187912540915799124046672681458040125081529043676571885979997868022897264717550448200789711268538590187638799488544360761053707679472506049656262292434274664099538905588098497801508233575662496186409839621497909956734023676553422603639422097350926240879782358308409320748077305492106153317944431795409905662795458531100479508915806056034187446671363416151030400458824891000703261580970810893893172889135017379058235675532988580504979476279653216394986017572299233368356249764799421350069150780479251946863639603252784311979979756234941197842546447456202551212326551867889880064732719265345701051625756335506944809725833882454778629162282074915463762302903838719478111271772073077402145606727458888722220808763996547857612881019574271974633131649375452958107991895790960222763400930428325960394327964745279249031023837317994701403865452377828892477923879885440095592932439213683576009884442252567044354661843093096317744019515350723784761735598067016716467169047154621358989216504870983824353813208492923143852942854582224719318829304331944256818014409118170758984540824880160280312814562941297415448770167521928644148533116289899670561409991450037071387776680899428074292350848234030718453832483677359924081992239874876594492074476193947577052959882167391848080417689937977577131458455006670050169596810076599183365438069886116930781261932329450825138456507668531079393179236818712914045888694297555395056815134552618937615208559148658165674937732816006277685918040016709403304410773830987959721792381713070128751499533402593637893756034510218923127020336332183259906228146151005514942340927633216840520671261720593465153612739162217871301943720495327806020595664313438185773527163269895092223277276330422928758973678307054404737020351580110637235904730907758022017861892678206041356035501844046259395180619354744687116913726634475808500246149410491697449037219110673449344799242175503554243954951179459256027665473953362044880677562807627639893376733027192508410568299062160149723075776591541249546898209464651269069738158693787726552948181928461639053798233845937184105848821949735929455042175095601080741206178957506949114624503697075021465658951900196808827635335003352864101711744692892637102988815419962330520175553226566830343896596372063763587271009574283527153668692032506144739550363552601328719499144436811367556641163877247022216531050402479976349640262878480102222391838058821520098227111170303232066282895762897982412044683451439090430229212916610664105989072742668450626122871841747263169157454708912711538925947278288788767580401064385292213105189391652971909447852065652885126915966029611258061389882891554942127883737187995792336782808860006865242219757484071526926467690423217419788921593713434476492535378429399872129559099045811656968641031389853637478238312640432436047851008341319267934361217805567048521974818213136206832946542187976427463485966717677810179411395316587352179798141342149861122592006087754072635990164314691842071388355906156463927199866272744529732697087294309524917227468013761176009033195133644749679997455657231127052683486776717487412654445117144122521361100906401793920872301867235756098555430273289043723057100222557588352411226101682469369968519750259841527515389400942771145121292100741602282778761825845449676502860789149014004166320581867942813532262375555873974507660898028975318383877997124302033352178424409805231206120002708039179854011721647638577834584447837356759043587811826532024260201044497098703356712961280768586900680661321105335331330805110804274018739327356366439456711317923074601744805847835143407588199789069675588817590278152358296786923167785849582214781630992806017839435854354122031464797442351207531528728867632525588045180845652841353832815744904185056647896008029621080947893264426988748676314025564545411846674927472060069859003476263473478457863350556727732777882428637819250230050612866165226544273990022993064484278246787072959562133620496722242048873612514314685551659888381604316778184871324397664907680766519630692512463714348865672041341393991496248499430956811422249360705736803394313824077929537192705079730758043875344639667994457852733452894035372210961684739662491254147548682053525136868123313459483095083068073738608674568138088843050151445073877042184695127334903975773882138091967941044012182747448216589827984578889267460357390083140370157675449779514598121125106356324402860378539783941329054887286568988983222649424920754212428534917273333475588868518932427027789477706484675494053645244255152981387262520508785254360826279164810919005903121520804579343865993678980896090405630183519163756214226075013407677993602977852647763004219615852318142896778605375176852289217097772564566354374841386241188160189815386984954450070251444054430612753631922005940718945569644620262936344881253305267524917695796382286180548737618857382198389952207540453602750934533842520787017134318285141281480866069313134759170924971156512621713742465460320095371315598110266042281861012270016524739389055171635977939232589925608812096704118577061199465492135670167254434219677990829180747407507064274934213224685293366919378012280237117583221480162995334794110189971827114348202869947399055852802667731619804806130432395867932731263136906876926863744101840502071305084136481930905791280286886771845826644582316379781575585379409577792369931314000382754136524272128921836078178319432853918116704600095877051633625656851401715134772685245712978279874227488633619620457616842638519999077768277254770158149364972770252604959902042975578062715418066880706702158992454631692623890877126288154502780092178397856935523752349556975629095936248821011473960287547084117566093216202305274627854381107628205043474585529614573850522964242554736854072621326345868892809536328131500759509039766548590513882823334056043237747644410982477135222837903204768886478489693560903139986140113392258878635306719088406639570577139454512300852773297344911364273736804572997278530956647199360539171151908914068998557291938239432912781542952138335048001911104643519975163451458624757570538926365359448346449964401018015104673727747100930015096441718752453341458474679501599468584709678591550739461459011074291259158007122419783996672871348152772682485044425004887912504019187883765032323595429304858594338241588569057434254063600790966240355434852986526459239646521791739634236007638446697354479793994277773021435747534523760063044314709782851242611935316283187489643840808871028976722527264164885197297647899249501686452776501109840180126228788224046909483242844961374625152151663870014480902805185529525342103212352617898041835795436093879365199410601881334626828315625962553572012349731246220829678687100678350108286191048443956843913367142210953697149127423476045388281047167512045883333996169495680773840006656420642607124040282509516438220209209992739969416573147154152125441098864213900184427226603419154890819813210418626475538360790304868182538901685366124521415848429883544448042956069226704081288377283279393426266590624936270605302047011948514742265826500968722883748884120675665200147597259906622213917201989626281932797976620513877451984235106907679417258826737430273181440320469620966986464692908790757012756892633743173670008751690606515510043268216629785668624386362746009076332106031186658379771181841346802053734065874195694634015643619864547179786105701926664250702926870407402146609830962617684576281255682495146558276662440031550803421894754059094150145168004103564215973331468070018575560849132244097820124162461761837254957463442492998760219266107427110902764049483936378823469805212872357533436675538880619901306027426534761352546098302575032166956601777733307363036358418635532948958279359901696985660679356895837991274374160135723158743507809704541293036222444061140492896959743823549663376883543117506495155840338685550593444458068187707604953277327292446874385478297288316920255461292531524784352966628058032718543791034927421097678824882154821985994949794083265543970497620924571033117526075945782105564890962661650889203391710757774537046427854037296573203034248262377692746373574437773627723389809862145215977310914664226880415126591553593927174969960431708197942867227069641499719410137177768819632251315765794564930548131249216114419406297402667809871584699748040908003488764682088917442879871881280895661867453493050223798521635025659684759612985884033849390418307484396783996594505211793431310505460666022410006667358115225427033337064945008779276249137364540570542317014162517921069168342683039512787639847484441819364527296115113464283802370110639095972822982661792994929640123569617235629992295568279307217484248014466293713048447294615015144791480112627396790572836274552029605542798555831266761533393595716133328232335376472649178632375589117192301421798274690235724684152462374929566110799521425641538886990867989694655264596886022807257701322331335166410321596122332474675198743594057620120387656801279199764181813493116839492570696486418993976493828336527538539235628875577658201626697159361441900085031980966507123213712584090493173093562671494270382229071667581289784811385681654929344501212511699243743737460938522381747196786269906693929507681923090051117946564684490928050163470421443731607159138494992840439477071972779292225055249334901264499725274676982461648307607074805364305331487315216578515604415293271325657220331123095371913120324412770466077756314798791014538162804342619399338432309510961132689350562591268271107405132714308921442659426248149920063417645107975299988667324797084132426610370402129436695955865420375671682377752602062676321924426955586716854507149362493361984086702188243540176809646400875078566981962636303871698116985586740811164459147105154504978078206183915121366530560314649942093514681644130768636683920507661086523649991207518221837780359214390961640837397325788665956381253321677834125437673050554719844211014401796968134447300081705544508895948078807285855927884524724587689654700626750477449430428842842006186333322005841341975883105400872839439872746149901457266883017324305205852250942094980977514717424159335298414618168225556421694832705329410980401962791228554983775610455825391745425698126176463673372155692690694946562244850427784786783788728250514084516837246344667591985457323901375092781970498922055650614899963701166474605567014800487994483306354851291845583387576601159430793304113874563185380863133981551454466188116568193830326923482887950487418508865858032605537344202015321705257519360779770000694269556552117849623603024234248607040432583075391041421290627842283675654109076486950057523621673452686988544964068523790023926841087300186179113364385631532859992036067562609429508632292237857704188317732823971305050057829992102956931352605361119937680749964330832561848462943722832639490131694667545887929394052644591000183624426862026426172730943036032067478393972493364881074323258803438718601499351396140783408502428009712581030038259967312916481649865252159401892371708816881871388507240238427126099376565406627218260123066336496409408643043045430495953837574663488463740221480033860174825489155014451327818991603194288369152275050272176614776569359424279073530822200926025646452188612754255487894526051163823688842511425818000894779202814850323762496197036592687075710326243853827481766348768605738188876660722522580528039051720472881088299591130976077194359675634847728416107670967468422281342800651225493067414572921425086546708658573806082088445460327072891186095446723449898380949146989916898820085685575358024794460143750408086145757807009269415350794284988151256327755548259602745891252106184098211677304398568875345771813755799954221768488463533313738502395745558374097494151651584754886985585045918079592521669595477310193141296880301121250686543097861950171470138124729608150930035695232033469606750229294282005395450018385371226076568631681840481868663212380654326986700619008346238883207464526368124310640287635880984499406030160225517708547984976723889362716846236005186963758609540928489184256655413217506431802572236353398170868203025774374127992714803400202881006721851176721664434349210348560191959863022692466026735462381703521951644597460611293041033216305540501889415013358654658781257183560108871330954844967884246261283573404388836386886686463360277327757096059107454735885074148715335948826406782839526473631575783835540846602467084392824465818618397791350377907308298471268744356245970479038030748402654370642163813548248648484308820461261509351842863907978420529482242649079431832375190812674957242104063075236111000639009508014455232603405270252344418101356962360800805373228572630789642681576638360146845792274786841888994006496416084397101324531901679804136664796436187926022897565241642463869724079028845920656492041217455774173834798705682177087669090252487011334277885592984136929492680573881633923428757713031621895046023071743992734825867252797252236095944236850172153539218491066468027281690846803045444998749309241200598202618887127453045076416757588428698821781388581395776877511861442102051821816236157863610063620679736290670890738428127281963864673270452612998971079967998531840491278708088915346249964230832126226532640489936197990124393871250424781952086865987241724334300194920605219425436213525717382892009707895078919070474965652246542562868617683909317556593209174149880427348032137154401585310840181657119442525216113079395132671489847765212215935079978891959243695193823964003368859596613145927803161932507598735574634716022881121253750888192319936296486684119342780736671396212460922877081920694943319573122361845064980492078620142581972863882319767752472916438199743733520863007580424673519484764060600431172750527844618458459887990205901314252344946552154859616174551063665415722959806127645514404905695864801514231799979774127913068834831583579788727207791093469193479330117932607304838970881168340567363883738879947703682060594190395132557102035117831612267178945479434912760049315280063646775424363977982380467936013908381590648412330558780512717901585250306375673313729969606576824275970046788033374953942689756674752435116734618325951056590531136920709514132485183424012522046159209669147370465839681162107253828201026202287554744195202769189689400087806667049665080791077870666712025100632482070976643940182977876632501020590917353659426532083082472978385151560377709373532258356959243305819619254469229664405806785183137480219099869503182045986053932015761333141872007302225087971431020028225314027121177631358203322915757682203204629207579775878006898398840666806313501742629454984593284767346172514615464955810253002604420937161363497874928516581575713139776403646320186869045013915434202181603852609662844028768158051165573266255780763272709874749021021190770269012107275704738685483814541322545336563323754572742310632460423764565314777306387599896911663814612571320744966183879162140204693303067578717689032368118597073118421051550607866038546334361083551852026472934680078620103990009752149497411822732715105613014383845939238166716582945304521618738408566500633043216958495142113134178759439521149078560340599622632720908283632030793649399864094219342663816761437054227659345805991490854018367111709765483450950756969846678153691452419188158102651649124307547752037647803090376551343284729804021759191590877302504701027907897149453433170074570023006659860502486994063963192366580250913047521664541752553772397042042992260961104665117274798938841324801892000482396572437683056076977241307822420603489009326150085022612480273988882271023854742285739806471658155356839316120901599882975539574286686770968306126217224162433937077565080443862071630022124355312761485144383965442859067911145051309478489909660978387986645804858464043051045187411282082998390411535927459294782923275800204503675856629295349909612399640765286347260534977868125607021629389553347537193909707530461267244266902422288688485880790310553269611040160436038459627257839691088981365581287334465870708256914264939520593515911947518104509431591467163252567067540841225497659178554091511947990653828562464507088312993824814453032609221911361240899748975505513796368139127325188407819492990888853343066754081046252409448724978250509715237886911137931286341102489232441842845215517293159508670750953438762334193661065954702841381987631712629703587655554258766299121520366271488745164004133664878021894348254341664375357446242763210376917157681763887463902697940087740304127159723823560473441494797174015263662937882958235957550040164022308482408167520722239859945026195973896673048631565688563811544104359548113879515367831584830571931619399816489308943025342383821718792608348346869525346006692585872800516931110292075702559422703909061123572447602893781965794570487396068447351842264926905985182632836884532260346487658191831376361804288474566326677417854205435433359119340807939623943474950693744912763950213069288921868025393471635327563777224640628412561107787662095279745302305702320169126315650428209324125183749840008956547516026904808071233098122309731673112198895839059070496179979853684793762971895446954593754711939690517269385619144471856732051853367315766034950086545352680219276473091815606756041578743434088722294681746421241607989868508607112480775056528541181991803597057640663647108007467561010722516091764021678800642177670319401775311933706696294375446134977506574440190910932760901560317936644235215968857481008861024817301662567053265489736945126245780194042313876197047811702020986703753799293315982841262903775790244908722116418917469908158679379054245652867035412920971445545257812917876521048825888108703888375497441944103212403068561419494358286098861898432077830985444544361987095620225599016264635173659288335337489680862397210338391684173301909103364442050292219699004882031154971658593077144385847000356563381710351589793013422572938735146872563640354161351236376389493313970288880723049227935253914686706378750867107809036607666810122790359387672218180582591181042262915902460371745839115057448508923545181302408239793620999007311313084800858837385930766085360906666904951977660307792342905207264585560646348207471167440334570988492043482458451815978672030861713832680575672343999227000942726045294817851094901912085001026908308174277005512509699930470122663019981854575274242740030848966767447788906260421107565037457971847419039632673311711034268637359754519147825816461298457799539639016095554130361747944794641356300372612717207863921370930348009955048316389178512133664781917328701412898510779777134574623497903987174664737295978245144457751761375332025123104138661793322482716571933146653548076798679138841323591677136304222450583584261823548826965956267077963445316126495707092592930090988236406949505571088902680237917795107165944371701764370803784928549106842887890342700110472291170815199969961158239411011793510686275896458091724716135597756027957618023062686345020785518013335395953164700216170814774420047398571280787590550965549257863058284703217247959197040997788499607845305822504349526578507789843624859100410643517411308849500664134593344276730145526303686678293255368142730230193236695925148264845471343322441261224872285609498897549133884745845239220471407206733743301724551586299246954564837663402207316013472437220386498319829418547779766967764150681225140564640054514852113884405712950233576326482660758432240486097862669242401674893302421617940920382206018921915293524670528802516642653548876403472242687090652705813763199953031100951756290680495023158521750014223951371114706690383325797279090114666911109724435877495865249642268858899998551157214846818070435131199997275851037793912509726114919992371408526578458827612158479571743605222968220252355179110903280831136388905550043992088056625621305840956951458863654492275972324013783745938152432306127614272985397344090276330147795425663305847133961146951444432585896304698129747075027445604032840784985547064511763247435676210466539022183939173419438545235241425014514514619567484968329156997782550140551938088034073589200193713777235773514772683712275361883668325191636160306417343806722095879873509514585089232249076566824753990914304829864086552502585993343963091993324555820221659605920690212063502151744662298604783590853580963523805617264221804478532646664814244821670500340523023170041252617687193815814399429739240901061555624847361919434356719114135506877890467591645969747846066227336993414392979285197318680878858233414882129605796682040768878227474860222371962979165591700411636991687321782947596781059223449942278303554674550081897571795264218115033677673085918496960448068178857911743783789705235557178724059983530083206746018510093467143210060786820748278545051661783369932419960343077958573977311394615045023832298037848778221704015437977683665646768356124575323891543059874564096767907449863389862618657148802558137226054119434552953469909149587931133528228584633500121093263301183385691323681723784558500766328158255778622146858985758340254605422162293380425196812541846920970589678590832498469595600637708346170891721644856123571128908232911113496066851808025487874182164177376242728057484882305515883878384612124516032570324892333693624351697160041217063886689524321192656837479638569316832059981706275631434946871961224557540758972790241650518066419663250515927042471433322996448231705341058985499529084633825853889258933202906096851673854845685834704659073285370864084907833218116087936621584854970439676983235513314122813726039559735416751530242884105551805373900138420491411358293165296312117094314178194729253191148647287103530587015329215792691452779445108322150756247718334899864959967538989757495497175618770789542872105731540512553525429697464063911345649889148385427070590596634471812033032513964915589907714681397097051817533787182706161165335903020896595515914738451608303850697230872451865874811435287009356821590867522896411021537385555260599621379443646548434549414514706288611073498696429584229722729611981695756106530384633918647818620821744929683660137133803580829175853827006107195636805340847482038041251415472035899495123059425726053280112443925673413361531153072452979320254882474198039166236672331353496084114296618438244458308145813979856756227565852757507775294910655373862331050322066722794078188208189150701804347970283687284421453247643724101505209512627591866697645189790701833071393842651046869283411167242877741955534169632145466445039698118673706171897281025792126466080592410577993688817431199964908856226574117589958448138378144469114205951782171635865733528068453582479012532169631377053088555679745716079769695174443562448761209172687652509561411063734665079826529175865140417170314889162127463903701893179552345829191863868474867712778973072831448842554876427923163370301579197251662745981747456550526474250661935633773509093503423373203533616469050445994357531807576851993431643299241817963812088483472334520507016667444059950614656889945200276207113432886109169860538172391263638097921797704753367518161812472355814597444689370975818426063715900503818194913975011602103750523711854278766569570649608207670850145072144454126129895315477516117206718631932084081111181158210974928348319065374779571233207459327641089458192960890283011721742184090581612883083324250967929528490239694971806590191300173014138209708336588387432630644043534047237089406227788893204105243979512940018016930366216824858183699096825482817281675328087674662764038478919831300697599746176039777275314763459107317741376155855083731986280927609987152930192368955813719025542271357672756850309730418011990464986875519802223292529672751291712023352216396331562868316037238392605879754585588600285284955077528264343000404451609147116208248568372043167148818216700835869121178852476884018276774584762636508505762839707074825280150254917786646133172205148067598061583254614063750158620262895778528570358540579584082687525022390249420463318616821210430856802809447889248863193831022896424860980698244103674329126593920870712704343242761931030296635088936257692407842603192401971758272577383295304768299949004981233468991768289997215154407664472509546449220309075410310923131965515651972612879646991771900923770717100916271485525920336957274272719085953355549152961815147757698490378753869546720759488361464645833689739748459569070963254514231090701262912848461869689381745612639758561113646298730641058762497018794195794531410463422933358026103604879147345984100262207397046795038732548394387984649566653976303484760309653344202779363299261853455147915120643737961825289822655188302385213135303809329435718431107177993116169028119360178893627235239847971065168415691801555433607703293214006028136607069152827642194510114510741537297870075268249633213047727308571533183928550068425967475550385626103717731043827880306124460270365171360736640159815288845708239375716238438904974619086435749542542523938162758338987860922185001259253820835433356785943418575538435164946311491084230381462857700699700620716519879764551060482298579472921283021824573627298685494924597330602430616582634942959293544954852144829870273474471821883417490128201215988783275147100629329461990603669213408426831734472347572466644108850272682642912913000033091633262105711476998235447826883210051957884493929913069125310625346831995049135936247236732069425236297563430554349511266802756427171490700220384243605794477133449621936655385632287382934309209272539152326962390076994889173289351890284623125826247379608176039352434235893618165371778152514751202839209636417661777055778816332932595815880841465754192157193752500413057275127382373545511286913283938824544856540257059292325503145957628677041929146067378983316046647468881646566460648710807806558261957995986564104315152100303715831140088263578736997174741819503015097952794176646262757435002710410462500030604685493114171518731325834559700543656002017591118527759133164767430375446070182880679862009538862719414507461342104390074611453236225274783408803396194534885936990732840817486601380505063548067203717894720290480936944224705524215538490284873569530436194280254060680569811488216350102196550809479974421468974897425238325229669025849102710271471804994528747884531139441410724451788961716212761547300150574877531072628293657408326493467584186947501515333074473379457896261929609421806038261076827925794831417944242157835799396243268183711386620933301250822139915968648062133846941779984824959555007996027906779477143000025357005176572191663817560092364819684984355073458510830023076458517944770087651240905260914085877533535124211027016604267904256615560596476700196475358505540883468558678542338631176811862063088034099735145105483507284094924190784434012942394682960950558081594424896308620219502794294000067632704442228380160616498251898719560260951967507183871315314318779214141180610501646745162788103611741176070867454596628623789817749697452876960372077479768244781210615176964059447552917918424922184984320878790204425524559253192494193707398227829093864775628316985432192799117892309099856640299451090859580396010951997268604371008764377717323544064762114861080866366754970453009532874013518560583039464717955379891205777957309395431807935562513661519562806110194534217192685155452090541696460071058174155935740348400378390482327067505318557502831345098619936886433975991565915029163668581689854781437463000517803640035864507965907305246600622524954584259114928571068624305562936709944974758265117699160397814749238333111280443258483551015501036527190629700465350174831064809580662469657716622347809559630218882575863319742089382625089279549803955322208341368798943003496470960295437445171208317120088851113017550797705395786252505889203654676838793917304187369352141549449777031514171957132722088740279216175139668599746554516555495712805004234688416291174868106620805650987921887917687410059402766602809722107542857771511115436040285917871338911026707617609517810414445616458624075136835182931485622222839397083704041215637078606791708121132444095267597230945536185102151997883737010323126866146830370765511709455940719466446090648362893343912618805146159626818195422564191993468433148036955511199904335007171503961782459297424037883278700031469898708108106665918906951888999166749063624414669400405324084413031390121304008508395622449902720190960660688236879822901747547946652764771336920805996911390660999518057920075873648534729392042645985394703189095802742602458191097717183952407046948253434818024184572451081479216118106758889441645238917646610063951604132309734948130730867177933956992362868502468865943904354495857056727302936739705811967128171234590191757956822962444720014943014637944007746814138882792244511790394642522399295165207210525174489882379433589817206114444634160869943763657266611831816908216788959736499764767196344092496669966834834345437331715352769113291628462143891122187262908882556894315959115128360647235951675761939389995388364694407869235946169372392445925961113385282983180224753852266500918708207290803729053493874105135760519736531419448312011781700774483221156127430736716960865260797165267184549314355623956075259626498217138677750071763548598238067363359761467634137771060873478455437666922234483545184789840903133174562981501538351275403007332865645349432793851286001952508088665128314310105115327026774881258066692244693177261792810769368537621352693710830699982528494529655510142562636733665661885889565992978078188801883300055089616775293805149221635342566032672799259498182242223188079877873964157753879529119122666387120327627505998198713707285089617328789820172729543074650130546880972900504157869098092318935815261847091021087179701473699977774763455840638865668964023349289857192424013458070846475543322875685223181443816894162801219384017629145595125516757632205759142648912250282122408376722084438796460807122346514764465466864408377134205678473119824185829252350513920186217621430236724733238935510258467210424860038828494905105088490867537283543986222283770659352235777333294877270207490556525811967123174710349165441232585291428176317984536462196055158034670851795098368280461120638094670231403512955555203074434837493447561073566599973539060671541866268605832825300408611145630728934622277257548800796759501544443499124820665248984237435327239056838905413809839897110003752884560100089311474369923823463702392686736098809847019052124509046075775211720802360251605236712047754289123547736979089104421089437854520836236868828856115216944477710620678128871184919479776753102464241263759847456354401456825639052561870260351764303069493045175180835772035018591043495929889569764118746146626427459798833092632446176690059892470749967364444600708552843869191871786344875491944023951318439551410847362232885115790125554971085961904445888032017707502082633067726710848900288888716172659462818295779163280682213294182255862737926933445302248702689841660891701325841643801158160390104680556949229825324951295625553491254058943468039044903321026447356052638628107571648300635150886911751823866907643453158909747867931099914406254622846858745932974665705099631585937162250603029592381174107584857259644024319985683272771228680445744035037160163854479426700455369252037960104674869982573042637570877667393201159971148044818349815417776686656578070004511361273857988212204859734603418300037216025198839943020567635420666409269268236185178686358931727846072140537814454333189665652217279615583836797048446447554139674371530517331715728078200524819265413893695109898381203705390805499006804308718639040831537416911589717092620437282537319649695706635402038050677814767087091874107227322833285692370436074807851511526313363594670344400703518527074065522671169662063252730842964393424952226491139339209123209311797067503059638230657626361184616525107471590600718890593622911361852632900279699317023126812122769969376558919866321190643398355407464944470384444309557306880199011915170649379256287836807095666816452214733321820979627228567326658422810675926988033335913985460253690009880823044385087090006367422013408255462626039950601372926196580333684034329499614264482352400512840706108780836423370655853523389896233155371770669905906545351099689710027050221655964453810160427257096836658437652303641445652593098139787952799431638879951741671390583549972381568718617941006371865367119615874775479296974377662444411864041650059797996631963128315364678978048325655018236240384090088081555866547270121170183120419367002647906729135214524210215646918297558988830863365744952533742991713764708784822498597032620114811586394949776086144238843249553390372569762487239698813731574762123041338734702108852025612294254816375934859519139311307465274923410606127515393911049504899985456408606031196815701008712834332060725229205781163024308390520226883018322122521588338413205107988628610882528431734222919519385996216089698228700179123378039852608406703083517267767774258527716564475750893199393833511630559232105363954054269518945383164375798407467108412994046833578571468739060213225423596397784374901430696527675545811802121370095406119328390223040395756868082770166992348385198981486327797725599353452703988058730483403123326031940683222213757118343570691999917288185939725375804897860206373455832855514174921318189558735884503469019759780351633992935124187360462376810980275383693880733701418611030600468430703380253910860344168847328087856783244903485410712197481234645174204304868604070265555423530085358670759391970170835767117131410129056437000896507070860145413425125867405630132356251237341146782468499250622227540462035485219111287896023973652681830091390542417144881206381696763051682527508437739581684370413177543742625815291017073813943163162928541304988025928050878387184830040843426500441195276231890434414366847201297850958983778101942827973730218665155321037139942359147773825231656343887187033880343341757979659368450605997530858696968501409887629474194154844468259835023677847611269974584449473920128229721511906048669457465616734930472897413412926024696152856991026329748128060476227024857977347335124159360442070347861166625138497220818276751902395360903988899318763146495135083625140839066512468149076478980236737362157641189175787552614950128960427909927952110046920787466993537195227977305752291337359824173767096273758140682225020407787293837314097689445135048324060245572826091739523484905536755488485655648838594098763169092445704813723920872355541619905771869514136459895131711880820724881859560860488261960785258871580078466769161406907373982603830756834523792740357962718853513786986932789984919646459085549252638191973000530238987187081869851291100634174518765338267036582766520231167190224488862136451781536278468213732055466135151595381554789817954105892569566780922270921044962159119058354963205530838122573758458359109789228079180961660020435167104871726183281856126577917845231428286690912002921842578291939774229711014187200055700189002669316592573808379123998862090270633234864559005299927728791862166415582667080975118332403478920119724640000853761152175486775843082265630589030526089522857551898507542805425131517257904880895181004247647061347556380221102391374721041509183191211495374963167325178345751610139425254815908903792959348922498333916484890378877993707354840203729837216341854086911402990568863734803725248901768764819057068107614140309245050983103424481270228879050242033731250791443776369599998818775265918444459108220697210065097946201500771653864170557427287568025457758163834570318824320701441287575575161432384925130648001388418452774719578911720511377014444821519253514747449822676108734496134877734858713921064032528994340753226974431324403447204126555094100193029094738952647153372633739666850860782090979479956004379112931940578146859863908766448586276487630467233836199749085244341075076274288591854014312757704915903544209512643349378742745583688460542177488635980147487083877258773428962112200311310237547214595418833996788222062530481880915598630121288373288392325307255164108123690500529467672662369204251819373813923353263189906333885392560355189894083539930022232281829642281029292537359054253628606557023206129526167138386191911148235005347856118450682641068948959956912415572966460079541012038782550168800065863057262861207379391119587707181925842032159263960501661524913853884917934264075803313729387116962807830050788711634678631086956747790517089044214150328659573878783817480138868632692979644517112422402144365346646315279905876042217449315777177973785369987675727574542889035220983165148528478823047829639666023619379378626377136242193961385981497892048788355736908631039497065153562336527606006550033662378098764288244761526014999154501685591571942233210485368705367491635393113702060338350430652746823160242964609081895783346052154012686423528667721058230552397512777369142539034997598564044458333224731422966641764486763025101363983040238477438944474358352417696881337960045747660286610319432035835317768632070944313395006259989612019146934388445273272036399043633589546294027432486988638081688742502429637517663055529781505531515473125204113663673369583905115289166093248727926907805726773105923368418471052599859565834707769655537085112197361460613054484530778056864332614803122269074456903392669280838732390407153876980952823177830614579830804619391472848527569268471887633326640057775790593544782942641756449744204403077598009854182744853086012422387493799680642847564088505298110533844189471309661229752846445518240360858990338344169151688150970461758553386870162183890614658787683714941585352316534197961368419373629126861595696548968139099362901585716407927647482273716392842539362045165054883734353801866266978908934549154744046642487042009132541656522953027667674099477577670428459312130428167780115921876158334899153413024014547960658445634482770682912574135374222177147348965604411658022165100806481564376005437008037816872030259516120099377108696486086433764044019999436569631311728768327790273736290684037509073519619804575832421676607832044912557079403605618289909356840919050071109835964089689363132337944794380640158282766060949335224122422753353624250769540000123687289884148154978629500767739003151775526478734771028681961545374271813330249363042874980234946180374463246610547085188085531597559655220487980783702019661166510787658137760367604945932122107989751489543947965639118225124465977071014274628940206724412802700165556120307883103603597293534892383572843444204612934316766357830968609809404697053904628311951884363983476362530836358353635426266406854766250644381694261421959503829286696860441729299517685219960561290910320165162157139878424586338046266079630375415943390277076997834056796737629018822819979657781118406802513484789703903406961350239019714423829913576132948047605033815494610485518514186279218139881260116999414673445896091412112423425346011407281364633683933265585696843689091920894885346353379999202439214999146672932933695746940060017804676521646297470216160526563609216370265278479092802984698958336938025906216424791539918741432822067661574962884802662663419855861365528016575460637135289260414148901467729686621632189043448757183857851216322904500898812349082977128667087999348986672243812264074762145970413229737578930002910652084844784116760664554593273170266841305020668636922585712913103440677668728434552685506977946412523893106614743832474243195255043617289256691036386692241850628059911668122725427444038646122694897056417823128585526817487532839736998273925842895090161446359460876400384900435253210743860227094062241245457226909200801276230090650629584220370840848279276874283998171002983480062000339748112721626766214737851933903585382272027979590907063349906861628019620637847192752971760213316761726139854466561053593462468055615101736380571720737536908487549954300296668302702290078030611018273623294361712547402475633469878581548144204518305608637657792394210132442737571095320833913792295974312959962684304880386446787221014547720361991323129448278987603519395063571975051426570973395965543314929795731680295040431994222345014873515934680623477418256349550273592210885118083242116285771824594173988895688484550187689354906455199764607763887313375393193336508840473654619048639862230160617472161409828774216205077201897101286403767721206551646981267393852424111719862784309117968569602276102677491191185681438177642682090912145107083917839161208534006502133626496178837264302533979598249157852150682212975871461351145390562085319439426666677513335446380341766893219813028991902143896340014642516429383166192125073292121702334513200876411148330323287909681266028476617126600165826481914765354053403958324230315378579796160862500543113058273855991761768052415369779817524846308177243326687313512249479947245056613206454144186770599713400047315720427689519264574008221912346137872798325954936417271369442600071734406388998622163312034058897586479044782141568675354073566367924497986244129992068958769729423194329381396118310319308064823398317530075654975058386864214566951806920214128944894456330893790718750979157617357421486678288250185795259453474708233847355914676481403664496311560085848683072366990839201990533336870490592533259836045746837732641229293992516207157085560795340910516633220897359739862420952601985341258535890799598301666881716697754716543813847027050068461489379218705357959363731325640170148396104519493585458327176840108125389589815283010059281505178436579749501421074285319720772606424637761242496579190099734511998385569695930587356908586242188049851111425381371582409820536832558584344436941019882273891436299814716617344424007450719884318086430951406314808907844955999966415033377318362799451100955854130030626542329488134814838544104169888905228767117079737675965128329600714096760893560912240386531383408752213440653842602570095505004605012797606102296335106077459769060886688445559882578761160512102156070925878962091846049572228854781512701659622303950498239164346711517552710425860422130740606282688855383279655951370417008874007490325185517096536759720745268343627137288383927213523906776608378520360721459051231426047167624650306707629425109650069070254636093911949430585473615894610411985513183618693579183070454340364311748248725295762564329793521142061732427327317756537918955944107797340678990672588750679127650427876612261155064196759391532520262003875996805571437894724797082449978132619235277414741562074176891524773707017594311455103174443215143239288814499949706416346464614723475352447822886610327330566870770698791783336885355161033950453081580292532078376895814647128043077122982974132842135300521503039208842248719474029016376000321028603020143988584062980771489154956964254253869280238168437837394188167886972291826161868773503829844714909424350305401728735863796337146612771401403039921875518919975365400830241217636732135695319420355233621263851118328037067864058662162442073006697248267909357640740782802744979350668210625956410974912037113236394019350492486766403909974219440273782772096585657983491097763766618281336605646400190097496024074073895764844713710863824452013799538665837202900491721948279378476988879485575783710244630317660748690767462151438092410463403624782446438998813484872403881112661194560217198820342492605731724682629659128792562689379936218754743053700388884996067098874271190231719863681831513295941732165840741534790937227652813688637520252532515044566311887266430677044738738957114485141686394625358919123884725532354776811328021785916157403443835200373649495842517118384290744327294326236884022647119047887437016745931962135567529994126505434958943924276627050886903234312838012331409582471352408980664541376788637058670010443331923040454344340804359313103203122751698471030832413830435684462783563052198650803263859761927811633973383499340848557111640792832452918976061158153779743526539852808205972486194638532643670736901757077426003888032897523573751275203637040137987611118507893383070908422180244407742847565446912535260879848940790662732707831721491103529993972025439065805932018541943363843089228838360717776468951097187810888733009005181970035128184027057636556560710257196121996538612553891001497088454083622956883991319274479914168474252241937930524833081524995356106481347613277376967895354659516434002470670785821727638256517883972716021581458436660446369470820293801595701786134202699501751723012845802920562804282146931273559824869856486176523102870748692110088205491663791680804569713468109138196122520492403771591247011888851176699688704154834915458153966801558998751164495529246049878938389455638435223047395454196995530301676350642143986931506673194575099110825307228553623988769999313918204180140058323273025022618420035082326612425269914750568804793035263645206547633349164356250300166331700691305695010245819947557134943441153349106172151513375822639722512110993282506767156380039211085537685338635233068412339788645396322341129688356426240614238534590978632814414911111613019094067931168141229922021476895593493243324479002131725072157280712184731341846033782175003093512103883516816480782507958456423594319782729282348383442393853351415615098175137627582986199926457819847333246934544639462024225742172730466281911111625154633522173120622573634048577808997480495124899701831380519764214791560339341593730885712297046782449452726991490470402061019660744496162515000504568436158596112532876144552086327348178958027769901449561280667390841581778619751974021749294198068615780947875913294864294890227008697222334631229357434138831274052709027876441156708710286116073577113295853876537263088174918952022614822976705350801202195367948376406334854984620064437315162015122041813656120215792920160727552623211070707665640050860539802467163856337235596483397809674229184897717427595839590820694069232978748138124114180415823930664234516721224123815932587061576006563487446971046505591656054168289667337245465594064711560149343424638017998513561398463529306019198602297006888712738778781864450546683852634337845858662103189186561038624412401725301862467449457582262111336962387867652840525128405798606610002186608255203080075670283940163916373894048214997746740933451759468995640522802545770596753445691229276715887694708547977544112393614211993601993208364358517478576290358074672089019969464303009301334736008784713015181087904865213828748580527862602928505693975283330216839078784051204409735442804634243904428659451047105739792317485076496083672151468491676484226095092078509000435537409608101410260129304211083425875959307834231200547067228097965826016676962101314396300304940987086239651160306310907578154726457631453073698089807821749144144917292406547214307318492841286294393149632750344729207994040859204859559848559694914744353839700786872786051171822250577596647998319130043917949854235798575071748776802281643682082693327638511640254982270416765909711042168439059811524615846873648567656747580708840514467957592232952178054109247213532447146528364121518823899125802752486793267909994055092059804004201759017880505907789143666832529949355783699722049527951382903586312212364541635733247266999944302935729458190267309168397269440090332782535442608061169821846962014122937440431915349915219704364968913249414528899119392755493551963488063771316633095656843796139839886823376133541713554208808196740114979655460926685843411057094161203855625219662198993176060842283304335908017436982588037642025238017905250557402536885262916797852687136510238136703182191632378685837673347980516590720551920989408449907107366214496325101421411062000658455347829215969785955332162218930621291938427532667584129156501686036491937222526808100304799922662573649869350914664482525922326723300380402934526601279624974465792113150929693510788701742319762008392844125340671450372776065615276687138467125369170219835525505059754452890179625711004151306312436673679581434842099962167131436518235761837990252885435661583749852536309241924660233376431231671370172725143652228497681747918212210612248004025706520221438906738436928486439087839610557599380629367457642038452607780536937114358862517680298552634716917077333660557083730255569777284357675724130865933300584714430668123461894435887651649328718820570153428503432017232281203242483949324216426270263837990100713215087279726709973399963826363569232914043512584492073654338358581701615925121089210596807461637192090145601874115413971071351897553257892169974355460657338126438865910546405023646233823956401286218002923610977620241161046862830115281187071730502883368441624698225497350124646208766904930900381748361300720408603599801326857207182114012357947094301589001281101281213692045938516487380439528050967326224465423583031105775013048872862454226874979919873666198135846252393258989280809519087990134317571644183367187522804072062336527975778310663405916606089785547849580384408465097129666893582078293397245811891266514380546510845838040697261006967218861820697263787112618929694740206026484658584697869800873919146284077064513575496208123955947985721001250547390331189610301860288773878440117469631924145915557538694668573259266411867612120385369750066409587412457219007510521600260409227231146175640025618077936618584328163339945343227011987729237687692419008383330577462293498260568932956924883286094887384425987611184532380744617722138085093416111982227706684688294485553221620011644561063947233345333210776259753563286206214832455085528132793300141661736203162625050680904619350216215219847102633820598189242126443800030660462783489540919013348168252327109467002887472011038526617794697518387894159619325985561084414516138692479278135158536868885951417320085988189945303419482218567107777176591759097831656817620487177952161176541127068505623286504631366983322449561390354623820756247719454952472470966636764104069700723325571761673603499647336352315784219555182371602006349388862250789853131778176646212045970309915822852732050823770953627297803342274984969436590356391420893680066069206045543290286550035108307798031566209762795922268755683901541541021126866585810728012435400030322187216908428687367035994525957103302086282852800406648618763713967372215623881835858244884415888841293532361430049768288251193926453091323996986547629190652524452156740134245420056245021042920169537932083472506512218483976901521220422482533167173171576793116841117147050201274694248622232112364777363348123836309351249809681287129266921206846557610187708471805945084575146963353872283178274909004707960145077515210584989139782956581553056134412572803949774419724729115216627848002710152612288459519567238030291817973505396411605510115516228222829713893506159547619712995813039253079034295060273304050312517020546797970141247922688982558604404295289547067661945414595927819644723186635337379276813127864316927548263684336951216175890534813782952533038527178545332514661581271737915362473065944984723040189251470353675361837429101584224620550809877011995589777850268440729146734501310013165255716042755341577520768924769162144462653865694329297395388787787549107361816526273457505146649673058825763555507282596515554031941855592140791274615609998979195604187264882643613469683093974851277499703636151313901472178036569621879083585717204920999992511812539422210732998499557775192446539692556554508501612298337058674399793599429162776346122416675794835785070924507460240418931300546569930572703578072109518523514654716765068387325524559319213517110677594596289436870360668271212204575580416928260027059452930873449030674064826135123367956980147784683155423648365087146366105498019717932429190136432293246842741918339713087496496668231400264723630585517806404413194490975644123145451576594603015329937095599769903014944517493257003213731466168792097534099642345392424904845114030497670002202979814936052858999373106141546129993369219956341725266454973307386674993403322650269997671279938865064432091950071188208408433346177606335812798496358803325041786055389659366431757565096829744163401357324546101307283327957081037843922221749428765125940451382875818586006600502718335910501528198276978154661305399557043184611658764102608076220496561916295518131448460448376808276291159834114463879628829399790574028143862778887267990652140114741766070879198760206016152006890574265354864598681846669985524881905331453859395691630519742828586165808888384984037476668299042294743534080421563118464056697686501039436399117891472548338222649438955144262462800270053190105017082060192376547443050217877802326297590635775726864591629010179011767725516737072178898506909299343352477555688099349131724921641903955562414121029072744238854885765439860608004206809728945004201766326712978197990714560692278341068956654645968970957085917336816073601230535066422024543359322998894729618995403208229815473380745366154049217993452646702005833245709405316705802469067015248747430396187448640642378200411538493248300845190708732204431548009989101656673707516813214853946489594459779795002226110409502423994255888488598047241985021264344312751499163458712880219565738780767396469951132604717774728272962517027283003986459564983969151747631531874021138234344867955273083989916505536965339015306509504676371575795624205647180273700613008727930642319820920077171108626022461037953352940872721221827958911726298290935927499706240773662471213146651549454007468854773691472111550070165708081034478277660259825166713430223629405953941959341656392634568283582990239532446149108072167767344933161532194609290309057541887560093599986818774946157779929162761651657821420040849083388684308511004935432518095907438010563477916744398173609535429816032699766075932281219318155572741519261724839231833541136590216795931518647731219444057364285645895338169535807655091819792530285037875929689299876112051726993597740632637910398875368439328062852602936189316501750353532756924309919872416548063014000055344543836201354312288688494493862463512994616495711891451840648294436005108643852804154690570979986832278041248591788256338117083389615801391917323044575070680171925721688892362721959340025386923668998210747821956769374973286992078012073870228042664975273539525863042290798319388933078377980021706660975046202850309078988959040954622883301472008395290590826737692073527643012220314290667884379378102049413873515780529522629969806498041721127617445271961960589409039092314445120384842090190909026421967707158959898345714607907570440716789314869491821852411983280042394209235973713735396707003460600514197348319995338721527113757120603503860320343349505187144388468639515991378462165111841939894299769854150677997844171605082870876074297960634623579871235073338283206473281199636103276737331069720075923430366457175933719626031298196200281780682002220839672052453373990731606027139479025164366984288494212185096229462608907591774276239292578652600942683464258274921837871509265996660787626586838338100295862977392092502093649358013043796427244547026547297746791123430936605808439818981105884806229200138797833267905243547688808397439523561536507132850280459997010204952232217713186128306258194419630709981241837098252877447300736323299580470353331270158141976812886340691756292988546155911815900697071204047929143283970370398481171150557178369216924920985736890192682075479551393971554381352324326104472337213987551411998753159018411454785637240369709768069078036571941271828998881961530652923018262812966260765061934194807901841763137237978390234594462813749090509906328096611645898986031806831235693374261559266551265693839377365724158862166652624995353907855108981286183021227100693819098572195361995829557005196964753581602315442886915321370996553914162554384201553169452061992124146377639225386661790043198225884844967978492820119929566089779326447202514561921174749261297799952453480500446306901995903207465530065566768414971346955041610027170363934260315134530602274303186448018366672998644800385126312575905053068322880474895036796673732017564378616285860379869031458975878626796510123963716702091100193711505439385863491941602805514892527150987957950032669994358772443013229531864385633991590181372833165248425357949964135051765293458911737245906241688154942017465701092789923098346443302854314646943538665090745801438279478140342299256481529517354453538522601719792266046435226112068637689074882159314479352881055903464078546794448550609716360610699372329921877061380295490498078057623541843565987024473237208260075000876753993992476661395782729403115973753988774530941325627456843591464891866280980482250836172820829045346177694747867946709453167378977971908757041206234681325321716272279689227499466132701036413735450558092510811970014748496640056054824069534544380085418263661485992007355112599700152905773904470833390806430734243101909974792649347118234935700927780660061166398660436349594504746608371510369028531368312109177923733103642973255509209251502646232704846504343785057978598300445387754331896501769583424572305810699936712530080183023540669806948420489076165694751414783757807780267944066188142363981138705210305557415020729228832099274287223384659349589992029041940137382470823408247880433185644903919769703255245549814082769829013875274561926392268420126335419006641458874147955920675361131886490912867388320583618308502430798272024437836176000967097105354217762879990433937326000132994051595631387726761801708030828186652853072230547923096180669852458968905178633223947502027964132897894140906199323363209952988065414915442654361462259264416824851261202233626485314668594985256459467037964888978997773822572175237118644494262936839361663004616555716087458102647674410569266897623326580817922120378170162897587104360260930091715071876255353883210345988999209987875337533895052730630014193739302084436355721837495068815966012396989246154147165549613840564395713046687191631901237101209676429977176307664742460280541589626202444600003948297040383275981493956101797122998799226143049811516437332163775784490289464649606083467665848066546531992938450948868951602643536940089032193379071839401510157415242444587538911935838520622647194415376120984501428053561751552024145994009230206629155397485154644181415306761264154560180583784487623321814189421376927340690999682016484557016948390010352209003557509609744232027817730174563743543094365396450210534208584014700291994349811223737351535301400397683718463623443751585061713779828983750135821038992617896865795769212188094239561946692189993665970447079971017231562391915663762442337383957584588824228060541775728827860915573569534124002205309690022619547650751649488800654696079545019267417211076962974749594938854460148265006478695438012529636291798549014933200007953458725351350496564145228496915825355540605716974712933505244764615638415533457301792692423711118160899557042773729536465822734992925389691846852872036429706758649530990489817753577304810410155789944620190982722975429538707402491999784625114901672810203260716550995844920239792052095135451013846110929351239399359767924866467338011245691272923247346697986401300540803962431355413984363594732835412138560426344294417465582466780949679052833300633780843634926411564175960663632649540662410235869397535086907035127004239681000032560919441402898452047262268624898268979740033505136852801655956303502255012193341285491636945277615789173462730646690733003810492650545943925851938571176912288146794422201526489848089829137540227564063287149319434116995506085403468227212373144680280970153385279185995199619475877326448556578351101175559825841679898983050279806627157277554338330831987177005198678841999766484556752949819449516476795010953670551867939666795270333778120140101611932980026076443741733390972171598250292981634204786665475754796155704065039009180106051763185679468156059411253492648573897870554736782379974210075560358598069695876575389757854665326264823766389117232447361760784643048575925331842165011156531749254666023614856875087772106097610954320361466651894182562881093342282025461071850413691801272931332826124190751199534167934270945173118730389398880818170924068664809044419518764882546223989391616328374317692898471887596428343564955716277300503280250212326029726289287342740289302108578754276554761257391601012995743486056646565376938409223046887459752287350922981369697909088961465332722328623699177837082237655062062078918959542970854687185136096880420556378234108912199661943789396685051370557178230185769118742043423549473872155920109162526682005012545052103550779007886878878497026788100823299816701785126133079022980933416948931372654757351295072894201694659977441391347359369493603314679179141375258998670438023091289333351601488884020743503735265326020845153068888190790108143593312904343831455909227336703553183828217612631008942633966695153423975491326112769893454044224231928395321295986887323787620051430260719287345463661755398480917912804286292456776971424523953494204926206759908510033522287911611123962298021841922139239635805842305601578093227590747604211328272125890343847024544619267321208295757317823490724161272535105471873416858992302577735059386656087858571363399408912227727839927325598018418805033065595925501598861874430890202132018727090101458139569552790794729826990811924589572511250997254042059267427877177075255227745621575742221205953717012105528307638365884446740839697298818058910659974111931099181448029254748824036934731615786159788363706926562525382357742028521059897887371947539745938964416946838059825169142874784036387992490513049422801696100032565446663849906333882733183602441353032877275192770892818364987050245530880423228004176227858243955484628201045679799869027717608610582890216785191004624559194553003980233934067815259083412313775838857822420610215523354970606865906666759139184476370871207536167849707711782028265428282319679875305594331759530239199856954515524776155286136024846393366235723726409532583572367542190339679639035649350392856286069212143764486285473198559982940552323969523183653393458811893303781533635128384687837785873155736034693514465770121597952900035185397811433549756838654632506317538543129878691778080466429547911837729018325595800626110173144486154671055304462494757838723234462056827989182317761594492219710499873592018232573638804288750697458362027108228285397218265060506220609427517378933316268829610231852491603299257413650757352246407995834666343076914989677941520894581693230728438693185177822857893469657964863892070883470751757619214826060003926029003201545483702306371517103453402917775976000023210529020058759859607463814600288566270282982136121097378507826686151988658742316436558676903069376034657501934125692939627886078303571416973412924082488060681713711175607872930962129919258620679440524465083069682486885355807995016908625230124445735247988217851892408754830945375464910070619845424477205216429244407257210751933225271260034287539048761232715492694755104479714574613958419976820390757698101052029109455538632976410940594881673999611738948142507146156988447630144156146908229162906516176377431649280526450195946888629274567013768938750310830244773901595336944292378852392938595627898366898541665295965014737343903732807554937135426454255412531243234003528388494152589564684328920864421048450989092188218474200451739471086060942685974301860276079951173628369196532307805574713014891998294913318810126630186644289221236492220263455973323536395333363771453753178209111142355070423923303153864894251635571822791565291947026081964105311029528215731665477678594058630561888750499267984307025041829930947596658708224219837193732320026647644797170476571114929053887620997031665347147338358523593496234311098058706792398771716506801107547307374185544140228147646833499419031213624972629596992983139176926649765348628571975138609438977927366165457315158037256146496090311881920439901987024049686153622192420392704455568304736549447675273621549683764494942004537972482120394091726962811622247522470176498545532524453673175323268150629960852698401567280528810919927292022499969677984667217864385172911218440004472884642554074681606045571799875699291168682385741281761882527570651796428424848582264766984311722750519022067129032224030251421135653365356558871519317675674635746203813460813821223358112735950015251558490834624402897312018692748614690062833512547254133902221215462847965651163471859747987138302910474622922865843981451897753049578926210704122667020364549350295704438519291276124814707935093113676287719513874665841909814272415496834309440892354598684590334659383754060200798967158255760315502608420505083719820309217857679296590812823103314856217502793704001584687828854910799414420701430957491734907495981139512618133520039105607025556205972675466725784304115969349551109068911566427216035653376153620573479829197615482687701029998377196302251532630506609097473247664746243789984340614728241868601331832542466206896668689812113649510926985267568084812467475352893085313616624205277375927546639618862843541616801721556141667808319332955654873307604259939734101529555557968122702329469734227676636956832630458159990116821995752629780624925393234359865053279176794222718961822802814954983878412174017922590663372742708154094439980536036905042577735113669482074903605323096445052110242237985529069172507943515849186374052298713464744737471015580616243999281728361742243417127360424219433280324335085982165193952179749567524326766385310381302893313509439539693660912494957305651829498760084593735692526997425411026703115554682046754182942997622661108294374733345318488063490756258127769004760587543648505415970284043985784446537681065988505044490261868596008892692148446160925141584002547638203624085282074986190740582833632401255593043366209576580335157451812093486495568380971957347094988666654939064475241671113508570834389672415213738705300260805968151138422760059213589063017562655145667115069036426919390030007703982693051040531446939847396399978857753897103493905070044961893905180768868594951232492537820029069153058496443291953487017720755379950601004103135738972875343803178108163718852852654285317765983270092313479670493008911561193903638876925996978613672332468200166764110522492862566620169376096906202997882006914266435578667994866921115469630744443968985735184337090206210894886741923074219120558954420385586104857282557910446455731478353988079908631186625211985855197123679316784512162675429671718239827391357996048628793392349434232589263204263498161037944388285218601488975447594710036806262652426141685128021806080725560950291342939680247312881692304316438540259716020724796592396026499896501711627857547484396090676845956612470155156390817985637197329010405133915489472030534544292056831098161317864605246885824155548962053750012010186982310440845759050829524952774563974734412404626981465356559819776763025722793076061203560858721248364578393749787861821917589266435249728334835019831846056652624379950010417069710032570074558759397445683296127852954285543588649064790272621326995511337266279665681826648140224655838424101344219707795718189898246303153554958820717872246260841019217418536645654952275681307636401015839527262338672398217053182448962110747220640917971513035780150360944076077661702680005881317455431852483750258800995485595013864362221010841173327347668629367288615165941641448424678034390558390323003526274165176293681806831768925969333376194732891527198901861744553703282071147509025155977117649619998328615635378193149016831835838762767068748770038017241064597632276881489683251240480799811107398793122083614093189968503766807121497958300060191066492086537406823496463876758095866363220200186495635787347974391746918144752622098173523538886350929332975067069019381729757087812064429186069760187164676927770231537379418028460323015684315507464322251586624360639028098843766654219363434364461753686076479480921510076221103212253905688631328111695348635353197182692137329604625759974821887676418220394206536332690045927623507308387860829048951596521977826141490236297644261003677125723715861358507933290092847418019973131385297875415119891844298030469554620189777137162601107803855928845306482341953515422876706266509519229264543570917204878471875932752516922297027760460439183580802815685906262570342879043649843022838503341878589702925896616821443527123288819456374199714352015450183804773024196299553915358665904446820997974988312741621864858054166171957156999533910943503795918745947518965493777457200912548283911322277922409764447681636319590006387151312717545464295651070034602674253726007507146689025134158117657930159960639878775250532005136971637051972743538313474837708720801137137851345750129326226194324669408370471451292467615261595355598332034165053375317044607674349393307956541702710930796132934105878193876989657199741731233769594593484235857170383747637513473562412126424230740520918392758821536506530481718311227053429536509673127105134985572045533753263795900310217436453241402624206266895511803854869510707393261325972371798972482230855727661242946286024841546782458343140200235672860222388304664668365366198022045244919561827296333853009177227237969319700071790958352991704043729127052769894685365717993881328108085032942910957519930603936817539613982879490781064940151730797554694095148495237832234321185521970595286350486263563035635146548400405859090338452425997354126850165812044031005486857737331811617856742075953036197081629252442619292898930158643571032905323616551995982246937188815450080794986769720617240858679559242967108602919371937590939650044189656092977902910368149817736893192350001129717381776370678131656545828102117143081376158916865583870850216746303133214958914903345565512876257727748522701593009164458259474209552302519798067037975504746527844803820232543599840778383287739697360046360574397797346064619510616114214058290379580360207474721689140719007790650737008402038041549151333914284563797262451449519532401563972081433356128776648396953100580881570351035003299322200733349780970877502445427737066990762444053838267244850234497333750791971383873362631292941880148642489786068170537624148344198369167393064250780100918811537489784877006773869727747458019448401557482623084805268425305400690535386056725441283141977114892790740454989488304548774706161001138907762505123289176227224356737222902553273364533826718822064002923379556776672173817898968649911541795985979992735730106434304293000787194272367130482587179158706918407708685885052741603789570054893371899641722888233317015452835815099082886950840503295214421397812860426294217700538896931339388987293879074012467555097696809462649176946385574963729681527345855136036690949344181490066798990476920075255800628035805172146299263251011437876719387380516484906426610724607315169850902176732153636624962566278027943572352089734497419784913069533194940920619615089106830024624440231178917849187090979460920349498756499329802003153187896705616863364774340271557342419154978876365390385046775186095897892687378509227578282761613369818636871362328140035209691560296990817333965953874594023028718029332554963521745632718559626066696441872118212584828789541395693198163687309816494260687029030651024881111591910800429783956604449126006597708953531822373281838861615478669841870982966709330591426746361311403862202052990201799599141809175973465269529366850825741027166524330806004837578517687503213377631785205821944078785582400565321409314120942315628900736561755738439627567408071413134452142681922293491670746425543835806788550860745743855350072879709984336733223773268169464841410726962346284375379706010307663983610547204545122895159768449174228528123217057101850513091998601200661686738573932949586381473477372035970914024315112293083687015886500285668695153910021481867433914737106577963582762857673274151219488902329867590669688773067824855098524295430896791596098018567393867561615653666267687463112498572979043206778412160319234590757563749315582714186760316904592467555858752237956541946624925674801455865031476525712106527012929345951953445718711868346385769009452083369466633938222024265895362455892577426999679580737343520461816881911077028787450034611988277757034090109253716484703482675798512959542604944905611196364342158309589507319229146826886374582309993799961582078123278360829475646448649573110754378202393734861403865947706111121059380663662568175646481908656730072015395164356019533072064389203669494123262208956440914292143664424857249013490340840712734549027852158498693122436652137015991507401163848918463768212396889343956216614249284887105268633665512373249522788144406502047545790659417331436348965772525162699663477204621336993916947837982056546255821034416460247039099595244302343481161539702494094853119219443117381757370590017637036527481934078108691990851218334248505577500990477105718469927764207688514647405251233549087119913374069015200109645454925913747036660587919371931461647870769139572864228181119682241612637485393399989686862214436162063723425122576741971476596270028694866036438890826241501311480710290970149416634720333097381119564975627513951589561505679733624540993852886933167110791784929210072795140232777814733017573922104259980274046295115757732770978067778888845907488095787161512746780525747290085907229844563937596447898764230562763339416036247662003114053250450373579989647772600544734937143726653943290066178198466412613673049799510051025533838850842947177006265321192831510604868393752291881460692490008200534043415843923334952229317214920325649055360588904477048937208172747654121703526610504180864009523394223767716205169153468045729156582457933979403293744031886677460997872222805340438831325257038456840891287247738586910776518978950069621161383288284557339699372153845882562206483313693280222528131142439784030327700991989880926979497880319904842925504817528759087261836887955288845683782672760052576016827012655675935174170547632881438733372378566363401376136611605943380969669642890407462789720571291681385476012050642428815404014357912781334556853929406991186572155661491384929500776878854537383938201668722520949518453276515198154136990920750865645596735685825696640923857856053085993784923842180885635472651041926874324740313799579515989968318791334731561125281075781070901980148218090426439067912281896790050981652361391928667044642679090182711985129047674062749188677797687415637228600473776530118116814098250958470061611941535321781607102669008647301846861278907970034095229295828572722098363546753354464964824765665604139979460037557554107162239288267871257530204153679798621500844105055897083917241857490456013450503723948880477063253810465679508451912283102981326508286253846114396062517510995737975972783943159669169587091285055899036155245589509747613661088457697539758633712087641930504694081796324765534884972469306642301569566416785694084815602398220602564529392590647729197578407142729882810528720082569462050376968714840161818588586765374592427829104766586180959183638422724584221160953670086154243352484446386189747193665947297746036168125095984089258400515007489282282262873068054826613168579910938694474162940241463639004862660254939240224406892659006508547256521988070080731035384483352949050784081900052167227147172055650835516858612150339210815996329235870027692566771140585236844434387144216698618282385250859253095787241442693296177982054767825486867296578923815861972133080062861039135129201165479748349996792712222377235712084218882229495416452153127587400294963981026360863843686405150517484298444798850304718282562576066973596825385702658327903633702218007652904437478232880015049775277864955326109242057674960952211778577401425197017733709942919817474046239480216442169045443939712075746590428989018563840803478808655249699020900071988893850398487992041737288909824593109173731524128892467470319323671111807696981978706694874586097404959967479915067408840086752814812435941886980133590206972450426419225461273284276510565099359436532772729414387942277098933296016878782981650529236141195047449822122429003387567689215618201578490760899549724642557281644555861046396494358484937084543814037382624635282145057561136590677103071428154455508645260648735270626366649595098360760049420365107226247867069070329046650217721276723153757657462809358439750655590811095740023837096492565609051910617233115206014538320616042790595179844745029467049120192917259680275797081353429237183419079539573747958268616578619891741758052209367778172808815898950423349651325324027201645494432713296040400718308077802163690496084172455747600713002785684685009621872394579211486852713601583740394450665017725043576534942835318553994792245542587953944370368269135851183885391102054331478165628397154697058490431768463476538443938194045022908030712341407900837720988908341193528330619488305170784063699019926169011628497957411272611311517313182596653249437908296112971694651968952720785578642429467838908664835530254857277257729110205505939094061765187431167675846378080011681334447000184080015647600288567826310717445713518577296460900573787197542838065143986847480105191469210441643536998883329035637386583911809372598336691930109467822198130412871490746562586094258611173031325512859722790103276743094310936169990626461656906229721557809708983887168657129007179057280731628134961817373391025586297379248612719126601928708742144061427878210227574405950569335067175217573262274303291809174585396692112627517370662654132106046833140106362833217989612252157025066328225257737573977183758669505061811373479899755337797880234692163442420822162860051362102896198960298529230788781624698907466417394087384145534318956570265027562764816451058118898424404883293143951422413350985652420853471477828151451207072530038998876946153117671123381381659108422502730709902184205005482923080655287227800220071695701415006544455496753713967000227289446739633532010609490504133057803047428020443746588011829093095275648175183433822525132859517829129202890557835661801147911859217870921777257564231483050785375607653261126198040704523741750133736379071169172125866972552526039644171816488081055101466660931012687663611670987922044101068962380858139874995773238916311125656372241772207688713548340367982080323224073482444832637847195451975396438817927709959825910277847544342344702849177965067970564165273393440829166964211510422908221193707894934501753081250465568314081479629139596174156193797965940897347794720289287578007026252887685687141247992420098442484653916624109128213918585862024875495144173594429263903366945041344281134551872270788311319905869106453912306972949406855050084321818281425217981084053786467807252825242428483080825188023015919579930077505214651023448213875154676287108953372927988850253138589169167451049536434812799630197423890697385473178451777719297524458695898743023023574643464829732658738444815506434847459634638936852647294110238626367818006591237882355515259127669743192190765675871495862649073251209509821423330490356728057023241480644217871747826970372343182040889993493383905398092600275555983423095935354446358489395295075989387710195222021477812355016430793624215356928079249228757532220313627923662070810188355568566231936907130155440416299825231603340545357780810368175993831423049555782343818469771167866759221950485355803129106706768129582564816239032585071159918044825476708334910277948045880746104444358677088097809609302699831365163790784035280299971966298598686067275612572578172832200039147182379823505066305269506394842523907090881033594439179129340706215792757396677965384580343550424927315737380265176691656895888742810611462332288175256077334905514530068317021728738667248603694283183288266084248853877851548327650726137364955951837249446407890980082068831071208720747671686206831030758293489291921195395424993004894890062369887190323374395166053486634760861162781761386213466620351573337487212489530612665258666459544604357716689394267110327817764114739398756131346076632155112819246166029417223883643275204576330480180833159215532280041841099122671609851014160441476820831223858455619205530316334079062991042979295393437149075050370272697578158299183825752926174396165327519023623017189989217362170758616724853043907789934817997313622311372591194154317719559310894151600588848291042679629182482737978664888565049387832073779041518754605878118345954206480411735612633014827930045233369842203046242247656650986528486438640043519419519891493715897498586487470401423935392187102369697863469440888861913880359843456377624111384684540782863038010694586500602034521558743272399975591456126296585593013954431343757997204805805473285601590088401790152661222474994381895279347384576397540667452686880955579455567994652257520228549023247103622008243282883943643195457704392533795471895868875351752591482848028575545626487132794966671564766067025070391794043995732161731855602937888305275005816816845150514636945622926548422360894077309446812387995678674321792303280153664314735832362122247453124598924365583686627863144106605373470013129725639826932855767091834892378654841466793246006813768513809083907251550314854246028009744417932656415288231920898854502304507951931772211150007283518734031677628539894450949785844781977316556327622092085746114326546528487559453809165495548348613377962353706016472124022381878083258008477156930916861783286365689580879047251855233949292292356796833782715195742674528655588051779996577450021246431501174433013233508960507388789591805078753633474619751526973529059458499347976504124120788598406671284328432710793830080495253890887842605091849233672739908722276895229701144834603074266230018084955114814049159475526773288298169467451231736705263384685054666058172556973458300391644511253958887808998534233983116827660736976315998619917964270963525653679146560837754700179311181943861839657926137607650363247244027805833077845082757733409791614626004589158063698318648740528733470646031380213020314132054271745000369125275224779206365855376506474378406323380159241376510095685286221407839544351867327310184801330972575113076821120609126748268341899409734555100942815979043952531501135632079866096630929431331169318743103210440579861342669820058655261964058984773570071177090681250408051835013925309048987710582087565179091123138362914099514303727594985023032209095720692140617722894398260016741246495281168908997664010125649778701310021358490494602457355826329453993218293326302048605933933804406623920515000220987023991260386345366197439678145813575789675888814632693863124266178378904356920797063982983265245989289249780016310033520095598063780270288611022112049983576087178032609094669192437051969709098653899279984062920854144065399701334146168638806195480564933901116629933813812969976231123310596122943306483124486892400338532225222236951202978367488581858653202977709599027760832653774862747895843351983952639978859660940389186542816991535678098480337089094411248316342006273361330485105713198253468188015353464136883844171941460574763744447798843622278717340918054505642215929427204927098195041640241268784242824999017926400698175470432392574093056238368857120265565534668138680608347277831961132150735598294280574290379773597888301629562370016960132612029348124795036784339384448484001442222761104672798956976517763279935350130419884661727752924889432511440385102454175459140020458113919677666943578699768983663177805197273456150873147300234362103906184860029014417429566572686799096336460847477656230279916285560850632653467100904758778929231227622270836297602197614400126835531736412235328729595678078416565775018777177142921331629462607717278185843211734926368496114861855843012135436128496672885485913961105942016817962054699195245704967353240127348992702679793663356682073379216014894005242675354022228680529658589579074253628719040346304768534262353121566333459191543469246266134875579661732064989641170984113038835065833230533347939740065909260295504398013030785768322410390136200930796265804524333981914630060660341136260323879128314275856743946652910862770298681427969255738613704264075445949792229944053279797396082988325338299189318535506806906789973484318484188861187673795984167916137631016192460831032092478918651674603623070721815620134837119807237271023952116116017051192534278103240995229593514571652903038965411939593442964332007608827133535485566994857976966729491148243640934785020611765386420145681267076409399514624037925722860480689452032906711650247112611703277459990411738593731986848972987035912481726869794896923268851620429006310855461780562255549238285648754287297045502936639112870652274085051749186878142127982228283027194993205777161260531952618684963373551472231629512687556396987485658974877410093352463445330365354167732096602748219686285152030308038203895914193550241764065430769463184326704084114447661535438514521412954886899936207954124678261475419740149823000348235044160020750373174909724984674270498995816877789697123068416345077684248879280826917264825762381042946197722749151496415383610909373658391504441858125067588003813664946432023316624599570071787575797184576327246140339597726084361548766950284583252509954793481316869771504513603245637518285942494960966894849874640958019903507279576984836151525487044425852166106100192720952320444623388623155693752349568656575472376004269548913938246826526023560121830300202678546380727620733041466087046793229328379622777772548810112682091677337367135198977573611392913969997429869124074730507090117866508250266570683560135020674106186263887708811101285346953688541211112124236001153407515812467204503048603422938815061792805468178069965628775974544811687299905952892306489480572755946221237653436550675341435068736996512661967059034562661839330365777876909543354579440279753658245324678482299310910605678543926893948459749011025672517538301304448207761468811508838125557947961478081693734448003994863723087311772732676466239579974998982574399549071295488533871225284033599994577555776915853496406469090922176938695011785824513378014018991375859472016113606180832198020311107836342545080136105334182587432096044976484936900260265213891754992180114000876563342970695039730660000276438720929300131299700945819257267625144805186117054286084447868397023325563535601038046873905230270823118749137797636151870070072800239951296309248951380240118752900367749175443320055386404961869536919525529003416573995826658670150806244471961809706343307472930721177718653368739448497423932837772829129447550292693268233578552495672335256536234877435397510638597296778358663047814067461261069196009428566749290701984914937855387521998078019306059574308086438982999648779590189434066913135187905502483967182692840811066154956257138644667671864427479317512909470462955987588531866305286687329520427345394388639638870386251833458002763294366390144636379487941750459742014525105372760392679709041453671336179762159736903863589005284285700812504211089666310811137945831057039805605214483931629516598964974034702821822834922897529501498888112218516650878669953500880592311680792569290305897422915258152268602012926239809759761217492960572214783661029056087207874896656476255641112634876270604140176133754282059904173947324841291395067187865658433419055386470110002450404134452155380433118090980237713593924371490905991432544604989049026915146792537360864309031800279506735399709094021150583243161702369991552812611045234102704560744316450259179407452315551922079599004815357675728137123122968417922166252739506206859094428438071315008658209148759868856181401428412966613435539989412930568566535513075362840380374095682149543701588295361582753365460362111291861832850748376129115548442559494595723612339983694653374514115243445149969156215180831328412985036916545921779660951591710616729211632798114115681446385388369558691998054019078931918281939233559281287523505392160339527491732705802015950867110032812419353557700654362599424650149475689808589239885337228526285797282860277322727243457957371114970260119229148477078025420060179981184917059654601428528457957731602800162550056066778201755584825413386301092353304532218658549307333425508202896723341505335269872038607208080397740988029184590303803601152574671003934616908381541555512646873397722795661335771354379883321718279028475990638564664152540014421542821281417329901488022807518493424243173387087097927984708997242373421782033150849711960106573548652895019155443992131323772093045251305155287469723322605580749179196747860437303678706296497619391963474893503187056598416652210867175597824188546647632322035824205091656135534443015855079063838001553832188981507721310621501828960056059294328050013300051638865193969714006804246771397860154062872068719242438075415758771371620937706326848429553141645163764002133838753977453876594509011936837124505695792962001890276372678998791521958564190866087233002114816758805469341233036204968907095808119294759781322302037370064894541629479152836068567355279984643662318660387696566717215173523381984068914158316300917766044547931743901895238948051407398733928129350195458654116295983772908727253108633970447697880860897720848592437114266467742875570428560921031969332767745176084300914121247466335960197058082164531832431190705030168376806562503628490568401075057246387551510657061596745552074404143715865563155599410203420874376788319926464264014125383309347438438050516194052469409353031789415999312827332104233936006767685767880301711366345470216004229768934060326850247154156836305501770691556006001107652337897678369329431179764531577639353654050553320631874039105416586114916068822957616800279698235397698013466327133492779886513671800532833172715888163847173167231194641972260675573610904612048063048798259791657358886712177829993610347561475979909220931720732591586692693579661006258038936954487122556866197779004049658559545256669681902944498200375570284512272843979724435526824417564228419318683302616208443401797753363795127055836128496373713170860903475005146009716065108610357087184752488136241954357267182418197699434845960810236721892228911154278666425874324820749566528792516537657839211341049685912138787891574124657019954082843669715789618040825444848218850790812428253102577437379892522738408735547625600122195153937273614323251508185933284668825812325648918590992552037656313523720441809455368397281597745188019741040771512149351071063094256179825692692622552736088462947933335246217502243278442855787492095900909919232361678218594416488540393195395578962964808045226770956089931901110446322118999604048999132198575650977726824490124482034585104904584124832175379887670253414456134168455898065209755833196883071735999279363957346891098040903194756585554181385176635459777585920641504120832042051164089888066149965454592393647753021015219096560485528056487488667874831474471955997985210439586731339205752424459449359020660553677895249053529632560322669327833133016426251441486239348457963855587031125916456147901002610963490763708092762868896339423572593918290113668059477680777921451426037399138603126270540113506480112555645495286162748777149908445309886368457616325397443753095567014075411635475035296352831111644952284494399669588937466572131903656048291438076574649231476451192357443271236217297980071104176435783414441005783581524085230994244007735033119115497341060304751952952895921897918947950191101120037330521105884606042774374585710536445712945154411647489971682525485417586856572479694628026022571164170016570208790859674849750325429979315330895734728094199895355302425050863785943442106096968962319563710284989731253179313660287071464150487496747723124919637148844773547044563640696459116072539408421294629631514121849382994319253541922536764996438248888017882834709601395632094313543858666088631798895967517260978987551367576834957984207606959065541074768703210606033682885549207251666673534370527370647090244699229152013857678157343748562090921423576451673604121901102865000429692544766369424515344764735628342684761929252024953486338314532594520417056319084022484206040797683826967671857806525138899438462288297127790066793781344554697011776624157192641460585483485055761551204055175087475229830087709456452029011840214741222987183903683223947407815235967535003027267688566009253202987432649806680267605105551664671050637298165975723563790595673911034179427239977109328013170033991556666236105164248327690442680103576726132045591613070666429734461275226303430679069016988988667656016684920559101692687950073497552505468149684025090779453172211922643018739062871624459752163974838262212139201720906856764197076569295778210537270287888568770967621139347889520235402110640305559022844757083290282754659247715400707492787866849922092195824846529248420866254551513296271021654823826934470600981141259643598872916212967137432734288046242760356865583721300319587483400327738961681608104344780301830414083912824934291290468065433941109561621470084749164386360289516927056218346839202537102616237975815703510642382816202218702276978264870179240258868467052034508657703315936214030297948511121707294729731787615107617425697042081481136658391945729929064705222621528016548246403555173517696676723057135002331133468156052441207031393256620197159272503174871266636298408487170959816501026027172433882752490034676128945386014407852536114276393129051956649608890348301818916746544269283101476566575714411944230889896512187426938048807905205895379795314086587327034588637681351642846232728339364286015660897858565687787737437078433955672369516046773357222611985470031565105741802850642097599386056633915123837993266177664500931504621154705463801125443256943284880384706953281623060834383337905016195715784252374454204287770747335061096981316860216811693002461011637740161588044947061491261355205153190111481876068408157455374559440047467521207191099166263269509124063789141453280337502678053969810466653291630023405785552696778591096294705939617795218230455462353530635942063455511535133420897799782336180391762648754518192970978488536461117804587915993514140649549166819204945708253515474153827326299025318848934155894969677852787493286462790984493366853099477827378032413264070654471544327930848736787726656786716726966970859137630483946942192468291874118772806421526303740466688540719054335238242958660601823789000217819316073525062131523970178268816445072964753950511570045072968520865804148984135965508206752507875596974199469134393669221566469055240876359820461240684031261894668908296167563393738361350738933079688811177900697939600789559689529987929170073972040134757869138425697374840810527175003044559939021781614668110127855125368964320927145075789042639206131719681475691974674564925439305776921810924674671141008765102272101854443173879662750820207053202436975222147153854060853267428217952671640643678411092307440576832792181949089322026525312874530932900013646521263475513928214570927279788914448085294678030927841970318451424820344033710567815003013123299592581524510235405848227348632475524686829341196777154994434947336467102010025396929675719370638564976743975506526675472041960256456831328797315774166796437179882858647437403992188486089174720428904186733273536223311817412328121219065459697227630766862774025511134406898103939094189919860859628036586514716984721521724861329028033618707519055893526847083680155106255302702804981427897949155478304399927165790040566028697322336641753839414254476416383887242785407239675599547652429984450460051530090242336842216162017621205233030559931870647715601231256296384919143328083893553248423659455708740730502120274309397805729853716726515168289090972652014119781270657628083779171161420668804287508580165610624695925744721792972625517405064682755282968670663416057523516753498006014308970065851784453228011247630168091484941623640326381723747144023997305098072248830128000706088946720952094677375296260935836259627615047644664458857276734299090728196484303472937806691641002869618941094121120557856394707104867239114920862326067259869303943937561232011051251796849962541491370723836782883224510772357283171787580332415118190132005706698227423117174001588923160345322525794005045216745114441152739848547707485363476972570591280616929436079127396752646512346515427681424830467141579472220974751994195318816754151948506139115702973602723354021203687631651357695155688835375850373692301332415216628958269285250471834971573815222490931022858428104942398117859818183265766347472304416617425415587864075035912548161770372353194264758998078228645685469124097708546577318907269811065060813563859627090964829242513835153284315489140927666140660190856296506942921828808042945218015408035955008133541466052871808908933681343344617003618734872630800220796037733666290187249676763210766364781305074306207307406216235181864134685406864129579821635087289868277830540076630783306726620555732799212848561332840219203090134080048166048673382666962392891807191330733059668853627808619823306771459969990216086068373558434165730316570860228555616055631497982414564057801583560853897326036604865548829091350588988389447818245876992370746309743908933862991668442288223672875482090161938461296747835372956726280202076570610024017338921973352074078082048801429896000883955835892695954308739569319021668177611183286189191504538937076311262447083637539701335607453801841234416354249258345685638687998880032052815289767941188318436884971463854957698719505368565588735148858474152099876740086584949002445006240880991957622431747533039673195966916716851920890598378500092119172876668453675991521511507466639517195878634305603471992758223174901879489025489551675198155217876358310257586090684057736933358847495081867825124586443246866291641997945691773218028520897188014641163354680404228312712549834729747056790394246061730720498618267792752566820657910485557039560086565464567495650419094881186580643222215475899807432887523727372922246506375967226820202064657982287585267739570383812253828049928499514719902421431304914906919447101084227085606413317653090048292737887104075883244432535787693523980382252839852684962000176518516952492930469386821622653850595701080912784513338036899686321196771816013154969233204867252018783432896075135558674885760377554156497764031501769791938473617721398452674480810423823291570551871776016402211526620848482013507640363110277815827743670825484466603400153345635990248089019153762022355186856088565495577252873886517585994675887455936143999222734317397481665118863768659836189878474445052834791871355896955503466962737980333863872055163830016655697046713733007081552433645048765026265963439730835875410226626727102715925690182685365849600712591089358643112787914094091997647995367285567584291149755497381534565144123209730265351411707070649820288778943233019856221480566640905815919755439037454863220011670736806118736489250384327870651910638043619675454853770505741432622287393409896518756682959903179756515940344935982192615289019483827897329865193094371203340038794185164911968095319729526883073519533168877965874387478828893847629905519955835621983728076104202323649837576694853675406537827577719020079639715826718818537283927050701123415212151774209851464803860956117203296411046080759674979434242827930837843729229688842075752328956945997231803493771180476813105434921178317261832344438868647966119679865644022779026016148846249846193711840182171187084448203692534915562320751371207810143896027562587515653296364201992201654070285548082427648415662938463244588797014794949333043906386959186270763925924643711537855119355880373853603509719630936303346586177328147346037990479793956474069119002241644981160701617138594789550284139094353272158850379811687031226830247641323618484009523678142332886539893765632245783002709286774206832962974058116611808154017069865200980451073720951541831819489484679870241433309178239655040832063282551332252476042843565496265419099128053950398086362430544687220595940007553017599886341367697201858155554366962185141967726348574888211128814245182202962439988759867956680108713259362678865076028156341272319092865841656478417524361236627195798412173444743653719217142526712639955207999855883771086528836176224647329558134739526796212623680937834977147016548645141810783198744875893689121529346537774651586416408884393385363204558716026557078275684286719020595594826782766182603228163173677512286192433773607373178932847623640745783528294962412065136308273993155047681333016058343957315114661383682922179006045436920133623430801880939691524619176446974088458181963590511201327103567860319689204546221955829638198584416918719294281172419618307580218012713002775234610201897232499833172028268767151965310608884105710548168113852696249904813150636118802880895499603478601190694770881611291130091072791839767416976967241448873107432058997195760220824168199681519314580338561238644548348148835452649071638584933223102718342361542024723445680106656522826182350745145406441308325510802730684907205126801362164687151240836969165769110688032067736830151505732549411239038304800701426125476646653357347820421973649889662877101469057210858830209569092243036468140421985832479934588908312407281405084996033795790566034637003494742046587612112868224356152324934886209222971418221064334264277457290198812343024791478929328877335303411937621861695262938974876298745648673934252857016811456352599390722427921938404567114873680306184848960472490689562053522111766518048457249964628354010002050617290385515027657069559769923160400234163048215498365631792300261120074639534396277500049067824775674182532311801677070526389235247394412230118091882425863168402542275754103351296869126301533817149499401131533100422386945332486971549030133603028682568932846431220461890412595810634254149504861854129456713583907515585476352767599181210088277079292838494348835926712943318896284878319602754760953019589045507242816115930837841269540675564359843386873441836262184513044355852957593202518041974959217156679431725565640885032805764868128019325009434236470431332888238915141296960533231951796231659874329128061929563075244528268380374655219426459729273350645533606872629577519600388787476878918297716317416024708636934896799646489222062387626770383924837404515120891044101352408967651681630408932277236188112304210608726456698836325230888002653106309579482497778862819066025357570072256141990029047802207756854302720254995933730193782119752887183958088577050518835880080162997648644973084937035891764148470902327994530191779118458106279861057653389228332151970641164371968199112646077665294986247951318672041084692380566857275182219973773722056865838702311630833788516935082186609138073825142410841063551729847667424358037760677037513228679322376672548897043446057465867347284615031048828632485881298001112874182623354985439805917038423738599173684562041129267121444006987744381179806537580491857524166007911004765859785112922292068593064817055824614681428701444169081819435879239698556004973717672566791387500542386067993324453240403161771668677633314042075818246294682788415229105076308451734628682858604133114766320750123690555363393651440799529133529476024628309859836785806119346775745405082254177204557395808119822787756148421109010342897675067533496076389628494605860368720286236666810930802566529119488554975244297627223128530984101177667910647935240715711219075271216170075046559405694970714635745629533209723827173292535828064948332673404523102021039111285423290369771804337621235695225582787517804309265708849274446560457812524205833768604327040458288302345169558966211901263590709547233316795579834283738989129823774192350463844926375426969382554524570368117730313460766992653467095966190558524717922965904547533761536991663826004611847867753690724172714343080678507571819056823245630773413349422836839577771351489796473463108527672982944270921414828147627074521410680224789868159848829764096408810922678089852239077395610928072209446319593257418129033826111048989571451586504036957907762483212400234232421701628778061183278701624362681535974859832148078351662218650051249903080029789424340241865879898490857297004809253322490400416307647278091462506249270695457867692983555753850251933592753865016703911245818820854678061508409459313914369602691344821830509316865827687705299414921919549232733290466305228944448060527986103006914119898673523825138789166545802173751073599377190687045356986836037475888498999078492982208722760406303311027187919562382421528914584557418436579412275680781548729056431791966373699521650730346382201451490496310519077220180053335966728045004735516894342454314117343356243153398514832699269637114294479900245608569408234231032876358855279909551922417561912843890973550777240457040635950904395756094304165711533396822206160163693654997960515068910480301666734057899485792472068895585203583600298870225074475362601262924574819724385997793717653497325157181179580965225410339418102209940459798835671082595446805382830424348585631047288189418695966810668767482220715141139112486445973579386237528853104923316272081651680009141420951295916888064619724138703056414306912758333182565245475541448697884296914117556409782209516593440045518398611675382391247974193794814053485499250686198332977427678168547657742465118830720444867017527445284136803792276261651728067541789403017566402707705961221726108457583520607257440159968021025099090218805797191374708841375563834560740707156750353402117162715233050113851588015406895473822745702622675878799952527749568360694853773724641238167250650001696689012613912133764128246899051202279435324480864997007289327120483622547950877481349544652835949326959366434791828679055324506823343101036752988846360017505005617744129813178629231433963494522321365948886643300221767122308411296838905168443874094463234429997952856641253533846106386679705716999624029132324980141736354422769577364943299157198515043210620956207016832609647616974118723279552501768429027059716913396604532931755554656389233895485145795171521045030446187123299060302527518238937631852024018853437473293545117656236780899873296542308083042969885071321057280869031432897095739921962531399496663921579741580591603019896385430404652332521547261803343273073540064788822569919767415794042650785585748657107726123333466772988491409973429050790126560505288999627668282033628344252056771588998070289271732642114768817485820078462460324251325224463057664105673002876739225559639821555352095130791897198940018279710908227983940463541032480461235167823639052110860825044203455239562232198191994187615754669275453449607638113028934273631227645740018837825500784441485530017554411723791766340880220024659694131849216125684703133415374004256620111111806808566610238614242889797677648638512527730394993056588267192670328734640794134887345515810340874141742076791046002257422867656203047666802564648060524649086325708900840367735258480402321403947889499308037023175594228604615605118738966490587535551321279740670328647496946333109101606763338681986558520599530814389567841051245641029102619760501778482045048485307925781290863339260045442036848384644327375110807677860157696226966594397510944118347661936167737393544012280784104834003664142107000539136016861764921627972061604103689781128750480866129625728571646137144600422765201658197854575689562666806424554446655414528839117517322355016018896427025002070089651779993252916523544556896458278705287435856016184209214148451245025367522733608905622167081216675969030365469357138504942753717002183510786369348914016038894790192236819233984397099860963883591923559858142272984551922552335178170943990761714846148623894834276583810874609383971751083388187184752335779827849436303417304149110594413795012704459649890000717571623094726862941616972974229781371629568096304509119852878208435075907284718094426660308530101655375864615129912118820223664925605761302476400570570034237224285068624912186902838641200650929137889143717089656613712066210737222554024419594584310175742470063615550532835950254436179059933060050172553725107011184557969045030044632177797436115867509494916926489341322619907155330421115869754352976493285575416147385958432324529367682322854628435651279001594191583146908023543827041837720082641477685701001719477826290355220481133775838353734792061400948234185716786745237301246765510227956739995041729987370932821576438101248211224327004307671744745198606448833003893295936970052886821963580941511280876447050846594391597733111880565648821797412800208214397997179830849042642226296720895859159616185282273080620455387454022670313247136721835692160697364887667131366771188646937057704893425787044679363467562545767539557116422830022661257809650394510404185100435451619448928788418095214284055604794727924437775314929227986821810041987635094109666272579872215370782749572881720316274439782994733430393869568124117477522284561980722429716074278823243513162355566578540363507438322147195578119369576074857068088657821374854136625562613621190015070606033117167089271003706726510117305308298603612310893757385703601368396351062369357893536864071890030451895579254807455559401882772229424783280656426707887261559013111853447916995554194315669617054895720137278210542825051011161444549379446031323206807548492789373851826705762958183543788340210436522616046668515264487741762133892625887367114996804405296083816837367509468198118323459975562051335854878386888828131091493212710777337673597875401516562175413616053162000266456457108965610338220976379247964325762854185487978904463213605238994764523864106035952714167669578011145521538281659358778813781519297966438555240012496822811516542306603897220036147294232916953825558545335976991531267797530768368226757535504156116243589381438746572432030190639659546162119595565075422121156302321088354615025879946845140178511507237638543215379027503247189466052084108533634880761181658101939087430144408701472235824266877423894300685281498338767255508956000071951589942878569267347116633988973348718320635505123236462857369767259020182058326363761141195027293522874981503261515077941835383141351115038453680188281606920493901615766037515188370065933489460406014746366884405896272514663023727873283337595889877745900024144318283188074049086470083401687154759052179005311074361408174524608998872324508386483060992671371384328925350077107783904902093450935792040717822274798725856669272174179886905252597113329584467283974684653220754274156456700547816291736808293135527105597029730560004966248502410247408236429699656479429628835795442004875446098341817685620341152873721868110756641195660677011576832326750294006025630922616682047747804756823655062714653713548298652755933032017428250035417665602785611518490127151705524497517874492991193622725450193989972400708020864359273288612493708895831938064038742127226001895573642588259999888896733359958393164316268379704085471127549892202192295578503216666719041748826138686702239432181173089376727946546800316001413853563425171238620699132958039914619412600352417235202354626758029480839271944855669509382281357510395725204153189516642786127130094034504426836829224246614014603748531578040045168021648361166565961488706224075155701702980989422968008029498254498108245564540615019825487924907951668759475410733951713038250298529988958100676633139910725988913864290528267366924624963391714543224505667273406017736713253301533222320369718229679594235444678544397590358618509320374422912263561923409615340370251478997264935372168679764025525147051320379994917637411385679683374011334679800533732564586419712418411182053005561003064952940071897216477348670314086636901386069615225022532023352648613489886468212984963537527177582642498317026125603980483651983482716773267962936467433886893852574629032245662706305965413277137930078625609148323649165864689048091271388887082521348702651888449444293868741444621543387727275441749564560337454092868028921575465441392718257827549330479218978758341610430515200232600145112962236933144907963968870775579385726704706339171000739156640659069057228552556784202298820918140125594228712063685540129660505725204498702660960173325356627249863049457800509544473879057954736637673315676261613117977426089724973229173681267073938945021912142849816675701760015633381102670147423232698752818946806878138671903048570757589801598585074321375668189679329700564466624170871166789346406643095628009868476756646003014196108422546011167336860171622447073629834444273503996704120982033711156526347817939329275693358619256288718648005294635061146600249539684176406952124587851305283531911123750472028651946804211544773347196230570764995176669793946092199214485514192703216417006427004535237884398345526146590617139432641289762186461240676049626943017661746217748178888918191830095851569583791336463403914737032238503136825751561737312843794093037260318183724864427763114991338586253508373664962956645836176415748879295729381037041925146626466721752260000768065046814162201068616720077539315719740380357748389132919622335534352881835719022495494553424635543334171741827202298380011650595089916144643490702712406578850718410028781030777761542987000787656710749541879112359949771360897692822693228726765265048776230068134026072106369049078291462830338842580790902114235897350898316978884435555055017101224838231228788707110357689616694242908280701862251488833687686680810659670652048298317547344685108781076910949871123508391061084060413036799716244312639697252472861267738655924035390324725066226602983757840727372586935182013051382325117779275971423990970714420884444288168912024792532812898516188228936962927493261436220738233423361643684227298926260343900013898718414042041156059074925050181129594742104745289523896497615316637361462886885145370234351073283420035991345509473269539244648092552054126680198553717952500525721179417131223288261397163454946865710729457770921191479746192975678594393990252805315853968371447047181701347122827843570993322335319710453716292398174410581414034148912966016746688615114435681185436278059763204859039831229629116534847344208276615272411639194172719771398541311941773241717206511557802055705102859021933938188902070176276092851008819642677342451680350388429602339077056103808271466661736030224425676554804642431038115957460872428594686268680778178039725805940166496253784306759465413422171569358317781757949175359872185147314015639906092554196628919662649368199536205234479125683552279847699247566749025445040096805306488451424945863490149030506681150884174042287619925948124802908415031884450415855034468684701273003890396663962288564342949980764752997607094255952278855277555838847638509820968220968781489292409949118804671151527254218521488926713358565098708127214994792375394526464827266350500684726132306109840347907453904998603776051074152392177445877690821852055519715621144411525271224872615700299173375601831611294484726031717446703781050615064075533620359644810531404247402830318579279418332475637908435079189027938884072612315234850112623835844375035691286410214973733580208145871849041440401257705711230833222466931510852847207058045704573885245072482483639470767724065125616479239542434987045938149931914953719003100668508153639293724927384504601106920954450839571326073311566945850540953002403837532227206461836044001200388457064302358894771123235149406199362000164986506124931911638223481208300695291494558966023627908087974914092059874171867116263808134045464352609696535599911587570952509134041432906238339301593007104616781028157633834230766927951048176314474026729141504187894951017035630974224826590182966783084575676313801251370678820137880095902330943021247945597357792085768580835755583000444127484047506969800618718926034846879664656629524460642202076766337924299427963004394202504475830049907243283806883432821866595854356805898957125537716698742560091938684005209585672349149542632495043900623920072428233688467442256853284768338302643294613966449941845844916581995830908307307838882428976304569326716683518520179500992663193258306731286135743690392004500785304100937036514654451862278291114066631605951578050871960827952651398157227975572959790193063179917651618478817989939075772572801689299018310519348971134308787366833625644592322551563013194803296609110575389277846851567196767591047523618417995320495588640236279035267705974665975173381555367738266358999748224292655675319557417372370475100638204626653482490913544446936961660852999883540954843979143924025589691130365791118652234832630243480267208815004636198041349347161970054760793456262393811611843578835187487978241097984109655741712745712551817519682948275057343350504322497257225835331161466549203726694920130893320481820423397509999664235344278042163352425820016129763857117743854702346684799261367805631919868741098480303286169593173366189606839907571507943016966609578460114928669310868783741672152023395823137040192393734391417332017446381912279929879976129850474003566223694748454512697079291190865963637184303563860170249566953870425033226259733544539175234114592715581111772248291455013772527988094247314025588518397635554512473093338942302936989222999518972022249405670056733930044581881095140118144869352608339916643311219988874819356934679229063329564348085986192414888989426237900927234625565147379812564557024457260178772380350395954702081099281355621882407763598689301796735905867679449595873879718728181602846057663275636251510284746380800907339470406955647557777509681415159512814236935600080720554341038839433810175527135149996499457572837644561342968560423510005060625123491184935799775512222466664464250805726199396021487351811839784435188998257061162404943976256635798633656231057547633811732307015780471986642302631670257043144619720778787319620729437966089591366752533147980847967516857086903626039247302389022663889967997707531530338338078156864459923344988461959954384271869135535905881375294564352804999693746899983416747021344556500756851693469599064052819708443638212312882425014283461771126554881827641975818103411384302665768437393049618983407127985854228437416426922869330778897099508369481797765228089618113922674313736965432005145126360364142808491368765574678774153743088016391008434486156453124984143042604180473673589066125373758400782614667260399882034258009502692264988298261000512992686654136230553121632628090595443882309611150659157310796369023108563118848096420197318307354412733061046308241396835251148387755688612359135037368113316826288882309112483841780996726778771699446878948678424803057157055775071914262146240762780522578130452464450965686025630114685514812914274366340329439564369725133473553703402208399945888317050175551080160017941297060071099855650777047034146438835867633214048165073213511363894091012463076718887883494076267228194475239679857311023856369003020013742967722080462327830083056465893016477233296569658264338360970795227508037416322409829437172685881995436669122485133588372439582302457070876857846501620366216065614036781167789489691978024485704126781017435815723429078755582997751023800011557192682802467903077696054925229796924884343095552266179823738383742493119895870090218835933781090970599470212250512364940264211457222304187086138746452279745612433469072729664224136806302563308960590331848186147479541846556636774194512107487138530990278687094485141864840859771039287918688112406855226394064738298283420278462912333879394290135193216197304279241264073707834332154985509189205914434681185953811721701649617163472804796234384708902867347901513941579748887565279959848104280229794530507861035394172849355576747540249279879132943249853381358815892589859837309768964363976960906848339152323924145275857295987483882900900074402259560826482389823783062043134812938051534588350093371826096418541468581424928723372205379441426085120186091259517710148317422953853124483274987364717475736097209298250389388553586985683875234552830219565629237990014465760609387281412552040103431870563573976186182223414553736823193919337603311709647652422311115133369442985058330455469128360425546219444313464735201389515371048253142529122142203169336351667643569027826899979222098292487128304727382355507762622568606954023729201961861127268841357869963792885405468773274815061556093896313514585583237820527637199245126255018266372783043521393795021534470844441484389061624444671650702862581195296373124243036979612260048623582628427106843754558112204171819454434494278420895477221455808828119162104332227232477641862221317564586928378355790158901858918171645064876304599156080326505159733472359359471918823546795196670375245868464038580063144423110619684147370934418103459512191762177367641180012032942362627967905393578188693085023598547792781226237519956213065144710919078471075725800717838917529941162826079438107603355293413659576065104969691777817756186383613633144199100353484104150638320663654537155645057157960578506938253679596326771023029605918927487912630915906987974547527040937536671782117299049425101088817025001816853708044086471470832411699732152520127603962137837472986292070582607992558109786616388173562008952857585496508642103445078573460031242334838524958936739719010103730120861231577136700697320455043771633243389291014401441042348060330266140028308267137254475819868218963016564875918723855183277819855965263883760492443067963260197628788444295597721839647789154409314462107057765139286052127424115711513513738390379021513442262374942555668167176212852417365122312907686185721705789186817157469411998341317523152749397774353283453107857084837437510458836281925762799906999907199278168920694929523499696004490872419405767941713802789171927737067329020321320215013446778070552379505064187182273946617545313370025281446260384528858803398077496768054170380798435628022734275798517073060372596037395615985671299556107756408698598018899085218330948535339403609182797587751298905377469814352237651055301972065979458040573073357262088568738541766830359042122188768082052271430896353828208812015380892209772055871727092524221156225029554073052047120360566020217595788139764341344045762380142890746632691968399517799499154525696154767648414694712100905684411583422605699521362219539504304164958777984531319963735519816692235918358851002783942180941860793205634096275812599596341505806894121192450279385101280599203791606801236218246026194067974333197009099431810792715655374451362003119353928018478142132497634412804581395307867543790567279470606679268515205190351398933165773606510860049628352269515615739046808699742761338894689754864810533640410530911387294695916475670611965121444245175266243885908305667117252066047084684299944712424588205600638771136085756334940899745709870473619306993054786548214060857338804415467360986888045572272664404729768592272043932693808564719362400124662981885140309450306575684330174611009785758459706749677007897146268048449677672644907168554858494129140905074241335827589063684570392013337827250154267531851147974353868828175864837669992116582320961312434929921554573056688528351155694514083491019838988392219117839553509766717882957568823000336228628162767960693227884267010269896601703876716255066782674567267006630574468846104058599536593123618962143333545787640350551880211013494364835273319316149639123161737047518152452911732910260426652385840517092253763289832402483850762724329951541424462116900537906556728483678038157069683228606189611327907339567701830986607221222624374499022973531244672759776779181313993989186382030080641436656888473924737136099484806663400306086923458396638099882562215583363434158400347436534174123939540653331204041815429670581104490442853909715366972596188699878828745982929135658259969965783747751597621603200948735202189096637262992786143219810083349114049847554872720250144481577456551735183864697619261704050808900241499353642429969951135044400271058973176846615097938097843655498607639983055102454481833353709630018972725942138195413125839631446991542085937860222026143984579012821670111770459256742961542728114215626069720465503261978521188503225577142468167429352939974600039566020144854842621285281380620874191454818521652974791533010558450560011552041558025452356679998813148483382361220059023707394496123407163333717375045537558905185441553365752880006342480472100983346266164285315500943666500663732172883913747247301550185768299515252389339209926124435780243422558960943606443383284808452036701748082514232774204382965351924796935305892536670819595974247881194787781398714803593807525292250654302949178538685978691193832630652582855287454270059549881680157577574584573090087206029591332579777483700116446135752340084226586628964632632567121606841942429732061340833437164656088645160345984084243786194156712055720569552900374405200970731417820088552418296558038735727499673810772551644724717204753126004013435098231968582720718769088058394643405143897709376432556292340540544257823596478964867322196407869484961101284471000963994291758753324965083808351705322416295641052468805404876794977600697604439418114227726112114136703338796964053228361794773534604291973149528678795875798612176929871698145467343338982886412620489711527462421914370544107568319559972833800992849458104581569452566616639510074058126809467082197838257326262203017102192426054676303316308614161752111363779099511734633853626001004291379104760492918439024832468313030953140685146086732995280251168684410150333695199721564381451429124332420675748334355099972282371816830722316771041148320627696340466689004211166216589155011558635574265225951627737598871014653049049737525826543487940945293612082115319937974574303402018986236542252668414029217621042184292171894516255038158697808065564039444240548372661302961069042015052696693214698887889151447061630963988789339544015962337422296129304914484609789563389700508400838862359365741942858155133626825498071570752685599958726598590965743801000292552925063409433245621599562742800888666618405377359006647773051630237835920726707352259673544293822210388007946371812655187978251579354588831410906143870887156946726244340973339902533381384710599825549077917189315106796399029681762088934827449299742849853022207345943284791644914768408676853087925918123656499782485295460444012965130178121214162072532263098485761812818848031364770352393284375999522520162903031880635546344330026555200286496390048102843651871140059246316130340561840515719777192589944600877298885198385643501153916396663172810917757788994628398025685060917976947779062141027622848856389685352027523064222846642905157791743495133613326863329503624147364672606775762527481174298192419063166450446350032884133538495617279370995568674229700005811422769474041416399022342209834459956817672665252557778338379864071928556138762428122512878953144290809375761352529066952196151897003587395113594148163258851198043266127168622461927325378295832855166330923208594471192464633390233150930176430899239895801454091615895149595921993038953193333040717425121371744193804721775872262871822077114086184232353869104879318434252527780287720936603354152644867608939036178168830132668362992881199247946690288118679846880391528499116566044757547071499600757420396689040422014360118365023146142621584818757239031710764274808060098140487300680795817620988911491827509342326846712822265892641001903696488676673082458666407472346403628184184655554142714629038364600566074614088460189804130757018166911593127616591575913792808005370533399888736038607000970674809673439819669978404475939503178201124506958018508469837203964236315824890944549177935940615471358205884767205756880646394390920252561792595390022030832494323687742629098215864768638513804004989280024584645665130775329435272354157170957105749719592808280578866218353935754273882028948768199109860684594421790742496857540066579028214256764631901815279250665936778832017825131568175103252495906695088731405255798898885630840046518446841517209546158185553191513050740483698309178181689873921057013357293859706146771900030419714146479055731108453712652642352796332442306902176156979092049426178498489022009390326365640532127341806994102368202359924239268172621918404318647216070029058780947724465188598122909763641350311512585139720918662124777376163794718744780991339185373239401146082713035719560241080592831764819146035435397782381167028557500094941071050856020398175942206063008477562306706738928752437390410548873978043401338557748796457760544637773726128915588126306336416559371868464607122174874532117561292985769290866793133188016346584996690518330639836247415840959835731828610244959713746983214682513351059716277038778879762304736779442740307326984539945282302975839870641733554632670620149987078353969230513379927688427899640310825000885931850012017245082515743447742652035954450290759460109797828033326069670318584327627356165500933623496774751015981538540090854804803306122025029492195846337208889926410887943565452855159124103070013158606906621019790868489858314262697659532065881180374511431723579719527128147441970190824801754024348822391369028180495434210895390503951612920147544107240767394104870781120590984129329547536294030751859306120944422955157378145026842263884230660899763280059104358564870337908627059025598708752455397909655170634741898631303636942843910064503857768470803779236984514961712082131660190054276677813918082634753688886305546595869876293290966192187505272384505000545771618043772624260411306013682859450037272434834153396536577070285051874956961832559755755000208453593609652647977479060496541882003150293648332605741508939738110387771001480071436865507001641551955102387850964322948244999352578797001063328150192485119167183923801212385220820177110770823363886243818991644643539244459132625257897712580949651445423414683048606905295551189878719124490949021581463144482975056651961825703103147718421381736967683301564318592253165049911713407768148062134511388356027780681193852959660019191294690198385120827746173526142267587325291862199324695748989043836751072931786378525729559749314327815596777030740892343546745619891537770727831541842348726763782506495331289140271999816814659153786331354142773826704952207897766990699462409549355027240191459415684591742007791070967146362528794490139309549083424661262376979027214293611127786946366283123896112219379503534237908208470546520730932377027801661426473088507249734690180693237512212427856363896183894009445039375744059593978413852507924028937722604929400254296314632437397013937945513910673628131011676032873420823066510972420647171920865217471156499970783605982038580594045078056106087027805888540584107487882879942369236131956246586833743494780135092056112438196995419636975552651086117822273229695356039435956314469915158991372412188710238855410781472233897348441677443478327433088397210440286880799681518135629943859100166305663749576194794948133708491119031522357035870453385072052250584496222370686787610116286691275692178169377017308170980834971293208372615604103881306085375751344936807169608713158872607259025255974036597010959580139812746837632866767709778306949167504767325837913671563004776726951005165478452275729282423381993460566853251840722936063665332919498550711307921516983269708861347821151665527068727650951701254724239432301243150060848129271139287452696034852339157045786500357133898392933424139790513483800637472688933636850884799412817008425643118017637735837007415776016297847641425348221578480167659439421765425638239729023012497463620222564404884843254524947703173026904595733677991545301343360732400454186013124065976231069466829249321434216586950052120945934989552783955228049971008837469583351253694123937463137817422969131165882222233766491181897223836788279060304068579069166521744345644562767918546943543699431600855509498176796460852661844279098113383095836492014707995377958532667394265890613705474057178478064224582059879475924440218586493433454227482727000011214510014883571114119592514181443203882809919107650559754073398876645016762467970729824099534334004654299399132999881687824701635029945035281335204266778804448768579500841922346876136555699652645738677988249355587082798741756454270579709326524186653282673268400695978138877843410418250614293833365896212500315266620633241197290057663857442826994405155366672899034668189339608078594937171271478268472453548339571732710424658532692806711073456582629145477670596880743704618890113330634693209871297842720425811565527601137893989893479292124542224916849803167972383911099160780063847956869129501974988055248230654313525756128664586548014941701398659112177486216568562605517445594258309487828437745713395637391510991773359676155790169655784981661322256583526549108670853944832205221935229088979434966457129933168699661805098327728468825130070304903001224161581370358894504876112123503055194052495099803793102913950378771328324543082587333966104072633261861474618495991934533803355523773953565582706083120571341537146165054528712273297228351539262496314695698802546816897295443061981704845763133082931908321726377274312314588894511323099499318103815309157223008397412471457507581732563702746295954349766002930417610506594207426033865937307899129020326627353227760806639011245173822978712687069385275920203883059047050898048158245580274493831208420900166098351871915431385593930643483814372300317864100551120180934035368488461782616999395694682372724794186261166498905756774068711141888899087506193046117905314702744022776782166069414715641434810115990929502118428576640033927647688730613136501492185809776459534529803152721632616043529561836372207359034834909401610936475573159334323766406746830408758272454935769718686982293703075121178800657420650492277682116044070553250420110870829551078624424318285772121083605474075397144778459386028895081022376176404302464450990534110468045406345466542161503789917525018209178856394776696705907468467943242296733927575203069035918864650380480359885472421676147915384259312094974834162205127501893247376198552430185006601909846023262054876455653217284827944856931953849495884303949170526843282387081474389675832763553343600916915806605093093069266494942102140661424415781139959542683554523750851600858374498147759083189676128387843775808703355512904673669503869346641043575856954411950909537854189078616851645655231825854419711405016340103957543442232257302251836840017851978210614787073972418018551057318827797327551012748773596973932243691362174340653172491902217311686650052005251399551769523170162985159964682462204605074346935077704446074060919445660172326877459023564975712292278180912112310415816788174329601752811438221525579216611702339850751469214695207186317682574499457885697834338127763565730142826053952799690951506218346273772221393401764837789800183047815059199485321723790073665119056847946759145311628648184420607191059146722120035060812021560965235728910186496342536573510534843113387277527890468874251384267960906453745916358274432820071376727753201917655050557325244852557536304258951921933201085313370837511324794107583819248853811336628115037709471859708403679361624913087442331700765603954152196198985075326602874975226571162801418910116606732268349388626369664086102683489713005471237306285881599309675881327832731089214730469879076544611462280946445820783547633046764403869221440916327698560369175955077614024654385430490686507909995507402909965638997502231603482711412862543546387854421937691707033703581432325777490926979765944073176558997908083063252775171222063876051454243192411286056799887105345980182304015076809282605172688108164151671933763200667379127774706302041598324963260791277594810785955193688730709355364690282687235982836328578478037751172821510276375200883211588866711457825452249231271618970651318036172447147284436957535604474890637510915759681291450106052504698685819584584956130465410227379804709492387237260699789057103822404592761242951787450462571675275141828795760740889099447590825315650824236530303069363684970140103277248403775877672080018471526054367730748556343867915145344791778816552222014982447167230928924382036459888904108905530198266088590175694252691052032246479379206242694608104670387544041289250192382210444291770879936515622722076714567325184766496284766192722851699247222531930596287909580315177172381144968115291735835764884382120445698996495839939348048902199707450544765501508501097858511560088435090362677267472876995119859046502827552562906819794959707962641536845097328494018983502692674333002497974634970171806784471667749095655045330428959143854783112186929633780115950446267672737802721346847931721624905230159899251224044010275831571575119900869760655372437052733239038370417471895264427273767463371594500791857110352286530223979523177066047380870605440763369472162959696473331393925120703082082547218702914578999084059150143398293827038551936074991251921197385024876733000828973908967139777688978610126796076600145191887105253439682936271933335171237710126385534885008814785926021430120742632608458173678410506497162744986658131148424933997304920429409553078536139303909933227654722483595486990833639522515050183956295454598427185004654074598889621378664759819729846851704925297905951478845682820231096890777649895844996604113180503431304864333466634379933284567831804482532174691869292629227947004716597695195888585869301681953125349428978878760959597315449787694788904172646700751078488565033304782630153295160781713187707517317935804629546241806674349357406302404538282392168429983241935206990769592064193590165208118597673719360964577725798969926386471519632328078553150538167115338330190224845769596987032037023994292184903480568070990066169822735625752529083686785263665078773930084400500628306250054391223937516944478264165846034127373366609359967952784019421323337445105124564818008274183669133808210637399691735175886244106840059453937712234161848481806332041226654500259149006202733448350657998980883142203518232033036268408727708608227517386650268937316805533624996353998787231128881859829289858570967152050797004419262651976423231760739523688117085194410562163395395103103973781278037518698085798116847744453304774451787142242343829208575334020520706914567175282685568829211624082246174046190511218616534640053613772042872528161168519592604118543118684810367590012026850695542315653299215131548978287940375812838386174659907414359091495072397198756795638935001264789144031446312470722052412395753218874280550147818606242414322350466908059341503062570273930547245670370735486053521660486735958398403834054265659380624703542988309148537872830494692894536140165826378193113018059481139445858849340023094833934659092055189568070117802314991999916146971092985103154849832674951973505175895401482490891028031952692182308184040979751783684571615584031613314681534398808753201249071731883628076936972519583713280582120905054014721758052592006790225604243451005551287215670404776599541760757162731642455969460042316183219813209268467476928462688204423786132497343771473659803233793157411813481936776782310964652152214319480143945928029193983405487423935052463265505172121445223133046755650420090498199902221230558282285487900970859197132189913909932989100483288519351979333137071653368525759165501156290582653212899578495523744032511273742888234737221222894247043035788412007076822074440367386161203478913238017609524354726576296815971206173139466504746520342557634516371614597308170370045663465477815357735685911378010038303443029860051773508393650463906872990518336021529809895179015783563063766962156853121213502274926214890547302467321531943929596453873257723101725418578352807532341715624658724695469758854828031958975294397555678926812225536003858380767132995663130133383106178469150626051878564681614765294013318869437257089384419931011448887554832212116724850874168656223138093722640588397506054963923977228349220768917976424056132528141306464116027687728622329879276816477233349600717113629501448056822246172357097109016603469322112132771049377802574243409142978554967927179345060151477644121489821057566858225036201179945756680329150156380982443044912946456029880954204152639748782095314165597472884472662159356624447218225163249147160041421387406051608756503708144227555085101485680731176653597220734170039080603158560704387759128421903895648784018788614111686675808353955612660337481411505687554899515604859545272878968821009882773950507109563384516895246807453461337074114765845549419492375765638460379932753686673475279974247113938264897404305193116828305810148687604552226347517309356753236121351221054889783766542199660649595276241715822913469981372413438395097509508867032931640674387210482622922500255744376584689964210500996043360392383534855040098086043352565101951371065178394943162369501541420235713672757946309129013181493978004767709139932860174744279250165589883050328161059816115629101159817452984691672140331380881302375167454809039071296420145938131260922934469863132755061575275043363670736863235732127213194674727354614301429656785712669315306428941245424116657551458060926909289538791854260864885587318402124339271847532771787511455578436360978635565351559435507427687425516503990697386049527971014425168532083478438617031515218943949789511279801535420992474288693745992890137230038113704111280663119223098665516016918038101406466531350216008741616938231304516771493481315226001397627436059251776714317043641134982799947524462118575518006414805842077544294710415351371071485321479834668742853853531190187494668800243606955040804023346629879164986535339257237308916468957561576067344871930531794475662652725380682031293242441277781437228728730918199685696952316470864455112211985688948025404283837174399719372916512415248437707343491154312891650969826899322056015128956804808347494706837961206783837789469334619367470670317013152579061159413785912158623615788496430994100830537287352309758349324759565112001463743715731120640752077611988916568835089692565681591125762846879238659783761779879478817681318382985007083042121022344837855804440017826001069937297433209905018051061910108250776323942558576180008413877129786762768276988330304072248222992444628329623739651001727143187256393948014364439379108497537497080552142719863890675472426809213001566153806156584282996239427595290330327231414801778976081839193847292778561060223954626058059567681892712497323827126053649656556101320706067378068661530052588305864858647207982671560603382435808445131463191107858964825498991972761776341161664410467373542421231513542708242887271521075190264028467791027431566274816782201939418326565713085591071373317563639123106548395038146651614052363817752844567557029109175279579704834832704406348419866876077061462302027273808807826715632404326937102378818251525814903010544252958827597191381742792757517897250239578278621703719569385245020603548852528032078004639343149856790836822529713775563335212631317917381923238279248671623561497567588404545657508995942420430046978140184257536957898111296413882396042967698618215076501935933823476634687783065731450511813091147827645963952654922676231122379408030942093110991041942774415589189999334998855728613825901176033284692006512727381146361090937064466015564465213943977861530578488992733728050747231993852723549910586609015713374389186037434721919765096129547767565779184003776740274003220387446102166549407070336345838059581157793381094967240256616771487931830432479322638835615545380629585272699035999710212441768085795066838522615547611225201353149938679489166262348387040181333026530981955041595396210807541186606158002952325324252531126692662679144484609474378734008400092164053456840265136847294720522447581689787376083524388149008628452099766586308161382187361561135147882502802446882804777260114365537557877179461299740238506495231031552748115560842757523914391389717378947201212936137540387853794768794469989071802754481679193098399841371829409380158162050564274933970037817043287847726794829823029698287633861037213302770940847381931864291437704561976349036009915890873696489355782343495652487886582936033228252054940734387987401971079165254864559366501274621428876916303139910814573992909093039969348280129643946185722244060088221569997988913249098120301600963647779613271136879745132129024136701136308574109764006254496894935058279866205556033156692062149326848998573814580876845841260635430718287665195359815736187462770950638312523822847719670219806498024087518770162569166088184190306430304686119316272551993301916430606415467125403162825877917906457471490628088287684279142631699848242631599467993460763826556581997201957785811106478341648492831020103073246266852611068021321224291964503252608089328828478011871421198486010035790030242566153974823652093988799674282106447358718783198883928444065205809637676175128130723191082141369387416907628443170762595917353175773221997358303117755300260475771563741340695888626504134989651692344647638262178798323371528804184004307563197184157963652294182813362659803425319900472141884465319794619909781850893295022156429812247870062041685176391976108545675635183144375524977706165496232230679638659824551831666378514038167643676616918149810606382708768253271710258597119283532454837921314407555680975626500196860318986023038426916195134484983568923108300391138987671168555060910187416748715458073607761706860928159671835443157880182504783877646104345692435316432929262722334166266460083455357389875486701439795981251026667594532068284102102258216560258234849848844452358836874755300140485859013899507206472018283411082536021101202206337902396853376532154454103561323283157750565057598732973381014101529596104118308187461067685383669575354636926719623456079430529822069192293107517275797669607301248940374093909935028129978117210517185177710793468736393680587435859970565777643935963201960196497947920819313480033827966794184561514007836590062117832550896927460750031592119120075819313435327390996128558781383060402653798398643306339247319931747074648394752631845748567108662052502746179234890304386075561067013694711871126242562645567769829650070357243656972554123101446264349198537315975479068540798897975069967929964520252666744239069288664801389509761884374228366350620927432699014719706309530271751049859761343965100826316901906911628969334835914931882656419601165264742369484826878310249031095307289115257314276168923540473398115288988824368224276047617361601040857076802399270274680382339786205440793878620731001076757102481058525384287293929121060496256473490891263443313809962164427742283584709129923955225901396549260200679280607697233071420566726795315450187867415274020262423189860513345046664999148386085700934717519776558618792803759495071323527971401844777240177940959415220626243815153395415935522619309848075799615625357891708217564582054432965278133446356391942921667266327114443441933868531342882286948192277920531166056265604196078721169901359560728840126030339393520774066763457923814645314304807586043232865966251648305234228207504529084416880684549256075596577072904892135150142129517707272631356714644237293059518296074582818149507702668217579865555999952755511859018562934855134270612669165349386676703178165168235122771660339901274416704671971390714218380805928390152593515274982109504032950310783317276916972664535956937986922513659976074582430223351414398645286398338596103776997667068304020356198847312957321842684346234439429439244835200053321921718894641276516007022272689108367196016655550575228937429995170102146764671265004429739897437601847448039598796853611446750993722851797393508001437280021920511684326949394855063432030855328566535061067891012966691379128170657441244172970222028940079457665919176682303339701698349151370701388302571054908381195530651848834746180007794469649144175725883547994654271024719763799120870561754621233148146011116662528039204514085798066247424348010742432603814997351493325594114980053506027577118635594554776992645516079235539954544989455207223148898769376009430679441501154688942303246310656178258526796349980197803128239493596337618321825874662341932752215963484367621027225109881615630824692094454279456487742114245140079872202347739590375187990884992652236172905035755930649055761278411701925909462792235576934022079723294029768908052317664023214384729553321282610710067928898226569018407292833243019416954534408299889270922172882312828052243612574047702257561677760051669342879042818932233393066360212121040796882284653163628953500818414212038092213253914602732115530988262909996818584407704725035263235099635699654173118425499013125190811118542779765035010166276406705907307128076469953828025175953563739870411898097910517996258696503509528619712426703041621014860574571974841142088988579785572514213571085192187351109880539284066838514422802598188613033768218130831234008940962431473397879427548847240443466380381861918723931035254528228298651998839196292222670066095319283197774268746994955022120644481385767074091801950862034976812929320502111872491957059496996931210590834006690519927579265875320129078874399615468405109814439616731773916379902490606246116626644550039903430825526969629097125101850459045234549029544252461750928028765429390385220748225938474996927468149516347244997614139726637454252440032015690290628400606959328231053179704693930767737264999294801710357972822340051966807228166892899495997773958765357551032347438354914284895252597847793234890946072040107142848253073267713185690291629506492292235051861249926884968306228256761301358503346070942434701109959733829037932948840407919731583610878984530337634073108508950383524557222042751747423944653445698211005813314625166364152686687186596280766043917294046146873543925195016000886609305618786186441264871899730637876824416429684074041787882632758874933879546543433884934065168555934553345829193258272506008873585115311257791835367502420510900796451695507752869188199264787781681917048443484942725051251366130656922765557812739862968016025556105203601957100218955512467635933630708052437740361131675184796491237167678327892688473658486026386817586525342685793563130228502603278442039219192197980814838220452614230814169007678930892062364619642279744928593728725907522998223623184834681461554172583056657421893071648776118926151037741253657155521300220395257429656348077694390286012441338691518550094196239678954278055487947817142439983403383687097384795987834543415970588085533199564852268965018917790088577623288441997217279457733351463985880956170633391372700550930745346192630214261473779434891152036720145225681330050823047815375369486156096151136921140709447686616209808459076719523091562812966827177254103543276542884543309483288176079043399573461061851789668411275619114172702063031567672933327309840713072709023888884872801060047517332408600219746533252860825837873991074897666658667947016676479023838550978454349880071535459526734363810831634097992299602854944692117880610201086163661459750775539643765143501992158590603958718842862528199291815418476747000524532101959980803217142730796691703853102911809203454695344296472329716171422697923226228579166084810775319514025861591726752528370014417065251251596940724421209901837760076961429235514413718076868951848401672783788350972070417622768639332305373141104923035826233400697030954478522643992187414939928215333102204915122119170982540834387514042190362922115043366456418506241143845306021918683496021325601519178211628433422862629935486205879883161359757235545432398238177490511075573464227430514473725350121190552508005297264729462690055457200095796096077595903835219219354240420279731369077442750637335214050781998106120488304247133123068855375679589784131910736188607767590047012174265581291004273960511563683685673298266714998445964997206839710304939721072784788722236258776672875929157507358016165470427067504577875076434944659715144362760879234356093146204250572917768270680033844037441134414693691437154164266690971211975280698318360344379769289807326127560845750333878568321152994906508316054269998612862205664066404870547567123776106632967062095837314029537811191833420248833995668071567560243983725760603485897378328484896465571626532653272526593838973513842656946440470512504304650987389683528575731736135995416321029818193887256879440399462376682827421705639323918999300500716738715910237691428148383975506041135944079679665414436046912341669635451067377382486978639321690025140933437243493387463840207257169806800390203112917256385159753674097750470461792374881700629867974519360053464571180844308050311429396209796146930696776387712335895523762461398545424648463357630335874109854197740140145698789901734074532142385103152418191383319864887623539398132821565326087455013091631156090796100171871732389200287419264886333052348979483957433345637049943948564315570482340072910393424921806161363902299566922178775038470879687286246664512603948510020924969521482345803268569829755238075762316333360458272140462021395043723905389142280421808321265716595614217675373415431847225830680458738118639977768256877082611429834196121068213148517006979897204351095971272574295838255793129596325351709526815000382938080977852023664416553565528166949646835688335177415473409589283818295793656905194646247068778159772079017435318532046431770938013153353527931959926194979224329709867984264877945908534842889395596918811099228637212131310834790995705348672754733427439262717918872521607259472819080560513602214642429982735207735162573885683022482969165697198628315811116812288233494242878432045974098199502366819286963107743157802629728103183957637138570038667615242109088641718761335091208692701289611208111881936690961729006420423082364218471449008061843530331050933315257375635348053866069866356598152211731838217265476226954310679304288019305053698570600030776365867375113493635349249350443257518309149621487393660190212152689156403804304027515591108404647107238181820835575836794138180545071910374481898885414771469300120339801521612439617082336826908190244714866666645078783025129815704431060148463816227451899929801584404494513325052313935432101173866053369837235830502556862379492851705065752083722680747044610669902780948440121172678293893268547373283838550720755778436899495189942070128880700495173493356336880783542291737486295455298548572333947242248427716384933309848224568608624647732901245683667356070456669555252487137119671440540952344312363654490718573454198901849670745970718390883497049452374903742495378021438550396216198309734706097584198173950911690485267448169271618001461951504535214136457167377416554799438685954492159656649292906264308205846210187261275435113102608728995826943578208312389307924182705643384664184523543678890442642052427464145355263272919506977562881488472103677465391897682368596074508132911758030408112263314383553492262929239350389985289879985642533773783724321404979561473818688305761978087580663788702380288609356922548513682307427765508542275336630062578869211685842279961489069933813671819011975073444518706013805567061230006858196742527712837146581000609898308833771284445490990612815164154952269258737150546573170449580850653253864720235824606236936480514995165994720492978619165802472442959472653605719955502105141193655430579372814231513805063304948737723226976475539367335277090858164258811311877425264975759748025037859615616359190724562307353271285594530965110872497363545797250075777485850805481004746458141247955209211054576192960088110782908894621480429730083858007930349791127399765963401432049441203741699709802641617491623313593152891599898722397355497283331906251161177753290928313366195617716180792752215271892418113209168071026845001766081352554028307338756386419475622992450569393480094485250937314906391449745928406390719929874672511974160899004740268679800801777173875129843960057440068449160002256746736119292305204772712109781304783218060059742381481510372475570572708675343674389172722786863697697784624373881516998016280084098781827085184286198045259173932449678285643260679020897543428214999248454506351676543394833309092668228161394343214283030225608612975436978856425237984967294145043765366979283477823749805612651170352090587471532500324067576329834307188209581776666695046942687077167342824977433718612791051980636452003851127095495922404170098042050676073066194763519484800754400991501278482808659003644999872191019749307318942195659596256104122477394179688579854339169728493212984901176650951555664758117014817830723963700586732933494588801438704856398064322668196221061319709424600323578012394879252626864061412948196670705548859767500959159141251469387219944475055660571557641781518115213057063485243078289583618815921022072082772781410707616497032886817164139257311690890419904191923239736730658891851452459557312120957823697390663930699253960791770115370669617386647627831413122574247541818803321729980753023004854191024765810020524082464841672381782823300853399562435562206898495819359664528326806377117611124949901564973502754808565948251489234292916144269997016156343848171942690011694315107111023186866814153224250528192469296493405091294148618654379029208772407389706347463135688156968697318285913613431780945667819881125843518984414930950622307546599043901960005452045762253833382200855502707446988625920217627653089307746377803584531666290053344520856151571765653360092685680331753035219817697173250524948271405035614717836468502428311080202466919828269854034195323165381621102931734253374341024946897484952350459504218493114387665267860750735052000271690582973203157109225446029629578181888688325150660135838350553730754395237242602182908129717624385947314401663943322746625274150762632658048841868492281499487938273601981540193884751360773871575747599157323826152470836966509697303261723824837743426001954895929620932695684111415084494433112983232968751359148636887078609322419225530916991994772423394468056707255902541759243196597653076720547058364425682175878103799368015114320137903750574266367752705871258092691656596591146961505736239733782943084778784939422612347713177392318188743117372538640928149004525249944724266956833678353061120334094922413525939160235031567583615638336507103869631170417901222999488908625127906976403550741926840410317578737455551915105377846118919536393472375326605249789328177512079978896185532400630558505381694572566265439381140119960575177330364041352095871714591495601853429189974301035299730059865968172330354436613836098760967706840997393903745505992539000616861062864707901674499441044486796156564935661606912737672422792210061081333125132908253988895034130907168948890555159624670210339971735341350613700132630775525195580646783345910953612334214573435931206949463773073704847036222108448703197758852476726926504715678445612054598230988995673676975760681822220515474709457057207664894197991361343874388470282536141825621788720463782920667546405146066586330267436238383594320554566336481084665827390697419023562928067913811787554866090702275381673367254944779497550612554776549677038565699379145389469605206047763751559707071468343156523093733034086539087646631455784687960773791566059636169400096457536454041000132234656805560232027886710354158930420052447828817462718476916655526604382866414135189575809024343051669362960278221152437882268004678030430505599754984265419733621049613923321337855146963673310179482698440625405078954371463098562351694061215386601645549448649490822317998116671192479577368939345324524220320916014532717396451220406215533891134687028226425982753208303269657553968733669452956442468105933730371689170497781952694488687155964014237380732288488992830530247071291859748120667999074723610797465418223964171319365134676406860091898733504231606791553604722585033835249824516802235180946158512384656377042805429191649318519626306658991598327941702968540897974796994345938212462211704538039723825116148632963538422401485234599464074888622005816592855895860221048892317076165412130371768531678175452536149446956614260213984230867123838958671140350591261560385329175662027560968603623194960187565428419225553385990118798676553915683088887143899660066270353239737100179476204287832602495704434070627073292650101738953476576826370852895611006632756749034897288133253499114905178139009443738595086691025016626930066601772950992729411385020726283820590322555050482069305001735973751053985565115533346745760283333652680221294771231771074977431968472737222309651143526201302996083525431729848250868934442213758565543772000309168125103303586568351150649283434650373343618973724841639590769255030379329979157681631755719950146356993429622280322833816218930622849072080720498475437066935190570094854001408324519732219158982078211457067188685220942533468755906881097108935361649157014454733383085242950950935992873219288241666107069613095708073409791692331385054549983998958050560044700842494171611565776051879984925537119715402079681019885834233174937518362824171551664979311788893279871491417944248308085520460964025799577642283575794126188220100791087754827576334793090257474863925349403466245360456748817127880964034921349874489385060049386358184605740168608440836113370438167855374677799721880175739714392591297195190542007208339558136057041595267696597614610050081921199525083388414972684743986841583584781913975834899785666856057385838681462961511171936372992422443320145501641332721414155380779175343683578048200615252817840478591390713652490876587333592473421184513261002302555414934396860486537535857548077883261961432938626566430794993595478075973225824998257770145817272272511092914671944965974600918875845720876301849864317451013716415236480078678122093211859293596450313872306737786924743495598824733065403459321788998378705627259457716702611001437827098722449498180248716773986689111723605182767067784102421987406968385127903714723874573001851956135323552585019841795045775067623135889810534969492544111599373686517181568322302359684530224550444580572551243979712214456193009672327161028751262434071364480930883247986243846758004030139090194304368040615218713684414480164005849878273743243741167818281226083879135387937730157597222207908928130804945199600755679440809576915334703643611821007101696009913766355333079071298074259681892948040325959308595398494083683685204523603736200955376417302288230777738588151926818647978974516737768012203723936969670936768017321599691213821338660939867013046384604468630689661941789846558276364942881806343194003582552501477608764686294581659486162452030681758918205705523465840858350613009311619811229277614905906745515539449197823933031408100754365895327132374770466960771221685705730337103743735943019083574326214771979629621953398238561773038428795147159642579482064068230200342914234626664405592589036175812769939676342918509598953281901748982408363128547791637878291357176781654726235685566975159007936000022536626903816700742558976437336986066643602747922919030671774987406771783454944923030906245622318045331828388335573721305249657364246113648684678748258483287400284302448282801125368295471180283297297618250894110305745977932362642173599838406494035108122946705431924650135822676682414820061193584778614255624987539239841986042115034885146834266638782326004926753708833966270081132295536921852411429904606045108630105164137220839244714283039622925714221648541272296209045326764992554706130343244036496234131077016411575106554433965014543719613871233220714210914235809358877575985143587215164059470183379793030155460103874329055760733766600714201876021847393683672058077903264845440499955209433777804031231911245916220540302019836124997116391763201184875678817596572091250475152179207796393537987912674258272896802133806254691874739605760771095424016838259885846624962326399208826214553619972944536626258799242455648259122482211462202025397308339235509795096661943219367094790922059980022999450558400319627354044948153244631982622844617768653639009187867101357981322947730116259862054457894393100197088827391700909872749001247391842231419655456430751463200041030619153982238253333130252172342273774252842207326675793556904336712274906768766939063266320855843863421122796243739284396603264931602686524161673250611028186836941376940413340327831686251985730565302406929250349598272274164246942884982461298070638120684871807793117043571790473761290729132285386189165555180811355570678230938008407940529405916980478230447433308113400578327235236718941560432953035053468354608599830961390658807061921750111870204867111002286403115912270054841685370425221389471491013101886632013402068481848558915912816825315905675462741395868673970776629461239372608848038943283805249859214096924799382785406148706469981109013213285342262681503858397941859218395970215260090457388531546726297108839682603721327273352225454505819616789825633715560457515836673184354692871883897679951774710815574906756606087518883487357501506641515294522619707366321471140112399002159033968923101343306568957644874456136409321777167982091786767912172059980009597442578155251453435837923625224313127621364697192104237148636321951787520668281650304344691399167438662771844856609936645465379335994993381028618041412801846557257389997072528322993563863104706098639871099127052963243012644195166144829089939356533138671288146700845657534845010177184967342921617456882971065383011356081566769775306052575773132255211233837722611034646054917703210482481834852583070409199695324540458993628602238915996012874957642719216862901404177070875547991172324522997958956673725325247528957523045715741418421919739893851937652057148492597165207571657327844998522787744279714922900040754484226491011773780373209145608763778549056637603564437984610296801244586939064633464726777448914053140879384466693556640557480370834914169259037957338078783734375039171980807254395628345418232295495272300652550137217680633290800311841036678417569006085251371321320592309225668479245500410623051882247222481974751336669745795199678809051365854447028144811845587619055869219056869244785173105486842632231802439992858980693158064586751215921187577361369704184904043517235048335330823417149937148400037379886908383922318067909640295008802765827957875251443992342479030000539660075294100428801334042886811961300418764359547307013775476724257327320047077175669547750590295447859884884680179121293733307108708916269657425778914914979861442586489182472501639892689401265715900249903129413735219546718294099273910577824160977238559931121451495667411975994119233523576140467746337785959722017908317997246013622194916173542150398536679398003287700292862045698638589312156107581652265549379004029826676390957067554986865759530361580690991973483010821801052658677804419714755244301739867161110434015873321431098035274127087902845776649036235572405713290907326201751953207863023650499864583155004148950607099436823127536843763643643244080559207979645861678713077682807977093612580485170291250972652880680819668995817183317169818451082258438687542038290269461641211159972021456410145897200171240936594999625542432955052432434469372424127466023952039954535343239186997020726384517869327597305367614223650895111939598855562529128597143257128660299222712856850817938853209109477543963224713504585320288218866068321990235622648686929867153556898638333930360714510364523088433876843487355665510251466847672368358958497683636025874375317949622054080764514672301953864211545294313464010462607782847787049444475517839748784327282164553936536168701288474688848313860347618098858500270560693328673161327001186159045800714111582762200304969531570525966509945591098825627451228137793506584174596897058736487575023284073042746679024658981432391219729238709857379290847936506143934187863727690416395208982868365309631475930907753325542529972160148531666868761327567938929798469730831148983226126103118841257938781254360836913588145621104683175458114437638561043612091033915641883099351846454195675327467454997847070726891754907770459983144942521732614871673809441429526033359364386675196984474649784312707606873712772087258379507504353187561806556663012662084022279251631408844399519227311014971917104201909358440163110223414198227286876357608454208623964083306948812948494473924358359786748753684498981607301154487608529564114267504320265071030489141945316903078469533041217278384151850332038387629850534567159600747267706462077774815743096404298605200687621478510534893868527383869065242088888458971360405828625824104175498240581982596576405382094039452538312731407807217638225481838822786538434099554486923906833709794837120839447693160826018415562589085442131426597522671202111793665033889005477534824037247208633589508521262950372112675355990923114240245844224010142912047340030953407964373877986608737744873693751440511806623197521601948342448749535851979659345665622610369912860622280290720803544774525921234525919415351203740281505254337253167930181222113988620761157902725464237884468325824513482858315565832230208010994016691780585837633806744681687321114343102941439079151745744094569594580424878639632430011461066245414346093696774480771392691344838259576184491051113968083574885602900362954042035153183996211499021672746907703475504391960340356506579076025882590335859644106832665036182277666234791168765587094731441148827484754986731219773714890315091697759572603882867777137792345450585751383196449196721140362120977696791403604799255541570147769775011227538213814498679916516349712518521355195709792635486282011231808316244471665301206666068345265863782862996174305916538615694290295258958413990317670242299537502604587582172335448645942505669622400008049154852304452162350594336893329363115237658104882394237781794494004811509226158136559772017971390861468716876844006289906016840610462882207744504145240336296921459892027410038509793073381230504948198862455938458576746426756301357488223234753906652239736060031125375347873818690373770074227312318335953585432313800520218189665751552578632698066562431192156000726456277313198090523015015594013334819809462144996221664416696459154503243962866854782855468238798542283861114201606881697442871918771471004181647881373281942443146571639362139549674417320075129382686396751186443803013629701124155634999852029702063083915170281179097455832672112134607014339130635007163733758371146372487589416725004591625821678655628214443305374303141087591818183127606590737889777094288255507804904661503141175507262624665818891431745309502654017964598499770083983302425556095476280241608432480995930532163324667284902597445120217818484342683865640771346247599006799001408378276196184093410164070938048999275813506464937931480926861264891572232066715801174424489505006973363033020774722796728142787102766037163467068581851175674459144780665437084761373896143676873318763821558118538846340360910734673550695063164815579057110383349718197258366542935991145654566573765817751600738092416544430049993140964570425522561218265140730133604602632019769869568666741062808563603471448766675334430929174487362959495934710495855768310699461998213697852886090293086911060223283894398428562808270100915728119825007639046848602588114264354828051705239078720669506054087616396682114489639619721842311647512273140973132873840709404053206266358245699008172715716592211695274400250873863601990270497331087193718674560025712986388033613265036875122689173991978256582116542139472475585090464043620695118971645357429365977190836349627954886791429566499985956447029482509074673271928136592173299681908144949890908523283919763946365707806712908664811065765089656939551662483564075627969476770544537492314255917378201637227981406578148783337102651055464468350476839084595678735838884431896533171412438283503018105659850036710621914418974614602167056530155681751850160758625839518389067092498880771088618985878626631983566967657083261981881472160404913311943061245321462890433695557162674658037288078998748857949089346255854802538619538012665899031492433039645277945004025932044129497867658926953247028423653012925475313875532744189302371087011033457861898421860013076481959807102546781919394946519671786104079092201051983572251567421276050595567741199779192051053492429512208773586843604546337327157663363045539833147143076789308809268342011552572664708728835768682647949843641827331337894502604447069784948637858214348761845579866022736917185932107451157504465259424585276281870939110499686634316700483439962978027763994642803925757103081643036327677146197803450448162172185154389449632590611924718033445661749164513214671264721295162436976260300901515152822347385137351326307744047422370066842352372487334276071139613930064015959548123085183674697422104602022767310825538836960008822581086305131040473826147274788567613572024567296022049099112335437707577755467744884077757645760825429227051687707673263558962089395868613398611895672862710023052262125588012762146072833039873292058454840681389691883112210806245851844419168291497222036917735777143692199704314292224034048171405288127904291695767784362447183505657498686250381024239321019916259530247673785805117497467341130338750090961056886733427176838173497914205035501360171312399913389512544274922918447890567531015010709793309548678196279499374847065462346399891885591853945487230141312530178473965556935424961710840761857293166052661524192335471784466185964317509668468168232014414623442896534959733492298103939577133670323436856684591154334679213560080228970220142859543908429692608137124860335408720280318912333395433089433981590852616472748454442433375989882389179030781337170680218424372189012167926242654014158797315290012227702253226162032727779634626953941084742808376043513464253157121644124416444222793366813087990437828928631041746511050472895687674609325598587458459775721194294329943100294770129909793343743339218664438905142955450255741700036566841513694259765761103757021664333735051076161059739492707769372511314702025443109897656643420927320030710874717981569090162317467918225408523356026098726852134260041791500364675564054945036906140744065133404773818064582189149204564959976805503416562225614733705947710488378692215945127562351424033007519044215126062684015767891846613565890734532957207017407675871000249342175397380374586878351028855097138308627395998484940664555719352368863685873422934149984949755331275492565011361035146940095093403879176749717936502533297227196674870026393760063887668343800489446203083196020194296694239188801148975934160092962732838321765709890882502393947873316139995704485824138684955951978324491839818802144582749799035130844764101274427571474422259080081894121546336044023900261909652133937991431583497603465795238435625677975052938508952543787450267676004272558435050798442321878268584500196734866015245523245056890727082390221785642040956019199500116716170598911064171138355819359428722104725688447047095160134045964108847800045719972201657175323682648122082994183280851521482940222179165006357329515070593529725508047681854310921127921264699399425136821235796580153069117139582777734137411057318755567973645935175715602221786857484590468233549899072355949760670714059014149424785205833027021537828476768744675994469551471157959656122485437186312728259931277024687752694624216913362919575509806168242492777472977389428018792604239758549527305975518183810213935571987767172984288951914222063953459636812104815074034135576954173610249748929520126426505076594958160219456854995125968448801333410874789294947481764775366821884323446623823949088556849754736859349218668135051256185586952855496042678953122691282773034682783265108874462925806725717262841480068898693260191545238875671919034581463279353746031855930532872780528409237978850141911281676738628512736432283476129806805439886729454276915730423649079380040543554063772064840574895765969641453241300944782506180207874202767817381519719724272809410005668697747651872109260186007925451890539806033611871328037549572656941522904602952985308718563838392099417658888395602153621276568872166937036106249190033427623276649801858274108478438904229745289842961321980937440535351322152496536150867041784879887710930992664062360823818462864889211357311317968412262334817010929016585328874153671546250476171004967851001801206539387729398640214054402537540011105033436256017940897500150203063346713658105478630146009687405787175835726607546695179140617525639007179842605612142662906339680502048126848459674042926997992804869657792601628396828682781919085349812382597388726689830360006461782499524921884249027376026446863657486151847113178330484533016129444494247747515546542615062316476121183099301943385879110571302350122034661155112765561869327387153061336466409410658117858112860712441491547316743062865839854303909670950648426101675207508856132595592502892496724181633241699426463094872946748612077681452430029232007605891908129366346716746094191496538988038819838374082853937954036266406919618998953837187661477860836731329488122191928947283387209734104743455600497165043676693495722611094110709189257017610361215414420496713010783197438815309385462831910134801572365807059271703124369850349599818079729814611083520389295510744831621813169297551599188659459349704923595560815216347659683894239164470078936146215200105514798490034467173803912409685055828086259040638994210695708230757094354358836738000868736700362644361047818128158655852108945059021865324207389067587046588219846708144879411244493770358643176387929825411919339218313104483358526020624565163162875650720656827802883451076822741880702140305181543329909282969687151913169298679571287430959504885702331517533940059193686631080715929083087580513855576644542672267819081436181574957117688546719047217280376484852852050084602442808787002291801752939329285513303643449553503195118917174990788205646672121892530946359269099811236770743693654706079127289922379122587756967344591599324005649915256163913434048239962918272952311377133503902782916844523922932867224320695672040373665003244593337895576140904160284430366526980759186164768867255049894191426082174825055035750182876653876808138797678903147554882146882700371860855506694907472919248711472294883375545231764040694034142571742808293996027683577680362066758375741634436907440026041291189873368272464856905900010327002573510807815190357637577651780917740098727320878547133588270129213646224749033417963318883587592149999269776939018937574919273704200751976286064556939086298832879472438677995223049421678662698541192634364381012621801519451875840997707855661718865502379877413819247043790561496052114092447517299506478042292109060147117010559118507193216097173339499967385271046416905705749206623920419269961887374712199813512650638625967607730609704242176086639643571051362472888446072493347231314432768662660784654912965775475475687333282231133505027540828597382754172087257915979456051191106786709728140338320425416809976431329150782661435656555015444176949090649723233078937923959633838630563308318275529761325581381175040079113679765341582939384599647947789284955714665154893224977600406830532934191828805022593073518460201073443522767120286032438594750215608850597384188331850800039444121615003398082638936996430461032316800417886618342716055507865542326504519762810835846279066385759048117962509316418981629964568908294521252498493938245129170251146472582062143256093638364889707767441798200466194720977930964365481136483778172582756782500317300088635323984488945234412831127061648781883987489443217034117320975728564264512978574212461818166270412082070676511121796983451654309803537500170246927825662788327297522260265802222511740899289143424912272141193635529904177081538216121680917539437818986253184828391972570072620804223630913305365736571292030449570429601422406857451162387419911061054728515820792436346055716989899919510439638654757427793471532329593061774707737547048687873299699034403770846111739828381383418683670690366054330996076851485068957373061509822388340422095838810628622235499978358930615021102778645343703018500402075969739700023879341507357423682414437131314466740932333269237938351233690295306959945471103526709423415379031406556767489894762685033745233615647473740410467893398398072432069260289700358932192599828468168070123897646265426938280953071523731380417497105193723340144850910971256307735057029979506257475339751374259858365801034854836411852288145371344344484345491652270758309809940474459252673740393019766014130898375749396890728907464822513078365454688971691104871901289542564404145652040870834461545331375628263086501895732786867335611577329818370487862390205292298912811429983713884634063887470083382908273606909825298202719724437727978912050395108947055603737517570384381751869427895831140152264326009113135438146818432848098624319094521189469749281572447927481028081902579375870213071260540096059463874349374305201020784099774666819777261379353517371622595634235581660916356005255840565900568029205786735599203355784426637661748063925616116575310107187998719010708615461036071242895919245421507127444675647607997578013281563396817551093111506376032171736221302935538916355091469609921563555104394454022826116609496289363568999726885015208160216873155043519249403398545637247010561929724533847559688940502856913165531746945557554553964242656261528476838168470024064383189364468188584949866839575002962985921897924346255914786378706018186574024959499716774956801748223249532659421630283944205237042047017926242263589927462791137517613780217401482202649338568958290550262387660425215581557871277111186590073487772954451404086758535358066953911117109549236078994519480249080249786250190409967009137802427400908413262273166664398736526705180961683762932710866506399438147788895471931318557375548632010918064321747635302701385758706434297968659369053775957041374170821986235486008577041255235604540895843471336482796357487471908249155687293618111575184865692781089951434315498655320158464332951718046988309463783753666276351563811283452227636600431154230850598050183085949246310742478421041442101824185160437767976347563893253618272722841101517535774085881111987475983467756609155453462485715253926354261950680637531114456324523381109251486142135575126712179122485549462987663840902206509897614347706886606310820908845135826034881389972595124922045226571904930774696130553869567910909411162065351799030903795086425417629112320811647924813885148776180802065530209322029297642354510990062011570217313559790935883931615241846078326005044984434634793971561140427168673857905300264692408917824516872655302757412615296767046938913227657521960245547727430556701513530985918153544709435793071920871478704702663697487686671897043085111287197427967490825191160647689215604265980238367174291204787845009767111917929816822311669618420980597811562572045603701704852193046956403498045165162374115950173494453126438690051651374224231797502832854362026974257369587283756684627107036015827015033167993056459495553352217010846849185118694318961085343003600299123116699757783662677406842074001693237664148566862937401376750557907669739980293896903498624073442048058118997359174012694416573639307702173062925462574820057567614424361034081817189151148681739580327122300361532377979947474832387932763166716918379407439247129833149115714654630858593118938573150653220782730745807020044673720157322943118069541701749881227388781839089090838715531626326573336633606332730314725296306552325188032791447262957683068653633616926064512964277606316110535924393037357147049925717134415161286181300620727830183773180130412908493812136538658027236798775449243431590253542514246826018736860105558436549196997761254407097716490146039389363091108241542435452486788460205420702526795814976577942411783223476584661116096471627439973984113255242353963112491485730392121422954614695748439635511558867153279794093709315803015086510541952252596421668884987879077056606061514232569544880387976513121155989477115111707394607843213620164323900455668081773948073261229028894179076782542824649170911118808679861724928631153829768977041327007762793948015379284313385043931275307603994353756682689536473034134891887740366201354862620747279158608872268692078862405653160800929795374025333005304289634600228340213437962529779501800131689183272878323612445420894895125096123192250110068576837445026088691058339845697282649376738752662904489609427026145046525599691199339247983507462423824663644879581668961171089773108702115252128121558710406097844293625225522997647311536749477497797801922604682665627214172531343803072867689123038703278778490978260106075680620274146745621501656876700759494770427205630793656972741028423722343774216568261834600348022724482698191301683666600882796105792269652745081170788621223654805165001473804745702648565051673852939568186522626973146859661684686970528078130125059527273743629199046939969497290741143013266797941476732035188496088114774985243386190781743610708101725569318844047401200136337666641083964526188781233377112711175576381423297166619269510609269215309551145827245222896785602971437183724556232801161120975268077392642620364782618970634985661539958652474497038638231799183356315436434393898234433418726763646334313681534130984301118505478483910627627610722661414282448018809409131861556769047763177498746445277996686747578515644258483777761871518514373507638280941497730902883676924521165263687627586352741221631057123833480188899628573940710414410171105770490138476919777072209947894897860854800825871724303633741352534769876301553405739386977040228889141653768513483593472066610907546591789654854774848104429753776655435742035075290939572942325018685681488983370121955394577124474742099561050285821464947357688729281198521056821515644152718592131171190511753392474402027210161026583444778101247065757033760251266998309131211150901584327126335661778865648679513887152696743104226908213016216508272823106611129393877236348343041740340788160187409228274898325251347324170289954703164570126792772550019357502467623751338373734094421231826847748407902497039060531045051530280890335009813171492265815356124993394654816576415259000000174284176693658119596807885526482940267103145708701927289319268679339888898195968636833088273508653570577071326350651580269632631390470010316701530349869781186150787193493552564734114642898891572196071232346496990140924601265108728834806209441891367518223491008935525000950706154596778492327691296892310027652176242002776048797119710128214355467568196627153303616583018594620033768649615706637988650423287076591486214668837689372064428386573772799546789256631505947811838419826161604187905424094072753732943560707923404938201720700450804270181734229575542138365468465316222326526609049359893270731394078370448972192578442063124449739271888924158842585275029752878652516698242163029167420296816297877926513081559717717829041328128719899698005391783177784993808976163544997150537118547270382116193538360563787556156844507380274993652095072293892605897882748826354232209158827416065797531638535536462320669700287705417908504986844329270306494112093108411595631284283851888110743720838519864504719676570035422590742742639090226096697696556505580629245589148002679150166495959554606902457914115236400421779524021455660057661575513931007092406680547847546730694851963748574742908248653543108977982626691238255420044284754412658550440866413571758813343979770043907947930968564365888587617038301393761790542792001661459196649470228823224859969208172117563116665563706470549072666060588881427351152064920966149353924506241958162864667905562812750623670737212814785072905018891241005124275661182227431529554486050824190320348765164168240537257112447841624491957077667692406577240904783579707978511354319898550322691418862127141343138555881635242344502133824706211888966611187376762802476341657567131622368627182978516069743384252003967267635451895361502612202554225355759979335539869894962896300213170406499068695686291701953349444333385813705590839239430297042756272977561871841598887648215652517833352372651424497310733764311212921111780338699079979901734914323844535469428247479469892378185784562516863279558326387940846062574204458122429698453792885640296447896898291833482220360409334127552323077678989932613659517325981915144402456035038225122312249539215862049469375346586526907013505422907887140547869047108451893503048560099892831124896285530718456916390226659255931023012929228437007380443880374457439717291215632618356719056789664554641508427688416345943678167371329448678435421727699549930206175942044394695558251525688955986758896085444679006690431961559803001246815292896463301887156802694098685218546397053530183269734219327006496332117378280500093702367821101880907874549997655395061613223575218933648952183278612263553033982990644238622617393841989802972828133002071835753328304316865072398127412477688232944071492138642649149439615851541272602738851157404786094969297238578583798567006484146698764845015089608632587247724093272090580070978740897549168452896005556557521401951993897206865972487952350733677123424841084007449759672986838387064194030340994926626523904064753236909249239749134019217500384693315151875693633286784112888947617085019215074089051167823983645488169870022994724117652641843680581232935164288612259267987296602387891659302129306560803961383925238898912529763019249214137078023303644597330799179824554267495307664609621350650804752442686426093093134400457187349376283413133779777665317075711050444505385404283167655333261670467142485036797521637299176831580133492338603649167831214810661503949012126565021953580860609714517191346320657307462558706151225437293997697794221732385141314315499624437909345130841464549061569328970239533965319972791116026461535857291706955360644908940114814902810942206709149572114553893994443000829529350151467369343383882245550521807322973544115520396510039399409546394004655526322399061682999198276896824020817464020593517635746259499896361091414947397598182973820816398813442399143824514883171778241558591825912005585248236368716842692450992405167514481704384940436722181929363620959417774721300337296246412934358405876833593663729117203367213387078512194573746568148272141689655298166226334740545514994476281727853989440280317873306297741736685642560478512656117303090986733703376604003982655283888614411026388862373646558287892476395180509917849572475723553123346507470865200055338500885149623891047962285511380193219426527497939586175205600999274485147097562243093905319437005846071509579485927044238491036701573617817491117412947210242560310618291942258792190732397795193481097980521509001277123999319215356624525936505584101511447801091108593795719251292656476164547696598235766192869213610312720965357341373019659319255118457740813991093724532794621574631163483286098538845405002448665060852522304579742643270533718621489369223568156971820935344958081032520563097570848649385409643255461209325307346780252872581760045771328389731564071793549862156244549702368919095240913243330973965715451894967032378842646213374789301316469545412735644900415224551616366940571519287099797513488562239282164889560650286025415235040375215792738918925641401183315539722577261540889724694279637936259763497622971966928513068496703950586667541431513807931226999906650808516748142381546583301622800733730673258107674508826294428663890293260784697394321444263991265373588866178660224899741574833899454271869021645996110301836842159788395280869924551815581666511329662504090445939812514683644297485652444566282775722581814666394761313596171303480662603703368277719524937058584552518933807360366315993506188667711657323007373750466487849828872141815685176357548009467740261660596873677099124055942211141032923930720390807533111771345433266653755978200295877214455335514186179363333335895687664375463812001279714291519703703822530196474697134414849706784988697637026691096022779670385591598752185697259470551262628764609974474576580687172275680308383856854921474878031538955327766000838859093550126729218195562442455125399135135027019143613423331461754297489394018789137858450812758533332465894218312030483603457947891937157847588249730313340424048315703989116899303950749847705676061304558029892276425241465859456285375382567787056656554449061548453225187300182987511507123539480004136246842597838313453941839457695929121329628118369107047033521580127926017588196485980970668592777318549971960606536318051548522050367630576220529303232764425776489672662753810748179479278065449043647810524110464448654839726278641286295892581435478341524394862129447279755085393491471793317075936817071261868080130164448222020909495736302571392037192256809774658769653946259423245627168125240288581376467416438013223004785722762293646186423205527810463248948664808050021082155218699339492805294326971555149263159543687745759084785299443194037089432366686919873400663619881942564008150439650765237797004558610150281640848021706587207048449984952454002482123906615660292850565787262528584543003536962145616620162868548306201277629813824377594189584275378078205485805564316774873544589472388992404239881899340978646986661079356561035510083395200757182035724067958511493987083039412292971245389924117907562584253751078769688283070960142417779832815077340081886896401351219222849168422384434165589813022719188797251165917750071987886305027014085981109733852582066237220561151933606455806023879034694276894546105720521566691043528645893430823550996951825123477561511595112381245161970727744769363619699139021391636314052731259550855556411539177428851527333477976106849090053581799034722115068404166870644436397926236690824808750536041995494025731855380667719376512122138071979897352323507255523819549218396149756067767366728397171944113356801667856633255954066308861961264761380303222536585542557980730741805812589262172890186849540457138472575966374709257194308133347021049872902181175043682800388863314121917503741720326037234682690267955539544481222085148257853024664638016282750469361344440148940860041384775235367482816059356584432158172629849490113642513968614951062676959111862747859051435841966574658257566498617573745636540189134194508668014850531368024274051783710752344462256121358601017964896969004338280327363563864721775525318879815474266672132646995807648515696677719426358720769595040161776871159071723126562380534006442043639558826388424321572194971929066169665332232633999729227355041925581533467054021973351810556587411699844110090263827420431935519912000363662804983979417560810429215932863369578144793590317840235190709299465246416068355591856877554376131334320417348372258597887041812497768220650564341961818917648879049850331232648774231270288108413289978200620971517504505876463466683656957297230779191922549592939594257522316673837772005218835468760006322180298907615249105741690965445235774330040118701996025852702239504779188874144807043485760914016384280834379307766563378814522256112365241374805525932961269427233001627088595850604095382302704122418689490493530358715230237860566468670451525515072914580622094978876924079776482463702727971592647484356204953220190180740815794146326970941063948138220832455337724457333850751844244850249976092920690384503664482640556708178723319090765566094078830374394905869981760364207922798236873796492662821056817664872734439905476393913109235100251984153464507427349009874583825217870586669146733293777201407273897645970641935716603723748733777858919025262561144146352690752239683178744988406723598391494391128120539764757097033291729566023561624432219366855019934092193480961168356785255318210283240166282775269308033835555494872236484786737227016324230232752829745054348016496287407487206262386645334211552035604391726867188328138350502004067045676280861269307774047953887220533442297873839681966849508492256659553352728420147629760021915406209132214870188975784727500321719348849788588117064948192674686880746780997221580121824638188572785396252416074576935187794060537816725556853796959958758622337719059655701355057160809027106010808702372378900795889236437007508761037775185224604303677235896166995070422773800767716668788588105691204324651993799294930009648897620582819660015748365650552595783003639622787242687913618725339234404466392075577760362470430267413030964725566108771711139323347670461562929892177385651058487306829930672789575189785165329248909542682429580988028553938127699656016462722321869975472687258157948393986063796735714860640527138708244725455434592758831510780373045316988479344618781955190583053142741397899886607819170650623481147906582986519909260788627410223404450317522160289547388867735691407938222291426270086169708662475532956580717691092432576086411049805898447628846304440890469556040577978087370236265584626572717247370613909085291383314187958709103467316784694571961632972887732636674979730246617440526491803993553211098806051574785246688590630862959626450959950764642653323797487963054092582497897039507598848595964208517846074295057073445771251461636674093518053026628385586134614841319335382309787818795277228130049324489715533449498827434286391372295849211196914933528794675750871527626028753677240266601057039577472779563468065153809137264737534382674034831652676768837759198592591652639506251511739255982534838058512364260401237637428885990070788153221837802908150799699532957132242725262767282610708127206970546094282721829710443882582027285284119223022640181476838303621598552490211688863166168639349266256502129947679703967202619805087393897409405597099603510324445392272572028298731524879087042453317504805093749831998445969608434627459157161415507132186860466926997130536536611969003373346591694844180440495172466273059182167549725134602951180276873503313776624041657395186680065063499064785146667940925879369573748029242735394555043307138340894108769675326322134153291679964533846760023233818238902733069871008925834491736238701131843638657620127153129423823553762205174808935094720717048532143304546363966274980695654719988099521391048091446022277914799702259074987057601170695917047921229727877749156671806838167064794092444397139606637153968611591427015887542224910858589977161065456580388103041101801578887434098454858906114922004663982765949278016427995881943897554984998020769412450502056723801813928458690830724778625966921255000388757688604971178760234988506305874903778234251735036002748338896947433006167031122729679897784196120895143095690623221343251414409949630879356197542382412319350947837490455575479040492965120242420883775213306371978806346229448897011788085514024607713115230856591796169954938367449345614146547326996496095594760587610698205471452461979007225230318482289246089465816113957622021150073449481186358419769991785295530138525227840733234159899216674876919007248623301137660014815514175816917369884438492836052221464560353139252689352460512903805198141527153779531389802069783331687221587404302370796242780958433260511540894229728578607025851549578512497281734112403760476201696244553919479195333517830724577812712742828120385319269879413542668719566749399127410877105097026340626787085325041273404104976548799961280169922385624438366924093445542556735224589428392408650736654049953608819441657455000376803363086630141119883162395252399453322801186186801455687072724590291864742925451177513050156721655286148948182602207759267712989879353705333299335690389270811961097982875072402232792808243724697394325913830031079672547623370825474518099975194039337255083909695944983190844056999953412573168688820982250423973117159353390978986348939987459871304236029471041654887097760907310257753631826457602348662918993096156866374973284860474748579054034903833651066760777200658834767264583474536647714555831974584464561475900826028406048847611698295237695601146379002949538137945666350001293359743850873340128975598256480925516795749143500523847517228478065075771377539176332988173195592029267048426645536703543681142288542909653522273129118693011250665547237166378659544607318982566391878125781405453653599366921962044129559234642478442853139000384823739408347009410507846134734123228785553846357040035445795100723020799323492282713290355334666990574780478025484001238984626226247688084094259854705034606567636524185767705843722719291958958626770434276049449585382909759647164481215280574932569215239793757210269876088468621745814413525616724048471823946393855143709065436766958487652506033639999250042907683635088318603035253480465583276002578331716699547694870117869894538241273176858236041452271743765977454854932258815702268340781094121858544828468243903871791538692820739792323631233751992909843463464237780167111820743596664072970114817046274847682061180095709075133031874252973135418975735663657696522686659902347868188882831639161337739946874490141821116285837189058722745420700496900849862236470488592316742913090973752921631823285575629075446047976797922112081376519006540633603444103256814346733371034787319632850889491396367639844923547644414993726198539733141631644914987551503790121491350039656635487867000434481897876716613337081522186243301501474186179123855469956194371184850012156858773346696617033303438598922237999320039754495197966494995618113299227877557538575913692288333896154107284032467665385106844994612051737513317611438156931219107818751913869967459835635551951367445978697614100027779560959145898845116629036038541218206739113106516641958171019827712242467437761886455399423330713918924154010267420404648890659614107385981100037187838918177061093639018581151929842505100277090489555614377641932418463128433950388884517637857388535550664365988096862158851768585842179938055469148836451537781001944670930103034404623997698076116278459705721968153686944296275551822369881425537320096003262776367644713345017489153300121776026682120512333325240453947067484883594899629500865833433972327227876846441868374376163944505007100807908938419525906669674008415861864097092071525011951301207071972757763135118791773729622692719010308273385853540157815208501690375419183396758786801163990861551207927789984006097428516112851778951111178813604714214924540521982065693952016794382488249757341404299397932828962138251884935664812311977389171849177560409955472813953520487753101315594383065842825756613854762237007718767555938032577619338886421131389839071697735324591809018014163294267633083556801093387510876266850282454866480982920969321376666124704193967232474747408008368836340230996116324840154589616670770372344236625575785011135511442903831289810140089734142003408158503488901661493308968964823300808469954033205869294309486257055791265000009626957163607632648352771963178036600720315845272599850954974209179432173589386844296414310097062832349508568532096894069237292665873067495701587278613653002198198260168905387495119298218331452399654668385988267734047535039045454618904125128655721529829325985223414627890515295612520567672667130109458059238073039016468421149474509105184367245232841747827613535855940965749318843833728439149687202014381923248389983600172862253914708641503943656225999725219676147168603402782823818527860843727090258635675009318734305795717629780112177955231158229095464589372416576322543488409335790653344965224223195772695646288675490563238241602584538130084860503405231474505414315960218751844452047252239830688222318436771432845436279883593420510231848701605843527022793114799288516668692214736997698864963301762866581447037299048001824333871032531370462700919457487284856847306153815268100831256530028345117242376653250861107748324538993616388268073936433529518178219300613408026154354380542367867629856819229283125749660830661651944451727739580826316434658193110699734312914126763381870039536667800585570614825731908154505978004524602639395621706015277549573728302010485583246632100346431168848756486624179582396309233524769853254928032462388278937813315363846532496525779952557957116908777352853403647670721729221927869998636322614010371797685998358323896550129313821188373342618079442015951074863568428172310487378434447495654127171136237093867953163348100777557356009000640283729450232915926837567347199187783059719435271003385598410524583796067144028350281299099446391563653673841571681819790230161659850907975966012891359122918655023266194225380515977727402067401546713166814296665828631735355001743144456122608440385845362439234958447805554898046424032160761623788025006990044643298349743235919521052728105591180582721252724463106520783123393627134012353709806468234866609911624484099394432148392755973587553219506295479168263975167616012475650917842589478472711205602876656231737277382572881357055946070118487755082161025632942035258457601255892501354087731672093265734866739899396240599892513446533146055952915682317338893611707957310909169310720305807582951630968901466201370533917332179817191830847216865006197741072795668976765363503570392642581115772527082257352563687105811219906110375671012454634376783305349276754640646494524417936661252054333561227251623203171166739931955938450377573752319700913918461660901362679144591579147578031203403757304669376942062800704229467998662140213935920583114646776591454761798754505510920175493129946619480284547616089482401121126734971370524455016484281775090890914666708803308305166694025568348577668549881799696723412975919282478706593802488158205029808547786221207871545043172929479914966596663820677110329578159390611035596233037927072880346424634014185284383349773727860800779830762192063571476152846849564999606204347193289653675315283738441236576812892197001795570522056937789889825329038381093573022299982946471544219415509016793996032080962747628289841407027599176513971432074366465137585075003460148444477161511669216693182314526618110797020859511106712897740688784454880383958069162325646967264994140002978029038174559860527133227888636075578512227950138036614548139546438070228991878053498666581536611614075687632410159235593999774678437998463811476712097687424226976846405083286925718465005238365497884189497502117607505382373910203295904666377643641017065146028643551790128635870867242066921516187860540503014730684246258268849692947392013546379846233567587635053353681061949883036370910433511587054627232663284063999547987357667132095634537076096349077360877453911253656213323639768107859011239912659583551440640723873801734839586165098239138547269727506346314345068967531263319135604943866484731961046683062164070344299227348288843290181858749614455815362708669061278049614975518077588592001922070036198789294941195015833145931550468370144215283015473736579196082047994295797897686355390189310283608782720078946544468645814448061606608481978320585914366311350868908669128060709988093418250737223027063612593754571663334104930166620017240274703452197865405955162209466077219889168567774305848435501542704794866666590584387100046187540812164408965188783153761786681805793666373237491306682433461647542899085229881417506286392573057895708962341379980192977347308837322406428312658496241387360233499631024167910846100565543759102593596006963457198356215968509910161326503760113546954798849888547342441007894255492621962606248745002400070909498124910968825726253488666614835336164131558609365194949591035391077036029637080323286984434039605855851620965541150518448164921976712823313605551642820982496719835927640624527472031132511441744700717005046848699178464856357294642222331377876406435372677111573201487624487223691988285684064046797641611784347591881788855568463014191113286693133792935880918585514458445551984946625508388879004176377134208226181064574763385036130354602448441495246955039114474050812242807798290361216352089456500515035904774855447301286755092120658310066895587604000491887991112192441783551428176639792925826521868315253761649748823557003871723112407326686427023984252142522897517981858735153259969210904775134727870915805582420612891469765061009228703643431710569850696304989499947164881590178299946536773642628976084720513410096988090334105407894159178312247089404326291369406142998064446901989695025404259023966612455073653602736492385480955207284698012571617867114542408437426020502550040088212186903599014476486162940045172456192458470014991373165477705858226800243869173113876607633340047269216415531492916115476540707446497731430299744578669701638091681791599447603810051094917425172516275298656419759341809278823515427418763422703327429977193073688103360765172952321811859316521378840965807460502182621719049003192635121550353345700277742382104918583385448261475698698389402870603753473604905235721367844949855711665578881707204670562423861581155215502994390319765545082527404344439355119343462838228025419584980302937705764135436878018801297470122635166901001749973056900465421360496785036355619578230143743748131857252781884922950687996442244630360573222701995068300219525090387859636209987230474871426187004833681960623433091563224089942772633018365936852925797806201102817613639220294795359119008937971159935611843049039808798147013241113088206181439759573037671024386789841611088746781422702112339782750559161581352912891764685693267078413705538244015006041181518175888449017811050232397462446987636531858821910558654394354968366573984247135721595863910482447361926524726062778172163204636149102290771434305169981276844937646440649265477024781532411244756982573042203888511656993050821386188308365485688057357389304087433021137896288400950669542440496474486453959914947433123896218591993716468100594714577732281850647780519172425817051660577544491337808647056279350647175103773552141010287341059101707115422130492720405262861189126330516392659913439205117866315365528882586519438303698503555216106670895546680416814411651945583935768453617498465494405703418900825480432612737154802200191264738761934633974818931020297271455652379848036458592184927446760021026632482747442062352435073761834259237010758867385123287351297096414245971431837988129220917019678790794916849346964186212529910075783271879111862017646323007919591388048635520325912132695117318829107057176855504430110934864157497633941306041044284522199595669670182859536299760639106277760419574234872420136712556642866212718631967997677909279740133381713817528311382481396258270362150405027065856504836984361281266970116179304251547717601380167830856300440242483889509843349988435447463533706698264488864174718576462977867536146967206056291522672157056588229185529738685715387336406336488537921768865703264969744936961164848753257995942979424702878472189888957854385403768737713419412350310639491258649970981492444774175869247975991322855113861294878629595462163792078780860428923215628108206434589762283418370323579187467294263990617653172020840389553143617839690806757227994237469199431120284968489362415727924296055497209073699833595757293751972586269172374046758604613362825924104472043129735736784553015298164215780287589251588426641502140427153668832183728553544627031260099233144851566504948244675300229658182097148401357847541448277015663648706222380089168582764447663438801465327010607975800418496505577481276296258212987735167370409392964527471401512980039275844228606798847994187869607933455951555652359774709065370667322157405012818115348755685009985923415608887208292777120359442919757809823430064399733958890179642962774228060004521780523995510589177833036798203171964692705315108766781177050041957179629530232391639177784708643010443388173159241614669098870945494781340771133343416802494891696324672965045375692400060156967428053914878428017657952877341176691607845155893319933897397774607120260704051239203922771069582522774555228724922005171364990243802421566635008548523788928045555252878704685560748147620927919934598389101892524372022398740095511261679699163653962912352666373305863817550071340938387483317024557260544276980281741015195817278834243334880156880548261069507380713042219120342494388995582807889597015120087346919867765781694030634935055710618813984006522589490854140939605764844062443623204211751188221689750538659681565198296858699197943321924896272163860448186765522938292840299119373250883252369863047244497576010999885066248048951615317782268608390630223215340673602042232686054850081037248173510776816927217343470081329784530403830429563152039554826361059640149869355136877772967765006790635810328329489255375974914476557752372834025366513885830980382367751705455666244364521730464011976162062497596511858941587162154457031873348244413496224527234519054729757807488407117185374415519163207159265792534267508406964558647369242219799768107130355858712710682558959904771642745007347550078688608443444915909415579399848255065078602465959653130483587325722200945565779546505811253118590503573191750825891238330841721971532476934978491050066285358514350307162093354514267463524506794900345146501985731790703517995807893910038684364295535560437100675818119991414121730312144743920305767224300455617075690258412421313925591546847383117321160453044177709711859597050113401254339041067606801062121870898514764215947526857723167186024806365435773599398167263618224998570024490235143370406101880455150002155180137960873898844519620011759099701584315258704819004713713634548026175982057730399566822909016330870636796483957026590362588223109356673831758976517549984741591183331745635852026621562662678199777203208250977382438701085497845462193914958481925245784808163319012757811540925062160522463927303181855893391413460344537540691458622230998725892754216317530728490343046351840539046460811847810760588615971197947632130735572986514999495332767075069703750623985372830317054563874580282584257752132776881022648617167350555956420476426957839139880049647395522507809499626894152224749631189148183727384228295840978843629895621858071207502822605768727909492772046064380957087318834888998886433895763949379076279026778268991485272915410229923446796470315256410893955743264957957522655542859304340267146158704737485248028121302615252712097973156897070254679704980965986795197402070342088373369734437190511488735629765093521896216633687218371725428797942327368284727929606079657256371684025630607516564871104560517033642467752420621236369992514521274695240216486787018877984091176338095428963432549804819220821921979409026107123451270607141778335310564746919067947864956026450825629211059262685585189928578279464141909040618878284777368033987280530737583299501247473791409288800261033237846170181887069825653014635309298347007074834370735894600551948290507122174056008529546924015528381026993580696520678113666479254255014121740623636758215445417052504933245226594992979902841471176293993371097827294122357451036646488853964316975877382440503957820287940820821303433958741157999843635295291828435315056362979479781997820359887015211517231911514489579772518933060328297427114545424161557922703793052298041839455114190671731705897728955392079860657739012262731317621157783197537623710982408875074945080318656524144475754645953050728305447137884972425309144856920120069417496437330282820177728045861024999452098363867738002018902506189764305837259559346179510443543976198604247437469647623381850320125001346161975724311036604690144814632417149386134263762989856814026318724103651243212513778754448624132858542117385923716177026832602937538521738348171191190320299078256653968923268482181064717860072475733102494917548610306146666991777540098507821813922877404513915755143387681504781776535876032273535054037933947020276500695466924327377143689824953746128933096832376330012908632657547758864658156787253896483901531126953838604127258771059047721249595729375809437072218335569725251591535222991840131289809338231090247762298686709814411168390348137332616924417106576280110039976611136902769520363390736005346536471368799269424538767464259427502121271264229529466562014134235555818173853400745027324458151613684309177768726242534362309110393303661535227682801222838523687347480454033714322503089442718253908630911595776208807737742654320094572494171696789164265804304252462607522678124555641719921637536695809942772066935035983993943928030959682589808738201270261226705594345914174189806694569412582522084491875980010842376078391127939817347148718258462879947072031862718987457983986885507557468704810983346252860410288042996388692373501381961079082076857591982765598611595566352718012921708382431354219219002044121610001703733790042704935201134453918653816525174037737096170603334524288441746003024539411899306511116135686265213535198726068020897701745913160504356398294132070074582377219153131770538368558980882946000090533079848842019275875168530013966751607052881390598111018135824892566062024098604127856100257382868514313100832136233873124995059437516539647677493576051824348135797004929976296554913825369745577574184668571716132478624919175468346391231498084079747208470985365954079372324893635676755206221987037884109122514726719595400755013562070122827481595134796135066747098764803598720460938680233162956661809604410336052351363385007527035281802244416319212384227859964341699318992912705131948020674431409680267436326148813069988792956889190442986603544296010663003856066721445861837370325710376642329257151341848385366769981740158242433807151961858932552159969365352204279113819599507843296145660365519834445006311023428487024200540322432135200312620216583386691889957127044586805018660687303044070628657778468430905803004039617719272637486721404416744660184470936088645767182894581936873252342923632255795024744383082437285428044967117088487017941940439233657003821060712365914389924752261388351427791374320042250342010130622393210818277550067133326825024251974440163664665370668337829783824212455273588174041043843427759233066690406867702990668033709515136448892161820634923453987279158637375770828889415694687450934176581897549296136591833979376350019303808201485791876515303373692222438679946939751853116368732009376108849439181651114167749375943543711147467805235276652060578905102787148309190361440412446911089887921340535667347298622076506667677722409334903354300048406474596336509979040534400316660942640726318723197518970683292681483908802960485388316946532524506088246047639611768869127328375192418727116794693632396773290235673145326345369476708910082326834482209357259140128385130698088390079869139515322720743255287032756477007735620947465927418392151573388494615303704711529586477178318798881306135736669467217185047410811033268568152777920741395375539612350966745681293609058330337419168962331521580936815824842553637839569905102391721713541736201339321564321766817752752171440757971750331866336651354069731532502316303873601727302336653349550908969863426251266791583139158850397219940293300161852491874713868432127032185279023776299065027510870617120208092128842087648677080274970241517558761194726690720616901027521623812629637551724526165198549613491236403183510675880823256680162759008981080119362153972877900060039427823441912648890474912397961242296900471253473355655018275867708427055447509580252756633660503861165423696686155284978122938467394110373988815583737584134280435738542621651029283275876811245922803836878416183646794496973824927780641381309105990385126815928561497139282777055403095363144287925522732845285331921847885263000658333821056665825809950878410383451893898675458676852473952873627845208097434708786884540651954861615085548993441271886413377367241944953125466223163439669696507584553680556262731689562243056311658171315833464692121133343549854890616152092799923140393754835954831521953500384708255684611834151766762323963371227588481835560335802308336809412575847978543897128500356912834942127621445957673041492933718075954597911072490110621779429669977073035525987259156717880436252939370438037477801398646314248278643676731998643087979462176602031946653775240941755418660129962565354826817892313258353412824518731586493065758558269698531863263448524567783330747237073725768709914687579820555816144581162515145451165682793711790943944673976805829655472783746970351380860114449093548808148789562012725304762519716938218162146135519934953960732560938934726481070200501308377988159757675570294062025324410829168557437145963627453873119241887309918029913104943645108309080250421787638497526574904944371343253399283521574031174887639640971762886218295122301558512952777572048150457767379281639461780148497258223034697222019039981105482379975134663076156610003589237079512725210535440469656384357743019694434058997289395861549505054507945242515146658134168853797047995737471590051471450614258278657663472250252385977504143644267177416650064483099333196352990297185444461636926446346306028235055981838017064714371437375919424284221556739603399581507571948109141331570012605618715355016068611024837015125113913006466486962326663449478986986960810594167766762738198458910436489805642517342399236492661708461781496166553874614542464431351319692757373133730932793394803720949552515061017136634333947795511694991655433049447943450591951300705060307983952174643065656256526734966656758730950227000782679887377097733030286476370271543297518744777519001008291172833768393520943195985107834082037523886081993296892481775899151066714533920993340611553354889654871342424384444361307829303321382741594791487734253058529770041443749324998562144180320228719460538100229003964934685945726309990681185954734431259048516287998046920820673119243266399882869922658843698870272034519828889676511558083558607140853838422036545583957027111536982209730071809544590340619138772970710978687838232946829902747380206639536385896200521468586493935509549318107117692538862488974310558393346950047220667344978563204105577517864510632580427297447082300360407476109533917728378983812268750282909519562755351351058267946358643840296108352680803092841034009859496735212723616812011558433530357475046062649057355525373963968185913707484822336237501148814123709308524896297760638433157697735611907599701163636429579695816768153299024552232590207153121640409574613359777637805432099317638995267974372803516989482014425000006603297040727271483800560752335237442763604974307606436388778175405491242241158168453160526413480438154639794946492175867384293624552059114611750635360712440991779902433925725755558721969559878722875070169478491001433816358834504261844495916384255234925475588372408508088160824708357753562380267365746738787303812612079549601003681911935496125423057643914156147140197457772741075233182306684384930333636246165618324579990031031376537135785342332907476794156092508259997984924005993300486529295029533877020423858268725755476805846158035061701596087345521177166267622516894519179453991117462681787669902059835985663858061482588658548636855754049886545144449578823065993262507759327526808810785393333176194331266397407389701962863559665912476154118813462937246643972384333203855819026308717557975592867826298570853390538689990820001674783138090792389253927903412027567777238069679562500659349848532249809902336884741289869921955358694538002349509855502327493726044595919663272869694763436933576332755970560588590853737737309236415802419557516109354466153022664894553695604080465641478637070520146701373308515933916143099594973902793786868532760429954879900740821144935901899988231674108852755678322879882763552312536351638282544617240448512867027505247481554141779112978639905393767559840827196104493793047729143729780966892923922924716154562022719928861287333631211224296673676927133690235040918189025529587219803823808706472269253254534005604018387349578654777620305225884715045878157982496687802321746622108340910189719625598835982203258383678422736494312263015920152979643584991747969680004251247014756812628200775715883173751241422487143453053269069963972563270082465602221703620821760462733927940929572747262108894349307708154179534359102274896056874982179331655796567394303926743147566786193165089004553502172412597881140859122448844526181721431633579017927195876271232430850440922771868793405809108444194067849985206770372509436717124510535030622172357107029957502253647052162238415095660227807583452433166176211178494747096806814755512787477641527976743441913530260517481994568983171510761512443674919380858911714245679382512137579033436594821397617102658279429031485852261032310971462400453450144132073377634022183862961587688967108300837806667314060041678967054326876836871638153471645228587076197139892542446129174862977038261463569768054031820322310925274167187562905973522973243681282332889975903338290738045910007249039614426023884035686684555071847240193636053743959788352450285962367823857294002371131044134330984511808063993882542972113858384182617827631455978462639312786287495685689359895309403380006336318921298135403465870896506763823862917088733785526707792657043502592876009456083067220080355875228779699241436737122778423610155090055688192395560481391421943236093230836822790315102082076932999279149070916782462548199131156142866717867873316119252127986538084024492421930192476984849497309824600452766622104479154907780434511590676607700541129869142661829360221979786054986792588219980222010258603866850211136031749352825909580405833493524900918464761961054118126510494348877325756586875849549713025604538934780183468761736579777733616762418046219097653329832614374184279593585762801310839836660276721426582025486671500456892889152857151173644924758119785302352754021003967699493388165206510799160674123405954786304206311191362653925614583451115081974564380727196578713846182426580022145643006762951024492953253016710971925328921274657899888397615331755306628672102532367359191640345489060145140824223466326285479780908567202065645936804681572713040895016062789084701325062555670422394051968641555683546735731150280328725953771850194307109860549841840138916036950160124221935702356740269633982937477187435098753912032110809545837830216579378318454441007747843267068476548245875517957476683909119460307174885289505370684093368365518735980242278158632682740229775303591080334972648034194384417321935956715441219718382781330948989588663271633761025987831246478904540199700915537605910146893182409753123015993735158281872733993299156512256339086137414274336964392622194246188922976077905627093390908588124163180996138465023188221807882729026855998398403429774152024854772080709172417231914031767109716718129281597882440079035918600288021629955523990033116709097087356318116669524559559366957954613383432140050436053863978891783001515279093617935800061085524793653581174213761863463449134821789380995479857547777819306080571562125166210030609665858362521149982324691406785465490710294238189931065962434953898523834866955720994787569797544656827113513956739469020394248503162683992729291647519217052847452454089093656653709387658084601790705187041230925409073670246981965519958364333681483540733597347033921347359392283200777226994045801030990026213302150455007429854711053776696192297457925318579105886585258727582158003918091021863693249255999922151556742161978424367585642445938731120490977661319415099904823483678681646364049505486441602779247390382762007219626503034149851206100009321906996991269929883757792080780399508193177537097408024954233713213233748812439735539897830204842431203117491368611997691115489686409315935245864480068579018907912633947236632737168793544782707642042506354458666780670922819946392757499868087483542663609842367886834719405024556327156757744140294643957060217872354171272177177004648270465243077637786903539200729066445599806419762821626791793095683909874929110005234624250163081019363863656319275668814803099474329584752725353040123749918349282072030545573585257415949552814099226092351888180856008945324646980576226673821692061438798593511126890725241812185509051255685976663002492890239554428475976557680410739120194500314302191104950315982780202907192380884303721517822528223881936245782730590640293607102704422296858414628680270566339483820180281042620049673026088286191858177926861854026089303338099540676949498199146813455291665893821257980228601329647998154165455870199760219939118089935739559592082876475436633044855997949565646097565170944093947746380374201633414120220250623726034038278066446486815987578187505808641250479909728062624749718339313800302599665718216018034033339871860897502786055309129198635711812409505032185988514207378155775468437784557956199483359501887651044932911206504588805736834357134693383088758148584970854606863464615521750932685950313896298786586782246239549109659595976019615347922744154556787167075618980245283497181637808094160163017177261985468405752838920291232907940777462380903168013523709203563044159396698064607145555510685309793874380848059896391989959729601356216070572258406301458232515179831225091616233697921874919722533563828496847250099482311705346285564086009652000502024377878076697900552322153805562143479664619587044328163215685497933353636302934948465170672299615845604682747256062547177836582777403281942820275079901660417136100031383854330399058663234647567688683374817945023998683099891571680667652759042660063098277792883433084430205271869227648181749488143937442253411739051313691529305067361147161605428243282135529361235065756932680098221780728613653911174228261844182831696090449981093389452935311677925493829649429404412225479136860154478192923899997250072493636041345148326264470616475710883318493600831421878154552476150754593664201873450590753068938853307256381481330547359223901351345324208645412604122566023621903907134566142617781285292782072945049917795129288125329169020938605300953971057834305006790481316189413537598291320986845432265786014953917745926106009940475571161870695995270786967276791355375890581179918177316279243527675607630124921228425943123927935611051477880828313634313091292149926645831717786533078662332990898711132353680051572388986365330672288208506475091710151725854034268561835156470680489241896644435565580420547155182518599443719462212905872438655010844641904114938626214315767317875470705694212583217324220021522562489729287930508046203954460076144802305101894120430709148319677391609472669914650902570341220551154282615565578749432178708434072529586805935484827541451448656223108811807304688055545069650674085813017155536815602242098530741035847137494542058642775444097664161696792073508624289518120337647188969880402704268053480144505553458635262112169974680064071448514039062396987125483874104331053468873590898644656917586404159526608467600307705258862323080460077070153326127801137467886625373807022899297746379725106788751422002521133133987130644233873060447961848610655300283223239340255985739970384764559395844338501067784340493215746067314390477389382837452222001404993042987614577417016932755116167598786353359087626826709658625123927431105959879390029248960168304654863661187742326527220862358276892344904416958110285744067786837583238872314034250160783923457345861888644245029849074257508929533476753255438599842795164148427611123570978847689090078044258711569632752535562782373501064484167756104564598296933032858651220547278903283335716121794442946195290603499250048664625243256358875273984237988315838188026742030289823937162806048488514585466459602054720977921025197765850034447073775837178558855287155067172763393827355230773423959357151494692642546317332652377265722083186007697697819640541584624759470094119730287806130456514391427567906074133403697019876289376760560496029443835132183828912891588456246179766621162451666428649956970175073965420975411797646904189291287982899450480875236617619802918891384767874976532461095532624328124012795184977405858243300305519977981391955648764301418748410107628383679728563241820051405452366532584495462936535109172727910194130284274883578006748180812326502662929209447411279390570020264743429363805430727942838225942423506248418362976700596082589938027608493537017851686686565381336746550065141372392579696470135974727512438631561854805456302679460264937310800358696982098220581123111929497584012225711013231625116353031125473003818704192340597167061536418509360719701337248016683951279817278836081782521442982517033540636654376857976103556038127872487711555388496880973780962995982251232271629233688954445790900839565120908633209566403205717186735989059200022473281817723322682184506560879347740297813434460310763053426361045171185997254795505084031682109520937694529221278905074863748207701863995370295705089152383578096324393803425169247782037070349705227875871884000589256989160914644732241240999145619474071182734722721198651305572571762003636552813518298278141467072179333262752064508518188786907037619339373668559721570467986646586083366220727806210284893008133112725064688704242306733569956489085649901863141142658107996521499894627277175657252091448249380662326346629167600768443569588627892645079098549210281863491038845019858360308911524892752493591287873054642864382892847489383325327893690214656790754630924231015618425332079222697989809412056860682355566534062792019254956656613297027248995471898004127352191953788779013554655122986608351881355024658963947736239796262967862269906300429852423439428107480032601108551809780888683081526423193465082819741657623600959551146551739118295764144030014138238971585141075486770080077309278348906603948864822687774967632731214263338436380544911730154624808309133415910391325724572051459214590228579201655945729705528127872671523419766324158025274000907429483288343385951852246878361937532103790795019417417515889695151576500346650609954276306288955113789632313509717638350070158260557573846014606439908695007572335321126987494464339577269285165863868000117318400241767694672026321687505417577298370229123939730728888900372152116137647448705637323744994001640826010265712842029074491949270437112348369037407436419066943070374287962763367331073727173914309881907721156504444700695095051064162128021484123627978677202465697090528993417066940739003602054076509163743665151668320286653742118364332955756240373494169637498131578252747715681407443749090186986170294601640972222097789520763538926532222253715815239396385510814804005328565024359577862123952383125858252570235473971540562668838380246024395144175951493484169412904850888773862801488435624792994814485096077483626030836433110972021460043003829435335724494946344566925839107762743566473254856151979238338264146578096162316237388653886864257881909513685492156755994645607456547331801626503950353250857929287400426774185737151754781904921606238269909467994712278496443834292022671408781302720013722805459650448469554957231157000846411213255799097386080372858002568212594503326280361514234648987701088646954260197847443153753090716504464819563260534673820571904005256463768207394242294827058409996032683049527877626396128950948336482379814188893855811140928386007644559245469268045874801357838500278348596296072319680896012973831567961691574751490765431907949108400965679448596424463652355797493294841913244879583881869918599573178951205268149253962563757393049423213701926888638020134266612281719717501396040486748095587167602039629288689827454263334711464410080606376892283250770207266391609473944155141355948595655294852356171474098732922106669977660023520571555431541955253926871945721272957805856338812172913404298332594263228079304533376162051524963460858621413956650957347386080207216787809306843782258427785946269885083133185550789896252355155624933732184859812696100092338420428674985757405513900822761140845366099936681749745652008709722066907497818642536407358313329726427403687552302391545214981110655705219806433127002796736443360072534911777532019660616389439870259052186073824568245234942518684790605423673644473082578822915993047563037978070158920697456141625037378603312323240868142951071551299907506973076167945094554998155899887106320679717592760304862679780160712989386740612224385958739127844033517040472026245878364736508300164994402114058301488571853571007500076751113931569664037245442093872422773122954269776512055865270148818382468783860566348324107351281891794024807797637751461769228955401012113671031411270480162494378945207993646030832766397582270406097956788215533403155388447188743629811067419374366955995775695266499067906203135058796514014868009970297356893547853069969901287241642278877244754177908289173068233657130225429703017337001147282365500099277562815683261021731134555323711952177216716062609249919555422111681963239887632875811640501343145507734696426579757142821632696356897049641484083691553851797663171698133158054269601889411580219514400757941328960064743497510938723381606549997920537010613819809045832003326127292117988587893151060188959745186196092844313579167911961522376754519901098969493762171916144250538285810574425152726406507798347892759690001192380197322804726443847677974792546020929057207765887001801637244761005996291339460601245601553304200338477619879545208801883648111394770573338520462889745072934266231173069023946787521547338154792265100164633793525987620034365295026281977894032404830789676529696432116471961037363758441918238139046536104278074626178213204396946644452543841988065768552795384927434987983467920991341100135411171802600656850631120293410844417718032506661479468950831419327017009904121880812071707141651653029616394342903132287355649084961629518814769794641679011365094639989553909313124518400066675816886664860363165374222356173234800008144029757734431762871677492010486322318873406516635795158350102501222030587426152565734577293640457566524247312595129912791085744350842409116408221765462018058962596320890725405528333434279252465691481258394535035813979996841124794770482624206040501043417850594320591233810354113586532677329745926915471063272969002133716194994056821620111370194477294574293063176532363346094605867287380742262782516423065906181971192853617161994368600771051047250687390856779463960673653404137681132649938158690252295275719035275787815478703998598101421371545660069591018547720138117967067668388495756994966963858142669007922488388592333748175419842653634437145553685373628357457014200240842638989688591751721178489627788960961579740562264607007269691896174110543451716674723181509168219721025666073111764162071964294754034620770725486614214510346217206639506124034349314983680593640583621641454407501375375462653767046258272923770599060343090869348806522992011924758147621036576839431621288746063343433845919344174110818925881768793451246008152651964531658506307630268860211787093050498924890836600832486531424729733746941204963311959563394011917300259747819619595797204917999048841817807844579687849387758686207732860323645261383179072528986438820852218088219006999281782800112526201329457226944447459809535928846936620373039978340325087800944908277338263635230097010801055309391025462249769888535883318014329649847386822639620533076454511269647105750491004527659255922304543141253928084172735198339916383831706711131709789224404300433067060873717631837542250077087600699549253593610897482891328882714093848961815177346569246494632718135754521718830440163207412930151707835953583450378251561525056567904902195558329790552531862989704829571142510007269318518309272929815624788616518991119885101402402290808971682690321204437342394799269832545368964298160584730991126900105644437312289753933252002890178738411853897459257780573801521793116362248108287927425935900792740556849865210967913462229334155162645203244635937724970820407311103599848071139648317288454114506864088581861886753923806433228945884211292633967405020799272421702176683078640194412860363163458616817022438590985475474303143212680840544767119680078078574826085076093017027516106874871724538804949616501183588178279794230042444146543810689958993670138197836683628018031203932702314419309698947962633725120410928808485787069854939127866058523628042730929458140223829288345328197943794399856815572904726787673519103387748091679515116452126641148401278079839618196978395972414187540817147100129403086631322907618008196509529746445639467565099805727047878450911333021361630526560225870547317032457629410411838813903464012257756668194924909157196702127228939981278261714778600285435927445386538031695534312321151028078931913382077552515120098058076781967415161970396947335152549763079145563938449304021372170893680608637620009290110873407179565663679696325014512412178887655795074743979113261046936993649920733247328809948143866341597796670203097437020194614668739500319844101390350703142815197506139675476301058013224185746831187888186152289351219461388429307734470072172804322643005969428506570670301729319759185124215341202626420130103589987218496124997877352436750105838601901992998662346263590227306344084053063056786023854492399960626356570047230338414079520975097743094821403041599537098366182626765173324880475713335931220851919219461937470852228909071980661182380584191471674421280519874531624113234700948717656273173886691468051080186446221633136139189701119311086030399021765865258236462593171024138948098882062252772082922616707982745045608016387013424032169448839024948324045947850432861844033234115595938976950816357348115518767868636921768770264534415115683415232401272524738303110108045834585094290266230920892651646251468576039304698973389714599445481956797817988891039414355126202233031705586589205955518340128468180241009200824403987443384834350333408671059347670359446467186899013748546959026835969711933412084295564152311033256212331594342060880053729965772062454465006727568811456244379485965140485674999547894855492871701723382802252041712568125946612768381077595187768255322456408261714237378791727848427480711445940273567308709118938231566260142803839298793540447903961042056518488963818547011009877910542176445580047116303242657703593734556727743127958559221651144130342452428705636282268922173593613026508295677955695909399106638973877523506171195376252114851589145922885013725502392410532740635947675751633982197208752843616828622691188710463184551443585286952604245319208394211245267596679458316653143043334511298257716314389549431059734858173799313269838832653427544353284279709915136951946369485357723995114138204840679874269260768373439092341517860706999962391987178668832402478415081949523736115999776557896204583949545842720753621516068524614932199447760522239534933004171551180411552518483636491928968029531791188545658720139969951821499867860402174712451439185657567309909599639616892694662648975875911297210681458062561972661687553836689583332099132985439519166147689709710906088895814073386321716236337556085425991365163437004166381650854586842515422449151761854980719738805712948519557762490298959123685886856753746836548028552440774209049248518281351935566860566474073290060093323657499982476626629331793078674945296077998358581407793873184695786858473768417808509030541931212340214124812631975851662637489115072468669237763230440781309465790635301474719708318595972793868159093353028474865454248050416756390607085490395533382422441543630305329528527029205265007364156675877339372097634029035232696117712732379673390894502863932510398376412672877933120397314314333725028836144370447551210337654342654657793883741847292950731528497449257123553773629670972097856276232585111517472141511791781398775940916801633269728290057455579812830694658578445543843865958886742667136374373010103446416545616575119534574833273903190545389186423784768543962704177631304751938654111083944393207419364992366501012152915390942790329073114058227589447387361367132437035549874539665898522516830833281823302234984543558636842184660013141147968061546226276261951159154630478382329568511803946579334809232965150715323249395194213988700859860245798577680008817406447391092627204574147172064632161176426352936383053940834338167549219590813675151544844444818640847086105404331897506223402931986966548414865950180038584680092476919802624068142199452224654629692979183623932407062800780141466608155270523325375179495479030551231098241143718115123157351454180617998891090454882664724559726645479341489964195316821302576029234636672957185068352294441093799835915742017823275259669346531770674570876068927215357626176178887080156046755675704861119789921703886886204478020367789776038196050695422834559150817371499550925797052729129672169771104200059252483534773157990778956904041238855870004672912497418297557641865366149130736192098504725341207185683422507595839727361836303452539889445940981962511434150642959900983886895452372556481072469784687470997178828132088677403302677135901674241136490811945769260933267578907041406159823803728808484048953329771866389066743170090203250927510926069037801825398141427612717683499426752452106351465830797036241553378116638138438134953156576997052285316015548504529544244038723450984414387002732227037722409555217270363264296411105024756913035284821624915116645026920522844913542684370101230008936069957454390391374004943508068057576690446949871670915026926573351719041090413610764914046260322527345283212919153683667565318478428703437689371731152272428390087459456400538328063660155241719320516518482387404084144488665398092531915465897866788769695755328790456158468277836460183888017756169860661221137094267528112440133193929342831066712783187401613416575867943616102818033139276917790016267642347931250820012785792324700365788490548961828030616389914094730759764000683848774322934761997435518449646603337643034761131833719326858920534459838261163510363232443667150009119157300681689538103899440621194802466995679183587631229446433206780855131896238070634113951877055296154761866887965726326283295516930190912158266958387743624043708506580338001741295949558264647064553498417164207642718635419162965012273090907015156402485001854267011524532946596990001364562828756445887172190131827351943583477657440120988943853673255557268975795892771589110758747467333862087767733951500094446043543817127096697056855515422868333677839537797796683529812683507612741743561148170208881890368190546019262085035951525048261198606218327484813124828270755347262081962929644105930247533544275419549857184392847997064666597387678536771772953588930677907849406864263053746924965814485512961420761026971583299697276851852463098816103581925993558651404119570677596790534187417436675564381542245902454328759756788932823656278704130136369562307571775910083350505611327857653008150170355629138907018229559586268248715391885451333186321188931861854855089263831396947501890146150355837507292101213794869684995795265535355136816978736599483679762398962152499066465548282495565141513258374738096123287377805628188862578001588934827418551537643406150418825369942693032083652951740269950660271376532358717179788084510069382899763172745645723939447098798316569917243880488347319388710072751343380781752765060521096665974239188570267450913568605973394509040927080858317948256105634284374269918963642025272241075399383607006902971543300259215220535619326392666241025920962458241486361496741983661679258213735252958041936577631515318709010061845090670411113312273450372649404002553700503545135947297631032617387609001181524845091365443964515220870198960242498253946151249092064198979512970990624628931055974051984645635995067934563560038615859178600055144210222062913312069061375068723417561229035135606051125576123898843132545440687351414091096278869349650057998963530021657895577441358910084385543848807338626365449690366599074142906897572785158399267205224178653149451721032788049486684547022966638434155847520418352039500461130158902802101668471716767167969564556129504828018235691700699371793757200634127199050120606902974449962402846935086194445734858777072559719494940667247818030799329122455010091038405173855760320347501758942793104861616986427816071592885680504557738522162933627736225147389070241041674298641439633554077508773333980074938493579254006263598147640406743857860600478208821836985610696911184778769586199101672657930212964528399730812192762544365567064340420449425395624870151168043183518868345943187783466342559883903378736697207785859993447890798559202525198028753934413230009639019638230635469888471479508346282908624842596187573759730251690817076081501980309908842618000161921631441286033418232551015957871246042272045368870887948540410586206925370677365064801647714878824916088934595627839350747359215258048690598622523710966784151114385854704022703572098364795575675885564370198904117379042655560101371643011863642825832411885309897554979888856832532006012979807332336823712093837521043877060799669321865491242179675933806380216835984178820963785944480454167025303877319014296065942122829382810154665632389095209749733893471934706165270290403820952500823020104576023632368811638457292874936822366426685321639446324330056868856404505097326148139296722072499438535321048249983706652197673369466492943082167165585749229470262843751038098010511117295606602778253448560649201420650324486050250426762360864549707871573476021423974059377603782117870279646654887769630360424167215471658580949084280156246483370260475667852976826155579483315135166874732082555952585091661940613576685860463223959797029435115715734157239825665081601672113896647376650713120878697645433384301549818582055225806695167255653019543550512430219317394754150093300522172920270952928713528997486685492824914367299092904116896911636315182346493909111600566831933414155759453922960787862922009121753741206415462532372534324016135227540674635296353272502646100449360525451954875151018315723207455227856450048944098679399875422708943887919526238446292381815565694359863032188130162867155073640373242731107445281696069488625261975050666828606654894233727014875977738158356608277353287869892837549758331683465379139967818900478538622825561132498672358373963034574961846713246762904024609504639693982211948633720454605772564839557091127401777486088699564536011419666313936383199765097313371728619353391154497525661341130031645992739825125889467678739251490398687356910741146099769563105641210445494984143701550479122114038524337748658604323203483974596084440332808072367771346521321047023346610664405625080304260492687940223016333153261485356511302039369541876545532996046877814693410067760785313617807786897323230509914881958145524430914068375629939095762471772526468168308269647355172002522583930187607396721442884160669520892679400830383574873827909110412088967854635289150616408957983960755534560113365095516101091825627348129070150289220303510688584490529217338894349593608869000826241148592792489537679213816621041383829568033915672627390709303818940761881022342650155996924438193587533492606215623190850442018638252033604649223918125365773288540284875606353646009288186994220778144064552634794819600131881760359493967910059761886688078410156695487177014592736242987860082619716816389219727425305409498572778866527935733588791244644549530259891023923179194074294707256830269691611082861660411443844328065656757212039878360206477506898851492306500391722820527327249192972365796053146112889852358441932308461581649188786033477533303938175175870393429877411244509273369298294529956830861583288291178117658427579564454271492316763162285003928018405474219335684631446542667185061773990980833894213053663815606119448604522011222209187336466577715473760729475391039251530874379882630741161360677789296255299619759118910045707250390227844686230331980637284348814464076463338159505672086481381983240178026769218538050227053291406947159666659647825785058016435288890924167101019459802887882810301712952450179666176422008397723585875208470558447784654065627270469372114131506508620874196366973957488407086288610845185142479416596474863552276682185277528710467092796605733072696573304512077512163764198836147087056000322766247424368714476324224163690503292697651944569272813840702097702430407310436373681812399379720622054159722307049183515431197031694870773853781752055011876792585389736778957771738410793296232424219055400515588682828798513851020541121032086418651051535826384064738485934413912714276370360895666707666705820528235387947745851314412590114380563964860355646329636158181831378649883486699955213912500329498666475704338762593461375759301375829846767222643023004389015025441771847379045306026046793238027966985634834424239903479291051563233038452032439124830249286659811448671184634109513164004440321760386287183522847365628724951179126738009055968654572493466057708179036039547910531700836054752060090191960318171822611423749675114459788936676814090519897682695604473121640666299718740386907089153324521319548093656175022750045297069078293004042881870155934565326366914805780761764931947129564845126208218833476448525271006154953391790953985560893468705283825777640402244481767010034784490074390223906695260996177617860983038182770321293193753936554280824833349043704771617049679602805949403307125917653507987742784791969255620597636928023955034492279173639599941266483418802867869599630093385229138361995657327878823755541210021678480956925625204256606975148463885208850930094556245029171068719959737468529914135738213409864681513867423270163944373010320175928883496994314945742066852118548318542561975703246738838895847726157899531482373926539100440641680256823309376160236653718206921309042331954485764763231419539249129307846667063205670568218902995150769751414619861920482317679420929834001111856560810697761560153124786163883470557334580191281649767194327497231844260254127899340615307467072426076625960323846062778637260947164960139821212287142462317789056872222693268286175932907328994662833704264888721153792466713563549871435268819932909228454588001101761199633445169234123620803503556132853612825179819577049293321456508398146579143586440161992712810111632031706467430670829438296205809712454060593611993689518947396654599274833698943144236619888152268236739429018414761086483406425680525238302078591311549269261276381713414125186979921387342097806162480892285871425688863298465938970066799384746727228686878431908722530409094479084239422905326815432046160846342787202768803714741504040575467817250155492271474193884645037378791606964862776695620718030509313322853030598249866362874254596221716465695384384970870225233739937716074598876966850426548088734075969742724724914604142600197860201206829910541723083254303743002771165813569202132909445105864617753199641729499861950891546541286760759767759339407501768141240985401032217489018238375559042938834422401825965970522557245499233491391990314810194214614097321449310619535159746613157483062828605431555043399399161466749046901586237018818237637347499964620959123065758964320385008446460597312355104555943485366167280027115983532473029067532538546728850529550370479507099315304454415572877131233076153885620890226388025167662371335763627976580105538600385909007708238716068203116884645551248159717305713423059058837192297141388774414533739897294302518641051728363825505939298875993360132688684664239897224796857616105836621734758708513454349270448203026811125433402497095469449685881969731640788671128196463935937416835472603941628648559977126367902665119737350049184420172681573512499000264471433568619941076535558734915035508814324541380371497964911785319193257721517435476609335840319371754077169293268967545904769205118419078061018532013629184403305860681505547317372628017311438323800904185973755487173140358010072842532984190502800139748285757067844386635928199415821796825996277004411148249796479905100428879443515829451168817220738384023060650730072341381887942402635446023966430613850335033983403670562156885993263593089399872144937023614708395084693482745239144978250967904962627266508460432913571218897099736561091960281834271625537735664180045049212536079461680423676747207590195146796958799386329870746255798663562835296401397557895388182133832128146373448221501020536569871397209415008232472768736819610400121201108594929925695655263604250238703062579682763071532738719753225461719386770282665604129737543917521092021353922731703024668048507114916162576600611677509089337637214774035906928308538940380438114133513283051370051159203852686997887862337531157319612519561217329305957108728152877488380153248714973336899134414373610873289315839029649160876767727436961142797186002943485070730297772858729447347025375244325298010782490086653884089381718050387597797666286849983475447303339710704954522570910778763835108831666735750159578137117939050243789186702914299754139652436801344813194633610818857993502926663524724945518948418280711796387812364533454799288737097653286846912107698155403881010221391406594760146164036274618313357010478159482801320201997014874576016419629693453776629374385763204943244239557651554062515626945891262128849454415203469993387105548227117575774260351102639631725410744550967877206694926154217348582772400664883648711039985895523592886582247670972239207521918768433330282673381301959106346782753475826059445390416293547311638678654131830422473982878842434831896262219478608781199931116221942961225993443382914921631202919347802118863360942251877942891649303555070204391387288902290932040423456492484050089240069595966903929432431749910026965725079786289463526976722484003410723754409828302812310896978463305293898573624116349234714412965901891299461584477301653687514385956714828260443027558952307908730871344991065825605945480683361638152762530170644910027861138120940796755957626508627400230909847766633764792354066387280042766690201635770960558322581035000322541562017599257730544521169599746778289034672042385324929349910155259043573002963758526247297172096200529657161963488691467952088058099848460449156080843925684019857724427773415726379600274312837889892105915623979058187016819077604908434845107577108885079286632553204367896217580096599425615310127584890979779901436456636760263500219099369119793053187759022334480733932300243739466152677395816546591318027092125455414758315259138024646140954268498638021963221659091170096630875697123174888514493081820060637499766460620215729018240331190599915494530200501126990459203682200978277582192565630673429842778541646516724593787581247363984758868117856734602784805380184970142013872270478724055850006732548951472491274896787862672756998195619915965925802484061960353102060880556477174802417270551858691494051945519858337078539855509297212044896188514035258160263718223828906744113182621326612814227070370451901884654757531166827264980714752622867876777170435269494175967815442709619100647111110905184441868451216502446506831810063324564554123048861299748937435420784494071089352136873053250564184705361622594306879680044495046950995080260823692214312078089787157300378011885657964074556611957525105594009665086576973796228715909371490944046991620787415964633501115536344398796068268925051787713057622254772079649706677137583923727360950600212759877968569587279930580626851572998975767949158634428383710193741425169367038828958575769585682594001111132357846126259884295654602023574766378764171073625782324699324357094637403839380554739095908104660986039306087869483875996413065681655793371466804662137479622031215644182990768643109417974607643076663041899450422917749031322959226862718234683183195415689423801100428934178528773404791480410413228396835270836047937736788720147544485880968814666767305764228508288821084203260550798655457261754299247317715102048369072808274784654688916874508089192676419009605294421762195544023759694410232609751785322348058464042974706259672912581576673879239666728221514669263321798879926822856623805740098395041123931821669730474941959651315314981011711864469321070960476248014821603576780919387666418780614338516968242870773433481156650284538142064368211289422904502938809410955323211426091786084980142225359701473488600969291604084556182141596382344556066472940163646034847540594124435068372342940033783426736434106941029239274742353710085587292721594565253474869120469749105184172846490579187884369842238957617927012527999030915906821189002080052297934191704385813592804142896531540892426670522004329752496373025984207928290074011859862854209998991485928215572896215820685813280069635076921199234047445758238206364708341289328942004909766636741966476331264187793101758636749624075996161369558085809717117631668366809175878633792320915993210328447871294958229327837536991713429528852804556943293196209821395771975210402455087028910384700137556066857614900135858562002540940289717247864393090893930043621162580216073771025010242073138449383417427868294351667535002765916943250308894619485973726369929479181742479942349885571257400141240024412161717838409773308181630420835664359266960293363473535613232759921318838749114578195688099578579128933615521479126926811750739235509410749540938401821923684221759096574407740182555232210364004605535773144790857892394033320035686062114843011049358527358637450857171254061561938960145192675597303679998291837701417609384085216040505644576424684221660511732000587708367878688466762608139310149721183645944289345333409587040899309155719287876799075033185286733176558574373298728030813738279044055051563310016511737717913798804059289405055734709277472258503380340585200054714002506482690410442688432985121803602534895489739681349743192734285413436884124614310198860844852191480788543792634324059625292556050183000710630789125658615607709884883139160463731050647280528491246532025927223950089359499108510685832747747201168699408332306881261707306439131369967143433174459384385033263671504854150808403066711371412465092430682023716531600490912631809680525333544005833374154468411723670332043607684204944992127408161018046550099563363315858594382199137463374336415412007960820312792979397859141702964112106068520580508402860814826286461479948753004684459706116703770949124091850228677419874686344873137731669618544787421178871797075886384522049163265373848233799413847381898090843219551931086355192732345860884893433695566196258685429985018598455218900556517850846886697692614083358095408361361772838756878097381290260998481668026072351101372627554673868118053176897782478609275108733025552700696986726082049164529083749933468874596279399658819796490481036476508149731430918644433245614855259680979544180474126851943147449902076850253942606826352196862037723615542710670497580003069981895275193283614109367664899460829920960855696727222451187773689397907626680573286098373122208019919217298655417795783136950285807878234322574037455217679119982389423471753305658530370867947471042531926675103494514001490126760713675739600734953326008330816518394129984226024422073735046281370428665272049182950279447455011583019130029344814323377068171342007717845120461526546723397252141964641330384058839050185349859017067283776362545974740146692585023621637648554723284439337357466178442729891720543769215750606488666480630189309710316246225264809896840145130549726098928015164338206289933313514656055502941267910162044331285679749037286665996119594533302169664895532337682836119286833202688272170553115329367480185014256903166882731620117162608359785106639959922438146427029021766954821489875208786602752803225034742461576482480671332543845825545234821206114943607830815578225849134096928907208588136125824692889989923469053270752501114517850692074693201187619973550669952815656710914999719868404649663347260310637827781474207216448125781373851986544716389074374566673505050540285201824859205869437194800760651922722825116403691149705763759680596419576893879796307597820078974138727050919335365388651813693816638140964647266644736372634542721135322943144799642463376145758022929174514115991521421266229640987915014889787271518175992031359311981528581136808770960646137194574926256183491540883878913486430139195043175037908073422592753875127161739261420897684896932071260506061581768635348926528535622706355601179945896411880008642649685821025655476059757123837657488918946455828804836703213108479512249404809338436942045315074891506501362063640647267005536470625993018002225831172141894828384909233295237702574605237735849197669608570771555718909075808308849353869746623479824272061888705151460448281496250891575081083624169415367164868994356084699565811812722848354070913610606979694616400268053559234739281519701077336857903151913229106618155958781979975658238996968412393633287954919420620623566745436325231828989397997008869393235346564040042509224061810115903584211102353812458861406365673623065210262568934692274656191575147329280210523439783028047555140850028186509585277195906452040837460901338425179809907669014968300463760374343479291487027218032034479982946963054830859877799383525624936540177573836051411799012024281860733589770061559046924309436144288526167018699109551131572306690724335499180785242328919730724299288709889687111164745906958638047293673437330554985411082822223231320006753119368844192898662795369466274709916794708315390880240072904867197466621033755792473089526712367694930947028179730171965099890723660873806771282204922774110247466381777571817242732995263521660021390043300448537954521983863949966147642212151078243341679863881431177104244818732831886297963689638773327216290537837399277666604413793758000095193672969579383659354543824171648511812818528581206495194473267325990906783350167196346421815883148573474946002779338983692002677347129199215372083460907743156629226507235409440025143594615227587247516644791288861660307501090152147666641913013177390123251269192880747581240699822304900244297850459096146651201799193486468104016366278151292026390934532861396162863103636777106780172013764326747053784538573689233872864769874269266915961244471454067988542372425029376145163240456014600429319412587744584495946814802645221883879952952561076589074358736678540244232311373661602677238189499514694673773219245348097394839016506009125188635435362824543686267820957883040948631767550336317414112277405939791077071382500061563821219183042877432799058757632809321893040332744169605482314003233148594593464799022850511912953467054074934509300087417045874007844221469401915815607525058892910266538278435677111194149034364862374312163386588721974524483432593563916224089886701375101429318325409349938884330517496791288129090532918042044347352206145000251606888105843400424915368893036124649919503858969460399962454053683431903820366636047780836240153976866891030567884648974381796523694706023274018530359307863018961232270639338154187864257275782414051244284925783366335188994726701918680385007587987898460070762246742282121184726143169445831201503637208634589434978773064825889104265306459674018989347835726555649700035243171959432704441288570463324582328360731970687013094466592095401241369620153966845119659308982243773345404941244554488958177525069573630461866054885149544198166021535656429805543871915759595217419409060294721710862377147769047393152421139376449234668527032710058871839956016042039228756340234667646791622917616951614677595180520866482476391197183903735317894252915685082082169087509688329651641901493898804111812887134092083899797559229343215746684276366941939211058768137255523502423408537636141544168458552223683030487567252146094383986887220748086858670940460453521524732309835611044806873379718781543739589939725960736591833726467046807608532788593156576853801879845392599419978687230480950621134741650298357907961232159044571130238889579597399530138360307995088397275201467854661944139285036912685411789082583856720272084796439005258398849006448620932457087553057283858630444572493357569485804258681343187726856884981860322894511777732165232406415093591826592286949703769472580966784863545796169817324458671700171578742533347236027938928601238471875508541670977348720894157908820782771435519467487566190729462202505958538397931385070297664919940712971537341468203564676263647362733646251136969229054121463720522361570505582736209780761269664308110176655909840394448327339683692262038460592063461363958107476221948564903854904564023519316251739441904621110306493820056475858927066699838853291421758378210915908625290768689236475916679908139731814311536780956419960044541444164487064571111520030135136629850509162134875383394729488973167067896931176933488524751143353342975418219420046248384227978772043924977055281276195180055002870281924239269957414596522024232134714896294928688760403158693647146000067724371685299982756878262152063748030657561758785543792257627930458562027984279898254308254153560771592210478427444725908313178769332601071589575538469667840725683690503343555688881115349452378455960123647388221894020894414807556356351254881335241058499882758193317871741769338670972601878066987516589721632914037942530352171790656487819436207803268844760202325142405253188457906593208709803773788900772413618574858732366265732087815914840992471135717880066093559113213937452855814043136518266352599379429887736095277902974110367269479679405296065101003674021907490676328927448414776056784936641010460532303068479360149445933006831071892120403804281720777373688084126614112587631656930871427632372164072312312575498412902130138019602995728774609958689142104208263479597523859177810800628947391848022308169555581929450661679906291566272190309552509457521951973637285716130300623406759023791649594512943005623230128014835622728834743742916371197123325986907475634642339360346836934819260897233824379910995818750748852569477649271770104430305185248825167045824218839432597153935404243934313582494672246809100321354608480169636925636380808153146905497997867563458959702575509816910972019006862530142941005768880376621940027860289421783138880544967858950159179051375172773406102439392293465586410269954871232387712978709740576553216972635282672270440603172474288473888000686541546736226167641501637010589731488838878515460625666940788634059325681829306332798973677759711309827015231655945160338691727251900532563021742215020073741644001176228101384794270627804939583687409157286014088461481296991186435394839578371569092466546222481773746118591031016520173934838128976167655712765372659550432113533559363569991788757853217551306631662136242606187577296463581095908236898279957842525801640961285659996638326360080260738640784414746099072515033819342463672714755300055944937594031401746740555738783903716154616863052682616506316435929370336160825366308546090024248140435341468212605524214530908858881550378885553835922994489311748904371211314214920796449978565802159722134707751299348520505782460203795272265630024021449519082174129946514269908707740540412719051717936318988047298320055327554503089571671338984143814482152586721257676561841066880043523946539222395143394136153346493012794193123788674719505620874361097750209079661109148638824774520030357803818908193235456777571089015778609562642233750246278544978697927403998858721883650452047987153537746857150292588466730850189135848162873564555490297977865058240852880560879946117102117786255801960881122664135957616437268501809218554068988767123008251595864046035242764043373631142475714450240792423086102304360163746331830960903193799244450432660840557141087531910794853030627247315962532283224551031812869635943294076710032696974103281064431162201728798788530364787221473342213791074913306922637749028925407185229740080111164064345141889353400460299877926702491145272663056277868291468457518965302830077604364052301057823584948935997050780394015576169300285579371463316653442541896985148891310643292545467587043947772856276772958930999185906150834097613838340852427715857090327050274962374649444641300413247438001812838227507321719775311965596690104638303966620334797399837188857073949197891703911027329919927522258354202826152102662039513722076927344293258971717945454049165182529886179902476118077477406140563194231140094614371629165699983104904263037072392780257585730494887709543457538017776430212492773055479263332392611322751382329599309118757586114621156527585102590377201304810821458343154666335567715844148979985823122981927819084847141006620072755727604182656017157080515916401176501321135412483662701919111218259888628060760790783529298651514956129211423364946334446269564188456010986247649462630331761226206638440094209675095289052313504299635818166742784564247555939260096706515616638707863592466709110424202578996310555790723816129968269624664041495267570964020340283807501502485539815837052621668721216198849600044562061622421058084274122133341134469592558078063111797912426338612820690130422651280474253589095525249795795141152018558425857807577108693941005082475126166636342720613964145244708242372927960850057321634750820027679104473049928954561039080023974820943466131292937811292861819861614374867864767294644565798296963416144000657315458348207831932338980933101627302393631361861830788953345552604411894529554063982634833352227682165033475940066498084099158587912400941555047133144662679073910716659404991050019219063152769501422354672784458924896360678241137464170388927272557993797514649396071763044035961178587606031762152606456228629728127747391582946456052512283555039533041954923844753785153584741922617183905610846374811935282293938313982755657463785986948408673062935666764066339601788136780476920532045067002139754825562445657291361602740098001125605079394971531545461528786322298678030399838274748187747119926035304004148139800426918772103273612164120804089642634208536414502284951681716679096277010418030625020076820796676045136455776344796479762023084167254734565589767094385071040482758182577520099619511621622334392280498592730285081104688499713270485510479462516545300011482442884499877502662182203428559369722335044404938938923810653244834211751999742819258127398302423661731681869872666760519687841255728953268743847287262499666440901706468452295392689420787364742262078152878145987351052711186560694318800915556537959435463572046379438297827232527392745120841032337342953139322942172427226462110565238303099643281228847371990843379616180163360784977505726053192753942188608101549182483792265712880756625970377659908156710119043669951645269431087389448202152184738211586617644622181914667433093029810013051529227290216682173482761875234062566664532133141607375602840224938264967925331061358120394852039570940193452029240002268805707300016882917730388913711798180211944383987383552141301410664834977752947300926731190311390994211882086402774715738646101788461506796794787498482197729963526663549343441536327183146354016732550817443530492855846123480491546465240435829211021500412254251232827764610846749219848604900013799110557901586932746568995648968613721391148750827530221574572832434330425496775370995781334088701186601126191959077138217887678716780817288934501590425166696456815937280393649929921969206584095403652551154852299510240430637106958617883996089953104278102213861260743983451908301185396326708054539776766779929026995574456494164442132310636930070295689901184942881144392837827864530405598456144109614623405824270689586487873960337886079793881750030733397084575665312593643997524930730340495352786300399975931817785096847725628560707128464779833202832770368909338243891250376844817420119968521501730553251449887346999400532702475793860264397864327682703244957050905907553943666621673983797236337532720292581120524069339179220079737614320796552059293230769229313157241732384241454493495771948967725818893574048244745844508716332430239594442468857525646990913391330054864787288834965076863086198361861656799072222205198255746671470334068293683715104933536701479475671786986376576548793010487044318008299618073021774778780491744743142939636738550922878115974679202792977315424954663222949831312100164154072089155153602338926276267604472855599254481648963586928650333949299233300888867125018500641801592777885135443850419197156557135297015525208354150194874932496991713947098958793499155406893717419468615825516032494572210599508122790216515112688586380155979882808942500038047697625221738053811160293786403919586697104526012537958776427819344246696962102971585794276864991848664649989098479345759956734749188011727386854469577956499096770481241157775463166279851194816368364112331390711232333615103294594456419069319733747153950773355706028093384405958135217132878437417609475724977669279713578793521068958365112171103229400281818547750232170534749895580380408610555990577914836391049427610919133075275156100467717102473947021263485839463734456923971597937197812804823744461096058054335697380006912200014931293001906307499905240461258389283427032020909513726663018309336817955839540705366961020140214435872457140812058714560256864308513538632356061725040258868748214030623481805380987940710391502807676107843336212841242520914520130742711357402955179612832597898483943780922236940238484558902908223440557561044377566088245571425853081397367772703983454365399595628104823516477204164213474187383118882695566982272879758542370702908845804009350695794033745779431050866865482528833730548240063021525384500026985995479014702930358203697952005602279112498832737698805803554791299262913607576680686154619309274413605164147236846946823867185278013472544719783715944565341819656091554266645442383887076264093415320851785663886682818152137275204869765291108661226752388884960059732902347902703021837698199820089542313834130996717440296872953292747617831248146711724442708647290778758788528637943484221522405907892606808397985851259020003966508968840661382446741763415924433294155298650868467839273669239300266781871228286851091733042056702452940129679898247634963592471582342567843002960028587162950635547677562210278871081344993428687109239661215228709226403587593309890923685288002733981423128342798143656201603335131681260443584623899284448820184032790100450447122227537768708431634201184269273448120640438026617823549125684455508886396169689055043763265690617723170601205552243477253528361817230666867993175230556200070341589254240480173792761997523472905565534697385294317772230691660176633769735619991469972816820755441018118867414234376586783927948879589594011774538848282794725523030744368186078439319068563148616474742895546490339701495566236532510488113746777395597682932893550455163885038322123155635953118184760644557624220213412212167964242525120710346272773528085838037984752081750329171233029646683660262662454647035416517295612014716871344723975662178200663397948802403645417481573838571994949995103117012538068088299645933143825536184324108324871246466487481935219142232001030065503156749303786535494146297502256460843828253037046807567204214323970171183034470494086547363488373238722892885493084490775555641600111552407271365521445588674592425427305767978025424721898649083749889867696297876585274015610316071194230710322944903556317652228759440690432175639286920185919783781221342885187332244345405008545464727227450935803018292792854608156290607215373946402310991059203357809946580582532264427688074610752282229986796927092048033870622414498446845236956970715553537727992817671991657065555046703936455942336747287778184297125341606251199609124695195033787748056927886434723776539341248927658053505877709620873721533469412602616769666693038567546565560853739579328187089082679244128931004714874152647196913696193193467535958034375795918515496855305621065772417281462704267571374662621566180585613998405031410750127375001297908571997863593074517433602173922023998800133554373232700884522973367052828362426647241302612945950049571243423753116030969225391513059011162360164628865785074310441386527468937931988286086305573715597026613805402955008914045402043540398968526102152472762520083647158167631076832451915425476169835427113823127787482291954422936605039741917375471702918758594267773063495097306773134737696820701548171372049912096502662652662006813948374316289093717792148559090575964368846096268349692243083197886269412827258701356893818649727395712348860501840247134884429130409231970565594706999770023363081957810906303433782545041755966173455576547054844612951852907928186941649297309336996767599253289739485119216932286359679443282457482174169952464339736086424564536433619914863677143643590565809452268133842098360600580009953479434680367463930433232859830910821591500358959461557828262196521943474415550899044123881235804854874489086617062446639245534470130188940780133018242396388946875089762324292370052495491032469794020883911138689414863640959053348114891190098041149039372630572169656561925838845379236772029581367721485936542108312363803555657672171155758029442311630509991664381464941252825318344502581222989208145030332735243229429748451232924387645338816697791337819069421013940509859938048495046389469337094550247894132738818828151485392929904905525661003771857839195302201593702335392941960468687334660609050756018027731088986730035064558019534365801938508240199429549929465454313115474275559064620873133450969094597898956113368572283685329568588390108881214342166675429920633265070251854647078171655126474850837661869935966581610893062039944458258381952098751136389517777683031252585631528070454852994380488840516071324608562417481727283796252632219099938594507884503238447400672859711628560175011952382836689844514294037967126517391459136117492768445695414769709114395239257980452111862948828406996555841639754179062655997272871976696156209028920541532861026900780900494811995157411303459095032190597655689106658900791740619802322220528009703237112107104434535166281083599072824285367026864517657213071056903521322474268016261144390293056354250355577763888900836888921379343278387009907022725565350729075805134574782197863935866731063940918236935359319031578467169388041316841452972376097585256751955077439368348621467252849785684543675267454228752397254934942396775866074717226506114455065881670408404217906030958578229834286704947363037422409656136563149479560360680487299269832315061446888885490292094521256147884757882467008042771040001306760849434380672900334005750235066446612882500704214995413139155167457111969669995332366333034108757054502344405956017963398000360518332057811401058152971983687061255416184155172801877899713550939109305141198084271677969461976565250219458295975861006935477302577368958812818590091522370697784084023625046323355894720136955418287133753416970404829909206740541660531033588461290079551393570498304350645913476940486594991687538156015973117710191853644541950045688152163240340223195244364760540816242062804398790825786237898291762781948352132688434948815564310338103631611893297459165282950027013191288050338939999023684817502777013149012610647822058020238826663387132599700300233035868918904607523025687626051214842239450876582139881144896640878829948568210732615435211395696870486525003858000958146145684845228767857635580400106042601787795404528248389332896126807322724346875004759885670946197826627266265464536546761716773487059633629529909959979303067144363928634210243392972307360895278945364714386375375779594327555723898361134766555190310332656043861941894774814457320851706135029959942594109784132114724075984595230400957082265148129659788942691875483183639680662874129529887866750060438368602394962845403685141358418571945737435127381668302916757088686855804937836128195322917952635240238572469765688781958803475802707431546153648022818749228446189760324081931536273697502600422464126208915010363471022992913172574920317793052462590073711384510481917292955239830612411801544364649621523656133969528694254314955495287270660158462417059117514537056503007446566895386129003461942424432680374220885464601473619373629754774921024391291904850053744614321907325892960642844598524890147002384122361046470295430577789469265721221820233587727395268579421202201049746433944571054647598761645476589531675543629470360961427307706554250807755836790896642921082491280667462191353481966215893738525269433589794491746253885923838206353204568441451115001286385197696892131198692971902792482652813490239032784776309440362915349125611140646734303567593168173289657535271140856969487052304603033600156102352712816941551617577497122780782605645529028675243377221010897973198141022950668087728267639530821834748464665386065302020393559763417848510997759055921734269442333377524410621925546761611528777261903393887483594299555174125324149792601798639220599088905233239364528482743924277826057067451448669621715419688116351653981596735760127104057933673622574394777863060631368772692054712964882120020796988202697685985131148923591879372351071333951808667873993288485581142488048791204840778174940731326552923393703193341749199322671577788169677708590285792058127498061740438713783149034075495041604481638452163391255343998433749749363783907864074237759834903926055123309623430208202520937239476216915747478824120151401406936334794395540846269249888655650760421219274608512567865645533067325082688728480498195751747050209470200753331933165019960038258793357956524462192400743700615823472846074305465645621119786744847040369765428623987871083521647945558074453765750420131652293267873523491766761689931601473414977814253435331907429116724870829346931844505068117868037350133772901928639706617883571123717119296084598549887593960177706086382099963682690684112694096347514526088489504289221272663409386389231103389104040543884713406815747280600186929501558277548287015945850417714691505363790874556427989662423835286857226947808891097039301374635520053928012487003734766711340269074722487002885841431495908946843444876246544705702804914105129485682303000415548401149546696511134796724707904701480261916368406752204726785068167084612751227722350485978620655344670965512001858881200115362419803899160917407412155371865711291486038660884397483042751907833254935322526795272123729901420296456519527302788054784389512322061578898277169080614744560775720547450949842968479050613236882183892966302436971584304699222581886755761147769516961229908978154865415406448874268653450917952686504784028014434043852413689399547150945033175433003207017367920493688332020757459773951862940789458756713261598508163284056321615560991807563008958265214949617190648270049805322468545167908496410087485154671316558923446979511986882877165719581194554440961419155534455307209711248099280315523751209424547639353594914734930240890523576427844075182445057794911009388256091989657936239012725829317040526939951977728832778732571782528771763971102675928381491465618218776530666388508378103269988024318495908578856893892791982063477772161585676742701677754408395005265983905708741623704412323276888141986097669129972389981176715251370772878960979322169048762787830770768957520369250482469809608264954080763913350201331007216755877344614580368508139038429182759222826394567887800961098088231383407459697113305973836872899567571618815821870990171612671045913543572795918808280439427910644492887416163653024936350474744894345618635376831620702537212698215686220913604643373206665527171934192788920610695212705216493119904732379169408788425000350130600096326421024580178214834566150212011579119707768723952795490223652867434378110893868145055472145392216781450516548117348572715012482108323084174358082509139112581801834713469484792972590547022668394678532093876530001687283894090072565960497538635015791315217716936840468645090748857283110968275048746839136508184829530407937129917459231688197386996797319821597166264497117612503568796317524820494410736102969150204049949792197642580417488342829304663566093726650418864950081144581351938285105882863078807685857718520571747013574276778428467399991107628937527329355803368049093619148577295146555537655563852539581041828893827363977137648093021662096586250689459155518068131968293567382171069733054737169018372798174725363958849408664923307992667943291041573496337865380635129824084797012249442353268938619272006989221978287352149756712843806959211233949124606039785084001470324219492012212838105680408097371595077468719062981812938609818526602007584448566260120053407545707009183204592749026070745313913686497436612183471249568598480963610604709523718151319617288488904610690791180164933553699208756158774879708602501214204431562849074240096678880976988763564828112365951387149439419634188332782762686476079640127217923870323541270467927007338722838359320306458338589586480909320502674146509793512633442961199760676159705155821497682361339978811859034458956544671800323394687030514698551854665712550899189660179911258874023898650245446463686064896988175948781353238496088849223100081594898484606241640942182797931789306069310760951332005727580373086521241887282941185933238879985073931158579377856603236741824380493434552191145093845433885541864508933481592488406250122712988275929779979176981212259296244400506864499372762842915932649323197601531683485482759559170454347393131330996546322337273962596717983242689959913035106218509353055529846287624421378196572778408709480929836804803028005463989769852093736734495974484836052056025145304417691426532021579932692205247384313526657189016657423159309698010209562283646753698198729676531576914663494324092981280740741964814479885878210269412118519082053582266303637822161268084530485514765801066069340133971481285246704082450026238089938965208159772678968743056521354971492203930239671675119494878316943666642906665551819102422685477443768212051884714835080622262558910617173690841025984873980100952161607382862137647114478749262921818800238913013088465011499976034154983772666676472243487857057620824921270141831529288322154393581185525991191092448806091651819221154542283910536991140942073118865352918758566134330063638195125682699779680808227550541327699359787656292222824701386116793846686238275191184587776645527775793359481207526721156189729333542570813768869020699139646949639505106666689608090072209709760988695296151447258324303075313067355695279595852639900105163660185450062094114249468065928030405004784115946612847751853777604374409986123096287162679441602420187150799977340334977037492267867419919470730773903672300033181487248520456431133154373681652120247670722562930812336111908882764854108968899616746376311124519329571692126292484620790257287417706804849806502507296597223484215371533509060437302147430131679616231762885123958729591514411437810696622921645972581811080082029245028939128445556482252760006587699373167166658925052534893117162282641854962533202100132233655881464072814009526808177713533459933582104633844704115853246072094418336774371055784233364033223165045328010573115824784188374849088621444753047496736074224453515952015111037085488346889962398310322723968147051926218796242076321285115165909829022463511944252732486923509782462151364650489032492327293938431780532469026439131472991721290182605201343149993869556684788368822359357489329538234140455245906727119983102196814366491968823054639144964046462219808720775883947859869349766624203128488410060788497577287638072094415276604970532248774562144689693618475295728609468398225418904231836372764313454146892965306984077896521666436541555926478853257874691522937002184323824287881872455046256950554887343038912053272217859980215091338957448368704821211006217283509740749565895655320446385173328835754427824785338266207282837697476663856424023911851277774676016088441674768859673870560473409604470264672931883202954166362218394504598423586438847481987048266706577573747432861798112117206395924531872027515097786008220618063032275890842300552543977672620796174303631095243664938801485008112465935117915432165022999666006114281375133659273125297728526369467754661966871355635207523145972668379279488610180037392800641794222363079270329295191655334091781603192221237674482436387417412291726104563573810346200552920912520137902525163274357634886104749470357094102171496357979247806294700292887818246611783903048316875122447957169006911065684225183106191950882572340977941669555207353443765027494233877103293230264674838021778650710519940993553051909359262260747826951654423381654389074185220806790854759475854264342935271406281435987491064173591615880224934266575089584481488221112859360845008293676647933060161822745310652016479641924768063792859669425064786407608851857064459983205334406252886072466487950192984537693539291355613882810326637974925327323060605639448297597016485280818978309547345186191380629765035045656898682762902447507158561847187082882005549460339715385043128141159080865534947688563148279069381429226958714232503982798290115747008040236738408624288360494456747740400510757176549107474893429867221359774581863812353066631942347227769879755306970535589794692398793271415340730258046633083185358903249417139725045938845910436495594868309706506891971239295825629221419862985831250695056715370926523290139516617457360323755226279792596140928256835747876640954070161883891140735006545562446775001675039993037158861523859369063820887067558044464731785212838276409220954940357490021071025147060854944939213197457057207381343410534118971393869175283876257588721257194482957020380652625907197868726656679478921815211921043579494827868670635973357547301283799076086903857296600833997035755828478573048578002256428066973895666647801759398014267837981562544869488325708606411828370352192171955001560590785928448235418648894489078732741294572302611163132615031294920019131226628449808379003594541743911338283820664438753565334442259107281143956763274072153629758978917042817175592264877892133959982880870774293846442889251780258989708790387849682505231251344194680399952445290520127225554051293036529916125729225321832996338481777081452200538297042619422752155784989310172930426286087724322406956399388596321895105766632629406364810702478868251857247526248833057903737115215187321964945572166663426038383985840739080989682570731347206621249034202792701453658420987456469099349369215847573845554667207018859542487468269157545782950528726670563981986197854190286954185606302600277658630835267876785076173670344370093429833415489179440056533010824710751272356522614942908854770076355201667562195024940119571162833158962202163658322411499858995158621162436909973809364506976961761607440219304788192250744746368832693429544148493091661659130743075431998769437570549467443210331674709468997428531494554899535386410458836139557385930692411928821730732616212892600640123012428075896109438846651517767393435562593931602177031394262933940132206353092212231040045932256188942379441143718161196622750255483512442939736675936095049543078280742626279276466692998001445931645704223401278380976825512410917502433596540854960071529956026456070373574045997387138471107768207256480494609169205939544976328019754056427463938932924696762689392537694384861881827056504144979643655105630371551178020285493115347264397000827980496131126050692925225448822502881216460984959785537692644277443031006046498335158869147132349493900017854172434914368447425579348294632570826664480199474825456272432000148497374201850456912548592589408604969496507824093311790219440426486189941870853585644535445023856663885436521701870774632868757566951044922192050830172797112387392675731894187731124930309563367882550191264695230660934217248153325377352255340365560511853335192844258368542366555508568915204232842831127055075504765281147613592540127977387385712832528672572701265112616925884410805767435338508489121241095139977413236858030960437931659373193085719562462370167148607771479331526845377799160903832856971309388119764729736527373170168741627123247661846042313199495801866174064715464433450648439618399851218883723335416781920004272999506129758337957626865558748024877688670125282494979816224660862801665358394306587260567457449408984462742130901332692525735831307579354301945473822517078100085234534174112117667419212994279684441680218718047707488749858724173715811452236750472841654003529287354722580866394321666631181324578825509695936271323922576595770380412943603249111134070154271799638630777189379129884710785347611721602732524608636867817342686336786592673278461402175786501928258780026342984761383589375425385494900180291438239568334720346884206097460348777513463417351671207060470629518148871641224057753266955748245267978883809265747684239613627480107380885610505418292251221957002587085847147239936930627567911570450587597393710127180803364178989305231277770802898480658996151612205959738166197296520180448936698934984969905978192857245955283581271665165045304081857889040126351081433201604871753370832625686260471162239790896924958102858083380680740605695740948992978418515969673314877113190254995162081378688904828077358356838252683157035980392973756529047553319358007347748785061262393508054846357727723480539632879037589712652316013790773874366872687563448060531662850213527623777034146420697326637827217273330385154896634635324937628183185266401889334678981498619141714871817900089090138077945329983897130105096713455101396297440524997367269823118758944767052629650542466051902416186633672610283262990542649933862662009847643607461396463223919159369826527963583515705424992479836142432711385214365529365661286006720284053671277958000896075909152168959847431747452009637211636874286260467862293507848474821788150731498079174818035140411549754836465326286526385278687459067122481111366603381409906418405575277325149346559819567602807309179058552098284781965837434915918803884285247488116837546512728272479870425973699627719716515074892042590484840550742808647382556778912024143641944060031202041221797287611919466273902472550773144704130130416315464402735525134656474568754388972907047282059103672569330098967689932619773549796917560845023871310997512439596911418127254841509463312967620673317818219365150519970320705001343995621589869838755897967547348467628014483551674521497320571872355175438176008697178482427728774087375240339204290882812796309642001915226659533772972830156507800050688034101224720954212763846422333966755688803442903675654826671093629709798142672193157239025110471667270739793737110077053440308647508173657842294466491377848402309478292244301807143917432046777611899789833507388404998239899725166326065149912440925929293651034522708554002237126747464547887372687383500780179442924996781104848021205510636147304071555839137188160255564473138762277145872010954569513888404855175134287671335917502048404632608442437170370647744965483267283093065763039769943543344984528976847769704649523884522812622432126415672749976732168065945344340956566543823684467636903103035955050594976751288168781986259329066763962430961173665358465269313396681272609258497574762981827885158606713316057192228083913684477767631052825267679054953252097875308311577386246501593740588934959588919044113938968822500947444863685076084392001853673077240145003962563610330315060595584980829222868977116455701495079158508894883547837729762108938760369379066440089336695139843711786668104523333347423226302948318970816985263826230009234105992733408705868922646272635021567540111893871862718079370003441248709831866011451905497532594216906095306321170654809685309710964254001194769562471256202739404879533689728692539368959484676185581330593009903707413559724585269227211115560625113479415798313336779781562071372002572084988806947402445637136063071342209944425631355312074501020030226052148805677470269149176953297920488483370085763172613464088025528649484864174940090512437431722610660694914041571842847589157845555799053690391132298675029240745695509257877214118904784891127065760743529890017924363509349014664408551772060480502451644680713205403832155858426608146094623296135151919246286607456365175370736756884738783938223570553595437799253201593741650647000052717475945929270997861526643599572454796094309591375694376906130599579512851580459791313950357122804263597864462948750381833361564308631345160598067812647240947226477602620832094362524928674175059376577748024486083595770400107958380468505650184109572184147137259642677785837204119203205619719114552710030072004034642658319028823893200999416052842048077033352628820624739118286088496480557206870309154667741113341217194691166838874084697914348205344034426079891818077182807096690150627289580270820504899898648567785859508504109332654285013500868327709343614696703970580937316127444679866271797845739007147657968298666938897500239858135047518556147845576427016507807367724144362563485733586274298179172631463698058956269296419856262106170309094034487701511852081421257480208516054733518527160841865015817409026238160589264090618184736696017246893415622607588523647588751991583208701529005156317649810404082866870947310111424088859609461114027953729888801416772193921747133632538694301535029201363997232016188799081415745515760440193953731468712649168962160786327912501626406988849453621954334923071515836572312469425007494348003550790387395558144224869111381084209849096798825897240931533990419945576074684816071525180444165938902382431292862672027986062537347183623474416699707600687491469476487754730742567112342239616740365120709060954679402757471304428448447278273636162545406553400917775334270846815044576107012617302913892847492653859124713659794426997998490882989955288657425219018336197844671824776842583214069507206876033102765297283197524134065180643639239982540705527135205424920770264216619648568027946487401047377409356761141698470060906107719174541359820326028736813709557985231499957097572426238144979741331183472816869333652388677954268767507786141674889892111218078767426457558106320764862893697253517149992300187761999928154774143183323608002030049651725663284180538833735576897325823700194925563097173379046445014323042599027901052230935559814431575509631846250924425380947478881738906702878271846047097383904418476787455397652175226788873274699354549292453793248282334663544293268568981796690210408190026352610398780288310339000037975642503607479570559251468176381073709672170206632011251597844751547675131848203591786624207417911907016380343609957295227650715288866124173600993504177556256093843703903705314026580799098573798187094913239930378899831620385269543756538346014094756198890403653843713480340582238813091329088814761360232949531339575136014612547828993093581691777588913678947450160971742701479715569872555057070008016430691542352005016371447544400788954227804129325481165802535202038193067379115571128541736919144467405021843524402256349491075328430912288945662740047741077132685222516058447010111047696520612158598523727394952862277320893709442886586041679790641868468209324322521237265926781136639746120556171614455453742706621161724471755336399833399462767251714572011730676738876614184090938586430088918409424281360602132707438583196516914738170735366860485226273009755992899301411991320432448032945940653039021387216929090070233269959490794588788145986329226325625300200314174479624434466232754640819044315714169711434194220411535423317429026491080131336935391582656658349975307952598812418837958352254349601785939096767719617755759868761555656433046607168359454608235379061888554480341926726925636773622772627455425938924627357388550228988746482034255511398030761617308654337575637019674112534056021485655885512121201449752287393619482297219317028935044849287291864200806597643257614120824889347443248952243365309076745641136449116946074084432421196409399891720275936633989594136944923353735923182692967429968635209774109101649223060138874905791936341525147982553149516069578706717473811615509388615232706045887664794869403449011482897482637681852064306971478458061403915218496965340017243182733427565971375472394803093750901033786749000526558627549296000664946078804490338266872519269434624638896993576229948093867870383363644814455927180156657816251916132936759319087555416708671949660262507804922742221890090055670249186015050840938964644213344677231532702119132199984120835787976064691725229245730696210542123329232263394345799589445875227630766549057155114637522216016826352608036572290546995532995395490593985718804020233193379401187982069019551642727018828029067079612142280565892727505706140933938772520529573364569004519904069808625926457874014965499829775258541046845134172976678465171995374432327793004152142724917319044389488126390851040718994661585788451700333694904592883653325094344780360187633472103807379437814111025478093731973962452659792832044681149621302416507374721209890336787413860186350694188911174544193207234587070995281318347606374599570822351746083266580120162508022349772401197183277487777734254134073131410895813528379734296023342952978407147833207172426643560172180399164323884254351800452701462541823826655359246594110934265010307148813697633529486180365096868587462423445339101527648260386754349641501571182996277392502293612900628777524806774355516813028484601385283326239641470641365502565056342437592787994013374418311386118323468183750105034616744901106685070539743889163450359002706769888330811201256347251588245033192413186305453592261229009519768125782193339307192557832900006335300682181582400260760868565583558640908787528217359653639539153246222491076465870774255918404789271210679801190490131434747316145430182629148874706833871609832993276468466690406425270263294260118609914238817731459351070981809119926660548853050117283674769622785767960129560634389734654532137484801241575854596072663230344927205861080870185563621841590256323054856693537179781640503967309592401826200371034633395470911940528609862763070615438955737260453933624691369318146243659277528149814484051317618911165480666356122791607593733079025063977483743932676806932687396892666571432766864797967404135052445145153146850928941491898457454563655819125108738102146486886802635685766519043728328249370256544448922210822732053461732429626163722709892199380373570305006542601678850527713727055827538687463693302548336382087345164100766906460818052678400653355165791037190831598009561622771155180836982007205370998831369385632728826262875155559950347338518176989855694696694085989579596086011332990709688557570185657279509319340686551441854752709374174913781921604637857439487814790084539428311258859341361662650010385501781582879362959332222156457178361387455862323583420832778882215244349885762100808118119952103965404190593149587957492284761722147581212681245221498745448570181285324718655189609209303576282422330367930682792896338522626552740905991667624875803205262959366283902274619976032062950953827339459910281138355266339678026973100034203940623374733329779656851638785062635955821906239087454555495914223315581878461148304740839352249836440177386773229755955048732698928796255188416699577219957158727877291344636132921772568038050192466752568045198509155813797441095369737944619211509927739853372887603411777908840072587331535539387118792527078632373135871890645295833064703048189374500986604884668849996401450446168614403318001600827802255071417591709877858651273033549651200349260447304250070182899589688883186166724980550488165357205986084354796639312430024001526561066055021455162822752279641615705738882532276560517180793610202386581737175456539143312187030133601832391842765045779670158854461423566574232781320632501632189115512700075159197832889988404214734146426787464314352493238325518739361669405423278687882543400892463512386078865342976370279416345332709964436432395185948092361479059937728060954154784217643862172841781473538963868285120694353750470675641934601232208301908769892223723578217843520723234001885261857600393043862522892758595313161664562486965596784241558801346489177985149148213113486250805028292415283570337840516556157660296572746454097066527754280364307274677712021482916049287259960874623981242286900794448441667854613875538397026508809041780584215065479043748742187319239599093713177567679343392940551854462291327593960621752425186093794344001899143217801122571033121677151667603821928670236228546557213793288523784451595628469443672750054019299572415015937195609878093070618630904490442520680511033766274397107430977826883244795959305401871121358031247738194545041546311559368297696316508373769826832597450891916513039765810305950140714515426105378014527065487606840799068463782442341519572677081273232572772567796356826841800213059826937744243939468139319910986150408781037226530086673389707477170630502591422434236111380775449773819911183236621736592973544021701321277702556224771185885102226743115981726282492564783087585243549705380191564240909032713427009737552401200910347988248753620297775604421526430091134967800597121213674188851320628910991480198110372935958642540470062108794867351705837142181710727992253175723758342632855568821250510122255478106395766137329836739504077727262212229248575507394209601639737126996660660984693135745267066279239551147385005916128829203011296233669894825383957988049302442248399678891411874606391388205649873824004127869484300479406762132147271844731856269414944493907675555871184497852025682574314595251041851987399781732490381577341132523632631079547584483701775259785245608212972188437947937768074645760155992571630918871907969766447521649474829232408812254338484072751578267457184428170114198951596188564222376887514135246813236020678191716698804709202318255355918801540211142287611410850865701787029421612122679411862676447726596555108272499466993736486600918254269381971261813061235271013028951962202208957063040781192794132793907094987940226550821903694979167609480432444633167412938020599836748801884624166700841836678366090265030803565079870001756425759875374052054850077806930634669276612111015189624993078857832236922064755378859521043942848036546381324316234886524367303146261191562748622332516641949688253670342359466172070641021671339409912195526498656235046560670012929723924028074949653416001571565935141420530436270026897292034855554442191925041649266484107967157214592803715157139232878951619154565204784893766835068439685069545680594715359568158398177942311266915413447947294399821493390988421333891007037441252276585866890908052225023043486359942957620284835594443202645630108859937512100804690303099742017729312187920330503984509801805713894646303649859384122185788072854117313260022801376712799494260200272550237590476493566280671485451593757850775778154620324997878901589828778028237691215945723956769293476450493887094388065420214937343602278385018330774315225497760974850066816077891969285626237045962458271173356396323899517974099529421316166970137102094518374571171756616772195887951708732204498703449332754507732445480584097462723539912363770006900269098847433010788190544052700115020588013394317198048035146193795976218855058477653606782029229812081070472025292241573413101122688623239082638313286225604685573139014232553121673549175137154297698640761867513272330559323899819241429507787069440698054637860172074109455436773245104189925508319043962654333272333850016472425108014695322991319615998480440902452350549200856598557593641983410096607252136974685532427851276018289298591968741117173169393233206706501615217715431404425969525592980738628484497819308364446768378770915942462980014063310200210241650896453008790816726366383656823345312276022238972494558731149587644393049035244693663262126458294986379325609667220006011170036732726334290431902019765442274063588898181193205704253429478191105327793049137539649438853576481139742132814664180415240171938667771844102553482867117269297943902705401955338687365195893189608664442168132104990216038247809649676578882034013123965485166212325285447153896065847012709659942325065260738459947536999561067111285780823068312686082568499741060377754945451068459443433833560044760943599657451933187839979781084113228090547343779947997239011967434272220669523694384926735521378269331666149729265102696791462372366592445745817395451764333610074988266424418100421056570306734595679281162681385608330290693056821586646316236010424897141447422453894445334472524305990637933787198816783344128006264947135423952100029342135513363753491676090740788896562311768465747717838854580976286683367328462888629433015377932664296025916658372644477740167464894165618227845173979295641513537172261278357542729628580651785864652735680588695610542889107810418960944197147033124755324826295679485242044949585589481865565789608672956277282278794594382080149942245892170833430402853035270883980912220114597043382904356654121321348828476227655038633918466313590368194659223104779194826756436768439389597706050622684275325435796935749827372449985272722060130689891546328368907512166551473042592700548449655893535543416065585613971815472490295875443635630444460695537217793926969010592317009152752821897933861110710289091434138526001895480168852365505023322228699641192685912037158447320246743658230467264215174678773230149778475779498080793415257492364236859721826082100186461265615620076710628654620635498322158925691453923248882253691374462599255527564261572294972241916040838706990984729397735579874093930876726867401107456683463951404834227194942618773344072882792535420733769523093327614384405371357519650172012627944544842325518163571125571811122532381323328362607644815895815140285371789433077534592638294970441741195369715568922706130184639695297163928979279845678552313309390159098926273833767612944462870537314183633890459240875694706376501351441168996465251503126577506214664101375138144998722119987032226236848517640298534493614945976677019397154919149019256936162490532273531958126822219512656244688288329620193171007605817682334079715094023498653899076435228232155707650369944063126252843289161799882735576929434965024401436993318348623547636252339195351292152937050738574904283369385799078734784942806935654089436642178589404326671459941569189418051125614700919856717164143327238216442354585160851000955220889612824472736974603392796127183402205301542064644341361605346441979366010206599363111797465479538775601336218296487141315597245902674438704501511579581322312338339474603026033082893948012870264465336496257942102416527859969368149513671096622142437992344366138705506636957848371427933123977849396418026562179515613784381804333623522792747434647204656250164808360682487483666287170739475948032014694153094342653997355749231163209774237046476537342146900953316222945839359158987549153329738335524565242447351628835382968896562435209399625407302349731632765239915791213446738666330427700422623336658790742444773414987099736734431931763402113445369711125693731770132672016839089098335494157702471662714437494323908899814826645050544614715929850015052865129238522217213793702761086386540918699363744609336363019507105007491238882443505153985520586997901011035398483415922444778431666671867229015337650770737296285462632481728014695029601067008739131355719826272051504862601175282543152776669789271237668788793615552937660923108242962761483836871006347153644358284969557483155291557734008142475491646027669398649339491894899283476456427219524096603230699178349927233143996278147894012171487481996573292535148513214939760212814977397955652545614357401262536890822138730005652621749371750275053910908237947276453221950807744719114741003998226207979803601429958796567339746010409345140101245068479884256826898767279132720687090375178537723920911821613247299818443691765028460684586760988731637514501579954355966711348278820747485635548946397034679037562520152496415529989910725522287048329535915086234264942330049456876036695125412292879919585900815423605895516167897118493791952927679322018797471620783307545983645885351668330605436097870635947465939168943076402723256445352606577466799222344215665001503605517645653265217536136797954460606833968180526081786945850203298275121094311213483358913909554252297214958038543842606710310732243132746583578235232182839401622674535576046517236501383939603413366156909682049211851613994186224180388508782899993200753267762077029797439819292145963281773739594678072209776750614525300149129338876377089357841875627640243585971128598169272244698279087672183917922788887809752394665102913788299516424878899719427363990710705446948845555472924363959395623400412744379536618353582096434013060524438370098191206120415692045697080498417430278682624189941831077383535127463725644389217794287314806571201362497632124379087806714715000271579248343464041169597850987803140080839643670853578706752900853482365888774505405667336417922957014663127302911102204744478229498142956716535277295581126619390188662780837961352608696752632117174460750737003717654022394911548396789368917634506555242456987879593812139878439483620266077090979832756917195530263535384055166405295390086757655904096054723572035831301401049805857806431580054998357006491964019843295245981819968084919022549766038100602011220114020265669786769542782149452992858749742985622186347757949054354896497102392477702452426571868553976045766107280937550348505508946866800331312578093064572325999239241110709137902890450342078986753527845350644577901046258664708044381382382715594611744427924455373113765969779913540191689206923059877539076886876962200867093805693147155252587934523679776908014354552945426719327285334114084174689129670900021119372818442315987076728178929717264171700842371903310361906196767601843269126778317029202116255870161969230473693564546103523057993206261222567454789602123319606090102507963956019848925242775241538988181066489115205736074364164441301986875804639707204272528032132189325738084765154650456335114194840034664266073673361519070860410114249868979054713568646865101951278394600928295000932590939197422373689174783812245307134370162965830437487950768662853964962853143303042080228111508256284149940335294868024663126245863167750150692741921150201060668572773632817807180065434526609212965471714985432727897005579466739043810487098391412988721555752861485850512809709185552165685140805268499498763469234876135884985563987376553689944224021103857591132446812461828477267004198572980853999058463549526243000398408631666451187809251652727183507301602661652918414830923291100309502304491007872559232956426310041578552382463272453671033974123953820657218600896987734811007848409863479264408040125951340265128226704243472827887753627191385281768703819991087363485923454343024759484823744578621910243871594853864456925328784229780377845126476476116468114336717653316609488271759537379547036414514598233010476312008484766434961964272924369075432451148557728065695806592790445431631538393736926194336408021371810160324315773036649231985531132954526119983480095323682179772700781890536697636284515680112390536009196424526198561626165365554683194580843596821866837950750456125726505269644278200725642051103192954989974943840947854044942649304303059245211086088281658612653788419174908962817063675048513125088605208734702116491307740398208549363407277205024255504908189183570021930178911210411789831221374296066463103725383471780301238261276632460001098830268408886851139816288060579100827982917675708177036427046659141263604797259610769847182229729042386442450458691630324446492786763704702898166290346637733161528147197522220480898415576270033856541078565112909843202640358484948976387802930187358618563452325520165206424696467403661920117550539658695189205099242446944339110227369279925966927301382501563587711114646047905743320309997653261289365820125397998890937917191416669801625311769481633840933321316684457870979800396248073636310128664050837390522590587802873838871892959694073290579383290703240898729574546618932556810880688068321363325457896415343593544116228473262200601424247492869695722368692294898641665591697935281787543050659234288158051790730354959722157094351716790509085023374472758424748651014496793291530317271587564013229240101434227112206268220821671261378363602663144151570974365805966387993188090559798859788964834949276682898880398203829537510260773248410546238697281045845547060606725340690334782726937750823558623935773175736223674253461784850028189011164851687248382058341051407834509615320364068175662790673512415701344503957044717008638523826646686852318484337817574847356409009307563989592087781916552613948749127571499586350165640375983239945785174381084380559616862162256621813024082668033830588461107231312566031467380482125888169467809944051491018106798767649600923661440276090652812101757307796730616610073357999775434701108661294684685450065945713279995535705061168522504066024182317628676516611409796102131499103639600345179971740191507347401346674657385488147684520224700241764058999202955439649417446694202617422481788621440488648862138736310843286252299346501973625698652298200107750440216720715396403597452282326620052292667355651933766375770137881642939210534917660642534794138686577729381224858948715675059410595252037985996123912049686117294819097988168141044364098183311862882393385058722088260460892413271939659879852160782216356521973266369220462562502401833689739756268034079691606172144963453312602572110624479766578855225146127264124399305006311097313995043804239919226278445938451608457412798792208773997392590460286711607554662779627870154146250179340559197502137418207316661753813705553959310868882903958526532481918007063514782866103432917378025024815456301055252937007624041005285831539621366815218669755338893086502467791771131540712770269896469709492131293597242369705187039023425769892870864582860104879529101404047137760422379106469218675030676036061488611164262948687975025181494224001346827486725961736171940620298956918780688776818211653498146369542466180014414811357362015294901504108405162017158435855621698684887210285365087624603230099622905032816878742670970341949697882155680570914375596981566115924224741117173903280839401280165441386739140977972187997045652387705720479526883426252755590947034015713412713287534828577530453818211112246272877963161237524815423873401618244564416728962596962650552259244220767985464090985908790041287172158727811894566649907785640010155113718362446980346824341679384430522382484244599073066915561730999899183271967907049731040843477900218547661000468936161079928388597051167690666802752049152371244933691880861101549217701470905057078361715205722035786700106129567351335060684946163875042756131168309419096935916044647392072210076381799427331190404692163909472088942324479582193355098119856310346185009493477770670238047548645209016167519579257427632749248578146628766351464017503925553678697608944057070855148888597575095850834580629564434844730533369777478987156765229508949175552136148457006197074800603745400574579580752607133959335203026109767696597932884764381735730827125691411382860032177512306147584939523904040486299825220215651915515101374492007770338518394371839590560790093436377227787880444948753522040311213389642020851605825599630304021761407845403417277023772167049696118918026183874526344577528096061996232734260817814140830055462652028149165637804772782414282831916593001113245935040931289204323134954908301756157386558568577937024456195866522448354603529474785168583907050470026071847598059539699580490631796119819598970198549269981133840508255901116795167242439845502068045058075671278069499098630009594339586569896767605754180389737353381447239495823442829058635391022675392728952885724818171626270588591262828059310539649853263108527145483277991934548649695820668818762156359473080441268310820784716522472379077321779489448234451962598048480382652396295738253326865291515429225129190459324672289938441786550026303245979840798401432971270569223855823501543059768302988033211145894305023272042734878017708980315555990275062889785221450889122339937782604778131848654353394476711596571049342470566468267314997877088049983268541642942275525582288521236611317720169490648714984901846590861545752855125260609445815693375558475094663920159052554536683296784813267053156573192451744636514438066464120484221273676835544154981792285841476977819475627780275886316692153576308011996823942145566593071483797717976351154814614581513218487626909637635741185664206850326405832338330454463425776870102316020210540835993691822704522484435054867450194660627645398828667167058829149865533301836784658442959145039384966323349891401861134294631627768931996971962605792662893797242729792617730623276608814138542461191598525612307253326049198318402116719394507481139454129120916975015867433353878711134235666700970234257599086540746337231643273244234212958557785168563684598047263935713942117558788756562169693526008393134452835734649932437745345430810448732905347598934876301675218489937897069813066322119667941411481650767267719714228151261244130383765515762877736784871834939815461854559110627136676384012132788687368661128138533747454139019889709988886653779513640039341895843998943914118437779643484200501429826332449592407719649851435853367722574829459380448713535975565483304001949488225728344050350798022825737638652637462645750795043075004673437922157421194028409588388378181562624484044974512172748003350909034381469655441442589517075084894051659137648318594399619805422586760970073391603977658621599966855182179858995500362939261177439205974516088124255841821701493474156533535957252860108977506028869772296368293980344180889547240686226094113900390381808427231677832905599525670952895239014765935868929004076001697235509923417305527799356136202480466413492698964371385381245682060311822249162722739448120485427342757177321707298485153409191161789297292912608315618388021183714987674363956593860263885887390664796488368612826741975668458795888814781192340039154803681073454327526358295783526928922788961491366063839723161861543801192076504853103357740247595927712221310848333720565093084398567292630701688051480904224150208154141270918183323450680415667475796679446820641954148659891216814341194189574773246106414122831429678074651267580389660924236989789035063216561901641137401097770696998153710910603907307316143470899420288766119738409701625733288073315479129716509125696230601493494546530395833390617640679165439680732384426393996193130765660819334939137694966697137706825964380669262532850409366653243752325412104320992885898249951547944657795503117094126749636634294572461568866332390396920192721085579061759962544300947741479429085464061587861846316985109682953485204756137270303286510547441907705371117062245827308844920545610195085213786376191267734661566962612414543595620400910252921432146856974620109811805461448209413899507745588336913977975432114808574352248210008486794008391938478711415974460998465032018553808738137748016891724464159974728353058982744699499073796309344789592781491805279044747123473645755528165725555714968356035175838678062018490514935440315306520240837788381512577094544520863515836197999477775618297689858970790850968214234794138056695872729991588493416138032326506117917215141127926070908187123351127028276312863793144804908355535190962255851538788319740460202101589428903167211546829205330660838627648363701391387373054769215508864049106296723458289846993337202442630937832593801801672870583894059901410870628168232591380299196040860037235007807112603560280873051689415593912025584608838263442727878817751504181326169606104379027314690723891219049046286748157647248196521192832797258346587496111286232982488876602194421374380655770668765689336473338761072036038854576134754613150434265170066959233899505413733404658077986773778107289044586465704959384812369664312866836698410556459308167607332448733829389915803211885255559045643484087204065077173571821770937654567485657728482153623271387237608482059637264642062159093822511020844560081012313560735345611190364810693851757471304593324934064866490208070709381053796854989502863730138070519890007631245125164085946829321052616157852696014576487978748359368009123077952811343174095653207402626265336185483641936954829224943603778432256717589237984435639090577370978152900872524176868515190018183911701237757116855296561783167810203173756903856050309209686510944576523560357928092022668637311138650837310902096813385126014433843467062820252653360157651270807965669099059799733610461702789055028197591322415716689314906564753618598552307053978745224828720985377455734794105750997088440340811222798670934608040670523686215494012953661616009596204770557190480611419927495820795892008068862860519444853846737365341558944672285461757369797120065408474839513512908462402560866094922811066379620729212527829152666379251275693059217510734981208318321651288958210090732340829299826661154592123368497435275528766718097382648000663065898496246004681358088151301060880084900299715438363377949361835168746985037654409452044663176554944710932233216640590924858381568257835474524904924045572277090569751126700498709785608282402888870535413490270258951783721434954221242025093692469876140559248204408467376680926892414742711815460849811366410210616822230329164999650779206796057481639537988756753957279921029987174286894983593400266548948664138570958712780998660420114952076356683631426928854723917126529642063247080055279523107449066313122607752626039905092978043706748114427720969456926721044552818817049585025177922645034525057301639185288721390921766493416863957452124772698830170995342535276098938322162169985920438410798486310060949297580944880273125923828373603018862637150695118779509958360655475290286080962426086026690889103105188163401594853833468089377376314820176732296312498292168733717225925013845478944654870315363503173604733482208398719357462561467960494277344342338842616373362350514845033211970583693822449298984685831205076507602517205977521948115691285318660256401850646597430388169076074172617129331205150988422402966491298350990235077744019702103951246646345140405594062309817966732808410683461278095134387677755616015550734718476382345568075983870694342918693866322316921249423728357953227803274012536456132532413741932777776588294534582035328350073247458364869091421142144081596052216388475144948090878943950306633857350076741519813280848524254859054703557741468932235841308153752680488811409385747392649094376710205430239203327517260604834144010318635929273592670476586912819996391751588817438234875931187502774794062060621147298081467482820427619156848579150876557551442686675749148614070075274101634343394814193044754282090614502336224550437022358255034135098610862478392152982951398706708247146028452804217680680659862858741822373519646284043914484176589934988357425721845934208818375206815896892302714538826861906253276648906529263172300893093618680349464360997161457053751517001165685958281924798931301628275533866399499909220463147870138198637521206808972379925161653494238505999937121459235417002833761379653195923668658284711993444995941031729190983910402018818013943668681170573103006204178341911150608009524457313716548336100677326659849259577095255244152964504917006824444567730709287181391900939906146574377485082151678986010788276302385680362133225835796214329254728074140759380998290576397163255105955468094907635745077578579391620442536235301069739255842464886219222625973022191890735391494854853784074754517334350872608673767448725387455126059721941980985699862674576965827430574929634894180518472507582161835882335707477041313201668023824024428827381538551766168164099498228397717165179604007119699955098211513956248620759445236152708295741797849478627117997046676350089113980596051551133358304888641783610877164645290035723991478189792334139715362373133082516106884167608022690283554531201072638565819381767842880079445106407202101609726170076804486071463893682230352533254433922067931497167342286830335222855358179433273843579264168989554721453400845407269379529073195429264209350611453818688836342822891784981932620820386277587928772404639254041189197789745661351380093718314889773926149088982790580766723456304456488769135273589549492634799746781032337355302819952636206351335517971468987000890476612464457731622992027676280533078135543474105608540788940733514465730266653747725273438031192672098701024800051857404062487277649472790922495079591966321987295268721436007938705995954735493992001216753355888143680020557298137666246365266965533584185475118216917743668223955648534769687388086088642097284831147526810653935166696092195292820422560093277531515527830822672873561987916096218408329474596616376743910127757399302700280783177487587451784345705666972157217129475434953070582377159557551344517152442939945841808269013303357380346494614019813848453498343072595574801543847014672894212879027719515917546587228843408886936803881380745003684681054611801527267776191577968881249796863527416217796256497974098094169758113922004751608721578907048306170180760996554140375003932213430278435078309578751929476655812248138487631256341943116035155305291123149903013437926020395621823266731261864331006694885847074273899672712006733291103533640838325306813437629658432218888727554623009387924849886194018640681256347863564790905686195797201407176232028376744046092010674270253892132199649242760363953804729749830212947763050850930438405227824425941709127226193769652973829889872175946964694250847038119040681549556893409891070794274805514919900087878379581724410563901602477202367593833620742324720206983610883221486577169625032757513000090201808597219579064018380473382631062120591414004075695683035108729580734063026572972751420961818370119317281464434261594143140899256749097801098182244857705805489751471180644843697009404846355195403982960517539717271024123628452792213709652963231409233168507940811441488238291171378211932324139405510976332495285833089901510199415153867593269764323744771449227927936500216807813842504893600296852267440530371130005605817687437137567486992525811661298480765031978910914918160243726882424345355625081056026227815660408989458060329561117654477604113871962182938829121309681352290934263900345461396296223241033380018088891131300815640188285162793367064287822157317901889933743528338487059207337643366447338358036132548448991151623671561433385952615625193735340333924410849516715221400587320885835651972886294940065464095205533638712264367081488994083771202813931746273974446922455786342990321864169635552021791357197575799165881522057476296963041733439194207600632311732076572035669632630340317016952262060715001100456707963318554992988818211378961740633661227650337532024784426921316339448997556836322925845740035098469436138014095107815052763268531875283604665712749899371336580401213617845764557831985700579341943986655143759635638431399347898855756363635215599589955393198427080638872512878648116046837382932447531962089466585643743787871509399517947413968835513484418178125886953904108797116871220445107165491202539483689329278665616369384880552833006020245258273637762398265161499884372970975790135933914548397579464154371123579082164625724532289905411950120238406130917449457653118510886322005774002739541215627750936104704186889306008677058222298199204438662684993285747769719047425838978687818050848670843150407198668872033677341509895876683616660664153448851781025552189101465689524083414832877859373310325543407943084778270527815533776673024323766599444647881661813926923720001305016164023353330266435190973217473082873108748316515343828753233741314514327053783349441399417279192028235151482759382214789325758638738094562945254071121408948454626702563373725367291023612617210737755851654924676476749674252179882954795787834519646406768415028933965721425604830635120762957050707137568348407878132933143818484757263881863894394710748737275921171400808047026731487687038062410649204186155018603059977665537696628708772406447221935243710953993719274676432344513064753125661757591647563961724556157926449531463467481474962739130742951898061637446972774947404497889168298143776173513779390514995055994919645860908272590046146238797913827658477019495633597807270122459288702655278140144605607636013453685423091904711225382061037083048127439501280820902511380426921172104066498614402453716309324020290527866809736468163296827009907163330341758652603516658595624060390593274973570328292609325103478490329913316347281845830495119450020531540910169183132195329848837288569911972525279085161716531343712467933268519608497567715730691320678305615804466698534965377507620006305248196233690812230831818414251677378895859459769485997692889094238241261004074946477631546441335927712834945857357162009292688963554261241494948770928541359421995601568924654169499261039327978880170300439438714545805531624282533453974946685891630883684095309099947489305646021758215630993259798669442679047573733073849173101908168449215907132632538360697063649238608158335032858730314896545876780168866287143150602223771714180349847247161741487335865159438272446831145487658576542850570931086468216672098533643514629167325399533677527841202855662815231694192456347994993106778134701983452123324983881041499529547215589089131919141488443984464646899362322228687365547349371582796627269963835646761080917203251557684577873463492148240353437240522478222722081939478876653455107761507958676671354792957900301855951167756430278288378030692071210411159770539086892678270420286026878947739962640901878556145007444729797479789307920102074719974637989383736353245725556681334942711123053287148605497067815222246280509789717088447448962530702696357291610307059987585363304408166560983831427469796512678785403891478204292014804193931874372569553574989543649964413890150877411236667658373663087959741556045834609209669476118571875686998064114585031424957631725476439017253496504754236592902974994395286046579185925776210084254818743584400024756094351081929290206188267916781135426941707418823259591764558929441770048636446729989428087467134514221054870401077842129609574137847381341503389597172743932746687967516582240075337606081017047626581634043812965051023999166090006942618408750271821928016189185873320230052887334176466433352831259128008801163732724328659509426580055555136674048739870096227881397110189806002519182682492507000973359497642378769934070010901701020465143907793165510275719995261744987857856912563199058783556737469561781388417012276019492566393434401951300967889012842249762499447842407195830544203124246585512498943164847896675542770699603019524562184971115105804660651502218717655247815567488620953860202751268121687564896431530493640915687980469259349934662150081616400914768637411808330227564022816225304219023944704156194140510260473786834157385712287994858935996257818978177141628592412150115427822907554113214852651437474652759643796766374908401446580820759190897169180814815497384824278130931398113221109149472114393520447823820970223656643812591956840764795147468215630736950967988720161404148196774509373489717352494060821455617034319695864541659529854841624501663117714908603262013621549949065756567812175732005236130774080038626145904721186176799083502083524698673793935697334062419309648677287519887381282348812431250983567430136714499921487623634766446914695637443525862857068901039775963500664675304410451288119837844641923168666414455044406770302823960991279093447416253121862320295680347991609366457873183124953887575006794601324944847991085942602104527921929629937030722646707518038590067147477240385727218452834264449869431977992907345919884645409692290436615151599883971806957156793311026549716797942218026227719737616804362256152311498668451039588442637551517294134568562399041174900679324590618079720127679775027616225033777848183551639076922500618509255308865876440834234291155493889933022392500728981921495905210923279021424950854934096578222547342600634187656056841305812384675590015237610660021775774843806715976681327035834716602089209862875053724399432927924526612791500267348640960819782488401383204922252814456099669873878783691580200531917675379124512032047555428425722946215317118413751249256312446136571303169246803268202037326528062739847545142811505610662392412182570677899878660117640560731596316705668779631041738346058061081201065763026629890504618369325491974588128604558326808187648426937391811381700269466879198635214364419485956370982327109540607306746177293290726775187814861334708858410819930643065403508264534438683637381379694694646807210453816078179199620082932755159052130255650979787201709992937555224870729259041710304543461728236942423325566943918087675273628889622812202370849226631896126855259552300323417501075477460901989701860698518286506707011184833685499771778307744065061886458593667856412235381727553341360541010225512561414667342701142570818163246025787300233989816232206898086238717008885179637930493904846657928491480380432094466765011743569813999430994758719190306640403965951286804718721930535674247297304872559884255688173484849321538219334483650868922678302250751362056554191130161059600035780081274836756686149611316991172839570672819866924112078256224054834380937006503124371033482134200085712194704822763285870875628529929785309538233255445945305047280438697022624883561795961135694842079583894804357770046215334467795189658097656665340974375234418475365728085143565657282558201061703053390137511738666111136791560410468193842961155684684119728750799605201982804699539632502023004890333958399719503213801681098160462535408183400287498892634886802237181174069556750885195194464822464937390160600298075273176384802545571010105579283578162335275728990217359531243923504120019379037676431997716781905391171826961645739763726273143897502617629992118032445650979206786598405804326644039923894761681144569222565813663089162179160789003218043240896073821850583000113424496278001714290026117087404092979406088167690799447525112706090559883152881296254822800347039327960673593876253761463030418776449305821965948747460033879537340092058736068156572762031339819230445010976927986097938910500723123565798017952600880258879626563283059942866859242318958958740825266669033289134219019836216569763290040088346054354581945867769827831653356627856888149740699574799487250510763086201660339470798005213869917241654344584951902200586482102496953436433748993270221909651402851559723230954456217280927960074719817512864642295180454699011194670764398688435833154704188227651809332277130364671819703715847179184694927222797714398311814863830621571630327482183937017018264798006893927180875504588250470451749770821539024519331435857189256550492046653678157218758357224275650543483660022503610536726330148341172548498305238264967348711156255397558521657432802531196394403191336801792957392057281159640201091177255482175340203286236523342102178716512377123860237480684832307268996937695211675868205636807600027902513725151505059878532742990701876545817216801142417169614820249843881061972636721812686635303362308988391163595967286446058446758238927874848520007328115865434683404034350112806541146174131180729907410290198291865531051202230931352669190374657134597521302040110562167469680156731114571136708249782510563677134640373132594783755868583362442673625077269748947498875346275867334111538021217964460497106666081917790847521150304388679144778578215774005585085261067570435951994787011397070559384129590569493950736594987184534790464228843107076913147931816567025844332799712431346477520846203643406099786561044944390910373378835892142415083559552070989328929744788875166952460615744912163137488882249596447231743545848879061573319092193272440691164585429386344154826432657852963231227314761428032620823007185102215938956773441376061958214818172597173117018055345694109589127277000160309109822562175362794487666903526718960896786766620746234401129863252345135608441206369456030706777495142721782658779155283486008982641031622132834668209375267095300801603102020346387825604294165598166526440896018038942597617210248611449191708205807860780545201787443843776033685749860865823169152284451600763397351196928888152682505430109743591856391547133282782985359856130853719724798439903378187707118889474483442082888555282727041505752377721092325780214852646664436538863168447775499143616861808548174187924296893058429592697892710487591250601823142553071632670985291457023885107484130858874050990036470283406166803095620301918980558854897869619941993636592627358454939201487993899373980811404298568118956957650740719045762515101905564560948009508659595121732420864370211720896904253892631145413794001835907774632981848455606207180732087522372456929292940072264790117292553236852717396911237027768713693681814546126314095611530042375814489149700442117864263428787553952457036962214638514433105058616092218984007898424848820276832356897942069354633566866244515750311242410241872464765975893465102936132138795937357226676898208691651892171549167710901530626844854266832987471777922043062618563191439004694794524809704693177801709874008393797195680515404179436335232768055632736179649741552236676287015428670576535105744254954537976650121345747067601201937432695052126462547393167552194692536955510731224121892544176398387886576866493784327532091916556442128964050471611247986710318851871253718070765675493381605792518121546102284973322006376334913042541352367372023418895526361358044587698624202132826311787112085629382933147708049410175403530798860922063989146714052685681391795087309523891340315518759781645754419670986971101344765983886165462328022973293227404974915945039303482262068625068988835166707098001472967713202599164255693346125284871147723351589230948015229499363589904279267906270163640565061661033816199352654336546284489587441694860103188889225742967135857267139981005932074887745377822003728840765778280621563551359570597252443285596469730220884923702865935442063073801387359117263571131656867116577258138217022744927963294972295931450826293703351989794880467341036810040498850134706338876420294164235231343138165725915353495853226379774380529514500194479838848622395110704577748273359899602702403462739443863433089932603543942249191537011131660077730510047386969709486928150127215709368026387082827212664096725137828302272516775404281826342808415956402077444636116696989933531995701395597258615087308183713308004739985311374285916423364545917494443234766437613916970608075735805510300877087736126381307354274199471443162792524631552915333201765438366467390529444217221136663719692558807417593679699415640145156995529136758157872544446567818217609921256453338197999661296010439775257311372600303708188956774241394810581182725067388330368504253390414762742002864894283393391607644330795849521513326017876628927798106821894494382062582705699764534149838056300680368516718177416889174443774533373591886537241313370233359893002862805010905611477733880803201637285574665462704763758795844442018347277665091450774405564219173219744325596701230061668292250912403792593497215014831857591389605605101423976243293272777230455651749698001047580907296640581752200769759377669274698713609946886678155778691930909856550870740210092398792183890054646543710902642136288266509175852334367191674818707417932136391870256048511206323033946202076111357200757949501425391151794061727660945114069725252926408232349903851515956588650783711134318978116142179526809850864170516222381220491294934178727148867644450905634289652360785150194496324665660047239430357567721450375810890914437710292777919844240462383222824203220110166990736232624207083025308978106107227513264845307118188090702292818334016785990810021988987423376004470901048345275190756813844567001257272463576671016108708822089920222263219314766408483629114417534025309174623734933212176591627402512239225319693600331346603605764523961719283623341015942357357435809035548060687042377464464208170254397252888472754688471467606751342577118210506237226717640885536774865379687708964728771944765395201037741799905461375597049848238845065702135631408248651295531613912118344388936705811035357000050160113843961808820929407734741537568392673811730073707371510231724899509676796167634224812372454569547704671504836293559811244200633378490293762030990503976126663058447458129933127478999557548991734755879795344549321940406288021087664877413972308875574355179501658296366266123495524383331731036375963846695482739461249996315255309502567759929598434627984826771548829411002050451690797877172237784761426986413572799114015835502396914229224852654895300534658833227328772603161279690126259540513187784133705011517382023351948188140017723964272137283316241180800530790578346478593217566161722937582120725309462495057103637604822809589582961875824261969749586411670490476171831654542549288256337514283293807785277952693221972592367427080129440638799680314202449336122507035938045753433471676790865188767277173471415595821773471125259881363834797988649713229242246676308681329519557052893260851620662162680466964903276260425016723329492596388383217310690806111149807995500365057127931392991181438566597746714222436978494818609381352171471150227044954624797210547982801252922926251464485674964808342899697979580784732703443001470213442022500067777155801778933066871388292812072699942354221015723402792051529477692730494763910086913548760659615224522855415278933186917007724836553876237847707565042412188413271297413775045040108199558462882173675048010364461815855590002632183681279799795011674754820228463259013992138361014788761250617724151770494398879878271573792893676321596552368098352359472056428205151062154566542373806773544321622571567803815983502240946873592739122541012821291876262357524329644168492748559293846150131153087498031892758611697513097008327342594655529837913571117164787435750422100666310618041130696505218755547699187347668186375833217044366732675315840563138867705342714626486851048711544916474385986064684360410156113012388485474143189578367028286617029530987544736689333926713213399752461183869009914955130895986337787306802398631303107749333066975558270786481884131516962647861937645448518686940992693880878994292208635058263372605116371630078094942241559758574459465042915884208678630752257444403520608177343288148829769790491847456791307129855744604143547796174276348410557171251577879284241969402692627256004478628764312011383767820485856449591048341053448448243700229626274052123455405058785793177969829211302217971725934419460378429126185080320859538808600181573575888011318625528417109452788621897770152297016512246553918629521279597068784881775669957655097046161606587579827441122138903494710076361258192821077028384952249554326811025995078886108353322609806670471189359864771518729895522666229510251465337953199624630251149112381623000251544115160818392835056530507536148035733012021691080673163254353862349873858316578896035339614186819789003486852998403805960878705025772321153460279730142601555961603010806323166667602059964688991511293459755274910983908540013706567004362684349576994471101491959684283793428286666282082305700016205781041270642860018313813342854258346772862616015842883709596100482528327252014917595784467510216658200917167041881859970892488827523670804861604305461738469608113191437013267964029325018430891650684620454889232829301934864824747908597330144506553290146132596045846316279001139269363452887200299503641671035459047713802676858997409784465950044808024127866884246241134124678274910526066576707714919612654283057585244476875863779904762583607861287474950357810941861895399803518158836900043648115024686640892180130414252307160323035810352827403920389004635697061835335338585958926617092776077850099234944613557027681509070385682551319472271650313037758206352243837561565924381935465492507201942811764936610045066479827418442667126281083064559026676826100843076530078489865390189653051836463045741289180109472991705094299660643250091795519482131606513862422034692951728139177624905226911979323753869570782862355756058232721015039766599737585955541662334889096116161152886375115870624768823497145793359839455475202983927678334970320038814693186148411354933817626381046911624380948972054205088890171936221878705504969388605843644811882537428299262944064003245211317645470920432778677712248247576318015018194292870220311052708270493886792243215482469749674297746680270796019263808028235354147560877484538187622703105281906310696276445877656985572905738038440320360158809513069388866642521321005471875837036288808979693220610378901222119994325472377257857207841375070699679774630490205937784696709339799904433136101637117290588790900264107513306447776261828834199526364108404073795100989213574411706616242107126023728167332566755598466730029610343135333889935084296180654702324941762369083655278231912003441216353601242057570421651922427051849686236232629828629015021145905208383907577707980031439898453773598375938191231839287463855015893609479323407274310845150168773666171367209416135513431947989894035355998312952321922356763781306609265604456046014931867692132577980419384542801390498415914066034983819941554495522342299223059290302155031881111211664672473890101352568231750246600812135647181665631221858329044999588668872220830249642073247967805522661509890610542093684401794097210053406463778897822661946002123258904167203083233026134208360203770947577366647829319694781442256158877685838410085856597678255591675911702140311498189259720625557202648584829339187911359713402242210412246693292546373463722330843934215212468927409607572894518099931839156250020110156394460388584172826870338926384403726330300898795454186784553049332995663560978434796286697715469643298067022635458421257880050086054273080470645620824219590780712708633134140515072363085527153462387609553711760901907123337004825541284836958792413943900818253815758343801241913235643707426180182354933750827987381279137419063393064084198375583721164723217118720702886308180331574983679672550693122379473376392538858818147569769859244830050840154801528271691779128086438218122518821193808480877824269453977641581760252845014383409722215333347522497489521025844980174024593577302156421495609212676483041865701607109315235154066813173945831908938946141274532124619488000674917476891165126557213521303497019851532255080900564092795354073172566005615256852183493427854676703630384715690818721613015880130958211380041168441061311383909929801088248892202563360857992527578508751594424712185909743310740473763975672483595851353760490694173861488944136139516724583386821259363263888014836291858761759640606254232703040172653652889038462409921133748774788562607118897030868660431605108524529550293575382990463451170512311086971402473281108885939440864846236988229791051161212178317798762945959478353009292145708091280715161664835077871855882727596725172520440953922622096144629701995234607064852562453747868800186001378279108063775924403695704239567398330037030224979894766796983668307654589201927311090156435890298553042925276922109041153627547780193187405966418078870551960528223017858603587230288037927015416024437423738926249354173161577997145507055199355419595695395481241382632997214927936114516781228353116271482822777509081353382340175274652057047517708228594973301798284293372145802052549291684544967480527387152598704509608854646657520228451775131788398008166859196598177948087911595412415784581372978062164491317464840366610235614733669513224731779096652553498719922498141003623046347612742785138700454740870728744034651603966896034427069005499316956747519227732167488225780558392614665429206277131802524184998210814487780137731850917092217095825140290714050076839230878954925013016124706566824611397053165137351400888788386032998954944540621334187256188859783088322418093931471850217606089024531286025453531925913798436055615604635010193084436212571951597594681788556536279513357188824620072761867072593756221971492547649053179098760339846153467194059256693503642949713555522886620224404749702615628772835681674329494154303707840751601185498530579704275879902982333281660736451117583791949603759912001817297306387256378299283945379311676957038910828681254877125861965685114408529218472182207273053611074744305945754811655453786353539945937338505949614740859860027621392989497576838250970466266950003672935863477187291777228453266397404106333367129914244779424527699756031988602307910680605891831888047550835915710441590563340161719868243051960305924483155235904330637420033000977459893526887096614742424886951385019107857911174460179206331252410397225788116218139088366459015005204498014384546642487325155315534862690641047883571445241383965967933317616832659521702029733159636742351944108716286024209098591706532494030843772526525671262143766587442992167360011842818208007472079591037514219714202305742716074802443504852900097247631229069992762046944438380952493157542249506278772246994804231580917370162408485806409788802001043663774910818605989380265450274857570193712001327512723186761471038939572733176312965750194815454584708120068880225238367019923976749917032543344313761414905508006378159141414659281513798723480292296809716690870486375841135780758106444857622880034893414843269985291560292366727156901188224578061694127053530043609071508635127558649989436069711157032790763916937918516513259470996254973799228352115991550558175529615034956537665422643653525908350567582392597257641142763750788403964239257833655188954188454737600706904186665591255047887245785826927998068414410836677905620541583010863267838772092275446861957835548359847565482389511787683067805256931436927527127240685523530047153814025202606944296885747442515711923932893232926369127605086694606859968222474894823798603001715500387544394317639717894649040227356934764284633830560072150376879510252992249826791666970263593930080268640588527037205538401674054680958026439117371953915511964956215178808691679426599286672584052125275649387123144796248427064862798078189172778148149437794131878371659061548738486643970725769087070186722169669781794499359669806978954836935331887901846950292419572115615632768439229221921491994814146813746987187202165136121973656571899717448435041897892215891418971191675788091231214670261540366990327903913952239556444055322078424957296049266012869012858367310439861876612300584401009094244929864476176295986880027411100295474805039204237911056400392309460025726001322083933145899342095277911829711793017501869013738586860656632361086468504340889290850233398097536471167690516171456839287463761552840986100444442227897176653324310284280762053584487747008487992265748674285654730818792019035645647653579302090128927889969292303510647830012537240351722244280734934666587233021234652145133500639494138347145688529338242898018989102817404519212836876127217995466458503955996582186060087506467150374440901380291012878793421356349480395411269078313265573542377014348832315262569090140040172167829713453162402554685906041673999336923252337735961682351154693471741692073231441759529230860418105025391733783982437279016460577797730425602937240093369743288395464514410395056429651983950285625881946808824979483071745589039899828245217056794287418614607685572864140601249487011317595150671668440700201251022635894025071157014946477238438744608344121750697276092742662252434471119778118170121134005935947894575393799226368261601123727302994628940664697033194803543102732154365713238991541774990158883364098675643880775139457696411591194153332907774269433516858513974440586132732177947795307483737058249900875551755349163485121344566274743543364627158686300381883694625940304851030257479936844356997816921925261640108379181234020073824944129355531609471782417011690399509592422882305793185081311351357325353805218969668187442820004774033895567783980096946377320751008019964384964096376815927908843237588507867954044834255710956402229935640608203519709786807730449093958831828716888548050063043066980320735344499940585738233832986486610815748902382187051930191051666066165913360368927746587676910190754361182930595951361028330475340128961798482520970001789434203866834795848279882433409229726479179510323173256247834531287802420013936289980617480589406030048282750953254927799929623393740001865446588259467305438707936370156143564306637821450573361914963565022494639001080962661744846122121180061158216655134259858846131221948759476045575453222801840788144824059256859206579821185204735501885411102982511764504503566084133559486519920076215993623018799257557867926147495229294036394011244537631606844344652322494471325992338367497533598564051212692096911850953845490074258766233538473834971277704023719498545536247972201638914250642938049915830352030183265508279105383109877661744646957014682804120820408299306743833298390745098537822231981525709248392145446895172774017601567968295541061745877330339841085449216229104242443517425098892404463502905229203929985002300602013675709332438463338622864257306919891603494242635032246383696933915688958902169260674745011272073977785060399613211959591681100835626705767317731583579434342748643549950760926247551517438265059196880479773000363042281253965848822483630709867099078420319058166880233584111154207600278500930916689685985800652779381900203558460776160961578877074765469285846783098705457961533514699639937591833028157488584716241636980699914999737724214084492447452887540012161147485421669382795513608910925392254213278344829903184862911974486967501903364329606410433586005027942671582086665648605946081310064895527033390249722282915949244765487831013547784205644917772063501402316840189534079314641395205515735875402384456134844202632075754314981094864591298840374744487607807076635529996022013197356182538300204847574368586797444043219373732386310530709356697439229612683004436552165513938300346027525785719243524378925198736196943992589645258752177036804526083862187454208119222295783106817578270184495507537221568212786008777248517880546083838698394333626962627116672292391354055590845283237814604344019944135002028975619738571973929333173472322126098516378076791815851005367587997067352221747275419572624256384283198988799203128261677307737802203945160406659284287722271079502086334923266993376174495203468939132308875122069780870482209800293161830232542537196512493502337310980150969289185680233672342652438126296023535522298668246823794403485641257918753372576514797884798665317345135967030405244911319764275363885700005045897066160646827641712019713405828267454827542522078610934145251268108427367328364652592609490075073628861898751253522639913532822107298192423434327171905613323029246919272910742299308068394252212977154471990626728544313816100729030088209786839345086320996320323774293436857781550769648847498538568938483888870696720280611519062478832710409930133796303995315282312661923256744739904808738388713652766922026576110045386090279794796343271479902437637800248448756505036500350484620617259288661515025591476466316079073816675193172774886640391771489615063212983655924239215950032987861192625526239868764822918979073699438414747659582320043338452073024719029920554212331254041820632452624725392130441235699648912097891137835514207787132769405690020708298075836706650130358064881195675103371313334622487060359670535815980424998849841533612491273616971034309399583174380786803507320315239887724881280595948516752512102890835022957942630459041422029584624142735457698978661494935527757229707364644290882851649623345830117200033224475802249609624881378253677400411785062590862053822582120587026769754091273716327951786983985663866737024512072951127352594142638846382580399668174778115037764197167966509537674215501478918345406399093885136724150473225904166927306947024260245825921372938227021560779043267774790695575518699331689288985567213417275486548468154237804388603687996037059186746316256487221450329150365747601685333928421713530797537569770095996490156153227518630388742838381237392519430346029391374551850914506171107181028439841049767471615149892449938364225347751004413942189407027604380326707551757679181411833582775534530401310907081197424765928461912322796013999711978239790997215068308773322303616775912101296366626957893919427363797686396154890002951439831856350258651336763368198497834850782607112957096421216046297267711232047696701678232816280527891360793878907721149278452549360002622310707514789155816897790833428538659369470403961655692925008849641674938664393062007992446136307733816176681601825897938788210362308243409904633143793693192819307126767109111399904294011197590674970223788615497282209798590941928986482480976532573062786721981821797585935845625229872596759401874981528669506592092864803606311013942314926552683027442190576165113179378078408489233170034727280480028857208871524357108627871119909974002669290413089809403277466919981193841138712571510139625336503633990466177085898559735624912120762571256483272295492839290348511937757198055394758586998174643854700823252573130686981801881833910345988098887069464869667063383257471270366606056249582382928552841565582450296750719679547023637724145582114751373185348810800135374289314654176137467501764315522196975449856752137695992808957217011316954113690730253042755509349536639599162272083559044797590708343088883249569542349197922060464574513278165317539187692124223619795002821509948096395578741878911729595167914727244702436353263905239129620233473170456418019120270240029967603826409042884243769871372743052963138217278938619530405610761219979383085512020127967163965074400748607927367112247651888036429190980669638194194987799823618047973719921652755798613912814888244287478699732363054774913355744811659691308853048553961649689574054836864767685873103800948804498350761087277344464650239480981784445514545998652753397655053536840229757354736331373465588349367244825252424189825727421700129712199812443838316289932932603447374266827594473501298726147637884490793433275954991003407504396320611510139672009149940307580196132757498909457836366590815592108966737510033929688926983504305039443882274513783695961504212199457590046530209960033492009566402283078558858753932818641160604872513111388331199818468409728218732627480939012967405719163244230149587777436931552882573066250204579067432687252955999004579188670670904553014887538666711926474579887505141913654812055140078407497993142469894555290062533430070030542833899485920121295261121889925856701550478227022481629668022564508923209463478110153078261416447608765240363611665503741655071291801525580859925564739966382461665163186898754963890162611024300289883577498242278112034542141737433868359355120532619005456997938496369323030945144258692262836048698304325049164952902608473338746640258131131782061852846798242200223292478731852373723801785712076457058925539408069034891962931868831759789553940891666021056955147837097850480884198226495612469895113809116321146780896652496382051932697187390647870341328351892108911551460977691795521974998501849078235502322277806117305810562091337110465192743875524578474161354406288906880815640120722495881272175818410034279667998119444340895566652499211513366368900288509257716640873140792932165324291282389076535258528946540273881996906950523880430471444322498103751863554830064956462278108124683853631873219376696839045524701307458159075547508639741500726502606966258224946032905317612718475828891918135238175860673479197896489898473566216715501848212481838696506044968549451489236861069119712783860904314506454846869691867186249311748203254720156722532235941747594036264681060918541035907389813422844315400804402577664849207023847836941600387906032369610070180661045421504905009834638517490987682831496314414648976901731960590765918282190243367758723754543530569416329059748036920000779998225710202469469965255232695683882382501382279561086160688526132683863511894265405641256237600268100206463768197895052364021830725639408728324462923693200924402244539715944591754305122059778723901959735634160401130523499246231397361687034702901303072434364014519893242986493094678680717569111767295224496250703411779370832131869158386646510829558309047813456687791480562085704819307602810728342715630960253782171271976366408268283335930879722504167821552202070167786212041504349205302884919724838063441452650175664681376952204735547801810334364626921247589129423924905942926404063858147236224454425033789223560074908886746077267050479028293373059366714093014394847188642703882854837685521634107130506709562833808773380897856567540578436894195085344206133478649858048609153161001282820346447226222295009765641106753076303628472201608240047883733964763793670299016185531736944074062702399243697273578887758658110777828247316855183166147348799625254632499505683575021941846438329024507817561452278023964812997743644578113259174553677215746862928031300439093112711178716774598963872744888339003197307248116536413185020516531046732234383935755614776393385179025816298709501184276363219771580358100983094346224760685118739906470769668789159743023382292922049611220467854675850357450096272625199381071406891085519251569193322036315841021969434329837329401226702274089253639303993911607183274882683935619799865840263179527383098200655614592086501476652396994338704590250439211564084944566749459184867732398406592010996901037942563444011193951375042503804150548972997245198256665929794258649735805974398784414684647190373092494755900519085121874228465862495934108437812875179287324646746313572414487813999665331283174089869492126841448208135865443635962005181993223126719796663768192475934120906495002079966236722937386162129360805309759680823086479647301824193587190272876305931218396898879825790524144410232538534495305481907500033242268549178565314592030472810027528806690075769129423624114704953362382153773908385509190061118197861904893273533815906661307677570658774692801858781411500367783127703577786855179595000339231974812067765881620732169237747228598370979235883792873793132163532346986799330484194570982780946908675449144113938663738336702633122899081587392337162198853373557019516123310218917959542105463215201781076901526122214140216168074250732176570039455095846202467236969382071886337222282279709377921461306565203402411963902496703918851118756090660011287839340354249693970809639404572792963372356821047968030876146994963019333477013185338873844136906029558136170925897215284380568741517776910255284057609815444001851640745496303853988181748044650156644718303748919401469203794594241087553606303413216555940033378595873637531883478522666570954359157212049059425200997280786921787910009055583509301526944831790454855228799129211035102183080481377464140002772167081819279516833195227763377782025725035656223661355273730058818969374398661953894696132531683573045544487012272847694781115090298432213648776366295003952618600954974307474521245376950514430758854382742491330092180421786093638462924248768021691992970251403298638867841384710660405000369372220382601078811618659793198040076390379665877949714327715026832718086568990878872025192626489561202319387491331946834119609733155003390897673688830041810670512588136751355953002593109735226383283553276203550007783846966091716773059250664311232725957926574594278389633050572705553379222591012878957262209084961200899025733597508396373685540133328128060880998331928363602408814749498691460405161492461016406534818664978209739577988737165442309033637327094627998846979109432654350884117698864681844228039816238369221595054678217175023612317266255679503621308432151711457417533551997574674901950693304557908693875774789602532375417846094206068631469255379299874569161848298628849344746854796315902424537532169014182173267321981600893061909183453694496715605980903296173441392031890494867959417855961760110887129959619706999908340482904528370881990955328401467158791583772166258250443209148501879713145170392929432455724300740410664039617879370183975988730800903478470890492028476277613751885020873463174251224602880918043972665863663072487793939322019246467427500333716810534499143339281921163347294104618179196099962934158071231814004463273217541926635224144490543645619208422028320581445304744042227946194760841840804036902733425025011092850247038024319166313952569288149441959076938635571531635877731409635168622499687354373852053898051909626609827451941736980537158217620374446389819311663422065922034503973771217060002066262946231299803392214692680059057023302863723963265116636403093740359255956308097583517415323033927699761791297736525633031760627615078030062889955470171148132291412190931710830650091912654149941085544283446719768151929124380395095814079054505339437304695656380892740364713518943169119427833636483570635904587521275249684243296401958124186534676220569070610746628567772839411590456950101845316550972686108526051613726210113382516420438056564579970763872644783618576463237745148244620621327269145172608054350229801409805625753096677927051287072461676575703083825163878515133308604472538848114924334549917780396510961490276816950625235258082380203790658743068111180415106623983511495523807671091520341848828171059177289180167923575269153662538461720018355324934051447934163787172865695322443569101330178324953755978489351315830323701643471970118316444788472883886105642419754574022176717375333709656195428635393576804083718012149502910910990099607402203057432821316071227817250112731127735995468892718518409649657447431961905947335595904767382372196043378487415291024051480405553352374403947529374463862299757246973145727625278913222412939974522921716421941873668420670961185921236906342511050150627849351990973189038814381409446804288055188198948614770621337535677007580235761623690910696914666507567966775220267586260080698152517031678721271457658309880914080956646246441997001114541368351841921753983153141230065105130177465170343531624693272129465147517827404744972790575572474631757802797943451515469351463057671497060304072802681480689906757206864825773472801283634493921095442860753971047353925165205841622238256567859209045085671543147801800226752411326505337929200827791209066485420644349170493910480560761853468591906120317980064936656468859533189504799259492068138380070436918001984365480878816693564157505511359925986121927453373702747349853185101611313506188422374166201941982696139456437660909159612735779358083595069918831181676550160984078678149180680155547979365547531371372658626474147013346877458551334861953662193319378032020429803171874483489454479497981974582244020307250764600749903505414021448491250425487094510738062687432835659093941584235060051902441515557283258800672846566341943587344878716697170323483425219497310102793640374008088915665499215901119190754400114482653134851679777541140228783644366634271856614389731359089978874100690018467992023064911709640848292858723109486849153543451517919360498786189228790149522494154469740847543717988198617966017660218486647058687355705154364511385519829045629977068566419523878792845679169450567532299662121479974631703258583120686097399078433663513672995237198788534094170493123514687226500723782558888631006868086175391669335031600296591819236723567227384673695283934229119753958781887039704564630514453018740306033092894915445938338581826877024384284599911137817722181926699854306234590452080312275656522099639566985638277734272465727184754993183026529981235621882567316494751184339542386765864759814737166362267079421194690964158657597564932384261104406005608765348392201466549114182719972777713568344971779843286666470207607757022715390255640538920453021302759527251528343688333148130467974152973371379692466393667547782827282021238723366042426271604229752295291045943079719076802800745712912302826129901522910820647624884628065606542281041451316673153001242604219728720981400585106234784130202995721980760140668800810270251291068504274000582922033912508635643914467312081268527005879869340357385781571506274531282714208605309679659829183248362737018107095171531378672932148228930855165520560539093068825647120569419058385690709609128751248083884504711589918202995637155074569323983576427452009096794968885838614486834257422208303136408049377192303271120774263269325816965870407501478191730845100834916935808737416182385333323851598991904512463765700874695759721795932995397974284728187795834895190738771101208804476044246256355022534104585333327383574280997138162741858898841356308884454045607114830753486181915491268715229583484944690968570408987843910366503137688710431148819201887943483353727576769280282439839539756579176821356876245174569902760304839515199505240922264828194273475546497776745181299805321106231466948780329856451101620420899353282363839598149407377575868405357704174098625868754240665516816055713000612417435556797737169471837711117151582993842387204459430355429456412955517685224181949822134746255728668485051777015155255016873075268849224256686486035697215813880869501156623398792689314979916660746099728763522268252483452889333402672569505674050310098157150478107871370747121369611644006184502486561683998501908301634008695032030044238686898438030569870892326485634091133033358711820856916073073637128290904679968640319719158709881817543575447663103918532198430757268472650771466751528068544877852581975344301987882398392972512167210607199570318154823169291460225409558215976427238220452667539850788473001616186628428682433489127669499714058851365878243397109863152367322414904653043649103133626098035665696935383886190137647873801524422921706515777905503859584649287218596245604135323813781330788286709639468947976988995312486674724352494452922413145486382000185090795888789258103051204798934561265183918401233163193687090903255265313343735054430197122611740932670829595108257066541521089290680738665012016785739294791340169850965332043073406888342950333152688153275160322310269970614168530548184195158697386884722396256777598319319210826425954096673534417510169076633937821553019324629057089497093657524639749898105634876258202777776046212389209506850087288856853175192709494204537951808374401421499574081479238719484329376568915393626146921889956481079018935482401974722675474129568127186170337777507640691113354356668261113206877838751227156239205461262783850575360158111803497551883931725248338277385175260416816526038639847868751722351999396240762985423834241983068776817330699217009500700424499885012530996678603531905138610606273600057830748773786939279684721665812567278009213605394806855009908627141369288400797583027434773072533781288163925367630735725131064013124414206695512876190527328756274458665145320738959354386095612825092636535903224000439282755056579473200734504369527495365742163130091780534625577690709024755487646699827659387233049407451645744132382943905253022226909434777543156354849329807827880956031872395839199250162330237125473895000252965441531651786628700873917669289191823098770383617527394229630017134321404778092661938524532716765815218062121657445347241949778606709787878026041141627079483927030541930529231447860646535871345575658782602164892574955948085022598862698590483304422384774247341850654297910965146010404689297980259923259274827201187744831951866723726540909294236027092419388168222039285231634509317643743186033183320175109106483786856908295834007772214118962587003080763348898898735171123457064063650167994263442047264863158525418746033456782707639204204011086681554863384491913028906045256733721181397529202529303228540675480041622503211566364006762801198224224452282786963166404669636294270904646194789740539488556317354671231303175620401638377107815386105151484743165026265209520658867420526817539583724682506228575424235592522696174707081975498006165457770521181658133859731282596522544161456562449619929178383537030827256883804276118472853726543674093934636193012773185205043854438010382527070241648113708832862947120982787673412809812579054823175759417638443341614979527908401695472176429759114404010152698246185569537648671806006055244267317298206184972932139786043650569986786313468264270427593718056141503418758910672013791380059108073293684634001544195809041143279693916206404647470259935499404008500463013287587791032509205939910967679649886395260873358409653546199338149318041012787379409698303853558802699420550226397337337815161971804806293791853104572069191922147051634206979437610987848924243029303003996880698971146013796121521697852196149520446593336900096166231106468331567051211697196471056468451517658653711463386369893332605171827770263522616268594850704220259983821009916352059328558955657194765616115745650696440241432898031721888023411839023000964408326172630835905619960634081554641737495842480245720487100213003265193397392406308954405851376307596959678082285245795741138598015278462033070710416105028060631561692631612963139054490255556773264962956527018611389083828721723829588253969412951249536130911997747499606119930556464547274003660199115647928605549343476774718763095430898327916723700510048354511836763867930834082604840394685420651723927430585907326747796146962382577957970816999137348949677888196021257109558341704273733159682970224244811858887969130932586853704620851276028106971084231995457215163373015577129782231454036439013085062221682308638891762849115402217114380300204077988027875305188119278283879215749932563779963877060025327590821819368557254964294302894839677768885986528245238519641481462942960868478882693314756038123055560478419035968092680509037821237769633649696091302372636082071487891079708528916493917472482783679141749549275780719638222572728086074631107537165663860554853866555157088404049287028271107753394252732348191464057339121911281411079351008773148788903085997440869726613181704402543145440830157379303379994049994175642456777228937418158883753250232803744163881895731325504458568532700580155055388744063515346847508915151659629261396588915659036982656682758550515913205462344377893300457235446584145366616211266035743697043175560504581439903664115408018230403629893427701953716943028060489397025568319025872123104697949020455304474096261490605648109043578672337008937005114208072274635476932141122554662052581262601383721070540802716610728808776212191688541596859063020471627337178237291738711650558148856874182491208190840689384380859061376004016050612696281027940604131593247219034240303864853963229396413147463831804785477064079837717265385921884775305458994206084817706485781893241533486698395277369866666229281934001708462946331668552370925770734802037849688178047025238427942478014878808694476527331113117154120295209858622106269584909482394139520807988412795490719506745265411572593281465434051111975944263444120993767592682601884364748978335688868188498916118812107042457306850415388564955864742132306232489257437822151087511160863300700539334019037019552492940650870536995426199464636913267952276808030145911645841614450693096133171746600255449317602161637547276731598224907263516668750661468836559587396828319516055307600958897097479177447467977132690094611618514549885317038835943515868447125590557436987545184411483901081709505165710525426934980551013487023532836413776568697915336811623809926047250257120227426899317002130414381741541343487882587269519827946064749914210422881957037770212133362553140479825095638698670488738619508249357382241911387640693880916744981301031775515023387522489665199197029960258877259826296879498476398244636193893021076826118076881987303567163227411867078840936211713685880137061538280067090761390211725598841522174465502899227454446289525799610382724635604901259283076662958300487531481680357440818244138478983857272098309487570585980140061019102683661991609712853644599704806073169311237494808875103145692139090110690070359334791479229959035009336953826885239603122389552252631654745923880049769858278125729985411582403419222727362752098149466427984250189021414461494896701983497220027342678876650880481542436558010872263329808487099137534644517067416358549663898508234496578128048479115991821074536807973890121776661196520278560814935925669928655281893513266047886620593981303821973026444828244700029161899405713920820905371126960096586771950399093330247174454070149608051244560774440955206869067888001780163569623530076768302183826209075435269496291145074826508907534747002375227405618570717015472481658933515024983971587434083879529279528404096664437256766974204770868344418651289035181084450724572684705639725231174212274992052839786715848079640856549288866984757650785574622897079600609359907433187936186640697587759792667012306785532347331381450122578945206959834059197611109889393111530136438028146759466503072698534875743416554409350987061811536354695163212986055447263612857856657236551846462434251939834546053029767481843222218127720163942615187645699024280740800536726341415089446751686356982329410666969525948625297358267700504165799837808604272885040651149822655360306386804664740356143366776636293188470022091218999857502393774177605658541737456098444019185362695845402150320599319841601864620564031987008227559096209559943887999464072488888364773959484395712769404940194951648188145272394093651402758769472776084009359345756467981775020323421419237787653694352437466660828395083279454036381005236431697382242964628424395667673162206306068285903640604811104589233279018710136948382093857989748392731816840455171134631066855254956045717314505525339017883093046477782656730293370340690354999850310305643362689957550285599640347523173596468255344588298464402813287742763384972830823699732632913118252542656472291167126312599845362590010078895249133344744307603677042877241884588590337713197088940005752972641987201003238322037008600069204723997064817851139521736779738259604107241988857797040940276514542690267549789772189604858999399099366018296436825044233308854356350779976776064471450177090973346665481156955558580595949150946392120664862973383735144965380746263309641124112600826098798150135943880650332975153208295477972682897834670743352634462344016674321476475547100780188041064619303988150192471452773809060310604447043830984694150411130557921899777247573740316657990891312548130790980150116942446956676790038953981869446523433713570887131609344523573204503870341419033003899430337409373541293344002250168716079279056142718956555432004390309194377494046559469262464405481575812384038114714721660653381861554535653816255320756500679452706655639829553284380534554374404642053228666236525225288445039666895389471461694929504926831187540475080903518262018234010779269390957426243044561483808712962818604880932997113064919387463056153996707125137492521289481940024354606727093115090418339084957157722647267297271971217684118849737499027833484106465024252047478669058595543780469762032651474744649543833187951455961380012916357176503392574070425608338027313885545000400028359109121110907126652323528536940220355278498819921015533830133471827898174354722873374771639833313946679408044683872892295239402376801491954295201426714037323378644273366777180833911615911854017721083940616180427017390533935198389849354263224226182882278841781646802949887789204948762771993841666539847533116920087549623462940790191438550492245151944379108654221325412285009964278278583121911957411562321459713912842167450222246649104132543738196409858411775487594978130732776315479550981973753764723990026641802385319871828475980104284009803611278389225282734796680476022965814346690648763700204924288629266038661726039633745822016762951415749219203182481198550749516717419469418696750728067748526951712739913884596200342597143677463641458718914690350966438739088703191259189993011469037564580083662305526640726611432955380553707058520385262438909360600785165647121684409823985024325054642858799154041970943798865357404991079092106079920300225031843550680759495614857837389423646153235955112373583991261128203946941048672673456477152061089775157819771326349102827781031837321374060136433955680982214288835182498626576170672459037410121686536152361718779203319216366774112748557130229148636089350557875995086486685618952202020967650356273438191175622160340046911409121506015974728702828593936773785766405297080134386429424510449236609239530247952250658299442825335850076829174555094446695556127579001500843863265512854155407700220565868340347949412795129753452648468553216861392633328307012552120749459455141252972026955548625962948496090710755855379698925595674703697244600593092726465334639544703456623069191891463427990764486163434604264917633989335668002163845181794494791372186690380709896217905208278014345843379010297449867220237209986010408637029081345649172322188570666107541685448070976716365254356239667216219502181054375312140565753697002860136318601232970014970984465312992299004384020354395445412269797462833408727914614707323089937854761022032635981528646856405176486924459662821093655327752605750900878725425678651242511072974023778929958378661186483088571590535726180185867900692696391412897153982628506532748237640301671606584268945134169094138435740583597261971348462197544788636088498242284624525131791616881087360410380875444415501197208692823498152289331905649621993716896217777327550864777200817967670504745680058766985750925096999242855262849910842541730005741439479228800488154233551975224421661684070368117682409380081372113200804483576540674487891983839347752411617022253845756959691655500281699279748427431726453650644223296499164403019801669704552726080019791574092611758079719298302137753813272075913601041118159734494350989252319199487876314875692486396208519025131027203185172020610986338187258323938096393744565150143490970112442421481150528635966446108894544840871855729196905349852118430877805720229463281646058366593123791060649844926500960898439014406362362198883602421362205029404231991916309122137581655211414116414378151740818753389115513943263441740650178327134711473407007398184187504599720454047736315134142227329292862249140064557824779485950574108779261792944521592583973406961617458667063224440891556459784896376320712775604264928823230756715922746801134774430231383974967152092477638035179691487428669935558624226045508551136337233317093582050223047760848445094505299276378974859725676891504250685100038716011365447000293869272781376723981561172512523628538036734029419592685603131941970255594087432034187287324668989667618756060097510033193592623780385082634864335727563497833957566670638525879956771571244922184464830639782456929581316638926392900241444138229831663625181017136376018081087582470144122477639065570034338073974854877157707794657439359827980348507108110497105944490116802075930642260779527144001054730627815949039972202150624679890211625756946691984895468662192344605681535097379800526865173641191487553386546728680816087046762306922993844425477634804345154831333223526738318703820644255896839786841507475715689290618236691253072359590173222224139004027321466969000773856492797751215794497226054935136496612296388546919980312018989801540316922654975973076645383875362748061824852263833594612114921170180182153974658350121778841377330146305475285386451024921133398793178490860676627861285434676395719796234148383568012112961718658895587103477215992625180404348199298507210216979256197928319135076123124687876132686630204560537449333817514496170944248023821023847189017241453142480403238010527349035457696199082687015067237429271697468872624920304802070312510402147021464628789171535614818705805877366883199875682958062016927222082128229142656476122099594178635448837240114503841144217915678774003574869583799294618247557301259207942051788286402984876839656438466977004311320993828082259300948980279395524204210393267697663637346492877978720277457431967650149084928789197142630618575072566337812416081749835292382058878551810039542923734200247593067944626695563443567327452808675081594554218033180548978405688846805903566448956996374185160156903405758672310072976003826685120363453620957418635939316370765610401377338828343054502570718654783351422621042620700109760960715513013284572311189385784919370031757369555272299298757098782410737874253209272817171707259992945859628174831650506075251005565589908492122624418728956923744091005955318965407077521720813343082809643958113176797271469420662300061842882709696717690427854922017022552413133761322150710021930700850808778091240836747472320610333884200659668770516222142856313775895485646575363854932097269534255356341018387594320693882172708665364662734087935793140398194446798182830481893170195732154432338064656393300785343350044019038475711486502327280824818178995199348481816126286029020436528842604455163722175135091907558907660251000712379210153122346468662351030841470229855630168884532979631719515989802739142827629220233081372973226693776536659010878936165683459342363101037286104855198889610442337040253191885839834678179758310785383812307025506736766959841231480072534950932287268886442724379399067637011662016863155807118528880618299605760369638624970687535046057577707748811637193795677088401434298984946540289376547924076332508272643694685007987573177070984744565739066513282195864257231101806562093373158248273007836943736788944195613942795418664130638557301619779126180453524569902046676315407399481876034316551777490805861991750492753263076488902583319420269145747686298954889060180657421814734021922183427216645680912581953659068388157101047420641604129078277550215254486132124940671650374533746497449584393413354017069207844387968462878667477376556750963916485921773523580852607961414669262617633355411094029247929162937901171637316515120503806739438462649374434229825129659765994442210150909457973581446748024894386167012962722244228284821534045332245909985150457452974339938117588197567965463214757020158104257325211823437341737552285177725209829233058232441508149905704170158003025020387662344697711903953510026624224136265253693930177684305750289261799758345505018210053154746270190828353264411636903650976695827918011196206730196077851041061693529638646424873554371366817252224440274066702255783260649254407822017159605867824625055415363588435371461183635326806511567274562740816006817912004197483902942663186582075326165209096644900532011789499720922410014894753248622015659826434316511173705133463584554078686578043618137651299944063190452871713113386803361715393186260930185769910334923371498772497291027938366649319553014759200149327235968323492241019660026990765169465498498185096001061943992986822020201162717746607063032847512972237212483365050366571718090626057063608080205346236954985318321474900022383310373332621460968123648973154173108619764473316136703262154643624301114440659694219634544992219632181678125988925613724137531612796387094454140682686460606341866724068381506162224523958512788023444482106568453768222411012451245796124448288593757341307636463456663495230552382859727422584515054912305556706751278065438303752392267745079700107948831485028996614347279784562891916408971574265387938626859155277863209984225250724117144962716042233215981338751801432144599975127983892255021579832089752363170576235770909297167885222080253587607073177225878876320265111482815120167497793598869573377619219605070160152704733860508773788768932137838406513958169566957148774942511564127705745572482162595030394794316116039516688387917553195011087976858588952733376214748942980420993432183494521562551626719459115233722530067249706247423785948151076243082047314658962760702122139899530489065515541007224824790236905399087047969323307674238260500604024925459789583630443150302410183127142017744652919753576188787974877627288839039965107564047028912047298462060359871186030178921329868785433790818546522719565394830831677517009313556715010527460992013247132900492622464838634426292821677282222144248588004331999305030663024400376578957062157734723883798430041768517358161375325877663937913801613825598451737255967683761281705243985228902779527927236195693637452993454945632679443123888389510533928085402457431416510993961407669437536839541681004776273046707286367002881498890244605224713357195398573064449414540874561727354329708833646378585920094762858856317407587498475347082174060559609791115095662967616138053521213147897068283826474204384875158521959381411886906825041053594555610892106846532873864570509027942748074025094046738928291701371221638218589566255286855182295096200319667550685603688063233364384198183864735586550178231924369980687674194219943526317408460107794530272778154883043938366146089339433866887773068422370504827377144206579873059953915697157607643145926280817547340281762585201422221204857386305073582051082674028293919454531956035100019525404142086442599462551265120460685873334505425465435626885650421429250042709439289786123130630954071303995623110598134477170180589479427606004565708737724654363172085827276034296106482810621558077343920159276565492508366633673873294469043776023371388328968558779804156794990238384401035152827031704591734577635798929616824328051620625531503532762518980362289193685852491087905602596498555516918871976155881414119638138191829413606689151898079137636761460306200018027975024188865246088036071878563778293665215581853770914330329335953738145952617746002845392039558619260133257435722365128770486821433000457065385031242928570873084927670302968719747876433070935227353641811389606846929021317062282077925871383083320669828881381352943713861817339446068930975586532125945018948311816755345638088622357386530855380208786522883620813978970492569367447373322751881166575396234594063017595186401808374992919267963483241053637169022364350861966750983780693382764476064379506694805922892507952245099102219495260305043825774356748324818101863099209642085330609399524441984469530783202310518253955804961533796057893152698433514482712129280556800213327171464983038562260800687604882851872755296021535054474640727391452043608822380718064238574873542409941195932017524647803653183647154113845087864687035289006247980911911686387039090310793534297169700610783433470779164921076633062847496991563679200455758553779098065268734321440046362592245426960238741383666018201653113083191466845238658374951285214651190621995061095744703230848362624070851028449895766860300951391680393419746358416671170161613451679620149481263603849683238277261951343944675823939396022904261901964991040133416682808292504861690027399112033694584760875145810793376993651350751800853355840707908648486933232780535970632098246759853555950349097018784194604419947772188451472625266197519360573596862939352195202087872551052513145644926965739590243755171361723563581305822855499445586841389928432537984393719605058981406056435437195538027816516026164795193782969688414557251526672481075057503751144062445779657249243220999480200239827211065628033080544470686679268953688968492126543949642551762987523156618542217538283386033971744193837003961171214405208986369880098522412994917834716113099033191436596767091996677287049682355200213834509014780588937740590835555115857236573301749273827386495141589604293222578925149903037079932165109171141687037159357995187651751554358935787325737412467757436912843640757395630977335639458742266386351145895779628901944970766145567399011010899279066027703317555716963887053357333989614101789996798543201112398470381362284575545035723704255808743489091566125114816377550616628690844512100085150477157783967466139232918673230990111658804383287473424552718375281229862584946302822645315301173490668593065684647715461602856771605992885622063638460870707536525123504425654719941668478601842281743160512131775161673469621722790477346762668755591325440007984999663826525006928592085381533145738828145678221865268586897404309140285948401099268907238358514172422937953420202602282964442154656067571927760741156361239468288439028046224155727241942769164325405495520816259248977673752873857439540825937027735699140516159255623447479894909670180980793524244916303068124055579754709089740987145385588061285498389078666888468848716922190610846188014470548469136853730447515012679867699397745843140037895423362374419139992340041524002696592602656827700367853338443298118094352388129492255749213585909099023218074227211291037267062593768469142477798030165644696971482766103583371074302121050233780686092197600577709018061267493513916119691164645581927715350194161238929318209745496314735090429676473163376539089107212925531786368443891802367423197922444745229072366547204892279997568864130118878557233511544964023289340598787905320399291475864629620873806797278066784997081017109225941114890269097624589774829607427257795698101468064744380173695793207120757750908180750991534046989528442814080524389049977313171265778294835861097611854202782678537012671563933065116032899613917035076340574588157720675657595811028612749969249612051586814017906639620577080237406414363171406962385064348927387895932590858055023245667041342817365002665966834365102585811797488662932809452621906321672964378152127081287403232085659960574106284167617751682190220409203535264114706460218171276986700117513990331189080006588307589145644246265184505770018356997757403356975701365601274664516624923705402514040475275136206671686625365165825306351363475643208249483006237540603479933456515963859359596997567359232097945778823749382188277873795864356260529735649347247049260283873176347903091391537040439061518282461187043760842071828649117489364828417436796540392956228599521733873083105070942936881360588036467658112384821986131352435711419009210593517391108876533068911616985104807640732278895927767640439836114054537972015271965384347858615163043014285759716449211988595006463135947501348844198259750084954661667895585901858443774974082837557571614659297807127710671040116105898330523488876155276629613930386646626004176523786087954821273699573098484706389577572192692051432096188020990418325440449720142354649754161404496264481496410094911953709873170997438159167872488861720970434457388410875641474334469289192053924148134574936198108287780415209101803569146931531259944325394267775022890726774045421898983675978751333343541287604407168355589570662857431729889760344251091743413406567530360822293587899202857072956526708126702210490844760054800065300567016391472787482422491125513654851233046991737404376107516232254742978075860197695295495387117144717108738269213691411845005618937884424419836475278628015421977432536374532925693421314454525504488846885654725256667492922972568732467424276456302296453301109270541839566239520291010041719028877945340007641635013516609395959597980857161401706781006744021109867589205471564687658827594829875787082774163543932218227935993289399919306235763851374231069857676330233638970697498897732512309183462401815213014209972111192358904151501979298766723605966647854127505082984412423041691231780997615165841782141670400480324140873481752492830780573519651761485402500951996255690094335350879738798136217481886702840886439680565610052688411240981150993346093290930722535880705411039540032321766303877516845627263855933019908193289823585240668497829563458650713541308364050533268587794339615783058600377524505661601234077265536997219163637562960138219629634975770409260937376473498468465404548494098094318132568676233171069739561929701899940386939480668989131378440827668622656226204241929769654195836481114246631800769987270649451321318234960561150489789073172989979520086576077123306057025388675767837080671204613017072303056759795089847745523901541702711221457965813219878940393853629787982288279810854876646078897481661756285786785728232937722042296130252509301452299019230155207535201731124764012825321357386650537755937891247760804299000395874353344708755998721799186560947097266247674895480274825196549207772019102233833821003038711757415183417240167499577796589329145349817896191412075089027326654520351785196896297431503779294126728087971804106341044173578793896463518188139415217090514841563945424348018344655728996889055549923472150898983037144549467940814145076461059668126633878543419596685070515729181771786017583670178869084752047664411815010872448808139921066450563413166205377466308343033828944389742631244451851319042238905382502542866235547493279467847973765292847602552380946641521532470390106345190948463345012132476187476941992629143541892672676321403175337194945978525621210500299345187673809293118250604834698005948936726980768659642762523613724339932972909544116187005252241547819889119423398216314583917137947849420444623922181131766420620146551362488793584980555681378964548789853430068630301733608542491219325348126304577154249504911937543997745365749629756230420707480680659832304121233530180586800820950124155883843682006465983720406297448061166134941300206386673191349741548727761436213284129702292263597800925691987031670973545516131321983243723806928018661570685706782756092606946420135696344914826740501327514607889917683557826103190740645560750087168741562756771847445424309857056055556036518914356568656179157905869054564744702563779092150459284467064765751744315609599809739340848551397345316423387234904775684919614649081345059638285154301783981507593286833339148997745788427730251534918807935181245228541395976849932570306768833718730843252210699689409101616044920056764774051726448253241107865103683175347693470442385592798102785194237355979962171949223817418905532913467514757341325909954192208102700046421568050093203962549186839763441995292468112847806778723757546110077203846459515155840045368939866662001012884109470717083828179809258437804046282684208517644938612221229628904029312280992681894961079664866295247489489573644876894026954371839586594924461424565935056695541905463015801615009532860342247889966757957045730409368341438768945949112952202829440821781166291153076604130765852187496791456253565428679277776650715921911997498390381769207839914883966630124710045385411213137069807637387378930471297260900401022341522015628511411824173419374861363355372267511424078948458626622657229734371812710953746557297595656007362611272008139239109100470846672864405144961487521091041516256024827158832936017505172214127420224937889024213513360410557119006747333025215753211994602634761488410196347320817163363254478285475981709827191835548404581765628230306294889541708810103088866396061101069578178468829152984300928212387657576287981480444499834433909029723451690383333499777413656024627971407518760586494880063959066814915799744906366862236091498408624429848258892139092361893562283529548732616849212206291283059849551851227690105075769433607053492709510440573813431795509100013731555609092805140137826641921614866637000491425196571095385673277010643486135401758316907736792365782444419401766980151497760321556796724463201175302118456837045428043814150461532583344829649771014348959893816614037195288625153642694725932824453408429841298316174547620356345995391128831322124111227286644727107989398618910428854615201486315868727830854049715518339591351544560133559213028381122251672553219303814605754329981724413826521751503920334992711882515088196163848817466734509806973795450136244687812393758542914075604542987202530934360112177449007692055173720637181634976104620590761852230297321707239481336847640944396944740687932146298247104269969234499268877405534272918665860820244365777322700062898128763482450535262036366017576714241727542152607683827760686955073258641601885095157525734960642644089588207444367315847394250574618601469988057137469291018154910092644919547782046331681592258515808360102989822469780151445827857056564691154486967263803912970119558261793054107080795871935725300788085213159283982382040325113383718948036498755013579549019999920208378183224158309741146122852397689025882711686396039650855763598723299789098988027427947070005537323431421022548776653393503497583199639819309929789036193668211915719821174032512795864624304108035209649032187644076334851869895011983628129746953702413160650760136325967265428520153719282976622631672553794949011827684729044371387860252183806166339812470820700013900789697285073694523251801774146590879646805488012613846772499277468493532424215195472838227635840930074707505953762231711090585041073336215305382252119578647585002809657268879748784821117877090242665005308025390394425955830616409028713403643348673190595298067312339555881958920761011521403959504959361948790476473229818642922018931819739928989097690686219472325573606434427097768541287614497781187043652780895834755835764696004926228272578198214296498084854109178365600912194797686805355052220315993382219999828618186301392954442953991456224237737487013599348916952893922555610560207726562381276683693864598528193901085666850898968128520624516947577354504129371479706634347441866220376443733751579402543498076455339300567343578300244497697111918548525288904501546032806048101345387845122409426349338867924285328472558610076161485594881513014262205361327938563201719639728295637693140371800689416207763613211062595399079133473414312955412649552370000555810239502944240630234683116237301861983119416906970485384573084214418631355171534625319049095567769476933259251954391607260958465484462887102505869947634810672142808356215895053794214852257207440800449456848481950197781789395430212741436471497189681766903522164904009074210908599016228371925920201177485807006881554219344603397201918636044645463536797954882522984920529054183823580680289104129406436299952425101816356824191383720806745621291239976537356897903545034646125376453667995595019099163731040834533083900717339772137283464111411158328612060067553973594197417018427328182630156304637327588222978206487911525017489804147930145187521818730554597481846132578081960907133993075281848948825841682511154343276383313266289495665460299428329165807073895888515446053733576140731649136166903235128177747021415069884140325429433309764404516273389162736380782417732358040255251486570749078339144050973034604994093045033030811364151435586477278098687792852529187961233694899555292766207199265739429408568828550279846456581168872428609727871001153665026762963457184616128590022481307136048463550654050036407106079591735494759098809800605104973635110267673223102383593207228409148652729026622774630158043018581284033665270219668029951339593822629970284046951834344353719225482200227354911352404464342490639878072190269456571902411036279267985539712642020801194602154995747613879045838580631167380954749472029711723971574385314717651514034579354887586569041593595123414919822334863489025532349522622030150478912406771822404169550716387263592731587390592662988356904057999363479915679542034793168125166428960459154036388272839748156742113891056299679490276026566779700820583779887738020192415641363307828370259434590812027295943668329509297682796181095360003440861563520841749522544348899145428249849743856668641360065180465394708879186803985045986520096825844515162941302715824949751756876233496828681204917223865223525424490503492158456275368835577727013881726857760902623837202689141588171054484489673871705155666929148104810752248777610147417667929254526442545588287619586879131665509228530442303395340180317470506800358699078769539912385987127545396748397287727315017735334274053920438401180952517361650168442443527615290946622152838279220029171682212373570790768401552829297326500422257414816645657887260152946839509438046327037032919381422142855323135714774768877766849678462175714409259072669761632828364605286937610301709574723996775178836676170633736569160459945153841116105464279435257266498438327669579431285939742270583448605417429813725930748518062105546969615842772242636188203519445894565829931784658242150334153358227602856187991209224335621662018785907247626323231112803424296743150556091790977079197152194522694605562614808214154509638173439566683812989626262506254847470235860748625430356337536252882970848026856761862854159799203713723163591666588944921810641914561487948403133249167444633949343185657615168537081706591441427541949103061654741527609513430754414811001706940741190031142741358958910844432732388428914311849076585365237892382390433969550655578064813351204560023895680460543798439418933399276672791234062050820954763754584744102756984818602567306039099425741075872594058731590853258422994550437266770065803296608162856090095202048194297919541469162967511666571132043713976882138642924267506700125747530801424557390292682317059007558820062223761112141140812229071025691090007453546610491135527365261241278497728481658585869167595518524639950203563026751557530475302450898444255960501570753830258468697461689074344426588311119351342914777223927684203903809790379693301101658981760718313834675092985748976859360072493612722200774800394092538806084996207272761054690514183071705220573637763313337734619725833815140298127665204028611746528048403063139419174285758167256665644258644031839820879558425170990110147301119509575785623018466366963057335427757809516714032568994558912052049174918169534949426526754213549851920032397525124425893301409915022095022427074751652210987563389643441530373155086977155641474883023751636034528073028260625114709174810688581257127542479719625804669556951429574331966382181891385078974452654353684114781403840232635161163241516391036032835177331989142866459793095425670442012627554736817611336112034185339047489203669910381566509870923242291535743115649431723352198000146548937064531125240610422529430935533525461368503894369160594191196334347732132175111503495769950338718406165799968285589531809483036249503089869587828834359461928466584448242545780113714464270885962117604650913990218071070910460231059607608741919422128006725792440004841771234848816335742546730206288179969452183727336528061437812123735501337806707041132119492555402884873430486963031283551746747936553204738806988711116970663172563697212689095934716699114288839521146682332322025408206648324237338807027703031347789672842916028416769247118328586726835838263673739708664514875234518285237163205395135380642873647822394672339399313561448233456720326584466785817674397814190364594721786132648657878173417329517612110219985802454673771194680306858606135314942441887928202600076494902874177103965680447723054467034713818746172013397215574475333651734359858484278336288857792965757138142629679631033828637473968828266349902384236880695647546666692911708166935734626816742110586826798965919032190530060416430795388467795318077195988859179297405710033989550115699227119191669704013583229241720806122898217586778847773952295674952465890597547955032660333920318099028666017443260498271073727650274939114360655986238640613445914652853056078437224807365251810517874117090608231699426767549692537592807306766161255391933274032497260008903355168435601998061840099208628232505959962343992965459381100257300712156567164493770412009528618319308817351641185410250945146751190262864661991469619132541079635769453540830517015358759876174478976300039438731847266615601955704453891250363034556079396375326046180472795473515311388035456933532167491891445641737573909691261575716102146050313950921565531663367183652733266791128241151153799163370216106377578644177866060093366418836485165844928013156029411180443129138105541833414542261381041114389540302396457442320989469247219343573717466318483811058712071343837188939676709186302169287551104474753925655457897686840418812077511625120537633618256161349218598904664100539358188013328142904546564838779603213599538679817384317937780274678621064215130098993761519054777501068776378635737663232721843917053992132424457292248053608208066487546155546190259851759396227098722551458208602266634193210441219484426573358183544929787998819590488128555799715771184608561093407175518359820020962206997259893194090671215663715699593100689176520197376122914304226392479753212562167460326636390683130494074674151550220801639598594803634841155191706561838998095197342486496868123902086725800729475254222354507595175231838519593723132087547151981395873020006430024743615000131897904992782268190758203868545027749763955929674701764736211058412275880438594523930800301923586664283807492890145795809902020002568856466254893395148659782973349372517509847832800923443085960550392189015492903854177923880715082875227664916859522666607568004051977891302394273410514072662993534430449043420527101398564813324153257722481423469342023150739796682598768876876259181381334313528174985922998683263595429661390410823974062807272759740279808219492937197726658795387131360904827554333270213259778714583310046187366544141914486071334899241138509925905954045982696487358142695581325887128320940971529498484908077715198179007415448607029611450795816979144456035713111076070588694790820225794532993302189439544546162791938366600446767089327647759257485525116668153507692269360882906821657370881227369827057642430687413993284611388642941685390002243630160718057291178331568976780969265092061773652591031007258009314126954634971973192351773479852852472200023367343416094643428255411746137031331942970054912187094881351944439743826912858992804650300205144573681762843011143091408399830744845944257448208039957412805992114449024659632270487967563622342672216804383315147420754982106657161492577089062833078782175812489709555591655864238011247252596233815414202247370472331347289414844466556088186732342671853571935551305484299255569088633287076763148421014835458137555505227036576408295456169565720402055186501023884049210614423221394040028881382983531009856036419199577637409052553827603427321847398264816842583387686958651511089976997767858103723514286218568173184762407048196287940111972853898033250281822808803387811479428763726260276225138227639810576490009880488702268201136976058528541164946603911852187269042159818959307365457120524643557389455282643132555895135982375342845364167344593624329416466055624113558268110830838245472836061715534395790457230314481409259814730235834511445788282020529928915905554378813472981576735512991955150061003677145134221314256498509189049103660232348032359054287510041734866195632666085663957188953099190829714177442387346972282367477754309584808775383639359929433226410907547246289066831750638127644828829567415835738701978098187943643403347458844673477664451759159093138082638197194515763848710662816627106439821550902084178277309563286021904248411238078787106511577336548355855829136857179582047406608147945892300821148934742840302305395433645241463603430106336663625092744805326991944485793941735500238364584593946579419360952404601851646582903794015856008543329485125614182408460326228373793831621235401442587917002370779257973845857432619586137290899261180599050773650152536141882631136932836985147929213209872567605883734557860143914515411976193096534729062873548678941642829013277727833763586581385418318279216323513978211270262342534140234314761620810039260553904025252295329951576457718917884572249201213859092569344326904906407358957209160993801220210415346292266712836853214476637258277822696651456394061662256431776407335881606515428651581524034544856092496980566934740248724335379978380415835059628769819369436871617923773677531398971460306912366169748829637079536414414212330901218093825065124613330834153551477971428414628976968484736077411378384118762601077300830765807665787473210588071424827040254851252556792030862561771949317181715184001460898096616078274098177710059257058677331461427018303278050099396906581378985603818444194067688741380483718689731409358193826816473449547423736029989856241384389200505953240426879572547137841018425857131876983501775957608161743068686400606322843042014964117394512634431347336648411790649226727819334516303383642541239809172906261197503475299844042810951317451914795657960476224266021368467144838365500038647188347315598022961782851999192027697826124662319170004313054332234135494627971588193988198720505030707980009045007170535529293783213338025392757227132984917736933774504204699687389520328989445144985350216408900953571815733603846812983737982104415677720302841637298110124099322981085117888233547936640329271861492039317286623070008298390096258378081374645369915433146582638251932591715059406199332848139631220262709759017713102712174043814186650113797788442741384638961050137884893872103301515008009306542184762338474311104893091428459588648582480682254328146105822585962110117485567827805548919411147619107457940996054168444795393642351324788671839442997660636169161743004301501573715872079688615300296177535543647319111328797522768472955432031555240381022489144689839441425488432629162952269275794535760582980925425243435587432475717243227615147218397028033890129206241667214813400285387759111687870589660266737582492859506356819868182854033080188447223681346210026343748020052870896030145609938383496099206857753573655580337678334907046361761627992041777432243681913353149719439929873697767973615790409036341781075732552604135569387142150489580069059228150787480891815587706541549396541678355272636358620882415403195627703381680031373600339862959861256855103088488398942807528113164142464589140860823948903002225592217403227361067179563733195021520111232354857627400257408600620381973111061533571525428492530747944552048109754039244094107234000202890311160061377898536114462213156196535868589085537120807931976759184801789150578178650767028335543559240079692356594870409543579344529714681025200905862120110415813613640382261439541692796150225511719323561159389966445160488584082137701402996259605542638170035584488540966488735592305477075130045931753043645932697423342073807850742430367833487328780161031037444898235476861401444549769782739758116841569780139801601954068218873644292814776506584711241540496238616016409239710316449438071533345347158633084225775932408246751290958397472604381789055479167720749343242078886778006231545832140355970456805392118077993500873026598917547611992482063526833260199162322511988068876539061061972308262137274212362601192631781870216262193018998215739709067520078471314779190848879523924730909732939320920008061935532168264496994415859837717730248135670796145809692617501618106982729642154826420312221707257184318769663649959580344353741415094050559728420477879171251574267079612079129005968923714753401644092202577436432363488690061128745235443498685530431556991571318314686452089729971105334932784841120072416378990897585013094402119919571169469358981888874275546171812507025890442625221807564413536514380308858399475745887606440132993409222598158467913583376086633352425049031057671027172464146700469562010113762804746163165405549998345766224408308349120847921573113378322078557678751110810010078902628966807829751922535832706052349998021023159732489450547367994364983759444818753910053320104131175293392784142179743770697419759502924836968777382548665824247559274864356464758288077594892849946083047206759096730247052376557310246137457310571515694504265887196553369696329888988568215679722886799168991545795249867438083113852966144485116970977693522605278472427336865492271048516126173228654682835936215158327688140022832472982170363590427203585621274961578904926183847944917636686596607468935655966513482100113879533436465112322655968970713234014708804574687352991332220144912258677085821465643869297133419553585854084492343510817800164503998555229838045026644318336542177989688064443920010754798573533417525450682370075014801253952334631593200674640742998021620350570007243002045050047418280242563056264184707288308143136849882334818201572444707673614133213166237992607661051819336664047812514626513982133689445200155608814865319990673302613437348555092299821915537212934649314030985969316516897762566760753899926291324824204151506464831335347543489846040140717706175133822919287406310841011003237881861765669440673003794212546857266922491519680342791314655087656667825682279981928557353950243659543555849617902647908505786354023821364982714035368017116479630723502077899392991614396101000008513920993119016737546728765238454980330011370640835581389578029026097212024613880097225047710504554558916484166421733700412404624264395044561041512898856955744244025053913176406985192929416884725582053700321605214894102915053954866994241200695185230877096216470172335845610096638812034200992658439813784133043124217869838214021802992238176813321544292238415946424417030246002317469224854143918140152365454488698546831491846018011403841483786385486048046948251582900396075480892304529920825266193049189832536664565834547825565272097691539014984929129320373783496472669568612547524419010563849564020258131158573616705126981906889568840913459598009102043808578167122443561327540917403485172731419623220159071767164634181265334172579180889337261474995933533490420026635779482721636045707020075066644856916051746986769371990262204870096872344821264252493164533424762459862009007378157707262943650125872026738713481120313233384139292934961552300619858605953994223695255034380627359853394998348726750717228959906939820752836735010042777145923061921282857002778844018429091493578225028248379517724985518249708919900046379728440636248273355454896429262457602383621514821824670240970124208989319946017222366257929124229636123991473275210231080063266824515833632912250999546017597434919710298261740023394513299620667580102236172201135137461873955986726239701918298332788820156807048510004359341312937654044446112285496689055794876058994012564861090250518686461211845080762039291547736588340244152228419384532687275554614745540773724041734565975926664243978966988716111398022019581263239530396682316183232010738973093216362332483002060071281722521431079755395266621956571905859069589156639314595249001858742775892979833062658036264600006201501299367171063396638714515820542039957142287278170300766240285982900162185714019261228868548945554759861735747273383808281201594218869509390788738929125660214778100904569723878888463494497054357029919845776276856181883823622316753425420137043889699918052853785797941046341584205232177509137606362045878987640412538282941258410580879427409811598515049863265110672007491062731168505129973467670965385642492729110053556749588685052756122212091057999476747093323863975399981363233024288637072931882880970736646447731781719205504668418055795534613270983234214097151233584452248691883273052483473463650106986038212730512367126768873638029151052281943534936732909306027513138572234652548308781007590718731617264891104317911678159368521331020463793568540345566109900832686093158306438312427655853616167012659711621920030048199523844584587147608512719322013736812983898179452953410041229221445422967458108847243035905287542268814570935563290646048162725699982551324200175920108218331847553404166275077698795672741919074690460986792611603990301019851153249403452539935171937767731465043205619968808729655158329007427099820061554292864587827763289384670269687327123212631340331297182818144312487383945778781576281874716670091104992743199100315740917891994875968965828316878468026349580070735613367156303935055753932233189412600885805248352072479776017601201223446763823862570237224366339974277075175332450586787080204123340735289334217207427035890976509455703264831307871152012892025004443980394779565747609570374249424294031035217718973426350517324613780968077599504302160052710243525379797836737625989829566025958652793795951113415370329804440998731658203990126424957954321372865068680904677045749263635850040874612460402057392141076104442216714209847759354257019213479033361087359295746967211247524424517484005218272912779089896859194338685998290734111384684048512568444484937111478003253058840190145007243633683080583507426550242703695600875130370736964189290142443602124962304451060270429847845336526234468272836347653899095874750747395215218914002894191843556177341586073122796940645741682012872940806163631610220151151137309358386979692999989577823991031354228135116263634742315168421918915580879750399243428336157903195297961909379355724498188785878570065815606983777438664893031909873070331563786511488202217749378807956848273133948805939004160203733456150594136618291203629450479592602970745215709024682276570681850132971602655375437116946121990049408297580374522326856642012326428170983852986198439624718620522036610321893476333174948150085980316698300056397579468307608098462667241986511201192200336230725775678850221677767222342473922546994883073538723787853758718910597174208154949505343213922559024914509584308958507722048936227789406998253222305108141090675770409290608131720194631979035672117119742543353835934865795332805126225370950610695139742559956196700448058179974120813314479243489517093012493768566454270026380906545344115570317161712226375039119414763319638337254101648581629033087776128787608464381412680325203583252021237461978824347028501114986028284346527356922789060607980046963663981212994699985842750421568735649983430886952958440860192410509280154422403213470713990654782172558078563772255017098614241570330899024115584650688192711814880597245666123141583838071543249140270207666526901433854749958705089550010400583305633953250245964605716864217973265959704188953269455985744663714880351225385713492824174958425755431718502348934617207168863107335176117066026257927857602834078613528813625738007174933703667384067475875449149521015540218954642576725527410843285149861891011084849089758177602699232968801067338667137943052970243493384086244632434251431864985916977035752753050808071635456032286579983929571669021628034015048187074995497196512775955174366781997554616566224670015145615680703195986213670664880407323481389574079157743065362328898933930464529887162108471054486184483797694637426830322151054387582505858533576095683855139026551016478949214342778595862662415997734436336614573721199604202931505815311658782204857408192582437567001276400112625794713538690117369469519449288555411055920107914703238227252824195118742243076937551123137022201424540727689266067013124235316670163354962880360464051596320962625624931307209136354432567068176706753928643108421123332203616895755422069376089679671744477531536151329665322302752628798518270266726680571128558503246601239419578740029563314091317433819128989566929033893842757458901640100859766267658437669193635918042147661320607773951004544976334189907915333266706629114304769436274386158682798295209964469744276881179919793567006857687980066612378874232181826153818840730423660407559009110465608260699069073807266124223715088363975672965015763888326949381285944305904453594293503402954692830967681198988069714911842477782938247643870680597450420753485816184166387651531269025558084383959117702057599421030461581663547273518073724318067704801869683128899846892674712339774814535892425744380336723599560410413208540955474634448926433186643314249214619983374575156615702297786244944383963055910726621101296625677433006438175111049793790408494406036122518271113444465949580830708856982639481420918994169466553300436474844177624807267435045298916970584017822035445841053099928616967109357923828954605324978768154516443249529244963241026499321185718451883999321025010017384933253042233246865428111569343858494147322095474294085398496538501981939267355476461286235619972842164138974724629448520390932605760169721314255443418707962412260051592203589194164889273616501923933248938406805992440029904385575865091041369976836743993955417546137347687680408326291944085474376411777117655326624984120836306266742364779208980522853262736869561127513245832775881511488325602497178267086983752167675138574566154734626052306991077207154472586512233434960730704919068120086830604673759979588921259231469600487613519010784090190403643401011337623374919226518479969809283246613797761232416270101281840255335511521506317019364865475059516157478561495446919502649856401264498971065394623068359752326746852199311239297933492741510505537946077974625729353370672745614016277461964627156278770157881943594924100970519214789812747976178971105326845446955017424756911710775881626829414935972455523630760826520681857373976709255348132921400333219025396861686695411082350936584828808715936674369928028907260226652024549089985355642437935469814162240105548057466403008551194057978327316882560083801573859102605543981303530845339938439379583978809876898446259671685498192919901145752070071536570036289418147663140146055817706362605719812173498558319925761090044338587683200472810537253818286357196810419326186800271658278015871232824891170481148294236473487186594172233834529515872639617285453380348821470956007279858230245531541338564634332491634758423686638186629141556957357061997677375385909495264638578099361741926952770227308929710471874746222241676225816170184374937920297361100249799441067024747016870900299597551854103377899778792180470637442980281175518635044872511633653367885765105750148329809698541739407911720329151742393738189584646573417508271624470069364993364357734160576619572744000289219227566477119864919326312914458161061552317035252357417747704930857811605252782984859330139895569690899024160219305597477190618608055836027357429788023306831626565012229612009176977086807469529920671662419934617689976462085860868472026972866990686868978195771301192683494640516459421056158984169525597781572148715328141750996576146591298249797520658547994953557854136584208637547024777554799322115859299357552875779934084339118068819700325261780689641049519206518097720137283619214849745201055634345273022108397991658500337715372206117030990177107684943173490500528830522068164314054872670103323851852310135551700611351247103216097243299922432216689586538617785938380520712318894480820910718573056744256323267403380547078738647301000999793301552583844657739272654505002048309414062271426850280766223585103062248388434710554599892489834405082131157698666598901476808479646039878196606653715482513849955320128811796242799250063702904108465381835077036520126324495184572456754614200638661634396189197174924851399367326044040170744187287569295078003042571491066237789844887360347348652645867118889935692682779540509021759959300519085507466227246361391744282049949029498033787966531329093149789778213152767503143016771661608291591293351542029267057988782829619692271536692196825452501724161164466632367253354093580086586975206280462978432905469206068075825283115544875453546441298522986803083516763080864655319043484279920452670159891200315991085368267111992614792813646347836821130841238272417374179819307762194433487834343859831029944973226523861055663760819878394659252905572519588204617120500583733842153459702465294589770240130870497335484832232336865669694256615654669300132586441038872768400469093894352280801195739696514909919252517449052218341406673753587676413660989289878543953497989563058199675563067056531757390372785941538346307805578672303766373133152228266464501217405778765679218172977465669792008456908199870403820807004341597872776509889720266403961408833675720816460024504694366868561722321180968291370321498856404531728549896022827276314641857763121147172645177573006834914815649643229960188740471961456602066076404954927695057589645360595302013646064382305026198728434194903002547087882074097670567368865813084564909756085535720393722021057669989404868462502659733168399616932926234074993237738458182420058272246512977751923249322203344444674974648329343620944747368759934380737413039637597671407129354119543575211577504759792042879675730291768451560712602969758977438482311308927338545907460171790115688697022770070239707796943204168709516151152969257681434371404723863365356311751437040395150339002665087549677091884261069499971564205796852572277953877386579728031483554864353927872226570583179206093253419703530698490665699545479262999321778752472083013098122277547620765174457564601894203029750577217454132306730757917867083757611629272597857533441213906102127277193459442630709193629744970673879841914938053399147614921413907821092445154545838635937531982584930323744586146387539213019384311481476144405170135835746625580142561828445421167585012217763019965444727306853539281494713532698015283039955401246255022367021124969207992331447311324593319350262981855120006013759077959032160268174095919118815349604369080891952830562109695861656281322085572516651273014725380683885721661122794256130015557197635578613935379136076664856222262715120563443542857678531880403127763469245859566938625738575678922639510856392126488404324248043131039708003550959984906323835604053751360351341669328941474919437263633217884056931482463505677065802684678444764873790014723282630839005110730076601162102143637333487305457110724357025570374980454863606668115381095765790214911217310875734166249102166677793007840473176052388032549923365845914798863347841935798767005150528771766366886727999312892572052966081130663095322031867737558281449542132483926634457398991179381195679267575573735437934310948093021706861073799787259839117959636633684205392789272048794580541909587540177543486905385940615128229051877445510346861574833067184365765144650489888372801646746747525029864721224404948853000789727229830660794061031786431974036921162561194112988434752016169693783749115420111508789368422014048902024037485040218190457123706433708342080036389183122278118522520280408969595603997038200524422502210832233449244717172924934526780724883237985060062342080509120973979212488989362899343827038237532771418667741396040966191441659099122279570671432768249682395032573502378189121202937182073642030123733188005962184367570161234367261194613056595070488103067493518390537118526871268830030222698012990544900703867573177185113306509750290595591655538891656491610542116157895673637098010483351878130126495181482697147915377857047552887778562631820316781057360873620882582107830865703809357497746331563032396352728623177247094343447914346208923985395671373192947168046378483888291613507263303055373809452706480536259331370914662944932154683809110494359193428724674164231737463369486977598977488727916143585474317475569827149421929822504110583673868826785640609323878456450870302635901507398399211413947923668919995373224865525684057668664958533419261749034129111520464001515459904773234926879696872148767831368396298622344630296221525134691484248327242891316206975544452302035791442972370601054978774679823743906128461040499228461239568632617614454019093699663610772983963000798813096053180325308115085399535731804037145260379594610676284276818438717730382611392519719546268538595073652739994580939299299807741073159435145081442344088594885290544128556381680020031088470225522612532056153622005664937748862452115092046351747500135638594204274414614878169940743194234336205527831143022858337292136010568320376629871632008577104189712615470661758279745626483253167010880404183196697090950285243201209721901968544885125923159481227678119570881776631524243963395981941090886498676558378064586576370265380053392357872386021086996794390626194753328593806460380142312917238145423436846137799943068147149576244148020437940432238606672599441105143435442445438425500214422038264674865914190280066079983229333084105318892250884384978637222537681718363272567755352267721293621165380373748177311378112258959558176169461176419269376819202336468220010004221585682864007839954581477978767123936970537684057232977946948177441393888482708669088577419251766304736438765162308328472203050378202669830291385334478824280423790297974363186081339992541368617483579623280168466974067110645285469447648193448313326459126481206830846298814407164348927071589275686460992567138502025502704374212194301537929816223309825283016492161956389779032857700731000149071653599145377729500738848208293352933064775046886576525158221734319177293632239434593503709654339872143218632761111485315236272924612425731760716476500425397539900517611692604296707599517609153613012879844538685631429779847882863454154497908706113215495912443449475988417522915900272478765095110693411054400035940165855292806992622600640217547528288765604860092294787069532645364033320479376561465478109982956131094666314725822904671059642316673598357188201921258989824972426442843713916527548407747034280501941301946521259510063103872243873047516973221408620913114412117795277642147207721564638625828961229098303465622526320184116024326730675163200179750495126180607744302732704997483069604218776694462105774765291786437703319535178748666793879161187987165846340887279050907601063343754816287870554861484987194349982489781313865633296360852489576643432359803727391290067059569924126699846213357611402274597627370078039452341690650955029649922201641889958150368106013125614739358310017862114669654153794924698682038239503697728532608356642319430849666642520289129199348853719900951500366557392737807414644628792798638741687845307746546146728819554421494129103913513346909258738092463151944571795836267643333946556830981091198007869901660697612807690706277587852526897280086970783315331719249014505534333998990378135045859372850069193465358674983890893727057416853463510658352653702869496775701702362128528825898330923284467988980225901405504837120363678678256937120825426424059803594907604132791143882465194964388405453332966778051478824337004781114086075142540592918920755927190612187592330258431713417895965283901720441452508679513662044882423830334857286716142481429138204993749015408119609391560783558644482892276079775442840004967910633028465670654089414425120025021688545366438933678010514138627519550499322972780828750335585801377454772791795476517867350349319682119165729227941274742872358350407839456579680389704597243253444006096367296268359464719970725480745665007153292633797679233533571193066991486278815137832576613539755935274842344916359294777221034245426160178756102834403797339077432695077340937479921038205457902018854164570346966635856058054487492784244355499129932101627388080197793379673212386748522258765824512689897486467894537386974310451495459779216284819338021517294658383510389034739742915762987226712439064759824670136248924259390845891029634455661161123418665582715191370703117513442471282129253837521589836801666106452639220305278530659643652150920238992613080811380859690709709244161222035522050846748637173741399117497368375873455749807510273845941029273248675196420750945104129601460956124662128549627582539301464792166317167264180653504826399261077351868312666363014764467412727728735316811702795259877709357195520371755608999842172234001457592473988196122090676519956719598108324001310443466275422527929429496771837663844520508920313764180951564794455625898095236808654470857449320855847689206433366038086929255912814659891763847076070043788114366990330202989675582991512726549461168893546135022483288673776234396651611877743763402214387692898016028485680469642121381935345111034930518599986731781588272339341827894810467793336503210564360952991015693704129101547997626657994543114523674919760916430262045849706774737471144966315966686935324978631214710506537810680158983538023608038340401653984554289401187880649273596962124522900392720197593994555129879782857654693875429719895917233487748310883839209320819830347195356467616451065662127969589922279095328229886426031437671152531424972357452988715988305402357650212133738695498327111196700010885154434432399255590835575975178307181240542906691736234780835489422506272780261621423480310729392098711629263047006446263211217518274421249771900894562959168817954112944312297741671721147092978866061485825507653336342201323455139672919693864951086670937988364167755748631922829818890784050413743415382456412719489944483871643711268009051891441013239537497916190295319678797671115667959684496894837920911340170252241967165159856219557294603823957240941111011573462896269961399640522272312132662531700519404311185253802161345112180758019044585663771379763187121364312454452622529625340379016089003621395939705921672956745570369219646216187184753684120253167498857669361439381475666703608556064116999940870944691645988649321894804157293985165818550689153781488529138076947786979496582790853297737338656400992509428770503960748084789046051965754325809779437884100819801876938465107570865986405378451894464597087423748810188831909700556084149489083636938429821732698000708501463238899763311234511928670826792243186929429419248608972294158297156921755155201558605144216848546402408425982679500263180245627424235558432645248595631301200254531591104357609677069163857539064245510551112553738290723031713919246854895055111226418821325218627590926111577939738007135189132852636093296635557980104349043095502315628056897829129579622177261700042029885458191251643665092668358130329818474814287513390831094305919007797958581897029206410883781528748085858471648327132592748869783636029100583980674226930282054183300040663888805283301961449739222910163844759653405751922192533858534604872553141966698178235574722493924800967893566145027556597334471990366093529801848111818566430381470380472047086991414597029358380350064588732428808608567380322542744192557744660664917157894783175877140876042289584449209455060463431336193224860137041409241966380357312643910099501913967357445791139332141595581710938120763962456579253248718959640374929909871687092167312534191679237539669406461015268429134383504491275345948542058288353461246702823091711976508540532558132079732281125112949509872450738048076788866675671776344308521136126440267979158788991537182171392577089953698297539082091068647332988241604048901939669308390921339791905371715324581271468587182612995869796304146481820634674517636792580828910618330760986299414268226747638406322408314567676855931744299868652256729531162463109736649665265673300822682745748183324774466449999045752684974704142906550815234572016728128470448618221668346028934412261578947518623034445538565958594119274506590865638021115854404908986151517159838572141732561974246639379644416969196815999976051287938138021334454221680898771210685348914203206808582707852300244532530515939333998827233276626750865806309269516768232035150505574940817786528804237157027648363627925062076795364634800667077988889759279843527764981023426887655441934193250045414003510286118111573485385462623146576939650137266392621558776327175063749974944429260374440303847781201706227875412834382955101934863497420961763568592856835726549172408946974022619881226347614430462223198119306323653715222176485311492709618957652827596508002435934822823278488240468238411722557001439660528009272234399802735423640484096885428265252790845012724527099583223564244924191927838811915429404939351845579161450135154710660750250814903865929462312991647861948204965165490600189294249558169658149801696071957536641490308299589967736569695593770819421112783721902004921882197824097296334101937756344858773323953759714149641032961746363113140197290318118991011338993819590847884684651129578490016783303552322425541478113673766973317042617215223260026687526039940466959820477922885498030409203532909389740340513830336306249618347361435682671546184486756533305171720099540520704745621836604516225381262568961726067942123120929501156118785429865274365311194483623975429517272963140270559053406696538841612749422427274153576268075029871687041906594406735483383644732620885760807112171291495752436548999915120344714991564816329969111102542647693720110232657710881812312504799440091468724267283368591009872176136988230669910313587473700167295992744370804738651156005761673292119651340435598972774783089236478061447310353070767507665527035192186503996915581785017591030932990039103989791554630455028422617232192743916250435569269836542017777517473800923041758269674689063879122934154404679373110924861271220086949560110680774715440058682690327690476332321933235058190313823521791024864801888532751736648166850572704213688285645476030344801475793097602959390274530553314904170405980945039637167209695397453687318942376890415911168910217185992326030396149496703875561547314591059845318135859451007415245092562680808740788197088491625812312581958717772753758213376863775977426359763022662353104624453787625515148062268801390511598244318614788474163215694355604352032132377992806804887485702816243521586479275590174011426695406247291753464628025571957200731046803407614680224382838486906639603950122568208012671560637678652918755333577933905791757674301078637142802568745172719954120453668251785794170478571701160189276162593903078435929450946563617506665288770824546475069007834282486397484783730147359279929766153148924306183409560311732784489257521508749218898491544990382840899272646402836903453226262675877484593843194297053688748658318035014533202980583796799315025481355609142149782791598416838210738495085229927686374150561976353040661442505880546055546954090061014182232918995999193042940495180517477567916046358659217208141999589654865847014308493701714641279740078029593429083038318830435167451235461623226913106320748389761359317701123960904642899234586924026786427603258522245157340781977787550420346345113556532619011358166186579737781376042372677728603922349873217824300943629037866484186546610542833846692390340913808475580115118874790879611574667785813847851735836467584641552308128053588025709615326127964307160398762639117829988101869963739716278510548053152336841841419807768741647935917163612955978172235525694832119781916105386972961979382382335464075506607239205358521648899000949842820470553251810701629990398570904554470425133674579163573450866670424867517659087649376703614368930375483521576748719870516637464253479950316976216595239940901669941906323226540356013040676707312335918073250060509996865117226867687854061928430085606666993996326515519363923764429346228334513874803732843826704128801750237232607248240134916568956232709657664120364844331817382926655828085799881232805607348015637823108506813606677089164104117522295331297807060914272719307926033410315781414402750080273668599496166488765573109717937313298043859542586677656928774070127716737270675006362951857877830018252025009889678676965516174457535660000570084559282405929558652041624964047627754023287906348877742658660644733513773152749438331758512053427720865335491239029893916344224273399217509206984790641710732885880144603593398670259705329221986938763330723300342547402005565104937069376174588790580233513071754332685222128102189163265419998209424177088502847548818769677514828886778626973387600683919533920914066205704154700351743715608227907852978440077005228607954828168407131328994350773460349690120682647838589300710892273139519285239481284311776766673795434625939816483313005041482257652136730327833513308290784253380910527858262060103237923686669193426907226634327135636045825853916533438392568258959897665386451369486225192293771487374949261223419007980219133079248625756589135696255370266696960821189595483017172143340573927249338785002523199598460665596039185260270250777393040897164179087996583772277392012606019020707771938061894675514358362818744202098809094870028957018575112111919923560308896472871508700512117450082338144724422784360102159761645292626576097197849732567474971440230499890468372760760739920968441977428554213842045018772444668257850476334547717797030304178222343973259598460641099528379713138003713785271886084102426798950993316890971011551501766026401381361211548487056933030923518103313164228534272492114964073384661729088886424040150823261719589311231155090362812977410995261701885077659587984753023461793714646425213266912154564788076283461582277900158310811759425827701433265395882761851668100162014834441396683646566073080948153944698176596868849872217267600704587725638696051950296246766324745397106681740518805396121915995319299310704562782345667911577492950156783262824676536189230434405317492676599157092373573134730020868054227477082003932266716030748421056924321260833841125291322362355035787149388403759325106104793642669541089056168332622190981347513447985395578319244105129801966074897649870668494013435600518334995889554337172017039562971212498523492059291669873781096948714871827755257861457030535658206536284673554365246143830782930467076770148825706693239194533016569810958330823632552779176232578729744794203082992247606436375983855921617174105529530565730086370707315608161291890209122954054852876047619123098211460830514060257924978233526055872725439433995272822630648842648462054400527203686081432552519616430494289651690757312827295252752791053200392535450551250579954238300697058395671050558143130600967571722447590496018361753223095856237820979400499799180890183906571148430678051544553080942072640128595173502540672599629425647660849617950119269574241713256638664129846630333581107969149527117918811883491689245990488712166573382748436245708376266522203237582079466800933944164214697264615226875296542498942822798670800737434301255344070823385869723765099105451133841154249023353390514031895402568093882204406698663974455984327616600969861888116485898177636810357213585190561602803882481334914320628868275963396164928369509273364172675531668760673200700033113135974242311356068552142885418713676037187370648873423666981739519314297040987079509681888944588537307044215903060353232773839721114383005382005466335792133296902138010958475925051411374327115153114678126318618621212058694660686687462977599733798818076684823464176402343085738584471418975509544608790951365340839097928129736897123638757232805953287131724075936880837938609016670504126464417856243102647876282375818470566204881715126133880463015190493563443811741567358070349859613008064589437146841286162756542778876491851608311849540667540180851883425846325807648991220713995675394877080417360121405296144617861685209847990701194116714420877896688581316448692218964594553430519655582117176384009663392132453768105400601628775445281484790427510229895619937521095343789365142837521547296770043881559518628347063940926978570208369886964869080236673878260714123521889633576393521890893898318587030328881369814351394700829182848920832584266514987228573509037029839937029376014127086411890097808383693535998636184904434010383632868172166065036973618604384805420868972389780020850142196564593153570248350426696384827551088824760213942953924668595709212137243882685676016048462702093044612925370579301735515919284205489710906041197494534334946369080668262124501938935719564323285027040280373471890818214275870313225147899470551747673249328752778058692289704638329679008593394116252223030960045389946515344869332920132309045322354551884223350962757540602235578755854156018232240347369884285731074900730181802038196965923824529751155063882231687196163236266513412259432638881781797833534789721294403045671355535915968751895018357460221769204009667086566715599560857025364236782207973807621113696347165568846316697128296534200229771183973811935759850172596657498983335759438594955176719251248093663996867818476272543044587121003496219558866373874557175471059646199227106973289590174884087707463487996492355173996311488100021972728616961622296114764270678668842931116885926229074692451466947024106782970559087384622324836629133654136156919064670214500895982546627987432998209825667382574687101790913258462325348847922351142742464883707257263499360950951778940610176242891254112183285820919903068601490626563879223124629723347686444935286156577567165287648882364975136919639451122514870598291044208406149706412581622283492755915949604816878981984253652368300767170165391467364632324211143865142016136935752997964901440364993675167006388726883717485612806472067003908106797618633563559599636900343560751680196315840058217708871545894148335744582805737525618198912277023499860000980515737649248050097815170523397648352360359819182685170419735136565810244849079647740610251928440807690498544588138405250041308212845055551608067735114937301572485291222705051354363426826881076128466361177997246976675180727237979519688687052044525907451715359552626832591097863066156537175259564777428981976414056574686278726286402530165999907707256705276550622841728944065459499146644580116318540562229222867412721527911816431445289428131086461706485990444664835398764757222315991318844393438061817088704904019511020903972712311878399641474263656910915599767848193883245776618543994699990852955893165809520376282030919572361832492385232421419901427198717409802925660174192608718372128980736322738676543056405217591767080601597961256117164539703205312868198466839896951842475123432756940325037384663131739956990916673675261206230415657308312693290222131122521819919305189663821063361700517415813071564909929507401425557001110981206799825450156803866432257827984366999890115151025205226594099866683405664794033382126407836754101693872482609239852118193760230496820614706044199619671243844804930820921070746340079837806345426790017850530692783848834537006288981736629132776066231646740106084191272248595075243516632213923530984961863500504376778267226310795292747826419709965404942067116481223901243118993041076423726723589690340283678079541537674681569296673838146519949512581496620040177795439169393922278800756987113216616833621122842248323092357328676683280903659380112770758690582662746170386476663295819028508227216138336153834951176269251941883358365698890472610411007967006141468782821622237700940441200994605921224478191562774745636231586130498736431906303908639556184079398885992849261426257129436610184521027875261915013573588490321996401551444594357706473373716212277384330509631924837107254081373347746804704469269291498250355021003326662114867116421646410279151659273969356400129116478354427240486430283089830443298265183151262365838097020354224154506931377873792268796061259580819517179566710079403826035530208162691772583182271921572362875835085519696548689299847576023597804839424354049503632876556885809906970171835636202669041416895541084943260742570313536501430007189153604995908343633105242528484835462346837149405483648068074420885577538148678405340062807596364600234350118296029565351586183377640523112623967052968578758989583197009676162397059474979647846821784144881285131004857044806583144902957754473191461685144285038176561221278020912863952606878988910156870961389955362547193939651469942394170903040496562164112837658299564639574822215853080164878390341965816045639452812797215091079422630665982677546635643017660488603640350564190012828034010675972235747130294873148872145957727931166887914042367473533812102517511052352366541503575953683194136283773704304831455545126693438080738577234439294418893887838843570917991958863403976683791287698868919571601857149530820365858017962356304511772216401632915606838626047185573148395691684011775533680745962172921137921799216515065718645098866151805417389722212601385868045305990681503704915448366704244240131449467107535990605936143842852142252457676227614608115888039087126576578286029180905607316777287017690621089615133095385117835871102186776245172367933133244177896222755954129163981376240554817829327074659887652234186769079784684782453394633732743204365545692613232106044125684756157663165828133601375239958765229244050396344697978194972273509834730654106484904878353460738361801211645590198739747346354698754192240056934863036158659037136471673404126316771481236069913234369693196484396622675295492531024368834610672515939370284917471028147627226651029576167983163585556200307528727934068798573381592895419806689886703193298791823310515167421214405380665052792518429807921505514900272942519634933041449858957402665196951095744001779813827473661547396435431357206886326792177863316566665713432431803969694802497280834838966205851688162299525873580852946308723569655703807769657069783109280462879617636647108974255799583506104155889804227992393039638917879167908761549087517444841137379485556724593592501618668866605046877497039361300043501491444387741338800945447450137795838900716037086235479589665560424530248096061962257804053579605903273106294705387203530198226949129388589408914960284343780021194211135196521705540524601830466334666855480051513121246955367621598569514897916321413206968729151462160666337608078358568372940610538439503509605359528143766133608634602190565157377311393110334790171670293110492519470926934289427907140202093742502050109185193861130836368378415407574942697601976992705213486058916000107299050636969347311079552263271620963608346847527461190748748773018053659172154412371517373130921527793765122351386087326883482634399767576168270524905959238644178438587485670916638422857835538499543715804989407401309575576996440450874611806643206194311076471018595341748687837157521645558564351158321144956848254862484814571931748984004154440570881995963969336282953779687741604140910317127991672294237793035032845114464477319479198760733785233589044716320576849639779779823417551560389157052114057348793599678746709079318679123165820146084444756113335150942936894483005665840553586984178427406870044686600983471011727250357205645259605140934944521856053297194656323734612402982235134378853163113260314047223900500658255097968458679746991521526168364507498163699128752540307554622768821472740819360485391350523279796661466227415981398806442907236765126794379884026762364886938175629203951224278738866259157571271924778861779210349685704124114630771430063947467602980313230919151989170917788932855430879851910527245917125790722403854670688338400682368546919052870740899517216160694306624409212178809580959534074021128933985829291731115855755728355947992902857624928500618751425738619301567903948190257409078002106119702753192506284053143405989774338300228217926780200588849349641553047128748945248703987222054346735930491618628977726957564539484768666236873291503125683767460967899066450208585691070785297658932257950750974477129128214211378600009438718953460278235126714609596395784002073501860447013581142625784649409143257408316026033892886261070409361932219503694362784348584290531144977342484701502766650499870863100917755562418822686249666112003469733251622496251418406731811598023314186577642502697050649920397180856045537383552513454875071912598246971703294270330297767401245735471109121264999620185771894535783702114236850959873416928853636198009733379416140290437854938077653724240325409863206301535736642873153435303924494326185484506513245988704739189762419252401737817881079357086372024801662064180975211776448894281854899311934463295675261746011594381060614395848669206789474658844290840637738173703611982464383930943516638518383694508848580947046830397205919609720068992830494785715902934916312811556968421258097663965952357304708548607635891295705947412910348376298688759167438218973091629107595769327731453586006544727352522883615246521443869778426313520377556091450132879418198988412167248632754787330346668212545434138035941511441692946154937025486544485470575110673910923749644452448661710124500826124557151247794539517878376510182780128152843090856093181532630479628321364386316958533344726410796410290155836018267663711239313350629610201757278598420689066625320510634013654822868989261389497425795809768322647954234400843489741980096939200842009524978180086538336545098576025878773681398662240944196068359280000191144313208537727707434754421535586111459031755324888159650949888692244832642550293184149391983019949296352132909757406364622124223476103074658570424024496280877480262601183654637518296495162036995934790793896704148701601537120598425198784223657431475975666481440576945335180391516770542963403358027840776202779312222755369095636017262607962342988105447699970485089600045677585787904296678037708521465001958280606903558598592314407795496841251882261725088793183267333458935983934924869838396463269408524814320396837653635799668049984184207160795718439654061913691544811248251356269476322793886571228411965700228936824985168882148602470882162071894461627368273153351410521357070170013515587998443403036296445682767004000793243325975030367094411618881514531784549693549465344199319571301646295375800731309053915370501306633051351776416599027289784003819561109983469181938172993101499182662547556960457012853100188699700237461823079732639887729001424063326985995447746001083056174937777914879108977329116210400263838045615048887789887164366455797264480157274891767413176068110148350923548155796949995816419642758361315455925103564144123439857873680104357519916624498744863155754031263006684793900029270637262262661996014761849670927789382856947896192271977362124691540214112971868435054728213746258424986122475010472921577422938772791300325132049632136113957072596926986888393673381679703894777735421989245866559645861215065876568273909284190282630805602961265238180841522890290830659181808915959123576326883531077503308504402392552495593611300700090798685913234972924585431101295582631405867757222936067450205266573899983027885489413720309367411892958420844332716101307809522841561230083824835616195220885237528630058915485228900191548974710103679329187892904219598561183601568092943356970401253716542361521571467093220151309788538390117398444282996000561340082596987105109327720548204123790376889910206287039360438141066620035796094248996953375527881267292729433001815194810214283497861381983125825003962659245433049483637441685742394017078081463411964060974602805296021011436818521050028762097585402444162169911095225933180642002059730937338889343297087685921894212298807231582920988080145084983865855912094473421204640525634697518581288446697870173230254450986070372339781855775070951965667899290161369591685652935535893827680963717902195594925171490036231356163728379561324742069356130480643305921638398482036623467490330756542101707703490589221486033194019168115881804788381721302067540825228382022478162141754878360748827355153637993766286831205384739122054776378528292543480303167836724954949707915808171933051571728030896988998522709245509544724856034089004964752019201587676357949565939947107003846810934429604914769768857922406084254818576667767787571405708252720650713775147670188526404499860307107253944345000705500384638236253250250793637850708696004191545980754500709172016115717214174475884978707322140919865178912550076158148711529075363756252812642967409906078112451324108705297724323942197561055706267722293169198700279509661115510505938206448802797819623720590984153057684305914893642790073076670758782492311666573455686941228523125450870517347051845729355243013721021400188790987092610031753320967514706045318027960548158469691057887036451851621823298904684052122294073818169152021406900811806664883591423876806001779640731907815918124439805086306100403664557467340464576402070817827144060971492139581951336596179263557021865317762805611134656252341683542961089507313177860496293932010247009397110462746646058641874718585283038785643305719714438584553745959871654780905090392189249598430852313374636693787180721665714771848300754052808699521559979061331805391023017460083905351527983638606324144466314916111487577817565623363424513763159611311374882695550979308438567144722766464549164534396411607317654216779544609565630034582763510687435162313186472127085098114150671153710618262476894128810382080122463249463855668340731146764234760624762434038592671287578854322450159962257472309491923950767103892648580486017645368709733756586007571032146138840913746134867360753738792362051892278980325057385296064186845730318840124141991583692062970511503358473747600140364410298689128852695899919632760647979691083664599549325379619218239082627177719473605274083907514161404308360161295064895967572192617445527887428553101734049253013739538683923537578168276011583812277564060511195316868165935355852166132204295766057300351103944871398936337832378521729977926048244286970725830901651116274288160770122640771331068630072613251883486213305500503771051223942016013981070642675171591361571487868897390514995332727486502453432419046011431011634489689326102815326254708569086150414172495869543680609112209673495419651445309879121521827532360908577540285153074166529382331739775133363012548105595540962981951927661974176555211320945463187893782092178363973692283074950312953490235206570885561555720327123972298160046406380660957982977638304459718716504286970775640448211438913759592914256635209936927923616690034973867258136630468011631622612838724196234475522080877706487538660494149586071450091562476147436913469967797583181098416241950018016210721909898033435085405689260236680812092484802680984139010307403202097782885834505230068104109340414182125700259391491089236696835030345152397316566764536682476930611682779063861412373828797942097398767216862371307043091699522385826261934099759226737725380893867405915979384984776029116067975419033676651471996321507681142772614280657522058488241772751402731270119121138587045597526990865640941377814765694687123937221230558865598952086250275481334088900012832160833836662590586061295920383567705373512642211123873016234178155139151343811869465584245613049098340347455457107930424640977811874284336715655094452938501565772697912882837761399296768989330794723436518772672512058561402228887439318642479853300890911595717154052715001307473845524696079717480091320592369564557784815133394343274380896334357312323525492275173911074082376459688176909739924025484263396437538714165608340212128638330752711992890290557368558593521749276640690848185869688720663815412688469950074018618392274842321411065508695338696496006121937723587045070643870598900819544339543257693586523287080937389928045486610921127754603004789453679250790143115973506690374618531896084835575140301131468089618942222578849113862405347518088349092810802886685007278622860949977919170080092488859706014334291651582482701234120348202046247616748548611099777085579824422860382411646061279672836012707061488979465195121726156632854199717426584094533598334183384046137421771288064499621368665386440714237117767714623202997749857520156888850407769234898856395209587545050065781491953998176804504879137619495420371984726168278530031381365487534385867691837789883654618653421796742763679266898921586656009288648090584120269412479769176649415093903155636268365125231910207892838865149700797190775840546239511358023823591801626971648776988986080205006230552163510443575649643408670772101460384261802413261080165314556727090459111383259573497899698545617750702566336756620341230256893879906499193693146757961674445127760222074518160299917715642077763100847765481470724279107761659359610736416548757407402993374635765713643111209521745887479615054406173548459479672981885862657413586203881336299446487927931512880874960324070037513974419760720505979331832762586013779313399833268772693839050883760542913664173958564767696999706095690236529453550346664695774784137284289786537806525587625546835916177276324761959958505350252998592960002674282104797775652241349764974749018980931514510612863876839781606195447685378637649510757106795131689866552269688475919444539521173181545037843425785638162487743311601292970201478018961234610447247978222670765906069645859978706886741841252667103112654039692850132003815512250148776348398470055716020628802106525174094956015225567440529555211762600081839626009382627903889810556001504561571763576369340060175754288182470077938474640785786595394233491945128917547141568179651934573660697849121057057752337043174491151078008684623386894899196341820723645626689367749484257281010814870078484377359661452406323879366987680538362073966135925381924637797492630447825871805464377834688678115709191904252456016866351465766949085223604487069742012461393448233976552925201629589648822814048838298541825080462022383007552816368577025269887604166978743513664356993151708895615040639117804923278099377834547237312738358482924373250139518558434610072653691214707231206059756260510314106745470167795413443377586078401532798403629387348086294433420319735012486968678034059712031020590750810709094675960031176515802013568379617684210490284841970027759744136215886400855421516371481456725669180439169433397396184424255071831547873001357018086599112940345091277374544585344198405702225572942402807803979453127480218443227621678966970326139531771082130935035681410824911458039562728047869726463748809005664139650021114513184505082305428243045617550028564080369369943816484640474300058196757537851521755699760700149172823673467919261271604312116984382712916724270431966528886161466352735479964858676798833465075411437458428367628377037667489419474437209108562308162939603280340647683495958625764962656736369663037844536091204742147951230440915729128211157287846472590620442222473276402438667603263860947440382526272645427673511435848643434584831005422822353714776387921546969615292712130662602955205770002472138618889388503219226044038723375340517932783363399093017011326913545301270531165363123838646736012941712956721862295129121942949923088077648159930507329702938147780272006488504257013439960326458392642428785404353600926194235460300785974285764836179998858657659527534924817691789468437226944509982352121191173415366594371438192426874908799597100449396575280922460626194766063648218269766943703875703077072267575285930022029037758340396789298070469466711424643125034262735509782721057373737329626280668517263775685242563406833895717944615247697343065404335523818526857301637292011384710901315627138507429189865262995600153492047468315542436966595941602496649219957617177390522198194143228580104402655875446509911125701309996841934302399850578733794732074909838922849756930330188289713696327284594104093005794150585530774196995507832551735029288757857154947149373429789752033883160884213778745943177257646146619386669273701248188787351304255781414516521137751136916041073642252986389377504685296097272264285732050750367172514393106528007627942098473262409839882188950123892191708615483241863507019962182781663209676384657492784747837576862813241030293184850289247108127411166193824048964688364034860288077903497425880598737434808357836520110502576294917821321746033896236920658385421866928316627411668524064285837873288528315564117743219426953383548664058935683707215963302004562737274786386170712712297338494529301440029762384879769665581776054949488210251161707194709594087260101112169611413161014929132655024887314088497133532911244982488657518863692287721593679769694835752106246983661458979928721211195749674005849606174946664214517757588317983365488808372804283861852117339971901359142535935142802227796219254427574397350692017781909119237893863543658762983208082594852244359171336216238309534565286500242178630601644897876590941291699218200075714754589979290256351551361787417582793380863706094532197263995218200525679076468810996428221660628330124215477466115282607277937086108017533522974726264837200875142886053592639985842820349082773846887456972307618536451593494278679436634762562835670374552645924093092118054502558386739544505422863629139897685952165382215621129153716077838489603094452899277062150128080301099274764525877917225370098529319112873401022969106335033494103129625425773915257407164533725903614915041599562215561335103968798167167107977739623989127130649383230088688648821365130040553615704882275068009654913982282314308726438529278110910803028668389223914024608662071995344189523554935588460495358594055038433355925738997139763423007063673975932038421039602791129070343306349242762494673615118539406229641160204588389510779916154422085534928551576975710590273389992701088793148493604889704094356320848001849941621505068337816579388605550507086594153575642102584964648272357277046879333277896942339978588820462205011051176079460152801502940282547895869208048975803719657135515197909939606313339122263549697899858804896964141939182480544403512949513444649767367842384807974128217603541294511354515269896679175421449321807524624957101120369713399629589559984040356278495102653466554341388254148654255899923646512188443990112143487319234551661022142061642944255652532170032261851574117439652946575310009275517561697431748792363744678756736481164385407097955129953370075336996450938266597002678323376409128908655414144686782465492463834735720875533541545773997574605986336710123184843620109771850296122090858210047524152273913131557640457741158352652688141569819220941079752336682620556712150107575690467782376927479969491034283719312054679793541584640371218287022835366760894285062514407316873419700048623261418794217204164627844511423882172116240336243157793925286435522535754870699393623216514874901903681174198638741885878658122824115489130362293447621606893496400084165588395864453632331289422587993034237329874701840410770486553106895387081155807082509597050227256523651185789133552195252799689621551024622498606722036384843873715973455843065349717828681256552948117590039093528978614122297588596977727010244437146865335030854477951837900271208349920044879711682399413666040917258644628123422959448409907214107099636739579916857397886922450720470249931441273679917314391632107661551786246351329030341065338165774499829397995140536711665563289777641487219118011730763937157086048954927162792276162030745234470812078936346709805167594909798023267544364623227521554579110863058939560430083427357166084090313918162910053024106844920172561395435774003221958375357660728864779455028523268018867753921794227018424019366230317403214116582688457020388226862825944834761767747511824033470808692604817810131182895730929084887333207777849997005553460663191700709461794795376198217996269315529259395058375546366330370490461298596275546069181583102521781732764590101541953655800621702674188979108156039780779234942761027361084227554395713021628667671899121725794513972907791582265129756357364576990318750670337482977678743579772636417684268171735582127976937301332792104530337844506348166426428749221615333966963488175287057231602867447585660258402392208002070622647153904393035607860483802759602389794424436665288312337368321761542213915726486605480554530686114631263869473397916316266405270476978751638546443254133502936297176322306753123735908083207448338120368540763314861443701600857057412788093537225358130649803349356566183338970304862489136483285315154154339385998932311905215803157018656623035421353455381083164632765210996850060535312217862588795093471267165363671355034320616270207863751949579426459625943488264389628240201979604240048073965554264952389531330160835100495384199720619787965502379167995886435214183983639740512909908509773823220566236181480877996268186288859279478571490640705941057587997275469792084539247424557069907725369448063466529260776880474250716506042183549029696444868752966586806289230159593885332204079924606474725143372831658410180682389360547606218027228554600111193099933587239305319453280519836079971718546489453602874808419481357282660556324909008167453909818609194227508229575935456720808018888147038965951889735280379639070153665884171488312709905962233298777878159946760172998416372399018930103951058180469418391227356331311619171473450557149346246585477110738745164895978302497623930660048987067056179067034192937592560755089820020554489142248973235066460155398708841875738301983057815864255109550698126943008747587543309665424547447868177602494039641236895160266714125131165228099607268943371528878816187504337375477420804491778745487935823788876883333655661001777173611527194992509267912664447777459728767663551407455780908917223172319465980527704749912422789951551123095487303818245486421636903631144713502308102026579793841065600206427819786866340676299212439173123907718107782407870074538659237871480423701339315015859782755651197940530216941794135727124837463094075409118255428702135546130893277009873758884725370094842991931104948462804811511079009650895757846521545029444482507780324950971050199834222083626643046984899326036574519710115696142019190759738803905503660207343381514154058908704905529173532631138379990866208557731063045651106723519358858743588185643351856245365575454841689720184215642623662415450756971228799575172345718621521129612889249740100603144373434289534735540423570777974312873302106297705144055240836792661591808617823291189943463712512011494311170860970643861389865998657003415721205436760344372145055370669125222017682771633625230468474567387478776401178688582874277884257076840586868056722271305442775711714183781683134015297660750598430127230407338483475137143202766236993315719102583205799403226500793634194222842759145063669607641865318013061525775199412345434082729681108206230992245863058446356887329347080804205979095243572386991398112606584753308789570333324457616397128378518713796082761320455605626268275553062717960508813741118494785881752813961490654694743384181901532175486123485947559211704095425793894245144329448974469148961846928781993978922925356026946420238389651812631623027739104528883621098963145114779344676119874078887713477950060154206389530397583041204141009851115808245420092683363841305971550125283057770802443115495105520569918420304346244740938581203331631777703448997900903118974322725160169904866460434970725048242182445608241213990430455609470070584103083137029201269105810185998220613396188106511997028344592152196650408317942056828195083314123916808119047939697697163978393625999895448393823977043129750301193871887146712471491411528700571301330776536374966298044682472198940865210891418656645367885550498690867140568803203378100436797419403135075896873918697230752587759419025249558929286278386856535530490114340638027926723459140334977884357088944254165086831487325812576891948968861787939357347633402207655997848624195816424680401090765464686414012306769212517027216858271337889732830704220145596904760749364764581687754308509197687833785270995248590508215992566030847594685426669355574611992747713996810344932850572891569090208730215256870924815631302501934549430082440351590526475808360553398146255022635382173273842120607861040357949027026518363859276460212312327977252186720295289024214279137160997881617063859131495525054544244859162824821813925587241939112062180991254255996300092430778896908546400770662258833177715259902685485964768044931832333107756188709889807106692426605751831593785630065100604919962625232797534881768893802906950233816971305160146316005403343052926676067438344201915588542742937199286008411412015361801231317630195349006449047044661921798848256185610802009114846921308135614708005734575494900963979234818295630462994306151550789148937096526449240673355713607074963630547942165365060319378462721738465122723539963464067601460401676489022715485937349376516276855850677405950992573121007032789578760756598773878517718610389257278599468786602769757760461754857808372800213452805419138056493821710783149670413934320566395818769903340346507916630746928002261374230183051510779394482032651002540398205532130855323545719060439422936605197678815407610122929168137344351538414299389774829510330972454478768442359863221513554746435595819309716029268842912904870702008813487521179377244975173785037155286700834868015002213657435326342799648609360406918620035174158420677883229305296073490086060320597580967519335612373239945963927532492606603748441173472386183435957562983478107945658880230610774537280398673453786846677682855811553006244863706469334821194158993741043898907764438789893992855449644868313817230138530822307085839859040243773559307435669669274710000129719746751210754445711439325599893426983166918689415851118234068590493315976865735293071330641061571565372864143556498316058227828739157205163334150850309825058017651792766912426993597301899280855017000462072374077112503966956521740577372445499945344184867899771348444942187705740212290887804645639883297646323394426028299207808233752871649277647758904396540554876482754513483018979399460810014100379277728721738054592694686724136503190341614372178151825120023628116408186916560216988956347566315928736711495687816840011856333350014990631438437826496411117464663775768959749056704000280740219064569360963065099249702210978255569011642990822167646206455467950660340541362436628083708482879912894458696909913151925924448667297273241964569545679005373760407661034217257878284771269829457538625427084926164089016749989918916926130319133391469364035437510182064145382666073115582015234911166217635363697091000266715472756719623168279655673275931030320396843361536630885692683546201255653901494739447325076469443719168429447006708581661485392848741273552075642551057665833052139011440151094668486124819623941257410248209867116325196018087164790779632370959537188595507487053847833964595568974825945204274781197021567641073430622253970606451886799259710341012564851443681766534798362161760710595306172139596327151578302809449320315532097253104104202873311201990065009114097665260942199866446798362962128444295818019495589569363693544082504048793561742449164345293061981777091757906938749840619936688731460687957384834318077914278722983289996262980216154223973522121937541550826150735495705105544687307562982042275648629034056259682742880161092142099337486027681548547098639303092061794169343800749628475153870604180746067850575990745783476461642238126636411870745275653505137783425717089573327656930754507611340819674064513668205282366861768642173625106892823084544058858171910563017651753402703969223398056960067944653435861213748937308992666317521995955101408906172046107439985908882826149872469146814170852484846128957838790327048131001699068142048459194729126671437015365980579863156746657872137111087553179621926488527612825859639015667801425915423806534759145056043365041627841186079605790117993899805157731089680267173978618289603571240961538177383448888643305235328755664231534765941120870878444558421606080445194001169848046731706751264919142467215547457439811241221148201001045968179739769450612006162625758565861795500192887648074607445164317119108949299581805052766407525973063071542788294620765124141023720235997903146585797069709448618989698885824596980791132549910463062001185649548587026632717505912031379568161022966859861949181873639837437350677421871495292016521091605532061612554198090686285659365445986042013340558425658936247416753925531027539716444128199123020869450762794369177950386562175503952654223743844044386052723580842913278454228498189628599082558707324111503870280784170976767691302891670788539233254156787632227840289851257127416354407034142509135989429317294831468912028061756914183872818864429113793033845667041492665832191274404337079104751367707409682322971943952492292476912161022305728257650363456597745105025355823566285335381604477977830294800538416548548025027154997428489752653936067072830354907084594656501233721508462258267357960284067959105750189491133261380601747690532409239998101337740155948765036244069802863700377636824736770687895410233223843164203877348961511987083257408139677053415722651886687426663973154281437037430926217864220566741511551007508236467559626275771448143092170445161987887527593514080698451002975233862477274078551280468316873742434571006207370512982322721007522007428452732224204304431366564909824870253057836611198609570967049776224362593293562068870858292746325575753619053699206763524480660732201609545351258959667915955334192728118756058985991591090729522192086035776277007596290684397718541767703282675601010976418401859217699351761224881979281099064966803181077404770515181628166891339925351335612233900443748094996576838855508196391399256986918689345115348612878419626382835327340540001165744590509018506647431548998907262549508973434240785355145828325493158675484402917873441326522303112121402434772264174806178042618465327532355856925725400577443910356449384209329259004892278185437406139805942867191372346999227569983424921769346359346161943512395468764871394279996365632234790979342768297790462189686859111732927356954507412132685492459123630378634196461261979507116488263605051757558004150677176602815036196513745649446972078367134695699339064011924814695700679405779772335489222856047796405973178639136578289587250904565167639686397040607962131577844119908474021789511248187273601921997533975335281611173636805883302791497508445714564979767948252128309452321255622612167229383302269325853392912389802370533202366524622462650679215937539997038691855776873484132717673847521359448498598685687556982254840460629810969511074129498579069696670937935355391045742725762517075363522838819941593664016577922801766894581262786747210224680224935097420797882773486607950470153040415862498769547248407975347257346908400657238290865754061225361139053842380510702678630521929943996788776949067729463003695741858474566459851487939780993667876470816694478897496967556533426462727361218524044776979416687985619222694270204983514144468321908466391602093149749622656285622291669473706528435834540120065234989401233472412748389672942180649504047097094971012273187893282859997670640981217245666848117701970142507069250722056069540072841572114462250260505795697206438109100998649449158316831375685429293049704834209214588389680177882627057651189752488404736012233927381075367730159195859797255243455115789222873903986222091113841001195437686744850531084824614912840719967519829466806904329298382425533616567109821646926743050182937746446278290991229006662059957711683217627467778088018990633871126249069829835160646176837505437472750402723291696745050129252231191243757386442445466683639377874555285700543043208059764704202835100686612664177344687473922155653163416502971486416776266434319071035731036170534465949064111334782966666088535468846941403673351228270824265266031004598942618777119617972492704121964520091537487383089606418320274662769411693654244635158587699646310448233009006291622354713045109669945507871572369292028198581689864861567138157755329818271052447449918288869582327239995656305995607280139968642043446830553485934509752358471003893322482511527921604247943704844921991559039126734884974649493801879955224035823057948838081405025916458194932714288446765051477174723626614454059519818783069997870385997935179861644160166550892372275048544594290749354561845094789075903346994695091099827676637172605448289778362493391315622725727877292888544637067486870855124203371778577862350653293559747673216682865316411984235018940367976772768815296228217943883710173684875987171753093652957553091592381038608146390064005842046339125438390427756290442299934316840959769945817955192815458771810363554366837086441711979301824174992797131093411684096005013792548406410300761329083877823520774747131702279307108797549234370088531994922542883497142170523959448665989379229765535819185479809051183628409119116101915529417458305186476656068822852199935884435168849379228821337256777162413945009013267536476072494781243221146864652074562576342477891492796523079717710204680968433379639653660001678733353135696299320003187405277147416228644130420128386753315056999541774050453172715835736449757188353357187809108642995659983125641126470230152482299668030163101331455694057711551613020545409884748735444927148413888320314960978931667927656871990067753659960444776479906084840607681722885608785499488202620824792978233756470007129053315722073227545514449398864997986863075511221556785622273326506305562745042119590761075133413788852544458508518348643267814975840136863677361772480408622745239699469805299477802447442343506210265118070374980969033002912283916442934002988624624772911297871201060903277478225726944766908152177904449260286969448521058853529609814557462545479257010536828103553074950319006947483072270742084774075799495455400277685950968487501502814947686748043650583974273457926739471040153706336324480571103072790937401230035430115306327235455845089972169120908876240647117495142471302423892367289146190202958558745938819376835540107757376000417646451617021222442954944443017450051348732188909325425782507167003592957525323660858431101166915888075734580392645768206694030927198380464002153963310184631191392329317696133125197452847231347647744798218583490202888510513613341506646194566373929687615649219464661016105516815796052173845299544245349191247285913791306025665676993705004785064823145194865262943033341733930597902492699078956422354396699420778997395860421593504287129681223782102625768021092331501305186716643029178995343652303629866704490831321616315096797440610681935080223782379062330576076866967961870341260040099922134201840337836774649889559332305639716892220086873466137568319583323183136407195736225350608348378919148341100848025630801721632409925279374178176021172757698936261740513633830377295757518434012139355133107822506002210419658797113288175895807080715962518684696287511099053732576475697357234759391941179603203236843590391975301303895050412522495057882070673969115602928950371732447554174408563448640095015086523291194278342656219264834473944411765729151264669457364695124774042298430036664967890552417243795733048874920818379447920998154136724923846714779999719715787128523880039320450669190200733639519318127062215371362541449194055310872322247933682316457149272541916984722720237576320954280141189709200721677322127598685001450530083772001476360186293627424977040970199232469753940199194276823425990791974145514986469458159585102416666401667384022922867439630732866817326248456001731734321727374335728024205173386929030585120451269079683390641704784104251176611975418342807441789357760357914912903762061421327868553314765430372982795151395308415925424030765349233240320389256061082760958927906417519632575580707998094984842235070363160774162247648692009942900704413360101879132817122997309952768612015752710123733140361370339732195919034776050389543972283376597121905129241610681132814007772714609004221697440509545602316164023967966433796519706927055482358528117079085707457969577166749268826207874866861147468625314058828038854070434168607103837304913292183985625170752081665937709649597531636464190613229826343976984186841962112480757630918435116525605907200113860018520599128096111226505384125734629193573730526434097290098136637450626861474695316906589257924177387638961777060237622366185357565266022067761022748857819467320600491743491746294296799460623373460814803313612420486934022352186281528054556818370687671125663149151158680165389728998342563623048940492025567892189093190021872515185246152385898567974737969314254337443913225856491504619566984538434077044757003458050089220411373672798091202701524519432306240381674319076148044103598197978842752736010468122997498752042249602344376674198454345575523800750119430008378029059390125049639882179669324630033692390939076260135909700410232403899899518547699336079514152011613725499370551658230534740979598461220353176389821525717954683800090711115184987770338859937014005855209023505034855890670169582864090747554384212018532858001779284112760359227003733185805886885544103990483622395952897372154266121764433571806862439455466291016532062612131070814127594058509438852816397528451747852625881232292393270705420131977526035838722901016887985806253932611655967673158685149437042275080789374551374017017162650995484049882746575720644568209036789258845727799032741812690375924283977305772131276383998720840152877251010498466733929968508308844520041474156509026840913994193204801071296964325409643256012766632222422260081411486295154206563355698584985578374430537211041101467582252588843576743149861934324275973985187003350047615120983868088308078431033153274252000123722549514089377869229700622772992771074717190392951871291661432686830871460778139358738014395021540604285585583195681262571791884318846884874856018157513221779478562421954434948610317588949298989453239988181699503352412336318121965656482548965966715771009819391613091537188631755614514471259162886885058665736925707417611515546477467138792878868680759818562859446994286378842337069181719811113549913187983582432648518557573573400801742516175862207885928337394882066731730304017095570797507635988476952791107543058546774184198132665704164790813019035558183821182431823635611058436456294604213203914380257585455031961073898075510935641156295992523859153035225648275696388767293626460135221760147283918359658824549949806556263286727275923946557035719685879015080028379162321465525584397319546616490131187601874782454608867450269072757426374116025143276945659512834166204268615971569405301504704450146361753257070762879107869738768265711521696528918108315864814536068311422734141924445042318612743126797227016154521624204644760966310782448270077067422913328583635560363975817584970402745916221999449922568820275635243588050714785744448937777020531712001519417483050128770030640892841213401785679581719295491283490484068658250954305686651690001455767467278435164677964806226347849244566472769920580026941803172781629898015024688188788921862730566343943465944742047310906769318749507235317261824321656983432129934912322510357691086099045276920417295244066725747667596206687848556218838137572848416081809678026557081478703252783848622033360106319992457604963822470245788611658943496969075619776326268439530910327598496526419452738933380243064894600736640911400456991543643614023585143625001730089746514466819501275405208826237954868742723636030014162356313888501067595525035578539423963692240282002226063309385855663428978329181908562641702523279188221130629453960656399033996287760559188264041412765944010597861449492422265958436177249628739239528069530900834337187287278955495831217680668341677768743283749306728943885318248268292858026452947250306591017032362546458774268380694985798505622192735904604388361142987922856474405058787891920775917822348444127916938262098662096652970020470931034221863400454217545914944935542713259170609006573713246028614854768440118917100642246123355509473122109310637052651312167163816733402731641925954903226267620653876016336273285133208044983160849131417915187578729868401340128519751386918264064520052288217713341525294779496296046795993472903979665541811902127925802238991260723006811157418875765687011480448634905129845120332825916006187889308452111716996062749196357452191875882378740542489334810426547609341022823893426678441203537012586596800024041257738044045170496471957002748413110373829117864715659747171651179598549337749203550867549586506891212671755096446158164550736174139136854714574749871692649169989090958384188481323146046043456227412725602521815556178228197315027783158662908478022737809450260253631819325446170177126646221424546163430972286799803752425373403392950873431994876409839956881473391758502342970086918448891480040369371503562346787194504381586623873655379426798938881712728845443357163119990566719583957370724352303107079733753112823941001814649347514571292844296561238239195125060135103866946140551382805078152956157067589241486818746117690962219416386645260524646047748106854908243860099027834443604999374176044905529856545505513586634316964676116758194167607891720785238745152262894476916749361234566702256855721823891872735437084370606734001192362663430002560108053198921397648166635778797963451430154548480336302751315388024107790890013903019711808583755721761908174203038226808047031181167251610430947524656122127429944585371962044811645055046901127560399814904221711696053751809243893553612947789803279761037659037336619517227398051801598552811328714384463134974914624498243424459143985909053532195720701719604460238952634837999120536078153018883297286509328957118563639267624960723846114635422400093119494436816650464569175428785708274125096390355586825998047948696284845693464809234051209130713206411319372825592782261590960526621641432915173646991758239032455264899548971284986884131790391603417733103826622004411607934982529142036487902782944766582187370284157316366248272696652451699535485043112125607481646317666812080011287128826780610165556425516276301067534404953691785903512635175389670356810591479054132632044744056191487538307044455131026492744672257880133154559388602689560032798123880508153224535978599667552504171884932264300171948366476302518445826941588383490562719966273477691614730656538601397223589783080251331053422311413408435513973029628770585873899215183985268111676293804399794029489445513562873368520789701777750601503599679209518219783011216771117814546809222923249335622191433477877119116952443149538953548450866738335884135102216298151552350366625767846358607657063502955919634203593550173296928911946696901646760490003905824460305234952532459624350750690549396857136122037427514827687761680877526434500985734886734258546891164386768673984509106121493992473757780041590056970649759473286360763598039492167236521624169872013335910889538869970652333153025003990869791810757580619240276150113030083368759043735144474539928005861481485217603592969632968970739605995689804763583097326509733388364223350800503147375179347240349928399857712384547756080686454356298306583789904593103395995462536138635898777676660183586077570789377050574336967795487941429615788673708343356483833249468695965963164290787819203762420896699174959579815700092240976118646977419499971556860471422179687866898374273202864003347204843031861464697384118457219810635415068819490059758438283280382328546364760674237987979535506670737559860617572919945825567032277101848489219239861491313128174916164367614947282361377493273070200035098002972680444919634171278816964348265994464059102311215313235571309240154735638439409513786196235931722526639166619429838897424869056605193161463219917304187195827008354281686161770328381997562194662500863622849835943154048320745582357449451901337566275831698339849349592823764208415521640230690355092330205211482889264538615785882852723589496911216739672844077800729826330553736041668763517601114641586051106199951154670261233591115808983633354621663762027815477588347617735618240906509950792150730990780836372730350256646274404179353728020743736952547568126394429411179469286819740077300408520931212936036298466774592752136650533900884398452982849409797748183301396912820609808901694122061129901898040648521810413315957561985161784558662193480982604619470066535930230220279281828959636824015491912192298089384498226564386269432595919331651286556280080544518001392369434290980873733072406025533376144830395766790550366971054568255907741540770137784939393827568993950640736497942543984154075565323786982656067362162381699165121241212446457687273862118529593426643465266460915241874276852753381133367714088338766795322252841605339652298870550391245878728553337692655509718289108704423702168712305987304803911144793396978034213022989757485845058237140588107192057106797609515269808091197581946341808456601766580386774141116601752471969514238480450942680191961451692132301311312966151551091532668303656712037863047880926180714242227707792692955344669874242835053920658122414310824381928208779111426503611008106490167097209433462478413272375873499641057968996096636932804191289265905883735122631563445621514943710052602496705505706957685527452251102855482701144855252193105949674725453722909163819050202687678858163121028688243409456471172527802409845549698877495233748437015300964322195444386342377531223631266912191720033319324320642100269331278525810097784221669296313970892060382341869908858519421216257031282241498581505674532581182139040487244032893495693030112319774055193066036953823877356432474393836000471150378301679170167523941178412676096154730376578347497716796826762270204749272525973281047312540893703285752559917805441910962141660418043232161838234108243502400844535854976404937138766088030256343840359266170198629093794628788639657243076960945254201166352331846442589091396176242640798379151804978366701003816287521190996120482187885972989834754129894157244682939233367604264384170302865017246583173005400787709779656655300201201877769852174355861036519039444814221163115839330433371808253003913698189673170587905443797399992435613347753269464960337741646053942237929477081276358171302848037284581210926396426760429495505005248551600574797645494922694066769739030693657675251464719929947956537590506765601398655497333168744796440273256834909776130028924595403513521844846866667447236841905342389412826673882200810207175862698105730147572154530224603266875595578675940546624610485339497025352908183676081624372925518696342881920645214192177401050341821497157773676373792143061769347928635981709545298855496498520352997875160532378640666979179640403301928835656861317640775603053890925426340119440284004804832713501817388736704028696724332753077717349015623182094373292580347192198142525456292656127608165913343259858124157705916956435008271312867219753556193030298365497723830624535173045855981467092585506765469870854464416114876126209648735253827180376616141606406889066790003679068862064745097354958732701173628035800815107605072096829118814544796457351179083520918570286500110761200435571416785267042579846094404117312181437206541711703709461211370694340537090197487740496970690633730110973220697900424609651503357400614491047263424905374313091663789142855242575296815192753878949382446286160968088744538840318790627729201351686812261771138779567217721003244565183770492178095830597526143146977025992390751064593094766614504049509556779718864431027192076144838257025905906826732051346744538399813119169611094140279698430513853181639737136442081838763528435786638833719723143188256136041164849464793852180582846992723404389104527136167262167019311153741313935676256514934132089817224209976822169993852514927044971875820394041965289662195542303035958211533600645911249193137195456191319146996501195783160452076895586825286668043251981984730681673518265489027169735424090122863949123898472356466036467455651268166669208650223716490579397671532993229980065202873408988596816643483229754113193653329217551256168675987003169898873104301358705143325116358512648460035771179524104912813648467723030931259273190700185733463237974031406373775633800971615366730496045528691700832935833102079354945418243673237126725090463125847626996809022196007950641975102956665319275256355910742745301131647021166085137218477900932259404416546995245716253327897229796311591654797159598621698205919715082942753409759202820006006482499917245095511272089908644172879110470605231847602137627370011382265635776484060862405027093793883240665046297412425277007908299949687992989463904184564516756852765346441539278307873985010725461131466752502122556504480974411615633348855075008220472986355259910744535892640857559017734317754390487331439536276615701496408887364787868902250328329599869337274038501774096072550868765112965348049388990822993602351700520186236226415326892128699257056733908362844359229866712182032099738865673745377766254394226875867219839613702118306110625270064768571771606553861777204928931077396894784801905564577835003159945456646020469086099197297897214937879803175144130965549644646561575823616623093454810091621572046863752002865534272009238840374214440422245826524137924459381218753831641563631855000115584683356742509451152750582411294926467714982038622850706687458216864747396161154458346012491239837123370541396085467463009623655258438824286741119457257343230577066398739393604685470121479032850289390580393243151460653650676480440800275495307674198728120686944502354161158735398559376953843580568367755020972712224469878858079842095046308204606453412118150601689981571300410021666727521456766186121326293486437797341948269655581415510778629742013020818590767776133662584298675921445878274490642250893981779694997437302070791282514332484933470098257612488159938918295070193452843485009358534239909476644079646547820003537524336939470929306522686135610939444642232305911996969069140264404220120046827108580713699259480008676590971819461838905812866162423285130410380002369148885656277302284782527575491482306109299704282677535337817546979671053885824904138488152917163833575961246423831281131421926424811570317346574451498976052023581697397585086511681410928437319829706668972734063961777880238338387484035262425049954424761795009625518932819223432130053555273566879185951017774118520706199284614136471124572223063659355351315847947211998291833785103302035625326623225451130405956691343339748781471077489712113206172502553977049058019462150419915275792903593700058415129798985424488782860086902634298168236441561537989714760559475171129256866655141990181835829063323926771036672069847211960445032813826969446245834760402034051546870337062582507688285446390915648358254590718270452921578465941920276817066856806192087738793684738358935953037783348081924491906158564686122727358401570421485392468291700128950169116582445283191278976783249577242659239727985697412501915992179938565163868184540160598147017205928859223003289179283499830898837209141279891730508453202581840283078336015107060955655152913920567622751050745548994351863571025688940310880932720193326394577933462338588458565422688445946468602284647058454727583033802861931863991682466845608203523053451754222661458551847420044939296343853307443346668898634646457736791427264636500589579730035628910243959641084369845294354915268665796267340731638184207215103969514327967750625157577806569393685749460714991990795546653718176221503240819662204911880108639535430169565296627240680760536888071919952406208738812401298600345995083010603915866773252144436827386510826441220753423624953214436735028081448534733434151951225222733076367258438981485896834643565832537722321822169147439176136871852476921778641278160260580834181228013471812873902483314569362483094679412057501262970371486090236079745408166217440312329756208336471294844847697982930269433599355892537514432151852494915489190789062680852536414356212700871196207678678602522048058317048950937501724276236860600896745643606293482007324355482940282552882862307473230230782699034823999995323955678730376209180459331744165523021458940215189464685661813966867130175878820099016803189092309048014654564463575476281330552324768684181707055453114903404185536917624270608420612371047107216870736024062885422999388948192122231401830382654059203747313926446165352599111189969527196663267296455829900865602153813731519094102824771635741418255547932654428888611306967567974281835365156296100330037712549491853618700004406752112014773543548466078784553673649055081611171210580844773990993177119845973586983829759092012480813349447734950468914936483539998711457669409424528046776392387551485003877147851135501733798104248449259168249195845326566376332415721961636837273456996984589065927491283745564804808417188441059606252042985852886170553581991423372596514772037463344582585888558455261833710174341367627156739250709510081585571015708180339264493652398692305319698424558376690962571210858160705918060248698478694547419140602873898566319045197126873052939136757184371599350020370275727464987571971504457493992147094542909759650414683547592911553393210626802812689386318660110359642071698513063899713382360091836875631743303390882926364348531772502824488223707150723489911521420947358112653823415953417500739055173847181244023199095608162183405620095079185346217964989599967912720378505409614488994865660496148307212747747720984900687084705740983320065134243942419392374024460648020030156946382630485157845987791937769767162915831291473783772588306408449008402503224204861618591434631158937481441978662793540716337901870896306820054411431559861253268476323726075869815418379073893031495132976929906949003843932985855702805359081841972794397103366453427980022409545372698807263051783927264541698412066773212764407797714823725978972209943981014868974431815074600241060295425706024857508431210937601360279737935336719206972373896619012652737346037168882248570200575775825454814060674161079457946507054981774937803604335229423909248750934794568159590891929556102723105236311267500234421810769549230900596159599558785579483776845885801954713755684153810489458406704881791971956756126571463217827181084396444713759360031870004959371842353081308098986196156960353231337424356934869839360278951463474260348886165041693784459542378474701533236319356568465579417156239009756789231188014565973462130123505564196692644606465392189120876879779962554489564630490359598755748442847919788188767639817032290214965328745243133254196044301878378447067904332553285116348258992160461815293159492013023949734120927542204283328026780809612476909849663218970792027436385064491751132350519906202462241594846231535863044059497080629830278387894530165181866104664686472558784278054375384744594890065063320045225359334670756764133757150133611792506566170222490453693184429245770220729035581607106824998348476385180958738691505331847468865765933761307033411588715156298728593384304344521845705827420213504669724427824954488093145602385810004731766095114137346299800812927500697469857565764867385663661511431368486386506215428196140769146874155898367219717747455497971264017349498545274853293630678619209592187150693147219984946152960822993582982287540115507483194809001348792809091736595045451082214641392344877643775973978902122343397857085613907426049945520493699522909670422440898309565155556309359448725792454149967223819835912151086995837646395774084885377410346849370839979603918582528238588022185389435303695352916007441363431504078610293404918892912078911218634756679178450888882776816785972857440840488063497832070224162145714103581704398415116734513473344118785731564141618176040683085990964940804880104971265818745214662338869244573973813057814306273803712914612468802042778393141933136465795267189892523587246094991434826054750830901386302522750174392296524980900277754509240724663548681565916644154984709496396953372137411279105921843363318524208522839071290456290498580418683980438013718708636734736275642246185241394254923269124445451970292529134752291712458142453570237297131366100978959458834195676654668983594203056578086857823773671295747276623223783412734532803437292447786902667070042892647572627725623092825713995284619096063977659084436445446535702159619861709458136632616908506100396756777388716924816461870469860198060239340711821971391419524383011684818179605750387009723978676677651762883908761703279383113584491038645181025480466054338531129133488367332504783363136826059674367120629678239893252742865887135042641220458868757904237272008041694098366316118818307177345155282236343946266984289257608722502033295304473190837236619113039288839146614591548832241059084439263420998950741172689135367809726231431381234355834524198298402028147044726342885607844972535628413953403996363120561967674531624337848400828893705343913809548100724068315740833416061632533846157731306280398718643029789069910830170888188861549217166889964377214480344287868614882450300990102783860990896893762691876142662930237325858881530880250211536561935849979906079911241250863021040317479737629094660914458554608744863184550595979203675980780422666214157405772057358415046123460124603167950586757341601146745977540023965009650342981628428453310853233794825050097941924334319964205586667569609561083448843693910191447339307747242063367972054586464262297991708581405607847856271683763875454581467515945427630488532124645967508841182471200072442449229829195468770658580263022068408752780890079956084320267160535444515485078577142438946795819668416580370472830713011209334327366409643262765631204665920877118719054118277063555095079192872852761490692331181755232250202095962998455967799139040223764129338623744217329384352076260757198685035597198977314908820848043270430772746908849244934866313961929818641904267826294156096139287308109636026581883156981363148716532521901094346048705623361591503074567227531929093152506089554771032283709167194358335951141677513775773701488806010059716635478016926129322367867912224898339379551625719864384828748040250175663660620820272290812059194873715801949310825092006713846191225851659528705642316388728070284339550763873348792256384190503722831763000252757836148049008533836527181912997167488980563275575191236933618623791581179005315819196830991865896068657789878693844540153304790479346244031628090640939365147606397107533033002196281254579385235783126690907633002630303709836138536474576376703928403599332086869555172584057782118730042995398859562908917494169003975800911908434584014820933802925665171554141580178919151505638149884195976668590751331813132534010669817603732398507863847097430092391107381632389340906679312948446639830283708617643337014631713945034649324044820709882577220342853872555668437744586142360352694176334244873097579259810423145627098499034083758080490930853800077071752942129617333522214241131149216862874427980827065906722538169640041645490428918257639550314419968737402151112611042807468515935728468951508674361757027321047683038337964090200714757692664414025492808176511181534462030293426635243863291560291856304762268249840457504717562709196311545183917896457827561486278549070212801364242492983385191755077909059835441681849702301764110515982457132260710302736980999645901559866432591173865682916919445043056567583202924882891277040288061446789763968243346294499488017121050684867940642198732799492246531544371855637744154814195641441520953938434409486567563646137518852688171840140056609219465207071226348291943856656942163645659932509722066903981016383144530613652148202110353356306434742800679258379470304017064714013780307085297794059617678287952004374042754962659392899871306322709950567815489612291387012980182314414316770059785789573695117219497645771482864431758629681256665111708638977198128358122230291335943782719555985940896677785399303614590847959396524522859691672306350595583369474263975519117362320536111831121998718686287103587573041369954885194690841979850058998656722993194364870653620664030934857375933953861156915254738615803945526856901926702086332027783386383389459380988413366285879830853392613888232010848366070445433846924164136174227255091163326687823714465217422607971813978887589449837821071782690441688657910610760385580248502656898153672936646731050794451294247287716231022697406390148600717486898839121178819593171641508152782098557815539940730712041819541661741775707814255904937546116185193581884240085906527491790567210627677335790779265208257200798795472999664539746298317907584593522647989272814758635687539671870591001004158064989280221217581168354832666866842982360602712896786803254202637756543204244861225362060417655345397550362666596142149883122851899780352406878315453872536618809485933698420676312887101440241758785764152614980191559108444223027824762915318871953832590448092181407219531431917741568014011913403456432236105987475501363878968605601293030073772273570001603452737557149485113312713537680514404973277757834258761046951591715013558308614613992029827786220019841654356160533925146002495893570327509607603124583853699167749318201186038993964825025531263099758575029393541023526652424475594352702880431789716991465389694629494417196616463099596878992700023201944555627299511337034415713130056740889583458515150673484187553205142534834279856330463348761932838668594581268671754137195343334686249260986432777165858974361631062805136059234773746196602744132395646815996025274583699451926318498779983617868336586410865597390208128337962933306492044424225567725226375002545237717704490025187133269161899163661455840814677930798691138233327064055943279297473041132863972503328980078951915712567604302297980254828388798062976491634959994156102240733181749028452722924064877713371408478068635928053426953377398898990107640828697343406118617461996094363577523804197743719982835308380386466141734171938476059219121003709661825855062359646911223406831044388083329565930046286996993036114942360444518039353575002294319900611062108706427575129871332497380610630331691708671104015608734955810055328999994811521815665692984315791923989956974646523737010012685428519959590863462563046593223479482275885341999249349713626254328995573784069136841791639646710083462412780535914142810662796276741475241962215972068723320883187421907917168440692998123134425337663863602193039573686160543806027266643077190544541494416515599918218908141227264079795541169232921157593020679922900221969751740297610076656229496800680944070139527898041065869139532504978706772364960291790474293062306996817568561176059652440785178795243717344532340780715792255000609797932602243888548672513822742730124306497584509363990693122593790157418296150962330181316600351360278588450832905831466724618755105191927877142474868102210596586514792915283951546500949192025600994806500988900647178703794178949398108152326092419392100300270381006479374763116548772727157413644624281376730938087414173463064184070482883357700855210228407806782177830957751920557438455825798638421851681259753402420370297282659374637585015005095070945614596796133080162244186653192237714511928931540442836235445242426178745469639461608642895382893946750632065349803225968752350723517619962260564872377489514673044150875625246463301375542553419334974529630460986887559574558891849694591302154175611693897350756940627849416521974209851288584700799091395998677984915709891409370109513717816932902243336374317371739665637791601378229809777082502995676075331860765199967882392036551846371025826481282264998831224304396997216514287700307318009593783123437175372916331902658939269130934410334733470640567814240403908483696648008943643713427569714192935942018528248835010028536683998526297984894002118181112113725874335735671297362842163947469379607606553448674853709969650017902254769445926574947769256391601856465816654142155613666191025947945262413105042762725794577148580395635042147759127089177990341253246494673286137584672888611705975686663542925621126493682606114244404237944257874618362767459073443779948214191624611886608678202882429477894585667304296602771336959436263375527541250949753463839548491429917970900862261170075773213423902441220824840104937947595337805262713276264737211967190767834229188466734792058759644844251401153264174849230124897162697701699326110711122619882300646375122135948260796346087714035267192706210379758432577095538295705401738891056813071399376727271040651933331425337710293625239581650782335432824030274524297464755255042273397551930333775762000682055347581167511815995609245867828550825311057853800341632583585371716488437065029855727461204652660113956761305071059766683298746771339592632480764381025484184881194969530445785210046702934389426918916167239042126069718170496303785409419059336799045140836503052306613163971460899116679198593572773733539637306774928222077585811434439087989995642928401344054279765572750355096296166201172166472289064667508925505596226605722223525164818899311559567667614703036608088258192886610552486217852735986396671592110859383195715209977556550636638927139034326794991704549938159995313431638588851104743047174454229898837657910909315042526697151915200676162914382517587706239747265822958385857660592408592333339040810305784499595284403663270946716923912809848095285038287442834246088702262851484783737656704318049068257086072174124284580729773167138969205388625095669588133811686493887646941446703849247329380105835983459817417651668806103983270986713144209971249339750334015757539839703858682936137511558745856324026784735097925474553424785977768677756070676563744977101070366130198188815997657223309290664828729123347014164505129108930752791602864404445425001345076434432703906043108216595325599868308830026555841694303741878096872062307477824260222599064801296231732494748279370977426388786171227135710956276546281890225141273147858397010062747579435836205511566977904392113580348478616929659023880786261225708075241414893260435866721704401659164153360303145752362410453520767550238268658151514364796219579075468714485785928707459338814066499909764785057736978144174459376961611914946558127180924015238213312245403690391586581924156319309534271992113227513017108466701471910661928912476225592900953915923575162659881410466293023142922048698807952307818070763200955204051451475664161367006523034232392597683013182601631320871560791030659976508101030815827853178524386604983110981107076343619367740897721841599941761789124944340366362959133031591247984381305325881720894600406525834136182486465640224853783086393714554106463840548173778993329217770668247452671601570246405819918400895934731284401693379265230625629065547131587230583030658458429089894547545579363609373494434305627417917704888634016132735555179120632450295972170150964420680607323494311292916087517455479409440696638071125525708551513657631671487474321918006758572831211829128073711594234942975000149550964621442016004674061695641228231228648099600803604116057898938876945078925841209054875779702961445889156262487415287095294538927527693307154881890592049347597797036603835729250732540155252144646432049562595616988107571439742719786915351655258789585686589474962017721496703517996636832648629300676813483484508794762115006978869488005278053492374937848577696798986140482680639546531378877657004065671474715894562133967199310080032738036649711310647400764385954272204199788573170942033606505524580101810177084940961361394633081511734853707873165456238268125092215024590114591912599245788422024405117431453361259070030375829198019647446552696773769183561921753208690469497047955696167390920207849269209960393120070210720083091916478764386183872541732572675795764471314158566179443235136668536641359935715739301422134592186672646178553543941633075392634922073251649067943721655458865246726255133244773784785022988197924297502458127927863538042463682459764740058673281757708429360793755844136369547804666762865952683754855632742925389998428238666906221958903565213640062859341529539702030172158025739705251091496488425814766776666635314474826857493924378319289355543465053401432162199773832289784970213484368189282804100859652923611734965291250939648054148449576355481259058492193226482689349455921329431236807269572889092330978652697016228345917451836650238977157804783207728484654505786863634223538482189239876666570373213281299405226661832749590509738588401587433972407515978712983155308322342352080730157407672934764437773117517409221074857822260555662718000276499146104096758065291832142702595412478819827524729535296544279442305065714089580155868348156160010536991830615931021304718792938596445621602403471949252622899309955150387009722576152778755047961407880619223767026128801601605605632575687555681331420708014242756664743691559295337530313339645936035199126289095433273901798891107137696593645435477893862291074549309629734909998116781225711585674087590411035413944706078306760171724707854012473267879734633346799325818599428601405397442296799922951900298611594048816688379498711770638897253732854546027856960805173689224163146422772871353257083763857128057035821751318852543315411943677681760606643364209072950292518159335819318149284165361262093696490083813987483108767832423946258891854389281609368992946227281810062468777540457723228725460570271190733382099537634265379587659057534332667115378316419893846536001753708395007813892022017237102417895544604368845493620945755817054581457044631665909005335280237618871321128404233413104099130715776877004302263791381028315592249005357517475298358601720616926227458785251780868523830107383431927580027160032151316099513902765386324870429666107204617946487885583998712957243592138873761003734097753391910332794156009698387745015511913854705895218151464242853583346421912852414508134008786992003862306962764575936397354827123090695685250593372589779084508605551897278509192855251278024848038128499303368811847117721971551547119543068795581551738846124940301331995002572283693086760097218762143408089434564294085633097108720261541604112087652811663057263450718867838565285486107590589329064117564386190958896668601666891222061460041113633288484654971874742165281207662296222706609574256268664940059617800604945097013022775020090374031841413116534538843772935217255533633855676607413104673203949967182558783337762089005790467107713279569888109342076621646511820054383486816134726099658590470296589950811592237158035868730423025805585542998038624116979999757639966028931965627864270723176920773743530143176785631561366298813363470535250499991282961387462893502429196741337951352483760062779140835663391696050308038171584296111336795263798389000970572082367474054747645899229535023807492534076489323585185129315395623436972861604468561364787715855213350123913137343126016433182702463019136316240921687320155003518047192902313135176991328929484588001320334687450526716246105586022436340510652455396000116771178555238190716366891264660186759014625422892815587282800711858059841166227828388698308085344544558526528055617780930997554352027619385371270076346602670803456031612193102810380742284388382996010112775523825486004100432100320184651446357227484159585553993217239676814274947440376658692719599358406128668632905089943067980080957592135158454376636395412704169108740461185195216296938007620746359434792975510458122945100593811762138434871624561493080229207152337431493096675528624161000301962011180325832802175292043074612162534383540925618774264934579983121879662532932914604636275257723278818747534278507913879797808574187552513542516245471032009224341075327531295949080702936684812905200515198344824134649437852950961958189444928474194821095477587350640673770045671657238864996254636502987558545218707429905747846954304246747120154180992201574804426585639218190512512512703121835947169725284676324918698742421266632483057640912283969438520243000209067967396203976285169870834498362823055558217116075606535431145329249154406018705602509483808444764178883858149567125050777681077649582174801774516665030463734679499632221512316620858588287772790080454390329578691575867190860777753981546349028679948674508820803535681820832943440493016098436500188465553099872774526282561702925247478924716676630257074902023249346539401574333364072281202715290521543924063155866819792400425599988378091823209131250503446830362535464486600140755280527629658899506868511828361636478353808804042932158855077580440343571910891893008671512467850029191958838233732968183973986334205659445842154504774543669650728682435382300010863099869575572358165858997003002164276364686887671792508192414429367200034833794058347460261962926727272637135836806668660391658281348597017873293421397764040931721115328502913894919849552575797107434111613196016361355135141388097080679078937218143169853700627920077608576500279519133181129517739715796609511453815686324617915559285993647403765442354876412122584067644804363319203633979739629785555400549470450400455484339982270842177313223137022364381133888660473644200722477460027527142007971047951044172882623192219364636207126064573000652682656401635890210741897753376529366478061483121247389812007795110899918852158328997846556289897567485086265234864651024443853436646887043324557212939810402340379561660290522589530476223877422334650740834876338216042941676297560776604636777422737031149441175251587824929823650911058689518011770052583591358934040806981270943128175454807753558160732046391347904722449049457672981004310458757747787854812801368784692070830109230487701495579483986742862519653123718632674157085810497847463528796133642120566275022275947546615462412180922265071490163299862362424100069548214869514584531323808354335988114252570014950249315561172907729992439947431390320781652052349341721301545456536900832004920984053133548811728784055809582116575457050811426391102406706460771784713545228551450928892263804424788490179971294289258225166420173882512915016065200108482261682034066937325557932889385799091385177521834955300779554184335124423808584711679945949640543372003832466024284370621207589821919507054779872156810555392048387727180384036877387210945244601321193278436774657933530341354574719445101982480725157465923423696565984714565029769793491430200918859301792655038162317072501918501231521998113799235850140108527879194448865883607895125115246600825720806333683443015884074012868646838305167047498021949461827011157290545810432893361902549103494120530492664023467611137547874757804691606890906296678177411883761924690916561361381534433036186989376012533766137204260406890574491100657929416634377163291248826413205544180480691712681551302548214560377094380103087312198092821920776329585555702520212547801134913082537098596396253248893790774407684702116084905511628729711231570938658796816793574783744795677657039110188067087239830947514701223868893026435287944802340137608204447628574193822134528323661681294332715414536471021304531143780351721741916025098062305085890286901618557189043178946047608226388133061014446926553270645936669926819744277638562390943529560897070884779608808114905483492961372522689739638043083206719416508148758434449471701715477631910081062012374606048998550758529018715219957670870670867630239129799700369660183766556593440205489296902611090449788614935556310750401650046922411976195713998530201042240643065381580863310751371065252413806862495792303210669210563315015637385465142793841201647509300623899831775301885289928285562404744107855052835286566729672349927699778900704839514834111999970244465902551031252784846077745945073357860915524808538331085166349921023915100153789858884896888819582529481646760754764214973682802821129102076112257159609312695060396288342433085087296231859394280866561791436864924470047301692329193348244660817605651733987136710111966401976125883734975982832646206064304983383360008217564843067402816492088504601478687085862292342043463030805377481476665579986570568178117610382540691588377456718737758265164571862455153221450144464738389025153614415789697431166971956632856331278723745443418590280282221160767407063823054451338745897705423384421715272028288666741985535345054481419076552535287410204927927769432222465552812217937966915564472644631025348479040978181551735626126006296448111759114009244261794210658364775147218632930042790909426882507507480877771435024246961640832031286935451339835516009954567194166201271838723441303918094413282346177824113156089941257720102179789908278442545500120042042050209810889676980217915044580476565647909786208415924684717021917590275069491199011479067418010941537847722822278152594244593798504101769861050074686135658485616152261619067910873978206651139810230970777285779003717184587786370552018909040069413408965773529100580573170562562100700475883576498292500036937631193725506351362014140228259358110690473398249903897328648395268996462398043816226759108937372309178387925856536407544667167875109189843211002037731192707884810664644510637267280660813491275751937970842330927371012944766441400769275560416541125173769981515469993438337921108687520264912266397196116659292261331426151668808846541834185792956810529722802385050580891598086014465152758696114343008293899495642202307165000334897871901283750519824516033703241160715418236350833410367590406025147959052960056867960218831285695804420092290507172593864422178932297666081552926593826514327788928553125342484093453797805438871556836397555158855396077464284776302840317576063299031600912797763670992370675540444771017777510096076485282150946426488957156025109152826064815136852046929229549889924975499972776994306383441194248631046095898205847863127618596510501890954785130625587710613989738260622141524183933486933881107793906954360587442480110069700628448120541937955498973987655235374945227380811850737111689912978942443552599830546968295729582547483531676171761065812398956191455001355451479545376661026805107942594271093105458707082582181380537823376731942897407169409353477541082809320698127213633058132277879177034172304501164698098394861693650370684721916354693630783904733377138409566565707611545765995666937248379048791027480963047671828675520557874497561070023100789622394358840409934210522438650290923843556197454771414941524968744857659752403547637213935165607927972244163639903280774722282058338784057255437566419159717053925071257631600121214163195322349665574901586930545004146187652459910777330901694276679334948720828223460466264065985390158432499861666733272170808246144208162553199763529171023753398485122515500831378727676124568398423299099319439306454345605115223300161220076332570180487163714641609235333352411386165084449159892939122720613907016837151892757196778470646728361014872915824334010682912964178403118211933036677554953712700489647949828087668553910816798559833399927497408396571529146915712724050301354262547598804834670594476980166328426553402202597607795195143327509058237747289087128265971435668510324768787555584557381060722426007107929112648080910521042116330837395875745202937075004234811074667819324073737769679672520986698666718723991496990915466460916800312865426128719387153798850691549887571219075913146409002897080451960578391829853836322179683557316701709322130378795925892740209723074510953872630240070171293536725357295091471533582390694696489848834468241482394961903841932659805709815721899474695212415114899973187432977489060194680505465083317451433680621940589411164389977619413630365870883691683540229598159973337978512526647266841485144121036813239210932033612433424254544033811564616151347449065657394886981135607580050605196753038335202886918855299793737654242687210900026618826482177279370259228917292925034699549642954352577226273744756557617300267299238005643647881190976968351085876078063240906773146004497188824168117347575423229413390362376062423229322692392772065774618838049691787281528149206104705008848590164570892920432110953917996627157640594946719202620551435528563412939862468304270605884522414607958315492726418748954589671236636895816711048796572858114888444079628873142902189602377138463536299806912473405982398850264059166929061995575543638133584199055470646424962083050439093833754063146925005084130856242112555769425423125226680241659158316846621865801415373244437693445783786023117663790665187471728539812430346726765412319367388108439132205869990247254021501337199219312981436072127809252718278945291758755898749662048775369429030180910904138865015310127560743066984227030523123411062190323971415105526369686356892939543758976523901864408196121257067321726226193939273712525910333006678258849393107758078479278774559103673407317915240274278515814460115692163629682302578965342702407521432270769901235197722667962518188038815554449401691665220199096666307772654575073644906638497675011745760857545012616240080454228164859373869034193084943377546445429130900385835897184902642117727246784950315650031815056795098998091338894233020731850815948075002858228077529596774658089997827922690045559984647342700032646598404507814119800118105243940099230405461151094157703770243616268855513504304470373780042733762947731567317254134943963457620699189255150457223211916389458279703352994640811782641809655014778288591166421118458231000093264781398180995137668494046833678100623598625313489912866789818942451823753472748328759138786449526470234933837678932987675519398409742829200180130125020928347908113474704012862291572319826682058949729414042178186994709354993324611912229408699519205489248354427079623299253397625933312443331478375180226291242136057689804146618191644131366236819777849377821881829143671088381199399921038738262042636120541996259762358210307948503557176707810761317677109808108178979039280522040366080276318545897072438829798822193440491650501558615805484475211791303884637888404280964500646927993839391298480136959066055006727268068620307993127117378745672729658185229020707795232842802958044333296027242647561823840160908289208388086782580756364529139452481624927279421431415972051500838576671484320606445241286669538677847457816952448285278401542127312766631453946682196745797555698763531191811097283568901619480834663801137395788470699873918884028396903300205930406158616275106810975965633841983989622560140297533492874200510836615537289952620486035805437021818587643635283439966485873980239915126669547080043100123737723680882560396304452032698679011579939480582625855811355187546392837002736303948642838948884172603752483303163141087571423730438044935439719779087183979782381453227760757589745465221131453985748812701278634669171767278983569011779261178134609660734349513402753823564120688595237460095749779022028339794695303159810029051898298004523523160177176909112465644122995269463519047858066024471226358668101003764095174042498286870793529877245842051471052087293773111752743102693278060108202679447256165271566072790140420223028602391665265017738697268357168242262553360146672234585155501664692458746566686663535815573738119469503643886978188273661274068181109807538615877894870825435715393731178201960785302054828645115545885104086127183037725371447606709878281275928730020642803249980930486924327785382547615278076701823364563273425487290224141191592582310907014731239931362397695923812655266329067268755113197686397274924880750139909359627977012055945486419752247412049878202364076263116698380593336244024822303364489762826094214339892325240689044376222203594381211159647130500980523235747653965451293226062725089918719864777218984271215680802398851288677390171728180850547156961556317199954356287671700092744103062725287729242587913635299099416707634972068881872103741324436880121738266395522692622927971608401500776689916466478501108428901836229323891405575951515977951596383767150170612944117620461061837237095134963327736635887231081314977899810382031470138876238566215212959551587555933422783164418312049571393362641147534697507986652092800698862906548072733382875137782583545791299383590333915878497863871690471287914649440843356688251756558965138804892785441715778695057580310419257559387598620096421680252358482474646515720765286969222494714753374905479830466727248933381219037215376708004770912824427478908409954166310664204379702759539684297899738599386750477938586827500777270278316602213365648153080175882382936068694340457094818970354362935506954824144999998521752375428700456871643043192485122598452122459475677411081096064469211411603489945133523828188033044660016431250594301504842174488808676159505697316260305993396323736401232657816467781698750515109921611826630605176313864805260016736128661003738477857483818745856226627520505728593547953082533047725247359574085928799899997960867147173587427033958360035874664238778721158192929269688294975962661767638769973878363618221246764307292312038700518394786376658205684935890017463404488749995901300054478519939331913832582893642110763970335666884476889164242238867527959060826452683717593848990116785869982983831300835704444754877048165918746071712770249485903827612653154567861606467333426679084982112324441190989034513726449337438915884809901832329420266324952601835542585291108674035805577810803241868605404218185005531594369752854098748217350384813463243998092914791735935604730078935670221375319947459585299027134194887059038239842328993357940217020983980056735264813589044565410409137070819379120669363246373210211665543509465064303245795215579845538247724819894843333547031511788480006076465929978027437298084146506525264914532655463031633786702048863739784415102238984480272475750558803918259116035446294809753356040429983001029856613471404699214274757149399727586141998904066119680633794382199253612519153534488836990058294934384422259209447820009871291389268146921495311252594994918809438109243034094301340687280884104605176794920801046468528730895989009073975302703634357393660515929818001273941860744838421956956843794508898229582438951601903757253942601071978913973254485696115257192427685414440366096718739587466672594485630121118218475459617237571827126102045691403612158290169008555231668349135912805909287966135919938315684589152135331148316626900964606051709780293473081574969570647814992780212547391341545344862362272740131080041340174217748617714494602474988176551480216624008953927312835186351133722379925482197634183861516344856281805820837593131956870147901174342254928364569051846547490179562646610617995970590496360699554355957446036436407147485532513318059309025807565200407248664975913448029679270241807620983115315850671908438493192099628330088488124845769312332951742441424307299140746672974654598278712723391760010919839351971474436313147918076733304307317974974456969946210800496281012549714382692274214296882270298031034282260849504655408298340191389272715745885579118520964698104160440190041772111123849642432710351615320291519360615799297207700773398564459131078469908735839033589563984569639289299530727827803427500145893156542648207395666573312664419552723682887483280993092424078115394331971405972351445917991097399460583699583314942590872994946054818544601235823871837367704673250976334119144060833362723772787969114581503496318282035183067471089336918216564606092553459894087366533449884690484479470624166760426576044900599408626778418220591393290401246499737570454457645002292179342212647656309523530197640786476839062968435713608084178204057699915031622836007830014127805991171575411475898597242252096215950014373904878311934396049227675116757913409927560546268500046192349968545883511441544304914390085480161954001074241958227053782881515864018087258097317528796231661788218615511800719605440023704445641046886668237345864252739870938069585921818027678980842902414702537557615028002680960917771610372123300018465959428680071316165555126935542849392288037717484886952279014827853708169820961324437589924033307810848518528365451617267143342532870717560149566175658790942582045376990232423267555557844590423378551070249596468611174058171456096548627711037407325544902290715863212032728309831407591234912176744996762911290839737767548257268311362417933718117361722485905170042277711563319596571420778855171735005086588619588797043270066468168951568699162784856428529348320633838752811475123098229872992712500935660111553416960883925334761557999676352462706458764447748832933316581674931093924685406210492004945818029590279232362165918136763298900117875910125751470021087858892718634532135154451936528590714464223609689164530855682915563826324151954880748157442889392435838564385257648356246914838889809798902592249360244991659413035313185401782216922303790671727221487563400172390041270245151982580060203993025691072121145386539839260030090135634803401957150159580345118853781338163920159782215295562650476971982951020452619133883052665499848510179270411818712196348875114533587429507652453161635932912170575414525044991460522533277801136640784733596078272715726545272606331392475282937232611837369103522757318057523851173552853564665065401829543521157058643937782080300387326693299636722343116922879969567963250465017100498386434387996641205069296251592603021217562392866691456781182427001145961801183654821792751257683553834578076957632983522080853968973994169298015042223695375989471392039043906181091980450784587197637637518907044628940647194066227184863731662415569911224254793394685462621346207508385039183668408768464456057532040751194295437134900280972351442034545074427424552350031276689623513359915394862796751213392896407961159958812608918139203984597526203311720324154305517572547233458938326993651749638738826748525248544827923635824916841962341080895943737273842968211710050083135261572388348325511695117013989970540923854193269373648882107584132450658935648647054546872208134926912911224984416764263592299862271257659238884758620559725838663777170723834401433826790253891225688683483013062167898084323769516390209857377214121587040834095803578002314645905775231346956329912899117849653386131090394551671579790056953816152470748469885894866832704052730757576954211403056571823693698118636729001046983104504150857609188852183761775337050704861114797044688531582705129779439880160090324801911653460441407227088208671346258400447559916559509377295409482375097022726553807113551688023232721969155259550823042765215256675439072696366891853007677924672798562173979017322927805311742476911271232161425924075362146098503806480923058344981814419626599658818597405262904841869483043805932638399937654275304943126844240760697520176811111738524515453095819050990668273366150486083353823082405825424412944072785949796633396070961870064063927153279903745916802935426813934487535012749738831702606233390153599727084594351562056429536563509484774436994909532884337789672093863079301779049983835256491906540825495144914289635381460659496104326499361347956794423114323015969525665311413234727224383953358448280801405263764287515561033562637645429968994335766760040862119155064437542997537421186513600696324455155954954343572087692223070007910685607567667728560611401799598407207214235152313400025862406926565913343570173533786904422275815760749633605512630954775101870376364768602674213669602621610047999010263999123686816975772862006693086071516138056660743682352195326759836496452861612270359297153088932220807210673243028809078246460434317361734164482347855577727916800822108444271182555211107470298935497787186074738228659964748793712431604418973145293187993380157574403635233913974873111214947694639409918289402567970594192923470278537838130430292196708347287173043972676010862731040437799679420086885371362325241653582398989904101375700930658304025659032552857478490495006029824475491566959158151084110379833525240730679758649671731747860756747021398726376185663973811199304407115360231935627434334438455958772165298749761024125114201529023524172396135893203817519741342860704459797941760664752343061706323741724914850195117150918132694246727965668128384098609413646072319322257223930359288102079864011199172395134401391449416887610989593858899695412305301363685931111191202059299268833759867317490138490417292037927841669788639781106454610535252253469523701133276497782224006751373706633128246954139797306348400589765349683942057270612428422352452905143178724757564907468672184370910799844660787076785436097804480424377966275457248025129659440416806364740479154666058376832244391480220379241251528133468718541951740800282437200613649155479856719360451542337584771843714544323162316702581436654669584221313858147466862859742897560215263400647737586521874728606768419446987961953279917931041152962389983107072831857027903591123605939538476495507673004071710719453951534648703793224876397678315378171877553426306170214911410829386427045919123228321883718141760179029339206024080989217909924065384645604163939097629768112474709822895460132136129135502386533473033918788063119804585499054060827786180480144016397048007828685131315836951834739507686165821563169714576464697951580642071398129121194936013354753630035377273655647031089265830857678157231625790789995405744899442029170626302721381749311729589083991097633956025874195451531520252432519936597249399254241192385223878053373344538052536116422958129328228273463684508997891018721090652949157787236480937315374510102014434400917793772184392296183844021024491392065944338001412275370240641956574805196349485280785608353643747917976300173001247281746015148898720950375866763549956503486406036199924323011352804435337364406337237440989501061433290259545997762895069265221139690015701877489779383879406869163631945104147377176721779379021418535839586065467077615479093653103698739179616081895708526665969981351830930932422026184047656903130250944932464329723558954337717462573064465882133444859952967864667238415195141751736497336514813039831154968630909728452891775727443319102786294158028907966686112575954505588873485748619163537849680759166596008503147964715691589059466370871572953886286788106440261865205246060937832968743890670779863076600381820583819754316833999370198234405116765089473277856424618591986145513695326559121019175434780336865346712884138547299477342874384559477366586244236837973409550387878656005228645074227502645475968892052379161220088666689260615122157568985759908411190781105041272534509311000490177298695062648421219439203851715811484519837437160121415010103921107245996903155871479824928127274901128061851321224403834072932280307974854050145861977001230657748078693037917788148672052097684764813106484644562006463551299513791758194050130388115486494808423886704919386008298493333064200529039261166168792430123952597459555819580422725683887663310359487038221444231547321880718748994207253921141046126856674864336747276285946094968239622510061157233300804321200358080033447528191145702245081758080390582751105554238497311436121651092307229506097306251827753070255931020628255492470357947993100367066688650664042459349981938939199609108208217446897776226064152142115949943030669665901917698380214472615752669801394406628018194558254999641301048458907401516846087985561190777102489875850245307178395144605885614166534743528639472345056593352117850933594171112922590420904029564925574193347850653939034279025571764752273213472542751490664974795721912589424238271178698665029767833504859697153314222230578188971981079111741428485332720308890188707733876051478442850647342472664124059132957506770699454004879277218438920400296826172684240853842477560294392367420569395081270909337825799043544451350333173926300354095401450644207939902845278784580890764568745694625095300103580429501099156376973472057951008753150061898690793867605849735513882315546496908566905762355151046081301203020036065840507657324452389166607988688945971990565801674600132972605329593447681794767662173469854865123711366625546587593220121156381288491515306416537875312516360925984173191511289374476882397787096885343587059354041492850225854803819247406210290119556443409694518251107328984235311551058529400083217715703631662417416670971391463900719193826001204506493278211612175956898764039275872434479231661425242097997272390026264315807137466655274571907204458702101725988877977669111137706003899564857600464991900650099843675784314082341800033238982864687236528986328350999885779319664000562544134153600519630526705352367906813420892478861153161074144651398873579158537363845345553559486386547798741330038789233220057643287987481238331666547551459462850914156107719575985468884829900688490718254573431590066635204306931125104391409832252666371023584688525918045393849232434082441660310521687868136234176841382064071129380909281733039798192514981779741815117393498381019452205780907539173070266124851066885757853611255131130001911374214029142148923493711266581159276020761299539015613286514533413941155897252785454007903828259222935992931439446526950078406651517776430333616203418350885844833618378406532491348113653182973864614353325961131799766922133192542429661999018377408873215925990689158728412559480425736594468980690156876356235999287029627709443576276096294290271084152361520315665652185825885945470615478206423443330550025296012040740261389247354339062387308419104769349536942693534347845221418364224488885167916291273628399014196140963161991219482768560001229452573985421975563994174791184405660064823517467466351210810759797193966451128156958028434687098836024546198096458810000195073311476987964572077243361978707429993525679365007615952584041631180278505951063643106464659750809880549677497460205406520689471109928072055096046726031067679574219130018465663660076105697458374510709843649529768446707981428796662307670069512801593633108937672232761341412464712874328932283744028630714950456201665356847909998510114896394972400141214978230429969190282217359296427660058821354836795142221672342054865621036191545678552929491600840253442328326972604744463097987780139026469461705292351203477676978593869161799841552045281449490802336949786835031041712568774968566345958747223601115944617039426134214881864952689422609730389718810602928973693966414260506302725583194834115115588539212395862159981637229678942082128984995191291605759210742221777812621954404141451225792466074510736079392880361234581856680139533711383409759497978156122220924634296921585621006181007098040006562781835612996611493017835172887758535355050020473602044806905484232878783564592303035846419514547174289194292101750482106019068902502021075490832810488641599501724364571871132042074886793074438159650145918696385716738402985580380580602931780639416890432465872948692939076729555516068738635684307120438533153466196489039503781908860265318001958893137405192695999146804478694459212601460000582972929531119676049042958666789112627657805133610688846330698520629760583219050651670980380476764205625488685865426978937565822190315577240515671229095533435114797768147400539802379026445118009992337302735172909385414368828644726972436116378482374870312446825998015971564568009528242998767697109503719382513691163843772129583406506138129653684471076407187652612204102184362621380153100651582144795585629484971240263316156165731433064439296981364739129309283200211512422641490672448010557589545587986692782253243270675689450053697594811050586088125126272350032021764051656648475242605465468240724668924773831887522570723380622115307669734884647148831837090563411391122158630475068541762771566754654091523705261354596054146077714091343608701086964488218204746883219141566141346064285271889475499788015356125536449370079886427607481320605251468511519026346705091045969117739041503019877569437124982236610386126414331854312879751015046505299020904202772201891332095686229778306081614686085377488054249281549263710843635424523745520700252716143745232353797912592729871552342883837533611767370861395037905187665215476998992525086260921645284341855955128472658528649236220834573132889882207375954382129834716379299715426263820205278088240958955939552850150638014340505345645530014620770342935624683744093727555304594923334426983613601032282655160067333497419435867760241648652743514697596958567333938479118649177955856816636499778064741206896927658286589421860520808422491458742897186461697814841938181219709855732766355794678397495350174607841819949430899507421382673580360810533910316949514328427664693556430664389716286418426990099594771049404890642366247108795638121342175655987778115288184715689677740690253238163266717637479459488483319420551885913229255641565327303342826096137536042603344323941319332658134198372666841033184726485449235032625354813460098342171287895085582159202291962944875098639773231875953212371731183536210157451979145759087842602288309796350359576185306918791485323867417368024395984295627846164918409560455537616591164846390860641144477406497693437028930290833925546484130718905471189894482217018749640540692033334957447752046961121377029288911484264063627678487477520892157021441420566081447005760692265737195218497535963127610433857391144606346747743483180499545885726693589389613299798811428136659416171105131949269357844158146100347137875789125453984596399720444984393082734928414146568789445235642775282052122889731170159163026327878089076623969019338774962469736802700071517859917629238638970102989927606712301660886619845935479412326973714063443555144936999322133750716537660647286942480562871443826265131839577000746255332796160340451164997577118287529128585894693639346948116100706275860463466824472953034419891481175496097664261492581844018012370721778227610607228019003464100353066607903038363999706046326039720174658634419692955847981990127618951374783633366961712363456294192215370755012094800166751243542572003957303552046011858488067040349489861148887349452095321694858706055621188218500957079558253048638845607180265747852214995443642081677136950208049719988149522890746564147965620790663840447303315592777191860371914240716243176831698714549508155770478794728269406693506710687749465059715288093187405788549857243496692532572202418482126387944549198336572839915379270118915583715212470124161204427357627142012203390503390918498850890647876008721424927466922017953466376738457014359227340025167824578078074885518171612921270781016204442242166421746610653273262834698041399820051047187562343707477453251295954645555611192048731405359606395284777262115232996265263974540198474688632557922026555568466034317988522825745617422076848742952759638556846045645998748226597960441823541511139106478460179723983760425684924544360459757739264463112935349047910928348238687350677618593125232240150594583781024174152884536000731501459166838830422472912030181373163399855526467269046038549033784820940749457114898312486076126427182276815111014017841833010884753556645225475930570375403662216641765485099062936854991660044348624219363758656724245393241783835628532248562649624279301279348246263437060276215954072360843335469902571538558353169856917468912219756161037928360089180153699907919101949538504529186306872890539480188892951051539115523995429459508083765751439550979881818178088570095098934613697565143166503564788940110049014961754102841909643763151340848268279693579071173778652206614927820620626117832675272979214842263302376674517206023534687988124055675637203670581965476214014500338438993673085166813810540752048179960626908345519404612160498044522648639360306884569807812412176930511175498749732632120423633913727359428909480194739458500735410565024327422202222122714779378801546092488296955146983863482785754651744383047662186692360190107176204270949873713823413967982702913645086248487982956646675323741682845816813674628684268124270681556503933113180787095269354335018831173339661641003454004094062602038809981714919465244489189397273869231978136092515774891981761625864146570190354626694250088275171385834576710795569322974875215446958267194106180559591575906514485641136996786412709403250440686295626553561639042588101010529327228487203817898323233594691229952522460497233986493997478589812884114869204611877192821737403636581733883688621690273693970337175280887716125106677180778423817682450796254589829262169794689783958845008580386524706119928493563894535255816739714873276529732477465168208667646836770442855232752653948018413222845588610369111711883573111915735361437654350922024890925491235051527444674041563973412334391102514845593984673611930024621847198747950665466508935868951194582464555542162444526825847938946311513672406223756354197886585080984028398316640100276859041424585950117621949341204774387039992584639665670938496163121434049607768768249298130716221655219550029216063565448486491808054441512500206312091821880057586163692023289446243862467680801748184453982684498843784464055290162451073083541299820493486612682339291358560598227115251103234687833411071022264536886397752537821315446548367991460261491736153573104998673525214368277425981132884473849721312102107944021838543973905678174892904727020814163582668530298288561522903564066658665555069411703495779541001405605626543150667091889315952615199542204241713779286773658008178352722549603393024500214714716331955215067472408016378135071588446374140227891404909687901331616209673120420300462113989033236243261979166401030822992498072335201548113711149457828132371185840834133201132198998375684055361438487637953292628110396187693355854055198816350774375797805279367734986238400496776773860618720100947181807300376127620469432454461913690493885677618012901825210143506830499798020959223177096224128824190718823151225135973573911753994303495953238362094767488621604101083100759562284863406095954021347846005772576170238881336780971827837777226607915589286196550023926558785127957176745475984400593108923241964895608178436377435443809777039443561508917567246872077156387815267293774453493265911967712181401542463533922648830413794405761817964589984100262727209532306367373366811976782549278783049568720800600247305500186604056088474666207057828791821627885033588341869855869175938670776141748879053760640033960468867089550610803277883155881676314817788055692602581365420952336324618238504065931172520769493038588684747863952549645803271339162637289439353491063023168691851581889392921277050098333855162479456665919318922814140681754420836144575694854782480125095378388561185123287097808519993747766669116335357479558531664953764713784069149878392708467292266111770679485121388163112287930527081106747624126144250687663917881467110155532169999310117314485051194840856418595442795395720387750191719964969454277252704493673030525120837038520154937818156337083078222403928689910430592933955105842546396615986976167525364902418033362050410224042177605635036202061547381065190530003517469912407155690215240714885526175272043466213859938683981872832862460914230928011239179755623623693078082315363114869221519700617949612367920125199414151141087112037021470967573124198696945552918525751096984301618204702999448262457357135498171644288629166722429235657474683871685807872057425728736855509120676073984696697862172718858328108507293941607307552164797118493315403908312666831247367019440472592440510242516489325326737901709569069074447639482909566492148419704665972043436809659228763897547420085905481742483093622719020694562971998919461912473621961727515422783917941803096329773041045272300435912358203430061412553630828116052336191311383379878280924258623846606773872919554051639206905155010227482720167508774641968045138304109624777779461519804307960475875338613800812527441700155066760936926228136762384899811523154676426860895054251509775847122918929334492198656365524788930907466191191335954982060663294489817059867623824814929065324293313714492924528528693312578411236351162074252086786289589974897954979921479898803403076652339335683057488751298892139559329097435394328084659509559959661414698614037695334789602587622574986565872677674249788052034505642453735600585276415798830768323975245627414045314953812973751913843231264596623264810864555736601853090502368305787911368029528798450279929539042200489295381913870201692539203273278445583838382951227555498771760898675069786659313098337052115086458882119001800496450920160629881774739345201119451261083887545156327726119913438085043837103354529970566235960642079707589566569789454311468315030339369855551596517426640825819296075205868643259977252581252281019059796314212515260117845145993252614332643306671862552579596043681121877383083596533854111672246618519527907450875781200319910145601801065243417194133702039624486009249855577084365943037847541408598543251321748726215661562941559475009790422288029383922695222906623355202175673315494050319164289523118845726095275496544996179361095908465985978812637563686230650729449186180402137286156056778758010174066778097080791620246768998838325849279717796533584260957758361873007952946848316409109736098294394362447002766095629863958549641977767523253140072099862443623311755677893265360092226275240894083193044690696240547374231430963121646414611120541809830123365087454609939744584922160298460721526908073957660062711341829082774066615776439304309749994412217972377984294074779539857656354076866364328843976313521185319617278807102421770737575374909838890571653306783464524112747250439708912933257867314784717188951388203886681219718623196041615330885001328024330570060523430639920576976508430034014364295594725461585587099860781722856454539832828234222319714406195582667224986621689115716668847166671068579919465171014063876358608602058719909553149542393497593496955276301208922816473417882171102457165635059887473020763837564445020813388349997549712286231154142608307857193818818980282553853247805410522532961833819246944211697242493933463422498101802825285825079115112328450388002468207019731802273707276719834370174177119164517670670629923138459804052267315272954175576513691372341330193224646294620180186207451027165730844856644587319871017391716386925003285759254552369316894123534532259897074587471310351769771076396621472585384141753166441922272992549563359509435201358198192394838393276308566162702588343783987874611773124007872215888757509916029752255819281902274474381255297637328778954693450547494220331408872677048248022610008610398054198233512495639240028315958545736012663583632477142198661672648837258302749437182611005982991425262040090508900787994993000186614210408931961690570150657506938332301648624634651165959499260734957229563287653913910407087735603538348074484060646911552671658299530168233816754551834570152614944493355260744492362182601844158887794553458633335204022878750716625248593039095262019280954814562129649014316948958347770731259656324400282888420663723520155327990209849877459360245872098547820254776530645487980090949833314470226612286446574342585256062727020941943496302380528239758421547658016488005670332138307356304366093354077331549121346832300397149496033210661312096545945572124637505158694154982550083907623941068470378392885401556539962432732476471784192186267901181979566469272980504030439487075731160067464777250186989779590833453288258304738151583682476106928767613095581185398561503529900389192919170070962150304168303173217454156705000472607978400876338268980746403238598618866997685804040819473132185594795187195993421886216513395531768751336284029637284456045849459310730302179425052301778412878524192971810226220088367071656784754186054512320045036060893307380098310412153190200090759478709537214163178403983736950721098630436038528608754818175959193836770372242604258842766441069249219019936102349560602699617585255957225790077746938871224577374766008273359214253257171037358579570209319252065841973406750070366860078311324725076543674034687227564321426896024778882015704645814593294701705205343049449783901527526074076289775371721827940393874096870912958841034915428132117913013077325069223045912553640060112438730685650713102522214547230506468426539996222510644039260610199569937825248502989560805952333489458202255053204856898603749542162507958836202633010517067940115488749285691757793627132665800845610660453559552357843190870249511277091034815441612310551745704623902877245845558917670441829933474021363963462787569978907405389978992562762673447418235905391423753274910998669844351895331887433092433302075923148743482086635623598878752760789952324794166110737536214636342112437347571331085107588279701630000049963869970128398057101728962180072915376142008732104548092495669127058721743372640048393516533288923168839054987619992709018014134643479322341692898439119567375005241262194486965977922776812410816857569387131032472767431645357638077412029439818728669803633428516426542001668571373783938355976229536313398090031602722870899995997202321428463961913241825621526710389316816761065669885092502305433062156907157449641671462512645515343635165742988941229106804006820950246355882137754837841474863362702736130538680246053391803058555772148426138287477452018943572493445323279920013941468156583002339261375154338304827163501241714998046526376156178979081112531660477747159187610033787244293574700384679856890163253584226641127849509535607581623331040466500040699265212061433537010784973939191470154869354823359251845146011708391534181822034328639695848011594848927492313693126228778842994155396331390789527429543488064413896565172254517099247396285888390167871943783151933329899460184681155503830357348487192769435407933135912327400664278737259960076787264204703354066489854385690187145865186893966885726135497785390321918143846238193696541227902359460349363852320161856720946381762062505209978842517046671202532058183620643044145205801632420327213888183807821214761406322417175575499044089222386836302232554919896426403404826211812827864321623444069099706854346202653495828768704688585908131350648260449012877593905144254145208936249076108542995367267168261569596572392609532270825449488351013237822198623631613543356042714292179384112738161022540774650422392157422807756420122769820721649478990834472416914788609267411642442502672088863166539567910321331631347203140624053034379207459674302432889303818827370282034089812095333382494066017997831232414269366651689700720025991293697512912657685965570448095242485628131977159213980087284867484441842718848353409465349080871160659793252983087287198710616167158962926728730282925141440809245682970652003332497707581843805580442558181909097700121257036823192485058919121554468750977196576636300346607463754567049732084508789618821120757963176644130972006776715446655949286986417128010453231507294332463547442406608125921479363388553133109468299563033809606910945624229266613090667605302486195889274401504613254509511962750030879444953696998621743316262606219537139803111862825946933451350614918712411055329419953612633625099881988902244074673342205620090362506375682181856561223070424374192528703740090166778594087449048641336398626194986472037941846213921295105859908731509160578778252686785765625177652364975759116178874807073340844743518440927304094301579263668973682100488028612008313771114708604419291629667476189959236354072767613186041059928779857860267856452280877303930719602425563813668904413644550125501184873790469548993793929481901275205599328249936106831144320059529459949076643250890097676388926508986870168167908802801646774651044111091119917859791224310250787105988359377197086143690504781620166246960580463775183865717789658848132471836961695753224775812063517676985984133175617631418393224792004127210018847344586960628339735203404341235545352529057813512720902297300636114936327696811059884821607259413491187307078333576870265854567975443866823866004877894966418414031491971897834309664131506678583235730786045993560230315459784483498786351780154550458961780750911094339261851339341267082651527529791624497583553597158723778337060396464829030104002648504302951229476601550241124967180002746295905042811736121760247170035163542758856546431567183759615854377334607680838500124457307003652385022345656364929650690993062551386680426403592347168619041437439965846811159729865344056683675531118580873417259106604034605579728665383377200163721073998365752159382659900134143218018106414861512915969575756936389968121277704539572549830539412465737815339355005502950104961111574665271784954247612048684500644379255748924938582417380192329724040293687859841391661025953366670487578747117365634428144424289014349487359504101572801383442200071474316979778167231152389282235303098390271247669852506049536080453710017277114917004297335443223604537359087360833571258510792515841750404735408360356871109918704460420957916262336053014106431000995026281701591170004616856210659794855683583699544745604928709104338760068881846098665323674590025870666026163146629564686509394630273220436522018990336486468463556731608112292139742219134974078587118536214533024892703660127229794276955019957987145209887124650760351489411558854124139296888826836050432669823363329430519988459403656203462300499841384752159913959247817975468843142626267372112618897315972411953284390468727619425335364827617307027029761551277758059567974971468216015155492400500087680711871995082101772735417684832562370184502584547406939310784929909642030287531148534757134319240770115197826038142145627222818912048142286014901839106196758158043694805460343993362803776775131031393020985400000900708434501261595547797722837956372865478235265539817383353672126013919538313638872684482522720591777316916877981682102089764188042875960859509582847239886057676624768309847752046473429220031081064509435109745229010762406663516525640348434776114278675834429800230220055113579374120916889051595776646701305736455886523242462695164170166093508691184549916744843154918070011953448985343090503011046790309985850170476526328293771319890332187781587112881323487928536943677482897922757436277945991955897868134437466740367241019316753969831259759806729099129396023725194229051927962193030879461477867616454153622796453564357834830449823129211456820613089791909700673603410854837620894038227379776953591495303106621900514106370197861563293509439999337119632951510297239134093233087746390531150330290939878479714937288473857885350762888646301232621392354005396645194523269152620389843589003104069612230263195623715888744644209021598901837015990713265813526417102073806744183373218650177702594896761630187266422389270946486368009733699119736410316441914885638204780888358577026958558857812050257933922123013178440995380844059538725334751871279470054581454824481562858877206481409804430621010994269330405956628508144338418624679286877286269229285196710680543267003271434669249517284195766619963559408699458987667308882963120408537329134241730933656024825038441861324323471376178135240166113387365102272508539085997374069723075497211878582198490660556760501419007295267196164996178553321458078920144592344799144788194889223704313601363765617475990789249644004857310713026576218604058727494626007521376217489144913740316805282280684601057762865468817192591461686689366943583708747004239616067280496322882627058106661907169917966640625427308786867954761643929974264314927087800750153832236420363244811440497629638458552833494316574440752395842878247967714685006100730322748395531666882769324421866231507615738378843028480362992363730176783397340369676391674231292012064455626627736537347186247675447114605461499216176538460433583274068695354133380247990882444637308517420952951847173910335219921348386769962325886519905002557468518283417403603917049332876456140968069803164328089794758708361589488159551687143790972823421090134526560727249127485190147611486600226934985276049620513780672045459606752055075976998630405570095961879201424909422949867625254887349896959774806435684268141683644095514424162076264252030221017577653836237752888199032431866235862063693335156839535304010723327455095541718030006520908275031436547895400486664980460411507079712834961045439999195032946328795482912018514289871538609900474567131027653006775835258956954767644567055875587405835549409393387188901034195787270275103972144836680269648403658466629246482902647398275140890260304823969838204319584881268691316573222276830383978275318395155038577161102593802031108322431999819004399069182500849659145676282005232672901427654122773995431870420123987188767376787496907182109881814214643043010249273767850139007575429993972182736399524928115754670243980777075464793210268580484132520549614202061983090167704197770997836357103941867950627513240943706723494171238540143539160960293743911868980513912095267999192195516244239424104325034611362798534691172452774803589675257601769542989360037470617440663734305165958284734229335752650699655400009336179726343958098557696314566658453933399309534181123626761957492940099898180307630909152557305196096616506075042251405959409791502039359698750541459680100993044562195314878031177997051622102018916907011984475332764075560313088451602120428428765503294247347114751390689196633595199463166386671990269860375226436696899167325643227577926018539441275693632262091538856318360208487207825042264289636394954357702601676899624809325185125047401663077034869109357925083297015887113148098047885667285129317400307829344322672220802272793748198721051682193572656215559953942953641989687664339552736272823588310966666968715606485103486655884685676355354316599617110813583006208530739271896204137712403950709242894702588510779248694586441889903215866286329595391750456374726228027596942119237582575811759887044731196592008998093789383985230974719775148301925541170964892260977976613469499851837228970384921854497978263873097406065153665067475140575176412147855441255034990963114854828482908260991106565818242141038092681286176455981280021060887423022705376497085308859871444448305654482875880226366680549253874476229768553319459466563373663357851425746131842551321505980104353068761393781328335899768340410090115271131483755761984960764862122945614934908812063063890096163184396361520730063934321930372857577760079879187596505242773545525069747787791851848844543509828642553357985434543336999974068934138851844903404581946516294065880947754181681814298783991609718255766937712289562020741812546630675005547329959966863821863083940877621428340055841818873163102235633338749296190642746394862635647766024347611813929650087100403750589494905910812187247557969620940262666061803929029053035782668284016989552172092771627135978478436244263942254091879561807041757984179493913530640532736346702817139813222875382537111442663425964822818149602159349945158049789088633566813998862299638758324596147762777677378842404611650013015837715082282642370442969199886295224059828607440210132396435959505706546707251072073127868915989068470716505767427495372432242947094162656910937891867541322338945158792722021139014553780077855735729041693494681058703248108389058599626252059009675175367449599788017334905756509098258014534333547540709384157455200420472351936930359413825994214437778242560425141287889813070120170003954656675421681240565911954904864166831784498051459787428976958264660501774012511486684348631474629830480381165140742894125261456159862672630270792164584664733358725436357984870315704204347920860456618280349127536959532891179381525351094729588950608177720883173061845211062619763853657624450826915533354298824846099075852024774401784785605182294510521763619485516596255311849866053390420725755381992012624905422774837629981092033116578895148586779599341261330995742641227718892224088370406493109362948041080625324013100175793327795262313023687196854699926368832733346905063888565981225442520653048296210034905017686992264368841449321380853882963864599289919102138883805080353878070572205899799945502096581574421498177155206648073511622556003220700254630236448556774136605901442721431976174284211556308805057369071709713983197104606944733353360952931891048285047379574593387641793467937578811984623457600580336269504875480293862804862662890116802039038284682960218654475256976326234419523966657641203301256744457982605823833365993005566252092295295941616911249530242795240667712891783432477164779801890745420600702872089326398196931941709763631486824459288142066445785061235762121916367901048084070971122269559412601733973144086063374352233047922933522086530461962541311847260401348182870325821323687272163483863918056022474314456394579784670988933153075950966995324187751443305814864038226789230860000081922493408872307050508726902433403304332006493729026962877894220606154513255686237337202894276480178713011819122560820075889517572155696497727540734046186608075321055762802937656185398617695299408962709658503265212340788048840937085450952251199443828235089236716160700135867967604283544065872041055492964332983912919026894469529849318579499424999914740513680790193578397900578322994719862097727966145376718336465608958824225151475308368859297264440187553028436485254649785184300454261913014253776407146426497191155453674547792605122174257988812056061159444191869656408558495062868989317104627557877261713260735746843530258798290772074282048721329070704650942833273578287301186016249044350888881884370472532364941372156364700499076723351099288325467384986039557720493924588488663274944572190824295994707438429749555068296938881582775761765000706559549927193413830142459252824383129005853245951452260066354183659329456844787276911447357926743375905243941776227425405506511733241043822897718537996568458934648597728575830348340557810424988642298133994893639637901635106115422264032117248621080524420594880685196852530186375005413160944542199235903694246075696752591416249759529674805243790191814730530180127343646379197935715511676017260979232838902013754058986420311994645164000699711669578514331133412177140342509515269788152798174814275538570507230446684175799819480027617840914095417924311380870902865497030419191453040681583465030319349760097611963144541963758392198028920804922935342638629292327349026435044969241450983110499388922687953583739712997130668777259640136401451686769914765037171940417662891482237795519223104570386875883778081128017683714671769540761894516758829592337153848256928635023518932836810082029110563510750165610077912365415152147870718057407500151694631808345482297387119071062002778477346067633501980610396792775494921905987509105484376571041976482186294076960834615452343773083513276877667770993620867756056948785101989132231721285799281300401013875882836512905263091120136141557783087802723446039118167768851952609362486131681779016336536084486549184919324061647910574730819654178501513710833401028049886930255523878138654954127557064347024088655342473717695664544575549603197038935474729454082874022175618936038063172547203860900217649592087442398340942296965900555153657287976700829366878818815531210488695482167264709260203920058776521250760953795552891515207460107474515107095334310802855306684623745942401517295567433543092728399888164571161977798715213156225372315102540037960631086902939847425676524582796125780599060774432370494123356869102762913684263336955181060083672974190516697276967734110907819405870191846971512440259364976496197267706497298681360732701688044430308402233280725679574490794326306078942892088197453580670362987254816274371196254731876838187481516803892471286551766781461940529941899204642089802445007440025624632461621556641269620000507572014884260535022229507041678755886373452335625376828062997531609076392510686738924929179150763388878480429881392926110676480930223865781363434195858862928825401897815087379156513684433800297148464263656446681356693225637899727553260874715673170783577915705921334739065753219899021972652932519474624999447385475020685843156038596851384629763100669248063910242587830332132523623908891046766096674171591618007908217029445761336841101881652618490435897996536780235730249486486059323152333644069016741657946316818498385975393561472781444868338039824670071025797724709515117486198142818110941367864144568081689878230995878621337947817261344261067714101087126069862698948344590542522475333214633510737824068359274576582190664318966280165238763785807659230413003952526424843804754039876114764353750272611297477365483231839792685956265389290338296737339485774798824376777881757822008578519688984384131924523912241559882167276195775801540830069073185042554947763038935760724402062772750294043732766937338199432415106095012290202880598785133677569609958866525549288629069639509734813936011780319024150776932509101256016006255948917973920918375975814063060066506395889188524039095221337639856678523366428455683700177230991470523447593567931368849629302943390100602331849995070992902172491842550201964586333128407033912973218291379922652376953904503760674710549039674114522610152664415611163860795649661509236232492700623360093055800028342168048465739775065343667400303382301273547911156515501816391182602742740307730719221286448620691711499487318784780621935079211573877365497068380872810142578736305638334743672101483478429643718058646751007208644876562448584716758841239116268904973386019163451216372617955187252388089172840554526544316253242315861647705545505048396968978606971547883028410810765217187486990757190166852760544788171632791801834801368352983702510558253391010966143416051564122167968305431199164561993093903823419638552319591779835500899986799685400394907862180818122023385717011291669202592160849024995954767397259871698744593270250926750145029635623284370230509009786134411466417432245115103882071674087149439699004375836354236226271500683334783346687843435463851757474743358218708342741753871962085706758912841532194562074098497313924781948362297934659460892048015962954967480167457947966946933731273449089507451211353817293545942492313964143443429043774411907186409451861215811162059591112705294759045133952730441164734875085713486325254311957013627803050888633197065985196144443648931470764516476101560272353933171024403009357970304474156688769548960542879072607738122482566252384910460414138426010855594734424662299968154496486923346117993001321383726345421283484597937112582719248132653294417822198568970574773560127757887617286739128285052259892251468058640940097217012455250249143492881522569384247030366695382658406356436706339412863390722522656922320350596402204887065902541515131959477077744372010951028497295563785042628060638361711192341439598825587612590402868443674106202365560573134579178126300163705324243812529350622006100887745291741241036914749896108398421240771119110908282304685468889403371440240636984893764279889861397229965563953895497771317071216997906944111122233484345901155191758325318709085106879493268446004240683353835677520871396626032793168398705806018096144804794220189414913549103700933524229868343635405270533572332249549054065746338268554018061955815134979616037323596368207568213781655530540977317478291123600861885465889597187792141906262808833046179629516585884172489524145787715195608841647019765357769497046148651759420505610607990691070681805478910405859240270651781434858891803742216883789129413817276574181695417704844456786926146807457480075442956814499790387708623344869317042913717186836501978330963685348322438406334235061931968819844629847164784406113123073666189076109107956634121309095557038171374421717252607297571291622723691876371712369940950915811405255159042298303517082065560068741455723715485225118681845779676464064699295871428977302401266792597895270242565054583958639861568343466163124114272733617197078598962269377170142582397735615268256809490687432053217237136727374484251509534770537696034597602140457358288284670569211743707060282169440206574763362707418214721133642482207676286830630333800620082581967360358250493424871708723588344831240029881779748191320317145722187095924091401210681490008426741368568751368242133723030502985160071724484349117190918789484066977893408653928941992511365896857577734715467630015619985750581241092987697437716490621482433320811265953892590415035842137630882195762913919444332072814747672252770286686131078447087982442296867269124982584693450797713361552947755664450365736822562411806288815917294420543346594820652962137848751868501529802513228342610837789568607667707792309615354873252403200711256688836661903312966221947063343754559762645183952681226684171208533275837976975583216399185059622117085902767535495096222528031121616010274053825364279148555025085299370930414655739322920677026161475090135422813839257130591069797195452192184032428402568590645489140907166938080261927845828039562906540193402209297533717052269115206093722969607433141660507501777429131225254848640600893417814869940146760091686740348874669933115727122003105588838001822582517718006775745347978816464746349894427511968851149920208219987775418511258130841562808578773964956564158204389946811908403714973718477270063660093364411268252391880204290666632119202847785976147880942666732582048337578442740980937431476010012706006718294218191623153482406955708192531830760519150545826583257585749551557069987100617820968362645725125958258628686889933270210074900239028863490382599258329677640882426534054659293204355989663351341780408991794781837112231361553861616398038700294480477303788717672372509234186894142987875157979800507545193241837761846198228095664510997665422132803551447016375780338240480590916058869449323178558014425591043741228475899104651750872694328520336664856225369198645935355316166068036036141436562804133572621537153253948024230860761727566912068542945282713864101552421391460386581195313117083547801636134950552661462518347197304533811760872994185496394557966989462774884126201438590064515408785102015723387974379010757665350389929073390310888981384548179031619655229539479694776364828959256812435631903310974673317566259171941076061671947540044433657295993070686692460192501678419299432907825712905579045608555495523242381449029740414684972429984509596954715595445915528019473563149528956907330223313656918089216299747014631943955593781381331276607546976230738151019538620845615627343752766063184763839464141669625915099597464736081550836284046348601733869243258933760945441546347297295505842909316151845039143342868094099012022646359393034823240673781769955686601672191138104883057840966215034364198277741626046724791461253321052134133937617596406346068372955618387897439412868370139666436049340627524039575689416553972565109082086549869290264595111342202082587528685294728733391314491907548835701317300811668084273930695115182125032191636222782443664158173891906125687668538990873779183683082068287651818367387618110322042980895607802057328662594266550335907259636131892325062873841091531844693296461358740724661352463076003731055426918094368782649591710649328035710100603197079370631857366759295692323497939622387422794139410529767752097019657099857984074735649993779095756067032851554858081322227609846272611167635046527954907957218520056387665056495449431299021134952425189373768968810274698220055820594681921703079510063224650155975010510226895866670255378904384980700861609552292909716815021224443821293620773530091874567134311080873390344585084465363026556240471898771827211786613322071730465735072683407314138774038200087412297711999765869944579158320112384021869978751686046323230603829478369411585525891285713683472977321150999811818490963039926889307807642006548658378969815135101878720915817578420876971206695654377927262862021290676666657995192668625014894744061046855283252183035756270058781787773356924662737417719964012723570677118138162494185921196834164151014027304256592904528272787779030160034581475717254592250734873674988836905944977121759315081294828390474735067630730060318657767286300018342016875530697992711056867274398206863720953951585473927297501278113816744459113545957923450556430605776208975057026551241060297521129119121192625440759251110846386092426122519213724441859847003878430660736504908293546959721136012120235176881293193853267586907060291152500023434834548134851750135758528809860651380989848275918017231433938441777480583419882271519303077135442294099279148267925266302740436180684053186824075104969410209574691350824794475610300255787132908164707949058610639877198915856205158129403132052740748326459959825264700321224393974653822886351116920924111670443111106313637134700267161869766545908533090908502838285319469383892757408037925561442044693303263498820033014540187946487186844217509364728945417754777572462691096594811479593039640023374819799832521301284677100277622936096731740278208327855834355679244803037077330682955797605812297238329326275963070942295993116470943746352258163291444530531669660924736987492149349529508896520609296402310802986175781906157030686678130474049768705774259358825408258087195464389259933675185274910398809039612914115731338684215172612534571864141306623459781929214854847353091582865554386879859176623353881043512642591481020394984718930241782901349047151714398275192233682999120426372610328906417113691731410754792602404152328625859726746526384213478445251916457242788877611569421739900883217561254463328960995177456940164139283621654899665348950361705935522738805574386409204437713115583220674617888709287183412474643744757875958948858076579842646425071721296394988099148321609248166630042591299400277073104101787736727566533682015087905900697933711421399094834567550658326532136489800320186618285391875541900003355502113081119474621587247363793257440848629676754938591149786794519974866171851179360969282996375128906212518605010074189185881093013896899038488178349554055664764237183727881087793233125905100499513113780312965939288498771170857060354900438049519398358432348481803324439436018571489154953684060357801982346699373827921328673316545239085753341380717419766381654318825972858621867801094406356358943784667634482192677078041832836840408791695964733751912625870399551919105214446741222310294252461100108113365822839497424468971069448043426112828101767770829206063722826587225144677340799760018112222353894890890049738257743279241113035482991984193015077178682600582073802820675470907262922554136983954090999697373419396971870878737560333518164601156666978160158012270243036181441414919520640602025991916038458887504576732518896833542359890380426518882923582021303164485509287604506627241354845000285102890089058286142221691490628654729766914302210508694482167027672564271200032657456501937887269260646157036911154537286932477520903672079020735445568901364414445609972254851439868974258629189699277989847430673931982522403768927943146681838886598777470645814875413818025989203942652652148533747311618501800109123841642826083717220322882008107214197697482763320630538347796575267613539780683597028041773010415606860693312977604498956338546835548174955247311514107413624391313495271041380728828329645085049018162570715782703283913401532435668037034448984679947956929049361017072390744867431612419552719610369844881095576057170257055764911857669425078910521444613274883633167259723123017151601758622717453068450473233153335404438940225674725645519260784463802274571358673487352194102585573309753513628011218508953369353388953406175812299871303994367050605450143931540996381766815823528087524766803996426836345724478304348526057076545180701466901564111763989697231898485455007530535620431619336259995427755531534798779569426356287991264591995842256885671041985065368087482801994225582400138977480518245863412586565571762199131819325165484950015380083075355334518520112791677423459075643477317480396083924174632570299192602025471481731884821656733921112791255563729844796948615242959865287931120386765567388794623659522750905307439812449247403202045460295408900610433582215327547012115179766843922575098466993272907442092315719178354829765745610847156995311137447521431063098161362118356498221101607561317567856666620859637805025467157717461713414214523187172313256975721002651061923430122114660365634900098519767716779974345207280356121795685430977454733972625811060793993629681330694579938313778389397089171633779291009429668331508358497192292212538871898476804577894405085523067166765363589351345076438479705678751417296615902047160130288065251424754057982876904007942620998230373570675050407042950472572911370893619741144607754391484510121621453019648787649768300646572889607321141881570546758605866653946345259128369903329357447185199820646211017259965330840479338479542590390325210043272459873175932059113954413155080867306114712646426785471530005322567394538581702858808823478817355828364945621805362684958594665682932617819635845350810767471674932015771201786853155051886435991747397683226552212644180811863631366600920896925654290647874904965024216844596349412785573992807437423771902706524202787924927466898986236107927229265011474916245514798191995785718525261286507565888166341836697903276467800868625638921959376666872271647463764783685102374566402375281851748041063010816819920274662908950992986811733638315771340154609353093567290584104300704962758016929219684561258189161261479468285300998318304868715185956565501824830728588782524608962530743623350062403324230425640370622630008693796917785596289948696863224160620207623071825422859670988685207312325521711397292944314239118906885337634586466377441232579576262095248426551946893653943706646283381666050945302357626117508927242079794616449278751600276323742664709237931611574348813907810362340697442356554352009064288693180268270144579287100711772020762107743709720757751297388169741422703047410210962414189684570598446652572013627029416918773514081438266435333922064627825193337219957906848121830544796966946914779846262336101480717567965475378986817609702543929229010323740099621281357090786110889617422599339148835676382324252033970741339006057622193053505496479124576012249591779329840698649742419295274308825499489101667829316884420947075202787737902452954803787539237081546466017870675564462098674619689204558093449548631381995387853562413410264159937543092991254303808813766486479832052636868184644782514140389785365334675724354610250443218819255631169281575544315982154909311509819866883799667295514141403915187945001855203020118614231782456766629995439631002027902186571532050859326594763588656516569014193469370768121995588119564497091051194934552169691057782475359082759042299728138361540601276408756009670470225238287658122816151732089802398515352319082372260106957738391605821842446072162882335522098761888833422247187574962666971324079240972566649166367408851030581790084344433271366424926321422170099092216698424515222284260857169611581421595416755527192798025039228557726203458916845910679472323601226387027069362976123439648091069888083967317848713757598647015130193172167447058508662152373628164332720228456426305278737063966284130886026058074165139761245645227355067486838388868368620174419843925653362526033067088217590074462094917716300584990484222706882209318648907090801582207844168871085243319411380160785038491259124435618053248799148141677831869139976101065377674646963809152612485553082596619419218803614742860193139506908827976195249919799481241236520027108122794216499300746230762823239435704884170836296627880857995922465424695659413439374281238448663835422190782730366109839329133687560276189488345754572443196785957273579050626817396809754867232045874388763471129015968155827815250078667677196517114126905505216968692041940982011469736788142598807084973373626013818153271281118687957058076091418361247783914202860762554653182941391345574543318879175211639044350230782143314658368739215858747899065685790068082328345599204134552955400259731116015277317682335880503533841474902172181011870720879098981566025238637969309001219916090479067696208551398694428034455195749024640643763456726573669025259161923385711988770961392648589145957728257973976641720950627323520023585065448835937642828100859344995069113162882480330035019279590807411418047737185231236780784354824939412228662593821093823384580892650136815847282547743326347121390301670084766820165422573917419090806994417457628170647740372972373142940321260840848842984700080089251985827972754583646290020286434294518060301994184043917380595227372570712303291201411630638328110368525072788516441288901421572369808249150473663957607125442326585725038371021031041156378135916262648136348507825931970186547472674471875819931897979948263646977243016373782512067988605868512363220384463260664343503920265561565149494253706846631362130426604290375084412653417096630150537149944605920272981999474702479784497980462809245054129638239987459592217659276474483616831526103005523776134518499841215697359251922540318569829563560672653598903033531981854777519669622650181913660965402719058723603944300859052850774878907803206878385948287539165043586617502726590143251241807369874710426722366095795635666054077376797172413506467956221898465679830002138646586649393969328354832353568072778827131464981244285453560327351572444133460285276490486672747515544212510288316560416996796139188538978543125998667660380429908430500291389773048090409748158264951814955218425459463052526937662451883035397848583320109394180975884848208832245694466673431858390633131691906876295520997626124282638334162610472229882680148937804092498242727604822631340805996047524369924359464268105457514253121778851429870757055574738187764571333344571374638211734186906552337860785296941920204951337159120926781248446223493703649063438103375109919181875592634473887098380211398224646178243870656384891474150236814403839854554310286625179303869544930978188260832456527626165421864827158860040144214594672247690208597237462066269162646662544064792227238307363121892965548198843733339236799991011847789962807291593235979154111744238321337920023495576547912594241554359395998284867795551777474715090970717383113020400650730971707725784215196908652098669447713349366671472076197704303945827640052998158626748602923423616249916278359585180229697642964577249542536190913308777808142725522076643414786445916833615176454521648803072358102579318035772126942384541192756601699215774747986380894530694979189409239286035173396410192829069861203464001278796322928554945108107156022127457704775862238887479267286741017973155471741385658016396701387276240522441505899668598120016070465298065523730572535021714280922507650193909098826300242952086480584070869274172822065387827957374771093429719891422986458341669373721997339510931660584228531622657804981664090683599805250485679648618750711924936042534107668555621651103183105303894123852578620747029117100643892591112219712624853357628965979705623393668318093467952827406802218892946752014067588683532653404713608128244659853136675607660916327743402057361147561322443817092607123606492472493026563407192602080482287014662506369956207896669638113318494862223532324718434559906182618038757207417416900857861403309636691117063438359731042424406610660842809552873459922909733355617660753328208415884159208010722602436014589313439059792596782006883801301361390696948675046807495477241910070646847169654547496078507879418456339871184108688450351204461583749079671776208687863687396442448782676747712450901061588215766981275683674441242149606028717409414089167952834371170240121508335676072734417859927978608153438995305440587291336327899151268849738719742574291099551569185007529253792066238750062713735390650468447441817673276991461753154353300880652701720845590994184822305934755647072711232991334707147897627670519656994059372972617198075985444934196654188791232741074614557191438140705346072957691550248889241941124988679561294210217069598562557436696456749647847041049351392192326658974473130703015570027504281313240057087026202196049781025555467042261532522856426753546278571559571585587631294971684980341593797990087730210877085160096293191936276965172631015175039620248433222299859083016957482085729493931279961517985539058957481873351401775651469695595246069390688852330656872384738999865461853436474720827525239317813210329533614522176143246424351958924866071316086114086102070664124849351477856619067429025420985420143561271579071408700719226208356086498589073124708853764096563433468255916589486126526456966217433902136227800440311805371722862304773870462583188408534317876610334954648785376804922285535634098345132022345437164741855292715558889871298313210566295167345718610671401310479071860444780524709104621167578145080991138254862758584999252884162361781758988232505192326536327691170431707510951714476259839890378224476003221121212299624196031569622851950548768006554626792623938203116357283378956308939272519096250726636663860611898336858199355631166708792851160800886061309131703575267239439438236669983722695309911949741973117640985251928096501656449919084607850080337651009000175594887944678440268736282188679534432940484521283223501386648168580456501004114748349782540646852417940937050504929743236196217197543428904311474228404593169747235206768046382170160742090536633026862463899937866677594378136408222236583721389575052343351296459082725689338608932673086842235777594450462097364907083702037091834160665837307849282835776222352025938194275434263046596169083338768951902989514502112226646991734397717195684474273064238007111098029303546028437307413582139523459971323184242237722154358295817589005760395818566728068431834950104486227836477985727406968606418680387739423117420048416251581201017441238033584267752043305795237396555888086510206340100640632426278917488860817633332046344059497819291213015923295626944825400135759029865248701299994849188849418658530389475681260135011247653478064141600269776608753320887495007810186262223601460893876436320164399800733598719412457401471106485273115742140959210042406283491699300376587493051700684175113240928585204925689793806295511465096219884194019065012419571246710425975112388324316043970594554934061025867507516072828200470040099858517986202071236377787365870296167857340031162369617482466685874335674694154524501686839258269138273548639200022329640662986544593722477096132873932184215632799695927602040158390203829403712215728242626689641321476787950023810136129458687968627227202594835749984563864368281435643941639462721519298184680844372728071227393492273066815237341206751417036479859560736456297237407364237855401828701283166212469227332480458222203058534655961567080101827133457136381197188351764827944899449744677720546046707299781267720076126907608986724546952625591950519690563031456576865063901032059774172688166122864977841089280689546248518323403030774639919083885988624415172741608727392776629411128969514883991216342074503937575839557718304852522923058223924317297354493435475517133779787600059754113520070640813604332234146077993753625074960552013684306548683476272019985792140333264132560956590007290221199085653625272708892774220607057508771704767610412659495656915864617133195226636213333145995324460122058181045149729288006327012917707649775003833812607543533348875478944697264079679424198603024827108769854639267634484120686509144188333438047036540266260917699807103886434719409351934378265476768615594844528141867898215572728382977892716337976546894789301461284822267813977079257144779294504940957585675026731816760828832820244495554865367295206824783264537666334643794306196585280879888419094529854359709440516250395779102663178415898443289314293483182850989514155390055447093682875410048625829860839747549125947383668010146164607674822646759002136624474185574638588546033645476039512468626174781173899574036751743199426164763770583165278866825874595416541496268015014080329041635079727332426894553796428364480142300756873987087533742545529081058645377715836199752070806332481179658123615132692209084224674643558044479475999712592356266451038450093831331741983383212403249956975771105743460202812841726001934209259088307772606294042142596908189179000052681661898785694974897341226889508463993427965530723430225895677354611532340516045265015516920556967202066369653181574849194895622920143383863126510128233736006991281040463105537812009818078787613548143513302346618049120570028746631386850644722348862929426658757394479948034560550422974532336487360526071606482007217411843779961111581001073050099051407189116612053629318693994337807242641091911658835468111244988431550257013114387892422486441506481879345504533013783158584640465371415009103903945025467355389510663186316506075699077659603395529079372685925566637628166332382945051152490579282215355920966952750803918776096649212055617294766122336469671886919949532829415155340951055016352474821469255688537283998507420208569307260517412644930024689766301467411932654115299192121765904092336461060928092580845812873687182445701937249478859068209865151542902048128117652826423500121092423006993626141401641979289681205368123182255912764407067734843621404470038160651140593098545392538575499367340944631969116794815288580991316999719986730566944706306247395813272251057144252867703542611627399199241098451351956188573575840100236258058875786886732965112689432262074831821369334621822620226192579598247943970148999561981276212819781838840867869447936006901521502443004719413636898724429193579009401354586020251807060320143890334929591334483323047952358017475024889797850777978286643125933654114561740995957621783500075590256802586504230537906541231955122855619858967095787670992000432786150807046194194214242082539066477706559658234164940783384180230177171784996085729514646334750960826654826353764245689557853969972481669828708509707697286872390930200332083245169242066800835014062102104577214220318350250040858548905738383762022660253117455587113929618864597675703295651247945620052339955902361837315011149279704474404561382813422449051381984111832017468335339222216630804540315054321831749994450250302932202595347579279802404851216753845492712734584899131928067278571230826329420977562599340283731950308806344626475120964219903679631819566703859788239819211829989702171771607364896060783697879935024896077392905410375263323252607248757510546846342478035911427886780319473425909496928735181894263252651510991495210561412793635016834994031719148919497268963818155141090515310966075147449191720772519823434072303995913926035446929886637484359083244283768357996189780943424046273967413296420518725161127991262490958683565914768703518415500940921816346890897375846474661680591980960831019145443636898924465115409959820999242386371636134736919129365772710953288714996312036976314728836639676683506617840646333566869703536800773905047531540350708853946605103180047259945484148174536272104060502183721041201353368598810670885792360673577239338653448902069488884506338358178730354296931237346030357882451815964784392664475609585110087956759486489301419349704815466092656744239699851019849238924050290934134859600735739314867991577340068050272442540189973585498690204090555975936644005906489581373476428234952185024482029521591205769147064449199152876737164231295925930533675426231226956595474501747490603833519777228466013162103640713261090973612205550499376902289031956676932146252048858133662597631979867864657774386286247808809376723442159373974225553887581926789079232627451921667595108515309679384481596638713375411156799186714343273090520472222128479130187756720979083634877770759052684044406439530046592656749691524602480187911089857032389598560177597137221621067044290205031739670204344721304157457254404354464217681138238003627894781007097240228746722905781134276703175260547067866689111962268927522531113719213766104640098989041387866751561907625119520092890088526449282112419914775635275336724896587388055349462695265362457199347784750879282458671421616501617287306722851444622467344065627816159025876373126664076422453076541144586164889223985182203636612036906777464690953684281058304412473358389596772988883102103746299056556137391397287250517260897488463493297030128571566687494452742599391432050487021933936204114406537262857833059887320333938498338945570683289079839984878152005816413062329938424773301284898724672034298626922586574417206243778930841530064561796817466614262968313035793345002419444576392745304671095175463928700814391701472569721446910868305583342629157916758098909106737344308005533954857823240335116946464243217854747884502984082006200108065156515921048303166327321474744703483836097875012286753826863091990732573878313291302826598513240290012185586682977821107172652603391577321966450649525755397463015685551977225840136222830184908414492974847328481793203924193133242174229612385170056818004774744315889612437215608251845659622792838252265151881843452701028889414178695327465784394224509488442719706148960272594691615788150579992059689805648170178031242475727141649070475422867270766385213704833090588526687092094769221628390570642499735951298196237366145402213252409574533185918591135850861023972719237759834429866631478738951102895832266049960345554578647252400198634712439758226993803598738903325220698571476742171567442090443762582901656424298614958879193025169477482494558873927638423972045359698302914294368694565184827598232313886227103824067079420954433015372480373434741200337941942146670683676834652722767117073551682122959482913886652962430262411233964306397674415001690227891114557352043455149457014112649862374056093783916712778239176804026454651467395136883177719688416452295566896380744709440084607806976742177487014495661013570032260072507091984449530606498741891278670640741809263601803038589855703473446056259969338845054100664988634245256761426831014713541242527678895370054952418371917957953032271837674405290108457438576655925646933420063484428072104436323420517333812817764466163446658883780652208761342696098567398963948329569057675719997402139038393344578828994275943746486040059920424412430721018041522520436043971495379756478102142521376074671733542438855754359165506555750660374447758470095928631288290258693921353123171518279752805914411790722667371702190180136655369137515290273773840749290552878053933995558995794473869148814396501557974135440468730039340442100226271113390176657236145576395258720805602246325865046680897070090848530533170885772476840339250280902896308856517354960620046234921445545720451043819675728453471330100957384518878761788774926877788517581949193683020007717182794513822687640440027620276259668167519862205501134339867884669326108765821225923401241047709902284419888000779595702310418333295865445222146148716161022806718339394803855210614769733402394083163682857621831170143512381597655845774662391245749321125367174752634799248882233090136230180422210086351365554844025993287982661110337521932263628174842107343227834693343558608246132909592017095153420428196330578066688610212113610949623083331497569866159987155883052398586186677735876266138776667475849333256469989443304592424745555167231158637833616375189642985673879092489634516417506266296360800384692181912709214353666758929274058185986082161973862496564739906352538723953913821823166205458544778608486855053267885276844215049684955999442854350913060570723875641882672066559279199206257428496958496321573026923714523933427812666842920945188128426509712054175428557722884310101372827848523925246713253163396472660186021309947487723480099119997251172211036945797623428410241163970954344074998779295507594152337042185538153380671489151584491099845961387385239904919697275674349484418804931936988633682369628272083689038138322504104358160409311831115358343831105671414922291202827874832817040050234094635799411865024146878791608809802460584516140050165523964611872512431929899770808729057280396061463349342988261100829925822376905713164384392374070022276288109370701332732908986526159540042635228622984002348834191044136069200085316263492508742597557059491410457576212915821693653258767173097177899394590500923857796689359920363930672670839516021996769193784393847149779173597795622610623827771505418691503619805090016556171488109286327886711151392675795919575395192770880477777530853995546317688859588008674684085255704948916248114765215790238925006400478383391426600947216972329069843180984393306132194379016334057504092289755743227326916058345975252223334882319338391323345253133958846764700096722351981820912460223569490843064152708683375512877740719730567823099774786161151414229375292510743057413158904546962273686856388999095946514525734385366838044664055071679316622997844513181095744439232732148756082307349329758526568909669039193009300937116094745607378731831906428403341255466180005785182170934714013057128063918985912062920974220864263737780247939688871228989895168349261408609324425497215340093921232822205618526131040137945712272403306902751571747280820588119431606569477481075015172088366592236047490423687383424960348254533808423062216313140483663244041375843140870782318603014867188855115410892590737686625740029392197797081721086162517585365210705088512353591616824428960402387489782207277315497419287382106709320095885748979591823637234489554336688249952767887525718014348537392106735680025989581739828647086028609344633991608175975712915941098337052338099886922299679213319481422905418114335767563312405237310951636846747523180009231631664682580473624454589532299799549550606439881515038603316347954106412044463045759984100796387998082274502764436605617738340882156959687077103589433962046444106428201378268781092476120256815104332460547530211103005041290430224614723041355259857962920934422028553667111027623956222311908886735052637757266917738464610148465326128437020621825469454326450598778579184156290381131484774845963037765829489202609282497973194812423444163436104239213016393140051410211061094526068806457009795806954008002704181262324141959876133553592856271560225384903614213884132954609414886705725650130170312387208148852925415262600361898499661529076034781076048509172244980854969326959691076904551762020433599337590868776348836226134677149998788736354309777088276814375310111305690781480273051878295231880429932116776589368335651893278287809947983093424142318644159356190100215924897781667765280811577822449407186345760258378178700078574720699740393622049049434713747194476865582902897727998446420120408823157120799173824023835161294763967985868225637806027427535707315942821170825633153850894754468313771854713949629412970632690232404229065006118452646941545636866601550726318370778596218171901845180041449702602325460803954837262972548108521221667878441780186779534144254981174980708237488045949097279563311932813044614125611946535216452986180021460603129647538201336764003365187490561059860296890895956385663404038974664898148891986850266119666359448283212872161669830680117954376163964612210999399630271326913070142447205410621400557560010114671326327608496754714177747018036448905303142766568733884797588367521975234487531802869796319968640561221386367890430451077257078461236865074048167756331486767398345479188384650942586203451412793228240463091355840230047678519430045486187992577383721141623485370955238441716717455342868641950426883212549060104166535744026643465766703144488383965540073748932718369410622476106648273213852046112030775103592144783898152057712555616084308561142869711609885598146757737385316454430516264836007427971031085832110578397977457602081689751444480557046217251226297945772040122974239851092386280216895251338238052412846292639209404006631964549453994260361852057903018360758790786996674831295056316390490431239092424507772968758023938487080369027927642033063678329141051626603763895587374537435241257989440622032657463232826781920574455917204732916983036362219702072410903238245672808626718275469505647776950695243785802559157194207154055904129374089029676203006738313088804383909894386521114664331048236807241111564169265963081757239723068084563308182881213441421496858435208302533633195434217561125410575952827916528437113219164006463726932934888975086517620876423271348506286978157321063763018514433131264707370875151129667790176754253147343179619454405105695561633428136998067835840046094602065113031817193698108706884572537693814082577088102095210138994927574213878005903179089402621069662326381236218598961327646093309712162117985240949438205126157371484971278174100479629200264377729977681809995003042960732750641089539042006932862903788986696910504151336134725056151391456958794074347079085295096741141580966441866371642678992735272266626156087230995041559151478583281513937095859587324055525326581864404689205168424474982040515726174107523317749963950051212495134263592405631992299358000749378992067654740726219602762352664175469329303888380578816228099492226610949608104927787982039824391880881376352020066215441045179225979878041401277633905766708175889125040304787757740098938717872485763936607692563165289630903184489750357853757581494627678562806977013120274095708692921633347137840490245422417653252019562758284124411418892070689245421900250728157667622353903838720212571986913462962246074387624814726222717103013160521498621207467187213330879320860891516091415643862682941998865606371334541793738122908348978168437505941936936845519649012322774013014596158662099283200245793300087407150756396279525066948401504621137799326336634477663123816017466470729892582874109859756465632666458339649427746849762171850039643847365136835134785234065897162956216852093064248400157776218632073128871472226503883866628472491433270853527555692360116041614028048816325752615547383035251480049054207502975703431523729893424473505940114185631936558003083089533108021491610022492639138243257950181385193475570842919425317405535217714386385786178104878681636644258971920530963235719756701996234427064425634422526639360386994621982910039611138297877258038272511426883379301058310942698961752189910977690634353434149343101003498762428349905742289645802792250462058000665362752677381336476557486850319541419111388587683557758611128947881288776556568552908296468901675827826076791362027698283414919520349832276409885454229826629617018980019822484086106869045672048149574164351578098557482104597830401280147344436720152022242744471354231477023053483090034628068377380736366437128245268220636068659871789197422173858093649779186474097433727767736744049577021026139979084730469860256786007425538691256088948457165180440942361379287086177221584689940379777424858864126917471289713032716869538077744177048790288690471422839710265143853697067729005758347653465450109579105960153517241391018656880614341480007165507293305836447770676142323592621460965570079438879086381005994028137743574977464595987559309648699004019181631257350136064148979174690766234797311343762976430111886279970483202701552734102615381658182758844505553368547483763260791831889503572905537978095995288619888974923327668512618944342916824282548888470599133079583034564158575316060189260553328458382000427108761743480225197184886402356957430601429822214686012364967077824716794199360746808266325212309711782225669435907433209017714850892497234263867471024899462113944435796196595079173269008985088102434359796799079779289121152485978562244871503343191676871003190383373674643772308220870065924639848821169734784122921363175976986642216988960431563239148272708711529116353364200519514347618348175416297874783599983710428783108877679768404961860812733610917285493816521073881386966497679318897729463048099608376727530758915003821511220901268296002845222160508148788723984446514245882104347344520385139900773643249143086266734378734104844597673648787597512648745521343711334467405071804590739085754233113378281167220982128789589888225050626916158976345482614059688175755393308973553397439414145455682027042005820039619688604171445182007010873505247630968655967633737728311207052828872528821467185908470594303403966262822480763755994983413015384040871467668526752992558215797871542838558779837947380915715387064108907732560598148885836365634926596430064440782137491116749988517763121891317990615507231693187639151505361458247175471867715357358306154013301528949130731683442125371964693252535614664060378234925997887400281236522361732329684597375785288716045890614613973959444666825094675339699445513526240563968700375260806850870571945207354404452910977922961360950581965752407017841699356974921772349725062899285643227306976932095210175292271158364711429199353402456484781717592037681732951342933197087991114832694442812930253647862244740843122500187314807597861439757701153965625334093567914873167087719928391170766095485234283287173571050846091624437941188429105321964118340957906661812129071845394862648933428783196096194613998716674602086853196674124694334538757986990002064797657947667307503785532634566966288178342372752611971416251684187314713366041813486255772975240482817755445044573513065285049192551309339678895404009109521094289360731121131106126404979577053635152006232836374437902098658368126021246277449653211015598726414189085091286003939203021791186778198605355648144368455108885236889396736879461361751334891562170019158126023078183636872988499997983179777697488256663396288992694047976064236669883366941725565658620301822396549882239914037065205221232128838720613328404524481584049866090949327081118072755590776957552950030150570363034288471601786058269397203689275931133204416256117549054173576556941780519082196781311669141661246972081063692838757733302744635951453497982711113225988634271276494699327509848555441072799362601110498937070395898476672696256862145707920560481026957619085641477060925628254338604248644753465484961904997832098577485103864057241092173704995081300870708824595799729764038494642807564330868425118192346773190004942303396951189219304922719225443460934362011275162036205911095608077054382307196863591384806471139704601882754048200478529351212070507975948518730905319124817922632693452834860419496916998110853585057497124359681668530396577761137634314740958598645969345178668292432851876039753779037710037162481006811055821521221329670220534150905627332991694315633903804830753635916495741942490913357996006608533569729816890386106914890876212016677234456775849367186650402009292267973307242688095557565866537539127540963511304759894153793127770606604706296691365573720371004357348907255693822181110216215196871445253910213441402222054722707042513652631586279743032903503470990833089688131844902687510324963541707238929735378087559154128215980763852217138468294332166142428087584069770873059854285393512771444827968224941265438885714162391869701160724651952542463249328313058662348054444673417582833391350020406947023693130563759640373198829325970123929271703583527595690868921824867205187169740929004607066987640749200284031522890101617354448095787964738546179328314467443041411182177478594491539679401676851735479186176880197230968099039810714462950434817909559142246102959856803518299088811039630740763344058121018257748571688401234149682255016175656466291235747852940114069878701530792793483368022314837103040209065536757578650048576625909358326001843581261023753308505859209958299989841095313833416399971845337914757541877161629361442796515080362181297313635147273272761039888834092062226565371966281341581966300199094708027464169605547071967556542097890333989773441686056063572055032511316019970777951094716068286303612012497411633798787798692569408281853602787268014304882464058428151155564367479731929487232337065181607912425535760033160817684570351034801459312656901290973353723159445006339741810453739510317588159201678150599746748456420114806820217359300663362851278959943941151914935515675187522737617317256448685771839355127913124378707103677996893467078831548780877629086156313293920869201357787455749871770328208097912053815047549582149253181707639172706673272852816276628836693344937363939153938156652545493257178757603817323857025894151542695950558831515890974538708085624516151576134446560517466793334834345967817000197425705225186787658711393290675573307393550802783288728356907785594515019891017640657299402072384620233525471474045433141964845504825411797413758923481918757805587058204231106079982782030280609937821953765796339227087565682968079977606534965806096888068917944884093145591930948725745889387290895276089171043680838418372028327137511534901046100243642574942447889930995191933195939562675033401312944234371940462117475009157171299063285320862314932672078720181770261279997023961270199061775035091751783552732750290133587183910443945296018585547434110555487098179399858423655688559113857137330273748911113933518997703292146228232742125126385528092791199297368407476617143812817970264568452204116955456192981010498056013171902617696682709012027303975390896345072976614827355773638033292678981622389669090782887338488250715355069812990661379005164592587065066437617716086714220835239779840676764258598142554536840724778880681963441497840231392041854693410393486381545304595157676448600575514613198116522118368612514751764378077974976772089729204001398281204427513514954545513364669760133083528649823729271778740745723917921617202765987730909898068380797606071530358536828655418393577549148605094016208419532260752998861668660977673463935137957345808926626549135261986945145749812107880317273256632170556332933721289054426379488896007792653813419679887920759327213109499156643676233922125954088625517072958968894922267533333983740411281621703670102178285985263480830677635331814378850854288989095036673788148859217641630747753067548598420730118332438316820829475260790785962985364512426363816120503777320278647979741935709125372812912634940882597924809425278544170662780296961592820970894702251151973811717190409828721584066217714292669143402300660387664623167618756412777841893459564762106863100367213529640585319084213087347829008639307902508633707465195092461023574769743945404592064157441714320011152949099884157058666722135518939319503806934113857511006843257835655780101601232496592993103535319760355232165938404545371651231801072844827465461972611456142887862758610570211180073637007688584109038003016678110385059358181818417969817046705151399317037925628163885019035634293315133014781382773793156281174233013062635109375982094492856356278118515885610815244771677204086996028499898976143283223399965672805544569973530558455709663480243814569098745710477752983392544494838585997262911963903246753830423610524254266070595548174449810182919285266810647620616719188704237894256751649753213339467510619232871940949727323889614010311172783072861421239032186574711632558291873947051117458825624503692707079224519163048188974011743014311579101060181945733837894853508840792426255496752170952620458384876613694206777898868051447605867930347959348834452659863338523960396538787653765047183781123539700888665513215314781007528515102683765100036925348940845649503520550205762744128511589256278310086757858808927512787043687069983795834622324377004159938191541909483071827717654748745890390647587462191613702879872601350386076582296557843331131788154862946828041859276553579161208077156800145220997220077390681265242033177466118742488117957201324121856046454475761863470211750340268859019109753815287356362565067925707122792644244175173711748963979583552996273433080835273438645750722033444258683621419067344115540051986093615913736416563955826294772460339650569225514246336194647687625446949408039582785844257562319391841355941962368933718672486984279760196434312865588355572126280052875420213386490878884009449381764597064092752541617374365811104986848580495416521319280242284491059440998939759136457743363452682619686838528015037026045529811437939911883728921632478583353147496823317026769834707662180317812780414617039966958865704358548619392637098756515016850681893417736304835757202184426963233350591218676136714326517863385657207375920762755483064309980233856725678825480175486451602935763157344360121414823494264372509315532684233173082923601117451642899356740779128923918832283351097035036897718492659044638444092864147590559055015308828914604944041724509701211406287187844124140631368345813753023433865193131597393154074468075455526682379184946091960464662425242709952595966789754340830470514105312056941700344964788101218322283482190049129220813704373257482831170896814929211687591905813098030839217304488801288857486513719277942870230011170755348255212357847695018353362629662581818028937517975626972705418937826113136460522036299384102664343919385202157561218967210337003961398862669507491279242862695680007275221299304429609020265908179342902109884575216826190926530344886242581024845959657562658698585164835984332141749257852748875266185156939113366418025326175314899336341097199303180368887866757042680069405760425829199416441513953013981054278930896486690136985047834057252901011296314137266552127834769235533013718708986289626546575902455547963162936878827731202780685489902880003497574893496456180428864371122076749510488877709996311363069046158324906998538200946554326979080730151047118400574143253776916213101017768669372646633561737030844409300485301235145342485427615094028164695050702153475520112436571476920102676917559794811989980558767654972305776632754503405746928681563840161390135424521047098056000594596055585812694402266840704315563584620031877121629995011658839964584316050314610024635677691471199935188813418396642073293014787683927757779933403204187932741890780868517795272997867591974487232414480917779052365373240897890179005005656631298017063525111581530811485220319282265302352575138178808190418394483222089268846491716741676664639166428831179219038565906815134769963671445514058586411833947742242426542817984520748482836747132042201296938380993368349185898151971774182000410937146126438682824713825266000267396631297302578617229010184423949149199165591130501071346254336729401216999766603686371422472569923839952305753293917785172860462225052118328796948641246753755240168462530635136997985515802844964117193567270333311773505623951746404755317897390250644760342682240245624567862652182710466564643604555852494898967386812521457937582299294926191009240538668556683780419774306806805125922805391706096658625051860583247619225739208658029128033750405412653101016433285674014136521008795621373504839111795851117373856119628711623697455042317293933704059774789860410985542057656415861438713823931428851147433190518224998162107431838774220674586172923312844635482616671346038128644981887532419244208156330204022771664261464971513148404320824442690776360197945595248427621481812273778773503679970058611177676621066058499596250829473521493219621146245837872048110887754462715175309854035410328705674099360827961090761084295379937838778953969270791824746499739720467511493695008467212032577750927057762553209347762911768092248681182042373403911799271225713212130030664076739338832891298366929056878073915193378727785641150774637091289378142798741672723211529023953066226247245884221439517378827203917208654043749736756711234401617225653383406767679079649028877202876348027803751873363568491663804199071536155284867681316624444452828073751203765888806002914436932307449220168488541519996532685223900514779844471890629893426259617169962208243861978256646922132894384201742149668003018106815587627191788107128985024364089512809056773626175538572695251372507876264251574706815836832506988045110900926142180528994068296517806127553361684398219258651586032144287801700931199724154239465006008954336290234015039029564650250365032724662596248206729241207785121923092233452131545705239238257164529014590138422742752404835557939320735371436677016902991070694023373459246974563195465544141784880330190475631328497055630473540673761931747586428472930730335094473717260783983275083956502611693330668083752384449746211970244832079093172413474345842707794102727355553949232352309190793617045825043732335150367666623415693561902849590062176429151135874913473512525483608629704835749557564227065654099440998712540717556861165038583013432684960070423576420161521251759590839070471457396306636924796170626483205072005972400918211248621267641347843625272536623369393335739808950077287002069197708530443377003607986469643970758335207517980315415295237797296161623814565046121707162987324391915822178018811470876466633710127639985999848425641114626623510481825814861857739309693595347041691162875556495187966244261789549367443459897007424261296424560783539250407197761240291483239281897914649568083543858495989920221924430801860544627548479747180612384656120850886154484984818089390432685257613019217945728105364335039139765101215268345090124343974352638286054679391424307353739492271194891070943682161690912569271778498330360394280645568355159680513132257290129823852579073793133394991367696949711672339619194021130744984233795081004626991305299353281420435298746020799435726297160509576213948076369924656050374288008674098030651625098631462864332603322289967312768594672384190194986181757574231784661156305327135448370277951940773275555157123398664526346011931736947575486940970886365033744670315023786978987536184297715990165040610781373435888940053706122517435893255156991283557761880913803701537016832651692265889835270850643576234887028023901914827366189049575804144986210281670591910194352508463290207592975869347842180375885174453596610122608930957684249897157362168535556564895872158193565676148905636357937249920163567964209357825725581698112338555421925744230098216439480465634360665492310044710773523364359602901698804137341402057129012754480075312223989293478953434865027048830335125465650849040718692705051708047703455841706146899590922177032572509164606352186239674177454578915158286687151489425691707358186975975037887061678266002594283658152527343395237061324794007495398673248559126263705535495079377434697592789204398766532150889476125949867019460508327929342051708368426315124932214489756364845209282007657953295114913530579743169637814793725487630386632589779959494538854488915267274471768623035838004027970932583164429276623647471388502872072464571545363044657920609561445334007873269778898851032173176449685263942254029804186820235592150178152171230575696318988270480202361407722910738093596848007082177137990330270276040405188635186665997041671552281781544656731445054714407481355944561268633282810579474204033680687540370827011479638177802545510375510857561174572622854618984209361372176727541318546578841372528839563070844726332163123921770371326300503243691764123926622764173759956014650151665733847330119123991402498895534877845863031355728094334996789025336459849097780117065690396922345551584948403929360890201215107384960807704118710263644271552015195134195972387126365053041847883669138162356625893935605275148571071672772247794577112750342099801776752334250270733278134368950537588379333172106185929149840528434503219090693629932560361460251985726578822140455753471708249033144748090388738241735865999096404989020388508767601155585679913512019532633196241003171524881342422990781627041121120406388614626964654261752377952674319844808061876831565251626688776446829408190432754514930616060656282393355558347819488557282755587338450469076049898964807482949335608719105257157395940505954151562496281128514355528067564667851342696196526583746806743642830186766124282770437767661859490249234421412226288809292037669325812107909525467300758282324535928131746468446181836192345068668439499558701246690827040013119529967617807561340969434615521289968077882863816393645543775858938630302192310305024704354900754884361946764829997499586777652887451487650091610734447143669263978992540165810906955501160826012562084465442155378593142916902883947034793618580896684737076079242576187970253154999412059000548624766702734461503105506962028374421971986935657486134651404251180014780244004517198335093317911734667027687318471803712038866138564358553118696545568261725019396110534110546029681749732913673841338029889688024082403111788221740998924662533136325141789493011868612980445573774629378798675913774674818416916468708049420117418434171020201376676463735821972841086321920608182563750966704983077828422674368141499639862398617585729802698316315211961481077082027428211934259341213935916772040909278750753310228647706470256957662548631712977302309601788024941753542189753567678894690499059980282600908960702025958523590857036204989936322997030678869793031582484316205903153486775283147043359411150382802143092492614153216537920265214616381803775425511293796937945457305135939738762798717598576820913310435816122410879499385999553174958585771977766896631196054138319711897233227928532863903311338788382599273600384473404070093186750939462004304907428380117086803616157224903134291603876885066278351761828571408161209594382776133401974840017100096965472564373589856515772659259464811487391157131572730761240955430529223333182192581810792595070851879555081512315072394629015274423953106115820625841219741499601485661159674338319698169114494547728312416236616156739871920785968228547947967398872329574616277975718304580774668856845406621971637619335753389854978686021446013855508993413971616840370602226294251451096652184996436111322054658035239644426220269589300023976912613397265996509322885404893170006026128767982172283017430671451287355738101371991202495554559614879859953963181523870687804312931799914790841883410553610942159267765610857757355025458493712208439807755802785384545362835031747918758861264610989662130148821757704110280865341334477401489304343404764426103253579057888273694578935417981430591106586278226726887791637153367047687186684756851425272176395324800313563962884661270126601296906788573101557275906472864663694896363154689458060758014353664129986589861568619615271512530360491632285704414373933288571307671852707902427331275205026241932280600534996611337896707005525941740654352228234963400341353266754551688411256491867190944432169365522039785692801852018349100238315333034204237598578573968054326201622000361680465407038794658308763446951961289240529911172475051195581843896387047354832007007329030517703327486487193062961592311218500830009144772656458457704843833971568713439768580814106339013503641163861446720773255491702189487156069858082955301352111603399523108068451552629527061691675103367109949398623882465175327333293267827285457786423058865961953080542052910921934142364748872127270631765994388849659624867428767720019332268891855202153525320871668346839933359007659103997569089230673246255053865139740285032295827796386228048398008272507597916034228978961572025830903093141827056467128849421524964365218974774965168451842887499368298703963048166158563522532088627842009973739386506132725280932845154100932490007381894458872834037653734067297363993354865272075324731305754902615282132328825941410894455483640425562805817170432769330165650221226237230331690462161204967257014739063104216802338268645825638311694116855712704358087223664515543060948243199725071748715718877224032612492822181965898729267186944381826119109294974951062327273679417906914665704200808794954346679583588206789757132609193072175200692038352267297802009078490027131709582416543184481325787830432043319165251071212580943589971783360036337700037486305435316223449761849177703088049221647919419093734089280322506413170334665280067175039340339576698401126724560298714602539732415945139057893024686312967497855934643716324198764813632760758975111592125443024001144683323674795850618269806757071655279488272609824881819768348367285004316165029608135870490862971997773647363169992279263612282529677954757490741845294083878114202442480360474685898390033881234066127649479441697223328131539819761935405541555944765579831215154557313526010160139894753563155085182567492175829966460550197125446945188154213706844936404284255291344713205867176221249811109425157764469513435860444607167357927213013911402750010373386562147305970567626292531007803725495997126340792727081238424301862678726360272378785858906900441102783874603862390359631638732421764449316418034181556337043145839153997217823026616162055921983693544158869329058840210074394564789213202083685489886935306495922910262344379476701052120309892642457564699711240608342911520741771327965797563823657537142771803174495276568932032436611956258316318943723799835579140723891587424357062989652110129926064765942221740045151616447675870031091796810370107455648147744025641233149438190809919469548283673254122138215287755185043963242382261935010340512094410560658700784440147392557219509433958176805837500858291572188476423156855024998582095820306085379708782350507989181759565346438404242327701184688749746763411733507429563025748558652335356880087429366719991105097358258765092220449460961213043654823643649323866786634585205295081508232460900026030084516610075400720946203979833568123593237029152895157681415633840748115472897872588883271451659972976038390650179077854504426448168473925968864529261674110338891392025111796251395703772497779237563350393635816390217330532052585024116984471829418035499502455827295988508629934958671281746373118040628159269764822969794034038135240182845774614986193294896313864390423384629978458093171049123178331059956970469539093579373553912114068071107401000720238820629406233956233556209833625808538944123951496508111565288573803312641555827840617450749159742344779971759659872272415342827222303336744064314457555045838345965889201237198104979124214026312388067903145278440371375604268510134715009957636995488729873561779209417982626871260070956876679777149287598522869929883242376880792971933460507069446709376560378493478168688015993019159018530377912230079426195428062361775954904128229738040496471941414095459232351465262361903971874793321126480274019796398713555765479721327864863036132032216979109346288069878296126105178754957199492376522728143353630779045742597743910571564113167079967855310653962041665258860150836654491423316219611445004674233125348452354684001783026526749888709669749618776425388764074183675388527157532337322394507153032196175348346074989257326013662031613326039820893282320759698240381090224748835962581270411627429131809996389748241160210227061143683375313497764695935672854892570614435768225294244187219536109098658458605410419684448641585196692544221204019389105376296295214825666557747684527217643913153228768881512020438189050925026771116008867664627390871655688574469995504039196893875769053002239776780816379821496412284306114165029342880427002016432330311381312010031170866782015753028341776271258417517940487246077353243322488113923929715963824318232464149592234764034870250663211513330267484546181554310666869154439884678524789701405058901815826627440851767056589660295143934209557460987587077500674397572282806082210204866533535569385799307488736851498418393878101079623608745815027232516829647299783679436776076961007432618989148168190621879310190590219251587699698419893349325801643818192008509548805325985803399742966593460817644721380041947940421500792632027044777623440635105430073314766628682862622743213139989588832788714039779655572012463668625042574526915760742742598761040997737433647406034694494871912328929016204866185387922396509673138998452876924433961173202202308681600488049429682286077823264669492405113426572090156739891257442352635629594051728772585400120229567851567832561750973584837918934699531508695638898440855712170344135056092666650678056134816037489536279005506704590733638780929133206119556612201535433026757603692408045265672820205104209191901637809486644887352463015236176052461313655220672998085196496165958482016517822923730688621798263595987062400230414288238840800052719690414989846562882953254974106091601774775595352058119511805576140859861036350663717160790425327567450307844731403071727959151846736345166081799906586956987947007436480758379030929066001329085147352533262767223050882355264357384550595671748407486977918935041552845284793660919129560257723307510046950567332799582973256200782224017689582598808572862737323687212751133933786479054859649550418698668840931643632837237754292772463131976341975776543226811022747385667401439317260274021047091690352868822336660032591743286319279379548149101201006296256419837319695590638434513618800836321694535878732659455830201538931819746083061040148137950346488463550131926114784272204229075622511518414175355195062895968265932639001627004437425868731674435155870954273846849863014351360091933491016285750646543258747140912072540716179842234631715226979572997301538471906312740596459612653390690106084807499308340668527175982242332378917197962001401316679143488974146366798365408967762348563972615518490090082148243473094233094950152091157862971316982606115102443751504731584548078557946991726183422667917517902788804153641320750833712447790335001512456476455353014134948832952225431291332374628605342885474498010782464497248904201806991247785300012713631620413146953987906090046948538453287330460877180047404765386711544621119748755580859790197228877798261094193799605195290346234754464503911307570306750351539274457891591789494978231338281537887894416002089612899079839274080645461914574957560502386808131142198223353961294672261911172615660333226205544475323321542814912132289616077473159196829220789278897458481788113606510200378486323336650948505955808151851342496035764323039715695347970281463015376486464893283754322523572653368314077750111788895789033784811177841865920977316958296447103253799192255110721593870023967087946592587239061458072850177036323625587403711536235860292111284263185795046064861131128213476067073857891333706981794814371946894147478028353168813686164477993982776288706802849433869175872194111123419135602765523538645423904112783976408285264090593270972643175109137475452197611450349112146830050053079292085928080555136795577964188624851736155463884715938633625019643974714873102465056214067742572029652419711550635984956557416339204285604534182399316691298766392813330601383752182103363891151699104109956937085502417978134881259940185439285057811374882069215485618390796376595743582962844811586633006169291120498748771733857566336692843068270416617993070577247981874170484328283414869368988022967512344699565856151165623330852425349594963689091202225813473141411475575760880878381813797127865245869611673811688549467915926987950094057061502529879979565530785385738551956875677822902684550695420887372477377941952160695446525659532538626497950817493282006973537434579145999603516091513452361248082982216783003098864588436908096852952048311804465790469685272529373483403996223138567224460544047676226360809902492000556770172413634404876176767924326934654576599430074921970934014482216063035098783994464233496860254379023107794709306603717160421231365912108131901554399573174088633667144788429468703260525419631604328673300410304874227131098193729631443244811315547228782937141065357514037192492164967956891220789086745957014404941438806069215055816324455428044188627866807559667072240269769964304046614429604435122818403800150730057509263902686452760009555628179189006729925407482289467244265022232611417055688089055612059696863165916118736516400714641920140662646073220321250976821428275049487828738522448468171127085070732262611962189184411159794661693015512266829071730147089036252488305267445990353227159142557589407609596866446786751423075041575956907163092431239441289163770949738877979374023876386229964275845468554641783985246735267328079496121727770706364263492827957473406898583191815240415342799963524017334332464481781875273318574446149213851204288430342807142797342818346876934106783751600622640389415257589358687922262402510337980631001529473734711662065623797629258634899229911046951749996333957984578332225496399782592121475469560634786733349339741801619925726759098882721602876622007660990045909509537476523492189445307871967749347437402676837208852816440746125260827858149457328992506993245371195212442887022906518745653846023072307720462006794661691723324751912357589994688443052091389045479858382271447032654732953600713827501312471010796607403815169111253677774824747113824503470416040969371097801571917883283952770452146021449838892624588237517417609744010614890414212103284771397057843821732747916125068128002714676974064357962496418594790218585633066304651188896451050362888831764098610541350518296375257534750463936650530974103831965847854241259749339053482159258984133821955298244298376135852709557021094875273393398402546367558188863271086619685356787448895065123181382919984935254363857864011083308875858938265823960507888526093073113973142547389786225437443684611916176847230539021132904980037051651789756952601141902783558782221972520812561851477384472871527818848181155240463980637644516877322281729098849711273285219774300765968675430245271201233137857561700605650281724953177204155449914587776411661443967998757329542294824871713427842850813059483370643505969729746465859648272478046213918688821681079986407453723051491549043369835265870996154434905797698528526731670826170233660752679556893853547972835862953135184355245529232917144496726092714872693300886896479561015422526724991108012252556974682066362512475734274422172075648135125297216088786404153715309131623550911805988859726430551455793832501111743743499410612915303511799351414325130619404372929181097658398465065176728249423249063823769195281628011515009921405508936778262418645803182347837678632432875529216383664049348382295098089452286061985618080608619039071440625336031581370630213962759435798528400158265366426104855154304744626026320652744715997930593878788011887363629962266791514278176006719364074845538134354669514430138331594629624882698121761699487084550746730544218423208134243454298340163511793535200851626127502403008084463359503855780481823416470936651400242613972855120384620305704923037082469678223859505732767949082884822179348273684856249287390326607095236608126235031596603852179694129519650681248784365812738735681028680907884246888177189129905794891399615591896225094344638556078161154195568518880195803489981347187756601001239446219174840930361671633284198923937832734907238125824037263538874607109796246851953853671760809268453299355674334802993638566355550878048035830560491701605250661025690598593099633644503699031514391003158018159946376390530144397566415278250218739633145766352591343374084464986285466301570974669748834751488639731493847541217453218892385813058498914621273939935169107207195037450980584198385920907142498135956245247315091512514687916552898078933922023957361242322966266412812801541188562172613924257862494431237352806102277525105434461635793731442821466595565954031811407153129065745254002191508733418055205228418989903473345007672831843484127502667353085344704245491761967699151909781145711779356000323031735487083849878727178333690776721767786468581870778186439188919947578384230945666647406664125324403543580279654546156562560591860683420156210116532749043568756126644865298428844795648935427210238185111160510542955423800172518677121939370563494051163224960834730929908019978279367108088410705748220209425529405076128193722382944533333490333184134521407569869959536003702395221284000721971901866884926983250560456060805729607211965708444467562227573620279981352214181282061895225224624280147105077835992953024525158306261605242470863585361995155211781901629912013090620668039331344771148678253814866370648772526292119147620426131028050674607166574353763849699596869020536661011358854676019641228926153563216471031422156690018468338594536692410896759424673660389755086895304346531298117891686467839298888858835793589217973807994657755419152856131893766908479501639124228541068159944246940442475669696599508264133270747815469224249190415315997361535575934179277622349206685945732970520109112357461059764517811957302218658771207685119155373399676729171568168089499842930543200003294346530157015801642365498036589587662631471679152474453762627431024115897933628753916492859756054538134564846154817368488505793917879805957567848186200043774558625212667452423961677432441384834003757721865396533288072161007087690725638055591401495759507166895845054855127228380287093084198867070832318288904535261290863971145844944806560792690115846456998171315842656885935937176240548366478609828046955289007590094828996597298892653786733184146801607365221084527057636227054842525288600750253443135374058577088694313401067717945051471488746980586485251628567348521505517336931026573088600297886310872236969833920041145808417746135518978916371726167389160924312155686996918455548485411035853228968040101486420502223464211439581950061430001286364091419046224979603470347203538106115641764704114889361696536506516810120857063636160009026189359525362920037298021865514514044612857056788407803815279129597499027834831903539819551365252857994836136661618248927519171364971773217594576515766255399141443774445928888212109597571743403899422137170263765143711285990151240217410499898675458918975036826307607706770214516054749864832560062024122084340262560457413463855926044388523447747191792991019150663599617839804244631267511980815762389820963261192290106951704880710978518940055981953137732651393767707391283680678059188948210595799626007371329677140585443904650450606761798180471708652182048958310537367734732392825367902115430616727366316472899795639509689128132236015395874306118279538510299803240814054289203152717838598923446097589975787594471140800715232744118514957434623291939943606326475346995448637433367412886964700142779997899788969626501301272732256998164779403267987700420841685738023519211122514490219288889842661613623907682335732739434448100628138489320943113477230600137096002946327160459295530861922101565708068435220661062630433574006179415637703416274030838265317945343534385957315273957835196732687498735933557952301543352897924637006716351645320431640509324425962179599714833133683803079345801498062338904278980055258750818136571931345984408678662862535675860585234336561742038260304062159316532971775812589495994888142248665881974156978208524527822923774255258688683204861135082928213019660757524502892738460449040116329164846386205122537487497487114070954805778476702189418505187130769446981292538091686478403458743724554827731959137323823087191131130872016355891446204429933631873220423793548659049734638943948684351309343803207337269845024709243792991153376731787536531473964090996310081275746876648708425315131520418677635084020339969522383112966485166928826883778338840372817390204337735158215444863322749780891545968524756771104954553160320347299259457666001924239282215360833789329009694181118501756169969413658635917967873982984331112413996401312839354177485637678962532652667267880333077642638492747223327879036860014376220422080115684596448658711558899136905597297128040646703421406418523112131635279289692381147850421905172480330298115097372115370634023052021498660524782878107158976053303472189733455391116564701508994708891724602637009386183182275848797064823311360350598369897377690349498449502628093005852238767735164269938572854700137947302635523115708486485514454879865483767778800899514679274489539690959059167240219035795210859171834459005019896539451562053511352366127731947708990553102791819330294062691681181855532339058823461415867238199703856942708260835427568194920307009033185638824414347471903982830821585952245053233028179361281489048860744715672194281161413504137909768130900642789290950388432596128508920077061431549973988553287716203993315931645885475905974878424774236791789578154800602004929633259453039134273993544841375644566668137861453076343399225331465053657848974173479696542655150879827568222779234913276220256191337958046178464452865178556264603162257557397644704269844203744733067164388490453162574111998729371641854184788110992801187410206335160375688848597144122331074464580950506317729176321170440870621269171588821232979100557130542927764604851600085740564351363348598620868576494556486532182918957645866137767268882965242251841675389632121851363925499829978916299087175327004897017492714344818232485089254238161835661322547044037593816804786087844649212157198718661809789957886214129157579300073030879494486962555268073915169279099462435940439090959520906272775415187370390611801916732946129521888005783857697962373066847611639353061081217545850945088443364344351676916961610894202077778531280404812473903562245152403799996680336564872066288890256726181448735105317532552026489015993499485836588764149735059073849603211799339439917829804379809083746645631740633070394233789476110235174876468023083508257586408325570280053921138159484518719580846511397057745367041838850514918118671708596185050062167243791981084762972166587768947078718852299940451366903011885683192413931873644952986781921483188578192019113416943819835896221668788039072430308501927123265708384730754517184694346480299670855806368899833629983833580001917845098949339282721596633718476624064729079472701177803396805296510010377234653657937601390770905861647535401749249927666066463366637770884324651900550973178067329385733617074960388229690324105559329819988328129764620856903505888442322171429430849385667593780850571853018093040965015359799944617565398857119058923801546392155335735639504446071596416801866569889289762845368242721564998504921970652241198466940185891096847255442325865494133688204035923816711940796903317441959882814066087057365049180122117984484413321213775318773525447609403395357896762519306696980534133232962446224517567696331068601157356227760304108274536491690852766366209806079957843317990693903133075636715790846540243688195845239794663222875733669827597690035123710314065314002586221443934833035815993106352954014289413945442442408265952400308499879093578575835064009983655982522082089606617199578276285548769578759435966459761067420399972504501342397430713944808308354591701685183298273798547855236863691179366329324286031525442082093809449725255433135013245455300652750154006571171014497925006072061167790620953093592991885898951432307565108245364269501154566185216220293556959892963607249853408869359436158374231012950957370898063139653791623283755730997904860454730366577051346699619985784178408676130464610143479964344548743868110683474018707278024898291091499069288185092490993149490564721353362116604980536144951453828893551084924463168636286245704546212875183019291809956114723879152821426171012095082033087337884211154029829245579851839764504814462494518127017304085026525607974751856407209120516366462543497011570313033325085206630496437833870537925280254487018427744552773915555551683614249573404844940484454070458602868548374464912849261118251250981887338155206905234953981949762415779581635169665967207526339465110437437435536304022388263187549990488751679643997801373032147568165435203498206137251978705244632355516914195864378122259568693516064327532301996670506175716752962452227907478513106621336189559983723405361558370618868057267071772202949872116312787613971434989820726202009842275880048278447965411792382405648185299469779276655884370487298060501368011817293329333898369877558472422753404497332029645742787312995761362136723736104276597834410349388093221030331011793503993214338995766406856535413371439920746100097375483273589297515926758056056309479498341022958398639190038459950291913943251337531350324843668017345628504678988148874308687367067187240702280808341354811697202155783857977631815075286165811083630646809564911653017414389256304799259342630732479472823668882217786589116069980072003375845504021510443047816729713652116968473889937308491572561220215717229379557433473822097230353068723213647809486481895693708954699903359317939230772894624160824480716052311682372766593239576443943745472288729148739807825178648749839844940163886903741499009899765107880394265469423668821344037858237767312742414116181210220860373428077306146798114223385078673287617124086412467329191388683637634644986925838544567622507908408854961166988261253265094756816392995035945022031622997401248268237093190959163251440719518673558118471058180396833360832850972162827201604824524263390940197667787942264348743248932211720872858724250044404685048642526756841913949770721227417168241176883466044828426264329150145374780848700096829622051212813862564011162254488476067632016692602525023935730173815420753474615596237185255475827345515077390936288058311165735570377549450873167904612940869320178031795881783971407518827898442837707772800788366504917184396538921537448148351871581747370773323900824016224448714864183952185012205324587820093650940566024106173171926351732049611587939699498872815992036929750624842400576396244915750650906525569915826006564504198334168422352185471716318566907143198338045313984236745211171087289380927265237408489856259480603535465415984693455865832305609376517335308039909070605508099029706452612736326588773637627790163041550922919006726373989944381886213555696991964842503608612359628139554672337633609869387497104471044649087912973528955374871318486001563246690245124131863612024175972609666103518372819704920786596330476487182901211794305761579075232338345512084802090681637321431324631825430176228073813530962720559431269718604290948698229811095289915532339674443344925499027606152972619689339683989044331714506327719639445807139825578526327870766652871341193004999429116027528060873098057018799395400382728869896031743863121307523954865595264770078828137665998193450954955822463216722434835162009134375085852987606040540492000772038324752051433432478355196826153340745027748624563805338052080097461685305755798449863865913281896020965501407569832664650958762067592224910751441252228226019880418613071869095008362519505480183705913189419700